{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 1, "properties": {"category": "sci.crypt", "text": "From: rj@ri.cadre.com (Rob deFriesse)\nSubject: Can DES code be shipped to Canada?\nArticle-I.D.: fripp.1993Apr22.125402.27561\nReply-To: rj@ri.cadre.com\nOrganization: Cadre Technologies Inc.\nLines: 13\nNntp-Posting-Host: 192.9.200.19\n\nSomeone in Canada asked me to send him some public domain DES file\nencryption code I have.  Is it legal for me to send it?\n\nThanx.\n--\nEschew Obfuscation\n\nRob deFriesse                    Mail:  rj@ri.cadre.com\nCadre Technologies Inc.          Phone:  (401) 351-5950\n222 Richmond St.                 Fax:    (401) 351-7380\nProvidence, RI  02903\n\nI don't speak for my employer.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 2, "properties": {"category": "talk.religion.misc", "text": "From: boylan@sltg04.ljo.dec.com (Steve Boylan)\nSubject: Re: Christian Daemons? [Biblical Demons, the update]\nReply-To: boylan@ljohub.enet.dec.com (Steve Boylan)\nOrganization: Digital Equipment Corporation\nLines: 61\n\n\nIn article <1993Apr1.024850.20111@sradzy.uucp>, radzy@sradzy.uucp\n(T.O. Radzykewycz) writes:\n\n> >>swaim@owlnet.rice.edu (Michael Parks Swaim) writes:\n> >>>  666, the file permission of the beast.\n> \n> >radzy@sradzy.uucp (T.O. Radzykewycz) writes:\n> >> Sorry, but the file permission of the beast is 600.\n> >> \n> >> And the file permission of the home directory of the\n> >> beast is 700.\n> \n> boylan@sltg04.ljo.dec.com (Steve Boylan) writes:\n> >Hey, radzy, it must depend on your system's access policy.\n> >I get:\n> >\t$ ls -lg /usr/users\n> >\ttotal 3\n> >\tdrwxrwxrwx 22 beast    system       1536 Jan 01  1970 beast\n> >\tdrwxr-x--x 32 boylan   users        2048 Mar 31 09:08 boylan\n> >\tdrwxr-xr-x  2 guest    users         512 Sep 18  1992 guest\n> >\t$ su\n> >\tPassword:\n> >\troot $ su beast\n> >\tbeast $ umask\n> >\t111\n> >\tbeast $ ^D\n> >\troot $ ^D\n> >\t$ \n> \n> Just a minute....\n> \n> \t$ grep beast /etc/passwd\n> \tbeast:k5tUk76RAUogQ:497:0:Not Walt Disney!:/usr/users/beast:\n> \t$ mv /usr/users/beast/.profile /usr/users/beast/.profile,\n> \t$ echo umask 077 >> /usr/users/beast/.profile\n> \t$ cat > /usr/users/beast/.profile\n> \tchmod 700 /usr/users/beast\n> \tmv .mailrc .mailrc,\n> \techo beast logged in | mail radzy%sradzy@jack.sns.com\n> \tmv .mailrc, .mailrc\n> \tmv /usr/users/beast/.profile, /usr/users/beast/.profile\n> \t^D\n> \t$ chmod 777 /usr/users/beast/.profile\n> \t$ cat /usr/users/beast/.profile, >> /usr/users/beast/.profile\n> \n> <waits a while, finally gets mail.>\n> \n> I think you made a mistake.  Check it again.\n> \n\nI see . . . you're not running Ultrix!\n\n\t:-)\n\n\t\t\t\t- - Steve\n\n\n--\nDon't miss the 49th New England Folk Festival,\nApril 23-25, 1993 in Natick, Massachusetts!\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 3, "properties": {"category": "talk.politics.guns", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: That silly outdated Bill (was Re: Koresh and Miranda)\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 9\n\nIn article <1993Apr14.165633.2170@cbnews.cb.att.com>, lvc@cbnews.cb.att.com (Larry Cipriani) writes:\n>As for the MOVE incident, wasn't the mayor of Philadelphia at the time Black ?\n\nFor the first Move incident (no bomb, several members killed in\ngunfire, circa 1978) the mayor was the very white Frank Rizzo.  \nFor the second (bomb included) the mayor was Wilson Goode, who \nis indeed black.\n\n-jim halat\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 4, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jzawodn@bgsu.edu (Jeremy D. Zawodny)\nSubject: Help needed in setting up NCSA Telnet w/ AppleTalk or Phonenet...\nSummary: help me....\nOrganization: Bowling Green State Univ.\nLines: 21\n\n\nOkay, I'm trying to install NCSA telnet on a couple (okay, a whole bunch)\nof machines.  They're all true blue IBMs with either Fallon Phonenet cards\nor Dastar cards.  (I belive those names are correct.)  Well, the docs for\ntelnet say that it'll run over an AppleTalk driver, but I've had little\nsuccess.\n\nIf anyone has succesfully installed Telnet w/ AppleTalk, I'd like some\nhelp with the config file for Telnet...\n\nBTW, please reply via E-mail if possible...\n\nThanks,\n\nJeremy\n\n-- \nJeremy Zawodny | Computer Science Undergrad | Bowling Green State University\n------------------------------------------------------------------------------\njzawodn@andy.bgsu.edu | Student Computer Consultant | *thrilled* OS/2 2.0 user\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 5, "properties": {"category": "comp.sys.mac.hardware", "text": "From: simsh@aix02.ecs.rpi.edu (Hillel Y. Sims)\nSubject: what size vram simm is this?\nNntp-Posting-Host: aix02.ecs.rpi.edu\nLines: 20\n\nHi everyone. I recently posted about how I received a bad vram chip for my\nnew LCIII, and someone responded that it may not actually be bad, but it may\nbe a 512K LC vram chip, and thus doesn't work properly with my computer. So\nI'm wondering if anyone can interpret these codes for me, so I can figure\nout what type of chip MacConnection sent me.\n\nEach chip says: M518121A-80J\n\t\t 2515251\n\nOn the back of the card, it says 0593\n\nI believe from the numbers that means it is an 80ns chip, but I can't figure\nout what the size is supposed to be. If anyone can help, I'd be grateful.\nPlease email me your response. Thanks a lot!\n\n-- \nHillel Sims  -----  simsh@rpi.edu  -----  Rensselaer Polytechnic Institute\n\n\"Is rot13 rotated 13 forward or backward?\"\n\t--Anonymous\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 6, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: weidlich@arb-phys.uni-dortmund.de (Weidlich)\nSubject: Searching for a phonetic font\nOrganization: Institut f. Arbeitsphysiologie a.d. Uni Dortmund\nLines: 13\n\nI'm searching for a phonetic TrueType font for Windows 3.1. If \nanybody knows one, please mail me!\n\nThanks.\n\ndw \n\n\n##################################################################\nDipl.-Inform. Dietmar Weidlich    # IfADo, Ardeystr. 67          #\nweidlich@arb-phys.uni-dortmund.de # D-4600 Dortmund 50           #\nPhone ++49 231 1084-250           # >> Dr. B.: \"Koennten Sie das #\nFax   ++49 231 1084-401           #      MAL EBEN erledigen?\" << #\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 7, "properties": {"category": "rec.autos", "text": "From: jnielsen@magnus.acs.ohio-state.edu (John F Nielsen)\nSubject: Re: top 10 reasons why i love CR (not for the humor impaired)\nArticle-I.D.: magnus.1993Apr6.214754.23608\nDistribution: na\nOrganization: The Ohio State University\nLines: 52\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\n\nIn article <1993Apr6.195710.24227@cs.tulane.edu> finnegan@navo.navy.mil writes:\n>In article <1993Apr6.180456.17573@magnus.acs.ohio-state.edu>, jnielsen@magnus.acs.ohio-state.edu (John F Nielsen) writes:\n>|> In article <1993Apr06.133319.7008@metrics.com> tomh@metrics.com (Tom Haapanen) writes:\n>|> >CHINTS@ISCS.NUS.SG writes:\n>|> >> Here are \"another\" ten reasons why we should all love CR\n>|> >> 10. Car salesmen love their new car buying service\n>|> >> 2. And later on buying a CR \"idealized family sedan\"\n>|> >\n>|> >And my number 1:\n>|> >\n>|> >1. The spectacle of the religious fervour of the CR \"true believers\".\n>|> \n>|> Or the spectacle of \"Macho Real Men\" who would never bother to read the\n>|> magazine but are more than apt to criticize it.\n>\n>Hey, I'm a \"Macho Real Man\" and I DO read it.  So I can criticize\n>it all I want, especially since I pay for the publication. (They\n>accept no outside advertising, don't you know....)\n>\n>|> John Nielsen   MAGNUS Consultant            ______   ______   __  __\t\n>|> \"To you Baldrick, the Renaissance was just /\\  __ \\ /\\  ___\\ /\\ \\/\\ \\\n>|> something that happened to other people,   \\ \\ \\/\\ \\\\ \\___  \\\\ \\ \\_\\ \\\n>|> wasn't it?\" - The Black Adder               \\ \\_____\\\\/\\_____\\\\ \\_____\\\n>\n>Relying on Consumer Reports to pick your automobiles is like\n>letting Field & Stream select your living room furniture.\n>\n>Kenneth\n>finnegan@navo.navy.mil\n\nNo one should EVER rely on just a magazine to determine what car they\nbuy, I don't care what magazine. Btw, I subscribe to three other \nauto rags, I just think CU is getting a bum rap by these macho men\nfrom hell who think real men should read . . . .\n\nStatements like what you said above have no meaning. People keep on\nsaying \"CU is only good for dishwashing detergent\" or as you\nsaid:\"Relying on Consumer Reports . . . . is like. . .\"  and that is\nall they say. \n\nIf there were as critical of themsevles as they are of CU maybe there\nwould be some real content.\n\njohn\n\n\n\n-- \nJohn Nielsen   MAGNUS Consultant            ______   ______   __  __\t\n\"To you Baldrick, the Renaissance was just /\\  __ \\ /\\  ___\\ /\\ \\/\\ \\\nsomething that happened to other people,   \\ \\ \\/\\ \\\\ \\___  \\\\ \\ \\_\\ \\\nwasn't it?\" - The Black Adder               \\ \\_____\\\\/\\_____\\\\ \\_____\\\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 8, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: \"lds\" Rick's reply\nFrom: <ISSCCK@BYUVM.BITNET>\nOrganization: Brigham Young University\nLines: 159\n\n\nRobert Weiss (psyrobtw@ubvmsb.cc.buffalo.edu) writes:\n\n#Rick Anderson replied to my letter with...\n#\n#ra> In article <C5ELp2.L0C@acsu.buffalo.edu>,\n#ra> psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss) says:\n#ra>\n\n(...)\n\n# Just briefly, on something that you mentioned in passing. You refer to\n# differing interpretations of \"create,\" and say that many Christians may\n# not agree. So what? That is really irrelevant. We do not base our faith\n# on how many people think one way or another, do we? The bottom line is\n# truth, regardless of popularity of opinions.\n\nIt may be \"irrelevant\" to you and *your* personal beliefs (or should I say\n\"bias\"?), but it is relevant to me and many others.  You're right, \"the\nbottom line IS truth,\" independant from you or anyone else.  Since you\nproclaim \"truths\" as a self-proclaimed appointee, may I ask you by what\nauthority you do this?  Because \"it says so in the Bible?\"  --Does the\nBible \"say so,\" or is it YOU, or someone else, who interprets whether a\nscripture or doctrine conforms to your particular liking or \"disapproval\"?\n\nExcuse moi, but your line of \"truths\" haven't moved me one bit to persuade\nme that my beliefs are erroneous.  Of all the \"preachers\" of \"truth\" on\nthis net, you have struck me as a self-righteous member of the wrecking\ncrew, with no positive message to me or other latter-day saints whatsoever.\nBTW, this entire discussion reminds me a lot of the things said by Jesus\nto the pharisees: \"ye hypocrite(s) . . . ye preach about me with your lips,\nbut your hearts are far removed from me...\"\n\n# Also, I find it rather strange that in trying to persuade that created\n# and eternally existent are equivalent, you say \"granted the Mormon\n# belief...\" You can't grant your conclusion and then expect the point to\n# have been addressed. In order to reply to the issue, you have to address\n# and answer the point that was raised, and not just jump to the\n# conclusion that you grant.\n\nSophistry.  Look who's talking: \"jumping to conclusions?\"  You wouldn't do\nthat yourself, right?  All YOU address is your own convictions, regardless\nwhether we come up with any Biblical scriptures which supports our points\nof view, because you reject such interpretations without any consideration\nwhatsoever.\n\n#\n# The Bible states that Lucifer was created.  The Bible states that Jesus\n# is the creator of all. The contradiction that we have is that the LDS\n# belief is that Jesus and Lucifer were the same.\n\nA beautiful example of disinformation and a deliberate misrepresentation\nof lds doctrine.  The former KGB would have loved to employ you.\nJesus and lucifer are not \"the same,\" silly, and you know it.\n\n(...)\n\n# The Mormon belief is that all are children of God. Literally. There is\n# nothing symbolic about it. This however, contradicts what the Bible\n# says. The Bible teaches that not everyone is a child of God:\n\nCorrection: it may contradict would YOU think the Bible says.  The Bible\nindeed does teach that not all are children of God in the sense that they\n\"belong to\" or follow God in His footsteps.  Satan and his followers have\nrebelled against God, and are not \"children (=followers/redeemed) of God,\"\nbut it doesn't mean that they were not once created by God, but chose to\nseparate themselves from those who chose to follow God and His plan of\nsalvation.\n\n#\n#        The field is the world; the good seed are the children of the\n#        kingdom; but the tares are the children of the wicked \"one\";\n#        (Matthew 13:38)\n\nSo?  --This illustrates nicely what I just said: the children of the\nkingdom are those who have remained valiant in their testimony of Jesus\n(and have shown \"works of repentance, etc.), and the children of the\nwicked one are those who rebelled against God and the lamb.  The issue\nof satan's spirit-offspring (and those who followed him) has not been\naddressed in this and other verses you copied from your Bible.  You\npurposefully obscured the subject by swamping your \"right\" with non-\nrelated scriptures.\n\n(...lots of nice scriptures deleted (NOT Robert W. copyrighted) though...)\n\n#ra> > We are told that, \"And this is life eternal, that they might know\n#ra> > thee the only true God, and Jesus Christ, whom thou hast sent.\"\n#ra> > (John 17:3). Life eternal is to know the only true God. Yet the\n#ra> > doctrines of the LDS that I have mentioned portray a vastly\n#ra> > different Jesus, a Jesus that cannot be reconciled with the Jesus of\n#ra> > the Bible. They are so far removed from each other that to proclaim\n\nCorrection: \"my\" Jesus is indeed different than your Jesus, and CAN be\nreconciled with the Jesus in the Bible.  --Not your interpretation of Him,\nI concur, but I honestly couldn't care less.\n\n#ra> > one as being true denies the other from being true. According to the\n#ra> > Bible, eternal life is dependent on knowing the only true God, and\n#ra> > not the construct of imagination.\n\nIn this single posting of yours, I've seen more \"constructs of imagination\"\nthan in all of the pro-lds mails combined I have read so far in this news\ngroup.  First get your lds-facts straight before you dare preaching to us\nabout \"the only true God,\" whom you interpret according to your own likes\nand dislikes, but whose image I cannot reconcile with what I know about\nHim myself.  I guess your grandiose self-image does not allow for other\nfaiths, believing in the divinity of Jesus Christ, but in a different\nway or fashion than your own.  Not that it really matters, the mission\nand progress of the lds church will go on, boldly and nobly, and no mob\nor opponent can stop the work from progressing, until it has visited\nevery continent, swept every clime, and sounded in every ear.\n\n#  This is really a red herring. It doesn't address any issue raised, but\n#  rather, it seeks to obfuscate. The fact that some groups try to read\n#  something into the Bible, doesn't change what the Bible teaches.\n\nSigh.  \"What the Bible teaches\"?  Or: \"what the bible teaches according to\nRobert Weiss and co.?\"  I respect the former, I reject the latter without\nthe remotest feeling that I have rejected Jesus.  On the contrary.  And by\nthe way, I do respect your interpretations of the Bible, I even grant you\nbeing a Christian (following your own image of Him), as much as I am a\nChristian (following my own image of Him in my heart).\n\n(...)\n\n#  Most of the other replies have instead hop-scotched to the issue of\n#  Bruce McConkie and whether his views were 'official doctrine.' I don't\n#  think that it matters if McConkie's views were canon. That is not the\n#  issue.  Were McConkie's writings indicative of Mormon belief on this\n#  subject is the real issue. The indication from Rick is that they may\n#  certainly be.\n\nThe issue is, of course, that you love to use anything to either mis-\nrepresent or ridicule the lds church.  The issue of \"official doctrine\"\nis obviously very important.  McConkie's views have been controversial\n(e.g. \"The Seven Deadly Heresies\" has made me a heretic!  ;-) at best,\nor erroneous at worst (\"blacks not to receive the priesthood in this\ndispensation\").  I respect him as someone who has made his valuable\ncontribution to the church, but I personally do NOT rely on his personal\ninterpretations (his book \"Mormon Doctrine\" is oftentimes referred to\nas \"McConkie's Bible\" in mormon circles) on mormon doctrine.  I rather\nlook to official (doctrinal) sources, and... to Hugh Nibley's books!\n(The last comment is an lds-insider reference.)  Summarizing: McConkie\nwas a wise man who contributed undoubtedly far more to the kingdom of\nGod than I have, but whose views are by no means dogma or accepted\ndoctrine, some of it clearly belongs to personal interpretation and\nspeculation.  But having said this, I find McConkie (even in his most\nbiased and speculative moments) far more thought-provoking than the\ntrash coming from your proverbial pen.  I'm somewhat appalled that I have\nallowed myself to sink as low as you in this posting...\n\n=============================\nRobert Weiss\npsyrobtw@ubvms.cc.buffalo.edu\n\n\nCasper C. Knies              isscck@byuvm.bitnet\nBrigham Young University     isscck@vm.byu.edu\nUCS Computer Facilities\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 9, "properties": {"category": "sci.space", "text": "From: dbm0000@tm0006.lerc.nasa.gov (David B. Mckissock)\nSubject: Re: Space Station Redesign, JSC Alternative #4\nOrganization: NASA Lewis Research Center / Cleveland, Ohio\nLines: 102\nDistribution: world\nNNTP-Posting-Host: tm0006.lerc.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr23.184732.1105@aio.jsc.nasa.gov>, kjenks@gothamcity.jsc.nasa.gov writes...\n\n   {Description of \"External Tank\" option for SSF redesign deleted}\n\n>Mark proposed this design at Joe Shea's committee in Crystal City,\n>and he reports that he was warmly received.  However, the rumors\n>I hear say that a design based on a wingless Space Shuttle Orbiter\n>seems more likely.\n\nYo Ken, let's keep on-top of things! Both the \"External Tank\" and\n\"Wingless Orbiter\" options have been deleted from the SSF redesign\noptions list. Today's (4/23) edition of the New York Times reports\nthat O'Connor told the panel that some redesign proposals have\nbeen dropped, such as using the \"giant external fuel tanks used\nin launching space shuttles,\" and building a \"station around\nan existing space shuttle with its wings and tail removed.\"\n\nCurrently, there are three options being considered, as presented\nto the advisory panel meeting yesterday (and as reported in\ntoday's Times).\n\nOption \"A\" - Low Cost Modular Approach\nThis option is being studied by a team from MSFC. {As an aside,\nthere are SSF redesign teams at MSFC, JSC, and LaRC supporting\nthe SRT (Station Redesign Team) in Crystal City. Both LeRC and\nReston folks are also on-site at these locations, helping the respective\nteams with their redesign activities.} Key features of this\noption are:\n  -  Uses \"Bus-1\", a modular bus developed by Lockheed that's\n     qualified for STS and ELV's. The bus provides propulsion, GN&C\n     Communications, & Data Management. Lockheed developed this\n     for the Air Force.\n  -  A \"Power Station Capability\" is obtained in 3 Shuttle Flights.\n     SSF Solar arrays are used to provide 20 kW of power. The vehicle\n     flies in an \"arrow mode\" to optimize the microgravity environment.\n     Shuttle/Spacelab missions would utilize the vehilce as a power\n     source for 30 day missions.\n  -  Human tended capability (as opposed to the old SSF sexist term\n     of man-tended capability) is achieved by the addition of the\n     US Common module. This is a modified version of the existing\n     SSF Lab module (docking ports are added for the International\n     Partners' labs, taking the place of the nodes on SSF). The\n     Shuttle can be docked to the station for 60 day missions.\n     The Orbiter would provide crew habitability & EVA capability.\n  -  International Human Tended. Add the NASDA & ESA modules, and\n     add another 20 kW of power\n  -  Permanent Human Presence Capability. Add a 3rd power module,\n     the U.S. habitation module, and an ACRV (Assured Crew Return\n     Vehicle).\n\nOption \"B\" - Space Station Freedom Derived\nThe Option \"B\" team is based at LaRC, and is lead by Mike Griffin.\nThis option looks alot like the existing SSF design, which we\nhave all come to know and love :)\n\nThis option assumes a lightweight external tank is available for\nuse on all SSF assembly flights (so does option \"A\"). Also, the \nnumber of flights is computed for a 51.6 inclination orbit,\nfor both options \"A\" and \"B\".\n\nThe build-up occurs in six phases:\n  -  Initial Research Capability reached after 3 flights. Power\n     is transferred from the vehicle to the Orbiter/Spacelab, when\n     it visits.\n  -  Man-Tended Capability (Griffin has not yet adopted non-sexist\n     language) is achieved after 8 flights. The U.S. Lab is\n     deployed, and 1 solar power module provides 20 kW of power.\n  -  Permanent Human Presence Capability occurs after 10 flights, by\n     keeping one Orbiter on-orbit to use as an ACRV (so sometimes\n     there would be two Orbiters on-orbit - the ACRV, and the\n     second one that comes up for Logistics & Re-supply).\n  -  A \"Two Fault Tolerance Capability\" is achieved after 14 flights,\n     with the addition of a 2nd power module, another thermal\n     control system radiator, and more propulsion modules.\n  -  After 20 flights, the Internationals are on-board. More power,\n     the Habitation module, and an ACRV are added to finish the\n     assembly in 24 flights.\n\nMost of the systems currently on SSF are used as-is in this option, \nwith the exception of the data management system, which has major\nchanges.\n\nOption C - Single Core Launch Station.\nThis is the JSC lead option. Basically, you take a 23 ft diameter\ncylinder that's 92 ft long, slap 3 Space Shuttle Main Engines on\nthe backside, put a nose cone on the top, attached it to a \nregular shuttle external tank and a regular set of solid rocket\nmotors, and launch the can. Some key features are:\n  - Complete end-to-end ground integration and checkout\n  - 4 tangentially mounted fixed solar panels\n  - body mounted radiators (which adds protection against\n    micrometeroid & orbital debris)\n  - 2 centerline docking ports (one on each end)\n  - 7 berthing ports\n  - a single pressurized volume, approximately 26,000 cubic feet\n    (twice the volume of skylab).\n  - 7 floors, center passageway between floors\n  - 10 kW of housekeeping power\n  - graceful degradation with failures (8 power channels, 4 thermal\n    loops, dual environmental control & life support system)\n  - increased crew time for utilization\n  - 1 micro-g thru out the core module\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 10, "properties": {"category": "sci.electronics", "text": "From: uli@izfm.uni-stuttgart.de (Uli Allgeier)\nSubject: Re: PADS Question - How do I go from a schematic -> PCB?\nOrganization: Comp.Center (RUS), U of Stuttgart, FRG\nLines: 38\nNNTP-Posting-Host: pc8.izfm.uni-stuttgart.de\n\nHi!\nIn article <C5svup.I4I@news.cso.uiuc.edu> rky57514@uxa.cso.uiuc.edu (Tall Cool One ) writes:\n\n>After I have produced a schematic with PADS-LOGIC, how do I import it into \n>PADS-PCB to create a PCB pattern?  The only way I've gotten it to work is\n>to output a FutureNet netlist, and then import this into PADS-PCB.  Is there\n>another way of doing this?  I didn't see any information in the instructions\n>provided, but I might have missed something.  Any suggestions would be \n>greatly appreciated.  Thanks!\n\nSorry, it's german, but I hope you understand it.\n\n\nUebertragung der Schaltplan-Daten (*.SCH) in die Board-Daten\n(*.JOB):\n\nPADS-LOGIC:\n         In/Out\n         Reports\n         Net List\n         Select      PADS-PCB\nNet List Output file name\n         -> filename angeben\n\nPADS-PCB:\n         In/Out\n         Ascii In\nAscii input file name\n         -> filename angeben\nErrors aoutput file name\n         -> filename angeben, nicht CR\n\nJetzt sind alle Bauteile auf einem Haufen und muessen mit Move\nverteilt werden.\n\nViele Gruesse\n\nUli\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 11, "properties": {"category": "comp.windows.x", "text": "From: arana@labein.ES (Jose Luis Arana)\nSubject: X Graphics Accelerators\nOrganization: The Internet\nLines: 7\nTo: xpert@expo.lcs.mit.edu\n\nHow can I obtain public information (documentation and sources)\nabout Xservers implemented with graphics processors?\n\nI am specially interested in Xservers developed for the TMS34020\nTexas Instruments graphic processor.\n\n                     Please send answer to arana@labein.es\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 12, "properties": {"category": "comp.sys.mac.hardware", "text": "From: drlovemd@jhuvms.hcf.jhu.edu (Steve Liu)\nSubject: What is the current Rom Version shipping in Syquest drives?\nOrganization: The Johns Hopkins University - HCF\nLines: 4\nDistribution: world\nNNTP-Posting-Host: jhuvms.hcf.jhu.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nThe title says it all.  I need to know the 44, 88, and 88c rom versions.\n\nSteve :-)\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.003+0000", "event": "documents", "entityId": 13, "properties": {"category": "misc.forsale", "text": "From: ibeshir@nyx.cs.du.edu (Ibrahim)\nSubject: Terminal forsale\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 1\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 14, "properties": {"category": "rec.sport.baseball", "text": "From: shapiro-david@yale.edu (David Shapiro)\nSubject: Re: And America's Team is....But Why?\nOrganization: What, me organized?\nLines: 21\nDistribution: na\n\t<C5p6xq.GuI@me.utoronto.ca>\nNNTP-Posting-Host: minerva.cis.yale.edu\nIn-reply-to: steinman@me.utoronto.ca's message of Sun, 18 Apr 1993 21:13:02 GMT\n\nIn article <C5p6xq.GuI@me.utoronto.ca> steinman@me.utoronto.ca (David Steinman) writes:\n\n   cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n\n   >\tThe defenition of the Underdog is a team that has no talent and comes\n   >out of nowhere to contend.  The '69 Mets and '89 Orioles are prime examples,\n   >not the Cubs. \n\n   Sorry, but it is *virtually* impossible to win a division with \"no talent\"\n   over 162 games.\n\nWell, with players, certainly.  However, it is quite possible to win\nit all with no managerial talent.  Cf. Blue Jays, 1992.\n\nDavid\n\n-------------------------------------------------------------------------------\nDavid Shapiro\t\t\t| \"People can call it a monkey, but I felt like\nshapiro-david@yale.edu\t\t| I had a piano on my back all winter long....\nshapiro@minerva.cis.yale.edu\t| The piano is off my back.  Maybe a trombone\n\t\t\t\t| will be next.\"  -- Stan Belinda\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 15, "properties": {"category": "talk.politics.mideast", "text": "From: ucer@ee.rochester.edu (Kamil B. Ucer)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nOrganization: University of Rochester Department of Electrical Engineering\n\nIn article <1993Apr23.002811.22496@usage.csd.unsw.OZ.AU> 2120788@hydra.maths.unsw.EDU.AU () writes:\n>I've heard many Turks say this and it surpises me that they don't read about\n>it.Remember the Treaty of Sevres-as a consequence of being in the Axis powers\n>in WWI.The Turks UNDER INTERNATIONAL LAW were supposed to look after their\n>minorities ie. Greeks,Armenians,Kurds(I must say Turk-Kurd relations are \n>improving slightly with time) and not pose a threat to Turkey's neighbours.\n>The Turks blatantly rejected this treaty(the Germans grudgingly accepted \n>Versailles which was a million times worse for the health and pride of the \n>German people).The Greeks who had an army there,were there with BRITISH\n>and FRENCH backing to enforce Sevres.\n>    In possibly the first example of appeasement the Young Turk government\n>managed screwed the Treaty of Laussane out of the weak allies,this was after \n>the Greek forces were were destroyed at Smyrna.When this occurred incidently,\n>FRENCH warships were in the harbour and many Greeks trying escape swam to the \n>FRENCH warships and climbed aboard only to get their arms cut off by the FRENCH\n>as they clawed they're way up the sides of the ships.\n>Libertae,egalitae,fraternatae.\nIt seems to me that you are the one who is supposed to do some reading. I think\nthat our major difference in opinion is on the legitimacy of Sevres. First, thattreaty was signed by the Ottoman Empire therefore legally it does not bind the \nRepublic of Turkey. The new independence movement (which by the way, is not the same as the Young Turks) naturally rejected it out of hand. to say that we \nshould accept because the Germans did theirs is absurd. We saw what the cosequences of such harsh treaties were in Hitler. Second, the Sevres treaty was even \nworse than Versailles. It divided the Ottoman Empire in to several influence \nzones, had the capital occupied, the economy under Allied control, the army di\nminished to nothing but a police force, in short a country in name only. I'd\nwonder if you would like to live under such conditions. And for the record, I donot feel sorry for the soldiers killed in IZMIR harbour. Before evacuating the \ncity, the Greek forces burned it down, so it serves them right.\nAs for being fooled by Allied promises, that too is your fault. You did not come to Anatolia just to enforce Sevres but to take part in the plunder  as well.\nK. Burak Ucer\n-\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 16, "properties": {"category": "comp.windows.x", "text": "From: usun@mcl.ucsb.edu (Sonnie)\nSubject: X bitmap -> Postscript\nLines: 10\n\nHey folks,\n\non the course to develope a X window application, we encountered\na problem. How could I transform a X window bitmap into a postscript\nfiles ? Is there any library routines or source code I can call to\ndo the job ?\n\nThank you in advance.\np.s. Email reply please. I seldom read this newsgroup. =)\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 17, "properties": {"category": "misc.forsale", "text": "From: Rupin.Dang@dartmouth.edu (Rupin Dang)\nSubject: Nikon FM2 and lens forsale\nOrganization: Dartmouth College, Hanover, NH\nLines: 5\n\nNikon FM-2n with 50 mm Nikkor and accessories for sale.I bought this camera in\nHong Kong two years ago and everything has been looked after very well. I'm now\nselling some more gear to finance my next big film project.\n\nAsking $350 for package. NO BARGAINS.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 18, "properties": {"category": "sci.space", "text": "From: msb@sq.sq.com (Mark Brader)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: SoftQuad Inc., Toronto, Canada\nLines: 34\n\n> > Can these questions be answered for a previous\n> > instance, such as the Gehrels 3 that was mentioned in an earlier posting?\n\n> Orbital Elements of Comet 1977VII (from Dance files)\n> p(au)          3.424346\n> e              0.151899\n> i              1.0988\n> cap_omega(0) 243.5652\n> W(0)         231.1607\n> epoch       1977.04110\n\nThanks for the information!\n\nI assume p is the semi-major axis and e the eccentricity.  The peri-\nhelion and aphelion are then given by p(1-e) and p(1+e), i.e., about\n2.90 and 3.95 AU respectively.  For Jupiter, they are 4.95 and 5.45 AU.\nIf 1977 was after the temporary capture, this means that the comet\nended up in an orbit that comes no closer than 1 AU to Jupiter's --\nwhich I take to be a rough indication of how far from Jupiter it could\nget under Jupiter's influence.\n\n> Also, perihelions of Gehrels3 were:\n> \n> April  1973     83 jupiter radii\n> August 1970     ~3 jupiter radii\n\nWhere 1 Jupiter radius = 71,000 km = 44,000 mi = 0.0005 AU.  So the\n1970 figure seems unlikely to actually be anything but a perijove.\nIs that the case for the 1973 figure as well?\n-- \nMark Brader, SoftQuad Inc., Toronto\t\t\"Remember the Golgafrinchans\"\nutzoo!sq!msb, msb@sq.com\t\t\t\t\t-- Pete Granger\n\nThis article is in the public domain.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 19, "properties": {"category": "comp.graphics", "text": "From: sloan@cis.uab.edu (Kenneth Sloan)\nSubject: Re: Surface normal orientations\nOrganization: CIS, University of Alabama at Birmingham\nLines: 42\n\nIn article <1pscti$aqe@travis.csd.harris.com> srp@travis.csd.harris.com (Stephen Pietrowicz) writes:\n>...\n>How do you go about orienting all normals in the same direction, given a \n>set of points, edges and faces? \n\nLook for edge inconsistencies.  Consider two vertices, p and q, which\nare connected by at least one edge.\n\nIf (p,q) is an edge, then (q,p) should *not* appear.  \n\nIf *both* (p,q) and (q,p) appear as edges, then the surface \"flips\" when\nyou travel across that edge.  This is bad.  \n\nAssuming (warning...warning...warning) that you have an otherwise\nacceptable surface - you can pick an edge, any edge, and traverse the\nsurface enforcing consistency with that edge.  \n\n    0) pick an edge (p,q), and mark it as \"OK\"\n    1) for each face, F, containing this edge (if more than 2, oops)\n       make sure that all edges in F are consistent (i.e., the Face\n       should be [(p,q),(q,r),(r,s),(s,t),(t,p)]).  Flip those which\n       are wrong. Mark all of the edges in F as \"OK\",\n       and add them to a queue (check for duplicates, and especially\n       inconsistencies - don't let the queue have both (p,q) and (q,p)). \n    2) remove an edge from the queue, and go to 1).\n\nIf a *marked* edge is discovered to be inconsistent, then you lose.\n\nIf step 1) finds more than one face sharing a particular edge, then you\nlose. \n    \nOtherwise, when done, all of the edges will be consistent.  Which means\nthat all of the surface normals will either point IN or OUT.  Deciding\nwhich way is OUT is left as an exercise...\n\n\n\n-- \nKenneth Sloan                   Computer and Information Sciences\nsloan@cis.uab.edu               University of Alabama at Birmingham\n(205) 934-2213                  115A Campbell Hall, UAB Station \n(205) 934-5473 FAX              Birmingham, AL 35294-1170\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 20, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Ax the ATF\nOrganization: Stratus Computer, Inc.\nLines: 13\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <donbC5sL69.F7I@netcom.com>, donb@netcom.com (Don Baldwin) writes:\n\n> It's hard to know what/who to believe.  However, the letter I received from\n> the BATF, in response to one I sent to Bentsen, said that there was a search\n> warrant AND an arrest warrant.\n\nCheck again.  You may find that the arrest warrant was issued AFTER the\nfirst firefight.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 21, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: Telephone on hook/off hok ok circuit \nOrganization: Megatest Corporation\nLines: 59\n\nIn article <1993Apr15.144826.4607@bnr.ca> moffatt@bnr.ca (John Thomson) writes:\n>: >> >Just a thought of mine here:\n>: >> >Since an on-hook line is aprox 48-50V, and off-hook it usually drops below 1\n>: >> >How about an LED in series with a zener say around 30V.\n>: >> >On-hook = LED on\n>: >> >Off-hook = LED off.\n>: >> >Would this work? If anyone tries/tried it, please let me know.\n>: >>\n>: >> Aye, there's the rub -- if you draw enough current to light an LED, the\n>: >> equipment at the phone company will think you've gone off hook.\n>: >> In the on-hook state you're not supposed to draw current.\n>: >\n>: >Which means you should just use your Digital VoltMeter. You can use an\n>: >old VOM but the phone company equipment can detect that and might think\n>: >there's something wrong with the cable.\n>: >\n>: \n>: Look Guys, what's the problem here?  If you want a light that goes on when \n>: the 'phone is *Off* hook, all you need it to run it in *series* with the \n>: line, as I mentioned in my previous post.  If you want a light that goes on \n>: when the 'phone is *on* hook, all you need is a voltage threshold detector.\n>\n>If you're going to do the series Diode thing (which is the easiest), just\n>make sure that the LED can take the current (I can't recall it off-hand, but\n>it's something like 100mA or more?)\n\nCareful now folks... Also consider the 90VAC+ @20Hz that is forced on ring\nand tip when the phone's supposed to ring!  Even with a simple zener\nand LED setup, you might end up with some carbon real quick.  Whatever\nscheme you use, make sure you've got at least 200V-rated components on \nthe frontend.\n\nAlso remember that, if I'm not mistaken, the phone line is a 600ohm\nequivalent circuit.  Any current you draw from the 48V or so gets\ndropped across that 600ohms.  That's fine until you're down to roughly\n12V, when Ma Bell considers it to be off-hook.  But dropping it that\nfar down is probably a big no-no.\n\nThe easiest implementation to accomplish the above??\n\n    tip  ------->|-----\\/\\/\\/\\-----+----------+\n              rectifier  resistor  |          |\n              diode                |          \\ \n                                   V          /\n                          zener  /---/        \\  resistor\n                                   |          /\n                                   |          |\n                                   |          V   LED\n                                   |         ---\n                                   |          |\n    ring --------------------------+----------+\n\nThis is only a suggestion...go ahead and blow holes in it, but you\nget the idea.  Choose a high-efficiency LED so you don't need much\ncurrent to get it to light up.  Choose values for the other components\nas required.\n\naaron\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 22, "properties": {"category": "rec.sport.baseball", "text": "From: rsmith@strobe.ATC.Olivetti.Com (Russ Smith)\nSubject: Re: Jose Canseco's Swing - 1992 vs. 1986.\nDistribution: na\nOrganization: Olivetti ATC; Cupertino CA, USA\nLines: 68\n\nIn article <C5JKIK.1zF@ucdavis.edu> ez027993@dale.ucdavis.edu (Gary Built Like Villanueva Huckabay) writes:\n>Here's my analysis of Jose Canseco, circa Sep '92, and Jose Canseco,\n>circa June 1986.\n>\n>1.  He's bulked up too much.  Period.  He needs to LOSE about 20 pounds,\n>    not gain more bulk.\n\nI've been saying that for at least 2 years now and even the A's conditioning\nguru told Jose he was carrying too much weight and losing some would help\nhis back.Although I don't for one second believe Jose used steroids,his\nback problems are very similar to problems alot of steroid users experience\nbecause they are simply carrying too much weight on their frame(see Jeff\nBregel ex 49er as a textbook example), and IMHO Jose is too big for his\nframe.\n\n\n>2.  His bat speed has absolutely VANISHED.  Conservatively, I'd say he's\n>    lost 4%-7% of his bat speed, and that's a HUGE amount of speed.\n\nI can't imagine how to estimate bat speed, but its pretty obvious that\nJose is missing fastballs he used to hit, likely due to his back.\n\n\n>3.  That open stance is KILLING him.   Note that he acts sort of like\n>    Brian Downing - way open to start, then closes up as ball is\n>    released.  Downing could do this without significant head movement -\n>    Canseco can't.  Also, note that Canseco doesn't always close his\n>    stance the same way - sometimes, his hips are open, sometimes,\n>    they're fully closed.  Without a good starting point, it's hard\n>    to make adjustments in your swing.\n\nI don't know, he had an even more open stance when he first came up with\nthe A's, and had no problems with it then. It might be that pre-back\nproblems, he was quick enough to cover up any deficiencies the stance\ncaused, but now he's lost just enough bat speed that the stance hurts\nhim. The old saying if you're hot its a trigger mechanism, if you're\ncold, its a hitch. \n\n>First, minimize movement before the swing.  Close and widen the stance,\n>and severely cut down the stride I take on my swing.  Hopefully, this\n>will cut down on the time I need to swing, and will allow me to move\n>the bathead more freely.\n\nThe biggest problem IMHO is he never has found a stance he's comfortable\nwith for more than a few months. He changes his stance so much, he loses\ntrack of where the strike zone is. In Wednesday's night game, he was \nclearly mad at strike calls on both corners that looked pretty good to\nme. I think he no longer knows where the strike zone really is because\nhe's changed his stance so much.\n\nI'm also a bit concerned that because he's got Palmer and Gonzalez hitting\nall the homeruns, he'll become competitive, swing even harder and screw\nhimself up even worse. LaRussa always said that Canseco's famous batting\npractice homer shows did him more harm than good as they encouraged\nbad hitting habits.\n\n\n\n\nRuss Smith\n*******************************************************************************\n\"I don't know anything about X's, but I know about some O.\"              \n                  George Gervin on being an assistant coach\n********************************************************************************\n\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 23, "properties": {"category": "sci.med", "text": "From: dfitts@carson.u.washington.edu (Douglas Fitts)\nSubject: Re: RA treatment question\nOrganization: University of Washington\nLines: 24\nNNTP-Posting-Host: carson.u.washington.edu\n\neulenbrg@carson.u.washington.edu (Julia Eulenberg) writes:\n\n>I'm assuming that you mean Rheumatoid Arthritis (RA).  I've never heard \n>of the \"cold treatment\" you mentioned.  I can't imagine how it would \n>work, since most of us who have Rh.Arthr./RA seem to have more problems\n>in cold weather than in warm weather.  Would be interested to hear more!\n>Z\n>Z\n\n\nNo, obviously talking about Research Assistants.  I favor a high protein,\nlow fat diet, barely adequate salary on a fixed time schedule, four hours\nof sleep a night, continuous infusion of latte, unpredictable praise \nmixed randomly with anxiety-provoking, everpresent glances with \nlowered eyebrows, unrealistic promises of rapid publication, and \nevery three months a dinner consisting of nothing but microbrewery ale\nand free pretzels.  Actually, mine hails from San Diego, and indeed \nhas more problems in Seattle in cold weather than in warm.\n\nDoug Fitts\ndfitts@u.washington.edu\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 24, "properties": {"category": "rec.autos", "text": "From: tcorkum@bnr.ca (Trevor Corkum)\nSubject: Is car saftey important? \nNntp-Posting-Host: 47.141.0.88\nReply-To: tcorkum@bnr.ca (Trevor Corkum)\nOrganization: Bell-Northern Research Ltd.\nLines: 11\n\n   I was recently thumbing through the 1993 Lemon-Aid New\nCar Guide.  What I found was a car would be given a 'Recommended'\nunder the picture while a few sentences later noting how a\ndriver and passenger were virtually guaranteed to be killed\nin a front end collision.  The most highly recommended small\ncar (The Civic) has the worst crash rating of all of the small\ncars listed.  There were many such cases of 'great' vehicles\nwhere you wouldn't survive an accident.  Is it only me, or is\nsafety not one of the most important factors when buying a car?\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 25, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Lincoln & slavery (Re: Top Ten Tricks You Can Play on the American Voter)\nArticle-I.D.: optilink.15229\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 36\n\nIn article <1993Apr3.185448.13811@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes:\n> In article <kmitchelC4wA87.HLz@netcom.com> kmitchel@netcom.com (Kenneth C. Mitchell) writes:\n# #Slavery makes economic sense (it NEVER makes MORAL sense) when human\n# #muscle power is an economically valuable asset. Agricultural slavery might\n# #have lasted right up to the first mechanical cotton reaper, but no\n# #further; reapers are cheaper than slaves, and don't have to be fed during\n# #the winter. \n# \n# This argument makes a several fundamental errors.  First \"agricultural\"\n# slavery was not limited to production of cotton.  In the American south\n# slave labor was used extensively to grow tobacco, sugar, and rice, all\n# of which remained labor intensive enterprises well into the 20th century.\n\nAnd of course, in states like Kentucky and Virginia, not well-suited to\nlarge-scale plantations, slave labor was used to make one of the most \nvaluable agricultural products of all: more slaves.  In some ways, this\ntreatment of humans beings as breeding livestock is the most horrifying\naspect of American slavery.\n\n# Second, although mechanization of cotton production could be expected to\n# reduce the demands for labor eventually, it was only in the 1940's \n# the mechanization of cotton production in the South largely eliminated\n# the labor intensive character of the operation, long after the \"first\n# mechanical cotton reaper\" was invented.\n\nThis is an interesting question.  Steinbeck's _Grapes of Wrath_\n(published in the 1930s), uses agricultural mechanization of cotton\nproduction in Arkansas as the cause of the Joad family being evicted\nfrom the land.  How many years were involved in the mechanization of\ncotton farming?  When did this first appear?\n\n# #Ken Mitchell       | The powers not delegated to the United States by the\n# Steve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 26, "properties": {"category": "talk.politics.misc", "text": "Organization: Arizona State University\nFrom: <CXNBK@ASUACAD.BITNET>\nSubject: Re: Celebrate Liberty! 1993\nLines: 5\n\nNarrative, narrative, narrative. . .\n\n\n\nC.B.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 27, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Still Waiting for Evidence, Mr. Cramer\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 46\n\nIn article <mortalC4wxLn.8s2@netcom.com>, mortal@netcom.com (Sam Lowry) writes:\n> In article <15033@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n> >In article <1993Mar19.142816.15709@rational.com>, kima@excalibur.Rational.com (Kim Althoff) writes:\n> >> In article <14992@optilink.COM>, cramer@optilink.COM (Clayton Cramer) writes:\n# ## # Gay men constitute at least 20% of all child molestations.  Whether\n# ## # this is because gay molesters are unusually common, or have unusually\n# ## # high numbers of victims, sort of misses the point, doesn't it?  It\n# ## # means that whichever is the case, homosexual men are remarkably\n# ## # hazardous to children.\n# #\n# Clayton says:\n# #\n# #You are incorrect.  The most recent survey data I can find shows that\n# #26% of molestation is exclusively homosexuals, 4% is bisexual (victims\n# #are both male and female), and the remainder is exclusively heterosexual.\n\n#     So what you are saying is that 74% of the child molestations are \n#   committed by heterosexuals. I cannot see the correlation you cite\n\nBisexuals are heterosexuals?  Since when?\n\n#   which concludes that by being homosexual, you will molest children or that\n#   by being homosexual you will have the propensity for molesting children.\n\nI haven't said that \"homosexual = child molester,\" simply that is more\nlikely.\n\n#   If 26% of the molestations are by homosexuals, why are you so concerned\n#   about creating a relation between the two? If you had evidence that \n#   95% of the molestations are committed by homosexuals you might find a \n#   relationship. Ok, where is the realtionship you make?        \n\nThe one that is shown when NAMBLA marches in gay parades.\n\n#     Also, what is the reason people molest? From Human Sexuality and a \n#   psych class or too I have taken the overwhelming voice says that people\n#   commit these acts as power trips and to feel in control. This has nothing\n#   to do with sexual orientation. \n\nYou mean that S&M, because it's a power trip, has nothing to do with\nsexual orientation?\n\n#   mortal@netcom.com\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 28, "properties": {"category": "comp.graphics", "text": "From: lau@auriga.rose.brandeis.edu (frankie t. k. lau)\nSubject: PC fastest line/circle drawing routines: HELP!\nOrganization: Brandeis University\nLines: 41\n\nhi all,\n\nIN SHORT: looking for very fast assembly code for line/circle drawing\n\t  on SVGA graphics.\n\nCOMPLETE:\n\tI am thinking of a simple but fast molecular\ngraphics program to write on PC or clones. (ball-and-stick type)\n\nReasons: programs that I've seen are far too slow for this purpose.\n\nPlatform: 386/486 class machine.\n\t  800x600-16 or 1024x728-16 VGA graphics\n\t\t(speed is important, 16-color for non-rendering\n\t\t purpose is enough; may stay at 800x600 for\n\t\t speed reason.)\n         (hope the code would be generic enough for different SVGA\n          cards.  My own card is based on Trident 8900c, not VESA?)\n\nWhat I'm looking for?\n1) fast, very fast routines to draw lines/circles/simple-shapes\n   on above-mentioned SVGA resolutions.\n   Presumably in assembly languagine.\n\tYes, VERY FAST please.\n2) related codes to help rotating/zooming/animating the drawings on screen.\n   Drawings for beginning, would be lines, circles mainly, think of\n   text, else later.\n   (you know, the way molecular graphics rotates, zooms a molecule)\n2) and any other codes (preferentially in C) that can help the \n   project.\n\nFinal remarks;-\nnon-profit.  expected to become share-, free-ware.\n\n\tAny help is appreciated.\n\tthanks\n\n-Frankie\nlau@tammy.harvard.edu\n\nPS pls also email, I may miss reply-post.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 29, "properties": {"category": "talk.politics.guns", "text": "From: gs26@prism.gatech.EDU (Glenn R. Stone)\nSubject: Re: Change of name ??\nReply-To: glenns@eas.gatech.edu\nOrganization: The Group W Bench\nLines: 15\n\nIn <CMM.0.90.2.735315429.thomasp@holmenkollen.ifi.uio.no> thomasp@ifi.uio.no (Thomas Parsli) writes:\n\n>\t1. Make a new Newsgroup called talk.politics.guns.PARANOID or \n>\ttalk.politics.guns.THEY'R.HERE.TO.TAKE.ME.AWAY\n\n>\t2. Move all postings about waco and burn to (guess where)..\n\nWhat does this <censored> from NORWAY think he's doing telling us\nhow to run the place?  I wanna know... somebody please 'splain.\n\nGuess how NORWAY survived the Third Reich?  Give you a hint,\nit wasn't by passive resistance the way the Danes did it....\n\nGlenn R. Stone (glenns@eas.gatech.edu)\nwearer of asbestos underoos\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 30, "properties": {"category": "sci.crypt", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U23590@uicvm.uic.edu>\nSubject: Re: Clipper -- some new thoughts\nLines: 7\n\nThe cryptographic algorythm MUST be kept secret, or\nprivate individuals could make ClipperClones with\nwhich they could transmit messages which the feds would not have\nready access to.  This is clearly unacceptable.\n\nI hope somebody starts doing this soon after the first\nones are released...\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 31, "properties": {"category": "comp.sys.mac.hardware", "text": "From: haase@meediv.lanl.gov (Peter Haase)\nSubject: Re: Upgrading PB170 Memory\nOrganization: Los Alamos National Laboratory\nDistribution: usa\nLines: 18\n\nIn article <1993Apr17.185806.7216@ncar.ucar.edu>, bill@lhotse.hao.ucar.edu\n(Bill Roberts) wrote:\n> \n> I  have one of the original Powerbook 170's (with 4Mb of Ram) and find\n> that 4Mb is a drag when trying to do my work.  So, what is the best way\n> to get the maximum RAM for this unit, and what's it going to cost me?\n> I'm hoping I can get the latest and best info from real users by posting \n> to this group.\n\nWell Bill, There are 2MB soldered on the logic board and 2MB in the RAM\nexpansion slot giving you 4MB. The only thing you can do to upgrade to\nthe maximum Ram is to remove the 2MB expansion and install a 6MB expansion,\ngiving you a total of 8MB which is the max on a 170....You can try calling\nTechWorks, or any other memory vendors out of MacWeek, MacWorld...etc....\n\n<==================================+==================================>\n  Peter Haase                      +    Internet: haase@meediv.lanl.gov\n  Network Manager                  +    Los Alamos National Laboratory\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 32, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Re: Accounts of Anti-Armenian Human Right Violations in Azerbaijan #010\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 23\n\nIn article <1993Apr20.050956.25141@freenet.carleton.ca> aa624@Freenet.carleton.\nca (Suat Kiniklioglu) [a.k.a. Kubilay Kultigin] writes:\n\n[KK] david\n\nYes?\n\n[KK] give it a rest. will you ???\n\nNo.\n\n[KK] it is increasingly becoming very annoying...\n\nBarbarism is rather annoying for you, now isn't it, especially when it comes \nfrom from a country, Azerbaijan, that claims Turkey as its number one ally, \nprotector, and mentor!\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 33, "properties": {"category": "sci.crypt", "text": "From: ns111310@LANCE.ColoState.Edu (Nathaniel Sammons)\nSubject: Re: I have seen the lobby, and it is us\nNntp-Posting-Host: casco.lance.colostate.edu\nOrganization: Colorado State U. Engineering College\nLines: 33\n\nIn article <1993Apr21.163929.21149@eff.org> A. Charles Gross <acg@eff.org> writes:\n>Certainly, with our way-cool Internet powers of\n>organization, we can act in the same way, if such action is appropriate.\n>\n>As long as we are kept informed of events, anyone on this bboard can make\n>a call to action.  Hopefully, we're a strong enough community to act on\n>those calls.  I realize this is a little optomistic, and I'm glad EFF is\n>working in the loop on these issues, but don't underestimate the\n>potential of the net for political action.\n>\n>Adam\n>* I speak for myself\n\nI second the motion.\n\nAll in favor?\n\nBTW>> a few days ago, Charles Fee <CXF111@psuvm.psu.edu> posted the names,\naddresses, and phone numbers (voice and fax) of almost all the 103rd \ncongress's members.  This info, along witha great number of cabinet men, etc...\nI captured it, as did many others, I am sure.\n\nWe should single out a few of the people on the list, and bombard them \nwith lobbying against the Clipper Chip, et al.\n\n-nate\n\n\no---------------------------+======================================o\n| \"I hate quotations.       |     This message brought you by      |\n|   Tell me what you know.\" |   Nate Sammons, and the number 42.   |\n|    --Ralph Waldo Emerson  |  ns111310@longs.lance.colostate.edu  |\no---------------------------+======================================o\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 34, "properties": {"category": "talk.politics.guns", "text": "From: scottj@magic.dml.georgetown.edu (John L. Scott)\nSubject: Re: That silly outdated Bill (was Re: Koresh and Miranda)\nOrganization: J. Random Misconfigured Site\nX-Posted-From: iamac-1.dml.georgetown.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 86\n\nI wrote :\n  Nice strawman indeed.  The discussion is not about whether there were\ntanks\n  used in sixties riots; instead, it is about whether those tanks fired\ntheir\n  main guns in one of those riots.  You claim they did.  That claim is\n  ludicrous.\n\nAwesley replied:\n     I repeated what I had been told, under what context I had heard it,\n  supporting the claim that tanks were indeed used in Detroit in 67.\n\nThe issue has never been whether tanks were used in Detroit in 1967.  It\nhas been whether they fired their main guns.  You did not merely claim that\ntanks were used--you claimed that they fired their main guns to suppress\nsniper fire and that they were \"quite\" effective at this.  You continue to\nback away from this claim and defend something else that nobody is\ndisputing.\n\nAwesley went on:\n  I\n  spent a few minutes in a library today -- found their computer was\n  down and they don't have a card catalog.  Anyway, it took about 10\n  minutes to find this in _Nightmare in Detroit, A Rebellion and It's\n  Victims_ by Sauter and Hines, on page 133, telling of the death of\n  Tonia Blanding, age 4.\n   \n        \"When the tank was fired upon by snipers it turned in the direction\n  the shots came from. [...] the fifty-caliber machine gun mounted on the\n  tank belched fire into the buildings.  After a short round into the front\n  of the buildings, the tank guns spit again, tearing apart huge holes out\n  of the side of the apartment.\"\n  \n       Well, it's not the main gun.  \n\n\"Well, it's not the main gun.\"  Gee, that's only the entire point.  Are you\nnow going to admit that you were wrong?\n\nI wrote:\n  will I see any pictures of tanks firing their main\n  guns?  Will I see pictures of buildings damaged by the shells?  Will I\nread\n  the reports of the tank fire?  I'll bet you dollar to doughnuts I won't. \n  It will take more than second-hand accounts from a few old National Guard\n  sergeants shooting the shit to convince me that tanks shelled American\n  cities in the Sixties.\n\nAwesley replied:\n    Well, if you bothered to read them, it wouldn't take long at all to\n  find reports of tank * fire * -- although not necessarily of the main\n  guns.\n\nI will never read of tanks firing their main guns in Detroit in the '67\nriots.  There is simply no way that such an event could have taken place\nwithout it being common knowledge even 26 years later.  The American\nmilitary firing shells from tanks in American cities on blacks would have\nbeen *big* news.\n\nAwesley goes on:\n  You can also read of the troops using grenade launchers.\n\nTo fire fragmentary grenades?  I doubt that as well.  To fire concussion\ngrenades?  Perhaps.  To fire tear gas?  Certainly.  But you would be\nperfectly willing to let us believe they fired frags, wouldn't you, since\nit makes your other claim seem more plausible.\n\nAnd on:\n  I don't\n  expect to convince you; you'll have to open your mind and eyes and\nactually\n  do a little research to be convinced one way or the other.  Let me know\n  what you find.\n\nI already know what you found: nothing.  If I claimed that the Marines used\nF-4s to launch rockets at buildings in Trenton, New Jersey would you\nbelieve me?  Would you suspend judgment until you had a chance to research\nit?  Or would your bullshit filters kick in?\n\nIf tanks had fired their main guns in Detroit, people would have been\nscreaming about it for the past two and half decades.  I would know about\nit.  Unless you also claim that the National Guard managed to cover it up. \nIf your mind is open enough to believe that, well, good for you.  I prefer\nto live in reality.   And here in reality, I find it hard to believe that\nthose tanks even had any shells, much less fired them.\n\n--John L. Scott\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 35, "properties": {"category": "sci.med", "text": "Subject: Post Polio Syndrome Information Needed Please !!!\nFrom: keith@actrix.gen.nz (Keith Stewart)\nOrganization: Actrix Information Exchange\nLines: 9\n\nMy wife has become interested through an acquaintance in Post-Polio Syndrome\nThis apparently is not recognised in New Zealand and different symptons ( eg\nchest complaints) are treated separately. Does anone have any information on\nit\n\nThanks\n\n\nKeith\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.004+0000", "event": "documents", "entityId": 36, "properties": {"category": "sci.crypt", "text": "From: bell@mars.dev.promis.com (Mike Bell)\nSubject: Clipper proposal - key length?\nOrganization: Promis Systems Corp.\nLines: 32\n\nDanny Weitzner <djw@eff.org> writes:\n\n\n\n\n\n>April 16, 1993\n\n>INITIAL EFF ANALYSIS OF CLINTON PRIVACY AND SECURITY PROPOSAL\n\n>DETAILS OF THE PROPOSAL:\n\n>ESCROW\n\n>The 80-bit key will be divided between two escrow agents, each of whom\n>hold 40-bits of each key.  The manufacturer of the communications device\n>would be required to register all keys with the two independent escrow\n>agents.  A key is tied to the device, however, not the person using it.\n\nSo if we subvert one of the two escrow agents, we only have a 40-bit\nspace to search through...\n\n2^40 doesn't sound that big - is digital telephony subject to a known\nplaintext attack?\n\nIn which case half the key seems to be all that is needed, and the two\nagent escrow arrangement is pointless. \n\nOf course, the unknown algorithm might turn gaps in speech into \npseudo-random sequences, or there might be some magic involved, or...\n-- \n-- Mike -- <bell@promis.com>\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 37, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.01\nLines: 13\n\nfrank@D012S658.uucp (Frank O'Dwyer) writes:\n> In article <1993Apr15.125245.12872@abo.fi> MANDTBACKA@FINABO.ABO.FI (Mats\n> Andtbacka) writes:\n> |      \"And these objective values are ... ?\"\n> |Please be specific, and more importantly, motivate.\n> \n> I'll take a wild guess and say Freedom is objectively valuable.\n\nYes, but whose freedom?  The world in general doesn't seem to value the\nfreedom of Tibetans, for example.\n\n\nmathew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 38, "properties": {"category": "sci.electronics", "text": "From: heuvel@neptune.iex.com (Ted Van Den Heuvel)\nSubject: Motorola MC143150 and MC143120 \nOriginator: heuvel@neptune.iex.com\nOrganization: iex\nLines: 6\n\n\nDoes anyone out there know of any products using Motorola's Neuron(r) chips MC143150 or MC143120. If so, what are they and are they utilizing Standard Network Variable Types (SNVT)?\n_________________________________________________________________________________\n\nTed Van Den Heuvel   heuvel@neptune.iex.com\nKX5P\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 39, "properties": {"category": "comp.graphics", "text": "From: r0506048@cml3 (Chun-Hung Lin)\nSubject: Re: JPEG file format?\nNntp-Posting-Host: cml3.csie.ntu.edu.tw\nReply-To: r0506048@csie.ntu.edu.tw\nOrganization: Communication & Multimedia Lab, NTU, Taiwan\nX-Newsreader: Tin 1.1 PL3\nLines: 20\n\npeterbak@microsoft.com (Peter Bako) writes:\n: \n: Where could I find a description of the JPG file format?  Specifically\n: I need to know where in a JPG file I can find the height and width of \n: the image, and perhaps even the number of colors being used.\n: \n: Any suggestions?\n: \n: Peter\n\nTry ftp.uu.net, in /graphics/jpeg.\n--\n--------------------------------\n=================================================================\nChun-Hung Lin ( \u00aaL\u00abT\u00a7\u00bb )                     \nr0506048@csie.ntu.edu.tw    \nCommunication & Multimedia Lab.\nDept. of Comp. Sci. & Info. Eng.\nNational Taiwan University, Taipei, Taiwan, R.O.C.\n=================================================================\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 40, "properties": {"category": "comp.windows.x", "text": "From: whaley@sigma.kpc.com (Ken Whaley)\nSubject: Re: XCopyPlane Question\nIn-Reply-To: nancie@neko.CSS.GOV's message of 14 Apr 1993 15:19:05 -0400\nOrganization: Kubota Pacific Computer Inc.\nLines: 88\n\n> \n> I am trying to use XCopyPlane to copy a single plane \n> from a depth-8 pixmap to a depth-1 pixmap.  Everytime I\n> try this, I see absolutely nothing displayed.  I know there\n> is data in the depth-8 pixmap becuase I have checked by doing\n> an XCopyArea to the screen.\n> \n> I have been successful getting XCopyPlane to work if I use\n> two pixmaps of depth-8.  Is there a problem with what I am\n> trying to do??\n> \n> Could someone please scan my code segment and let me know\n> where I am going wrong...\n> \n> I have created a XmDrawingArea widget called canvas. \n>  \n>     w_id = XtWindow(canvas);\n>     display = XtDisplay(canvas);\n>     screen = DefaultScreen (display);\n>     pixmap8 = XCreatePixmap (display, RootWindow (display, screen),\n>                     w_width, w_height, DefaultDepth (display, screen));\n>     pixmap1 = XCreatePixmap (display, RootWindow (display, screen),\n>                     w_width, w_height, 1);\n> \n>     w_gc8 = XCreateGC (display, w_id, 0, NULL);\n>     w_gc1 = XCreateGC (display, pixmap1, 0, NULL);\n> \n> --> Code to read xwd image into pixmap8 is omitted <----\n> \n\nHave you set the foreground and background colors in w_gc1 to \nsomething other than 0 and 1?  The WhitePixel and BlackPixel macros\non your server may not return values suitable for depth 1 drawables.\n\n\n>     /* Copy one plane into the depth-1 pixmap */\n>     XCopyPlane (display, pixmap8, pixmap1,\n>                 w_gc1, 0, 0, w_width, w_height, 0, 0, 16);\n> \n\nAre you sure that the fifth plane of the data isn't all the same?  You could\nhave different pixel values in the image, but the fifth plane (0x10 == 16)\nmight all be the same value?\n\n\n>     /* Using the depth-1 pixmap as the clipmask, copy it to the screen */\n>     values.foreground = fg_color;\n>     values.clip_x_origin = 0;\n>     values.clip_y_origin = 0;\n>     values.clip_mask = pixmap1;\n>     mask = GCForeground | GCClipMask;\n>     XChangeGC (display, w_gc8, mask, &values);\n> \n>     XFillRectangle (display, w_id, w_gc8, 0, 0, w_width, w_height);\n> \n\n\nIf you just want to see the plane of data and want better performance,\ndon't use ClipMasks, just use pixmap1 as the stipple in a stippled\nrectangle fill.  Many servers are very stupid about handling complex\nclip lists, and turn a bitmap clip region into hundreds and hundreds of\nlittle clipping rectangles, and clips every drawing primitive against every\none of these little triangles.\n\n\nActually, I must also ask the FAQ's #1 most popular reason why graphics\ndon't show up: do you wait for an expose event before drawing your\nrectangle?\n\n\n\n> Other Info:  X11R5 Patchlevel 10\n>              Motif 1.2.1\n>              Sun Sparc2 running SunOS 4.1.1\n>              \n> \n> Thanks in Advance!\n> \n>  ----------------------------------------------------------------\n>  Nancie P. Marin      NET:  nancie@neko.css.gov\n>  ENSCO Inc.           MAIL: 445 Pineda Ct.  Melbourne, Fl.  32940\n>  (407)254-4122        FAX:  (407)254-3293\n>  ----------------------------------------------------------------\n--\nKenneth Whaley\t\t\t (408) 748-6347\nKubota Pacific Computer, Inc.\t Email: whaley@kpc.com\n2630 Walsh Avenue\nSanta Clara, CA.  95051\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 41, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Playoff pool rule revision\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 10\nNntp-Posting-Host: mail.sas.upenn.edu\n\nWell, I will have to change the scoring on my playoff pool.  Unfortunately\nI don't have time right now, but I will certainly post the new scoring\nrules by tomorrow.  Does it matter?  No, you'll enter anyway!!!  Good!\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 42, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: *Doppelganger* (was Re: Vulcan? No, not Spock or Haphaestus)\nOrganization: Fermi National Accelerator Laboratory\nLines: 22\nDistribution: world\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <1qju0bINN10l@rave.larc.nasa.gov>, C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON) writes:\n> There was a Science fiction movie sometime ago (I do not remember its \n> name) about a planet in the same orbit of Earth but hidden behind the \n> Sun so it could never be visible from Earth. \n\nThis was known as *Journey to the Far Side of the Sun* in the United\nStates and as *Doppelganger* in the U.K.  It was produced by the great\nteam of Gerry and Sylvia Anderson (whose science was usually a bit\nbetter than this).  It may have been their first production using live\nactors-- they were better known for their technophilic puppet shows,\nsuch as *Supercar*, *Stingray*, and *Thunderbirds*.  Later, they went\non to do more live-action SF series: *UFO* and *Space: 1999*.\n\nThe astronomy was lousy, but the lifting-body spacecraft, VTOL\nairliners, and mighty Portugese launch complex were *wonderful* to\nlook at.\n\nBill Higgins, Beam Jockey              | In a churchyard in the valley\nFermi National Accelerator Laboratory  | Where the myrtle doth entwine\nBitnet:           HIGGINS@FNAL.BITNET  | There grow roses and other posies\nInternet:       HIGGINS@FNAL.FNAL.GOV  | Fertilized by Clementine.\nSPAN/Hepnet:           43011::HIGGINS  |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 43, "properties": {"category": "talk.politics.misc", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: I thought commercial Advertising was Not allowed\nOrganization: Corporation for Open Systems\nDistribution: na\nLines: 47\n\nIn <C50sJG.3Eu@voder.nsc.com> matt@galaxy.nsc.com (Matt Freivald x8043) writes:\n\n>In article 164633 in talk.politics.misc, bob1@cos.com (Bob Blackshaw) writes:\n\n>>>>And Ms. Regard, please don't give us the trite \"you can't legislate \n>>>>morality\" nonsense again: there is little else that is legislated, \n>>>>including the moral concept of \"rights\".\n\n>>Really? Pure Socialism had this belief, and fell flat on its ass by\n>>attempting to follow such reasoning. Suppose you pass a law that\n>>states that I must love my neighbour, regardless of race, religion,\n>>etc. How exactly do you plan to enforce such a law? Better yet, how\n>>do you plan to measure compliance? And even if you overcome those\n>>two obstacles, how will you ever know if I have become *more moral*\n>>or not?\n\n>You either missed the point or are being somewhat disingenuous;  I have\n>never heard anyone suggest that you can legislate what people think.\n>Laws are based on either expediency (i.e. traffic laws) or morality (i.e.\n>human rights), as far as I can tell, and the majority are based on the\n>latter.\n\nOnce more around the racetrack. See the original statement that it is\nnonsense to believe that you cannot legislate morality. I simply stated\nthat they can pass all the laws they want but not a single one of them\nwill make you or I more moral people. They may make us act in a moral\nmanner, but our actions are only a reflection of the unwillingness to\nrisk punishment. They say nothing about whether we have become more\nmoral or not. Perhaps the distinction is too fine.\n\n\n\n>Matt Freivald\n\nTOG\n\n>--------------------------------------------------------------------------\n>               \"I'm not a feminist -- I'm for equal rights!\"\n>--------------------------------------------------------------------------\n>             If you don't believe in abortion, don't have one!\n>              If you don't believe in slavery, don't own one!\n>             If you don't believe in murder, don't commit one!\n>--------------------------------------------------------------------------\n>                   Pro CHILD. Pro FAMILY. Pro LIFE.\n>--------------------------------------------------------------------------\n>THESE ARE MY OPINIONS ONLY AND NOT THOSE OF MY EMPLOYER!!!!!!!!!!!!!!!!!!!\n>--------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 44, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: new Multiple Sclerosis drug?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 13\n\nIn article <12252@news.duke.edu> adm@neuro.duke.edu (Alan Magid) writes:\n>Disclaimer: I speak only for myself.\n\n\nSo just what was it you wanted to say?\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 45, "properties": {"category": "soc.religion.christian", "text": "From: storrs@eos.ncsu.edu (JERRY STORRS)\nSubject: Re: March for Jesus\nReply-To: storrs@eos.ncsu.edu (JERRY STORRS)\nOrganization: North Carolina State University, Project Eos\nLines: 16\n\nThe only info I have is my area is not having a large march.  They are leaving\nit up to each congragation.  IMO this means organizers found it too difficult\nto manage or no one feels the need to be involved.\n\nI'm not casting stones, my involvement with the Lord does not include the March\nthis year.  Maybe He is giving a message by the lack of one??  JLS\n\n=============================================================================\nJerry L Storrs, Systems Manager   ||| U Got 2 B Tru,\nDept of Chemical Engineering\t  |||   U Got 2 B Livin' What U Say U Believe\nNorth Carolina State University   ||| U Got 2 B Tru,\nRaleigh, NC 27695\t\t  |||   Even when nobody but Jesus is watchin U\n919-515-6393  (-3465 FAX)\t  |||\nstorrs@che.ncsu.edu (preferred)   |||\t\t\t(Steven Curtis Chapman)\n\t\t\t<><       |||\n=============================================================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 46, "properties": {"category": "comp.graphics", "text": "From: greg@cs.uct.ac.za (Gregory Torrance)\nSubject: Automatic layout of state diagrams\nOrganization: Computer Science Department, University of Cape Town\nLines: 18\n\nHi,\n\nI'm hoping someone out there will be able to help our computer science\nproject group. We are doing computer science honours, and our project\nis to do a 'graphical simulator for a finite state automata'.\n\nBasically, the program must draw a diagram of a FSA from a textual grammar,\nshowing circles for states, and labeled arc's in-between.\n\nThe problem is working out the best way to layout the states, and draw the\narc's in-between so that as few arc's as possible cross each other.\n\nIf anyone has any suggestions/algorithms/bug-free ready to compile C code :) \nthat might help us, it would be much appreciated.\n\nThanks in advance,\n\nGregory\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 47, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Food For Thought On Tyre\nOrganization: Cookamunga Tourist Bureau\nLines: 62\n\nI was curious to check out how many San Jose Mercury News mentioned\nTyre (1990-92). Here's the outcome from the research (condenced versions,\ncopyright San Jose Mercury news):\n\n---\n  Bombings in the two largest cities in southern Lebanon killed 11 people\nand \nwounded 80 others. A car bomb blew up in Tyre, killing 10 people and\nwounding \n75. A man was killed and five others seriously wounded in an explosion in \nNabatiye.\n---\n  An Israeli navy patrol boat attacked and sank a rubber guerrilla boat off\n\nsouthern Lebanon early today, killing the two men aboard, the army command \nsaid.\n  \n     It said in a communique that a Dvora patrol boat opened fire on the \nmotorized rubber dinghy north of Tyre after identifying it as hostile. The\narmy \nsaid no one on the Israeli boat was injured. The affiliation of the slain \nguerrillas was not immediately known.\n---\n  Rival factions of the guerrilla group led by terrorist mastermind Abu\nNidal \nbattled Sunday in Tyre, Lebanon, with machine guns and rocket-propelled \ngrenades, killing at least four people and wounding 15, police said.\n---\n Lebanon's mainstream Shiite Muslim militia said Thursday that it had \nuncovered a network of tunnels in a southern Lebanese village where it said\npro-\nIranian kidnappers had held Western hostages.\n  \n     Officials of the militia, Amal, led local journalists through the\ncatacomb-\nlike alleys and showed them two cells with iron doors at the village, \nKawthariyet al Siyad, near Tyre, the ancient port city, about 40 miles\nsouth of \nBeirut.\n  \n     The officials said they were certain that U.S. Marine Lt. Col. William\nR. \nHiggins was detained there shortly after he was seized by gunmen on a road \noutside Tyre in February 1988.\n--------------\n...anyway, I counted 20 articles during these 3 years of reporting. I also\nfound out the possible reason why the numbers for the inhabitants of the\ncity is defined between 14000 and 24000. It seems that Tyre is one of the\nplaces\nwhere people from Libanon flee to during more extensive bombings, so\nthere's\na constant flow of refugees entering and leaving Tyre (articles mentioned\nthousands of people entering and leaving this place).\n\nI counted 0 articles for my home town, Kristinestad, so from now I will\nconsider this place to be a fishing village :-).\n\nCheers,\nKent\n\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 48, "properties": {"category": "comp.graphics", "text": "From: mikec@sail.LABS.TEK.COM (Micheal Cranford)\nSubject: Disney Animation\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 5\n\n------------------------------------\n\n  Can anyone tell me anything about the Disney Animation software package?\nNote the followup line (this is not for me but for a colleague).\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 49, "properties": {"category": "alt.atheism", "text": "From: lucio@proxima.alt.za (Lucio de Re)\nSubject: A fundamental contradiction (was: A visit from JWs)\nReply-To: lucio@proxima.Alt.ZA\nOrganization: MegaByte Digital Telecommunications\nLines: 35\n\njbrown@batman.bmd.trw.com writes:\n\n>\"Will\" is \"self-determination\".  In other words, God created conscious\n>beings who have the ability to choose between moral choices independently\n>of God.  All \"will\", therefore, is \"free will\".\n\nThe above is probably not the most representative paragraph, but I\nthought I'd hop on, anyway...\n\nWhat strikes me as self-contradicting in the fable of Lucifer's\nfall - which, by the way, I seem to recall to be more speculation\nthan based on biblical text, but my ex RCism may be showing - is\nthat, as Benedikt pointed out, Lucifer had perfect nature, yet he\nhad the free will to \"choose\" evil.  But where did that choice come\nfrom?\n\nWe know from Genesis that Eve was offered an opportunity to sin by a\ntempter which many assume was Satan, but how did Lucifer discover,\ninvent, create, call the action what you will, something that God\nhad not given origin to?\n\nAlso, where in the Bible is there mention of Lucifer's free will?\nWe make a big fuss about mankind having free will, but it strikes me\nas being an after-the-fact rationalisation, and in fact, like\nsalvation, not one that all Christians believe in identically.\n\nAt least in my mind, salvation and free will are very tightly\ncoupled, but then my theology was Roman Catholic...\n\nStill, how do theologian explain Lucifer's fall?  If Lucifer had\nperfect nature (did man?) how could he fall?  How could he execute an\nact that (a) contradicted his nature and (b) in effect cause evil to\nexist for the first time?\n-- \nLucio de Re (lucio@proxima.Alt.ZA) - tab stops at four.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 50, "properties": {"category": "sci.space", "text": "From: nicho@vnet.IBM.COM (Greg Stewart-Nicholls)\nSubject: Re: Vandalizing the sky.\nReply-To: nicho@vnet.ibm.com\nDisclaimer: This posting represents the poster's views, not those of IBM\nNews-Software: UReply 3.1\nX-X-From: nicho@vnet.ibm.com\n            <C5y4t7.9w3@news.cso.uiuc.edu>\nLines: 9\n\nIn <C5y4t7.9w3@news.cso.uiuc.edu> George F. Krumins writes:\n>It is so typical that the rights of the minority are extinguished by the\n>wants of the majority, no matter how ridiculous those wants might be.\n Umm, perhaps you could explain what 'rights' we are talking about\nhere ..\n -----------------------------------------------------------------\nGreg Nicholls ...         : Vidi\nnicho@vnet.ibm.com or     : Vici\nnicho@olympus.demon.co.uk : Veni\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 51, "properties": {"category": "comp.sys.mac.hardware", "text": "From: isaaci@ccsg.tau.ac.il (barash isaac)\nSubject: Spigot on LC III\nOrganization: Tel-Aviv University Computation Center\nLines: 16\n\nA friend of mine has problems running Spigot LC on an LC III.\nHis configuration is:\n\nSpigot LC / LC III, System 7.1\nVideo Spigot Extension 1.0\n\nI would appriciate if I can get any postitive/negative experience with this\nsetup.  \n\nThanks,\n\n-Amir\n\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 52, "properties": {"category": "talk.politics.misc", "text": "From: acunerbb@csugrad.cs.vt.edu (B. Bilal Acuner)\nSubject: Turkish Preisident Turgut Ozal passed away\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 6\nNNTP-Posting-Host: csugrad.cs.vt.edu\n\nTurkish president Turgur Ozal has passed away today after a heart  attack in Ankara at 11:00 am GMT .\nMr. Ozal was 66 years old.\n\nBahadIr Acuner\nacunerbb@csugrad.cs.vt.edu\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 53, "properties": {"category": "sci.electronics", "text": "From: ritley@uimrl7.mrl.uiuc.edu ()\nSubject: SEEKING THERMOCOUPLE AMPLIFIER CIRCUIT\nReply-To: ritley@uiucmrl.bitnet ()\nOrganization: Materials Research Lab\nLines: 17\n\n\n\nI would like to be able to amplify a voltage signal which is\noutput from a thermocouple, preferably by a factor of\n100 or 1000 ---- so that the resulting voltage can be fed\nmore easily into a personal-computer-based ADC data\nacquisition card.\n\nMight anyone be able to point me to references to such\ncircuits?  I have seen simple amplifier circuits before, but\nI am not sure how well they work in practice.\n\nIn this case, I'd like something which will amplify sufficiently\n\"nicely\" to be used for thermocouples (say, a few degrees\naccuracy or better).\n\nAny pointers would be greatly appreciated!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 54, "properties": {"category": "sci.crypt", "text": "From: ji@cs.columbia.edu (John Ioannidis)\nSubject: Re: Source of random bits on a Unix workstation\nArticle-I.D.: cs.C5Jp0K.4p5\nOrganization: Columbia University Department of Computer Science\nLines: 35\n\nIn article <C5JA6s.A59@cs.psu.edu> so@eiffel.cs.psu.edu (Nicol C So) writes:\n>In article <897@pivot.sbi.com> bet@sbi.com (Bennett Todd @ Salomon Brothers Inc., NY ) writes:\n>>This came up because I decided to configure up MIT-MAGIC-COOKIE-1 security\n>>for X11R5. For this to work you need to stick some bits that an intruder\n>>can't guess in a file (readable only by you) which X client applications\n>>read. They pass the bits back to the server when they want to establish a\n>>connection.\n>>\n>>...\n>>What I settled on was grabbing a bunch of traffic off the network.\n>>Basically, I ran\n>>\n>>\tetherfind -u -x greater 0|compress\n>>\n>>and skipped over 10K of output, then grabbed my bits. As best I can tell,\n>>these are bits that can be expected to be reasonably uniformly distributed,\n>>and quite unguessable by an intruder.\n>\n>For your application, what you can do is to encrypt the real-time clock\n>value with a secret key.\n\nFor a good discussion of cryptographically \"good\" random number\ngenerators, check out the draft-ietf-security-randomness-00.txt\nInternet Draft, available at your local friendly internet drafts\nrepository. \n\nA reasonably source of randomness is the output of a cryptographic\nhash function (e.g., MD5), when fed with a large amount of\nmore-or-less random data. For example, running MD5 on /dev/mem is a\nslow, but random enough, source of random bits; there are bound to be\n128 bits of entropy in the tens (or hundreds) of megabytes of data in\na modern workstation's memory, as a fair amount of them are system\ntimers, i/o buffers, etc.\n\n/ji\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 55, "properties": {"category": "talk.politics.misc", "text": "Subject: Re: NEWS YOU MAY HAVE MISSED, 3/23\nFrom: sgoldste@aludra.usc.edu (Fogbound Child)\n > <1pklht$krf@genesis.MCS.COM> <1pprtvINNctl@aludra.usc.edu> <1pqfbd$e6b@genesis.MCS.COM>\nOrganization: University of Southern California, Los Angeles, CA\nNNTP-Posting-Host: aludra.usc.edu\nLines: 47\n\narf@genesis.MCS.COM (Jack Schmidling) writes:\n\n>In article <1pprtvINNctl@aludra.usc.edu> sgoldste@aludra.usc.edu (Fogbound Child) writes:\n>>arf@genesis.MCS.COM (Jack Schmidling) writes:\n>>\n>>>In article <1993Apr1.164804.1105@Rapnet.Sanders.Lockheed.Com> babb@k2 (Scott Babb) writes:\n>>>>Jack Schmidling (arf@genesis.MCS.COM) wrote:\n>>>>: jac2y@Virginia.EDU (Jonathan A. Cook <jac2y>) writes:\n>>>>: : \n>>\n>>[...]\n>>\n>>>>Why do you restrict your condemnation of racial strife to Israel?\n>>>>Do the situations in Bosnia, Tibet, China, etc. not merit your comment?\n>>\n>>>As far as I am aware, we have not sent close to $100 billion dollars to\n>>\t\t\t\t\t\t  ^^^\n>>\t\t\t\tLet's not exaggerate.\n\n\n>I notice you did not offer an alternative number.  Try this one on for\n>size..... by the year 2000, American taxpayers will have given Israel\n>one dollar for every star in the Milky Way Galaxy.\n\n>I will let you look up the number.\n\nOK, I admit I have no hard data on this. Why don't you help me with this?\nIf you would compile a commented list of all grants, un-repaid loans (if any),\nand direct aid, I'd be very interested to see it. If you could give me\nreferences from, for example, Congressional Budget Authorization Hearings,\nI could look them up here and I'd be happy to post a verification of your\ndata.\n\nOtherwise, I'll try my hand at this, but unfortunately I won't have sufficient\ntime available until the end of this month, so the results would be delayed.\n\nLet me know if you're interested in doing this.\n\n___Samuel___\nMossad Special Agent ID314159\nMedia Spiking and Mind Control Division\nLos Angeles Offices\n-- \n_________Pratice Safe .Signature! Prevent Dangerous Signature Virii!_______\nGuildenstern: Our names shouted in a certain dawn ... a message ... a\n              summons ... There must have been a moment, at the beginning,\n              where we could have said -- no. But somehow we missed it.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 56, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: My Gun is like my American Express Card\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 85\n\nIn article <CMM.0.90.2.735132009.thomasp@surt.ifi.uio.no> Thomas Parsli <thomasp@ifi.uio.no> writes:\n>Drivers licence:\n>Forgot that USA is THE land of cars.....\n>Getting one in Scandinavia (and northern europe) is not easy.\n>Average time is about 20 hours of training, and the cost is rather......\n\nIs the license required for driving a car exclusively on private\nproperty, such as a farm? Here in the United States, the license\nis required only for the use of public roads.\n\n>Abuse by the goverment:\n>This seems to be one of the main problems; Any harder gun-control\n>would just be abused by the goverment.(!)\n>Either some of you are a little paranoid (no offence...) OR you should\n>get a new goverment. (You do have elections??)\n\nWe also have a nation of 250 million people, _many_ issues and\nusually only two candidates for a given office. A President\nmight be willing to abuse mild gun control laws and create\na de-facto ban (something a majority of the people would object to)\nand still be elected: The voters might look at issues like the\ncivil rights of minorities, health care, etc... and vote\nfor the \"lesser of two evils.\" I don't think this is a matter\nof paranoia, since local governments in (for example) New York\nand Chicago have abused existing, mild gun control laws to \ncreate a virtual ban.\n\n>Guns 'n Criminals:\n>MOST weapons used by criminals today are stolen.\n>Known criminals can NOT buy weapons, that's one of the points of gun control.\n\nIn which case, the United States already has adaquate gun control laws:\nAccording to federal statistic, only 7% of gun-wielding criminals\nlegally purchase their own guns from licensed dealers. If that's\nthe point of gun control (to prevent criminals from legally purchasing\nguns) then America doesn't need any additional laws to accomplish\nthis.\n\n>Mixing weapons and things that can be use as one:\n>What I meant was that cars CAN kill, but they are not GUNS!\n\nHow is this any different from guns? There are legal purposes for\nowning and using a gun: They are appropriate tools for hunting,\ntarget shooting and self-defence. Like cars, murder isn't\ntheir only (or even a common) use.\n\n>If 50% of ALL murders was done with axes, would you impose some regulations on them\n>or just say that they are ment to be used at trees, and that the axe is not a problem,\n>it's the 'axer' ??\n\nI certainly couldn't imagine the American public accepting regulation\nof axes. While the politics of other nations may be different,\nin America there is strong opposition to any intrusive law that\nprimarily would effect the average, law-abiding citizen who had\nnot done anything wrong.\n\n>Think about the situation in Los Angeles where people are buying guns to protect\n>themselves. Is this a good situation ?? Is it the rigth way to deal with the problem ??\n\nA good way to deal with which problem? It is an excelent way to deal \nwith the short-term problem of rioting and violent attacks. Of course,\nit doesn't do anything for the long-term issues that start riots. But\nat this point, what can these individuals do about long-term social\nproblems? \n\n>If everybody buys guns to protect themselves from criminals (and their neighbor who have\n>guns) what do you think will happen ?? (I mean if everybody had a gun in USA)\n\nThere are, according to surveys, guns in 40% of American homes.\nIn many parts of the country, this is closer to 100%. Those places\nwhere almost everyone owns a gun are, on average, safer than those\nwhere guns are less common.\n\n>LAST WORD:\n>Responsible gun owners are not a problem, but they will be affected if\n>you want to protect your citicens.\n\nThis is, I think, a fundamental difference between American government\nand that of other nations. Here it is not acceptable to punish\nor restrict the average, law-abiding citizen in the name of some\nvague \"common good.\" \n\n                                                   Frank Crary\n                                                   CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 57, "properties": {"category": "alt.atheism", "text": "From: mccullou@snake2.cs.wisc.edu (Mark McCullough)\nSubject: Re: Idle questions for fellow atheists\nOrganization: University of Wisconsin, Madison -- Computer Sciences Dept.\nLines: 43\n\nIn article <1993Apr5.124216.4374@mac.cc.macalstr.edu> acooper@mac.cc.macalstr.edu writes:\n>\n>I wonder how many atheists out there care to speculate on the face of the world\n>if atheists were the majority rather than the minority group of the population. \n\nProbably we would have much the same problems with only a slight shift in\nemphasis.  Weekends might not be so inviolate (more common to work 7 days\na week in a business), and instead of American Atheists, we would have\nsimilar, religious organizations.  A persons religious belief seems more\nas a crutch and justification for actions than a guide to determine actions.\nOf course, people would have to come up with more fascinating \nrationalizations for their actions, but that could be fun to watch...\n\nIt seems to me, that for most people, religion in America doesn't matter\nthat much.  You have extreemists on both ends, but a large majority don't\nmake too much of an issue about it as long as you don't.  Now, admittedly,\nI have never had to suffer the \"Bible Belt\", but I am just north of it\nand see the fringes, and the reasonable people in most things tend to be\nreasonable in religion as well.  \n\n\n>Also, how many atheists out there would actually take the stance and accor a\n>higher value to their way of thinking over the theistic way of thinking.  The\n>typical selfish argument would be that both lines of thinking evolved from the\n>same inherent motivation, so one is not, intrinsically, different from the\n>other, qualitatively.  But then again a measuring stick must be drawn\n>somewhere, and if we cannot assign value to a system of beliefs at its core,\n>than the only other alternative is to apply it to its periphery; ie, how it\n>expresses its own selfishness.\n>\n\nI don't bother according a higher value to my thinking, or just about\nanybodys thinking.  I don't want to fall in that trap.  Because if you \ndo start that, then you are then to decide which is better, says whom,\nwhy, is there a best, and also what to do about those who have inferior\nmodes of thinking.  IDIC  (Infinite Diversity in Infinite Combinations.)\nI'll argue it over a soda, but not over much more.\n\nJust my $.12  (What inflation has done...)\n\nM^2\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 58, "properties": {"category": "comp.graphics", "text": "From: tom@inferno.UUCP (Tom Sherwin)\nSubject: Re: XV under MS-DOS ?!?\nOrganization: Periphonics Corporation\nLines: 30\nNNTP-Posting-Host: ablaze\n\n|> Hi ... Recently I found XV for MS-DOS in a subdirectory of GNU-CC (GNUISH). I \n|> use frequently XV on a Sun Spark Station 1 and I never had problems, but when I\n|> start it on my computer with -h option, it display the help menu and when I\n|> start it with a GIF-File my Hard disk turns 2 or 3 seconds and the prompt come\n|> back.\n|> \n|> My computer is a little 386/25 with copro, 4 Mega rams, Tseng 4000 (1M) running\n|> MS-DOS 5.0 with HIMEM.SYS and no EMM386.SYS. I had the GO32.EXE too... but no\n|> driver who run with it.\n|> \n|> Do somenone know the solution to run XV ??? any help would be apprecied..\n|> \t\t\n\nYou probably need an X server running on top of MS DOS.  I use Desqview/X\nbut any MS-DOS X server should do.\n\n-- \n\n       XX           X  Technical documentation is writing 90% of the words\n        XX         X  for 10% of the features that only 1% of the customers\n         XX       X  actually use.\n          XX     X  -------------------------------------------------------\n  A PC to  XX   X  I don't have opinions, I have factual interpretations...\n the power  XX X                                 -Me\n    of      X XX  ---------------------------------------------------------\n           X   XX  ...uunet!rutgers!mcdhup!inferno!tom can be found at\n          X     XX               Periphonics Corporation\n         X       XX  4000 Veterans Memorial Highway  Bohemia, NY 11716\n        X         XX  ----------------------------------------------------\n       X           XX  They pay me to write, not express their opinions...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 59, "properties": {"category": "misc.forsale", "text": "From: sponna@eos.ncsu.edu (SRIKANTH  PONNAPALLI)\nSubject: Super Scope6 for sale (SNES)\nOrganization: North Carolina State University\nLines: 17\n\n\n\tHello folks, I've a super scope 6 for sale, it comes with a \nCRT and all boxes and instructions included $50 shipping included. \nI got that only a month back and used only twice.\n-- \n                     ,,,                                ,,,\n                    (o o)                              (o o)\n         _______oOO__(_)__OOo______________________oOO__(_)__OOo________\n        |                               |                               |\n        |  Srikanth Ponnapalli          |      E-mail address:          |\n        |      PoBox: 5604,             |                               |\n        |  Raleigh N.C. 27650-5604      |      sponna@eos.ncsu.edu      |\n        |  Phone:(919) 781-5448         |      ponna-s@aza.csc.ncsu.edu |\n        |  (after 9:00 pm)              |      sponnapa@math.ncsu.edu   |\n        |                               |                               |\n         _______________________________________________________________\n                (__)    (__)                       (__)    (__)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.005+0000", "event": "documents", "entityId": 60, "properties": {"category": "rec.autos", "text": "From: kvk@questor.sw.stratus.com (Ken Koellner)\nSubject: Sticky Lock on Tailgate\nOrganization: Stratus Computer, Software Engineering\nLines: 17\nDistribution: world\nNNTP-Posting-Host: questor.sw.stratus.com\n\n\n\nMy 1988 Toyota 4Runner has a rolldown rear window with a keylock\nswitch.  It sticky on me.  Yesterday it was tough to get the\nkey to work and it also happened to stick on in the up direction\nso the stalled motor was powered all night killing the battery.\n\nI'd like to try to lubricate the lock switch. What should I lubricate\nthe lock with?\n\nemail please, \n\nthanx, Ken.\n-- \n-------------------------------------------------------------------------------\n\"Don't drink American corporate swill.  Support you local micro-brewery.\" -me\n-------------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 61, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: marka@hcx1.ssd.csd.harris.com (Mark Ashley)\nSubject: EISA tape controllers\nOrganization: Harris CSD, Ft. Lauderdale, FL\nLines: 11\nDistribution: usa\nNNTP-Posting-Host: hcx1.ssd.csd.harris.com\n\nIs there a QIC-80 format tape drive that comes\nwith an EISA controller ?\nColorado's 250 only has ISA and MCA controllers.\n\nThanks. e-mail please.\n\n-- \n-------------------------------------------------------------------------\nMark Ashley                        |DISCLAIMER: My opinions. Not Harris'\nmarka@gcx1.ssd.csd.harris.com      |\nThe Lost Los Angelino              |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 62, "properties": {"category": "sci.med", "text": "From: rogers@calamari.hi.com (Andrew Rogers)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Flames 'R Us\nLines: 13\nNNTP-Posting-Host: calamari.hi.com\n\nIn article <1993Apr15.153729.13738@walter.bellcore.com> jchen@ctt.bellcore.com writes:\n>Chinese, and many other Asians (Japanese, Koreans, etc) have used\n>MSG as flavor enhancer for two thousand years. Do you believe that\n>they knew how to make MSG from chemical processes? Not. They just\n>extracted it from natural food such sea food and meat broth.\n\nAnd to add further fuel to the flame war, I read about 20 years ago that\nthe \"natural\" MSG - extracted from the sources you mention above - does not\ncause the reported aftereffects; it's only that nasty \"artificial\" MSG -\nextracted from coal tar or whatever - that causes Chinese Restaurant\nSyndrome.  I find this pretty hard to believe; has anyone else heard it?\n\nAndrew\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 63, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: Gatewaying Microsoft Mail/Workgroups via 96\nFrom: wesj@extsparc.usu.edu (Wes James)\nReply-To: wesj@extsparc.usu.edu\nDistribution: world\nOrganization: Sun Microsystems, Inc.\nNntp-Posting-Host: extsparc.agsci.usu.edu\nLines: 40\n\n\nWe here at Utah State University Cooperative Extension have been using\nW4Wg for a while now.  We wanted to talk to the internet with the mail\npackage so we got the smtp gateway.  You also need a tcp/ip transport\npackage on top of that which is utterly stupid but that's what they\nrequire to get the smtp gateway to work.  You need a dedicated pc\nfor the gateway and if you are looking at remote access you need another\ndedicated pc for the remote mail stuff.  We do not have the remote mail\ngoing but you indicate that that is what you want to do.  \n\nThere is a glitch somewhere in the system though.  I don't know if it\nis MS mail, the gateway or the VAX here on campus that is choking in the\nmail that is sent.  The scenario is this.  The outgoing mail goes to a\nUnix system which then routes the mail where it needs to go.  If that mail\nis routed to the VAX, the VAX has problems some times receiving the mail.\nMost messages do get through this way except if someone has there mail\non the VAX forwarded to some other location.  That is the main gotcha.\nWhere ever the mail is forwarded to that person gets a message header\nthen a message saying \"Boudary:= (error garbage code stuff)\".  If you\ncan stay away from sending to a VAX you are ok.  The system people\nof course say that the VAX is not the problem, the gateway is probably\nthe problem.  If anyone wants to get help it is only $175.00 for one\nsupport call. (until problem is worked out)  Phooey to that I say.  I\nam looking vigorously for a better Idea.  \n\nIf you go forward on any of this and find out anything knew,  please\ndrop me a note - anyone.  The next itteration is supposed to have tcp/ip\nbuilt in THEY say........  The netxt itteration of w4wg\n\nGood Luck!!!!!\n\n*******************************************************************\n  Wes James                   Email:  wesj@extsparc.agsci.usu.edu\n  Utah State University\n  Cooperative Extension\n  Systems Specialist\n  UMC 4900                    Voice:  (801)750-2229\n  Logan, UT 84322-4900          FAX:  (801)750-3268\n*******************************************************************\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 64, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Superstars and attendance (was Teemu Selanne, was +/- leaders)\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nDistribution: na\nLines: 115\n\n\nDean J. Falcione (posting from jrmst+8@pitt.edu) writes:\n[I wrote:]\n\n>>When the Pens got Mario, granted there was big publicity, etc, etc,\n>>and interest was immediately generated.  Gretzky did the same thing for LA. \n>>However, imnsho, neither team would have seen a marked improvement in\n>>attendance if the team record did not improve.  In the year before Lemieux\n>>came, Pittsburgh finished with 38 points.  Following his arrival, the Pens\n>>finished with 53, 76, 72, 81, 87, 72, 88, and 87 points, with a couple of\n                          ^^\n>>Stanley Cups thrown in.\n      \n>It was at this point the Pens attendance was near capacity (34 out of 40 \n>sellouts) yet they hadn't made the playoffs since 1982.  How do you explain\n>a 6th place team breaking attendance records when they haven't been to the\n>playoffs in 7 years?  Mario Lemieux is the explanation, IMHO.  \n\n>You could make a case that the *expectation* of an improving team that\n>would make the playoffs is the reason. \n\nFunny you should mention it...this is exactly the case I was going to make.\n\n>But I think the reason is Lemieux\n>had a 168 point season and was the first non-Gretzky to win the Hart and\n>Ross since 1980.  People turned out to watch him play. \n\nI will grant that a star like Mario will draw fans, even if the team sucks. \nBut this is short term only; I still do not think the attendance increase \nwill last, unless the team is a winning/competitive/improving/butt-kicking\none.  Pittsburgh was still getting better, so people continued to support\nthem.  If they suddenly dropped to, say, 50 points, you'd have knee surgery\nfor some of the people jumping off the bandwagon.  \n\n>Also, the following year (88-89) the Pens had 89 points not 87. \n\nOk.  My numbers came from the NHL Guide and Record Book. \n\n>They made the transaction to try and build a winner around Mario, that is \n>true.  But the improvement in attendance came before they started doing\n>this (Coffey late in 1987) and before they even had a playoff bound team.\n>A doubling of attendance occured in 1984-85 from the previous year.  An\n>increase from 38 points to 53 points is not going to do that.  The arrival\n>of Mario Lemieux is what did it. \n\nYou can give the credit to Mario since he deserves it.  But my point is that\nit wasn't Mario himself, but it was the *expectation* of things to come (i.e.\na winning team) that he created by being the next great hockey superstar. And\nbefore anybody jumps in and says I'm nit-picking and mincing words, go back\nand read from where this thread started...\n\nIt might help to think about what would go through a fan's mind who suddenly\nfound an interest in Mario and the Pens.  Was it \"gee, Mario Lemieux is\namazing, I'll go watch him play\", or was it \"gee, now we've got a *kick*\n*ass* guy on *our* side, I'll go watch him play\".  I think it was the latter.\n\n> Similar thing happened in L.A.   Before\n>Gretzky's arrival, about 12000 per game.  After, constant sellouts.  They\n>are STILL selling out every game despite showing little or no improvement\n>since Gretzky's first year there.  How do you explain it?  People are going\n>to see Gretzky.  they certainly aren't going to see a winner, they haven't\n>GOT a winner.  They've had MUCH better teams in their past history than\n>they currently have, yet they didn't draw as well then.\n\nI don't think this is accurate.  The *tickets* sell, but people don't go to\nthe games.  I think this thread has already been discussed...season ticket\nholders in LA don't always use their tickets.  So in effect, after the Kings\ninitial success following Gretzky's arrival (68 to 91 points, same source)\nand corresponding attendance jump, there has been an effective drop in\nattendance even though ticket sales may not have changed much.  \n\nWhether or not the Kings are a 'winner' is debatable.  I claim that since\nGretzky's arrival they have at the very least been competitive...I also claim\nthat McNall has made a stupid move in trying to reassemble the Oiler\ndynasty...but that's another story and included only because I don't like\nMcNall:-).  Anyway,  McNall did do some heavy marketing around Gretzky, and\nthat undoubtedly was also responsible for the attendance and merchandising\nsales, etc.  But as I said, when the Kings have been in there little\ntailspins over the past couple of years there have been empty seats at the\nForum even if the tickets were sold.\n\n>I think in the case of a Lemieux or Gretzky, the player can transcend\n>winning as the major drawing power.  \n\nFor the short term, IMO.  Although I think that it's inevitable that the team\nwill improve with a player such as Lemieux or Gretzky, simply because they\nmake people around them better.\n\n>But winning sure as hell helps.  ;-)\n\nWell, at least we are in full agreement here!\n\n>This does not make Roger's point any more valid, but the Jets aren't\n\nSo are you saying Roger has ever had a valid point? <couldn't resist...>\n\n>getting a HUGE jump in productivity, yet they ARE getting a huge\n>jump in attendance.  This is due to the emergence of Teemu Selanne.\n>They have the 17th best record in hockey, it sure as hell isn't because\n>they are winning.\n\nYes, but they are doing no worse than last year.  I think the same type of\nreasoning I applied to a new Pittsburgh fan applies to all the extra people\nshowing up at Winnipeg games.  It's difficult to predict, but do you think\nthat if the Jets miss the playoffs next season that in the year after they\nwill maintain their attendance levels?  I seriously doubt it, because in that\ncase the expectation of an improving team would be gone, with or without\nSelanne.\n\nI did provide the example of Rocket Ismail and the Toronto Argonauts of the \nCFL...did you leave it out because you don't know much about the CFL?  If \nthat's the case then fair enough, but if it isn't the case then I'm curious\nto hear your explanation.\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 65, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: nilayp@violet.berkeley.edu (Nilay Patel;;;;RC38)\nSubject: Re: Bernoulli Drives/Disks...\nOrganization: University of California, Berkeley\nLines: 20\nNNTP-Posting-Host: violet.berkeley.edu\n\nIn article <C62onK.F7A@netnews.jhuapl.edu> ncmoore2@netnews.jhuapl.edu (Nathan Moore) writes:\n>nilayp@violet.berkeley.edu (Nilay Patel) writes:\n\n>>I am looking for Bernoulli removable tapes for the 20/20 drive..\n>>Don't laugh ... I am serious...\n>>If you have any 20 MB tapes lying around that you would like to get rid of,\n>>please mail me ... \n>\n>>-- Nilay Patel\n>>nilayp@violet.berkeley.edu\n\n>You do mean disks, don't you, not tapes?  You forgot to say whether you\n>were looking for the old 8\" or the newer 5.25\".\n\nWell...I need the old 8\" disks ... You are right, disks is a better word,\nbut they are so big and calling them disks is kind of funny ... but the\nappropriate word is disks ...\n\n-- Nilay Patel\nnilayp@violet.berkeley.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 66, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Iapetus/Saturn Eclipse\nOrganization: Jet Propulsion Laboratory\nLines: 79\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nForwarded from John Spencer (spencer@lowell.edu):\n\nThere will be two eclipses of Iapetus by Saturn and its\nrings, in May and July.  Please spread the word!  Here's some\ninformation about the events, and then a couple of messages from Jay\nGoguen of JPL appealing for thermal observations of the eclipse to\nlearn more about the thermal properties of Iapetus.  He might also have\nsome money available...\n\nJohn Spencer, 1993/04/21\n\nIapetus will be eclipsed by the shadows of Saturn's rings and Saturn\nitself on 1993/05/01-02 (18:27-13:43 UT) and again on 1993/07/20-21,\n(21:16-09:38 UT).  Timing is as follows;\n\n     1993 May 1-2\n\n        A-ring ingress  18:27\n               egress   19:30\n        B-ring ingress  19:51\n               egress   21:42\n        C-ring egress   23:00\n        Saturn ingress  23:59\n               egress   10:02\n        B-ring ingress  10:28\n               egress   12:19\n        A-ring ingress  12:40\n               egress   13:43\n\n     1993 July 20-21\n\n        Saturn ingress  21:16\n               egress   05:08\n        A-ring ingress  05:13  (grazing)\n               egress   09:38\n\nTimes could be 30 minutes later according to an alternate ephemeris,\nand photometric observations are important for refining Iapetus'\norbit.  Because the Sun's size projected on the rings as seen from\nIapetus is 3100 km it's unlikely that we will learn anything new about\nthe rings themselves from the observations.  See Soma (1992), Astronomy\nand Astrophysics 265, L21-L24 for more details.  Thanks to Andy Odell\nof Northern Arizona University for bringing the events to my\nattention.\n\nTHERMAL OBSERVATIONS?\n\nJay Goguen (jdg@scn5.Jpl.Nasa.Gov) writes:\n\n  To me, the interesting thing to do would be thermal IR of the 20 July\n  disappearance into the shadow of the planet to measure thermal inertia,\n  etc.  Unfortunately, the 21:30 UT of this event renders it inaccessible,\n  except from Russia.  Even from Calar Alto, Saturn is rising through 3\n  airmasses at 23:00 UT.  Do you know anyone in Russia or Ukraine with\n  a big telescope and 10 um instrumentation that's looking for something\n  to do?  I'd be willing to make a personal grant of >$100 for the data.\n\n  Jay\n\nand again:\n\n  please try to encourage anyone that can observe the iapetus planet\n  disappearance to do so at thermal wavelengths.  My impression would\n  be that it's not an easy observation.  Iapetus will be faint and\n  getting fainter in eclipse, so you'll need a big telescope that's a\n  good IR telescope and reasonable 10 - 20 um instrumentation.  I don't\n  think that combination is widely available at the longitudes that are\n  well placed for observation.  We need SOFIA for this one.  One\n  possibility would be the IR telescope in India, but it's only a 1.2 m.\n\njay\n\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 67, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: Analgesics with Diuretics\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\n\nIn article <ofk=lve00WB2AvUktO@andrew.cmu.edu> Lawrence Curcio <lc2b+@andrew.cmu.edu> writes:\n>I sometimes see OTC preparations for muscle aches/back aches that\n>combine aspirin with a diuretic.\n\nYou certainly do not see OTC preparations advertised as such.\nThe only such ridiculous concoctions are nostrums for premenstrual\nsyndrome, ostensibly to treat headache and \"bloating\" simultaneously.\nThey're worthless.\n\n>The idea seems to be to reduce\n>inflammation by getting rid of fluid. Does this actually work? \n\nThat's not the idea, and no, they don't work.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 68, "properties": {"category": "sci.electronics", "text": "From: elliott@optilink.COM (Paul Elliott)\nSubject: Re: Analog switches/Balanced Demodulators\nDistribution: na\nOrganization: DSC/Optilink Access Products\nLines: 53\n\nIn article <msf.734832494@skaro> msf@skaro.as.arizona.edu (Michael Fulbright) writes:\n>I am trying to build a synchronous demodulator and I've hit a snag.\n>In my application I want to be able to change the gain of an\n>op amp amplifier from 1 to -1, controlable via a digital input.\n>The most obvious way I've come up with is to use analog switches\n>to adjust the gain of the op amp. The only analog switch I have\n>experience with it the 4066. Unfortunately I want to switch an\n>AC signal which goes from about -5V to 5V, and the 4066 is only\n>for positive signals.\n>[...]\n> I have a carrier signal which varies between 0V and +5V. I want\n>to demodulate an input signal by feeding the input signal thru a\n>amp with a gain of 1 when the carrier is at +5V, and thru a amp\n>with a gain of -1 when the carrier is 0V. The output is then\n>low pass filtered. I believe this is called lock in detection as well\n>as synchronous demodulation.\n\nLook at the 4053.  This is a triple 2-to-1 transmission-gate analog\nmultiplexer, with positive and negative power supplies (can be run\nfrom a single-ended supply as well).  With dual supplies, the logic\ninputs still range from ground (0 Volts) to VDD.\n\nThis is a neat (well, I think so) design for a switchable-polarity\namplifier:\n\n                 +-----/\\/\\/\\-------+\n                 |                  |\n                 |    /--------\\    |\nINPUT -+-/\\/\\/\\--+----| -      |    |\n       |              |  opamp |----+------- OUTPUT\n       +-/\\/\\/\\--+----| +      |\n                 |    \\--------/\n                 |\nCONTROL\t---------X (analog switch)\n                 |\n                 |\n                ---\n                GND\n\nAll resistors are equal-value.  When the analog switch is closed,\nthe amp is inverting-gain-of-one.  With the switch open, it is\nnon-inverting-gain-of-one.  You can clean up the circuit to trim\nout input offset current if this hurts the balance (this would show\nup as carrier feed-through).\n\nFor high frequencies, the slew-rate of the opamp might cause problems,\nespecially if it isn't symmetrical (and it usually isn't).\n\n-- \n--------     Paul Elliott - DSC Optilink - Petaluma, CA USA      ----------\n    {uunet,pyramid,tekbspa}!optilink!elliott -or- elliott@optilink.com\n       \"I used to think I was indecisive, but now I'm not so sure.\"\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 69, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: Snooper..any opinions\nFrom: Keith Whitehead <sir@office.acme.gen.nz>\nDistribution: world\nOrganization: Apple Source BBS\nX-Mailer: rnMac Buggy, I mean Beta, Test Version\nLines: 16\n\n\nHas anyone use Snooper or MacEKG or any other similar diagnostic \nsoftware.Any comparisons/reviews on these products would be very much \nappreciated.\n\nThanks in advance for your help\n\nCheers\n--\n\n\n==========================================================================\n:  Sir@office.acme.gen.nz                                                :\n:                                                                        :\n: Be thankfull that we dont get all the government we pay for!           :\n==========================================================================\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 70, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: winfrvk@dutiws.twi.tudelft.nl (R.v.Kampen)\nSubject: Re: FD controller question\nOrganization: Delft University of Technology\nLines: 22\n\nIn article <1993Apr11.045019.22221@nwnexus.WA.COM> paulf@halcyon.com (Marlboro Man) writes:\n>I am looking for a way to access the floppy drive at the I/O level, that\n>is, lower than the BIOS.  Given the port assignments, what controller\n>chip/spec sheet do I need info on?  My floppy is a 1.44M, and I would\n>also like to be able to write code that works on 360K disks as well.\n>Also, with the method of access, is it possible to actually read the\n>individual bytes on the track as they stream into the controller?  I'm\n>afraid the sector handling is done purely through hardware.\n>\n>If on the off chance I can get this basic on the access, anything to\n>point me in the right direction would help a lot.\n>\nthere is a file out there (look for it with archie) that is called\n'theref22.zip' which has lots of info on various PC things,\namongst which is also a detailed description of all Floppy controller\ncommands, I think hard drive controller commands are not there.\n\nit is possible to read an entire track including all gaps, sector\nheaders etc.   by setting sector size to something very large (like\n8K).\n\nwillem\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 71, "properties": {"category": "talk.politics.guns", "text": "From: bressler@iftccu.ca.boeing.com (Rick Bressler)\nSubject: Re: \"Proper gun control?\" What is proper gun control? (was Re: My Gun is like my American Express Card)\nOrganization: Boeing Commercial Airplane Group\nLines: 16\n\n/ iftccu:talk.politics.guns / hays@ssd.intel.com (Kirk Hays) /  3:31 pm  Apr 13, 1993 /\n\n>Some of the pro-gun posters in this group own no guns.  The dread \n>\"Terminator\", aka \"The Rifleman\", owned no firearms for several years \n>while posting in this group, as an example.  There are others.\n\nGood point, Kirk.\n\nHe's still around too.  He's responded by email to a couple of my posts, \nand gosh darn, he's gotten down right civil!  This happed about the time \nhe got his first firearm.  Wonder if there is a relationship here?  Turns\nout that MOST people (at least the ones who are not criminals to start\nwith) act responsibility once given the chance.\n\nRick.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 72, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Revelations - BABYLON?\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 27\n\nHal Heydt writes:\n\n>That was only the fall of the *Western* Empire.  The *Eastern* Empire\n>continued for another 1000 years--and a key element in it's fall was\n>the *Christian* sack of Constantinople.\n\nNote that I said the fall of Rome, not of the Empire.  The Roman Empire\nlasted until 1453, with its transfered capital in Constantinople.  The\nmain reason for it's fall was not so much the sack of Constantinople by\nthe men of the 4th Crusade (who were not Christians - they had been\nexcommunicated down to the last man after attacking the Christian city\nof Zara in Croatia), but rather the disastorous defeat in the battle of\nMazinkert.  After the Turks breached the frontier, it was only a matter\nof time before the Empire fell, the inability of the Empire to hold onto\nthe rim of Anatolia, with the Ottomans and Rum Seljuks in the middle\nshould be quite obvious to any student of history.  The sack of\nConstantinople only hastened the inevitable along.  For if the Greeks\nhad wanted to save their empire, why would they not cooperate with the\nCrusaders when they came to do battle with the Saracens in the 1st-3rd\nCrusades?  Because of their obstinacy over cooperating with people they\nconsidered heretics, even though those \"heretics\" were fighting for the\ncause of the Empire and Christendom in doing battle with the Turkish\nhordes in Anatolia, Edessa, Lebanon, Palastine, and Syria, the some\nhordes who were to later sack Constantinople, and overrun a third of\nEurope (the Balkans, Hungary, the Ukraine, the Caucasus, etc.)\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 73, "properties": {"category": "comp.graphics", "text": "From: bbs.mirage@tsoft.net (Jerry Lee)\nSubject: Cobra 2.0 1-b-1 Video card HELP ME!!!!\nOrganization: The TSoft BBS and Public Access Unix, +1 415 969 8238\nLines: 22\n\nDoes ANYONE out there in Net-land have any information on the Cobra 2.20 \ncard?  The sticker on the end of the card reads\n        Model: Cobra 1-B-1\n        Bios:  Cobra v2.20\n\nI Havn't been able to find anything about it from anyone!  If you have \nany information on how to get a hold of the company which produces the \ncard or know where any drivers are for it, PLEASE let me know!\n\nAs far as I can tell, it's a CGA card that is taking up 2 of my 16-bit \nISA slots but when I enable the test patterns, it displays much more than \nthe usualy 4 CGA colors... At least 16 from what I can count.. Thanks!\n\n              .------------------------------------------.\n              : Internet: jele@eis.calstate.edu          :\n              :           bbs.mirage@gilligan.tsoft.net  :\n              :           bbs.mirage@tsoft.sf-bay.org    :\n              :           mirage@thetech.com             :\n              : UUCP    : apple.com!tsoft!bbs.mirage     :\n              `------------------------------------------'\n \n                    Computer and Video Imaging Major\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 74, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nOrganization: Express Access Online Communications USA\nLines: 54\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr22.003719.101323@zeus.calpoly.edu> jgreen@trumpet.calpoly.edu (James Thomas Green) writes:\n>prb@access.digex.com (Pat) Pontificated: \n>>\n>>\n>\n>I heard once that the voyagers had a failsafe routine built in\n>that essentially says \"If you never hear from Earth again,\n>here's what to do.\"  This was a back up in the event a receiver\n>burnt out but the probe could still send data (limited, but\n>still some data).  \n>\n\nVoyager  has the unusual  luck to be on a stable trajectory out of the\nsolar system.   All it's doing is collecting  fields  data,  and routinely\nsquirting it down.  One of the mariners is also in stable\nsolar orbit,  and still providing similiar  solar data.  \n\nSomething  in a planetary orbit,  is subject to much more complex forces.\n\nComsats, in \"stable \" geosynch  orbits,  require  almost daily\nstationkeeping operations.   \n\nFor the occasional  deep space bird,  like PFF  after pluto,  sure\nit could be left on  \"auto-pilot\".  but things like  galileo or\nmagellan,  i'd suspect they need enough  housekeeping that\neven untended they'd  end up unusable after a while.\n\nThe better question  should be.\n\nWhy not transfer  O&M of all birds to a separate agency with continous funding\nto support these kind of ongoing science missions.\n\npat\n\n\tWhen ongoing ops are mentioned,  it seems to  always quote  Operations\nand Data analysis.  how much would it cost to collect the data\nand let it be analyzed  whenever.  kinda like all that landsat data\nthat sat around for 15 years before someone analyzed it for the ozone hole.\n\n>>Even if you let teh bird drift,  it may  get hosed by some\n>>cosmic phenomena.   \n>>\n>Since this would be a shutdown that may never be refunded for\n>startup, if some type of cosmic BEM took out the probe, it might\n>not be such a big loss.  Obviously you can't plan for\n>everything, but the most obvious things can be considered.\n>\n>\n>/~~~(-: James T. Green :-)~~~~(-: jgreen@oboe.calpoly.edu :-)~~~\\ \n>| \"I know you believe you understand what it is that you        |   \n>| think I said.  But I am not sure that you realize that        |\n>| what I said is not what I meant.\"                             |\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 75, "properties": {"category": "rec.autos", "text": "From: mike@mks.com (Mike Brookbank)\nSubject: MGBs and the real world\nOrganization: Mortice Kern Systems Inc., Waterloo, Ontario, CANADA\nLines: 14\n\nMy sister has an MGB.  She has one from the last year they were produced\n(1978? 1979?).  Its in very good shape.  I've been bugging her for years\nabout selling it.  I've said over and over that she should sell it\nbefore the car is worthless while she maintains that the car may\nactually be increasing in value as a result of its limited availability.\n\nWhich one of us is right?  Are there MGB affectionados out there who are\nstill willing to pay $6K to 8K for an old MG?  Are there a lot out in the \nmarket?\n-- \n------------------------------------------------------------------------------\nMike Brookbank,                 |MKS| 35 King St. North       mike@mks.com \nDirector, InterOpen Sales,      |MKT| Waterloo, Ontario      (519)884-2251 \nMortice Kern Systems Inc.       |MKS| Canada, N2J 2W9    fax (519)884-8861\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 76, "properties": {"category": "rec.motorcycles", "text": "From: na4@vax5.cit.cornell.edu\nSubject: Aerostitch:  1- or 2-piece?\nDistribution: rec\nOrganization: Cornell University\nLines: 11\n\nRequest for opinions:\t\n\nWhich is better - a one-piece Aerostitch or a two-piece Aerostitch?\n\n\nWe're looking for more than \"Well, the 2-pc is more versatile, but the \n1-pc is better protection,...\"\t\n\nThanks in advance,\nNadine\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 77, "properties": {"category": "rec.motorcycles", "text": "From: ant@palm21.cray.com (Tony Jones)\nSubject: Re: Cobra Locks\nLines: 18\nNntp-Posting-Host: palm21\nOrganization: Cray Research Inc, Eagan, MN\nX-Newsreader: TIN [version 1.1 PL6]\nDistribution: usa\n\nSteve Bunis SE Southwest Chicago (doc@webrider.central.sun.com) wrote:\n: I was posting to Alt.locksmithing about the best methods for securing \n: a motorcycle.  I got several responses referring to the Cobra Lock\n: (described below).  Has anyone come across a store carrying this lock\n: in the Chicago area?\n: \n: Any other feedback from someone who has used this?\n\nWhat about the new Yamaha \"Cyclelok\" ?\nFrom the photo in Motorcyclist, it looks the same hardened steel as a \nKryptonite U lock, except it folds in five places.\nIt seems to extend out far enough to lock the rear tire to the tube of\na parking sign or similar.\n\nAnyone had any experience with them, how easy is it to attack the lock\nat the jointed sections ?\n\ntony\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 78, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jre@zeos.com (Jim Erickson)\nSubject: Bye\nOrganization: Zeos International, Ltd\nDistribution: comp.sys.ibm.pc.hardware, biz.zeos.general, biz.zeos.announce\nLines: 17\n\n   As of today I will no longer be a contact for Zeos International on the net.\nThis responsibility has been taken over by another tech (davidm@zeos.com) and I\nam moving up and on (mo money, mo money :)).  I just wanted to thank all of the\nnetters who have supported and encouraged the participation of Zeos on the net.\nI personally feel it is important for companies such as Zeos to provide their\ncustomers with as easy access as possible when they have questions/problems and\nbeing on the net is an big step in the right direction.  I hope that other\ncompanies will follow suit (as Weitek and others have done). Again, thanks.\n\n---JRE---\n\n-- \nJim Erickson             ZZZZ EEEE  OO   SSSS   ZEOS International, Ltd.  \nsupport@zeos.com   INET     Z E    O  O S       Technical Support Dept.\nuunet!zeos!support UUCP    Z  EE   O  O  SSS    1301 Industrial Blvd. N.E.\nAny opinions expressed    Z   E    O  O     S   Minneapolis, MN 55413\nherein are my own!       ZZZZ EEEE  OO  SSSS    FAX         612-633-4607\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 79, "properties": {"category": "sci.med", "text": "From: bbenowit@telesciences.com (Barry D Benowitz)\nSubject: PRK (Photo Refractive Keratostomy)\nOrganization: TeleSciences CO Systems, Inc.\nDistribution: usa\nLines: 21\n\nFor those of you interested in the above Procedure, I am able to add the\nfollowing facts:\n\n1) This Procedure is not done in Philadelphia.\n\n2) It is performed in Maryland at Johns Hopkins for corrections between\n   0 and -5 and from -10 to -20 (diopters, I think are the units).\n\n3) It is performed in New York City at Manhattan Eye and Ear for corrections\n   between 0 and -6.\n\nThe magic words to use when requesting information on this is not PRK (they\nthink you mean RK) but the excimer laser study (or protocol). This will get \nyou to the proper people.\n\n\n-- \nBarry D. Benowitz\nEMail:\tbbenowit@telesciences.com (...!pyrnj!telesci!bbenowit)\nPhone:\t+1 609 866 1000 x354\nSnail:\tTelesciences CO Systems, 351 New Albany Rd, Moorestown, NJ, 08057-1177\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 80, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dbarker@spang.Camosun.BC.CA (Deryk Barker)\nSubject: Re: WP-PCF, Linux, RISC?\nOrganization: Camosun College, Victoria B.C, Canada\nX-Newsreader: Tin 1.1 PL4\nLines: 47\n\nleebr@ecf.toronto.edu (LEE BRIAN) writes:\n: In article <1qu8ud$2hd@sunb.ocs.mq.edu.au> eugene@mpce.mq.edu.au writes:\n: >In article <C5o1yq.M34@csie.nctu.edu.tw> ghhwang@csie.nctu.edu.tw (ghhwang) writes:\n: >>\n: >>Dear friend,\n: >>  The RISC means \"reduced instruction set computer\". The RISC usually has \n: >>small instruction set so as to reduce the circuit complex and can increase \n: >>the clock rate to have a high performance. You can read some books about\n: >>computer architecture for more information about RISC.\n: >\n: >hmm... not that I am an authority on RISC ;-) but I clearly remember\n: >reading that the instruction set on RISC CPUs is rather large.\n: >The difference is in addressing modes - RISC instruction sets are not\n: >as orthogonal is CISC.\n\nThe original RISCs had small instruction sets, and simple ones. The\nidea was that a) every instruction should be completable in a single\nclock cycle and b) to have no microcode and c) extensive pipelines.\n\nA few comparisons (from Patterson: Reduced Instruction set computers.\nCACM V28. 1, 1985):\n\nCPU\t\tYear\tInstructions\tMicrocode\n---\t\t----\t------------\t---------\nIBM 370/168\t1973\t208\t\t420Kb\nDEC VAX 11/780\t1978\t303\t\t480Kb\nIBM 801\t\t1980\t120\t\t0\nUCB RISC 1\t1982\t39\t\t0\nStanford MIPS\t1983\t55\t\t0\n\nWhile researching for the VLSI VAX, DEC discovered that 60% of the VAX\nmicrocode is there to support 20% of the instruction set which\naccounted for a mere 0.2% of all instructions executed. The uVAX 32\nsubsetted the architecture onto a single chip and used a software\nemulator for these very complex instructions, the full VLSI uVAX\nincluded the entire instruction set, was 5-10 times more copmlex but\nonly ranm 20% faster.\n\nCPU\t\tChips\tMicrocode\tTransistors\n---\t\t-----\t---------\t-----------\nuVAX 32\t\t2\t64K\t\t101K\nVLSI uVAX\t9\t480K\t\t1250K\n\n--\nReal:  Deryk Barker, Computer Science Dept., Camosun College, Victoria B.C.\nEmail: (dbarker@camosun.bc.ca)\nPhone: +1 604 370 4452\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 81, "properties": {"category": "misc.forsale", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: Catalog of Hard-to-Find PC Enhancements (Repost)\nOrganization: Computer Science Department,  Stanford University.\nDistribution: usa\nLines: 46\n\nIn article <C5JI92.KFu@taurus.cs.nps.navy.mil> rpwhite@cs.nps.navy.mil (rpwhite) writes:\n>Andy Freeman writes:\n>>Joe Doll writes:\n>)>>   \"The Catalog of Personal Computing Tools for Engineers and Scien-\n>)>>   tists\" lists hardware cards and application software packages for \n>)>>   PC/XT/AT/PS/2 class machines.  Focus is on engineering and scien-\n>)>>   tific applications of PCs, such as data acquisition/control, \n>)>>   design automation, and data analysis and presentation.  \n>\n>)>>   If you would like a free copy, reply with your (U. S. Postal) \n>)>>   mailing address.\n>>\n>>Don't bother - it never comes.  It's a cheap trick for building a\n>>mailing list to sell if my junk mail flow is any indication.\n>\n>I have a copy of this catalog in front of me as I write this.\n>It does have tons of qool stuff in it. \n\nThat's one.  Any others?\n\n>My impression is that they try not to send it out to \"browsers\".\n\nThen they should have used a different advert.\n\n>It appears that if your not a buyer or an engineer they do not want to\n>waste a catalog on you.\n\nI'm both.  I've made some $4k worth of PC products purchasing\ndecisions for one company I'm affiliated with in the past 6 months\nalone.  (In a delicious bit of irony, an interesting fraction went to\nsuppliers that I suspect got my mailing address from these people.)\nMore is in the pipeline right now.\n\nIf they wanted to discuss these sorts of things, upfront is the\nway to do it.\n\n>When you get a catalog there's a \"VIP Code\" you\n\nAnd who issues that \"VIP Code\"?  (That policy implementation in the\nrunning for this week's \"silly twit\" award.)  BTW - It turns out that\nI have several VIP codes.  Here's the one I'm using for these sorts of\nthings: \"6\".  (If you want one, send me mail and I'll put you in touch\nwith the folks who do the application interview; if you qualify....)\n\n-andy\n--\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 82, "properties": {"category": "rec.sport.baseball", "text": "From:  (Sean Garrison)\nSubject: Re: WFAN\nNntp-Posting-Host: berkeley-kstar-node.net.yale.edu\nOrganization: Yale University\nLines: 11\n\nIn article <C5JC3z.KnD@news.udel.edu>, philly@ravel.udel.edu (Robert C\nHite) wrote:\n> WIP took two of your\n> best sports jockeys too, Jody MacDonald and Steve Fredericks.\n\n\nDUDE!  Are you nuts?  WFAN is second to none.  Jody Mac's exit was quite a\nloss, but if you think Fredericks On The FAN was much of one, you're pretty\nskewed.\n\n                                \u00d1 Sean\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.006+0000", "event": "documents", "entityId": 83, "properties": {"category": "rec.sport.baseball", "text": "From: brucek@Ingres.COM (Bruce Kleinman)\nSubject: Re: When did Dodgers move from NY to LA?\nArticle-I.D.: pony.1993Apr6.195730.20277\nOrganization: Ingres Corporation, A subsidiary of The ASK Group, Inc.\nLines: 6\n\nIn article <1993Apr5.160030.2328@ncar.ucar.edu> tparker@music.scd.ucar.edu (Tom Parker) writes:\n>I have a bet with my buddy on when the Dodgers moved from NY to LA.  Does\n>anyone know what year they moved?\n>\n\nThe Dodgers' first year in LA was 1958.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 84, "properties": {"category": "sci.med", "text": "From: vilok@bmerh322.bnr.ca (Vilok Kusumakar)\nSubject: Future of methanol\nReply-To: vilok@bnr.ca\nOrganization: Bell-Northern Research, Ottawa, Canada\nLines: 23\n\nI hope this is the correct newsgroup for this.\n\nWhat is the scoop on Methanol and its future as an alternative fuel for\nvehicles ?  How does it compare to ethanol ?\n\nThere was some news about health risks involved.  Anybody know about\nthat.  How does the US Clean Air act impact the use of Methanol by the\nyear 1995 ?\n\nI think its Methyl Tertiary butyl ether which the future industries will\nuse as a substitute for conventional fuels.\n\nThere is company Methanex which produces 12% of the world's supply of\nMethanol. Does anybody know about it ?\n\nPlease reply by e-mail as I do not read these newsgroups.\n\nThanks in advance.\n--\nVilok Kusumakar                    OSI Protocols for tomorrow......\nvilok@bnr.ca                       Bell-Northern Research, Ltd.\nPhone: (613) 763-2273              P.O. Box 3511, Station C \nFax:   (613) 765-4777              Ottawa, Ontario, K1Y 4H7\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 85, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wynapse@indirect.com (Dave Campbell - WynApse)\nSubject: Re: .GIF to .BMP\nDistribution: usa\nOrganization: Internet Direct Inc. -- (602) 274-0100\nLines: 28\n\nsaz@hook.corp.mot.com (Scott Zabolotzky) writes:\n\n\n>Does anybody have any idea where I could find a program that can\n>convert a .GIF image into a .BMP image suitable for a Windows \n>wallpaper (i.e. 256 colors).  Hopefully there's something out there\n>I can get from an ftp site somewhere...\n\n>Thanks in advance...\n\n>Scott\n\nScott --\n\nlook on ftp.cica.indiana.edu for gws.....zip. They embed the release\nnumber in the name, and I'm not sure what the lates is. It is Graphics\nWorkshop. There is a DOS and a Windows version. Both work Great. I even\nhad someone bring me some images from the Amiga, and converted them to\ngreat looking wallpaper as 256-color .BMP files\n\nIf you can't find it, repost, or let me know, and I'll dig up the archive.\n\ndave\n-- \n------------------------------------------------------------------------------\n    Dave Campbell    |                       WynApse\n       WynApse       |\nwynapse@indirect.com |        The Shareware Custom Control Source\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 86, "properties": {"category": "alt.atheism", "text": "From: bdunn@cco.caltech.edu (Brendan Dunn)\nSubject: Re: YOU WILL ALL GO TO HELL!!!\nOrganization: California Institute of Technology, Pasadena\nLines: 28\nNNTP-Posting-Host: punisher.caltech.edu\n\nIn article <93108.155839PTS102@psuvm.psu.edu> <PTS102@psuvm.psu.edu> writes:\n[Pitt vs. Penn State controversy deleted]\n>\n>Bringing this back to alt.atheism relevance:  So the guy says we're going to\n>Hell.  That isn't sufficient cause to bitch to the system operator.  At worst,\n>it's bad etiquette.  (Unless you really believe that someone is using his\n>account without his knowledge/permission, which is actually against the law.)\n>-----\n>Patrick Saxton          \"Pitt is a second-rate school in a second-rate city.\"\n>pts102@PSUVM.psu.edu                                         - anon\n>pts@ecl.psu.edu         ob.atheism:  \"In Batman we Trust\"\n>\n\nNo.  It wouldn't be sufficient cause to bitch to the system operator if this\nwas just some guy saying that atheists are going to hell.  The point was \nthat recently many messages were posted from that address.  Each of these\nmessages was posted to a different newsgroup, with the apparent intent of\nprovoking the readers of that particular group.  This, along with the fact\nthat these posts were written in all-caps, makes these posts suspect.\nWhoever is using this account is using it irresponsibly.  If it is the\nintended user, they should consider appropriate action.  If it is someone\nelse-- which seems a possibility, then this is also reason to report it.\n\tWe get many posts in the flavor of the one that started this thread.\nIt is only because I have seen posts on other groups by this user that I\nam considering action.\n\nBrendan\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 87, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gtonwu@Uz.nthu.edu.tw (Tony G. Wu)\nSubject: I hate to make a decision !\nOrganization: National Tsing Hua University (HsinChu)\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 16\n\n\nHi.\n \n    Well, I really hate to make a decision, but recently, I have to choose\n    whether stacker 3.0 or dos 6.0 with double space for my poor HD.\n    I am using windwos 3.1 and I hope what I choose will live with windows.\n\n    Any help will be appreciated.\n\n\n  \n-- \n===================== ( Forever  23,  Michael Jordan.) =====================\n    Tony G. Wu                                     gtonwu@uz.nthu.edu.tw \n    CAE/Rheology Lab.  NTHU.                       tony@che.nthu.edu.tw\n   \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 88, "properties": {"category": "rec.sport.hockey", "text": "From: mfoster@alliant.backbone.uoknor.edu (Marc Foster)\nSubject: Final season CHL stuff\nOriginator: news@essex.ecn.uoknor.edu\nDistribution: na\nNntp-Posting-Host: essex.ecn.uoknor.edu\nOrganization: University of Oklahoma, Norman, OK\nLines: 218\n\nHere are the final stats for the CHL for the 1992-1993 season.\n\n                       Central Hockey League\n\n                       5840 S. Memorial Drive\n                             Suite 205\n                          Tulsa, OK  74145\n                       Phone:  (918) 664-8881\n                       Fax:    (918) 664-2215\n\nFounder and President - Ray Miron\nCommissioner - Monte Miron\nMarketing Director - Jim Goodman\nInformation Director - Eric Kolb\n\nEach team is owned by the league, with local intrests controlling day to\nday operations.  Working agreements and NHL affiliations are up to each\nteam.\n\nEach team has a $100,000 salary cap for 17 total players\n(16 dress up).\n\nEach team is limited to 11 visas, meaning at least 6 players must be\nAmericans (Ignore this rule if you are Tulsa, they only had 2 Americans\non the roster during the playoffs).\n\nTeams play in Wichita, Tulsa, Oklahoma City, Memphis, Fort Worth, and Dallas.\n\nFuture expansion plans include Houston, San Antonio, Baton Rouge, Little Rock,\nEl Paso, Albuquerque, Tuscon, and Amarillo.  Austin is a possibility if Dallas\nhas to move.  Houston and San Antonio are in for this fall, with Baton Rouge\nand Little Rock likely for 94-95.\n\nTEAMS:\n------------------------------------------------------------------------------\n          Fort Worth Fire                 | Wichita Thunder\n                                          |\nArena:    Tarrant Co. Conv. Cen. (11,342) | Kansas Coliseum (9,686)\nColors:   Red and Black                   | Blue , silver, and black\nGM:       George Branum                   | Bill Shuck\nCoach:    Pete Mahavolich                 | Doug Sheddan\nPhone #:  (817) 335-FIRE                  | (316) 264-4625\nSeason Tix: $300 / $240                   | $250 / $170\nSingle Tix: $12 / $10                     | $9 / $6\nRadio:                                    |\nAnnouncers:                               |\n                                          |\n------------------------------------------------------------------------------\n          Dallas Freeze                   | Tulsa Oilers\n                                          |\nArena:    Fair Park Coliseum (7,500)      | Civic Center (6,847)\nColors:   Teal and Black                  | Orange and Blue\nGM:       Tom Koch                        | Jeff D. Lund\nCoach:    Ron Flockhart                   | Gary Unger      Personal Guardians\nPhone #:  (214) 421-PUCK                  | (918) 663-5888  ------------------\nSeason Tix: $300 / $240                   |                    Ray and Monte\nSingle Tix: $12 / $10 / $7                | $9 / $6                Miron\nRadio:    KSKY-AM 660                     | KTRT-AM 1270\nAnnouncers-Bruce LeVine                   | Jeff Brucculeri\n           Mark Stone                     | Jeff Bowen\n------------------------------------------------------------------------------\n          Memphis River Kings             | Oklahoma City Blazers\n                                          |\nArena:    Mid-South Coliseum (9,384)      | Myriad (13,399) & State Fair Arena \nColors:   Gold and Black                  | Red, Yellow, and Black   (9,760)\nGM:       Jim Riggs                       | Brad Lund                \nCoach:    Steve Carlson                   | Mike McEwen\nPhone #:  (901) 278-9009                  | (405) 235-PUCK\nSeason Tix:                               | $250 / $170\nSingle Tix: $9 / $6                       | $9 / $6\nRadio:    KREC-AM 600                     | WWLS-AM 640\nAnnouncers-Dave Woloshin                  | John Brooks\n           Tom Stocker                    | Brian Barnhart\n------------------------------------------------------------------------------\n\n92-93 regular season standings\n \n                           W  L OTL PTS   GF   GA   PIM  AVG ATTDNCE (% cap)\n-----------------------------------------------------------------------------\nOklahoma City Blazers.... 39 18  3   81  291  232  1561  7,827   64.2 %\nTulsa Ice Oilers......... 35 22  3   73  270  230  1430  5,547   81.0 %\nDallas Freeze............ 31 25  4   66  276  242  1604  4,427   59.0 %\nMemphis RiverKings....... 26 27  7   59  253  272  1670  5,590   59.6 %\nFort Worth Fire.......... 24 29  7   55  252  288  1747  4,920   43.7 %\nWichita Thunder.......... 25 33  2   52  242  320  1876  4,474   46.2 %\n\nPlayoffs:  Tulsa defeated Dallas, 4 games to 3 (WLLWWLW)\n           Oklahoma City defeated Memphis, 4 games to 2 (WWLLWW)\n\nLevin Trophy Finals:  Tulsa defeated Oklahoma City, 4 games to 1 (WWLWW)\n\nPlayoff MVP:  Tony Fiore, Tulsa (special votes to Ray and Monte Miron)\n\nTeam vs. Team: 92-93\n--------------------\n                Dallas  Fort Worth  Memphis  Oklahoma City  Tulsa  Wichita\nDallas.......... -----     9-2-1     5-5-2       5-6-1      5-7-0   7-5-0\nFort Worth...... 3-7-2     -----     4-6-2       4-8-0      8-3-1   5-5-2\nMemphis......... 7-4-1     8-3-1     -----       2-8-2      2-8-2   7-4-1\nOklahoma City... 7-4-1     8-3-1    10-2-0       -----      6-6-0   8-3-1\nTulsa........... 7-5-0     4-7-1    10-2-0       6-6-0      -----   8-2-2\nWichita......... 5-7-0     7-3-2     5-7-0       4-8-0      4-8-0   -----\n\n       Power Play Statistics               Penalty Killng Statistics\n             PPG  Opp  ShGA   Pct.               PPG Saves Opp  ShG   Pct.\nOkla. City    70  275     2  25.45  Okla. City    58   241 299   16  80.60\nTulsa         72  291    12  24.74  Dallas        68   278 346   14  80.34\nDallas        64  286    10  22.37  Tulsa         77   276 353   16  78.18\nFort Worth    85  387    16  21.96  Wichita       75   235 310    5  75.806\nWichita       81  396    24  20.45  Memphis       83   260 343   12  75.801\nMemphis       65  329    12  19.75  Fort Worth    76   237 313   13  75.71\n\nPenalty Record\n                                            10-Min  Game Gross        Oppn\n             PIM  Avg.  Minor  Major  Bench   Misc  Misc  Misc  Match  PIM\nWichita     1876  31.3   433     84     20     22    24     0     3   1998\nFort Worth  1747  29.1   471     59     29     26    23     2     0   1911\nMemphis     1670  27.8   480     56     28     28    13     1     1   1593\nDallas      1604  26.7   477     60      2     20    15     0     0   1534\nOkla. City  1561  26.0   438     67     14     14    21     0     0   1609\nTulsa       1430  23.8   505     26      6     21     8     0     0   1243\n\nScoring By Period\n            1st Period  2nd Period  3rd Period  Overtime  Shootout  Totals\n              GF  GA      GF  GA      GF  GA     GF  GA    GF  GA   GF  GA\nDallas        76  82     106  82      90  74      0   1     4   3   276 242\nFort Worth    70  81      92 112      84  88      3   5     3   2   252 288\nMemphis       66  88     101  89      82  88      2   3     2   4   253 272\nOkla.City     98  87      82  71     108  71      1   1     2   2   291 232\nTulsa         99  58      92  83      76  86      3   1     0   2   270 230\nWichita       79  92      73 109      84 117      2   0     4   2   242 320\n\n                          92-93 All-Star Team\n                          -------------------\n\nPosition      First Team                    Second Team\n--------      ----------                    -----------\nGoaltender... Tony Martino, Tulsa           Robert Desjardins, Wichita (tie)\n                                            Alan Perry, Oklahoma City (tie)\n\nDefensemen... Dave Doucette, Dallas         Mike Berger, Dallas\n              Guy Girouard, Oklahoma City   Tom Karalis, Tulsa\n\nCenter....... Carl Boudreau, Oklahoma City  Joe Burton, Oklahoma City\n\nLeft Wing.... Sylvain Fleury, Oklahoma City Doug Lawrence, Tulsa\n\nRight Wing... Daniel Larin, Oklahoma City   Tom Mutch, Memphis (tie\n                                            Sylvain Naud, Tulsa (tie)\n\nRegular Season MVP:  Sylvain Fleury, Oklahoma City\nRookie of the Year:  Bobby Desjardins, Wichita\nLeading Defenseman:  Dave Doucette, Dallas\nLeading Goaltender:  Tony Martino, Tulsa\n\nScoring Leaders:\n----------------\nPOINTS              Team  GP  G  A  PTS   GOALS             Team  GP  G\nFleury, Sylvain     OKC   59 48 53  101   Fleury, Sylvain   OKC   53 48\nLawrence, Doug      TUL   57 22 73   95   Larin, Daniel     OKC   48 43\nNaud, Sylvain       TUL   58 39 48   87   Mutch, Tom        MEM   59 43\nMutch, Tom          MEM   59 43 38   81   Thibodeau, Ken    MEM   54 40\nHall, Taylor        TUL   58 35 45   80   Naud, Sylvain     TUL   58 39\nThibodeau, Ken      MEM   54 40 35   75   Taylor, Jason     DAL   60 38\nAnchikoski, Wayne   DAL   57 35 37   72   \nBoudreau, Carl      OKC   48 27 44   71   ASSISTS           Team  GP  A\nLarin, Daniel       OKC   48 43 27   70   Lawrence, Doug    TUL   57 73\nTaylor, Jason       DAL   60 38 32   70   Fleury, Sylvain   OKC   59 53\nDent, Ted           WCH   60 25 44   69   Naud, Sylvain     TUL   58 48\nSanderson, Mike     FTW   60 37 31   68   Doucette, Dave    DAL   50 46\nGatti, Dave         WCH   58 35 32   67   Hall, Taylor      TUL   58 45\nNobili, Mario       TUL   54 31 34   65   Girouard, Guy     OKC   60 45\nCyr, Keith          WCH   58 21 44   65 \nD'Amario, Peter     MEM   60 28 35   63   PENALTY MINUTES   Team  GP PIM \nJohnston, Scot      MEM   51 23 40   63   Aubrey, Ron       FTW   28 237\nBurton, Joe         OKC   55 35 26   61   Karalis, Tom      TUL   56 235\nSimoni, Steve       OKC   56 33 28   61   Johnson, Craig    OKC   50 219\nHornak, Ernest      FTW   52 22 37   59   Neish, Greg       WCH   34 212\nFiore, Tony         TUL   37 23 35   58   Batten, John      MEM   29 210\nDoucette, Dave      DAL   50 10 46   56   Taylor, Jason     DAL   60 210\n\nLEADING GOALTENDERS (20 or more games)\n                   TEAM GPI  MIN  GAA  W-L-OTL  EN SO   GA  Saves  Save Pct.\nMartino, Tony       TUL  39 2182 3.66  23-13-2   0  2  133  1186   .899\nPerry, Alan         OKC  40 2406 3.72  25-13-2   3  0  149  1304   .897\nZanier, Mike        DAL  40 2384 3.78  24-14-2   3  1  150  1223   .891\nMindjimba, Antoine  MEM  56 3097 4.15  26-21-6   4  1  214  1603   .882\nSmith, Greg         DAL  21 1243 4.15   7-11-2   0  0   86   753   .897\nDesjardins, Bobby   WCH  52 2849 4.63  21-26-2   6  1  220  1877   .895\nBelley, Roch        FTW  33 1728 4.75  14-13-2   3  0  141   974   .874\n\nOther Goalies       \n                   TEAM GPI  MIN  GAA  W-L-OTL  EN SO   GA  Saves  Save Pct.\nFlatt, Brian        TUL  11  488  3.44   4-3-1   1  1   28  274    .907\nKrake, Paul         OKC  17 1029  3.50  13-3-1   0  0   60  583    .907\nLoewen, Jamie       TUL  13  681  3.79   6-5-0   1  0   43  399    .903\nOcello, Matt        FTW   4  179  3.69   3-1-0   1  0   11  100    .901\nOcello, Matt        TUL   1   34  5.29   0-0-0   0  0    3   13    .813\n(Totals)                  5  213  3.94   3-1-0   1  0   14  113    .890\nRaymond, Eric       TUL   3  181  3.98   2-1-0   0  0   12   87    .879\nO'Hara, Michael     FTW  18  911  4.28   6-6-2   0  0   65  559    .896\nVasko, Steve        MEM  15  535  5.16   0-6-1   4  0   46  235    .836\nTrentadue, Rocco    FTW  17  746  4.99   1-9-3   3  0   62  365    .855\nTrentadue, Rocco    OKC   2  120  6.50   0-2-0   0  0   13   93    .877\n(Totals)                 19  866  5.20  1-11-3   3  0   75  458    .859\nHarvey, Alain       WCH   5  240  5.50   2-2-0   2  0   22  126    .851\nGosselin, Yannick   WCH  10  345  6.43   2-3-0   0  0   37  227    .860\nGosselin, Yannick   OKC   1   60  5.00   1-0-0   0  0    5   26    .839\n(Totals)                 11  405  6.22   3-3-0   0  0   42  253    .896\nCaton, Murray       WCH   2  120  9.00   0-2-0   0  0   18   84    .824\nMcDonnell, Dan      TUL   1   34  8.83   0-0-0   0  0    5   24    .828\nSauer, E.J.         TUL   1   12 10.00   0-0-0   0  0    2    4    .667\nClark, Joel         WCH   2   48 10.00   0-0-0   0  0    8   29    .784\nWachter, Steve      WCH   2   24 12.50   0-0-0   0  0    5    6    .545\n\n\nMarc Dee Foster, r.s.h contact for the CHL\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 89, "properties": {"category": "rec.sport.hockey", "text": "From: gak@wrs.com (Richard Stueven)\nSubject: Re: Octopus in Detroit?\nReply-To: gak@wrs.com\nOrganization: Wind River Systems, Inc.\nLines: 10\nNntp-Posting-Host: gakbox\n\nIt's in the FAQ.\n\nhave fun\ngak\n\n---\nRichard Stueven       AHA# 22584 |----------| He has erected a multitude of new\nInternet:            gak@wrs.com |----GO----| offices, and sent hither swarms\nATTMAIL: ...!attmail!gakhaus!gak |---SHARX--| of officers to harass our people,\nCow Palace:            107/H/3-4 |----------| and eat out their substance.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 90, "properties": {"category": "talk.politics.mideast", "text": "From: deniz@mandolin.ctr.columbia.edu (Deniz Akkus)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: Columbia University Center for Telecommunications Research\nX-Posted-From: mandolin.ctr.columbia.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 46\n\nIn article <1993Apr20.190606.13801@kpc.com> henrik@quayle.kpc.com  writes:\n>In article <1993Apr20.173009.10580@sol.ctr.columbia.edu>, deniz@mandolin.ctr.columbia.edu (Deniz Akkus) writes:\n>\n>    Well, this is your opinion ! \n>\n\nOf course it is!  \n\n>    Turkish/ Azeris can BARK all they WANT since the ABOVE is UNTRUE. However, \n>    I am sure YOU GUYS would have NEVER brought up ARMENIA's involvement if \n>    KARABAKHI-Armenians had had HEAVY losses.\n>\n\nAnd this is your opinion.  It is not any more valid due to repeated\ncapital letters and words such as 'untrue' 'never' etc.  \n\n>\tRead what ? The New York Times , that is publishing anti-armenian\n>\tarticles. Nop, I have my resources. Look, everyone knows how aggressive\n>        Turks/Azeris have been in the past. Armenians ARE NOT gona sit\n>\taround and watch FIRE WORKS by AZERIS taught by TURKS. \n\nSo Armenians are justified in aggression since supposedly Turks have\nbeen aggressive in the past?  I don't follow your logic.  \n\n>DA] I don't wish to get into the Cyprus discussion.  Turkey had the right to\n>\n>\tNot a chance ! You CAN NOT convince me (based on your REASONS)that \n>\tyour GOVERNMENT did the RIGHT thing to invade CYPRUS. \n\nI have said that I don't wish to get into Cyprus discussion and did not\ngive any reasons for Turkey's involvement.  I also am not trying to\nconvince you of anything, seeing no reason to waste any time.... \n\n>DA] Lastly, why is there not a soc.culture.armenia?  I vote yes for it.\n>DA] After all, it is now free.  \n>\n>\tWell, I am NOT in the position to agree or disadree with you.\n>\n>\t\n\nI am serious.  Let's get soc.culture.armenia started and have some peace\nof mind?  \n\nDeniz Akkus \n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 91, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ns111310@LANCE.ColoState.Edu (Nathaniel Sammons)\nSubject: Re: 68LC040 vs. 68RC040 in Centris 650\nNntp-Posting-Host: casco.lance.colostate.edu\nOrganization: Colorado State U. Engineering College\nLines: 4\n\nI also use PhotoShop to edit photos, and do DTP work.\n\n-nate\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 92, "properties": {"category": "soc.religion.christian", "text": "From: sfp@lemur.cit.cornell.edu (Sheila Patterson)\nSubject: Re: Being right about messiahs\nOrganization: Cornell University CIT\nLines: 14\n\nJesus isn't God ? When Jesus returns some people may miss Him ?  What version of\nthe Bible do you read Mike ?\n\nJesus is God incarnate (in flesh) . Jesus said, 'I and the Father are one.' \nJesus was taken up to heaven after His 40 day post-resurrection stint and the\nangels who were there assured the apostles that Jesus would return the same way\nand that everyone will see the coming. That's why Jesus warned that many would\ncome claiming to be Him but that we would know when Jesus actually returns. \n\nThese are two very large parts of my faith and you definitely hit a nerve :-)\n\n-Sheila Patterson, CIT CR-Technical Support \n Cornell University\n Ithaca, NY\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 93, "properties": {"category": "comp.windows.x", "text": "From: susan+@andrew.cmu.EDU (Susan Straub)\nSubject: REGISTRATION:  Andrew Tutorial & Technical Conference\nOrganization: School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 81\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xannounce@expo.lcs.mit.edu\n\n                          1993 Andrew Tutorial \n                                  and \n                          Technical Conference \n\n\nWhen:  Thursday and Friday, June 24 and 25, 1993 \n    (Deadline for Registration:  June 4, 1993) \n\nWhere:  Carnegie Mellon University in Pittsburgh, Pennsylvania.   \n\nSponsor:  Andrew Consortium of CMU's School of Computer Science.  \n\nSchedule:  The Tutorial  will be on Thursday, followed by dinner and the\n    Annual Meeting.  The Conference proper will be on Friday.  All\n    Conference attendees are welcome at the Annual Meeting.  \n\n    Wednesday, June 23 \n\n        Check in:  After 4:00 PM \n        Informal Reception:  7:30 PM \n\n    Thursday, June 24 \n\n        Tutorial:  9:00 A.M. - 5:00 PM \n        Conference Dinner:  6:30 PM \n        Annual meeting:  8:00 PM \n\n    Friday, June 25 \n\n        Technical Conference:  9:00 AM - 5:00 PM \n\nCost:  \n    Tutorial fee includes breaks, lunch and tutorial materials:  $100 \n    Conference fee includes conference dinner, breaks and proceedings: $100 \n    Rooms (student housing):  $50 / night \n\nHousing is tight around the campus area, so please register soon.  If you \nprefer to stay in off-campus housing, please contact us for suggestions. \nMary Anne Cowden will be handling registration.  You can contact her by\nemail,  mc8b+@andrew.cmu.edu,  or by phone, (412) 268-6710.  \n\f Registration Form \n\nPlease complete the attached form and return it to: \n\nMary Anne Cowden \nAndrew Consortium Technical Conference \nCarnegie Mellon University \nSmith Hall 106 \n5000 Forbes Avenue \nPittsburgh, PA 15213-3890 \n\n                                     <-       cut along here       -> \n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n- - - - - - - - - - - - \n\n\n\nName:              ______________________________________________ \n\nAddress: \t______________________________________________ \n\n\t\t______________________________________________ \n\nOrganization: \t______________________________________________ \n\nEmail:               ______________________________________________ \n\nPhone:              ______________________________________________ \n\n\n\n\nTutorial\t\t$ ___________     $100 \nConference\t\t$ ___________     $100 \nHousing\t\t$ ___________      $50/night \n\n\tTOTAL ENCLOSED     $ ___________ \n\n\n      Please make checks payable to Carnegie Mellon University.   \n \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 94, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Organization: Penn State University\nFrom: <DXB132@psuvm.psu.edu>\nSubject: Re: IDE vs SCSI\nDistribution: world\nLines: 55\n\nIn article <1qmgtrINNf2a@dns1.NMSU.Edu>, bgrubb@dante.nmsu.edu (GRUBB) says:\n\n>DXB132@psuvm.psu.edu writes:\n>>In article <1qlbrlINN7rk@dns1.NMSU.Edu>, bgrubb@dante.nmsu.edu (GRUBB) says:\n>>>In PC Magazine April 27, 1993:29 \"Although SCSI is twice as fasst as ESDI,\n>>>20% faster than IDE, and support up to 7 devices its acceptance ...has\n>>>long been stalled by incompatability problems and installation headaches.\"\n\n>>I love it when magazine writers make stupid statements like that re:\n>>performance. Where do they get those numbers? I'll list the actual\n>>performance ranges, which should convince anyone that such a\n>>statement is absurd:\n>>SCSI-I ranges from 0-5MB/s.\n>>SCSI-II ranges from 0-40MB/s.\n>>IDE ranges from 0-8.3MB/s.\n>>ESDI is always 1.25MB/s (although there are some non-standard versions)\n\n>By your OWN data the \"Although SCSI is twice as fast as ESDI\" is correct\n\n(How is 0-40 twice 1.25? Do you just pick whatever SCSI setup that makes\nthe statment \"correct\"?)\nEven if you could make such a statement it would be meaningless unless\nyou understood that ESDI and IDE (I include SCSI and ATA) are\ncompletely different (ESDI is device-level, like MFM/RLL).\n\n\n>With a SCSI-2 controller chip SCSI-1 can reach 10MB/s which is indeed\n>\"20% faster than IDE\" {120% of 8.3 is 9.96}. ALL these SCSI facts have been\n\nGreat, you can compare two numbers (ATA has several speed modes, by the\nway) but what the article said was misleading/wrong.\n\n>posted to this newsgroup in my Mac & IBM info sheet {available by FTP on\n>sumex-aim.stanford.edu (36.44.0.6) in the info-mac/report as\n>mac-ibm-compare[version #].txt (It should be 173 but 161 may still be there)}\n\nI would recommend people call the NCR board and download the ANSI specs\nif they are really interested in this stuff.\n\n\n>Part of this problem is both Mac and IBM PC are inconsiant about what SCSI\n>is which.  Though it is WELL documented that the Quadra has a SCSI-2 chip\n>an Apple salesperson said \"it uses a fast SCSI-1 chip\" {Not at a 6MB/s,\n>10MB/s burst it does not. SCSI-1 is 5MB/s maximum synchronous and Quadra\n>uses ANsynchronous SCSI which is SLOWER}  It seems that Mac and IBM see\n\nSomething is missing there. :) Anyway, I agree. There's a lot of\nopportunity for marketing jingo like \"SCSI-2 compliant\" which tells\nyou nothing about the performance, whether it has \"WIDE\" support, etc.\n\n>One reference for the Quadra's SCSI-2 controller chip is\n>(Digital Review, Oct 21, 1991 v8 n33 p8(1)).\n\nWhat does it use? Hopefully a good NCR chip (e.g. 53c710)\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 95, "properties": {"category": "sci.crypt", "text": "From: wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705)\nSubject: Re: Why the clipper algorithm is secret\nOrganization: Brought to you by the numbers 2, 3, and 7\nIn-Reply-To: bear@kestrel.fsl.noaa.gov's message of Tue, 20 Apr 1993 01:41:35 GMT\n\t<1993Apr18.225502.358@iecc.cambridge.ma.us> <C5pstr.Lu2@panix.com>\n\t<1993Apr20.014135.24134@fsl.noaa.gov>\nNntp-Posting-Host: rainier.ho.att.com\nLines: 38\n\nIn article <1993Apr20.014135.24134@fsl.noaa.gov> bear@kestrel.fsl.noaa.gov (Bear Giles) writes:\n   In article <C5pstr.Lu2@panix.com> dfl@panix.com (Danny O'Bedlam) writes:\n   >\tThe algorithm is classified because a military contract (or similar\n   >government equivalent to military) has been let for this \"proprietary\"\n   >design that the Feds say that NSA developed.  Is there a patent?  Is that\n   >patent publicly available?  My betting is that that too is classified.\n\n   Unless there has been a _major_ change in the law, there's no such beast\n   as a \"classified patent.\"  Patents exist to encourage communications and\n   develop the state of the art. \n\nWhile there aren't classified patents, there are \"patent secrecy orders\".\n\nSuppose you invent a voice scrambler for CB radio, and apply for a patent.\nThe Patent Office decides the NSA might be interested, gives them a copy\nof your application, and you get a nice note back saying your patent\napplication has now been classified for national security reasons and\nyou're no longer allowed to make and sell it.  \nI'm picking this example because it happened in the late 1970s.\nIt was probably some analog scrambler, and would have probably\nviolated FCC rules anyway, but it did get classified.\n\nOr suppose you publish a paper on your Really Spiffy Algorithm and\nthen file a patent application.  Since it's been published,\nthey can't gain anything by classifying it, though you can't get\npatents in most countries other than the US, where patent laws are different.\n\nObviously a system of classified patents would be highly bogus\n\"You can't sell that widget, because there's a classified patent on it.\nYou're not allowed to see the patent, or know who owns the design,\nso just give us all your money and work in progress and maybe we won't throw\nyou in jail for espionage.\"  Some countries might have that kind of\nsystem :-(, but we don't have that here.  Quite.  Yet.\n--\n#\t\t\t\tPray for peace;      Bill\n# Bill Stewart 1-908-949-0705 wcs@anchor.att.com AT&T Bell Labs 4M312 Holmdel NJ\n#\t              No, I'm *from* New Jersey, I only *work* in cyberspace....\n# White House Commect Line 1-202-456-1111  fax 1-202-456-2461\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 96, "properties": {"category": "soc.religion.christian", "text": "From: mdw33310@uxa.cso.uiuc.edu (Michael D. Walker)\nSubject: Re: Deuterocanonicals, esp. Sirach\nOrganization: University of Illinois at Urbana\nLines: 26\n\nwagner@grace.math.uh.edu (David Wagner) writes:\n\n>The deutero-canonical books were added much later in the church's\n>history.  They do not have the same spiritual quality as the\n>rest of Scripture.  I do not believe the church that added these\n>books was guided by the Spirit in so doing.  And that is where\n>this sort of discussion ultimately ends.\n\n>David H. Wagner\n>a confessional Lutheran\t\t\"Now thank we all our God\n\n\n\tWhoah  whoah  whoah  WHOAH!!!   What?!?\n\n\tThat last paragraph just about killed me.  The Deuterocanonicals have\n\tALWAYS been accepted as inspired scripture by the Catholic Church,\n\twhich has existed much longer than any Protestant Church out there.\n\tIt was Martin Luther who began hacking up the bible and deciding to\n\tREMOVE certain books--not the fact that the Catholic Church decided\n\tto add some much later--that is the reason for the difference between\n\t\"Catholic\" and \"Protestant\" bibles.  \n\n\tSorry for the tone--but that comment really irked me.\n\t\t\t\t\t- Mike Walker\n\t\t\t\t\t  mdw33310@uxa.cso.uiuc.edu\n\t\t\t\t\t  (Univ. of Illinois)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 97, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Lavishly Funded \"Gun Epidemic\" Propaganda Campaign to Commence\nOrganization: Stratus Computer, Inc.\nLines: 38\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <C4txEK.FCq@magpie.linknet.com>, manes@magpie.linknet.com (Steve Manes) writes:\n> Morris the Cat (rats@cbnewsc.cb.att.com) wrote:\n> \n> : Well, as Neal Knox of the Firearms Coalition points out, the full\n> : force of the anti-gun ruling class, their multi-millions, their\n> : polling organizations, their schools, their news media, their\n> : \"entertainment\" media\n> \n> The entertainment media... a \"force of the anti-gun ruling class\"??\n> Is this the same media that's made billions producing films and\n> television that glorify guns and gun users?  Or is that another\n> anti-gun media?\n> \n> You've got to be kidding.\n\nBy this, do you mean that you consider it absolutely impossible for the\nmedia to be guilty of hypocrisy?\n\nNote that the film industry in California traded their political support\nfor an \"assault weapon\" ban in the state for an amendment to the bill\nexempting the entertainment industry from that very ban.\n\nNote that the very issue of the Batman comic book (\"Seduction of the Gun\")\nthat was produced as a tool for gun-control organizations carries a back-\npage ad for a \"Terminator II\" video game extolling the numerous and\nvaried sophisticated weapons available to the player.\n\nNote that Arthur Ochs Sulzberger, publisher of the NY Times -- one of the\noldest and most incessant gun-control grinders -- himself carries a\nconcealed handgun.\n\nStill, you find it completely incredible that these folks live by the \naphorism, \"Do as I say, and not as I do.\"\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 98, "properties": {"category": "comp.graphics", "text": "From: SITUNAYA@IBM3090.BHAM.AC.UK\nSubject: HELP WANTED FOR DMORF.......!\nOrganization: The University of Birmingham, United Kingdom\nLines: 6\nNNTP-Posting-Host: ibm3090.bham.ac.uk\n\n==============================================================================\nPlease bear with me as i am new at this game, i apologize unreservedly if i hav\ne posted another message earlier by mistake. but i digress, could anyone out th\nere please explain exactly what DMORF does (dtax.exe). Does it simply fade one\nbitmap into another or does it reshape one bitmap into another. Excuse my ignor\nance.....\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 99, "properties": {"category": "soc.religion.christian", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Eternity of Hell (was Re: Hell)\nOrganization: Florida State University\nLines: 26\n\nvic@mmalt.guild.org (Vic Kulikauskas) writes:\n> Our Moderator writes:\n> \n> > I'm inclined to read descriptions such as the lake of fire as \n> > indicating annihilation. However that's a minority view.\n> ...\n> > It's my personal view, but the only denominations I know of that hold \n> > it officially are the JW's and SDA's.\n> \n> I can't find the reference right now, but didn't C.S.Lewis speculate \n> somewhere that hell might be \"the state of once having been a human \n> soul\"?\nWhy is it that we have this notion that God takes some sort of pleasure\nfrom punishing people?  The purpose of hell is to destroy the devil and\nhis angels.\n\nTo the earlier poster who tried to support the eternal hell theory with\nthe fact that the fallen angels were not destroyed, remember the Bible\nteaches that God has reserved them until the day of judgement.  Their\njudgement is soon to come.\n\nLet me suggest this.  Maybe those who believe in the eternal hell theory\nshould provide all the biblical evidence they can find for it.  Stay away\nfrom human theories, and only take into account references in the bible.\n\nDarius\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 100, "properties": {"category": "rec.motorcycles", "text": "From: wbg@festival.ed.ac.uk (W Geake)\nSubject: EC BHP limit vetoed\nLines: 12\n\nAccording to BBC Radio this morning, UK, Denmark, Portugal & a few\nothers have vetoed a proposal to limit EC-sold bikes to 100 BHP.  The\nreason is that such a limit is not supported by accident statistics - a\nrare example of governmental wisdom.  The limit has a five year\nmoratorium on it, and \"specialist\" manufacturers will be exempt anyway. \nAny suspicion that this is a crafty trick to restrict that end of the\nmarket in Europe to Triumph, Norton (who? :-)), BMW, Cagiva & Ducati is\nthe sort of dangerous rubbish which stalls GATT talks.\n\nYou heard it here first.\n\nBill @ Univ Edinburgh, replete with 12 hp and a healthy blue exhaust.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 101, "properties": {"category": "rec.autos", "text": "From: jimf@centerline.com (Jim Frost)\nSubject: Re: Is car saftey important?\nOrganization: CenterLine Software, Inc.\nLines: 14\nNNTP-Posting-Host: 140.239.3.202\n\ntcorkum@bnr.ca (Trevor Corkum) writes:\n>Is it only me, or is\n>safety not one of the most important factors when buying a car?\n\nIt depends on your priorities.  A lot of people put higher priorities\non gas mileage and cost than on safety, buying \"unsafe\" econoboxes\ninstead of Volvos.  I personally take a middle ground -- the only\nthing I really look for is a three-point seatbelt and 5+mph bumpers.\nI figure that 30mph collisions into brick walls aren't common enough\nfor me to spend that much extra money for protection, but there are\nlots of low-speed collisions that do worry me.\n\njim frost\njimf@centerline.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 102, "properties": {"category": "comp.windows.x", "text": "From: toml@boulder.parcplace.com (Tom LaStrange)\nSubject: Re: Forcing a window manager to accept specific coordinates for a window\nOrganization: ParcPlace Boulder\nLines: 29\n\nIn article <C5xxq0.18M@cs.columbia.edu> ethan@cs.columbia.edu (Ethan Solomita) writes:\n>In article <BADING.93Apr23105229@athene.cs.tu-berlin.de> bading@cs.tu-berlin.de (Tobias 'Doping' Bading) writes:\n>>\n>>I know that the mwm has an resource to specify if positions are to be used for\n>>the border of a window or for the \"user\" window. Maybe other window managers\n>>have similar options.\n>>Another way to figure out the difference between the \"user\" window position\n>>and the window manager decoration window position is to subtract their\n>>positions. You just have to use XQueryTree and remember that the window manager\n>>decorations window is the parent of your window. Unfortunately, you can only\n>>figure out the decoration width and height after the window has been mapped\n>>this way.\n>>\n>\tAnother way would be to use GetGeometry to find out where\n>you are relative to the frame, and TranslateCoordinates to find\n>out where your window's upperleft corner really is.\n\n\nAs I've said before, there's no reliable way to find out the size of\nthe window manager decoration.  If your window has been reparented, you\ncan't assume that the window you're parented to is the window that\nholds all of the window manager decoration.  There may be several\nlayers of windows.  Doing multiple XQueryTree's until you get to the\nroot will work in most cases, but there's no guarantee that the outside\ndecoration window is parented to the root window of the display (tvtwm).\n\n--\nTom LaStrange        toml@boulder.ParcPlace.COM\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 103, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Clipper considered harmful\nLines: 10\n\n:    Does Dorothy Denning read this group?  If not, is someone on the group\n: forwarding questions like these to her, or Martin Hellman, or anyone else\n: who's seen more details about the chip?\n\nOf course she does; it's just she's been toasted so often for being\nan NSA patsy that she's keeping her head down.  You can always mail\nher directly as denning@guvax.acc.georgetown.edu,\ndenning@cs.cosc.georgetown.edu or denning@cs.georgetown.edu\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 104, "properties": {"category": "sci.crypt", "text": "From: betel@camelot.bradley.edu (Robert Crawford)\nSubject: Re: How to detect use of an illegal cipher?\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Bradley University\nLines: 20\n\nJay Fenton <Fenton@Kaleida.Com> writes:\n\n>How can the government tell which encryption method one is using without\n>being able to decode the traffic? i.e., In order to accuse me of using an\n>unauthorized strong encryption technique they would have to take both\n>keys out of escrow, run them against my ciphertext and \"draw a blank\".\n\n\tI was thinking about this, also. It's quite possible the\nsystem transmits, in clear, the serial number of the device being\nused. That way they can start a tap, get the serial number, and use\nthe warrant for the first tap to get the key.\n\n\tIf they tap someone who's apparently using encryption, but\ndon't find that prefix, then they'll assume it's an \"un-authorized\"\nencryption scheme.\n\n--\n\tMay the Kloo Gnomes be generous to you.\n\nRobert Crawford\t\t\t\tbetel@camelot.bradley.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 105, "properties": {"category": "rec.sport.hockey", "text": "From: huot@cray.com (Tom Huot)\nSubject: Re: plus minus stat\nLines: 16\nNntp-Posting-Host: pittpa.cray.com\nOrganization: Cray Research Inc.\nX-Newsreader: TIN [version 1.1 PL8]\n\nGerald Olchowy (golchowy@alchemy.chem.utoronto.ca) wrote:\n: It is meaningless to compare one player's plus/minus statistic with\n: another players' out of the context of the role and the playing time\n: of the players involved.    \n\n: To compare Jagr's and Francis's plus/minus is ridiculous and absurd...\n\n: Gerald\n\nThank you for putting this in perspective!\n\n--\n_____________________________________________________________________________\nTom Huot        \t\t\t       \nhuot@cray.com \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 106, "properties": {"category": "talk.politics.misc", "text": "From: lefty@apple.com (Lefty)\nSubject: Re: Motor Voter\nOrganization: Our Lady of Heavy Artillery\nLines: 13\n\nIn article <Apr.2.07.48.07.1993.21309@romulus.rutgers.edu>,\nkaldis@romulus.rutgers.edu (Theodore A. Kaldis) wrote:\n> \n> When I entered 1st grade, Eisenhower was President and John F. Kennedy\n> was just a relatively obscure Senator from New England.  So how old do\n> you think I am now?\n\nAsk me whether I'm surprised that you haven't managed to waddle out of\ncollege after all this time.\n\n--\nLefty (lefty@apple.com)\nC:.M:.C:., D:.O:.D:.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.007+0000", "event": "documents", "entityId": 107, "properties": {"category": "rec.sport.baseball", "text": "From: ez027993@dale.ucdavis.edu (Gary The Burgermeister Huckabay)\nSubject: Call for Votes - DTBL MVP and CY.  Please vote!\nArticle-I.D.: ucdavis.C52s31.49q\nDistribution: na\nOrganization: Harold Brooks Hot & Sour Soup Club, Ltd.\nLines: 79\n\nThe regular season of the 1992-93 Davis Tabletop Baseball League has\njust come to an end.  To help us with next year's league, I would\nappreciate it if you would take a couple of minutes and vote for\nour league MVP and CY winners.  These awards, and players' standings\nin them, will inflate their salaries for next year's league.\n \nPlease vote for 5 in each category, in order.  For example...\n \n1.  Barry Bonds\n2.  Frank Thomas\n3.  Biff Pocoroba\n4.  Shooty Babitt\n5.  \"Lips\" Lundy.\n \nPlease do NOT vote for pitchers in MVP voting for this league.  Each team\nin the league gets one candidate for MVP, and one for CY.  Defensive\nposition is listed where applicable, along with an abbreviation of\ntheir performance there (E=Excellent, V=Very Good, A=Average, \nP=Poor, B=Very Poor) Thanks... please reply by April 10.\nFor the record - the season was 144 games long.  Thanks for your help.\n \nMVP Candidates\n \nName       G  AB  H   2B 3B HR  R  RBI BB  K   SB  CS  IBB  BA/OBP/SLG DEF\nGriffey   124 338 99  27 0  16 44  64  39  50  0   0   16  293/362/515 8-P\nEMartinez 139 562 176 55 3  14 85  87  44  77  14  5   6   313/359/496 5-A\nSandberg  137 559 163 35 6  20 100 102 64  67  4   1   2   292/360/483 4-V\nVentura   144 562 161 32 0  9  83  59  80  61  0   1   3   286/374/391 5-E\nMcGriff   148 533 150 25 1  33 89  98  102 132 0   3   20  281/398/518 3-P\nMcGwire   138 487 134 31 1  34 108 104 128 100 0   3   38  275/425/552 3-E\nRAlomar   127 515 159 23 8  5  85  34  70  67  54 11   1   309/389/414 4-P\nDykstra   144 582 157 27 1  3  94  60  65  67  89 20   3   270/339/335 8-A\nButler    137 534 158 13 13 1  82  50  83  69  13 19   0   296/386/375 8-B\nDeer      119 425 103 26 1  33 66  75  44  141 1   3   2   242/311/541 9-V\nBonds     145 465 143 39 4  33 128 101 187 62  23  5   68  308/502/622 7-E\nHrbek     129 423 112 21 0  12 62  52  80  77  1   0   2   265/380/400 3-P\nJGonzalez 135 543 121 17 1  38 59  85  28  146 0   0   2   223/259/468 8-B\n \nSome players missed time due to injuries, others were sat down at the end\nto avoid the possibility of injury.  There are better players than those \non this list, but each team gets one and only one candidate.  Some players\nplayed more than 144 games due to being traded to teams with more games\nleft in the same time span.  Now, on to the pitchers...\n \nName       ERA  G   W L  S   IP    H  BB   K   HR   GS  CG  ShO  WP\nDMartinez  3.01 30 15 8  0  209.1 173 76  124  12   30   2   0   2\nDibble     0.80 37 0  2  25 33.2  21  8    46  1    0    0   0   0\nRijo       3.40 26 13 7  0  177.1 175 56  133  12   26   5   1   5\nMussina    2.92 29 15 7  0  206.2 167 46  119  15   29   3   1   2\nBenes      3.24 28 14 9  0  194.1 172 53  127  13   28   4   1   1\nKHill      2.93 27 16 7  0  196.2 144 64  166  20   26   8   3   1\nSmoltz     3.62 28 11 11 0  186.1 177 66  158  9    28   6   1   7\nCone       3.46 28 14 7  0  197.2 152 103 193  10   28   7   1   5\nDrabek     2.79 29 13 10 0  206.2 166 55  131  16   29   4   0   2\nTewksbury  3.28 25 12 8  0  172.2 168 36  64   8    25   4   2   1\nClemens    2.94 31 16 11 0  223.1 198 71  178  13   31   17! 2   1\nTomlin     2.48 28 12 5  0  196.0 172 42  97   8    27   1   0   2\nFarr       0.81 38 4  1  17 55.1  28  25  38   1    0    0   0   0\n \nThere you have it.  Curt Schilling threw a perfect game during the year,\nand Ken Hill threw a no-hitter.  Rob Dibble had pitched 32 scoreless\ninnings to start the year, only to choke in the last two games to cost\nthe Perot's Giant Sucking Sounds a playoff spot.  \n \nIf you want stats of more players, they are available by request.  Please\ntake the time to reply if you can.  Thanks.\n \n \n\n-- \n*     Gary Huckabay      * Kevin Kerr: The Al Feldstein of the mid-90's! *\n* \"A living argument for * If there's anything we love more than a huge  *\n*  existence of parallel * .sig, it's someone quoting 100 lines to add   *\n*       universes.\"      * 3 or 4 new ones.  And consecutive posts, too. *\n-- \n\t\t\t\t  '''\n                                 (o o)\n/----------------------------oOO--(_)--OOo------------------------------------\\\n|    David Zavatson     |Mein Schatz, es ist soweit.  Unsere Liebe ist vorbei.|\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 108, "properties": {"category": "sci.med", "text": "From: Donald Mackie <Donald_Mackie@med.umich.edu>\nSubject: Re: options before back surgery for protruding disc at L4-L5\nOrganization: UM Anesthesiology\nLines: 33\nDistribution: world\nNNTP-Posting-Host: 141.214.86.38\nX-UserAgent: Nuntius v1.1.1d9\nX-XXDate: Fri, 16 Apr 93 15:37:39 GMT\n\nSubject: options before back surgery for protruding disc at L4-L5\nFrom: Alex Miller, amiller@almaden.ibm.com\nDate: 13 Apr 93 18:30:42 GMT\nIn article <2241@coyote.UUCP> Alex Miller, amiller@almaden.ibm.com\nwrites:\n>After two weeks of limping around with an acute pain in my low back\n>and right leg, my osteopath sent me to get an MRI which revealed\n>a protruding (and extruded) disc at L4-L5.  I went to a neurosurgeon\n>who prescribed prednisole (a steroidal anti-inflamitory) and bed\nrest\n>for several days.  It's been nearly a week and overall I feel \n>slightly worse - I take darvocet three times a day so I can\n>deal with daily activities like preparing food and help me\n>get to sleep.  \n> \n>I'll see the neurosurgeon tomorrow and of course I'll be asking\n>whether or not this rest is helpful or if surgery is the next \n>step.  What are my non-surgical options if my goal is to resume\n>full activity, including competitive cycling.  I should add this\n>condition is, in my opinion, the result of commulative wear and\n>tear - I've had chronic low-back pain for years - but I managed\n\nYou don't say whether or not you have any symptoms other than pain.\nIf you have numbness, weakness or bladder problems, for example,\nthese would suggest a need for surgery. If pain is your only symptom\nyou might do well to find a reputable, multi-disciplinary pain\nclinic in your area. Chronic low back pain generally doesn't do well\nwith surgery, acute on chronic pain (as only symptom) doesn't fare\nmuch better.\ne correlation between MRI findings and symptoms is controversial.\n\nDon Mackie -  his opinions\nUM will disavow...\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 109, "properties": {"category": "comp.graphics", "text": "From: zyeh@caspian.usc.edu (zhenghao yeh)\nSubject: Ellipse from Its Offset\nOrganization: University of Southern California, Los Angeles, CA\nLines: 17\nDistribution: world\nNNTP-Posting-Host: caspian.usc.edu\nKeywords: ellipse\n\n\nHi! Everyone,\n\nSince some people quickly solved the problem of determining a sphere from\n4 points, I suddenly recalled a problem which is how to find the ellipse\nfrom its offset. For example, given 5 points on the offset, can you find\nthe original ellipse analytically?\n\nI spent two months solving this problem by using analytical method last year,\nbut I failed. Under the pressure, I had to use other method - nonlinear\nprogramming technique to deal with this problem approximately.\n\nAny ideas will be greatly appreciated. Please post here, let the others\nshare our interests.\n\nYeh\nUSC\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 110, "properties": {"category": "sci.electronics", "text": "From: jml@norman.vi.ri.cmu.edu\nSubject: Re: Radar Jammers And Stealth Cars\nNntp-Posting-Host: westend.vi.ri.cmu.edu\nReply-To: jml@visus.com\nOrganization: School of Computer Science, Carnegie Mellon\nDistribution: usa\nLines: 6\n\nEric H. Taylor writes\n> ... If you are determined\n> to go faster, get an airplane. They dont have speed limits.\n\nJust don't make a habit of buzzing your local airport at >200 knots\n(250 knots if you're flying a jet).  :-)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 111, "properties": {"category": "sci.med", "text": "From: aldridge@netcom.com (Jacquelin Aldridge)\nSubject: Re: what are the problems with nutrasweet (aspartame)\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 36\n\nhbloom@moose.uvm.edu (*Heather*) writes:\n\n>Nutrasweet is a synthetic sweetener a couple thousand times sweeter than\n>sugar.  Some people are concerned about the chemicals that the  body produces \n>when it degrades nutrasweet.  It is thought to form formaldehyde and known to\n>for methanol in the degredation pathway that the body uses to eliminate \n>substances.  The real issue is whether the levels of methanol and formaldehyde\n>produced are high enough to cause significant damage, as both are toxic to\n>living cells.  All I can say is that I will not consume it.  \n\n>Phenylalanine is\n>nothing for you to worry about.  It is an amino acid, and everyone uses small\n>quantities of it for protein synthesis in the body.  Some people have a disease\n>known as phenylketoneurea, and they are missing the enzyme necessary to \n>degrade this compound and eliminate it from the body.  For them, it will \n>accumulate in the body, and in high levels this is toxic to growing nerve\n>cells.  Therefore, it is Only a major problem in young children (until around\n>age 10 or so) or women who are pregnant and have this disorder.  It used to\n>be a leading cause of brain damage in infants, but now it can be easily \n>detected at birth, and then one must simply avoid comsumption of phenylalanine\n>as a child, or when pregnant.  \n\n>-heather\n\nIf I remember rightly PKU syndrome in infants is about 1/1200 ? They lack\ntwo genes. And people who lack one gene are supposed to be 1/56 persons?\nThose with PKU have to avoid naturally occuring phenylalanine. And those\nwho only have one gene and underproduce whatever it is they are supposed to\nbe producing are supposed to be less tolerant of aspartame. \n\nThe methol, formaldahyde thing was supposed to occur with heating?\n\nI don't drink it. I figure sugar was made for a reason. To quickly and\neasily satiate hungry people. If you don't need the calories it's just as\neasy to drink water.  Used to drink a six pack a aday of aspartame soda. Don't\neven drink one coke a day when sugared.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 112, "properties": {"category": "comp.graphics", "text": "From: bsaffo01@cad.gmeds.com (Brian H. Safford)\nSubject: IGES Viewer for DOS/Windows\nOrganization: EDS/Cadillac\nLines: 10\nNNTP-Posting-Host: ccadmn1.cad.gmeds.com\n\nAnybody know of an IGES Viewer for DOS/Windows? I need to be able to display \nComputerVision IGES files on a PC running Windows 3.1. Thanks in advance.\n\n+-----------------------------------------------------------+\n| Brian H. Safford           EMAIL: bsaffo01@cad.gmeds.com  |\n| Electronic Data Systems    PHONE: (313) 696-6302          |\n+-----------------------------------------------------------+\n| NOTE: The views and opinions expressed herein are mine,   |\n| and DO NOT reflect those of Electronic Data Systems Corp. |\n+-----------------------------------------------------------+\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 113, "properties": {"category": "misc.forsale", "text": "From: wgs1@Isis.MsState.Edu (Walter G. Seefeld)\nSubject: Klipsch KG1 speakers Like New - $200 + shipping\nNntp-Posting-Host: isis.msstate.edu\nOrganization: Mississippi State University\nDistribution: na\nLines: 10\n\nOne pair of kg1's in Oak finish with black grilles.\nIncludes original packaging.\n\n$200 + shipping Firm.\n\n--\nWalter G. Seefeld          |  By the dawn's early light,\n940 N. Jackson St. #1A     |  By all I know is right,\nStarkville, MS 39759       |  We're going to reap what we have sown.\nN5QXR                      |   -Jackson Brown \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 114, "properties": {"category": "talk.politics.guns", "text": "From: cwwhite@vax2.concordia.ca (Stephen White)\nSubject: Re: Gritz/JBS/Liberty Lobby/LaRouche/Christic Insitute/Libertarian/...\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: vax2.concordia.ca\nOrganization: Concordia University\nLines: 25\n\nIn article <C5L2BC.C2x.1@cs.cmu.edu>, rubinoff+@cs.cmu.edu (Robert Rubinoff) writes...\n>In article <93105.230230U23590@uicvm.uic.edu> <U23590@uicvm.uic.edu> writes:\n>>Note that Bo Gritz was on the Populist party ticket with David\n>>Duke (for veep) in 1988 until he found out that Duke was leading\n>>he ticket, when he withdrew his candidacy.  So Gritz gave up his\n>>chance to be Vice President of the US just to aviod supporting\n>>Duke.\n\n>I'd hardly call that \"giving up his chance to be Vice President of the US\";\n>the chance of the Populist Party ticket winning is essentially nil.  Still,\n>it does imply that he doesn't want to be associated with Duke.\n\n>  Robert\n\nExactly, after all he was in the same party, probably just didn't want the\nbad press that being directly associated with Duke would bring.  Conversely,\nis his disdain for David Duke supposed to make us ideolize him?  I mean\na stand against neo-nazism ... Whoa!  Now that's progressive!  Come on.\n\nI certainly know that I would refuse and openly denounce my Vice Presidency\nif it meant putting him in control.\n\n\t\t\t\t\t\t\t\t--Stephen White\n\n| \t\"Live simply that others may simply live\" --Mohandas K. Gandhi\t       |\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 115, "properties": {"category": "comp.graphics", "text": "From: quan@sol.surv.utas.edu.au (Stephen Quan)\nSubject: Re: Fast polygon routine needed\nKeywords: polygon, needed\nOrganization: University of Tasmania, Australia.\nLines: 22\n\nosprey@ux4.cso.uiuc.edu (Lucas Adamski) writes:\n\n>In article <1993Apr17.192947.11230@sophia.smith.edu> orourke@sophia.smith.edu (Joseph O'Rourke) writes:\n>>In article <C5n3x0.B5L@news.cso.uiuc.edu> osprey@ux4.cso.uiuc.edu (Lucas Adamski) writes:\n>>>[...], but I'm looking for a fast polygon routine to be used in a 3D game.\n>>A fast polygon routine to do WHAT?\n>To draw polygons of course.  Its a VGA mode 13h (320x200) game, [...]\n\nHi, I've come across a fast triangle fill-draw routine for mode 13h.  By\ncalling this routine enough times, you have a fast polygon drawing routine.\n\nI think I ftp'ed from wuarchive.wustl.edu:/pub/MSDOS_UPLOADS/programming.\nI have a copy of it so I reupload it there.  The triangle.txt file has this\nto say :\n\n>  C and inline assembly source for a VGA mode 13h triangle drawer.\n\n--\nStephen Quan (quan@sol.surv.utas.edu.au)      Tel : 002 202844 (local)\nResearch Fellow, Computer Scientist,          Fax : 002 240282 (local)\nCentre for Spatial Information Systems,       Tel : 61 02 202844\nUniversity of Tasmania, Australia.            Fax : 61 02 240282\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 116, "properties": {"category": "talk.politics.mideast", "text": "From: hilmi-er@dsv.su.se (Hilmi Eren)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES (Henrik)\nLines: 95\nNntp-Posting-Host: viktoria.dsv.su.se\nReply-To: hilmi-er@dsv.su.se (Hilmi Eren)\nOrganization: Dept. of Computer and Systems Sciences, Stockholm University\n\n\n\n\n|>The student of \"regional killings\" alias Davidian (not the Davidian religios sect) writes:\n\n\n|>Greater Armenia would stretch from Karabakh, to the Black Sea, to the\n|>Mediterranean, so if you use the term \"Greater Armenia\" use it with care.\n\n\n\tFinally you said what you dream about. Mediterranean???? That was new....\n\tThe area will be \"greater\" after some years, like your \"holocaust\" numbers......\n\n\n\n\n|>It has always been up to the Azeris to end their announced winning of Karabakh \n|>by removing the Armenians! When the president of Azerbaijan, Elchibey, came to \n|>power last year, he announced he would be be \"swimming in Lake Sevan [in \n|>Armeniaxn] by July\".\n\t\t*****\n\tIs't July in USA now????? Here in Sweden it's April and still cold.\n\tOr have you changed your calendar???\n\n\n|>Well, he was wrong! If Elchibey is going to shell the \n|>Armenians of Karabakh from Aghdam, his people will pay the price! If Elchibey \n\t\t\t\t\t\t    ****************\n|>is going to shell Karabakh from Fizuli his people will pay the price! If \n\t\t\t\t\t\t    ******************\n|>Elchibey thinks he can get away with bombing Armenia from the hills of \n|>Kelbajar, his people will pay the price. \n\t\t\t    ***************\n\n\n\tNOTHING OF THE MENTIONED IS TRUE, BUT LET SAY IT's TRUE.\n\t\n\tSHALL THE AZERI WOMEN AND CHILDREN GOING TO PAY THE PRICE WITH\n\t\t\t\t\t\t    **************\n\tBEING RAPED, KILLED AND TORTURED BY THE ARMENIANS??????????\n\t\n\tHAVE YOU HEARDED SOMETHING CALLED: \"GENEVA CONVENTION\"???????\n\tYOU FACIST!!!!!\n\n\n\n\tOhhh i forgot, this is how Armenians fight, nobody has forgot\n\tyou killings, rapings and torture against the Kurds and Turks once\n\tupon a time!\n      \n       \n\n|>And anyway, this \"60 \n|>Kurd refugee\" story, as have other stories, are simple fabrications sourced in \n|>Baku, modified in Ankara. Other examples of this are Armenia has no border \n|>with Iran, and the ridiculous story of the \"intercepting\" of Armenian military \n|>conversations as appeared in the New York Times supposedly translated by \n|>somebody unknown, from Armenian into Azeri Turkish, submitted by an unnamed \n|>\"special correspondent\" to the NY Times from Baku. Real accurate!\n\nOhhhh so swedish RedCross workers do lie they too? What ever you say\n\"regional killer\", if you don't like the person then shoot him that's your policy.....l\n\n\n|>[HE]\tSearch Turkish planes? You don't know what you are talking about.<-------\n|>[HE]\tsince it's content is announced to be weapons? \t\t\t\ti\t \n\t\t\t\t\t\t\t\t\t\ti\n|>Well, big mouth Ozal said military weapons are being provided to Azerbaijan\ti\n|>from Turkey, yet Demirel and others say no. No wonder you are so confused!\ti\n\t\t\t\t\t\t\t\t\t\ti\n\t\t\t\t\t\t\t\t\t\ti\n\tConfused?????\t\t\t\t\t\t\t\ti\n\tYou facist when you delete text don't change it, i wrote:\t\ti\n\t\t\t\t\t\t\t\t\t\ti\n        Search Turkish planes? You don't know what you are talking about.\ti\n        Turkey's government has announced that it's giving weapons  <-----------i\n        to Azerbadjan since Armenia started to attack Azerbadjan\t\t\n        it self, not the Karabag province. So why search a plane for weapons\t\n        since it's content is announced to be weapons?   \n\n\tIf there is one that's confused then that's you! We have the right (and we do)\n\tto give weapons to the Azeris, since Armenians started the fight in Azerbadjan!\n \n\n|>You are correct, all Turkish planes should be simply shot down! Nice, slow\n|>moving air transports!\n\n\tShoot down with what? Armenian bread and butter? Or the arms and personel \n\tof the Russian army?\n\n\n\n\nHilmi Eren\nStockholm University\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 117, "properties": {"category": "comp.graphics", "text": "From: ianf@random.se (Ian Feldman, The Other Internet Worm[tm])\n            <1omb6fINNm7s@lynx.unm.edu> <a7d56e52@random.se>\nContent-Type: setext/plain; charset=ascii_827\nOrganization: random design -- \"Opinions, cheaply\"\nLines: 138\nSummary: formatted as two 69-line pages (use a monospaced font!)\nSubject: SciP+Fi: fiction set in Comp-Science\\ programming environs\n\n\f\n ================ ------------------------------------------------------------\n |||||||| SciP+Fi  ction set in C-Sci\\programming environs list by Ian Feldman\n ..........:::::: ---------------------------------------- ---- --------------\n Written by:_____ _Book Title_; publisher'year, pp         v2.7           ISBN\n -----------       =============================== ------- ==== ##############\n     John Brunner _Shockwave Rider_; Ray/Ballantine'84 $5_______ 0-345-32431-5\n                   \"cracking the net to free information for the common good\"\n      Pat Cadigan _Mindplayers_; (\"an absolute must-have\" --Bruce Sterling)\n      Pat Cadigan _Synners_; Bantam $5; (virtual reality)_______ 0-553-28254-9\n Orson Scott Card _Lost Boys_; Harper Collins'92; (programmer and family     \\\n                   encounters strange events in North Carolina)\n     Denise Danks _Frame Grabber_; St.Martin's, hrdb [GBP]17____ 0-312-08786-1\n                   computer-illiterate journalix tracks down murderer via BBS\n    Toni Dwiggins _Interrupt_; (\"a techno-mystery set in Silicon Valley\")\n    Michael Frayn _The Tin Men_; Fontana, (\"inspired lunacy\" but out of print)\n    David Gerrold _When HARLIE was One Release 2.0_; Bantam'88__ 0-553-26465-6\n   William Gibson _Count Zero_; (computers as gods, part of a trilogy)\n   William Gibson _Mona Lisa Overdrive_; (virtual reality)______ 0-553-28174-7\n   William Gibson _Burning Chrome_; (cyberpunk short stories)___ 0-441-08934-8\n   William Gibson _Neuromancer_; (industrial espionage)_________ 0-441-56959-5\n                   (author guilty of inventing the cyberpunk genre)\n      James Hogan _The Genesis Machine_; Del Ray'87 $3__________ 0-345-34756-0\n      James Hogan _Thrice Upon A Time_; (\"time travel for information\")\n      James Hogan _The Two Faces of Tomorrow_; Del Ray'79_______ 0-345-27517-9\n                   ultimate test of AI-OS by letting it run a spacelab -> amok\n    Stanislaw Lem _His Master's Voice_; (failed attempt to decode ET-message)\n       Tom Maddox _HALO_ (\"remarkable SF of robots & artificial intelligence\")\n George RR Martin _Nightflyers_; Tor Books'87___________________ 0-8125-4564-8\n      R A MacAvoy _Tea with the Black Dragon_; (\"mystery around a computer   \\\n                   fraud situation; computing bits ring true.\")\n Vonda N McIntyre _Steelcollar Worker_; in Analog Nov'92; (blue-collar VR)\n     Marge Piercy _Body of Glass_; Penguin'92, 584pp; (data piracy++) review \\\n                   finger \"books=Body_of_Glass%danny\"@orthanc.cs.su.oz.au\n ---> David Pogue _Hard-Drive_; Diamond'93 $5, 304pp____________ 1-55773-884-X\n                   (*programmer dies in accident, leaves no documentation    \\\n                   behind; software firms fight for market share with virii; \\\n                   \"right out of the pages of MacWorld\" --Steve Brock)\n   Richard Powers _The Gold Bug Variations_; Morrow '91, (famous molecular   \\\n                   scientist ponders on the ?why? of love, life in EDP dept.)\n      Paul Preuss _Human Error_; (nanotech computer infects brain-damaged kid)\n    Thomas J Ryan _The Adolescence of P1_; ACE'79_______________ 0-671-55970-2\n                   (runaway AI experiment takes over mainframes, wrecks havoc)\n   Bruce Sterling _The Difference Engine_; (with W Gibson) Bantam'91; finger \\\n                   \"books=The_Difference_Engine%danny\"@orthanc.cs.su.oz.au\n      Cliff Stoll _The Cuckoo's Egg_; (non-fiction but reads like one); review\n                   FTP <garbo.uwasa.fi>; /mac/tidbits/1991/tb048_18-Mar-91.etx\n     Tom T Thomas _ME_; (\"smart computers\")\n     Vernor Vinge _Across Realtime_; Baen Books_____________ [several titles \\\n     Vernor Vinge _Tatja Grimm's World_; Baen Books__________ soon available \\\n     Vernor Vinge _The Witling_; Baen Books___________________ as Millennium \\\n     Vernor Vinge _Threats and Other Promises_; Baen Books_____ Books in UK]\n     Vernor Vinge _True Names & Other Dangers_; Baen Books'87___ 0-671-65363-6\n     Vernor Vinge _A Fire Upon The Deep_; Tor Books, 640p, $6___ 0-8125-1528-5\n                   (\"essentially about the future of the Internet\")\n      John Varley _Press Enter_; (\"Short story, gruesome, but good\")\n       Ed Yourdon _Silent Witness_; (\"Computer crime caper story; gumshoe    \\\n                   has to explain intricacies of computer OS to girlfriend\")\n Herbert W Franke _Das Zentrum der Milchstrasse_; (\"the center of the galaxy\")\n Herbert W Franke _Letzte Programmierer_; (\"'the last programmer';           \\\n                   I do NOT mean Frank Herbert!\")\n       Emil Zopfi _Computer Fuer 1001 Nacht_; Limmat Verlag, Switzerland\n       Emil Zopfi _Jede Minute Kostet 33 Franken_; (last 4 in German; last 2 \\\n                   \"set in the commercial computing world of the early 70's\")\n -----------------------------------------------------------------------------\n current version of this list via `finger \"scip+fi%danny\"@orthanc.cs.su.oz.au'\n -----------------------------------------------------------------------------\n compiled 930424; % mail -s \"additions/ comments/ updates --->\" ianf@random.se\n ================ ============================================= ==============\n\n\f\n\n     Statistical breakdown\n--------------------------\n +-- --------------------- SciP+Fiction -----+------------+------------------+\n | # nominations /title    ~~~~~~~~~~~~         /author    # books nominated |\n +-- =========== ----------------------------+ =========== ================= +\n | 5 _The Adolescence of P-1_; Ryan          |    Vinge 10          6 titles |\n | 5 _Neuromancer_; Gibson                   |   Gibson 10          5 titles |\n | 4 _True Names and Other Dangers_; Vinge   |     Ryan  5 _The Adolescence..|\n | 4 _Shockwave Rider_; Brunner              |  Brunner  4 _Shockwave Rider_ |\n | 4 _When H.A.R.L.I.E was One_; Gerrold     |  Gerrold  4 _When H.A.R.L.I.E.|\n | 4 _A Fire Upon The Deep_; Vinge           |    Hogan  3          3 titles |\n | 2 _Threats and Other Promises_; Vinge     |      Lem  3 _Fiasco_HMV_Solar.|\n +-- ----------------------------------------+ ----------- ----------------- +\n | # total nominations: 85; authors: 27; female: 5?6; sent in by: 42 readers |\n +======== ================ ============ ============ =======================+\n\n\n       Contributions by [unsorted FIFO]:\n----------------------------------------\n From: sbrock@teal.csn.org (Steve Brock)\n From: \"John Lacey\" <johnl@cs.indiana.edu>\n From: malloy@nprdc.navy.mil (Sean Malloy)\n From: thom kevin gillespie <thom@silver.ucs.indiana.edu>\n From: Paul Christopher Workman <pw0l+@andrew.cmu.edu>\n From: kellys@code3.code3.com (Kelly Sorensen)\n From: whughes@lonestar.utsa.edu (William W. Hughes)\n From: North_TJ@cc.curtin.edu.au (Tim North)\n From: LORETI@FNAL.FNAL.GOV (Maurizio Loreti)\n From: Stephen Hart <stephenh@cs.mun.ca>\n From: Duane F Marble <dmarble@magnus.acs.ohio-state.edu>\n From: Matthias Neeracher <neeri@iis.ee.ethz.ch>\n From: Wolfram Wagner <ww@mpi-sb.mpg.de>\n From: webb@tsavo.HKS.COM (Peter Webb)\n From: setzer@ssd.comm.mot.com (Thomas Setzer)\n From: kevles@acf3.NYU.EDU (Beth Kevles)\n From: dp@world.std.com (Jeff DelPapa)\n From: rsquires@cyclops.eece.unm.edu (Roger Squires)\n From: hartman@uLogic.com (Richard Hartman)\n From: Vernor Vinge <vinge%saturn@sdsu.edu>\n From: Paul Lebeau <plebeau@cix.compulink.co.uk>\n From: \"Lawrence Rounds\" <ljr@beach.cis.ufl.edu>\n From: phydeaux@cumc.cornell.edu (David Weingart)\n From: chgs02@vaxa.strath.ac.uk (By learning+courtesy)\n From: Rowan Fairgrove <rowanf@cache.crc.ricoh.com>\n From: peterc@suite.sw.oz.au.sw.oz.au (Peter Chubb,x114,6982322,3982735)\n From: Gara Pruesse <gara@cs.toronto.edu>\n From: russell@alpha3.ersys.edmonton.ab.ca (Russell Schulz)\n From: ahm@spatula.rent.com (Andreas Meyer)\n From: jon@cs.washington.edu (Jon Jacky)\n From: eugene@nas.nasa.gov (Eugene N. Miya)\n From: \"A.M.MAIR\" <CHGS02@VAXB.STRATHCLYDE.AC.UK>\n From: mengel@dcdmwm.fnal.gov (Marc Mengel)\n From: Roger Scowen <rss@seg.npl.co.uk>\n From: kevino@clbooks.com (Kevin Oster -- System Administrator)\n From: chavey@cs.wisc.edu (Darrah Chavey)\n From: Vonda McIntyre <mcintyre@cpac.washington.edu>\n From: Bruce Sterling <bruces@well.sf.ca.us>\n From: \"Scott Thomas Yabiku\" <yabi@midway.uchicago.edu>\n From: Thomas Adshead <uad1212@dircon.co.uk>\n From: Paul Andrews <76050.161@CompuServe.COM>\n ===== ======================================= ---------> MUCHO thanks to all!\n\n\n__Ian \"The Other internet Worm[tm]\" Feldman <ianf@random.se>\n\r\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 118, "properties": {"category": "rec.sport.baseball", "text": "From: moakler@romulus.rutgers.edu (bam!)\nSubject: The Bob Dylan Baseball Abstract\nDistribution: na\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 42\n\n\nJust a little something I found while reading the Village Voice, which\nis not noted for its sports coverage, but occasionally the print some\ninteresting features.  This year, the predictions/team analyses for\nthe 1993 season were presented in the form of Bob Dylan lyrics.  I\ndon't have the article in front of me, so I'll only give the memorable\nones here that I remember and know the melody to.  I could dig up more\nif there is interest.\n\nYankess (to the tune of \"Subterranean Homesick Blues\")\n\nHowe is in the basement, mixing up the medicine.\nGeorge is on the pavement thinking 'bout the government.\nWade Boggs in a trench coat, bat out, paid off,\nSays he's got a bad back, wants to get it laid off.\nLook out kids, it's somethin' you did.\nDon't know when, but it's Columbus again.\n\nMets (to the tune of \"Like a Rolling Stone\")\n\nOnce upon a time you played so fine\nyou threw away Dykstra before his prime, didn't you?\nPeople said \"Beware Cone, he's bound to roam\"\nBut you thought they were just kidding you.\nYou used to laugh about, \nThe Strawberry that was headin' out.\nBut now you don't talk so loud,\nNow you don't seem so proud,\nAbout having to shop Vince Coleman for your next deal....\n\nPhillies (to the tune of \"Highway 61\")\n\nWell Daulton and Dykstra should have some fun,\nJust keep them off of Highway 61!\n\nGiants (to the tune of \"The Ballad of Rubin 'Hurricane' Carter\")\n\nThis is the story of the Magowan,\nThe man St. Petersburg came to pan,\nFor something that he never done,\nHe's sit in the owner's box but one...\nDay he could have the Tampian of the world!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 119, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: richk@grebyn.com (Richard Krehbiel)\nSubject: Re: WP-PCF, Linux, RISC?\nIn-Reply-To: ghhwang@csie.nctu.edu.tw's message of Sun, 18 Apr 1993 06:28:02 GMT\nLines: 22\nOrganization: Grebyn Timesharing, Inc.\n\nIn article <C5o1yq.M34@csie.nctu.edu.tw> ghhwang@csie.nctu.edu.tw (ghhwang) writes:\n\n>   Dear friend,\n>     The RISC means \"reduced instruction set computer\". The RISC usually has \n>   small instruction set so as to reduce the circuit complex and can increase \n>   the clock rate to have a high performance. You can read some books about\n>   computer architecture for more information about RISC.\n\nRISC used to mean \"Reduced Instruction Set Computer\", true.  They\nstill use the same acronym, but only to be familiar.  What RISC really\nmeans is a recently-designed CPU.  :-)\n\nIn general, most RISC CPUs are like this:\n\n    A large number (32 or more) of general-purpose registers\n    A fixed instruction size, usually 32 bits\n    An instruction may make only one memory reference\n    Memory references must be aligned\n    There are delayed branches (branch after the next instruction) or\na target prediction bit (probably will/won't branch)\n    Instructions may complete out of order relative to the instruction\nstream\n-- \nRichard Krehbiel                                 richk@grebyn.com\nOS/2 2.0 will do for me until AmigaDOS for the 386 comes along...\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 120, "properties": {"category": "comp.windows.x", "text": "From: egan@phony25.cc.utah.edu (Egan F. Ford)\nSubject: color xterm\nKeywords: color xterm\nReply-To: egan%phony25.cc.utah.edu@hellgate.utah.edu\nOrganization: Call Business Systems\nLines: 9\n\nI'm look for current patches for color xterm for X11R5 pl19 ro higher.  Could\nsomeone please tell me where to get them for e-mail them to me.\n\nThanks.\n\n\n-- \nEgan F. Ford\negan%phony25.cc.utah.edu@hellgate.utah.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 121, "properties": {"category": "talk.politics.misc", "text": "From: gardinal@alishaw (Paolo Gardinali)\nSubject: Re: New <bullshit> Study Out On Gay Percentage\nLines: 48\n\nIn <15378@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n\n\n>From the Santa Rosa (Cal.) Press-Democrat, April 15, 1993, p. B2:\n\n>    Male sex survey: Gay activity low\n\n>    A new natonal study on male sexual behavior, the most thorough\n>    examination of American men's sexual practices published since\n>    the Kinsey report more than four decades ago, shows about 2\n>    percent of the men surveyed had engaged in homosexual sex and\n>    1 percent considered themselves exclusively homosexual.\n\n                          etc. etc.....\n\n\n>The article also contains numbers on the number of sexual partners.\n>The median number of sexual partners for all men 20-39 was 7.3.\n     ^^^^^^\n\n***Sure!!! And what's .3 of a woman??? Any hypothesis??\n\n   How can you trust a report from people that have *no idea*\n   of what a MEDIAN is?\n\n   The same bullshit article reported that 22,5% of all the men have\n   sex 10 times or more a week (Elf, how many times did you fill\n   one of those questionnaires?) and had other statistics that took\n   in no consideration different class backgrounds, marital status\n   etc.  No information on sampling were given.\n\n>Compared to the table I have already posted from Masters, Johnson,\n>and Kolodny showing male homosexual partners, it is apparent that\n>homosexual men are dramatically more promiscuous than the general\n>male population.  It's a shame that we don't have a breakdown for\n\nDo you think you can compare so lightly secondary data from 2 very\ndifferent (and discutible) surveys???\n\n>straight men vs. gay/bi men -- that would show even more dramatically\n>how much more promiscuous gay/bi men are.\n\nIt just shows how dramatically ignorant are press release writers and\nmost pople that read them.....\n\n\nPAolo\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 122, "properties": {"category": "rec.motorcycles", "text": "From: fist@iscp.bellcore.com (Richard Pierson)\nSubject: Re: Contact person for boots\nKeywords: combat\nNntp-Posting-Host: foxtrot.iscp.bellcore.com\nOrganization: Bellcore\nDistribution: usa\nLines: 42\n\nIn article <1993Apr15.132316.4054@news.columbia.edu>,\nrdc8@cunixf.cc.columbia.edu (Robert D Castro) writes:\n|> Would anyone out there in DoDland be able to help me out in giving\n|> me\n|> a contact to purchase a pair of military air-borne combat boots (9\n|> 1/2\n|> D in size).  These boots (so I have read here on rec.moto) are calf\n|> height boots that use only velcro for enclosure.  I have phoned\n|> around\n|> and nobody seems to carry such an item.  I admit I have not gone\n|> into\n|> the deepest bowels of NYC yet for the search but I have made some\n|> calls to several of the bigger army/navy type stores with no luck.\n|> \n|> Anyone out there know of a place that does carry such an item as\n|> well\n|> as does mail order?  Any help would be appreciated.\n|> \n\n Currently there are no \"Velcro\" jump boots as issue in\nthe military, there are two other kinds. One is made my\nCochran and sell for $85.00 in either the Clothing sales\nstore or US Cavalry (Price match at the Cav store) the\nsecond co is also sold but somewhat cheaper in design.\nActually they don't care what you wear as long is they\nare 10 eyelets high.\nThere is another boot called a \"Tankers boot\" this has\nsimilar construction to a wellington boot except for the\nboot shape and has straps that wrap around for tightness.\nNice boots\n\n-- \n##########################################################\nThere are only two types of ships in the NAVY; SUBMARINES \n                 and TARGETS !!!\n#1/XS1100LH\tDoD #956   #2 Next raise\nRichard Pierson E06584 vnet: [908] 699-6063\nInternet: fist@iscp.bellcore.com,|| UUNET:uunet!bcr!fist  \n#include <std.disclaimer> My opinions are my own!!!\nI Don't shop in malls, I BUY my jeans, jackets and ammo\nin the same store.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 123, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: 2a42dubinski@vms.csd.mu.edu\nSubject: RE: Can I Change \"\"Licensed To\"\" Data in Windows 3.1?\nOrganization: Marquette University - Computer Services\nLines: 12\nReply-To: 2a42dubinski@vms.csd.mu.edu\nNNTP-Posting-Host: vmsa.csd.mu.edu\n\n\n\tOk, then where is the info for the Licensing kept?  Which file?  In the\norganization box I put my address, and when I moved, I wanted to change it, but\ncouldn't find it.  I could find my name, but not the organization.\n\n  ------------------------------------------------------------------------\n  | Robert S. Dubinski |  Aliases include:  Robb, Regal, Sir, Mr., and I |\n  ------------------------------------------------------------------------\n  | Marquette University ||||||||||| Math / Computer Science Double-Major|\n  ------------------------------------------------------------------------\n  | Internet Address: 2A42Dubinski.vms.csd.mu.edu  |\tMilwaukee, WI    |\n  ------------------------------------------------------------------------  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 124, "properties": {"category": "talk.religion.misc", "text": "From: buddha@iastate.edu (Scott H Vann)\nSubject: The bad press Islam has recieved.\nOrganization: Iowa State University, Ames IA\nLines: 16\n\n\n\tI recently read an article in a local paper written by an Islamic\n  person who was upset with the way Islam has been portrayed by western media.\n  When a terrorist action takes place in the middle east, it is always played\n  up as an Islamic Terrorist.  However, when the a Serbian terrorist attacks\n  the Croations, its not a Christian terrorist, its just a terrorist.\n\tI have often tried to explain this to some close friends who believe\n  the press, that Islam is somehow tied to violence.  Often times you hear\n  things like \"They just don't value human life like we do...\" and so on.\n  I was wondering if anyone out there had any suggestions for how we can\n  change this image, or how I can help my friends to see that this is just \n  hype.  I would appreciate any serious suggestions or comments via e-mail,\n  and I'm not interested in hearing about how right the press is.\n\n\t\t\t\t\t-Scott Vann\n\t\t\t\t\tbuddha@iastate.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 125, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: carlos@carlos.jpr.com (Carlos Dominguez)\nSubject: Re: Can I Change \"Licensed To\" Data in Windows 3.1?\nReply-To: carlos@carlos.jpr.com\nOrganization: HELLDIVER USENET node, Brooklyn, New York, USA\nLines: 17\nX-Newsreader: Helldiver 1.07 (Waffle 1.64)\n\nIn <1993Apr15.180633.3437@trintex.uucp> charles@tinman.dev.prodigy.com () writes:\n\n>Have you tried re-installing the software?   Otherwise I would be dubious about\n>simple ways to change that screen. Is it not designed to be an embarassment to\n>would be pirates?\n\nso when is PRODIGY going to open the doors for inetgate to accept\ninternet mail eh?\n\nobviously if you can post news, mail should go through as well..\n\n\n-- \n  ___ ___  __   .   ___  __  //  Carlos Dominguez -  SysAdmin / Kibbitzer\n /   /__/ /_ ) /   /  / /_  // | carlos@carlos.jpr.com \n(__ (  / /  \\ (__ (__/ __/ ..  | carlos@carlos.UUCP carlos!carlos (bang)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 126, "properties": {"category": "sci.crypt", "text": "From: uri@watson.ibm.com (Uri Blumenthal)\nSubject: Re: Key Registering Bodies\nDistribution: usa\nReply-To: uri@watson.ibm.com\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: kingbee.watson.ibm.com\nOrganization: IBM  T. J. Watson Research Center\nLines: 18\n\nIn article <930419182442.669507@DOCKMASTER.NCSC.MIL>, Grant@DOCKMASTER.NCSC.MIL (Lynn R Grant) writes:\n|> If we do not trust the NSA to be a registrar of Clipper Chip key halves,\n|> I would not trust Mitre either. \n\nI wouldn't trust Mitre  for another reason: \nremember \"The Cuckoo's Egg\"?  How great was\ntheir security, eh?\n\nNSA - well, with the list of known \"turncoats\",\ndoes it make you wonder how many more unknown \nstill are there?\n\n(:-) (:-(\n-- \nRegards,\nUri. \t  uri@watson.ibm.com\t scifi!angmar!uri \n------------\n<Disclaimer>\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 127, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon W\u00e4tte)\nSubject: Re: Whither QuickDraw Performance (across product line)\nNntp-Posting-Host: hemul.nada.kth.se\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 26\n\nIn <daves-190493121505@129.228.20.182> daves@xetron.com (Dave Steele) writes:\n\n>The fastest QuickDraw color performing computer Apple makes is the\n>(drumroll please) LCIII.  And the Color Classic ranks right up there with\n>the Quadra line.  The Centris line pales in comparison.\n\n>Does anybody know the differences in these computers that explains the\n>disparity in graphics/processor performance?\n\nI think you are suffering from some alignment or color\ntable or <whatever> problems, if a Color Classic is as fast\nas a Quadra rendering to screen.\n\nWhat screen card you use does of course matter much (built-in\nvideo is almost always faster than NuBus)\n\nOr you measured \"scroll entire screen\" where the Color Classic\nhad a VRAM 10\" screen in 4-bit color and the Quadra had a\n21\" 24-bit screen on NuBus :-)\n\nCheers,\n\n\t\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n   This sig less than 3 lines: Improve the UseNet S/N ratio!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 128, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: Royal Roads Military College, Victoria, B.C.\nDistribution: usa\nLines: 21\n\n\nIn article <9601@blue.cis.pitt.edu>, rjl+@pitt.edu (Richard J. Loether) writes:\n|> \n|> Yes, of course, as in Matthew 10:34-35 \"Do not suppose that I have come to \n|> bring peace to the earth; it is not peace I have come to bring but a sword...\"\n|> :\n\nRemember the armor of God?  The sword that Christians wield is the\nWord of God, the Bible.\n\nGod be with you,\n\nMalcolm Lee  :)\n\n\n|> RJL\n|> -- \n|> Rich Loether          Snail mail: University of Pittsburgh     The Ideas:\n|> EMail: rjl+@pitt.edu              Computing and Info Services      Mine,\n|> Voice: (412) 624-6429             600 Epsilon Drive                   all\n|> FAX  : (412) 624-6426             Pittsburgh, PA 15238                  Mine.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 129, "properties": {"category": "sci.med", "text": "From: romdas@uclink.berkeley.edu (Ella I Baff)\nSubject: GETTING AIDS FROM ACUPUNCTURE NEEDLES\nOrganization: University of California, Berkeley\nLines: 44\nDistribution: world\nNNTP-Posting-Host: uclink.berkeley.edu\n\n   someone wrote in expressing concern about getting AIDS from acupuncture\n   needles.....\n\nUnless your friend is sharing fluids with their acupuncturist who               \nthemselves has AIDS..it is unlikely (not impossible) they will get AIDS         \nfrom acupuncture needles. Generally, even if accidently inoculated, the normal\nimmune response should be enough to effectively handle the minimal contaminant \ninvolved with acupuncture needle insertion. \n\nMost acupuncturists use disposable needles...use once and throw away. They      \ndo this because you are not the only one concerned about transmission of \ndiseases via this route...so it's good business to advertise \"disposable needlesused here.\" These needles tend to be of a lower quality however, \nbeing poorly manufactured and too \"sharp\" in my opinion. They tend to snag bloodvessels on insertion compared to higher quality needles.                                                                        \nIf I choose to use acupuncture for a given complaint, that patient will get \ntheir own set of new needles which are sterilized between treatments.      \nThe risk here for hepatitis, HIV, etc. transmission is that I could mistakenly \nuse an infected persons needles accidently on the wrong              \npatient...but clear labelling and paying attention all but eliminates \nthis risk. Better quality needles tend to \"slide\" past vessels and            \nnerves avoiding unpleasant painful snags..and hematomas...so I use them.                        \nAcupuncture needles come in many lengths and thicknesses...but they are all \nsolid when compared to their injection-style cousins. In China, herbal solutionsand western pharmaceuticals are occasionally injected into \nmeridian points purported to have TCM physiologic effects and so require \nthe same hollow needles used for injecting fluid medicine. This means...thinkingtiny...that a samll amount of tissue, the diameter of the needle bore, will be \ninjected into the body as it would  be in a typical \"shot.\" when the skin is \npuntured. On the other hand when the solid \nacupuncture needle is inserted, the skin tends to \"squeeze\" the needle \nfrom the tip to the level of insertion such that any 'cooties' that \nhaven't been schmeared away with alcohol before insertion, tend to remain \non the surface of the skin minimizing invasion from the exterior. \n\nOf course in TCM...the body's exterior is protected by the Wei (Protective) Qi..so infection is unlikely....or in other words...there is a normal inflammatory \nand immune response that accompanies tissue damage incurred at the puncture \nsite.\n\n\nWhile I'm fairly certain your friend will not have a transferable disease \ntransmitted to them via acupuncture needle insertion, I would like to know for \nwhat complaint they have consulted the acupuncturist...not to know  if it would be harmful.. but to know if it would be helpful. \n\nJohn Badanes, DC, CA\nromdas@uclink.berkeley.edu\n                                                                                                    \n  \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.008+0000", "event": "documents", "entityId": 130, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Deir Yassin\nOrganization: The Department of Redundancy Department\nLines: 21\n\nIn article <1993Apr24.023039.1485@cs.rit.edu> bdm@cs.rit.edu (Brendan D McKay) writes:\n>In article <1r94f9$ge3@morrow.stanford.edu> AS.VXF@forsythe.stanford.edu (Vic Filler) writes:\n\n>>You have a lot to learn when it comes to historical methodology.\n>\n>That's true.  I try to learn from people who know more than me,\n>not from useless farts.\n\nAnd anyone who doesn't agree with you is, by your own definitions, a\n\"useless fart\".  Just like any text that disputes your own \"findings\"\nis always described as \"flawed\" or \"biased\".  In other words, you\ntrumpet the things you like and dismiss those that might embarass you.\nWe've seen you play these games here for a long time.\n\nOne thing is for sure: When it comes to \"useless farts\", you sure know \nwhat you're talking about.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 131, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ntaib@silver.ucs.indiana.edu (Iskandar Taib)\nSubject: Re: Win NT - what is it???\nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 30\n\nIn article <2BCF2664.3C6A@deneva.sdd.trw.com> reimert@.etdesg.trw.com (Scott P. Reimert) writes:\n\n>Somewhere in this thread, it has been said that Windows NT (tm) is a \n>multi-user OS, as well as multi-threading, etc.  I certainly haven't\n>seen this to be the case.  There are seperate accounts for each person,\n>and even seperate directories if that is desired.  I don't see an \n>implentation of simultaneuos use though.\n\nSince running any GUI over a network is going to slow it down by a\nfair amount, I expect Windows NT will be multiuser only in the sense\nof sharing filesystems. Someone will likely write a telnetd for it so\none could run character-based apps, but graphics-based apps will have\nto be shared by running the executables on the local CPU. This is how\nthings are shaping up everywhere: client-server architectures are\ntaking over from the old cpu-terminal setups. \n\nNote that the NeXT does this: you can always telnet into a NeXT and\nrun character-based apps but you can't run the GUI. (Yeah, I know\nabout X-Windows, just haven't been too impressed by it...)..\n\n\n\n\n\n\n-- \n-------------------------------------------------------------------------------\nIskandar Taib                          | The only thing worse than Peach ala\nInternet: NTAIB@SILVER.UCS.INDIANA.EDU |    Frog is Frog ala Peach\nBitnet:   NTAIB@IUBACS                 !\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 132, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc2.arc.nasa.gov (Curt Howland)\nSubject: Re: Newbie\nOrganization: NASA Science Internet Project Office\nLines: 16\n\nIn article <C5swox.GwI@mailer.cc.fsu.edu>, os048@xi.cs.fsu.edu () writes:\n|>  hey there,\n|>     Yea, thats what I am....a newbie. I have never owned a motorcycle,\n\nThis makes 5! It IS SPRING!\n\n|> Matt\n|> PS I am not really sure what the purpose of this article was but...oh well\n\nNeither were we. Read for a few days, then try again.\n\n---\nCurt Howland \"Ace\"       DoD#0663       EFF#569\nhowland@nsipo.nasa.gov            '82 V45 Sabre\n     Meddle not in the afairs of Wizards,\n for it makes them soggy and hard to re-light.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 133, "properties": {"category": "talk.politics.guns", "text": "From: dianem@boi.hp.com (Diane Mathews)\nSubject: Re: BATF/FBI revenge\nOrganization: Hewlett-Packard / Boise, Idaho\nLines: 18\n\n>>Am I having a vain hope that an honest investigation will occur on this\n>>thing?  Or will it simply be whitewashed under the rug, and Business\n>>as Usual will continue to be the Order of the Day in the New Order?\n>>Who will be given the official title of \"Thought Police\", I wonder...?\n>>\n>>And if Clinton and friends have their way, (highly likely at this point)\n>>the New Order Government will also have all the guns...  So what if\n>>\"1984\" is going to be ten years late...  I think we are going to discover\n>>that we will be paying DEARLY for putting this fellow in office for decades\n>>to come.  Even some die-hard supporters are having serious doubts about\n>>their Savior.\n\nAhem.  See the War on Drugs, as sponsored by the Bush and Reagan\nadministrations.  The precedent had well been set for federal agencies to\nstep on more than a few of what people consider \"rights.\"  I won't make\nexcuses for anyone, but most of the damage had been done before Clinton\neven entered the race in '92.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 134, "properties": {"category": "comp.windows.x", "text": "From: scotth@oniboshi.corp.sgi.com (Scott Henry)\nSubject: Re: xlock\nOrganization: Silicon Graphics Inc, Mountain View, CA\nLines: 21\nIn-Reply-To: dale@wente.llnl.gov's message of 20 Apr 93 01:15:13 GMT\nNntp-Posting-Host: oniboshi.corp.sgi.com\n\n\n>>>>> In article <1qvir1$idi@lll-winken.llnl.gov>, dale@wente.llnl.gov (Dale M. Slone) writes:\n\ndale> I found an oddity with our SGI Indigo (MIPS R3000 chip).\ndale> When xlock +nolock is running, and I am working remotely\ndale> or in batch (at) mode, the runtime of my programs (as timed\ndale> by using clock() in the code itself) is ~25% slower than if\ndale> xlock is NOT running.  No other processes seem to affect my\ndale> runtimes, yet this is very consistent!\n\nUnless you run `xlock -mode blank`, xlock consumes CPU time generating\nthe nice animated display. The code you are running is competing with\nxlock for the CPU. If you run top (via a remote login), you can really\nsee what is going on.\n\n=-=-=\n\n--\n Scott Henry <scotth@sgi.com> / Help! My disclaimer is missing!\n Networking Services,        / GIGO *really* means: Garbage in, Gospel Out\n Silicon Graphics, Inc      / \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 135, "properties": {"category": "sci.electronics", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Telephone On Hook/Off Hok\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 26\n\nIn article <734953838.AA00506@insane.apana.org.au> peter.m@insane.apana.org.au (Peter Tryndoch) writes:\n\n>MC>Aye, there's the rub -- if you draw enough current to light an LED, th\n>MC>equipment at the phone company will think you've gone off hook.\n>MC>In the on-hook state you're not supposed to draw current.  \n>\n>Ok lets have some calculation here: Going by Australian standards, which I \n>presume might be similar to other countries ( If not, lets have some \n>input) a phone uses 600ohm to loop a 48V line = 80mA. A standard LED \n>drains 20mA. So what is the actual loop current required for an \"off hook\" \n>indication, do you know?\n\nUp to 60 microamperes  =   on hook\n\nOver something like 10 mA  = off hook\n\nIn between = defective line, and the phone company comes looking\n              for leaky insulation.\n\n\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 136, "properties": {"category": "talk.politics.mideast", "text": "From: maler@vercors.imag.fr (Oded Maler)\nSubject: Re: was: Go Hezbollah!!\nNntp-Posting-Host: pelvoux\nOrganization: IMAG, University of Grenoble, France\nLines: 31\n\nIn article <1993Apr15.152619.12664@src.honeywell.com>, amehdi@src.honeywell.com (Hossien Amehdi) writes:\n|> \n|> The way I see it, Israelis and Arabs have not been able to achieve peace\n|> after almost 50 years of fighting because of the following two major reasons:\n|> \n|>  1) Arab governments are not really representative of their people, currently\n|>     most of their leaders are stupid, and/or not independent, and/or\n|>     dictators.\n\nTrue, but maybe not the worst possible - see Algeria.  \n\n|> \n|>  2) Israeli government is arrogant and none comprising.\n|> \n\nThis was true (and I may add the adjective \"stupid\") until the Intifada.\nSince then, no serious Israeli leader (including Shamir) really thinks\nthe the occupied territories worth the trouble. The only question became\nthe question of price and other quantitative detail. The best thing the \nPalestinians can do for themselves these days is to stop the Intifada\nand try to live as normally as possible (I know, it's hard under occupation).\nOtherwise people might think that five years of stone throwing (as justified\nas it may be) has caused the Palestinians an irreversible damage that \nprevents them from running a normal state when the time comes. Currently \nit serves no purpose and it's just a waste of human life and economic\nresources.  \n-- \n===============================================================\nOded Maler, LGI-IMAG, Bat D, B.P. 53x, 38041 Grenoble, France\nPhone:  76635846     Fax: 76446675      e-mail: maler@imag.fr\n===============================================================\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 137, "properties": {"category": "rec.autos", "text": "From: etxmst@sta.ericsson.se (Markus Strobl 98121)\nSubject: Renting from Alamo\t\nNntp-Posting-Host: st83.ericsson.se\nReply-To: etxmst@sta.ericsson.se\nOrganization: Ericsson Telecom AB\nLines: 20\n\nHello netters!\n\nI'm visiting the US (I'm from Sweden) in August. I will probably rent a Chevy\nBeretta from Alamo. I've been quoted $225 for a week/ $54 for additional days. \nThis would include free driving distance, but not local taxes (Baltimore). \nThey also told me all insurance thats necessary is included, but I doubt that,\n 'cause a friend rented a car last year and it turned out he needed a lot more\ninsurance than what's included in the base price. But on the other hand he didn't\nrent it from Alamo.\n\nDoes anyone have some info on this?\n\nIs $225 a rip-off? \nProbability that I'll be needing more insurance?\nIs the beretta a good rental car?\n\nThanx\n\nMarkus\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 138, "properties": {"category": "alt.atheism", "text": "From: jmunch@hertz.elee.calpoly.edu (John Munch)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 11\n\nIn article <1993Apr15.212943.15118@bnr.ca> (Rashid) writes:\n>P.S. I'm not sure about this but I think the charge of \"shatim\" also\n>applies to Rushdie and may be encompassed under the umbrella\n>of the \"fasad\" ruling.\n\nPlease define the words \"shatim\" and \"fasad\" before you use them again.\n\n/---- John David Munch ------------------ jmunch@hertz.elee.calpoly.edu ----\\\n|....\" the heart can change, be full of hate, or love. If people are allowed|\n|to base their lives through their hearts, anything can happen. A dangerous |\n|situation, in my opinion.\" -Bobby Mozumder describing problems with atheism|\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 139, "properties": {"category": "talk.religion.misc", "text": "From: paul@actrix.co.at (Paul Gillingwater)\nSubject: Re: Merlin, Mithras and Magick\nOrganization: Home Office in Vienna, Austria\nX-Newsreader: rusnews v1.01\nLines: 28\n\nkosinski@us.oracle.com (Kevin Osinski) writes:\n\n> I recall reading in Michael (?) Rutherford's novel \"Sarum\" a scene in\n> which the son of a Roman nobleman living in Britain takes part in a\n> secret ceremony involving a bull.  He stands naked in a pit covered\n> with some sort of scaffolding while assistants coax a bull to stand on\n> the scaffolding.  They then fatally stab the bull, which douses the\n> worshipper in the pit with blood.  This is supposedly some sort of\n> rite of passage for members of the bull cult.  I wonder if this is\n> related to the Mithras cult?\n\nYes, this is certainly one of the traditional ideas about the Mithraic\ncult (although not the only one.)  It had many elements that seem\nto have been borrowed by Catholicism (e.g. the Mass, communion, the\nsharing of a sacred meal, consecration of bread and wine, etc.)\n\nFor quite an amusing novel that uses this same idea, check out:\n\nThe Covenant of the Flame\nby David Morrell.\n\nIt has some quite interesting occult bits, and lots of killing.\nI won't spoil it by revealing the ending, but I will say that it\nis relevant to Mithraism.\n--\npaul@actrix.co.at (Paul Gillingwater)\nHome Office in Vienna, Austria\n** If you read news with rn or trn, ask me about EEP! the .newsrc editor!\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 140, "properties": {"category": "talk.politics.misc", "text": "From: demon@desire.wright.edu (Not a Boomer)\nSubject: Re: Capital Gains tax increase \"loses\" money\nDistribution: na\nOrganization: ACME Products\nLines: 70\n\nIn article <C5J8wI.IGK@panix.com>, eck@panix.com (Mark Eckenwiler) writes:\n> In <1993Apr15.045651.6892@midway.uchicago.edu>, thf2@midway.uchicago.edu sez:\n>>In article <1993Apr14.135227.8579@desire.wright.edu> demon@desire.wright.edu (Not a Boomer) writes:\n>>>\n>>>\tNo, I'm saying any long term investor (the ones likely to have large\n>>>capital gains) would be foolish to sell in order to avoid a tax hike that a)\n>>>might disappear in any given year and b) be overcome in a year or two by\n>>>accumlated gains.\n>>\n>>To which my response is--so what?  Not all people who pay capital gains\n>>taxes are long term investors.  More than enough of them aren't for there\n>>to be huge blip whenever capital gains taxes get raised.\n>>   I never said that *everyone* would find this advantageous.  I said that\n>>more than enough would for the result to be readily noticeable and distort\n>>\"trends\".\n> \n> Even if Brett's eventual-return figures were correct -- and they\n> clearly weren't -- he'd still be wrong about the cause for the '86\n> blip because he fails to consider 2 basic factors:\n\n\tYou misunderstand.  I'm not trying to prove a *cause* for anything. \nMerely pointing out that Ted's assertion that the \"blip\" in revenues was\n\"caused\" by selling to avoid the tax can't be proven.\n\n> 1) As Ted notes, not everyone is a long-term investor.  One might find\n> oneself, as I did in late 1986, anticipating expenses in the near term\n> that require selling off holdings.  Given the choice between waiting a\n> few weeks (and taking an extra tax hit) or selling in December with\n> preferential tax treatment, only a fool would choose the former.\n\n\tNot disputed.\n\n> 2) The fact that Brett can now construct _post hoc_ calculations of\n> what would have been more beneficial to investors is in many respects\n> beside the point.  There was plenty of _Money_-style advice given to\n> unsophisticated investors in late 1986 to \"sell now and save on\n> taxes.\"  In case anyone missed it, there was no shortage of similar\n> advice late last year (in the NYTimes, e.g.), even though that advice\n> was based not on the foregone conclusion of enacted law (as in 1986),\n> but merely on the *assumption* that Clinton would raise tax rates\n> (without capping CG taxes, contrary to the current proposal).\n\n\tIt works for any situation.  If you believe the market is going up,\ndon't sell.\n\n\tIf believe it's not, sell.  But then you'd be selling anyways, wouldn't\nyou?\n\n\tSo where is the evidence that a large number of people suddenly decided\nthat the higher taxes meant they should sell before the year was out?\n\n\tThere isn't any.\n\n\tTed's saying that the increase over the previous year is \"proof\" of\nthat proposition, but I'm saying you can't know that the trend of increasing\ncapital gains revenues wouldn't account for a lot of that increase.\n\t1986 was the height of the housing boom, remember.  People were\n\"trading up\" like mad.\n\n> It's nice to think that investors always behave in their optimal\n> economic interest.  Like assuming weightless ropes and frictionless\n> pulleys, though, this sort of thinking often fails to describe\n> accurately what happens in the real world.\n\n\tIndeed.\n\nBrett\n________________________________________________________________________________\n\t\"There's nothing so passionate as a vested interest disguised as an\nintellectual conviction.\"  Sean O'Casey in _The White Plague_ by Frank Herbert.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 141, "properties": {"category": "rec.sport.baseball", "text": "From: idoy@crux1.cit.cornell.edu (Michael)\nSubject: How to keep score like the officials?\nNntp-Posting-Host: crux1.cit.cornell.edu\nOrganization: Cornell University\nLines: 15\n\nHello All,\n\nI'd like to learn how to keep score when I watch ball\ngames using official scoring methods. Where can I get\nscoresheets and instructions on how to use them?\n\nI appreciate it,\n\nMike\n\n========================== | Hofstadter's Law:  It always takes \nMichael Wilson             | longer than you think, even if you\nidoy@crux1.cit.cornell.edu | take into account Hofstadter's Law.\n========================== |              -- Douglas Hofstadter\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 142, "properties": {"category": "sci.crypt", "text": "From: Tony Lezard <tony@mantis.co.uk>\nSubject: Re: text of White House announcement and Q&As on clipper chip encryp\nDistribution: world\nOrganization: Mantis Consultants, Cambridge. UK.\nLines: 13\n\ngtoal@gtoal.com (Graham Toal) writes:\n\n> Whatever happens though, the effect of this new chip will be to make private\n> crypto stand out like a sore thumb.\n\nONLY IF this chip catches on. Which means alternatives have to be\ndeveloped. Which will only happen if Clipper is discredited.\n\n-- \nTony Lezard IS tony@mantis.co.uk | PGP 2.2 public key available from key\nOR tony%mantis.co.uk@uknet.ac.uk | servers such as pgp-public-keys@demon.co.uk\nOR EVEN      arl10@phx.cam.ac.uk | 172045 / 3C85783F 09BBEA0C B86CF9C6 7A5FA172\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 143, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ebosco@us.oracle.com (Eric Bosco)\nSubject: Re: How do I quickly switch between Windows screen resolutions?\nNntp-Posting-Host: monica.us.oracle.com\nReply-To: ebosco@us.oracle.com\nOrganization: Oracle Corp., Redwood Shores CA\nDistribution: na\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\nLines: 27\n\nIn article <C5qLr8.DJL@cbnewsl.cb.att.com> slg@slgsun.att.com (The  \nIdealistic Cynic) writes:\n>  \n> Can someone out there tell me how to switch Window's screen resolution\n> quickly and easily?  I know that I can go back into install to do it,\n> but what I'd really like is to have is the ability to just change a\n> couple of startup or configuration files and have the resolution\n> changed.  I already have both video drivers that I need on my system,\n> so that isn't a problem.\n>  \n> Thanks,\n>  \n> Sean.\n>  \n> ---\n> Sean L. Gilley\n> sean.l.gilley@att.com  <-- USE THIS ADDRESS, ALL OTHERS BOUNCE!\n> 614 236 5031 (h), 614 860 5743 (w)\n>  \nThere is a shareware program called v-switch.zip. I don't remember if it  \nis on wuarchive.wustl.edu or on ftp.cica.indiana.edu.  \n\nIt is easy to use and does the job with no problem.\n\n-Eric\n\nebosco@us.oracle.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 144, "properties": {"category": "misc.forsale", "text": "From: harrij@rebecca.its.rpi.edu (Jonathan Conrad Harriman)\nSubject: Top of the line JVC portable disc player for sale\nSummary: JVC portable disc player\nKeywords: JVC, jvc, portable cd player, cd, cd player\nNntp-Posting-Host: rebecca.its.rpi.edu\nLines: 29\n\nI have used JVC's top of the line portable cd player for three months now.\nI have mostly used it in my car on long trips, so it has less than 20 hours of use on it.  The unit is one of the best that I have seen and listened to, but\nI am going to part with it to install a disc changer in my car.\n\nFeatures include:\n\t17 Hz - 20,000 Hz\n\trechargeable nicad batteries\n\twireless remote control\n\tAC adaptor\n\theadphones\n\tcarrying belt and case\n\tdigital 6 band graphic eq with spectrum analyzer\n\t\t25 presets, 5 user programmable\n\tRCA connections and cord\n\tJVC compulink capability (cord included)\n\tprogrammable from remote\n\tintro, random, repeat playback\n\nI will include a Discwasher (tm) power converter to convert an automobile's\n12v DC to the 5.5V DC that the unit requires.  I had to buy this one because\nit was the only one that fits, (JVC makes a unique connection that cannot be\nfound at Radio Shack etc).\n\nI paid $235 for the disc player and another $30 for the power converter.\nI will sell the disc player alone for $180, or both items for $190.\n\nSend replies to harrij@rpi.edu or (518)271-7942\n\n-Jon\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 145, "properties": {"category": "rec.sport.baseball", "text": "From: rjh@allegra.att.com (Robert Holt)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nKeywords: Hall of Fame, Winfield, Kingman, Murray, Joe Lundy, :-)\nOrganization: AT&T Bell Laboratories, Murray Hill, NJ\nDistribution: na\nLines: 14\n\nIn article <mssC5K4w5.GqE@netcom.com> mss@netcom.com (Mark Singer) writes:\n>\n>I'm no Kingman fan.  Just thought I'd point out that he's the\n>only player in history to have five three-HR games.  Joe Carter\n>has four.  Eddie Murray three.  McCovey and Gehrig also three.\n>Ruth, Mays, Foxx and Dawson two each.\n\nJohnny Mize had six three-HR games, which is the current record.\n\n-- \n+-----------------------+\n|  Bob Holt             |\n|  rjh@allegra.att.com  |\n+-----------------------+\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 146, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc.arc.nasa.gov (Curt Howland)\nSubject: Re: GOT MY BIKE! (was Wanted: Advice on CB900C Purchase)\nKeywords: CB900C, purchase, advice\nOrganization: NASA Science Internet Project Office\nLines: 7\n\nIn article <1993Apr15.180644.25263@ll.mit.edu>, \njburnside@ll.mit.edu (jamie w burnside) writes:\n\n|> Being a reletively new reader, I am quite impressed with all the usefull\n|> info available on this newsgroup.\n\nIsn't this redundent?\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 147, "properties": {"category": "comp.windows.x", "text": "From: btaylor@mcl.bdm.com (Brent Taylor)\nSubject: XDM & DECnet ?\nOrganization: BDM International, Inc.\nLines: 10\nNNTP-Posting-Host: jupiter.mcl.bdm.com\n\nDoes XDM work with DECnet? I have an Ultrix machine running both TCP/IP\nand DECnet. I have a number of X-terminals hanging off the Ultrix host also\nrunning TCP/IP and DECnet. Presently I am using XDM for the login procedure\non the X-terminals using TCP/IP. Since XDM is basically just an X-windows\nclient, shouldn't I be able to run XDM on the DECnet protocol tower as well?\n\nMy first inclination is that XDM is not your typical X client. It is making\nTCP/IP specific socket calls. In this case the answer would be no; you can\nnot run XDM over DECnet. Is this right or not? Any feedback is appreciated.\nThanks.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 148, "properties": {"category": "talk.politics.guns", "text": "From: cathy@LANCE.ColoState.Edu (Cathy Smith)\nSubject: Reminder -- Denver Rally Tomorrow\nDistribution: usa\nNntp-Posting-Host: blanca.lance.colostate.edu\nOrganization: Colorado State University, Fort Collins, CO  80523\nLines: 23\n\n*****************************************************************\n*                                                               *\n*                        MONSTER RALLY!!                        *\n*          ==  For the Right to Own and Carry Weapons ==        *\n*                                                               *\n*    TOMORROW, Sunday, April 18, 1993, from 1:00 to 3:30 p.m.,  *\n*       the Denver LIBERTARIAN PARTY will sponsor a rally       *\n*              AT THE STATE CAPITOL in support of               *\n*         the individual right to own and carry weapons.        *\n*                                                               *\n* Speakers will include former Colorado deputy attorney general *\n*  DAVID KOPEL, radio host KEN HAMBLIN, DLP Chair DAVID SEGAL,  *\n* pistol instructor LENDA JACKSON, and novelist L. NEIL SMITH.  *\n*                                                               *\n* Your presence and participation are highly welcome.  For more *\n*       information call David Segal at (303) 296-4059.         *\n*                                                               *\n*****************************************************************\n\nCathy Smith\n\nMy opinions are, of course, my own.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 149, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: david@c-cat.UUCP (Dave)\nSubject: Re: how to search for bad memory chips.\nOrganization: Intergalactic Rest Area For Weary Travellers\nLines: 37\n\nrnichols@cbnewsg.cb.att.com (robert.k.nichols) writes:\n\n                steps deleted\n{> ...\n{> \n{> It's an interesting idea, but the worst-case data patterns developed to\n{> test magnetic media are totally different than the patterns used to detect\n{> common faults in memory chips.\n{> \nI was having major memory problems a few monthes ago.\ngetting parity error - system halted error message in windows.\nI ran QA/PLUS, Check It, Diagnose, as well as several shareware\nmemory checkers. I had a total of 8 meg SIMM in my system.\nthese store bought/ shareware memory diagnostics either ran fine\nwithout errors or found an error at some address that I couldn't\nplace on a memory chip. Out of exahperation I came up with\nthe (now deleted) steps to find bad memory chips. I found 2\n(moral : never buy memory stamped \"not for sensitive or critical \napplications\" on the back.\n        anyway I did filter out all the bad memory chips using \ncombinations of 4 of the 8 meg chips and creating a RAM drive to\ntest on. Although it dodn't alleviate my parity error problems\nin windows. I did manage to find bad memory chips in this manner\nIt has NEVER failed to find a bad chip for me. and the commercial/\nshareware have always faild me either not finding the error or\npointing to an addreww which I have no idea on what chip it is.\n\np.s. man my typing stinks today and I don't feel like futzing around with \nthis line editor.\n\n                                                       -David\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\nChina Cat BBS                               c-cat!david@sed.csc.com\n(301)604-5976 1200-14,400 8N1               ...uunet!mimsy!anagld!c-cat!david \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 150, "properties": {"category": "comp.graphics", "text": "From: mac@utkvx.bitnet (Richard J. McDougald)\nSubject: Re: Why does Illustrator AutoTrace so poorly?\nOrganization: University of Tennessee \nLines: 22\n\nIn article <0010580B.vmcbrt@diablo.UUCP> diablo.UUCP!cboesel (Charles Boesel) writes:\n\nYeah, Corel Draw and WordPerfect Presentations pretty limited here, too.\n\tSince there's no (not really) such thing as a decent raster to\nvector conversion program, this \"tracing\" technique is about it.  Simple\nstuff, like b&w logos, etc. do pretty well, while more complicated stuff\ngoes haywire.  I suspect (even though I don't write code) that a good\nbitmapped to vector conversion program would probably be as big as most\nof these application softwares we're using -- but even so, how come one\nhasn't been written? (to my knowledge).  I mean, even Hijaak, one of the\ncommercial industry standards of file conversion, hasn't attempted it yet.\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n Mac McDougald                   *   Any opinions expressed herein \n The Photography Center          *   are not necessarily (actually,\n Univ. of Tenn. Knoxville 37996  *   are almost CERTAINLY NOT) those\n mac@utkvx.utk.edu               *   of The University of Tennessee. \n mac@utkvx.bitnet                *      \n (615-974-3449)                  *   \"Things are more like they are now     \n (615-974-6435) FAX              *    than they've ever been before.\"\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n            \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 151, "properties": {"category": "rec.sport.baseball", "text": "From: r4938585@joplin.biosci.arizona.edu (Doug Roberts)\nSubject: Re: NL vs. AL?\nOrganization: University of Arizona, Biotechnology, Tucson\nLines: 2\nNNTP-Posting-Host: joplin.biosci.arizona.edu\nKeywords: Game length\n\nDoug Roberts - Ken Hill for NL MVP!!\n\t       Let's go 'Spos\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 152, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: The Armenian architect of the genocide of 2.5 million Muslim people.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 55\n\nIn article <1993Apr15.160145.22909@husc3.harvard.edu> verbit@germain.harvard.edu (Mikhail S. Verbitsky) writes:\n\n>My personal problem with Romanian culture is that I am\n>not aware of one. There is an anecdote about Armenians\n\nTroglodytism does not necessarily imply a low cultural level.\nThe image-conscious Armenians sorely feel a missing glory in \ntheir background. Armenians have never achieved statehood and \nindependence, they have always been subservient, and engaged \nin undermining schemes against their rulers. They committed \ngenocide against the Muslim populations of Eastern Anatolia \nand Armenian Dictatorship before and during World War I and \nfully participated in the extermination of the European Jewry \nduring World War II. Belligerence, genocide, back-stabbing, \nrebelliousness and disloyalty have been the hallmarks of the \nArmenian history. To obliterate these episodes the Armenians \nengaged in tailoring history to suit their whims. In this zeal \nthey tried to cover up the cold-blooded genocide of 2.5 million \nTurks and Kurds before and during World War I.\n\nAnd, you don't pull nations out of a hat.\n\n\nSource: Walker, Christopher: \"Armenia: The Survival of a Nation.\"\n        New York (St. Martin's Press), 1980.\n\nThis generally pro-Armenian work contains the following information\nof direct relevance to the Nazi Holocaust: \n\na) Dro (the butcher), the former Dictator of the Armenian Dictatorship and\nthe architect of the Genocide of 2.5 million Turks and Kurds, the most \nrespected of Nazi Armenian leaders, established an Armenian Provisional \nRepublic in Berlin during World War II; \n\nb) this 'provisional government' fully endorsed and espoused the social \ntheories of the Nazis, declared themselves and all Armenians to be members \nof the Aryan 'Super-Race;' \n\nc) they published an Anti-Semitic, racist journal, thereby aligning themselves \nwith the Nazis and their efforts to exterminate the Jews; and, \n\nd) they mobilized an Armenian Army of up to 20,000 members which fought side \nby side with the Wehrmacht.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 153, "properties": {"category": "sci.electronics", "text": "From: lgardi@uwovax.uwo.ca\nSubject: Re: Long distance IR detection\nOrganization: University of Western Ont, London\nNntp-Posting-Host: hydra.uwo.ca\nLines: 31\n\nIn article <1993Apr20.183416.18744@dres.dnd.ca>, sburton@dres.dnd.ca (Stan Burton) writes:\n> \n> --\n> \n> I would like to be able to detect the angular position (low accuracy) of an\n> IR emitting source at a distance of about 100 meters (more is better) in\n> daylight.  The IR source could be emitting a signature; I'm leaning toward\n> 30 KHz square wave with 50% duty cycle.\n> \n> I am considering the use of a quadrant detector from Centronic Inc. to give\n> information to a pan/tilt head to point the sensor and thus determine the\n> angles.  For the source I am considering wazing the heck out of an IR LED(s),\n> possibly an Optek OP290 or Motorola MLED81.  Wazing would mean at least 1 Amp\n> current pulses.  At this current the duty cycle of the LED drops to 10% and I\n> would need to cycle five of them in turn to get the 50% required.\n> \n> Has anyone done something like this?\n>\nWhy don't you just run one LED at 60 KHz and use a flip flop at the receiving\nend to divide by 2 and give you a good square 30KHz signal.\nJust a thought.\nLORI\n \n> Stan Burton (DND/CRAD/DRES/DTD/MSS/AGCG)                 sburton@dres.dnd.ca\n> (403) 544-4737     DRE Suffield, Box 4000, Medicine Hat, AB, Canada, T1A 8K6\n-- \n<<<RED FISHY WINS>>>\nLori Gardi\t\t\t\t(519) 661-2111 ext 8695\nDept. of Astronomy,\t\t\tlgardi@uwovax.uwo.ca\nUniversity of Western Ontario\nLondon, ON, CANADA, N6A 3K7\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.009+0000", "event": "documents", "entityId": 154, "properties": {"category": "misc.forsale", "text": "From: reidg@pacs.pha.pa.us ( Reid Goldsborough)\nSubject: Utilities for sale\nKeywords: software\nDistribution: na\nOrganization: Philadelphia Area Computer Society\nLines: 28\n\nThese utilities all include complete printed manuals and\nregistration cards. I need to get rid of some excess.\nThey're the latest versions. I've priced these programs\nat less than half the list price and significantly less\nthan the cheapest mail-order price around.\n \n* PC TOOLS FOR DOS 8.0, best-selling utilities collections,\nincludes DOS shell, antivirus program, backup program,\ndisk defragger, memory optimizer, remote communications\nlink, data protection and recovery utilities, appointment\nbook, address book, and more, list $179, sale $80.\n \n* NORTON BACKUP FOR DOS 2.2, supports DOS 6, tape backup\nsystems, and LANS, twice as fast as backup in DOS 6, highly\nautomated and customizable, list $149, sale $65.\n \n* QAPLUS 4.7, top-rated DOS based systems diagnostics\nprogram, more comprehensive than anything included in DOS,\nWindows, or utilities collections, invaluable for determining\nsources of problems with RAM, video, drives, ports, keyboard,\nmotherboard, joystick, mouse, speaker, and so on, list $159,\nsale $70.\n \nIf you're interested in any of these programs, please phone me at\n215-885-7446 (Philadelphia), and I'll save the package for you.\n-- \nReid Goldsborough\nreidg@pacs.pha.pa.us\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 155, "properties": {"category": "talk.politics.misc", "text": "From: julie@eddie.jpl.nasa.gov (Julie Kangas)\nSubject: Re: Top Ten Reasons Not to Aid Russians\nNntp-Posting-Host: eddie.jpl.nasa.gov\nOrganization: Jet Propulsion Laboratory, Pasadena, CA\nLines: 73\n\n\nIn article <C513wJ.75y@encore.com> rcollins@ns.encore.com (Roger Collins) writes:\n>julie@eddie.jpl.nasa.gov (Julie Kangas) writes:\n>|> In article <C50FnH.Cvo@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>|> >  [With a tip of the hat to David Letterman for making the Top Ten format \n>|> >   so popular]\n>|> >\n>|> >Top Ten Reasons that Conservatives don't want to aid Russia:\n>|> \n>|> <looking around>  Who?  Where?\n>|> Don't look at me.  I want to send aid to Russia.  Many other\n>|> conservatives do as well.  \n>|> \n>Yes, it was Nixon who was most vocal about giving money to Russia.  It\n>makes me proud to be a libertarian.  It appears both conservatives and\n>liberals prefer to cold war until you win, then nurse the enemy back to\n>health for another go around.\n\nEnemy?  Sounds like that's the viewpoint of the stereotypical rednecked\nconservative -- 'always been commies, always will be.'  I suggest you\nlisten very carefully to the stuff Yeltsin and his people are saying\nand compare that with the very anti-West slogans coming from his\nopponents in the Russian congress.  I sure know who I want to back.\n\nOh, BTW, Germany has sure come back as a terrible enemy after WWII,\nhasn't it?\n>\n>It's like subsidizing the wealthy countries (Japan, Germany, etc.) with\n>free defense, and then trade-warring with them because of the economic\n>competition.  It's like subsidizing tobacco farmers while paying\n>bureaucrats to pursuade people not to smoke.\n\nBetter to let them degenerate into civil war?  Remember all those\nnuclear weapons in Russia.  I cannot imagine that they would not\nbe used in a civil war.  If nationialists take over and, even if\nthey prevent a civil war, most feel they must take back large\nparts of land that are in other countries (like Ukraine.)  I also cannot\nimagine Ukraine giving up land without a fight, possibly nuclear.\n\nHow does this affect us?  Well, we are on the same planet and if\nvast tracks of Europe are blown away I think we'd feel something.\nA massive breakup of a country that spans 1/6th the planet is\nbound to have affects here.  (Of course, there is also the\nhumanitarian argument that democracies should help other\ndemocracies (or struggling democracies).)\n\n>\n>I ask myself, what law could we pass to prevent government from doing\n>stupid, frivilous things with OUR money?  Then I think, the Constitution\n>was supposed to do that.  Could someone please tell me what legitimate\n>constitutional power the federal government is using when it takes money\n>from my paycheck and gives it to needy countries?  Seriously.\n\nSeriously.  Everyone has different opinions on what is stupid.\nMy two \"causes\" are aid to Russia and a strong space program.\nSomeone else will champion welfare or education or doing studies\nof drunken goldfish.  That is why we have a republic and not a\ntrue democracy.  Instead of gridlock on a massive scale, we\nonly have gridlock on a congressional scale.\n\nBTW, who is to decide 'stupid?'  This is just like those who\nwant to impose their 'morals' on others -- just the sort of\nthing I thought Libertarians were against.\n\nActually, my politics are pretty Libertarian except on this one issue \nand this is why it is impossible for me to join the party.  It seems\nthat Libertarians want to withdraw from the rest of the world and\nlet it sink or swim.  We could do that 100 years ago but not now.\nLike it or not we are in the beginnings of a global economy and\nglobal decision making. \n\nJulie\nDISCLAIMER:  All opinions here belong to my cat and no one else\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 156, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@composer.think.com (Shai Guday)\nSubject: Re: was:Go Hezbollah!\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 78\n\t<Apr15.175334.72079@yuma.ACNS.ColoState.EDU>\nNNTP-Posting-Host: composer.think.com\nIn-reply-to: bh437292@longs.LANCE.ColoState.Edu's message of Thu, 15 Apr 1993 17:53:34 GMT\n\nIn article <Apr15.175334.72079@yuma.ACNS.ColoState.EDU> bh437292@longs.LANCE.ColoState.Edu (Basil Hamdan) writes:\n   [snip]\n   In the first place the death of three soldiers on a patrol in occupied\n   Lebanese terrritory is NOT an act of terrorism or murder.  It is \n   disingeneous to compare their death to that of athletes in Munich\n   or any other act of terrorism or mrder.  This exercise is aimed \n   solely at diverting the issue and is far from the truth.\n\nI agree that the death of three soldiers on a patrol etc... is\nnot terrorism.  That having been said, lets continue.\n\n   [snip]\n   imagine ????  It is NOT a \"terrorist camp\" as you and the Israelis like \n   to view the villages they are small communities with kids playing soccer\n   in the streets, women preparing lunch, men playing cards, etc.....\n\nI would not argue that all or even most of the villages are \"terrorist\ncamps\".  There are however some which come very close to serving that\npurpose and that is not to say that other did not function in that way\nprior to the invasion. \n\n   SOME young men, usually aged between 17 to 30 years are members of\n   the Lebanese resistance.  Even the inhabitants of the village do not \n   know who these are, they are secretive about it, but most people often\n   suspect who they are and what they are up to.  These young men are\n   supported financially by Iran most of the time.  They sneak arms and\n   ammunitions into the occupied zone where they set up booby traps\n   for Israeli patrols.  Every time an Israeli soldier is killed or injured\n   by these traps, Israel retalliates by indiscriminately bombing villages\n   of their own choosing often killing only innocent civilians.  Once they\n   are back they announce that they bombed a \"terrorist  hideout\" where\n   an 8 year old girl just happened to be.\n\nSome of the villages, and yours might well be among them, are as you\ndescribe.  Not all are.  There are a large number of groups in the area,\nbacked by various organizations, with a wide range of purposes.  Hizbollah\nand Amal were two of the larger ones and may still be.  As to retaliation,\nwhile mistakes may be made, that is still a far cry from indiscriminate\nbombing, which would have produced major casualties.\n\n   Israel's retalliation policy is cold hearted, but a reality that\n   we have come to accept and deal with, the Lebanese Resistance\n   on the other hand is not going to stop its attacks on OCCUPYING \n   ISRAELI SOLDIERS until they withdraw, this is the only real \n   leverage that they have to force Israel to withdraw.\n\nWell, here we disagree.  I think that Israel would willingly withdraw if\nthe Lebanese gov't was able to field a reliable force in the area to police\nit and prevent further attacks.\n\n   This is the only realistic solution, it is time for Israel to\n   realize that the concept of a \"buffer zone\" aimed at protecting\n   its northern cities has failed.  In fact it has caused much more\n   Israeli deaths than the occasional shelling of Northern Israel\n   would have resulted in.  \n\nActually that is not clear at all.  I will agree that the death toll is no\nlonger civilian and now primarily military though.\n\n   There seems to be very little incentive for the Syrian and Lebanese\n   goovernment to allow Hizbollah to bomb Israel proper under such \n   circumstances, and now the Lebanese government has proven that it is\n   capable of controlling and disarming all militias as they did\n   in all other parts of Lebanon.\n\nNo, the Syrian gov't is more than happy to have Israel sink into another\nLebanese morass.  I could elaborate if necessary.\n\n   I agree, only in the case of the Isareli soldiers their killing\n   CANNOT be qualified as murder, no matter what you say.\n\nNo, but it is regretable, as is the whole situation.\n\n--\nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 157, "properties": {"category": "comp.graphics", "text": "From: egerter@gaul.csd.uwo.ca (Barry Egerter)\nSubject: Re: Graphics Library Package\nOrganization: Computer Science Dept., Univ. of Western Ontario, London, Canada\nNntp-Posting-Host: obelix.gaul.csd.uwo.ca\nLines: 43\n\n\n\tWGT is the WordUp Graphics Toolkit, designed by yours truly and my\nco-programmer (and brother) Chris Egerter. It is a Turbo/Borland C++ graphics\nlibrary for programming in 320*200*256 VGA. We are currently producing it as\nshareware, but in a few years it may be a commercial product (excuse typos,\nthere's no backspace on this terminal). Features include:\n\n- loading and saving bit-images (called blocks from herein)\n- flipping, resizing and warping blocks\n- loading and saving palette, fading, several in memory at once\n- graphics primitives such as line, circle, bar, rectangle\n- region fill (not the usually useless floodfill)\n- sprites (animated bitmaps), up to 200 onscreen at once\n- joystick/mouse support\n- SB support (VOC and CMF)\n- tile-based game creation using 16*16 pixel tiles to create\n  a 320*200 tile map (or game world) like in Duke Nuke 'Em\n- number of sprites increased to 1000\n- Professional Sprite Creator utility and Map Maker\n-  routines to simplify scrolling games using maps, etc\n- FLI playing routines, sprites can be animated over the FLI while playing\n- PCX support, soon GIF\n- EMS/XMS coming soon as well\n\nLeave E-mail to Barry Egerter at    egerter@obelix.gaul.csd.uwo.ca\n\nFiles available on:      (use  mget wgt*.zip)\n\nSIMTEL20 and mirrors                pd1:<msdos.turbo-c>\n\nnic.funet.fi                        pub/msdos/games/programming\n\nSome sites may not have recent files, contact me for info regarding the up-to-\ndate information.\n\n\n\n\n\n\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 158, "properties": {"category": "sci.crypt", "text": "From: sommerfeld@apollo.hp.com (Bill Sommerfeld)\nSubject: A little political philosophy worth reading.\nLines: 66\nNntp-Posting-Host: snarfblatt.ch.apollo.hp.com\nOrganization: Hewlett Packard\n\nRead this through once or twice.  Then replace \"prince\" with\n\"government\" or \"president\", as appropriate, and read it again.  \n\n[From Chapter XX of _The Prince_, by N. Macchiavelli, as translated by\nDaniel Donno.]\n\n\tIn order to keep their lands secure, some princes have\ndisarmed their subjects; others have prompted division within the\ncities they have subjugated.  Some have nurtured animosities against\nthemselves; others have sought to win the approval of those they\ninitially distrusted.  Some have erected fortresses; others have\ndestroyed them.  Now, although it is impossible to set down definite\njudgements on all of these measures without considering the particular\ncircumstances of the states where they may be employed, I shall\nnevertheless discuss them in such broad terms as the subject itself\nwill allow.\n\n\tTo begin with, there has never been a case of a new prince\ndisarming his subjects.  Indeed, whenever he found them disarmed, he\nproceeded to arm them.  For by arming your subjects, you make their\narms your own.  Those among them who are suspicious become loyal,\nwhile those who are already loyal remain so, and from subjects they\nare transformed into partisans.  Though you cannot arm them all,\nnonetheless you increase your safety among those you leave unarmed by\nextending privileges to those you arm.  Your different treatment of\nthe two categories will make the latter feel obligated to you, while\nthe former will consider it proper thoat those who assume added duties\nand dangers should receive advantages.  \n\n\tWhen you disarm your subjects, however, you offend them, by\nshowing that, either from cowardliness or from lack of faith, you\ndistrust them; and either conclusion will induce them to hate you.\nMoreover, since it is impossible for you to remain unarmed, you would\nhave to resort to mercenaries, whose limitations have already been\ndiscussed. Even if such troops were good, however, they could never be\ngood enough to defend you from powerful enemies, and doubtful\nsubjects.  Therefore, as I have said, a new prince in a newly acquired\nstate has always taken measures to arm his subjects, and history is\nfull of examples proving that this is so.\n\n\tBut when a prince takes posession of a new state which he\nannexes as an addition to his original domain, then he must disarm all\nthe subjects of the new state except those who helped him to acquire\nit; and these, as time and occasion permit, he must seek to render\nsoft and weak.  He must arrange matters in such a way that the arms of\nthe entire state will be in the hands of soldiers who are native to\nhis original domain.\n\n\t...\n\n\tAnd since the subject demands it, I will not fail to remind\nany prince who has acquired a new state by the aid of its inhabitants\nthat he soundly consider what induced them to assist him; if the\nreason is not natural affection for him, but rather dissatisfaction\nwith the former government, he will find it extremely difficult to\nkeep them friendly, for it will be impossible to please them.  If he\nwill carefully think the matter through in the light of examples drawn\nfrom ancient and modern affairs, he will understand why it is much\neasier to win the favor of those who were happy with their former\ngovernment, and hence were his enemies, than to keep the favor of\nthose who, out of dissatisfaction with the former rule, helped him to\nreplace it.\n\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 159, "properties": {"category": "alt.atheism", "text": "From: schlegel@cwis.unomaha.edu (Mark Schlegel)\nSubject: Re: Amusing atheists and agnostics\nOrganization: University of Nebraska at Omaha\nLines: 86\n\ntimmbake@mcl.ucsb.edu (Bake Timmons) writes:\n\n>\tAtheism denies the existence of God.  This is logically bankrupt --\n>where is the proof of this nonexistence?  It's a joke.\n\n This is one of my favorite fallacious points against atheism, i.e. the \n belief that you can't deny anything that you can't prove doesn't exist.\n This is easily nailed by showing that an infinite number of beings are\n conceivable but not observed to exist, does this mean that we would have\n to believe in all of them?  According to the above poster, we must believe\n in objects or beings that haven't been proved not to exist so why stop at\n God?   (there could be a huge number of beings identical to Ronald Reagan\n except for trivial differences, say one is missing a finger, one has blond\n hair,... and they all live  on other planets so we can't see them)  The \n reason no one but atheists bring this up is that none of these christians\n have a vested interest in these unknown beings with the exception of God.\n\n>Fine, but why do these people shoot themselves in the foot and mock the idea of\n>a God?  Here again is a classic atheist fallacy.\n\n How did they shoot themselves in the foot?\n\n>\tRadical Muslims, the Crusades, the Inquisition are common examples that\n>atheists like to bring up as marks against religion.  How weak!  Only fools can\n>take that drivel seriously.  How about the grand-daddy of all human atrocities,\n>the Stalinist movement?\n>\tTwenty eight MILLION people _killed_ under this leadership, which\n>proudly featured atheism.\n\n  There is a big difference here, Stalin didn't say that he stood for a \n  particular moral position (i.e. against murder and terrorism, etc.) and\n  then did the opposite (like the religious movements), he was at least\n  an honest killer.  (This is NOT a support of Stalin but an attack on this\n  viewpoint).  Saying that atheism supports murder and violence just because\n  one man was a tyrant and an atheist is just bad logic, look at all the\n  russians that helped Stalin that weren't atheists - don't they contradict\n  your point?  Besides your point assumes that his atheism was relevant\n  to his murdering people, this is just the common assumption that atheists\n  can't value life as much as theists (which you didn't support).  \n\n>\tAgnostics are not as funny because they are more reasonable.  Yet\n>they do in some sense seem funny because they believe that the existence of God\n>is unknowable.  This in itself is every bit the assumption that atheism is,\n>though it's less arrogant and pompous.\n\n Ah, and here's another point you didn't get out of the FAQ.  An atheist\n doesn't have to hold the positive view that god doesn't exist, he/she may\n just have the non-existence of the positive belief.  Here's the example:\n \n Strong atheism - \"I believe god does not exist\"   a positive belief\n\n Weak atheism   - \"I don't believe in a god\"       a negative belief\n \n these are NOT the same, some one that has never thought of the idea of\n god in their whole life is technically an atheist, but not the kind that\n you are calling unreasonable.  Or let's look at it this way (in sets)\n \n suppose that a given person has a huge set of ideas that I will represent\n as capital letters and these people then either believe that these ideas\n exist as real objects or not.  So if S = santa, then E(S)= no is the person\n not believing in santa but still having the idea of santa.  But notice that\n even E(S) = no  is itself another idea!  This means you have lots of cases:\n \n christian :  (A,E(A)=yes,B,E(B)=no,  . . . G,E(G)=yes......) where G = god\n \n atheist (strong) : (A,E(A). . . . .G,E(G)=no)\n \n atheist (weak) : (A,.....E)     i.e. no G at all in the set\n \n agnostic :  (A,.......G, E(G) = indeterminate, E', ....) \n\n\n>\tWhy are people so afraid to say \"undecided\"?  It must just be another\n>feature of human nature -- \"undecided\" is not a sexy, trendy, or glamorous\n>word.  It does not inspire much hate or conflict.  It's not blasphemous.\n>It's not political.  In fact it is too often taken to mean unsophisticated.\n\n Nietzsche once said that a man would rather will nonexistence than not\n  will at all but the darwinist way to put this is that humanity always \n  prefers no or yes to a maybe because indecision is not a useful survival\n  trait, evolution has drilled it in us to take positions, even false ones.\n\n\n>Bake Timmons, III\n\nM.S.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 160, "properties": {"category": "sci.med", "text": "From: walkup@cs.washington.edu (Elizabeth Walkup)\nSubject: Re: Menangitis question\nOrganization: Computer Science & Engineering, U. of Washington, Seattle\nDistribution: na\nLines: 19\n\nIn article <19439@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>... the neiseria meningococcus is one of the most common\n>forms of meningitis.  It's the one that sometimes sweeps\n>schools or boot camp.  It is contagious and kills by attacking\n>the covering of the brain, causing the blood vessels to thrombose\n>and the brain to swell up.\n>\n>\t...\n>\n>It can live in the throat of carriers.  Don't worry, you won't get \n>it from them, especially if they took the medication.\n\nAssuming one has been cultured as having a throat laden with\nneiseria meningococcus and given (and taken) a course of ERYC \nwithout the culture becoming negative, should one worry about\nbeing a carrier?  \n\n-- Elizabeth\n   walkup@cs.washington.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 161, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Re: Gospel Dating\nLines: 73\n\nBenedikt Rosenau writes:\n\n>The argument goes as follows: Q-oid quotes appear in John, but not in\n>the almost codified way they were in Matthew or Luke. However, they are\n>considered to be similar enough to point to knowledge of Q as such, and\n>not an entirely different source.\n\nAssuming you are presenting it accurately, I don't see how this argument\nreally leads to any firm conclusion.  The material in John (I'm not sure\nexactly what is referred to here, but I'll take for granted the similarity\nto the Matt./Luke \"Q\" material) IS different; hence, one could have almost\nany relationship between the two, right up to John getting it straight from\nJesus' mouth.\n\n>We are talking date of texts here, not the age of the authors. The usual\n>explanation for the time order of Mark, Matthew and Luke does not consider\n>their respective ages. It says Matthew has read the text of Mark, and Luke\n>that of Matthew (and probably that of Mark).\n\nThe version of the \"usual theory\" I have heard has Matthew and Luke\nindependently relying on Mark and \"Q\".  One would think that if Luke relied\non Matthew, we wouldn't have the grating inconsistencies in the geneologies,\nfor one thing.\n\n>As it is assumed that John knew the content of Luke's text. The evidence\n>for that is not overwhelming, admittedly.\n\nThis is the part that is particularly new to me.  If it were possible that\nyou could point me to a reference, I'd be grateful.\n\n>>Unfortunately, I haven't got the info at hand.  It was (I think) in the late\n>>'70s or early '80s, and it was possibly as old as CE 200.\n\n>When they are from about 200, why do they shed doubt on the order on\n>putting John after the rest of the three?\n\nBecause it closes up the gap between (supposed) writing and the existing\ncopy quit a bit.  The further away from the original, the more copies can be\nwritten, and therefore survival becomes more probable.\n\n>>And I don't think a \"one step removed\" source is that bad.  If Luke and Mark\n>>and Matthew learned their stories directly from diciples, then I really\n>>cannot believe in the sort of \"big transformation from Jesus to gospel\" that\n>>some people posit.  In news reports, one generally gets no better\n>>information than this.\n\n>>And if John IS a diciple, then there's nothing more to be said.\n\n>That John was a disciple is not generally accepted. The style and language\n>together with the theology are usually used as counterargument.\n\nI'm not really impressed with the \"theology\" argument.  But I'm really\npointing this out as an \"if\".  And as I pointed out earlier, one cannot make\nthese arguments about I Peter; I see no reason not to accept it as an\nauthentic letter.\n\n\n>One step and one generation removed is bad even in our times. Compare that\n>to reports of similar events in our century in almost illiterate societies.\n\nThe best analogy would be reporters talking to the participants, which is\nnot so bad.\n\n>In other words, one does not know what the original of Mark did look like\n>and arguments based on Mark are pretty weak.\n\nBut the statement of divinity is not in that section, and in any case, it's\nagreed that the most important epistles predate Mark.\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 162, "properties": {"category": "rec.autos", "text": "From: sekell@bb1t.monsanto.com\nSubject: Re: Necessity of fuel injector cleaning by dealership\nArticle-I.D.: bb1t.1993Apr6.125537.1\nOrganization: Monsanto Company, St. Louis, MO\nLines: 29\n\nIn article <1993Apr6.131018.12873@acd4.acd.com>, jwg@sedv1.acd.com ( Jim Grey) writes:\n> In article <1993Apr2.174850.6289@cbnewsl.cb.att.com> prm@cbnewsl.cb.att.com (paul.r.mount) writes:\n>>\n>>In your experience, how true is it that a fuel injector cleaning\n>>will do much more good than just using detergent gas.   While I\n> \n> A \"fuel injector cleaning\" at the dealer is probably little more than\n> them opening your gas tank, dumping in a bottle of fuel injector cleaner,\n> and sending you on your merry way $59 poorer.  Go to KMart and buy the\n> cleaner yourself for $1.29.\n\nThis should not be the case if they are at all reputable. Fuel injector \ncleaning is done properly with a can of injector cleaner solvent which is\nhooked up to the fuel system under high pressure. The car is actually run on\nthe solvent during the cleaning process. The equipment to properly do this is\npricey, and generally not something the average home mechanic has. The solvent\nitself is not very expensive ($5-$8) and you could probably make up a hose to\nfit your system and do it yourself, but I didn't tell you that... :-)\n\nNot many in-tank cleaners are worth wasting your money on. There has been a \ndiscussion of these products on here from time to time, and Chevron Techron\n(not Pro-Gard with Techron) is generally regarded as the best. It is, however,\na bit more than $1.29 a bottle. IMHO, it will not substitute for proper\ninjector cleaning if they are really crudded up. You'll have to decide if the\n$59 price is a better deal than spending your time and/or buying equipment to\ndo it.\n  ----------------------------------------------------------------------------\n  Scott Keller\t+1 314 537 6317\t    The Agricultural Group of Monsanto Company \n  sekell@bb1t.monsanto.com  \tKA0WCH\t\tpacket: ka0wch@k0pfx.mo.usa.na\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 163, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Accounts of Anti-Armenian Human Right Violations in Azerbaijan #008 B\nSummary: Part B \nOrganization: S.D.P.A. Center for Regional Studies\nLines: 912\n\n     Accounts of Anti-Armenian Human Right Violations in Azerbaijan #008 Part B\n                 Prelude to Current Events in Nagorno-Karabakh\n\n\t\t\t\t(Part B of #008)\n\n      +------------------------------------------------------------------+\n      |                                                                  |\n      | \"Oh, yes, I just remembered. While they were raping me they      |\n      |  repeated quite frequently, \"Let the Armenian women have babies  |\n      |  for us, Muslim babies, let them bear Azerbaijanis for the       |\n      |  struggle against the Armenians.\" Then they said, \"Those         |\n      |  Muslims can carry on our holy cause. Heroes!\" They repeated     |\n      |  it very often.\"                                                 |\n      |                                                                  |\n      +------------------------------------------------------------------+\n\n...continued from PART A:\n\nThe six of them left. They left and I had an attack. I realized that the dan-\nger was past, and stopped controlling myself. I relaxed for a moment and the \nphysical pain immediately made itself felt. My heart and kidneys hurt. I had \nan awful kidney attack. I rolled back and forth on top of those Christmas\nornaments, howling and howling. I didn't know where I was or how long this \nwent on. When we figured out the time, later it turned out that I howled and \nwas in pain for around an hour. Then all my strength was gone and I burst into\ntears, I started feeling sorry for myself, and so on and so forth . . .\n\nThen someone came into the room. I think I hear someone calling my name. I \nwant to respond and restrain myself, I think that I'm hallucinating. I am \nsilent, and then it continues: it seems that first a man's voice is calling\nme, then a woman's. Later I found out that Mamma had sent our neighbor, the\none whose apartment she was hiding in, Uncle Sabir Kasumov, to our place, \ntelling him, \"I know that they've killed Lyuda. Go there and at least bring \nher corpse to me so they don't violate her corpse.\" He went and returned empty\nhanded, but Mamma thought he just didn't want to carry the corpse into his \napartment. She sent him another time, and then sent his wife, and they were \nwalking through the rooms looking for me, but I didn't answer their calls. \nThere was no light, they had smashed the chandeliers and lamps.\n\nThey started the pogrom in our apartment around five o'clock, and at 9:30 I \nwent down to the Kasumovs'. I went down the stairs myself. I walked out of the\napartment: how long can you wait for your own death, how long can you be \ncowardly, afraid? Come what will. I walked out and started knocking on the \ndoors one after the next. No one, not on the fifth floor, not on the fourth, \nopened the door. On the third floor, on the landing of the stairway, Uncle \nSabir's son started to shout, \"Aunt Roza, don't cry, Lyuda's alive!\" He \nknocked on his own door and out came Aunt Tanya, Igor, and after them, Mamma. \nAunt Tanya, Uncle Sabir's wife, is an Urdmurt. All of us were in their \napartment. I didn't see Karina, but she was in their home, too, Lying\ndelirious, she had a fever. Marina was there too, and my father and mother.\nAll of my family had gathered there.\n   \nAt the door I lost consciousness. Igor and Aunt Tanya carried me into the\napartment.\n\nLater I found out what they had done to our Karina. Mamma said, \"Lyuda, \nKarina's in really serious condition, she's probably dying. If she recognizes \nyou, don't cry, don't tell her that her face looks so awful.\" It was as though\nher whole face was paralyzed, you know, everything was pushed over to one \nside, her eye was all swollen, and everything flowed together, her lips, her \ncheeks . . . It was as though they had dragged her right side around the whole\nmicrodistrict, that's how disfigured her face was. I said, \"Fine.\" Mamma was \nafraid to go into the room, because she went in and hugged Karina and started \nto cry. I went in. As soon as I saw her my legs gave way. I fell down near the\nbed, hugged her legs and started kissing them and crying. She opened the eye \nthat was intact, looked at me, and said, \"Who is it?\" But I could barely talk, \nmy whole face was so badly beaten. I didn't say, but rather muttered something\ntender, something incomprehensible, but tender, \"My Karochka, my Karina, my \nlittle golden one . . . \" She understood me.\n\nThen Igor brought me some water, I drank it down and moistened Karina's lips. \nShe started to groan. She was saying something to me, but I couldn't \nunderstand it. Then I made out, \"It hurts, I hurt all over.\" Her hair was \nglued down with blood. I stroked her forehead, her head, she had grit on her \nforehead, and on her lips . . . She was groaning again, and I don't know how \nto help her. She calls me over with her hand, come closer. I go to her. She's\nsaying something to me, but I can't understand her. Igor brings her a pencil \nand paper and says, \"Write it down.\" She shakes her head as if to say, no, I \ncan't write. I can't understand what she's saying. She wanted to tell me \nsomething, but she couldn't. I say, \"Karina, just lie there a little while,\nthen maybe you'll feel better and you can tell me then.\" And then she says,\n\"Maybe it'll be too late.\" And I completely . . . just broke down, I couldn't\ncontrol myself.\n\nThen I moistened my hand in the water and wiped her forehead and eye. I dipped\na handkerchief into the water and squeezed a little water onto her lips. She \nsays, \"Lyuda, we're not saved yet, we have to go somewhere else. Out of this \ndamned house. They want to kill us, I know. They'll find us here, too. We need\nto call Urshan.\" She repeated this to me for almost a whole hour, Until I \nunderstood her every word. I ask, \"What's his number?\" Urshan Feyruzovich, \nthat's the head of the administration where she works. \"We have to call him.\" \nBut I didn't know his home number. I say, \"Karina, what's his number?\" She \nsays, \"I can't remember.\" I say, \"Who knows his number? Who can I call?\" She \nsays, \"I don't know anything, leave me alone.\"\n\nI went out of the room. Igor stayed to watch over her and sat there, he was \ncrying, too. I say, \"Mamma, Karina says that we have to call Urshan. How can \nwe call him? Who knows his telephone number?\" I tell Marina, \"Think, think, \nwho can we call to find out?\" She started calling; several people didn't \nanswer. She called a girlfriend, her girlfriend called another girlfriend and \nfound out the number and called us back. The boss's wife answered and said he \nwas at the dacha. My voice keeps cracking, I can't talk normally. She says, \n\"Lyuda, don't panic, get a hold of yourself, go out to those hooligans and \ntell them that they just can't do that.\" She still didn't know what was really\ngoing on. I said, \"It's easy for you to say that, you don't understand what's \nhappening. They are killing people here. I don't think there is a single \nArmenian left in the building, they've cut them all up. I'm even surprised \nthat we managed to save ourselves. \"She says, \"Well, OK, if it's that serious \n. . . \" And all the same she's thinking that my emotions are all churned up \nand that I'm fearing for my life, that in fact it's not all that bad. \"OK, \nfine, fine,\" she says, \"if you're afraid, OK, as soon as Urshan comes back \nI'll send him over.\"\n\nWe called again because they had just started robbing the apartment directly \nunder Aunt Tanya's, on the second floor, Asya Dallakian's apartment. She \nwasn't home, she was staying with her daughter in Karabagh. They destroyed \neverything there . . . We realized that they still might come back. We kept on\ntrying to get through to Aunt Tanya--Urshan's wife is named Tanya too and \nfinally we get through. She says, \"Yes, he's come home, he's leaving for your \nplace now.\" He came. Of course he didn't know what was happening, either, \nbecause he brought two of his daughters with him. He came over in his jeep \nwith his two daughters, like he was going on an outing. He came and saw what \nshape we were in and what was going on in town and got frightened. He has \ngrown up daughters, they're almost my age.\n\nThe three of us carried out Karina, tossed a coat on her and a warm scarf, and\nwent down to his car. He took Karina and me to the Maternity Home. . . No, \nfirst they took us to the po]ice precinct. They had stretchers ready. As\nsoon as we got out of the car they put Karina and me on stretchers and said\nthat we were in serious condition and that we mustn't move, we might have\nfractures. From the stretcher I saw about 30 soldiers sitting and lying on the\nfirst floor, bandaged, on the concrete floor, groaning . . . This was around\neleven o'clock at night. We had left the house somewhere around 1:30. When I \nsaw those soldiers I realized that a war was going on: soldiers, enemies\n. . . everything just like a war.\n\nThey carried me into some office on the stretcher. The emergency medical\npeople from Baku were there. The medical attendant there was an older \nArmenian. Urshan told him what they had done to Karina because she's so proud \nshe would never have told. And this aging Armenian . . . his name was Uncle \nArkady, I think, because someone said \"Arkady, get an injection ready,\" he \nstarted to fill a syringe, and turned around so as to give Karina a shot. But \nwhen he looked at her face he became ill. And he was an old man, in his \nsixties, his hair was all grey, and his moustache, too. He hugged Karina and \nstarted to cry: \"What have they done to you?!\" He was speaking Armenian. \"What\nhave they done to you?!\" Karina didn't say anything. Mamma came in then, and \nshe started to cry, too. The man tried to calm her. \"I'll give you a shot.\" \nMamma tells him, \"I don't need any shot. Where is the government? Just what \nare they doing? Look what they've done to my children! They're killing people,\nand you're just sitting here!\" Some teacups were standing on the table in \nthere. \"You're sitting here drinking tea! Look what they've done to my \ndaughters! Look what they've turned them into!\" They gave her something to \ndrink, some heart medicine, I think. They gave Karina an injection and the\ndoctor said that she had to be taken to the Maternity Home immediately. Papa \nand Urshan, I think, even though Papa was in bad shape, helped carry Karina \nout. When they put her on the stretcher, none of the medics got near her. I \ndon't know, maybe there weren't any orderlies. Then they came to me: \"What's \nthe matter with you?\" Their tone was so official that I wrapped myself tighter\nin the half-length coat. I had a blanket on, too, an orange one, Aunt Tanya's.\nI said, \"I'm fine.\" Uncle Arkady came over and was soothing me, and then told \nthe doctor, \"You leave, let a woman examine her.\" A woman came, an \nAzerbaijani, I believe, and said, \"What's wrong with you?\" I was wearing my \nsister Lyuda's nightshirt, the sister who at this time was in Yerevan. When \nshe was nursing her infant she had cut out a big hole in it so that it would \nbe easier to breast feed the baby. I tore the night shirt some more and showed\nher. I took it off my shoulders and turned my back to her. There was a huge \nwound, about the size of a hand, on my back, from the Indian vase. She said \nsomething to them and they gave me two shots. She said that it should be \ndressed with something, but that they'd do that in the hospital.\n\nThey put me on a stretcher, too. They started looking for people to carry me. \nI raised up my head a little and wanted to sit up, and this woman, I don't \nknow if she was a doctor or a nurse, said, \"Lie still, you mustn't move.\" When\nI was lying back down I saw two policemen leading a man. His profile seemed \nvery familiar to me. I shouted, \"Stop!\" One of the policemen turned and says, \n\"What do you want?\" I say, \"Bring him to me, I want to look at him.\" They \nbrought him over and I said, \"That person was just in our apartment and he \njust raped me and my sister. I recognize him, note it down.\" They said, \n\"Fine,\" but didn't write it down and led him on. I don't know where they were \ntaking him.\n\nThen they put my stretcher near where the injured and beaten soldiers were \nsitting. They went to look for the ambulance driver so he would bring the car \nup closer. One of the soldiers started talking to me, \"Sister . . . \" I don't \nremember the conversation exactly, but he asked me were we lived and what they\ndid to us. I asked him, \"Where are you from?\" He said that he was from Ufa. \nApparently they were the first that were brought in. The Ufa police. Later I \nlearned that they suffered most of all. He says, \"OK, you're Armenians, they \ndidn't get along with you, but I'm a Russian,\" he says, \"what are they trying \nto kill me for?\" Oh, I remembered something else. When I went out onto the \nbalcony with Kuliyev for a hammer and nails I looked out the window and saw \ntwo Azerbaijanis beating a soldier near the kindergarten. He was pressed \nagainst the fence and he covered his head with his arms, they were beating him\nwith his own club. The way he cried \"Mamma\" made my skin crawl. I don't know \nwhat they did to him, if he's still alive or not. And something else. Before \nhe attack on our house we saw sheets, clothes, and some dishes flying from the\nthird or fourth floor of the neighboring building, but I didn't think it was \nAzerbaijanis attacking Armenians. I thought that something was on fire or they\nwere throwing something they didn't need out, or someone was fighting with \nsomeone. It was only later, when they were burning a passenger car in the \nyard, when the neighbors said that they were doing that to the Armenians, that\nI realized that this was serious, that it was anti-Armenian.\n\nThey took Karina and me to the Sumgait Maternity Home. Mamma went to them too \nand said, \"I've been beaten too, help me.\" But they just ignored her. My \nfather went to them and said in a guilty voice, as though it was his fault \nthat he'd been beaten, and says, \"My ribs hurt so much, those creeps have \nprobably broken my ribs. Please look at them.\" The doctor says, \"That's not my\njob.\" Urshan said, \"Fine, I'll take you to my place and if we need a doctor, \nI'll find you one. I'll bring one and have him look at you. And he drove them \nto his apartment.\n\nMarina and I stayed there. They examined us. I was more struck by what the \ndoctor said than by what those Azerbaijanis in our apartment did to us. I \nwasn't surprised when they beat us they wanted to beat us, but I was very\nsurprised that in a Soviet medical facility a woman who had taken the\nHippocratic Oath could talk to victims like that. By happy--or unhappy--\ncoincidence we were seen by the doctor that had delivered our Karina. And she,\nhaving examined Karina, said, \"No problem, you got off pretty good. Not like \nthey did in Kafan, when you Armenians were killing and raping our women.\n\"Karina was in such terrible condition that she couldn't say anything--she\nwould certainly have had something to say! Then they examined me. The same \nstory. They put us in a separate ward. No shots, no medicinal powders, no \ndrugs. Absolutely none! They didn't even give us tea. All the women there soon\nfound out that in ward such and such were Armenians who had been raped. And\nthey started coming and peering through the keyhole, the way people look at \nzoo animals. Karina didn't see this, she was lying there, and I kept her from \nseeing it.\n\nThey put Ira B. in our ward. She had also been raped. True, she didn't have \nany serious bodily injuries, but when she told me what had happened at their \nplace, I felt worse for them than I did for us. Because when they raped Ira \nher daughter was in the room, she was under the bed on which it happened. And\nIra was holding her daughter's hand, the one who was hiding under the bed.\nWhen they were beating Ira or taking her earrings off, gold, when she \ninvoluntarily let go of her daughter's hand, her daughter took her hand again.\nHer daughter is in the fourth grade, she's 11 years old. I felt really awful \nwhen I heard that. Ira asked them not to harm her daughter, she said, \"Do what\nyou want with me, just leave my daughter alone.\" Well, they did what they \nwanted. They threatened to kill her daughter if she got in their way. Now I \nwould be surprised if the criminals had behaved any other way that night. It \nwas simply Bartholomew's Night, I say, they did what they would love to do \nevery day: steal, kill, rape . . .\n\nMany are surprised that those animals didn't harm the children. The beasts \nexplained it like this: this would be repeated in 15 to 20 years, and those \nchildren would be grown, and then, as they put it, \"we'll come take the \npleasure out of their lives, those children.\" This was about the girls that\nwould be young women in 15 years. They were thinking about their tomorrow \nbecause they were sure that there would be no trial and no investigation, just\nas there was no trial or investigation in 1915, and that those girls could be \nof some use in 15 years. This I heard from the investigators; one of the \nvictims testified to it. That's how they described their own natures, that\nthey would still be bloodthirsty in 15 to 20 years, and in 100 years--they\nthemselves said that.\n\nAnd this, too. Everyone is surprised that they didn't harm our Marina. Many \npeople say that they either were drunk or had smoked too much. I don't know \nwhy their eyes were red. Maybe because they hadn't slept the night before, \nmaybe for some other reason, I don't know. But they hadn't been smoking and \nthey weren't drunk, I'm positive, because someone who has smoked will stop at \nnothing he has the urge to do. And they spoke in a cultured fashion with \nMarina: \"Little sister, don't be afraid, we won't harm you, don't look over \nthere [where I was], you might be frightened. You're a Muslim, a Muslim woman \nshouldn't see such things.\" So they were really quite sober . . .\n\nSo we came out of that story alive. Each every day we have lived since it all \nhappened bears the mark of that day. It wasn't even a day, of those several \nhours. Father still can't look us in the eyes. He still feels guilty for what\nhappened to Karina, Mother, and me. Because of his nerves he's started talk-\ning to himself, I've heard him argue with himself several times when he\nthought no one is listening: \"Listen,\" he'll say, \"what could I do? What could\nI do alone, how could I protect them?\" I don't know where to find the words,\nit's not that I'm happy, but I am glad that he didn't see it all happen. \nThat's the only thing they spared us . . . or maybe it happened by chance. Of \ncourse he knows it all, but there's no way you could imagine every last detail\nof what happened. And there were so many conversations: Karina and I spoke\ntogether in private, and we talked with Mamma, too. But Father was never\npresent at those conversations. We spare him that, if you can say that. And\nwhen the investigator comes to the house, we don't speak with Father present.\n\nOn February 29, the next clay, Karina and I were discharged from the hospital.\nFirst they released me, but since martial law had been declared in the city, \nthe soldiers took me to the police precinct in an armored personnel carrier. \nThere were many people there, Armenian victims. I met the Tovmasian family \nthere. From them I learned that Rafik and their Uncle Grant had died. They \nwere sure that both had died. They were talking to me and Raya, Rafik's wife \nand Grant's daughter, and her mother, were both crying.\n\nThen they took us all out of the office on the first floor into the yard.\nThere's a little one-room house outside there, a recreation and reading area.\nThey took us in there. The women were afraid to go because they thought\nthat they were shooing us out of the police precinct because it had become\nso dangerous that even the people working at the precinct wanted to hide.\nThe women were shouting. They explained to them: \"We want to hide you\nbetter because it's possible there will be an attack on the police precinct.\"\n\nWe went into the little house. There were no chairs or tables in there. We\nhad children with us and they were hungry; we even had infants who needed to \nhave their diapers changed. No one had anything with them. It was just awful. \nThey kept us there for 24 hours. From the window of the one room house you \ncould see that there were Azerbaijanis standing on the fences around the \npolice precinct, as though they were spying on us. The police precinct is \nsurrounded by a wall, like a fence, and it's electrified, but if they were \nstanding on the wall, it means the electricity was shut off. This brought \ngreat psychological pressure to bear on us, particularly on those who hadn't \njust walked out of their apartments, but who hadn't slept for 24 hours, or 48,\nor those who had suffered physically and spiritually, the ones who had lost \nfamily members. For us it was another ordeal. We were especially frightened \nwhen all the precinct employees suddenly disappeared. We couldn't see a single\nperson, not in the courtyard and not in the windows. We thought that they must\nhave already been hiding under the building, that they must have some secret \nroom down there. People were panicking: they started throwing themselves at\none another . . . That's the way it is on a sinking ship. We heard those \npeople, mainly young people, whistling and whopping on the walls. We felt that\nthe end was approaching. I was completely terrified: I had left Karina in the \nhospital and didn't know where my parents were. I was sort of calm about my \nparents, I was thinking only about Karina, if, Heaven forbid, they should \nattack the hospital, they would immediately tell them that there was an \nArmenian in there, and something terrible would happen to Karina again, and \nshe wouldn't be able to take it.\n\nThen soldiers with dogs appeared. When they saw the dogs some of the people \nclimbed down off the fence. Then they brought in about another 30 soldiers.\nThey all had machine guns in readiness, their fingers on the triggers. We \ncalmed down a little. They brought us chairs and brought the children some \nlittle cots and showed us where we could wash our hands, and took the children\nto the toilet. But we all sat there hungry, but to be honest, it would never \nhave occurred to any of us that we hadn't eaten for two days and that people \ndo eat.\n\nThen, closer to nightfall, they brought a group of detained criminals. They \nwere being watched by soldiers with guard dogs. One of the men came back from \nthe courtyard and told us about it. Raya Tovmasian . . . it was like a \ndifferent woman had been substituted. Earlier she had been crying, wailing, \nand calling out: \"Oh, Rafik!,\" but when she heard about this such a rage came \nover her! She jumped up, she had a coat on, and she started to roll up her \nsleeves like she was getting ready to beat someone. And suddenly there were \nsoldiers, and dogs, and lots of people. She ran over to them. The bandits were\nstanding there with their hands above their heads facing the wall. She went up\nto one of them and grabbed him by the collar and started to shake and thrash \nhim! Then, on to a second, and a third. Everyone was rooted to the spot. Not \none of the soldiers moved, no one went up to help or made her stop her from \ndoing it. And the bandits fell down and covered their heads with their hands, \nmuttering something. She came back and sat down, and something akin to a smile\nappeared on her face. She became so quiet: no tears, no cries. Then that round\nwas over and she went back to beat them again. She was walking and cursing \nterribly: take that, and that, they killed my husband, the bastards, the \ncreeps, and so on. Then she came back again and sat down. She probably did \nthis the whole night through, well, it wasn't really night, no one slept. She \nwent five or six times and beat them and returned. And she told the women, \n\"What are you sitting there for? They killed your husbands and children, they \nraped, and you're just sitting there. You're sitting and talking as though \nnothing had happened. Aren't you Armenians?\" She appealed to everyone, but no \none got up. I was just numb, I didn't have the strength to beat anyone, I \ncould barely hold myself up, all the more so since I had been standing for so \nmany hours--I was released at eleven o'clock in the morning and it was already\nafter ten at night because there weren't enough chairs, really it was the \nelderly and women with children who sat. I was on my feet the whole time. \nThere was nothing to breathe, the door was closed, and the men were smoking. \nThe situation was deplorable.\n\nAt eleven o'clock at night policemen came for us, local policemen, \nAzerbaijanis. They said, \"Get up. They've brought mattresses, you can wash up\nand put the children to bed.\" Now the women didn't want to leave this place, \neither. The place had become like home, it was safe, there were soldiers with \ndogs. If anyone went outside, the soldiers would say, \"Oh, it's our little \nfamily,\" and things like that. The soldiers felt this love, and probably, for \nthe first time in their lives perceived themselves as defenders. Everyone\nspoke from the heart, cried, and hugged them and they, with their loaded\nmachine guns in their hands, said, \"Grandmother, you mustn't approach me,\nI'm on guard.\" Our people would say, \"Oh, that's all right.\" They hugged\nthem, one woman even kissed one of the machine guns. This was all terribly\nmoving for me. And the small children kept wanting to pet the dogs.\n\nThey took us up to the second floor and said, \"You can undress and sleep in \nhere. Don't be afraid, the precinct is on guard, and it's quiet in the city.\"\nThis was the 29th, when the killing was going on in block 41A and in other\nplaces. Then we were told that all the Armenians were being gathered at the\nSK club and at the City Party Committee. They took us there. On the way I \nasked them to stop at the Maternity Home: I wanted to take Karina with me.\nI didn't know what was happening there. They told me, \"Don't worry, the\nMaternity Home is full of soldiers, more than mothers-to-be. So you can rest\nassured. I say, \"Well, I won't rest assured regardless, because the staff in\nthere is capable of anything.\"\n\nWhen I arrived at the City Party Committee it turned out that Karina had\nalready been brought there. They had seen fit to release her from the hospi-\ntal, deciding that she felt fine and was no longer in need of any care. Once\nwe were in the City Party Committee we gave free reign to our tears. We met \nacquaintances, but everyone was somehow divided into two groups, those who \nhadn't been injured, who were clothed, who had brought a pot of food with \nthem, and so on, and those, like me, like Raya, who were wearing whatever had \ncome their way. There were even people who were all made up, dolled up like \nthey had come from a wedding. There were people without shoes, naked people, \nhungry people, those who were crying, and those who had lost someone. And of \ncourse the stories and the talk were flying: \"Oh, I heard that they killed \nhim!\" \"What do you mean they killed him!\" \"He stayed at work!\" \"Do you know \nwhat's happening at this and such a plant? Talk like that.\n\nAnd then I met Aleksandr Mikhailovich Gukasian, the teacher. I know him very \nwell and respect him highly. I've known him for a long time. They had a small \nroom, well really it was more like a study-room. We spent a whole night \ntalking in that study once. On March 1 we heard that Bagirov [First Secretary \nof the Communist Party of Azerbaijan SSR] had arrived. Everyone ran to see \nBagirov, what news he had brought with him and how this was all being viewed \nfrom outside. He arrived and everyone went up to him to talk to him and ask \nhim things. Everyone was in a tremendous rage. But he was protected by \nsoldiers, and he went up to the second floor and didn't deign to speak with \nthe people. Apparently he had more important things to do.\n\nSeveral hours passed. Gukasian called me and says, \"Lyudochka, find another \ntwo or three. We're going to make up lists, they asked for them upstairs, \nlists of the dead, those whose whereabouts are unknown, and lists of people \nwho had pogroms of their apartments and of those whose cars were burned.\" I \nhad about 50 people in my list when they called me and said, \"Lyuda, your \nMamma has arrived, she's looking for you, she doesn't believe that you are \nalive and well and that you're here.\" I gave the lists to someone and asked \nthem to continue what I was doing and went off.\n\nThe list was imprecise, of course. It included Grant Adamian, Raya Tovmasian's\nfather, who was alive, but at the time they thought him dead. There was Engels\nGrigorian's father and aunt, Cherkez and Maria. The list also included the \nname of my girlfriend and neighbor, Zhanna Agabekian. One of the guys said \nthat he had been told that they chopped her head off in the courtyard in front\nof the Kosmos movie theater. We put her on the list too, and cried, but later \nit turned out that that was just a rumor, that in fact an hour earlier she had\nsomehow left Sumgait for the marina and from there had set sail for \nKrasnovodsk, where, thank God, she was alive and well. I should also say that \nin addition to those who died that list contained people who were rumored \nmissing or who were so badly wounded that they were given up for dead.                                                                 3\n\nAll the lists were taken to Bagirov. I don't remember how many dead were \ncontained in the list, but it's a fact that when Gukasian came in a couple \nof minutes later he was cursing and was terribly irate. I asked, \"What's \ngoing on?\" He said, \"Lyuda, can you imagine what animals, what scoundrels\nthey are! They say that they lost the list of the dead. Piotr Demichev\n[Member of the Politburo of the Central Committee of the Communist Party\nof the USSR] has just arrived, and we were supposed to submit the list to\nhim, so that he'd see the scope of the slaughter, of the tragedy, whether it\nwas one or fifty.\" They told him that the list had disappeared and they\nshould ask everyone who hadn't left for the Khimik boarding house all over\nagain. There were 26 people on our second list. I think that the number 26\nwas the one that got into the press and onto television and the radio, because\nthat's the list that Demichev got. I remember exactly that there were 26 \npeople on the list, I had even told Aleksandr Mikhailovich that that was only \na half of those that were on the first list. He said, \"Lyuda, please, try to\nremember at least one more.\" But I couldn't remember anyone else. But there\nwere more than 30 dead. Of that I am certain. The government and the Procuracy\ndon't count the people who died of fright, like sick people and old people \nwhose lives are threatened by any shock. They weren't registered as victims of\nthe Sumgait tragedy. And then there may be people we didn't know. So many \npeople left Sumgait between March 1 and 8! Most of them left for smaller towns\nin Russia, and especially to the Northern Caucasus, to Stavropol, and the \nKrasnodarsk Territory. We don't have any information on them. I know that \nthere are people who set out for parts around Moscow. In the periodical \nKrestyanka [Woman Farmer] there was a call for people who know how to milk \ncows, and for mechanics, and drivers, and I know a whole group of people went \nto help out. Also clearly not on our list are those people who died entering\nthe city, who were burned in their cars. No one knows about them, except the \nAzerbaijanis, who are hardly likely to say anything about it. And there's\nmore. A great many of the people who were raped were not included in the list \ndrawn up at the Procuracy. I know of three instances for sure, and I of course\ndon't know them all. I'm thinking of three women whose parents chose not to \npublicize what had happened, that is, they didn't take the matter to court, \nthey simply left. But in so doing they didn't cease being victims. One of them\nis the first cousin of my classmate Kocharian. She lived in Microdistrict No. \n8, on the fifth floor. I can't tell you the building number and I don't know \nher name. Then comes the neighbor of one of my relatives, she lived in \nMicrodistrict 1 near the gift shop. I don't know her name, she lives on the \nsame landing as the Sumgait procurator. They beat her father, he was holding \nthe door while his daughter hid, but he couldn't hold the door forever, and \nwhen she climbed over the balcony to the neighbors' they seized her by her \nbraid. Like the Azerbaijanis were saying, it was a very cultured mob, because \nthey didn't kill anyone, they only raped them and left. And the third one \n. . . I don't remember who the third one was anymore.\n\nThey transferred us on March 1. Karina still wasn't herself. Yes, we lived for\ndays in the SK, in the cultural facility, and at the Khimik. They lived there \nand I lived at the City Party Committee because I couldn't stay with Karina; \nit was too difficult for me, but I was at peace: she had survived. I could \nalready walk, but really it was honest words that held me up. Thanks to the \nsocial work I did there, I managed to persevere. Aleksandr Mikhailovich said, \n\"If it weren't for the work I would go insane.\" He and I put ourselves in gear\nand took everything upon ourselves: someone had an infant and needed diapers \nand free food, and we went to get them. The first days we bought everything, \nalthough we should have received it for free. They were supposed to have been \ndispensed free of charge, and they sold it to us. Then, when we found out it \nwas free, we went to Krayev. At the time, fortunately, you could still drop by\nto see him like a neighbor, all the more so since everything was still clearly\nvisible on our faces. Krayev sent a captain down and he resolved the issue.\n\nOn March 2 they sent two investigators to see us: Andrei Shirokov and Vladimir\nFedorovich Bibishev. The way it worked out, in our family they had considered \nonly Karina and me victims, maybe because she and I wound up in the hospital.\nMother and Father are considered witnesses, but not victims.\n\nShirokov was involved with Karina's case, and Bibishev, with mine. After I \ntold him everything, he and I planned to sit down with the identikit and\nrecord everyone I could remember while everything was still fresh in my mind. \nWe didn't work with the identikit until the very last day because the\nconditions weren't there. The investigative group worked slowly and did poor \nquality work solely because the situation wasn't conducive to working: there \nweren't enough automobiles, especially during the time when there was a \ncurfew, and there were no typewriters for typing transcripts, and no still or \nvideo cameras. I think that this was done on purpose. We're not so poor that \nwe can't supply our investigators with all that stuff. It was done especially \nto draw out the investigation, all the more so since the local authorities saw\nthat the Armenians were leaving at the speed of light, never to return to \nSumgait. And the Armenians had a lot to say I came to an agreement with \nBibishev, I told him myself, \"Don't you worry, if it takes us a month or two \nmonths, I'll be here. I'm not afraid, I looked death in the eyes five times in\nthose two days, I'll help you conduct the investigation.\"\n\nHe and I worked together a great deal, and I used this to shelter Karina, I\ngave them so much to do that for a while they didn't have the time to get to\nher, so that she would at least have a week or two to get back to being her-\nself. She was having difficulty breathing so we looked for a doctor to take x-\nrays. She couldn't eat or drink for nine days, she was nauseous. I didn't eat\nand drank virtually nothing for five days. Then, on the fifth day, when we\nwere in Baku already, the investigator told me, \"How long can you go on like \nthis? Well fine, so you don't want to eat, you don't love yourself, you're\nnot taking care of yourself, but you gave your word that you would see this\ninvestigation through. We need you.\" Then I started eating, because in fact I\nwas exhausted. It wasn't enough that I kept seeing those faces in our apart-\nment in my mind, every day I went to the investigative solitary confinement\ncells and prisons. I don't know . . . we were just everywhere! Probably in\nevery prison in the city of Baku and in all the solitary confinement cells of\nSumgait. At that time they had even turned the drunk tank into solitary \nconfinement.\n\nThus far I have identified 31 of the people who were in our apartment. Mamma \nidentified three, and Karina, two. The total is 36. Marina didn't identify \nanyone, she remembers the faces of two or three, But they weren't among the \nphotographs of those detained. I told of the neighbor I recognized. The one \nwho went after the axe. He still hasn't been detained, he's still on the \nloose. He's gone, and it's not clear if he will be found or not. I don't know \nhis first or last name. I know which building he lived in and I know his \nsisters' faces. But he's not in the city. The investigators informed me that \neven if the investigation is closed and even if the trial is over they will \ncontinue looking for him.\n\nThe 31 people I identified are largely blue-collar workers from various \nplants, without education, and of the very lowest level in every respect.\nMostly their ages range from 20 to 30 years; there was one who was 48. Only\none of them was a student. He was attending the Azerbaijan Petroleum and\nChemical Institute in Sumgait, his mother kept trying to bribe the investiga-\ntor. Once, thinking that I was an employee and not a victim, she said in front\nof me \"I'll set you up a restaurant worth 500 rubles and give you 600 in cash\nsimply for keeping him out of Armenia,\" that is, to keep him from landing in\na prison on Armenian soil. They're all terribly afraid of that, because if the\ninvestigator is talking with a criminal and the criminal doesn't confess even\nthough we identified him, they tell him--in order to apply psychological\npressure--they say, \"Fine, don't confess, just keep silent. When you're in an\nArmenian prison, when they find out who you are, they'll take care of you\nin short order.\" That somehow gets to them. Many give in and start to talk.\n\nThe investigators and I were in our apartment and videotaped the entire\npogrom of our apartment, as an investigative experiment. It was only then\nthat I saw the way they had left our apartment. Even without knowing who was \nin our apartment, you could guess. They stole, for example, all the money and \nall the valuables, but didn't take a single book. They tore them up, burned \nthem, poured water on them, and hacked them with axes. Only the Materials\nfrom the 27th Congress of the Communist Party of the Soviet Union and James \nFenimore Cooper's Last of the Mohigans. Oh yes, lunch was ready, we were \nboiling a chicken, and there were lemons for tea on the table. After they had \nbeen in our apartment, both the chicken and the lemons were gone. That's \nenough to tell you what kind of people were in our apartment, people who don't\neven know anything about books. They didn't take a single book, but they did \ntake worn clothing, food, and even the cheapest of the cheap, worn-out \nslippers.\n\nOf those whom I identified, four were Kafan Azerbaijanis living in Sumgait. \nBasically, the group that went seeking \"revenge\"--let's use their word for \nit--was joined by people seeking easy gain and thrill-seekers. I talked with \none of them. He had gray eyes, and somehow against the back-drop of all that \nblack I remembered him specifically because of his of his eyes. Besides taking\npart in the pogrom of our apartment, he was also involved in the murder of \nTamara Mekhtiyeva from Building 16. She was an older Armenian who had recently\narrived from Georgia, she lived alone and did not have anyone in Sumgait. I \ndon't know why she had a last name like that, maybe she was married to an \nAzerbaijani. I had laid eyes on this woman only once or twice, and know \nnothing about her. I do know that they murdered her in her apartment with an \naxe. Murdering her wasn't enough for them. They hacked her into pieces and \nthrew them into the tub with water.\n\nI remember another guy really well too, he was also rather fair-skinned. You \nknow, all the people who were in our apartment were darker than dark, both \ntheir hair and their skin. And in contrast with them, in addition to the grey-\neyed one, I remember this one fellow, the one l took to be a Lezgin. I \nidentified him. As it turned out he was Eduard Robertovich Grigorian, born\nin the city of Sumgait, and he had been convicted twice. One of our own. How \ndid I remember him? The name Rita was tattooed on his left or right hand. I \nkept thinking, is that Rita or \"puma,\" which it would be if you read the word \nas Latin characters instead of Cyrillic, because the Cyrillic \"T\" was the one \nthat looks like a Latin \"M.\" When they led him in he sat with his hands behind\nhis back. This was at the confrontation. He swore on every holy book, tried to\nput in an Armenian word here and there to try and spark my compassion, and \ntold me that I was making a mistake, and called me \"dear sister.\" He said, \n\"You're wrong, how could I, an Armenian, raise my hand against my own, an \nArmenian,\" and so on. He spoke so convincingly that even the investigator \nasked me, \"Lyuda, are you sure it was he?\" I told him, \"I'll tell you one more\nidentifying mark. If I'm wrong I shall apologize and say I was mistaken. The \nname Rita is tattooed on his left or right hand.\" He went rigid and became \npale. They told him, \"Put your hands on the table.\" He put his hands on the\ntable with the palms up. I said, \"Now turn your hands over,\" but he didn't \nturn his hands over. Now this infuriated me. If he had from the very start\nacknowledged his guilt and said that he hadn't wanted to do it, that they \nforced him or something else, I would have treated him somewhat differently.\nBut he insolently stuck to his story, \"No, I did not do anything, it wasn't \nme.\" When they turned his hands over the name Rita was in fact tattooed on his\nhand. His face distorted and he whispered something wicked. I immediately flew\ninto a rage. There was an ashtray on the table, a really heavy one, made out \nof granite or something, very large, and it had ashes and butts in it. \nCatching myself quite by surprise, I hurled that ashtray at him. But he ducked\nand the ashtray hit the wall, and ashes and butts rained down on his head and \nback. And he smiled. When he smiled it provoked me further. I don't know how, \nbut I jumped over the table between us and started either pounding him or \nstrangling him; I no longer remember which. When I jumped I caught the \nmicrophone cord. The investigator was there, Tolya . . .I no longer recall his\nlast name, and he says, \"Lyudochka, it's a Japanese microphone! Please . . .\n\" And shut off all the equipment on the spot, it was all being video taped. \nThey took him away. I stayed, and they talked to me a little to calm me down, \nbecause we needed to go on working, I only remember Tolya telling me, \"You're \nsome actress! What a performance!\" I said, \"Tolya, honestly . . . \" Beforehand\nthey would always tell me, \"Lyuda, more emotion. You speak as calmly as if \nnothing had happened to you.\" I say, \"I don't have any more strength or \nemotion. All my emotions are behind me now, I no longer have the strength \n. . . I don't have the strength to do anything.\" And he says, \"Lyuda, how were\nyou able to do that?\" And when I returned to normal, drinking tea and watching\nthe tape, I said, \"Can I really have jumped over that table? I never jumped \nthat high in gym class.\"\n\nSo you could say the gang that took over our apartment was international. Of \nthe 36 we identified there was an Armenian, a Russian, Vadim Vorobyev, who \nbeat Mamma, and 34 Azerbaijanis.\n\nAt the second meeting with Grigorian, when he had completely confessed his \nguilt, he told of how on February 27 the Azerbaijanis had come knocking. Among\nthem were guys--if you can call them guys--he knew from prison. They said, \n\"Tomorrow we're going after the Armenians. Meet us at the bus station at three\no'clock.\" He said, \"No, I'm not coming.\" They told him, \"If you don't come \nwe'll kill you.\" He said, \"Alright, I'll come.\" And he went.\n\nThey also went to visit my classmate from our microdistrict, Kamo Pogosian. He\nhad also been in prison; I think that together they had either stolen a \nmotorcycle or dismantled one to get some parts they needed. They called him \nout of his apartment and told him the same thing: \"Tomorrow we're going to get\nthe Armenians. Be there.\" He said, \"No.\" They pulled a knife on him. He said, \n\"I'm not going all the same.\" And in the courtyard on the 27th they stabbed \nhim several times, in the stomach. He was taken to the hospital. I know he was\nin the hospital in Baku, in the Republic hospital. If we had known about that \nwe would have had some idea of what was to come on the 28th.\n\nI'll return to Grigorian, what he did in our apartment. I remember that he\nbeat me along with all the rest. He spoke Azerbaijani extremely well. But he\nwas very fair-skinned, maybe that led me to think that they had it out for\nhim, too. But later it was proved that he took part in the beating and burning\nof Shagen Sargisian. I don't know if he participated in the rapes in our \napartment; I didn't see, I don't remember. But the people who were in our \napartment who didn't yet know that he was an Armenian said that he did. I \ndon't know if he confessed or not, and I myself don't recall because I blacked\nout very often. But I think that he didn't participate in the rape of Karina\nbecause he was in the apartment the whole time. When they carried her into the\ncourtyard, he remained in the apartment.\n\nAt one point I was talking with an acquaintance about Edik Grigorian. From her\nI learned that his wife was a dressmaker, his mother is Russian, he doesn't \nhave a father, and that he's been convicted twice. Well this will be his third\nand, I hope, last sentence. He beat his wife, she was eternally coming to work\nwith bruises. His wife was an Armenian by the name of Rita.\n\nThe others who were detained . . . well they're little beasts. You really can't\ncall them beasts, they're just little beasts. They were robots carrying out\nsomeone else's will, because at the investigation they all said, \"I don't \nunderstand how I could have done that, I was out of my head.\" But we know that\nthey were won around to it and prepared for it, that's why they did it. In the\nname of Allah, in the name of the Koran, in the name of propagating Islam--\nthat's holy to them--that's why they did everything they were commanded to do.\nBecause I saw they didn't have minds of their own, I'm not talking about their\nlevel of cultural sophistication or any higher values. No education, they\nwork, have a slew of children without the means to raise them properly, they \ncrowd them in, like at the temporary housing, and apparently, they were \npromised that if they slaughtered the Armenians they would receive apartments.\nSo off they went. Many of them explained their participation saying, \"they \npromised us apartments.\"\n\nAmong them was one who genuinely repented. I am sure that he repented from the\nheart and that he just despised himself after the incident. He worked at a \nchildren's home, an Azerbaijani, he has two children, and his wife works at \nthe children's home too. Everything that they acquired, everything that they \nhave they earned by their own labor, and wasn't inherited from parents or \ngrandparents. And he said, \"I didn't need anything I just don't know . . . how\nI ended up in that; it was like some hand was guiding me. I had no will of my \nown, I had no strength, no masculine dignity, nothing.\" And the whole time I\nkept repeating, \"Now you imagine that someone did the same to your young wife \nright before your own eyes.\" He sat there and just wailed.\n\nBut that leader in the Eskimo dogskin coat was not detained. He performed a \nmarvelous disappearing act, but I think that they'll get onto him, they just \nhave to work a little, because that Vadim, that boy, according to his\ngrandfather, is in touch with the young person who taught him what to do, how \nto cover his tracks. He was constantly exchanging jackets with other boys he \nknew and those he didn't, either, and other things as well, and changed \nhimself like a chameleon so they wouldn't get onto him, but he was detained.\n\nThat one in the Eskimo dogskin coat was at the Gambarians' after Aleksandr \nGambarian was murdered. He came in and said, \"Let's go, enough, you've spilled\nenough blood here.\"\n\nMaybe Karina doesn't know this but the reason they didn't finish her off was \nthat they were hoping to take her home with them. I heard this from Aunt Tanya\nand her sons, the Kasumovs, who were in the courtyard near the entryway. They \nliked her very much, and they had decided to take her to home with them. When \nKarina came to at one point--she doesn't remember this yet, this the neighbors \nold me--and she saw that there was no one around her, she started crawling to \nthe entryway. They saw that she was still alive and came back, they were \nalready at the third entryway, on their way to the Gambarians'. They came back\nand started beating her to finish her. If she had not come to she would have \nsustained lesser bodily injuries, they would have beat her less. An older \nwoman from our building, Aunt Nazan, an Azerbaijani, all but lay on top of \nKarina, crying and pleading that they leave her alone, but they flung her off.\nThe woman's grown sons were right nearby; they picked her up in their hands \nand led her home. She howled and cried out loudly and swore: God is on Earth, \nhe sees everything, and He won't forgive this.\n\nThere was another woman, too, Aunt Fatima, a sick, aging woman from the first \nfloor, she's already retired. Mountain dwellers, and Azerbaijanis, too, have a\ncustom: If men are fighting, they throw a scarf under their feet to stop them.\nBut they trampled her scarf and sent her home. To trample a scarf is \ntantamount to trampling a woman's honor.\n\nNow that the investigation is going on, now that a lot is behind us and we \nhave gotten back to being ourselves a little, I think about how could these \nevents that are now called the Sumgait tragedy happen? How did they come \nabout? How did it start? Could it have been avoided? Well, it's clear that \nwithout a signal, without permission from the top leadership, it would not \nhave happened. All the same, I'm not afraid to say this, the Azerbaijanis,\nlet other worthy people take no offense, the better representatives of their \nnations, let them take no offense, but the Azerbaijanis in their majority are \na people who are kept in line only by fear of the law, fear of retribution for\nwhat they have done. And when the law said that they could do all that, like\nunleashed dogs who were afraid they wouldn't have time to do everything, they \nthrew themselves from one thing to the next so as to be able to get more done,\nto snatch a bit more. The smell of the danger was already in the air on\nFebruary 27. You could tell that something was going to happen. And everyone \nwho had figured it out took steps to avoid running into those gangs. Many left\nfor their dachas, got plane tickets for the other end of the country, just got\nas far away as their legs would carry them.\n\nFebruary 27 was a Saturday. I was teaching my third class. The director came \ninto my classroom and said that I should let the children out, that there had \nbeen a call from the City Party Committee asking that all teachers gather for \na meeting at Lenin Square. Well, I excused the children, and there were few \nteachers left at school, altogether three women, the director, and six or \nseven men. The rest had already gone home. We got to Lenin Square and there \nwere a great many people there. This was around five-thirty or six in the \nevening, no later. They were saying all kinds of rubbish up on the podium and \nthe crowd below was supporting them stormily, roaring. They spoke over the \nmicrophone about what had happened in Kafan a few days earlier and that the \ndriver of a bus going to some district had recently thrown a small Azerbaijani\nchild off the bus. The speaker affirmed that he was an eyewitness, that he had\nseen it himself..The crowd started to rage: \"Death to the Armenians! They must\nbe killed!\" Then a woman went up on stage. I didn't see the woman because \npeople were clinging to the podium like flies. I could only hear her. The \nwoman introduced herself as coming from Kafan, and said that the Armenians \ncut her daughters' breasts off, and called, \"Sons, avenge my daughters!\" That \nwas enough. A portion of the people on the square took off running in the \ndirection of the factories, toward the beginning of Lenin Street.\n\nWe stood there about an hour. Then the director of School 25 spoke, he gave a \nvery nationalist speech. He said, \"Brother Muslims, kill the Armenians!\" This \nhe repeated every other sentence. When he said this the crowd supported him \nstormily, whistling and shouting \"Karabagh!\" He said, \"Karabagh has been our \nterritory my whole life long, Karabagh is my soul. How can you tear out my \nheart?\" As though an Azerbaijani would die without Karabagh. \"It's our \nterritory, the Armenians will never see it. The Armenians must be eliminated. \nFrom time immemorial Muslims have cleansed the land of infidel Armenians, from\ntime immemorial, that's the way nature created it, that every 20 to 30 years \nthe Azerbaijanis should cleanse the land of filth.\" By filth he meant \nArmenians.\n\nI heard this. Before that I hadn't been listening to the speeches closely.\nMany people spoke and I stood with my back to the podium, talking shop with \nthe other teachers, and somehow it all went right by, it didn't penetrate,\nthat in fact something serious was taking place. Then, when one of our\nteachers said, \"Listen to what he's saying, listen to what idiocy he's \nspouting,\" we listened. That was the speech of that director. Before that we \nlistened to the woman's speech.\n\nRight then in our group--there were nine of us--the mood changed, and the \nsubject of conversation and all school matters were forgotten. Our director of\nstudies, for whom I had great respect, he's an Azerbaijani . . . Before that I\nhad considered him an upstanding and worthy person, if there was a need to \nobtain leave we had asked him, he seemed like a good person. So he tells me,\n\"Lyuda, you know that besides you there are no Armenians on the square? If \nthey find out that you're an Armenian they'll tear you to pieces. Should I \ntell them you're an Armenian? Should I tell them you're an Armenian?\" When he \nsaid it the first time I pretended not to hear it, and then he asked me a \nsecond time. I turned to the director, Khudurova, and said that it was already\nafter eight, I was expected at home, and I should be leaving. She answered, \n\"No, they said that women should stay here until ten o'clock,.and men, until \ntwelve. Stay here.\" There was a young teacher with us, her children were in \nkindergarten and her husband worked shifts. She asked to leave: \"I left my \nchildren at the kindergarten.\" The director excused her. When she let her go I\nturned around, said, \"Good-bye,\" and left with the young teacher, the \nAzerbaijani. I didn't see them after that.\n\nWhen we were walking the buses weren't running, and a crowd from the rally ran\nnearby us. They had apparently gotten all fired up. It must have become too \nmuch for them, and they wanted to seek vengeance immediately, so they rushed \noff. I wasn't afraid this time because I was sure that the other teacher \nwouldn't say that I was an Armenian.\n\nTo make it short, we reached home. Then Karina told of how they had been at \nthe movies and what had happened there. I started telling of my experience and\nagain my parents didn't understand that we were in danger. We watched \ntelevision as usual, and didn't even imagine that tomorrow would be our last \nday. That's how it all was.\n\nAt the City Party Committee I met an acquaintance, we went to school together,\nZhanna, I don't remember her last name, she lives above the housewares store \non Narimanov Street. She was there with her father, for some reason she \ndoesn't have a mother. The two of them were at home alone. While her father \nheld the door she jumped from the third floor, and she was lucky that the \nground was wet and that there wasn't anyone behind the building when she went \nout on the balcony, there was no one there, they were all standing near the \nentryway. That building was also a lucky one in that there were no murders \nthere. She jumped. She jumped and didn't feel any pain in the heat of the \nmoment. A few days later I found out that she couldn't stand up, she had been \ninjured somehow. That's how people in Sumgait saved their lives, their honor, \nand their children: any way they could. \n\nWhere it was possible, the Armenians fought back. My father's first cousin, \nArmen M., lives in Block 30. They found out by phone from one of the victims \nwhat was going on in town. The Armenians in that building all called one \nanother immediately and all of them armed themselves with axes, knives, even \nwith muskets and went up to the roof. They took their infants with them, and \ntheir old women who had been in bed for God knows how many months, they got \nthem right out of their beds and took everyone upstairs. They hooked \nelectricity up to the trap door to the roof and waited, ready to fight. Then \nthey took the daughter of the school board director hostage, she's an \nAzerbaijani who lived in their building. They called the school board director\nand told her that if she didn't help them, the 17 Armenians on the roof, to \nescape alive and unharmed, she'd never see her daughter again. I'm sure, of \ncourse, that Armenians would never lay a hand on a woman, it was just the only\nthing that could have saved them at the time. She called the police. The \nArmenians made a deal with the local police to go into town. Two armored \npersonnel carriers and soldiers were summoned They surrounded the entryway and\nled everyone down from the roof, and off to the side from the armored \npersonnel carriers was a crowd that was on its way to the building at that \nvery moment, into Block 30. That's how they defended themselves.\n\nI heard that our neighbors, Roman and Sasha Gambarian, resisted. They're big, \nstrong guys. Their father was killed. And I heard that the brothers put up a \nstrong defense and lost their father, but were able to save their mother.\n\nOne of the neighbors told me that after it happened, when they were looking \nfor the criminals on March 1 to 2 and detaining everyone they suspected, \npeople hid people in our entryway, maybe people who were injured or perhaps \ndead. The neighbors themselves were afraid to go there, and when they went \nwith the soldiers into our basement they are supposed to have found \nAzerbaijani corpses. I don't know how many. Even if they had been wounded and \nput down there, after two days they would have died from loss of blood or \ninfection--that basement was filled with water. I heard this from the \nneighbors. And later when I was talking with the investigators the subject \ncame up and they confirmed it. I know, too, that for several hours the \nbasement was used to store objects stolen from our apartment. And our neighbor\ncarried out our carpet, along with the rest: he stole it for himself, posing \nas one of the criminals. Everyone was taking his own share, and the neighbor \ntook his, too, and carried it home. And when we came back, when everything \nseemed to have calmed down, he returned it, saying that it was the only thing \nof ours he had managed to \"save.\"\n\nRaya's husband and father defended themselves. The Trdatovs defended \nthemselves, and so did other Armenian families. To be sure there were\nAzerbaijani victims, although we'll never hear anything about them. For some \nreason our government doesn't want to say that the Armenians were not just \nvictims, but that they defended the honor of their sisters and mothers, too. \nIn the TV show \"Pozitsiya\" [Viewpoint] a military man, an officer, said that \nthe Armenians did virtually nothing to defend themselves. But that's not \nimportant, the truth will come out regardless.\n\nSo that's the price we paid those three days. For three days our courage, our \nbravery, and our humanity was tested. It was those three days, and not the \nyears and dozens of years we had lived before them, that showed what we've \nbecome, what we grew up to be. Those three days showed who was who.\n\nOn that I will conclude my narrative on the Sumgait tragedy. It should be said\nthat it's not over yet, the trials are still ahead of us, and the punishments\nreceived by those who so violated us, who wanted to make us into nonhumans \nwill depend on our position and on the work of the investigators, the \nProcuracy, and literally of every person who lent his hand to the investiga-\ntion. That's the price we paid to live in Armenia, to not fear going out on \nthe street at night, to not be afraid to say we're Armenians, and to not fear\nspeaking our native tongue.\n\n   October 15,1988\n   Yerevan\n\n\t\t\t- - - reference for #008 - - -\n\n[1] _The Sumgait Tragedy; Pogroms against Armenians in Soviet Azerbaijan,\n    Volume I, Eyewitness Accounts_, edited by Samuel Shahmuradian, forward by\n    Yelena Bonner, 1990, published by Aristide D. Caratzas, NY, pages 118-145\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 164, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: The Inimitable Rushdie\nOrganization: Boston University Physics Department\nLines: 35\n\nIn article <1993Apr15.135650.28926@st-andrews.ac.uk> nrp@st-andrews.ac.uk (Norman R. Paterson) writes:\n\n>I don't think you're right about Germany.  My daughter was born there and\n>I don't think she has any German rights eg to vote or live there (beyond the\n>rights of all EC citizens).  She is a British citizen by virtue of\n>her parentage, but that's not \"full\" citizenship.  For example, I don't think\n>her children could be British by virtue of her in the same way.\n\nI am fairly sure that she could obtain citizenship by making an\napplication for it. It might require immigration to Germany, but\nI am almost certain that once applied for citizenship is inevitable\nin this case.\n\n>More interesting is your sentence, \n\n>>In fact, many people try to come to the US to have their children\n>>born here so that they will have some human rights.\n\n>How does the US compare to an Islamic country in this respect?  Do people\n>go to Iran so their children will have some human rights?  Would you?\n\nMore interesting only for your propaganda purposes. I have said several\ntimes now that I don't consider Iran particularly exemplary as a good\nIslamic state. We might talk about the rights of people in \"capitalist\nsecular\" third world countries to give other examples of the lack of\nrights in third world countries broadly. Say, for example, Central\nAmerican secular capitalist countries whose govt's the US supports\nbut who Amnesty International has pointed out are human rights vacua.\n\n\nGregg\n\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 165, "properties": {"category": "comp.windows.x", "text": "From: venkatg@grace.CS.ORST.EDU (Gopal Venkatraman)\nSubject: question regarding overlaying of graphics\nArticle-I.D.: flop.1r5f7lINNj71\nDistribution: world\nOrganization: Computer Science Department, Oregon State University\nLines: 32\nNNTP-Posting-Host: grace.cs.orst.edu\n\nHello...\n\nI wonder if some one can suggest an answer to the following question:\nI am a total X novice and would appreciate any suggestions you may have.\n\nI am trying to create a simple drawing tool....\n\n       __________\n       |        |\n       |     ___|___\n       |_____|__|  |\n             |\t   |\n\t     |_____|\n\nLet's say I have two rectangles on the canvas(see above) \none intersecting the other...\nNow, I would like to delete one of the rectangles.\nThe way I do it is to create another GC wherein I use the\nGXxor logical function and simply redraw the rectangle using the newly\ncreated graphics context thus deleting it for all apparent purposes.\nA problem with this approach is that at the points of intersection the pixel \nlocations belonging to the other rectangle also become white, which is \nsomething that should be avoided.\n\nIs there any way I can avoid this problem without having to redraw the other\nrectangle too?\nI also would not like to generate an expose event for the affected area\nas this degrades performance very badly...\n\n\nThank you...\nGopal\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 166, "properties": {"category": "alt.atheism", "text": "From: edm@twisto.compaq.com (Ed McCreary)\nSubject: Re: some thoughts.\nIn-Reply-To: healta@saturn.wwc.edu's message of Fri, 16 Apr 1993 02: 51:29 GMT\nOrganization: Compaq Computer Corp\n\t<healta.145.734928689@saturn.wwc.edu>\nLines: 47\n\n>>>>> On Fri, 16 Apr 1993 02:51:29 GMT, healta@saturn.wwc.edu (Tammy R Healy) said:\nTRH> I hope you're not going to flame him.  Please give him the same coutesy you'\nTRH> ve given me.\n\nBut you have been courteous and therefore received courtesy in return.  This\nperson instead has posted one of the worst arguments I have ever seen\nmade from the pro-Christian people.  I've known several Jesuits who would\nlaugh in his face if he presented such an argument to them.\n\nLet's ignore the fact that it's not a true trilemma for the moment (nice\nword Maddi, original or is it a real word?) and concentrate on the\nliar, lunatic part.\n\nThe argument claims that no one would follow a liar, let alone thousands\nof people.  Look at L. Ron Hubbard.  Now, he was probably not all there,\nbut I think he was mostly a liar and a con-artist.  But look at how many\nthousands of people follow Dianetics and Scientology.  I think the \nBaker's and Swaggert along with several other televangelists lie all\nthe time, but look at the number of follower they have.\n\nAs for lunatics, the best example is Hitler.  He was obviously insane,\nhis advisors certainly thought so.  Yet he had a whole country entralled\nand came close to ruling all of Europe.  How many Germans gave their lives\nfor him?  To this day he has his followers.\n\nI'm just amazed that people still try to use this argument.  It's just\nso obviously *wrong*.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n--\nEd McCreary                                               ,__o\nedm@twisto.compaq.com                                   _-\\_<, \n\"If it were not for laughter, there would be no Tao.\"  (*)/'(*)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 167, "properties": {"category": "rec.sport.baseball", "text": "From: neuharth@hardy.u.washington.edu (John Neuharth)\nSubject: Re: Jim Lefebvre is an idiot.\nArticle-I.D.: shelley.1psf0dINNm4q\nOrganization: University of Washington\nLines: 20\nNNTP-Posting-Host: hardy.u.washington.edu\n\nrickc@krill.corp.sgi.com (Richard Casares) writes:\n\n>In article <1993Apr5.190141.17623@bsu-ucs>, 00bjgood@leo.bsuvc.bsu.edu\n>writes:\n>|> I just wanted to let everyone know that I have lost what little respect\n>|> I have\n>|> for Jim LeFebvre after seeing today's Cubs game. \n>|> \t\t\t\t\t\tA dishard Cub fan\n\n\n>Yes, I also wonder if they can win with this manager.\n>I never believed managers had that much to do with winning\n>until I saw how much they had to do with losing....\n\nI like the Mariners a lot, but my heart belongs to the Cubs...You can imagine\nmy frustration when I saw the Cubs nabbing LeFebvre...ARHGGHRGHH!\n\n-John Neuharth\n\nneuharth@u.washington.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 168, "properties": {"category": "alt.atheism", "text": "Subject: Re: Feminism and Islam, again\nFrom: kmagnacca@eagle.wesleyan.edu\nOrganization: Wesleyan University\nNntp-Posting-Host: wesleyan.edu\nLines: 30\n\nIn article <1993Apr14.030334.8650@ultb.isc.rit.edu>, snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n> In article <1993Apr11.145519.1@eagle.wesleyan.edu> kmagnacca@eagle.wesleyan.edu writes:\n>>\n>>There's a way around that via the hadith, which state that silence is\n>>taken to mean \"yes\" and that women may not speak before a judge, who\n>>must conduct the marriage.\n> \n> Actaully, that's a false hadith, because it contradicts verses in the\n> Quran, that says women may testify- speak before a judge.\n> \n> Hadiths are declared false when they contradict the Quran.  Hadiths\n> weren't written during the revelation or during the life of the prophet,\n> and so may contain errors.\n\nSo the only way you can tell a false hadith from a true one is\nif it contradicts the Quran?  What if it relates to something\nthat isn't explicitly spelled out in the Quran?\n\nAlso, the Quran wasn't written down during the life of Muhammed\neither.  It wasn't long after, but 20 years or so is still long\nenough to shift a few verses around.\n\nKarl\n -----------------------------------------------------------------------------\n| \"Lastly, I come to China in the hope      | \"All you touch and all you see  |\n| of fulfilling a lifelong ambition -       | Is all your life will ever be.\" |\n| dropping acid on the Great Wall.\"  --Duke |                 --Pink Floyd    |\n|-----------------------------------------------------------------------------|\n|         A Lie is still a Lie even if 3.8 billion people believe it.         |\n -----------------------------------------------------------------------------\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 169, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 57\nNNTP-Posting-Host: lloyd.caltech.edu\n\nkcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n\n>>I think that you are confusing the words \"objective\" and \"inherent.\"\n>>And objective system is simply one in which an outside observer who,\n>>given the postulates of the system, could perfectly judge any situation\n>>or action as consistent with the system (right) or not (wrong).  You seem\n>>to be objecting because the goals of the system are not inherent.  That is,\n>>you seem to want to define an objective system as one in which the\n>>postulates themselves could be determined by some outside observer.\n>>I don't think that this is a good definition of an objective system.\n>Then you need to learn English.\n\nReally>`?\n\n>Gravity is an objective system.  Anybody can learn what it is, and perform\n>experiments.  They will get the same results as every other person who\n>has performed those experiments.\n\nNo, gravity is an inherent system.  You don't need any excess information\nother than observations to determine anything.  It is possible to objectively\ndetermine someone's guilt or innocence within an non-inherent system.\nI agree that morality is not necessarily inherent (unless you state that\neverything we do has an evolutionary basis), but this does not mean that\nit cannot be objective in theory.\n\n>This \"natural morality\" is not an objective system, as evidenced by\n>your comments about lions, and mine.\n\nPerhaps it can be objective, but not inherent.  Anyway, as I noted before,\nthe practices related to mating rituals, etc. among the animals are likely\nthe only ones to be considered \"immoral\" under the previous \"definitions\"\nof the natural law.  Therefore, some revisions are in order, since the\nclass of activities surrounding mating seem to pose some general problems.\n\n>>And in fact, the only way that the postulates could be determined by an\n>>outsider would be if there were some sort of higher truth, like some\n>>sort of god or something.  But, I do not think that a god is necessary\n>>for an objective system, while it seems that you do.\n>What are you trying to say here?\n\nIt seens that you are objecting to the notion of an objective system\nbecause perhaps you think that it would imply inherence, which would\nnecessitate some sort of grand design?\n\n>>No, I have classified behavior of most animals as in line with a\n>>moral system.  It is certainly possible for animals to commit acts\n>>which are outside of their rules of ethics, but they don't seem to\n>>do so very often.  Perhaps they are not intelligent enough to be\n>>immoral.\n>And perhaps it's because you have yet to define a \"moral\" system.\n\nI think I have.  It is a code of ethics which basically defines undesired\nbehaviors, etc.  An immoral behavior could be unwanted, unproductive,\nor destructive, etc., depending on the goal of the system (that is,\nimmoral to what end?).\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 170, "properties": {"category": "sci.electronics", "text": "From: philc@macs.ee.mcgill.ca (Phil Crawley)\nSubject: Read only if going to ISCAS93 in Chicago\nKeywords: Soccer, ISCAS93\nLines: 20\nNntp-Posting-Host: kirk.ee.mcgill.ca\nOrganization: McGill University - MACS Laboratory, Montreal, CANADA.\n\n\n   This is message is only of interest to those going to \nInternational Symposium on Circuits and Systems that is being\nheld in Chicago this May.\n   \n   I checking to see if there is any people out there who would be\ninterested in getting together for a pickup game of soccer during \nthe off hours of the conference. If so could you e-mail me at:\n\nphilc@macs.ee.mcgill.ca\n\nI'll bring a ball. If you know someone who is going to the \nconference and you know that they are avid soccer players\nplease pass on this message to them. Also if someone in\nChicago is going to the conference please let me know if\nthere is any field near the hotel where we can play.\n\nThanks. Bye.\n\nPhilip Crawley \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.010+0000", "event": "documents", "entityId": 171, "properties": {"category": "rec.sport.baseball", "text": "From: niguma@ug.cs.dal.ca (Gord Niguma)\nSubject: Re: Notes on Jays vs. Indians Series\nNntp-Posting-Host: ug.cs.dal.ca\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nDistribution: na\nLines: 25\n\nIn <C5HxLK.FIx@andy.bgsu.edu> klopfens@andy.bgsu.edu (Bruce Klopfenstein) writes:\n\n>dtate+@pitt.edu (David M. Tate) writes:\n>> klopfens@andy.bgsu.edu (Bruce Klopfenstein) said:\n>>>\n>>>I just love how the Alomar fans left RBIs off this list.  \n>> \n>> Of *course* they left RBIs off; we're comparing Alomar the individual with\n>> Baerga the individual, so only individual stats count.  \n>> \n>>>Give me a break!\n\n\n>I forgot.  Most runs are scored by players stealing home, so RBI don't\n>count for anything.\n\n>My mistake.\n\n\n  Oh, oh, we all know what's going to happen now don't we!\n\n\t\t\t\t\t\tGord Niguma\n\t\t\t\t\t\t(fav player: John Olerud)\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 172, "properties": {"category": "alt.atheism", "text": "From: kempmp@phoenix.oulu.fi (Petri Pihko)\nSubject: Re: Idle questions for fellow atheists\nOrganization: University of Oulu, Finland\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 59\n\nacooper@mac.cc.macalstr.edu wrote:\n \n: I wonder how many atheists out there care to speculate on the face of\n: the world  if atheists were the majority rather than the minority group\n: of the population. \n\nI've been thinking about this every now and then since I cut my ties\nwith Christianity. It is surprising to note that a large majority of\npeople, at least in Finland, seem to be apatheists - even though\n90 % of the population are members of the Lutheran Church of Finland,\nreligious people are actually a minority. \n\nCould it be possible that many people believe in god \"just in case\"?\nIt seems people do not want to seek the truth; they fall prey to Pascal's\nWager or other poor arguments. A small minority of those who do believe\nreads the Bible regularly. The majority doesn't care - it believes,\nbut doesn't know what or how. \n\nPeople don't usually allow their beliefs to change their lifestyle,\nthey only want to keep the virtual gate open. A Christian would say\nthat they are not \"born in the Spirit\", but this does not disturb them.\nReligion is not something to think about. \n\nI'm afraid a society with a true atheist majority is an impossible\ndream. Religions have a strong appeal to people, nevertheless - \na promise of life after death is something humans eagerly listen to.\nCoupled with threats of eternal torture and the idea that our\nmorality is under constant scrutiny of some cosmic cop, too many\npeople take the poison with a smile. Or just pretend to swallow\n(and unconsciously hope god wouldn't notice ;-) )\n\n: Also, how many atheists out there would actually take the stance and accor a\n: higher value to their way of thinking over the theistic way of thinking.  The\n: typical selfish argument would be that both lines of thinking evolved from the\n: same inherent motivation, so one is not, intrinsically, different from the\n: other, qualitatively.  But then again a measuring stick must be drawn\n: somewhere, and if we cannot assign value to a system of beliefs at its core,\n: than the only other alternative is to apply it to its periphery; ie, how it\n: expresses its own selfishness.\n\nIf logic and reason are valued, then I would claim that atheistic thinking\nis of higher value than the theistic exposition. Theists make unnecessary\nassumptions they believe in - I've yet to see good reasons to believe\nin gods, or to take a leap of faith at all. A revelation would do.\n\nHowever, why do we value logic and reasoning? This questions bears\nsome resemblance to a long-disputed problem in science: why mathematics\nworks? Strong deep structuralists, like Atkins, have proposed that\nperhaps, after all, everything _is_ mathematics. \n\nIs usefulness any criterion?\n\nPetri\n\n--\n ___. .'*''.*        Petri Pihko    kem-pmp@          Mathematics is the Truth.\n!___.'* '.'*' ' .    Pihatie 15 C    finou.oulu.fi    Physics is the Rule of\n       ' *' .* '*    SF-90650 OULU  kempmp@           the Game.\n          *'  *  .*  FINLAND         phoenix.oulu.fi  -> Chemistry is The Game.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 173, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hayesj@rintintin.Colorado.EDU (HAYES JAMES MICHAEL JR)\nSubject: ?Order of files written when exitting windows?\nNntp-Posting-Host: rintintin.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 22\n\n\nTrying to pin point a hardware problem with my disk, Maxtor\n7213AT.  Group files get corrupted on a regular basis.\nOnly happens on this drive, D had only one corrupt file\nin over a year and it was under the control of winword on C.\n32-bit disk access and smartdrive are off.  Since installation\nof dblspace problem has turned from an annoyance to a reason for\nmurder.\n\nSince the most frequent files corrupted are the *.grp files,\nare these the last thing written to when exitting Windows?\n\nAlso, are there any pd/shareware utilities available that do\na more thorough job than dos 6, NDD 4.5, etc?  DOS 6 and \nWin 3.1 compatable.\n\nThanks\n-- \n  Mike Hayes             |\"Knowledge is good.\"  - Faber College Motto\n  WWW                    |\"Knowledge and Thoroughness\" -Rensselear Poly Motto\n  Unemployed Tech,       |\"No, thank YOU!\"  -Groucho Marx, 'A Day at the Races'\n  Driven to banging my head against engineering physics for 4 years.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 174, "properties": {"category": "comp.sys.mac.hardware", "text": "From: noah@apple.com (Noah Price)\nSubject: Re: What to put in Centris 650 Internal Bay?\nOrganization: (not the opinions of) Apple Computer, Inc.\nLines: 31\n\nIn article <C5JFnp.FCx@world.std.com>, jbailey@world.std.com (jim bailey)\nwrote:\n> \n> hades@coos.dartmouth.edu (Brian V. Hughes) writes:\n> >tzs@stein2.u.washington.edu (Tim Smith) writes:\n> >>jbailey@world.std.com (jim bailey) writes:\n> >>>Yes, you get internal mixing of the analog CD-Audio outputs with\n> >>>the Mac generated audio on the Mac motherboard.  Also you can sample\n> >>>the CD-Audio using the sound control panel by clicking on the Options\n> >>>button next to the microphone icon.\n> >>How do you click on the Options button?  I've never seen it undimmed.\n> \n> >    The latest word on this is you have to disconnect the Microphone\n> >cable on the motherboard. Then the button is supposed to un-dim.\n\nThe audio will simply select the CD audio when the microphone is removed. \nI don't believe the button un-dims, since there's nothing to select.  I\nhaven't tracked down a Centris to check this on though.\n\n> Sorry, I assumed that the the various new machines with the internal\n> CD-ROM bay worked the same as the Quadra 900.  Obviously they don't.\n\nYup, I made the same mistake several months ago when this issue came up\nbefore :-)\n\n\nnoah\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nnoah@apple.com                                 Macintosh Hardware Design\n...!{sun,decwrl}!apple!noah   (not the opinions of) Apple Computer, Inc.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 175, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: New Clipper Chip Proposal from the Guv...\nKeywords: encryption,privacy,individual rights,legalities,big brother\nOrganization: Totally Unorganized\nLines: 310\n\nI saw this article posted in a local newsgroup.  I haven't seen it,\nor any followup traffic relating to it in these groups or other groups\nwhich I subscribe to.  So, I am posting it here so others can read it,\ncheck it out, and comment on it, and provide ideas for handling these\nsorts of things.\n\nI have no verification to the accuracy or lack of accuracy of this\narticle, but if accurate, I find it extremely disturbing, especially in\nlight of various abuses of the SSN number regarding privacy, (I understand\nit is now to be required in CA to renew a drivers license, or to register\na car) and other proposals regarding 'smart' national Identity Cards,\nwiretap proposals, and such.  One simply wonders what other gems are in\nthe wings ready to be sprung on the people by our government.  Perhaps\nsuggestions and ideas for preventing this and other such proposals from\nacquiring the force of law would be useful.  The cost simply outweighs\nany possible benefits, IMO.\n\nBTW, reading this makes me think of some ideas a Prof Denning has been\npromoting, in an even more disturbing form.\n\nThat said, with no further comment, the article follows:\n\n------------ Begin included article ---------\n\nNote:  This file will also be available via anonymous file\ntransfer from csrc.ncsl.nist.gov in directory /pub/nistnews and\nvia the NIST Computer Security BBS at 301-948-5717.\n     ---------------------------------------------------\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n\n_________________________________________________________________\n\nFor Immediate Release                           April 16, 1993\n\n\n                STATEMENT BY THE PRESS SECRETARY\n\n\nThe President today announced a new initiative that will bring\nthe Federal Government together with industry in a voluntary\nprogram to improve the security and privacy of telephone\ncommunications while meeting the legitimate needs of law\nenforcement.\n\nThe initiative will involve the creation of new products to\naccelerate the development and use of advanced and secure\ntelecommunications networks and wireless communications links.\n\nFor too long there has been little or no dialogue between our\nprivate sector and the law enforcement community to resolve the\ntension between economic vitality and the real challenges of\nprotecting Americans.  Rather than use technology to accommodate\nthe sometimes competing interests of economic growth, privacy and\nlaw enforcement, previous policies have pitted government against\nindustry and the rights of privacy against law enforcement.\n\nSophisticated encryption technology has been used for years to\nprotect electronic funds transfer.  It is now being used to\nprotect electronic mail and computer files.  While encryption\ntechnology can help Americans protect business secrets and the\nunauthorized release of personal information, it also can be used\nby terrorists, drug dealers, and other criminals.\n\nA state-of-the-art microcircuit called the \"Clipper Chip\" has\nbeen developed by government engineers.  The chip represents a\nnew approach to encryption technology.  It can be used in new,\nrelatively inexpensive encryption devices that can be attached to\nan ordinary telephone.  It scrambles telephone communications\nusing an encryption algorithm that is more powerful than many in\ncommercial use today.\n\nThis new technology will help companies protect proprietary\ninformation, protect the privacy of personal phone conversations\nand prevent unauthorized release of data transmitted\nelectronically.  At the same time this technology preserves the\nability of federal, state and local law enforcement agencies to\nintercept lawfully the phone conversations of criminals. \n\nA \"key-escrow\" system will be established to ensure that the\n\"Clipper Chip\" is used to protect the privacy of law-abiding\nAmericans.  Each device containing the chip will have two unique\n\n\n                                2\n\n\n\"keys,\" numbers that will be needed by authorized government\nagencies to decode messages encoded by the device.  When the\ndevice is manufactured, the two keys will be deposited separately\nin two \"key-escrow\" data bases that will be established by the\nAttorney General.  Access to these keys will be limited to\ngovernment officials with legal authorization to conduct a\nwiretap.\n\nThe \"Clipper Chip\" technology provides law enforcement with no\nnew authorities to access the content of the private\nconversations of Americans.\n\nTo demonstrate the effectiveness of this new technology, the\nAttorney General will soon purchase several thousand of the new\ndevices.  In addition, respected experts from outside the\ngovernment will be offered access to the confidential details of\nthe algorithm to assess its capabilities and publicly report\ntheir findings.\n\nThe chip is an important step in addressing the problem of\nencryption's dual-edge sword:  encryption helps to protect the\nprivacy of individuals and industry, but it also can shield\ncriminals and terrorists.  We need the \"Clipper Chip\" and other\napproaches that can both provide law-abiding citizens with access\nto the encryption they need and prevent criminals from using it\nto hide their illegal activities.  In order to assess technology\ntrends and explore new approaches (like the key-escrow system),\nthe President has directed government agencies to develop a\ncomprehensive policy on encryption that accommodates:\n\n     --   the privacy of our citizens, including the need to\n          employ voice or data encryption for business purposes;\n\n     --   the ability of authorized officials to access telephone\n          calls and data, under proper court or other legal\n          order, when necessary to protect our citizens;\n\n     --   the effective and timely use of the most modern\n          technology to build the National Information\n          Infrastructure needed to promote economic growth and\n          the competitiveness of American industry in the global\n          marketplace; and \n\n     --   the need of U.S. companies to manufacture and export\n          high technology products.\n\nThe President has directed early and frequent consultations with\naffected industries, the Congress and groups that advocate the\nprivacy rights of individuals as policy options are developed.\n\n\n\n                                3\n\nThe Administration is committed to working with the private\nsector to spur the development of a National Information\nInfrastructure which will use new telecommunications and computer\ntechnologies to give Americans unprecedented access to\ninformation.  This infrastructure of high-speed networks\n(\"information superhighways\") will transmit video, images, HDTV\nprogramming, and huge data files as easily as today's telephone\nsystem transmits voice.\n\nSince encryption technology will play an increasingly important\nrole in that infrastructure, the Federal Government must act\nquickly to develop consistent, comprehensive policies regarding\nits use.  The Administration is committed to policies that\nprotect all Americans' right to privacy while also protecting\nthem from those who break the law.\n\nFurther information is provided in an accompanying fact sheet. \nThe provisions of the President's directive to acquire the new\nencryption technology are also available.  \n\nFor additional details, call Mat Heyman, National Institute of\nStandards and Technology, (301) 975-2758.\n\n---------------------------------\n\n\nQUESTIONS AND ANSWERS ABOUT THE CLINTON ADMINISTRATION'S\nTELECOMMUNICATIONS INITIATIVE\n\n\n\n\nQ:   Does this approach expand the authority of government\n     agencies to listen in on phone conversations?\n\nA:   No.  \"Clipper Chip\" technology provides law enforcement with\n     no new authorities to access the content of the private\n     conversations of Americans.\n\nQ:   Suppose a law enforcement agency is conducting a wiretap on\n     a drug smuggling ring and intercepts a conversation\n     encrypted using the device.  What would they have to do to\n     decipher the message?\n\nA:   They would have to obtain legal authorization, normally a\n     court order, to do the wiretap in the first place.  They\n     would then present documentation of this authorization to\n     the two entities responsible for safeguarding the keys and\n     obtain the keys for the device being used by the drug\n     smugglers.  The key is split into two parts, which are\n     stored separately in order to ensure the security of the key\n     escrow system.\n\nQ:   Who will run the key-escrow data banks?\n\nA:   The two key-escrow data banks will be run by two independent\n     entities.  At this point, the Department of Justice and the\n     Administration have yet to determine which agencies will\n     oversee the key-escrow data banks.\n\nQ:   How strong is the security in the device?  How can I be sure\n     how strong the security is?  \n\nA:   This system is more secure than many other voice encryption\n     systems readily available today.  While the algorithm will\n     remain classified to protect the security of the key escrow\n     system, we are willing to invite an independent panel of\n     cryptography experts to evaluate the algorithm to assure all\n     potential users that there are no unrecognized\n     vulnerabilities.\n\nQ:   Whose decision was it to propose this product?\n\nA:   The National Security Council, the Justice Department, the\n     Commerce Department, and other key agencies were involved in\n     this decision.  This approach has been endorsed by the\n     President, the Vice President, and appropriate Cabinet\n     officials.\n\nQ:   Who was consulted?  The Congress?  Industry?\n\nA:   We have on-going discussions with Congress and industry on\n     encryption issues, and expect those discussions to intensify\n     as we carry out our review of encryption policy.  We have\n     briefed members of Congress and industry leaders on the\n     decisions related to this initiative.\n\nQ:   Will the government provide the hardware to manufacturers?\n\nA:   The government designed and developed the key access\n     encryption microcircuits, but it is not providing the\n     microcircuits to product manufacturers.  Product\n     manufacturers can acquire the microcircuits from the chip\n     manufacturer that produces them.\n\nQ:   Who provides the \"Clipper Chip\"?\n\nA:   Mykotronx programs it at their facility in Torrance,\n     California, and will sell the chip to encryption device\n     manufacturers.  The programming function could be licensed\n     to other vendors in the future.\n\nQ:   How do I buy one of these encryption devices? \n\nA:   We expect several manufacturers to consider incorporating\n     the \"Clipper Chip\" into their devices.\n     \nQ:   If the Administration were unable to find a technological\n     solution like the one proposed, would the Administration be\n     willing to use legal remedies to restrict access to more\n     powerful encryption devices?\n\nA:   This is a fundamental policy question which will be\n     considered during the broad policy review.  The key escrow\n     mechanism will provide Americans with an encryption product\n     that is more secure, more convenient, and less expensive\n     than others readily available today, but it is just one\n     piece of what must be the comprehensive approach to\n     encryption technology, which the Administration is\n     developing.\n\n     The Administration is not saying, \"since encryption\n     threatens the public safety and effective law enforcement,\n     we will prohibit it outright\" (as some countries have\n     effectively done); nor is the U.S. saying that \"every\n     American, as a matter of right, is entitled to an\n     unbreakable commercial encryption product.\"  There is a\n     false \"tension\" created in the assessment that this issue is\n     an \"either-or\" proposition.  Rather, both concerns can be,\n     and in fact are, harmoniously balanced through a reasoned,\n     balanced approach such as is proposed with the \"Clipper\n     Chip\" and similar encryption techniques.\n\nQ:   What does this decision indicate about how the Clinton\n     Administration's policy toward encryption will differ from\n     that of the Bush Administration?  \n\nA:   It indicates that we understand the importance of encryption\n     technology in telecommunications and computing and are\n     committed to working with industry and public-interest\n     groups to find innovative ways to protect Americans'\n     privacy, help businesses to compete, and ensure that law\n     enforcement agencies have the tools they need to fight crime\n     and terrorism.\n\nQ:   Will the devices be exportable?  Will other devices that use\n     the government hardware?\n\nA:   Voice encryption devices are subject to export control\n     requirements.  Case-by-case review for each export is\n     required to ensure appropriate use of these devices.  The\n     same is true for other encryption devices.  One of the\n     attractions of this technology is the protection it can give\n     to U.S. companies operating at home and abroad.  With this\n     in mind, we expect export licenses will be granted on a\n     case-by-case basis for U.S. companies seeking to use these\n     devices to secure their own communications abroad.  We plan\n     to review the possibility of permitting wider exportability\n     of these products.\n\n----------- End included article ----------- \n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 176, "properties": {"category": "rec.sport.baseball", "text": "From: admiral@jhunix.hcf.jhu.edu (Steve C Liu)\nSubject: Re: Bring on the O's\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 39\nDistribution: world\nExpires: 5/9/95\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\nSummary: Root, root, root for the Orioles...\n\nI heard that Eli is selling the team to a group in Cinninati. This would\nhelp so that the O's could make some real free agent signings in the \noffseason. Training Camp reports that everything is pretty positive right\nnow. The backup catcher postion will be a showdown between Tackett and Parent\nalthough I would prefer Parent. #1 Draft Pick Jeff Hammonds may be coming\nup faster in the O's hierarchy of the minors faster than expected. Mike\nFlanagan is trying for another comeback. Big Ben is being defended by\ncoaches saying that while the homers given up were an awful lot, most came\nin the beginning of the season and he really improved the second half. This\nmay be Ben's year. \n\tI feel that while this may not be Mussina's Cy Young year, he will\nbe able to pitch the entire season without periods of fatigue like last year\naround August. I really hope Baines can provide the RF support the O's need.\nOrsulak was decent but I had hoped that Chito Martinez could learn defense\nbetter and play like he did in '91. The O's right now don't have many\nleft-handed hitters. Anderson proving last year was no fluke and Cal's return\nto his averages would be big plusses in a drive for the pennant. The \nrotation should be Sutcliffe, Mussina, McDonald, Rhodes, ?????. Olson is an\ninteresting case. Will he strike out the side or load the bases and then get\nthree pop outs? You never know.\nThe way I see the AL East this year (with personal biases mixed in)\nBaltimore\nNew York\nToronto\nMilwaukee\nCleveland\nBoston\nDetroit\n(The top 4 are the only true contenders in my mind. One of these 4 will\ndefinitely win the division unless it snows in Hell/Maryland :). I feel\nthat this Baltimore's season to finally put everything together.)\n__________________________________________________________________________\n|Admiral Steve C. Liu        Internet Address: admiral@jhunix.hcf.jhu.edu|\n|\"Committee for the Liberation and Intergration of Terrifying Organisms  |\n|and their Rehabilitation Into Society\" from Red Dwarf - \"Polymorph\"     |\n|****The Bangles are the greatest female rock band that ever existed!****|\n|   This sig has been brought to you by... Frungy! The Sport of Kings!   |\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 177, "properties": {"category": "misc.forsale", "text": "From: xorcist@cyberden.sf.ca.us\nSubject: [ For Sale ] EMS Freq. Shifter\nReply-To: xorcist@cyberden.sf.ca.us\nOrganization: Indescribable Creations\nLines: 20\n\nThis is yet for a friend again.\n\nEMS Freq. Shifter. (The machine that made those 3-D swirling guitar effects\n                    way back in the 70's.)\n\nSpacial panner with harmonic shifting. Very rare - A collectors Item. This\nis the last unit EMS ever made. Rack mountable. Mono in, Up/Down signals out\nwith seperate Pan out and sine/unsine voltage outs. VCO input too to control\nLFO. If interested contact Kevin before 9 pm PST (California) at 818-362-7883\nand make an offer.\n\nDo not reply to this account.\n\nHave a nice day\n\n__________________________________________________________________________\n   |       /         |\\\n   | H E   \\ Y B E R |/ E N            [ xorcist@cyberden.sf.ca.us ]\n\n   The CyberDen - Public Access Waffle Usenet System - 415/472-5527\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 178, "properties": {"category": "sci.space", "text": "From: steinly@topaz.ucsc.edu (Steinn Sigurdsson)\nSubject: Re: DC-X Rollout Report\nArticle-I.D.: topaz.STEINLY.93Apr6170313\nDistribution: sci\nOrganization: Lick Observatory/UCO\nLines: 29\nNNTP-Posting-Host: topaz.ucsc.edu\nIn-reply-to: buenneke@monty.rand.org's message of Tue, 6 Apr 1993 22:34:39 GMT\n\nIn article <C532v3.Ftn.1@cs.cmu.edu> buenneke@monty.rand.org (Richard Buenneke) writes:\n\n   McDonnell Douglas rolls out DC-X\n\n ...\n\n\n   SSTO research remains cloudy.  The SDI Organization -- which paid $60\n   million for the DC-X -- can't itself afford to fund full development of a\n   follow-on vehicle.  To get the necessary hundreds of millions required for\n\nThis is a little peculiar way of putting it, SDIO's budget this year\nwas, what, $3-4 billion? They _could_ fund all of the DC development\nout of one years budget - of course they do have other irons in the\nfire ;-) and launcher development is not their primary purpose, but\nthe DC development could as easily be paid for by diverting that money\nas by diverting the comparable STS ops budget...\n\n- oh, and before the flames start. I applaud the SDIO for funding DC-X\ndevlopment and I hope it works, and, no, launcher development is not\nNASAs primary goal either, IMHO they are supposed to provide the\nenabling technology research for others to do launcher development,\nand secondarily operate such launchers as they require - but that's\njust me.\n\n|  Steinn Sigurdsson\t|I saw two shooting stars last night\t\t|\n|  Lick Observatory\t|I wished on them but they were only satellites\t|\n| steinly@lick.ucsc.edu |Is it wrong to wish on space hardware?\t\t|\n| \"standard disclaimer\"\t|I wish, I wish, I wish you'd care - B.B. 1983\t|\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 179, "properties": {"category": "rec.sport.baseball", "text": "From: joel@math.toronto.edu (Joel Chan)\nSubject: Game Score Report\nOrganization: Department of Mathematics, University of Toronto\nLines: 12\n\nJust out of curiosity, what happened to the weekly AL and NL Game\nScore Reports?  I used to enjoy reading them throughout the summer\nfor the last two years.\n\nInquisitively yours,\n\nJoel\n-- \nJoel Chan <joel@math.toronto.edu>, Dept. of Mathematics, University of Toronto\nToronto Blue Jays -- 1992 World Series Champs!\n\"History: Those who ignore it are condemned to repeat it.  Math, too.\"\n\t\t\t\t\t- From the comic strip \"Betty\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 180, "properties": {"category": "sci.electronics", "text": "From: schaefer@imag.imag.fr (Arno Schaefer)\nSubject: Re: How to the disks copy protected.\nNntp-Posting-Host: silene\nOrganization: Institut Imag, Grenoble, France\nLines: 38\n\nIn article <1993Apr21.085848.12704W@lumina.edb.tih.no>, ketil@edb.tih.no (Ketil Albertsen,TIH) writes:\n|> In article <1993Apr20.230749.12821@reed.edu>, mblock@reed.edu (Matt Block) writes:\n|> \n|> >\tI guess what I am saying is that your question is difficult, if not\n|> >impossible, to answer.  What exactly do you want to know?  Do you need a good\n|> >one for a project you are working on?  How secure must it be?  Are you trying\n|> >to crack one that someone else has used?  I can probably make suggestions,\n|> >assuming the activity is strictly legal.  (In general, it is a BAD idea,\n|> >legally, to tamper with copy protection.  It can also lead to corruption of\n|> >files which you necessarily do not have back ups of (being as they are copy\n|> >protected,) which can be devestating.)  Do you have absolutely no ideas for\n|> >practical applications, and are merely curious?\n|> >\tPlease clear up those questions, and I'll try to help as much as I\n|> >can.\n|> \n|> May we interpret this as an offer to volunteer as editor for a\n|> \"Copy protection FAQ\" ? I am quite sure that I am not alone welcoming such\n|> an initiative! *I* will volunteer to ask some of the questions, if you will\n|> provide the answers :-)\n|> \n|> Ketil Albertsen\n\nHey, now will you stop encouraging him? Copy protection only serves one pur-\npose: to keep the honest buyer from making (legal) backup copies. It will\ndefinitely not stop any pirates. If you want to protect you soft, supply a\ngood documentation and support. This is IMHO the *only* way of effectively pro-\ntecting software.\n\nBest Regards,\n\nArno\n\n-- \n--------------------------------------------------------------------------------\nArno Schaefer\t\t\t\tENSIMAG, 2e Annee\nEmail: schaefer@silene.imag.fr\nTel.: (33) 76 51 79 95\t\t\t:-)\n------- No, you're not paranoid - the world is really out to get you -----------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 181, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 09/10 - Other Miscellany\nOrganization: The Crypt Cabal\nLines: 174\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 9 of 10 of the sci.crypt FAQ, Other Miscellany.\n National Security agency. US export restrictions. TEMPEST \n electromagnetic interference monitoring.  Beale ciphers, a hoax?\n American Cryptographic Association.  RSA public-key patents.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part09\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 9: Other Miscellany\n\nThis is the ninth of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read the first part before the rest.\nWe don't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in the last part.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers \nevery 21 days.\n\n\nContents:\n\n* What is the National Security Agency (NSA)?\n* What are the US export regulations?\n* What is TEMPEST?\n* What are the Beale Ciphers, and are they a hoax?\n* What is the American Cryptogram Association, and how do I get in touch?\n* Is RSA patented?\n* What about the Voynich manuscript?\n\n\n* What is the National Security Agency (NSA)?\n\n  The NSA is the official security body of the U.S. government. It\n  was given its charter by President Truman in the late 40's, and\n  has continued research in cryptology till the present. The NSA is\n  known to be the largest employer of mathematicians in the world,\n  and is also the largest purchaser of computer hardware in the\n  world. Governments in general have always been prime employers of\n  cryptologists. The NSA probably possesses cryptographic expertise many\n  years ahead of the public state of the art, and can undoubtedly break\n  many of the systems used in practice; but for reasons of national\n  security almost all information about the NSA is classified.\n\n  Bamford's book [BAMFD] gives a history of the people and operations of\n  the NSA. The following quote from Massey [MAS88] highlights the\n  difference between public and private research in cryptography:\n\n  ``... if one regards cryptology as the prerogative of government,\n  one accepts that most cryptologic research will be conducted\n  behind closed doors. Without doubt, the number of workers engaged\n  today in such secret research in cryptology far exceeds that of\n  those engaged in open research in cryptology. For only about 10\n  years has there in fact been widespread open research in\n  cryptology. There have been, and will continue to be, conflicts\n  between these two research communities. Open research is common\n  quest for knowledge that depends for its vitality on the open\n  exchange of ideas via conference presentations and publications in\n  scholarly journals. But can a government agency, charged with\n  responsibilities of breaking the ciphers of other nations,\n  countenance the publication of a cipher that it cannot break? Can\n  a researcher in good conscience publish such a cipher that might\n  undermine the effectiveness of his own government's code-breakers?\n  One might argue that publication of a provably-secure cipher would\n  force all governments to behave like Stimson's `gentlemen', but one\n  must be aware that open research in cryptography is fraught with\n  political and ethical considerations of a severity than in most\n  scientific fields. The wonder is not that some conflicts have\n  occurred between government agencies and open researchers in\n  cryptology, but rather that these conflicts (at least those of which\n  we are aware) have been so few and so mild.''\n\n* What are the US export regulations?\n\n  In a nutshell, there are two government agencies which control\n  export of encryption software. One is the Bureau of Export\n  Administration (BXA) in the Department of Commerce, authorized by\n  the Export Administration Regulations (EAR). Another is the Office\n  of Defense Trade Controls (DTC) in the State Department, authorized\n  by the International Traffic in Arms Regulations (ITAR). As a rule\n  of thumb, BXA (which works with COCOM) has less stringent\n  requirements, but DTC (which takes orders from NSA) wants to see\n  everything first and can refuse to transfer jurisdiction to BXA.\n\n  The newsgroup misc.legal.computing carries many interesting\n  discussions on the laws surrounding cryptographic export, what\n  people think about those laws, and many other complex issues which\n  go beyond the scope of technical groups like sci.crypt. Make sure to\n  consult your lawyer before doing anything which will get you thrown in\n  jail; if you are lucky, your lawyer might know a lawyer who has at\n  least heard of the ITAR.\n\n* What is TEMPEST?\n\n  TEMPEST is a standard for electromagnetic shielding for computer\n  equipment. It was created in response to the discovery that\n  information can be read from computer radiation (e.g., from a CRT) at\n  quite a distance and with little effort.\n\n  Needless to say, encryption doesn't do much good if the cleartext\n  is available this way.\n\n* What are the Beale Ciphers, and are they a hoax?\n\n  (Thanks to Jim Gillogly for this information and John King for\n  corrections.)\n\n  The story in a pamphlet by J. B. Ward (1885) goes: Thomas\n  Jefferson Beale and a party of adventurers accumulated a huge mass\n  of treasure and buried it in Bedford County, Virginia, leaving\n  three ciphers with an innkeeper; the ciphers describe the\n  location, contents, and intended beneficiaries of the treasure.\n  Ward gives a decryption of the second cipher (contents) called B2;\n  it was encrypted as a book cipher using the initial letters of the\n  Declaration of Independence (DOI) as key. B1 and B3 are unsolved;\n  many documents have been tried as the key to B1.\n\n  Aficionados can join a group that attempts to solve B1 by various\n  means with an eye toward splitting the treasure:\n\n  The Beale Cypher Association\n  P.O. Box 975\n  Beaver Falls, PA 15010\n\n  You can get the ciphers from the rec.puzzles FAQL by including the\n  line:\n\n  send index\n\n  in a message to netlib@peregrine.com and following the directions.\n  (There are apparently several different versions of the cipher\n  floating around. The correct version is based on the 1885 pamphlet,\n  says John King <kingj@hpcc01.corp.hp.com>.)\n\n  Some believe the story is a hoax. Kruh [KRU88] gives a long list of\n  problems with the story. Gillogly [GIL80] decrypted B1 with the DOI\n  and found some unexpected strings, including ABFDEFGHIIJKLMMNOHPP.\n  Hammer (president of the Beale Cypher Association) agrees that this\n  string couldn't appear by chance, but feels there must be an\n  explanation; Gwyn (sci.crypt expert) is unimpressed with this\n  string.\n\n* What is the American Cryptogram Association, and how do I get in touch?\n\n  The ACA is an organization devoted to cryptography, with an emphasis\n  on cryptanalysis of systems that can be attacked either with\n  pencil-and-paper or computers. Its organ ``The Cryptogram'' includes\n  articles and challenge ciphers. Among the more than 50 cipher types in\n  English and other languages are simple substitution, Playfair,\n  Vigenere, bifid, Bazeries, grille, homophonic, and cryptarithm.\n\n  Dues are $15 for one year (6 issues); more outside of North America;\n  less for students under 18 and seniors. Subscriptions should be sent\n  to ACA Treasurer, 18789 West Hickory St., Mundelein, IL 60060.\n\n* Is RSA patented?\n\n  Yes. The patent number is 4,405,829, filed 12/14/77, granted 9/20/83.\n  For further discussion of this patent, whether it should have been\n  granted, algorithm patents in general, and related legal and moral\n  issues, see comp.patents and misc.legal.computing. For information\n  about the League for Programming Freedom see [FTPPF]. Note that one of\n  the original purposes of comp.patents was to collect questions such as\n  ``should RSA be patented?'', which often flooded sci.crypt and other\n  technical newsgroups, into a more appropriate forum.\n\n* What about the Voynich manuscript?\n\n  nelson@reed.edu (Nelson Minar) says there is a mailing list on the\n  subject.  the address to write to subscribe to the VMS mailing list\n  is: <voynich-request@rand.org>\n\n  the ftp archive is: rand.org:/pub/voynich\n\n  There's all sorts of information about the manuscript itself, of\n  course. A good bibliography can be found on the ftp site. Kahn's\n  \"The Codebreakers\" gives a good introduction.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 182, "properties": {"category": "alt.atheism", "text": "Subject: Re: Gospel Dating\nFrom: p00261@psilink.com (Robert Knowles)\nOrganization: Kupajava, East of Krakatoa\nIn-Reply-To: <1993Apr5.163050.13308@wam.umd.edu>\nNntp-Posting-Host: 127.0.0.1\nX-Mailer: PSILink-DOS (3.3)\nLines: 22\n\n>DATE:   Mon, 5 Apr 1993 16:30:50 GMT\n>FROM:   Stilgar <west@next02cville.wam.umd.edu>\n>\n>In article <kmr4.1422.733983061@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M.  \n>Ryan) writes:\n>> In article <1993Apr5.025924.11361@wam.umd.edu>  \n>west@next02cville.wam.umd.edu (Stilgar) writes:\n>> \n>> >THE ILLIAD IS THE UNDISPUTED WORD OF GOD(tm)    *prove me wrong*\n>> \n>> \tI dispute it.\n>> \n>> \tErgo: by counter-example: you are proven wrong.\n>\n>\tI dispute your counter-example\n>\n>\tErgo: by counter-counter-example: you are wrong and\n>\tI am right so nanny-nanny-boo-boo TBBBBBBBTTTTTTHHHHH\n>\t\t\t8^p\n>\n\nThis looks like a serious case of temporary Islam. \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 183, "properties": {"category": "comp.graphics", "text": "Subject: Need rgb data from saved images\nFrom: <JER114@psuvm.psu.edu>\nOrganization: Penn State University\nLines: 4\n\n  Could someone please help me find a program or figure out how to extract a li\nst of R G B values for each pixel in an image.  I can convert between tga and s\neveral other popular formats but I need the R G B values for use in a program I\n am writing.  Thanks for the help\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 184, "properties": {"category": "talk.religion.misc", "text": "From: david@terminus.ericsson.se (David Bold)\nSubject: No News Is Bad News\nReply-To: david@terminus.ericsson.se\nDistribution: world\nOrganization: Camtec Electronics (Ericsson), Leicester, England\nLines: 20\nNntp-Posting-Host: bangkok\n\nI'm having trouble receiving News at the moment due to an overloaded\nNews server. I think that I can post out reasonably quickly, though.\n\nI'm in a couple of threads at the moment which may be pending replies.\nIf anyone wants a reply from me over something I've posted then I\nsuggest sending an e-mail copy of the point to me so that I can reply by\nNews.\n\nThis is one way to shut me up!!\n\nCheers,\n\nDavid.\n\n---\nOn religion:\n\n\"Oh, where is the sea?\", the fishes cried,\nAs they swam its clearness through.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 185, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Leewaiw@yalevm.YCC.Yale.edu (Spaceman)\nSubject: 512K VRAM for Sale- LC or LCII\nNntp-Posting-Host: branford-college-node.net.yale.edu\nOrganization: Yale U.\nLines: 11\n\nI have a 512k VRAM chip for sale. Worked fine in my LCII and will give 256\ncolors on 640 x 480 size screen. Asking $50. I'll cover postage. Speaking\nof which, does anyone know what the best way to send a chip is. I have a\nplastic antistatic sleeve, but what's the best way to send it? In an\nenvelope? First class? All info appreciated.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nBill \"Spaceman\" Lee\nP.O. Box 532, Yale Station\nNew Haven, CT 06520-0532\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 186, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jvl@idca.tds.philips.nl (Jan van Loenen)\nSubject: Re: Diamond SS24X, Win 3.1, Mouse cursor\nLines: 47\n\ndabl2@nlm.nih.gov (Don A.B. Lindbergh) writes:\n\n>In article <1993Apr15.204845.24939@nlm.nih.gov> dabl2@nlm.nih.gov (Don A.B. Lindbergh) writes:\n>>\n>>Anybody seen mouse cursor distortion running the Diamond 1024x768x256 driver?\n>>Sorry, don't know the version of the driver (no indication in the menus) but it's a recently\n>>delivered Gateway system.  Am going to try the latest drivers from Diamond BBS but wondered\n>>if anyone else had seen this.\n>>\n>As a followup, this is a co-worker's machine.  He has the latest 2.03 drivers.\n>It only happens using the 1024x768x256 driver.  Sometimes it takes a minute\n>or so for the cursor to wig out, but it eventually does in this mode.  I\n>susect something is stepping on memory the video card wants.  I excluded\n>a000-c7ff in the EMM386 line and in system.ini  The problem persisted.\n>Perhaps it is something specific to the Gateway machine or it's components.\n>It is a 66mhz DX/2 Eisa bus with an Ultrastore (24xx?) controller.  Ah well,\n>I was hoping this was some kind of 'known problem' or somebody had seen it\n>before.  Perhaps a call to Gateway is in order, but I do find folks here\n>usually are far more in the know.\n\nI have (had) several problems with the card.\n- Applications crashed when moving the mouse (VGA mode). Fixed by removing\n  the line STACKS=0,0 from config.sys. The default value STACKS=9,256\n  does just fine.\n- Random white pixels all over the screen when moving the mouse, in a\n  256 color graphical mode (the hardware cursor modes). Fixed by turning\n  off the hardware scroll (\"24xmode scrolloff\") before entering the graphics\n  mode. This also fixed the problem of the windowed DOS boxes under windows.\n  With the hardware scroll enabled, applications write garbage outside the\n  window.\n- The screensavers do not remove the cursor in 256 color modes (hardware\n  cursor). I don't know if this is a windows problem or a driver problem.\n  Clearly there should be two types of cursor removing functions: a remove-\n  for-draw, which can be ignored for hardware cursors and a remove-\n  unconditionally. Do other cards with hardware cursors have the same problem?\n- The VESA driver does not support the 640x480x16M TrueColor mode. (Universal\n  VESA drivers do not run at all).\n\n-----------\nDISCLAIMER: Unless otherwise stated, the above comments are entirely my own.\n  _____________            _____\n /            /\\  __    __/    /\\\n/____________/  \\/ /\\  / /____/  \\            Jan van Loenen\n\\________    \\  /_/  \\/_/\\    \\   \\_____      Digital Equipment Corporation\n  /____/ \\    \\ \\ \\  /\\ \\/\\    \\  /    /\\     jvl@idca.tds.philips.nl\n  \\    \\/_\\    \\/\\ \\/_/ /  \\    \\/____/ /     HLDE01::LOENEN_J\n   \\___________/  \\____/    \\_________\\/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 187, "properties": {"category": "sci.med", "text": "From: ron.roth@rose.com (ron roth)\nSubject: Scientific Yawn\nX-Gated-By: Usenet <==> RoseMail Gateway (v1.70)\nOrganization: Rose Media Inc, Toronto, Ontario.\nLines: 94\n\n     Gordon Rubenfeld responds to Ron Roth:\nGR>  ron.roth@rose.com (ron roth) wrote:\nGR>\nGR> RR> Well, Gordon, I look at the RESULTS, not at anyone's *scientific*\nGR> RR> stamp of approval.\nGR>  \nGR>    If you and your patients (followers?) are convinced (as you've written)\nGR>  by your methods of uncontrolled, undocumented, unreported, unsubstantiated,\nGR>  subjective endpoint research - great.  But, why should the rest of us care?\n\n Gordon, even if you are trying to beat this issue to death, you'll \n never get more than a stalemate out of this one!\n I have never tried to force my type of medicine on any of you. Why \n should I?  My patients are happy. I'm happy. You and your peers seem \n to be the only miserable ones around bemoaning the steady loss of \n patients to the alternative camp.\n Just look at Europe. There has been a steady exodus from 'synthetic' \n medicine for over a decade now, and it'll be just a matter of time\n before more people on this continent will abandon their drug and white \n coat worship as well and visit different doctors for different needs.\n\nGR>     You see Ron, the point isn't whether YOU and your patients are\nGR>  convinced that whatever it is you do works; it's whether what you do is\nGR>  MORE effective in similar cases (of whatever it is you think you are\nGR>  treating) than cupping, bloodletting, and placebo.\n\n This is very interesting. I have come exactly to the same conclusions\n but in regards to *conventional* medicine.\n\n You see, I don't just treat little old ladies that wouldn't know any\n different of what is being done, but a bulk of my patients consist of\n teachers, lawyers, judges, nurses, accountants, university graduates,\n and various health practitioners.\n If these people have gotten results with my method after having been\n unsuccessful with yours or their own, I certainly wouldn't lose any \n sleep over whether you or your peers approve of my treatments --- \n let's face it, with all the blunders committed by \"scientific\" MDs \n over the years, I know a lot of people who hold your *scientific* \n method in much lower esteem than they hold mine!\n\nGR>  As far as we know ayurveda = crystals = homeopathy = Ron Roth\nGR>  which may all equal placebo administered with appropriate\nGR>  trappings...\n     \n  Sorry, but I'm not familiar OR interested with what appears to be \n 'NEW AGE' medicine (ayurveda, crystals), with the exception of homeo-\n pathy, of which I took a course. But Gordon, you already knew that -\n you just wanted to make my system look a bit more far out, right?\n \n I use homeopathy very little, since my cellular test (EMR) is hard to\n beat for accuracy and minerals are more predictable, while homeopathy\n does have a problem with reliability, especially in acute conditions.\n An exception perhaps are homeopathic nosodes which act fairly quickly\n and are more dependable in certain viral or bacterial situations. \n\nGR>  My colleagues and I spend hours debating study design\nGR>  and results, even of therapies currently accepted as \"standard\".\nGR>  As good (well, adequate) scientists, we are prepared, *if \nGR>  presented with appropriate data*, to abandon our most deeply held \nGR>  beliefs in favor of new ideas.\n\n I have met the challenges of hundreds of sceptics by verifying the\n accuracy of measuring their mineral status to their total satisfac-\n tion --- in other words EVERYONE INVOLVED is happy!\n If you were to cook a meal, would you worry over whether EVERYONE \n in this world would find it to their liking, or only those that end \n up eating it?\n Since I have financed every research project that I have undertaken \n entirely myself, I don't need to follow any of your rules or guide-\n lines to satisfy any aspects of a grant application, which YOU may \n have to; neither am I concerned of whether or not my study designs \n meet your or anyone else's criteria or acceptance. \n\nGR>    Sorry Ron, if conviction were the ruler of truth, a flat Earth would\nGR>  still be the center of the Universe and epilepsy a curse of the gods.\n                         \n I think there would be more justification for an uneducated person\n growing up in an uncivilized environment to believe in a flat earth,\n than for a civilized, well educated and scientifically trained mind\n to follow the doctrine of evolution.\n Genetic engineering of course is now the final frontier to show God\n how it is (properly) done. Now we've become capable of creating our\n own paradise and give disease (and God) the boot, right?\n\n But just before we get rid of Him for good, perhaps He could leave us\n some pointers on how to solve a couple of tiny problems, such as war, \n poverty, racism, crime, riots, substance abuse... And one last thing, \n could He also give us a hint on how to control natural disasters, the\n weather, and last, but not least --- peace?\n\n   --Ron--\n---\n   RoseReader 2.00  P003228:  The Lab called: Your brain is ready.\n   RoseMail 2.10 : Usenet: Rose Media - Hamilton (416) 575-5363\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 188, "properties": {"category": "sci.electronics", "text": "From: tod@cco.caltech.edu (Tod Edward Kurt)\nSubject: data pods (10248B) for HP logic analyzer (1615A)?!?\nOrganization: California Institute of Technology, Pasadena\nLines: 11\nNNTP-Posting-Host: sandman.caltech.edu\nKeywords: logic analyzer HP\n\nAnyone out there in netland have a spare data pod or two from an old \n1615A Hewlett Packard logic analyzer?  If you do, I'd like to buy it off\nof you.  The pod's part number is 10248B.\n\nAs a side note, anyone know of any good surplus dealer or other organization\nthat would carry wayward logic analzer pods?\n\n\t\t\t\tThanks a byte,\n\t\t\t\t\t\tTod\n\t\t\t\t\t\t\ttod@cco.caltech.edu\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 189, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: Utility for updating Win.ini and system.ini\nFrom: Stephen.Gibson@sonoma.edu <Stephen Gibson>\nDistribution: world\nOrganization: Sonoma State University\nNntp-Posting-Host: computer_ctr.sonoma.edu\nX-UserAgent: Nuntius v1.1.1d1\nLines: 32\n\n\n\nIn article <1993Apr20.220556.19652@news.uit.no> Svein Pedersen,\nsp@odin.fna.no writes:\n>Sorry, I did`nt tell exactly what I need.\n>\n>I need a utility for automatic updating (deleting, adding, changing) of\n*.ini \n>files for Windows. \n>The program should run from Dos batchfile or the program run a script\nunder Windows.\n>\n>I will use the utility for updating the win.ini (and other files) on\nmeny PC`s.  \n>\n>Do I find it on any FTP host?\n>\n> Svein\n>\n\nIf you are managing PC's on a Novell network, get the network management\ntools provided by either Sabre Software or Automated Design Systems. \nAmong the many features, you'll find utilities that can help you to\nmanage .INI files stored on users' workstations or home directories. \nThis is commercial software and well worth the money.  To date, I have\nnot found ANYTHING available via FTP that could compare.  Reply to the\naddress in my .SIG for more info.\n----------------------------------\nStephen Gibson, System Support Specialist\nSonoma State University\neMAIL:\tgibsonst@sonoma.edu\n\t\t\t\t\t\tStephen.Gibson@sonoma.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 190, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nDistribution: world,public\nOrganization: Cookamunga Tourist Bureau\nLines: 19\n\nIn article <115437@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) wrote:\n> As I have stated on a parallel thread, I am not an anarchist, nor is\n> Islam anarchist. Therefore the UK should have control over itself. \n> However, this does not change the fact that it is possible for citizens\n> of the UK residing within the UK to be in violation of Islamic law.\n\nThis is an interesting notion -- and one I'm scared of. In my\ncase I'm a Finnish citizen, I live in USA, and I have to conform\nto the US laws. However, the Finnish government is not actively\nchecking out what I'm doing in this country, in other words checking\nout if I conform to the Finnish laws.\n\nHowever, Islamic law seems to be a 'curse' that is following you\neverywhere in the world. Shades of 1984, eh?\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 191, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ffritze@hpwad.WAD.HP.COM (Fromut Fritze)\nSubject: Re: Anyone know stacker's email address?\nOrganization: Hewlett-Packard Waldbronn, Germany\nLines: 15\n\n> Does anybody know if stacker has a e-mail address and if\n> so, what it is?  I know they have a BBS and something on\n> compuserve, but I'm hoping someone know's their e-mail\n> address.\n\nJohn White from STAC Electronics can be reached at compuserv as 72370,1005.\nFor me 72370.1005@compuserve.com would as email address work from Internet.\n\n------------------------------------------------------------------------------\ninternet: ffritze@hpwbe007.wad.hp.com\nphone:    Germany 7243 602296\naddress:  Fromut FRITZE, Waldbronn Analytic Division R&D,\n\t  Hewlett Packard Str, D 7517 Waldbronn 2, Germany\n------------------------------------------------------------------------------\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 192, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: Express Access Online Communications USA\nLines: 23\nDistribution: world\nNNTP-Posting-Host: access.digex.net\n\nIn article <6APR199314571378@kelvin.jpl.nasa.gov> baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n|Comet Gehrels 3, which was discovered in 1977, was determined to have\n|been in a temporary Jovian orbit from 1970 to 1973.  Comet Shoemaker-Levy 1993e\n|may remain in orbit around Jupiter long enough to allow Galileo to\n|make some closeup observations.  The orbital trajectory for Comet\n|Shoemaker-Levy is still being determined.\na\n\nWhat about positional uncertainties in S-L 1993e?   I assume we know where\nand what Galileo is doing within a few meters.   But without the\nHGA,  don't we have to have some pretty good ideas, of where to look\nbefore imaging?  If the HGA was working,  they could slew around\nin near real time (Less speed of light delay).  But when they were\nimaging toutatis????  didn't someone have to get lucky on a guess to\nfind the first images?   \n\nAlso, I imagine S-L 1993e will be mostly a visual image.  so how will\nthat affect the other imaging missions.  with the LGA,  there is a real\ntight allocation of bandwidth.   It may be premature to hope for answers,\nbut I thought i'd throw it on the floor.\n\npat\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.011+0000", "event": "documents", "entityId": 193, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Blindsight\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 18\n\nIn article <werner-240393161954@tol7mac15.soe.berkeley.edu> werner@soe.berkeley.edu (John Werner) writes:\n>In article <19213@pitt.UUCP>, geb@cs.pitt.edu (Gordon Banks) wrote:\n>> \n>> Explain.  I thought there were 3 types of cones, equivalent to RGB.\n>\n>You're basically right, but I think there are just 2 types.  One is\n>sensitive to red and green, and the other is sensitive to blue and yellow. \n>This is why the two most common kinds of color-blindness are red-green and\n>blue-yellow.\n>\n\nYes, I remember that now.  Well, in that case, the cones are indeed\ncolor sensitive, contrary to what the original respondent had claimed.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 194, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jk@tools.de (Juergen Keil)\nSubject: Re: Sun CD-ROM on PCs???\nOrganization: TooLs GmbH, Bonn, Germany\nLines: 15\n\t<JK.93Apr14173040@leo.tools.de>\n\t<1993Apr14.195220.21701@nb.rockwell.com>\n\t<1993Apr15.040231.17561@c3p0.novell.de>\nNNTP-Posting-Host: leo.tools.de\nIn-reply-to: pbartok@c3p0.novell.de's message of Thu, 15 Apr 1993 04:02:31 GMT\n\nIn article <1993Apr15.040231.17561@c3p0.novell.de> pbartok@c3p0.novell.de (Peter D. Bartok) writes:\n\n>>  Great! But don't let your effort and talent be un-noticed.\n>>  Put the program on the net, upload it to some anonymous ftp\n>>  sites. So people (at least me) can have it and appreciate it.\n>\n>   Please put it into ftp.novell.de (193.97.1.1) pub/incoming/pc\n\nOK, the small programme that can be used to switch a SunCD drive into\n2048 bytes/block mode for use with MSDOS/Adaptec/APSI it now available\nby 'ftp' from\n\n\tftp.novell.de (193.97.1.1) pub/pc/adaptec/cdblksize.zip\n--\nJuergen Keil          jk@tools.de ...!{uunet,mcsun}!unido!tools!jk\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 195, "properties": {"category": "sci.space", "text": "From: hoover@mathematik.uni-bielefeld.de (Uwe Schuerkamp)\nSubject: Re: Vandalizing the sky.\nNntp-Posting-Host: math30.mathematik.uni-bielefeld.de\nOrganization: Math Madhouse Bielefeld, Germany\nLines: 26\n\nIn article <C5t05K.DB6@research.canon.oz.au> enzo@research.canon.oz.au \n(Enzo Liguori) writes:\n\n> hideous vision of the future.  Observers were\n>startled this spring when a NASA launch vehicle arrived at the\n>pad with \"SCHWARZENEGGER\" painted in huge block letters on the\n\nThis is ok in my opinion as long as the stuff *returns to earth*.\n\n>What do you think of this revolting and hideous attempt to vandalize\n>the night sky? It is not even April 1 anymore.\n\nIf this turns out to be true, it's time to get seriously active in\nterrorism. This is unbelievable! Who do those people think they are,\nselling every bit that promises to make money? I guess we really\ndeserve being wiped out by uv radiation, folks. \"Stupidity wins\". I\nguess that's true, and if only by pure numbers.\n\n\tAnother depressed planetary citizen,\n\thoover\n\n\n\n-- \nUwe \"Hoover\" Schuerkamp \t\t     hoover@mathematik.uni-bielefeld.de\n\t\tClear Skies --- Fight light pollution!\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 196, "properties": {"category": "rec.motorcycles", "text": "From: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nSubject: where to put your helmet\nReply-To: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nDistribution: world\nOrganization: Computer Dynamics-Vancouver B.C.-(604)986-9937 (604)255-9937\nLines: 46\n\nCB>From: behanna@syl.nj.nec.com (Chris BeHanna)\n\nCB>>maven@mavenry.altcit.eskimo.com (Norman Hamer) writes:\nCB>>|>\nCB>>|>  Grf. Dropped my Shoei RF-200 off the seat of my bike while trying to\nCB>>|> rock\nCB>>|> it onto it's centerstand, chipped the heck out of the paint on it...\n\nCB>        Do I have to be the one to say it?\n\nCB>        DON'T BE SO STUPID AS TO LEAVE YOUR HELMET ON THE SEAT WHERE IT CAN\nCB>        FALL DOWN AND GO BOOM!\n\nCB>        HELMETS GO ON THE GROUND, ON A TABLE, ON A CHAIR, ON A SHELF, OR ON\nCB>        ANY OTHER SURFACE THAT IS LARGE ENOUGH TO SUPPORT THEM SO THAT THEY\nCB>        WILL NOT EASILY BE KNOCKED DOWN.\n\n\nAnother good place for your helmet is your mirror (!). I kid you not. If\nyou own a typical standard or other bike with fairly average mirrors\nthat screw into your handlebars, your helmet should fit over your mirror\nand be fairly stable. I doubt I have to mention it, but this trick isn't\nquite so smart on a GoldWing, CBR600, any GSXR, or any bike with\nfairing-mounted mirrors.\n\nI was a little surprised, though, to find that you had your helmet on\nyour seat while you were centerstanding your bike. I usually leave my\nhelmet on until my bike is parked, if for no other reason than I\nwouldn't want my helmet to be on any surface that I was about to start\ntilting and jerking . . .\n\nRyan Cousinetc.|1982 Yamaha Vision XZ550 -Black Pig of Inverness|Live to Ride\nKotRB          |1958 AJS 500 C/S -King Rat                      |to Work to\nDoD# 0863      |I'd be a squid if I could afford the bike...    |Flame to\nryan.cousineau@compdyn.questor.org  |   Vancouver, BC, Canada   |Live . . .\n\nI saw the quote below on a pair of Nankai race-replica leathers. I think\nthis sort of phrase is typically known as \"Japlish.\"\n\n * SLMR 2.1a * \"Drive Agressively  Rash Magnificently\" -Nankai Leathers\n                                                                                        \n----\n+===============================================================+\n|COMPUTER DYNAMICS BBS    604-255-9937(HST)    604-986-9937(V32)|\n|Vancouver, BC, Canada -  Easy Access, Low Rates, Friendly Sysop|\n+===============================================================+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 197, "properties": {"category": "comp.graphics", "text": "From: aad@scr.siemens.com (Anthony A. Datri)\nSubject: Re: Nice gif code\nNntp-Posting-Host: lovecraft.siemens.com\nOrganization: Siemens Weyland-Yutani\nLines: 7\n\n>There is a thing called xgif\n\nxgif is the grandfather of XV.\n\n-- \n\n======================================================================8--<\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 198, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ehung@ampex.com (Eric Hung)\nSubject: Re: COMMENTS ==> VIDEO BLASTER (Creative Labs)\nNntp-Posting-Host: dct3\nOrganization: Ampex Corporation, Redwood City CA\nLines: 41\n\nIn article <794@wpsun4.UUCP> mikgr@wpsun4.UUCP (Michael Grant) writes:\n>In article <1993Apr14.062219.11573@ultb.isc.rit.edu>, mej0381@ritvax.isc.rit.edu writes:\n>> >In <115080@bu.edu> heiser@acs2.bu.edu (Bill Heiser) writes:\n>> > \n>> >>In article <C4rDy0.Fw9@chinet.chi.il.us> randy@chinet.chi.il.us (Randy Suess) w\n>> >rites:\n>> >>>>The video blaster doesn't work with the ATI GRaphics Ultra Pro, doesn't work\n>> >>>>with >15M system RAM.\n>> > \n>> >>Are you serious?  So I can't use a Video Blaster in my 16mb 486/33?\n>> >>What are the alternatives (other than removing memory?)\n>> > \n>> >Get a better one.  Hows about the Win/TV thing?\n>> >--\n>> >The Wailer at the Gates of Dawn              | banshee@cats.UCSC.EDU       |\n>> >Just who ARE you calling a FROOFROO Head?    |                             |\n>> >oD#0667  \"Just a friend of the beast.\"      | banshee@ucscb.UCSC.EDU      |\n>> >2,3,5,7,13,17,19,31,61,89,107,127,521,607....| banshee@ucscb.BITNET        |\n>>  \n>> No good. I perfer WatchIT TV. It can run in DOS and Windows. Win/Tv only run in \n>> windows. Sorry....\n>>  \n>> --\n>Still no good.  WatchIT TV will not work on a with local bus video.\n>It will not work in any high reolution modes either.  The people who\n>make the card assure me that they will have a card available in June \n>that supports both local-bus and hi-res.  BTW does anyone know the\n>name of the company who makes watchit tv?  Phone #?  BBS? Internet?\n>\n>Thanks\n>\n>Michael Grant\n>(mikgr@wordperfect.com) or\n>(mikgr@wpsun4.uunet.uu.net)\n>\n\nI have a promovie spectrum, it seems to work very nicely with Video for\nWindows. With my setup (386-25, 17 ms HD, PAS-16, and orchid F VA), the\nboard could handle up to 15 frame/s. \n\nEric.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 199, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: Drinking and Riding\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 28\n\n>Norman Hamer (maven@eskimo.com) wrote:\n> What is a general rule of thumb for sobriety and cycling?  A couple of hours\n> after you \"feel\" sober, or what?  Should I just work with \"If I drink \n> tonight, I don't ride until tomorrow\"?\n\nI generally find that after two or three decent hits of nitrous, my riding\nimproves enormously.  Drinking is silly, your breath smells, it costs lots\nof money and the pigs can detect it with their machines.  NO2 works for me,\ntry it.\n\n\nNick (the like wow, um, far out, er, Biker)   DoD 1069   Concise um errr....\n\nM'like um, er Lud.\n\n  ___\t___   ___   ___\n {\"_\"} {\"_\"} {\"_\"} {\"_\"}\t  Nick Pettefar, Contractor@Large.\n  ' `\t` '   ' `   ` '\t\t  Currently incarcerated at BNR,\n  ___\t___   ___   ___\t\t  Maidenhead, The United Kingdom.\n |\"_\"| |\"_\"| |\"_\"| |\"_\"|\t  npet@bnr.ca  '86 BMW K100RS \"Kay\"\n  ` '\t' `  .` '   ' `\t\t  Pres. PBWASOH(UK),  BS 0002\n\t      . \n   _ _\t     . \t_  __ .\n  / ~ ~~\\   |  / ~~  \\\n |_______|    [_______|\n\t   _:_\n\t  |___|\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 200, "properties": {"category": "rec.autos", "text": "From: dduff@col.hp.com (Dave Duff)\nSubject: Re: Did US drive on the left?\nArticle-I.D.: hp-col.1pqtq1INNj5c\nOrganization: HP Colorado Springs Division\nLines: 4\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\nLeft hand steering wheel placement was not standard until the 20's in the\nUS. Driving on the right has been standard since standards came into being.\nInterestingly, Chrysler has just begun building right hand drive cars again\nfor export to Japan.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 201, "properties": {"category": "sci.med", "text": "From: jer@prefect.cc.bellcore.com (rathmann,janice e)\nSubject: Re: Sinus vs. Migraine (was Re: Sinus Endoscopy)\nOrganization: Bellcore, Livingston, NJ\nSummary: Headaches and analgesics\nLines: 95\n\n\nI noticed several years ago that when I took analgesics fairly regularly,\n(motrin at the time), I seemed to get a lot of migraines.  But had\nforgotten about that until I started reading some of the posts here.\nI generally don't take NSAIDS or Tylenol for headaches, because I've\nfound them to be ineffective.  However, I have two other pain sources\nthat force me to take NSAIDS (currently Naprosyn).  First, is some\npelvic pain that I get at the beginning of my period, and then much\nworse at midcycle.  I have had surgery for endometriosis in the past\n(~12 years ago), so the Drs. tell me that my pain is probably due\nto the endometriosis coming back.  I've tried Synarel, it reduced\nthe pain while I took it (3 mos), but the pain returned immediately\nafter I stopped.  Three doctors have suggested hysterectomy as the\nonly \"real solution\" to my problem.  Although I don't expect to have\nany more children, I don't like the idea of having my uterus and\none remaining ovary removed (the first ovary was removed when I had\nthe surgery for endometriosis).  One of the Drs that suggested\nI get a hysterectomy is an expert in laser surgery, but perhaps thinks\nthat type of procedure is only worthwhile on women who still plan\nto have children.  So basically all I'm left with is toughing out\nthe pain.  This would be impossible without Naprosyn (or something\nsimilar - but not aspirin, that doesn't work, and Motrin gave me\nhorrible gastritis a few years ago, so I'm through with it).  In\nfact, Naprosyn works very well at eliminating the pain if I take\nit regularly as I did when I had severe back pain (and pain in both \nlegs) as I'll discuss in a moment.  Generally though, I wait until\nI have the pain before I take the Naprosyn, but then it takes\nseveral hours for it reduce the pain (it's actually quite effective\nat reducing the pain, it just takes quite a while).  In the meantime\nI'm frequently in severe pain.\n\nThe other pain source I have is chronic lower back pain resulting in\nbilateral radiculopathy.  I've had MRIs, Xrays, CT scan, and EMGs\n(I've had 2 of them, and don't intend to ever do that again) with\nnerve conduction tests.  The tests have not been conclusive as to\nwhat is causing my back and leg pain.  The MRI reports both say I have\nseveral bulging, degeneratig disks, and from the Xrays (and MRI, I think)\nit is apparent that I have arthritis.  The reading on the CT scan\nwas that there are two herniations (L3-L4, and L4-L5), but others\nhav looked at the films and concluded that there are no herniations.\nThe second EMG and nerve conduction studies shows significant denervation\ncompared to the first EMG.  Oh yeah, I had some other horrible test,\ncalled something like Somatic Evoked Response which showed that the\n\"internal nerves\" are working fine.   Anyway, the bottom line is that\nI sometimes have severe pain in both legs and back pain.  The back pain\nis there all the time, but I can live with it.  When the leg pain is there,\nI need some analgesic/anti-inflammatory medication to reduce the pain\nto a level where I can work.  So I took Naprosyn regulary for 6-9\nmonths (every time I tried to stop the leg pain got worse, so I'd \nalways resume).  Since last November I have taken it much less frequently,\nand primarily for the pelvic pain.  I have been going to physical\ntherapy for the last 8 months (2-3 times a week).  After the first month\nor so, my therapist put me on pelvic traction (she had tried it earlier,\nbut it had caused a lot of pain in my back, this time she tried it at\na lower weight).  After a month or two, the pain in my legs began going\naway (but the traction aways caused discomfort in my lower back, which\ncould be reduced with ultrasound and massage).  So now, I don't have\nnearly as much pain in my legs, in fact my therapist took me off\ntraction about 2 weeks ago.\n\nGetting back to my original reason for this post...  Even if I can avoid\ntaking analgesic for headaches, I really can't avoid them entirely because\nI have other pain sources, that \"force\" me to use them (Oh, I forgot\nto mention that it has been suggested to me that I have back surgery,\nbut I'm avoiding that too).  I find the migraines difficult to deal with,\noccassionally I have to take off work, but usually I can work, but at\na reduced capacity (I'm a systems engineer and do a lot of reading\nand writing).  When the pelvic pain is bad, I can't concentrate much,\nI usually end up jumping out of my chair every few minutes, because\nthe pain is so bothersome.  When the pain in my back is bad, it can\ncause severe burning in both legs, shooting pains in my legs, electric\nshock type of pain in my feet and toes, and basically when it gets bad\nI can't really sit at all.  Then I end up spending most of my time home\nand in bed.  So even if the analgesics contribute to the migraines, the\nmigraines are more tolerable than the other pain sources.  I get a lot\nof migraines, an average of 3 to 4 a month, which last 1-3 days.\nI've taken cafergot (the first time the caffiene really got to me so\nI reduced the dosage), but I don't like the side effects (if I take\nmore than two I get diahrea).  If I get a very bad headache, I will\neventually take the cafergot.  My neurologist wasn't very helpful when\nI told him my problems with cafergot, he said that when sumatriptan\nbecomes available, I should try that.  I've tried several other medications\n(fiornal, midrin, fiornal with codeine, tegretol, and inderal) but\nthey either didn't work, or I couldn't tolerate them.  So what can I do?\nMy doctor's seem to be satisfied with me just trying to tolerate the\npain, which I agree with most of the time, but not when I have a lot of\npain.  I've had some bad experiences with surgery (my heart stopped\nonce from the anesthesia - I was told that it was likely the\nsuccinylcholine), and I've already had surgery several times.\n\nAnyway, the point of what I'm saying is that even if analgesics can contribute\nto migraines, some people NEED to take them to tolerate other pain.\n\nJanice Rathmann\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 202, "properties": {"category": "rec.autos", "text": "From: hhm@cbnewsd.cb.att.com (herschel.h.mayo)\nSubject: Re: BRAINDEAD Drivers Who Don't Look Ahead--\nOrganization: Chicago Home for the Morally Challenged\nDistribution: usa\nKeywords: bad drivers\nLines: 29\n\nIn article <zdem0a.734809554@hgo7>, zdem0a@hgo7.hou.amoco.com (Donna Martz) writes:\n\n> >So, I block the would-be passers. Not only for my own good , \n>      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> >but theirs as well even though they are often too stupid to realize it.\n>  !!! ^^^^^^^^^^^^^^ !!!\n> >As a rule of philosophy, I don't feel particularly sorry when somebody gets \n> >offed by his own stupidity, but It does worry me when some idiot is in a \n> >position to cash in my chips, too.\n> >                                                           H.H. Mayo\n> \n> Well, Aren't we just Mr. Altruism himself!!   Just what the world needs,\n> another frustrated self appointed traffic cop.\n\n\nWell, if you want to stick the nose of your car up the ass of a 50 foot semi, I\nsuppose it's your neck, however, I'm not going to let you kill me in the bargain.\nIf you get frustrated by somebody delaying your inevitable death due to less that\nwise driving practices, then TOUGH!!!\n\n\n\n\n\n\"Thank God for the Fourth of July, for it yearly rids the earth of a considerable\nload of fools\"\n\n                                                              Mark Twain\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 203, "properties": {"category": "rec.sport.hockey", "text": "From: jca2@cec1.wustl.edu (Joseph Charles Achkar)\nSubject: Re: the hawks WILL return to the finals!!!!!\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nLines: 22\n\nIn article <1qk0k4$itg@uxa.ecn.bgu.edu> cubrj@uxa.ecn.bgu.edu (Brian Johnson) writes:\n>Well now that the hawks have won the division the road is a little\n>easier for the playoffs. Let toronto and detroit beat the hell out of\n>each other while Chicago sweeps st.louis. That just makes it easier in\n                  ^^^^^^^^^^^^^^^^^^^^^^^^\n>brian\n>\n    Don't be so sure, the Blues played the Hawks pretty well this season,\nand won twice at the Stadium. The Blues will give the Hawks a hard time.\nThis series is one of the best first round matchups, could go either way.\nThe Hawks will probably prevail in seven games.\n\n  %*%*%*%**%*%%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*\n  *   __  ______________         ____________________________________    % \n  %   \\ \\_)____________/         A L L E Z   L E S   B L U E S  ! ! !    * \n  *    \\    __________/          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    % \n  %     \\    ________/                                                   *\n  *      \\   _______/                  Joe Ashkar                        % \n  %       \\  \\                         Contact for the Blues             *\n  *        \\  \\  SAINT LOUIS           jca2@cec1.wustl.edu               % \n  %        (___)             BLUES                                       * \n  *%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*% \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 204, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: MGBs and the real world\nArticle-I.D.: cactus.1993Apr6.035544.16865\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 24\n\nIn article <1993Apr5.181056.29411@mks.com> mike@mks.com (Mike Brookbank) writes:\n>My sister has an MGB.  She has one from the last year they were produced\n>(1978? 1979?).  Its in very good shape.  I've been bugging her for years\n>about selling it.  I've said over and over that she should sell it\n>before the car is worthless while she maintains that the car may\n>actually be increasing in value as a result of its limited availability.\n>\n\nGrass Roots Motorsport [3/93] has a long article about MG/B's this month.\nAs far as collectivity/speculation is concerned they think it is a \nwaste of time, especially the later rubber bumpered models are the least\ndesirable, a 1962 original model the most. The reasons for its low\nvalue are easy availability and the fact that it just was not a very good\ncar.\n\nCraig\n>Which one of us is right?  Are there MGB affectionados out there who are\n>still willing to pay $6K to 8K for an old MG?  Are there a lot out in the \n>market?\n>-- \n>------------------------------------------------------------------------------\n>Mike Brookbank,                 |MKS| 35 King St. North       mike@mks.com \n>Director, InterOpen Sales,      |MKT| Waterloo, Ontario      (519)884-2251 \n>Mortice Kern Systems Inc.       |MKS| Canada, N2J 2W9    fax (519)884-8861\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 205, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: ** Need Advice ** (about Tech Works etc.)\nFrom: choo@ecs.umass.edu\nLines: 19\n\n\n\nGreetings!!\n\n\tI planning to upgrade my Mac IIsi:\n\n\t\t(1) from the present 5Megs to 17Megs;\n\tand\t(2) add a Math-Coprocessor.\n\n\tTechnology Works, of Austin (Texas) comes quite highly recommended by \nsome Mac magazines.  I was just wonderring if anyone could share with me \nanything about Tech Works (both good and bad experiences); or give any advice\nabout other mail-order companies that I may consider.\n\n\tYour reply would be very much appreciated.  Thanks in advance.\n\nSincerely\nPeter Choo\nchoo@sigma.ecs.umass.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 206, "properties": {"category": "sci.electronics", "text": "From: ianmc@spartan.ac.BrockU.CA (Ian McPherson)\nSubject: Re: chip / chipset for code 39 barcode?\nOrganization: Brock University, St. Catharines Ontario\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 26\n\nLLBGB@utxdp.dp.utexas.edu wrote:\n: Distribution: usa\n: Reply-To: lihan@ccwf.cc.utexas.edu\n\n: While I'm on the net bugging everyone, is there such a thing as a chip\n: or chipset to decode Code 39 barcode?  I ask for a couple of reasons --\n: mainly I want a reasonably compact encoding scheme to write information\n: on magstripe cards and Code 39 appears to be about right.  (If the 'right'\n: way to do it is something else, and it's reasonably easy, can someone let\n: me know?)\n\n: I might not get a chance to reply too quickly to this or my earlier post,\n: but I'll get to them within a couple days, I think ..\n\n: thanx everyone!  <BGB>  lihan@ccwf.cc.utexas.edu\n\nHewlett Packard has a series of barcode decoder ICs HBCR-1800, HBCR-2000,\nand HBCR-2010 and they support 3of9  extended 3of9  interleaved 2of5  \nand UPC codes. The 2000 and 2010 pieces add codabar and code 128.\n\nThese chips support HP's barcode wands and slot readers.\n\nAn 1800 + a HEDS-3050 wand run about $150 CDN .\n\nIan.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 207, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: seizures ( infantile spasms )\nOrganization: University of Wisconsin Eau Claire\nLines: 19\n\n[reply to dufault@lftfld.enet.dec.com (MD)]\n \n>After many metabolic tests, body structure tests, and infection/virus\n>tests the doctors still do not know quite what type of siezures he is\n>having (although they do have alot of evidence that it is now pointing\n>to infantile spasms ).  This is where we stand right now....As I know\n>now, these particular types of disorders are still not really well\n>understood by the medical community.\n \nInfantile spasms have been well understood for quite some time now.  You\nare seeing a pediatric neurologist, aren't you?  If not, I strongly\nrecommend it.  There is a new anticonvulsant about to be released called\nfelbamate which may be particularly helpful for infantile spasms.  As\nfor learning more about seizures, ask your doctor or his nurse about a\nlocal support group.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 208, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jroberts@ux4.cso.uiuc.edu (Robertson)\nSubject: ATI ultra pro Drivers?\nOrganization: University of Illinois at Urbana\nLines: 4\n\nDoes anybody know the FTP site with the latest Windows drivers for the ATI\nGUP?\nThanks\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 209, "properties": {"category": "sci.med", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: Re: Is MSG sensitivity superstition?\nNntp-Posting-Host: wind.bellcore.com\nReply-To: jchen@ctt.bellcore.com\nOrganization: Bell Communications Research\nLines: 31\n\nIn article <1qi2h1INNr3o@roundup.crhc.uiuc.edu>, mary@uicsl.csl.uiuc.edu (Mary E. Allison) writes:\n|> \n|> Two different Tuesdays (two weeks apart we used the same day of the\n|> week just for consistancies sake) we ordered food from the local \n|> Chinese take out - same exact food except ONE of the days we had them\n|> hold the MSG.  I did not know which time the food was ordered without\n|> the MSG but one time I had the reaction and one time I did not.  \n|> \n|> NOW - you can TRY to tell me that it wasn't \"scientific\" enough and\n|> that I have not PROVEN beyond the shadow of a doubt that I have a\n|> reaction to MSG - but it was proof enough for ME and I'll have you\n|> know that I do NOT wish to get sick from eating food thank you very\n|> much.  \n|> \nIf you could not tell which one had MSG, why restaurants bother to\nuse it at all? \n\nIf you can taste the difference, psychological reaction might play a role.\n\nThe fact is, MSG is part of natural substance. Everyone, I mean EVERYONE,\nconsumes certain amount of MSG every day through regular diet without\nthe synthesized MSG additive.\n\nChinese, and many other Asians (Japanese, Koreans, etc) have used\nMSG as flavor enhancer for two thousand years. Do you believe that\nthey knew how to make MSG from chemical processes? Not. They just\nextracted it from natural food such sea food and meat broth.\n\nBaring MSG is just like baring sugar which many people react to.\n\nJason Chen\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 210, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kssimon@silver.ucs.indiana.edu (kenneth steven simon)\nSubject: Re: Powerbook & Duo Batteries\nSummary: I goofed!\nArticle-I.D.: usenet.C51so0.BDq\nDistribution: na\nOrganization: Indiana University\nLines: 31\nNntp-Posting-Host: silver.ucs.indiana.edu\n\n\n ronaldw@sco.COM (Ronald A. Wong) writes:\n\n ]In article <C4vr7z.EB0@usenet.ucs.indiana.edu>,\n ]kssimon@silver.ucs.indiana.edu (kenneth steven simon) wrote:\n> \n> The program PowerStrip2.0, which is freeware, has an option called\n> \"Quick Discharge.\"  You can find it on the Mac archives, probably\n> sumex-aim.stanford.edu or mac.archive.umich.edu.\n\n\n   >>Is it a hidden option?  I'm using PowerStrip 2.0 (by Mr. Caputo) right now\n   >>and can't find any quick discharge option.  It definitely is on\n   >>mac.archive.umich.edu 'cause I submitted it! \n\n My apologies!  I goofed.  The \"quick discharge\" option is part of the\nConnectix PowerBook Utilities package (CPU).  I installed it the same\nday as PowerStrip, and didn't pay enough attention.  ;)  Anyway, the\noption does exist for those of you who buy CPU. \n\n\n---------------\n\"Whadda goofball!\"\n\"Sheddap.  You're not even the real signature file.\"\n---------------\n\n-- \n-----------------------------------------------------------------\nKenneth Simon               Dept of Sociology, Indiana University\nInternet: KSSIMON@INDIANA.EDU              Bitnet: KSSIMON@IUBACS \n-----------------------------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 211, "properties": {"category": "comp.windows.x", "text": "From: mahan@TGV.COM (Patrick L. Mahan)\nSubject: Re: Is it just me, or is this newsgroup dead?\nOrganization: The Internet\nLines: 24\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu, rlm@helen.surfcty.com\n\n#\n# I've gotten very few posts on this group in the last couple days.  (I\n# recently added it to my feed list.)  Is it just me, or is this group\n# near death?\n#\n\nSeen from the mailing list side, I'm getting about the right amount of\ntraffic.\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 212, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: ISLAM: a clearer view\nLines: 25\nOrganization: Walla Walla College\nLines: 25\n\nIn article <16BAFC876.I3150101@dbstu1.rz.tu-bs.de> I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n>From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\n>Subject: Re: ISLAM: a clearer view\n>Date: Tue, 13 Apr 1993 13:15:18 GMT\n>In article <healta.60.734567658@saturn.wwc.edu>\n>healta@saturn.wwc.edu (TAMMY R HEALY) writes:\n> \n>>>Sorry, it is generally accepted that the rise of the inquisition is\n>>>the reason why torture was introduced outside the Romanic countries\n>>>at the end of the Middle Ages. In other words, the Holy Mother Church\n>>>which is lead infallibly by the Holy Ghost has spread it.\n>>\n>>The Roman Catholic Church claims to be lead by the \"infallable\" pope.\n>>That's why she (the RC Church) has done so many wicked things to Xtians and\n>>non-believers alike.\n> \n> \n>The rationale that the pope speaking ex cathedra is infallible is based\n>on the claim above. The dogma about the pope is of Jesuitic origin and\n>has not been been accepted before the mid of the last century.\n>   Benedikt\n\nYou're right.  Thanks for enlightening me.\n\nTammy\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 213, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: guyd@austin.ibm.com (Guy Dawson)\nSubject: RE: 80486DX-50 vs 80586DX2-50\nOriginator: guyd@pal500.austin.ibm.com\nOrganization: IBM Austin\nLines: 38\n\n\nIn article <1993Apr06.121342.25130@kub.nl>, volkert@kub.nl (Volkert) writes:\n> -------------------------------------------------------------------------\n> Anonymous,\n> \n> I saw a posting about the choice between 80486DX-50 and a 80486DX2-50.\n> I was wondering: although a DX-50 is faster because of the path to it's\n> external cache, shouldn't the choice be the DX2-50 as that one can be\n> made to work properly with a local-bus? I mean, cache speed is one thing,\n> but all your speed will be blocked during video I/O, so just get that\n> faster... \n> I'm willing to speculate that the DX2-50 with local-bus will be 2-4 times \n> as fast as the DX-50 and probably as expensive (or cheap ;-)!\n> \nTechnically there is no reason why a chip set cannot support a 486DX50 and\na 25MHz local bus.\n\nI'm waiting for the mezzianine (sp?) VL bus that will be decoupled from\nthe main CPU clock and allow for many more slots due to the user of buffers.\n\nThis will allow the use of ever faster CPUs with the same standard I/O\ncards. Until the next buss spec...\n\n\n> regards, JV\n>                                                                 /////\n> name:    J-V Meuldijk                                          [ o o ]\n> address: gildelaar 4                                            \\_=_/\n>          4847 hw teteringen                                     _| |_ \n>          holland                  e-mail:  volkert@kub.nl      / \\_/ \\\n> _____________________________________________________________oOOO___OOOo__\n\nGuy\n-- \n-- -----------------------------------------------------------------------------\nGuy Dawson - Hoskyns Group Plc.\n        guyd@hoskyns.co.uk  Tel Hoskyns UK     -  71 251 2128\n        guyd@austin.ibm.com Tel IBM Austin USA - 512 838 3377\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 214, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Atheists and Hell\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 16\n\nMark Schnitzius writes:\n\n>>  Literal interpreters of the Bible will have a problem with this view, since\n>>the Bible talks about the fires of Hell and such.  \n> \n>This is something I've always found confusing.  If all your nerve endings\n>die with your physical body, why would flame hurt you?  How can one \"wail\n>and gnash teeth\" with no lungs and no teeth?\n\nOne can feel physical pain by having a body, which, if you know the\ndoctrine of the resurrection of the body, is what people will have after\nthe great judgement.  \"We look for the resurrection of the dead, and the\nlife of the world to come.\"  - Nicene-Constantinopolitan Creed.  You\nwill have both body and soul in hell - eventually.\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 215, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ray@netcom.com (Ray Fischer)\nSubject: Re: x86 ~= 680x0 ??  (How do they compare?)\nOrganization: Netcom. San Jose, California\nDistribution: usa\nLines: 36\n\ndhk@ubbpc.uucp (Dave Kitabjian) writes ...\n>I'm sure Intel and Motorola are competing neck-and-neck for \n>crunch-power, but for a given clock speed, how do we rank the\n>following (from 1st to 6th):\n>  486\t\t68040\n>  386\t\t68030\n>  286\t\t68020\n\n040 486 030 386 020 286\n\n>While you're at it, where will the following fit into the list:\n>  68060\n>  Pentium\n>  PowerPC\n\n060 fastest, then Pentium, with the first versions of the PowerPC\nsomewhere in the vicinity.\n\n>And about clock speed:  Does doubling the clock speed double the\n>overall processor speed?  And fill in the __'s below:\n>  68030 @ __ MHz = 68040 @ __ MHz\n\nNo.  Computer speed is only partly dependent of processor/clock speed.\nMemory system speed play a large role as does video system speed and\nI/O speed.  As processor clock rates go up, the speed of the memory\nsystem becomes the greatest factor in the overall system speed.  If\nyou have a 50MHz processor, it can be reading another word from memory\nevery 20ns.  Sure, you can put all 20ns memory in your computer, but\nit will cost 10 times as much as the slower 80ns SIMMs.\n\nAnd roughly, the 68040 is twice as fast at a given clock\nspeed as is the 68030.\n\n-- \nRay Fischer                   \"Convictions are more dangerous enemies of truth\nray@netcom.com                 than lies.\"  -- Friedrich Nietzsche\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.012+0000", "event": "documents", "entityId": 216, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: david@ods.com (David Engel)\nSubject: Re: Wanted: Opinions on MAG 17S and NANAO 560i monitor\nOrganization: Optical Data Systems, Inc.\nX-Newsreader: TIN [version 1.1 PL9]\nDistribution: usa\nLines: 17\n\nsleeping_dragon (ong_mang@iastate.edu) wrote:\n: I'm looking to buy a 17\" monitor soon, and it seems that I can't decide what\n: monitor I should buy. I have a MAG 17S (this is a .25 dpi version and it using\n: a TRINITON tube) and a NANAO 560i in mind.\n\nGood luck finding an MX17S.  When I was looking around back in\nDecember/January, Mag wasn't producing any because they couldn't get\ntubes from Sony.  I asked when they expected to restart production as\nI was willing to wait a few months to get an MX17S but they said not\nany time soon.  I wound up getting a T560i and am extremely happy with\nit.\n\nDavid\n-- \nDavid Engel                        Optical Data Systems, Inc.\ndavid@ods.com                      1101 E. Arapaho Road\n(214) 234-6400                     Richardson, TX  75081\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 217, "properties": {"category": "talk.religion.misc", "text": "From: rwd4f@poe.acc.Virginia.EDU (Rob Dobson)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: University of Virginia\nLines: 24\n\nIn article <bskendigC5rCBG.Azp@netcom.com> bskendig@netcom.com (Brian Kendig) writes:\n\n>They used a tank to knock a hole in the wall, and they released\n>non-toxic, non-flammable tear gas into the building.\n\nHow do you know? Were you there?\n\nWhile obviously Koresh was a nut case, the (typical) inability of the\ngovernment/media to get its story straight is quite disturbing. On\ntuesday night, NBC news reported that the FBI did not know the place\nwas burning down until they saw black smoke billowing from the\nbuilding. The next day, FBI agents were insisting that they saw Davidians\nsetting the fire. The FBI was also adamantly denying that it was possible\ntheir battery of the compound's wallks could have accidentally set the\nblaze, while also saying they hadnt been able to do much investigating\nof the site because it was still too hot. So how did they KNOW they\ndidnt accidentally set the fire.\n\nSounds like the FBI just burned the place to the ground to destroy\nevidence to me.\n\n\n--\nLegalize Freedom\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 218, "properties": {"category": "sci.crypt", "text": "From: dcd@se.houston.geoquest.slb.com (Dan Day)\nSubject: Re: The Escrow Database.\nNntp-Posting-Host: castor.se.houston.geoquest.slb.com\nOrganization: GeoQuest System, Inc. Houston\nLines: 17\n\nIn article <1993Apr20.021846.2423@shearson.com> pmetzger@snark.shearson.com (Perry E. Metzger) writes:\n>\n>each of the two escrow databases. Fits conveniently on a single very\n>valuable Exabyte tape. This can only get easier with time, but who\n>cares -- I can already hold all the clipper keys in the country in my\n>pocket on two 8mm tapes.\n\nExcellent point, and there's a related point I'd like to make.\nThey'll have to back up these databases themselves, won't they?\nHow many tape copies will there be, and how secure will the\ntapes be?  If they store them off-site, it wouldn't be too\nhard to hijack them in transit.  If they're all kept on-site,\none good bomb attack by some group intent on freeing us from\nthe threat of government snooping will take care of the problem\nonce and for all.  I can see it now -- \"Hi, we're from the\ngovernment and we, um, misplaced our copy of your key.  Could\nyou mail us a copy?\"\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 219, "properties": {"category": "alt.atheism", "text": "From: ray@engr.LaTech.edu (Bill Ray)\nSubject: Re: The Bible and Abortion\nOrganization: Louisiana Tech University\nLines: 38\nDistribution: world,local\nNNTP-Posting-Host: ee02.engr.latech.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nJames J. Lippard (lippard@skyblu.ccit.arizona.edu) wrote:\n: Exodus 21:22-25:\n\n:        22 And if men struggle with each other and strike a woman with\n:           child so that she has a miscarriage, yet there is no further\n:           injury, he shall surely be fined as the woman's husband may\n:           demand of him; and he shall pay as the judges decide.\n:        23 But if there is any further injury, then you shall appoint\n:           as a penalty life for life,\n:        24 eye for eye, tooth for tooth, hand for hand, foot for foot,\n:        25 burn for burn, wound for wound, bruise for bruise.\n\n: The most straightforward interpretation of these verses is that if\n: men in a fight strike a woman and cause her to miscarry, the penalty\n: is only a fine.  If, however, the woman is injured or dies, the\n: *lex talionis* doctrine of \"an eye for an eye\" applies.  This is the\n: Jewish interpretation, and is supported by Jewish commentaries on\n: these verses.\n:    This is quite an embarrassment for pro-lifer Christians, so there is\n: of course an alternate explanation.  The alternative interprets the\n: word \"miscarriage\" to mean \"premature birth\"--i.e., the child is born\n: alive--and \"further injury\" to mean injury to either the woman or\n: the fetus.  This is not a straightforward interpretation, it is not\n: (so far as I know) supported by any Jewish commentaries, and it does\n: not appeared to be supported by any other part of the Bible.\n\nWhat if any, historical reference do we have to abortion at this time?  Did\nthe ancient Jew have appropriate reference to understand abortion? (I am\ntruly asking, not making a point veiled as a question).  If there is \nlittle understanding of the medical procedure we know as abortion, it is\nnot surprising the Bible makes little reference to it, as it makes little\nreference to nuclear power and contamination.\n\nWhile your interpretation is a reasonable one, I see no reason to reject\nthe other out of hand.  The King Jimmy translation says \"if there is no\nfurther mischief.\"  This does not necessarily imply to the woman.  I know\nif my wife we expecting and someone cause her to spontaneously abort, we\nwould feel that a life was truly taken, not simply a process halted.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 220, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Life on Mars???\nOrganization: U of Toronto Zoology\nLines: 24\n\nIn article <1993Apr20.120311.1@pa881a.inland.com> schiewer@pa881a.inland.com (Don Schiewer) writes:\n>What is the deal with life on Mars?  I save the \"face\" and heard \n>associated theories. (which sound thin to me)\n\nThe \"face\" is an accident of light and shadow.  There are many \"faces\" in\nlandforms on Earth; none is artificial (well, excluding Mount Rushmore and\nthe like...).  There is also a smiley face on Mars, and a Kermit The Frog.\n\nThe question of life in a more mundane sense -- bacteria or the like -- is\nnot quite closed, although the odds are against it, and the most that the\nmore orthodox exobiologists are hoping for now is fossils.\n\nThere are currently no particular plans to do any further searches for life.\n\n>Are we going back to Mars to look at this face agian?\n\nMars Observer, currently approaching Mars, will probably try to get a better\nimage or two of the \"face\" at some point.  It's not high priority; nobody\ntakes it very seriously.  The shadowed half of the face does not look very\nface-like, so all it will take is one shot at a different sun angle to ruin\nthe illusion.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 221, "properties": {"category": "talk.politics.mideast", "text": "From: henrik@quayle.kpc.com \nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES \nOrganization: NONE\nLines: 52\n\nIn article <1993Apr20.110021.5746@kth.se>, hilmi-er@dsv.su.se (Hilmi Eren) writes:\n\n\nhenrik]  The Armenians in Nagarno-Karabagh are simply DEFENDING their \nhenrik]  RIGHTS to keep their homeland and it is the AZERIS that are \nhenrik]  INVADING their homeland.\n\n\nHE]     Homeland? First Nagarno-Karabagh was Armenians homeland today\nHE]     Fizuli, Lacin and several villages (in Azerbadjan)\nHE]     are their homeland. Can't you see the\nHE]     the  \"Great Armenia\" dream in this? With facist methods like\nHE]     killing, raping and bombing villages. The last move was the\nHE]     blast of a truck with 60 kurdish refugees, trying to\nHE]     escape the from Lacin, a city that was \"given\" to the Kurds\nHE]     by the Armenians.\n\nNagorno-Karabakh is in Azerbaijan not Armenia. Armenians have lived in Nagorno-\nKarabakh ever since there were Armenians. Armenians used to live in the areas\nbetween Armenia and Nagorno-Karabakh and this area is being used to invade \nNagorno- Karabakh. Armenians are defending themselves. If Azeris are dying\nbecause of a policy of attacking Armenians, then something is wrong with this \npolicy.\n\nIf I recall correctly, it was Stalin who caused all this problem with land\nin the first place, not the Armenians.\n\nhenrik]  However, I hope that the Armenians WILL force a TURKISH airplane\nhenrik]  to LAND for purposes of SEARCHING for ARMS similar to the one\nhenrik]  that happened last SUMMER. Turkey searched an AMERICAN plane\nhenrik]  (carrying humanitarian aid) bound to ARMENIA.\n\nHE]     Don't speak about things you don't know: 8 U.S. Cargo planes\nHE]     were heading to Armenia. When the Turkish authorities\nHE]     announced that they were going to search these cargo\nHE]     planes 3 of these planes returned to it's base in Germany.\nHE]     5 of these planes were searched in Turkey. The content of\nHE]     of the other 3 planes? Not hard to guess, is it? It was sure not\nHE]     humanitarian aid.....\n\nWhat story are you talking about? Planes from the U.S. have been sending\naid into Armenian for two years. I would not like to guess about what were in\nthe 3 planes in your story, I would like to find out.\n\n\nHE]     Search Turkish planes? You don't know what you are talking about.\nHE]     Turkey's government has announced that it's giving weapons\nHE]     to Azerbadjan since Armenia started to attack Azerbadjan\nHE]     it self, not the Karabag province. So why search a plane for weapons\nHE]     since it's content is announced to be weapons?\n\nIt's too bad you would want Turkey to start a war with Armenia.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 222, "properties": {"category": "sci.crypt", "text": "From: tuinstra@sunspot.ece.clarkson.edu.soe (Dwight Tuinstra)\nSubject: WH proposal from Police point of view\nReply-To: tuinstra@sunspot.ece.clarkson.edu.soe\nOrganization: Sun Microsystems, Inc.\nLines: 55\nNntp-Posting-Host: sunspot.ece.clarkson.edu\n\nIt might pay to start looking at what this proposal might mean to a\npolice agency.  It just might be a bad idea for them, too.\n\nOK, suppose the NY State Police want to tap a suspect's phone.  They\nneed a warrant, just like the old days.  But unlike the old days, they\nnow need to \n\n   (a) get two federal agencies to give them the two parts of\n       the key.\n\nNow, what happens if there's a tiff between the two escrow houses?\nPosession/release of keys becomes a political bargaining chit.  State\nand lower-level police agencies have to watch the big boys play politics,\nwhile potentially good leads disappear, lives and property are lost,\nstatutes of limitations run out, etc.  Not to mention: a moderately\nclever person who suspects the police are after her/him will be buying\nnew phones faster than tap requests can be processed.  Or using stolen\nones.  [Will the Turing Police come and arrest you for transmitting\nwithout a dialing license?]\n\nThere's also bureacracy and security problems -- within each escrow house, \nhow will requests for key disclosure be authenticated?  Put in enough\nsafeguards of the kind bureaucrats and activists feel comfortable with, and \nit might take a LONG time to get that key.  [Even when a request is approved, \nhow is the key going to be disclosed?  Will it be encrypted by a Clipper-type\nchip for transmission?  In a bureaucracy the size of the Federal\nGovernment, with a databank of the necessary size, and data traffic of\nthe projected volume, there's going to be a lot of weak links.  How many of \nthese kinds of problems will be open for public or \"expert\" scrutiny?]  \n\nFurthermore, the Feds might be leery of handing completed keys around, \neven to State Police agencies: a trust and security issue.  This would be \nan especially acute issue if some other State's Police had mishandled a \nkey, resulting in lawsuits, financial settlements, and political \nembarassment.  So, the Feds implement it this way:\n \n   (b) some federal agency gets the keys, performs the tap, and\n       turns the results over to the NY State Police.\n\nBut let's say Cuomo's been causing some problems over a Clinton\nAid-To-Urban-Areas proposal.  Or there just happens to be a turf war\ngoing on between the State cops and the Justice department on a case.\nNow, not only do we have the keys as a political chit, we have an\nextra player in the game *and* we have the tap's tapes as another\nbargaining chit.  Again, the State Police lose.\n\nI understand that (legal) wiretaps are quite expensive to maintain. In\nscenario (b), who pays the bill?\n\n+========================================================================+\n|  dwight tuinstra             best:  tuinstra@sandman.ece.clarkson.edu  |\n|                         tolerable:  tuinstrd@craft.camp.clarkson.edu   |\n|                                                                        |\n|        \"Homo sapiens: planetary cancer??  ...  News at six\"            |\n+========================================================================+\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 223, "properties": {"category": "sci.electronics", "text": "From: mcovingt@aisun1.ai.uga.edu (Michael Covington)\nSubject: Re: Radar detector DETECTORS?\nNntp-Posting-Host: aisun1.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 9\n\nThere is or was a microwave tower next to Florida's Turnpike, and you\ncould watch the cars hit the breaks as they came in sight of it every\nmorning...\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 224, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: 2ND AMENDMENT DEAD - GOOD !\nOrganization: The University of Texas at Austin, Austin TX\nLines: 44\nNNTP-Posting-Host: louie.cc.utexas.edu\n\njrm@gnv.ifas.ufl.edu writes:\n:Yea, there are millions of cases where yoy *say* that firearms\n:'deter' criminals. Alas, this is not provable. I think that that\n:there are actually *few* cases where this is so. \n\nYou \"think\" wrong.  Ask the FBI.  They've got the proof.  Look it up.\n\n:The bulk of firarems are used against unworthy and unnesessary\n:opponents ... those who posessa a cool jakcet you want, those who\n:would argue with you about a parking space, those who would\n:take your woman. In short, trivial and worthless causes.\n\nYou lie like a snake.  The \"vast majority\" of the 200 MILLION firearms\nin this country are never used in anger.  Your feelings notwithstanding.\n\n:Too much of this has ruined you cause. There is no recovery. \n:In the near future, federal martials will come for your arms.\n:No one will help you. You are more dangerous, to their thinking,\n:than the 'criminal'. This is your own fault. \n\nWe will overcome the kind of blind, pig-headed, utterly stupid idiocy that\nyou and others spout in a vain attempt to further your own agendas.  We\nwill make the truth be known, despite your best efforts to the contrary.\n\n:The 2nd amendment is dead. Accept this. Find another way.\n\nThe Second Amendment won't be dead unless it is repealed.  That won't happen.\n\nEVER.\n\nAccept this.  Find another way to try and control other's lives, because we\nsee you for what you are, and we are not fooled.\n\nMike Ruff\n\n\n\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 225, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Re: Killer\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 95\n\nIn article <1993Apr21.032746.10820@doug.cae.wisc.edu> yamen@cae.wisc.edu\n(Soner Yamen) responded to article <1r20kr$m9q@nic.umass.edu> BURAK@UCSVAX.\nUCS.UMASS.EDU (AFS) who wrote:\n\n[AFS]     Just a quick comment::\n[AFS]\n[AFS]     Armenians killed Turks------Turks killed Armenians.\n[AFS]\n[AFS]     Simple as that. Can anybody deny these facts?\n\nJews killed Germans in WWII -- Germans killed Jews in WWII, BUT there was \nquite a difference in these two statements, regardless of what Nazi \nrevisionists say!\n\n[SY] My grand parents were living partly in todays Armenia and partly in\n[SY] todays Georgia. There were villages, Kurd/Turk (different Turkic groups)\n[SY] Georgian (muslim/christian) Armenian and Farsi... Very near to eachother.\n[SY] The people living there were aware of their differences. They were \n[SY] different people. For example, my grandfather would not have been happy \n[SY] if his doughter had willed to marry an Armenian guy. But that did not \n[SY] mean that they were willing to kill eachother. No! They were neighbors.\n\nOK.\n\n[SY] Armenians killed Turks. Which Armenians? Their neoghbors? As far as my\n[SY] grandparents are concerned, the Armenians attacked first but these \n[SY] Armenians were not their neighbors. They came from other places. Maybe \n[SY] first they had a training at some place. They were taught to kill people,\n[SY] to hate Turks/Kurds? It seems so...\n\nThere is certainly a difference between the planned extermination of the\nArmenians of eastern Turkey beginning in 1915, with that of the Armeno-\nGeorgian conflicts of late 1918! The argument is not whether Armenians ever \nkilled in their collective existence, but rather the wholesale destruction of\nAnatolian Armenians under orders of the Turkish government. An Armenian-\nGeorgian dispute over the disposition of Akhalkalak, Lori, and Pambak after\nthe Turkish Third Army evacuated the region, cannot be equated with the\nextermination of Anatolian Armenians. Many Armenians and Georgians died\nin this area in the scramble to re-occupy these lands and the lack of\npreparation for the winter months. This is not the same as the Turkish \ngenocide of the Armenians nearly four years earlier, hundreds of kilometers\naway!\n\n[SY] Anyway, but after they killed/raped/... Turks and other muslim people\n[SY] around, people assumed that 'Armenians killed us, raped our women',\n[SY] not a particular group of people trained in some camps, maybe backed\n[SY] by some powerful states... After that step, you cannot explain these \n[SY] people not to hate all Armenians. \n\nI don't follow, perhaps the next paragraph will shed some light.\n\n[SY] So what am I trying to point out? First, at least for that region,\n[SY] you cannot blame Turks/Kurds etc since it was a self defense situation.\n[SY] Most of the Armenians, I think, are not to blame either. But since some\n[SY] people started that fire, it is not easy to undo it. There are facts.\n[SY] People cannot trust eachother easily. It is very difficult to establish\n[SY] a good relation based on mutual respect and trust between nations with\n[SY] different ethnic/cultural/religious backgrounds but it is unfortunately\n[SY] very easy to start a fire!\n\nAgain, the fighting between Armenians and Georgians in 1918/19 had little to\ndo with the destruction of the Armenians in Turkey. It is interesting that\nthe Georgian leaders of the Transcaucasian Federation (Armenia, Azerbaijan, \nand Georgia) made special deals with Turkish generals not to pass through \nTiflis on their way to Baku, in return for Georgians not helping the Armenians \nmilitarily. Of course, as Turkish troops marched across what was left of\nCaucasian Armenia, many Armenians went north and such population movement \ncaused problems with the locals. This is in no comparison with events 4 years \nearlier in eastern Anatolia. My father's mother's family escaped Cemiskezek -> \nErzinka -> Erzerum -> Nakhitchevan -> Tiflis -> Constantinople -> \nMassachusetts. \n\n[SY] My grandparents were *not* bloodthirsty people. We did not experience\n[SY] what they had to endure... They had to leave their lands, there were\n[SY] ladies, old ladies, all of her children killed while she forced to\n[SY] witness! Young women put dirt at their face to make themselves\n[SY] unattractive! I don't want to go into any graphic detail.\n\nMy grandmother's brother was forced to dress up as a Kurdish women, and paste\npotato skins on his face to look ugly. The Turks would kill any Armenian\nyoung man on sight in Dersim. Because their family was rather influential,\nlocal Kurds helped them escape before it was too late. This is why I am alive \ntoday.\n\n[SY] You may think that my sources are biased. They were biased in some sense.\n[SY] They experienced their own pain, of course. That is the way it is.  But\n[SY] as I said they were living in peace with their neighbors before. Why \n[SY] should they become enemies?\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 226, "properties": {"category": "sci.crypt", "text": "From: jhesse@netcom.com (John Hesse)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 34\n\nIn article <1qnupd$jpm@news.intercon.com> amanda@intercon.com (Amanda Walker) writes:\n>jhesse@netcom.com (John Hesse) writes:\n>> Oh great. Wonderful news. Nobody can listen in--except the feds. \n>\n>Hey, it's better than the status quo.\n>\n>I am far less worried about \"the feds\" tapping my phone than high school \n>scanner surfers who get their kicks out of eavesdropping on cellular and \n>cordless phone calls.\n>\n\nReally? Why are so you worried about high school kids \"getting their kicks\"\nwith scanners, as compared to what the feds can do, and have done, to their\ntargets?\n\n\"Better than the status quo\" isn't good enough, I'd say. The same \ntechnology could be implemented WITHOUT a back door open to the state.\n\nWe all know about power and corruption. But we all know that abuse is\nsomething that only happens to the other guy.\n\n>\n>Amanda Walker\n>InterCon Systems Corporation\n>\n>\n\n\n-- \n------------------------------------------------------------------------------\nJohn Hesse           |          A man,     \njhesse@netcom.com    |                 a plan, \nMoss Beach, Calif    |                         a canal, Bob.\n------------------------------------------------------------------------------\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 227, "properties": {"category": "comp.windows.x", "text": "From: mishra@cs.sunysb.edu (Prateek Mishra)\nSubject: ..Image processing Packages under X..\nKeywords: ..medical informatics..\nNntp-Posting-Host: sbmishra\nOrganization: State University of New York, Stony Brook\nLines: 14\n\n\nI am looking for a package that implements standard\nimage processing functions (reading/writing from\nstandard formats), clipping, zoom, etc. implemented\nunder X. Both public domain and private packages\nare of interest. The particular application area I\nhave in mind is medical imaging, but a package meant\nfor a more general context would be acceptable.\n\nPlease reply to me; I will summarize on the net if\nthere is general interest.\n\n- prateek mishra\nmishra@sbcs.sunysb.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 228, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: HLV for Fred (was Re: Prefab Space Station?)\nArticle-I.D.: zoo.C51875.67p\nOrganization: U of Toronto Zoology\nLines: 28\n\nIn article <C5133A.Gzx@news.cso.uiuc.edu> jbh55289@uxa.cso.uiuc.edu (Josh Hopkins) writes:\n>>>Titan IV launches ain't cheap \n>>Granted. But that's because titan IV's are bought by the governemnt. Titan\n>>III is actually the cheapest way to put a pound in space of all US expendable\n>>launchers.\n>\n>In that case it's rather ironic that they are doing so poorly on the commercial\n>market.  Is there a single Titan III on order?\n\nThe problem with Commercial Titan is that MM has made little or no attempt\nto market it.  They're basically happy with their government business and\ndon't want to have to learn how to sell commercially.\n\nA secondary problem is that it is a bit big.  They'd need to go after\nmulti-satellite launches, a la Ariane, and that complicates the marketing\ntask quite significantly.\n\nThey also had some problems with launch facilities at just the wrong time\nto get them started properly.  If memory serves, the pad used for the Mars\nObserver launch had just come out of heavy refurbishment work that had\nprevented launches from it for a year or so.\n\nThere have been a few CT launches.  Mars Observer was one of them.  So\nwas that stranded Intelsat, and at least one of its brothers that reached\norbit properly.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 229, "properties": {"category": "comp.windows.x", "text": "From: mahan@TGV.COM (Patrick L. Mahan)\nSubject: RE: Program argument: geometry\nOrganization: The Internet\nLines: 31\nTo: xpert@expo.lcs.mit.edu, rgasch@nl.oracle.com\n\n#\n#I have a question regarding the processing of program arguments\n#such as the -geometry option. Since this is a standard X option, \n#I'm wondering wether I have to parse it manually or whether there\n#is some predefined function that will do this for me?\n#\n\nIf you are using the Intrinsics, it is parsed for you.  If you are working\nat the Xlib level, you can parse it yourself or you can use the following\nbit of code.\n\nstatic XrmOptionDescRec options[] = {\n\t{\"-geometry\",\t\".geometry\",\tXrmoptionSepArg, (XPointer)NULL}\n};\n\n#define Number(x)\t(sizeof(x)/sizeof(x[0]))\nXrmParseCommand(db, options, Number(options), \"MyApplication\", &argc, argv);\n\nThen use XrmGetResource() to retrieve the value and parse it using\nXParseGeometry().\n\nIt is probably quicker to parse it yourself from argv, however, I much prefer\nusing the X resource management routines to do this.\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 230, "properties": {"category": "rec.motorcycles", "text": "From: howp@skyfox\nSubject: Thoughts on a 1982 Yamaha Seca Turbo?\nOrganization: University of Saskatchewan\nLines: 16\nNNTP-Posting-Host: sask.usask.ca\n\nI was wondering if anybody knows anything about a Yamaha Seca Turbo.  I'm \nconsidering buying a used 1982 Seca Turbo for $1300 Canadian (~$1000 US)\nwith 30,000 km on the odo.  This will be my first bike.  Any comments?\n\nThanks.\n\nPeter How\nInstitute of Space and Atmospheric Studies\nUniversity of Saskatchewan,\nSaskatoon, Saskatchewan\nCANADA\n(306) 966-6452\nIN::how@skisas.usask.ca\n**********************************************************************\n*                      1983 clapped-out Ford Truck                   *\n**********************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 231, "properties": {"category": "rec.sport.hockey", "text": "From: un026300@wvnvms.wvnet.edu\nSubject: Re: How to beat the Pens\nOrganization: West Virginia Network for Educational Telecomputing\nLines: 6\n\n\n\tYou can't.  But good luck trying.\n\n\tJim\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 232, "properties": {"category": "rec.sport.baseball", "text": "From: fath@mbcrr.dfci.harvard.edu (Michael Fath)\nSubject: HELP:  looking for Cleveland Sports Mailing List Info\nOrganization: Dana-Farber Cancer Institute\nLines: 14\nDistribution: world\nNNTP-Posting-Host: mbcrr.harvard.edu\n\nI'm looking for the address to join the Cleveland Sports Mailing List.\nIf anyone knows it, I would be greatful if they could email a copy of\nit to me.  If you are a member, just mail me one of the List's letters.\nI could probably figure it out from there.\n\nThanks!\n\n\n\n-- \nMM   MM FFFFF \tMichael J. Fath\t\t\nM M M M F\tDept of Microbiology and Molecular Genetics\nM  M  M FFF     Harvard Medical School         \nM     M F       Boston, MA 02115\t            fath@mbcrr.harvard.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 233, "properties": {"category": "sci.electronics", "text": "From: howeg@p4.cs.man.ac.uk (Monty Mole)\nSubject: FM Transmitter\nKeywords: Old question I know\nLines: 14\n\nCan anyone please email a diagram or give me details of an ftp site where there\nis a diagram of a simple, small fm mono voice transmitter for trasnmitting in\nthe 90-104 range (preferably above 100 Mhz). Only a short distance requiered,\nand frequency variation no too important but must run from 9v or smaller DC\nsupply.\n\nThanx in advance\n\nMonty.\n-- \n    /\\    /\\     __   __  /_                            howeg@uk.ac.man.cs \n   /  \\  /  \\   /  / / / /  / /                         howeg@cs.man.ac.uk\n__/    \\/    \\_/__/_/ /_/__/_/____________________________________________\n____________________________/ Save The Vinyl!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 234, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Re: DID HE REALLY RISE???\nOrganization: The Claremont Graduate School\nLines: 58\n\nIn article <Apr.19.05.10.33.1993.29070@athos.rutgers.edu>, Gene.Gross@lambada.oit.unc.edu (Gene Gross) writes:\n> \n> Of course they knew where it was. Don't forget that Jesus was seen by both\n> the Jews and the Romans as a troublemaker. Pilate was no fool and didn't \n> need the additional headaches of some fishermen stealing Jesus' body to \n> make it appear He had arisen. Since Jesus was buried in the grave of a \n> man well know to the Sanhedrin, to say that they didn't know where He was\n> buried begs the question.\n\nHere again, the problem with most of the individuals posting here, you take the\nbiblical account as though it were some sort of historical recounting in the\nmodern sense.  I would refer you to John Dominic Crossans Book _The Cross That\nSpoke_ (Pub. Harper and Row, 1988).  The earliest texts which we have make no\nreference to an empty tomb.  Nor is an empty tomb necessary for a claim of\nresurrection. Modern Evangelicals/Fundamentalists have completely missed what\nthe point of resurrection is -- Here the work of George Nickelsburg's work \n_Resurrection, Immortality, and Eternal Life in Intertestamental Judaism_ (Publ\nCambridge, Havard Univ. Press, 1972) is most helpful.  Look At Rom 1:1-3.  Paul\nhere has no need of an empty tomb.  Additionally in 1 Cor 15, Here again there\nis no mention of an empty tomb. He was raised (note the passive), he appeared,\nno ascension either.\n\nResurrection could be accomplished without ever disturbing the bones in the\ngrave.  The whole idea of an empty tomb isn't broached in any of our texts\nuntil well after the fall of Jerusalem.  By that time, the idea of coming up\nwith a body would have been ludicrious.  Moreover Mack has argued (convicingly,\nI think) that the empty tomb story first appears in Mark (we have no texts\nbefore this which mention the tomb). \n    \n\n> \n> Now, you say that you think that the disciples stole the body. But think on\n> this a moment. Would you die to maintain something you KNEW to be a \n> deliberate lie!? If not, then why do you think the disciples would!? Now, I'm\n> not talking about dying for something you firmly believe to be the truth, \n> but unbeknown to you, it is a lie. Many have done this. No, I'm talking about\n> dying, by beheading, stoning, crucifixion, etc., for something you know to\n> be a lie! Thus, you position with regards to the disciples stealing the \n> body seems rather lightweight to me.\n> \n> As for graverobbers, why risk the severe penalties for grave robbing over \n> the body of Jesus? He wasn't buried with great riches. So, again, this is\n> an argument that can be discounted.\n> \n> That leaves you back on square one. What happened to the body!?\n> \n> \n> [Again, let me comment that the most plausible non-Christian scenario,\n> and the one typically suggested by sceptics who are knowledgeable\n> about the NT, is that the resurrection was a subjective event, and the\n> empty tomb stories are a result of accounts growing in the telling.\n> --clh]\n\nYou are quite right here.  Even the Idea of a subjective mystical event as the\nfoundation of the resurrection narratives is currently becoming more untenable.\nSee B. Mack _A Myth of Innocence_.\n\nrandy\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 235, "properties": {"category": "misc.forsale", "text": "From: rich@delphi.bsd.uchicago.edu (Rich Long)\nSubject: Icom 02AT for sale\nReply-To: rich@delphi.bsd.uchicago.edu\nOrganization: University of Chicago Computing Organizations\nLines: 35\n\n\nI am looking to sell my ICOM IC-02AT and extras.  I have the  \nfollowing:\nCM-12 Battery\nHS-10 Headset\nHS-10SA VOX unit\nCigarette Adapter\nLeather Case\nBC-25V Wall Charger\nIC-BP3 Battery\t\tAlso have one that needs a new cell (i think,  \nits been a while)\n\nIt is in good condition, has a scratch on the front that is not  \nvisible when in the leather case.\n\nIf you are interested, make me an offer.\n\n--rich\n\n\n-- NewsGrazer, a NeXTstep(tm) news reader, posting --\nM>UQR=&8P7&%N<VE[7&9O;G1T8FQ<9C!<9G-W:7-S($AE;'9E=&EC83M]\"EQM\nM87)G;#$R,`I<;6%R9W(Q,C`*7'!A<F1<='@U,S-<='@Q,#8W7'1X,38P,5QT\nM>#(Q,S5<='@R-C8X7'1X,S(P,EQT>#,W,S9<='@T,C<P7'1X-#@P,UQT>#4S\nM,S=<9C!<8C!<:3!<=6QN;VYE7&9S,C1<9F,P7&-F,\"!<\"DD@86T@;&]O:VEN\nM9R!T;R!S96QL(&UY($E#3TT@24,M,#)!5\"!A;F0@97AT<F%S+B`@22!H879E\nM('1H92!F;VQL;W=I;F<Z7`I#32TQ,B!\"871T97)Y7`I(4RTQ,\"!(96%D<V5T\nM7`I(4RTQ,%-!(%9/6\"!U;FET7`I#:6=A<F5T=&4@061A<'1E<EP*3&5A=&AE\nM<B!#87-E7`I\"0RTR-58@5V%L;\"!#:&%R9V5R7`I)0RU\"4#,@0F%T=&5R>0D)\nM06QS;R!H879E(&]N92!T:&%T(&YE961S(&$@;F5W(&-E;&P@*&D@=&AI;FLL\nM(&ET<R!B965N(&$@=VAI;&4I7`I<\"DET(&ES(&EN(&=O;V0@8V]N9&ET:6]N\nM+\"!H87,@82!S8W)A=&-H(&]N('1H92!F<F]N=\"!T:&%T(&ES(&YO=\"!V:7-I\nM8FQE('=H96X@:6X@=&AE(&QE871H97(@8V%S92Y<\"EP*268@>6]U(&%R92!I\nK;G1E<F5S=&5D+\"!M86ME(&UE(&%N(&]F9F5R+EP*7`HM+7)I8VA<\"@I]\"B!I\n`\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.013+0000", "event": "documents", "entityId": 236, "properties": {"category": "soc.religion.christian", "text": "From: jhpb@sarto.budd-lake.nj.us (Joseph H. Buehler)\nSubject: Re: SSPX schism ?\nOrganization: none\nLines: 52\n\nBob Van Cleef writes:\n\n   If the Papacy is infallible, and this is a matter of faith, then the \n   Pope cannot \"be wrong!\"  If, on the other hand, this is not a matter \n   of faith, but a matter of Church law, then we should still obey as the\n   Pope is the legal head of the church.\n\n   In other words, given the doctrine of infallibility, we have no choice\n   but to obey.\n\nThis is a primary problem in the Church today.  What you are saying is\nmore or less heresy.  You might call it \"infallibilism\".  It's the\nidea that the Pope is always right in everything he says or does.\nThis is virtually all over the place, especially in this country.\n\nThe Pope is only infallible under certain very specific and\nwell-defined conditions.  When these conditions are not met, he can\nmake mistakes.  He can make *big* mistakes.\n\nA couple historical examples come to mind.\n\nBishop Robert Grosseteste was perhaps the greatest product of the\nEnglish Catholic Church.  At one point during his career, the reigning\nPope decided to install one of his nephews in an English see.  Bishop\nGrosseteste said that this would happen over his dead body (though\nmaybe not in so many words; you have to treat Popes with respect, even\nwhen they are wrong).  The problem was that this nephew would just\ncollect the income of the see, and probably never set foot there.\nThis would deprive the people of the see of a shepherd.  Bishop\nGrosseteste was quite right in what he did!\n\nAnother example is that of Pope John XXII, a Pope of the Middle Ages.\nHe decided that souls that were saved did not enjoy the Beatific\nVision until the Last Judgement.  He decided that this should be a\ndefined doctrine of the Church.  Though he didn't quite get around to\ndefining it.  Now there's no way this is compatible with Catholic\ndoctrine.  The Pope's doctrine was criticised by many in the Church.\nHe went so far as to put a number of his opponents in jail, even.  In\nthe end, he had to admit his mistake.  Shortly before he died, he\nrecanted.  His successor made the exact *opposite* idea a dogma of the\nChurch.\n\nIf you consult any of the great Catholic theologians who treat of such\nsubjects, such as St. Robert Bellarmine (a Doctor of the Church), you\nwill find detailed discussions of whether the Pope can personally fall\ninto heresy or schism.\n\nThe teaching of all such theologians is that the commands of a Pope\nmust be resisted if they are to the detriment of the Catholic Faith.\nA Pope's authority is given for the purpose of building up the\nCatholic Church.  Commands in conflict with this purpose have no\nlegal *or* moral force.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 237, "properties": {"category": "talk.politics.mideast", "text": "Subject: Re: Israeli Terrorism\nFrom: amoss@shuldig.cs.huji.ac.il (Amos Shapira)\n <1993Apr24.203620.6531@Virginia.EDU><2BD9C01D.11546@news.service.uci.edu> <1rd7eo$1a4@usenet.INS.CWRU.Edu>\nOrganization: Inst. of Comp. Sci., Hebrew University, Jerusalem, Israel\nNNTP-Posting-Host: shuldig.cs.huji.ac.il\nIn-reply-to: cy779@cleveland.Freenet.Edu's message of 25 Apr 1993 05:26:48 GMT\nLines: 14\n\ncy779@cleveland.Freenet.Edu (Anas Omran) writes:\n\n                                                           The Israelis\n   used to arrest and sometimes to kill some of these neutral reporters.\n\nEh????  Could you please give me details about an event where a \"Neutral\nObserver\" was killed by purpose by an Israeli soldier?\n\n--Amos\n--\n--Amos Shapira (Jumper Extraordinaire) |  \"It is true that power corrupts,\nC.S. System Group, Hebrew University,  |   but absolute power is better!\"\nJerusalem 91904, ISRAEL                |\namoss@cs.huji.ac.il                    |          -- the Demon to his son\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 238, "properties": {"category": "talk.religion.misc", "text": "From: walsha@iccgcc.decnet.ab.com (I don't know who discovered water, but it wasn't no fish - Marshall McCluhan)\nSubject: waco conflagration - precedents?\nLines: 15\n\n\nburning yourself alive seems a rough way to go, given the waco bunch\nhad other choices.\n\nbut it reminded me of the russian old-believers who, thinking the\nantichrist was coming in 1666, grew frantic when Peter the Great \nstarted westernizing Russia and reforming the Russian Church a few\nyears later. They locked themselves in their churches and burned\nthemselves alive by the thousands. \n\nare there other cases of apocalypse-obsessed christians resorting\nto self-imolation? is there a history of precedents?\n\n   andrew.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 239, "properties": {"category": "rec.sport.baseball", "text": "From: barrym@informix.com (Barry Mednick)\nSubject: Re: Jewish Baseball Players?\nSummary: a few names\nOrganization: Informix Software, Inc.\nLines: 9\n\nIn article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>Just wondering.  A friend and I were talking the other day, and\n>we were (for some reason) trying to come up with names of Jewish\n>maybe John Lowenstein.  \nLowenstein is NOT Jewish.  However, there is a long list including\nHank Greenberg, Moe Berg, Rod Carew (a convert), the Sherry brothers,\nArt Shamsky, and Ron Blomberg.\n\nBarry\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 240, "properties": {"category": "sci.electronics", "text": "From: josephc@cco.caltech.edu (Joseph Chiu)\nSubject: Re: What is Zero dB????\nArticle-I.D.: gap.1pkveuINNduk\nOrganization: California Institute of Technology, Pasadena\nLines: 33\nNNTP-Posting-Host: sandman.caltech.edu\n\nsehari@iastate.edu (Babak Sehari) writes:\n\n>Similarly, people usually use dB for dBm. Another common mistake is spelling\n>``db'' instead of ``dB'' as you did in your article. See the ``B'' is for \n>``Bell'' company, the mother of AT&T and should be capitalized.\n\nThus, a deciBell (deci-, l., tenth of + Bell) is a fractional part of the \noriginal Bell.  For example, SouthWestern Bell is a deciBell.\n\nAnd the measure of current, Amp, is actually named after both the AMP company\nand the Amphenol company.  Both companies revolutionized electronics by\nsimulatenously realizing that the performance of connectors and sockets \nwere affected by the amount of current running through the wires.\n\nThe Ohmite company was the first to characterize resistances by numbers, thus\nour use of the Ohms...\n\n\nAlexander Graham Bell, actually, is where Bell came from...  \n\n\n\nActually, Bel refers\n\n>                          With highest regards,\n>                               Babak   Sehari.\n\n>-- \n-- \nJoseph Chiu        | josephc@cco.caltech.edu  \"OS/2: You gotta get this thing!\" \nMSC 380 - Caltech  | \nPasadena, CA 91126 |   OS/2: The operating system of tomorrow, today.\n+1 818 449 5457    |   \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 241, "properties": {"category": "talk.politics.misc", "text": "From: New Liberation News Service <nlns@igc.apc.org>\nSubject: NLNS: Fascism with a Friendly Face\nNf-ID: #N:cdp:1483600108:000:9540\nNf-From: cdp.UUCP!nlns    Apr 14 20:42:00 1993\nLines: 164\n\n\nFrom: New Liberation News Service <nlns>\nSubject: NLNS: Fascism with a Friendly Face\n\n/* Written  8:33 pm  Apr 14, 1993 by nlns@igc.apc.org in igc:nlns.news */\n/* ---------- \"NLNS Packet 3.11 *** 4-14-93\" ---------- */\n\nFascism with a Friendly Face: Does Rush Limbaugh Remind You of \nAnyone?\nDaevid Bornhuetter-Machen, The Madison Edge\n\n\"The main difference between Adolf Hitler and Rush Limbaugh is that \nHitler was original and showed initiative.\" \n--Mort Sahl on The Tom Snyder Radio Show, ABC Radio Network, \nOctober 27, 1992.\n\n(NLNS)--Believe it or not, I was planning this comparative review of \nMein Kampf and Limbaugh's transcribed rant, The Way Things Ought to \nBe before Sahl issued his comparative review. As usual, Sahl's was \nindependent and sharp as a scalpel.\n\tMy effort can only dream of comparing favorably to Mort's. At \nleast it has a fairly popular orginating premise; everyone I'd mention the \nidea to thought it was either divinely inspired or at least past due for \ndelivery.\n\tThose reactions are based on parallels that should be obvious to the \nmost peripheral observer of the Acts of those False Prophets. Both are \nnoted for their galvanizing oratorical skills, which they both used with \npassion to generate a political cult of massive numerical proportions (in \nfact, Limbaugh claims to have an audience of just over 12 million, almost \nidentical to the number of votes cast for Hitler in the April 1932 German \nelection). Both used a myopic social perspective to build the cult, and \nenthusiastically amputated facts from the record to fabricate their \nideological quilt.\n\tThe last point is glaringly documented by passages in the opening \npages of both books. Hitler's example is when, on page 5, he claims the \nGerman nationalist terrorist Leo Schlageter (he bombed part of a railway \nline between Dusseldorf and Duisburg, being caught in the act, in 1923) \nwas \"betrayed to France by a representative of his government\" when \nthere has never been any factual foundation for such a statement.\n\tIn fact, the governments of both the Reich and Prussia, as well as \nthe Vatican, actively intervened to save him from execution, and almost \nsucceeded. Limbaugh follows suit by making the hysterically sarcastic \nclaim in his introduction that \"in a school or during a commencement \nceremony or many other public places... God is unconstitutional.\" Of \ncourse, it's not God but the official imposition of particular concepts of \nGod against an individual's will that's unconstitutional. But Limbaugh is \ntoo gleeful in his talent for distortion to want you to know that.\n\tOf course, one would assume that, by comparing the two books, \nmy main point would be that The Way Things Ought to Be is the modern \nAmerican Mein Kampf. Not really. At the time of the first German version \nof Mein Kampf, Hitler was just four months out of prison (June, 1925), \nand trying to reorganize the Nazis. He used the book to build his dozen \nmillion followers. Limbaugh, on the other hand, came up with his book \nafter building his dozen million. Twelve million went a longer way in \nWeimar Germany that it does in the Republicrat United States.\n\tThus, the more accurate parallels would be that Limbaugh's daily \nthree-hour radio show is the American Mein Kampf, the primary \npropoganda tool used to pump up the angry volume; and that The Way \nThings Ought to Be is actually the American Triumph of the Will, a \ntranslation of the same fascist message into a different medium. Also, the \nprinted word was the more important medium in Weimar Germany, since \nradio was still being thought of by impoverished Germans as a medium of \nluxury in 1925. Today, on the other hand, Americans are more likely to \nspend a few seconds to tune a radio dial at no monetary charge than drop \n$22 for 304 pages of transcripts of the same words.\n\tBut, as Mort Sahl also observed on the radio the other night, some \ncloutmeister of the radical right wants Limbaugh to be a focal point of \ntheir propoganda. (And remember, Sahl is an Al Haig conservative these \ndays.)\n\tMort might not know exactly who Rush's equivalent of Rodolf \nHess is (the book itself suggests Ed McLaughlin, the former president of \nABC radio and now Limbaugh's partner in EFM Media, the radio \nprogram's production company). But Mort himself is a veteran of the talk \nshow, having hosted them in New York, Washington and Los Angeles. He \nknows what evil lurks in the hearts of major market media men. He knows \nthat Limbaugh could not have collected his audience had not the \nopportunity been placed on a silver platter and handed to him. Limbaugh \nearns his money just as honestly as Al Capone did; it's almost worthy of a \nRICO indictment.\n\tOn questions of social issues, there is an overabundance of \nmaterial in the Limbaugh book that seems to echo Hitler's venom. For \nexample:\n\nOn Their Own Qualifications to Control Society\n\tHitler: \"Out of the host of sometimes millions of people, who \nindividually more or less clearly and distinctly guess the truth, partly \nperhaps understand it, one man [author's emphasis] must step forward in \norder to form, with apodeictic force, out of the wavering world of \nimagination of the great masses, granite principles, and to take up the fight \nfor their sole correctness, until out of the playing waves of a free world of \nthought a brazen rock of uniform combination of form and will arises\" \n(page 577).\n\tLimbaugh: \"Who needs the media when they've got me? ... The \nshow is devoted exclusively to what I think ... [the phrase \"with half my \nbrain tied behind my back to make it even\"] denotes the egress of mental \naptitude I require to engage and demolish liberals and others who disagree \nwith me ... It might take four or five years, but I'm convinced The Media \nwill slowly and reluctantly come around to my way of thinking, kicking \nand screaming all the way.\" (pages 266, 21, 299 and 273, respectively.)\n\nOn Religion as the Basis of a Nation\n\tHitler: \"In this world human culture and civilization are \ninseperably bound up with the existence of the Aryan. His dying-off or his \ndecline would again lower upon this earth the dark veils of a time without \nculture ... He who dares to lay hand upon the highest image of the Lord \nsins against the benevolent Creator of this miracle and helps in the \nexpulsion from Paradise.\" (Page 581.)\n\tLimbaugh: \"America was founded as a Judeo-Christian country ... \nBut our intellectual and political elites are often either hostile or \nambivalent toward religion ... People for whom belief in God is at best a \ncharming superstition have managed to ban prayer from the public schools \nfor the last thirty years. Is it only a coincidence that the quality of \nAmerican education has declined ever since?\" (pages 274-5.)\n\nOn Popular Culture as a Reason for Social Collapse\n\tHitler: \"The fight against the poisoning of the soul has to set in ... \nOne has only to look at the menus of our movie houses, vaudevilles and \ntheatres; and one can hardly deny that this is not the right kind of food ... \nTheatre, art, literature, movies, the press, billposters and window displays \nmust be cleaned of the symptoms of a rotting world and put into the \nservice of a moral idea of State and culture.\" (pages 346 and 348.)\n\tLimbaugh: \"Today, Hollywood is in trouble. The reason [is] that \nHollywood has forgotten who its audience is ... They make fun of people \nwho believe in God. They ridicule the traditional family, heterosexuality \nand monagamy. They disparage American heroes.\" (page 254.)\n\nOn the News Meida\n\tHitler: \"The activity of the so-called liberal press was the work of \ngravediggers for the German people and the German Reich. One can pass \nby in silence the Marxist papers of lies ... it's task is only to break the \npeople's folkish and national spine, in order to make it ripe for the yoke of \nslavery of international capital and its masters, the Jews.\" (Page 331.)\n\tLimbaugh: \"Elements of The Media have jumped on the \nbandwagon of leftist causes. The cynical journalist of the past has been \nreplaced in many cases by an enthusiastic cheerleader for causes ... During \nthe Gulf war, CNN correspondent Bernard Shaw [said] CNN is a global \nnetwork. We can't take sides. Cant take sides? --- --- ---! ... If they don't \nrealize that their freedom lies in the United States of America and that \ntherefore they should defend this nation, they are hopelessly misguided \nand, may I suggest, flirting with megalomania.\" (pages 270 and 268.)\n\n*     *     *\n\t\nTo continue these comparative excerpts is certainly possible, but \nultimately too depressing to take in one reading.\n\tAfter putting these books down, there is one undeniable fact that \nhaunts me. In the 1920s, Adolf Hitler fed depressed and frightened \nGermans the opiate of hatred of those around them; in turn, it allowed \nGermans to hand their collective national power to the Nazis. In the 1990s, \nRush Limbaugh is doing the very same thing: distributing hatred to \ndepressed and frightened Americans; in turn, it is helping the American \nradical right to maintain its power base as the 12-year nightmare of the \nReagan-Bush era comes to an end, hoping to rebuild it into their hopes for \nThe Fascist States of America.\n\tAnd if Limbaugh is not as repellant a Hitler, it is only because the \nradical right utilizes Limbaugh as its own gateway opiate. One can only \nwonder what the ultimate drug is they plan to hook America on.\n\nThe Madison Edge can be reached at PO Box 845, Madison, WI 53701-\n0845; (608) 255-4460.\n\n--- 30 ---\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 242, "properties": {"category": "talk.politics.mideast", "text": "From: oyalcin@iastate.edu (Onur Yalcin)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: Iowa State University, Ames, IA\nLines: 38\n\nIn article <1993Apr19.155856.8260@kpc.com> henrik@quayle.kpc.com  writes:\n>In article <1993Apr17.185118.10792@ee.rochester.edu>, terziogl@ee.rochester.edu (Esin Terzioglu) writes:\n>|>\n>|>..[cancellum]... \n>|>\n>\n>\n>Let me clearify Mr. Turkish;\n>\n>ARMENIA is NOT getting \"itchy\". SHE is simply LETTING the WORLD KNOW that SHE\n>WILL NO  LONGER sit there QUIET and LET TURKS get away with their FAMOUS \n>tricks. Armenians DO REMEMBER of the TURKISH invasion of the Greek island of\n>CYPRESS WHILE the world simply WATCHED. \n>\n>\n\nIt is more appropriate to address netters with their names as they appear in\ntheir signatures (I failed to do so since you did not bother to sign your\nposting). Not only because it is the polite thing to do, but also to avoid\naddressing ladies with \"Mr.\", as you have done.\n\nSecondly, the island of which the name is more correctly spelled as Cyprus has\nnever been Greek, but rather, it has been home to a bi-communal society formed\nof Greeks and Turks. It seems that you know as little about the history and\nthe demography of the island, as you know about the essence of Turkey's \nmilitary intervention to it under international agreements.\n\nBe that as it may, an analogy between an act of occupation in history and what\nis going on today on Azerbaijani land, can only be drawn with the expansionist\npolicy that Armenia is now pursuing.\n\nBut, I could agree that it is not for us to issue diagnoses to the political\nconduct of countries, and promulgate them in such terminology as\n\"itchy-bitchy\"... \n\nOnur Yalcin\n\n-- \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 243, "properties": {"category": "sci.space", "text": "From: gene@theporch.raider.net (Gene Wright)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nOrganization: The MacInteresteds of Nashville, Tn.\nLines: 8\n\nYou forget that Apollo was a Government program and had to start \nrelatively from scratch. Some people at NASA think that this could work. \nOne of them replied to me personally after I posted this original message \nseveral days ago. I have heard Jerry Pournelle suggest this idea before.\n\n--\n  gene@theporch.raider.net (Gene Wright)\ntheporch.raider.net  615/297-7951 The MacInteresteds of Nashville\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 244, "properties": {"category": "sci.med", "text": "From: dmp@fig.citib.com (Donna M. Paino)\nSubject: Psoriatic Arthritis - Info Needed Please!\nOriginator: dmp@eagle\nOrganization: Citibank IBISM\nLines: 34\n\n\n\nA friend of mine has been diagnosed with Psoriatic Arthritis, as a result of\ntrauma sustained in a car accident several years ago.  The psoriasis is under\ncontrol but the arthritis part of the illness is not.\n\nAnsaid (non-steroidal anti-inflammatory) worked pretty well for three years but\nisn't helping much now.  My friend is now taking Meclomen (another NSAID) but\nthis isn't helping control the pain at all.  In the past two months my friend\nhas also started taking Azulfadine along with the NSAID medicines, but the\neffects of the combined drugs aren't supposed to be realized for several months.\n\nAs a result of the pain, my friend is having problems sleeping.  Staying in\none position too long is an ordeal.  Another major contributor to pain is that\ntendonitis has now developed (left thumb and hand with numbness at the base of\nthe palm; bottom of feet; shoulders and outer thighs).  The tendonitis is\nquite painful yet my friend's doctor has not recommended any form of treatment\nto relieve it.\n\nThe latest twist is that the doctor has dropped the anti-inflammatories and is\nnow recommending Prednisone.  The hope is that the Prednisone will relieve some\nof the pain from the tendonitis.\n\nMy friend is a 41 year old male who feels like he's 80 (his words, not mine).\n\n\nIf anyone is aware of any new treatments for Psoriatic Arthritis, alternative\ncourses of action, support groups or literature on it, I would be extremely\ngrateful if you could e-mail to me.  If anyone is interested, I'll post a\nsummary to this newsgroup.\n\nthanks in advance,\nDonna\ndmp@fig.citib.com\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 245, "properties": {"category": "sci.med", "text": "From: dougb@comm.mot.com (Doug Bank)\nSubject: Re: Blood Cholesterol -  Gabe Mirkin's advice\nReply-To: dougb@ecs.comm.mot.com\nOrganization: Motorola Land Mobile Products Sector\nNntp-Posting-Host: 145.1.146.35\nLines: 29\n\nIn article <1pka0uINNnqa@mojo.eng.umd.edu>, georgec@eng.umd.edu (George B. Clark) writes:\n|> Forget about total cholesterol when assessing health risk factors.\n|> Instead, use a relationship between LDL and HDL cholesterol:\n|> \n|> If your LDL is       You need an HDL of at least\n|> \n|>       90                 35\n|>      100                 45\n|>      110                 50\n|>      120                 55\n|>      130                 60\n|>      140                 70\n\nGee, what do I do?  My LDL is only 50-60. (and my HDL is only 23-25)\nI must be risking something, but Is it the same risk as those with \nvery high LDL?\n\n|> If your triglycerides are above 300, and your HDL is below 30, the\n|> drug of choice is gemfibrozil (Lopid) taken as a 600mg tablet\n|> thirty minutes before your morning and evening meals.\n\nWhat about exercise and a low-fat diet?  What are the long-term \neffects of this drug?\n\n-- \nDoug Bank                       Private Systems Division\ndougb@ecs.comm.mot.com          Motorola Communications Sector\ndougb@nwu.edu                   Schaumburg, Illinois\ndougb@casbah.acns.nwu.edu       708-576-8207                    \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 246, "properties": {"category": "talk.politics.misc", "text": "From: chaudhary-amar@yale.edu (Amar Chaudhary)\nSubject: Re: Top Ten Signs That It's the Age of Aquarius on Pennsylvania Avenue\nOrganization: Yale University Science & Engineering UNIX(tm), New Haven, CT 06520-2158\nLines: 111\nNNTP-Posting-Host: minerva.cis.yale.edu\n\n\n\n\n> Top Ten Signs That It's the Age of Aquarius on Pennsylvania Avenue\n>\n>\n\n>10. Men in uniform are persona non grata in the home of our Commander in\n>    Chief.\n>\n>9.  Algore's enviro-mentalism will make the Clean Air Act look like an\n>    industrial policy.\n>\n>8.  Higher taxes are once again the prescription for all that ails America.\n>\n>7.  Tax dodging is unpatriotic; draft dodging is a symbol of pride.\n>\n>6.  Beaded curtains hang from the Oval Office windows.\n>\n>5.  Socialism may be dead in the ex-Soviet Union but we are told to prepare\n>    for the nationalization of our health care resources. (These people\n>    must be inhaling something.)\n>\n>4.  Not quite free love but eating Flowers is considered healthy.\n>\n>3.  The feminazis have a President in the White House whether the rest of\n>    us realize it or not.\n>\n>2.  Slick may be the first draft dodger to send American troops into\n>    combat.\n>\n>1.  Slick may be unpopular with middle-class Americans, but he's a BIG HIT\n>    on campus with the professorial class.\n>\n>\n>\n>Copyright (c) Edward A. Ipser, Jr., 1993\n>\n\nHere's my own top ten response to Mr. Ipser's list\n\n\n10.  It's about time we have a President that might actually stand up to the\n     military.  Our men and women in uniform must learn that the world does not\n     revolve around them, and that one of the things they're out there defending\n     is our right to be critical of them, even denounce them.\n\n9.   Let me explain something to you.  Environmental policy and industrial\n     policy MUST go hand in hand.  Our nation, and indeed, our planet cannot\n     afford to continue ignoring this as was done over the last twelve years.\n     Our industrial/environmental position has been downright SHAMEFUL! We\n     must have active government support of the key industries such as,\n     telecommunications, microelectronics, medical, biotech, and environmental\n     tech.  Meanwhile weed out old, inneficient, high-polution, industries\n     that are better left to other nations.  This will make us richer, help\n     produce new jobs, and help the environment.  To give credit where credit\n     is due, I heard a lot of this in a speech by Senator John Kerry (D-MA)\n     tonite.  In addition, it's time we get really, really serious about \n     issues like overpopulation, globabl warming, and ozone depletion.  The\n     planet on which we live should be our utmost priority!\n\n8.   It just so happens that that it takes money to make this country work,\n     to provide the services that people need, and to help solve the problems\n     that need to be solved.  Granted, some things can probably be done more\n     efficiently for less money, and should be.  But some things are going to\n     cost more money and I'm sick and tired of hearing everyone whining about\n     taxes all the time.  You want to live in my country, you pay your fair\n     share!\n\n7.   I can't believe what hypocrites people are when they ask people to give\n     up their lives for their country and then complain about taxes.  If you're\n     willing to send me off to die for some stupid obsession with fighting an\n     enemy which at best doesn't affect us and at worst really should be our\n     friend, then you have no right to tell me you shouldn't pay taxes!\n\n6.   Hey, I think the beaded curtains add a lovely 60's-esque touch!\n\n5.   Look, Canada, Europe, and Japan manage to provide health care for their\n     citizens (and, yes, basic health IS a human right which people are\n     entitled to).  If these nations aren't capitalist enough for you, then\n     I guess we've found something better than capitalism!  There is nothing\n     sacred about the capitalist system, and if something, be it socialism\n     or anything else, works better, then I say let capitalism die.\n\n4.   Make love, not War!\n\n3.   Contrary to popular belief, it is possible to be a male and a feminist\n     at the same time.  To discriminate against or to deny equal opportunity\n     to a MAJORITY of the population is just plain wrong, and trying to force\n     them into some sort of tradition role is even worse.  Women certainly \n     have as much to offer this world as men, and the day that gender\n     discrimination is finally broken it going to make all the revolutions of\n     the past few centuries seem like reform bills.  I look forward to it.\n\n2.   See number 10.\n\n1.   HEY MAN, ACADAMIA RULES!!\n\n        \n\n    -Amar Chaudhary\n\n     Peace, Land, at Matzoh! \n     \"AC in DC in 2008!\"\n\nNone of the opinions here necessary reflect the opinions of Yale University or\nanyone or anything associated with it, except for me, of course :)\n\nPlease post reponses or send them to chaudhary-amar@cs.yale.edu\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 247, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Mikael Fredriksson <Mikael.Fredriksson@macexchange.se>\nSubject: RE-Re: Quadra SCSI Problems???\nX-Mailer: TeleFinder (version 3.0)\r\nOrganization: Mac Exchange BBS\r\n             BBS +46-31-948290, FAX +46-31-948294\r\n             PL 3813,S-437 92 Lindome, Sweden\r\nLines: 5\n\n \rIn article <C5L39p.2qz@news.udel.edu>, johnston@me.udel.edu (Bill Johnston) writes:\r|> In article <1993Apr16.144750.1568@mintaka.lcs.mit.edu> nodine@lcs.mit.edu (Mark H. Nodine) writes:\r|> >I don't know about the specific problem mentioned in your\r|> >message, but I definitely had SCSI problems between my\r|> >Q700 and my venerable Jasmine Megadrive 10 cartridge\r|> >drives.  My solution was to get Silverlining.  None of\r|> >the loops that involved blind writes worked to the drives;\nop that worked was the \"Macintosh\r|> >Software\" loop (whatever that means).\r|> \r|> I doubt this is a Quadra-specific problem.  I had to get\r|> rid of my \"venerable\" Bernoulli 20 last year (with enough \r|> cartridges purchased at ~$90 each to make the whole thing \r|> worth more than my whole computer ;).  The tech support guys\r|> at Ocean Microsystems suggested that some third-party drivers \r|> might fix the problem - in my case the cartridges wouldn't \r|> format/mount/partition for A/UX.  \r\nhat the Megadrives worked perfectly on both my\rMac Plus and my Powerbook 140.  It was for this reason I assumed\rthe problem had something to do with the Quadra.  Even with the\rQuadra, they mostly worked OK.  The problem occurred when I ejected\ra cartridge from a drive: it would start popping up dialog boxes\rsaying \"This cartridge must be formatted with Jasmine Driveware\"\reven though there was no cartridge in the drive.\r\r\t--Mark\r\nt to format) I have this confirmed from Apple Computer in Sweden (I work for a Apple dealer as a service tech). We had problems that Quadras wanted to format a diskette or a Syquest when ther was nothing in the drive. This problem was fixed sytem 7.1\r\rMikael Fredriksson\r\r-------------------------------------------------\remail: mikael_fredriksson@macexchange.se\r\rMac Exchange BBS\rPL 3813\rS-437 92 Lindome\rSweden\rBBS +46-31-948290 (5 lines)\rFAX +46-31-948294\rFIDO 2:203/211\r  \n<Disclaimer: Mac Exchange BBS cannot be held responsible for the contents of this message>\r\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 248, "properties": {"category": "soc.religion.christian", "text": "From: alastair@farli.otago.ac.nz (Alastair Thomson)\nSubject: Does 'Just/justifiable War' exist?\nOrganization: University of Otago\nLines: 107\n\nHi there netters,\nI have a question I would very much like to see some discussion on:\nIs there such a thing as a 'justifible' war? \n\nWhat I would love to see it some basis from scripture for either: \"All war  \nis wrong\", or \"Some war is justifiable\". \n\nTo get things started I would like to outline why I am asking the  \nquestion. In my high school days I had been quite involved in the the New  \nZealand Cadet Forces (This is a bit like ROTC from what I understand of  \nit, but with a lot more emphasis on fun than military career training).  \nThrough this I became extremely enamoured of flying, have become involved  \nin the sport of gliding, and have a great interest in military aviation  \nhardware as the very best a 'real' flyer could ask for. My favourite  \ncomputer games are the accurate simulations of military aircraft, both  \npast and present. \n\nI became a Christian about 10 years ago, and at the time rejected all  \nmilitary activity as immoral. For me, all war was in complete opposition  \nto God's commandments to love one another, especially one's enemies.\n\nDuring the war in Iraq, I found myself with great excitement listening to  \nthe reports of the effectiveness of the the attacks using the aviation  \ntechnology I so admire - The F117A 'Stealh' bomber, the F14, F15 and F16  \nstrike aircraft, etc. After the war concluded I began to really enjoy  \nsimulations based around this conflict - Great to go and bomb Saddam's  \nbio-weapons plants in an F117A on my computer, or shoot down some of his  \nMig's in an F16. The simulation of the death of people was a wonderful  \ngame. I imagine the real pilots view the real thing in much the same way.  \nOne only has to look at the language used to see that the personal impact  \nof war is ignored: A building containing people, or an aircraft flown by a  \npilot is simply a 'target'. Dead civilians are 'collateral damage'. These  \neuphanisms are a way of removing the reality of war from the people whose  \nsupport are necessary for the continued waging of war - One only has to  \nlook at Vietnam to see how important public opinion is.\n\nNow we see troops sponsored by the United Nations entering Somalia, and  \nthe prospect of military intervention in the Muslim/Croat/Serb conflict in  \nthe former Yugoslavia. My revulsion in particular to the siege of  \nSarajevo, and in the last few days of (sorry 'bout spelling) Sebrenitsa,  \nhas caused me to rethink where I stand on 'justifiable' war.\n\nI will list several wars in the last 50 years I can look at each, and say  \n- Yes this may have been justifible, this may not. These are simply my gut  \nreactions to each - In many cases with the benefit of the impartiality  \nhistory brings. Let me go through a few and state some of my reasons for  \nmy reaction - I am not a historian, so excuse any historical blunders, I  \nam working from popular history as it is known in New Zealand.\n\n1. The Second World War\n\t- Murder of Jews - Hitler had to be stopped.\n\t- Massive civilian casualties on both sides \n\t\t- Dresden, Hiroshima/Nagasaki\n\t- Probably justifiable.\n\n2. Korean war\n\t- Political expansionism by North Korea, basically\n\t  communism vs. capitalism.\n\t- Probably not justifiable.\n\n3. Vietnam\n\t- As above, worsened by US involvement.\n\n4. Vietnamese invasion of Cambodia.\n\t- Genocide by Khmer Rouge.\n\t- Probably justifiable.\n\n5. Iraq (Desert Storm)\n\t- Political expansionism, threat to world oil supply\n\t- Other factors such as genocide.\n\t- Not sure, but probably justifiable\n\n6. A future involvement in Bosnia\n\t- Genocide - so called 'Ethnic Cleansing'\n\t- Emotive - much TV coverage of atrocities and civilian casualties.\n\t- Probably justifiable\n\n7. Possible future use of nuclear weapons - tactical or strategic,  \nsomewhere in the world by the US in response to someone else - e.g. Libya  \nor Israel.\n\t- My feelings in this are simple\n\t- Nuclear war/weapons are abhorrent\n\t- I love the New Zealand government's stand on banning all nuclear\n\t  armed or powered warships from NZ port.\n\t- Never justifiable.\n\nThese are my own views, I have looked at scripture, and I am confused. I  \nwould appreciate others view, particularly those based on scripture. I  \n*don't* want a - Naaahh, yer wrong - I think answers 8-).\n\nThanks for your help.\n\n==========================================================================\n                                    |\nAlastair Thomson,                   | Phone +64-3-479-8347\nChief Programmer,                   | Fax   +64-3-479-8529\nThe Black Albatross Porject,        |\nUniversity of Otago,                |\nDepartment of Computer Science,     | e-mail alastair@farli.otago.ac.nz\nP.O. Box 56                         |        athomson@otago.ac.nz\nDunedin                             | NeXTmail Welcome\nNew Zealand                         |\n \n   \"God loved the world so much, that he gave us His Son, to die in \n    our place, so that we may have eternal life\" John 3:16, paraphrase\n\n==========================================================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 249, "properties": {"category": "sci.electronics", "text": "From: behnke@FNALF.FNAL.GOV (M.L. 'Broomen' Behnke)\nSubject: Re: Electric power line \"balls\"\nArticle-I.D.: fnnews.1psrgl$6cb\nReply-To: behnke@FNALF.FNAL.GOV\nDistribution: usa\nOrganization: Fermi National Accelerator Lab\nLines: 27\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <1993Apr6.203237.20841@eagle.lerc.nasa.gov>, fsset@bach.lerc.nasa.gov (Scott Townsend) writes:\n>I got a question from my dad which I really can't answer and I'd appreciate\n>some net.wisdom.\n>\n>His question is about some 18-24\" diameter balls which are attached to\n>electric power lines in his area.  He's seen up to a half dozen between\n>two poles.  Neither of us have any experience with electric power distribution.\n>My only guess was that they may be a capacitive device to equalize the\n>inductance of the grid, but why so many between two poles?.\n>\n>Anyone know what they really are?  Is there a related FAQ for this?\n>Is there a better group to submit to?\n>\n>We'd both appreciate some enlightenment.\n>\n\n The balls are used to reduce the amplitude of oscillations of the wire during\nperiods of high winds.  I've seen what looks like paint cans filled with\nconcrete used for the same purpose.\nMike Behnke             | Senior Tech/Advisor | Quid est illuidin aqua??\nFermi Nat Accel Lab     | Equipment Suuport   |\nBatavia, Il.            | Computing Div       | PISTRIX!!  PISTRIX!!\nBEHNKE@FNALF.FNAL.GOV   |                     |\n\nMy opinions are my own, not of the lab. So, if you don't like them, call\n\n1-800-UWH-INER\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 250, "properties": {"category": "comp.graphics", "text": "From: d9hh@dtek.chalmers.se (Henrik Harmsen)\nSubject: Re: 16 million vs 65 thousand colors\nNntp-Posting-Host: hacke11.dtek.chalmers.se\nOrganization: Chalmers University of Technology, Gothenburg Sweden\nLines: 37\n\nandrey@cco.caltech.edu (Andre T. Yew) writes:\n\n>d9hh@dtek.chalmers.se (Henrik Harmsen) writes:\n\n>>1-4 bits per R/G/B gives horrible machbanding visible in almost any picture.\n\n>>5 bits per R/G/B (32768, 65000 colors) gives visible machbanding\n\n>>color-gradient picture has _almost_ no machbanding. This color-resolution is \n\n>>see some small machbanding on the smooth color-gradient picture, but all in all,\n>>There _ARE_ situiations where you get visible mach-banding even in\n>>a 24 bit card. If\n>>you create a very smooth color gradient of dark-green-white-yellow\n>>or something and turn\n>>up the contrast on the monitor, you will probably see some mach-banding.\n\n>    While I don't mean to damn Henrik's attempt to be helpful here,\n>he's using a common misconception that should be corrected.\n\n>    Mach banding will occur for any image.  It is not the color\n>quantization you see when you don't have enough bits.  It is the\n>human eye's response to transitions or edges between intensities.\n>The result is that colors near the transistion look brighter on\n>the brighter side and darker on the darker side.\n\n>--Andre\n\nYeah, of course... The term 'mach banding' was not the correct one, it should've\nbeen 'color quantization effect'. Although a bad color quantization effect could\nresult in some visible mach-bands on a picture that was smooth before it was\nquantizised.\n\n--\nHenrik Harmsen     Internet:  d9hh@dtek.chalmers.se\n               Chalmers University of Technology, Sweden. \n      \"I haven't lost my mind -- it's backed up on tape somewhere.\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 251, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 90\n\nIn article <1r21g2INNeah@clem.handheld.com> jmd@cube.handheld.com (Jim De Arras) writes:\n>In article <C5sou8.LnB@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n>writes:\n>> In article <1993Apr20.163730.16128@guinness.idbsu.edu> betz@gozer.idbsu.edu  \n>(Andrew Betz) writes:\n>> >In article <C5rynw.Iz8@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n>writes:\n>> >>And I suppose the FBI also prevented them from coming out with their \n>> >>hands up while national tv cameras watch.\n>> >>\n>> >Watch from where?  Two miles away?  Far enough away that whatever\n>> >really happenned must be explained through the vengeful filter of\n>> >a humiliated agency that said (quote!) \"Enough is enough.\"\n>> \n>> Please tell me what you think would have happened had the people \n>> come out with their hands up several weeks ago.\n>> \n>It didn't happen.\n\nAnd who is responsible for it not happening?\nCertainly not the children.  Koresh was calling the shots.  He was \ntalking with his lawyer and the FBI.  Since others were released safely, \nthere is no sane reason for keeping the children inside the compound.\n\n>> >>scenario that is simplest and most plausible.  I do not generally \n>> >>believe in conspiracy theories that involve complicated and unlikely \n>> >>scenarios.\n>> >\n>> >The FBI sent letters to Martin Luther King's wife insinuating\n>> >that MLK was having an affair!  Again, please tell us exactly\n>> >how much you trust our supposedly benevolent government.\n>> \n>> More than someone who would not release children from the compound.\n>> \n>Obviously.  You are an authority worshiper.\n\nNot at all.  Are you a Koresh worshiper?\n\n>> I.e., more than David Koresh/Vernon Howell/\"Jesus Christ\".\n>> I saw lengthy excerpts from an Australian documentary made in \n>> 1992 that clearly showed that this was a cult.\n>\n>Give me a camera, and time with you, and I can present excerpts that show you  \n>to be a cult leader.  Guarenteed. \n\nThanks for my laugh of the day!  Definitely a very silly supposition.\n\n>You should at least view the whole  \n>documentary before you claim it as a source.\n\nI would if I could.  The news show that showed the lengthy excerpts also \nhad interviews with the filmmaker who made the documentary who basically \nconfirmed what was shown in the excerpts from the time he spent at the \ncompound in 1992.\n\n>> I am not pleased with the BATF handling of the affair.  I think they \n>> bungled it badly from the start.  But I don't think they are \n>> responsible for the fire, which started in two different places.\n>\n>Two places, eh?  You saw this?  Or did the wonderful FBI tell you this?  \n>I saw one place.\n\nI believe that this was reported by local radio reporters on site.\nA fire started in a three story tower at the same time as the two \nstory window shown on the tv coverage.\n\n>> >>The BATF is by no means devoid of fault in the handling of this affair.\n>> >>But to suggest that they may have intentionally started the fire is \n>> >>ludicrous.\n>> >\n>> >I suspect that there were plenty of camerapeople willing to\n>> >risk small arms fire to get some good footage.  These people\n>> >were told to get the hell out of camera range.  Why?\n>\n>Couldn't answer this one, eh?  This is the most important question of all, it  \n>is the root cause of all the other suspicion.\n\nI thought about mentioning how Reagan and the military treated the press \nin Grenada and how that set the precedent, but decided it wasn't worthy \nof discussion.  If the news reporter got shot, you can bet his family \nwould sue the government for letting him into the danger area.\n\nThe root cause of suspicion in my mind is why 100 people wouldn't flee \na building that had numerous exits during the 30 minutes time it took \nto burn down.  Or why didn't they flee hours earlier when the tear gas was \nfirst introduced?  I can find no rational explanation for their behavior.\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 252, "properties": {"category": "rec.autos", "text": "From: markm@bigfoot.sps.mot.com (Mark Monninger)\nSubject: Car buying story, was: Christ, another dealer service scam...\nNntp-Posting-Host: 223.250.10.7\nReply-To: rapw20@email.sps.mot.com\nOrganization: SPS\nDistribution: usa\nLines: 57\n\nIn article <1qhs7dINNj2b@hp-col.col.hp.com> tvervaek@col.hp.com (Tom  \nVervaeke) writes:\n>    ... experience with Jeep service dept ...\n>\nWhile not exactly a service incident, I had a similar experience recently  \nwhen I bought a new truck.\n\nI had picked out the vehicle I wanted and after a little haggling we  \nagreed on a price. I wrote them a check for the down payment plus tax\nand license and told them I'd be back that evening to pick up the truck.  \nWhen I returned, I had to wait about an hour before the finance guy could  \nget to me. When I finally got in there, everything went smoothly until he  \nstarted adding up the numbers. He then discovered that they had  \nmiscalculated the tax & license by about $150. He then said he needed  \nanother $150 from me. I said we had already agreed on a price and it was  \ntheir problem, I wasn't giving them any more money. The finance guy then  \nbrought in the manager on duty who proceeded to give me a hard time. I  \nreminded him that I was the customer and I didn't think I should be  \ntreated like that and that if he didn't back off he could forget the whole  \ndeal. He made some smart remark so I told him where he could stick it,  \nsnatched back my check and left. Needless to say, they were not pleased by  \nthe turn of events.\n\nEarly the next morning I got a call from the general sales manager wanting  \nto know what happened. I related the story and he apologised profusely and  \nasked if there was anything they could do to change my mind. I told him  \nthat if they gave me the truck for free I probably still wouldn't take it,  \nthat there were other dealers in town, I was a repeat customer of theirs  \nand that they should learn how to treat customers,etc,etc...I was still  \npretty steamed about the whole affair. He gave me the line about hating to  \nlose a customer and they would try to find a solution, etc, etc. I told  \nhim not to bother, thanks, I'd go somewhere else.\n\nA couple hours later, the owner of the dealership called me, all  \napologetic, etc, etc, etc, and said that they would cover the $150 plus  \nknock another $400 off the price of the truck. I told him I'd think about  \nit and he gave me his private, direct phone number, his secretary's name,  \nand assured me that they valued me as a customer, etc etc etc....\n\nI thought about it for a few hours and discussed it with my wife and we  \ndecided, what the hell...that was a pretty decent deal, so I called him  \nback and accepted his offer. When I went back the next day to pick up the  \ntruck, I received the royal treatment. Everyone seemed to know about the  \nincident, even the lot boy. Everything went smoothly and I was out of  \nthere in my new truck in about 30 mins.\n\nSo, I guess I'm a reasonably satisfied customer. However, it should not  \nhave happened in the first place. I was a bit shocked to have a sales  \nperson talk to me like that. I don't expect them to bow and grovel, but I  \nsure don't expect to be given a hard time either, esp. when it's their  \nmistake.\n\nAnyway, I'm happy with the truck and it turned out to be a couple hundred  \ndollars under invoice and they paid most of the first year's license fee.  \nI'm not sure whether I'll go back to that dealer, tho.\n\nMark\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 253, "properties": {"category": "misc.forsale", "text": "From: davis@b11.b11.ingr.com (Chris Davis)\nSubject: For Sale or Trade: IBM Games\nOrganization: Intergraph Corp. Huntsville, AL\nLines: 29\n\n               ***** IBM GAMES FOR SALE OR TRADE *****\n\no ADVENTURE\n\n  Eric the Unready -- Legend -- $35\n  King's Quest V -- Sierra -- CD-ROM edition -- $35\n\no SPORTS\n\n  Michael Jordan In Flight -- Electronic Arts -- $35\n  Mike Ditka's Ultimate Football -- Accolade -- $30\n  David Ledbetter's Greens -- Microprose -- $30\n\no STRATEGY\n\n  Risk -- Virgin -- $10\n\n\nThis software comes with all original packaging and manuals.\nPrice includes ground shipping to continental US.\n\nI will trade for current games; send me your list...\n\n--\n\nchris davis\nccdavis@nuwave.b11.ingr.com\n205-730-6236\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 254, "properties": {"category": "misc.forsale", "text": "From: harter5255@iscsvax.uni.edu\nSubject: Not all deals are bad...\nOrganization: University of Northern Iowa\nLines: 30\n\nFellow netters,\n\nI just wanted to let you know that there are a few honest and good people out\nthere (even outside of Iowa).  I'm sorry if anyone thinks that I am wasting\nspace, but I thought you might want some relief from the \"So-and-so is a thief\"\nposts.  Not that I think we shouldn't hear about the bad deals, but it would be\nnice to hear some good news once in a while.\n\nAfter seeing his post on one of the for sale groups, I mailed Mr. Mark Miller a\nrequest for his copy of WordPerfect 5.1 for DOS.  He suggested a price of $50\nin his ad, but when I phoned him, he quoted $40 plus shipping.  That sounded\nmore than fair to me, so I told him that I would send him a check the next day. \nImagine my surprise when I logged into my account the following day and found a\nmessage from him saying that it had already been sold (after I had just mailed\nthe money order).  After another E-Mail message to him, he apologized and\nassured me that it was a mistake - I was the one who he was holding it for.  He\nsent the package as soon as he got the money, along with a letter stating a\ntransfer of license.  This wasn't good enough for WordPerfect, so I asked him\nto fill out one of their forms.  No problem - we thought.  It took three times\nto get it to the right address (my fault).  Anyway, he mailed me the form for\nmy signature and included a Workbook that I had no idea was included in the\ndeal.  Again, he apologized for not sending it before.  I now have the world's\nbest word processor and a renewed hope in the world that there are a few good\nones left.  I recoend that if you ever see that Mark is selling anything thatat\nyou may want, give him a call.  If I had the choice, I would purchase all of my\nsoftware from him.\n\nBravo, Mr. Miller!\n\n- Kevin Harter\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 255, "properties": {"category": "sci.med", "text": "From: carl@SOL1.GPS.CALTECH.EDU (Carl J Lydick)\nSubject: Re: Glutamate\nOrganization: HST Wide Field/Planetary Camera\nLines: 15\nDistribution: world\nReply-To: carl@SOL1.GPS.CALTECH.EDU\nNNTP-Posting-Host: sol1.gps.caltech.edu\n\nIn article <1993Apr18.163212.9577@walter.bellcore.com>, jchen@wind.bellcore.com (Jason Chen) writes:\n=There is no contradiction here. It is essential in the sense that your\n=body needs it. It is non-essential in the sense that your body can\n=produce enough of it without supplement.\n\nAnd when you're in a technical discussion of amino acids, it's the latter\ndefinition that's used almost universally.\n--------------------------------------------------------------------------------\nCarl J Lydick | INTERnet: CARL@SOL1.GPS.CALTECH.EDU | NSI/HEPnet: SOL1::CARL\n\nDisclaimer:  Hey, I understand VAXen and VMS.  That's what I get paid for.  My\nunderstanding of astronomy is purely at the amateur level (or below).  So\nunless what I'm saying is directly related to VAX/VMS, don't hold me or my\norganization responsible for it.  If it IS related to VAX/VMS, you can try to\nhold me responsible for it, but my organization had nothing to do with it.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 256, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: The battle is joined\nOriginator: rdippold@qualcom.qualcomm.com\nNntp-Posting-Host: qualcom.qualcomm.com\nOrganization: Qualcomm, Inc., San Diego, CA\nLines: 19\n\nIn article <1993Apr16.181040.9381@qualcomm.com> karn@servo.qualcomm.com (Phil Karn) writes:\n>It looks like Dorothy Denning's wrong-headed ideas have gotten to the\n>Administration even sooner than we feared.\n\nIf the Administration is this far along, is it possible that the\ngovernment been working on it for a while and has been using the\nDennings to prime the pump, so to speak, or as the Judas goat?\nWhether paid off, just gullible, or what, doesn't really matter.\n\nIt might also be possible that the NSA / whoever has had the idea for\nthis for quite a while, has been promoting it (Denning, et al) and\nsiezed the new opportunity - a new administration who wants to spend\nmore money on espionage than Bush did.\n\nWhatever, i'm not so sure that the cause/effect order is totally\nobvious.\n-- \nYou will lose your \"Drug Free And Proud\" ribbon.  Two days later, you will\ncatch a neighborhood kid smoking it.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.014+0000", "event": "documents", "entityId": 257, "properties": {"category": "soc.religion.christian", "text": "From: xx155@yfn.ysu.edu (Family Magazine Sysops)\nSubject: WITNESS & PROOF OF CHRIST'S RESURRECTION\nReply-To: xx155@yfn.ysu.edu (Family Magazine Sysops)\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 143\n\n\n     IMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM;\n     :        T H E   W I T N E S S   &   P R O O F   O F        :\n     :                                                           :\n     :   J E S U S   C H R I S T ' S   R E S U R R E C T I O N   :\n     :                                                           :\n     :                 F R O M   T H E   D E A D                 :\n     HMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM<\n\n* The WITNESS Of The LORD JESUS CHRIST:\n\nMark 8:31 And He began to teach them that the Son of Man must suffer\n     many things and be rejected by the elders and the chief priests\n     and the scribes, and be killed, and after three days rise again.\n                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^\nMark 9:31 For He was teaching His disciples and telling them, \"The Son\n     of Man is to be delivered into the hands of men, and they will\n     kill Him; and when He has been killed, He will rise three days\n     later.\"                                ^^^^^^^^^^^^^^^^^^^^^^^\n     ^^^^^\nMark 10:34 \"And they will mock Him and spit upon Him, and scourge Him,\n     and kill Him, and three days later He will rise again.\"\n                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nMark 12:26 \"But regarding the fact that the dead rise again, have you\n     not read in the book of Moses, in the passage about the burning\n     bush, how God spoke to him, saying, 'I am the God of Abraham, and\n     the God of Isaac, and the God of Jacob'?\n\nLuke 18:33 and after they have scourged Him, they will kill Him; and\n     the third day He will rise again. \"\n     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nLuke 24:46 and He said to them, \"Thus it is written, that the Christ\n     should suffer and rise again from the dead the third day;^^^^^^\n     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nJohn 11:25 Jesus said to her, \"I am the resurrection and the life; he\n     who believes in Me shall live even if he dies,\n\nJohn 20:9 For as yet they did not understand the Scripture, that He\n     must rise again from the dead.                              ^^\n     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nActs 17:3 ...explaining and giving evidence that the Christ had to\n     suffer and rise again from the dead, and saying, \"This Jesus whom\n     I am proclaiming to you is the Christ.\"\n\n* The WITNESS Of The APOSTLE PAUL:  1 Corinthians 15:1-26\n\n 1 Now I make known to you, brethren, the gospel which I preached to\n   you, which also you received, in which also you stand,\n\n 2 by which also you are saved, if you hold fast the word which I\n   preached to you, unless you believed in vain.\n\n 3 For I delivered to you as of first importance what I also received,\n   that Christ died for our sins according to the Scriptures,\n\n 4 and that He was buried, and that He was raised on the third day\n   according to the Scriptures,     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n 5 and that He appeared to Cephas, then to the twelve.\n\n 6 After that He appeared to more than five hundred brethren at one\n   time, most of whom remain until now, but some have fallen asleep;\n\n 7 then He appeared to James, then to all the apostles;\n\n 8 and last of all, as it were to one untimely born, He appeared to me\n   also.\n\n 9 For I am the least of the apostles, who am not fit to be called an\n   apostle, because I persecuted the church of God.\n\n10 But by the grace of God I am what I am, and His grace toward me did\n   not prove vain; but I labored even more than all of them, yet not I,\n   but the grace of God with me.\n\n11 Whether then it was I or they, so we preach and so you believed.\n\n12 Now if Christ is preached, that He has been raised from the dead,\n   how do some among you say that there is no resurrection of the dead?\n\n13 But if there is no resurrection of the dead, not even Christ has\n   been raised;\n\n14 and if Christ has not been raised, then our preaching is vain, your\n   faith also is vain.\n\n15 Moreover we are even found to be false witnesses of God, because we\n   witnessed against God that He raised Christ, whom He did not raise,\n   if in fact the dead are not raised.\n\n16 For if the dead are not raised, not even Christ has been raised;\n\n17 and if Christ has not been raised, your faith is worthless; you are\n   still in your sins.\n\n18 Then those also who have fallen asleep in Christ have perished.\n\n19 If we have hoped in Christ in this life only, we are of all men most\n   to be pitied.\n\n20 BUT NOW CHRIST HAS BEEN RAISED FROM THE DEAD, the first fruits of\n   those who are asleep.\n\n21 For since by a man came death, by a man also came the resurrection\n   of the dead.\n\n22 For as in Adam all die, so also in Christ all shall be made alive.\n\n23 But each in his own order: Christ the first fruits, after that those\n   who are Christ's at His coming,\n\n24 then comes the end, when He delivers up the kingdom to the God and\n   Father, when He has abolished all rule and all authority and power.\n\n25 For He must reign until He has put all His enemies under His feet.\n\n26 The last enemy that will be abolished is death.\n\n\n             LOGICAL PROOFS OF JESUS CHRIST'S RESURRECTION\n\n            1.  Jesus's enemies *would not* have stolen His\n                body because that would have perpetrated the\n                resurrection--the very opposite of what they\n                desired.\n\n            2.  Jesus' disciples *could not* have stolen His\n                body because Pontius Pilate established guards\n                to stand watch over the tomb lest His body be\n                stolen.\n\n            3.  Sadly (and ironically), many of Jesus' disciples\n                did not believe in the Resurrection until Jesus\n                had risen from the dead.\n\n            4.  In nearly 20 centuries, no body has ever been\n                produced to refute Jesus' assertion that He\n                *would indeed* rise from the dead.\n\n            5.  The probability of being able to perpetrate such\n                a hoax successfully upon the entire world for\n                nearly 20 centuries is astronomically negative!\n                                       ^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 258, "properties": {"category": "alt.atheism", "text": "From: edm@twisto.compaq.com (Ed McCreary)\nSubject: Re: Where are they now?\nIn-Reply-To: acooper@mac.cc.macalstr.edu's message of 15 Apr 93 11: 17:13 -0600\nOrganization: Compaq Computer Corp\n\t<1993Apr15.111713.4726@mac.cc.macalstr.edu>\nLines: 18\n\na> In article <1qi156INNf9n@senator-bedfellow.MIT.EDU>, tcbruno@athena.mit.edu (Tom Bruno) writes:\n> \n..stuff deleted...\n> \n> Which brings me to the point of my posting.  How many people out there have \n> been around alt.atheism since 1990?  I've done my damnedest to stay on top of\n...more stuff deleted...\n\nHmm, USENET got it's collective hooks into me around 1987 or so right after I\nswitched to engineering.  I'd say I started reading alt.atheism around 1988-89.\nI've probably not posted more than 50 messages in the time since then though.\nI'll never understand how people can find the time to write so much.  I\ncan barely keep up as it is.\n\n--\nEd McCreary                                               ,__o\nedm@twisto.compaq.com                                   _-\\_<, \n\"If it were not for laughter, there would be no Tao.\"  (*)/'(*)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 259, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nSummary: Limited governments versus failed governments\nOrganization: Just a Boomer, Inc.\nLines: 49\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <16APR199317110543@rigel.tamu.edu> gmw0622@rigel.tamu.edu (Mr. Grinch) writes:\n>In article <1993Apr15.170731.8797@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes...\n>\n>> \n>:This is a strawman argument and fails on several grounds.  In this case,\n>:\"limited\" and \"big\" government are not defined.  I would point out that\n>:Lebanon, Somalia, and the former Yugoslavia are by some definitions nations\n>:with \"limited\" government, while the US, Canada, and nations in Western \n>:Europe (where \"people would rather live\") are often pointed out as \n>:nations with \"big government\" from a libertarian point of view.  \n>\n>Well, let me help by explaining the difference between a linited government\n>and a failed government.  A limited government has its powers clearly\n>circumscribed,  but is fully capable of enforcing its decisions within\n>those circumscribed areas.  A failed government is incapable of\n>enforcing its decisions except sporadicly.  Two completely different beasts.\n\nOf course, one again faces the question of how one circumscribes government\npower (and keeps it circumscribed) in a complex society when it is in the \ninterest of neither capitalists nor consumers to refrain from using \ngovernment power for their own ends.  But apart from that little \nconundrum...\n\nIt would seem that a society with a \"failed\" government would be an ideal\nsetting for libertarian ideals to be implemented.  Now why do you suppose\nthat never seems to occur?...\n>\n>> \n>:The argument is not between those who want \"limited\" government and those\n>:who want \"unlimited\" government.  It is between those who believe\n>:government regulation in a capitalist economy serves worthwhile ends and\n>:those who believe such regulation is neither desirable on empirical \n>:grounds nor justifiable on ideological grounds.\n>\n>\n>...\"regulation\" is such a vauge word...  \n\nI wouldn't call it \"vague.\"  I'd call it elastic.  All \"regulation\" is \nnot necessarily the same.  By opposing all government regulation, some \nlibertarians treat every system from a command economy to those that\nregulate relatively free markets as identical.  That's one reason\nmany of the rest of us find their analysis to be simplistic. \n\njsh\n>Mr. Grinch\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 260, "properties": {"category": "rec.motorcycles", "text": "From: ivan@erich.triumf.ca (Ivan D. Reid)\nSubject: Re: Accident report\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: erich.triumf.ca\nOrganization: TRIUMF: Tri-University Meson Facility\nLines: 36\n\nIn article <1992Jun25.132424.20760@prl.philips.nl>, mcardle@prl.philips.nl (Owen McArdle) writes...\n>In article <ranck.253@vtvm1.cc.vt.edu> ranck@vtvm1.cc.vt.edu (Wm. L. Ranck) writes:\n>--In article <1992Jun23.214330.18592@bcrka451.bnr.ca> whitton@bnr.ca (Mark Whitton) writes:\n>--\n>-->It turns out that the trailer lights were not hooked up\n>-->to the truck.  \n>--\n>--Yep, basic rule: *Never* expect or believe turn signals completely.\n>--Around here, and many other places, people just don't signal at all.\n>--And, sometimes the signals aren't working.  Sometimes they get left on.\n> \n>\tThe scary bit about this is the is the non-availability of rear-\n>lights at all. Now living in the Netherlands I've learned that the only\n>reliable indicators are those red ones which go on at both sides at once -\n>some people call them brake lights. Once they light up, expect ANYTHING\n>to occur in front of you :-). (It's not just the Dutch though)\n> \n>\tHowever I never realised how much I relied on this until I got \n>caught a few times behind someone whose lights didn't work AT ALL. Once \n>I'd sussed it out it wasn't so bad (knowing it is half the battle), but \n>it's a great way to find out that you've been following someone too \n>closely :-). Now I try to check for lights all the time, 'cos that split \n>second can make all the difference (though it shouldn't be necessary, I \n>know),\n> \n>Owen.\n\tWhat used to peeve me in Canada was the cars with bloody _red_ rear\nindicators.  You'd see a single red light come on and think, \"Now, is he\nstopping but one brake-lamp is not working, or does he have those dumb bloody\n_red_ rear indicators?\"  This being Survival 101, you have to assume he's\nbraking and take the appropriate actions, until such time as the light goes\nout and on again, after which you can be reasonably certain it's a bloody _red_\nrear indicator.\n\nIvan Reid, Paul Scherrer Institute, CH.     \t\t\tivan@cvax.psi.ch\nGSX600F, RG250WD.\tSI=2.66     \"You Porsche. Me pass!\"\tDoD #484\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 261, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: lcornell@stein.u.washington.edu (Linda D. Cornell)\nSubject: Any video gurus feel like attacking this quirk...?\nArticle-I.D.: shelley.1qsce9INNgd0\nDistribution: world\nOrganization: University of Washington, Seattle\nLines: 37\nNNTP-Posting-Host: stein.u.washington.edu\n\nHi there,\nI'm having a bizarre video problem within Windows 3.1.  I have a 286 with\na GVGA-16 video board.  I've been using the standard Windows VGA driver\nwith other similarly configured computers.\n\nI am thinking that my problem is with the way Windows refreshes it's screen.\n\nThe problem is that once Windows has been envoked, the colors start\nchanging themselves.  At first I thought it was hardware, but if you open\na full screen DOS program from within the Windows session, you don't have\nany problems until you get back to Windows - however, when you initially\nreturn to Windows, the original colors get refreshed properly.\n\nAlso, it is not a uniform color change - so if you are in solitaire, the\ndesign on the back of the card maintains it's original color scheme, but\nthe white fronts of the cards will turn grey, then blue, etc.\n\nThe color changes keep getting darker until finally everything is a dark\npurple-ish black.  If you pop out to DOS and exit back to Windows - the\nscreen gets refreshed again.\n\nIf I don't log into Windows and just do DOS things from the Novell\nnetwork, everything is fine.\n\nI originally loaded the software by bouncing it down to the net from the\nother machine I had just finished configuring, then from the net to this\nmachine.  When I ran into problems, I deleted everything on this machine\nand the net, and tried bouncing it again.  When that didn't work, I tried\nreloading Windows to no avail.\n\nAny thoughts on things to check out?  I am totally baffled!\n\nThanks in advance for any assistance and instruction!\n\nLinda Cornell\nlcornell@u.washington.edu\nUW Office of Research\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 262, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: sudden numbness in arm\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 48\n\nIn article <C5u5LG.C3G@gpu.utcc.utoronto.ca> molnar@Bisco.CAnet.CA (Tom Molnar) writes:\n>I experienced a sudden numbness in my left arm this morning.  Just after\n>I completed my 4th set of deep squats.  Today was my weight training\n>day and I was just beginning my routine.  All of a sudden at the end of\n>the 4th set my arm felt like it had gone to sleep.  It was cold, turned pale,\n>and lost 60% of its strength.  The weight I used for squats wasn't that\n>heavy, I was working hard but not at 100% effort.  I waited for a few \n>minutes, trying to shake the arm back to life and then continued with\n>chest exercises (flyes) with lighter dumbells than I normally use.  But\n>I dropped the left dumbell during the first set, and experienced continued\n>arm weakness into the second.  So I quit training and decided not to do my\n>usual hour on the ski machine either.  I'll take it easy for the rest of\n>the day.\n>\n>My arm is *still* somewhat numb and significantly weaker than normal --\n>my hand still tingles a bit down to the thumb. Color has returned to normal\n>and it is no longer cold. \n>\n>Horrid thoughts of chunks of plaque blocking a major artery course through\n>my brain.  I'm 34, vegetarian, and pretty fit from my daily exercise\n>regimen.  So that can't be it.  Could a pinched nerve from the bar\n>cause these symptoms (I hope)?\n\nIt likely has nothing to do with \"chunks of plaque\" but it sounds like\nyou may have a neurovascular compromise to your arm and you need medical\nattention *before* doing any more weight lifting.  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 263, "properties": {"category": "rec.sport.hockey", "text": "From: seth@cbnewsh.cb.att.com (peter.r.clark..jr)\nSubject: FLYERS notes 4/17\nOrganization: AT&T\nKeywords: FLYERS/Whalers summary\nLines: 200\n\n\n\nThe FLYERS closed out the season last night with their 8th straight victory,\na 5-4 OT winner over the Hartford Whalers. The OT game winner came from Dimitri\nYushkevich, just his 5th of the season and his first game winner. The FLYERS\nnever led up until that point in the game. For the Whalers, the loss marked an\nNHL record 9th OT loss this season.\n\nRoster move:\n\nGord Hynes was called to to play in place of Ryan McGill\n\nInjuries:\n\nRyan McGill injured his hand in a fight 4/15 and was scratched.\n\nLines:\n\nEklund-Lindros-Recchi\nBeranek-Brind'Amour-Dineen\nLomakin-Butsayev-Conroy\nFaust-Acton-Brown\n\nGalley-Bowen\nYushkevich-Hawgood\nCarkner-Hynes\n\nDominic Roussel\n\nGame Summary:\n\nI didn't get TV coverage of the game, and since it was stormy in these parts\nI didn't have the best radio coverage either. Here's the box score followed by\na few things I did pick up:\n\nFirst Period:\n\tHartford, Nylander 10, 8:51\n\tPhiladelphia, Recchi 53 (Lindros, Brind'Amour), 19:59.8 (pp)\nPenalties - Verbeek, Har (holding), :55; Carkner, Phi (roughing), 13:53; Houda,\nHar (interference) 18:43\n\nSecond Period:\n\tHartford, Burt 6 (Cunneyworth, Kron), 2:00\n\tPhiladelphia, Bowen 1 (Eklund, Recchi), 7:09\n\tHartford, Nylander 11 (Zalapski, Sanderson), 9:38\nPenalties - Galley, Phi, major-game misconduct (spearing) :58; Verbeek, Har\nmajor-game misconduct (spearing), :58; Brown, Phi (tripping), 3:22; Zalapski,\nHar (tripping), 15:51; Brind'Amour, Phi (slashing), 19:50\n\nThird Period:\n\tHartford, Kron 14 (Sanderson, Cassels), 1:24 (pp)\n\tPhiladelphia, Beranek 15 (Lomakin, Yushkevich), 3:11\n\tPhiladelphia, Faust 2 (Brind'Amour, Roussel), 3:38\nPenalties - Houda, Har (tripping), 4:20; Hawgood, Phi (holding), 5:30\n\nOvertime:\n\tPhiladelphia, Yushkevich 5 (Faust), 1:15.\nPenalties - None\n\nPower Play:\n\tPhiladelphia 1 of 4, Hartford 1 of 4\n\nGoalies:\n\tPhiladelphia, Roussel 14-11-5 (30 shots - 26 saves)\n\tHartford, Lenarduzzi, 1-1-1 (38 - 33)\n\nOn the first Hartford goal, Gord Hynes misplayed the puck at the FLYERS blue\nline and Nylander stripped him and took off.\n\nThe Recchi goal was a 2 on 1 with Lindros.\n\nThe Bowen goal was just a puck he threw at the net, got a good carom and it\nended up behind the goalie.\n\nOn the second Nylander goal he got three whacks at the puck before it went in.\nThis is the most frustrating part of the FLYERS defense. Take the body, and if\nthey get one shot and beat you fine. Don't give them another chance. Carkner,\nGalley and McGill are all terrible about this, I'll bet money at least one of\nthem was the closest FLYER to the play.\n\nThat's all I have, my radio got bad after that and I was lucky to know who it\nwas that scored, much less how.\n\nFrom what I heard, Roussel had a very strong game. After the game, Gene Hart\nasked Bobby Taylor to pick the three stars of the season rather than of the\ngame. It was Garry Galley #3 for his career high point total (I'm surprised\nthat a former goalie wouldn't look closer at his defensive play), Tommy \nSoderstrom #2 for his team record tying 5 shutouts in only about 1/2 a season\nand, Mark Recchi #1 for his all time high team single season scoring mark.\nBut here's the odd part. He couldn't decide between Lindros and Recchi for\nnumber 1. If he picks Recchi as #1 after he had a hard time choosing between\nhim and Lindros, doesn't that make Lindros #2????\n\nWhat? You wanna know my three stars of the season? Well, since you asked...\n\n#1 Eric Lindros. Eric dominates a game simply by stepping out onto the ice.\nThe difference between the team's record with him and without him is no\naccident. I believe that the team could have been almost as successful without\nRecchi. There is no question that this team is significantly better with Eric\nLindros on it, and I think that he will deservedly wear the 'C' on his jersey\nnext season.\n\n#2 Tommy Soderstrom. 5 shutouts was second in the league to only Ed Belfour,\nand Tommy didn't have a Chris Chelios (booo) in front of him. He also didn't\nplay a complete season due to heart problems (sentimental edge here, my family\nhas a history of heart problems). There's no question in my mind that Tommy\nSoderstrom is this teams goalie of the future, and if Roussel complains again\nabout being number 2 look for him to be traded within 2 years.\n\n#3 Mark Recchi. Again, you can't argue with an all-time team high single season\nscoring mark. There are an awful lot of teams that didn't have a single player\nget as many points. Plus, Mark is the only FLYER to play the entire season.\nNot a tough choice.\n\nHonorable mentions: Rod Brind'Amour topped his single season high point total\nwhich he set last year. The difference was that he wasn't on the top line\nthis year and didn't get as much playing time. Then again, he didn't get the\ndefensive attention that he got last year from the other team either.\n\nDimtri Yushkevich was the teams most consistent defenseman. Yes, he made rookie\nmistakes, but he was usually fast enough to make up for them. I have a feeling\nthat with his shot he'll score a few more points next year without giving up\nanything in his own zone, and I suspect that he'll be the teams top defenseman\nin years to come.\n\nGarry Galley was the team's point leader from defensemen. Again, there are some\nthings you just can't argue with. And he battled with chronic fatigue syndrome,\nhe certainly deserves kudos for only missing one game, and that was against his\nwishes under doctors orders. But his defensive play often negates his offensive\ncontribution. A little more caution, and a little bit smarter in his own end\nwill make him a much more important part of the team next year.\n\nBrent Fedyk was the leagues biggest improvement over last years point total.\nBut consistency became a problem for him.\n\nA couple misc notes mostly for mailing list members:\n\nTom Misnik, a member of the mailing list, would like to exchange E-mail\naddresses with any list members who want to keep in touch over the summer.\nIf you're interested, you can send him mail at:\n\natt!ACR.ORG!TMISNIK\n\nThe FLYERS end the season 1 game below .500 in 5th place, their best winning\npercentage since going .500 in 1988-89. 14-20-3 within the division (4th in\nPatrick), 23-14-5 at home. They finished 17th overall, will draft 10th in\nnext years entry draft (Quebec had the 1st rounder, though). They scored as\nmany goals as they allowed, 319.\n\nThe 8 straight wins is the most since they won 13 in a row in 1985.\n\nI will be sending out final stats as soon as I get the issue of the Hockey\nNews that contains them, since there are no more games for me to go to I have\nno other way of getting them.\n\nI hope you've all enjoyed this years hockey season as much as I have. Knowing\nthe future that we have coming to us made missing the playoffs one more time\nalmost bearable.\n\nFLYERS team record watch:\n\nEric Lindros:\n\n41 goals, 34 assists, 75 points\n\n(rookie records)\nclub record goals:\t\t\tclub record points:\nEric Lindros\t40 1992-93\t\tDave Poulin\t76 1983-84\nBrian Propp\t34 1979-80\t\tBrian Propp\t75 1979-80\nRon Flockhart\t33 1981-82\t\tEric Lindros\t75 1992-93\nDave Poulin\t31 1983-84\t\tRon Flockhart\t72 1981-82\nBill Barber\t30 1972-73\t\tPelle Eklund\t66 1985-86\n\nMark Recchi:\n\n53 goals, 70 assists, 123 points.\n\nclub record goals:\t\t\tclub record points:\nReggie Leach\t61 1975-76\t\tMark Recchi\t123 1992-93*\nTim Kerr\t58 1985-86,86-87\tBobby Clarke\t119 1975-76\nTim Kerr\t54 1983-84,84-85\tBobby Clarke\t116 1974-75\nMark Recchi\t53 1992-93*\t\tBill Barber\t112 1975-76\nRick Macliesh\t50 1972-73\t\tBobby Clarke\t104 1972-73\nBill Barber\t50 1975-76\t\tRick Macliesh\t100 1972-73\nReggie Leach\t50 1979-80\n\n*More than 80 games.\n\nFLYERS career years:\n\nPlayer\t\tPoints\tBest Prior Season\nMark Recchi\t123\t113 (90-91 Penguins)\nRod Brind'Amour\t86\t77 (91-92 FLYERS)\nGarry Galley\t62\t38 (84-85 Kings)\nBrent Fedyk\t59\t35 (90-91 Red Wings)\n\nThat's all for now...\n\npete clark jr - rsh FLYERS contact and mailing list owner\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 264, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: WANGTEK Tape Controller Card Revision E - address & IRQ wanted\nFrom: system@codewks.nacjack.gen.nz (Wayne McDougall)\nOrganization: The Code Works Limited, PO Box 10 155, Auckland, New Zealand\nLines: 26\n\n\nI have a WANGTEK tape controller card (Revision E) that was used with the\nSytos backup system to take backups of a friend's system. That system has\ncrashed and I'm attempting to restore it.\n\nUnfortunately, the documentation for this ancient card has been lost in the\nmists of time, and I need to know the DMA, IRQ and address for this card.\n\nCan anyone suggest how I could determine these things?\n\nThere is a bank of dip switches on the card which are set to:\n\n---------------------\n1 2 3 4 5 6 7 8 9 10\n    UPUPUP    UPUPUP\nUPUP      UPUP\n------OPEN----------\n\nThanks for your time.\n\n-- \n\tThis posting is definitive. bljeghbe'chugh vaj blHegh.\n  Wayne McDougall :: Keeper of the list of shows better than Star Trek(TM) ::\n            Ask me about the Auckland Festival of Missions, 18-25 April, 1993\nI always change my mind when new evidence is available. What method do you use?\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 265, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Revelations\nOrganization: Indiana University\nLines: 34\n\nHe doesn't contradict himself.  The church is to last for all time.\nHowever, there are those who use the church to bolster themselves.  This\nis evident in many letters.  For instance, Paul talks about the\n\"super-apostles\" to the Corinthians (2 Corinthians 11-12), he mentions\nhow people will be led away by miracles, signs, and wonders (2\nThessalonians 2:9-12), he tells Timothy that it is clear that some will\nabandon the faith and teach lies (1 Timothy 4:1-3) and that some will\nsearch for teachers to suit what they want to hear (2 Timothy 4:3-4).\nSuch passages go throughout the letters and Jesus does warn about them\n(Matthew 24:4-14).  But look at the promise in this last part.  Verse\n14:  \"And this gospel of the kingdom will be preached in the whole world\nas a testimony to all nations, and then the end will come.\"  Even today,\nthere are false teachings.  I can name two which I am well familiar\nwith:  the non-need of baptism and the \"praying of Jesus into your life\nfor salvation\".  Both are taught.  Both are DEAD wrong.  They have been\ntaken out of context from some verses, interpreted from others, and just\nplain made up.  The ONLY way Jesus taught is given in Luke 9:23-26 and\nLuke 14:25-33.  He then commands baptism in Matthew 28:18-20.  The\nchurch Jesus founded, though, is alive and well.  It's not being\npersecuted as much as back then (the laws won't allow it yet), but it is\nbeing persecuted.\n\nJoe Fisher\n\n>\n>Peace,\n>Lou\n>\n>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n>+       Lou Nunez   (e-mail lnunez@vaxa.stevens-tech.edu)       +\n>+   + Ps 42(43):4 + Ps 90(91):5-6 +  Dn 3:52-90 + Ml 1:11 +     +\n>+  + Ad Altare Dei + Ad Deum Qui Laetificat Juventutem Meam +   +\n>+  + 1Cor 4:15 + MT 16:13-19 + 1Cor 13:1-13 + Luke 10:25-37 +   + \n>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 266, "properties": {"category": "misc.forsale", "text": "From: gscott@b64542.STUDENT.CWRU.Edu (George Scott)\nSubject: Roland D-50 For Sale\nOrganization: Case Western Reserve University, Cleveland, Ohio, USA\nLines: 18\nDistribution: usa\nNNTP-Posting-Host: b64542.student.cwru.edu\n\nFor sale:\n\nRoland D-50: $700 or best offer.\nExcellent condition.\nIncludes over 1000 patches on disk (In cakewalk sysex format)\n\nBuyer must pay COD shipping.\n\nPlease e-mail responses to:\ngms2@po.cwru.edu\n\nThanks.\n\nGeorge\n\n-- \nGeorge Scott (gscott@b64542.student.cwru.edu)\n             (gms2@po.cwru.edu)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 267, "properties": {"category": "comp.windows.x", "text": "From: Wilson Swee <ws8n+@andrew.cmu.edu>\nSubject: compiling on sun4_411\nOrganization: Junior, Math/Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 22\nNNTP-Posting-Host: po5.andrew.cmu.edu\n\nHi,\n    I have a piece of X code that compiles fine on pmax-ul4, pmax_mach, as\nwell as sun4_mach, but whenever it compiles on sun4_411, it gives me \nundefined ld errors:\n_sin\n_cos\n_pow\n_floor\n_get_wmShellWidgetClass\n_get_applicationShellWidgetClass\n\nThe following libraries that I linked it to are:\n-lXaw -lXmu -lXt -lXext -lX11\n\nThe makefile is generated off an imake template.\nCan anyone give me pointers as to what I'm missing out to compile on\na sun4_411?\n\nThanx\nWilson\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 268, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Limiting Govt (Was Re: Employment (was Re: Why not concentrate...)\nSummary: But how do restrain unpleasant impulses?\nOrganization: Free the Barbers, Inc.\nLines: 46\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <SLAGLE.93Apr15000157@sgi417.msd.lmsc.lockheed.com> slagle@lmsc.lockheed.com writes:\n>In article <1993Apr13.215245.2916@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes:\n>\n>> In article <1993Apr13.083449.1058@cbnewse.cb.att.com> doctor1@cbnewse.cb.att.com (patrick.b.hailey) writes:\n>\n>>>... the point is that this law protects no one but the\n>>>established car dealers or people with enough money to start a\n>>>fairly big operation all at once.  Protecting these folks from\n>>>competition protects the rest of us from low prices and high\n>>>quality.\n>\n>> An excellent point.  But you seem to be missing a more subtle\n>> point.  It is not \"the government\" that should be the recipient\n>> of your displeasure, but the established business interests\n>> that influence and direct government action in this case.\n>\n>It is the government that is preventing entry to the market.  The\n>desire of those running established businesses to prevent or\n>restrict the entry of competitors is an understandable, though\n>generally unpleasant, human failing.  But without a means to act\n>on this desire, without a government with sufficient power to\n>restrict the options of the potential competitor, the\n>anti-competitive desire remains just an unpleasant wish.  The\n>government is the linchpin, so we seek to disengage it so we\n>don't get the shaft.\n\nOnce again, Mark, you don't specify the means through which the government\nis to be prevented from becoming the tool of business interests.  As a \nleft-wing, big government, conventional liberal, I'm just as willing as\nyou are to vote against anti-competitive regulations that favor auto\ndealers.  \n\nBut what I hear from libertarians is a desire to limit incumbents' terms,\nto weaken government by eliminating its power to enforce antitrust laws,\nand a desire to eliminate legislator's pay.  Each strikes me as a \nparticularly ineffective way to insure that auto dealers and other special\ninterests cannot influence public policy.  In fact, they seem clearly\ndesigned to accomplish the opposite.\n\njsh\n>\n>=Mark\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 269, "properties": {"category": "talk.politics.guns", "text": "Organization: Penn State University\nFrom: <DGS4@psuvm.psu.edu>\nSubject: Re: Clinton wants National ID card, aka USSR-style \"Internal Passport\"\n <C5JIF8.I4n@boi.hp.com> <1993Apr16.022926.27270@ucsu.Colorado.EDU>\n <C5KsE0.5px.1@cs.cmu.edu> <1993Apr19.162137.1306@hsh.com>\nLines: 50\n\nIn article <1993Apr19.162137.1306@hsh.com>, paul@hsh.com (Paul Havemann) says:\n>\n>In article <C5KsE0.5px.1@cs.cmu.edu>, tsmith+@cs.cmu.edu (Tom Smith) writes:\n>> In article <1993Apr16.022926.27270@ucsu.Colorado.EDU>                       U\n>fcrary@ucsu.Colorado.ED\n>(Frank Crary) writes:\n>>>In article <C5JIF8.I4n@boi.hp.com> slack@boi.hp.com (David Slack) writes:\n>>>>The idea of the card is bull in and of its self, but I'm curious to know,\n>do\n>>>>they plan on making it a requirement to *always* have it on you, or is it\n>>>>only going to be required to be *presented* when trying to ge medical aid?\n>>>\n>>>This, at least, has already been determined: The Blue Cross medical\n>>>coverage for all federal employees is a good model for a future\n>>>national system. To get emergency medical care, anyone so insured\n>>>must always carry their Blue Cross card. Before entering a hospital,\n>>>you must notify Blue Cross, or they will refuse to pay your bills.\n>>>In an emergency, where you must be treated before notifying them,\n>>>you must inform them within 24 hours or (if you are unable to do\n>>>so for medical reasons) the hospital must. Failing to do so within\n>>>24 hours means they will not cover the hospitalization. In you need\n>>>your card to notify them (and without the card, the hospital certainly\n>>>wouldn't know they had to.) Therefore, you are required to carry\n>>>the card at all times, or do without emergency medical coverage.\n>>>\n>> Which works fine until you end up in the hospital because you were hit on\n>the\n>> head and your wallet, with your insurance card, is stolen.  This happened to\n>> me, and it took six months to sort the mess out.  These sorts of plans sound\n>> nice at first, but in the end they just create a lot of paperwork and\n>> bureaucracy to deal with all the checking and filing they involve.\n>>\n>>                               Tom the non hacker\n>\n>Whoa!  Have a care what you say, Tom.  The _obvious_ answer to that problem\n>is to tatoo your National I.D. Number on you -- say, your forearm -- so you\n>can never leave home without it.  Hell, it worked once before...\n>\n>And that brings us back to my original, sarcasm-laden post:  where's the\n>outcry from the liberal sector over the National ID Card?  My God, if some\n>conservative had proposed this -- plus Clinton's \"National Police\" proposal\n>-- the liberals would be shrieking \"Sieg Heil!\" and \"Police State\"!\n>\n>You self-styled liberals ought to be ashamed of yourselves.  Hypocrites!\n\nI don't know what you watch, but I saw a spokesman for the ACLU voice\nopposition to this idea on NBC the very first night.\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 270, "properties": {"category": "talk.religion.misc", "text": "From: cj195@cleveland.Freenet.Edu (John W. Redelfs)\nSubject: Re: Disillusioned Protestant Finds Christ\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 22\nReply-To: cj195@cleveland.Freenet.Edu (John W. Redelfs)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, tom@tredysvr.Tredydev.Unisys.COM (Tom Albrecht) says:\n\n>In article <1qb726$j9d@usenet.INS.CWRU.Edu< cj195@cleveland.Freenet.Edu (John W. Redelfs) writes:\n><\n><I learned that God loves his children who have never heard of him and has a\n><plan for redeeming them too, even those who have died without a knowledge\n><of Christ.  I learned that a man cannot frustrate justice by repenting on\n><his death bed because repentance is more than a feeling of remorse.  It\n><requires faith in Christ proven by following him, by keeping his\n><commandments.  Such cannot be accomplished on ones deathbed.\n>\n>So Jesus must have lied to the thief on the cross.\n\nParadise and salvation are not the same thing.  Salvation is better.  Refer\nto John 14:2.\n>-- \n>Tom Albrecht\n>\n-- \n------------ John W. Redelfs, cj195@cleveland.freenet.edu -------------\n--------- All my opinions are tentative pending further data. ---------\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 271, "properties": {"category": "rec.sport.hockey", "text": "From: tva1@gmuvax.gmu.edu\nSubject: Re: David Polie's future\nOrganization: George Mason University, Fairfax, VA.\nLines: 33\n\nIn article <1993Apr14.010305.1737@ncsu.edu>, fmsalvat@eos.ncsu.edu\n(FRANK MICHAE SALVATORE) writes:\n> \n>> Bad news for the Patrick division next year.  Caps GM David Polie is\n>> reportedly trying to get a front office job with the NHL.  I can't\n>> believe Polie has not been fired despite 10 years of mediocrity.\n>> \n\n\tYou know what Frank? It's not David Poile's fault that the Caps\nhave mired in mediocrity for so long. Blame it on the owner, Abe Polin!\nThis guy owns both the NBA's Bullets and the NHL's Capitals. How dumb\nand selfish could this guy be? He's unwilling to spend the bucks in \norder to get a big star to Landover...no wonder both teams STINK!\n\n\tI've heard that the Capitals had a chance to get Detroit's\nSteve Yzerman last summer but they pulled out at the last minute. Why?\nBecause our good man, Abe, is afraid to spend the cash!\n\n\tNevertheless, I'm still faithful and hoping that one day\nthis devilish dictator will be replaced.\n\n>> Frank Salvatore\n>> fmsalvat@eos.ncsu.edu\n\n Tuan A. Van\n \"Does it matter where you buy your underwear ?!\" --> Tom Cruise, RAIN MAN\n =========================================================================\n |  T. A. Van -- a.k.a. ARCHMAGE   |  Q: What's orange, black, and ugly  |\n |   George Mason University       |     and dwells in the basement ?    |\n |  Electrical Engineering '93     |  A: da Philadelphia FLYERS!         |\n |     TVA1@gmuvax.gmu.edu\t   |     \t\t\t         |\n |     TVA1@mason1.gmu.edu\t   | \t ** Let's go CAP-I-TALS! **      |\n =========================================================================\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 272, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: My Gun is like my American Express Card\nLines: 53\nOrganization: University of Tennessee Division of Continuing Education\nDistribution: usa\n\nIn article <1qiebiINN1c1@cae.cad.gatech.edu> vincent@cad.gatech.edu (Vincent Fox) writes:\n>In <93104.173826U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>[deleted]\n>>The University cops here (who are\n>>are state cops) are armed better than the Chicago police.  It seems most\n>>state cops are.  I don't know where you are originally from David but you live\n>>in Tennesse and I live in Chicago and see this crap everyday on the news\n>>and in the papers.  I think the situation is just a tad different here\n>>than there.\n>\n>Which crap, the ridiculous assertions that Uzis are mowing down cops\n>right and left? The assertions that dialing 911 should be the proper\n>and only option available to the law-abiding citizens?\n>\n>A factoid:\n>\n>56 cops were killed in the whole country last year. This is down from\n>around 100 in the early '80s. Wow, a real explosion in cop killings\n>there eh?  :-)\n\n        Well, if we're going to discuss being a police officer in\nAmerica today.       \n\n        The FBI lists 132 police officers killed (feloniously and\naccidentally) in 1990.  That's apparently everybody at all levels.\n\nYear        Officers killed       Rate/100,000 police officers\n1982             164*                  47.6\n1983             152**                 40.2\n1984             147                   39.4\n1985             148***                37.9\n1986             133                   34.9\n1987             148                   39.0\n1988             155****               41.9\n1989             145*****              38.1\n1990             132                   32.0\n\n\n* Includes one officer in Mariana Islands\n** Includes one officer each in Guam and Mariana Islands\n*** Includes one officer in Guam and two in foreign locations\n**** Includes one officer in American Samoas and two in foreign countries\n***** Includes one officer in Guam and one Federal officer killed in\nPeru\n\n\n       God, I love the information age!  :-) \n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 273, "properties": {"category": "rec.motorcycles", "text": "From: bclarke@galaxy.gov.bc.ca\nSubject: How to buy a first bike, etc.\nOrganization: BC Systems Corporation\nLines: 8\n\nThere have been a *lot* of posts lately about \"I wanna buy my first bike - is a\nGSXR/ZX/CBR/FZR a good bike to learn on?\" etc.\n\nI think I'm going to put together a FAQ on buying a new bike. Ravi used to post\none all the time.\n-- \nBruce Clarke       B.C. Environment\n                   e-mail: bclarke@galaxy.gov.bc.ca\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 274, "properties": {"category": "rec.sport.hockey", "text": "From: icop@csa.bu.edu (Antonio Pera)\nSubject: Hockey & Hispanic market\nDistribution: na\nOrganization: Computer Science Department, Boston University, Boston, MA, USA\nLines: 10\nOriginator: icop@csa\n\n\nIn article <saross01.734885336@starbase.spd.louisville.edu>, saross01@starbase.spd.louisville.edu (Stacey A. Ross) writes:\n|> In <C5I2s2.3Bt@odin.corp.sgi.com> rickc@wrigley.corp.sgi.com (Richard Casares) writes:\n|> >You'll have a hard time selling any sport to a community that\n|> >can't play it on account of availability or financial reasons.\n|> >Hockey is pretty much a sport for the white and well off.\n\nWhat is this crap? I'm only interested in intelligent discussion. If you \ncan't answer my question, just say so. Can anyone else answer the ques.?\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 275, "properties": {"category": "talk.religion.misc", "text": "From: mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA\nLines: 58\n\nIn <C5sqyA.F7v@noose.ecn.purdue.edu> tbrent@bank.ecn.purdue.edu (Timothy J Brent) writes:\n\n|Probably not.  But then, I don't pack heavy weaponry with intent to use it.\n\nPlease cite your evidence that he was intending to use it.\n\n|You don't really think he should have been allowed to keep that stuff do \n|you?\n\nWhy not?\n\n|If so, tell me where you live so I can be sure to steer well clear.\n\nCheck the sig.\n\n|The public also has rights, and they should be placed above those of the\n|individual.\n\nSociety does not have rights only individuals have rights.\n\n|Go ahead, call me a commie,\n\nOK, your a commie.\n\n|but you'd be singing a different\n|tune if I exercised my right to rape your daughter.\n\nYou think you have a right to rape anyone? No wonder you don't care about\nthe rightws of others.\n\n|He broke the law,\n\nPlease indicate which law you feel Koresh broke, and when was he convicted of\nsaid crime.\n\n|he was a threat to society,\n\nSo you feel that owning guns makes him a threat to society. When are y ou\ngoing to start going after knives and baseball bats as well.\nOr do you feel that someone who spouts unpopular ideas is by definition a\nthreat to society.\n\n|they did there job - simple.\n\nIt is simple if you think that there job is to assualt civilians.\n\n|>\tSupport your First, Second, Fourth, Fifth, Sixth, and Eighth\n|>Amendment rights, lest they be taken away from you just as the FBI did\n|>to the Davidians. Think about it.\n\n|I'll support them all (except no. 2)\n\nIn other words you don't support any of them.\n-- \nMob rule isn't any prettier merely because the mob calls itself a government\nIt ain't charity if you are using someone else's money.\nWilson's theory of relativity: If you go back far enough, we're all related.\nMark.Wilson@AtlantaGA.NCR.com\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 276, "properties": {"category": "sci.med", "text": "From: Mark W. Dubin\nSubject: Re: Barbecued foods and health risk\nOriginator: dubin@spot.Colorado.EDU\nNntp-Posting-Host: spot.colorado.edu\nReply-To: dubin@spot.colorado.edu\nOrganization: Univ. of Colorado-Boulder\nLines: 16\n\nrsilver@world.std.com (Richard Silver) writes:\n\n\n>Some recent postings remind me that I had read about risks \n>associated with the barbecuing of foods, namely that carcinogens \n>are generated. Is this a valid concern? If so, is it a function \n>of the smoke or the elevated temperatures? Is it a function of \n>the cooking elements, wood or charcoal vs. lava rocks? I wish \n>to know more. Thanks. \n\nI recall that the issue is that fat on the meat liquifies and then\ndrips down onto the hot elements--whatever they are--that the extreme\nheat then catalyzes something in the fat into one or more\ncarcinogens which then are carried back up onto the meat in the smoke.\n\n--the ol' professor\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 277, "properties": {"category": "rec.sport.baseball", "text": "From: 00mbstultz@leo.bsuvc.bsu.edu\nSubject: ALL-TIME PEAK PLAYERS\nOrganization: Ball State University, Muncie, In - Univ. Computing Svc's\nLines: 195\n\nLast week I posted the ALL-TIME GREATEST PLAYERS (and haphazardly misspelled\nseveral names--SORRY!)  This week, it's time for the greatest PEAK players.\nI evaluated the following players on 4 consectutive seasons which constituted\ntheir \"prime\" or \"peak\" years.  (3 was too few; 5 seemed to many--so I settled\nfor 4).  Sources, as usual, include Total Baseball 1993 and my own (biased)\nopinions.\nHere goes, feel free to comment.\n\n 1.  Ted Williams (includes season after war)--missed actual peak years\n 2.  Babe Ruth\n 3.  Walter Johnson\n 4.  Mickey Mantle\n 5.  Mike Schmidt  (actual peak year shortened by strike)\n 6.  Barrry Bonds  (currently at peak)\n 7.  Honus Wagner\n 8.  Ty Cobb\n 9.  Tris Speaker\n10.  Willie Mays\n11.  Lefty Grove\n12.  Sandy Koufax\n13.  Joe Morgan\n14.  Ed Walsh\n15.  Christy Mathewson\n16.  Lou Gehrig\n17.  Jimmie Foxx\n18.  Cal Ripken Jr.\n19.  Pete Alexander\n20.  Cy Young\n21.  Tim Raines\n22.  Rickey Henderson  (again, strike year '81 included)\n23.  Carl Yastrzemski\n24.  Jackie Robinson\n25.  Joe DiMaggio\n26.  Rogers Hornsby  \n27.  George Sisler\n28.  Eddie Collins\n29.  Hank Aaron\n30.  Stan Musial\n31.  Joe Jackson\n32.  Wade Boggs\n33.  Charlie Gehringer\n34.  Ernie Banks\n35.  Bob Gibson\n36.  Carl Hubbell\n37.  Robin Yount\n38.  Rod Carew\n39.  Chuck Klein\n40.  Willie McCovey\n41.  Frank Robinson\n42.  Tom Seaver\n43.  Roger Clemens  (arguably, still in peak)\n44.  Mel Ott\n45.  Frank Baker\n46.  Nap Lajoie  (peak came in suspect league)\n47.  Dizzy Trout\n48.  George Brett\n49.  Mordecai Brown\n50.  Ryne Sandberg\n\n1B  Peak\n 1) Gehrig\n 2) Foxx\n 3) Sisler\n 4) McCovey\n 5) Greenberg\n 6) Frank Thomas (projected--sorry)\n 7) Dick Allen\n 8) Johnny Mize\n 9) Eddie Murray (yes, Mr.Consistency had a peak)\n10) Bill Terry\n\n2B\n 1) Morgan\n 2) J.Robinson\n 3) Collins\n 4) Hornsby \n 5) Gehringer\n 6) Carew (treated as a 2B, even though played 1B)\n 7) Sandberg\n 8) Bobby Grich\n 9) Nap Lajoie\n10) Bill Herman, Mazeroski (tough call)\n\n3B)\n 1) Schmidt\n 2) Boggs\n 3) F.Baker\n 4) Brett\n 5) Ed Mathews\n 6) Ron Santo\n 7) Harland Clift\n 8) Ken Boyer\n 9) Buddy Bell\n10) Darrell Evans\n\nSS\n 1) Wagner\n 2) Ripken\n 3) Banks\n 4) Yount\n 5) John Lloyd (estimated)\n 6) Arky Vaughan\n 7) Barry Larkin  (still in peak?)\n 8) Lou Boudreau\n 9) Ozzie Smith\n10) Joe Sewell\n\nLF\n 1) Williams\n 2) Ba.Bonds\n 3) Raines\n 4) Henderson (actually had 2 peaks; 80-83 & 83-86)\n 5) Yastrzemski\n 6) Musial\n 7) J.Jackson\n 8) Ralph Kiner\n 9) Al Simmons\n10) George Foster\n11) Willie Stargell\n\nCF\n 1) Mantle\n 2) Cobb\n 3) Speaker\n 4) Mays\n 5) DiMaggio\n 6) Oscar Charleston (again, estimated)\n 7) Duke Snider\n 8) Ken Griffey Jr.  (personal assumption)\n 9) Kirby Puckett\n10) Richie Ashburn\n11) Dale Murphy (strike season?)\n\nRF\n 1) Ruth\n 2) Aaron\n 3) Klein\n 4) F.Robinson\n 5) Ott\n 6) Roberto Clemente\n 7) Tony Gwynn\n 8) Dave Parker\n 9) Reggie Jackson\n10) Harry Heilmann\n11) Jose Canseco\n12) Darryl Strawberry\n\n C\n 1) Josh Gibson (estimated)\n 2) Mickey Cochrane\n 3) Gary Carter\n 4) Johnny Bench\n 5) Roy Campanella\n 6) Yogi Berra\n 7) Bill Dickey\n 8) Gabby Hartnett\n 9) Elston Howard\n10) Ted Simmons\n11) Joe Torre\n\n P\n 1) W.Johnson\n 2) Grove\n 3) Koufax\n 4) Walsh\n 5) Mathewson\n 6) Alexander\n 7) Young\n 8) Gibson\n 9) Hubbell\n10) Seaver\n11) Clemens\n12) Satchel Paige (estimated)\n13) D.Trout\n14) Juan Marichal\n15) Mordecai Brown\n16) Joe Wood\n17) Dave Steib\n18) Jim Palmer\n19) Bob Lemon\n20) Fergie Jenkins\n\n RP\n 1) Who cares?\n\n\nI hope there are some surprises here: Raines above Muisial?  Carter above\n Bench?  Ripken above Banks?  Bonds above Mays?\nCheck the numbers of each player in comparison to the numbers of the rest\nof the players that year(s), and you'll see that I'm fairly close with\nthis ranking system (which is primarily based on Total Player Rating) for\nfour consecutive years.\n\nEnjoy,\nMike\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 278, "properties": {"category": "comp.sys.mac.hardware", "text": "From: CSP1DWD@MVS.OAC.UCLA.EDU (CSP1DWD)\nSubject: Duo parking HD heads when iddle\nNntp-Posting-Host: mvs.oac.ucla.edu\nLines: 8\n\nThe Duo Powerbooks seem to park the heads after a few seconds of\ninactivity... is that builtin into the drive logic or is it being\nprogrammed via software, any way to tune the iddle timeout that\nmakes the heads park themselves... I think the heads are being\nparked since after a few seconds of inactivity you can hear the\nclunk of heads parking.\n\n-- Denis \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.015+0000", "event": "documents", "entityId": 279, "properties": {"category": "comp.sys.mac.hardware", "text": "From:  (iisi owner)\nSubject: iisi clock upgrades\nOrganization: cumc\nLines: 4\n\nAny new reports about iisi clock upgrade to 25 mhz,  33 mhz?\nAny failures?\n\n-a iisi owner with a slow mac and an itchcy soldering iron\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 280, "properties": {"category": "talk.religion.misc", "text": "X-Mailer: TMail version 1.17R\nFrom: \"D. C. Sessions\" <dcs@witsend.tnet.com>\nOrganization: Nobody but me -- really\nSubject: Re: Is THOU SHALT NOT KILL ever applied in the Bible?\nDistribution: world\nLines: 15\n\nIn <1pdj4bINNrtr@crcnis1.unl.edu>, e_p@unl.edu (edgar pearlstein)  wrote:\n#     Are there any places in the Bible where the commandment \"Thou \n#     shalt not kill\" is specifically applied?  That is, where someone \n#     refrained from killing because he remembered the commandment.\n\n  No, for the excellent reason that there IS no such commandment.\n\n  Aside from that, please note that the Abrahamic literary tradition\n  is strong on narrative, light on dialog, and virtually nonexistent\n  w/r/t introspection.\n\n--- D. C. Sessions                            Speaking for myself ---\n--- Note new network address:                dcs@witsend.tnet.com ---\n--- Author (and everything else!) of TMail  (DOS mail/news shell) ---\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 281, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Observation re: helmets\nOrganization: NEC Systems Laboratory, Inc.\nDistribution: usa\nLines: 48\n\n>maven@mavenry.altcit.eskimo.com (Norman Hamer) writes:\n>|>  \n>|>  Grf. Dropped my Shoei RF-200 off the seat of my bike while trying to\n>|> rock \n>|> it onto it's centerstand, chipped the heck out of the paint on it...\n>|>  \n>|>  So I cheerfully spent $.59 on a bottle of testor's model paint and \n>|> repainted the scratches and chips for 20 minutes.\n>|>  \n>|>  The question for the day is re: passenger helmets, if you don't know\n>|> for \n>|> certain who's gonna ride with you (like say you meet them at a ....\n>|> church \n>|> meeting, yeah, that's the ticket)... What are some guidelines? Should\n>|> I just \n>|> pick up another shoei in my size to have a backup helmet (XL), or\n>|> should I \n>|> maybe get an inexpensive one of a smaller size to accomodate my\n>|> likely \n>|> passenger? \n\n\tDo I have to be the one to say it?\n\n\tDON'T BE SO STUPID AS TO LEAVE YOUR HELMET ON THE SEAT WHERE IT CAN\n\tFALL DOWN AND GO BOOM!\n\n\tThat kind of fall is what the helmet is designed to protect against.\nIf you fall with the helmet on and you hit the same spot the helmet landed\non during the drop, the helmet may not protect your head as well as it was\nintended to do.  Conservative rec.moto'ers will recommend that you replace\nthe helmet.  If you want to be sure that it will protect you adequately, you\nshould.\n\n\tHELMETS GO ON THE GROUND, ON A TABLE, ON A CHAIR, ON A SHELF, OR ON\n\tANY OTHER SURFACE THAT IS LARGE ENOUGH TO SUPPORT THEM SO THAT THEY\n\tWILL NOT EASILY BE KNOCKED DOWN.\n\n\tJeezus.  My new Shoei would be $340 to replace.  You think I'm going\nto leave it to chance?\n\n\tCripe.\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 282, "properties": {"category": "soc.religion.christian", "text": "From: conditt@tsd.arlut.utexas.edu (Paul Conditt)\nSubject: Re: Being right about messiahs\nOrganization: Applied Research Laboratories, University of Texas at Austin\nLines: 11\n\n[The following is my comment on an article by Desiree Bradley.  --clh]\n\n>By the way, from Koresh's public statement it's not so clear to me\n>that he is claiming to be Christ.\n\nKoresh did originally claim to be the Christ, but then backed off and\nsaid he was a prophet.  The latest news at 8:00 CDT from Waco is that\nthe feds broke through a wall of the compound with a tank.  No news\nbesides that at this time.\n\nPaul\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 283, "properties": {"category": "sci.crypt", "text": "From: jyork@iastate.edu (Justin York)\nSubject: Clipper Chip - How would it work?\nOrganization: Iowa State University, Ames IA\nLines: 18\n\n\nWith all the talk about this Clipper chip, I have developed one question...\n\n\t\t\tHOW DOES IT WORK???\n\nIf you use this, then how does it get decrypted on the other end? Does the\nother party (receiving the phone call/mail/etc) have to know some code to \nundo it? Do I use a different method for calling one party than I would for \nanother?. If the other party can decrypt it, doesn't that mean that someone\nelse could also? I assume that if everyone has a different key, the only use\nwould be storing secure data for later retrieval by the same key. This seems\nlike a fundamental question to me, but I have very little experience with\ncryptosystems, other than DES. If someone could give me an explanation as\nto how it would be used (remember that I have had little experience with\nthis sort of thing) it would be very much appreciated. \n\n\t\t\t\t\tJustin York\n\t\t\t\t\tjyork@iastate.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 284, "properties": {"category": "alt.atheism", "text": "From: strom@Watson.Ibm.Com (Rob Strom)\nSubject: Re: [soc.motss, et al.] \"Princeton axes matching funds for Boy Scouts\"\nDistribution: usa\nOrganization: IBM Research\nLines: 15\n\nIn article <N4HY.93Apr5120934@harder.ccr-p.ida.org>, n4hy@harder.ccr-p.ida.org (Bob McGwier) writes:\n\n|> [1] HOWEVER, I hate economic terrorism and political correctness\n|> worse than I hate this policy.  \n\n\n|> [2] A more effective approach is to stop donating\n|> to ANY organizating that directly or indirectly supports gay rights issues\n|> until they end the boycott on funding of scouts.  \n\nCan somebody reconcile the apparent contradiction between [1] and [2]?\n\n-- \nRob Strom, strom@watson.ibm.com, (914) 784-7641\nIBM Research, 30 Saw Mill River Road, P.O. Box 704, Yorktown Heights, NY  10598\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 285, "properties": {"category": "sci.electronics", "text": "From: karplus@cse.ucsc.edu (Kevin Karplus)\nSubject: Re: decoupling caps - onboard\nOrganization: University of California, Santa Cruz\nLines: 38\nReply-To: karplus@ce.ucsc.edu (Kevin Karplus)\nNNTP-Posting-Host: ararat.ucsc.edu\n\n\nI've used on-chip capacitors to reduce ground-bounce noise on a small\nsystolic array chip that had 50pF loads on the clock lines.\n(Design was in 2-micron n-well cmos, using the MOSIS scalable design rules.)\nHere are some thoughts on the bypass capacitors:\n\n1) They don't help much with simultaneous output switching--there is\n\tstill a large inductance between the bypass capacitor and the\n\tload capacitor (on both the signal line and the ground\n\treturn), so you still get ground and power line bounce. \n\n2) They do help a lot with on-chip loads, as I had with the high load\n\ton the clock lines. \n\n3) The transients you are trying to suppress are really high\n\tfrequency, so forget about large areas of poly-thin-oxide-diff\n\tcapacitors, since the RC time constant is too large.\n\tWhat I did is to make a metal2, metal, poly, diff sandwich,\n\tbut put a lot of holes in the poly layer, allowing frequent\n\tdiff-metal1 contacts.  I forget exactly how wide the poly\n\tlines were.  If I were doing this design again, I'd probably\n\tomit the diff altogether, and use a solid poly sheet instead,\n\tusing just m2, m1, and poly (and substrate, but that has such a high\n\tresistance it can be ignored at these speeds).\n\n4) You are probably better off trying to tune your circuit to run with\n\tslightly slower edges and lower voltage swings (especially for\n\toutput signalling), than spending chip area on capacitors.\n\tI had spare space on the die since the circuit was too big for\n\ta MOSIS tiny chip, and the next size up was twice as big as I\n\tneeded. \n\nKevin Karplus\n-- \nKevin Karplus\t\tkarplus@ce.ucsc.edu\n\nDue to budgetary constraints the light at the end of the tunnel is\nbeing turned off.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 286, "properties": {"category": "talk.politics.guns", "text": "From: jim.wray@yob.sccsi.com (Jim Wray)\nSubject: CNN for sale\nOrganization: Ye Olde Bailey BBS - Houston, TX - 713-520-1569\nLines: 32\nReply-To: jim.wray@yob.sccsi.com (Jim Wray)\nNNTP-Posting-Host: cs.utexas.edu\n\n\nW.K. Gorman:\n\n<3>> Maybe now's the time for us, the NRA, GOA, CCRTKBA, SAF, et al to band\n<3>> together and buy CNN as *our* voice. Wouldn't that be sumpin....broadcast\n<3>> the truth for a change and be able to air a favorable pro-gun item or two..\n\n<3>I would like to see this happen. I don't think it will. I don't\n<3>think the average gun-owner will take any notice of what is happening\n<3>until they break down HIS door.\n\n<3>BUT I will go on record publicly to the effect that I will contribute a\n<3>minimum of $1,000.00 to the buy-out fund if it can be organized and made\n<3>viable. Anybody else want to put their money where their mouth is?  :)\n<3>There ar 50+ MILLION gun owners out there. If - and it's a big and\n<3>not very realistic if - we got hold of CNN, the anti-gun bullshit would\n<3>STOP RIGHT THERE. Why won't it happen - because nobody will get off their\n<3>ass and MAKE it happen. Nuts.\n\nAny NRA headquarters weenies listening to this man. Any RTKBA organization\nhoncho listening. It's time to stop fighting the Brady's and the Schumer's\n(now there's an interesting meaning to the acronynm BS) from the comfort\nof the office....we had better get serious with our time and money and get\nafter it or we might just as well pack it in now.\n---\n . OLX 2.2 . Gun control advocates must have had a sanity by-pass!\n                                           \n----\n+------------------------------------------------------------------------+\n| Ye Olde Bailey BBS   713-520-1569 (V.32bis) 713-520-9566 (V.32bis)     |\n|   Houston,Texas          yob.sccsi.com       Home of alt.cosuard       |\n+------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 287, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: marka@hcx1.ssd.csd.harris.com (Mark Ashley)\nSubject: Re: IDE vs SCSI\nOrganization: Ft. Lauderdale, FL\nLines: 17\nNNTP-Posting-Host: hcx1.ssd.csd.harris.com\n\n>: >>I almost got a hernia laughing at this one.\n>: >>If anything, SCSI (on a PC) will be obsolete-> killed off by Vesa Local\n>: >>Bus IDE.  It must be real nice to get shafted by $20-$100 bucks for the\n>: >>extra cost of a SCSI drive, then pay another $200-$300 for a SCSI controller.\n\nFirst off, with all these huge software packages and files that\nthey produce, IDE may no longer be sufficient for me (510 Mb limit).\nSecond, (rumor is) Microsoft recognizes the the importance of SCSI\nand will support it soon. I'm just not sure if it's on DOS, Win, or NT.\nAt any rate, the deal is with Corel who makes (I hear) a good\ncohesive set of SCSI drivers.\n\n-- \n-------------------------------------------------------------------------\nMark Ashley                        |DISCLAIMER: My opinions. Not Harris'\nmarka@gcx1.ssd.csd.harris.com      |\nThe Lost Los Angelino              |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 288, "properties": {"category": "sci.electronics", "text": "From: gerald.belton@ozonehole.com (Gerald Belton) \nSubject: help - how to constru\nDistribution: world\nOrganization: Ozone Online Operations, Inc. - New Orleans, LA\nReply-To: gerald.belton@ozonehole.com (Gerald Belton) \nLines: 27\n\n>Dean Anneser (anneser@pwa-b.uucp) wrote:\n>: My 9 yr old son has signed up to do a science report on batteries.  I was\n>: wondering if anyone could provide me with some information as to how to\n>: construct a home-built battery.  In my grade school days, I remember seei\n>: the 'ice cube tray' version, but I don't remember what to use as a good\n>: electrolyte or what the easily obtainable metals were.\n>:\n>: Thank you in advance.\n\n>I remember watching a whole \"Mr. Wizzard\" program on this subject when\n>I was a kid.  The battery constructed on the program which made the\n>biggest impression on me, and generated the most power, was made using\n>a galvanized bucket (for the zinc) and a copper toilet tank float.  The\n>electrolyte was sauerkraut!\n\nTake a lemon.  Stick a copper strip into the lemon.  Stick a galvanized\nnail in about 1 to 1-1/2 inches from the copper strip.  You should get\nabout 1/2 volt from it - enough to light an LED.\n\n\n * SLMR 2.1 * Support your medical examiner, die strangely.\n                     \n----\nThe Ozone Hole BBS * A Private Bulletin Board Service * (504)891-3142\n3 Full Service Nodes * USRobotics 16.8K bps * 10 Gigs * 100,000 Files\nSKYDIVE New Orleans! * RIME Network Mail HUB * 500+ Usenet Newsgroups\nPlease route all questions or inquiries to:  postmaster@ozonehole.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 289, "properties": {"category": "comp.sys.mac.hardware", "text": "From: sukenick@sci.ccny.cuny.edu (SYG)\nSubject: Re: AD conversion\nOrganization: City College of New York - Science Computing Facility\nLines: 33\n\n>> I am working a  data acquisition and analysis program to collect data\n>> from insect sensory organs.\n>> Another alternative is the use of the sound input port.\n>\n>Can you really make due with the non-existent dynamic range of an 8-bit\n>converter, of probably dubious linearity and monotonicity, and perhaps\n>AC-coupled as well?\n\nIt would depend on the requirements of the poster's data, for some\npurposes 1/256 resolution (with or without calibration curve).\n\n\nOtherwise the other possibilities would be:\n\n1) get a digital voltameter with serial output & connect to serial\nport on mac, collect data with some communications program.\n\n2) Buy an A/D chip from Analog devices, Burr-Brown, etc, connect to\na parallel to serial converter, use serial port for acquisition\n(nah. too much soldering and trouble shooting :-)\n\n3) Get a board from National Instruments, Data Translation, Omega,\netal.  The finest solution, but possibly the most costly.\n\n\n\nTo the original poster:  if the signal is too large, why not\nuse a voltage divider? Two resistors, cost very cheap...\n-- \n\n\t\t\t\t\t-george\n\t\t\t\t\tsukenick@sci.ccny.cuny.edu\n\t\t\t\t\t212-650-6028\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 290, "properties": {"category": "rec.sport.baseball", "text": "From: dwarner@journalism.indiana.edu (David J.)\nSubject: Re: Omar Vizquel - GRAND SALAMI?\nNntp-Posting-Host: clove.journalism.indiana.edu\nReply-To: dwarner@journalism.indiana.edu\nOrganization: Indiana University\nLines: 16\n\nCheryl Marks writes\n> \n> Do you think Omar's grand slam is the result of his new fan club?  Last week \n> a banner appeared in the Kingdome:    \n> \n> \tOLDER WOMEN FOR OMAR  \n\nThat depends.  Just how much older were they?\n \n> Cheryl\n\n--\nDavid J.(dwarner@journalism.indiana.edu)*****Blue Riddle Productions 1993\n*-------------------------------It's on.--------------------------------*\n***\"THE RAP IS AN ART EP\" is coming out on tape -- this time for real.***\n*------------------------E-mail me for the 411.-------------------------*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 291, "properties": {"category": "comp.graphics", "text": "From: stgprao@st.unocal.COM (Richard Ottolini)\nSubject: Re: images of earth\nOrganization: Unocal Corporation\nLines: 16\n\nIn article <1993Apr19.144533.6779@cs.ruu.nl> clldomps@cs.ruu.nl (Louis van Dompselaar) writes:\n>In <C5q0HK.KoD@hawnews.watson.ibm.com> ricky@watson.ibm.com (Rick Turner) writes:\n>\n>>Look in the /pub/SPACE directory on ames.arc.nasa.gov - there are a number\n>>of earth images there. You may have to hunt around the subdirectories as\n>>things tend to be filed under the mission (ie, \"APOLLO\") rather than under\t\n>>the image subject.\t\n>>\n>For those of you who don't need 24 bit, I got a 32 colour Amiga IFF\n>of a cloudless Earth (scanned). Looks okay when mapped on a sphere.\n>E-mail me and I'll send it you...\n\nBeware.  There is only one such *copyrighted* image and the company\nthat generated is known to protect that copyright.  That image took\nhundreds of man-hours to build from the source satellite images,\nso it is unlikely that competing images will appear soon.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 292, "properties": {"category": "comp.sys.mac.hardware", "text": "From: blob@apple.com (Brian Bechtel)\nSubject: Re: Drivers for CD-ROM\nOrganization: Apple Computer, Inc., Cupertino, California\nLines: 44\nNNTP-Posting-Host: apple.com\n\nsakelley@jeeves.ucsd.edu (Scott Kelley) writes:\n\n>Does anybody know where I could find a driver for a Future Echo\n>Infomasster [sic] CDE 600 CD-ROM drive? A friend is running this drive\n>off of a PC and would like to use it on the mac.\n\nHere are some contacts for generic CD-ROM drivers:\n\tOptical Access International\n\t\t800 West Cummings Park, Suite 2050\n\t\tWoburn MA 01801\n\t\t(617) 937-3910\n\t\t(617) 937-3950 fax\n\t\tAppleLink: OAI\n\tFWB, Inc.\n\t\t2040 Polk Street, Suite 215\n\t\tSan Francisco, CA 94109\n\t\t(415) 474-8055\n\t\t(415) 775-2125 fax\n\t\tAppleLink: FWB\n\tOptical Media International\n\t\t180 Knowles Drive\n\t\tLos Gatos, CA 95030\n\t\t(408) 376-3511\n\t\t(408) 376-3519 fax\n\t\tAppleLink: OMI\n\tTrantor Systems (for Intel architecture machines)\n\t\t5415 Randall Place\n\t\tFremont, CA  94538\n\t\t(415) 770-1400\n\t\tAppleLink: TRANTOR\n\tSoftware Architects (not verified)\n\t\t11812 North Creek Parkway N.\n\t\tSuite 202\n\t\tBothell, WA  98011\n\t\tAppleLink: SOFTARCH.DEV\n>\tCasa Blanca Works(not verified)\n>   415-461-2227\n>   Applelink: CBWorks\n\nTo send a message to someone on AppleLink, use the form\n  address@applelink.apple.com\nwhere \"address\" is replaced by the appropriate applelink address.\n\n--Brian Bechtel     blob@apple.com     \"My opinion, not Apple's\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 293, "properties": {"category": "alt.atheism", "text": "Subject: Re: Ancient islamic rituals\nFrom: livesey@solntze.wpd.sgi.com (Jon Livesey)\nOrganization: sgi\nNNTP-Posting-Host: solntze.wpd.sgi.com\nLines: 20\n\nIn article <1993Apr3.081052.11292@monu6.cc.monash.edu.au>, darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n>\n>  I propose that these two trends -- greater level of general \n> depression in society (and other psychological problems) and \n> greater sexual promiscuity -- are linked, with the latter being \n> a prime cause of the former.  I cannot provide any evidence beyond \n> this at this stage, but the whole thesis seems very reasonable to \n> me and I request that people ponder upon it.\n\nI pondered it for all of ten seconds when I realised that since\nwe don't have any reliable statistics for sexual promiscuity,\nand since the whole issue of \"depression\" isn't at all well \ndefined for earlier centuries, you are probably talking crap.\n\nOf course, you could pull a Mozumder on us, and say that people\nwho are having sex outside marriage are *defined* to be depressed.\n\nI can't say I'd ever noticed, myself.\n\njon. \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 294, "properties": {"category": "comp.windows.x", "text": "From: pjaques@camborne-school-of-mines.ac.UK (Paul Jaques)\nSubject: Polygon to raster converter required\nOrganization: The Internet\nLines: 12\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nCan anybody tell me if they know where I can obtain the source code for\na polygon filling algorithm, or any other graphics orientated mailing lists\nthat may be able to help me.\n\nThanks, Paul.\n-- \n-----------------------------------------------------------------------------\n| Paul Jaques                                                               |\n| Systems Engineer, Camborne School of Mines,                               |\n|                   Rosemanowes, Herniss, Penryn, Cornwall.                 |\n| E-Mail: pjaques@csm.ac.uk Tel: Stithians (0209) 860141 Fax: (0209) 861013 |\n-----------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 295, "properties": {"category": "sci.space", "text": "From: dennisn@ecs.comm.mot.com (Dennis Newkirk)\nSubject: Re: Proton/Centaur?\nOrganization: Motorola\nNntp-Posting-Host: 145.1.146.43\nLines: 31\n\nIn article <1r54to$oh@access.digex.net> prb@access.digex.com (Pat) writes:\n>The question i have about the proton, is  could it be  handled at\n>one of KSC's spare pads, without major  malfunction,  or could it be\n>handled at kourou  or Vandenberg?   \n\nSeems like a lot of trouble to go to. Its probably better to   \ninvest in newer launch systems. I don't think a big cost advantage\nfor using Russian systems will last for very long (maybe a few years). \nLockheed would be the place to ask, since you would probably have to buy \nthe Proton from them (they market the Proton world wide except Russia). \nThey should know a lot about the possibilities, I haven't heard them\npropose US launches, so I assume they looked into it and found it \nunprofitable. \n\n>Now if it uses storables,  \n\nYes...\n\n>then  how long would it take for the russians\n>to equip something at cape york?\n\nComparable to the Zenit I suppose, but since it looks like\nnothing will be built there, you might just as well pick any\nspot.\n\nThe message is: to launch now while its cheap and while Russia and\nKazakstan are still cooperating. Later, the story may be different.\n\nDennis Newkirk (dennisn@ecs.comm.mot.com)\nMotorola, Land Mobile Products Sector\nSchaumburg, IL\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 296, "properties": {"category": "talk.politics.misc", "text": "From: barnett@convex.com (Paul Barnett)\nSubject: Re: Top Ten Reasons Not to Aid Russians\nNntp-Posting-Host: zeppelin.convex.com\nOrganization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 15\n\nIn <C50FnH.Cvo@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n\n>Top Ten Reasons that Conservatives don't want to aid Russia:\n\n[ edited ]\n\nNow that's funny!  (remembering that good humor always dances\nuncomfortably close to the truth) \n\nI can't wait to see the inevitable flames.  :-)\n\n--\nPaul Barnett\nMPP OS Development     (214)-497-4846\nConvex Computer Corp.  Richardson, TX\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 297, "properties": {"category": "alt.atheism", "text": " cs.utexas.edu!geraldo.cc.utexas.edu!portal.austin.ibm.com!awdprime.austin.ibm.com!zazen\nSubject: Re: Radical Agnostic... NOT!\nFrom: zazen@austin.ibm.com (E. H. Welbon)\nOrganization: Brownian Motion Inc.\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 34\n\nThe One and Only (jcopelan@nyx.cs.du.edu) wrote:\n: In article <dl2021-310393180711@m249-66.bgsu.edu> dl2021@andy.bgsu.edu (Pixie) writes:\n: [first post I've seen from the ol' Bug-Zoo (BGSU)]\n: >     There is no means that i can possibly think of to prove beyond doubt\n: >that a god does not exist (but if anyone has one, by all means, tell me\n: >what it is).  Therefore, lacking this ability of absolute proof, being an\n: >atheist becomes an act of faith in and of itself, and this I cannot accept.\n: > I accept nothing on blind faith.\n\n: Invisible Pink Flying Unicorns!  Need I say more?\n\nThere is also the question of what is meant by \"atheist\".  A familiar\nexample of the importance of the meaning of the word is as follows.\n\nThe two statements following ARE consistent:\n\n(1) I do not believe that you are wearing lilac socks\n(2) I do not believe that you are are not wearing lilac socks\n\nThe two statements following are NOT consistent:\n\n(3) I do believe that you are wearing lilac socks\n(4) I do believe that you are are not wearing lilac socks\n\nStatements (1) and (2) require no faith, they make no presumptions about\nthe nature of reality.  Statements (3) and (4) require belief.  Many\natheists (myself included) take the following position:\n\n(5) I do not believe that there is a god.\n(6) I do not believe that there is not a god.\n\nThat is , I harbor no beliefs at all, there is no good evidence\nfor god existing or not.  Some folks call this agnosticism.  It does not\nsuffer from \"blind faith\" at all.  I think of it as \"Don't worry, be happy\".\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 298, "properties": {"category": "soc.religion.christian", "text": "From: noye@midway.uchicago.edu (vera shanti noyes)\nSubject: Re: An agnostic's question\nReply-To: noye@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 23\n\nperhaps you can tell your friend that you feel pressured by his\ncontinual discussions of this topic -- surely he doesn't feel you\nshould be _pressured_ into something you feel uncomfortable about\n(since christianity should be a choice one should make on one's own).\nplease also realize that he is doing this out of friendship -- he\nprobably feels you are missing out on something great, and wants to\ntell you about it.  but since you know where you can learn about\nchristianity, you can tell him that it is now up to you to make that\nchoice, and if the choice is no, you should be respected for that.\npersonally i believe that a christian's mission is just to be\nchrist-like, showing his/her own faith and happiness in that faith,\nand make sure people know they are welcome to talk to you about it.  i\ndo not believe in imposing your beliefs upon others -- but then again\neveryone's definitions of \"imposing\" may differ.  \n\ni hope i have made myself clear....  if not, please correct me!\n:) vera\n*******************************************************************************\nI am your CLOCK!     |  I bind unto myself today    | Vera Noyes\nI am your religion!  |  the strong name of the\t    | noye@midway.uchicago.edu\nI own you!\t     |  Trinity....\t\t    | no disclaimer -- what\n\t- Lard\t     |\t- St. Patrick's Breastplate | is there to disclaim?\n*******************************************************************************\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 299, "properties": {"category": "comp.graphics", "text": "From: kshin@stein.u.washington.edu (Kevin Shin)\nSubject: thinning algorithm\nOrganization: University of Washington, Seattle\nLines: 10\nNNTP-Posting-Host: stein.u.washington.edu\n\nHi, netters\n\nI am looking for source code that can reads the ascii file\nor bitmap file and produced the thinned image.\nFor example, to preprocess the character image I want to\napply thinning algorithm.\n\nthanks\nkevin\n.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 300, "properties": {"category": "misc.forsale", "text": "From: HO@kcgl1.eng.ohio-state.edu (Francis Ho)\nSubject: 286 Laptop\nNntp-Posting-Host: kcgl1.eng.ohio-state.edu\nOrganization: The Ohio State University\nLines: 18\n\nMITSBISHI Laptop (MP 286L)\n\n-286/12 (12,8,6 MHz switchable)\n-2M RAM installed\n-Backlit CGA (Ext. CGA, MGA)\n-20M 3.5\"HH HDD/1.44M 3.5\" FDD\n-2 COM/1 LPT ports\n-complete manual set\n-Built like a tank\n-Excellent cosmetic cond.\n-dark gray\n-used very lightly\n\nProblems:\n(1)HDD stops working.\n(2)LCD sometimes doesn't work (ext. CAG/MGA works).\n\nBest Offer.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 301, "properties": {"category": "soc.religion.christian", "text": "From: reid@cs.uiuc.edu (Jon Reid)\nSubject: Cell Church discussion group\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 15\n\nI am beginning an e-mail discussion group about cell churches.  If you are\na follower of Jesus Christ and are\n\n  - in a cell church, or\n  - in a church that is transitioning to a cell church, or\n  - just interested in learning more about cell churches,\n\nsend me e-mail.  (I reserve the right to remove anybody from the group who\ndoes not demonstrate a spirit of humility and Christlikeness.)\n\n-- \n******************************************************************\n*     Jon Reid     * He is no fool who gives what he cannot keep *\n* reid@cs.uiuc.edu * to gain what he cannot lose.   - Jim Elliot *\n******************************************************************\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.016+0000", "event": "documents", "entityId": 302, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 157\n\nstrnlght@netcom.com (David Sternlight) writes:\n\n> Though some may argue about the nose of the camel, it's worth noting that\n> the government proposal is limited to scrambled telephony. If it is only\n> used for that purpose, and does not extend to electronic mail or file\n\nAs usual, David Sternlight is demonstrating his inability to read. The\nproposal clearly states:\n\n=> The initiative will involve the creation of new products to\n=> accelerate the development and use of advanced and secure\n=> telecommunications networks and wireless communications links.\n\nIt speaks about telecommunications in general. Read it again, David.\nMaybe you'll understand it the next time... Nah, probably not.\n\n> encryption, then it IS an improvement over the current mass-produced\n> standard civilian technology which, with a few exceptions, is limited to\n> easy-to-break inverters.\n\nThat's exactly what the government wants all sheep-minded people to\nthink. Let's look at the current situation. It allows to almost\nanybody to eavesdrop almost everybody, unless secure (and I mean\nsecure) encryption is used. What will happen when (\"if\"? Ha!\noptimists...) the new proposal gets accepted? Almost nobody EXCEPT\nSOME will be able to eavesdrop everybody else, but the ability of\nthese \"some\" to eavesdrop will be guaranteed! The proposal emphasizes\non the former (\"almost nobody\") - which is clearly an improvement -\nand \"forgets\" to mention the drawbacks of the latter (\"guaranteed\").\nYes, my statement assumes that the next step will be to make the\nstrong crypto unlawful. You think that it will not happen? Good luck.\n\n> Note that the big issue for the feds is the continued ability to wiretap.\n\nIt's not just \"continued ability\". It's -guaranteed- ability.\n\n> Before we go off the deep end with long discusions about secure crypto for\n> e-mail and files, let's focus on this.\n\nYeah, that's exactly what your government wants you to think. Let's\ntake small steps, one at a time. Concentrate on the current one, don't\nthink about the future. Trust us.\n\n> One question that was not asked in the release is whether this proposal is\n> limited to telephony, or if the government intends to expand it.\n\nIt's not asked because the proposal clearly says that this is the\nintention. They, unlike you, read what they write.\n\n> Though I share many of the concerns expressed by some, I find the proposal\n> less threatening than many others, since right now most Americans have no\n> secure telephony, and any jerk with a pair of clip leads and a \"goat\" can\n> eavesdrop. This would also plug up the security hole in cellular and\n> cordless phones.\n\nYes, it will. It will stop the jerk who is eavesdropping now. It will\nallow only to the government to eavesdrop. (If the scheme is secure,\nof course, which is yet to be proven.) But how do you know that the\njerk you are fearing now will not get a government job tomorrow? The\nnew proposal -guarantees- him the ability to eavesdrop then. Hell,\nthat will even motivate him to get that job - if he indeed is that\nmentally pervert...\n\n> Reading between the lines, I infer that the system is highly secure\n> without access to the keys.\n\nGreat. The Greatest Cryptographer of All Times David Sternlight (tm)\nhas succeeded to evaluate the new system in the absense of any\ndetails whatsoever and has concluded that it is \"highly secure\". I\nguess, that comes from the background of working some 50 years for the\ntwo major crypto evaluating companies, right? Gee, now the government\ncan save all that money and trouble to ask a secret council of crypto\nexperts to secretly analyse the new secret method - for David\nSternlight has already done all the job for them...\n\n> This would meet the needs of U.S. businesses\n> confronted by rich and powerful adversaries, including French and Japanese\n> security services and rich Japanese companies. It allows the NSA to make\n> available some of its better stuff while protecting law enforcement needs.\n\n\"Trust us, we're from the Government and we're here to help you.\"\n\n> Most legitimate U.S. corporations trust the NSA, and would be delighted to\n> have a high-security system certified by them, even at the price of\n> depositing keys in escrow. I see no difficulty in creating a reliable\n\n\"Those who are prepared to trade their liberties for the promises of\nfuture safety, do not deserve either.\" This (or something like that; I\ndon't have the exact quote, but the meaning is the same) has been said\nby one of your great men. Maybe you should study their works more\ncarefully, if you have the brains to understand them, of course.\n\n> From my point of view this is a fair starting point. There are concerns that\n> need to be addressed, including the reliability of the escrows. But in\n\nThe main question is to guarantee to availability of -really- secure\ncryptography to the masses. Gee, if the proposal was saying \"we\nguarantee that every American will still have the full right to use\nany kind of encryption s/he would like and regard this proposal as\njust a default, voluntary implementation\", there would have been much\nless opposition... For some reason, they didn't even try to promise\nyou that. I wonder why... Was Orwell off only by 10 years?\n\n> return we get access to high-security crypto.\n\nNo, in return you get crypto that is guaranteed to be crippled.\n\n> Many have suggested that DES\n> and other systems may be breakable by the NSA and hence others similarly\n> skilled and endowed.\n\nWhile the above is just rumors, and while even if it is true, it is\nnot done -easily-, the new scheme can is guaranteed to be easily\nbreakable by anybody who has the two keys. It might be also breakable\nby somebody who does not have them but knows the right trick. Or who\nhas only one of them. NSA also told you that DES is secure, why don't\nyou simply trust them, huh?\n\n> There is at least a good possibility (which should be\n> checked) that the proposed system is not so breakable. It doesn't have to\n\nIt is -guaranteed- to be -easily- breakable - just get the keys. It\nmight be even easier, but until there is some evidence, this is just a\nwild speculation.\n\n> be, nor does it have to have trapdoors, if the government can get the keys\n\nThe trapdoors -are- there. In government's hands. The keys.\n\n> pursuant to a legitimate court order. Thus they can protect legitimate\n> communications against economic adversaries, while still being able to\n> eavesdrop on crooks pursuant to a court order.\n\nLegitimate? And who decides what communications are legitimate? Oh, I\nguess, it's the government, right? The guys who already have the keys?\nIt's kinda if I have the keys from your car and I am asked to decide\nwho has the right to use it \"legitimately\"...\n\n> In discussing this, let's try to avoid the nastiness, personal attacks and\n> noise of some previous threads.\n\nImpossible, since you are demonstrating the same level of incompetence\nand ignorance as in the provious threads.\n\n> This is a substantive and technical issue,\n> and personal remarks have no place in such a discussion.\n\nUnfortunately, I have yet to see you posting a technically competent\nmessage.\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 303, "properties": {"category": "rec.motorcycles", "text": "From: davide@dcs.qmw.ac.uk (Dave Edmondson)\nSubject: Re: Happy Easter!\nOrganization: Computer Science Dept, QMW, University of London\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 37\n\nNick Pettefar (npet@bnr.ca) wrote:\n: kevinh, on the Tue, 20 Apr 1993 13:23:01 GMT wibbled:\n\nJonathan Quist bemoaned:\n\n: : |> Yes, it's a minor blasphemy that U.S. companies would ?? on the likes \nof A.M.,\n: : |> Jaguar, or (sob) Lotus.  It's outright sacrilege for RR to have \nnon-British\n: : |> ownership.  It's a fundamental thing\n\nLotus looks set for a management buyout. GM weren't happy that the Elan was \nlate and too pricey.  If they can write off the Elan development costs the may \nbe able to sell them for a sensible price.\n\n\n: : I think there is a legal clause in the RR name, regardless of who owns it\n: : it must be a British company/owner - i.e. BA can sell the company but not\n: : the name.\n\n: : kevinh@hasler.ascom.ch\n\n: I don't believe that BA have anything to do with RR.  It's a seperate\n: company from the RR Aero-Engine company. \n\nIt's Vickers who own Rolls Royce cars. \n\nAnd yes Kevin it is posts, Morgan use a sliding pillar front suspension.\n\nOb Bike (at long bleeding last): When will that Pettefar bloke get a mail \naddress so we can bung him on the Ogri list?\n\ndave\n--\nDavid Edmondson                 davide@dcs.qmw.ac.uk\nQueen Mary & Westfield College  DoD#0777 Guzzi Le Mans 1000\n\"This means the end of the horse-drawn Zeppelin.\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 304, "properties": {"category": "comp.sys.mac.hardware", "text": "From: f0975893@jaguar.csc.wsu.edu\nSubject: Re: Educational Pricing\nArticle-I.D.: jaguar.1993Apr15.134938.1\nOrganization: Washington State University\nLines: 27\n\nIn article <C5Iz7n.Kyv@cs.dal.ca>, hayes@ug.cs.dal.ca (Kevin B. Hayes) writes:\n>>you can find retail that is within the price of a keyboard of educational\n>>prices. \n\nI would be very wary of retail outlets selling as cheap as educational prices!\nI went for a retailer, actually mail order (CDA computers), because its price\nwas better thant the campus computer store. I found out why later on when I\ntried to get a repair done at an Apple registered repair center - the CPU was a\nresale. The serial number had been removed and replaced with a non-standard\nnumber (probably from CDA computers). Consequently, the Apple repair man could\nnot do ANY warrenty repairs. So I ended up with just a 90day warrenty from CDA\nover the Apple 12month warrenty. Boy, was I pi**ed! Moral of the story, CAVEAT\nEMPTOR.\n\nHowever, if you go with a reliable, trustworthy mail order firm (if they exist\n- maybe someone could enlighten us with their experiences), you will probably\nget a better price than your local educational outlet simply because mail order\nout of state does not REQUIRE sales tax yet. Though for how much longer remains\nto be seen. The addition in sales tax on a CPU purchase will probably wipe out\nan educational discount. Again CAVEAT EMPTOR, some mail order companies DO\ninclude sales tax on purchases even if they are out of state, so check!\n\nRichard.\n \\\\\\\\/  Richard J Appleyard  f0975893@jaguar.csc.wsu.edu\n /o o\\  Washington State University  \n(   ) ) Voice (509) 335-7728  Fax (509) 335-9688 \n \\_o_/  \"To err is human, but to really screw things up takes a computer!\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 305, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Orion drive in vacuum -- how?\nOrganization: U of Toronto Zoology\nLines: 15\n\nIn article <1qn4bgINN4s7@mimi.UU.NET> goltz@mimi.UU.NET (James P. Goltz) writes:\n>  Would this work?  I can't see the EM radiation impelling very much\n>momentum (especially given the mass of the pusher plate), and it seems\n>to me you're going to get more momentum transfer throwing the bombs\n>out the back of the ship than you get from detonating them once\n>they're there.\n\nThe Orion concept as actually proposed (as opposed to the way it has been\nsomewhat misrepresented in some fiction) included wrapping a thick layer\nof reaction mass -- probably plastic of some sort -- around each bomb.\nThe bomb vaporizes the reaction mass, and it's that which transfers\nmomentum to the pusher plate.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 306, "properties": {"category": "soc.religion.christian", "text": "From: stephen@mont.cs.missouri.edu (Stephen Montgomery-Smith)\nSubject: Re: Latest on Branch Davidians\nOrganization: University of Missouri\nLines: 63\n\nIn <Apr.22.00.55.06.1993.2048@geneva.rutgers.edu> aaron@binah.cc.brandeis.edu (Scott Aaron) writes:\n\n>In article <Apr.20.03.02.42.1993.3815@geneva.rutgers.edu>,\n>conditt@tsd.arlut.utexas.edu (Paul Conditt) wrote:\n>>\n>>\n>> I think it's really sad that so many people put their faith in a mere\n>> man, even if he did claim to be the son of God, and/or a prophet.\n\n>I'll pose a question here that's got me thinking:  what distinguishes\n>\"true\" religion from cults (I'm speaking generally here, not specifially\n>about Christianity)?  Jerry Falwell was on Good Morning America on \n>Tuesday ostensibly to answer this question.  Basically, he said that\n>true religion follows a message whereas a cult follows a person.\n>But, then, Christianity is a cult because the message of Christianity\n>IS the person of Jesus.  So what distinguishes, for example, the\n>Branch Davidian \"cult\" from the Presbyterian \"church\"?  Doctrinal\n>differences don't answer the question, IMHO, so don't use them as\n>an answer.\n\n\nAs far as I can see, one of the big differences between Davidians and\nChristians is in who they follow.  I have sometimes tried to put myself\nin the feet of one of Jesus's disciples.  Basically, they gave up a\nlot --- career, possibly family, and well, a whole bunch, to follow\nJesus.\n\nSo what is the difference?  It is quite plain.  Jesus was good and\nDavid Koresh was not.\n\nThe problem is, I think, is that we try to legislate what is good\nand what is bad in terms of principles.  For instance, there are thousands of \nlaws in the U.S. governing what is legal and what is not.  Often, it is hard\nto bring people to justice, because it is not possible to find\na legal way to do it.  If only we could trust judges to be just,\nthen we could tell them to administer justice fairly, and justice\nwould be followed.  But since judges don't always get it right,\nwe have a complicated system involving precedent and bunches\nof other stuff which attempt to make the imperfect (the justice\nof man) into something perfect.  But what I hear about the justice\nsystem in the U.S. tells me that quite the opposite is true.\n\nThere is also a problem that we tend to judge the presentation\nmore than the material being presented.  So we might consider \na ranting Christian to be bad, but an eloquent person from another\nreligion to be good.  This goes along with the American desire\nto protect the Constitution at all costs, even if it allows\npeople to do bad things. \n\nI think that it is the message that is important.  If a man is\npresenting a false message, even if he is ever ever so mild mannered,\nthen that man is performing a tremendous disservice.\n\nI know that I am rambling here.  I guess that what I am trying to\nsay is that we shouldn't be looking for principles that tell us\nwhy the Davidians got it wrong.  It is not wrong to follow and\nworship a person.  But it is important to choose the right person.\nIt is simple.  Choose Jesus, and you got it right.  Choose\nanyone else, and you got it wrong.  Why?  Because Jesus is the\nbegotten son of God, and nobody else is.  Jesus was without sin, and\nnobody else was.\n\nStephen\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 307, "properties": {"category": "talk.politics.misc", "text": "From: goykhman@apollo.hp.com (Red Herring)\nSubject: Re: Clinton's immunization program\nNntp-Posting-Host: dzoo.ch.apollo.hp.com\nOrganization: Hewlett-Packard Company, Chelmsford, MA\nLines: 48\n\nIn article <1993Apr15.215912.1807@martha.utcc.utk.edu> PA146008@utkvm1.utk.edu (David Veal) writes:\n>In article <C5JoBH.7zt@apollo.hp.com> goykhman@apollo.hp.com (Red Herring) writes:\n>>In article <1993Apr14.122758.11467@magnus.acs.ohio-state.edu> jlinder@magnus.acs.ohio-state.edu (Jeffrey S Linder) writes:\n>>>In article <C5FJsL.6Is@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR.C\n>>>OM (Mark Wilson) writes:\n>>>>On the news last night Clinton was bashing the republicans for stonewalling\n>>>>his so called stimulus package.\n>>>>It seems that one small item within this package was going to pay for free\n>>>>immunizations for poor kids.\n>>>\n>>>Immunizations for children in this country are already free if you care to\n>>>go have it done.  The problem is not the cost, it is the irresponible parents\n>>>who are to stupid or to lazy to have it done.\n>>\n>>    In case you haven't noticed, Clintonites are pushing a universal health\n>>    care ACCESS program.  \"Access\" here means that folks who do not give \n>>    a damn about immunizing their children will have health care services\n>>    delivered to their doorsteps.\n>\n>       I've read about more than a few of these programs that ran into\n>problems in convincing parents to get their children immunized even\n>when they were delivered to their doorstep.  (I don't know, maybe\n>that sheet they have to be informed of about possible risks, side-\n>effects, and bad reactions scares them.)  \n\n    The immunization program is just a \"useful first step\". Among other\n    things, the money will go to pay for creating and maintaning a\n    a computerized \"innoculation\" database on all U.S. children.\n    (code-named Big Mother... Just kidding, the name will be Children\n    Defense Database, or something like that.)\n\n    Once the money is spent and little or no tangible results achieved, \n    the goverment will have to start knocking down doors, in some \n    neigborhoods, and bribe parents in others (probably the ones that \n    are paying kids for attending the school - what a fantastic idea!)\n\n>\n>------------------------------------------------------------------------\n>David Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\n>PA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\n>your pushed me down the elevator shaft;  I'm beginning to think you don't\n>love me anymore.\" - \"Weird Al\"\n\n\n-- \n------------------------------------------------------------------------------------------\nDisclaimer: Opinions expressed are mine, not my employer's.\n------------------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 308, "properties": {"category": "comp.windows.x", "text": "From: rps@arbortext.COM (Ralph Seguin)\nSubject: finding out state of state keys (eg, CapsLock and NumLock)\nOrganization: The Internet\nLines: 19\nTo: xpert@expo.lcs.mit.edu\n\nHi.  I've looked in the FAQ and the O-Reilly books and was unable to\nfind (an easy) means of finding out the state of state keys such as\nCapsLock and NumLock.  I can certainly track the events inside of my\nwindow and set a boolean there, but what if CapsLock is pressed in\nanother window?  I looked at XGrabKey() and decided it was definitely\nNOT what I wanted to do.  I could find no convenience function to tell\nme that information.\n\nMy question is this:  Is there a means of determining what the state\nof CapsLock and/or NumLock is?\n\nAn even more pointed question: Is there an easy means of making an X\nkeyboard act like a PC keyboard?  ie, CapsLock is active, and the user\npresses shift-a, I'd like to get a lowercase 'a' instead of 'A'.\n\nAny input is greatly appreciated. Please respond via email.  I will\nrepost a summary of my findings.\n\n\t\t\tThanks, Ralph\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 309, "properties": {"category": "rec.sport.hockey", "text": "From: mikkot@romulus.math.jyu.fi (Mikko Tarkiainen)\nSubject: Re: Pens Info needed\nNntp-Posting-Host: romulus.math.jyu.fi\nOrganization: University of Jyvaskyla, Finland\nLines: 32\n\nIn article <C5K9E8.M3@ccu.umanitoba.ca> umturne4@ccu.umanitoba.ca (Daryl Turner) writes:\n\n>Hmmm...I also heard through the grapevine that Team Finland might try and\n>leave a spot open for at least one NHLer. (Some guy named Sel{nne, ever\n>hear of him? :)  They might have to be content with Kurri, though, I hope. :)\n\nTrue, coach Matikainen is ready to keep a spot for Teemu all the way\nuntil the medal games. He wants Teppo Numminen, too. And Kurri, but for\nthem the spots cannot be left open for too long. Esa Tikkanen we have\nalready. \n\nEven without these players I think we have pretty good team. Young,\nhungry, talented guys, no old players that have got everything (except\nthe gold). Yesterday's practise game, SWE-FIN 6-6, shows that the two\nworld's best hockey teams ;) are in prime shape.  The Finn line\nRiihijarvi(slightly injured)-Saarikoski-Viitakoski shined. I bet these\ntwo teams are the best in the NHL, too. Roger, Roger?\n\nWhat do you people think about Team Canada with Lindros, Brind'Amour,\nBurke, Ranford, Recchi, Dineen...? Can they beat the Finns:?\n\nCoaching news: \n\n\t       Alpo Suhonen (ex-Jets) to Jokerit (now verified), \n               Boris Majorov (ex-Jokerit) to Tappara,\n\t       Vasili Tichonov (ex-Assat) to San Jose Sharks \n                                             (assistant coach),\n\t       Sakari Pietila to Lulea (silver team in Elite-serien)\n\nFW Mikko Makela (ex-TPS) to Malmo IF.\nG Markus Ketterer (Jokerit) still has no contract.\nFW Timo Saarikoski to Jokerit, watch out for him in next week.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 310, "properties": {"category": "sci.space", "text": "From: xrcjd@mudpuppy.gsfc.nasa.gov (Charles J. Divine)\nSubject: Washington Post Article on US-Russian Space Cooperation\nOrganization: NASA/GSFC Greenbelt Maryland\nLines: 23\n\nReported yesterday in the Washington Post (Kathy Sawyer, writer):\n\nThe article plays down the Russian role in US space.\n\nGibbons (science advisor to Clinton) sent Goldin a letter indicating\nNASA should not limit redesign options to those compatible with Mir\norbit.\n\nThe White House thinks expectations for Russian cooperation have been\nraised too high.\n\nThe article reports that some think the spending and schedule limits\nfor space station are so stringent that the redesign is nearly\nimpossible.  That's why some think Goldin has begun looking at \nRussian hardware.\n\nGoldin states NASA will present all options to the administration \nwhich will then have decision making power.\n\nGoldin and the White House have totally ruled out using Energia to\nboost the station.\n-- \nChuck Divine\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 311, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: vg@volkmar.Stollmann.DE (Volkmar Grote)\nSubject: IBM PS/1 vs TEAC FD\nDistribution: world\nOrganization: Me? Organized?\nLines: 21\n\nHello,\n\nI already tried our national news group without success.\n\nI tried to replace a friend's original IBM floppy disk in his PS/1-PC\nwith a normal TEAC drive.\nI already identified the power supply on pins 3 (5V) and 6 (12V), shorted\npin 6 (5.25\"/3.5\" switch) and inserted pullup resistors (2K2) on pins\n8, 26, 28, 30, and 34.\nThe computer doesn't complain about a missing FD, but the FD's light\nstays on all the time. The drive spins up o.k. when I insert a disk,\nbut I can't access it.\nThe TEAC works fine in a normal PC.\n\nAre there any points I missed?\n\nThank you.\n\tVolkmar\n\n---\nVolkmar.Grote@Stollmann.DE\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 312, "properties": {"category": "sci.med", "text": "From: GAnderson@Cmutual.com.au  (Gavin Anderson)\nSubject: Help - Looking for a Medical Journal Article - Whiplash/Cervical Pain\nLines: 37\nOrganization: Colonial Mutual Life Australia\nX-Newsreader: FTPNuz (DOS) v1.0\nLines: 24\n\nHi,\nI am not sure where to post this message, please contact me if I'm way off\nthe mark.\nOn 19.3.93 my wife went to her General Practitioner (Doctor). He mentioned\nan article from a medical journal that is of great interest to us. He had\nread it in the previous three months but has been unable to find it again.\nThe article was about Whiplash Injury/Cervical Pain. It mentions the use of\na MRI (Magnetic Resonance Imagery) machine as a diagnostic tool and the work\nof a neurosurgeon who relived cervical pain.\nThis article is most likely in an Australian medical journal. I very much\nwant to obtain the name of the article, journal and author because the case\nmatches my wife. We would very much appreciate anyone's help in this matter\nvia email preferably.\n---------------------------------------------------------------------------\nGavin Anderson                              email: GAnderson@cmutual.com.au\nAnalyst/Programmer.                         phone: +61-3-607-6299\nColonial Mutual Life Aust. (ACN 004021809)  fax  : +61-3-283-1095\n-----------Some people never consciously discover their antipodes----------\n\n---------------------------------------------------------------------------\nGavin Anderson                              email: GAnderson@cmutual.com.au\nAnalyst/Programmer.                         phone: +61-3-607-6299\nColonial Mutual Life Aust. (ACN 004021809)  fax  : +61-3-283-1095\n---------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 313, "properties": {"category": "talk.politics.mideast", "text": "From: astein@nysernet.org (Alan Stein)\nSubject: Re: Hamza Salah, the Humanist\nOrganization: NYSERNet, Inc.\nLines: 16\n\ndzk@cs.brown.edu (Danny Keren) writes:\n\n>cl056@cleveland.Freenet.Edu (Hamaza H. Salah) writes:\n\n># Well said Mr. Beyer :)\n\n>He-he. The great humanist speaks. One has to read Mr. Salah's posters,\n>in which he decribes Jews as \"sons of pigs and monkeys\", keeps\n>promising the \"final battle\" between Muslims and Jews (in which the\n>stons and the trees will \"cry for the Muslims to come and kill the\n>Jews hiding behind them\"), makes jokes about Jews dying from heart\n>attacks etc, to realize his objective stance on the matters involved.\n\nHumanist, or sub-humanist? :-)\n-- \nAlan H. Stein                     astein@israel.nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 314, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 04/15 - Calculations\nSupersedes: <math_730956451@cs.unc.edu>\nOrganization: University of North Carolina, Chapel Hill\nLines: 334\nDistribution: world\nExpires: 6 May 1993 19:56:03 GMT\nNNTP-Posting-Host: mahler.cs.unc.edu\nKeywords: Frequently Asked Questions\n\nArchive-name: space/math\nLast-modified: $Date: 93/04/01 14:39:12 $\n\nPERFORMING CALCULATIONS AND INTERPRETING DATA FORMATS\n\n    COMPUTING SPACECRAFT ORBITS AND TRAJECTORIES\n\n    References that have been frequently recommended on the net are:\n\n    \"Fundamentals of Astrodynamics\" Roger Bate, Donald Mueller, Jerry White\n    1971, Dover Press, 455pp $8.95 (US) (paperback). ISBN 0-486-60061-0\n\n    NASA Spaceflight handbooks (dating from the 1960s)\n\tSP-33 Orbital Flight Handbook (3 parts)\n\tSP-34 Lunar Flight Handbook   (3 parts)\n\tSP-35 Planetary Flight Handbook (9 parts)\n\n\tThese might be found in university aeronautics libraries or ordered\n\tthrough the US Govt. Printing Office (GPO), although more\n\tinformation would probably be needed to order them.\n\n    M. A. Minovitch, _The Determination and Characteristics of Ballistic\n    Interplanetary Trajectories Under the Influence of Multiple Planetary\n    Attractions_, Technical Report 32-464, Jet Propulsion Laboratory,\n    Pasadena, Calif., Oct, 1963.\n\n\tThe title says all. Starts of with the basics and works its way up.\n\tVery good. It has a companion article:\n\n    M. Minovitch, _Utilizing Large Planetary Perubations for the Design of\n    Deep-Space Solar-Probe and Out of Ecliptic Trajectories_, Technical\n    Report 32-849, JPL, Pasadena, Calif., 1965.\n\n\tYou need to read the first one first to realy understand this one.\n\tIt does include a _short_ summary if you can only find the second.\n\n\tContact JPL for availability of these reports.\n\n    \"Spacecraft Attitude Dynamics\", Peter C. Hughes 1986, John Wiley and\n\tSons.\n\n    \"Celestial Mechanics: a computational guide for the practitioner\",\n    Lawrence G. Taff, (Wiley-Interscience, New York, 1985).\n\n\tStarts with the basics (2-body problem, coordinates) and works up to\n\torbit determinations, perturbations, and differential corrections.\n\tTaff also briefly discusses stellar dynamics including a short\n\tdiscussion of n-body problems.\n\n\n    COMPUTING PLANETARY POSITIONS\n\n    More net references:\n\n    Van Flandern & Pullinen, _Low-Precision Formulae for Planetary\n    Positions_, Astrophysical J. Supp Series, 41:391-411, 1979. Look in an\n    astronomy or physics library for this; also said to be available from\n    Willmann-Bell.\n\n\tGives series to compute positions accurate to 1 arc minute for a\n\tperiod + or - 300 years from now. Pluto is included but stated to\n\thave an accuracy of only about 15 arc minutes.\n\n    _Multiyear Interactive Computer Almanac_ (MICA), produced by the US\n    Naval Observatory. Valid for years 1990-1999. $55 ($80 outside US).\n    Available for IBM (order #PB93-500163HDV) or Macintosh (order\n    #PB93-500155HDV). From the NTIS sales desk, (703)-487-4650. I believe\n    this is intended to replace the USNO's Interactive Computer Ephemeris.\n\n    _Interactive Computer Ephemeris_ (from the US Naval Observatory)\n    distributed on IBM-PC floppy disks, $35 (Willmann-Bell). Covers dates\n    1800-2049.\n\n    \"Planetary Programs and Tables from -4000 to +2800\", Bretagnon & Simon\n    1986, Willmann-Bell.\n\n\tFloppy disks available separately.\n\n    \"Fundamentals of Celestial Mechanics\" (2nd ed), J.M.A. Danby 1988,\n    Willmann-Bell.\n\n\tA good fundamental text. Includes BASIC programs; a companion set of\n\tfloppy disks is available separately.\n\n    \"Astronomical Formulae for Calculators\" (4th ed.), J. Meeus 1988,\n    Willmann-Bell.\n\n    \"Astronomical Algorithms\", J. Meeus 1991, Willmann-Bell.\n\n\tIf you actively use one of the editions of \"Astronomical Formulae\n\tfor Calculators\", you will want to replace it with \"Astronomical\n\tAlgorithms\". This new book is more oriented towards computers than\n\tcalculators and contains formulae for planetary motion based on\n\tmodern work by the Jet Propulsion Laboratory, the U.S. Naval\n\tObservatory, and the Bureau des Longitudes. The previous books were\n\tall based on formulae mostly developed in the last century.\n\n\tAlgorithms available separately on diskette.\n\n    \"Practical Astronomy with your Calculator\" (3rd ed.), P. Duffett-Smith\n    1988, Cambridge University Press.\n\n    \"Orbits for Amateurs with a Microcomputer\", D. Tattersfield 1984,\n    Stanley Thornes, Ltd.\n\n\tIncludes example programs in BASIC.\n\n    \"Orbits for Amateurs II\", D. Tattersfield 1987, John Wiley & Sons.\n\n    \"Astronomy / Scientific Software\" - catalog of shareware, public domain,\n    and commercial software for IBM and other PCs. Astronomy software\n    includes planetarium simulations, ephemeris generators, astronomical\n    databases, solar system simulations, satellite tracking programs,\n    celestial mechanics simulators, and more.\n\n\tAndromeda Software, Inc.\n\tP.O. Box 605\n\tAmherst, NY 14226-0605\n\n\n    COMPUTING CRATER DIAMETERS FROM EARTH-IMPACTING ASTEROIDS\n\n    Astrogeologist Gene Shoemaker proposes the following formula, based on\n    studies of cratering caused by nuclear tests.\n\n\t\t     (1/3.4)\n    D = S  S  c  K  W\t    : crater diameter in km\n\t g  p  f  n\n\n\t       (1/6)\n    S = (g /g )\t\t    : gravity correction factor for bodies other than\n     g\t  e  t\t\t      Earth, where g = 9.8 m/s^2 and g\tis the surface\n\t\t\t\t\t    e\t\t      t\n\t\t\t      gravity of the target body. This scaling is\n\t\t\t      cited for lunar craters and may hold true for\n\t\t\t      other bodies.\n\n\t\t(1/3.4)\n    S = (p / p )\t    : correction factor for target density p  ,\n     p\t  a   t\t\t\t\t\t\t\t    t\n\t\t\t      p  = 1.8 g/cm^3 for alluvium at the Jangle U\n\t\t\t       a\n\t\t\t      crater site, p = 2.6 g/cm^3 for average\n\t\t\t      rock on the continental shields.\n\n    C\t\t\t    : crater collapse factor, 1 for craters <= 3 km\n\t\t\t      in diameter, 1.3 for larger craters (on Earth).\n\n\t\t\t\t\t\t\t    (1/3.4)\n    K\t\t\t    : .074 km / (kT TNT equivalent)\n     n\t\t\t      empirically determined from the Jangle U\n\t\t\t      nuclear test crater.\n\n\t      3\t\t   2\t\t       19\n    W = pi * d\t* delta * V  / (12 * 4.185 * 10  )\n\t\t\t    : projectile kinetic energy in kT TNT equivalent\n\t\t\t      given diameter d, velocity v, and projectile\n\t\t\t      density delta in CGS units. delta of around 3\n\t\t\t      g/cm^3 is fairly good for an asteroid.\n\n    An RMS velocity of V = 20 km/sec may be used for Earth-crossing\n    asteroids.\n\n    Under these assumptions, the body which created the Barringer Meteor\n    Crater in Arizona (1.13 km diameter) would have been about 40 meters in\n    diameter.\n\n    More generally, one can use (after Gehrels, 1985):\n\n    Asteroid\t    Number of objects  Impact probability  Impact energy\n    diameter (km)\t\t       (impacts/year)\t   (* 5*10^20 ergs)\n\n     10\t\t\t    10\t\t     10^-8\t\t10^9\n      1\t\t\t 1 000\t\t     10^-6\t\t10^6\n      0.1\t       100 000\t\t     10^-4\t\t10^3\n\n    assuming simple scaling laws. Note that 5*10^20 ergs = 13 000 tons TNT\n    equivalent, or the energy released by the Hiroshima A-bomb.\n\n    References:\n\n    Gehrels, T. 1985 Asteroids and comets. _Physics Today_ 38, 32-41. [an\n\texcellent general overview of the subject for the layman]\n\n    Shoemaker, E.M. 1983 Asteroid and comet bombardment of the earth. _Ann.\n\tRev. Earth Planet. Sci._ 11, 461-494. [very long and fairly\n\ttechnical but a comprehensive examination of the\n\t subject]\n\n    Shoemaker, E.M., J.G. Williams, E.F. Helin & R.F. Wolfe 1979\n\tEarth-crossing asteroids: Orbital classes, collision rates with\n\tEarth, and origin. In _Asteroids_, T. Gehrels, ed., pp. 253-282,\n\tUniversity of Arizona Press, Tucson.\n\n    Cunningham, C.J. 1988 _Introduction to Asteroids: The Next Frontier_\n\t(Richmond: Willman-Bell, Inc.) [covers all aspects of asteroid\n\tstudies and is an excellent introduction to the subject for people\n\tof all experience levels. It also has a very extensive reference\n\tlist covering essentially all of the reference material in the\n\tfield.]\n\n\n    MAP PROJECTIONS AND SPHERICAL TRIGNOMETRY\n\n    Two easy-to-find sources of map projections are the \"Encyclopaedia\n    Brittanica\", (particularly the older volumes) and a tutorial appearing\n    in _Graphics Gems_ (Academic Press, 1990). The latter was written with\n    simplicity of exposition and suitability of digital computation in mind\n    (spherical trig formulae also appear, as do digitally-plotted examples).\n\n    More than you ever cared to know about map projections is in John\n    Snyder's USGS publication \"Map Projections--A Working Manual\", USGS\n    Professional Paper 1395. This contains detailed descriptions of 32\n    projections, with history, features, projection formulas (for both\n    spherical earth and ellipsoidal earth), and numerical test cases. It's a\n    neat book, all 382 pages worth. This one's $20.\n\n    You might also want the companion volume, by Snyder and Philip Voxland,\n    \"An Album of Map Projections\", USGS Professional Paper 1453. This\n    contains less detail on about 130 projections and variants. Formulas are\n    in the back, example plots in the front. $14, 250 pages.\n\n    You can order these 2 ways. The cheap, slow way is direct from USGS:\n    Earth Science Information Center, US Geological Survey, 507 National\n    Center, Reston, VA 22092. (800)-USA-MAPS. They can quote you a price and\n    tell you where to send your money. Expect a 6-8 week turnaround time.\n\n    A much faster way (about 1 week) is through Timely Discount Topos,\n    (303)-469-5022, 9769 W. 119th Drive, Suite 9, Broomfield, CO 80021. Call\n    them and tell them what you want. They'll quote a price, you send a\n    check, and then they go to USGS Customer Service Counter and pick it up\n    for you. Add about a $3-4 service charge, plus shipping.\n\n    A (perhaps more accessible) mapping article is:\n\n\tR. Miller and F. Reddy, \"Mapping the World in Pascal\",\n\tByte V12 #14, December 1987\n\n\tContains Turbo Pascal procedures for five common map projections. A\n\tdemo program, CARTOG.PAS, and a small (6,000 point) coastline data\n\tis available on CompuServe, GEnie, and many BBSs.\n\n    Some references for spherical trignometry are:\n\n\t_Spherical Astronomy_, W.M. Smart, Cambridge U. Press, 1931.\n\n\t_A Compendium of Spherical Astronomy_, S. Newcomb, Dover, 1960.\n\n\t_Spherical Astronomy_, R.M. Green, Cambridge U. Press., 1985 (update\n\tof Smart).\n\n\t_Spherical Astronomy_, E Woolard and G.Clemence, Academic\n\tPress, 1966.\n\n\n    PERFORMING N-BODY SIMULATIONS EFFICIENTLY\n\n\t\"Computer Simulation Using Particles\"\n\tR. W. Hockney and J. W. Eastwood\n\t(Adam Hilger; Bristol and Philadelphia; 1988)\n\n\t\"The rapid evaluation of potential fields in particle systems\",\n\tL. Greengard\n\tMIT Press, 1988.\n\n\t    A breakthrough O(N) simulation method. Has been parallelized.\n\n\tL. Greengard and V. Rokhlin, \"A fast algorithm for particle\n\tsimulations,\" Journal of Computational Physics, 73:325-348, 1987.\n\n\t\"An O(N) Algorithm for Three-dimensional N-body Simulations\", MSEE\n\tthesis, Feng Zhao, MIT AILab Technical Report 995, 1987\n\n\t\"Galactic Dynamics\"\n\tJ. Binney & S. Tremaine\n\t(Princeton U. Press; Princeton; 1987)\n\n\t    Includes an O(N^2) FORTRAN code written by Aarseth, a pioneer in\n\t    the field.\n\n\tHierarchical (N log N) tree methods are described in these papers:\n\n\tA. W. Appel, \"An Efficient Program for Many-body Simulation\", SIAM\n\tJournal of Scientific and Statistical Computing, Vol. 6, p. 85,\n\t1985.\n\n\tBarnes & Hut, \"A Hierarchical O(N log N) Force-Calculation\n\tAlgorithm\", Nature, V324 # 6096, 4-10 Dec 1986.\n\n\tL. Hernquist, \"Hierarchical N-body Methods\", Computer Physics\n\tCommunications, Vol. 48, p. 107, 1988.\n\n\n    INTERPRETING THE FITS IMAGE FORMAT\n\n    If you just need to examine FITS images, use the ppm package (see the\n    comp.graphics FAQ) to convert them to your preferred format. For more\n    information on the format and other software to read and write it, see\n    the sci.astro.fits FAQ.\n\n\n    SKY (UNIX EPHEMERIS PROGRAM)\n\n    The 6th Edition of the Unix operating system came with several software\n    systems not distributed because of older media capacity limitations.\n    Included were an ephmeris, a satellite track, and speech synthesis\n    software. The ephmeris, sky(6), is available within AT&T and to sites\n    possessing a Unix source code license. The program is regarded as Unix\n    source code. Sky is <0.5MB. Send proof of source code license to\n\n\tE. Miya\n\tMS 258-5\n\tNASA Ames Research Center\n\tMoffett Field, CA 94035-1000\n\teugene@orville.nas.nasa.gov\n\n\n    THREE-DIMENSIONAL STAR/GALAXY COORDINATES\n\n    To generate 3D coordinates of astronomical objects, first obtain an\n    astronomical database which specifies right ascension, declination, and\n    parallax for the objects. Convert parallax into distance using the\n    formula in part 6 of the FAQ, convert RA and declination to coordinates\n    on a unit sphere (see some of the references on planetary positions and\n    spherical trignometry earlier in this section for details on this), and\n    scale this by the distance.\n\n    Two databases useful for this purpose are the Yale Bright Star catalog\n    (sources listed in FAQ section 3) or \"The Catalogue of Stars within 25\n    parsecs of the Sun\" (in pub/SPACE/FAQ/stars.data and stars.doc on\n    ames.arc.nasa.gov).\n\n\nNEXT: FAQ #5/15 - References on specific areas\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 315, "properties": {"category": "rec.motorcycles", "text": "From: Mark Crispin <mrc@Tomobiki-Cho.CAC.Washington.EDU>\nSubject: Re: BMW MOA members read this!\nOrganization: University of Washington\nLines: 2\nNNTP-Posting-Host: tomobiki-cho.cac.washington.edu\nIn-Reply-To: <1qkie6$3nd@vtserf.cc.vt.edu> \nMIME-Version: 1.0\nContent-Type: TEXT/PLAIN; charset=US-ASCII\n\nCan I resign BMW MOA and get the remainder of my 5-year membership refunded?\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 316, "properties": {"category": "sci.crypt", "text": "From: wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705)\nSubject: Re: Clipper considered harmful\nOrganization: Sorcerer's Apprentice Cleaning Services\nDistribution: inet\nIn-Reply-To: shirriff@sprite.berkeley.edu's message of 21 Apr 1993 00:36:44 GMT\nNntp-Posting-Host: rainier.ho.att.com\nLines: 24\n\nIn article <1r24us$oeh@agate.berkeley.edu> shirriff@sprite.berkeley.edu (Ken Shirriff) writes:\n   In article <15469@optilink.COM> brad@optilink.COM (Brad Yearwood) writes:\n   >Finally, because there is essentially no possibility of intercepting in\n   >realtime the scrutable content of communications between stolen instruments,\n   >there will exist strong motivation to record and archive _all_ communications\n   >in the network for ex-post-facto scrutiny (once some criminal act is\n   >discovered, and the instruments involved have been identified).\n\n\"All\" is a *very* big number.  The AT&T Long Distance network has\naround 20,000 T3 trunks (45 Mbit/sec), which is on the order of 10**12 bits/sec.\nThat doesn't even count the amount of traffic in the LOCAL phone companies,\nor our long-distance competitors.  It's about 200 Exabytes tapes / second,\nwhich is pretty large even for the NSA :-)\n\nOn the other hand, I can easily see them recording the traffic for\n\"interesting\" people, such as dissidents, suspected criminals,\nforeign telephone calls, and anybody noticed using encryption.\nAs Ken Shiriff speculates, recording encrypted traffic will probably\nbe judged not to be an invasion of privacy pretty soon ....\n--\n#\t\t\t\tPray for peace;      Bill\n# Bill Stewart 1-908-949-0705 wcs@anchor.att.com AT&T Bell Labs 4M312 Holmdel NJ\n#\t              No, I'm *from* New Jersey, I only *work* in cyberspace....\n# White House Commect Line 1-202-456-1111  fax 1-202-456-2461\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 317, "properties": {"category": "soc.religion.christian", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: Florida State University\nLines: 227\n\nSomeone sent me this FAQ by E-mail and I post my response here.\n\n[I'm not enforcing the inclusion limits on this FAQ because most\nof our readers probably haven't seen it.  --clh]\n\nChrist warns that anyone who \"breaks one of the least of these\ncommandments *and* teaches otheres to do the same will be called least in\nthe kingdom of heaven\" (Matt. 5:19.  This FAQ is so full of error that I\nmust respond to it.  I hope that whoever maintains will remove from it the\npartisan theology.\n\n| > Brothers and Sisters,\n| > \n| >   Being new to the faith and examining the Decalogue closely, I've noticed the\n| > fourth commandment is pretty specific about \"keeping the Sabbath day.\"  It\n| > states the 7th day( Saturday ) is the Sabbath while most Christian religions\n| > keep( or atleast go to church ) on Sunday.  What's up?\n| \n| This is a frequently asked question.  Every time it arises, it causes\n| months of debate.  So let me see if I can answer you directly.\n| Basically it's because the Law was given to Moses as part of a\n| specific covenanent with the Jews.  Most of us aren't Jews, so we\n| aren't part of that covenant.  There was an argument early in\n| Christian history about whether the Mosaic laws should apply to\n| Gentiles who became Christians.  You can see the account of this\n| debate in Acts 15.  The main question there was circumcision, but\n| keeping the Sabbath would be part of it as well.  The apostles\n| concluded that we need not become Jews in order to become Christians,\n| and therefore that rules such as circumcision did not apply to us.\n\n1.  The law was known to man before it was revealed on Mount Sinai.  Rom\n4:15 notes that \"where no law is, there is no transgression.\"  Not only\ndid sin exist before Sinai (Eden), but the Sabbath was kept before it\nwas revealed on Sinai (Ex 16).\n\n2.  The problem with the first covenant was not the law, but the promise\nwhich undergirded it.  God wanted to perform his will in the lives of the\npeople, but in their ignorance after 400 years of slavery, they promised\n\"what ever He says to do we will do.\"  That is why the new covenant is\nbased on \"better promises\" (Heb. 8:6).  Rather than do away with the law\nGod promised to \"put my laws in their minds and write them on their\nhearts\" (Heb. 8:10).\n\n3.  Including the Sabbath in the Acts 15 is selective inclusion.  The\nSabbath was more important to the Jews than circumcision.  If any attempt\nhad been made to do away with the Sabbath the reaction would have been\neven more strident than is recorded in Acts 15.  Do not confuse the weekly\nSabbath of the Decalogue with the ceremonial sabbaths which could occur at\nany time of the week and were part of the law (ceremonial) which was\n*added* because of transgression (of the moral law) (Gal 3:19).\n\n4.  Israel stands for God's people of all time.  That is why God *grafted*\nthe Gentiles in.  Roma 9:4 says that the adoption, the glory, the\ncovenants, the giving of the law, the service of God and the promises\nbelong to Israelites.   In explanation Paul makes it clear that being born\ninto Israel is not enough \"For they are not all Israel, which are of\nIsrael\" v 6.  Then in Gal 3:19 he says \"if ye be Christ's, then are ye\nAbraham's seed, and heirs according to the promise.\"  All Christians are\nAbraham's seed, Jews, Israelites.  Not physically, for that is not the\ncriterion, but spiritually.  We are joint heirs with Jesus based on the\npromise God made to all his people the Israelites.\n\n| \n| While Christians agree that the OT Laws do not all apply to us,\n| because some of them are part of a specific covenanent with the Jews,\n| we also expect to see some similarity between the things God expected\n| from the Jews and the things he expects from us.  After all, it's the\n| same God.  However there are several ways of dealing with this.\n| \n| These days the most common approach is to separate the OT commandments\n| into \"moral\" and \"ceremonial\".  Ceremonial commandments apply only to\n| the Jews.  They are part of the specific Mosaic covenant.  These are\n| thinsg like the kosher laws and circumcision.  Moral laws apply to\n| everyone.  Most of the 10 commands are part of the moral law, except\n| for the commandment about the Sabbath.  I believe most people who take\n| this approach would say that the specific requirement to worship on\n| the Sabbath is part of the ceremonial law, but a general obligation to\n| worship regularly is part of the general moral law.  Thus Christians\n| are free to choose the specific time we worship.\n\nPeople would probably agree but they are wrong.  How can the Sabbath\ncommandment be ceremonial when it is part of a law which predates the\nceremonial laws?  You are not free to choose your time of worship.  Even\nif you were why do you follow a day of worship which has its origins in pagan\nsun worship.  Would you rather give up a day which God blessed,\nsanctified, and hallowed in exchange for one which all church leaders\nagree has not biblical foundation (see Sabbath Admissions in\nsoc.religion.christian.bible-study).\n| \n| A more radical approach (which is generally connected with John Calvin\n| and the Reformed tradition) says that the Law as a whole is no longer\n| binding.  Instead, we are entirely under grace, and our behavior\n| should be guided solely by love.  Portions of the OT Law are still\n| useful as guidance.  But they are not properly speaking legally\n| binding on us.  In practice most people who take this position do not\n| believe it is safe to leave Christians without moral guidannce.  While\n| we may no longer be under Law, as sinners, it's not safe for us to go\n| into situations with no principles to guide us.  We're too good at\n| self-justification for that to be safe.  Thus Christians do have moral\n| guidance, from things like Jesus' teachings, Paul's advice, etc.\n| These may not be precisely a Law, but they serve much the same\n| function as, and have largely the same content as, the \"moral law\" in\n| the previous analysis.  While Calvin would deny that we have a fixed\n| legal responsibility to worship on any specific day, he would say that\n| given human weakness, the discipline of regular worship is important.\n| \nI do not care what Calvin or any theologian says.  My guide is what God\nsays.  If being not under the law means we do not have to keep the law,\nwhy is it that the only section of the law we have trouble with is the\nSabbath commandment, which is the only one God thought was important\nenough to say *REMEMBER*?  If you study the word deeply you will note that\nthe message is that we are no longer under the condemnation of the law but\nfreed by the grace of God.  If a cop pulls me over for speeding, then in\ncourt I ask for mercy and the judge does not throw the book at me but gives me\ngrace, do I walk out of the court saying \"I can now go on speeding, for I\nam now under grace?\"  Being under grace I now drive within the speed\nlimit.  Paul adds to it in Rom. 3:31 \"Di we then make void the law through\nfaith?  God forbid: yea, we establish the law.\"  \"Wherefore the law is\nholy, and the commandment holy, and just, and good\" (Rom. 7:12).\n\n| In both analyses, the specific day is not an issue.  As a matter of\n| tradition, we worship on Sunday as a memorial of Christ's\n| resurrection.  There's some debate about what Acts shows about early\n| Christian worship.  The most common analysis is that is shows Jewish\n| Christians continuing to go to Jewish services on the Sabbath, but\n| that specifically Christian service were not necessarily held then.\n| Act 20:7 shows worship on the first day (Sunday), and I Cor 16:2 also\n| implies gatherings on that day.\n| \n| There are a few groups that continue to believe Christians have to\n| worship on the Sabbath (Saturday).  The best-known are the Seventh-Day\n| Adventists and Jehovah's Witnesses.  They argue that Act 20:7 is not a\n| regular worship service, but a special meeting to see Paul off, and\n| that I Cor 16:2 doesn't explicitly say it's a regular worship service.\n\nDo you prefer implication to fact?  A careful study of the Acts 20 shows\nthat the meeting was on Saturday night and that on Sunday morning Paul did\nnot go to a worship service, but set off on a long journey by foot to\nAssos.  In ICor 16 there is no way you can equate \"lay by him in store\"\nwith \"go to a worship service.\"\n| \n| It's clear that this issue was a contested one in Paul's time.  See\n| Rom 14:5.  Paul's advice is that we should be very careful about\n| judging each other on issues like this.  One person sees a specific\n| day as mandated by God, while another does not.  He who observes that\n| specific day does it in honor of the Lord.  He who believes his\n| worship is free of such restrictions also does it in honor of the\n| Lord.  (Those who believe that the Sabbath is still mandated argue\n| that Paul is not referring to Sabbath worship here.  Note however Col\n| 2:16, which says something similar but briefer.  It explicitly\n| mentions Sabbath.)\n\nWrong.  These are the sabbath days of the ceremonial law, not the Sabbath\nday of the moral law.\n| \n| There are some differences among Christians about use of the word\n| \"Sabbath\".  Originally the term referred to the 7th Day, the Jewish\n| day of worship.  Many Christians now use it to refer to Sunday, the\n| day of Christian worship.  They do this largely so that they can apply\n| the 4th (or whatever -- there are a couple of different numbering\n| schemes) commandment to it.  Reformed tradition does not do this.  It\n| distinguishes between the Sabbath -- which is the observance mandated\n| for Jews, and the Lord's Day -- which is the free Christian worship.\n| (The only reference I can find to this in the NT is Rev 1:10.)  There\n| are also differences about laws regarding this day.  Many Christians\n| support \"blue laws\", both in secular law and church law, setting aside\n| that day and causing people to spend it in worship.  The more radical\n| anti-legal approach sees such regulations as a return to the Jewish\n| Sabbath, which is not appropriate to the free Christian worship of the\n| Lord's Day.\n| \nWhy would you prefer to twist and turn, relying on different arguments\nwhich conflict with each other, rather than obey a simple request from a\nGod who loved you enough to die for you.  Jesus died because the law could\nnot be changed.  Why bother to die in order to meet the demands of a\nbroken law if all you need to do is change the law.  Penalties for law\nbreaking means the law is immutable.  That is why it is no sin not to\nfollow the demands of the ceremonial laws.  It will always be a sin to\nmake false gods, to violate God's name, to break the Sabbath, to steal, to\nkill, etc.  Except it you disagree.  But then your opinion has no weight\nwhen placed next to the word of God.\n\nDarius\n\n[It's not clear how much more needs to be said other than the FAQ.  I\nthink Paul's comments on esteeming one day over another (Rom 14) is\nprobably all that needs to be said.  I accept that Darius is doing\nwhat he does in honor of the Lord.  I just wish he might equally\naccept that those who \"esteem all days alike\" are similarly doing\ntheir best to honor the Lord.\n\nHowever I'd like to be clear that I do not think there's unambiguous\nproof that regular Christian worship was on the first day.  As I\nindicated, there are responses on both of the passages cited.\n\nThe difficulty with both of these passages is that they are actually\nabout something else.  They both look like they are talking about\nnnregular Christian meetings, but neither explicitly says \"and they\ngathered every Sunday for worship\".  We get various pieces of\ninformation, but nothing aimed at answering this question.  \n\nAct 2:26 describes Christians as participating both in Jewish temple\nworship and in Christian communion services in homes.  Obviously the\ntemple worship is on the Sabbath.  Acts 13:44 is an example of\nChristians participating in them.  Unfortunately it doesn't tell us\nwhat day Christians met in their houses.  Acts 20:7, despite Darius'\nconfusion, is described by Acts as occuring on Sunday.  (I see no\nreason to impose modern definitions of when days start, when the\nBiblical text is clear about what was meant.)  The wording implies to\nme that this was a normal meeting.  It doesn't say they gathered to\nsee Paul off, but that when they were gathered for breaking bread,\nPaul talked about his upcoming travel.  But that's just not explicit\nenough to be really convincing.  Similarly with 1 Cor 16:2.  It says\nthat on the first day they should set aside money for Paul's\ncollection.  Now if you want to believe that they gathered specially\nto do this, or that they did it in their homes, I can't disprove it,\nbut the obvious time for a congregation to take an offering would be\nwhen they normally gather for worship, and if they were expected to do\nit in their homes there would be no reason to mention a specific day.\nSo I think the most obvious reading of this is that \"on the first day\nof every week\" simply means every time they gather for worship.  \n\nI think the reason we have only implications and not clear statements\nis that the NT authors assumed that their readers knew when Christian\nworship was.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 318, "properties": {"category": "comp.graphics", "text": "Subject: Cornerstone DualPage driver wanted\nFrom: tkelder@ebc.ee (Tonis Kelder)\nNntp-Posting-Host: kask.ebc.ee\nX-Newsreader: TIN [version 1.1 PL8]Lines: 12\nLines: 12\n\n\n\nI am looking for a WINDOW 3.1 driver  for \n     Cornerstone  DualPage (Cornerstone Technology, Inc) \nvideo card. Does  anybody know, that has these?  Is there one?\n\nThanks for any info,\n\nTo~nis\n-- \nTo~nis Kelder    Estonian Biocentre     (tkelder@kask.ebc.ee)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 319, "properties": {"category": "comp.graphics", "text": "From: millernw@craft.camp.clarkson.edu (Neal Miller)\nSubject: Re: Trying to view POV files.....\nNntp-Posting-Host: craft.clarkson.edu\nOrganization: Clarkson University\nLines: 31\n\nmerkelbd@sage.cc.purdue.edu (Brian Merkel) writes:\n\n>In article <1993Apr11.132604.13400@ornl.gov> ednobles@sacam.OREN.ORTN.EDU (Edward d Nobles) writes:\n>>\n>>I've been trying to view .tga files created in POVRAY.  I have the Diamond\n>>SpeedStar 24 Video board (not the _24X_).  So far I can convert them to\n>>jpeg using cjpeg and view them with CVIEW but that only displays 8 bit color.\n>>\n>>I'm looking for some way to convert and/or view them in 24 bit.\n>>\n>>I have UNIVESA (uvesa31.zip) and the DVPEG viewer but I don't get anything.\n>>Perhaps I am not setting up UNIVESA properly?  If anyone has ideas about this\n>>please feel free to enlighten me...\n>>\n>>Just want to see the darn things in real color...\n\n>Image Alchemy (aka alchemy) will view the TGA files that POV outputs\n> and just about any other format you can think of. It will also convert\n> between all these. It's shareware, so it's probably available by FTP\n> somwhere out there in netland...\n\n        Yep... Alchemy works fine on my Tseng400+DAC, but I think I remember\nreading that it only displays in 15-bit or so.  Of course, that's still 32K\ncolors which is nothing to sneeze at.  Use the --v flag.\n\n\n--\n-----------------------------------------------------------------------------\n Neal Miller         | \"Why not go mad?\"  | millernw@craft.camp.clarkson.edu\n Clarkson University |     - Ford Prefect |     dark@craft.camp.clarkson.edu\n-----------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 320, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: How many more Muslim people will be slaughtered by 'SDPA' criminals?\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 257\n\nIn article <1993Apr18.051439.5942@urartu.sdpa.org> hla@urartu.sdpa.org  writes:\n\n>I want this discussion to take place in English, because it is only after  \n\nLet's face it, if the words don't get into your noggin in the first place, \nthere's no hope. Now tell us, 'SDPA.ORG', a mouthpiece of the fascist x-Soviet \nArmenian Government: what was your role in the murder of Orhan Gunduz and \nKemal Arikan? How many more Muslims will be slaughtered by 'SDPA.ORG' as \npublicly declared and filed with the legal authorities? \n\n\n \"...that more people have to die...\" \n\n                    SDPA <91@urartu.UUCP>\n\n  \"Yes, I stated this and stand by it.\"\n\n                    SDPA <255@urartu.UUCP>\n\n\n    \tJanuary 28, 1982 - Los Angeles\n\tKemal Arikan is slaughtered by two Armenians while driving to work. \n\n    \tMarch 22, 1982 - Cambridge, Massachusetts\n\tPrelude to grisly murder. A gift and import shop belonging to\n\tOrhan Gunduz is blown up. Gunduz receives an ultimatum: Either \n        he gives up his honorary position or he will be \"executed\". He \n        refuses. \"Responsibility\" is claimed by JCAG and SDPA.\n\n    \tMay 4, 1982 - Cambridge, Massachusetts\n\tOrhan Gunduz, the Turkish honorary consul in Boston, would not bow \n\tto the Armenian terrorist ultimatum that he give up his title of \n\t\"honorary consul\". Now he is attacked and murdered in cold blood.\n\tPresident Reagan orders an all-out manhunt-to no avail. An eye-\n\twitness who gave a description of the murderer is shot down.  He \n\tsurvives... but falls silent. One of the most revolting \"triumphs\" in \n\tthe senseless, mindless history of Armenian terrorism. Such a murder \n\tbrings absolutely nothing - except an ego boost for the murderer \n\twithin the Armenian terrorist underworld, which is already wallowing \n\tin self-satisfaction.\n \nWere you involved in the murder of Sarik Ariyak? \n\n   \tDecember 17, 1980 - Sydney\n\tTwo Nazi Armenians massacre Sarik Ariyak and his bodyguard, Engin \n        Sever. JCAG and SDPA claim responsibility.\n\n\nSource: Edward K. Boghosian, \"Radical Group Hosts Well-Attended Solidarity\nMeeting,\" The Armenian Reporter, May 1, 1986, pp. 1 & 18.\n\nATHENS, Greece - An array of representatives of Greek political parties,\nincluding the ruling PASOK party, and a host of political groups, both\nArmenian and non-Armenian, joined to voice their solidarity with the \nArmenian people in their pursuit of their cause and activities of a new\nArmenian political force were voiced here on Sunday, April 20 during\nthe 2nd International Meeting of Solidarity with the Armenian People. And\njudging from encouraging messages offered by the representatives of these\npolitical groups and organizations, at least here in Greece, the Armenian\nCause enjoys abundant support from a wide spectrum of the political world.\n\nThe International Meeting of Solidarity was sponsored by the Greek branch of\nthe Armenian Popular Movement, a comparatively new political force headed\nby younger generations of Armenians, who openly profess their support of the\narmed struggle and of the Armenian Secret Army for the Liberation of Armenia\n(ASALA). The organization has branches in various European and Middle Eastern\ncountries and the United States although some of these branches appear to\nhave gone through a switch of loyalties because of the split within the ranks\nof ASALA...\n\nVoicing the support of PASOK, the ruling party in Greece, to the Armenian\npeople, was Mr. Charalambidi Michalis, a member of the Central Committee of\nthe party and the Greek member of the Permanent People's Tribunal...\nExplaining the goals and aspirations of the Armenian Popular Movement \nwas Ara Sarkisian. Significant was the address delivered by Mr. Bassam \nAbu-Salim, on behalf of the Popular Front for the movement's continued \nsupport of the Armenians' armed struggle in their pursuit of their cause, \npledging that Palestinian operated and run training camps would always be \nopen to Armenian youth who need training for such a struggle. Later, Mr. \nAbu-Salim, answering a question put to him by this writer, affirmed that \nhis organization had always trained Armenian members of ASALA and that\nthis policy will continue. \"The doors of our camps are always open to \nArmenian freedom fighters,\" he affirmed.\n\nAmong the prominent Greek politicians who attended the conference was the son\nof Prime Minister Papandreou, who himself holds a post in the Greek cabinet;\ntwo members of the Cypriot Parliament who had journeyed to Athens for the\nspecific purpose of attending the international gathering; representatives of\nthe Christian Democratic party, EDIK Center party, two wings of the Communist\nparty, representatives of an assortment of labor unions and trade associations,\na number of mayors of Greek towns and cities; two Greek members of the\nEuropean Parliament and other members of the Greek Parliament were also among\nthose who participated in the international conference. Also on hand to follow\nthe deliberations was the ambassador of Bulgaria in Athens.\n\nMore than significant was the large number of messages received by the \norganizers, including the following: Palestinian National Revolutionary\nMovement, Fatah; Popular Front for the Liberation of Palestine-General\nCommand; the Central Committee of the Palestinian National Liberation\nMovement-Fatah; the Socialist Progressive Party of Lebanon; Arab Socialist\nLabor Party; the Kurdistan Democratic Union of Iraq; and numerous other\ninternational groups, all noted for their radical stand in the Israeli-\nPalestinian conflict.\n\n                 SUPPORT FROM ARF-RM\n\nAmong messages received from Armenian groups was the Armenian Revolutionary\nFederation-Revolutionary Movement, the group that has claimed the abduction\nand assassination of key party leaders in Lebanon accused of selling out to\nforeign interests and powers. The message clearly gave its support to the\nArmenian Popular Movement pledging that the Revolutionary movement will\ncontinue to \"reveal the realities, no matter how bitter or tragic they are,\"\nto expose the anti-Armenian activities of the leaders of the Dashnag \"Bureau.\"\nThe message was taken as an indication of the link, loose as it may be, that\nexists between the dissident Dashnag group and the Armenian Popular Movement,\nopen supporters of ASALA and armed struggle.\n\nThe Armenian Popular Movement has set up its headquarters in a suburb of the\nGreek capital, known as Neos Kosmos, where there is a large Armenian presence.\nThe headquarters are located in a two-story building, which appears to have\nturned into a beehive of activity on the part of scores of Armenian youth, who\nprefer to give their first names only when invited to introduce themselves...\n\nNow any comment?\n\n#From: vd8@cunixb.cc.columbia.edu (Vedat  Dogan)\n#Subject: Re:Addressing.....\n#Message-ID: <1993Apr8.233029.29094@news.columbia.edu>\n\n \nIn article <1993Apr7.225058.12073@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n>In article <1993Apr7.030636.7473@news.columbia.edu> vd8@cunixb.cc.columbia.edu\n>(Vedat  Dogan) wrote in response to article <1993Mar31.141308.28476@urartu.\n>11sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n>\n \n>[(*] Source: \"Adventures in the Near East, 1918-1922\" by A. Rawlinson,\n>[(*] Jonathan Cape, 30 Bedford Square, London, 1934 (First published 1923) \n>[(*] (287 pages).\n>\n>[DD] Such a pile of garbage! First off, the above reference was first published\n>[DD] in 1924 NOT 1923, and has 353 pages NOT 287! Second, upon checking page \n>[DD] 178, we are asked to believe:\n> \n>[VD] No, Mr.Davidian ... \n> \n>[VD]  It was first published IN 1923 (I have the book on my desk,now!) \n>[VD]                         ********\n> \n>[VD]  and furthermore,the book I have does not have 353 pages either, as you\n>[VD]  claimed, Mr.Davidian..It has 377 pages..Any question?..\n>  \n>Well, it seems YOUR book has its total page numbers closer to mine than the \nn>crap posted by Mr. [(*]!\n \n o boy!   \n \n Please, can you tell us why those quotes are \"crap\"?..because you do not \n like them!!!...because they really exist...why?\n \n As I said in my previous posting, those quotes exactly exist in the source \n given by Serdar Argic .. \n  \n You couldn't reject it...\n \n>\n>In addition, the Author's Preface was written on January 15, 1923, BUT THE BOOK\n>was published in 1924.\n \n Here we go again..\n In the book I have, both the front page and the Author's preface give \n the same year: 1923 and 15 January, 1923, respectively!\n (Anyone can check it at her/his library,if not, I can send you the copies of\n pages, please ask by sct) \n \n \nI really don't care what year it was first published(1923 or 1924)\nWhat I care about is what the book writes about murders, tortures,et..in\nthe given quotes by Serdar Argic, and your denial of these quotes..and your\ngroundless accussations, etc. \n \n>\n[...]\n> \n>[DD] I can provide .gif postings if required to verify my claim!\n> \n>[VD] what is new?\n> \n>I will post a .gif file, but I am not going go through the effort to show there \n>is some Turkish modified re-publication of the book, like last time!\n \n \n I claim I have a book in my hand published in 1923(first publication)\n and it exactly has the same quoted info as the book published\n in 1934(Serdar Argic's Reference) has..You couldn't reject it..but, now you\n are avoiding the real issues by twisting around..\n \n Let's see how you lie!..(from 'non-existing' quotes to re-publication)\n \n First you said there was no such a quote in the given reference..You\n called Serdar Argic a liar!..\n I said to you, NO, MR.Davidian, there exactly existed such a quote...\n (I even gave the call number, page numbers..you could't reject it.)\n \n And now, you are lying again and talking about \"modified,re-published book\"\n(without any proof :how, when, where, by whom, etc..)..\n (by the way, how is it possible to re-publish the book in 1923 if it was\n  first published in 1924(your claim).I am sure that you have some 'pretty \n  well suited theories', as usual)\n \n And I am ready to send the copies of the necessary pages to anybody who\n wants to compare the fact and Mr.Davidian's lies...I also give the call number\n and page numbers again for the library use, which are:  \n                 949.6 R 198\n   \n  and the page numbers to verify the quotes:218 and 215\n              \n     \n \n> \n>It is not possible that [(*]'s text has 287 pages, mine has 353, and yours has\n>377!\n \n Now, are you claiming that there can't be such a reference by saying \"it is\n not possible...\" ..If not, what is your point?\n \n Differences in the number of pages?\n Mine was published in 1923..Serdar Argic's was in 1934..\n No need to use the same book size and the same letter \n charachter in both publications,etc, etc.. does it give you an idea!!\n \n The issue was not the number of pages the book has..or the year\n first published.. \n And you tried to hide the whole point..\n the point is that both books have the exactly the same quotes about\n how moslems are killed, tortured,etc by Armenians..and those quotes given \n by Serdar Argic exist!! \n It was the issue, wasn't-it?  \n \n you were not able to object it...Does it bother you anyway? \n \n You name all these tortures and murders (by Armenians) as a \"crap\"..\n People who think like you are among the main reasons why the World still\n has so many \"craps\" in the 1993. \n \n Any question?\n \nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 321, "properties": {"category": "rec.sport.hockey", "text": "Organization: Penn State University\nFrom: <AJS147@psuvm.psu.edu>\nSubject: Re: Winning Streaks\n <C5IJox.ErM@undergrad.math.uwaterloo.ca> <93105.053748RAP115@psuvm.psu.edu>\nLines: 14\n\n   You might want to clarify the 11 game winning streak.  That Pens streak\nis a PLAYOFF streak (tied by the Chicago Blackhawks, who had won 11 in a row\nuntil they met the Pens in the finals last year)  The 18 game unbeaten, so far,\nis a regular season unbeaten streak.  But hey, don't take it personally.  I'm a\nFlyers fan and two in a row is a stretch.  But with a healthy Lindros, Recchi,\nBrind'amour and Tommy Soderstrom, they'll be there next year!\nBy the way, since the Flyers need defenseman, what kind of trade would\nanybody suggest from the existing Flyers roster since the scuttlebutt is that\n\nTerry Carkner won't be there next year and apart from him a piece of notebook\npaper would be better defense.\n-------------------------------------------------------------------------------\nMatt Weaver (properly found at AJS147@psuvm.psu.edu).  Hey, at least we're not\n                                                       the Whalers!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.017+0000", "event": "documents", "entityId": 322, "properties": {"category": "alt.atheism", "text": "From: jvigneau@cs.ulowell.edu (Joe Vigneau)\nSubject: Re: [soc.motss, et al.] \"Princeton axes matching funds for Boy Scouts\"\nIn-Reply-To: bevans@carina.unm.edu's message of 4 Apr 1993 12:19:20 GMT\nOrganization: -\n\t<1993Apr3.214557.24073@midway.uchicago.edu> <1pmjo8INN2l0@lynx.unm.edu>\nLines: 21\n\nIn article <1pmjo8INN2l0@lynx.unm.edu> bevans@carina.unm.edu (Mathemagician) writes:\n\n   Just what do gay people do that straight people don't?\n\nAbsolutely nothing.\n\nI'm a VERY straight(as an arrow), 17-year old male that is involved in the BSA.\n\nI don't care what gay people do among each other, as long as they don't make\npasses at me or anything.  At my summer camp where I work, my boss is gay.\nNot in a 'pansy' way of gay (I know a few), but just 'one of the guys'.\nHe doesn't push anything on me, and we give him the same respect back, due\nto his position.\n\nIf anything, the BSA has taught me, I don't know, tolerance or something.\nBefore I met this guy, I thought all gays were 'faries'.  So, the BSA HAS\ntaught me to be an antibigot.\n\nBasically, It comes down to this: What you do among yourself is your own\nbusiness. No one else has the right to tell you otherwise, unless it\nviolates someone else's civil rights.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 323, "properties": {"category": "comp.sys.mac.hardware", "text": "From: glalonde@watson.ibm.com\nSubject: Re: Cache card for IIsi\nNews-Software: IBM OS/2 PM RN (NR/2) v0.17h by O. Vishnepolsky and R. Rogers\nLines: 18\nReply-To: glalonde@vnet.ibm.com\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: xlalonde.torolab.ibm.com\nOrganization: IBM Toronto Lab\n\n>\n>As of last week, Mac's Place had the Applied Engineering QuickSilver card\n>(32k cache, one PDS slot, socket for FPU) on sale for $99.00 (without FPU).\n>Regular price is $199.\n>\n>No idea if this is still going on, but I can get the phone no. if anyone is\n>interested (I found their ad in MacUser).\n>\n\nCan some people with cache cards PLEASE post speedometer numbers they get\nwith the cards. I have only one report, which seems to indicate that\na 32K cache card gives you only about a 1% speedup!! Access to memory takes\nLONGER when you have a cache card(and get a miss) thus a small cache card\nof 32K may be worth $0. I don't know what kind of numbers 64K cards get\nyou. Also I found it interesting that you can disable the cache cards\nvia software(read about it in the Mac IIsi tech notes from ftp.apple.com)\n\nSo is $99 a good deal or not, I still don't know.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 324, "properties": {"category": "sci.med", "text": "From: jeffp@vetmed.wsu.edu (Jeff Parke)\nSubject: Re: Lyme vaccine\nOrganization: College of Veterinary Medicine WSU\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 13\n\nkathleen richards (kilty@ucrengr) wrote:\n\n> If you have time to type it in I'd love to have the reference for that\n> paper!  thanks!\n\nExperimental Lyme Disease in Dogs Produces Arthritis and Persistant Infection,\nThe Journal of Infectious Diseases, March 1993, 167:651-664\n\n--\nJeff Parke <jeffp@pgavin1.vetmed.wsu.edu>\nalso:   jeffp@WSUVM1.bitnet    AOL: JeffParke\nWashington State University College of Veterinary Medicine class of 1994\nPullman, WA  99164-7012\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 325, "properties": {"category": "talk.politics.guns", "text": "Nntp-Posting-Host: holmenkollen.ifi.uio.no\nFrom: Thomas Parsli <thomasp@ifi.uio.no>\nSubject: Change of name ??\nOrganization: Dept. of Informatics, University of Oslo, Norway\nLines: 23\nOriginator: thomasp@holmenkollen.ifi.uio.no\n\n\n\n\t1. Make a new Newsgroup called talk.politics.guns.PARANOID or \n\ttalk.politics.guns.THEY'R.HERE.TO.TAKE.ME.AWAY\n\n\t2. Move all postings about waco and burn to (guess where)..\n\n\t3. Stop posting #### on this newsgroup\n\n\tWe are all SO glad you're trying to save us from the evil \n\tgoverment, but would you mail this #### in regular mail to\n\tlet's say 1000 people ????\n\t\n\n\n\n\tThis is not a .signature.\n\tIt's merely a computergenerated text to waste bandwith\n\tand to bring down the evil Internet.\n\n\n                        Thomas Parsli\n                        thomasp@ifi.uio.no\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 326, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: USA McWeekly Stats\nLines: 13\n\nIn article <franjion.734996049@spot.Colorado.EDU>, franjion@spot.Colorado.EDU\n(John Franjione) says:\n>\n>Also, I have the impression from reading this group and Bill James\n>that Elias is a bunch of money-grubbing jerks whose mission is to\n>charge as much as they can for baseball statistical info\n>\n\nand bill james is not? yeah.  sure.  do you own \"the bill james players\nrating book\"?\n\nbob vesterman.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 327, "properties": {"category": "soc.religion.christian", "text": "From: halsall@murray.fordham.edu (Paul Halsall)\nSubject: Bible Unsuitable for New Christians\nReply-To: halsall@murray.fordham.edu\nOrganization: J. Random Misconfigured Site\nLines: 42\n\n\n\tA \"new Christian\" wrote that he was new to the faith and \nlearning about it \"by reading the Bible, of course\". I am not\nat all sure this is the best path to follow.\n\tWhile the Bible is, for Christians, the word of God, the \nrevelation of God is Jesus Christ and the chief legacy of this\nrevalation is the Church. I am not recommending any one\ndenommination, but I do recommend finding a comfortable christian\ncongregation in which to develop your faith, rather than just\nreading the Bible.\n\tThis does not mean that the Bible should not be read, although\nI would stick to the Gospels, epistles, and Psalms and avoid the\nBook of Revelation altogether [until you are with friends you are\ncomfortable with]. I am sure that mistakenly fervent  projects to\nread the entire Bible have frequently bogged down with a remarkable\nlack of fervour somewhere in the middle of Leviticus, or for the really\nsturdy, somewhere in Chronicles.\n\tThe point is that the Bible is their to illustrate the Faith\nof Christians, but does not provide the totality of that faith. Vital\nbeliefs of virtually all Christians are simply not mentioned -\nthe Trinity, the duality of natures in Christ, types of Church\norganization. All these beliefs and practices have developed from the\nlived experience of the Christian people, an experience lived one\nhopes in the Spirit. As such the Bible, I think, is better studies\nin the context of a congregation, and the context of other reading.\n\tFollowing up on a suggestion of an old confessor of mine, I \nwould even suggest that a good novel is a good way to reflect on the\nchristian life. [Most novels of any profundity are actually discussing\nthe nature of good and evil in the human heart]. My own induction into\nthe christian faith was brought about [after grace] through reading\nGraham Greene: _The Power and the Glory_ and the poetry of Gerard\nManley Hopkins. I would also recommend Graham Greene's _Monsignor\nQuixote_ and any novel by Iris Murdoch. The last is not even a Christian,\nbut such is her insistence on the need for the good life, that, frankly,\nI often am more uplifted and God directed after reading her than after\nreading many parts of the Bible. And that after all is what being\na Christian is all about: letting your soul and your life be, in\nsome way, directed towards the infinite, represented to us by\nthe person of Jesus Christ.\n\nPaul Halsall\nHalsall@murray.fordham.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 328, "properties": {"category": "rec.sport.baseball", "text": "From: as000060@orion.yorku.ca\nSubject: Re: Notes on Jays vs. Indians Series\nLines: 23\nOrganization: York University\nDistribution: na\n\nIn article <C5F6rJ.7BJ@NCoast.ORG>, actuary@NCoast.ORG (Steven M. Goldman) writes:\n>>\n>>So who will start this year's All Star game for the AL?\n> \n> Probably Alomar. \n> \n> Not to put him down; he's a great player. But it helps to have \n> all the recognition he's had, plus to play in a city which is\n> likely to pour in the votes...\n\nI like Alomar.  But I'd like to differ with your opinion about \"a city\nwhich is likely to pour in the votes...\".\n\nI attended many games last year during the balloting.  I know that a\ngreat number of the attendees DID NOT fill out their ballots, but left\nthem, beer soaked and torn on the floor of the stands.  Toronto gets\nno more and no less votes than any other city for the All Star game.\n\nUnfortunately, this is not a one time thing.  I've attended games\nduring the last four seasons, and it has happened every time.  The\napathetic attitude to All Star ballots really offends me.\n\nLjs\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 329, "properties": {"category": "talk.politics.mideast", "text": "From: Howard Frederick <hfrederick@igc.apc.org>\nSubject: Re: Turkish Government Agents on UseNet\nNf-ID: #R:1993Apr15.204512.11971@urartu.sd:1238805668:cdp:1483500341:000:1042\nNf-From: cdp.UUCP!hfrederick    Apr 16 14:31:00 1993\nLines: 20\n\n\nI don't know anything about this particular case, but *other*\ngovernments have been known to follow events on the Usenet.  For\nexample after Tienanmien Square in Beijing the Chinese government\nbegan monitoring cyberspace.  As the former Director of PeaceNet,\nI am aware of many incidents of local, state, national and\ninternational authorities monitoring Usenet and other conferences\nsuch as those on the Institute for Global Communications.  But\nwhat's the big deal?  You shouldn't advocate illegal acts in this\nmedium in any case.  If you are concerned about being monitored,\nyou should use encyrption software (available in IGC's \"micro\"\nconference).  I know for a fact that human rights activists in the\nBalkan-Mideast area use encryption software to send out their\nreports to international organizations.  Such message *can* be\ndecoded however by large computers consuming much CPU time, which\nprobably the Turkish government doesn't have access to.\n\nHoward Frederick, University of California, Irvine Department of\nPolitics and Society\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 330, "properties": {"category": "rec.sport.hockey", "text": "From: cbetz@radioman.cray.com (Charles Betz  {x66442 CF/ENG})\nSubject: NHL team in Milwaukee\nLines: 24\nNntp-Posting-Host: radioman.cray.com\nOrganization: Cray Research, Inc.\n\n\nAfter reading some of the reports of possible NHL moves to Milwaukee or that\nMilwaukee should have an NHL team, I thought I'd pass along a story I heard\nrecently.  This is second hand, so I don't know how true it is, but I have\nno reason to doubt it either.\n\nBradley Center in Milwaukee is home to the Milwaukee Admirals minor leauge\nhockey team.  The owner of the Admirals (sorry, I can't remember his name)\neither owns or at least shelled out the majority of the funds to build the\nBradley Center.\n\nSupposedly he was approached by the NHL about an expansion franchise, but \nturned it down because he thought the franchise fee of $50 million was too\nhigh.\n\nLike I said, I don't know whether this story is true or just a rumor, but if\nit's true, don't look for an NHL team in Milwaukee anytime soon.  The Admirals\naren't going to be forced out of the building and you won't see an NHL club\nand a minor league club in the same building, especially since the NBA's\nMilwaukee Bucks play there as well.\n\nCharlie Betz\nCray Research, Inc.   Chippewa Falls, WI\ncbetz@romulus.cray.com\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 331, "properties": {"category": "comp.sys.mac.hardware", "text": "From: robrick@erenj.com (Bob Brickman)\nSubject: Re: When is Apple going to ship CD300i's?\nNntp-Posting-Host: big-geek.erenj.com\nOrganization: ER&E, Clinton, NJ.  Opinions solely the author's, not the Company's.\nDistribution: usa\nLines: 27\n\nIn article <1quod6$i3n@menudo.uh.edu>, sunnyt@coding.bchs.uh.edu wrote:\n> \n> In article <1993Apr19.164734.24779@newsgate.sps.mot.com>  \n> rjacks@austlcm.sps.mot.com (rodney jacks) writes:\n> > I would really like to get one of the new CD300i CDROM\n> > drives for my c650, but my local Apple doesn't know \n> > when they will be available.  He doesn't even have a part\n> > number yet.   Does anyone know what the part number \n> > for this drive is and when it will be available?\n> > \n> > My Apple dealer suggested I buy one of the CD300 external\n> > drives, but I don't want to pay extra for a case/power supply\n> > I'm not going to use.\n> > \n> > -Rodney Jacks\n> > (rjacks@austlcm.sps.mot.com)\n> \n\t\t\t  While there may not be a part number for the CD300i drive, I have seen\na part number for the bezel kit (a new front panel with the slot in it\nthrough which you insert the CD). The document (which I got from the\n2/10/93 announcement at our Apple office) states the drive kit and bezel\nkits are separate items and the bezel kit has an SRP of $149 fro the C650.\nThe external unit may be a better deal after all.\n\nBob Brickman       <robrick@erenj.com>\n  -- disclaimer: the preceding represent my personal opinions and do not\nreflect the opinions, policies, or practices of my employer\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 332, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: 2a42dubinski@vms.csd.mu.edu\nSubject: Re: WORD 2.0 HELP!\nOrganization: Marquette University - Computer Services\nLines: 17\nReply-To: 2a42dubinski@vms.csd.mu.edu\nNNTP-Posting-Host: vmsa.csd.mu.edu\n\nIn article <1qmf6l$euh@msuinfo.cl.msu.edu>, gcook@horus.cem.msu.EDU (Greg Cook) writes:\n>From article <0096B11B.08A283A0@vms.csd.mu.edu>, by 2a42dubinski@vms.csd.mu.edu:\n>> Can anyone tell me if and how they have printed Spanish characters?  I know WP 5.1 has this built-in, but I do not recall ever seeing this option on WFW2.  HELP!\n>\n>Try using the extended character set  (Alt-####  sequences) . . \n>look in Character Map in the Accessories group and see the alt-sequence\n>for the font you want!\n>\n\tThanks, I think I've figured it out now.\n\n  ------------------------------------------------------------------------\n  | Robert S. Dubinski |  Aliases include:  Robb, Regal, Sir, Mr., and I |\n  ------------------------------------------------------------------------\n  | Marquette University ||||||||||| Math / Computer Science Double-Major|\n  ------------------------------------------------------------------------\n  | Internet Address: 2A42Dubinski.vms.csd.mu.edu  |\tMilwaukee, WI    |\n  ------------------------------------------------------------------------  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 333, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: yuan@wiliki.eng.hawaii.edu (Maw Ying Yuan)\nSubject: Win3.1 Config.Sys query\nOrganization: University of Hawaii, College of Engineering\nLines: 11\n\nHi there,\n\nWith a 16Megs of RAM, is there a need to run/load Smartdrv for\nWindows 3.1?  If yes, can I run/load Ramdrive without Smartdrv?\nIf I need both Ramdrive & Smartdrv, is the following Config.Sys\nsettings OK:  ...SMARTDRV.SYS 2048 2048\n              ...RAMDRIVE.SYS 2048 /E\n\nThanks in advance for e-mail reply.\n\nyuan@wiliki.eng.hawaii.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 334, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gregof@JSP.UMontreal.CA (Grego Filippo)\nSubject: Info wanted on Tseng Labs ET4000 VLB\nOrganization: Universite de Montreal\nLines: 9\n\nHi fellow netters,\n\ndoes anybody have any info on Tseng Labs ET4000 VLB card:\nprice, speed, compatibility with existing and up-comming softwares,\nperformance compared to others cards ( is it an S3 based card ?)....\n\nThank you..\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 335, "properties": {"category": "comp.sys.mac.hardware", "text": "From: u2087546@ucsvc.ucs.unimelb.edu.au (The Jester)\nSubject: Re: info on apple 8*24GC requested.\nOrganization: Comedy Company\nLines: 25\n\nIn article <1993Apr5.122613.12289@alijku05.edvz.uni-linz.ac.at>, Norbert Mueller <K360171@alijku11.edvz.uni-linz.ac.at> writes:\n>> Newsgroups: comp.sys.mac.hardware\n> In article <prudhom.733762331@iros1> Serge Prud'homme,\n> prudhom@IRO.UMontreal.CA writes:\n>> Any info on the video processor Am29000 that sit on it, any way to\n> program that\n>> chip?  What companie makes that chip?\n> > \n> Apple was never able to provide any docs or tools to program that chip. I\n> value it as\n> the least value per $ piece of computer hardware I ever bought due to the\n> COMPLETE\n> LACK support tools. There was a refund for US-buyers of this card but we\n> Europeans\n> were left out in the rain once again...\n\nI agree completely, but there was only a refund for people who bought the GC\nwith a Quadra. I have seen an alpha version of an extension from Apple called\n8.24 GC QuickTime Video which offloads QuickTime compression/decompression\nfrom the cpu to the AM29000 on the card. So it seems it can be done even though\nin a developer article it states that the GC can't be programmed - but they\nasked that any suggestions be sent in anyway...\n\nSteve Margelis\nMelbourne University\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 336, "properties": {"category": "sci.space", "text": "From: MUNIZB%RWTMS2.decnet@rockwell.com (\"RWTMS2::MUNIZB\")\nSubject: Space Event near Los Angeles, CA\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 55\n\nApologies if this gets posted twice, but I don't think the first one\nmade it.\n--------------------------------------------------------------------\n   FOR IMMEDIATE RELEASE           Contact:  OASIS (310) 364-2290\n\n   15 April 1993                                Los Angeles, CA\n\n     LOCAL NATIONAL SPACE SOCIETY CHAPTERS SPONSOR TALK BY L.A.\n  ADVOCATE OF LUNAR POWER SYSTEM AS ENERGY SOURCE FOR THE WORLD\n\n   On April 21, the OASIS and Ventura County chapters of the National \nSpace Society will sponsor a talk by Lunar Power System (LPS) co-\ninventor and vice-president of the LPS Coalition, Dr. Robert D.\nWaldron.  It will be held at 7:30 p.m. at the Rockwell Science\nCenter in Thousand Oaks, CA.\n\n   Dr. Waldron is currently a Technical Specialist in Space\nMaterials Processing with the Space Systems Division of Rockwell\nInternational in Downey, California.  He is a recognized world\nauthority on lunar materials refinement.  He has written or\ncoauthored more than 15 articles or reports on nonterrestrial\nmaterials processing or utilization.  Along with Dr. David\nCriswell, Waldron invented the lunar/solar power system concept.\n\n   Momentum is building for a coalition of entrepreneurs, legal\nexperts, and Soviet and U.S. scientists and engineers to build\nthe Lunar Power System, a pollution-free, energy source with a\npotential to power the globe.\n\n   For the past three years members of the coalition, nearly half\nfrom California, have rejuvenated the commercial and scientific\nconcept of a solar power system based on the Moon.\n\n   The LPS concept entails collecting solar energy on the lunar\nsurface and beaming the power to Earth as microwaves transmitted\nthrough orbiting antennae.  A mature LPS offers an enormous\nsource of clean, sustainable power to meet the Earth's ever\nincreasing demand using proven, basic technology.\n\n   OASIS (Organization for the Advancement of Space\nIndustrialization) is the Greater Los Angeles chapter of the\nNational Space Society, which is an international non-profit\norganization that promotes development of the space frontier.\nThe Ventura County chapter is based in Oxnard, CA.\n\n       WHERE:  Rockwell Science Center Auditorium, 1049 Camino\n               Dos Rios, Thousand Oaks, CA.\n\n   DIRECTIONS: Ventura Freeway 101 to Thousand Oaks, exit onto\n               Lynn Road heading North (right turn from 101\n               North, Left turn from 101 South), after about 1/2\n               mile turn Left on Camino Dos Rios, after about 1/2\n               mile make First Right into Rockwell after Camino\n               Colindo, Parking at Top of Hill to the Left\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 337, "properties": {"category": "sci.electronics", "text": "From: heke@stekt.oulu.fi (Heikki Paananen)\nSubject: Re: How do DI boxes work?\nIn-Reply-To: lancer@oconnor.WPI.EDU's message of 15 Apr 93 15:02:28\nLines: 38\nOrganization: University of Oulu, Dept. of EE, Finland\n\nIn article <LANCER.93Apr15150228@oconnor.WPI.EDU> lancer@oconnor.WPI.EDU (Stephe Lewis Foskett) writes:\n\n>   I'm doing sound for a couple of bands around here and we need Direct\n>   Input boxes for the keyboards.  These are the little boxes that take a\n>   line level out of the keyboard and transform it into low-Z for the run\n>   to the mixer.  Sadly they cost like $50 (or more) each and I'm going\n>   to need like 5 or 10 of them!  I looked inside one (belonging to\n>   another band) and it looks like just a transformer.  Does anyone have\n>   any plans for building them?  Perhaps in Anderton's \"Electronic\n>   Projects for Musicians\" book (which I am having a hell of a time\n>   tracking down...)?\n\nAn Easy way to solve the problem is to use two op-amps to form the\nbalanced low-Z output, but this solution does not provide any\ngalvanic isolation between keyboard (or whatever plugged) and\nmixer. If no tight requiremets are demanded and some hum, snap,\ncrackle and pop sounds (formed by ground loops) can be tolerated,\nthe op-amp solution is just what you are looking for! (It is\ncheap...somewhat $10/DI-box).\nNot sure, but Craig Anderton did introduce one DI-box project\nin Guitar Player mag years ago (transformerless).....\n\n>   Thanks a lot!\n\nHope this helps. Email, if more details wanted....\n\n>   - lancer@wpi.wpi.edu -                    - 0{{  MoDiMiDoFrSaSo: -\n>   -   Mein Kopf ist ein Labyrinth, mein Leben ist ein Minenfeld    -\n\n-----------------------------------------------------------------------\nHeikki Paananen                           heke@stekt.oulu.fi\nThe University of Oulu                  \nDepartment of electrical engineering      -Just a student\nFinland\n-----------------------------------------------------------------------\n               Home is where the heart lies,\n            but if the heart lies where is home?\n                                           -Fish\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 338, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dnew@diana.cair.du.edu (shredder)\nSubject: voice messaging\nOrganization: University of Denver, Denver, Colorado\nLines: 16\n\nYou macinators who have used these voice messaging/FAX/data-modems.  I\nhave a question.  First what brand names do you recommend(I am mostly\ninterested in the voice messaging and FAX part).  Is the voice part as\nreliable and understandable as the sellers claim?  Approximately, how\nmuch hard drive space does an average day of callers take up, if they\nspeak for one minute?  \nAny feed back would be appreciated.  My company is looking at buying\none or two.  Hey, I may buy one myself too.\n\nThanks in advance\nDon  \n-- \n                Don New Jr(dnew@du.edu) |   Another GREAT mind\n\t\tUniversity of Denver    |         RUINED\n  \t        Chemistry Department    |           by\n\t\tDenver, CO 80208        |     higher education\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 339, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Marcus Bointon <marcus@meridian.demon.co.uk>\nSubject: Sony 1304S problems Info please!\nX-Xxmessage-Id: <A7F639CE3F010B8B@meridian.demon.co.uk>\nX-Xxdate: Sat, 17 Apr 93 22:48:46 GMT\nNntp-Posting-Host: meridian.demon.co.uk\nOrganization: Sound Impressions\nX-Useragent: Nuntius v1.1.1d17\nLines: 33\n\nAnyone out there have a Sony 1304S?\n\nI have one, and it's very nice, however - If I run it in 16\" mode, the\npicture won't\ngo very big. I end up with about 1\" gap either side, and .5\" top &\nbottom. I suspect\nan internal adjustment would fix this. Anyone tried it?\n\nAnother problem is sub-brightness: Areas that are meant to be black (or\noff the main\nraster) are not very black. The real raster is quite visible when the\nscreen is blanked.\nThis is not too severe, but it is just not as good as other Trini screens\nI have\nused. If I turn the brightness/contrast down so that the raster is not\nvisible, the\nreal image virtually disappears!\n\nThe raster size is just right if I use 1024*768, but 100dpi+ is a bit too\nmuch!\n\nOh, and I am using a RasterOps 24XLi card.\n\n\nThanks\n\nMarcus Bointon\nmarcus@meridian.demon.co.uk\n-------------------------------------------------------\n   Marcus Bointon                   Tel 081 852 6662 \n   marcus@meridian.demon.co.uk      Fax 081 244 5422\n\"I used Windows for a week once, but I feel better now\"\n-------------------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 340, "properties": {"category": "misc.forsale", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U34815@uicvm.uic.edu>\nSubject: WANTED:Tablehockey Games\nLines: 16\n\nHello,\n  I am looking for the Coleco Tablehockey games that were popular\nin the 70's.  The games that I seek have straight slots for the\ndefenseman, not the S shaped slots.  The players are attatched to\nrods operated with springs.  If you have a game(or games) that\nyou would be willing to part with, please send me an e-mail\nmessage at U34815@uicvm.uic.edu.  Price is negotiable and\nI would also cover shipping if you are out of state.  I am\npart of a league that plays on a regular basis, the CTHL (The\nChicago Table Hockey League), and need a game to practice on.\nAlso, the league itself is always interested in purchasing\ngames to expand itself.\n                                  Thank You,\n                                         Ken Harris.\nequipment to expand it's size.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 341, "properties": {"category": "comp.graphics", "text": "From: spl@ivem.ucsd.edu (Steve Lamont)\nSubject: SGI sales practices (Was: Crimson (Was: Kubota Announcement?))\nOrganization: University of Calif., San Diego/Microscopy and Imaging Resource\nLines: 49\nNNTP-Posting-Host: ivem.ucsd.edu\n\nIn article <30523@hacgate.SCG.HAC.COM> lee@luke.rsg.hac.com (C. Lee) writes:\n>The original posting complained (1) about SGI coming out with newer (and\n>better) architectures and not having an upgrade path from the older ones,\n>and (2) that DEC did.\n\nNo.  That's *not* what I was complaining about, nor did I intend to\nsuggest that DEC was any better than SGI (let me tell you about the\nLynx some day, but be prepared with a large sedative if you do...).  My\ncomment regarding DEC was to indicate that I might be open to other vendors\nthat supported OpenGL, rather than deal further with SGI.\n\nWhat I *am* annoyed about is the fact that we were led to believe that\nwe *would* be able to upgrade to a multiprocessor version of the\nCrimson without the assistance of a fork lift truck.\n\nI'm also annoyed about being sold *several* Personal IRISes at a\nprevious site on the understanding *that* architecture would be around\nfor a while, rather than being flushed.\n\nNow I understand that SGI is responsible to its investors and has to\nkeep showing a positive quarterly bottom line (odd that I found myself\npressured on at least two occasions to get the business on the books\njust before the end of the quarter), but I'm just a little tired of\ngetting boned in the process.\n\nMaybe it's because my lab buys SGIs in onesies and twosies, so we\naren't entitled to a \"peek under the covers\" as the Big Kids (NASA,\nfor instance) are.  This lab, and I suspect that a lot of other labs\nand organizations, doesn't have a load of money to spend on computers\nevery year, so we can't be out buying new systems on a regular basis.\nThe boxes that we buy now will have to last us pretty much through the\nentire grant period of five years and, in some case, beyond.  That\nmeans that I need to buy the best piece of equipment that I can when I\nhave the money, not some product that was built, to paraphrase one\nprevious poster's words, 'to fill a niche' to compete with some other\nvendor.  I'm going to be looking at this box for the next five years.\nAnd every time I look at it, I'm going to think about SGI and how I\ncould have better spent my money (actually *your* money, since we're\nsupported almost entirely by Federal tax dollars).\n\nNow you'll have to pardon me while I go off and hiss and fume in a\ncorner somewhere and think dark, libelous thoughts.\n\n\t\t\t\t\t\t\tspl\n-- \nSteve Lamont, SciViGuy -- (619) 534-7968 -- spl@szechuan.ucsd.edu\nSan Diego Microscopy and Imaging Resource/UC San Diego/La Jolla, CA 92093-0608\n\"My other car is a car, too.\"\n                 - Bumper strip seen on I-805\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 342, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Donating organs\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 24\n\nIn article <1993Mar25.161109.13101@sbcs.sunysb.edu> mhollowa@ic.sunysb.edu (Michael Holloway) writes:\n\n>Dr. Banks, \n>\tI don't know if you make a point of keeping up with liver transplant\n>research but you're certainly in the right place for these questions.  Has \n>there been anything recent in \"Transplant Proceedings\" or somesuch, on \n>xenografts?  How about liver section transplants from living donors? \n>\n\nI'm sure the Pittsburgh group has published the baboon work, but I\ndon't know where.  In Chicago they were doing lobe transplants from\nliving donors, and I'm sure they've published.  I don't read the\ntransplant literature.  I just see the liver transplant patients\nwhen they get into neurologic trouble (pretty frequent), so that\nand the newspapers and scuttlebutt is the way I keep up with what\nthey are doing.  Howard Doyle works with them, and can tell you more.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 343, "properties": {"category": "talk.politics.misc", "text": "From: n4hy@tang.ccr-p.ida.org (Bob McGwier)\nSubject: Re: Celebrate Liberty!  1993\nOrganization: IDA Center for Communications Research\nLines: 19\nDistribution: usa\nNNTP-Posting-Host: tang.ccr-p.ida.org\nIn-reply-to: Bob.Waldrop@f418.n104.z1.fidonet.org's message of Mon, 5 Apr 93 20:12:35 GMT\n\n\n\nRich Thompson posts some blather about the Libertarian Party:\n\n>August 30, 31, Sept. 1:           Everything You Always Wanted to\n>                                  Know About Winning Elections, but\n>                                  Didn't Know Where to Ask!\n\n\nWhat pray tell do the Libertarians know about winning elections?\n\nBob\n\n\n--\n------------------------------------------------------------------------------\nRobert W. McGwier                  | n4hy@ccr-p.ida.org\nCenter for Communications Research | Interests: amateur radio, astronomy,golf\nPrinceton, N.J. 08520              | Asst Scoutmaster Troop 5700, Hightstown\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 344, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: Do we need the clipper for cheap security?\nOriginator: rdippold@qualcom.qualcomm.com\nNntp-Posting-Host: qualcom.qualcomm.com\nOrganization: Qualcomm, Inc., San Diego, CA\nLines: 36\n\ngtoal@gtoal.com (Graham Toal) writes:\n>Can someone tell me if hardware compression is or is not needed to run\n>digital speech down 14.4K?  I think it is; I've heard it's not.  Lets\n>say 8 bit samples.  Would *raw* data at the corresponding sampling rate\n>be usable?  If not, how fancy does the compression need to be?\n\nA good vocoder like ours will give you 8000 bits per second locked at\nfull rate (it's a variable rate voice activity vocoder).  If you want\nless quality, cut that to 4000 bps (half rate).  At full rate variable\nyou could put two full-duplex conversations on a V.32bis modem.  This\nrequires a DSP or ASICs, though.  An RS-6000 has a CPU that could\nprobably do it in real-time, because it has the add-and-multiply\ninstruction and a few other DSP things.\n\nIf you want to do speech in real-time you need about 4000 samples a\nsecond (for not very good voice) with your 8 bit samples (ISDN is 8000\n8-bit samples a second), which is 32 kbps.  You could do a fast 2:1\ncompression on that to get it down to 16 kbps, which is just about\nV.32bis.  The quality at this point is very bleah, but it should work.\nNow add in the time for your encryption method.  You're going to need\nsampling hardware, which is no problem on a new Mac, an Amiga.  Or a\nPC with a SoundBlaster card (just because they're so popular and cheap\n- you could also build a simple ADC).  The problem with the\nSoundBlaster is that it doesn't seem to be full duplex - you can't\nsample and play backq at the same time, making a two-way conversation\na bit tough.  The special hardware or a more capable sound card may be\nrequired.\n\nThe only thing that worries me is that 2:1 compression - the\nSoundBlaster can do it automatically in hardware, but other than that\nI don't have a good feel for how processor intensive it is, so I can't\nestimate how fast a PC you'd need.\n\n\n-- \nNot all men who drink are poets.  Some of us drink because we are not poets.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.018+0000", "event": "documents", "entityId": 345, "properties": {"category": "comp.graphics", "text": "From: arp@cooper!osd (Andrew Pinkowitz)\nSubject: SIGGRAPH -- Conference on Understanding Images\nKeywords: graphics animation nyc acm siggraph\nOrganization: Online Systems Development ( NY, NY)\nLines: 140\n\n======================================================================\n             NYC ACM/SIGGRAPH: UNDERSTANDING IMAGES\n======================================================================\n\n  SUBJECT:\n\n    Pace University/SIGGRAPH Conference on UNDERSTANDING IMAGES\n    ===========================================================\n\n    The purpose of this conference is to bring together a breadth of\n    disciplines, including the physical, biological and computational\n    sciences, technology, art, psychology, philosophy, and education,\n    in order to define and discuss the issues essential to image\n    understanding within the computer graphics context.\n\n    FEATURED TOPICS INCLUDE:\n\n                Psychology/Perception\n                Image Analysis\n                Design\n                Text\n                Sound\n                Philosophy\n\n     DATE:  Friday & Saturday, 21-22 May 1993\n\n     TIME:  9:00 am - 6:00 pm\n\n    PLACE:  The Pace Downtown Theater\n            One Pace Plaza\n                (on Spruce Street between Park Row & Gold Street)\n            NY, NY 10038\n\n     FEES:\n\n        PRE-REGISTRATION (Prior to 1 May 1993):\n            Members         $55.00\n            Non-Members     $75.00\n            Students        $40.00 (Proof of F/T Status Required)\n\n        REGISTRATION (After 1 May 1993 or On-Site):\n            All Attendees   $95.00\n\n        (Registration Fee Includes Brakfast, Breaks & Lunch)\n\n\n    SEND REGISTRATION INFORMATION & FEES TO:\n\n        Dr. Francis T. Marchese\n        Computer Science Department\n        NYC/ACM SIGGRAPH Conference\n        Pace University\n        1 Pace Plaza (Room T-1704)\n        New York NY 10036\n\n        voice: (212) 346-1803   fax: (212) 346-1933\n        email: MARCHESF@PACEVM.bitnet\n\n======================================================================\nREGISTRATION INFORMATION:\n\nName _________________________________________________________________\n\nTitle ________________________________________________________________\n\nCompany ______________________________________________________________\n\nStreet Address _______________________________________________________\n\nCity ________________________________State____________Zip_____________\n\nDay Phone (___) ___-____    Evening Phone (___) ___-____\n\nFAX Phone (___) ___-____    Email_____________________________________\n======================================================================\n\nDETAILED DESCRIPTION:\n=====================\n\n    Artists, designers, scientists, engineers and educators share the\n    problem of moving information from one mind to another.\n    Traditionally, they have used pictures, words, demonstrations,\n    music and dance to communicate imagery.  However, expressing\n    complex notions such as God and infinity or a seemingly well\n    defined concept such as a flower can present challenges which far\n    exceed their technical skills.\n\n    The explosive use of computers as visualization and expression\n    tools has compounded this problem.  In hypermedia, multimedia and\n    virtual reality systems vast amounts of information confront the\n    observer or participant.  Wading through a multitude of\n    simultaneous images and sounds in possibly unfamiliar\n    representions, a confounded user asks: \"What does it all mean?\"\n\n    Since image construction, transmission, reception, decipherment and\n    ultimate understanding are complex tasks, strongly influenced by\n    physiology, education and culture; and, since electronic media\n    radically amplify each processing step, then we, as electronic\n    communicators, must determine the fundamental paradigms for\n    composing imagery for understanding.\n\n    Therefore, the purpose of this conference is to bring together a\n    breadth of disciplines, including, but not limited to, the\n    physical, biological and computational sciences, technology, art,\n    psychology, philosophy, and education, in order to define and\n    discuss the issues essential to image understanding within the\n    computer graphics context.\n\n\n    FEATURED SPEAKERS INCLUDE:\n\n        Psychology/Perception:\n            Marc De May, University of Ghent\n            Beverly J. Jones, University of Oregon\n            Barbara Tversky, Standfor University\n            Michael J. Shiffer, MIT\n            Tom Hubbard, Ohio State University\n        Image Analysis:\n            A. Ravishankar Rao, IBM Watson Research Center\n            Nalini Bhusan, Smith College\n            Xiaopin Hu, University of Illinois\n            Narenda Ahuja, University of Illinois\n            Les M. Sztander, University of Toledo\n        Design:\n            Mark Bajuk, University of Illinois\n            Alyce Kaprow, MIT\n        Text:\n            Xia Lin, Pace University\n            John Loustau, Hunter College\n            Jong-Ding Wang, Hunter College\n            Judson Rosebush, Judson Rosebush Co.\n        Sound:\n            Matthew Witten, University of Texas\n            Robert Wyatt, Center for High Performance Computing\n            Robert S. Williams, Pace University\n            Rory Stuart, NYNEX\n        Philosophy\n            Michael Heim, Education Foundation of DPMA\n\n======================================================================\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 346, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dpb@sdchemw2.ucsd.edu (Doug P. Book)\nSubject: Stereo sound problem (?) on mac games\nOrganization: UC San Diego Chemistry\nLines: 62\nDistribution: world\nReply-To: dpb@sdchemw2.ucsd.edu (Doug P. Book)\nNNTP-Posting-Host: sdchemw2.ucsd.edu\nKeywords: sound stereo, Quadra, 900, PowerBook, 170\n\n\nHi.  I think I have a problem with the stereo sound output on my Quadra\n900, but I am not totally sure because my roomate has the same problem\non his PowerBook 170.  Any info or experience anyopne has would be\ngreatly appreciated.\n\nWhen I hook my Quadra up to my home stereo system, the following types\nof sounds (mono, as far as I can tell) all play fine through BOTH\nspeakers:\n\nsystem beeps  (already provided ones such as Indigo and ones I record)\n\nArmor Alley\nSpectre\nSpaceward Ho!\n\n\nBut, the following games only play out of the left channel:\n\nLemmings\nOut of This World  (awesome game, BTW)\nGlider 4.0\nOIDS\n\n\nBut still, STEREO system beeps do play in stereo, through BOTH speakers.\n(The one I'm specifically referrring to is Apocolyptic Beginning, which\nmy roommate downloaded from some ftp site (sumex?))\n\n\nAll of the symptoms are the same on my rommates 170 (he can't run\nOOTW because he doesn't have color).\n\nWe're both running system 7.1\n\n\n\nDoes anyone with Lemmings or the other three games I mentioned above get\nsound out of both speakers on a Mac II class, Quadra, LC, PowerBook 140 or\ngreater, Centris, SE/30, etc... (stereo) machine?\n\nI used to have a Mac II, and I sort of rememeber Lemmings playing in\nstereo on that machine, not just on the left channel.  (I could be\nmistaken, though.  If there were a problem with the Quad 900's and PB\n170's, I am wondering why the system beeps still play in stereo?  If there\nisn't a problem with our machines, I wonder why the 4 games above are\napparantly written to support only one channel of stereo when they\ncould just use mono sounds so the mono sound would at least come out of\nboth speakers  (like Spectre, etc. do)?\n\nQuadra 900's and PowerBook 170's have the same ROMS (to my knowledge),\nso maybe this is a ROM problem?  (if so, though, why wouldn't System 7.1\npatch over this problem?)\n\n\n\n\nThanks for any help you can provide!\n\n\nDoug Book\ndpb@sdchemw2.ucsd.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 347, "properties": {"category": "sci.crypt", "text": "From: karn@unix.ka9q.ampr.org (Phil Karn)\nSubject: Re: White House Wiretap Chip Disinformation Sheet\nKeywords: Big Bubba Is Watching.\nNntp-Posting-Host: unix.ka9q.ampr.org\nReply-To: karn@servo.qualcomm.com\nOrganization: Qualcomm, Inc\nLines: 24\n\nIn article <WCS.93Apr17034914@rainier.ATT.COM>, wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705) writes:\n|>    The Attorney General will procure and utilize encryption devices to\n|>    the extent needed to preserve the government's ability to conduct\n|>    lawful electronic surveillance and to fulfill the need for secure\n|>    law enforcement communications.  Further, the Attorney General\n|>    shall utilize funds from the Department of Justice Asset Forfeiture\n|>    Super Surplus Fund to effect this purchase.\n\nThis is a very curious thing to say. STU-IIIs (NSA-designed secure\ntelephones cleared for classified traffic) are already readily\navailable to law enforcement agencies. Word has it they're standard in\nevery FBI office, for example.  Something like several hundred\nthousand of these phones exist in all. They are clearly the US government\nstandard.\n\nSo why does the DoJ need to buy new phones that, unlike STU-IIIs, will\nnot be certified for classified traffic, and in all likelihood will\nnot be compatible with existing STU-IIIs?\n\nUnless, of course, they're gearing up for large scale decryption of\ncivilian Clipper users, and they need compatible hardware...\n\nPhil\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 348, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Davidians and compassion\nOrganization: Cookamunga Tourist Bureau\nLines: 26\n\nSo we have this highly Christian religious order that put fire\non their house, killing most of the people inside.\n\nI'm not that annoyed about the adults, they knew supposedly what\nthey were doing, and it's their own actions.\n\nWhat I mostly are angry about is the fact that the people inside,\nincluding mothers, let the children suffer and die during awful\nconditions.\n\nIf this is considered religious following to the end, I'm proud\nthat I don't follow such fanatical and non-compassionate religions.\n\nYou might want to die for whatever purpose, but please spare\nthe innocent young ones that has nothing to do with this all.\n\nI have a hard time just now understanding that Christianity\nknows about the word compassion. Christians, do you think \nthe actions today would produce a good picture of your \nreligion?\n\n\nKent\n\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 349, "properties": {"category": "talk.politics.mideast", "text": "From: ohayon@jcpltyo.jcpl.co.jp (Tsiel Ohayon)\nSubject: Hamza does it again.\nOrganization: James Capel Pacific Limited, Tokyo Japan\nLines: 18\n\nHamza answers one of my articles:\n\n[TO] If indeed Israeli soldiers killed a \"Hamas Mujahid\" with an anti-tank\n[TO] missile then I'm almost sure that the \"terrorist zionists\" would not\n[TO] have been able to cut up a body which was probably desintegrated by the\n[TO] missile.\n\n[Hamza] maybe the missile didn't hit directly such that his body\n[Hamza] gets \"desintegrated.\"  of course, destroying 10 houses to\n[Hamza] kill someone is not a surgical operation, or is it?\n\nWell done Hamza. You edited my answer to Anas Omran, took everything out\nof context and then replied to it the way you wanted.\nNow I really understand why the peace process is not making any progress.\n\nYou guys ain't listening, just babbling away to your same old rhetoric.\n\nTsiel\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 350, "properties": {"category": "comp.graphics", "text": "From: jgreen@amber (Joe Green)\nSubject: Re: Weitek P9000 ?\nOrganization: Harris Computer Systems Division\nLines: 14\nDistribution: world\nNNTP-Posting-Host: amber.ssd.csd.harris.com\nX-Newsreader: TIN [version 1.1 PL9]\n\nRobert J.C. Kyanko (rob@rjck.UUCP) wrote:\n> abraxis@iastate.edu writes in article <abraxis.734340159@class1.iastate.edu>:\n> > Anyone know about the Weitek P9000 graphics chip?\n> As far as the low-level stuff goes, it looks pretty nice.  It's got this\n> quadrilateral fill command that requires just the four points.\n\nDo you have Weitek's address/phone number?  I'd like to get some information\nabout this chip.\n\n--\nJoe Green\t\t\t\tHarris Corporation\njgreen@csd.harris.com\t\t\tComputer Systems Division\n\"The only thing that really scares me is a person with no sense of humor.\"\n\t\t\t\t\t\t-- Jonathan Winters\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 351, "properties": {"category": "sci.space", "text": "From: loss@fs7.ECE.CMU.EDU (Doug Loss)\nSubject: Re: Crazy? or just Imaginitive?\nOrganization: Electrical and Computer Engineering, Carnegie Mellon\nLines: 22\n\nIn article <1993Apr21.205403.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>\n>Unfortunately H. Beam Piper killed him self just weeks short of having his\n>first book published, and have his ideas see light.. Such a waste.\n>\n>\nPiper lived in my town (Williamsport, PA) when he killed himself.  It\nwas in the early '60's.  He had had more than a few books published by\nthat time, but he was down on his luck financially.  Rumor was that he\nwas hunting urban pigeons with birdshot for food.  He viewed himself as\na resourceful man, and (IMO) decided to check out gracefully if he\ncouldn't support himself.  The worst part is that John Campbell, the\nlong-time editor of Astounding/Analog SF magazine had cut a check for\nPiper's most recent story, and said check was in the mail.  If Campbell\nhad known Piper's straits, I'm sure he would have phoned to say hang on.\nCampbell was like that.\n\nI wish it had happened differently.  I always enjoyed Piper's stuff.\n\nDoug Loss\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 352, "properties": {"category": "misc.forsale", "text": "From: Feng.Qian@launchpad.unc.edu (Feng Qian)\nSubject: IRWIN 250 owners: don't miss this deal on tapes\nArticle-I.D.: samba.1993Apr6.152232.28010\nOrganization: University of North Carolina Extended Bulletin Board Service\nLines: 16\nNntp-Posting-Host: lambada.oit.unc.edu\n\n\nIRWIN suggests the use of pre-formatted tapes for their tape drives, as\nyou often can't successfully format a tape and need  bulk-erase it before\nyou can format it again. Anyway, I have some new, preformatted tapes for\nIRWIN 250 tape drives. \nIRWIN accuTRAK series 120-250MB, $16/ea. New never used.\n3M DC2120, RHOMAT Format.  $16/ea. Wraped.\n\nEmail if interested.\n\nFeng\n--\n   The opinions expressed are not necessarily those of the University of\n     North Carolina at Chapel Hill, the Campus Office for Information\n        Technology, or the Experimental Bulletin Board Service.\n           internet:  laUNChpad.unc.edu or 152.2.22.80\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 353, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: Slavery (was Re: Why is sex only allowed in marriage:...)\nOrganization: Monash University, Melb., Australia.\nLines: 208\n\nIn <1993Apr4.200253.21409@ennews.eas.asu.edu> guncer@enuxha.eas.asu.edu (Selim Guncer ) writes:\n\n>You might not like what Bernard Lewis writes about, label him\n>as a Zionist or such to discredit him etc. \n\nYou misrepresent me, Selim.  The hard evidence for my statements about\nhis lack of objectivity are presented quite clearly in the book\n\"Orientalism\" by Edward Said.  Edward Said, by the way, is a Christian,\nnot a Muslim.\n\n>I think he is\n>pretty much objective in his treatment in \"Race and Slavery in\n>the Middle East\", since he clearly distinguishes between\n>slavery under Islam, and the practice of slavery in other countries,\n>like the US prior to the civil war. He also does not conceal\n>that there are verses in the Quran which promote the liberation\n>of slaves. What he doesn't, and I don't think nobody can,\n>deduce from these verses is that slavery will eventually be\n>abolished in Islamic countries. Now you might, rather conveniently,\n>blame the practice of slavery on Muslims, but the facts are out\n>there. I also fail to see the relevance of the claim of Lewis being\n>a \"Zionist\" to what I wrote. \n\nRegarding Bernard Lewis:\n\nHim being a Zionist gives him a political motive for his\ngiving misrepresentations and half-truths about Islam.\n\nRead \"Orientalism\" by Edward Said -- see the evidence for yourself.\n\nIn fact, I may post some of it here (if it isn't too long).\n\n>They were encyclopaedic information\n>which anybody can access - that slavery was abolished at certain\n>dates some 1200 years after Muhammed, that this was the cause\n>of tensions in the Ottoman empire between the Arab slave traders\n>and the government etc.. We also have in the ASU library volumes\n>of British documents on slavery where reports and documents\n>concerning slavery all around the world can be found, which I\n>checked some of the incidents Lewis mentions. So I don't think\n>ones political stance has anything to do with documentary evidence.\n\nI haven't read Lewis's article, so I can't comment directly upon it, and\nhave only spoken about his writings _in general_ so far, that his\npolitical motives make him a biased writer on Islam.  His anti-Islamic\npolemics, as I understand it, are often quite subtle and are often based\non telling half-truths.\n\nAgain, read \"Orientalism\" by Edward Said.  I am _not_ asking you to take\nwhat I say on trust, in fact I am urging you not to do so but to get\nthis book (it is a well-known book) and check the evidence out for\n_yourself_.\n\n>The issue I raised was that slaves WERE USED FOR SEXUAL PURPOSES,\n>when it was claimed that Islam prohibits extra-marital sex.\n>I wrote that the Prophet himself had concubines, I wrote an\n>incident in which the prophet advised on someone who did not\n>want his concubine to get pregnant etc., which is contrary\n>to the notion that \"sex is for procreation only\". In other\n>words, such claims are baseless in the Quran and the Hadith.\n\nIf slavery is _in reality_ (as opposed to in the practice of some\nMuslims) opposed by Islam, then using slaves for sexual\npurposes is necessarily opposed too.\n\n>I seem to be unsuccesful in getting through to you. Islam is\n>not \"advocating\" slavery. Slavery was an existing institution in the \n>7th century. It advised on slaves being freed for good\n>deeds etc., which is nothing new. Many cultures saw this as a\n>good thing. What is the problem here? But I can argue rightfully\n>that slaves were discouraged about thinking about their statuses\n>politically - the Quran rewards the good slave, so obey your\n>master and perhaps one day you'll be free.  But, it is very\n>understandable that I do not communicate with Muslims, since\n>they assume the Quran is from a \"God\", and I think it is a rule-based\n>system imposed on the society for preservation of the status quo.\n>Slaves are a part of this system, the subordination of women\n>so that their function in society boils down to child-making\n>is a part of this system, etc. \n\nI understand your point of view, Selim -- I think, rather, it is _us_\nwho are not getting through to _you_.\n\nSome of the points you repeat above I have already answered before.\n\nRegarding women, I have made posting after posting on this subject,\nshowing that Islam is not anti-woman, etc.  However, have you been\ncompletely ignoring my postings or just missing them?  I just reposted a\nvery good one, under the title \"Islam and Women\", reposted from\nsoc.religion.islam.  If this has already disappeared from your site,\nthen please email me telling me so and I will email you a copy of this\nexcellent article.  \n\nIMHO, your understanding of the issue of women in Islam is sadly deficient.\n\nRegarding slaves, _my_ posting on slavery -- the second one I made,\nwhich is a repost of an article I wrote early last year -- is based\ncompletely on the Qur'an and contains numerous Qur'anic verses and\nhadiths to support its point of view.\n\nOur approaches are different -- you are arguing from a historical\nstandpoint and I am arguing directly from the teachings of the Qur'an\nand hadiths.  Now, just because people say they are Muslims and perform\na particular action, does that automatically mean that their action is\npart of Islam, even if it is opposed by the Qur'an and Sunnah?  No!  Of\ncourse not.\n\nLet me give you a concrete example, which might help clarify this for\nyou.  The Qur'an prohibits drinking.  Now, if a person says \"I am a\nMuslim\" and then proceeds to drink a bottle of beer, does this now mean\nthat Islam teaches that people should drink beer?  Of course not, and\nonly an idiot would think so.\n\nDo you see my point?\n\n>It is very natural to think that\n>the author/authors of the Quran had no idea that the socio-economic\n>structure they were advocating would experience at least two paradigm\n>shifts in 1400 years in the western cultures - first with the end of \n>the feudal era and the rise of commerce, second with the industrial \n>revolution.  Well, rules have changed and the status quo has driven \n>Muslim countries into misery trying to survive in a \"heathen\" world. \n>Muslim countries have failed economically, they were unable to \n>accumulate any wealth - directly due to the uncomprimising economic\n>rules in the Quran. In fact, the rise of Islam can easily be modeled\n>after the pyramid effect - you do not produce any wealth at home,\n>but increase your wealth by conquering places.  \n\nYou are judging Islam here on capitalist terms.  Capitalism is an\nideology based largely on the assumption that people want to maximise\ntheir wealth -- this assumption is in opposition to Islamic teachings.\nTo say Islam is bad because it is not capitalist is pretty unthinking --\nIslam does not pretend to be capitalist and does not try to be\ncapitalist.  (This does not mean that Islam does not support a\nfree-market -- for it does in general -- but there are other parts of \ncapitalism which are opposed to Islam as I understand it.)\n\n>When this stopped,\n>you (and I) were left bare in the open for emperialists to devour.\n>No capital, no industry, very poor social services - the education\n>level in Muslim countries are the lowest in the world, the health\n>statistics are miserable etc.. \n\nOne can postulate numerous reasons for this.  Your theory is that it is\nbecause Islam is not secularist and capitalist, etc. etc.\n\nSelim, I will give you a clear historical example to show you the\nfallacy of your views if you think (as you obviously do) that\nIslam => lack of education and power.\n\nFor a large part of history, the Islamic world was very powerful.  For a\nsignificant section of history, the Islamic world was the foremost in\nthe sciences.  So to say that Islam is, for example, anti-education is\ncompletely absurd.  You try to blame this situation on Islam -- history\nshows that your conclusion is false and that, instead, there must be\nother reasons for this situation.\n\n>You blame Muslims for not following the Quran, but I blame Muslims \n>for following the Quran. \n\nWell, Selim, your viewpoint on women in Islam makes me question the extent\nof your knowledge of Islam.  I really think you are not\nknowledgeable enough to be able to judge whether the Muslims are\nfollowing the Qur'an or not.\n\n>Your idea is baseless from historical\n>facts, it is a poor utopia, \n\nThe Islamic world was at the forefront of the world in science at one\nstage -- yet somehow, in your theory, it is by \"following the Qur'an\"\nthat Muslims are backwards in education.  Selim, it is _your_ thesis\nthat is anti-historical, for you conveniently overlook this historical\nfact which contradicts your theory. \n\n>while my ideas are derived from social\n>and economic history. \n\nYou have certainly not shown this; you have merely stated it.\nSo far, it seems to me that your view on Islam being anti-education is\nquite contrary to history.  That you are so convinced of your views\nmakes me wonder just how objectively you are trying to look at all of\nthis.\n\n>My solution to all Muslims is simple:\n>CUT THE CRAP, \n\nI think, Selim, you should consider taking your own advice.\n\n>GET THE FACTS STRAIGHT \n\nHere too.\n\n>AND WORK HARD TO REVERSE\n>THE EFFECTS OF 1300 YEARS OF IGNORANCE.\n\nSelim, you have such conviction of your viewpoint, yet you demonstrate\nignorance, not only of Islam but also of Islamic history (particularly\nwith respect to Muslims being leaders of science till about 1400 or so I\nthink).  Yet you say that your viewpoint is based on history!\n\nSelim, if I remember right, you say in one of your earlier posts that\nyou are an apostate from Islam.  I think you should slow down and start\nthinking clearly about the issues, and start _reading_ some of our\npostings about Islam rather than ignoring them as you so obviously\nhave.\n\n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 354, "properties": {"category": "talk.religion.misc", "text": "From: m23364@mwunix.mitre.org (James Meritt)\nSubject: Re: Silence is concurance\nNntp-Posting-Host: mwunix.mitre.org\nOrganization: MITRE Corporation, McLean VA\nDistribution: usa\nLines: 76\n\nIn article <9157@blue.cis.pitt.edu> joslin@pogo.isp.pitt.edu (David Joslin) writes:\n}For those missing the context of this thrilling discussion between\n}Jim and I, Jim wrote the following to me in e-mail after I pointed out\n\nHate to shatter your self image of perfection that  you appear to hold, but\nyour language is wrong: Jim and me.\n\n}I pointed out that I did, in fact, agree that both Robert Weiss and\n}Jim Meritt took quotes out of context.  Hence, I find it difficult to\n}understand why Jim thinks I am a hypocrite.  Needless to say, I don't\n}have time to reply to *every* article on t.r.m. that takes a quote\n}out of context.  \n\nOf course not - just the ones you disagree with.  Q.E.D.\n\n}>}So, according to you, Jim, the only way to criticize one person for\n}>}taking a quote out of context, without being a hypocrite, is to post a\n}>}response to *every* person on t.r.m who takes a quote out of context?\n}\n}Jim replied by saying \n}>Did I either ask or assert that?\n}\n}But today we find four articles from Jim, one of which has the subject\n\nSo?  As of then, and pointing out a specific instance.  Wrongo again.\n\n}>Is it not the case that, in the eyes of the law, when someone is aware of\n}>something and has the capability of taking action and does not, that individual\n}>may be held responsible for that action?\n}\n}Which is, of course, a complete red herring.  Taking quotes out of\n}context isn't a crime.  I don't have time to read every article on\n}t.r.m., and I'm certainly under no obligation to reply to them all.\n\nSo?  Check the newsgroups?\n\n}Does \"silence is concurrence\" imply that Jim thinks that because I\n}didn't respond to Weiss' articles I must condone Weiss' taking quotes\n}out of context?  Jim doesn't want to give a direct answer to this\n}question; read what he has written and decide for yourself.\n\nTelepathy again?  You claim to know what I \"want\".\n\n}But back to the context of my conversation with Jim.  Jim's next \n}gambit was to claim that he was using inductive logic when he\n}concluded that I was being a hypocrite.  I challenged him to provide\n}the details of that logic that led him to an incorrect conclusion.\n\nNo.  YOu asked specifically what was wrong with yours.\n\n}Today we find another obscure article (posting it twice didn't help\n\nMaybe to the ignorant.  I accept your classification.\n\n}More red herrings.  Could Jim mean that he has read an uncountably large\n}number of my articles?  \n\nDo you know what \"uncountably large\" means?  It does not appear so.\n\n}Could Jim mean that because I \"axed\" his articles,\n}but not Weiss' articles, he wants to conclude inductively ...\n}Well, I can't see where he is going with this.\n\nI am not suprised.\n\n}But I can help him with his induction.  I've written roughly 80\n\nThat does not appear to be the case.  The appearance of your \"Argument\"\nis more like that Captain Kirk would have gotten from Mr. Spock - written\nby a stagehand at Paramount.\n\n}Think hard about this Jim.  See the pattern?  Think harder.  Run it\n}through your induction engine and see what pops out.  \n\nOf course.  You appear arrogant.  So?  I already had figured that out.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 355, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Stratus Computer, Inc.\nLines: 58\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <C5t38G.IL@news.udel.edu>, roby@chopin.udel.edu (Scott W Roby) writes:\n> In article <1r1rad$7rl@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n> >In article <C5s0Ds.J54@news.udel.edu>, roby@chopin.udel.edu (Scott W Roby) writes:\n> \n>   [The original question was about who started the fire and whether the \n>    \"madmen\" were inside or outside the compound.  To which I replied on \n>    the possible sanity level of those inside and outside.]\n\nWas THAT your argument.  Well, you didn't make it very well.  You started \nfrom the questionable premise that the fire was necessarily an act of\ninsanity, rather than an act of negligence or an accident.  Recall, one\nsurvivor claims that the fire started when a tank knocked over a kerosene \nlamp.  Kind of makes arguments regarding relative sanity somewhat moot, no?\n\n> >> According to an Australian documentary made in the year before the stand off \n> >> began, Koresh and his followers all believed he was Christ.  Koresh \n> >> had sex with children and women married to other men in the compound.  \n> >> These were the \"perfect children\" resulting from the \"great seed\" of \n> >> his \"magnified horn\".  Ex-members describe him in ways not dissimilar \n> >> to the way Jim Jones has been described.\n> >\n> >Point noted.  Have you submitted YOUR faith and sex life for BATF clearance?\n> >Better hurry; I believe the deadline was April 15.\n> \n> I paid my taxes.  There was no reference to sex or religion on the form.\n\n\"Nice evasive maneuver, Mr. Chekov, but they're still on our tail.\"\n\nLet me ask it more plainly.  Which of the above complaints about David \nKoresh's religious or sexual proclivities justified an armed raid by the \nBureau of Alcohol, Tobacco, and Firearms?\n\n> >> >:Two of the nine who escaped the compound said the fire was deliberately set \n> >> >:by cult members.\n\n> >> So, when they talk to the news reporters directly, and relate the same details, \n> >> will you believe them?\n\n> >Believe them?  I won't even RECOGNIZE them.  And neither will anyone else\n> >who doesn't know them personally.\n\n> Do you believe they would put impostors before the national tv cameras?\n\nIt's not entirely far-fetched.  Nobody outside the compound would know \nEVERYBODY inside the compound.  Don't forget, the BATF admits having \nagents inside the compound, in any case.\n\n> At this point, we are getting conflicting reports from the survivors.\n> Best wait til more light is shed upon them.  Of course, this is no \n> good if you believe in eternal darkness.\n\nI'm simply being the devil's advocate.  There's reasonable doubt by the\nboatload standing in the way of anybody totally swallowing the official \ngovernment story on Waco.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 356, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: DSI/USCRPAC\nDistribution: na\nLines: 43\n\nIn article <115863@bu.edu> uni@acs.bu.edu (Shaen Bernhardt) writes:\n\n>\n>I wish I could agree with you.  Ask yourself this.  Why would any private\n>sector entity wish to buy a crypto system that was KNOWN to be at least\n>partially compromised? (Key escrows in this instance)  Why would any\n>private sector entity wish to buy a crypto system that had not been properly\n>evaluated?  (i.e. algorythm not publically released)\n>The answer seems obvious to me, they wouldn't.  There is other hardware out\n>there not compromised.  DES as an example (triple DES as a better one.)\n\nWhat follows is my opinion. It is not asserted to be \"the truth\" so no\nflames, please.  It comes out of a background of 20 years as a senior\ncorporate staff executive in two Fortune 50 companies.\n\nI'd be happy to use a crypto system supplied by the NSA for business, if\nthey told me it was more secure than DES, and in particular resistant to\nattempts by Japanese, French, and other competitive companies and\ngovernments to break.\n\nI'd be happy to do so even with escrowed keys, provided I was happy about\nthe bona fides of the escrow agencies (the Federal Reserve would certainly\nsatisfy me, as would something set up by one of the big 8 accounting firms).\n\nI'd trust the NSA or the President if they stated there were no trap\ndoors--I'd be even happier if a committee of independent experts examined\nthe thing under seal of secrecy and reported back that it was secure.\n\nI'd trust something from the NSA long before I'd trust something from some\nSwiss or anybody Japanese.\n\nThis may seem surprising to some here, but I suggest most corporations would\nfeel the same way. Most/many/some (pick one) corporations have an attitude\nthat the NSA is part of our government and \"we support our government\", as\none very famous CEO put it to me one day.\n\nJust some perspective from another point of view.\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 357, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: els390r@fawlty1.eng.monash.edu.au (G Chow)\nSubject: Re: ESDI with IDE???\nOrganization: Monash University\nLines: 27\n\nIn article <1qegfd$dqi@wsinis03.info.win.tue.nl> monty@wsinis03.info.win.tue.nl (Guido Leenders) writes:\n>Hi,\n>\n>Is it possible to use an ESDI-controller with HDD together with an\n>IDE-harddisk + controller in one ISA-system?\n>\n>I've read stuff about secondary controllers. Does this trick work?\n>\n>Thanx in advance,\n>\n>Guido\n>monty@win.tue.nl\n\nI have the same question as Guido. It is possible to use the ESDI drive as a master and the IDE drive as the slave ? \nAt the moment , I have been using the ESDI drive and recently I bought a IDE drive to use as the 2nd drive . \nThe person in the computer shop told me that it is not possible to run 2 disk controller cards together on the same motherboard ( ESDI AND IDE ) but I think there might be some way of making them work. Can anybody enlighten me on this?\nAnd it is possible to  run a ESDI HDD using a IDE controller? or vice versa?\nCan anybody please help me out on this?\nYour help will be very much appreciated.\n\nG.Chow\n\nels390r@fawlty1.eng.monash.edu.au\nels390r@mdw013.cc.monash.edu.au\ngtchow@yoyo.cc.monash.edu.au\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 358, "properties": {"category": "soc.religion.christian", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 194\n\n\n\nIn article <Apr.19.05.12.10.1993.29131@athos.rutgers.edu> \npharvey@quack.kfu.com (Paul Harvey) writes:\n\n>priority than the direct word of Jesus in Matt5:14-19? Paul begins\n>Romans 14 with \"If someone is weak in the faith ...\" Do you count\n>yourself as one who is weak in the faith?\n\nDo you count yourself as one who is weak in the faith?\n\n>you read Jesus' word in Matt5:14-19? Is there any doubt in your mind\n>about what is right and what is sin (Greek hamartia = missing the mark)?\n\nIs there any doubt in your mind about what is right and what is missing\nthe mark?\n\n>>However I'd like to be clear that I do not think there's unambiguous\n>>proof that regular Christian worship was on the first day.  As I\n>>indicated, there are responses on both of the passages cited.\n>Whereas, the Ten Commandments and Jesus' words in Matt5:14-19 are fairly\n>clear, are they not?\n\nAre they clear or do you have doubts?\n\n>[No, I don't believe that Paul can overrule God.\n\nAn important first step; the realization that Paul was human.\n\n>However Paul was writing for a largely Gentile audience.\n\nYes, and he was writing and speaking for an audience that was at best,\nvery weak in the faith; most could not read, most were unfamiliar with\nthe Hebrew Scriptures in even the Septuagint form. Paul adapted the\nmessage of the Bible to a largely uneducated market. Granted, this\nmarket still exists today, but do you count yourself as part of it? To\nbe \"weak in the faith\" is not missing the mark (hamartia) if you do the\nbest that your education allows. Are you doing the best?\n\n>The Law was regarded by Jews\n>at the time (and now) as binding on Jews, but not on Gentiles.  There\n>are rules that were binding on all human beings (the so-called Noachic\n>laws), but they are quite minimal.\n\nLet me make clear that the \"Law\" is none other than the Pentateuch of\nGenesis, Exodus, Leviticus, Numbers, Deuteronomy. What did Jesus say\nabout the \"Law\" in Matt5:14-19? Where did Jesus say that the \"Law\" only\napplies to Jews and that Gentiles are above the \"Law\"?\n\n>The issue that the Church had to\n>face after Jesus' death was what to do about Gentiles who wanted to\n>follow Christ.  The decision not to impose the Law on them didn't say\n>that the Law was abolished.  It simply acknowledged that fact that it\n>didn't apply to Gentiles.\n\nWho acknowledged this fact? On what basis? Are we extra-biblical at this\npoint? Why not also acknowledge that the Bhagavad-Gita is the only\nrelevant text for Gentiles, after all we see in the Bible that it was\nMagus from the east who observed the star-signs of Jesus? Why bother\nwith any texts at all? Why not just follow whatever the Church has to\nsay?\n\n>Thus there is no contradiction with Mat 5.\n\nI don't see how you can say this with a straight face. Are you a\nfollower of Christ, or do you follow someone else? Are you saying that\nthe words of Jesus only apply to Jews?\n\n>As far as I can tell, both Paul and other Jewish Christians did\n>continue to participate in Jewish worship on the Sabbath.  Thus they\n>continued to obey the Law.\n\nHow Jewish was Paul after he changed his name from Saul?\n\n>The issue was (and is) with Gentile\n>Christians, who are not covered by the Law (or at least not by the\n>ceremonial aspects of it).\n\nWho says Gentile Christians are not covered by the first five books? Who\nsays that Gentile Christians are above the Ten Commandments?\n\n>Jesus dealt mostly with Jews.  I think we can reasonably assume that\n>Mat 5 was directed to a Jewish audience.\n\nYou're implying that Jesus' words are valid only for Jews. Is this\nreally what you mean to say? You do realize that you are gutting rather\nlarge portions of the Bible? When you read Jesus' words, did you ever\nconsider that maybe, just maybe Jesus is talking to you, no matter what\nyour race or sex? If the Hebrew Scriptures and the Gospel accounts of\nJesus are only directed to Jews, why were they translated into English?\n\n>He did interact with\n>Gentiles a few times (e.g. the centurion whose slave was healed and a\n>couple of others).  The terms used to describe the centurion (see Luke\n>7) suggest that he was a \"God-fearer\", i.e. a Gentile who followed\n>God, but had not adopted the whole Jewish Law.\n\nAs Paul would call him, one who was weak in the faith.\n\n>He was commended by\n>Jewish elders as a worthy person, and Jesus accepted him as such.\n>This seems to me to indicate that Jesus accepted the prevailing view\n>that Gentiles need not accept the Law.\n\nWhich is more important: 1) The recorded word of Jesus or 2) Indications\nthat you can deduce from the Bible? Was Jesus God only of the Jews, or\nGod of all humankind of all race and sex?\n\n>However there's more involved if you want to compare Jesus and Paul on\n>the Law.  In order to get a full picture of the role of the Law, we\n>have to come to grips with Paul's apparent rejection of the Law, and\n>how that relates to Jesus' commendation of the Law.  At least as I\n>read Paul, he says that the Law serves a purpose that has been in a\n>certain sense superceded.\n\nThis is your understanding of Paul. Compare this to the word of Jesus.\nAre you Christian or Pauline?\n\n>Again, this issue isn't one of the\n>abolition of the Law.  In the middle of his discussion, Paul notes\n>that he might be understood this way, and assures us that that's not\n>what he intends to say.  Rather, he sees the Law as primarily being\n>present to convict people of their sinfulness.  But ultimately it's an\n>impossible standard, and one that has been superceded by Christ.\n\nAgain, this is your understanding of Paul. Did Jesus say that the Law\nwas an \"impossible standard?\" Did Jesus say that He superceded the Law?\nAre you Christian or Pauline?\n\n>Paul's comments are not the world's clearest here, and not everyone\n>agrees with my reading.\n\nYou acknowledge that it is *your* reading of Paul. What did Jesus say?\nCan you deny that Matt5:14-19 is quite clear in its meaning? Are you \nChristian or Pauline?\n\n>But the interesting thing to notice is that\n>even this radical position does not entail an abolition of the Law.\n>It still remains as an uncompromising standard, from which not an iota\n>or dot may be removed.  For its purpose of convicting of sin, it's\n>important that it not be relaxed.\n\nWhen did Jesus say that the purpose of the Law was conviction of sin?\n\n>However for Christians, it's not\n>the end -- ultimately we live in faith, not Law.\n\nPlease reread Matt5:14-19. Are you Christian or Pauline?\n\n>Jesus' interpretations\n>emphasize the intent of the Law, and stay away from the ceremonial\n>details.\n\nAre you saying that the Ten Commandments are ceremonial details?\n\n>Paul's conclusion is similar.  While he talks about the Law being\n>superceded, all of the specific examples he gives involve the\n>\"ceremonial law\", such as circumcision and the Sabbath.  He is quite\n>concerned about maintaining moral standards.\n\nYou call observance of the Sabbath, the day on which the Lord rested,\nceremonial? Has circumcision been superceded for Christians?\n\n....\n\nAre you Christian or Pauline?\n\n[Both.  There is no doubt in my mind about what is sin and what is\nnot, at least not in this case.  Jesus did not deal explicitly with\nthe question of whether the Law was binding on Gentiles.  That's why I\nhave to cite evidence such as the way Jesus dealt with the Centurion.\n\nAs to general Jewish views on this, I am dependent largely on studies\nof Pauline theology, one by H.J. Schoeps, and one whose author I can't\ncome up with at the moment.  Both authors are Jews.  Also, various\nChristian and non-Christian Jews have discussed the issue here and in\nother newsgroups.\n\nMat 5:19 is clear that the Law is still valid.  It does not say that\nit applies to Gentiles.\n\nAnd yes, I say that the specific requirement for worship on the\nSabbath in the Ten Commandments is a ceremonial detail, when you're\nlooking at the obligations of Gentiles.  Similarly circumcision.\n\nI'm not sure quite what else I can say on this subject.  Again, it's\nunfortunate the Jesus didn't answer the question directly.  However we\ndo know (1) what the 1st Cent. Jewish approach was, (2) how Jesus\ndealt with at least one Gentile, and (3) how Jesus' disciples dealt\nwith the issue when it became more acute (I'm referring to Acts 15\nmore than Paul).  Given that these are all in agreement, I don't see\nthat there's a big problem.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 359, "properties": {"category": "comp.windows.x", "text": "From: dealy@narya.gsfc.nasa.gov (Brian Dealy - CSC)\nSubject: Re: XWindows always opaque\nOrganization: NASA/Goddard Space Flight Center\nLines: 57\nDistribution: comp\nNNTP-Posting-Host: narya.gsfc.nasa.gov\nKeywords: xwindow, parent-child relation\nOriginator: dealy@narya.gsfc.nasa.gov\n\n\n\nIn article <hess.734959172@swt1>, hess@swt1.informatik.uni-hamburg.de (Hauke Hess) writes:\n|> Hi,\n|> \n|> I wonder if it is possible for a parent window to paint over the area of\n|> its childs. If it is not, then how could it be possible to implement a \n|> rubberband across multiple xwindows to select the objects that are\n|> displayed one in each window?\n|> \n|> Hauke\n|> \n\nIf you specify the rootwindow when you are creating your GC. You may \nuse Xlib to draw over multiple windows. \nI have an application that does something similar for rubber banding.\n\n curs_move = XCreateFontCursor (disp_data, XC_crosshair);\n\n geom_vals.foreground     = blck_pixl ^ grey_dark;\n geom_vals.plane_mask     = AllPlanes;\n geom_vals.line_width     = 0;\n geom_vals.function       = GXxor;\n geom_vals.subwindow_mode = IncludeInferiors;\n evnt_mask= GCForeground | GCPlaneMask | GCLineWidth | GCFunction\n                                                     | GCSubwindowMode;\n geom_gcon= XCreateGC (disp_data, root_iden, evnt_mask, &geom_vals);\n\n\n\nlater I can move the rubber band or bands using the following logic\n\n/**********************************************************************/\n void Tselect::move_bands (int delt_xloc, int delt_yloc)          /****/\nstuff deleted ...\n            XDrawRectangle (disp_data,   root_iden,  geom_gcon,\n                            sele_pntr->rootx, sele_pntr->rooty,\n                            sele_pntr->xlnth, sele_pntr->ylnth); undraw old one\n            sele_pntr->papax+= delt_xloc;\n            sele_pntr->papay+= delt_yloc;\n            sele_pntr->rootx+= delt_xloc;\n            sele_pntr->rooty+= delt_yloc;\n            XDrawRectangle (disp_data,   root_iden,  geom_gcon, \n                            sele_pntr->rootx, sele_pntr->rooty,\n                            sele_pntr->xlnth, sele_pntr->ylnth); draw new one\nmore stuff deleted\n  hope this helps\n\n\n-- \nBrian Dealy                |301-572-8267| It not knowing where it's at  \ndealy@kong.gsfc.nasa.gov   |            | that's important,it's knowing\n!uunet!dftsrv!kong!dealy   |            | where it's not at...  B.Dylan\n-- \nBrian Dealy                |301-572-8267| It not knowing where it's at  \ndealy@kong.gsfc.nasa.gov   |            | that's important,it's knowing\n!uunet!dftsrv!kong!dealy   |            | where it's not at...  B.Dylan\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 360, "properties": {"category": "talk.politics.guns", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Re: Non-lethal alternatives to handguns?\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nKeywords: handgun mace pepper-spray taser tasp phaser\nLines: 18\n\nIn article <1993Apr15.150736.15793@mksol.dseg.ti.com> pyron@skndiv.dseg.ti.com writes:\n>\n>Ask the Brits.  Enough people have been killed by rubber bullets that they now\n>use them under only certain \"controlled\" circumstances.  And they are fired\n>from something that looks like a tear gas launcher.\n>\n>There are smaller rubber bullets and pellets (for shotguns).  I understand that\n>they are only intended to be discouragers, ie. for the snapping but not truly\n>dangerous animal.  In general, they do not seem capable of really stopping\n>someone who wants you or past you.  They are fired at very low muzzle velocity\n>(the .38 ball round is intended for a 400fps load).  Finally, as your mother\n>warned you, you can put an eye out with that thing.  :-)\n>--\n\tOh, OK.  Just wondering.  I am not a real expert on weapons, I was just\nwondering if they would do the job.\n\n\t\t\t\t\tDoug Holland\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 361, "properties": {"category": "alt.atheism", "text": "From: bcash@crchh410.NoSubdomain.NoDomain (Brian Cash)\nSubject: Re: some thoughts.\nNntp-Posting-Host: crchh410\nOrganization: BNR, Inc.\nLines: 4\n\nI'm sold!  Where do I sign up?\n\n\nBrian /-|-\\  The next book: \"Charles Manson: Lord, Lunatic, or Liar\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 362, "properties": {"category": "sci.electronics", "text": "Subject: Re: Picking up cable tv with an aerial.\nFrom: ganter@ifi.unibas.ch (Robert Ganter)\nOrganization: Institut fuer Informatik\nNntp-Posting-Host: schroeder.ifi.unibas.ch\nLines: 11\n\nGreat, the first advantage of cheap coax, I've ever heard.\n\nCheers   Robert  (HB9NBY)\n\n--\nRobert Ganter\t\t\t/------------\\\nUniversitaet Basel\t\t| I am a fan |\nInstitut fuer Informatik\t| of my plan |\nBasel/Switzerland\t\t\\------------/\nganter@ifi.unibas.ch\namateurradio: HB9NBY\tpacket: HB9NBY@HB9EAS.CHE.EU\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 363, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: My Gun is like my American Express Card\nDistribution: usa\n <1qm7qoINNqnv@clem.handheld.com> <1993Apr17.235338.2819@ucsu.Colorado.EDU>\nLines: 31\n\nIn article <1993Apr17.235338.2819@ucsu.Colorado.EDU>, fcrary@ucsu.Colorado.EDU\n(Frank Crary) says:\n>\n>>>>...I have never seen anyone else practice marksmanship by\n>>>> taking their gun out of their coat as fast as possible and start shooting.\n>\n>>>That is the recommended way to practice with a CCW, too.  Aim alone is no   d\n>goo\n>>>for defense, if you can't get the gun rapidly.\n>\n>>Very true but the way it was being done was just a little unusual.  It looked\n>>to me like they were practicing to shoot someone...\n\nThe point that I forgot to bring up here (and this has nothing to do with being\na gang member or not) is that it is illegal to carry a concealed weapon in this\narea (or in the state of illinois for that matter).  This is not to say that\npeople in Illinois don't carry concealed weapons illegaly but practicing like\nthat when there are other people around wasn't too bright of an idea.\n\n>\n>There isn't necessarily a conflict between practicing with a concealed\n>weapon for self-defence and practicing to shoot someone. Armed\n>self-defence does occasionally involve shooting an attacker.\n>\n>                                              Frank Crary\n>                                              CU Boulder\n\nI agree.      If you don't practice at all and carry a gun for self-defense you\nmost likely would be in big trouble if a situation were to arise.\n\nJason - u28037@uicvm.cc.uic.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 364, "properties": {"category": "talk.religion.misc", "text": "From: jluther@cs.umr.edu (John W. Luther)\nSubject: Re: Freemasonry and the Southern Baptist Convention\nNntp-Posting-Host: mcs213c.cs.umr.edu\nOrganization: University of Missouri - Rolla, Rolla, MO\nLines: 80\n\nIn article <1qv82l$oj2@usenet.INS.CWRU.Edu> ch981@cleveland.Freenet.Edu (Tony Alicea) writes:\n>\n>\n>     With the Southern Baptist Convention convening this June to consider\n>the charges that Freemasonry is incompatible with christianity, I thought\n>the following quotes by Mr. James Holly, the Anti-Masonic Flag Carrier,\n>would amuse you all...\n>\n>\n>     The following passages are exact quotes from \"The Southern \n>Baptist Convention and Freemasonry\" by James L. Holly, M.D., President\n>of Mission and Ministry To Men, Inc., 550 N 10th St., Beaumont, TX \n>77706. \n> \n>     The inside cover of the book states: \"Mission & Ministry to Men, \n>Inc. hereby grants permission for the reproduction of part or all of \n>this booklet with two provisions: one, the material is not changed and\n>two, the source is identified.\" I have followed these provisions. \n>  \n>     \"Freemasonry is one of the allies of the Devil\" Page iv. \n> \n>     \"The issue here is not moderate or conservative, the issue is God\n>and the Devil\" Page vi.\" \n> \n>     \"It is worthwhile to remember that the formulators of public \n>school education in America were Freemasons\" Page 29. \n> \n>     \"Jesus Christ never commanded toleration as a motive for His \n>disciples, and toleration is the antithesis of the Christian message.\"\n>Page 30. \n> \n>     \"The central dynamic of the Freemason drive for world unity \n>through fraternity, liberty and equality is toleration. This is seen \n>in the writings of the 'great' writers of Freemasonry\". Page 31. \n> \n>     \"He [Jesus Christ] established the most sectarian of all possible \n>faiths.\" Page 37. \n> \n>     \"For narrowness and sectarianism, there is no equal to the Lord \n>Jesus Christ\". Page 40. \n> \n>     \"What seems so right in the interest of toleration and its \n>cousins-liberty, equality and fraternity-is actually one of the \n>subtlest lies of the 'father of lies.'\" Page 40. \n> \n>     \"The Southern Baptist Convention has many churches which were \n>founded in the Lodge and which have corner stones dedicated by the \n>Lodge. Each of these churches should hold public ceremonies of \n>repentance and of praying the blood and the Name of the Lord Jesus \n>Christ over the church and renouncing the oaths taken at the \n>dedication of the church and/or building.\" Page 53-54.  \n> \n>\n>     I hope you all had a good laugh! I know *I* did! <g>,\n>\n>\nTony   \n\nI appreciate the narrow-mindedness of the view expressed in\nthe text you quoted.  I also appreciate your being amused\nby such determined ignorance.  Without taking anything away\nfrom your mirth, I want to say that these views sadden me.\nI can only hope that that sort of narrow-mindedness will\ndie with the generations that have promoted it.  Teach \nyour children well.\n\n<wet blanket mode off>\n\nPax.\n\nJohn\n> \n> \n\n\n-- \n* John W. Luther                        |   Anybody who mistakes my *\n* jluther@cs.umr.edu   <-Best for Email |   opinions for UMR's just *\n* 71140.313@compuserve.com  <-$$$$$!    |   doesn't know UMR.       *\n********************************************************************\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 365, "properties": {"category": "sci.electronics", "text": "From: gcarter@infoserv.com (George Carter)\nSubject: Re: Does someone know what is the news group for IEEE.\nReply-To: gcarter@infoserv.com\nDistribution: usa\nOrganization: SFBAC\nLines: 11\nX-Newsreader: Helldiver 1.07 (Waffle 1.64)\n\nIn <1993Apr19.192953.22874@usl.edu> yxy4145@ucs.usl.edu (Yu Yingbin) writes:\n>       yxy4145@usl.edu     Thanks a lot.\n\nieee.general\n\nand\n\nieee.announce\n\n\nare the most frequently used groups.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 366, "properties": {"category": "rec.autos", "text": "From: keys@starchild.ncsl.nist.gov (Lawrence B. Keys)\nSubject: Re: US-Made M-B SUV\nArticle-I.D.: dove.C52KE9.D6n\nOrganization: National Institute of Standards & Technology\nLines: 47\n\nIn article <93096.101507RSM2@psuvm.psu.edu> <RSM2@psuvm.psu.edu> writes:\n>Mercedes-Benz announced yesterday its plans to begin building sport-utility\n>vehicles in the US by 1997.  They are targeted at the Jeep Grand Cherokee\n>et al. and will reportedly sell for less than $30,000.\n>\n>Did anyone see a picture?   Is it the G-wagon (Gelaendewagen) currently\n^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThere is a picture in the May 1993 edition of European Car (although,\nit may not be on the shelf yet).\n\nSome things that the article says:\n\n\t- prototype has front wheel drive (first front drive\n\t  for Mercedes since the beginning of WWII)\n\n\t- wheelbase 3.15m\n\t- 7 seater\n\t- they claim that the price will be about the same as a\n\t  Renault Espace or Chrysler Voyager (DM 50,000)\n\nLooking at the picture (slightly disguised) it looks like the Ford\nAerostar, to me.\n\n>available in Europe (and in the US by grey-market) or is it an entirely new\n>vehicle?  Any details would be appreciated.\n>\n>Dick Meyer\n>Applied Research Laboratory, Penn State\n\n                                                  .  \n                                                 /                \nLarry                            __/    _______/_                 \nkeys@csmes.ncsl.nist.gov       /                  \\               \n                          _____     __     _____    \\------- ===\n            ----------- / ____/   /  /   /__  __/              \\\n         /     ___    /  / ___   /  /      / /    ____          |\n        |    /      \\/ /__ /  | /  /__  __/ /__ /       \\      / \n        /___         \\_______/ /_____/ /______/            ====OO\n            \\       /                           \\       /         \n                -            1990 2.0 16v           -\n\n\n       ---------------- FAHRVERGNUGEN FOREVER! --------------------            \n            The fact that I need to explain it to you indicates\n            that you probably wouldn't understand anyway!\n       ------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.019+0000", "event": "documents", "entityId": 367, "properties": {"category": "sci.med", "text": "From: bshelley@ucs.indiana.edu ()\nSubject: Xanax...please provide info\nNntp-Posting-Host: jh224-718622.ucs.indiana.edu\nOrganization: Indiana University\nLines: 9\n\nI am currently doing a group research project on the drug Xanax.  I would\nbe exponentially gracious to receive any and all information you could\nprovide\nme regarding its usage, history, mechanism of reaction, side effects, and\nother pertinent information.  I don't care how long or how short your \nresponse is.\n\nThanks in advance!\nBrent E. Shelley\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 368, "properties": {"category": "talk.politics.misc", "text": "From: kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm)\nSubject: Re: Kyle K. on Rodney King\nDistribution: usa\nOrganization: University of Illinois at Urbana\nLines: 19\n\nthf2@kimbark.uchicago.edu (Ted Frank) writes:\n\n>In article <C5Lp0y.FDK@news.cso.uiuc.edu> kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n>>       How about the fact that you have a bunch of cops putting their lives on\n>>the line day in and day out who are afraid as hell of a large black guy that\n>                                                               ^^^^^\n>>took a large amount of punishment and refused submit?  \n\n>I'm curious why you think that particular adjective is important.\n\n\n     I'm curious why you took a beign statement and cross-posted it to several\ndifferent news groups, including something along the lines of alt.discrimination  Look Rodney King is black and large.  I have several large black male friends,and they are referred to as being large black men ( to their faces, and by\nthemselves ).  You know, Ted, I have a large number of adjectives for you,\nbut I will spare you most of them because I try not to get into personal\nflame wars.  Let me just say that I think your action of cross posting this\nwas total BS, and you're trying to start some crap.  Hopefully, others will\nsee through your trite little game and not play along.  \n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 369, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rjacks@austlcm.sps.mot.com (rodney jacks)\nSubject: When is Apple going to ship CD300i's?\nNntp-Posting-Host: 223.8.248.12\nOrganization: Motorola Inc, Austin, Texas\nLines: 12\n\nI would really like to get one of the new CD300i CDROM\ndrives for my c650, but my local Apple doesn't know \nwhen they will be available.  He doesn't even have a part\nnumber yet.   Does anyone know what the part number \nfor this drive is and when it will be available?\n\nMy Apple dealer suggested I buy one of the CD300 external\ndrives, but I don't want to pay extra for a case/power supply\nI'm not going to use.\n\n-Rodney Jacks\n(rjacks@austlcm.sps.mot.com)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 370, "properties": {"category": "talk.politics.mideast", "text": "From: hamid@McRCIM.McGill.EDU (Hamid Reza Mohammadi Daniali)\nSubject: Re: Clinton's views on Jerusalem\nOriginator: hamid@celeborn.mcrcim.mcgill.edu\nNntp-Posting-Host: celeborn.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for  Intelligent Machines\nLines: 23\n\n\nIn article <1993Apr16.121356.28417@porthos.cc.bellcore.com>, bf3833@pyuxe.cc.bellcore.com (feigenbaum,benjamin) writes:\n|> I recently read that during Bill Clinton's campaign, he stated\n|> that if elected he would immediately recognize Jerusalem as\n|> Israel's capital.  According to the article, Mr. Clinton\n|> reaffirmed this after winning the presidency.  However,\n|> during recent talks with President Mubarak, Secretary of\n|> State Christopher stated that \"the status of Jerusalem\n|> will be a final matter of discussion between the parties\".\n|> \n|> Now I don't want to start a big discussion over the status\n|> of Jerusalem.  All I want to know is if anyone can \n|> authenticate Mr. Clinton's statements with dates, places, etc.\n|> \n\nThis would be one of the results of \"U.S. backed  PEACE!!!!!!\" process.\n\nHamid\n\n|> Thank you.\n|> \n|> Ben.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 371, "properties": {"category": "rec.sport.baseball", "text": "From: jdl6@po.CWRU.Edu (Justin D. Lowe)\nSubject: Re: And America's Team is....But Why?\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 35\nReply-To: jdl6@po.CWRU.Edu (Justin D. Lowe)\nNNTP-Posting-Host: slc8.ins.cwru.edu\n\n\nIn a previous article, steinman@me.utoronto.ca (David Steinman) says:\n\n>cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>\n>>\tThe defenition of the Underdog is a team that has no talent and comes\n>>out of nowhere to contend.  The '69 Mets and '89 Orioles are prime examples,\n>>not the Cubs. \n>\n>Sorry, but it is *virtually* impossible to win a division with \"no talent\"\n>over 162 games.\n>\n>I would amend your definition to:\n>\n>underdog:  a team expected to lose, but which wins thanks to underestimated\n>           talent.\n>--\n>Dave!\n>\n\nOK, the Mets and O's are good examples, but what about the '90 Reds?  Do you\nreally think that anyone expected them to sweep the A's?  I know people who\ndidn't even think they'd win a game, let alone win the Series.  We proved \nthem wrong, though, didn't we?\n\nAs for this year, ignore their record now.  They've had a rocky start, and\nthat has nothing to do with Colorado.  They shall rise again.  The hunt for\na Reds' October continues. (with all due respect to WLW)  Bye.\n\n\n-- \n             MICHELSON- - - - -1993 SPRING OLYMPICS CHAMPIONS\nRoad Rally, 5-legged Race, Rope Pull, Snarf, Penny Wars, Banner, Spirit Cheer.\n                    The Michelson Menace rides again!\n(Don't you just love that intense nationalistic feeling in a residence hall?)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 372, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Investment in Yehuda and Shomron\nOrganization: Division of Applied Sciences, Harvard University\nLines: 29\n\n\nIn article <1483500346@igc.apc.org> cpr@igc.apc.org (Center for Policy Research) writes:\n\n>Those who wish to learn something about the perversion of Judaism,\n>should consult the masterly work by Yehoshua Harkabi, who was many\n>years the head of Israeli Intelligence and an opponent of the PLO. His\n>latest book was published in English and includes a very detailed analysis\n>of Judeo-Nazism.\n\n\tYou mean he talks about those Jews, who, because of their self\nhatred, spend all their time attacking Judaism, Jews, and Israel,\nusing the most despicable of anti-Semetic stereotypes?\n\n\tI don't think we need to coin a term like \"Jedeo-Nazism\" to\nrefer to those Jews who, in their endless desire to be accepted by the\nNazis, do their dirty work for them.  We can just call them house\nJews, fools, or anti-Semites from Jewish families.\n\n\tI think \"house Jews,\" a reference to a person of Jewish\nancestry who issues statements for a company or organization that\ncondemn Judaism is perfectly sufficeint.  I think a few years free of\ntheir anti-Semetic role models would do wonders for most of them.\n\nAdam\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 373, "properties": {"category": "rec.motorcycles", "text": "From: bgardner@pebbles.es.com (Blaine Gardner)\nSubject: Re: MOTORCYCLE DETAILING TIP #18\nNntp-Posting-Host: 130.187.85.70\nOrganization: Evans & Sutherland Computer Corporation\nLines: 33\n\nIn article <1993Apr15.000851.17731@bnr.ca> MBEAVING@BNR.CA writes:\n>Don't you just hate when the speedo and tach on your\n>bike start to cloud over from all that nasty sunshine?\n>The detailing tip of the week is to use rubbing compound.\n>\n>Moisten a rag, apply some rubbing compound and work into the\n>translucent, previously transparent, material. After a few \n>minutes of working on the plastic face, the dial, or plastic \n>face will be clear once more. Will not work for glass.\n\nA couple of other tips.\n\n1) Make a habit of parking the bike so that instruments are facing away\n   from the sun.\n\n2) Meguiar's Mirror Glaze Plastic Polish & Plastic Cleaner. (Cue canned\n   product plug #2543):\n\nroise@sumax.seattleu.edu (Linda Roise) writes:\n>OK, for a novice question, is there anything that will clean a\n>face-shield and also remove abrasions so that one can see through it\n>better?  \n\nWhat you want are Meguiar's Mirror Glaze Plastic Polish and Plastic\nCleaner. They are very mild abrasives meant to remove scratches from\nplastic. For fine scratches just use the Polish, for bigger ones start\nwith the Cleaner and finish with the Polish. The stuff is $5-8 bucks per\nbottle at most auto or motorcycle parts stores. Don't choke over the\nprice too much, since both bottles will probably last you 10 years. The\nstuff works great on plastic watch \"crystals\" and compact discs too.\n-- \nBlaine Gardner @ Evans & Sutherland\nbgardner@dsd.es.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 374, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 21\n\nIn article <1993Apr17.022222.28105@news.cs.brandeis.edu>, st923336@pip.cc.brandeis.edu (BLORT! eeeep! Hwaaah.) writes:\n# \tActually, I was rather surprised to see an article on this subject\n# (i.e. the \"new, inproved\" survey saying that roughly 1% of men are gay)\n# on the front page of The New York _Times_ recently (I think it was\n# on Thurs, 15 April).  The headline was something to the effect of \n# \"New Survey Finds 1% of Men Are Gay\"\n# \n# \tI was shocked, not because the New York _Times_ was running a story\n# on a sex survey (although that was part of it), but because they thought\n# that this news was actually important enough to warrant front page space.\n# I mean, how many people actually CARE how many people are gay (as long as\n# you know how to find/avoid them if you want to)?  I don't.  \n\nIf you don't care, why was so much effort put into promoting the\n10% lie?  Because it was important to scare politicians into\nobedience.\n\n# \t\t\t\t\t\t\t-Matt\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 375, "properties": {"category": "talk.religion.misc", "text": "From: nyikos@math.scarolina.edu (Peter Nyikos)\nSubject: Re: Spreading Christianity (Re: Christian Extremist Kills Doctor)\nOrganization: USC  Department of Computer Science\nLines: 146\n\nMost of the key issues in the 284 line post to which I am following up are\ndealt with in the following post I made on talk.abortion yesterday,\nmodified to correct the next to last paragraph.\n\nMessage-ID: <nyikos.734890344@milo.math.scarolina.edu>\n\nReferences: <nyikos.734360987@milo.math.scarolina.edu> <nyikos.734640769@milo.math.scarolina.edu> <1993Apr13.122356.3612@cbnewsj.cb.att.com>\n\nIn <1993Apr13.122356.3612@cbnewsj.cb.att.com> decay@cbnewsj.cb.att.com (dean.kaflowitz) writes:\n\n>In article <nyikos.734640769@milo.math.scarolina.edu>, nyikos@math.scarolina.edu (Peter Nyikos) writes:\n>> In <CS132073.93Apr9160836@cslab1g.cs.brown.edu> cs132073@cs.brown.edu (John Bates) writes:\n>> \n>> >In article <nyikos.734360987@milo.math.scarolina.edu> nyikos@math.scarolina.edu (Peter Nyikos) writes:\n>> > perhaps out\n>> >of dedication to your convictions. I never, *never*, thought that you\n>> >would be consciously intellectually dishonest, though.\n>> \n>> I am not.  Can you show me anything that would lead you to think \n>> otherwise?\n\n>See the \"Spreading Christianity\" thread, in which he says I\n>ignore certain statements that I specifically acknowledged and\n\nDean did not.  He called them \"the Great Commission\" but this is NOT\ndescriptive of Jesus's words in Matt. 10:15.\n\nMatt. 10:14, Jerusalem Bible translation:\n\n\t\"And if anyone does not welcome you or listen to what you have\n\tto say, as you walk out of the house or town shake the dust\n\tfrom your feet.\"\n\nMatt. 10:15:\n\n \t\"I tell you solemnly, on the day of Judgment it will not \n \tgo as hard with the land of Sodom and Gomorrah as with \n \tthat town.\"\n\nIn the post to which Dean is referring above, I said:\n\n\"> The above is a good description of Kaflowitz, who keeps harping on\n > shaking the dust off the feet but ignoring what Christ said next.\"\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                ^^^^\n\nThe highlighted words refer to Matt 10:14 and 10:15 respectively.\n\nAnd Dean countered:\n\n\"Actually, this comment of your's is a perfect example of what an\nintellectually dishonest little sparrowfart you are, since I\nspecifically acknowledged the Great Commission and the entreaty\nto spread the word.  In fact, it is the combination of the two\nstatements I was addressing, and not just the one, and for you to\ncharacterize that as \"ignoring\" the instruction to spread the\nword is a good example of what a dishonest little fellow you are.\"\n\nOf course, Matt 10:15 [quoted above] makes no mention of \"instruction\nto spread the word.\"\n\nAll these quotes btw are from:\n\nMessage-ID: <1993Apr13.121624.3400@cbnewsj.cb.att.com>\n\n>in which, at the end, he claims I did not answer a question\n>which I answered, and which he deleted (to get the chronology\n>right, he deleted the answer and then said I didn't answer).\n\nAnd I claim it correctly, because my question went:\n\n\"Do you, too, measure\nthe goodness of a post by its entertainment value, and care not\na whit for such mundane things as truth and falsehood?\"\n\nand the closest Dean came to an answer was:\n\n\"Peter, Peter, Peter.  You're just so stupid, pretentious, dull,\nand generally unworthy of the value you place on yourself that\nthe sport is all there is.\"\n\nOf course, this does NOT answer my question, which has to do with posts\nin GENERAL and not my posts in particular.  Surely even Dean knows this,\nyet he brazenly asserts otherwise, reinforcing his claim with an insult:\n\n\"So I now restore the answer to your question\nthat you deleted.  If you're still unable to figure it out, ask\na nice kid at the local junior high to help you.  It really\ndoesn't take much sophistication to understand.\"\n\nOn top of which, I doubt that the \"answer\" is at all representative\nof Dean's true frame of mind.  The insults you have seen quoted thus\nfar are but a small sample of the stream that oozes out of Dean's \nmind throughout the 284-line post from which these quotes were taken.\nOne wonders whether Dean's mind is so warped as to find sport in all\nthis.\n\nHe even dredges up a falsified account of\nevents that transpired earlier on another thread:\n\n\"You made an ass of yourself by claiming that it\n\t\t\t\t^^^^^^^^^^^^^^^\nwas in the tradition of Lent to make public announcements of\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nthe \"sins\" of other individuals.\"\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nFalse.  I said it was the tradition to recall and atone for one's sins.\nThat I made public announcements of the \"sins\" of others\n--\"sins\", BTW, that were a matter of public record, documented in\nthe posts of others-- is a different matter.\n\nMany of the individuals involved are so nearly amoral that\nthey do not see as sins what morally upright people see as sins, so\nI pointed some of them out.  And I expressly set up a whole thread,\nYOUR TURN, to let people point out MY sins to me.\n\nDean again:\n\n\"You made an ass of yourself\nby saying that my statement of the tradition of tzedukkah was\nsomehow an attempt to \"paint Jews as plaster saints,\" thereby\nrevealing your inability to understand the discussion as well\nas showing your dislike for people saying positive things\nabout Jews, and now you show your intellectual dishonesty by\nrepeatedly ignoring the simple argument being made, and then\nclaiming I am ignoring the very argument I acknowledge.\"\n\nActually, what happened was that Dean made it seem like ANY Jew\nwho gave alms or did other acts of charity in public was a hypocrite\naccording to Jewish customs.  In doing so, he was caricaturing\nJewish customs as being almost impossibly demanding, as well as\nimplicitly slandering all Jews who make public their acts of charity.\n\nI went very easily on Dean for this, giving him the benefit of\nthe doubt in a post following my initial crack about \"plaster saints\", \nsuggesting that he had been merely careless in his wording.\n\nIn an astonishing act of ingratitude, Dean now serves up an incredibly\ndistorted picture of what took place between us, and using it as\nthe basis of one insult after another.\n\nPeter Nyikos\n\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 376, "properties": {"category": "talk.politics.misc", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: Re: URGENT **** TED FRANK WANTED FOR KILLING AJ TEEL...\nLines: 181\nReply-To: hallam@zeus02.desy.de\nOrganization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n\n\nIn article <1993Apr12.031404.25988@eff.org>, mnemonic@eff.org (Mike Godwin) writes:\n\n|>In article <C5Bvqy.FLD@dscomsa.desy.de> hallam@zeus02.desy.de writes:\n|>\n|>>|>But punishing the person for posting such a thing smacks of\n|>>|>authoritarianism.\n|>>\n|>>It's a deliberate act of fraud intended to cause harm.\n|>\n|>You seem to be unclear about the legal meaning of \"fraud.\" Mere\n|>misrepresentation is not fraud.\n\nYour comment here is meant as a put down. It fails for several reasons :\n\n1) You have edited out the context of the action under discussion. \n2) I never brought the legal definition up. I use the English language\nand not the legal dialect. The legal definition of fraud changes from\none country to another in any case. The context of the discussion is morality\nof censorship.\n\n\n\n|>>|>How does a posting from your site do any such thing? Especially if your\n|>>|>site is a university? Do you know any person who believes that a \n|>>|>university endorses every comment made from a university site?\n|>>\n|>>That is why I refered specifically to a company.\n|>\n|>Good. Now, do you know any person who believes that a company endorses\n|>every comment made from a university site?\n\nYou are extrapolating from the statement I made concerning a circumstance\nin which such an act of censorship would be permissable to the Teel case.\nIf you had bothered to read the post instead of trying to prove how stupid you\nthought me you would have done rather better. The mode of argument I was using\nwas a form of rhetoric. Argument by example, I describe a wide set of\ncircumstances in which an action is permisable and demonstrate that they\ndo not apply, thus the action is not permisable.\n\nObviously a company posting from a University adress would be squashed,  it\nwould be contrary to the internet comercial use.\n\n|>>|>Usenet does not distribute letterhead.\n|>>\n|>>Organization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n|>\n|>I suggest strongly that if you mean for this to be taken as letterhead you\n|>get a better stationery designer. \n\nNow you are clutching at straws. In the context of the discussion it was\nthe fact of association between the company and the post that was important.\nThe typeface etc is inconsequential.\n\n\n|>>There are people on the net who are openly supporting the murder of members\n|>>of my family.\n|>\n|>Sigh.\n\nIf you are implying that I am lying I suggest you read Mark Holohan and Ulick\nStaffords posts into soc.culture.british. If you are suggesting that \nadvocating murder is a trivial matter I would prefer that you state it\ndirectly. \n\nCertainly I oppose the right of Dr Sidiqui and the Ayatolah Khomenhi to\ncall for the murder of Salman Rushdie. Incitement to murder is not part\nof what I consider legitimate freedom of speech.\n\n\n|>>|>As for your notion that employees can argue their different political\n|>>|>views \"at their own expense,\" could you explain precisely what \"expense\"\n|>>|>you're talking about?\n|>>\n|>>Internet is not free. The connection charges are quite expensive for comercial\n|>>concerns.\n|>\n|>Could you give me a cost breakdown for the expense to your company\n|>attributable to an employee's posting a political view in disagreement\n|>with yours? Numbers, please.\n\nThat is irrelevant, the case is not the incremental cost but the facility\ncost. If I decide that a company I am associated with should subscribe\nto USEnet that usenet connection is the property of the company. It is\nquite legitimate for a company to have a political or other agenda and\nregulate the use of its property in accordance with its policy. For example\nif a Microsoft employee were to post \"Windows NT is crap don't buy it\"\nfrom a Microsoft machine I would consider it reasonable for Microsoft to\nsack that employee. In the same way if a company decides that it has \npolitical objectives it might wish to regulate postings in a political\nmanner. This is no worse than Rupert Murdoch using his papers as a political\nplatform for his views.\n\n\n|>>I was refering to the arrogance of your position, quoting the words written\n|>>by slave owners at me in the cause of freedom.\n|>\n|>Which words written by slave owners did I quote? I don't recall quoting\n|>anyone.\n\nah yes you did not quote them, merely refered to them.\n\n\n|>>Your constitution is not\n|>>considered sacrosanct in other parts of the globe. \n|>\n|>Nor have I assumed it is. I don't consider the First Amendment to have\n|>talismanic value.\n|>\n|>>You might just as well have attempted to argue from the King James bible\n|>>to a Muslim. I was pointing out that your reasoning is parochial when with\n|>>little effort you could have made a substantive point. \n|>\n|>I made the effort; apparently you made a certain effort to misunderstand\n|>me.\n\nYour article consisted of a reference to the first ammendment, your signature\nand pretty well damn all else. \n\n\n|>>|>For an example of a UK publication that understands this, try INDEX ON\n|>>|>CENSORSHIP.\n|>>\n|>>I used to subscribe, I would still if I was not moving.\n|>\n|>INDEX regularly publishes opinions by non-Americans who believe the First\n|>Amendment represents appropriate free-speech principles for all open\n|>societies. See, e.g., the opinions of the dissenting law lords in the\n|>SPYCATCHER case.\n\nAre you refering to the initial hearings on an injunction or the judgments\non the substantive case?\n\nThe initial hearings that the government won were judged on the not unresonable\njudgment that assertion by the government that the national interest might be\nharmed would be grounds for prior restraint. The second set of hearings on the\nsubstance judged that the government had no case and that the official secrets\nact could not be used to suppress information in thwe public domain already.\nThe part that they won was over the copyright issue which is rather separate.\n\nHere again the issue of censorship is rather different in the case that\ninformation is divulged on the understanding that it will not be communicated\nto third parties. The first ammendment certainly does not apply in this\ncase as the numerous prosecutions of spies in the US proves. \n\nThe crux of the Spycatcher affair was extrateritoriality of British law.\nThe censorship aspect of it arose as a result of the government's\nludicrous attempts to prevent summary of the case in the book. \n\n\n|>>|>You haven't any reason to believe that anything I've said has been reached\n|>>|>unquestioningly.\n|>>\n|>>Only most of what you write. \n|>\n|>For someone who purports to be opposed to argument from assertion, you\n|>certainly get by on assertions a lot.\n\nFunny I saw that as a rejection of an assertion that you had made. Of course in\nrejecting an assertion I have to make a contrary assertion, since this assertion\nis unprovable I left it at that. \n\nSo far I have not seen you demonstrate a command of the contrary opinion to your\nown. You are attacking my anti-censorship view because I dare to accept the\nvalidity of some pro-censorship arguments while rejecting their conclusions. \nPlus I am not an absolutist. I have this funny idea that the solution to this\nproblem was not decided in 1789 by a group of white male gentry in secret\nsession and sumarized in a single line. Furthermore I don't think that the\nissues are half as simple as you imply.\n\n|>>You may think that I am being anti-American in disallowing recourse to the\n|>>first ammendment. It's just that this argument has no currency in the parts\n|>>of the world where there is state censorship such as Iran, Kewait and Israel.\n|>\n|>I don't pretend to have geared my discourse for all conceivable audiences.\n\nI don't think that you have geered your discourse to any audience save that\nof proving that you are the only person wearing a white hat.\n\n\nPhill Hallam-Baker\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 377, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Daigle/Kariya\nOrganization: University of Toronto Chemistry Department\nLines: 15\n\nIn article <1qsmhtINNt5l@senator-bedfellow.MIT.EDU> ddlin@athena.mit.edu (David D Lin) writes:\n>I hear Daigle will eb the first pick next year. What is the word on Kariya???\n>Anybody ever seen him play on TV???? Is he also entering the draft???\n\nPeople are seeming to be less concerned about Kariya's size as he leads\nteams to championships (World Junior and US College) and collects\nawards...everyone is watching with interest as to how he will perform\non left wing with Eric Lindros and Mark Recchi at the world\nchampionships.\n\n4 months of go...chances were not very good that he would go in the\ntop five...now it has become probable...a great world championship\ncould put him in the top 3 with Daigle and Pronger.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 378, "properties": {"category": "comp.graphics", "text": "From: merlin@neuro.usc.edu (merlin)\nSubject: Tom Gaskins Pexlib vs Phigs Programming Manuals (O'Reilly)\nOrganization: University of Southern California, Los Angeles, CA\nLines: 24\nNNTP-Posting-Host: neuro.usc.edu\n\nCould someone explain the difference between Tom Gaskins' two books:\n\n  o  PEXLIB Programming Manual\n  o  PHIGS Programming Manual\n\nWhy would I want to buy one book vs the other book?  I have an 80386\nrunning SCO UNIX (X11R4) on my desktop, a SUN IV/360 in my lab, and \naccess to a variety of other systems (Alliant FX/2800, Cray Y/MP) on\nthe network.  Mostly, we would like to do 3D modeling/visualization\nof rat, rabbit, monkey, and human brain structure.\n\nThanks, AJ\n\n------------------------------------------------------------------------------\nAlexander-James Annala\nPrincipal Investigator\nNeuroscience Image Analysis Network\nHEDCO Neuroscience Building, Fifth Floor\nUniversity of Southern California\nUniversity Park\nLos Angeles, CA 90089-2520\n------------------------------------------------------------------------------\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 379, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: neff123@garnet.berkeley.edu (Stephen Kearney)\nSubject: Re: Is ms-windows a \"mature\" OS?\nOrganization: University of California, Berkeley\nLines: 10\nNNTP-Posting-Host: garnet.berkeley.edu\n\n>Why is it that I find the Mac desktop incredibly annoying \n>whenever I use it? \n\nBecause you are uptight?\n\nMany computer-literate people see advantages in each system.\n\nYou act like a Mac ate your cat.\n\nLighten up!\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 380, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: saeid@ug.cs.dal.ca (Saeid 'the last frontier')\nSubject: Sending a Null character across Ethernet\nNntp-Posting-Host: ug.cs.dal.ca\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 10\n\nI have a question regarding sending a NULL character across ethernet\nconnection. The actual problem is that emacs (Unix editior) needs\nthe NULL character for setting a mark and unfortunately we don't know\nhow to sent that from IBM PCs across ethernet. I am wondering if anyboy\nknows the keyboard combination for sending the NULL character. \nBTW control,shift 2 which Ctrl @ does not work.\n\nThanks\n\nSaeid\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 381, "properties": {"category": "comp.windows.x", "text": "From: atae@spva.ph.ic.ac.uk (Ata Etemadi)\nSubject: Please Ignore [Ideal Operating System (Was: DEATH BLOW TO UNIX)]\nNntp-Posting-Host: prawn.sp.ph\nOrganization: Imperial College of Science, Technology, and Medicine, London, England\nLines: 1\n\nWhoops!! Wrong group. Soooooooooooooooorry folks..\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 382, "properties": {"category": "comp.windows.x", "text": "From: rim@bme.ri.ccf.org (Robert M. Cothren)\nSubject: widget for displaying images\nNntp-Posting-Host: marvin\nOrganization: The Cleveland Clinic Foundation, Cleveland, OH\nDistribution: na\nLines: 12\n\nBefore I try to teach myself how to write a widget and (perhaps)\nre-invent the wheel...\n\nIs there a PD widget that displays (for example) an 8-bit grey-level\nimage in the same fashion that the Athena Plotter Widget can be used\nto display a plot?\n\n--\n----Robert M. Cothren, PhD--------------------------rim@bme.ri.ccf.org----\n    Department of Biomedical Engineering\n    The Cleveland Clinic Foundation                voice: 216 445-9305\n----Cleveland, Ohio----------------------------------fax: 216 444-9198----\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 383, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Re: proof of resurection\nOrganization: The Claremont Graduate School\nLines: 30\n\nIn article <Apr.20.03.01.50.1993.3776@geneva.rutgers.edu>, jcj@tellabs.com (jcj) writes:\n> In article <Apr.16.23.15.09.1993.1823@geneva.rutgers.edu> smayo@world.std.com (Scott A Mayo) writes:\n>>...\n>>I think Christianity goes down in flames if the resurrection is\n>>ever disproved. ...\n> \n> Didn't Paul write that if the Resurrection is not true, we are the\n> biggest fools of all?  However, whether you believe in Christ or not,\n> His teachings (e.g. love your brotherman as yourself), even if only \n> followed at a secular level, could do a great deal to alleviate some of \n> the problems we see today in the world.  Even when I was a rabid atheist \n> I couldn't deny that.\n> \n> Jeff Johnson\n> jcj@tellabs.com\n\nWe also cannot fail to note the intense suffering a devastation which has been\nwrecked on our world because of Christians -- who were certain they were\nfollowing Christ.  From Captialist who have polluted the enviorment in strict\nobedience to the Gensis command to subdue the earth, to Nazi's who have\n\"justly\"\npunished the Jews for the killing Christ (as well as the other progroms), the\ninnocent women who were burned alive in accordance with \"you shall not allow a\nwitch to live\", the Moslems who were killed in the Crusades, the god-fearing\nmen destroyed by the inquistion.  The religious wars in Spain, France, England,\netc.  Christianity has undoubtedly caused the most suffering and needless loss\nof life by individuals whose certainity that they were following the\ninstructions therein, was unquestionable.  There is much to grieve.\n\nrandy\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 384, "properties": {"category": "sci.space", "text": "From: claice@rintintin.Colorado.EDU (Farmer Ted)\nSubject: Re: Space Debris\nNntp-Posting-Host: rintintin.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 14\n\n> There is this buy at NASA Langley...\n\n\n\n\nYES! Give me his name I would greatly appreciate it.\n\n\n\nRich\n\n\"The Earth is a cradle of the mind.  But, we cannot live forever in a cradle\"\n                         K.E. Tsiolkovski \n\t\t\t Father of Russian Astronautics\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 385, "properties": {"category": "alt.atheism", "text": " cs.utexas.edu!uunet!olivea!sgigate!sgiblab!adagio.panasonic.com!nntp-server.caltech.edu!keith\nSubject: Re: <Political Atheists?\nFrom: keith@cco.caltech.edu (Keith Allan Schneider)\n <930401.112329.0u1.rusnews.w165w@mantis.co.uk> <11710@vice.ICO.TEK.COM>\nOrganization: California Institute of Technology, Pasadena\nNNTP-Posting-Host: lloyd.caltech.edu\nLines: 17\n\nbobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>  And in the US, even that argument doesn't stand.  It costs far\n>  more to execute a criminal in this country than it does to feed,\n>  clothe, and shelter them for the remainder of their natural life.\n>  Some people believe this is a fault of our judicial system.  I\n>  find it to be one of it's greatest virtues.\n\nI assume that you are talking about the appeals processes, etc.?\nWell, it should be noted that people who are imprisoned for life\nwill also tend to appeal (though not quite as much in the \"final\nhours.\"\n\nAnyway, economics is not a very good reason to either favor or oppose\nthe punishment.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 386, "properties": {"category": "sci.electronics", "text": "From: surfer@world.std.com (Internet Surfer)\nSubject: 6551A and 6551 compatibility\nOrganization: Boston Computer Society / ISIG\nLines: 10\n\nDoes any one know if the 6551 is timing/pin compatible with the 6551.. \nIt seems the 6551 has in iheirent bug with cts/rts handshaking and i need\na suitable pin replacement to put in my serial card... possibly a buffered\nversion perhaps?\n\n\n-- \njolt@gnu.ai.mit.edu\t      |    Its not impossible, just improbable\njohnp@pro.angmar.uucp         |            (Zaphod Beeblbrox)\nbl298@cleveland.freenet.edu   |   N1NIG@amsat.org (Being a Ham is so grand)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 387, "properties": {"category": "misc.forsale", "text": "From: coutsoft@cheshire.oxy.edu (Michael Coutsoftides)\nSubject: Sampler for Sale\nOrganization: Occidental College, Los Angeles, CA.  USA\nLines: 17\n\n\n\tOk people, I really need to sell this sampler to pay off bills, so\nI'm even going to include 3 sample cds worth at least 200 separately in\nthis deal.....\n\n\tIt's an Emax II with standard memory and 16 bit stereo sampling\n\tIt's rackmount and has at least 24 voice pol., It's got a brand new\n\tConnor (sp.?) 170 meg internal scsi drive (4 wk old, never used) \n\tit works perfect and runs perfect. In addition access to a friends\n\tsound library of over 1gig of sounds is available... All this for \n\tonly $1600.. The sample cd's are based on dance/house/techno stuff.\n\nEmail or call 213-341-4425\nthanks\n\nMike\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 388, "properties": {"category": "alt.atheism", "text": "From: dgraham@bmers30.bnr.ca (Douglas Graham)\nSubject: Re: Jews can't hide from keith@cco.\nOrganization: Bell-Northern Research, Ottawa, Canada\nLines: 40\n\nIn article <1pqdor$9s2@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>In article <1993Apr3.071823.13253@bmerh85.bnr.ca>, dgraham@bmers30.bnr.ca (Douglas Graham) writes:\n>The poster casually trashed two thousand years of Jewish history, and \n>Ken replied that there had previously been people like him in Germany.\n\nI think the problem here is that I pretty much ignored the part\nabout the Jews sightseeing for 2000 years, thinking instead that\nthe important part of what the original poster said was the bit\nabout killing Palestinians.  In retrospect, I can see how the\nsightseeing thing would be offensive to many.  I originally saw\nit just as poetic license, but it's understandable that others\nmight see it differently.  I still think that Ken came on a bit\nstrong though.  I also think that your advice to Masud Khan:\n\n  #Before you argue with someone like Mr Arromdee, it's a good idea to\n  #do a little homework, or at least think.\n\nwas unnecessary.\n\n>That's right.   There have been.    There have also been people who\n>were formally Nazis.   But the Nazi party would have gone nowhere\n>without the active and tacit support of the ordinary man in the\n>street who behaved as though casual anti-semitism was perfectly\n>acceptable.\n>\n>Now what exactly don't you understand about what I wrote, and why\n>don't you see what it has to do with the matter at hand?\n\nThroughout all your articles in this thread there is the tacit\nassumption that the original poster was exhibiting casual\nanti-semitism.  If I agreed with that, then maybe your speech\non why this is bad might have been relevant.  But I think you're\nreading a lot into one flip sentence.  While probably not\ntrue in this case, too often the charge of anti-semitism gets\nthrown around in order to stifle legitimate criticism of the\nstate of Israel.\n\nAnyway, I'd rather be somewhere else, so I'm outta this thread.\n--\nDoug Graham         dgraham@bnr.ca         My opinions are my own.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 389, "properties": {"category": "sci.med", "text": "From: Isabelle.Rosso@Dartmouth.edu (Isabelle Rosso)\nSubject: Hunchback\nX-Posted-From: InterNews 1.0b15@dartmouth.edu\nOrganization: Dartmouth College \nLines: 14\n\nI have a friend who has a very pronounced slouch of his upper back. He\nalways walks and sits this way so I have concluded that he is\nhunchback.\nIs this a genetic disorder, or is it something that people can correct.\ni.e. is it just bad posture that can be changed with a bit of will\npower?\n\n\n\n\n\nIsabelle.Rosso@Dartmouth.edu\n          \n     \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 390, "properties": {"category": "talk.religion.misc", "text": "From: ray@netcom.com (Ray Fischer)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Netcom. San Jose, California\nLines: 25\n\nfrank@D012S658.uucp (Frank O'Dwyer) writes ...\n>Plus questions for you:  why do subjectivists/relativists/nihilists get so \n>het up about the idea that relativism is *better* than objectivism? \n\nTo the degree that relativism is a more accurate decription of the\ntruth than is objectivism, it provides more power and ability to\ncontrol events.\n\nAssuming, for the moment, that morals _are_ relative, then two\nrelativists can recognize that neither has a lock on the absolute\ntruth and they can proceed to negotiate a workable compromise that\nproduces the desired results.\n\nAssuming that there is an absolute morality, two disagreeing \nobjectivists can either be both wrong or just one of them right; there\nis no room for compromise.  Once you beleive in absolute morals,\nyou must accept that you are amoral or that everyone who disagrees\nwith you is amoral.\n\nGiven a choice between a peaceful compromise or endless contention,\nI'd say that compromise seems to be \"better\".\n\n-- \nRay Fischer                   \"Convictions are more dangerous enemies of truth\nray@netcom.com                 than lies.\"  -- Friedrich Nietzsche\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.020+0000", "event": "documents", "entityId": 391, "properties": {"category": "comp.graphics", "text": "From: renes@ecpdsharmony.cern.ch (Rene S. Dutch student)\nSubject: InterViews graphics package\nOrganization: CERN European Lab for Particle Physics\nLines: 7\n\n\nHello,\n\nI'm trying out the C++ graphics package InterViews. Besides the man pages\non the classes, I haven't got any documentation. Is there anything else\naround? Furthermore, can anyone send me a (small!) example program\nwhich shows how to use these classes together ? I would be very gratefull...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 392, "properties": {"category": "sci.electronics", "text": "Subject: Re: Can Microwaves Be Used To Collect XYZ Coordinates\nFrom: ganter@ifi.unibas.ch (Robert Ganter)\nOrganization: Institut fuer Informatik\nNntp-Posting-Host: schroeder.ifi.unibas.ch\nLines: 63\n\nIn article <1993Apr15.103953.66252@cc.usu.edu>  writes:\n> In article <C5Hs5J.AG7@bcstec.ca.boeing.com>, rgc3679@bcstec.ca.boeing.com  \n(Robert G. Carpenter) writes:\n> \n> |> It seems reasonable to me that a microwave transmitter-receiver setup  \ncould \n> |> do the job. For example, say you want to map an acre lot, it'd be  \nconvenient\n> |> to place MW transmitters around the lot's periphery (either 2 or 3) and  \nthen\n> |> carry a hand-held recorder and walk to a point on the lot, press a button  \nand\n> |> the coords of the recorder's location is stored as digital data.\n> |> \n> |> What's the chance of this working? Any systems like this already exist?\n> |> What kind of accuracy could you expect? What would something like this\n> |> cost to prototype? Is there a better alternative than microwaves?\n> \n> Of course you could develope this system, but there is already a system  \ncalled Global\n> Positioning Satellites.  It gives three dimensional coordinates anywhere on  \nearth. \n> Many surveyors use this system with a differential receiver/transmitter to  \nget\n> coordinates within centimeters.  Basic receivers with resolution of a few  \nmeters (on\n> a good day) are available from many sources.\n> \n> \n> -- \n> WMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMW\n> \n>   \\_      \\_  \\_\\_\\_    \\_\\_\\_               Weston R Beal\n>    \\_      \\_  \\_    \\_  \\_    \\_         sldf3@sol.ee.usu.edu\n>     \\_  \\_  \\_  \\_\\_\\_    \\_\\_\\_            sldf3@cc.usu.edu\n>      \\_\\_  \\_\\_  \\_  \\_    \\_    \\_       Electrical Engineer\n>       \\_      \\_  \\_    \\_  \\_\\_\\_       Utah State University\n> \n>   \"That's the wonderful thing about crayons; they can take you to\n>    more places than a starship can.\"    - Guinon\n> \n> \n\nThought it means Global Positioning System. There are two precision levels, one  \nfor army applications (killing has to be very accurate today) and one for civil  \nones. The civil precision is about 20 to 30m (correct me, if I'm wrong),  \nthough, it may be insufficiant for mapping buildings. But there is a way with  \nan additional reference point (e.g. one fixed GPS system in a house) to get the  \nsame high precision as the military version, but it gets pretty complicated  \nthen. If You use a microwave system (actually this means some type of radar),  \nYou need quite a lot of number crunching to get accurate vectorized data out of  \nYour original signals. So the GPS system seems to be the better (and running)  \nidea for Your application(there have been discussions in this newsgroup, don't  \nknow of an address anymore).\n\nCheers    Robert   (HB9NBY) \n--\nRobert Ganter\t\t\t/------------\\\nUniversitaet Basel\t\t| I am a fan |\nInstitut fuer Informatik\t| of my plan |\nBasel/Switzerland\t\t\\------------/\nganter@ifi.unibas.ch\namateurradio: HB9NBY\tpacket: HB9NBY@HB9EAS.CHE.EU\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 393, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: HLV for Fred (was Re: Prefab Space Station?)\nArticle-I.D.: iti.1993Apr6.124456.14123\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 22\n\nIn article <C5133A.Gzx@news.cso.uiuc.edu> jbh55289@uxa.cso.uiuc.edu (Josh Hopkins) writes:\n\n>>[Titan III is the cheapest US launcher on a $/lb basis]\n\n>In that case it's rather ironic that they are doing so poorly on the commercial\n>market.  Is there a single Titan III on order?\n\nThey have a few problems. The biggest technical problem is the need to find\ntwo satellites going to the same rough orbit for a luanch.\n\nThey also don't show much interest in commercial launches. There is more\nmoney to be made churning out Titan IV's for the government. After all,\nit isn't every day you find a sucker, er, customer who thinks paying\nthree times the commercial rate for launch services is a good idea!\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Allen W. Sherzer | \"A great man is one who does nothing but leaves        |\n|  aws@iti.org     |  nothing undone\"                                       |\n+----------------------71 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 394, "properties": {"category": "sci.electronics", "text": "From: monta@image.mit.edu (Peter Monta)\nSubject: Re: MC SBI mixer\nIn-Reply-To: musone@acsu.buffalo.edu's message of 19 Apr 93 21:10:14 GMT\nOrganization: MIT Advanced Television Research Program\nLines: 24\n\nmusone@acsu.buffalo.edu (Mark J. Musone) writes:\n\n> P.S. any REALLY GOOD BOOKS on AM/FM theory ALONG WITH DETAILED\n> ELECTRICAL DIAGRAMS would help a lot.\n> I have seen a lot of theory books with no circuits and a lot of\n> circuit books with no theory, but one without the other does not help.\n\nMixers have a wide variety of implementations; the Mini-Circuits\npart you mention is a doubly-balanced diode mixer, but active ones\n(BJT, FET) seem more popular in consumer receivers.  You might\ncall MCL; they have a nice catalog.\n\nThe universal answer for wide-coverage, theory+practice, RF design\nis the _ARRL Handbook_, published by the American Radio Relay\nLeague, the radio amateur organization.  Any technical bookstore\ncan order you one.  The book is superb, with lots of accessible\ntheory, construction projects, and generally interesting stuff.\n\nYou might also check out _Solid State Design for the Radio Amateur_\n(I think), by Hayward and <someone>.  This has sharper design\nand test information about subsystems like mixers.\n\nPeter Monta   monta@image.mit.edu\nMIT Advanced Television Research Program\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 395, "properties": {"category": "rec.sport.baseball", "text": "From: gspira@nyx.cs.du.edu (Greg Spira)\nSubject: Re: Candlestick Park experience (long)\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 19\n\ncraige@sad.hp.com (Craig Eid) writes:\n\n>These things should have been done a long time ago, but it took a real \n>businessman (ex - Safeway President Peter Magowan) to figure it out. Just \n>like he used to tell his checkers, \"If the customers don't come back, I don't\n>need as many checkers\". This isn't a knock on Bob Lurie - he was a competent\n>businessman but he didn't deal much with the general public.\n\nInteresting article, Craig.  It's amazing how hard it is to get baseball\nteams to understand how to properly market their teams and treat their\ncustomers.  No other business could ever get away with the 19th century \nattitudes that most current owners display in running their clubs.  I guess the\nowners look at baseball's high growth rate and ask why it's necessary\nto bring 20th century business practices into the game, but they don't\nrealize how much more growth the game is capable of and how much they\npay in terms of long-term popularity by not doing better by the game\nand its fans.\n\nGreg \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 396, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: So far so good\nOrganization: Indiana University\nLines: 58\n\nIn article <Apr.19.05.13.16.1993.29204@athos.rutgers.edu> armstrng@cs.dal.ca (Stan Armstrong) writes:\n>In article <C4z5u3.Jxo@spss.com> luomat@alleg.edu writes:\n>>\n>>This may be a really dumb one, but I'll ask it anyways:\n>>\tChristians know that they can never live up to the requirements of  \n>>God, right? (I may be wrong, but that is my understanding)  But they still  \n>>try to do it.  Doesn't it seem like we are spending all of our lives  \n>>trying to reach a goal we can never achieve?  I know that we are saved by  \n>>faith and not by works, but does that mean that once we are saved we don't  \n>>have to do anything?  I think James tells us that Faith without works is  \n>>dead (paraphrase).  How does this work?\n>>\n>So long as we think that good things are what we *have* to do rather than\n>what we come to *want* to do, we miss the point. The more we love God; the\n>more we come to love what and whom He loves.\n>\n>When I find that what I am doing is not good, it is not a sign to try\n>even harder (Romans 7:14-8:2); it is a sign to seek God. When I am aware \n>of Jesus' presence, I usually want what He wants. It is His strenth, His love \n>that empowers my weakness.\n>-- \n>Stan Armstrong. Religious Studies Dept, Saint Mary's University, Halifax, N.S.\n>Armstrong@husky1.stmarys.ca | att!clyde!watmath!water!dalcs!armstrng\n\nI apologize to the moderator, but the first quote was deleted and I\nwould like to respond to both.\n\nAs for the \"goal we can never achieve\", the reward comes from the\ntrying.  Paul makes a clear claim that we are to continue straining for\nthe prize over in Philippians 3:10-16.  Only by not living out the\ncommands do we stagnate and become lukewarm, to be spit out by Jesus.\nAs it says in 1 John 5:3:  \"This is love for God:  to obey his comands.\"\nThat obedience is our straining to achieve for God.  Of course, this\nrequires work on our part.\n\nAs for the quote in James, Satan doesn't care what we believe.  What\nmatters is the results of our belief (works).  If one truly has faith in\nwhat one believes, one will either act on that faith or be lying to\noneself about believing in the first place.  \n\nStan, as for your first line, you have a very good point.  Obedience by\nobligation (grudgery) is not what God desires.  Instead, look at how\nmany times the Bible talks about being joyous in all situations and when\ndoing God's work.  Being begrudged by the work has no value.  Also, we\nshould do the work necessary whenever we can, not just when we feel\nJesus' presence.  Feelings can deceive us.  However, as Paul states to\nTimothy in 2 Timothy 4:2:  \"Preach the Word; be prepared in season and\nout of season; correct, rebuke and encourage--with great patience and\ncareful instruction.\"  Also, remember that Paul tells Timothy in 1\nTimothy 4:16:  \"Watch your life and doctrine closely.  Persevere in\nthem, because if you do, you will save both yourself and your hearers.\"\nSo, in order to do the work necessary, we need to be sure that we are\ncorrect first.  Remember Jesus' warning in Matthew 7:3-5 not to be\nhypocritical about what we do.  The best way to accomplish this is to be\na disciple completely in both thought and deed.  \n\nJoe Fisher\n \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 397, "properties": {"category": "comp.graphics", "text": "From: gwang@magnus.acs.ohio-state.edu (Ge Wang)\nSubject: Packages for Fashion Designers?\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 3\n\nHello, I am looking for commercial software packages for professional\nfashion designers.  Any recommendation and pointers are greatly appreciated.\nPlease e-mail me, if you may.  Thanks a million.  -- Ge\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 398, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rmohns@vax.clarku.edu\nSubject: RE: Can I Change \"\"Licensed To\"\" Data in Windows 3.1?\nOrganization: Clark University\nLines: 15\n\nThis is in relation to a question concerning changing the registered to: \ninformation of MS-Windows...\n\nIn a previous article, 2a42dubinski@vms.csd.mu.edu wrote:\n> \n>\tahh, yes, this is a fun topic.  No, once the name is incribed on the\n>disk, that is it, it is encoded.  Not even a HEX editor will find it.  You can\n>write over the \"Licensed to:\", but you can't change the name underneth it.  I\n\nI can find it with a HEX editor, although I have not tried to overwrite it.\nAre you sure it can't be?  You may be mistaken about this. (???)\n\nRob\n\nrmohns@vax.clarku.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 399, "properties": {"category": "talk.politics.misc", "text": "From: arf@genesis.MCS.COM (Jack Schmidling)\nSubject: Re: NEWS YOU MAY HAVE MISSED, 3/23\nArticle-I.D.: genesis.1pqfbd$e6b\nOrganization: MCSNet Contributor, Chicago, IL\nLines: 23\nNNTP-Posting-Host: localhost.mcs.com\n\nIn article <1pprtvINNctl@aludra.usc.edu> sgoldste@aludra.usc.edu (Fogbound Child) writes:\n>arf@genesis.MCS.COM (Jack Schmidling) writes:\n>\n>>In article <1993Apr1.164804.1105@Rapnet.Sanders.Lockheed.Com> babb@k2 (Scott Babb) writes:\n>>>Jack Schmidling (arf@genesis.MCS.COM) wrote:\n>>>: jac2y@Virginia.EDU (Jonathan A. Cook <jac2y>) writes:\n>>>: : \n>\n>[...]\n>\n>>>Why do you restrict your condemnation of racial strife to Israel?\n>>>Do the situations in Bosnia, Tibet, China, etc. not merit your comment?\n>\n>>As far as I am aware, we have not sent close to $100 billion dollars to\n>\t\t\t\t\t\t  ^^^\n>\t\t\t\tLet's not exaggerate.\n\n\nI notice you did not offer an alternative number.  Try this one on for\nsize..... by the year 2000, American taxpayers will have given Israel\none dollar for every star in the Milky Way Galaxy.\n\nI will let you look up the number.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 400, "properties": {"category": "rec.sport.baseball", "text": "From: gspira@nyx.cs.du.edu (Greg Spira)\nSubject: Re: Braves Pitching UpdateDIR\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 28\n\ngrabiner@math.harvard.edu (David Grabiner) writes:\n\n>In article <C5L40C.9LC@murdoch.acc.Virginia.EDU>, David Robert Walker writes:\n\n>> In article <8994@blue.cis.pitt.edu> traven@pitt.edu (Neal Traven) writes:\n\n>>>One also has to separate offense into batting and baserunning, with the\n>>>split probably somewhere around 49.5% and 0.5%.\n\n>> I'd give baserunning a little more credit than that, maybe 45-5, or\n>> even 40-10. Give a team of Roberto Alomar and a team of John Oleruds\n>> identical batting stats (which wouldn't be that unreasonable), and\n>> even if you don't let Roberto steal a single base, they'll score a lot\n>> more than the Oleruds by going first-to-third more often. (No offense,\n>> Gordon).\n\n>I wouldn't give baserunning that much value.\n\nI meant to comment on this at the time.\n\nThere's just no way baserunning could be that important - if it was,\nruns created wouldn't be nearly as accurate as it is.  \n\nRuns Created is usually about 90-95% accurate on a team level, and\nthere's a lot more than baserunning that has to account for the\nremaining percent.\n\nGreg \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 401, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mantolov@golum.riv.csu.edu.au (Michael Antolovich)\nSubject: Re: Ethernet card that uses A/Rose?\nOrganization: Charles Sturt University - Riverina, Wagga Wagga, NSW, Australia\nLines: 11\n\nIn article <aaron_bratcher-140493082909@fpm-mac-1.uchicago.edu> aaron_bratcher@fpm.uchicago.edu (Aaron Bratcher) writes:\n>Does anyone know if there is an ethernet card that takes advantage of the\n>A/Rose extension?\n\n\tHey what does the A/Rose extension do anyway ?\n\t\t\t\t\t\t\tMichael\n-- \n        ________________________________________________________________\n        \\ Michael Antolovich in Wagga Wagga, a great place to be be... /\n         \\  mantolovich@csu.edu.au OR antolovich@zac.riv.csu.edu.au   /\n          \\__________________________________________________________/\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 402, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES (Henrik)\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 93\n\nIn article <1993Apr20.110021.5746@kth.se> hilmi-er@dsv.su.se (Hilmi Eren) \nresponsed to henrik@quayle.kpc.com who wrote:\n\n\n[h] \tThe Armenians in Nagarno-Karabagh are simply DEFENDING their RIGHTS\n[h]        to keep their homeland and it is the AZERIS that are INVADING their \n[h]        territorium...\n\t\n[HE]\tHomeland? First Nagarno-Karabagh was Armenians homeland today\n[HE]\tFizuli, Lacin and several villages (in Azerbadjan)\n[HE]\tare their homeland. Can't you see the\n[HE]\tthe  \"Great Armenia\" dream in this?\n\nGreater Armenia would stretch from Karabakh, to the Black Sea, to the\nMediterranean, so if you use the term \"Greater Armenia\" use it with care.\n\n[HE]    With facist methods like\n[HE]\tkilling, raping and bombing villages. The last move was the \n[HE]\tblast of a truck with 60 kurdish refugees, trying to\n[HE]\tescape the from Lacin, a city that was \"given\" to the Kurds\n[HE]\tby the Armenians. \n\nIt has always been up to the Azeris to end their announced winning of Karabakh \nby removing the Armenians! When the president of Azerbaijan, Elchibey, came to \npower last year, he announced he would be be \"swimming in Lake Sevan [in \nArmeniaxn] by July\". Well, he was wrong! If Elchibey is going to shell the \nArmenians of Karabakh from Aghdam, his people will pay the price! If Elchibey \nis going to shell Karabakh from Fizuli his people will pay the price! If \nElchibey thinks he can get away with bombing Armenia from the hills of \nKelbajar, his people will pay the price. \n\nIt also seems other non-Azeri minorities in Azerbaijan have understood they\nare next in line in this process of forced Azerification or deportation. Just \nlook at the situation with the Lezgians.\n\nAbout the Kurds...what Kurds! According to the Azerbaijani government, there \nare no Kurds in Azerbaijan. Can't they make up their minds? Oh I see, there \nare only Kurds when the Azeris want them to be Kurds! And anyway, this \"60 \nKurd refugee\" story, as have other stories, are simple fabrications sourced in \nBaku, modified in Ankara. Other examples of this are Armenia has no border \nwith Iran, and the ridiculous story of the \"intercepting\" of Armenian military \nconversations as appeared in the New York Times supposedly translated by \nsomebody unknown, from Armenian into Azeri Turkish, submitted by an unnamed \n\"special correspondent\" to the NY Times from Baku. Real accurate!\n\n[h]       However, I hope that the Armenians WILL force a TURKISH airplane \n[h]       to LAND for purposes of SEARCHING for ARMS similar to the one\n[h]       that happened last SUMMER. Turkey searched an AMERICAN plane\n[h]       (carrying humanitarian aid) bound to ARMENIA.\n[h]\n\nNo, Henrik, these Turkish planes should be shot down with no questions asked.\n\n[HE]\tDon't speak about things you don't know: 8 American Cargo planes\n[HE]\twere heading to Armenia. When the Turkish authorities\n[HE]\tannounced that they were going to search these cargo \n[HE]\tplanes 3 of these planes returned to it's base in Germany.\n[HE]\t5 of these planes were searched in Turkey. The content of\n[HE]\tof the other 3 planes? Not hard to guess, is it? It was sure not\n[HE]\thumanitarian aid.....\n\nYour \"facts\" in error. Shipments of all kinds that have transversed Turkey \nhave been either searched, re-routed or confiscated. Some American planes\nwere searched, others were re-routed, others were untouched. Rail shipments \nwere held up last fall and last winter from entering Armenian from Turkey\nfor the purpose of aiding in the economic collapse of Armenia. Wheat was\nconfiscated, other shipments were exchanged with \"crap\" and dirt, then\nshipped to Armenia. U.S. planes don't have to use Turkish air bases. The U.S.\nuses these bases to bomb Iraq. Anyway, U.S. planes can fly over Georgia, which\nthey have found is easier than to endure unnecessary expressions of Turkish \nchauvinism through searches of cargo which to this day have not revealed \nanything other than a paranoid Turkish military. \n\n[HE]\tSearch Turkish planes? You don't know what you are talking about.\n[HE]\tsince it's content is announced to be weapons? \n\nWell, big mouth Ozal said military weapons are being provided to Azerbaijan\nfrom Turkey, yet Demirel and others say no. No wonder you are so confused!\n\n[HE]\tTurkey's government has announced that it's giving weapons\n[HE]\tto Azerbadjan since Armenia started to attack Azerbadjan\n[HE]\tit self, not the Karabag province. So why search a plane for weapons\n[HE]\tsince it's content is announced to be weapons? \n\nYou are correct, all Turkish planes should be simply shot down! Nice, slow\nmoving air transports!\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 403, "properties": {"category": "comp.windows.x", "text": "From: jlu@cs.umr.edu (Eric Jui-Lin Lu)\nSubject: info wanted: X security holes\nNntp-Posting-Host: next2.cs.umr.edu\nOrganization: University of Missouri - Rolla\nLines: 22\n\nHi *,\n\nHas anyone out there compile a list of X security holes??  If\nyes, will you please send me a copy of this??  If this is a\nwrong group, please point me to a right one.  Thanks!!\n\nBTW, the list doesn't have to contain the info \"How to use\nthe holes?\".  Instead, I need the info of how to detect\nthe holes, how to seal the holes, and how to monitor the \nactivities if possible.\n\nAny info is welcomed.  Thanks!!\n\n\n  --Eric\n\n\n-- \n***************************************---       Grad. student          ---*\n* Obviousness is always the enemy of  *   \\     Jui-Lin Lu (Eric)      /   *\n* correctness.  -- Bertrand Russell   *   /      jlu@cs.umr.edu        \\   *\n***************************************---   Univ. of Missouri-Rolla    ---*\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 404, "properties": {"category": "rec.sport.baseball", "text": "From: random@access.digex.com (Random)\nSubject: Scott Erickson\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 3\nDistribution: usa\nNNTP-Posting-Host: access.digex.net\n\nDoes anyone have the scoop on Scot Erickson?  How long is he going to be\nout for?\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 405, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mlin@pdx222.NoSubdomain.NoDomain (Ming T. Lin)\nSubject: WORD = BYTE ??\nReply-To: mlin@ichips.intel.com\nOrganization: Workgroup Computing Division, PDX, Intel\nLines: 15\n\n\n    I just moved from Borland C++ 3.0 to Visual C++ today. When I tried\nto compile my C++ program, it complained a function prototype problem.\nIt turned out that the typedef WORD in MS C++ is a BYTE, not unsigned int.\n\n    Could anyone shine some light on this subject ? Why a WORD is a BYTE ?\n\n\n-Ming T. Lin\n\n\n---------------------------------------------------------------------------\nmlin@ichips.intel.com\n(503) 696-4806\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 406, "properties": {"category": "talk.politics.mideast", "text": "From: benali@alcor.concordia.ca ( ILYESS B. BDIRA )\nSubject: Re: The Israeli Press\nNntp-Posting-Host: alcor.concordia.ca\nOrganization: Concordia University, Montreal, Canada\nLines: 41\n\nbc744@cleveland.Freenet.Edu (Mark Ira Kaufman) writes:\n\n\n...\n>for your information on Israel.  Since I read both American media\n>and Israeli media, I can say with absolute certainty that anybody\n>who reliesx exclusively on the American press for knowledge about\n>Israel does not have a true picture of what is going on.\n\nOf course you never read Arab media,\n\nI read Arab, ISRAELI (Jer. Post, and this network is more than enough)\nand Western (American, French, and British) reports and I can say\nthat if we give Israel -10 and Arabs +10 on the bias scale (of course\nyou can switch the polarities) Israeli newspapers will get either\na -9 or -10, American leading  newspapers and TV news range from -6\nto -10 (yes there are some that are more Israelis than Israelis)\nThe Montreal suburban (a local free newspaper) probably is closer\nto Kahane's views than some Israeli right wing newspapers, British\nrange from 0 (neutral) to -10, French (that Iknow of, of course) range\nfrom +2 (Afro-french magazines) to -10, Arab official media range from\n0 to -5 (Egyptian)  to +9 in SA. Why no +10? Because they do not want to\noverdo it and stir people against Israel and therefore against them since \nthey are doing nothing.\n\n \n>   As to the claim that Israeli papers are biased, of course they\n>are.  Some may lean to the right or the left, just like the media\n>here in America.  But they still report events about which people\n>here know nothing.  I choose to form my opinions about Israel and\n>the mideast based on more knowledge than does an average American\n>who relies exclusively on an American media which does not report\n>on events in the mideast with any consistency or accuracy.\n\nthe average bias of what you read would be probably around -9,\nwhile that of the average American would be the same if they do\nnot read or read the new-york times and similar News-makers, and\n-8 if they read some other RELATIVELY less biased newspapers.\n\nso you are not better off.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 407, "properties": {"category": "sci.space", "text": "From: will@rins.ryukoku.ac.jp (William Reiken)\nSubject: Re: nuclear waste\nOrganization: Ryukoku Univ., Seta, Japan\nLines: 4\n\n\n\tThanks for the Update.\n\n\t\t\t\t\t\t\tWill...\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 408, "properties": {"category": "comp.graphics", "text": "From: eylerken@stein.u.washington.edu (Ken Eyler)\nSubject: stand alone editing suite.\nArticle-I.D.: shelley.1qvkaeINNgat\nDistribution: world\nOrganization: University of Washington, Seattle\nLines: 12\nNNTP-Posting-Host: stein.u.washington.edu\n\nI need some help.  We are upgrading our animation/video editing stand. We\nare looking into the different type of setups for A/B roll and a cuts only\nstation.  We would like this to be controlled by a computer ( brand doesnt matter but maybe MAC, or AMIGA).  Low end to high end system setups would be very\nhelpful. If you have a system or use a system that might be of use, could you\nmail me your system requirements, what it is used for, and all the hardware and\nsoftware that will be necessary to set the system up.  If you need more \ninfo, you  can mail me at   eylerken@u.washington.edu\n\nthanks in advance.\n\n:ken\n:eylerken@u.washington.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 409, "properties": {"category": "alt.atheism", "text": "From: bcash@crchh410.NoSubdomain.NoDomain (Brian Cash)\nSubject: Re: I don't beleive in you either.\nNntp-Posting-Host: crchh410\nOrganization: BNR, Inc.\nLines: 9\n\nIn article <1993Apr13.213055.818@antioc.antioch.edu>, smauldin@antioc.antioch.edu writes:\n|> I stopped believing in you as well, long before the invention of technology.\n|> \n|> --GOD\n|> \n\nAhhh go back to alt.autotheism where you belong!\n\nBrian /-|-\\\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 410, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: thoughts on christians\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 19\n\nIn article <ofnWyG600WB699voA=@andrew.cmu.edu> pl1u+@andrew.cmu.edu (Patrick C Leger) writes:\n>EVER HEAR OF\n>BAPTISM AT BIRTH?  If that isn't preying on the young, I don't know what\n>is...\n>\n  \n  No, that's praying on the young.  Preying on the young comes\n  later, when the bright eyed little altar boy finds out what the\n  priest really wears under that chasible.\n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 411, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wow@cup.portal.com (wallace otis waggoner)\nSubject: Hayes JT FAX card for sale $125\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 4\n\nI have a like new Hayes JT FAX for sale $125 or offer or trade!\n\nWally Waggoner\nwow@cup.portal.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 412, "properties": {"category": "sci.med", "text": "Subject: Need Help in Steroid Research\nFrom: tthomps@eis.calstate.edu (Thomas Thompson)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 8\n\n     I am doing a term paper on steroids, actually the scientist who\nhelped crate the drug. I discovered that Joseph Fruton is one of the\nresearchers who helped create anabolic steroids. The only information on \nthis person I know is he was a biochemist that did research in the 1930's.\nI already did research at my local libraries, but I still need more\ninformation. My instructor is requiring resources from the computer\nnetworks. Please write back concerning my subject, any books, articles,\netc., will be appreciated.  \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 413, "properties": {"category": "sci.med", "text": "From: Nigel@dataman.demon.co.uk (Nigel Ballard)\nSubject: Re: Adult Chicken Pox \nDistribution: world\nOrganization: Infamy Inc.\nReply-To: Nigel@dataman.demon.co.uk\nX-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)\nLines: 19\n\n\n>I am 35 and am recovering from a case of Chicken Pox which I contracted\n>from my 5 year old daughter.  I have quite a few of these little puppies\n>all over my bod.  At what point am I no longer infectious?  My physician's\n>office says when they are all scabbed over.  Is this true?\n\nI have been in the same boat as you last year. I've tried four times to\nsend you an email response, but your end doesn't seem to accept my mail?\nPlease let me know if you receive this.\n\nCheers Nigel\n\n   ************************************************************************\n   * NIGEL BALLARD  | INT: nigel@dataman.demon.co.uk  |    VACANT LOT     *\n   * BOURNEMOUTH UK | CIS: 100015.2644   RADIO-G1HOI  |     FOR RENT      *\n   ************************************************************************\n                           DIARIES OF THE FAMOUS...\n     Colonel Custer...Surrounded by Indians, just when I fancied a Chinese!\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.021+0000", "event": "documents", "entityId": 414, "properties": {"category": "sci.crypt", "text": "From: smk5@quads.uchicago.edu (Steve Kramarsky)\nSubject: Re: Hard drive security for FBI targets\nKeywords: cooperation\nReply-To: smk5@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 34\n\nIn article <Apr13.011855.69422@yuma.ACNS.ColoState.EDU> holland@CS.ColoState.EDU (douglas craig holland) writes:\n>I'm not a lawyer, so correct me if I'm wrong, but doing that could be\n>considered obstruction of justice, which could land you in prison for\n>quite a while.\n>\n>The thing that's great about the secret key is it is IDEA encrypted, so\n>even if the FBI do get the key, they're SOL unless they know the magic\n>word.  If they try to force you to give them your pass phrase, just say\n>\"Oops, I forgot.\"  Since the burden of proof is still on the prosecution\n>in this country, if you keep your mouth shut, how can they prove that you\n>didn't forget your pass phrase.\n>\n  OK, Doug is right, it would be obstruction of justice, blah blah blah,\nBUT, saying \"I forgot\" is a lie, which is just as bad from a moral point\nof view _IF_ you think \"lawfulness\" is a good in and of itself (which \nadmittedly most people do not.)  But there's an even better way out of this.\nPROVIDED the government is prosecuting you criminally, you can probably\nplead the fifth amendmeent and thus LEGALLY avoid revealing your key.  The\ngovernment cannot demand information from a criminal defendant which \"may\ntend to incriminate\" that defendant.  Though this has never been applied\nin the cryptography context (at least as far as I can tell) it seems an\nobvious application to me.  \n\n This may be a common suggestion in this group, but if it's not (I'm new\nhere) I'd love to hear what people have to say about it.  Since I don't\nreally read this group (and since the subject matter is more legal than\ncryptoid) maybe misc.legal.computing would be an appropriate place?\n\n  Steve.\n\n-- \n            Steve Kramarsky, University of Chicago Law School\n           steve@faerie.chi.il.us -or- smk5@quads.uchicago.edu \n     \"All I did was kiss a girl.\" - Jake, the night before his hanging.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 415, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: nghiah@extro.ucc.su.OZ.AU (Nghia Huynh)\nSubject: Apple hard disk drive?\nNntp-Posting-Host: extro.ucc.su.oz.au\nOrganization: /etc/organization\nLines: 15\n\n\n\tJust wanted to ask a question. I bought a hard disk drive second-hand\nthe other day, and I opened the packaging up and saw that there was a small\nsticker on the drive that had a little red apple with a bite taken out of it.\nIt's socket did not look the same as my existing hard disk that is in my\ncomputer already (it has fifty little pins sticking out from it instead of\nthe 39 that is sticking out of my old hard disk.\nI don't know if disk drives for the Apple (or Mac) are different from ones\nused in AT clones, so could someone tell me if I could use this hard disk\non my AT clone? If not, what did I just purchase? It's a Quantum Prodrive.\nIt's dated 1988 on the green board. Will I need a controller/add-in card?\nAll the help is much appreciated. Thanks! :)\n\n\nPC\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 416, "properties": {"category": "soc.religion.christian", "text": "From: Rick_Granberry@pts.mot.com (Rick Granberry)\nSubject: Pastoral Authority\nReply-To: Rick_Granberry@pts.mot.com (Rick Granberry)\nOrganization: Motorola Paging and Telepoint Systems Group\nLines: 17\n\nThere is some controversy in my denomination as to what authority is vested \nin the pastor.  I am still forming my opinion.  I am solicing opinions, and \nreferences for what that is, how much, and how it should be used.\n\n   As a general reference, I would not exclude responses from different \ndenominations based on Biblical teachings, but you have to understand our \nchurch is independent, protestant and likely to be much different from those \nthat follow ecclesiastical authority in the church.  We may need to discuss \nthe roles of deacons and elders.\n\nThanks for your replies.\n\n\n\n| \"Answer not a fool according to his folly, lest thou also be like unto him.\" |\n| \"Answer a fool according to his folly, lest he be wise in his own conceit.\"  |\n| (proverbs 26:4&5)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 417, "properties": {"category": "comp.graphics", "text": "From: billj@b11.b11.ingr.com (Bill Jones)\nSubject: Re: Need specs/info on Apple QuickTime\nKeywords: quicktime\nOrganization: Intergraph Corp. Huntsville, AL\nLines: 16\n\nadd@sciences.sdsu.edu (James D. Murray) writes:\n\n>I need to get the specs, or at least a very verbose interpretation of the\n>specs, for QuickTime.  Technical articles from magazines and references to\n>books would be nice too.\n\n>I also need the specs in a format usable on a Unix or MS-DOS system.  I can't\n>do much with the QuickTime stuff they have on ftp.apple.com in its present\n>format.\n\nApple just released the Quicktime volume of the new Inside Macintosh series.\nAny bookstore with reasonable technical stock should have it.\n\nBill Jones\nbillj@beowulf.b11.ingr.com\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 418, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: europa@tomcat.raleigh.ibm.com (Welch Bryan)\nSubject: Re: warranty extension by credit company: applies to the phurchase of computer?\nDistribution: usa\nNntp-Posting-Host: tomcat.raleigh.ibm.com\nOrganization: IBM, Research Triangle Park, North Carolina\nLines: 36\n\nIn article <C51Cv1.MLL@cup.hp.com>, staggers@cup.hp.com (Ken Staggers) writes:\n|> HUAYONG YANG (yang@titan.ucs.umass.edu) wrote:\n|> : Most, if not all, credit card companies offer to double the warranty up\n|> : to one year, namely, if you make a purchase by a credit card, you get\n|> : additional warranty up to one year. Does it apply to the purchase of\n|> : computers? I wonder if anyone out there has used it. Is there any catch?\n|> : Thanks in advance.\n|> \n|> I am just about to post the results of my big computer purchase.  One\n|> of the key points was the ability to use my American Express card.  I \n|> read the fine print between double warranty policies of Amex and Citibank\n|> VISA.  Sure, both will allow you double warranty on computers, but Citibank\n|> has a maximum claim of $250.00.  Could you imagine trying to get your\n|> monitor or mother board fixed for $250.00?  Amex has NO limit on claims.\n|> \n|> Remember, if you use Amex, you must either send a copy of the warranty info\n|> to them in 30 days from purchase, or you must call them to pre-register and\n|> then send them the paperwork within 90 days of purchase (my pre-register\n|> pak arrived today).  Citibank VISA requires no pre-registration.\n|> \n|> --Ken\n|> \n\nI just talked to a rep for my AT&T mastercard regarding this:  There is no\nmaximum claim, and you only have to notify them of the warranty when the \nitem needs repair.  If it can't be repaired, you get the amount you paid\nfor it.\nCuriously though, the AT&T Gold mastercard has a limit of $1000 on claims.\nDefinitely not upgrading to that card...:)\n\n-Bryan\n\n-- \nBryan Welch                                  Amateur Radio: N0SFG\nInternet: europa@vnet.ibm.com (best), bwelch@scf.nmsu.edu \nEverything will perish save love and music.--Scots Gaelic proverb\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 419, "properties": {"category": "talk.religion.misc", "text": "From: emarsh@hernes-sun.Eng.Sun.COM (Eric Marsh)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Sun\nLines: 14\nNNTP-Posting-Host: hernes-sun\n\nIn article <C5Hr14.Jxw@ux1.cso.uiuc.edu> lis450bw@ux1.cso.uiuc.edu (lis450 Student) writes:\n>My definition of objective would be absolute, or fixed, rather than\n> \n>  subjective, or varying and changing.\n>\n\nLets see what the dictionary has to say:\n\nobjective adj. 1. As having to do with a material object as distinguished\nfrom a mental concept. 2. Having actual existance. 3.a. Uninfluenced\nby emotion or personal prejudice. b. Based on observable phenomenon.\n\neric\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 420, "properties": {"category": "sci.crypt", "text": "From: ygoland@wright.seas.ucla.edu (The Jester)\nSubject: Re: Don't fight Clipper Chip, subvert or replace it !\nDistribution: na\nLines: 44\n\nThe Clipper chip is just the culmination of Dorthy Denning et all.\nBut lets ignore that for the moment.\n\nThe fundamental question is:Can the government stop me from using\nencryption?\n\nIgnoring for the moment the question of patented processes (such as\nPublic Keys), can the government stop me from using an encryption\nprocess?\n\nIf the answer is yes then what freedom we have in this country is\ntruly gone and its time to get out the guns or the lawyers\n(depending upon which causes more damage and to whom).\n\nHowever assuming that I can still encrypt things as I please, who\ncares about the clipper chip? As far as I'm concerned a phone line\nis insecure PERIOD. I don't care if they encrypt it 10 ways from\nsunday, if I didn't do the encrypting, I don't trust it. This is the\nattitude that everyone else should have. Instead of worrying about a\nclipper chip, simply connect your handset to your computer and feed\nthe voice single through, process, encrypt, and transmit over the\nphone. The guy on the other hand then does the same in reverse.\n\nCan't work you say? No Standard you say? Obviously you have never\nuses PGP.\n\nAnyone who expects the government to protect their freedoms is\nkidding themselves. Only you can protect your own freedoms.\n\nOne final thought addressed to EFF:\n\t1.Do you support the implementation of ANY form of\n\tencryption where the encryption key must be revealed?\n\t2.If you do, why? If not, why?\n\t3.What SPECIFIC actions are you planning to take to either\n\tsupport or stop this proposal?\n\t4.If you do not support this proposal, what alternatives do\n\tyou offer?\n\n\t\t\t\tThe Jester\n-- \nProof Windows is a Virus:It is very widespread, It eats up your disk\nspace, It slows down your computer, It takes control over your\ncomputer, It performs disk access at random times, It displays silly\nmessages on your screen, It randomly crashes the computer-Vesselin\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 421, "properties": {"category": "rec.sport.hockey", "text": "From: neath@brazil.psych.purdue.edu (Ian Neath)\nSubject: Re: Thumbs up to ESPN\nOrganization: Purdue University\nLines: 13\n\njca2@cec1.wustl.edu (Joseph Charles Achkar) writes:\n> It was nice to see ESPN show game 1 between the Wings and Leafs since\n> the Cubs and Astros got rained out. Instead of showing another baseball\n> game, they decided on the Stanley Cup Playoffs. A classy move by ESPN.\n\nNot in Indiana:  they showed a tape-delay of Chicago v Boston, because\nWGN had the rainout of the cubs.  So WGN showed reruns of Hitchcock.\nNo hockey (at least in this part of the state).\n\nGo Aeros!\n--\n      Ian Neath        | There are four kinds of people in this world:\nneath@psych.purdue.edu | cretins, fools, morons and lunatics - U. Eco\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 422, "properties": {"category": "soc.religion.christian", "text": "From: thssccb@iitmax.iit.edu (catherine c bareiss)\nSubject: Re: phone number of wycliffe translators UK\nOrganization: Illinois Institute of Technology\nLines: 36\n\nIn article <Apr.17.01.11.19.1993.2268@geneva.rutgers.edu> mprc@troi.cc.rochester.edu (M. Price) writes:\n>\n>  I'm concerned about a recent posting about WBT/SIL.  I thought they'd\n>pretty much been denounced as a right-wing organization involved in\n>ideological manipulation and cultural interference, including Vietnam\n>and South America. A commission from Mexican Academia denounced them in\n>1979 as \" a covert political and ideological institution used by the\n>U.S. govt as an instrument of control, regulation, penetration, espionage and\n>repression.\"\n\nI have personally know quite of few of the Wycliffe Bible Translators.\nAs an organization their fundamental purpose is to translate the scriptures\ninto the native languages which in terms usual means learning it and \ndeveloping a written language (along with teaching the natives to read).\nIt is not associated with the U.S. govt. at all.  Many governments\nwant the help of the translators.  To the best of my knowledge the \nMexican government now encourages them to come.  Their idea is not\ncultural interference but the presentation of the Good News.\n\nTo understand more about what they do, I suggest you read some of the books\n(autobiographical and biographical) about some of the translators.  One\nthat stands out in my mind as an excellent is called \"Peace Child.\"\nThis would give a true picture of what their mission is.\n\n>  My concern is that this group may be seen as acceptable and even\n>praiseworthy by readers of soc.religion.christian. It's important that\n>Christians don't immediately accept every \"Christian\" organization as\n>automatically above reproach.\n>\n>                                                                  mp\nI agree with this statement, but we cannot also accept what others\nsay without looking into the issues.  That would be the same as taking \nSuddan's discussion about the CIA, etc. as being true.  We must look\nat both sides.\n\nCathy Bareiss\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 423, "properties": {"category": "comp.graphics", "text": "From: luis.nobrega@filebank.cts.com (Luis Nobrega) \nSubject: PC PAINTBRUSH IV+\nDistribution: world\nOrganization: The File Bank BBS - Fallbrook, CA  619-728-4318\nReply-To: luis.nobrega@filebank.cts.com (Luis Nobrega) \nLines: 11\n\nI am trying to configure Zsoft's PC Paintbrush IV+ for use with my\nLogitech Scanman 32 (hand scanner), but I can't get Paintbrush to\nacknowledge the scanner. Is there anybody out there using Paintbrush\nwith a scanner, if so, can you help me out?\n                                Thanks Luis Nobrega\n                                                                                      \n----\n*--------------------------------------------------------------------------*\n| The File Bank BBS - 619-728-4318 - PCBoard v.14.5a/E10 - USR HST & DS    |\n| 8 nodes / RIME / Internet / Largest Clipper file collection in the world |\n*--------------------------------------------------------------------------*\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 424, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sp@odin.fna.no (Svein Pedersen)\nSubject: Re: Utility for updating Win.ini and system.ini\nOrganization: University of Tromsoe, Norway\nLines: 11\n\nSorry, I did`nt tell exactly what I need.\n\nI need a utility for automatic updating (deleting, adding, changing) of *.ini files for Windows. \nThe program should run from Dos batchfile or the program run a script under Windows.\n\nI will use the utility for updating the win.ini (and other files) on meny PC`s.  \n\nDo I find it on any FTP host?\n\n Svein\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 425, "properties": {"category": "comp.windows.x", "text": "From: hasty@netcom.com (Amancio Hasty Jr)\nSubject: Re: X Toolkits\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 45\n\nIn article <C5y8wJ.3zE@undergrad.math.uwaterloo.ca> papresco@undergrad.math.uwaterloo.ca (Paul Prescod) writes:\n>I am considering making a reasonably large application for free\n>distribution (probably copylefted).  I am going to use X.  Now I'm\n\nThe following packages meet your criteria in that they are PD and\npresent an aesthetically pleasant graphical interface to the users.\n\nIf you can use 386bsd:\n\tthere is xview3 (OpenLook)\n\n\tthere is Interviews which looks a little like Motif\n\n\tthere is gopath a very nice C++ toolkit for Athena Widgets and Motif\n\t         which is simpler\n                 and better than interviews and you will enjoy\n                 technical support from Bull via e-mail\n\t\t It has a nice draw program (it uses motif) which can be used\n\t\t to create graphical front-end to programs.\n\t\t The data format is called streams which you can feed\n\t\t to your programs. I ported gopath on an internet machine\n\t\t which is gone but if you use gcc-2.3.3 with minimal effort\n\t\t gopath can be ported to 386bsd.\n\t\t Last but not least, gopath interfaces to toolkits via a driver\n\t\t module. They have an MS-Windows driver module for instance.\n\n\tAlso, many have written extensions to tk/tcl thus allowing powerful\n\tapplications. For instance, tcl_nm  has snmp extensions for tk/tcl.\n\tWith ease, I  can now combine snmp network operations with graphs,\n\tphoto-widget, graphical interface, file operations, database \n\toperations,etc.. The author of tcl_nm mail me a simple network \n\tmanagement application which was about 80 lines long - it displayed\n\tvarious environmental parameters from a router. I wrote  a simple\n\tstrip chart script for displaying Real-Time ip received\n\tpackets/seconds.\n\n\n\tHope this helps,\n\tAmancio Hasty\n\n\t\n-- \nThis message brought to you by the letters X and S and the number 3\nAmancio Hasty           |  \nHome: (415) 495-3046    |  ftp-site depository of all my work:\ne-mail hasty@netcom.com\t|  sunvis.rtpnc.epa.gov:/pub/386bsd/incoming\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 426, "properties": {"category": "soc.religion.christian", "text": "From: lmvec@westminster.ac.uk (William Hargreaves)\nSubject: Re: Help\nOrganization: University of Westminster\nLines: 26\n\n: > \t   I'm a commited Christian that is battling with a problem.  I know\n: > that romans talks about how we are saved by our faith not our deeds, yet\n: > hebrews and james say that faith without deeds is useless, saying' You fools,\n: > do you still think that just believing is enough?'\n: \n: [Stuff deleted]\n:  \n: > Now I am of the opinion that you a saved through faith alone (not what you do)\n: > as taught in Romans, but how can I square up in my mind the teachings of James\n: > in conjunction with the lukewarm Christian being 'spat-out'\n: > \n: > Can anyone help me, this really bothers me.\n: \n\nI have received tons of mail from people replying to this article I wrote, and\nI would just like to thank everyone who took the time to give me a hand.  It\nhas indeed helped me and re-affirmed alot of theories that I held but was a\nlittle unsure about.\n\nGod bless you all\n\nWill \n-- \n============================================\n| Dallas Cowboys - World Champions 1992-93 |\n============================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 427, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Sleeping Pill OD\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 22\n\nIn article <1993Apr9.051039.715@scott.skidmore.edu> dfederma@scott.skidmore.edu (daniel federman) writes:\n>\n>A friend of mine took appoximately 60 CVS sleeping pills, each\n>containing 25mg of diphenhydramine, I think.  That's 1500 mg, total.\n\n>\tI'm worried, though, about the long-term effects.  Since he\n>never had his stomach pumped, will he have liver or brain damage?  Any\n>information would be greatly appreciated.\n\nShouldn't have.  But he may need to see the shrink about why he\nwanted to kill himself.  Depressed people can be succesfully treated\nusually.\n\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 428, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Robert Everett Brunskill <rb6t+@andrew.cmu.edu>\nSubject: Re: \"Jump Starting\" a Mac II\nOrganization: Freshman, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 3\nDistribution: na\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <1993Apr14.144142.9061@mailbox.als.com>\n\nDid you remember to clamp ground to the engine block first?\n\nRob\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 429, "properties": {"category": "rec.sport.hockey", "text": "From: alan@lancaster.nsc.com (The Hepburn)\nSubject: Re: Hockey and the Hispanic community\nOrganization: National Semiconductor Corporation\nLines: 73\n\nIn article <saross01.734885336@starbase.spd.louisville.edu>, saross01@starbase.spd.louisville.edu (Stacey A. Ross) writes:\n|> In <C5I2s2.3Bt@odin.corp.sgi.com> rickc@wrigley.corp.sgi.com (Richard Casares) writes:\n|> >You'll have a hard time selling any sport to a community that\n|> >can't play it on account of availability or financial reasons.\n|> >Hockey is pretty much a sport for the white and well off.\n|> \n|> What?! White, yes. Well off, definitely not. Hockey season ticket owners have\n|> the lowest average income of any of the four major North American sports.\n\nDo you have a basis for this claim?  Try these stats (taken from Playboy Magazine\nJune 1989):\n\nPercentage of pro football fans who have attended college:    39.7\nPercentage of pro baseball fans who have attended college:    41.5\nPercentage of pro basketball fans who have attended college:  39.9\nPercentage of pro hockey fans who have attended college:      54.6\n\nPercentage of pro football fans who earn more than $50K:      34.9\nPercentage of pro baseball fans who make more than $50K:      22.7\nPercentage of pro basketball fans who make more than $50K:    27.7\nPercentage of pro hackey fans who make more than $50K:        44.0\n\n|> \n|> And think of where the majority of hockey players come from. From a farm out\n|> in Boondock, Saskatchewan or Weedville, Alberta.\n|> \n\nThe biggest advantage that kids from Boondock or Weedville have is the\navailability of ice.  In the San Jose area we have a population of 800,000\nand that population is served by 2 ice arenas.  In contrast, Kamloops,\nBritish Columbia has a population of about 50,000 and has 5 rinks!  There\nare also myriad ponds, pools, etc that freeze in the winter.  Down here\nit's hard to find a kid without a bicycle; up there it's hard to find a kid\nwithout a pair of skates.  And before you say \"what does he know? He's from\nCalifornia.\" let me say that I was born and raised in Trail, British Columbia,\na town of about 8,000 with lots of ice in the winter.  My father did radio\nplay by play for the local team, the Trail Smokeaters, who by  the way, were\nthe last Canadian team to win the World Championship (back in 1961).  I was\non skates almost as soon as I could walk, and have been playing recreational\nhockey for about 35 years.\n\n|> >When was the last time you saw a hockey league in the inner city.\n|> >The insurance alone is a big enough barrier.\n|> \n|> The inner city isn't the only place that is poor.\n|> I think the biggest barrier to hockey in the inner city is... no ICE to play on.\n\n\nLack of ice is a big factor, but costs is a bigger factor.  Both my kids play for\nthe Santa Clara Valley Hockey Association and this season, which just ended,\ncost me $75 per kid for membership in Hockey USA, plus $750 per kid for club\ndues.  The Hockey USA fees cover excess medical insurance, and the club dues\ncover ice time, officials, trophies, etc.  Other areas have similar fees, unless\nthe city government subsidises some of the costs, as Stockton does.\n\nBy the way; most ice arenas are located in what could be called the \"inner city\"\nareas.  Eastridge and Vallco are exceptions ... Redwood City's rink is in an\nindustrial area on Bay Rd, near 101, Berkeley's is near Ashby and Martin Luther\nKing, Stockton's is in Oak Park, Sacramento's is in an older section of downtown\n(I forget the name of the street), Fresno's is out on the edge of town, just west\nof 99.  Santa Rosa's is a nice rink, but it's in an older section of town.\nDublin's is outside of town, off 580.  Most of the rinks are old, and expensive\nto run, with huge electric bills and insurance premiums.  If you want to buy ice\ntime expect to pay around $100 per hour at any of these rinks.  Some of them\ngive you a 60 minute hour for your money; others give you a 50 minute hour and\ninclude the resurfacing time in the fee.\n\n\n-- \nAlan Hepburn           \"A man doesn't know what he knows\nNational Semiconductor       until he knows what he doesn't know.\"\nSanta Clara, Ca              \nalan@berlioz.nsc.com                              Thomas Carlyle\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 430, "properties": {"category": "talk.politics.mideast", "text": "From: chrism@cirrus.com (Chris Metcalfe)\nSubject: Brendan McKay Clarifies the Nazi Racial Theory\nOrganization: Cirrus Logic Inc.\nLines: 59\n\n\nOnly Brendan McKay, or maybe ARF, would come to the rescue of Nazi\nracial theory.  Is it distressing Brendan?  The point is that any\neugenic solution to the Jewish Problem as Elias has proposed smacks\nof pure Nazism.  The fact that Elias' proposal cast the entire \"problem\"\nas one of the abnormal presence of Israeli society in the Middle East,\nand that he buried a slam against U.S. aid to Israel in the midst of\nhis \"even-handed\" solution of the Jewish Question, made it obvious what \nhe had in mind: disolving the Jewish polity.  That *is* a Nazi doctrine:\nrectification of the \"abnormal presence\" of the Jewish people within a \nlarger body politic.  Whether your \"solution\" involves gas, monetary \nincentives to the poor Jews to marry out, or as Feisal Husseini has \nsaid, \"disolve the Zionist entity by forcing it to engage the normal \nsurrounding Arab culture,\" you are engaged in a Nazi project.\n\nJust as obvious is your statement: \"I will not comment on the value\nor lack of value of Elias's proposal.\"  Still striking the glancing\nblow, right Brendan?  You could easily see where he was going, but you\n\"will not comment.\"  So, you are complicitous.\n\nWhat is your fascination with Nazi racial theory, anyway?\n\n-- Chris Metcalfe (\"someone else\")\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\nIn article <1993Apr22.175022.15543@cs.rit.edu> bdm@cs.rit.edu (Brendan D McKay) writes:\n\n>>>A unconventional proposal for peace in the Middle-East.\n>>>---------------------------------------------------------- by\n>>>\t\t\t  Elias Davidsson\n>>>\n>>>5.      The emergence of a considerable number of 'mixed'\n>>>marriages in Israel/Palestine, all of whom would have relatives on\n>>>'both sides' of the divide, would make the conflict lose its\n>>>ethnical and unsoluble core and strengthen the emergence of a\n>>>truly civil society. The existence of a strong 'mixed' stock of\n>>>people would also help the integration of Israeli society into the\n>>\n>>    Sounds just like a racial theory that Hitler outlined in Mein Kampf.\n>\n>Someone else said something similar.  I will not comment on the\n>value or lack of value of Elias's \"proposal\".  I just want to say\n>that it is very distressing that at least two people here are\n>profoundly ignorant of Nazi racial doctrine.  They were NOT\n>like Elias's idea, they were more like the opposite.  \n>\n>Nazis believed in racial purity, not racial assimilation.  An \n>instructive example is the Nazi attitude to Gypsies.  According to \n>Nazi theoreticians, Gypsies were an Aryan race.  They were persecuted,\n>and in huge numbers murdered, because most European Gypies were\n>considered not pure Gypsies but \"mongrels\" formed from the pure Gypsy \n>race and other undesirable races.  This was the key difference between \n>the theoretical approach to Jews and Gypsies, by the way.  It is also \n>true that towards the end of WWII even the \"purist\" Gypsies were \n>hunted down as the theory was forgotten.\n>\n>Brendan.\n>(email:  bdm@cs.anu.edu.au)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 431, "properties": {"category": "rec.motorcycles", "text": "From: tcora@pica.army.mil (Tom Coradeschi)\nSubject: Re: More MOA stuff --- like the RA\nOrganization: Elect Armts Div, US Army Armt RDE Ctr, Picatinny Arsenal, NJ\nLines: 20\nNntp-Posting-Host: b329-gator-3.pica.army.mil\n\nIn article <C5p26B.A3x@world.std.com>, artc@world.std.com (Art Campbell)\nwrote:\n> \n> OK -- so we've got a hotly contested BMWOA election and some inept \n> leadership.\n> \n> My question is the history of the BMW organization that lead to the\n> formation of the BMWRA. Was there something going on in the OA years\n> ago that precipitated the formation of two competing owner's groups?\n\nYep. Both were started (nominally) simultaneously. Splitsville from the\nstart (ie, if my sources are correct, one guy was involved in the start of\nboth groups. true?)\n\n                  tom coradeschi <+> tcora@pica.army.mil\n \n   \"Usenet is like a herd of performing elephants with diarrhea -- massive,\ndifficult to redirect, awe-inspiring, entertaining, and a source of mind-\nboggling amounts of excrement when you least expect it.\"\n                                                    --gene spafford, 1992\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 432, "properties": {"category": "comp.windows.x", "text": "From: yuri@physics.heriot-watt.ac.UK (Yuri Rzhanov)\nSubject: XView slider\nOrganization: The Internet\nLines: 31\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert <xpert@expo.lcs.mit.edu>\n\nHi netters,\n\nI'm using sliders in my XView apps, usually with editable numeric\nfield. But I seem to have no control over the length of this field.\nIn some apps it appears long enough to keep several characters,\nin some - it cannot keep even the maximum value set by \nPANEL_MAX_VALUE! \n\nAs I understand, PANEL_VALUE_DISPLAY_LENGTH, which controls\nnumber of characters to be displayed in text items, doesn't\nwork in the case of slider, despite the fact that <panel.h>\ncontains the following bit:\n\n\t/* Panel_multiline_text_item, Panel_numeric_text_item,\n\t * Panel_slider_item and Panel_text_item attributes\n\t */\n\tPANEL_NOTIFY_LEVEL\t= PANEL_ATTR(ATTR_ENUM,\t\t\t 152),\n\tPANEL_VALUE_DISPLAY_LENGTH\t= PANEL_ATTR(ATTR_INT,\t\t 182),\n\nwhich gives a hint that this attribute can be used for sliders.\nBut 1) setting this attribute gives nothing, and 2) xv_get'ting\nthis attribute gives warning: Bad attribute, and return value 0.\n\nCan someone share his experience in managing sliders in XView with me,\nand clear this problem?\n\nAny help is very much appreciated.\n\nYuri\n\nyuri@uk.ac.hw.phy\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 433, "properties": {"category": "talk.politics.misc", "text": "From: mike@gordian.com (Michael A. Thomas)\nSubject: Re: The Role of the National News Media in Inflaming Passions\nOrganization: Gordian; Costa Mesa, CA\nDistribution: ca\nLines: 13\n\nIn article <1qjtmjINNq45@elroy.jpl.nasa.gov>, carlos@beowulf.Jpl.Nasa.Gov (Carlos Carrion) writes:\n> \tI have come to the conclusion that the TV stations here in LA\n> \tWANT a riot to happen when the verdict comes in.\n\n   Why is this surprising? Then the _Times_ can get a few more\nPulitzers the same way they did last year.\n-- \n\n\t\tMichael Thomas\t(mike@gordian.com)\n\t\"I don't think Bambi Eyes will get you that flame thrower...\"  \n\t\t-- Hobbes to Calvin\n\t\tUSnail: 20361 Irvine Ave Santa Ana Heights, Ca,\t92707-5637\n\t\tPaBell: (714) 850-0205 (714) 850-0533 (fax)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 434, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: marcs@crpmks.uucp (Marc Snyder)\nSubject: Re: Anyone use Number 9 GXE video card?\nOrganization: CIBA-GEIGY Corporation, Additives Division\nKeywords: Video adaptor hardware graphics\nLines: 13\n\nIn article <6023@npg-sd.SanDiegoCA.NCR.COM> claborne@npg-sd.SanDiegoCA.NCR.COM (Chris Claborne) writes:\n>Has anyone used the Number Nine (# 9) Video Graphics adaptor with Windows\n>or Windows NT?  What do you think???\n\nI just put one in my machine last week.  I have an AST 486/66.  I was\ngetting ~10million winmarks with my Diamond SS24, and the #9 board is\ndoing ~20million winmarks.  From my brief experiences with it, i'm very\nsatisfied.  BTW, this is with Win 3.1.\n-- \nMarc Snyder                     UUCP: ...philabs!crpmks!marcs\nSystem Administrator                  \nCiba-Geigy Corporation\nHawthorne, New York          Work: 914.785.2284      Play: 914.347.6440\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 435, "properties": {"category": "comp.graphics", "text": "From: cheinan@access.digex.com (Cheinan Marks)\nSubject: Re: Please Recommend 3D Graphics Library For Mac.\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 100\nNNTP-Posting-Host: access.digex.net\nX-Newsreader: TIN [version 1.1 PL8]\n\n: Robert G. Carpenter writes:\n\n: >Hi Netters,\n: >\n: >I'm building a CAD package and need a 3D graphics library that can handle\n: >some rudimentry tasks, such as hidden line removal, shading, animation, etc.\n: >\n: >Can you please offer some recommendations?\n: >\n: >I'll also need contact info (name, address, email...) if you can find it.\n: >\n: >Thanks\n: >\n: >(Please Post Your Responses, in case others have same need)\n: >\n: >Bob Carpenter\n: >\n\nThe following is extracted from sumex-aim.stanford.edu.  It should also be on\nthe mirrors.  I think there is source for some applications that may have some\nbearing on your project.  Poke around the source directory.  I've never used\nthis package, nor do I know anyone who did, but the price is right :-)\n\nHope this helps.\n\n\t\t\t\t\tCheinan\n\nAbstracts of files as of Thu Apr  1 03:11:39 PST 1993\nDirectory: info-mac/source\n\n#### BINHEX     3d-grafsys-121.hqx   ****\n\nDate: Fri, 5 Mar 93 14:13:07 +0100\nFrom: Christian Steffen Ove Franz <cfranz@iiic.ethz.ch>\nTo: questions@mac.archive.umich.edu\nSubject: 3d GrafSys 1.21 in incoming directory\nA 3d GrafSys short description follows:\n\nProgrammers 3D GrafSys Vers 1.21 now available. \n\nVersion 1.21 is mainly a bugfix for THINK C users. THIS VERSION\nNOW RUNS WITH THINK C, I PROMISE! The Docs now contain a chapter for\nC programmers on how to use the GrafSys. If you have problems, feel free \nto contact me.\nThe other change is that I removed the FastPerfTrig calls from\nthe FPU version to make it run faster.\n\nThose of you who don't know what all this is about, read on.\n\n********\n\nProgrammers 3D GrafSys -- What it is:\n-------------------------------------\n\nDidn't you always have this great game in mind where you needed some way of \ndrawing three-dimensional scenes? \n\nDidn't you always want to write this program that visualized the structure \nof three-dimensional molecules?\n\nAnd didn't the task of writing your 3D conversions routines keep you from \nactually doing it?\n\nWell if the answer to any of the above questions is 'Yes, but what has it to \ndo with this package???' , read on.\n\nGrafSys is a THINK Pascal/C library that provides you with simple routines \nfor building, saving, loading (as resources), and manipulating \n(independent rotating around arbitrary achses, translating and scaling) \nthree dimensional objects. Objects, not just simple single-line drawings.\n\nGrafSys supports full 3D clipping, animation and some (primitive) hidden-\nline/hidden-surface drawing with simple commands from within YOUR PROGRAM.\n\nGrafSys also supports full eye control with both perspective and parallel\nprojections (If you can't understand a word, don't worry, this is just showing\noff for those who know about it. The docs that come with it will try to explain\nwhat it all means later on). \n\nGrafSys provides a powerful interface to supply your own drawing routines with\ndata so you can use GrafSys to do the 3D transformations and your own routines\nto do the actual drawing. (Note that GrafSys also provides drawing routines so\nyou don't have to worry about that if you don't want to)\n\nGrafSys 1.11 comes in two versions. One for the 881 and 020 or above \nprocessors. The other version uses fixed-point arithmetic and runs on any Mac.\nBoth versions are *100% source compatibel*. \n\nGrafSys comes with an extensive manual that teaches you the fundamentals of 3D\ngraphics and how to use the package.\n\nIf demand is big enough I will convert the GrafSys to an object-class library. \nHowever, I feelt that the way it is implemented now makes it easier to use for\na lot more people than the select 'OOP-Guild'.\n\nGrafSys is free for any non-commercial usage. Read the documentation enclosed.\n\n\nEnjoy,\nChristian Franz\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 436, "properties": {"category": "talk.politics.mideast", "text": "From: hernlem@chess.ncsu.edu (Brad Hernlem)\nSubject: Re: was:Go Hezbollah!\nReply-To: hernlem@chess.ncsu.edu (Brad Hernlem)\nOrganization: NCSU Chem Eng\nLines: 31\n\n\nIn article <1993Apr19.214300.17989@unocal.com>, stssdxb@st.unocal.com (Dorin Baru) writes:\n\n|> (Brad Hernlem writes:\n|> \n|> \n|> >Well, you should have noted that I was cheering an attack on an Israeli \n|> >patrol INSIDE Lebanese territory while I was condemning the \"retaliatory\"\n|> >shelling of Lebanese villages by Israeli and Israeli-backed forces. My \"team\",\n|> >you see, was \"playing fair\" while the opposing team was rearranging the\n|> >faces of the spectators in my team's viewing stands, so to speak. \n|> \n|> >I think that you should try to find more sources of news about what goes on\n|> >in Lebanon and try to see through the propaganda. There are no a priori\n|> >black and white hats but one sure wonders how the IDF can bombard villages in \n|> >retaliation to pin-point attacks on its soldiers in Lebanon and then call the\n|> >Lebanese terrorists.\n|> \n|> If the attack was justified or not is at least debatable. But this is not the\n|> issue. The issue is that you were cheering DEATH. [...]\n|> \n|> Dorin\n\nDorin, of all the criticism of my post expressed on t.p.m., this one I accept.\nI regret that aspect of my post. It is my hope that the occupation will end (and\nthe accompanying loss of life) but I believe that stiff resistance can help to \nachieve that end. Despite what some have said on t.p.m., I think that there is \na point when losses are unacceptable. The strategy drove U.S. troops out of \nLebanon, at least.\n\nBrad Hernlem (hernlem@chess.ncsu.EDU)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.022+0000", "event": "documents", "entityId": 437, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 34\n\nAll of the arguments concerning the Sabbath ought to make the point\npretty clear - anyone outside of the Catholic or Orthodox orAnglican or\nMonophysite churches ourght to worship on Saturday if they are really\nsola scriptura.  Otherwise, they are following a law put into effect by\nthe Church, and only the above Chruches really recognize any power of\nthe Chruch to do so.\n\nAndy Byler\n\n[You will note that nothing in the FAQ said anything about the Church\nestablishing or changing a law.  The argument against the Sabbath is\nthat it is part of the ceremonial law, and like the rest of the\nceremonial law is not binding on Christians.  This argument is based\non Paul's letters, Acts, and in a more general sense, Jesus'\nteachings.  Further, most people argue that Scripture shows worship\noccuring on Sunday, and Paul endorsing it.  I understand that these\npoints are disputed, and do not want to go around the dispute one more\ntime.  The point I'm making here is not that these arguments are\nright, but that the backing they claim is Scripture.\n\nAccepting the principle of \"sola scriptura\" does not commit us to\nobeying the entire Jewish Law.  Acts 15 and Paul's letters are quite\nclear on that.  I think even the SDA's accept it.  The disagreement is\non where the Bible would have us place the line.\n\nBy the way, Protestants do give authority to the church, in matters\nthat are not dictated by God.  That's why churches are free to\ndetermine their own liturgies, church polity, etc.  If you accept that\nthe Sabbath is not binding on Christians, then the day of worship\nfalls into the category of items on which individual Christians or\n(since worship is by its nature a group activity) churches are free to\ndecide.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 438, "properties": {"category": "talk.religion.misc", "text": "From: cotera@woods.ulowell.edu\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nLines: 14\nOrganization: University of Massachusetts Lowell\n\nIn article <1r1u5t$595@lm1.oryx.com>, xcpslf@oryx.com (stephen l favor) writes:\n> : Seems to me Koresh is yet another messenger that got killed\n> : for the message he carried. (Which says nothing about the \n> : character of the messenger.) I reckon we'll have to find out\n> : the rest the hard way.\n> : \n> \n> Koresh was killed because he wanted lots of illegal guns.\n\nI suppose these illegal guns have been found? I suppose he was going to kill a\nbunch of people with them?\n--Ray Cote\n\nThere's no government like no government.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 439, "properties": {"category": "sci.electronics", "text": "From: squish@endor.uucp (Shishin Yamada)\nSubject: Re: ATARI 2600 Processors\nOrganization: Aiken Computation Lab, Harvard University\nLines: 42\n\nIn article <93110.125951PCA103@psuvm.psu.edu> <PCA103@psuvm.psu.edu> writes:\n>Does anyone know what processor the Atari 2600 used? What I'm looking for is th\n>e pin-outs for the Atari 2600.... the schematics for it it... does anyone have\n>any idea where I could find this or any related information? This is very impor\n>tant. Also, are the ROM chips that were used fo rthe 2600 games still available\n>, or were they propreitary? Please email me with any responces, as this is very\n> important.. Thanks a million...\n>\n>BTW- Anyone who works/has worked for Atari, I could really use your help with i\n>nfo on the old 2600, please email me if you are willing to help me.... thatnks\n>alot!!\n>\n>-Peter\n\nThe Atari 2600 used a 6502 CPU, just like their entire 8-bit line\n(400, 800,1200,1400, 1440, 130xe, 65xe computers, as well as the 5200\ngame machine). The 2600 had some extra ASIC chips that were basically\nmodified graphics chips and PIA's for the joysticks. Later model 2600\nmight have incorporated many of the chips into one ASCI, as the weight\nof the machines and part count decreased a lot over the years.\n\nAdditionally, I think the 2600 used 2K, 4K, and up to 8K of ROM for\ntheir games. I have no idea how much RAM it had to work with, but I\nwould hazard a guess of 2 or 4K RAM. Think comes from a lot of hacking\nwith the 800 and 130xe computers. And occasionally hacking with the\n2600 (fixing it for monitor composite video use, and audio hookups).\nAlso I tryed to make a cartridge-less system that stored the ROM into\na RAM cartridge that could be loaded up at some prior time (a way to\nbackup cartridges). I've heard of a setup like this where games could\nbe bought (cheaply) on FSK-recorded tapes, then you would load them\ninto a special RAM cartidge, and play them.\n\nAnyways, if you're interested in looking for 2600 equipment, we've got\ntwo 2600 machines around (one composite A/V modified), and lotsa\ncartridges. Willing to sell for reasonable offer + shipping and\nhandling. Don't play it anymore, since going to computers + Nintendo\n(interested in that too?).\n\nHope that helps your question... I might grab some 6502's out too,\nsince they must be fun to play with (as microcontrollers).\n-shishin \"squish\" yamada\nsquish@endor.harvard.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 440, "properties": {"category": "comp.graphics", "text": "From: clipper@mccarthy.csd.uwo.ca (Khun Yee Fung)\nSubject: Re: looking for circle algorithm faster than Bresenhams\nOrganization: Department of Computer Science, The University of Western\n\tOntario, London, Ontario, Canada\nIn-Reply-To: graeme@labtam.labtam.oz.au's message of Wed, 14 Apr 1993 04:49:46 GMT\n\t<1993Apr13.025240.8884@nwnexus.WA.COM>\n\t<1993Apr14.044946.12144@labtam.labtam.oz.au>\nNntp-Posting-Host: mccarthy.csd.uwo.ca\nLines: 41\n\n>>>>> On Wed, 14 Apr 1993 04:49:46 GMT, graeme@labtam.labtam.oz.au (Graeme Gill) said:\n\nGraeme> \tYes, that's known as \"Bresenhams Run Length Slice Algorithm for\nGraeme> Incremental lines\". See Fundamental Algorithms for Computer Graphics,\nGraeme> Springer-Verlag, Berlin Heidelberg 1985.\n\n> I have tried to extrapolate this to circles but I can't figure out\n> how to determine the length of the slices. Any ideas?\n\nGraeme> \tHmm. I don't think I can help you with this, but you might\nGraeme> take a look at the following:\n\nGraeme> \t\"Double-Step Incremental Generation of Lines and Circles\",\nGraeme> X. Wu and J. G. Rokne, Computer Graphics and Image processing,\nGraeme> Vol 37, No. 4, Mar. 1987, pp. 331-334\n\nGraeme> \t\"Double-Step Generation of Ellipses\", X. Wu and J. G. Rokne,\nGraeme> IEEE Computer Graphics & Applications, May 1989, pp. 56-69\n\nAnother paper you might want to consider is:\n\n@article{fungdraw,\n  title=\"A Run-Length Slice Line Drawing Algorithm without Division Operations\",\n  author=\"Khun Yee Fung and Tina M. Nicholl and A. K. Dewdney\",\n  journal=\"Computer Graphics Forum\",\n  year=1992,\n  volume=11,\n  number=3,\n  pages=\"C-267--C-277\"\n}\n\nKhun Yee\n--\nKhun Yee Fung    clipper@csd.uwo.ca\nDepartment of Computer Science\nMiddlesex College\nUniversity of Western Ontario\nLondon, Ontario\nCanada N6A 5B7\nTel: (519) 661-6889\nFax: (519) 661-3515\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 441, "properties": {"category": "talk.religion.misc", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: scientology???\nOrganization: The Portal System (TM)\nLines: 8\n\n> i need some brief information on scientology (or applientology as frank zappa\n> would call it) anyone have the time to send me some info on ol' l.ron and the b\n> asics of what scientology is all about would be appreciated---p.s.i am not inte\n> rested in any propaganda\n\nI've taken the liberty of passing your name and address to your local org\n(Scientology office).  They'll be contacting you in a few days.  I also\nthrew in a small contribution, so they'd know you're serious.    :-)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 442, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mantolov@golum.riv.csu.edu.au (Michael Antolovich)\nSubject: Re: Torx T-15 Screwdriver\nOrganization: Charles Sturt University - Riverina, Wagga Wagga, NSW, Australia\nLines: 18\n\nIn article <C5J2K2.2o94@austin.ibm.com> $LOGIN@austin.ibm.com writes:\n>\n>A while ago when I owned a Plus and wanted to upgrade its memory, I just ordered\n>the toolkit from Macwarehouse for something like $9.  It included an anti-static\n>wrist strap, the clamp used to split the clamshell case, and the Torx\n>screwdriver.  They might not be selling it anymore, but give 'em (and any other\n>company that sells memory upgrades suitable for a Plus-style box) a call.  I'll\n>bet that they still offer the kit.  Next day air is usually the shipping method\n>used, too!\n\n\tI'm told that some of these companies often sell a plastic, throw\naway after one use, version of the Torx driver, so ask before you buy...\n\t\t\t\t\tMichael\n-- \n        ________________________________________________________________\n        \\ Michael Antolovich in Wagga Wagga, a great place to be be... /\n         \\  mantolovich@csu.edu.au OR antolovich@zac.riv.csu.edu.au   /\n          \\__________________________________________________________/\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 443, "properties": {"category": "rec.sport.hockey", "text": "From: smale@healthy.uwaterloo.ca (Bryan Smale)\nSubject: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nOrganization: University of Waterloo\nLines: 55\n\n\nI was thinking about who on each of the teams were the MVPs, biggest\nsurprises, and biggest disappointments this year. Now, these are just\nmy observations and are admittedly lacking because I have not had an\nopportunity to see all the teams the same amount. Anyway....\n  \nMVP = most valuable player to his team both in terms of points and\n      in terms of leadership (\"can't win without him\")\n  \nBiggest surprise = the player who rose above expectation -- the player\n      that may have raised the level of his game to a new height, even\n      if that new level doesn't necessarily warrant an allstar berth\n      (includes those players who at the outset of the season, may not\n      even have been in the team's plans).\n   \nBiggest disappointment = the player from whom we expected more (e.g., I\n      picked Denis Savard in Montreal because with the new emphasis on\n      offence brought by Demers, shouldn't Savard have done better?)\n   \n-----------------------------------------------------------------------\n  \n                        Team           Biggest       Biggest\nTeam:                   MVP:          Surprise:    Disappointment:\n-----------------------------------------------------------------------\nBoston Bruins           Oates          D.Sweeney     Wesley\nBuffalo Sabres          Lafontaine     Mogilny       Audette (jinx?)\nCalgary Flames          Roberts        Reichel       Petit\nChicago Blackhawks      Roenick        Ruuttu        Goulet\nDetroit Red Wings       Yzerman        Chaisson      Kozlov\nEdmonton Oilers         Manson         Buchberger    Mellanby\nHartford Whalers        Sanderson      Cassells      Corriveau\nLos Angeles Kings       Robitaille     Donnelly      Hrudey\nMinnesota North Stars   Modano      Tinordi(not expected back)  Broten\nMontreal Canadiens      Muller         Lebeau        Savard\nNew Jersey Devils       Stevens        Semak         MacLean\nNew York Islanders      Turgeon        King(finally) Marois\nNew York Rangers        Messier        Kovalev       Bourque\nOttawa Senators         MacIver        Baker         Jelinek\nPhiladelphia Flyers     Lindros/Recchi Fedyk/Galley  Eklund\nPittsburgh Penguins     Lemieux        Tocchet(even for him)  Jagr\nQuebec Nordiques        Sakic/Ricci    Kovalenko     Pearson\nSan Jose Sharks         Kisio          Gaudreau      Maley\nSt Louis Blues          Shanahan       C.Joseph      Ron Sutter\nTampa Bay Lightening    Bradley        Bradley       Creighton/Kasper\nToronto Maple Leafs     Gilmour        Potvin        Ellett/Anderson\nVancouver Canucks       Bure           Nedved(finally)    Momesso\nWashington Capitals     Hatcher        Bondra/Cote   Elynuik\nWinnipeg Jets           Selanne        Selanne       Druce\n----------------------------------------------------------------------\n  \nAs I mentioned up top, these are my *impressions* from where I sit. I\nwould welcome any opinions from those fans nearer their teams (in other\nwords, *anywhere* away from a Toronto newspaper!)\n   \nBryan\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 444, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Role of 'SDPA.ORG' in slaughter of Gunduz, Ariyak, Arikan, Benler,...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 107\n\nIn article <1993Apr16.044001.15540@urartu.sdpa.org> hla@urartu.sdpa.org  writes:\n\n>Sure it is. It tells us how far right the whole Turkish political spectrum \n\nNobody ever exposed your crimes like that before? What was your personal \nrole in the murder of Orhan Gunduz and Kemal Arikan, again? How many more\nMuslims will be slaughtered by 'SDPA.ORG' as publicly declared and filed\nwith legal authorities? Please spell it out for us.\n\n\n \"...that more people have to die...\" \n\n                    SDPA <91@urartu.UUCP>\n\n  \"Yes, I stated this and stand by it.\"\n\n                    SDPA <255@urartu.UUCP>\n\n\n    \tJanuary 28, 1982 - Los Angeles\n\tKemal Arikan is slaughtered by two Armenians while driving to work. \n\n    \tMarch 22, 1982 - Cambridge, Massachusetts\n\tPrelude to grisly murder. A gift and import shop belonging to\n\tOrhan Gunduz is blown up. Gunduz receives an ultimatum: Either \n        he gives up his honorary position or he will be \"executed\". He \n        refuses. \"Responsibility\" is claimed by JCAG and SDPA.\n\n    \tMay 4, 1982 - Cambridge, Massachusetts\n\tOrhan Gunduz, the Turkish honorary consul in Boston, would not bow \n\tto the Armenian terrorist ultimatum that he give up his title of \n\t\"honorary consul\". Now he is attacked and murdered in cold blood.\n\tPresident Reagan orders an all-out manhunt-to no avail. An eye-\n\twitness who gave a description of the murderer is shot down.  He \n\tsurvives... but falls silent. One of the most revolting \"triumphs\" in \n\tthe senseless, mindless history of Armenian terrorism. Such a murder \n\tbrings absolutely nothing - except an ego boost for the murderer \n\twithin the Armenian terrorist underworld, which is already wallowing \n\tin self-satisfaction.\n \nWere you involved in the murder of Sarik Ariyak? \n\n   \tDecember 17, 1980 - Sydney\n\tTwo Nazi Armenians massacre Sarik Ariyak and his bodyguard, Engin \n        Sever. JCAG and SDPA claim responsibility.\n\nIt is public knowledge that the founder of the Marxist-Leninist terrorist \norganization, the ASALA (an integral part of ASALA/SDPA/ARF), Hagop\nHagopian, began his notorious career as a member of the terrorist \ngroup which perpetrated the massacre of the Israeli athletes at the\nMunich Olympics in 1972. And the 'Armenian Foundation' stole from the \nchildren of Turkiye to fund the criminal activities of the ASALA/SDPA/ARF\nterrorists in their cold-blooded murder of defenceless Turkish and\nKurdish people. \n\nTHE ARMENIAN FOUNDATION PROVIDED 30 BILLION TL TO ASALA\n\n    01/09/92, MILLIYET-- The Armenian Foundation based in\nIstanbul is found to have provided 30 billion Turkish Lira ($6\nmillion) to the Armenian terrorist organization ASALA which have\nmurdered several Turkish diplomats abroad... \n\nExperts on international terrorism assert that the Armenian terrorists\nuse proceeds from drug trafficking (and from the Armenian Foundation)\nto fund their deadly enterprises. The deadliest of terrorist assassins,\nCarlos, proclaimed on Spanish television that his organization had\nentered into a working relationship with Armenian terrorists and they\nare using drug trafficking to raise money 'to continue' to slaughter\ninnocent people. Now, what is your personal and organizational role \nin this scheme?\n\nRecent reports which have been confirmed by the U.S. Administration, \nindicate that Armenian terrorist organizations are collaborating with \nthose who are responsible for the bombing of the United States Marine \nbarracks in Beirut. You won't be able to get away with your crimes \nforever; the justice is long overdue.\n\nAs for the Armenian genocide of 2.5 million Muslim people between \n1914 and 1920:\n\nSource: Documents: Volume I (1919).\n        \"Document No: 42,\" Archive No: 1-2, Cabin No: 110, Drawer \n        No: 1(4), File No: 373, Section No: 1484(1032), Contents No: 9, 9-1.\n        (To the Office of Acting Supreme Commander - Acting Assistant\n        Section Director Major Ali Sukru)\n\n\"It is sufficient to mention just some of the terrible and shameful crimes\n committed only in Erzurum to get an idea about the Armenian atrocities\n in the villages...\n\n I would also like to mention with disgust and abominable sight, a stain\n on humanity, that I encountered at the west of Hasankale while my regiment\n was proceeding into this town. There was a young Turkish women, apparently\n once a very beautiful one, lying dead on one side of the road. A huge\n stick had been inserted into her vagina. We took the corpses and left it\n at a spot that was invisible from the road...\"\n \nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 445, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Re: IDE vs SCSI\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 59\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\nwlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>>I just bought at Quantum 240 for my mac at home.  I paid $369 for it.  I\n>>haven't seen IDE drives cheaper.\n\n>A friend of mine just got a Maxtor 245 meg IDE drive for $320.  (that's 245\n>million bytes, or 234 mega-bytes).  With the basic $20 interface, he gets\n>close to 1 meg/sec transfer on his 286-20.  Does your figure include a few\n>hundred $$$ for SCSI drivers?\nSince the Mac uses ONLY SCSI-1 for hard drives YES the \"figure includes a\nhundred $$$ for SCSI drivers\"  This is sloppy people and DUMB.\n\n>But on that point, is it faster?  This is what all this is about.  Do you\n>get more performance for the money.\nOk once again with the SCSI spec list:\nSCSI-1 {with a SCSI-1 controler chip} synchronous range is indeed 0-5MB/s\n asynchronous range is slower at 0-3MB/s.\nSCSI-1 {With a SCSI-2 controller chip}: 4-6MB/s with 10MB/s burst {8-bit}\n Note the INCREASE in SPEED, the Mac Quadra uses this version of SCSI-1\n so it DOES exist. Some PCs use this set up too.\n\nSCSI-2 {8-bit/SCSI-1 mode}:          4-6MB/s with 10MB/s burst\n{for those who want SCSI-2 but don't want to pay for the 16-bit or 32-bit\n hardware or mess with the SCSI-2 software controllers.  Usable by SCSI-1\n devices with close to 8-bit SCSI-2 speeds}\nSCSI-2 {16-bit/wide or fast mode}:  8-12MB/s with 20MB/s burst\nSCSI-2 {32-bit/wide AND fast}:     15-20MB/s with 40MB/s burst\n\nOn the other interfaces let DXB132@psuvm.psu.edu speak:\n>IDE ranges from 0-8.3MB/s.                          \nAgain synchronous and asynchronous modes with asynchronous much slower\n {Range 0-5MB/s}\n>ESDI is always 1.25MB/s (although there are some non-standard versions)\n\nOne problem is the inconsitant use of the term 'SCSI' in articles and by\npeople.  Its PROPER meaning is \"The set of SCSI interfaces composed of\nSCSI-1 AND SCSI-2\"\nLook at the inconsitant use of SCSI in the below quote:\n(My comments in {})\n\nPC Magazine April 27, 1993:29 \"Although SCSI is twice as fast as ESDI,\n{This is asynchronous SCSI-1 with a SCSI-1 chip} 20% faster than IDE...\"\n{this is BOTH asynchronous SCSI-1 with a SCSI-2 chip AND 8-bit SCSI-2}\nTo read CONSITANTLY the quote SHOULD read:\n{asynchronous SCSI-1 with a SCSI-1 chip}\n\"Although asynchronous SCSI-1 is twice as fast as ESDI, one third the \nspeed of IDE...\"\nor {asynchronous SCSI-1 with a SCSI-2 chip or 8-bit SCSI-2}\n\"Although SCSI-1 with a SCSI-2 chip and 8-bit SCSI-2 are eight times as fast as\nESDI, 20% faster than IDE...\"\n\nNOTE the NONUSE of 'SCSI' by itself.  This eliminates ambaguity.\n\nSCSI-1 drivers are somewhat reasonable while 16-bit and 32-bit SCSI-2 drivers \nare VERY expansive {8-bit SCSI-2 can use SCSI-1 drivers with little speed\ndegridation(the Mac Quadra does EXACTLY this.)}\n\nIf we are to continue this thread STATE CLEARLY WHICH SCSI you are talking \nabout SCSI-1 or SCSI-2 or SCSI over all {SCSI-1 AND SCSI-2}\nIT DOES MAKE A DIFFERENCE.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 446, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: compartment syndrome - general information, references, etc.\nKeywords: compartment syndrome, blood clots\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 20\n\nIn article <639@cfdd50.boeing.com> lry1219@cfdd50.boeing.com (Larry Yeagley) writes:\n>I have an acquaintance who has been diagnosed as having blood clots and\n>\"compartment syndrome\". I searched the latest edition of the Columbia medical\n>encyclopedia and found nothing. Mosby's medical dictionary gives a very brief\n>description which suggests it's an arterial condition. Can someone point me (an\n\nCompartment syndrome occurs when swelling happens in a \"compartment\"\nbounded by fascia.  The pressure rises in the compartment and blood\nsupply and nerves are compromised.  The treatment is to open the\ncompartment surgically.  THe most common places for compartment\nsyndromes are the forearm and calf.  It is an emergency, since\nif the pressure is not relieved, stuff will die.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 447, "properties": {"category": "soc.religion.christian", "text": "From: emery@tc.fluke.COM (John Emery)\nSubject: Re: Can sin \"block\" our prayers?\nOrganization: John Fluke Mfg. Co., Inc., Everett, WA\nLines: 28\n\nIn article <Apr.12.03.45.11.1993.18872@athos.rutgers.edu> jayne@mmalt.guild.org (Jayne Kulikauskas) writes:\n>\n>This verse also makes me think of the kind of husband who decides what \n>is God's will for his family without consulting his wife.  God reveals \n>His will to both the husband and the wife.  There needs to be some \n>degree of mutuality in decision making.  Even those whose understanding \n>of the Bible leads to a belief in an authoritarian headship of the \n>husband need to incorporate this in order to have a functional family.  \n>One way to look at it is that God speaks to the wife through the husband \n>and to the husband through the wife.\n>\n>\n>Jayne Kulikauskas/ jayne@mmalt.guild.org\n\nI agree.  God makes the husband the head of the house.  But he surely\ncan't do it alone.  He needs the help of his beloved wife whom the\nLord gave him.\n\nAt least that's how it is in my house.  I thank God for the beautiful\nwoman He has brought into my life.  I couldn't lead without the help\nof my wonderful wife.\n\n\n-- \nJohn Emery\t\t\"I will praise you, O Lord my God, with all my heart;\nemery@tc.fluke.COM       I will glorify your name forever.  For great is your\n\t\t\t love toward me; you have delivered me from the\n\t\t\t depths of the grave.\"  (Psalm 86:12-13)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 448, "properties": {"category": "comp.sys.mac.hardware", "text": "From: guykuo@carson.u.washington.edu (Guy Kuo)\nSubject: Re: Half-page hand scanners?\nOrganization: University of Washington\nLines: 12\nNNTP-Posting-Host: carson.u.washington.edu\n\nThe Logitech ScanMan 32 is a nice unit, compact and effective it will\nbring in graphics with surprisingly good quality. Note that its effective\nresolution in grey scale mode is only about 72 dpi. If you don't intend\nto magnify a graphic, it works fine. A true 256 level gray scanner would\nwork better for images.\n\nI've seen the ScanMan go for as little as $100 used. It is a reasonable buy\nat that price. Higher end hand scanners are almost as expensive as used\nflat bed scanners. Here is Seattle, the paper shows occasional good bargains\nin the classifieds. Used color flat beds have been seen as lows as $500 lately.\nGrey scale flatbeds come in around $300-$350. \n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 449, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: fragante@unixg.ubc.ca (Gv Fragante)\nSubject: VESA LB - what is bus mastering\nOrganization: The University of British Columbia\nLines: 12\nNNTP-Posting-Host: unixg.ubc.ca\n\nI read an article about the benefits of a VLB motherboard. It said that a \ntrue VLB board supports bus mastering, otherwise it is just as good as an ISA\nmotherboard.\n\nDoesn't all VLB motherboard support bus mastering? I just bought a 486-33 VLB\nand the tech manual does not explicitly state the words \"local bus mastering\"\nbut it said it \"supports bus master and slave modes\". Are these terms\nsynonymous?\n\nThanks.\n\nPS. - please reply by e-mail as I don't read this newgroup often.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 450, "properties": {"category": "rec.motorcycles", "text": "From: \"Jae W. Chang\" <jae+@CMU.EDU>\nSubject: Info on Sport-Cruisers\nOrganization: Junior, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 15\nNNTP-Posting-Host: po4.andrew.cmu.edu\n\nI'm looking for a sport-cruiser - factory installed fairings (\nfull/half ), hard saddle bags, 750cc and above, and all that and still\nhas that sporty look.\n\nI particularly like the R100RS and K75 RT or S, or any of the K series\nBMW bikes.\n\nI was wondering if there are any other comparable type bikes being\nproduced by companies other than BMW.\n\nThanks for the info,\nJae\n\n--------------------------\njae@cmu.edu \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 451, "properties": {"category": "comp.windows.x", "text": "From: dcr@mail.ast.CAm.ac.UK (Derek C. Richardson)\nSubject: Re: Animation\nOrganization: The Internet\nLines: 81\nTo: xpert@expo.lcs.mit.edu\n\n\nI think you tried to send me a message re: the animation query\nI posted to comp.windows.x. I've appended what I received below.\nIf you can remember what you typed, I'd appreciate another attempt!\n\nDerek\n\n-----------------------------------------------------------\n| Derek C. Richardson    | Tel: (0223) 337548 x 37501     |\n| Institute of Astronomy | Fax: (0223) 337523             |\n| Cambridge, U.K.        |                                |\n| CB3 0HA                | E-mail: dcr@mail.ast.cam.ac.uk |\n-----------------------------------------------------------\n\n----- Begin Included Message -----\n\nFrom aol.com!Postmaster Thu Apr 22 04:47:31 1993\nReceived: by cast0.ast.cam.ac.uk (UK-Smail 3.1.25.1/2)\n  id <m0nlsG0-0001MPC@cast0.ast.cam.ac.uk>; Thu, 22 Apr 93 04:47 BST\nReceived: from sco1.prod.aol.net by hp81.prod.aol.net with SMTP\n\t(1.37.109.4/16.2) id AA19251; Wed, 21 Apr 93 23:49:16 -0400\nFrom: Postmaster@aol.com\nX-Mailer: America Online Mailer\nTo: dcr@mail.ast.cam.ac.uk\nSubject: Returned Mail Unknown Member \nDate: Wed, 21 Apr 93 23:46:36 EDT\nMessage-Id: <9304212346.tn60988@aol.com>\nStatus: R\n\n\n The mail you sent could not be delivered; it was addressed to an unknown user.The text you sent follows...\n\nHi, I'm new to this group so please bear with me!\n\nTwo years ago I wrote a Sunview application for fast animation\nof raster files. With Sunview becoming rapidly obselete, I've\nfinally decided to rewrite everything from scratch in XView.\nI put together a quick test, and I've found that XPutImage()\nis considerably slower (factor of 2 on average?) than the\nSunview command pw_rop() which moves image data from memory\npixrects to a canvas. This was on a Sparc IPX. It seems that:\n(1) the X protocol communication is slowing things down; or\n(2) XPutImage is inefficient...or both! My question is, what\nis the fastest way in X11R5 to dump 8 plane image data to\na window? Can I take advantage of the fact that the client is\nrunning on the same machine as the server? Or am I stuck with\nXPutImage() (in which case I might as well give up now...)?\n\nAll help appreciated...thanks!\n\nDerek\n\n-----------------------------------------------------------\n| Derek C. Richardson    | Tel: (0223) 337548 x 37501     |\n| Institute of Astronomy | Fax: (0223) 337523             |\n| Cambridge, U.K.        |                                |\n| CB3 0HA                | E-mail: dcr@mail.ast.cam.ac.uk |\n-----------------------------------------------------------\n\n\n\n----------------------- Headers ------------------------\n>From uupsi7!expo.lcs.mit.edu!xpert-mailer Wed Apr 21 23:46:29 1993 remote from aolsys\nReceived: from uupsi7 by aolsys.aol.com id aa23625; Wed, 21 Apr 93 23:39:41 EDT\nReceived: from EXPO.LCS.MIT.EDU by uu7.psi.com (5.65b/4.0.071791-PSI/PSINet) via SMTP;\n        id AA16562 for ; Wed, 21 Apr 93 19:44:00 -0400\nReceived: by expo.lcs.mit.edu; Wed, 21 Apr 93 13:58:06 -0400\nReceived: from ENTERPOOP.MIT.EDU by expo.lcs.mit.edu; Wed, 21 Apr 93 13:58:05 -0400\nReceived: by enterpoop.MIT.EDU (5.57/4.7) id AA15705; Wed, 21 Apr 93 13:57:34 -0400\nReceived: from USENET by enterpoop with netnewsfor xpert@expo.lcs.mit.edu (xpert@expo.lcs.mit.edu);contact usenet@enterpoop if you have questions.\nTo: xpert@expo.lcs.mit.edu\nDate: Wed, 21 Apr 1993 15:46:20 GMT\nFrom: dcr@mail.ast.cam.ac.uk (Derek C. Richardson)\nMessage-Id: <1993Apr21.154620.16330@infodev.cam.ac.uk>\nOrganization: Institute of Astronomy, Cambridge\nReply-To: dcr@mail.ast.cam.ac.uk\nSubject: Animation with XPutImage()?\n\n\n----- End Included Message -----\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 452, "properties": {"category": "talk.politics.mideast", "text": "From: aurag@ERE.UMontreal.CA (Aurag Hassan)\nSubject: Re: Deir Yassin\nOrganization: Universite de Montreal\nLines: 25\n\nAre you trying to say that there were no massacres in Deir Yassin\nor in Sabra and Shatila? If so then let me tell you some good jokes:\n\nThere is not and was not any such thing like jewish killing in WWII\n\nPalestinians just did what Davidians did for fourty years and more.\n\nIn fact no one was killed in any war at any time or any place.\n\nPeople die that is all. No one gets killed.\n\nMaybe also vietamiese didn't die in Vietnam war killed by american\nnapalm they were just pyromaniacs and that's all.\n\nMaybe jews just liked gas chambers and no one forced them to get in there.they \nmay be thought it was like snifing cocaine. No?\n\nWhat do you think of this ? Isn't it stupid to say so?\nWell it is as stupid as what you said .Next time you want to lie do it\nintelligently.\n\nSincerely yours.\n\nHassan\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 453, "properties": {"category": "rec.motorcycles", "text": "From: cbrooks@ms.uky.edu (Clayton Brooks)\nSubject: Changing sprocket ratios (79 Honda CB750)\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 10\n\nDo any Honda gurus know if I can replace the \nthe front sprocket on my 1979 Honda CB750K with a slightly larger one?\n(I see this as being preferable to reducing the size of the rear one)\n\nJust wanting ride at a more relaxed RPM.\n-- \n Clayton T. Brooks       _,,-^`--.   From the heart          cbrooks@ms.uky.edu\n 722 POT U o'Ky    .__,-'    *    \\   of the blue           cbrooks@ukma.bitnet\n Lex. KY 40506   _/              ,/    grass and   {rutgers,uunet}!ukma!cbrooks\n 606-257-6807   (__,-----------''   bourbon country    AMA NMA MAA AMS ACBL DoD\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 454, "properties": {"category": "sci.crypt", "text": "From: ebrandt@jarthur.claremont.edu (Eli Brandt)\nSubject: Re: Estimating Wiretap Costs/Benefits\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 23\n\nIn article <rlglendeC5t133.En3@netcom.com> rlglende@netcom.com (Robert Lewis Glendenning) writes:\n>First, what the fuck is NASA doing wasting my tax dollars doing\n>policy papers on stuff far outside of their purvew/mission?\n\nI don't think they're paying for it.\n\n>Do us a favor.  Resign rather than right this paper for NASA.  Go\n>do useful work for the society.\n\nUseful?  I find his estimate of the annual value to law enforcement\nof $5 million quite useful, if rough (e.g. wiretaps may be\npreferentially used on otherwise-hard-to-catch criminals, resulting\nin an underestimate).  This comes to twenty cents a head over the\nU.S. population.  I would find some rigorous numbers on this quite\nuseful -- it would make for nice slogans: \"Your privacy is worth\n$0.37\", or whatever it turns out to be.\n\n>Lew Glendenning\t\trlglende@netcom.com\n\n\t PGP 2 key by finger or e-mail\n   Eli   ebrandt@jarthur.claremont.edu\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 455, "properties": {"category": "sci.med", "text": "From: rjb3@cbnewsk.cb.att.com (robert.j.brown)\nSubject: Re: Human breast-feeding : Myths or reality ?\nOrganization: AT&T\nSummary: experience with three children\nLines: 32\n\nIn article <C4vHwo.HLt@tripos.com>, homer@tripos.com (Webster Homer) writes:\n> rjasoar@vnet.IBM.COM (Robert J. Alexander MD) writes:\n> \n> I have an additional question. How long should a mother breast feed her\n> child? A friend of mine is still nursing her two year old. Is this beneficial?\n> Her ex-husband is trying to use her coninued nursing of a two year old as\n> \"proof\" of her being unfit to be a mother. What studies have been done\n> on breast feeding past a year etc... upon the psychological health of the\n> child? \n> \n> \n> Web Homer\n> \n\nMy wife breast-fed my three boys 12 months, 16 months, and 29 months\nrespectively and they are 18, 16, and 10 years old respectively.  So\nfar everybody seems fairly normal.  I noticed a negative correlation\nwith ear infections and length of time nursed in my very small sample.\nI do notice that the 16 and 18 year old seem to eat a lot, could that\nbe from the breast feeding :-)  ?\n\nI don't understand the \"unfit mother\" charge other than any tactic is\nnot too low down for some folks during divorce/child custody battles.\n\nMost of the developing nations practice breast feeding to 3 and 4 years\nold.  Are they screwed up because of it ?  Would they be much better\noff if they could use cow's milk or commercial formula ?  Doctors ?\n\nBobby - akgua!rjb\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 456, "properties": {"category": "talk.religion.misc", "text": "From: bobsarv@microsoft.com (Bob Sarver)\nSubject: Re: JUDAS, CRUCIFIXION, TYRE, Etc...\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 32\n\n\n\n/(Frank DeCenso)\n/>\n/>I need to prioritize things in my life, and this board is not all that important\n/>to me.  \n\nOf course it is.  It forms a very big part of your self-respect.  You come onto \nthe board, thinking you're some sort of apologeticist for your faith, and you\nroutinely get roasted over a grill for stupid theories and unfounded assumptions.\n\n\n\n\n/(Frank DeCenso)\n/This board will have\n/>to wait until (if ever) I can organize my life to fit it in.  I tried dropping\n/>out, but Sieferman coerced me to come back.  He won't this time.\n\nI doubt that Sieferman has anything to do with you dropping out.  \n\nIt's probably closer to the truth to say that you don't have the cards to \nplay in this game (because you insist on playing from a losing hand), and you're\nfinally realizing it.  You will lurk on the board, and keep \nquiet for a while, looking for an area where you are *certain* that you \nare correct, and then we'll see you pop back in again.  Of course, you then\nwill say that you have merely returned because your life is now \"in order\".\n\nBut we'll know better.\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 457, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: estel@cs.vu.nl (Stel E)\nSubject: W32/TSENG card & other VLB cards... (please)\nOrganization: Fac. Wiskunde & Informatica, VU, Amsterdam\nLines: 30\n\n\nHai,\n\nIn a few days I'm going to buy a new motherboard with local-bus(ses).\nIt comes with a Cirrus Logic VLB card which has 2Mb RAM onboard.\nIt can do true-color but I don't know what type of card it is.\nI read that Cirrus Logic cards aren't exactly the fastes around.\n\nMy old system had a TSENG 4000. I was pretty pleased with it, so I\nconsider buying a W32/TSENG card. I'd like to know a few things:\n\n\t- How is the speed/performance in DOS/Windows/Unix/OS/2\n\t  Graphics & Text (also compared to S3 cards for example)\n\t- What resolutions (including no. of colors) does it\n\t  support (text & graphics)\n\t- How many RAM can be installed and what type of RAM\n\t- Compatibility with old TSENG 4000\n\t- Support in software\n\nIf anyone has any experience with this card (good or bad) I'd like\nto know. If you have a better alternative than the W32 please tell\nme about it.\n\n\nFor the people in Holland:\nKan iemand me misschien vertellen waar de W32 in Nederland te verkrijg\nis? Het liefst in de omgeving van Amsterdam!\n\n\nThanks in advance,\t\t\tErik Stel (estel@cs.vu.nl)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 458, "properties": {"category": "talk.politics.misc", "text": "From: ihorton@cch.coventry.ac.uk (Dr Zippy)\nSubject: Re: Sexual Proposition = Sexual Harassment?\nNntp-Posting-Host: cc_sysh\nOrganization: Dr Zippys psycho surgery\nLines: 13\n\nIn article <930316.144130.lynn@pcgeo23> lynn@granitt.uio.no (Malcolm Lynn) writes:\n>\n>this is a tesrt\n>s\n\nOf your spelling, eh?\n\n\t\t\tDr Zippy.\n-- \n+------------------------------------------------------------+\n| Dr Zippy, proof that \"Dum blonde\" isn't a women only title |\n+------------------------------------------------------------+\n                   ihorton@uk.ac.coventry.cck\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 459, "properties": {"category": "misc.forsale", "text": "From: daw@jhunix.hcf.jhu.edu (Dave Webb)\nSubject: Mattel Electronics Baseball for sale or trade.. BEST OFFER\nArticle-I.D.: jhunix.1ps2nbINN3m1\nDistribution: na\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 9\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\n\nIf anyone's still interested, I have ONE Mattel electronic game left for sale\nor trade. It's Baseball (Tan Case) and includes a 9-volt battery and the\noriginal manual!  I was able to sell Soccer and Basketball 2 for $70.00 and\ntraded the Football game for a Genesis cart...  so, I was happy.  I will\nentertain all offers.. cash or Genesis carts...  By the way, Baseball is in\nExcellent condition and works perfectly..\n\t\n\t\tThanx in advance,\n\t\t\tDave\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.023+0000", "event": "documents", "entityId": 460, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: An Iranian Azeri Who Would Drop an Atomic Bomb on Armenia\nSummary: fool\nArticle-I.D.: urartu.1993Apr15.231047.13120\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 70\n\nIn article <93104.101314FHM100F@ODUVM.BITNET> FARID <FHM100F@ODUVM.BITNET>\nwrites:\n\n[FARID] In support of the preservation of the territorial integrity of \n[FARID] Azerbaijan and its independence from Russian rule, the Iranians which \n[FARID] includes millions of Azerbaijanis will have Armenia retreat from the \n[FARID] territory of Azerbaijan. \n\nOh, they will? This should prove quite interesting!\n\n[FARID] To count on Iranian help to supposedly counter Turkish influence will \n[FARID] be a fatal error on the part of Armenia as long as Armenia in \n[FARID] violation of international law has Azerbaijani lands in occupation. \n\nArmenia is not counting on Iranian help. As far as violations of international\nlaws, which international law gives Azerbaijan the right to attack and \ndepopulate the Armenians in Karabakh?\n\n[FARID] If Armenian aggression continues in the territory of Azerbaijan, not \n[FARID] only there won't be any aid from Iran to Armenia but also steps will \n[FARID] be taken to have Armenian army back in Armenia. \n\nAnd who do you speak for? Rafsanjani?\n\n[FARID] The Azerbaijanis of Iran will be the guarantors of this policy. As for \n[FARID] scaring Iranians or Turks from the Russian power, experts on present \n[FARID] and future military potentials of these people would not put much \n[FARID] stock on the Russain power as the sole power in the region for long!!! \n\nWell, Farid, your supposed experts are not expert! The Russians have had\nnon-stop influence in the Caucasus since the Treaty of Turkmanchay in 1828.\nHmm... that makes it 1993-1828 = 165 years! \n\nOh, I see the Azeris from Iran are going to force out the Armenians from \nKarabakh! That will be a real good trick! \n\n[FARID] Iran is not alian to developing the capability to produce the A bomb \n[FARID] and a reliable delivery system (refer to recent news releases \n[FARID] regarding the potential of Iran). \n\nSo the Azeris from Iran are going to force the Armenians from Karabakh by\nforcing the Iranian government to drop an atomic bomb on these Armenians.\n\n[FARID] The moral of the story is that, you don't go invading your neighbor's \n[FARID] home (Azerbaijan) and flash Russia's guns when questioned about it. \n\nOh, but it's just fine if you drop an atomic bomb on your neighbor! You are\na damn fool, Farid!\n\n[FARID] (Marshal Shapashnikov may have to eat his words regarding Turkey in a \n[FARID] few short years!). \n\nSo you are going to drop an atomic bomb on Russia as well. \n\n[FARID] Peaceful resolution of the Armenian-Azerbaijani conflict is the only \n[FARID] way to go. Armenia may soon find the fruits of Aggression very bitter \n[FARID] indeed.\n\nAnd the Armenians will take your \"peaceful\" dropping of an atomic bomb as\nan example of Iranian Azeri benevolence! You sir are a poor example of an \nIranian Azeri! \n\nHa! And to think I had a nice two day stay in Tabriz back in 1978! \n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 461, "properties": {"category": "talk.politics.mideast", "text": "From: iacovou@gurney.cs.umn.edu (Neophytos Iacovou)\nSubject: Re: WHAT YOU SHOULD KNOW ABOUT THE SERBIAN-GREEK CONNECTION....\nNntp-Posting-Host: gurney.cs.umn.edu\nOrganization: University of Minnesota\nLines: 26\n\nIn <1993Apr13.070905.26124@freenet.carleton.ca> aa624@Freenet.carleton.ca (Suat Kiniklioglu) writes:\n\n>First of all I have to reiterate that your terminology in describing\n>the events of 1974 are extremely \"misleading\". Cyprus is NOT occupied\n>by Turkish forces it was invited by Turkish Cypriots and \"intervened\"\n\n  Oh....I see...I didn't realize this...\n\n  I think that perhaps you should print flyers on this topic, and your\n  reasons for thinking the way you do. You should then distribute them\n  amongst the world's population. You see, I don't think there are many\n  people who are aware of this fact. Thank you for telling us the truth.\n\n  BTW: I would start by sending your flyers to each of the UN officials.\n\t   Also, after you have distributed your flyers you might consider\n       hiding. You see, I think that once more people read what you think\n       they will have to lock you up in a mental institute; and don't think\n       they will ever let you out.\n \n  It is a strange strange world you live in. I feel sorry for you.\n\n--\n--------------------------------------------------------------------------------\nNeophytos Iacovou                                \nUniversity of Minnesota                     email:  iacovou@cs.umn.edu \nComputer Science Department                         ...!rutgers!umn-cs!iacovou\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 462, "properties": {"category": "comp.graphics", "text": "From: djmst19@unixd2.cis.pitt.edu (David J Madura)\nSubject: Re: Rumours about 3DO ???\nLines: 13\nX-Newsreader: Tin 1.1 PL3\n\ndave@optimla.aimla.com (Dave Ziedman) writes:\n\n: 3DO is still a concept.\n: The software is what sells and what will determine its\n: success.\n\n\nApparantly you dont keep up on the news.  3DO was shown\nat CES to developers and others at private showings.  Over\n300 software licensees currently developing software for it.\n\nI would say that it is a *LOT* more than just a concept.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 463, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: The Evidence\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 28\n\nIn article <115298@bu.edu>, kane@buast7.bu.edu (Hot Young Star) writes:\n> BK:\n# ##So tell me---what's immoral about homosexuality?\n# \n# CC:\n# #The promiscuity and fetishism that characterizes it.\n# \n# Hmmm.\n# \n# I've told you more than once that I've been monogamous for almost 4 years\n# now, and that I really don't get into fetishes.\n\nThen you are nearly the only homosexual who is.  I don't believe you.\nYou've changed your story before.\n\n# Yet you maintain my homosexual activity is still immoral.\n# \n# Care to elaborate?\n# \n# For that matter, explain why fetishes are immoral?\n# \n# kane@{buast7,astro}.bu.edu (Hot Young Star) Astronomy Dept, Boston University,\n\nThe fact that your fetish is more important than who you are making\nlove to.  (Actually, in your case, \"having sex with.\")\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 464, "properties": {"category": "sci.electronics", "text": "From: corleyg@ul.ie\nSubject: Microstrip help wanted\nOrganization: University of Limerick, Ireland\nLines: 8\n\nI need information on microstrip circuit design especially \nfilter design for the 1-3GHz range. Can you recommend any\ngood books, journals, or microstrip circuit design software.\n.\nall help appreciated\n\nGerry Corley, ECE Department, Univesity of Limerick, Ireland.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 465, "properties": {"category": "rec.autos", "text": "From: erich.lim@yob.sccsi.com (Erich Lim) \nSubject: RE: MILITECH\nDistribution: world\nOrganization: Ye Olde Bailey BBS - Houston, TX - 713-520-1569\nReply-To: erich.lim@yob.sccsi.com (Erich Lim) \nLines: 22\n\njchen@wind.bellcore.com (Jason Chen) writes:\n\n-> I saw an interesting product in NY Auto Show, and would like to hear\n-> your comments.\n->\n-> MILITECH(tm) is yet another oil additive. But the demonstration of\n-> this product really impressive, if it didn't cheat.\n\n  Well, I heard that Militech stuff works pretty good too.. One of my\nfriends who races in SCCA sanctioned events and all that stuff got the\nMilitech stuff early as a trial thing, and he put it in his CRX..  He\nsays it worked great, but I didn't ask him for any details.\n\n\n-Erich\nerich.lim@yob.sccsi.com\n                                                                       \n----\n+------------------------------------------------------------------------+\n| Ye Olde Bailey BBS   713-520-1569 (V.32bis) 713-520-9566 (V.32bis)     |\n|   Houston,Texas          yob.sccsi.com       Home of alt.cosuard       |\n+------------------------------------------------------------------------+\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 466, "properties": {"category": "talk.politics.guns", "text": "Nntp-Posting-Host: surt.ifi.uio.no\nFrom: Thomas Parsli <thomasp@ifi.uio.no>\nSubject: Re: Change of name ??\nIn-Reply-To: popovich@cs.columbia.edu (Steve Popovich)'s message of Wed, 21\n        Apr 1993 01:54:51 GMT\nOrganization: Dept. of Informatics, University of Oslo, Norway\n        <93864@hydra.gatech.EDU>\n        <POPOVICH.93Apr20205451@prince.cs.columbia.edu>\nLines: 37\nOriginator: thomasp@surt.ifi.uio.no\n\n\nHow we survived ww2:\nWe mailed postings about things we didn't know any thing about\nto ONLY the wrong places.\n\nI'm NOT trying to censor this or any newsgroup, I'm just trying to\ngive some hints about OTHER newsgroups.\nDoesn't this belong to alt.conspiracy ??\n\nNOTE!!!\nMy posting was in reply to those about FBI torching the plasce after\nfilling it with napalm, and arrested people dissapering.\n\n>We all know what a quisling is, right?\nObviously we don't.....\nVidkun Quisling is known to be a traitor in Norway, not a 'censor'.\nIf I have betrayed my country (Norway) bescause I implied that som of \nyou jumped to conclusions/sound a little paranoid then I think there\nis a LOT of quislings in Norway.......\n\n\nAbout Waco\nIt looks to me as the BATF and FBI can't handle situations like this.\nThe way it went reminds me of 'stun' bomb beeing dropped on a house\nin LA from a helicopter. (Whole block went up in flames, 5 died...)\n\nIt doesn't HAVE to be a conspiracy, MAYBE they just screwed up ???\n\n\n\n\tThis is not a .signature.\n\tIt's merely a computergenerated text to waste bandwith\n\tand to bring down the evil Internet.\n\n\n                        Thomas Parsli\n                        thomasp@ifi.uio.no\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 467, "properties": {"category": "sci.crypt", "text": "From: warlord@MIT.EDU (Derek Atkins)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: Massachusetts Institute of Technology\nLines: 42\nNNTP-Posting-Host: deathtongue.mit.edu\nIn-reply-to: jhart@agora.rain.com's message of Tue, 20 Apr 1993 06:39:11 GMT\n\n-----BEGIN PGP SIGNED MESSAGE-----\n\n> Why do we hackers care about the Clipper chip?  Do we give a shit\n> about anybody's privacy accept our own?  And perhaps not even our\n> own; are we so smart that we always know when we're talking to\n> somebody who has a wiretap on their phone?\n\nI find this a very disturbing view!  Yes, we DO care about EVERYONE's\nprivacy... Even if \"they\" don't know it. What happens if the gov't\nstarts creating legislation such that the Clipper and such\ntechnologies become the only \"legal\" encryption forms?  What happens\nwhen the Clipper is the *ONLY* type of encryption chips available to\nthe masses?\n\nSure, you might have your own method of encryption, but if you don't\nhave anyone else to talk to, what use is it?  You can't assume that\nEVERYONE will be as open as you appear to be about encryption.\n\nThe point here is not the specific instance of the Wiretap Chip.\nRather, it is like having the government telling you that they want a\ncopy of your house key, safe-deposit box keys, etc., and telling you\nthat \"they wont use them unless its totally neccessary.\"  I sure\nwouldn't want that.  Why should encryption be any different?\n\n- -derek\n\nPGP 2 key available upon request on the key-server:\n\tpgp-public-keys@toxicwaste.mit.edu\n\n-----BEGIN PGP SIGNATURE-----\nVersion: 2.2\n\niQBuAgUBK9RxVjh0K1zBsGrxAQHd8ALEDi3Ear7rEmr1UHuxqv2YIblH6px6VXnb\n+sJLcUGzZxTCfxbRqIf7msLp98p0EvYYnLZbbORyVhfSzyyHYHeQqQILHEK3LPQE\naP29+od6YZrCCHarNRS024E=\n=Ftek\n-----END PGP SIGNATURE-----\n--\n  Derek Atkins, MIT '93, Electrical Engineering and Computer Science\n     Secretary, MIT Student Information Processing Board (SIPB)\n           MIT Media Laboratory, Speech Research Group\n           warlord@MIT.EDU       PP-ASEL        N1NWH\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 468, "properties": {"category": "sci.crypt", "text": "From: angel@Foghorn_Leghorn.coe.northeastern.edu (Kirill Shklovsky)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Northeastern University\nDistribution: na\nLines: 36\n\nIn article <1993Apr21.204036.13723@rick.dgbt.doc.ca> jhan@debra.dgbt.doc.ca (Jerry Han) writes:\n>As one of the happily sleeping people, I would just like to ask this->\n>aren't people just slightly overreacting to this?  Or are we all of a\n>sudden going to draw parallels to Nazi Germany and Communist Russia?\n>\n>The point of the matter is that; yes this is a serious problem.  But it is\n>not the end of the world.  Guess what?  We're doing something now you\n>can't do in a Communist country or Nazi Germany.  We're complaining about\n>it, (or rather, you're complaining about it) and nobody is shooting at us.  \n>\n>(Or, rather, if they're shooting at me, they have real bad aim.  (:-) )\n>\n>GUESS WHAT PEOPLE?  You live in one of the few countries in the world\n>where a person can complain without getting shot at.  \n>\n>People are always complaining that somebody did this wrong, or somebody\n>did that wrong, or whatever.  Sit down and figure out two things:\n>\n>1)  What have they done right?\n>2)  How much worse can it get?\n>\n>And you'll find that you and I, are pretty damn lucky.\n>\n>So let's talk about it, get some action going, decide what's going on. \n>But let's not overreact!  \n>\nUs having the liberties to talk about this doesn't make the problem go\naway.  It doesn't make it right.  Rather the opposite, if we do not do \nanything about it, you can bet it's going to get worse.\n\n        *             Angel@foghorn_leghorn.coe.northeastern.edu\n   *   * *     *   BTW: These are my opinions, and not that of any other entity\n- * * *   *   * * ------------------------------------------------------------*\n     *     * *               My god, its full of stars! - Dave\n            *        I don't know about you, but we've got company!  - Epidemic\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 469, "properties": {"category": "sci.crypt", "text": "From: wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705)\nSubject: Re: THE CLIPPER CHIP: A TECHNICAL SUMMARY\nOrganization: Brought to you by the numbers 2, 3, and 7\nIn-Reply-To: denning@guvax.acc.georgetown.edu's message of 19 Apr 93 18:23:27 -0400\nNntp-Posting-Host: rainier.ho.att.com\nLines: 62\n\nIn article <1993Apr19.182327.3420@guvax.acc.georgetown.edu> denning@guvax.acc.georgetown.edu writes:\n\t[Prof. Denning's description of SkipJack mostly omitted]\n\n\tCHIP STRUCTURE\n\tThe Clipper Chip contains a classified 64-bit block encryption\n\talgorithm called \"Skipjack.\"  The algorithm uses 80 bit keys (compared\n\twith 56 for the DES) and has 32 rounds of scrambling (compared with 16\n\tfor the DES).  It supports all 4 DES modes of operation.  Throughput is\n\t16 Mbits a second. [...]\n\n\tF, an 80-bit family key that is common to all chips\n\tN, a 30-bit serial number\n\tU, an 80-bit secret key that unlocks all messages encrypted\n\t\t with the chip\n\tThe key K and message stream M (i.e., digitized voice) are then\n\tfed into the Clipper Chip to produce two values:\n\n  \t   E[M; K], the encrypted message stream, and \n\t   E[E[K; U] + N; F], a law enforcement block.  \n\nThree questions:\n1) It looks like each 64 bits of input gives you 4*64 bits of output:\n\t\tE[M;K] = 64 bits\n\t\tE[K;U] = E[ 80 bits ] = 128 bits\n\t\tE[ E[K;U], N ; F ] = E[ 128 + 30 bits ] = 192 bits\n   Do you really need to transmit all 256 bits each time,\n   or do you only transmit the 192 bits of wiretap block at the beginning?   \n   All 256 would be really obnoxious for bandwidth-limited applications\n   like cellular phones (or even regular phones over \n\n2) how do the 4 DES modes interact with the two-part output?\n   Do the various feedback modes only apply to the message block,\n   or also to the wiretap block?  Or, if the wiretap block is only\n   transmitted at the beginning, does it get incorporated into\n   everything through feedback modes, but not during ECB mode?\n\n3) Does the Clipper Chip check the wiretap block itself?\n   Does the block have to be present at all?\n   Since the receiving chip doesn't know the transmitter's U,\n   it presumably can't check the validity of E[K;U], so it's \n   limited to checking the *form* of the wiretap block,\n   and maybe checking the serial number for reasonableness\n   (unless there's some sort of back-door structure that lets\n   it recognize a valid E[K;U].)\n   \n   In that case, can you replace the wiretap block with a DIFFERENT\n   wiretap block, presumably an old valid one to avoid attracting attention?\n   (The chip won't do it, so you postprocess the output.)\n   Regular people can do one with their own serial number and a dummy key;\n   paranoid people can use someone else's serial number.\n\n   On the other hand, if I could think of that solution so easily,\n   presumably the NSA could too - have they done something to block it,\n   like use message encryption that's really E[M; K,U,N] ?\n\n\n\tThanks!\n--\n#\t\t\t\tPray for peace;      Bill\n# Bill Stewart 1-908-949-0705 wcs@anchor.att.com AT&T Bell Labs 4M312 Holmdel NJ\n#\t              No, I'm *from* New Jersey, I only *work* in cyberspace....\n# White House Commect Line 1-202-456-1111  fax 1-202-456-2461\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 470, "properties": {"category": "soc.religion.christian", "text": "From: johnsd2@rpi.edu (Dan Johnson)\nSubject: Re: Atheists and Hell\nReply-To: johnsd2@rpi.edu\nOrganization: not Sun Microsystems\nLines: 38\n\nIn article 29279@athos.rutgers.edu, atterlep@vela.acs.oakland.edu (Cardinal Ximenez) writes:\n\n>  I have seen two common threads running through postings by atheists on the \n>newsgroup, and I think that they can be used to explain each other.  \n>Unfortunately I don't have direct quotes handy...\n\n>1) Atheists believe that when they die, they die forever.\n\n>2) A god who would condemn those who fail to believe in him to eternal death\n>   is unfair.\n\n>  I don't see what the problem is!  To Christians, Hell is, by definition, \n>eternal death--exactly what atheists are expecting when they die.\n\nThis is the problem. This is not hell, this is permanent death. It is\nindeed what atheists (generally) expect and it is neither fair nor\nunfair, it just is. You might as well argue about whether being made\nmostly of carbon and water is \"fair\".\n\nHowever, the atheists who claim that Hell is unfair are talking about\nthe fire and brimstone place of endless suffering, which necessarily\nincludes eternal existance (life, I dunno, but some sort of continuation);\nnot at all the same thing.\n\nGranted, you clearly feel that hell=death, but this is not a univeral\nsentiment as near as I can tell.\n\nIf *your* idea of God \"condemns\" heathens to ordinary death, I have no\nproblem with that. I do have a problem with the gods that hide from humans\nand torture the unbelievers eternally for not guessing right.\n\n[deletia- Hell, and Literalness.]\n\n---\n\t\t\t- Dan Johnson\nAnd God said \"Jeeze, this is dull\"... and it *WAS* dull. Genesis 0:0\n\nThese opinions probably show what I know.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 471, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 08/15 - Addresses\nSupersedes: <addresses_730956515@cs.unc.edu>\nOrganization: University of North Carolina, Chapel Hill\nLines: 230\nDistribution: world\nExpires: 6 May 1993 19:58:29 GMT\nNNTP-Posting-Host: mahler.cs.unc.edu\nKeywords: Frequently Asked Questions\n\nArchive-name: space/addresses\nLast-modified: $Date: 93/04/01 14:38:55 $\n\nCONTACTING NASA, ESA, AND OTHER SPACE AGENCIES/COMPANIES\n\nMany space activities center around large Government or International\nBureaucracies.\tIn the US that means NASA.  If you have basic information\nrequests: (e.g., general PR info, research grants, data, limited tours, and\nESPECIALLY SUMMER EMPLOYMENT (typically resumes should be ready by Jan.  1),\netc.), consider contacting the nearest NASA Center to answer your questions.\n\nEMail typically will not get you any where, computers are used by\ninvestigators, not PR people. The typical volume of mail per Center is a\nmultiple of 10,000 letters a day. Seek the Public Information Office at one\nof the below, this is their job:\n\nNASA (The National Aeronautics and Space Administration) is the\ncivilian space agency of of the United States Federal Government.\nIt reports directly to the White House and is not a Cabinet\npost such as the military Department of Defense.  Its 20K+ employees\nare civil servants and hence US citizens.  Another 100K+ contractors\nalso work for NASA.\n\nNASA CENTERS\n\n    NASA Headquarters (NASA HQ)\n    Washington DC 20546\n    (202)-358-1600\n\n\tAsk them questions about policy, money, and things of political\n\tnature. Direct specific questions to the appropriate center.\n\n    NASA Ames Research Center (ARC)\n    Moffett Field, CA 94035\n    (415)-694-5091\n\n\tSome aeronautical research, atmosphere reentry, Mars and Venus\n\tplanetary atmospheres. \"Lead center\" for Helicopter research,\n\tV/STOL, etc. Runs Pioneer series of space probes.\n\n    NASA Ames Research Center\n    Dryden Flight Research Facility [DFRF]\n    P. O. Box 273\n    Edwards, CA  93523\n    (805)-258-8381\n\n\tAircraft, mostly. Tested the shuttle orbiter landing\n\tcharacteristics. Developed X-1, D-558, X-3, X-4, X-5, XB-70, and of\n\tcourse, the X-15.\n\n    NASA Goddard Space Flight Center (GSFC)\n    Greenbelt, MD 20771\n    [Outside of Washington DC]\n    (301)-344-6255\n\n\tEarth orbiting unmanned satellites and sounding rockets. Developed\n\tLANDSAT.\n\n    Jet Propulsion Laboratory (JPL)\n    California Institute of Technology\n    4800 Oak Grove Dr.\n    Pasadena, CA 91109\n    (818)-354-5011\n\n\tThe \"heavies\" in planetary research probes and other unmanned\n\tprojects (they also had a lot to do with IRAS). They run Voyager,\n\tMagellan, Galileo, and will run Cassini, CRAF, etc. etc.. For\n\timages, probe navigation, and other info about unmanned exploration,\n\tthis is the place to go.\n\n\tJPL is run under contract for NASA by the nearby California\n\tInstitute of Technology, unlike the NASA centers above. This\n\tdistinction is subtle but critical. JPL has different requirements\n\tfor unsolicited research proposals and summer hires. For instance in\n\tthe latter, an SF 171 is useless. Employees are Caltech employees,\n\tcontractors, and for the most part have similar responsibilities.\n\tThey offer an alternative to funding after other NASA Centers.\n\n\tA fact sheet and description of JPL is available by anonymous\n\tFTP in\n\n\t    ames.arc.nasa.gov:pub/SPACE/FAQ/JPLDescription\n\n    NASA Johnson Manned Space Center (JSC)\n    Houston, TX 77058\n    (713)-483-5111\n\n\tJSC manages Space Shuttle, ground control of manned missions.\n\tAstronaut training. Manned mission simulators.\n\n    NASA Kennedy Space Flight Center (KSC)\n    Titusville, FL 32899\n    (407)-867-2468\n\n\tSpace launch center. You know this one.\n\n    NASA Langley Research Center (LaRC)\n    Hampton, VA 23665\n    [Near Newport News, VA]\n    (804)-865-2935\n\n\tOriginal NASA site. Specializes in theoretical and experimental\n\tflight dynamics. Viking. Long Duration Exposure Facility.\n\n    NASA Lewis Research Center (LeRC)\n    21000 Brookpark Rd.\n    Cleveland, OH 44135\n    (216)-433-4000\n\n\tAircraft/Rocket propulsion. Space power generation. Materials\n\tresearch.\n\n    NASA Marshall Space Flight Center (MSFC)\n    Huntsville, AL 35812\n    (205)-453-0034\n\n\tDevelopment, production, delivery of Solid Rocket Boosters, External\n\tTank, Orbiter main engines. Propulsion and launchers.\n\n    Michoud Assembly Facility\n    Orleans Parish\n    New Orleans, LA 70129\n    (504)-255-2601\n\n\tShuttle external tanks are produced here; formerly Michoud produced\n\tfirst stages for the Saturn V.\n\n    Stennis Space Center\n    Bay St. Louis, Mississippi 39529\n    (601)-688-3341\n\n\tSpace Shuttle main engines are tested here, as were Saturn V first\n\tand second stages. The center also does remote-sensing and\n\ttechnology-transfer research.\n\n    Wallops Flight Center\n    Wallops Island, VA 23337\n    (804)824-3411\n\t    Aeronautical research, sounding rockets, Scout launcher.\n\n    Manager, Technology Utilization Office\n    NASA Scientific and Technical Information Facility\n    Post Office Box 8757\n    Baltimore, Maryland 21240\n\n    Specific requests for software must go thru COSMIC at the Univ. of\n    Georgia, NASA's contracted software redistribution service. You can\n    reach them at cosmic@uga.bitnet.\n\n    NOTE: Foreign nationals requesting information must go through their\n    Embassies in Washington DC. These are facilities of the US Government\n    and are regarded with some degree of economic sensitivity. Centers\n    cannot directly return information without high Center approval. Allow\n    at least 1 month for clearance. This includes COSMIC.\n\nThe US Air Force Space Command can be contacted thru the Pentagon along with\n    other Department of Defense offices. They have unacknowledged offices in\n    Los Angeles, Sunnyvale, Colorado Springs, and other locations. They have\n    a budget which rivals NASA in size.\n\nARIANESPACE HEADQUARTERS\n    Boulevard de l'Europe\n    B.P. 177\n    91006 Evry Cedex\n    France\n\nARIANESPACE, INC.\n    1747 Pennsylvania Avenue, NW Suite 875\n    Washington, DC 20006\n    (202)-728-9075\n\nEUROPEAN SPACE AGENCY (ESA)\n    955 L'Enfant Plaza S.W.\n    Washington, D.C. 20024\n    (202)-488-4158\n\nNATIONAL SPACE DEVELOPMENT AGENCY (NASDA)\n    4-1 Hamamatsu-Cho, 2 Chome\n    Minato-Ku, Tokyo 105, JAPAN\n\nSOYUZKARTA\n    45 Vologradsij Pr.\n    Moscow 109125\n    USSR\n\nSPACE CAMP\n    Alabama Space and Rocket Center\tU.S. SPACE CAMP\n    1 Tranquility Base\t\t\t6225 Vectorspace Blvd\n    Huntsville, AL 35805\t\tTitusville FL  32780\n    (205)-837-3400\t\t\t(407)267-3184\n\n    Registration and mailing list are handled through Huntsville -- both\n    camps are described in the same brochure.\n\n    Programs offered at Space Camp are:\n\n\tSpace Camp - one week, youngsters completing grades 4-6\n\tSpace Academy I - one week, grades 7-9\n\tAviation Challenge - one week high school program, grades 9-11\n\tSpace Academy II - 8 days, college accredited, grades 10-12\n\tAdult Program - 3 days (editorial comment: it's great!)\n\tTeachers Program - 5 days\n\nSPACE COMMERCE CORPORATION (U.S. agent for Soviet launch services)\n    504 Pluto Drive\t\t    69th flr, Texas Commerce Tower\n    Colorado Springs, CO 80906\t    Houston, TX 77002\n    (719)-578-5490\t\t    (713)-227-9000\n\nSPACEHAB\n    600 Maryland Avenue, SW\n    Suite 201 West\n    Washington, DC 20004\n    (202)-488-3483\n\nSPOT IMAGE CORPORATION\n    1857 Preston White Drive,\n    Reston, VA 22091\n    (FAX) (703)-648-1813    (703)-620-2200\n\n\nOTHER COMMERCIAL SPACE BUSINESSES\n\n    Vincent Cate maintains a list with addresses and some info for a variety\nof companies in space-related businesses. This is mailed out on the\nspace-investors list he runs (see the \"Network Resources\" FAQ) and is also\navailable by anonymous ftp from furmint.nectar.cs.cmu.edu (128.2.209.111) in\n/usr/vac/ftp/space-companies.\n\n\nNEXT: FAQ #9/15 - Schedules for space missions, and how to see them\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 472, "properties": {"category": "sci.med", "text": "From: dhartung@chinet.chi.il.us (Dan Hartung)\nSubject: _The Andromeda Strain_\nSummary: How well does it hold up?\nOrganization: Chinet - Public Access UNIX\nLines: 28\n\nJust had the opportunity to watch this flick on A&E -- some 15 years\nsince I saw it last.  \n\nI was very interested in the technology demonstrated in this film\nfor handling infectious diseases (and similar toxic substances).\nClearly they \"faked\" a lot of the computer & robotic technology;\ncertainly at the time it was made most of that was science fiction\nitself, let alone the idea of a \"space germ\".  \n\nQuite coincidentally [actually this is what got me wanted to see\nthe movie again] I watched a segment on the otherwise awful _How'd\nThey Do That?_ dealing with a disease researcher at the CDC's top\nlab.  There was description of the elaborate security measures taken\nso that building will never be \"cracked\" so to speak by man or\nnature (short of deliberate bombing from the air, perhaps).  And\nthe researchers used \"spacesuits\" similar to that in the film.\n\nI'm curious what people think about this film -- short of \"silly\".\nIs such a facility technically feasible today?  \n\nAs far as the plot, and the crystalline structure that is not Life\nAs We Know It, that's a whole 'nother argument for rec.arts.sf.tech\nor something.\n-- \n | Next: a Waco update ... an Ohio prison update ... a Bosnia update ... a  |\n | Russian update ... an abortion update ... and a Congressional update ... |\n | here on SNN: The Standoff News Network.  All news, all standoff, all day |\n Daniel A. Hartung  --  dhartung@chinet.chinet.com  --  Ask me about Rotaract\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 473, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dfr@ioc.co.uk (Doug Rabson)\nSubject: VESA local bus\nLines: 7\nNntp-Posting-Host: rhino.ioc.co.uk\nOrganization: Intelligent Office Company Ltd.\n\nIs it possible to plug an ordinary ISA card into a VESA localbus slot?\nI am running out of slots and I have one spare localbus slot.\n\n--\nDoug Rabson, IOC Ltd.\t| Email:  dfr@ioc.co.uk\nPhone: +44 81 528 9864\t|\t  drabson@cix.compulink.co.uk\nFax:   +44 81 528 9878\t|\t  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 474, "properties": {"category": "sci.electronics", "text": "From: ray@ole.cdac.com (Ray Berry)\nSubject: Re: $25 network\nOrganization: Cascade Design Automation\nLines: 11\n\nzjoc01@hou.amoco.com (Jack O. Coats) writes:\n\n>The same folks now have out LBL (Little Big Lan) for $75.  I think you\n>get it for $50 if you already own $25 Network.  LBL works with Arcnet,\n>parallel ports, and serial ports in any combination for up to 250 or so\n>nodes.\n\n    LBL now offers ethernet support also, although presently it is limited\nto NE1000/NE2000 style boards.  LBL owners can get an update for $8.50.\n-- \nRay Berry kb7ht ray@ole.cdac.com  rjberry@eskimo.com  73407.3152@compuserve.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 475, "properties": {"category": "alt.atheism", "text": "From: edm@twisto.compaq.com (Ed McCreary)\nSubject: Re: thoughts on christians\nIn-Reply-To: bobbe@vice.ICO.TEK.COM's message of 16 Apr 93 05: 10:18 GMT\nOrganization: Compaq Computer Corp\nLines: 26\n\n>>>>> On 16 Apr 93 05:10:18 GMT, bobbe@vice.ICO.TEK.COM (Robert Beauchaine) said:\n\nRB> In article <ofnWyG600WB699voA=@andrew.cmu.edu> pl1u+@andrew.cmu.edu (Patrick C Leger) writes:\n>EVER HEAR OF\n>BAPTISM AT BIRTH?  If that isn't preying on the young, I don't know what\n>is...\n>\nRB>   \nRB>   No, that's praying on the young.  Preying on the young comes\nRB>   later, when the bright eyed little altar boy finds out what the\nRB>   priest really wears under that chasible.\n\nThe same thing Scotsmen where under there kilt.\n\nI'll never forget the day when I was about tweleve and accidently\nwalked in on a roomfull of priests sitting around in their underware\ndrinking beer and watching football.  \n\nKind of changed my opinion a bit.  They didn't seem so menacing after\nthat.\n\n\n--\nEd McCreary                                               ,__o\nedm@twisto.compaq.com                                   _-\\_<, \n\"If it were not for laughter, there would be no Tao.\"  (*)/'(*)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 476, "properties": {"category": "rec.motorcycles", "text": "From: coburnn@spot.Colorado.EDU (Nicholas S. Coburn)\nSubject: Re: Shipping a bike\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 31\n\nIn article <1qkhrm$7go@agate.berkeley.edu> manish@uclink.berkeley.edu (Manish Vij) writes:\n>\n>Can someone recommend how to ship a motorcycle from San Francisco\n>to Seattle?  And how much might it cost?\n>\n>I remember a thread on shipping.  If someone saved the instructions\n>on bike prep, please post 'em again, or email.\n>\n>Thanks,\n>\n>Manish\n\nStep 1) Join the AMA (American Motorcycling Association).  Call 1-800-AMA-JOIN.\n\nStep 2) After you become a member, they will ship your bike, UNCRATED to \njust about anywhere across the fruited plain for a few hundred bucks.\n\nI have used this service and have been continually pleased.  They usually\nonly take a few days for the whole thing, and you do not have to prepare\nthe bike in any way (other than draining the gas).  Not to mention that\nit is about 25% of the normal shipping costs (by the time you crate a bike\nand ship it with another company, you can pay around $1000)\n\n\n________________________________________________________________________\nNick Coburn                     DoD#6425                      AMA#679817\n                  '88CBR1000              '89CBR600\n                       coburnn@spot.colorado.edu\n________________________________________________________________________\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 477, "properties": {"category": "rec.sport.hockey", "text": "From: popovich@cs.columbia.edu (Steve Popovich)\nSubject: Re: Truly a sad day for hockey\nIn-Reply-To: Anna Matyas's message of Fri, 16 Apr 1993 13:34:29 -0400\nOrganization: Columbia University\nLines: 19\n\n\"Mom\" writes:\n>I fear that within the next decade or so the only professional sports team\n>left in Pittsburgh will be the Steelers.\n\nPerish the thought...but you know, you may be right, at least as far\nas MAJOR LEAGUE professional sports teams go.  They all seem to be\nbecoming BIG MONEY games, much more so than at any previous time.  To\nthink that if I am ever able to move back home several years from now,\nall that may be there is an AHL team, at best...SIGH.\n\nThe interesting thing is that the NHL is also expanding, at the same\ntime as it is dramatically increasing the amount of money needed to\noperate a team.  This would seem to indicate that there's a BIG\nshake-out about to occur in the next few years, unless player salaries\ncan somehow be brought under control.  Frankly, I don't see how the\nNHL's current drive for expansion is supportable under its current\noperating conditions.  If revenue sharing AND a salary cap don't come\ninto the NHL soon, look out.\n\t-Steve\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 478, "properties": {"category": "comp.sys.mac.hardware", "text": "From: guykuo@carson.u.washington.edu (Guy Kuo)\nSubject: Quadra 700 Memory Install FAQ\nOrganization: University of Washington\nLines: 69\nNNTP-Posting-Host: carson.u.washington.edu\nSummary: Instructions for Quadra 700 memory installation\nKeywords: memory,quadra,700,install\n\nThis is turning into a FAQ\n\n\nHere is how to violate your Quadra 700 warranty and install your own\nmemory.\n\n1)  Insert usual disclaimer here\n \n2)  Remove the top lid of the machine. You will see the floppy disk and\n    hard drive mounted in a plastic tower. Follow the usual anti-static\n    precautions and of course make sure the machine is OFF when you do\n    this. Unplug the wall and monitor power supply cords from the back\n\tof the mac.\n \n3)  Remove the power supply by pulling the plastic interlocking tab on the\n    tower forward and simultaneously pulling the power supply straight up.\n    The tab is a piece of plastic from the left posterior aspect of the\n    tower which extends downward to hook on to the power supply. You may\n    also feel a horseshoe shaped piece at the right portion of the power\n    supply. Leave that alone. The plastic tab from the tower is all you\n    need release.\n \n4)  Look at the rear of the tower assembly. You will see the flat ribbon\n    SCSI connector to the hard drive, a power cable and a flat ribbon cable\n    leading to the floppy drive. Disconnect all these from the motherboard.\n    The hard drive power cable connector has a tab which must be squeezed\n    to release it.\n                                            \n5)  Unplug the drive activity LED from its clear plastic mount\n\n6)  Look down the posterior, cylindrical section of the plastic tower. A\n    phillips head screw is at the base. Remove it, taking care not to drop\n    it into the case. A bit of gummy glue on your screwdriver is helpful\n    here.\n\n7)  Remove the tower assembly by pulling medially the plastic tab on the\n    right side of the tower. This tab prevents the tower from sliding\n\tposteriorly. Slide the entire tower assembly 1 cm posteriorly then\n\tlift the tower assembly straight up and out of the case.\n\n8)  Congratulations, you have now gained access to your machine's SIMM\n    slots.\n\n9)  The six big slots are for VRAM. One usually must install all six to\n    gain useful video modes. All SIMMS (RAM or VRAM)  installed with their\n\tchips facing the front of the motherboard.\n\t\n    The four smaller sockets in front are for RAM SIMMS. Install SIMMS in\n\tsets of four into these sockets. Be sure you seat the SIMMS squarely\n\tand firmly into a fully upright position.\n\t\n10) Reinstall the tower assembly by first placing the right wall of the\n    tower against the right wall of the case with the tower assembly about\n\t1 cm posterior of its intended position. Lower the tower assembly into\n\tplace while maintaining contact with the right wall of the case.\n    Once fully down, slide the tower assembly anteriorly until it clicks\n    into place.\n\t\n11) Reconnect the motherboard ends of the cables. DONT'T FORGET THE FLOPPY\n    DRIVE CABLE.\n\n12) Replace the phillips head screw\n\n13) Drop the power supply straight down into place until it clicks in.\n\n14) Plug the hard drive activity light back into its clear plastic mount\n\nGuy Kuo <guykuo@u.washington.edu>\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 479, "properties": {"category": "soc.religion.christian", "text": "From: rbutera@owlnet.rice.edu (Robert John Butera)\nSubject: Re: about Eliz C Prophet\nOrganization: Rice University\nLines: 33\n\nIn article <Apr.21.03.27.03.1993.1388@geneva.rutgers.edu> JEK@cu.nih.gov writes:\n>Rob Butera asks about a book called THE LOST YEARS OF JESUS, by\n>Elizabeth Clare Prophet.\n\n> ...\n\n>marriage, if I remember aright), base almost all their teachings on\n>messages they have allegedly received by telepathy from Tibet. I\n>should be surprised if the book you mention has any scholarly basis.\n\nActually, there was very little to the book.  First of all looking at\nthe titles of her other books, I would personally consider her \nto be engaged in a bizarre form of Christian-like mysticism\nheavily influenced by eastern philosphies (great titles like \n_The_Astrology_of_the_4_Horsemen_).\n\nHowever, other than the Chapter One into, there's nothing original,\nbiased, or even new this book.  It is basically a collection of previously\npublished works by those who claim that there exist Buddhist and Hindu\nstories that Christ visited India and China (he was known as Issa) \nduring the period from late teens to age 30.\n\nConclusion:  the book actually lets you come to your own view by presenting\na summary of various published works and letters, all of which you\ncould verify independently.  It includes refutations to such works as\nwell.  Therefore, even if you think she is theologically warped, this \nbook is a nice reference summary for the interested.\t \n\n-- \nRob Butera        |\nECE Grad Student  |     \"Only sick music makes money today\" \nRice University   |\nHouston, TX 77054 |               - Nietzsche, 1888\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 480, "properties": {"category": "talk.politics.guns", "text": "From: ccdarg@dct.ac.uk (Alan Greig)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Dundee Institute of Technology\nLines: 18\n\nIn article <C5sIAJ.Ks7@news.udel.edu>, roby@chopin.udel.edu (Scott W Roby) writes:\n\n> So, why didn't the BD's leave when the gas was first introduced much \n> earlier in the morning?  Didn't they care about the children?\n> \n> Why didn't they release the children weeks ago?\n\nBecause most of the children were with their parent(s). Do you understand\nthat concept? Here's a bunch of people who believe in their minds that\nthe forces of Satanic evil are outside and you expect them to hand over\ntheir own children? Were you born that stupid or does it take a lot\nof effort?\n\n-- \nAlan Greig                            Janet: A.Greig@uk.ac.dct\nDundee Institute of Technology\t   Internet: A.Greig@dct.ac.uk\nTel: (0382) 308810                 (Int +44 382 308810)\n         ** Never underestimate the power of human stupidity **\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 481, "properties": {"category": "rec.autos", "text": "From: lstowell@pyrnova.mis.pyramid.com (Lon Stowell)\nSubject: Re: How hard to change springs on F350 truck?\nArticle-I.D.: pyramid.186044\nReply-To: lstowell@pyrnova.pyramid.com.pyramid.com (Lon Stowell)\nOrganization: Pyramid Technology Corporation\nLines: 5\n\nIn article <1993Apr3.005245.10615@michael.apple.com> ems@michael.apple.com (E. Michael Smith) writes:\n>Does it take any peculiar tools to remove the rear springs from a Ford\n>F350 truck? o\n\n   Naah.  Just a coupla nice big bumps.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.024+0000", "event": "documents", "entityId": 482, "properties": {"category": "misc.forsale", "text": "Subject: Joe Venuti Record Wanted\nFrom: rbrooks@eis.calstate.edu (Richard J. Brooks)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 7\n\n\nIf anyone has Joe Venuti's record \"Fiddle on Fire\" and would like to sell it\nplease contact me.\n\n---------------------------------------------------------------------------\nRichard J. Brooks (El Cerrito, CA)      Internet: rbrooks@eis.calstate.edu\nCompuServe: 71121,3406                  Internet: 71121.3406@compuserve.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 483, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: atheist?\nOrganization: Technical University Braunschweig, Germany\nLines: 38\n\nIn article <ePVk2B3w165w@mantis.co.uk>\nTony Lezard <tony@mantis.co.uk> writes:\n \n(Deletion)\n>> In other words, if there were gods, they would hardly make sense, and\n>> it is possible to explain the phenomenon of religion without gods.\n>>\n>> The concept is useless, and I don't have to introduce new assumptions\n>> in order to show that.\n>\n>Yes I fully agree with that, but is it \"I don't believe gods exist\", or\n>\"I believe no gods exist\"? As MANDTBACKA@FINABO.ABO.FI (Mats Andtbacka)\n>pointed out, it all hinges on what you take the word \"believe\" to mean.\n>\n \nFor me, it is a \"I believe no gods exist\" and a \"I don't believe gods exist\".\n \nIn other words, I think that statements like gods are or somehow interfere\nwith this world are false or meaningless. In Ontology, one can fairly\nconclude that when \"A exist\" is meaningless A does not exist. Under the\nPragmatic definition of truth, \"A exists\" is meaningless makes A exist\neven logically false.\n \nA problem with such statements is that one can't disprove a subjective god\nby definition, and there might be cases where a subjective god would even\nmake sense. The trouble with most god definitions is that they include\nsome form of objective existence with the consequence of the gods affecting\nall. Believers derive from it a right to interfere with the life of others.\n \n \n(Deletion)\n>\n>Should the FAQ be clarified to try to pin down this notion of \"belief\"?\n>Can it?\n>\n \nHonestly, I don't see the problem.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 484, "properties": {"category": "misc.forsale", "text": "From: sunshine@cco.caltech.edu (Tom Renner)\nSubject: Apple IIgs\nArticle-I.D.: gap.1qkm6lINNrc6\nDistribution: usa\nOrganization: California Institute of Technology, Pasadena\nLines: 29\nNNTP-Posting-Host: punisher.caltech.edu\n\nI have a basic Apple IIgs system that I need to sell.  Everything comes with\noriginal boxes and documentation, and is in excellent condition.  Make an\noffer; I'll consider anything:\n\nApple IIgs 1 meg\n3.5\" drive\n13\" AppleColor RGB monitor\nkeyboard/mouse/mousepad/dustcovers/1200 baud Applemodem/random other worthless\n    stuff.\n\nHere's a list of the games/apps:\n\n   Games:\t\t\t\t   Applications:\n\nBattleChess\t\t\t\tSystem Disk\nDefender of the Crown\t\t\tSystem Tools IIGS\nArkanoid II\t\t\t\tWordPerfect\nBubble Ghost\t\t\t\tAppleworks\nShadowgate\t\t\t\tWriter's Choice elite\nBalance of Power\t\t\tDraw Plus\nMarble Madness\t\t\t\tCopy II Plus\nZany Golf\t\t\t\tProTERM communications software\nChessmaster 2100\n\nIf interested, contact:\n\nsunshine@cco.caltech.edu\n\n*******************************************************************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 485, "properties": {"category": "sci.crypt", "text": "Subject: Re: Once tapped, your code is no good any more.\nFrom: a_rubin@dsg4.dse.beckman.com (Arthur Rubin)\n <a_rubin.735242424@dsg4.dse.beckman.com> <1993Apr20.151718.2576@magnus.acs.ohio-state.edu>\nDistribution: na\nOrganization: Beckman Instruments, Inc.\nNntp-Posting-Host: dsg4.dse.beckman.com\nLines: 15\n\nIn <1993Apr20.151718.2576@magnus.acs.ohio-state.edu> jebright@magnus.acs.ohio-state.edu (James R Ebright) writes:\n\n>In article a_rubin@dsg4.dse.beckman.com (Arthur Rubin) writes:\n\n>>I wouldn't trust the NSA.  I think I would trust the President on this, but\n>>I'm not certain he would be told.\n\n>\"I am not a crook.\" President Richard M. Nixon\n>                    ^^^^^^^^^\n\nTHIS President.  (And I could easily be wrong.)\n--\nArthur L. Rubin: a_rubin@dsg4.dse.beckman.com (work) Beckman Instruments/Brea\n216-5888@mcimail.com 70707.453@compuserve.com arthur@pnet01.cts.com (personal)\nMy opinions are my own, and do not represent those of my employer.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 486, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nSummary: Promoting competition does not depend upon libertarians\nOrganization: Free the Barbers, Inc.\nLines: 60\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <C5KH8G.961@cbnewse.cb.att.com> doctor1@cbnewse.cb.att.com (patrick.b.hailey) writes:\n>In article <1993Apr15.170731.8797@isc-br.isc-br.com> steveh@thor.isc-br.com (Steve Hendricks) writes:\n>\n>[ These two paragraphs are from two different posts.  In splicing them \n>  together it is not my intention to change Steve's meaning or misrepresent\n>  him in any way.  I don't *think* I've done so. ]\n>\n>>As noted in another thread (Limiting govt), the problem libertarians face\n>>is insuring that the \"limited government\" they seek does not become the \n>>tool of private interests to pursue their own agenda.\n>> \n>>It is a failure of libertarianism if the ideology does not provide any\n>>reasonable way to restrain such actions other than utopian dreams.  Just\n>>as Marxism \"fails\" to specify how pure communism is to be achieved and\n>>the state is to \"wither away,\" libertarians frequently fail to show how\n>>weakening the power of the state will result in improvement in the human\n>>condition.\n\n\t\t   [Patrick's example of anti-competitive regulations for\n            auto dealers deleted.]\n>Here's what I see libertarianism offering you:\n>...\n>This does not seem to me to be a utopian dream, but basic human decency\n>and common sense.  A real grass-roots example of freedom and liberty.\n>And yes, not having a few people acting as our masters, approving or\n>rejecting each of our basic transactions with each other, does strike me\n>as a wonderful way to improve the human condition.\n>\n>   Thanks awfully,\n>             Patrick\n\nLet me try to drag this discussion back to the original issues.  As\nI've noted before, I'm not necessarily disputing the benefits of \neliminating anti-competitive legislation with regard to auto dealers,\nbarbers, etc.  One need not, however, swallow the entire libertarian\nagenda to accomplish this end.  Just because one grants the benefits of\nallowing anyone who wishes to cut hair to sell his/her services without\nregulation does not mean that the same unregulated barbers should be \nfree to bleed people as a medical service without government intervention.  \n(As some/many libertarians would argue.)  \n\nOn a case by case basis, the cost/benefit ratio of government regulation\nis obviously worthwhile.  The libertarian agenda, however, does not call\nfor this assessment.  It assumes that the costs of regulation (of any\nkind) always outweigh its benefits.  This approach avoids all sorts of \ndifficult analysis, but it strikes many of the rest of us as dogmatic, \nto say the least.\n\nI have no objection to an analysis of medical care, education, \nnational defense or local police that suggests a \"free market\" can provide\na more effective, efficient means of accomplishing social objectives\nthan is provided through \"statist\" approaches.   With some notable\nexceptions, however, I do not see such nitty-gritty, worthwhile \nanalysis being carried out by self-professed libertarians.  \n\njsh\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 487, "properties": {"category": "comp.sys.mac.hardware", "text": "From: arie@eecs.umich.edu (Arie Covrigaru)\nSubject: Re: HP DeskWriter 550C...Opinions? Feedback!\nIn-Reply-To: phil@csc.liv.ac.uk's message of 14 Apr 93 14:22:39 GMT\nReply-To: arie@eecs.umich.edu\nOrganization: AI Lab, The University of Michigan\n\t<C5H99r.IC9@compsci.liverpool.ac.uk>\nLines: 16\n\nI like it a lot. It is worth the additional expense. The only problem I\nfound is with MS Word (5.1a). If you have a table the is longer than\na page and the cells have a visible border, the last (bottom of page)\nline on the first page will be missing. It makes no difference how\nthe table is formatted. The worst is that it doesn't show up in word's\npage view or page preview. \n--\n\n\nArie.\n\n=========================================================================\n| Arie Covrigaru                 |  University of Michigan AI Lab       |\n| Phone: (313)994-8887           |  Room 149, Advanced Technology Bldg. |\n| Internet: arie@eecs.umich.edu  |  1101 Beal Ave., Ann Arbor, MI 48109 |\n=========================================================================\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 488, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: domet@ucbeh.san.uc.edu\nSubject: Windows NT, HELP! PLEASE HELP!\nDistribution: world\nOrganization: Univ of Cincinnati Academic IT Services\nLines: 26\n\nWINDOWS NT\n\n\nI need some information on the new Windows NT.\nAnything you have would be appreciated. I know nothing about it.\n(Well, except that it exists.)\nSome questions... \n\nMemory requirements, hard drive space, release date? is it out?\nHow is IBM reacting? Intel?\nCan it replace other LAN OS's?\n\nANYTHING else like specs, speed, etc..\n\nThanks in advance!\n\nLuke\n\nEmail me at internet address:  domet@ucbeh.san.uc.edu\n              bitnet address:  domet@ucbeh\n\n\n\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 489, "properties": {"category": "rec.sport.baseball", "text": "From: zappala@pollux.usc.edu (Daniel Zappala)\nSubject: Re: Darrrrrrrrryl\nOrganization: University of Southern California, Los Angeles, CA\nLines: 31\nDistribution: world\nNNTP-Posting-Host: pollux.usc.edu\n\n\nMark Singer brings up the Strawberry Incident, where he lost a homerun\nand the fan caught it.\n\n|> Before each Dodger game the public address announcer makes a speech\n|> wherein he says that fans are welcome to the souvenirs of balls that\n|> are hit into the stands as long as they do not interfere with any \n|> that are in the field of play.  Was the fan wrong?  Should he have\n|> been more aware of the situation and acted to avoid any possibility\n|> of interference? \n\nYes, I think he should have done more to get out of the way.  As much\nas fans want to catch a ball, they really should be aware that winning\nthe game is more important.  As a Dodger fan, he has to be aware that\nthis is the home stadium, and that entails helping the home team win\nin any way possible.  As soon as the ball was hit that far, his first\ninstinct should be to root for Darryl to catch it, not to try to catch\nit himself, particularly when he is sitting that close.\n\nI enjoy the attitude of the Wrigley fans, where they are against \nvisiting team home runs so much, they actually throw them back on the\nfield.\n\nNow, this has nothing to do with whether Darryl could have caught it or\nnot.  Sure, he probably screwed up, but the fan should realize his\nfirst responsibility is to get out of the way and help the team win.\n\n\nDaniel\ndaniel@caldera.usc.edu\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 490, "properties": {"category": "rec.motorcycles", "text": "From: kendall@adobe.com (Janice Kendall)\nSubject: Looking for Women's Motorcycle Helmet\nOrganization: Adobe Systems Incorporated\nDistribution: ba\nLines: 11\n\n I'm looking to buy a used motorcycle helmet.  I'm interested in a full\n face shield, but not necessarily a helmet with the piece around the chin.\n\n Please email me directly.\n   \n Janice Kendall    kendall@adobe.com    ...!{decwrl|sun}!adobe!kendall\n\n\t\tONWARD; THRU THE FOG!  (TM)\n\t\t\t\t- Oat Willie's (TM)\n \n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 491, "properties": {"category": "talk.politics.guns", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: Founding Father questions\nLines: 35\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nIn article <1993Apr5.153951.25005@eagle.lerc.nasa.gov>, pspod@bigbird.lerc.nasa.gov (Steve Podleski) writes:\n>arc@cco.caltech.edu (Aaron Ray Clements) writes:\n>>Wasn't she the one making the comment in '88 about George being born with\n>>a silver foot in his mouth?  Sounds like another damn politician to me.\n>>\n>>Ain't like the old days in Texas anymore.  The politicians may have been\n>>corrupt then, but at least they'd take a stand.  (My apologies to a few\n>>exceptions I can think of.)  \n>>\n>>News now is that the House may already have a two-thirds majority, so \n>>her \"opposition\" out of her concern for image (she's even said this\n>>publicly) may not matter.\n>\n>Do people expect the Texans congressmen to act as the N.J. Republicans did?\n\nThere is a (likely) veto proof majority in the house.  The Senate,\nunfortunately, is a different story.  The Lt.Gov. has vowed that the bill will\nnot be voted on, and he has the power to do it.  In addition, the Senate is a\nmuch smaller, and more readily manipulated body.\n\nOn ther other hand, the semi-automatic ban will likely not live, as at least\nfifty per cent of the house currently opposes it, and it is VERY far down in\nthe bill order in the Senate (I believe it will be addressed after the CCW\nbill).\n\nAnd I thought my TX Political Science class was a waste of time!\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |God gave us weather so we wouldn't complain\npyron@skndiv.dseg.ti.com          |about other things.\nPADI DM-54909                     |\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 492, "properties": {"category": "misc.forsale", "text": "From: fbaker12@jade.tufts.edu (Frederick A. Baker)\nSubject: Re: 486DX/33 CPU chip for sale, $250\nOrganization: Tufts University - Medford, MA\nDistribution: na\nLines: 8\n\n\n\tThis entire dispute over a chip has deluged this newsgroup with a \n\tlot of posts that have nothing to SELL.   It all harkens back to a\n\tcertain user's post of a month or so ago: STOP POSTING COMPUTER\n\tEQUIPMENT HERE!!!   Save it for the computer.forsale newsgroups!\n\tIf you don't GET the computer.forsale newsgroups, then ask your\n\tsysadmin. to try to subscribe to it at your location.   Otherwise,\n\tknock it off!   \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 493, "properties": {"category": "alt.atheism", "text": "From: 9051467f@levels.unisa.edu.au (The Desert Brat)\nSubject: Keith IS a relativist!\nOrganization: Cured, discharged\nLines: 25\n\nIn article <1pigidINNsot@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n\n> Not so.  If you are thrown into a cage with a tiger and get mauled, do you\n> blame the tiger?\n\nAHA! He admits it! He IS a moral relativist!\n\nKeith, if you start wafffling on about how it is different for a human\nto maul someone thrown into it's cage (so to speak), you'd better start\nposting tome decent evidence or retract your 'I think there is an absolute\nmorality' blurb a few weeks ago.\n\n> keith\n\nThe Desert Brat\n-- \nJohn J McVey, Elc&Eltnc Eng, Whyalla, Uni S Australia,    ________\n9051467f@levels.unisa.edu.au      T.S.A.K.C.            \\/Darwin o\\\nFor replies, mail to whjjm@wh.whyalla.unisa.edu.au      /\\________/\nDisclaimer: Unisa hates my opinions.                       bb  bb\n+------------------------------------------------------+-----------------------+\n|\"It doesn't make a rainbow any less beautiful that we | \"God's name is smack  |\n|understand the refractive mechanisms that chance to   | for some.\"            |\n|produce it.\" - Jim Perry, perry@dsinc.com             |    - Alice In Chains  |\n+------------------------------------------------------+-----------------------+\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 494, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: towwang@statler.engin.umich.edu (Tow Wang Hui)\nSubject: NEEDED: ProDesigner IIs drivers\nKeywords: Orchid ProDesigner IIs Windows 3.1\nArticle-I.D.: srvr1.1pst16INN4m3\nReply-To: towwang@engin.umich.edu\nDistribution: world\nOrganization: University of Michigan (CAEN)\nLines: 22\nNNTP-Posting-Host: statler.engin.umich.edu\nOriginator: towwang@statler.engin.umich.edu\n\n\nCould anybody please provide me a copy of the Windows 3.1 drivers and grabbers\nfrom Orchid Technologies for use with their ProDesigner IIs ISA video card? Currently I do not have access to a modem to dial out to Orchid BBS.\nIf you can help me, please do any of the following, wichever is most convenient\nto you:\n\n1)\nCopy the binary files to a directory readable by any user in any cell of the\nAndrew File System\n\n2)\nUpload the binary files to an anonymous FTP site (where allowed).\n\n3)\nuuencode the files and send them to me by electronic mail.\n\nPlease notify me by electronic mail at\ntowwang@caen.engin.umich.edu\n\nThanks in advance.\n\nFrancisco\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 495, "properties": {"category": "talk.politics.mideast", "text": "From: hovig@uxa.cso.uiuc.edu (Hovig Heghinian)\nSubject: Re: Seventh Century A.D. Armenian Math Problems\nOrganization: University of Illinois at Urbana\nLines: 25\n\nkoc@rize.ECE.ORST.EDU (Cetin Kaya Koc) writes:\n\n>> Problem 1\n>> \n>> My father told me the following story. During the famous wars between the \n>> Armenians and the Persians, prince Zaurak Kamsarakan performed extraordinary\n>> heroic deeds. Three times in a single month he attacked the Persian troops. \n>> The first time, he struck down half of the Persian army. The second time, \n>> pursuing the Persians, he slaughtered one fourth of the soldiers. The third \n>> time, he destroyed one eleventh of the Persian army. The Persians who were \n>> still alive, numbering two hundred eighty, fled to Nakhichevan. And so, from\n>> this remainder, find how many Persian soldiers there were before the  \n> massacre.\n>> \n\n>Answer: a(1-1/2-1/4-1/11)=280 -> a = 1760\n\n>Corollary: Armenians strike, slaughter, destroy, and massacre. After all,\n>           they are not as innocent as the asala network claims.\n\n   Hmm ... Turks sure know how to keep track of deaths, but they seem to\nlose count around 1.5 million.\n\nHovig\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 496, "properties": {"category": "rec.sport.hockey", "text": "From: andy.bgsu.edu (Ryan )\nSubject: What are you smoking? (wasRe: My Predictions of a classic playoff year!)\nOrganization: BGSU\nLines: 59\n\n\n> \tNorris Division\n> \n\n> \n> TOR vs DET    TOR in 7   (THis , like MON vs QUE, will be another intense \n> \t\t\t (series to watch!)\n> \n> CHI vs TOR    TOR in 7   (Potvin will be settling in nicely by this point.)\n> \n\n> \n> Vancouver vs Toronto\t\tToronto in 6  (Potvin will be series MVP)\n> \n *This is what kills me:\n> \tSTANLEY CUP FINALS  \n> \n> Toronto Maple Leafs    vs    Montreal Canadiens    \n> \t(The Classic Stanley Cup Final matchup!!) <---also a dream come true!\n> \n> \tMontreal wins the Stanley cup in the 7th game 1 - 0 in double overtime.\n> Roy and Potvin are spectacular throughout the series and share series MVP (if \n> that is possible) Vincent Damphouse nets game winner from a brilliant pass by\n> Brian Bellows! Canadiens star(?) Denis Savard watched his buddies play from the\n> owners box nursing that splinter on his thumb which has left him on the \n> disabled list since the first game of the playoffs (awww shucks). \n\n> \t\t\t\t\t\t\tPaul\n> \t\t\t\t\t\tDie hard Habs Fan living with\n> \t\t\t\t\t\t3 Die hard Leafs fans!\n*******************************************************************************\nSpeaking of \"die hard\", that's what I did when I read this, died hard\nlaughing!\n\nToronto, to the Cup finals???\n\nFirst of all, has anyone on the planet heard of the team from Detroit?  Al\nMorgani (or however you spell the idiot's name) must be from Chicago,\nbecause on ESPN, he said \"it's not even close--Chicago will definatly win\nthe Norris Division in the Playoffs, no other team is close.\"  Everyone is\npicking Chicago!  I don't get it, he says it's an \"easy choice\"?\nGod, Chicago was 1-4-1 against the Wings, and they won the division by a\npoint or two, followed closely by Toronto, who is also a good team!\nAs for the Leafs beating Detroit--doubt it, but even if they do, they\naren't going to get by Chicago.  If (even more amazingly) they get past the\nHawks, they would probably face Vancouver, and lose.\nAs for The Habs reaching the Finals, forget it.  Even I, as a devoted Wings\nfan, will watch the Penguins easily three-peat as Cup winners.  Lemieux,\nJagr, Tocchet, Stevens, and Barrasso, its a done deal.  Sorry Detroit, wait\ntil next year.\nBut hey, these were Paul's picks, and everyone has a right to their own\nopinnions, but the Leafs to the Finals??? Yeah. If they make it there, I'll\nwalk to Toronto to get some tickets, and that's a 700 mile walk!  \n\n--Ryan--\n\nDetroit Red Wings--the forgotten team!  Go Wings!!  Let's hope the Penguins\ngo out\nearly!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 497, "properties": {"category": "sci.med", "text": "From: uabdpo.dpo.uab.edu!gila005 (Steve Holland)\nSubject: Re: Crohn's Disease\nOrganization: UAB - Gastroenterology\nLines: 32\n\nIn article <1993Apr14.174824.12295@westminster.ac.uk>, kxaec@sun.pcl.ac.uk\n(David Watters) wrote:\n> \n> Dear all,\n> \n> I am a Crohn's Disease sufferer and I'm interested if anyone knows of any current research that is going on into the subject. I've done some investigation myself so you don't need to spare me any details. I've had the fistulas, the ileostomy, etc..\n> \n> Is a \"cure\" on the horizon ?\n> \n> I am not in the medical profession so if you do reply I would appreciate plain speak.\n> \n> I'd prefer to be mailed direct as I don't always get a chance to read the news.\n> \n> Thank you in advance.\n> \n> Dave.\nThe best group to keep you informed is the Crohn's and Colitis Foundation\nof America.  I do not know if the UK has a similar organization.  The\naddress of\nthe CCFA is \n\nCCFA\n444 Park Avenue South\n11th Floor\nNew York, NY  10016-7374\nUSA\n\nThey have a lot of information available and have a number of newsletters.\n \nGood Luck.\n\nSteve\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 498, "properties": {"category": "rec.motorcycles", "text": "From: todd@psgi.UUCP (Todd Doolittle)\nSubject: Re:  Motorcycle Courier (Summer Job)\nDistribution: world\nOrganization: Not an Organization\nLines: 37\n\nIn article <1poj23INN9k@west.West.Sun.COM> gaijin@ale.Japan.Sun.COM (John Little - Nihon Sun Repair Depot) writes:\n>In article <8108.97.uupcb@compdyn.questor.org> \\\n>ryan_cousineau@compdyn.questor.org (Ryan Cousineau) writes:\n>%\n>% I think I've found the ultimate summer job: It's dangerous, involves\n>% motorcycles, requires high speeds in traffic, and it pays well.\n>% \n>% So my question is as follows: Has anyone here done this sort of work?\n>% What was your experience?\n>% \n[Stuff deleted]\n>   Get a -good- \"AtoZ\" type indexed streetmap for all of the areas  you're\n>   likely to work.   Always carry  plenty of black-plastic  bin liners  to\n\nCheck with the local fire department.  My buddy is a firefighter and they\nhave these small map books which are Amazing!  They are compact, easy to\nuse (no folding).  They even have a cross reference section in which you\nmatch your current cross streets with the cross streets you want to go to\nand it details the quickest route.  They gave me an extra they had laying\naround.  But then again I know all those people I'm not really sure if they\nare supposed to give/sell them. (The police may also have something\nsimilar).\n \n>-- \n>   ------------------------------------------------------------------------\n>  | John Little  - gaijin@Japan.Sun.COM  - Sun Microsystems. Atsugi, Japan | \n>   ------------------------------------------------------------------------\n\n--\n\n--------------------------------------------------------------------------\n  ..vela.acs.oakland.edu!psgi!todd  | '88 RM125 The only bike sold without\n  Todd Doolittle                    |           a red-line.         \n  Troy, MI                          | '88 EX500                      \n  DoD #0832                         |                           \n--------------------------------------------------------------------------\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 499, "properties": {"category": "comp.graphics", "text": "From: clump@acaps.cs.mcgill.ca (Clark VERBRUGGE)\nSubject: Re: BGI Drivers for SVGA\nOrganization: SOCS, McGill University, Montreal, Canada\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 29\n\nDominic Lai (cs_cylai@cs.ust.hk) wrote:\n: Simon Crowe (scrowe@hemel.bull.co.uk) wrote:\n: 8~> I require BGI drivers for Super VGA Displays and Super XVGA Displays. Does \n: 8~> anyone know where I could obtain the relevant drivers ? (FTP sites ??)\n\n: \tI would like to know too!\n\n: Regards,\n: Dominic\n\ngarbo.uwasa.fi (or one of its many mirrors) has a file\ncalled \"svgabg40\" in the programming subdirectory.\nThese are svga bgi drivers for a variety of cards.\n\n[from the README]:\n\"Card types supported: (SuperVGA drivers)\n  Ahead, ATI, Chips & Tech, Everex, Genoa, Paradise, Oak, Trident (both 8800 \n  and 8900, 9000), Tseng (both 3000 and 4000 chipsets) and Video7.\n  These drivers will also work on video cards with VESA capability.\n  The tweaked drivers will work on any register-compatible VGA card.\"\n\nenjoy,\nClark Verbrugge\nclump@cs.mcgill.ca\n\n--\n\n HONK HONK BLAT WAK WAK WAK WAK WAK UNGOW!\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 500, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kayman@Xenon.Stanford.EDU (Robert Kayman)\nSubject: Re: Why is my mouse so JUMPY? (MS MOUSE)\nOrganization: Computer Science Department, Stanford University.\nLines: 42\n\nIn article <C638zs.pr@cs.vu.nl> wlieftin@cs.vu.nl (Liefting W) writes:\n>ecktons@ucs.byu.edu (Sean Eckton) writes:\n>\n>>I have a Microsoft Serial Mouse and am using mouse.com 8.00 (was using 8.20 \n>>I think, but switched to 8.00 to see if it was any better).  Vertical motion \n>>is nice and smooth, but horizontal motion is so bad I sometimes can't click \n>>on something because my mouse jumps around.  I can be moving the mouse to \n>>the right with relatively uniform motion and the mouse will move smoothly \n>>for a bit, then jump to the right, then move smoothly for a bit then jump \n>>again (maybe this time to the left about .5 inch!).  This is crazy!  I have \n>>never had so much trouble with a mouse before.  Anyone have any solutions?  \n>\n>>Does Microsoft think they are what everyone should be? <- just venting steam!\n>\n>I think I have the same problem. I think it is caused by the rubber ball\n>in the mouse, which doesn't roll so smooth. The detectors in the mouse\n>notice this and whoops, I hit a mine (using minesweeper :-) ).\n>\n>I think the solution will be buying a new mouse, and/or using a mouse pad.\n>\n>Wouter.\n\n\nAnd/or taking the rubber ball out of the mouse (should be directions\nin the manual or on the bottom of the mouse) and cleaning it with\nalcohol (isopropyl, I believe - the same alcohol as used for cleaning\nyour cassette deck).  This is good to do every so often, even if you\nhave a mouse pad.  Dust still gets caught in the mouse and on the\nrubber ball.  As well, lint and other garbage may find it's way onto\nthe rubber ball and get into the mouse damaging the horizontal and\nvertical sensors.\n\nHope this helps.  Good luck.\n\n--\nSincerely,\n\nRobert Kayman\t----\tkayman@cs.stanford.edu  -or-  cpa@cs.stanford.edu\n\n\"In theory, theory and practice are the same.  In practice, they are not.\"\n\"You mean you want the revised revision of the original revised revision\n revised?!?!\"\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 501, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: The wholesale extermination of the Muslim population by the Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 82\n\nIn article <C5yJII.E6B@blaze.cs.jhu.edu> arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n\n>But some of this is verifiable information.  For instance, the person who\n>knows about the buggy product may be able to tell you how to reproduce the\n>bug on your own, but still fears retribution if it were to be known that he\n>was the one who told the public how to do so.\n\nTypical 'Arromdian' of the ASALA/SDPA/ARF Terrorism and Revisionism \nTriangle. Well, does it change the fact that during the period of 1914 \nto 1920, the Armenian Government ordered, incited, assisted and participated \nin the genocide of 2.5 million Muslim people because of race, religion\nand national origin?\n\n\n1) Armenians did slaughter the entire Muslim population of Van.[1,2,3,4,5]\n2) Armenians did slaughter 42% of Muslim population of Bitlis.[1,2,3,4]\n3) Armenians did slaughter 31% of Muslim population of Erzurum.[1,2,3,4]\n4) Armenians did slaughter 26% of Muslim population of Diyarbakir.[1,2,3,4]\n5) Armenians did slaughter 16% of Muslim population of Mamuretulaziz.[1,2,3,4]\n6) Armenians did slaughter 15% of Muslim population of Sivas.[1,2,3,4]\n7) Armenians did slaughter the entire Muslim population of the x-Soviet\n   Armenia.[1,2,3,4]\n8) .....\n\n[1] McCarthy, J., \"Muslims and Minorities, The Population of Ottoman \n                   Anatolia and the End of the Empire,\" New York \n                   University Press, New York, 1983, pp. 133-144.\n\n[2] Karpat, K., \"Ottoman Population,\" The University of Wisconsin Press,\n                 1985.\n\n[3] Hovannisian, R. G., \"Armenia on the Road to Independence, 1918. \n                         University of California Press (Berkeley and \n                         Los Angeles), 1967, pp. 13, 37.\n\n[4] Shaw, S. J., 'On Armenian collaboration with invading Russian armies \n                  in 1914, \"History of the Ottoman Empire and Modern Turkey \n                  (Volume II: Reform, Revolution & Republic: The Rise of \n                  Modern Turkey, 1808-1975).\" (London, Cambridge University \n                  Press 1977). pp. 315-316.\n\n[5] \"Gochnak\" (Armenian newspaper published in the United States), May 24, \n              1915.\n\n\nSource: \"Adventures in the Near East\" by A. Rawlinson, Jonathan Cape, \n30 Bedford Square, London, 1934 (First published 1923) (287 pages).\n(Memoirs of a British officer who witnessed the Armenian genocide of 2.5 \n million Muslim people)\n\np. 178 (first paragraph)\n\n\"In those Moslem villages in the plain below which had been searched for\n arms by the Armenians everything had been taken under the cloak of such\n search, and not only had many Moslems been killed, but horrible tortures \n had been inflicted in the endeavour to obtain information as to where\n valuables had been hidden, of which the Armenians were aware of the \n existence, although they had been unable to find them.\"\n\np. 175 (first paragraph)\n\n\"The arrival of this British brigade was followed by the announcement\n that Kars Province had been allotted by the Supreme Council of the\n Allies to the Armenians, and that announcement having been made, the\n British troops were then completely withdrawn, and Armenian occupation\n commenced. Hence all the trouble; for the Armenians at once commenced\n the wholesale robbery and persecution of the Muslem population on the\n pretext that it was necessary forcibly to deprive them of their arms.\n In the portion of the province which lies in the plains they were able\n to carry out their purpose, and the manner in which this was done will\n be referred to in due course.\"\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 502, "properties": {"category": "rec.autos", "text": "From: reb@hprnd.rose.hp.com (Ralph Bean)\nSubject: Re: saturn pricing blatherings\nArticle-I.D.: hpchase.1pqkjv$46l\nOrganization: Hewlett Packard Roseville Site\nLines: 12\nNNTP-Posting-Host: hprnd.rose.hp.com\nX-Newsreader: TIN [version 1.1 PL8.8]\n\nMihir Pramod Shah (mps1@cec1.wustl.edu) wrote:\n: Robert J. Wade writes:\n: > until...and more Saturn retailers are built(like 2 in the same city), \n:                        \t\t     ^^^^^^^^^^^^^^^^^^^^^^^\n: ...most medium and large cities have...a small handful of Saturn dealers now\n\nSacramento has two Saturn dealerships.\n\n: Mihir Shah\n\nRalph Bean\nhprnd.rose.hp.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 503, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Re: IBM value/point\nOrganization: Ford Motor Company Research Laboratory\nLines: 33\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\nacifuent (acifuent@isluga.puc.cl) wrote:\n: Hi!        \n: \tI will change my 286 soon, and i read something about the ibm ps\n: value-point... anyone have one? the video card is really a 24 bit card?\n: how much cost in U.S.?\n: \tAnd the last question... can the ps value point 486 sx 25mhz\n: upgrade to a 486 dx2 66mhz???\n: \n: \tThank you veeery much in advance!\n: \n: \tAlejandro Cifuentes H.\n: \tacifuent@isluga.puc.cl\n\nThese questions can be answered by any dealer of IBM Value Points, but, I will\nprovide some unsolicited advice -- the most amusing kind of advice.\n\nToday (Tueday 4-6-93) IBM is supposed to officially announce the introduction\nof the VESA Local Bus Value Point systems.  These systems still have on-board\nvideo and disk which are far better than the prior Value Point systems, and\nyou get VESA Local Bus for (future?) upgrades.  We are going to buy three of\nthem with 17\" monitors (also a newly available), and one of the three will\nimmediately be upgraded to UltraStor 34F caching SCSI disk controller and\neither the ATI GUP or the Viper graphics board.\n\nDo not buy a 486SX sytem.\n\nMy personal philosophy on upgrade policy is that it is not loss-free.  When\nyou earn money you pay taxes, when you spend money you pay taxes.  (i.e. they\nget you coming and going).  Translated this means take infrequent but large\nsteps.  You are far better off short term AND long term if you avoid the SX\nmodels and go straight to the DX or DX-2 models.\n\nGordon\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.025+0000", "event": "documents", "entityId": 504, "properties": {"category": "talk.politics.mideast", "text": "From: flax@frej.teknikum.uu.se (Jonas Flygare)\nSubject: Re: 18 Israelis murdered in March\nOrganization: Dept. Of Control, Teknikum, Uppsala\nLines: 184\n\t<FLAX.93Apr4151411@frej.teknikum.uu.se>\n\t<1993Apr5.125419.8157@thunder.mcrcim.mcgill.edu>\nNNTP-Posting-Host: frej.teknikum.uu.se\nIn-reply-to: hasan@McRCIM.McGill.EDU's message of Mon, 5 Apr 93 12:54:19 GMT\n\nIn article <1993Apr5.125419.8157@thunder.mcrcim.mcgill.edu> hasan@McRCIM.McGill.EDU writes:\n\n\n[After a small refresh Hasan got on the track again.]\n\n   In article <FLAX.93Apr4151411@frej.teknikum.uu.se>, flax@frej.teknikum.uu.se (Jonas Flygare) writes:\n\n   |> In article <1993Apr3.182738.17587@thunder.mcrcim.mcgill.edu> hasan@McRCIM.McGill.EDU  writes:\n\n   |>    In article <FLAX.93Apr3142133@frej.teknikum.uu.se>, flax@frej.teknikum.uu.se (Jonas Flygare) writes:\n\n   |>    |> I get the impression Hasan realized he goofed and is now\n   |>    |> trying to drop the thread. Let him. It might save some\n   |>    |> miniscule portion of his sorry face.\n\n   |>    Not really. since i am a logical person who likes furthering himself\n   |>    from any \"name calling\", i started trashing any article that contains\n   |>    such abuses without responding to, and sometimes not even reading articles \n   |>    written by those who acquired such bad habits from bad company!\n   |> \n   |> Ah, but in my followup on the subject (which you, by the way, never bothered\n   |> responding to..) there was no name-calling. Hence the assumption.\n   |> Do you feel more up to it now, so that we might have an answer?\n   |> Or, to refresh your memory, does the human right issue in the area\n   |> apply to Palestinians only? Also, do you claim there is such a thing as \n   |> forfeiting a human right? If that's possible, then explain to the rest of \n   |> us how there can exist any such thing?\n   |> \n   |> Use your logic, and convince us! This is your golden chance!\n\n   |> Jonas Flygare,\n\n\n   well , ok. let's see what Master of Wisdom, Mr. Jonas Flygare,\n   wrote that can be wisdomely responded to :\n\nAre you calling names, or giving me a title? If the first, read your \nparagraph above, if not I accept the title, in order to let you get into the\num, well, debate again.\n\n\n   Master of Wisdom writes in <1993Mar31.101957@frej.teknikum.uu.se>:\n\n   |> [hasan]\n\n   |> |> [flax]\n\n   |> |> |> [hasan]\n\n   |> |> |>    In case you didNOT know, Palestineans were there for 18 months. \n   |> |> |>    and they are coming back\n   |> |> |>    when you agree to give Palestineans their HUMAN-RIGHTS.\n\n   |> |> |>    Afterall, human rights areNOT negotiable.\n\n   |> |> |> Correct me if I'm wrong, but isn't the right to one's life _also_\n   |> |> |> a 'human right'?? Or does it only apply to palestinians?\n\n   |> |> No. it is EVERYBODY's right. However, when a killer kills, then he is giving\n   |> |> up -willingly or unwillingly - his life's right to the society. \n   |> |> the society represented by the goverment would exercise its duty by \n   |> |> depriving the killer off his life's right.\n\n   |> So then it's all right for Israel to kill the people who kill Israelis?\n   |> The old 'eye for an eye' thinking? Funny, I thought modern legal systems\n   |> were made to counter exactly that.\n\n   So what do you expect me to tell you to tell you, Master of Wsidom, \n\t\t\t\t\t\t\t       ^^^\n------------------------------------------------------------------\nIf you insist on giving me names/titles I did not ask for you could at\nleast spell them correctly. /sigh.\n\n   when you are intentionally neglecting the MOST important fact that \n   the whole israeli presence in the occupied territories is ILLEGITIMATE, \n   and hence ALL their actions, their courts, their laws are illegitimate on \n   the ground of occupied territories.\n\nNo, I am _not_ neglecting that, I'm merely asking you whether the existance\nof Israeli citicens in the WB or in Gaza invalidates those individuals right\nto live, a (as you so eloquently put it) human right. We can get back to the \nquestion of which law should be used in the territories later. Also, you have \nnot adressed my question if the israelis also have human rights.\n\n   What do you expect me to tell you, Master of Wisdom, when I did explain my\n   point in the post, that you \"responded to\". The point is that since Israel \n   is occupying then it is automatically depriving itself from some of its rights \n   to the Occupied Palestineans, which is exactly similar the automatic \n   deprivation of a killer from his right of life to the society.\n\nIf a state can deprive all it's citizens of human rights by its actions, then \ntell me why _any_ human living today should have any rights at all?\n\n   |> |> In conjugtion with the above, when a group of people occupies others \n   |> |> territories and rule them by force, then this group would be -willingly or \n   |> |> unwillingly- deprived from some of its rights. \n\n   |> Such as the right to live? That's nice. The swedish government is a group\n   |> of people that rule me by force. Does that give me the right to kill\n   |> them?\n\n   Do you consider yourself that you have posed a worthy question here ?\n\nWorthy or not, I was just applying your logic to a related problem.\nAm I to assume you admit it wouldn't hold?\n\n   |> |> What kind of rights and how much would be deprived is another issue?\n   |> |> The answer is to be found in a certain system such as International law,\n   |> |> US law, Israeli law ,...\n\n   |> And now it's very convenient to start using the legal system to prove a \n   |> point.. Excuse me while I throw up.\n\n   ok, Master of Wisdom is throwing up. \n   You people stay away from the screen while he is doing it !\n\nOh did you too watch that comedy where they pipe water through the telephone?\nI'll let you in on a secret... It's not for real.. Take my word for it.\n\n   |> |> It seems that the US law -represented by US State dept in this case-\n   |> |> is looking to the other way around when violence occurs in occupied territories.\n   |> |> Anyway, as for Hamas, then obviously they turned to the islamic system.\n\n   |> And which system do you propose we use to solve the ME problem?\n\n   The question is NOT which system would solve the ME problem. Why ? because\n   any system can solve it. \n   The laws of minister Sharon says kick Palestineans out of here (all palestine). \n\nI asked for which system should be used, that will preserve human rights for \nall people involved. I assumed that was obvious, but I won't repeat that \nmistake. Now that I have straightened that out, I'm eagerly awaiting your \nreply.\n\n   Joseph Weitz (administrator responsible for Jewish colonization) \n   said it best when writing in his diary in 1940:\n\t   \"Between ourselves it must be clear that there is no room for both\n\t   peoples together in this country.... We shall not achieve our goal\n\t\t\t\t\t\t^^^                  ^^^\n\t   of being an independent people with the Arabs in this small country.\n\t   The only solution is a Palestine, at least Western Palestine (west of\n\t   the Jordan river) without Arabs.... And there is no other way than\n\t   to transfer the Arabs from here to the neighbouring countries, to\n\t   transfer all of them; not one village, not one tribe, should be \n\t   left.... Only after this transfer will the country be able to\n\t   absorb the millions of our own brethren. There is no other way out.\"\n\t\t\t\t   DAVAR, 29 September, 1967\n\t\t\t\t   (\"Courtesy\" of Marc Afifi)\n\nJust a question: If we are to disregard the rather obvious references to \ngetting Israel out of ME one way or the other in both PLO covenant and HAMAS\ncharter (that's the english translations, if you have other information I'd\nbe interested to have you translate it) why should we give any credence to \na _private_ paper even older? I'm not going to get into the question if he\nwrote the above, but it's fairly obvious all parties in the conflict have\ntheir share of fanatics. Guess what..? Those are not the people that will\nmake any lasting peace in the region. Ever. It's those who are willing to \nmake a tabula rasa and start over, and willing to give in order to get \nsomething back.\n\n\n   \"We\" and \"our\" either refers to Zionists or Jews (i donot know which). \n\n   Well, i can give you an answer, you Master of Wisdom, I will NOT suggest the \n   imperialist israeli system for solving the ME problem !\n\n   I think that is fair enough .\n\nNo, that is _not_ an answer, since I asked for a system that could solve \nthe problem. You said any could be used, then you provided a contradiction.\nGuess where that takes your logic? To never-never land. \n\n\n   \"The greatest problem of Zionism is Arab children\".\n\t\t\t   -Rabbi Shoham.\n\nOh, and by the way, let me add that these cute quotes you put at the end are\na real bummer, when I try giving your posts any credit.\n--\n\n--------------------------------------------------------\nJonas Flygare, \t\t+ Wherever you go, there you are\nV{ktargatan 32 F:621\t+\n754 22 Uppsala, Sweden\t+\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 505, "properties": {"category": "talk.politics.guns", "text": "From: pspod@bigbird.lerc.nasa.gov (Steve Podleski)\nSubject: Re: Founding Father questions\nNntp-Posting-Host: bigbird.lerc.nasa.gov\nOrganization: NASA Lewis Research Center [Cleveland, Ohio]\nLines: 21\n\narc@cco.caltech.edu (Aaron Ray Clements) writes:\n>Wasn't she the one making the comment in '88 about George being born with\n>a silver foot in his mouth?  Sounds like another damn politician to me.\n>\n>Ain't like the old days in Texas anymore.  The politicians may have been\n>corrupt then, but at least they'd take a stand.  (My apologies to a few\n>exceptions I can think of.)  \n>\n>News now is that the House may already have a two-thirds majority, so \n>her \"opposition\" out of her concern for image (she's even said this\n>publicly) may not matter.\n\nDo people expect the Texans congressmen to act as the N.J. Republicans did?\n-- \n\n-----------------------------------------------------------------------------\nSteve Podleski\t\t\t|     phone: 216-433-4000\nNASA Lewis Research Center     \t|    \nCleveland, Ohio  44135         \t|     email: pspod@gonzo.lerc.nasa.gov \n-----------------------------------------------------------------------------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 506, "properties": {"category": "comp.windows.x", "text": "From: aruit@idca.tds.philips.nl (Anton de Ruiter)\nSubject: ??? TOP-30 MOTIF Applications ???\nOrganization: Digital Equipment Enterprise bv, Apeldoorn, The Netherlands.\nLines: 35\n\nHello everybody,\n\nI am searching for (business) information of Motif applications, to create a\nTOP-30 of most used WordProcessors, Spreadsheets, Drawing programs, Schedulers\nand Fax programs, etc..\n\nPlease mail me all your information or references.  I will summaries the\nresults on this media.\n\n\nThank you in advance,\n\nAnton de Ruiter.\n\n+----------------------------------------------------------------------------+\n|  _                       __            |Digital Equipment Corporation      |\n| /_| __ /_ _  __  __/_   /__)   ./_ _  _|WorkGroup Products (WGP)           |\n|/  |/ /(_ (_)/ / (_/(-' / \\ (_//(_ (-'/ |OBjectWorks (OBW)                  |\n|                                        |Ing. Anton de Ruiter MBA           |\n|                                        |Software Product Manager           |\n|                     __                 |Post Office Box 245                |\n|       |   /_  _ /_ / _'_ _     _       |7300 AE  Apeldoorn, The Netherlands|\n|       |/|/(_)/ /\\ (__// (_)(_//_)      |Oude Apeldoornseweg 41-45          |\n|                              /         |7333 NR  Apeldoorn, The Netherlands|\n|          __                            |-----------------------------------|\n|         /__)_ _  __/   _  /_  _        |Mail    : HLDE01::RUITER_A         |\n|        /   / (_)(_/(_/(_ (_ _\\         |DTN     : 829-4359                 |\n|                                        |Location: APD/F1-A22               |\n|                                        |-----------------------------------|\n|     __  _                              |Internet: aruit@idca.tds.philips.nl|\n|    /  )/_) ._  _  /_ |   /_  _ /_  _   |UUCP    : ..!mcsun!philapd!aruit   |\n|   (__//__)/(-'(_ (_  |/|/(_)/ /\\ _\\    |Phone   : 31 55   434359 (Business)|\n|         _/                             |Phone   : 31 5486 18199  (Private) |\n|                                        |Fax     : 31 55   432199           |\n+----------------------------------------------------------------------------+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 507, "properties": {"category": "sci.space", "text": "From: bon@lte.e-technik.uni-erlangen.de (Uwe Bonnes)\nSubject: Re: Sunrise/ sunset times\nOrganization: LTE, University of Erlangen, Germany\nDistribution: world\nNNTP-Posting-Host: aladin.e-technik.uni-erlangen.de\nLines: 15\n\n\nIn article <1993Apr21.141824.23536@cbis.ece.drexel.edu>, jpw@cbis.ece.drexel.edu (Joseph Wetstein) asked:\n|> \n|> Hello. I am looking for a program (or algorithm) that can be used\n|> to compute sunrise and sunset times.\n|> \n|> I would appreciate any advice.\n|> \n|> Joe Wetstein\n|> jpw@coe.drexel.edu\n\nTo compute this, and many other astronomical things, go and get (x)ephem written\nby Elwood C. Downey. It is e.g. on export.lcs.mit.edu\n\nUwe Bonnes  bon@lte.e-technik.uni-erlangen.de\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 508, "properties": {"category": "rec.sport.baseball", "text": "From: cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc)\nSubject: Re: And America's Team is....But Why?\nOrganization: University of Illinois at Urbana\nLines: 43\n\nkingoz@camelot.bradley.edu (Orin Roth) writes:\n\n>   Well, officially it's the Braves. At least up until they started winning\n>   it was. Are they still, officially? \n>   If so, why? and how did they receive this label?\n>   \n>   Unoffically, but without a doubt, America's Team is the Cubs. Why?\n>   Well, my guess is because America loves underdogs. Every year, no matter\n>   the Cubs' talent or the predictions, they never (as close to never as\n>   possible) win anything. Over the years, as the losing has mounted, America\n>   has fallen in love with these perennial losers. The Cubs have more fans\n>   in Chicago then some teams do worldwide. The Cubs have more fans \n>   worldwide than most of the teams in their division combined. \n>   An aura of excitement surrounds the Cubs at the beginning of the season\n>   like no one else. (including the WS champs) It must be that Eternal Hope.\n>   \"this is the year. they've got the talent. they're off to a good start.\n>    they've got the pitching (or hitting, or whatever their strong point is\n>    at the time).\" It's that inevitability that the Cubs WILL eventually \n>    win the WS again. When? Only God knows. Since it's been so long, it \n>   could come at any time, or it could be another 85 years. But until they\n>   do finally win, and start winning consistently, The Cubs will remain\n>   America's Lovable Underdogs. The Cubs are...AMERICA'S TEAM.\n>   Orin.\n>   Bradley U>\n\n\tThe defenition of the Underdog is a team that has no talent and comes\nout of nowhere to contend.  The '69 Mets and '89 Orioles are prime examples,\nnot the Cubs.  I root for the Cubs, because I feel sorry for them, but \nbasically they are dogs.  The Pirates today are a great example of an underdog.\nIf the Rockies and Marlins compete, they will be underdogs.  The North Stars\ntrip to the Stanley Cup finals was a good example of an underdog's journey. \nThe Cubs have a good team this year, and play in a weak division, they are much\nless than America's Team.\n\n\n> \n>--\n>I'm really a jester in disguise!                                   \n-- \nChintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n******************************Neil Peart, (c)1981*****************************\n*\"Quick to judge, Quick to Anger, Slow to understand, Ignorance and Prejudice*\n*And********Fear********Walk********************Hand*********in*********Hand\"*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 509, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dabl2@nlm.nih.gov (Don A.B. Lindbergh)\nSubject: Diamond SS24X, Win 3.1, Mouse cursor\nOrganization: National Library of Medicine\nLines: 10\n\n\nAnybody seen mouse cursor distortion running the Diamond 1024x768x256 driver?\nSorry, don't know the version of the driver (no indication in the menus) but it's a recently\ndelivered Gateway system.  Am going to try the latest drivers from Diamond BBS but wondered\nif anyone else had seen this.\n\npost or email\n\n--Don Lindbergh\ndabl2@lhc.nlm.nih.gov\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 510, "properties": {"category": "talk.politics.misc", "text": "Organization: City University of New York\nFrom: <F36SI@CUNYVM.BITNET>\nSubject: Re : BillaryKlintonKligue Illegal War\nLines: 5\n\n      The operation going on in Somalia is a peacekeeping/peaceenforcement\n      operation where force may be used.  It is not a war.  It is also legal\n      under international law, which is higher than US law.  The operation\n      is occuring under the ageis of the United Nations.  Can't get a higher\n      authority than that on this earth.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 511, "properties": {"category": "rec.autos", "text": "From: europa@tomcat.raleigh.ibm.com (Welch Bryan)\nSubject: Re: Changing oil by self.\nDistribution: usa\nNntp-Posting-Host: tomcat.raleigh.ibm.com\nOrganization: IBM, Research Triangle Park, North Carolina\nLines: 20\n\nIn article <1993Apr15.222254.6651@rtfm.mlb.fl.us>, gwalker@rtfm.mlb.fl.us (Grayson Walker) writes:\n|> Why crawl under the car at all? I have a machine I got for my boat that \n|> pulls the oil out under suction through the dip stick tube. It does an\n|> excellent job and by moving the suction tube around, you can get more \n|> old oil out than by using the drain plug. I think I paid $25 at E&B Marine.\n|> The oil goes into a steel 3 gal can - wait until it cools and decant into\n|> your favorite device. I use soft drink bottles. Easy to take them down to\n|> the local oil recycle center.\n\nThis does sound good, but I heard it tends to leave more grit, etc in the \noil pan.  Also, I've been told to change the old when it's hot before the\ngrit has much time to settle.\n\nAny opinions?\n\n-- \nBryan Welch                                  Amateur Radio: N0SFG\nInternet: europa@vnet.ibm.com (best), bwelch@scf.nmsu.edu \nEverything will perish save love and music.--Scots Gaelic proverb\nDisclaimer: It's all opinion.  Everything.  So there.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 512, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Nostalgia\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 1049\n\n\n  The recent rise of nostalgia in this group, combined with the\n  incredible level of utter bullshit, has prompted me to comb\n  through my archives and pull out some of \"The Best of Alt.Atheism\"\n  for your reading pleasure.  I'll post a couple of these a day\n  unless group concensus demands that I stop, or I run out of good\n  material.\n\n  I haven't been particularly careful in the past about saving\n  attributions.  I think the following comes from John A. Johnson,\n  but someone correct me if I'm wrong.  This is probably the longest\n  of my entire collection.\n\n________________________________________________________\n\n\n                                  So that the\n                                  Prophecy be\n                                   Fulfilled\n\n                                     * * *\n\n       In considering the Christian religion, and judging it\naccording to its claims, it is important to look at its claims at\nfulfilling earlier Jewish prophecy.  The scribe Matthew is perhaps\nthe most eager to draw out what he thinks are prophetic answers in\nthe career of Jesus of Nazareth.  As you will see, Matthew's main\nstrategy is to take various Old Testament passages, often not even\nabout the promised Messiah, and apply them to the circumstances in\nthe New Testament.  We must also bear in mind the question of the\nauthenticity of the accounts.  Since the gospels were written at\nleast 35 years after Jesus was executed, we do not know how much\nhappened exactly as stated.  But, for purposes of analysis, we\nwill take particular claims at face value.\n\nImmanuel:\n\n       We begin, of course, at the beginning.\n\n       (Mt 1.21-22):  \"[Mary] will bear a son, and you,\n       Joseph, will name him 'Jesus' (which means G'd is\n       salvation), for he will save his people from their\n       sins.\"  All this happened to fulfil what the lord had\n       spoken by a prophet:\n\n       [Isaiah 7.1-16]:  In the days of Ahaz (c. 750 BCE),\n       king of Judah, Rezin of Syria and Pekah of Israel made\n       war on Jerusalem (capitol of Judah), but could not\n       quite conquer it.  When the house of David (i.e. Ahaz\n       and his court in Judah) were told of this, ...its\n       heart and the heart of its people shook...   And, the\n       lord G'd said to Isaiah, \"go to meet with Ahaz...\" \n       ...And the lord spoke to Ahaz (through prophet Isaiah,\n       naturally) saying, \"Ask a sign of G'd your lord.  It\n       can be as deep as Sheol or as high as heaven.\"  But,\n       Ahaz said, \"I won't ask; I will not put the lord to a\n       test.\"  Then (Isaiah) said, \"Hear then, O house of\n       David.  Is it not enough for you to weary men, that\n       you must weary my god too?  Therefore, the lord\n       himself will give you a sign:  Behold, a young woman\n       is with child and will bear a son, and name him\n       \"Immanuel,\" which means, \"G'd is with us.\"   He will\n       eat curds and honey when he knows how to refuse evil\n       and choose good.  For, before the child knows how to\n       refuse evil and choose good, the land of the two kings\n       you dread will have been deserted...\n\nMatthew homes in on just the sentence that is in italics. \nFurther, he the Hebrew word \"almah,\" (young woman), as\nspecifically, \"virgin.\"  But, this is not a prophecy about the\nMessiah.  It is not a prophecy about an event to happen 750 years\nlater.  It is not a prophecy about a virgin (bethulah) mother.  In\nshort, it not about Jesus.  Matthew has made use of a verse out of\ncontext, and tries to make it fit the specific case of Mary.  It\nshould be noted that if we want to read the prophecy in a general\nmanner, a very general one, it can be made to fit Mary.  Mary,\nvirgin or not, was indeed a young woman with child.  Of course,\nthe fit is shady and has problems.  Jesus, while thought of by\nlater Christians to be G'd walking among men, was never called by\nthe name, Immanuel.  If Christianity wished to claim this prophecy\nfor Jesus, it becomes at best a cut-and-paste prophecy... a second\nclass prophecy.   Not too convincing.\n\nEgypt:\n\n       After Jesus's birth in Bethlehem, Matthew tells about a\nquick (and elsewhere unmentioned) excursion to Egypt, as if he\nwishes to liken Jesus to Moses.  This was done to escape an\nalleged infanticidal rampage of the king, Herod.\n\n       [Mt 2.15]  ...and remained there until the death of\n       Herod.  This was to fulfil what the lord had spoken:\n       \"Out of Egypt I have cal-led my son.\"\n\n\nWhat the lord really said was this.\n\n       [Hosea 11.1]  When Israel was a child, I loved him. \n       And, out of Egypt I called my son.  The more I called\n       them (my people), the more they went from me; they\n       kept sacrificing to the Ba'als, and kept burning\n       incense to idols.\n\nMatthew conveniently omits the rest of Hosea's oracle.  But, it\nwas indeed Israel that, once called out of Egypt, wanted to\nreturn.  This is history.  Jesus is certainly not being spoken of\nhere.  And, if we are to draw some kind of parallel here, we wind\nup with a Jesus that flees and resists G'd.   Again, this prophecy\nis just not as convincing as Matthew probably had hoped.\n\nRachel Weeps:\n\n        While Jesus is off vacationing in Egypt, Matthew says that\nKing Herod sought to kill him, and thus ordered the executions of\nall young male children.  Matthew then writes,\n\n       [Mt 2.17-18]   By this, that which was spoken by the\n       prophet Jeremiah was fulfilled:\n\n       \"A voice was heard in Ramah, wailing and loud\n       lamentation-- Rachel weeping for her children;\n       she refused to be consoled, because they were\n       no more.\"   \n\nThe reference is to a passage in Jeremiah 31.15, referring to the\ncarrying off of Israel into exile by Sargon (of Assyria) in 722\nBCE.  Rachel, the ancestor of the major tribes of Israel, Ephraim,\nand Manasseh, is said to weep for her descendants who are \"no\nmore.\"  It is metaphorical, of course, since Rachel lived and dies\nbefore the Hebrews were even in the Egyptian exile.\n       It is interesting to note that it was Leah, not Rachel, who\nwas the ancestor of the Judeans (the land where Jesus and\nBethlehem were).  If anyone should do weeping for her \"children,\"\nit is Leah.  The only connexion that Rachel has with Bethlehem is\nthat the legends have it that she was buried north of the city,\n\"on the way to Ephrath, (Bethlehem).\"\n       As for Herod and his infanticide, it is rather unlikely\nthat such an event actually occurred.  One never knows, but the\nevent is not mentioned or alluded to anywhere else in the Bible,\nnor is it mentioned in any of the secular records of the time. \nHerod was particularly unliked in his reign, and many far less\nevil deeds of Herod were carefully recorded.  This might be a\nprime example of how events were added to Jesus's life to enhance\nthe message of the church's gospel.\n       Because of the whole story's similarity to the tale of the\ninfant Moses in Egypt, it is highly likely that it is a device set\nup by Matthew to add prophetic, yet artificial, approval of Jesus.\nIt is not surprising that Matthew conveniently neglects to mention\nthe rest of the Jeremiah quote.   The \"children\" the prophet\nspeaks of are not dead, but exiled in the Assyrian Empire.  G'd\ncomforts the weeping Rachel, saying that the children will be\nreturned-- he will gather them back together.  Of course, this\nwould not suit Matthew's purpose, as the children he speaks of are\ndead for good.  Again, the \"prophecy\" Matthew sets up is not even\nthat, and to anyone who bothers to check it out, is not too\nconvincing.\n\nThe Nazarene:\n\n       We do not even have to go to the next chapter to find\nanother Matthean prophecy.  After leaving Egypt, Joseph & wife\ntake the infant Jesus to live in the city of Nazareth, \n\n       [Mt 2.23]  ...that what was spoken of by the prophets\n       might be fulfilled, \"He shall be called a Nazarene.\"\n\nFirst thing we notice is that Matthew does not mention the name of\nthe prophet(s) this time.  Second, we have to ask who \"He\" is. \nThere are no Messianic prophecies speaking of a Nazarene.  Worse,\nthere are no prophecies, period, mentioning a Nazarene.  Still\nworse, there are no Nazarenes mentioned in the Old Testament at\nall.  In the book of Judges, an angel tells Samson's mother that\nshe will,\n\n       [Judges 13.5]  \"...conceive and bear a son.  No razor\n       shall tough his head, for he will be a Nazirite to his\n       god from the day of his birth.  He will deliver Israel\n       from the hands of the Philistines.\"\n\nThis is of course not a prophecy of Jesus, or the messiah of G'd. \nBut, it is the best that can be found.  Obviously, Matthew has\nbegun to go overboard in cut-and-paste prophecies, in that he is\nsimple making them up now.\n\nBearing our\nDiseases:\n\n       Jesus next goes around healing people of physical illnesses\nand disabilities.\n\n       [Mt 8.17]   This was to fulfil what was spoken by the\n       prophet Isaiah, \"He took our infirmities and bore our\n       diseases.\"\n\nAs expected, the verse quoted in Isaiah is quoted out of context,\nand a few words are skewed to fit the Christian scheme.  We have,\n\n       [Is 53.4]  Surely he, [the suffering servant], has\n       borne our sickness, and carried our pains.\n\nFrom a reading of the surrounding passages in Isaiah, we know that\nthe prophet is speaking in present tense of the collective nation\nof Israel, Jehovah's chosen servant and people.  He speaks to the\nIsraelites suffering in exile, in the voice of the gentile nations\nthat look upon it.  This image is deeply ingrained in Jewish\nidentity --an image of a chastised, yet cherished, Israel as the\ninstrument of the nations' salvation by G'd.\n      The verses speak of Israel taking on the sicknesses which\nare the literal and metaphorical manifestations of guilt and\ndiscipline.  They do not speak of a \"servant\" going around and\nhealing people.  Notice that the servant in Isaiah takes on the\nsicknesses and pains of the nations (and individual Jews).  Jesus,\nas we all know, did not take the diseases onto himself.  The\nverses here in Isaiah are not a prophecy of something to come, but\nrather something that had already happened.  While it is believed\nthat Jesus took on the eternal punishment of hell, he did not bear\nthe illnesses he healed.  So, while someone might want to say\nthat, figuratively, Jesus reenacted the deeds of Israel in his\nspiritual atonement, he has to admit that Matthew's parallel\nmisses where he intended it to have its effect.\n\n\nSilent Messiah:\n\n      Upon healing multitudes of commoners, it is said that Jesus\nordered them to keep quiet, presumable so that he wouldn't arouse\nthe attention of the local rulers.\n\n       [Mt 12.15-21]  This was to fulfill what was spoken by\n       the prophet Isaiah.   \n\n       \"Behold my servant whom I have chosen, my beloved,\n       with whom my soul is pleased.  I will put my spirit on\n       him, and he will announce justice to the Gentiles.  He\n       will not wrangle or cry aloud, nor will anyone hear\n       his voice in the streets.  He will not break a bruised\n       reed or quench a smoldering wick until he brings\n       justice to victory, and the gentiles will hope in his\n       name.\"\n\nThe Isaiah passage quoted reads,\n\n       [Is 42.1-4]  Behold my servant whom I uphold, my\n       chosen, in whom my soul delights.  I have put my\n       spirit on him, and he will bring forth justice to the\n       nations.  We will not cry or lift up his voice, or\n       make it heard in the street.  He will not break a\n       bruised reed, or quench a smoldering wick.  He will\n       faithfully bring forth justice.  He will not fail\n       (burn dimly) or be discouraged (bruised) until he has\n       established justice in the earth.  And the coastlands\n       await his law.\n\nYou see, Matthew has conveniently left out part of the passage,\nbecause it does not suit the dealings of Jesus.  Christians could\nnever think of Jesus failing, never would the \"light\" of mankind\nburn dimly.  But, the servant nation of Israel will indeed come to\nan end when its job is done.  When the gentiles come to embrace\nG'd there will no longer be a chosen people, but rather all will\nbe the children of G'd.  Also, the ending phrase has been changed\nfrom the Judaic \"...the coastlands await his law.\" to the\nChristologic, \"the Gentiles will hope in his name.\"   While the\noriginal proclaims the Torah law of Jehovah, the other rewrites it\nto fit its strange doctrine of \"believing in the name.\"  If one\nhas any doubt the servant referred to is not Jesus, one has only\nto read the whole chapter, Isaiah 42, and hear about the beloved\nbut blind and imperfect servant, \"a people robbed and\nplundered...\"   So, we see that when Matthew's attempt at\n\"prophecy\" is examined, it crumbles.\n\nThree Days and\nThree Nights:\n\n      Now we come upon a prophecy supposedly uttered by the very\nmouth of the god Jesus himself.  He speaks of his crucifixion and\nresurrection.\n\n       [Mt 12.40]   For as Jonah was in the belly of the\n       whale for three days and three nights, so will the Son\n       of Man be in the heart of the earth three days and\n       three nights.\n\nBefore any further discussion can occur, it is necessary to know\nhow the Jews understood days.  As far as day names went, each was\n24 hours long, lasting from sunset 6pm to the following sunset\n6pm.  What was referred to as a \"day\" was the period of light from\n6am to the ending sunset at 6pm.  Thus, according to our time\nscale, a sabbath day began at 6pm Friday evening, and lasted until\n6pm saturday evening.  This is why the Jews celebrate their\nsabbath on the daylight portion of Saturdays, instead of Sundays. \n(It seems like a real miracle that Christians didn't forget that\nSaturday was indeed the seventh and last day of the week!)  Thus,\nwhen days and nights are referred to together, 12 hour daylight\nportions and 12 hour night periods are being spoken of.  Thus,\nJesus says that he will be in the grave, or in hell, or otherwise\nunresurrected for three days and three nights.\n\n      As the good book tells us, Jesus was crucified on the \"ninth\nhour,\" which is 3pm, Friday afternoon.  He then was put into the\ngrave sometime after that.  Then, Jesus left the grave, \"rose,\"\nbefore dawn of what we call Sunday (The dawn after the sabbath was\nover).  What this means is that Jesus was, using our time for\nclarity, in the grave from 6pm Friday night to some time before\n6am Sunday morning.  We could also add a little time before 6pm\nFriday, since the bible is not specific here.  What this means\nusing Jewish time is that he was in the grave for one day, two\nnights, and possibly a couple of hours of one day.  Certainly this\nis a problem for Jesus prediction.  There is absolutely no way we\nare even able to have his death involve three days and three\nnights --even using modern time measurements.   We then are led to\nsuspect that this error is another one of Matthew's little\nmistakes, and that the gospel writer put false words into his\ngod's mouth.   And no matter who made the prediction, it is more\nthan unconvincing... it is counter-convincing.\n\nHearing &\nUnderstanding:\n\n     Jesus tool on a habit of speaking to his vast audiences in\nparables-- stories in which a deeper meaning could be found, if\nyou were already one of the elect, those chosen to understand the\nmessage of Jesus.  He reasons that those who can understand the\nparables are the ones he wants.  If the people cannot understand\nthem, there is no need to bother with them, since they will not\naccept the \"plain\" message any better.  Matthew says,\n\n       [Mt 13.14-16]  With them [the audience] indeed in\n       fulfilled the prophecy of Isaiah which says, \n\n       \"You will indeed hear but never understand; and you\n       will indeed see, but never perceive.  Because this\n       people's heart has grown dull, their ears are heavy of\n       hearing, and they have shut their eyes so the they\n       would not perceive with them, her with their ears, and\n       understand with their heart, and turn for me to heal\n       them.\"\n\nThe original Isaiah passages are part of his earlier works, his\ncall to the ministry.  This is in 740 BCE, when Israel is\nflourishing, right before it falls under the authority of Assyria. \nIsaiah sees the good times ending, and also a vision from G'd,\ncalling him to bring reform to Israel and Judah.\n\n       [Is 6.9-13]  And G'd said, \"Go, and say to this\n       people, `Hear and hear, but do not understand; see and\n       see, but do not perceive.'   Make the heart of this\n       people fat, make their ears heavy, and shut their\n       eyes, so they will not see with their eyes, or hear\n       with their ears, and understand with their hearts, and\n       turn and be healed.\"  Then Isaiah said, \"How long,\n       lord?\"  And he said, \"Until the cities lie waste\n       without inhabitant, and houses without men, and the\n       land is utterly desolate, and the G'ds take men far\n       away, and forsaken places are many in the land.  And\n       though a tenth will remain in it, it will be burned\n       again, like a terebinth or an oak whose stump still\n       stands when the tree is felled.\" The holy seed is its\n       stump.\n\nHere we see that it is really G'd who causes the people of Israel\nto stop listening to the prophet's warnings, but reaffirms the\npromise made to Solomon's (and David's) seed/lineage.  If you read\nthe rest of Isaiah, you find that this is done to fulfil the plan\nof G'd to use Israel as a servant, a light to the nations.  (Look\nat Isaiah 42.18-25, 48.20, 49.3)\n     We see that Matthew has cut-and-pasted just a little portion\nof Isaiah's verse, to suit his own gospel needs.  More than that,\nhe has altered the words, to make it fit the people who didn't\nunderstand Jesus's stories.  And, as we see, Isaiah's verses are\nnot prophecies, but rather commands from G'd to him, in the\npresent.   Once again, Matthew's prophecy falls flat on its face. \n\n     Matthew tries again to make Jesus's parables look like they\nhave the prophetic approval.\n\n       [Mt 13.35]  ...he said nothing to them without a\n       parable.  This was to fulfil what was spoken of by the\n       prophet, \"I will open my mouth to them in parables.  I\n       will utter that which has been hidden since the\n       foundation of the world.\"\n\nMatthew really botches up here.  He attempts to quote not from a\nprophet, but from the Psalms.\n\n       [Ps 78.2-4]  I will open my mouth in parable.  I will\n       utter dark sayings of old, things that we all have\n       heard and known, things that our fathers have told us. \n       We will not hide them from their children, but tell to\n       the coming generation the glorious deeds of the\n       lord...\n\nAs was pointed out, the verses in the Psalms do not really come\nfrom a prophet.  You might also want to know that earlier copies\nof Matthew's gospel even inserted Isaiah's name as this prophet. \nApparently, later scribes caught the error and tried to cover some\nof it up.\n     Perhaps the most significant part of this is that, once\nagain, Matthew has altered the Old Testament Scriptures.  As Jesus\nhas said earlier, he speaks in parables so that some will not\nunderstand them.  The parables in the Psalms are not to be hidden. \nFurther, they speak of things \"known, that our fathers have told\nus.\"  Jesus deals with things \"hidden since the foundation of the\nworld.\"  Indeed Jesus dealt in a lot of secrecy and confusion. \nThis is in direct opposition to the parables in the Psalms.  No\nwonder Matthew had to rewrite them!   And still once again,\nMatthew's artificial prophecies fall flat on their face.  But,\nChristians rarely look at this.  Matthew's prophecies aren't the\nonly things about Christianity that are beginning to look bad.\n\n\nExcuses of\nLittle Faith:\n\n       In Mt. 17.14-21, we see that the disciples are able to go\naround casting out demons, except in one case.  Not knowing what\nepilepsy was, the people thought those with the disease were\npossesed with demons.  It is no wonder that the disciples were\nunable to \"dispossess\" the epileptic.  But, Jesus, perhaps no more\nenlightened than they, is reported to have rebuked them, saying\nthey didn't have enough faith.   This seems strange.  Why was this\ndemon special?  It seems that either a true believer has faith or\nhe does not.  Apparently, enough faith will allow someone to move\nmountains.  Of course, you will find no one, these days that can\nmove real mountains.  No one parts seas.  The only miracles the\nCharismatics can speak of are those rumoured to happen on trips to\nMexico or some faraway place.  Major miracles are making some old\nwoman's arthritis feel better on Sunday morning T.V.\n\n       And the gods, including Jesus, are always shrouded in\nancient lore and writings, protected from the skeptics in their\nsacred pasts.  They are either dead, sleeping, or hiding in\nheaven, with people rumouring about their imminent return and\ntheir great miracles of days long gone.  Yet, life goes on.  \n\n     Tales of mystics, stories of miracles-- all in a distant time\nor a distant place.  Gods used to reveal themselves to men in the\nold days, Jehovah too.  But, now they are silent.  All the\ntheologians give are various excuses as to why we don't get to see\nGod anymore.\n\n       We're too lazy; we're not zealous enough; we're\n       sinful; it's just his \"plan\"; we put too many of our\n       own demands on G'd's appearance; if we had the right\n       faith, if we  were willing to meet G'd on his terms...\n\n     Yet, even the most pious of men have not seen G'd.  You, dear\nreader, have not seen G'd.  Not literally, you know that to be\ntrue. (I know that's presumptuous and bold.  But, searching your\nheart, you know what I mean.)  All that we've seen religions do is\nmake people feel good and content about not seeing G'd.  They say\nour little faith does not merit us to see G'd.  Sometimes, they\nsay, \"See the love in these people you worship with... see the\nlives of people change... that is seeing G'd.\"   Thus people get\nlulled to sleep, satisfied with turning G'd into the everyday\nsights.   But, that is not seeing G'd as I am speaking of... it is\nnot seeing G'd the way people used to see.  \n      What we see in the world that is good, is the compassion of\nhuman hearts, the love given and taken by men and women, the\nforgiveness practised by Christian & Atheist alike, beauty created\nby the mind of man.  These are the things that are done; these are\nwhat we see.  But, it is said this is so only because everybody\nhas little faith.\n\f\nJesus Rides on\nan Ass:\n\n       Shortly after accepting the role of the Jewish messiah\nking, Jesus requests a donkey be brought in for him to ride into\nJerusalem.  \n\n       [Mt 21.5]  This took place to fulfil what was spoken\n       by the prophet, saying,\n\n       Tell the daughter of Zion, \"Behold, your king is\n       coming to you, humble, mounted on an ass, and on a\n       ass-colt.\"\n\nOf course, the passage quoted from Zechariah 9.9 reads a little\ndifferently.\n\n       Lo, your king comes to you; he is triumphant and\n       victorious, humble, and riding on an ass, on an ass-\n       colt... he will command peace to the nations.\n\nThere isn't all that much difference here, except that Zechariah\nonly involves one animal  --an ass-colt--  while Matthew reads the\npoetic wording slightly differently.  Thus, he has Jesus call for\nboth a colt and an adult ass.  From Matthew's version, we get a\ncomical picture of the divine Christ sweating it to straddle two\ndonkeys.  This could inevitably lead to a theological,\nproctological dilemma!   We find that in the account written\nearlier by St. Mark, only the colt was called for and brought to\nJesus.  This indeed fits the verses of Zechariah properly, and\nshows us that in Matthew attempt to use prophetic verses, he has\nbungled.  Now, excluding many respectable Christians I have met, I\nhave noticed that while Christ is thought to have ridden on asses,\nthe situation is often reversed nowadays...\n\n       Then, entering the Jerusalem temple, the priests were\nangered at people and youngsters calling Jesus the messiah.  But,\nJesus replied as we might expect Matthew to have done,\n\n       [Mt 21.16]  Haven't you read?  `Out of the mouth of\n       babes and sucklings thou has brought perfect praise.'\n\nIt is more likely that Matthew made this response up since Jesus\nwas never one to point out such little \"prophetic\" things AND\nsince, as we might expect, the quote is in error, which seems to\nfit Matthew's track record quite well.  We might ask Jesus or\nMatthew, \"Haven't you read?\" for the source reads,\n\n       [Psalms 8.1-2]  O YaHWeH our lord, how majestic is\n       your name in the whole world!   You, whose glory is\n       chanted above the heavens by babes and infants, you\n       have founded a bulwark against your foes to still the\n       enemy and the avenger.\n\nThe passages hardly need comment.  There is no \"perfect praise\"\nspoken of in the psalm, and what praise is there is given to G'd,\nnot his messiah king, and not Jesus.  As mentioned, it seems to be\njust one more case of Matthew's pen making up convenient prophetic\nscripture.\n\nYHVH said to \nmy lord...:\n\n      Jesus is said to have asked from whom the promised Jewish\nmessiah-king is to be descended.  The Jews agree-- it is king\nDavid.  But, then Jesus counters by quoting Psalms 110,\n\n       \"The LORD said to my Lord, sit at my right hand, until\n       I put your enemies under your feet.\"\n\nTaken at face value, Jesus is denying the necessity of Davidic\ndescent.  One assumes he is in opposition to their answer.  Of\ncourse, the Christian answer is that he agrees, but is trying to\nmake some hidden point, to reveal some mystery about the divine\nnature of the messiah-king.  It's tempting to believe this, if one\nis a Christian and not interested in matters of investigation. \nBut, there are problems.\n       In Jesus's time, the psalm was thought to be about the\nmessiah.  And, it is easy to see why David might refer to the\nmessiah as his superior.  We need only look at the scriptures\nabout the messiah to see that he is expected to be a great king,\nbringing the Jews to times even better than those under David's\nrule.  Of course, the Jews listening had no good answer, and the\npassage could indeed refer to a divine messiah, such as the\nChristians worship.  The problem lies in the meaning of this\npsalm, an error that apparently several Jews of Jesus's time had\nalso made.  One must remember that there were various factions\namong the Jews, often as a result of different expectations of the\nmessiah-king.  Jesus was apparently one of these adventists, like\nhis audience, who thought the messiah's advent was imminent, and\nwho interpreted Psalms 110, among others, as being messianic.\nWhat is the problem, then?  Psalm 110 literally reads,\n\n       YHVH's utterance to my lord:\n\t\"Sit at my right hand, until I make your enemies your\n       footstool.\"\n\n       YHVH sends forth your mighty scepter from Zion.  Rule\n       in the midst of your foes!  Your people will offer\n       themselves freely on the day you lead your host on the\n       holy mountains.  \n\n       \"You are a priest of the order of Melchizedek\n       forever.\"\n\nThe word \"lord\" is often mistakenly capitalised by Christian\nbibles to denote divinity in this lord.  But, in the Hebrew, the\nword is \"adoni,\" and no capitalisation exists.  Adoni simply means\n\"lord,\" a generic term as we would use it.  It is used often in\nthe scriptures to refer to kings and to G'd.  It is merely an\naddress of respect.  \n      There is nothing in the text itself to imply that the word\nrefers either to divinity or to the messiah-king.  That this is\nsupposed to be written by David is not certain.  The title of the\npsalm translates to either \"a psalm of David,\" or \"a psalm about\nDavid.\"  It seems fitting to assume it to be written by a court\npoet, about David's covenant and endorsement from G'd.  If the\npsalm had been written by David, it is unlikely that he would be\ntalking about the messiah.  The idea of a perfect king, descended\nfrom David, was not present in David's age.  We have extensive\ntales of David's doings and sayings-- none of which include any\npraises of a messiah.\n     Many of the psalms show evidence of being written long after\nDavid was dead, in times of the exile when G'd had put his show of\nfavour for David's kingdom on hold.  \n     The description in the psalm fit David very well.  David was\npromised by G'd a rise to power, victory over his enemies,\nsuccessful judgement among the nations he conquered.  He achieved\nthe priesthood common to Melchizedek in being a righteous king,\nenabled to bless the people.   It all fits.\n      We do not have to blame this problem on Matthew alone,\nthough.  Here, there is not artificial prophecy alluded to, though\nhis use of the scripture is rather questionable.  Still, this\nevent is common to the other gospels too.  So, we let Matthew off\na little more easily this time.  It is interesting to note,\nthough, how Matthew dresses up the event.  The earlier gospel of\nMark tells the tale with Jesus simply speaking to a crowd. \nMatthew has the Pharisees, who became the religious competition of\nan infant Christianity, be the target of Jesus's question.  As we\nmight expect, Matthew writes that the event ends up by\nembarrassing the Pharisees.  Such power is the pen.\n\nMoses & Jesus,\nHad it Together\nAll Along...:\n\n       We leave the gospel story of Matthew momentarily to see a\npseudo-prophecy in John's gospel.  The gospel story of John\ndeserves special treatment, because it seems to be so far removed\nfrom the real events of Jesus's career as told by even Matthew. \nBut, for the moment, we will just look at one verse.  The early\nchurch leaders founded a religion on the Jewish hopes of a messiah\nking, and on an artificial extension of the original promises made\nby G'd.  When constructing the history of Abraham, Moses wrote of\na promise of land and nationhood to the Jewish people.  While this\nwas accomplished eventually, under the rule of king David, the\nChristians who came along later decided that they would claim the\nfulfillment of the promise.  But, to do so, they expanded on the\npromise, preaching about a heavenly kingdom.\n\n       [John 8.56] (J.C. speaking) Your father, Abraham,\n       rejoiced to see My day.  He say it and was glad.\n\nIt would be nice to tie in approval for Jesus from Abraham, but,\nAbraham knew nothing of Jesus or a messiah, or anything Christian. \nI have tried, and failed to find any event in the Old Testament\nwhich corresponds to John's little prophecy.  It is par for the\ncourse to see St. John making up Old Testament backings, just like\nhis forerunner Matthew.  Many Christians know that their faith has\nmany of its foundations in such fraud, and it is surprising they\nstill cling to it.\n\nThe Potter's\nField:\n\n      We are told that Jesus was betrayed while in Jerusalem by\none of his followers, Judas Iscariot.   Matthew writes,\n\n       [Mt 27.5-10]  And throwing down the pieces of silver\n       in the temple, [Judas] departed... But, the chief\n       priests, taking the silver, said, \"It isn't lawful for\n       us to put it in the treasury, since it is blood\n       money.\"  So they... bought a potter's field with it to\n       bury strangers in... Then was fulfilled what was\n       spoken by the prophet Jeremiah,\n\n       \"And they took the thirty pieces of silver, the price\n       of him on whom a price had been set by some of the\n       sons of Israel, and they gave them for the potter's\n       field, as the lord directed me.\"\n\nThis prophecy is an utterly gross bastardisation of Old Testament\nScripture.  First, Matthew has made a mistake regarding the name\nof the prophet.  It is Zechariah who utters the verses which\nMatthew makes use of.\n\n       [Zech. 11.12-13]  ...And they weighed out my wages,\n       thirty shekels of silver.  Then YHVH said to me, \"Cast\n       them to the treasury,\" --the lordly price at which I\n       was paid off by them.  So I took the thirty shekels of\n       silver and cast them into the treasury in the house of\n       YHVH.\n\nFirst of all, the verses of Zechariah do not deal with a betrayer\nof the messiah, or of G'd.  The deal with a shepherd, most likely\na priest, chosen to serve a function of presiding over the people\nshortly before G'd would send Judah and Israel into conflict with\none another.  The word, \"treasury,\" had been replaced by the King\nJames Scholars with \"to the potter,\" precisely because this made\nMatthew's quote fit better.  But, this is a blatant error.  The\ncorrect translation of the Hebrew is indeed \"treasury,\" which also\nmakes perfect sense in Zechariah's context, whereas \"potter's\nfield\" is totally unrelated.  Whether the mistranslation was\nintentional or not seems to be beyond speculation.  However, given\nMatthew's track record, one finds it hard to resist the notion of\nintentional dishonesty.\n      Of course, Matthew would have ample reason for altering the\ntext.  The thirty pieces of silver match Judas's situation, and if\nas most Christians seem to be, the reader is willing to disregard\nthe contextual incongruity, Matthew might have another prophecy to\ntoss around.  However, the correct translation of Zechariah\ndirectly contradicts the situation with Judas and the high\npriests.  The high priests would not put the money in the\ntreasury.  The worthless shepherd of Zechariah does exactly the\nopposite!  Of course, to the average Thursday-Night Bible student,\nthe \"prophecy\" as presented by Matthew would be taken at New\nTestament face value.  To those, Matthew's work is convincing\nenough.\n\nWine, Vinegar,\n& Casting Lots:\n\n      Then, Jesus is led away to be crucified.\n\n       [Mt 27.34-35]  ...they gave him vinegar to drink,\n       mingled with gall; but when he tasted it, he would not\n       drink it.  And, when they had crucified him, they\n       divided his garments among them by casting lots: that\n       it might be fulfilled what was spoken by the prophet,\n\n       \"They parted my garments among them, and upon my\n       vesture did they cast lots.\"\n\nFirst of all, the vinegar offered to Jesus is actually common sour\nwine, of the type that Roman soldiers drank regularly.  We find\nthat right before Jesus dies, the soldiers themselves give him\nsome to drink --not polluted with gall.\n\n       [Jn 19.28-30]  Jesus... said, \"I thirst.\"  A bowl of\n       vinegar stood there, so they put a sponge full of the\n       vinegar on hyssop and held it to his mouth.  When he\n       had received the vinegar, he said, \"It is finished;\"\n\nBut, Matthew seems to be drawing on, not a passage from the\nprophets, but one from the Psalms.\n\n       [Ps 69.20-28]  I looked for pity, but there was none;\n       and for comforters, but I found none.  They gave me\n       poison for food (lit. they put gall in my meat), and\n       for my thirst, they gave me vinegar to drink...  Add\n       to them punishment upon punishment, may they have no\n       acquittal from thee.  Let them be blotted out of the\n       Book of the Living.\n\nOf course, the sour wine offered to Jesus is done at his request\nof drink.  This does indeed seem to be a show of pity.  The psalm\nquoted is about David and his political and military enemies.  It\nis not about the messiah or Jesus.  It is then not surprising that\nwe run into further problem when we see that the \"Jesus\" in the\npsalm asks G'd for the damnation of the \"crucifiers,\" whereas the\nJesus of the gospels says,\n\n       [Lk 23.34]  Jesus said, \"Father, forgive them, the\n       don't know what they do!\"\n\nFurther, Matthew misses with his attempt to create prophecy by\nhaving gall (a bitter substance) put into Jesus's drink, not his\nmeat, as the psalm stipulates.\n\n       With the \"prophecy\" of the vinegar faulty, we naturally\nask, \"What of the casting of lots?\"  This brings up the 22nd\nPsalm, which deserves discussion all by itself.  Suffice it now to\nsay that the fact that Jesus's clothes were divided as told is no\ngreat thing.  It turns out that this happened often to any felon\nin those days.  As we will soon see, it is perhaps the least\nerroneous passage of the psalm when applied to Jesus.  It does\nindeed bring up the interesting question as to the quality of\nJesus's clothes.  For a man so removed from worldly possessions,\nhis ownership of clothes worthy of casting lots raises some\nsuspicions.\n\nThe 22nd Psalm:\n\n      This psalm is attributed to David, as a lament of his\ncondition under the attack of his enemies.  It becomes a song of\npraise to YHVH and of hope.  Taken out of context, parts of it\nseem to fit the plight of Jesus at the crucifixion quite well.  We\nwill examine the primary passages.\n\n       Verse 1-2:  My god, my god! why have you forsaken me?! \n       Why are you so far from helping me, far from the words\n       of my groaning?  Oh, my god, I cry by day, but you\n       don't answer, and by night, but find no rest.\n\nJesus is said to have cried the first sentence while on the cross. \nThis suggests that the whole psalm is really about Jesus, rather\nthan king David.  Of course, the rest of the first stanza does not\nfit as nicely to Jesus or his execution.  Jesus is not pictured as\ncomplaining about the whole ordeal, he is supposed to be like \"the\nlamb led mute before its shearers.\"  Indeed, Jesus doesn't do much\ngroaning, even when on the cross.  He certainly does not cry by\nboth day and night on the cross.\n\n       6-8:  But, I am a worm, and no man-- scorned by men... \n       All who see me mock at me.  They make faces and wag\n       their heads;  \"He committed his cause to YHVH.  So let\n       him deliver him... for he delights in him.\"\n\nThis seems to fit Jesus's execution pretty well, with the\nexception of the Holy messiah being called a worm.\n\n       12-13:  Many bulls encompass me... they open their\n       mouths widely at me like a ravening and roaring lion.\n\n       16-18:  Yea, dogs are round about me, a company of\n       evildoers encir-cle me, they have pierced my hands and\n       feet.  I can see all my bones... They divide my\n       garments among them, and cast lost for my raiment.\n\n       19-21:  But you, YHVH, be not far away!  ...Deliver my\n       soul from the sword, my life from the power of the\n       dog!  Save me from the mouth of the lion, and my\n       afflicted soul from the horns of the wild bull!\n\nIt would seem quite convincing, and I'm sure the early Christian\nfathers who wrote of this prophecy thought so too.  Unfortunately,\nthis prophecy has a fatal flaw.  The words \"have pierced\" really\ndo not exist in the psalm.  The correct Hebrew translation is,\n\n       16:  Yea, dogs are round about me, a company of\n       evildoers encircles me, like the lion, they are at my\n       hands and feet...\n\nIn Hebrew the phrase \"like the lion\" and a very rare verb form\nwhich can mean \"pierced\" differ by one phonetic character.  The\nword in the Hebrew text is literally, \"like the lion\" (ka'ari),\nwhich makes sense in the context, and even further fits the animal\nimagery employed by the psalm writer.  It is convenience that\nwould urge a Christian to change the word to \"ka'aru.\"   But, to\nadd the needed (yet artificial) weight to the \"prophecy\" this is\njust what the Christian translators have chosen to do.  While the\ncorrect translation does not eliminate the psalm from referring to\nJesus, its absence does not say much for the honesty of the\ntranslators.\n\n       Apart from the erroneous verse 16, the psalm does not lend\nitself to Jesus so easily.  Verse 20 speaks of the sufferer being\nsaved from a sword rather than a cross.  This naturally fits the\npsalm's true subject, king David.  As a side note, we now know\nthat crucifixions did not pierce the hands, the palms, but rather\nthe forearms.  This doesn't say much in favour of the traditional\nthought of a resurrected Jesus showing his disciples the scars on\nhis palms.  But then, facts aren't bound by our religious beliefs.\n\n      Matthew escapes culpability this time, as he does not\nattempt to draw many direct links between this psalm and his lord\nJesus.  But the psalm, like many others, was on the minds of all\nthe gospel writers when they compiled the stories and\ninterpretations of Jesus's life and death.  How much these\nscriptures may have contributed to what actually got written down\nis a question that has serious repercussions for Christian\ntheology.  It is easy to see, for those who are not faithful\nfundamentalists, how some of the events in the New Testament might\nhave been \"enhanced\" by scribes such as the eager Matthew.  But,\nit does less to speculate than to simply investigate scriptural\nmatters and prophetic claims.  So far, this has not said good\nthings for St. Matthew.\n\nThe reference to the piercing looks a lot like Jesus's\ncrucifixion.  John's gospel recount, written about 70 years after\nthe fact, tells us at Jesus's execution,\n\n       [Jn 19.34,37]  But one of the soldiers pierced his\n       side with a spear, and out came blood and water...\n       these things took place that Scripture be fulfilled...\n       \"The will look on him whom they've pierced.\"\n\nOf course, this is built on a passage taken blatantly out of\ncontext.   Prophet Zechariah tells us how much of the nation of\nIsrael will split off from Jerusalem and Judah and go to war with\nthem.\n\n       [Zc 12.7-10]  And YHVH will give victory to Judah...\n       And on that day, I will seek to destroy the nations\n       that come against Jerusalem (in Judah).  And I will\n       pour a spirit of compassion and supplication... on\n       Jerusalem so that when they look on him who they have\n       pierced, they will mourn, and weep bitterly over him\n       like you weep over a firstborn child.\n\nJohn's attempt to make up prophecy is perhaps weaker that\nMatthew's attempts.  Matthew, at least, usually excontexts more\nthan just one passage.  John's errors are grossly obvious and\nblatant here.  It does not speak well for any of the gospel\nwriters, as it helps to show how the prophetic aspects of their\nreligion were founded.\n\n\f\nReckoned with\nTransgressors:\n\n       After his arrest, Jesus is quickly executed for claiming\nthe Jewish kingship, messiahship.   According to one version of\nthe gospel tale, Jesus gets executed along with two thieves.\n\n       [Mk 15.27]  And with him they crucified two robbers,\n       one on his right, one on his left.  And so the\n       scripture was fulfilled which says,\n\n       \"He was reckoned with the transgressors.\"\n\nHere, Mark is trying to link Jesus to a passage in Isaiah 53,\nabout the servant nation of Israel.  The passage is not about the\nmessiah, for if one reads the whole chapter of Isaiah 53, and its\nsurrounding chapters, one sees that the servant is a nation.  The\nverses are also about what this servant has gone through in the\npast, not a prediction of what is to come, in any event.  The\nservant is thought of as a criminal.  This also happens to fit the\ndescription of Jesus.  Had the passage really been about the\nmessiah, it still is not at all clear why executing Jesus between\ntwo thieves would fulfill the \"prophecy\" in Isaiah.  Jesus would\nmore fittingly fulfill it with his whole ministry.  He was\nconsidered a blasphemer and troublemaker all throughout his\ncareer.   Locking onto a single event is a rather poor way to\nsteal prophecy, at least in this case, as we see that Mark could\nhave had made a better analogy with general comparisons.\n\n       Mark goes on to tell us how \"those who were crucified with\n[Jesus] also reviled him.\" [15.32]  This is to be expected from a\ncouple of robbers.  Of course in his later recount, St. Luke\ndecides to change some things.  Luke tells us,\n\n       [Lk 23.39-43]  And one of the criminals who was hanged\n       with him railed, \"Aren't you the messiah?! Save\n       yourself, and us!\"\n\nThis certainly fits with Mark's recount, which tells how the\npeople who crucified Jesus said, \"Save yourself!\" and that the\nrobbers did the same.  But then Luke goes on,\n\n       But the other [criminal] rebuked [the first] saying,\n       \"Don't you fear G'd, since you are under the same\n       sentence of condemnation?  And we, indeed justly so,\n       for we are receiving the due reward for our deeds. \n       But, this man has done nothing wrong. And he said,\n       \"Jesus, remember me when you come in your kingdom.\" \n       And Jesus answered, \"Verily I say to you, today you\n       will be with me in paradise.\"\n\nNow, this little dialogue seems highly contrived.  It stretches\nthe imagination a bit to see this picture of one ruffian rebuking\nhis fellow criminal with such eloquent speech.  We have a rather\nstrange picture of a criminal lamenting over the goodness of his\npunishment and the justness of his suffering.   Such a man,\napparently noble and of principle, doesn't seem likely to have\nbeen a robber.  We wonder at the amount of theatrics created by\nLuke.  Of course, Luke's recount also disagrees with Mark's.  \nLuke has only one criminal revile Jesus, not both.  It is easy\nenough to discount the discrepancy because the account was made\nup, but those who wish to believe it is all part of the error free\nwords of G'd do not have this avenue open.  This is yet another\nexample of a writer trying to take an Old Testament passage and\nexpand it and reinterpret it to suit his theology.  In this case,\nthe embroidery creates some embarrassing problems, as we have\nseen.\n\nThe End of the\nWorld--\n       Mt. 24:\n\n       Now comes perhaps one of the most extraordinary and\nembarrassing passages in the New Testament.  It is found in all\nthree of the synoptic gospel stories, and casts some of the most\nunfavourable doubt on the whole theory of Christianity.  Jesus\nmentions the destruction of the Jewish temples and buildings, and\nhis disciples ask him about this, and about the end of the world\nwhich he has been warning about.\n\n       The disciples: Tell us, when will this [the temple's\n       destruction] be, and what will be the sign of your\n       coming, and of the close of the age?\n\n       Jesus: Take care that no one leads you astray, for\n       many will come in my name, saying, \"I am the christ.\"  \n       ...you will hear of wars and rumours of wars... for\n       this must take place, but the end is not yet.   For,\n       nation will rise against nation... all this is but the\n       beginning of the birthpangs.\n             They will deliver you up... put you to death,\n       and false prophets will arise and lead many astray.\n       ...But he who endures to the end will be saved.  This\n       gospel will be preached throughout the whole world, a\n       testimony to the nations, and then the end will come.\n             So, when you see the desolation spoken of by the\n       prophet Daniel, ...let those who are in Judea flee to\n       the mountains.\n\n             Immediately after the tribulation of those days,\n       the sun will be darkened... the stars will fall from\n       heaven... then will appear the sign of the Son of Man\n       in heaven, and all the tribes of the earth will mourn,\n       and see the Son of Man coming... and he will send out\n       his angels... and gather his elect...\n             Learn the lesson of the fig tree: as soon as its\n       branch becomes tender and puts forth leaves, you know\n       that summer is near.  So also, when you see all these\n       things, you will know that He is near, at the very\n       gate.  Truly I say to you, this generation will not\n       pass away until all these things take place...\n             But, of the day and hour, no one knows; not the\n       angels, not the Son, but only the Father... Therefore,\n       you also must be ready, for the Son of Man is coming\n       at an hour you do not expect.\n\nFrom this, it is clear that Jesus thought the world would in\nwithin the lifetimes of at least some of his disciples.  He tells\nthem that although he doesn't know the exact day or hour, that it\nwill come, and thus they must be ready.  Theologians have wet\ntheir pants in panic to find some way out of this Holy Error. \nBut, unfortunately, Jesus made himself to explicit.  He told his\ndisciples that their generation would still be around at the End,\nand that they in particular should prepare for it, prepare to be\nswept away.\n      There have been some who resorted to removing the inerrant\nnature of the Bible, and said that the phrase, \"this generation\nshall not pass away...\" really means \"this race of people will not\npass away...\"  Of course, the word for generation is used many\ntimes to refer to exactly that, the generation of the disciples. \nIt is an interesting notion that when God decided to learn Greek,\nhe didn't learn it well enough to make himself clear.  But. it is\nquite obvious from the rest of the dialogue that the disciples (at\nleast some of them) are supposed to live to the End of the World. \nThe charge of mistranslation is completely blown away by looking\nat the Apostles' responses.  It becomes abundantly clear from\nRev. 22.7, 1 Peter 4.7, 1 John 2.18, and Rev. 22.20, that Jesus\nmeant exactly what he said.  The End was very near.\n\n       For 2,000 years, Christians have rationalised this 24th\nchapter of Matthew, or ignored its meaning altogether.  For 2,000\nyears, they have waited for their executed leader to come back,\nhearing of wars, and rumours of wars, sure that He is coming soon. \nSurely He must be.  All we must do is wait.  Can you imagine how\ntired He must be, sitting around up there, being holy, waiting for\njust the right moment to spring?\n\n\n       So, shortly after his crucifixion, Jesus of Nazareth,\n(Joshua-ben-Joseph), died.   It is said that after three days, or\nthree days and three nights, or three periods of time, or three\neternal seconds --or three of whatever they can decide makes for\nless trouble-- he was seen again, resurrected, glowing with divine\nradiance.  Then the Saviour decided it wasn't in the best\ninterests of his new religion to stick around, and therefore\ndisappeared from sight into heaven.  So the story goes, anyway. \nAs has been seen, there were many things attributed to Jesus when\npeople got around to writing the gospel stories down.  To them,\nJesus was the fulfiller of all prophecy and scripture.  We have\nseen, though, that this matter is quite shaky.  But, throughout\nChurch history, Christians have held fast to faith, in simple\nbelief.  What doctrinal objections could not be solved with\nargumentation or brute force, faith and forgetfulness kept away\nfrom question.  To question and investigate has never been the\neasiest way to treat matters.  Thus for 2,000 years, the\nprophecies cited in the New Testament have gone on largely\naccepted.  Things may well continue that way for some time. \nPausing a moment to consider the way the doctrines of Christianity\nhave been accepted and used (properly or improperly) to support\nwars and persecution, I suppose there is one prophecy of which\nChristianity can securely keep hold.\n\n       [Mt 10.34]  Jesus: \"Don't think that I have come to\n       bring peace on earth.  I haven't come to bring peace,\n       but rather a sword.\"\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 513, "properties": {"category": "talk.politics.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: CLINTON: President's Remarks at Town Hall Meeting\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 19\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, Clinton-HQ@Campaign92.Org (Clinton/Gore '92) says:\n\n>\t     THE PRESIDENT:  Thank you very much, Mr. Secretary.\n>\t     \n>kind of working together.  And if you'll forgive me a little home \n>state pride, I want to say a special word of thanks to the Wal-Mart \n>Corporation, headquartered in Bentonville, Arkansas, for providing \n>several hundred of the sites for this town meeting tonight.  I \n\n\n\n         When did Bill start doing endorsements?\n\n         Will he do the \"Remington Shaver\" ad?\n\n         Tune in next week.\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 514, "properties": {"category": "comp.sys.mac.hardware", "text": "From: chyang@leghorn.engin.umich.edu (Chung Hsiung Yang)\nSubject: Re: CD300 & 300i\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 28\nDistribution: world\nNNTP-Posting-Host: leghorn.engin.umich.edu\nOriginator: chyang@leghorn.engin.umich.edu\n\n\nIn article <bauer-060493101758@134.60.68.23>, bauer@informatik.uni-ulm.de (Christian Bauer) writes:\n> In article <Afi9sHS00VohMrYlEe@andrew.cmu.edu>, \"Donpaul C. Stephens\"\n> <deathbird+@CMU.EDU> wrote:\n> > \n> > What is the difference?\n> > I want a double-spin CD-ROM drive by May\n> > \n> > looking into NEC and Apple, doublespins only\n> > what is the best?\n> \n> Nec Toshiba and Sony (Apple) nearly deliver the same speed.\n> As apples prices are very low (compared to there RAM SIMMS)\n> You should buy what is inexpencive. But think of Driver revisions.\n> It is easier to get driver kits from Apple than from every other\n> manufacturer\n> \n> Christian Bauer\n> \n> bauer@informatik.uni-ulm.de\n\n\n\tI thought NEC and Toshiba CD-ROM mechanism have an average \naccess time of less than 200 ms.  While the SONY-APPLE CD-ROM \ndrive has an access time of 300 ms for the doublespin models.\n\n- Chung Yang\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 515, "properties": {"category": "soc.religion.christian", "text": "From: jkellett@netcom.com (Joe Kellett)\nSubject: Re: sex education\nOrganization: Netcom\nLines: 20\n\nIn article <Apr.20.03.01.57.1993.3782@geneva.rutgers.edu> bruce@liv.ac.uk (Bruce Stephens) writes:\n>I'd be fascinated to see such evidence, please send me your article!\n>On the negative side however, I suspect that any such simplistic link\n>    abstinence-education => decreased pregnancy,\n>    contraceptive-education => increased pregnancy\n>is false.  The US, which I'd guess has one of the largest proportion of \n>\"non-liberal\" sex education in the western world also has one of the highest\n>teenage pregnancy rates.  (Please correct me if my guess is wrong.)\n\nI've sent the article.  In terms of the group discussion, I wanted to point\nout that \"non-liberal education\" (head in the sand) is not the same as\n\"abstinence education\".\n\nWe had \"non-liberal education\" regarding drugs when I was a kid in the 60's,\nwhich didn't do us a lot of good.  But \"abstinence education\" regarding\ndrugs has proven effective, I think.\n\n-- \nJoe Kellett\njkellett@netcom.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 516, "properties": {"category": "rec.sport.hockey", "text": "From: steveg@cadkey.com (Steve Gallichio)\nSubject: Re: Tie Breaker....(Isles and Devils)\nOrganization: Cadkey, Inc.\nLines: 18\nNNTP-Posting-Host: access.digex.net\n\n\n\nRex Wang (wangr@vccsouth22.its.rpi.edu) spews forth stupidly:\n> \tAre people here stupid or what??? It is a tie breaker, of cause they\n> have to have the same record. How can people be sooooo stuppid to put win as\n> first in the list for tie breaker??? If it is a tie breaker, how can there be\n> different record???? Man, I thought people in this net are good with hockey.\n> I might not be great in Math, but tell me how can two teams ahve the same\n> points with different record??? Man...retard!!!!!! Can't believe people\n> actually put win as first in a tie breaker......\n\nPLEASE PLEASE PLEASE tell me that you don't actually ATTEND Rensselaer, and\nthat you just work for ITS. Or that this was tounge-in-cheek.\n\nDoes this mean that I should be cutting off my alumni contributions, or \nincreasing them?\n\n-SG\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 517, "properties": {"category": "rec.sport.baseball", "text": "From: shapiro-david@yale.edu (David Shapiro)\nSubject: Re: TIGERS\nOrganization: What, me organized?\nLines: 8\nDistribution: na\nNNTP-Posting-Host: minerva.cis.yale.edu\nIn-reply-to: Ryan Kearns's message of Wed, 14 Apr 1993 10:09:21 EDT\n\n\nWoof woof!\n\n-------------------------------------------------------------------------------\nDavid Shapiro\t\t\t| \"People can call it a monkey, but I felt like\nshapiro-david@yale.edu\t\t| I had a piano on my back all winter long....\nshapiro@minerva.cis.yale.edu\t| The piano is off my back.  Maybe a trombone\n\t\t\t\t| will be next.\"  -- Stan Belinda\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 518, "properties": {"category": "rec.sport.baseball", "text": "From: bratt@crchh7a9.NoSubdomain.NoDomain (John Bratt)\nSubject: Sandberg, Runs, RBIs (was: Re: Notes on Jays vs. Indians Series)\nDistribution: na\nNntp-Posting-Host: crchh7a9\nOrganization: Bell Northern Research -- Dallas TX\nLines: 26\n\nIn article <C5JM0M.6Jw@cs.dal.ca>, niguma@ug.cs.dal.ca (Gord Niguma) writes:\n|>\n|>   Alomar fans left RBI fans and Runs off this list because they are dependant\n|> on the team. (To a large extent). If Frank Thomas hit first, he'd lose a LOT\n|> of RBI's; and anyways how many 2nd place hitters have you known to drive\n|> in 100 runs? Doesn't happen that often.....very unlikely with Devon White's\n|> ~.300 OBP in front of you...\nI'm pretty sure that Sandberg has done this at least once.  (I know someone\nwill correct me if I'm wrong.)  \n\nRBIs and Runs scored are the two most important offensive statistics.  You\ncan talk about OBP and SLG% all you want, but the fact remains:\n\n\tThe team that scores more runs wins the game!\n\t---------------------------------------------\n\nFlame Away\n\n-- John Bratt\n\n\n\n|> \n|> \t\t\t\t\t\tGord Niguma\n|> \t\t\t\t\t\t(fav player: John Olerud)\n|> \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 519, "properties": {"category": "talk.religion.misc", "text": "From: turpin@cs.utexas.edu (Russell Turpin)\nSubject: Re: Christian meta-ethics\nOrganization: CS Dept, University of Texas at Austin\nLines: 121\nNNTP-Posting-Host: saltillo.cs.utexas.edu\nSummary: Spit out the lukewarm!\n\n-*----\nIn article <C5Jzz7.9G7@panix.com> mls@panix.com (Michael Siemon) writes:\n> Well, the whole *point* of making these the \"base\" commandments is that\n> they *aren't* reducible to rules.  A set of rules is a moral code or a\n> law code or an algorithm for acting.  Such things can be very helpful\n> to individuals or societies -- but not if they are used *instead* of a\n> personal involvement in and responsibility for one's actions. ...\n\nThe two commandments *are* rules; they are merely rules that are\nso vague that they are practically devoid of meaning.  Michael\nSiemon acknowledges this every time he writes that the resolution\nof an argument over them turns on secular and cultural\nassumptions that are independent of these rules.\n \n> ... The Great  Commandment is, more than anything else, a call\n> to act *as if you were God and accepting ultimate responsibility*\n> in your every action. ...\n\nThe commandment to love your neighbor as yourself can be viewed,\nin part, as reminding man that he is not God and cannot act as if\nhe has \"ultimate responsibility.\" Indeed, many traditions present\nan interpretation where believers are supposed to interpret\nloving one's neighbor as following various other rules, and\nrelying on their god to make things come out right, precisely\nbecause it would be wrong for man to assume such \"ultimate\nresponsibility.\" Once again, we are confronted with good sounding\ngoo that means whatever the reader wants it to mean. \n\n> ... \"Conservatives\" may twist this \"act as if you were God\" to \n> mean \"lay down rules for other people and be as nasty to them\n> as possible if they don't keep YOUR rules.\"  They are so\n> insistent (and obvious) about this that they have convinced a\n> lot of people (who rightly reject the whole concept!) that such \n> idiocy IS how God acts. ...\n\nAnd who is to say that this interpretation is \"twisted\"?  There\nare many passages in the Bible that in their most straightforward\nreading show the Christian god behaving in just this way.\nMichael cannot refer to \"base\" claims or base commandments to\nshow that such readings are \"twisted,\" because this divergence in\nunderstanding occurs even in trying to interpret the \"base\"\nclaims and commandments.  In addressing conservative Christians,\nMichael will necessarily draw upon secular and cultural notions\nthat these conservative Christians will reject.  \n\n> But why should anyone BE looking for an ethical system, since our\n> society is eager to hand us one or more no matter what we do?  It\n> may be that we need a principle for the CRITIQUE of ethical systems\n> -- in which case I will profer the _agapate allelou_ once again.\n\nBut these base commandments are too vague to serve as  \"a\nprinciple for the CRITIQUE of ethical systems.\" The meaning of\nthese base commandments for any believer derives from the secular\nand cultural notions that the believer brings to them, from how\nthe believer mixes their demands with straightforward readings of\nother Biblical passages, from a particular sectarian tradition,\nor from some combination of these things.  These commandments\nlack sufficient substance in themself to serve as a basis for\ncriticizing ethical systems.  What meaning they have comes from\nthe ethical system the believer brings to these commandments. \n\n> And different bodies of Christians have, from the beginning, urged\n> *different* \"ethical systems\" (or in some cases, none).  As a result,\n> it is bizarre to identify any one of these systems, however popular\n> (or infamous) with Christianity.  Christianity DOES NOT HAVE A TORAH.\n> It does not have a QU'RAN.  Specifically Christian scripture has very\n> little, if anything, in the way of \"commandments\" -- so little that\n> the \"Christians\" who desperately *want* commandments go \"mining\" for\n> them with almost no support ... The one, single, thing in the gospels\n> which Jesus specifically \"gives\" as \"a commandment\" to us is \"love\n> one another.\"\n\nJesus explicitly states that this summarizes Jewish law, which\nwould seem to bring in all of it if we properly understand what\nit means to love God and love our neighbors.  There are *many*\nparables and teachings the gospels attribute to Jesus that are\nstraightforwardly read as ethical commandments.  The Pauline\nepistles are similarly full.  If it is not clear that these all\ncome together in a sensible understanding of ethical behavior,\nthe problem is *not* a lack of raw material. \n\n-*----\n> I am a \"radical\" Christian *only* in that I take the gospel seriously.\n\nNo, Michael, the conservative Christians also take the gospel \nseriously.  What differentiates you is the way you interpret the\ngospel.\n\n> ... Why don't I and the (myriads of) other Christians like me\n> tell you something about Christianity? ...\n\nIn a sense, the wide variety of interpretations does tell us\nsomething about Christianity.  It tells us that the New Testament\nauthors left a sufficiently vague hodge-podge that it can serve\nas the source text for many, vastly different beliefs about the\nnature of the Christian god and about what men should and\nshouldn't do. \n\nThe irony here is that there is *nothing* in Christianity per\nse that Michael can use to support the cause of lesbians and\ngays.  *Every* Christian principle he turns to this cause is\neffective only through the extra-Christian principles through\nwhich Michael interprets his religion, and the homophobes apply\nthe *same* Christian principles, with equal justification, to\ntheir cause.  In short, it is the extra-Christian principles that\nmake Michael's Christianity beneficial, and I suspect they would\nbe as beneficial, perhaps moreso, without being filtered by\nChristian interpretation.  \n\nMichael paints a picture of \"standard American atheism\" as the\nrejection of the evil in many conservative Christian\ninterpretations of the Bible.  But I think it is even more\ndamaging to Christianity to note that the New Testament presents\nsuch a vague hodge-podge of notions about the nature of God and\nthe nature of the good (except, of course, when it is ordered by\nan interpretation that relies on extraneous principles).  Here, I\nthink we should apply a Christian parable, where a cold drink can\nhave its value and a hot drink can have its value, but the\nlukewarm we should spit out. \n\nRussell\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 520, "properties": {"category": "sci.space", "text": "From: jgarland@kean.ucs.mun.ca\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nLines: 26\nOrganization: Memorial University. St.John's Nfld, Canada\n\nIn article <1993Apr19.020359.26996@sq.sq.com>, msb@sq.sq.com (Mark Brader) writes:\n>> > Can these questions be answered for a previous\n>> > instance, such as the Gehrels 3 that was mentioned in an earlier posting?\n> \n>> Orbital Elements of Comet 1977VII (from Dance files)\n>> p(au)          3.424346\n>> e              0.151899\n>> i              1.0988\n>> cap_omega(0) 243.5652\n>> W(0)         231.1607\n>> epoch       1977.04110\n> \n> \n>> Also, perihelions of Gehrels3 were:\n>> \n>> April  1973     83 jupiter radii\n>> August 1970     ~3 jupiter radii\n> \n> Where 1 Jupiter radius = 71,000 km = 44,000 mi = 0.0005 AU.  So the\n> 1970 figure seems unlikely to actually be anything but a perijove.\n> Is that the case for the 1973 figure as well?\n> -- \nSorry, _perijoves_...I'm not used to talking this language.\n\nJohn Garland\njgarland@kean.ucs.mun.ca\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 521, "properties": {"category": "sci.crypt", "text": "From: Marc VanHeyningen <mvanheyn@cs.indiana.edu>\nSubject: RIPEM Frequently Asked Questions\nContent-Type: text/x-usenet-FAQ; version=1.0; title=\"RIPEM FAQ\"\nOriginator: mvanheyn@silver.ucs.indiana.edu\nSupersedes: <1993Jan25.113427.28926@news.cs.indiana.edu>\nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Computer Science, Indiana University\nExpires: Fri, 30 Apr 1993 00:00:00 GMT\nLines: 255\n\nArchive-name: ripem/faq\nLast-update: Sun, 7 Mar 93 21:00:00 -0500\n\nABOUT THIS POSTING\n------------------\nThis is a (still rather rough) listing of likely questions and\ninformation about RIPEM, a program for public key mail encryption.  It\n(this FAQ, not RIPEM) was written and will be maintained by Marc\nVanHeyningen, <mvanheyn@whale.cs.indiana.edu>.  It will be posted to a\nvariety of newsgroups on a monthly basis; follow-up discussion specific\nto RIPEM is redirected to the group alt.security.ripem.\n\nThis month, I have reformatted this posting in an attempt to comply\nwith the standards for HyperText FAQ formatting to allow easy\nmanipulation of this document over the World Wide Web.  Let me know\nwhat you think.\n\nDISCLAIMER\n----------\nNothing in this FAQ should be considered legal advice, or anything\nother than one person's opinion.  If you want real legal advice, talk\nto a real lawyer.\n\nQUESTIONS AND ANSWERS\n---------------------\n\n1)  What is RIPEM?\n\n RIPEM is a program which performs Privacy Enhanced Mail (PEM) using\n the cryptographic techniques of RSA and DES.  It allows your\n electronic mail to have the properties of authentication (i.e. who\n sent it can be confirmed) and privacy (i.e. nobody can read it except\n the intended recipient.)\n\n RIPEM was written primarily by Mark Riordan <mrr@scss3.cl.msu.edu>.\n Most of the code is in the public domain, except for the RSA routines,\n which are a library called RSAREF licensed from RSA Data Security Inc.\n\n2)  How can I get RIPEM?\n\n RIPEM contains the library of cryptographic routines RSAREF, which is\n considered munitions and thus is export-restricted from distribution\n to people who are not citizens or permanent residents of the U.S. or\n Canada.  Therefore, the following request is quoted from the README\n file:\n\n #Please do not export the cryptographic code in this distribution\n #outside of the USA or Canada.  This is a personal request from me,\n #the author of RIPEM, and a condition of your use of RIPEM.\n\n Note that RSAREF is not in the public domain, and a license for it is\n included with the distribution.  You should read it before using\n RIPEM.\n\n The best way to get it is to ask a friend for a copy, since this will\n reduce the load on those sites that do carry it (not to mention the\n humans that run them.)  Naturally this requires that you trust the\n friend.\n\n RIPEM is available via anonymous FTP to citizens and permanent residents\n in the U.S. from rsa.com; cd to rsaref/ and read the README file for\n info.  Last I looked, this site contains only the source tree, and\n does not contain compiled binaries or the nice Mac version.\n\n RIPEM, as well as some other crypt stuff, has its \"home site\" on\n rpub.cl.msu.edu, which is open to non-anonymous FTP for users in the\n U.S. and Canada who are citizens or permanent residents.  To find out\n how to obtain access, ftp there, cd to pub/crypt/, and read the file\n GETTING_ACCESS.  For convenience, binaries for many architectures are\n available here in addition to the full source tree.\n\n3)  Will RIPEM run on my machine?\n\n Probably.  It has already been ported to MS-DOS and most flavors of\n Unix (SunOS, NeXT, Linux, AIX, ULTRIX, Solaris, etc.)  Ports to\n Macintosh include a standard UNIX-style port and a rather nice\n Mac-like port written by Raymond Lau, author of StuffIt.  More ports\n are expected, and help of users is invited.\n\n4)  Will RIPEM work with my mailer?\n\n Probably.  How easy and clean the effective interface is will depend\n on the sophistication and modularity of the mailer, though.  The users\n guide, included with the distribution, discusses ways to use RIPEM\n with many popular mailers, including Berkeley, mush, Elm, and MH.\n Code is also included in elisp to allow easy use of RIPEM inside GNU\n Emacs.\n\n If you make a new interface for RIPEM or create an improvement on one\n in the distribution which you believe is convenient to use, secure,\n and may be useful to others, feel free to post it to alt.security.ripem.\n\n5)  What is RSA?\n\n RSA is a crypto system which is asymmetric, or public-key.  This means\n that there are two different, related keys: one to encrypt and one to\n decrypt.  Because one cannot (reasonably) be derived from the other,\n you may publish your encryption, or public key widely and keep your\n decryption, or private key to yourself.  Anyone can use your public\n key to encrypt a message, but only you hold the private key needed to\n decrypt it.  (Note that the \"message\" sent with RSA is normally just\n the DES key to the real message. (See \"What is DES?\")\n\n Note that the above only provides for privacy.  For authentication,\n the fingerprint of the message (See \"What is a fingerprint, like\n MD5?\") is encrypted with the sender's private key.  The recipient can\n use the sender's public key to decrypt it and confirm that the message\n must have come from the sender.\n\n RSA was named for the three men (Rivest, Shamir and Adleman) who\n invented it.  To find out more about RSA, ftp to rsa.com and look in\n pub/faq/ or look in sci.crypt.\n\n6)  What is DES?\n\n DES is the Data Encryption Standard, a widely used symmetric, or\n secret-key, crypto system.  Unlike RSA, DES uses the same key to\n encrypt and decrypt messages.  However, DES is much faster than RSA.\n\n RIPEM uses both DES and RSA; it generates a random key and encrypts\n your mail with DES using that key.  It then encrypts that key with the\n recipient's public RSA key and includes the result in the letter,\n allowing the recipient to recover the DES key.\n\n DES is sometimes considered weak because it is somewhat old and uses a\n key length considered too short by modern standards.  However, it\n should be reasonably safe against an opponent smaller than a large\n corporation or government agency.  It is not unlikely that future\n RIPEMs will strengthen the symmetric cipher, possibly by using\n multiple encryption with DES.\n\n7)  What is PEM, and how does RIPEM relate?\n\n PEM is Privacy Enhanced Mail, a system for allowing easy transfer of\n encrypted electronic mail.  It is described in RFCs 1421-1424; these\n documents have been approved and obsolete the old RFCs 1113-1115.\n\n RIPEM is not really a complete implementation of PEM, because PEM\n specifies certificates for authenticating keys, which RIPEM does not\n handle at this time.  Their addition is planned.\n\n8)  What's this about distributing and authenticating keys?\n\n For a remote user to be able to send secure mail to you, she must know\n your public key.  For you to be able to confirm that the message\n received came from her, you must know her public key.  It is important\n that this information be accurate; if a \"bad guy\" convinces her that\n his key is in fact yours, she will send messages which he can read.\n\n RIPEM allows for three methods of key management: a central server,\n the distributed finger servers, and a flat file.  All three are\n described in the RIPEM users guide which is part of the distribution.\n None of them provide perfect security.\n\n9)  Why do all RIPEM public keys look very similar?\n\n RIPEM public keys begin with a PKCS identifier describing various\n characteristics about the key, so the first bunch of characters in\n your key may be the same as those of lots of other people's keys.\n This does not mean your keys are similar, but only that they are the\n same class of key, were generated with the same program, are of the\n same length, etc.\n\n10)  What is a fingerprint, like MD5?\n\n MD5 is a message digest algorithm produced by RSA Data Security Inc.\n It provides a 128-bit fingerprint, or cryptographically secure hash,\n of the plaintext.  It is cryptographically secure because it is not\n possible (in a reasonable amount of computation) to produce a\n different plaintext which produces the same fingerprint.  Thus,\n instead of signing the entire message with the sender's private key,\n only the MD5 of the message needs to be signed for authentication.\n\n MD5 is sometimes used for other purposes; for example, it is often\n used to map an input of arbitrary length to 128 bits of data, as a\n passphrase interpreter or cookie generator.\n\n MD5 is described in its entirety (including an implementation in C) in\n RFC 1321.\n\n11)  What is PGP?\n\n PGP is another cryptographic mail program called Pretty Good Privacy.\n PGP has been around longer than RIPEM, and works somewhat differently.\n PGP is not compatible with RIPEM in any way, though PGP does also use RSA.\n\n Some major differences between PGP and RIPEM:\n\n - PGP has more key management features, particularly for users without\n   a direct network connection.\n\n - RIPEM conforms to the PEM RFCs and thus has a greater probability of\n   working with other PEM software.  PGP makes no attempt to be compatible\n   with anything other than PGP (in fact, PGP 1.0 is not compatible with\n   PGP 2.0.)\n\n - RIPEM uses RSAREF, a library of RSA routines from RSA Data Security\n   Inc.  RSAREF comes with a license which allows noncommercial use.\n   PGP uses its own implementation of RSA which is not licensed; thus,\n   PKP, the firm holding the U.S. patents on the RSA algorithm, claims\n   that it is a infringement of that patent to make, use or sell PGP in\n   the U.S. or Canada.  In acknowledgement of this, PGP's original\n   author, Phil Zimmermann, says in the documentation:\n\n   #In fact, if you live in the USA, and you are not a Federal agency, \n   #you shouldn't actually run PGP on your computer, because Public\n   #Key Partners wants to forbid you from running my software.  PGP is\n   #contraband.  \n\n - Both PGP and RIPEM are export-restricted, and cannot be sent outside\n   the U.S. and Canada.  However, PGP already exists on many ftp sites\n   in Europe and other places.\n\n Whether you use PGP or RIPEM or whatever, the documentation to PGP is\n recommended reading to anyone interested in such issues.\n\n Note that the above facts, both regarding patent and export\n restrictions, are somewhat controversial; many people think it\n shouldn't be that way, and some people interpret various documents\n differently.  Unfortunately, discussions of it on the net inevitably\n seem to produce more heat than light, and probably belong in\n misc.legal.computing.  (See:  \"DISCLAIMER\")\n\n12)  What about RPEM?\n\n RPEM stands for Rabin Privacy Enhanced Mail.  It was similar to RIPEM,\n but used a public-key cipher invented by Rabin (which is not RSA) in\n an attempt to avoid the patent on RSA.  It was written by Mark\n Riordan, the same author as RIPEM.\n\n Its distribution was halted when, contrary to the beliefs of many\n (including Rabin), Public Key Partners (PKP) claimed that their patent\n was broad enough to cover any public-key cipher whose strength rested\n in the difficulty of factoring products of large primes, not just RSA.\n This claim is not universally accepted by any means, but was not\n challenged for pragmatic reasons.\n\n RPEM is not really used anymore.  It is not compatible with RIPEM or PGP.\n\n13)  What is MIME?\n\n MIME stands for Multipurpose Internet Mail Extensions, and is\n described in RFC 1341.  You can find out about it in the newsgroup\n comp.mail.mime.  How PEM should interact with MIME is not yet entirely\n clear; some people use the stopgap solution of having a MIME type\n application/x-ripem in order to send RIPEM messages as MIME ones.  I\n hope some standards will emerge.  Draft Internet documents exist on\n the matter.\n\n14)  I have this simple way to defeat the security of RIPEM...\n\n You may wish to check the companion post \"ripem-attacks\" which\n discusses some of the more obvious attacks on RIPEM's security and\n what procedures will minimize the risk.  RIPEM's main \"weak area\" is\n probably key distribution.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.026+0000", "event": "documents", "entityId": 522, "properties": {"category": "rec.sport.hockey", "text": "From: jbarrett@aludra.usc.edu (Jonathan Barrett)\nSubject: Re: Too Many Europeans in NHL\nArticle-I.D.: aludra.1pr2c9INNg56\nOrganization: University of Southern California, Los Angeles, CA\nLines: 15\nNNTP-Posting-Host: aludra.usc.edu\n\nrauser@fraser.sfu.ca (Richard John Rauser) writes:\n\n>    Okay, the stretcher remark was a little carried away. But the point is that\n>I resent NHL owners drafting all these Europeans INSTEAD of Canadians (and\n>some Americans). It denies young Canadians the opportunity to play in THEIR\n>NORTH AMERICAN LEAGUE and instead gives it to Europeans, who aren't even\n>better hockey players. It's all hype. This \"European mystique\" is sickening,\n>but until NHL owners get over it, Canadian and American players will continue\n>to have to fight harder to get drafted into their own league.\n\nAccording to what reasonable principle of justice does standing in intimate\ngeographical and psychological relations to a league give one some privileged\nright to play in it?\n\nA European\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 523, "properties": {"category": "comp.graphics", "text": "From: amann@iam.unibe.ch (Stephan Amann)\nSubject: Re: more on radiosity\nReply-To: amann@iam.unibe.ch\nOrganization: University of Berne, Institute of Computer Science and Applied Mathematics, Special Interest Group Computer Graphics\nLines: 80\n\nIn article 66319@yuma.ACNS.ColoState.EDU, xz775327@longs.LANCE.ColoState.Edu (Xia Zhao) writes:\n>\n>\n>In article <1993Apr19.131239.11670@aragorn.unibe.ch>, you write:\n>|>\n>|>\n>|> Let's be serious... I'm working on a radiosity package, written in C++.\n>|> I would like to make it public domain.  I'll announce it in c.g. the minute\n>|> I finished it.\n>|>\n>|> That were the good news. The bad news: It'll take another 2 months (at least)\n>|> to finish it.\n>\n>\n> Are you using the traditional radiosity method, progressive refinement, or\n>  something else in your package?\n>\n\nMy package is based on several articles about non-standard radiosity and\nsome unpublished methods.\n\nThe main articles are:\n\n-  Cohen, Chen, Wallace, Greenberg : \n    A Progressive Refinement Approach to fast Radiosity Image Generation\n     Computer Graphics (SIGGRAPH), V. 22(No. 4), pp 75-84, August 1988\n\n-  Silion, Puech\n    A General Two-Pass Method Integrating Specular and Diffuse Reflection\n    Computer Graphics (SIGGRAPH), V23(No. 3), pp335-344, July 1989 \n\n> If you need to project patches on the hemi-cube surfaces, what technique are\n>  you using?  Do you have hardware to facilitate the projection?\n>\n\nI do not use hemi-cubes. I have no special hardware (SUN SPARCstation).\n\n>\n>|>\n>|> In the meantime you may have a look at the file\n>|>   Radiosity_code.tar.Z\n>|> located at\n>|>   compute1.cc.ncsu.edu\n>\n>\n>  What are the guest username and password for this ftp site?\n>\n\nUse anonymous as username and your e-mail address as password.\n\n>\n>|>\n>|> (there are some other locations; have a look at archie to get the nearest)\n>|>\n>|> Hope that'll help.\n>|>\n>|> Yours\n>|>\n>|> Stephan\n>|>\n>\n>\n>   Thanks, Stephan.\n>\n>\n>    Josephine\n\n\nStephan.\n\n\n----------------------------------------------------------------------------\n\n Stephan Amann     SIG Computer Graphics, University of Berne, Switzerland\n           amann@iam.unibe.ch\n\t   Tel +41 31 65 46 79\t   Fax +41 31 65 39 65\n\n Projects: Radiosity, Raytracing, Computer Graphics\n\n----------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 524, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Unconventional peace proposal\nOrganization: Aiken Computation Lab, Harvard University\nLines: 22\n\nIn article <1483500348@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n\n>1.      The idea of providing financial incentives to selected\n>forms of partnership and marriage, is not conventional. However,\n>it is based on the concept of affirmative action, which is\n>recognized as a legitimate form of public policy to reverse the\n>perverse effects of segregation and discrimination.\n\n\tOther people have already shown this to be a rediculous\nproposal.  however, I wanted to point out that there are many people\nwho do not think that affirmative action is a either intelligent or\nproductive.  It is demeaning to those who it supposedly helps and it\nis discriminatory.\n\n\tAny proposal based on it is likely bunk as well.\n\nAdam\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 525, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: tuberculosis\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 20\n\nIn article <1993Mar25.020646.852@news.columbia.edu> jhl14@cunixa.cc.columbia.edu (Jonathan H. Lin) writes:\n>I was wondering what steps are being taken to prevent the spread of\n>multi-drug resistant tuberculosis.  I've heard that some places are\n>thinking of incarcerating those with the disease.  Doesn't this violate\n>the civil rights of these individuals?  Are there any legal precedents\n>for such action?\n>\n\nWho knows in this legal climate, but there is tremendous legal precendent\nfor forcibly quarantining TB patients in sanitariums.  100 yrs ago\nit was done all the time.  It has been done sporadically all along\nin patients who won't take their medicine.  If you have TB you\nmay find yourself under surveilence of the Public Health Department\nand you may find they have the legal power to insist you make your\nclinic visits.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 526, "properties": {"category": "misc.forsale", "text": "From: hsieh1@carson.u.washington.edu (Darrell Kirk)\nSubject: For Sale: Complete Communicator card for IBM-voicemail, modem, Fax\nOrganization: University of Washington, Seattle\nLines: 8\nDistribution: usa\nNNTP-Posting-Host: carson.u.washington.edu\n\nComplete Communicator, latest vers.\nNew in box\nWorks in DOS or Windows\nOne card you get fax, voicemail and modem.  Auto switch, one line handles\nall fax, voicemail and modem communications\n$500 new\n\n250 dollars, and you pay shipping\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 527, "properties": {"category": "comp.graphics", "text": "From: fsmarc@tristero.lerc.nasa.gov (Marc Cooper)\nSubject: Re: Marching Cubs\nOrganization: NASA Lewis Research Center [Cleveland, Ohio]\nLines: 17\nDistribution: world\nNNTP-Posting-Host: tristero.lerc.nasa.gov\nKeywords: Cube,Program,C\n\n\nI saw this subject and all I could think of was a parade at Wrigley Field\nin Chicago.\n\nOr maybe it's just me. \n\n:)\n\n\n-- \nMarc Cooper - Graphics Programmer - Sverdrup Tech.| \"As a child, I WAS an \nfsmarc@lerc.nasa.gov                              |       imaginary playmate.\"\nNASA Lewis Research Center  MS 5-11               |                        \n21000 Brookpark Dr.                               | Tom Robbins\nCleveland, OH  44135               (216) 433-8898 | Even Cowgirls Get the Blues\n-------------------------------------------------------------------------------\n                Disclaimer:  \"It's mine! All mine!\"  -D. Duck\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 528, "properties": {"category": "talk.politics.mideast", "text": "From: cosmo@pro-angmar.alfalfa.com (Frank Benson)\nSubject: Argic\nOrganization: UTexas Mail-to-News Gateway\nLines: 5\nNNTP-Posting-Host: cs.utexas.edu\n\nYou definetly are in need of a shrink, loser!\n---\nProLine:  cosmo@pro-angmar\nInternet: cosmo@pro-angmar.alfalfa.com\nUUCP:     uunet!bu.edu!alphalpha!pro-angmar!cosmo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 529, "properties": {"category": "alt.atheism", "text": "From: cobb@alexia.lis.uiuc.edu (Mike Cobb)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: University of Illinois at Urbana\nLines: 47\n\nIn <lsran6INN14a@exodus.Eng.Sun.COM> emarsh@hernes-sun.Eng.Sun.COM (Eric \nMarsh) writes:\n\n>In article <C5HqxJ.JDG@ux1.cso.uiuc.edu> lis450bw@ux1.cso.uiuc.edu (lis450 \nStudent) writes:\n>>Hmmmm.  Define objective morality.  Well, depends upon who you talk to.\n>>Some say it means you can't have your hair over your ears, and others say\n>>it means Stryper is acceptable.  _I_ would say that general principles\n>>of objective morality would be listed in one or two places.\n\n>>Ten Commandments\n\n>>Sayings of Jesus\n\n>>the first depends on whether you trust the Bible, \n\n>>the second depends on both whether you think Jesus is God, and whether\n>>  you think we have accurate copies of the NT.\n\n>Gong!\n\n>Take a moment and look at what you just wrote. First you defined\n>an \"objective\" morality and then you qualified this \"objective\" morality\n>with subjective justifications. Do you see the error in this?\n\n>Sorry, you have just disqualified yourself, but please play again.\n\n>>MAC\n>>\n\n>eric\n\nHuh?  Please explain.  Is there a problem because I based my morality on \nsomething that COULD be wrong?  Gosh, there's a heck of a lot of stuff that I \nbelieve that COULD be wrong, and that comes from sources that COULD be wrong. \nWhat do you base your belief on atheism on?  Your knowledge and reasoning? \nCOuldn't that be wrong?\n\nMAC\n--\n****************************************************************\n                                                    Michael A. Cobb\n \"...and I won't raise taxes on the middle     University of Illinois\n    class to pay for my programs.\"                 Champaign-Urbana\n          -Bill Clinton 3rd Debate             cobb@alexia.lis.uiuc.edu\n                                              \nWith new taxes and spending cuts we'll still have 310 billion dollar deficits.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 530, "properties": {"category": "rec.autos", "text": "From: jyow@desire.wright.edu\nSubject: Re: Alarm systems: are they worthwhile?\nDistribution: usa\nOrganization:  Wright State University \nLines: 27\n\nIn article <1993Apr19.164451.3744@news.eng.convex.com>, Dave Dodson <dodson@convex.COM> writes:\n> Is it worthwhile to get an alarm system on a new car?\n> \n> What features are important?\n> \n> What features are unimportant?\n\nThat is a question that can only be answered by yourself and where you live. \nIf you live in a place where crime is apparent, then it might be a good idea to\nget one simply as a deterrent.  However, if a professional thief wants your\nvehicle, its as good as gone no matter what you do.  But to slow down any\nthieves it would be a good idea to get the basic options.  That would be:\n\n1)\tignition kill or fuel cut-off\n2)\ta flashing red LED\n\nThese two are basic to a decent alarm system.  \nTo slow down the criminal some more, get a steering wheel lock.\nThat should be sufficient to persuade the thief to find an easier target.\nBut, then there's always car-jacking.  \nWhy is life so confusing?\nI hope I helped somewhat.\n\n************************************************************************\nJason Yow\t\t\t\tHuman Factors Psychology Program\nWright State University, Dayton, OH\tE-mail: jyow@desire.wright.edu\n************************************************************************\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 531, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: pmhudepo@cs.vu.nl (Hudepohl PMJ)\nSubject: Re: Searching for a phonetic font\nOrganization: Fac. Wiskunde & Informatica, VU, Amsterdam\nLines: 23\n\nweidlich@arb-phys.uni-dortmund.de (Weidlich) writes:\n: I'm searching for a phonetic TrueType font for Windows 3.1. If \n: anybody knows one, please mail me!\n: \n: Thanks.\n: \n: dw \n: \n: \n: ##################################################################\n: Dipl.-Inform. Dietmar Weidlich    # IfADo, Ardeystr. 67          #\n: weidlich@arb-phys.uni-dortmund.de # D-4600 Dortmund 50           #\n: Phone ++49 231 1084-250           # >> Dr. B.: \"Koennten Sie das #\n: Fax   ++49 231 1084-401           #      MAL EBEN erledigen?\" << #\n\nYes, I'm looking for phonetic font(s) too! So if you know one,\nplease mail me too!\n\nThanks in advance\nPatrick Hudepohl\nVU Amsterdam\nThe Netherlands\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 532, "properties": {"category": "rec.motorcycles", "text": "From: cjackson@adobe.com (Curtis Jackson)\nSubject: Re: New to Motorcycles...\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 26\n\nIn article <1993Apr20.131800.16136@alw.nih.gov> gregh@niagara.dcrt.nih.gov (Gregory Humphreys) writes:\n}1)  I only have about $1200-1300 to work with, so that would have \n}to cover everything (bike, helmet, anything else that I'm too \n}ignorant to know I need to buy)\n\nThe following numbers are approximate, and will no doubt get me flamed:\n\nHelmet (new, but cheap)\t\t\t\t\t$100\nJacket (used or very cheap)\t\t\t\t$100\nGloves (nothing special)\t\t\t\t$ 20\nMotorcycle Safety Foundation riding course (a must!)\t$140\n\nThat leaves you between $900 and $1000 (depending on the accuracy\nof my numbers) to buy a used bike, get it registered, get it\ninsured, and get it running properly. I'd say you're cutting\nit close. Perhaps if your parents are reasonable, and you indicated\nyour wish to learn to ride safely, you could get them to pick up\nthe cost of the MSF course and some of the safety gear. Early\nholiday presents or whatever. Those are one-time (well, long-term\nanyway) investments, and you could spend your money on the actual\nbike, insurance, registration, and maintenance.\n-- \nCurtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\nDoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\"\n\"There is no justification for taking away individuals' freedom\n in the guise of public safety.\" -- Thomas Jefferson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 533, "properties": {"category": "sci.med", "text": "From: paulson@tab00.larc.nasa.gov (Sharon Paulson)\nSubject: Re: food-related seizures?\nOrganization: NASA Langley Research Center, Hampton VA, USA\nLines: 53\nNNTP-Posting-Host: cmb00.larc.nasa.gov\nIn-reply-to: dozonoff@bu.edu's message of 21 Apr 93 16:18:19 GMT\n\nIn article <116305@bu.edu> dozonoff@bu.edu (david ozonoff) writes:\n\n   Path: news.larc.nasa.gov!darwin.sura.net!zaphod.mps.ohio-state.edu!uwm.edu!linac!att!bu.edu!dozonoff\n   From: dozonoff@bu.edu (david ozonoff)\n   Newsgroups: sci.med\n   Date: 21 Apr 93 16:18:19 GMT\n   References: <PAULSON.93Apr19081647@cmb00.larc.nasa.gov>\n   Sender: news@bu.edu\n   Lines: 22\n   X-Newsreader: Tin 1.1 PL5\n\n   Sharon Paulson (paulson@tab00.larc.nasa.gov) wrote:\n   : \n   {much deleted]\n   : \n   : \n   : The fact that this happened while eating two sugar coated cereals made\n   : by Kellog's makes me think she might be having an allergic reaction to\n   : something in the coating or the cereals.  Of the four of us in our\n   : immediate family, Kathryn shows the least signs of the hay fever, running\n   : nose, itchy eyes, etc. but we have a lot of allergies in our family history\n   : including some weird food allergies - nuts, mushrooms. \n   : \n\n   Many of these cereals are corn-based. After your post I looked in the\n   literature and located two articles that implicated corn (contains\n   tryptophan) and seizures. The idea is that corn in the diet might\n   potentiate an already existing or latent seizure disorder, not cause it.\n   Check to see if the two Kellog cereals are corn based. I'd be interested.\n   --\n   David Ozonoff, MD, MPH\t\t |Boston University School of Public Health\n   dozonoff@med-itvax1.bu.edu\t |80 East Concord St., T3C\n   (617) 638-4620\t\t\t |Boston, MA 02118 \n\n\nA couple of folks have suggested the \"corn connection\".  In the five month\nperiod between the two seizures, my daughter had eaten a fair amount of\nKix and Berry Berry Kix in the mornings and never had a problem.  I checked\nthe labels and the first ingredient is corn.  She has also never had a problem\neating corn or corn on the cob but of course, that is usually later in the day\nwith a full stomach so the absorption would not be so high.  I do believe that\nFrost Flakes have corn in them but I will have to check the Fruit Loops.  But\nthe fact that she has eaten this other corny cereal in the morning makes me\nwonder.\n\nThanks for checking into this.  All information at this point is valuable to me.\n\nSharon\n--\nSharon Paulson                      s.s.paulson@larc.nasa.gov\nNASA Langley Research Center\nBldg. 1192D, Mailstop 156           Work: (804) 864-2241\nHampton, Virginia.  23681           Home: (804) 596-2362\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 534, "properties": {"category": "talk.politics.guns", "text": "From: paull@hplabsz.hpl.hp.com (Robert Paull)\nSubject: Re: Waco dates - are these coincidental?\nDistribution: usa\nOrganization: Hewlett-Packard Laboratories Palo Alto,CA\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 50\n\nRichard Cower (cower@csli.stanford.edu) wrote:\n: \n: I believe this raid was ill planned because they only had 2 days to plan it,\n: and it was continued when failure was obvious because it had a bit part\n: in the much larger political agenda of President Clinton. I would even \n: suggest that the loss of 4 ATF agents is inconsequential in this the\n: context of his political agenda. It MIGHT even be beneficial to his agenda, \n: as it helps point up just how evil these assualt weapons are. Further proof\n: might be that the ATF denied their agents (Street Stories report) requests\n: for sufficient fire power. \n: \n: Important dates: \n: Feb 25th - NJ assembly votes to overturn assault weapon ban.\n: Feb 28th - Compound in Waco attacked.\t   \n: \n: On Feb. 25th the New Jersey assembly voted to overturn the assault weapon\n: ban in that state. It looked like it might be a tight vote, but the Senate\n: in N.J. was going to vote to overturn the ban. It would not sit well to have\n: an Eastern state overturn an assault weapon ban, given Clintons stated\n: agenda on gun control. I suspect Clinton gave the order to get someone or\n: some: group with assualt weapons and have the press present (they were\n: initially\n: at the incident in Waco) to record the event for the TV audience. The agent \n: on \"Street Stories\" reported that a supervisor was urging them all to \"get \n: ready fast\", as \"they know we are coming\". I believe this attack continued, \n: even tho the probablility of failure was high,  because it came from the top \n: down. After the N.J. assembly vote, the ATF had a limited amount of time to\n: come up with something, and the Wackos in Waco fit the bill nicely.\n: \n: ...rich \n\n\n   I don't know Rich. Last year when the congress was debating the Bushmans\n'Crime Bill', the incident at Lubys' cafe occured. Most of the anti-gun\ncrap was amended out of the bill anyway. \n\n   \n   Could a president 'order': go find some 'assault weapons' and bring the\nmedia\". I hope not.  Frankly, the Toon-meister* scares me. Of course \nhaving a Democratic majority in congress doesn't help. (Apologies to all \nDemos' who support RKBA)\n\n( *definition: toon-meister - a characatureic name for the current \npresident of the U.S.:   Clinton aka, Clintoon aka Toon-meister.)\n\nRob P.\n\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 535, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Yeah, Right\nOrganization: Technical University Braunschweig, Germany\nLines: 54\n\nIn article <66014@mimsy.umd.edu>\nmangoe@cs.umd.edu (Charley Wingate) writes:\n \n>>And what about that revelation thing, Charley?\n>\n>If you're talking about this intellectual engagement of revelation, well,\n>it's obviously a risk one takes.\n>\n \nI see, it is not rational, but it is intellectual. Does madness qualify\nas intellectual engagement, too?\n \n \n>>Many people say that the concept of metaphysical and religious knowledge\n>>is contradictive.\n>\n>I'm not an objectivist, so I'm not particularly impressed with problems of\n>conceptualization.  The problem in this case is at least as bad as that of\n>trying to explain quantum mechanics and relativity in the terms of ordinary\n>experience.  One can get some rough understanding, but the language is, from\n>the perspective of ordinary phenomena, inconsistent, and from the\n>perspective of what's being described, rather inexact (to be charitable).\n>\n \nExactly why science uses mathematics. QM representation in natural language\nis not supposed to replace the elaborate representation in mathematical\nterminology. Nor is it supposed to be the truth, as opposed to the\nrepresentation of gods or religions in ordinary language. Admittedly,\nnot  every religion says so, but a fancy side effect of their inept\nrepresentations are the eternal hassles between religions.\n \nAnd QM allows for making experiments that will lead to results that will\nbe agreed upon as being similar. Show me something similar in religion.\n \n \n>An analogous situation (supposedly) obtains in metaphysics; the problem is\n>that the \"better\" descriptive language is not available.\n>\n \nWith the effect that the models presented are useless. And one can argue\nthat the other way around, namely that the only reason metaphysics still\nflourish is because it makes no statements that can be verified or falsified -\nshowing that it is bogus.\n \n \n>>And in case it holds reliable information, can you show how you establish\n>>that?\n>\n>This word \"reliable\" is essentially meaningless in the context-- unless you\n>can show how reliability can be determined.\n \nHaven't you read the many posts about what reliability is and how it can\nbe acheived respectively determined?\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 536, "properties": {"category": "talk.politics.misc", "text": "From: timr@sco.COM (Tim Ruckle)\nSubject: Who are The ``Rich''? (was Re: Professors Whining About Pay)\nOrganization: The Gifted and The Damned\nSummary: soak 'em if you got 'em...\nKeywords: not me!\nLines: 79\n\n\n\nCandidate Clinton promised to tax the rich, and most folks thought that\nwas a pretty nifty idea.  Then President Clinton said he wanted families\nwho make more than $100,000 to bear 70% of the new tax burden, and many\nwere quick to complain that their six-figure income does not make them one\nof the well-to-do.  It's particularly ironic (to me) that it's in those\ntraditionally liberal enclaves of the Bay Area and academia where the\nwealthy are struggling so to fit themselves into the mantle of \"just\nregular working-class folk\".\n\nNobody will ever admit to being rich; everybody's middle class.  So who\nare The Rich?  Well, I'll throw out some stats from the 1990 Census and\nlet you be the judge...\n\nVa negvpyr <mzimmersC5E1qK.Fn9@netcom.com>\nmzimmers@netcom.com (Michael Zimmers) jevgrf:\n} In article <1qcdvbINN5ti@elroy.jpl.nasa.gov>\n} fogarty@sir-c.jpl.nasa.gov (Tim Fogarty) writes:\n} > [...]\n} >that would be about $55 to 65 thousand US, and that is what tenured\n} >professors can expect to make.  For a PhD with say 10 years experience,\n} >$65,000 is a lot less than what he could be making in industry.  \n} \n} Oh?  As a 12-year veteran of Silicon Valley, I've seen precious few\n} employment ads that call for PhDs.  And $65K is hardly chump change;\n} it's well above the median *household* income for the state.\n\nBay Area average household income is in the mid-$40,000 range.  National\naverage is $31,889.  The Bay Area has nearly twice the national average\nof six-figure income households (9.1% vs 4.8%*).  The cost-of-living here\nmay be high, but I don't think it's twice the national average...\n\n} >In Los Angeles, modest home prices can be $500,000.  \n\nA 1,500-square-foot tract house in a Bay Area working-class neighborhood\ngoes for about $250,000.  I doubt that the Los Angeles market is all that\ndifferent.  It would appear that this definition of \"modest\" is perhaps a\nbit immoderate...\n\n} So what?  They're no cheaper for those who are gainfully employed.\n} \n} >In California, $65,000 is not upper-middle-class.\n} \n} It depends upon your definition; it's clearly above average.\n\nIt is more than what two-thirds of California households make.  Seems\nto me that belonging to the upper one-third is not an unreasonable\ndefinition of \"upper-middle-class\".  Note that if that professor's\nspouse earns $35,000 they become one of Clinton's \"rich\" families.\n\nHere's a breakdown of national, California, and Bay Area household incomes:\n\n   <$30K  $30-50K   $50-100K  $100K+\n------------------------------------\nUS  49%     24%        23%      4% * the Census Bureau did some weird\nCA  41%     26%        26%      7%   rounding here...more like 5%\nBA  34%     25%        31%      9%\n\nAnd to add a little prespective:\n\nA minimum wage earner working 40 hours/week makes $8,840/year.  The poverty\nline for a family of four is $15,171.  If they make up to twice that, the\ngovernment considers them to be \"working poor\".  Say we decide to call this\nthe \"lower-middle-class\".  Then how 'bout:\n\n$30-50K annual income is \"middle-class\".  $50-100K is \"upper-middle-class\".\n$100K+ is \"rich\".  $1,000K+ is \"filthy-rich\".  and $10,000+ is \"Bill Gates\".\n\nmake sense? ;^)\n\n-timr\n\n--\nThere's nothing surer,\nThe rich get rich and the poor get poorer,\nIn the meantime, in between time,\nAin't we got fun.\n                                                          --Raymond Egan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 537, "properties": {"category": "comp.graphics", "text": "From: mccool@dgp.toronto.edu (Michael McCool)\nSubject: Apr 20 Toronto Siggraph Event\nOrganization: University of Toronto Dynamic Graphics Project\nDistribution: na\nLines: 48\n\n\nToronto Siggraph \n================\n\nWhat: ``Chance's Art'': 2D Graphics and Animation on the Indigo.\n\nBy:    Ken Evans, Imagicians Artware, Inc. \n\nWhen:  Tuesday 20 April 1993 7:00pm-9:00pm \n\nWhere: The McLuhan Centre for Culture and Technology\n       University of Toronto\n       39A Queen's Park Crescent\n       Toronto\n\nWho:   Members and non-members alike \n       (non-members encouraged to become members...)\n\nAbstract:\n\nImagicians Artware, Inc. is entering into early beta site testing on Silicon \nGraphics workstations of a new 2D abstract artwork and animation package called \nChance's Art.  The package will be described and demonstrated, and some of the \ntechnical issues will be discussed.  Marketing plans will be outlined.  The \ntalk will also present some of the technical and business problems increasingly \nconfronting small startup software companies today, and some of the \nopportunities this situation presents.\n\nTime after the event will be allocated for hands-on demonstrations to \ninterested parties.  Silicon Graphics is graciously providing an Indigo for \nthis event.  Myck Kupka will also be demonstrating his computerized interactive \nreflective stereoscope, which is installed upstairs in the McLuhan Centre, so \nfeel free to drop by for a demonstration before or after the event. BTW, be \nsure to sing \"Happy Birthday, Myck\"...\n\nThe names of nominees for our Siggraph executive offices will be announced at \nthis meeting.  Nominations will still be open until the election at our \nMay 18th event; call Myck Kupka at 465-0943 or fax to 465-0729.  \n\nDirections: The McLuhan Coachhouse is on the east side of Queen's Park \nCrescent, just NORTH of Wellesley, SOUTH of St. Joseph St., BEHIND (EAST of) \n39 Queen's Park Crescent, which is the centre for Mediaeval Studies.  \n\nFor information on Toronto Siggraph membership, contact Michael McCool via:\n\tInternet: mccool@dgp.utoronto.ca; \n\tVoice: 652-8072/978-6619/978-6027; \n\tFax: 653-1654\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 538, "properties": {"category": "sci.electronics", "text": "From: Wayne Alan Martin <wm1h+@andrew.cmu.edu>\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: Senior, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 60\nDistribution: world\nNNTP-Posting-Host: po2.andrew.cmu.edu\nIn-Reply-To: <79694@cup.portal.com>\n\nExcerpts from netnews.sci.electronics: 16-Apr-93 Re: What do Nuclear\nSite's .. by R_Tim_Coslet@cup.portal. \n> From: R_Tim_Coslet@cup.portal.com\n> Subject: Re: What do Nuclear Site's Cooling Towers do?\n> Date: Fri, 16 Apr 93 21:27:21 PDT\n>  \n> In article: <1qlg9o$d7q@sequoia.ccsd.uts.EDU.AU>\n>         swalker@uts.EDU.AU (-s87271077-s.walker-man-50-) wrote:\n> >I really don't know where to post this question so I figured that\n> >this board would be most appropriate.\n> >I was wondering about those massive concrete cylinders that\n> >are ever present at nuclear poer sites. They look like cylinders\n> >that have been pinched in the middle. Does anybody know what the\n> >actual purpose of those things are?. I hear that they're called\n> >'Cooling Towers' but what the heck do they cool?\n>  \n> Except for their size, the cooling towers on nuclear power plants\n> are vertually identical in construction and operation to cooling\n> towers designed and built in the 1890's (a hundred years ago) for\n> coal fired power plants used for lighting and early electric railways.\n>  \n> Basicly, the cylindrical tower supports a rapid air draft when\n> its air is heated by hot water and/or steam circulating thru a network\n> of pipes that fill about the lower 1/3 of the tower. To assist cooling\n> and the draft, water misters are added that spray cold water over the\n> hot pipes. The cold water evaporates, removing the heat faster than\n> just air flow from the draft would and the resulting water vapor is\n> rapidly carried away by the draft. This produces the clouds frequently\n> seen rising out of these towers.\n>  \n> That slight pinch (maybe 2/3 of the way up the tower) is there because\n> it produces a very significant increase in the strength and rate of\n> the air draft produced, compared to a straight cylinder shape.\n>  \n> The towers are used to recondense the steam in the sealed steam\n> system of the power plant so that it can be recirculated back to the\n> boiler and used again. The wider the temperature difference across\n> the turbines used in the power plant the more effecient they are and\n> by recondensing the steam in the cooling towers before sending it\n> back to the boilers you maintain a very wide temperature difference\n> (sometimes as high as 1000 degrees or more from first stage \"hot\"\n> turbine to final stage \"cold\" turbine).\n>  \n>                                         R. Tim Coslet\n>  \n> Usenet: R_Tim_Coslet@cup.portal.com\n>         technology, n.  domesticated natural phenomena\n\nGreat Explaination, however you left off one detail, why do you always\nsee them at nuclear plants, but not always at fossil fuel plants.  At\nnuclear plants it is prefered to run the water closed cycle, whereas\nfossil fuel plants can in some cases get away with dumping the hot\nwater.  As I recall the water isn't as hot (thermodynamically) in many\nfossil fuel plants, and of course there is less danger of radioactive\ncontamination.\n\nWayne Martin\n\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 539, "properties": {"category": "rec.sport.hockey", "text": "From: jwh@sei.cmu.edu (John Huber)\nSubject: Re: NHL Team Captains\nOrganization: The Software Engineering Institute\nLines: 27\n\n\nIn article <1993Apr19.213015@IASTATE.EDU>, njdevils@IASTATE.EDU (Cire Y. Trehguad) writes:\n|> Anna Matyas (am2x+@andrew.cmu.edu) wrote:\n|> : Michael Collingridge writes:\n|> : >And, while we are on the subject, has a captain ever been traded, \n|> : >resigned, or been striped of his title during the season? Any other \n|> : >team captain trivia would be appreciated.\n|> ;\n|> : Wasn't Ron Francis captain of the Whalers when he was traded to\n|> : Pittsburgh?\n|> \n|>   And Rick Tochett was the captain of the Flyers when traded to the Pens\n|> recently...\n|> \n\nAnd of course, Mike Ramsey was (at one time) the captain in Buffalo prior to\nbeing traded to Pittsburgh.  Currently, the Penguins have 3 former captains\nand 1 real captain (Lemieux) playing for them.  They rotate the A's during the\nseason (and even the C while Mario was out).  Even Troy Loney has worn the C\nfor the Pens.\n\n-Jay\n\n\nJohn W. Huber, Jr. - aka Jay   | Penguins - 1991,1992 Stanley Cup Champions\nSoftware Engineering Institute | Pirates - 1990,1991,1992 NL East Champions\nSEI 3409        (412) 268-3550 | MasterCraft - The ONLY boat for skiing\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 540, "properties": {"category": "misc.forsale", "text": "From: sidak_ok@lrc.edu\nSubject: CHEMICALS FOR SALE\nOrganization: Lenoir-Rhyne College, Hickory, NC\nLines: 6\n\n The chemicals are gone Thanks for all the response\n\n\n\nOmar\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 541, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: servis@author.ecn.purdue.edu (Brian K Servis)\nSubject: Books for writing thesis in WfW???\nKeywords: wfw,thesis\nOrganization: Purdue University Engineering Computer Network\nLines: 23\n\nHi, I was wondering if anyone out there knows of any books that give helpful\nhints and tips on writing thesis papers in WfW.  I know about the dissertation\ntemplate that comes with word but I want more.  I would like to have tips on\nhow to use all the {seq ...} , {bookmark ...} , {index ...} , { chapter ...},\nfields that are available in word.  I have looked through the help files,etc.\nbut they really don't explain a whole lot.  I will post the results(That means\nemail me first) if I get a lot of different suggestions since I think this\nmight be of help to lots of crazy grad students such as myself. Thanks.\n\n\nBrian Servis\n\np.s. How do you change the font that Help uses when printing a topic?  The \n     default is so choppy and hard to read.\n\n===========================================================================\n||  servis@author.ecn.purdue.edu   ||         \"It Happened This Way\"     ||\n===================================|| actual quotes from insurance claims||\n||  What I say may not be what I   ||                                    ||\n||  think. What I say may not be   ||  \"The pedestrian had no idea which ||\n||  what Purdue thinks.            ||   way to go, so I ran him over.\"   ||\n===========================================================================\n \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 542, "properties": {"category": "sci.crypt", "text": "From: dfl@panix.com (Danny O'Bedlam)\nSubject: Re: Why the clipper algorithm is secret\nOrganization: Panix, (New Yawk City)\nLines: 29\n\nIn <1993Apr18.225502.358@iecc.cambridge.ma.us> johnl@iecc.cambridge.ma.us (John R. Levine) writes:\n(quoting someone else here) \n>>The cryptographic protocol, though, is another matter.  I see no valid\n>>reasons for keeping it secret, and -- as I hope I've shown above -- there\n>>are a lot of ways to do things that aren't (quite) as bad.\n\n>It just occurred to me why the algorithm is secret.  If it were\n>published, one could then build physically identical clone versions\n>of the chip that would interoperate with official Clipper chips.  But\n>the cloner wouldn't provide the keys to the escrow houses.  Hmmn.\n\n\t\t\t\t\t\t\t\tYeah!\n\n\tThe algorithm is classified because a military contract (or similar\ngovernment equivalent to military) has been let for this \"proprietary\"\ndesign that the Feds say that NSA developed.  Is there a patent?  Is that\npatent publicly available?  My betting is that that too is classified.\n\n\tIf the algorithm were made public, or reverse-engineered, it would\ncompromise not only the goal of Justice of being able to read every chip\nusers cypto-data but would reduce profits for the selected chip maker.\n\n\tWouldn't that just be too bad?\n\n-- \n***********************************************************************\n* Danny O'Bedlam  = dfl@panix.com = cmcl2!panix!dfl = Danny Lieberman *\n* PO Box 3131 Church St Station, New Yawk, New Yawk, 10008-3131 (usa) *\n***********************************************************************\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 543, "properties": {"category": "rec.sport.baseball", "text": "From: jerry@sheldev.shel.isc-br.com (Gerald Lanza)\nSubject: Re: The 1964 Phillies: deja vu?\nKeywords: Phillies\nOrganization: Olivetti North America (Shelton, CT)\nLines: 21\n\nIn article <1993Apr14.222601.21160@cabell.vcu.edu> csc2imd@cabell.vcu.edu (Ian M. Derby) writes:\n>\n>After reading my local paper today, I found out that the Phillies\n>started the 1964 season at 10-2.  I am not as old as 1964, but I've\n>heard many talk about the serious choke job the Phillies did that\n>season. They were ahead of the Cardinals by 15 games that season in\n>mid-August.  They managed to lose a bunch from then on and the\n>Cardinals took the division.  15!!! games ahead and lost it.... I\n>hope this season is MUCH different.\n\n\n\tStrictly from memory, I think the Phillies were something like\n\tten games up with 12 to go, lost 10 in a row, and 11 of last 12\n\tto lose to the Cardinals. Seems impossible, but thats how I\n\tremember it. I also felt at the time that Johnny Callison of\n\tthe Phillies lost the MVP as a by-product of their swoon.\n\n\n\t\t\t\t\tjerry\n\n\tP.S. In 1964, a single team out of 8 won the pennant; no divisions.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 544, "properties": {"category": "sci.crypt", "text": "From: smk5@quads.uchicago.edu (Steve Kramarsky)\nSubject: Re: Keeping Your Mouth Shut (was: Hard drive security)\nKeywords: cooperation\nReply-To: smk5@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 43\n\nIn article <1993Apr14.055903.5358@qualcomm.com> karn@servo.qualcomm.com (Phil Karn) writes:\n>\n>\n>I say \"in theory\" because in another case, a woman was held in\n>contempt for refusing to reveal the location of her child even after\n>taking the 5th. In this case, the woman was suspected of having\n>murdered the kid, so taking the 5th wasn't surprising. Sure, so she\n>was probably guilty, but that's not good enough. In our system you're\n>not supposed to be able to force a suspect to confess to a crime, no\n>matter how strongly you think they're guilty.  You have to develop\n>your evidence independently. Doing otherwise might catch a few more\n>crooks, but only at the cost of turning the clock back to the middle\n>ages, when confessions were routinely tortured out of suspects both\n>guilty and innocent.\n>\n OK, I should have read the thread before posting my own $0.02.  I would\njust add to Phil's very infomative discussion the following caveat: the\nfifth amendment applies ONLY in crinial cases.  (\"...nor shall any person .\n. . be compelled in any criminal case to be a witness against himself...\").\nThus if the father sued for custody of the children, the case would be\ncivil and the defendant mother would not have fifth amendment protection.\nOddly enough, her refusal to give information in a civil case can lead to\ncriminal contempt charges (thus landing her in jail.)  The interesting part\nof all this is that in a murder trial, the woman CAN plead the fifth as \nto the location of the child--this is routine.  A \"computer crime\" \nprosecution thus would seem to be fertile ground for this kind of defense, \nwhere a suit by a party injured by \"hackers\" would not.  If I am accused, \nfor example, of sending encrypted kiddie porn over the nets the fifth should \nprotect my key.  If I am accused of sending copyrighted material, however,\nit proabably will not (copyright infringement not being a \"crime\" in the\ntechnical sense.)  The REALLY tricky question is, say I do both (naughty\nboy that I am) can the government use the information gained in the civil\ntrial (ie. my key) to gain access to my files for use in the criminal\nprosecution.  The answer should certainly be no, but lord only knows how\nthis would work out.\n\nSteve.\n \n\n-- \n            Steve Kramarsky, University of Chicago Law School\n           steve@faerie.chi.il.us -or- smk5@quads.uchicago.edu \n     \"All I did was kiss a girl.\" - Jake, the night before his hanging.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 545, "properties": {"category": "sci.crypt", "text": "From: mearle@netcom.com (Mark Earle)\nSubject: PGP 2.0 vs 2.2\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nDistribution: na\nLines: 10\n\n\nI've seen PGP 2.2 mentioned for the Mac platform. I use 2.0 on MS/DOS.\nIs there a 2.2 for MS/DOS? If so, a site or two that has it available\n(I'd need executables, although source would be nice to review).\nWhat was \"fixed\" or changed from 2.0 > 2.2?\n \nThanks, mwe\nmearle@netcom.com\nfinger for pgp2.0 public key\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.027+0000", "event": "documents", "entityId": 546, "properties": {"category": "soc.religion.christian", "text": "From: sml@rpsyc.nott.ac.uk (Steve Lang)\nSubject: Re: The arrogance of Christians\nOrganization: Nottingham University\nLines: 60\n\nIn article <May.2.09.51.49.1993.11841@geneva.rutgers.edu>, you wrote:\n\n> The genius of science is that it discovered that enormous progress \n> in knowledge could be made by isolating the study of physical \n> interactions for the more general areas of study and proceeding\n> not by logical argument but by experiment. The scientific method\n> is hypothesize, attempt to disprove the hypothesis, if you fail, \n> publish, if others fail to disprove your hypothesis, accept it\n> as a working theory and move on. This method is suitable only\n> for the study of objects without will, objects which do not\n> take an interest in the experiment.\n\nScience does not progress via experimentation but by philosophising.  One\naim of experiments is to investigate the validity of the hyptheses\nresulting from the models produced by this thinking process.\n\n> The arrogance of science is the assumption many advocates of \n> science make that the scientific method is the only method of\n> serious study, the only one leading to knowledge rather than\n> belief. \n\nScience has one advantage of all other approaches to explaining the world.\nIt is objective.\n\n> Its further arrogance, is the assumption which arises\n> that, since science is the only valid method of thought, everything\n> which exists must be the sort of thing which the scientific \n> method can study, and that if the scientific method cannot \n> study it it either does not exist or cannot in any way be known.\n\nAnything which affects the physical world can be studied.  For example,\nsince we are part of the physical world, anything (including spirits) which\naffects our behaviour can be observed.  Science does not make any claims\nabout the existence or non-existence of objects which do not affect the\nphysical world.\n\n> Since these asumptions about the nature of the world cannot\n> themselves be made the subject of experiment, it is bad science\n> to believe them, as well as arrogance, illogic, and just plain\n> sloppy thinking.\n\nThe purpose of science is to produce a model of the *physical* world.  The\nmodel must be able to explain all past observations and predict the outcome\nof future observations.  One of the aims of experiments is to carry out\nwell defined observations which are objective.\n\nIdeally scientist will except the model which best describes the world, and\nthe model which realises on the minimal number of assumptions.  At the\nmoment models which do not rely on the assumption of some *spiritual* world\nexisting are equally powerful to ones which assume the assumption of a\n*spiritual* world.  As the non-spiritual models has fewer assumptions it\nshould be the currently accepted models.\n\nThe scientific process never assumes that its present models are the\ncorrect ones, whereas many religions claim to represent the truth.  The\narrogance of many theists is that they claim to represent the truth, this\ncannot be said of scientists.\n\nSteve Lang\nSLANG->SLING->SLINK->SLICK->SLACK->SHACK->SHANK->THANK->THINK->THICK\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 547, "properties": {"category": "talk.politics.mideast", "text": "X-Mailer: TMail version 1.17R\nFrom: \"D. C. Sessions\" <dcs@witsend.tnet.com>\nOrganization: Nobody but me -- really\nSubject: Re: was:Go Hezbollah!\nDistribution: world\nLines: 61\n\nIn <1993Apr16.130037.18830@ncsu.edu>, hernlem@chess.ncsu.edu (Brad Hernlem)  wrote:\n# In article <2BCE0918.6105@news.service.uci.edu>, tclock@orion.oac.uci.edu (Tim Clock) writes:\n# |> In article <Apr15.175334.72079@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n# |> >\n# |> >It is NOT a \"terrorist camp\" as you and the Israelis like \n# |> >to view the villages they are small communities with kids playing soccer\n# |> >in the streets, women preparing lunch, men playing cards, etc.....\n# |> >SOME young men, usually aged between 17 to 30 years are members of\n# |> >the Lebanese resistance.  Even the inhabitants of the village do not \n# |> >know who these are, they are secretive about it, but most people often\n# |> >suspect who they are and what they are up to.  These young men are\n# |> >supported financially by Iran most of the time.  They sneak arms and\n# |> >ammunitions into the occupied zone where they set up booby traps\n# |> >for Israeli patrols.  Every time an Israeli soldier is killed or injured\n# |> >by these traps, Israel retalliates by indiscriminately bombing villages\n# |> >of their own choosing often killing only innocent civilians.  \n# |> \n# |> This a \"tried and true\" method utilized by guerilla and terrorists groups:\n# |> to conduct operations in the midst of the local populace, thus forcing the\n# |> opposing \"state\" to possible harm innocent civilians in their search or,\n# |> in order to avoid the deaths of civilians, abandon the search. Certainly the\n# |> people who use the population for cover are *also* to blaim for dragging the\n# |> innocent civilians into harm's way.\n# |> \n# |> Are you suggesting that, when guerillas use the population for cover, Israel\n# |> should totally back down? So...the easiest way to get away with attacking\n# |> another is to use an innocent as a shield and hope that the other respects\n# |> innocent lives?\n# \n# Tell me Tim, what are these guerillas doing wrong? Assuming that they are using\n# civilians for cover, are they not killing SOLDIERS in THEIR country? If the\n# buffer zone is to prevent attacks on Israel, is it not working? Why is it \n# further neccessary for Israeli guns to pound Lebanese villages? Why not just\n# kill those who try to infiltrate the buffer zone? You see, there is more to\n# the shelling of the villages.... it is called RETALIATION... \"GETTING BACK\"\n# ...\"GETTING EVEN\". It doesn't make sense to shell the villages. The least\n# it shows is a reckless disregard by the Israeli government for the lives of\n# civilians.\n\n  Please clarify your standards for rules of engagement.  As I\n  understand it, Israelis are at all times and under all\n  circumstances fair targets.  Their opponents are legitimate\n  targets only when Mirandized, or some such?\n\n  I'm sure that this makes perfect sense if you grant *a*priori*\n  that Israelis are the Black Hats, and that therefore killing\n  them is automatically a Good Thing (Go Hezbollah!).  The\n  corollary is that the Hezbollah are the White Hats, and that\n  whatever they do is a Good Thing, and the Israelis only prove\n  themselves to be Bad Guys by attacking them.\n\n  This sounds suspiciously like a hockey fan I know, who cheers\n  when one of the players on His Team uses his stick to permanently\n  rearrange an opponent's face, and curses the ref for penalizing\n  His Side.  Of course, when it's different when the roles are\n  reversed.\n\n--- D. C. Sessions                            Speaking for myself ---\n--- Note new network address:                dcs@witsend.tnet.com ---\n--- Author (and everything else!) of TMail  (DOS mail/news shell) ---\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 548, "properties": {"category": "comp.graphics", "text": "From:  Valentin E. Vulihman <vulih@ipmce.su>\nSubject: Attractive drawing on the sphere\nLines: 2\nReply-To: vulih@ipmce.su\nOrganization: Inst. of Prec. Mech. & Comp. Equip., Moscow, Russia\n\nsubscribe comp.graphics\nquit\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 549, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rick@silver.SJSU.EDU (Richard Warner)\nSubject: Re: Win NT - what is it???\nNntp-Posting-Host: silver.sjsu.edu\nOrganization: San Jose State University - Math/CS Dept.\nLines: 12\n\nrmohns@vax.clarku.edu writes:\n\n>Windows NT is a giant Windows Operating System.  Unline Win3.1, it does not \n>run on top of DOS.  It is its own OS, with (Billy Gates assures us) true \n>multi-tasking/multithreading, meets DOD security specs, will run win3.1 \n>programs as well as DOS programs, has multi-processor support, and is\n>primarily a Server program.  It's overhead is too high for it to be\n>economical for most users.\n\nCorrection:  All Billy is promising is that it will run 'most' Windows 3.1\nprograms and the 'major' DOS programs.  Do not expect everything you\nhave to run under NT unless all you have are current MS apps.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 550, "properties": {"category": "rec.sport.baseball", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: Young Catchers\nOrganization: Adobe Systems Incorporated\nLines: 38\n\nIn article <7975@blue.cis.pitt.edu> genetic+@pitt.edu (David M. Tate) writes:\n>As for rushing...  If there really is a qualitative difference between the\n>minors and the majors that requires a period of adjustment (and I don't\n>believe there is), then wouldn't you rather waste Lopez's 22-year old good\n>season than his 23-year old very good season or his 24-year-old excellent\n>season?  The sooner you get him acclimated, the more of his prime you get to\n>use.\n\nCan anybody name a player who was 'rushed' to the majors (let's, for\nargument's sake, define \"rushed\" as brought up to the majors for more than\na cup of coffee prior at age 22 or younger, and performing below\nexpectations), whose career was damaged by this rushing?  I'm serious; I\ntend to agree with David that bringing the player up sooner is better, but\nI'd like to look at players for whom this theory didn't work, if there are\nany.  I'd prefer players within the last 10 years or so, because then I can\nlook up their minor league stats.  (It's important to distinguish between\nplayers who legitimately had careers below what their minor league numbers\nwould have projected, as opposed to players who were hyped and failed, but\nactually had careers not out of line with their minor league numbers).  \n\nLet's kick it off with an example of a player who was \"rushed\", although\nthere doesn't seem to have been any damage to his career.  Jay Bell was\ngiven 135 PAs in the major leagues at age 21, and performed well below what\nyou would expect from his AAA numbers the same season.  He got 236 PAs the\nnext year at age 22, and still underperformed.  However, the next year, at\nage 24, his performance improved, and he won the everyday shortstop job,\nand has been there ever since.  It's really hard for me to see where he\nwould have been better off staying in the minor league (where he was\nperformed quite well in AAA) during this time, rather than being \"rushed\";\nCleveland might have been better off, I suppose, because they might have\nbeen less likely to give up on him.\n\nYes, if you bring a player up early, he's likely going to struggle.  But\ndoes that delay the time at which he stops struggling, and starts\nperforming up to expectations?\n\nSherri Nichols\nsnichols@adobe.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 551, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Re: OTO, the Ancient Order of Oriental Templars\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 20\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, Thyagi@cup.portal.com (Thyagi Morgoth NagaSiva) says:\n\n>\n>\"It is known only to a few that there exists an external visible\n>organization of such men and women, who having themselves found\n>the path to real self-knowledge, and who, having travelled the\n>burning sands, are willing to give the benefit of their experience,\n>and to act as spiritual guides to those who are willing to be\n>guided.\n>\"While numberless societies, associations, orders, groups etc.\n>have been founded during the last thirty years in all parts of\n>the civilised world, all following some line of occult study,\n>yet there is but ONE ancient organization of genuine Mystics\n>\n\n\tUp to that point I thought you were talking about the\nRosicrucian Order... :-)  [No offense intended!]\n\nTony\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 552, "properties": {"category": "soc.religion.christian", "text": "From: u0mrm@csc.liv.ac.uk (M.R. Mellodew)\nSubject: Re: If There Were No Hell\nOrganization: Computer Science, Liverpool University\nLines: 31\n\nIn article <May.5.02.51.25.1993.28737@athos.rutgers.edu>, shellgate!llo@uu4.psi.com (Larry L. Overacker) writes:\n\n> Here's a question that some friends and I were debating last night.\n> \n> Q: If you knew beyond all doubt that hell did not exist and that\n>    unbelievers simply remained dead, would you remain a Christian?\n> \n> My contention is that if you answer this question with \"No. I would\n> not then remain a Christian\" then you really are not one now.  \n> Following Jesus Christ has everything to do with sharing in\n> his work and spreading the news that the Kingdom of Heaven is already\n> among us.  Fear-based religion is not a faith-relationship with the\n> One Who made us all.\n\nSo does that mean that anyone who is a Christian to avoid Hell isn't really\na Christian at all? It sounds like it to me.\n\nMit Liebe in Christus,\n Martyn R. Mellodew. (u0mrm@compsci.liverpool.ac.uk)\n\n\n--------------------------------------------------------------------------------\nMartyn R. Mellodew,                |     E-mail: u0mrm@compsci.liverpool.ac.uk\nDepartment of Applied Mathematics  |     ARPA/Internet: u0mrm@csc.liv.ac.uk\n  and Theoretical Physics,         |     JANET:         u0mrm@uk.ac.liv.csc\nThe University of Liverpool,       |\nP.O. Box 147,                      | \nLiverpool,                         |\nEngland,                           | \nL69 9BX.                           |     `Dubito ergo Deus est.'\n--------------------------------------------------------------------------------\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 553, "properties": {"category": "sci.electronics", "text": "From: patter@dasher.cc.bellcore.com (patterson,george r)\nSubject: Re: Power, signal surges in home...\nOrganization: Bellcore, Livingston, NJ\nLines: 20\n\nIn article <1993Apr20.232804.24632@mprgate.mpr.ca> vanderby@mprgate.mpr.ca (David Vanderbyl) writes:\n>kludge@grissom.larc.nasa.gov (Scott Dorsey) writes:\n>\n>>My car, unfortunately, has so much computer junk under the hood that it's\n>>astonishingly sensitive to RFI.  \n>\n>Hmmmmm... this has possibilities:\n>If the police are in pursuit of a vehicle, maybe they can bombard it with\n>high energy RFI.  :-)\n\nRight. So all the cops will be buying antique muscle cars for chase cars;\notherwise the *police* cars will die too!\n\n-----------------------------------------------------------------------\n                    | To get the attention of a large animal, be it an\n                    | elephant or a bureaucracy, it helps to know what\nGeorge Patterson -  | part of it feels pain. Be very sure, though, that\n                    | you want its full attention.\n                    |                            Kelvin Throop\n-----------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 554, "properties": {"category": "misc.forsale", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Pressure meter\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 21\n\nHeise model 710A pressure meter. This is a precision 4-1/2\ndigit meter measuring 0 - 15 PSI (absolute) in .001 psi\nincrements.  Case is in extremely good shape, and can be used\nas a stand-alone meter or panel mounted. Brass fitting (looks\nlike standard 3/8\") on back. Operates from 110 VAC.\n\nI'd like $50 for it, or make an offer. It is a lot more useful to\na lab than as an ersatz barometer, which is what I've been using\nit for.\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 555, "properties": {"category": "talk.politics.misc", "text": "From: dowdy@tochtli.biochem.nwu.edu (Dowdy Jackson)\nSubject: Re: Swimming pool defense\nNntp-Posting-Host: tochtli.biochem.nwu.edu\nOrganization: Northwestern University, Evanston, Illinois\nLines: 23\n\nIn article <kbanaian.488.735081194@bernard.pitzer.claremont.edu> kbanaian@bernard.pitzer.claremont.edu (King Banaian) writes:\n>In article <1993Apr17.201310.13693@midway.uchicago.edu> thf2@kimbark.uchicago.edu (Ted Frank) writes:\n>>In article <dasmith.734719640@husc.harvard.edu> dasmith@husc8.harvard.edu (\n>David Smith) writes:>>Granted, the simple fact of holding down a job will \n>improve these kids' chances>>of getting another job in the future, but what \n>inner city kid would want to hold>>down just one more minimum wage job when \n>there is so much more money to be made>>dealing drugs?  \n>>\n>>What suburban kid would want to hold down a minimum wage job when there is so\n>>much more money to be made dealing drugs?\n>>\n>>Yet, somehow, surburban kids do hold down minimum wage jobs.  So do inner\n>>city kids, when give the chance.  Any reason you think that inner city kids\n>>are incapable of doing legitimate work?\n>\n>I suppose the correct answer is not \"family values\"?\n>\n>S'pose not.  Never mind.  Sorry.\n>\nAre you assuming that families in the inner city don't have family values ?\nI sure hope not.\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 556, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: 5 Apr 93   God's Promise in Psalm 85: 8\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 21\n\nIn article <C50KDr.Duz@acsu.buffalo.edu> \npsyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss) writes:\n>\tI will hear what God the LORD will speak:\n>\tfor he will speak peace\n>\tunto his people, and to his saints:\n>\tbut let them not turn again to folly.\n\nPsalm85(JPS): For the leader. Of the Korahites. A psalm. O LORD, You\nwill favor Your land, restore Jacob's fortune; You will forgive Your\npeople's iniquity, pardon all their sins; Selah; You will withdraw all Your\nanger, turn away from Your rage. Turn again, O God, our helper, revoke\nYour displeasure with us. Will you be angry with us forever, prolong\nYour wrath for all generations? Surely You will revive us again, so that\nYour people may rejoice in You. Show us, O LORD, Your faithfulness;\ngrant us Your deliverance. Let me hear what God, the LORD, will speak;\nHe will promise well-being to His people, His faithful ones; may they\nnot turn to folly. His help is very near those who fear Him, to make His\nglory dwell in our land. Faithfulness and truth meet; justice and\nwell-being kiss. Truth springs up from the earth; justice looks down\nfrom heaven. The LORD also bestows His bounty; our land yields its\nproduce. Justice goes before Him as He sets out on His way.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 557, "properties": {"category": "rec.sport.hockey", "text": "From: downec@crockett1a.its.rpi.edu (Christopher Stevan Downey)\nSubject: Re: This Year's vs. Next Year's Playoffs\nNntp-Posting-Host: crockett1a.its.rpi.edu\nReply-To: downec@rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY.\nLines: 29\n\nLet's fill in some winners here:\n\n|> \n|> Well, since someone probably wanted to know, here's this year's playoff\n|> matchups on the left, and what the matchups would be next year under the\n|> new alignment and playoff-matchup rules.  The same 16 teams make the playoffs\n|> under next year's rules, and three of the first round matchups are the same\n|> (QUE-MTL, CHI-STL, VAN-WIN).\n|> \n|> PIT --+                      +-- CHI | PIT --+                      +-- CHI\n|>       +PIT+              +CHI+       |       +---+              +---+\n|> NJ  --+   |              |   +-- STL | BUF --+   |              |   +-- STL\n|>           +NYI+      +DET+           |           +---+      +---+\n|> WAS --+   |   |      |   |   +-- DET | QUE --+   |   |      |   |   +-- TOR\n|>       +NYI+   |      |   +DET+       |       +---+   |      |   +---+\n|> NYI --+       | *BOS*|       +-- TOR | MTL --+       |      |       +-- CAL\n|>               +------+               |               +------+\n|> BOS --+       |  DET |       +-- VAN | WAS --+       |      |       +-- VAN\n|>       +BOS+   |      |   +VAN+       |       +---+   |      |   +---+\n|> BUF --+   |   |      |   |   +-- WIN | NJ  --+   |   |      |   |   +-- WIN\n|>           +BOS+      +VAN+           |           +---+      +---+\n|> QUE --+   |              |   +-- CAL | BOS --+   |              |   +-- DET\n|>       +QUE+              +CAL+       |       +---+              +---+\n|> MTL --+                      +-- LA  | NYI --+                      +-- LA\n|> \n\nJust my thoughts,\nChris\ndownec@rpi.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 558, "properties": {"category": "rec.sport.baseball", "text": "From: mcmath@csb1.nlm.nih.gov (Chuck Chuck Bo-Buck... McMath)\nSubject: Re: Giants' GM Quinn *is* a genius!\nOrganization: Ross Perot Ear Admiration Society\nLines: 37\n\nIn article <80416@apple.apple.COM>, chuq@Apple.COM (Chuq Von Rospach)\nwrote:\n> \n> mcmath@csb1.nlm.nih.gov (Chuck Chuck Bo-Buck... McMath) writes:\n> \n> \n> \n> >\"When the Giants protected Mike Benjamin (career average .160) ovre pitcher\n> >Pat Rapp, there were surprised looks in the Bay Area\n> \n> >Benjamin's stats: .333/.364/.571, 42 ab, 14 H, 4 doubles, 2 dingers.\n> \n> >And Rapp's even been sent down to AAA.  So it's even *better* than that,\n> >eh?\n> \n> Of course, the protected list was done by the OLD regime, not the new, so\n> this is Rosen's baby, not Quinn's.\n> \n> And I'll tell you what. Let's look at this again at the end of the season,\n> and, say in three years, and see who the genius is. One of the more\n> braindead decisions by the OldGiants, IMHO. Even if Benjamin DOES improve\n> markedly over the past (and his hitting is better) he's never going to be\n> more than a utility/backup IF. Rapp might turn into a top-flight arm in\n> another year.\n\nI think the next time I post something like this, I obviously need to make\nthe sarcasm a bit more obvious...\n\n\nchuck\n\n\n|- chuck mcmath - mcmath@csb1.nlm.nih.gov - MSD, Inc. ---------------|\n|- National Library of Medicine - National Institutes of Health -----|\n|- Bethesda, MD 20894 ----------- No noose is good noose ------------|\n|- \"Hey batter, hey batter, hey batter, swing\" - Anon. --------------|\n|------------ This opinion influenced by cosmic radiation -----------|\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 559, "properties": {"category": "comp.windows.x", "text": "From: tommc@hpcvusj.cv.hp.com (Tom McFarland)\nSubject: Re: Mysterious beeping\nNntp-Posting-Host: hpcvusj.cv.hp.com\nReply-To: tommc@cv.hp.com\nOrganization: Hewlett Packard UTD-Corvallis\nLines: 40\n\nIn article <C5qtKK.wp@cup.hp.com>, defaria@cup.hp.com (Andy DeFaria) writes:\n|> [ Article crossposted from hp.windows ]\n|> [ Author was Andy DeFaria ]\n|> [ Posted on Mon, 19 Apr 1993 18:08:38 GMT ]\n|> \n|> For some reason the following code causes my X application to beep whenever I\n|> intercept a keystroke and change it's meaning.  The intent of this code it to\n|> allow \"date\" fields the following special keys:\n|> \n|> \t[Tt]:\tInsert today's date\n|> \t[+=]:\tBump day up by one\n|> \t[-_]:\tBump day down by one\n|> \n|> I hardcoded some dates for this example.  Perhaps I shouldn't be using an\n|> XmText field for this.\n|> \n|> ////////////////////////////////////////////////////////////////////////////// \n|> // \n|> // For some reason the following code beeps whenever any of the special keys\n|> // of [Tt+=-_] are hit.  Why?  The idea of this code is to interpret these\n|> // keys having the special meaning implied by the code.  I would like to get\n|> // rid of the beeping but, as far as I can tell, I'm not doing the beep and \n|> // am at a lose as to understanding who and why the beeping is occuring.\n|> // \n|> ////////////////////////////////////////////////////////////////////////////// \n\ncode deleted...\n\nFrom the XmTextField man page (during discussion of resources):\n\n   XmNverifyBell\n\n      Specifies whether a bell will sound when an action is reversed\n      during a verification callback.\n\nYou are setting doit to false in the callback, and Text[Field] is beeping\nas it should.  To turn off this behavior, set this boolean resource to false.\n\nTom McFarland\n<tommc@cv.hp.com>\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 560, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mspace@netcom.com (Brian Hall)\nSubject: Re: New Duo Dock With Processor: Here's Why\nArticle-I.D.: netcom.mspaceC5315y.EwA\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 31\n\nan780@cleveland.Freenet.Edu (Travis Grundke) writes:\n\n>\"Why would Apple release a Duo Dock with a processor of its own?\"\n\n>Here's why- People have hounded Apple for a notebook with a 68040 processor\n>in it. Apple can't deliver that right now because the 040 saps too much\n>power, radiates far too much heat, and is too large for a notebook. How\n>does one get around that without designing a new chipset? Use existing\n>PowerBook technology to your best advantage. The Duo Dock gives Apple a\n>unique ability to give users that 040 power in a \"Semi-Portable\" fashion.\n>By plunking the 040 into the Dock, you've got \"quadra\" power at your desk.\n>On the road, that 33mhz 68030 should be able to handle most of your needs.\n>Okay, not the BEST solution, but its an answer to a no-win situation. :-)\n>So, does this mean one will be able to use the PowerBook's processor in\n>parallel to the dock's processor? Okay, we're getting REALLY hypothetical\n>now... \n\nIt would also be great for another reason - when not docked, it could serve\nas an ARA server to the large internal HD, your corporate email, etc.  In\na pinch, you would also have two machines, instead of 1.5.\n\nIf they could couple that thought with RocketShare, and let you use both the\n'030 on the PB and the '040 on the dock, it would be a mighty powerful dock.\n\n-- \n \n \\ | /   | Brian Hall                 mspace@netcom.com\n - : -   | Mark/Space Softworks       Applelink: markspace\n  /|\\    |                            America Online: MarkSpace\n |-+-|   |\n/-\\|/-\\  | Do Not Disturb: I'm on a mission from EggHead.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 561, "properties": {"category": "rec.motorcycles", "text": "From: tcora@pica.army.mil (Tom Coradeschi)\nSubject: Re: Observation re: helmets\nOrganization: Elect Armts Div, US Army Armt RDE Ctr, Picatinny Arsenal, NJ\nLines: 17\nNntp-Posting-Host: b329-gator-3.pica.army.mil\n\nmaven@mavenry.altcit.eskimo.com (Norman Hamer) wrote:\n>  \n>  Grf. Dropped my Shoei RF-200 off the seat of my bike while trying to rock \n> it onto it's centerstand, chipped the heck out of the paint on it...\n\nGravity. It'll never let you down, er up, er...\n\nLesson: Put your helmet on the ground or your head. If you put it on the\nground, it isn't gonna fall down _to_ the ground. If you put it on your\nhead, well...\n\n                  tom coradeschi <+> tcora@pica.army.mil\n \n   \"Usenet is like a herd of performing elephants with diarrhea -- massive,\ndifficult to redirect, awe-inspiring, entertaining, and a source of mind-\nboggling amounts of excrement when you least expect it.\"\n                                                    --gene spafford, 1992\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 562, "properties": {"category": "misc.forsale", "text": "From: mellis@magnus.acs.ohio-state.edu (Michael E Ellis)\nSubject: **Web of Spiderman--Auction Update**\nSummary: Auction update\nKeywords: High bid at 52.00\nArticle-I.D.: magnus.1993Apr6.155739.14712\nDistribution: usa\nOrganization: The Ohio State University\nLines: 30\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\n\n\n\nWeb of Spiderman--Auction List\n\nISSUES #1-92, ANNUALS 1-7\n\nThis set will be auctioned as a complete set (if there is enough interest).\nThe books have been quickly evaluated for grade.\n\nAll books are VF+ to NM unless noted below (These were ascertained when putting\nthe books into new bags with boards (2 books per bag)):\n\n2-small dinks in spine; 4-spine slightly rolled; 5-2 small crease in front\ncover, dinks in spine; 13-slight tear-edge front cover; 14-spine dinged up;\n15-cover/pages crinkled from humidity; 19-crinkled form water damage; 21-cover\nnot flat; 22-shipping smudge on cover; 28-spine dinked up; 30-3 small dinks in\nspine; 33-spine dinks; 35-tiny crease top left corner of cover; 38-dinks in\nspine; 43-paper clip mark; 45- 2 small spine dinks; 47-slight spine roll, spine\ndinks; 52-back cover crease; 92-cover wrinkled; Annual 1-slight spine roll,\ncover marks\n\nCURRENT HIGH BID: 52.00                     BIDDER: Jon (jon@tivoli...)\n\nThe successful bidder (assuming there is one) will have the books sent UPS,\nCOD-cash or money order.  $6.50 will be added to the total successful bid to\ncover these charges, so bid accordingly.\n\nThanks\n\nMike\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 563, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: To Rob Lanphier\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 82\n\nDear Rob,\n\n>When I read Brian K.'s postings, I find someone who is honestly seeking\n>the truth.  When I read your response here, I see condescension.  When you\n>reply to a post, reply to the post you quote.  This statement undermines\n>any good points you might have had (it was enough to make me stop reading).\n\nSometimes I do come across condesending, and I am sorry I come across that\nway at times.  Thank you for the reproach, I really do appreciate it.  I'll\ntry to get better.\n\nRob, at the same time, I have also learned that some people respond to the gentle\napproach while others respond only at a harsh rebuke.  Brian K., so far,\nonly responds to the latter.  And I am glad he responds at all.   In both\ncases of approach,  my intention is to be loving.  I am making no excuse\nfor myself if I am coming across condesending.  I apologize for that.\n\nRob, sometimes Brian K. comes across as honest. I know this.  But Brian K. \nvasillates back and forth.  One post looks honest; the next is\nan excuse.  Now he wants me to explain the universe in 50 words or less.  \nI think Brian Kendig is really trying but he is too comfortable with\nhis set of excuses.  \n\nI just want Brian K. to be honest with himself.  If he really wants\nto know, he will ask questions and stop asserting irrelevant excuses\nwhich have nothing to do with my God.   I wish Brian would read the\nBible for himself and come to his own decisions without being\nsidetracked with the temptation to mock God.\n\nFrom my perspective Rob, when I look at Brian Kendig, I see a man\nstanding out in the middle of a highway.  Off into the distance I \nsee a Mack truck heading right for him, but Brian K. is faced away\nfrom the oncoming truck.  He doesn't see it.   Here's is how I see\nthe dialog:\n\n\nMe:  \"Brian K, please step aside before you get run over.\" \n\nBK:  \"There is no truck.\"\n\nMe:  \"Turn around at look.\"\n\nBK:  \"No.\"\n\nMe:  \"Look!  You will be healthier if you do take a look at\n     the oncoming truck.\"\n\nBK:  \"No. Explain to me why trucks exist.\"\n\nMe:  \"Turn around or you will run over.\"\n\nBK:  \"No. I won't because I like hiking and tomorrow is Tuesday.\"\n\nMe:  \"You blind fool!  Why do you choose ignorance? You have nothing\n      to lose if you look.  But if do not look, you will certainly lose your life.\"\n      I do not want to see you squashed all over the road.\n\nBK:  \"It is my life to lose.  I rather not look.\n      Besides, a truck running over me will not harm me.\"\n      And by the way, I really have an open mind.\"\n\n\nSo is my motivation to belittle Brian, or to love Brian the best I know how?   \n\nI do not wish to single Brian Kendig out.  Because millions if not\nbillions of people fall into the same category.  Perhaps all people\nfall have fallen into this category at one time in their lives.  I have.\nI can now see the truck behind Brian.\n\nMy hope is that Brian will look and will see the ramifications of the\ntruck coming towards him.  My hope is that Brian will want to step out\nof the way.  My fear, though,  is that Brian will instead choose to glue himself\nto the middle of the highway, where he will certainly get run over.  But if\nhe so chooses, he so chooses, and there is nothing I can do beyond that\nto change his mind.   For it is his choice.   But at this very moment,\nBrian hasn't gotten even that far.  He is still at the point where he\ndoes not want to look.  Sure he moves his eyeball to appease me, but his\nhead will not turn around to see the entire picture.  So far he is\nsatisfied with his glimpse of the mountains off in the distance. \n\nThank you again Rob for your reproach.  I really do appreciate it.  (My\nwife tells me the same thing at times.)   :-)   I will try to do better.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 564, "properties": {"category": "misc.forsale", "text": "From: jmatkins@quads.uchicago.edu (Jonny A (Voltron))\nSubject: Panasonic dot matrix printer: $165 complete\nReply-To: jmatkins@midway.uchicago.edu\nOrganization: University of Chicago Computing Organizations\nDistribution: usa\nLines: 41\n\n\nI would like to sell my dot matrix printer so I can upgrade to inkjet.\nIt is a \"Panasonic KX-P1124 24 pin Multi-Mode Printer\".  Here are the\nstats (from memory and the manual):\n\n-  360x360 dot-printing for hi-res graphics, etc.\n-  VERY fast (up to 192 cps) printing in \"printer-controlled\" (as\n\topposed to Windows driver-controlled) printing\n-  Bidirectional printing for faster processing speed\n-  5 fonts (\"courier\",\"prestige\",\"bold ps\",\"script\",\"sans serif\")\n-  Epson LQ-2500 and IBM Proprinter X24 printer emulation\n-  Can accept single sheets, envelopes, and 3 non-carbon copies by\n\tfriction feed\n-  Front or bottom paper feed\n-  6KB buffer\n\nI will send a sample document and a printed GIF/JPEG file to anyone\nwho wishes to send a SASE.  With purchase (prepaid, please!), I will\ninclude the following accessories:\n\n-  Manual\n-  cable (Centronics)\n-  remaining stack of tractor-fed paper (about .4\")\n-  FREE copy of Windows printer driver (unless this is illegal, or if\n\tit is included with Windows)\n-  FREE unregistered DOS shareware program ($2 registration, I think)\n\tthat apparently offers some word processing capabilities\n\tfrom DOS\n\nThe last two will be on a disk (either size).  I am asking for around\n$165, but I am open to any (reasonable) offers.  I am a college\nstudent, so I cannot afford to buy a new printer without getting a\nconsiderable portion of the money from this printer.  This price\nincludes all above items, and shipping (probably UPS) is included as\nwell.  I have the original box, but only one of the original Styrofoam\nend pieces.  I will use a towel on the other end (you get a free towel\ntoo!!).  Worked fine getting it here.  The whole shebang might not fit\nin the original box; I will figure this out after the offers come in.\nEmail any questions and offers.\t\t-Jon.\n--\njmatkins@midway.uchicago.edu  | jmatkins@ellis.uchicago.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 565, "properties": {"category": "sci.med", "text": "From: rind@enterprise.bih.harvard.edu (David Rind)\nSubject: Re: Candida(yeast) Bloom, Fact or Fiction\nOrganization: Beth Israel Hospital, Harvard Medical School, Boston Mass., USA\nLines: 17\nNNTP-Posting-Host: enterprise.bih.harvard.edu\n\nIn article <1993Apr22.153000.1@vms.ocom.okstate.edu>\n banschbach@vms.ocom.okstate.edu writes:\n>poster for being treated by a liscenced physician for a disease that did \n>not exist.  Calling this physician a quack was reprehensible Steve and I \n>see that you and some of the others are doing it here as well.  \n\nDo you believe that any quacks exist?  How about quack diagnoses?  Is\nbeing a \"licensed physician\" enough to guarantee that someone is not\na quack, or is it just that even if a licensed physician is a quack,\nother people shouldn't say so?  Can you give an example of a\ncommonly diagnosed ailment that you think is a quack diagnosis,\nor have we gotten to the point in civilization where we no longer\nneed to worry about unscrupulous \"healers\" taking advantage of\npeople.\n-- \nDavid Rind\nrind@enterprise.bih.harvard.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 566, "properties": {"category": "misc.forsale", "text": "Subject: **** Tapes 4 Sale (most sale) ****\nFrom: koutd@hirama.hiram.edu (DOUGLAS KOU)\nOrganization: Hiram College\nNntp-Posting-Host: hirama.hiram.edu\nLines: 30\n\nTapes for sale, $3.00 each and the shipping is included.\nThose tapes are 1 year old and are hardly used, so there should\nnot be any problem with it. I really want to sell them, so make\nme a package offer if you wish to.\n\nEagles\t\tThe Best of Eagles\nEagles\t\tHotel California\nElton John\tSleeping with the past\nGloria Estefan\tInto the Light\nJames Ingram\tThe Power of Great Music\nKenny G.\tDuo Tones\nLethal Weapon 3 ( music from the motion picture )\nMariah Carey\tMTV Unplugged EP\nMichael Bolton\tTime, Love and Tenderness\nThe Phantom of the Opera\nGenesis\t\tWe can't dance\nPhil Collins\t... But Seriously\nQueen\t\tThe Works\nQueen\t\tLive Magic\nWilson Phillips\n\nSend me your offer...\n\nPlease send your offer to koutd@hirama.hiram.edu\n\nthanks you,\n\nDouglas Kou\nHiram College\nHiram, Ohio\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 567, "properties": {"category": "comp.windows.x", "text": "From: stolk@fwi.uva.nl (Bram)\nSubject: Creating 8 bit windows on 24 bit display.. How?\nOrganization: FWI, University of Amsterdam\nLines: 75\nNntp-Posting-Host: carol.fwi.uva.nl\n\nGreetings,\n\n\nI am using an X server that provides 3 visuals:\nPseudoColor 8 bit, Truecolor 24 bit and DirectColor 24 bit.\n\nA problem occurs when I try to create a window with a visual that is different\nfrom the visual of the parent (which uses the default visual which is TC24).\n\nIn the Xlib reference guide from 'O reilly one can read in the\nsection about XCteateWindow, something like:\n\"In the current implementation of X11: When using a visual other than the\nparent's, be sure to create or find a suitable colourmap which is to be used \nin the window attributes when creating, or else a BadMatch occurs.\"\n\nThis warning, strangely enough, is only mentioned in the newer editions\nof the X11R5 guides.\n\nHowever, even if I pass along a suitable colourmap, I still get a BadMatch\nwhen I create a window with a non-default visual.\nThe code looks like this:\n\n------------------ cut here and you'll destroy your CRT ----------------\n\nWindow create_8bit_window_on_truecolour_display(dpy,width,height)\nDisplay *dpy;\nint width, height;\n{\n  Window win;\n  XVisualInfo vinfo;\n  XSetWindowAttributes attr;\n\n  fprintf(stderr,\"Opening 8 bit window...\\n\");\n  if (!XMatchVisualInfo(dpy,DefaultScreen(dpy),8,PseudoColor,&vinfo)) {\n    fprintf(stderr,\"Your display can't handle 8 bit PseudoColor.\\n\");\n    exit(1);\n  }\n  fprintf(stderr,\"Using visual: %x\\n\",vinfo.visual->visualid);\n  cmap = XCreateColormap(\n           dpy,\n           DefaultRootWindow(dpy),\n           vinfo.visual,\n           AllocNone\n         );\n  XSync(dpy,False);\n  XInstallColormap(dpy,cmap);\t/* ommision of this line gives same result */\n  attr.colormap = cmap;\n  win = XCreateWindow(\n          dpy,\n          DefaultRootWindow(dpy),\n          10,10,\n          width,height,\n          CopyFromParent,       /* border width */\n          8,                    /* depth */\n          InputOutput,          /* class */\n          vinfo.visual,         /* visual */\n          CWColormap,\n          &attr\n        );\n  return win;\n}\n\n--- cut here and you'll destroy your CRT -----\n\nExecuting this piece of code results in a BadMatch error.\nAnybody who knows why?\nIf so, please drop me a line.\n\n\n\n\tTake care,\n\n\n\t\tBram Stolk\n\t\tstolk@fwi.uva.nl\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 568, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gtoye@pssparc2.mitek.com (Gene Toye)\nSubject: Re: workaround for Citizen drivers\nKeywords: printer driver Citizen PN48 GSX-140\nOrganization: OpenConnect Systems, Dallas, TX\nLines: 8\n\nFor Windows 3.1, I have had the best luck using the Epson LQ-2550 drivers\nwith my Citizen GXS-140+.  Be sure to download the updated version from\nMicrosoft that allows margin settings.\n-- \nGene Toye, Senior Software Engineer                   gtoye@pssparc2.oc.com\nOpenConnect Systems, 2711 LBJ Freeway, Dallas, TX 75234\n214/888-0454\nDISCLAIMER: My employer had no idea I was going to say that.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.028+0000", "event": "documents", "entityId": 569, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: fosterr@nickel.ucs.indiana.edu (Raymond W. Foster)\nSubject: Re: Windows Speaker Sound Driver\nNntp-Posting-Host: nickel.ucs.indiana.edu\nOrganization: Indiana University\nLines: 14\n\nIn article <C5rEq8.Eq2@unix.portal.com> claebaur@shell.portal.com (Tony S Annese) writes:\n>In article <1993Apr19.235430.6097@mnemosyne.cs.du.edu> alee@mnemosyne.cs.du.edu (Alec Lee) writes:\n>>Is there an ftp site where I can get the MS speaker sound driver?  There's\n>>a \"sound.exe\" file that claims to be the driver but I'm suspicious since\n>>it's not a .drv file.  \n>\n>Thats the file...\n>--\n\nTo clarify a little more: SOUND.EXE is a self-expanding archive which\ncontains the driver (which is actually called SPEAKER.DRV, I think).\n\nRay\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 570, "properties": {"category": "talk.politics.guns", "text": "From: chrisb@natinst.com (Chris Bartz)\nSubject: Re: HR 1276 (\"A gun law I can live with!\" :-)\nOrganization: National Instruments, Austin, TX\nLines: 26\nDistribution: usa\nNNTP-Posting-Host: eagle.natinst.com\n\nIn article <1993Apr15.171601.25930@dg-rtp.dg.com> meyers@leonardo.rtp.dg.com (Bill Meyers) writes:\n>        (a) ESTABLISHMENT OF RIGHT. -- A person not pro-\n>    hibited by Federal law from receiving a firearm shall have\n>    the right to obtain firearms for security, and to use fire-\n>    arms in defense of self, family, or home.\n\n\nSo, you have the right unless the Federal Government says you don't.\nI don't think I like this very much.\n\nThis would be much better if it said \"everyone except those who have\nbeen striped of this right by due process of law\" or some such thing.\n\nAlso, I don't care for the Federal Government stepping on states rights\nregardless of which state right is being stepped on.  If the constitution\ndoesn't give the Feds some power then they have to just shut up about\nit.\n\nThe only way the Feds should have anything to say is if the Constitution\nprohibits localities from infringing on the RKBA.  In which case this\nbill should just reiterate that the RKBA is guaranteed by the Constitution\nand that the Feds will take appropriate action if it is infringed.\n\n\n-- \n-- chris bartz (chrisb@natinst.com)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 571, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Re: Clipper considered harmful\nDistribution: inet\nOrganization: AT&T Bell Laboratories\nLines: 19\n\nIn article <1r24us$oeh@agate.berkeley.edu>, shirriff@sprite.berkeley.edu (Ken Shirriff) writes:\n> Imagine archiving all pay-phone conversations, so if someone turns out\n> to be a drug dealer, you can listen to all their past drug deals.  And\n> archive calls to/from suspected Mafia members, potential terrorists,\n> radicals, etc.  Imagine the convenience for the police of being able to\n> get a warrant now and listening to all the calls the World Trade Center\n> bombers made in the past year.\n> \n> Since archiving would be such a powerful tool and so easy to do, why\n> wouldn't it happen?\n\nApart from the storage and search requirements, because the evidence\nis inadmissible:  wiretaps require a warrant.  And as soon as one\nsuch case comes to light, all previous cases are likely to be discovered,\nand thrown out.  There was an article in the NY Times a few months ago\nabout how many convictions in the state might be invalidated because\nthey relied on pen registers -- and the Court of Appeals ruled that\npen registers were equivalent to wiretaps, and hence required warrants\nunder New York law.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 572, "properties": {"category": "soc.religion.christian", "text": "From: aa888@freenet.carleton.ca (Mark Baker)\nSubject: Re: The arrogance of Christians\nReply-To: aa888@freenet.carleton.ca (Mark Baker)\nOrganization: The National Capital Freenet\nLines: 58\n\nIn a previous article, dleonar@andy.bgsu.edu (Pixie) says:\n\n>     Do the words \"Question Authority\" mean anything to you?\n>\n>     I defy any theist to reply.      \n\nWell, despite what my mother told me about accepting dares, here goes.\n \nYou have to be very careful about what you mean by \"question authority\".\nTaken literally, it is nonsense. That which is authoratative is authoratative,\nand to say \"I question to word of this authority\" is ridiculous. If it is \nopen to question, it isn't an authority. On the other hand, it is perfectly\nreasonable to question whether something is an authority. The catch phrase\nhere should be \"authenticate authority.\" Once you have authenticated\nyour authority, you must believe what it says, or you are not treating it as\nan authority. \n\nThe difficulty is that authenticating an authority is not easy. You \ncan perhaps discredit a claim to authority by showing logical inconsistency\nin what it teaches, or by showing that it does not obey its own rules of\ndiscourse. But the fact that I cannot discredit something does not, in\ninself, accredit it. (Nor does the fact that I can convince myself and \nother that I have discredited something necessarilly mean that it is false.)\nI cannot accredit an authority by independantly verifying its teachings, \nbecause if I can independantly verify its teachings, I don't need an \nauthority. I need an authority only when there is information I need which\nI cannot get for myself. Thus, if I am to authenticate an authority, I must\ndo it by some means other than by examining its teachings. \n\nIn practical matters we accept all kinds of authorities because we don't\nhave time to rediscover fundamental knowledge for ourselves. Every scientist\nworing today assumes, on the authority of the scintific community, all sorts\nof knowledge which is necessary to his work but which he has not time to \nverify for himself.\n\nIn spiritual matters, we accept authority because we have no direct source \nofinformation. We select our authorities based on various criteria. (I am\na Catholic, in part, because the historical claims of the RC church seem\nthe strongest.) Without authorities there would be no subject matter for\nbelief, unless we simply made something up for ourselves (as many do).\n\nThe atheist position seems to be that there are no authorities. This is a\nreasonable assertion in itself, but it leads to a practical difficulty.\nIf you reject all authority out of hand, you reject all possibility of\nevery receiving information. Thus the atheist position can never possibly\nchange. It is non-falsifiable and therefore unscintific. \n\nTo demand scintific or rational proof of God's existence, is to deny\nGod's existence, since neither science, nor reason, can, in their very\nnature, prove anything.\n\n\n\n-- \n==============================================================================\nMark Baker                  | \"The task ... is not to cut down jungles, but \naa888@Freenet.carleton.ca   | to irrigate deserts.\" -- C. S. Lewis\n==============================================================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 573, "properties": {"category": "sci.med", "text": "From: km@ky3b.pgh.pa.us (Ken Mitchum)\nSubject: Re: How about a crash program in basic immunological research?\nOrganization: KY3B - Vax Pittsburgh, PA\nLines: 26\n\nIn article <93099.141148C09630GK@wuvmd.wustl.edu>, C09630GK@WUVMD (Gary Kronk) writes:\n|> I have been contemplating this idea for some time as well. I am not a\n|> doctor, but my wife is a nurse and I know a lot of doctors and nurses.\n|> The point here being that doctors and nurses do not seem to get sick\n|> nearly as much as people outside the medical profession.\n\nThis is a lovely area for anecdotes, but I am sure you are on to something.\nAs a physician, I almost never get sick: usually, when something horrendous\nis going around, I either don't get it at all or get a very mild case.\nWhen I do get really sick, it is always something unusual.\n\nThis was not the situation when I was in medical school, particularly on\npediatrics. I never had younger siblings myself, and when I went on the\npediatric wards I suddenly found myself confronting all sorts of infectious\nchallenges that my body was not ready for. Pediatrics for me was three solid\nmonths of illness, and I had a temp of 104 when I took the final exam!\n\nI think what happens is that during training, and beyond, we are constantly\nexposed to new things, and we have the usual reactions to them, so that later\non, when challenged with something, it is more likely a re-exposure for us,\nso we deal with it well and get a mild illness. I don't think it is that\nthe immune system is hyped up in any way. Also, don't forget that the\nhospital flora is very different from the home, and we carry a lot of that\naround.\n\n-km\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 574, "properties": {"category": "rec.motorcycles", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Re: Recommendation for a front tire.\nOrganization: Lehigh University\nLines: 37\n\nIn article <C5HrxJ.ACE@unix.amherst.edu>, nrmendel@unix.amherst.edu (Nathaniel M\nendell) writes:\n>Ken Orr (orr@epcot.spdc.ti.com) wrote:\n>: In article <C5G7Hv.Cs@unix.amherst.edu> nrmendel@unix.amherst.edu (Nathaniel\nMendell) writes:\n>: >Steve Mansfield (smm@rodan.UU.NET) wrote:\n>: >: Yes, my front tire is all but dead.  It has minimal tread left, so it's\n>: >: time for a new one.  Any recommendations on a good tire in front?  I'm\n>: >: riding on an almost brand new ME55A in back.\n>: >:\n>: >: Steve Mansfield       | The system we've learned says we're equal under la\nw\n>: >: smm@uunet.uu.net    | But the streets are reality, the weak and poor will\nfall\n>: >: 1983 Suzuki GS550E  | Let's tip the power balance and tear down the crown\n>: >: DoD# 1718     | Educate the masses, we'll burn the White House down.\n>: >: Queensryche           -       Speak the Word.\n>: >\n>: >The best thing is to match front and back, no? Given that the 99A (\"Perfect\"\n?)\n>: >is such a good tire, just go with that one\n>: >\n>:     The Me99a perfect is a rear. The match for the front is the Me33 laser.\n>:\n>:     DOD #306                                     K.O.\n>:   AMA #615088                             Orr@epcot.spdc.ti.com\n>\n>Yeah, what *he* said....<:)\n>\n>Nathaniel\n>ZX-10\n>DoD 0812\n>AM\n\n>Yes, you definitely need a front tire on a motorcycle....<grin>\n\n-- \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 575, "properties": {"category": "sci.med", "text": "From: kelley@vet.vet.purdue.edu (Stephen Kelley)\nSubject: Re: Should I be angry at this doctor?\nOrganization: Purdue University SVM\nDistribution: na\nLines: 32\n\nIn article <1993Apr21.155714.1@stsci.edu> mryan@stsci.edu writes:\n- Am I justified in being pissed off at this doctor?\n- \n- Last Saturday evening my 6 year old son cut his finger badly with a knife.\n- I took him to a local \"Urgent and General Care\" clinic at 5:50 pm.  The \n\n\t[story deleted]\n\n- be bothered.  My son did get three stitches at the emergency room.  I'm still \n- trying to find out who is in charge of that clinic so I can write them a \n- letter.   We will certainly never set foot in that clinic again.\n- \n\nThe people in charge already know what kind of 'care' they are \nproviding, and they don't give a rat's ass about your repeat business.\n\nYou are much more likely to do some good writing to local newspapers,\nand broadcast news shows.  If you do, keep the letter short and to the point\nso they don't discard it out of hand, and emphasize exactly what you\nare upset about.\n\nIt's possible that the local health department can help you complain to \nsomeone official, but really, that 'clinic' exists for the sole purpose \nof generating walk-in income through advertising, and *nothing* you can do \nwill change them -- all you can hope for is to help someone else avoid them.\n\nI'm glad it sounds like your son did ok, anyway.\n\nMy opinion only, of course,\nSteve\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 576, "properties": {"category": "soc.religion.christian", "text": "From: kramersc@expert.cc.purdue.edu (Scott Kramer)\nSubject: Re: Daily Verse\nOrganization: Purdue University Computing Center\nLines: 14\n\nIn article <Apr.15.00.58.36.1993.28909@athos.rutgers.edu> Petch@gvg47.gvg.tek.com (Chuck Petch) writes:\n>How much better to get wisdom than gold, to choose understanding rather\n>than silver! \n>\n>Proverbs 16:16\n\nAh and how...??? Amen to that one!!!!!!  Thanks Chuck for sharing...\nafter all, no one can serve two masters...God and money......\nafter all, the preciousness of God as Lord and Savior is far more valuable than\nbeing a millionaire will ever be...\n\n\nIn Him,\nScott\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 577, "properties": {"category": "comp.sys.mac.hardware", "text": "From: narain@ih-nxt09.cso.uiuc.edu (Nizam Arain)\nSubject: Floptical Question\nArticle-I.D.: news.C519MM.M2L\nReply-To: narain@uiuc.edu\nOrganization: University of Illinois at Urbana\nLines: 17\n\nHi. I am looking into buying a Floptical Drive, and was wondering what  \nexperience people have with the drives from Iomega, PLI, MASS MicroSystems,  \nor Procom. These seem to be the main drives on the market. Any advice?\n\nAlso, I heard about some article in MacWorld (Sep '92, I think) about  \nFlopticals. Could someone post a summary, if they have it?\n\nThanks in advance. (Reply by post or email, whichever you prefer.)\n\n--Nizam\n\n--\n\n /  *  \\   Nizam Arain                           \\ What makes the universe\n||     ||  (217) 384-4671                        / so hard to comprehend \n| \\___/ |  Internet: narain@uiuc.edu             \\ is that there is nothing\n \\_____/   NeXTmail: narain@sumter.cso.uiuc.edu  / to compare it with.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 578, "properties": {"category": "talk.politics.guns", "text": "From: pspod@hooch.lerc.nasa.gov (Steve Podleski)\nSubject: Re: With Friends Like These -- L. Neil Smith\nOrganization: NASA Lewis Research Center [Cleveland, Ohio]\nLines: 15\nNNTP-Posting-Host: hooch.lerc.nasa.gov\n\npapresco@undergrad.math.uwaterloo.ca (Paul Prescod) writes:\n>...\n>Some guns will get through, but far fewer, and far less people will\n>die because of them.  \n\nDo you have any statistical evidence to back you claim that requires another\nlimitation of the citizenry freedom?\n-- \n\n-----------------------------------------------------------------------------\nSteve Podleski\t\t\t|     phone: 216-433-4000\nNASA Lewis Research Center     \t|    \nCleveland, Ohio  44135         \t|     email: pspod@hooch.lerc.nasa.gov \n-----------------------------------------------------------------------------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 579, "properties": {"category": "comp.sys.mac.hardware", "text": "From: wstomv@wsinpa04.win.tue.nl (Tom Verhoeff)\nSubject: DeskWriter Drivers 3.1 -- How to install ?\nOrganization: Eindhoven Univ. of Technology, The Netherlands\nLines: 15\nNNTP-Posting-Host: wsinpa04.win.tue.nl\nKeywords: HP DeskWriter, DW-3.1, System 7.1, installation\n\nI recently upgraded to System 7.1 and now I also upgraded my\nDeskWriter drivers from 2.2 to 3.1.  I got the software from Sumex,\nbut it is not clear to me where to install what.\n\nCan someone tell me which of the files that come with DW-3.1 go where\nand for what purpose?  What can be left out, for instance, if\nyou don't want to do background printing?\n\nThanks,\n\n\tTom\n-- \nINTERNET: wstomv@win.tue.nl  /    Eindhoven University of Technology\nVOICE: +31 40 47 41 25      /    Dept of Mathematics & Computing Science\nFAX: +31 40 43 66 85       /    PO Box 513, NL-5600 MB Eindhoven, Netherlands\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 580, "properties": {"category": "talk.politics.guns", "text": "From: bressler@iftccu.ca.boeing.com (Rick Bressler)\nSubject: Re: Non-lethal alternatives to handguns?\nOrganization: Boeing Commercial Airplane Group\nLines: 25\n\n/ iftccu:talk.politics.guns / steiner@jupiter.ca.boeing.com / 12:07 am  Apr 15, 1993 /\n>douglas craig holland (holland@CS.ColoState.EDU) writes:\n>[...lostsa' crap deleted. trim your articles!...]\n>\n>> What about guns with non-lethal bullets, like rubber or plastic \n>> bullets. Would those work very well in stopping an attack?\n>\n>last i heard, \"non-lethal\" was a bit of a misnomer for these things.\n\nAlso, you need to consider our legal system.  Since any of these things\nCAN be lethal, you are going to have a hard time explaining why you applied \nlethal force when you DIDN'T think it was necessary.  (If you thought lethal\nforce was necessary, you wouldn't be using rubber bullets, would you?) Ouch.  \nIf you are justified in shooting them at all, you are justified in using \nthe best self defense ammunition you can get your hands on.  It might actually\nIMPROVE the legal outcome.\n\nThis is why hollow points hold up in court.  They are safer for you, safer\nfor innocent by standers, (don't as a rule go through the perp) and actually\nsafer for the perp.  If you are using military hard ball, you may have to \nshoot him 'MANY' times, where one or two hollow points might stop him and \ndo the job.  As a rule, the fewer wound channels, the better the chance \nfor his surviving the incident.\n\nRick\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 581, "properties": {"category": "rec.sport.hockey", "text": "From: adavis@mcl.bdm.com (Arthur Davis)\nSubject: Re: Ron Francis\nOrganization: BDM International, Inc.\nLines: 17\nNNTP-Posting-Host: jupiter.mcl.bdm.com\n\nIn article <1993Apr19.171223.11311@Virginia.EDU> mjr4u@Virginia.EDU (\"Matthew J. Rush\") writes:\n> I forgot to ask: Is this the highest points total Francis has\n>had in a season?  Has he ever had a 100 point season before,\n>either with the Pens or the Whalers?\n>\n\nFrancis got 101 in 89-90, his last full season with Hartford.\n\nIn agreement with your previous post, I think Francis is a tremendous and\ngenerally underrated complete player.  I would LOVE to have him here in a\nCapitals uniform where he would certainly be the #1 center (even though\nPivonka is also a very good complete player who is generally underrated).\nFrancis impresses me in many ways as an \"ethical Dale Hunter\".  Tons of\nheart and can-do attitude with a lot of different skills, but none of\nthe cheap shots and few penalty minutes.  Not to mention nearly always\ncoming through when it's important.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 582, "properties": {"category": "talk.politics.guns", "text": "From: jrm@gnv.ifas.ufl.edu\nSubject: Re: The 'pill' for Deer = No Hunting\nLines: 117\n\nIn article <PA146008.710.734831135@utkvm1.utk.edu>, PA146008@utkvm1.utk.edu (David Veal) writes:\n> In article <1993Apr14.182610.2330@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n> \n>>In article <1993Apr14.120958.11363@synapse.bms.com>, hambidge@bms.com writes:\n>>> Self defense is a valid reason for RKBA.\n>>\n>>\tThe vast majority get through life without ever having to\n>>\town, use or display a firearm. \n> \n>        You might have missed the U.S. News & World Report excerpt\n> I posted.  It is fairly consistant with other such polls, finding\n> that approximately 40-50% of households have at least one firearm.\n> How this translates into individual ownership is questionable, but I\n> think it's fairly safe to say that you're wrong about the \"vast majority.\"\n\n\tOK ... a near-majority actually OWN firearms, but I will still\n\tclaim that the VAST majority never needs to use them or even\n\tthreaten anyone with them. What do they do right ... or are\n\tthey just lucky ? In either case, this means the 'average\n\tthreat level' in this country is rather low. \n \n>>       Besides, there are other\n>>\tmeans of self-protection which can be just as effective\n>>\tas firearms. \n> \n>        Please name them.  The key phrase is \"can be.\"  Theories are\n> nice, but practicality is more important.  A taser (to chose an\n> exmpale outlawed virtually everywhere) \"can\" be as effective as a gun,\n> under optimal conditions when dealing with your absolute average\n> [...]\n\n\tI think you have weapons on the brain. I never said that these\n\talternative means of self-protection involved any hardware.\n\tWhy are 'good' neighborhoods 'good' ? It isn't because every\n\tperson is armed to the teeth. It is because of (1) attitude\n\tand (2) cooperation. In the 'good' neighborhoods, the residents\n\tmake themselves aware of their neighbors and notice when\n\tstrangers are lurking around. 'Good' neighborhoods form groups\n\tlike 'crime-watch' to increase this effect, and the relative\n\teffectiveness of the police. When hostiles are arrested, the\n\tgood neighbors step up and say \"THAT'S the one officer ! He\n\twas robbing Mr. Jones' house\". \n\n\tIn short, the alternative to firepower is gangs ... or at\n\tleast a benificent manifestation of that social cooperative.\n\tReplace lead with flesh ... the flesh makes a better\n\tconversationalist too and you can invite it over for a\n\tblock party. \n\n>>> Freedoms and rights are not dependent on public opinion, necessity, or\n>>> scientific scrutiny.\n>>\n>>\tNew to this planet ? EVERYTHING is dependent on either public\n>>\tor political opinion, usually political. To imagine that\n>>\tinalienable 'rights' are somehow wired into the vast cold\n>>\tcosmos is purest egotism and a dangerous delusion.\n> \n>        In a very real sense *everything* the government does is based\n> on public approval, if for no other reason than at any particular time\n> there aren't \"public servants\" commonly adorning trees.\n> \n>        But legality and legitimacy also matter.  If a government's charter\n> makes a rule, which the government then violates, it is violated the\n> basis for its existance.  Enforcement of its will becomes a matter\n> solely of force of arms.\n\n\tOliver North. The man is positively worshiped in many\n\tall-American 'conservative' quarters. He and Big Ron\n\tset-up a secret government and did all sorts of severely\n\tillegal deeds - the kind of stuff you and I would be doing\n\ttwenty-to-life for, yet he walks free. This BS happens all\n\tthe time. In fact, it happens so much that no one really\n\tcares anymore.  'Legitimacy' is a non-issue. Legality is\n\ta non-issue. So long as we get T-bones and our MTV, who\n\tgives a rats ass ? \n\n>>> No arguments against RKBA can withstand scientific scrutiny.\n>>\n>>\tThey don't have to. Like so many other things, the issue\n>>\tis one of -perception- rather than boring statistics.\n> \n>        Excuse me, sir, but *you* were the one suggesting that arguments\n> for RKBA would not stand up to scientific scrutiny.\n\n\tNo. I claimed that no one is interested in the statistical\n\taspects of the argument. Pure emotion, like the abortion issue.\n\n>>\tEvery time some young innocent is gunned-down in a drive\n>>\tby, every time some kid is murdered for a jacket, every\n>>\ttime a store clerk is executed for three dollars in change,\n>>\tevery time some moron kills his wife because she took the\n>>\tlast beer from the fridge, every time someone hears a 'bang'\n>>\tin the night .... the RKBA dies. \n> \n>         Emotion is hard to argue against.  But it must be done anyway if\n> emotion is wrong.\n\n\tArgue away ... you can't win. \n\n>>       The stats are not all *that*\n>>\tclearly behind firearms - \n> \n>         And just yesterday you claimed they weren't behind them at\n> all.\n> \n>>       the protection factor does not\n>>\tstrongly outweigh the mindless mayhem factor. \n> \n>         Operating under the assumption that the same conditions absolutely\n> govern both of them.  That the expansion of one automatically necessitates\n> the contraction of the other.\n\n\tFirearms-related mindless mayhem will be related to the\n\tavailibility of firearms. If they become scarce and \n\tand expensive, a different psychology will take hold.\n\tI *think* they would be used far less to settle trivial\n\tcomplaints. \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 583, "properties": {"category": "comp.graphics", "text": "From: tgl+@cs.cmu.edu (Tom Lane)\nSubject: JPEG image compression: Frequently Asked Questions\nSummary: Useful info about JPEG (JPG) image files and programs\nKeywords: JPEG, image compression, FAQ\nSupersedes: <jpeg-faq_733898461@g.gp.cs.cmu.edu>\nNntp-Posting-Host: g.gp.cs.cmu.edu\nReply-To: jpeg-info@uunet.uu.net\nOrganization: School of Computer Science, Carnegie Mellon\nExpires: Sun, 16 May 1993 21:39:30 GMT\nLines: 1027\n\nArchive-name: jpeg-faq\nLast-modified: 18 April 1993\n\nThis FAQ article discusses JPEG image compression.  Suggestions for\nadditions and clarifications are welcome.\n\nNew since version of 3 April 1993:\n  * New versions of Image Archiver and PMJPEG for OS/2.\n\n\nThis article includes the following sections:\n\n[1]  What is JPEG?\n[2]  Why use JPEG?\n[3]  When should I use JPEG, and when should I stick with GIF?\n[4]  How well does JPEG compress images?\n[5]  What are good \"quality\" settings for JPEG?\n[6]  Where can I get JPEG software?\n    [6A] \"canned\" software, viewers, etc.\n    [6B] source code\n[7]  What's all this hoopla about color quantization?\n[8]  How does JPEG work?\n[9]  What about lossless JPEG?\n[10]  Why all the argument about file formats?\n[11]  How do I recognize which file format I have, and what do I do about it?\n[12]  What about arithmetic coding?\n[13]  Does loss accumulate with repeated compression/decompression?\n[14]  What are some rules of thumb for converting GIF images to JPEG?\n\nSections 1-6 are basic info that every JPEG user needs to know;\nsections 7-14 are advanced info for the curious.\n\nThis article is posted every 2 weeks.  You can always find the latest version\nin the news.answers archive at rtfm.mit.edu (18.172.1.27).  By FTP, fetch\n/pub/usenet/news.answers/jpeg-faq; or if you don't have FTP, send e-mail to\nmail-server@rtfm.mit.edu with body \"send usenet/news.answers/jpeg-faq\".\nMany other FAQ articles are also stored in this archive.  For more\ninstructions on use of the archive, send e-mail to the same address with the\nwords \"help\" and \"index\" (no quotes) on separate lines.  If you don't get a\nreply, the server may be misreading your return address; add a line such as\n\"path myname@mysite\" to specify your correct e-mail address to reply to.\n\n\n----------\n\n\n[1]  What is JPEG?\n\nJPEG (pronounced \"jay-peg\") is a standardized image compression mechanism.\nJPEG stands for Joint Photographic Experts Group, the original name of the\ncommittee that wrote the standard.  JPEG is designed for compressing either\nfull-color or gray-scale digital images of \"natural\", real-world scenes.\nIt does not work so well on non-realistic images, such as cartoons or line\ndrawings.\n\nJPEG does not handle black-and-white (1-bit-per-pixel) images, nor does it\nhandle motion picture compression.  Standards for compressing those types\nof images are being worked on by other committees, named JBIG and MPEG\nrespectively.\n\nJPEG is \"lossy\", meaning that the image you get out of decompression isn't\nquite identical to what you originally put in.  The algorithm achieves much\nof its compression by exploiting known limitations of the human eye, notably\nthe fact that small color details aren't perceived as well as small details\nof light-and-dark.  Thus, JPEG is intended for compressing images that will\nbe looked at by humans.  If you plan to machine-analyze your images, the\nsmall errors introduced by JPEG may be a problem for you, even if they are\ninvisible to the eye.\n\nA useful property of JPEG is that the degree of lossiness can be varied by\nadjusting compression parameters.  This means that the image maker can trade\noff file size against output image quality.  You can make *extremely* small\nfiles if you don't mind poor quality; this is useful for indexing image\narchives, making thumbnail views or icons, etc. etc.  Conversely, if you\naren't happy with the output quality at the default compression setting, you\ncan jack up the quality until you are satisfied, and accept lesser compression.\n\n\n[2]  Why use JPEG?\n\nThere are two good reasons: to make your image files smaller, and to store\n24-bit-per-pixel color data instead of 8-bit-per-pixel data.\n\nMaking image files smaller is a big win for transmitting files across\nnetworks and for archiving libraries of images.  Being able to compress a\n2 Mbyte full-color file down to 100 Kbytes or so makes a big difference in\ndisk space and transmission time!  (If you are comparing GIF and JPEG, the\nsize ratio is more like four to one.  More details below.)\n\nIf your viewing software doesn't support JPEG directly, you'll have to\nconvert JPEG to some other format for viewing or manipulating images.  Even\nwith a JPEG-capable viewer, it takes longer to decode and view a JPEG image\nthan to view an image of a simpler format (GIF, for instance).  Thus, using\nJPEG is essentially a time/space tradeoff: you give up some time in order to\nstore or transmit an image more cheaply.\n\nIt's worth noting that when network or phone transmission is involved, the\ntime savings from transferring a shorter file can be much greater than the\nextra time to decompress the file.  I'll let you do the arithmetic yourself.\n\nThe other reason why JPEG will gradually replace GIF as a standard Usenet\nposting format is that JPEG can store full color information: 24 bits/pixel\n(16 million colors) instead of 8 or less (256 or fewer colors).  If you have\nonly 8-bit display hardware then this may not seem like much of an advantage\nto you.  Within a couple of years, though, 8-bit GIF will look as obsolete as\nblack-and-white MacPaint format does today.  Furthermore, for reasons detailed\nin section 7, JPEG is far more useful than GIF for exchanging images among\npeople with widely varying color display hardware.  Hence JPEG is considerably\nmore appropriate than GIF for use as a Usenet posting standard.\n\n\n[3]  When should I use JPEG, and when should I stick with GIF?\n\nJPEG is *not* going to displace GIF entirely; for some types of images,\nGIF is superior in image quality, file size, or both.  One of the first\nthings to learn about JPEG is which kinds of images to apply it to.\n\nAs a rule of thumb, JPEG is superior to GIF for storing full-color or\ngray-scale images of \"realistic\" scenes; that means scanned photographs and\nsimilar material.  JPEG is superior even if you don't have 24-bit display\nhardware, and it is a LOT superior if you do.  (See section 7 for details.)\n\nGIF does significantly better on images with only a few distinct colors,\nsuch as cartoons and line drawings.  In particular, large areas of pixels\nthat are all *exactly* the same color are compressed very efficiently indeed\nby GIF.  JPEG can't squeeze these files as much as GIF does without\nintroducing visible defects.  This sort of image is best kept in GIF form.\n(In particular, single-color borders are quite cheap in GIF files, but they\nshould be avoided in JPEG files.)\n\nJPEG also has a hard time with very sharp edges: a row of pure-black pixels\nadjacent to a row of pure-white pixels, for example.  Sharp edges tend to\ncome out blurred unless you use a very high quality setting.  Again, this\nsort of thing is not found in scanned photographs, but it shows up fairly\noften in GIF files: borders, overlaid text, etc.  The blurriness is\nparticularly objectionable with text that's only a few pixels high.\nIf you have a GIF with a lot of small-size overlaid text, don't JPEG it.\n\nComputer-drawn images (ray-traced scenes, for instance) usually fall between\nscanned images and cartoons in terms of complexity.  The more complex and\nsubtly rendered the image, the more likely that JPEG will do well on it.\nThe same goes for semi-realistic artwork (fantasy drawings and such).\n\nPlain black-and-white (two level) images should never be converted to JPEG.\nYou need at least about 16 gray levels before JPEG is useful for gray-scale\nimages.  It should also be noted that GIF is lossless for gray-scale images\nof up to 256 levels, while JPEG is not.\n\nIf you have an existing library of GIF images, you may wonder whether you\nshould convert them to JPEG.  You will lose a little image quality if you do.\n(Section 7, which argues that JPEG image quality is superior to GIF, only\napplies if both formats start from a full-color original.  If you start from\na GIF, you've already irretrievably lost a great deal of information; JPEG\ncan only make things worse.)  However, the disk space savings may justify\nconverting anyway.  This is a decision you'll have to make for yourself.\nIf you do convert a GIF library to JPEG, see section 14 for hints.  Be\nprepared to leave some images in GIF format, since some GIFs will not\nconvert well.\n\n\n[4]  How well does JPEG compress images?\n\nPretty darn well.  Here are some sample file sizes for an image I have\nhandy, a 727x525 full-color image of a ship in a harbor.  The first three\nfiles are for comparison purposes; the rest were created with the free JPEG\nsoftware described in section 6B.\n\nFile\t   Size in bytes\t\tComments\n\nship.ppm\t1145040  Original file in PPM format (no compression; 24 bits\n\t\t\t or 3 bytes per pixel, plus a few bytes overhead)\nship.ppm.Z\t 963829  PPM file passed through Unix compress\n\t\t\t compress doesn't accomplish a lot, you'll note.\n\t\t\t Other text-oriented compressors give similar results.\nship.gif\t 240438  Converted to GIF with ppmquant -fs 256 | ppmtogif\n\t\t\t Most of the savings is the result of losing color\n\t\t\t info: GIF saves 8 bits/pixel, not 24.  (See sec. 7.)\n\nship.jpg95\t 155622  cjpeg -Q 95    (highest useful quality setting)\n\t\t\t This is indistinguishable from the 24-bit original,\n\t\t\t at least to my nonprofessional eyeballs.\nship.jpg75\t  58009  cjpeg -Q 75    (default setting)\n\t\t\t You have to look mighty darn close to distinguish this\n\t\t\t from the original, even with both on-screen at once.\nship.jpg50\t  38406  cjpeg -Q 50\n\t\t\t This has slight defects; if you know what to look\n\t\t\t for, you could tell it's been JPEGed without seeing\n\t\t\t the original.  Still as good image quality as many\n\t\t\t recent postings in Usenet pictures groups.\nship.jpg25\t  25192  cjpeg -Q 25\n\t\t\t JPEG's characteristic \"blockiness\" becomes apparent\n\t\t\t at this setting (djpeg -blocksmooth helps some).\n\t\t\t Still, I've seen plenty of Usenet postings that were\n\t\t\t of poorer image quality than this.\nship.jpg5o\t   6587  cjpeg -Q 5 -optimize  (-optimize cuts table overhead)\n\t\t\t Blocky, but perfectly satisfactory for preview or\n\t\t\t indexing purposes.  Note that this file is TINY:\n\t\t\t the compression ratio from the original is 173:1 !\n\nIn this case JPEG can make a file that's a factor of four or five smaller\nthan a GIF of comparable quality (the -Q 75 file is every bit as good as the\nGIF, better if you have a full-color display).  This seems to be a typical\nratio for real-world scenes.\n\n\n[5]  What are good \"quality\" settings for JPEG?\n\nMost JPEG compressors let you pick a file size vs. image quality tradeoff by\nselecting a quality setting.  There seems to be widespread confusion about\nthe meaning of these settings.  \"Quality 95\" does NOT mean \"keep 95% of the\ninformation\", as some have claimed.  The quality scale is purely arbitrary;\nit's not a percentage of anything.\n\nThe name of the game in using JPEG is to pick the lowest quality setting\n(smallest file size) that decompresses into an image indistinguishable from\nthe original.  This setting will vary from one image to another and from one\nobserver to another, but here are some rules of thumb.\n\nThe default quality setting (-Q 75) is very often the best choice.  This\nsetting is about the lowest you can go without expecting to see defects in a\ntypical image.  Try -Q 75 first; if you see defects, then go up.  Except for\nexperimental purposes, never go above -Q 95; saying -Q 100 will produce a\nfile two or three times as large as -Q 95, but of hardly any better quality.\n\nIf the image was less than perfect quality to begin with, you might be able to\ngo down to -Q 50 without objectionable degradation.  On the other hand, you\nmight need to go to a HIGHER quality setting to avoid further degradation.\nThe second case seems to apply much of the time when converting GIFs to JPEG.\nThe default -Q 75 is about right for compressing 24-bit images, but -Q 85 to\n95 is usually better for converting GIFs (see section 14 for more info).\n\nIf you want a very small file (say for preview or indexing purposes) and are\nprepared to tolerate large defects, a -Q setting in the range of 5 to 10 is\nabout right.  -Q 2 or so may be amusing as \"op art\".\n\n(Note: the quality settings discussed in this article apply to the free JPEG\nsoftware described in section 6B, and to many programs based on it.  Other\nJPEG implementations, such as Image Alchemy, may use a completely different\nquality scale.  Some programs don't even provide a numeric scale, just\n\"high\"/\"medium\"/\"low\"-style choices.)\n\n\n[6]  Where can I get JPEG software?\n\nMost of the programs described in this section are available by FTP.\nIf you don't know how to use FTP, see the FAQ article \"How to find sources\".\n(If you don't have direct access to FTP, read about ftpmail servers in the\nsame article.)  That article appears regularly in news.answers, or you can\nget it by sending e-mail to mail-server@rtfm.mit.edu with\n\"send usenet/news.answers/finding-sources\" in the body.  The \"Anonymous FTP\nList FAQ\" may also be helpful --- it's usenet/news.answers/ftp-list/faq in\nthe news.answers archive.\n\nNOTE: this list changes constantly.  If you have a copy more than a couple\nmonths old, get the latest JPEG FAQ from the news.answers archive.\n\n\n[6A]  If you are looking for \"canned\" software, viewers, etc:\n\nThe first part of this list is system-specific programs that only run on one\nkind of system.  If you don't see what you want for your machine, check out\nthe portable JPEG software described at the end of the list.  Note that this\nlist concentrates on free and shareware programs that you can obtain over\nInternet; but some commercial programs are listed too.\n\nX Windows:\n\nJohn Bradley's free XV (version 2.00 and up) is an excellent viewer for JPEG,\nGIF, and other image formats.  It's available for FTP from export.lcs.mit.edu\nor ftp.cis.upenn.edu.  The file is called 'xv-???.tar.Z' (where ??? is the\nversion number, currently 2.21); it is located in the 'contrib' directory on\nexport or the 'pub/xv' directory at upenn.  XV reduces all images to 8 bits\ninternally, which means it's not a real good choice if you have a 24-bit\ndisplay (you'll still get only 8-bit color).  Also, you shouldn't use XV to\nconvert full-color images to JPEG, because they'll get color-quantized first.\nBut XV is a fine tool for converting GIF and other 8-bit images to JPEG.\nCAUTION: there is a glitch in versions 2.21 and earlier: be sure to check\nthe \"save at normal size\" checkbox when saving a JPEG file, or the file will\nbe blurry.\n\nAnother good choice for X Windows is John Cristy's free ImageMagick package,\nalso available from export.lcs.mit.edu, file contrib/ImageMagick.tar.Z.\nThis package handles many image processing and conversion tasks.  The\nImageMagick viewer handles 24-bit displays correctly; for colormapped\ndisplays, it does better (though slower) color quantization than XV or the\nbasic free JPEG software.\n\nBoth of the above are large, complex packages.  If you just want a simple\nimage viewer, try xloadimage or xli.  xloadimage supports JPEG in its latest\nrelease, 3.03.  xloadimage is free and available from export.lcs.mit.edu,\nfile contrib/xloadimage.3.03.tar.Z.  xli is a variant version of xloadimage,\nsaid by its fans to be somewhat faster and more robust than the original.\n(The current xli is indeed faster and more robust than the current\nxloadimage, at least with respect to JPEG files, because it has the IJG v4\ndecoder while xloadimage 3.03 is using a hacked-over v1.  The next\nxloadimage release will fix this.)  xli is also free and available from\nexport.lcs.mit.edu, file contrib/xli.1.14.tar.Z.  Both programs are said\nto do the right thing with 24-bit displays.\n\n\nMS-DOS:\n\nThis covers plain DOS; for Windows or OS/2 programs, see the next headings.\n\nOne good choice is Eric Praetzel's free DVPEG, which views JPEG and GIF files.\nThe current version, 2.4a, is available by FTP from sunee.uwaterloo.ca\n(129.97.50.50), file pub/jpeg/viewers/dvpeg24a.zip.  This is a good basic\nviewer that works on either 286 or 386/486 machines.  The user interface is\nnot flashy, but it's functional.\n\nAnother freeware JPEG/GIF/TGA viewer is Mohammad Rezaei's Hiview.  The\ncurrent version, 1.2, is available from Simtel20 and mirror sites (see NOTE\nbelow), file msdos/graphics/hv12.zip.  Hiview requires a 386 or better CPU\nand a VCPI-compatible memory manager (QEMM386 and 386MAX work; Windows and\nOS/2 do not).  Hiview is currently the fastest viewer for images that are no\nbigger than your screen.  For larger images, it scales the image down to fit\non the screen (rather than using panning/scrolling as most viewers do).\nYou may or may not prefer this approach, but there's no denying that it\nslows down loading of large images considerably.  Note: installation is a\nbit tricky; read the directions carefully!\n\nA shareware alternative is ColorView for DOS ($30).  This is easier to\ninstall than either of the two freeware alternatives.  Its user interface is\nalso much spiffier-looking, although personally I find it harder to use ---\nmore keystrokes, inconsistent behavior.  It is faster than DVPEG but a\nlittle slower than Hiview, at least on my hardware.  (For images larger than\nscreen size, DVPEG and ColorView seem to be about the same speed, and both\nare faster than Hiview.)  The current version is 2.1, available from\nSimtel20 and mirror sites (see NOTE below), file msdos/graphics/dcview21.zip.\nRequires a VESA graphics driver; if you don't have one, look in vesadrv2.zip\nor vesa-tsr.zip from the same directory.  (Many recent PCs have a built-in\nVESA driver, so don't try to load a VESA driver unless ColorView complains\nthat the driver is missing.)\n\nA second shareware alternative is Fullview, which has been kicking around\nthe net for a while, but I don't know any stable archive location for it.\nThe current (rather old) version is inferior to the above viewers anyway.\nThe author tells me that a new version of Fullview will be out shortly\nand it will be submitted to the Simtel20 archives at that time.\n\nThe well-known GIF viewer CompuShow (CSHOW) supports JPEG in its latest\nrevision, 8.60a.  However, CSHOW's JPEG implementation isn't very good:\nit's slow (about half the speed of the above viewers) and image quality is\npoor except on hi-color displays.  Too bad ... it'd have been nice to see a\ngood JPEG capability in CSHOW.  Shareware, $25.  Available from Simtel20 and\nmirror sites (see NOTE below), file msdos/gif/cshw860a.zip.\n\nDue to the remarkable variety of PC graphics hardware, any one of these\nviewers might not work on your particular machine.  If you can't get *any*\nof them to work, you'll need to use one of the following conversion programs\nto convert JPEG to GIF, then view with your favorite GIF viewer.  (If you\nhave hi-color hardware, don't use GIF as the intermediate format; try to\nfind a TARGA-capable viewer instead.  VPIC5.0 is reputed to do the right\nthing with hi-color displays.)\n\nThe Independent JPEG Group's free JPEG converters are FTPable from Simtel20\nand mirror sites (see NOTE below), file msdos/graphics/jpeg4.zip (or\njpeg4386.zip if you have a 386 and extended memory).  These files are DOS\ncompilations of the free source code described in section 6B; they will\nconvert JPEG to and from GIF, Targa, and PPM formats.\n\nHandmade Software offers free JPEG<=>GIF conversion tools, GIF2JPG/JPG2GIF.\nThese are slow and are limited to conversion to and from GIF format; in\nparticular, you can't get 24-bit color output from a JPEG.  The major\nadvantage of these tools is that they will read and write HSI's proprietary\nJPEG format as well as the Usenet-standard JFIF format.  Since HSI-format\nfiles are rather widespread on BBSes, this is a useful capability.  Version\n2.0 of these tools is free (prior versions were shareware).  Get it from\nSimtel20 and mirror sites (see NOTE below), file msdos/graphics/gif2jpg2.zip.\nNOTE: do not use HSI format for files to be posted on Internet, since it is\nnot readable on non-PC platforms.\n\nHandmade Software also has a shareware image conversion and manipulation\npackage, Image Alchemy.  This will translate JPEG files (both JFIF and HSI\nformats) to and from many other image formats.  It can also display images.\nA demo version of Image Alchemy version 1.6.1 is available from Simtel20 and\nmirror sites (see NOTE below), file msdos/graphics/alch161.zip.\n\nNOTE ABOUT SIMTEL20: The Internet's key archive site for PC-related programs\nis Simtel20, full name wsmr-simtel20.army.mil (192.88.110.20).  Simtel20\nruns a non-Unix system with weird directory names; where this document\nrefers to directory (eg) \"msdos/graphics\" at Simtel20, that really means\n\"pd1:<msdos.graphics>\".  If you are not physically on MILnet, you should\nexpect rather slow FTP transfer rates from Simtel20.  There are several\nInternet sites that maintain copies (mirrors) of the Simtel20 archives;\nmost FTP users should go to one of the mirror sites instead.  A popular USA\nmirror site is oak.oakland.edu (141.210.10.117), which keeps Simtel20 files\nin (eg) \"/pub/msdos/graphics\".  If you have no FTP capability, you can\nretrieve files from Simtel20 by e-mail; see informational postings in\ncomp.archives.msdos.announce to find out how.  If you are outside the USA,\nconsult the same newsgroup to learn where your nearest Simtel20 mirror is.\n\nMicrosoft Windows:\n\nThere are several Windows programs capable of displaying JPEG images.\n(Windows viewers are generally slower than DOS viewers on the same hardware,\ndue to Windows' system overhead.  Note that you can run the DOS conversion\nprograms described above inside a Windows DOS window.)\n\nThe newest entry is WinECJ, which is free and EXTREMELY fast.  Version 1.0\nis available from ftp.rahul.net, file /pub/bryanw/pc/jpeg/wecj.zip.\nRequires Windows 3.1 and 256-or-more-colors mode.  This is a no-frills\nviewer with the bad habit of hogging the machine completely while it\ndecodes; and the image quality is noticeably worse than other viewers.\nBut it's so fast you'll use it anyway, at least for previewing...\n\nJView is freeware, fairly fast, has good on-line help, and can write out the\ndecompressed image in Windows BMP format; but it can't create new JPEG\nfiles, and it doesn't view GIFs.  JView also lacks some other useful\nfeatures of the shareware viewers (such as brightness adjustment), but it's\nan excellent basic viewer.  The current version, 0.9, is available from\nftp.cica.indiana.edu (129.79.20.84), file pub/pc/win3/desktop/jview090.zip.\n(Mirrors of this archive can be found at some other Internet sites,\nincluding wuarchive.wustl.edu.)\n\nWinJPEG (shareware, $20) displays JPEG,GIF,Targa,TIFF, and BMP image files;\nit can write all of these formats too, so it can be used as a converter.\nIt has some other nifty features including color-balance adjustment and\nslideshow.  The current version is 2.1, available from Simtel20 and mirror\nsites (see NOTE above), file msdos/windows3/winjp210.zip.  (This is a slow\n286-compatible version; if you register, you'll get the 386-only version,\nwhich is roughly 25% faster.)\n\nColorView is another shareware entry ($30).  This was an early and promising\ncontender, but it has not been updated in some time, and at this point it\nhas no real advantages over WinJPEG.  If you want to try it anyway, the\ncurrent version is 0.97, available from ftp.cica.indiana.edu, file\npub/pc/win3/desktop/cview097.zip.  (I understand that a new version will\nbe appearing once the authors are finished with ColorView for DOS.)\n\nDVPEG (see DOS heading) also works under Windows, but only in full-screen\nmode, not in a window.\n\nOS/2:\n\nThe following files are available from hobbes.nmsu.edu (128.123.35.151).\nNote: check /pub/uploads for more recent versions --- the hobbes moderator\nis not very fast about moving uploads into their permanent directories.\n/pub/os2/2.x/graphics/jpegv4.zip\n    32-bit version of free IJG conversion programs, version 4.\n/pub/os2/all/graphics/jpeg4-16.zip\n    16-bit version of same, for OS/2 1.x.\n/pub/os2/2.x/graphics/imgarc11.zip\n    Image Archiver 1.01: image conversion/viewing with PM graphical interface.\n    Strong on conversion functions, viewing is a bit weaker.  Shareware, $15.\n/pub/os2/2.x/graphics/pmjpeg11.zip\n    PMJPEG 1.1: OS/2 2.x port of WinJPEG, a popular viewer for Windows\n    (see description in Windows section).  Shareware, $20.\n/pub/os2/2.x/graphics/pmview84.zip\n    PMView 0.84: JPEG/GIF/BMP viewer.  GIF viewing very fast, JPEG viewing\n    fast if you have huge amounts of RAM, otherwise about the same speed\n    as the above programs.  Strong 24-bit display support.  Shareware, $20.\n\nMacintosh:\n\nMost Mac JPEG programs rely on Apple's JPEG implementation, which is part of\nthe QuickTime system extension; so you need to have QuickTime installed.\nTo use QuickTime, you need a 68020 or better CPU and you need to be running\nSystem 6.0.7 or later.  (If you're running System 6, you must also install\nthe 32-bit QuickDraw extension; this is built-in on System 7.)  You can get\nQuickTime by FTP from ftp.apple.com, file dts/mac/quicktime/quicktime.hqx.\n(As of 11/92, this file contains QuickTime 1.5, which is better than QT 1.0\nin several ways.  With respect to JPEG, it is marginally faster and\nconsiderably less prone to crash when fed a corrupt JPEG file.  However,\nsome applications seem to have compatibility problems with QT 1.5.)\n\nMac users should keep in mind that QuickTime's JPEG format, PICT/JPEG, is\nnot the same as the Usenet-standard JFIF JPEG format.  (See section 10 for\ndetails.)  If you post images on Usenet, make sure they are in JFIF format.\nMost of the programs mentioned below can generate either format.\n\nThe first choice is probably JPEGView, a free program for viewing images\nthat are in JFIF format, PICT/JPEG format, or GIF format.  It also can\nconvert between the two JPEG formats.  The current version, 2.0, is a big\nimprovement over prior versions.  Get it from sumex-aim.stanford.edu\n(36.44.0.6), file /info-mac/app/jpeg-view-20.hqx.  Requires System 7 and\nQuickTime.  On 8-bit displays, JPEGView usually produces the best color\nimage quality of all the currently available Mac JPEG viewers.  JPEGView can\nview large images in much less memory than other Mac viewers; in fact, it's\nthe only one that can deal with JPEG images much over 640x480 pixels on a\ntypical 4MB Mac.  Given a large image, JPEGView automatically scales it down\nto fit on the screen, rather than presenting scroll bars like most other\nviewers.  (You can zoom in on any desired portion, though.)  Some people\nlike this behavior, some don't.  Overall, JPEGView's user interface is very\nwell thought out.\n\nGIFConverter, a shareware ($40) image viewer/converter, supports JFIF and\nPICT/JPEG, as well as GIF and several other image formats.  The latest\nversion is 2.3.2.  Get it from sumex-aim.stanford.edu, file\n/info-mac/art/gif/gif-converter-232.hqx.  Requires System 6.0.5 or later.\nGIFConverter is not better than JPEGView as a plain JPEG/GIF viewer, but\nit has much more extensive image manipulation and format conversion\ncapabilities, so you may find it worth its shareware fee if you do a lot of\nplaying around with images.  Also, the newest version of GIFConverter can\nload and save JFIF images *without* QuickTime, so it is your best bet if\nyour machine is too old to run QuickTime.  (But it's faster with QuickTime.)\nNote: If GIFConverter runs out of memory trying to load a large JPEG, try\nconverting the file to GIF with JPEG Convert, then viewing the GIF version.\n\nJPEG Convert, a Mac version of the free IJG JPEG conversion utilities, is\navailable from sumex-aim.stanford.edu, file /info-mac/app/jpeg-convert-10.hqx.\nThis will run on any Mac, but it only does file conversion, not viewing.\nYou can use it in conjunction with any GIF viewer.\n\nPrevious versions of this FAQ recommended Imagery JPEG v0.6, a JPEG<=>GIF\nconverter based on an old version of the IJG code.  If you are using this\nprogram, you definitely should replace it with JPEG Convert.\n\nApple's free program PictPixie can view images in JFIF, QuickTime JPEG, and\nGIF format, and can convert between these formats.  You can get PictPixie\nfrom ftp.apple.com, file dts/mac/quicktime/qt.1.0.stuff/pictpixie.hqx.\nRequires QuickTime.  PictPixie was intended as a developer's tool, and it's\nreally not the best choice unless you like to fool around with QuickTime.\nSome of its drawbacks are that it requires lots of memory, it produces\nrelatively poor color image quality on anything less than a 24-bit display,\nand it has a relatively unfriendly user interface.  Worse, PictPixie is an\nunsupported program, meaning it has some minor bugs that Apple does not\nintend to fix.  (There is an old version of PictPixie, called\nPICTCompressor, floating around the net.  If you have this you should trash\nit, as it's even buggier.  Also, the QuickTime Starter Kit includes a much\ncleaned-up descendant of PictPixie called Picture Compressor.  Note that\nPicture Compressor is NOT free and may not be distributed on the net.)\n\nStorm Technology's Picture Decompress is a free JPEG viewer/converter.\nThis rather old program is inferior to the above programs in many ways, but\nit will run without System 7 or QuickTime, so you may be forced to use it on\nolder systems.  (It does need 32-bit QuickDraw, so really old machines can't\nuse it.)  You can get it from sumex-aim.stanford.edu, file\n/info-mac/app/picture-decompress-201.hqx.  You must set the file type of a\ndownloaded image file to 'JPEG' to allow Picture Decompress to open it.\n\nIf your machine is too old to run 32-bit QuickDraw (a Mac Plus for instance),\nGIFConverter is your only choice for single-program JPEG viewing.  If you\ndon't want to pay for GIFConverter, use JPEG Convert and a free GIF viewer.\n\nMore and more commercial Mac applications are supporting JPEG, although not\nall can deal with the Usenet-standard JFIF format.  Adobe Photoshop, version\n2.0.1 or later, can read and write JFIF-format JPEG files (use the JPEG\nplug-in from the Acquire menu).  You must set the file type of a downloaded\nJPEG file to 'JPEG' to allow Photoshop to recognize it.\n\nAmiga:\n\n(Most programs listed in this section are stored in the AmiNet archive at\namiga.physik.unizh.ch (130.60.80.80).  There are many mirror sites of this\narchive and you should try to use the closest one.  In the USA, a good\nchoice is wuarchive.wustl.edu; look under /mirrors/amiga.physik.unizh.ch/...)\n\nHamLab Plus is an excellent JPEG viewer/converter, as well as being a\ngeneral image manipulation tool.  It's cheap (shareware, $20) and can read\nseveral formats besides JPEG.  The current version is 2.0.8.  A demo version\nis available from amiga.physik.unizh.ch (and mirror sites), file\namiga/gfx/edit/hamlab208d.lha.  The demo version will crop images larger\nthan 512x512, but it is otherwise fully functional.\n\nRend24 (shareware, $30) is an image renderer that can display JPEG, ILBM,\nand GIF images.  The program can be used to create animations, even\ncapturing frames on-the-fly from rendering packages like Lightwave.  The\ncurrent version is 1.05, available from amiga.physik.unizh.ch (and mirror\nsites), file amiga/os30/gfx/rend105.lha.  (Note: although this directory is\nsupposedly for AmigaDOS 3.0 programs, the program will also run under\nAmigaDOS 1.3, 2.04 or 2.1.)\n\nViewtek is a free JPEG/ILBM/GIF/ANIM viewer.  The current version is 1.04,\navailable from amiga.physik.unizh.ch (and mirror sites), file\namiga/gfx/show/ViewTek104.lha.\n\nIf you're willing to spend real money, there are several commercial packages\nthat support JPEG.  Two are written by Thomas Krehbiel, the author of Rend24\nand Viewtek.  These are CineMorph, a standalone image morphing package, and\nImageFX, an impressive 24-bit image capture, conversion, editing, painting,\neffects and prepress package that also includes CineMorph.  Both are\ndistributed by Great Valley Products.  Art Department Professional (ADPro),\nfrom ASDG Inc, is the most widely used commercial image manipulation\nsoftware for Amigas.  ImageMaster, from Black Belt Systems, is another\nwell-regarded commercial graphics package with JPEG support.\n\nThe free IJG JPEG software is available compiled for Amigas from\namiga.physik.unizh.ch (and mirror sites) in directory amiga/gfx/conv, file\nAmigaJPEGV4.lha.  These programs convert JPEG to/from PPM,GIF,Targa formats.\n\nThe Amiga world is heavily infested with quick-and-dirty JPEG programs, many\nbased on an ancient beta-test version of the free IJG JPEG software (thanks\nto a certain magazine that published same on its disk-of-the-month, without\nso much as notifying the authors).  Among these are \"AugJPEG\", \"NewAmyJPEG\",\n\"VJPEG\", and probably others I have not even heard of.  In my opinion,\nanything older than IJG version 3 (March 1992) is not worth the disk space\nit's stored on; if you have such a program, trash it and get something newer.\n\nAtari ST:\n\nThe free IJG JPEG software is available compiled for Atari ST, TT, etc,\nfrom atari.archive.umich.edu, file /atari/Graphics/jpeg4bin.zoo.\nThese programs convert JPEG to/from PPM, GIF, Targa formats.\n\nI have not heard of any free or shareware JPEG-capable viewer for Ataris,\nbut surely there must be one by now?  Pointers appreciated.\n\nAcorn Archimedes:\n\n!ChangeFSI, supplied with RISC OS 3 version 3.10, can convert from and view\nJPEG JFIF format.  Provision is also made to convert images to JPEG,\nalthough this must be done from the CLI rather than by double-clicking.\n\nRecent versions (since 7.11) of the shareware program Translator can handle\nJPEG, along with about 30 other image formats.  While older versions can be\nfound on some Archimedes bboards, the current version is only available by\nregistering with the author, John Kortink, Nutterbrink 31, 7544 WJ, Enschede,\nThe Netherlands.  Price 35 Dutch guilders (about $22 or 10 pounds).\n\nThere's also a commercial product called !JPEG which provides JPEG read/write\nfunctionality and direct JPEG viewing, as well as a host of other image\nformat conversion and processing options.  This is more expensive but not\nnecessarily better than the above programs.  Contact: DT Software, FREEPOST,\nCambridge, UK.  Tel: 0223 841099.\n\n\nPortable software for almost any system:\n\nIf none of the above fits your situation, you can obtain and compile the free\nJPEG conversion software described in 6B.  You'll also need a viewer program.\nIf your display is 8 bits or less, any GIF viewer will do fine; if you have a\ndisplay with more color capability, try to find a viewer that can read Targa\nor PPM 24-bit image files.\n\nThere are numerous commercial JPEG offerings, with more popping up every\nday.  I recommend that you not spend money on one of these unless you find\nthe available free or shareware software vastly too slow.  In that case,\npurchase a hardware-assisted product.  Ask pointed questions about whether\nthe product complies with the final JPEG standard and about whether it can\nhandle the JFIF file format; many of the earliest commercial releases are\nnot and never will be compatible with anyone else's files.\n\n\n[6B]  If you are looking for source code to work with:\n\nFree, portable C code for JPEG compression is available from the Independent\nJPEG Group, which I lead.  A package containing our source code,\ndocumentation, and some small test files is available from several places.\nThe \"official\" archive site for this source code is ftp.uu.net (137.39.1.9\nor 192.48.96.9).  Look under directory /graphics/jpeg; the current release\nis jpegsrc.v4.tar.Z.  (This is a compressed TAR file; don't forget to\nretrieve in binary mode.)  You can retrieve this file by FTP or UUCP.\nIf you are on a PC and don't know how to cope with .tar.Z format, you may\nprefer ZIP format, which you can find at Simtel20 and mirror sites (see NOTE\nabove), file msdos/graphics/jpegsrc4.zip.  This file will also be available on\nCompuServe, in the GRAPHSUPPORT forum (GO PICS), library 15, as jpsrc4.zip.\nIf you have no FTP access, you can retrieve the source from your nearest\ncomp.sources.misc archive; version 4 appeared as issues 55-72 of volume 34.\n(If you don't know how to retrieve comp.sources.misc postings, see the FAQ\narticle \"How to find sources\", referred to at the top of section 6.)\n\nThe free JPEG code provides conversion between JPEG \"JFIF\" format and image\nfiles in GIF, PBMPLUS PPM/PGM, Utah RLE, and Truevision Targa file formats.\nThe core compression and decompression modules can easily be reused in other\nprograms, such as image viewers.  The package is highly portable; we have\ntested it on many machines ranging from PCs to Crays.\n\nWe have released this software for both noncommercial and commercial use.\nCompanies are welcome to use it as the basis for JPEG-related products.\nWe do not ask a royalty, although we do ask for an acknowledgement in\nproduct literature (see the README file in the distribution for details).\nWe hope to make this software industrial-quality --- although, as with\nanything that's free, we offer no warranty and accept no liability.\n\nThe Independent JPEG Group is a volunteer organization; if you'd like to\ncontribute to improving our software, you are welcome to join.\n\n\n[7]  What's all this hoopla about color quantization?\n\nMost people don't have full-color (24 bit per pixel) display hardware.\nTypical display hardware stores 8 or fewer bits per pixel, so it can display\n256 or fewer distinct colors at a time.  To display a full-color image, the\ncomputer must map the image into an appropriate set of representative\ncolors.  This process is called \"color quantization\".  (This is something\nof a misnomer, \"color selection\" would be a better term.  We're stuck with\nthe standard usage though.)\n\nClearly, color quantization is a lossy process.  It turns out that for most\nimages, the details of the color quantization algorithm have MUCH more impact\non the final image quality than do any errors introduced by JPEG (except at\nthe very lowest JPEG quality settings).\n\nSince JPEG is a full-color format, converting a color JPEG image for display\non 8-bit-or-less hardware requires color quantization.  This is true for\n*all* color JPEGs: even if you feed a 256-or-less-color GIF into JPEG, what\ncomes out of the decompressor is *not* 256 colors, but thousands of colors.\nThis happens because JPEG's lossiness affects each pixel a little\ndifferently, so two pixels that started with identical colors will probably\ncome out with slightly different colors.  Each original color gets \"smeared\"\ninto a group of nearby colors.  Therefore quantization is always required to\ndisplay a color JPEG on a colormapped display, regardless of the image\nsource.  The only way to avoid quantization is to ask for gray-scale output.\n\n(Incidentally, because of this effect it's nearly meaningless to talk about\nthe number of colors used by a JPEG image.  Even if you attempted to count\nthe number of distinct pixel values, different JPEG decoders would give you\ndifferent results because of roundoff error differences.  I occasionally see\nposted images described as \"256-color JPEG\".  This tells me that the poster\n(a) hasn't read this FAQ and (b) probably converted the JPEG from a GIF.\nJPEGs can be classified as color or gray-scale (just like photographs), but\nnumber of colors just isn't a useful concept for JPEG.)\n\nOn the other hand, a GIF image by definition has already been quantized to\n256 or fewer colors.  (A GIF *does* have a definite number of colors in its\npalette, and the format doesn't allow more than 256 palette entries.)\nFor purposes of Usenet picture distribution, GIF has the advantage that the\nsender precomputes the color quantization, so recipients don't have to.\nThis is also the *disadvantage* of GIF: you're stuck with the sender's\nquantization.  If the sender quantized to a different number of colors than\nwhat you can display, you have to re-quantize, resulting in much poorer\nimage quality than if you had quantized once from a full-color image.\nFurthermore, if the sender didn't use a high-quality color quantization\nalgorithm, you're out of luck.\n\nFor this reason, JPEG offers the promise of significantly better image quality\nfor all users whose machines don't match the sender's display hardware.\nJPEG's full color image can be quantized to precisely match the user's display\nhardware.  Furthermore, you will be able to take advantage of future\nimprovements in quantization algorithms (there is a lot of active research in\nthis area), or purchase better display hardware, to get a better view of JPEG\nimages you already have.  With a GIF, you're stuck forevermore with what was\nsent.\n\nIt's also worth mentioning that many GIF-viewing programs include rather\nshoddy quantization routines.  If you view a 256-color GIF on a 16-color EGA\ndisplay, for example, you are probably getting a much worse image than you\nneed to.  This is partly an inevitable consequence of doing two color\nquantizations (one to create the GIF, one to display it), but often it's\nalso due to sloppiness.  JPEG conversion programs will be forced to use\nhigh quality quantizers in order to get acceptable results at all, and in\nnormal use they will quantize directly to the number of colors to be\ndisplayed.  Thus, JPEG is likely to provide better results than the average\nGIF program for low-color-resolution displays as well as high-resolution ones!\n\nFinally, an ever-growing number of people have better-than-8-bit display\nhardware already: 15-bit \"hi-color\" PC displays, true 24-bit displays on\nworkstations and Macintoshes, etc.  For these people, GIF is already\nobsolete, as it cannot represent an image to the full capabilities of their\ndisplay.  JPEG images can drive these displays much more effectively.\nThus, JPEG is an all-around better choice than GIF for representing images\nin a machine-independent fashion.\n\n\n[8]  How does JPEG work?\n\nThe buzz-words to know are chrominance subsampling, discrete cosine\ntransforms, coefficient quantization, and Huffman or arithmetic entropy\ncoding.  This article's long enough already, so I'm not going to say more\nthan that here.  For technical information, see the comp.compression FAQ.\nThis is available from the news.answers archive at rtfm.mit.edu, in files\n/pub/usenet/news.answers/compression-faq/part[1-3].  If you need help in\nusing the news.answers archive, see the top of this article.\n\n\n[9]  What about lossless JPEG?\n\nThere's a great deal of confusion on this subject.  The JPEG committee did\ndefine a truly lossless compression algorithm, i.e., one that guarantees the\nfinal output is bit-for-bit identical to the original input.  However, this\nlossless mode has almost nothing in common with the regular, lossy JPEG\nalgorithm, and it offers much less compression.  At present, very few\nimplementations of lossless JPEG exist, and all of them are commercial.\n\nSaying \"-Q 100\" to the free JPEG software DOES NOT get you a lossless image.\nWhat it does get rid of is deliberate information loss in the coefficient\nquantization step.  There is still a good deal of information loss in the\ncolor subsampling step.  (With the V4 free JPEG code, you can also say\n\"-sample 1x1\" to turn off subsampling.  Keep in mind that many commercial\nJPEG implementations cannot cope with the resulting file.)\n\nEven with both quantization and subsampling turned off, the regular JPEG\nalgorithm is not lossless, because it is subject to roundoff errors in\nvarious calculations.  The maximum error is a few counts in any one pixel\nvalue; it's highly unlikely that this could be perceived by the human eye,\nbut it might be a concern if you are doing machine processing of an image.\n\nAt this minimum-loss setting, regular JPEG produces files that are perhaps\nhalf the size of an uncompressed 24-bit-per-pixel image.  True lossless JPEG\nprovides roughly the same amount of compression, but it guarantees\nbit-for-bit accuracy.\n\nIf you have an application requiring lossless storage of images with less\nthan 6 bits per pixel (per color component), you may want to look into the\nJBIG bilevel image compression standard.  This performs better than JPEG\nlossless on such images.  JPEG lossless is superior to JBIG on images with\n6 or more bits per pixel; furthermore, JPEG is public domain (at least with a\nHuffman back end), while the JBIG techniques are heavily covered by patents.\n\n\n[10]  Why all the argument about file formats?\n\nStrictly speaking, JPEG refers only to a family of compression algorithms;\nit does *not* refer to a specific image file format.  The JPEG committee was\nprevented from defining a file format by turf wars within the international\nstandards organizations.\n\nSince we can't actually exchange images with anyone else unless we agree on\na common file format, this leaves us with a problem.  In the absence of\nofficial standards, a number of JPEG program writers have just gone off to\n\"do their own thing\", and as a result their programs aren't compatible with\nanybody else's.\n\nThe closest thing we have to a de-facto standard JPEG format is some work\nthat's been coordinated by people at C-Cube Microsystems.  They have defined\ntwo JPEG-based file formats:\n  * JFIF (JPEG File Interchange Format), a \"low-end\" format that transports\n    pixels and not much else.\n  * TIFF/JPEG, aka TIFF 6.0, an extension of the Aldus TIFF format.  TIFF is\n    a \"high-end\" format that will let you record just about everything you\n    ever wanted to know about an image, and a lot more besides :-).  TIFF is\n    a lot more complex than JFIF, and may well prove less transportable,\n    because different vendors have historically implemented slightly different\n    and incompatible subsets of TIFF.  It's not likely that adding JPEG to the\n    mix will do anything to improve this situation.\nBoth of these formats were developed with input from all the major vendors\nof JPEG-related products; it's reasonably likely that future commercial\nproducts will adhere to one or both standards.\n\nI believe that Usenet should adopt JFIF as the replacement for GIF in\npicture postings.  JFIF is simpler than TIFF and is available now; the\nTIFF 6.0 spec has only recently been officially adopted, and it is still\nunusably vague on some crucial details.  Even when TIFF/JPEG is well\ndefined, the JFIF format is likely to be a widely supported \"lowest common\ndenominator\"; TIFF/JPEG files may never be as transportable.\n\nA particular case that people may be interested in is Apple's QuickTime\nsoftware for the Macintosh.  QuickTime uses a JFIF-compatible format wrapped\ninside the Mac-specific PICT structure.  Conversion between JFIF and\nQuickTime JPEG is pretty straightforward, and several Mac programs are\navailable to do it (see Mac portion of section 6A).  If you have an editor\nthat handles binary files, you can strip a QuickTime JPEG PICT down to JFIF\nby hand; see section 11 for details.\n\nAnother particular case is Handmade Software's programs (GIF2JPG/JPG2GIF and\nImage Alchemy).  These programs are capable of reading and writing JFIF\nformat.  By default, though, they write a proprietary format developed by\nHSI.  This format is NOT readable by any non-HSI programs and should not be\nused for Usenet postings.  Use the -j switch to get JFIF output.  (This\napplies to old versions of these programs; the current releases emit JFIF\nformat by default.  You still should be careful not to post HSI-format\nfiles, unless you want to get flamed by people on non-PC platforms.)\n\n\n[11]  How do I recognize which file format I have, and what do I do about it?\n\nIf you have an alleged JPEG file that your software won't read, it's likely\nto be HSI format or some other proprietary JPEG-based format.  You can tell\nwhat you have by inspecting the first few bytes of the file:\n\n1.  A JFIF-standard file will start with the characters (hex) FF D8 FF E0,\n    followed by two variable bytes (often hex 00 10), followed by 'JFIF'.\n\n2.  If you see FF D8 at the start, but not the rest of it, you may have a\n    \"raw JPEG\" file.  This is probably decodable as-is by JFIF software ---\n    it's worth a try, anyway.\n\n3.  HSI files start with 'hsi1'.  You're out of luck unless you have HSI\n    software.  Portions of the file may look like plain JPEG data, but they\n    won't decompress properly with non-HSI programs.\n\n4.  A Macintosh PICT file, if JPEG-compressed, will have a couple hundred\n    bytes of header followed by a JFIF header (scan for 'JFIF').  Strip off\n    everything before the FF D8 and you should be able to read it.\n\n5.  Anything else: it's a proprietary format, or not JPEG at all.  If you are\n    lucky, the file may consist of a header and a raw JPEG data stream.\n    If you can identify the start of the JPEG data stream (look for FF D8),\n    try stripping off everything before that.\n\nIn uuencoded Usenet postings, the characteristic JFIF pattern is\n\n\t\"begin\" line\n\tM_]C_X ...\n\nwhereas uuencoded HSI files will start with\n\n\t\"begin\" line\n\tM:'-I ...\n\nIf you learn to check for the former, you can save yourself the trouble of\ndownloading non-JFIF files.\n\n\n[12]  What about arithmetic coding?\n\nThe JPEG spec defines two different \"back end\" modules for the final output\nof compressed data: either Huffman coding or arithmetic coding is allowed.\nThe choice has no impact on image quality, but arithmetic coding usually\nproduces a smaller compressed file.  On typical images, arithmetic coding\nproduces a file 5 or 10 percent smaller than Huffman coding.  (All the\nfile-size numbers previously cited are for Huffman coding.)\n\nUnfortunately, the particular variant of arithmetic coding specified by the\nJPEG standard is subject to patents owned by IBM, AT&T, and Mitsubishi.\nThus *you cannot legally use arithmetic coding* unless you obtain licenses\nfrom these companies.  (The \"fair use\" doctrine allows people to implement\nand test the algorithm, but actually storing any images with it is dubious\nat best.)\n\nAt least in the short run, I recommend that people not worry about\narithmetic coding; the space savings isn't great enough to justify the\npotential legal hassles.  In particular, arithmetic coding *should not*\nbe used for any images to be exchanged on Usenet.\n\nThere is some small chance that the legal situation may change in the\nfuture.  Stay tuned for further details.\n\n\n[13]  Does loss accumulate with repeated compression/decompression?\n\nIt would be nice if, having compressed an image with JPEG, you could\ndecompress it, manipulate it (crop off a border, say), and recompress it\nwithout any further image degradation beyond what you lost initially.\nUnfortunately THIS IS NOT THE CASE.  In general, recompressing an altered\nimage loses more information, though usually not as much as was lost the\nfirst time around.\n\nThe next best thing would be that if you decompress an image and recompress\nit *without changing it* then there is no further loss, i.e., you get an\nidentical JPEG file.  Even this is not true; at least, not with the current\nfree JPEG software.  It's essentially a problem of accumulation of roundoff\nerror.  If you repeatedly compress and decompress, the image will eventually\ndegrade to where you can see visible changes from the first-generation\noutput.  (It usually takes many such cycles to get visible change.)\nOne of the things on our to-do list is to see if accumulation of error can\nbe avoided or limited, but I am not optimistic about it.\n\nIn any case, the most that could possibly be guaranteed would be that\ncompressing the unmodified full-color output of djpeg, at the original\nquality setting, would introduce no further loss.  Even such simple changes\nas cropping off a border could cause further roundoff-error degradation.\n(If you're wondering why, it's because the pixel-block boundaries move.\nIf you cropped off only multiples of 16 pixels, you might be safe, but\nthat's a mighty limited capability!)\n\nThe bottom line is that JPEG is a useful format for archival storage and\ntransmission of images, but you don't want to use it as an intermediate\nformat for sequences of image manipulation steps.  Use a lossless format\n(PPM, RLE, TIFF, etc) while working on the image, then JPEG it when you are\nready to file it away.  Aside from avoiding degradation, you will save a lot\nof compression/decompression time this way :-).\n\n\n[14]  What are some rules of thumb for converting GIF images to JPEG?\n\nAs stated earlier, you *will* lose some amount of image information if you\nconvert an existing GIF image to JPEG.  If you can obtain the original\nfull-color data the GIF was made from, it's far better to make a JPEG from\nthat.  But if you need to save space and have only the GIF to work from,\nhere are some suggestions for getting maximum space savings with minimum\nloss of quality.\n\nThe first rule when converting a GIF library is to look at each JPEG, to\nmake sure you are happy with it, before throwing away the corresponding GIF;\nthat will give you a chance to re-do the conversion with a higher quality\nsetting if necessary.  Some GIFs may be better left as GIFs, as explained in\nsection 3; in particular, cartoon-type GIFs with sixteen or fewer colors\ndon't convert well.  You may find that a JPEG file of reasonable quality\nwill be *larger* than the GIF.  (So check the sizes too.)\n\nExperience to date suggests that large, high-visual-quality GIFs are the best\ncandidates for conversion to JPEG.  They chew up the most storage so offer\nthe most potential savings, and they convert to JPEG with least degradation.\nDon't waste your time converting any GIF much under 100 Kbytes.  Also, don't\nexpect JPEG files converted from GIFs to be as small as those created\ndirectly from full-color originals.  To maintain image quality you may have\nto let the converted files be as much as twice as big as straight-through\nJPEG files would be (i.e., shoot for 1/2 or 1/3rd the size of the GIF file,\nnot 1/4th as suggested in earlier comparisons).\n\nMany people have developed an odd habit of putting a large constant-color\nborder around a GIF image.  While useless, this was nearly free in terms of\nstorage cost in GIF files.  It is NOT free in JPEG files, and the sharp\nborder boundary can create visible artifacts (\"ghost\" edges).  Do yourself\na favor and crop off any border before JPEGing.  (If you are on an X Windows\nsystem, XV's manual and automatic cropping functions are a very painless\nway to do this.)\n\ncjpeg's default Q setting of 75 is appropriate for full-color input, but\nfor GIF inputs, Q settings of 85 to 95 often seem to be necessary to avoid\nimage degradation.  (If you apply smoothing as suggested below, the higher\nQ setting may not be necessary.)\n\nColor GIFs of photographs or complex artwork are usually \"dithered\" to fool\nyour eye into seeing more than the 256 colors that GIF can actually store.\nIf you enlarge the image, you will see that adjacent pixels are often of\nsignificantly different colors; at normal size the eye averages these pixels\ntogether to produce the illusion of an intermediate color value.  The\ntrouble with dithering is that, to JPEG, it looks like high-spatial-frequency\ncolor noise; and JPEG can't compress noise very well.  The resulting JPEG\nfile is both larger and of lower image quality than what you would have\ngotten from JPEGing the original full color image (if you had it).\nTo get around this, you want to \"smooth\" the GIF image before compression.\nSmoothing averages together nearby pixels, thus approximating the color that\nyou thought you saw anyway, and in the process getting rid of the rapid\ncolor changes that give JPEG trouble.  Appropriate use of smoothing will\noften let you avoid using a high Q factor, thus further reducing the size of\nthe compressed file, while still obtaining a better-looking output image\nthan you'd get without smoothing.\n\nWith the V4 free JPEG software (or products based on it), a simple smoothing\ncapability is built in.  Try \"-smooth 10\" or so when converting GIFs.\nValues of 10 to 25 seem to work well for high-quality GIFs.  Heavy-handed\ndithering may require larger smoothing factors.  (If you can see regular\nfine-scale patterns on the GIF image even without enlargement, then strong\nsmoothing is definitely called for.)  Too large a smoothing factor will blur\nthe output image, which you don't want.  If you are an image processing\nwizard, you can also do smoothing with a separate filtering program, such as\npnmconvol from the PBMPLUS package.  However, cjpeg's built-in smoother is\na LOT faster than pnmconvol...\n\nThe upshot of all this is that \"cjpeg -quality 85 -smooth 10\" is probably a\ngood starting point for converting GIFs.  But if you really care about the\nimage, you'll want to check the results and maybe try a few other settings.\n\n\n---------------------\n\nFor more information about JPEG in general or the free JPEG software in\nparticular, contact the Independent JPEG Group at jpeg-info@uunet.uu.net.\n\n-- \n\t\t\ttom lane\n\t\t\torganizer, Independent JPEG Group\nInternet: tgl@cs.cmu.edu\tBITNET: tgl%cs.cmu.edu@carnegie\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 584, "properties": {"category": "sci.crypt", "text": "From: andersom@spot.Colorado.EDU (Marc Anderson)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: na\nLines: 59\n\nIn article <rdippold.735253985@qualcom> rdippold@qualcomm.com (Ron \"Asbestos\" Dippold) writes:\n>\n>geoff@ficus.cs.ucla.edu (Geoffrey Kuenning) writes:\n>>Bullshit.  The *Bush* administration and the career Gestapo were\n>>responsible for this horror, and the careerists presented it to the\n>>new presidency as a fait accompli.  That doesn't excuse Clinton and\n>>Gore from criticism for being so stupid as to go for it, but let's lay\n>>the body at the proper door to start with.\n>\n>The final stages of denial... I can hardly imagine what the result\n>would have been if the Clinton administration had actually supported\n>this plan, instead of merely acquiescing with repugnance as they've so\n>obviously doing.  I don't believe the chip originated with the Clinton\n>administration either, but the Clinton administration has embraced it\n>and brought it to fruition.\n\n[...]\n\n(the date I have for this is 1-26-93)\n\nnote Clinton's statements about encryption in the 3rd paragraph..  I guess\nthis statement doesen't contradict what you said, though.\n\n--- cut here ---\n\n        WASHINGTON (UPI) -- The War on Drugs is about to get a fresh\nstart, President Clinton told delegates to the National Federation\nof Police Commisioners convention in Washington.\n        In the first speech on the drug issue since his innaugural,\nClinton said that his planned escalation of the Drug War ``would make\neverything so far seem so half-hearted that for all practical\npurposes this war is only beginning now.'' He repeatedly emphasized\nhis view that ``regardless of what has been tried, or who has tried\nit, or how long they've been trying it, this is Day One to me.''\nThe audience at the convention, whose theme is ``How do we spell\nfiscal relief?  F-O-R-F-E-I-T-U-R-E,'' interrupted Clinton frequently\nwith applause.\n        Clinton's program, presented in the speech, follows the\noutline given in his campaign position papers: a cabinet-level Drug\nCzar and ``boot camps'' for first-time youthful offenders.  He did,\nhowever, cover in more detail his plans for improved enforcement\nmethods.  ``This year's crime bill will have teeth, not bare gums,''\nClinton said.  In particular, his administration will place strict\ncontrols on data formats and protocols, and require the registration\nof so-called ``cryptographic keys,'' in the hope of denying drug\ndealers the ability to communicate in secret.  Clinton said the\napproach could be used for crackdowns on other forms of underground\neconomic activity, such as ``the deficit-causing tax evaders who\nlive in luxury at the expense of our grandchildren.''\n        Clinton expressed optimism that the drug war can be won\n``because even though not everyone voted for Bill Clinton last\nNovember, everyone did vote for a candidate who shares my sense of\nurgency about fighting the drug menace.  The advocates of\nlegalization -- the advocates of surrender -- may be very good at\nmaking noise,'' Clinton said.  ``But when the American people cast\ntheir ballots, it only proved what I knew all along -- that the\nadvocates of surrender are nothing more than a microscopic fringe.''\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 585, "properties": {"category": "rec.motorcycles", "text": "From: svoboda@rtsg.mot.com (David Svoboda)\nSubject: Re: Insurance and lotsa points...\nNntp-Posting-Host: corolla18\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 17\n\nIn article <1993Apr19.152527.23658@iscnvx.lmsc.lockheed.com> jrlaf@sgi502.msd.lmsc.lockheed.com (J. R. Laferriere) writes:\n|\n|Now now Keith, just calm down.  What are you some prohibitionist prick?  The\n|point of Andrew Infante's posting was obvious to solicit suggestions pertaining\n|to the cost of insurance and the like.  I don't care if you are MADD or SADD or\n|whatever; keep it to yourself, we'd all appreciate that.\n\nWell, simply put, drinking is irrelavent.  Driving drunk is indefensable and\nunforgivable.  There is a large differnece.\n\nBut, then, with an attitude like yours, I expect you'll be dead soon.  I just\nhope you don't take a human being out with you.\n\nDave Svoboda (svoboda@void.rtsg.mot.com)    | \"I'm getting tired of\n90 Concours 1000 (Mmmmmmmmmm!)              |  beating you up, Dave.\n84 RZ 350 (Ring Ding) (Woops!)              |  You never learn.\"\nAMA 583905  DoD #0330  COG 939  (Chicago)   |  -- Beth \"Bruiser\" Dixon\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 586, "properties": {"category": "comp.graphics", "text": "From: trb3@Ra.MsState.Edu (Tony R. Boutwell)\nSubject: HOT NEW 3D Software\nKeywords: Imagine,3d\nNntp-Posting-Host: ra.msstate.edu\nOrganization: Mississippi State University\nLines: 20\n\nThere is a new product for the (IBM'ers) out there... it is called\nIMAGINE and it just started shipping yesterday... I can personally attest that it will blow the doors off of 3D-Studio.  It is made by IMPUlSE, and is in its\n3rd version....(1st) for the IBM.... it can do morphing, your standard key-framming animation, it is a raytracer (reflections & shadows), and can do/apply special FX to objects... (like ripple, explode, bounce) things of that nature.  Also it has algorithmic texture maps....and your standard brushmapping also...\n\nyou can have animated brushmaps...(ie. live video mapped on the objs)...\nalso animated backdrops (ie. live video backgrounds)\nalso animted reflections maps....\n\nyou get the idea.... it will run for about 500$ retail (I think)...\n\ndont let the low price fool you.... this product can do it all when it\ncomes to 3D-animation and Renderering...!\n\nalso....does anyone here know how to get in the Imagine mailing list??\nplease e-mail me if you do or post up here....\n\noh...the number for IMPULSE is --->1 800 328 0184\n\ntrb3@ra.msstate.edu\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 587, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: ACLU (was Re: Waco Shootout ...)\nOrganization: California Institute of Technology, Pasadena\nLines: 17\nNNTP-Posting-Host: sandman.caltech.edu\n\n\"Paul Hager\" <hagerp@cs.indiana.edu> writes:\n\n>>The 2nd Amendment does say \"keep and bear.\"  If \"bear\" is defined to\n>>mean \"carry,\" then most people are physically unable to carry a several\n>>hundred pound nuclear device.\n\n>As I understand it, sub-kiloton nuclear demolitions are man-portable\n>and carried in a backpack.\n\nAs I recall, in the 60's the Kennedy Administration had sub-kiloton\nnuclear weapons withdrawn from Europe and destroyed.  They were man-\nportable and made for use in shoulder-mount rocket launchers.  The\nsmallest nuclear test I've seen data for was a .1 (yes, one-tenth)\nkiloton weapon tested either in the late 40's or early 50's.\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.029+0000", "event": "documents", "entityId": 588, "properties": {"category": "rec.sport.baseball", "text": "From: ccox@math.nwu.edu (Christopher L. Cox)\nSubject: Re: Yogi-isms\nArticle-I.D.: news.1993Apr6.213008.1009\nOrganization: Dept of Math, Northwestern Univ\nLines: 13\nNntp-Posting-Host: poincare.math.nwu.edu\n\n> \n> Here's one I remember: (sort of)\n> Yogi's asleep in a hotel room late at night and gets a call from someone.\n> After he answers the phone the person at the other end asks if he woke Yogi\n> up. Yogi answered, \"No, the phone did.\"\n> \n> Kevin\n\nOne of my favorites came back in the seventies when two\nstreakers interupted a game Yogi was at, dashing across the\nfield unclad.  Later someone who wasn't present asked Yogi\nif they were men or women.  He replied, \"I couldn't tell,\nthey had bags over their heads.\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 589, "properties": {"category": "soc.religion.christian", "text": "From: atterlep@vela.acs.oakland.edu (Cardinal Ximenez)\nSubject: Re: Pantheism & Environmentalism\nOrganization: National Association for the Disorganized\nLines: 46\n\nby028@cleveland.freenet.edu (Gary V. Cavano) writes:\n\n>...does anybody out there see the current emphasis on the\n>environment being turned (unintentionally, of course) into\n>pantheism?\n\n>I've debated this quite a bit, and while I think a legitimate\n>concern for the planet is a great thing, I can easily see it\n>being perverted into something dangerous.\n\n  Many pagans are involved in environmentalism--this is only natural, since\nrespect for the earth is a fundamental tenet of all pagan denominations.  This\ndoesn't mean that environmentalism is wrong, any more than supporting peace in\nthe Middle East is wrong because Jews and Muslims also work for it.\n\n  Nonetheless, paganism is certainly on the rise, and we as Christians should\naddress this and look at what draws people from paganism to Christianity.  Like\nit or not, pagan religions are addressing needs that Christianity should be,\nand isn't.  \n  I believe that paganism has hit upon some major truths that Christianity has\nforgotten.  This doesn't mean that paganism is right, but it does mean that we\nhave something to learn from the pagan movement.\n  First, paganism respects the feminine.  Christianity has a long history of\noppressing women, and many (if not most) male Christians are still unable to\nlive in a non-sexist manner.  The idea that God is sexless, or that Christ \ncould have been a women and still accomplished his mission, is met with a great\ndeal of resistance.  This insistance on a male-dominated theology (and the \nmale-dominated society that goes with it) drives away many young women who have\nhad to put up with sexist attitudes in their churches.\n  Second, paganism respects the physical world.  This is an idea with great\nramifications.  One of these is environmentalism--respect for our surroundings\nand our world.  Another is integration of sexuality.  Christianity has a long\ntradition of calling ALL sexual feeelings sinful and urging people to suppress\nand deny their sexuality.  This is too much--sex is clearly a part of human\nexperience and attempting to remove it is simply not a feasible option.  \nChristianity has only begun to develop a workable sexual ethic, and paganism\nis an attractive option.\n  I'm not advocating that Christian doctrines (no sex before marriage, etc.)\nshould be changed--just that Christians work toward a more moderate ethic of\nsexuality.  Denial of sexuality places as much emphasis on sex as unmoderated\nsexuality, and neither one does much to bring us closer to God.\n\nAlan Terlep\t\t\t\t    \"Incestuous vituperousness\"\nOakland University, Rochester, MI\t\t\t\natterlep@vela.acs.oakland.edu\t\t\t\t   --Melissa Eggertsen\nRushing in where angels fear to tread.\t\t\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 590, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 17\n\nstrnlght@netcom.com (David Sternlight) writes:\n\n> Some of the more notorious self-styled dissidents here, for example, have\n> already got their heads so high above the tall grass that they'd have little\n> chance of getting a clearance.\n\nIf there are many as..., er, people in the USA who reason like the\nabove, then it should not be surprising that the current plot has been\nallowed to happen...\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 591, "properties": {"category": "comp.windows.x", "text": "From: vidya-v@acsu.buffalo.edu (vidyaranya)\nSubject: Red color on button on enter window.\nDistribution: usa\nOrganization: UB\nLines: 7\nNntp-Posting-Host: beatrix.eng.buffalo.edu\n\n\nThis may be an FAQ, but I dont know where to get the FAQ list!\nMy OpenLook application has a few buttons. The first button turns\nred(gets highlighted?) as soon as the sprite(mouse) is moved into the\napplication window. How do I suppress this?\n\nVidyaranya\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 592, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: The 'pill' for Deer = No Hunting\nOrganization: Stratus Computer, Inc.\nLines: 144\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1993Apr14.221646.2332@gnv.ifas.ufl.edu>, jrm@gnv.ifas.ufl.edu writes:\n\n> >        You might have missed the U.S. News & World Report excerpt\n> > I posted.  It is fairly consistant with other such polls, finding\n> > that approximately 40-50% of households have at least one firearm.\n\n> \tOK ... a near-majority actually OWN firearms, but I will still\n> \tclaim that the VAST majority never needs to use them or even\n> \tthreaten anyone with them.\n\n500,000 to 1,000,000 self-defense incidents a YEAR doesn't count with you?\n\n>       What do they do right ... or are\n> \tthey just lucky ? \n\nMaybe they're just UNLUCKY.  If a rapist pulls a woman into an alley\nin Boston, chances are almost certain that she won't be counted \nas one of those self-defenders because our local constabulary didn't\nconsider it important that she be allowed to arm herself.  Even though\nthe shotgun she owns at home makes her show up in the \"gun owner\" column.\n\n>       In either case, this means the 'average\n> \tthreat level' in this country is rather low. \n\nIronic words for somebody who lives in Florida.  The \"average threat\nlevel\" in Florida has been REDUCED by a liberal CCW policy.  It's well\nknown that your local thugs like to target tourists precisely because \nthey are less likely to be carrying than your natives.  Come on up to\nBoston, or NYC, or Washington DC, and see how much diddlysquat the \n\"average threat level in the country\" means to a resident there.\n\n> \tI think you have weapons on the brain. I never said that these\n> \talternative means of self-protection involved any hardware.\n> \tWhy are 'good' neighborhoods 'good' ? It isn't because every\n> \tperson is armed to the teeth. It is because of (1) attitude\n> \tand (2) cooperation. In the 'good' neighborhoods, the residents\n> \tmake themselves aware of their neighbors and notice when\n> \tstrangers are lurking around. 'Good' neighborhoods form groups\n> \tlike 'crime-watch' to increase this effect, and the relative\n> \teffectiveness of the police. When hostiles are arrested, the\n> \tgood neighbors step up and say \"THAT'S the one officer ! He\n> \twas robbing Mr. Jones' house\". \n\nSometimes this works.  Sometimes it just lands your good neighbors \non the dance card for the next wave of drive-bys.  Someone here once\ntold a story about LA gangs moving into Phoenix.  I've misplaced the\noriginal text, but the story started with one resident calling the \ncops on a gang member.  Sure enough, a few nights later, there was a \ndrive-by performed at the resident's house.  Except that this time,\nunlike in LA, the entire street came out and returned fire, putting\nan end to the car's occupants.  The gang packed up and left.\n\nOf course, in LA, or in a place like Florida after the hurricane,\nyour first problem is to FIND an officer to step up to and tell\nanything.\n\n> \tIn short, the alternative to firepower is gangs ... or at\n> \tleast a benificent manifestation of that social cooperative.\n> \tReplace lead with flesh ... the flesh makes a better\n> \tconversationalist too and you can invite it over for a\n> \tblock party. \n\nLook, nobody is arguing this.  I have a fire extinguisher at home.  \nThat doesn't mean I can be careless about tossing my burnt matches \non the carpet.  I live carefully, monitor the woodstove, get my flue\ncleaned twice a year, and test my smoke alarms annually.  But if --\nDESPITE all this -- a fire does start, it's too late for any of\nthese things EXCEPT the extinguisher.\n\n> >        But legality and legitimacy also matter.  If a government's charter\n> > makes a rule, which the government then violates, it is violated the\n> > basis for its existance.  Enforcement of its will becomes a matter\n> > solely of force of arms.\n> \n> \tOliver North. The man is positively worshiped in many\n> \tall-American 'conservative' quarters. He and Big Ron\n> \tset-up a secret government and did all sorts of severely\n> \tillegal deeds - the kind of stuff you and I would be doing\n> \ttwenty-to-life for, yet he walks free. This BS happens all\n> \tthe time. In fact, it happens so much that no one really\n> \tcares anymore.  'Legitimacy' is a non-issue. Legality is\n> \ta non-issue. So long as we get T-bones and our MTV, who\n> \tgives a rats ass ? \n\nYou seem to be agreeing with your opponent.  You can't trust your\ngovernment to protect you from abusers and violators -- white-collar,\nblue-collar, epauletted, or tank-shirted.  Ultimately, no one has the\npower to enforce your \"rights\" but you.  Unless you've given up that \npower.\n\n> \tNo. I claimed that no one is interested in the statistical\n> \taspects of the argument. Pure emotion, like the abortion issue.\n\nToo many people fit that category, that is true.  Some of us like to\nbelieve that they are uninterested in the facts behind the case for gun \nownership because they've been conditioned to believe that there AREN'T \nany.  You seem content to underestimate the electorate; I'm willing to\ntry to raise their consciousness.\n\n> \tArgue away ... you can't win. \n\nI think we can.\n\nHCI was founded in what, 1980?  In the mid-80's, they ran a \"One \nMillion Strong!\" campaign for two years before reaching this goal.  \nMy understanding is that they \"reached\" it by the stratagem of including\nwide classes of people other than dues-paying members.  (I can't speak\nauthoritatively on this -- maybe somebody else has details.)  Then they\nstarted running a \"Two Million Strong!\" campaign for a while -- but they\nlet it slip into unannounced obscurity when it became clear that they\nsimply were never going to reach that level of membership.\n\nIn 1964, just after the commencement of the Dodd Hearings -- the starting\npoint of the modern gun-control movement, the NRA had a mere 625,000 members.  \nBy 1968, barely after the first murmurs of future registration, it had \nabout a million.  Today, it has over three million members, making it the\nthird largest membership organization in the country (next to AARP and AAA).\nAnd its membership is GROWING FASTER than at any previous time.  (Historical\nfigures from Kukla's \"Gun Control,\" pp. 61 and 420.)\n\nAs you say, many of the people in the middle of this debate are bemused\nby their T-bones and MTV.  That leaves hard-core gun-owners against \nhard-core gun banners.\n\nI know a number of ex-HCI members who have recently become NRA members.\nI've never heard of a single one who has gone the other way.\n\nYes, I think we can and will win this one.\n\n> \tFirearms-related mindless mayhem will be related to the\n> \tavailibility of firearms. If they become scarce and \n> \tand expensive, a different psychology will take hold.\n> \tI *think* they would be used far less to settle trivial\n> \tcomplaints. \n\nI think they would be used far less to hammer nails, as well, but,\nlike you, I can't give any citation showing that this utilization is\nCURRENTLY significant at more than an anecdotal level.  If you can, \nI'm waiting.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 593, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: msk9@po.CWRU.Edu (Mahesh S. Khot)\nSubject: Quattro Pro File Format\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 12\nReply-To: msk9@po.CWRU.Edu (Mahesh S. Khot)\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n\n\nWe are trying to write a program which can read files created by quattro\npro 3.0 and above.  Would anyone know where to find information regarding\nthe format in which Quattro Pro stores its files.\n\nThanks in Advance\nMahesh\n-- \nfamous dummies =  Madam Tussade's Wax Museum. \nStill at Case msk9@po.cwru.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 594, "properties": {"category": "misc.forsale", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Re: Shipping costs\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 71\n\nIn article <1pd24e$745@usenet.INS.CWRU.Edu>, kxj6@po.CWRU.Edu (Kijin Jung) writes:\n|> \n|> In a previous article, tomc@arezzo.oas.olivetti.com (Tom Carlino) says:\n|> \n|> >Recently I bought a musical instrument through the internet and had\n|> >it shipped to me via UPS ground. The shipping was done through a\n|> >mail box service, Mailboxes, Etc.  Being somewhat surprised at the\n|> >price, I compared prices of shipping this way to shipping directly\n|> >through UPS and this is a summary.  I am not making any endorsements\n|> >or condemnations but merely presenting the facts from which you may\n|> >draw your own conclusions.\n|> >\n|> \n|> I've encountered the same thing with Mailboxes, Etc. and I suggest\n|> anyone to use the original UPS service if at all possible. Shipping\n|> to Virginia from Cleveland was around $20 for 12 pounds, and C.O.D.\n|> was $8.00, as opposed to $4.50 for UPS.\n\nI'll third the opinion about this outfit/franchise. Now, when I\nbuy over the net and pick up the shipping costs, I'll specify that I\nonly pick up the normal UPS charges (as if delivered directly to\nUPS), as I've been burned by $10 shipping charges for a $2.49 pkg.\nI will never use a mailing service unless I don't have the\nright box and the buyer needs whatever IMMEDIATELY. I'll also\ntell the person, if they agreed to pick up shipping, what is going on.\n\nOther things to watch out for/consider:\n\n\tThe rates are $5 to $30 higher than UPS direct.\n\n\tFor a non-UPS (truck) package, they quoted a rate\n\tof $85. Fed Ex economy air was only $85 for the\n\tsame weight! RPS (a trucking package company, in many\n\tcities) only wanted $18. Guess who got it. The Mailbox\n\toperator told me I was not telling the truth about\n\tcompetitors' rates, said RPS was unreliable (I've used them\n\tbefore with NO problems), etc. Right.\n\n\tA COD check goes to the mailing service. Our local\n\tMailbox then takes its sweet time mailing me the\n\tremade check. All this for an additional $3.00 over the\n\tUPS COD charge. What a deal.... :-)\n\n\tFor packages over $100, they charge you about double over\n\twhat UPS charges them for insurance. I've never had\n\ta claim, but other netters (is Ralph Seguin out there?)\n\thave told horror stories about them...\n\n\tAll package traces have to be done through Mailbox by\n\tMailbox.\n\n\tOur local Mailbox operator told me I was lying when I\n\tasked him why their rates were stratospheric compared\n\tto direct UPS. Does he ever check? Probably not...\n\n\tTheir UPS ground rates come close to Fed Ex's economy\n\tair rate, and Fed Ex will pick up!\n\n\tUPS will pick up for a $5 charge in most areas!\n\t\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 595, "properties": {"category": "sci.space", "text": "From: sysmgr@king.eng.umd.edu (Doug Mohney)\nSubject: Re: FAQs\nArticle-I.D.: mojo.1pst9uINN7tj\nReply-To: sysmgr@king.eng.umd.edu\nOrganization: Computer Aided Design Lab, U. of Maryland College Park\nLines: 10\nNNTP-Posting-Host: queen.eng.umd.edu\n\nIn article <10505.2BBCB8C3@nss.org>, freed@nss.org (Bev Freed) writes:\n>I was wondering if the FAQ files could be posted quarterly rather than monthly\n>.  Every 28-30 days, I get this bloated feeling.\n\nOr just stick 'em on sci.space.news every 28-30 days? \n\n\n\n    Software engineering? That's like military intelligence, isn't it?\n  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 596, "properties": {"category": "sci.space", "text": "From: fleice_mike@tandem.com (Mike Fleice)\nSubject: Last call: S/W wizard position at Tandem (Cupertino CA)\nNntp-Posting-Host: 130.252.132.77\nOrganization: Tandem Computers Incorporated, Cupertino, CA\nLines: 28\n\nWell, we got some responses and are doing some interviews with interesting\nresponders. However, just in case the other posting was overlooked by an\nincredibly talented person ... Mea Culpa for posting this here for Mike,\nbut we're looking for someone special:\n\n   Tandem Computers is currently looking for a software wizard to help\n us architect & implement a fault-tolerant generalized instrumentation\n subsystem as part of our proprietary operating system kernel (TNS\n Kernel). The TNS Kernel is a proprietary, loosely-coupled parallel,\n message-based operating system. The TNS Kernel has wide connectivity\n to open standards.\n   In this key individual contributor role, you will work with other\n developers working on various components of the Transaction Management\n Facility.\n   Your background needs to encompass some of the following 4 categories\n (3 of 4 would be excellent):\n   Category 1. Math: Working knowledge of statistics, real analysis, as\n used in experimental physics or chemistry, or in engineering.\n   Category 2. Working knowledge of telemetry issues-- i.e. time series,\n autocorrelation, and statistical correlation of data streams.\n   Category 3. Integration & Test -- Instrumentation of systems under test,\n i.e. payloads, flight modules, etc.\n   Category 4: Software Engineering: programming skills, algorithms, and\n systems software techniques.\n\n   Please send your resume to Mike Fleice, Tandem Computers 10555\n Ridgeview Ct., LOC 100-27, Cupertino, CA 95014-0789; Fax (408) 285-0813;\n or e-mail fleice_mike@tandem.com\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 597, "properties": {"category": "rec.motorcycles", "text": "From: moseley@u.washington.edu (Steve L. Moseley)\nSubject: Re: How to act in front of traffic jerks\nOrganization: Microbial Pathogenesis and Motorcycle Maintenance\nLines: 26\nNNTP-Posting-Host: microb0.biostat.washington.edu\n\nIn article <nielsmm-150493114522@nanna.imv.aau.dk>\n nielsmm@imv.aau.dk (Niels Mikkel Michelsen) writes:\n>From: nielsmm@imv.aau.dk (Niels Mikkel Michelsen)\n>Subject: How to act in front of traffic jerks\n>Date: Thu, 15 Apr 1993 08:54:34 GMT\n\n>The other day, it was raining cats and dogs, therefor I was going only to\n>the speed limit, on nothing more, on my bike. This guy in his BMW was\n>driving 1-2 meters behind me for 7-800 meters and at the next red light I\n>calmly put the bike on its leg, walked back to this car, he rolled down the\n>window, and I told him he was a total idiot (and the reason why).\n\n>Did I do the right thing?\n\nIt works for me. I avoid obscenities, and try to remain calm cool and \ncollected, and try something like, \"You almost just killed me, and I'm not \nmoving until you apologize.\" or something more or less benign like that. I \nhaven't been shot a single time, but I don't do it in Texas, and I do only \ndo it when there are plenty of witnesses around.\n\nSteve\n__________________________________________________________________________\nSteve L. Moseley                                  moseley@u.washington.edu\nMicrobiology SC-42                                Phone: (206) 543-2820\nUniversity of Washington                          FAX:   (206) 543-8297\nSeattle, WA 98195\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 598, "properties": {"category": "rec.motorcycles", "text": "From: bloom@inland.com\nSubject: Re: extraordinary footpeg engineering\nOrganization: Inland Steel Company; East Chicago, IN\nLines: 18\n\nIn article <1993Apr15.001813.3907@csdvax.csd.unsw.edu.au>, exb0405@csdvax.csd.unsw.edu.au writes:\n> Okay DoD'ers, here's a goddamn mystery for ya !\n> \n> \n> The stud on the side of the bike that clunked when I turned was absent.  I'm\n> fairly sure it was there before the event.  In fact, the thread in\n> the hole in the footpeg was perfectly intact, with no evidence of something\n> having been forcefully ripped out of it only moments previously.  \n> \n> Okay all you engineering types, how the f**k do you explain this ?  How can you\n> rip a tightly fitting steel thread out of a threaded hole (in alloy) without\n> damaging the thread in the hole ?  \n\nYou can't knock a threaded stud out from its hole without destroying \nthe threads.  Also part of the stud would still be in the hole. \nTherefore the stud was *not* in the hole before you touched something \ndown on that side of the bike.\n....Dr. Doom \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 599, "properties": {"category": "rec.sport.baseball", "text": "From: boell@hpcc01.corp.hp.com (Donald P Boell)\nSubject: Re: Rockies spoon-feed game to Mets\nOrganization: the HP Corporate notes server\nLines: 8\n\nIs it just me, or does Bichette look totally lost in the outfield?  He \nmisplayed Martinez fly-out into a double against the Expos, misplayed\nAlou's single into a triple (Alou tagged out at 3rd after over-sliding \nthe bag) and now he misplays another out into a 3 run triple...add in his\nwonderful batting average and we have one heck of a player!\n\nDon Boell\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 600, "properties": {"category": "comp.graphics", "text": "From: erich@fi.gs.com (Erich Schlaikjer)\nSubject: character recognition\nNntp-Posting-Host: raider\nReply-To: schlae@aron01.gs.com\nOrganization: Goldman, Sachs & Co\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 7\n\n  Is there any program available (free or otherwise) for taking a tiff or gif\nor some other bitmapped file and turning it (or parts of it) into ascii\ncharacters?\n\n  DOS, OS/2 or platform independent programs if possible.\n\n  Thanks.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 601, "properties": {"category": "talk.politics.mideast", "text": "From: warren@itexjct.jct.ac.il (Warren Burstein)\nSubject: Re: To be exact, 2.5 million Muslims were exterminated by the Armenians.\nOrganization: ITEX, Jerusalem, Israel\nLines: 33\n\nac = In <9304202017@zuma.UUCP> sera@zuma.UUCP (Serdar Argic)\npl = linden@positive.Eng.Sun.COM (Peter van der Linden)\n\npl: 1.  So, did the Turks kill the Armenians?\n\nac: So, did the Jews kill the Germans? \nac: You even make Armenians laugh.\n\nac: \"An appropriate analogy with the Jewish Holocaust might be the\nac: systematic extermination of the entire Muslim population of \nac: the independent republic of Armenia which consisted of at \nac: least 30-40 percent of the population of that republic. The \nac: memoirs of an Armenian army officer who participated in and \nac: eye-witnessed these atrocities was published in the U.S. in\nac: 1926 with the title 'Men Are Like That.' Other references abound.\"\n\nTypical Mutlu.  PvdL asks if X happened, the response is that Y\nhappened.  Even if we grant that the Armenians *did* do what Cosar\naccuses them of doing, this has no bearing on whether the Turks did\nwhat they are accused of.\n\nWhile I can understand how an AI could be this stupid, I\ncan't understand how a human could be such a moron as to either let\nsuch an AI run amok or to compose such pointless messages himself.\n\nI do not expect any followup to this article from Argic to do anything\nto alleviate my puzzlement.  But maybe I'll see a new line from his\nlist of insults.\n-- \n/|/-\\/-\\      \n |__/__/_/    \n |warren@     \n/ nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 602, "properties": {"category": "comp.windows.x", "text": "From: ben@dbsm.oz.au (Benjamin Stephen Kelley)\nSubject: Problems with color Xterm\nReply-To: ben@thor (Benjamin Stephen Kelley)\nOrganization: SBC Dominguez Barry Ltd\nLines: 19\n\nWe have recently obtained a copy of color_xterm (from export.lcs.mit.edu) after\nseeing it mentioned in a previous article. On compilation, it reports the\nfollowing undefined symbols:\n\t_get_wmShellWidgetClass\n\t_get_applicationShellWidgetClass\n\n\tbut still runs. When sending escape sequences to set the colour,\nany colour comes out as black text on a black background. Any Ideas?\n\nHas anyone used this program in colour successfully?\n\nCan anyone point me to any other colour terminal emulators?\n\nWe are running OpenWindows 3 on Sun Sparcs running SunOS 4.1.3.\n\n\t\t\t\tadvaTHANKSnce  Ben Kelley.\n\n\t\t\t\t\t\tben@thor.dbsm.oz.au\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 603, "properties": {"category": "sci.electronics", "text": "From: cyberman@toz.buffalo.ny.us (Cyberman)\nSubject: Re: what to do with old 2\nLines: 19\nX-Maildoor: WaflineMail 1.00r\n\n{Kris Gleason} said\n   \"Re: what to do with old 2\"\n      to <All> on 04-15-93  11:02\n KG> Yeah... keychains.  I have seen 64K simms with a silver \n KG> keyring attached, big seller at the computer store.  I'm\n KG> sure you could find a bunch of geeks^H^H^H^H^H^H computer\n KG> science majors around that would buy them for $10.  Maybe\n KG> $15, if you're lucky.\n\n    Untrue they would check JDR first and say 5.  That's how much\n    they are worth AT MOST.  My guess is they are worth 1 buck\n    a peice.\n\n                Stephen Cyberman@Toz.Buffalo.NY.US\n             Mangled on Sat  04-17-1993  at 20:26:37\n\n... This tagline is a duplicate.   This tagline is a duplicate.\n___ Blue Wave/QWK v2.12\n                                                                     \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 604, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lance@hartmann.austin.ibm.com (Lance Hartmann)\nSubject: Re: SUMMARY: Information on PC's LOCAL BUS specification\nReply-To: lance%hartmann.austin.ibm.com@ibmpa.awdpa.ibm.com\nOrganization: IBM, Austin\nKeywords: local bus vesa pci\nLines: 21\n\nIn article <1993Apr6.121757.19852@inesc.pt> jma@ingrina () writes:\n\n[STUFF DELETED]\n\n>-PCI (Intel) bus:\n>  -Its not completely defined (YET).\n>  -Some people think of it as a long term solution.\n>  -Larger fanout.\n>  -Not so cheap (complex chipset).\n        ^^^^^^^^^^^^^^\n\nA friend who owns a company that builds clones shared with me the fact that\nthe PCI chipset is NOT expensive -- how about $12?  Many money-hungry-clone\nmakers, no doubt, will attempt to price the boards high only because it's\nnew technology.\n\nLance Hartmann (lance%hartmann.austin.ibm.com@ibmpa.awdpa.ibm.com)\n               Yes, that IS a '%' (percent sign) in my network address.\n------------------------------------------------------------------------------\nAll statements, comments, opinions, etc. herein reflect those of the author\nand shall NOT be misconstrued as those of IBM or anyone else for that matter.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 605, "properties": {"category": "comp.graphics", "text": "From: renouar@amertume.ufr-info-p7.ibp.fr (Renouard Olivier)\nSubject: Re: POV previewer\nNntp-Posting-Host: amertume.ufr-info-p7.ibp.fr\nOrganization: Universite PARIS 7 - UFR d'Informatique\nLines: 10\n\nActually I am trying to write something like this but I encounter some\nproblems, amongst them:\n\n- drawing a 3d wireframe view of a quadric/quartic requires that you have\nthe explicit equation of the quadric/quartic (x, y, z functions of some\nparameters). How to convert the implicit equation used by PoV to an\nexplicit one? Is it mathematically always possible?\n\nI don't have enough math to find out by myself, has anybody heard about\nuseful books on the subject?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 606, "properties": {"category": "rec.motorcycles", "text": "From: klinger@ccu.umanitoba.ca (Jorg Klinger)\nSubject: Re: Why mod a ZX-11? (was ZX-11 #4 cylinder running HOT,)\nNntp-Posting-Host: ccu.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Canada\nLines: 44\n\nIn <1993Apr1.212334.14870@exu.ericsson.se> lmcstst@noah.ericsson.se (Stamos Stamos) writes:\n\n>In article <1993Apr1.173354.14424@research.nj.nec.com> behanna@phoenix.syl.nj.nec.com (Chris BeHanna) writes:\n>>\n\n>Power? hmmmmmm, well I haven't got it on the dyno or jetted. (waiting for the snow\n>to melt) Although I have a Factory jet kit + 4' advance,(jets are 145s, the stock\n>is 140, my book says 130 Calif.-> 150 UK, strange?), I don't want to fit it unless\n>there is a dyno handy.\n\n  I've heard that bikes tuned to perfection on the Dyno can be a little\ntoo close to the edge for street use. Cold morning, bad gas, etc.\n\n  Apparently they back them of some even for track use. \n\n You pays your money ...\n\n__\n   Jorg Klinger            |       GSXR1100        | If you only new who\n   Arch. & Eng. Services   |\"Lost Horizons\"  CR500 | I think I am. \n   UManitoba, Man. Ca.     |\"The Embalmer\"   IT175 |           - anonymous\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n>--\n>Stamos <lmcstst@lmc.ericsson.se>            ZZR11            Ellas\n>Ericsson, Cellular Design\n>Montreal, Canada.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 607, "properties": {"category": "rec.sport.hockey", "text": "From: lmcdapi@noah.ericsson.se (Daniel Piche)\nSubject: Re: NHL Team Captains\nReply-To: lmcdapi@noah.ericsson.se\nOrganization: Ericsson Communication Inc.\nLines: 31\nNntp-Posting-Host: bison.lmc.ericsson.se\nX-Disclaimer: This article was posted by a user at Ericsson.\n              Any opinions expressed are strictly those of the\n              user and not necessarily those of Ericsson.\n\nIn article K00WBM850Z5v@andrew.cmu.edu, am2x+@andrew.cmu.edu (Anna Matyas) writes:\n>\n>Michael Collingridge writes:\n>\n>>And, while we are on the subject, has a captain ever been traded, \n>>resigned, or been striped of his title during the season? Any other \n>>team captain trivia would be appreciated.\n>\n>Wasn't Ron Francis captain of the Whalers when he was traded to\n>Pittsburgh?\n>\n>Mom.\n\nChris Chelios was Montreal's co-captain with Guy Carbonneau when he was traded to Chicago for Denis Savard, and Peter Stastny was captain of the Quebec Nordiques when he was traded to New-Jersey. Also Mark Messier was captain of the Edmonton Oilers when he was traded to New-York. How about Dale Hawerchuk with Winnipeg when he was traded to Buffalo, was he captain too ? I think so. I should not forget Wayne (you know who) when he was traded to L.A. he was captain. Didn't they strip Wendel Clark of his capta\n\n\n\nincy in Toronto ?\n\nJust some updates and thoughts.\n\nCheer...\n\n-------------------------------------------------------------------------------\nDaniel Piche (LMC/U/DET - Design)\nEricsson Communications Inc.\n8400 Decarie Blvd, 1rd floor\nTown of Mont Royal, Quebec. H4P 2N2\n(514)-738-8300 ext. 2178. \nE-mail: LMCDAPI@LMC.ERICSSON.SE\nMEMOid: LMC.LMCDAPI\n\nCHEERS.....\n-------------------------------------------------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 608, "properties": {"category": "talk.politics.misc", "text": "From: stephen@orchid.UCSC.EDU ()\nSubject: A demo of Nonsense Talk- and what about all the other lies?\nOrganization: Santa Cruz\nLines: 33\nDistribution: usa\nNNTP-Posting-Host: orchid.ucsc.edu\n\nIn article <15196@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n>\n>Homosexuals have been lying about the 10% number for so long that\n>the politicians are running scared of them.  Of course, homosexuals\n>lying should be no surprise.\n>\n\nHow can you lie about something that no one knows for sure.  I am the first\nto state that the 10% figure may be too high- but it may just be too low,\ndepending on what you are talking about.\n\nKeep in mind that there are 'practicing' heterosexuals that are actually\ngay.  These people chose to take a road that avoids being harassed and\nthey wanted to 'fit-in' with everyone other 'normal' person.\n\nBut let's get off of this irrational behavior of calling everyone a liar,\nyou cannot even start to support such claims.\n\n>Also, the corrupt, criminal and lying nature of Kinsey's work, which\n>provides much of the justification for homosexual \"rights\" in the modern\n>era, should make people step back for a moment and question the rest\n>of the crap that they have been force-fed by the news media.\n\nThis sure sounds definitive.  How do you label Kinsey's work like this,\nfrom that factually based and scientific journal WSJ?\n\n>-- \n>Relations between people to be by mutual consent, or not at all.\n\nThis is an interesting statement.  Do you realize how many things you do\nyour life that are not based on 'mutual consent'- and that it may be\nrequired on occasion that all parties may not be mutually consenting?\nThis\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 609, "properties": {"category": "talk.politics.mideast", "text": "From: ptg2351@uxa.cso.uiuc.edu (Panos Tamamidis )\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nOrganization: University of Illinois at Urbana\nLines: 60\n\ntankut@IASTATE.EDU (Sabri T Atan) writes:\n\n>In article <C5IF8u.3Ky@news.cso.uiuc.edu>, ptg2351@uxa.cso.uiuc.edu (Panos\n>Tamamidis ) writes:\n> \n>> >(I have nothing against Greeks but my problem is with fanatics. I have met\n>> >so many Greeks who wouldn't even talk to me because I am Turkish. From my\n>> >experience, all my friends always were open to Greeks)\n>> \n>>  Well, the history, wars, current situations, all of them do not help.\n\n>Well, Panos, Mr. Tamamidis?, the way you put it it is only the Turks\n>who bear the responsibility of the things happening today. That is hard to\n>believe for somebody trying to be objective.\n\n Well, if you put things into historical perspective, the Turks\n moved into an area, which was inhabited by Greeks.  This is how the history\n between the two nations started some centuries ago.  Since then, it has been\n a continuous battle between the two nations.  From my perspective I can't see\n why I should say that Greeks have been responsible for what has happened \n between the two nations.  Of course, it would not be reasonable to argue that\n the hostility should drag till we kick the Turks out of this area.  This isn't\n going to happen, so the best would be to improve the relations between the two\n countries.  A golden oportunity exists with Cyprus.  If things can't work\n there, there isn't any possible way that could work between our nations.\n\n>When it comes to conflicts like our countries having you cannot\n>blame one side only, there always are bad guys on both sides.\n>What were you doing on Anatolia after the WW1 anyway?\n>Do you think it was your right to be there?\n\n I always avoid to discuss such things.  I consider it a waist of my time.\n Besides, as I said, I do not want to open a new flame.\n\n>I am not saying that conflicts started with that. It is only\n>not one side being the aggressive and the ither always suffering.\n>It is sad that we (both) still are not trying to compromise.\n>I remember the action of the Turkish government by removing the\n>visa requirement for greeks to come to Turkey. I thought it\n>was a positive attempt to make the relations better.\n\n I thought it was a smart move to receive more money from Greek tourists.\n I bet that this week there should be about 200,000 tourists from Greece\n in Turkey.  Each one will leave at least $1,000 so go and figure what this\n means to your economy.  If you had kept the visa requirement, how many\n Greeks would bother to visit Turkey?\n\n>The Greeks I mentioned who wouldn't talk to me are educated\n>people. They have never met me but they know! I am bad person\n>because I am from Turkey. Politics is not my business, and it is\n>not the business of most of the Turks. When it comes to individuals \n>why the hatred?\n\n Come on. Do not extrapolate from your limited personal experience.  You err\n if you think you'd get a reasonable conclusion.\n\n>Tankut Atan\n>tankut@iastate.edu\n\n Panos Tamamidis\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 610, "properties": {"category": "sci.med", "text": "From: slyx0@cc.usu.edu\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Utah State University\nLines: 37\n\nIn article <1993Apr15.190711.22190@walter.bellcore.com>, jchen@wind.bellcore.com (Jason Chen) writes:\n> In article <1993Apr15.135941.16105@lmpsbbs.comm.mot.com>, dougb@comm.mot.com (Doug Bank) writes:\n> \n> |> I woke up at 2 AM and puked my guts outs.\n> |> I threw up for so long that (I'm not kidding) I pulled a muscle in\n> |> my tongue.  Dry heaves and everything.  No one else got sick, and I'm\n> |> not allergic to anything that I know of.  \n> \n> The funny thing is the personaly stories about reactions to MSG vary so\n> greatly. Some said that their heart beat speeded up with flush face. Some\n> claim their heart \"skipped\" beats once in a while. Some reacted with\n> headache, some stomach ache. Some had watery eyes or running nose, some\n> had itchy skin or rashes. More serious accusations include respiration \n> difficulty and brain damage. \n> \n> Now here is a new one: vomiting. My guess is that MSG becomes the number one\n> suspect of any problem. In this case. it might be just food poisoning. But\n> if you heard things about MSG, you may think it must be it.\n\nSurprise surprise, different people react differently to different things. One\nslightly off the subject case in point. My brother got stung by a bee. I know\nhe is allergic to bee stings, but that his reaction is severe localized\nswelling, not anaphylactic shock. I could not convince the doctors of that,\nhowever, because that's not written in their little rule book.\n\nI would not be surprised in the least to find out the SOME people have bad\nreactions to MSG, including headaches, stomachaches and even vomiting. Not that\nthe stuff is BAD or POISON and needs to be banned, but people need to be aware\nthat it can have a bad effect on SOME people.\n\nLone Wolf\n\n                                      Happy are they who dream dreams,\nEd Philips                            And pay the price to see them come true.\nslyx0@cc.usu.edu                                              \n                                                              -unknown\n \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.030+0000", "event": "documents", "entityId": 611, "properties": {"category": "soc.religion.christian", "text": "From: nabil@cae.wisc.edu (Nabil Ayoub)\nSubject: Re: Monophysites and Mike Walker\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 127\n\nHello src readers,\n\nAgain the misconception that Copts among other Oriental Orthodox\nChurches believe in Monophysitism pops up again. We had a discussion\nabout it a while ago. \n\nIn article <May.6.00.34.58.1993.15426@geneva.rutgers.edu> db7n+@andrew.cmu.edu (D. Andrew Byler) writes:\n>\n>The proper term for what Mike expresses is Monophysitism.  This was a\n>heresy that was condemned in the Council of Chalcedon in 451 AD.  It\n>grew up in reaction to Nestorianism, which held that the Son and Jesus\n>are two different people who happened to be united in the same body\n>temporarily.  Monophysitism is held by the Copts of Egypt and Ethipoia\n>and by the Jacobites of Syria and the Armenian Orthodox. \n\nThen OFM comments :\n\n>\n>\n>[These issues get mighty subtle.  When you see people saying different\n>things it's often hard to tell whether they really mean seriously\n>different things, or whether they are using different terminology.  I\n>don't think there's any question that there is a problem with\n>Nestorius, and I would agree that the saying Christ had a human form\n>without a real human nature or will is heretical.  But I'd like to be\n>a bit wary about the Copts, Armenians, etc.  Recent discussions\n>suggest that their monophysite position may not be as far from\n>orthodoxy as many had thought. \n\nWith my appreciation to the moderator, I believe that further elaboration\nis needed. This is an excerpt from an article featured in the first issue\nof the Copt-Net Newsletter :\n\nUnder the authority of the Eastern Roman Empire of Constantinople (as opposed\nto the western empire of Rome), the Patriarchs and Popes of Alexandria played\nleading roles in  Christian theology.  They were  invited everywhere to speak\nabout the Christian faith. St. Cyril, Pope of Alexandria, was the head of the\nEcumenical Council which was held in Ephesus in the year 430 A.D. It was said\nthat the bishops of the Church of Alexandria did nothing but spend  all their\ntime in meetings. This leading role, however, did not fare well when politics\nstarted to intermingle with  Church affairs.  It all started when the Emperor\nMarcianus interfered with matters of faith in the Church. The response of St.\nDioscorus, the Pope of Alexandria who was later  exiled, to this interference\nwas clear: \"You have nothing to do with the Church.\"  These political motives\nbecame even more  apparent in Chalcedon  in 451, when the Coptic  Church  was\nunfairly  accused of following  the  teachings of  Eutyches, who believed  in\nmonophysitism. This  doctrine maintains that the  Lord Jesus Christ  has only\none nature, the divine, not two natures, the human as well as the divine.\n\nThe Coptic  Church   has never  believed  in  monophysitism  the way   it was\nportrayed in the Council of Chalcedon!  In  that Council, monophysitism meant\nbelieving in one  nature.  Copts   believe that the Lord   is perfect in  His\ndivinity,  and He   is perfect in  His humanity,  but  His  divinity  and His\nhumanity were united in one nature called \"the nature of the incarnate word\",\nwhich was reiterated by St. Cyril of Alexandria.  Copts, thus, believe in two\nnatures \"human\" and   \"divine\"  that are   united in   one \"without mingling,\nwithout confusion, and without alteration\" (from the  declaration of faith at\nthe end of the Coptic divine liturgy).  These  two  natures \"did not separate\nfor a moment or the twinkling of an eye\" (also from  the declaration of faith\nat the end of the Coptic divine liturgy).\n\nThe  Coptic Church was  misunderstood in the 5th century  at the  Council  of\nChalcedon.  Perhaps the Council  understood   the Church correctly, but  they\nwanted to exile the  Church,   to  isolate it  and to  abolish the  Egyptian,\nindependent Pope. Despite  all of this,  the Coptic Church  has remained very\nstrict  and steadfast in its faith.   Whether it was   a  conspiracy from the\nWestern Churches to exile the Coptic Church  as a  punishment for its refusal\nto be politically influenced, or whether Pope Dioscurus  didn't  quite go the\nextra  mile to  make the  point that  Copts  are not  monophysite, the Coptic\nChurch has always felt a mandate  to reconcile \"semantic\" differences between\nall  Christian  Churches.   This is   aptly  expressed by the  current  117th\nsuccessor  of  St. Mark, Pope Shenouda III:  \"To the  Coptic Church, faith is\nmore  important  than  anything, and   others  must know that  semantics  and\nterminology are of  little importance to us.\"  Throughout this  century,  the\nCoptic Church has played  an important role  in the ecumenical  movement. The\nCoptic Church is one of the founders of the World Council of Churches. It has\nremained a member of that  council  since 1948 A.D.   The Coptic Church is  a\nmember  of the all  African Council of Churches  (AACC)  and the  Middle East\nCouncil of  Churches (MECC).  The Church    plays an  important role   in the\nChristian   movement   by   conducting dialogues   aiming  at  resolving  the\ntheological differences with the  Catholic, Greek Orthodox, Presbyterian, and\nEvangelical Churches.\n\n[...]\n\nAs a final note, the Oriental Orthodox and Eastren Orthodox did sign\na common statement of Christology, in which the heresey of Monophysitism\nwas condemned. So the Coptic Orthodox Church does not believe in\nMonophysitism.\n\nPeace,\n\nNabil\n\n          .-------------------------------------------------------------.\n         /  Nabil Ayoub                        ____/   __  /    ____/  /\n        /  Engine Research Center             /       /   /    /      /\n       /  Dept. of Mechanical Engineering    ___/    __  /    /      /\n      /  University of Wisconsin-Madison    /       /   |    /      /\n     /  Email:ayoub@erctitan.me.wisc.edu  _____/ __/   _|  _____/  /\n    '-------------------------------------------------------------'\n\n[As I mentioned in a brief apology, the comment quoted above from me\nis confused.  I appear to say that Nestorius was monophysite.  As\nAndrew Byler correctly stated it, the Nestorians and monophysites were\nactually opposite parties.  The point I was making, which Nabil\nexplains in some detail, is that some groups that have been considered\nheretical probably aren't.\n\nChalcedon was a compromise between two groups, the Alexandrians and\nAntiochenes.  It adopted language that was intended to be acceptable\nto moderates in both camps, while ruling out the extremes.  I agree\nthat there were extremes that were heretical.  However in the course\nof the complex politics of the time, it appears that some people got\nrejected who didn't intend heresy, but simply used language that was\nnot understood or even was mispresented.  And some seem not to have\njointed in the compromise for reasons other than doctrine.  There are\ngroups descended from both of the supposedly heretical camps.  This\nposting discussed the descendants of the Alexandrians.  There are also\na remaining Nestorians.  Like some of the current so-called\nmonophysites, there is reason to believe that the current so-called\nNestorians are not heretical either.  They sheltered Nestorius from\nwhat they saw as unfair treatment, but claim they did not adopt his\nheresies, and in fact seem to follow more moderate representatives of\nthe Antiochene tradition.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 612, "properties": {"category": "rec.autos", "text": "From: ljbartel@naomi.b23b.ingr.com (Les Bartel)\nSubject: Fast idle on 88 Ford Ranger\nReply-To: ljbartel@naomi.b23b.ingr.com\nOrganization: Intergraph Corporation\nLines: 21\n\nIt did it again.  This morning, my 88 Ford Ranger was idling at 10,000 RPM.\nOk, so I exaggerated a little, but it was idling very fast.  It has a 2\nliter carburated engine in it, and no blipping of the throttle would\ncause the idle to drop back to normal (I don't think the linkage is stuck).\nWhat can I do to fix this problem?  This has been a problem from time to\ntime, but has straightened itself out - until now.  I don't have a tach,\nbut by gauging by the sound of the engine, it is idling about twice as fast\nas it should be.  This is down from what it was idling at when I pulled up\nat a stop light.\n\nMany thanks for any suggestions.\n\n - les\n\n-- \nLes Bartel\t\t\tI'm going to live forever\nIntergraph Corporation\t\t... or die trying\nElectronics Division\t\t\nljbartel@ingr.com\nor ljbartel@naomi.b23b.ingr.com\n(205) 730-8537\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 613, "properties": {"category": "sci.crypt", "text": "From: ray@ole.cdac.com (Ray Berry)\nSubject: Clipper- business as usual?\nArticle-I.D.: ole.1993Apr20.173039.4722\nOrganization: Cascade Design Automation\nLines: 17\n\n\n    Notwithstanding all the legitimate fuss about this proposal, how much\nof a change is it?  ATT's last product in this area (a) was priced over\n$1000, as I suspect 'clipper' phones will be; (b) came to the customer \nwith the key automatically preregistered with government authorities. Thus,\naside from attempting to further legitimize and solidify the fed's posture,\nClipper seems to be \"more of the same\", rather than a new direction.\n   Yes, technology will eventually drive the cost down and thereby promote\nmore widespread use- but at present, the man on the street is not going\nto purchase a $1000 crypto telephone, especially when the guy on the other\nend probably doesn't have one anyway.  Am I missing something?\n   The real question is what the gov will do in a year or two when air-\ntight voice privacy on a phone line is as close as your nearest pc.  That\nhas got to a problematic scenario for them, even if the extent of usage\nnever surpasses the 'underground' stature of PGP.\n-- \nRay Berry kb7ht ray@ole.cdac.com  rjberry@eskimo.com  73407.3152@compuserve.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 614, "properties": {"category": "rec.sport.baseball", "text": "From: randall@informix.com (Randall Rhea)\nSubject: Royals\nOrganization: Informix Software, Inc.\nLines: 14\n\n\nThe Royals are darkness.  They are the void of our time.\nWhen they play, shame descends upon the land like a cold front\nfrom Canada.   They are a humiliation to all who have lived and\nall who shall ever live.   They are utterly and completely\ndoomed.\n\nOther than that, I guess they're OK.\n\n-- \n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nRandall Rhea                                        Informix Software, Inc. \nProject Manager, MIS Sales/Marketing Systems    uunet!pyramid!infmx!randall\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 615, "properties": {"category": "sci.crypt", "text": "From: tfs@gravity.gmu.edu (Tim Scanlon)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nSummary: Whatever...\nKeywords: Hmm...\nOrganization:  George Mason University, Fairfax Va.\nDistribution: world \nExpires: 06/31/93 \nLines: 65\n\n\n\n\tAfter reading the debate over the Clipper, I have a few things to\nadd.\n\n\tFirst, most of the people I know who activly use encryption\nprivately do not care about most of the issues that surround this debate,\nand any questions about what is or is not ok to use in the US. All they\ncare about is wether or not what they are using is secure or not. That,\nafter all IS the bottom line. \n\n\tSecond, if I look at all the people I know who use any form\nof encryption at all, and this group spans people from the morons who\nstill insist that the DES is a good and secure standard, to people \nlooking at trying to improve upon existing strategies, I can not think\nof anyone of them who would approve blindly of a strategy that leaves\ntheir methods open to abuse. The Clipper does this, because people make\nmistakes by nature, and the US government is made up of people who are\njust as vulnerable to mistakes as everyone else. \n\n\tThird, since most of the people I know are at least marginaly\nfamiliar with the vulnerabilities present in current software encryption\nstratigies, I can't see how most of them are going to blindly trust that\nsomeone will not figure out a good way to compromise the Clipper Chip.\nThat despite any strengths or weaknesses that may exist in it. So, I can \nnot see a high degree of confidence developing in the chip.\n\n\tFourth, when it comes to criminal abuse, sure there are many stupid\npeople out there. And yes, some will be open to being caught via the \nbuilt in back door of the Clipper Chip. However, anyone who is going to\ndo any serious investigation of how best to secure their data is going\nto run into that problem pretty damned fast and, I would assume, start\nlooking around for other easily obtainible methods of encryption. \n\n\n\tIf nothing else were avalible, none of this would be an issue. However,\nthe truth is that most private encryption users that I've ever run into\nsimply do not give a damn about the legal status of RSA or PGP or anything\nelse. If it works, they use it. This is not going to change either. I do\nnot think for a moment that anyone with serious criminal intent will be\nslowed down by the advent of the Clipper Chip. It is all to easy to \nconvert encrypted data into unintellgible garbage as it is, if anything,\nthe Clipper Chip just adds another tool to the user.\n\n\n\tThe bottom line here is that people will use what works, and\nunavoidibly, I'm sure most criminals would rather face an encryption\nrelated charge than one which could potentialy lead to death penalty\ncharges in the case of criminals who murder as part of their conspiricy.\n\tThe other thing that has struck me since the advent and wide \nuseage of public encryption has begun is that quite simply the cat is\nout of the bag (Or if you have an interest in snooping, Pandora's Box\nhas been opened), and this is not going to change. I've seen a blindness\nto this that I've found utterly stunning, and the Clipper Chip, along\nwith the way it has been presented only confirms this to me to a larger\ndegree.\n\n\n\t\t\tSincerly,\n\n\t\t\tTim Scanlon\n\n-- \n\ntfs@gravity.gmu.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 616, "properties": {"category": "rec.autos", "text": "From: mutrh@uxa.ecn.bgu.edu (Todd R. Haverstock)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: Educational Computing Network\nLines: 10\nDistribution: world\nNNTP-Posting-Host: uxa.ecn.bgu.edu\n\n>Well, you young fellers won't remember, but we used to have side vent\n>front windows until some damn bean counter scrapped them. These were\n>separate triangular windows at the leading edge of the front doors\n>that pivoted outward at the rear edge. Worked like a charm.\n \nYeah, I loved the vent windows on my 82 Escort (hell, the only thing I liked\nabout the car).  One of the things I'd like to see brought back.  Does\nanyone know if they're an option on the new Escorts?\n\nTRH\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 617, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Eco-Freaks forcing Space Mining.\nArticle-I.D.: aurora.1993Apr23.001718.1\nOrganization: University of Alaska Fairbanks\nLines: 28\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <1r6b7v$ec5@access.digex.net>, prb@access.digex.com (Pat) writes:\n>  Besides this was the same line of horse puckey the mining companies claimed\n> when they were told to pay for  restoring land  after strip mining.\n> \n> they still mine coal in the midwest,  but now it doesn't look like\n> the moon when theyare done.\n> \n> pat\n===\nI aint talking the large or even the \"mining companies\" I am talking the small\nminers, the people who have themselves and a few employees (if at all).The\npeople who go out every year and set up thier sluice box, and such and do\nmining the semi-old fashion way.. (okay they use modern methods toa point).\n\nI am talking the guy who coem to Nome evry year, sets up his tent on the beach\n(the beach was washed away last year) and sets up his/her sluice box and goes\nat it \"mining\".\nI know the large corps, such as Alaska Gold Company, might complain to..\n\nMy opinions are what I learn at the local BS table..\n\nMy original thing/idea was that the way to get space mining was to allow the\neco-freaks thier way.. As they have done with other mineral development.\nYou can't in many places can't go to the bathroom in the woods without some\nform of regulation covering it.. \n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 618, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Space Design Movies?\nArticle-I.D.: aurora.1993Apr23.124722.1\nOrganization: University of Alaska Fairbanks\nLines: 11\nNntp-Posting-Host: acad3.alaska.edu\n\nIs there a few Grasp pictures of space related items, namely Space Station\nDesigns, so you can see the \"finished\" revolt around..\n\nIf you don't know what a grasp prograsm is.. Check out some adult entertainment\nfiles and see what I mean.. Or maybe geta few GIF files and create a \"slide\nshows\" (I think Cshow can do this).. \n\nI liek to be able to see a space shuttle design in a AutoCAD program or to see\nit revolt around and look at it.\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 619, "properties": {"category": "misc.forsale", "text": "From: kimman@magnus.acs.ohio-state.edu (Kim Richard Man)\nSubject: SyQuest 44M cartrifge FORSALE\nArticle-I.D.: magnus.1993Apr17.174951.18029\nDistribution: usa\nOrganization: The Ohio State University\nLines: 5\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\n\nI have 2 New and 2 slightly used SyQuest 44M cartridge forsale.\nAsking $230 for all of them and shipping is included.\n\nPlease reply by E-mail.\nRichard\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 620, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: Fighting the Clipper Initiative\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 9\nNNTP-Posting-Host: access.digex.net\n\n >As a flaming libertarian paranoid extremist (:-), I'at a loss for\n >specific objections that don't sound frighteningly technical.\n\n  The idea that foisting the Cripple Chip standard on US manufacturers would\nresult in saying \"Sayonara\" to yet another high-tech market isn't technical,\nisn't in the least difficult to understand, and plays on a concern lots of\npeople are worried about already....\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 621, "properties": {"category": "rec.autos", "text": "From: damelio@progress.COM (Stephen D'Amelio)\nSubject: Re: Changing oil by self.\nNntp-Posting-Host: elba\nOrganization: Progress Software Corp.\nLines: 34\n\nhanguyen@megatest.com (Ha Nguyen) writes:\n\n>In article <1993Apr14.203800.12566@progress.com> damelio@progress.COM (Stephen D'Amelio) writes:\n>>bmoss@grinch.sim.es.com (Brent \"Woody\" Moss) writes:\n>>\n>>>You could take a screw driver and hammer and start punching holes in\n>>>various locations and when some black slippery stuff starts pouring\n>>>out then you would know that the oil drain plug is nearby (within a foot\n>>>or two anyway). Close the holes with toilet paper before refileing with oil\n>>>though.\n>>\n>>You have to *refill* the engine with oil! Wow, no wonder I can't get\n>>an engine to last more than my first oil change. Don't forget to\n>>punch holes in the radiator too, it will spray nice refreshing water\n>                    ^^^^^^^^\n>>on the engine and keep it nice & cool. ;-)\n>>\n>>-Steve\n\n>Gee, you really make me confused.  What is radiator?  Where is it located?\n>What does it look like?  Will it release any radiation (since it sounds \n>like radia-tion genera-tor) when you punch holes?\n\n\nOf course it releases radiation! Thats why your car goes faster when\nyou punch the holes in it. All that radiation gets on your engine\nand gives it \"pep\" (scientific term). You get more horsepower &\ntorque too! If you don't know what HP & torque are, you can read\nmile long threads on the subject, but they are all wrong. Horsepower\nis how much power a horse can make pulling a Subaru, and torque is\na name invented by Craftsman for a wrench.\n\n-Steve\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 622, "properties": {"category": "misc.forsale", "text": "From: frosty@world.std.com (Robert J Nunez)\nSubject: !!! IBM Games For Sale !!!\nOrganization: The World Public Access UNIX, Brookline, MA\nX-Newsreader: Tin 1.1 PL3\nLines: 62\n\nI would like to sell some software. Shipping is $3 per order - 1 or more\ngames in the continental U.S.  $6 to Canada.  Contact me for shipping \nto other locations.\n\nContraption Zack                                $20\n\tPerfect condition. Unregistered & all docs/disks/packaging\n\tA 3-D puzzle game with great animated graphics.  Your tools for\n\tfixing up a manufacturing plant are hidden throughout the levels\n\tand you must solve puzzles to get the tools and then use the tools\n\tto fix the machines.  The levels are HUGE and span many screens.\n\tThe graphics are cartoony and humorous.  (256 color VGA,MCGA,\n\tAdLib,Soundblaster,Roland,3.5\")\n\nLegend of Kyrandia                              $30\n\tPerfect condition. Unregistered & all docs/disks/packaging\n\tAn adventure where you are the unknowing heir to the throne of \n\tthe kingdom of Kyrandia.  An evil jester has murdered your parents, \n\tthe king and queen, and attempted to take control of the kingdom, \n\tonly to be thwarted by a spell cast upon him by your grandfather \n\tand three other magic users.  You must travel to find each of the \n\tmagic users to gain use of an amulet that will help you to defeat \n\tthe jester.  Beautiful graphics and a great soundtrack. (VGA,MCGA,\n\tAdlib,Sound Blaster,SoundBlaster Pro,MT-32/LAPC-1,3.5\")\n\nSpirit of Excalibur by Virgin Mastertronic      $15\n\tGood condition. All docs/disks/packaging.\n\tA fantasy game combining Role-Playing, adventure, and combat\n\tsimulation.  You are the Heir to the throne of Britain after Arthur\n\thas died.  You must re-unite the land under your rule and then\n\tdefend it against an invading army from the north. (EGA, Tandy, MCGA,\n\tVGA, Sound cards, 5.25\")\n\nLoom                                            $15\n\tPerfect condition.  Unregistered & all docs/disks/packaging.\n\tReceived a Computer Gaming World Award for Artistic achievement.\n\tAn adventure game where you play the role of a young weaver of\n\tmusical spells.  You must save your fellow weavers from oblivion\n\tby traveling through the land, casting spells, learning new spells\n\tbefriending people you meet, and foiling an evil plot.  All\n\tpoint and click -- no typing.  Every action in the game involves\n\tcasting your musical spells. (VGA,EGA,CGA,MCGA,TANDY,AdLib,CMS sound,\n\t5.25\")\n\nDark Seed\t\t\t\t\t$35\n\tPerfect condition, used very little. Unregistered & all docs/disks/\n\tpackaging.  An adventure based on the surrealistic and macabre \n\tartwork of H.R. Giger -- the inspiration for Alien, Alien III, and  \n\tPoltergeist II.  You have just bought an old victorian house\n\tat a bargain in a secluded town.  You find that there is a portal\n\tto a dark, sinister world in your house and a plot against the\n\tworld as you know it.  You must save yourself and your world from\n\ta horrible fate.  Gorgeous and Gory high resolution graphics.\n\t(VGA,Adlib,SoundBlaster,3.5\")\n\nConquest of Japan by Impressions\t\t$30\n\tBrand new, used only once. Unregistered & all docs/disks/packaging.\n\tSimulation of Samurai conquest. You play the role of a Japanese\n\tDaimyo - a Lord.  You control five cities on Japan's main island,\n\tHonshu.  Each provides money for you to buy armies, with which\n\tyou must conquer your enemy.  Battles are fought with Impressions'\n\tMiniature System.  You watch the individual Samurai, Mounted Samurai,\n\tSpearmen, Archers, and Arquebusiers. (VGA, Adlib, 3.5\" & 5.25\")\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 623, "properties": {"category": "sci.electronics", "text": "Subject: ACCESS BUS (was I2C bus)\nFrom: srgxnbs@grace.cri.nz\nOrganization: Industrial Research Ltd., New Zealand.\nNNTP-Posting-Host: grv.grace.cri.nz\nLines: 37\n\nFrom:\tMX%\"Andy.Macrae@Corp.Sun.COM\"  6-APR-1993 06:48:34.96\nTo:\tSRGXNBS\nCC:\t\nSubj:\tRe: I^2C bus and long haul serial (also Axlo\n\nReturn-Path: <Andy.Macrae@Corp.Sun.COM>\nReceived: from Sun.COM by GRV.GRACE.CRI.NZ (MX V3.1C) with SMTP; Tue, 06 Apr\n          1993 06:48:29 +1300\nReceived: from Corp.Sun.COM (lemay.Corp.Sun.COM) by Sun.COM (4.1/SMI-4.1) id\n          AA24280; Mon, 5 Apr 93 11:48:08 PDT\nReceived: from grendal.Corp.Sun.COM by Corp.Sun.COM (4.1/elliemay (corpmail1\n          inbound)) id AA25933; Mon, 5 Apr 93 11:48:07 PDT\nReceived: by grendal.Corp.Sun.COM (4.1/SMI-4.1) id AA05710; Mon, 5 Apr 93\n          11:47:28 PDT\nDate: Mon, 5 Apr 93 11:47:28 PDT\nFrom: Andy.Macrae@Corp.Sun.COM (Andrew MacRae)\nMessage-ID: <9304051847.AA05710@grendal.Corp.Sun.COM>\nTo: srgxnbs@grace.cri.nz\nSubject: Re: I^2C bus and long haul serial (also Axlo\nCC: Andy.Macrae@Corp.Sun.COM\ncontent-length: 693\n\nIn article <1pii04INNk6t@zephyr.grace.cri.nz> you write:\n> Whats required to get onto the ACCESS bus? The nice thing about the\n> i2c is that most i/o requires one 8 ... 16 pin DIL chip, ie its cheap\n> and easy. Anyone can design a bus, trouble is most buses require a\n> host of interface chips and often on-board intelligence.\n\nBruce,\n\tFor the latest information on Access.Bus call the Access.Bus\nIndustry Group at (408) 991-3517.  Also, Sun will be hosting the next\nmeeting of the group on April 19th, here in Mountain View.  For some reason\nI am not able to post to any newsgroups today, so please feel free to pass\nthis information on yourself as you see fit.\n\n\t\t\t\t\t\tAndrew MacRae\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 624, "properties": {"category": "rec.autos", "text": "From: cracker@tc.fluke.COM (Don Graham)\nSubject: Re: JEEP WRANGLER - OPINI\nOrganization: John Fluke Mfg. Co., Inc., Everett, WA\nLines: 44\n\nIn article <1qht5eINNjdf@hp-col.col.hp.com>, tvervaek@col.hp.com (Tom Vervaeke) writes:\n> I have had two Wranglers, and still have the second right now. It's a\n> 1991 Wrangler Base model with the big I-6 4.0L engine, hard top, no\n> power steering or air conditioning. Runs like a top. Has about 37k on\n> it. Has never been in the shop. I can change my own oil (nice tall\n> vehicle). I can lube it myself (11 fittings). I occasionally take it to\n> Jiffy Lube to check the differentials and do the oil change there.\n> \n> My previous Wrangler had nary a problem either. Here in Colorado there'\n> more Jeeps than BMW's, Mercedes, Volvos, and the like together! In fact\n> Jeep has been called the Colorado Car for a while. They hold their value\n> well, and are very easy to resell. Mine cost right around $14.2K new. Of\n> course, I didn't blow money on an Islander, Sahara, or Renegade which\n                   ^^^^^^^^^^\nI have a 92 Wrangler Sahara and paid $14.1 new (including the rebate).\n\n> are just Wranglers with fancy inside stuff.\n                          ^^^^^^^^^^^^^^^^^^\nAfter driving a CJ-5 for 6 years, that fancy stuff is pretty nice.\n\n> \n> The cars are primitive, ride like a dump truck, etc.. But if you live in\n> an area that gets around 140\" of snow per winter, you'd have one too.\n> They'll go anywhere (with a winch) and are easy to get parts for. The\n          ^^^^^^^^^^^\nI like my Wrangler, but when doing some serious off roading, it can't\nkeep up with a CJ-5 because of ground clearance and limited suspension\ntravel.  I do have a winch and would like to get an ARB air-locker in the\nfuture.\n\n> 4.0L engine puts out 180-190 HP and gets around 20mpg. Not bad.\n\nI love the 4.0.  \n\n> \n> Just my experience. I'm sure there are bad ones out there, but that goes\n> for any make and model.\n> \n>\n\nDon Graham\n \n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 625, "properties": {"category": "sci.crypt", "text": "From: jgfoot@minerva.cis.yale.edu (Josh A. Goldfoot)\nSubject: Re: Organized Lobbying for Cryptography\nOrganization: Yale University\nLines: 12\nDistribution: inet\nReply-To: jgfoot@minerva.cis.yale.edu\nNNTP-Posting-Host: minerva.cis.yale.edu\nX-Newsreader: TIN [version 1.1 Minerva PL9]\n\nTarl Neustaedter (tarl@coyoacan.sw.stratus.com) wrote:\n\n: It means that the EFF's public stance is complicated with issues irrelevant\n: to the encryption issue per se. There may well be people who care about\n: the encryption issue who don't care to associate themselves with the\n: network erotica issue (or may even disagree with the EFF's position).\n\nPerhaps these encryption-only types would defend the digitized porn if it\nwas posted encrypted?\n\nThese issues are not as seperable as you maintain.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 626, "properties": {"category": "soc.religion.christian", "text": "From: cpage@two-step.seas.upenn.edu (Carter C. Page)\nSubject: Re: Reason vs. Revelation\nOrganization: University of Pennsylvania\nLines: 130\n\nIn article <Apr.8.00.58.08.1993.28309@athos.rutgers.edu> trajan (Stephen McIntyre) writes:\n>In article <Apr.2.01.58.09.1993.17541@athos.rutgers.edu> writes:\n>\n>> I can only reply with what it says in 1 Timothy 3:16 :\n\n>I'm not here to discount parts of the Bible.  Rather, I'm\n>     here only to discount the notion of \"revelation.\"\n>     The author of 1 Timothy told what he thought was the\n>     truth, based on his belief in God, his faith in Jesus\n>     as the resurrected Son, and his readings of the Old\n>     Testament.  But again, what had been revealed to him\n>     was based on (at best) second-hand information, given\n>     by friends and authors who may not have given the\n>     whole truth or who may have exaggerated a bit.\n \nFirst of all, the original poster misquoted.  The reference is from 2 Tim 3:16.\nThe author was Paul, and his revelations were anything but \"(at best) \nsecond-hand\".\n\n\t\"And is came about that as [Saul] journeyed, he was approaching\n\t Damascus, and suddenly a light from heaven flashed around him; and\n\t he fell to the ground, and heard a voice saying to him, \"Saul, Saul,\n\t why are you persecuting Me?\"  And he said, \"Who art Thou, Lord?\"  And\n\t He said, \"I am Jesus whom you are persecuting, . . .\"\n\t\t(Acts 9:3-5, NAS)\n\nPaul received revelation directly from the risen Jesus!  (Pretty cool, eh?)  He\nbecame closely involved with the early church, the leaders of which were \nfollowers of Jesus throughout his ministry on earth.\n\n>Now, you may say, \"The Holy Spirit revealed these things\n>     unto him,\" and we could go into that argument, but\n>     you'd be hard-pressed to convince me that the Holy\n>     Spirit exists.  \n\nI agree.  I don't believe anyone but the Spirit would be able to convince you \nthe Spirit exists.  Please don't complain about this being circular.  I know\nit is, but really, can anything of the natural world explain the supernatural?\n(This is why revelation is necessary to the authors of the Bible.)\n\n>     Additionally, what he has written is\n>     again second-hand info if it were given by the Spirit,\n>     and still carries the chance it is not true.\n\nThe Spirit is part of God.  How much closer to the source can you get?\nThe Greek in 2 Timothy which is sometimes translated as \"inspired by God\", \nliterally means \"God-breathed\".  In other words, God spoke the actual words \ninto the scriptures.  Many theologians and Bible scholars (Dr. James Boice is \none that I can remember off-hand) get quite annoyed by the dryness and \nincompleteness of \"inspired by God\".\n\n>The only way you would be able to escape this notion of\n>     \"second-hand\" info is to have had the entire Bible\n>     written by God himself.  And to tell the truth, I've\n>     studied the Bible extensively, and have yet to \n>     hear of scholars who have put forth objective evidence\n>     showing God as the first author of this collection of\n>     books.\n\nThat's what the verse taken from 2 Timothy was all about.  The continuity of a \nbook written over a span of 1500 years by more than 40 authors from all walks \nof life is a testimony to the single authorship of God.\n\n>> And as for reason, read what it says in 1 Corinthians 1:18-31 about\n>> human wisdom. Basically it says that human wisdom is useless when\n>> compared with what God has written for our learning.\n\n>If you knew of Jesus as well as you know the Bible, you'd\n>     realize he reasoned out the law and the prophets for \n>     the common man.  \n\nWhat source to you claim to have discovered which has information of superior\nhistoricity to the Bible?  Certainly not Josephus' writings, or the writings \nof the Gnostics which were third century, at the earliest.\n\n>     And though some claim Jesus was \n>     he was human, with all of the human wisdom the\n>     apostle Paul set out to criticize.  Yet, would you not\n>     embrace the idea that Jesus was wise?\n\nJesus was fully God as well.  That's why I'd assert that he is wise.\n\n>> I realise that you may not accept the authority of the Bible. This is\n>> unfortunate to say the least, because there is no other way of learning\n>> about God and Christ and God's purpose with the earth than reading the\n>> Bible and searching out its truth for yourself.\n>\n>For your information, I was raised without any knowledge of\n>     God.  By the time some of the faithful came to show me\n>     the Word and share with me its truth, I was living\n>     happily and morally without acknowledging the existence\n>     of a supreme being.  I have, though, read the Bible\n>     several times over in its entirety and have studied it\n>     thoroughly.  It contains truth in it, and I consider\n>     Jesus to be one of the most moral of human beings to\n>     have lived (in fact, I darn-near idolize the guy.)  But\n>     there's no rational reason for me to except God's\n>     existence.\n\nPlease rethink this last paragraph.  If there is no God, which seems to be your\ncurrent belief, then Jesus was either a liar or a complete nut because not\nonly did he assert that God exists, but he claimed to be God himself!  (regards\nto C.S. Lewis)  How then could you have the least bit of respect for Jesus?\n\tIn conclusion, be careful about logically unfounded hypotheses based\non gut feelings about the text and other scholars' unsubstantiated claims.  \nThe Bible pleads that we take it in its entirety or throw the whole book out.\n\tAbout your reading of the Bible, not only does the Spirit inspire the\nwriters, but he guides the reader as well.  We cannot understand it in the \nleast without the Spirit's guidance:\n\n\t\"For to us God revealed them through the Spirit; for the Spirit \n\tsearches all things, even the depths of God.\"  (1 Cor 2:10, NAS)\n \nPeace and may God guide us in wisdom.\n\n+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=\nCarter C. Page           | Of happiness the crown and chiefest part is wisdom,\nA Carpenter's Apprentice | and to hold God in awe.  This is the law that,\ncpage@seas.upenn.edu     | seeing the stricken heart of pride brought down,\n                         | we learn when we are old.  -Adapted from Sophocles\n+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=+-=-+-=+-=-+=-+-=-+-=-+=-+-=\n\n[Other theologians get quite annoyed at the misleadingess of\n\"God-breathed.\"  It's true that the Greek word has as its roots \"God\"\nand \"breath\".  However etymology doesn't necessarily tell you what a\nword means.  Otherwise, \"goodbye\" would be a religious expression\n(since it comes from \"God be with ye\").  You have to look at how the\nword was actually used.  In this case the word is used for wisdom or\ndreams that come from God.  But \"God-breathed\" is an overtranslation.\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 627, "properties": {"category": "rec.sport.baseball", "text": "From: timlin@spot.Colorado.EDU (Michael Timlin)\nSubject: Re: Expanded NL Strike Zone? (Was Re: A surfeit of offense?)\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 11\n\njrogoff@scott.skidmore.edu (jay rogoff) writes:\n\n>It was my impression watching the Mets & Rockies that umpires were\n>calling strikes above the belt, too, but not as far up as the letters.\n>It would be nice if this were the case.\n\nThe umps saw the weekend boxscores, too.  They knew the pitchers needed\nsome help or they would be watching the sunrise. :)\n\nMike Timlin\ntimlin@spot.colorado.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 628, "properties": {"category": "rec.sport.hockey", "text": "From: cr292@cleveland.Freenet.Edu (Jim Schenk)\nSubject: Re: the hawks WILL return to the finals!!!!!\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 9\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nThe Hawks won the Norris div, and sealed their fate.  It's bad luck\nto win the Norris.  The Hawks will sweep the Blues in their dreams but will\nlose in 6 in reality.  I predict that in the 6 game with the Blues Belfour\nwill go down on his knees 7000 time s and will spend the rest of the time \nlooking behind him self.  Butcher will pound Roenick and The warthawks have\nno one tough enough to prevent it\n\nBye Bye Wart HAwks\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 629, "properties": {"category": "misc.forsale", "text": "From: huawang@eng.umd.edu (Wang Hua)\nSubject: Canon camera system for sale\nOrganization: Project GLUE, University of Maryland, College Park\nLines: 16\nDistribution: world\nNNTP-Posting-Host: descartes.src.umd.edu\n\nI have the following Canon items for sale, the condition is listed\nas numerical. 10 indicates like new condition.\n\nCanon T70 body (Multiprogram AE, Dual metering system,\n                build in motor drive etc.)   9-\nCanon FD 50mm/F1.8   10\nCanon FD 85mm/F1.8 with Canon BT-52 hood  8 (excellent portrait lens)\nOsawa 28-50mm/F3.5-4.5 zoom (made in Japan) with soft case   10\nSoligor 80-200mm/F4.5 MACRO (1:4) zoom (Japan) with hard case   10\nVivitar SMS30D dedicated thyristor flash in box with manual  10\n\nAsking $350/obo. S&H not included.\n\nIf interested, e-mail huawang@src.umd.edu\n               or call (301) 405 2947\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 630, "properties": {"category": "sci.crypt", "text": "From: ebrandt@jarthur.claremont.edu (Eli Brandt)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 22\n\nIn article <1993Apr20.032623.3046@eff.org> kadie@eff.org (Carl M. Kadie) writes:\n>Clipper might be a good way to cover the use of another layer of\n>encryption.\n\nCould somebody provide an overview of the proposed systems using the\nchip?  (Ought to see if ATT has a spec sheet)  Skipjack sounds like a\nnormal digital encryption algorithm, so the data path will have to be\n\tvoice --> digitize --> compress --> encrypt \nCompression will be necessary to fit the data on the wire, unless\nthey want to wait for ISDN (that we should be so lucky...).  Feeding\npre-encrypted data into the compressor will cause it to chuckle at\nyou; you'd have to tap into the guts of the phone and hack either\nthe compressed data stream, or selected parts of the output stream\nbefore it hits the modem.  Unless you want to pay for two fast\nmodems on top of the encryption, and just plug the box in between\nyour phone and the wall.\n\n>- Carl\n\n\t PGP 2 key by finger or e-mail\n   Eli   ebrandt@jarthur.claremont.edu\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 631, "properties": {"category": "comp.sys.mac.hardware", "text": "From: wirehead@cheshire.oxy.edu (David J. Harr)\nSubject: Any Nanao 750i compatible Mac video cards?\nSummary: I can get ehe monitor, but can I drive it?\nKeywords: 21\" monitor, 24 bit video, Macintosh\nOrganization: The programmers who say NEE!\nLines: 15\n\nDoes anyone know if a Nanao 750i is compatible with any\npopular Mac video cards? I have an oppurtunity to get a brand\nnew one, cheap, and I am very tempted, but it will be a waste\nof time if I can't drive it using a standard video card.\n\nWhile I'm on the subject, what's everybody's reccomendations for\na 21\" color monitor. I've heard good things about the NEC 6FG, and\nof course, there is always the reliable old Macintosh 21\" display,\nbut what are YOUR experiences.\n\nDavid J Harr\nCyberpunk Software.\n\n\"My definition of happiness is being famous for your financial\nability to indulge in every form of excess.\" -- Calvin\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 632, "properties": {"category": "sci.med", "text": "From: turpin@cs.utexas.edu (Russell Turpin)\nSubject: Re: Science and Methodology\nOrganization: CS Dept, University of Texas at Austin\nLines: 67\nDistribution: inet\nNNTP-Posting-Host: im4u.cs.utexas.edu\n\n-*----\nIn article <C5I2Bo.CG9@news.Hawaii.Edu> lady@uhunix.uhcc.Hawaii.Edu (Lee Lady) writes:\n> The difference between a Nobel Prize level scientist and a mediocre\n> scientist does not lie in the quality of their empirical methodology.  \n> It depends on the quality of their THINKING.  \n>\n> It really bothers me that so many graduate students seem to believe that\n> they are doing science merely because they are conducting empirical\n> studies. ...\n>\n> And I'm especially offended by Russell Turpin's repeated assertion that\n> science amounts to nothing more than avoiding mistakes.  Simply avoiding\n> mistakes doesn't get you anywhere.  \n\nI think that Lee Lady and I are talking at cross purposes.\nAbove, Lady seems concerned with the contrast between great\nscience that makes big advances in our knowledge and mediocre\nscience that makes smaller steps.  In most of this thread, I have\nbeen concerned with the difference between what is science and\nwhat is not. \n\nLee Lady is correct when she asserts that the difference between\nEinstein and the average post-doc physicist is the quality of\ntheir thought.  But what is the difference between Einstein and a\ngenius who would be a great scientist but whose great thoughts\nare scientifically screwy?  (Some would give Velikovsky or\nKorzybski as examples.  If you don't like these, choose your\nown.)  I say it is the same as the difference between the mediocre\nphysicist and the mediocre proponent of qi.  Both Einstein and\nthe mediocre physcists have disciplined their work from the\ncumulative knowledge of how previous researchers went wrong.\nBoth Velikovsky and the mediocre proponent of qi have failed to\ndo this.  \n\nLet me approach this from a second direction.  When one is asked\nto review a paper for a journal or conference, there are many\nkinds of criticism that one can make.  One kind of criticism is\nthat the work is just wrong or misinformed.  Another kind of\ncriticism is that the work, while technically correct, is either\nnot important or not interesting.  The first difference is the\none that I have been pointing to.  The second difference is the\none that Lee Lady seems to be discussing. \n\n> If good empirical research were done and showed that there is some merit\n> to homeopathic remedies, this would certainly be valuable information.\n> But it would still not mean that homeopathy qualifies as a science.  This\n> is where you and I disagree with Turpin.  \n\nI have often pointed out that for homeopathy to be considered \nscientific, what is needed is a test of its theoretical claims,\nnot just of some of its proposed remedies.  Similarly, I suspect\nthat traditional Chinese medicine has many remedies that work;\nwhat it lacks (as one example) is any experiment that tests the\npresence of qi.\n\n> ... In order to have science, one must have a theoretical\n> structure that makes sense, not a mere collection of empirically\n> validated random hypotheses.\n\nCertainly a \"theoretical structure that makes sense\" is the goal.\nIn areas where we do not yet have this, I see nothing wrong with\nforming and testing smaller hypotheses.  Let's face it: we cannot\nalways wait for an Einstein to come along and make everything\nclear for us.  Sometimes those of us who are not Einstein have to\nplug along and make small amounts of progress as best we can. \n\nRussell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.031+0000", "event": "documents", "entityId": 633, "properties": {"category": "talk.politics.mideast", "text": "From: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nSubject: Re: Israeli Expansion-lust\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nOrganization: Columbia University\nLines: 57\n\n\nIn article <2528@spam.maths.adelaide.edu.au> jaskew@spam.maths.adelaide.edu.au (Joseph Askew) writes:\n>In article <1993Apr13.002118.24102@das.harvard.edu> adam@endor.uucp (Adam Shostack) writes:\n>>In article <1993Apr12.184034.1370@bnr.ca> zbib@bnr.ca writes:\n>\n>>>IMHO, it does not really matter who started any individual battle within\n>>>the Arabs/Isreal war context. The real question is who/what  started the\n>>>War. Does anyone have any doubts it was the creation of Israel on Arab\n>>>land ?\n>\n>>       Huh?  A war was started when several armies invaded Israel,\n>>vowing to drive the Jews into the sea.  Most Jews wanted to live in\n>>peace, and the Arabs who stayed in Israel were granted citizenship.\n>\n>It depends entirely on how you define 'war'. The actual fighting largely\n>predates the Arab invasions - after all Deir Yassin happened in midApril\n>well before the Arab invasion. As I have said elsewhere Lt Col Lorch has\n>said that Hagana forces were fighting well before the Arabs invaded as in\n>months before. As for Jews wanting to live in peace that to is entirely\n>arguable. I think it is easy enough to show that the Labour party leadership\n>had no such intention at all. As for the Arabs who 'stayed' don't you mean\n>those who were not expelled? Even some of those who did 'stay' were not\n>granted citizenship but expelled after the fighting had stopped anyway.\n>\n>Joseph Askew\n>\n\nHow do you define war?  Do seiges and constant attacks on villiages\ncount as acts of war, or is that only when the Jews do them?\nJanuary, 1948: Arab Liberation Army attacks Kfar Szold\n               1000 men attack Kfar Etzion, 14 miles south of Jerusalem,\n                    after cutting off the supply lines to it.\nAttacks on Yehiam (Western Galilee) and kibbutz Tirat Tzvi.\nBy Mid-March, The Jewish settlements in the Negev had been cut off from\n      land links with the rest of the Jewish population.\n         The Etzion group of villiages, near Hebron, had been cut off,\n            while 42 members of a convoy trying to supply Yehiam were\n            slaughtered, cutting off the villiage.\nJerusalem was under seige, being cut off from its supply route from\n     Tel Aviv (the bombed out supply trucks have been left on the side\n     of that road to this day in memoriam).  By this time, 1200 Jews \n     had been killed.\n\nOf course, this isn't war, since it's only the Arabs attacking.\nJust like last week when the Fatah launched Katyusha rockets\nagainst Northern israel.  Where does uprising end and war begin?\nWill it still be 'Intifadah' when the PLO brings in tanks?\n\n\n>-- \n>Joseph Askew, Gauche and Proud  In the autumn stillness, see the Pleiades,\n>jaskew@spam.maths.adelaide.edu  Remote in thorny deserts, fell the grief.\n>Disclaimer? Sue, see if I care  North of our tents, the sky must end somwhere,\n>Actually, I rather like Brenda  Beyond the pale, the River murmurs on.\n\n\nAmir\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 634, "properties": {"category": "alt.atheism", "text": "From: \"Robert Knowles\" <p00261@psilink.com>\nSubject: Re: An Anecdote about Islam\nIn-Reply-To: <1pqfic$9s2@fido.asd.sgi.com>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Kupajava, East of Krakatoa\nX-Mailer: PSILink-DOS (3.3)\nLines: 32\n\n>DATE:   5 Apr 1993 23:32:28 GMT\n>FROM:   Jon Livesey <livesey@solntze.wpd.sgi.com>\n>\n>In article <114127@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n>|> \n>|> I don't understand the point of this petty sarcasm. It is a basic \n>|> principle of Islam that if one is born muslim or one says \"I testify\n>|> that there is no god but God and Mohammad is a prophet of God\" that,\n>|> so long as one does not explicitly reject Islam by word then one _must_\n>|> be considered muslim by all muslims. So the phenomenon you're attempting\n>|> to make into a general rule or psychology is a direct odds with basic\n>|> Islamic principles. If you want to attack Islam you could do better than\n>|> than to argue against something that Islam explicitly contradicts.\n>\n>Then Mr Mozumder is incorrect when he says that when committing\n>bad acts, people temporarily become atheists?\n>\n>jon.\n\nOf course B.M. is not incorrect.  He is defending Islam.  When defending\nIslam against infidels you can say anything and no one will dare criticize\nyou.  But when an atheist uses the same argument he is using \"petty sarcasm\".  So\nB.M. can have his \"temporary atheists\" whenever he needs them and all the\n\"temporary atheists\" can later say that they were always good Muslims because\nthey never explicitly rejected Islam.  \n\nTemporary atheism, temporary Islam, temporary marriage.  None of it sticks.  \nA teflon religion.  How convenient.  And so easy to clean up after.  But \nthen, what would you expect from a bunch of people who can't even agree on \nthe phases of the moon?\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 635, "properties": {"category": "comp.windows.x", "text": "From: vgalvez@itesocci.gdl.ITeso.MX (Virginia Galvez)\nSubject: (none)\nOrganization: The Internet\nLines: 7\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: XPERT@Athena.MIT.EDU\n\nI am working on a problem of scheduling classroom, and I will like to know if\nyou have some software, papers or articles about it. If you have something\nrelate it,  please let me know.\n\n\t\tthanks\n\n\t\tLorenza Illanes\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 636, "properties": {"category": "rec.autos", "text": "From: klf@druwa.ATT.COM (FranklinKL)\nSubject: Re: Dumbest automotive concepts of all time\nSummary: Continental the first - Don't think so!\nDistribution: na\nLines: 30\n\nIn article <C5HHGM.1rM@constellation.ecn.uoknor.edu>, callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n| In article <1993Apr13.215605.26252@slcs.slb.com> dcd@se.houston.geoquest.slb.com (Dan Day) writes:\n| >In article <1q4466INNb85@ctron-news.ctron.com> smith@ctron.com writes:\n| >>\n| >>It's a big aftermarket business.  Almost no cars come from the factory with\n| >>vynal any more, and any fake \"convertible\" job _definitely_ came from some\n| >>aftermarket place.  What amazes me is how much people are willing to pay for\n| >>bad taste\n| >\n| >How about those really ugly fake wheel compartments stuck onto the\n| >trunk or side (or both sides!) of some tacky luxury cars?\n| \n| Some of 'em aren't fake (if you're talking about the Continental kit,\n| named after the Lincoln Continental, the first car to sport one). I\n| personally would _love_ to have a '56 T-Bird with a Continental kit\n| (and the supercharged V-8 :-); that is one of the most beautiful\n| cars ever built, IMHO.\n| \n| \t\t\t\tJames\n| \n\nThe Continental may have been the first \"modern era\" auto to mount the\nspare on the rear of the car but it was hardly the first car to sport one.\nVarious mounting techniques for rear mounting the spare were quite common\nin early automobiles, both US and Foreign.\n--\nKen Franklin \tThey say there's a heaven for people who wait\nAMA     \tAnd some say it's better but I say it ain't\nGWRRA           I'd rather laugh with the sinners than cry with the saints\nDoD #0126       The sinners are lots more fun, Y'know only the good die young\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 637, "properties": {"category": "sci.electronics", "text": "From: mdgoodma@apgea.army.mil (Malcolm D. Goodman <mdgoodma>)\nSubject: Sale -- Fiber Optic Modems, RF Modem, etc -- Best Offer\nDistribution: na\nOrganization: APG-Edgewood, MD, USA\nLines: 26\n\n\nPLease take these and use them.  Take advantage of me... I really\ndon't know what they are worth.\n\nQty 2  -  Canoga Perkins Fiber Optic Modems, Model 2250, RS-422\n          Interface, appear new.  I have powered up but that's all,\n          I have not used them and I cannot tell you whether they\n          work or not.    \n                                 Make Offer.........\n\nQty 1 -   ISC Datacom RF Modem, Model 1056-TX1-RX5-SM-120, Interface\n          RS-449, Internal Fan, powers up fine but otherwise condition\n          unknown, Phone # for the company is 408-747-0300.\n\n                                 Make Offer ............\n\nQty 1 -   Motorola UDS  212 A/D  Modem, RS-232 interface appears to work\n          but I have not and cannot check it.  \n\n                                 Make Offer  .............\n\nThanks and please buy this stuff or it goes out the door\n\nMack\nmdgoodma@cbda8.apgea.army.mil\n.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 638, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hayes@ug.cs.dal.ca (Kevin B. Hayes)\nSubject: Re: changing port buffer size in ZTerm\nNntp-Posting-Host: ug.cs.dal.ca\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nLines: 20\n\nIn <19930419.060948.343@almaden.ibm.com> petrack@vnet.IBM.COM writes:\n\n>Some kind soul told me that I could change the serial port buffer size\n>of Zterm via ResEdit. He did not tell me HOW I could change it using\n>ResEdit, and I have lost his e-mail address.\n\n>Could he or any one else please tell me what to do?\n\n>I assume that the relevant resource is zSet, but I do not know, and\n[chop]\n\nCould you please post it to the net too please, as I, and I'm sure many others\nwould like to know.  Thanks!\nKev.\n\n-- \nKevin Hayes                    |      \"My opinions do necessarily \nDalhousie University           |       reflect the opinions of\nHalifax, Nova Scotia, Canada   |       myself; so sue me!\"\nhayes@ug.cs.dal.ca             |\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 639, "properties": {"category": "sci.space", "text": "From: jkatz@access.digex.com (Jordan Katz)\nSubject: U.S. Space Foundation Speech\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 94\nDistribution: usa\nNNTP-Posting-Host: access.digex.net\n\n\n                          Speech by Pete Worden\n                                    \n          Delivered Before the U.S. Space Foundation Conference\n                                    \n                       Colorado Springs, Colorado\n                                    \n                             April 15, 1993\n\n\n     What a delightful opportunity to cause some trouble.  For\nproviding me this forum I would sincerely like to thank the U.S.\nSpace Foundation.  My topic today is the Single Stage Rocket\nTechnology rocket or SSRT.  By I intend to speak of more.  How to\nlower the cost and make rapid progress.  SSRT is to my mind --\nand I hope to convince you -- the erupting a new rallying cry for\nour generation in space -- Faster, Cheaper, and Better.\n\n     Faster, Cheaper, Better and SSRT represent the passing of a\ntorch from one technical generation to another.  It is a new\nthing to be sure -- but it is also a relearning of old things\nfrom past masters.\n\n     When we rolled out the SSRT baby two weeks ago, so called\nexperts told us it violates the laws of physics -- it made no\nsense.  For example, Dr. Eberhart Rachtin - former president of\nthe Aerospace Corp., said of SSRT in the L.A. Times that it,\n\"defies the best principles of launching payloads into space.\" \nWell Dr. Rachtin -- you've made us mad!  What are these\nprinciples that SSRT defies?\n\n     Well I'll tell you.  It violates the principle that you need\na giant program office to build space hardware.  It violates the\n\"fact\" that it takes 20 years to build something new.  And it\nviolates the truism that you cant do anything significant for\nless than many billions of dollars.\n\n     It took some of the last generation's experts to teach us\nsome new/old lessons.  Werhner Von Braun's first rocket was not a\nSaturn V.  General Schriever's ICBM's didn't take ten years to\ndemonstrate.  And the X-1 airplane didn't cost $1 billion.\n\n     It took one of the great engineers of the 1950's to remind\nus of these truths -- Max Hunter.  Max, to remind you, was a\nsenior engineer in the Thor IRBM program, and old faster, better,\ncheaper success story.  Max has been persistent in a vision of a\nsingle stage reusable space launch system since the 1960's. \nBecause he knew it had to be done in affordable steps - Build a\nlittle, Test a little.\n\n     Next he persuaded us to do a technology demonstration.  We\ndidn't solicit a bunch of requirements -- they'd just change\nevery few years anyway.  [ not included in the speech -- The\nALS/NLS has such ephemeral requirements that it would better\nknown as \"Shape Shifter\" than \"Space Lifter.\"  We didn't spend a\nlot money -- this X-Rocket only cost $60 million.  When's the\nlast time we even built a new airplane for that?  And it didn't\ntake a lot of time to build -- McDonnell Douglas completed it in\n18 months.  Finally, the government program office consisted of\none very over-worked Air Force Major -- motivated in part by the\nthreat that he'd get to ride on it in a strapped-on lawn chair if\nit ran over cost or schedule.\n\n     As I described what SSRT is -- and isn't keep in mind its\nonly a first step.  There are several more steps -- and steps\nthat can easily fail -- before the U.S. can field an SSTO.  But\neach step should follow the same principles -- a small management\nteam -- a few years technology demonstration -- and a modest\nbudget.\n\n     Let me show a few details on SSRT and how it might evolve:\n(See charts)\n\n     I'm embarrassed when my generation is compared with the last\ngeneration -- the giants of the last great space era, the 1950's\nand 1960's.  They went to the moon - we built a telescope that\ncan't see straight.  They soft-landed on Mars - the least we\ncould do is soft-land on Earth!\n\n     But we do have an answer.  We can follow their build a\nlittle, test a little philosophy to produce a truly affordable\nand routine access to space.  I know there are nay sayers among\nyou -- those who say SSRT is a stunt.  It needs more thermal\nprotection, the engines are wrong, it would be better to land\nhorizontally, etc, etc.\n\n     I say to you -- we'll see you at White Sands in June.  You\nbring your view-graphs, and I'll bring my rocketship.  If we do\nwhat we say we can do, then you let us do the next step.  [ not\nincluded in the speech:  If we fail -- you still have your\nprogram offices, staff summary sheets, requirement analyses, and\ndecade long programs.]\n\n     I bet on my generation and Max Hunter's idea -- Any Takers?\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 640, "properties": {"category": "talk.politics.mideast", "text": "From: cosmo@pro-angmar.alfalfa.com (Frank Benson)\nSubject: Argic\nOrganization: UTexas Mail-to-News Gateway\nLines: 7\nNNTP-Posting-Host: cs.utexas.edu\n\nYou are brain damaged. That hate of++0B1FATransfer cancelledf yours courses\nthrough your sick body like poison. It's just a matter of time. Your fate\nis sealed.\n---\nProLine:  cosmo@pro-angmar\nInternet: cosmo@pro-angmar.alfalfa.com\nUUCP:     uunet!bu.edu!alphalpha!pro-angmar!cosmo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 641, "properties": {"category": "sci.electronics", "text": "From: ptorre@hardy.u.washington.edu (Phil Torre)\nSubject: Re: Suggestions  on Audio relays ???\nOrganization: University of Washington, Seattle\nLines: 18\nNNTP-Posting-Host: hardy.u.washington.edu\n\n>In article <C5qsBF.IEK@ms.uky.edu> billq@ms.uky.edu (Billy Quinn) writes:\n>>I built a little project using the radio shack 5vdc relays to switch\n>>audio.  I got pretty bad 'clicks' when the thing switched. \n>\n>>\tIs there a good relay/relay circuit that I can use for switching\n>>audio, so that there will be *NO* noise of any kind on the audio lines.\n>\nI missed the first part of this thread; are you switching line level or\nspeaker level audio?\nIf line level, there's a single chip 4x1 *stereo* audio switch available\nthat switches 4 two-channel inputs into 1 two-channel output, and also\nhas a mute function, all controllable with ttl inputs.  LM1037, I think?\n\nIf speaker level, never mind.  :(\n\nPhil Torre (ptorre@u.washington.edu)\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 642, "properties": {"category": "comp.windows.x", "text": "From: rgasch@nl.oracle.com (Robert Gasch)\nSubject: Overriding default WM Behaviour\nOrganization: Oracle Europe\nLines: 48\nX-Newsreader: TIN [version 1.1 PL8]\n\n\nI posted this about tow weeks ago but never saw it make it (Then again\nI've had some problems with the mail system). Apologies if this appears\nfor the second time:\n\nUsually when I start up an application, I first get the window outline\non my display. I then have to click on the mouse button to actually\nplace the window on the screen. Yet when I specify the -geometry \noption the window appears right away, the properties specified by\nthe -geometry argument. The question now is:\n\nHow can I override the intermediary step of the user having to specify\nwindow position with a mouseclick? I've tried explicitly setting window\nsize and position, but that did alter the normal program behaviour.\n\nThanks for any hints\n---> Robert\n\nPS: I'm working in plain X, using tvtwm.\n\n\n\n******************************************************************************\n* Robert Gasch        * Der erste Mai ist der Tag an dem die Stadt ins      *\n* Oracle Engineering   * Freihe tritt und den staatlichen Monopolanspruch    *\n* De Meern, NL        * auf Gewalt in Frage stellt                          *\n* rgasch@nl.oracle.com *                           - Einstuerzende Neubauten *\n******************************************************************************\n\n\n----------------------- Headers ------------------------\n>From uupsi7!expo.lcs.mit.edu!xpert-mailer Thu Apr 22 17:24:28 1993 remote from aolsys\nReceived: from uupsi7 by aolsys.aol.com id aa19841; Thu, 22 Apr 93 17:10:35 EDT\nReceived: from srmftp.psi.com by uu7.psi.com (5.65b/4.0.071791-PSI/PSINet) via SMTP;\n        id AA02784 for ; Thu, 22 Apr 93 12:04:36 -0400\nReceived: from expo.lcs.mit.edu by srmftp.psi.com (4.1/3.1.072291-PSI/PSINet)\n id AA17104; Thu, 22 Apr 93 10:19:31 EDT\nReceived: by expo.lcs.mit.edu; Thu, 22 Apr 93 06:57:38 -0400\nReceived: from ENTERPOOP.MIT.EDU by expo.lcs.mit.edu; Thu, 22 Apr 93 06:57:37 -0400\nReceived: by enterpoop.MIT.EDU (5.57/4.7) id AA27271; Thu, 22 Apr 93 06:57:14 -0400\nReceived: from USENET by enterpoop with netnewsfor xpert@expo.lcs.mit.edu (xpert@expo.lcs.mit.edu);contact usenet@enterpoop if you have questions.\nTo: xpert@expo.lcs.mit.edu\nDate: 22 Apr 93 08:09:35 GMT\nFrom: rgasch@nl.oracle.com (Robert Gasch)\nMessage-Id: <3873@nlsun1.oracle.nl>\nOrganization: Oracle Europe\nSubject: Overriding Default Behaviour\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 643, "properties": {"category": "comp.windows.x", "text": "From: clay@cs.scarolina.edu (F Rodney Clay)\nSubject: Slider Position of Vertical Scrollbars\nSummary: Slider Position of a List Widget's Vertical Scrollbar\nOrganization: USC  Department of Computer Science\nDistribution: comp\nLines: 10\n\nI need help positioning the slider of a List widget's horizontal scrollbar.  I am displaying the full\npath of a selected file in a list widget.  The horizontal's slider defaults to the left side of the\nlist widget; however, I need the slider on the right side.  This is so the user can SEE the file name\nthey selected.  I know it's possible, because when files are displayed in a file selection dialog box,\nthe slider is on the right side.\n\nThanking any and all who can help in advance,\nRodney F. Clay\n\nclay@cs.scarolina.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 644, "properties": {"category": "soc.religion.christian", "text": "From: xx155@yfn.ysu.edu (Family Magazine Sysops)\nSubject: NATIONAL DAY Of PRAYER\nReply-To: xx155@yfn.ysu.edu (Family Magazine Sysops)\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 54\n\n\n                      The  N A T I O N A L  D A Y\n                                  o f\n                            P  R  A  Y  E  R\n\n                           6  M A Y  1 9 9 3\n\n           IMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM;\n           :                                                :\n           :           JOIN AMERICA IN PRAYER TO:           :\n           :                                                :\n           :     * Acknowledge our dependence upon God;     :\n           :                                                :\n           :     * Give thanks for His many blessings;      :\n           :                                                :\n           :     * Ask God to guide our leaders and to      :\n           :       bring healing, reconciliation and whole- :\n           :       ness to our nation and all its people.   :\n           :                                                :\n           HMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM<\n\n                      OUR FOUNDING FATHERS SAID...\n\n     George Washington:  \"I now make it my earnest prayer that God...\n         (A.D. 1783)     would be pleased to dispose us all to do\n                         justice, to love mercy, and to demean\n     ourselves with charity and humility, and a pacific temper of mind,\n     which were characteristics of the Divine Author of our blessed\n     Religion, and without an humble imitation of Whose example in\n     these things, we can never hope to be a happy nation.\"\n\n\n     John Adams:  \"It must be felt that there is no national security\n     (A.D. 1853)  but in the nation's humble, acknowledged dependence\n                  upon God and His overruling providence.\"\n\n\n     Abraham Lincoln:   \"It is the duty of nations, as well as of men,\n       (A.D. 1863)      to own their dependence upon the overruling\n                        power of God, to confess their sins and\n     transgressions...and to recognize the sublime truth, announced in\n     the Holy Scriptures and proven by all history, that those nations\n     only are blessed whose God is the Lord...\"\n\n\n     NOTE:  You can join with people in your area in observing the\n            NATIONAL DAY Of PRAYER.  To learn who is affiliated with\n            the Concerts Of Prayer group in your area, contact:\n\n                     Mr. Barry Garred, Coordinator\n                     P.O. Box 6637\n                     Springdale, ARkansas 72766\n                     VOICE:  (501) 756-8421\n                     FAX:  (501) 756-0131\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 645, "properties": {"category": "rec.sport.baseball", "text": "From: steph@pegasus.cs.uiuc.edu (Dale Stephenson)\nSubject: Re: Giants' GM Quinn *is* a genius!\nArticle-I.D.: pegasus.steph.734129736\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 17\n\nIn <18979@autodesk.COM> trs@Autodesk.COM (Tom Schroeder) writes:\n\n>nlu@Xenon.Stanford.EDU (Nelson Lu) writes:\n\n>> During the same time span, the Braves developed John Smoltz, Tom Glavine,\n>> Steve Avery, David Justice, Ron Gant, and Jeff Blauser, among others.\n>> \n>  Avery, I believe, came from the Phillies.  Jeff Blauser?!?\n\nAvery was the #2 overall pick by the Braves, behind Mark Lewis (I think) in\n1988.  John Smoltz came over to the Braves from the Tigers, but was developed\nby the Braves.  Jeff Blauser isn't a bad player.\n-- \nDale J. Stephenson |*| (steph@cs.uiuc.edu) |*| Baseball fanatic\n\n  \"It is considered good to look wise, especially when not \n   overburdened with information\" -- J. Golden Kimball\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 646, "properties": {"category": "talk.politics.guns", "text": "From: ipser@solomon.technet.sg (Ed Ipser)\nSubject: Re: Waco Shootout Highlights Total Irresponsibility of the\nNntp-Posting-Host: solomon.technet.sg\nOrganization: TECHNET, Singapore\nLines: 20\n\nIn article <1993Apr5.213034.10706@gtephx.UUCP> forda@gtephx.UUCP (Andrew Ford @ AGCS, Phoenix, Arizona) writes:\n>In article <1pdmgaINN95f@kitty.ksu.ksu.edu>, strat@kitty.ksu.ksu.edu (Steve Davis) writes:\n>> cdt@sw.stratus.com (C. D. Tavares) writes:\n>> \n>> >> If she *needs* a gun right now, why doesn't she already have one?  \n>> \n>> >You are the victim of a cut-and-run purse-snatcher.  He makes off \n>> >with your purse, containing your ID, your house keys... and your gun.\n>> \n>> So you're saying she can RUN RIGHT INTO A STORE, BUY A GUN, RUN BACK\n>> OUTSIDE AND SHOOT THE GUY IN THE BACK AS HE RUNS OFF?  This doesn't\n>\n>No, he's saying she just lost her gun and she wants to buy another\n>so that as she sits home alone tonight, she's not a sitting duck to\n>any bastard who wants to break in.\n\nIn fact, the situation is more grim that that, even. The purse snatcher\nnow has her home address. If the woman lives alone, she is in great\npersonal danger.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 647, "properties": {"category": "rec.autos", "text": "From: jimf@centerline.com (Jim Frost)\nSubject: Re: Best Radar Detector - VALENTINE-1?\nOrganization: CenterLine Software, Inc.\nLines: 26\nNNTP-Posting-Host: 140.239.3.202\n\ntroy@sequent.com (Troy Wecker) writes:\n>There is no question that the Valentine-1 ($299) has good range but\n>not significant enough to be 2 or 3 times as expensive as some of the\n>others.\n\nThe big win with the V-1 is not its range but rather its\ndirectionality and multiple-transmitter tracking (which you later\ncalled a \"gimmick\" -- a conclusion I disagree with).  Since the\ndetector incorporates multiple receivers it's not surprising that it's\nsignificantly more expensive.  While the added capabilities may not\nhelp you, there is added value for those of us who live in areas where\nthere are a lot of false-alarms.\n\n>Summary: Valentine-1 way too expensive and not a significantly better\n>performer!\n\nI certainly call it \"interesting\" but I'm another person who thinks\nthat the added value might be coming at too high a cost.  Very\nadequate radar detectors are available for less than half the cost and\none of them has suited me rather well.  If I did more long-distance\ntravelling in areas I'm not familiar with I'd probably consider\ngetting the V-1 because it's additional information would be useful in\ndiscriminating false alarms.\n\njim frost\njimf@centerline.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 648, "properties": {"category": "comp.graphics", "text": "From: neideck@nestvx.enet.dec.com (Burkhard Neidecker-Lutz)\nSubject: Re: Rumours about 3DO ???\nOrganization: CEC Karlsruhe\nLines: 17\nNNTP-Posting-Host: NESTVX\n\nIn article <1993Apr15.164940.11632@mercury.unt.edu> Sean McMains <mcmains@unt.edu> writes:\n>Wow! A 68070! I'd be very interested to get my hands on one of these,\n>especially considering the fact that Motorola has not yet released the\n>68060, which is supposedly the next in the 680x0 lineup. 8-D\n\nThe 68070 is a variation of the 68010 that was done a few years ago by\nthe European partners of Motorola. It has some integrated I/O controllers\nand half a MMU, but otherwise it's a 68010. Think of it the same as\nthe 8086 and 80186 were.\n\n\t\tBurkhard Neidecker-Lutz\n\nDistributed Multimedia Group, CEC Karlsruhe          EERP Portfolio Manager\nSoftware Motion Pictures & BERKOM II Project         Multimedia Base Technology\nDigital Equipment Corporation\nneidecker@nestvx.enet.dec.com\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 649, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Is Keith as ignorant as he seems?\nOrganization: California Institute of Technology, Pasadena\nLines: 16\nNNTP-Posting-Host: lloyd.caltech.edu\n\nmam@mouse.cmhnet.org (Mike McAngus) writes:\n\n>>>No, everything wouldn't be OK, but it would be a start.\n>>Now wait, if the religious organizations were no longer tax-exempt, what\n>>other beef could you have?  They would then have as much right to lobby\n>>as would any other group.\n>You asked \"would everything be okay\".  I answered no.  Everything \n>encompasses more than just the tax-exempt status of religious \n>organizations.\n\nWell, if everything wouldn't be okay, then tell us what it is that\nwouldn't be okay.   That is, if religions were no longer tax-exempt, then\nwhat would be wrong with their lobbying or otherwise attempting to\ninfluence politics?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 650, "properties": {"category": "soc.religion.christian", "text": "From: news@cbnewsk.att.com\nSubject: Re: What WAS the immaculate conception\nOrganization: AT&T Bell Labs\nLines: 30\n\nIn article <May.3.05.01.26.1993.9898@athos.rutgers.edu> todd@nickel.laurentian.ca writes:\n>{:>         Your roommate is correct.  The Immaculate Conception refers to\n>{:> the conception of Mary in Her mother's womb.  \n>\n>Okay, now that we've defined the Immaculate Conception Doctrine would it\n>be possible for those more knowledgeable in the area to give the biblically\n>or other support for it. I've attempted to come to terms with it previously\n>(in an attempt to understand it for learning purposes) and haven't been able\n>to grasp the reasoning. \n>\nIt was a gift from God.  I think basically the reasoning was that the\ntradition in the Church held that Mary was also without sin as was Jesus.\nAs the tenets of faith developed, particularly with Augustine, sin was\nmore and more equated with sex, and thus Mary was assumed to be a virgin\nfor life (since she never sinned, and since she was the spouse of God, etc.)\nSince we also had this notion of original sin, ie. that man is born with\na predisposition to sin, and since Mary did not have this predisposition\nbecause she did not ever sin, she didn't have original sin.  When science\ndiscovered the process of conception, the next step was to assume that\nMary was conceived without original sin, the Immaculate Conception.\n\nMary at that time appeared to a girl named Bernadette at Lourdes.  She \nrefered to herself as the Immaculate Conception.  Since a nine year old \nwould have no way of knowing about the doctrine, the apparition was deemed\nto be true and it sealed the case for the doctrine.\n\nRCs hold that all revelation comes from two equally important sources, that\nbeing Sacred Scripture and Holy Tradition.  In this case, mostly tradition.\n\nJoe Moore\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 651, "properties": {"category": "sci.med", "text": "From: mmatusev@radford.vak12ed.edu (Melissa N. Matusevich)\nSubject: Foreskin Troubles\nOrganization: Virginia's Public Education Network (Radford)\nLines: 3\n\nWhat can be done, short of circumcision, for an adult male\nwhose foreskin will not retract?\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 652, "properties": {"category": "rec.motorcycles", "text": "From: cdw2t@dayhoff.med.Virginia.EDU (Dances With Federal Rangers)\nSubject: Re: BMW MOA members read this!\nOrganization: University of Virginia\nLines: 19\n\nIn article <1993Apr15.065731.23557@cs.cornell.edu> karr@cs.cornell.edu (David Karr) writes:\n\n     [riveting BMWMOA election soap-opera details deleted]\n\n>Well, there doesn't seem to be any shortage of alternative candidates.\n>Obviously you're not voting for Mr. Vechorik, but what about the\n>others?\n\nI'm going to buy a BMW just to cast a vote for Groucho.\n\nRide safe,\n----------------------------------------------------------------------------\n|        Cliff Weston           DoD# 0598          '92 Seca II (Tem)       |\n|                                                                          |\n|               This bike is in excellent condition.                       |\n|               I've done all the work on it myself.                       |\n|                                                                          |\n|                     -- Glen \"CRASH\" Stone                                |\n----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 653, "properties": {"category": "rec.sport.hockey", "text": "From: MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF)\nSubject: Re: expanding to Europe:Dusseldorf\nIn-Reply-To: voecking@Informatik.TU-Muenchen.DE's message of Fri, 16 Apr 1993 07:37:16 GMT\nOrganization: Abo Akademi University, Finland\nX-News-Reader: VMS NEWS 1.24\nLines: 36\n\nIn <1993Apr16.073716.16514@Informatik.TU-Muenchen.DE> voecking@Informatik.TU-Muenchen.DE writes:\n\n> \n> In article <1993Apr15.192231.27574@abo.fi>, MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF) writes:\n> |> In <PKORTELA.93Apr15164732@lk-hp-17.hut.fi> pkortela@snakemail.hut.fi writes:\n> |> \n> |> > \n> |> > DEG has many german-born forwards in the team. In fact the majority of players\n> |> > are german-born. 1992-93 DEG had 11150 average in 11800 spectator arena.\n> |> \n> |> Interesting! One of our German friends here (Robert?) told me their forwards\n> |> were all Canadian-Germans. Perhaps somebody can sort this out for us?\n> \n> As far as I know Dusseldorf has only one Canadian-German forward (i.e. a  player\n> who was born in Canada but now has a German passport). \n> Benoit Doucet became german by marriing a german and he is going to play \n> for Germany in the WC.\n> \n> The other Canada-born forwards are:\n> \tPeter-John Lee (has British passport)\n> \tChris Valentine\n> \tDale Dercatch\n> \tSteve Gootas\n>  \tEarl Spry (?)\n> \n> At the moment there are only three German-born forwards coming into my mind:\n> \tBernd Trunschka, Andreas Brockmann, Ernst Koepf\n \nHm, do you think Dusseldorf fans would like it if their team joined the NHL?\nOr do we have to include Koln as well (Cologne to you Anglophiles) to make \nthem happy?:-)\n \n> Volker\n\nMARCU$\n> \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 654, "properties": {"category": "talk.politics.mideast", "text": "From: aaldoubo@copper.denver.colorado.edu (Shaqeeqa)\nSubject: Re: Binyamin Netanyahu on CNN tonight.\nOrganization: University of Colorado at Denver\nLines: 24\n\nIn article <1993Apr15.152424.5899@ncrcae.ColumbiaSC.NCR.COM> nabil@ncrcol.ColumbiaSC.NCR.COM (Nabil.Idriss:) writes:\n>\n>Arab leaders don't have to cheat, they are actually allowed to have four wives.\n>Are you implying above that Arab leaders are gays? Aren't there Jewish gays too?\n\nArab leaders are now following by Islamic rules?  (Or is it only applicable\nin cases like this?)  :-\n\nI remember an article of about a year ago which stated that besides his wife,\nSaddam also has a mistress.  Assad's brother has a wife and *several*\nmistresses, and those 'emirs' in the Gulf have, within their lifetimes,\nwives in the double digitas (only they manage to keep four at a time).\n \nThis is all irrelevant.  It takes a *lot* more than infidelity to make these\nleaders ruthless and corrupt.  Maybe Netanyahu thought he could 'cleanse'\nhimself by making such a public confession.  Does the average secular Israeli\ncare, though?  The Mossad probably applauded him.  :-)\n\n\n ..     ..      ..     . \n __.    _       _     . . \n(_/|___(_|__|__(_|___(_:_)\n           .. \n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 655, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Space Research Spin Off\nOrganization: Express Access Online Communications USA\nLines: 29\nNNTP-Posting-Host: access.digex.net\n\nIn article <SHAFER.93Apr6094402@rigel.dfrf.nasa.gov> shafer@rigel.dfrf.nasa.gov (Mary Shafer) writes:\n>Dryden flew the first digital fly by wire aircraft in the 70s. No\n>mechnaical or analog backup, to show you how confident we were.\n\nConfident, or merely crazed?  That desert sun :-)\n\n\n>successful we were.  (Mind you, the Avro Arrow and the X-15 were both\n>fly-by-wire aircraft much earlier, but analog.)\n>\n\nGee, I thought the X-15 was Cable controlled.  Didn't one of them have a\ntotal electrical failure in flight?  Was there machanical backup systems?\n\n|\n|The NASA habit of acquiring second-hand military aircraft and using\n|them for testbeds can make things kind of confusing.  On the other\n|hand, all those second-hand Navy planes give our test pilots a chance\n|to fold the wings--something most pilots at Edwards Air Force Base\n|can't do.\n|\n\nWhat do you mean?  Overstress the wings,  and they fail at teh joints?\n\nYou'll have to enlighten us in the hinterlands.\n\n\npat\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.032+0000", "event": "documents", "entityId": 656, "properties": {"category": "rec.motorcycles", "text": "From: dwarner@sceng.ub.com (Dave Warner)\nSubject: Sabbatical (and future flames)\nSummary: I'm outta here\nLines: 32\nNntp-Posting-Host: 128.203.2.156\nOrganization: Ungermann-Bass SSE\n\nSo, I begin my 6 week sabbatical in about 15 minutes.  Six wonderful weeks\nof riding, and no phones or email.\n\nI won't have any way to check mail (or setup a vacation agent, no sh*t!), \nthough I can dial in and get newsfeed, (dont ask), so if there are any \noutstanding CFC's or such things,please try my compuserve address:\n\n72517.3356@compuserve.com\n\nAnybody wants to do some WEEKDAY rides around the BA, send me a mail\nto above or post here.\n\nI'll be thinking about all of you stuck if front of your\nterminals......\"Sheeyaahhh, and monkeys might fly out of my butt...\"\nride safe,\ndave\n\n\n\n-------------------------------------------------------------------------\n                           Sense AIN'T common....\n\nDave Warner                          Opinions unlikely to be shared\nAMA 687955/HOG 0588773/DoD 870\t     by my employer or anyone else\ndwarner@sceng.ub.com                 _Signature on file_     \ndwarner@milo.ub.com                  72517.3356@compuserve.com   \n'93 FXSTS                            '71 T120 (Stolen)\n\n-------------------------------------------------------------------------\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 657, "properties": {"category": "talk.politics.guns", "text": "From: billma@utoday.com (Bill Mallon)\nSubject: Re: Guns GONE. Good Riddance !\nReply-To: billma@utoday.com (Bill Mallon)\nOrganization: CMP Publications, Inc., Manhasset, NY\nLines: 18\n\nIn article <1993Apr18.000152.2339\n@gnv.ifas.ufl.edu>, jrm@gnv.ifas.ufl.edu writes:\n\n> Surrender your arms. Soon enough, \n> officers will be around to collect\n> them. Resistance is useless. They \n>       ^^^^^^^^^^ ^^ ^^^^^^^\n> will overwhelm you - one at a time.\n\nAre you certain you didn't mean to post \nto alt.french.captain.borg.borg.borg?\n\nYou'd better rush home...I hear Kruschev \ncalling \"Come to papa, jrm@gnv.ifas.ufl.edu!\"\n\n\"I am endeavoring, ma'am, to construct a mnemonic memory\ncircuit, using stone knives and bearskins.\"        --Spock\n     - Humble Typesetter -\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 658, "properties": {"category": "comp.graphics", "text": "From: Sean McMains <mcmains@unt.edu>\nSubject: Re: Rumours about 3DO ???\nX-Xxmessage-Id: <A7F2FC4E8B01023C@seanmac.acs.unt.edu>\nX-Xxdate: Thu, 15 Apr 93 17: 49:34 GMT\nOrganization: University of North Texas\nX-Useragent: Nuntius v1.1.1d20\nLines: 23\n\nIn article <1993Apr15.144843.19549@rchland.ibm.com> Ricardo Hernandez\nMuchado, ricardo@rchland.vnet.ibm.com writes:\n>   And CD-I's CPU doesn't help much either.  I understand it is\n>a 68070 (supposedly a variation of a 68000/68010) running at something\n>like 7Mhz.  With this speed, you *truly* need sprites.\n\nWow! A 68070! I'd be very interested to get my hands on one of these,\nespecially considering the fact that Motorola has not yet released the\n68060, which is supposedly the next in the 680x0 lineup. 8-D\n\nRicardo, the animation playback to which Lawrence was referring in an\nearlier post is plain old Quicktime 1.5 with the Compact Video codec.\nI've seen digitized video (some of Apple's early commercials, to be\nprecise) running on a Centris 650 at about 30fps very nicely (16-bit\ncolor depth). I would expect that using the same algorithm, a RISC\nprocessor should be able to approach full-screen full-motion animation,\nthough as you've implied, the processor will be taxed more with highly\ndynamic material.\n========================================================================\nSean McMains              | Check out the Gopher    | Phone:817.565.2039\nUniversity of North Texas | New Bands Info server   | Fax  :817.565.4060\nP.O. Box 13495            | at seanmac.acs.unt.edu  | E-Mail:\nDenton TX 76203           |                         |  McMains@unt.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 659, "properties": {"category": "talk.religion.misc", "text": "From: edm@twisto.compaq.com (Ed McCreary)\nSubject: Re: Federal Hearing\nIn-Reply-To: dmcgee@uluhe.soest.hawaii.edu's message of Fri, 16 Apr 1993 04: 21:09 GMT\nOrganization: Compaq Computer Corp\nDistribution: usa\nLines: 19\n\n>>>>> On Fri, 16 Apr 1993 04:21:09 GMT, dmcgee@uluhe.soest.hawaii.edu (Don McGee) said:\nDM> Fact or rumor....?  Madalyn Murray O'Hare an atheist who eliminated the\nDM> use of the bible reading and prayer in public schools 15 years ago is now\nDM> going to appear before the FCC with a petition to stop the reading of the\nDM> Gospel on the airways of America.  And she is also campaigning to remove\nDM> Christmas programs, songs, etc from the public schools.  If it is true\nDM> then mail to Federal Communications Commission 1919 H Street Washington DC\nDM> 20054 expressing your opposition to her request.  Reference Petition number\n\nDM> 2493.\n\nFalse.  This story has been going around for years.  There's not a drop of\ntruth.  Note that I don't care for O'Hare (O'Hair?) myself, but this\nis one thing she's not guilty of.\n\n--\nEd McCreary                                               ,__o\nedm@twisto.compaq.com                                   _-\\_<, \n\"If it were not for laughter, there would be no Tao.\"  (*)/'(*)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 660, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 35\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\nuni@acs.bu.edu (Shaen Bernhardt) writes:\n> I wish I could agree with you.  Ask yourself this.  Why would any \n> private sector entity wish to buy a crypto system that was KNOWN to be \n> at least partially compromised?\n\n(a) To use for sensitive but not strategically important traffic,\n(b) if the system was cheap.\n\nFor example, I don't own a cordless phone.  With Clipper, I would.  If the \nlocal men in blue really want to listen to me talk to my friends or order \npizza, I'm no worse off than I am now, and I don't have to worry about\nlocal kids or nosy neighbors.\n\nThat is to say, Clipper \"raises the bar\" on insecure channels.  It doesn't \nmake them secure, by any means, but a wall, even if the FBI can get a master \nkey by court order, is still better than a \"keep off the grass\" sign.\n\n> The answer seems obvious to me, they wouldn't.  There is other hardware \n> out there not compromised.  DES as an example (triple DES as a better \n> one.) \n\nSo, where can I buy a DES-encrypted cellular phone?  How much does it cost?\nPersonally, Cylink stuff is out of my budget for personal use :)...\n\n> How can you reconcile the administrations self proclaimed purpose of \n> providing law enforcement with access to encrypted data without making \n> the clipper system the only crypto available in the U.S... ?\n\nThe Second and Fourth Amendments do come to mind.  \n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 661, "properties": {"category": "talk.politics.mideast", "text": "From: anwar+@cs.cmu.edu (Anwar Mohammed)\nSubject: Re: Why does US consider YIGAL ARENS to be a dangerous to humanity\nNntp-Posting-Host: gs135.sp.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 30\n\nIn article <4815@bimacs.BITNET> ehrlich@bimacs.BITNET (Gideon Ehrlich) writes:\n>The readers of this forum seemed to be more interested in the contents\n>of those files.\n>So It will be nice if Yigal will tell us:\n>1. Why do American authorities consider Yigal Arens to be dangerous?\n\nADL authorities seem to view a lot of people as dangerous, including\nthe millions of Americans of Arab ancestry.  Perhaps you can answer\nthe question as to why the ADL maintained files and spied on ADC members\nin California (and elsewhere??)?  Friendly rivalry perhaps?\n\nPerhaps Yigal is a Greenpeace member? Or the NAACP? Or a reporter? \nOr a member of any of the dozens of other political organizations/ethnic \nminorities/occupations that the ADL spied on.\n\n>2. Why does the ADL have an interest in that person ?\n\nParanoia?\n\n>3. If one does trust either the US government or the ADL what an\n>   additional information should he send them ?\n\nThe names of half the posters on this forum, unless they already \nhave them.\n\n>\n>\n>Gideon Ehrlich\n\n-anwar\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 662, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith)\nSubject: Re: IDE vs SCSI\nOrganization: The John P. Robarts Research Institute, London, Ontario\nNntp-Posting-Host: valve.heart.rri.uwo.ca\nLines: 27\n\nIn article <1qpu0uINNbt1@dns1.NMSU.Edu> bgrubb@dante.nmsu.edu (GRUBB) writes:\n>wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>Since the Mac uses ONLY SCSI-1 for hard drives YES the \"figure includes a\n>hundred $$$ for SCSI drivers\"  This is sloppy people and DUMB.\n\nWhat group is this?  This is not a MAC group.\n\n>Ok once again with the SCSI spec list:\n\nWhy the spec list again?  We are talking SCSI on a PC, not on a MAC or\na UNIX box.  And we are talking ISA bus, or possibly EISA or VLB.\n\nThis isin't comp.periphs.SCSI.\nTell me what the performance figures are with a single SCSI drive on a PC\nwith an ISA (or EISA or VLB) bus.\n\nTheoretical performance figures are not relevant to this group or this\ndebate.  I'm sure that there are some platforms out there that can\nhandle the 40 megs/sec of SCSI xyz wide'n'fast, but the PC isin't one of\nthem.\n\n>If we are to continue this thread STATE CLEARLY WHICH SCSI you are talking \n>about SCSI-1 or SCSI-2 or SCSI over all {SCSI-1 AND SCSI-2}\n>IT DOES MAKE A DIFFERENCE.\n\nWell maybe if the SCSI design people had their act together than maybe\nall PC's would have built in SCSI ports by now.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 663, "properties": {"category": "rec.sport.baseball", "text": "From: cubbie@garnet.berkeley.edu (                               )\nSubject: Re: Cubs behind Marlins? How?\nArticle-I.D.: agate.1pt592$f9a\nOrganization: University of California, Berkeley\nLines: 12\nNNTP-Posting-Host: garnet.berkeley.edu\n\n\ngajarsky@pilot.njin.net writes:\n\nmorgan and guzman will have era's 1 run higher than last year, and\n the cubs will be idiots and not pitch harkey as much as hibbard.\n castillo won't be good (i think he's a stud pitcher)\n\n       This season so far, Morgan and Guzman helped to lead the Cubs\n       at top in ERA, even better than THE rotation at Atlanta.\n       Cubs ERA at 0.056 while Braves at 0.059. We know it is early\n       in the season, we Cubs fans have learned how to enjoy the\n       short triumph while it is still there.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 664, "properties": {"category": "alt.atheism", "text": "From: jbrown@batman.bmd.trw.com\nSubject: Re: Gulf War and Peace-niks\nLines: 67\n\nIn article <1993Apr20.062328.19776@bmerh85.bnr.ca>, \ndgraham@bmers30.bnr.ca (Douglas Graham) writes:\n\n[...]\n> \n> Wait a minute.  You said *never* play a Chamberlain.  Since the US\n> *is* playing Chamberlain as far as East Timor is concerned, wouldn't\n> that lead you to think that your argument is irrelevant and had nothing\n> to do with the Gulf War?  Actually, I rather like your idea.  Perhaps\n> the rest of the world should have bombed (or maybe missiled) Washington\n> when the US invaded Nicaragua, Grenada, Panama, Vietnam, Mexico, Hawaii,\n> or any number of other places.\n\nWait a minute, Doug.  I know you are better informed than that.  The US \nhas never invaded Nicaragua (as far as I know).  We liberated Grenada \nfrom the Cubans\tto protect US citizens there and to prevent the completion \nof a strategic air strip.  Panama we invaded, true (twice this century).  \nVietnam?  We were invited in by the government of S. Vietnam.  (I guess \nwe \"invaded\" Saudi Arabia during the Gulf War, eh?)  Mexico?  We have \ninvaded Mexico 2 or 3 times, once this century, but there were no missiles \nfor anyone to shoot over here at that time.  Hawaii?  We liberated it from \nSpain.\n\nSo if you mean by the word \"invaded\" some sort of military action where\nwe cross someone's border, you are right 5 out of 6.  But normally\n\"invaded\" carries a connotation of attacking an autonomous nation.\n(If some nation \"invades\" the U.S. Virgin Islands, would they be\ninvading the Virgin Islands or the U.S.?)  So from this point of\nview, your score falls to 2 out of 6 (Mexico, Panama).\n\n[...]\n> \n> What's a \"peace-nik\"?  Is that somebody who *doesn't* masturbate\n> over \"Guns'n'Ammo\" or what?  Is it supposed to be bad to be a peace-nik?\n\nNo, it's someone who believes in \"peace-at-all-costs\".  In other words,\na person who would have supported giving Hitler not only Austria and\nCzechoslakia, but Poland too if it could have averted the War.  And one\nwho would allow Hitler to wipe all *all* Jews, slavs, and political \ndissidents in areas he controlled as long as he left the rest of us alone.\n\n\"Is it supposed to be bad to be a peace-nik,\" you ask?  Well, it depends\non what your values are.  If you value life over liberty, peace over\nfreedom, then I guess not.  But if liberty and freedom mean more to you\nthan life itself; if you'd rather die fighting for liberty than live\nunder a tyrant's heel, then yes, it's \"bad\" to be a peace-nik.\n\nThe problem with most peace-niks it they consider those of us who are\nnot like them to be \"bad\" and \"unconscionable\".  I would not have any\nargument or problem with a peace-nik if they held to their ideals and\nstayed out of all conflicts or issues, especially those dealing with \nthe national defense.  But no, they are not willing to allow us to\nlegitimately hold a different point-of-view.  They militate and \nmany times resort to violence all in the name of peace.  (What rank\nhypocrisy!)  All to stop we \"warmongers\" who are willing to stand up \nand defend our freedoms against tyrants, and who realize that to do\nso requires a strong national defense.\n\nTime to get off the soapbox now.  :)\n\n[...]\n> --\n> Doug Graham         dgraham@bnr.ca         My opinions are my own.\n\nRegards,\n\nJim B.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 665, "properties": {"category": "comp.windows.x", "text": "From: bm155@cleveland.freenet.edu (csthomas@gizmonic.UUCP)\nSubject: xwd->gif conversions\nReply-To: bm155@cleveland.freenet.edu (shane thomas)\nDistribution: na\nOrganization: The Gizmonic Institute\nLines: 14\n\nHello,\n\nAnyone know of any source code I can get to either create window \ndumps in GIF format, or convert an XWD (x window dump) file \ninto a GIF? Really could be any format I can manipulate in DOS, \ni.e. PCX, BMP, etc.\n\nlater,\n\nshane\n\n---\nbm155@cleveland.freenet.edu {uucp:rutgers!devon!gizmonic!csthomas}\n\"God bless those Pagans...\" - H. Simpson\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 666, "properties": {"category": "misc.forsale", "text": "From: alai@balboa.eng.uci.edu (Anthony Lai)\nSubject: <<<< SALE: 3 Software Packages ... pcANYWHERE, antivirus, deltagraph >>>\nNntp-Posting-Host: balboa.eng.uci.edu\nOrganization: University of California, Irvine\nLines: 28\n\nHello,\n\n  I have three software packages for sale:\n\n  1. The Norton pcANYWHERE version 4.5 for dos. This software\n     include host and remote software. It can control both\n     dos and windows 3.1 (both standard and enhanced modes)\n     activities. Registration card is enclosed.\n\n     Price: $40.00\n\n  2. The Norton AntiVirus for windows and dos version 2.1. It\n     can update virus information any time. It also support\n     networks. Registration card is enclosed.\n\n     Price: $40.00\n\n  3. DeltaGraph Professional for Windows 3.1. This is the BEST\n     graphics presentation program I have ever seen. Registration\n     card is enclosed. Reg. Price: $495.00\n\n     Price: $150.00\n\n  Thank you for your attention.\n\n\t\t\t\t\t\tAnthony Lai\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 667, "properties": {"category": "talk.religion.misc", "text": "From: royc@rbdc.wsnc.org (Roy Crabtree)\nSubject: Re: That Kill by Sword, Must be Killed by Sword\nOrganization: Red Barn Data Center\nLines: 191\n\nIn article <sandvik-210493014635@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n>In article <C5tCz8.4z9@rbdc.wsnc.org>, royc@rbdc.wsnc.org (Roy Crabtree)\n>wrote:\n>> In article <20APR199306173611@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen) writes:\n>> >In article <sandvik-190493201048@sandvik-kent.apple.com>, \n>> >sandvik@newton.apple.com (Kent Sandvik) writes...\n>> ...\n>> >>So are you happy now when 70+ people, including innocent kids,\n>> >>died today?\n>> \n>> \tIt's amazing how everyone automatically blames one side or the other.\n>> \tOne thing for sure:  Koresh will have no chance to defend himself\n>> \tagainst the statements (lacking in fact or COurt sponsored verification)\n>> \tmade  by agents who participated in the situation that killed him.\n>\n>Frankly speaking I don't care who started this whole show. I just \n>feel sad about the children that were trapped, and had to die\n>for a case that didn't have any reason whatsoever. All Mr. \n>Koresh could have done would have been to release these 19\n>children. \n\n\tCOuld he?  And the first three that died, when guns ablazing in came\n\tthe BATF and FBI?\n\n\tI imagine I would have some trouble giving up my children to\n\tsomeone who had just shot -- what -- two of them?\n\n\tNB:  It takes two sets of guns in a situation like this.\n\n>\n>Yes, I put the blame on Koresh and similar fanatical religious\n>leaders that think more about their cause than about keeping\n\n\tFanatical:  those whowill not tolerate another's way of life\n\tReligious:  Based on emotional, internal, or otherwise\n\t\tlacking in commonly defined _scientific_ basis,\n\t\tincluding legal ones, such as this old saw:\n\n\t\t\tInnocent untilproven guilty\n\n\t\tnot\n\t\t\tInnocent until presumed guilty\n\n\tWho is the fanatic?  Note who is dead; this usually bespeaks\n\ta fair bit for the idea that the OTHER side also had lethal\n\tweapons, used fatally.\n\n\t\tThey are dead:  the children.\n\t\t\tAt best Koresh was an asshole and the government\n\t\t\tcriminally negligent in its hadni\\ling of the case.\n\n\t\t\tAt worst, Koresh and his followers were\n\t\t\t\tinnocent\n\t\t\t\tnot brainwashed\n\t\t\t\tguilty of illegal arms possession\n\t\t\t\t\t(as yet unproven)\n\t\t\t\tand murderedd\n\t\t\t\talong with 25 children\n\t\t\tThey cannot speak for themselves\n\t\t\tMembers of the (surviving, alive, and not burned\n\t\t\t\tto death) BATF/FBI can, and are\n\t\t\t\tinappropriately\n\t\t\t\tto the public eye\n\t\t\t\toutside the bounds of their legal authorities\n\t\t\t\t\tread the charter:\n\t\t\t\t\tthe Constitution specifies that\n\t\t\t\t\tthe COURTS convict, while the\n\t\t\t\t\tenforcement arm INVESTIGATES,\n\t\t\t\t\tand that the evidence involved\n\t\t\t\t\tshuld not be disseminated in a\n\t\t\t\t\tway to harm or injure a party\n\t\t\t\t\tinvolved prior to that action;\n\t\t\t\t\tits called slander or libel\n\t\t\t\t\t(even where factually true butthen\n\t\t\t\t\tdistoted or disseminated with intent\n\t\t\t\t\tto harm\n\t\t\t\tfor the purpose of covering their butts\n\n\t\t\tbecause the bottom line is:\n\t\t\t\tthey SAID they wanted the kids to get out\n\t\t\t\t\talive\n\t\t\t\tand theFBI, the BATF, Ms. Reno, the Prez,\n\t\t\t\t\tand EVERYBODY ELSE IN THIS\n\n\t\t\t\t\t\tSICK\n\t\t\t\t\t\tSELFSERVING\n\t\t\t\t\t\tGROUP OF UPRIGHT ANIMALS\n\t\t\t\t\tthat used to be a freedom loving\n\t\t\t\t\tpeaceful country called\n\n\t\t\t\t\t\tAmerica:  look up the name,\n\t\t\t\t\t\tit might surprise you\n\t\t\t\thas turned the \"point the finger of blame\"\n\t\t\t\ton the OTHER guy.\n\t\t\t\n\t\t\t\tand LET THOSE KIDS DIE.\n\n\t\t\t\tNote well:  they lived 51 days; they only\n\t\t\t\tdied when attacked by outside force.\n\n\t\t\tSPock's World, Diane Duane:\n\n\t\t\t\tThe spear in the heart of another\n\t\t\t\tis the spear in your own ....\n\n\t\tALL of us are responsible.\n\n\t\tIam; you are.  The question is not whether, but how:\n\n\t\t\tGuess what:  you get to make up your own mind\n\t\t\ton that.\n\n>children out from the war zone. I'm not ashamed of this statement.\n\n\tWho created the war zone?  You should be ashamed of bypassing that.\n\tIt's the same damned (Literally) comment made by the folks in\n\tthe former Yugoslavia to justify Ethnic Cleansing:\n\n\t\t\"Gee, they had the guns, all they had to do was surrender\".\n\n>\n>To justify other means does not eliminate the fact that children\n>died for a cause that they should not have been part of. \n\n\tWhose \"cause\" did they die for?  The one where they lived,\n\tpeacibly, to all known purposes (until proven in COurt,\n\tfolks!), or the Cuase of Righteous Government SafeGuarding \n\tThe Freedom Of The CHildren\n\n\t\tWho are now dead.\n\n\n\tAgainI say:\n\n\t\tI do NOT know who did what\n\t\tI was NOT there.\n\t\tThe FBI leaders show moral SICKness trying to\n\t\t\tconvict in the press ahead of schedule\n\t\tAnd you should look over your shoulder,\n\n\t\tbecuase if there is anything my ruminations that\n\t\tactually  sets onto real fact of what happened\n\n\t\t\tand I do not know that; I am defending\n\t\t\tpeople who ahving been burned to death cannot\n\t\t\tspeak for themselves\n\n\t\tyou may, in 22-5 years, find that the concept in our\n\t\tCourt system  has gone from\n\n\t\t\tDue Processss\n\n\t\tto\n\n\t\t\tDue Profit\n\n\t\tand the BATF come to collect their fair share of the tax\n\t\ton the value of your house if you rented it for income\n\n\t\t\twhich is going down now, folks.\n\t\t\tRead Bankruptcy 1995\n\t\t\t\tIts accurate in figures\n\t\t\t\tand it bypasses the greedy\n\t\t\t\t\tbusinessman and\n\t\t\t\t\tmankers who have\n\t\t\t\ttaken profit from the corruption\n\t\t\t\tof our govbernment.\n\n\t\t\tLook to where the money went, folks.\n\n\t\t\tYou  got $10 for medicare that paid a doctor for\n\t\t\t$00.50 worth of medicine.\n\n\t\t\t\tThis is the customaryprofitmargin\n\t\t\t\tto businessmen for goernment entitlements.\n\n\tWho wll own the land of the cult now?  Note well:  it WAS nonproift,\n\treligious, and nontaxable.  Large tract of land .... hmmm.\n\n\tUse your brains, folks:  it happened Germany, and it can happen\n\there.\n\t\t\t4.3 trillion (admitted) and counting....\n>\n>Kent\n\nroyc.\n\n>---\n>sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 668, "properties": {"category": "talk.politics.misc", "text": "From: mcelwre@cnsvax.uwec.edu\nSubject: SECRET PURPOSE OF FALKLANDS WAR\nOrganization: University of Wisconsin Eau Claire\nLines: 918\n\n\n\nSECRET PURPOSE OF FALKLANDS WAR;  [with IN-VISIBILITY Technology]\n\nDr. Beter AUDIO LETTER #74 of 80\n\nDigitized by Jon Volkoff, mail address eidetics@cerf.net\n\n\"AUDIO LETTER(R)\" is a registered trademark of Audio Books,\nInc., a Texas corporation, which originally produced this tape\nrecording.  Reproduced under open license granted by Audio\nBooks, Inc.\n\n-----------------------------------------------------------------\n\nThis is the Dr. Beter AUDIO LETTER(R), 1629 K St. NW, Washington,\nDC  20006.\n\n   Hello, my friends, this is Dr. Beter.  Today is April 30,\n1982, and this is my AUDIO LETTER(R) No. 74.\n\n  It's now been almost one month since war broke out in the South\nAtlantic.  On the surface it seems that it's only a dispute\nbetween Argentina and Great Britain over the barren, wind-swept\nFalkland Islands and South Georgia Island.  In reality, it's far\nmore than that.\n\n   The so-called Falklands crisis is just the visible tip of a\ngiant military operation.  During this month of April 1982,\nfierce naval battles have taken place--not only in the South\nAtlantic but also in the South Pacific.  Up to now most of the\nhostilities have been kept under wraps by wartime censorship on\nall sides.  But as I say these words, the naval war in the\nSouthern Hemisphere is about to come to the surface.\n\n   Beginning today, April 30, a total naval and air blockade of\nthe Falklands by the Royal Navy has begun.  At the same time a\ncounterblockade has been declared by Argentina in the same area.\n\n   To be effective, a blockade must be imposed over a period of\ntime, but the Royal Navy does not have that much time.  Winter is\ncoming on in the South Atlantic, and the British supply lines are\noverextended.  Having come this far, Her Majesty's navy cannot\nsimply drop the blockade and sail away in a few weeks time\nwithout drawing blood from Argentina.  As a result the British\nwill be forced to undertake military operations very soon no\nmatter how risky they may be.\n\n   There is also another reason why the Royal Navy now has no\nchoice but to engage the Argentine forces in combat.  That\nreason, my friends, is that the Royal Navy has already suffered\nlosses in secret combat this month.  Up to this moment there will\nbe no way to explain away the damage which has been sustained by\nthe British fleet.  Only when publicly admitted fighting erupts\nwill the British dare to admit that they have suffered battle\nlosses.  To obtain that cover story, the British have no choice\nbut to sail into combat; but in doing so, they will be risking\neven heavier losses on top of those already sustained.  In short,\nmy friends, Her Majesty's navy has sailed into a trap.\n\n   The events now unfolding in the South Atlantic carry strange,\nironic echoes of the past.  For weeks now we've been hearing\ncountless commentators referring to the British task force as an\n\"armada\" (quote).  The British of all people ought to be very\nuneasy with that description.  The original Spanish Armada 400\nyears ago was renowned as a seemingly invincible fighting force,\nbut it came to grief in a naval disaster so complete that it\nchanged the course of history--and it was none other than the\nEnglish navy that destroyed the Spanish Armada.\n\n   The original Spanish Armada put to sea in 1588 during the\nreign of England's Queen Elizabeth I.  The Armada was an invasion\nfleet carrying thousands of crack fighting men to invade England. \nThey were met by the daring sea dogs of Sir Francis Drake.  Drake\nand his small, fast ships turned the tables on the Spanish Armada\nby changing the rules of battle.  The English fleet was equipped\nwith new longer-range guns, and it stayed upwind and out of\nreach.  From there the English pounded, smashed, and shattered\nthe big ships of the mighty Armada.  When it was all over, barely\nhalf the Spanish fleet was left to limp back to port.  Drake's\ndefeat of the Spanish Armada was a shock to the world.  It opened\nthe door for England under Queen Elizabeth I to start its\nexpansion into a truly global empire.\n\n   Today, 400 years later, history seems to have come full\ncircle.  Queen Elizabeth II is witnessing the dismantling of the\nworld empire whose heyday began under Queen Elizabeth I, and now\nthe cultures of England and of Spain are once again in\nconfrontation.  Once again a so-called armada is preparing for\ninvasion, but this time the armada is British, not Spanish.  Four\nhundred years ago Sir Francis Drake was the hero of the day;\ntoday, the ghost of Francis Drake is once again on the scene.\n\n   The South Atlantic war zone is at the eastern end of the Drake\nPassage around the southern tip of South America.  The defeat of\nthe Spanish Armada four centuries ago broke the back of Spain's\nnaval supremacy, and now the defeat of the new British armada may\nwell break the back of what remains of the once glorious Royal\nNavy.\n\n   My three special topics for this AUDIO LETTER are:\n\nTopic #1--THE MILITARY SECRET OF SOUTH GEORGIA ISLAND\nTopic #2--THE SECRET NAVAL WAR OF THE SOUTHERN HEMISPHERE\nTopic #3--THE ROCKEFELLER FEAR CAMPAIGN AGAINST NUCLEAR WAR.\n\nTopic #1--When the Falkland Islands crisis began early this month\nit looked at first like a tempest in a teapot.  For a century and\na half since 1833, the Islands have been controlled by Great\nBritain.  During that entire time, British sovereignty over the\nFalklands has been disputed by Argentina.  There have been\ncountless threats by Argentina to seize the Islands, which it\ncalls the Malvinas, but the threats have always come to nothing\nin the past and Britain has never even gotten very worried about\nthem.\n\n   The Islands are four times as distant from Argentina as Cuba\nis from the United States, and they are not much of a prize. \nAfter 150 years of occupancy, the Falklands are home to fewer\nthan 2,000 British settlers and a lot of sheep.  In short, the\nremote Falkland Islands hardly look like something to fight over,\nand yet here we are watching another crisis take place.  We are\nwatching as war erupts between Great Britain and Argentina.\n\n   The Thatcher government is acting as if it has forgotten all\nabout its usual preoccupation with the Soviet threat at NATO's\ndoorstep.  Instead, Britain is throwing almost everything it's\ngot at Argentina---aircraft carriers, cruisers, destroyers,\nsubmarines, assault ships--you name it.  Luxury cruise ships have\neven been commissioned and turned into troop carriers overnight. \nWave after wave of additional assault troops have been activated\nand sent to join the fleet even after it sailed.  Ships and\nsubmarines have been pulled off station from normal NATO duty and\nsent to reinforce the task force.  The initial 40-ship force has\ngrown steadily over the past several weeks into an armada\nnumbering over 70.  Over two-thirds of the entire Royal Navy has\nalready been deployed to the South Atlantic off Argentina.\n\n   Watching all this, a lot of people are asking: What's this\nfight really all about?  The most popular answer suggested in the\nmajor media is \"oil.\"  Vast deposits of oil are known to exist\nunder the continental shelf between Argentina and the Falklands,\nbut that has been known for nearly 10 years.  In no way does it\nexplain the timing of the sudden military offensive by Argentina\nthis month, and oil explains even less about the Argentine\nseizure of South Georgia Island.\n\n   South Georgia Island is 800 miles east of the Falklands with\nno known oil deposits anywhere near it; and compared to South\nGeorgia, the Falklands are an island paradise.  South Georgia\nIsland is covered with rugged mountains, treacherous valleys,\nglaciers, and semi-permanent snow.  Most of it is uninhabitable. \nOn top of all that, Argentina has absolutely no legal or\nhistorical claim to South Georgia Island.  In that respect it\nstands in sharp contrast to the Falklands.\n\n   In the early 1830s the Falklands were occupied for a while by\nArgentine colonists.  In 1833 the British expelled them and took\nover the Island.  For that and other historical reasons,\nArgentina argues that the Falklands really belong to Argentina,\nnot Britain.\n\n   But no such argument is possible for South Georgia Island.  It\nhas always been controlled by Britain, never by Argentina or\nSpain.  The Argentine seizure of South Georgia Island looks even\nmore unreasonable from a military point of view.  Argentina's\nleaders are military men and they think in military terms.  They\nwere well aware ahead of time that far-off South Georgia Island\ncould not possibly be held for long.  By seizing it they were\nsetting themselves up to absorb a military defeat, as the Island\nwas retaken by Britain.  So the question is: Why did Argentina's\nmilitary junta bother with the seemingly worthless South Georgia\nIsland at all?\n\n   My friends, the answers to all these questions are military,\nnot political or economic.  South Georgia Island possesses an\nenormous military secret.  It's a giant underground installation\nburied under the mountains at the northwest end of the Island. \nThe real reason for the so-called Falkland crisis is this secret\ninstallation, together with two other similar installations which\nI will describe shortly.\n\n   The secret military complexes have been in existence for many\nyears; they are not new.  What is new is the accelerated nuclear\nwar timetable of the American Bolshevik war planners here in\nWashington.  For the past two months I've been reporting the\ndetails of this new war plan to you as quickly as I can obtain\nand verify them.\n\n   The plan calls for NUCLEAR WAR ONE to erupt by September of\nthis year 1982!!  It is this fast-approaching nuclear war threat\nthat caused the so-called Falklands crisis to erupt now.\n\n   What is going on now is a coordinated effort to spoil part of\nthe Bolshevik grand strategy for the coming nuclear war.  The\nmutual enemies of the American Bolsheviks here--namely, the\nRockefeller cartel--and Russia's new rulers in the Kremlin are\nbehind the present crisis.  They are trying to ruin Phase #3 of\nthe \"PROJECT Z\" war plan which I revealed last month.  That phase\nis to be world domination by the American Bolsheviks after both\nRussia and the United States have been destroyed in NUCLEAR WAR\nONE.  As I mentioned last month, the key to this plan is the\nexistence of secret weapons stockpiles in various places around\nthe world.\n\n   The American Bolshevik military planners here in America are\nworking with other Bolshevik agents in key military positions of\nother countries to set off war.  Having done that, they intend to\nride out the nuclear holocaust they have caused, safe and cozy in\nGovernment war bunkers!  When the warring nations finally lie\nsmoldering and exhausted, the Bolsheviks will leave the shattered\nremains of their host countries.  They will rendezvous at the\nsecret weapons installations and bring their weapons into the\nopen.  They will confront the world with the only remaining\nfresh, up-to-date, powerful military force on earth; and using\nthat military power, they will become the undisputed rulers of\nthe world--that is, they plan to do all this, and they plan to\npave the way for world domination very soon by setting off\nNUCLEAR WAR ONE in a matter of months.  The Rockefeller cartel\nand Russia's new anti-Bolshevik rulers are working together in a\nrace against time to try to head off the Bolshevik war plan.\n\n   Last month I mentioned that the Bolsheviks here are\nbenefitting from war preparations which were started by the\nRockefellers long ago.  It has only been about three years since\nthe Rockefellers were dislodged as the prime movers of the United\nStates Government by the Bolsheviks.  Since that time the United\nStates Government has been a house divided, torn by internal\npower struggles between rival Bolshevik and Rockefeller factions. \nBut before that, the United States had been dominated for decades\nboth economically and politically by the Four Rockefeller\nBrothers.\n\n   In 1961 the Brothers launched a new long-range plan for world\ndomination.  It was a two-prong strategy, half visible and half\nsecret, which I first described long ago in AUDIO LETTER No. 28. \nIt was a plan for the United States to arm to the teeth in secret\nwhile appearing to disarm gradually.  Without repeating all the\ndetails, the basic idea was grandiose yet simple.  By\ndeliberately appearing weak, the Rockefeller-controlled United\nStates would maneuver itself into a nuclear war with Russia. \nThen the secret weapons, including superweapons, would be\nunleashed to smash Russia and take over the world.\n\n   When they set the grand plan in motion in 1961, the\nRockefeller Brothers were looking ahead to a nuclear war by the\nlate 1970s.  Their military analysts concluded very early that\nthe war being planned would have very different effects on the\nNorthern and Southern Hemispheres.  Both superpowers, the United\nStates and the Soviet Union, are located well up in the Northern\nHemisphere; so are the other full-fledged nuclear powers--Great\nBritain, France, Red China, and India.  By contrast, the\nstrategic targets for nuclear war in the Southern Hemisphere are\nrelatively few and far between.  In other words, it was expected\nthat the coming nuclear war would be essentially a Northern\nHemisphere war.\n\n   In an all-out nuclear holocaust it is known that serious\nradioactive fallout will gradually spread to affect even areas\nnot initially hit by war.  But there are limits to how far the\nwar clouds can spread.  It was discovered long ago that there is\nvery little mixing between the air of the Northern and Southern\nHemispheres.  In the northern half of our planet, cold air from\nthe North Pole works its way southward towards the equator, then\nit works its way back to the north as warm air.  A mirror image\nof this process takes up the southern half of the planet. \nNorthern and Southern Hemisphere air meet in the equatorial zone,\nbut very little of the air changes places.\n\n   The military conclusion, my friends, is this: the coming\nnuclear war could ruin large areas of the Northern Hemisphere for\ngenerations to come; but if the calculations are right, the\nSouthern Hemisphere could escape virtually unaffected by the war. \nThis was music to the ears of the Four Rockefeller Brothers.  A\nquick look at the globe of the world shows why.  The Rockefeller\ncartel has dominated Latin America ever since World War II.  As I\ndiscussed in my very first monthly AUDIO LETTER, Nelson\nRockefeller solidified the cartel grip on Latin America during\nthe war.  He accomplished this as so-called \"Coordinator of\nHemispheric Defense\" for then-President Franklin D. Roosevelt. \nSo that takes care of the South American continent and its\nnatural resources.\n\n   Then there is the African continent.  There, too, Rockefeller\ncontrol was already in effect over wide areas of Black Africa,\nespecially south of the equator.  All this was thanks to the\nefforts of John D. Rockefeller III, as I detailed in AUDIO LETTER\nNo. 36.\n\n   Looking around the globe, the most important remaining land\nmasses from the standpoint of world domination are Australia and\nNew Zealand.  Thanks to World War II, both were wide open to the\nRockefellers.\n\n   The Rockefeller Brothers decided to establish secret military\ninstallations in the Southern Hemisphere for use after the coming\nwar.  By this means they expected to become the masters of the\nsurviving southern half of planet Earth after the Northern\nHemisphere war.  Then, as the Northern Hemisphere gradually\nrecovered from the nuclear holocaust, the Rockefeller empire\nwould be able to pick up the pieces.  In this way the third\ngeneration Rockefeller Brothers expected their family dynasty to\ninherit the Earth.\n\n   In order to control the Southern Hemisphere militarily after\nthe war, some means would have to be available to project\nmilitary power onto any land mass.  For example, revolts against\nRockefeller domination would require troops--not a blast from the\nbeam weapons on the Moon.  The most critical factor for postwar\nmilitary domination of the world was found to be a navy.  A\nminimum of two secret naval fleets would be required--one based\nin the South Atlantic, the other in the South Pacific.  Since the\nreserve naval fleets were to be kept secret until after the\nNorthern Hemisphere nuclear war, they could not be built in\nexisting shipyards.  New construction facilities had to be built\nand they had to be hidden.  To hide an entire shipyard is no\nsmall task; they take up a lot of space.  On top of that, it was\nessential that the ships remain hidden after they were built. \nThe best way to achieve that was to combine the shipyard and\nnaval base into one over-all secret installation.  Finally, the\nsecret naval installation had to be invulnerable to nuclear\nattack; otherwise if its existence were ever discovered\nprematurely, the secret navy might be wiped out.\n\n   The combined requirements for secrecy, space, and protection\nagainst attack were formidable; but one day in 1959, while all\nthese plans were still in the early stages of development, the\nanswer presented itself.  During a so-called banking trip to\nSweden, David Rockefeller was given a tour of a unique hidden\nnaval port.  The port is hollowed out from solid granite cliffs\nwhich come right down to the water.  The entrance to the port is\na gigantic hole in the side of the cliff which can be sealed off\nwith enormous steel doors.  Inside this big doorway on the water\na huge cavity has been hollowed out to accommodate ships.\n\n   The Rockefeller Brothers and their military adviser decided\nthat a bigger, more secret, better protected version of the\nSwedish hidden port was just what they wanted.  A survey of\ncandidate sites was then initiated.  The site survey covered\ncoastal areas throughout the Southern Hemisphere.  Many areas\nwere rejected very quickly because the topography was wrong. \nOther areas were rejected because they were too close to the\nequator.  Still others had to be ruled out because there were too\nmany people living nearby, making the desired level of secrecy\nimpossible.  Finally, it was essential that the sites chosen for\nthe secret naval installations be totally secure politically.\n\n   At last the sites for the secret naval installations were\nselected.  In the South Pacific, extreme southern New Zealand was\nselected.  This is what I was alluding to in AUDIO LETTER No. 71\nthree months ago when I called attention to New Zealand's extreme\nimportance in the coming war.\n\n   In order to obtain the necessary space, the secret New Zealand\nnaval installation had to be divided up into two sites located\nclose together.  One is at the extreme southwest tip of South\nIsland where the mountain range known as the Southern Alps comes\ndown virtually to the water's edge.  The other part of the\ninstallation is built into the northwest tip of Stewart Island,\nwhich is off the tip of South Island.  The Stewart Island\nfacility is hollowed out within a rise known as Mt. Anglem.\n\n   The New Zealand location met all the requirements.  Ever since\nWorld War II the government of New Zealand has been tied even\ncloser to the United States than to Great Britain.  The location\nis far from the equator, and the installations are buried deep\nunder mountains, protected from nuclear attack.  They are also\ntoo deep to be reached by particle-beam attacks, and the New\nZealand site is well situated to command the entire South\nPacific.\n\n   In the South Atlantic an even more perfect site was found. \nThat site, my friends, is South Georgia Island.  It is located\nperfectly for naval domination of the entire South Atlantic.  The\ntall, rugged mountains provided a perfect location for the secret\ninstallation at the northwest tip of the 100-mile long island. \nIt is controlled by Great Britain whose government, like that of\nNew Zealand, was willing to cooperate; and South Georgia Island\nwas virtually uninhabited except for a whaling station on the\nnortheast coast.  The whaling station was some 50 miles away from\nthe secret new installation which was being built, but Britain\ntook no chances.  In 1965 the whaling station was closed down. \nSince that time there have been no inhabitants on South Georgia\nIsland except for a few dozen alleged Antarctic scientists.\n\n   Construction of the secret naval facilities--two in New\nZealand, one on South Georgia Island--began in the early 1960's. \nThe techniques were adapted from those used previously to build\nother large underground facilities, such as the NORAD\ninstallation inside Cheyenne Mountain, Colorado; however these\ntechniques were adapted in radically new ways to achieve\nconstruction access directly from the sea instead of overland. \nIn this way, the sheltering mountain was left undisturbed in\nappearance both during and after construction.\n\n   The cuts in the mountain side which were necessary to let\nships in and out were kept as small as possible and were well\ncamouflaged.  Like the Swedish hidden naval port arrangement, the\nentrances to the secret installations can be sealed up.  When\nsealed, the entrance is virtually impossible to detect unless you\nknow exactly where it is; and unlike most large construction\nprojects, there are no tailings or piles of leftover rock lying\naround to attract attention.  The man-made caverns which house\nthe secret naval installations are enormous, but all the rock and\ndebris was disposed of at sea.\n\n   Once the secret naval facilities were built, they had to be\noutfitted for ship construction and docksite storage.  The fake\ndisarmament of the United States during the 1960s contributed\ngreatly to this task.  From 1961 to 1968 one man played a pivotal\nrole in this elaborate Rockefeller scheme.  He was then-Secretary\nof Defense Robert McNamara.  All through the 60's McNamara\npresided over the public paring back of America's visible\nmilitary power.  This included the closing down and dismantling\nof entire shipyards.  What we were not told was where all that\nshipyard equipment went afterwards.  Where it went, my friends,\nwas to the new secret installations which were being outfitted in\nNew Zealand and South Georgia Island!\n\n   The secret naval installations have been used as duplication\nfacilities to reproduce certain ships and submarines designed and\nbuilt here in the United States.  As Defense Secretary Caspar\nWeinberger told Congress recently, it is cheaper to build two\nships at a time.  That is especially true if the second ship is\nan exact duplicate of the first.  This has become even more true\nin recent years through the use of computerized manufacturing\ntechniques.\n\n   The secret naval fleets which have been built at the secret\ninstallations are made up of duplicates--exact duplicates of\ncertain other ships and submarines.  They are all nuclear\npowered--nuclear \"subs\"; nuclear cruisers; nuclear destroyers;\nand yes, nuclear aircraft carriers, three of them.  A secret twin\nwas built for the U.S.S. Nimitz, for the U.S.S. Eisenhower, and\nfor the newly-launched U.S.S. Carl Vincent.  All have been\nfinanced through the gigantic cost overruns, so called, that we\nconstantly hear about in the Defense Department; and all three\ncarriers have been provided with a full complement of aircraft\nwhose manufacture was financed the same way!\n\n   The ships of the secret American Bolshevik naval fleets are\nall duplicates of other nuclear-powered vessels.  Even so, the\nsecret naval ships possess one key difference.\n\n   Last month I revealed that the so-called \"Stealth Program\" has\nsucceeded in developing a kind of electromagnetic invisibility\nshield.  This technique makes an object invisible from a distance\nby distorting light waves in its vicinity.\n\n   A whole new fleet of Phantom war-planes are now going into\ncrash production that use this principle; and, my friends, all of\nthe secret American Bolshevik navy ships have already been\noutfitted with similar Stealth-field equipment!  The Stealth\nprinciple is actually easier to apply to ships than to airplanes\nbecause there is more room for the powerful equipment that\ngenerates the field.\n\n   After NUCLEAR WAR ONE, the secret Stealth navy of the American\nBolsheviks would be light years ahead of any other navy left on\nearth.  It would be perfect for the intended role of world\ndomination.  The Rockefellers set it all in motion long ago, my\nfriends, but three years ago they lost control of the United\nStates Military.  Now it's the American Bolsheviks who are in\ncontrol, and they are bent on war.\n\n   These secret naval installations have precipitated what is\nbeing called the \"Falklands crisis.\"\n\nTopic #2--In AUDIO LETTER(R) No. 73 last month I described\n\"PROJECT Z\", the new Bolshevik three-phase strategy for NUCLEAR\nWAR ONE.\n\n   An elite group of American Bolshevik military planners here\nare flushing out the plan right now at a secret war-room here in\nWashington.  It's a plan by which the United States will strike\nthe first nuclear blow, followed by all-out thermonuclear war\nwith Russia.\n\n   Having set off the holocaust, the Bolsheviks here and in\ncertain other countries plan to rise it out safe in comfortable\nwar bunkers.  Finally after NUCLEAR WAR ONE fizzles out in\nstalemate, they plan to leave behind the ashes of the United\nStates and her allies.  Activating Phase #3 of their grand\nstrategy, they plan to unveil their secret weapons, especially\ntheir secret naval fleets.  With these they plan to conquer and\nrule what is left of the world.  The United States as we know it\nwill be dead and gone; but in the eyes of the Bolsheviks\nthemselves, this outcome will constitute victory.\n\n   Up to now the nuclear war timetable which I first revealed two\nmonths ago is still on track.  They are still shooting for\nnuclear war to begin by September of this year 1982!  Time is\nfast running out.\n\n   The Bolsheviks here are sprinting as fast as they can toward\nwar; but, my friends, the Bolsheviks are not the only runners in\nthis race.  They have two deadly enemies, both of whom are\nequally determined to trip up the Bolsheviks.  One enemy of the\nBolsheviks here is the Rockefeller cartel; the other enemy is the\nnew anti-Bolshevik ruling clique in Russia; and now these two\nmutual enemies of the Bolsheviks are pooling their efforts in\ncertain ways.\n\n   In AUDIO LETTER No. 71 three months ago I reported that a\nlimited, new anti-Bolshevik coalition was in the works between\nthe Rockefeller cartel and the Russians.  The January 26 meeting\nbetween Haig and Gromyko in Geneva, Switzerland, was a turning\npoint in the formation of this coalition.  It is now a reality,\nand is responsible for the so-called \"Falkland crisis\" now\ndominating the headlines.  It should be emphasized that this new\nrelationship between the Rockefeller cartel and Russia falls far\nshort of a true alliance.  They have very major disputes to be\nsettled between them, but for the time being they have called a\ntruce between themselves to deal with their mutual deadly\nenemy--the Bolsheviks here in America.\n\n   The first priority of the Russians and the Rockefellers is to\nslow down the Bolshevik preparations for imminent nuclear war. \nIf they can do that, time is on the side of the Rockefeller\ncartel in certain political movements which I discussed last\nsummer in AUDIO LETTER No. 67.  A slow-down in the nuclear war\ntimetable will also give more breathing space for additional\nanti-Bolshevik actions to be implemented.\n\n   The joint Rockefeller-Russian planners decided by mid-February\nthat military action against the Bolsheviks was essential very\nquickly.  No other type of action had any hope of taking effect\nfast enough to prevent nuclear war by the end of this summer.\n\n   The exact details of the \"PROJECT Z\" war plan are not known to\neither the Rockefellers or the Russians, but the general outlines\nare known to be as I described last month.\n\n   It was decided that military action should be devised that\nwould undermine Phase #3 of the Bolshevik war plan--that is, the\nBolshevik-controlled secret naval installations and fleets in the\nSouthern Hemisphere should be attacked and crippled.  By working\ntogether, the Rockefeller cartel and the Russians were able to\ndevise an attack plan which neither could have carried out alone. \nThe Rockefeller group, who built and originally controlled these\nbases, provided detailed Intelligence about the best way to\nattack them.  The Russians with their enormous military machine\nprovided the muscle to actually carry out the attack.\n\n   It was essential to devise a scheme that would enable both\nsecret fleets in the South Atlantic and South Pacific to be\nattacked.  Survival intact of either fleet would leave the\nBolshevik war plan still workable.\n\n   Military analysts concluded very quickly that a direct assault\non the New Zealand facilities was out of the question.  There was\nno combination of commandos, frogmen, or other military force\nwhich could possibly keep an attack secret from the outside\nworld.  Any attack on the New Zealand bases would set off the\nvery war which the Rockefellers and Russians want to prevent.\n\n   But the situation in the South Atlantic was a different\nmatter.  In a way, the greatest asset of South Georgia Island was\nalso its Achilles' heel.  The extreme isolation which protected\nthe secrecy of the South Georgia base also made a covert military\nassault feasible.  The key lay with Argentina and her\nlong-standing claims to the Falkland Islands.\n\n   As I mentioned in Topic #1, the Rockefeller cartel has\ndominated all of Latin America for decades.  Cartel operatives\nwere sent to Argentina to work out a deal with the government\nmilitary junta there.  The historic dispute over the Falkland\nIslands was to be used to provide a ruse, a military cover, to\nenable the South Georgia base to be attacked.  The Argentine\ngenerals were not told everything about the situation by any\nmeans, but they were told enough to make clear what they were to\ndo.\n\n   As an inducement to cooperate, the Argentine leaders were\npromised handsome rewards.  They were guaranteed that after the\nshooting was over, the Falkland Islands would remain in Argentine\nhands.  This guarantee included the promise of covert military\nassistance as needed against the Royal Navy.  And to bolster the\ntroubled Argentine economy, it was promised that the Rockefeller\ncartel will help develop the immense offshore oil reserves.  With\nthese combined promises of military glory and financial rewards,\nthe Argentine military junta agreed to the plan.\n\n   On March 19 Argentina carried out Act #1 in the joint attack\nplan.  A group of Argentine scrap-metal merchants, of all things,\nlanded at the abandoned old whaling station on South Georgia\nIsland.  Supposedly they were there to dismantle the old\nbuildings and cart them off to sell.  While they were at it they\nalso raised the Argentine flag over the work-site.  The British,\nalways nervous about South Georgia Island, promptly reacted as\nexpected.  The British Antarctic survey ship \"Endurance\" put 22\nMarines ashore.  They drove off the scrap merchants and tore down\nthe Argentine flag.\n\n   The incident provided the desired excuse for the Argentine\nJunta to bring the simmering 150-year-old Falklands dispute to a\nboil.  From time to time in the past, Argentina has claimed that\nSouth Georgia is part of the Falklands because it is administered\nthat way by Britain.  That argument is very flimsy but it now\ncame in very handy.  It was nothing new to hear this from\nArgentine leaders, so there was no hint of what was really afoot.\n\n   During late March, Argentine military forces started\nassembling for an assault on the Falklands.  \"Nothing new\",\nthought the British high command.  Argentina has carried out\nthreatening maneuvers in the past many times.  It was believed\nthat they were about to do it again; but on April 2 Argentine\nforces did the unexpected.  After many past false alarms, this\ntime they actually invaded and seized the Islands.  All Argentine\npublic statements emphasized the long-standing historical claims\nto the Falklands themselves; but just for good measure, the next\nday a small Argentine force also seized far-off South Georgia\nIsland.  The force was so small that it gave the appearance\ninitially that it was just a side show from Argentina's point of\nview; however, the small contingent of 22 Royal Marines were\noverpowered and bundled off the Island along with a group of 13\nalleged scientists.  That was the moment of payoff in the joint\nRockefeller-Russian attack plan.\n\n   Thanks to the elaborate distraction staged by the Argentine\nforces, a special commando team got onto the Island undetected. \nBased on the detailed Rockefeller information about the base, the\nteam moved to a location on the mountain directly above the\ncavernous secret base.  Special high-speed drilling equipment was\nset up by the Rockefeller members of the team while the Russian\nmembers concentrated on military defense.  By late that evening,\nApril 3, the military high command in London finally learned what\nwas really taking place.  The secret South Georgia base was under\nattack by virtually the only means possible.  The joint\nRockefeller-Russian team were drilling a shaft down through the\nmountain toward the hollowed out cavern inside.  It was only a\nmatter of time until their drill would break through the ceiling\nof the giant hidden naval base.  Once the hole was made, the next\nstep was obvious.  The Rockefeller-Russian team would put a\nweapon of some kind through the hole.  The best guess was that it\nwould be a nerve gas.\n\n   The shock waves that went through the highest levels of the\nBritish government on the evening of April 3 can hardly be\ndescribed, my friends.  The Thatcher government, like the\nso-called Reagan Administration here in America, is Bolshevik\ncontrolled.  That's why Margaret Thatcher always says, \"Me, too\"\nany time the Reagan Administration says or does anything against\nRussia.  Both governments are party to the secret nuclear war\nplan in complete betrayal of the people of their respective\ncountries, and on the evening of April 3 they suddenly discovered\nthat their precious war plan was in deep, deep trouble.\n\n   Immediately the Thatcher government started assembling a naval\narmada to sail for the South Atlantic.  Haste was the order of\nthe day.  The drilling on South Georgia Island was proceeding\naround the clock.  The best estimates were that the drilling\nwould break through into the roof of the naval base in about\nthree weeks, on or about April 24.  If help did not reach South\nGeorgia by then, the secret installation might be doomed.  The\nforces stationed at the installation itself were unable to defend\nthemselves under the circumstances.  Their mighty naval ships\nwere ships in a bottle.  They did not dare open the bottle to\nsail out to fight because the Russian commandos were armed with\ntactical and nuclear weapons.  To open the blast-proof entrance\ndoors would be suicide.\n\n   On April 5, just two days after South Georgia Island was\nseized, some 40 naval ships began moving out of British ports. \nThe same day Lord Carrington was sacked as Foreign Minister.  He\nwas forced to resign, my friends, because he had assisted the\nRockefeller attack plan by downplaying the Argentine attack\npreparations.\n\n   That same day, April 5, New Zealand, the home of the other\nsecret naval fleet, broke diplomatic relations with Argentina. \nThe two hidden New Zealand facilities had been placed on \"Red\nAlert.\"  As a precautionary measure, all submarines at the twin\nbase were ordered to sea.  Several surface ships were already at\nsea undergoing \"sea trials\", but that still left seven (7) major\nships inside the hidden twin naval base including one of the\nnuclear aircraft carriers I mentioned earlier.\n\n   On that busy day of April 5, Argentina's Foreign Minister,\nCosta Mendez, was at the United Nations in New York.  He was\nalarmed by the deployment of such a large part of the Royal Navy. \nCosta Mendez hurried here to Washington to seek reassurances from\ncertain officials.  He got them!\n\n   For the next two weeks or so the news was filled with stories\nabout the allegedly slow movement of the British fleet while\nnegotiations went on.  That, my friends, was only a cover story. \nThe Royal Navy was actually joining up and moving as rapidly as\npossible toward South Georgia Island.  If the task force arrived\nin time to save the secret base, a major battle was likely.  The\nofficial stories about \"slow movement\" of the British armada were\nintended to give a cushion of time for that battle.  If need be,\nthe fleet would have several days to retake South Georgia Island,\nthen it could move on to arrive near the Falklands on the\nannounced schedule.  In this way the crucial importance of South\nGeorgia Island would be hidden and the big secret preserved.\n\n   It was initially expected that advance elements of the British\nfleet would reach the vicinity of South Georgia Island within two\nweeks.  That would have been soon enough to attack the joint\nRockefeller-Russian commando team and stop the drilling before it\nwas completed.  But Russian Cosmospheres and submarines made a\nshambles of the plan.\n\n   Key advance elements of the South Georgia attack contingent\nleft Ascension Island early April 14, two days before it was\nannounced officially.  Shortly after they did so, they ran into\ntrouble.  Russian Cosmospheres and attack submarines closed in on\na single ship which was critical to the planned counterassault on\nSouth Georgia Island.  The Cosmospheres bombarded the bridge and\ncombat information center of the ship with neutron radiation.  In\nmoments the ship was without any command, its communications and\nradar silenced.  Then a Russian \"sub\" closed in and quickly\nfinished off this key British ship with torpedoes.  It broke\napart with secondary explosions and sank rapidly.  So far as is\nknown, there were no survivors.\n\n   This unexpected shock in the mid-Atlantic produced two\nresults, both important:\n\nFirst, it caused a slowdown in the race toward the South Atlantic\nby the British armada.  The task force had to be regrouped into a\nconfiguration better suited for an enroute defense, but that cost\nvaluable time.  Public announcements from London about the\nprogress of the fleet reflected this slowdown.  The timetable for\narrival on battle stations near the Falklands started stretching\nout longer and longer.  All this bought extra time for the joint\ncommando team on South Georgia Island.  The drilling continued.\n\nThe other result of the sinking was equally important.  Word was\nflashed to the South Pacific Stealth navy to prepare for possible\naction.  It was obvious that the Russian Navy was getting\ninvolved in the Atlantic, which meant that the Royal Navy could\nbe in big trouble.  During the dead of night, early April 15, the\nseven Stealth ships put to sea from their twin secret bases in\nsouthern New Zealand.  They deployed to a secret operational\nheadquarters area in the Antipodes Islands, 450 miles southeast\nof New Zealand.  Their electromagnetic shields were operating to\nprovide protection from attack.  These shields make it impossible\nto communicate with the outside world or even to see it, as I\nexplained last month; but once they arrived at the Antipodes, the\nStealth ships hooked up to buoys equipped with shielded\ncommunication cables to the Island headquarters.  The Antipodes\nheadquarters, in turn, was in constant touch with the South\nGeorgia base by way of a transoceanic cable around the tip of\nSouth America.  The deployment of the available ships of the\nSouth Pacific Stealth fleet was exactly what the joint\nRockefeller-Russian planners had hoped for.  The ships had been\nflushed out from their essentially invulnerable hiding place in\nNew Zealand!\n\n   The British ship's sinking of April 14 was also followed by\nother events.  On April 15 the Argentine Navy started moving out\nof port.  The same day, Alexander Haig arrived again in Buenos\nAires.  Supposedly he was there as a diplomat, but in reality he\nwas there as a General, dealing with Generals.  Haig is the top\nGovernmental operative of the Rockefeller cartel, as I have\nrevealed in the past.  He was making sure that the Argentines did\nnot get cold feet and back down at that critical moment.  Four\ndays later, April 19, Haig left for Washington.  As he boarded\nhis plane, Haig somberly told reporters, \"Time is running out.\" \nAnd so it was, my friends, for the secret South Georgia base.\n\n   The very next day, April 20, the drill broke through into the\nhollowed-out cavern of the naval base.  Bolshevik military\nanalysts in London had not expected that it could be completed\nuntil at least the following weekend.  The British fleet was\nstill out of range.\n\n   The weapon which the commando team inserted down through the\nlong hole was a small, compact Russian neutron bomb.  When it was\ndetonated inside the confines of the huge artificial cave, the\neffects were devastating.  The intense radiation instantly killed\neveryone inside the base.  Also the heat and blast effects of the\nbomb are believed to have damaged all the ships inside\nsufficiently to badly disable them.\n\n   Meanwhile, Russian Cosmospheres and submarines were converging\non the Stealth ships which were near the Antipodes Islands\nawaiting orders.  From a distance, the ships were invisible to\nthe eye due to their protective shields, which also protect\nagainst beam-weapon attack; but they were sitting ducks for the\ntactics which the Russians employed.\n\n   Floating overhead, the Cosmospheres located the seven ships\nusing their Psychoenergetic Range-Finding equipment known as PRF. \nAs I have reported in the past, there is no method known by which\nPRF can be jammed.  The Cosmospheres radioed the exact locations\nof the ships to the attack submarines.  The \"subs\" were armed\nwith special non-homing, non-nuclear torpedoes designed to\nexplode on impact.  More sophisticated torpedoes would have been\nthrown off course or detonated prematurely by the protective\nshield of each ship; but these simple torpedoes just cruise right\nthrough each invisibility field to strike the ship and explode. \nWithin 15 minutes after the attack began, all seven Bolshevik\nStealth ships were on their way to the bottom, and with them went\ntheir Bolshevik Commanders and mercenary crews collected from\naround the world.\n\n   The South Pacific action took place just after sunset local\ntime.  The time here in Washington was around 2:00 P.M. April 23. \nThat evening Secretary of State Haig was seen briefly in public\nwith the new British Foreign Minister, Francis Pym.  Pym was\nwearing the artificial pseudo-smile which diplomats are taught\nalways to display in public.  But not Haig.  Haig was grinning\nfrom ear to ear, and no wonder.  The joint Rockefeller-Russian\nmilitary operation had been a brilliant success.  The secret\nBolshevik South Atlantic fleet had been virtually wiped out,\nbottled up inside South Georgia Island; and the South Pacific\nfleet, while not totally wiped out, had been badly crippled.  By\nworking together, the Rockefeller cartel and the Russians had won\nthe secret naval war of the Southern Hemisphere.\n\nTopic #3--As I say these words, news reports give the impression\nthat war is about to erupt in the South Atlantic, but the real\nwar in the Southern Hemisphere is already over.  What we are\nwatching now is the beginning of its bloody aftermath.  That\naftermath is the battle for the Falkland Islands.  They have been\npromised to Argentina as a reward for her role in the secret war.\n\n   At this moment the Bolsheviks here in Washington are pressing\nfor a public announcement that the United States will side with\nBritain.  As soon as that takes place, military action will heat\nup fast around the Falklands.  Britain has no choice but to\nfight.  She has already suffered casualties which cannot be\nexplained without a public battle; but by fighting, the\nBolsheviks in Britain are running the risk of a humiliating and\ntragic defeat for the Royal Navy.\n\n   Meanwhile, the Rockefeller strategists here are now\nconcentrating on a fast-building, anti-nuclear-war campaign.  On\nall sides now we are hearing about the so-called \"nuclear freeze\nmovement.\"  There are documentaries, articles, publicity of all\nkinds to sensitize us to the terrors of nuclear war.  In recent\nmonths, there have even been referenda popping up on election\nballots dealing with the nuclear war issue.  Medical doctors are\nbanding together to warn the public about what would happen if\nthere were a nuclear war.\n\n   We are being told that all this is just popping up\nspontaneously.  We are now 37 years into the nuclear age and\nnothing like this has ever gained so much momentum before, yet\nnow we are supposed to believe that millions of Americans have\nspontaneously gotten the same ideas at the same time.  If you\nbelieve that, my friends, I give up.  Movements like this never,\nand I mean never, develop without leadership, organization, and\nmoney--and plenty of it.\n\n   What we are watching is the Rockefeller public relations\nmachine at work.  As I've explained in the past, the Rockefeller\ncartel cannot afford to let a nuclear war take place.  If it\ndoes, they will lose everything because they are not in a\nposition to control it.  Instead, the deadly enemies of the\nRockefeller cartel, the Bolsheviks here, will win out if there is\na war; and so the Rockefeller faction is now doing everything in\nits power to prevent a nuclear war.\n\n   The present anti-nuclear-war orientation of the Rockefeller\ncartel creates certain temporary common interests between them\nand Russia; but as Russia's new rulers know very well, this does\nnot spring from any great moral perspective on the part of the\nRockefeller group.  It's purely a matter of practical necessity\nright now for the Rockefellers.\n\n   The Russians regard the United States as a house divided, and\nthey are exploiting that division by working in careful ways with\nthe Rockefellers.  Their first priority is to rid the world of\nthe deadly Bolshevik menace of all-out, even suicidal, nuclear\nwar; but once that is done, they know that there will be a day of\nreckoning with the Rockefeller cartel some day.\n\n   The Rockefeller group is working toward a definite objective\nwith their new anti-nuclear-war propaganda.  That objective is\nrenewed power--and power that moves them closer to their old\ndream of WORLD GOVERNMENT.  The Bolsheviks here have unwittingly\nprovided fertile ground for the powerful new Rockefeller antiwar\ncampaign.  Under Bolshevik control, the so-called Reagan\nAdministration has become so hawkish that it's scaring people. \nThe Rockefeller antiwar campaign is designed to capitalize on\nthat latent fear as a tool of power.\n\n   These days the smell of war is in the air.  The Falklands\ncrisis is helping to make that more intense.  The Rockefeller\npropaganda machine is now paving the way for the argument that\nsurrender of sovereignty is the only way to avoid war.  A new\nsuper-United Nations of sorts is now in the works to fill the\nbill.  It will have teeth!  As presently envisioned, the new\norganization will be based in Geneva, Switzerland.  The working\nname, though this may be changed, is the \"World Nonproliferation\nCouncil.\"  The plan is to bring it into being as the outgrowth of\nnuclear nonproliferation treaties, but its true purpose will be\nto use fear--the fear of war--to control us all.\n\n                       LAST MINUTE SUMMARY\n\n   Now it's time for my Last Minute Summary.  In this AUDIO\nLETTER I have reported on the reasons behind the so-called\nFalkland Islands crisis.  The crisis erupted because of secret\nBolshevik-controlled naval installations in the Southern\nHemisphere.  These have been attacked by joint action of the\nRockefeller cartel and the Russians in an attempt to slow down\nthe nuclear-war timetable.  The attacks were successful, but the\nresults remain to be seen.  One result, though, is that the Royal\nNavy has now been drawn into a trap.  Britain's Waterloo at sea\nmay well be at hand.\n\n   My friends, two factions are struggling for control over our\nUnited States--the Rockefeller cartel and the Bolsheviks.  They\ndiffer in style but both seek to control us through fear.  If we\nare ever to rise above their trickery, it must be through the\npower of our Lord Jesus Christ, our only hope.  As the Scripture\ntells us, our Lord \"...has not given us the spirit of fear; but\nof power, of love, and of a sound mind.\"  We must learn to wage\npeace.  As our Lord declared long ago, \"Blessed are the\npeacemakers: for they shall be called sons of God.\"\n\n   Until next month, God willing, this is Dr. Beter.  Thank you,\nand may God bless each and every one of you.\u001a\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 669, "properties": {"category": "comp.graphics", "text": "From: hl7204@eehp22 (H L)\nSubject: Re: Graphics Library Package\nOrganization: University of Illinois at Urbana\nLines: 2\n\n  \n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 670, "properties": {"category": "comp.graphics", "text": "Subject: Rendering Software for Multi-processor Computer S\nFrom: wcarter@trident.datasys.swri.edu (William Carter)\nOrganization: Southwest Research Institute\nLines: 13\n\n\nHello,\n\n    I am searching for rendering software which has been developed\nto specifically take advantage of multi-processor computer systems.\nAny pointers to such software would be greatly appreciated.\n    \nThanks.\n\n-- \nBilly Carter, Software Engineering Section\nSouthwest Research Institute\nwcarter@swri.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 671, "properties": {"category": "rec.autos", "text": "From: mobasser@vu-vlsi.ee.vill.edu (Bijan Mobasseri)\nSubject: Re: Renting from Alamo\nOrganization: Villanova University\nLines: 14\n\n>> 'cause a friend rented a car last year and it turned out he needed a lot more\n>>insurance than what's included in the base price. But on the other hand he \n>>didn't rent it from Alamo.\n>>\n>>Probability that I'll be needing more insurance?\n\n>Unless you have an accident, you won't need more.  \n>\n>Joe\n>\n==================\nLet me see, \"unless you have an accident, you won't need more\", hmmmmmmm.\n\nBijan\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 672, "properties": {"category": "alt.atheism", "text": "From: lmh@juliet.caltech.edu (Henling, Lawrence M.)\nSubject: Re: Americans and Evolution\nOrganization: California Institute of Technology\nLines: 13\nDistribution: world\nNNTP-Posting-Host: juliet.caltech.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr3.195642.25261@njitgw.njit.edu>, dmu5391@hertz.njit.edu (David Utidjian Eng.Sci.) writes...\n>In article <31MAR199321091163@juliet.caltech.edu> lmh@juliet.caltech.edu (Henling, Lawrence M.) writes:\n>\tFor a complete description of what is, and is not atheism\n>or agnosticism see the FAQ for alt.atheism in alt.answers... I think.\n>utidjian@remarque.berkeley.edu\n\n I apologize for posting this. I thought it was only going to talk.origins.\nI also took my definitions from a 1938 Websters.\n Nonetheless, the apparent past arguments over these words imply that like\n'bimonthly' and 'biweekly' they have no commonly accepted definitions and\nshould be used with care.\n\nlarry henling  lmh@shakes.caltech.edu\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 673, "properties": {"category": "comp.windows.x", "text": "From: hsteve@carina.unm.edu ()\nSubject: Re: interface to access separate appl.\nOrganization: University of New Mexico, Albuquerque\nLines: 27\nNNTP-Posting-Host: carina.unm.edu\n\nIn article <9304121644.AA27256@expo.lcs.mit.edu> DBOHDAL@JAGUAR.ESS.HARRIS.COM writes:\n<Dear Xperts:\n<\n<   Here's my problem:  I am designing several related X \n<applications (each one is a separate executable) and  I'd like \n<to build a single control window that would allow the user to \n<access each application (instead of having to locate the correct\n<icon). The Control Window would contain a button for each \n<application and by pressing it, the application's main window\n<would appear.  I would also like to use the application's button\n<as a color status indicator.  Has anyone done this or have any\n<good ideas??  Because these are all separate executables this\n<seems like a communications nightmare to me, but maybe I'm\n<wrong.  I'd appreciate any ideas! I'm using X11R5 and Motif 1.2.1.\n<\n<Thanks,\n<dbohdal@jaguar.ess.harris.com\n\nI can think of two different methods that you could try. 1) use fork and \nexecv 2) use the \"system\" called in your program.  I'm assuming that you're\nrunning under the Unix OS of course.\n\n-- \n    _---_     Steve  \n   / o o \\    hsteve@hydra.unm.edu, hsteve@carina.unm.edu\n  | \\___/ |   \n              Just say NO to VMS!!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.033+0000", "event": "documents", "entityId": 674, "properties": {"category": "misc.forsale", "text": "Subject: MONITOR\nFrom: mike.damico@cccbbs.UUCP (Mike Damico) \nReply-To: mike.damico@cccbbs.UUCP (Mike Damico) \nDistribution: world\nOrganization: Cincinnati Computer Connection - Cincinnati, OH - 513-752-1055\nLines: 2\n\nTracy your monitor is on its way. Mike Damico\n                                                                                  \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 675, "properties": {"category": "sci.electronics", "text": "From: Michael_LaBella@vos.stratus.com\nSubject: Re: Adcom cheap products?\nOrganization: Stratus Computer, Marlboro Ma.\nLines: 20\nNNTP-Posting-Host: m3-enet.eng.stratus.com\n\n\n>Off-shore assembly is one reason that Adcom is able to make products \n>that perform as well as those from people like Audio Research and Van \n>Alstine (and better than Hafler and Forte'), but at a much lower cost. \n\nHow do you spell \"tuna helper\" ? \n\nI gather by off-shore assembly you mean that adcoms are built by \nblue-fin tuna's who are into that squid-fi sound?  (I agree on that one). \nMy Adcom 555 preamp did sound better after installing the famous  \n\"running the chips class \"A\" resistor mod\", and replacing the metal \nbottom cover with plexiglass,, too bad the factory could not make em sound \nbetter,, but better sound, unfortunately, does not appear to be a priority \nwith Adcom, else the mods would neither have been necessary, nor would they \nhave improved what was already touted as superlative state-o-d-art le'sound. \nI really want to hear from all those people out there who have traded up  \nfrom an sp9II (even an sp3a!) to a GFP-555/etc., or maybe from those that \nhave dumped their forte' amps for a GFA-555/etc....  \n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 676, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mlipsie@rdm09.std.com (Mike Lipsie MPU)\nSubject: Re: Splitting drives into two - does it make them faster?\nOrganization: Mitsubishi Electric Research Laboratories, Inc.\nLines: 33\n\nIn article <6D8q2B5w165w@infopls.chi.il.us> andyross@infopls.chi.il.us (Andrew Rossmann) writes:\n>guyd@austin.ibm.com (Guy Dawson) writes:\n>\n>> > the partitions take up disk space, having 3 or 4 partition will cost\n>> > somewhere between 4-8 meg of hard disk space, if you can afoord this\n>> > luxury more power to you, its your choice.\n>> >\n>>\n>> Where does all this disk space go? The DOS partition table is fixed length\n>> and every hard disk carries one. What is useing this lost 4-8MB?\n>\n>  If I remember right, the partition table is allocated an entire CYLINDER.\n>To find out how much it takes up, you need to calculate:\n>heads * sectors * 512\n>\n>  Also, if you create an extended partition, there is a second 'partition'\n>in there for the logical drives.\n\nI think the original respondent (Guy Dawson?) was refering to something\nmuch more elementary.\n\nEvery partition (whether it is the entire disk or not) has two FATs and\nan initial directory.\n\nIf you have a small disk (50 meg or less), I would recommend that it remain\na single partition. Unless you have some other consideration.\n\nIf you have a large disk (greater than 200 meg), multiple partitions can\nmake sense.\n\n-- \nMike Lipsie                                (work) mlipsie@ca.merl.com\nMitsubishi Electronic Research Laboratory  (home) mikel@dosbears.UUCP\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 677, "properties": {"category": "misc.forsale", "text": "From: wchau@acsu.buffalo.edu (Wun-Chun Chau)\nSubject: MFM controller, copy card for sale\nOrganization: UB\nLines: 13\nNntp-Posting-Host: buttercup.eng.buffalo.edu\n\n\n16 bit MFM FD/HD controller \t- $25/b.o.\n\ncopy card w/ software and cable\t- $30/b.o.\n(can copy any protected software)\n\nif interested, please reply to this account\n\n-- \n==wun-chun Chau===============================What a crazy world!=============\nINTERNET:wchau@eng.buffalo.edu UUCP: ...!{rutgers,uunet}!cs.buffalo.edu!wchau\nINTERNET:wchau@cs.buffalo.edu  BITNET: wchau%cs.buffalo.edu@ubvm.bitnet\n===============Do you want to die young? If you know what I mean :) ==========\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 678, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: help: How to reduce the RPMs of a Boxer fan ?\nOrganization: Northeastern Ohio Universities College of Medicine\nDistribution: na\nLines: 18\n\nYes, you increase the RPM slip of a \"boxer\" type fan by installing\na capacitor in series with the fan's power supply.  The air flow of\nsmall 3.5 inch fans can be reduced by about 50% by using a 1 to 4\nuF capacitor.  Use a good grade nonpolarized unit with working\nvoltage rating around 250 volts.  Note that some impriical study is\nusually required to experimentally determine the best size\ncapacitor for a given application.\n\nFor DC powered applications, try the Radio Shack 12 volt box fan.\nIt can run and start reliably from as low as about 4.5 VDC.  It is\nexceptionally quiet, but at admittedly low flow.  I wish I knew who\nmade the fans for Radio Shack.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 679, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bryan@src.sbs.utah.edu\nSubject: Okidata 2410 printer driver\nOrganization: University of Utah Computer Center\nLines: 16\n\n\nI have an Okidata 2410 printer for which I would like to have a printer driver.\nHas anyone seen such a thing?  There is not one on the Microsoft BBS.\nI can print to it from Windows but I have no fonts available and with\nParadox for Windows I can't print labels on it unless there is a proper printer\ndefined.\n\n\nThanks,\n\nBryan K. Ward\nSurvey Research Center\nUniversity of Utah\n\ni-mail: bryan@src.sbs.utah.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 680, "properties": {"category": "misc.forsale", "text": "From: er1@eridan.chuvashia.su (Yarabayeva Albina Nikolayevna)\nSubject: FOR SALE:high-guality conifer oil from Russia,$450/ton,400 ton\nReply-To: er1@eridan.chuvashia.su\nDistribution: eunet\nOrganization: Firm ERIDAN\nLines: 1\n\nInguiry by address:er1@eridan.chuvashia.su\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 681, "properties": {"category": "misc.forsale", "text": "From: zoron@en.ecn.purdue.edu (Soren M Burkhart)\nSubject: Dragon's Lair II & Space Ace ARCADE games for sale\nKeywords: laser games interactive\nOrganization: Purdue University Engineering Computer Network\nLines: 64\n\n\n \n \n   Dragon's Lair II ($400 Complete)\n-------------------------------------\n \n \n  or \n \n   $220 Laser Disc\n   $150 Motherboard/Joystick/buttons\n   $35  Graphics (For arcade cabinet)\n   $50  Brick Power Supply +12/-12/+5\n \n  Space Ace ($430 Complete)\n--------------------------------------\n \n  or \n \n   $250 Laser Disc\n   $150 Motherboard/Joystick/buttons\n   $35  Graphics (For arcade cabinet)\n   $50  Brick Power Supply +12/-12/+5\n    \n \n   Both Space Ace and Dragon's Lair II ($750)\n-----------------------------------------------\n \n   These games require a Sony 1450 Laserdisc player.  The\nnice thing about this player is that you can also watch\nnormal Laserdisc movies on it as well.  I have one which I\nwill sell for $600 by itself, $550 with a purchase of one\ncomplete system or $500 if you buy both systems.\n \n    I currently run this into my entertainment center.  I have\nit housed in a PC computer case with with its own fan, and \npower supply.  I run the audio into my stereo system, and the\nlaserdisc runs directly into the T.V..  I have made a mount for\nthe joysticks and the buttons.  First person who buys both\ngames will get it all, otherwise you have to do it yourself.\n \n    If you would prefer to have it all housed in a normal\narcade cabinet this can be done as well.  The graphics will\ngo nicely along the sides and front of the cabinet.\n \n    Everything works perfectly.  The laserdisc player has an\nRS-232 port which you can use to develop your own multimedia\ntype applications.  The Laserdiscs have been stored in a safe\nplace and have no scratches on them.\n \n    If you are interested please email me.\n \n    Thanks,\n \n     Soren\n \n--------------------------------------------------------------\nSoren Burkhart\nPurdue University        \"Yes, well that is just the sort of\nA.I. & Robotics\t\t  blink-headed pig ignorance I have\nzoron@en.ecn.purdue.edu   come to expect from you non-creative\n\t\t\t  garbage.\"\n \n                              John Cleese (Monty Python)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 682, "properties": {"category": "sci.electronics", "text": "From: markz@ssc.com (Mark Zenier)\nSubject: Re: Can I use a CD4052 analog multiplexer for digital signals?\nOrganization: SSC, Inc.,  Seattle, WA\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 13\n\nTall Cool One (rky57514@uxa.cso.uiuc.edu) wrote:\n: As the subject says - Can I use a 4052 for digital signals?  I don't see\n: why it couldn't handle digital signals, but I could be wrong.  Anyone have\n: any advice?  Thanks.\n\nThe switches have a non-negligable on resistance (up to 1k ohm when\npowered by 5 volts) and a maximum current and a Maximum Static\nVoltage Across Switch.  Not a good bet for TTL.  Should work for\nCMOS, but slow things down a bit.  There are 74HC versions that\nhave better specs. but lower max voltage.\n\nMark Zenier  markz@ssc.wa.com  markz@ssc.com  \n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 683, "properties": {"category": "talk.politics.misc", "text": "From: nils@monroe.dartmouth.edu (Nils Nieuwejaar)\nSubject: Re: We're winning the war on drugs. Not!\nKeywords: drugs DEA WOD legalization\nOrganization: Dartmouth College, Hanover, NH\nLines: 42\n\nkennejs@a.cs.okstate.edu (KENNEDY JAMES SCOT) writes:\n\n>The chart that follows was taken from the Wednesday, April 14, 1993\n>issue of USA Today (\"Drug Use Up Among U.S. Eigth-graders\" by Mike\n>Snider, p. 6D).\n\n>    Adolescents' choices\n\n>    Drugs used by eighth graders in the last month:\n>                      Estimated, per 100 students\n>                             1991     1992   Pct. chg.\n>    Alcohol                  25.1     26.1        +4%\n>    Cigarettes               14.3     15.5        +8%\n>    Marijuana                 3.2      3.7       +16% \n>    Amphetamines              2.6      3.3       +27%\n>    LSD                       0.6      0.9       +50%\n>    Cocaine                   0.5      0.7       +40%\n>    Crack                     0.3      0.5       +67%\n\n>    Source:  University of Michigan Institute for Social Research,\n>    1993 report\n\n>We are not winning the \"war on drugs\".  I think you can see that one\n>of the tactics that the DEA employs to give people the impression that\n>the \"war on drugs\" is being won is to selectively quote statistics---\n>only statistics that support their contention that drug use has gone\n>down.  The excerpt from Time magazine that I included in this post is\n>an excellent example of how organizations like the DEA attempt to\n>deceive the public.\n\nUnfortunately, there's not much we can learn from the statistics presented\nhere either.  Due to rounding, the 1991 est. for LSD could be anywhere\nfrom .550 to .649 and the 1992 est. could be anywhere from .850 to .949.\nThis means that the actual change (if you believe these statistics in the\nfirst place) was anywhere from 31% to 73%.  Similarly the increase in\ncocaine use could be anywhere from 18% to 66% and the increase of\ncrack use could be anywhere from 29% to 120%.  This doesn't even\ntake into account the margin of error which isn't provided here.\n\nThis does not mean that the rest of the argument you present is unfounded,\nbut it does mean that USA Today has (not surprisingly) provided us\nwith virtually no information.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 684, "properties": {"category": "rec.motorcycles", "text": "From: jjb@dtc.hp.com (Jim Brewer)\nSubject: Re: uh, der, whassa deltabox?\nNntp-Posting-Host: moosehead.dtc.hp.com\nOrganization: HP Design Technology Center, Santa Clara, CA\nLines: 6\n\nIn article <C5KxAL.IzC@ccu.umanitoba.ca> klinger@ccu.umanitoba.ca (Jorg Klinger) writes:\n>  I beleive it's called the \"Dentabox\" frame. \n>\n>Nothing some putty and paint won't fix.\n\n  This from someone riding a GSXR?  Gutsy.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 685, "properties": {"category": "sci.med", "text": "From: lundby@rtsg.mot.com (Walter F. Lundby)\nSubject: Re: Is MSG sensitivity superstition?\nNntp-Posting-Host: accord2\nOrganization: Motorola Inc., Cellular Infrastructure Group\nDistribution: na\nLines: 29\n\nAs nobody in the food industry has even bothered to address my previous\nquestion \"WHY DO YOU NEED TO PUT MSG IN ALMOST EVERY FOOD?\" I must assume\nthat my wife's answer is closer to the truth than I hoped it was.\n\nShe believes that MSG is added to food to cause people to eat more of it\nand not quit when they shoud be sated.  To put it a different way, she \nbelieves that for some people MSG causes them to act toward food like an addict.  \n(Eat all the chips, chow down on several packages of noodle soup .... you get the\nidea! }  IF she is right, then the moral and ethical standards of the \nfood, chemical and regulatory groups need to be addressed!!!  Can MSG\nbe considered a conditioning substance (not addictive but sort of habit\nforming) ?\n\nThis brings up a side question of mine.   I have noticed that cats (my\nchildren's and my parent's) seem to fixate on a particular brand of pet\nfood. The cat will eat any product within one brand and not any other\nbrand.  I have wondered if this is not a case of preference, but, some\nsort of chemical training or addiction. My questions, for the net, are:\nDoes the FDA regulate the contents of pet food?  Is it allowed for pet\nfood to contain addictive or conditioning substances?  Is MSG put in \npet food?\n\n-----------------------------------\nI speak for myself and not Motorola\n-----------------------------------\n \n-- \nWalter Lundby\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 686, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: ABC coverage\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nDistribution: usa\nLines: 24\n\nccohen@pitt.edu (Caleb N Cohen) writes:\n>\n>   Boy - everyone has been ripping on ESPN's hockey coverage (or is it\n>just Pittsburgher's who are thrilled with Lange & Steigy?)  For all of \n>you who are unaware -> ESPN bought the air time from ABC and did all \n>the production, advertising sales, commentating, etc -> and even \n>reaped any $ made...\n\nNo, Caleb, it's not the quality of ESPN that I have a problem with;\nit is superb, whereas it did not evolve beyond the point where ESPN\nleft off when hockey went to SC (this is excepting SC's use of feeds\nfrom CBC (-;).  It's the amount of hockey they're showing, or lack\nof it, that we're complaining about.  They had rights to two OT's\nthat could've been shown on Sunday night after baseball ... and\nthey had pickup trucks racing through oversized pigpens followed\nby Super-8 home movies of old car races (yes, I was checking in\ndesperation for Canucks-Jets) last night after SportsCenter.\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 687, "properties": {"category": "rec.motorcycles", "text": "From: tony@morgan.demon.co.uk (Tony Kidson)\nSubject: Re: Insurance and lotsa points... \nDistribution: world\nOrganization: The Modem Palace\nReply-To: tony@morgan.demon.co.uk\nX-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)\nLines: 16\n\nIn article <1993Apr19.211340.12407@adobe.com> cjackson@adobe.com writes:\n\n>I am very glad to know that none of you judgemental little shits has\n\nHey Pal!  Who're you calling litte?\n\n\nTony\n\n+---------------+------------------------------+-------------------------+\n|Tony Kidson    | ** PGP 2.2 Key by request ** |Voice +44 81 466 5127    |\n|Morgan Towers, |  The Cat has had to move now |E-Mail(in order)         |\n|Morgan Road,   |  as I've had to take the top |tony@morgan.demon.co.uk  |\n|Bromley,       |  off of the machine.         |tny@cix.compulink.co.uk  |\n|England BR1 3QE|Honda ST1100 -=<*>=- DoD# 0801|100024.301@compuserve.com|\n+---------------+------------------------------+-------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 688, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Re: Freemasonry and the Southern Baptist Convention\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 20\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, jluther@cs.umr.edu (John W. Luther) says:\n\nJohn:\n\n\tIt not \"good netiquette\" to quote a complete article :-) NOTHING\nPERSONAL, Please! :-)\n\n>I also appreciate your being amused\n>by such determined ignorance.  Without taking anything away\n>from your mirth, I want to say that these views sadden me.\n>\n\tThis views sadden me too! Don't think that I don't care! Sorry\nif it seemed different. It IS serious stuff; but I have a 'sick' sense of\nhumor though (some say... :-)\n\nTolerance!\n\nTony\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 689, "properties": {"category": "rec.sport.baseball", "text": "From: gt0523e@prism.gatech.EDU (Michael Andre Mule)\nSubject: Re: harry and candy\nDistribution: world,local\nOrganization: Georgia Institute of Technology\nLines: 19\n\n>But I like the way he butchers Andres Galarraga's name.\nY'all lighten up on Harry, Skip'll be like that in a couple of years!!>\n>It comes out like \"gahlah rrrraggggah\".\n>And don't forget his frequent references to the great SF Giant star\n>Bobby Bonds!\n\nHarry's a great personality.  He's the reason I like Cubs broadcasts.\n(It's certainly not the quality of the team).\n\nChop Chop\n\nMichael Mule'\n\n\n-- \nMichael Andre Mule\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0523e\nInternet: gt0523e@prism.gatech.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 690, "properties": {"category": "rec.sport.baseball", "text": "From: mss@netcom.com (Mark Singer)\nSubject: Re: Jewish Baseball Players?\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 18\n\n>In article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n\n\n>\n>It's Stankiewicz, not Stankowitz, and he's not Jewish - he's Polish\n>(by the way, the correct pronunciation - according to Stanky himself,\n>is \"ston-KEV-itch\". all the sportscasters get it wrong)\n>\n\n\nPolish and Jewish are *not* mutually exclusive.\n\n\n\n\n-- \nMark Singer    \nmss@netcom.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 691, "properties": {"category": "misc.forsale", "text": "From: rtsbangi@msuvx1.memst.edu\nSubject: ********cd for sale********\nDistribution: world\nOrganization: Memphis State University\nLines: 11\n\ncd's for sale:\n\n1. jon bon jovi - new jersey      $8.00\n2. boomerang    - soundtrack      $8.00\n3. the police   - every breath you take  $8.00\n\n */ $1.00 s/h \n\ne_mail rtsbangi@memstvx1.memst.edu\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 692, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: MAC to LaserJet IIIp\nFrom: osterber@husc8.harvard.edu (Richard Osterberg)\nNntp-Posting-Host: husc8.harvard.edu\nLines: 12\n\n\nI have a friend who has a MAC (LC or LC II I think), and her family has an\n\"extra\" LaserJet IIIp sitting around. Is there any way to connect these\ntwo and make them work without a postscript cartridge?  She told me that a\nrandom friend of hers had mentioned something about some software package\nthat could do the translation...\n-Rick\n-- \n+--------------------------------------------------------------------------+\n|  Rick Osterberg   osterber@husc.harvard.edu  617-493-7784  617-493-3892  |\n|     2032 Harvard Yard Mail Center   Cambridge, MA   02138-7510   USA     |\n+--------------------------------------------------------------------------+\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 693, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: was:Go Hezbollah!!\nOrganization: The Department of Redundancy Department\nLines: 21\n\nIn article <C5I7J7.F7A@eis.calstate.edu> mafifi@eis.calstate.edu (Marc A Afifi) writes:\n\n>Diplomacy has not worked with Israel \n\nOf course, it hasn't.  Besides Egypt, the rest of the Arab world still\nofficially denies that Israel exists.\n\n>and the \n>Lebanese people are tired of being occupied! They are now turning to the\n>only option they see as viable. \n\nKick out Syria?\n\n>(Don't forget that it worked in driving out the US)\n\nAmerican-Occupied Lebanon?  That's a new one on me!\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 694, "properties": {"category": "sci.med", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: Exercise and Migraine\nArticle-I.D.: adobe.1993Apr15.224049.15516\nOrganization: Adobe Systems Incorporated\nLines: 12\n\nIn article <1993Apr15.163133.25634@ntmtv> janet@ntmtv.com (Janet Jakstys) writes:\n>This isn't the first time that I've had a migraine occur after exercise.\n>I'm wondering if anyone else has had the same experience and I wonder\n>what triggers the migraine in this situation (heat buildup? dehydration?).\n>I'm not giving up tennis so is there anything I can do (besides get into \n>shape and don't play at high noon) to prevent this?\n\nI've gotten migraines after exercise, though for me it seems to be related\nto exercising without having eaten recently.  \n\nSherri Nichols\nsnichols@adobe.com\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 695, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dbell@coral.bucknell.edu (Dave Bell)\nSubject: I need modem selection help! (especially vocabulary)\nOrganization: Bucknell University\nLines: 15\nDistribution: world\nNNTP-Posting-Host: macf61.bucknell.edu\n\nI've recently ordered a Centris 650 and need to decide on which modem to\nbuy.  I'm pretty sure I want to get a fax/data modem that can run at 14.4k,\nbut is it worth it?  I'll primarily only be 'conversing' over CompuServe or\nsome other link to the Internet, but I'm not sure if those systems can\nsupply ME with data at 14.4k.  Another question I have is in some of the\nmodem lingo out there.  I understand baud rates, but what does V3.4 and\nV3.4bis mean?  I could really use some suggestions as to what a good modem\nfor around $300 would be, and why it would be a good choice.\n\nThanks for your time.\n\nDave Bell\ndbell@coral.bucknell.edu\n\n\"Those who forget the past are condemned to re-live it.\" --Duncan MacLeod\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 696, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: darrylo@srgenprp.sr.hp.com (Darryl Okahata)\nSubject: Re: Problem with Adaptec 1542B SCSI and Jumbo Tape Drive\nReply-To: darrylo@sr.hp.com\nOrganization: Hewlett-Packard / Center for Primal Scream Therapy\nX-Newsreader: TIN [version 1.1 PL9.2]\nLines: 560\n\nRon Mastus (ronaldm@extro.ucc.su.OZ.AU) wrote:\n\n>     I've just replaced my existing DTC SCSI controller with an Adaptec 1542B,\n> and am now having trouble restoring from a Jumbo 250 tape drive.\n\n     Here's a document that I wrote some time back.  It's slightly\nout-of-date, now that DOS 6 has been released, but much of it is still\nuseful.\n\n     -- Darryl Okahata\n\tInternet: darrylo@sr.hp.com\n\nDISCLAIMER: this message is the author's personal opinion and does not\nconstitute the support, opinion or policy of Hewlett-Packard or of the\nlittle green men that have been following him all day.\n\n===============================================================================\n$Id: adaptec.txt 1.8 1993/01/25 00:55:08 darrylo Rel darrylo $\n          Hints and Tips for the Adaptec 1540/1542 SCSI adapter\n\n\n     This document contains hints and tips for getting the Adaptec\n1540/1542 SCSI adapter to work with various hardware and software\npackages.  They are based upon my experiences with an Adaptec 1542A\ncontroller, and will, hopefully, help others.  However, note that I\ncannot guarantee that the following will really help you (it works for\nme), and the information in this document could possibly cause you to\nlose some or all of your files on your hard disk.\n\n     IMPORTANT!  BACK UP THE ENTIRE CONTENTS OF YOUR HARD DISK BEFORE\nTRYING ANYTHING BASED UPON INFORMATION IN THIS DOCUMENT.\n\n     Copyright 1993, by Darryl Okahata.  This document may be freely\ncopied for personal use only, and may not be reprinted in a for-profit\npublication without the consent of the author.  Please note that I have\nno connection with Adaptec other than as a customer.\n\nTopics covered in this document:\n\n\t* Windows 3.1 enhanced mode\n\t* Floppy-controller-based tape backup devices\n\t* Sound cards\n\t* Miscellaneous info\n\n     Please note that parts of this document contain technical, and\nsometimes terse, descriptions of problems.\n\nFor reference:\n\n\tAdaptec technical support:\t(800) 959-7274\n\tAdaptec BBS (2400/9600):\t(408) 945-7727\n\nPlease send comments, corrections, etc. via email to me:\n\n\tCompuServe:\t75206,3074\n\tInternet:\tdarrylo@sr.hp.com\n\n\n***** Windows 3.1 enhanced mode:\n\n     The Windows 3.1 install program should automatically configure DOS\nand Windows for use with the Adaptec 1542.  However, just in case\nsomething went wrong, I'm going to describe some of the changes needed\nto get Windows 3.1 working with the 1542.  Also, you may have noticed\nthat installing Windows 3.1 makes your PC run much slower, even when\nyou're not running Windows; methods of speeding it up are discussed in\nthe section called, \"Windows 3.1 runs slowly\".\n\n\n* MSDOS configuration:\n\n     The Windows install program adds the SmartDrive disk cache to your\nCONFIG.SYS and AUTOEXEC.BAT files.  If you follow the instructions,\nyou'll notice that you'll need to use double-buffering with SmartDrive\n(this is the default setup).  You'll also notice that your system runs\nmuch, much slower -- in both Windows *AND* MSDOS.  See the section\ncalled, \"Windows 3.1 runs slowly\", for some ways of speeding your system\nup.\n\n\n* Windows configuration:\n\n     To get the Adaptec 1542 to work with Windows, make sure that the\n\"[388Enh]\" section of the SYSTEM.INI file contains the entry:\n\n\tVirtualHDIRQ=Off\n\nI believe that the Windows install program automatically adds this entry\nto SYSTEM.INI, but I'm not sure.  If this doesn't work for you, you\nmight want to try adding some more lines:\n\n\tVirtualHDIRQ=Off\n\tSystemROMBreakPoint=false\n\tEMMExclude=A000-CFFF\n\n(You probably don't need the above lines, though.)  The\n\"SystemROMBreakPoint\" entry is used to enable support for memory\nmanagers like QEMM/386MAX (only needed if you use such programs).\n\n\n* Windows 3.1 runs slowly:\n\n     Once you do get Windows 3.1 running with the 1542, chances are that\nyour system is running much slower than before.  If it's not, it's\nprobably because:\n\n     1. You happen to be using ASPI4DOS.SYS version 3.1 in your\n\tCONFIG.SYS file.  Congratulations -- this appears to be a\n\twinning solution.\n\n     2. You are very lucky.  Whether your luck will hold out remains to\n\tbe seen ....\n\nIf your system is running much slower than before, this is almost\ndefinitely caused by Smartdrive with double-buffering.  According to the\nWindows documentation, and the Microsoft technical note #Q81808\n(\"SMARTDrive Double Buffering Required with ASPI4DOS.SYS\"), you must use\nSmartdrive with double-buffering enabled.  While this works, it really\nslows down your PC; I once estimated that this slowed my PC down by a\nfactor of 5 (FIVE).  As I consider this unacceptable, I looked for other\nsolutions.\n\n     Unfortunately, you cannot just disable double-buffering.  If you\ndo, Windows 3.1 in enhanced mode will not work, and you might even\ndestroy the contents of your hard disk by trying to run Windows 3.1.\nWhat you can do is one of the following:\n\n     1. Use other drivers that provide double-buffering.  It is my\n\topinion that the unbelievable slowness in Smartdrive is caused\n\teither by horribly inefficient double-buffering, or by a bug in\n\tSmartdrive.\n\n     2. Use a driver that provides \"VDS\" services (\"VDS\" stands for\n\t\"Virtual DMA Services\").  This is a standard, which is supported\n\tby Windows 3.1, that allows bus-mastering disk controllers (like\n\tthe 1542) to work with Windows.\n\n     After trashing my hard disk countless times, I found the following\nsolutions, none of which require using Smartdrive (note, however, that I\nam now getting occasional parity errors, which are probably *NOT* caused\nby these solutions, but might be -- see below).  While the following\ndoes not require Smartdrive, using some kind of disk cache utility is\nstrongly recommended, as this makes Windows run much, much faster:\n\n1. If you do not have the ASPI4DOS.SYS driver, or you do not need ASPI\n   functions (for controlling a CDROM, tape drive, more than two\n   physical hard disks, etc.), you can add the SCSIHA.SYS driver to your\n   CONFIG.SYS file, e.g.:\n\n\tDRIVER=c:\\SCSIHA.SYS /V386\n\n   (Windows needs the \"/V386\" option.)  This driver MUST be loaded into\n   LOW memory (it cannot be loaded into high memory), and it occupies\n   about 16-20K.  As of November 1992, the SCSIHA.SYS driver could be\n   obtained from the Adaptec BBS at (408)-945-7727 (hopefully, it's\n   still there).\n\n2. If you need ASPI functions and have the ASPI4DOS.SYS driver, version\n   3.0 or 3.0a, you can use both the ASPI4DOS.SYS and SCSIHA.SYS drivers\n   in your CONFIG.SYS file, e.g.:\n\n\tDRIVER=c:\\ASPI4DOS.SYS\n\tDRIVER=c:\\SCSIHA.SYS /V386\n\n   Amazingly enough, the SCSIHA.SYS driver can also be loaded high\n   (assuming you have DOS 5.0); I would have thought that this would\n   crash my system, but it doesn't.  I asked Adaptec's technical support\n   about this, and they said that loading SCSIHA.SYS high should be fine\n   as long as ASPI4DOS.SYS is loaded LOW.\n\n   On my system, NOT using SCSIHA.SYS with ASPI4DOS 3.0a would\n   occasionally cause Windows 3.1 to crash upon restarting or exiting\n   Windows, with the additional result of a corrupted disk (some of my\n   C:\\WINDOWS\\*.GRP files would be corrupted).  For me, these crashes\n   usually occurred while making a different program from PROGMAN.EXE\n   the default Windows shell, and vice-versa.  This is the reason\n   SCSIHA.SYS may be necessary.\n\n   I have absolutely no idea if SCSIHA.SYS is necessary with versions of\n   ASPI4DOS earlier than 3.0.\n\n   Note that many people can use ASPI4DOS 3.0 or 3.0a without\n   SCSIHA.SYS; they do not seem to have any problems at all.  I consider\n   these people lucky.  Others, like me, have had all sorts of problems.\n\n3. In my opinion, the best, but not necessarily the easiest, solution is\n   to upgrade to ASPI4DOS 3.1.  The SCSIHA.SYS driver is no longer\n   needed.  Unfortunately, while you could get previous ASPI4DOS\n   upgrades from the Adaptec BBS, the ASPI4DOS 3.1 driver is not\n   available from the Adaptec BBS.  As far as I know, there are only\n   three ways to get a copy:\n\n      * You can buy the new (as of November 1992) Adaptec EZ SCSI driver\n\tkit, which supposedly includes ASPI4DOS 3.1 as well as other\n\tdrivers, such as CDROM drivers.  I believe the list price is\n\taround $75.\n\n      * If you already have a copy of an older version of ASPI4DOS, you\n\tcan supposedly contact Adaptec to upgrade it to EZ SCSI for\n\taround $30.\n\n      * A copy of ASPI4DOS 3.1 is included in Central Point PC Tools 8.0\n\tfor MSDOS.  Note that the documentation and driver are stored in\n\tdifferent directories.  Note further that only ASPI4DOS is\n\tincluded; the CDROM drivers and drivers to support more than two\n\thard disks are not included.  This is where I obtained my copy\n\tof ASPI4DOS 3.1.\n\nNote, however, that I am now getting occasional parity errors with\nWindows.  In all probability, defective hardware in my PC is causing\nthis, as I upgraded my motherboard just after I found the above\nsolutions.  However, because these parity errors occur only during disk\naccesses, there is a very small, but definite, possibility that the\nparity errors are driver-related (for example, changing the bus on/off\ntiming for certain disk transfers might cause this).  I've run various\nmemory tests for hours at a time, and these tests have found no\nproblems.  This problem is probably caused by memory with marginal\ntiming requirements, which cause parity errors during disk transfers\n(this is why the memory tests didn't find any problems -- the problems\nshow up only under disk I/O).  However, I'm mentioning this just in case\nit isn't a hardware problem.\n\n\n***** Floppy-controller-based tape backup devices:\n\n     There are two possible problems with using the Adaptec 1542 with a\nfloppy-controller-based tape backup device, such as the Colorado Memory\nSystems Jumbo 250:\n\n1. Tape backups/restores can take a very long time.  The tape drive\n   constantly starts, stops, starts, stops, etc.\n\n2. Tape operations may be erratic, or encounter too many tape errors.\n   (This problem might be caused by defective hardware on my 1542.\n   However, I've heard of other people having similar problems, and so\n   I'm mentioning this just in case it is not a hardware problem on my\n   1542.)\n\n\n* Tape backups/restores take a long time:\n\n     If you have a floppy-controller-based tape backup device, you may\nhave to adjust the Adaptec 1540/1542 \"bus on/off timing\" for best\nresults when using the tape drive.  Normally, while doing a tape backup\nor restore, the tape drive motor should be continuously running, with\nonly an occasional pause.  However, the default bus timing on the\nAdaptec 1540/1542 may cause the tape drive motor to start and stop,\nstart and stop, every few seconds.  This causes needless wear to the\ntape and tape drive (however, note that a dirty tape head or a defective\ntape drive can also cause this -- make sure your tape heads are clean).\nThis also causes the tape backup or restore to take much, much longer\nthan necessary.\n\n     The problem here is that these tape backups use the floppy DMA to\ntransfer data in memory to/from the tape drive, and the Adaptec uses DMA\nto transfer data in memory to/from the hard disk.  The floppy DMA needs\nto feed data to the tape drive at a certain rate; if the tape drive is\nnot fed data quickly enough by the floppy DMA, the tape drive stops,\nrewinds a bit, and restarts (once enough data is eventually fed to it).\nThe default bus timing on the Adaptec (which is really DMA timing) is\n\"too large\".  For example, when a backup is done, data has to be\ntransferred from a hard disk to memory, and then from memory to the\ntape.  Because the default timing on the Adaptec \"hogs\" the memory too\nmuch (too much time is spent transferring data from a hard disk to\nmemory), not enough time is spent transferring data from memory to the\ntape drive.  As a result, the tape drive constantly starts and stops,\nbecause data is not fed to it quickly enough.\n\n     The solution is to change the Adaptec's bus on/off timing.  The\ndefault factory setting is 11 microseconds on, and 5 microseconds off.\nThe \"bus on\" timing needs to be lowered to 2-4 microseconds.  This can\nbe done in one of two ways:\n\n* If you have ASPI4DOS, you can use the \"/n\" option.  For example, I use\n  a \"bus on\" timing of 4 microseconds, which means that I use the\n  following line in my CONFIG.SYS file:\n\n\tDEVICE=c:\\aspi4dos.sys /n4\n\n  Note that there is NO space between the \"/n\" and the \"4\".\n\n* If you don't have ASPI4DOS, your only recourse is to try to find a\n  program called \"SETSCSI.EXE\", which is very difficult to find.  The\n  reason is that Adaptec, for reasons of their own, does not seem to\n  want this widely distributed.  I once asked someone who worked for\n  Adaptec, and they asked me to not upload it anywhere.  If you have\n  anonymous ftp access to the Internet, you could try using archie to\n  hunt down a copy; I believe that there are a couple of sites that have\n  it.  If you do find a copy, you run it like so:\n\n\tsetscsi -n:4\n\n  This adjusts the \"bus on\" timing to 4 microseconds.  Running\n  SETSCSI.EXE without any arguments resets the bus timing back to the\n  factory defaults.\n\n  Note that it seems that you cannot use SETSCSI.EXE if you use\n  ASPI4DOS; SETSCSI.EXE crashed my system if ASPI4DOS was loaded.  I\n  could use SETSCSI.EXE with SCSIHA.SYS, however.\n\nDo not lower the \"bus on\" timing below 2 microseconds, or increase it\nabove 11 microseconds.  If you lower it too low, the hard disk\nthroughput will suddenly drop; your system will feel slower.  For me, 4\nmicroseconds works fine.  This value may work fine for you, or you may\nhave to adjust it downwards a little.\n\n     Once you've lowered the \"bus on\" timing, tape backups and restores\nshould run faster.\n\n     Also, do not experiment with the bus on/off times (with the other\noptions that I have intentionally not described), unless you know what\nyou are doing.  Bad combinations can cause parity errors and worse, by\nstarving memory refresh.\n\n     A program called BUSTIFIX.EXE exists on the Adaptec BBS.  Unless\nthis has been upgraded since I last checked (which has been a while),\nthis is a self-extracting archive containing a batch file and a couple\nof other files.  This batch file was supposed to allow one to set the\nbus on/off times for the 1540/1542 and others.  However, when I tried\nrunning this program with my 1542A, my system crashed.  At the time, I\nwas running SCSIHA.SYS, and I didn't check to see if there was a\nconflict with it.  Maybe this old program works only with the 1542B,\nalthough the docs say that it works with the 1542A?\n\n\n* Erratic tape operations or too many tape errors:\n\n     This \"problem\" may or may not exist.  Although it existed on my\nsystem, a hardware problem just on my particular 1542 could cause it.\nHowever, I've heard of other people having similar problems, and so I'm\nmentioning this just in case it isn't a hardware problem just on my\n1542.\n\n     Symptoms of this \"problem\", which persists even after cleaning the\ntape head:\n\n1. Backing up to tape encounters \"unusable sector detected\" errors,\n   resulting in an aborted tape backup.\n\n2. Tape backup works, but the tape compare fails.\n\n3. The tape drive starts, stops, starts, stops, etc. much too often.\n   Unlike the above-mentioned problem (\"Tape backups/restores take a\n   long time\"), where the tape drive starts and stops every few seconds,\n   this kind of starting/stopping occurs every few 10-20 seconds or so.\n\n4. Fastback Plus 3.1 does not find/see any tape backup devices.  Other\n   programs, like Central Point Backup and the CMS Jumbo software\n   (assuming that you have a CMS Jumbo 250 tape drive) can find/see the\n   tape drive, but Fastback Plus 3.1 cannot.\n\n5. Too many tape read errors.\n\n     Although I do not know what is causing this problem, I discovered\nthat using a different floppy controller solves it.  A few months ago, I\nupgraded my motherboard, which contained an integrated floppy\ncontroller.  As I already had a floppy controller on the 1542, I\ninitially disabled the motherboard floppy controller.  After a while, I\ndecided to try disabling the 1542 floppy controller and using the one on\nthe motherboard.  When I did this, the tape drive (a CMS Jumbo 250)\nreliability increased dramatically, and Fastback Plus 3.1 was suddenly\nable to find and use the tape drive.\n\n     I don't know if this was caused by a hardware problem on my 1542.\nOn the one hand, the floppy drives worked great when they were attached\nto the 1542, which seems to say that there was nothing wrong with the\n1542.  On the other hand, the tape drive didn't work well attached to\nthe 1542 floppy controller, but it did work when attached to a different\ncontroller; this could be an indication of a hardware problem on my\n1542.  I did change floppy drive cables, and so it is conceivable that\nthe problem was in the cables.  I don't know what the cause really is;\nhowever, if you're having similar problems, you might want to consider\ntrying a new floppy controller.\n\n\n***** Sound cards:\n\n     Many popular sound cards can play or record digitized sound, and\nthis is typically done using DMA.  Like the tape drive DMA, the\nAdaptec's DMA can conflict with the sound card DMA.  Unlike that of the\ntape DMA, this \"conflict\" usually manifests itself as a parity error\n(your system crashes with a parity error message).  What happens is\nthat, data is being transferred so quickly by the sound card and the\nAdaptec, memory refresh cannot occur quickly enough, which causes a\nparity error.  Usually, getting a parity error means that there is a\nhardware problem with your system; in this case, however, the parity\nerror is not a symptom of bad hardware.\n\n     I've found that such parity errors typically occur while recording\ndigitized sound, and the chances of such errors increase as you increase\nthe recording fidelity (e.g., higher sampling rate, recording in stereo,\nrecording using 16-bits instead of 8, etc.).\n\n     Like the tape drive solution, the solution here is to lower the\nAdaptec's \"bus on\" timing.  See the section on tape drives for\ninformation on how this is done.  Note, however, that this may or may\nnot solve the problem; it may only reduce the probability of a parity\nerror.  The software used to record digitized sound can greatly affect\nthis problem (i.e., some software is inefficient).  Disk caches, the\nspeed of your hard disk, and the amount of disk fragmentation can also\naffect this.\n\n\n***** Miscellaneous info:\n\n     This section contains miscellaneous hints, tips, and rumors.  Much\nof it is merely information that I've heard or read about, and have not\nverified.  I believe that the following information is correct, but I'm\nnot sure.  Use it at your own risk.\n\n* With QEMM 6.00, 6.01, and 6.02, you need to specify the \"DB=\"\n  parameter (e.g., \"DB=2\"), unless you are using the ASPI4DOS driver.\n  If you don't, QEMM will crash/hang at bootup.  Although the QEMM\n  manual mentions this, the install program does not seem to detect that\n  a 1542 is present and automatically add this option to the QEMM\n  command line (at least, this occurred with the QEMM 6.00 install\n  program -- I haven't tested any other version).  Earlier versions of\n  QEMM probably need this parameter, but I'm not sure (I've never used a\n  version earlier than 6.00).\n\n  If you use ASPI4DOS, you do not need to give QEMM the \"DB=\" parameter.\n\n* Some or all versions of the 1542 do not support hard disks over one\n  gigabyte in size.  To support hard disks with capacities over 1GB, you\n  need to get a new ROM BIOS from Adaptec.  I'm not sure if this is\n  still true of the latest 1542Bs being sold by Adaptec.\n\n* To connect a CDROM drive to the 1542, you need a SCSI CDROM drive and\n  some drivers.  Note that some CDROM drives have proprietary interfaces\n  (non-SCSI); these drives cannot be used with the 1542.  You have three\n  choices for CDROM drivers (I have no idea how well the following\n  solutions work, or even if they work -- the following is secondhand\n  information):\n\n     1. You can buy Adaptec's EZ SCSI driver package, which lists for\n\tsomething like $75.  If you already have older Adaptec drivers,\n\tyou can supposedly upgrade to EZ SCSI for around $30.  Contact\n\tAdaptec for details.  The EZ SCSI package supposedly contains\n\teverything that you need.\n\n     2. You can buy the CorelSCSI! driver package, which is made by the\n\tsame people that make CorelDRAW!  This package contains CDROM\n\tdrivers, SCSI tape drivers, WORM drivers, etc.  I do not know\n\tthe list price, but I've seen this package sold for around\n\t$80-$90.  Note that CorelSCSI! does not come with the ASPI4DOS\n\tdriver, which is needed.  If you do not already have ASPI4DOS,\n\tyou may be better off getting Adaptec's EZ SCSI instead.\n\n     3. [This method is obsolete, as the following drivers have been\n\tobsoleted by Adaptec's EZ SCSI kit, but I'm mentioning it in\n\tcase someone already has these drivers.]  You can use the\n\tdrivers in the Adaptec ASW-1410 kit (ASPI4DOS) and the ASW-410\n\tkit (ASPI CDROM drivers).  You will have to get a copy of\n\tMSCDEX.EXE (a high-level CDROM driver), if it is not included in\n\tthe ASW-410 kit, but this is available from several bulletin\n\tboards.\n\n* To use a SCSI tape drive with the 1542, you need software that knows\n  how to talk to a SCSI tape drive.  Software that I've heard about are\n  (again, like the above section on CDROM drives, I have no idea how\n  well the following solutions work, or even if they work -- the\n  following is secondhand information):\n\n     1. Central Point PC Tools 8.0 for MSDOS supposedly supports a large\n\tnumber of SCSI tape drives.  It comes with SCSI drivers\n\t(ASPI4DOS 3.1) as well as Central Point Backup.\n\n     2. The CorelSCSI! driver package contains a SCSI tape backup\n\tprogram (see the above section on CDROM drives for more\n\tdetails).  However, note that CorelSCSI! does not come with, but\n\trequires, ASPI4DOS.\n\n* I've seen advertisements that sell the 1542 in three configurations:\n\n     1. 1542 SCSI controller with hard disk ROM BIOS.\n     2. 1542 SCSI controller w/BIOS and Adaptec ASPI drivers.\n     3. 1542 SCSI controller w/BIOS, Adaptec ASPI drivers, and\n\tCorelSCSI! drivers/programs.\n\n  I imagine that Adaptec now sells the 1542 in a fourth configuration:\n\n     4. 1542 SCSI controller w/BIOS and EZ SCSI drivers (including ASPI\n\tdrivers).\n\n* Those people who use Unix might be interested in a version of GNU tar\n  for MSDOS that talks to a SCSI tape drive via the ASPI4DOS driver (you\n  need this driver before you can use this program).  I've never used\n  this version of GNU tar, but I've heard that it works (I don't know\n  how well, though).  If you have anonymous ftp access to the Internet,\n  a copy can be found on wsmr-simtel20.army.mil and mirror sites:\n\n\tPD1:<MSDOS.DSKUTL>\n\tASPIBIN.ZIP  67841 920131 Gnu Tar for SCSI tape drives, Adaptec 154xx\n\tASPIPAT.ZIP  21206 920131 Patches for ASPIBIN relative to Gnu Tar 1.10\n\tASPISRC.ZIP 221370 920131 Src for Gnu Tar for SCSI tape, Adaptec ctrlr\n\n  I have no idea if a copy can be found on Compuserve; UNIXFORUM might\n  have it, if any forum does.\n\n* As far as MSDOS is concerned, the 1542A and the 1542B controllers are\n  the same; with MSDOS, the 1542A should work as well as the 1542B.\n  However, the hardware for these two boards is not 100% identical, and\n  there is at least one (NON-MSDOS) program that initially did not work\n  with a 1542A, but did work with a 1542B (BSD386 -- a 386 version of\n  BSD Unix).\n\n* In case anyone's curious, here's an edited copy of my CONFIG.SYS file:\n\n\tFILES=40\n\tBUFFERS=40\n\tBREAK=ON\n\tSTACKS=10,256\n\tDEVICE=c:\\sys\\dev\\aspi4dos.sys /d /n4\n\tDEVICE=C:\\QEMM\\QEMM386.SYS on RAM ROM DMA=32 ST:M X=F800-FFFF\n\tDOS=HIGH,UMB\n\tDEVICEHIGH=c:\\sys\\dev\\nnansi.sys\n\tDEVICEHIGH=C:\\DOS\\SETVER.EXE\n\tshell = c:\\dos\\command.com /p\n\n  Note that I'm using QEMM and ASPI4DOS 3.1.  If I were using ASPI4DOS\n  3.0 or 3.0a, I'd probably have to use a CONFIG.SYS that looked like:\n\n\tFILES=40\n\tBUFFERS=40\n\tBREAK=ON\n\tSTACKS=10,256\n\tDEVICE=c:\\sys\\dev\\aspi4dos.sys /d /n4\n\tDEVICE=C:\\QEMM\\QEMM386.SYS on RAM ROM DMA=32 ST:M X=F800-FFFF\n\tDOS=HIGH,UMB\n\tDEVICEHIGH=c:\\sys\\dev\\scsiha.sys /V386\n\tDEVICEHIGH=c:\\sys\\dev\\nnansi.sys\n\tDEVICEHIGH=C:\\DOS\\SETVER.EXE\n\tshell = c:\\dos\\command.com /p\n\n  If I weren't using ASPI4DOS, I'd probably use something that looked\n  like:\n\n\tFILES=40\n\tBUFFERS=40\n\tBREAK=ON\n\tSTACKS=10,256\n\tDEVICE=c:\\sys\\dev\\scsiha.sys /V386\n\tDEVICE=C:\\QEMM\\QEMM386.SYS on RAM ROM DB=32 DMA=32 ST:M X=F800-FFFF\n\tDOS=HIGH,UMB\n\tDEVICEHIGH=c:\\sys\\dev\\nnansi.sys\n\tDEVICEHIGH=C:\\DOS\\SETVER.EXE\n\tshell = c:\\dos\\command.com /p\n\n  However, if I used a floppy-controller-based tape drive, or if I\n  planned to record high-quality sound from a sound card, I would still\n  need some way of changing the Adaptec's bus on/off times.  The first\n  two versions of CONFIG.SYS take care of this, but this last version\n  doesn't.\n\n\n\f\nLocal Variables:\nfill-column:\t72\neval:\t\t(auto-fill-mode nil)\nEnd:\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.034+0000", "event": "documents", "entityId": 697, "properties": {"category": "talk.politics.misc", "text": "From: as010b@uhura.cc.rochester.edu (Tree of Schnopia)\nSubject: Re: New Study Out On Gay Percentage\nNntp-Posting-Host: uhura.cc.rochester.edu\nOrganization: University of Rochester - Rochester, New York\nLines: 33\n\nIn <1993Apr16.200354.8045@magnus.acs.ohio-state.edu> rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) writes:\n\n\n>>1) So what?\n\n>So there are less gays, then the gays claim.\n\n>>Don't forget that 25% had 20 or more partners....\n>>\n\n>I was wondering why I wasn't getting laid.\n\nYour bad English?  (See quote above.)\n\n\n>Actually, I bet you more gay/bi men are as not as promiscuous as gay men, \n>because more of them could have the \"option\" of living a straight life, and \n>with social pressures, probably would at least try.\n\nYou'd lose that wager, if the supporting argument were part of it.\n\n>Did you know that is is a fact that homosexuality was comparatively high in \n>Hitler's storm troopers (SA) before he came to power.  I wonder if they got to \n>put the triangles on themselves......\n\nDid you know that Hitler himself was a devout Christian?  And heterosexual?\n\n--Drywid\n-- \n----bi    Andrew D. Simchik\t\t\t\t\tSCHNOPIA!\n\\ ----    as010b@uhura.cc.rochester.edu\t\t\t\tTreeWater\n \\\\  /    \n   \\/     \"Words Weren't Made For Cowards\"--Happy Rhodes\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 698, "properties": {"category": "comp.sys.mac.hardware", "text": "From: zxxst+@pitt.edu (Zhihua Xie)\nSubject: Re: Duo 230 crashes aftersleep (looks like Apple bug!)\nOrganization: University of Pittsburgh\nLines: 2\n\nthis is a test\n \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 699, "properties": {"category": "sci.crypt", "text": "From: ig25@fg70.rz.uni-karlsruhe.de (Thomas Koenig)\nSubject: Re: White House Public Encryption Management Fact Sheet\nOrganization: University of Karlsruhe, Germany\nLines: 26\nDistribution: na\nNNTP-Posting-Host: fg70.rz.uni-karlsruhe.de\nMime-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\n\nclipper@csrc.ncsl.nist.gov (Clipper Chip Announcement) writes:\n\n>The President has approved a directive on \"Public Encryption\n>Management.\"  The directive provides for the following:\n\n[...]\n\n>When\n>exported abroad, it can be used to thwart foreign intelligence\n>activities critical to our national interests.\n\n[...]\n\n>The Attorney General of the United States, or her representative,\n>shall request manufacturers of communications hardware which\n>incorporates encryption to install the U.S. government-developed\n>key-escrow microcircuits in their products.\n\nQuite interesting.  How does the US administration intend to persuade\nnon - US governments to let the NSA eavesdrop on them?  Or should U.S.\ncompanies install these chips in communication systems sold abroad\nwithout the customer's knowedge or consent, or not at all?\n-- \nThomas Koenig, ig25@rz.uni-karlsruhe.de, ig25@dkauni2.bitnet\nThe joy of engineering is to find a straight line on a double\nlogarithmic diagram.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 700, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: keegan-edward@cs.yale.edu (Edward Keegan)\nSubject: DEC MT 486, Adaptec SCSI, 3COMM conflict\nOrganization: Yale University Computer Science Dept., New Haven, CT 06520-2158\nLines: 14\nDistribution: world\nNNTP-Posting-Host: thumper.cf.cs.yale.edu\n\n\nI have a DEC NT 486DX33 that has an Adaptec SCSI controller, hard disk\nand cd-rom drive. When I add a 3COMM Ethernet card (3C503) and reboot\nthe system I receive an error message that a boot device cannot be\nfound. Pull the 3COMM card and reboot, everything is fine. I've moved\nthe controller and 3COMM card to various slots, different positions\n(slot before the controller, slot after the controller) with the\nsame result. DEC hasn't responded to the problem yet. Any help would\nbe appreciated.\n-- \nEdward T. Keegan, Facility Director             E-MAIL: keegan@cs.yale.edu\nYale University, Computer Science Department     PHONE: 1-203-432-1254\n51 Prospect Street, Room 009                       FAX: 1-203-432-0593\nNew Haven, CT 06520\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 701, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: Islam And Scientific Predictions (was Re: Genocide is Caused by Atheism)\nOrganization: Case Western Reserve University\nLines: 14\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1993Apr19.231641.21652@monu6.cc.monash.edu.au> darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n\n>The positive aspect of this verse noted by Dr. Maurice Bucaille is that\n>while geocentrism was the commonly accepted notion at the time (and for\n>a long time afterwards), there is no notion of geocentrism in this verse\n>(or anywhere in the Qur'an).\n\n\tThere is no notion of heliocentric, or even galacticentric either.\n\n\n\n--------------------------------------------------------------------------------\n\t\t\n\t\t\"My sole intention was learning to fly.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 702, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 13\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, sandvik@newton.apple.com (Kent Sandvik) says:\n\n>Well, it depends how you look at it. If you are interested I might\n>find out what the latest status is in this legal battle.\n>Kent\n>\n\tPlease do! And if you don't want to post it here, email to me\n:-) I don't know how this discussion is appreciated here. I hate\n'invading' newsgroups with themes of limited interest :-)\n\nTony\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 703, "properties": {"category": "rec.sport.hockey", "text": "From: ferguson@cs.rochester.edu (George Ferguson)\nSubject: Re: Thumbs up to ESPN\nReply-To: ferguson@cs.rochester.edu (George Ferguson)\nOrganization: University of Rochester Hockey Science Dept.\n\n\nIn article <1993Apr20.032017.5783@wuecl.wustl.edu> jca2@cec1.wustl.edu (Joseph Charles Achkar) writes:\n> It was nice to see ESPN show game 1 between the Wings and Leafs since\n>the Cubs and Astros got rained out. Instead of showing another baseball\n>game, they decided on the Stanley Cup Playoffs. A classy move by ESPN.\n\nThey tried their best not to show it, believe me. I'm surprised they\ncouldn't find a sprint car race (mini cars through pigpens, indeed!)\non short notice.\n\nGeorge\n-- \nGeorge Ferguson                 ARPA: ferguson@cs.rochester.edu\nDept. of Computer Science       UUCP: rutgers!rochester!ferguson\nUniversity of Rochester         VOX:  (716) 275-2527\nRochester  NY  14627-0226       FAX:  (716) 461-2018\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 704, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Space Station Redesign (30826) Option C\nArticle-I.D.: aurora.1993Apr25.214653.1\nOrganization: University of Alaska Fairbanks\nLines: 22\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <1993Apr25.151108.1@aurora.alaska.edu>, nsmca@aurora.alaska.edu writes:\n> I like option C of the new space station design.. \n> It needs some work, but it is simple and elegant..\n> \n> Its about time someone got into simple construction versus overly complex...\n> \n> Basically just strap some rockets and a nose cone on the habitat and go for\n> it..\n> \n> Might be an idea for a Moon/Mars base to.. \n> \n> Where is Captain Eugenia(sp) when you need it (reference to russian heavy\n> lifter, I think).\n> ==\n> Michael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n> \n> \n> \n> \n\n\nThis is a report, I got the subject messed up..\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 705, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: The Orders for the Turkish Extermination of the Armenians #17\nSummary: To the children of genocide: \"Send them away into the Desert\"\nArticle-I.D.: urartu.1993Apr6.115347.10660\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 145\n\n\n         The Orders for the Turkish Extermination of the Armenians #17\n    To the children of genocide: \"Send them away into the Desert\"\n\nThis is part of a continuing series of articles containing official Turkish \nwartime (WW1) governmental telegrams, in translation, entailing the orders \nfor the extermination of the Armenian people in Turkey. Generally, these\ntelegrams were issued by the Turkish Minister of the Interior, Talaat Pasha,\nfor example, we have the following set regarding children:\n\n\t\"To the Government of Aleppo.\n\n\t November 5, 1915. We are informed that the little ones belonging to\n\t the Armenians from Sivas, Mamuret-ul-Aziz, Diarbekir and Erzeroum\n\t [hundreds of km distance from Aleppo] are adopted by certain Moslem\n\t families and received as servants when they are left alone through\n\t the death of their parents. We inform you that you are to collect\n\t all such children in your province and send them to the places of\n\t deportation, and also to give the necessary orders regarding this to\n\t the people.\n\n\t\t\t\tMinister of the Interior,\n\n\t\t\t\t\t\tTalaat\" [1]\n\n\t\"To the Government of Aleppo.\n\n\t September 21, 1915. There is no need for an orphanage. It is not the\n\t time to give way to sentiment and feed the orphans, prolonging their\n\t lives. Send them away to the desert and inform us.\n\n\t\t\t\tMinister of the Interior,\n\t\t\t\t\t\tTalaat\" [2]\n\n\t\"To the General Committee for settling and deportees.\n\n\t November 26, 1915. There were more than four hundred children in the\n\t orphanage. They will be added to the caravans and sent to their\n\t places of exile.\n\n\t \t\t\t\tAbdullahad Nuri. [3]\n\n\n\t\"To the Government of Aleppo.\n\n\t January 15, 1916. We hear that certain orphanages which have been\n\t opened receive also the children of the Armenians. Whether this is\n\t done through the ignorance of our real purpose, or through contempt\n\t of it, the Government will regard the feeding of such children or\n\t any attempt to prolong their lives as an act entirely opposed to it\n\t purpose, since it considers the survival of these children as\n\t detrimental. I recommend that such children shall not be received\n\t into the orphanages, and no attempts are to be made to establish\n\t special orphanages for them.\n\n\t\t\t\tMinister of the Interior,\n\n\t\t\t\t\t\tTalaat.\" [4]\n\n\t\"To the Government of Aleppo.\n\n\n\t Collect and keep only those orphans who cannot remember the tortures\n\t to which their parents have been subjected. Send the rest away with\n\t the caravans.\n\n\t\t\t\tMinister of the Interior,\n\n\t\t\t\t\t\tTalaat\" [5]\n\n\t\"From the Ministry of the Interior to the Government of Aleppo.\n\n\t At a time when there are thousands of Moslem refugees and the widows\n\t of Shekid [fallen soldiers] are in need of food and protection, it is\n\t not expedient to incur extra expenses by feeding the children left by\n\t Armenians, who will serve no purpose except that of giving trouble\n\t in the future. It is necessary that these children should be turned\n\t out of your vilayet and sent with the caravans to the place of\n\t deportation. Those that have been kept till now are also to be sent\n\t away, in compliance with our previous orders, to Sivas.\n\n\t\t\t\tMinister of the Interior,\n\n\t\t\t\t\t\tTalaat\" [6]\n\nIn 1926, Halide Edip (a pioneer Turkish nationalist) wrote in her memoirs\nabout a conversation with Talaat Pasha, verifying and \"rationalizing\" this\nultra-national fascist anti-Armenian mentality, the following:\n\n\t\"I have the conviction that as long as a nation does the best for\n\t its own interest, and succeeds, the world admires it and thinks\n\t it moral. I am ready to die for what I have done, and I know I\n\t shall die for it.\" [7]\n\n\nThese telegrams were entered as unquestioned evidence during the 1923 trial of\nTalaat Pasha's, assassin, Soghomon Tehlerian. The Turkish government never\nquestioned these \"death march orders\" until 1986, during a time when the world\nwas again reminded of the genocide of the Armenians.\n\nFor reasons known to those who study the psychology of genocide denial, the\nTurkish government and their supporters in crime deny that such orders were\never issued, and further claim that these telegrams were forgeries based on a\nstudy by S. Orel and S. Yuca of the Turkish Historical Society.\n\nIf one were to examine the sample \"authentic text\" provided in the Turkish \nHistorical Society study and use their same forgery test on that sample, it \ntoo would be a forgery!. In fact, if any of the tests delineated by the \nTurkish Historical Society are performed an any piece of Ottoman Turkish or \nPersian/Arabic script, one finds that anything handwritten in such language is\na forgery. \n\nToday, the body of Talaat Pasha lies in a tomb on Liberty Hill, Istanbul,\nTurkey, just next to the Yildiz University campus. The body of this genocide \narchitect was returned to Turkey from Germany during WW2 when Turkey was in a \nheightened state of proto-fascism. Recently, this monument has served as a\nfocal point for anti-Armenianism in Turkey.\n\nThis monument represents the epitome of the Turkish government's pathological\ndenial of a clear historical event and is an insult to a people whose only\ncrime was to be born Armenian.\n\n\t\t\t- - - references - - -\n\n[1] _The Memoirs of Naim Bey_, Aram Andonian, 1919, pages 59-60\n\n[2] ibid, page 60\n\n[3] ibid, page 60\n\n[4] ibid, page 61\n\n[5] ibid, page 61\n\n[6] ibid, page 62\n\n[7] _Memoirs of Halide Edip_, Halide Edip, The Century Press, New York (and\n    London), 1926, page 387\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 706, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: slc@a2.cim.cdc.com (Steve Chesney x4662)\nSubject: Re: Diamond SS 24X\nReply-To: slc@.cdc.com\nOrganization: Metaphase Technology, Inc.\nLines: 23\n\nIn article <1993Apr22.085129.554@condor.navsses.navy.mil>, zimm@condor.navsses.navy.mil writes:\n>Greetings!\n>   \n>I've had a bunch of problems with the 24x.  Opening a DOS window on the\n>desktop can occasionally result in the windows \"blowing up\" into a set of\n>horizontal lines, hashing the entire desktop.  Nothing can recover this \n>except to completely exit from Windows.  The other irritating problem is\n>that windows that scroll often overwrite lines rather than actually\n\nI posted a similar query and got these replies which I am testing (so far so\ngood)..\n\n* turn hardware scrolling off before going into windows (24xmode scrolloff)\n\n* in the pif file for dos window, set \"emulate text mode\"\n\n* get the latest drivers from the DiamoND BBS (or cica): dates are 1-20-9.\n\n-- \nSteve Chesney                                    slc@catherine.cim.cdc.com     \nMetaphase Technology Inc.                        612-482-4662 (voice)\n4233 North Lexington Avenue                      612-482-4001 (fax)\nArden Hills, MN  55126\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 707, "properties": {"category": "talk.politics.mideast", "text": "From: francesca_M._Benson@fourd.com\nSubject: Serdar\nOrganization: 4th Dimension BBS\nLines: 7\nNNTP-Posting-Host: cs.utexas.edu\n\nWhat an anal retentive you are wimp.\n\n********************************************************************\nSystem: fourd.com                                Phone: 617-494-0565\nCute quote:  Being a computer means never having to say you're sorry\n********************************************************************\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 708, "properties": {"category": "talk.religion.misc", "text": "From: netd@susie.sbc.com ()\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nOrganization: /usr/lib/news/organization\nLines: 62\nNNTP-Posting-Host: susie.sbc.com\n\nIn article <20APR199301460499@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen) writes:\n>For those who think David Koresh didn't have a solid structure,\n>or sound Biblical backing for his hour long tape broadcast,\n\nI don't think anyone really cares about the solid structure of his\nsermon.  It's the deaths he's responsible for that concern most people.\n\n>I've enclosed a partial list of the sources he cites or quotes\n>he exactly used. As a Christian sermon, it's pretty good, if not \n>inspired.\n>\n>Though I differ in part on some of his conclusions, the argument \n>he presents is well backed -- which is why it's taken me this long\n>to work through -- still ongoing. \n>\n>If you thought it was rambling -- that says far more about you than\n>it does Koresh. There is a very definite relationship between the\n\nYou've made me curious.  What does this say about me?\n\n>First Seal in Revelation 6, the entirety of Psalms 45, and the\n>most of Revelation 19 -- which demonstrated one of his major points \n>about how the writings in the Prophets (including David), and in \n>the Psalms, and in Revelation are all telling the same story when \n>you understand how they're related (ie have the key). The largely \n>explain each other. \n\nCharles Manson used revelation as well.  Do we see a pattern here?\nI wonder of Koresh liked the Beatles?\n\n>\n>The sequence following is keyed to the Koresh tape, should you care\n>to check it out. You can almost see the note cards he used when \n>doing the analysis. \n>\n\t[long list of Biblical references which\n\t impressed me tremendously but were deleted\n\t in the interests of common sense.]\n\nKoresh was a nut, okay?  Just because he found ways for the Bible\nto backup his rantings does not make him any less of a kook.\n\n>\n>Seems to me Koresh is yet another messenger that got killed\n>for the message he carried. \n\nI'll type this very slowly so that you can understand.  He either set\nthe fire himself or told his followers to do so.  Don't make him out to\nbe a martyr.  He did not \"get killed\", he killed himself.\n\n>\n>In the mean time, we sure learned a lot about evil and corruption.\n>Are you surprised things have gotten that rotten?\n>\n\nThe evil was inside the compound.  All that \"thou shalt not kill\" stuff.\n\n>Oh yeah, one last point for the believers -- Philippian 2:14-19.\n\nFor the rest of us, could you please post the text?\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 709, "properties": {"category": "talk.politics.guns", "text": "From: dbernard@clesun.Central.Sun.COM (Dave Bernard)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: Sun Microsystems\nLines: 20\nDistribution: world\nReply-To: dbernard@clesun.Central.Sun.COM\nNNTP-Posting-Host: clesun.central.sun.com\n\n>>The two situations are hardly analogous, unless you wish to make the\n>>>dubious claim that the US legal system would provide equivalent treatment \n>>>to BD children that the Romans did for those of conquered rebels.\n\n>Actually, all the analogy calls for the the Branch Davidian _feeling_\n>their treatment would be along these lines. After a military\n>assualt (instead of a peacefull effort to serve a warrant) and\n>weeks os siege, such a feeling might not be completely irrational.\n\n\nActually, if I were one of the survivors and wanted to institute a civil\nrights violation lawsuit against the Treasury Dept., I would claim that\nthe BATF/FBI itself was to blame for any mass hysteria/insanity...\n\nwithout due process, the siegers shone lights, laser beams, multi-colored\nspotlights, all the while playing loudly amplified music consisting of\neverything from Tibetan Chant to Heavy Metal, and coupled with the fear,\nthe poor nutrition, the rampant paranoia, I'd say it was very likely\nthose poor nuts were made even nuttier.  After all, isn't sleep deprivation,\nsensory overload, etc., part of the \"new age\" method of torture?\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 710, "properties": {"category": "sci.electronics", "text": "From: Mike Diack <mike-d@staff.tc.umn.edu>\nSubject: Anyone got 200+ Schadow switches with LED?\nX-Xxmessage-Id: <A7FC6A05A602655F@dialup-slip-1-95.gw.umn.edu>\nX-Xxdate: Thu, 22 Apr 93 15:28:05 GMT\nNntp-Posting-Host: dialup-slip-1-95.gw.umn.edu\nOrganization: persian cat & carpet co.\nX-Useragent: Nuntius v1.1.1d7\nLines: 3\n\nName your price, cap colours & quantity available.\ncheers\nMike\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 711, "properties": {"category": "soc.religion.christian", "text": "From: pwhite@empros.com (Peter White)\nSubject: Some questions from a new Christian\nLines: 50\n\nReply-To: pwhite@empros.com\nIn article <Apr.15.00.58.29.1993.28900@athos.rutgers.edu>, 18669@bach.udel.edu (Steven R Hoskins) writes:\n \n|> I have another question I would like to ask. I am not yet affiliated\n|> with any one congregation. Aside from matters of taste, what criteria\n|> should one use in choosing a church? I don't really know the difference\n|> between the various Protestant denominations.\n \nHere in America people tend to think of choosing a church much like they\nthink of choosing a car or a country club. What I mean is that our \nculture is such that we tend towards satisfying our own wants rather\nthan considering things with others in mind and not making prayer \nan initial and primary part of the decision process. People tend to\ntreat church as they would a club and when something is less than to\ntheir liking, off they go to another one.\n\nI think that scripture presents the idea that God takes a different \nperspective on the \"church choosing process\". It seems to me from 1Cor 12\nthat God doesn't subscribe to the idea of us choosing a church at all\nbut that he places us in the body as he wants us. So, I think a better\nquestion is not how do I choose a church but how do I figure out where\nGod is trying to place me.\n\nIf a person was instrumental in leading you to Christ, the church they\ngo to is a logical first choice. You have been born into the family of\nGod. People should hop around from church to church as often as they\nhop from natural family to family.\n\nIf you met the Lord on your own (so to speak) there may not be an \neasily identifiable church to try for starters. Here you are more\nlike an orphan. Prayerfully go and \"leave yourself on a few doorsteps\"\nand see if anyplace feels like home. \n\nI wouldn't expect that God want to place you in a church where you\nhave difficulty fitting in with the people, but on the other hand\nthere are no perfect churches. If you have an attitude of looking\nfor problems you will both find them and make them. On the other hand\nif you have an attitude of love and committment, you will spread that\nwherever you go. \n\nIn general, I think that God will try to place you in a church that\ntalks about the Lord in the way that you have come to know him and is\nexpanding on that base.\n-- \nPeter White\ndisclaimer: None of what is written necessarily reflects \n     \t\t\ta view of my company.\n\tPhil    I want to know Christ and the power of his\n\t3:10 \tresurrection and the fellowship of sharing in\n\tNIV\t\this sufferings, becoming like him in his death\t\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 712, "properties": {"category": "talk.religion.misc", "text": "From: elw@mayo.edu\nSubject: Re: [lds] Gordon's question on the Nicene Creed\nReply-To: elw@jaguar.sky2\nOrganization: Mayo Foundation, Rochester MN. Campus\nLines: 11\n\n\nThe Nicene Creed\n\nWE BELIEVE in one God the Father Almighty, Maker of heaven and earth, and of all things visible and invisible.\nAnd in one Lord Jesus Christ, the only-begotten Son of God, begotten of the Father before all worlds, God of God, Light of Light, Very God of Very God, begotten not made, being of one substance with the Father by whom all things were made; who for us men, and for our salvation, came down from heaven and was incarnate by the Holy Spirit of the Virgin Mary, and was made man, and was crucified also for us under Pontius Pilate.  He suffered and was buried, and the third day rose again according to the Scriptur\n\n\n\n\n\nes, and ascended into heaven, and sitteth on the right hand of the Father.  And he shall come again with glory to judge  both the quick and the dead, whose kingdom shall have no end.\n\nAnd we believe in the Holy Spirit, the Lord and Giver of Life, who proceedeth from the Father and the Son, who with the Father and the Son together is worshipped and glorified, who spoke by the prophets.  And we believe in one holy and apostolic Church. We acknowledge one baptism for the remission of sins. And we look for the resurrection of the dead, and the life of the world to come. Amen.\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 713, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 85\n\nIn article <1r27ld$bp2@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>In article <C5t38G.IL@news.udel.edu>, roby@chopin.udel.edu (Scott W Roby) writes:\n>> In article <1r1rad$7rl@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>> >In article <C5s0Ds.J54@news.udel.edu>, roby@chopin.udel.edu (Scott W Roby) writes:\n>> \n>>   [The original question was about who started the fire and whether the \n>>    \"madmen\" were inside or outside the compound.  To which I replied on \n>>    the possible sanity level of those inside and outside.]\n>\n>Was THAT your argument.  Well, you didn't make it very well.  You started \n>from the questionable premise that the fire was necessarily an act of\n>insanity, rather than an act of negligence or an accident.  Recall, one\n>survivor claims that the fire started when a tank knocked over a kerosene \n>lamp.  Kind of makes arguments regarding relative sanity somewhat moot, no?\n\nAnd another survivor claims he heard someone shouting \"The fire's started!\".\nOdd terminology.  That's what one says when you know a fire is planned, not \nwhen one occurs by accident.  We will have to wait and see what the evidence \nshows, assuming one is willing to believe any evidence offered by the \n\"distrustful ones\".\n\n>> >> According to an Australian documentary made in the year before the stand off \n>> >> began, Koresh and his followers all believed he was Christ.  Koresh \n>> >> had sex with children and women married to other men in the compound.  \n>> >> These were the \"perfect children\" resulting from the \"great seed\" of \n>> >> his \"magnified horn\".  Ex-members describe him in ways not dissimilar \n>> >> to the way Jim Jones has been described.\n>> >\n>> >Point noted.  Have you submitted YOUR faith and sex life for BATF clearance?\n>> >Better hurry; I believe the deadline was April 15.\n>> \n>> I paid my taxes.  There was no reference to sex or religion on the form.\n>> The comments above and below were meant to address who might be unstable \n>> enough to keep children in a building with tear gas or start a fire.\n>\n>\"Nice evasive maneuver, Mr. Chekov, but they're still on our tail.\"\n>\n>Let me ask it more plainly.  Which of the above complaints about David \n>Koresh's religious or sexual proclivities justified an armed raid by the \n>Bureau of Alcohol, Tobacco, and Firearms?\n\nNeither.  Again I was merely addressing the sanity level of the players.  \nI agree that the BATF handled the affair badly from day one.  BTW, I heard \non the news today that the affadavit behind the no-knock warrant was unsealed \ntoday.  Grenade launcher was the only thing on the list that I found \nunusual.\n\n>> >> >:Two of the nine who escaped the compound said the fire was deliberately set \n>> >> >:by cult members.\n>\n>> >> So, when they talk to the news reporters directly, and relate the same details, \n>> >> will you believe them?\n>\n>> >Believe them?  I won't even RECOGNIZE them.  And neither will anyone else\n>> >who doesn't know them personally.\n>\n>> Do you believe they would put impostors before the national tv cameras?\n>\n>It's not entirely far-fetched.  Nobody outside the compound would know \n>EVERYBODY inside the compound.  Don't forget, the BATF admits having \n>agents inside the compound, in any case.\n\nAmbitious news reporters could use the documentary filmed by an Australian \nin 1992 on the compound grounds to help identify survivors.  I, for one, \nwill check their stories for consistency with what I learned in a long \nnews story about that documentary.\n\n>> At this point, we are getting conflicting reports from the survivors.\n>> Best wait til more light is shed upon them.  Of course, this is no \n>> good if you believe in eternal darkness.\n>\n>I'm simply being the devil's advocate.  There's reasonable doubt by the\n>boatload standing in the way of anybody totally swallowing the official \n>government story on Waco.\n\nCertainly there is some room for doubt.  I certainly reserve the right \nto change my opinions when new evidence warrants such a change.  If I \nwere conspiratorially minded, however, I would never be able to change \nmy mind, because any evidence I disliked would have to be a lie \nfabricated by the \"distrustful ones\".\n\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 714, "properties": {"category": "rec.sport.hockey", "text": "From: kozloce@wkuvx1.bitnet\nSubject: Re: Thumbs up to ESPN\nOrganization: Western Kentucky University, Bowling Green, KY\nLines: 12\n\nI agree. It was great for the ESPN people to show the Detroit game. (My\nroommate just about sh*t when they threw the octopus on the ice. (Thanks\nfor explaining the significance of that BTW)) The only problem I had was\nwhen they blotted out the local commentators with the baseball ads and\nmusic. Especially when the wings player hit the rut and went into the\nboards injuring his shoulder and they blotted out the injury report. Other\nthen that, hats off to ESPN. Now if they'll only make a habit of this. Yeah\nright! Baseball seasons started (Zzzzzz.....) =)\n\nKOZ \n\nLETS GO CAPS!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 715, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d2cheng@undergrad.math.uwaterloo.ca (Dominic Cheng)\nSubject: Centris 610 Impression\nOrganization: University of Waterloo\nLines: 15\n\nI have been playing with my Centris 610 for almost a week now.  I must say\nthis machine is really fast!  The hardware turn-on feature is annoying, but\nI got PowerKey from Sophisicated Circuits and it works like a charm.\n\nHowever, I still have a few complaints:\n- when I restart the machine every time, the screen image (the desktop\n  pattern) jerks up and down for a few times.\n- the Quantum 170 drive is noisy\n\nOverall, I highly recommend it:  it is fast, affordable and looks great!\n\n--\n\nDominic Cheng (d2cheng@descartes.uwaterloo.ca)\nComputer Science, University of Waterloo, Ontario, Canada\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 716, "properties": {"category": "rec.sport.hockey", "text": "From: andrew@idacom.hp.com (Andrew Scott)\nSubject: USENET Hockey Draft week 27 standings\nOrganization: Hewlett-Packard, IDACOM Telecommunications Division\nLines: 276\n\nWell, I'm back from Tokyo, so here are the standings after the April 13 update.\n\n\t- Andrew\n\nUSENET Hockey Draft Standings\nWeek 27\n\nPosn\tTeam\t\t\t\tPts\tProj\tCash\tLast Posn\n\n1.\tDave Wessels                    1536\t1572.8\t1.9\t(1)\n2.\tBob Hill                        1481\t1538.1\t24.0\t(3)\n3.\tGilles Carmel                   1492\t1529.9\t1.0\t(2)\n4.\tSeppo Kemppainen                1430\t1514.0\t47.2\t(5)\n5.\tThe Awesome Oilers              1412\t1504.4\t68.6\t(4)\n6.\tHillside Raiders                1456\t1495.2\t7.0\t(7)\n7.\tMak \"The Knife\" Paranjape       1424\t1491.7\t31.0\t(6)\n8.\tJan Stein                       1412\t1483.2\t35.3\t(8)\n9.\tthis years model                1428\t1479.3\t17.6\t(10)\n10.\tRangers Of Destiny              1401\t1475.9\t42.0\t(9)\n\tTapio Repo                      1422\t1475.9\t19.6\t(11)\n12.\tFRANK'S BIG FISH                1398\t1453.9\t22.0\t(12)\n13.\tThe Underachievers              1409\t1452.9\t10.1\t(13)\n14.\tOn Thin Ice                     1380\t1440.9\t32.3\t(14)\n15.\tGo Flames                       1367\t1438.1\t40.3\t(17)\n16.\tlittlest giants                 1370\t1437.7\t35.6\t(16)\n17.\tMopar Muscle Men                1400\t1431.4\t3.7\t(18)\n18.\tLindros Losers                  1396\t1431.2\t1.7\t(15)\n19.\tDIE Penguin Bandwaggoners       1357\t1411.0\t20.2\t(19)\n20.\tSamuel Lau (Calgary, Alberta)   1360\t1396.3\t4.9\t(20)\n21.\tBoomer's Boys                   1341\t1371.6\t0.2\t(23)\n22.\tGeneral Accounting Office       1316\t1369.4\t20.9\t(21)\n23.\tDelaware Wombats                1341\t1367.5\t1.3\t(24)\n24.\tMigods Menschen                 1307\t1366.8\t31.6\t(22)\n25.\tWellsy's Buttheads DEC NH       1280\t1362.3\t52.6\t(25)\n26.\tRocky Mountain High             1325\t1357.2\t1.8\t(26)\n27.\tFife Flyers                     1283\t1348.4\t31.4\t(27)\n28.\tGerald Olchowy                  1275\t1340.2\t33.7\t(28)\n29.\tDave Snell                      1281\t1335.7\t25.0\t(59)\n30.\tFluide Glacial                  1291\t1333.7\t18.0\t(29)\n31.\tGaoler                          1279\t1321.5\t11.2\t(30)\n32.\tSmegHeads                       1289\t1315.8\t0.3\t(31)\n33.\tThe Young And The Skateless     1235\t1305.6\t42.9\t(32)\n34.\tSam & His Dogs                  1262\t1297.3\t11.6\t(34)\n35.\tNeural Netters                  1251\t1294.2\t11.3\t(35)\n36.\tYoungbucs                       1206\t1288.1\t101.7\t(36)\n37.\tArtic Storm                     1220\t1287.7\t39.3\t(33)\n38.\tSoft Swedes                     1205\t1281.5\t46.9\t(37)\n39.\tJeff Horvath                    1239\t1268.6\t5.6\t(38)\n40.\tMilton Keynes Kings             1229\t1262.5\t2.8\t(40)\n41.\tHamster from Hoboken            1223\t1257.0\t8.7\t(41)\n\tKuehn Crushers                  1185\t1257.0\t45.1\t(45)\n43.\tLe Fleur de Lys                 1202\t1256.9\t25.3\t(42)\n44.\tYan The Man Loke                1225\t1255.5\t0.7\t(39)\n45.\tLegion of Hoth                  1208\t1251.1\t15.8\t(48)\n46.\tSimmonac                        1169\t1249.4\t87.6\t(44)\n47.\tThe Finnish Force               1192\t1245.1\t22.5\t(46)\n48.\tice legion                      1193\t1244.8\t28.8\t(43)\n49.\tStreaks                         1161\t1242.8\t54.8\t(47)\n50.\tBrian Bergman                   1190\t1241.0\t23.3\t(55)\n51.\tGoaldingers                     1190\t1239.3\t22.0\t(49)\n52.\tT C OverAchievers               1209\t1237.0\t2.9\t(52)\n53.\tGrant Marven                    1196\t1231.2\t2.9\t(50)\n54.\tBozrah Bruins                   1155\t1223.9\t45.2\t(54)\n55.\tReal Bad Toe Jam                1150\t1223.4\t48.9\t(62)\n56.\tHoudini's Magicians             1181\t1222.4\t18.3\t(61)\n57.\tSkriko Wolves                   1186\t1221.5\t5.4\t(53)\n58.\trec.sport.hockey choices        1196\t1221.1\t1.3\t(63)\n59.\tbuffalo soldiers                1142\t1220.3\t62.1\t(65)\n60.\tbemybaby                        1140\t1219.9\t54.2\t(51)\n61.\tLIPPE                           1179\t1215.2\t13.9\t(56)\n62.\tRandy Coulman                   1185\t1214.8\t5.2\t(57)\n63.\tLAMP LIGHTERS                   1180\t1211.6\t5.9\t(58)\n64.\tSteven And Mark Dream Team      1174\t1206.2\t3.1\t(60)\n65.\tIndianapolis Bennies            1160\t1205.4\t20.8\t(66)\n66.\tTom                             1160\t1202.8\t13.1\t(68)\n67.\tBloom County All Stars          1164\t1198.8\t4.3\t(67)\n68.\tBruins                          1174\t1198.5\t0.1\t(72)\n69.\tPhil and Kev's Karma Dudes      1172\t1198.0\t0.8\t(69)\n70.\tsmithw                          1146\t1194.5\t21.0\t(73)\n71.\tIowa Hockeyes                   1149\t1193.8\t16.3\t(64)\n72.\tDoug Bowles                     1146\t1190.6\t20.0\t(71)\n73.\tThe Great Pumpkin               1108\t1187.3\t54.4\t(74)\n74.\tNON!                            1145\t1186.4\t16.4\t(77)\n75.\tshooting seamen                 1161\t1183.3\t0.1\t(75)\n76.\tFrank Worthless                 1149\t1182.7\t6.3\t(76)\n77.\tAIK Exiles                      1116\t1179.8\t34.5\t(70)\n78.\tInvisible Inc                   1156\t1177.4\t1.1\t(78)\n79.\tBrad Gibson                     1126\t1176.9\t27.2\t(79)\n80.\tCougarmania                     1114\t1165.7\t24.8\t(88)\n81.\tKortelaisen Kovat               1086\t1165.2\t164.1\t(85)\n82.\tPLP Fools                       1135\t1163.1\t0.1\t(81)\n83.\tDavid Wong                      1082\t1161.6\t66.1\t(84)\n84.\tJohn Zupancic                   1102\t1160.7\t27.1\t(82)\n85.\tgarryola                        1121\t1159.4\t9.7\t(89)\n86.\tGary Bergman Fan Club           1128\t1157.6\t5.1\t(93)\n87.\tStaffan Axelsson                1120\t1157.1\t15.1\t(83)\n88.\tChubby Checkers                 1110\t1156.2\t16.3\t(80)\n89.\tDerrill's Dastardly Dozen       1109\t1155.0\t22.1\t(90)\n90.\tChocolate Rockets               1121\t1150.7\t2.5\t(86)\n91.\tKen DeCruyenaere                1113\t1147.9\t5.0\t(87)\n92.\tFisher Dirtbags                 1119\t1147.4\t0.7\t(94)\n93.\tKODIAKS                         1122\t1146.0\t1.3\t(95)\n94.\tNo Namers                       1067\t1145.8\t58.2\t(91)\n95.\tThe Campi Machine               1061\t1145.2\t65.3\t(92)\n96.\tBSC Oranienburg                 1115\t1142.4\t7.1\t(98)\n97.\tThe Kamucks                     1064\t1141.5\t76.1\t(97)\n98.\tArsenal Maple Leafs             1108\t1138.4\t3.8\t(96)\n99.\tEllis Islanders                 1096\t1128.0\t7.6\t(100)\n100.\tMombasa Mosquitos               1090\t1122.4\t6.1\t(101)\n101.\tZachmans Wingers                1051\t1122.1\t49.8\t(103)\n102.\tEdelweiss                       1091\t1121.0\t2.9\t(102)\n103.\tBjoern Leaguen                  1039\t1118.5\t61.4\t(112)\n104.\tDirty White Socks               1050\t1116.5\t43.4\t(105)\n105.\tWormtown Woosbags               1039\t1116.1\t72.6\t(104)\n106.\tNeil Younger                    1036\t1115.0\t77.7\t(114)\n107.\tHurricane Andrew                1082\t1114.8\t7.6\t(106)\n108.\tKing Suke                       1089\t1114.5\t0.1\t(110)\n109.\tLarry                           1078\t1114.3\t11.8\t(107)\n110.\tHet Schot Is Hard               1076\t1113.6\t18.1\t(115)\n111.\tVoteNoOct26                     1056\t1112.6\t31.8\t(108)\n112.\tBloodgamers                     1046\t1111.6\t42.1\t(99)\n\tBruce's Rented Mules            1077\t1111.6\t11.9\t(108)\n114.\tTeem Kanada                     1075\t1110.6\t16.0\t(111)\n115.\tFrank's Follies                 1063\t1106.5\t24.2\t(113)\n116.\tOklahoma Stormchasers           1053\t1103.6\t28.3\t(121)\n117.\tSPUDS                           1068\t1103.4\t12.6\t(119)\n118.\tPond Slime                      1081\t1102.3\t0.7\t(117)\n119.\tPSV Dartmouth                   1071\t1101.4\t7.1\t(116)\n120.\tMark Sanders                    1065\t1099.2\t11.1\t(120)\n121.\tBlue Talon                      1062\t1096.5\t13.3\t(126)\n122.\tStanford Ice Hawks              1043\t1094.7\t28.2\t(118)\n123.\tAye Carumba!!!                  1063\t1089.6\t3.9\t(124)\n124.\tKokudo Keikaku Bunnies          1021\t1088.0\t40.3\t(125)\n125.\tTimo Ojala                      1059\t1085.7\t0.3\t(122)\n126.\tHaral                           1057\t1085.3\t7.3\t(128)\n127.\tCluster Buster                  1048\t1083.4\t7.6\t(136)\n128.\tDirty Rotten Puckers            1054\t1082.7\t1.2\t(135)\n129.\tApricot Fuzzfaces               1037\t1081.1\t23.3\t(127)\n130.\tThe Lost Poots                  1048\t1080.5\t6.7\t(132)\n131.\tNesbitt                         1058\t1078.6\t1.1\t(123)\n132.\tGary Bill Pens Dynasty          1035\t1077.8\t19.6\t(144)\n133.\tgarys team                      1035\t1076.2\t17.1\t(129)\n134.\tArctic Circles                  1012\t1074.1\t37.6\t(131)\n135.\tSeattle PFTB                    1028\t1074.0\t22.9\t(132)\n136.\tLate Night with David Letterman 1049\t1073.7\t0.0\t(130)\n137.\tLe Groupe MI                    1020\t1073.2\t30.2\t(141)\n138.\tGO BRUINS                       1046\t1072.7\t6.2\t(140)\n139.\tScott Glenn                     1038\t1069.7\t10.2\t(138)\n140.\tFlying Kiwis                    1035\t1068.7\t9.1\t(136)\n141.\tteam gold                       1029\t1067.4\t16.7\t(142)\n142.\tCloset Boy's Boys               995\t1064.6\t48.0\t(143)\n143.\tWild Hearted Sons               1036\t1064.4\t4.9\t(153)\n144.\tboutch 92-93                    1023\t1063.2\t20.0\t(134)\n145.\tAndy Y F WONG                   1019\t1062.6\t21.5\t(147)\n\tWembley LostWeekenders          1040\t1062.6\t0.3\t(152)\n147.\tMcKees Rocks Rockers            1036\t1062.4\t5.1\t(144)\n148.\tBook 'em Danno's Bushbabies     1032\t1062.1\t10.5\t(163)\n149.\tDree Hobbs                      1020\t1060.2\t13.4\t(139)\n150.\tGO HABS GO                      1027\t1058.1\t8.0\t(151)\n151.\tGoddess Of Fermentation         1005\t1057.8\t30.2\t(156)\n152.\tTim Rogers                      1024\t1056.8\t8.1\t(146)\n153.\tconvex stars                    1026\t1055.9\t5.6\t(160)\n154.\tEinstein's Rock Band            1033\t1055.7\t0.0\t(154)\n155.\tPrinceton Canucks               979\t1055.5\t124.2\t(150)\n156.\tTap                             1028\t1055.2\t0.5\t(155)\n157.\tHubert's Hockey Homeboys        1030\t1053.9\t0.6\t(163)\n\tButtered Waffles                981\t1053.9\t46.0\t(148)\n159.\tMY TEAM                         977\t1052.0\t174.8\t(162)\n160.\tBob's Blues                     980\t1050.9\t46.8\t(149)\n161.\tfurleys furies                  1021\t1046.6\t3.6\t(159)\n162.\tHUNTERS & COLLECTORS            982\t1045.9\t42.4\t(157)\n\tLes Nordiques                   974\t1045.9\t60.4\t(161)\n164.\tSatan's Choice                  1012\t1045.3\t14.5\t(173)\n165.\tDr Joel Fleishman               1020\t1043.9\t3.7\t(158)\n166.\tSundogs                         1017\t1040.9\t0.4\t(166)\n167.\tPierre Mailhot                  1017\t1039.9\t2.6\t(175)\n168.\tSlap Shot Marco                 966\t1037.8\t51.8\t(168)\n169.\tSan Jose Mahi Mahi              989\t1037.6\t31.8\t(178)\n170.\tThe Leafs Rule!!!!              990\t1037.3\t25.8\t(174)\n171.\tJeff Nimeroff                   963\t1036.5\t48.8\t(167)\n172.\tStimpy ADG Zeta                 996\t1035.2\t21.0\t(178)\n173.\tThe Dreamers                    958\t1034.6\t63.7\t(170)\n174.\tEast City Jokers                956\t1033.7\t69.1\t(171)\n175.\tDaryl Turner                    1008\t1033.1\t2.4\t(169)\n176.\triding the pine                 988\t1031.8\t20.7\t(165)\n177.\tFlowers                         957\t1030.4\t113.6\t(172)\n178.\tDarse Billings                  975\t1029.3\t34.7\t(185)\n179.\tChappel's Chumps                984\t1027.9\t24.0\t(186)\n180.\tLANA Inc                        982\t1027.2\t27.3\t(182)\n181.\tSpinal Tap                      963\t1026.6\t41.4\t(177)\n182.\tJimParker                       949\t1025.9\t179.0\t(187)\n183.\tEnforcers                       980\t1023.9\t28.1\t(189)\n184.\tJeff Bachovchin                 949\t1020.7\t46.7\t(180)\n\tBig Bad Bruins                  981\t1020.7\t18.5\t(183)\n186.\tMike Mac Cormack Sydney NS CAN  944\t1020.6\t107.2\t(184)\n187.\tBulldogs                        973\t1019.7\t23.4\t(181)\n188.\tvoyageurs                       996\t1017.2\t2.7\t(176)\n189.\tAbsolut Lehigh                  984\t1015.4\t8.9\t(190)\n190.\tRepublican Dirty Tricksters     930\t1010.4\t66.0\t(188)\n191.\tHenry's Bar B Q                 990\t1007.7\t0.7\t(197)\n192.\tDr.D And The S.O.D.             968\t1007.3\t17.1\t(192)\n193.\tBunch of Misfits                957\t1006.9\t23.8\t(193)\n194.\tRobyns Team                     955\t1005.5\t30.0\t(198)\n195.\tYellow Plague                   969\t1003.4\t14.2\t(191)\n196.\tNinja Turtles                   982\t1003.0\t1.3\t(194)\n197.\tTeam Melville                   930\t999.1\t46.9\t(199)\n198.\tAcadien                         962\t998.6\t18.3\t(201)\n199.\tDARMAN'S Dragons                950\t998.4\t28.3\t(209)\n200.\tKuta Papercuts                  961\t998.2\t18.5\t(207)\n201.\tGreat Expectations              972\t998.0\t2.3\t(195)\n202.\tCobra's Killers                 942\t996.4\t31.7\t(205)\n203.\tCherry Bombers                  971\t995.6\t1.2\t(196)\n204.\tJayson's Kinky Pucks            943\t989.9\t26.9\t(204)\n205.\tKiller Apes                     947\t989.7\t24.3\t(208)\n206.\tKaufbeuren Icebreakers          929\t989.1\t37.6\t(202)\n207.\tUmpire 4 life                   950\t987.8\t11.1\t(200)\n208.\tRoger Smith                     927\t987.0\t39.6\t(210)\n209.\tFirebirds                       960\t983.8\t3.9\t(203)\n210.\tThose 1st few weeks hurt!       905\t982.9\t55.9\t(211)\n211.\tIKEA Wholesale                  958\t982.0\t1.7\t(213)\n212.\tOutlaws                         903\t975.6\t164.9\t(206)\n213.\tThe 200 Club                    944\t969.4\t6.8\t(219)\n214.\tThundering Herd                 887\t966.7\t163.6\t(212)\n215.\tBelieve it or dont              926\t966.6\t21.1\t(214)\n216.\tCreeping Death                  924\t965.7\t21.3\t(217)\n217.\tKnee Injuries                   932\t965.6\t10.4\t(218)\n218.\tCrazy Euros                     927\t965.3\t17.9\t(220)\n219.\tFrack Attack                    918\t965.0\t27.3\t(221)\n\tTodd's Turkeys                  942\t965.0\t1.9\t(222)\n221.\tRyan's Renegades                893\t961.7\t50.9\t(223)\n222.\tfred mckim                      889\t961.5\t93.0\t(215)\n223.\t400 Hurricane                   909\t960.4\t32.1\t(216)\n224.\tpig vomit                       936\t958.3\t1.3\t(225)\n225.\tIce Strykers                    882\t955.4\t105.4\t(226)\n226.\tFighting Geordies               882\t953.7\t141.6\t(227)\n227.\tCDN Stuck in Alabama            925\t951.6\t10.3\t(228)\n228.\tdayton bomber                   932\t951.5\t0.0\t(236)\n229.\tCafall and Crew                 892\t948.2\t38.3\t(224)\n230.\tChris of Death                  872\t945.0\t83.6\t(232)\n231.\tSwillbellies                    902\t941.9\t18.7\t(230)\n232.\tBanko's Beer Rangers            913\t940.4\t4.2\t(233)\n\tZipper Heads                    892\t940.4\t33.9\t(237)\n234.\tNY Flames                       907\t938.8\t7.8\t(234)\n235.\tShip's Way                      913\t938.7\t8.7\t(229)\n236.\tLaubsters II                    861\t937.6\t201.6\t(235)\n237.\tOz                              878\t934.1\t35.0\t(231)\n238.\tJoliet Inmates                  872\t933.5\t45.8\t(239)\n239.\tNinja Bunnies                   858\t925.9\t44.9\t(238)\n240.\tGreat Scott                     853\t924.6\t73.3\t(242)\n241.\tWidefield White Wolves          861\t919.7\t36.9\t(240)\n242.\tThe Ice Holes                   890\t912.7\t2.7\t(246)\n243.\tSANDY'S SABRES                  886\t910.8\t4.7\t(244)\n244.\tDaves Team                      858\t910.7\t32.0\t(241)\n245.\tSouth Carolina Tiger Paws       835\t909.0\t78.4\t(243)\n246.\tFlorida Tech Burgh Team         844\t908.9\t49.3\t(245)\n247.\tLeos Blue Chips                 874\t902.5\t10.4\t(247)\n248.\tFor xtc                         874\t900.0\t8.2\t(248)\n249.\troadrunners                     861\t899.7\t18.5\t(249)\n250.\tMudville Kings                  851\t897.8\t27.6\t(250)\n251.\tNew Jersey Rob                  876\t894.2\t0.7\t(253)\n252.\tRedliners                       856\t893.3\t15.9\t(251)\n253.\tPat Phillips                    859\t887.6\t10.1\t(252)\n254.\tStewart Clamen                  851\t869.6\t1.6\t(254)\n255.\tDemon Spawn                     820\t866.1\t25.0\t(255)\n256.\tSunnyvale Storm                 804\t818.4\t0.2\t(256)\n257.\tAllez les Blues                 738\t809.1\t476.9\t(257)\n258.\tUp For Sale Hockey Club         749\t789.4\t23.0\t(258)\n259.\tPetes Picks                     721\t788.0\t168.5\t(259)\n260.\tRINACO                          709\t781.8\t114.0\t(260)\n261.\tBrenz Revenge                   691\t713.3\t4.0\t(261)\n262.\tDinamo Riga                     595\t663.9\t571.6\t(262)\n-- \nAndrew Scott                    | andrew@idacom.hp.com\nHP IDACOM Telecom Operation     | (403) 462-0666 ext. 253\n\nDuring the Roman Era, 28 was considered old...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 717, "properties": {"category": "sci.electronics", "text": "From: v064mb9k@ubvmsb.cc.buffalo.edu (NEIL B. GANDLER)\nSubject: Radio Electronics Free information card\nOrganization: University at Buffalo\nLines: 8\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\n\n\tHow does the radio Electronics free information cards work.\nDo they just send you some general information about the companies that\nadvertise in their magazine or does it also give you sign you up for a\ncatalog. \n\n\n                                  Neil Gandler\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 718, "properties": {"category": "talk.politics.misc", "text": "From: mfriedma@us.oracle.com (Michael Friedman)\nSubject: Re: Temper tantrums from the 1960's\nNntp-Posting-Host: hqsun4.us.oracle.com\nOrganization: Oracle Corporation, Redwood Shores CA\nDistribution: usa\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\nLines: 34\n\nIn article <1993Apr14.231117.21872@pony.Ingres.COM> garrett@Ingres.COM  writes:\n>In article <philC5Ht1t.GwA@netcom.com>, phil@netcom.com (Phil Ronzone)                   writes...\n\n>>Correct. JFK was quite disgusting in that way. The reports of the women that\n>>he coerced via power of the office are now in the dozens. Today, we';d\n>>call for immediate resignation for that kind of behaviour.\n\n>I guess coercing women into having sex is MUCH worse than stealing, breaking\n>and entering, rigging national elections, starting secret wars that kill\n>hundreds of thousands, and using the powers of your office for personal\n>gain like Nixon did. NOT!\n\nGarrett, you are a really pathetic liar.\n\nSome of your charges are arguable, but most of them are obvious lies.\n\nI challenge you to present us with any evidence that Nixon stole,\nrigged a national election, never mind elections, or used the powers\nof his office for personal gain.\n\nYou can't because there is absolutely no evidence that any of these\nevents occurred.\n\n>>Along with normalized relations with the PRC.\n\n>\"Normalizing relations\" with Cambodia? You must be joking. We sponsored\n>the OVERTHROW of the Cambodian government. After repeated failed attempts\n>of course. \n\nYour sad level of historical and political knowlege is probably best\nexemplified by the fact that you think PRC stands for Cambodia instead\nof Red China.\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.035+0000", "event": "documents", "entityId": 719, "properties": {"category": "alt.atheism", "text": "From: william.vaughan@uuserv.cc.utah.edu (WILLIAM DANIEL VAUGHAN)\nSubject: Re: A silly question on x-tianity\nLines: 9\nOrganization: University of Utah Computer Center\n\nIn article <pww-120493020107@spac-at1-59.rice.edu> pww@spacsun.rice.edu (Peter Walker) writes:\n>From: pww@spacsun.rice.edu (Peter Walker)\n>Subject: Re: A silly question on x-tianity\n>Date: Mon, 12 Apr 1993 07:06:33 GMT\n>In article <1qaqi1INNgje@gap.caltech.edu>, werdna@cco.caltech.edu (Andrew\n>Tong) wrote:\n>> \n\nso what\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 720, "properties": {"category": "talk.religion.misc", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: sgi\nLines: 31\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1qm069$fm8@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n|> In article <1qkndq$k@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> #In article <1qjbn0$na4@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n|> #|> In article <kmr4.1571.734847050@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n|> #|> #\tYou have only pushed back the undefined meaning. You must now define \n|> #|> #what \"objective values\" are.\n|> #|> \n|> #|> Really?  You don't know what objective value is?  If I offered the people\n|> #|> of the U.S., collectively, $1 for all of the land in America, would that \n|> #|> sound like a good deal?  \n|> #\n|> #You mean that if you can find a ridiculous price, the rest of\n|> #us are supposed to conclude that an objectively correct price\n|> #exists?\n|> \n|> I said nothing about the price.  I asked if the deal was good.  It isn't.\n\nSo it was a complete non-sequitur, is that it?     How does coming\nup with a derisory deal tell us anything about the existence of\n\"objective\" values.\n\nYou're asking us to accept that the deal you offered would be turned\ndown, and we believe that, not because we appeal to objective values\nbut becasue we know, or think we know, something about people.\n\nAll the people we know exhibit *subjective* values that would lead\nthem to reject a deal of $1 for all of the land in America.\n\nGreat.   Now, so what?\n\njon. \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 721, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ns111310@LANCE.ColoState.Edu (Nathaniel Sammons)\nSubject: Price drop on C650 within 2 months?\nArticle-I.D.: yuma.Apr06.184114.73926\nOrganization: Colorado State U. Engineering College\nLines: 12\nNntp-Posting-Host: casco.lance.colostate.edu\n\nI am going to be getting a C650 soon, but I don;t want Apple \nto come out with the Cyclones and the Tempest in a month\nand have the price drop on the system I want.  I have negotiated a \ngood deal with a supplier for a C650 8/80 and I would like to jump on it,\nbut, again, I don't want the price drop to smuther me.  BTW, the deal\nI have is a C650 8/80 with mouse for $2295... does anyone know of a better\ndeal?\n\nthanks,\n\n-nate\n ns111310@longs.lance.colostate.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 722, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Re: How do they know what keys to ask for?  (Re: Clipper)\nOrganization: ClariNet Communications Corp.\nLines: 10\n\nThe actual algorithm is classified, however, their main thrust here is\nfor cellular phones, and encryption is only over the radio end, not\nend to end, I think.   End to end will come later.\n\nAnd of course you have to identify yourself to the phone company, and\nsince the phone company complies with court orders, they will know the\nmagic number of your chip when they sign out a warrant on you, and\nthen can present the warrant to the key escrow house.\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 723, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: Exploding TV!\nOrganization: Megatest Corporation\nDistribution: usa\nLines: 39\n\nIn article <1qk4hj$qos@vtserf.cc.vt.edu> prasad@vtaix.cc.vt.edu (Prasad Ramakrishna) writes:\n>I had a GE Emerson 13\" color TV for about 3 years and one fine day,\n>while we were watching something (I doubt if the program was the cause),\n>we heard a mild explosion.   Our screen went blank but there was sound,\n>so we thought, 'oh we have special effects on the program'.  But soon\n>the sound stopped and smoke started to appear at the back of the TV.\n>The brilliant EEs we are, we unplugged the TV and called customer service\n>only to be thrown around by please hold, I will transfer u to blah blah..\n>  Finally we abandoned the idea of trying to fix the TV and got a new one\n>(we wanted a bigger one too!).\n> After all the story, what I wanted to know is: Is my problem an isolated\n>incident or a common one? (I recall reading about Russian TVs exploding, but\n>not here, in the US). Why would the picture tube explode or even smoke?\n> I still have the left over TV set, I might dig into it this summer. Any\n>idea where I can get parts for these things? (probably will cost more than TV).\n>\n\nHeh, heh, heh, heh....I laugh because I have the same damn TV, and it\ndid the same thing!  Actually it is a Goldstar, but it's essentially the\nsame TV and electronics--just a different face plate and name.\n\n#1.  Fortunately, TV tubes don't explode.  I'd think the TV mfrs want\nto make this possibility remote as possible.  If at all, they'll \n*implode* and the glass that blows out would be the result of the\nglass boucing off the back of the tube due to the implosion. In any\ncase, don't kick it around! :-) \n\n#2  I fixed the TV after getting a hold of some schematics.  It turned\nout to be a blown 2W resistor feeding the flyback transformer.  I guess\nthe original resistor was a bit too small to dissipate the heat it\ncreated, burning itself out.  I checked to make sure the flyback wasn't\nshorted or anything first!  Oh, luckily, I had a resistor handy lying\naround that had just the right value for what I needed.  I can't see it\nbeing more than 50 cents!.\n\nWell, needless to say, the TV still works today.  So go get a set of\nschematics and have some fun...just don't get shocked poking around\nthe flyback.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 724, "properties": {"category": "comp.windows.x", "text": "From: davewood@bruno.cs.colorado.edu (David Rex Wood)\nSubject: Creating application contexts multiple times???\nNntp-Posting-Host: bruno.cs.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 94\n\nThe subject does not describe the problem I am having very well.  Please read\non...\n\nI am trying to write a function which creates an XtAppContext and a Widget,\ndisplays the widget for a while, then destroys everything and returns.  The\nproblem is that multiple calls to this function cause a variety of problems\nincluding (depending on which calls I make to get rid of things):\n\n- Core Dump\n- BadPixmap X Error\n- Widget not unmapped\n\n\nHere is a simple (C++) program I wrote to show the problem:\n\n#include <X11/Xlib.h>\n#include <Xm/Xm.h>\n#include <Xm/PushB.h>\n\nvoid bla()\n{\n        XtAppContext app;\n        Display *dis = XOpenDisplay(\"\");\n        int junk = 0;\n\n        Widget top=XtAppInitialize (&app, \"test\", NULL, 0, &junk, NULL,\n                NULL, NULL, 0);\n\n        Widget box = XtVaCreateManagedWidget(\"blaaa\", xmPushButtonWidgetClass,\n                        top,\n                        XmNheight, 50,\n                        XmNwidth, 50,\n                        NULL);\n\n        XtRealizeWidget(top);\n        //Same as XtAppMainLoop but with only 10 XEvents\n        for (int i=0;i<=10;i++)\n        {\n                XEvent event;\n                XtAppNextEvent(app, &event);\n                XtDispatchEvent(&event);\n        }\n\n// WHAT SHOULD I PUT HERE???\n        XtUnrealizeWidget(top);\n        XtDestroyWidget(top);\n        XtDestroyApplicationContext(app);\n        XCloseDisplay(dis);\n// ???\n}\n\nmain()\n{\n        for (int i=0;i<=20;i++)\n                bla();\n}\n\nNote that I rewrote XtAppMainLoop so that at a given time (in this example,\nafter 10 XEvents) the function will exit and return to the main program.\nWith this example, I get the following error on about (this is NOT consistent)\nthe 5th call to bla():\n\nX Error of failed request:  BadPixmap (invalid Pixmap parameter)\n  Major opcode of failed request:  55 (X_CreateGC)\n  Resource id in failed request:  0xe0000d\n  Serial number of failed request:  71\n  Current serial number in output stream:  86\n\nIf I take out the XtUnrealizeWidget(top); line, it just dumps core on the\nseconds call.\n\nFurthermore, every time I call XtAppInitialize() (other than the 1st time), I\nget:\n\nWarning: Initializing Resource Lists twice\nWarning: Initializing Translation manager twice.\n\n\nSo finally, my question is this:\n\nWhat needs to be done in order to be able to call a function which creates\nan XtAppContext and widgets multiple times?\n\nAny help would be greatly appreciated.\n\nPLEASE respond via email as I dont usually have time to read this group.\n\nThanks very much.\n\n-davewood\n-- \n-------------------------------------------------------------------------------\nDavid Rex Wood -- davewood@cs.colorado.edu -- University of Colorado at Boulder\n-------------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 725, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Re: More Adaptec 1542B problems\nOrganization: Ford Motor Company Research Laboratory\nLines: 40\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\nlioness@maple.circa.ufl.edu wrote:\n: \n: Okay, here is my configuration:\n: \n: 80486-33 Gateway 433C Micronics ISA\n: 12MB RAM \n: WD212MB IDE HD ( drive C: )\n: ST3144A 125MB IDE HD ( drive D: )\n: Adaptec SCSI 1542B controller, with SCSI BIOS enabled\n: Seagate ST296N 80MB SCSI drive\n: \n: Alrighty, when I boot up I get the Adaptec BIOS message, but it says\n: something like:\n: \n: \"Drive C: installed\"\n: \"Drive D: installed\"\n: \"ADaptec SCSI BIOS not installed!\"\n: \n: And I can't get to the Seagate drive.\n: \n: I go into PhoenixBIOS setup, remove the entry for drive D:, and BOOM, I can\n: access the Seagate.  Is there a way to get two IDE drives and the Seagate\n: at the same time?  I have ASPI4DOS.SYS, but it just hangs the system.\n: \n: Brian\n: \n\nThere is a simple answer.  If my memory serves me the scsi bios will only\nwork as the first or second drive.  Any \"built-in\" drives e.g. IDE are\ninstalled first and then when the scsi bios runs it will try to install\nas the next drive.  But if there are already two drives, then no can do.\n\nThe solution is simple: use the aspi4dos device driver and disable the\nscsi bios (as it is useless in your case).  It works like a champ!  I\nhave seen a similar situation before.\n\nGood Luck\n\nGordon Lang\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 726, "properties": {"category": "sci.med", "text": "From: u96_averba@vaxc.stevens-tech.edu\nSubject: Arythmia\nLines: 11\nOrganization: Stevens Institute Of Technology\n\nI don't know if anyone knows about this topic: electrical heart \nfailure. One of my friends has had to go to the doctor because\nhe had chest pains. The Doc said it was Arythmia. So he had to\ngo to a new york hospital for a lot of money to get treated. His\ndoctors said that he could die from it, and the medication caused\ncancer ( that he was taking). Well, I suggested that he run, excersize\nand eat more, ( he is very skinny) but he says that has nothing\nto do with it. Does anyone know what causes arythmia and how \nit can be treated?\n\t\t\tThanks \n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 727, "properties": {"category": "talk.politics.guns", "text": "From: slagle@lmsc.lockheed.com (Mark Slagle)\nSubject: Re: NRA Fucks Up Bigtime\nReply-To: slagle@lmsc.lockheed.com\nIn-reply-to: doctor1@cbnewse.cb.att.com's message of Mon, 5 Apr 1993 04:24:50 GMT\nOrganization: You wouldn't ask this if you'd seen my desk.\n\t<SLAGLE.93Mar29232337@sgi417.msd.lmsc.lockheed.com>\n\t<1993Apr5.042450.2071@cbnewse.cb.att.com>\nLines: 27\n\nIn article <1993Apr5.042450.2071@cbnewse.cb.att.com>, doctor1@cbnewse.cb.att.com (patrick.b.hailey) writes:\n\n> In article <SLAGLE.93Mar29232337@sgi417.msd.lmsc.lockheed.com> slagle@lmsc.lockheed.com writes:\n\n>>In article <xw1twyl@dixie.com>, jgd@dixie.com (John De Armond) writes:\n\n>>> No, actually I'm a lot more familiar with the libbers than I\n>>> care to be.  I'm a bit hesitant to continue this thread because\n>>> it brings back horrible memories of my first encounter with the\n>>> libbers in the LaRouche branch.  I made the mistake of buying a\n\n>>Any connection between Lyndon LaRouche and the Libertarian Party\n>>is a pure product of your own fertile imagination.  \n\n> Naw, perhaps he reads Time magazine.\n\nIt's a fair stretch of anyone's imagination to expect them to\nattach any credibility to anything written in Time magazine in\nthe past twenty years, I'd imagine.  The Enquirer at least gets\nthe names attached to the right body parts.\n\n=Mark\n--\n----\nMark E. Slagle                                 PO Box 61059\nslagle@lmsc.lockheed.com                       Sunnyvale, CA   94088\n408-756-0895                                   USA\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 728, "properties": {"category": "talk.politics.mideast", "text": "From: hasan@McRCIM.McGill.EDU \nSubject: Re: 18 Israelis murdered in March\nOriginator: hasan@haley.mcrcim.mcgill.edu\nNntp-Posting-Host: haley.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for  Intelligent Machines\nLines: 189\n\n\nIn article <FLAX.93Apr5224449@frej.teknikum.uu.se>, flax@frej.teknikum.uu.se (Jonas Flygare) writes:\n|> In article <1993Apr5.125419.8157@thunder.mcrcim.mcgill.edu> hasan@McRCIM.McGill.EDU writes:\n|>    In article <FLAX.93Apr4151411@frej.teknikum.uu.se>, flax@frej.teknikum.uu.se (Jonas Flygare) writes:\n|> \n|>    |> In article <1993Apr3.182738.17587@thunder.mcrcim.mcgill.edu> hasan@McRCIM.McGill.EDU  writes:\n|> \n|>    |>    In article <FLAX.93Apr3142133@frej.teknikum.uu.se>, flax@frej.teknikum.uu.se (Jonas Flygare) writes:\n|> \n|>    |>    |> I get the impression Hasan realized he goofed and is now\n|>    |>    |> trying to drop the thread. Let him. It might save some\n|>    |>    |> miniscule portion of his sorry face.\n|> \n|>    |>    Not really. since i am a logical person who likes furthering himself\n|>    |>    from any \"name calling\", i started trashing any article that contains\n|>    |>    such abuses without responding to, and sometimes not even reading articles \n|>    |>    written by those who acquired such bad habits from bad company!\n\n|>    [deleted stuff]\n|>    well , ok. let's see what Master of Wisdom, Mr. Jonas Flygare,\n|>    wrote that can be wisdomely responded to :\n|> \n|> Are you calling names, or giving me a title? If the first, read your \n|> paragraph above, if not I accept the title, in order to let you get into the\n|> um, well, debate again.\n\nI didnot know that \"Master of wisdom\" can be \"name clling\" too,\nunless you consider yourself deserve-less !\n\n|>    Master of Wisdom writes in <1993Mar31.101957@frej.teknikum.uu.se>:\n|> \n|>    |> [hasan]\n|>    |> |> [flax]\n|>    |> |> |> [hasan]\n|> \n|>    |> |> |>    In case you didNOT know, Palestineans were there for 18 months. \n|>    |> |> |>    and they are coming back\n|>    |> |> |>    when you agree to give Palestineans their HUMAN-RIGHTS.\n|> \n|>    |> |> |>    Afterall, human rights areNOT negotiable.\n|> \n|>    |> |> |> Correct me if I'm wrong, but isn't the right to one's life _also_\n|>    |> |> |> a 'human right'?? Or does it only apply to palestinians?\n|> \n|>    |> |> No. it is EVERYBODY's right. However, when a killer kills, then he is giving\n|>    |> |> up -willingly or unwillingly - his life's right to the society. \n|>    |> |> the society represented by the goverment would exercise its duty by \n|>    |> |> depriving the killer off his life's right.\n|> \n|>    |> So then it's all right for Israel to kill the people who kill Israelis?\n|>    |> The old 'eye for an eye' thinking? Funny, I thought modern legal systems\n|>    |> were made to counter exactly that.\n|> \n|>    So what do you expect me to tell you to tell you, Master of Wsidom, \n|> \t\t\t\t\t\t\t       ^^^\n|> ------------------------------------------------------------------\n|> If you insist on giving me names/titles I did not ask for you could at\n|> least spell them correctly. /sigh.\n\nThat was only to confuse you! (ha ha ha hey )\n\n|>    when you are intentionally neglecting the MOST important fact that \n|>    the whole israeli presence in the occupied territories is ILLEGITIMATE, \n|>    and hence ALL their actions, their courts, their laws are illegitimate on \n|>    the ground of occupied territories.\n|> \n|> No, I am _not_ neglecting that, I'm merely asking you whether the existance\n|> of Israeli citicens in the WB or in Gaza invalidates those individuals right\n\t       ^^^^^^^ are you trying to retaliate and confuse me here.\n|> to live, a (as you so eloquently put it) human right. We can get back to the \n|> question of which law should be used in the territories later. Also, you have \n|> not adressed my question if the israelis also have human rights.\n\n\nFirst, my above statement doesnot say that \"the existence of israeli citizens\nin the WB revoke their right of life\" but it says \"the israeli occupation\nof the WB revoke the right of life for some/most its citizens - basically\nrevokes the right of for its military men\". Clearly, occupation is an\nundeclared war; during war, attacks against military targets are fully legitimate. \n\nSecondly, surely israeli have human rights, but they ask their goverment to\nprotect it by withdrawing from the occupied terretories, not by further oppressing\nPalestinean human rights.\n\n\n|>    What do you expect me to tell you, Master of Wisdom, when I did explain my\n|>    point in the post, that you \"responded to\". The point is that since Israel \n|>    is occupying then it is automatically depriving itself from some of its rights \n|>    to the Occupied Palestineans, which is exactly similar the automatic \n|>    deprivation of a killer from his right of life to the society.\n|> \n|> If a state can deprive all it's citizens of human rights by its actions, then \n|> tell me why _any_ human living today should have any rights at all?\n\n\nBecause not all states are like Israel, as oppressive, as ignorant, or as tyrant.\n\n\n|>    |> |> What kind of rights and how much would be deprived is another issue?\n|>    |> |> The answer is to be found in a certain system such as International law,\n|>    |> |> US law, Israeli law ,...\n|>    |>[deleted, Jonas was throwing up-not for real so you can stick to the screen]\n|>    |> |> It seems that the US law -represented by US State dept in this case-\n|>    |> |> is looking to the other way around when violence occurs in occupied territories.\n|>    |> |> Anyway, as for Hamas, then obviously they turned to the islamic system.\n|> \n|>    |> And which system do you propose we use to solve the ME problem?\n|> \n|>    The question is NOT which system would solve the ME problem. Why ? because\n|>    any system can solve it. \n|>    The laws of minister Sharon says kick Palestineans out of here (all palestine). \n|> \n|> I asked for which system should be used, that will preserve human rights for \n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n|> all people involved. I assumed that was obvious, but I won't repeat that \n|> mistake. Now that I have straightened that out, I'm eagerly awaiting your \n|> reply.\n\nSo you agree that that an israeli solution wouldnot preserve human rights.\n(i am understanding this from your first statement in this paragraph).\n\n|>    Joseph Weitz (administrator responsible for Jewish colonization) \n|>    said it best when writing in his diary in 1940:\n|> \t   \"Between ourselves it must be clear that there is no room for both\n|> \t   peoples together in this country.... We shall not achieve our goal\n|> \t\t\t\t\t\t^^^                  ^^^\n|> \t   of being an independent people with the Arabs in this small country.\n|> \t   The only solution is a Palestine, at least Western Palestine (west of\n|> \t   the Jordan river) without Arabs.... And there is no other way than\n|> \t   to transfer the Arabs from here to the neighbouring countries, to\n|> \t   transfer all of them; not one village, not one tribe, should be \n|> \t   left.... Only after this transfer will the country be able to\n|> \t   absorb the millions of our own brethren. There is no other way out.\"\n|> \t\t\t\t   DAVAR, 29 September, 1967\n|> \t\t\t\t   (\"Courtesy\" of Marc Afifi)\n|> \n|> Just a question: If we are to disregard the rather obvious references to \n|> getting Israel out of ME one way or the other in both PLO covenant and HAMAS\n|> charter (that's the english translations, if you have other information I'd\n|> be interested to have you translate it) why should we give any credence to \n|> a _private_ paper even older? I'm not going to get into the question if he\n|> wrote the above, but it's fairly obvious all parties in the conflict have\n|> their share of fanatics. Guess what..? Those are not the people that will\n|> make any lasting peace in the region. [more deleted stuff]\n\nExactly, you are right. I guess that the problem is that the israeli goverment \nis full with  men like Joseph Weitz. \n\n\n|>    \"We\" and \"our\" either refers to Zionists or Jews (i donot know which). \n|> \n|>    Well, i can give you an answer, you Master of Wisdom, I will NOT suggest the \n|>    imperialist israeli system for solving the ME problem !\n|> \n|>    I think that is fair enough .\n|> \n|> No, that is _not_ an answer, since I asked for a system that could solve \n|> the problem. You said any could be used, then you provided a contradiction.\n\nAbove you wrote that you understood what i meant (underlined by ^ ): \nany system can be used to solve the conflict , but not any system would \nresolve it JUSTLY.\n\n|> Guess where that takes your logic? To never-never land. \n\nYou are proving yourself as a \" \". First you understood what i meant, but then\nyou claim you didnot so to claim a contradiction in my logic. Too bad for you, \nthe Master of Wisdom.\n\n\n|>    \"The greatest problem of Zionism is Arab children\".\n|> \t\t\t   -Rabbi Shoham.\n|> \n|> Oh, and by the way, let me add that these cute quotes you put at the end are\n|> a real bummer, when I try giving your posts any credit.\n\nWhy do you feel ashamed by things and facts that you believe in , if you were a\nZionists. If you believe in Zionist codes and acts, well i feel sorry for you,\nbecause the same Rabbi Shoham had said \"Yes, Zionism is racism\".\nIf you feel ashamed and bothered by the Zionist codes, then drop Zionism.\nIf you are not Zionist, why are you bothered then. You should join me in\ncondemning these racist Zionist codes and acts.\n\nHasan\n\n\n\n|> Jonas Flygare, \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 729, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Keeping the silent memory of 2.5 million Muslim people alive.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 34\n\nSource: \"Men Are Like That\" by Leonard Ramsden Hartill. The Bobbs-Merrill\nCompany, Indianapolis (1926). (305 pages). \n(Memoirs of an Armenian officer who participated in the genocide of 2.5 \n million Muslim people)\n\np. 193.\n\n\"Their [Muslim] villages were destroyed and they themselves were slain or \n driven out of the country.\"\n\np. 218. \n\n\"We Armenians did not spare the Tartars. If persisted in, the slaughtering \n of prisoners, the looting, and the rape and massacre of the helpless become \n commonplace actions expected and accepted as a matter of course.\n\n I have been on the scenes of massacres where the dead lay on the ground,\n in numbers, like the fallen leaves in a forest. They had been as helpless\n and as defenseless as sheep. They had not died as soldiers die in the\n heat of battle, fired with ardor and courage, with weapons in their hands,\n and exchanging blow for blow. They had died as the helpless must, with\n their hearts and brains bursting with horror worse than death itself.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 730, "properties": {"category": "rec.sport.hockey", "text": "From: \"Steve Hayman\" <sahayman@cs.indiana.edu>\nSubject: Re: Hockey and the Hispanic community\nOrganization: Objectario\nLines: 11\n\nIn article <C5I2s2.3Bt@odin.corp.sgi.com> rickc@wrigley.corp.sgi.com (Richard Casares) writes:\n>When was the last time you saw a hockey league in the inner city.\n\nWell, actually now that you mention it, a few weeks ago the CBC ran a\ndocumentary on \"Ice Hockey in Harlem\".  the Canadian Club of New York\n(something like that) sponsors a league for kids in Harlem and based on\nthe TV report they all seemed to be having a lot of fun.  All playing\nwith regular equipment, jerseys, etc etc, on a proper outdoor rink.  It\nlooked just like kids playing hockey anywhere else.\n\nSome of the kids were even fortunate to get a trip to a hockey camp in Alberta.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 731, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: Jewish Baseball Players?\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 24\n\nIn article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>Just wondering.  A friend and I were talking the other day, and\n>we were (for some reason) trying to come up with names of Jewish\n>baseball players, past and present.  We weren't able to come up\n>with much, except for Sandy Koufax, (somebody) Stankowitz, and\n>maybe John Lowenstein.  Can anyone come up with any more.  I know\n>it sounds pretty lame to be racking our brains over this, but\n>humor us.  Thanks for your help.\n\nStankiewicz?  I doubt it.\n\nKoufax was one of two Jewish HOFs: the other is Hank Greenberg.\n\nOther good players: Buddy Myer, Johnny Kling, Norm and Larry Sherry,\nKen Holtzman, Saul Rogovin, Ed Reulbach.  \n\nThere have been over 150 Jewish major leaguers.  A few years ago there\nwas an article about someone who keeps track of this in Spy magazine;\nthe article was entitled \"Jews on First,\" of course.\n\nThere have also been at least two books on the subject.\n\nRoger\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 732, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: leono@ux1.cso.uiuc.edu (Leon Olszewski )\nSubject: DDE frustrations - Can you help?\nSummary: Need help to get DDE to work\nKeywords: DDE\nOrganization: University of Illinois at Urbana\nLines: 24\n\nI am starting to work on a project using DDE to transfer data.  The \napplication came with an Excel macro which can transfer the data.\nI need to 'port' it to 1-2-3W.  1-2-3W uses a very different setup\nfor DDE macros.\n\nDoes anyone have any suggestions as to good references?  I have \ndownloaded \"WW01117:  Windows Dynamic Exchange (DDE)\" [the MS\nApplication Note].  Any books worth getting?\n\nThe specifics are:\n\nServer application:  Dionex AI-450 Chromatography Data System\nClient application:  1-2-3 for Windows V1.1\n\nExcept for the macro, Dionex did not provide any documentation\nfor DDE.  Also, I am having problems because I am trying to develop\nthe application on my PC, but to actually get data, you need to be\nconnect to the instrument.  Any help here would be appreciated, too.\n\nThanks,\n-- \n\nLeon M. Olszewski        | Nothing is worse than having an itch you can\nInternet: leono@uiuc.edu | never scratch.  Leon - Bladerunner\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 733, "properties": {"category": "comp.graphics", "text": "From: johnm@spudge.lonestar.org (John Munsch)\nSubject: Re: Rumours about 3DO ???\nOrganization: /etc/organization\nLines: 16\n\nIn article <loT1rAPNBh107h@viamar.UUCP> rutgers!viamar!kmembry writes:\n>Read Issue #2 of Wired Magazine.  It has a long article on the \"hype\" of\n>3DO.  I've noticed that every article talks with the designers and how\n>\"great\" it is, but never show any pictures of the output (or at least\n>pictures that one can understand)\n\nGamepro magazine published pictures a few months ago and Computer Chronicles\n(a program that is syndicated to public tv stations around the nation) spent\nseveral minutes on it when it was shown at CES.  It was very impressive what\nit can do in real time.\n\nJohn Munsch\n\nP.S.  Don't take that to mean that I believe that the system is going to take\nover the world or something.  Just that it clearly has a lot more horsepower\nthan any of the VIS, CD-I, Sega CD, or Turbo Duo crowd.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 734, "properties": {"category": "talk.politics.misc", "text": "From: chloupek@ohstpy.mps.ohio-state.edu\nSubject: Re: NC vs Hunt (Marine Gay Bashing in Wilmington NC) verdict\nOrganization: The Ohio State University, Department of Physics\nLines: 57\n\nIn article <1qp5juINNgu5@senator-bedfellow.MIT.EDU>, wdstarr@athena.mit.edu (William December Starr) writes:\n> In article <1993Apr14.135948.3024@lynx.dac.northeastern.edu>, \n> tfarrell@lynx.dac.northeastern.edu (Thomas Farrell) said:\n> \n>> A good case? A F**KING GOOD CASE? The defense lawyer asked the victim\n>> questions like \"what kind of sexual perversions do you participate\n>> in?\"  and you think he made a good case?????\n> \n> Speaking as someone who's only about six weeks and a $6,900 tuition bill\n> away from becoming an unemployed slob with a law degree, I'd really like\n> to see a transcript of this trial.  I'd especially like to know what\n> happened immediately after the defense attorney asked that question\n> (assuming that the reports that he did so are accurate... I'm not\n> accusing Tom Farrell of making anything up, but this _is_ the sort of\n> case that spawns garbled misquotes, false rumors and urban legends like\n> tribbles).  It'd be nice to think that the prosecutor objected\n> (irrelevant, prejudicial, inflammatory... take your pick) and that the\n> judge upheld the objection.\n>\nI did hear this question asked during a radio news update of the case.  (They\nwere talking about the ongoing trial and had some audio clips).  Immediately\nafter the defense attorney asked the question, there was an \"Objection!\" heard\nin the background.  The clip ended at that point so I don't know if the\nobjection was upheld.  I can't imagine NC is *that* bad. \n\n>> The arresting officer said the bastards told him they did it on\n>> purpose and hoped the victim would die, and you think the defense made\n>> a good case????? No wonder we're losing!  We're aparently not trying\n>> to win!\n> \n> Again, I'd like to see the transcript... I'd read the latter bit of that\n> in the news media (the arresting officer testifying that one of the\n> defendants calmly asked him about the condition of the \"homo\" and said\n> that he hoped he'd die) but this is the first I've heard of the officer\n> testifying that one of the defendants actually said that he did anything\n> at all, let alone that he did it on purpose.\n>\nThis I didn't hear as an audio clip but heard it reported a number of times on\nnews stories both during and after the trial.  Now the \"we did it on purpose\"\nthing is stretching, I think it was something more like--he had it coming.  If\nsomebody else remebers better than I on this second point, feel free to\nclarify.  \n        \nFrank\n\n--------------------------------------------------------------------------\n\nFrank R. Chloupek \nCHLOUPEK@ohstpy.mps.ohio-state.edu \nDepartment of Physics -- *The* Ohio State University\n(Not just any Ohio State University) \n\n\"There is only one hard-and-fast rule about the place to have a party:  \nsomebody else's place.\"\n\t\t\t\t\t\t\t--P.J. O'Rourke\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 735, "properties": {"category": "sci.electronics", "text": "From: vanderby@mprgate.mpr.ca (David Vanderbyl)\nSubject: Re: Police radar....Just how does it work??\nNntp-Posting-Host: chip\nReply-To: vanderby@mprgate.mpr.ca (David Vanderbyl)\nOrganization: MPR Teltech Ltd.\nLines: 22\n\nIn article <1993Apr6.161107.2235@b30news.b30.ingr.com>, dtmedin@catbyte.b30.ingr.com (Dave Medin) writes:\n|> In article <1993Apr2.182402.28700@walter.bellcore.com>, deaddio@ski.bellcore.com (Michael DeAddio) writes:\n|> \n|> |> |> The 'beam' is split in two, with one beam aimed at the target car (sort of) and\n|> |> |> the other at the ground.  The speeds of each are calulated for the final\n|> |> |> number\n|> |> \n|> |> Actually, this is true on the more expensive ones, but the cheaper ones\n|> |> just read the speedometer.\n|> \n|> I've never seen a speedometer-reading model. Are you sure? Who makes\n|> them? Consider the difficulty of reading the speedo on various makes\n|> of cars in use... I've seen single beam moving-mode and split beam\n|> moving-mode.\n\nObviously the police officer reads the speedometer.\nI cannot believe the nit-picking in this group.\nThere's 2 beams, there is not, is too, etc....\n\n|> --------------------------------------------------------------------\n|> [Dave Medin's 10 line sig deleted]\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 736, "properties": {"category": "sci.crypt", "text": "From: ninassup@athena.mit.edu (Nikos I Nassuphis)\nSubject: LGA ncrypt source\nOrganization: Massachusetts Institute of Technology\nLines: 1135\nNNTP-Posting-Host: w20-575-104.mit.edu\n\nI got a number of requests for code.\nSo, here it is.\nIts written in 80x86 ASM. \nBorland TASM will do.\n\nTASM LGA.ASM\nTLINK /t LGA.ASM\n\n\nThe code:\n\n;----------------------------------------------------------------------\n; LGA ncryption\n; (C) by Nick Nassuphis\n;----------------------------------------------------------------------\n\nCODE\tSEGMENT\n\tASSUME\tCS:CODE, DS:CODE\n\t\n\tORG\t100h\n\nStart:\n\tJMP\tBegin\n\n;----------------------------------------------------------------------\n;\n; Gas particle assigment:\n;\n; BIT 0    particle moving EAST\n; BIT 1    particle moving WEST\n; BIT 2    particle moving NORTH\n; BIT 3    particle moving SOUTH\n;\n; BIT 4    particle moving EAST\n; BIT 5    particle moving WEST\n; BIT 6    particle moving NORTH\n; BIT 7    particle moving SOUTH\n;\n;\n; Collisiong Rules:\n;\n; 1. Gas Rules\n;\n; IF (E & W) AND !(N & S) THEN (E,W)->(N,S)\n; IF (N & S) AND !(E & W) THEN (N,S)->(E,W)\n;\n; for nibbles:\n;\n; 1100 -> 0011\n; 0011 -> 0011\n;\n; and for bytes:\n;\n; 11000000 -> 00110000\n; 00110000 -> 11000000\n; 00001100 -> 00000011\n; 00000011 -> 00001100\n; 00110011 -> 11001100\n; 00111100 -> 11000011\n; 11000011 -> 00111100\n; 11001100 -> 00110011\n;\n;\n; 2. Reflection Rules\n;\n; just swap bits along directions\n;\n;----------------------------------------------------------------------\n\n;\n; This look-up table implements two particle collisions\n; for the HPP lattice gas\n;\nHPPRule:\nDB   00000000B   ;00000000\nDB   00000001B   ;00000001\nDB   00000010B   ;00000010\nDB   00001100B   ;00000011\nDB   00000100B   ;00000100\nDB   00000101B   ;00000101\nDB   00000110B   ;00000110\nDB   00000111B   ;00000111\nDB   00001000B   ;00001000\nDB   00001001B   ;00001001\nDB   00001010B   ;00001010\nDB   00001011B   ;00001011\nDB   00000011B   ;00001100\nDB   00001101B   ;00001101\nDB   00001110B   ;00001110\nDB   00001111B   ;00001111\nDB   00010000B   ;00010000\nDB   00010001B   ;00010001\nDB   00010010B   ;00010010\nDB   00011100B   ;00010011\nDB   00010100B   ;00010100\nDB   00010101B   ;00010101\nDB   00010110B   ;00010110\nDB   00010111B   ;00010111\nDB   00011000B   ;00011000\nDB   00011001B   ;00011001\nDB   00011010B   ;00011010\nDB   00011011B   ;00011011\nDB   00010011B   ;00011100\nDB   00011101B   ;00011101\nDB   00011110B   ;00011110\nDB   00011111B   ;00011111\nDB   00100000B   ;00100000\nDB   00100001B   ;00100001\nDB   00100010B   ;00100010\nDB   00101100B   ;00100011\nDB   00100100B   ;00100100\nDB   00100101B   ;00100101\nDB   00100110B   ;00100110\nDB   00100111B   ;00100111\nDB   00101000B   ;00101000\nDB   00101001B   ;00101001\nDB   00101010B   ;00101010\nDB   00101011B   ;00101011\nDB   00100011B   ;00101100\nDB   00101101B   ;00101101\nDB   00101110B   ;00101110\nDB   00101111B   ;00101111\nDB   11000000B   ;00110000\nDB   11000001B   ;00110001\nDB   11000010B   ;00110010\nDB   11001100B   ;00110011\nDB   11000100B   ;00110100\nDB   11000101B   ;00110101\nDB   11000110B   ;00110110\nDB   11000111B   ;00110111\nDB   11001000B   ;00111000\nDB   11001001B   ;00111001\nDB   11001010B   ;00111010\nDB   11001011B   ;00111011\nDB   11000011B   ;00111100\nDB   11001101B   ;00111101\nDB   11001110B   ;00111110\nDB   11001111B   ;00111111\nDB   01000000B   ;01000000\nDB   01000001B   ;01000001\nDB   01000010B   ;01000010\nDB   01001100B   ;01000011\nDB   01000100B   ;01000100\nDB   01000101B   ;01000101\nDB   01000110B   ;01000110\nDB   01000111B   ;01000111\nDB   01001000B   ;01001000\nDB   01001001B   ;01001001\nDB   01001010B   ;01001010\nDB   01001011B   ;01001011\nDB   01000011B   ;01001100\nDB   01001101B   ;01001101\nDB   01001110B   ;01001110\nDB   01001111B   ;01001111\nDB   01010000B   ;01010000\nDB   01010001B   ;01010001\nDB   01010010B   ;01010010\nDB   01011100B   ;01010011\nDB   01010100B   ;01010100\nDB   01010101B   ;01010101\nDB   01010110B   ;01010110\nDB   01010111B   ;01010111\nDB   01011000B   ;01011000\nDB   01011001B   ;01011001\nDB   01011010B   ;01011010\nDB   01011011B   ;01011011\nDB   01010011B   ;01011100\nDB   01011101B   ;01011101\nDB   01011110B   ;01011110\nDB   01011111B   ;01011111\nDB   01100000B   ;01100000\nDB   01100001B   ;01100001\nDB   01100010B   ;01100010\nDB   01101100B   ;01100011\nDB   01100100B   ;01100100\nDB   01100101B   ;01100101\nDB   01100110B   ;01100110\nDB   01100111B   ;01100111\nDB   01101000B   ;01101000\nDB   01101001B   ;01101001\nDB   01101010B   ;01101010\nDB   01101011B   ;01101011\nDB   01100011B   ;01101100\nDB   01101101B   ;01101101\nDB   01101110B   ;01101110\nDB   01101111B   ;01101111\nDB   01110000B   ;01110000\nDB   01110001B   ;01110001\nDB   01110010B   ;01110010\nDB   01111100B   ;01110011\nDB   01110100B   ;01110100\nDB   01110101B   ;01110101\nDB   01110110B   ;01110110\nDB   01110111B   ;01110111\nDB   01111000B   ;01111000\nDB   01111001B   ;01111001\nDB   01111010B   ;01111010\nDB   01111011B   ;01111011\nDB   01110011B   ;01111100\nDB   01111101B   ;01111101\nDB   01111110B   ;01111110\nDB   01111111B   ;01111111\nDB   10000000B   ;10000000\nDB   10000001B   ;10000001\nDB   10000010B   ;10000010\nDB   10001100B   ;10000011\nDB   10000100B   ;10000100\nDB   10000101B   ;10000101\nDB   10000110B   ;10000110\nDB   10000111B   ;10000111\nDB   10001000B   ;10001000\nDB   10001001B   ;10001001\nDB   10001010B   ;10001010\nDB   10001011B   ;10001011\nDB   10000011B   ;10001100\nDB   10001101B   ;10001101\nDB   10001110B   ;10001110\nDB   10001111B   ;10001111\nDB   10010000B   ;10010000\nDB   10010001B   ;10010001\nDB   10010010B   ;10010010\nDB   10011100B   ;10010011\nDB   10010100B   ;10010100\nDB   10010101B   ;10010101\nDB   10010110B   ;10010110\nDB   10010111B   ;10010111\nDB   10011000B   ;10011000\nDB   10011001B   ;10011001\nDB   10011010B   ;10011010\nDB   10011011B   ;10011011\nDB   10010011B   ;10011100\nDB   10011101B   ;10011101\nDB   10011110B   ;10011110\nDB   10011111B   ;10011111\nDB   10100000B   ;10100000\nDB   10100001B   ;10100001\nDB   10100010B   ;10100010\nDB   10101100B   ;10100011\nDB   10100100B   ;10100100\nDB   10100101B   ;10100101\nDB   10100110B   ;10100110\nDB   10100111B   ;10100111\nDB   10101000B   ;10101000\nDB   10101001B   ;10101001\nDB   10101010B   ;10101010\nDB   10101011B   ;10101011\nDB   10100011B   ;10101100\nDB   10101101B   ;10101101\nDB   10101110B   ;10101110\nDB   10101111B   ;10101111\nDB   10110000B   ;10110000\nDB   10110001B   ;10110001\nDB   10110010B   ;10110010\nDB   10111100B   ;10110011\nDB   10110100B   ;10110100\nDB   10110101B   ;10110101\nDB   10110110B   ;10110110\nDB   10110111B   ;10110111\nDB   10111000B   ;10111000\nDB   10111001B   ;10111001\nDB   10111010B   ;10111010\nDB   10111011B   ;10111011\nDB   10110011B   ;10111100\nDB   10111101B   ;10111101\nDB   10111110B   ;10111110\nDB   10111111B   ;10111111\nDB   00110000B   ;11000000\nDB   00110001B   ;11000001\nDB   00110010B   ;11000010\nDB   00111100B   ;11000011\nDB   00110100B   ;11000100\nDB   00110101B   ;11000101\nDB   00110110B   ;11000110\nDB   00110111B   ;11000111\nDB   00111000B   ;11001000\nDB   00111001B   ;11001001\nDB   00111010B   ;11001010\nDB   00111011B   ;11001011\nDB   00110011B   ;11001100\nDB   00111101B   ;11001101\nDB   00111110B   ;11001110\nDB   00111111B   ;11001111\nDB   11010000B   ;11010000\nDB   11010001B   ;11010001\nDB   11010010B   ;11010010\nDB   11011100B   ;11010011\nDB   11010100B   ;11010100\nDB   11010101B   ;11010101\nDB   11010110B   ;11010110\nDB   11010111B   ;11010111\nDB   11011000B   ;11011000\nDB   11011001B   ;11011001\nDB   11011010B   ;11011010\nDB   11011011B   ;11011011\nDB   11010011B   ;11011100\nDB   11011101B   ;11011101\nDB   11011110B   ;11011110\nDB   11011111B   ;11011111\nDB   11100000B   ;11100000\nDB   11100001B   ;11100001\nDB   11100010B   ;11100010\nDB   11101100B   ;11100011\nDB   11100100B   ;11100100\nDB   11100101B   ;11100101\nDB   11100110B   ;11100110\nDB   11100111B   ;11100111\nDB   11101000B   ;11101000\nDB   11101001B   ;11101001\nDB   11101010B   ;11101010\nDB   11101011B   ;11101011\nDB   11100011B   ;11101100\nDB   11101101B   ;11101101\nDB   11101110B   ;11101110\nDB   11101111B   ;11101111\nDB   11110000B   ;11110000\nDB   11110001B   ;11110001\nDB   11110010B   ;11110010\nDB   11111100B   ;11110011\nDB   11110100B   ;11110100\nDB   11110101B   ;11110101\nDB   11110110B   ;11110110\nDB   11110111B   ;11110111\nDB   11111000B   ;11111000\nDB   11111001B   ;11111001\nDB   11111010B   ;11111010\nDB   11111011B   ;11111011\nDB   11110011B   ;11111100\nDB   11111101B   ;11111101\nDB   11111110B   ;11111110\nDB   11111111B   ;11111111\n\n;\n; This rule implements the velocity-reversal needed to\n; run the gas evolution in reverse. Its called a WallRule\n; because its the same as is all particles hit a wall\n; head on.\n;\nWallRule:\nDB   00000000B   ;00000000\nDB   00000010B   ;00000001\nDB   00000001B   ;00000010\nDB   00001100B   ;00000011\nDB   00001000B   ;00000100\nDB   00001010B   ;00000101\nDB   00001001B   ;00000110\nDB   00001011B   ;00000111\nDB   00000100B   ;00001000\nDB   00000110B   ;00001001\nDB   00000101B   ;00001010\nDB   00000111B   ;00001011\nDB   00000011B   ;00001100\nDB   00001110B   ;00001101\nDB   00001101B   ;00001110\nDB   00001111B   ;00001111\nDB   00100000B   ;00010000\nDB   00100010B   ;00010001\nDB   00100001B   ;00010010\nDB   00101100B   ;00010011\nDB   00101000B   ;00010100\nDB   00101010B   ;00010101\nDB   00101001B   ;00010110\nDB   00101011B   ;00010111\nDB   00100100B   ;00011000\nDB   00100110B   ;00011001\nDB   00100101B   ;00011010\nDB   00100111B   ;00011011\nDB   00100011B   ;00011100\nDB   00101110B   ;00011101\nDB   00101101B   ;00011110\nDB   00101111B   ;00011111\nDB   00010000B   ;00100000\nDB   00010010B   ;00100001\nDB   00010001B   ;00100010\nDB   00011100B   ;00100011\nDB   00011000B   ;00100100\nDB   00011010B   ;00100101\nDB   00011001B   ;00100110\nDB   00011011B   ;00100111\nDB   00010100B   ;00101000\nDB   00010110B   ;00101001\nDB   00010101B   ;00101010\nDB   00010111B   ;00101011\nDB   00010011B   ;00101100\nDB   00011110B   ;00101101\nDB   00011101B   ;00101110\nDB   00011111B   ;00101111\nDB   11000000B   ;00110000\nDB   11000010B   ;00110001\nDB   11000001B   ;00110010\nDB   11001100B   ;00110011\nDB   11001000B   ;00110100\nDB   11001010B   ;00110101\nDB   11001001B   ;00110110\nDB   11001011B   ;00110111\nDB   11000100B   ;00111000\nDB   11000110B   ;00111001\nDB   11000101B   ;00111010\nDB   11000111B   ;00111011\nDB   11000011B   ;00111100\nDB   11001110B   ;00111101\nDB   11001101B   ;00111110\nDB   11001111B   ;00111111\nDB   10000000B   ;01000000\nDB   10000010B   ;01000001\nDB   10000001B   ;01000010\nDB   10001100B   ;01000011\nDB   10001000B   ;01000100\nDB   10001010B   ;01000101\nDB   10001001B   ;01000110\nDB   10001011B   ;01000111\nDB   10000100B   ;01001000\nDB   10000110B   ;01001001\nDB   10000101B   ;01001010\nDB   10000111B   ;01001011\nDB   10000011B   ;01001100\nDB   10001110B   ;01001101\nDB   10001101B   ;01001110\nDB   10001111B   ;01001111\nDB   10100000B   ;01010000\nDB   10100010B   ;01010001\nDB   10100001B   ;01010010\nDB   10101100B   ;01010011\nDB   10101000B   ;01010100\nDB   10101010B   ;01010101\nDB   10101001B   ;01010110\nDB   10101011B   ;01010111\nDB   10100100B   ;01011000\nDB   10100110B   ;01011001\nDB   10100101B   ;01011010\nDB   10100111B   ;01011011\nDB   10100011B   ;01011100\nDB   10101110B   ;01011101\nDB   10101101B   ;01011110\nDB   10101111B   ;01011111\nDB   10010000B   ;01100000\nDB   10010010B   ;01100001\nDB   10010001B   ;01100010\nDB   10011100B   ;01100011\nDB   10011000B   ;01100100\nDB   10011010B   ;01100101\nDB   10011001B   ;01100110\nDB   10011011B   ;01100111\nDB   10010100B   ;01101000\nDB   10010110B   ;01101001\nDB   10010101B   ;01101010\nDB   10010111B   ;01101011\nDB   10010011B   ;01101100\nDB   10011110B   ;01101101\nDB   10011101B   ;01101110\nDB   10011111B   ;01101111\nDB   10110000B   ;01110000\nDB   10110010B   ;01110001\nDB   10110001B   ;01110010\nDB   10111100B   ;01110011\nDB   10111000B   ;01110100\nDB   10111010B   ;01110101\nDB   10111001B   ;01110110\nDB   10111011B   ;01110111\nDB   10110100B   ;01111000\nDB   10110110B   ;01111001\nDB   10110101B   ;01111010\nDB   10110111B   ;01111011\nDB   10110011B   ;01111100\nDB   10111110B   ;01111101\nDB   10111101B   ;01111110\nDB   10111111B   ;01111111\nDB   01000000B   ;10000000\nDB   01000010B   ;10000001\nDB   01000001B   ;10000010\nDB   01001100B   ;10000011\nDB   01001000B   ;10000100\nDB   01001010B   ;10000101\nDB   01001001B   ;10000110\nDB   01001011B   ;10000111\nDB   01000100B   ;10001000\nDB   01000110B   ;10001001\nDB   01000101B   ;10001010\nDB   01000111B   ;10001011\nDB   01000011B   ;10001100\nDB   01001110B   ;10001101\nDB   01001101B   ;10001110\nDB   01001111B   ;10001111\nDB   01100000B   ;10010000\nDB   01100010B   ;10010001\nDB   01100001B   ;10010010\nDB   01101100B   ;10010011\nDB   01101000B   ;10010100\nDB   01101010B   ;10010101\nDB   01101001B   ;10010110\nDB   01101011B   ;10010111\nDB   01100100B   ;10011000\nDB   01100110B   ;10011001\nDB   01100101B   ;10011010\nDB   01100111B   ;10011011\nDB   01100011B   ;10011100\nDB   01101110B   ;10011101\nDB   01101101B   ;10011110\nDB   01101111B   ;10011111\nDB   01010000B   ;10100000\nDB   01010010B   ;10100001\nDB   01010001B   ;10100010\nDB   01011100B   ;10100011\nDB   01011000B   ;10100100\nDB   01011010B   ;10100101\nDB   01011001B   ;10100110\nDB   01011011B   ;10100111\nDB   01010100B   ;10101000\nDB   01010110B   ;10101001\nDB   01010101B   ;10101010\nDB   01010111B   ;10101011\nDB   01010011B   ;10101100\nDB   01011110B   ;10101101\nDB   01011101B   ;10101110\nDB   01011111B   ;10101111\nDB   01110000B   ;10110000\nDB   01110010B   ;10110001\nDB   01110001B   ;10110010\nDB   01111100B   ;10110011\nDB   01111000B   ;10110100\nDB   01111010B   ;10110101\nDB   01111001B   ;10110110\nDB   01111011B   ;10110111\nDB   01110100B   ;10111000\nDB   01110110B   ;10111001\nDB   01110101B   ;10111010\nDB   01110111B   ;10111011\nDB   01110011B   ;10111100\nDB   01111110B   ;10111101\nDB   01111101B   ;10111110\nDB   01111111B   ;10111111\nDB   00110000B   ;11000000\nDB   00110010B   ;11000001\nDB   00110001B   ;11000010\nDB   00111100B   ;11000011\nDB   00111000B   ;11000100\nDB   00111010B   ;11000101\nDB   00111001B   ;11000110\nDB   00111011B   ;11000111\nDB   00110100B   ;11001000\nDB   00110110B   ;11001001\nDB   00110101B   ;11001010\nDB   00110111B   ;11001011\nDB   00110011B   ;11001100\nDB   00111110B   ;11001101\nDB   00111101B   ;11001110\nDB   00111111B   ;11001111\nDB   11100000B   ;11010000\nDB   11100010B   ;11010001\nDB   11100001B   ;11010010\nDB   11101100B   ;11010011\nDB   11101000B   ;11010100\nDB   11101010B   ;11010101\nDB   11101001B   ;11010110\nDB   11101011B   ;11010111\nDB   11100100B   ;11011000\nDB   11100110B   ;11011001\nDB   11100101B   ;11011010\nDB   11100111B   ;11011011\nDB   11100011B   ;11011100\nDB   11101110B   ;11011101\nDB   11101101B   ;11011110\nDB   11101111B   ;11011111\nDB   11010000B   ;11100000\nDB   11010010B   ;11100001\nDB   11010001B   ;11100010\nDB   11011100B   ;11100011\nDB   11011000B   ;11100100\nDB   11011010B   ;11100101\nDB   11011001B   ;11100110\nDB   11011011B   ;11100111\nDB   11010100B   ;11101000\nDB   11010110B   ;11101001\nDB   11010101B   ;11101010\nDB   11010111B   ;11101011\nDB   11010011B   ;11101100\nDB   11011110B   ;11101101\nDB   11011101B   ;11101110\nDB   11011111B   ;11101111\nDB   11110000B   ;11110000\nDB   11110010B   ;11110001\nDB   11110001B   ;11110010\nDB   11111100B   ;11110011\nDB   11111000B   ;11110100\nDB   11111010B   ;11110101\nDB   11111001B   ;11110110\nDB   11111011B   ;11110111\nDB   11110100B   ;11111000\nDB   11110110B   ;11111001\nDB   11110101B   ;11111010\nDB   11110111B   ;11111011\nDB   11110011B   ;11111100\nDB   11111110B   ;11111101\nDB   11111101B   ;11111110\nDB   11111111B   ;11111111\n\n\nMAXBYTE\tEQU\t55\nLINENO\tEQU\t23\n\nSrcPtr\tDW\tOFFSET Buffer1\nDesPtr\tDW\tOFFSET Buffer2\n\nSaveBuff:\n\tDB\tMAXBYTE*(LINENO+1) DUP(0)\n\t\nBuffer1:\n\tDB\tMAXBYTE*(LINENO+1) DUP(0)\n\tDB\t256 DUP(0)\n\nBuffer2:\n\tDB\tMAXBYTE*(LINENO+1) DUP(0)\n\tDB\t256 DUP(0)\n\n;----------------------------------------------------------------------\n;\n;\n;\n;----------------------------------------------------------------------\n\nData:\nDB\t\"                                                       \"\nDB\t\"                                                       \"\nDB\t\"                                                       \"\nDB\t\" This is a test for a Lattice Gas based encryption     \"\nDB\t\" algorithm. The data is encoded as particles of a      \"\nDB\t\" digital gas, whose time evolution is then simulated   \"\nDB\t\" with a cellular-automaton type algorithm. Decryption  \"\nDB\t\" can be achieved by running the simulation in reverse. \"\nDB\t\" A thermodynamic argument ensures that even if a single\"\nDB\t\" bit is flipped, no decryption of the data is possible \"\nDB\t\"                                                       \"\nDB\t\" After the gas is let to evolve for 256 timesteps,     \"\nDB\t\" one can either run the reverse evolution by pressing  \"\nDB\t\" space, or flip a bit and then run by pressing '0'     \"\nDB\t\"                                                       \"\nDB\t\" For a cryptographic application, the key would consist\"\nDB\t\" of the number of time steps and the time and location \"\nDB\t\" of specific bit inversions.                           \"\nDB\t\"                                                       \"\nDB\t\"                                                       \"\nDB\t\"                                                       \"\nDB\t\"                                                       \"\nDB\t\"                                                       \"\n\n;\n; Fill the gas with a piece of code\n;\nInitGas:\n\tMOV\tDI,CS:SrcPtr\n\tMOV\tSI,OFFSET Data\n\n\tMOV\tCX,LINENO\nIG0:\n\tPUSH\tDI\n\tPUSH\tCX\n\tMOV\tCX,MAXBYTE\nIG1:\n\tMOV\tAL,CS:[SI]\n\tMOV\tCS:[DI],AL\n\tINC\tSI\n\tINC\tDI\n\tLOOP\tIG1\n\tPOP\tCX\n\tPOP\tDI\n\tADD\tDI,MAXBYTE\n\tLOOP\tIG0\n\tMOV\tSI,CS:SrcPtr\n\tMOV\tDI,OFFSET InitGas\n\tMOV\tCX,MAXBYTE*3\n\tMOV\tAL,0\nLG2:\n\tMOV\tBYTE PTR CS:[SI],AL\n\tNOT\tAL\n\tINC\tSI\n\tLOOP\tLG2\n\tRET\n\n;----------------------------------------------------------------------\n;\n; Display gas molecules bouncing around\n;\nShowGas:\n\tPUSH\tES\n\tPUSH\tSI\n\tPUSH\tDI\n\tPUSH\tCX\n\tPUSH\tBX\n\n\tMOV\tAX,0B800h\n\tMOV\tES,AX\n\tMOV\tSI,CS:SrcPtr\n\tMOV\tDI,160*2+10*2\n\tMOV\tCX,LINENO-3\n\tADD\tSI,MAXBYTE*3\nSG1:\n\tPUSH\tCX\n\tPUSH\tDI\n\n\tMOV\tCX,MAXBYTE\nSG2:\n\tMOV\tAL,CS:[SI]\n\tMOV\tBYTE PTR ES:[DI],AL\n\tINC\tSI\n\tADD\tDI,2\n\tDEC\tCX\n\tJNZ\tSG2\n\n\tPOP\tDI\n\tPOP\tCX\n\tADD\tDI,160\n\tLOOP\tSG1\n\t\n\tPOP\tBX\n\tPOP\tCX\n\tPOP\tDI\n\tPOP\tSI\n\tPOP\tES\n\tRET\n\n;----------------------------------------------------------------------\n;\n; CS:SI \t->\tSourse of Data\n; CS:DI\t\t->\tDestination of Data\n;\nScanOneMiddleLine:\n;\n; first byte is a special case because of warparound\n;\n\tMOV\tBL,0\t\t\t; AL is the \"assembled\" byte.\n\tMOV\tBH,CS:[SI-MAXBYTE]\t; NORTH is one line \"up\" (lower)\n\tAND\tBH,10001000B\t\t; and at bits 7 and 3\n\tOR\tBL,BH\t\t\t; OR them into the assembled byte\n\tMOV\tBH,CS:[SI+MAXBYTE]\t; SOUTH is one line \"down\" (higher)\n\tAND\tBH,01000100B\t\t; and at bits 6 and 2\n\tOR\tBL,BH\t\t\t; place the stuff into AL\n\tMOV\tBH,CS:[SI+(MAXBYTE-1)]\t; WEST is one byte \"left\" (lower)\n\tAND\tBH,00100010B\t\t; and at bits 5 and 1\n\tOR\tBL,BH\n\tMOV\tBH,CS:[SI+1]\t\t; EAST is one byte \"right\" (higher)\n\tAND\tBH,00010001B\t\t; and at bits 4 and 0\n\tOR\tBL,BH\n\tMOV\tBH,0\n\tMOV\tAL,BYTE PTR CS:[BX + OFFSET HPPRule]\n\tMOV\tCS:[DI],AL\n\tINC\tSI\n\tINC\tDI\n;\n; middle bytes can be handled in a loop \n;\n\tMOV\tCX,MAXBYTE-2\nSOL1:\n\tMOV\tBL,0\t\t\t; AL is the \"assembled\" byte.\n\tMOV\tBH,CS:[SI-MAXBYTE]\t; NORTH is one line \"up\" (lower)\n\tAND\tBH,10001000B\t\t; and at bits 7 and 3\n\tOR\tBL,BH\t\t\t; OR them into the assembled byte\n\tMOV\tBH,CS:[SI+MAXBYTE]\t; SOUTH is one line \"down\" (higher)\n\tAND\tBH,01000100B\t\t; and at bits 6 and 2\n\tOR\tBL,BH\t\t\t; place the stuff into AL\n\tMOV\tBH,CS:[SI-1]\t\t; WEST is one byte \"left\" (lower)\n\tAND\tBH,00100010B\t\t; and at bits 5 and 1\n\tOR\tBL,BH\n\tMOV\tBH,CS:[SI+1]\t\t; EAST is one byte \"right\" (higher)\n\tAND\tBH,00010001B\t\t; and at bits 4 and 0\n\tOR\tBL,BH\n\tMOV\tBH,0\n\tMOV\tAL,BYTE PTR CS:[BX + OFFSET HPPRule]\n\tMOV\tCS:[DI],AL\n\tINC\tSI\n\tINC\tDI\n\tLOOP\tSOL1\n;\n; last byte is also special\n;\n\tMOV\tBL,0\t\t\t; AL is the \"assembled\" byte.\n\tMOV\tBH,CS:[SI-MAXBYTE]\t; NORTH is one line \"up\" (lower)\n\tAND\tBH,10001000B\t\t; and at bits 7 and 3\n\tOR\tBL,BH\t\t\t; OR them into the assembled byte\n\tMOV\tBH,CS:[SI+MAXBYTE]\t; SOUTH is one line \"down\" (higher)\n\tAND\tBH,01000100B\t\t; and at bits 6 and 2\n\tOR\tBL,BH\t\t\t; place the stuff into AL\n\tMOV\tBH,CS:[SI-1]\t\t; WEST is one byte \"left\" (lower)\n\tAND\tBH,00100010B\t\t; and at bits 5 and 1\n\tOR\tBL,BH\n\tMOV\tBH,CS:[SI-(MAXBYTE-1)]\t; EAST is one byte \"right\" (higher)\n\tAND\tBH,00010001B\t\t; and at bits 4 and 0\n\tOR\tBL,BH\n\tMOV\tBH,0\n\tMOV\tAL,BYTE PTR CS:[BX + OFFSET HPPRule]\n\tMOV\tCS:[DI],AL\n\tINC\tSI\n\tINC\tDI\n\tRET\n\n\n;----------------------------------------------------------------------\n;\n; CS:SI \t->\tSourse of Data\n; CS:DI\t\t->\tDestination of Data\n;\nScanFirstLine:\n;\n; first byte is a special case because of warparound\n;\n\tMOV\tBL,0\t\t\t\t\n\tMOV\tBH,CS:[SI+MAXBYTE*(LINENO-1)]\t\n\tAND\tBH,10001000B\t\t; and at bits 7 and 3\n\tOR\tBL,BH\t\t\t; OR them into the assembled byte\n\tMOV\tBH,CS:[SI+MAXBYTE]\n\tAND\tBH,01000100B\t\t; and at bits 6 and 2\n\tOR\tBL,BH\t\t\t; place the stuff into AL\n\tMOV\tBH,CS:[SI+MAXBYTE-1]\t; WEST is one byte \"left\" (lower)\n\tAND\tBH,00100010B\t\t; and at bits 5 and 1\n\tOR\tBL,BH\n\tMOV\tBH,CS:[SI+1]\t\t; EAST is one byte \"right\" (higher)\n\tAND\tBH,00010001B\t\t; and at bits 4 and 0\n\tOR\tBL,BH\n\tMOV\tBH,0\n\tMOV\tAL,BYTE PTR CS:[BX + OFFSET HPPRule]\n\tMOV\tCS:[DI],AL\n\tINC\tSI\n\tINC\tDI\n;\n; middle bytes can be handled in a loop \n;\n\tMOV\tCX,MAXBYTE-2\nSFL1:\n\tMOV\tBL,0\t\t\t; AL is the \"assembled\" byte.\n\tMOV\tBH,CS:[SI+MAXBYTE*(LINENO-1)]\n\tAND\tBH,10001000B\t\t; and at bits 7 and 3\n\tOR\tBL,BH\t\t\t; OR them into the assembled byte\n\tMOV\tBH,CS:[SI+MAXBYTE]\n\tAND\tBH,01000100B\t\t; and at bits 6 and 2\n\tOR\tBL,BH\t\t\t; place the stuff into AL\n\tMOV\tBH,CS:[SI-1]\t\t; WEST is one byte \"left\" (lower)\n\tAND\tBH,00100010B\t\t; and at bits 5 and 1\n\tOR\tBL,BH\n\tMOV\tBH,CS:[SI+1]\t\t; EAST is one byte \"right\" (higher)\n\tAND\tBH,00010001B\t\t; and at bits 4 and 0\n\tOR\tBL,BH\n\tMOV\tBH,0\n\tMOV\tAL,BYTE PTR CS:[BX + OFFSET HPPRule]\n\tMOV\tCS:[DI],AL\n\tINC\tSI\n\tINC\tDI\n\tLOOP\tSFL1\n;\n; last byte is also special\n;\n\tMOV\tBL,0\t\t\t; AL is the \"assembled\" byte.\n\tMOV\tBH,CS:[SI+MAXBYTE*(LINENO-1)]\n\tAND\tBH,10001000B\t\t; and at bits 7 and 3\n\tOR\tBL,BH\t\t\t; OR them into the assembled byte\n\tMOV\tBH,CS:[SI+MAXBYTE]\n\tAND\tBH,01000100B\t\t; and at bits 6 and 2\n\tOR\tBL,BH\t\t\t; place the stuff into AL\n\tMOV\tBH,CS:[SI-1]\t\t; WEST is one byte \"left\" (lower)\n\tAND\tBH,00100010B\t\t; and at bits 5 and 1\n\tOR\tBL,BH\n\tMOV\tBH,CS:[SI-(MAXBYTE-1)]\t; EAST is one byte \"right\" (higher)\n\tAND\tBH,00010001B\t\t; and at bits 4 and 0\n\tOR\tBL,BH\n\tMOV\tBH,0\n\tMOV\tAL,BYTE PTR CS:[BX + OFFSET HPPRule]\n\tMOV\tCS:[DI],AL\n\tRET\n\n\n;----------------------------------------------------------------------\n;\n; CS:SI \t->\tSourse of Data\n; CS:DI\t\t->\tDestination of Data\n;\nScanLastLine:\n;\n; first byte is a special case because of warparound\n;\n\tMOV\tBL,0\t\t\t; AL is the \"assembled\" byte.\n\tMOV\tBH,CS:[SI-MAXBYTE]\n\tAND\tBH,10001000B\t\t; and at bits 7 and 3\n\tOR\tBL,BH\t\t\t; OR them into the assembled byte\n\tMOV\tBH,CS:[SI-MAXBYTE*(LINENO-1)]\n\tAND\tBH,01000100B\t\t; and at bits 6 and 2\n\tOR\tBL,BH\t\t\t; place the stuff into AL\n\tMOV\tBH,CS:[SI+(MAXBYTE-1)]\t; WEST is one byte \"left\" (lower)\n\tAND\tBH,00100010B\t\t; and at bits 5 and 1\n\tOR\tBL,BH\n\tMOV\tBH,CS:[SI+1]\t\t; EAST is one byte \"right\" (higher)\n\tAND\tBH,00010001B\t\t; and at bits 4 and 0\n\tOR\tBL,BH\n\tMOV\tBH,0\n\tMOV\tAL,BYTE PTR CS:[BX + OFFSET HPPRule]\n\tMOV\tCS:[DI],AL\n\tINC\tSI\n\tINC\tDI\n;\n; middle bytes can be handled in a loop \n;\n\tMOV\tCX,MAXBYTE-2\nSLL1:\n\tMOV\tBL,0\t\t\t; AL is the \"assembled\" byte.\n\tMOV\tBH,CS:[SI-MAXBYTE]\n\tAND\tBH,10001000B\t\t; and at bits 7 and 3\n\tOR\tBL,BH\t\t\t; OR them into the assembled byte\n\tMOV\tBH,CS:[SI-MAXBYTE*(LINENO-1)]\n\tAND\tBH,01000100B\t\t; and at bits 6 and 2\n\tOR\tBL,BH\t\t\t; place the stuff into AL\n\tMOV\tBH,CS:[SI-1]\t\t; WEST is one byte \"left\" (lower)\n\tAND\tBH,00100010B\t\t; and at bits 5 and 1\n\tOR\tBL,BH\n\tMOV\tBH,CS:[SI+1]\t\t; EAST is one byte \"right\" (higher)\n\tAND\tBH,00010001B\t\t; and at bits 4 and 0\n\tOR\tBL,BH\n\tMOV\tBH,0\n\tMOV\tAL,BYTE PTR CS:[BX + OFFSET HPPRule]\n\tMOV\tCS:[DI],AL\n\tINC\tSI\n\tINC\tDI\n\tLOOP\tSLL1\n;\n; last byte is also special\n;\n\tMOV\tBL,0\t\t\t; AL is the \"assembled\" byte.\n\tMOV\tBH,CS:[SI-MAXBYTE]\n\tAND\tBH,10001000B\t\t; and at bits 7 and 3\n\tOR\tBL,BH\t\t\t; OR them into the assembled byte\n\tMOV\tBH,CS:[SI-MAXBYTE*(LINENO-1)]\n\tAND\tBH,01000100B\t\t; and at bits 6 and 2\n\tOR\tBL,BH\t\t\t; place the stuff into AL\n\tMOV\tBH,CS:[SI-1]\t\t; WEST is one byte \"left\" (lower)\n\tAND\tBH,00100010B\t\t; and at bits 5 and 1\n\tOR\tBL,BH\n\tMOV\tBH,CS:[SI-(MAXBYTE-1)]\t; EAST is one byte \"right\" (higher)\n\tAND\tBH,00010001B\t\t; and at bits 4 and 0\n\tOR\tBL,BH\n\tMOV\tBH,0\n\tMOV\tAL,BYTE PTR CS:[BX + OFFSET HPPRule]\n\tMOV\tCS:[DI],AL\n\tINC\tSI\n\tINC\tDI\n\tRET\n\n\n\n;----------------------------------------------------------------------\n;\n; Invert all velocities in the gas\n;\nInvertAll:\n\tPUSH\tBX\n\tPUSH\tCX\n\tPUSH\tSI\n\tMOV\tSI,CS:SrcPtr\n\tMOV\tBX,0\n\tMOV\tCX,LINENO\nIA1:\n\tPUSH\tCX\n\tMOV\tCX,MAXBYTE\nIA2:\n\tMOV\tBL,CS:[SI]\n\tMOV\tAL,BYTE PTR CS:[BX + (OFFSET WallRule)]\n\tMOV\tCS:[SI],AL\n\tINC\tSI\n\tLOOP\tIA2\n\tPOP\tCX\n\tLOOP\tIA1\n\tPOP\tSI\n\tPOP\tCX\n\tPOP\tBX\n\tRET\n\n;----------------------------------------------------------------------\n; \n;\nIterateOnce:\n\tMOV\tSI,CS:SrcPtr\n\tMOV\tDI,CS:DesPtr\n\tMOV\tCS:SrcPtr,DI\n\tMOV\tCS:DesPtr,SI\n\n\tPUSH\tSI\n\tPUSH\tDI\n\tCALL\tScanFirstLine\n\tPOP\tDI\n\tPOP\tSI\n\tADD\tSI,MAXBYTE\n\tADD\tDI,MAXBYTE\t\n\tMOV\tCX,LINENO-2\t\t; dont scan first and last\nL1:\n\tPUSH\tSI\n\tPUSH\tDI\n\tPUSH\tCX\n\tCALL\tScanOneMiddleLine\n\tPOP\tCX\n\tPOP\tDI\n\tPOP\tSI\n\tADD\tSI,MAXBYTE\n\tADD\tDI,MAXBYTE\n\tLOOP\tL1\n\n\tPUSH\tSI\n\tPUSH\tDI\n\tCALL\tScanLastLine\n\tPOP\tSI\n\tPOP\tDI\nL3:\n\tRET\n\n;----------------------------------------------------------------------\n;\n; Iterate HPP rule CX times\n;\nIterate:\n\tPUSH\tCX\n\tCALL\tIterateOnce\n\tPOP\tCX\n\tCALL\tShowGas\n\tLOOP\tIterate\n\tRET\n\n;----------------------------------------------------------------------\n;\n; Iterate HPP rule CX times\n;\nIterateUntil:\t\n\tMOV\tSI,0\n\tMOV\tCX,OFFSET IU4 - OFFSET IU3\nIU00:\n\tMOV\tAL,BYTE PTR CS:[SI + OFFSET IU3]\n\tXOR\tBYTE PTR CS:[SI + OFFSET IU4],AL\n\tINC\tSI\n\tLOOP\tIU00\nIU0:\n\tCALL\tIterateOnce\n\tCALL\tShowGas\n\tMOV\tSI,CS:SrcPtr\n\tMOV\tCX,MAXBYTE*3\n\tMOV\tBX,0\n\tMOV\tAH,0\n\tMOV\tAL,255\nIU1:\n\tMOV\tBL,BYTE PTR CS:[SI]\n\tMOV\tDL,BYTE PTR CS:[BX+WallRule]\n\tNOT\tAH\n\tXOR\tDL,AH\n\tAND\tAL,DL\n\tINC\tSI\n\tLOOP\tIU1\n\tMOV\tSI,0\n\tMOV\tCX,OFFSET IU4 - OFFSET IU3\nIU2:\n\tMOV\tAH,BYTE PTR CS:[SI+OFFSET IU4]\n\tAND\tAH,AL\n\tXOR\tBYTE PTR CS:[SI+OFFSET IU3],AH\n\tINC\tSI\n\tLOOP\tIU2\n\tJMP\tIU3\nIU3:\n\tMOV\tAX,OFFSET IU0\n\tPUSH\tAX\n\tRET\n\tDB\t256 DUP(90h)\nIU4:\n\tPUSH\tAX\n\tPUSH\tBX\n\tPUSH\tCX\n\tPUSH\tDX\n\tPUSH\tDS\n\n\tMOV\tAH,9\n\tMOV\tDX,CS:MsgPtr\n\tINT\t21H\n\n\tPOP\tDS\n\tPOP\tDX\n\tPOP\tCX\n\tPOP\tBX\n\tPOP\tAX\n\tRET\n\n\tDB\t512 DUP(90h)\n\nMsgPtr\tDW\tOFFSET Msg\nMsg\tDB\t\"This message is printed out by\",10,13\n\tDB\t\"code decrypted using data from the lattice\",10,13\n\tDB\t\"which was applied to the decoding routine\",10,13\n\tDB\t\"after every time step\",10,13\n\tDB\t\"The decoding function left the code unchanged\",10,13\n\tDB\t\"except after the gas evolution had completelly\",10,13\n\tDB\t\"reversed the thermalization\",10,13,\"$\"\n\n\nTIMES\tEQU\t16\t\t; 256 repetitions are enough to\n\t\t\t\t; \"equilibrate\" the gas\n\nBegin:\n\tMOV\tAX,0600h\n\tMOV\tBH,7\n\tMOV\tDH,25\n\tMOV\tDL,80\n\tMOV\tCX,0\n\tINT\t10h\n\n\tMOV\tAH,2\n\tMOV\tBH,0\n\tMOV\tDH,24\n\tMOV\tDL,0\n\tINT\t10h\n\n\tCALL\tInitGas\n\tCALL\tShowGas\n\tMOV\tAH,0\n\tINT\t16h\n\tPUSH\tCX\n\tMOV\tCX,TIMES\n\tCALL\tIterate\n\tCALL\tInvertAll\n\tCALL\tShowGas\n\tMOV\tAH,0\n\tINT\t16h\n\tCMP\tAL,\"0\"\n\tJNE\tBegin0\n\tMOV\tSI,CS:SrcPtr\n\tXOR\tBYTE PTR CS:[SI],10000001B\nBegin0:\n\tMOV\tCX,TIMES\n\tCALL\tIterateUntil\n\tCALL\tInvertAll\n\tCALL\tShowGas\n\tMOV\tAX,4C00h\n\tINT\t21h\n\t\n\nCODE\tENDS\n\tEND\tStart\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 737, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: Atlanta Hockey Hell!!\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nLines: 24\n\nIn article <0foVj7i00WB4MIUmht@andrew.cmu.edu> Mamatha Devineni Ratnam <mr47+@andrew.cmu.edu> writes:\n>\n>Well, it's not that bad. But I am still pretty pissed of at the\n>local ABC coverage. They cut off the first half hour of coverage by playing\n\n[stuff deleted]\n\nOk, here's the solution to your problem.  Move to Canada.  Yesterday I was able\nto watch FOUR games...the NJ-PITT at 1:00 on ABC, LA-CAL at 3:00 (CBC), \nBUFF-BOS at 7:00 (TSN and FOX), and MON-QUE at 7:30 (CBC).  I think that if\neach series goes its max I could be watching hockey playoffs for 40-some odd\nconsecutive nights (I haven't counted so that's a pure guess).\n\nI have two tv's in my house, and I set them up side-by-side to watch MON-QUE\nand keep an eye on BOS-BUFF at the same time.  I did the same for the two\nafternoon games.\n\nBtw, those ABC commentaters were great!  I was quite impressed; they seemed\nto know that their audience wasn't likely to be well-schooled in hockey lore\nand they did an excellent job.  They were quite impartial also, IMO.\n\n\n\ndchhabra@stpl.ists.ca (not suffering from a shortage of hockey here)\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 738, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: Re: Mac Plus is constantly rebooting!\nFrom: stubbs@hawk.cs.ukans.edu (Jerry Stubbs)\nOrganization: University of Kansas Computer Science Dept\nLines: 14\n\n>On a side note, has anyone ever had a Mac Plus \"smoke out\" on them?  We  \n>have had four machines that all of a sudden start emitting a thick grayish  \n>white smoke.  In each case it was a capacitor that had gone bad.  Has  \n>anyone else encountered this?\n\n>Keith Cooley\n>EE Macintosh Lab Administrator\n>Louisiana Tech University\n>tkc@engr.LaTech.EDU\n\n\nWe've had it happen a time or two.  Beginning students think it is pretty\nentertaining when it happens during a lab lecture or demonstration.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 739, "properties": {"category": "sci.space", "text": "From: MAILRP%ESA.BITNET@vm.gmd.de\nSubject: message from Space Digest\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 58\n\n\n\n\n\nJoint Press release ESA/UN No 18-93\nParis, 19 April 1993\n\nUN/ESA joint training course on satellite applications\nto be held in Italy, 19-30 April\n\nThe United Nations and the European Space Agency (ESA)\nare jointly organising a training course on the applications of\nsatellite data gathered by the European Remote Sensing\nSatellite (ERS-1), to be held in Frascati, Italy, from 19 to 30\nApril. The training course will discuss the applications of\nsatellite data concerning natural resources, renewable energy\nand the environment.\n\nThe training course, organised for the benefit of francophone\nAfrican experts, will be hosted by ESRIN, the European Space\nAgency's establishment in Frascati, which is responsible for\ncoordination with the users of data from ESA's remote sensing\nsatellite. Twenty-four experts in the field of remote sensing,\nselected from 19 francophone countries from northern, western\nand central Africa, and three regional African centres, will\nattend the two-week session. The course will focus on remote\nsensing techniques and data applications, particularly ERS-1\ndata.\n\nThe ERS-1 satellite, developed by ESA and launched in 1991\nwith the European Ariane launcher, carries an advanced radar\ninstrument and is the first in a series of radar remote sensing\nmissions that will ensure availability of data beyond the year\n2000. The aim of the training course is to increase the\npotential of experts using the practical applications of radar\nremote sensing systems to natural resources, renewable energy\nand the environment, with particular emphasis on applications\nto geology and mineral prospecting, oceanography and near-\ncoastal areas, agriculture, forestry and meteorology.\n\nThe education and practical training programme was\ndeveloped jointly by the United Nations and ESA. The\nfacilities and the technical support, as well as lecturers and\ninformation documents for the training course, will be\nprovided by the Agency. Lecturers at the training course will\ninclude high-level experts from other European and African\norganisations active in remote sensing applications. Funds for\nthe training course are being provided by the United Nations\n\n\n\nTrust Fund for New and Renewable Sources of Energy; the\nprimary contributor to that Fund is the Government of Italy.\n\nA similar training course is being planned for Latin American\nexperts.\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.036+0000", "event": "documents", "entityId": 740, "properties": {"category": "talk.politics.misc", "text": "From: rwd4f@poe.acc.Virginia.EDU (Rob Dobson)\nSubject: Re: Motor Voter\nOrganization: University of Virginia\nLines: 12\n\n\n>kaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n>> When I entered 1st grade, Eisenhower was President and John F. Kennedy\n>> was just a relatively obscure Senator from New England.  So how old do\n>> you think I am now?\n\nAnd we all hope, Teddy, that you will graduate from the first grade\nwhile Clinton is President. Keep trying.\n\n\n--\nDisclaimer: :remialcsiD\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 741, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: Fundamentalism - again.\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 17\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <khan0095.734814178@nova>, khan0095@nova.gmi.edu (Mohammad Razi Khan) writes:\n|> One of my biggest complaints about using the word \"fundamentalist\"\n|> is that (at least in the U.S.A.) people speak of muslime\n|> fundamentalists                                  ^^^^^^^muslim\n|> but nobody defines what a jewish or christan fundamentalist is.\n|> I wonder what an equal definition would be..\n|> any takers..\n\nWell, I would go as far as saying that Naturei Karta are definitely\nJewish fundamentalists.  Other ultra-orthodox Jewish groups might very\nwell be, though I am hesitant of making such a broad generalization.\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 742, "properties": {"category": "comp.windows.x", "text": "From: gowen@jade.tufts.edu (G. Lee Owen)\nSubject: Re: WANTED: Info on Dedicated X Server Kernel for Sun3/100 Series\nIn-Reply-To: mbell@techbook.techbook.com's message of 20 Apr 1993 22:57:39 -0700\nLines: 30\nOrganization: Tufts University - Medford, MA\nDistribution: na\n\n\n> If anyone has any information about the existence or location of a\n> dedicated X server kernel for the Sun3, please send email.  I am\n> trying to put some neglected Sun3s to good use but they don't have\n> enough memory for SunOS 4.1.1.  Thanks in advance for any help.\n\n\tThere is a free program called 'xkernel' which does just that.\nIt is by Seth Robertson (seth@ctr.columbia.edu).  It takes a sun 3 and\nboots a limited kernel which allows you to run X.  We converted 4\nmachines over this semester and the speedup is enormously appreciable\n-- I find them faster than an NCD 15inch black&white XTerminal that we\nare playing with, and a bigger screen to boot!  As a matter of fact,\nthe department just bought some old sun3s at an auction to convert!\n\n} Xkernel is available for anonymous ftp from ftp.ctr.columbia.edu\n} [128.59.64.40] in /Xkernel/Xkernel.shar (/Xkernel is a symlink to the\n} latest version of Xkernel)\n\n\tNote that the compiled version which is available is for the\nsun 3/50, but compiling to work for a sun 3/1xx should be quite easy.\n\n\tI am not connected with xkernel except as a satisfied\ninstaller and user 8).  I may be able to answer questions; feel free\nto email me.\n\n  Greg Owen  { gowen@forte.cs.tufts.edu, gowen@jade.tufts.edu }\nSystems Programmer and TA, Tufts University Computer Science Dept.\n  230-   All transfers are disclaimed by my host name and boss's address.\n  230-   If you don't like this policy, disconnect now!\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 743, "properties": {"category": "rec.sport.baseball", "text": "From: rdetweil@boi.hp.com (Richard Detweiler)\nSubject: Cards Mailing List?\nDistribution: usa\nOrganization: Hewlett Packard\nLines: 9\n\nCount me interested in a Cardinal's mailing list.  If anyone\nfinds one or starts one, please let me know.\n\nThanks,\n\nDick Detweiler\n\nrdetweil@hpdmd48.boi.hp.com\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 744, "properties": {"category": "rec.autos", "text": "From: hhm@cbnewsd.cb.att.com (herschel.h.mayo)\nSubject: Re: BRAINDEAD Drivers Who Don't Look Ahead--\nOrganization: Chicago Home for the Morally Challenged\nDistribution: usa\nKeywords: bad drivers\nLines: 27\n\n\n> I agree that if traffic is all blocked up and you want to pass, you might\n> not feel like moving over for someone behind you because you don't want to\n> give them that one car-length, when they should just wait like you are.\n> BUT, if you're one of those people that just sit's behind the person, and\n> doesn't flash them with the high beams, or pull left and flash them, or\n> ride their bumper, or otherwise tell them that you *do* in fact want to \n> go by, and you're not just drafting them, then get the hell out of the \n> way of someone who will!  I especially hate it when you flash someone at\n> the back of a line and they don't 'pass it on'.  \n> And there's also the issue of some cars being more intimidating to get \n> people out of the way than others...  (For instance '85-'86 GTs look \n> pretty mean in a rearview mirror at night with the foglights on...  :^)\n> There have been plenty of times when I've broken up a pack that a \n> second-in-line hyundai has been behind for miles...  You just need to\n> know how to get their attention...\n\n\nI'd like to see you use this method on a couple of semi drivers. If they see you,\nthey usually acknowledge by sticking their hand out the window with their middle\nfinger extended. Because it is also obvious to them that there is no clear lane\nahead.  \n\n\n\n                                                      H.H.M.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 745, "properties": {"category": "comp.graphics", "text": "From: haston@utkvx.utk.edu (Haston, Donald Wayne)\nSubject: Hijaak\nNews-Software: VAX/VMS VNEWS 1.41    \nKeywords: Hijaak\nOrganization: University of Tennessee Computing Center\nLines: 14\n\nI have heard some impressive things about Hijakk (for Windows).\nCurrently, I use a shareware program called Graphics Workshop.\nWhat kinds of things will Hijaak do that these shareware programs\nwill not do?\n\nWhat has been your experience with Hijaak? Are there other programs\nthat are better? Please email me, if you can help:\n\nWayne Haston\nHASTON@UTKVX.UTK.EDU\n\nThanks!\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 746, "properties": {"category": "sci.crypt", "text": "From: C445585@mizzou1.missouri.edu (John Kelsey)\nSubject: Competing standard\nNntp-Posting-Host: mizzou1.missouri.edu\nOrganization: University of Missouri\nLines: 22\n\n   Perhaps one way of getting away from this cripple chip that the U.S.\ngovernment seems to be pushing would be to come up with a good alternative.\nFor example, how about a scheme using RSA, and some hybrid of DES-CFB and\nanother strong stream cipher (Maybe IDEA-CFB)?  This could be substantially\nthe same as the cripple chip, except that instead of key-registration, the\npolice could demand that you give up your secret key to them (with a court-\nissued warrant).  Then, they could read the last few months of wiretapped\nmessages you've sent, and assuming you've committed no crimes, you could\ngenerate a new key pair and go about your business.  I find that I'd be\nwilling to pay RSA for the right to use such a system, especially given the\nalternative.  If you were unwilling to give up your secret key, then you'd\nprobably stay in jail (has anyone got a real legal precedent for this?).\n   This would allow court-issued warrants to be used to gather information\non suspected criminals, but it couldn't be done in secrecy, and there\nwould be enormously less likelihood of corruption or theft of escrowed keys.\n(Maybe someone from the law-enforcement or intelligent community will correct\nme, but this doesn't *seem* like such a big loss in terms of law-enforcement\ncapabilities.)\n \n   Any comments?\n \n   --John Kelsey\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 747, "properties": {"category": "comp.graphics", "text": "From: bockamp@Informatik.TU-Muenchen.DE (Florian Bockamp)\nSubject: WANTED: Matrox PG-1281 CV driver\nOriginator: bockamp@hphalle2g.informatik.tu-muenchen.de\nOrganization: Technische Universitaet Muenchen, Germany\nLines: 24\n\n\n\n\n\nHi!\n\nI need a Windows 3.1 driver for the Matrox PG-1281 CV\nSVGA card. \nAt the moment Windows runs only in the 640x480 mode.\nIf you have a driver for this card, please send it \nwith the OEMSETUP.INF to \n\nbockamp@Informatik.TU-Muenchen.DE\n\nThanks!\n\n-- \n+-----------------------------------------------------------------+\n| Florian Bockamp                                  '''            |\n| bockamp@informatik.tu-muenchen.de               (o o)           |\n+---------------------------------------------oOO--( )--OOo-------+\n|                                                   -             |\n|         \"It's not a bug, it's an undocumented feature!\"         |\n+-----------------------------------------------------------------+\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 748, "properties": {"category": "comp.graphics", "text": "From: leyfre@McRCIM.McGill.EDU (Frederic Leymarie)\nSubject: Re: Developable Surface\nOrganization: McGill Research Center for Intelligent Machines, Montreal, Canada\nLines: 38\n\n\nIn article <C5x9xs.KHE@hkuxb.hku.hk>, h8902939@hkuxa.hku.hk (Abel) writes:\n|> Hi netters,\n\n|> \tI am currently doing some investigations on \"Developable Surface\".\n|> Can anyone familiar with this topic give me some information or sources\n|> which can allow me to find some infomation of developable surface?\n|> \tThanks for your help!\n\n|> Abel\n|> h8902939@hkuxa.hku.hk\n\nA developable surface is s.t. you can lay it (or roll it) flat on the\nplane (it may require you to give it a \"cut\" though...)\n\nE.g., a cylinder, a cone, a plane (of course!) or any surface or patch\nhaving vanishing Gaussian (intrinsic) curvature (i.e., with singular\nHessian, the matrix of 2nd derivatives for an adequate coordinate patch)\nare \"developable\". In more technical words, a developable surface is\n\"locally isometric to a plane\" at all points.\n\n\nThink also of the sphere (or the earth) which in a non-developable:\nwhatever way(s) you cut it, you will not be able to lay flat any pieces\nof it... (its intrinsic curvature is nowhere vanishing).\n\nFor more details on this look at any book on differential geometry\nwhich treats surfaces (2D manifolds); e.g., M. do Carmo's book:\n\n@Book{Carmo76Differential,\n  author =      {do Carmo, Manfredo P.},\n  title =       {Differential Geometry of Curves and Surfaces},\n  year =        1976,\n  publisher =   {Prentice-Hall},\n  note =        {503 pages.}}\n\nEnjoy!\n-- \nFrederic Leymarie -- leyfre@mcrcim.mcgill.edu\nMcGill University, Electrical Eng. Dept., McRCIM,    |\tTel.: (514) 398-8236\n3480 University St., Montreal, QC, CANADA, H3A 2A7.  |\tFAX:  (514) 398-7348\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 749, "properties": {"category": "sci.crypt", "text": "From: rjc@hal.gnu.ai.mit.edu (Ray)\nSubject: Re: Once tapped, your code is no good any more.\nDistribution: na\nOrganization: /etc/organization\nLines: 27\n\nIn article <C5pGFu.IA4@dscomsa.desy.de> hallam@zeus02.desy.de writes:\n>views would be to recruit them as spooks. They can be guaranteed to give\n>the government line when it counts. In US history it has been the \n>socialists such as myself who have been persecuted. \n\n  And in Russia, capitalists were persecuted for trading goods on the\nblack market. And in the US, capitalist minded types are imprisoned and killed\nfor things such as selling drugs, guns, pornography, and other victimless\nactivities.  It doesn't matter whether you are socialist or capitalist,\npower and control are central to government. Since citizens can't be trusted to\nrun their own affairs, the government must watch them.  (for their\nown good of course. I mean, with strong cryptography, citizens might <gasp!>\nstart to hide things from the IRS, sell drugs/guns/pornography, and\nthat cannot be allowed!)\n\n>trials. Ever seen Ed Meese pissed? I have, it was when he said that socialism\n>and communism were the same thing and brought the house down with laughter.\n>It took several minutes before we realised that he was serious.\n\n  Not very surprising to anyone who believes in \"hands off\" government. If\nyou believe that your private life (both social and financial) are none of\nanyone else's business, the difference between socialism and communism is\nlike the difference between murder by lethal injection or by\nchainsaw. The more centralized the economy is, the more potential\nabuses for accumulation of information on individuals. If you think\ncredit companies are bad, ...  Well, I'm sure a democratic socialist society\nwould vote for absolute privacy of all citizens -- NOT!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 750, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: s106275@ee.tut.fi (Anssi Saari)\nSubject: Re: Soundblaster IRQ and Port settings\nOrganization: Tampere University of Technology, Computing Centre\nLines: 16\nDistribution: inet\nNNTP-Posting-Host: ee.tut.fi\n\nIn <1993Apr16.105809.22218@walter.cray.com> huot@cray.com (Tom Huot) writes:\n\n>I would also like an explanation of this. If anyone can explain\n>why the SB Pro and LPT 1 can share an IRQ, please do so.\n\nI think it's simply because DOS doesn't use the IRQ for anything. OS/2 does,\nso with that you can't share the IRQ.\n\nAnssi\n\n\n-- \nAnssi Saari s106275@ee.tut.fi                \nTampere University of Technology \nFinland, Europe                  \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 751, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: John 3:16 paraphrased\nLines: 25\n\nAt the end of a recent (Mon 19 Apr 1993) post, Alastair Thomson\noffers the following \"paraphrase\" of John 3:16:\n\n   \"God loved the world so much, that he gave us His Son,\n   to die in our place, so that we may have eternal life.\"\n\nThe \"to die in our place\" bothers me, since it inserts into the\nverse a doctrine not found in the original. Moreover, I suspect that\nthe poster intends to affirm, not merely substitution, but forensic\n(or penal) substitution.  I maintain that the Scriptures in speaking\nof the Atonement teach a doctrine of Substitution, but not one of\nForensic Substitution.\n\nThose interested in pursuing the matter are invited to send for my\nessays on Genesis, either 4 thru 7 (on this question) or 1 through 7\n(with lead-in).  The n'th essay can be obtained by sending to\nLISTSERV@ASUACAD.BITNET or to LISTSERV@ASUVM.INRE.ASU.EDU the\nmessage\n   GET GEN0n RUFF\n\n Yours,\n James Kiefer\n\n \"Any theologian worth his salt can put anything he wants to say in\nthe form of a commentary on the Book of Genesis\" -- Walter Kaufman.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 752, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Re: ISLAM BORDERS vs Israeli borders\nOrganization: University of Illinois at Urbana\nLines: 15\n\ntclock@orion.oac.uci.edu (Tim Clock) writes:\n\n>I too strongly object to those that justify Israeli \"rule\" \n>of those who DO NOT WANT THAT. The \"occupied territories\" are not\n>Israel's to control, to keep, or to dominate.\n\nThey certainly are until the Arabs make peace.  Only the most leftist/Arabist\nlunatics call upon Israel to withdraw now.  Most moderates realize that an \nIsraeli withdrawl will be based on the Camp David/242/338/Madrid formulas\nwhich make full peace a prerequisite to territorial concessions.\n\n>Tim\n\nEd\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 753, "properties": {"category": "comp.windows.x", "text": "From: \"Derrick J. Brashear\" <db74+@andrew.cmu.edu>\nSubject: mouseless operation in ol{v}wm\nOrganization: Sophomore, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 11\nNNTP-Posting-Host: po5.andrew.cmu.edu\n\nMouseless operation is documented in the man pages for olwm and olvwm...\nHowever, I can't get it to work in either.\nI have this line in my .Xdefaults:\nOpenWindows.KeyboardCommands:           Full\n\nThat should do it...\nI haven't rebound the keys.\nAm I missing something?\n\n-D\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 754, "properties": {"category": "soc.religion.christian", "text": "From: PETCH@gvg47.gvg.tek.com (Chuck)\nSubject: Daily Verse\nLines: 6\n\nAnd the Lord's servant must not quarrel; instead, he must be kind to everyone,\nable to teach, not resentful. Those who oppose him he must gently instruct, in\nthe hope that God will grant them repentance leading them to a knowledge of the\ntruth, and that they will come to their senses and escape from the trap of the\ndevil, who has taken them captive to do his will. \nIITimothy 2:24-26\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 755, "properties": {"category": "misc.forsale", "text": "From: Jeff Wishnie <jwishnie@taligent.com>\nSubject: Genesis carts forsale\nX-Date: Wed, 21 Apr 93 12:53:47 GMT\nOrganization: Taligent, Inc.\nX-Useragent: Nuntius v1.1.1d3\nLines: 16\n\nPosting for a friend: please call Steve, 415 252-1618, if interested.\n\nSEGA Genesis games for sale.\n\nIn original boxes with original manuals.\n\nApproximately 1 month old.\n\n-- John Madden Football '93, Electronic Arts, $40.00 obo\n\n-- Ecco The Dolphin, SEGA,, $40.00 obo \n\nAgain, I'm posting for a friend. If interested, call:\n\nSteve\n415 252-1618\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 756, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenian way of slaughtering a twelve-year-old Muslim girl.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 41\n\nSource: \"World Alive, A Personal Story\" by Robert Dunn. Crown Publishers, \nInc., New York (1952). \n(Memoirs of an American officer who witnessed the Armenian genocide of 2.5 \n million Muslim people)\n\np. 360.\n\n\"At length all shooting petered out. I got on my horse and rode down toward\n Djul. It burned still but little flame showed now. The way was steep and \n tough, through dense scrub. Finally on flatter ground I came out suddenly,\n through alders, on smoldering houses. Across trampled wheat my brothers-in-\n arms were leading off animals, several calves and a lamb.\"\n\np. 361 (fourth paragraph).\n\n\"Corpses came next, the first a pretty child with straight black hair, \n large eyes. She looked about twelve years old. She lay in some stubble \n where meal lay scattered from the sack she'd been toting. The bayonet \n had gone through her back, I judged, for blood around was scant. Between \n the breasts one clot, too small for a bullet wound, crusted her homespun \n dress.\n\n The next was a boy of ten or less, in rawhide jacket and knee-pants. He \n lay face down in the path by several huts. One arm reached out to the \n pewter bowl he'd carried, now upset upon its dough. Steel had jabbed \n just below his neck, into the spine. \n\n There were grownups, too, I saw as I led the sorrel around. Djul was \n empty of the living till I looked up to see beside me Dro's German-speaking \n colonel. He said all Tartars who had not escaped were dead.\"\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 757, "properties": {"category": "rec.sport.hockey", "text": "From: e8l6@jupiter.sun.csd.unb.ca (Rocket)\nSubject: NHL Final point standings\nOrganization: University of New Brunswick\nDistribution: rec.sport.hockey\nLines: 694\n\n\n    Individual leaders by total points (Final standings)\n    NOTE: Games played and points per games not accurate !!\n\n    Player       Team   GP  G   A  Pts ppg  Prj PIM +/-\n\n    M.Lemieux    PIT    59  69  91 160 2.71 160  38  53\n    LaFontaine   BUF    82  53  95 148 1.80 148  63  13\n    Oates        BOS    83  45  97 142 1.71 142  32  12\n    Yzerman      DET    83  58  79 137 1.65 137  44  33\n    Turgeon      NYI    80  58  74 132 1.65 132  26  -2\n    Selanne      WIN    82  76  56 132 1.61 132  45   6\n    Mogilny      BUF    75  76  51 127 1.69 127  40   9\n    Gilmour      TOR    81  32  95 127 1.57 127  96  32\n    Robitaille   LA     82  63  62 125 1.52 127 100  16\n    Recchi       PHI    81  53  70 123 1.52 123  95  -2\n    Sundin       QUE    79  47  67 114 1.44 114  96  19\n    Stevens      PIT    71  55  57 112 1.58 112 169  16\n    Bure         VAN    82  60  50 110 1.34 110  67  37\n    Tocchet      PIT    79  48  61 109 1.38 109 240  28\n    Roenick      CHI    82  50  57 107 1.30 107  82  15\n    Janney       STL    82  24  82 106 1.29 106  12   1\n    Sakic        QUE    77  48  57 105 1.36 105  40  -4\n    Juneau       BOS    83  32  70 102 1.23 102  33  21\n    Hull         STL    78  54  47 101 1.29 101  41 -21\n    Andreychuk   TOR    81  55  45 100 1.23 100  56   4\n    Fleury       CAL    82  34  66 100 1.22 100  88  15\n    Francis      PIT    83  24  76 100 1.20 100  68   6\n    Housley      WIN    78  18  79  97 1.24  97  52 -13\n    Ciccarelli   DET    81  41  56  97 1.20  97  81  12\n    Damphousse   MON    82  39  58  97 1.18  97  96   5\n    Hawerchuk    BUF    79  16  80  96 1.22  96  48 -14\n    Shanahan     STL    69  51  43  94 1.36  94 168   9\n    Muller       MON    79  37  57  94 1.19  94  75   9\n    Jagr         PIT    80  34  60  94 1.18  94  69  31\n    Modano       MIN    80  33  60  93 1.16  93  81  -6\n    Messier      NYR    72  25  66  91 1.26  91  70  -3\n    Sanderson    HAR    79  46  43  89 1.13  89  28 -24\n    Reichel      CAL    78  40  48  88 1.13  88  54  23\n    Bellows      MON    80  40  48  88 1.10  88  42   4\n    Fedorov      DET    72  34  53  87 1.21  87  72  33\n    Thomas       NYI    76  37  50  87 1.14  87 109   0\n    Coffey       DET    79  12  75  87 1.10  87  77  16\n    Kurri        LA     81  27  60  87 1.07  88  38  20\n    Bradley      TB     78  42  44  86 1.10  86  90 -22\n    Brind'Amour  PHI    78  37  49  86 1.10  86  87  -9\n    Ronning      VAN    77  29  56  85 1.10  85  30  16\n    Bondra       WAS    80  37  48  85 1.06  85  70   3\n    Cassels      HAR    81  21  64  85 1.05  85  57 -15\n    Murphy       PIT    82  22  62  84 1.02  84  73  42\n    Bourque      BOS    78  19  63  82 1.05  82  40  38\n    Granato      LA     79  37  45  82 1.04  83 165   3\n    Verbeek      HAR    81  39  43  82 1.01  82 180 -11\n    Ridley       WAS    81  26  56  82 1.01  82  38   4\n    Duchesne     QUE    81  20  62  82 1.01  82  57  15\n    C.Lemieux    NJ     75  30  51  81 1.08  81 149   0\n    Suter        CAL    80  23  58  81 1.01  81 112  -1\n    Lebeau       MON    69  31  49  80 1.16  80  20  23\n    Roberts      CAL    57  38  41  79 1.39  79 172  31\n    Semak        NJ     80  37  42  79 0.99  79  70  22\n    Hatcher      WAS    80  34  45  79 0.99  79 110 -12\n    D.Hunter     WAS    81  20  59  79 0.98  79 194   2\n    Courtnall    MIN    82  36  43  79 0.96  79  49  -2\n    Brown        STL    69  25  53  78 1.13  78  56  -4\n    Ricci        QUE    76  27  51  78 1.03  78 121   9\n    Kisio        SJ     77  26  52  78 1.01  78  90 -15\n    Craven       VAN    76  25  52  77 1.01  77  30   0\n    G.Courtnall  VAN    82  31  46  77 0.94  77 167  23\n    Nolan        QUE    72  36  40  76 1.06  76 185  -6\n    King         NYI    74  38  38  76 1.03  76  45  -1\n    Amonte       NYR    80  33  43  76 0.95  76  47   0\n    Gagner       MIN    82  33  43  76 0.93  76 141 -15\n    Lindros      PHI    58  41  34  75 1.29  75 143  25\n    Hogue        NYI    67  33  42  75 1.12  75 106   6\n    Nieuwendyk   CAL    77  38  37  75 0.97  75  52   8\n    Pivonka      WAS    66  21  53  74 1.12  74  51  12\n    Borschevsky  TOR    76  34  40  74 0.97  74  26  32\n    Dahlen       MIN    81  35  39  74 0.91  74   6 -18\n    Richer       NJ     76  38  35  73 0.96  73  44   0\n    Emerson      STL    80  22  51  73 0.91  73  60  -1\n    Nedved       VAN    82  38  35  73 0.89  73  94  18\n    Chelios      CHI    82  15  58  73 0.89  73 282  13\n    Carson       LA     84  37  36  73 0.87  74  30   2\n    Zhamnov      WIN    66  25  47  72 1.09  72  58   5\n    Kvartalnov   BOS    72  30  42  72 1.00  72  14   9\n    Steen        WIN    78  22  50  72 0.92  72  75  -8\n    Linden       VAN    82  33  39  72 0.88  72  60  15\n    Mullen       PIT    71  33  37  70 0.99  70  12  21\n    Larmer       CHI    82  35  35  70 0.85  70  48  22\n    Donnelly     LA     82  29  40  69 0.84  70  45  18\n    Kovalenko    QUE    80  27  41  68 0.85  68  57  10\n    Gartner      NYR    81  45  23  68 0.84  68  55  -2\n    Khristich    WAS    61  31  36  67 1.10  67  26  26\n    Sheppard     DET    70  32  34  66 0.94  66  29   7\n    Garpenlov    SJ     78  22  44  66 0.85  66  56 -25\n    Iafrate      WAS    81  25  41  66 0.81  66 169  15\n    Gretzky      LA     43  16  49  65 1.51  67   6   6\n    Zalapski     HAR    80  14  51  65 0.81  65  86 -32\n    Graves       NYR    81  36  29  65 0.80  65 148  -4\n    Anderson     TOR    74  21  43  64 0.86  64 117  19\n    Zelepukin    NJ     76  23  41  64 0.84  64  66  16\n    MacIver      OTT    78  17  46  63 0.81  63  80 -42\n    Dineen       PHI    80  35  28  63 0.79  63 199  11\n    Chiasson     DET    78  12  50  62 0.79  62 151  15\n    Ysebaert     DET    79  34  28  62 0.78  62  42  19\n    Galley       PHI    80  13  49  62 0.78  62  98  14\n    McEachern    PIT    83  28  33  61 0.73  61  46  21\n    Nicholls     NJ     67  13  47  60 0.90  60  80 -13\n    Keane        MON    75  15  45  60 0.80  60  93  28\n    Flatley      NYI    77  13  47  60 0.78  60  61   3\n    S.Young      QUE    81  30  30  60 0.74  60  20   4\n    Shannon      WIN    82  20  40  60 0.73  60  91  -4\n    Fedyk        PHI    74  21  38  59 0.80  59  48  14\n    Blake        LA     76  16  43  59 0.78  60 152  18\n    Olausson     WIN    66  16  41  57 0.86  57  22  -5\n    Makarov      CAL    70  18  39  57 0.81  57  40   0\n    Smith        CHI    76  10  47  57 0.75  57 212  13\n    Elynuik      WAS    77  22  35  57 0.74  57  66   2\n    Stevens      NJ     79  12  45  57 0.72  57 116  16\n    Adams        VAN    51  25  31  56 1.10  56  14  33\n    Tucker       TB     76  17  39  56 0.74  56  69 -10\n    MacInnis     CAL    48  11  43  54 1.13  54  59  15\n    Sutter       CHI    63  20  34  54 0.86  54  65   9\n    Bodger       BUF    80   9  45  54 0.68  54  87  14\n    Nemchinov    NYR    81  23  31  54 0.67  54  34  15\n    Driver       NJ     81  14  40  54 0.67  54  64  -9\n    Ruuttu       CHI    82  17  37  54 0.66  54 134  14\n    Yake         HAR    63  22  31  53 0.84  53  44   5\n    Turcotte     NYR    68  25  28  53 0.78  53  40  -2\n    Sandstrom    LA     37  25  27  52 1.41  53  51  11\n    Malakhov     NYI    61  14  38  52 0.85  52  59  14\n    Ward         VAN    68  22  30  52 0.76  52  82  32\n    Otto         CAL    74  19  33  52 0.70  52 150   2\n    Kontos       TB     66  27  24  51 0.77  51  12  -7\n    Leach        BOS    78  26  25  51 0.65  51 126  -6\n    Poulin       HAR    78  20  31  51 0.65  51  37 -19\n    Tkachuk      WIN    81  28  23  51 0.63  51 199 -14\n    Savard       MON    62  16  34  50 0.81  50  90   2\n    Norton       NYI    63  12  38  50 0.79  50  45  -6\n    Cullen       TOR    64  18  32  50 0.78  50 109 -23\n    Cote         WAS    74  21  29  50 0.68  50  34  28\n    Eklund       PHI    52  11  38  49 0.94  49  16   8\n    Olczyk       NYR    68  21  28  49 0.72  49  52  -1\n    Semenov      VAN    74  12  37  49 0.66  49  32  16\n    Davydov      WIN    77  28  21  49 0.64  49  64  -2\n    Miller       STL    80  24  25  49 0.61  49  96   0\n    Poulin       BOS    83  16  33  49 0.59  49  62  30\n    Klima        EDM    66  32  16  48 0.73  48  98 -15\n    Dionne       MON    73  20  28  48 0.66  48  55   6\n    Baker        OTT    74  19  29  48 0.65  48  52 -21\n    Rucinsky     QUE    76  18  30  48 0.63  48  51  14\n    Weight       EDM    76  17  31  48 0.63  48  65   5\n    Zhitnik      LA     76  12  36  48 0.63  49  78  -2\n    MacLean      NJ     78  24  24  48 0.62  48 100  -7\n    Corson       EDM    78  16  31  47 0.60  47 207 -16\n    Sweeney      BUF    79  21  26  47 0.59  47 118   4\n    Simpson      EDM    60  24  22  46 0.77  46  36 -14\n    Hawgood      PHI    66  11  35  46 0.70  46  68  -9\n    Johansson    WAS    74   7  38  45 0.61  45  54   0\n    Miller       WAS    81  18  27  45 0.56  45  32  -1\n    Manson       EDM    81  15  30  45 0.56  45 210 -26\n    Desjardins   MON    81  13  32  45 0.56  45  98  19\n    Schneider    MON    58  13  31  44 0.76  44  89   9\n    Goulet       CHI    63  23  21  44 0.70  44  41  10\n    Leclair      MON    70  19  25  44 0.63  44  33  11\n    Drake        DET    71  18  26  44 0.62  44  91  14\n    Lumme        VAN    73   8  36  44 0.60  44  55  29\n    Gaudreau     SJ     58  23  20  43 0.74  43  18 -17\n    Gill         TOR    68  11  32  43 0.63  43  64   4\n    Turgeon      OTT    70  25  18  43 0.61  43 104 -26\n    Probert      DET    79  14  29  43 0.54  43 292  -9\n    Wood         BUF    80  18  25  43 0.54  43  77   7\n    Ranheim      CAL    82  21  22  43 0.52  43  26  -4\n    Zamuner      TB     82  15  28  43 0.52  43  72 -25\n    Tinordi      MIN    69  15  27  42 0.61  42 157  -1\n    Paslawski    CAL    71  18  24  42 0.59  42  12   0\n    Ruzicka      BOS    60  19  22  41 0.68  41  38  -6\n    Elik         EDM    60  14  27  41 0.68  41  56  -4\n    Kudelski     OTT    61  24  17  41 0.67  41  28 -25\n    McSorley     LA     79  15  26  41 0.52  42 393   0\n    Shaw         OTT    79   7  34  41 0.52  41  34 -47\n    Lidstrom     DET    83   7  34  41 0.49  41  28   7\n    Stastny      NJ     60  17  23  40 0.67  40  20  -3\n    Ellett       TOR    68   6  34  40 0.59  40  46  17\n    Tikkanen     NYR    78  16  24  40 0.51  40  94 -22\n    Niedermayer  NJ     78  11  29  40 0.51  40  47   8\n    Racine       DET    79   9  31  40 0.51  40  80   8\n    McPhee       MIN    82  18  22  40 0.49  40  44  -4\n    Millen       LA     40  23  16  39 0.98  40  42  15\n    Chambers     TB     53  10  29  39 0.74  39  34 -23\n    Holik        NJ     59  20  19  39 0.66  39  72  -2\n    Clark        TOR    65  17  22  39 0.60  39 187   3\n    Khmylev      BUF    66  20  19  39 0.59  39  26   6\n    Creighton    TB     81  19  20  39 0.48  39 110 -21\n    Krushelnyski TOR    82  19  20  39 0.48  39  60   3\n    Kurvers      NYI    49   8  30  38 0.78  38  38   8\n    Crossman     STL    57  10  28  38 0.67  38  28  -6\n    Kovalev      NYR    63  20  18  38 0.60  38  79  -8\n    Craig        MIN    68  15  23  38 0.56  38 106 -10\n    Krupp        NYI    79   9  29  38 0.48  38  67   8\n    Momesso      VAN    82  18  20  38 0.46  38 193  11\n    Kamensky     QUE    31  15  22  37 1.19  37  14  13\n    Numminen     WIN    65   7  30  37 0.57  37  33   4\n    Pearson      TOR    76  23  14  37 0.49  37 196  -2\n    Graham       CHI    82  20  17  37 0.45  37 141   1\n    Leetch       NYR    36   6  30  36 1.00  36  26   2\n    Ciger        EDM    62  13  23  36 0.58  36   8 -14\n    Beers        TB     62  12  24  36 0.58  36  70 -24\n    Reid         BOS    65  20  16  36 0.55  36  10  12\n    Lapointe     QUE    73  10  26  36 0.49  36  98   4\n    Sjodin       MIN    75   7  29  36 0.48  36  30 -25\n    Weinrich     HAR    76   7  29  36 0.47  36  76 -10\n    Borsato      WIN    65  15  20  35 0.54  35  38  -1\n    Zezel        TOR    68  12  23  35 0.51  35  24  -1\n    Burr         DET    79  10  25  35 0.44  35  74  18\n    Donato       BOS    81  15  20  35 0.43  35  61   2\n    Benning      EDM    55  10  24  34 0.62  34 152  -1\n    Howe         DET    59   3  31  34 0.58  34  22  20\n    Guerin       NJ     63  14  20  34 0.54  34  63  16\n    Hull         OTT    67  13  21  34 0.51  34  14 -21\n    D.Sweeney    BOS    83   7  27  34 0.41  34  66  34\n    Nylander     HAR    56  11  22  33 0.59  33  36  -5\n    Beranek      PHI    63  15  18  33 0.52  33  78  -6\n    Wesley       BOS    64   8  25  33 0.52  33  47  -2\n    Matteau      CHI    77  15  18  33 0.43  33  96   6\n    Broten       MIN    80  12  21  33 0.41  33  22   7\n    Leeman       MON    50  15  17  32 0.64  32  24  14\n    Dalgarno     NYI    55  15  17  32 0.58  32  60  16\n    Mellanby     EDM    67  15  17  32 0.48  32 147  -4\n    Primeau      DET    73  15  17  32 0.44  32 152  -6\n    Gilbert      CHI    75  13  19  32 0.43  32  57   5\n    Mullen       NYI    78  18  14  32 0.41  32  28   7\n    Presley      BUF    78  15  17  32 0.41  32  92   5\n    Leschyshyn   QUE    81   9  23  32 0.40  32  55  22\n    Zubov        NYR    46   8  23  31 0.67  31   4   1\n    Mironov      TOR    57   7  24  31 0.54  31  38  -2\n    Bureau       TB     63  10  21  31 0.49  31 111 -12\n    Brisebois    MON    68  10  21  31 0.46  31  77   8\n    Heinze       BOS    72  18  13  31 0.43  31  24  21\n    Smehlik      BUF    78   4  27  31 0.40  31  59  10\n    Lemieux      CHI    79  10  21  31 0.39  31 109   4\n    Yushkevich   PHI    79   5  26  31 0.39  31  71  10\n    Evason       SJ     83  12  19  31 0.37  31 132 -33\n    McInnis      NYI    56  10  20  30 0.54  30  24   7\n    Noonan       CHI    61  16  14  30 0.49  30  82   1\n    Gallant      DET    66  10  20  30 0.45  30 186  20\n    Kennedy      DET    67  19  11  30 0.45  30  46  -1\n    Hough        QUE    77   8  22  30 0.39  30  69 -11\n    Gusarov      QUE    78   8  22  30 0.38  30  57  16\n    MacTavish    EDM    80  10  20  30 0.38  30 110 -15\n    Buchberger   EDM    81  12  18  30 0.37  30 133 -24\n    Janssens     HAR    73  12  17  29 0.40  29 233 -12\n    U.Samuelson  PIT    76   3  26  29 0.38  29 247  37\n    Sydor        LA     78   6  23  29 0.37  29  59   0\n    Duchesne     MIN    82  16  13  29 0.35  29  30   6\n    Falloon      SJ     41  14  14  28 0.68  28  12 -25\n    Sandlak      VAN    59  10  18  28 0.47  28 122   2\n    Carpenter    WAS    65  11  17  28 0.43  28  63 -16\n    Kron         HAR    42  14  13  27 0.64  27  18   7\n    Ferraro      NYI    43  14  13  27 0.63  27  38  -5\n    Kravchuk     EDM    55  10  17  27 0.49  27  32   3\n    Plavsic      VAN    56   6  21  27 0.48  27  51  27\n    Ron Sutter   STL    59  12  15  27 0.46  27  99 -11\n    Cole         TB     65  12  15  27 0.42  27  21  -4\n    Odgers       SJ     65  12  15  27 0.42  27 251 -25\n    Fitzgerald   NYI    74   9  18  27 0.36  27  32  -1\n    Fetisov      NJ     74   4  23  27 0.36  27 158   7\n    Korolev      STL    74   4  23  27 0.36  27  20  -1\n    Kypreos      HAR    75  17  10  27 0.36  27 325  -5\n    Andersson    TB     75  16  11  27 0.36  27  14 -14\n    Huddy        LA     80   2  25  27 0.34  27  62  20\n    Rich Sutter  STL    82  13  14  27 0.33  27 100  -6\n    Slegr        VAN    40   4  22  26 0.65  26 109  16\n    Svoboda      BUF    40   2  24  26 0.65  26  59   3\n    Patrick      NYR    60   5  21  26 0.43  26  61   1\n    Jones        WAS    68  12  14  26 0.38  26 124  16\n    Lamb         OTT    69   7  19  26 0.38  26  62 -40\n    Osborne      TOR    75  12  14  26 0.35  26  87  -7\n    May          BUF    80  13  13  26 0.33  26 238   3\n    Eagles       WIN    82   8  18  26 0.32  26 131  -1\n    Brunet       MON    45  10  15  25 0.56  25  19  13\n    T.Green      NYI    58   7  18  25 0.43  25  43   6\n    Stern        CAL    69  10  15  25 0.36  25 207   2\n    Lidster      VAN    71   6  19  25 0.35  25  36   9\n    Haller       MON    72  11  14  25 0.35  25 117   8\n    Tippett      PIT    73   6  19  25 0.34  25  56   7\n    Peluso       OTT    79  15  10  25 0.32  25 318 -32\n    DiMaio       TB     54   9  15  24 0.44  24  62   0\n    Brady        OTT    55   7  17  24 0.44  24  57 -25\n    Freer        OTT    61  10  14  24 0.39  24  39 -32\n    Cavallini    QUE    66   9  15  24 0.36  24  34  10\n    Lachance     NYI    74   7  17  24 0.32  24  67  -2\n    Shaw         BOS    76  10  14  24 0.32  24 108   9\n    Berg         TOR    78  13  11  24 0.31  24 103   2\n    Ozolinsh     SJ     37   7  16  23 0.62  23  40  -9\n    Klatt        MIN    45   4  19  23 0.51  23  38   6\n    Loach        LA     53  10  13  23 0.43  23  27   3\n    Todd         EDM    55   9  14  23 0.42  23  26  -9\n    Ashton       CAL    56  10  13  23 0.41  23  52   8\n    McBain       OTT    57   7  16  23 0.40  23  43 -35\n    Gelinas      EDM    63  11  12  23 0.37  23  30   2\n    Bautin       WIN    69   5  18  23 0.33  23  92  -2\n    Krygier      WAS    74  11  12  23 0.31  23  60 -14\n    Johnson      MIN    79   3  20  23 0.29  23 105   9\n    Acton        PHI    80   8  15  23 0.29  23  51 -11\n    Barnes       WIN    37  12  10  22 0.59  22  10  -3\n    Huffman      QUE    52   4  18  22 0.42  22  54   0\n    Sutton       BUF    61   8  14  22 0.36  22  30   0\n    McKay        NJ     71  11  11  22 0.31  22 199   1\n    Konstantinov DET    81   5  17  22 0.27  22 135  23\n    Pellerin     NJ     44  10  11  21 0.48  21  37  -1\n    Sillinger    DET    51   4  17  21 0.41  21  16   0\n    Volek        NYI    56   8  13  21 0.38  21  34  -1\n    Lindberg     CAL    61   9  12  21 0.34  21  18  -4\n    Evans        PHI    65   8  13  21 0.32  21  70  -9\n    Hamrlik      TB     65   6  15  21 0.32  21  65 -20\n    Gilchrist    MIN    68  10  11  21 0.31  21  49 -12\n    Churla       MIN    73   5  16  21 0.29  21 286  -8\n    Kasparaitis  NYI    77   4  17  21 0.27  21 166  14\n    Loney        PIT    81   5  16  21 0.26  21  99   3\n    Courtenay    SJ     38   7  13  20 0.53  20  10 -15\n    Wilson       SJ     42   3  17  20 0.48  20  40 -28\n    T.Pederson   SJ     43   7  13  20 0.47  20  31 -14\n    Lomakin      PHI    48   8  12  20 0.42  20  34  14\n    Druce        WIN    48   6  14  20 0.42  20  37  -5\n    Hannan       BUF    53   5  15  20 0.38  20  41  10\n    Corriveau    HAR    54   8  12  20 0.37  20  12 -20\n    Bourque      NYR    54   6  14  20 0.37  20  39  -9\n    Hiller       DET    60   8  12  20 0.33  20 109   6\n    Maltais      TB     61   7  13  20 0.33  20  35 -19\n    Burt         HAR    62   6  14  20 0.32  20 116 -14\n    Johansson    CAL    75   4  16  20 0.27  20  60  11\n    Marchment    CHI    76   5  15  20 0.26  20 309  13\n    Diduck       VAN    78   6  14  20 0.26  20 163  29\n    Podein       EDM    38  13   6  19 0.50  19  25  -1\n    Berehowsky   TOR    40   4  15  19 0.48  19  61   1\n    Babych       VAN    41   3  16  19 0.46  19  42   4\n    Audette      BUF    42  12   7  19 0.45  19  51  -5\n    Chorske      NJ     50   7  12  19 0.38  19  25  -1\n    Bassen       STL    51   9  10  19 0.37  19  59  -4\n    Hatcher      MIN    65   4  15  19 0.29  19 176 -26\n    Kucera       CHI    70   5  14  19 0.27  19  59   7\n    Wilson       STL    76   8  11  19 0.25  19  44  -7\n    Macoun       TOR    76   4  15  19 0.25  19  55   3\n    King         WIN    77   8  11  19 0.25  19 203   4\n    Beukeboom    NYR    79   2  17  19 0.24  19 153  10\n    Carkner      PHI    80   3  16  19 0.24  19 146  16\n    Neely        BOS    12  11   7  18 1.50  18  25   4\n    Foligno      TOR    54  13   5  18 0.33  18  84   1\n    Christian    CHI    60   4  14  18 0.30  18  12   6\n    Errey        BUF    61   9   9  18 0.30  18  80   1\n    Gavin        MIN    63  10   8  18 0.29  18  59  -4\n    McLlwain     TOR    65  14   4  18 0.28  18  30 -17\n    Daigneault   MON    65   8  10  18 0.28  18  57  24\n    Ramage       MON    74   5  13  18 0.24  18 146 -24\n    Smith        EDM    76   4  14  18 0.24  18  30 -11\n    Paek         PIT    76   3  15  18 0.24  18  64  15\n    Murphy       CHI    17   7  10  17 1.00  17  18  -4\n    DiPietro     MON    27   4  13  17 0.63  17  14  10\n    M.Pederson   SJ     40  10   7  17 0.43  17  24 -20\n    Nattress     PHI    44   7  10  17 0.39  17  29   1\n    Carbonneau   MON    59   4  13  17 0.29  17  20  -8\n    Yawney       CAL    61   1  16  17 0.28  17  65   5\n    Kasatonov    NJ     63   3  14  17 0.27  17  55   7\n    Roberts      BOS    64   5  12  17 0.27  17 103  22\n    MacDermid    WAS    72   9   8  17 0.24  17  80 -13\n    Odjick       VAN    74   4  13  17 0.23  17 360   4\n    Conacher     LA     79   9   8  17 0.22  17  20 -15\n    Cavallini    WAS    79   6  11  17 0.22  17  56   4\n    Erickson     WIN    39   4  12  16 0.41  16  12   2\n    Straka       PIT    41   3  13  16 0.39  16  29   3\n    Erixon       NYR    42   5  11  16 0.38  16  10  13\n    Murphy       BOS    48   5  11  16 0.33  16  60 -14\n    Ledyard      BUF    48   2  14  16 0.33  16  43   0\n    Butsayev     PHI    49   2  14  16 0.33  16  57   2\n    Ulanov       WIN    54   2  14  16 0.30  16 122   6\n    Carter       SJ     55   7   9  16 0.29  16  81 -25\n    Glynn        EDM    62   4  12  16 0.26  16  58 -12\n    Boschman     OTT    68   9   7  16 0.24  16  95 -27\n    Rumble       OTT    68   3  13  16 0.24  16  61 -26\n    Stanton      PIT    76   4  12  16 0.21  16  97   8\n    Murzyn       VAN    77   5  11  16 0.21  16 179  36\n    Musil        CAL    78   6  10  16 0.21  16 129  26\n    May          WAS    80   6  10  16 0.20  16 266   0\n    Foote        QUE    80   4  12  16 0.20  16 168   3\n    Odelein      MON    81   2  14  16 0.20  16 201  35\n    Andersson    NYR    29   4  11  15 0.52  15  16   7\n    Archibald    OTT    42   9   6  15 0.36  15  32 -15\n    Taylor       LA     46   6   9  15 0.33  15  49   2\n    Lowe         NYR    47   3  12  15 0.32  15  58  -1\n    Domi         WIN    59   5  10  15 0.25  15 340   1\n    McCrimmon    DET    60   1  14  15 0.25  15  71  21\n    Konroyd      DET    65   3  12  15 0.23  15  67 -15\n    Zombo        STL    69   0  15  15 0.22  15  78  -4\n    Butcher      STL    82   5  10  15 0.18  15 209   0\n    Zmolek       SJ     83   5  10  15 0.18  15 229 -51\n    Fergus       VAN    36   5   9  14 0.39  14  20   1\n    Skrudland    CAL    38   7   7  14 0.37  14  65   4\n    Pantaleyev   BOS    39   8   6  14 0.36  14  12  -6\n    Pearson      QUE    41  13   1  14 0.34  14  95   3\n    C.J.Young    BOS    43   7   7  14 0.33  14  32  -6\n    Smail        OTT    51   4  10  14 0.27  14  51 -34\n    Hardy        LA     53   1  13  14 0.26  14  89  -1\n    Broten       NYR    58   5   9  14 0.24  14  48  -6\n    Barr         NJ     60   6   8  14 0.23  14  44   3\n    Taglianetti  PIT    71   2  12  14 0.20  14 182  15\n    Ewen         MON    74   5   9  14 0.19  14 191   7\n    Bergevin     TB     76   2  12  14 0.18  14  66 -16\n    Finn         QUE    79   5   9  14 0.18  14 160  -4\n    Lefebvre     TOR    79   2  12  14 0.18  14  90   6\n    M.Sullivan   SJ     81   6   8  14 0.17  14  30 -42\n    Ojanen       NJ     31   4   9  13 0.42  13  14  -2\n    Reekie       TB     42   2  11  13 0.31  13  69   2\n    Lindsay      QUE    44   4   9  13 0.30  13  16   0\n    Ramsey       PIT    44   3  10  13 0.30  13  28  16\n    Valk         VAN    46   6   7  13 0.28  13  73   5\n    Jelinek      OTT    49   7   6  13 0.27  13  52 -21\n    Needham      PIT    55   8   5  13 0.24  13  24  -2\n    Lowry        STL    56   5   8  13 0.23  13 101 -18\n    Rychel       LA     68   6   7  13 0.19  13 293 -14\n    McGill       PHI    70   3  10  13 0.19  13 221   7\n    Stapleton    PIT    78   4   9  13 0.17  13  10  -8\n    Richardson   EDM    80   3  10  13 0.16  13 140 -18\n    Rouse        TOR    80   3  10  13 0.16  13 128   8\n    Daneyko      NJ     82   2  11  13 0.16  13 222   4\n    Ogrodnick    DET    18   6   6  12 0.67  12   2  -3\n    S. King      NYR    24   7   5  12 0.50  12  16   4\n    Joseph       EDM    31   2  10  12 0.39  12  46  -6\n    Petit        CAL    34   3   9  12 0.35  12  50  -6\n    Williams     SJ     39   1  11  12 0.31  12  49 -25\n    B.Smith      MIN    43   5   7  12 0.28  12   8  -6\n    Bozon        STL    52   6   6  12 0.23  12  55  -1\n    Ronan        MON    53   5   7  12 0.23  12  20   6\n    Dirk         VAN    67   4   8  12 0.18  12 146  22\n    Hunter       VAN    72   5   7  12 0.17  12 182  -5\n    Luongo       OTT    74   3   9  12 0.16  12  68 -42\n    Berube       CAL    75   4   8  12 0.16  12 209  -6\n    Wilson       CAL    22   4   7  11 0.50  11   8  10\n    Vujtek       EDM    28   1  10  11 0.39  11   8  -1\n    Konowalchuk  WAS    36   4   7  11 0.31  11  16   4\n    Snuggerud    PHI    39   4   7  11 0.28  11  14  -3\n    Murray       CHI    49   4   7  11 0.22  11  57 -14\n    Donnelly     BUF    58   3   8  11 0.19  11 219   6\n    Dahl         CAL    59   2   9  11 0.19  11  52   9\n    Kasper       TB     66   4   7  11 0.17  11  20 -16\n    More         SJ     73   5   6  11 0.15  11 179 -35\n    Quintal      STL    73   1  10  11 0.15  11 100  -6\n    Ludwig       MIN    76   1  10  11 0.14  11 149   0\n    Muni         CHI    79   0  11  11 0.14  11  73 -15\n    Lazaro       OTT    26   6   4  10 0.38  10  16  -8\n    Norwood      STL    32   3   7  10 0.31  10  63  -5\n    Featherstone BOS    34   5   5  10 0.29  10 102   6\n    Murphy       OTT    42   3   7  10 0.24  10  28 -18\n    DeBrusk      EDM    49   8   2  10 0.20  10 199 -14\n    Wells        NYR    50   1   9  10 0.20  10 105  -2\n    Kimble       BOS    54   7   3  10 0.19  10 177   4\n    Corkum       BUF    67   6   4  10 0.15  10  38  -2\n    Dahlquist    CAL    73   3   7  10 0.14  10  66  -2\n    Gordijuk     BUF    16   3   6   9 0.56   9   0   4\n    Hurlbut      NYR    23   1   8   9 0.39   9  16   4\n    Boivin       PHI    30   5   4   9 0.30   9  76  -5\n    Moller       BUF    35   2   7   9 0.26   9  83   6\n    Cunneyworth  HAR    36   5   4   9 0.25   9  61  -1\n    Petrovicky   HAR    42   3   6   9 0.21   9  45 -10\n    McRae        STL    45   3   6   9 0.20   9 167 -13\n    Cirella      NYR    52   3   6   9 0.17   9  83   4\n    Maley        SJ     55   2   7   9 0.16   9 143 -27\n    Daniels      PIT    57   5   4   9 0.16   9  14  -6\n    Hughes       BOS    61   5   4   9 0.15   9 191  -5\n    Lalor        WIN    62   1   8   9 0.15   9  74 -13\n    K.Samuelson  PIT    63   3   6   9 0.14   9 106  25\n    McKenzie     HAR    63   3   6   9 0.14   9 202  -9\n    Kocur        NYR    64   3   6   9 0.14   9 129  -9\n    Loewen       OTT    77   4   5   9 0.12   9 145 -25\n    Houlder      BUF    13   3   5   8 0.62   8   6   7\n    T.Sweeney    BOS    14   1   7   8 0.57   8   6   1\n    Douris       BOS    18   4   4   8 0.44   8   4   5\n    Keczmer      HAR    21   4   4   8 0.38   8  28  -2\n    Greig        HAR    22   1   7   8 0.36   8  27 -11\n    Day          HAR    24   1   7   8 0.33   8  47  -8\n    Werenka      EDM    27   5   3   8 0.30   8  24   1\n    Tatarinov    QUE    28   2   6   8 0.29   8  28   6\n    McDonough    SJ     30   6   2   8 0.27   8   6 -21\n    Hill         MON    30   2   6   8 0.27   8  47  -5\n    K.Brown      CHI    31   2   6   8 0.26   8  37   4\n    Loiselle     NYI    38   5   3   8 0.21   8  84  -4\n    Hudson       EDM    39   1   7   8 0.21   8  44  -8\n    Hedican      STL    40   0   8   8 0.20   8  30  -4\n    Roberge      MON    48   4   4   8 0.17   8 140   3\n    Ahola        SJ     49   3   5   8 0.16   8  36 -11\n    McIntyre     NYR    57   3   5   8 0.14   8  82 -14\n    Anderson     WAS    57   2   6   8 0.14   8  18  -1\n    Houda        HAR    57   2   6   8 0.14   8 163 -21\n    Hartman      TB     58   4   4   8 0.14   8 154  -7\n    Wilkinson    SJ     58   1   7   8 0.14   8  96 -48\n    Hammond      OTT    61   4   4   8 0.13   8 104 -40\n    Barrasso     PIT    62   0   8   8 0.13   8  20   0\n    Kennedy      WIN    77   1   7   8 0.10   8 105  -4\n    Eastwood     TOR    12   1   6   7 0.58   7  21  -2\n    Quintin      SJ     14   2   5   7 0.50   7   4  -4\n    R.Brown      CHI    15   1   6   7 0.47  33  33   6\n    Godynyuk     CAL    26   3   4   7 0.27   7  17   7\n    Rice         EDM    26   2   5   7 0.27   7  13  -5\n    Murray       BOS    27   3   4   7 0.26   7   8  -6\n    Wiemer       BOS    27   1   6   7 0.26   7  48  -1\n    Berezan      SJ     28   3   4   7 0.25   7  28 -18\n    Marois       NYI    28   2   5   7 0.25   7  35  -3\n    Mallette     NJ     34   4   3   7 0.21   7  56   3\n    Hynes        PHI    36   3   4   7 0.19   7  16  -3\n    Gilhen       TB     42   3   4   7 0.17   7  12 -13\n    Chase        STL    49   2   5   7 0.14   7 204  -9\n    Vukota       NYI    71   2   5   7 0.10   7 199   4\n    Zettler      SJ     79   0   7   7 0.09   7 150 -48\n    Lafreniere   TB      9   3   3   6 0.67   6   4  -5\n    Propp        MIN    15   3   3   6 0.40   6   0  -8\n    Belanger     MON    18   4   2   6 0.33   6   4   1\n    Kerr         HAR    22   0   6   6 0.27   6   7 -11\n    Shuchuk      LA     23   2   4   6 0.26   6  14   4\n    Bergland     TB     25   3   3   6 0.24   6  11  -9\n    Vaske        NYI    25   1   5   6 0.24   6  30   6\n    Carney       BUF    29   2   4   6 0.21   6  51   2\n    Dinnen       OTT    31   2   4   6 0.19   6  30 -19\n    Albelin      NJ     34   1   5   6 0.18   6  14  -1\n    Patterson    BUF    35   4   2   6 0.17   6  18  -2\n    Ladouceur    HAR    59   2   4   6 0.10   6 107 -17\n    Russell      CHI    66   2   4   6 0.09   6 151   5\n    Lang         LA     11   0   5   5 0.45   5   2  -3\n    Lipuma       TB     13   0   5   5 0.38   5  32   1\n    Brown        NJ     15   0   5   5 0.33   5   2   3\n    Kozlov       DET    16   4   1   5 0.31   5  14  -1\n    Savage       WAS    16   2   3   5 0.31   5  12  -4\n    Bruce        SJ     17   2   3   5 0.29   5  33 -14\n    Byers        SJ     18   4   1   5 0.28   5 122  -2\n    Conroy       PHI    18   3   2   5 0.28   5  17   0\n    Van Allen    EDM    21   1   4   5 0.24   5   6  -2\n    Richer       BOS    23   1   4   5 0.22   5  18  -9\n    Wolanin      QUE    23   1   4   5 0.22   5  49   8\n    Leach        HAR    24   3   2   5 0.21   5   4  -7\n    Prokhorov    STL    26   4   1   5 0.19   5  15  -4\n    Kruse        CAL    26   2   3   5 0.19   5  41   3\n    Richter      NYR    35   0   5   5 0.14   5   2   0\n    Bawa         SJ     41   5   0   5 0.12   5  47 -24\n    Osiecki      MIN    42   1   4   5 0.12   5  19 -20\n    Matvichuk    MIN    51   2   3   5 0.10   5  26  -7\n    Pedersen     HAR    58   1   4   5 0.09   5  60   2\n    Jennings     PIT    58   0   5   5 0.09   5  65   7\n    Essensa      WIN    66   0   5   5 0.08   5   2   0\n    Ray          BUF    68   3   2   5 0.07   5 211  -3\n    McKim        BOS     7   1   3   4 0.57   4   0   2\n    Faust        PHI     8   2   2   4 0.50   4   4   3\n    Smolinski    BOS     8   1   3   4 0.50   4   0   3\n    Fogarty      PIT    12   0   4   4 0.33   4   4  -3\n    Hervey       TB     15   0   4   4 0.27   4  36  -4\n    Picard       SJ     25   4   0   4 0.16   4  24 -17\n    Reese        CAL    25   0   4   4 0.16   4   4   0\n    Romaniuk     WIN    28   3   1   4 0.14   4  22   0\n    Thompson     LA     28   0   4   4 0.14   4  79  -3\n    Pilon        NYI    41   1   3   4 0.10   4 146  -3\n    Giles        STL    48   0   4   4 0.08   4  40  -2\n    Baron        STL    53   2   2   4 0.08   4  59  -5\n    Cheveldae    DET    66   0   4   4 0.06   4   4   0\n    Hankinson    NJ      4   2   1   3 0.75   3   9   2\n    McDougall    EDM     4   2   1   3 0.75   3   4   2\n    Felsner      STL     4   0   3   3 0.75   3   0   0\n    Ruff         TB      8   2   1   3 0.38   3   8  -1\n    Petrov       MON     9   2   1   3 0.33   3  10   2\n    Black        MIN    10   2   1   3 0.30   3   4   0\n    Morris       SJ     14   0   3   3 0.21   3   6 -11\n    Walter       VAN    23   3   0   3 0.13   3   8  -2\n    Hrivnak      WIN    29   0   3   3 0.10   3   0   0\n    Wakaluk      MIN    29   0   3   3 0.10   3  20   0\n    Dufresne     MON    30   1   2   3 0.10   3  30   0\n    Cronin       PHI    34   2   1   3 0.09   3  37   0\n    Smyth        CAL    34   1   2   3 0.09   3  95   3\n    Hrudey       LA     48   0   3   3 0.06   3   8   0\n    Marsh        OTT    57   0   3   3 0.05   3  30 -25\n    Casey        MIN    58   0   3   3 0.05   3  28   0\n    Berry        MIN    61   0   3   3 0.05   3 107   4\n    Ranford      EDM    66   0   3   3 0.05   3  10   0\n    Belfour      CHI    69   0   3   3 0.04   3  28   0\n    Rivers       TB      4   0   2   2 0.50   2   2  -2\n    Forslund     CAL     5   0   2   2 0.40   2   0   0\n    Capuano      TB      6   1   1   2 0.33   2   2  -4\n    Djoos        NYR     6   1   1   2 0.33   2   2   0\n    Cummins      DET     7   1   1   2 0.29   2  58   0\n    Otevrel      SJ      7   0   2   2 0.29   2   0  -6\n    Kolstad      SJ     10   0   2   2 0.20   2  12  -9\n    Osborne      TB     11   1   1   2 0.18   2   8  -1\n    Wood         SJ     12   1   1   2 0.17   2  71  -5\n    Brickley     WIN    12   0   2   2 0.17   2   2   0\n    Eakins       WIN    14   0   2   2 0.14   2  38   2\n    Simon        QUE    15   1   1   2 0.13   2  67  -2\n    Bennett      CHI    16   0   2   2 0.13   2   8  -2\n    Gillis       HAR    18   1   1   2 0.11   2  38   0\n    Carlyle      WIN    22   1   1   2 0.09   2  14  -6\n    Nylund       NYI    22   1   1   2 0.09   2  43  -2\n    Blue         BOS    22   0   2   2 0.09   2   6   0\n    Watters      LA     22   0   2   2 0.09   2  18  -3\n    Woolley      WAS    23   0   2   2 0.09   2  10   0\n    Whitmore     VAN    29   0   2   2 0.07   2   2   0\n    Stauber      LA     30   0   2   2 0.07   2   2   0\n    W.Young      TB     31   0   2   2 0.06   2   2   0\n    Roussel      PHI    32   0   2   2 0.06   2  11   0\n    Twist        QUE    34   0   2   2 0.06   2  64   0\n    Fiset        QUE    37   0   2   2 0.05   2   2   0\n    Jablonski    TB     42   0   2   2 0.05   2   7   0\n    Soderstrom   PHI    43   0   2   2 0.05   2   4   0\n    Healy        NYI    46   0   2   2 0.04   2   2   0\n    Burke        HAR    50   0   2   2 0.04   2  25   0\n    Hextall      QUE    53   0   2   2 0.04   2  56   0\n    Roy          MON    61   0   2   2 0.03   2  16   0\n    Vernon       CAL    63   0   2   2 0.03   2  42   0\n    Joseph       STL    66   0   2   2 0.03   2   8   0\n    Brown        PHI    67   0   2   2 0.03   2  76  -5\n    Grimson      CHI    76   1   1   2 0.03   2 186   2\n    Barnaby      BUF     1   1   0   1 1.00   1   0   0\n    Ratushny     VAN     1   0   1   1 1.00   1   0   0\n    Zholtok      BOS     1   0   1   1 1.00   1   0   1\n    Sullivan     NJ      2   0   1   1 0.50   1   0  -1\n    Duncanson    NYR     3   0   1   1 0.33   1   0   0\n    Beaufait     SJ      4   1   0   1 0.25   1   0  -1\n    Bowen        PHI     4   1   0   1 0.25   1   2   0\n    MacDonald    BUF     4   1   0   1 0.25   1   2   0\n    Esau         QUE     4   0   1   1 0.25   1   2   1\n    D.Smith      MIN     9   0   1   1 0.11   1   2  -2\n    Vial         DET     9   0   1   1 0.11   1  20   1\n    Brown        BUF    10   0   1   1 0.10   1   6  -5\n    Draper       BUF    11   0   1   1 0.09   1   2   0\n    Karpa        QUE    11   0   1   1 0.09   1  13  -6\n    Tichy        CHI    13   0   1   1 0.08   1  30   7\n    Gosselin     HAR    15   0   1   1 0.07   1   2   0\n    Fortier      LA     16   0   1   1 0.06   1  11  -9\n    Hayward      SJ     18   0   1   1 0.06   1   2   0\n    McGill       TOR    19   1   0   1 0.05   1  34   5\n    Bergeron     TB     19   0   1   1 0.05   1   0   0\n    Potvin       LA     19   0   1   1 0.05   1  52  -9\n    Berthiaume   OTT    23   0   1   1 0.04   1   2   0\n    Racicot      MON    25   0   1   1 0.04   1   6   0\n    Wregget      PIT    25   0   1   1 0.04   1   6   0\n    Ciccone      MIN    29   0   1   1 0.03   1 106   3\n    Puppa        TOR    32   0   1   1 0.03   1   0   0\n    Hackett      SJ     36   0   1   1 0.03   1   4   0\n    Fitzpatrick  NYI    37   0   1   1 0.03   1   2   0\n    Billington   NJ     40   0   1   1 0.03   1   8   0\n    Potvin       TOR    46   0   1   1 0.02   1   4   0\n    Vanbiesbrouk NYR    48   0   1   1 0.02   1  18   0\n    McLean       VAN    54   0   1   1 0.02   1  16   0\n    Moog         BOS    54   0   1   1 0.02   1  14   0\n    Beaupre      WAS    57   0   1   1 0.02   1  20   0\n    Baumgartner  TOR    61   1   0   1 0.02   1 155 -11\n    Bales        BOS     1   0   0   0 0.00   0   0   0\n    Burridge     WAS     1   0   0   0 0.00   0   0   0\n    Chabot       MON     1   0   0   0 0.00   0   0   0\n    D'Alessio    HAR     1   0   0   0 0.00   0   0   0\n    Littman      TB      1   0   0   0 0.00   0   0   0\n    Parks        NYI     1   0   0   0 0.00   0   0   0\n    Semchuk      LA      1   0   0   0 0.00   0   2   0\n    St. Amour    OTT     1   0   0   0 0.00   0   2   0\n    Cimellaro    OTT     2   0   0   0 0.00   0   0  -2\n    Cote         TB      2   0   0   0 0.00   0   0  -1\n    Marcinyshyn  NYR     2   0   0   0 0.00   0   2  -1\n    O'Neill      WIN     2   0   0   0 0.00   0   0   0\n    Raglan       TB      2   0   0   0 0.00   0   2   0\n    Williams     LA      2   0   0   0 0.00   0  10   0\n    Charron      MON     3   0   0   0 0.00   0   2   0\n    Ciavaglia    BUF     3   0   0   0 0.00   0   0   0\n    Cloutier     QUE     3   0   0   0 0.00   0   0   0\n    Hamr         OTT     3   0   0   0 0.00   0   0  -3\n    Wamsley      TOR     3   0   0   0 0.00   0   0   0\n    Hirsch       NYR     4   0   0   0 0.00   0   0   0\n    O'Connor     NJ      7   0   0   0 0.00   0   9  -4\n    J.Messier    NYR     9   0   0   0 0.00   0   6   0\n    Knickle      LA     10   0   0   0 0.00   0   2   0\n    Chapdelaine  LA     13   0   0   0 0.00   0  12  -6\n    Shannon      TOR    15   0   0   0 0.00   0  11  -2\n    Agnew        HAR    16   0   0   0 0.00   0  68   3\n    Waite        CHI    20   0   0   0 0.00   0   0   0\n    Langway      WAS    21   0   0   0 0.00   0  20 -13\n    Riendeau     DET    22   0   0   0 0.00   0   2   0\n    Hebert       STL    23   0   0   0 0.00   0   2   0\n    Tabaracci    WAS    23   0   0   0 0.00   0  12   0\n    Tugnutt      EDM    25   0   0   0 0.00   0   2   0\n    Caufield     PIT    26   0   0   0 0.00   0  60  -1\n    Hasek        BUF    27   0   0   0 0.00   0   0   0\n    Pietrangelo  HAR    30   0   0   0 0.00   0   4   0\n    Irbe         SJ     35   0   0   0 0.00   0  10   0\n    Terreri      NJ     47   0   0   0 0.00   0   6   0\n    Fuhr         BUF    56   0   0   0 0.00   0  10   0\n    Sidorkiewicz OTT    63   0   0   0 0.00   0   8   0\n-- \n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                                           -\n-    Maurice Richard                                                        -\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 758, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dshanks@nyx.cs.du.edu (David Shanks)\nSubject: Re: Diamond Speedstar Driver for v3.1\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 10\n\nIn article <116005@bu.edu> rem@buitc.bu.edu (Robert Mee) writes:\n>I am looking for a WIN31 driver (or set) for my Diamond \n>Speedstar 1MB video card. \n\nThe Diamond BBS has these.  Their 2400 baud BBS phone number is (408)\n730-1100.  Their 9600 baud BBS phone number is (408) 524-9335.  Sorry,\nI don't know of any FTP site that has these (though I'd be surprised if\nthere wasn't one).\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 759, "properties": {"category": "talk.politics.mideast", "text": "From: hernlem@chess.ncsu.edu (Brad Hernlem)\nSubject: Re: was:Go Hezbollah!\nReply-To: hernlem@chess.ncsu.edu (Brad Hernlem)\nOrganization: NCSU Chem Eng\nLines: 132\n\n\nIn article <2BCF287A.25524@news.service.uci.edu>, tclock@orion.oac.uci.edu (Tim Clock) writes:\n|\n|> >In article <1993Apr16.130037.18830@ncsu.edu>, hernlem@chess.ncsu.edu \n|>  (Brad Hernlem) writes:\n|> >|> \n|> >|> In article <2BCE0918.6105@news.service.uci.edu>, tclock@orion.oac.uci.edu \n|>     (Tim Clock) writes:\n|> >|> \n|> >|> Are you suggesting that, when guerillas use the population for cover, \n|> >|> Israel should totally back down? So...the easiest way to get away with \n|> >|> attacking another is to use an innocent as a shield and hope that the \n|> >|> other respects innocent lives?\n|> \n|> > Tell me Tim, what are these guerillas doing wrong? Assuming that they are \n|> > using civilians for cover, \n|> \n|> \"Assuming\"? Also: come on, Brad. If we are going to get anywhere in \n|> this (or any) discussion, it doesn't help to bring up elements I never \n|> addressed, *nor commented on in any way*. I made no comment on who is \n|> \"right\" or who is \"wrong\", only that civilians ARE being used as cover \n|> and that, having been placed \"in between\" the Israelis and the guerillas,\n|> they *will* be injured as both parties continue their fight.\n\nPardon me Tim, but I do not see how it can be possible for the IDF to fail\nto detect the presence of those responsible for planting the bomb which\nkilled the three IDF troops and then later know the exact number and \nwhereabouts of all of them. Several villages were shelled. How could the IDF\npossibly have known that there were guerrillas in each of the targetted\nvillages? You see, it was an arbitrary act of \"retaliation\".\n\n\n|> > If the buffer zone is to prevent attacks on Israel, is it not working? Why\n|> > is it further neccessary for Israeli guns to pound Lebanese villages? Why \n|> > not just kill those who try to infiltrate the buffer zone? You see, there \n|> > is more to the shelling of the villages.... it is called RETALIATION... \n|> > \"GETTING BACK\"...\"GETTING EVEN\". It doesn't make sense to shell the \n|> > villages. The least it shows is a reckless disregard by the Israeli \n|> > government for the lives of civilians.\n|> \n|> I agree with you here. I have always thought that Israel's bombing\n|> sortees and bombing policy is stupid, thoughtless, inhumane AND\n|> ineffective. BUT, there is no reason that Israel should passive wait \n|> until attackers chose to act; there is every reason to believe that\n|> \"taking the fight *to* the enemy\" will do more to stop attacks. \n|> \n|> As I said previously, Israel spent several decades \"sitting passively\"\n|> on its side of a border and only acting to stop these attacks *after*\n|> the attackers had entered Israeli territory. It didn't work very well.\n|> The \"host\" Arab state did little/nothing to try and stop these attacks \n|> from its side of the border with Israel so the number of attacks\n|> were considerably higher, as was their physical and psychological impact \n|> on the civilians caught in their path.  \n\nThe problem, Tim, is that the original reason for the invasion was Palestinian\nattacks on Israel, NOT Lebanese attacks. \n\n|> >\n|> >|> What?So the whole bit about attacks on Israel from neighboring Arab states \n|> >|> can start all over again? While I also hope for this to happen, it will\n|> >|> only occur WHEN Arab states show that they are *prepared* to take on the \n|> >|> responsibility and the duty to stop guerilla attacks on Israel from their \n|> >|> soil. They have to Prove it (or provide some \"guaratees\"), there is no way\n|> >|> Israel is going to accept their \"word\"- not with their past attitude of \n|> >|> tolerance towards \"anti-Israel guerillas in-residence\".\n|> >|> \n|> > If Israel is not willing to accept the \"word\" of others then, IMHO, it has\n|> > no business wasting others' time coming to the peace talks. \n|> \n|> This is just another \"selectively applied\" statement.\n|>  \n|> The reason for this drawn-out impasse between Ababs/Palestinians and Israelis\n|> is that NEITHER side is willing to accept the Word of the other. By your\n|> criteria *everyone* should stay away from the negotiations.\n|> \n|> That is precisely why the Palestinians (in their recent PISGA proposal for \n|> the \"interim\" period after negotiations and leading up to full autonomy) are\n|> demanding conditions that essentially define \"autonomy\" already. They DO\n|> NOT trust that Israel will \"follow through\" the entire process and allow\n|> Palestinians to reach full autonomy. \n|> \n|> Do you understand and accept this viewpoint by the Palestinians? \n|> If you do, then why should Israel's view of Arabs/Palestinians \n|> be any different? Why should they trust the Arab/Palestinians' words?\n|> Since they don't, they are VERY reluctant to give up \"tangible assets \n|> (land, control of areas) in exchange for \"words\". For this reason,\n|> they are also concerned about the sorts of \"guarantees\" they will have \n|> that the Arabs WILL follow through on their part of any agreement reached.\n\nFirst, I believe that my statement applies to both sides.\n\nHaving said that, I think it is neccessary to separate what is legitimately\nnegotiable and what is not. For example, no country has the right to abuse\none's human rights. Deciding whether there will be one or two states in\nPalestine is a legitimate question. While de facto one state exists, Israel \nmust treat all within its domain equitably.\n\n|> > Tim, you are ignoring the fact that the Palestinians in Lebanon have been\n|> > disarmed. Hezbollah remains the only independent militia. Hezbollah does\n|> > not attack Israel except at a few times such as when the IDF burned up\n|> > Sheikh Mosavi, his wife, and young son. \n|> \n|> While the \"major armaments\" (those allowing people to wage \"civil wars\")\n|> have been removed, the weapons needed to cross-border attacks still\n|> remain to some extent. Rocket attacks still continue, and \"commando\"\n|> raids only require a few easily concealed weapons and a refined disregard\n|> for human life (yours of that of others). Such attacks also continue.\n\nYes, I am afraid that what you say is true but that still does not justify\noccupying your neighbor's land. Israel must resolve its disputes with the\nnative Palestinians if it wants peace from such attacks.\n\n|> > Of course, if Israel would withdraw from Lebanon\n|> > and stop assassinating people and shelling villages they wouldn't\n|> > make the Lebanese so mad as to do that.\n|> \n|> Bat guano. The situation you call for existed in the 1970s and attacks\n|> were commonplace.\n\nNot true. Lebanese were not attacking Israel in the 1970s. With a strong\nLebanese government (free from Syrian and Israeli interference) I believe\nthat the border could be adequately patrolled. The Palestinian heavy\nweapons have been siezed in past years and I do not see as significant a\nthreat as once existed.\n\nPlease, Tim, don't fall into the trap of treating Lebanese and Palestinians\nas all part of the same group. There are too many who think all Arabs or all\nMuslims are the same. Too many times I have seen people support the bombing\nof Palestinian camps in \"retaliation\" for an IDF death at the hands of the\nLebanese Resistance or the shelling of Lebanese villages in \"retaliation\" for\na Palestinian attack. \n|> Tim\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.037+0000", "event": "documents", "entityId": 760, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: THE HAMAS WAY of DEATH\nOrganization: The Department of Redundancy Department\nLines: 28\n\nIn article <1993Apr18.162427.17712@nntpd.lkg.dec.com> alaa@peewee.unx.dec.com (Alaa Zeineldine) writes:\n>tclock@orion.oac.uci.edu (Tim Clock) writes:\n>: \n>: While you brought up the separate question of Israel's unjustified\n>: policies and practices, I am still unclear about your reaction to\n>: the practices and polocies reflected in the article above.\n>: \n>: Tim\n>\n>Not a separate question Mr. Clock. It is deceiving to judge the \n>resistance movement out of the context of the occupation.\n>\n>Alaa Zeineldine\n\nWhen the PLO moved into Lebanon and became, in parts of Lebanon, an\nOccupying Power itself, these same practices were common against\nnon-Palestinean and Palestinean alike.  They are simply Standard\nOperating Procedures among Palestineans and have been for a very long\ntime.  In fact, the greatest bloodbath of Palestineans will happen\nwhen they get self-rule.  Can you possibly deny this? \n\nWhen the PLO is the Occupier, who are you NOW going to blame?\n\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 761, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: disk safety measure?\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 23\n\ncuffell@spot.Colorado.EDU (Tim Cuffel) writes:\n\n> There is no guarantee that the deleted space would be overwritten during\n> optimization.  Likely, but no guarantee.  A quicker and more secure method\n> would be a batch file that overwrote all of your free space.  For example\n> fill.bat:\n> \techo %1 >> out\n> \tfill.bat\n> (This is off the top of my head.  #include <std_disclaimer.h>)\n\nIt is MUCH easier, faster, and probably even more secure to use Norton\nUtilties 6.0 (I'm talking IBM PC here) and to tell WipeInfo to (a)\nclean the free disk space and (b) clean the slack space at the end of\nthe files. Use to Government standard option for more careful\noverwriting...\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 762, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss)\nSubject: 6 Apr 93   God's Promise in John 16:24\nOrganization: University at Buffalo\nLines: 8\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\n\n\n\tHitherto have ye asked nothing\n\tin my name:\n\task, and ye shall receive,\n\tthat your joy may be full.\n\n\tJohn 16:24\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 763, "properties": {"category": "talk.politics.misc", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: National Sales Tax, The Movie\nOrganization: University of Toronto Chemistry Department\nLines: 38\n\nIn article <9304151442.AA05233@inet-gw-2.pa.dec.com> blh@uiboise.idbsu.edu (Broward L. Horne) writes:\n>      Well, it seems the \"National Sales Tax\" has gotten its very\n\n>      own CNN news LOGO!\n>\n>      Cool.  That means we'll be seeing it often.\n>\n>      Man, I sure am GLAD that I quit working ( or taking this \n>      seriously ) in 1990.  If I kept busting my ass, watching \n>      time go by, being frustrated, I'd be pretty DAMN MAD by \n>      now.\n>      \n>      I just wish I had the e-mail address of total gumby who\n>      was saying that \" Clinton didn't propose a NST \".\n>\n\nActually, Jerry Brown essentially did...and Clinton, in his demagogue\npersona, condemned Brown for it in the crucial NY primary last year.\n\nHowever....\n\nWhy don't the Republicans get their act together, and say they\nwill support a broad-based VAT that would have to be visible\n(the VAT in Canada is visible unlike the invisible VATS they\nhave in Europe)\nand suggest a rate sufficient to halve income and corporate\nand capital gains tax rates and at a rate sufficient to give\nthe Clintons enough revenue for their health care reform, and\nforce an agreement with the Democrats that the top income tax\nrate would then be frozen for the forseeable future and could\nbe increased only via a national referendum.\n\nWhy not make use of the Clintons to do something worthwhile...\nshift the tax burden from investment to consumption, and get\nhealth care reform, and a frozen low top marginal tax rate\nall in one fell swoop.\n\nGerald\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 764, "properties": {"category": "comp.sys.mac.hardware", "text": "From: fhoward@hqsun7.us.oracle.com (Forrest Howard)\nSubject: Re: ** Need Advice ** (about Tech Works etc.)\nArticle-I.D.: oracle.1993Apr6.185706.15033\nOrganization: Oracle Corp\nLines: 34\nNntp-Posting-Host: hqsun7.us.oracle.com\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\n\nGregory Welch writes:\n>\n> ... I followed the instructions for\n>returning the old RAM, expecting to see a credit on my VISA within a few weeks.\n>\n>Well, months went by, and no credit.  After many calls (almost none of which were\n>ever returned - arghhh) I finally found someone who told me \"Why we never\n>received your old chips.\"  I then explained I the procedure that I had\n>followed to return them, to which the person replied \"You mean you sent them\n>US Mail?\" (which I had, per the original sales person's instructions.)  I was\n>told that they their loss of US mail shipments is not uncommon (come on) and that\n>I should have sent the stuff via FedEx, etc.  ...\n\n\nI also returned PB memory last summer for credit, and the sales person warned\nme not to use US mail.  I did (although I did insure the shipment), and \napparently Techworks got it.\n\nMy minor grip with techworks is that they have different price lists for\ndifferent people.  I ordered DUO memory, thinking I got their \"best\" price\nbecause of my employeer.  I subsequently found out that Apple was offering\ndevelopers memory for less than techworks charged, called up to complain,\nand was told I should have said I was an apple developer and they credited\nmy card for about 16% of the purchase price.   I like techworks quality\nand installation instructions (and they include powerbook tools), but \nfor out-of-CA purchases (no sales tax) chip merchant seems to be a bit less.\n\n \n-- \nForrest Howard\nOracle Corporation\n500 Oracle Parkway\nBox 65414\nRedwood Shores, CA 94065\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 765, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: tapscott@adoc.xerox.com (Peter Tapscott)\nSubject: For Sale: Harvard Graphics for Windows\nKeywords: Harvard Graphics, sale\nOrganization: Xerox PARC\nDistribution: us\nLines: 17\n\n\nFor Sale:\n\tBrand new, shrinkwrapped\n\n\tHARVARD GRAPHICS FOR WINDOWS\n\n\tList Price: $500\n\tCheapest pince in Computer Shopper (mail order): $315\n\tMy Price: $250\n\nThis is really a slick package, but I won it in a bike race so I\ncan't return it for credit. My dilemma is your fire sale.\n\n-- \n** Peter Tapscott, Xerox - Palo Alto Research Center\n** Internet: tapscott.adoc@xerox.com    XNS Net: Tapscott:PARC:Xerox\n** 415 813-6885\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 766, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Is OT Valid????\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 31\n\nPeir-Yuan Yeh asks:\n\n>I wonder if the OT is not exactly like Jewish history.  Are they the\nsame >or part of them are the same?  How about Torah? Are the first five\nbooks >of OT as the same as Torah?????\n\nYes, yes, and yes.  Jewish history as recorded in the Old Testament and\nas shown by archaeology are the same.  Kings, revivals, Temples, and all.\n\nThe Torah, as far as I know, is the five books of Moses.  Then come the\nProphets (all the Prophets, plus Joshua, Judges, 1&2 Samuel, 1&2 Kings)\nand the Writings (Psalms, Proverbs, Lamentations, Ruth, Esther, Ezra,\nNehemiah, Ecclesiates, Song of Songs, 1&2 Chronicles, Job).\n\nAnd the veracity of Isaiah, which you quoted to your Moslem friend is\nquite well known.  A complete manuscript exists that dates back to past\n200 BC, and is kept in a Museum in Israel.  It was found among the Dead\nSea Scrolls, which greatly enhanced our knowledge of the veracity of the\nOld Testament, as they date back to around the time of Christ, whereas\nbefore, the oldest complete manuscript in Hebrew was from around 900 AD.\n\nYour Moslem friend is sorely mistaken, but understandably so.  If Jesus\nwas crucified, and atoned for our sins, he must have been God, for only\nthe death of God could atone for the sins of all humanity.  And as\nIsaiah predicts, the messiah will be called \"the mighty God.\"  And if he\nwas God, then he must have rose, for as St. Paul wrote, it was not\npossible that death could hold him.  And if Jesus rose from the dead,\nyour Moslem friend would have little reason to be a Moslem.  Which is\nwhy he denies the authenticity of the Old Testament.\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 767, "properties": {"category": "talk.politics.misc", "text": "From: jfh@rpp386 (John F. Haugh II)\nSubject: Re: high speed rail is bad\nReply-To: jfh@rpp386.cactus.org (John F. Haugh II)\nOrganization: River Parishes Programming, Austin TX\nDistribution: tx\nLines: 14\n\nIn article <1993Apr13.210503.11099@pony.Ingres.COM> garrett@Ingres.COM (THE SKY ALREADY FELL. NOW WHAT?) writes:\n>I didn't see your post so I can't comment on it. My $.02 on high\n>speed rail is, I like it. I like it alot. It would be too bad to\n>see it tainted by corruption. that's all.\n\nThe speed limit on commuter tracks in the northeast is 120MPH.  We\nalready have something that resembles high speed rail in this\ncountry and it requires massive government subsidies.  We don't need\nanother government boondoggle.\n-- \nJohn F. Haugh II                  [ PGP 2.1 ] !'s: ...!cs.utexas.edu!rpp386!jfh\nMa Bell: (512) 251-2151           [ DoF #17 ]        @'s: jfh@rpp386.cactus.org\n  Look up \"Ponzi Scheme\" in a good dictionary - it will have a picture of Joe\n  Liberal Handout right next to it.  Stop federal spending.  Cut the deficit.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 768, "properties": {"category": "comp.sys.mac.hardware", "text": "From: push@media.mit.edu (Pushpinder Singh)\nSubject: re: Centris 610 Video Problem - I'm having it also!\nOrganization: M.I.T. Media Laboratory\nDistribution: comp\nLines: 27\n\n> When the computer is set for 256 colors and certain operations are done,\n> particularly vertical scrolling through a window, horizontal white lines\n> appear on the monitor (which generally but not always spare open\n> windows).  These lines accummulate as the operation is continued.  If a\n> window is moved over the involved area of the screen and then moved away\n> the line disappear from that area of the screen.  This problem is not\n> observed if the monitor is configured for 16 colors or a 14 inch Apple\n> monitor with 256 colors is used. \n> \n> I suspect a bad video RAM chip but cannot be certain.  The problem has\n> been apparent since day 1 but has gotten worse.\n\nI'm having exactly the same problem.  Again, it's fine when I switch to 16\ncolors or a smaller monitor.  My configuration is:\n\nModel: Centris 610 with 4 MB/80 HD, 512 VRAM, no cards\nMonitor: MAG MX15F with 16\" monitor adaptor (for resolution of 832*624)\n\nI just discovered the problem a little while ago after plugging in my\nnew MAG monitor.  It seems to appear either when scrolling through a\nwindow or when using Alpha or Word and I enter <return>.\n\nMy guess is bad VRAMs as well.  I really hope it isn't a design flaw.  Is\nanyone at Apple listening?\n\nPushpinder Singh\npush@media.mit.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 769, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bkph@kauai.ai.mit.edu (Berthold K.P. Horn)\nSubject: Re: ATM\nArticle-I.D.: life.1r6m6hINNg6b\nOrganization: MIT Artificial Intelligence Lab\nLines: 29\nNNTP-Posting-Host: kauai.ai.mit.edu\nIn-reply-to: downs@helios.nevada.edu's message of Wed, 21 Apr 1993 20:20:28 GMT\n\n\nIn article <downs.220.735423628@helios.nevada.edu> downs@helios.nevada.edu (Lamont Downs) writes:\n\n   >>So good that there isn't any diff whether or not ATManager is turned\n   >>on or not. Is it worth it to run ATM at all? Especially with these\n   >>better printer technologies ... and TT?\n   >\n   >There are some fonts that are only available as PS fonts.  If you\n   >have a PS font that you want to use, use ATM.  Otherwise, it is\n   >a waste of system resources.\n   >\n\n   -----Or, if you need to use a service bureau and they're only set up to use\n   Type 1 fonts. From what I've heard (pure hearsay) the results of outputting\n   TT fonts as Type 1 is _not_ as good as using high-quality Type 1 fonts in\n   the first place.\n\nUnless you `print' to file with the correct resolution set for the\nfinal output device (image setter).  A problem with TT fonts in Windows\nis that they do get converted to T1 format OK, and the hinting is even used\nwhile this is done, but the resulting T1 fonts are NOT hinted.  The result\nis that they WILL work fine on a device of the resolution assumed by the\nprinter driver when the PS file is generated, but they will not look\ngood when printed at a different resolution.  \n\nSo when you print to an attached PS printer, with the PS driver set up for\nthis printer results, may be quite good.  But if you take a PS file made for\nthat printer and run it on a device of different resolution (such as an\nimage setter), then the results may not be so good.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 770, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: Cookamunga Tourist Bureau\nLines: 25\n\nIn article <1993Apr15.202729.6649@organpipe.uug.arizona.edu>,\nbrian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615) wrote:\n> Jesus gives more reasons in John 16:7.  But one obvious reason\n> why Jesus died, (and as with everything else, it has nothing do with\n> his punishment) was that he could rise to life again--so that\n> we would \"stop doubting and believe\" (John 21:27).  The fact\n> that Jesus rose from the dead is my hope that I too will rise\n> from the dead.  It is an obvious point.  Do not overlook it.\n> Without this obvious point, I would have no hope\n> and my faith would be vanity.\n\nGlad to hear this, just a note, Osiris, Mithras and many other\ncult gods resurrected as well, so there's a good chance for all of\nus to maybe end up in a virtual reality simulator, and live forever,\nhurrah!\n\nSorry, this was a joke, some sort of one anyway. I'm the first\nthat connected Osiris with a virtual reality personality database.\nTime to write a book.\n\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 771, "properties": {"category": "misc.forsale", "text": "From: kayd@prism.CS.ORST.EDU (Kayd)\nSubject: Texas Star DX350 Linear Amplifier or Tornado 100 Linear $150/$100\nKeywords: 10m linear amplifier watts HF\nArticle-I.D.: flop.1qshlgINNb3n\nDistribution: usa\nOrganization: Oregon State University, Computer Science Dept.\nLines: 16\nNNTP-Posting-Host: prism.cs.orst.edu\n\nLooking for an amateur radio operator that needs a variable power linear\namplifier for 2-30MHz.  Looks and works like new.  Runs off 12v for mobile\nuse.  Input: 5-10 watts  Output: ~175 watts AM, ~350 watts PEP SSB.\nI need $150 out of it.\n\nIf that's too much, I also have a Tornado 100 that takes 5w in and\n100/250w out for $100.\n\nReply with your callsign, address and phone number for verification of license.\n\nPrices do NOT include shipping/packaging.\n\nDarrek Kay\nKayd@Prism.cs.orst.edu\n(503)737-9410\nKB7RVD\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 772, "properties": {"category": "sci.med", "text": "From: fulk@cs.rochester.edu (Mark Fulk)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: University of Rochester\n\nIn article <C5JE94.KrL@unx.sas.com> sasghm@theseus.unx.sas.com (Gary Merrill) writes:\n>\n>In article <1993Apr15.161112.21772@cs.rochester.edu>, fulk@cs.rochester.edu (Mark Fulk) writes:\n>\n>|> I don't think \"extra-scientific\" is a very useful phrase in a discussion\n>|> of the boundaries of science, except as a proposed definiens.\n>|> Extra-rational\n>|> is a better phrase.  In fact, there are quite a number of well-known cases\n>|> of extra-rational considerations driving science in a useful direction.\n>\n>Yeah, but the problem with holding up the \"extra-rational\" examples as\n>exemplars, or as refutations of well founded methodology, is that you\n>run smack up against such unuseful directions as Lysenko.  Such \"extra-\n>rational\" cases are curiosities -- not guides to methodology.\n\nAs has been noted before, there is the distinction between _motivation_\nand _method_.  No experimental result should be accepted unless it is\ndescribed in sufficient detail to be replicated, and the replications\ndo indeed reproduce the result.  No theoretical argument should be\naccepted unless it is presented in sufficient detail to be followed, and\nreasonable, knowlegeable, people agree with the force of the logic.\n\nBut people try experiments, and pursue arguments, for all sorts of crazy\nreasons.  Irrational motivations are not just curiousities; they are a\nlarge part of the history of science.\n\nThere are a couple of negative points to make here:\n\n1) A theory of qi could, conceivably, become accepted without direct\nverification of the existence of qi.  For example, quarks are an accepted\npart of the standard model of physics, with no direct verification.  What\nwould be needed would be a theory, based on qi, that predicted medical\nreality better than the alternatives.  The central theoretical claim could\nlie forever beyond experiment, as long as there was a sufficient body of\nexperimental data that the qi theory predicted better than any other.\n\n(I wouldn't hold my breath waiting for the triumph of qi, though.\nI don't think that there is even a coherent theory based on it, much less\na theory that explains anything at all better than modern biology.  And it\nis hard to imagine a qi theory that would not predict some way of rather\ndirectly verifying the existence of qi.)\n\n2) Science has not historically progressed in any sort of rational\nexperiment-data-theory sequence.  Most experiments are carried out, and\ninterpreted, in pre-existing theoretical frameworks.  The theoretical\ncontroversies of the day determine which experiments get done.  Overall,\nthere is a huge messy affair of personal jealousies, crazy motivations,\npetty hatreds, and the like that determines which experiments, and which\ncomputations, get done.  What keeps it going forward is the critical\nfunction of science: results don't count unless they can be replicated.\n\nThe whole system is a sort of mechanism for generate-and-test.  The generate\npart can be totally irrational, as long as the test part works properly.\n\nPasteur could believe whatever he liked about chemical activity and crystals;\nbut even Mitscherlich had to agree that racemic acid crystals were handed;\nthat when you separate them by handedness, you get two chemicals that rotate\npolarized light in opposite directions; and the right-rotating version was\nindistinguishable from tartaric acid.  Pasteur's irrational motivation had\nled to a replicable, and important, result.\n\nThis is where Lysenko, creationists, etc. fail.  They have usually not\neven produced coherent theories that predict much of anything.  When their\ntheories do predict, and are contradicted by experiment, they do not\nconcede the point and modify their theories; rather they try to suppress\nthe results (Lysenko) or try to divert attention to other evidence they\nthink supports their position (creationists).\n-- \nMark A. Fulk\t\t\tUniversity of Rochester\nComputer Science Department\tfulk@cs.rochester.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 773, "properties": {"category": "misc.forsale", "text": "From: mmchugh@andy.bgsu.edu (michael mchugh)\nSubject: 45 rpm Singles for Sale (Complete List)\nKeywords: Beatles Rolling Stones Pink Floyd Starr Lennon Talking Heads Ramons\nOrganization: Bowling Green State University B.G., Oh.\nLines: 46\n\n\nI have the following 45 rpm singles for sale. Most are collectable 7-inch \nrecords with picture sleeves. Price does not include postage which is $1.21 \nfor the first record, $1.69 for two, etc.\n\n\nBeach Boys|Barbara Ann (Capitol Picture Sleeve)|$10|45\nBeach Boys|Califonia Girls (Capitol Picture Sleeve)|$15|45\nBeach Boys|Fun, Fun, Fun (Capitol Picture Sleeve)|$10|45\nBeach Boys|Little Girl I Once Knew (Capitol Picture Sleeve)|$10|45\nBeach Boys|Please Let Me Wonder (Capitol Picture Sleeve)|$10|45\nBeach Boys|Rock n Roll to the Rescue (Capitol Promo/Picture Sleeve)|$15|45\nBeach Boys|When I Grow Up to Be a Man (Capitol Picture Sleeve)|$10|45\nBeatles|Im Happy Just to Dance with You (Capitol Picture Sleeve)|$10|45\nDoctor & the Medics|Burn (I.R.S. Promo/Picture Sleeve)|$5|45\nGeneral Public|Too Much or Nothing (I.R.S. Promo/Picture Sleeve)|$5|45\nGo Gos|Our Lips are Sealed (I.R.S. Picture Sleeve)|$5|45\nLennon, John|Instant Karma! (We All Shine On) (Apple Picture Sleeve)|$15|$45\nLennon, John|Mind Games (Apple Picture Sleeve)|$10|$45\nMadonna|Open Your Heart (Sire Promo)|$5|45\nMcCartney, Paul|Coming Up (Columbia. Picture Sleeve)|$10|45\nMcCartney, Paul|Mull of Kintyre (Capitol. Picture Sleeve)|$10|45\nMcCartney, Paul|Stranglehold (Capitol Promo/Picture Sleeve)|$5|45\nMcCartney, Paul|Wonderful Christmastime (Columbia. Picture Sleeve)|$10|45\nMercury, Freddie|I Was Born to Love You (Columbia Promo/Picture Sleeve)|$5|45\nPink Floyd|Learning to Fly (Columbia Promo/Picture Sleeve)|$5|45\nQueen|Kind of Magic (Capitol Promo/Picture Sleeve)|$5|45\nRamones|Sheena is a Punk Rocker (Sire Promo/Picture Sleeve)|$5|45\nRolling Stones|19th Nervous Brakdown (London Picture Sleeve)|$10|45\nRolling Stones|Jumpin Jack Flash (London Picture Sleeve)|$10|45\nRolling Stones|Mothers Little Helper (London Picture Sleeve)|$10|45\nRolling Stones|Paint It, Black (London Picture Sleeve)|$10|45\nStarr, Ringo|Photograph (Apple Picture Sleeve)|$15|$45\nStarr, Ringo|Youre Sixteen (Apple Picture Sleeve)|$15|$45\nTalking Heads|Road to Nowhere (Sire Promo/Picture Sleeve)|$5|45\nWaters, Roger|Sunset Strip (Columbia Promo/Picture Sleeve)|$10|45\nWaters, Roger|Sunset Strip (Columiba Promo)|$5\nWaters, Roger|Who Needs Information (Columiba Promo)|%10|45\n\nIf you are interested, please contact:\n\nMichael McHugh\nmmchugh@andy.bgsu.edu\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 774, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Boston University Physics Department\nLines: 46\n\nIn article <1qla0g$afp@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>In article <115565@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n\n>|> >I hope an Islamic Bank is something other than BCCI, which\n>|> >ripped off so many small depositors among the Muslim\n>|> >community in the Uk and elsewhere.\n\n>|> Grow up, childish propagandist.\n\n>Gregg, I'm really sorry if having it pointed out that in practice\n>things aren't quite the wonderful utopia you folks seem to claim\n>them to be upsets you..\n\nYou have done no such thing.\n\n\n>BBCI was an example of an Islamically owned and operated bank -\n>what will someone bet me they weren't \"real\" Islamic owners and\n>operators?\n\nAn Islamic bank is a bank which operates according to the rules\nof Islam in regard to banking. This is done explicitly by the\nbank. This was not the case with BCCI.\n\n>And why did these naive depositors put their life savings into\n>BCCI rather than the nasty interest-motivated western bank down\n>the street?   \n\nThis is crap. BCCI was motivated by the same motives as other\ninternational banks, with perhaps an emphasis on dealing with\noutlaws and the intelligence services of various governments.\n\n>So please don't try to con us into thinking that it will all \n>work out right next time.\n\nBack to childish propaganda again. You really ought to get a life\nrather than wasting bandwith on such empty typing. There are thousands\nof Islamic banks operating throughout the world which no-one ever hears\nabout. If you want to talk about corrupted banks we can talk about\nall the people who've been robbed by American banks. \n\n\nGregg\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 775, "properties": {"category": "comp.windows.x", "text": "From: earle@isolar.Tujunga.CA.US (Greg Earle)\nSubject: Re: Colormaps and Window Managers\nOrganization: Personal Usenet site, Tujunga, CA USA\nLines: 27\nDistribution: world\nNNTP-Posting-Host: isolar.tujunga.ca.us\nKeywords: twm  tvtwm  InstallWindowColormaps\n\nIn article <1993Apr15.155255.27034@thunder.mcrcim.mcgill.edu> mouse@thunder.mcrcim.mcgill.edu (der Mouse) writes:\n>In article <C5DuHC.71p.1@cs.cmu.edu>, das+@cs.cmu.edu (David Simon) writes:\n>\n>>Can some one please explain to me why the following piece of code\n>>causes twm (or tvtwm) to dump core [...]\n>\n>>In particular, I am interested in knowing whether this behavior is\n>>caused by a bug in my reasoning, or if it is a bug in twm.\n>\n>If *anything* a client does causes twm to dump core, it's a bug in twm.\n>Window managers should never *ever* crash.\n\nWould if only it were true ...\n\nIf only MIT would fix the !@&$^*@ twm \"InstallWindowColormaps()\" crash bug\nonce and for all, then I could say that I've (almost) unable to crash either\n\"twm\" or \"tvtwm\", which would be a remarkable feat - and most desirable to\nboot.  I mean, this bug has only been reported, oh, a zillion times by now ...\n\nNow *servers*, on the other hand ... (want to crash an OpenWindows 3.0 \"xnews\"\nserver at will?  Just do an 'xbiff -xrm \"XBiff*shapeWindow: on\"'.  Blammo.)\n\n-- \n\t- Greg Earle\n\t  Phone: (818) 353-8695\t\tFAX: (818) 353-1877\n\t  Internet: earle@isolar.Tujunga.CA.US\n\t  UUCP: isolar!earle@elroy.JPL.NASA.GOV a.k.a. ...!elroy!isolar!earle\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 776, "properties": {"category": "rec.motorcycles", "text": "From: manes@magpie.linknet.com (Steve Manes)\nSubject: Re: Oops! Oh no!\nOrganization: Manes and Associates, NYC\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 53\n\nWm. L. Ranck (ranck@joesbar.cc.vt.edu) wrote:\n:    I hate to admit this, and I'm still mentally kicking myself for it.\n: I rode the brand new K75RT home last Friday night.  100 miles in rain\n: and darkness.  No problems.  Got it home and put it on the center stand.\n:    The next day I pushed it off the center stand in preparation for going\n: over to a friend's house to pose.  You guessed it.  It got away from me\n: and landed on its right side.  \n:    Scratched the lower fairing, cracked the right mirror, and cracked the\n: upper fairing.  \n:    *DAMN* am I stupid!  It's going to cost me ~$200 to get the local\n: body shop to fix it.  And that is after I take the fairing off for them.\n: Still, that's probably cheaper than the mirror alone if I bought a \n: replacement from BMW.\n\nYou got off cheap.  My sister's ex-boyfriend was such an incessant pain\nin the ass about wanting to ride my bikes (no way, Jose) that I\nfinally took him to Lindner's BMW in New Canaan, CT last fall where\nI had seen a nice, used K100RS in perfect condition.  After telling\neveryone in the shop his Norton war stories from fifteen years ago,\nsigning the liability waiver, and getting his pre-flight, off he went...\n\nWell, not quite.  I walked out of a pizza shop up the street,\nfeeling good about myself (made my sister's boyfriend happy and got\nthe persistent wanker off my ass for good), heard the horrendous\nracket of an engine tortured to its red line and then a crash.  I\nsaw people running towards the obvious source of the disturbance...\nJeff laying under the BMW with the rear wheel spinning wildly and\nsomeone groping for the kill switch.  I stared in disbelief with\na slice hanging out of my mouth as Matty, the shop manager, slid\nup beside me and asked, \"Friend of yours, Steve?\".  \"Shit, Matty,\nit could have been worse.  That could been my FLHS!\"\n\nJeff hadn't made it 10 inches.  Witnesses said he lifted his feet\nbefore letting out the clutch and gravity got the best of him.\nJeff claimed that the clutch didn't engage.  Matty was quick.\nWhile Jeff was still stuttering in embarrassed shock he managed\nto snatch Jeff's credit card for a quick imprint and signature.  Twenty\nminutes later, when Jeff's color had paled to a flush, Matty\npresented him with an estimate of $580 for a busted right mirror\nand a hairline crack in the fairing.  That was for fixing the crack\nand masking the damaged area, not a new fairing.  Or he could buy the\nbike.\n\nI'm not sure what happened later as my sister split up with Jeff shortly\nafterwards (to hook up with another piece of work) except that Matty\ntold me he ran the charge through in December and that it went\nuncontested.\n\n\n-- \nStephen Manes\t\t\t\t\t   manes@magpie.linknet.com\nManes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 777, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jcl@bdrc.bd.com (John C. Lusth)\nSubject: Kentucky Fried CMOS beats Hardees!\nOrganization: Becton Dickinson Research Center; RTP, N.C.\nLines: 37\nNntp-Posting-Host: otis.bdrc.bd.com\n\nHey folks.\n\nIs it possible to short out your CMOS chip?  I think mine is fried.\nThese are the symptoms...\n\nI have to do the following to get my computer (a Gateway 486DX33)\nto boot...\n\n    Turn the power off\n\n    Disconnect the battery to the CMOS chip\n\n    Turn the power on\n\n    Get into setup upon getting the CMOS configuration error\n\n    Set up the CMOS\n\n    Exit the setup with [F10]  (phoenix bios)\n\n    Ignore the diskette 0 seek error and press [F1]\n\nThe computer then boots normally.  Both hard drives are accessible\nbut the floppy drives are not.\n\nI can back up over the network and such, but if I need to reboot,\nI have to turn off the computer and repeat the steps above.  If I\nsimply <Ctl>-<Alt>-<Del>, the computer hangs after the memory test.\n\nDoes this sound like the CMOS chip is fried?  Can I buy another one?\nWhere?\n\nThank you for your kind attention.\n\njohn\n-- \nJohn C. Lusth, Becton Dickinson Research Center, RTP, NC, USA  jcl@bdrc.bd.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 778, "properties": {"category": "comp.graphics", "text": "From: newmme@helios.tn.cornell.edu (Mark E. J. Newman)\nSubject: HELP: advice on what video system to buy\nKeywords: video, RS6000\nOrganization: Cornell University\nLines: 22\n\nIf this question is covered elsewhere, I apologize, but I need information\nfast.\n\nMy department has been given a large sum of money to install a video system\non our network of IBM RS6000 workstations.  This is not an area in which I\nhave any expertise, so I wonder if anyone out there can offer advice.  We\nwould like a system, based either on VHS or 8mm video which will allow one \nwrite video, frame by frame on tape for play-back in real time.  It's for\nvisualization of physics problems.  Can anyone tell me what hardware is\navailable which would work for our system?  Some support software is\nobviously needed too, but nothing particularly sophisticated, since the\nsoftware we actually use for the visualization is all already written.\n\nPlease email with replies, as I don't read this group.  Many thanks for your\nhelp.\n\nDr. M. E. J. Newman.\nDepartment of Physics,\nCornell University.\nnewmme@helios.tn.cornell.edu\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 779, "properties": {"category": "comp.graphics", "text": "From: nerone@ccwf.cc.utexas.edu (Michael Nerone)\nSubject: Re: Newsgroup Split\nOrganization: The University of Texas at Austin\nLines: 25\nDistribution: world\n\t<1993Apr19.193758.12091@unocal.com>\n\t<1quvdoINN3e7@srvr1.engin.umich.edu>\nNNTP-Posting-Host: sylvester.cc.utexas.edu\nIn-reply-to: tdawson@engin.umich.edu's message of 19 Apr 1993 19:43:52 GMT\n\nIn article <1quvdoINN3e7@srvr1.engin.umich.edu>, tdawson@engin.umich.edu (Chris Herringshaw) writes:\n\n  CH> Concerning the proposed newsgroup split, I personally am not in\n  CH> favor of doing this.  I learn an awful lot about all aspects of\n  CH> graphics by reading this group, from code to hardware to\n  CH> algorithms.  I just think making 5 different groups out of this\n  CH> is a wate, and will only result in a few posts a week per group.\n  CH> I kind of like the convenience of having one big forum for\n  CH> discussing all aspects of graphics.  Anyone else feel this way?\n  CH> Just curious.\n\nI must agree.  There is a dizzying number of c.s.amiga.* newsgroups\nalready.  In addition, there are very few issues which fall cleanly\ninto one of these categories.\n\nAlso, it is readily observable that the current spectrum of amiga\ngroups is already plagued with mega-crossposting; thus the group-split\nwould not, in all likelihood, bring about a more structured\nenvironment.\n\n--\n   /~~~~~~~~~~~~~~~~~~~\\/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\\n  /    Michael Nerone   \\\"I shall do so with my customary lack of tact; and\\\n /   Internet Address:   \\since you have asked for this, you will be obliged\\\n/nerone@ccwf.cc.utexas.edu\\to pardon it.\"-Sagredo, fictional char of Galileo.\\\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 780, "properties": {"category": "sci.crypt", "text": "From: jru@Comtech.com (Jimmy R. Upton)\nSubject: [Rubick] Shortest Path Algorithm - Status?\nOrganization: Comtech Labs Inc.\nLines: 25\n\nWhat is the expected run time (+/- a factor of 10) on a 486DX/50\nusing the best known algorithm for finding the shortest path\nsolution for Rubicks Cube from a randomly chosen position?\n\nI have read the FAQ and followed the recent discussion on Rubicks\nCube but I don't believe this question has been answered.  Notice\nthat I am specifically looking for an algorithm that finds the \nSHORTEST path, not just any solution.\n\nIt seems to me that the underlying assumption is that such a program\nwould need to do a brute force search though 10^20 positions.  That\nseems an unreasonably pessimistic assumption to me and I want to \nknow if someone has significantly improved on that.\n\nI have some ideas of my own on how to approach this problem, but\nbefore I spend to much time developing them I wanted to know if\nsomeone else has already done the work.\n\nADMINISTRIVIA:  I have posted this to three groups and attempted\nto set the followup to rec.puzzles which seems to me to be the\nplace to continue this discussion.  I will cross post a summary\nwhen and if it becomes appropriate.  Email replies gladly accepted.\n\nJimmy\njru@Comtech.com \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 781, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc.arc.nasa.gov (Curt Howland)\nSubject: Re: dogs\nOrganization: NASA Science Internet Project Office\nLines: 27\n\nIn article <MS-C.735160298.1147902781.mrc@Ikkoku-Kan.Panda.COM>, \nmrc@Ikkoku-Kan.Panda.COM (Mark Crispin) writes:\n|> I'm a biker and a dog-lover.\n\nNo wonder bikers have such a horrid reputation.\n\nGo find a HUMAN!\n\n\n|> The interesting thing about dogs is that body language communicates a great\n|> deal to them.  The more effective you are at communicating body language, the\n|> less you actually have to do. \n\nI agree completely. Unfortunately, the majority\nof my feelings, before I can even start to think\nrationally abhout the dog that is trying to kill\nme, are fear.\n\nWhen there's been a moment to set up, like you\nsaid \"a bit down the road\" or whatever, I've \nnever had a problem with dogs.\n\n---\nCurt Howland \"Ace\"       DoD#0663       EFF#569\nhowland@nsipo.nasa.gov            '82 V45 Sabre\n     Meddle not in the afairs of Wizards,\n for it makes them soggy and hard to re-light.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 782, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Space Research Spin Off\nOrganization: Express Access Online Communications USA\nLines: 30\nNNTP-Posting-Host: access.digex.net\n\nIn article <C50zxA.1K9@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:\n>In article <1ppm7j$ip@access.digex.net> prb@access.digex.com (Pat) writes:\n|>I thought the area rule was pioneered by Boeing.\n|>NASA guys developed the rule,  but no-one knew if it worked\n|>until Boeing built the hardware 727 and maybe the FB-111?????\n|\n|Nope.  The decisive triumph of the area rule was when Convair's YF-102 --\n|contractually commmitted to being a Mach 1.5 fighter and actually found\n|to be incapable of going supersonic in level flight -- was turned into\n|the area-ruled YF-102A which met the specs.  This was well before either\n|the 727 or the FB-111; the 102 flew in late 1953, and Convair spent most\n|of the first half of 1954 figuring out what went wrong and most of the\n|second half building the first 102A.\n|-- \n|All work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n|                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n\n\n\nGood thing i stuck in a couple of question marks up there.\n\nI seem to recall, somebody built  or at least proposed a wasp waisetd\nPassenger civil transport.  I thought it was a 727,  but maybe it\nwas a DC- 8,9???   Sure it had a funny passenger compartment,\nbut on the other hand  it seemed to save fuel.\n\nI thought Area rules  applied even before transonic speeds,  just\nnot as badly.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 783, "properties": {"category": "talk.politics.misc", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: National Sales Tax, The Movie\nOrganization: University of Toronto Chemistry Department\nLines: 27\n\nIn article <C5M2F9.GEB@news.iastate.edu> atboyken@iastate.edu (Aaron T Boyken) writes:\n>\n>If the VAT will be done in the same way that state and local sales \n>taxes are done, nothing will be on the sticker.  The cleark ringing\n>up your purchase (gum, gas, car, etc.) will hit a button to add \n>another 5% on top of the state and local sales taxes (and that won't\n>include any of the VAT from previous levels of sales).\n>\n\nThere is no need to include the VAT from previous levels because\nthe VAT is a \"difference\" tax...if the VAT is X%, than the amount\nof tax the government receives through all the levels is X% of\nthe purchase price of the end consumer.  At the intervening levels,\nonly the difference between the VAT paid out and the VAT received\nis remitted to the government.\n\n>Here's a question:  what if, instead of a true VAT, the federal \n>government imposed a sales tax of say 2-3%?  The tax would only\n>be paid on retail sales (thus not building up at all levels of\n>production costs that are just passed on to consumers anyway),\n>and would only go to reducing the deficit.  (I know that this \n>would never happen, but it seems a lot more palettable than\n>a VAT).\n\nA VAT is infinitely preferable to a retail sails tax...\n\nGerald\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.038+0000", "event": "documents", "entityId": 784, "properties": {"category": "talk.politics.mideast", "text": "From: rint69@uxa.cso.uiuc.edu (rintoul bradley e)\nSubject: Re: NEWS YOU MAY HAVE MISSED, Apr 20\nOrganization: University of Illinois at Urbana\nLines: 4\n\nWhy do you insist on reposting the entire original post?\nDon't waste bandwidth, please.  You know how picky us non-\nJews can be.  Ha Ha. :|\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 785, "properties": {"category": "rec.sport.baseball", "text": "From: lbr@holos0.uucp (Len Reed)\nSubject: Re: Players Rushed to Majors\nOrganization: Holos Software, Inc.\nLines: 15\n\nIn article <C5Hq3o.G4p@tss.com> hanson@tss.com (Hanson Loo) writes:\n>Didn't Bob Horner go straight from Arizona State Univ.\n>to the Atlanta Braves? I remember he had one great\n>month hitting dingers and then the next I heard\n>he was in Japan.\n\nA month?  Well, he did have a short career--compared to what one might\nhave expected for such a highly touted prospect--due to being injury prone,\noverweight, and having no work ethic.  But he certainly did not\nsuffer from being rushed to the bigs.\n-- \nLen Reed\nHolos Software, Inc.\nVoice: (404) 496-1358 ext. 16\nDomain: lbr@holos.atl.ga.usa   UUCP: lbr@holos0.UUCP\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 786, "properties": {"category": "comp.windows.x", "text": "From: steve@ecf.toronto.edu (Steve Kotsopoulos)\nSubject: X on Intel-based Unix Frequently Asked Questions [FAQ]\nSummary: X options for Intel-based Unix (SYSV/386, 386BSD, Linux, Mach)\nArticle-I.D.: ecf.C4rI7o.4Bw\nExpires: Sat, 1 May 1993 04:00:00 GMT\nReply-To: steve@ecf.toronto.edu\nOrganization: University of Toronto, Engineering Computing Facility\nLines: 530\n\nArchive-name: Intel-Unix-X-faq\nLast-modified: 30 Mar 1993\n\nNote: This is a major re-organization (and replacement) of my\n      \"Frequently Asked Questions About X386\" FAQ list.\n\nThis article includes answers to:\n\nI) What options do I have for X software on my Intel-based Unix system?\n\t1. Free options\n\t2. Commercial options\nII) What is XFree86 and where do I get it?\n\t3. What is XFree86?\n\t4. What OSs are supported?\n\t5. What video hardware is supported?\n\t6. What about accelerated boards?\n\t7. Why doesn't XFree86 support 16-color VGA modes?\n\t8. What other hardware or software requirements are there?\n\t9. Where can I get source for XFree86?\n\t10. Where can I get binaries for XFree86?\nIV) What general things should I know about running XFree86?\n\t11. Installation directories\n\t12. Configuration files\n\t13. Determining VGA dot clocks and monitor modes\n\t14. Rebuilding/reconfiguring the server from the link kit\nV) What OS-specific things should I know about running XFree86?\n\t15. SVR4\n\t16. SVR3\n\t17. 386BSD\n\t18. Linux\n\t19. Mach\nVI) What things should I know for building XFree86 from source?\nVII) Is there anything special about building clients with XFree86?\n\t20. BSD compatibility library\n\t21. ANSICCOPTIONS\n\nThis article does NOT include answers to general X questions, since these\nare already covered by the X FAQ that is regularly posted by David B. Lewis\n<faq%craft@uunet.uu.net>.\n\nIf you have anything to add or change on the FAQ just let me know.\n(especially if you had a problem that someone else was able to help you with)\nSend changes to steve@ecf.toronto.edu, please put 'FAQ' somewhere\nin the subject line so that my mail filter will put it in the correct\nmail folder.\n\nPlease DO NOT ask me questions that are not answered in the FAQ.  I do not\nhave time to respond to these individually.  Instead, post your question\nto the net, and send me the question and answer together when you get it.\n\nFrequently Asked Questions About X on Intel-based Unix (with answers)\n=====================================================================\n\nI) What options do I have for X software on my Intel-based Unix system?\n\n1. Free options\n\tThe BEST option is XFree86, which is an enhanced version of X386 1.2.\n\tAny other version of X386 will have slower performance, and will\n\tbe more difficult to compile.  Information on how to obtain XFree86\n\tis listed below.\n\n\tX386 is the port of the X11 server to System V/386 that was\n\tdone by Thomas Roell (roell@sgcs.com).\n\tIt supports a wide variety of SVGA boards.\n\tThere are 2 major free versions: X386 1.1 is based on X11R4,\n\tX386 1.2 is included in MIT's X11R5 distribution (ie. you\n\tdon't need to patch it into the MIT source any more).\n\tX386 1.3 is the current commercial offering from SGCS (see below).\n\n2. Commercial options\n\n     1) Metro Link\n\t2213 W. McNab Road\n\tPompano Beach, FL  33069\n\t(305) 970-7353\n\tFax: (305) 970-7351\n\temail: sales@metrolink.com\n\n\tSummary: OS:    QNX, SVR3, SVR4.[012], SCO, UnixWare, LynxOS, \n\t\t\tDESQview/X, Venix, ISC, Solaris, Pyramid, SunOS\n\t\t HW:    EGA, VGA, SVGA, TIGA, TARGA, 8514/A, Mach, \n\t\t\tS3, WD, Fujistu, Matrox, Microfield Graphics, R33020\n\t\t Other: Motif, OpenLook/XView, XIE Imaging Extension,\n\t\t\tXv Video Extension, Audio Drivers, Multi Media\n\n     2) SGCS (Snitily Graphics Consulting Services)\n\t894 Brookgrove Lane\n\tCupertino, CA  95014\n\t(800) 645-5501, (408) 255-9665\n\tFax: (408) 255-9740\n\temail: info@sgcs.com  or ...!mips!zok!info\n\n\tSummary: OS: SVR3.2, SVR4 \n\t\t HW: 8514/A (ATI Ultra), S3 (Diamond Stealth), SVGA\n\t\t Other: Motif, Dual-headed server\n\n     3) Consensys Corporation\n\t1301 Pat Booker Rd.\n\tUniversal City, TX 78148\n\tPhone: 1-800-388-1896\n\tFAX:   1-416-940-2903\n\temail: info@consensys.com\n\n\tSummary: OS: Consensys V4.2, Consensys' version of\n\t\t     Unix System V Release 4.2\n\t\t HW: X11R4 server support for VGA, SVGA\n\t\t Other: MoOLIT, Motif, X11R5 Clients\n\n     4) The Santa Cruz Operation, Inc.\n\tp.o. box 1900\n\tSanta Cruz, California 95061\n\t(408) 425 7222, (800) SCO UNIX,\n\tFAX: (408) 458 4227\n\temail: info@sco.com\n\n\tSummary: OS: ODT 1.1, ODT 2.0, SCO Unix 3.2v4\n\t\t HW: X11R4 server support for SVGA, 8514/A, S3, TMS340x0,\n\t\t     WD90C31, XGA2, assorted local bus (see SCO Hardware\n\t\t     Compatabilty Guide for actual card vendors).\n\t\t Other: Motif\t\n\n     5) Answer Software & Consulting\n\tp.o. box 14171\n\tColumbus, Ohio 43214\n\t614-263-XLAB\n\temail: sales@x4coher.com\n\n\tSummary: OS: Coherent 4.0.1r72 or greater\n\t\t HW: works with any VESA compliant video\n\n  NOTE: Other commercial vendors (including OS vendors describing\n\tbundled software) are welcome to submit summary information\n\tsummary information such as the above.\n\nII) What is XFree86 and where do I get it?\n\n3. What is XFree86?\n\n   XFree86 is an enhanced version of X386 1.2, which was distributed with\n   X11R5.  This release consists of many bug fixes, speed improvements, and\n   other enhancements.  Here are the highlights of the enhancements:\n\n    1) The SpeedUp package from Glenn Lai is an integral part of XFree86,\n       selectable at run-time via the Xconfig file.  Some SpeedUps require\n       an ET4000 based SVGA, and others require a virtual screen width of\n       1024.  The SpeedUps suitable to the configuration are selected by\n       default.  With a high-quality ET4000 board (VRAM), this can yield\n       up to 40% improvement of the xStones benchmark over X386 1.2.\n    2) The fX386 packages from Jim Tsillas are included as the default\n       operating mode if SpeedUp is not selected.  This mode is now\n       equivalent in performance to X386 1.1b (X11R4), and approximately\n       20% faster than X386 1.2.\n    3) Support for LOCALCONN, compile-time selectable for server, clients,\n       or both.  This support is for both SVR3.2 and SVR4.  For SVR4.0.4\n       with the 'Advanced Compatibility Package', local connections from\n       SCO XSight/ODT clients are supported.\n    4) Drivers for ATI and Trident TVGA8900C and TVGA9000 SVGA chipsets.\n       Refer to the files README.ati and README.trident for details about\n       the ATI and Trident drivers.\n    5) Support for compressed bitmap fonts has been added (Thomas Eberhardt's\n       code from the contrib directory on export.lcs.mit.edu).\n    6) Type1 Font code from MIT contrib tape has been included, and is\n       compile-time selectable.  There are contributed Type1 fonts in the\n       contrib directory on export.lcs.mit.edu.\n    7) New configuration method which allows the server's drivers and font\n       renderers to be reconfigured from both source and binary\n       distributions.\n    8) Integrated support for 386BSD, Mach, and Linux.\n    9) A monochrome version of the server which will run on generic VGA\n       cards is now included.\n\n   The following key features were added with the release of XFree86 1.2\n   (they were not in XFree86 1.1):\n\n    1) The monochrome server has been enhanced to do bank-switching of\n       available SVGA memory to allow virtual screens up to 1600x1200 \n       (see the X386(1) manual page for more information).\n    2) Support for the Hercules mono card has been added to the\n       monochrome server, and with it the ability to support a \"two\n       headed\" server - one VGA, and one Hercules.  So far this has only\n       been tested on SVR4 (it is also reported to work under Linux).\n    3) SVR3 shared libraries, tested under ISC SVR3 2.2 and 3.0.1.\n    4) Support for SVR4.2 (There are some special considerations to\n       consider, due to new USL bugs; see the README.SVR4 file for\n       more information.)\n    5) Support for PS/2 mice, and Logitech MouseMan/TrackMan (some \n       versions of these devices were not previously compatible).\n    6) A new tutorial on how to develop correct video card and monitor\n       timing data, written by Eric Raymond (derived from previous\n       documentation and a lot of experimentation).\n    7) Greatly improved support for international keyboards, including\n       implementation of the Compose key functionality found on many \n       vendor servers (see the X386keybd(1) manual page for more \n       information).\n    8) The accuracy with which the server detects SVGA pixel clocks has\n       been improved, and the timings are now stored at accuracies of\n       0.1 MHz.  Users may want to consider removing an existing Clocks\n       line from their Xconfig file and re-probing using the new server.\n    9) Many enhancements in error handling and parsing of the Xconfig\n       configuration file.  Error messages are much more informative\n       and intuitive, and more validation is done.  There are many new\n       options that can be enabled in the Xconfig file (see the X386(1) \n       manual page for more information on the format of this file).\n\n       Plus a number of other small things.  Refer to the CHANGELOG file\n       in the source distribution for full details.\n\n   Also included are a tutorial on monitor timing by Eric Raymond, and the\n   current X386 mode database and a sample xdm configuration by David Wexelblat.\n\n4. What OSs are supported?\n\n    XFree86 supports:\n\tSVR4.2: Consensys V4.2\n\tSVR4.0: Microport, Dell, Esix, ISC, AT&T, MST, Consensys, UHC\n\tSVR3: ISC 2.2 & 3.0, AT&T 2.2\n\tLinux, Mach 386, 386BSD 0.1\n\n\tBSD/386 is not supported, but it should work. The most active\n\tBSD/386 person is Greg Lehey <grog@lemis.de>.\n\n\tNote that Esix 3.2D and SCO are not supported yet,\n\tbut anyone should feel free to submit patches.\n\tIf you are interested in tackling this, send mail to\n\txfree86@physics.su.oz.au\n\n5. What video hardware is supported?\n\n   At this time, XFree86 1.2 supports the following SVGA chipsets:\n\n\tTseng ET4000\n\tTseng ET3000\n\tParadise PVGA1\n\tWestern Digital WD90C00, WD90C10, WD90C11 (these are supersets of\n\t\tthe PVGA1, and use its driver)\n\tGenoa GVGA\n\tTrident TVGA8900C, TVGA9000\n\tATI 18800, 28800\n\n\tAll of the above are supported in both 256 color and monochrome modes,\n\twith the exception of the ATI chipsets, which are only supported in\n\t256 color mode.\n\n\tThe monochrome server also supports generic VGA cards, using 64k of\n\tvideo memory in a single bank, and the Hercules card.  On the\n\tET3000, only 64k of video memory is supported for the monochrome\n\tserver, and the GVGA has not been tested with more than 64k.\n\n\tIt appears that some of the SVGA card manufacturers are going to\n\tnon-traditional mechanisms for selecting pixel-clock frequencies.  To\n\tavoid having to modify the server to accommodate these schemes XFree86\n\t1.2 adds support for using an external program to select the pixel\n\tclock.  This allows programs to be written as new mechanisms are\n\tdiscovered.  Refer to the README.clkprog file for information on how\n\tthese programs work, if you need to write one.  If you do develop such\n\ta program, the XFree86 team would be interested in including it with\n\tfuture XFree86 releases.\n\n\tIf you are purchasing new hardware for the purpose of using XFree86,\n\tit is suggested that you purchase an ET4000-based board such as the\n\tOrchid ProDesigner IIs.  Avoid recent Diamond boards; XFree86 will not\n\twork with them, because Diamond won't provide programming details.\n\tIn fact, the XFree86 project is actively not supporting new Diamond\n\tproducts, as long as such policies remain in effect.  Contributions\n\tof code will NOT be accepted (because of the potential liabilities).\n\tIf you would like to see this change, tell Diamond about it.\n\n\tSome people have asked if XFree86 would work with local bus or EISA\n\tvideo cards. Theoretically, the means of communication between the\n\tCPU and the video card is irrelevant to Xfree86 compatibility. It\n\tcould be ISA, EISA, or local bus.  What should matter is the chipset\n\ton the video card.  Unfortunately, the developers don't have a lot\n\tof access to EISA or VLB machines, so this is largely an untested\n\ttheory.  However, we have yet to see any reports of things not\n\tworking on one of these buses and we have several reports of Xfree86\n\tworking fine on them.\n\n6. What about accelerated boards?\n\n\tAt this time, there is no support in XFree86 for accelerated boards\n\tlike the S3, ATI Ultra (8514/A), TIGA, etc.  This support is available\n\tin commercial products from SGCS and MetroLink (for SVR3 and SVR4).\n\n\tAn S3 server is available for 386BSD and Linux.  Contact\n\t<hasty@netcom.com> for 386BSD or <jon@robots.ox.ac.uk> for Linux.\n\n\tA beta 8514/A server is available for Linux. Contact <martin@cs.unc.edu>\n\tor <jon@robots.ox.ac.uk>. Note: these servers are NOT part of XFree86.\n\n7. Why doesn't XFree86 support 16-color VGA modes?\n\n\tThe reason that this is not supported is the way VGA implements the\n\t16-color modes.  In 256-color modes, each byte of frame buffer memory\n\tcontains 1 pixel.  But the 16-color modes are implemented as bit-\n\tplanes.  Each byte of frame- buffer memory contains 1 bit from each\n\tof each of 8 pixels, and there are four such planes.  The MIT frame-\n\tbuffer code is not designed to deal with this.  If VGA handled\n\t16-color modes by packing 2 4-bit pixels into each byte, the MIT code\n\tcould be modified to support this (or it already may; I'm not sure).\n\tBut for the VGA way of doing things, a complete new frame-buffer\n\timplementation is required.  Some beta testers are looking into this,\n\tbut nothing is yet available from the project.\n\n8. What other hardware or software requirements are there?\n\n\tObviously, a supported SVGA board and OS are required.  To run\n\tX efficiently, 12-16MB of memory should be considered a minimum.\n\tThe various binary releases take 10-40MB of disk space, depending\n\ton the OS (e.g. whether or not it supports shared libraries).\n\tTo build from sources, at least 80MB of free disk space will\n\tbe required, although 120MB should be considered a comfortable \n\tlower bound.\n\n9. Where can I get source for XFree86?\n\n\tSource patches for the current version (1.2, based on X11R5 PL22\n\tfrom MIT), are available via anonymous FTP from:\n\t\texport.lcs.mit.edu (under /contrib/XFree86)\n\t\tftp.physics.su.oz.au (under /XFree86)\n\t\tftp.win.tue.nl (under /pub/XFree86)\n\t(For the rest of this FAQ, these 3 location will be called $FTP)\n\n\tRefer to the README file under the specified directory for information\n\ton which files you need to get to build your distribution.\n\n10. Where can I get binaries for XFree86?\n\n\tBinaries are available via anonymous FTP from:\n\t\tftp.physics.su.oz.au\t\t- SVR4 binaries\n\t\t\tunder /XFree86/SVR4\n\t\tftp.win.tue.nl\t\t\t- SVR4 binaries\n\t\t\tunder /pub/XFree86/SVR4\n\t\tferkel.ucsb.edu\t\t\t- SVR4 binaries\n\t\t\tunder /pub/SVR4/XFree86\n\t\tstasi.bradley.edu\t\t- SVR4 binaries\n\t\t\tunder /pub/XFree86/SVR4\n\t\tblancmange.ma.utexas.edu\t- SVR3 (ISC) binaries\n\t\t\tunder /pub/ISC\n\t\tftp.prz.tu-berlin.de            - SVR3 (ISC) binaries\n\t\t\tunder /pub/pc/isc/XFree86\n\t\ttsx-11.mit.edu\t\t\t- Linux binaries\n\t\t\tunder /pub/linux/packages/X11\n\t\tagate.berkeley.edu\t\t- 386BSD binaries\n\t\t\tunder /pub/386BSD/0.1-ports/XFree86\n\t\tftp.cs.uwm.edu\t\t\t- Mach binaries\n\t\t\tunder /i386\n\n\tEnsure that you are getting XFree86 1.2 - some of these sites may\n\tarchive older releases as well.  Each binary distribution will\n\tcontain a README file that describes what files you need to take\n\tfrom the archive, and which compile-time option selections were\n\tmade when building the distribution.\n\nIV) What general things should I know about running XFree86?\n\n11. Installation directories\n\n\tThe top-level installation directory is specified by the ProjectRoot\n\t(/usr/X386, by default) variable in config/site.def. Binaries, include\n\tfiles, and libraries are installed in $ProjectRoot/{bin,include,lib}.\n\n\tThis can be changed when rebuilding from sources, and can be modified\n\tvia symbolic links for those OSs that support them. This directory is\n\tnonstandard, and was chosen this way to allow XFree86 to be installed\n\talongside a commercial/vendor-supplied X implementation.\n\n12. Configuration files\n\n\tThe XFree86 server reads a configuration file (\"Xconfig\") on startup.\n\tThe search path, contents and syntax for this file are documented in\n\tthe server manpage, which should be consulted before asking questions.\n\n13. Determining VGA dot clocks and monitor modes\n\n\tDavid E Wexelblat (dwex@mtgzfs3.att.com) maintains a database of known\n\tclock settings for VGA cards and monitor settings.\n\tThe database is installed in /usr/X386/lib/X11/etc/modeDB.txt, and\n\tis in the source tree under mit/server/ddx/x386/etc. This database is\n\talso available from him (for the latest copy), and is kept on\n\texport.lcs.mit.edu in ~/contrib/X386.modeDB.Z, which is updated\n\toccasionally.  Obtain a copy of this database.  It just might have the\n\tsettings you need.  If you create new settings, please send them to\n\tDavid for inclusion in the database.\n\n\tIf this doesn't help you, the VideoModes.doc (by Eric Raymond) file \n\twith XFree86 contains tutorials on how to come up with these timings.\n\tIt may be helpful to start with settings that almost work, and use\n\tthis description to get them right.  When you do, send the information\n\tto David Wexelblat for inclusion in the database.\n\n\tNOTE: The old 'clock.exe' program is not supported any more, and\n\t      is completely unnecessary.  If you need to determine dot\n\t      clock values for a new board, remove the 'Clocks' line from\n\t      your Xconfig file (if present), and start the server.  The\n\t      server will probe for clocks itself and print them out.\n\t      You can use these values to put a 'Clocks' line into your\n\t      Xconfig file, which is not necessary, but will speed up\n\t      starting the server in the future.\n\n14. Rebuilding/reconfiguring the server from the link kit\n\n\tIf you have installed the server Binary Link Kit, it is possible to\n\treconfigure the drivers and font renderers in the server.  This is\n\tfully explained in the README file that is available with the link kit.\n\nV) What OS-specific things should I know about running XFree86?\n\n\tFirst of all, the server must be installed suid-root (mode 4755).\n\n15. SVR4\n\tWhy won't my xterm run properly?\n\n\tIf your kernel is not built with the consem module, you should define\n\tCONSEM=no in you environment. Otherwise xterm won't run.\n\tcsh users should use 'setenv CONSEM no'\n\n\tThe Esix console driver patch 403019 is known to cause keymapping\n\tproblems with XFree86.  It recommended that this patch not be\n\tinstalled.  Alternatively they keymap can be fixed with xmodmap.\n\n16. SVR3\n\n\tMake sure you look at $FTP/README.ISC, if that's what you are running.\n\n17. 386BSD\n\n\tMake sure you look at $FTP/README.386BSD.\n\n\tAlso, a separate 386BSD FAQ is maintained by Richard Murphey\n\t<Rich@Rice.edu>.  The latest version should be available in the\n\tfile XFree86-1.2-386BSD-FAQ at the following ftp sites:\n\n\t    agate.berkeley.edu:/pub/386BSD/0.1-ports/XFree86-1.2\n\t    wuarchive.wustl.edu:/mirrors4/386bsd/0.1-ports/XFree86-1.2\n\t    grasp1.univ-lyon1.fr:pub/386BSD/0.1-ports/XFree86-1.2\n\n18. Linux\n\n\tYou must be running Linux 0.97pl4 or greater, and have the 4.1 gcc\n\tjump libraries installed.\n\n\tMake sure the binaries X386, X386mono, xload and xterm are setuid root.\n\n\tIf your kernel doesn't have TCP support compiled in, you'll have to\n\trun the server as \"X -pn\". The default startup configuration assumes\n\tthat TCP is not available. If it is, change the two files\n\t/usr/X386/bin/startx and /usr/X386/lib/X11/xdm/Xservers, removing the\n\t-pn argument to X386.\n\n\tMake sure /dev/console is either a link to /dev/tty0 or has the major\n\tnumber 4, minor number 0. Also note that if /dev/console is not\n\towned by the user running X, then xconsole and xterm will not permit\n\tconsole output redirection. Xdm will properly change the owner, but\n\tstartx won't.\n\n\tWhen running xdm from rc.local, you will need to provide it with\n\ta tty, for example \"xdm < /dev/console &\".\n\n\tFor more detailed information, please read the file README present\n\twith the distribution on tsx-11.mit.edu.\n\n19. Mach\n\n\tMake sure you look at $FTP/README.Mach.\n\nVI) What things should I know for building XFree86 from source?\n\n\tThis section has been removed from the FAQ, since it is\n\tfully explained in $FTP/README and the OS-specific READMEs.\n\tPlease look at those files for information on building XFree86.\n\nVII) Is there anything special about building clients with XFree86?\n\n20. BSD compatibility library\n\n\tA lot of clients make use of BSD functions like bcopy(), etc.\n\tThe default configuration files are set up to link with libXbsd.a\n\twhich contains emulation for bcopy(), bzero(), bcmp(), ffs(), random(),\n\tseed(). A better way of providing the 'b' functions is to include\n\t<X11/Xfuncs.h> in source files that call them.  Xfuncs.h provides macro\n\tdefinitions for these in terms of the SYSV 'mem' functions.  If you are\n\tlinking with a vendor supplied library which calls some of these\n\tfunctions, then you should link with libXbsd.a\n\n21. ANSICCOPTIONS\n\n\tThis is something that was added to allow a developer to get rid of the\n\tANSI-ness defined in the default CCOPTIONS without having to rewrite\n\tthe entire CCOPTIONS line.  For example, with stock MIT, you'd see\n\tsomething like\n\t\tCCOPTIONS=\"-ansi -O2 -fwritable-strings\"\n\tand to get rid of the ANSI-ness, the developer would have to put\n\t\tCCOPTIONS=\"-O2 -fwritable-strings\"\n\tin his Imakefile.  With this change, you would see a default of\n\t\tANSICCOPTIONS=\"-ansi\"\n\t\tCCOPTIONS=\"-O2 -fwritable-strings\"\n\tand all the developer would have to put in the Imakefile is:\n\t\tANSICCOPTIONS=\n\tto get rid of the ANSI-ness (many X clients will die a horrible death\n\twith -ansi).  The effect is even more dramatic in practice, because\n\tCCOPTIONS is actually quite complex.  The other issue is that one must\n\tadd 'ANSICCOPTIONS=$(ANSICCOPTIONS)' to a PassCDebugFlags definition.\n\nXFree86 Contact Information\n\n    Ongoing development planning and support is coordinated by the XFree86\n    Core Team.  At this time the Core Team consists of:\n\n\tThe original \"gang of four\":\n\t\tDavid Dawes <dawes@physics.su.oz.au>\n\t\tGlenn Lai <glenn@cs.utexas.edu>\n\t\tJim Tsillas <jtsilla@damon.ccs.northeastern.edu>\n\t\tDavid Wexelblat <dwex@mtgzfs3.att.com>\n\n\tThose supporting non-SYSV operating systems:\n\t\tRobert Baron <Robert.Baron@ernst.mach.cs.cmu.edu> [Mach]\n\t\tRich Murphey <Rich@Rice.edu> [386BSD]\n\t\tOrest Zborowski <obz@kodak.com> [Linux]\n\n    e-mail sent to <xfree86@physics.su.oz.au> will reach all of the core team.\n\n\t--------------------------------------------------\n\nThanks to all the people who already sent me corrections or additions,\nespecially David Wexelblat (one of the major contributors of updates).\n-- \nSteve Kotsopoulos  P.Eng.           mail:   steve@ecf.toronto.edu\nSystems Analyst                     bitnet: steve@ecf.UTORONTO.BITNET\nEngineering Computing Facility      uucp:   uunet!utai!ecf!steve\nUniversity of Toronto               phone:  (416) 978-5898\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 787, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Too fast\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 108\n\nIn article <1qkon8$3re@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n\n[stuff about autobahn and safety of sho at speed deleted]\n>The Mustang is essentially the same deal as the SHO -- a big power\n\nThe Mustang is a much worse case of design irresponsibility than the\nSHO. \n>plant stuck in a mid-size sedan, with almost no other modifications.\n>I have real-life experience with the Mustang -- it handles like a\n>brick (except when you're invoking oversteer, of course, something I\n\nIts hard to predicatbaly drift a stock Mustang because\nof the suspension.\n\n>personally avoid doing on the highway) and stopping power is\n>inadequate even from 80mph.  Lots of accelleration -- but the rest of\n>the car is not up to par.\n\nYes. When i think Mustang, I think school-bus +  F16 motor. In\nmy mind the Mustang should be fitted with a speed limiter at 80-90\nor so. It just isn't safe, check out your local junkyard, Mustangs\noutnumber other cars by a proportion way in excess of sales in\njunkyards.\n\nI find it astonishing the CU or somesuchlike has not jumped on the\nMustang for poor brakes in relation to power. Ford should at least\nstandardize on the SVO rear brakes for all 5.0's.\n\n\n\n>\n>I picked the Porsche example because they are designed with speed in\n>mind.  It didn't have to be the 911 -- it could have been the much\n>cheaper 944 or one of several Mercedes or Audi models.  All of these\n>cars are fairly expensive -- but so are the parts that make them\n>drivable at high speed.  This should be elementary.\n>\n>There are a few things to keep in mind about Europe, since you brought\n>it up.  My Autobahn knowledge is admittedly second-hand, but I believe\n>the following to be true:\n>\n>1. Drivers are much better disciplined in Europe than they are here.\n\nTrue of Northern Europe, latin countries are something else.\n\n>2. The roads comprising the Autobahn are much better designed than\nKindof true. remember they were build by adolf in the '30's.\n\n>   they are here, and usually include animal fences.  This makes them\n>   far more predictable than most US highways.\n\nYes.\n\n>3. Not all of Europe is the Autobahn.  Most places in Europe have\n\n\"Autobahn\" is the german word for freeway. Other countries have\ndifferent names for loose equivalents; autostrada, autoroute, motorway\netc.\n\n>   speed limits that aren't out-of-line with what we used to have in\n>   the US -- if my friends weren't lying to me they're typically not\n>   much higher than 120km/h.\n\nEurope did seem on the brink of a 130kmh limit. It hasn't passed as\nfar as I know. typical speeds in western europe are much higher than\nthe US. Law enforcement is negligible in my experience (comapred\nto the US) as there is no revenue enhancement motivation. The things\nyou really notice are the higher speed differentials, and the more\nprofessional attitude to driving. You just never see two cars\nrunning parallel at 55.1 mph oblivious to all around them.\n\n>\n>I strongly suspect you won't find a lot of Rabbit owners doing 120mph\n>(nearly 200km/h) on the Autobahn, but I could be wrong.  Some people\n\nYou're wrong. GTI's  go this fast. Just kind of noisy, not the ideal\n\nautobahn car. A lot of times you see cars being driven with the drivers\nfoot on the floor. How do I know? - when you're not making any ground\non the identical car in front of you!\n\n>have no respect for their own lives.\n\nIf something happens at 130-150 you're dead, but the same goes for much\nover 35. Driving at high speed forces you to concentrate. I feel much\nsafer driving 130+ on the autobahn than 60-80 in typical US traffic\nbecause most people seem to be awake. I've never seen any driver reading\na book on an autobahn, I see it all too often in the US.\n\nCraig\n\nIt just doesn't *seem* fast after 30 minutes or so of aclimation. everybody\ndrives that fast, no big deal. \n\nCraig\n>\n>>>You certainly haven't convinced me.\n>\n>>\tOf course not.  \"Speeding-is-bad.  Speeding-is-illegal. \n>>I-will-not-speed.  I-love-Big-Brother.\"  You had your mind made up\n>>already.\n>\n>If you think so you sure don't pay attention to my postings.\n>\n>jim frost\n>jimf@centerline.com\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 788, "properties": {"category": "comp.windows.x", "text": "From: mouse@thunder.mcrcim.mcgill.edu (der Mouse)\nSubject: Re: X-server multi screen\nOrganization: McGill Research Centre for Intelligent Machines\nLines: 42\n\nIn article <1qlop6$sgp@sun3.eeam.elin.co.at>, rainer@sun3.eeam.elin.co.at (Rainer Hochreiter) writes:\n\n> I've seen a lot of different terms, which seem to mean the same\n> thing.  Who can give an exact definition what these terms mean:\n\n> \t-) multi-screen\n> \t-) multi-headed\n> \t-) multi-display\n> \t-) X-Server zaphod mode\n\nAs applied to servers, the first three are fuzzy terms.  \"multi-headed\"\ntends to be used for any system with multiple monitors, sometimes even\nmultiple screens even if they're multiplexed onto the same monitor (eg,\na Sun with a cg4 display).  \"multi-screen\" and \"multi-display\" would,\nif taken strictly, mean different things, but since the strict meaning\nof \"multi-display\" would refer to a system with multiple keyboards and\npointers, when it's used it probably refers to the same thing\n\"multi-screen\" would: a system that provides multiple Screens.\n\n\"zaphod\" is a term applied to the way the MIT server switches the\npointer from one screen to another by sliding it off the side of the\nscreen.\n\n> Is there a limit how many screens/displays a single server can handle\n> (in an articel a read something about an upper limit of 12) ?\n\nThere is a protocol limitation that restricts a given Display to at\nmost 255 Screens.  I know of no server that handles multiple Displays\non a single invocation, unless possibly my kludges to the R4 server can\nbe looked upon as such; on a TCP-based system there is necessarily a\nlimit of 65535 Displays per machine, but this is not a limitation\ninherent to X.\n\nWhat you read was most likely talking about a limit in some particular\nimplementation (probably the MIT one).  If it claimed there was a limit\nof 12 inherent to X, the author of the article had no business writing\nabout X.\n\n\t\t\t\t\tder Mouse\n\n\t\t\t\tmouse@mcrcim.mcgill.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 789, "properties": {"category": "soc.religion.christian", "text": "From: muddmj@wkuvx1.bitnet\nSubject: Re: The doctrine of Original Sin\nOrganization: Western Kentucky University, Bowling Green, KY\nLines: 27\n\n> But, haven't \"all sinned, and come short of the glory\n> of God\" (Romans 3:23)?\n> Those that cite this scripture to claim that even\n> babes require baptism neglect that \"sin is not imputed\n> when there is no law\" (Romans 5:13).\n>\n> Therefore, until someone is capable of comprehending\n> God's laws they are not accountable for living them.\n> They are in the book of life and are not removed until\n> they can make a conscious decision to disobey God.\n>\n> A IDLER\n\nIf babies are not supposed to be baptised then why doesn't the Bible\never say so.  It never comes right and says \"Only people that know\nright from wrong or who are taught can be baptised.\"\n        What Christ did say was :\n\n        \"I solemly assure you, NO ONE can enter God's kingdom without\n         being born of water and Spirit ... Do not be surprised that I\n         tell you you must ALL be begotten from above.\"\n\nCould this be because everyone is born with original sin?\n\n\n\nMike\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 790, "properties": {"category": "rec.autos", "text": "From: zorro@picasso.ocis.temple.edu (John Grabowski)\nSubject: Re: Taurus/Sable rotor recall\nOrganization: Temple University\nLines: 23\nNntp-Posting-Host: picasso.ocis.temple.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nAntonio L. Balsamo (Save the wails) (balsamo@stargl.enet.dec.com) wrote:\n\n: From: OPDBS@vm.cc.latech.edu\n: Subject: Taurus/Sable rotor recall\n\n:        My '92 Taurus GL with only 26k on the clock also has rotor warp.\n:    Apparently they HAVEN'T fixed the problem yet.  But try convincing the Ford\n:    service person to fix it for free...Right!!!\n\n:    Tony\n\n\nGads, I have heard so many horror stories with Taurus and Sable cars!  I thought\nthese were premium American automobiles.  The way they sell, you'd think so.\nIs Ford really no better than in the late '70s when it was turning out tin\ncans like the Granada and the Fairmount?  Which would you get, a Taurus or \na Camry or Accord?\n\n\nJohn\nzorro@picasso.ocis.temple.edu\nzorro@astro.ocis.temple.edu\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 791, "properties": {"category": "alt.atheism", "text": "From: nancyo@shnext15.ucslabs.sfu.ca (Nancy Patricia O'Connor)\nSubject: Re: THE POPE IS JEWISH!\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 39\n\nIn article <1993Apr15.180024.19308@wam.umd.edu>  \nwest@next02cville.wam.umd.edu (Stilgar) writes:\n\n+Last night, while watching the 2a.m. rebroadcast of Jerry Springer (a\n+talk show) I heard this Jewel of a thought from a 12 year old racist. \n+The focus of this show was on these kids and their hatred for the Jewish\n+religion, and why.  \n\n[some stuff deleted]\n\n+Interesting (and scary) no?  They went on to say how the Jews had \n+killed their god, and how in the end of time that all the races would\n+go to their homelands (of course, they would remain in America, which\n+is New Jeruselem, as it says in Gen 2??? (what another kid said) but\n+the rest of the races would go home) and then the great battle or plague\n+or whatever Revel. says would happen, and the jews would be killed.\n+\n+The most interesting thing about this was that my roomate is Catholic, \n+and had the KJV of the Bible on his desk.  He immediatly opened it up\n+and began to search for the quoted passages (Gen, Rev, and John) to \n+look for himself, and couldn't find what they said they saw.  I don't\n+know\n\nI saw this show a while back, and when I heard these kids\nquote the Bible to justify their racist claims, I looked up\nthat quote about Jesus hating Jews (since Jesus himself was a\nJew, my curiousity had been piqued by such a claim).\nThe jist of the passage (and I am sorry but I can't recall\nwhich passage it was exactly) was that Jesus was condemning\nthe Pharisees for being corrupt.\nOf course, the Pharisees were Jewish too, but it wasn't Jews\nas a whole that Jesus was condemning, just the powers that be.\n\n--\nNancy O'Connor\t\t +\nPsychology undergrad     +         The opinions I express\nSimon Fraser University, +         are my own.\nBurnaby, B.C.            +\nCANADA\t\t\t +\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 792, "properties": {"category": "talk.politics.misc", "text": "From: jar2e@faraday.clas.Virginia.EDU (Virginia's Gentleman)\nSubject: Re: Top Ten Signs That It's the Age of Aquarius on Pennsylvania Avenue\nOrganization: University of Virginia\nLines: 11\n\nIn regard to Woody's post, I thought I would remind him of something in\nthe midst of his tirade against academia:\nAs a member of the generation likely to pay for the crap Reagan and his cronies started with the deficit according to the brilliant Laffer curve (NOT!) I\nthink we need to look with open minds upon any ideas which will allow us\nto directly address the problems of the gigantic federal deficit and debt and\ncontinue to allow our economy to expand--and I don't remember Woody and co.\ncomplaining about academia while Laffer implemented his policy, Stockman\napproved it while being fully aware the numbers not adding up, and Reagan\ncompleting the largest con job of the century which my generation and I will now have to pay for. \n\nJesse\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 793, "properties": {"category": "talk.politics.guns", "text": "From: dbernard@clesun.Central.Sun.COM (Dave Bernard)\nSubject: Re: Riddle me this...\nOrganization: Sun Microsystems\nLines: 24\nDistribution: world\nReply-To: dbernard@clesun.Central.Sun.COM\nNNTP-Posting-Host: clesun.central.sun.com\n\nIn article 1r1lp1INN752@mojo.eng.umd.edu, chuck@eng.umd.edu (Chuck Harris - WA3UQV) writes:\n>In article <1993Apr20.050550.4660@jupiter.sun.csd.unb.ca> j979@jupiter.sun.csd.unb.ca (FULLER  M) writes:\n>>Does a \"not harmful\" gassing mean that you can, with a little willpower,\n>>stay inside indefinitely without suffering any serious health problems?\n>>\n>>If so, why was CS often employed against tunnels in Vietnam?\n>>\n>>What IS the difference, anyway?\n>\n>CS \"tear-gas\" was used in Vietnam because it makes you wretch so hard that\n>your stomach comes out thru your throat.  Well, not quite that bad, but\n>you can't really do much to defend yourself while you are blowing cookies.\n>\n>Chuck Harris - WA3UQV\n>chuck@eng.umd.edu\n>\n\n\nInteresting... after several hours worth of exposure, do you still posess\nthe presence of mind to be able to determine how to escape from an inferno\nsurrounding you?  In other words, is it possible that the prolonged gassing\ndisoriented the wackos enough that possibility of escape was rendered\nquestionable?\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 794, "properties": {"category": "comp.windows.x", "text": "From: sharma@tiger.vill.edu (Sanjeev Sharma)\nSubject: Positioning a window, under openlook.\nKeywords: Windows, openlook.\nOrganization: Villanova University\nLines: 20\nOriginator: sharma@tiger.vill.edu\n\nHi there netters,\n\nI require a window to appear at a co-ordinates (0,0) (top left corner) of my\nscreen (root window). Could some windows guru out there help me on how to\ngo about doing this. I write the whole program which creates the window with\nthe image it displays - I require the image to appear at the top-left corner\nso that I can grab it for recording on to video, using a MIniVas controller,\nwhich expects the window at the same spot every time.\n\nThanks in advance.\n\nsincerely,\n\nSanjeev Sharma\n\n-- \n_____________________________________________________________________\nOffice:\t\t\t\t\t     e_mail:\t\n   Deptt. of Computing Science\t\t     \tsharma@monet.vill.edu\n   Villanova University\t\t\t     (215)645-6463  \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 795, "properties": {"category": "sci.crypt", "text": "From: philip@charon.cto.citicorp.com (Philip Gladstone)\nSubject: More Clipper Stuff\nOrganization: Citicorp\nLines: 15\nNNTP-Posting-Host: charon.cto.citicorp.com\nX-Newsreader: TIN [version 1.1 PL6]\n\nAs of yet, there has been no description of the general principles\nbehind the Clipper proposal. For example, is this a public key system\nor a private key system? If the latter, then I don't see how the\nsystem could work (given that the keys are tied to the device and\nnot the person).\n\nFurther, the escrowed 80-bit keys are split into two 40-bit chunks.\nI would guess that the availability of one of these 40-bit chunks\nand a reasonable key-search machine, would allow you to read the traffic.\nI'm not suggesting that this is a deliberate weakness of the system,\nbut it does make you think. Of course, this is easily fixable by \ngiving out two 80-bit chunks which could be x-ored to generate the \nreal 80-bit key.\n\nPhilip\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 796, "properties": {"category": "talk.politics.guns", "text": "From: ccdarg@dct.ac.uk (Alan Greig)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Dundee Institute of Technology\nLines: 20\n\nIn article <1993Apr20.195636.17742@guinness.idbsu.edu>, betz@gozer.idbsu.edu (Andrew Betz) writes:\n> --\n> betz@gozer.idbsu.edu\n> *** brought into your terminal from the free state of idaho ***\n> *** when you outlaw rights, only outlaws will have rights   ***\n> *** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n>     semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n\nIf you really want to trigger the scanners then move the keywords\nabove the -- signature start bit... You'll only trip them once in\na sig (plus every so often it will flag one for human intervention\njust to be sure)\n\nI might not be being serious.\n\n-- \nAlan Greig                            Janet: A.Greig@uk.ac.dct\nDundee Institute of Technology\t   Internet: A.Greig@dct.ac.uk\nTel: (0382) 308810                 (Int +44 382 308810)\n         ** Never underestimate the power of human stupidity **\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 797, "properties": {"category": "talk.politics.mideast", "text": "From: aa624@Freenet.carleton.ca (Suat Kiniklioglu)\nSubject: THE FUTILITY AND IMPOTENCE OF GREEK FOREIGN POLICY\nOrganization: National Capital Freenet, Ottawa, Canada\nLines: 34\n\n\nthere you go the greeks have been trying for over a year, even though\nmr. mitsotakis was threatening the EC that if Macedonia was recognized\nthat the honourable papandreou would be back...\n\n\nwell i guess the europeans pulled the plug eh ..? theis is just one\nother example about the corruptness and the \"perversity\" of greek\nforeign policy objectives...\n\npity to those who have to live under the greek flag with \"these\"\npolitical decision-makers...\n\nMORE RECOGNITION FOR MACEDONIA.  Belgium, Germany, and Italy joined\nDenmark on 15 April in recognizing the Republic of Macedonia, AFP\nreports.  Each is an EC member state. Greece, which has blocked EC\nrecognition of Macedonia, noted that such recognition \"does not\nfacilitate\" negotiations between Athens and Skopje now underway in\nNew York.  Duncan Perry, RFE/RL, Inc.\n\n\nthe day will come when reuters will write \"despite lengthy negotiations\nand numerous attempts to reunite the island THE TURKISH REPUBLIC\nOF NORTHERN CYPRUS \" was recognized by...\n\n\nyour humble servant kubilay\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 798, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Bay area media (Wings-Leafs coverage)\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 25\n\nIn <DREIER.93Apr19195132@durban.berkeley.edu> dreier@durban.berkeley.edu (Roland Dreier) writes:\n\n>The San Francisco Bay area media is reporting tonight that the Detroit\n>Red Wings beat the Toronto Maple Leafs 6-3.  Can someone who is not\n>part of the media conspiracy against the Leafs tell me how the game\n>really went (I am expecting a 4-0 win for the Leafs, shutout for\n>Potvin, hat trick for Andreychuk and a goal and 3 assists for\n>Gilmour).  If the Leafs really lost, how many penalties did whichever\n>biased ref was at the game have to call against the Leafs to let the\n>Red Wings win?\n\nAh yes.  California.  Did the San Francisco Bay area media report that\nJoe Montana is rumoured to be the leading candidate to replace fired\nSan Jose Sharks coach George Kingston?  Apparently Montana is not only\ncoveted for his winning attitude, but as a playing coach he will be\nexpected to quarterback the powerplay.\n\nGood thing those walls are so soft, eh Rollie?\n\n\n-- \n\ncordially, as always,                      maynard@ramsey.cs.laurentian.ca \n                                           \"So many morons...\nrm                                                   ...and so little time.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 799, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: guns in backcountry? no thanks\nOrganization: Computer Science Department,  Stanford University.\nLines: 35\n\nIn article <1993Apr16.174436.22897@midway.uchicago.edu> pkgeragh@gsbphd.uchicago.edu (Kevin Geraghty) writes:\n>wrong about the  whole guns-for-protection mindset, it ignores the\n>systemic effects of cumulative individual actions.  If you want fire\n>insurance on your house that's prudent and it has no effect on me; but\n>if you and a bunch of other paranoids are packing handguns in the\n>backcountry it makes me, and anyone else who doesn't chose to protect\n>himself in this manner, pretty f**king nervous. \n\nWhy?  If you're not a threat, you're not affected at all.\n\n>I mean, take this to its logical conclusion, suppose we all carried\n>handguns all the time, for protection from all the other people\n>carrying handguns. Would we collectively be, or feel, safer? Hell no.\n>We'd feel a lot more insecure.\n\nWhy?  I note that the available psych info says that feelings of\nsecurity INCREASE.  The victimization stats say that that increase\nis rational.\n\n>Another systemic effect of all the \"good\" people protecting themselves\n>is that the \"bad\" people are going to modify their behavior in\n>response:\n\nYes, they are, but how?\n\n>they're going to be much itchier and much more willing to\n>kill people in the course of routine muggings if they think their\n\nNope - that doesn't happen.  Instead the switch (among those who\nchange behaviors) to property crimes.  That's an improvement even if\nthe economic take is unchanged.  Sure - not everyone switches, but\nthey were killing before.\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 800, "properties": {"category": "rec.sport.baseball", "text": "From: sepinwal@mail.sas.upenn.edu (Alan Sepinwall)\nSubject: Yankee Bullpen - HELP!!!!!!!!!!!!!\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 26\nNntp-Posting-Host: mail.sas.upenn.edu\n\n\nBuck Showalter just can't win. \n\nBob Wickman's pitching the game of his life through eight innings (Yanks\nlead 6-1), so Buck decides to let the kid try and get his first complete\ngame. Wickman manages to get two outs, but in between, four funs score,\nand all of a sudden it's 6-5, and Wickman just can't get the third out.\nSo Buck goes to the bullpen, and Farr gets out the first guy he faces.\n\nLast night, Jimmy Key is pitching another in a long string of games of his\nlife (this guy just keeps getting better!) through eight innings (Yanks\nlead 4-0). This time, Buck thinks, \"I don't want a repeat of that\nnear-fiasco with Wickman, so I'll give my bullpen some work.\" Steve Howe,\nwhose ERA was 54.00 coming into the game, left with it at 81.00. He didn't\ndo too good. Then Farr comes in. He gives up a two-run homer, and the\nRoyals win it, 6-5.\n\nWhat's going on? This is already the third or fourth time this year that\nthe bullpen has blown a lead. Farr & Howe have done it twice together,\nMonteleone's done it once, and I think even Habyan did it once. What's the\ndeal? We finally have terrific starting pitching, so all of a sudden, our\nbullpen turns to shit!\n\nWhat's Buck gonna do? And what's George gonna do if this continues to happen?\n\n-Alan\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 801, "properties": {"category": "alt.atheism", "text": "From: a137490@lehtori.cc.tut.fi (Aario Sami)\nSubject: Re: Why is sex only allowed in marriage: Rationality (was: Islamic marriage)?\nOrganization: Tampere University of Technology, Computing Centre\nLines: 26\nDistribution: sfnet\nNNTP-Posting-Host: cc.tut.fi\n\nIn <1993Mar31.013034.27070@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n\n>My case is that everything wrong in the world will end if people start\n>believing in Islam.  And that horrors to mankind are all caused by the\n>lack of belief- Atheism.\n\nFor the last time, Bobby. Lack of belief in YOUR god does NOT imply\natheism. Just because some moslems aren't moral does not mean they don't\nbelieve in a god named Allah, although their Allah may not do the things\nyour Allah does. If a moslem says he/she believes that a god exists, he/she\nis a theist (though maybe not a TRUE follower of islam).\n\n>30,000 murder victims a year caused by atheism. Poverty. Massive hate crimes.\n>Such low respect for the human body.  Distrust among people.  Everything\n>wrong, all caused by atheism.\n\n>Peace,\n\nJerk.\n\n>Bobby Mozumder\n-- \nSami Aario         |  \"Can you see or measure an atom? Yet you can explode\na137490@cc.tut.fi  |   one. Sunlight is comprised of many atoms.\"\n-------------------'  \"Your stupid minds! Stupid, stupid!\"\nEros in \"Plan 9 From Outer Space\"     DISCLAIMER: I don't agree with Eros.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 802, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Vandalizing the sky\nOrganization: University of Illinois at Urbana\nLines: 50\n\nyamauchi@ces.cwru.edu (Brian Yamauchi) writes:\n\n>enzo@research.canon.oz.au (Enzo Liguori) writes:\n>>WHAT'S NEW (in my opinion), Friday, 16 April 1993  Washington, DC\n\n>>1. SPACE BILLBOARDS! IS THIS ONE THE \"SPINOFFS\" WE WERE PROMISED?\n>>In 1950, science fiction writer Robert Heinlein published \"The\n>>Man Who Sold the Moon,\" which involved a dispute over the sale of\n>>rights to the Moon for use as billboard. NASA has taken the firsteps toward this\n>>hideous vision of the future.  Observers were\n>>startled this spring when a NASA launch vehicle arrived at the\n>>pad with \"SCHWARZENEGGER\" painted in huge block letters on the\n>>side of the booster rockets.  Space Marketing Inc. had arranged\n>>for the ad to promote Arnold's latest movie.\n\n>Well, if you're going to get upset with this, you might as well direct\n>some of this moral outrage towards Glavcosmos as well.  They pioneered\n>this capitalist application of booster adverts long before NASA.\n\nIn fact, you can all direct your ire at the proper target by ingoring NASA \naltogether.  The rocket is a commercial launch vechicle - a Conestoga flying \na COMET payload.  NASA is simply the primary customer.  I believe SDIO has a\nsmall payload as well.  The advertising space was sold by the owners of the\nrocket, who can do whatever they darn well please with it.  In addition, these\nanonymous \"observers\" had no reason to be startled.  The deal made Space News\nat least twice. \n\n>>Now, Space Marketing\n>>is working with University of Colorado and Livermore engineers on\n>>a plan to place a mile-long inflatable billboard in low-earth\n>>orbit.\n>>NASA would provide contractual launch services. However,\n>>since NASA bases its charge on seriously flawed cost estimates\n>>(WN 26 Mar 93) the taxpayers would bear most of the expense. \n\n>>Is NASA really supporting this junk?\n\n>And does anyone have any more details other than what was in the WN\n>news blip?  How serious is this project?  Is this just in the \"wild\n>idea\" stage or does it have real funding?\n\nI think its only fair to find that out before everyone starts having a hissy\nfit.  The fact that they bothered to use the conditional tense suggests that\nit has not yet been approved.\n\n\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n\t\t    \"Find a way or make one.\"\n\t             -attributed to Hannibal\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 803, "properties": {"category": "alt.atheism", "text": "Subject: Re: Is Morality Constant (was Re: Biblical Rape)\nFrom: kmr4@po.CWRU.edu (Keith M. Ryan)\nOrganization: Case Western Reserve University\nNNTP-Posting-Host: b64635.student.cwru.edu\nLines: 28\n\nIn article <C4w5pv.JxD@darkside.osrhe.uoknor.edu> bil@okcforum.osrhe.edu (Bill Conner) writes:\n\n>There are a couple of things about your post and others in this thread\n>that are a little confusing. An atheist is one for whom all things can\n>be understood as processes of nature - exclusively. There is no need\n>for any recourse to Divnity to describe or explain anything. There is\n>no purpose or direction for any event beyond those required by\n>physics, chemistry, biology, etc.; everything is random, nothing is\n>determnined.\n\n\tThis posts contains too many fallacies to respond too.\n\n\t1) The abolishment of divinity requires the elimination of \nfreewill. \n\n\tYou have not shown this. You have not even attempted to. However,\nthe existance of an Omniscience being does eliminate freewill in mortals.*\n\n\t* Posted over five months ago. No one has been able to refute it, \nnor give any reasonable reasons against it.\n\n--\n\n\n       \"Satan and the Angels do not have freewill.  \n        They do what god tells them to do. \"\n\n        S.N. Mozumder (snm6394@ultb.isc.rit.edu) \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 804, "properties": {"category": "misc.forsale", "text": "From: bmaraldo@watserv1.uwaterloo.ca (Commander Brett Maraldo)\nSubject: Ampex 456 2\" Recording Tape For Sale\nOrganization: University of Waterloo\nDistribution: na\nLines: 19\n\n\n\tI have 5 full reels of Ampex 456 2\" recording tape.  This tape was\nused once at 15 ips and carefully stored.  All reel include an Ampex tape\nband.  The tape has not been bulk erased to my knowledge.  The history of\nthe tape in know and available upon request.  JMAR in Toronto sells new\n2\" 456 for $260+tax (Canadian)  I would like $100CDN/reel which will include\npostage.\n\nBrett Maraldo\n- Plexus Productions\n\nps.  The reels are 2500' long; standard thickness.\n\n\n-- \n               --------     Unit 36 Research     ---------\n\t                \"Alien Technology Today\"\n  \t \t      bmaraldo@watserv1.UWaterloo.ca\n  \t           {uunet!clyde!utai}!watserv1!bmaraldo\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 805, "properties": {"category": "comp.windows.x", "text": "From: detroch@imec.be (Stefan De Troch)\nSubject: virtual mwm ? \nNntp-Posting-Host: nemesis\nReply-To: detroch@imec.be\nOrganization: IMEC, Kapeldreef 75  3001 Leuven  Belgium\nLines: 12\n\n\n-- \nHi netland,\n\nI thought that I once read about the existance of a virtual mwm like vtwm.\nOn the usual ftp sites (gatakeeper.dec.com, export.lcs.mit.edu) I can't find\nany trace of this program. Could anybody give me a hint where to find this\nprogram or confirm/deny the existance of this program.\n\nRegards,\n\n  Stefan\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.039+0000", "event": "documents", "entityId": 806, "properties": {"category": "comp.windows.x", "text": "From: edwind@lims01.lerc.nasa.gov (Tom NGUYEN)\nSubject: How to resolve different font formats ...?\nOrganization: NASA Lewis Research Center\nLines: 21\nDistribution: world\nNNTP-Posting-Host: lims01.lerc.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nHi All!\n\nI tried to run SoftPC, a PC emulation software program, installed on a Silicon \nGraphics workstation from a Human Design System (HDS) X terminal, and \neverything went fine, except the fonts could NOT be converted from one type \nof format to the other - HDS uses different font format from SGI worksation.\nSo, I have the following questions:\n\n1. How do you resolve different font formats from different machines?\n\n2. Is there a program to convert one type of font format to another?\n\nIf you have similar problems/experiences and have found a solution, please \nlet me know.  Your help will be greatly appreciated!\n\nThank you in advance for your help and information.\n\nTom Nguen\n\nedwind@lims01.lerc.nasa.gov\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 807, "properties": {"category": "talk.politics.misc", "text": "From: cj@eno.esd.sgi.com (C.J. Silverio)\nSubject: Re: Tieing Abortion to Health Reform -- Is Clinton Nuts?\nReply-To: cj@sgi.com\nOrganization: SGI Developer Docudramas\nLines: 27\n\n\nIn article <C4z3xw.3EF@news.cso.uiuc.edu>, parker@ehsn21.cen.uiuc.edu writes:\n| I like the way people call it \"cruel and unusual punishment\", as if\n| imprisonment isn't cruel, too.  Lethal injection pales in comparison.\n| And, they have a death sentence because they were convicted of a cruel\n| and unusual *crime*.\n\nIt's not what they did that matters.  It's what *you* do and\nwhat *I* do and what *we* do in response that matters.  Do we\nlessen ourselves by killing in response to killing?  It's\nvengeance.  That's all.  It's no deterrent.  It serves no\npurpose but to slake somebody's blood lust.\n\n| It would be nice, though, if we never convicted someone of a crime they\n| didn't commit, and it would make the death penalty much more justifiable.\n\nYeah yeah yeah... and sure would be nice if we didn't apply the\ndeath penalty disproportionately to minorities.  I'll revisit my\nopinion on the death penalty when there are more whites up for\nit than blacks.  I.e., when hell freezes over.\n\n---\nC J Silverio\tcj@sgi.com\tceej@well.sf.ca.us\n\"The people causing the trouble were socialists and homosexuals,\nthe typical sort of person who opposes us.\"  --Don Treshman, \nex-Klansman, leader of the \"pro-life\" group Rescue America, \non BBC TV, 2 April 1993.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 808, "properties": {"category": "rec.motorcycles", "text": "From: marty@misty.ca.boeing.com (marty capadona)\nSubject: Data Logging?\nOrganization: Boeing Commercial Airplane BCS Support\nLines: 19\n\nGreetings:\n\nCan someone steer me towards sources of information on vehicle data\nlogging systems?  In  particular, I would like to build/buy (or a little\nof both) a system that is small enough to fit on a motorcycle and will\ntake input from various sensors (pressure, LVDT's, acceleration, RPM,\nO2 sensor...), digitize and record it for later analysis.  \n\nPlease email me any info.  If I get anything interesting, I'll compile\nit and get it on the net.  Thanks.\n\n   _______________________________________________________________________\n   marty capadona                              marty@carter.ca.boeing.com\n                                               seattle, wa\n   82 gpz750, 82 gs1100, 88 hawk gt, 90 gs500\n   ama, msf, wmrra, omrra...                   Forget what I said.\n   _______________________________________________________________________\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 809, "properties": {"category": "misc.forsale", "text": "From: rebop@well.sf.ca.us (Bob Ulius)\nSubject: Newtek Video Toaster Link For Sale\nKeywords: Newtek Video Toaster Amiga Mac\nOrganization: The Whole Earth 'Lectronic Link, Sausalito, CA\nLines: 16\nNntp-Posting-Host: well.sf.ca.us\n\n\n\n\nI have a bout a dozen Newtek Video Toaster Links available. These connect\nMacs and the Video Toaster.  List is $595,  street price likely to be $495.\nI can sell them off for $425 including shipping anywhere.. Factory\nshrinkwrapped. Plus tax if in California. E-mail rebop or call 916 924-9911\nM-F 8-5 if you would like further info.\n\nAll Toaster and Toaster accessories and system components are available as\nwell.\n\n-- \n           ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~\n           - Bob Ulius |  rebop@well.sf.ca.us   |  (916) 338-4766  -\n           ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 810, "properties": {"category": "rec.sport.hockey", "text": "From: andrew@idacom.hp.com (Andrew Scott)\nSubject: Re: This year's biggest and worst (opinion)...\nOrganization: IDACOM, A division of Hewlett-Packard\nKeywords: NHL, awards\nLines: 35\n\nIn article <C4zCII.Ftn@watserv1.uwaterloo.ca> smale@healthy.uwaterloo.ca (Bryan Smale) writes:\n>\n>I was thinking about who on each of the teams were the MVPs, biggest\n>surprises, and biggest disappointments this year. Now, these are just\n>my observations and are admittedly lacking because I have not had an\n>opportunity to see all the teams the same amount. Anyway....\n>  \n>Team:                   MVP:          Surprise:    Disappointment:\n>-----------------------------------------------------------------------\n>Edmonton Oilers         Manson         Buchberger    Mellanby\n\nWell, since the Oilers didn't win a heck of a lot of games, I'm not sure\nthey deserve and MVP (\"can't win without him\").  However, I'd suggest Kelly\nBuchberger instead of Dave Manson, who has had a brutal year, his pick for\nthe All-Star game notwithstanding.\n\nAs for biggest surprise, I'd say that Buchberger had higher expectations\nthis year due to his \"breakthrough\" year (for him) last year, so he didn't\nreally raise his game.  My suggestion would be Shjon Podein, one of the\ncallups from Cape Breton during the year.  He was quite far down on the\ndepth chart in the Oilers stable of prospects, but made a big impact on\nthe team.  He has 12 goals in his 33 games and is only -1.  Those are decent\nnumbers for a third-line player who was seemingly doomed to minor-league\noblivion.  The Oilers coaching staff likens his style to John Tonelli.\nI think he'll be on the full-time roster next year.\n\nAs for biggest disappointment, you could name any of the players the Oilers\ndumped for lousy production this year (Nicholls, Gilchrist, Tikkanen) or\neven Shayne Corson, but Mellanby isn't far off.\n\n-- \nAndrew Scott                    | andrew@idacom.hp.com\nHP IDACOM Telecom Division      | (403) 462-0666 ext. 253\n\nDuring the Roman Era, 28 was considered old...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 811, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Maine System\nFrom: Ryan Robbins <IO20456@MAINE.MAINE.EDU>\nSubject: Re: DESIGNATED HITTER RULE\n <1993Apr5.153407.19101@hpcvaac.cv.hp.com>\nLines: 8\n\nActually, there can be any number of players on a side. You can\nhave a 25-man roster, a 40-man roster, etc....\n\nRyan Robbins\nPenobscot Hall\nUniversity of Maine\n\nIO20456@Maine.Maine.Edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 812, "properties": {"category": "misc.forsale", "text": "From: Craig.Landgraf@f88.n106.z1.fidonet.org (Craig Landgraf)\nSubject: NEW CD-DISK'S\nLines: 26\n\n                           For CD-Disk USERS\n                         ----------------------\n                       This is NOT a COMMERCIAL AD!\n\n                        I have alot of NEW CD-Disks\n          If You have a CDROM and are interested in purchasing\n      some of these disks Please download the list mentioned below:\n\n                    CD NIGHT OWL'S V8.0 $35.00\n\n               Download the File---->  CDROMCAT.ZIP\n\n                 or the Freq the MAGIC NAME of---->    CATALOG\n       -----------------------------------------------------------\n         Craig landgraf  Buckwheats Pleasure Dome 713-855-1701\n         INTERnet/USENET: landgraf@p2.f88.n106.z1.fidonet.org\n       -----------------------------------------------------------\n   PODNET 93:9008/5 FIDONET 1:106/88.1 ITCNET  85:841/803 KINKNET 69:1700/3\n                             SGANET 30:301/0\n                        BBS Number (713) 855-1701\n\nP.S. If you send me Email with Your Home Address I will mail you a list\nto your house.......The list is 12 pages long...this is if you do not\nhave a Computer that you can call and get the List faster.....\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 813, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jls@antares. (Jon Sweet)\nSubject: Re: X Windows for windows\nOrganization: LESC/NASA/LaRC\nLines: 11\nDistribution: world\nReply-To: jls@antares.\nNNTP-Posting-Host: antares.larc.nasa.gov\n\nPC-Xview from NCD, HCL-eXceed from Hummingbird Software!\n\n================================================================\n_|         _/     _/      _/_/_/ _| All opinions expressed are _|\n_|        _/     _/      _/      _| my own because nobody else _|\n_|       _/     _/      _/_/_/   _| wants them!                _|\n_|  _/  _/     _/  _/      _/    _| jls@antares.larc.nasa.gov  _|\n_| _/_/_/     _/_/_/  _/_/_/     _| Jon L. Sweet               _|\n================================================================\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 814, "properties": {"category": "rec.sport.hockey", "text": "From: brifre1@ac.dal.ca\nSubject: Re: Goalie masks\nOrganization: Dalhousie University, Halifax, Nova Scotia, Canada\nLines: 22\n\nIn article <93102@hydra.gatech.EDU>, gtd597a@prism.gatech.EDU (Hrivnak) writes:\n> \n> \tI'm starting an informal poll on goalie masks. I'd like to know\n> who's mask you think looks the best. I've always like Curtis Joseph's\n> of the Blues the best. Anyway, send your nominations to me, or post your\n> vote here on r.s.h. My e-mail adress is: gtd597a@prism.gatech.edu\n> \n> \tThanks for your time.\n\nI saw a mask once that had drawings of band-aids, presumably for every puck\nthat goalie stopped with his face/head.  I can't remember who it was or even\nif it was NHL (I see quite a few AHL games here).\n\nThis is by far the funniest mask I've seen, and for me funny=cool\n\n> \n> -- \n> GO SKINS!    ||\"Now for the next question... Does emotional music have quite\n> GO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \n> GO HORNETS!  ||\n> GO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\nBarfly\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 815, "properties": {"category": "rec.sport.hockey", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: SHARKS:  Kingston Fired!!!\nOrganization: Adobe Systems Incorporated\nLines: 19\n\nIn article <1993Apr20.085337.27224@leland.Stanford.EDU> terry@garfield.Stanford.EDU (Terry Wong) writes:\n>I think that Jack Ferreira's firing eventually led to Kingston's\n>firing.  You mention consistency of vision.  I think the\n>Sharks lost that with the loss of Ferreira.  There has never\n>been a 3 headed G.M. that has ever worked.  You need one\n>person making the personnel decisions at the top, not\n>management by committee.  The conventional wisdom\n>from around the league is that Ferreira would have\n>made the moves that would have fielded a better product\n>on the ice.\n\nHow exactly would Ferreira accomplished this?  The three-headed GM-ship has\ntaken a lot of heat, but nobody's explained how things would have been any\ndifferent had Ferreira still been there.  Would Ferreira have made more\ntrades?  Who would have he had traded?  Would he have made fewer trades?\nWho should not have been traded?\n\nSherri Nichols\nsnichols@adobe.com\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 816, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ak333@cleveland.Freenet.Edu (Martin Linsenbigler)\nSubject: Re: mouse on COM3 under Windows 3.1 ?\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 34\nReply-To: ak333@cleveland.Freenet.Edu (Martin Linsenbigler)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, jpaparel@cs.ulowell.edu (Joseph Paparella) says:\n\n>I've pursued and researched this question over the last month or so because I have the same requirements you do......and the long and short of it is that the windows mouse drivers don't accept mice at any but com1 and com2 using irq4 or irq3 unless you buy special drivers from someone who has them.....I've talked to Mouse Systems who say their driver doesn't support other than com1 and com2 as above , but who claim to be releasing one that will SOON!??.\n>\n>The other alternative seems to be possible, but in one case prohibitively expensive, i.e. 4 port card for $600??????!!, and in the other, the author(s) of PowerBBS for Windows claim to have a 4 port serial card with buffered 16550 UARTS and drivers for windows to match (i.e. com3 irq5) for $120......\n>\n>The second paragraph is hearsay, because I haven't checked it out yet.....but intend to as soon as I can free up $120 <g>\n>\n>Hope this will save you some steps.\n>\n>\n\nI had this problem when I first loaded windows.  My I/O card is for 2 HD's\n2 FD's 1 Parrelel 2 serial (1 for mouse and 1 for my external modem) and\na game port.  PROBLEM enters.  The DARN serial ports have no selection for \nCOM settings, they are stuck on 3 and 4.  \nGood card for HD's and FD's but lousy for serial. \n\nI called Microsoft and other places.  The long and short of it is\nWINDOWS wants com1 and 2 ONLY!, for mouse selection.\nI went out and bought a small I/O card just for parrelel and serial.\nNow I have ALL 4 active COM ports and LPT1 and LPT2.\nThis Half card was less than $20.\n\nMouse on COM 1  external modem on COM 2,  I disabled the LPT2 so I could use\nthe interupt for my scanner card IRQ.\nC-ya..... /\\/\\artin\n \n-- \n  This communication is sent by    /\\/\\artin   University of Arizona Tucson\n  =========================================================================\n  ak333@cleveland.freenet.edu   mlinsenb@ccit.arizona.edu  mlinsenb@arizvms\n  DEATH HAS BEEN DEAD FOR ABOUT 2,000 YEARS ****** FOLLOW THE KING OF KINGS\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 817, "properties": {"category": "rec.sport.hockey", "text": "From: dale@odie.cs.mun.ca (Dale Fraser)\nSubject: Re: Hockey and the Hispanic community\nOrganization: CS Dept., Memorial University of Newfoundland\nLines: 28\n\nicop@csa.bu.edu (Antonio Pera) writes:\n\n\n>\tThe presence of the new team in Miami(I can't say South Florida;\n>it's too long) makes me think of an interesting question. Can you sell\n>the Hispanic community on Hockey? Miami is 60-70% Hispanic. This community\n>has no experience and no previous exposure to Hockey that I know of. The\n>teams in NY and LA which also have big Hispanic groups do not seem to try\n>to woo this group. What will Miami do? Could they get Spanish-language\n>tv and radio coverage?\nI think, as do the owners, that hockey will do well in Miami since there\nis a lot of people from the Northeast that spend their winters in\nFlorida every year. As for the coverage, someone will have to come up\nwith some money for that since broadcast rights can be expensive!\n\nJust my $0.02!\n\nDale\n\n|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|\n|   \"Why sex is so popular    |    Dale Fraser  dale@odie.cs.mun.ca   |\n|       Is easy to see:       | Memorial University of Newfoundland   |\n|    It contains no sodium    |     CS Undergrad  -  Class of '92     |\n| And it's cholesterol free!\" |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-| \n|       Shelby Friedman       | BLUE JAYS 1992 WORLD SERIES CHAMPS!!  |\n|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|\n| *OPINIONS EXPRESSED ABOVE DO NOT BELONG TO ME OR THIS INSTITUTION!* |\n|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 818, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Young Catchers\nArticle-I.D.: cs.1993Apr6.185951.19058\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 17\n\nIn article <mssC52rIL.8E0@netcom.com> mss@netcom.com (Mark Singer) writes:\n> Your speculation (and \n>others) that Lopez will produce better than the two proven veterans\n>is nothing more than speculation, no matter how well founded.\n\nYour speculation that the two proven veterans will produce better\nthan Lopez is also no more than speculation.  It *does* make\na difference whether the speculation is well-founded or not.\n  \n>Obviously, the Braves believe they can win with the catching they\n>have, and I agree.  If they change their minds, they'll call up Lopez.\n\nThough this is a good point.  The one speculation is \"safer\",\nbecause it can be reversed.\n\nCheers,\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 819, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Sammons@mailer.acns.fsu.edu (David Sammons)\nSubject: Re: Monitor turning off on its own\nOrganization: FSUACNS\nLines: 29\n\nIn article <gcohen.164.734712474@mailer.acns.fsu.edu>,\ngcohen@mailer.acns.fsu.edu (Gregory Cohen) wrote:\n> \n> In article <1993Apr13.142129.9491@rhrk.uni-kl.de> staudt@physik.uni-kl.de (Willi Staudt AG-Linder) writes:\n> >From: staudt@physik.uni-kl.de (Willi Staudt AG-Linder)\n> >Subject: Re: Monitor turning off on its own\n> >Date: Tue, 13 Apr 1993 14:21:29 GMT\n> >kayc@leland.Stanford.EDU (K C Ku) writes:\n> >|>\n> >|>I have a strange problem with my Apple 13\" monitor which hopefully\n> >|>someone can shed some light on. \n> >|>\n> >|>I would be using my computer for 5 minutes and then the screen would\n> >|>go blank as if someone has switch the monitor off. After the screen\n> >|>went off, I would not be able to turn the monitor off even if I turn\n> >|>the power off and back on. I will have to let the monitor sit over\n> >|>night and it usually turns on, although it doesnt stay on for very\n> >|>long.\n> >|>\n> >|>Dooes anybody has similar experience with such a problem before? Is\n> >|>there some fuse in the monitor that prevents it from turning on? When\n> >|>I try to turn the monitor on, it seems that the monitor tries to turn\n> >|>on but it prevented by some mechamism.\n> \n\tIn certain Apple 13\" RGB monitors there has been a problem with\n\tthe HIGH VOLTAGE CAPASITOR. Apple knows about this problem and is\n\treplacing the cap at no cost if it falls into the bad batch that\n\tthey got from their supplier. Your local repair shop should know about\n\tREPAIR EXTENSION 3L0218.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 820, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Black Screen of Death, Windows, Novell\nFrom: psweeney@miavx1.acs.muohio.edu\nOrganization: Miami University Academic Computer Service\"\nLines: 23\n\nHi there,\n\nWe are running a 120 node Token ring with Windows 3.1 and Novell 3.11.\n\nEvery once in a while, we run into \"The Black Screen of Death\", a phrase\ncoined by Robert X. Cringely in a recent InfoWorld column.  \n\nBasically, sometimes when you quit Windows, the screen goes black and\nyou get a nice little flashing cursor in the top left corner of your\nscreen.  Also, sometimes when you exit to DOS, the same effect occurs.\nCringely hints that Microsoft and/or Novell has a patch for Windows'\nvirtual interrupt controller that  may solve this.  Neither company\nseems to know what I am talking about when I call them.\n\nHas anyone else noticed this phenomenon?  \n\nIs there a fix for it?\n\nAny response is welcome.\n\nPeter Sweeney\npsweeney@miavx1.acs.muohio.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 821, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: SIRTF Mission is Still Alive\nOrganization: Jet Propulsion Laboratory\nLines: 114\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: SIRTF, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nFrom the \"JPL Universe\"\nApril 23, 1993\n\nSIRTF is still very much in business\n\nBy Mark Whalen\n     In these times of extra-tight NASA budgets, the very\nsurvival of a number of missions has been uncertain. But thanks\nto major design refinements implemented in recent months, JPL's\nSpace Infrared Telescope Facility (SIRTF) -- a major project\nconsidered to be in trouble a couple of years ago -- is \"alive\nand well,\" according to Project Scientist Michael Werner.\n     A lighter spacecraft, revised orbit and shorter mission have\nadded up to a less expensive project with \"tremendous scientific\npower\" and a bright future, said Werner.\n     Designed as a follow-up to the highly successful Infrared\nAstronomical Satellite (IRAS) and Cosmic Background Explorer\n(COBE) missions, SIRTF -- a cryogenically cooled observatory for\ninfrared astronomy from space -- is scheduled for launch in 2000\nor 2001 if plans proceed as scheduled.\n     IRAS' pioneering work in space-based infrared astronomy 10\nyears ago allowed astronomers to view the Milky Way as never\nbefore and revealed, among other things, 60,000 galaxies and 25\ncomets. It provided a sky survey 1,000 times more sensitive than\nany previously available from ground-based observations. COBE has\nmeasured the infrared and microwave background radiation on large\nangular scales, and revealed new facts about the early universe.\n     But to illuminate SIRTF's potential, Jim Evans, JPL's\nmanager of Astrophysics and Fundamental Physics Pre-Projects,\nrecently said that the project is \"1,000 to 1 million times more\ncapable than IRAS,\" based on technological advances in infrared\ndetector arrays.\n     However, despite the enormous strides in infrared\nexploration SIRTF promised, and the fact that it was cited as the\nhighest priority new initiative for all of astronomy in the 1990s\n(by the National Academy of Sciences), it took a \"diet or die\"\ndirective from NASA Headquarters last year to keep the project\ngoing, according to Werner.\n     The project is now known as Atlas SIRTF, based on the key\nfactor in its new design: The satellite will orbit the sun\ninstead of the Earth, permitting the use of an Atlas rocket\nlaunch instead of the formerly proposed and heavier Titan. \"The\nmain advantage of the solar orbit is that you can use all of your\nlaunch capability for boosting the payload -- you don't have to\ncarry up a second rocket to circularize the orbit,\" Werner said.\nThe other advantage to a solar orbit, he said, is that \"it's in a\nbetter thermal environment, away from the heat of the Earth.\"\n     Additional major changes in SIRTF's redesign include\nshortening the mission from five to three years and building a\nspacecraft that is less than half as heavy as in the original\nplan -- Atlas SIRTF will weigh 2,470 kilograms (5,400 pounds)\ncompared to Titan SIRTF's 5,500 kilograms (12,100 pounds).\n     All of that adds up to \"a less stressful launch\nenvironment,\" Werner said, and a cost savings of more than $200\nmillion for the launch, in addition to increased savings in the\ndesign of the smaller, less massive spacecraft.\n     Werner said SIRTF's redesign came as a result of Congress'\ntelling NASA \"you're trying to do too many things. If you want us\nto support SIRTF, which is a good project, develop a plan to see\nhow it fits into (NASA's) overall strategy.\"\n     Shortly thereafter, SIRTF was named as NASA's highest\npriority \"flagship\" scientific mission by the interdisciplinary\nSpace Sciences Advisory Committee, in addition to the blessing\nfrom the National Academy of Sciences.\n     While the spacecraft and its instruments required descoping\nto keep the project alive, SIRTF's major scientific contribution\nalways promised to come about from its advanced infrared detector\narrays, which will allow images to be developed \"tens of\nthousands of times faster\" than before, according to Evans.\n     \"Up until a couple of years ago,\" Werner said, \"all infrared\nastronomy was done with single detectors -- or very small arrays\nof individually assembled detectors. Since then, the Department\nof Defense has developed a program to produce arrays of tens or\nhundreds of thousands of detectors, rather than just a few, and\nthose are very well suited for use on SIRTF.\"\n     Werner noted that in addition to dealing with budget\npressures, Congress is currently watching NASA projects with an\neye out for any \"technological spinoff.\"\n     \"On that question, I think we have some things to say,\" he\nsaid, \"because the detectors we're using are straight off various\nmilitary developments. Also, SIRTF will be built by the U.S.\naerospace industry, and it's a real technological and engineering\nchallenge in addition to being a tremendous scientific project.\n     \"SIRTF will be used by the entire astronomical community,\"\nWerner added, but the revised three-year mission \"puts a premium\non observing time. We have to educate the user community and\ndevelop a program that involves early surveys and quick\nturnaround of the data.\"\n     Werner said the downsizing of the project required a\nreduction in scope and complexity of SIRTF's three instruments --\nthe infrared spectrograph, infrared array camera and multiband\nimaging photometer. However, these reductions will only result in\nlosses of efficiency rather than capability, he said.\n     The project hopes to start a \"Phase B\" activity in 1995,\nwhich will provide a detailed concept for development and design.\nBuilding the hardware would begin about two years later.\n     Projected cost estimates, Evans said, are $850 million-$950\nmillion.\n     \"I am very optimistic about SIRTF,\" he said. \"It will\nprovide a tremendous return for the investment.\"\n     Werner added that an additional benefit from the project\nwill be the \"enrichment of our intellectual and cultural\nenvironment. People on the street are very interested in\nastronomy ... black holes, the possibility of life on other\nplanets, the origin of the universe ... and those are the kind of\nquestions SIRTF will help answer.\"\n                              ###\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 822, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: tuberculosis\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 26\n\nIn article <1993Mar29.181406.11915@iscsvax.uni.edu> klier@iscsvax.uni.edu writes:\n\n>\n>Multiple drug resistance in TB is a relatively new phenomenon, and\n>one of the largest contributing factors is that people are no longer\n>as scared of TB as they were before antibiotics.  (It was roughly as\n>feared as HIV is now...)\n>\n\nNot that new.  20 years ago, we had drug addicts harboring active TB\nthat was resistant to everything (in Chicago).  The difference now\nis that such strains have become virulent.  In the old days, such\nTB was weak.  It didn't spread to other people very easily and just\ninfected the one person in whom it developed (because of non-compliance\nwith medications).  Non-compliance and development of resistant strains\nhas been a problem for a very long time.  That is why we have like 9\ndrugs against TB.  There is always a need to develop new ones due to\nsuch strains.  Now, however, with a virulent resistant strain, we\nare in more trouble, and measures to assure compliance may be necessary\neven if they entail force.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 823, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: hawks vs leafs lastnight\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nDistribution: na\nLines: 18\n\nIn article <1993Apr18.153820.10118@alchemy.chem.utoronto.ca> golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n\n>>on all replays, joe murphy's goal shouldn't have counted ! \n>>the game would have ended in 2-2 tie !\n\n>I thought the red light went on...thus, in the review, the presumption\n>would be to find conclusive evidence that the puck did not go in the\n>net...from the replays I say, even from the rear, the evidence wasn't\n>conclusive that the puck was in or out...in my opinion...\n\nI was under the impression that the objective is to find conclusive\nevidence that the puck _did_ cross the line.  And, the replays I saw showed \nfairly conclusively that the puck did _not_ cross the goal line at any\ntime anyway.  Somebody screwed up.  \n\n\ndchhabra@stpl.ists.ca\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 824, "properties": {"category": "comp.windows.x", "text": "From: ferguson@cs.rochester.EDU (George Ferguson)\nSubject: Xarchie-2.0 available on export\nOrganization: Department of Computer Science, University of Rochester\nLines: 40\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xannounce@expo.lcs.mit.edu\n\n[Please accept the following announcement for comp.windows.x.announce. -gf]\n\nA completely revamped version of the X11 browser interface to Archie,\nXarchie, is now available as\n\texport.lcs.mit.edu:/contrib/xarchie-2.0.tar.Z\n\nFor those not familar with Archie or Xarchie, I include part of the\nmanpage intro:\n\n  Xarchie is an X11 browser interface to the Archie Internet information\n  system using the Prospero virtual filesystem protocol.  Archie\n  provides information about files available for ftp anywhere on the\n  Internet; Xarchie displays this information using an easy-to-use,\n  point-and-click interface.  Xarchie allows you to further explore ftp\n  sites by examining directories returned as query matches, and allows\n  you to retrieve files located this way.\n\nXarchie 2.0 has been extensively tested on R4, R5, and a variety of\nother flavors of X, and on a wide range of machines. A summary of the\nnew features (from the README) follows:\n\n  * Major improvements include:\n    - Multiple selections allowed in browser for use with other new\n      features (FWF MultiList widget).\n    - Ability to expand directories in browser.\n    - Real fully-integrated ftp implementation.\n    - Ability to save and reload query results, as well as print them.\n    - Ability to resort results, and sort results by user-definable\n      pseudo-weights.\n    - Online help browser.\n    - Color resources, done so that they don't break mono displays.\n    - FWF FileSelector widget for local file operations.\n    - Makefile.dst's supplied for the imake-impaired.\n\nGeorge\n-- \nGeorge Ferguson                 ARPA: ferguson@cs.rochester.edu\nDept. of Computer Science       UUCP: rutgers!rochester!ferguson\nUniversity of Rochester         VOX:  (716) 275-2527\nRochester  NY  14627-0226       FAX:  (716) 461-2018\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 825, "properties": {"category": "rec.sport.baseball", "text": "From: dwarner@journalism.indiana.edu (David J.)\nSubject: MARLINS WIN! MARLINS WIN!\nArticle-I.D.: usenet.C51Buv.KLn\nReply-To: dwarner@journalism.indiana.edu\nOrganization: Indiana University\nLines: 8\nNntp-Posting-Host: poppy.journalism.indiana.edu\n\nI only caught the tail end of this one on ESPN.  Does anyone have a report?\n(Look at all that Teal!!!!  BLEAH!!!!!!!!!)\n\n--\nDavid J.(dwarner@journalism.indiana.edu)*****Blue Riddle Productions 1993\n*-------------------------------It's on.--------------------------------*\n***\"THE RAP IS AN ART EP\" is coming out on tape -- this time for real.***\n*------------------------E-mail me for the 411.-------------------------*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 826, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Need advice for riding with someone on pillion\nKeywords: advice, pillion, help!\nOrganization: NEC Systems Laboratory, Inc.\nDistribution: na\nLines: 40\n\nIn article <C5t759.DsC@well.sf.ca.us> rwert@well.sf.ca.us (Bob Wert) writes:\n>I need some advice on having someone ride pillion with me on my 750 Ninja.\n>This will be the the first time I've taken anyone for an extended ride\n>(read: farther than around the block  :-).  We'll be riding some twisty, \n>fairly bumpy roads (the Mines Road-Mt.Hamilton Loop for you SF Bay Areans).\n\n\tYou sonuvabitch.  Rub it in, why don't you?  \"We have great weather\nand great roads here, unlike the rest of you putzes in the U.S.  Nyah, nyah,\nnyah.\"\n\n\t:-) for the severely humor-impaired.\n\n>This person is <100 lbs. and fairly small, so I don't see weight as too much\n>of a problem, but what sort of of advice should I give her before we go?\n>I want her to hold onto me  :-)   rather than the grab rail out back, and\n>I've heard that she should look over my shoulder in the direction we're\n>turning so she leans *with* me, but what else?  Are there traditional\n>signals for SLOW DOWN!! or GO FASTER!! or I HAFTA GO PEE!! etc.???\n\n\tYou'll likely not notice her weight too much.  A piece of advice\nfor you:  don't be abrupt with the throttle.  No wheelies, accelerate a\nwee bit more slowly than usual.  Consciously worry about spitting her off\nthe back.  It's as much your job to keep her on the pillion as it is hers,\nand I guarantee she'll be put off by the bike ripping out from under her\nwhen you whack it open.  Keep the lean angles pretty tame the first time\nout too.  You and her need to learn each other's body English.  She needs\nto learn what your idea is about how to take the turn, and you need to\nlearn her idea of \"shit!  Don't crash now!\" so you don't work at cross\npurposes while leaned over.  You can work up to more aggressive riding over\ntime.\n\n\tA very important thing:  tell her to put her hand against the tank\nwhen you brake--this could save you some severely crushed cookies.\n\nHave fun,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 827, "properties": {"category": "comp.graphics", "text": "From: d88-jwa@hemul.nada.kth.se (Jon Wtte)\nSubject: Re: Please Recommend 3D Graphics Library For Mac.\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 21\nNntp-Posting-Host: hemul.nada.kth.se\n\nIn <Z2442B4w164w@cellar.org> tsa@cellar.org (The Silent Assassin) writes:\n\n>> I'm building a CAD package and need a 3D graphics library that can handle\n>> some rudimentry tasks, such as hidden line removal, shading, animation, etc.\n>> \n>> Can you please offer some recommendations?\n\nI think APDA has something called MacWireFrame which is a full\nwire-frame (and supposedly hidden-line removal) library.\nI think it weighs in at $99 (but I've been wrong on an order\nof magnitude before)\n\n>Libertarian, atheist, semi-anarchal Techno-Rat.\n\nI can relate to that\n\n\t\t\t\t\t/h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n\n  \"On a clear disc, you can seek forever.\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 828, "properties": {"category": "rec.sport.baseball", "text": "From: st1rp@rosie.uh.edu (Schwam, David S.)\nSubject: Re: Astros Are Back!!!!!!!!!!!!!!!!!!!\nOrganization: University of Houston\nLines: 80\nDistribution: usa\nNNTP-Posting-Host: rosie.uh.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <C5HHwv.CvK@austin.ibm.com>, marc@yogi.austin.ibm.com (Marc J. Stephenson) writes...\n>Keeping in line with the pessimists on the net, I'll hold off on the Astros\n>being all the way back.  They could indeed contend, but that would count on\n>  1) Atlanta encountering some unforeseen problems, such as injuries or keeping\n>     up their early season abysmal hitting.\n\n  While Atlanta has the undisputed best starting rotation, I feel that their\nrelief staff may be suspect.  They don't have a real closer -- although\nMike Stanton (4 saves) has been used in that role.  Didn't Stanton start off\ngreat last year and then falter?  Despite this, your point is well taken.\nAtlanta doesn't seem to have the same personality as a NY team, thus is \nunlikely to self-destruct.  For Houston to take 'em, Atlanta needs to\nsuffer some injuries, particularly to their starting rotation.\n\n\n>  2) Astros relief corps holding together.  If Doug Jones keeps his changeup\n>     effective and Xavier Hernandez can be effective, then it's passable.\n>     There's no reasonable left-handed help, and the middle relief is iffy.\n>     Tom Edens was expected to take over the Joe Boever setup man role, but\n>     he's been injured, and he was an expansion team acquisition anyway.  \n>     Houston thought that Boever would demand too much money, so they let him\n>     go.  Doug Jones can lose his touch - he went from Cleveland's all-star\n>     closer to the minors in a pretty short span.\n\n  From what I understand, Boever and Murphy were considered expendable by the\nclub.  Houston felt that their positions could be filled by a number of\nplayers..  Art  Doug Jones is the key to Houston's success.  He must have\nanother great year for Houston to challenge in the NL West. \n\nlousey spring.\n>     closer to the minors in a pretty short span.\n\n\n      Right!  A strong rotation will take the pressure off of the troubling\n      bullpen.\n\n\n>     bit of shakiness at the fifth starter slot (but that's basically normal).\n>  4) Taubensee, Anthony, Gonzalez, and Cedeno fulfilling some hitting potential.\n>     Anthony appears to be about there, Taubensee's swing looks a lot better\n>     this year (solid knock against Expos last night), Gonzalez is showing \n>     some early power, and Cedeno still has the loopiest swing this side of\n>     Tim Wallach.\n\n      The unsuspected strength of the lower part of the order has saved the\n      club so far.  Biggio and Finley just aren't doing their job of getting\n      on base.  Instead of filling his role as an RBI man, Bagwell has had to\n      assume Biggio and Finley's job.  Biggio concerns me, since he usually\n      starts the season very strong.\n\n\n                                * * * * * *\n\n     On a side note, are you at all concerned with the rumors concerning\nnext year's uniform?  There is talk that their road uniform will be\n(blech..) traditional grey, with the word \"HOUSTON\" written across the\nchest.  If I'm not mistaken, their home uniforms may totally eliminate\nthe color orange (shiver..).  McLane's favorite color is red, so...\n     I'm really upset.. the current unforms are dull and the new ones sound\nhorrible.  I'd like to see the uniform of the mid-1980s return.  They\nmay not have been pretty, but Houston had established a long precident of\nwearing the ugliest uniforms in baseball -- and I liked it.\n\n>end of the bargain (remember two years ago? a little relief goes a long way),\n>then they COULD win 90 games.  But, I doubt it.  I'll project them at 85 wins.\n> \n>Astros fan since the days of Staub, Morgan, Jackson, Aspromonte, Dierker, ...\n>-- \n>Marc Stephenson\t           IBM AWS (Advanced Workstations & Systems - Austin,TX)\n>DISCLAIMER: The content of this posting is independent of official IBM position.\n>INTERNET->marc@austin.ibm.com      VNET: MARC at AUSVMQ        IBM T/L: 678-3189\n\nAstros fan since the days of Ryan, Scott, Smith, Cruz, Davis, Bass, Hatcher...\n\n--- --- --- --- --- ---\n David S. Schwam\n University of Houston\n st1rp@jetson.uh.edu\n--- --- --- --- --- ---\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 829, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Neurasthenia\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 15\n\nIn article <1993Apr21.174553.812@spdcc.com> dyer@spdcc.com (Steve Dyer) writes:\n\n>responds well, if you're not otherwise immunocompromised.  Noring's\n>anal-retentive idee fixe on having a fungal infection in his sinuses\n>is not even in the same category here, nor are these walking neurasthenics\n>who are convinced they have \"candida\" from reading a quack book.\n\nSpeaking of which, has anyone else been impressed with how much the \ndescriptions of neurasthenia published a century ago sound like CFS?\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.040+0000", "event": "documents", "entityId": 830, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: >>>>>>Pompous ass\nOrganization: California Institute of Technology, Pasadena\nLines: 14\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>>>How long does it [the motto] have to stay around before it becomes the\n>>>default?  ...  Where's the cutoff point? \n>>I don't know where the exact cutoff is, but it is at least after a few\n>>years, and surely after 40 years.\n>Why does the notion of default not take into account changes\n>in population makeup?     \n\nSpecifically, which changes are you talking about?  Are you arguing\nthat the motto is interpreted as offensive by a larger portion of the\npopulation now than 40 years ago?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 831, "properties": {"category": "misc.forsale", "text": "From: dcg6759@uxa.cso.uiuc.edu ()\nSubject: Quantum SCSI 40mb Hard Drive For Sale\nOrganization: University of Illinois at Urbana\nLines: 30\n\nHi,\n\n\tI have a Quantum ProDrive LPS 40 MB SCSI hard drive for sale.\n\tIt came with my MacIIsi and was replaced by a larger hard drive.\n\tIn great working condition. Fast and quiet. Never had a problem.\n\n\tAsking $100+COD shipping or reasonable offer.\n\n\tAlso for sale with the drive:\n\n\tBrand new mounting bracket for MacII or MacSE. It also includes\n\tSCSI data and power cable. $10 with the HD.\n\n\tPlease reply with email or call (217)337-5710 and leave message.\n\n\tThanks.\n\nDing-Kai Chen\ndcg6759@uxa.cso.uiuc.edu\n\nuiuc.classifieds\nuiuc.classifieds.computer\nmisc.forsale\nmisc.forsale.computer\nmisc.forsale.computer.mac\nmisc.forsale.computer.other\nmisc.forsale.computer.pc-clone\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 832, "properties": {"category": "rec.sport.baseball", "text": "From: demers@cs.ucsd.edu (David DeMers)\nSubject: Re: HBP? BB? BIG-CAT?\nDistribution: na\nOrganization: CSE Dept., UC San Diego\nLines: 15\nNntp-Posting-Host: mbongo.ucsd.edu\n\n\nIn article <C5r7tv.36s@odin.corp.sgi.com>, kubey@sgi.com (Ken Kubey) writes:\n I don't\n|> blame players like Galarraga, Dawson and McGee when they swing at\n|> a strike and put the ball in play.\n\nWell, no problem!  But I get pretty annoyed when they swing at non-strikes\nand make outs.  Especially ball four on the 3-2 counts...\n\nDave\n-- \nDave DeMers\t\t\t \t        demers@cs.ucsd.edu\nComputer Science & Engineering\t0114\t\tdemers%cs@ucsd.bitnet\nUC San Diego\t\t\t\t\t...!ucsd!cs!demers\nLa Jolla, CA 92093-0114\t(619) 534-0688, or -8187, FAX: (619) 534-7029\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 833, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dshanks@nyx.cs.du.edu (David Shanks)\nSubject: Re: Quicken 6 vs. Tobias' Managing Your Money\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nKeywords: Quicken Tobias\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 89\n\nIn article <1993Apr20.040449.19649@twg.com> q@twg.com (Michael Wiesenberg) writes:\n>Anyway, is anyone aware of a comparitive study of the two programs?\n>Or can someone just give me their own personal impressions?  Maybe\n\nPC Magazine, January 12, 1993 had a review of several personal finance\nmanagement programe, as did PC-Computing, January 1993.  PC World,\nDecember 1992 also had articles about Quicken and Managing Your Money.\nI can email you copies of these articles if you can't find them at your\nlibrary.\n\nI've been using Managing Your Money for several years, and I have\nseveral friends who use Quicken, though I've not used it myself.  My\noverall impression is that Quicken is a financial accounts manager\nwhile Managing Your Money will help you more completely manage your\nfinances.\n\nHere are some features that I believe Managing Your Money and Quicken share:\n\n\tThe ability to keep records for each of your financial accounts:\n\tchecking, savings, charge, cash, or brokerage.  You can reconcile\n\tyour account statements with the records the program keeps.\n\n\tThe ability to make a budget and track your spending against that\n\tbudget.\n\n\tA Checkfree module which will allow you to use the Checkfree bill\n\tpaying service to pay your bills via your modem.\n\t\n\tThe ability to print checks on your printer.\n\n\tThe ability to keep loan records and set up automatic loan payments.\n\n\tThe ability to import stock quotations to keep your brokerage accounts\n\tup to date.  I know Managing Your Money can do this automatically\n\tvia modem.  Quicken probably can as well, but I'm not sure about it.\n\n\tThe ability to export tax information to popular tax preparation\n\tprograms.\n\n\nHere are some features that I believe Managing Your Money has that\nQuicken does not:\n\n\tA tax prediction module.  This looks at your accounts and budget to\n\tpredict your tax liability for the coming year.  It's usefull to fine\n\ttune your withholding so Uncle Sam doesn't get his due too early.\n\n\tAn insurance and vital records module.  This is a place to keep\n\trecords of your insurance policies as well as other vital records.\n\tIt can also compute your life expectancy.\n\n\tA financial analysis module.  This computes compound interest, \n\teffects of inflation, loan payments term or interest, yield to\n\tmaturity for bonds, savings account yields, days between dates, and\n\tloan amortization schedules.  It also has functions to help you \n\tdecide whether to refinance your mortgage, whether you can afford\n\ta particular home, whether a particular rental property is a good\n\tinvestment, whether you should buy lease or rent, and whether\n\ta particular investment's cash flow is adequate for your situation.\n\tThis module can also help you plan for retirement and for helping\n\tyour kids with their tuition.  \n\n\tA net worth module.  This is a place to record all your assets\n\tand liabilities.  Your net worth can be computed from this \n\tinformation.  Any assets or liabilities recorded in other modules\n\tare automatically included here.\n\n\tA \"desk\" module.  This includes a small word processor, a card file\n\tyou can use to store names, addresses, phone numbers and other vital\n\tinformation about friends and associates, a perpetual calander, a\n\trudimentary calculator, a to-do list, a reminder list, an appointment\n\tlist, and a place to record your phone calls (for those who need to\n\ttrack such things).  Your appointments, reminders and to-do list\n\tcan be made to display automatically when you start the program.\n\nThere are probably some things listed above that Quicken has, but I'm almost\nsure that Quicken doesn't do everything I've listed.  If I'm wrong, I'm sure\nhordes of Quicken devotees will flame me to a crisp.\n\nOne thing that Quicken has that Managing Your Money does not yet have is a \nWindows version.  MECA software is rumored to be working on a Windows version\nof Managing Your Money for release late this year.\n\nI hope this information is of use to you.  I've found Managing Your Money to\nbe a very usefull program for keeping my financial records.  On the other hand\nI know many people who are equally as happy with Quicken.  If Quicken has all\nthe features you need or want, I'd go with it. If you find any of the Managing\nYour Money features that Quicken doesn't have to be useful, I think it's well\nworth the price.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 834, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: \"Cruel\" (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 26\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>>This whole thread started because of a discussion about whether\n>>or not the death penalty constituted cruel punishment, which is forbidden\n>>by the US Constitution.\n>Yes, but they didn't say what they meant by \"cruel\", which is why\n>a) you have the Supreme Court, and b) it makes no sense to refer\n>to the Constitution, which is quite silent on the meaning of the\n>word \"cruel\".\n\nThey spent quite a bit of time on the wording of the Constitution.  They\npicked words whose meanings implied the intent.  We have already looked\nin the dictionary to define the word.  Isn't this sufficient?\n\n>>Oh, but we were discussing the death penalty (and that discussion\n>>resulted from the one about murder which resulted from an intial\n>>discussion about objective morality--so this is already three times\n>>removed from the morality discussion).\n>Actually, we were discussing the mening of the word \"cruel\" and\n>the US Constitution says nothing about that.\n\nBut we were discussing it in relation to the death penalty.  And, the\nConstitution need not define each of the words within.  Anyone who doesn't\nknow what cruel is can look in the dictionary (and we did).\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 835, "properties": {"category": "comp.graphics", "text": "From: sigma@rahul.net (Kevin Martin)\nSubject: Re: CView answers\nKeywords: Stupid Programming\nNntp-Posting-Host: bolero\nOrganization: a2i network\nLines: 26\n\nIn <C5LEvt.1nJ@rahul.net> bryanw@rahul.net (Bryan Woodworth) writes:\n>In <1qlobb$p5a@tuegate.tue.nl> renew@blade.stack.urc.tue.nl (Rene Walter) writes:\n>[Most info regarding dangers of reading from Floppy disks omitted]\n>>unrevcoverable way.  SO BE CAREFUL!  It is incredibly poor programming for a\n>>program to do this...\n>Nevertheless, it is an important bug that needs to be squashed.  I am\n>merely pointing out that it was probably overlooked.  While it is serious,\n>one must keep in mind that it will probably affect at most 5% of the\n>targeted users of CView.\n\nOK, I don't use CView anymore, but I saw that no one had explaind this\n\"bug\" in the thread, so here goes:\n\nIt is NOT the fault of CView.  It is DOS!  If you leave a file open on a\nfloppy drive, then change the disk and do something which updates or closes\nthat file, you have a good chance of getting part of the directory and FAT\nfrom the other disk written to the new disk.  This has always been true,\nand has destroyed data under other programs, not just CView.\n\nThe only thing CView can do to improve the situation is to try not to leave\nfiles open unless it's actively using them (ie, reading and decoding).\n\n-- \nKevin Martin\nsigma@rahul.net\n\"I gotta get me another hat.\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 836, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gt3635a@prism.gatech.EDU (Greg 'Spike' Bishop)\nSubject: HELP!!!  My ESDI is posessed by demons!\nDistribution: usa\nOrganization: National Association for the Free Exchange of Information\nLines: 29\n\n\nHELP!  I really got ripped off and I need some help unripping myself.\n\nI bought a Maxtor 4380 300mb ESDI HDD from Hi-Tech for $300, then paid to\nget it repaired, for about another $300.  Here's the deal:  The thing works\nfine!  It low level formats, etc without any bad spots at all!  AND THEN...\n(Jaws Music) sectors start going bad!  EEK!!!  One at a time.  Norton disk\ndoctor keeps marking some U and some C.  That FIXES it.  For about 5 minutes.\n\nThen next day when I run NDD on it again: NO DICE more uncorrectable and\ncorrectable sectors.  AHHHHHUUUURRRRRRGGGGGHHHHH!!!!!  So I fugure: \"Ok, NDD's\njust not being thurough enough, I'll use Spinrite, I heard that works well.\"\nWhat happens?  Spinrite goes and returns the clusters to active use!!!  \nAHHHUUUURRRRRRGGGGGHHHH!!!!  NDD undoes it of course.  The problem seams to\nbe getting worse and worse.  HOWEVER when the HDD is low level formatted\nagain the problem goes away for a while, only to return in a day or so.\n\nI'm so pissed off right now I'm considering buying another HDD, and I really\ncan't afford it.\n\nI'm using SMARTDRIVE, and WINDOWS 3.1 (I'm not using the 32 bit disk access\nthough, I know that can create problems).  The disk is using the second\noption to trick the controller into thinking it's got less then 1024 cyls,\nand everything else selected is standard, maybe I need to use a different\nhead skew or something?  I don't know.\n\nANYONE WHO KNOWS HOW TO FIX THIS PROBLEM PLEASE TELL ME HOW!!!! HELP!!!!\n-- \nGT: \"Designing tommorow the night before with yesterday's technology.\"\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 837, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Their eyes gouged out by fascist Armenians: Armenian Barbarism.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 31\n\nAtrocity Reports Horrify Azerbaijan :\n\n\"Azeri officials who returned from the seen to this town about nine miles \n away brought back three dead children, the backs of their heads blown off...\n 'Women and children had been scalped,' said Assad Faradzev, an aide to \n Karabagh's Azeri governor.  Azeri television showed pictures of one \n truckload of bodies brought to the Azeri town of Agdam, some with their \n faces apparently scratched with knives or their eyes gouged out.\"\n Brian Killen (Reuters)\n The Washington Times, 3/3/92\n\n\nKillings Rife in Nagorno-Karabagh, Moldova:\n\n\"Journalists in the area reported seeing dozens of corpses, including some \n of the civilians, and Azerbaijani officials said Armenians began shooting \n at them when they sought to recover the bodies.\"\n Fred Hiatt\n The Washington Post, 3/3/92\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 838, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: schwenk@fred.cis.udel.edu (Peter A. Schwenk)\nSubject: Does Win3.1 use a math co-processor?\nNntp-Posting-Host: fred.cis.udel.edu\nOrganization: University of Delaware, Newark\nLines: 6\n\nIf a PC has one, does Windows 3.1 use a math co-processor?  I'm not talking\nabout specific apps, but the OS (if you want to call it that) itself?\n\nPlease respond by email.\n\n- Peter Schwenk (schwenk@cis.udel.edu)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 839, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: servis@author.ecn.purdue.edu (Brian K Servis)\nSubject: Re: Ghostscript for win fonts????\nKeywords: ghostscript,fonts\nOrganization: Purdue University Engineering Computer Network\nLines: 26\n\nservis@author.ecn.purdue.edu (Brian K Servis) writes:\nThat's me....\n>I just downloaded the Windows Ghostscript package(gswin252.zip,gs252ini.zip) \n>from ftp.  When I load a PS file it says it cant find font and substitutes a\n>font called Ugly. It is substituting for basic fonts such as Helv, and Cour.\n>I would imagine that these fonts are included in its font library. Is there\n>something I am doing wrong or am missing?  These Ugly fonts are not very clear\n>and well defined, as in sharpness, etc, basically they are ugly!  Any advice\n>is welcome.\n\n\nOk, I realize I have to get the font files from some ftp site.  I found them\nat cica but I now have another question.....\n\nAre the 24*.zip fonts compatible with gswin252??\n\n>Please email\n\nBrian Servis\n===========================================================================\n||  servis@author.ecn.purdue.edu   ||         \"It Happened This Way\"     ||\n===================================|| actual quotes from insurance claims||\n||  What I say may not be what I   ||                                    ||\n||  think. What I say may not be   ||  \"The pedestrian had no idea which ||\n||  what Purdue thinks.            ||   way to go, so I ran him over.\"   ||\n===========================================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 840, "properties": {"category": "talk.politics.mideast", "text": "From: oz@ursa.sis.yorku.ca (Ozan S. Yigit)\nSubject: Re: Public Service Translation No.2\nIn-Reply-To: dbd@urartu.sdpa.org's message of Fri, 16 Apr 1993 04: 57:08 GMT\nOrganization: York U. Student Information Systems Project\nLines: 54\n\nDavid posts a good translation of a post by Suat Kinikliouglu:\n\n[most of the original post elided]\n\n   [KK] ***** VATAN SEVGISI RUHLARI KIRDEN KURTARAN EN KUVVETLI RUZGARDIR *****\n\n   In translation, as a public service:\n\n[most of the translation elided]\n\n   ***** THE LOVE OF THE FATHERLAND IS THE STRONGEST OF ALL WINDS CLEANSING\n         FILTH OFF SOULS *****\n\nI think this part of the translation is questionable. Although I\nthink the original quote is plain silly, you made it sound as if\nit is coming from a neo-nazi youth. For example, Turks talk of a\n\"motherland\" not a Germanic \"fatherland\". Why \"filth\" instead of\n\"dirt\"? The indeterminacy of translation is a well-known problem\n[1] so one may have to \"fudge\", but with some care of course. Is\nthe following an equally valid translation?\n\nThe love of one's country is the strongest wind to cleanse one's\nsoul.\n\nSee my point?\n\nNevertheless, I think you translate well.\n\noz\n---\n[1] Willard Van Orman Quine\n    Word and Object\n    MIT Press, Cambridge, Mass\n    1960\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 841, "properties": {"category": "comp.windows.x", "text": "From: brians@atlastele.com (Brian Sheets)\nSubject: Looking for a filemanager under X11R5\nOrganization: Atlas Telecom Inc.\nDisclaimer: Views expressed do not necessarily represent those of my employer.\nLines: 9\n\nDoes anyone have a file manager that runs under UNIX/X11R5??\n\n\nbrians\n-- \nBrian Sheets\t\t    _   /|  \t\"TRUCK?! What truck?\"\nSupport Engineer  \t    \\`o_O'    \t \nAtlas Telecom Inc. \t      ( ) \t   -Raiders of the Lost Ark\nbrians@atlastele.com           U\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 842, "properties": {"category": "sci.crypt", "text": "From: boucher@csl.sri.com (Peter K. Boucher)\nSubject: Pseudo-Random Character Generators (large state)\nOrganization: UTexas Mail-to-News Gateway\nLines: 171\nNNTP-Posting-Host: cs.utexas.edu\n\nHere are four pseudo-random character generators, based on\nirreducible trinomials.  Each contains 16 separate trinomials,\none of which is selected on initialization (there are 64\ndistinct trinomials between the 4 PRCGs).  The PRCGs are\ninitialized with a 32-bit seed, and a 4-bit trinomial-\nselector.\n\nI would like to get comments on these by anyone who is\ninterested enough to look them over.  Please email,\nbecause our news is on the fritz (Note that this was\nposted via email).\n\nPeter K. Boucher    <boucher@csl.sri.com>\n\n================ CLIP CLIP =================================\n\nbegin 660 rnd.tar.Z\nM'YV0<MR0B>%B#(\"#\"!,J7,BPH<.'$\"-*1 BBH@T;,$  J AB!@T:&D'$D!&C\nM!LB-'#G:N$$C1L4:,VS4B$$SI@R.-4C6V#BQI\\^?0(,*'4JTJ-&C2),J71KQ\nMA0H0\"D \\#3BP((@6+:*JT,H1RIPR=<B\\:2$GC, W;4\",01.F[!@Z9>2 .%/&\nM3=PP=-[(<5%12)BO9$\"\\<0,B#)LS>M/00=.&:\\4Z@$&D(;RX# @A4XB J.(F\nM#1X0*.BT20&BK$\"K<^B089-&#(@V;\\C485/&A6,04.2\\L9.&3)DY(FV H),'\nMSF_!9G!+<7($M&$V(\"!//@,\"SALV>=R@36,8^!LSMRN#,*,W+185*L* 6 'B\nMO K7[&.DL\"V5ZY W</+(27,&#1V1.>0P VYEP\"77$GP)\\48=:\\7%%11QM9'&\nM''.D,=AP;T3W%0MJX9<'A[\"1D889'Q8F$ @BIK:?&'7 -1P:$W(UQW=TW-&6\nM968%IAAP8HU11QMUT8&7A821)Y=9>517AQS6?65B8'<HAL:\"='!E1AF630@\"\nM&G&5(4:29Y@&%QD<PJ$;;[X%MAA>+^(HQFZ6C>'A?OU5*14(VM&1QA@XPF%<\nM6Y(1]ER'<*3Q&WTJO*\"  B/X9L9DEA%1Q!%?9!33#8PZ\"BD(4Q0!1:4BW1##\nMHHV6\\:A=($A*J4LTS#!JJ:=:UNFG+LD  PRD:HJJJE_<5 ,,,V1JZJ:S]@J\"\nM##3@D.NPNT[ZQ8 TV! LK,1Z^NRQ,=\"P;*RI.@L2#3#D(\"RWQ8*$ Z;C;LIK\nM#2#8$ .FU*):++NVXIINLY0*)ZJX\\<IJK7 EV=MOMY3>T*ZK]_K[J<$SP(#N\nMP+SB  (.,DRKJ\\)?2\"P##@)?3/ 7.4Q\\;L*<6AOR##%MJZZS,634\\@S\\>EQL\nMRR\"TI\"S)O-(D4KCPRFRMSCC8H#*^7XPDD@PWQ,PLQD:3)#3.+ ](DX DSRSU\nM#<%\"O2I(([U;]<\\@P9PUQ\"RS&P/,2I/[,[VV+IK:D&-4Q,9@9R20P-MPQ;#%\nMQR6!T,4.\"N\"]I]QTVZV\"&7#0(4<,@ L>-PASNU%W BHPJ3CC@0NIY^.13ZY\"\nM761\\D?CB@\"M0AQL5GF%78&NUI0!5,:\"0@@)[*)\" '&6<,:&!T:'.W^J0%YX&\nMX+?GOGM<P4M.N1D!T=$#XI=S6'D9;?5@.>F+)I &\"#U(Q;P;_[$W?5O$']X\\\nM]Y(1/R(*%:VPPO?_@>!#]R\" +OKE%9$&0NT)I 0_^G@K ^;ZQQ'WX8Y\\MNM#\nM_=C@I/W9+B7K:]\\*#B@7^='/?J-S\"0CT1T$ :DZ Q.N#[:\"WN.<UCWC7BX'U\nMJ\"<'%!9H26Y@'PI.ESK@M4X.*4#!]GS@@YV1)@6 $Z$\"[/\"&WH#@*W3X E6^\nM\\)4R#(1]3233<(ICF=FE!'>Z2PWR:/@[)R:/.E$$7$JXJ#HO3B9^Q#%.Z?B'\nMQ>/)A8S ZYSV./2?[J6Q#\"8HB0NSR#LX>E&.O@D3EDIWNPQZ$\"\\@M-T<HD2'\nMM;#O/Z2I74HFR9$Q_,4R,-\"![1(02-Q9IGN\\@@'Q$H!!_'4O@\"YA3RA'24*7\nMG/*#J2S9IT2Y23$<< UBI.0D+>FD&&C2;IW$$OIR-LI2+NZ0>5L/WUAIR%<B\nM,I8S&Z4MJ8?+J.@R);RTC Q^R<G<>7*8SI)!,05ROV,Z,YFJ#\"<S37E$6\"JS\nM6.*LY2US><V*9+,CW SF)S\\V@W&&KIGM?*8R>=7/3;82F0)\\I[4*:K=IAJ&:\nM]:SD)6N63V\\*$Y3>\\F<Y71E0='Z,!NLT9T<3RIYR27.>UHSH/6M044'N<UT:\nM!2@J!^JL&H24HS,MJ;5L*D]JTK.>][1!2[^)T7S%E)TY_9@-;HI0:/[KI#Y-\nM*5 G>H.A7O1C-SBJ2)/*JZP:5*;NU.G\"H/K0GU[SGCBPZDN=A0.MXC2L'VOK\nM5Y$*UV+)M:$HC:@])YH#M8*34CEP:U-I\"EBFGI.DL@0962&JUWNVS*]%+1HM\nM[6;,MPHTG:N:; (.>EBGTDJS#F6L2B=*$\\CR;8\"D)\"=8+WM:PX[4LT5#;6C-\nMJDO';G.3^OQKT>))6=72E;4YX^UF5^O1F0EWME(]*VEG8-J<,32U__RM1YWK\nMVJ1:;;&TI:1C:=!<EH%TDY4=+&:+]EV[<?:U\"J55>1. 7+VJA;0LQ:U%U[HJ\nMGO8VNEN%:\\[L.USI(G9F_$5N D1X-UCN+2-= \"\"6R$ \\([%O>]UCG&1 P ,4\nMS7<'DG'?!BO\"OY1$$7TH0.46TI#@\"+]L)CFA00U4\\.'X5$S%0$R@[7+;/12T\nM3 7Z) U[0KS@$N2XP7IY,/I$.>$*ZQ/#:= P!P42NQ@+D2D H(H,\"@+E*D-9\nM)1@)244\\<I*CE:3+E%P)N%X2DYG4Q 8W>8E.>&+E-KOYS7\".LYSG3&>B. 4J\nM=Y*R5;\"BE=MX!2QB(4N.T*(6MKB%=W2Q2UGRLI>^7#(P%S(,8O:SF,;<Z3&1\nMF4R;+I.9S73F,Z$936ERA!K5L,8U(9I-;?Q\\IMX<)P;\"N:-WD@.%Y30'!8.2\nMCN2J<YWL;*<[R D/E\\93GO:@1SWL<0]\\1#*?/M_I/OFADW\\ )\" \"\\0Y!EUE0\nM@^3PH A-J$(7RHN&RL A.>4'1+$948ERA*+=K:A%EEE,C.XT(S/4Z$9/D@P=\nM>/0&'P$)?$.ZD)%,E\"0X+*E).#H1(Z?4(BL)4TM<PMV7YB(F)Y:IU6EZ$9O$\nM$X8WV2%.<^*/?[B2ISWUZ4]RT?2@S&VH.2!*45H#U0QP8+&E)=9E,+@9V58%\nM@IR\\RF>T\"H[./<:KFV#DYS:'Y[%@((.A1<I9 [(!#7J6](6*Y%=._VB['/:U\nM3W%MZEE?%PAN,).N?X%=KNJ8S7DEG!S Q.S\"D0&RPNXL@^7@!E17V\\)JQC&Z\nM4TIB LI[M3XE,5<];><@VQG\"!E:LD-'D\\$1GF<M*@G2]2Q8$.5 [MW+FDI'@\nM(&V#C^VQ:-#TF!OM;$@SN]&B!?FU1TTD,R\")Z@>4$[^3%_;N4CU(:M#ZS9=-\nM). \"O;S6!B!M90YNA%->@1$I@[WMUV^-T]S@OF@X$L;3<<GWW/6N+WW.%8YR\nMQHRGZ7Q71M89^G4\"D8'L:&>[-FKQC>2/H_#VZ$;JFP]\\SQN=#*1'0>OIGY 0\nMYCWG(SX45#[_TSW#8SL1M![O<SX65!'AES\\<]D <<8 CQ5LI84 L%$(+U$ =\nMQA$+J(& \\H#UXUMRD&8<Q$((Q5L$9GTF!#XHI'\\KA$#%0P<P)$-^9'YMD4,[\nMU$,V\\$-!M\"A$9$1(I$3D%$7J=T0+1D=4M$%2Y7Y]%']_1#=*Z$0_E8.!@D94\nMM$;M9SSOUSLU-(7*DP9TA#YWE$?V!85;)(6! 4@7ECW;MX+$LTB*X4C#L6&2\nMU%@3E4GRY5*ZI5D1>%@W,5Z:97TKF%Z5@EW)55NDU5V4(ER!>(&$530A=1.\"\nMB(BRE5=ZZ\"2W!4SSI5N0:(*6*(GC)5R&>(EBU2N*Z%[WQ%Q]2%3\\I%6C&$\"#\nM&(MS=8*'F(K/U5Z;:!G<]8I7Q2OK%8FT.(GK=8JDF%CKQ8NCY23QY8E^&%G\\\nM18P?5(LP=8NS6(V(&&\":V(R6(53 2%]?L%3@)8JYJ%25>([%0HYX%56L2%6.\nM^ 5>=5_EE(W,-XGSV%^XB(J)E8_,.%5.DE;AJ%MW!5WU>(X1DX[\\:%>KV(N8\nM%X^!58[X98]P88W.$I'FI7_J:#(-Z8T[$X\\M(XL(*7D*F8PS UK=\")\"645H#\nM&5DT(9+\\R'DE68RI^)(]55:+J%VDU8G=%(U\\$XH3.9*K8HH:N9 _<UPIJ5R]\nMY(K0\"(O4)9$'&9-1,Y/:6).[F)2,V$N_V)3!Z%TPF8PY<XQ%:9)@TY$J>74@\nM.8WF*)7U197W6)/<&%4#IDC5>&!^HV!6.$)!-F$1AF049F$NA61*-H$$5!$?\nM5F.T.&(E)A(G5A+(LF(M=C0>40,Q-I<]\"8LV!@,X-E\\Z!AI1Y&.<\"61R(&3=\nM0V3;8V07EF'LL61DH'Y.MB@* &54,0-45F>VV1!8EA$HT1$?$1)=8Q):-DEB\nMEF8P(1,T<39HAA-R!P-L=IO.^9S0&9W2.9U'<6=<,9M[EA7U<6FX\\15A,1:F\nM(19I<4-A\\!;(DVAWP6A\\<1F/)AB\"<AB)46FW 1EF1!G#AAF:P1F> 1JB01KA\nM66JKT1JO$1NJABA=@7&O%FM4-&O*P1S.P0;0H6O481W8H1T2 FS?(6R6823F\nM<6S*I&S*)!^(8A\\A5R?4-B 0<FT)HFT1UVUR(\"$40B08,F[EYB'H)B(DPB'L\nMEB**TQKP]B+S]A3U=F^XDV\\[@B+]]B-!$G!%HA<$IR1,\\@9.PFX+1R4.ER7 \nM$7%> B85)T5FLANNIB9L\\1\\<YW$@%VTB9R=/47)\\4AA^HH(J!Z&$TG(O9WL9\nM,77\"AS$9(7?&AWBL C.J=W6]MS*/V',VD*>)=1,DH7F$>BTS\\':,9W7O,C:1\nM1RD@<0.I%ZE>)Q)]%W/L<@.':G;T FNV)QPX@ .5%WIQES(Q9S TAZC%8C F\nM87N EP.I.GR$5S.8:GN.=RNP:C+ -W2NEUF,\"2RJYS)29WLZ,Q(P<*M,XQ(S\nM)ZR^-Y1'<W>J=Q,QD /2VJAG WN9\"G1%,R SL*NF]W7AHGLUDZRF9S;)\\JNT\nM0B^U=WR;DWUV$T SX'R_]S?R.GURM#RC4U#81WV4<ST VWWT\"GXF6%#C%X8Z\nMR&VSN7YLY(51R+#4EX#%PT?((T?WYSPD- /\\QT+^IS@*JSWHL['*-#XM9#LF\nMBX#J8P;LPX#_0X+&-\" ;YD\"%.1[G<U@,E8$3M($)U(&68;,0Y+(2U$$RF[ 2\nM6!HJJ+,A-$+_^H)T$(,B.X,I6X,W\"!I8>$,\\*#\\]= - J !\"-(2!481+%$4S\nM $5+.$7&X817)+%K2+&=4X4,)E58>$85<4=<>+'UAX5R1(9W:$=4A(;T]X5\\\nM6SA'!H?_BE ,18>-A :/A(<YN4M[&(^ B+0Z.XF%F+B7FXHHZ8X.Z4LM:8OT\nMJ+DC-2#CA5H=J[B8:)9*J4WQ\")3E-\"\";^S%$*;*JFXI(Z;D>R927V964\\EPS\nM>[NBJX^R6[J(>)6Z>Y9;V;OB.(R6:[SC)9:V.[LF=9.B=9;/R+RZI9;X5;SV\nM.HG\\E;K4NU.LFY7?&(_L:)\"D^[WCE;[B\"[V)E;[_V+IC%X_Y&+RSVU4AY;T?\nM9+K]6+XZ&9#Q6)#X\"[\\)>8O\\BTC^RY#6FUV2ZR1]%;J\\@I'J.[T&?)'[*[R-\nM!\\ /O))\\R)7B&))0N;[].XDBG)$6S+Z)=<+LA94!O)*@\"\\*Z99.CF\\(E?+JH\nM2\\(*C(F9F+ST.Q(@\";LZ#!?^&UP9/+ZTDKLX^8Y+\"9+ ^[PJ_)0H+ <)3,28\nMB+Q+_+G+2V-\\X[S=*[QA><3P.S/+Z,(=C)827#9:5<5E4,1JC, :O#:*:)GV\nM:I>+&49Z.9I\\*1)^B9J!J9HU^X&&N6 @5L<DACXT 2PH]I@L1L@N-IF526!<\nMG)F;Z5*=R6-.!)J6+)JD\"0*F^9='!LBL>;:O&9M+014T4)O426>Y&9Q<YILZ\nM 6;\"R1+$66;':1/*21+-N<J\\W,N^_,O C!36F6<\"D<IQPV?;^105\\6??*6AG\nM,9Z&5IZ(5A?IJ1?KZ1>1$6GP26F,,9^99I^6@9^>MI^AYI^D%C>I$:\"H1J\"T\nM8:#+C*#  6MJ>QS?T:\"WEFL5LFL4ZFL7RD#!QIWBP:'&EAX?BA[+)J+.]A30\nMIA]I>J+6ACS8IB ,TJ)W B$O^FTR*F[T6:/G-J XNFXGPJ/OYB+R-@<R0B,V\nM4J3L=J0]HJ0 IR<\"YZ1( J4(EV]5VG!W<B58NB5=,G%A8A9C<G%@FG%K0J;#\nMUG%P0B@,72<D]P:;<W)P^I[0P7*'HA4PAWAWVJQFYS(WP*A$\\Z<U9WF=%P/;\nM2C0WD2R\"AZO&D@-]6JG7LA)A'7H#(@/QBG@@(77.JHP=,:A$PRX<XZYGAWFE\nMAWBF6@-IC3'\" 2Z#[=9VMQ)F9S\"+2JN*%]=J+3$TH*V\\NC/28G8A8RME_73$\nM2A,R -@TX]G*.M:0\"JXZ(P,V\\-D_>305<ZT]=ZK**C7(0MIS/:[*RC67@JYG\nMT];#6C3L&MN:*MS'LC%N8[ \"&T T@*_U!7W[ZGW*=SBC\\UT!VZ^54]W1AWP\"\nM^SDF^%T+VT4-BWYD0 ,0VX48\"W]P.W_H77\\:\"S_YIS@T\\+'5<SW@3;+=8[($\nMZ+/+D[/IHX!$\"[,..#\\0^-U)*\\@X\"SX(55X\\6X _6P8,%+0('H(].X($7H+X\nM!1(UVT&'55XM6-U0*[5R0 -4ZT(V&! XR(:%MH,ZQ+7',@-?&[9%-+8%8H2A\nM$T7F+;=,N+96Q!%JJ-[B_45R>X4J;K?SG+<_#H9!WK=E\"+C&(;CM3;@J[H:!\nMB;CRO>!SR$AV\"$D.Q,281+E:!1(=CKDA)>8C!1*<R\\'8U(AI;*EAON F7.9P\nM7I-J+E&<^+IO/N:E*.=ZGJAUOE=.PKM<3%!Y?N:3^%PD9.;,?;Q__EY.LL6?\nM&%E>7$Z*_D%H_E%\\;NBI6,8^;+X]%X_<2^ES_C'A6]VC/B^-'E3H6^B+WKZ9\nMWNKQF^KPV.;RR.J6CH^O?NNIZ(]FO.8\"3.L$;.!]?L!37.F(=.D,W(Y9[)$1\nM+,.11<'&9.QP<>D3G.O'CH@4/+^>_EBTSL+1/NHYD[E7WN<G*>N]%,/:ZY*H\nM]>W#SC(Y/.Z:OL(]O.QG\"<3=+L3P#NM&?(O27@;(?I3FOI*\"'NE\\\\\\09#NY3\nMR>^G_C-8?+T_#.D^&<8CG.^ZWL76/NV8R.GT_L/9.^AO7,,CCO!MJ?#D+L<-\nM+&/+-^UVC)=SNUE[&8 2=IJ Z4F\"N9J$Z6&$C)B6KIB(W)@I!IF.+)DPUK3I\nM#AHWEF/*A,EDH,F>5)D.ML>?[,<T+\\H5@<JR$X2F',Q:O_5<W_5>__5@'_9B\nM/_9D7_9F?_9HGQ!^6C. 6MR=QWNVYRNA6MR*VC*V)ZZI776?<C64&MR7^JUZ\nM_P5<TZF(]ZES#ZZCRM>@/8XBD]?K^.**CU43T_;@*JO /:T9@WFV:G:63:Z(\nMUZOG6MR.ERS*.GG&ZO;(>OG<VGFVXO@_ ZVT;7K8.MJ'O<+8BMFF)S6Q5_M6\nMTQ&>[];9 GRAK]K?HJY^RJZ?IWKP6GK7_7UUS#?LHJ_-/]T=N]WSVMT$:_W\\\nM^GW>W;VED[7G][\"S$['IK>3E5[&#RSOOW3SQ3<7T+0<A2\\4 6++_L]\\TN++_\nMK3T![CXQ>^'!&\\@4J\")8('M%/!H<?U,@$,X#!4#)L/\\J7 7Q?TAKPRVMTD7T\nM.E:(:S]/R\\%9+12'M52<UFIQ/&3LQ#@A-..44!(I6POF;.FX><:V?)S; G+G\nM+V[AL3%2Y!3<D5L4Y&]O33GAT>3F&9336U)NO2F/PX4!;9@\"RW)UR''=H4@2\nMN7S=EZ-UE>N+Y2]G(>ZH6!R;)0%/),0C@Q>[P!C+$&,J+)J</\"]W+/#<Q+.\"\nM4_ 1@<$;YN?&H$,:>!$/ZJPQ+_B[UN .TT59$.(YI8QR!MF8&W-S< R)\";XL\nMV/$(WC4\">7X0?-E!*Y:*XM+&\\W3@R-FAHSY(!\\?1(FQCB$A^]3H[9QFJ\"JV[\nM7U\",#>JO0#C&K 6OZW0O;&(,L#F8!C/&)5Q@UJ(@:;M4V.R*7K6CA*V0@KVO\nM,,B1W*!'XG:2,-RQP@N665XA)NI<CS 5LJ1@Z.Z&811KAJ20%]**>>?PMAU/\nM\\GA#R1F*0I91N]!@*4QB6?!L.#%M> <+GC&T2N%0#_HN\\D(.&:'%BX9LD(R%\nMPT(8!T<>(JR$>@0>ED, ,\\<(S/-#,\"R/D^VQF ?*4E.2L7E\"BR,<)L_4OWB>\nMB5%DCDG%-#(O\\LB&'LJ;9$>/,R6]S_1C\\E@GBWHS;Y!0O=(@$$@9UF,*J$R5\nMI;V?T,IVTRO;\"+])EJ6$X41FC-.923,]1^[$@%VV$GNB3_R)SVF8385BEIT2\nM6E?P3H$F/!$:\\F2>Y )Z6C36S-%DL_<T::2$I5%FXT9'@#-.DY\\^#7\\2-?\\)\nMG9D: 95JVAFK&6H):IXQJ%KCH'\"-G))0O*9\"_1I_EJ$ VK 1:.X!V0RT@]9L\nMDAD(6&C2YC]DJVJ3HB#:BIIH#J*B>9L8%6XRQ$93:C=*W>BHD.9N?!1)@Q$F\nMC=Z@-'RSTO8-DO(W2PJF-:DCX08*SL&14@D'2D@)*Y73'DZ6ZFE<\"JA9G.J \nMH,34QCEJ9DJI!<:F]M3<%,H)%(5!3E$UEV/5[%3-T&K%C:MYM<4'U@(537!M\nM18?O\\#YK<1/8VMUK%UC#[,RUNN;6[EI+,#MA(_*)G;\\FJ@1;J9H8A@WN',?%\nM%MP:VW3<.Y$MYDB,ET'9,(9EPWV?3[/5Q\\32V7).Z6-,H^U8+1WHZ.X84]X3\nM:[6BM2FKV4?<5)NOB'U^RK9=MMGSXAX&\\.-MCLWM\\3;5]]6&VWX$,,?M9DR_\nMR<'<G)MQDW[*#;LE.NTGW;2/=HMN!ZO[4;KOYP'#7S$[;T!P8BTY]I8C,U;A\nMV%CM;[Y)A?YCW^9??JM_0Y*_X3^+1>'ZWP4Q< #P9@U 2U< \"X@#Y$ )4,(M\nM0 IGM\"#@P9. @*+#54 0!S]$'(G3@+CCQ,60#DBQ/F />G$C<(B40+)UA!9,\nMCHLB.ZZ*/*$7:/[DSZZ9@1RA;ME O(4#HYR.C($\\\\&_YP'S8(V&@GZP;1+\"0\nM4+QCAP0;U^-B@F3P@]E\"*FCKKATANGC^#A$APVJH#./1I#-U[6Y5@,I_1RNR\nMX#4TA.KD#/8[:A<KB]W\"^Q1*C%2>,3BX!^N@K!1YSV)5,CI?J+Q,9:?$>-%+\nM6&XZ0@CJCF6H'\"^E;E(BR\\3B\"'6E$VP7J^Y7IDI+2/+BW3K*@IZ0&18,9TDK\nMQV6WA'6Q*@L*)''I\"K5EO\"-V^FA6(B)9N D!G66HA=A0L;A+?8?!SF7%VV#$\nM\\H=IRGSI[83=NR1)_M)3KK!1Z<\"NY3+<E*MBW1E,?ADQE:6\\\"X>OLA[N%G)I\nMPKJAO*Q)N;)A<D+8,P[W9<638O'R5H:K= B23J6T?);OT%:6//4R#],2QSQ=\nMT3+DS4SAU@_ITK%;>:=DP0A$F-?'0F(9J'E1$N=Y$9WW,P_90WQ4$1'H442A\n=1YF('D;43$AOQW#$T.01H5[1#&4'<</=R%+&% !Y\n \nend\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 843, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Clipper chip -- technical details\nOrganization: AT&T Bell Laboratories\nLines: 121\n\nI received the following two notes from Martin Hellman with details\non how Clipper will work.  They are posted with his permission.  The\nimplications of some details are fascinating.\n\n-------\nDate: Sat, 17 Apr 93 23:05:23 PDT\nFrom: \"Martin Hellman\" <hellman@isl.stanford.edu>\nTo: (a long list of recipients)\nSubject: Clipper Chip\n\n\nMost of you have seen the announcement in Friday's NY Times,\netc. about NIST (National Institute of Standards & Technology)\nannouncing the \"Clipper Chip\" crypto device. Several messges\non the net have asked for more technical details, and some have\nbeen laboring under understandable misunderstandings given\nthe lack of details in the news  articles. So here to help out\nis your friendly NSA link: me. I was somewhat surprised Friday\nto get a call from the Agency which supplied many of the missing\ndetails. I was told the info was public, so here it is (the cc of this\nto Dennis Branstad at NIST is mostly as a double check on my\nfacts since I assume he is aware of all this; please let me know\nif I have anything wrong):\n\nThe Clipper Chip will have a secret crypto algorithm embedded in \nSilicon. Each chip will have two secret, 80-bit keys. One will be the \nsame for all chips (ie a system-wide key) and the other will be unit \nspecific. I don't know what NIST and NSA will call them, but I will \ncall them the system key SK and unit key UK in this message. \nThe IC will be designed to be extremely difficult to reverse so \nthat the system key can be kept secret. (Aside: It is clear that \nthey also want to keep the algorithm secret and, in my opinion, \nit may be as much for that as this stated purpose.) The unit key \nwill be generated as the XOR of two 80-bit random numbers K1 \nand K2 (UK=K1+K2) which will be kept by the two escrow \nauthorities. Who these escrow authorities will be is still to be \ndecided by the Attorney General, but it was stressed to me that \nthey will NOT be NSA or law enforcement agencies, that they \nmust be parties acceptable to the users of the system as unbiased. \nWhen a law enforcement agency gets a court order, they will \npresent it to these two escrow authorities and receive K1 and \nK2, thereby allowing access to the unit key UK.\n\nIn addition to the system key, each user will get to choose his \nor her own key and change it as often as desired. Call this key \nplain old K. When a message is to be sent it will first be \nencrypted under K, then K will be encrypted under the unit key UK, \nand the serial number of the unit added to produce a three part \nmessage which will then be encrypted under the system key SK \nproducing\n\n     E{ E[M; K], E[K; UK], serial number;  SK}\n\nWhen a court order obtains K1 and K2, and thence K, the law \nenforcement agency will use SK to decrypt all information \nflowing on the suspected link [Aside: It is my guess that \nthey may do this constantly on all links, with or without a \ncourt order, since it is almost impossible to tell which links \nover which a message will flow.] This gives the agency access to \n\n     E[M; K], E[K; UK], serial number\n\nin the above message. They then check the serial number \nof the unit and see if it is on the \"watch list\" for which they \nhave a court order. If so, they will decrypt E[K; UK] to obtain K, \nand then decrypt E[M; K] to obtain M.\n\nI am still in the process of assessing this scheme, so please do \nnot take the above as any kind of endorsement of the proposed \nscheme. All I am trying to do is help all of us assess the scheme \nmore knowledgably. But I will say that the need for just one court \norder worries me. I would feel more comfortable (though not \nnecessarily comfortable!) if two separate court orders were \nneeded, one per escrow authority. While no explanation is\nneeded, the following story adds some color: In researching\nsome ideas that Silvio Micali and I have been kicking around,\nI spoke with Gerald Gunther, the constitutional law expert\nhere at Stanford and he related the following story: When\nEdward Levi became Pres. Ford's attorney general (right\nafter Watergate), he was visited by an FBI agent asking\nfor \"the wiretap authorizations.\" When Levy asked for\nthe details so he could review the cases as required by\nlaw, the agent told him that his predecessors just turned\nover 40-50 blank, signed forms every time. Levi did not\ncomply and changed the system, but the lesson is clear: \nNo single person or authority should have the power to\nauthorize wiretaps (or worse yet, divulging of personal\nkeys). Sometimes he or she will be an Edward Levi\nand sometimes a John Mitchell.\n\nMartin Hellman\n\n----\n\nDate: Sun, 18 Apr 93 11:41:42 PDT\nFrom: \"Martin Hellman\" <hellman@isl.stanford.edu>\nTo: smb@research.att.com\nSubject: Re: Clipper Chip\n\nIt is fine to post my previous message to sci.crypt \nif you also post this message with it in which:\n\n1. I ask recipients to be sparse in their requesting further info \nfrom me or asking for comments on specific questions. By\nthis posting I apologize for any messages I am unable to\nrespond to. (I already spend too much time answering too much\ne-mail and am particularly overloaded this week with other\nresponsibilities.) \n\n2. I note a probably correction sent to me by Dorothy Denning.\nShe met with the person from NSA that\nI talked with by phone, so her understanding is likely to\nbetter than mine on this point: Where I said the transmitted\ninfo is  E{ E[M; K], E[K; UK], serial number;  SK}\nshe says the message is not double encrypted. The system\nkey (or family key as she was told it is called) only encrypts\nthe serial number or the serial number and the encrypted\nunit key. This is not a major difference, but I thought it\nshould be mentioned and thank her for bringing it to\nmy attention. It makes more sense since it cuts down\non encryption computation overhead.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 844, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: husak@ux1.cso.uiuc.edu (Stephen R. Husak )\nSubject: Tape Drive Problems\nArticle-I.D.: ux1.C52szz.489\nOrganization: University of Illinois at Urbana\nLines: 17\n\nPlease reply via e-mail since this is job related: \n\nI have a Colorado Jumbo back-up system at one of my places of \nemployment and it has eaten two tapes by winding the tape off the spool.\n\nIs there an easy fix or is the tape drive fried? Does it simply need \ncleaning?\n\nAny and all comments will be appreciated!\n\nStephen Husak\n\n-- \n\"What am I trying to do, what am I trying to say, I'm not trying to tell you \n anything you didn't know when you woke up today...\"\n\t\t\t\t- Depeche Mode \"Nothing\" MUSIC FOR THE MASSES\n-= Stephen R. Husak - husak@ux1.cso.uiuc.edu - Univerisity of Illinois\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 845, "properties": {"category": "rec.motorcycles", "text": "From: cdw2t@dayhoff.med.Virginia.EDU (Dances With Federal Rangers)\nSubject: Re: Misc./buying info. needed\nOrganization: University of Virginia\nLines: 28\n\nIn article <1993Apr18.160449.1@hamp.hampshire.edu> jyaruss@hamp.hampshire.edu writes:\n\n>Is there a buying guide for new/used motorcycles (that lists reliability, how\n>to go about the buying process, what to look for, etc...)?\n\n_Cycle World_ puts one out, but I'm sure it's not very objective.  Try talking\nwith dealers and the people that hang out there, as well as us.  We love to\ngive advice.\n\n>Is there a pricing guide for new/used motorcycles (Blue Book)?\n\nMost of the bigger banks have a blue book which includes motos -- ask for the\none with RVs in it.\n\n>Are there any books/articles on riding cross country, motorcycle camping, etc?\n\nCouldn't help you here.\n\n>Is there an idiots' guide to motorcycles?\n\nYou're reading it.\n\n----------------------------------------------------------------------------\n|        Cliff Weston           DoD# 0598          '92 Seca II (Tem)       |\n|                                                                          |\n|   \"the female body is a beautiful work of art, while the male body       |\n|    is lumpy and hairy and should not be seen by the light of day.\"       |\n----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 846, "properties": {"category": "talk.politics.mideast", "text": "From: perlman@qso.Colorado.EDU (Eric S. Perlman)\nSubject: Re: Final Solution for Gaza ?\nSummary: Davidsson can't even get the most basic facts right.\nNntp-Posting-Host: qso.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 27\n\nIn article <1483500354@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n>\n>[...]\n>The Gaza strip, this tiny area of land with the highest population\n>density in the world, has been cut off from the world for weeks.\n>The Israeli occupier has decided to punish the whole population of\n>Gaza, some 700.000 people, by denying them the right to leave the\n>strip and seek work in Israel.\n\nAnyone who can repeate this choice piece of tripe without checking\nhis/her sources does not deserve to be believed.  The Gaza strip does\nnot possess the highest population density in the world.  In fact, it\nisn't even close.  Just one example will serve to illustrate the folly\nof this statement:  the city of Hong Kong has nearly ten times the\npopulation of the Gaza strip in a roughly comparable land area.  The\ncenters of numerous cities also possess comparable, if not far higher,\npopulation densities.  Examples include Manhattan Island (NY City), Sao\nPaolo, Ciudad de Mexico, Bombay,... \n\nNeed I go on?  The rest of Mr. Davidsson's message is no closer to the\ntruth than this oft-repeated statement is.\n\n-- \n\"How sad to see/A model of decorum and tranquillity/become like any other sport\nA battleground for rival ideologies to slug it out with glee.\" -Tim Rice,\"Chess\"\n     Eric S. Perlman \t\t\t\t <perlman@qso.colorado.edu> \n  Center for Astrophysics and Space Astronomy, University of Colorado, Boulder\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 847, "properties": {"category": "rec.autos", "text": "From: keys@starchild.ncsl.nist.gov (Lawrence B. Keys)\nSubject: Re: WARNING.....(please read)...\nOrganization: National Institute of Standards & Technology\nLines: 44\n\nIn article <1qk7t5$dg@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>ejv2j@Virginia.EDU (\"Erik Velapoldi\") writes:\n>>What the hell is happening to this great country of ours?  I\n>>can see boyhood pranks of peeing off of bridges and such, but\n>>20 pound rocks??!  Has our society really stooped this low??\n>\n>You make it sound like this behavior is new.  It isn't.  A lot of\n>pedestrian bridges have fencing that curls up over the sidewalk to\n>make this kind of think a lot harder to do.\n>\n>I don't understand the mentality myself, but then again I couldn't\n>figure out MOVE! (I'm glad they bombed 'em) or the Waco Wackos either.\n            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nI know that this isn't the group for it, but since you brought it up,\ndoes anyone have any idea why they haven't \"bombed\" the Waco cult?    \n\nJust curious.\n\n\n>\n>(Newsgroup list trimmed significantly)\n>\n>jim frost\n>jimf@centerline.com\n\n                                                  .  \n                                                 /                \nLarry                            __/    _______/_                 \nkeys@csmes.ncsl.nist.gov       /                  \\               \n                          _____     __     _____    \\------- ===\n            ----------- / ____/   /  /   /__  __/              \\\n         /     ___    /  / ___   /  /      / /    ____          |\n        |    /      \\/ /__ /  | /  /__  __/ /__ /       \\      / \n        /___         \\_______/ /_____/ /______/            ====OO\n            \\       /                           \\       /         \n                -            1990 2.0 16v           -\n\n\n       ---------------- FAHRVERGNUGEN FOREVER! --------------------            \n            The fact that I need to explain it to you indicates\n            that you probably wouldn't understand anyway!\n       ------------------------------------------------------------\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 848, "properties": {"category": "rec.motorcycles", "text": "From: Wayne.Orwig@AtlantaGA.NCR.COM  (Wayne Orwig)\nSubject: Re: Antifreeze/coolant\nLines: 20\nNntp-Posting-Host: worwig.atlantaga.ncr.com\nOrganization: NCR Corporation\nX-Newsreader: FTPNuz (DOS) v1.0\n\nIn Article <1993Apr15.193938.8569@research.nj.nec.com> \"behanna@syl.nj.nec.com (Chris BeHanna)\" says:\n> \tFor those of you with motorcycles of the liquid-cooled persuasion,\n> what brand of coolant do you use and why?  I am looking for aluminum-safe\n> coolant, preferably phosphate-free, and preferably cheaper than $13/gallon.\n> (Can you believe it:  the Kaw dealer wants $4.95 a QUART for the Official\n> Blessed Holy Kawasaki Coolant!!!  No way I'm paying that usury...)\n> \n> Thanks,\n> -- \n> Chris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\n> behanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\n> Disclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\n> agree with any of this anyway?    I was raised by a pack of wild corn dogs.\n> \nI thought that all coolants were aluminum safe any more. But I would\nlike to know more since I must tear down my Kawasaki (again I must add).\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 849, "properties": {"category": "talk.politics.mideast", "text": "From: pgf5@cunixa.cc.columbia.edu (Peter Garfiel Freeman)\nSubject: Hamas methods of Murder\nNntp-Posting-Host: cunixa.cc.columbia.edu\nOrganization: Columbia University\nLines: 9\n\n\n\nIf anyone gets the New York Times, the Edit page has a transcript\nof a VHS from Hams describing their methods of torture and \nexecution. I will post it later on.\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 850, "properties": {"category": "soc.religion.christian", "text": "From: healta@saturn.wwc.edu (TAMMY R HEALY)\nSubject: Re: SDA Doctrinal Distinctives\nOrganization: Walla Walla College\nLines: 15\n\nIn article <Mar.17.02.04.45.1993.23612@athos.rutgers.edu> jodfishe@silver.ucs.indiana.edu (joseph dale fisher) writes:\n\n|There is a book provided by the SDA which is entitled \"The Seventh Day\n|Adventist Church believes\", or something like that.  It is a basic\n|coverage of the 30 ideas that SDA's hold to.  For further info about it,\n|please write me later (once I get the actual title and/or copyright\n|date) or Celia Chan, cmchan@amber.ucs.indiana.edu, because she first\n|\"introduced\" me to the book (I must also add that she is NOT a member of\n|the SDA anymore).\n\nThe book is called \"27 basic fundamental beliefs\" or something very close to \nthat.  the number *IS* 27, not 30.  I have a copy at home (i'm away at \nschool.)\n\nTammy\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 851, "properties": {"category": "rec.autos", "text": "From: marshatt@feserve.cc.purdue.edu (Zauberer)\nSubject: Re: WARNING.....(please read)...\nOrganization: Purdue University\n \n Can we please stick to AUTOMOTIVE topics . Thank you.\nLines: 1\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.041+0000", "event": "documents", "entityId": 852, "properties": {"category": "rec.sport.hockey", "text": "From: MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF)\nSubject: Re: Sweden-Finland, April 14\nIn-Reply-To: etxonss@ufsa.ericsson.se's message of Thu, 15 Apr 1993 06:32:53 GMT\nOrganization: Abo Akademi University, Finland\nX-News-Reader: VMS NEWS 1.24\nLines: 36\n\nIn <1993Apr15.063253.17375@ericsson.se> etxonss@ufsa.ericsson.se writes:\n\n> \n>  Played in Stockholm Globe arena, April 14 1993:\n>  ===============================================\n> \n>  SWEDEN - FINLAND  4-3 (2-0,0-2,2-1)\n> \n>  1st: SWE 1-0 Jan Larsson        (Stefan Nilsson,Patrik Juhlin)       3:15\n>       SWE 2-0 Peter Popovic      (Mikael Renberg,Thomas Rundqvist)   16:20\n>  2nd: FIN 2-1 Mika Nieminen      (Ville Siren,Mikko Haapakoski)       0:40\n>       FIN 2-2 Timo Saarikoski    (Vesa Viitakoski,Harri Laurila)     17:48 (sh)\n>  3rd: SWE 3-2 Fredrik Stillman   (Stefan Nilsson,Patrik Juhlin)       7:35 (pp)\n>       SWE 4-2 Mikael Renberg                                          8:40\n>       FIN 4-3 Saku Koivu         (Mika Alatalo)                      13:17\n> \n>              Shots on goal:      Penalties:     Attendance:    Referee:\n>  Sweden      14 12 15 - 41       4*2min         12,470         Borje Johansson\n>  Finland     12  9  9 - 30       9*2min                        (Sweden)\n> \n> -------------------------------------------------------------------------------\n\nWell, if things were different and I had my way, the headline would be: \"NHL,\nEuropean Division regular season game: Stockholm Storm vs. Helsinki Tornado\n4-3...\" Two games against every North American-based team (46 in all), and this\nmight have been the ninth and final regular season encounter between Helsinki\nand Stockholm. The remaining 27 games would involve Paris, Dortmund, Milan...\nA nice dream.\n\nMARCU$\n\n> -------------------------------------------------------------------------------\n> --\n>  ((\\\\  //| Staffan Axelsson            \n>   \\\\  //|| etxonss@ufsa.ericsson.se    \n> \\\\_))//-|| r.s.h. contact for Swedish hockey  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 853, "properties": {"category": "sci.electronics", "text": "From: exuptr@exu.ericsson.se (Patrick Taylor, The Sounding Board)\nSubject: Re: How to the disks copy protected.\nNntp-Posting-Host: 138.85.253.85\nOrganization: Ericsson Network Systems, Inc.\nX-Disclaimer: This article was posted by a user at Ericsson.\n              Any opinions expressed are strictly those of the\n              user and not necessarily those of Ericsson.\nLines: 36\n\nIn article <1993Apr21.131908.29582@uhura.neoucom.edu> wtm@uhura.neoucom.edu (Bill Mayhew) writes:\n>From: wtm@uhura.neoucom.edu (Bill Mayhew)\n>Subject: Re: How to the disks copy protected.\n>Date: Wed, 21 Apr 1993 13:19:08 GMT\n\n>Write a good manual to go with the software.  The hassle of\n>photocopying the manual is offset by simplicity of purchasing\n>the package for only $15.  Also, consider offering an inexpensive\n>but attractive perc for registered users.  For instance, a coffee\n>mug.  You could produce and mail the incentive for a couple of\n>dollars, so consider pricing the product at $17.95.\n\nOr, _documentation_ for the program ;-).  A lot of shareware out there is \nvery similar in the approach - send in your money, and you get \ndocumentation, and a free upgrade to the latest version.  Perhaps even \nsupport of some small degree.  Whatever you want to offer that is \"better\" \nthan the circulating version.\n\n>You're lucky if only 20% of the instances of your program in use\n>are non-licensed users.\n\nFigure about 50%, as I have seen.\n\n>The best approach is to estimate your loss and accomodate that into\n>your price structure.  Sure it hurts legitimate users, but too bad.\n\nIt doesn't really hurt legit users.  Shareware is still much cheaper than \nthe alternatives.\n\n ----------------------------------------------------------------------------\n ---------Visit the SOUNDING BOARD BBS +1 214 596 2915, a Wildcat! BBS-------\n\n ObDis: All opinions are specifically disclaimed. No one is responsible.\n\n    Patrick Taylor, Ericsson Network Systems  THX-1138\n    exuptr@exu.ericsson.se                    \"Don't let the .se fool you\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 854, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: al@col.hp.com (Al DeVilbiss)\nSubject: Re: WinBench\nArticle-I.D.: hp-col.1pqp3rINNg85\nDistribution: world\nOrganization: HP Colorado Springs Division\nLines: 18\nNNTP-Posting-Host: reptile4.col.hp.com\n\njorge@erex.East.Sun.COM (Jorge Lach - Sun BOS Hardware) writes:\n> Is there any FTP site that carries WinBench results for different graphics\n> cards? In Excel (XLS) format? What is the latest version of WinBench and\n> how do they differ? Is the source available, and has anybody try to port it to\n> X-Window, at least in a way that will make comparisons possible?\n> \nOn ftp.cica.indiana.edu in pub/pc/win3/misc/winadv.zip is a writeup by\nSteve Gibson of InfoWorld with winbench 3.11 and a number of other \nbenchmark results for nine isa and four VLB video cards.  This is a \nvery current upload and is likely to have any card you're currently \ngiving serious consideration.  Not in XLS format.  Latest version of\nWinBench that I know of is ver 3.11.  I believe they try to maintain\nthe same rating scale between versions, and new versions are released\nto defeat the lastest coding tricks put in by driver programmers to\nbeat the benchmarks.  Don't know on the last one.\n-- \nAl DeVilbiss\nal@col.hp.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 855, "properties": {"category": "soc.religion.christian", "text": "From: atterlep@vela.acs.oakland.edu (Cardinal Ximenez)\nSubject: Atheists and Hell\nOrganization: National Association for the Disorganized\nLines: 26\n\n\n  Hello,\n\n  I have seen two common threads running through postings by atheists on the \nnewsgroup, and I think that they can be used to explain each other.  \nUnfortunately I don't have direct quotes handy...\n\n1) Atheists believe that when they die, they die forever.\n\n2) A god who would condemn those who fail to believe in him to eternal death\n   is unfair.\n\n  I don't see what the problem is!  To Christians, Hell is, by definition, \neternal death--exactly what atheists are expecting when they die.  There's no\nreason Hell has to be especially awful--to most people, eternal death is bad\nenough.\n  Literal interpreters of the Bible will have a problem with this view, since\nthe Bible talks about the fires of Hell and such.  Personally, I don't think\nthat people in Hell will be thrust into flame any more than I expect to Jesus\nwith a double-edged sword issuing from his mouth--I treat both these statements\nas metaphorical.\n\nAlan Terlep\t\t\t\t    \"...and the scorpion says, 'it's \nOakland University, Rochester, MI\t\tin my nature.'\"\natterlep@vela.acs.oakland.edu\t\nRushing in where angels fear to tread.\t\t\t\t--Jody\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 856, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: THE HAMAS WAY of DEATH\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 15\n\nIn article <1993Apr17.160731.3178@nntpd.lkg.dec.com> alaa@peewee.unx.dec.com (Alaa Zeineldine) writes:\n>nstramer@supergas.dazixco.ingr.com (Naftaly Stramer) writes:\n>: \n>:                      THE HAMAS WAY of DEATH\n>:  \n>:      (Following is a transcript of a recruitment and training\n>: videotape made last summer by the Qassam Battalions, the military\n>>\n>Alaa Zeineldine\n\nWhile you brought up the separate question of Israel's unjustified\npolicies and practices, I am still unclear about your reaction to\nthe practices and polocies reflected in the article above.\n\nTim\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 857, "properties": {"category": "talk.politics.misc", "text": "From: s0xjg@exnet.co.uk (Xavier Gallagher)\nSubject: Re: Why not concentrate on child molesters?\nOrganization: ExNet Systems Ltd Public Access News, London, UK\nLines: 68\n\nIn article <1993Apr03.102200.4802@armory.com> rstevew@armory.com (Richard Steven Walz) writes:\n>In article <C4tI6G.8C3@exnet.co.uk> sys1@exnet.co.uk (Xavier Gallagher) writes:\n>>In article <C4oBCK.761@unix.portal.com> drakon@shell.portal.com (Harry Benjamin Gibson) writes:\n>>>There is something that bothers me about this whole arguement.\n>>>\n>>>\n>>>5) Could someone please CALMLY explain why homosexuality is such a great sin?\n>>>   Without giving the standard \"Just because God sez so\". Almost all of Judeo-\n>>\n>>\n>>\n>>Thanks for your posting, I enjoyed it.\n>>\n>>The reason Homosexuality is a sin is because the Jews were a struggling\n>>group of people trying hard to survive and differentiate between\n>>themselves and their oppressors.  This led to several things.\n>>\n>>1. Worshipping one god.  All their foes were polytheistic.\n>>\n>>2. All sex was put in to a moral context.  All their foes were perverts\n>>   and spilled their seed liberally.  \n>--------------------------------\n>It's just as easy to spill seed or spread it thin heterosexualy, why then\n>the specific prohibition on homosexuals, especially since the answer to\n>everything back then was stoning to death, doesn't help population growth\n>much. Also to just say that \"their foes were perverts\" begs the question,\n\nThe key word is `spilled'.  If semen was spilled anywhere where there\nwas a chance of procreation it was OK.  If it was spilt on the ground or\nin to a man it was a big sin, ditto with animals. The jews said sex=pro-\ncreation.\n\nHomosexuals didn't breed, there fore they are evil and should be stoned\nto death.  \n\n\n>\n>>3. All sex was directed towards breeding.  The jews were few in number\n>>   and their foes many.  To survive everything had to go into multiplication.\n>--------------------------------------\n>Like I said, stoning to death doesn't help population much. It sounds more\n>like a set of prejudices that already existed and were blown into a religion\n>to emphasize the differences of Jewish culture and enshrine some pretty\n\n\nStoning non-breeding population was fine.  Only the breeders were\nconsidered to be worth much.\n\n>>   1% Jesus, 70% Judaism, 29% original (prejudiced) Bullshit.\n>-------------------------------\n>I'll buy the bullshit. He was a profound misogynist as well. He might have\n>been bitterly gay himself. No record of marriage.\n>-RSW\n>\n>>>Ben Gibson\n>>Xavier\n>\n>\n>-- \n>* Richard STEVEn Walz   rstevew@deeptht.armory.com   (408) 429-1200  *\n\n\nXavier\n-- \n* Xavier Gallagher*************************** Play  ***************************\n*     Cheap       * Part time Dark Overlord *  by   ** s0xjg@exnet.co.uk ******\n* World Wide UUCP *    Of the universe      * email ***************************\n* Feeds & E-mail  *************************** =-->  Advanced Dungeons & Dragons\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 858, "properties": {"category": "talk.politics.guns", "text": "From: franceschi@pasadena-dc.bofa.com\nSubject: Re: Gov't break-ins (Re: 60 minutes)\nOrganization: Bank America Systems Engineering, Pasadena, CA\nLines: 20\n\nOn a Los Angeles radio station last weekend, the lawyers for the\nfamily of the MURDERED rancher said that the Los Angeles Sheriff's\nDepartment had an assessment done of the rancher's property before\nthe raid.\n\nThis strongly implies that the sheriff's department wanted the property;\nany drugs (which were not found) were only an excuse.\n\nIn Viet Nam, Lt Calley was tried and convicted of murder because his\ntroops, in a war setting, deliberately killed innocent people. It is time\nthat the domestic law enforcement agencies in this country adhere to\nstandards at least as moral as the military's.\n\nGreed killed the rancher, possibly greed killed the Davidian children.\nGovernment greed.\n\nIt is time to prosecute the leaders who perform these invasions.\n\n\nFred Franceschi   (These are my own opinions!)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 859, "properties": {"category": "sci.space", "text": "From: eder@hsvaic.boeing.com (Dani Eder)\nSubject: Re: Guns for Space\nKeywords: Sopa Gun, Space Launcer\nOrganization: Boeing AI Center, Huntsville, AL\nLines: 22\n\nIn reference to the limits of acceleration with guns launching solid\nrockets as payloads.  Thiokol provided me with samples and data on\na reinforcement to solid motor grains for high accelerations.  Solid\nmotor propellants usually have a substantial percentage of \naluminum in the mix.  For example, the Space Shuttle SRBs are 16 percent\nAluminum.  The technique is to use a 'foamed aluminum' structure.\nThe structure looks like the inverse of a set of bubbles (an I suspect\nsome bubbling process is used to form it).  In other words, if you made\na bunch of bubbles in molten aluminum, then froze it, this is what\nyou get.  It forms a strong network of effectively aluminum wires in\nall directions.  The remaining solid fuel mix is infiltrated into\nthe voids, and you get aluminum-reinforced solid propellant.  The\nfoamed-aluminum makes up about 6 percent of the total propellant,\nso there is still aluminum particles in the bulk grain.  The major\nimprovement is the higher resistance to grain cracking, which is the\nprincipal failure mode for solid propellant.\n\nDani Eder\n\n-- \nDani Eder/Meridian Investment Company/(205)464-2697(w)/232-7467(h)/\nRt.1, Box 188-2, Athens AL 35611/Location: 34deg 37' N 86deg 43' W +100m alt.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 860, "properties": {"category": "soc.religion.christian", "text": "From: rsteele@adam.ll.mit.edu (Rob Steele)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nReply-To: rob@ll.mit.edu\nOrganization: MIT Lincoln Laboratory\nLines: 19\n\nIn article <Apr.13.00.08.22.1993.28397@athos.rutgers.edu>  \ntrajan@cwis.unomaha.edu (Stephen McIntyre) writes:\n\n> Well, then, Buddhism, Confucianism, Taoism, Hinduism, Judaism,\n>      Zoerasterism, Shintoism, and Islam should fit this bit of logic\n>      quite nicely... :-)  All have depth, all have enduring values,\n>      thus all must be true...\n\nYep.  There's truth in all those religions, even in science.   \nChristianity doesn't claim to know it all.  It does claim certain  \nthings are true though that contradict other religions' truth claims.   \nSo they can't all be true.\n\n------------------------------------------------------------\nRob Steele                 In coming to understand anything \nMIT Lincoln Laboratory    we are rejecting the facts as they\n244 Wood St., M-203       are for us in favour of the facts\nLexington, MA  02173      as they are.    \n617/981-2575                              C.S. Lewis\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 861, "properties": {"category": "rec.sport.hockey", "text": "From: wdsst3@cislabs.pitt.edu (William D Sands)\nSubject: request for video in Pittsburgh area\nKeywords: Sunday afternoon\nOrganization: University of Pittsburgh\nLines: 11\n\n\n\tThere was apparently a 30 minute special here on the Penguins' \nseason on ABC (WTAE - channel 4), immediately preceding the opening \ngame against the Devils on Sunday.  I only turned it on in time to \nwatch the credits.  If anyone taped it and is willing to let me borrow \nit to dub it, I would appreciate it.  I would be willing to come pick \nit up, and I'll return it the next day and buy you a beer.  Please \nrespond via e-mail.  Thanks a lot.\n\tOh yeah.  Was it any good?\n\t\t\t\t\t\t-Billy\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 862, "properties": {"category": "talk.politics.misc", "text": "From: tzs@stein2.u.washington.edu (Tim Smith)\nSubject: Re: The state of justice\nOrganization: University of Washington School of Law, Class of '95\nLines: 31\nNNTP-Posting-Host: stein2.u.washington.edu\n\ndemon@desire.wright.edu (Not a Boomer) writes:\n>\tA judge denied GM's new trial motion, even though GM says it has two\n>new witnesses that said the occupant of the truck was dead from the impact, not\n>from the fire.\n>\n>\tThoughts?\n\nHow can a witness tell that someone in a burning truck is dead rather than\nunconscious?\n\n>\tIt's kind of scary when you realize that judges are going to start\n>denying new trials even when new evidence that contradicts the facts that led\n>to the previous ruling appear.\n>\n>\tOr has the judge decided that the new witnesses are not to be believed? \n>Shouldn't that be up to a jury?\n\nWhat kind of witnesses?  If we are talking about witnesses who were at\nthe accident, or were otherwise directly involved (e.g., paramedics,\nemergency room doctors, etc.), then they should have been used at the\nfirst trial.  You don't get a new trial because you screwed up and\nforgot to call all of your witnesses.\n\nIf we are talking about new expert witnesses who will offer new\ninterpretations of the data, note that the loser can *ALWAYS* find\nsuch witnesses.  If this were grounds for a new trial, then the loser\ncould *ALWAYS* get a new trial, and keep doing so until the loser\nbecomes a winner (and then the other side would come up with new\nexpert witnesses).\n\n--Tim Smith\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 863, "properties": {"category": "sci.crypt", "text": "From: tom@ssd.csd.harris.com (Tom Horsley)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: Harris Computer Systems Division\nLines: 27\n\t<1993Apr20.150531.2059@magnus.acs.ohio-state.edu>\n\t<1993Apr20.192105.11751@ulysses.att.com> <C5sy1z.4tD@demon.co.uk>\n\t<1993Apr21.132318.16981@ulysses.att.com>\nNNTP-Posting-Host: amber.ssd.csd.harris.com\nIn-reply-to: smb@research.att.com's message of Wed, 21 Apr 1993 13:23:18 GMT\n\n>I don't like the unit key generation process any better than you do.\n>However -- S1 and S2 are supposed to be under control of the same\n>escrow agents.  If they can't be trusted to keep the seed values secure,\n>they can't be trusted to keep the half-keys secure.\n\nI hope there is something I don't understand about this system, but can\nsomeone tell me how these chips are going to be manufactured while maintaining\neach half key under total control of the separate escrow agencies? Don't\nboth halfs of the key have to come together (in some form) at the time\nthe chip is constructed?\n\nOr is it built like a fusable prom, with the chip being sent to the 1st\nescrow agency to program its 1/2 key, then the 2nd agency to program its\n1/2 key (but who invents the safeguards that prevent the 2nd agency from\nreading the information already programmed by the 1st)?\n\nThis isn't intended to be a flame or anything, I am just really curious\nhow to manufacture these things while still maintaining the key escrow\nsecurity without simply saying \"trust the manufacturer, they won't look\".\n--\n======================================================================\ndomain: tahorsley@csd.harris.com       USMail: Tom Horsley\n  uucp: ...!uunet!hcx1!tahorsley               511 Kingbird Circle\n                                               Delray Beach, FL  33444\n+==== Censorship is the only form of Obscenity ======================+\n|     (Wait, I forgot government tobacco subsidies...)               |\n+====================================================================+\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 864, "properties": {"category": "rec.motorcycles", "text": "From: irwin@cmptrc.lonestar.org (Irwin Arnstein)\nSubject: Re: BMWMOA Controversy\nDistribution: usa\nOrganization: CompuTrac Inc., Richardson TX\nKeywords: BMWMOA Board, history of contretemps\nLines: 24\n\nIn article <1993Apr15.163043.12770@pb2esac.uucp> prahren@pb2esac.uucp (Peter Ahrens) writes:\n>In article <1095@rider.UUCP> joe@rider.cactus.org writes:\n>>>vech@Ra.MsState.Edu (Craig A. Vechorik) writes:\n>>>...good ol boys that have been there too long. \n>>\n>> [...] while I agree with you that the current\n>>board is garbage, voting you in would simply be trading one form of trash \n>>for another...do the opponents of your selections get equal time...? \n>\n>Yo' Joe, why don't you post what you really think?\n>\n>If there are any rational BMWMOA folks left out there, may the rest of\n>us please have a brief summary of the current state of affairs in your\n>esteemed organization, together with an historical outline of how you\n>got to the above contretemps?\n>\n\nNow you know why I am just a DOD member.  I like bikes and clubs but\nthe politics and other b*llsh*t is a real turn-off.\n-- \n-----------------------------------------------------------------------\n\"Tuba\" (Irwin)      \"I honk therefore I am\"     CompuTrac-Richardson,Tx\nirwin@cmptrc.lonestar.org    DoD #0826          (R75/6)\n-----------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 865, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Panther's President\nOrganization: University of Toronto Chemistry Department\nLines: 20\n\nIn article <0P6a3B1w165w@cybernet.cse.fau.edu> jimg@cybernet.cse.fau.edu (Jim Gorycki) writes:\n>\n>A little Bio from _Sun-Sentinel_\n>Torrey, the architect of four consecutive Stanley Cup champions as \n>persident and general manager of the New York Islanders.\n>Throughout his 27 years in the NHL, Bill Torrey's bow ties have become\n>as much of a signature as Andre Agassi's hair.\n>\n>The Panthers will introduce a uniform, insignia, and ticket-price \n>information in early next month.  In the meantime, Huizenga leaves the\n>day-to-day operation in the hands of Torrey and Bob Clarke, the VP and\n>GM.\n>\n\nThe San Jose Sharks and Ottawa Senators are each on their second GM\nalready...I'd be willing to wager that both the Sharks and Senators\nwill probably see their 3rd GM's and perhaps their 4th, before we\nsee the Panthers second.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 866, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: louray@seas.gwu.edu (Michael Panayiotakis)\nSubject: Re: Share your optimization tips\nArticle-I.D.: seas.1993Apr6.155426.14581\nOrganization: George Washington University\nLines: 46\n\nIn article <1993Apr5.163224.9526@cbfsb.cb.att.com> rmm@cbnewsg.cb.att.com (richard.m.maniscalco) writes:\n>In article <1pm61pINNp45@geraldo.cc.utexas.edu> jbodnar@ccwf.cc.utexas.edu (John Bodnar) writes:\n>>According to e_p@unl.edu (edgar pearlstein):\n>>>        Here's another one:\n>>>\n>>>        5.  My computer arrived with the following statement in its\n>>>            config.sys file:  STACKS = 9,256.  I changed it to\n>>>            STACKS = 8,128 and saved 1296 bytes.  Maybe it could be\n>>>            lowered even more, but I haven't tried it. \n>>\n>>Exactly.\n>>\n>>Regardless of what Microsoft says, I have set STACKS=0,0 on every single\n>>computer I have installed Windows on from a simple 386SX-16 up to 486DX-50\n>>with EISA motherboards, NDI Volante TIGA adapters, Intel Ethernet Express\n>>cards, and caching SCSI controllers from DPT and DTC.\n>>\n>>Not a problem yet, and the extra 2K+ gained means a lot with conventional\n>>memory gobbling programs like OrCAD and Tango PCB.\n>>-- \n>>John Bodnar                          : \"While we liked developing Windows\n>>The University of Texas at Austin    :  applications, we never inhaled.\"\n>>Internet: jbodnar@ccwf.cc.utexas.edu : \n>>UUCP: ....!cs.utexas!ut-ccwf!jbodnar :       -- Borland CEO Philippe Kahn\n>\n>\n>\n>I remember reading somewhere (QEMM manual, I think) that \n>STACK=9,256 is needed only for the Windows SETUP program.  \n>Otherwise, use STACK=0,0.\n>\n>\tRich>\n>\n\n\nHmmmmmm...I got my comp with windows pre-installed, and stacks is still\n9,256.  if it was needed only for setup, wouldn't the morons take it\noff???  (also, I don't have the qemm manual, as verything came with the\ncomp,  but not the qemm manual, so could anyone verify this???)\n\nMickey\n-- \npe-|| ||  MICHAEL PANAYIOTAKIS: louray@seas.gwu.edu \nace|| ||                                   ...!uunet!seas.gwu.edu!louray\n|||| \\/|  \"Jack Straw from Wichita, cut his buddy down,\n\\\\\\\\   |   Dug for him a shallow grave, and lay his body down...\" (GD)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 867, "properties": {"category": "comp.graphics", "text": "From: bryanw@rahul.net (Bryan Woodworth)\nSubject: Re: CView answers\nKeywords: Stupid Programming\nNntp-Posting-Host: bolero\nOrganization: a2i network\nLines: 18\n\nIn <1qlobb$p5a@tuegate.tue.nl> renew@blade.stack.urc.tue.nl (Rene Walter) writes:\n[Most info regarding dangers of reading from Floppy disks omitted]\n>unrevcoverable way.  SO BE CAREFUL!  It is incredibly poor programming for a\n>program to do this.  On the other hand, when choosing files in the Open Files\n>menu, CView insists on doing a few disk reads every time one moves the\n>hi-lighter square.  Incredibly annoying when it could do them all at once\n>when it gets the directory info.  And really, how much effort does it take to\n>sort a directory listing?\n\nIn all fairness, how many people do you know personally who read images\nfrom Floppy drives?  I haven't tried it with JPEGs, but I do realize how\nagonizingly slow it is with GIF files.  \n\nNevertheless, it is an important bug that needs to be squashed.  I am\nmerely pointing out that it was probably overlooked.  While it is serious,\none must keep in mind that it will probably affect at most 5% of the\ntargeted users of CView.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 868, "properties": {"category": "comp.windows.x", "text": "From: tim@kimba.catt.citri.edu.au (Tim Liddelow)\nSubject: Installing MIT X11R5 on Apollo\nOrganization: CATT Centre at CITRI, Melbourne, Australia\nLines: 14\n\nCan any Apollo GURUS out there let me know of their experiences building MIT X11R5,\nwith or without GCC 2.3.3.  In particular, is there anything I should watch out for.\n\nThanks in advance\n\n--tim \n________________________________________________________________________________\n  Tim Liddelow                                          for(;;) fork();\n  Systems Programmer\n  Centre of Advanced Technology in Telecommunications   My brain on a bad day.\n  CITRI, Melbourne, Australia                           \n  internet : tim@kimba.catt.citri.edu.au                \n  Phone : +61 3 282 2455   Fax : +61 3 282 2444\t        \n________________________________________________________________________________\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 869, "properties": {"category": "sci.electronics", "text": "From: f92anha@fy.chalmers.se (Anders Hammarquist)\nSubject: Re: Need to find out number to a phone line\nOrganization: Chalmers University of Technology\nLines: 11\n\nIn article <23321@mindlink.bc.ca> Sean_Oliver@mindlink.bc.ca (Sean Oliver) writes:\n>> Joseph Mich Krzeszewsk writes:\n>>         890 the phone company will read the number of the phone you are on\n>\n>Where I live, I use BCTEL. The number to dial is 211 for the same result.\n>\n\nIn NY City, the number to dial is 958... It seems to be different in different\nareas.\n\nAnders\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 870, "properties": {"category": "rec.autos", "text": "From: ljbartel@naomi.b23b.ingr.com (Les Bartel)\nSubject: Re: Aftermarket air-conditioners\nReply-To: ljbartel@naomi.b23b.ingr.com\nOrganization: Intergraph Corporation\nLines: 30\n\nIn article <1qcaueINNmt8@axon.cs.unc.edu> Andrew Brandt writes:\n|> I looked into getting a/c installed on my 1987 Honda CRX Si.\n|> The unit is $875 plus shipping, installation is like 5 1/2 hours on\n|> top of that.  This is a hunk of change.\n|> \n|> Does anyone know *any* place that does aftermarket a/c installation\n|> (not with a Honda a/c unit, but some third party unit).\n|> \n|> I cannot seem to find anyone who can put a third party a/c unit in a\n|> Honda.  I am in No Carolina, so I would prefer some place nearby, but\n|> any references would be handy.\n|>\n|> Thx, Andy (brandt@cs.unc.edu)\n\nSorry I can't help you with your question, but I do have a comment to\nmake concerning aftermarket A/C units.  I have a Frost-King or Frost-Temp\n(forget which) aftermarket unit on my Cavalier, and am quite unhappy with\nit.  The fan is noisy, and doesn't put out much air.  I will never have\nan aftermarket A/C installed in any of my vehicles again.  I just can't\ntrust the quality and performance after this experience.\n\n - les\n\n-- \nLes Bartel\t\t\tI'm going to live forever\nIntergraph Corporation\t\t... or die trying\nElectronics Division\t\t\nljbartel@ingr.com\nor ljbartel@naomi.b23b.ingr.com\n(205) 730-8537\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 871, "properties": {"category": "soc.religion.christian", "text": "From: caralv@caralv.auto-trol.com (Carol Alvin)\nSubject: Re: The arrogance of Christians\nLines: 88\n\nvbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) writes:\n> In article <Apr.13.00.08.35.1993.28412@athos.rutgers.edu> caralv@caralv.auto-trol.com (Carol Alvin) writes:\n> > (Virgilio (Dean) B. Velasco Jr.) writes:\n> >> (Carol Alvin) writes:\n> >> > ...\n> >> >Are all truths also absolutes?\n> >> >Is all of scripture truths (and therefore absolutes)?\n> >> >\n> >> The answer to both questions is yes.\n> >\n> > ...\n> >an absolute is something that is constant across time, culture,\n> >situations, etc.  True in every instance possible.  Do you agree\n> >with this definition? ...\n> >\n> Yes, I do agree with your definition.  ...\n>  \n> > [example of women covering their heads and not speaking]\n> \n> Hold it.  I said that all of scripture is true.  However, discerning\n> exactly what Jesus, Paul and company were trying to say is not always so\n> easy.  I don't believe that Paul was trying to say that all women should\n> behave that way.  Rather, he was trying to say that under the circumstances\n> at the time, the women he was speaking to would best avoid volubility and\n> cover their heads.  This has to do with maintaining a proper witness toward\n> others.  Remember that any number of relativistic statements can be derived\n> from absolutes.  For instance, it is absolutely right for Christians to\n> strive for peace.  However, this does not rule out trying to maintain world\n> peace by resorting to violence on occasion.  (Yes, my opinion.)\n\nI agree that there is truth in scripture.  There are principles to be \nlearned from it.  Claiming that that truth is absolute, though, seems \nto imply a literal reading of the Bible.  If it were absolute truth \n(constant across time, culture, etc.) then no interpretation would be \nnecessary.\n\nIt may be that the lessons gleaned from various passages are different \nfrom person to person.  To me, that doesn't mean that one person is \nright and the other is wrong.  I believe that God transcends our simple \nminds, and that scripture may very well have been crafted with exactly \nthis intent.  God knows me, and knows that my needs are different \nfrom yours or anyone else's.  By claiming that scripture is absolute,\nthen at least one person in every disputed interpretation must be wrong.\nI just don't believe that God is that rigid.\n\n> >Evangelicals are clearly not taking this particular part of scripture \n> >to be absolute truth.  (And there are plenty of other examples.)\n> >Can you reconcile this?\n>\n> Sure.  The Bible preaches absolute truths.  However, exactly what those\n> truths are is sometimes a matter of confusion.  As I said, the Bible does\n> preach absolute truths.  Sometimes those fundamental principles are crystal\n> clear (at least to evangelicals).  \n\nThis is where the arrogance comes in to play.  Since these principles \nare crystal clear to evangelicals, maybe the rest of us should just take\ntheir word for it?  Maybe it isn't at all crystal clear to *me* that \ntheir fundamental principles are either fundamental *or* principles.\n\nI think we've established that figuring out Biblical truth is a matter \nof human interpretation and therefore error-prone.  Yet you can still \nclaim that some of them may be crystal clear?  Maybe to a certain \nsegment of Christianity, but to all.\n\n> >It's very difficult to see how you can claim something which is based \n> >on your own *interpretation* is absolute.  \n> \n> God revealed his Truths to the world, through His Word.  It is utterly \n> unavoidable, however, that some people whill come up with alternate \n> interpretations.  Practically anything can be misinterpreted, especially\n> when it comes to matters of right and wrong.  Care to deny that?\n\nNot at all.  I think it supports my position much more effectively \nthan yours.  :-)\n\nSo, I think that your position is:\nThe Bible is absolute truth, but as we are prone to error in our \ninterpretation, we cannot reliably determine if we have figured out \nwhat that truth is.\nDid I get that right?\n\nWhat's the point of spending all this time claiming and defending \nabsolute truth, when we can never know what those truths are, and we \ncan never (or at least shouldn't) act upon them?  What practical \ndifference can this make?\n\nCarol Alvin\ncaralv@auto-trol.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 872, "properties": {"category": "rec.sport.hockey", "text": "From: franti@polaris.utu.fi (Pasi Fr{nti)\nSubject: Re: Helsinki/Stockholm & NHL expansion?\nOrganization: University of Turku, Finland\nLines: 25\n\nMLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF) writes:\n\n>Not too low perhaps, but surely not as high as that of an European NHL\n>division. The Finnish team, for example, would contain all players currently on\n>the national team plus a top-class foreigner or two. They would be in an\n>entirely different league than TPS or Jokerit, both of whom have perhaps a\n>dozen players of international class - if even that. Why settle for a minor\n>league when you could have the best?\n\nIt is no matter what you call the teams, Jokerit and TPS, or Helsinki Tornado\nand Turku Typhoon, the best palyers in Finland would eventually end up in\nthose teams anyway, if they were in the \"big\" league. \n\n\n>I'd rather spend 150 Marks to watch the Helsinki Tornado play Montreal, the NY\n>Rangers or Los Angeles than 50 Marks(?) for the privilege to see Jokerit vs.\n>JypHT or even Djurgardens IF. There's nothing like the NHL, period.\n\nUnrealistic for now. Maybe we should first just expand Finnish league to\nallow teams from Baltic countries to entry!  Then others will get interested\nin the idea, that maybe one should settle something bigger. The ultimate \ngoal, as you want it, would be European Division in NHL. Btw. does that \nmake a final with an Europan team against Norht American?\n\n \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 873, "properties": {"category": "sci.space", "text": "From: dbm0000@tm0006.lerc.nasa.gov (David B. Mckissock)\nSubject: Gibbons Outlines SSF Redesign Guidance\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: tm0006.lerc.nasa.gov\nOrganization: NASA Lewis Research Center / Cleveland, Ohio\nLines: 76\n\nNASA Headquarters distributed the following press\nrelease today (4/6). I've typed it in verbatim, for you\nfolks to chew over. Many of the topics recently\ndiscussed on sci.space are covered in this.\n\nGibbons Outlines Space Station Redesign Guidance\n\nDr. John H. Gibbons, Director, Office of Science and\nTechnology Policy, outlined to the members-designate of\nthe Advisory Committee on the Redesign of the Space\nStation on April 3, three budget options as guidance to\nthe committee in their deliberations on the redesign of\nthe space station.\n\nA low option of $5 billion, a mid-range option of $7\nbillion and a high option of $9 billion will be\nconsidered by the committee. Each option would cover\nthe total expenditures for space station from fiscal\nyear 1994 through 1998 and would include funds for\ndevelopment, operations, utilization, Shuttle\nintegration, facilities, research operations support,\ntransition cost and also must include adequate program\nreserves to insure program implementation within the\navailable funds.\n\nOver the next 5 years, $4 billion is reserved within\nthe NASA budget for the President's new technology\ninvestment. As a result, station options above $7\nbillion must be accompanied by offsetting reductions in\nthe rest of the NASA budget.  For example, a space\nstation option of $9 billion would require $2 billion\nin offsets from the NASA budget over the next 5 years.\n\nGibbons presented the information at an organizational\nsession of the advisory committee. Generally, the\nmembers-designate focused upon administrative topics\nand used the session to get acquainted. They also\nreceived a legal and ethics briefing and an orientation\non the process the Station Redesign Team is following\nto develop options for the advisory committee to\nconsider.\n\nGibbons also announced that the United States and its\ninternational partners -- the Europeans, Japanese, and\nCanadians -- have decided, after consultation, to give\n\"full consideration\" to use of Russian assets in the\ncourse of the space station redesign process.\n\nTo that end, the Russians will be asked to participate\nin the redesign effort on an as-needed consulting\nbasis, so that the redesign team can make use of their\nexpertise in assessing the capabilities of MIR and the\npossible use of MIR and other Russian capabilities and\nsystems. The U.S. and international partners hope to\nbenefit from the expertise of the Russian participants\nin assessing Russian systems and technology. The\noverall goal of the redesign effort is to develop\noptions for reducing station costs while preserving key\nresearch and exploration capabilities. Careful\nintegration of Russian assets could be a key factor in\nachieving that goal.\n\nGibbons reiterated that, \"President Clinton is\ncommitted to the redesigned space station and to making\nevery effort to preserve the science, the technology\nand the jobs that the space station program represents.\nHowever, he also is committed to a space station that\nis well managed and one that does not consume the\nnational resources which should be used to invest in\nthe future of this industry and this nation.\"\n\nNASA Administrator Daniel S. Goldin said the Russian\nparticipation will be accomplished through the East-\nWest Space Science Center at the University of Maryland\nunder the leadership of Roald Sagdeev.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 874, "properties": {"category": "rec.sport.hockey", "text": "From: d_jaracz@oz.plymouth.edu (David R. Jaracz)\nSubject: Re: Octopus in Detroit?\nOrganization: Plymouth State College - Plymouth, NH.\nLines: 16\n\nIn article <93106.092246DLMQC@CUNYVM.BITNET> Harold Zazula <DLMQC@CUNYVM.BITNET> writes:\n>I was watching the Detroit-Minnesota game last night and thought I saw an\n>octopus on the ice after Ysebaert scored to tie the game at two. What gives?\n\nNo no no!!!  It's a squid!  Keep the tradition alive!  (Kinda like the\nfish at UNH games....)\n\n>(is there some custom to throw octopuses on the ice in Detroit?)\n>-------\n>Not Responsible -- Dain Bramaged!!\n>\n>Harold Zazula\n>dlmqc@cunyvm.cuny.edu\n>hzazula@alehouse.acc.qc.edu\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.042+0000", "event": "documents", "entityId": 875, "properties": {"category": "sci.crypt", "text": "From: johnson@trwacs.fp.trw.com (Steve Johnson)\nSubject: Re: How do they know what keys to ask for? (Re: Clipper)\nOrganization: TRW Systems Division, Fairfax VA\nLines: 23\n\nbrad@clarinet.com (Brad Templeton) writes:\n\n[...]\n>And of course you have to identify yourself to the phone company, and\n>since the phone company complies with court orders, they will know the\n>magic number of your chip when they sign out a warrant on you, and\n>then can present the warrant to the key escrow house.\n\n  Who makes them forget and destroy all copies of the key once they've\ndecided you're not a criminal today?  Just curious.\n>-- \n>Brad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n------- Any views expressed are those of myself and not my employer. --------\nSteven C. Johnson, WB3IRU / VK2GDS      |\nTRW                                     | johnson@trwacs.fp.trw.com\nFP1 / 3133                              |         [129.193.172.90]\n1 Federal Systems Park Drive            | Phone:        +1 (703) 968.1000\nFairfax, Virginia  22033-4412  U.S.A.   | Fax:          +1 (703) 803.5189\n-- \n------- Any views expressed are those of myself and not my employer. --------\nSteven C. Johnson, WB3IRU / VK2GDS      |\nTRW                                     | johnson@trwacs.fp.trw.com\nFP1 / 3133                              |         [129.193.172.90]\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 876, "properties": {"category": "soc.religion.christian", "text": "From: teama@bucknell.edu (meyers@bucknell.edu)\nSubject: Doug Sturm\nOrganization: Bucknell University, Lewisburg, PA\nLines: 3\n\nIs anyone familiar with Doug Sturm?\n\nIf so, please post what you think.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 877, "properties": {"category": "comp.graphics", "text": "From: tonyo@pendragon.CNA.TEK.COM (Tony Ozrelic)\nSubject: Need info on cc:Mail file format\nOrganization: Tektronix, Inc., Redmond, Oregon\nLines: 13\n\nI need the file format for cc:Mail file formats - it seems to be PCX-based,\nbut with a twist: only the first page of a multi-page fax will come out\nreadable. The other pages disappear. The format seems to be 'proprietary'.\n\nAnybody got any clues? I have to give my email FAXes to my secretary in\norder to get 'em unscrambled. I want a filter from cc:Mail to .p[nb]m.\n\nCome to think of it, p[nb]m to cc:Mail would be nice too.\n\ntonyo@master.CNA.TEK.COM\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 878, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\nLines: 78\n\nIn article <1993Apr16.155123.447@cunews.carleton.ca> wcsbeau@alfred.carleton.ca (OPIRG) writes:\n>>So far, I've seen about a dozen posts of anecdotal evidence, but\n>>no facts.  I suspect there is a strong psychological effect at \n>>work here.  Does anyone have results from a scientific study\n>>using double-blind trials?  \n>\n>Check out #27903, just some 20 posts before your own.\n\nUm, I hate to break this to you, but article numbers are unique per site.\nThey have no meaning on other machines.\n\n>Maybe you missed it amidst the flurry of responses?\n\nYou mean the responses some of which pointed to double-blind tests\nwhich show no such \"chinese restaurant effect\" unique to MSG\n(it's elicited by the placebo as well.)\n\n>Yet again, the use of this\n>newsgroup is hampered by people not restricting their posts to matters\n>they have substantial knowledge of.\n\nLike youself?  Someone who can read a scientific paper and apparently\ncome away from it with bizarrely cracked ideas which have nothing to\ndo with the use of this substance in human nutrition?\n\n>For cites on MSG, look up almost anything by John W. Olney, a\n>toxicologist who has studied the effects of MSG on the brain and on\n>development.  It is undisputed in the literature that MSG is an\n>excitotoxic food additive,\n\nNo, it's undisputed in the literature that glutamate is an amino acid\nwhich is an excitatory neurotransmitter.  There is also evidence that\nexcessive release of glutamate may be involved in the pathology of certain\nconditions like stroke, drowning and Lou Gehrig's disease, just to name a few.\nThis is a completely different issue than the use of this ubiquitous amino acid\nin foods.  People are not receiving intra-ventricular injections of glutamate.\n\n>and that its major constituent, glutamate\n>is essentially the premierie neurotransmitter in the mammalian brain\n>(humans included).\n\nI don't know about premier, but it's certainly an important one.\n\n>Too much in the diet, and the system gets thrown off.\n\nSez you.  Such an effect in humans has not been demonstrated in any\ncontrolled studies.  Infant mice and other models are useful as far\nas they go, but they're not relevant to the matter at hand.  Which is\nnot to say that I favor its use in things like baby food--a patently\nridiculous use of the additive.  But we have no reason to believe\nthat MSG in the diet effects humans adversely.\n\n>Glutamate and aspartate, also an excitotoxin are necessary in\n>small amounts, and are freely available in many foods, but the amounts\n>added by industry are far above the amounts that would normally be\n>encountered in a ny single food.\n\nWrong.  Do you know how much aspartate or phenylalanine is in a soft drink?\nMilligrams worth.  Compare that to a glass of milk.  Do you know how much\nglutamate is present in most protein-containing foods compared to that\nadded by the use of MSG?\n\n>By eating lots of junk food,\n>packaged soups, and diet soft drinks, it is possible to jack your\n>blood levels so high, that anyone with a sensitivity to these\n>compounds will suffer numerous *real* physi9logical effects. \n\nNotice the subtle covering of her ass here: \"anyone _with a sensitivity_...\"\nWe're disputing the size of that class.\n\n>Read Olney's review paper in Prog. Brain Res, 1988, and check *his*\n>sources. They are impecable. There is no dispute.\n\nImpeccable.  There most certainly is a dispute.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 879, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Shaft-drives and Wheelies\nFrom: lotto@laura.harvard.edu (Jerry Lotto)\nDistribution: rec\nOrganization: Chemistry Dept., Harvard University\nNNTP-Posting-Host: laura.harvard.edu\nIn-reply-to: xlyx@vax5.cit.cornell.edu's message of 19 Apr 93 21:48:42 GMT\nLines: 10\n\n>>>>> On 19 Apr 93 21:48:42 GMT, xlyx@vax5.cit.cornell.edu said:\nMike> Is it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n\nSure.  In fact, you can do a wheelie on a shaft-drive motorcycle\nwithout even moving.  Just don't try countersteering.\n\n:-)\n--\nJerry Lotto <lotto@lhasa.harvard.edu>         MSFCI, HOGSSC, BCSO, AMA, DoD #18\nChemistry Dept., Harvard Univ.  \"It's my Harley, and I'll ride if I want to...\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 880, "properties": {"category": "misc.forsale", "text": "From: news@magnus.acs.ohio-state.edu\nSubject: '87 Buick Century Estate Wagon\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: cmh\nLines: 1\n\nThis article was probably generated by a buggy news reader.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 881, "properties": {"category": "rec.sport.hockey", "text": "From: kozloce@wkuvx1.bitnet\nSubject: Re: Good for hockey/Bad for hockey\nOrganization: Western Kentucky University, Bowling Green, KY\nLines: 25\n\nIn article <Rs2J2B8w164w@cellar.org>, darling@cellar.org (Thomas Darling) writes:\n> jmd@cbnewsm.cb.att.com (joseph.m.dakes) writes:\n> \n>> In article <1ppdccINNbe1@dev-null.phys.psu.edu>, stimpy@dev-null.phys.psu.edu\n>> > In article <C4wxnF.Bx1@constellation.ecn.uoknor.edu> mfoster@alliant.backbo\n>> > >I prefer the Miami Colons myself.  Headline: FLAMES BLOW OUT COLONS, 9-1\n>> > \n>> > Would Kevin Dineen play for the Miami Colons???\n>> \n>> As a Flyers fan, I resent you making Kevin Dineen the butt of your\n>> jokes:-)!\n> \n> Aw, just take a moment to digest it and I'm sure you'll see the humour...\n> \n> ^~^~^~^~^~^~^~^~^\\\\\\^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^\n> Thomas A. Darling \\\\\\ The Cellar BBS & Public Access System: 215.539.3043\n> darling@cellar.org \\\\\\ GEnie: T.DARLING \\\\ FactHQ \"Truth Thru Technology\"\n> v~v~v~v~v~v~v~v~v~v~\\\\\\~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v\n\n\nIf anybody is having problems following the thread be sure to ask the\norigonal poster to rectify your misunderstanding.\n\nKOZ\nLETS GO CAPS!!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 882, "properties": {"category": "soc.religion.christian", "text": "From: cctr114@cantua.canterbury.ac.nz (Bill Rea)\nSubject: Re: The arrogance of Christians\nOrganization: University of Canterbury, Christchurch, New Zealand.\nLines: 68\n\nCarol Alvin (caralv@caralv.auto-trol.com) wrote:\n\n> In the New Testament (sorry I don't have a Bible at work, and can't\n> provide a reference), women are instructed to be silent and cover\n> their heads in church.  Now, this is scripture.  By your definition, \n> this is truth and therefore absolute.  \n>\n>Do women in your church speak?  Do they cover their heads?  If all \n>scripture is absolute truth, it seems to me that women speaking in and \n>coming to church with bare heads should be intolerable to evangelicals.  \n>Yet, clearly, women do speak in evangelical churches and come with bare \n>heads.  (At least this was the case in the evangelical churches I grew \n>up in.)\n>\n>Evangelicals are clearly not taking this particular part of scripture \n>to be absolute truth.  (And there are plenty of other examples.)\n>Can you reconcile this?\n\nThe problem you see here is that some Christians claim things about\nthe Bible which they don't actually believe or practice. I've known\nall sorts of Christians, ranging from the trendiest of liberals to\nthe fire-breathing fundamentalists, and although many on the \nconservative side of the Christian faith do claim that the Bible is\na (perhaps *the*) source of absolute truth, I don't know of anyone\nwho treats it as anything other than a valuable part of a living tradition.\nWhile I am not a Roman Catholic, I believe this is close to the official\nposition of the RC church (perhaps an RC would like to comment).\n\nThe particular practice you refer to will usually be explained in\nterms of the social context of the time. You would think the fact \nthat the conservatives seem to have to break out the tophat-and-cane \nand give you some big song-and-dance routine about why this \n(other passages as well) aren't directly applicable today would \nshow them that what they claim about the Bible and what they \nactually practice are two different things, but mostly it doens't.\n\nWhile this thread is supposed to be about the arrogance of Christians,\nI would suggest that some of the problem is really hypocrasy, in this\ncase, making claims about the Bible which the claimants don't actually\nput into practice. But if we step back from the name-calling and\nlook at what people are attempting to say, we see that they are trying\nto express very concisely the unique place the Bible holds within the\nChristian faith. So when people use such words or phrases as \"Word of\nGod\", \"inerrant\", \"infallibale\", \"The Manufacturer's Handbook\", \"The\nonly rule of faith and practice in the church today\" to describe the\nBible, we should try to hear what they are saying and not just look at\nthe mere words they use. Some of the above descriptions are demostratably\nfalse and others are self-contradictory, but in my experience people are\ngenerally pretty good at picking out the intention of the speaker even\nwhen the speaker's words are at variance with their intentions. A Biblical\nexample is from the garden of Eden where God asks \"Where are you?\" and Adam\nexplains that he was naked and afraid and hid himself. If Adam had\nanswered God's words he would have said something like \"I'm here in this\ntree.\" The problem seems to arise when Christians insist that these\nwords are indeed accurate reflections of their beleif. Most people\nhave not made a determined effort to work out their own understanding of\nthe place of the Bible within their own faith and so rely on the phrases\nand explanations that others use.\n\nI hope this helps.\n--\n                                                                     ___\nBill Rea                                                            (o o)\n-------------------------------------------------------------------w--U--w---\n| Bill Rea, Computer Services Centre, | E-Mail   b.rea@csc.canterbury.ac.nz |\n| University of Canterbury,           | or     cctr114@csc.canterbury.ac.nz |\n| Christchurch, New Zealand           | Phone (03)-642-331 Fax (03)-642-999 |\n-----------------------------------------------------------------------------\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 883, "properties": {"category": "talk.politics.guns", "text": "Nntp-Posting-Host: surt.ifi.uio.no\nFrom: Thomas Parsli <thomasp@ifi.uio.no>\nSubject: Re: My Gun is like my American Express Card\nIn-Reply-To: viking@iastate.edu (Dan Sorenson)'s message of Fri, 16 Apr 1993\n        07:24:55 GMT\nOrganization: Dept. of Informatics, University of Oslo, Norway\n        <1qjmnuINNlmd@clem.handheld.com>\n        <CMM.0.90.2.734911642.thomasp@surt.ifi.uio.no>\n        <viking.734945095@ponderous.cc.iastate.edu>\nLines: 72\nOriginator: thomasp@surt.ifi.uio.no\n\n\nGun clubs:\nIf you are a member you CAN borrow weapons....(Suprised??)\nYou are supposed to train with a .22 for the 6 months, THEN\nyou can start with anything bigger.\n\nDrivers licence:\nForgot that USA is THE land of cars.....\nGetting one in Scandinavia (and northern europe) is not easy.\nAverage time is about 20 hours of training, and the cost is rather......\nBut we think this is acceptable because a car is NOT a toy, and\nbad drivers tend to hurt OTHERS.\n(If you are really bad, you WON'T get a lincence!)\n\nAbuse by the goverment:\nThis seems to be one of the main problems; Any harder gun-control\nwould just be abused by the goverment.(!)\nEither some of you are a little paranoid (no offence...) OR you should\nget a new goverment. (You do have elections??)\n\nGuns 'n Criminals:\nMOST weapons used by criminals today are stolen.\nKnown criminals can NOT buy weapons, that's one of the points of gun control.\nAnd because gun control are strict in WHOLE scandinavia (and most of europe),\nwe dont have any PROBLEM with smuggled guns.\n\nMixing weapons and things that can be use as one:\nWhat I meant was that cars CAN kill, but they are not GUNS!\nSomeone said that if we 'ban' guns we'd have to ban cars to, because they 'kill' to...\nI don't think we should argue on this one..... ;)\n\nThe issue (I hope..):\nI think we all agree that the criminals are the main problem.\nGuns are not a problem, but the way they are used is.... (and what are they for??)\n\nI think this discusion is interesting when you think of (ex)Jugoslavia:\nThey should all have weapons, it's their rigth to have them, and if they use them\nto kill other (Innocent) people the problem is humans, not guns.\n\nIf 50% of ALL murders was done with axes, would you impose some regulations on them\nor just say that they are ment to be used at trees, and that the axe is not a problem,\nit's the 'axer' ??\n(An example, don't flame me just because not exactly 50% are killed by guns...)\n\nThink about the situation in Los Angeles where people are buying guns to protect\nthemselves. Is this a good situation ?? Is it the rigth way to deal with the problem ??\n\nIf everybody buys guns to protect themselves from criminals (and their neighbor who have\nguns) what do you think will happen ?? (I mean if everybody had a gun in USA)\n\nDon't flame the Englishmen because of Northern Irland, they have gun control that works\n(in England) and fonds from USA are one of the reasons why IRA can bomb innocents...\n(Something about throwing stones in glass houses...)\nDon't flame them because of what to (three?) children did either.\n(Can an Jugoslav have an oppinion on guns or even peace??) (YES!)\n\n(My numbers about crime rates after restrictions on shot-guns are from the police\nand the Statistisk Sentralbyraa) (understood that one Sorenson??)\n\nLAST WORD:\nResponsible gun owners are not a problem, but they will be affected if you want to protect \nyour citicens.\n\n\n\n\tThis is not a .signature.\n\tIt's merely a computergenerated text to waste bandwith\n\tand to bring down the evil Internet.\n\n\n                        Thomas Parsli\n                        thomasp@ifi.uio.no\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 884, "properties": {"category": "soc.religion.christian", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: Florida State University\nLines: 36\n\n[In response to some of the discussions on the Sabbath, Andrew Byler\ncommented that if we really followed sola scriptura we would worship\non Saturday -- the change to Sunday was a law made by the Church, and\nwe don't acknowledge its authority to make laws.  I noted that\nProtestants do not consider Sunday worship a law.  --clh]\n\nHe was not referring to the FAQ but to the five Sabbath Admissions posted\non the bible study group.  This is what prompted someone to send the FAQ\nto me.\n\n>  The argument against the Sabbath is\n> that it is part of the ceremonial law, and like the rest of the\nn> ceremonial law is not binding on Christians.\n\nYou cannot show, from scripture, that the weekly Sabbath is part of the\nceremonial laws.   Before you post a text in reply investigate its context.\n\n> If you accept that\n> the Sabbath is not binding on Christians, then the day of worship\n> falls into the category of items on which individual Christians or\n> (since worship is by its nature a group activity) churches are free to\n> decide.\n> \nCan the churches also decide what is and is not sin?  Interesting.  Where\nthere is no divine imperative of course we must establish rules of\noperation.  But we cannot be as creative with what God has explicitly\nspoken on.\n\nDarius\n\n[Again, in the normal Protestant interpretation, Sunday is not a law,\nand worshipping on another day is not a sin.  Churches are free to\ndecide on the day they will meet, just as they are free to decide on\nthe hour.  It would not be a sin to worship on some other day, but if\nyou belong to a church that worships on Sunday and you show up on\nMonday, you will probably worship alone...  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 885, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ccastco@prism.gatech.EDU (Constantinos Malamas)\nSubject: Re: How do I quickly switch between Windows screen resolutions?\nDistribution: na\nOrganization: Georgia Institute of Technology\nLines: 18\n\nIn article <C5qLr8.DJL@cbnewsl.cb.att.com> slg@slgsun.att.com (The Idealistic Cynic) writes:\n>Can someone out there tell me how to switch Window's screen resolution\n>quickly and easily?  I know that I can go back into install to do it,\n>---\n>Sean L. Gilley\n> \n\n \tTake a look at ftp.cica.indiana.edu at pub/pc/win3/(util?misc?)\nfor a program caleld vswitch.zip.It's as close to want you want as you can\nget in WIn3.1 ...\nHope it helps...\n\n\n-- \nCostas Malamas ____________________________________________________________\nGeorgia Institute of Technology \nOIT UA -- Opinions expressed are not necessarily OIT's... \nInternet: ccastco@prism.gatech.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 886, "properties": {"category": "comp.windows.x", "text": "From: snail@lsl.co.uk\nSubject: Re: Xlib for MS/WINDOWS not an XSERVER!!!\nOrganization: Laser-Scan Ltd., Cambridge\nLines: 16\n\nIn article <1993Apr7.044749.11770@topgun>, smikes@topgun (Steven Mikes) writes:\n> Another company, Congruent Corporation of New York City, has also ported Xlib\n> Xt and Motif 1.1 over to MS Windows NT, which provides full client development\n> for X applications in an NT environment.\n\nCould someone please send me the postal and email address of\nCongruent Corporation (and any competitors they may have).\n\nThank you.\n-- \nsnail@lsl.co.uk      \n\n\"Washing one's hands of the conflict between the powerful and the powerless\n means to side with the powerful, not to be Neutral.\"\n                                                     Quote by Freire.\n                                                     Poster by OXFAM.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 887, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Re: IDE vs SCSI\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 39\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\nrichk@grebyn.com (Richard Krehbiel) writes:\n[Stuff about the connection between IDE and IDA deleated]\n>8MHz clock, 16 bit width, 5MB/sec.\nIf IDE speed come from IDA WHERE does the 8.3MB/s sighted for IDE come from?\n\nSCSI is not complex. It is just the way the industry uses and talks about it.\nThere are THREE key differences in SCSI; the controller chip, the port, and\nthe software.  THAT IS IT.\nLet us look as SCSi in from THIS stand point.\n\nSCSI-1: asynchronous and synchronous modes {SOFTWARE SCSI DRIVER ONLY}\n asynchronous is slower then synchronous mode {only 0-3MB/s vs. 0-5MB/s}\n synchronous speeds can be reached by most SCSi-1 divices with a\n rewrite of the software driver {As is the case for the Mac Quadra.}\n\nSCSI-2 {8-bit}: THIS is the main source for the confusion. This differs from\n SCSI-1 ONLY in the controler chip in most machines.  In the Mac and some PCs\n this is called 'fast SCSI-1' because it uses SCSI-1 ports and software drivers\n AND can produce SCSI-2 SPEEDS through SCSI-1 INSPITE of this even in the \n slower asynchronous mode.  Average speed in asynchronous SCSi-1 mode \n 4-6MB/s with 8MB/s{See in both Quadras and higher end PCs} Synchronous\n mode just allows a higher burst rate {10/MB/s}\n\nSCSI-2 {16-bit}: TWO versions-Wide/Fast.  Wide SCSI-2 requires TWO things\n over 8-bit SCSI-2:  a SCSI-2 software driver and a wide SCSI port on the\n machine and the external device.\n Fast SCSI-2 also requires TWO things over 8-bit SCSI-2: SCSI-2 driver\n software and that the RECIEVING devise support 16-bit fast SCSI-2.\n Speed of both is the same: 8-12MB/s with 20MB/s burst.\n\nSCSI-2 {32-bit}:  Also know as Wide AND Fast SCSI.  Over 8-bit SCSI-2 this\n requires: SCSI-2 driver software, wide SCSI-2 port, and that the RECIEVING\n devices ALSO have a 32-bit mode SCSI-2 chip.  As expected this is VERY\n expencive.  Speed: 15-20MB/s with 40MB/s bursts\n \n\nAs I said SIMPLE.  Seven versions of SCSI seperated by software, the \ncontroler chip, and the port. Standarize the SOFTWARE and it DROPS to\nonly FIVE versions of SCSI seperate by only HARDWARE {the chip and the port}\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 888, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mb4008@cehp11 (Morgan J Bullard)\nSubject: Re: speeding up windows\nKeywords: speed\nOrganization: University of Illinois at Urbana\nLines: 30\n\ndjserian@flash.LakeheadU.Ca (Reincarnation of Elvis) writes:\n\n>I have a 386/33 with 8 megs of memory\n\n>I have noticed that lately when I use programs like WpfW or Corel Draw\n>my computer \"boggs\" down and becomes really sluggish!\n\n>What can I do to increase performance?  What should I turn on or off\n\n>Will not loading wallpapers or stuff like that help when it comes to\n>the running speed of windows and the programs that run under it?\n\n>Thanx in advance\n\n>Derek\n\n1) make sure your hard drive is defragmented. This will speed up more than \n   just windows BTW.  Use something like Norton's or PC Tools.\n2) I _think_ that leaving the wall paper out will use less RAM and therefore\n   will speed up your machine but I could very will be wrong on this.\nThere's a good chance you've already done this but if not it may speed things\nup.  good luck\n\t\t\t\tMorgan Bullard mb4008@coewl.cen.uiuc.edu\n\t\t\t\t\t  or   mjbb@uxa.cso.uiuc.edu\n\n>--\n>$_    /|$Derek J.P. Serianni $ E-Mail : djserian@flash.lakeheadu.ca           $ \n>$\\'o.O' $Sociologist         $ It's 106 miles to Chicago,we've got a full tank$\n>$=(___)=$Lakehead University $ of gas, half a pack of cigarettes,it's dark,and$\n>$   U   $Thunder Bay, Ontario$ we're wearing sunglasses. -Elwood Blues        $  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 889, "properties": {"category": "comp.graphics", "text": "From: koolish@bbn.com (Dick Koolish)\nSubject: Re: Flat globe\nLines: 17\nNNTP-Posting-Host: bbn.com\n\nsp1marse@kristin (Marco Seirio) writes:\n\n\n>Does anybody have an algorithm for \"flattening\" out a globe, or any other\n>parametric surface, that is definied parametrically. \n>That is, I would like to take a sheet of paper and a knife and to be\n>able to calculate how I must cut in the paper so I can fold it to a\n>globe (or any other object).\n\n\nThere is a library of map projections in:\n\n    charon.er.usgs.gov\n\nin\n\n    /pub/PROJ.4.1.3.tar.Z\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 890, "properties": {"category": "comp.windows.x", "text": "From: marc@pinet.aip.org (Marc Wiener)\nSubject: core dump from getcons\nOrganization: American Institute of Physics\nLines: 12\n\nWe are getting a memory fault and a core dump whenever we end a Motif\nsession under Ultrix 4.3, running on a DEC 5000/240. An examintion of the \ncore file leads us to believe it's from getcons. Does anyone know what\nthis is all about?\n\nmarc\n\n-- \nMarc Wiener                    |    marc@aip.org\nAmerican Institute of Physics  |    \n500 Sunnyside Blvd.            |    Voice: (516)576-2329 \nWoodbury, NY 11797             |    Fax:   (516)349-7669\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 891, "properties": {"category": "comp.graphics", "text": "From: rued@daimi.aau.dk (Thomas Rued J|rgensen)\nSubject: Re: .SCF files, help needed\nOrganization: DAIMI: Computer Science Department, Aarhus University, Denmark\nLines: 15\n\ntlc@cx5.com writes:\n\n>Second problem: I can't find any graphics program that will open and display  \n>these files. I have a couple of image conversion programs, none mention .scf  \n>files.\n\nRIX's files with the extension  .sci and .scf are just a RAW file with\na 256 color palette.\nThe first 10 bytes is a kind of header, with the name RIX among 7bytes unknown stuff. The you have 768 bytes of palette info (3*256 for the colors RGB)\nand then you have the picture in raw format.\nIf you dont know how to make a viewer of of this description you can get VPIC\nit is able to read the files!\n\nregards\nThomas \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 892, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Objective morality (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 13\nNNTP-Posting-Host: punisher.caltech.edu\n\nsandvik@newton.apple.com (Kent Sandvik) writes:\n\n>> Which type of morality are you talking about?  In a natural sense, it\n>> is not at all immoral to harm another species (as long as it doesn't\n>> adversely affect your own, I guess).\n>Hehehe, so you say, but this objective morality somehere tells you \n>that this is not the case, and you don't know all the rules of such\n>transcendental game systems...\n\nWhich objective system are you talking about?  What is its goal?\nAgain, which brand of morality are you talking about?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 893, "properties": {"category": "sci.space", "text": "From: dante@shakala.com (Charlie Prael)\nSubject: Re: Moonbase race\nOrganization: Shakala BBS (ClanZen Radio Network) Sunnyvale, CA +1-408-734-2289\nLines: 20\n\nsysmgr@king.eng.umd.edu (Doug Mohney) writes:\n\n> Allen, sometimes I think you're OK.  And sometimes you tend to rashly leap in\n> making statement without thinking them out. \n> \n> Wanna guess which today?\n> \n> You'd need to launch HLVs to send up large amounts of stuff.  Do you know \n> of a private Titan pad? \n\n\nDoug-- Actually, if memory serves, the Atlas is an outgrowth of the old \nTitan ICBM.  If so, there's probably quite a few old pads, albeit in need \nof some serious reconditioning.  Still, Being able to buy the turf and \npad (and bunkers, including prep facility) at Midwest farmland prices \nstrikes me as pretty damned cheap.\n\n------------------------------------------------------------------\nCharlie Prael  - dante@shakala.com \nShakala BBS (ClanZen Radio Network) Sunnyvale, CA +1-408-734-2289\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 894, "properties": {"category": "talk.politics.misc", "text": "Organization: City University of New York\nFrom: <F36SI@CUNYVM.BITNET>\nSubject: Model United Nations\nLines: 3\n\n    Just observed at the National Model United Nations here in NYC.\n    Just one word on it : AWSOME.\n                                 Peace, matt\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 895, "properties": {"category": "talk.politics.mideast", "text": "From: avi@duteinh.et.tudelft.nl (Avi Cohen Stuart)\nSubject: Re: was: Go Hezbollah!!\nOriginator: avi@duteinh.et.tudelft.nl\nNntp-Posting-Host: duteinh.et.tudelft.nl\nOrganization: Delft University of Technology, Dept. of Electrical Engineering\nLines: 35\n\nFrom article <1993Apr15.031349.21824@src.honeywell.com>, by amehdi@src.honeywell.com (Hossien Amehdi):\n> In article <C5HuBA.CJo@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n>>amehdi@src.honeywell.com (Hossien Amehdi) writes:\n>>\n>>>You know when Israelis F16 (thanks to General Dynamics) fly high in the sky\n>>>and bomb the hell out of some village in Lebanon, where civilians including\n>>>babies and eldery getting killed, is that plain murder or what?\n>>\n>>If you Arabs wouldn't position guerilla bases in refugee camps, artillery \n>>batteries atop apartment buildings, and munitions dumps in hospitals, maybe\n>>civilians wouldn't get killed.  Kinda like Saddam Hussein putting civilians\n>>in a military bunker.  \n>>\n>>Ed.\n> \n> Who is the you Arabs here.  Since you are replying to my article you\n> are assuming that I am an Arab.  Well, I'm not an Arab, but I think you\n> are brain is full of shit if you really believe what you said.  The\n> bombardment of civilian and none civilian areas in Lebanon by Israel is\n> very consistent with its policy of intimidation.  That is the only\n> policy that has been practiced by the so called only democracy in\n> the middle east!\n> \n> I was merley pointing out that the other side is also suffering.\n> Like I said, I'm not an Arab but if I was, say a Lebanese, you bet\n> I would defende my homeland against any invader by any means.\n\nTell me then, would you also fight the Syrians in Lebanon?\n\nOh, no of course not. They would be your brothers and you would\ntell that you invited them. \n\nAvi.\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 896, "properties": {"category": "rec.sport.baseball", "text": "From: sheehan@aludra.usc.edu (Joseph Sheehan)\nSubject: Re: Young Catchers\nOrganization: University of Southern California, Los Angeles, CA\nLines: 120\nNNTP-Posting-Host: aludra.usc.edu\nSummary: Lopez is better than current Brave catchers!\nKeywords: Solid != good\n\n>In article <mssC50qA5.Dtv@netcom.com> mss@netcom.com (Mark Singer) writes:\n>>In article <1993Apr5.151834.14257@cs.cornell.edu> tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n\nI'm still catching up from Spring Break, but bear with me...\n\n>in the bigs, especially when they haven't even played AAA ball.  We\n>certainly believe this kid is going to be very good some day, but\n>there is really no need to rush him, especially since we have a mega-\n>million dollar staff that is probably well served by a battery-mate\n>who is expereienced in game calling and pitcher handling.  Lopez'\n>time will come.  Let's give him some time in AAA.\n\n\nJavy Lopez has proven, over 1400+ AB in the minor leagues, that he is\nready to play in the majors. He is *not* being rushed. Players who are\nclearly too good for AA and play behind stiffs at the major league level\nare wasting their time, and may actually have a court case against\nmajor league management for keeping them, at AAA.\n\n>No.  Maybe I need to improve my writing skills.  Lopez, who is very\n>ordinary defensively, is not likely to hit so well at age 22\n>\n\nUnless Lopez is *me* defensively (I'm 5'7'', 165 and born to play\nsecond base :-)), he belongs in the major leagues.\n\n>>training.  What does he have to do to earn a chance?  Maybe not a full\n>>time job, but at least a couple starts and a few AB for him to prove\n>>his worth?\n>\n>Gee.  I don't know.  17 abs sounds pretty good to me!  About as good\n>as your reasoning that the kid should play a back-up role rather\n>than start every day at AAA.  Talk about *me* as a GM...\n\nValentine isn't saying he should back up. He's saying he should be put\nin a position to *win* the job in the major leagues, which, IMHO, he\nwould if given the opportunity. (Val, if I'm misinterpreting, please\nlet me know.)\n\n>>So far you have come up with two arguments against Lopez:\n>>1) He is very ordinary defensively.\n>>2) He is young, and most players suck when they are young.\n>\n>>The first is irrelevant.  He's trying to make the majors with his bat.\n>>And the second involves seriously warped reasoning.\n>>\n>>-Valentine\n\n>OK.  Most players are not ready for the bigs at age 22 (see current\n>related posting on Clayton, one of my favorites).  Most players \n>benefit, rather than being stagnant or hurt, by playing at AAA.\n>Most catchers need to be solid defensively players to help their\n>clubs in the bigs.  Those are the arguments against Lopez for the\n>Braves for this year.\n\nBut the players who *are* ready are 1)the best and 2) the ones most\nlikely to benefit from being in the majors. Javy Lopez is not a middle-\nof-the-road prospect. He's the real thing. NOW. \n\nAgain, the most important thing a player can do is hit. Lopez does that\nmiles better than Olson or Berryhill. If his defense is good enough for\nGreenville, or Richmond, it's good enough for Atlanta. If he really was\nawful defensively, he would no longer be a catcher. See Sprague, Ed.\n\n>Now.  The Braves have two catchers who have demonstrated solid\n>abilities to call games, to work with the pitchers, to throw out\n>runners.  Not superstars mind you, but solid, experienced veterans.\n>The Braves have a very solid lineup with two big bats in the\n>outfield, an excellent platoon at first, a solid MVP candidate\n>at third and one of the better hitting shortstops.  The center\n>field platoon will probably hit .300.  However good Lopez'\n>what they have to offset the differential in experience and \n>defensive ability.  The kid *will* improve playing at AAA, and\n>he probably won't being a reserve with the big club.  \n\nOh, where to start... OK. First of all, solid != good. I want good players.\nSolid is one of those words used to describe nice white guys who really\naren't very good at baseball. Think of it as \"TWG\" without the caps.\nIt's a losing strategy to say, \"We have solid guys, we don't need to improve.\"\nYou used it four times in that paragraph, BTW.\n\nSame for experienced. I might add, though, that Greg Olson and Damon\nBerryhill aren't exactly Carter and Fisk. Olson has played three years,\nBerryhill five, although 90 and 91 were a wash. The only difference,\nIMHO, between Olson and Valle is the supporting cast.\n\n\"Two big bats.\" Hrm. I like Justice, but I find Mr. Gant's trend disturbing.\nCall it one and a maybe. The Braves' platoon is OK, but neither player\nhas *any* value outside of the platoon. Bream vs. LH and Hunter vs. RH\nare awful. I'll leave the thirdbase comment alone. Pendleton has wasted\ntoo much bandwidth already. If the CF platoon hits .300, I'll retrace\nMr. Likhani's midnight run down Forbes, and I live in NY and LA.\n(Got that, Mike?)\n\nAnd doesn't Cox call pitches, anyway?\n\n>goodness.  Do you believe the other poster who thinks Lopez\n>is being held down because of his future earning potential?\n>Why on earth do you people thinkthe Braves made this decision?\n>Are they idiots who have built this ballclub?  Jeeeesh...\n\nNope. They're baseball management, possible the most short-sighted \ncollection of people in the nation. Do you not believe this goes on,\nMark? Do you think Frank Thomas needed those three months in AAA in\n1990? Or Cal Eldred wasn't *really* better than Ricky Bones last year?\n\n>And *I'm* the treasure...\n\nYou're mostly polite; make defensible, if flawed cases; have wit and\nhave, in the past, admitted being wrong. That does qualify you on r.s.b.\nWe'll make an SDCN out of you, yet :-)\n\n>--\tThe Beastmaster\n>Mark Singer    \n>mss@netcom.com\n--\nsheehan@aludra.usc.edu\t\t\"...Greg Gohr, pitching more like\nVoice: 213 743 0456\t\tTipper Gore, I'm afraid...\"--\n\t\t\t\tLinda Cohn, SportsCenter 4/8/93\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 897, "properties": {"category": "talk.politics.mideast", "text": "From: arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee)\nSubject: Re: American Jewish Congress Open Letter to Clinton\nOrganization: Johns Hopkins University CS Dept.\nLines: 66\n\nIn article <22APR199300374349@vxcrna.cern.ch> casper@vxcrna.cern.ch (CASPER,DAVI./PPE) writes:\n>>>I must say I was appalled by the American Jewish Council's open letter.\n>>>America is not the world's policeman.  We cannot and should not take it upon\n>>>ourselves to solve the problems of the entire world.  America's young men and\n>>>women should not be sent to Yugoslavia, period.  If people feel strongly\n>>>enough, let them go as individuals to fight alongside the butchers of their\n>>>choice. \n>>We have a volunteer army.  The argument you gave only applies if we have a\n>>draft.  \n>Huh?  \n\nSorry, I misread your remark about young men and women.  (Though I am now\nunsure what that sentence does mean.)\n\n>>Furthermore, people do not become butchers by _being_ \"ethnic\n>>cleansed\".  Or do you automatically call them butchers because they are Muslim?\n>I am disappointed in your logic, especially coming from a stalwart of\n>sci.skeptic.\n\nYou implied that anyone who wants to send troops to Bosnia wants to do so to\nhelp the \"butchers of their choice\".  Since the primary targets of help are\nMuslim victims of \"ethnic cleansing\", you imply that such Muslim victims are\nbutchers.\n\n>1) People become butchers by butchering.  There have been atrocities on all\n>sides.\n\nThis implies both sides are equal.  True, it may sometimes be difficult or\nimpossible to determine which side is the victim, but that does not mean that\nvictims do not exist.  Would you, in WWII have said that there were atrocities\non the sides of both the Jews and the Germans?\n\n>These people have been butchering each other for centuries.  When one\n>side wins and gets what it wants, it will stop.\n\nYes, but both sides want different things.  The Muslims chiefly want to not\nbe \"ethnic cleansed\".  The Serbians want to \"ethnic cleanse\" the Muslims.  It\nis indeed true that each side will stop when it gets what it wants, but the\nthings that the two sides want are not equivalent.\n\n>2) Quite an impressive leap of reasoning to assume that I am so racist as to\n>call someone a butcher because they are Muslim.  In fact, I think on the\n>contrary, the media fixation on this war, as opposed to the dozens upon dozens\n>of civil wars which have been fought in the recent past is because these are\n>white people, in Europe.  When atrocities occur in the Third World, there is\n>not as much news coverage, and not nearly the same level of outrage. \n\nI recall, before we did anything for Somalia, (apparent) left-wingers saying\nthat the reason everyone was more willing to send troops to Bosnia than to\nSomalia was because the Somalis are third-worlders who Americans consider\nunworthy of help.  They suddenly shut up when the US decided to send troops to\nthe opposite place than that predicted by the theory.\n\nFor that matter, this theory of yours suggests that Americans should want to\nhelp the Serbs.  After all, they're Christian, and the Muslims are not.  If\nthe desire to intervene in Bosnia is based on racism against people that are\nless like us, why does everyone _want_ to help the side that _is_ less like us?\nEspecially if both of the sides are equal as you seem to think?\n--\n\"On the first day after Christmas my truelove served to me...  Leftover Turkey!\nOn the second day after Christmas my truelove served to me...  Turkey Casserole\n    that she made from Leftover Turkey.\n[days 3-4 deleted] ...  Flaming Turkey Wings! ...\n   -- Pizza Hut commercial (and M*tlu/A*gic bait)\n\nKen Arromdee (arromdee@jyusenkyou.cs.jhu.edu)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 898, "properties": {"category": "comp.graphics", "text": "From: ednobles@sacam.OREN.ORTN.EDU (Edward d Nobles)\nSubject: windows imagine??!!\nOrganization: Oak Ridge National Laboratory\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 10\n\n\nHas ANYONE who has ordered the new PC version of Imagine ACTUALLY recieved\nit yet?   I'm just about ready to order but reading posts about people still\nawaiting delivery are making me a little paranoid.  Has anyone actually \nheld this piece of software in their own hands?\n\nLater,\n\nJim Nobles\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.043+0000", "event": "documents", "entityId": 899, "properties": {"category": "comp.graphics", "text": "From: watson@madvax.uwa.oz.au (David Watson)\nSubject: Re: Sphere from 4 points?\nOrganization: Maths Dept UWA\nLines: 23\nDistribution: world\nNNTP-Posting-Host: xanthorrhoea.maths.uwa.edu.au\n\nIn article <1qkgbuINNs9n@shelley.u.washington.edu>, \nbolson@carson.u.washington.edu (Edward Bolson) writes:\n \n|> Given 4 points (non coplanar), how does one find the sphere, that is,\n|> center and radius, exactly fitting those points?  \n\nFinding the circumcenter of a tetrahedron is discussed on page 33 in\n\nCONTOURING: A guide to the analysis and display of spatial data,\nby Dave Watson, Pergamon Press,  1992, ISBN 0 08 040286 0, 321p.\n\nEach pair of tetrahedral vertices define a plane which is a \nperpendicular bisector of the line between that pair.  Express each\nplane in the form Ax + By + Cz = D\nand solve the set of simultaneous equations from any three of those\nplanes that have a vertex in common (all vertices are used).  \nThe solution is the circumcenter.\n\n-- \nDave Watson                          Internet: watson@maths.uwa.edu.au\nDepartment of Mathematics            \nThe University of Western Australia               Tel: (61 9) 380 3359\nNedlands, WA 6009  Australia.                     FAX: (61 9) 380 1028\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 900, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jas37876@uxa.cso.uiuc.edu (John A. Slagel)\nSubject: Re: int15h for joysticks is slow....\nOrganization: University of Illinois at Urbana\nLines: 25\n\nlioness@oak.circa.ufl.edu writes:\n\n\n>I'm using int15h to read my joystick, and it is hideously slow.  Something\n>like 90% of my CPU time is being spent reading the joystick, and this\n>is in a program that does nothing but printf() and JoyRead().\n\n>The problem is that a lot of programs trap int15h ( like SMARTDRV ) and\n>so it is a slow as hell interface.  Can I read the joystick port in\n>a reasonably safe fashion via polling?  And that isn't platform or\n>clockspeed specific?\n\n    The joystick reads in anolog values through a digital port. How?\n    You send a command to the port to read it, then you time how long\n    it takes for the joystick port to set a certain bit.  This time\n    is proportional to the joystick position.  Obviously, since time\n    is used as a position, you cannot get rid of this ridiculus waste \n    of time.  If you wrote your own routine instead of the BIOS, it\n    would speed it up some, but the time would still be there.\n\n-- \n-----------------------------------------------------------------------------\n John A. Slagel              \"My old man used to tell me, before he left this\n j-slagel1@uiuc.edu           shitty world, never chase buses or women- you\n (217) 337-7930               always get left behind.\" -The Marlboro Man\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 901, "properties": {"category": "sci.electronics", "text": "From: willisw@willisw.ENG.CLEMSON.edu (Bill Willis)\nSubject: Re: Mysterious MOSFET\nOrganization: Engineering Services, Clemson University\nLines: 23\n\nIn article <1qug3sINN90g@rave.larc.nasa.gov> kludge@grissom.larc.nasa.gov (Scott Dorsey) writes:\n\n>I have a MOSFET pulled out of a Trygon power supply, for which I have no \n>manual.  It's a Motorola part with a 1972 date code and the number\n\n>               285-4\n\n>which the Motorola folks assure me is a house number, which they can't\n>help me with.  Any suggestions from folks out there?  I can't put it on\n>a curve tracer to try to get an equivalent, since it's completely shot.\n>--scott\nSince your MOSFET is a 1972 vintage, it's probably not a very good one by \ntoday's standards.  If you have an idea about its voltage and current \nratings, e.g. 60VDC @ 6A, you can probably get away with replacing it with \nanything with better specs.  Early MOSFETS had a gate-source voltage rating \nof approximately +/- 20 VDCmax, and they would usually turn completely \"ON\" \nat +10VDC.  Otherwise, MOSFETS are not really mysterious -- they're more or \nless voltage controlled current sources.  If the MOSFET in your circuit is \nused as an open-loop, voltage controlled current source, you may have to \nexperiment with various gain-altering techniques.\n\nBill Willis     willisw@coe-nw.clemson.edu\n(803) 656-5550\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 902, "properties": {"category": "rec.autos", "text": "From: nathanp@sco.COM (Nathan)\nSubject: Re: Ford Probe - Opinions? (centered around the GT)\nOrganization: The Santa Cruz Operation\nLines: 127\n\n\n\"Jeremy G. Mereness\" <zonker+@CMU.EDU> says:\n>\n>Can anyone offer any opinions of the Ford Probe... ala how they do in\n>the long run, repair records, reliability, mileage, etc?\n>\n>I am fixing to buy a car in the next few months aiming toward something\n>a little bigger than a typical small car and with a little more power. I\n>am considering the MX-6, Probe, Accord, Corolla, and the 240SX. \n>\n>The Probe is the youngest of the bunch, thus my interest in opinions.\n>But every magazine and ratings book places it as an excellent value.\n>BTW, the 240SX is rear-wheel drive and is due for a re-design for 1994. \n>\n>Thanks in Advance!\n\nWhile I don't read normally read this group, I was looking for Valentine radar\ninformation (sigh, maybe in the FAQ) and came across your posting..\n\nI bought a '93 Probe GT with the PEP 263A last July (now at 9500 miles)\nafter debating over the Sentra SE-R/NX2000, MX6, MR-2, Stealth, Prelude, \nand Celica.\n\nCheck this month's Consumer Reports for previous Probe records.  \n\nMy criteria: a \"fun\" car with ABS, airbag, over 130hp, and less than $25K.\nI thought about a turbo, but checking with insurance people ruled that out.\nThe Tri-Star cars (Eclipse/Talon/etc) were out since they don't have an air bag.\nDitto for the Mustang(also no ABS).\nThe SE-R/NX2000/M20 fell into the pocket-rocket category.  A good used car buy.\nThe MX-6 was almost there but rolled more than I liked.  \nI didn't like the Prelude dash/instrumentation at all.  Too weird for me.\nThe MR2 has a much smaller non-passenger space than I needed, so out that went.\nThe Celica was \"ok\" but underpowered when loaded with options (and somewhat\noverpriced too) in non-turbo form.\nI never considered the 240SX since it didn't have an airbag.  I did look at it\nfor its RWD virtues but that's it.  The Corolla never entered my mind.\nI should have looked at the Mitsubishi VR4/Dodge Stealth more.\nSince my list was exhausted, I bought the Probe.  :-)\n\nThe car design is different than earlier years, so it's too early to see its\nreliability so far.  For what it's worth, my comments:\n\nMy dislikes:\nShutting door with windows up from inside rarely makes good wind seal.\nHeadlights have \"stuck\" up a few times (weather?)\nair conditioning broke ~4000 miles (pressure cycling switch)\ncondensation around rear washer fluid container doesn't drain completely.\ncrammed engine; little hope for do-it-yourselfers (typical)\nparts somewhat more expensive than normal Ford parts\nunderside plastic doesn't like sharp driveways and speedbumps (typical).\nassembly gripes: tape on radiator, screw fell out of dash, seat seams not \nstitched properly.  Hopefully just a fluke.\nFord only gives 1 key with the car.  C'mon Ford, spend an extra few pennies!\nRear hatch has no padding on corners when up.  I'm waiting for the day when\nI bash my head on the corner.\nhorn buttons behind air bag in spokes and not in center (personal preference)\nTires fling dirt/mud onto side of car \n\nMy Likes:\nengine (design/valves/sounds/smoothness/power/mileage/torque) -- definitely #1\nhandling (very good for FWD; understeer only at limits)\ntransmission (the 5 speed is a must)\nusable instrumentation (lovely readable analog everywhere)\nVery little torque steer at full power (much better than the '90 SHO I drive)\nstability at 100+mph (high gearing though)\nlow cowl (good visibility in front)\nHeated outside mirrors (nice in fog, never tested in freezing weather)\nABS/Air bag (see above)\nrear seats fold down (I have few rear seat passengers so a trunk not important)\nNo shake/rattle noises when going over bumps/potholes (still!)\nTires: 225/55VR16 Goodyear Eagles (70% left; hoping for 30K :-)\n\nAs you can see, I'm primarily interested in the engine.  While it doesn't\nhave the uummmph of a big-liter car or the turbo rush, the big selling\npoint for me was the all-aluminum 24 value 2.5 liter engine.  \n\nThe overall car is a good buy for the money.  That market segment hasn't changed\nmuch since July (Prelude VTEC, Honda Del Sol??).  I drive it to and from work\neach day on relatively smooth roads, and most noticable thing is that the\nProbe's suspension doesn't like potholes.  When you test drive one, find a \npotholed road somewhere around town and see if the jarring you get is tolerable.\nIf you have 3+ passengers, by all means bring them along too.  They'll find\nthat they have no room in the back and you'll find that the car rides\ndifferently (if that's \"better\" is up to you).  Also, there's a lot of glass\naround you which I wasn't expecting; the temperature inside the car gets pretty\nhot in the summer.  My back seat passengers (now very few) complain about\nthe lack of ventilation; you may want to consider that when combined with\nthe heat.  I've heard that the exhaust system has trouble, but mine works fine.\nLeather and the keyless entry system weren't available when I got the car so\nI can't comment on them (I got the car before it was officially announced).  \nI prefer cloth to leather anyway.  \n\nI wouldn't want this car in the snow:  The suspension is too rough for the\ninevitable surprise potholes, tires aren't meant for snow, and the seats assume\nthat you're not wearing lots of thick clothing.  Rain is much better:  water \ngenerally beads off the windshield at freeway speed, the windshield wiper\ncontrols are easy and understandable, and I barely hydroplaned once with the\nEagles (and I was really trying).  \nThere is also a definite lack of cup holder/small storage places.  The GT\nhas map holders below the speakers in the door, but they're rigid plastic\nthat could fit two cassettes or CD's max.  The center console/storage bin/arm\nrest has *1* cup holder and the back of the front seats have a cloth \"pouch\"\nbut that's it.  No change holders.  Quite a let-down from the SHO.\nAnd the Probe is definitely not a people-mover car or an econo-box car!\n\nLastly, don't store wet car covers in the back.  The foam will soak the \nwater up and the result will *not* smell pleasant :-(.\n\nNathan\nnathan@sco.com\n\n>\n>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>|Jeremy Mereness                 | Support     | Ye Olde Disclaimer:    |\n>|zonker+@cmu.edu (internet)      |    Free     |  The above represent my|\n>| FAST Project, CMU-GSIA         |     Software|   opinions, alone.     |\n>|B.S. Mechanical Engineering, CMU|             |     Ya Gotta Love It.  |\n>|               Every Silver Lining's Got a Touch of Grey               |\n>------------------------------------------------------------------------\n>       This year marks the 200th anniversary of the Bill of Rights\n>\n\n\n-- \nMX: nathan@sco.com \n     \"NO COMMENT\"/They're coming to take me away, Ha-Ha! -- Napolean XIV\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 903, "properties": {"category": "soc.religion.christian", "text": "From: stoney@oyster.smcm.edu (Stanley Toney)\nSubject: Re: Am I going to Hell?\nOrganization: University of Maryland, College Park\nLines: 45\n\nIn article <Apr.23.02.55.31.1993.3123@geneva.rutgers.edu>  \ntbrent@ecn.purdue.edu (Timothy J Brent) writes:\n> I have stated before that I do not consider myself an atheist, but \n> definitely do not believe in the christian god.  The recent discussion\n> about atheists and hell, combined with a post to another group (to the\n> effect of 'you will all go to hell') has me interested in the consensus \n> as to how a god might judge men.  As a catholic, I was told that a jew,\n> buddhist, etc. might go to heaven, but obviously some people do not\n> believe this.  Even more see atheists and pagans (I assume I would be \n> lumped into this category) to be hellbound.  I know you believe only\n> god can judge, and I do not ask you to, just for your opinions.\n excellent question timothy. i hpoe the answers you get will be satisfactory  \nas we can not understand the mind of god. but to attempt to answer you  \nclearly. GOD of the Bible has given us humans relativly little about how he  \nintends to judge mankind. the first test is those who have beleived that Jesus  \nChrist is the Son of GOD and that his death and resurrection was sufficent to  \nserve justice for all the acts we commit that are wrong in the eyes of god,  \nthe bible calls this sin. for those who die before the end of the world/have  \nalready died it is more complicated to explain without lapsing in to cliche.\n  God must judge people on the baasis of their works in this world. however  \nthere is no plus and minus system for GOD. he has declared that he can not  \ntolerate spiritual imperfection, thus he can only based your worthiness to  \nlive with him on the wrong in your life. \n  Good people, yes even Christians are going to constantly sin before GOD, The  \nChristian hoever thanks GOD that Christ has given his life for his sin's  \npenalty. the proscribed punishment for sin is death, just as the proscribed  \npunishment for robbery is time in jail. God then cannot ask for anything but  \npunishement for those sins. He does not want to condem. the Bible says in John  \n3:17, that God did not send his son in to the word to condem it but that  \nthrough him it might be saved.\" when i realize that i have sinned, and i do  \nwith painful regularity, i must approach GOD and ask him to not hold thew sin  \nagainst me, i have that right and privlige only because of Christ. as for Jews  \nthey are promised that they must believe on the Messiah who would come, and  \ndis come in Jesus of Nazereth. Muslims, i fear have been given a lie from the  \nfater of lies, Satan. They need Christ as do us all.\n  for those who don't have that right, in the view of the bible they stand  \nolone in their defense. are you going to hell? i can not answer that for you.  \ni can only say that perhaps it is eaiser to ask and answer how can i not go to  \nHell? that step is much more rewarding.\n\nstan toney stoney@oyster.smcm.edu\nmy opinions are my own, you may borrow them\n\np.s. stay in touch and keep asking questions not just to us but to God as  \nwell, he listens too.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 904, "properties": {"category": "sci.electronics", "text": "From: s5600043@nickel.laurentian.ca\nSubject: Re: CD player going wonky - advise needed !\nLines: 18\nOrganization: Laurentian University\n\nIn article <1993Apr13.150525.17978@nessie.mcc.ac.uk>, sl@nessie.mcc.ac.uk (Stuart Lea) writes:\n> Hello,\n> \tI've got a problem with my CD player (SONY CDP-35) in that it refuses\n> to play discs - more than a minor inconvenience!  The player itself doesn't\n> recognise that there is a disc in.  It's an intermitant problem, but one \n> that is becoming more frequent.\n> \n> \tIs this a common problem with older CD players and, if so, what\n> can be done to rectify it ?  If there is no obvious answer, how can I begin to \n> start fault finding.  To start off with, How does thet mach recognise that \n> there is a disc in in the first place ?\n\n\nMy experience is that the CD drawer becomes a bit loose, and the CD either skips\nor can't be read.  Try seeing if all the screws that hold down the drawer\nassembly are tightened properly.  Other than that, my next guess would be one of\nthe motors.  Hope this helps.\nDave Haans, Laurentian University, Sudbury, Ontario.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 905, "properties": {"category": "misc.forsale", "text": "From: set@matt.ksu.ksu.edu (ViSioNary Gfx)\nSubject: ATTENTION SUPER NINTENDO AND GENESIS PLAYERS READ THIS\nOrganization: Kansas State University\nLines: 56\nDistribution: world\nNNTP-Posting-Host: matt.ksu.ksu.edu\n\n\n\nIM pleased to announce a new revolutionary device that allows you to\ncopy super nintendo and genesis games to floppy disk.  Then later\nplay from floppy disk with out the cart.  This is a independent system\nthat interfaces with your SNES or Genesis.\n\nOTHER FEATURES\n\n*Store multiple copies of cart. save game to disk (up to 32 saves to disk)\n\n*Save your position in SNES games that don't norally have a save feature\n\n*Switch your SNES into slow motion mode\n\n*Use codes to get unlimited lives and other \"cheats\" in many games.\n\nThe Multi-Game Hunter is capable of copying both SNES and Genesis game \ncarts to standard IBM PC formated floppy disks. The games can them be played directly from the floppy disk. NOTE:IT does not require a PC\n\nFull color on-screen icons and menus make operation for the MGH so simple\nthat even a child could operate it.  Options can be selected simply by choosing the selection with the game controller and pressin a button.\n\nAdd a Game saver adapter to your system for more game playing power.  The\nGame saver allows you to save your position to disk in almost any SNES game!\nReload your saved position any time.  Enable it's slow-motion feature for those really tough games.\n\nFor more control over game play, We have the Game finger software.  The\ngame finger software can give you unlimited lives or warp you to new levels in\nyour favorite SNES games.  Bring back to life those really frustrating games.\n\nAlso if you know how to program 6518 6502 ASM code you can create your own\nSNES demos or games.\n\nMGH includes\n\nBase unit,disk drive (high density 3.5 drive), 16megabit RAM, 256 SRAM,\nall adapters and comes ready to hook up to your gameing system.\n\nONly thing not included is the power supply which you can pick up at\nradio shack.\n\nAll for only $500\n\nDISCLAMER\n\nthe customer assumes all responsibility for the use and or misuse of this \nproduct.  We in no way encourage nor condone the use of this product for\nsoftware piracy.  This device is intended soley for making legal backup\ncopies.  Neither Nintendo or Sega has giving official endorsement of the \nproducts described herein.\n\nEmail me for more info or to make a purchase\n.\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 906, "properties": {"category": "comp.graphics", "text": "From: fineman@stein2.u.washington.edu (Twixt your toes)\nSubject: Anyone know use \"rayshade\" out there?\nOrganization: University of Washington\nLines: 12\nNNTP-Posting-Host: stein2.u.washington.edu\nKeywords: rayshade, uw.\n\nI'm using \"rayshade\" on the u.w. computers here, and i'd like input\nfrom other users, and perhaps swap some ideas.  I could post\nuuencoded .gifs here, or .ray code, if anyone's interested.  I'm having\ntrouble coming up with colors that are metallic (i.e. brass, steel)\nfrom the RGB values.\n\nIf you're on the u.w. machines, check out \"~fineman/rle.files/*.rle\" on \nstein.u.washington.edu for some of what i've got.  \n\ndan\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 907, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: Islam And Scientific Predictions (was Re: Genocide is Caused by Atheism)\nOrganization: Monash University, Melb., Australia.\nLines: 41\n\nIn <16BB4C522.I3150101@dbstu1.rz.tu-bs.de> I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n\n>In article <1993Apr17.122329.21438@monu6.cc.monash.edu.au>\n>darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n> \n>>>>\"AND IT IS HE (GOD ALMIGHTY) WHO CREATED THE NIGHT AND THE\n>>>>DAY, AND THE SUN AND THE EARTH:  ALL (THE CELETIAL BODIES)\n>>>>SWIM ALONG, EACH IN ITS ROUNDED COURSE.\"  (Holy Quran 21:33)\n>>\n>>>Hmm. This agrees with the Ptolemic system of the earth at the centre,\n>>>with the planets orbitting round it. So Copernicus and Gallileo were\n>>>wrong after all!\n>>\n>>You haven't read very carefully -- if you look again, you will see that\n>>it doesn't say anything about what is circling what.\n> \n>Anyway, they are not moving in circles.  \n\nOops, sorry, my words, not the words of the Qur'an.\n\n>Nor is there any evidence that\n>everything goes around in a rounded course in a general sense. Wishy-\n>washy statements are not scientific.\n\nNote that \"(the celestial bodies)\" in the above verse is an\ninterpolation (which is why it is in brackets) -- it is the translator's \n(incorrect, IMHO) interpretation.\n\nHere is Maurice Bucaille's translation (he studied Arabic for his\nresearch into the Qur'an and science) of this verse:\n\n\"(God is) the One Who created the night, the day, the sun and the moon.\nEach is travelling in an orbit with its own motion.\" (Qur'an :33)\n\nThe positive aspect of this verse noted by Dr. Maurice Bucaille is that\nwhile geocentrism was the commonly accepted notion at the time (and for\na long time afterwards), there is no notion of geocentrism in this verse\n(or anywhere in the Qur'an).\n\n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 908, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rash@access.digex.com (Wayne Rash)\nSubject: Re: 17\" Monitors\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 50\nNNTP-Posting-Host: access.digex.net\n\nmreamy@rock.concert.net (Michael G Reamy -- Support) writes:\n\n>>and they too said that the Nanao T560i was the best monitor to get if\n>>you had the money. But they also said that the Mitsubishi Diamond Pro\n>>17 is the next best choice and that it has superb picture quality.\n>>This monitor can be had for around $1070.\n>>\n>>Has anyone actually seen any of these? \n\n>I am responsible for choosing standard components in my company and as part\n>of my review i got the Viewsonic 7, Mitsubishi 17, and Nanao F550is.  I picked\n>the F550i even though it costs more than the other two choices because it\n>has a the best clarity and text is not fuzzy at all.  The Viewsonic 7 is the\n>worst, the Mitsubishi 17 is much better but the Nanao F550i blows both of\n>them out of the water.  I don't understand why the Nanao is so much better \n>since one would think that the Mitsubishi 17 with it's Trinitron tube would\n>be better.  I can only imagine that the Nanao T560i must be incredible if it\n>is beter than the F550i.\n>-- \n\n>Michael G. Reamy (mreamy@rock.concert.net)\n\n>The light at the end of the tunnel may be an oncoming dragon.\n\nOne of the monitors I reviewed for the June issue of Windows Magazine was\nthe Mitsubishi.  I also reviewed a new Nanao, the F550iW, which has just\nbeen released.  Last year for the May '92 issue of Windows, I reviewed\nseveral monitors, including the Nanao T560i.  There's no question that the\nNanao monitors are the best available this year, just as they were last\nyear.  The difference between my ranking of the best in Windows and the\nranking in Windows Sources is due mainly to a difference in the testing\ncriteria and the scoring.  I used different tests than they did, and I\nscored differently.  There's nothing wrong with the Mitsubishi, and it\nscored very highly in my tests, but it was a few points shy of perfect.\n\nIncidentally, one of the things everyone should do when they're reading\nreviews of any product, whether it's monitors or mice, is to read the\ncriteria and methodology carefully.  Unless you know how the product\ntesting was done, and on what the scores are based, you can't possibly\nknow what they really mean.  Just seeing that I rank a monitor differently\nfrom Windows Sources is meaningless without knowing how we did the\nranking.  Likewise, it's impossible to tell whether a monitor will meet\nyour needs unless you know how we did the testing.  After all, some of\nwhat we do may not apply to you.  Likewise, some of what we do may apply\nmore closely in one review than in another.  You can't always tell\nanything from reading the 300 or so words of commentary we write if you\ndon't also understand the scoring.\n\nWayne Rash\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 909, "properties": {"category": "talk.politics.misc", "text": "From: hagenjd@wfu.edu (Jeff Hagen)\nSubject: Re: Top Ten Reasons Not to Aid Russians\nOrganization: Wake Forest University\nLines: 4\nNNTP-Posting-Host: ac.wfunet.wfu.edu\n\n\nWasn't it Tricky Dick who issued stern warnings to Bush & Clinton\nnot to 'Lose Russia'?  (a la 'Who lost China?')\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 910, "properties": {"category": "talk.politics.misc", "text": "From: doctor1@cbnewse.cb.att.com (patrick.b.hailey)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nOrganization: AT&T\nLines: 63\n\nIn article <1993Apr15.170731.8797@isc-br.isc-br.com> steveh@thor.isc-br.com (Steve Hendricks) writes:\n\n[ These two paragraphs are from two different posts.  In splicing them \n  together it is not my intention to change Steve's meaning or misrepresent\n  him in any way.  I don't *think* I've done so. ]\n\n>As noted in another thread (Limiting govt), the problem libertarians face\n>is insuring that the \"limited government\" they seek does not become the \n>tool of private interests to pursue their own agenda.\n> \n>It is a failure of libertarianism if the ideology does not provide any\n>reasonable way to restrain such actions other than utopian dreams.  Just\n>as Marxism \"fails\" to specify how pure communism is to be achieved and\n>the state is to \"wither away,\" libertarians frequently fail to show how\n>weakening the power of the state will result in improvement in the human\n>condition.\n\nPart of what started this was my earlier example of Illinois, USA requiring\nanyone doing more than X automobile transfers a year (X = 10, I think)\nto become licensed as a used car dealer.  In addition, it requirs anyone\nwith a used car dealer's license to own at least 10 cars at a time, all the\ntime. \n\nLet me continue with this example and try to answer Steve's questions.\n\nSteve, let's say you have the talent and inclination to fix up and resell\ncars.  Either you've gotten good enough at it in your spare time to bump\nup against these limits, or you would like to do it full-time but these\nstupid, arbitrary laws prevent you from starting out small and pulling\nyourself up.  So I'm protected from a hungry neighborhood competitor willing\nto take a low profit while working extra hard to fulfill my needs, and you're\nprotected from doing what you want with your life.\n\nHere's what I see libertarianism offering you:\n\nYour money is truly yours; it belongs to you.  You can use it to buy a car.\nIf you use it to buy a car, it is truly your car; it belongs to you.  You\ncan use your money to fix up that car.  Since it is your car, you can sell\nthat car.\n\nYour life is truly yours; it belongs to you.  It matters not if someone\nthinks that it's \"wrong\" for you to buy and sell 10 cars within 12 months\nrather than, say, 9 cars.  They may dissaprove, but it is not their life or\ntheir money, it is your life and your money.\n\nMy money is truly mine; it belongs to me.  I can use it to buy a car.\nPerhaps your car.  Perhaps that 10th car, the one that someone, somewhere\ndissaproves of you selling and, presumably, of me buying.\n\nThat someone could go to the government and insist that the government make\nus stop it.  But the government would be powerless to stop us from doing\nwhat we like with our own property, in the abscence of fraud or agression.\nAnd it would be powerless to stop us from associating with each other.\n\nThis does not seem to me to be a utopian dream, but basic human decency\nand common sense.  A real grass-roots example of freedom and liberty.\nAnd yes, not having a few people acting as our masters, approving or\nrejecting each of our basic transactions with each other, does strike me\nas a wonderful way to improve the human condition.\n\n   Thanks awfully,\n             Patrick\n \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 911, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: HR 1276 (\"A gun law I can live with!\" :-)\nOrganization: Stratus Computer, Inc.\nLines: 15\nDistribution: usa\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1993Apr15.171601.25930@dg-rtp.dg.com>, meyers@leonardo.rtp.dg.com (Bill Meyers) writes:\n\n>                                     A BILL \n>   \n> To establish the right to obtain firearms for security, and\n>     to use firearms in defense of self, family, or home, and\n>     to provide for the enforcement of such right.\n\nMaybe I'm too \"religious,\" but when I see a bill to \"establish a right,\"\nI wince.  Keep in mind, what the law giveth, the law can taketh away.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.044+0000", "event": "documents", "entityId": 912, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nOrganization: Boston University Physics Department\nLines: 63\n\nIn article <1993Apr14.121134.12187@monu6.cc.monash.edu.au> darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n\n>>In article <C5C7Cn.5GB@ra.nrl.navy.mil> khan@itd.itd.nrl.navy.mil (Umar Khan) writes:\n\n>I just borrowed a book from the library on Khomeini's fatwa etc.\n\n>I found this useful passage regarding the legitimacy of the \"fatwa\":\n\n>\"It was also common knowledge as prescribed by Islamic law, that the\n>sentence was only applicable where the jurisdiction of Islamic law\n>applies.  Moreover, the sentence has to be passed by an Islamic court\n>and executed by the state machinery through the due process of the law.\n>Even in Islamic countries, let alone in non-Muslim lands, individuals\n>cannot take the law into their own hands.  The sentence when passed,\n>must be carried out by the state through the usual machinery and not by\n>individuals.  Indeed it becomes a criminal act to take the law into\n>one's own hands and punish the offender unless it is in the process of\n>self-defence.  Moreover, the offender must be brought to the notice of\n>the court and it is the court who shoud decide how to deal with him.\n>This law applies equally to Muslim as well as non-Muslim territories.\n\n\nI agree fully with the above statement and is *precisely* what I meant\nby my previous statements about Islam not being anarchist and the\nlaw not being _enforcible_ despite the _law_ being applicable. \n\n\n>Hence, on such clarification from the ulama [Islamic scholars], Muslims\n>in Britain before and after Imam Khomeini's fatwa made it very clear\n>that since Islamic law is not applicable to Britain, the hadd\n>[compulsory] punishment cannot be applied here.\"\n\n\nI disagree with this conclusion about the _applicability_ of the \nIslamic law to all muslims, wherever they may be. The above conclusion \ndoes not strictly follow from the foregoing, but only the conclusion \nthat the fatwa cannot be *enforced* according to Islamic law. However, \nI do agree that the punishment cannot be applied to Rushdie even *were*\nit well founded.\n\n>Wow... from the above, it looks like that from an Islamic viewpoint\n>Khomeini's \"fatwa\" constitutes a \"criminal act\" .... perhaps I could\n>even go out on a limb and call Khomeini a \"criminal\" on this basis....\n\n\nCertainly putting a price on the head of Rushdie in Britain is a criminal \nact according to Islamic law. \n\n\n>Anyhow, I think it is understood by _knowledgeable_ Muslims that\n>Khomeini's \"fatwa\" is Islamically illegitimate, at least on the basis\n>expounded above.  Others, such as myself and others who have posted here\n>(particularly Umar Khan and Gregg Jaeger, I think) go further and say\n>that even the punishment constituted in the fatwa is against Islamic law\n>according to our understanding.\n\nYes.\n\n\n\n\n\nGregg\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 913, "properties": {"category": "comp.windows.x", "text": "From: rbw@jet.uk (Dr Richard B Wilkinson)\nSubject: XBell\nOrganization: Joint European Torus\nLines: 8\n\nI have a program produces a continuous tone by calling XBell\nrepeatedly at an interval equal to the duration of the bell. If it is\nrun more than once on a display, the tones are buffered in the X\nserver and the tone contunues after all occurrences of the program\nhave exited. Is there a convenient way of preventing this, e.g., by\nemptying the X server bell buffer when each program exits?\n- Disclaimer: Please note that the above is a personal view and should not \n  be construed as an official comment from the JET project.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 914, "properties": {"category": "talk.politics.misc", "text": "From: pjs269@tijc02.uucp (Paul Schmidt)\nSubject: Re: Employment (was Re: Why not concentrate on child molesters?\nOrganization: Advocates for Self-Government - Davy Crockett Chapter\nX-Newsreader: Tin 1.1 PL4\nLines: 50\n\nsys1@exnet.co.uk (Xavier Gallagher) writes:\n: \n: No.  I make a distinction between working for yourself to survive and\n: paying dues to Mother Nature in the form of labour and working for\n: Joe propertyowner because you do not have the option of working for\n: yourself.  Joe propertyowner stands between you and the earth you\n: work and expects you to pay him *and* mother nature for the right\n: to survive.  The property laws create a layer of parasites that get\n: fat on the fact that people have *no option* except to work in\n: factories.  \n: \nI want people to be able to get the things they need in life.  Property\nownership may not be ideal, but it is far better at letting people get\nwhat they need to live a productive, fulfulling life.\n\nThe first experiment in America, where property ownership was denied,\ncaused, starvation, hunger, and death.  Few people know that the\nPilgrims originally tried to have common property to grow food and a\ncommon food store.  Many people know the hardships they suffered the\nfirst few winters because of it.  After arriving, the Pilgrims made all\nproperty common.  They all shared in the work and the resulting crops\nwent into a common store.  After much debate the new Governor Bradford\nprivitized the land; assigning plots to each family.  According to Perry\nD. Westbrook:  \"The change was immediately justified by the increased\nindustry of the inhabitants and by the larger acreage planted.\"\n\nBradford himself acknowledged this failure of communism.  He wrote:  \"The\nexperience that was had in this common course and condition, tried\nsundry years and that amongst godly and sober men, may well evince the\nvanity of that conceit of Plato's and other ancients applauded by some of\nlater times; that the taking away of property and bringing in community into\na commonwealth would make them happy and flourishing; as if they were wiser\nthan God.  For this community (so far as it was) was found to breed much\nconfusion and discontent and retard much employment that would have been\nto their benefit and comfort.\"\n\nBradford did not blame this failure on the \"strangers\", but on the basic\nselfishness in all men.  He wrote \"seeing all men have this corruption in\nthem, God in his wisdom saw another course fitter for them.\"  In other\nwords, according to Westbrook, \"Bradford found private enterprise to be\nthe most suitable economic policy for mankind in its fallen state.\"\n\nLet's not make the same mistake that the Pilgrims made.  Private\nproperty allows a society to flourish, the alternative brings\nstarvation, poverty and discontent.\n-- \nPaul Schmidt: Advocates for Self-Government, Davy Crockett Chapter President\n706 Judith Drive, Johnson City, TN 37604, (615)283-0084, uunet!tijc02!pjs269\n\"Freedom seems to have unleashed the  creative energies of the people -- and\nleads to ever higher levels of income and social progress.\"  --  U.N. report\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 915, "properties": {"category": "comp.sys.mac.hardware", "text": "From: khc@marantz.Corp.Sun.COM (Kelly Chang)\nSubject: Mac II SCSI & PMMU socket question\nOrganization: Sun Microsystems, Inc.\nLines: 17\nDistribution: world\nReply-To: khc@marantz.Corp.Sun.COM\nNNTP-Posting-Host: marantz.corp.sun.com\n\n\n===== This is a posting for my friend who does not have USENET access ========\n===== Please contact him (not me) directly, thank you ========================\n\n1. The Mac II is supposed to have a socket for the MC68851 PMMU chip. Could\nanyone let me know where that socket is on the motherboard. I have obtained\na PMMU chip (16 Mhz) from a surplus store, and would like to install it onto\nmy Mac II (circa 1987). But I cannot see the socket myself when I tried to\ninstall it.\n\n2. Could anyone send me the pinouts for the Mac II SCSI DB-25 interface?\n\n\nThank you.\n\n\tContact: David Chan, bzone@attmail.com\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 916, "properties": {"category": "rec.sport.baseball", "text": "From: dxf12@po.CWRU.Edu (Douglas Fowler)\nSubject: Re: Jack Morris\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 60\nReply-To: dxf12@po.CWRU.Edu (Douglas Fowler)\nNNTP-Posting-Host: slc12.ins.cwru.edu\n\n\nIn a previous article, tedward@cs.cornell.edu (Edward [Ted] Fischer) says:\n\n>In article <1qr05cINNpel@skeena.ucs.ubc.ca> stlouis@unixg.ubc.ca (Phill St. Louis) writes:\n>>Jack Morris' starts have been like his playoff starts.  He has an ERA of\n>>17.18 in his 3 starts.\n>>\n>>What does luck have to do with a 17.18 ERA?  He was lucky to get 21 wins\n>>last year, but he had an ERA of 4.04 with a team that scored a lot of\n>>runs.  I would be happy if he could still pitch with an ERA of 4.04, but\n>>he seems to be suffering from a total callapse.  \n>\n>Bad pitchers are more prone to this total collapse than good pitchers.\n>They are closer to the chasm of mediocrity.  The smallest push and\n>they completely lose their grip.\n>\n     But good ones can collapse somewhat, then come back the next year.\nBurleigh Grimes went from 20+ wins and an ERA of 3 or so in '24 to 13-19 and\nan ERA around 4 in '25.  He pitched well for several more years.  Carlton\nwon 13 and lost 20 the year after his 27-10 record. (Source: Bill James\nHistorical Baseball Abstract.)\n     And let's not forget John Tudor, who started 1-5 and finished 21-6 in\n1985.  He had a pretty bad ERA when you take Busch Stadium into account at\nthe start of the season.\n\n>>He gave up early runs\n>>in his '92 games and would get stronger as the game went on, thus giving\n>>up few runs in the last going.  He stays in the game and gets the win.\n>>How else would he have pitched so many innings?\n>\n>Yup.  He used to dig himself a hole, then get it together and stick in\n>until the run support eventually came through.  This year he just\n>hasn't gotten it together.\n\n     If I recall, he had a 4.50 ERA in the 1st half and a 3.50 ERA in the\n2nd half of last year.  \n     Hmmm, 21 runs in 11 innings.  Suppose he starts 30 more games, and winds\nup w/200 innings pitched.  If he allows 4 runs a game in the next 189\ninnings, he'll have a 4.75 ERA or so at the end of the year. (I think I have\nhis totals right.) This is going to be hard to come back from.\n\n>>Jack may be finished.  It is time to retire or be released, if he does\n>>not return to his form from last year.\n>\n>His $5 million contract is an awful lot to eat!\n\n     My 1st hunch is that Morris is very gutsy, and that he may be pitching\nthrough an injury and not telling anyone.  My 2nd guess is that he will be\nbanished to the bullpen the remainder of the season after a few more starts.\n(Perhaps when Stewart comes off the DL?  Or will Danny Cox, who went 3 or 4\nscoreless innings against the Tribe today, start for Morris?  He looks like\na really good one.  Gaston is scrambling to find starters, I'd imagine.\nLuckily, the Jays have a very good offense.)\n     I don't think they would dare release him before the end of the year.\nHe'll just be replaced by Stewart or Cox.\n-- \nDoug Fowler: dxf12@po.CWRU.edu  : Me, age 4 & now: \"Mommys and Daddys & other\n    Ever wonder if, after Casey : relatives have to give lots of hugs & love\nmissed the 3rd strike in the poem: & support, 'cause Heaven is just a great\nhe ran to first and made it?     : big hug that lasts forever and ever!!!\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 917, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: flyboy@spf.trw.com (Jeff Wright)\nSubject: Need pinouts for ext db25 floppy connectors, please\nOrganization: TRW Sensor Data Processing Center, Redondo Beach, CA\nDistribution: ca\nLines: 20\n\n\nHi, all. This is my first posting, so be gentle...\n\nI have a Zenith external floppy which has a DB25 connector, and I'd\nlike to use it with my Sharp and Toshiba laptops, which also take a\nDB25 for their ext floppy, but it doesn't work.  I have the pinouts\nfor the Zenith, and would like to make adapters so I can use it.\n\nDoes anyone have pinouts for these or other manufacturers' DB25 ext\nfloppy connectors?  I would greatly appreciate this info, either by\ne-mail or fax.\n\nThanks very much,\n                  Jeff, aka flyboy@coyote.trw.com\n                        fax (310) 882-8800\n\n-- \nJeff Wright  \t        (flyboy@spf.trw.com)\nPhone: (213)812-7332    FAX: (213)812-8800\nTRW, One Space Park O2/1769, Redondo Beach, CA  90278\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 918, "properties": {"category": "comp.windows.x", "text": "From: ai900@yfn.ysu.edu (Joshua P. Weage)\nSubject: X for PC\nOrganization: Youngstown State/Youngstown Free-Net\nLines: 17\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nFor those of you who couldn't find X-Appeal, it is availible at\nthe following sitex:\n\n\tascwide.ascii.co.jp in the /pub/MSDOS/xappeal dir\n\twuarchive.wustl.edu in the /mirrors4/garbo.uwasa.fi/demo\n\tdirectory\n\n\tThe three files are xap13exe.aip, xap10fon.zip and\n   drivers.zip.\n\nJosh\n-- \n+  Joshua Weage : U.S. Snail - 277 Spring Rd, Baroda, MI  49101 +\n+  E-Mail: cs890@freenet-in-a.cwru.edu |  ai900@yfn.ysu.edu     +\n+   Fidonet:  Joshua Weage @ 1:2340/130                         +\n+  All ideas are my own and no one elses!!                      +\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 919, "properties": {"category": "talk.politics.mideast", "text": "From: rj3s@Virginia.EDU (\"Get thee to a nunnery.....\")\nSubject: Re: Israeli Terrorism\nOrganization: University of Virginia\nLines: 1\n\nJust kidding\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 920, "properties": {"category": "talk.politics.misc", "text": "From: dave@alex.uchicago.edu (Dave Griffith)\nSubject: Re: Temper tantrums from the 1960's\nOrganization: University of Chicago\nDistribution: usa\nLines: 14\n\nIn article <1993Apr14.231117.21872@pony.Ingres.COM> garrett@Ingres.COM  writes:\n>In article <philC5Ht1t.GwA@netcom.com>, phil@netcom.com (Phil Ronzone)                   writes...\n>>Along with normalized relations with the PRC.\n>\n>\"Normalizing relations\" with Cambodia? You must be joking. We sponsored\n>the OVERTHROW of the Cambodian government. After repeated failed attempts\n>of course. \n\nPRC = People's Republic of China != Cambodia.  Go play.\n\n-- \nDave Griffith, Information Resources, University of Chicago,\nDepartment of Surgery                       dave@alex.bsd.uchicago.edu\nBrain damage was what we were after.  The chromosome damage was just gravy.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 921, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jcox@x102a.harris-atd.com (Jamie Cox)\nSubject: Re: serial port problem\nNntp-Posting-Host: x102a.ess.harris.com\nReply-To: jcox@x102a.ess.harris.com (Jamie Cox)    \nOrganization: Harris Govt. Aerospace Systems Division\nKeywords: serial port, powerbook\nLines: 41\n\nIn article <1qcq4gINN2q7@calvin.usc.edu> wls@calvin.usc.edu writes:\n>\n>\n>A friend asked me to build a cable to connect an HP fetal heart monitor\n>to a Maciontosh (SE/30).  No problem, sez I.\n>\n>...\n>I wanted to demo it on my PB 170, it won't work!\n>\n>The PB has been used running ZTerm and kermit using both internal and external\n>modems; so I don't think it's the powerbook per se.\n>\n>When I send a \"^51\" to the HP it responds with \"^55^AA\" -- a test of the serial\n>ports.  It works on the SE/30; but not on the PB170.\n>\n>I thought that the SE/30 is connected to earth ground and so is the HP. So I\n>connected from the chassis of the HP to the PW audio (ground) connector; still\n>NG.\n>\n>Any thoughts?\n\nBattery powered devices like the PowerBook are sometimes more sensitive to \nserial port weirdness.  I had trouble with connecting my Mac Plus to an HP 95LX\nhandheld.  Everything else worked okay on that port, but not the HP. (it runs\non two penlite batteries).  It turned out that the plus (by accident or by \ndesign flaw?) was putting a 4 volt bias on the serial port that was doing \nweird things to the HP (which has only 3v dc!).  The HP worked fine when \nconnected to the printer port.  \n\nDoes your PB screen get dim or anything when connected to the device?  Have you \ntried using the printer port?\n\nGood luck. \n\n--jamie\n\n\nJamie Cox  jcox@ess.harris.com | Phone:           1 407 633 5757 (work) \nHarris Space Systems Corp.     |                  1 407 723 7935 (home)\nMS ROCK-2, 295 Barnes Blvd.    |The Macintosh Meeting and Drinking Society\nRockledge, Florida  USA        | \"Speaking only for myself.\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 922, "properties": {"category": "soc.religion.christian", "text": "From: mussack@austin.ibm.com (Chris Mussack)\nSubject: Re: The arrogance of Christians\nReply-To: mussack@austin.ibm.com\nLines: 14\n\nIn article <Apr.10.05.32.15.1993.14385@athos.rutgers.edu>, dleonar@andy.bgsu.edu\n (Pixie) writes:\n> \n>      Do the words \"Question Authority\" mean anything to you?\n> \n>      I defy any theist to reply.      \n\nFor all those people who insist I question authority: Why?\n\nChris Mussack\n\n(This is another example of my biting, raw-edged humor that is\nneither appreciated nor understood by everyone.)\n#8;-)>  {Messy hair, glasses, winking, smiling, big chin}\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 923, "properties": {"category": "comp.sys.mac.hardware", "text": "From: fag2@cunixb.cc.columbia.edu (Farul A Ghazali)\nSubject: PDS cards for the LCIII\nNntp-Posting-Host: cunixb.cc.columbia.edu\nOrganization: Columbia University\nLines: 8\n\n\nAre there any PDS expansion cards out there that specifically take\nadvantage of the LCIII's 32 bit data path and 25MHz clock speed? If\nthey exist, are they significantly faster than the LC/LCII versions?\n\n     -- farul ghazali.\n        columbia university in the city of new york.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 924, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: Another NYTimes Yellow-Sheet Editorial (4/4/93)\nOrganization: California Institute of Technology, Pasadena\nLines: 23\nNNTP-Posting-Host: sandman.caltech.edu\n\nfeustel@netcom.com (David Feustel) writes:\n\n\n[other uninformed, purposefully ignorant gun control ranting deleted]\n\n>*  Thanks to the N.R.A., the A.T.F. is prohibited from researching the\n>effectiveness of using taggants in explosives, Taggants are a cheap\n>and technologically feasible microscopic additive that would help\n>investigators at crime scenes - like the World Trade Center bombing\n>- trace the explosives involved.\n\nI want this man to tell me how in the hell you can take the \nexplosives used in the WTC bombing, considering that the \nconsensus seems to be that the explosive was a fertilizer-based\none.  Ammonium nitrate, to be exact . . . of which about\n90,000 tons disappears per year (if I recall the stat correctly;\nI don't have it here.)  Just one more disregarding of reality\nto push a point.\n\n[more bunk deleted]\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 925, "properties": {"category": "rec.sport.hockey", "text": "From: huot@cray.com (Tom Huot)\nSubject: Re: plus minus stat\nLines: 28\nNntp-Posting-Host: pittpa.cray.com\nOrganization: Cray Research Inc.\nX-Newsreader: TIN [version 1.1 PL8]\n\nBrad Gibson (gibson@nukta.geop.ubc.ca) wrote:\n\n[Much text deleted]\n\n:   plus/minus ... it is the most misleading hockey stat available.\n\nNot necessarily the most misleading, but you are right, it definitely\nneeds to be taken in the proper perspective. A shining example is\nif you look at the Penguins individual +/-, you will find very few minuses.\nThat only makes common sense, since they didn't lose many games.\n\n:   Until the NHL publishes a more useful quantifiable statistic including ice\n:   time per game and some measure of its \"quality\" (i.e., is the player put out\n:   in key situations like protecting a lead late in the game; is he matched up\n:   against the other team's top one or two lines; short-handed, etc), I would\n:   much rather see the +/- disappear altogether instead of having its dubious\n:   merits trumpeted by those with little understanding of its implications.\n\nUnfortunately, you will need to keep a ridiculous number of stats to\nreally come up with a statistic which really shows a player's value.\nLet's just enjoy the game and not overanalyze it. (like I'm doing now,\nexcuse me!)\n\n--\n_____________________________________________________________________________\nTom Huot        \t\t\t       \nhuot@cray.com \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 926, "properties": {"category": "rec.autos", "text": "From: edwards@world.std.com (Jonathan Edwards)\nSubject: Re: Jeep Grand vs. Toyota 4-Runner\nArticle-I.D.: world.C51Hn0.2JI\nOrganization: IntraNet, Inc.\nLines: 18\n\nIn article <1pq29p$29p@seven-up.East.Sun.COM> jfox@hooksett.East.Sun.COM writes:\n>\n>Any reason you are limited to the two mentioned? They aren't really at\n>the same point along the SUV spectrum - not to mention price range.\n>How about the Explorer, Trooper, Blazer, Montero, and if the budget\n>allows, the Land Cruiser? \n\nAny advice on HOW to buy a Land Cruiser? My local Toyota dealer says they\nget two a year, and if I want one I can just get on the waiting list.\nForget about a test drive or even kicking the tires.\nAnd if they are that rare, I doubt there is much of a parts inventory on\nhand.\n\n\n\n-- \nJonathan Edwards\t\t\t\tedwards@intranet.com\nIntraNet, Inc\t\t\t\t\t617-527-7020\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.045+0000", "event": "documents", "entityId": 927, "properties": {"category": "sci.electronics", "text": "From: cfb@fc.hp.com (Charlie Brett)\nSubject: FET-TRONS(sp?)\nNntp-Posting-Host: hpfcmgw.fc.hp.com\nOrganization: Hewlett-Packard Fort Collins Site\nX-Newsreader: TIN [version 1.1 PL8.5]\nLines: 5\n\nHas anyone ever heard of FET-TRONS (or is it FETRONS, FETTRONS, ...).\nThese were FET replacement modules for vacuum tubes. I'm looking for\napplications where they were used. \n\n       Charlie Brett - HP Ft. Collins\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 928, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: neff123@garnet.berkeley.edu (Stephen Kearney)\nSubject: Re: Is Microsoft Windows really and Operating system?\nArticle-I.D.: agate.1pr6rm$t7f\nOrganization: University of California, Berkeley\nLines: 19\nNNTP-Posting-Host: garnet.berkeley.edu\n\n>Well, you may think that, but you are wrong.\n\nAh... The joys of networking. I just hope that you forgot the :->\n\n>If you don't like the file manager, DON'T use it!\n\nI don't. I use NDW.\n\n>I like the more modular nature of Windoze.\n\nIf you like things to be modular, I think you would love System 7.\nInstead of adding a line to your autoexec.bat, you just drop the\nicon into the extensions folder.\n\n>Just because one has had ignorance sold to one by the evil \n>fruit empire, one is not forbidden to learn about one's file \n>system below the level of the GUI.\n\nI'm still working on that one :-/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 929, "properties": {"category": "rec.sport.baseball", "text": "From: philly@ravel.udel.edu (Robert C Hite)\nSubject: Re: WFAN\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nLines: 26\n\nIn article <1993Apr15.151202.3551@Virginia.EDU> jja2h@Virginia.EDU (\"\") writes:\n>Does any one out there listen to WFAN?  For those of you who do\n>not know what I am talking about, it is an all sports radio\n>staion in New York.  On a clear night the signal reaches up and\n>down the East coast.  In particular, I want to know how Len\n>Berman and Mike Lupica's show is.  I go to school in Virginia\n>so I can't listen when there are on during the day.  Just\n>wondering.\n\nThe FAN is an okay Sports Radio station, but doesn't come close to\nthe ULTIMATE in Sports Radio, 610 WIP in Philadelphia.  The signal\nmight not be as powerful, but then again only stations in New York\nfeel \"obligated\" to pollute everyone else's airwaves with a bunch of\nhoodlum Mets fans complaining 24 hours a day.  WIP took two of your\nbest sports jockeys too, Jody MacDonald and Steve Fredericks.  610\nWIP is rockin with sports talk from 5:30 AM till midnight, check it\nout anytime your within a few hours of Philadelphia.  If I'm not\nmistaken, WIP has the highest sports talk ratings in the nation?\n\n-Rob\n\np.s the only nice thing about the FAN is that they talk sports all\nnight.  hopefully 610 will begin to do that somewhat soon\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 930, "properties": {"category": "comp.windows.x", "text": "From: andy@ice.stx.com (Andy Moore)\nSubject: Q: How to avoid XOpenDisplay hang?\nKeywords: Xlib\nReply-To: andy@ice.stx.com\nOrganization: Hughes STX, Lanham, MD\nLines: 13\n\nI'm writing 'xwall', a simple X version of 'wall', and I want it to\nput a message up on each of a default list of displays.  The problem\nis that XOpenDisplay hangs if one of the displays is currently\ncontrolled by xdm (login screen).   I've been through the manuals\nand FAQ and don't see a simple way to see if a display is 'openable'\nahead of time, or to get XOpenDisplay to fail after a short period\nof time.  Any hints, suggestions, clues, or pointers to info?  Thanks...\n\n-- \nAndy Moore (andy@ice.stx.com)\n_______________________________________________________________________________\n\"You could say I've lost faith in the politicians/\n They all seem like game show hosts to me...\"          - Sting\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 931, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: genek@ucsb.edu (Gene Kostruba)\nSubject: Diamond Speedstar HiColor card\nOrganization: University of California, Santa Barbara\nLines: 15\n\nI have a 486DX33 ISA system with 4 meg.  I am using a Diamond Speedstar HiColor\nvideo card with 1 meg VRAM and a standard CTX 14-in SVGA monitor.  When I am\nrunning Windows, and I have overlapping windows (say an application overlapping\nthe program manager window), and I close the active application, window erasure\nis very slow.  The part of the window that is not overlapping is erased first,\nvery slowly.  This also happens when I iconify an application.\n\nThe HiColor card is advertised as a faster-than-standard video card, but it\ndoes not have an accelerator chip on it.  I am running at 800x600x32k.  Is this\nslow speed simply to be expected without an accelerator chip, or is there\nsomething else that is bottlenecking the system that I am unaware of?\n\nThanks.\n\n(You can mail to me directly if you wish, at genek@cs.ucsb.edu).\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 932, "properties": {"category": "comp.graphics", "text": "From: jamie@genesis.MCS.COM (James R Groves)\nSubject: FTP for Targa+\nOrganization: MCSNet Contributor, Chicago, IL\nLines: 5\nDistribution: world\nNNTP-Posting-Host: localhost.mcs.com\n\nI am looking for software to run on my brand new Targa+ 16/32. If anyone knows\nof any sites which have useful stuff, or if you have any yourself you want to\ngive, let me know via mail. Thanks a LOT! Yayayay!\n                                     jamie@ddsw1.mcs.com\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 933, "properties": {"category": "comp.windows.x", "text": "From: david@swat (David E. Smyth)\nSubject: Re: Looking For David E. Smyth\nNntp-Posting-Host: swat\nOrganization: Jet Propulsion Laboratory (NASA)\nLines: 16\n\nzvi@nynexst.com (Zvi Guter) writes:\n>The author of Wcl (or the current care taker). His is the only name I found\n>in the dist tree. I have tried to mail him at: David.Smyth@ap.mchp.sni.de,\n>but the mail bounced back.\n\nHere I am!!\n\n-------------------------------------------------------------------------\nDavid Smyth\t\t\t\tdavid@jpl-devvax.jpl.nasa.gov\nSenior Software Engineer,\t\t(818)306-6463 (temp! do NOT use v-mail)\nX and Object Guru.\t\t\ttempory office: 525/B70\nJet Propulsion Lab, M/S 525-3660 4800 Oak Grove Drive, Pasadena, CA 91109\n------------------------------------------------------------------------- \n What's the earliest possible date you can't prove it won't be done by?\n\t\t\t\t\t- Tom DeMarco\n-------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 934, "properties": {"category": "talk.politics.mideast", "text": "From: smortaz@handel.sun.com (shahrokh mortazavi)\nSubject: Re: News briefs from KH # 1025\nOrganization: Central\nLines: 18\n\nIn article <1qg1gdINNge7@anaconda.cis.ohio-state.edu> karbasi@cis.ohio-state.edu writes:\n\n>\n>\t1- \"nehzat-e aazaadee\"'s member have many times been arrested\n>\tand tortured and as we speak some of them are still in prison.\n>\n>\t2- The above item confirms the long standing suspicion that \n>\tthe only reason this regime has not destroyed \"nehzat-e\n>\taazaadee\" completely is just to show off and brag about the\n>\t\"freedom of expression in Iran\" in its propaganda paper.\n>\n>\tGet serious!  If this regime had its way, there would be \n>\tabsolutely no freedom of expression anywhere, not even in SCI.  \n\t\t\t\t\t\t      ^^^^^^^^^^^^^^^\n\nthere really isnt, as seen by the heavy usage of anonymous posting.  \nif iri sympathizers didnt roam around in sci, anon-poster would \nget used only occasionally (as in the good old days).\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 935, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re: Its still cold, but...\nOrganization: University College of Wales, Aberystwyth\nLines: 13\nNntp-Posting-Host: 144.124.112.30\n\n\n>> \n>> One thing is certain, though, its still too cold.  After about 40\n>> minutes, I had to stop and hold my muffler for a while.  \n\nBe VERY careful about this. If youre really cold the muffler will\nfeel fine till you leave all the charred skin on it when you peel\nyour hands off - I speak from experience. You can also do all \nkindsa (Americanism of the day) damage to your circulation warming \nhands up on something too hot. By far the best (fastest and safest)\nway to do it is to shove the hands up the opposit sleeves and\nstand there like a Ming emporer for a while. Five minutes should \ndo it.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 936, "properties": {"category": "comp.windows.x", "text": "From: ma201rs@prism.gatech.EDU (SHONKWILER R W)\nSubject: screen problem in unix/xwindows/solaris\nKeywords: unix xwindows solaris\nOrganization: Georgia Institute of Technology\nLines: 23\n\nExperiment: From a Sun openwindows 4.1.3 xterm window log into a\nSolaris 2.x machine using rlogin; now do an \"ls\" and get the first\ncharacter of each line display in the last column of the display\nwith the rest of the line wrapped to the next line of the display.\n\nLog out and the condition persists.  Check stty all, try reset\nwith no effect.\n\nUse telnet instead of rlogin and it doesn't occur.\n\nTry it from a unix console and it doesn't occur.\n\n(1) What's causing this?\n(2) Can it be avoided?\n(3) How can the terminal characteristics be reset?\n\nPlease send replies to shenk@math.gatech.edu\n\n-- \nSHONKWILER R W\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp: ...!{allegra,amd,hplabs,seismo,ut-ngp}!gatech!prism!ma201rs\nARPA: ma201rs@prism.gatech.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 937, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: pittam@fencer.cis.dsto.gov.au\nSubject: WordBasic SDK\nOrganization: Defence Science and Technology Organisation\nLines: 19\nReply-To: pitt@cis.dsto.gov.au\nNNTP-Posting-Host: fencer.cis.dsto.gov.au\n\n\nRequest for Information\n\nI have been reading about an organisation called \"WinWord Developer's Relations\nGroup\".  I believe they have produced publications called WinWord Software\nDevelopment Kit (or WordBasic SDK) and 'The Proceedings of the Windows\nDevelopers' Tools Conference, WordBasic' sessions assembled by Steve Wexler.\n\nWould you be able to help me with a contact name and address for this\norganisation or these publications.\n\nThank you\n\n\n-- \n                 Adrian Pitt - Systems Administrator\n         DSTO Corporate Information Systems Unit (Melbourne)\n       506 Lorimer Street, Fishermens Bend, VIC 3207 Australia\n  Phone (03) 647 7881  Fax (03) 646 6061  email pitt@cis.dsto.gov.au\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 938, "properties": {"category": "rec.motorcycles", "text": "From: keithh@bnr.ca (Keith Hanlan)\nSubject: Re: GGRRRrrr!! Cages double-parking motorcycles pisses me off!\nNntp-Posting-Host: bcarh10f\nOrganization: Bell-Northern Research Ltd., Ottawa\nLines: 8\n\nIn article <lsp0mgINNud@cash.cs.utexas.edu> mcguire@cs.utexas.edu (Tommy Marcus McGuire) writes:\n>However, this has nothing to do with motorcycling, unless you consider\n>the VW a bike.\nHowever, this has nothing to do with motorcycling, unless you consider\nthe Amazona a bike.\n\nKeith Hanlan  KeithH@bnr.ca  Bell-Northern Research, Ottawa, Canada 613-765-4645\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 939, "properties": {"category": "comp.graphics", "text": "Subject: POV file constructor for Unix/X11\nFrom: Craig.Humphrey@comp.vuw.ac.nz (chumphre)\nReply-To: chumphre@comp.vuw.ac.nz\nDistribution: world\nOrganization: Victoria University of Wellington. New Zealand\nNNTP-Posting-Host: regent.comp.vuw.ac.nz\nLines: 13\n\n\nHi, I'm just getting into PoVRay and I was wondering if there is a graphic\npackage that outputs .POV files.  Any help would be appreciated.\nThanks.\n\nLater'ish\nCraig\n\n-- \n    |\\/\\/\\/\\/\\/| \n    | ___  ___ |         \"I didn't do it, nobody saw me do it, \n    |/   \\/   \\|             you can't prove anything.\"\n_ccc_c_#_|__#_ccc_c_____chumphre@comp.vuw.ac.nz_______________________________\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 940, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: If Drugs Should Be Legalized, How?  (was Good Neighbor...)\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 22\n\nIn article <1qpakjINNiq2@senator-bedfellow.MIT.EDU> wdstarr@athena.mit.edu (Wil\nliam December Starr) writes:\n>\n>In article <1993Apr16.171354.3127@magnus.acs.ohio-state.edu>,\n>rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) said:\n>\n>> However, legalizing it and just sticking some drugs in gas stations to\n>> be bought like cigarettes is just plain silly.  Plus, I have never\n>> heard of a recommended dosage for drugs like crack, ecstasy, chrystal\n>> meth and LSD.  The 60 Minute Report said it worked with \"cocaine\"\n>> cigarettes, pot and heroin.\n>\n>Or, the government could adopt the radical and probably unAmerican idea\n>that citizens are free to live their lives as they wish, and simply\n>decriminalize cocaine, marijuana, heroin, LSD, etc.  Please explain why\n>the idea of allowing recreational drugs to be \"bought like cigarettes\"\n>is \"just plain silly.\"  After all, it works just fine for nicotine...\n>\n\nYeah, Cancer is pretty cool, isn't it.\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 941, "properties": {"category": "rec.autos", "text": "From: aep@world.std.com (Andrew E Page)\nSubject: Re: Importing Volvo?\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 9\n\n\n   There was an article in Business week not more the 4 weeks ago\non this very subject.  IN fact the Volvo 850 was one of the cars\nthey laid out an example for.  \n\n-- \nAndrew E. Page   (Warrior Poet) |   Decision and Effort The Archer and Arrow\nMac Consultant                  |     The difference between what we are\nMacintosh and DSP Technology    |           and what we want to be.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 942, "properties": {"category": "sci.crypt", "text": "From: butzerd@maumee.eng.ohio-state.edu (Dane C. Butzer)\nSubject: How large are commercial keys?\nOrganization: The Ohio State University Dept of Electrical Engineering\nLines: 13\n\nWhat are the typical sizes for keys for commercial secret key algorithms?\nI know DES is 56 bits (\"tripple DES\" is 112 bits) and IDEA is 128 bits.  Is\nthere anything made in the US that has 128 bit keys?  Anything anywhere\nthat has larger keys?  I've heard that RC2 can be scaled to arbitrarily\nlarge keys, but is this actually implemented anywhere?\n\nFinally, can anyone even concieve of a time/place where 128 bit keys aren't\nsufficient?  (I certainly can't - even at a trillion keys a second, it\nwould take about 10 billion years to search just one billionth of that keys\nspace.)\n\nThanks,\nDane\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 943, "properties": {"category": "sci.med", "text": "From: lady@uhunix.uhcc.Hawaii.Edu (Lee Lady)\nSubject: Re: Science and methodology  (was: Homeopathy ... tradition?)\nSummary: Is subjective judgement more reliable than statistics? \nOrganization: University of Hawaii (Mathematics Dept)\nExpires: Mon, 10 May 1993 10:00:00 GMT\nLines: 76\n\nIn article <ls8lnvINNrtb@saltillo.cs.utexas.edu> turpin@cs.utexas.edu \n    (Russell Turpin) writes:\n>            ... \n>*not* imply that all their treatments are ineffective.  It *does*\n>imply that those who rely on faulty methodology and reasoning are\n>incapable of discovering *which* treatments are effective and\n>which are not.)\n\nTo start with, no methodology or form of reasoning is infallible.  So\nthere's a question of how much certainty we are willing to pay for in a\ngiven context.  Insistence on too much rigor bogs science down completely\nand makes progress impossible.  (Expenditure of sufficiently large sums\nof money and amounts of time can sometimes overcome this.)  On the other\nhand, with too little rigor much is lost by basing work on results which\neventually turn out to be false.  There is a morass of studies\ncontradicting other studies and outsiders start saying  \"You people call\nTHIS science?\"   (My opinion, for what it's worth, is that one sees both\nthese phenomena happening simultaneously in some parts of psychology.)  \n\nSome subjective judgement is required to decide on the level of rigor\nappropriate for a particular investigation.  I don't believe it is \never possible to banish subjective judgement from science.  \n\n\nMy second point, though, is that highly capable people can often make\nextremely reliable judgements about scientific validity even when using\nmethodology considered inadequate by the usual standards.  I think this\nis true of many scientists and I think it is true of many who approach\ntheir discipline in a way that is not generally recognized as scientific.\n\nWithin mathematics, I think there are several examples, especially before\nthe twentieth century.  One conspicuous case is that of Riemann, who is\nfamous for many theorems he stated but did not prove.  (Later \nmathematicians did prove them, of course.)  \n\nI think that for a good scientist, empirical investigation is often not\nso much a matter of determining what is true and what's not  as it is a \nmatter of convincing other people.  (People have proposed lots of \nincompatible definitions of science here, but I think the ability to \nobjectively convince others of the validity of one's results is an\nessential element.  Not that one can necessarily do that at every step \nof the scientific process, but I think that if one is not moving toward \nthat goal then one is not doing science.)\n\nWhen a person other than a scientist is quite good at what he does and\nseems to be very successful at it, I think that his judgements are also\nworthy of respect and that his assertions are well worth further\ninvestigation.  \n\nIn article <C53By5.HD@news.Hawaii.Edu> I wrote: \n> Namely, is there really justification for the belief that\n> science is a superior path to truth than non-scientific approaches?  \n\nAdmittedly, my question was not at all well posed.  A considerable\namount of effort in a \"serious scholarly investigation\" such as I\nsuggested would be required simply to formulate an appropriately \nspecific question to try and answer.  \n\nThe \"science\" I was thinking of in my question is the actual science \ncurrently practiced now in the last decade of the twentieth century.  \nI certainly wasn't thinking of some idealized science or the mere use \nof \"reason and observation.\"\n\nOne thing I had in mind in my suggestion was the question as to whether\nin many cases the subjective judgements of skilled and experienced\npractitioners might be more reliable than statistical studies.  \n\nSince Russell Turpin seems to be much more familiar than I am with\nthe study of scientific methodology, perhaps he can tell us if there \nis any existing research related to this question.  \n\n--\nIn the arguments between behaviorists and cognitivists, psychology seems \nless like a science than a collection of competing religious sects.   \n\nlady@uhunix.uhcc.hawaii.edu         lady@uhunix.bitnet\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 944, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: The University of Texas at Austin, Austin TX\nLines: 43\nNNTP-Posting-Host: louie.cc.utexas.edu\n\nroby@chopin.udel.edu (Scott W Roby) writes:\n:mikey@ccwf.cc.utexas.edu (Strider) writes:\n:\n:According to an Australian documentary made in the year before the stand off \n:began, Koresh and his followers all believed he was Christ.  Koresh \n:had sex with children and women married to other men in the compound.  \n:These were the \"perfect children\" resulting from the \"great seed\" of \n:his \"magnified horn\".  Ex-members describe him in ways not dissimilar \n:to the way Jim Jones has been described.\n\nI don't know how accurate the documentary was; however, Koresh was never\nconvicted of any crimes against children, nor was the BATF after him for\nchild abuse.  Their purview (in this case) is strictly in firearms violations,\nso this information is irrelevant to the discussion.\n\n:FBI agents have to pass rigorous psychological examinations and background \n:checks.  Plus, those in charge will undoubtedly have to explain their \n:decisions in great detail to congress.  Why would the FBI want to fulfill \n:Koresh's own prophecy?\n\nThose in charge will undoubtedly have to explain *something*, but whether\ntheir answers even remotely resembles the truth we may never know.  And who\nis left alive to care whether the prophecy is fulfilled?  It only holds\nmeaning for the nine who survived.\n\n:>Correction:  The *FBI* said that two of the cult members said this; so far,\n:>no one else has been able to talk to them.\n:\n:So, when they talk to the news reporters directly, and relate the same \n:details, will you believe them?\n\n*IF* they confirm the story, I probably will.  Definitely not until then, \nhowever.\n\n\nMike Ruff\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 945, "properties": {"category": "soc.religion.christian", "text": "From: seanna@bnr.ca (Seanna (S.M.) Watson)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nOrganization: Bell-Northern Research, Ottawa, Canada\nLines: 48\n\nIn article <Apr.14.03.07.38.1993.5420@athos.rutgers.edu> johnsd2@rpi.edu writes:\n>In article 28388@athos.rutgers.edu, jayne@mmalt.guild.org (Jayne Kulikauskas) writes:\n>\n>> Drugs are a replacement for Christ.\n>>Those who have an empty spot in the God-shaped hole in their hearts must \n>>do something to ease the pain.\n>\n>I have heard this claim quite a few times. Does anybody here know\n>who first came up with the \"God-shaped hole\" business?\n>\n>>  This is why the most effective \n>>substance-abuse recovery programs involve meeting peoples' spiritual \n>>needs.\n>\n>You might want to provide some evidence next time you make a claim\n>like this.\n>\nIn 12-step programs (like Alcoholics Anonymous), one of the steps\ninvolves acknowleding a \"higher power\".  AA and other 12-step abuse-\nrecovery programs are acknowledged as being among the most effective.\n\nUnfortunately, as evidence for God, this can be dismissed by stating\nthat the same defect of personality makes substance abusers as makes \npeople 'religious', and the debunker could perhaps acknowledge that\nbeing religious is a better crutch than being a drug addict, but\nstill maintain that both are escapism.  (And I suspect that there\nare some atheists who would find the substance abuse preferable to\nChristianity.)\n\nI think that an essential problem with communication between Christ-\nians and atheists is that as Christians we necessarily see ourselves\nas incomplete, and needing God (the 'God-shaped hole'), while atheists\nnecessarily see themselves as self-sufficient.  If the atheists are\nright, Christians are guilty of being morally weak, and too cowardly\nto stand up for themselves; if the Christians are right, the atheists\nare guilty of considerable arrogance.  (I use the term atheist to\nrefer to a person who has a definite conviction that there is no God,\nas opposed to one who does not know and/or does not care about God.)\n==\nSeanna Watson   Bell-Northern Research,       | Pray that at the end of living,\n(seanna@bnr.ca) Ottawa, Ontario, Canada       | Of philosophies and creeds,\n                                              | God will find his people busy\nOpinion, what opinions? Oh *these* opinions.  | Planting trees and sowing seeds.\nNo, they're not BNR's, they're mine.          |\nI knew I'd left them somewhere.               |  --Fred Kaan\n\n(let's see...I spelled 'sowing' right; I got the author's name right--maybe\nmy 3rd iteration .sig will be a keeper.)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 946, "properties": {"category": "sci.med", "text": "From: robin@ntmtv.com (Robin Coutellier)\nSubject: Critique of Pressure Point Massager\nOriginator: robin@volans\nNntp-Posting-Host: volans\nReply-To: robin@ntmtv.com (Robin Coutellier)\nOrganization: Northern Telecom Inc, Mountain View, CA\nDistribution: na\nLines: 141\n\nAs promised, below is a personal critique of a Pressure Point Massager \nI recently bought from the Self Care Catalog.  I am very pleased with \nthe results.  The catalog description is as follows:\n\n\tThe Pressure Point Massager is an aggressive physical massager \n\tthat actually kneads the tension out of muscles ... much like a\n\tprofessional shiatsu masseur.  The powerful motor drives two\n\tcounter-rotating \"thumbs\" that move in one-inch orbits --\n\treleasing tension in the neck, back, legs and arms.\n\n\tPressure Point Massager    A2623   $109\n\nTo order or receive a catalog, call (24 hours, 7 days) 1-800-345-3371 or\nfax at 1-800-345-4021.\n\n********\nNOTE:\nWhen I ordered the massager, the item number was different, and the price\nwas $179, not $109.  When I received it, I glanced thru the newer catalog\nenclosed with it to see anything was different from the first one.  I was  \nQUITE annoyed to see a $70 difference in price.  I called them about it,\nand the cust rep said that they had switched manufacturers, although it\nlooks and works exactly the same.  He told me to go ahead and return the\nfirst one and order the cheaper one, using the price difference as a\nreason for return.  In fact, since the newer ones might take a while to\nship from the factory (I received this one in 3 days), he told me I could \nuse the one I already have until the new one arrives, then return the old \none.  VERY reasonable people.\n********\n\nI have long-term neck, shoulder and back pain (if I were a building, I \nwould be described as \"structurally unsound :-) ).  I have stretches \nand exercises to do that help, but the problem never really goes away.  \nIf, for whatever reason, I do not exercise for a while (illness, not enough\ntime, lazy, etc.), the muscles become quite stiff and painful and, thus, \nmore prone to further strain.  Even with exercise, I sometimes require \nphysical therapy to get back on track, which 1st requires a doctor visit \nto get the prescription for p.t.  \n\nThe tension in my neck, if not released, eventually causes a headache\n(sometimes confused with a sinus headache) over my left eye.  When my \nphysical therapist has massaged my neck, and the sub-occipital muscles \nin particular (the 2 knobby areas near the base of the skull), the \nheadache usually eased within a day, although it hurts like hell to \nwhile it is being massaged.\n\nI ordered this device because it seemed to be exactly what I was wishing\nsomeone would invent --a machine that would massage, NOT VIBRATE, my \nneck and sub-occipital muscles like my physical therapist has done in \nthe past, that I could use by myself.  No doctor visit or inconvenient \np.t. appts for a week later would be needed to use it.  I could get up \nin the middle of the night and use it, if necessary.\n\nI have been using it for about a week or so now, and LOVE it.  The base\nunit is about a 14\" x 9\" rectangle, about 3-3/4\" high, with handles on each\nside, and it plugs into an average outlet.  The two metal \"thumbs\" are about \n1-1/2\" in diameter and protrude about 2-1/2\" above the base.  The thumbs \nare covered with a gray cloth that is non-removable.  They are located more \ntoward one end, rather than centered (see figure below).  They move in \neither clockwise or counter-clockwise directions, depending on which side \nof the switch is pushed, and are very quiet.  It can be used from either\nside.  For instance, the thumbs can be positioned at the base of the neck\nor the top of the neck, depending on which direction you approach it.\n\n\n                 _______________________________\n                |  __    _______________    __  |\n                | |  |  |\t\t|  |  | |\n                | |  |  |  \\^^/   \\^^/  |  |  | |\n                | |  |  |   ||     ||   |  |  | |\n                | |  |  |\t\t|  |  | |\n                | |  |  |_______________|  |  | |\n                | |__|\t\t\t   |__| |\n                |_______________________________|\n\n\nFor the neck/head, the user varies the amount of pressure used by (if \nlaying down) allowing all or part of the full weight of the head and/or \nneck to rest on the thumbs.  The handles can also be used if sitting or\nstanding, applying pressure with the arms/wrists.  Since my wrists are\nalso impaired (I'm typing this over an extended period of time), and I \ndon't have someone living with me who can apply it, laying down works \nwell for me.\n\nFor my back, I sit in a high-backed kitchen chair, position the massager\nbehind me at whatever point I want massaged, and lean back lightly (or\nnot so lightly) against it.  The pressure of leaning back holds it in place.  \nIf I want to massage the entire spine, I simply move it down a few inches \nwhenever I feel like it.  For my back, this machine is far superior to use \nthan the commonly used \"home-made\" massager of 2 tennis balls taped together \n(with the balls, position (against a wall or door) them over the spine and \nmove the body up and down against them).  The tennis balls are better than \nnothing, but difficult to use for very long, especially if your quads are \nnot in good shape, and my long hair gets (painfully) in the way if I don't \npin it up first.  As far as I'm concerned, the easier something like this \nis to use, the more likely I'll use/do it.  If there are multiple \nconsiderations/hassles, I'm more likely to not bother with it.\n\nNot only has this machine helped with my headaches, but my range of motion \nfor my neck and back are greatly increased.  The first time I used it on my\nneck/sub-occipital muscles, however, I overdid it and pressed too hard\nagainst it, which resulted in a very tender, almost bruised area for a\nfew days.  I laid off it for about 3 days and applied ice, which helped.  \nAfter that, I was more gradual about applying pressure.  At this point, \nthe pain in the sub-occipital area is now minimal while being massaged.  \nI also learned to use VERY LIGHT pressure on my lower back, which is the \nmost vulnerable point for me.\n\nIt also eased some painful knots of tension between my shoulder blades,\nalthough, again, it took a few days of massaging (just a few minutes at\na time) to really work it out.\n\nI highly recommend this product if you have similar problems, although I\ncannot vouch for its durability (it seems pretty sturdy), since I've had\nit such a short time.  I plan to use it not only to ease tension, but also \nto loosen the muscls BEFORE exercising (and maybe after, too).  I have\nbeen ill recently and not able to exercise much for a few weeks, so this \nwas very timely  for me.\n\nThis is the 1st product I've ordered from this company and only recently\nbecame aware of it thru a co-worker.  The catalog states they have been\nin business since 1976.  It contains quite a few health care products and,\nwhile they appear to be more expensive than the average health care catalog\nproducts, they also appear to be of much higher quality with more thought\nput into what they actually do.  Definitely a step above some other ones\nI've seen such as \"Dr. Leonards Health Care Catalog\" or \"Mature Wisdom\".\nI'm only 37, but have ended up on some geriatric-type mailing lists (no\nbig surprise here :-) ).  I consider many of those products to be rip-offs, \nparticularly targeted toward the elderly, with dubious health benefits.\n\nI apologize for the length of this, but it's the kind of info _I_ would \nlike to know before ordering something thru the mail.\n\n\nRobin Coutellier                   \nNorthern Telecom, Mountain View, CA\nINTERNET: robin@ntmtv.com\nUUCP:portal!ntmtv!robin\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 947, "properties": {"category": "rec.motorcycles", "text": "From: scs8@cunixb.cc.columbia.edu (Sebastian C Sears)\nSubject: Re: bike for sale in MA, USA\nKeywords: wicked-sexist\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: scs8@cunixb.cc.columbia.edu (Sebastian C Sears)\nOrganization: Columbia University\nLines: 18\n\nIn article <1993Apr19.194630.102@zorro.tyngsboro.ma.us> jd@zorro.tyngsboro.ma.us (Jeff deRienzo) writes:\n>I've recently become father of twins!  I don't think I can afford\n> to keep 2 bikes and 2 babies.  Both babies are staying, so 1 of\n> the Harleys is going.\n>\n>\t1988 883 XLHD\n>\t~4000 mi.  (hey, it was my wife's bike :-)\n\t            ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\tWell that was pretty uncalled for. (No smile)\n\tIs our Harley manhood feeling challenged?\n\n> Jeff deRienzo\n\n-------\n\"This is where I wanna sit and buy you a drink someday.\" - Temple of the Dog\nSea-Bass Sears --> scs8@cunixb.cc.columbia.edu --> DoD#516 <-- |Stanley, ID.|\n '79 Yamaha XS750F -- '77 BMW R100S -- '85 Toyota 4Runner --   |  NYC, NY.  |\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.046+0000", "event": "documents", "entityId": 948, "properties": {"category": "comp.windows.x", "text": "From: pmartz@dsd.es.com (Paul Martz)\nSubject: Re: Standard Colormaps\nNntp-Posting-Host: bambam\nReply-To: pmartz@dsd.es.com (Paul Martz)\nOrganization: Evans & Sutherland Computer Corp., Salt Lake City, UT\nLines: 50\n\nIn article <1rjdk8INNcnh@senator-bedfellow.MIT.EDU>, jgealow@mtl.mit.edu (Jeffrey C. Gealow) writes:\n> I'm working on an X11R5 application and have concerns regarding \n> standard colormaps.\n> \n> The X11R5 documentation says: \"Usually, a window manager creates \n> these colormaps.\"  I wonder what window manager the writer had \n> in mind.  Neither twm or mwm seem to create standard colormaps.\n\nStandard colormaps were spec'd with the intention that window managers\nwould make them available. This doesn't mean that every window manager\nauthor in the world immediately dropped everything they were doing and\nimplemented this at top priority.\n\nThe ESGE server we ship makes the XA_RGB_BEST_MAP available at\nstartup. It doesn't wait for window managers to do it.\n\n> Of course, one can use xstdcmap to create standard colormaps.  \n> However, xstdcmap doesn't seem to try very hard to avoid \n> conflicts with the default colormap.  When I use standard \n> colormaps created by xstdcmap, the rest of my display goes black.  \n> So it seems as if use of standard colormaps causes the very \n> problem standard colormaps are intended to avoid.  Perhaps \n> if every application used standard colormaps, things would \n> be wonderful.  But not many applications seem to use \n> standard colormaps.\n\nDoes your hardware have only one CLUT? Since standard colormaps\ntypically devour all 256 entries, there is no way it can avoid\ndisplacing the entire default colormap if your hardware has only one\nCLUT.\n\nI don't believe standard colormaps are intended to aboid possible\ncolormap flashing between clients using the default coilormap. Rather,\ncolormap flashing will be avoided between two clients that use the\nsame standard colormap. An example would be two clients that need a\nfull color range would both use XA_RGB_BEST_MAP (or whatever it's\ncalled under X11R5).\n\nIf you are trying to avoid colormap flashing with the default\ncolormap, your best bet is to try to load all the colors you use into\nthat colormap. If you can't do that, then you'll get flashing on a one\nhw CLUT framebuffer.\n\nNow if your window manager used the same standard colormap as your\nclient, this flashing could also be avoided. Perhaps some window\nmanagers have command line options for selecting standard colormaps?\n-- \n\n   -paul\tpmartz@dsd.es.com\n\t\tEvans & Sutherland\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 949, "properties": {"category": "comp.graphics", "text": "From: tmc@spartan.ac.BrockU.CA (Tim Ciceran)\nSubject: Re: Newsgroup Split\nOrganization: Brock University, St. Catharines Ontario\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 19\n\nChris Herringshaw (tdawson@engin.umich.edu) wrote:\n: Concerning the proposed newsgroup split, I personally am not in favor of\n: doing this.  I learn an awful lot about all aspects of graphics by reading\n: this group, from code to hardware to algorithms.  I just think making 5\n: different groups out of this is a wate, and will only result in a few posts\n: a week per group.  I kind of like the convenience of having one big forum\n: for discussing all aspects of graphics.  Anyone else feel this way?\n: Just curious.\n\n\n: Daemon\n\nWhat he said...\n\n-- \n\nTMC\n(tmc@spartan.ac.BrockU.ca)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 950, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Happy Birthday Israel!\nOrganization: University of Illinois at Urbana\nLines: 2\n\nIsrael - Happy 45th Birthday!\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 951, "properties": {"category": "talk.politics.mideast", "text": "From: anwar+@cs.cmu.edu (Anwar Mohammed)\nSubject: Re: rejoinder. Questions to Israelis\nNntp-Posting-Host: gs135.sp.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 22\n\nIn article <1483500353@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n>\n>From: Center for Policy Research <cpr>\n>Subject: rejoinder. Questions to Israelis\n>\n>\n>Dear Josh\n>\n>I appreciate the fact that you sought to answer my questions.\n>\n>Having said that, I am not totally happy with your answers.\n>\n>1.   You did not fully answer my question whether Israeli ID cards\n>identify the holders as Jews or Arabs. You imply that U.S.\n>citizens must identify themselves by RACE. Is that true ? Or are\n>just trying to mislead the reader ? \n\nI think he is trying to mislead people.  In cases where race\ninformation is sought, it is completely voluntary (the census\npossibly excepted).\n\n-anwar\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 952, "properties": {"category": "sci.electronics", "text": "From: philip@mentorg.com (Philip Peake)\nSubject: Re: Radar detector DETECTORS?\nDistribution: na\nNntp-Posting-Host: sun_shine.mentorg.com\nOrganization: Mentor Graphics\nKeywords: \nLines: 33\n\nIn article <1993Apr20.022922.11861@julian.uwo.ca>, wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n|> In article <1993Apr19.231050.2196@Rapnet.Sanders.Lockheed.Com> babb@rapnet.sanders.lockheed.com (Scott Babb) writes:\n|> \n|> >No restriction was placed\n|> >on receiving RADAR (or, curiously, cordless phones.)  Enforcement\n|> >of the Virginia law is in violation of the FCA of 1934.\n|> \n|> Isin't there some kind of rule (regulation, law, whatever) in some\n|> juristictions that prohibit the use of *police band* recievers\n|> in vehicles?  And that radar transmissions are included in the police band \n|> so they get covered by the same regulation?\n\nWhat do you mean by \"police band\" - there is no such thing.\n\nAnyway, radar detectors work in shared bands.\nIf you applied your test, all of those radar operated door\nopeners in malls would be illegal.\n\nOne of the great problems here is that there are too many\nill-educated (read illiterate) people making too many laws\nabout subjects on which they are incompetent - there may well\nbe laws refereing to \"police bands\", they are almost certainly\nlocal in scope (state or county) - created by well-meaning,\nbut incompetent idiots.\n\nUnfortunaltely, laws do not have to be sensible (or even enforceable).\nLawmakers exist to pass laws - and will continue to do so, until\nthe day where you are faced with death for not doing X, and\namputation of all your limbs for doing X ... the choice will be yours.\n\nNote: no smiley.\n\nPhilip\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 953, "properties": {"category": "rec.autos", "text": "From: \"Daniel U. Holbrook\" <dh3q+@andrew.cmu.edu>\nSubject: Re: Did US drive on the left?\nOrganization: Carnegie Mellon, Pittsburgh, PA\nLines: 50\n\t<1ppqkm$93n@usenet.INS.CWRU.Edu>\nNNTP-Posting-Host: po3.andrew.cmu.edu\nIn-Reply-To: <1ppqkm$93n@usenet.INS.CWRU.Edu>\n\n>>\n>>The reason I ask is because I went to a classic car meet here in the UK,\n>>and saw a very nice old De Soto, 1920's vintage I'd guess, with wooden\n>>artillery type wheels, etc, but it was right-hand drive. I can't believe\n>>that DeSoto produced RHD cars just for the UK....\n\nWell Sweden and Australia, and lord knows wherever else used to drive on\nthe \"wrong\" side of the road, so the export market might have been\nlarger then than just the UK.\n\n>i'm guessing, but i believe in the twenties we probably drove mostly down\n>cattle trails and in wagon ruts.  I am fairly sure that placement of the \n>steering wheel was pretty much arbitrary to the company at that time.....\n\nBy the 1920s, there was a very active \"good roads\" movement, which had\nits origins actually in the 1890s during the bicycle craze, picked up\nsteam in the teens (witness the Linclon Highway Association, 1912 or so,\nand the US highway support act (real name: something different) in 1916\nthat first pledged federal aid to states and counties to build decent\nroads. Also, the experience of widespread use of trucks for domestic\ntransport during WW 1 convinced the government that good raods were\ncrucial to our national defense.  Anyway, by the 20s there were plenty\nof good roads, at least around urban areas, and they were rapidly\nexpanding into the countryside.  This was the era, after all, of the\nfirst auto touring fad, the motel, the auto camp ground, etc. Two good\nbooks on the subject spring to mind - Warren Belasco \"America on the\nRoad\" (title may not be exact - author is) and another called \"The Devil\nWagon in God's Country\" author I forget.  Also, any of John Flink's  or\nJohn Bell Rae's auto histories.\n\nAs to placement of the steering wheel being arbitrary, by the early\nteens there were virtually no American cars that did not have the wheel\non the left.  In the early days, cars had the wheel on the left, on the\nright, and even in the middle, as well as sometimes having a tiller\ninstead of a wheel.  This was standardized fairly early on, though I\ndon't know why.\n\n\nDan\ndh3q@andrew.cmu.edu\nCarnegie Mellon University\nApplied History\n\n\"World history strides on from catastrophe to catastrophe, whether we\ncan comprehend and prove it or not.\"\n               Oswald Spengler\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 954, "properties": {"category": "sci.electronics", "text": "From: jsc52962@uxa.cso.uiuc.edu (Jeffrey S. Curtis)\nSubject: Re: What is Zero dB????\nOrganization: University of Illinois at Urbana\nLines: 19\n\nmoffatt@bnr.ca (John Thomson) writes:\n}Out of what hat did you pull this one?  dB is a ratio not an RBOC!        \n} [...]\n}Sorry.  The unit for current is the AMPERE which is the name of a french-man\n}named AMPERE who studied electrical current.  The term AMP is just an abbreviation\n}of it.  The company AMP came after the AMPERE unit was already in use.\n} [...]\n}I don't know about this one, but it doesn't sound right.\n} [...]\n}Well you got one thing right!\n\nHello? John? Oh, nevermind...\n\nJeff\n-- \nJeffrey S. Curtis sidewinder@uiuc.edu | \"Resplendent in full regalia, they\n The Power of 37  free2207 at uiucvmd | revel in their role as self-appointed\n Sony - Phase Linear - Sanyo - Sennet | critics of the establishment...\"\n Jensen - Polk - StreetWires - Proton |   -- INXS _Welcome to Wherever You Are_\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 955, "properties": {"category": "misc.forsale", "text": "From: pchang@ic.sunysb.edu (Pong Chang)\nSubject: Re: Computer Parts/Camcorder\nNntp-Posting-Host: libws4.ic.sunysb.edu\nOrganization: State University of New York at Stony Brook\nLines: 21\n\nIn article <C4z2CF.2n6@cscns.com> zardox@cscns.com (Randie O'Neal) writes:\n>\n>: 5.25\" 1.2MB and 3.5\" 1.44 Drives...new... planned on building machine, but\n>: ran out of funds... $30.00 each drive\n>\n>Carl,\n>What Brand of drives are these? Do you have documentation?\n>I'll go $40.00 + shipping if you have documentation...\n\ndo not pay $40 for floppy drives.. they are about $40 new.\nalso, you do not need documentation for floppies. installation\nfor these things are idiot proof. \njust some advice..\n\n-- \n**********************************************************************\nC_ommon  \tpchang@ic.sunysb.edu \t\t\nS_ense\t\tState University of New York @ Stony Brook \nE_ngineer\t\n**********************************************************************\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 956, "properties": {"category": "sci.space", "text": "From: yamauchi@ces.cwru.edu (Brian Yamauchi)\nSubject: Inflatable Mile-Long Space Billboards (was Re: Vandalizing the sky.)\nOrganization: Case Western Reserve University\nLines: 70\nDistribution: world\nNNTP-Posting-Host: yuggoth.ces.cwru.edu\nIn-reply-to: enzo@research.canon.oz.au's message of Tue, 20 Apr 1993 22:36:55 GMT\n\nIn article <C5t05K.DB6@research.canon.oz.au> enzo@research.canon.oz.au (Enzo Liguori) writes:\n>WHAT'S NEW (in my opinion), Friday, 16 April 1993  Washington, DC\n\n>1. SPACE BILLBOARDS! IS THIS ONE THE \"SPINOFFS\" WE WERE PROMISED?\n>In 1950, science fiction writer Robert Heinlein published \"The\n>Man Who Sold the Moon,\" which involved a dispute over the sale of\n>rights to the Moon for use as billboard. NASA has taken the firsteps toward this\n>hideous vision of the future.  Observers were\n>startled this spring when a NASA launch vehicle arrived at the\n>pad with \"SCHWARZENEGGER\" painted in huge block letters on the\n>side of the booster rockets.  Space Marketing Inc. had arranged\n>for the ad to promote Arnold's latest movie.\n\nWell, if you're going to get upset with this, you might as well direct\nsome of this moral outrage towards Glavcosmos as well.  They pioneered\nthis capitalist application of booster adverts long before NASA.\n(Sign of the times: a Sony logo on a Soyuz launcher...)\n\n>Now, Space Marketing\n>is working with University of Colorado and Livermore engineers on\n>a plan to place a mile-long inflatable billboard in low-earth\n>orbit.\n\nThis sounds like something Lowell Wood would think of.  Does anyone\nknow if he's involved?\n\n>NASA would provide contractual launch services. However,\n>since NASA bases its charge on seriously flawed cost estimates\n>(WN 26 Mar 93) the taxpayers would bear most of the expense. This\n>may look like environmental vandalism, but Mike Lawson, CEO of\n>Space Marketing, told us yesterday that the real purpose of the\n>project is to help the environment! The platform will carry ozone\n>monitors he explained--advertising is just to help defray costs.\n\nThis may be the purpose for the University of Colorado people.  My\nguess is that the purpose for the Livermore people is to learn how to\nbuild large, inflatable space structures.\n\n>..........\n>What do you think of this revolting and hideous attempt to vandalize\n>the night sky? It is not even April 1 anymore.\n\nIf this is true, I think it's a great idea.\n\nLearning how to build to build structures in space in an essential\nstep towards space development, and given that Freedom appears to be\nshrinking towards the vanishing point, I question whether NASA's space\nstation is going to provide much, if any, knowledge in this area.\n(Especially if a design such as Faget's wingless orbiter is chosen...)\nIf such a project also monitors ozone depletion and demonstrates\ncreative use of (partial) private sector funding in the process -- so\nmuch the better.\n\n>Is NASA really supporting this junk?\n\nAnd does anyone have any more details other than what was in the WN\nnews blip?  How serious is this project?  Is this just in the \"wild\nidea\" stage or does it have real funding?\n\n>Are protesting groups being organized in the States?\n\nNot yet.  Though, if this project goes through, I suppose The Return\nof Jeremy Rifkin is inevitable...\n--\n_______________________________________________________________________________\n\nBrian Yamauchi\t\t\tCase Western Reserve University\nyamauchi@alpha.ces.cwru.edu\tDepartment of Computer Engineering and Science\n_______________________________________________________________________________\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 957, "properties": {"category": "rec.autos", "text": "From: swdwan@napier.uwaterloo.ca (Donald Wan)\nSubject: just testing\nOrganization: University of Waterloo\nLines: 3\n\nhello testing\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 958, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: From Israeli press. Madness.\nNf-ID: #N:cdp:1483500342:000:6673\nNf-From: cdp.UUCP!cpr    Apr 16 16:49:00 1993\nLines: 130\n\n\nFrom: Center for Policy Research <cpr>\nSubject: From Israeli press. Madness.\n\n/* Written  4:34 pm  Apr 16, 1993 by cpr@igc.apc.org in igc:mideast.forum */\n/* ---------- \"From Israeli press. Madness.\" ---------- */\nFROM THE ISRAELI PRESS.\n\nPaper: Zman Tel Aviv (Tel Aviv's time). Friday local Tel Aviv's\npaper, affiliated with Maariv.\n\nDate: 19 February 1993\n\nJournalist: Guy Ehrlich\n\nSubject: Interview with soldiers who served in the Duvdevan\n(Cherry) units, which disguise themselves as Arabs and operate\nwithin the occupied territories.\n\nExcerpts from the article:\n\n\"A lot has been written about the units who disguise themselves as\nArabs, things good and bad, some of the falsehoods. But the most\nimportant problem of those units has been hardly dealt with. It is\nthat everyone who serves in the Cherry, after a time goes in one\nway or another insane\".\n\nA man who said this, who will here be called Danny (his full name\nis known to the editors) served in the Cherry. After his discharge\nfrom the army he works as delivery boy. His pal, who will here be\ncalled Dudu was also serving in the Cherry, and is now about to\ndepart for a round-the-world tour. They both look no different\nfrom average Israeli youngsters freshly discharged from conscript\nservice. But in their souls, one can notice something completely\ndifferent....It was not easy for them to come out with disclosures\nabout what happened to them. And they think that to most of their\nfellows from the Cherry it woundn't be easy either. Yet after they\nbegan to talk, it was nearly impossible to make them stop talking.\nThe following article will contain all the horror stories\nrecounted with an appalling openness.\n\n(...) A short time ago I was in command of a veteran team, in\nwhich some of the fellows applied for release from the Cherry. We\ncalled such soldiers H.I. 'Hit by the Intifada'. Under my command\nwas a soldier who talked to himself non-stop, which is a common\nphenomenon in the Cherry. I sent him to a psychiatrist. But why I\nshould talk about others when I myself feel quite insane ? On\nFridays, when I come home, my parents know I cannot be talked to\nuntil I go to the beach, surf a little, calm down and return. The\nkeys of my father's car must be ready for in advance, so that I\ncan go there. I they dare talk to me before, or whenever I don't\nwant them to talk to me, I just grab a chair and smash it\ninstantly. I know it is my nerve:  Smashing chairs all the time\nand then running away from home, to the car and to the beach. Only\nthere I become normal.(...)\n\n(...) Another friday I was eating a lunch prepared by my mother.\nIt was an omelette of sorts. She took the risk of sitting next to\nme and talking to me. I then told my mother about an event which\nwas still fresh in my mind. I told her how I shot an Arab, and how\nexactly his wound looked like when I went to inspect it. She began\nto laugh hysterically. I wanted her to cry, and she dared laugh\nstraight in my face instead ! So I told her how my pal had made a\nmincemeat of the two Arabs who were preparing the Molotov\ncocktails. He shot them down, hitting them beautifully, exactly as\nthey deserved. One bullet had set a Molotov cocktail on fire, with\nthe effect that the Arab was burning all over, just beautifully. I\nwas delighted to see it.  My pal fired three bullets, two at the\nArab with the Molotov cocktail, and the third at his chum. It hit\nhim straight in his ass. We both felt that we'd pulled off\nsomething.\n\nNext I told my mother how another pal of mine split open the guts\nin the belly of another Arab and how all of us ran toward that\nspot to take a look. I reached the spot first. And then that Arab,\nblood gushing forth from his body, spits at me. I yelled: 'Shut\nup' and he dared talk back to me in Hebrew! So I just laughed\nstraight in his face. I am usually laughing when I stare at\nsomething convulsing right before my eyes. Then I told him: 'All\nright, wait a moment'. I left him in order to take a look at\nanother wounded Arab. I asked a soldier if that Arab could be\nsaved, if the bleeding from his artery could be stopped with the\nhelp of a stone of something else like that. I keep telling all\nthis to my mother, with details, and she keeps laughing straight\ninto my face. This infuriated me. I got very angry, because I felt\nI was becoming mad. So I stopped eating, seized the plate with he\nomelette and some trimmings still on, and at once threw it over\nher head. Only then she stopped laughing. At first she didn't know\nwhat to say.\n\n(...) But I must tell you of a still other madness which falls\nupon us frequently. I went with a friend to practice shooting on a\nfield. A gull appeared right in the middle of the field. My friend\nshot it at once. Then we noticed four deer standing high up on the\nhill above us. My friend at once aimed at one of them and shot it.\nWe enjoyed the sight of it falling down the rock. We shot down two\ndeer more and went to take a look. When we climbed the rocks we\nsaw a young deer, badly wounded by our bullet, but still trying to\nsuch some milk from its already dead mother. We carefully\ninspected two paths, covered by blood and chunks of torn flesh of\nthe two deer we had hit. We were just delighted by that sight. We\nhad hit'em so good ! Then we decided to kill the young deer too,\nso as spare it further suffering. I approached, took out my\nrevolver and shot him in the head several times from a very short\ndistance. When you shoot straight at the head you actually see the\nbullets sinking in.  But my fifth bullet made its brains fall\noutside onto the ground, with the effect of splattering lots of\nblood straight on us. This made us feel cured of the spurt of our\nmadness. Standing there soaked with blood, we felt we were like\nbeasts of prey. We couldn't explain what had happened to us. We\nwere almost in tears while walking down from that hill, and we\nfelt the whole day very badly.\n\n(...) We always go back to places we carried out assignments in.\nThis is why we can see them. When you see a guy you disabled, may\nbe for the rest of his life, you feel you got power. You feel\nGodlike of sorts.\"\n\n(...) Both Danny and Dudu contemplate at least at this moment\nstudying the acting. Dudu is not willing to work in any\nsecurity-linked occupation. Danny feels the exact opposite. 'Why\nshouldn't I take advantage of the skills I have mastered so well ?\nWhy shouldn't I earn $3.000 for each chopped head I would deliver\nwhile being a mercenary in South Africa ? This kind of job suits\nme perfectly. I have no human emotions any more. If I get a\nreasonable salary I will have no problem to board a plane to\nBosnia in order to fight there.\"\n\nTransl. by Israel Shahak.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 959, "properties": {"category": "comp.windows.x", "text": "From: garym@ie.utoronto.ca (Gary Murphy)\nSubject: X on Amiga 4000?\nOrganization: University of Toronto, Department of Industrial Engineering\nLines: 12\n\nI'm new to the hardware and with a mandate to port some X-based\nstereo-video software --- does anyone know of or have experience with\nX on Amiga machines?  If I can retain the X event handling, it would\nease my plight considerably, and if I can keep all the Motif bits, so\nmuch the better!\n\n\n-- \nGary Lawrence Murphy ---------------- garym@virtual.rose.utoronto.ca\nUniversity of Toronto, Industrial Eng Dept    fax:    (416) 971-1373\n4 Taddle Creek Rd, Toronto, Ont M5S 1A4       voice:  (416) 978-3776\nThe true destination is always just here, now ----------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 960, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Re: Where do U look??\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 43\n\nIn article <1993Apr2.170955.1749@cmkrnl.com>, jeh@cmkrnl.com writes:\n\n|> I might add that collecting last year's data books (or even ones two years out\n|> of date) is usually pretty cheap, and has benefits besides:  You usually DON'T\n|> want to base a design on a brand-new chip.  There may be bugs; availability may\n|> be limited; the data sheets may be missing critical information that will show\n|> up in the ap notes in next year's data books.  Kinda like buying Version 1.0 of\n|> a major new software package:  Sometimes you get lucky, but don't count on it.\n\nThere are two more reasons to save old databooks and then beyond two\nyears--obsoleted parts and better application notes and tutorials.\n\nWhen a part is dropped from future production planning, such as the\nNational MM-series white noise generators, camera sync generators, etc.,\nit will disappear from current databooks although it still may be produced\nfor a short time (or be available from stock somewhere). Now, if you\nhave some old plans calling for such a device, or you have a dead\ngadget on your workbench and it has such a part in it, you'll know\nthe functions so you can troubleshoot and substitute as necessary.\n\nThe old GE thyristor data books contain real good tutorials on\nSCR and triac applications that are not found elsewhere, for\nexample.\n\n|> > In summary, read. READ! ****READ!!!**** That's how you'll know what to\n|> > design in, which parts to use, and how to solve the intractable problem\n|> > that your boss has presented you with. \n|> \n|> It helps to have a prodigous memory for details...\n\nHere, here!...\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 961, "properties": {"category": "rec.sport.baseball", "text": "From: dfl@math.wayne.edu (David Frohardt-Lane)\nSubject: Re: RBI's (was: Notes on Jays/Indians)\nOrganization: Wayne State University Math Department, Detroit\nDistribution: na\nLines: 23\n\nIn article <1993Apr15.212014.1782@news.acns.nwu.edu> edo@casbah.acns.nwu.edu (Edward Ouellette) writes:\n>Me, too... RBI are a worthless stat. Of course, so is stolen bases because \n>sometimes runners are in front of a player that would otherwise run. And of\n>course pitchers pitch differently with different people on different bases,\n>so batting average, slugging and obp out, too.  Hmmm... i guess homers would\n>not count then, either.\n>My point? RBI might not be a perfect stat but nothing is. And no stat (or lack\n>of) can tell me there are no clutch hitters. Maybe no stat CAN tell me,\n>either, but some people are... I just know it!!! 8)\n\nBut why would you want to use RBI?   RBI is an attempt to measure is some\ncombination of clutch hitting and power hitting.  If you believe in\nclutch hitting, then look at how the guy hit with RISP.  If you want to\nsee how good of a slugger he is, then look at his slugging average.  \n\nIn terms of evaluating players, RBI totals are better than nothing.  But\nwhy use them when so many better stats are out there?\n\n--\nDavid Frohardt-Lane   dfl@math.wayne.edu \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nGo Tigers, Lions, Pistons, Red Wings and Wolverines !!!!!!!!!!\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 962, "properties": {"category": "comp.graphics", "text": "From: ger@cv.ruu.nl (Ger Timmens)\nSubject: Re: Postscript drawing prog\nNntp-Posting-Host: triton.cv.ruu.nl\nOrganization: University of Utrecht, 3D Computer Vision Research Group\nLines: 30\n\nIn <0010580B.vma7o9@diablo.UUCP> diablo.UUCP!cboesel (Charles Boesel) writes:\n\n\n>In article <1993Apr19.171704.2147@Informatik.TU-Muenchen.DE> (comp.graphics.gnuplot,comp.graphics), rdd@uts.ipp-garching.mpg.de (Reinhard Drube) writes:\n>>In article <C5ECnn.7qo@mentor.cc.purdue.edu>, nish@cv4.chem.purdue.edu (Nishantha I.) writes:\n>>|> \tCould somebody let me know of a drawing utility that can be\n>>|> used to manipulate postscript files.I am specifically interested in\n>>|> drawing lines, boxes and the sort on Postscript contour plots.\n>>|> \tI have tried xfig and I am impressed by it's features. However\n>>|> it is of no use since I cannot use postscript files as input for the\n>>|> programme.Is there a utility that converts postscript to xfig format?\n>>|> \tAny help would be greatly appreciated.\n>>|> \t\t\t\tNishantha\n>Have you checked out Adobe Illustrator? There are a few Unix versions\n>for it available, depending on your platform. I know of two Unix versions:\n>One for Mach (NeXT) and for Irix (SGI). There may be others, such\n>as for Sun SparcStation, but I don't know for sure.\n\nYou can include postscript epsi files in xfig (encapsulated postscript\ninfo files). You can't actually edit the postscript file, but you're able\nto draw over the postscript file.\n\nThere a eps to epsi converter: eps2epsi (perl program),\n\nSucces,\n-- \nGer Timmens (ger@cv.ruu.nl) 3DCV Research Group, Utrecht, The Netherlands\nTel.: +31 -30 50 67 11;      Room: F.01.7.03;      Fax.: +31 -30 51 33 99\n  Unquestionably, there is progress.  The average American now pays out\n  twice as much in taxes as he formerly got in wages. --- H. L. Mencken\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 963, "properties": {"category": "sci.med", "text": "From: king@reasoning.com (Dick King)\nSubject: Re: Can't wear contacts after RK/PRK?\nKeywords: radial,keratotomy,contact,lenses\nArticle-I.D.: kestrel.1993Apr16.172052.27843\nOrganization: Reasoning Systems, Inc., Palo Alto, CA\nLines: 22\nNntp-Posting-Host: drums.reasoning.com\n\nIn article <1993Apr16.063425.163999@zeus.calpoly.edu> dfield@flute.calpoly.edu (InfoSpunj (Dan Field)) writes:\n>I love the FAQ.       \n>\n>The comment about contact lenses not being an option for any remaining\n>correction after RK and possibly after PRK is interresting.  Why is\n>this?  Does anyone know for sure whether this applies to PRK as well?\n>\n>Also, why is it possible to get a correction in PRK with involvement of\n>only about 5% of the corneal depth, while RK is done to a depth of up to\n>95%?  Why such a difference?\n\nIn myopia the cornea is too curved.  There is too much of a bulge in the\ncenter.\n\nIn PRK the laser removes a small amount of material from the center.\n\nIn RK the surgeon cuts incisions near the edge.  They heal, and the scarring\nreshapes the cornea.\n\nEntirely different mechanisms, and the action is in a different place.\n\n-dk\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 964, "properties": {"category": "talk.religion.misc", "text": "From: b645zaw@utarlg.uta.edu (stephen)\nSubject: Re: A KIND and LOVING God!!\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: utarlg.uta.edu\nOrganization: The University of Texas at Arlington\nLines: 29\n\nIn article <sandvik-150493181533@sandvik-kent.apple.com>, \nsandvik@newton.apple.com (Kent Sandvik) writes...\n\n>In article <1993Apr15.200231.10206@ra.royalroads.ca>,\n>mlee@post.RoyalRoads.ca (Malcolm Lee) wrote:\n>> These laws written for the Israelites...\n\n>> Remember, these laws were written for a different time and applied\n>> only to God's chosen people.  But Jesus has changed all of that.  We\n>> are living in the age of grace.  Sin is no longer immediately punishable\n>> by death.  There is repentance and there is salvation through our\n>> Lord Jesus Christ.  And not just for a few chosen people.  Salvation\n>> is available to everyone, Jew and Gentile alike. \n>\n>Jews won't agree with you, Malcolm.\n\nWhich Jews KS? \n\n(ex. as a people, as a language, religiously, politically, or...) \n\nDo you mean those Jews who are God's chosen?\n\n{And Malcolm, please, if you will, set your word wrap at 75 or less \nto avoid clutter?}\n\n   |\n-- J --\n   |\n   | stephen\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 965, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Christians that are not church members\nOrganization: Indiana University\nLines: 51\n\nHere are some notes about what the church is to be like and some helpful\nideas about how to choose a church:\n\nColossians 1:15-18\n   A.  Jesus is the head of the body, the church\n   B.  You cannot say \"yes\" to Jesus, but \"no\" to the church\n\nEphesians 2:19-22\n   A.  The church is the family of God\n   B.  The church is based on the Word of God only\n          Cornerstone=Christ\n          Foundation= Apostles=New Testament\n                      Prophets=Old Testament  (see Revelation 21:9-14)\n\n1 Corinthians 12:12-13\n   A.  Baptism is when we become a member of the church\n\nAs for the question of denominations:\n   A.  The Bible teaches that there is only ONE church from Ephesians\n4:4-6, Romans 12:4-5, 1 Corinthians 12:12-13\n   B.  1 Corinthians 1:10-13 says that there should be no divisions in\nthe church.  There should be no following of personalities in the church\n(and in time, their writings)\n   C.  There are so many churches today because of a problem.  2 Timothy\n4:1-4 says that people will turn away from the truth and try to find a\nchurch that teaches a doctrine that suits their lifestyle\n\nHebrews 10:24-25\n   A.  Do not miss church\n   B.  Purpose is to encourage each other, so we will remain faithful.\nInvolved on a relationship level in the church\n   C.  Must come to ALL services\n\nAnother verse which is helpful is Hebrews 3:12-15.  The church should be\nencouraging daily, as it is their duty to do.\n\nOf course, more standards apply:\n   1 Timothy 4:16  People in the church should be watching their lives\nand doctrines to make sure they both live up to the Word entirely (ie,\ndisciples).\n   Acts 17:10-12  The pastor does not come close to the Apostle Paul\n(natural conclusion since the Apostle Paul talked with Jesus directly\nface to face), so if the Bereans, who were considered noble, didn't take\nPaul at his word but checked out what he said with Scripture to verify\nhis statements, then church members are to do the same and verify the\npastor's statements.  If they are not verifiable or valid in light of\nother verses, then that group should be avoided as a church (would've\nmade a wonderful suggestion to the Waco group, especially in light of\nMatthew 24).\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 966, "properties": {"category": "rec.sport.baseball", "text": "From: steph@cs.uiuc.edu (Dale Stephenson)\nSubject: Defensive Averages 1988-1992, Third Base\nSummary: career defensive averages at third\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 68\n\nCompiled from the last five Defensive Average reports, here are the career\nDAs for the individual players in the reports.  Stats are courtesy of\nSherri Nichols.  Players are listed in descending order.\n\nThird Basemen\n-------------\n\nName                 1988  1989  1990  1991  1992   88-92\nMitchell, Kevin      .690  ----  ----  ----  ----   0.690\nGonzales, Rene       .685  ----  ----  ----  ----   0.685\nLeius, Scott         ----  ----  ----  .653  .680   0.672\nPendleton, Terry     .692  .685  .631  .689  .634   0.667\nVentura, Robin       ----  ----  .641  .647  .677   0.657\nWallach, Tim         .728  .674  .600  .630  .665   0.657\nGruber, Kelly        .717  .657  .580  .630  .664   0.650\nPagliarulo, Mike     .631  ----  .575  .744  ----   0.649\nHarris, Lance        ----  ----  .642  .652  ----   0.648\nHowell, Jack         .656  .666  .609  ----  ----   0.647\nWilliams, Matt       ----  ----  .633  .653  .656   0.647\nCaminiti, Ken        ----  .675  .630  .653  .596   0.642\nSabo, Chris          .751  .626  .616  .613  .575   0.642\nGaetti, Gary         .616  .638  .655  .632  ----   0.637\nBuechele, Steve      .647  .616  .647  .681  .599   0.635\nSalazar, Luis        ----  .617  .643  .637  ----   0.632\nPecota, Bill         ----  ----  ----  .629  ----   0.629\nSchmidt, Mike        .628  ----  ----  ----  ----   0.628\nRiles, Ernie         ----  .627  ----  ----  ----   0.627\nBoggs, Wade          .643  .659  .550  .653  .634   0.626\nMartinez, Egdar      ----  ----  .621  .645  .599   0.624\nMolitor, Paul        .633  .617  ----  ----  ----   0.624\nPhillips, Tony       ----  ----  .623  ----  ----   0.623\n*NL Average*         .643  .625  .602  .623  .603   0.619\nBrookens, Tom        .616  ----  ----  ----  ----   0.616\nKing, Jeff           ----  ----  .616  ----  ----   0.616\nSeitzer, Kevin       .654  .583  .593  ----  .635   0.616\n*AL Average*         .641  .612  .604  .620  .602   0.615\nJacoby, Brook        .624  .621  .600  ----  .597   0.613\nHansen, Dave         ----  ----  ----  ----  .611   0.611\nLaw, Vance           .635  .576  ----  ----  ----   0.611\nMagadan, Dave        ----  ----  ----  ----  .609   0.609\nJefferies, Greg      ----  ----  ----  ----  .606   0.606\nSharperson, Mike     ----  ----  .606  ----  ----   0.606\nZeile, Todd          ----  ----  ----  .614  .593   0.605\nBaerga, Carlos       ----  ----  ----  .604  ----   0.604\nHayes, Chris         ----  .601  .622  .606  .574   0.602\nLivingstone, Scott   ----  ----  ----  ----  .597   0.597\nHamilton, J.         .611  .584  ----  ----  ----   0.595\nKelly, Pat           ----  ----  ----  .595  ----   0.595\nLyons, Steve         .590  ----  ----  ----  ----   0.590\nOberkfell, Ken       .590  ----  ----  ----  ----   0.590\nJohnson, Howard      .628  .549  .611  .573  ----   0.588\nBell, Buddy          .587  ----  ----  ----  ----   0.587\nLansford, Carney     .620  .578  .594  ----  .550   0.587\nPresley, Jim         .643  .595  .530  ----  ----   0.584\nSchu, Rick           ----  .584  ----  ----  ----   0.584\nWorthington, Cal     ----  .583  .575  ----  ----   0.580\nHollins, Dave        ----  ----  ----  ----  .577   0.577\nSheffield, Gary      ----  ----  .584  ----  .567   0.575\nBlauser, Jeff        ----  .573  ----  ----  ----   0.573\nFryman, Travis       ----  ----  ----  .571  ----   0.571\nGantner, Jim         ----  ----  ----  .570  ----   0.570\nGomez, Lee           ----  ----  ----  .551  .542   0.546\nPalmer, Dean         ----  ----  ----  ----  .520   0.520\n-- \nDale J. Stephenson |*| (steph@cs.uiuc.edu) |*| Grad Student At Large\n\n  \"It is considered good to look wise, especially when not \n   overburdened with information\" -- J. Golden Kimball\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 967, "properties": {"category": "sci.crypt", "text": "From: olson@umbc.edu (Bryan Olson; CMSC)\nSubject: Re: WH proposal from Police point of view\nOrganization: University of Maryland, Baltimore County Campus\nLines: 30\nDistribution: world\nNNTP-Posting-Host: umbc7.umbc.edu\nX-Auth-User: olson\n\n\nIn article <1993Apr18.034352.19470@news.clarkson.edu>, tuinstra@sunspot.ece.clarkson.edu.soe (Dwight Tuinstra) writes:\n|> It might pay to start looking at what this proposal might mean to a\n|> police agency.  It just might be a bad idea for them, too.\n|> \n|> OK, suppose the NY State Police want to tap a suspect's phone.  They\n|> need a warrant, just like the old days.  But unlike the old days, they\n|> now need to \n|> \n|>    (a) get two federal agencies to give them the two parts of\n|>        the key.\n|> \n|> Now, what happens if there's a tiff between the two escrow houses?\n|> Posession/release of keys becomes a political bargaining chit.\n\n\tWhile I think it is unrealistic to suppose that the federal\nagencies will fail to promptly comply with a court order, there is \nstill a good point here.  Local law enforcement will be unable to perform\na wiretap without bringing in federal agencies.   Based on the (possibly\nincomplete) understanding of the system quoted from D. Denning, only the\nFBI will be able to decrypt the system key encryption layer, which seems\nto be needed even to identify what escrowed keys to request.  This moves\na great deal of law enforcement power to the federal level.\n\tThe reason I like this point is that it may sway or even persuade\npeople who don't generally line up with the civil liberties crowd.  A\nnational police force is opposed by people from a broad range of political \nviewpoints.\n\n\nolson@umbc.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 968, "properties": {"category": "rec.motorcycles", "text": "From: L629159@LMSC5.IS.LMSC.LOCKHEED.COM\nSubject: Re: Boom! Hubcap attack!\nOrganization: Lockheed Missiles & Space Company, Inc.\nLines: 30\n\nFrom: speedy@engr.latech.edu (Speedy Mercer)\n\nI was attacked by a rabid hubcap once.  I was going to work on a Yamaha\n750 Twin (A.K.A. \"the vibrating tank\") when I heard a wierd noise off to my\nleft.  I caught a glimpse of something silver headed for my left foot and\njerked it up about a nanosecond before my bike was hit HARD in the left...\n\n(Rest deleted)\n\nAnyone else had this sort of experience?\n\n ----===== DoD #8177 = Technician(Dr. Speed) .NOT. Student =====----\n\n                          Stolen Taglines...\n              * God is real, unless declared integer. *\n            * I came, I saw, I deleted all your files. *\n         * Black holes are where God is dividing by zero. *\n        * The world will end in 5 minutes. Please log out. *\n       * Earth is 98% full.... please delete anyone you can. *\n\n   Actually, hubcap attacks are fairly common, most cagers being too\n   incompetant to reinstall them properly after changing tires, or\n   to check them after collisions.  Luckily, few are as heavy as the\n   one that got you.\n\nAl Moore  DoD  734\n\nDon't forget the immortal\n\n        * swap file read error:  you lose your mind. *\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.047+0000", "event": "documents", "entityId": 969, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re:xSoviet Armenia denies the historical fact of the Turkish Genocide.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 174\n\nIn article <2BD220B1.22816@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n\n>>>>I sure hope so. Because, the unspeakable crimes of the Armenians must \n>>>>be righted. Armenian invaders burned and sacked the fatherland of \n>>\n>>>No!  NO!  no no no no no.  It is not justifiable to right wrongs of\n>>>previous years.  \n\n>Well, there is a bit: such as the German reparations to the jewish\n>survivors of the Holocaust. Certainly, as such an event goes further \n>into the past, reparations become less realistic.\n\nI was convinced that no one could have a more warped sense of the\nworld. They were 'our' grandparents who were cold-bloodedly exterminated\nby the Armenians between 1914 and 1920, not yours. And you can always\nparticipate in 'The Turkish Genocide Day' along with millions of Turkish \nand Kurdish people on April 23, 1993 in the United States and Canada. \n\n...On this occasion, we once again reiterate the unquestioned \njustice of the restitution of Turkish and Kurdish rights and...\n\n- We demand that the x-Soviet Armenian Government admit its \nresponsibility for the Turkish and Kurdish Genocide, render \nreparations to the Muslim people, and return the land to its \nrightful owners. The recognition of the Genocide has become an \nissue which cannot be delayed further, and it is imperative that \nartificial obstacles created for political manipulations be removed.\n\n- We believe the time has come to demand from the the United States \nthat it formally recognizes the Turkish and Kurdish Genocide, adopts \nthe principles of our demands and refuses to accede to Armenian pressures \nto the contrary.\n\n- As taxpayers of the United States, we express our vehement \nprotest to the present U.S. Government policy of continued \ncoddling, protection and unqualified assistance towards x-Soviet\nArmenia.\n\n- We also demand that the United States return to the policies \nadvocated by U.S. Ambassador Bristol and other enlightened statesmen,\nwho have undertaken a just, human and benevolent attitude towards \nthe rights of the Muslim people and the just resolution of their Case.\n\n- Our territorial demands are strictly aimed at x-Soviet Armenia's.\n\n\nAnd in article <2BAC262D.25249@news.service.uci.edu>, you have blatantly\nlied:\n\n>The Goltz article was NOT published in the Sunday Times Magazine\n>on March 1, 1992, but in the Guardian Sunday Section. \n\nWell, still anxiously awaiting...\n\nCIS Commander Pulls Troops Out of Karabagh :\n\n\"Elif Kaban, a Reuter correspondent in Agdam, reported that after a battle \n on Wednesday, Azeris were burying scores of people who died when Armenians \n overran the town of Khojaly, the second-biggest Azeri settlement in the \n area. 'The world is turning its back on what's happening here. We are dying \n and you are just watching,' one mourner shouted at a group of journalists.\"\n Helen Womack\n The Independent, 2/29/92\n\nArmenian Soldiers Massacre Hundreds of Fleeing Families:\n\n\"The attackers killed most of the soldiers and volunteers defending the \n women and children.  They then turned their guns on the terrified refugees.  \n The few survivors later described what happened: 'That's when the real \n slaughter began,' said Azer Hajiev, one of the three soldiers to survive.  \n 'The Armenians just shot and shot. And they came in and started carving \n up people with their bayonets and knives.'  A 45-year-old man who had been \n shot in the back  said:' We were walking through the brush. Then they opened \n up on us and people were falling all around.  My wife fell, then my child.\"\n Thomas Goltz\n Sunday Times, 3/1/92\n\nArmenian Raid Leaves Azeris Dead or Fleeing:\n\n\"...about 1,000 of Khojaly's 10,000 people were killed in Tuesdays attack. \n Azerbaijani television showed truckloads of corpses being evacuated from \n the Khocaly area.\"\n Brian Killen (Reuters)\n The Washington Times, 3/2/92\n\nAtrocity Reports Horrify Azerbaijan :\n\n\"Azeri officials who returned from the seen to this town about nine miles \n away brought back three dead children, the backs of their heads blown off...\n 'Women and children had been scalped,' said Assad Faradzev, an aide to \n Karabagh's Azeri governor.  Azeri television showed pictures of one \n truckload of bodies brought to the Azeri town of Agdam, some with their \n faces apparently scratched with knives or their eyes gouged out.\"\n Brian Killen (Reuters)\n The Washington Times, 3/3/92\n\nMassacre By Armenians Being Reported:\n\n\"The Republic of Armenia reiterated denials that its militants had \n killed 1,000 [Azeris]... But dozens of bodies scattered over the \n area lent credence to Azerbaijani reports of a massacre.\"\n (Reuters)\n The New York Times, 3/3/92\n\nKillings Rife in Nagorno-Karabagh, Moldova:\n\n\"Journalists in the area reported seeing dozens of corpses, including some \n of the civilians, and Azerbaijani officials said Armenians began shooting \n at them when they sought to recover the bodies.\"\n Fred Hiatt\n The Washington Post, 3/3/92\n\nBodies Mark Site of Karabagh Massacre:\n\n\"A local truce was enforced to allow the Azerbaijanis to collect their dead \n and any refugees still hiding in the hills and forest.  All are the bodies \n of ordinary people, dressed in the poor, ugly clorhing of workers. Of the 31 \n we saw only one policeman and two apparent national volunteers were wearing \n uniform.  All the rest were civilians, including eight women and three small\n children. Two groups, apparently families, had fallen together, the children \n cradled in the women's arms.  Several of them, including one small girl, had \n terrible head injuries: only her face was left. Survivors have told how they \n saw Armenians shooting them point blank as they lay on the ground.\"\n Anatol Lieven\n The Times (London), 3/3/92\n\nKarabagh Survivors Flee to Mountains:\n\n\"Geyush Gassanov, the deputy mayor of Khocaly, said that Armenian troops \n surrounded the town after 7 pm on Tuesday. They were accompanied by six \n or seven light tanks and armoured carriers.  'We thought they would just \n bombard the village, as they had in the past, and then retreat.  But they \n attacked, and our defence force couldn't do anything against their tanks.'  \n Other survivors described how they had been fired on repeatedly on their \n way through the mountains to safety. 'For two days we crawled most of the \n way to avoid gunfire,' Sukru Aslanov said.  His daughter was killed in the \n battle for Khodjaly, and his brother and son died on the road.\"\n Anatol Lieven\n The Times (London), 3/3/92\n\nCorpses Litter Hills in Karabagh:\n\n\"As we swooped low over the snow covered hills of Nagorno-Karabagh we saw \n the scattered corpses. Apparently, the refugees had been shot down as \n they ran...Suddenly there was a thump...[our Azerbaijani helicopter] had \n been fired on from an Armenian anti-aircraft post...\"\n Anatol Lieven\n The Times (London), 3/4/92\n\n\"Police in western Azerbaijan said they had recovered the bodies of \n 120 Azerbaijanis killed as they fled an Armenian assault in the \n disputed enclave of Nagorno-Karabagh and said they were blocked from \n recovering more bodies.\"\n The Wall Street Journal, 3/4/92\n\nExiting Troops Attacked in Nagorno-Karabagh:\n\n\"Withdrawal halted;  Armenians Blamed...\n More video footage and reports from Khocaly paint a grim picture of \n widespread civilian deaths and mutilation...\n One woman's feet appeared to have been bound...\"\n Paul Quinn-Judge\n The Boston Globe, 3/4/92\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 970, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: storm@cs.mcgill.ca (Marc WANDSCHNEIDER)\nSubject: Re: IDE vs SCSI\nNntp-Posting-Host: mnementh.cs.mcgill.ca\nOrganization: SOCS, McGill University, Montreal, Canada\nLines: 22\n\nIn article <wayne.02uv@amtower.spacecoast.org> wayne@amtower.spacecoast.orgX-NewsSoftware: GRn 1.16f (10.17.92) by Mike Schwartz & Michael B. Smith writes:\n>In article <1993Apr15.235509.29818@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>>\n>> I won't argue that the SCSI standard makes for a good, well implimented\n>> data highway, but I still want to know why it intrinsically better\n>> (than IDE, on an ISA bus) when it comes to multi-tasking OS's when\n>> managing data from a single SCSI hard drive.\n>\n>I have been following this thread and figured I'd throw in my two cents...\n>\n>The Amiga Zorro II bus is comparable with the ISA bus (7.16 vs 8.33 MHZ).\n\n\tExcept for the fact that it's superior in just about every way to\nthe ISA Bus.\n\n>The Amiga has had a pre-emptative multi-tasking  OS since '85 and can\n>operate with 1 MB RAM!  SCSI is used almost exclusively on these systems.\n\n\tExcept for the new systems that now ship only with IDE controllers.\n\n\tToodlepiP!\n\tMarc 'em.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 971, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ytkuo@hal.gnu.ai.mit.edu (Eugene Y. Kuo)\nSubject: Any updated Canon BJ-200 driver\nOrganization: dis\nLines: 7\nDistribution: world\nNNTP-Posting-Host: hal.ai.mit.edu\n\nHi ... can anyone tell me where I can get a copy of updated Canon BJ-200\nprinter driver for Windows 3.1, if any ? I have ver 1.0 which comes with\nmy BJ-200 printer, I just wonder if there is any newer version.\n\nThanks very much, please email.\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 972, "properties": {"category": "soc.religion.christian", "text": "From: salaris@niblick.ecn.purdue.edu (Rrrrrrrrrrrrrrrabbits)\nSubject: Re: Satan kicked out of heaven: Biblical?\nOrganization: Purdue University Engineering Computer Network\nLines: 23\n\nIn article <May.7.01.09.04.1993.14501@athos.rutgers.edu>, easteee@wkuvx1.bitnet writes:\n> Hello all,\n>      I have a question about Satan.  I was taught a long time ago\n> that Satan was really an angel of God and was kicked out of heaven\n> because he challenged God's authority.  The problem is, I cannot\n> find this in the Bible.  Is it in the Bible?  If not, where did it\n> originate?\n> \nSatan was one of God's highest ranking angels, like Uriel, Raphael,\nMichael, and Gabriel.  In fact, his name was Satanel.  He did challenge\nGod's authority and got kicked out of heaven.  A lot of the mythology\nof Satan (he lost the -el suffix when he fell) comes from the\nBook of Enoch and is not found in the bible.\n\nRead the Book of Enoch, available thru bookstores, or get the book\ncalled \"Angels: an endangered species\" (I think).\n\n\n--\nSteven C. Salaris                We're...a lot more dangerous than 2 Live Crew\nsalaris@carcs1.wustl.edu         and their stupid use of foul language because\n\t\t\t\t we have ideas.  We have a philosophy.\n\t\t\t\t\t      Geoff Tate -- Queensryche\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 973, "properties": {"category": "sci.space", "text": "From: degroff@netcom.com (21012d)\nSubject: Re: Atlas revisited\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nDistribution: sci\nLines: 8\n\n  I found it very interesting that Atlas depended on pressure to\nmaintain tank geometry....leads me to the question: ? have any \nof the SSTO concepts explored pressurized tankage such that the\nlaunch configuration would be significantly different from the\nreentry one?  I have long been facinated by pnumatic structures\nas conceived and built by Frei Otto and others, a \"ballon\" tank\nSSTO sounds very clever. \n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 974, "properties": {"category": "sci.electronics", "text": "From: mark@wdc.sps.mot.com (Mark Shaw)\nSubject: Re: Rumors\nNntp-Posting-Host: 223.199.55.11\nOrganization: Motorola Western MCU Design Center, Chandler Arizona\nLines: 17\n\nIn article <1993Apr2.174851.22659@cs.unca.edu>, kepley@photon.phys.unca.edu (Brad Kepley) writes:\n|> I just heard an unbelievable rumor that Motorola has decided to drop their\n|> integrated circuit manufacture business.  Apparently a Digikey rep called \n|> one of our production coordinators, for out information so that we could\n|> make plans to deal with this, that Moto was getting out.  Anybody else\n|> get a call about this?\n|> \n|> Too much for me.  It's about like Intel announcing they were getting out\n|> of the IC business.\n\n\nThis rumor didn't happen to appear on April 1st?\n\nIf this DigiKey rep was serious, I think I will buy my parts elsewhere.\nIf that is the way they do business, you cannot trust them.\n\nMark\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 975, "properties": {"category": "sci.space", "text": "From: 18084TM@msu.edu (Tom)\nSubject: Fred and Tom, ad naseum\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 189\n\n>>Nick sez;\nI'm not very impressed by the old so-called \"prospecting\" work from\nLPI, it has almost all been geared towards industrially silly processes on\nthe moon as an excuse to put astronauts there.   [...]\n\n>>Fred replies;\nTranslation:  It doesn't support the Nick Szabo Vision of the Future\nto Which You MUST Subscribe...\n\n>Tom sez;\nFred, we're all supporting what each of us thinks should be done, to some\ndegree.  If you have a problem with what Nick thinks should be done,\naddress it, instead of just complaining about his doing so.\n\n>Fred again;\nYou really don't get what the 'complaints' are about, do you?\n  [not incredibly clear explanation of complaints...something between\n   feelings regarding Nick's method, and judgments about his meaning]\n\nT\n>>Maybe I'd get it if you said what the complaints are about, rather than\n>>doing the same things that you mean to complain about.  When you trash\n>>people, how am I supposed to read that as 'trashing people is bad'?\n\nF\n>Gee, funny that you get it now, then?  Deliberate obtuseness, perhaps?\n\n*** Fred's issue #1;  Nick's alleged trashing of others ***\n\nI only got it when you stopped trashing, and made your point patently,\ninstead of 'allegorically'.  That was my point all along, Fred.\n\n>>>>Not only\n>>>>do you do the same thing on the net (honestly reporting your ideas\n>>>>on matters of policy and projects in space), but your response was just\n>>>>baiting, not even part of a debate.\n\n>>>I have yet to see Nick enter into anything remotely resembling \"a\n>>>debate\".  I see him flame anyone or anything who disagrees with The\n>>>One True Szabo Plan; I see him attacking people, calling them \"lazy\n>>>bastard\" because they had the temerity to disagree with the Almight\n>>>Nick; I see him questioning peoples ethics, again because they had the\n>>>temerity to disagree with Lord God Szabo.  But debate?  BWAAaaahhhaaaa.\n\n>>I'm glad you can laugh, since your ratio of debate/insult is about the same.\n\n>Not even close, Tommy, and generally only when I'm dealing with\n>someone like Nick.\n\nI see we are dealing with a problem in a conflict of interpretations, not\nleast of which is your belief that only you can adequately judge what is\nand is not debate.  Suffice to say that I disagree with you on that last\npoint.  Why don't you take a poll, Fred, if you want some psuedo-objective\npoint-of-view?\n\nAnd, as usual, you defend your insults with \"he started it.\"  \"Yeah, I\ntook some of his research and called it my own, but he started it.\"  \"So\nwhat if I stole his car, he stole my lawnmower first.\"  Besides that, I\nthink it's still open to interpretation whether Nick actually did start it.\nSo your defense, besides being lame, and contradicting the first part of\nthe sentence in which it occurs, may not even apply anyway.\n\nYour defense reminds me of the guy that broke the borrowed tool:  \"I\nnever borrowed it, I already gave it back, and it was broken when you\ngave it to me.\"  Make up yer mind, Fred!\n\n>>>>I'm not convinced that people are necessary in all parts of every space-\n>>>>based process, and your response doesn't tell me a thing about the\n>>>>reasons why you think they should be, except to impune the motives of\n>>>>the person with a divergent opinion.\n\n>>>Who said I think they should be, Tommy?  Show me a note where I said\n>>>that and I'll eat this terminal.    ****See below, Fred****\n\n>>Fred, I cocluded that you did, since you took issue with it.  The fact\n>>that my conclusion was incorrect, i.e. that you were taking issue with\n>>something different, is evidence that your communication style is\n>>confusing.\n\n>Or evidence that your reading and comprehension style are inadequate.\n\nFirst, I try to address what I think you meant, for which I am rewarded\nwith a denial of sorts, and a smart remark.  Then, I point out that I am\nnot clear what you did mean, rather than risking your childish ire, wrongly\ninterpreting you a second time, and I'm stupid for it.  I just can't win,\ncan I, Fred?  You've got a great point here somewhere, it's just that\nbetween stupid people that you must insult, and your jealous guarding of\nyour valuable opinions, you never actually get around to making it.\n\n>Please quote the 'it' I took issue with.  I believe you will see (if\n>you look) that what I was and am taking issue with is Mr Szabo's idea\n>that the manned program should be scrapped until such time as his\n>toaster-based infrastructure is finished.  All Hail the Szabo Plan!\n\n*** Fred issue #2;  Nick's alleged meaning ***\n\nToo bad the plan only exists in your mind, instead of Nick's, or you\nwould have a really good point.  Instead you have provided a good reason\nto ignore your insults, since they are based on incorrect interpretations\nthat you have made about others.  Forgive me for giving your insults more\nmeaning than they ever should have had.\n\nMy reading of what Nick actually said is that \"people aren't required in\nall parts of all space processes\", so your taking issue with his opinions\nregarding people in the space program, I read as \"People are required in\nall parts of all space processes.\"  So, help me out, here, Fred, since I'm\nso patently stupid.  Did you read Nick wrong?  Or are you going to eat\nyour terminal now?  If the latter, I sure hope it's one of those Cheeto and\nstring models that all the computer mags have been raving about :-)\n\nThe point is, _I_ am not stupid because of _your_ incorrect assumption.  I'd\nonly be stupid if I insulted you for having made it.  But, alas, that's your\njob, Fred.\n\nAnd, finally, your style is confusing, since you tried to make two points,\nsimultaneously, with an allegory/insult.  Sadly, one point addressed a 'plan'\nthat only existed in your mind, and the other took issue with behaviors that\nyou do as much as anyone.\n\n>More deliberate lack of understanding, Tommy?\n\nNo, no, I finally got it.  You don't like the plan that Nick's posts made\nyou imagine.  And you don't like Nick's obnoxious behavior, even though\nit's no worse than your own.  Thanks for taking the time with someone as\ndense as myself.\n\n>>>>If you have a problem with Nick's delivery, address that.  The way you\n>>>>bait, you're perpetuating the lack of discourse that you complain of.\n\n>>>No, Tommy, the 'bait' is that which elicits the response.  *NICK*\n>>>'baits'; I just flame him for being an obnoxious fool.\n\n>>I don't really care who started it.  I read this list to get information\n>>and other's views on the issues to which it was dedicated, not to be\n>>your Mom (He started it!  No, he did!) or to hear about why Nick is a very\n>>bad guy.  If you think flaming is bad, stop flaming, or at least get to\n>>the point in the first post, instead of explaining yourself all the time.\n\n>That's nice, Tommy.  When you pay me to post to the net you can\n>complain about not getting your money's worth.  Perhaps if you weren't\n>(deliberately?) too thick to get the point the first time I wouldn't\n>have to waste time \"explaining [myself] all the time\"?\n\nOf course, Socrates.  How could it be otherwise?\n\n>I think it's neat how all this criticism from you started after your\n>'fatherly' admonitions to me about how such things should be handled\n>outside Usenet were somewhat rebuffed.  Being a little hypocritical,\n>Tommy (to go with the immaturity)?  Or is this just the pique of a\n>net.ghod wannabe who got turned down by someone he *thought* was new\n>(and hence could be 'instructed' -- Tommy, I saw you come on the net).\n\nWho cares who came on the net first?  If you do, consider that you saw\nme come on after a brief haitus, before which I was on for about 2 years.\nIf you had seen me on the net first, you'd remember when Nick and I went\ndown exactly the same road regarding rude, unneccesary behavior.  It's\njust amazing to me that you continue to take issue with behavior that's\nno worse than your own.\n\nLet's see here, my complaints about your obnoxious behavior are hypocritical,\nwhile your flames against people you decide are flamers isn't, and my\ncomplaints about your name-calling are immature, while your name-calling\nisn't.  Yeah, right.  Maybe if you called me some more names, I might\nsee it better, Fred.\n\n\"Net.ghod wannabe\"?  Naturally, Fred, you've correctly interpreted my\nmotivations, when yours are impossible to judge from your actions (as\nyour insulting of people that try, proves).  I didn't really care about\npeople that fill the net with personal garbage, what I really wanted was to\nimpress everyone.  I only put my complaints with your behavior on private\nmail, not because it belongs there, but because I thought you were such a\njerk that you'd bring it back to the Net, playing right into my hands.\nAlas, I had no idea what an intellectual master you were, turning tables and\nbringing the history of these posts to the net, for the noble and valuable\npurpose of embarassing me.  Whether I should feel stupid because I tried\nto make suggestions to such a superior intellect, or becuase I tried to\ncommunicate like an adult with a self-righteous ass, still isn't clear.\n\nWell, Fred, you exposed me.  Now I'll never be able to get a(nother) job\nwith NASA, since they all know that I'm stupider than Fred McCall.  Well,\nI just hope you're happy.  Please leave me alone, now.  I just don't\nhave the heart to attempt keeping up with one so far above me.  Maybe Nick\nor Pat can approach your high standards, but I'm dropping it now.\n\n-Tommy Mac\n-------------------------------------------------------------------------\nTom McWilliams 517-355-2178 wk   \\\\ As the radius of vision increases,\n18084tm@ibm.cl.msu.edu 336-9591 hm \\\\ the circumference of mystery grows.\n-------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 976, "properties": {"category": "talk.religion.misc", "text": "From: pmoloney@maths.tcd.ie (Paul Moloney)\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nOrganization: Somewhere in the Twentieth Century\nLines: 20\n\ncotera@woods.ulowell.edu writes:\n\n>Once again, where's your proof? Suicide is considered a sin by Branch\n>Davidians.  Also, Koresh said over and over again that he was not going to\n>commit suicide.  Furthermore, all the cult experts said that he was not\n>suicidal.  David Thibedeau (sp?), one of the cult members, said that the fire\n>was started when one of the tanks spraying the tear gas into the facilities\n>knocked over a lantern.\n\nIn two places at once? Bit of a coincidence, that.\n\nWhatever the faults the FBI had, the fact is that responsibility\nfor those deaths lies with Koresh.\n\nP.\n-- \n moorcockpratchettdenislearydelasoulu2iainmbanksneworderheathersbatmanpjorourke\nclive p a u l  m o l o n e y  Come, let us retract the foreskin of misconception\njames trinity college dublin  and apply the wire brush of enlightenment - GeoffM\n brownbladerunnersugarcubeselectronicblaylockpowersspikeleekatebushhamcornpizza \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 977, "properties": {"category": "sci.space", "text": "From: xrcjd@mudpuppy.gsfc.nasa.gov (Charles J. Divine)\nSubject: Space Station Redesign Chief Resigns for Health Reasons\nOrganization: NASA/GSFC Greenbelt Maryland\nLines: 12\n\nWriter Kathy Sawyer reported in today's Washington Post that Joseph Shea, the \nhead of the space station redesign has resigned for health reasons.\n\nShea was hospitalized shortly after his selection in February.  He returned\nyesterday to lead the formal presentation to the independent White House panel.\nShea's presentation was rambling and almost inaudible.\n\nShea's deputy, former astronaut Bryan O'Connor, will take over the effort.\n\nGoldin asserted that the redesign effort is on track.\n-- \nChuck Divine\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 978, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: ? (was Re: \"Cruel\" (was Re: <Political Atheists?))\nOrganization: California Institute of Technology, Pasadena\nLines: 13\nDistribution: world,public\nNNTP-Posting-Host: punisher.caltech.edu\nKeywords: Time for a consistency check, bub.\n\nsdoe@nmsu.edu (Stephen Doe) writes:\n\n>>Of course, if at some later time we think that the death penalty\n>>*is* cruel or unusual, it will be outlawed.  But at the present,\n>>most people don't seem to think this way.\n>*This* from the same fellow who speaks of an \"objective\" or \"natural\"\n>morality.  I suppose that if the majority decides slavery is OK, then\n>it is no longer immoral?\n\nI did not claim that our system was objective.\n\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 979, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: khioe@juno.jpl.nasa.gov (Kent Hioe)\nSubject: Need advice to select sound card ?\nKeywords: sound card.\nNntp-Posting-Host: juno.jpl.nasa.gov\nOrganization: jpl\nLines: 32\n\n\nHi, I need some advice from the netland in selecting a sound card.\n\nI am about to buy a sound card for my kid. I don't know which one to buy.\nWhich one to select from the following list:\n\n- Sound Blaster 16\n- Miscrosoft- sound card\n- Audio Spectrum\n- Sound Blaster pro\n- Sound Blaster\n\n\nMy allocated budget is around $250.\n\n\nCould some of you know about sound cards help me to select the most appropriate\none for my kid ?\n\n\nI have 486-33 Mz OPTI MB.\nI also have NEC CDROM that I would like to connect to the sound card.\n\n\nThank you.\n\n\n--\nKent\nkhioe@juno.jpl.nasa.gov\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 980, "properties": {"category": "talk.politics.misc", "text": "From: demon@desire.wright.edu (Not a Boomer)\nSubject: Re: The state of justice\nOrganization: ACME Products\nLines: 46\n\nIn article <1qksa4INNi7m@shelley.u.washington.edu>, tzs@stein2.u.washington.edu (Tim Smith) writes:\n> demon@desire.wright.edu (Not a Boomer) writes:\n>>\tA judge denied GM's new trial motion, even though GM says it has two\n>>new witnesses that said the occupant of the truck was dead from the impact, not\n>>from the fire.\n>>\n>>\tThoughts?\n> \n> How can a witness tell that someone in a burning truck is dead rather than\n> unconscious?\n\n\tTheir testimony would be a contradiction of the plaintiff's charge (and\nwitness) that the occupant moved after the impact, indicating he was alive and\ntrying to get out (and provoking all sorts of sympathetic 'gross, burned alive'\nreactions).\n\n>>\tIt's kind of scary when you realize that judges are going to start\n>>denying new trials even when new evidence that contradicts the facts that led\n>>to the previous ruling appear.\n>>\n>>\tOr has the judge decided that the new witnesses are not to be believed? \n>>Shouldn't that be up to a jury?\n> \n> What kind of witnesses?  If we are talking about witnesses who were at\n> the accident, or were otherwise directly involved (e.g., paramedics,\n> emergency room doctors, etc.), then they should have been used at the\n> first trial.  You don't get a new trial because you screwed up and\n> forgot to call all of your witnesses.\n\n\tThey are two witnesses who didn't come forth until after the first\ntrial.  While it would be \"tough luck\" for GM if they new about these witnesses\nbeforehand, IMO this constitutes \"new evidence\".\n\n> If we are talking about new expert witnesses who will offer new\n> interpretations of the data, note that the loser can *ALWAYS* find\n> such witnesses.  If this were grounds for a new trial, then the loser\n> could *ALWAYS* get a new trial, and keep doing so until the loser\n> becomes a winner (and then the other side would come up with new\n> expert witnesses).\n\n\tNo, I support rulings that deny new trials on those grounds.\n\nBrett\n________________________________________________________________________________\n\t\"There's nothing so passionate as a vested interest disguised as an\nintellectual conviction.\"  Sean O'Casey in _The White Plague_ by Frank Herbert.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 981, "properties": {"category": "rec.motorcycles", "text": "From: gruncie@cs.strath.ac.uk (Gillian E Runcie CS92)\nSubject: Re: How to act in front of traffic jerks\nOrganization: Comp. Sci. Dept., Strathclyde Univ., Glasgow, Scotland.\nLines: 7\nNNTP-Posting-Host: fleming-07.cs.strath.ac.uk\n\nbeing a mere female, I have often found I can't really take the big offensive line with asshole car drivers, so I found a more subtle and nastly\nooops I mean nasty way to get back at them. If somebody cuts you up, just wait till they have pulled out past you, and then gently lean over and\nbend their aerial, every time I have done that it has eventually snapped\noff near the base - which tends to go undetected for a while and is a bummer to replace.\n\n\ngillian\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 982, "properties": {"category": "comp.graphics", "text": "From: lmp8913@rigel.tamu.edu (PRESTON, LISA M)\nSubject: Another CVIEW question (was CView answers)\nOrganization: Texas A&M University, Academic Computing Services\nLines: 12\nDistribution: world\nNNTP-Posting-Host: rigel.tamu.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\n\n\tHas anybody gotten CVIEW to work in 32k or 64k color mode on a Trident\n8900c hi-color card? At best the colors come out screwed up, and at worst the \nprogram hangs. I loaded the VESA driver, and the same thing happens on 2 \ndifferent machines.\n\n\tIf it doesn't work on the Trident, does anybody know of a viewer that \ndoes?\n\nThanx!\nLISA \n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 983, "properties": {"category": "comp.graphics", "text": "From: rosa@ghost.dsi.unimi.it (massimo rossi)\nSubject: 3d studio works changes!!!!\nOrganization: Computer Science Dep. - Milan University\nLines: 28\n\n hi guys\n like all people in this group i'm a fans of fractal and render sw\n my favourite are fractint pov & 3dstudio 2.0 \n now listen my ideas\n i'have just starting now to be able to use 3dstudio quite well\n so i'm simulating a full animation of a f1 grand prix\n unfortanatly just some lap(10?)\n i' m very interested about all kind of .prj .3ds and so on\n concerning about cars or parts of its (motors wheel ...)\n (dxf are good enough)\n does anyone have object to give me to complete my hard animation\n\n\n anyway any exchanges about object material project will\n be VERY APRECIATE!!!!!\n\n is there a ftp site where I can find its?\n\n i' m looking for .pov files too\n (i 'm interested about cpu time comparision rendering images on\n pov & 3dstusio)\n\n thank to all\n\n\n email me at rosa@ghost.sm.dsi.unimi.it\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 984, "properties": {"category": "talk.politics.mideast", "text": "From: tankut@IASTATE.EDU (Sabri T Atan)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nReply-To: tankut@IASTATE.EDU (Sabri T Atan)\nOrganization: Iowa State University\nLines: 36\n\nIn article <1993Apr20.143453.3127@news.uiowa.edu>, mau@herky.cs.uiowa.edu (Mau\nNapoleon) writes:\n> From article <1qvgu5INN2np@lynx.unm.edu>, by osinski@chtm.eece.unm.edu (Marek\nOsinski):\n> \n> > Well, it did not take long to see how consequent some Greeks are in\n> > requesting that Thessaloniki are not called Solun by Bulgarian netters. \n> > So, Napoleon, why do you write about Konstantinople and not Istanbul?\n> > \n> > Marek Osinski\n> \n> Thessaloniki is called Thessaloniki by its inhabitants for the last 2300\nyears.\n> The city was never called Solun by its inhabitants.\n> Instabul was called Konstantinoupolis from 320 AD until about the 1920s.\n> That's about 1600 years. There many people alive today who were born in a\ncity\n> called Konstantinoupolis. How many people do you know that were born in a city\n> called Solun.\n> \n> Napoleon\n\nAre you one of those people who were born when Istanbul was called \nKonstantinopolis? I don't think so! If those people use it because\nthey are used to do so, then I understand. But open any map\ntoday (except a few that try to be political) you will see that the name \nof the city is printed as Istanbul. So, don't try to give\nany arguments to using Konstantinopolis except to cause some\nflames, to make some political statement. \n\n\n--\nTankut Atan\ntankut@iastate.edu\n\n\"Achtung, baby!\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 985, "properties": {"category": "rec.motorcycles", "text": "From: nuet_ke@pts.mot.com (KEITH NUETZMAN X3153 P7625)\nSubject: test\nNntp-Posting-Host: 145.4.54.110\nReply-To: nuet_ke@pts.mot.com\nOrganization: Paging and Wireless Data Group\nLines: 2\n\n\ntest\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 986, "properties": {"category": "rec.sport.baseball", "text": "From: bm562@cleveland.Freenet.Edu (Richard L. Trionfo)\nSubject: Question about Candlestick\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 12\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\n   I have tickets for the TB Giants and I was wondering if\nanybody familiar with the stadium could tell me where \nSection 15 in the lower level is located.\n    Please e-mail the response,\n    Thanks, \n    Rich\n-- \n  \"You've read the hat, now see the movie.\"\n                   -Imus in the morning \n  \"A blurb? You're a blurb!\"\n                   -Seinfeld\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 987, "properties": {"category": "comp.graphics", "text": "From: tsa@cellar.org (The Silent Assassin)\nSubject: Questions about Plane Eqn method of Hidden Surface removal\nOrganization: The Cellar BBS and public access system\nLines: 18\n\nWhat are the main advantages of this method?  I have seen it described, and\nthe algiorithm seems a  little bit long.  I developed my own method, which\nrequires that the points be in a counter-clockwise order, and returns\nwhether you are looking at the back or the front, similar to the plane eqn\nmethod.  It uses few calculations however, basically it is several\ncomparisons.  The only disadvantage I see is that it must be done after the\ntransformation from view coordinates to coordinates to display on the\nscreen, which means that a little more calculation isneeded beforehand.  My\nmethod basically figures out whether the points that will appear on the\nscreen are clockwise or counterclockwise.  When looking at the back of\nsomething, the points occur in an opposite direction from the front, so\nmerely by figuring out which way the points go, you can tell whether you are\nlooking at the back or front of a 2d polygon.  Has anyone heard of this\nmethod before?  It is so simple, I doubt i am the first to think of it.\n\nLibertarian, atheist, semi-anarchal Techno-Rat.\n\nI define myself--tsa@cellar.org\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 988, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mjuric@aisun1.ai.uga.edu (Mark Juric [MSAI])\nSubject: Printer security\nKeywords: printers, security\n  \n   We are being attacked by midnight, phantom printer users, who rack up 100s\n   If there are any utilities that allow multiple passwords for access to the\nNntp-Posting-Host: aisun1.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 8\n\n\n@===@                                                                     @===@\n ###  Mark Juric                               A.I. Programs               ###\n ###  mjuric@ai.uga.edu                    University of Georgia           ###\n ###                                       Athens, Georgia 30602           ###\n@===@                                                                     @===@\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 989, "properties": {"category": "comp.windows.x", "text": "From: hughm@brwal.inmos.co.uk (Hugh McIntyre)\nSubject: Sun3/60 + X11R5 -> undeletable console messages.\nKeywords: sun sun3 X11R5 console\nOrganization: INMOS Limited, Bristol, UK\nLines: 23\n\nWe have an old Sun3/60 here which gets occasional use.  When X11R5 is started\non it any console messages during startup are undeletable.  After X is fully\nstarted we run an xterm as the \"console\" - the problem is that any messages\nthat arrive before this starts go to the plain console.  \"Refresh window\" fails\nto remove them.  The messages are a real pain since they sit in the middle of\nthe screen obscuring anything else below them.\n\nAt boot time the 3/60 lists two framebuffers  -  /dev/cgfour0 and /dev/bwtwo1.\nWe're running X in color, and I suspect that maybe the offending messages are\non the B/W framebuffer, and thereby not getting deleted.\n\nMy question is: has anyone else seen this, and is there an easy way to get rid\nof these messages?\n\nPlease reply by e-mail to hughm@inmos.co.uk.\n\nHugh McIntyre.\nINMOS Ltd., Bristol, UK.\n\n(BTW: SunOS 4.0.3, X11R5, mwm).\n\nPS: I know I can redirect output of the relevant commands to /dev/null - I'm\n    looking for a more general solution).\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 990, "properties": {"category": "talk.religion.misc", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 17\n\nIn article <1qjbn0$na4@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n\n\n>Really?  You don't know what objective value is?  If I offered the people\n>of the U.S., collectively, $1 for all of the land in America, would that \n>sound like a good deal?  \n\nThat happens to be a subjective example that the people of the\nUS would happen to agree on.  Continue to move the price up; \nat some point a few people would accept then more then more until \nprobably all would accept at a high enough number.\n\nEndpoints of a subjective scale are not the given homes of \nobjective viewpoints.\n\n-jim halat\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 991, "properties": {"category": "comp.windows.x", "text": "From: davesimp@soda.berkeley.edu (David Simpson)\nSubject: Trying to find papers by Rosenthal\nArticle-I.D.: agate.1r7k7o$feh\nOrganization: UC Berkeley, CS Undergraduate Association\nLines: 29\nNNTP-Posting-Host: soda.berkeley.edu\n\nI have the March/April version of the X Journal open in front of me.\n\nI'll be working on programming x-clients this summer, and since I don't have\nmuch experience with programming X, I thought this issue might be helpful\nas it has a section on debugging, and a section on the 40 most common errors\nin programming X.\n\nAt the end of the errors section, there are the following references for\ntutorials on X programming style.  They are:\n\nRosenthal, David -   A simple X11 client program\n  Proceedings of the Winter 1988 Usenix Conference, 1988.\n\nLemke, D., and Rosenthal, D. -  Visualizing X11 clients\n  Proceedings of the Winter 1989 Usenix Conference, 1989.\n\n\nDoes anyone know where I could find these in printed or (preferably)\nelectronic form?\n\nOr can you suggest any net resources devoted to the introduction to\nprogramming X (I'll be looking at the bookstore for books, so I am really\nonly asking about what I can find on the net.)\n\nThanks,\n\nDavid Simpson\n\ndavesimp@soda.berkeley.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 992, "properties": {"category": "talk.politics.misc", "text": "From: mdouglas@netcom.com (Hokh'Ton)\nSubject: Re: race and violence\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nDistribution: usa\nLines: 93\n\nIn <1993Apr13.212441.26562@gtx.com> al@gtx.com (Alan Filipski) writes:\n\n>Even though this city (Phoenix) has a relatively small black\n>population, black people seem to be responsible for a disproportionate\n>amount of violent crime.  yesterday, black men robbed a cafeteria, beat\n>the employees for no apparent reason, and shot one dead, even though\n>they were being cooperative.  a few days ago, a car full of black men\n>opened fire on a car containing a young white couple and their baby,\n>possibly because they didn't like the way the man was driving.  the\n>baby was slightly injured.  These incidents are not even unusual.\n\n>even if a white person starts out without racial prejudice (as, after\n>all, we all do) and no one \"teaches\" them to be prejudiced, it's\n>sometimes hard to see how they can avoid becoming so, based on their\n>own observations and instinct for self-preservation.  We always taught\n>our children that racial prejudice is wrong (not only bad, but also\n>mistaken), but how do you counteract the effect of these kinds of\n>incidents?\n\n>what's the answer? how can we work against racial prejudice when\n>incidents like this keep fanning the flames?  what can we say to deny\n>that racial prejudice is a rational response to our environment?  is\n>it? should we?  Since the 60's, I have thought the only hope is through\n>integration based on ignoring race and treating each person as an\n>individual, but so many either preach divisiveness by emphasizing race\n>or validate racism by their actions. where does it lead?\n\n\n>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n> ( Alan Filipski,  GTX Corp,  2390 E. Camelback Road, Phoenix, AZ 85016, USA )\n> ( INTERNET: al@gtx.com      UUCP: uunet!gtx!al         PHONE: (602)224-8742 )\n>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\tAlan, you can start by teaching your children that the perpetrators\nof crimes no more represent the \"Black community\" than racist hateful Whites\nrepresent the majority culture (although there are many ethnic minorities\nwho have fallen into the very trap that you are struggling with, and believe\notherwise). The trap is the easy way out.\n\tFor yourself, I think it would be a good idea to realize that the\ndemographics related to the crimes you speak of have less to do with race,\nand much to do with socioeconomic status and disenfranchisement. You're\ngoing to find higher crime within *any* community comprised of *any* ethnic\ngroup or subgroup that has become dysfunctional, whatever the factors\nleading to that dysfunction. With ethnic minorities it is more usually than\nnot, as I said, socioeconomic disenfranchisement.\n\tIf, for example, you lived in an area where there were very few\nBlacks, but quite a few poor-for-generations Whites, you'd see the crime\nstatistics reflecting the dysfunction of those White people. Would you then\nworry about whther your children would begin to see Whites as undesireable\nor whatever? The trap springs into action when our innate compunction to\ndefine \"us\" and \"other\" raises its little voice. The trap becomes dangerous\nwhen we stop to listen to that little voice and stop thinking like rational\nhumans.\n\tIt's interesting that Blacks are traditionally seen as *the* or the\n*most* criminal element in many of our urban areas. I don't know the racial\nmakeup of Phoenix, so I can't speak to your situation. However, I live in\nSan Francisco, a city that loves to tout its \"ethnic diversity\". Here, we\nhave Black gangs, Hispanic gangs, Asian (yes, the \"model minority\") gangs,\nand even a few White gangs. The Asian gangs have become a particularly\ntroublesome element for law enforcement here, mainly due (I think) to their\npropensity for engaging in organized criminal activities. But ask people on\nthe street and they'll, 8-out-of-10 times, tell you that Black gangs and\ncrime are what they most fear. During the \"disturbance\" in Los Angeles last\nyear many of the rioters and looters were not Black. Some were even White! I\nremember being amazed at  television news scenes that showed looting mobs\nwhere there were maybe one or two Blacks at most! My perceptions, gleaned\nfrom TV news, were further corroborated by numerous friends and relatives\nthat live in Los Angeles. This may have been the country's first truly\nmulti-ethnic riot. Yet I know from face-to-face and online discussion that\nin the minds of America the popular perception is that it was a *Black*\nriot!\n\tIn closing, I'd like to say that you raise some interesting points\nthat really need discussion. Our country has spent too long ignoring the\nracism (and its attendant ills) that is very much a part of our culture. As\na people, we are afraid to face up to some hurtful truths, and the problem\nbecomes compounded *daily*. We cannot afford to do it much longer. I truly\nbelieve that the  well-being of ALL OF US depends on changing our current\ncourse of denial and repression.\n\tI wish you and your children, and all other people, of *all* colors,\nluck in avoiding the \"trap\". \n\tPeace, my brother.\n\t\t\tm.\n-- \n\n\n\n\n\tHokh'Ton\t:\tThe Crystal Wind is the Storm,\n  mdouglas@netcom.com\t:\t and the Storm is Data,\nMichael Douglas-Llyr\t:\t  and the Data is Life.\n\t\t\t:\t\t---Player's Litany (The Long Run)\n\t\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.048+0000", "event": "documents", "entityId": 993, "properties": {"category": "rec.sport.hockey", "text": "From: nlu@Xenon.Stanford.EDU (Nelson Lu)\nSubject: SHARKS REVIEW Part 3: Defensemen (21-45)\nOrganization: Computer Science Department, Stanford University.\nLines: 85\n\n#21\tPETER AHOLA\t\tSeason: 2nd\nAcquired:\t'92-93, trade with Pittsburgh for future considerations\nGrade:\t\tI (B)\n\nIt is way too early to tell about Ahola, who was acquired probably because the\nPenguins figured that they would lose him in the expansion draft.  Ahola had\nonly played 50 games this season (I think it's actually less; the San Jose\nMercury News may be in err here), 20 of them with the Sharks.  In the games he\nhas played, he appeared quite solid defensively, although he hasn't been\nspectacular, and his offense isn't anything to write home about (8 points);\nit's even possible that the trade may be for future considerations which turn\nout to be ... Peter Ahola.\n\n#24\tDOUG WILSON\t\tSeason: 16th\nAcquired:\t'91-92, trade with Chicago for RW Kerry Toporowski and\n\t\t2nd round pick in '92 entry draft\nGrade:\t\tI (B)\n\nI have often been accused of overly down on Wilson; I may have had too high\nexpectations for him, but his legs, knees, et al., are giving out.\nNevertheless, when he was playing, he exhibited a strong shooting and\nplaymaking abilities, even if he has lost a step on defense, which,\nunfortunately, he demonstrated this year as well, as at times he was slow to\ncatch the opponent forwards, and his offensive output was only good enough for\n2nd place on the team (20 points in 42 games).  But next year, which may be\nWilson's last, if he can stay healthy, he can still be a contributor.\n\n#29\tDEAN KOLSTAD\t\tSeason:\t2nd\nAcquired:\t'91-92, from Minnesota in dispersal draft\nGrade:\t\tI (C-/D+)\n\nIt's probably somewhat unfair for me to judge Kolstad on just a handful of\ngames (forgetting exact number, but no more than 15), but at age 25 he's\nquickly running out of time if he wants to make it to the NHL.  In those games,\nhe did not impress anyone; after generating 7 shots in the first period of\nthe first game he played, he scored just 2 points in his tenure up here with\nthe Sharks, and was even less impressive defensively, as he appeared awkward\nwith his movement and was prone to giveaways.  He needs to make a leap in\nhis level of performance to have any chance of making the team.\n\n#38\tPAT MACLEOD\t\tSeason: 2nd\nAcquired:\t'91-92, from Minnesota in dispersal draft\nGrade:\t\tI (?)\n\nMacLeod was on the roster a lot longer than Kolstad, but it appears to my\nmemory that he played less than Kolstad, because the Sharks were reluctant to\nuse him, but were even more reluctant to send him to the minors, figuring that\nhe wouldn't clear waivers; in fact, he has played the past 4-5 weeks with\nKansas City, but is still technically there on a rehabilitation assignment,\na \"rehab assignment\" that will include him playing in the Turner Cup playoffs.\nSince he has played so little, I can't even give a tentative grade on him, but\nhe demonstrated last year excellent offensive skills but terrible defensive\nskills.\n\n#41\tTOM PEDERSON\t\tSeason: 1st\nAcquired:\t'91-92, from Minnesota in dispersal draft\nGrade:\t\tI (B+)\n\nCalled up in the middle of the season when the defensive corps was decimated\nby injuries, Pederson impressed many Sharks fan here on net, including yours\ntruly.  He demonstrated very good offensive skills, scoring 20 points in\n43 games.  However, his size (5' 9\", 165 lbs.) is of concern, and soon after\nhe began to shine offensive did teams begin to push him around physically,\non both sides of the ice, although he had appeared fearless in his approach.\nBut to be successful, he probably needs to bulk up to have a fighting chance\non surviving against some of the bigger players in the league.\n\n#45\tCLAUDIO SCREMIN\t\tSeason: 1st\nAcquired:\t'91-92, from Minnesota in dispersal draft\nGrade:\t\tI (D+/D)\n\nHe played all of ~5 games in the league this year, but was thoroughly\numimpressive, just as he was at the end of last season; again, it may be a\nsmall sample, but just as in the case of Kolstad, Scremin, at age 25, is\nquickly running out of time.  He was not a contributor on either offense or\ndefense in the games he played with the Sharks.  The only notable thing that\nwill go down in Scremin's entry of league stats is probably the fact that he\nwas once traded for now Capitals goaltender Don Beaupre.\n\n===============================================================================\nGO CALGARY FLAMES!  Al MacInnis for Norris!  Gary Roberts for Hart and Smythe!\nGO EDMONTON OILERS!  Go for playoffs next year!  Stay in Edmonton!\n===============================================================================\nNelson Lu (claudius@leland.stanford.edu)\nrec.sport.hockey contact for the San Jose Sharks\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 994, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: whiles@nswc.navy.mil (William Scott Hiles x1568)\nSubject: Re: Tape Drive Problems\nReply-To: whiles@nswc.navy.mil\nOrganization: Naval Surface Warfare Center, Dahlgren Division\nLines: 62\n\nIn article 489@ux1.cso.uiuc.edu, husak@ux1.cso.uiuc.edu (Stephen R. Husak ) writes:\n>Please reply via e-mail since this is job related: \n>\n>I have a Colorado Jumbo back-up system at one of my places of \n>employment and it has eaten two tapes by winding the tape off the spool.\n>\n>Is there an easy fix or is the tape drive fried? Does it simply need \n>cleaning?\n>\n>Any and all comments will be appreciated!\n>\n>Stephen Husak\n>\n>-- \n>\"What am I trying to do, what am I trying to say, I'm not trying to tell you \n> anything you didn't know when you woke up today...\"\n>\t\t\t\t- Depeche Mode \"Nothing\" MUSIC FOR THE MASSES\n>-= Stephen R. Husak - husak@ux1.cso.uiuc.edu - Univerisity of Illinois\n\nDoes it do it to all tapes?  Were the two tapes that it unwound of the same\ntype from the same batch?  The reason I ask is that I bought some generic tapes\nthat did this and found that the tape markers were not fully punched out and\nhad closed the little marker hole.  It was only on a few tapes of a set.\n\nDid you open up the tape cartridge and put the tape back on the reels?\n\nIf you have not yet, open it up by removing the two screws on the bottom of\nthe tape cartridge and snap the plastic shell away from the metal base.  \nAs you are pulling the tape through the assembly try not to touch any more \nthan you have to.  As you are doing it, look for a couple of little holes in \nthe tape.  These are the marker holes which let the tape drive know when it is \nat the end of the tape.  The holes are spaced a couple of inches apart.  My best\nguess is that the drive finds the first marker and then stops on the second\nmarker?  \n\nAnyhow, If the tape has the holes, then check to see if the mirror on the tape\nis clean.  The function of the mirror is to detect the marker holes.  The\ntape drive shines a light at the mirror and has a pickup in the area where\nthe reflection would come out.  When the hole goes by, the pickup detects the \nlight that was allowed to pass and it knows when to stop.  If the mirror is dirty\nor out of alighment (unlikely since it is made into the case) you might have\na problem detecting the end of the tape.\n\nIf the tape drive does it on all tapes and the tapes all look good, then either\nthe pickup or the LED of the sensor system has failed or is dirty.  If you open\nthe drive door you will see the sensor assembly to the left of the R/W head\nassembly.  If it looks clean and nothing is in its way, then the drive may\nneed to be serviced.  It is possible that the LED is burned out or the sensor\nis out. \n\nIf it is still in warranty, you might be able to send it back to CMS for\nrepair.\n\n\n---\nScott Hiles\nwhiles@relay.nswc.navy.mil\n\nStandard disclaimer:\n  The opinions expressed are those of my own and do not necessarily \n  reflect those of the DOD or the Navy.  I accept full responsibility.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 995, "properties": {"category": "misc.forsale", "text": "From: pchang@ic.sunysb.edu (Pong Chang)\nSubject: Re: For Sale: Quicken 3.0 for the PC\nKeywords: Accounting, Checking, Quicken\nNntp-Posting-Host: libws4.ic.sunysb.edu\nOrganization: State University of New York at Stony Brook\nLines: 18\n\nIn article <1pma84$hpk@suntan.ec.usf.edu> boneham@sunburn.ec.usf.edu. (Kevin Boneham (CH)) writes:\n>In article <1pgvp1INN5ej@phakt.usc.edu> khoh@usc.edu (Oliver Muoto) writes:\n>>I have for sale Quicken 3.0 (PC Version) that allows you to balance\n>                         ^^^\n>i assume you get new releases earlier than we do here? last i saw, version\n>2.0 was the latest.\n\nHe is probably referring to the DOS version.. the dos versions is up\nto like version 6 i think.  The window version just came out recently\nso it is only up to like version 2 or something.\n\n-- \n**********************************************************************\nC_ommon  \tpchang@ic.sunysb.edu \t\t\nS_ense\t\tState University of New York @ Stony Brook \nE_ngineer\t\n**********************************************************************\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 996, "properties": {"category": "sci.med", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Re: Good Grief!  (was Re: Candida Albicans: what is it?)\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 32\n\nIn article dyer@spdcc.com (Steve Dyer) writes:\n>In article noring@netcom.com (Jon Noring) writes:\n\nGood grief again.\n\nWhy the anger?  I must have really touched a raw nerve.\n\nLet's see:  I had symptoms that resisted all other treatments.  Sporanox\ntotally alleviated them within one week.  Hmmm, I must be psychotic.  Yesss!\nThat's it - my illness was all in my mind.  Thanks Steve for your correct\ndiagnosis - you must have a lot of experience being out there in trenches,\ntreating hundreds of patients a week.  Thank you.  I'm forever in your\ndebt.\n\nJon\n\n(oops, gotta run, the men in white coats are ready to take me away, haha,\nto the happy home, where I can go twiddle my thumbs, basket weave, and\nmoan about my sinuses.)\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 997, "properties": {"category": "comp.graphics", "text": "From: rws2v@uvacs.cs.Virginia.EDU (Richard Stoakley)\nSubject: Need a good concave -> convex polygon algorithm\nOrganization: University of Virginia Computer Science Department\nLines: 6\n\n\tWe need a good concave ->convex polygon conversion routine.\nI've tried a couple without much luck.  Please E-mail responses and I\nwill post a summary of any replies.  Thank you.\n\nRichard Stoakley\nrws2v@uvacs.cs.Virginia.EDU\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 998, "properties": {"category": "soc.religion.christian", "text": "From: creps@lateran.ucs.indiana.edu (Stephen A. Creps)\nSubject: Re: quality of Catholic liturgy\nOrganization: Indiana University\nLines: 72\n\nIn article <Apr.10.05.30.16.1993.14313@athos.rutgers.edu> jemurray@magnus.acs.ohio-state.edu (John E Murray) writes:\n>Example.  Last Sunday (Palm Sunday) we went to the local church.  Usually\n>on Palm Sunday, the congregation participates in reading the Passion, taking\n>the role of the mob.  The theology behind this seems profound--when we say\n>\"Crucify him\" we mean it.  We did it, and if He came back today we'd do it\n>again.  It always gives me chills.  But last week we were \"invited\" to sit\n>during the Gospel (=Passion) and _listen_.  Besides the Orwellian \"invitation\", \n\n   On Palm Sunday at our parish, we were \"invited\" to take the role of\nJesus in the Passion.  I declined to participate.  Last year at the\nliturgy meeting I pointed out how we crucify Christ by our sins, so\ntherefore it is appropriate that we retain the role of the crowd, but\nto no avail.\n\n>musicians, readers, and so on.  New things are introduced in the course of the\n>liturgy and since no one knows what's happening, the new things have to be\n>explained, and pretty soon instead of _doing_ a lot of the Mass we're just\n>sitting there listening (or spacing out, in my case) to how the Mass is about\n>to be done.  In my mind, I lay the blame on liturgy committees made up of lay\n>\"experts\", but that may not be just.  I do think that a liturgy committee has a\n>bias toward doing something rather than nothing--that's just a fact of\n>bureaucratic life--even though a simpler liturgy may in fact make it easier for\n>people to be aware of the Lord's presence.\n\n   As a member of a liturgy committee, I can tell you that the problem\nis certain people dominating, who want to try out all kinds of\ninnovations.  The priests don't seem even to _want_ to make any\ndecisions of their own in many cases.  I guess it's easier to \"try\nsomething new\" than it is to refuse to allow it.\n\n   At our parish on Holy Thursday, instead of the priests washing feet\n(\"Who wants to get around people's feet,\" according to one of our\npriests) the congregation was \"invited\" to come up and help wash one\nanother's hands.\n\n   The symbolism of this action distressed me, and again I refused to\nparticipate.  I thought that if we were to have to come up with\nrubrics for this liturgical action (i.e. \"Body of Christ\" -- \"Amen\"\nfor receiving Communion), that they could be \"I am not responsible for\nthe blood of this man.\"\n\n   Also for part of the Eucharistic Prayer (\"Blessed are You, God of\nall creation...\") was substituted some text read by a lay couple.  The\npriest certainly should not have given this part of the Mass over to\nothers, and I was so disturbed that I declined to receive Communion\nthat night (we aren't required to anyway -- I instead offered up\nprayers for our priests and parish).\n\n>So we've been wondering--are we the oddballs, or is the quality of the Mass\n>going down?  I don't mean that facetiously.  We go to Mass every Thursday or\n>Friday and are reminded of the power of a very simple liturgy to make us aware \n>of God's presence.  But as far as the obligatory Sunday Masses...maybe I should \n>just offer it up :)  Has anyone else noticed declining congregational\n>participation in Catholic Masses lately?\n\n   The quality of the Mass has not changed.  Again, if it were to be\ncelebrated according to the rubrics set down by the Church, it would\nstill be \"liturgically\" beautiful.  The problem comes about from\npeople trying to be \"creative\" who are not.\n\n   I think the answer to your question on participation could be that\ngiven by Father Peter Stravinskas in answer to the question posed by\nthe title of Thomas Day's _Why Catholics Can't Sing_.  \"They don't\nwant to\" because of all this nonsense.\n\n   By the way, for any non-Catholics reading this, the problem does\nnot reflect bad liturgy by the Catholic Church, but by those who are\ndisobedient to the Church in changing it on their own \"authority.\"\n\n-\t-\t-\t-\t-\t-\t-\t-\t-\t-\nSteve Creps, Indiana University\ncreps@lateran.ucs.indiana.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 999, "properties": {"category": "sci.crypt", "text": "From: rlglende@netcom.com (Robert Lewis Glendenning)\nSubject: Don't fight Clipper Chip, subvert or replace it !\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nDistribution: na\nLines: 35\n\nClipper Chip is a response to the fact that there is no business\nor professional body in a position to establish a standard and\nprovide chipsets to implement it for analog or digial transmission\nsystems.\n\nRSA might be in position to do it, if they had active cooperation of\na couple of manufacturers of cellular phones or desktop phones.\n\nLarge companies in the voice/data comm business are out, because they\nall have contracts with the gov which would be used to pressure them.\n\nIf we, as professionals in crypto organizations, EFF, etc. were to\nput our collective minds and interests toward establishing a\ncrypto standard for transmission, and getting our companies to\nimplement it, we might avoid government control.\n\nOtherwise, I think it will happen to us by default.  Gov isn't probably\nstrong enough or foolish enough to prevent strong crypt.  They\nare strong enough, and we may be foolish enough, to push through\nthe Clipper Chip.\n\nIs RSA independt of the gov enough to spearhead this?  I, for one,\nwould *gladly* pay royalties via purchasing secure phones.\n\nIf not this, we should provide an algorithm which can be implemented\nin either SW or HW and publish it, then push to make it the defacto\nstandard in the way that PGP and RIPEM are becoming such.\n\nWe are opposing, charging the bunker.  We should be nimble and clever.\nThe gov is strong, not clever.\n\nLew\n-- \nLew Glendenning\t\trlglende@netcom.com\n\"Perspective is worth 80 IQ points.\"\tNiels Bohr (or somebody like that).\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1000, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sat@eng.tridom.com (Stephen Thomas)\nSubject: Re: How can I use the mouse in NON-Windows applications under MS-WINDOWS ?\nNntp-Posting-Host: nut.eng.tridom.com\nReply-To: sat@eng.tridom.com\nOrganization: AT&T Tridom\nLines: 42\n\nIn article 12328@ucsu.Colorado.EDU, gonzaled@ucsu.Colorado.EDU (LGV/MC) writes:\n>kasajian@netcom.com (Kenneth Kasajian) writes:\n>\n>>wnkretz@ikesg1.energietechnik.uni-stuttgart.de (Oliver Kretzschmar) writes:\n>\n>\n>\n>>>   Hey,\n>\n>>>   could somebody tell me, how it is possible to work with the mouse\n>>>   in a NON-Windows application, which runs in an window. We use\n>>>   MS-WINDOWS 3.1 and have CLIPPER applications. Exists there any\n>>>   routines or something else ? Please mail me your informations.\n>\n>>>   Thanks for your efforts,\n>\n>>>     Oliver\n>>>-- \n>>> NAME : O.Kretzschmar                      Inst.IKE / University Stuttgart\n>>> PHONE: +49 711 685 2130                           Pfaffenwaldring 31\n>>> FAX  : +49 711 685 2010                            7000 Stuttgart 80\n>>> EMAIL: wnkretz@ikesg1.energietechnik.uni-stuttgart.de\n>\n>>Very simple.  You have to have the MOUSE.COM or MOUSE.SYS loaded in DOS\n>>before you run Windows.  Note that you don't need to have these files loaded\n>>to use the mouse in Windows.\n>\n>One addition to this... I don't know if it applies to everybody.  For my\n>(Microsoft 400dpi) mouse to work with windowed DOS apps, I had to use the\n>driver that came with Windows (Version 8.20).  8.1 didn't allow me to do\n>it for some reason.\n>\n\nI could never find the Microsoft mouse driver on my Windows 3.1 installation\ndisks, but DOS 6.0 also has version 8.20 of MOUSE.COM.\n\n\n---\n\nStephen Thomas   AT&T Tridom   (404-514-3522)\nemail: sat@eng.tridom.com, attmail!tridom!sat\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1001, "properties": {"category": "sci.crypt", "text": "From: jim@rand.org (Jim Gillogly)\nSubject: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nOrganization: Banzai Institute\nLines: 19\nNntp-Posting-Host: mycroft.rand.org\n\nMay as well look at one piece of this at a time.  This paragraph:\n\n>To demonstrate the effectiveness of this new technology, the\n>Attorney General will soon purchase several thousand of the new\n>devices.  In addition, respected experts from outside the\n>government will be offered access to the confidential details of\n>the algorithm to assess its capabilities and publicly report\n>their findings.\n\nmeans they aren't planning to make it public, as was done with DES.  As it\nsays in both sci.crypt FAQs, there's no way we are going to achieve the\nsame level of comfort with Clipper that we finally have with DES if we\ncan't actually get our hands on the bits and watch them flow around.  Even\nthe best experts aren't going to think of everything: look how long it\ntook Biham and Shamir to get a handle on just how good DES is... and for\nall we know there's still more to learn.\n-- \n\tJim Gillogly\n\tTrewesday, 25 Astron S.R. 1993, 17:10\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1002, "properties": {"category": "sci.med", "text": "From: euclid@mrcnext.cso.uiuc.edu (Euclid K.)\nSubject: Re: accupuncture and AIDS\nOrganization: University of Illinois at Urbana\nLines: 18\n\naliceb@tea4two.Eng.Sun.COM (Alice Taylor) writes:\n\n>A friend of mine is seeing an acupuncturist and\n>wants to know if there is any danger of getting\n>AIDS from the needles.\n\n\tAsk the practitioner whether he uses the pre-sterilized disposable\nneedles, or if he reuses needles, sterilizing them between use.  In the\nformer case there's no conceivable way to get AIDS from the needles.  In\nthe latter case it's highly unlikely (though many practitioners use the\ndisposable variety anyway).\n\neuclid\n--\nEuclid K.       standard disclaimers apply\n\"It is a bit ironic that we need the wave model [of light] to understand the\npropagation of light only through that part of the system where it leaves no\ntrace.\"  --Hudson & Nelson (_University_Physics_)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1003, "properties": {"category": "comp.graphics", "text": "From: zyeh@caspian.usc.edu (zhenghao yeh)\nSubject: Ellipse Again\nOrganization: University of Southern California, Los Angeles, CA\nLines: 39\nDistribution: world\nNNTP-Posting-Host: caspian.usc.edu\nKeywords: ellipse\n\n\nHi! Everyone,\n\nBecause no one has touched the problem I posted last week, I guess\nmy question was not so clear. Now I'd like to describe it in detail:\n\nThe offset of an ellipse is the locus of the center of a circle which\nrolls on the ellipse. In other words, the distance between the ellipse\nand its offset is same everywhere.\n\nThis problem comes from the geometric measurement when a probe is used.\nThe tip of the probe is a ball and the computer just outputs the\npositions of the ball's center. Is the offset of an ellipse still\nan ellipse? The answer is no! Ironically, DMIS - an American Indutrial\nStandard says it is ellipse. So almost all the software which was\nimplemented on the base of DMIS was wrong. The software was also sold\ninternationaly. Imagine, how many people have or will suffer from this bug!!!\nHow many qualified parts with ellipse were/will be discarded? And most\nimportantly, how many defective parts with ellipse are/will be used?\n\nI was employed as a consultant by a company in Los Angeles last year\nto specially solve this problem. I spent two months on analysis of this\nproblem and six months on programming. Now my solution (nonlinear)\nis not ideal because I can only reconstruct an ellipse from its entire\nor half offset. It is very difficult to find the original ellipse from\na quarter or a segment of its offset because the method I used is not\nanalytical. I am now wondering if I didn't touch the base and make things\ncomplicated. Please give me a hint.\n\nI know you may argue this is not a CG problem. You are right, it is not.\nHowever, so many people involved in the problem \"sphere from 4 poits\".\nWhy not an ellipse? And why not its offset?\n\nPlease post here and let the others share our interests \n(I got several emails from our netters, they said they need the\nsummary of the answers).\n\nYeh\nUSC\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1004, "properties": {"category": "comp.sys.mac.hardware", "text": "From: blast@nntp.crl.com (Tim Keanini)\nSubject: ATTN: 160,165c,180 and DUO owners!!!\nLines: 11\nNNTP-Posting-Host: crl.com\nSummary: buzzing\nKeywords: buzz\n\nBe very careful when you plug in a external monitor and a external speaker.\nMake sure that all the power cords are in the same strip.  If you don't you\ntake a chance of having a very bad audio buzz.  This is caused be a \"ground loop\" and the only way of getting rid of this loud buzz is to make sure that you \nhave a common ground.                                \nMake sure that all the power cords are going in to the same strip or off the \nsame outlet.  This will assure you of a common ground.\n\nTim Keanini           Sound Designer\n<timk@broder.com>       Broderbund Software\n<blast@crl.com>\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1005, "properties": {"category": "sci.med", "text": "From: rind@enterprise.bih.harvard.edu (David Rind)\nSubject: Re: erythromycin\nOrganization: Beth Israel Hospital, Harvard Medical School, Boston Mass., USA\nLines: 11\nNNTP-Posting-Host: enterprise.bih.harvard.edu\n\nIn article <47974@sdcc12.ucsd.edu> wsun@jeeves.ucsd.edu (Fiberman) writes:\n>Is erythromycin effective in treating pneumonia?\n\nIt depends on the cause of the pneumonia.  For treating bacterial\npneumonia in young otherwise-healthy non-smokers, erythromycin\nis usually considered the antibiotic of choice, since it covers\nthe two most-common pathogens: strep pneumoniae and mycoplasma\npneumoniae.\n-- \nDavid Rind\nrind@enterprise.bih.harvard.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1006, "properties": {"category": "comp.graphics", "text": "From: hugo@hydra.unm.edu (patrice cummings)\nSubject: polygon orientation in DXF?\nOrganization: University of New Mexico, Albuquerque\nLines: 21\nNNTP-Posting-Host: hydra.unm.edu\n\n\nHi.  I'm writing a program to convert .dxf files to a database\nformat used by a 3D graphics program I've written.  My program stores\nthe points of a polygon in CCW order.  I've used 3D Concepts a \nlittle and it seems that the points are stored in the order\nthey are drawn.\n\nDoes the DXF format have a way of indicating which order the \npoints are stored in, CW or CCW?  Its easy enough to convert,\nbut if I don't know which way they are stored, I dont know \nwhich direction the polygon should be visible from.\n\nIf DXF doesn't handle this, can anyone recommend a workaround?\nThe best I can think of is to create two polygons for each one\nin the DXF file, one stored CW and the other CCW.  But that\ndoubles the number of polygons and decreases speed...\n\nThanks in advance for any help,\n\nPatrice\nhugo@hydra.unm.edu \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1007, "properties": {"category": "rec.autos", "text": "From: jkjec@westminster.ac.uk (Shazad Barlas)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: University of Westminster\nDistribution: usa\nLines: 8\n\nDumbest options? Well here in the UK, BMW offer a 'no-smokers' option...\nIt just means they take the fag lighter out.... big deal....\n\nBTW - I just bought a Honda CRX F1..... its neat... did consider an MR2 targa,\nMX5 (you guys call it Miata?).... but that CRX just one my heart with that \nbody kit and 8-spokes.... \n\nps: is Richard out there somewhere?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1008, "properties": {"category": "comp.graphics", "text": "From: Peter.vanderveen@visser.el.wau.nl  (Peter van der Veen)\nSubject: Re: Fonts in POV??\nLines: 30\nOrganization: Wageningen Agricultural University\nX-Newsreader: FTPNuz (DOS) v1.0\n\nIn Article <1qg9fc$et9@wampyr.cc.uow.edu.au> \"g9134255@wampyr.cc.uow.edu.au (Coronado Emmanuel Abad)\" says:\n> \n> \n> \tI have seen several ray-traced scenes (from MTV or was it \n> RayShade??) with stroked fonts appearing as objects in the image.\n> The fonts/chars had color, depth and even textures associated with\n> them.  Now I was wondering, is it possible to do the same in POV??\n> \n> \n> Thanks,\n> \n> Noel\n> \nYes, there are serveral programs which can convert font files (eq the Borland\nfonts) to objects consisting of spheres, cones etc. \nI've used a program (forgot its name/place, but i can look for it) which\nconverted these Borland fonts to three different raytracers. Vivid, POV and\nPolyray (which i like more (more flexibel/faster/use of expressions etc).\nThe program has a lot nice features.\nSo if interested give me a mail.\n\n /*---------*\\*/*-------------------------------------------*\\\n *|  ____/|  *|*    PETER.VANDERVEEN@VISSER.EL.WAU.NL       |*\n *|  \\ o.O|  *|*    Department of Genetics                  |*\n *|   =(_)=  *|*    Agricultural University                 |*\n *|     U    *|*    Wageningen, The Netherlands             |*\n \\*---------*/*\\*-------------------------------------------*/\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1009, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Ed must be a Daemon Child!!\nFrom: REE700A@MAINE.MAINE.EDU\n <1993Apr2.003029.1962@adobe.com><1993Apr2.163021.17074@linus.mitre.org>\nOrganization: University of Maine System\nLines: 8\n\nEd's heading out on the highway?\n\nDid he finally buy a bike or is he a passanger?\n\nJeff Andle   DoD #3005  1976 KZ900     REE700A@MAINE.MAINE.EDU\n\nIntermittentNet access arranged through Bowdoin College.  Please reply\nvia e-mail, since a followup might expire before I see the Net again.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1010, "properties": {"category": "alt.atheism", "text": "From: kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran)\nSubject: We don't need no stinking subjects!\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: The Loyal Order Of Keiths.\nLines: 93\n\nIn article <1ql1avINN38a@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n>kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n>>keith@cco.caltech.edu (Keith Allan Schneider) writes:\n>>>kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n>\n>>No, if you're going to claim something, then it is up to you to prove it.\n>>Think \"Cold Fusion\".\n>\n>Well, I've provided examples to show that the trend was general, and you\n>(or others) have provided some counterexamples, mostly ones surrounding\n>mating practices, etc.  I don't think that these few cases are enough to\n>disprove the general trend of natural morality.  And, again, the mating\n>practices need to be reexamined...\n\nSo what you're saying is that your mind is made up, and you'll just explain\naway any differences at being statistically insignificant?\n\n>>>Try to find \"immoral\" non-mating-related activities.\n>>So you're excluding mating-related-activities from your \"natural morality\"?\n>\n>No, but mating practices are a special case.  I'll have to think about it\n>some more.\n\nSo you'll just explain away any inconsistancies in your \"theory\" as being\n\"a special case\".\n\n>>>Yes, I think that the natural system can be objectively deduced with the\n>>>goal of species propogation in mind.  But, I am not equating the two\n>>>as you so think.  That is, an objective system isn't necessarily the\n>>>natural one.\n>>Are you or are you not the man who wrote:\n>>\"A natural moral system is the objective moral system that most animals\n>> follow\".\n>\n>Indeed.  But, while the natural system is objective, all objective systems\n>are not the natural one.  So, the terms can not be equated.  The natural\n>system is a subset of the objective ones.\n\nYou just equated them.  Re-read your own words.\n\n>>Now, since homosexuality has been observed in most animals (including\n>>birds and dolphins), are you going to claim that \"most animals\" have\n>>the capacity of being immoral?\n>\n>I don't claim that homosexuality is immoral.  It isn't harmful, although\n>it isn't helpful either (to the mating process).  And, when you say that\n>homosexuality is observed in the animal kingdom, don't you mean \"bisexuality?\"\n\nA study release in 1991 found that 11% of female seagulls are lesbians.\n\n>>>Well, I'm saying that these goals are not inherent.  That is why they must\n>>>be postulates, because there is not really a way to determine them\n>>>otherwise (although it could be argued that they arise from the natural\n>>>goal--but they are somewhat removed).\n>>Postulate: To assume; posit.\n>\n>That's right.  The goals themselves aren't inherent.\n>\n>>I can create a theory with a postulate that the Sun revolves around the\n>>Earth, that the moon is actually made of green cheese, and the stars are\n>>the portions of Angels that intrudes into three-dimensional reality.\n>\n>You could, but such would contradict observations.\n\nNow, apply this last sentence of your to YOUR theory.  Notice how your are\ncontridicting observations?\n\n>>I can build a mathematical proof with a postulate that given the length\n>>of one side of a triangle, the length of a second side of the triangle, and\n>>the degree of angle connecting them, I can determine the length of the\n>>third side.\n>\n>But a postulate is something that is generally (or always) found to be\n>true.  I don't think your postulate would be valid.\n\nYou don't know much math, do you?  The ability to use SAS to determine the\nlength of the third side of the triangle is fundemental to geometry.\n\n>>Guess which one people are going to be more receptive to.  In order to assume\n>>something about your system, you have to be able to show that your postulates\n>>work.\n>\n>Yes, and I think the goals of survival and happiness *do* work.  You think\n>they don't?  Or are they not good goals?\n\nGoals <> postulates.\n\nAgain, if one of the \"goals\" of this \"objective/natural morality\" system\nyou are proposing is \"survival of the species\", then homosexuality is\nimmoral.\n--\n=kcochran@nyx.cs.du.edu | B(0-4) c- d- e++ f- g++ k(+) m r(-) s++(+) t | TSAKC=\n=My thoughts, my posts, my ideas, my responsibility, my beer, my pizza.  OK???=\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1011, "properties": {"category": "comp.sys.mac.hardware", "text": "From: oueichek@imag.fr (Ibaa Oueichek)\nSubject: Cache card for IIsi\nNntp-Posting-Host: gram3\nOrganization: IMAG Institute, University of Grenoble, France\nX-Newsreader: Tin 1.1 PL5\nLines: 20\n\n\tI'm looking for a Cache card for my IIsi. I can spend $250 Max for it,\n\twhat i need is 64 kb cache with a fpu socket and a dual slot adapter.\n\tOr at least a passe_through connector so i can keep my graphic card.\n\tI need your advice about the best card i can buy. How much performance\n\tincrease i should expect, does the performance increase between the\n\t32 and 64 kb Cache worths the price difference ?. And what's the best\n\tprice i can get for such a card (i really need to spare each possible\n\t$). \n\tI have an Ethernet card for the LC with fpu. I don't think it would\n\twork for the IIsi but the fpu is socketed. Do you think i can take the\n\tfpu out of the card and put it in the empty fpu socket ?. Would it work\n\tat 20 Mhz ?. If not, how much should i pay for an extra fpu ?.\n\n--\nSham(u) ya tha (s)seif(u) lam yaghib(i) | Ibaa Oueichek. oueichek@imag.imag.fr\n    Ya jamal(al) majd(i) fi(l) kutub(i) |Lab de Genie Informatique (LGI). \nKablak(i) (t)tareekh(u) fi thulmaten    |IMAG, INPG. \n    Baadak(i) staula ala (sh)shuhub(i)  |46, Av. Felix Viallet, Grenoble. \n\t\t\t\t\t\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1012, "properties": {"category": "sci.crypt", "text": "From: caronni@nessie.cs.id.ethz.ch (Germano Caronni)\nSubject: Re: More technical details\nOrganization: Swiss Federal Institute of Technology (ETH), Zurich, CH\nLines: 107\n\nIn article <1993Apr19.134346.2620@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n>Here are some corrections and additions to Hellman's note, courtesy of\n>Dorothy Denning.  Again, this is reposted with permission.\n>\n>Two requests -- first, note the roles of S1 and S2.  It appears to me\n>and others that anyone who knows those values can construct the unit\n>key.  And the nature of the generation process for K1 and K2 is such\n>that neither can be produced alone.  Thus, the scheme cannot be\n>implemented such that one repository generates the first half-key, and\n>another generates the second.  *That* is ominous.\n>\n>Second -- these postings are not revealed scripture, nor are they\n>carefully-crafted spook postings.  Don't attempt to draw out hidden\n>meanings (as opposed to, say, the official announcements of Clipper).\n>Leave Denning out of this; given Hellman's record of opposition to DES,\n>which goes back before some folks on this newsgroup knew how to read, I\n>don't think you can impugn his integrity.\n>\n>Oh yeah -- the folks who invented Clipper aren't stupid.  If you think\n>something doesn't make sense, it's almost certainly because you don't\n>understand their goals.\n>\n\nThis is an addition (posted with permission) to some tech. details of\ncliper. They enligthen ??? the use of S1 and S2 for keygeneration.\n-------------------------------------------\nDate: Mon, 19 Apr 93 08:51:57 EDT\nFrom: denning@cs.cosc.georgetown.edu (Dorothy Denning)\nSubject: Re:  Clipper Chip\n\nI just had another conversation with NSA to clarify some of the features\nof Clipper.  Please feel free to distribute this and my other messages\non Clipper.\n\nThe name of the encryption algorithm is \"Skipjack.\"\n\nMartin Hellman had written\n\n                and the serial number of the unit added to produce a three part\n                message which will then be encrypted under the system key SK\n                producing\n\n                     E{ E[M; K], E[K; UK], serial number;  SK}\n\nTo which I responded:\n\n        My understanding is that E[M; K] is not encrypted under SK (called the\n        \"family key\") and that the decrypt key corresponding to SK is held by\n        law enforcement.  Does anyone have first hand knowledge on this?\n\nI was correct in that E[M; K] is not encrypted under SK.  However, Skipjack\nbeing a single-key system, there is, of course, not a separate decrypt key\nfor the family key SK.\n\n        The unit key, also called the \"chip key,\" is generated from the\n        serial number N as follows.  Let N1, N2, and N3 be 64 bit blocks\n        derived from N, and let S1 and S2 be two 80-bit seeds used as keys.\n        Compute the 64-bit block\n\n                R1 = E[D[E[N1; S1]; S2]; S1]\n\n        (Note that this is like using the DES in triple encryption mode with\n        two keys.)  Similarly compute blocks R2 and R3 starting with N2 and N3.\n        (I'm unlear about whether the keys S1 and S2 change.  The fact that\n        they're called seeds suggests they might.)  Then R1, R2, and R3 are\n        concatenated together giving 192 bits.  The first 80 bits  form K1 and\n        the next 80 bits form K2.  The remaining bits are discarded.\n\nThe seeds S1 and S2 do not change.   The whole process is performed on\na laptop computer, and S1 and S2 are supplied by two independent people\nso that no one person knows both.  The same S1 and S2 are used during\nan entire \"programming session\" to generate keys for a stream of serial\nnumbers.  Everything is discarded at the end (the computer could be\nthrown out if desired).\n\nThe serial number is 30 bits and the values N1, N2, and N3 are formed\nby padding the serial number with fixed 34-bit blocks (separate padding\nfor each value).\n\nThe resulting keys K1 and K2 are output onto separate floppy disks, paired\nup with their serial number.  Each pair is stored in a separate file.  The\nfloppy disks are taken away by two separate people on behalf of the two\nescrow agencies.\n\nDorothy Denning\ndenning@cs.georgetown.edu\n\n--------------------------------------------------------\nI am sure more technical detail will be known when time goes by.\nPlease remark, that in posting this, I do not automatically agree\nwith it's contents and implications. So don't swamp my mailbox :-)\n\nI just think this is an valuable addition to the less than technical\ndiscussion that is rising here. And, no, I don't mind if you call\nS1 and S2 'backdoor', as I could imagine the key-generation process\nworking without these seeds and the dependency of K1,K2 from the\nSerial-Number.\n\n\nFriendly greetings,\n\n\tGermano Caronni\n-- \nInstruments register only through things they're designed to register.\nSpace still contains infinite unknowns.\n                                                              PGP-Key-ID:341027\nGermano Caronni caronni@nessie.cs.id.ethz.ch   FD560CCF586F3DA747EA3C94DD01720F\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1013, "properties": {"category": "sci.med", "text": "From: jge@cs.unc.edu (John Eyles)\nSubject: diet for Crohn's (IBD)\nOrganization: The University of North Carolina at Chapel Hill\nLines: 16\nDistribution: usa\nNNTP-Posting-Host: ceti.cs.unc.edu\n\n\nA friend has what is apparently a fairly minor case of Crohn's\ndisease.\n\nBut she can't seem to eat certain foods, such as fresh vegetables,\nwithout discomfort, and of course she wants to avoid a recurrence.\n\nHer question is: are there any nutritionists who specialize in the\nproblems of people with Crohn's disease ?\n\n(I saw the suggestion of lipoxygnase inhibitors like tea and turmeric).\n\nThanks in advance,\nJohn Eyles\njge@cs.unc.edu\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1014, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: Death Penalty (was Re: Political Atheists?)\nOrganization: Case Western Reserve University\nLines: 28\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1993Apr17.225127.25062@daffy.cs.wisc.edu> mccullou@snake2.cs.wisc.edu (Mark McCullough) writes:\n>You exagerate to the point of libel.  I gave only unpopular reasons\n>deliberately.  Or do you think that we should have let Iraq absorb Kuwait?\n>I could make the tired old 1939 Poland comparison, but I think you've\n>heard it.  But the principle aplies, never play a Chamberlain and\n>roll over to another country being invaded.  That only invites further \n>invasions.\n\n\tPerhaps we ought not to have supported a known genocidist?\n\tProvided him with weapon systems, tactical support, technology,\netc.\n\n\tWe made Suddam Hussein.\n\n\tWhat did Bush call him? Oh yes, an ally and a freind.\n\n\n---  \n\n  \" I'd Cheat on Hillary Too.\"\n\n   John Laws\n   Local GOP Reprehensitive\n   Extolling \"Traditional Family Values.\"\n\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.049+0000", "event": "documents", "entityId": 1015, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Israeli Expansion-lust\nOrganization: The Department of Redundancy Department\nLines: 13\n\nIn article <1993Apr14.224726.15612@bnr.ca> zbib@bnr.ca writes:\n>Jake Livni writes\n>> Sam Zbib writes\n\n[all deleted...]\n\nSam Zbib's posting is so confused and nonsensical as not to warrant a\nreasoned response.  We're getting used to this, too.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1016, "properties": {"category": "soc.religion.christian", "text": "From: uad1126@tdc.dircon.co.uk (Robert Palmer)\nSubject: Christian Parenting\nLines: 40\n\nHi I am a Sociology student and I am currently researching into \nyoung offenders.  I am looking at the way various groups of \nchildren are raised at home.  At the moment I am formlulating \ninformation on discipline within the Christian home.\n\nPlease, if you are a parent in this catagory can you email me \nyour response to the following questionaire.  All responses \nwill be treated confidentially and will only be used to prepare \nstats.\n\n1.  Ages & sexes of children\n\n2.  Do you spank your kids?\n\n3.  If so how often?\n\n4.  Do you use an implement to spank with? \n\n\n5. If you do not spank, what method of discipline do you use?\n\n6.  Your age?\n\n7.  Your location\n\n8.  While under the age of 16 did you ever commit a criminal \noffence?\n\n9.  How ere you disciplined as a kid\n\n\nThank you in advance for any reply you can make.  Please e-mail \nyour replies rather than post them on the newsgroup\n\n[I hope it is obvious that responses to this question are likely to\nhave serious problems when used for research purposes.  Our readers\nare not likely to be a random sample of Christians, and this form does\nnot contain enough information to act as a stratified sample.  Perhaps\nsomeone who is familiar with research methods might want to correspond\nwith him.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1017, "properties": {"category": "comp.graphics", "text": "From: osprey@ux4.cso.uiuc.edu (Lucas Adamski)\nSubject: Re: Fast polygon routine needed\nKeywords: polygon, needed\nOrganization: University of Illinois at Urbana-Champaign\nLines: 11\n\nIn article <1993Apr17.192947.11230@sophia.smith.edu> orourke@sophia.smith.edu (Joseph O'Rourke) writes:\n>In article <C5n3x0.B5L@news.cso.uiuc.edu> osprey@ux4.cso.uiuc.edu (Lucas Adamski) writes:\n>>This may be a fairly routine request on here, but I'm looking for a fast\n>>polygon routine to be used in a 3D game.\n>\n>\tA fast polygon routine to do WHAT?\n\nTo draw polygons of course.  Its a VGA mode 13h (320x200) game, done in C and\nASM.  I need a faster way to draw concave polygons that the method I have right\nnow, which is very slow.\n\t //Lucas.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1018, "properties": {"category": "rec.autos", "text": "From: kenyon@xqzmoi.enet.dec.com (Doug Kenyon (Stardog Champion))\nSubject: Re: Integra GSR (really about other cars)\nReply-To: kenyon@xqzmoi.enet.dec.com (Doug Kenyon (Stardog Champion))\nOrganization: Digital Equipment Corporation\nLines: 13\n\n\nIt's great that all these other cars can out-handle, out-corner, and out-\naccelerate an Integra.\n\nBut, you've got to ask yourself one question: do all these other cars have\na moonroof with a sliding sunshade?  No wimpy pop-up sunroofs or power\nsliding roofs that are opaque.  A moonroof that can be opened to the air,\nclosed to let just light in, or shaded so that nothing comes in.\n\nYou've just got to know what's important :^).\n\n-Doug\n'93 Integra GS\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1019, "properties": {"category": "talk.politics.guns", "text": "From: wdstarr@athena.mit.edu (William December Starr)\nSubject: Cost/Benefit Analysis  (was FBI Director's Statement...)\nOrganization: Northeastern Law, Class of '93\nLines: 23\nNNTP-Posting-Host: nw12-326-1.mit.edu\nIn-reply-to: costley@solo.eng.hou.compaq.com (Brett Costley)\n\n\nIn article <1993Apr20.212028.17463@twisto.eng.hou.compaq.com>, \ncostley@solo.eng.hou.compaq.com (Brett Costley) said:\n\n>> *sigh* I just DON'T understand why they couldn't have waited Koresh&Co\n>> out.  [jlpicard@austin.ibm.com]\n>\n> Uh, maybe because it was costing hundreds of thousands of dollars a\n> day to just sit and wait.\n\nYeah.  We don't want to spend too much money preserving lives, after\nall.  Escpecially when they're all just a bunch of crazy fanatic\ncultists anyway, instead of normal people.\n\n[The above is supposed to be dripping with sarcasm, but I'm too burned\nout right now (get it? \"burned out\" ha ha!) to tell if it's working.\nLook, folks, what David Koresh and his followers were was _broken_.  It\ntakes a certain amount of flexibility and insanity to survive in this\nworld and they didn't have enough of it and that wasn't their fault.  So\nplease stop dancing on their graves, okay?]\n\n-- William December Starr <wdstarr@athena.mit.edu>\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1020, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 06/15 - Constants and Equations\nKeywords: Frequently Asked Questions\nArticle-I.D.: cs.constants_733694246\nExpires: 6 May 1993 19:57:26 GMT\nDistribution: world\nOrganization: University of North Carolina, Chapel Hill\nLines: 189\nSupersedes: <constants_730956482@cs.unc.edu>\nNNTP-Posting-Host: mahler.cs.unc.edu\n\nArchive-name: space/constants\nLast-modified: $Date: 93/04/01 14:39:04 $\n\nCONSTANTS AND EQUATIONS FOR CALCULATIONS\n\n    This list was originally compiled by Dale Greer. Additions would be\n    appreciated.\n\n    Numbers in parentheses are approximations that will serve for most\n    blue-skying purposes.\n\n    Unix systems provide the 'units' program, useful in converting\n    between different systems (metric/English, etc.)\n\n    NUMBERS\n\n\t7726 m/s\t (8000)  -- Earth orbital velocity at 300 km altitude\n\t3075 m/s\t (3000)  -- Earth orbital velocity at 35786 km (geosync)\n\t6371 km\t\t (6400)  -- Mean radius of Earth\n\t6378 km\t\t (6400)  -- Equatorial radius of Earth\n\t1738 km\t\t (1700)  -- Mean radius of Moon\n\t5.974e24 kg\t (6e24)  -- Mass of Earth\n\t7.348e22 kg\t (7e22)  -- Mass of Moon\n\t1.989e30 kg\t (2e30)  -- Mass of Sun\n\t3.986e14 m^3/s^2 (4e14)  -- Gravitational constant times mass of Earth\n\t4.903e12 m^3/s^2 (5e12)  -- Gravitational constant times mass of Moon\n\t1.327e20 m^3/s^2 (13e19) -- Gravitational constant times mass of Sun\n\t384401 km\t ( 4e5)  -- Mean Earth-Moon distance\n\t1.496e11 m\t (15e10) -- Mean Earth-Sun distance (Astronomical Unit)\n\n\t1 megaton (MT) TNT = about 4.2e15 J or the energy equivalent of\n\tabout .05 kg (50 gm) of matter. Ref: J.R Williams, \"The Energy Level\n\tof Things\", Air Force Special Weapons Center (ARDC), Kirtland Air\n\tForce Base, New Mexico, 1963. Also see \"The Effects of Nuclear\n\tWeapons\", compiled by S. Glasstone and P.J. Dolan, published by the\n\tUS Department of Defense (obtain from the GPO).\n\n    EQUATIONS\n\n\tWhere d is distance, v is velocity, a is acceleration, t is time.\n\tAdditional more specialized equations are available from:\n\n\t    ames.arc.nasa.gov:pub/SPACE/FAQ/MoreEquations\n\n\n\tFor constant acceleration\n\t    d = d0 + vt + .5at^2\n\t    v = v0 + at\n\t  v^2 = 2ad\n\n\tAcceleration on a cylinder (space colony, etc.) of radius r and\n\t    rotation period t:\n\n\t    a = 4 pi**2 r / t^2\n\n\tFor circular Keplerian orbits where:\n\t    Vc\t = velocity of a circular orbit\n\t    Vesc = escape velocity\n\t    M\t = Total mass of orbiting and orbited bodies\n\t    G\t = Gravitational constant (defined below)\n\t    u\t = G * M (can be measured much more accurately than G or M)\n\t    K\t = -G * M / 2 / a\n\t    r\t = radius of orbit (measured from center of mass of system)\n\t    V\t = orbital velocity\n\t    P\t = orbital period\n\t    a\t = semimajor axis of orbit\n\n\t    Vc\t = sqrt(M * G / r)\n\t    Vesc = sqrt(2 * M * G / r) = sqrt(2) * Vc\n\t    V^2  = u/a\n\t    P\t = 2 pi/(Sqrt(u/a^3))\n\t    K\t = 1/2 V**2 - G * M / r (conservation of energy)\n\n\t    The period of an eccentric orbit is the same as the period\n\t       of a circular orbit with the same semi-major axis.\n\n\tChange in velocity required for a plane change of angle phi in a\n\tcircular orbit:\n\n\t    delta V = 2 sqrt(GM/r) sin (phi/2)\n\n\tEnergy to put mass m into a circular orbit (ignores rotational\n\tvelocity, which reduces the energy a bit).\n\n\t    GMm (1/Re - 1/2Rcirc)\n\t    Re = radius of the earth\n\t    Rcirc = radius of the circular orbit.\n\n\tClassical rocket equation, where\n\t    dv\t= change in velocity\n\t    Isp = specific impulse of engine\n\t    Ve\t= exhaust velocity\n\t    x\t= reaction mass\n\t    m1\t= rocket mass excluding reaction mass\n\t    g\t= 9.80665 m / s^2\n\n\t    Ve\t= Isp * g\n\t    dv\t= Ve * ln((m1 + x) / m1)\n\t\t= Ve * ln((final mass) / (initial mass))\n\n\tRelativistic rocket equation (constant acceleration)\n\n\t    t (unaccelerated) = c/a * sinh(a*t/c)\n\t    d = c**2/a * (cosh(a*t/c) - 1)\n\t    v = c * tanh(a*t/c)\n\n\tRelativistic rocket with exhaust velocity Ve and mass ratio MR:\n\n\t    at/c = Ve/c * ln(MR), or\n\n\t    t (unaccelerated) = c/a * sinh(Ve/c * ln(MR))\n\t    d = c**2/a * (cosh(Ve/C * ln(MR)) - 1)\n\t    v = c * tanh(Ve/C * ln(MR))\n\n\tConverting from parallax to distance:\n\n\t    d (in parsecs) = 1 / p (in arc seconds)\n\t    d (in astronomical units) = 206265 / p\n\n\tMiscellaneous\n\t    f=ma    -- Force is mass times acceleration\n\t    w=fd    -- Work (energy) is force times distance\n\n\tAtmospheric density varies as exp(-mgz/kT) where z is altitude, m is\n\tmolecular weight in kg of air, g is local acceleration of gravity, T\n\tis temperature, k is Bolztmann's constant. On Earth up to 100 km,\n\n\t    d = d0*exp(-z*1.42e-4)\n\n\twhere d is density, d0 is density at 0km, is approximately true, so\n\n\t    d@12km (40000 ft) = d0*.18\n\t    d@9 km (30000 ft) = d0*.27\n\t    d@6 km (20000 ft) = d0*.43\n\t    d@3 km (10000 ft) = d0*.65\n\n\t\t    Atmospheric scale height\tDry lapse rate\n\t\t    (in km at emission level)\t (K/km)\n\t\t    -------------------------\t--------------\n\t    Earth\t    7.5\t\t\t    9.8\n\t    Mars\t    11\t\t\t    4.4\n\t    Venus\t    4.9\t\t\t    10.5\n\t    Titan\t    18\t\t\t    1.3\n\t    Jupiter\t    19\t\t\t    2.0\n\t    Saturn\t    37\t\t\t    0.7\n\t    Uranus\t    24\t\t\t    0.7\n\t    Neptune\t    21\t\t\t    0.8\n\t    Triton\t    8\t\t\t    1\n\n\tTitius-Bode Law for approximating planetary distances:\n\n\t    R(n) = 0.4 + 0.3 * 2^N Astronomical Units (N = -infinity for\n\t    Mercury, 0 for Venus, 1 for Earth, etc.)\n\n\t    This fits fairly well except for Neptune.\n\n    CONSTANTS\n\n\t6.62618e-34 J-s  (7e-34) -- Planck's Constant \"h\"\n\t1.054589e-34 J-s (1e-34) -- Planck's Constant / (2 * PI), \"h bar\"\n\t1.3807e-23 J/K\t(1.4e-23) - Boltzmann's Constant \"k\"\n\t5.6697e-8 W/m^2/K (6e-8) -- Stephan-Boltzmann Constant \"sigma\"\n    6.673e-11 N m^2/kg^2 (7e-11) -- Newton's Gravitational Constant \"G\"\n\t0.0029 m K\t (3e-3)  -- Wien's Constant \"sigma(W)\"\n\t3.827e26 W\t (4e26)  -- Luminosity of Sun\n\t1370 W / m^2\t (1400)  -- Solar Constant (intensity at 1 AU)\n\t6.96e8 m\t (7e8)\t -- radius of Sun\n\t1738 km\t\t (2e3)\t -- radius of Moon\n\t299792458 m/s\t  (3e8)  -- speed of light in vacuum \"c\"\n\t9.46053e15 m\t  (1e16) -- light year\n\t206264.806 AU\t  (2e5)  -- \\\n\t3.2616 light years (3)\t --  --> parsec\n\t3.0856e16 m\t (3e16)  -- /\n\n\nBlack Hole radius (also called Schwarzschild Radius):\n\n\t2GM/c^2, where G is Newton's Grav Constant, M is mass of BH,\n\t\tc is speed of light\n\n    Things to add (somebody look them up!)\n\tBasic rocketry numbers & equations\n\tAerodynamical stuff\n\tEnergy to put a pound into orbit or accelerate to interstellar\n\t    velocities.\n\tNon-circular cases?\n\n\nNEXT: FAQ #7/15 - Astronomical Mnemonics\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1021, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dwayne@stratsft.uucp (Dwayne Bailey)\nSubject: Need help identifying Serial board\nOrganization: Strategic Software, Redford, Michigan\nLines: 26\n\nI need some help with a multi port serial board of unknown origin.  I'm\nhoping someone knows what this board is, or, even better, what the various\nswitches and jumbers are used for.\n\nAnyway, here's  description of the card:  It is a 16-bit card, although\nI noticed that none of the contacts in the 16-bit extension are connected\nto anything.  It has 4 NS16550AN chips in sockets, and 4 corresponding\nconnecters labeled COM1 - COM4.  There is also an external female connector\nwith 37 pins.  There are 8 banks of 8 switches, 2 banks of 4 switches, and\n7 jumpers.  I believe that I have determined, by following traces, that\nSW5 and SW6 (12 switches in all) control the interrupt level for each of\nthe COM ports.  SW5[1-4] are for IRQ3, SW5[5-8] are for IRQ4, and SW6[1-4]\nare for IRQ5.  The other switches are beyond my meager ability to follow.\n\t     \nThe only identification printed on the board is \"MULTI SERIAL PORT BOARD\"\nacross the bottom.  There is a box for serial number, but it is blank.\nImmediately below the words \"SERIAL NO\", but not in the box left for\nthe S/N, are the numbers \"1990 2 8\".\n\nAnyone have any clues?  Your help is greatly appreciated.\n\n-- \ndwayne@stratsft.UUCP       + \"We have ways to make you scream.\" \nDwayne Bailey              + -- Intel advertisement,\nStrategic Software         +  in the June 1989 Doctor Dobbs Journal\nRedford, Michigan          + \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1022, "properties": {"category": "comp.windows.x", "text": "From: oj@world.std.com (Oliver Jones)\nSubject: Re: Q: How to avoid XOpenDisplay hang?\nKeywords: Xlib\nArticle-I.D.: world.C531A0.M3I\nOrganization: Shawsheen Software\nLines: 18\n\nIn article <C512xr.3oy@skates.gsfc.nasa.gov> andy@ice.stx.com writes:\n>I'm writing 'xwall', a simple X version of 'wall', and I want it to\n>put a message up on each of a default list of displays.  The problem\n>is that XOpenDisplay hangs if one of the displays is currently\n>controlled by xdm (login screen). \n\nxdm does XGrabServer when it's running in secure mode (so do some\nscreen-locks).  There's really no simple way to tell this is the case.\n\nYou can take xdm out of secure mode;  probably not too cool.\n\nYou can wrap your call to XOpenDisplay in some code which solicts\na future SIGALRM and longjmps past the XOpenDisplay from the signal\nhandler.  An example of this can be seen in the xdm sources.\n\nNote that longjmping out of XOpenDisplay probably causes a memory\nleak;  any program functioning this way probably needs to exit() \nregularly.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1023, "properties": {"category": "talk.politics.guns", "text": "From: gt6511a@prism.gatech.EDU (COCHRANE,JAMES SHAPLEIGH)\nSubject: Re: Change of name ??\nOrganization: Georgia Institute of Technology\nLines: 35\n\nIn article <CMM.0.90.2.735315429.thomasp@holmenkollen.ifi.uio.no> thomasp@ifi.uio.no (Thomas Parsli) writes:\n:\n:\n:\t1. Make a new Newsgroup called talk.politics.guns.PARANOID or \n:\ttalk.politics.guns.THEY'R.HERE.TO.TAKE.ME.AWAY\n:\n:\t2. Move all postings about waco and burn to (guess where)..\n:\n:\t3. Stop posting #### on this newsgroup\n;\n:\tWe are all SO glad you're trying to save us from the evil \n:\tgoverment, but would you mail this #### in regular mail to\n:\tlet's say 1000 people ????\n:\t\n:\n:                        Thomas Parsli\nAnd everybody who talked about the evil arising in Europe was labeled \nreactionary in the late 1930's... after all, we could negotiate with Hitler and\ntrust him to keep his end of the bargain... at least that's what Stalin and\nChamberlin thought... I guess they forgot to teach you about your country being\noverrun by the Germans in WWII, 'eh Thomas?  And I'm sorry you consider outrage\nat government excesses to be ####... Everytime the Israelis conduct a mass \noperation against a terrorist group that is actively killing their citizens and\nsoldiers, the world gets indignant, but it's ok for the US to assault it's own\ncitizens who were a religous minority and accused of sexual deviation and \nhoarding weapons... I find it real ironic this happened the same day Al Gore\narrived in Poland to recognize the sacrifices made in the Warsaw Ghetto where\nthe same 'justifications' were raised for an armed assault by black-clad troops\nwith armor support...  \n\n-- \n********************************************************************************\nJames S. Cochrane        *  When in danger, or in doubt, run in * This space \ngt6511a@prism.gatech.edu *  circles, scream and shout.          * for rent\n********************************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1024, "properties": {"category": "rec.autos", "text": "From: tobias@oasys.dt.navy.mil (Steve Tobias)\nSubject: Re: Most bang for between $13,000 and $16,000\nReply-To: tobias@oasys.dt.navy.mil (Steve Tobias)\nDistribution: na\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 14\n\nIn rec.autos, CPKJP@vm.cc.latech.edu (Kevin Parker) writes:\n>   I'd like to get some feedback on a car with most bang for the buck in the\n>$13000 to 16,000 price range. I'm looking for a car with enough civility to be\n>driven every day, or even on long trips, but when I hit the gas, I want to feel\n>some acceleration.  Handling is important also, as are reliability and pretty\n>low maintenance costs.  A stylish appearance is nice, but I don't want a car\n>that is all show and not much go.  Even though many of the imports are fast, I\n>don't really want a turbo, and I never have cared for the song sung by a four\n>clyinder.  I'd prefer a v6 or v8 for the engine.  If you have any suggestions,\n>Kevin Parker\n\n     There's only one car that really fits your needs. It's spelled:\n\n\t\t\t  5.0 LITER MUSTANG\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1025, "properties": {"category": "sci.electronics", "text": "From: bryan@philips.oz.au (Bryan Ryan)\nOrganization: Philips Public Telecommunications Systems, Melbourne, Australia\nSubject: Re: RAMs &ROMs with ALE latches (for 8051's)\nLines: 28\n\nspp@zabriskie.berkeley.edu (Steve Pope) writes:\n\n>In article <1qg98sINNokf@sheoak.ucnv.edu.au> jeff@redgum.ucnv.edu.au (j. pethybridge) writes:\n>>\tHello again,\n>> I asked this a year ago, but i am still looking.\n>> I am getting sick of having to use a HC373 \n\n>Jeff, just use the damned 373.   Sure, there are oddball\n>latched memory chips, but do you really want to use them?\n\n>Sorry if I'm pedantic but: design your circuit using\n>reasonably available parts, and move on to more important\n>problems.\n\nWe're looking at a series of chips by WSI, the PSD3xx series. They have\n_mega_ address decoding logic on them, various ROM sizes (upto 1Mbit),\nvarious RAM sizes (upto 16 K), and 19 I/O ports which can be chip select\nlines, I/O or the buffered address lines.\n\nCute chip, 44 pin PLCC package.\n\nSecond sourcing may be a problem though :-(\n\n\nBryan Ryan, VK3TKX\nMelbourne, Australia\nbryan@philips.oz.au\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1026, "properties": {"category": "sci.med", "text": "From: sasghm@theseus.unx.sas.com (Gary Merrill)\nSubject: Re: jiggers\nOriginator: sasghm@theseus.unx.sas.com\nNntp-Posting-Host: theseus.unx.sas.com\nOrganization: SAS Institute Inc.\nLines: 62\n\n\nI may not be the world's greatest expert on chiggers (a type of\nmite indigenous to the south), but I certainly have spent a lot\nof time contemplating the little buggers over the past six years\n(since we moved to N.C.).  Here are some observations gained from\npainful experience:\n\n  1. Reactions to chiggers vary greatly from person to person.\n     Some people get tiny red bites.  Others (like me) are more\n     sensitive and get fairly large swollen sore-like affairs.\n\n  2. Chigger bites are the gift that keeps on giving.  I swear\n     that these things will itch for months.\n\n  3. There is a lot of folklore about chiggers.  I think most of\n     it is fiction.  I have tried to do research on the critters,\n     since they have such an effect on me.  The only book I could\n     find on the subject was a *single* book in UNC's special\n     collections library.  I have not yet gone through what is\n     required to get it.\n\n  4. Based on my experience and that of my family members, the old\n     folk remedy of fingernail polish simply doesn't work.  I recall\n     reading that the theory upon which it is based (that the chiggers\n     burrow into your skin and continue to party there) is false.  I\n     think it is more likely that the reaction is to toxins of some\n     sort the little pests release.  But this is speculation.\n\n  5. The *best* approach is prevention.  A couple of things work well.\n     A good insect repellent (DEET) such as Deep Woods Off liberally\n     applied to ankles, waistband, etc. is a good start.  There is\n     another preparation called \"Chig Away\" that is a combination of\n     sulfur and some kind of cream (cortisone?) that originally was\n     prepared for the Army and is not commercially available.  In\n     the summer I put this on my ankles every morning when I get\n     up on weekends since I literally can't go outside where we\n     live (in the country) without serious consequences.  (They\n     apparently don't like sulfur much at all.  You can use sulfur\n     as a dust on your body or clothing to repel them.)\n\n  6. No amount of prevention will be *completely* successful.  Forget\n     the fingernail polish.  I have finally settled upon a treatment\n     that involves topical application of a combination of cortisone\n     creme (reduces the inflamation and swelling) and benzocaine\n     (relieves the itch).  I won't tell you all the things I've tried.\n     Nor will I tell you some of the things my wife does since this\n     counts as minor surgery and is best not mentioned (I also think\n     it gains nothing).\n\n  7. The swelling and itching can also be significantly relieved\n     by the application of hot packs, and this seems to speed recovery\n     as well.\n\nDoctors seem not to care much about chiggers.  The urban and suburban\ndoctors apparently don't encounter them much.  And the rural doctors\nseem to regard them as a force of nature that one must endure.  I\nsuspect that anyone who could come up with a good treatment for chiggers\nwould make a *lot* of money.\n-- \nGary H. Merrill  [Principal Systems Developer, C Compiler Development]\nSAS Institute Inc. / SAS Campus Dr. / Cary, NC  27513 / (919) 677-8000\nsasghm@theseus.unx.sas.com ... !mcnc!sas!sasghm\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1027, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: hawks vs leafs lastnight\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nDistribution: na\nLines: 33\n\nIn <1993Apr18.153820.10118@alchemy.chem.utoronto.ca> golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n\n>In article <93106.082502ACPS6992@RyeVm.Ryerson.Ca> Raj Ramnarace <ACPS6992@RyeVm.Ryerson.Ca> writes:\n>>did anyone else see this game last night ? just like a playoff game!!\n>>lots of hitting...but I was disappointed by the video goal judge...\n>>on all replays, joe murphy's goal shouldn't have counted ! it didn't go in net\n>>!! and according to the tsn broadcasters, the video goal judge said that he\n>>saw the water bottle on top of the cage move so he assumed the puck went in!\n>>this is terrible...hope crap like this doesn't occur in the playoffs!\n>>the game would have ended in 2-2 tie !\n\n>I thought the red light went on...thus, in the review, the presumption\n>would be to find conclusive evidence that the puck did not go in the\n>net...from the replays I say, even from the rear, the evidence wasn't\n>conclusive that the puck was in or out...in my opinion...\n\nIt seemed pretty conclusive to me.  The puck clearly hit the crossbar\nand then came down on the line.  And the announcers, admittedly homers,\nkept harping about how they \"must have had a different view upstairs\"\nbecause it was obvious to them, and, I would have thought, to anyone who\nsaw the replay, that the puck didn't go in.  The referee originally \nsignalled no goal but the video replay \"judges\" initiated contact with\nthe referee to claim that a goal was in fact scored.  This, to me, is\nunheard of.  Seeing stuff like this happen gives me a bad feeling about\nthe Leaf chances this year.\n\ncordially, as always,\n\nrm\n\n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1028, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gel@cs.mcgill.ca (Gilles KHOUZAM)\nSubject: Re: Workgroup Questions (conven. ram and licensing)\nSummary: Good Choice\nKeywords: W4WG\nOrganization: SOCS - Mcgill University, Montreal, Canada\nLines: 55\n\nIn article <Ny+0rA6ABh107h@eosvcr.wimsey.bc.ca> aew@eosvcr.wimsey.bc.ca writes:\n>I would be very appreciative if someone would answer a few \n>questions about Windows for Workgroups.\n>\n>I currently have Novell Netware Lite which does not work with\n>Windows very well and is a conventional memory hog (ver. 1.1).\n>I am considering moving all our machines to W4WG.\n>\n>Q1:  How much conventional ram does W4WG use over and above the\n>     driver for the network card?\n\n\tI have just checked it and you have three files that are loaded:\n\tPROTMAN :  128 Bytes\n\tDRIVER\t: 9072 Bytes\n\tWORKGRP\t: 4416 Bytes\n>\n>Q2:  If I have a Novell NE2000 card, are the LSL and IPX drivers\n>     still needed?\n\n\tNo W4WG uses it's own drivers.\n>\n>Q3:  Does W4WG do a license check over the network to ensure each\n>     machine is running its own licenced copy of W4WG? (Note: I do\n>     not want to break the license agreement and I will buy a copy\n>     of W4WG for each of our machines, it is just that I would like\n>     to try it out first to see if it meets our needs. Returning one\n>     opened copy is much easier than returning N opened copies.)\n\n\tNot that I know of, I bought two copies, had some problems with one\n\tinstalled both from the same copie, no problems. Do worry I just had\n\ta really old BIOS and that's the only problem I got.\n>\n>Q4:  If you buy the upgrade to Windows 3.1 for W4WG does it replace\n>     all of Win 3.1 as you install it or does it depend on current\n>     Win 3.1 files?\n\tIt will replace all older files (I think) and prompt you for the\n\tothers.\n>\n>Q5:  If I install Windows NT on my server when it comes out, will I have\n>     any troubles with the W4WG machines?\n\n\tThis I do not know...\n>\n>When I started this message, I was going to ask only 2 questions but I got carried\n>away. I'll stop now ;-).\n>\n>I look forward to your replies.\n>\n>Al\n\n\n\t\t\t\t\tHope this helps\n\n\t\t\t\t\tGEL\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1029, "properties": {"category": "talk.politics.guns", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: DSI/USCRPAC\nDistribution: na\nLines: 11\n\n\nThough I agree this is not the place to discuss guns, I note in passing that\na number of gun apologists seem to have ignored the words \"well regulated\"\nin their distorted interpretations of the Second Amendment.\n\nDavid\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1030, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: Re: migraine and exercise\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 29\n\nJL> From: jlecher@pbs.org\nJL> > I would not classify a mild headache that was continuous for weeks\nJL> > as migraine, even if the other typical features were there (e.g.,\nJL> > unilateral, nausea and vomiting, photophobia).  Migraines are, by\nJL> > common agreement, episodic rather than constant.\nJL> >\nJL> Well, I'm glad that you aren't my doctor, then, or I'd still be suffering.\nJL> Remember, I was tested for any other cause, and there was nothing. I'm\nJL> otherwise very healthy.\nJL> The nagging pain has all of the qualifications: it's on one side, and\nJL> frequently included my entire right side: right arm, right leg, right eye,\nJL> even the right side of my tongue hurt or tingled. Noise hurt, light hurt,\nJL> thinking hurt. When it got bad, I would lose my ability to read.\n\nThe differential diagnosis between migraine and non-migranous pain\nis not *always* important, because some therapies are effective in\nboth (e.g., tricyclic antidepressants such as amitriptyline,\nnon-steroidal anti-inflammatory drugs such as ibuprofen).  Other\ntherapies may be more specific: beta-blockers such as propranolol\nwork better in migraine than tension-type headache.\n\nThe most important thing, from your perspective, is that you got\nrelief.  Also, please understand that a diagnosis other than\nmigraine does not necessarily mean \"psychogenic\"; I suspect that\norganic factors play as large a role in tension-type headache as in\nmigraine.\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n  \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1031, "properties": {"category": "rec.autos", "text": "From: hm002b@uhura.cc.rochester.edu (Hasit Mehta)\nSubject: New '94 Talon?????\nKeywords: Regal Fiberglass parts ??\nNntp-Posting-Host: uhura.cc.rochester.edu\nOrganization: University of Rochester (Rochester, NY)\nLines: 12\n\nIn article:\n\nIs there such a thing as the new '94 Eagle Talon? I heard from a freind that\nthe new '94 Talons have been released? Is this true and if so what are the\ndifferences between the '93 and '94? Any opinions? I would appreciate any\nreplies and I would also prefer E-mail, thanks!\n\n-- \nHasit S. Mehta                           ****************************\nUniversity of Rochester                  *       PRIMUS SUCKS!      *\nhm002b@UHURA.CC.ROCHESTER.EDU            ****************************\n______\"I do believe in Captain Crunch, for I am the frizzle fry\"______\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1032, "properties": {"category": "comp.windows.x", "text": "From: brian@nostromo.NoSubdomain.NoDomain (Brian Colaric  Sun Dallas DSE)\nSubject: Help: OS2 Presentation Mgr port to X\nOrganization: Sun Microsystems\nLines: 17\nDistribution: world\nReply-To: Brian.Colaric@dallas.Central.Sun.COM\nNNTP-Posting-Host: nostromo.central.sun.com\n\nI need to port several OS/2 PM applications to X (OpenWindows or Motif),\nand desperately need any information on how to go about doing this (short\nof a complete rewrite.\n \nAre there any tool to make porting easer?\nAny References?\nAny talent out there to hire to do this?\nI will even take an OS/2 Presentation Mgr emulator for sun!\n \nAny, and all replies (except flames) welcome!\n \n \nBrian Colaric\n \nBrian.Colaric@dallas.Central.Sun.COM\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1033, "properties": {"category": "sci.space", "text": "From: jaskew@spam.maths.adelaide.edu.au (Joseph Askew)\nSubject: Re: the call to space (was Re: Clueless Szaboisms )\nKeywords: trumpet calls, infrastructure, public perception\nOrganization: Statistics, Pure & Applied Mathematics, University of Adelaide\nLines: 32\n\nIn article <1pfj8k$6ab@access.digex.com> prb@access.digex.com (Pat) writes:\n>In article <1993Mar31.161814.11683@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n\n>>It isn't feasible for Japan to try to stockpile the amount of oil they\n>>would need to run their industries if they did no use nuclear power.\n\n>Of course,  Given they export 50 % of the GNP,  What do they do.\n\nWell they don't export anywhere near 50% of their GNP. Mexico's perhaps\nbut not their own. They actually export around the 9-10% mark. Similar\nto most developed countries actually. Australia exports a larger share\nof GNP as does the United States (14% I think off hand. Always likely to\nbe out by a factor of 12 or more though) This would be immediately obvious\nif you thought about it.\n\n>Anything serious enough to disrupt the sea lanes for oil will\n>also hose their export routes.\n\nIt is their import routes that count. They can do without exports but\nthey couldn't live without imports for any longer than six months if that.\n\n>Given they import everything,  oil is just one more critical commodity.\n\nToo true! But one that is unstable and hence a source of serious worry.\n\nJoseph Askew\n\n-- \nJoseph Askew, Gauche and Proud  In the autumn stillness, see the Pleiades,\njaskew@spam.maths.adelaide.edu  Remote in thorny deserts, fell the grief.\nDisclaimer? Sue, see if I care  North of our tents, the sky must end somwhere,\nActually, I rather like Brenda  Beyond the pale, the River murmurs on.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1034, "properties": {"category": "sci.electronics", "text": "From: kolstad@cae.wisc.edu (Joel Kolstad)\nSubject: Re: Wanted: A to D hardware for a PC\nArticle-I.D.: doug.1993Apr6.053736.23113\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 22\n\n>In <3889@ncr-mpd.FtCollinsCO.NCR.COM> Brad Wright writes:\n>\n>>\tIf you know much about PC's (IBM comp) you might try the joystick\n>>port.  Though I haven't tried this myself, I've been told that the port\n>>has built in A-D converters.  This would allow the joystick to be a couple of \n>>pots.  If you could find the specs this might just work for you...\n\nI believe that the \"A-D converters\" found on a joystick port are really\ntimers that tick off how long it takes an R-C circuit (the R being your\npaddle) to charge up to something like 1/2 Vcc.  For games this works\npretty well, but you certainly wouldn't want to try to take lab\nmeasurements off something as non-linear as that.\n\nHmm... I suppose you could linearize it in software, but the real problem\nis that the precision of your measurement is no longer constant (higher\nvoltages would be more precise).\n\nOn the other hand, I could be wrong and perhaps the game card designers\nsplurged for the extra $.50 to make a cheap constant current source out of\nan op amp.  But I wouldn't expect that...\n\n\t\t\t\t\t---Joel Kolstad\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1035, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Fighting the Clipper Initiative\nOrganization: DSI/USCRPAC\nLines: 32\n\nIn article <1r0nov$p3e@access.digex.net> steve-b@access.digex.com (Steve\nBrinich) writes:\n\n\n>\n> 1. American manufacturers peddling Cripple Chips with a secret untested\n>     algorithm whose keys are held by people with a history of untrustworthy\n>     behavoir, or\n>\n\ner, excuse me but since the escrow agencies aren't yet chosen, how can you\nsay they have a \"history of untrustworthy behavoir[sic]\"?\n\nI'm sure each of us can think of agencies without such a history. Price\nWaterhouse has kept the secret of the Academy Awards for many years, even in\nthe face of an aggressive press. The Federal Reserve Open Market Committee\nhas successfully kept decisions from leaking for the statutory period until\npublication. Even the Department of Agriculture has successfully kept crop\nforecasts from leaking prematurely.\n\nFrankly, I'd trust the above (not the D of A, of course since they might be\nsubject to political pressure) far sooner than the ACLU, EFF, or CPSR which,\nthough not exactly government apologists, have no particular track record\nfor internal security that I know of.\n\nDavid\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1036, "properties": {"category": "sci.crypt", "text": "From: amolitor@moink.nmsu.edu (Andrew Molitor)\nSubject: What the clipper nay-sayers sound like to me.\nOrganization: Department of Mathematical Sciences\nLines: 55\nDistribution: na\nNNTP-Posting-Host: moink.nmsu.edu\nOriginator: amolitor@moink.nmsu.edu\n\n\tThe following is available in some FTP archive somewhere, I insert\nmy comments liberally throughout this demonic memo of Big Brotherdom:\n\n>\tWhite House Announcement on Screw Thread Standards\n>\t--------------------------------------------------\n>\n>\tThis is to announce that the American National Standards\n>Institute (or whatever it is) has been given the authority to define\n>standard dimensions for screw threads.\n\n   Look! This is clearly the first step toward outlawing our\n   own screw thread specifications. If this madness isn't fought,\n   tooth and nail, every step of the way, it'll be a crime to use\n   screw threads other than those our Fearless Leaders so *graciously*\n   define for us.\n\n>\tThe purpose of this is to permit industry to draw upon a standard\n>pool of specifications and designations, to ensure interoperability of\n>various threaded objects across vendors.\n\n   Rubbish, I say! ANSI standard screw threads will have subtle weaknesses,\n   allowing their agents to disassemble our automobiles more easily,\n   causing our mufflers to fall off at inoppurtune moments.\n\n>\tQuestions and Answers on the ANSI screw thread standards\n>\t--------------------------------------------------------\n>\n>Q: Will the screw threads defined by ANSI be as good as other screw thread\n>designs available elsewhere?\n>\n>A: Yes.\n\n\tHah! \"trust us\"\n\n>Q: Will I be able to use my own screw threads if I desire?\n>\n>A: Of course, but this will make your threaded objects unlikely to\n>interoperate correctly with others within the industry.\n\n\tSee??! See? This is the first step.\n\n\tIt is clear we must band together, write your congressman!\nUse Pretty Good Screw Threads, not this devil-inspired ANSI trash.\nProtect your constitutional right to use whatever screw thread you\ndesire. Guerilla Screw Thread Activism must become the order of the\nday. Boycott GM, and build your own car, using screws from STZ\nScrew Thread Associates.\n\n\tScrew you, Bill Clinton! You and your totalitarianist thugs!\n\n------------------------------------------------------------------------\namolitor@nmsu.edu | finger for PGST personal screw thread pitch, or\nScrew Threads     |  see the screw thread servers.\nmust be freed!    |\n------------------------------------------------------------------------\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1037, "properties": {"category": "rec.motorcycles", "text": "From: brown@venus.iucf.indiana.edu (Robert J. Brown)\nSubject: Re: Shaft-drives and Wheelies\nNews-Software: VAX/VMS VNEWS 1.3-4   \nNntp-Posting-Host: venus.iucf.indiana.edu\nReply-To: brown@venus.iucf.indiana.edu\nOrganization: IUCF\nDistribution: rec\nLines: 29\n\nIn article <Stafford-200493103434@stafford.winona.msus.edu>, Stafford@Vax2.Winona.MSUS.Edu (John Stafford) writes...\n>>>>>> On 19 Apr 93 21:48:42 GMT, xlyx@vax5.cit.cornell.edu said:\n>>  Is it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n> \n>\tYes, but the _rear_ wheel comes off the ground, not the front.\n> See, it just HOPS into the air!  Figure.\n>John Stafford \n\n  Sure you can do wheelies with a shaft drive bike. I had a BMW R100RS\nthat was a wheelie monster! Of course it didn't have the initial power\nburst to just twist it into the air - I had to pop the clutch. I also\nhad to replace front fork seals a few times as well. The fairing is a \nbit heavy to be slamming down onto those little stantion tubes all the\ntime. But let me give you fair warning: I trashed the ring/pinion gear\nin the final drive of my K75 (I assume) doing wheelies. And this was \nNO cheap fix either!! There is some kind of \"slip\" device in the shaft\nto prevent IT from breaking. Unfortunately, it didn't save the gears!\n\n  On the topic of wheelies, the other day I saw a kid on a big Hurricane\ndo a \"stoppy\"(?), or rear wheelie. Man, he had the rear end on this bike \nup about 2 feet off the ground at a traffic light. I don't recommend these\nactivities anymore (now that I'm an \"old guy\" with kids of my own) but\nit looked damn impressive!!\n\n  If you can't keep both tires on the ground, at least have 'em pointed\nin that direction! :-)\n\nCheers, \nB**2\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.050+0000", "event": "documents", "entityId": 1038, "properties": {"category": "rec.sport.baseball", "text": "From: jrs@welchgate.welch.jhu.edu (Robert Sapp)\nSubject: Re: Billy gets cheers in Baltimore!\nOrganization: Johns Hopkins Univ. Welch Medical Library\nDistribution: na\nLines: 41\n\nIn article <5APR199313263142@jhuvms.hcf.jhu.edu> doctor8@jhuvms.hcf.jhu.edu (Jason Abner Miller) writes:\n>Orioles vs. Texas at Camden Yards, April 5, Opening Day:\n>\n>Batting 9th for Texas, playing Second Base:\n>\n>\tBILLY ... RIPKEN\n>\n>The hometown crowd gave their favorite ex-2nd Baseman a 2-minute standing\n>ovation as Billy, wearing flashy shades, took the cheers smiling and\n>waving.\n>\n>\t\"Consummate role player\" (in the words of P.A. caller Jon Miller)\n>Tim Hulett failed to receive similar cheers when announced.  Mainly because\n>he didn't have the courtesy to show up.\n\nWasn't Hulett injured yesterday after being hit in the face with a ball\nwhile running bases?  I heard something about him recieving stiches and a\npossible broken nose.  Is he at the park?\n\n>\tFernando was warmly received, good to see that.\n\nLet's see how they feel when he's 0 and 4 with a 4.9 ERA.  I have my\ndoubts about Fernando.\n\n>\tF.Y.I, when Cal was announced, Jon Miller says:\n>\t\"It seems like yesterday when this young man...began a consecutive\n>game streak ... 10-time All-Star, 2 time MVP, 2 time gold glover, our\n>future Hall of Fame shortsop, batting 3rd, Cal Ripken\".  The Standing O\n>lasted about 15 seconds.  1:45 less than Billy.  Blargh.\n\nWell, when a fan favorite gets dumped, he's gonna get an outstanding\novation on his first return.  Let's add up the ovations Cal has recieved\nover the years during the game and compare that to Billy.\n\nBTW, Sutcliffe's getting knocked around pretty good.  Rangers up 5 - 1 in\nthe bottom of the fourth.\n\n--Rob\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1039, "properties": {"category": "rec.autos", "text": "From: silver@xrtll.uucp (Hi Ho Silver)\nSubject: Re: Who was   or   what is   MIATA, as used in the Mazda Miata?\nOrganization: What you won't find on my desk.\nLines: 20\n\nSayeth sjwyrick@lbl.gov (Steve Wyrick):\n$Anybody keeping track of how many of these there are?  So far I have\n$Miata, Tredia, Previa, Sentra, Maxima, Altima, Camry, and Justy, not to\n$mention Lexus, Acura and Infiniti!  \n\n   You're apparently including names that are, or appear to be,\nderivatives of real words in English or some other language (e.g.\nAcura, Infiniti, Maxima, Altima), in which case you missed ones such\nas Integra, Supra, Allante', Capri and Calibra.  In Canada, add Serenia and\nPrecidia.  If you count misspellings, add Protege and (in Canada)\nVigor.  How about the forthcoming Mondeo, if it is given that name\nin North America?\n\n   Others might include Celica, Corolla, Paseo, and Tercel.  In Canada,\nadd Asu\"na.\n-- \n|I know that sometimes my jaw clicks when I eat.  Void where prohibited.|\n|Have you seen this boy?  Lust never sleeps.  I say hurl.  Honey, I'm   |\n|home. _________________________________________________________________|\n|_____/ silver@bokonon.UUCP    ...!{uunet|becker|xrtll}!bokonon!silver  |\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1040, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: Clipper considered harmful\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 37\n\nbrad@optilink.COM (Brad Yearwood) writes:\n\n> Criminals who very badly want inscrutable tactical communications (specificall\n> the terrorists and drug dealers who proponents of key escrow cite as threats)\n> will be highly motivated to steal the cipher phone of a legitimate user, and\n> to kill this person or hold them hostage so discovery of compromise of the\n> device will be delayed.\n\nWhy doing it in such a rough manner? It is much more professional to\nsteal the chip from the phone and even to replace it with a\npin-compatible do-nothing chip that does not encrypt at all. Chances\nare that the victim will not notice anything, especially if it is done\nprofessionally.\n\n> Once a suitable collection of devices is stolen, criminals can communicate\n> with impunity (assuming the cipher system carries no trapdoors apart from\n> key escrow) until and unless the compromise is discovered by some other means.\n\nNo, because the Feds will still be able to decrypt the conversations.\nTrue, they'll blame the wrong guys, but nevertheless one cannot say\nsomething like \"The drugs arrive tommorrow on the ship 'Terminus'\"\nwhen the Feds are listening, even if they cannot identify who the\nspeaker is.\n\nNo, the criminals will just use some secure encryption. The new\nproposal does not stop criminals; it ensures that the government will\nbe able to wiretap the average citizen and stops the casual snooper.\nTo me, it also clearly looks as a step towards outlawing any other\nstrong encryption devices.\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1041, "properties": {"category": "soc.religion.christian", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Re: Was Jesus Black?\nLines: 45\n\nThis subject seems to be incredibly inflammatory.  Those who subscribe to\n_Biblical Archaeology Review_ will remember a spectacular letter battle set off when someone\ncomplained about a Franklin Mint ad.  (_BAR_ is a great magazine, but the\ncontrast between the rather scholarly articles and the incredibly sleazy ads\nis extreme.)  In this ad, they were hawking a doll with a head based on the\nfamous bust of Nefertiti, giving the face a typical doll-pink complexion.\nThe letter complained about this as a misrepresentation on the grounds that\nNefertiti was \"a beautiful black queen.\"  This set off an exchange of\nhotheaded letters than ran for several issues, to the point where they had\nan article from an Egyptologist titled \"Was Cleopatra Black?\"  (The answer\nto the title is \"no\"-- she was greek.)\n\nI have to say that I hear a hysterical note in much of the complaining.  I\npersonally have seen only one blond-haired Jesus (in the National Shrine in\nWash. DC), and I found it very jarring.  Western representations vary\nenourmously, but in general the image of is of a youngish male with dark\nhair and beard, of a sort that can be found (modulo the nose) all up and\ndown the Mediterranean.\n\n(Also, if what I remember is correct, the \"Black Madonna\" doesn't represent\na person with negroid features.  It is black because of an accident.  Joe\nBuehler....?)\n\nIn the presence of all those marble statues, one is prone to forget that\ngreeks are rather likely to have black hair.  When one crosses the bosporus,\nthe situation breaks down completely.  Are Turks white?  How about Persians,\nor various groups in the indian subcontinent?  Was Gandhi white?  How about\nthe Arabs?  Or picture Nassar and Sadat standing side by side.  And then\nthere are the Ethiopians....\n\nThose of a white racist bent are not likely to say that *any* of these\npeople are \"white\" (i.e., of the racist's \"race\").  If I may risk a\npotentially inflammatory remark, one undercurrent of this seems to be the\nidentification of modern jews as members of the oppressor race.  Considering\nthe extreme dicotomy between medieval religion on the one hand and medieval\nantisemitism on the other, I don't think that this \"Jesus was white\" thesis\never played the roles that some hold it did.\n\nRepresentations of Jesus as black or korean or whatever are fine.  It seems\nawfully self-serving to insist that Jesus belongs to one's own racial group.\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1042, "properties": {"category": "talk.politics.guns", "text": "From: cathyf@is.rice.edu (Catherine Anne Foulston)\nSubject: Re: WACO: Clinton press conference, part 1\nOrganization: Rice University\nLines: 6\n\nCould y'all PLEASE stop posting this stuff to tx.general.  tx.politics\nis sufficient and is where this stuff belongs.  Thanks.\n\n\tCathy\n-- \nCathy Foulston + Rice University + Network & Systems Support + cathyf@rice.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1043, "properties": {"category": "soc.religion.christian", "text": "From: gt7122b@prism.gatech.edu (boundary)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nOrganization: Georgia Institute of Technology\nLines: 52\n\nIn article <Apr.20.03.03.35.1993.3863@geneva.rutgers.edu> jasons@atlastele.com (Jason Smith) writes:\n>In article <Apr.19.05.13.48.1993.29266@athos.rutgers.edu> kempmp@phoenix.oulu.fi (Petri Pihko) writes:\n\n>= This is not true. Science is a collection of models telling us \"how\",\n>= not why, something happens. I cannot see any good reason why the \"why\"\n>= questions would be bound only to natural things, assuming that the\n>= supernatural domain exists. If supernatural beings exist, it is\n>= as appropriate to ask why they do so as it is to ask why we exist.\n\nI beg to disagree with the assertion that science is a collection of models.\nScientific models are a game to play, and are only as good as the\nassumptions and measurements (if any) that go into them.\n\nAs an example, I remember when nuclear winter was the big hype in\natmospheric science.  It wasn't long after Sagan's admonitions that\none of our boys was adding another level of reality into his model of\nthe nuclear winter scenario at ERL in Boulder.  He decided to assume\nthat the atmosphere is more like a two-dimensional thing, than a one-\ndimensional thing.  He also assumed that it rained and that the winds\nblow in the real atmosphere.  On returning to Georgia Tech, he showed\na transparency of atmospheric cooling rates according to the year they\nwere generated by the models.  There was an unmistakable correlation\nbetween the age (meaning simplicity of assumptions; i.e., remoteness\nfrom reality) of each model and the degree of cooling.  Whereas Sagan's\nmodel showed an approximate 40-degree cooling episode, the next model \nin sophistication showed about half that, and so on until we got to\nour boy's model, which showed a 1-2 degree drop if the war happened in\nthe winter and less than a 10 degree drop if it happened in the summer.\nHe predicted that when we would include the presence of oceans, chemistry,\nthe biosphere, and other indicators of reality in the models, we would\nprobably see even less cooling.  Thus nuclear winter was reduced to even\nless than a nuclear autumn, one might say, to a nuclear fizzle.\n\nTo quote from H.S. Yoder,\n\n\tThe postulated models have become accepted as the reality\n\tinstead of the lattice of assumptions they are.\n\tAuthoritarianism dominates the field, and a very critical\n\tanalysis of each argument is to be encouraged.... Skepticism\n\tof the model approach to earth problems is warranted because\n\tmany key parameters have not been included.\n\nThis statement surely applies equally well to cosmogony.  Only when\nconvincing observational evidence substantiates the modeled results\nmay one suggest that the model may describe the reality.  Just thought\nI'd clear that up before things really got out of hand. \n \n-- \nboundary\n\nno teneis que pensar que yo haya venido a traer la paz a la tierra; no he\nvenido a traer la paz, sino la guerra (Mateo 10:34, Vulgata Latina) \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1044, "properties": {"category": "rec.motorcycles", "text": "From: mdc2@pyuxe.cc.bellcore.com (corrado,mitchell)\nSubject: Re: Route Suggestions?\nOrganization: Bellcore, Livingston, NJ\nDistribution: usa\nSummary: New York, heh?\nLines: 17\n\nIn article <1qmm5dINNnlg@cronkite.Central.Sun.COM>, doc@webrider.central.sun.com (Steve Bunis - Chicago) writes:\n> 55E -> I-81/I-66E.  After this point the route is presently undetermined\n> into Pennsylvania, New York?, and back to Chicago (by 6/6).  Suggestions \n\nIf you do make it into New York state, the Palisades Interstate Parkway is a\npleasant ride (beautiful scenery, good road surface, minimal traffic).  You\nmay also want to take a sidetrip along Seven Lakes Drive just off the parkway\nfor the same reasons plus the road sweeps up and down along the hills with\nsweeping turns under old forest canopy.\n\n               '\\                          Mitch Corrado\n                _\\______           Bell Communications Research\n               /   DEC  \\======== mdc2@panther.tnds.bellcore.com\n          ____|___WRECK__\\_____            (908)699-4128\n         / ___________________ \\\n         \\/ _===============_ \\/               MAD VAX\n           \"-===============-\"          -The \"Code\" Warrior-\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1045, "properties": {"category": "rec.autos", "text": "From: jkjec@westminster.ac.uk (Shazad Barlas)\nSubject: Re: Improvements in Automatic Transmissions\nOrganization: University of Westminster\nLines: 5\n\nI just wanted to know:\n\nTo wheelspin in an auto, you keep the gear in N - gas it - then stick the \ngear in D... I've never tried this but am sure it works - but does this screw \nup the autobox? We're having a bit of a debate about it here...\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1046, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Lunar Colony Race! By 2005 or 2010?\nOrganization: U of Toronto Zoology\nLines: 18\n\nIn article <1993Apr21.140804.15028@draper.com> mrf4276@egbsun12.NoSubdomain.NoDomain (Matthew R. Feulner) writes:\n>|> Need to find atleast $1billion for prize money.\n>\n>My first thought is Ross Perot.  After further consideration, I think he'd\n>be more likely to try to win it...but come in a disappointing third.\n>Try Bill Gates.  Try Sam Walton's kids.\n\nWhen the Lunar Society's $500M estimate of the cost of a lunar colony was\nmentioned at Making Orbit, somebody asked Jerry Pournelle \"have you talked\nto Bill Gates?\".  The answer:  \"Yes.  He says that if he were going to\nsink that much money into it, he'd want to run it -- and he doesn't have\nthe time.\"\n\n(Somebody then asked him about Perot.  Answer:  \"Having Ross Perot on your\nboard may be a bigger problem than not having the money.\")\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1047, "properties": {"category": "misc.forsale", "text": "From: aj008@cleveland.Freenet.Edu (Aaron M. Barnes)\nSubject: Scanning radio:Realistic PRO-2024-was $200, sell for $150\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 45\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\n\n\nArticle 10886 of alt.radio.scanner:\nPath: usenet.ins.cwru.edu!cleveland.Freenet.Edu!aj008\nFrom: aj008@cleveland.Freenet.Edu (Aaron M. Barnes)\n>Newsgroups: alt.radio.scanner\nSubject: Realistic PRO-2024 for sale-was $200,sell for $150 obo\nDate: 20 Apr 1993 16:01:28 GMT\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 26\nMessage-ID: <1r16oo$3du@usenet.INS.CWRU.Edu>\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nHello.\n\nI have a Realistic PRO-2024 scanner for sale.Here is a small desc\nription:\n\n60 programible chanels\nfully detailed backlighted digital display\nheadphone jack\nantenna jack\nremovable telescoping antenna\nauto search\n\ncoverage:\n30-50mHz\n118-174mHz\n380-512mHz\n\nIt originally cost $200, but I will sell for $150.\n\nThank You.\n-- \n       / /     Buchanan in `96!\n      / /      Fear the goverment that fears your guns.\n  \\ \\/ /       Without the 2nd amendment, we cannot guarantee ou\n   \\/ /        r freedoms.           aj008@cleveland.freenet.edu\n-- \n       / /     Buchanan in `96!\n      / /      Fear the goverment that fears your guns.\n  \\ \\/ /       Without the 2nd amendment, we cannot guarantee ou\n   \\/ /        r freedoms.           aj008@cleveland.freenet.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1048, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: text of White House announcement and Q&As on clipper chip \n\tencryption\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 12\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\nrlward1@afterlife.ncsc.mil (Robert Ward) writes:\n> It refers to the right of the people to organize a militia, not for \n> individuals to carry handguns, grenades, and assault rifles.  \n\nFalse, as federal courts have affirmed on many occasions.  This is getting \nout of sci.crypt territory, though...\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1049, "properties": {"category": "alt.atheism", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: A silly question on x-tianity\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 23\n\nIn article <1993Apr14.175557.20296@daffy.cs.wisc.edu>, mccullou@snake2.cs.wisc.edu (Mark McCullough) writes:\n\n>Sorry to insult your homestate, but coming from where I do, Wisconsin\n>is _very_ backwards.  I was never able to understand that people actually\n>held such bigoted and backwards views until I came here.\n\nI have never been to Wisconsin, though I have been to\nneighbor Minnesota. Being a child of the Middle Atlantic (NY, NJ, PA)\nI found that there were few states in the provences that stood\nout in this youngster's mind: California, Texas, and Florida to \nname the most obvious three.  However, both Minnesota and Wisconsin\nstuck out, solely on the basis of their politics.  Both have \nalways translated to extremely liberal and progressive states.\nAnd my recent trip to Minnestoa last summer served to support that\nstate's reputation.  My guess is that Wisconsin is probably the\nsame.  At least that was the impression the people of Minnesota left\nwith me about their neighbors.\n\nThe only question in my head about Wisconsin, though, is \nwhether or not there is a cause-effect relationship between\ncheese and serial killers :)\n\n-jim halat\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1050, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hodge@iccgcc.decnet.ab.com\nSubject: Re: Tidying up after removing an OLE server\nLines: 25\n\nIn article <C5y121.Kz3@liverpool.ac.uk>, qq43@liverpool.ac.uk (Chris Wooff) writes:\n> A while ago I installed SPSS for Windows as part of an evaluation. Once\n> the evaluation was complete I duly deleted the software from my PC.\n> \n> Unfortunately there is still a \"ghost\" of SPSS left: when I run\n> something like \"Write\" and go to embed an object then \"SPSS Chart\"\n> appears on the list of objects I'm offered. I looked around all\n> the obvious \"INI\" files without success. The next thing I tried\n> was looking for the string \"SPSS Chart\" in every file in the \n> Windows directory. It turned up in a file called REQ.DAT (or\n> REG.DAT). Unfortunately the file was binary and so I didn't feel\n> inclined to edit it.\n> \n> I'd welcome a solution for removing SPSS from the list of OLE servers.\n> \n> Chris Wooff\n> (C.Wooff@liverpool.ac.uk)\n\n You can edit that file with a utility that comes with Windows 3.1 called\n\"REGEDIT\" (Registration Info Editor)\n\n-- \n++++  Bob Hodge  ++++++++++++++++++++++++++++++++++++++++++++++++++++++\n+ \"I'm going fishing.\" \"You got worms?\" \"Yeah, but I'm going anyway!\" +\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1051, "properties": {"category": "misc.forsale", "text": "From: formula@athena.mit.edu (Ronald R. Duff Jr.)\nSubject: New 3M (and used) 8\" floppy disks for sale\nOrganization: Massachusetts Institute of Technology\nLines: 39\nDistribution: na\nNNTP-Posting-Host: vongole.mit.edu\n\n\tI have some brand-new shrinkwrapped boxes of 8\" floppy disks that I\nwould like to sell.  They are all 3M disks:\n\n40 (4 boxes of 10) SS/SD 8\" floppy disks\n60 (6 boxes of 10) DS/DD, W/WP 8\" floppy disks\n\nMisco is selling the SS/SD 3M disks for 25.90 for a box of ten and they are\nselling the DS/DD 3M disks for 31.90 for a box of ten.  I will take the\nbest offer I can get for the disks (as many boxes as you want).\n\n\tI also have a quantity of 8\" floppy disks that \nsome people were getting rid of, probably due to an upgrade to a newer drive\nsystem.  All the disks are used and most have labels on them, but they all \nappear to be in good physical shape.  However, I make no guarantees of the\nquality of these disks.  Here are the statistics:\n\nQuantity\tMake\tType\n\n10\t\t3M\tSingle side/Double density,soft sector,128 bytes/record\n66\t\tMemorex Single side/Double density,soft sector,128 bytes/record\n\nI will accept the best offer I receive for the disks and I'm willing to sell\nthem off in different amounts, the minimum being a box of ten (if I get no\noffers on these disks I would considering throwing them in with the new\ndisks I'm selling above). \n\nI also have a head-cleaning kit for 8\" disk drives for which I will take\nthe best offer I can get.\n\nAll sales are final.\n\nI would prefer to ship COD and add the shipping costs onto the total order \ncost.\n\nPlease send E-mail to formula@athena.mit.edu if interested.\n--\nAddress: Ronald R. Duff Jr.         Phone: (508)842-2293 (Home)\n         29 Lamplighter Drive              (617)253-1652 (Work)(MIT room 6-332)\n         Shrewsbury, MA 01545    Internet: formula@athena.mit.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1052, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pastor@vfl.paramax.com (Jon Pastor)\nSubject: Re: Another happy Gateway owner\nNntp-Posting-Host: athansor\nOrganization: not much...\nLines: 30\n\nIn article <1993Apr9.125215.5613@infonode.ingr.com>, kbputt@infonode.ingr.com (Ken Putt) writes:\n\n|> Don't they always? Of course, they're so much more expensive than \n|> most other quality competitors, \n\nLike who, f'rinstance?  When I bought my system (November), no first, second,\nor third tier vendor could touch the price for the hardware/software\ncombination I got from GW2000.\n\n|> Another good thing I have read in the midst of all the Gateway horror\n|> stories: \n\nIf you were selling as many systems as fast as GW2000, you'd end up with four\nor five pissed-off customers too.  And four or five ecstatic ones.  And lots\nof satisfied ones...\n\n|> they have an excellent return policy!\n\nDon't minimize this; if you buy mail order, it's a good thing to know that\nyou'll get replacements parts, no questions asked, in a day or two, via FedEx.\n\n|> They're very impressive systems (when they work)\n\nWhich they do in the vast majority of cases.  Remember that it's only the\npeople on the tails of the curve who are motivated to write -- the ones who\nlove it, and the ones who hate it.  You don't hear from the folks in the\nmiddle very often...\n\nThey have rough edges, no doubt about it; but they give good value per dollar,\nand use almost all top-quality components.  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1053, "properties": {"category": "talk.politics.misc", "text": "From: garrett@Ingres.COM \nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nSummary: My $.02\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nKeywords: \nOrganization: ASK Computer Systems, Ingres Product Division\nLines: 59\n\nIn article <1993Apr16.010908.22897@eecs.nwu.edu>, ian@nasser.eecs.nwu.edu (Ian Sutherland)         writes...\n>In article <1993Apr15.170731.8797@isc-br.isc-br.com> steveh@thor.isc-br.com (Steve Hendricks) writes:\n>>In article <1993Apr15.013651.11353@tijc02.uucp> pjs269@tijc02.uucp (Paul Schmidt) writes:\n>>>steveh@thor.isc-br.com (Steve Hendricks) writes:\n>[...]\n>>It is a failure of libertarianism if the ideology does not provide any\n>>reasonable way to restrain such actions other than utopian dreams.\n> \n>You seem to be saying that a LIMITED government will provide MORE\n>opportunities for private interests to use it to pursue their own\n>agendas, and asking libertarians to prove that this will NOT happen.\n>While I can't offer such a proof, it seems pretty damn plausible that\n>if the government does not regulate a particular area, it cannot become\n>a tool of private interests to pursue their own agendas in that area.\n>I rather suspect that it's the sort of government we have NOW that is\n>more likely to become such a tool, and that it IS such a tool in many\n>instances.\n> \nPardon me for interrupting, but why doesn't anyone ever bring up other\npossibilities besides more government, less government, or no government\nand stop there? It seems to me that the problems with society go MUCH\ndeeper than government. Democracies seem to reflective of the majority\nof society, both the good and the bad. If you take away the government,\nyou still have the structural flaws in society, except this time, with\nno restraints. Yes? No?\n\tWhy doesn't anybody ever discuss communal society, like a\nkibbutz? I never studied it on depth, but from what I've heard, the kibbutz\nin Isreal was very successful. It is also very close to what Aristotle\nand Socrates believed was the best.\n\tSorry to detract from the discussion.\n\n>>Just\n>>as Marxism \"fails\" to specify how pure communism is to be achieved and\n>>the state is to \"wither away,\" libertarians frequently fail to show how\n>>weakening the power of the state will result in improvement in the human\n>>condition.\n> \n>I suspect that this is because \"improvement in the human condition\" as\n>you define it is not the primary goal of libertarianism, and would not\n>be the primary goal of a libertarian government.  My impression of\n>libertarianism is that its primary goal is the elimination of\n>government coercion except in a very limited cases.\n\nBut what good is change if there is no tracable improvement in the human\ncondition? Who would ever support the change if you tell them it won't \nimprove their lives? I know that there are, and will be, libertarians \nwho will jump in now and say that it WILL improve our lives. I can deal\nwith that. All I'm saying is that improving the human condition must\nbe the PRIMARY goal of any organization.\n\n>Ian Sutherland\n>ian@eecs.nwu.edu\n\n------------------------------------------------------------------------------\n\"Who said anything about panicking?\" snapped Authur.           Garrett Johnson\n\"This is still just culture shock. You wait till I've       Garrett@Ingres.com\nsettled into the situation and found my bearings.\nTHEN I'll start panicking!\" - Douglas Adams  \n------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1054, "properties": {"category": "misc.forsale", "text": "From: st1g9@rosie.uh.edu (Lee Preimesberger)\nSubject: Re: Microsoft DOS 6.0 Upgrade for sale\nArticle-I.D.: rosie.5APR199322063854\nDistribution: world\nOrganization: University of Houston\nLines: 26\nNNTP-Posting-Host: rosie.uh.edu\nNews-Software: VAX/VMS VNEWS 1.41\n\nIn article <hatton.733706165@cgl.ucsf.edu>, hatton@socrates.ucsf.edu (Tom Hatton) writes...\n#adn6285@ritvax.isc.rit.edu writes:\n#>So, does anyone care to enlighten us whether DOS6.0 is worth upgrading to?\n#>How good is it's compression, and can it be turned on/off at will?\n#>Any other nice/nasty features?\n# \n#According to reports, if you don't have DOS yet, and don't have any\n#utilities (QEMM, Stacker, PCTools, Norton, ...) then DOS6 may be worth it. \n#For people who have DOS5, and some sort of utility, DOS6 doesn't offer\n#much. You'd never know it from the usual hype that marketing is able\n#to create, however. :-)\n\n\tIMHO, it seems to be worth the $40 to upgrade.  DoubleSpace seems a bit \nsaner than Stacker 2.0 (which I've replaced).  MemMaker is nowhere near as \naggressive as QEMM, but it doesn't hose my system like QEMM did (at least\nit hasn't yet).  Microsoft AntiVirus is just the latest version (or a \nreasonably recent one) of CPAV - mine was very aged, so this was quite welcome.\n\n \tMS-DOS 6.0 ain't the end all, be all of operating systems - but it's\nbetter than a sharp stick in the eye, unless you happen to be into that sort \nof thing.  :-)\n\n\t\t\t  Lee Preimesberger\nst1g9@jetson.uh.edu ----- Undergraduate Scum ----- University of Houston, USA\n                              ********\n         \"There is freedom of choice for every choice but mine.\"\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1055, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Facinating facts: 30 bit serial number, possibly fixed S1 and S2\nIn-Reply-To: denning@guvax.acc.georgetown.edu's message of 19 Apr 93 18:23:27 -0400\nReply-To: pmetzger@lehman.com\nOrganization: Lehman Brothers\nLines: 102\n\n\ndenning@guvax.acc.georgetown.edu (Vidkun Abraham Lauritz Quisling) writes:\n\n   Each chip includes the following components:\n\n      the Skipjack encryption algorithm\n      F, an 80-bit family key that is common to all chips\n      N, a 30-bit serial number\n      U, an 80-bit secret key that unlocks all messages encrypted with the chip\n\nHmmm. A thirty bit serial number. And, we are told, the unit key U is\nderived deterministically from this serial number. That means that\nthere are only one billion possible unit keys.\n\n   To generate the unit key for a serial number N, the 30-bit value N is\n   first padded with a fixed 34-bit block to produce a 64-bit block N1.\n   S1 and S2 are then used as keys to triple-encrypt N1, producing a\n   64-bit block R1:\n\n\t   R1 = E[D[E[N1; S1]; S2]; S1] .\n\n   Similarly, N is padded with two other 34-bit blocks to produce N2 and\n   N3, and two additional 64-bit blocks R2 and R3 are computed:  \n\n\t   R2 = E[D[E[N2; S1]; S2]; S1] \n\t   R3 = E[D[E[N3; S1]; S2]; S1] .\n\n   R1, R2, and R3 are then concatenated together, giving 192 bits. The\n   first 80 bits are assigned to U1 and the second 80 bits to U2.  The\n   rest are discarded.  The unit key U is the XOR of U1 and U2.  U1 and U2\n   are the key parts that are separately escrowed with the two escrow\n   agencies.\n\nHmmm. We must assume that generating the unit key U from the serial\nnumber N rather than generating it from a randomly selected U1 and U2\nis an intentional way of assuring a \"fail safe\" for the government --\nU is completedly determined given S1, S2 and N. If S1 and S2 do not\nchange they constitute effective \"master keys\" (along with F), the\ntheft of which (or the possession of which by various authorities)\ncompletely obviates the security of the system. However, more\ninterestingly, we know, for a fact that if S1 and S2 are fixed no\nmatter what the keyspace for U is no more than 2^30. Why not pick U1\nand U2 at random? Why this interesting restriction of they key space\nif it NOT to provide an additional back door?\n\nI find it disturbing that at the very best my security is dependant on\napproximately 30 bytes worth of information that could be written on\nthe back of a napkin.\n\nEven if S1 and S2 change periodically, the rationale behind this\nrestriction in the size of the keyspace seems strange if one is\nassuming that the goal is security -- and makes perfect sense if the\ngoal is an illusion of security.\n\nIf S1 and S2 do not change, even if they remain secret I wonder if\nthey can somehow be back-derived given enough unit key/serial number\npairs. We are assured that this cannot happen -- but no one\nunderstands how Skipjack works outside of government officials and,\nsoon, foreign intelligence services that gain the information via\nespionage. Presumably we will eventually have the information as well\n-- reverse engineering gets more and more advanced every year -- but\nby the time we know it may be too late.\n\n   As a sequence of values for U1, U2, and U are generated, they are\n   written onto three separate floppy disks.  The first disk contains a\n   file for each serial number that contains the corresponding key part\n   U1.  The second disk is similar but contains the U2 values.  The third\n   disk contains the unit keys U.  Agent 1 takes the first disk and agent\n   2 takes the second disk.  The third disk is used to program the chips.\n   After the chips are programmed, all information is discarded from the\n   vault and the agents leave.  The laptop may be destroyed for additional\n   assurance that no information is left behind.\n\nNone of this makes me feel the least bit secure. The silly notion of\n\"destroying the laptop\" appears to be yet another bizarre distraction.\nWe all know that you can't read data from DRAM that has been turned\noff for more than a few moments. On the other hand, what we don't know\nis why there is a need to generate the unit keys from S1 and S2 in the\nfirst place other than to weaken the system. We don't know if the\nagents in question would resist a million in cash a piece for their\ninformation -- its probably worth hundreds of million, so you can make\nthe bribe arbitrarily hard to resist. And to tell you the truth, doing\nthis in a \"vault\" rather than in Joe Random Tempest-shielded Room\nwith a laptop computer seems like melodrama designed to make\nhigh-school dropouts from Peoria impressed -- but it does very little\nfor most of the rest of us.\n\n   The protocol may be changed slightly so that four people are in the\n   room instead of two.  The first two would provide the seeds S1 and S2,\n   and the second two (the escrow agents) would take the disks back to\n   the escrow agencies.\n\nWhat would this provide? Lets say the escrow agencies are the ACLU and\nthe NRA and their agents personally take back the disks and are always\nhonest. Who cares? The NSA must be laughing out loud, because they\nhave the algorithm to regenerate U given N and likely don't need to\nsteal they keys as they effectively already have them.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1056, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kjell@hut.fi (Kjell Ljungqvist)\nSubject: Driver for Panasonic KX-P4430\nOrganization: Helsinki University of Technology\nLines: 15\nDistribution: comp\nReply-To: Kjell.Ljungqvist@hut.fi\nNNTP-Posting-Host: sandman.cs.hut.fi\n\nGreetings!\n\nI am looking pro a Win 3.1 printer driver for the Panasonic laser printer\nKX-P4430. (I am not sure about the order of the first letters in the\nname, but the numbers are right and they are important.) I have found \ndrivers for Panasonic printers 4450 and so on, but I think there should\nbe drivers available where the 4430 model is included. \n\nGrateful for any help!\n\n--\n-------------------------------------------------------------------------------\n \tkjell@hut.fi \tkjell@niksula.hut.fi\tkjell@vipunen.hut.fi\n-------------------------------------------------------------------------------\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1057, "properties": {"category": "rec.motorcycles", "text": "From: jon@bigdog (Jon Wright)\nSubject: Re: Women's Jackets? (was Ed must be a Daemon Child!!)\nOrganization: Pages Software Inc.\nDistribution: usa\nLines: 25\n\nIn article <1993Apr16.171211.5772@colorado.edu> bowmanj@csn.org (Jerry Bowman)  \nwrites:\n> In article <bethdC5Juzw.18F@netcom.com> bethd@netcom.com (Beth Dixon) writes:\n> >In article <1993Apr14.141637.20071@mnemosyne.cs.du.edu>  \njhensley@nyx.cs.du.edu (John Hensley) writes:\n> >>Beth Dixon (bethd@netcom.com) wrote:\n> >>: new Duc 750SS doesn't, so I'll have to go back to carrying my lipstick\n> >>: in my jacket pocket.  Life is _so_ hard.  :-)\n> >>\n> >>My wife is looking for a jacket, and most of the men's styles she's tried\n> >>don't fit too well. If they fit the shoulders and arms, they're too\n> >>tight across the chest, or something like that. Anyone have any \n> >>suggestions? I'm assuming that the V-Pilot, in addition to its handy\n> >>storage facilities, is a pretty decent fit. Is there any company that\n> >>makes a reasonable line of women's motorcycling stuff? More importantly,\n> >>does anyone in Boulder or Denver know of a shop that bothers carrying any?\n\nThere's an article in Motorcycling a couple of months back specifically on  \nwomen's attire for serious and not-so-serious riding.  They do mention who  \nmakes stuff specific for women's dimensions, and what also works OK enough as  \nwell.  Bates will make custom jackets and leathers for a reasonable charge.\n-- \n------------------------------------------------------------------------------\nJon Wright              \"Now how the hell did              Pages Software Inc.\nDoD #0823              THAT come outa my mouth?\"                  '86 VFR700f2\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1058, "properties": {"category": "rec.motorcycles", "text": "From: mcguire@cs.utexas.edu (Tommy Marcus McGuire)\nSubject: Re: Should liability insurance be required?\nOrganization: CS Dept, University of Texas at Austin\nLines: 42\nDistribution: usa\nNNTP-Posting-Host: cash.cs.utexas.edu\n\nIn article <1993Apr15.153312.4125@research.nj.nec.com> behanna@syl.nj.nec.com (Chris BeHanna) writes:\n>In article <tcora-140493155620@b329-gator-3.pica.army.mil> tcora@pica.army.mil (Tom Coradeschi) writes:\n>>In article <1993Apr14.125209.21247@walter.bellcore.com>,\n[...]\n>>BZZZT! If it is the other driver's fault, your insurance co pays you, less\n>>deductible, then recoups the total cost from the other guy/gal's company\n>>(there's a fancy word for it, which escapes me right now), and pays you the\n>>deductible. Or: you can go to the other guy/gal's company right off - just\n>>takes longer to get your cash (as opposed to State Farm, who cut me a check\n>>today, on the spot, for the damage to my wife's cage).\n>\n>\tThe word is \"subrogation.\"  Seems to me, if you're willing to wait\n>for the money from scumbag's insurance, that you save having to pay the\n>deductible.  However, if scumbag's insurance is Scum insurance, then you may\n>have to pay the deductible to get your insurance co.'s pack of rabid, large-\n>fanged lawyers to recover the damages from Scum insurance's lawyers.\n>\n>\tSad, but true.  Call it job security for lawyers.\n>\n>Later,\n>-- \n>Chris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\n[...]\n\n\nYou know, it sounds suspiciously like no fault doesn't even do what it\nwas advertised as doing---getting the lawyers out of the loop.\n\nSigh.  Another naive illusion down the toilet....\n\n\n\n\n\n-----\nTommy McGuire\nmcguire@cs.utexas.edu\nmcguire@austin.ibm.com\n\n\"...I will append an appropriate disclaimer to outgoing public information,\nidentifying it as personal and as independent of IBM....\"\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1059, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Re: Need Senate Bill numbers and House Resolution numbers\nOrganization: Ideology Busters, Inc.\nLines: 15\n\nIn article <C5u7Io.uMw@hawnews.watson.ibm.com> mjp@vnet.ibm.com (Michael J. Phelps) writes:\n>\n>Try the firearms archive.  Larry Cipriani's instructions follow.  By\n>the way, thanks for the archive Larry..\n\nThere are a few bills not yet in the archive, but these are the main ones\nwe need to fight.  And thanks to David Robinson for scanning so many of\nthem in for us!\n\nThe subdirectory bills are stored in was moved from \"congress\" to\n\"Congress\", that is:\n\ngodiva.nectar.cs.cmu.edu:/usr0/anon/pub/firearms/politics/rkba/Congress\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1060, "properties": {"category": "comp.windows.x", "text": "From: sp1henhj@edit (Henrik Balthazar Hjort)\nSubject: PostScript on X-terminal\nLines: 15\nX-Newsreader: Tin 1.1 PL3\n\n\n I have a problem when I'm using PostScript. When I am working local\non a SUN SPARCstaton IPC the PostScript works good, but when I connect\nto the SUN from a X-terminal I just get error messages that the\nPostScript cannot connect to the news-display.\n\n Why doesn't PostScript work on an X-terminal?\n\n Is there any way to make it work?\n\n\n Henrik \"Henrik Hjort\" Hjort\n\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1061, "properties": {"category": "sci.med", "text": "From: pchurch@swell.actrix.gen.nz (Pat Churchill)\nSubject: Re: eye dominance\nOrganization: Actrix Networks\nLines: 21\n\n\n> In article <C5E2G7.877@world.std.com> rsilver@world.std.com (Richard Silver) writes:\n> >\n> >Is there a right-eye dominance (eyedness?) as there is an\n> >overall right-handedness in the population? I mean do most\n> >people require less lens corrections for the one eye than the\n> >other? If so, what kinds of percentages can be attached to this?\n\nI have a long sighted eye and a short sighted eye. My right eye tends\nto cut out when I look at distant things, my left eye when I am close\nup.  I had specs to balance things up a bit but could do without them.\nI thought that, one way or another, I would always be able to see\nclearly.  Unfortunately middle age is rearing its ugly head and I can\nno longer see close up objects clearly.  Maybe it's just that my arms\nare getting shorter :-)\n\n-- \n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n            The floggings will continue until morale improves              \n    pchurch@swell.actrix.gen.nz  Pat Churchill, Wellington New Zealand     \n:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.051+0000", "event": "documents", "entityId": 1062, "properties": {"category": "sci.space", "text": "From: et@teal.csn.org (Eric H. Taylor)\nSubject: Re: Gravity waves, was: Predicting gravity wave quantization & Cosmic Noise\nSummary: Dong ....  Dong ....  Do I hear the death-knell of relativity?\nKeywords: space, curvature, nothing, tesla\nNntp-Posting-Host: teal.csn.org\nOrganization: 4-L Laboratories\nDistribution: World\nExpires: Wed, 28 Apr 1993 06:00:00 GMT\nLines: 30\n\nIn article <C4KvJF.4qo@well.sf.ca.us> metares@well.sf.ca.us (Tom Van Flandern) writes:\n>crb7q@kelvin.seas.Virginia.EDU (Cameron Randale Bass) writes:\n>> Bruce.Scott@launchpad.unc.edu (Bruce Scott) writes:\n>>> \"Existence\" is undefined unless it is synonymous with \"observable\" in\n>>> physics.\n>> [crb] Dong ....  Dong ....  Dong ....  Do I hear the death-knell of\n>> string theory?\n>\n>     I agree.  You can add \"dark matter\" and quarks and a lot of other\n>unobservable, purely theoretical constructs in physics to that list,\n>including the omni-present \"black holes.\"\n>\n>     Will Bruce argue that their existence can be inferred from theory\n>alone?  Then what about my original criticism, when I said \"Curvature\n>can only exist relative to something non-curved\"?  Bruce replied:\n>\"'Existence' is undefined unless it is synonymous with 'observable' in\n>physics.  We cannot observe more than the four dimensions we know about.\"\n>At the moment I don't see a way to defend that statement and the\n>existence of these unobservable phenomena simultaneously.  -|Tom|-\n\n\"I hold that space cannot be curved, for the simple reason that it can have\nno properties.\"\n\"Of properties we can only speak when dealing with matter filling the\nspace. To say that in the presence of large bodies space becomes curved,\nis equivalent to stating that something can act upon nothing. I,\nfor one, refuse to subscribe to such a view.\" - Nikola Tesla\n\n----\n ET  \"Tesla was 100 years ahead of his time. Perhaps now his time comes.\"\n----\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1063, "properties": {"category": "misc.forsale", "text": "From: mb4008@cehp11 (Morgan J Bullard)\nSubject: Re: Ami Pro v3.0 for sale!\nDistribution: na\nOrganization: University of Illinois at Urbana\nLines: 18\n\ngoyal@utdallas.edu (MOHIT K GOYAL) writes:\n\n>Lotus Ami Pro v3.0 - $150\n\n>Please reply if interested.\n\n>Thank you.\n\nOr you could get it new for $39.95.     \nthe phone is 800-732-3396  or  800-358-club  or  800-753-7877 the address is\nPC Buyer's Club \n62-H Montvale Ave.\nStoneham, MA 02180\nI don't work for them, just thought it was too good a deal to pass up.\nBTW, I recived mine 3 days before they said it would arrive. :)\n\t\t\tMorgan Bullard  mb4008@coewl.cen.uiuc.edu\n\t\t\t\tor      mjbb@uxa.cso.uiuc.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1064, "properties": {"category": "sci.electronics", "text": "From: kthompso@donald.WichitaKS.NCR.COM (Ken Thompson)\nSubject: Re: Cable TVI interference\nKeywords: catv cable television tvi\nOrganization: NCR Corporation Wichita, KS\nLines: 14\n\nvictor@inqmind.bison.mb.ca (Victor Laking) writes:\n\n)Do you know what frequencies chanels 17 to 19 use and what is usually \n)allocated to those frequencies for broadcast outside of cable?\n\n17 is air comm.\n18 is amateur\n19 is business and public service\n\n-- \nKen Thompson    N0ITL  \nNCR Corp.  Peripheral Products Division   Disk Array Development\n3718 N. Rock Road  Wichita KS 67226   (316)636-8783\nKen.Thompson@wichitaks.ncr.com \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1065, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Shuttle oxygen (was Budget Astronaut)\nOrganization: Express Access Online Communications USA\nLines: 11\nNNTP-Posting-Host: access.digex.net\n\n\n\nI thought that under emergency conditions,  the STS  can\nput down at any good size Airport.  IF it could take a C-5 or a\n747, then it can take an orbiter.   You just need a VOR/TAC\n\nI don't know if they need ILS.\n\npat\n\nANyone know for sure.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1066, "properties": {"category": "talk.politics.mideast", "text": "From: terziogl@ee.rochester.edu (Esin Terzioglu)\nSubject: Re: Public Service Translation No.2\nKeywords: effective Greek & Armenian postings\nOrganization: Univ of Rochester, College of Engineering and Applied Science\n\nIn article <1993Apr16.225409.22697@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n>In article <93332@hydra.gatech.EDU> gt1091a@prism.gatech.EDU (gt1091a gt1091a\n>KAAN,TIMUCIN) wrote:\n>\n>[KAAN] Who the hell is this guy David Davidian. I think he talks too much..\n>\n>I am your alter-ego!\n>\n>[KAAN] Yo , DAVID you would better shut the f... up.. O.K ??\n>\n>No, its' not OK! What are you going to do? Come and get me? \n\nMaybe he will. Maybe he is working for the secret Turkish service. You never \nknow. \n\n>[KAAN]  I don't like your attitute. You are full of lies and shit. \n>\n>In the United States we refer to it as Freedom of Speech. If you don't like \n\nNo it is still called \"you are full of shit\"; even in the US.:)\n\n>[KAAN] Didn't you hear the saying \"DON'T MESS WITH A TURC!!\"...\n>\n>No. Why do you ask? What are you going to do? Are you going to submit me to\n>bodily harm? Are you going to kill me? Are you going to torture me?\n\nWell, now you have. Don't worry Turks do not turn to terrorist actions like\nArmenians have so you can be sure that you will not be killed. However, I \ndo not know about the torture part... Timucin sounds like a tough guy so \nwatch out. \n\n>[KAAN] See ya in hell..\n>\n>Wrong again!\n>\n>[KAAN] Timucin.\n>\n>All I did was to translate a few lines from Turkish into English. If it was\n>so embarrassing in Turkish, it shouldn't have been written in the first place!\n>Don't kill the messenger!\n \nIf you are going to translate, you have to do it consistently. If you \nselectively translate things to serve your ugly purpose, people get \npisssssssssed offfffff. \n\nIn Ottoman times messengers were usually killed by cutting their heads off and\nsending it back to their country. But Ottoman empire no longer exists :(. \n(darn!) \n\nEsin.\n>-- \n>David Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\n>S.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \n>P.O. Box 382761                      |  even explain 1915?\" \n>Cambridge, MA 02238                  |              Turkish MP, March 1992 \n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1067, "properties": {"category": "talk.religion.misc", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Spreading Christianity (Re: Christian Extremist Kills Doctor)\nOrganization: Florida State University\nDistribution: na\nLines: 23\n\n\"David R. Sacco\" <dsav+@andrew.cmu.edu> writes:\n>    Not to be too snide about it, but I think this Christianity must\n>    be a very convenient religion, very maliable and suitable for\n>    any occassion since it seems one can take it any way one wants\n>    to go with it and follow whichever bits one pleases and\n>    reinterpret the bits that don't match with one's desires.  It\n>    is, in fact, so convenient that, were I capable of believing\n>    in a god, I might consider going for some brand of Christianity.\n>    The only difficulty left then, of course, is picking which sect\n>    to join.  There are just so many.\n>     \n>    Dean Kaflowitz\n> \n> Yes, Christianity is convenient.  Following the teachings of Jesus\n> Christ and the Ten Commandments is convenient.  Trying to love in a\n> hateful world is convenient.  Turning the other cheek is convenient.  So\n> convenient that it is burdensome at times.\n> \n> Dave.\n\nSome Christians take a 10% discount off the Ten Commandments.  Sunday\ncannot be substituted for the Sabbath.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1068, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: <<Pompous ass\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 20\n\nIn article <1ql6jiINN5df@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n>\n>The \"`little' things\" above were in reference to Germany, clearly.  People\n>said that there were similar things in Germany, but no one could name any.\n>They said that these were things that everyone should know, and that they\n>weren't going to waste their time repeating them.  Sounds to me like no one\n>knew, either.  I looked in some books, but to no avail.\n\n  If the Anne Frank exhibit makes it to your small little world,\n  take an afternoon to go see it.  \n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1069, "properties": {"category": "comp.graphics", "text": "From: lusardi@cs.buffalo.edu (Christopher Lusardi)\nSubject: Program Included: 2 Edge Detection Algorithms!\nArticle-I.D.: acsu.C5JqM6.HLG\nOrganization: State University of New York at Buffalo/Comp Sci\nLines: 142\nNntp-Posting-Host: hadar.cs.buffalo.edu\n\n/*\n\nThis program doesn't detect edges with compass operators and a laplacian\noperator. It should output 2 raw grey-scale images with edges. The output\ndoesn't look like edges at all.\n\nIn novicee terms, how do I correct the errors? Any improvements are welcome.\n(I'll even accept your corrected code.)\n\n(If I convolve the INPUT.IMAGE with a digital gaussian [7 by 7] to remove\nnoise, will I get an improvement with the laplacian.)\n\n--------------------------2 types of edge detection-------------------------*/\n#include <stdio.h> \n#include <math.h> \n\n#define IMAGEWIDTH 300\n#define IMAGEHEIGHT 300\n\nunsigned char Input_Image [IMAGEHEIGHT][IMAGEWIDTH];\n\nunsigned char Angles_Wanted [IMAGEHEIGHT][IMAGEWIDTH];\nunsigned char Magnitude_Image [IMAGEHEIGHT][IMAGEWIDTH];\n\nint Laplace_Op1 [3][3] = { 0,-1, 0, -1,4,-1,  0,-1, 0};\n\nint Compass_Op1 [3][3] = { 1, 1, 1,  0,0, 0, -1,-1,-1};\nint Compass_Op2 [3][3] = { 1, 1, 0,  1,0,-1,  0,-1,-1};\nint Compass_Op3 [3][3] = { 1, 0,-1,  1,0,-1,  1, 0,-1};\nint Compass_Op4 [3][3] = { 0,-1,-1,  1,0,-1,  1, 1, 0};\nint Compass_Op5 [3][3] = {-1,-1,-1,  0,0, 0,  1, 1, 1};\nint Compass_Op6 [3][3] = {-1,-1, 0, -1,0, 1,  0, 1, 1};\nint Compass_Op7 [3][3] = {-1, 0, 1, -1,0, 1, -1, 0, 1};\nint Compass_Op8 [3][3] = { 0, 1, 1, -1,0, 1, -1,-1, 0};\n\nvoid Compass (row,col)\nint row,col;\n{\n  int value;\n  int op_rows, op_cols;\n  int Compass1,Compass2,Compass3,Compass4;\n  int Compass5,Compass6,Compass7,Compass8;\n  \n  Compass1 = Compass2 = Compass3 = Compass4 = 0;\n  Compass5 = Compass6 = Compass7 = Compass8 = 0;\n  \n  for (op_rows = -1; op_rows < 2; op_rows++)\n    for (op_cols = -1; op_cols < 2; op_cols++)\n      {\n\tif (((row + op_rows) >= 0) && ((col + op_cols) >= 0))\n\t  {\n\t    \n\t    Compass1 += ((int) Input_Image [row + op_rows][col + op_cols]) * \n\t                       Compass_Op1 [op_rows + 1][op_cols + 1];\n\t    Compass2 += ((int) Input_Image [row + op_rows][col + op_cols]) * \n\t                       Compass_Op2 [op_rows + 1][op_cols + 1];\n\t    Compass3 += ((int) Input_Image [row + op_rows][col + op_cols]) * \n\t                       Compass_Op3 [op_rows + 1][op_cols + 1];\n\t    Compass4 += ((int) Input_Image [row + op_rows][col + op_cols]) * \n\t                       Compass_Op4 [op_rows + 1][op_cols + 1];\n\t    Compass5 += ((int) Input_Image [row + op_rows][col + op_cols]) * \n\t                       Compass_Op5 [op_rows + 1][op_cols + 1];\n\t    Compass6 += ((int) Input_Image [row + op_rows][col + op_cols]) * \n\t                       Compass_Op6 [op_rows + 1][op_cols + 1];\n\t    Compass7 += ((int) Input_Image [row + op_rows][col + op_cols]) * \n\t                       Compass_Op7 [op_rows + 1][op_cols + 1];\n\t    Compass8 += ((int) Input_Image [row + op_rows][col + op_cols]) * \n\t                       Compass_Op8 [op_rows + 1][op_cols + 1];\n\t    \n\t  }\n      }\n  if (Compass1 < Compass2)\n    value = Compass2;\n  else \n    value = Compass1;      \n  if (value < Compass3)\n    value = Compass3;\n  if (value < Compass4)\n    value = Compass4;\n  if (value < Compass5)\n    value = Compass5;\n  if (value < Compass6)\n    value = Compass6;\n  if (value < Compass7)\n    value = Compass7;\n  if (value < Compass8)\n    value = Compass8;\n\n  Magnitude_Image [row][col] = (char) value;\n}\n\nvoid Laplace1 (row,col)\nint row,col;\n{\n  int op_rows, op_cols;\n\n  Magnitude_Image [row][col] = 0;\n  for (op_rows = -1; op_rows < 2; op_rows++)\n    for (op_cols = -1; op_cols < 2; op_cols++)\n      if (((row + op_rows) >= 0) && ((col + op_cols) >= 0))\n\tMagnitude_Image [row][col] = \n\t  (char) ((int)Magnitude_Image [row][col] +\n\t\t  ((int) Input_Image [row + op_rows][col + op_cols] * \n\t\t   Laplace_Op1 [op_rows + 1][op_cols + 1]));\n}\n\nmain  ()\n{\n  FILE *Original_Image_fp;\n  FILE *Laplace1_mag_fp,*Laplace2_mag_fp,*Laplace3_mag_fp;\n  FILE *Compass_mag_fp;\n\n  int row, col, Algo_Count;\n\n  Original_Image_fp = fopen (\"INPUT.IMAGE\",\"rb\");\n\n  Laplace1_mag_fp = fopen (\"Laplace1_Magnitude\",\"wb\");\n  Compass_mag_fp = fopen (\"Compass_Magnitude\",\"wb\");\n\n  fread ((unsigned char *) Input_Image,sizeof(unsigned char),IMAGEHEIGHT * IMAGEWIDTH,Original_Image_fp);\n  for (Algo_Count = 0; Algo_Count < 2;Algo_Count ++)\n    {\n      for (row = 0; row < IMAGEHEIGHT; row++) \n\tfor (col = 0; col < IMAGEWIDTH; col++) \n\t  if (!Algo_Count)\n\t    Laplace1 (row,col);\n\t  else \n\t    Compass (row,col);\n      \n      if (!Algo_Count)\n\tfwrite(Magnitude_Image,sizeof(char),IMAGEHEIGHT * IMAGEWIDTH,Laplace1_mag_fp);\n      else \n\tfwrite(Magnitude_Image,sizeof(char),IMAGEHEIGHT * IMAGEWIDTH,Compass_mag_fp);\n    }\n}\n\n  \n-- \n|  .-,                ###|For a lot of .au music: ftp sounds.sdsu.edu\n| /   /   __  ,  _    ###|then cat file.au > /dev/audio\n| \\_>/ >_/ (_/\\_/<>_     |UB library catalog:telnet bison.acsu.buffalo.edu\n|_                14261 _|(When in doubt ask: xarchie, xgopher, or xwais.)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1070, "properties": {"category": "sci.electronics", "text": "From: wa2ise@cbnewsb.cb.att.com (robert.f.casey)\nSubject: 2 level brightness Xmas light set (for Easter?\nKeywords: xmas\nOrganization: AT&T\nLines: 54\n\n\nYes, I know it's nowhere near Christmas time, but I'm gonna loose\nNet access in a few days (maybe a week or 2 if I'm lucky), and wanted\nto post this for interested people to save 'till Xmas.   :-(\nNote: Bell Labs is a good place IF you have a PhD and a good boss, I\nhave neither.\n--------------------------------------------------------------------------\n\nSubject: Xmas light set with 2 levels of brightness\n\nAnother version of a variable brightness Xmas light set:\nThis set starts with a 2 blinker 35 bulb string.  \n\nDIAGRAM:  orginal 2 way set\n\n120v---+--b-*-*-*-*-*-*-*--!\n       !---b-*-*-*-*-*-*-*-!\n                           !\n120rtn_____________________!\n\nmodified set for 2 level brightness:\n\n                string 1\n120v---------*-*-*-*-*-*-*-*--!\n  \\_10K_______*-*-*-*-*-*-*-*-!\n    5w    !      string 2     !\n          b   ________________!\n120v rtn__!___!\n\n             ^ Note: no mods to wiring to the right of this point.\n\nOnly one blinker is used.\n\nNote that the blinker would not have as much current thru it as the\nstring 1 bulbs, because of the second string of bulbs in\nparallel with it.  That's why the use of the 10K 5W resistor\nhere to add extra current thru the blinker to make up for the\ncurrent shunted thru the second string while the blinker is glowing\nand the second string is not glowing.  When the blinker goes open,\nthis resistor has only a slight effect on the brightness of the\nstrings, s1 slightly dimmer, s2 slightly brighter.  \nOr use a 3W 120v bulb in place of the 10K resistor if you can get\none.  Caution, do not replace with a standard C9 bulb, as these\ndraw too much current and burn out the blinker.  C9 = approx 7W.\n\nWhat you'll see when it's working:  powerup, string 1 will light \nat full brightness, and b will be lit, bypassing most of the current \nfrom the second string, making them not light.  b will open, placing \nboth strings in series, making the string that was out to glow at a \nlow brightness, and the other string that was on before to glow \nat reduced brightness. \n\nBe sure to wire and insulate the splices, resistor leads, and cut wires \nin a safe manner!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1071, "properties": {"category": "talk.religion.misc", "text": "From: cdcolvin@rahul.net (Christopher D. Colvin)\nSubject: Re: Rosicrucian Order(s) ?!\nNntp-Posting-Host: bolero\nOrganization: a2i network\nLines: 26\n\nIn article <1qvibv$b75@usenet.INS.CWRU.Edu> ch981@cleveland.Freenet.Edu (Tony \nAlicea) writes:\n>\n>In a previous article, cdcolvin@rahul.net (Christopher D. Colvin) says:\n>\n>>I worked at AMORC when I was in HS.\n>\n>OK: So you were a naive teen.\n>\n>>He [HS Lewis] dates back to the 20's. \n>\n>Wrong: 1915 and if you do your homework, 1909.\n>But he was born LAST century (1883).\n>\n>>\n>>Right now AMORC is embroiled in some internal political turmoil. \n>\n>No it isn't. \n>\n>\n\nI guess the San Jose Mercury news is wrong then, and if so, why is the DA \ninvolved? \n \n-- \nChristopher D. Colvin <cdcolvin@rahul.net>\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1072, "properties": {"category": "rec.autos", "text": "From: hamachi@adobe.com (Gordon Hamachi)\nSubject: Re: Honda Accord Brake Problem\nOrganization: Adobe Systems Incorporated\nLines: 32\n\nJoni Ciarletta writes\n> My Honda Accord just hit the magic 100,000 mile mark and now\n> all sorts of things are beginning to go bad. The latest problem\n> I am experiencing is with my brakes.  They still stop the\n> car fine, but once I am stopped completely, my brake pedal\n> will sink another 2 or 3 inches all by itself.  If feels really\n> strange, and I am worried my brakes will quit working one of\n> these days.\n> \n> I checked my brake fluid, and the reservoir was full, but the\n> fluid itself looked really dirty (like dirty oil).  I called\n> my mechanic and he told me I need a new brake master cylinder,\n> which will cost me a whopping $250-300.\n\nYou are not alone.  My '79 Honda Accord with 110,000 miles on it started  \nshowing the same behavior.\n\nI replaced the brake master cylinder myself.  It took about an hour and cost  \nabout $45.  Sure beats paying $300 to have someone else do it!  If I wanted to  \nrebuild my own master cylinder instead of putting in a rebuilt one, it would  \nhave cost only $20 to $30 for the rebuild kit.\n\nThe Honda brake master cylinder is easy to get to.  Two bolts attach it to the  \nengine compartment.  Two brake lines enter the master cylinder.  The tricky  \npart was that the brake lines were stuck tight.  My Craftsmen open end wrench  \nrounded off the bolt heads!  I had to use Vise Grips to loosen those suckers.   \nWow!  Best invention since sliced bread.  After that it was very easy.  Bolt  \nthe new part in place, add new brake fluid, and bleed the brakes.\n\nThis is quite easy even for a beginner.  My local auto parts store had a repair  \nmanual for the Honda Accord; it had detailed diagrams of the master brake  \ncylinder and a step-by-step procedure for replacing it.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1073, "properties": {"category": "rec.motorcycles", "text": "From: dmatejka@netcom.com (Daniel Matejka)\nSubject: Re: Speeding ticket from CHP\nOrganization: Netcom - Online Communication Services\nLines: 47\n\nIn article <1pq4t7$k5i@agate.berkeley.edu> downey@homer.CS.Berkeley.EDU (Allen B. Downey) writes:\n>       Fight your ticket : California edition by David Brown 1st ed.\n>       Berkeley, CA : Nolo Press, 1982\n>\n>The second edition is out (but not in UCB's library).  Good luck; let\n>us know how it goes.\n>\n  Daniel Matejka writes:\n  The fourth edition is out, too.  But it's probably also not\nvery high on UCB's \"gotta have that\" list.\n\nIn article <65930405053856/0005111312NA1EM@mcimail.com> 0005111312@mcimail.com (Peter Nesbitt) writes:\n>Riding to work last week via Hwy 12 from Suisun, to I-80, I was pulled over by\n>a CHP black and white by the 76 Gas station by Jameson Canyon Road.  The\n>officer stated \"...it <looked> like you were going kinda fast coming down\n>highway 12.  You <must have> been going at least 70 or 75.\"  I just said okay,\n>and did not agree or disagree to anything he said. \n\n  Can you beat this ticket?  Personally, I think it's your Duty As a Citizen\nto make it as much trouble as possible for them, so maybe they'll Give Up\nand Leave Us Alone Someday Soon.\n  The cop was certainly within his legal rights to nail you by guessing\nyour speed.  Mr. Brown (the author of Fight Your Ticket) mentions an\nOakland judge who convicted a speeder \"on the officer's testimony that\nthe driver's car sounded like it was being driven at an excessive speed.\"\n  You can pay off the State and your insurance company, or you can\ntake it to court and be creative.  Personally, I've never won that way\nor seen anyone win, but the judge always listens politely.  And I haven't\nseen _that_ many attempts.\n  You could try the argument that since bikes are shorter than the\ncars whose speed the nice officer is accustomed to guessing, they therefore\nappear to be further away, and so their speed appears to be greater than\nit actually is.  I left out a step or two, but you get the idea.  If you\ncan make it convincing, theoretically you're supposed to win.\n  I've never tried proving the cop was mistaken.  I did get to see\nsome other poor biker try it.  He was mixing up various facts like\nthe maximum acceleration of a (cop) car, and the distance at which\nthe cop had been pacing him, and end up demonstrating that he couldn't\npossibly have been going as fast as the cop had suggested.  He'd\nbrought diagrams and a calculator.  He was Prepared.  He lost.  Keep\nin mind cops do this all the time, and their word is better than yours.\nMaybe, though, they don't guess how fast bikes are going all the time.\nBesides, this guy didn't speak English very well, and ended up absolutely\nconfounding the judge, the cop, and everyone else in the room who'd been\nrecently criminalized by some twit with a gun and a quota.\n  Ahem.  OK, I'm better now.  Maybe he'd have won had his presentation\nbeen more polished.  Maybe not.  He did get applause.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1074, "properties": {"category": "talk.politics.misc", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Limiting Govt (Was Re: Employment (was Re: Why not concentrate...)\nOrganization: Stratus Computer, Inc.\nLines: 23\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <C5JH23.Eu8@encore.com>, rcollins@ns.encore.com (Roger Collins) writes:\n\n> Look at the whole picture, not just\n> randomly picked libertarian positions.  If government is not allowed to\n> use \"non-initiated force\" to achieve its goals, than no special interest\n> can influence the government to use non-initiated force on their behalf.\n\nEither the government has force available to it, or it doesn't.  The\nLibertarian position is that the government can use force only when someone\nelse uses force first -- even when that first force is not directed\nagainst the government, but one of its citizens.  That all being true, \nwhat safeguards do we have against the government CLAIMING that some\ninitiation of force on its part is really a response?  (Like the burning\nof the Maine, the Tonkin Gulf incident, or the assault on Waco?)\n\nI ask this not to argue, but to understand.\n\n(Followups to alt.politics.libertarian only.)\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1075, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 33\n\nIn article <C5L1Ey.Jts@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike Cobb) writes:\n>In <11825@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n>\n>\n>>  Actually, my atheism is based on ignorance.  Ignorance of the\n>>  existence of any god.  Don't fall into the \"atheists don't believe\n>>  because of their pride\" mistake.\n>\n>How do you know it's based on ignorance, couldn't that be wrong? Why would it\n>be wrong \n>to fall into the trap that you mentioned? \n>\n\n  If I'm wrong, god is free at any time to correct my mistake.  That\n  he continues not to do so, while supposedly proclaiming his\n  undying love for my eternal soul, speaks volumes.\n\n  As for the trap, you are not in a position to tell me that I don't\n  believe in god because I do not wish to.  Unless you can know my\n  motivations better than I do myself, you should believe me when I\n  say that I earnestly searched for god for years and never found\n  him.\n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1076, "properties": {"category": "sci.space", "text": "Subject: Space FAQ 01/15 - Introduction\nFrom: leech@cs.unc.edu (Jon Leech)\nExpires: 6 May 1993 19:53:44 GMT\nOrganization: University of North Carolina, Chapel Hill\nKeywords: Frequently Asked Questions\nSupersedes: <intro_730956346@cs.unc.edu>\nNNTP-Posting-Host: mahler.cs.unc.edu\nLines: 310\n\nArchive-name: space/intro\nLast-modified: $Date: 93/04/01 14:39:10 $\n\n    FREQUENTLY ASKED QUESTIONS ON SCI.SPACE/SCI.ASTRO\n\n    INTRODUCTION\n\n    This series of linked messages is periodically posted to the Usenet\ngroups sci.space and sci.astro in an attempt to provide good answers to\nfrequently asked questions and other reference material which is worth\npreserving. If you have corrections or answers to other frequently asked\nquestions that you would like included in this posting, send email to\nleech@cs.unc.edu (Jon Leech).\n\n    If you don't want to see the FAQ, add 'Frequently Asked Questions' to\nyour KILL file for this group (if you're not reading this with a newsreader\nthat can kill articles by subject, you're out of luck).\n\n    The FAQ volume is excessive right now and will hopefully be trimmed down\nby rewriting and condensing over time. The FAQ postings are available in\nthe Ames SPACE archive in FAQ/faq<#>.\n\n    Good summaries will be accepted in place of the answers given here. The\npoint of this is to circulate existing information, and avoid rehashing old\nanswers. Better to build on top than start again. Nothing more depressing\nthan rehashing old topics for the 100th time. References are provided\nbecause they give more complete information than any short generalization.\n\n    Questions fall into three basic types:\n\n    1) Where do I find some information about space?\n\n    Try your local public library first. The net is not a good place to ask\n    for general information. Ask INDIVIDUALS (by email) if you must. There\n    are other sources, use them, too. The net is a place for open ended\n    discussion.\n\n    2) I have an idea which would improve space flight?\n\n    Hope you aren't surprised, but 9,999 out of 10,000 have usually been\n    thought of before. Again, contact a direct individual source for\n    evaluation. NASA fields thousands of these each day.\n\n    3) Miscellanous queries.\n\n    These are addressed on a case-by-case basis in the following series of\n    FAQ postings.\n\n\n    SUGGESTIONS FOR BETTER NETIQUETTE\n\n    Read news.announce.newusers if you're on Usenet.\n    Minimize cross references, [Do you REALLY NEED to?]\n    Edit \"Subject:\" lines, especially if you're taking a tangent.\n    Send mail instead, avoid posting follow ups. (1 mail message worth\n\t100 posts).\n    Internet mail readers: send requests to add/drop to SPACE-REQUEST\n\tnot SPACE.\n    Read all available articles before posting a follow-up. (Check all\n\treferences.)\n    Cut down attributed articles (leave only the points you're\n\tresponding to; remove signatures and headers). Summarize!\n    Put a return address in the body (signature) of your message (mail\n\tor article), state your institution, etc. Don't assume the\n\t'reply' function of mailers will work.\n    Use absolute dates. Post in a timely way. Don't post what everyone\n\twill get on TV anyway.\n    Some editors and window systems do character count line wrapping:\n\tkeep lines under 80 characters for those using ASCII terminals\n\t(use carriage returns).\n\n\n    INDEX TO LINKED POSTINGS\n\n    I've attempted to break the postings up into related areas. There isn't\n    a keyword index yet; the following lists the major subject areas in each\n    posting. Only those containing astronomy-related material are posted to\n    sci.astro (indicated by '*' following the posting number).\n\n    #\tContents\n\n    1*\tIntroduction\n\t    Suggestions for better netiquette\n\t    Index to linked postings\n\t    Notes on addresses, phone numbers, etc.\n\t    Contributors\n\n    2*\tNetwork resources\n\t    Overview\n\t    Mailing lists\n\t    Periodically updated information\n\t    Warning about non-public networks\n\n    3*\tOnline (and some offline) sources of images, data, etc.\n\t    Introduction\n\t    Viewing Images\n\t    Online Archives\n\t\tNASA Ames\n\t\tNASA Astrophysics Data System\n\t\tNASA Jet Propulsion Lab (Mission Information and Images)\n\t\tNASA Langley (Technical Reports)\n\t\tNASA Spacelink\n\t\tNational Space Science Data Center\n\t\tSpace Telescope Science Institute Electronic Info. Service\n\t\tStarcat\n\t\tAstronomical Databases\n\t\tAstronomy Programs\n\t\tOrbital Element Sets\n\t\tSPACE Digest\n\t    Landsat & NASA Photos\n\t    Planetary Maps\n\t    Cometary Orbits\n\n    4*\tPerforming calculations and interpreting data formats\n\t    Computing spacecraft orbits and trajectories\n\t    Computing planetary positions\n\t    Computing crater diameters from Earth-impacting asteroids\n\t    Map projections and spherical trignometry\n\t    Performing N-body simulations efficiently\n\t    Interpreting the FITS image format\n\t    Sky (Unix ephemeris program)\n\t    Three-dimensional star/galaxy coordinates\n\n    5*\tReferences on specific areas\n\t    Publishers of space/astronomy material\n\t    Careers in the space industry\n\t    DC-X single-stage to orbit (SSTO) program\n\t    How to name a star after a person\n\t    LLNL \"great exploration\"\n\t    Lunar Prospector\n\t    Lunar science and activities\n\t    Orbiting Earth satellite histories\n\t    Spacecraft models\n\t    Rocket propulsion\n\t    Spacecraft design\n\t    Esoteric propulsion schemes (solar sails, lasers, fusion...)\n\t    Spy satellites\n\t    Space shuttle computer systems\n\t    SETI computation (signal processing)\n\t    Amateur satellies & weather satellites\n\t    Tides\n\n    6*\tConstants and equations for calculations\n\n    7*\tAstronomical Mnemonics\n\n    8\tContacting NASA, ESA, and other space agencies/companies\n\t    NASA Centers / Arianespace / ESA / NASDA / Soyuzkarta / Space\n\t\tCamp / Space Commerce Corporation / Spacehab / SPOT Image\n\t    Other commercial space businesses\n\n    9\tSpace shuttle answers, launch schedules, TV coverage\n\t    Shuttle launchings and landings; schedules and how to see them\n\t    Why does the shuttle roll just after liftoff?\n\t    How to receive the NASA TV channel, NASA SELECT\n\t    Amateur radio frequencies for shuttle missions\n\t    Solid Rocket Booster fuel composition\n\n    10\tPlanetary probes - Historical Missions\n\t    US planetary missions\n\t    Mariner (Venus, Mars, & Mercury flybys and orbiters)\n\t    Pioneer (Moon, Sun, Venus, Jupiter, and Saturn flybys and orbiters)\n\t    Ranger (Lunar lander and impact missions)\n\t    Lunar Orbiter (Lunar surface photography)\n\t    Surveyor (Lunar soft landers)\n\t    Viking (Mars orbiters and landers)\n\t    Voyager (Outer planet flybys)\n\t    Soviet planetary missions\n\t    Soviet Lunar probes\n\t    Soviet Venus probes\n\t    Soviet Mars probes\n\t    Japanese planetary missions\n\t    Planetary mission references\n\n    11\tUpcoming planetary probes - missions and schedules\n\t    Cassini\n\t    Galileo\n\t    Magellan\n\t    Mars Observer\n\t    TOPEX/Poseidon\n\t    Ulysses\n\t    Other space science missions\n\t    Proposed missions\n\n    12\tControversial questions\n\t    What happened to the Saturn V plans\n\t    Why data from space missions isn't immediately available\n\t    Risks of nuclear (RTG) power sources for space probes\n\t    Impact of the space shuttle on the ozone layer\n\t    How long can a human live unprotected in space\n\t    How the Challenger astronauts died\n\t    Using the shuttle beyond Low Earth Orbit\n\t    The \"Face on Mars\"\n\n    13\tSpace activist/interest/research groups and space publications\n\t    Groups\n\t    Publications\n\t    Undocumented Groups\n\n    14\tHow to become an astronaut\n\n    15\tOrbital and Planetary Launch Services\n\n\n    NOTES ON ADDRESSES, PHONE NUMBERS, ETC.\n\n    Unless otherwise specified, telephone numbers, addresses, and so on are\n    for the United States of America. Non-US readers should remember to add\n    the country code for telephone calls, etc.\n\n\n    CREDITS\n\n    Eugene Miya started a series of linked FAQ postings some years ago which\n    inspired (and was largely absorbed into) this set.\n\n    Peter Yee and Ron Baalke have and continue to spend a lot of their own\n    time setting up the SPACE archives at NASA Ames and forwarding official\n    NASA announcements.\n\n    Many other people have contributed material to this list in the form of\n    old postings to sci.space and sci.astro which I've edited. Please let me\n    know if corrections need to be made. Contributors I've managed to keep\n    track of are:\n\n    0004847546@mcimail.com (Francis Reddy)\t- map projections\n    ad038@yfn.ysu.edu (Steven Fisk)\t\t- publication refs.\n    akerman@bill.phy.queensu.CA (Richard Akerman)   - crater diameters\n    alweigel@athena.mit.edu (Lisa Weigel)\t- SEDS info\n    aoab314@emx.utexas.edu (Srinivas Bettadpur) - tides\n    awpaeth@watcgl.waterloo.edu (Alan Wm Paeth) - map projections\n    aws@iti.org (Allen W. Sherzer)\t\t- Great Exploration\n    baalke@kelvin.jpl.nasa.gov (Ron Baalke)\t- planetary probe schedules\n    bankst@rata.vuw.ac.nz (Timothy Banks)\t- map projections,\n\tvariable star analysis archive\n    bern@uni-trier.de (Jochen Bern)\t\t- German mnemonic translation\n    brosen@pioneer.arc.nasa.gov (Bernie Rosen)\t- Space Camp\n    bschlesinger@nssdca.gsfc.nasa.gov (Barry Schlesinger)   - FITS format\n    cew@venera.isi.edu (Craig E. Ward)\t\t- space group contact info\n    chapin@cbnewsc.att.com (Tom Chapin)\t\t- planetary positions\n    cunnida@tenet.edu (D. Alan Cunningham)\t- NASA Spacelink\n    cyamamot@kilroy.Jpl.Nasa.Gov (Cliff Yamamoto) - orbital elements\n    datri@convex.com (Anthony Datri)\t\t- PDS/VICAR viewing software\n    daver@sjc.mentorg.com (Dave Rickel)\t\t- orbit formulae\n    dlbres10@pc.usl.edu (Phil Fraering)\t\t- propulsion\n    eder@hsvaic.boeing.com (Dani Eder)\t\t- Saturn V plans, SRBs\n    eugene@eos.arc.nasa.gov (Eugene N. Miya)\t- introduction,\n\tNASA contact info, started FAQ postings\n    french@isu.isunet.edu (Patrick M. French)\t- space group contact info\n    g@telesoft.com (Gary Morris)\t\t- amateur radio info\n    gaetz@cfa.harvard.edu (Terry Gaetz)\t\t- N-body calculations,\n\torbital dynamics\n    grandi@noao.edu (Steve Grandi)\t\t- planetary positions\n    greer%utd201.dnet%utadnx@utspan.span.nasa.gov (Dale M. Greer)   - constants\n    henry@zoo.toronto.edu (Henry Spencer)\t- survival in vacuum,\n\tastronaut how-to, Challenger disaster, publication refs, DC-X\n    higgins@fnal.bitnet (William Higgins)\t- RTGs, publishers,\n\tshuttle landings, spysats, propulsion, \"Face on Mars\"\n    hmueller@cssun.tamu.edu (Hal Mueller)\t- map projections,\n\torbital dynamics\n    jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\t- launch services\n    jim@pnet01.cts.com (Jim Bowery)\t\t- propulsion, launch services\n    jnhead@pirl.lpl.arizona.edu (James N. Head) - atmospheric scale heights\n    jscotti@lpl.arizona.edu (Jim Scotti)\t- planetary positions\n    kcarroll@zoo.toronto.edu (Kieran A. Carroll)- refs for spacecraft design\n    ken@orion.bitnet (Kenneth Ng)\t\t- RTGs\n    kjenks@gothamcity.jsc.nasa.gov (Ken Jenks)\t- shuttle roll manuever\n    klaes@verga.enet.dec.com (Larry Klaes)\t- planetary probe history\n    leech@cs.unc.edu (Jon Leech)\t\t- crater diameters\n    lfa@ssi.com (Lou Adornato)\t\t\t- orbital dynamics\n    maury.markowitz@egsgate.fidonet.org (Maury Markowitz)   - propulsion\n    max@west.darkside.com (Erik Max Francis)\t- equations\n    mbellon@mcdurb.Urbana.Gould.COM\t\t- N-body calculations\n    mcconley@phoenix.Princeton.edu (Marc Wayne Mcconley)    - space careers\n    msb@sq.com (Mark Brader)\t\t\t- Mariner 1 info.\n    mwm@cmu.edu (Mark Maimone)\t\t\t- SPACE Digest\n    nickw@syma.sussex.ac.uk (Dr. Nick Watkins)\t- models, spysats\n    ohainaut@eso.org (Olivier R. Hainaut)\t- publishers, STARCAT\n    oneil@aio.jsc.nasa.gov (Graham O'Neil)\t- Lunar Prospector\n    panama@cup.portal.com (Kenneth W Durham)\t- cometary orbits, IAU\n    paul.blase@nss.fidonet.org (Paul Blase)\t- propulsion\n    pjs@plato.jpl.nasa.gov (Peter Scott)\t- RTGs\n    pschleck@unomaha.edu (Paul W. Schleck)\t- AMSAT, ARRL contact info\n    rdb@mel.cocam.oz.au (Rodney Brown)\t\t- propulsion refs\n    rja7m@phil.cs.virginia.edu (Ran Atkinson)\t- FTPable astro. programs\n    rjungcla@ihlpb.att.com (R. Michael Jungclas)- models\n    roelle@sigi.jhuapl.edu (Curt Roelle)\t- German mnemonic translation\n    seal@leonardo.jpl.nasa.gov (David Seal)\t- Cassini mission schedule\n    shafer@skipper.dfrf.nasa.gov (Mary Shafer)\t- photos, shuttle landings\n    smith@sndpit.enet.dec.com (Willie Smith)\t- photos\n    stephen@gpwd.gp.co.nz (Stephen Dixon)\t- shuttle audio frequencies\n    sterner@warper.jhuapl.edu (Ray Sterner)\t- planetary positions\n    stooke@vaxr.sscl.uwo.ca (Phil Stooke)\t- planetary maps\n    ted_anderson@transarc.com (Ted Anderson)\t- propulsion\n    terry@astro.as.utexas.edu (Terry Hancock)\t- NASA center info\n    thorson@typhoon.atmos.coloState.edu (Bill Thorson) - FITS info\n    tm2b+@andrew.cmu.edu (Todd L. Masco)\t- SPACE Digest\n    tom@ssd.csd.harris.com (Tom Horsley)\t- refs for algorithms\n    veikko.makela@helsinki.fi (Veikko Makela)\t- orbital element sets\n    Wales.Larrison@ofa123.fidonet.org (Wales Larrison) - groups & publications\n    wayne@csri.utoronto.ca (Wayne Hayes)\t- constants\n    weemba@libra.wistar.upenn.edu (Matthew P Wiener) - Voyager history\n    yamada@yscvax.ysc.go.jp (Yoshiro Yamada)\t- ISAS/NASDA missions\n    yee@ames.arc.nasa.gov (Peter Yee)\t\t- AMES archive server,\n\tpropulsion\n\n    In Net memoriam:\n\tTed Flinn\n\nNEXT: FAQ #2/15 - Network Resources\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1077, "properties": {"category": "comp.graphics", "text": "From: sts@mfltd.co.uk (Steve Sherwood (x5543))\nSubject: Re: Virtual Reality for X on the CHEAP!\nReply-To: sts@mfltd.co.uk\nOrganization: Micro Focus Ltd, Newbury, England\nLines: 19\n\nHas anyone got multiverse to work ?\n\nI have built it on 486 svr4, mips svr4s and Sun SparcStation.\n\nThere seems to be many bugs in it.  The 'dogfight' and 'dactyl' simply do nothing\n(After fixing a bug where a variable is defined twice in two different modules - One needed\nsetting to static - else the client core-dumped)\n\nSteve\n-- \n\n         Extn 5543, sts@mfltd.co.uk, !uunet!mfocus!sts\n+-----------------------------------+------------------------+ Micro Focus\n| Just like Pariah, I have no name, |    rm -rf *            | 26 West Street\n| Living in a blaze of obscurity,   |      \"rum ruff splat\"  | Newbury\n| Need courage to survive the day.  |                        | Berkshire\n+-----------------------------------+------------------------+ England\n         (A)bort (R)etry (I)nfluence with large hammer\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1078, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Jewish Baseball Players?\nFrom: fry@zariski.harvard.edu (David Fry)\nOrganization: Harvard Math Department\nNntp-Posting-Host: zariski.harvard.edu\nLines: 10\n\n\nOnce, on Jeopardy, the category was \"Jewish Sports Heros,\" believe it\nor not.  The answer was, \"This pitcher had four no-hitters with the\nDodgers in the 60s.\"  The contestant said, \"Who is Hank Aaron?\" Alex\nTrebek said something like, \"I don't think Hank Aaron was a pitcher.\"\n\nDavid Fry                                  fry@math.harvard.edu\nDivision of Applied Sciences               fry@huma1.bitnet\nHarvard University                      ...!harvard!huma1!fry\nCambridge, MA  02138            \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1079, "properties": {"category": "rec.sport.baseball", "text": "From: jrogoff@scott.skidmore.edu (jay rogoff)\nSubject: Re: best homeruns\nDistribution: rec\nOrganization: Skidmore College, Saratoga Springs NY\nLines: 5\n\nOn two separate occasions I saw Dick Allen (back when he was Richie)\nhomer at Shea off the middle of the black centerfield hitter's\nbackground screen.  I think both shots would have traveled 500 feet.\n\nJay\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1080, "properties": {"category": "rec.sport.baseball", "text": "From: rachford@en.ecn.purdue.edu (Jeffery M Rachford)\nSubject: Sandberg Update...Won't be long now!!!\nOrganization: Purdue University Engineering Computer Network\nDistribution: na\nLines: 21\n\n\nHi all you Ryno fans (and those interested...)\nTodays Chicago Tribune had this written in it today in regards to\nRyne Sandberg...\n\n\"Ryne Sandberg is ahead of schedule in his recovery from a broken\nleft hand and could be back in the lineup by May 1, manager Jim\nLefebvre said Friday.\nDoctors cleared Sandberg to swing a padded bat at a ball in his \ngloved hand.\n'' I'm not surprised his rehabilitation has been moved up,'' said\nLefebvre.  '' He's a fast healer, and he doesn't like being on the \ndisabled list.  He's been running since he was hurt [March 5] and\nis in the best shape of his life.  May 1 is his target date for\ngetting back in the lineup.\"\n\nHold on to your hats Cub fans...more later as information\npresents itself.\n\nJeffery\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1081, "properties": {"category": "rec.motorcycles", "text": "From: klinger@ccu.umanitoba.ca (Jorg Klinger)\nSubject: Re: uh, der, whassa deltabox?\nNntp-Posting-Host: ccu.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Canada\nLines: 24\n\nIn <ramarren-150493134758@kops.apple.com> ramarren@apple.com (Godfrey DiGiorgi) writes:\n\n>>Can someone tell me what a deltabox frame is, and what relation that has,\n>>if any, to the frame on my Hawk GT?  That way, next time some guy comes up\n>>to me in some parking lot and sez \"hey, dude, nice bike, is that a deltabox\n>>frame on there?\" I can say something besides \"duh, er, huh?\"\n\n\n  I beleive it's called the \"Dentabox\" frame. \n\nNothing some putty and paint won't fix.\n\n__\n   Jorg Klinger            |       GSXR1100        | If you only new who\n   Arch. & Eng. Services   |\"Lost Horizons\"  CR500 | I think I am. \n   UManitoba, Man. Ca.     |\"The Embalmer\"   IT175 |           - anonymous\n\n                                --Squidonk--       \n\n\n\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1082, "properties": {"category": "alt.atheism", "text": "From: jcopelan@nyx.cs.du.edu (The One and Only)\nSubject: Re: Where are they now?\nOrganization: Salvation Army Draft Board\nLines: 31\n\nIn article <1ql0d3$5vo@dr-pepper.East.Sun.COM> geoff@East.Sun.COM writes:\n>Your posting provoked me into checking my save file for memorable\n>posts. The first I captured was by Ken Arromdee on 19 Feb 1990, on the\n>subject \"Re: atheist too?\". That was article #473 here; your question\n>was article #53766, which is an average of about 48 articles a day for\n>the last three years. As others have noted, the current posting rate is\n>such that my kill file is depressing large...... Among the posting I\n>saved in the early days were articles from the following notables:\n>\n>>From: loren@sunlight.llnl.gov (Loren Petrich)\n>>From: jchrist@nazareth.israel.rel (Jesus Christ of Nazareth)\n>>From: mrc@Tomobiki-Cho.CAC.Washington.EDU (Mark Crispin)\n>>From: perry@apollo.HP.COM (Jim Perry)\n>>From: lippard@uavax0.ccit.arizona.edu (James J. Lippard)\n>>From: minsky@media.mit.edu (Marvin Minsky)\n>\n>An interesting bunch.... I wonder where #2 is?\n\nDidn't you hear?  His address has changed.  He can be reached at the \nfollowing address:\n\ndkoresh@branch.davidian.compound.waco.tx.us\n\nI think he was last seen posting to alt.messianic.\n\nJim\n--\nIf God is dead and the actor plays his part                    | -- Sting,\nHis words of fear will find their way to a place in your heart | History\nWithout the voice of reason every faith is its own curse       | Will Teach Us\nWithout freedom from the past things can only get worse        | Nothing\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.052+0000", "event": "documents", "entityId": 1083, "properties": {"category": "soc.religion.christian", "text": "From: psb@matt.ksu.ksu.edu (Jr Phillip S Buckland)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nOrganization: Kansas State University\nLines: 168\n\n[DISCLAIMER: Throughout this post, there are statements and questions which\ncould easily be interpreted as being sarcastic.  They are not.  I have written\nthis reply in the most even-handed manner that I can, with no emotions boiling\nto the surface as it was written.  Please accept this as a serious attempt to\nfoster dialog and rest assurred that I make every attempt to make fun of no\none, except myself ;-)]\n\ngsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n\n>Firstly, I am an atheist. I am not posting here as an immature flame\n>start, but rather to express an opinion to my intended audience.\n\n[...]\n\n>1) The human being is an _animal_ who has, due to his/her advanced\n>mental facilities, developed religious as a satisfiable solution to\n>explain the unexplainable. [...]\n\n\tHmmm.  There are other animals on this planet with advanced\n\tmental facilities which have not developed \"religion\" as a\n\tsatisfactory explaination for the unexplained.  Why is this so?\n\n\tFurther, it appears that only humans have a \"need\" to explain the\n\tunexplained.  Why is this so?  The other animals on this planet,\n\tincluding those with advanced mental facilities, seem perfectly\n\tcontent in their ignorance.\n\n\tI'd like to point out that your presuppositions scream out at me\n\tfrom your unsupported statement.  They are: 1) humans are animal\n\t*only*; 2) religion exists as a crutch so that the unexplained need\n\tnot be researched; 3) religion was \"made up\" by humans to address a\n\tperceived need; 4) the biological aspect of humans is deified (that\n\tis, all aspects of human life can be categorized in a hierarchical\n\tstructure with biology at the apex).\n\n\tNeedless to say, I disagree with your strong opinion #1 and the\n\tunderlying presuppositions.\n\n>Christianity is an infectious cult.  The reasons it flourishes are \n>because 1) it gives people without hope or driven purpose in life\n>a safety blanked to hide behind.  \"Oh wow..all i have to do is \n>follow this christian moral standard and I get eternal happiness.\"\n>For all of you \"found jeezus\" , how many of you were \"on the brink?\"\n\n\tI disagree that Christianity is \"an infectious cult\".  It has\n\tcertainly shown itself to be persistent as a belief system, in\n\tspite of various persecutions throughout the past two millenia.\n\tThat it continues to persevere does not demonstrate that it is\n\t\"infectious\" in a derrogatory sense; it may be that it provides\n\ta workable system for its adherents (and I would argue that this\n\tis the case).\n\n\tI disagree that Christianity is \"a safety blanket\" which supplants\n\thope and purpose.  Rather, it points an individual to the one\n\tSource of hope and purpose.  There is nothing hidden about a\n\tChristian's source for hope and purpose.  Of what usefulness to\n\tyou is the distinction between internally motivated hope and purpose\n\tand externally given hope and purpose?  Is the (apparent) loss of\n\tcontrol over one's own life the problem or is it something else?\n\n\tFinally, one does not appropriate \"eternal happiness\" by following\n\tChristian moral standards.  Indeed, the sole reason for the existance\n\tof Christianity is *because* standards are inadequate to save people\n\tfrom their imperfections.  Moral standards are merely guides to the\n\tChristian; the real power to moral living is given to the Christian\n\tin the Person of God's Spirit.\n\n\tHeaven is one of two final states that\n\tChristian doctrine postulates.  However, Christians are generally\n\tnot motivated to live according to Christian moral standards by this\n\tpromised future reward; rather, they are motivated by the perceived\n\tbenefits to them in the here-and-now.\n\n>but i digress...   The other reason christianity flourishes is its\n>infectious nature.  A best friend of mine breifly entered a christian\n>group and within months, they set ministry guidelines for him which\n>basicaly said this -->Priority #1 Spread the Word.\n\n\tMany Christian organizations are concerned with evangelism as a\n\tpriority, and rightly so (for it was Jesus Himself who gave this\n\tas a priority for His followers).  However, it is not the penultimate\n\tpriority as evangelism is normally understood (i.e. preach the word,\n\tconvert at nearly any cost, repeat with new convert ad infinitum).\n\tRather, such evangelism is generally best done through respecting\n\tthe opinions of others while *demonstrating* the very real benefits\n\tof a Christian lifestyle.  This demonstration should be so powerful\n\tthat it compels the non-Christian to seek out the Christian to ask\n\t\"Why?\"  Needless to say, such a demonstration is not easily accom-\n\tplished (it takes a radical committment to the person of Jesus), it\n\tdoes not happen quickly (so perseverance on the part of the Christian\n\tis required), and it cannot occur where no personal bonds of\n\tfriendship exist (it is ineffective with strangers who cannot\n\tevaluate the demonstration over time, and it is easy to alienate or\n\tharm others if the sole purpose of being a \"friend\" is to gain a\n\tconversion).\n\n\tAs a long-time Christian (nearly 20 years), I view with some skep-\n\tticism *all* evangelism programs which incorporate a \"hurry-up\"\n\tattitude.  Pressured conversions may ultimately be worse than no\n\tconversion at all (because the pressured convert realizes s/he was\n\tcoerced and disavows Christianity when they would have been open\n\tto it in the future had they not been taken advantage of now).\n\tThe Bible states that it is the very Spirit of God which brings\n\tconviction of wrong-doing to people.  I am content to do my part\n\t(witness) and let the Spirit do the rest.\n\n>We are _just_ animals.  We need sleep, food, and we reproduce.  And we\n>die.      \n\n\tWe are far more than animals.  We sleep, eat, reproduce, and die\n\tjust as other animals do - true.  But, we are also capable of more\n\tthan this.  If your personal vision of humanity (or of yourself) is\n\tso limited, I can only hope and pray ;-) that you will someday find\n\ta more expansive view.\n\n\t(For reflection, what animals have the wide variety of performing\n\tarts that humans do?  How is it that humans can learn the language\n\tof other humans (or animals) but that other animals cannot do so?\n\tHow is it that humans can organize themselves in various social\n\tstructures whereas other animals have only one structure?)\n\n>Religion (especially Christianity) is nothing more than a DRUG.\n\n\tBlatant assertion.  Christianity is not physically addictive.\n\tChristianity is not psychologically addictive.  Christianity is not\n\ta *thing* which one snorts/ingests/shoots-up; it is a relationship\n\twith a living being.  You might as validly characterize any close-\n\tknit relationship with this appelation.\n\n>Some people use drugs as an escape from reality.  Christians inject\n>themselves with jeezus and live with that high. \n\n\tThere are \"Jesus freaks\" who let the emotional aspects of worship\n\tand Christian living gain (and retain) the upper hand.  Even so,\n\tthis does not by itself invalidate the foundation from which these\n\tthings flow.\n\n>It pities me how many millions of lives have been lost in religious\n>wars, of which Christianity has had no small part.\n\n\tGuilty by association?  That \"christianity\" which forces itself\n\tupon another is not Christianity at all.\n\n>When Christians see a \"non-believer\", they say that person is blind\n>to the truth, but they cannot realize that it is _they_ who live\n>with this mask of fakeness each day.  Jesus was just prophet #37696 \n>who happened to have a large influence because at that time the Romans\n>were (circa 69ad) dispersing the Jewish population and communities\n>needed some sort of cohesive element to keep them strong in that time\n>of dire need.\n\n\tYou appear to have an amazing certainty about what really happened\n\t2000 years ago.  How did you come by it?\n\n\tI cannot accept your conclusion that Jesus' influence was a sole\n\tresult of the Roman sack of Jerusalem in 70AD.  He was 30+ years\n\tgone by this time.  It strains the bounds of credulity to assert\n\tthat nothing about Jesus' life was noteworthy _until_ the sack.\n\n>I must go.  These are but a few of my thoughts on Christianity.\n\n\tChristianity is having a relationship with Jesus Christ Himself.\n\tWhat do you know of Him?\n\n\nWe read the world wrong\t\t| Phil Buckland\nand say that it deceives us.\t| psb@eece.ksu.edu\nTagore, from Stray Birds\t| psb@matt.ksu.ksu.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1084, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Accounts of Anti-Armenian Human Right Violations in Azerbaijan #011\nSummary: Prelude to Current Events in Nagorno-Karabakh\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 210\n\n     Accounts of Anti-Armenian Human Right Violations in Azerbaijan #011\n                 Prelude to Current Events in Nagorno-Karabakh\n\n        +-------------------------------------------------------+\n        |                                                       |\n        |   \"Right, we should slaughter the Armenians!\" and     |\n        |    \"There's no need to be afraid, all of Moscow is    |\n        |    behind us.\" I even heard that: \"All Moscow is      |\n        |    behind us.\" Well I watched and listened in and     |\n        |    realized that this was no joke.                    |\n        |\t\t\t\t\t\t\t|\n        +-------------------------------------------------------+\n\nDEPOSITION OF YURI VAGARSHAKOVICH MUSAELIAN\n\n   Born 1953\n   Line Electrician\n   Sumgait Streetcar and Trolleybus Administration\n\n   Resident at Building 4/21, Apartment 29\n   Block 14, Narimanov Street\n   Sumgait [Azerbaijan]\n\n\nI spent almost all of February doing overhaul. The 27th was a short day at\nwork, we worked until eleven or eleven-thirty and left for home. I decided\nto go for a short walk. I went to Primorsky Park. I walked past the Eternal\nFlame and saw a group of about 8 to 10 people standing there. When I had\nwalked another 15 to 20 yards I heard the screech of automobile brakes\nbehind me. I turned my head toward the sound. It was a light blue GAZ-24\nVolga. I see that the people who were standing there have gone over to the \ncar. A man and a woman get out. The man is expensively dressed, in a suit,\nand the woman has a raincoat on. She doesn't have anything on her head, and \nher hair is let down, sightly reddish hair, a heavy-set woman. They're 40 to \n45 years old. They get something out of the trunk. The people start to help\nthem. I become curious just what are they pulling out of there?\n\nWhen I got up close I heard them turn something on. I didn't see what it was, \nbut it was probably a tape recorder. They put it on the ground near the \nEternal Flame honoring the 26 Baku Commissars and formed a tight circle\naround it. I ask, \"What's going on?\" Someone tells me, \"Come listen.\" Well\nthey were Azerbaijanis, I had asked in Azerbaijani. I hear appeals: \"Brother\nMuslims, our time has come . . . \" and something else along that line. I\ndidn't understand what it was all about. I walked around the group trying to \nget a look at the owner of the tape recorder. But the circle drew in tighter. \nNew people started coming from various directions, five here, seven there. And\nthe comments started: \"Right, we should slaughter the Armenians!\" and \"There's\nno need to be afraid, all of Moscow is behind us.\" I even heard that: \"All \nMoscow is behind us.\" Well I watched and listened in and realized that this \nwas no joke. I quietly left and went home.\n\nNow before that at work I had heard that something was going on in Karabagh, \nthat there were demonstrations there. Well, people were saying all kinds of \nthings, but I didn't have any idea what was really going on.\n\nMy wife and son were at home, but my daughter was at my aunt's house in Baku. \nI didn't say anything to my wife. We sat and drank tea. Sometime around two\no'clock right behind our house suddenly there is noise, whistling, and \nshouting. I looked out the window and saw a crowd. The crowd is moving slowly,\nlike they show on TV when blacks in South Africa are striking or having a \ndemonstration and move slowly.\n\nMy wife asks what's going on out there. I say I don't know. I put on some\noutdoor clothes and went out to find out what it was all about. In the crowd\npeople are shouting \"Down with the Armenians!\" and \"Death to the Armenians!\" I\nwaited for the entire crowd to pass. At first they went down Narimanov Street \non the side with the SK club and the City Party Committee; then they turned \nand went against the traffic--it's one way there--down the Street of the 26 \nBaku Commissars toward the streetcar line. I went home and told my wife there \nwas a demonstration going on. In fact I thought that we were having the same \nkind of demonstrations that they had had in Yerevan and in Karabagh. Aside \nfrom the things they were shouting, I was surprised that there were only young\npeople in the crowd. And they were minors, under draft age.\n\nMy wife and son wanted to go upstairs to visit a friend, but I was kind of\nuneasy and said, \"No, let's stay at home instead.\" An hour went by, or maybe \nan hour and a half. Well, I wasn't keeping track of the time, I can't say\nexactly how long it was. I look and see another crowd on Narimanov, but now on\nthe side with the microdistricts, the bazaar, and the Rossiya movie theater.\n\nI put outside clothes on and went out again. There's noise, an uproar outside,\nand the crowd has grown. There are more people. And whereas the first time \nthere were individual shouts, this time they are more focused, more \naggressive. No, I think, something's wrong here, this isn't any demonstration.\nThey would run, stop, then walk quickly and make sharp dashes, and then run \nagain. I was walking along the sidewalk and they were in the street. I \nfollowed them. I was thinking I'd just watch and see. Who knew where this was \nleading? We came out on Lenin Square. At the square the SK club is on one \nside, and the City Party Committee is on the other. I went toward the square \nand heard noise and shouting, as though the whole town had turned out. There \nwas some sort of a rally going on. I go closer and hear exclamations, appeals.\nI heard both anti-Armenian and anti-Soviet appeals. \"We don't need \nperestroika, we want to go on living like we have been.\" Now what did they \nmean by \"living like we have been?\" The Azerbaijanis work like everyone else. \nBut too many people live at the expense of the government and at the expense \nof others. Speculation, theft, and cheating go on all the time. And not just \nin Azerbaijan, everywhere, in all the republics, but I've never seen it \nanywhere else like I have in Azerbaijan.\n\nNow at this rally someone says that they should go around to the Armenians' \napartments and drive them out, beat them and drive them out. True, I didn't \nhear them say \"kill them\" over the microphone, I only heard \"beat them and \ndrive them out.\" I stayed at the square a few minutes longer. First one, then\nanother are going up onto the stage, and no one tries to stop the crowd. Off\nto the side of the crowd there were small groups of three or four people, and \nI think they were MVD [Ministry of Internal Affairs] or State Security KGB.\nThere were also uniformed policemen there, but I didn't see any of them try \nto pacify the crowd. New people kept coming up onto the stage.\n\nWell I had finally decided that this could end badly: This was no\ndemonstration, and I had to protect my family.\n\nI left the Square to return home and suddenly noticed a truck. It was next\nto the City Party Committee, on Narimanov Street, it stood next to the tai-\nlor's shop there, a low truck, and it had low, wooden panels. I see that some-\nthing is being unloaded, crates of some sort. I decided to go look because\nafter all those appeals I was apprehensive and thought there might be weapons\nin there. They pulled the crates out onto the square, not toward the City \nParty Committee, but toward the SK club. And when I went right up to them I \nsaw that they were cases of vodka. There were two people handing down the \ncases from the bed of the truck, and on the ground there were many people, 15 \nto 20. They were handing them down from the truck and each case was carried \noff by two people. Two people, one case of vodka. And there was a man standing\nright next to the truck and he was handing out roundish black lumps, maybe \nabout the size of a fist, maybe a little bigger or smaller. It was anasha. \nWhen I passed next to that person, he stood with his side to me. There was \nabout a yard and a half between us, and two people were standing near him. He \nhas a package in his hand, and he's pulling out anasha and handing it out. I \nhave never smoked it myself. Once I tried it for fun, but I've seen a lot of \npeople smoke it, I've seen it many times, and I know what it is. I strolled \naround and no one asked me who I was or what I was doing there.\n\nBefore I got to the Glass Bazaar I heard more howling, more warlike shouting. \nI turned around and saw them running. Well I'll just keep on going like I am, \nI thought. When they caught up with me I saw that they were carrying flags. \nAnd I recognized the person who was carrying the flag on my side of the \nstreet. He's a young guy, 21 or 22 years old. He was carrying a red flag, \nwhich had \"Ermeni oryum\" written on it in Azerbaijani, that means \"Death to \nArmenians!\" That guy used to live off the same courtyard as us. I don't really\nknow what his name is, but I know his father very well. His father's name is\nRafik; he used to be a cook, and then became head chef. He used to have a dark\nblue Zhiguli van, then he sold it and now he has a white Zhiguli 06. His \nfamily, as I said, lived on the same courtyard as we did. Our building was on \nNarimanov Street, and theirs was on the Street of the 26 Baku Commissars; \ntheir apartment was in the far entryway, on the fifth floor, the door on the \nleft. Now Rafik's little brother lives there, and he, Rafik, I heard, got a \nnew apartment either in the forth or eighth microdistrict. In a word, his son \nwas carrying a flag that said \"Death to Armenians!\" I was surprised because \nbefore this I had gotten the impression that all of this nonsense was being \ndone not by people from Sumgait, but by Azerbaijanis from Agdam and Kafan.\n\nWell anyway I went home. My wife was upset. I told her, \"It's OK, it'll pass, \nthey're young kids, they've just gotten all whooped up.\" Naturally I didn't \nwant her to get overly upset. After a while a new surge of crowd went by. And \nthis time they were breaking glass. I could hear it breaking, but I couldn't \nsee where. Well I think, here we go, the machine's in motion. They weren't \nhanding out that vodka and anasha for nothing. I didn't see people drinking \nand smoking on the spot, but they certainly hadn't unloaded the vodka and \nhashish to put in a store window!\n\nSo the thought flashed through my head that the machine was running, no one \nwould stop them now, they weren't even trying, although, I'll say it again, \nthe police were there, I saw them. And it's not just that the police weren't \nbreaking them up, they were joking with them, they were having a good time. \nTrue, at the time I couldn't even imagine that under our government, our much-\nvaunted leadership--and I'm not afraid to say these words: so many people \ndied, So many women were abused, and how many abominations there were!--I \ncouldn't imagine that under our much-vaunted authorities, and if I were to be \nspecific, I would say under the much-touted authorities in our city of \nSumgait, I couldn't imagine that such things could take place.\n\nWhen they started breaking glass I told my wife and son: \"Let's go upstairs.\" \nWe went to our neighbors, the Grigorians, on the fourth floor. And in the \nevening, when those crowds started going past again, I went outside once more.\nI stopped at \"The Corner,\" a place called that right next to the bazaar. I \nlook and see a crowd on the run. And there, a few yards from the entrance to \nthe bazaar, are three respectable-looking men of around, say, 50 years old. \nThe crowd was running and one of the three waved with his arm and pointed \ntoward the bazaar. And then the whole crowd, as though it were one person, \nwheeled and raced toward the bazaar. And not a soul went past those three, as \nthough it were off limits! Well everything got all churned up, there was more \nnoise, and the glass was flying again.\n\nWe spent the night at the neighbors'. My apartment was on the first floor,\nthere was really no way to defend yourself there.\n\nIn the morning I went out to buy bread and to see what was happening in town. \nOn the way I saw someone hunched up, still. I never found out who it was or \nwhat happened to him. There were 10 to 15 people standing near him. I got the \nbread and on my way back, they had gathered around the person who was lying \nthere hunched up, sort of enclosing him; because of the way they were standing\nyou couldn't even see him.\n\nThat was on the morning of February 28. Everyone knows the rest.\n\n   May 17, 1988\n   Yerevan\n\n\t\t     - - - reference - - -\n\n[1] _The Sumgait Tragedy; Pogroms against Armenians in Soviet Azerbaijan,\n    Volume I, Eyewitness Accounts_, edited by Samuel Shahmuradian, forward by\n    Yelena Bonner, 1990, published by Aristide D. Caratzas, NY, pages 161-164\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1085, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hzhang@compstat.wharton.upenn.edu (Hao Zhang)\nSubject: Re: X-emulator\nOrganization: University of Pennsylvania\nLines: 12\nNntp-Posting-Host: compstat.wharton.upenn.edu\n\nA posting in another news group I read a while ago said that \nPC-Xview and PC-Xremote allow you to use Xterm.  \nCall NCD @ 503-641-2200 for more info. \n\nHope it helps,\n\n-Hao\n-- \n---------------------------------------------------------------------\n Hao Zhang, Dept. of Stat., Wharton School, Univ. of Penn.\n zhang48@wharton.upenn.edu    hzhang@compstat.wharton.upenn.edu\n---------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1086, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nOrganization: DSI/USCRPAC\nLines: 18\n\nIn article <Apr18.204843.50316@yuma.ACNS.ColoState.EDU>\nholland@CS.ColoState.EDU (douglas craig holland) writes:\n\n\n>\tLet me ask you this.  Would you trust Richard Nixon with your\n>crypto keys?  I wouldn't.\n\nI take it you mean President Nixon, not private citizen Nixon. Sure.\nNothing I'm doing would be of the slightest interest to President Nixon .\n\nDavid\n\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1087, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: The doctrine of Original Sin\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 22\n\nEugene Bigelow writes:\n\n>Doesn't the Bible say that God is a fair god [sic]?  If this is true,\nhow can >this possibly be fair to the infants?\n\nWhat do you mean fair?  God is just, giving to everyone what they\ndeserve. As all infants are in sin from the time of conception (cf\nRomans 5.12, Psalm 1.7), they cannot possibly merit heaven, and as\npurgatory is for the purging of temporal punishment and venial sins, it\nis impossible that origianl sin can be forgiven.  Hence, the unbaptized\ninfants are cut off from the God against whom they, with the whole of\nthe human race except Mary, have sinned.  Which is why Jesus said,\n\"Truly, truly I say to you, no one can enter the Kingdom of God unless\nhe is born of water and Spirit\" which is the true meaning of born again\n(John 3.5).  Thus, as infants are in sin, it is very fair for them to be\ncut off from God and exlcuded from heaven.\n\nAs St. Augustine said, \"I did not invent original sin, which the\nCatholic faith holds from ancient time; but you, who deny it, without a\ndoubt are a follower of a new heresy.\"  (De nuptiis, lib. 11.c.12)\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1088, "properties": {"category": "sci.crypt", "text": "Subject: Re: How large are commercial keys?\nFrom: pgut1@cs.aukuni.ac.nz (Peter Gutmann)\nOrganization: Computer Science Dept. University of Auckland\nLines: 17\n\nIn <1993Apr20.182038.12009@ee.eng.ohio-state.edu> butzerd@maumee.eng.ohio-state.edu (Dane C. Butzer) writes:\n\n>What are the typical sizes for keys for commercial secret key algorithms?\n>I know DES is 56 bits (\"tripple DES\" is 112 bits) and IDEA is 128 bits.  Is\n>there anything made in the US that has 128 bit keys?  Anything anywhere\n>that has larger keys?  I've heard that RC2 can be scaled to arbitrarily\n>large keys, but is this actually implemented anywhere?\n\nMy MDC cipher (which uses any one-way hash function as a CFB-mode stream\ncipher, the current implementation uses MD5) uses a key of up to 2048 bits\n(that is, you can use a 1-bit key if you want and copy it over the entire\n2048-bit range, or you can use the entire 2048 bits).  Runtime is\nindependant of key size, the system runs slightly slower than MD5 itself.\nI presume RC2 and RC4 use a similar system (or possibly they just hash an\narbitrary-length key down to n bits, maybe 128, using something like MD5).\n\nPeter.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1089, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: PHILS, NL EAST NOT SO WEAK\nFrom: csc2imd@cabell.vcu.edu (Ian M. Derby)\nExpires: Tue, 27 Apr 1993 04:00:00 GMT\nOrganization: Virginia Commonwealth University\nLines: 13\n\n\nThat's very true.  I live in Richmond, home of the AAA Richmond\nBraves, and they have this guy Ryan Klesko who hit 17 HR's at home\nlast year.  Now that doesn't sound like a whole lot, BUT the way the\n\"Diamond\" is built, Home runs are a rarity.   In fact, Ron Gant,\nBrian Hunter and David Justice all proved they could hit in\nRichmond.  When they were sent to the majors, they never came back.\nIf you can hit in Richmond, you can hit anywhere.  \n\nSo far, after beating Scranton (Phillies) 9-0 in the first game, the\nbest team in AAA history has been rather underwhelming.  Too many\nexpectations I guess.  \n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1090, "properties": {"category": "rec.autos", "text": "From: crh@regent.e-technik.tu-muenchen.dbp.de (Christian Huebner)\nSubject: Re: Manual Shift Bigots\nOrganization: Technical University of Munich, Germany\nLines: 33\n\nIn rec.autos you write:\n\n>if ayrton senna can drive a racecar with fully automatic transmission,\n>it can't be half bad..  :-)\n\nThis McLaren auto-transmission (I still think it's only half auto,\nbut You may be right) has NOTHING to do with Your GM, Chrysler, Volvo,\nor whatever auto transmission. It's a normal manual transmission\ngearbox with clutch and all, but there are servo motors, which do\nthe shifting. \n\nThat means, there is no power loss in the drivetrain (if You take out \nminimal mechanical friction), and the sami-auto transmissions \n(Ferrari, Williams, McLaren(?),...) don't tell You, when to shift,\neither. However, these transmissions share an important disadvantage\nwith Your stock auto-trannie: They are EXPENSIVE.\n\nAs long as these servo-shifted gearboxes aren't available on \n'normal' cars I'm gonna stick with my manual. I just can't see an\nadvantage to make up for two grand I lose in this deal and the\nloss in mileage and power (except maybe in real heavy traffic). But\nthen I drive mostly on the autobahn and country roads anyway.\n\nThere's no point in making a religion out of this, I just wanted to\npoint out a few technical facts and MY OWN opinion, so there's\nno need for a flame war.\n\n>eliot\n\nHave a safe ride\n\nChris\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1091, "properties": {"category": "sci.med", "text": "From: ron.roth@rose.com (ron roth)\nSubject: Selective Placebo\nX-Gated-By: Usenet <==> RoseMail Gateway (v1.70)\nOrganization: Rose Media Inc, Toronto, Ontario.\nLines: 23\n\nL(>  levin@bbn.com (Joel B Levin) writes:\nL(>  John Badanes wrote:\nL(>  |JB>  1) Ron...what do YOU consider to be \"proper channels\"...\nL(>  \nL(>  |  I'm glad it caught your eye. That's the purpose of this forum to\nL(>  | educate those, eager to learn, about the facts of life. That phrase\nL(>  | is used to bridle the frenzy of all the would-be respondents, who\nL(>  | otherwise would feel being left out as the proper authorities to be\nL(>  | consulted on that topic. In short, it means absolutely nothing.\nL(>  \nL(>  An apt description of the content of just about all Ron Roth's \nL(>  posts to date.  At least there's entertainment value (though it \nL(>  is diminishing).\n\n     Well, that's easy for *YOU* to say.  All *YOU* have to do is sit \n     back, soak it all in, try it out on your patients, and then brag\n     to all your colleagues about that incredibly success rate you're\n     having all of a sudden...\n\n     --Ron--\n---\n   RoseReader 2.00  P003228: For real sponge cake, borrow all ingredients.\n   RoseMail 2.10 : Usenet: Rose Media - Hamilton (416) 575-5363\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1092, "properties": {"category": "rec.motorcycles", "text": "From: elef@smarmy.Eng.Sun.COM (elaine 'beano' leffler)\nSubject: Re: Kawi Zephyr? (was Re: Vision vs GpZ 550)\nKeywords: Zephyr stock forks BAD.  Mushy.  Dive.\nArticle-I.D.: jethro.1psrdn$g3r\nReply-To: elef@smarmy.Eng.Sun.COM\nDistribution: world\nOrganization: SunConnect\nLines: 11\nNNTP-Posting-Host: smarmy.eng.sun.com\n\nIn article 3126@organpipe.uug.arizona.edu, asphaug@lpl.arizona.edu (Erik Asphaug x2773) writes:\n>By the way Bob, er Dave (sorry!), I had read a review that said the 550\n>engine was pretty much identical to the GPz, but that the suspension\n>and frame is more modern. \n\nthe fancy piggyback shocks on the 550 (and the 750, i think.  i don't\nknow about the zr1100) are very nice, 3-way adjustability.  the forks\nare crappy, they dive like MAD.  i had progressive springs installed\nand it made a huge difference.  cheap fix, MUCH improvement.\n\nelef\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1093, "properties": {"category": "talk.politics.guns", "text": "From: scottj@magic.dml.georgetown.edu (John L. Scott)\nSubject: Luser!\nOrganization: J. Random Misconfigured Site\nX-Posted-From: iamac-1.dml.georgetown.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 112\n\nAwesley wrote:\n  That was the entire point to *you*.  What exactly did I claim?\n     --------------------------------------------------\n    \"I've heard eye-witness descriptions of tanks using their main guns\n  to respond to sniper fire.  Quite effectively.\"\n     --------------------------------------------------\n  \n    I wasn't wrong . . . I've heard those descriptions.  If you're\n  paying attention, I've mentioned that I saw the tanks with my own\n  eyes, but the main gun firing was an account I heard.  That helps\n  people judge whether or not to kick in the, to use your words,\n  \"bullshit filters\".  Stating that I *claimed* this is a falsehood.\n  \nLater in the same post:\n     Another part of my memories was that while most damaged building\n  were burnt, some were in rubble.  Based on what I remember, I was and\n  am inclined to believe an old sarge or two.\n\nFine, *now* you are stating that you believe their claims (or that you are\n\"inclined\" to.  See below for a stronger statement of your beliefs).  Those\nclaims are still ludicrous, however.\n\nPreviously Awesley had written:\n  You can also read of the troops using grenade launchers.\n\nPrompting me to write:\n  To fire fragmentary grenades?  I doubt that as well.  To fire concussion\n  grenades?  Perhaps.  To fire tear gas?  Certainly.  But you would be\n  perfectly willing to let us believe they fired frags, wouldn't you, since\n  it makes your other claim seem more plausible.\n\nTo which Awesley replied:\n  John, again, strawman techniques.  Do you feel you're losing it so you\n  have to stretch what I said and knock that down?  What I read said\n  nothing about what they fired.  And so I put nothing in there.  If you\n  need some help, let me know and I'l take your side of this for a\n  while.  You're not scoring here, you're boring here.\n\nBut why did you mention grenade launchers at all?  Because it supports the\nnotion that the tanks shelled buildings.  And it supports that notion\nbecause it conjures images of troops launching fragmentary grenades.  But\nthat too is ludicrous.\n\nI wrote:\n  If tanks had fired their main guns in Detroit, people would have been\n  screaming about it for the past two and half decades.  I would know about\n  it. \n\nAwesley relied:\n     Glad to know you're such an expert.  Nice to hear some an\n  authority.  I especially appreciate your basis of knowledge -- if it\n  had happened, you would have know it.  Since you are such an\n  authority, you probably know that people did scream about an alleged\n  massive cover-up in the number of people killed in the Detroit riot.\n  Some claimed 100+ dead, others said 300.  The offical number is 43 but\n  the Concise Columbia Encyclopedia says it was \"several\".  I've also\n  heard some things about that but I won't dare repeat them.  You'd\n  assert that I claimed they were truth.\n\nYes, if it happened I would have heard about it.  Everybody would have. \nArmy tanks don't fire their cannons in American cities in the 1960's\nwithout it becoming common knowledge, without minority leaders seizing on\nit and condemning it over and over again, without civil libertarians saying\n\"this has gone far enough.\"  So, yes, my never hearing of it was the basis\nfor my disbelieving the claim.  Now I have more reasons to disbelieve it. \nNot one poster has written to say, yes, I lived in Detroit at that time and\neverybody knew that the tanks had fired shells.  This is the UseNet.  If it\nhad happened, somebody here would remember it.  Furthermore, your own\nresearch failed to come up with any support for the claim.  The claim is\nextraordinary and it has no supporting evidence, extraordinary or not. \nUnless you count the brags of a couple of guardsmen shooting the shit.  I\ndo not.\n\nI wrote:\n  Unless you also claim that the National Guard managed to cover it up. \n\nAwesley wrote:\n     Taking the tour after the riots, it was pretty easy to tell the \n  difference between Army and Guard troops.  Or so I recall from 26 \n  years ago.  And I seem to recall it was the Army running the tanks.\n  So it would have been an Army cover-up.\n\nQuibble.  Fine, it was an Army cover-up.  Six years in the Reserves has\ntaught me the difference also.  But do you think that in two and half\ndecades not one guilt-ridden participant has come forward and said \"yes, I\nshelled Americans,\" or \"I gave the orders to fire the cannons,\" or \"I\nhelped cover it up\"?\n\nI wrote:\n  If your mind is open enough to believe that, well, good for you.  I\nprefer\n  to live in reality.   And here in reality, I find it hard to believe that\n  those tanks even had any shells, much less fired them.\n\nAwesley replied:\n    Given the level in destruction in Detroit, I'm quite willing to believe\n  that they did fire their guns.\n\nGood.  Then we can drop the junk about you not claiming that they did. \nYour belief fails a basic reality check: why isn't it known?\n\nAwesley concludes:\n     Now then, we've bored the shit out of anyone whose bothered to read\n  this far and all you've managed to say is that you don't believe the\n  account I cited.\n\nActually, now we have established that I don't believe what you believe, as\nwell as why I don't believe it.  And if it's boring, then I yield the last\nword to you, if you want it.  You may say anything you like with\nimpunity--I am dropping the subject.\n\n--John L. Scott\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1094, "properties": {"category": "talk.politics.guns", "text": "From: earlw@apple.com (Earl Wallace)\nSubject: Re: My Gun is like my....\nOrganization: .\nLines: 10\nNNTP-Posting-Host: apple.com\n\nIn article <1993Apr16.194708.13273@vax.oxford.ac.uk> jaj@vax.oxford.ac.uk writes:\n  >What all you turkey pro-pistol and automatic weapons fanatics don't seem to\n  >realize is that the rest of us *laugh* at you. You don't make me angry, you\n  >just make me chuckle - I remeber being in Bellingham, Washington and seeing a\n  >...\n\nYou consider laughing at others civilized behavior?  What was I supposed to\nlearn from your article?  Treat people like dogs?\n\nI am not impressed by your attitude.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1095, "properties": {"category": "sci.electronics", "text": "From: edhall@rand.org (Ed Hall)\nSubject: Re: Building a UV flashlight\nOrganization: RAND\nLines: 26\nNntp-Posting-Host: ives.rand.org\n\nIn article <C5r6Lz.n25@panix.com> jhawk@panix.com (John Hawkinson) writes:\n>One other thing: a friend of mine mentioned something about near-UV\n>light being cheaper to get at than actual UV light. Does anyone\n>know what he was referring to?\n\nI don't want to get into a semantic argument, but contrary to some other\npostings \"near UV light\" /is/ \"actual UV light.\"  The \"near\" means that\nit is close to the visible spectrum (i.e. of relatively long wavelength),\nnot that it is \"nearly UV.\"  (I'm sure you can figure out now just what\n\"far UV\" is.)\n\nRegular incandenscent flashlight bulbs emit tiny amounts of UV in the\nnear end of the spectrum, such that a filter can be used to remove the\nvisible light and thus create a weak UV source.  Stronger sources are\ngoing to require gas (probably mercury vapor) discharge tubes (such as\nfluorescent tubes with UV phosphor).  Be careful, though; strong UV\nsources can cause physiological damage, especially to the eyes.  The\nshorter wavelengths are the most dangerous.\n\nIt wouldn't project a beam like a flashlight, but replacing the tubes\nin a portable fluorescent lantern with UV tubes would be a relatively\ncheap way to create a portable source.  It would be bright enough to\nbe useful, but not dangerously so.\n\n\t\t-Ed Hall\n\t\tedhall@rand.org\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1096, "properties": {"category": "sci.crypt", "text": "From: jebright@magnus.acs.ohio-state.edu (James R Ebright)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nSummary: Fort Meade has LOTS of compute power...more than ANYWHERE else.\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 43\n\nIn article <1993Apr19.093227.1093@jarvis.csri.toronto.edu> lewis@eecg.toronto.edu (david lewis) writes:\n>In article <16BB51156.C445585@mizzou1.missouri.edu> C445585@mizzou1.missouri.edu (John Kelsey) writes:\n>> \n>>strnlght@netcom.com (David Sternlight) writes:\n>>>\n[..stuff deleted]\n>>But who would\n>>trust his/her confidential information to an encryption scheme that, for\n>>(say) $100,000 could by cracked one time in a hundred?  (DES, for all the\n>>complaints about a 56-bit key, would probably cost several million dollars\n>>to build a keysearch machine for.)\n>> \n>\n>I can buy a DES keysearch machine off the shelf now for approx $500K, but\n>it is not sold by that name. Go buy a circuit emulation machine (eg. Quickturn)\n>containing a bunch of FPGAs, (say 500 to 1000 3090's), and program each\n>to be a DES search engine. Lets say 500 chips, running at 10Mhz = 5G tests/sec.\n>Time is 14e6 sec max = 23 weeks, 12 weeks average. Can't wait that long?\n>Buy a bigger machine.\n>\nOh, but can Big Brother afford such things in these times of tight\nbudgets?\n\nI don't know how many folks noticed it, but Dorothy \"Trust Me\" Denning gave\na real clue to the current state of the art at NSA on decrypto machines when\nshe said the NSA told her they didn't even want to be the holder of any\npart of the key.  \n\nNow why is that?  I doubt there is a trapdoor in Skipjack.  (But we will\nnever know).  And I doubt the NSA would promote a mass market chip they\ncouldn't compromise.  Ergo, NSA is now capable of compromising (probably\nwith brute force keysearch) engines of the complexity of Skipjack.  Look\nat the specs.  Why, I bet they have thousands of little chips chugging\naway in their crypto busters... Maybe even tens of thousands.  Complexity?\nNot much more than a 3090.  How many such machines will fit into Fort Meade?\n\nI think PGP2.3 should have 256 bit IDEA keys...\n\n-- \n Information farming at...     For addr&phone: finger             A/~~\\A\n THE Ohio State University  jebright@magnus.acs.ohio-state.edu   ((0  0))____\n      Jim Ebright             e-mail: jre+@osu.edu                 \\  /      \\\n                          Support Privacy: Support Encryption      (--)\\      \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1097, "properties": {"category": "sci.med", "text": "From: jfare@53iss6.Waterloo.NCR.COM (Jim Fare)\nSubject: Re: Oily skin - problem?\nReply-To: jfare@53iss6.Waterloo.NCR.COM (Jim Fare)\nDistribution: world\nOrganization: Imaging Systems Division, NCR Corp, Waterloo, Ont., CANADA\nLines: 15\n\nIn article <1993Apr5.044140.1@vaxc.stevens-tech.edu> u92_hwong@vaxc.stevens-tech.edu writes:\n>\tI have a very oily skin.  My problem is when I wash my face, it becomes\n>oily in half an hour.  Especially in the nose region.  Is this an illness?  How\n>can I prevent it from occuring in such short time?  Is there a cleanser out\n>there that will do a better job -- that is after cleaning, my face won't become\n>oily in such a short time.\n\nI don't think that's a problem.  My face is quite oily too.  I had a moderate\nacne problem for many years.  I then found that if I vigorously scrub my face\nwith a nail brush and soap (Irish Spring) twice a day the acne was not a \nproblem.  I can still leave a pretty health nose print on a mirror after 45 min\n(don't ask ;->) but acne is not a real problem anymore. \n\n                                          [J.F.]\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1098, "properties": {"category": "sci.space", "text": "From: wats@scicom.AlphaCDC.COM (Bruce Watson)\nSubject: Re: Boom!  Whoosh......\nOrganization: Alpha Science Computer Network, Denver, Co.\nLines: 19\n\nIn article <1r6mcgINNe87@gap.caltech.edu+ kwp@wag.caltech.edu (Kevin W. Plaxco) writes:\n+In article <37147@scicom.AlphaCDC.COM+ wats@scicom.AlphaCDC.COM (Bruce Watson) writes:\n+++\n++Once inflated the substance was no longer\n++needed since there is nothing to cause the balloon to collapse.\n++This inflatable structure could suffer multiple holes with no \n++disastrous deflation.\n+\n+preasure (and the internal preasure that was needed to maintain\n+a spherical shape against this resistance) caused them to\n+catastrophically deflated.  The large silvered shards\n+\n+The billboard should pop like a dime store balloon.\n\nNo, you're wrong about this. Give me some time to get my references.\n\n\n-- \nBruce Watson (wats@scicom.alphaCDC.COM) \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1099, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Some more about gun control...\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 18\n\nIn article <2071@rwing.UUCP> pat@rwing.UUCP (Pat Myrto) writes:\n>What I find so hard to understand is how come some people, apparantly\n>NOT connected with government or otherwise privileged, will\n>go to great lengths, redefinitions, re-interpretations, in a full-bore\n>attempt to THROW AWAY THE PROTECTION OF THEIR OWN RIGHTS under the\n>Constitution!!!\n>Almost makes me think of lemmings running into the sea during a lemming\n>year...\n>I really wonder that Jefferson and Madison would say to these folks?\n\nThey'd probably quote Montesque (sp?) who was once asked if Russia\nwas likely to become a democracy any time soon: \"No, because\nRussia is a nation of slaves and the people get what they deserve.\"\nSince he said that, Russia has changed a great deal. But so, \nunfortunately have other nations.\n\n                                                 Frank Crary\n                                                 CU Boulder\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1100, "properties": {"category": "sci.crypt", "text": "From: eachus@spectre.mitre.org (Robert I. Eachus)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nIn-Reply-To: kadie@eff.org's message of Tue, 20 Apr 1993 03:26:23 GMT\nNntp-Posting-Host: spectre.mitre.org\nOrganization: The Mitre Corp., Bedford, MA.\nLines: 52\n\nIn article <1993Apr20.032623.3046@eff.org> kadie@eff.org (Carl M. Kadie) writes:\n\n  > Clipper might be a good way to cover the use of another layer of\n  > encryption.\n\n  But, if you are making custom equipment in any case, why not just\nroll your own Clipper implementation and report the wrong keys to the\nEscrow agency?  (Tells us who is going to be in the chip business if\nthis thing goes through--NSA, and those with something to hide from\nNSA.)\n\n  If anyone can verify that your phone is not using the key registered\nto that serial number, either:\n\n  1) They have a court ordered wiretap.  But what are they going to\ndo?  Tell the judge that this individual really does have privacy?\nAll they know is that the keys are not enough, but not why.\n\n  2) They have a court ordered wiretap on a phone in this series.\n(This part is really scary.  Since the \"expectation\" is that all\nchips in a particular batch will uses seeds based on the same S1 and\nS2 and the serial number, getting the keys for one of a batch may give\naccess to all.)\n\n  3) There is a backdoor which allows all messages to be deciphered\nwithout the keys.  I find this one especially threatening since the\nscheme seems very open to known plaintext attacks.  (What I need to\ndecipher is the data in the header.  If I talk to someone who has one\nof these phones, presumably there will be an automatically negotiated\nkey generated.  I'm not trying to decipher the record of the\nconversation to know what was said, I use it as a known plaintext to\nrecover the backdoor represented by the header, but I know what the\nheader says for conversations I participate in.  Even worse, if the\nphones in a series have related keys, I can buy a phone/chip from the\nsame production lot.  Then I can recover its keys, either elegantly by\ntalking to myself, or by brute force analysis of the actual chip, then\napply the key generation process with those seeds to find the target\nkeys.)\n\n    Hmmm!  I don't think I want to ever come close to these phones.\nEven DES is starting to look good.  Two cans and a string will provide\nmuch better security.\n\n\n\n--\n\n\t\t\t\t\tRobert I. Eachus\n\nwith Standard_Disclaimer;\nuse  Standard_Disclaimer;\nfunction Message (Text: in Clever_Ideas) return Better_Ideas is...\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1101, "properties": {"category": "alt.atheism", "text": "From: davidk@welch.jhu.edu (David \"Go-Go\" Kitaguchi)\nSubject: Re: A Little Too Satanic\nNntp-Posting-Host: uss1.welch.jhu.edu\nReply-To: davidk@welch.jhu.edu\nOrganization: Welch Medical Library\nLines: 21\n\nIn article 65934@mimsy.umd.edu, mangoe@cs.umd.edu (Charley Wingate) writes:\n:PNanci Ann Miller writes:\n:P\n:P>My favorite reply to the \"you are being too literal-minded\" complaint is\n:P>that if the bible is really inspired by God and if it is really THAT\n:P>important to him, then he would make damn certain all the translators and\n:P>scribes and people interpreting and copying it were getting it right,\n:P>literally.  If not, then why should I put ANY merit at all in something\n:P>that has been corrupted over and over and over by man even if it was\n:P>originally inspired by God?\n:P\n:PThe \"corrupted over and over\" theory is pretty weak.  Comparison of the\n:Pcurrent hebrew text with old versions and translations shows that the text\n:Phas in fact changed very little over a space of some two millennia.  This\n:Pshouldn't be all that suprising; people who believe in a text in this manner\n:Pare likely to makes some pains to make good copies.\n\nWell corrupted the first time is good enough.  Seeing that the bible was constructed\n400 years after Jesus's death, in the text of merchants (ie-owe this and owe that) I wonder how anyone can take the literal word seriously.  Obviously it was not intended for such nonsense, otherwise the authors of the bible would not need to plagerize (sp)\noff of the Asians for most of the contents that can be interperated to make sense.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1102, "properties": {"category": "misc.forsale", "text": "From: RFP@jhuvm.hcf.jhu.edu (Rebecca Priver)\nSubject: Summer Sublet Wanted in DC\nOrganization: Johns Hopkins University, Homewood Academic Computing\nLines: 7\nNNTP-Posting-Host: jhuvm.hcf.jhu.edu\n\nWanted: Summer sublet in NW DC, on red Metro line. Have own bedroom, but can\n        share common areas with others.  Apartment or room for $400 or less.\n        Move in Memorial Day weekend through end of August.  No smokers.\n \nEmail PRINAOA @ YALEVM or RFP@JHUVM\n \n \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1103, "properties": {"category": "comp.windows.x", "text": "From: mike@hopper.Virginia.EDU (Michael Chapman)\nSubject: Re: Looking for a filemanager under X11R5\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 12\n\nIn article <1993Apr21.130259.3773@atlastele.com> brians@atlastele.com (Brian Sheets) writes:\n>Does anyone have a file manager that runs under UNIX/X11R5??\n>\n\nxdtm is working looking at, as is ftptool.  There really isn't anything of\nany quality that I've seen though, and I'm seriously considering writing one\non my own.\n\n-- \nmike@hopper.acs.virginia.edu \n\n\"I will NOT raise taxes on the middle class.\" -Unknown\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1104, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: ALT.SEX.STORIES under Literary Critical Analysis :-)\nOrganization: Cookamunga Tourist Bureau\nLines: 16\n\nIn article <1qevbh$h7v@agate.berkeley.edu>, dzkriz@ocf.berkeley.edu (Dennis\nKriz) wrote:\n> I'm going to try to do something here, that perhaps many would\n> not have thought even possible.  I want to begin the process of\n> initiating a literary critical study of the pornography posted on\n> alt.sex.stories, to identify the major themes and motifs present\n> in the stories posted there -- opening up then the possibility of\n> an objective moral evaluation of the material present there.  \n\nDennis, I'm astounded. I didn't know you were interested to even\nstudy such filth as alt.sex.stories provide...\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1105, "properties": {"category": "sci.space", "text": "From: almo@packmind.EBay.Sun.COM (Alan Monday-WWCS Business Mgt. Group)\nSubject: Re: Solar Sail Data\nOrganization: Sun Microsystems, Inc.\nLines: 14\nDistribution: world\nReply-To: almo@packmind.EBay.Sun.COM\nNNTP-Posting-Host: packmind.ebay.sun.com\n\nHey!? What happened to the solar sail race that was supposed to be\nfor Columbus+500?\n\nIn article 29848@news.duc.auburn.edu, snydefj@eng.auburn.edu (Frank J. Snyder) writes:\n>\n>I am looking for any information concerning projects involving Solar\n> Sails. I understand that the JPL did an extensive study on the subject\n> back in the late 70's but I am having trouble gathering such information.\n>\n>Are there any groups out there currently involved in such a project ?\n\n\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.053+0000", "event": "documents", "entityId": 1106, "properties": {"category": "talk.politics.misc", "text": "From: piatt@gdc.COM (Gary Piatt)\nSubject: Re: Employment (was Re: Why not concentrate on child molesters?\nOrganization: General DataComm Ind. Inc., Middlebury, CT 06762\nLines: 51\nNntp-Posting-Host: esun228\nX-Newsreader: TIN [version 1.1 PL9]\n\nDov Bai-MSI Visitor (bai@msiadmin.cit.cornell.edu) wrote:\n: In article <C5FG7t.6At@exnet.co.uk> sys1@exnet.co.uk (Xavier Gallagher) writes:\n\n: >True, man did not invent the need for food, shelter, warmth and the ilk,\n: >but man did invent the property laws and the laws of trespass.   \n: But how do you think property is generated ? Does it grow automatically\n: on trees when we wish so, or someone has to produce it ?\n\nSome say it was generated by God or Goddess; some say it was the result of\nthe coalescence of billions of tons of interstellar debris.  In either case,\nthe property of which Xavier speaks has been around for millions of years.\n\n\n:     It all follows from the fact that Mother Nature does not\n: provide us automatically with our needs,\n\nOh?  When did She *stop*?  Mother Nature has been automatically providing\nus with her bounty ever since we crawled out of the primordial ooze.  It\nis not \"produced\": it produces itself, year after year.  Last night, for\nexample, I saw four deer crossing the road (pretty sight, too); in an\nearlier time, one of them would have been dinner.\n\n: There are 2 ways to go with produced things: the first is to \n: _trade_ it with the the person(s) who produced it. \n: The other one is to take it with a gun from the person who produced\n: it. The first way is the civilized method, the second is how savages\n: arrange their affairs.\n\nThe American Indians had no concept of ownership of property, and often\nfreely gave of their supplies to neighboring tribes, trading food and\nclothing for weapons or services.  The Native Hawaiians, like their\nPolynesian ancestors, also could not conceive of that idea, and shared\nmany things with the other Islanders.  In fact, \"hi'ipoi\", the Hawaiian\nword for \"cherish\" means \"sharing food\".  The Great Mahele, in which\nthe Islands were divided up more-or-less evenly between the rich and\nthe poor, was a white man's idea.  In Africa, villagers will often\nshare tools, crops, and clothing with other members of their own village\nand neighboring villages.  Every anthropologist who has ever been to\nAfrica has at least one tale of the difficulties arising from the so-\ncalled \"theft\" of the scientists possessions -- two concepts of which,\nuntil the visitors came along, the natives had no understanding.\n\nThese are the people we call \"savages\".\n\nOn the other hand, car-jackings and muggings are up from last year.\n\nDov, before you make further comment on this thread, I think it would\nbehoove you to study *all* of the facts.\n\n\n-garison\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1107, "properties": {"category": "talk.politics.guns", "text": "From: meyers@leonardo.rtp.dg.com (Bill Meyers)\nSubject: Re: The 'pill' for Deer = No Hunting\nOrganization: N/I\nLines: 114\n\nIn article <1qk3jm$9sh@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>In article <1993Apr14.221646.2332@gnv.ifas.ufl.edu>, jrm@gnv.ifas.ufl.edu writes:\n[ ... ]\n>> \tWhy are 'good' neighborhoods 'good' ? It isn't because every\n>> \tperson is armed to the teeth. It is because of (1) attitude\n>> \tand (2) cooperation. In the 'good' neighborhoods, the residents\n>> \tmake themselves aware of their neighbors and notice when\n>> \tstrangers are lurking around. 'Good' neighborhoods form groups\n>> \tlike 'crime-watch' to increase this effect, and the relative\n>> \teffectiveness of the police. When hostiles are arrested, the\n>> \tgood neighbors step up and say \"THAT'S the one officer ! He\n>> \twas robbing Mr. Jones' house\". \n>\n>Sometimes this works.  Sometimes it just lands your good neighbors \n>on the dance card for the next wave of drive-bys.  Someone here once\n>told a story about LA gangs moving into Phoenix.  I've misplaced the\n\nHere'a a copy, cdt:\n------------------------------------------------------------------------\n>Newsgroups: talk.politics.guns,ou.politics\n>Path: dg-rtp!psinntp!uunet!sun-barr!ames!haven.umd.edu!darwin.sura.net!wupost!csus.edu!netcom.com!mvp\n>From: mvp@netcom.com (Mike Van Pelt)\n>Subject: The difference an armed civilian population makes\n>Message-ID: <y52n_tc.mvp@netcom.com>\n>Date: Thu, 17 Sep 92 23:42:42 GMT\n>Organization: Netcom - Online Communication Services (408 241-9760 guest)\n>References: <swood.716099748@vela>\n>Lines: 84\n>\n>Along the lines of \"The Armed Citizen\", here's a story that\n>some of you may find amusing.  It's a story about Arizona\n>house-hunting, from Leslie Fish, musician and author...\n>\n>----\n>     ... One of the reasons I'm planning to move to Arizona is that --\n>despite its lousy economy, 4-way race problems, simmering religious\n>problems and hopelessly bad government -- Arizona has one of the lowest\n>violent- crime rates in the country. Is it just coincidence that\n>Arizona is also one of the few remaining no-gun- control states in the\n>country?\n>\n>    Well, consider this funny story. Last time I was in Phoenix,\n>staying with Liz Burnham, I did some checking on the local real-estate\n>market (that's when I discovered that, with my income -- as provable by\n>my tax returns -- I can qualify for every low-income housing loan in\n>the book, with the exception of VA), and I came across an astonishing\n>ad in the local market-paper. It offered a three-bedroom house in the\n>Phoenix area for -- are you ready for this -- all of $10,000. No money\n>down. $100 per month total payments. Christ on a Harley-Davidson! I\n>called up the real-estate office making this offer, made it clear that\n>I was only checking the local market, and asked about that house. Were\n>the walls, roof and foundation structurally sound? Yes. Were the\n>plumbing and electrical systems functional and up to code? Yes. Did the\n>air-conditioning system (an absolute necessity in Phoenix) work?  Yes,\n>again.  Okay, so what was wrong with the house?  Well, it needed lots\n>of plastering, painting, yard work, and some patching of the roof --\n>and yes, low-interest repair loans were available.  Okay, sez I. If\n>that's all that's wrong with it, just why are you selling a 3-bedroom\n>house for all of $10,000? Well, squirms the agent, it's in kind of a\n>bad neighborhood. How bad? sez I, remembering some of the neighborhoods\n>I've seen in Chicago and Oakland.  Worst in the city, the agent sighs,\n>and then he told me this amazing story.\n>\n>    Every few years, it seems, the big vice-gangs in Los Angeles notice\n>that there's no gang presence in Phoenix -- which is just a quick\n>5-hour drive from LA -- and get the idea of setting up a subsidiary\n>there. Well, a couple years ago, the colonizing force came to this\n>neighborhood -- it being poor and Spanish, they figured they could move\n>right in and take over -- bought this house and started operations.\n>Unfortunately for them, the neighbors not only didn't like this -- they\n>didn't care for whores trotting up and down their streets all night,\n>pimps soliciting their kids, dope- deals on the corners in broad\n>daylight, and so on -- they weren't afraid to do something about it.\n>The neighbors called the cops (for some reason, the Phoenix police are\n>remarkably honest, capable, polite and prompt), and the cops promptly\n>came and swept up all the whores, pimps and pushers off the street and\n>away to jail. The remaining gang members decided to retaliate in the\n>fashion they usually use in LA; they got the complainant's name and\n>address off the court records, and did a drive-by shooting at his\n>house.  Well, this wasn't Los Angeles. The moment the neighbors heard\n>the first gunshots fired, they all ran out their front doors with their\n>own guns -- rifles, shotguns, pistols, everything -- and shot back.\n>\n>    The car didn't make it to the end of the block. It coasted to a\n>stop, riddled with more holes than the famous Bonnie and Clyde getaway\n>car (which I've seen; it's on display in a casino in a casino in Las\n>Vegas).  The gas tank and fuel lines had been ruptured, so the car\n>caught fire. The neighbors waited a good 15 minutes -- making sure\n>nobody got out of that car -- before they called the fire department to\n>come put out the fire and tow the wreck away. By that time, the asphalt\n>under the car had melted and caught fire too, which subsequently left a\n>large and nasty pot-hole in the street. The city is slow about\n>repairing small streets, so the hole stayed there providing a traffic\n>hazard for several months. All this was two years ago, the agent\n>concluded, and there's been no trouble since, but the house and the\n>neighborhood still have a bad reputation -- and that's why the house\n>was so cheap.\n>\n>    Hearing this story, I nearly laughed my ass off. I told the agent\n>that if I had the money at the moment, I'd by-god buy the house; this\n>was _nothing_ compared to bad neighborhoods I'd seen here in\n>California, where drive-by shootings go unchecked by the well-armed\n>cops, let alone by the unarmed neighbors. If that's the absolute worst\n>you'll find in Phoenix, then that's the city for me.\n>\n>    That's the difference that an armed civilian population makes.\n>Think about it.\n>\n>\n>-- \n>Mike Van Pelt                                When guns are outlawed,\n>mvp@netcom.com                               only Carl Rowan will have guns.\n>mvp@hsv3.lsil.com\n------------------------------------------------------------------------\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1108, "properties": {"category": "sci.crypt", "text": "From: rita@eff.org (Rita Marie Rouvalis)\nSubject: Re: **Sorry folks** (read this)\nOriginator: rita@eff.org\nNntp-Posting-Host: eff.org\nOrganization: Enormes_Rebajas_Online\nDistribution: na\nLines: 15\n\nIn article <1993Apr22.014646.28445@ucsu.Colorado.EDU> andersom@spot.Colorado.EDU (Marc Anderson) writes:\n\n>I just found out from my source that this article was a joke.  Heh heh..  \n>It seemed pretty damn convincing to me from the start -- I just didn't\n>notice the smiley at the end of the article, and there were a few other\n>hints which I should of caught.\n\n\tPeople took this article seriously?  I mean, I know it's the\nNet and all, but the prankster didn't even have Clinton's sound-bites\nright.\n\n\n-- \nRita Rouvalis\nrita@village.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1109, "properties": {"category": "rec.autos", "text": "From: zampicem@hpcc01.corp.hp.com (Mike Zampiceni)\nSubject: Re: mazda - just does not feel right\nOrganization: the HP Corporate notes server\nLines: 2\n\nThe car might also need a front end alignment, particularly if you're\ndescribing wandering.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1110, "properties": {"category": "misc.forsale", "text": "From: Rupin.Dang@dartmouth.edu (Rupin Dang)\nSubject: Re: Nikon FM2 and lens forsale\nOrganization: Dartmouth College, Hanover, NH\nLines: 8\n\nFM-2 has been sold.\n\nFollowing remains:\n\n* Minolta MD 50 mm lens. $25.\n* Ricoh camera with zoom lens. (Identical features as Nikon FE, plus some\nmore). Great condition. Inquire about low price.\n* S-VHS tapes. Brand new. Fuji high quality. Inquire.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1111, "properties": {"category": "rec.sport.baseball", "text": "From: reiniger@ug.cs.dal.ca (Darren Reiniger)\nSubject: MLB logos: Part 3\nSummary: National League East posted \nNntp-Posting-Host: ug.cs.dal.ca\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nLines: 10\n\n I have posted the logos of the NL East teams to alt.binaries.pictures.misc \n Hopefully, I'll finish the series up next week with the NL West.\n\n Darren\n\n-- \n Darren Reiniger                   reiniger@ug.cs.dal.ca || arishem@ac.dal.ca\n Centre For Marine Geology, Dalhousie University, Halifax, N.S., Canada\n| People who wonder where this generation is going should remind themselves   |\n| where it came from in the first place.                                      |\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1112, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: sundaram@egr.msu.edu (Divya Sundaram)\nSubject: Recommendations for a Local BUS (Cached) IDE Controller\nOrganization: Michigan State University, College of Engineering\nLines: 16\nDistribution: usa\nNNTP-Posting-Host: eecae.ee.msu.edu\n\n\nHi,\n\nI would like to hear the net.wisdom and net.opinions on IDE Controllers.\nI would liek to get a IDE controller card for my VLB DX2 66 Motherboard.\nWhat are good options for this (preferably under $200). It MUST also work\nunder OS/2 and be compatible with Stacker (and other Disk Compression S/W).\n\nPlease advise .....\n\nDivya\n-- \nDivya\n\n\"Live long, and then DIE a slow and horrible death ....\" \n\t\t\t\t\t- What Confucius wanted to say ....\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1113, "properties": {"category": "sci.crypt", "text": "From: rab@well.sf.ca.us (Bob Bickford)\nSubject: Re: Off the shelf cheap DES keyseach machine\nNntp-Posting-Host: well.sf.ca.us\nOrganization: Whole Earth 'Lectronic Link\nLines: 32\n\nIn article <TOM.93Apr21114536@amber.ssd.csd.harris.com>,\n  tom@ssd.csd.harris.com (Tom Horsley) writes:\n>\n>This isn't intended to be a flame or anything, I am just really curious\n>how to manufacture these things while still maintaining the key escrow\n>security without simply saying \"trust the manufacturer, they won't look\".\n\nWithout getting into the *really* *thorny* questions about reverse\nengineering and all of that, let me just point out that there already\nexist gate arrays and suchlike that have what's known as a security fuse\nwhich can be programmed after you've verified all other programming --\nthis makes it impossible to read out the programming of the device\n(again, ignoring the reverse engineering questions).  Speaking from\nexperience here: I had to completely reinvent one of my designs some\nsix or seven years ago when the disk file was zapped, the backups were\nall bad, and the devices were unreadable because of the security fuses.\nMade me appreciate the value of printouts.  ;-)\n\nSo on this point at least there's not so much worry.\n\nBut whether or not we can get the chips made reliably and securely is\nreally secondary to the question of whether use of the chip is itself\nlikely to be secure, methinks.\n--\n Robert Bickford      \"A Hacker is any person who derives joy from\n rab@well.sf.ca.us    discovering ways to circumvent limitations.\" rab'86\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\"I recognize that a class of criminals and juvenile delinquents has\ntaken to calling themselves 'hackers', but I consider them irrelevant\nto the true meaning of the word; just as the Mafia calls themselves\n'businessmen' but nobody pays that fact any attention.\"            rab'90\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1114, "properties": {"category": "talk.politics.guns", "text": "From: rcanders@nyx.cs.du.edu (Mr. Nice Guy)\nSubject: Incompetent law enforcement can kill\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 40\n\n\nEver since the siege at Waco started the FBI spokesman has been\nstressing how unstable and paranoid David Koresh was.  He stressed how\nlikely it was the the Branch Davidians would commit mass suicide.  He\nwas concerned with the safety of the children.\n \nWhat did the FBI do to defuse the situation,  Did they try to reassure\nKoresh?  DId the FBI offer medical assistance to the BD?  Did the FBI\noffer them a supply of water when the BD pump stoped working?  Did the\npermit Koresh to communicate with anyone outside the compound?\n \nWhat the FBI did was harass the Branch Davidians as much as possible.\nThey kept powerful lights shining on the compound, shut off their\nelectrical power, put their pump out of action, assaulted their ears\nwith loud noise, cut off their communication with the outside and kept\nlimiting their permitter.  The stated goal was to put pressure on\nDavid Koresh.\n \nWas the FBI attempting to get Koresh to surrender or were they hoping\nto get Koresh so mad that he and some of his followers would attack\nthe the tanks.\n \nIt appears that the tactics employed by the FBI did drive Koresh over\nthe edge.  The blame for the deaths should be shared by both the\nfederal experts whose tactics drove Koresh over the edge and the fools\nat the ATF who planed the raid.\n \nStupidity and incompetence of the BATF and the FBI leadership have\nresulted in the needless death of 90 innocent people.\n \nIf every thing had gone as planned 90 people would be alive today.\nInstead the ATF screwed up and caused the death of 90+.  Incompetent\nlaw enforcement can kill you!\n \n\n--\nRod Anderson  N0NZO            | The only acceptable substitute\nBoulder, CO                    | for brains is silence.\nrcanders@nyx.cs.du.edu         |       -Solomon Short-\nsatellite  N0NZO on ao-16      |\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1115, "properties": {"category": "talk.politics.guns", "text": "From: cescript@mtu.edu (Charles Scripter)\nSubject: Re: Some more about gun control...\nNntp-Posting-Host: fishlab3.fsh.mtu.edu\nOrganization: Help, my server's fallen, and can't get up (MTU)\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 185\n\nIn article <C5Bu9M.2K7@ulowell.ulowell.edu>\njrutledg@cs.ulowell.edu (John Lawrence Rutledge) wrote:\n\n> In article <1q96tpINNpcn@gap.caltech.edu> arc@cco.caltech.edu\n> (Aaron Ray Clements) writes:\n> >The Second Amendment is a guarantee of the right to bear arms.  Clearly\n> >and unequivocally, without infringement.\n\n> Unfortunately the Second Amendment is not as clear as you state.  If last \n> part of it is taken along, it follows what you have said.  The problem\n> I have is with the first part of the single sentence which makes up the\n> amendment.  The Second Amendment is:\n\n> \tA well regulated militia, being necessary to the security \n                         ^^^^^^^ Militia\n\n> \tof a free state, the right of the people to keep and bear \n                  ^^^^^ State\n\n> \tarms, shall not be infringed.\n        ^^^^ Arms\n\nYou didn't even get the capitalization correct!  Try reading USCA on\nthe Constitution, or get any other CORRECT version of the\nConstitution. \n\n> This mention of a well regulated militia is what confuses me.  According\n> to the Federalist Paper's, a well regulated militia has a well defined \n> structure and follows nationally uniform regulations.\n\nPerhaps you should actually READ the Federalist Papers!!\n\n    James Madison, Federalist Paper 46: \"Besides the advantage of\n    being armed, which the Americans possess over the people of almost\n    every other nation, the existence of subordinate governments, to\n    which the people are attached, and by which the militia officers\n    are appointed, forms a barrier against the enterprises of\n    ambition, more insurmountable than any which a simple government\n    of any form can admit of.  Notwithstanding the military\n    establishments in the several kingdoms of Europe, which are\n    carried as far as the public resources will bear, the governments\n    are afraid to trust the people with arms.\"\n                  ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n    James Madison, I Annals of Congress 434, 8 June 1789: \"The right\n    of the people to keep and bear... arms shall not be infringed.  A\n    well regulated militia, composed of the body of the people,\n                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    trained to arms, is the best and most natural defense of a free\n    country...\"\n\n    Alexander Hamilton, Federalist Paper 29 (on the organization of\n    the militia): \"Little more can reasonably be aimed at, with\n    respect to the people at large, than to have them properly armed\n               ^^^^^^^^^^^^^^^^^^^\n    and equipped; and in order to see that this be not neglected, it\n    will be necessary to assemble them once or twice in the course of\n    a year.\"\n\n    Alexander Hamilton, Federalist Paper 29 (speaking of standing\n    armies): \"... if circumstances should at any time oblige the\n    government to form an army of any magnitude that army can never be\n    formidable to the liberties of the people while there is a large\n    body of citizens, little, if at all, inferior to them in\n    ^^^^^^^^^^^^^^^^\n    discipline and the use of arms, who stand ready to defend their\n                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^*****\n    own rights and those of their fellow-citizens.\"\n    ***^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nBut *surely* Hamilton and Madison didn't mean the PEOPLE when they\nsaid \"people\", right?  That's why the Amendment refers to \"the Right\nof the Militia\"?...  ;-)\n\n> Your average \n> 17-45 year old male does not fall into the definition.\n\nYou're right, the Militia consists of ALL able bodied males (and\nprobably females under current interpretation). \n\n> Therefore most\n> members of The Militia, the one the every gun advocate refers to, are\n> not members of a well organized militia and therefore are not directly\n\nThe Amendment does nor refer to \"well organized\", it says \"well\nregulated\".  I have some targets you may examine if you wish to check\nhow _well regulated_ I am. \n\n> mentioned in the amendment.\n\n> If this amendment wanted to allow every member of The Militia to keep\n> and bear arms, why did it specificly mention a \"well organized militia\" \n> in the SAME SENTENCE as the right to keep and bear arms?\n\nCorrect.  That's why the Right is reserved to the People.  And that\nwas to insure the People could form a \"well regulated Militia\", not a\n\"well organized militia\".\n\n> It could be\n> argued that the first part of the sentence is separate from the last \n> part.  If so, why was it include in the same atomic unit of written\n\nWhat do Atomic Units have to do with this argument?  Any moron can set\nh_bar = C = 1...\n\n> instead of a separate sentence?\n\nOh, I see what your question is; Why don't you read the federalist\nPapers?! \n\n    James Madison, Federalist Paper 41 (regarding the \"General\n    Welfare\" clause): \"Nothing is more natural nor common than first\n    to use a general phrase, and then to explain and qualify it by a\n    recital of particulars.\"\n\nBut what does Madison know about the grammatical style of the 2nd?  He\nonly wrote it.\n\n> The amendment also implies that the right to arms has to due with \n> the security of a free state.  The Federalist Paper's mention of a\n> well regulated militia gives many examples of how this militia protects\n> the security of a free state.  All these examples are actions of a\n> very organized force, not some John Q. Public with a gun.\n\nThat's obviously because you've never actually *read* the Federalist\nPapers. \n\n> All that the Second Amendment clearly states to me is that the people's\n> right to form well regulated militias shall not be infringed.  That is \n> people have the right to join a well organized militia.  This well\n> organized militia will, of course, provide training in how to use arms\n> and in basic military tactics.  These training members of the militia\n> can keep and bear the arms.\n\nCan't read, huh?  Show me where the document says \"well organized\nmilitia\". \n\n> Lastly, reading through the Federalist Paper's on well organized \n> militia it is very clear that many of the reasons for these militias.\n> One reason stated is the protection from a standing army.  These days\n> the standing army could easily defeat a group consisting of every \n> 17-45 year old male and female not in the armied forces.\n\nThat is *exactly* why EVERY PERSON should be allowed to own *any*\nweapon currently in use in the armed forces.\n\n> Another\n> reason stated for well organized militias is to reduced the need\n> for a standing army.  Well, the US Armied Forces have been a standing\n> army for more than half the history of the US.\n\nBut the major reason is to protect against that very same army.\n\n> It seems to me the whole reason for the Second Amendment, to give\n> the people protection from the US government by guaranteeing that the\n> people can over through the government if necessary, is a little bit\n> of an anachronism is this day and age.  Maybe its time to re-think\n> how this should be done and amend the constitution appropriately.\n\n    Abraham Lincoln, First Inaugural Address, March 4, 1861: \"This\n    country, with its institutions, belongs to the people who inhabit\n    it.  Whenever they shall grow weary of the existing government,\n    they can exercise their constitutional right of amending it, or\n    their revolutionary right to dismember it or overthrow it.\"\n\n    Rep. Elbridge Gerry of Massachusetts, spoken during floor debate\n    over the Second Amendment, I Annals of Congress at 750, 17 August\n    1789: \"What, Sir, is the use of a militia?  It is to prevent the\n    establishment of a standing army, the bane of liberty. ...\n    Whenever Governments mean to invade the rights and liberties of\n    the people, they always attempt to destroy the militia, in order\n    to raise an army upon their ruins.\"\n\nSo now we know which category Mr. Rutledge is in; He means to destroy\nour Liberties and Rights.\n\n--\nCharles Scripter   *   cescript@phy.mtu.edu\nDept of Physics, Michigan Tech, Houghton, MI 49931\n-------------------------------------------------------------\n\"...when all government... in little as in great things, shall be\ndrawn to Washington as the centre of all power, it will render\npowerless the checks provided of one government on another and will\nbecome as venal and oppressive as the government from which we\nseparated.\"   Thomas Jefferson, 1821\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1116, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 13\nNNTP-Posting-Host: punisher.caltech.edu\n\nmathew <mathew@mantis.co.uk> writes:\n\n>>>As for rape, surely there the burden of guilt is solely on the rapist?\n>>Unless you force someone to live with the rapist against his will, in which\n>>case part of the responsibility is yours.\n>I'm sorry, but I can't accept that.  Unless the rapist was hypnotized or\n>something, I view him as solely responsible for his actions.\n\nNot necessarily, especially if the rapist is known as such.  For instance,\nif you intentionally stick your finger into a loaded mousetrap and get\nsnapped, whose fault is it?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1117, "properties": {"category": "sci.space", "text": "Subject: Re:  PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nFrom: alien@acheron.amigans.gen.nz (Ross Smith)\nDistribution: world\nOrganization: Muppet Labs\nLines: 27\n\nIn article <1993Apr22.213815.12288@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n>In <1993Apr22.130923.115397@zeus.calpoly.edu> dmcaloon@tuba.calpoly.edu (David McAloon) writes:\n>\n>> ETHER IMPLODES 2 EARTH CORE, IS GRAVITY!!!\n>\n>If not for the lack of extraneously capitalized words, I'd swear that\n>McElwaine had changed his name and moved to Cal Poly.  I also find the\n>choice of newsgroups 'interesting'.  Perhaps someone should tell this\n>guy that 'sci.astro' doesn't stand for 'astrology'?\n>\n>It's truly frightening that posts like this are originating at what\n>are ostensibly centers of higher learning in this country.  Small\n>wonder that the rest of the world thinks we're all nuts and that we\n>have the problems that we do.\n>\n>[In case you haven't gotten it yet, David, I don't think this was\n>quite appropriate for a posting to 'sci' groups.]\n\nWas that post for real? I thought it was a late April Fool joke. Some of it\nseemed a bit over the top even by McElwaine/Abian/etc standards :-)\n\n--\n... Ross Smith (Wanganui, NZ) ............ alien@acheron.amigans.gen.nz ...\n      \"And crawling on the planet's face\n      Some insects called the human race\n      Lost in time and lost in space\"      (RHPS)\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1118, "properties": {"category": "soc.religion.christian", "text": "From: u2i02@seq1.cc.keele.ac.uk (RJ Pomeroy)\nSubject: Re: Losing your temper is not a Christian trait\nLines: 72\n\nFrom article <Apr.15.00.58.22.1993.28891@athos.rutgers.edu>, by ruthless@panix.com (Ruth Ditucci):\n> Coming from a long line of \"hot tempered\" people, I know temper when I see\n> it.  One of the tell tale signs/fruits that give non-christians away - is\n> when their net replies are acrid, angry and sarcastic.  \n\nI do hope that you are not suggesting that merely because a person\nreplies in an \"acrid, angry and sarcastic\" manner that this\ndemonstrates their 'non-christianity'?  The simple fact is that there\nis not a Christian on the face of the planet (that I know of!) that is\nperfect.  I have been known at times to have a fit of temper, or a\nsulk, but this does not make me any the less a Christian.\n\nOne of the points of being a Christian (as I perceive it) is to become\nMORE LIKE Christ.  This statement inherently suggests that we ARE NOT\nalready like Christ.  Jesus never unrighteously lost his temper.  I\ndo.  Jesus was perfect.  I'm not.\n\n> We in the net village do have a laugh or two when professed, born again\n> christians verbally attack people who might otherwise have been won to\n> christianity and had originally joined the discussions because they were\n> \"spiritually hungry.\"  Instead of answering questions with sweetness and\n> sincerity, these chrisitan net-warriors, \"flame\" the queries. \n\nYou must understand that this is because Christians often forget to\ntreat others as our role-model - Christ - would.  This is because we are\nhuman and falible.  I, for one, do not pretend to be infalible, and I\nhope that my fellow-men will bear with me when I make mistakes.  This\nsurely is not too much to ask, when I make every effort to bear with\n_them_.\n\n\n> You don't need any enemies.  You already do yourselves the greatest harm.\n\nAnd don't we know it!\n\n> Again I say, foolish, foolish, foolish.\n\nAgain I say, we are ALL human!\n\nTo my brethren, this:  \n\nMs Duticci has a valid point and we as Christians ought to heed the\nwarning in her article.  We oftimes discredit ourselves and our\nSaviour, in the way that we treat others.  Strive towards the goal set\nus by our Lord, but in the meantime, remember :\n\n     \"There is no condemnation for those who are in Christ...\"\n\nWhen you blow it - go easy on yourself.  Forgive yourself, as your\nFather in heaven forgives you!  And remember - and this is something I\nfirmly beieve and cling to - one day, we shall see Him face to face,\nand in that day, we shall (finally!) be perfected.  \n\nI look forward to seeing you there.\n\n\n     RRRRR        OO       BBBBB          :\n     R    R     OO  OO     B    B         :\n     R     R   OO    OO    B    BB        :          Robert Pomeroy\n     R   RR    O      O    B    B         :\n     RRRR      O      O    BBBBB          :    u2i02@teach.cs.keele.ac.uk\n     R  R      O      O    B    B         :\n     R   R     OO    OO    B    BB        :              1993\n     R    R     OO  OO     B    B         :\n     R     R      OO       BBBBB          :\n\n\nPS  If you want to draw anything to my attention, then please mail me\ndirect, because I don't often read the news...\n\nPPS  If I have offended anyone with this article, I beg your\nforgiveness, in advance!\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1119, "properties": {"category": "comp.windows.x", "text": "From: dbl@visual.com (David B. Lewis)\nSubject: comp.windows.x Frequently Asked Questions (FAQ) 5/5\nSummary: useful information about the X Window System\nArticle-I.D.: visual.C52Eqq.99A\nExpires: Sun, 2 May 1993 00:00:00 GMT\nReply-To: faq%craft@uunet.uu.net (X FAQ maintenance address)\nOrganization: VISUAL, Inc.\nLines: 890\n\nArchive-name: x-faq/part5\nLast-modified: 1993/04/04\n\n----------------------------------------------------------------------\nSubject: 119)  I'm writing a widget and can't use a float as a resource value.\n\nFloat resources are not portable; the size of the value may be larger than\nthe size of an XtPointer. Try using a pointer to a float instead; the Xaw\nScrollbar float resources are handled in this way. \n\n----------------------------------------------------------------------\nSubject: 120)  Is this a memory leak in the X11R4 XtDestroyWidget()?!\n\nYes. This is the \"unofficial\" fix-19 for the X11R4 Destroy.c:\n\n*** Destroy.c.1.37\tThu Jul 11 15:41:25 1991\n--- lib/Xt/Destroy.c\tThu Jul 11 15:42:23 1991\n***************\n*** 1,4 ****\n--- 1,5 ----\n  /* $XConsortium: Destroy.c,v 1.37 90/09/28 10:21:32 swick Exp $ */\n+ /* Plus unofficial patches in revisions 1.40 and 1.41 */\n  \n  /***********************************************************\n  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,\n***************\n*** 221,239 ****\n       */\n  \n      int i = 0;\n!     DestroyRec* dr = app->destroy_list;\n      while (i < app->destroy_count) {\n  \tif (dr->dispatch_level >= dispatch_level)  {\n  \t    Widget w = dr->widget;\n  \t    if (--app->destroy_count)\n  \t\tbcopy( (char*)(dr+1), (char*)dr,\n! \t\t       app->destroy_count*sizeof(DestroyRec)\n  \t\t      );\n  \t    XtPhase2Destroy(w);\n  \t}\n  \telse {\n  \t    i++;\n- \t    dr++;\n  \t}\n      }\n  }\n--- 222,245 ----\n       */\n  \n      int i = 0;\n!     DestroyRec* dr;\n      while (i < app->destroy_count) {\n+ \n+ \t/* XtPhase2Destroy can result in calls to XtDestroyWidget,\n+ \t * and these could cause app->destroy_list to be reallocated.\n+ \t */\n+ \n+ \tdr = app->destroy_list + i;\n  \tif (dr->dispatch_level >= dispatch_level)  {\n  \t    Widget w = dr->widget;\n  \t    if (--app->destroy_count)\n  \t\tbcopy( (char*)(dr+1), (char*)dr,\n! \t\t       (app->destroy_count - i) * sizeof(DestroyRec)\n  \t\t      );\n  \t    XtPhase2Destroy(w);\n  \t}\n  \telse {\n  \t    i++;\n  \t}\n      }\n  }\n\n[from Donna Converse, converse@expo.lcs.mit.EDU]\n\n----------------------------------------------------------------------\nSubject: 121)  Are callbacks guaranteed to be called in the order registered?\n\n\tAlthough some books demonstrate that the current implementation of Xt\nhappens to call callback procedures in the order in which they are registered, \nthe specification does not guarantee such a sequence, and supplemental \nauthoritative documents (i.e. the Asente/Swick volume) do say that the order is\nundefined.  Because the callback list can be manipulated by both the widget and\nthe application, Xt cannot guarantee the order of execution.\n\tIn general, the callback procedures should be thought of as operating \nindependently of one another and should not depend on side-effects of other\ncallbacks operating; if a seqence is needed, then the single callback to be \nregistered can explicitly call other functions necessary.\n\n[4/92; thanks to converse@expo.lcs.mit.edu]\n\n----------------------------------------------------------------------\nSubject: 122)  Why doesn't XtDestroyWidget() actually destroy the widget?\n\n\tXtDestroyWidget() operates in two passes, in order to avoid leaving\ndangling data structures; the function-call marks the widget, which is not \nactually destroyed until your program returns to its event-loop. \n\n----------------------------------------------------------------------\nSubject: 123)  How do I query the user synchronously using Xt?\n\t\n\tIt is possible to have code which looks like this trivial callback,\nwhich has a clear flow of control. The calls to AskUser() block until answer\nis set to one of the valid values. If it is not a \"yes\" answer, the code drops\nout of the callback and back to an event-processing loop: \n\n\tvoid quit(Widget w, XtPointer client, XtPointer call)\n\t{\n\t\tint             answer;\n\t\tanswer = AskUser(w, \"Really Quit?\");\n\t\tif (RET_YES == answer)\n\t\t\t{\n\t\t\tanswer = AskUser(w, \"Are You Really Positive?\");\n\t\t\tif (RET_YES == answer)\n\t\t\t\texit(0);\n                }\n\t}\n\n\tA more realistic example might ask whether to create a file or whether \nto overwrite it.\n\tThis is accomplished by entering a second event-processing loop and\nwaiting until the user answers the question; the answer is returned to the\ncalling function. That function AskUser() looks something like this, where the \nMotif can be replaced with widget-set-specific code to create some sort of \ndialog-box displaying the question string and buttons for \"OK\", \"Cancel\" and \n\"Help\" or equivalents:\n\n  int AskUser(w, string)\n        Widget          w;\n        char           *string;\n  {\n        int             answer=RET_NONE;\t/* some not-used marker */\n        Widget          dialog;\t\t\t/* could cache&carry, but ...*/\n        Arg             args[3];\n        int             n = 0;\n        XtAppContext    context;\n\n        n=0;\n        XtSetArg(args[n], XmNmessageString, XmStringCreateLtoR(string,\n                XmSTRING_DEFAULT_CHARSET)); n++;\n        XtSetArg(args[n], XmNdialogStyle, XmDIALOG_APPLICATION_MODAL); n++;\n        dialog = XmCreateQuestionDialog(XtParent(w), string, args, n);\n        XtAddCallback(dialog, XmNokCallback, response, &answer);\n        XtAddCallback(dialog, XmNcancelCallback, response, &answer);\n        XtAddCallback(dialog, XmNhelpCallback, response, &answer);\n        XtManageChild(dialog);\n\n        context = XtWidgetToApplicationContext (w);\n        while (answer == RET_NONE || XtAppPending(context)) {\n                XtAppProcessEvent (context, XtIMAll);\n        }\n        XtDestroyWidget(dialog);  /* blow away the dialog box and shell */\n        return answer;\n  }\n\n\tThe dialog supports three buttons, which are set to call the same \nfunction when tickled by the user.  The variable answer is set when the user \nfinally selects one of those choices:\n\n  void response(w, client, call)\n        Widget          w;\n        XtPointer client;\n        XtPointer call;\n  {\n  int *answer = (int *) client;\n  XmAnyCallbackStruct *reason = (XmAnyCallbackStruct *) call;\n        switch (reason->reason) {\n        case XmCR_OK:\n                *answer = RET_YES;\t/* some #define value */\n                break;\n        case XmCR_CANCEL:\n                *answer = RET_NO; \n\t\tbreak;\n        case XmCR_HELP:\n                *answer = RET_HELP;\n                break;\n        default:\n                return;\n        }\n}\n\nand the code unwraps back to the point at which an answer was needed and\ncontinues from there.\n\n[Thanks to Dan Heller (argv@sun.com); further code is in Dan's R3/contrib\nWidgetWrap library. 2/91]\n\n----------------------------------------------------------------------\nSubject: 124)  How do I determine the name of an existing widget?\nI have a widget ID and need to know what the name of that widget is.\n\n\tUsers of R4 and later are best off using the XtName() function, which \nwill work on both widgets and non-widget objects.\n\n\tIf you are still using R3, you can use this simple bit of code to do \nwhat you want. Note that it depends on the widget's internal data structures \nand is not necessarily portable to future versions of Xt, including R4.\n\n\t#include <X11/CoreP.h>\n\t#include <X11/Xresource.h>\n\tString XtName (widget)\n\tWidget widget;\t/* WILL work with non-widget objects */\n\t{\n\treturn XrmNameToString(widget->core.xrm_name);\n\t}\n\n[7/90; modified with suggestion by Larry Rogers (larry@boris.webo.dg.com) 9/91]\n\n----------------------------------------------------------------------\nSubject: 125)  Why do I get a BadDrawable error drawing to XtWindow(widget)?\nI'm doing this in order to get a window into which I can do Xlib graphics\nwithin my Xt-based program:\n\n> canvas = XtCreateManagedWidget ( ...,widgetClass,...) /* drawing area */\n> ...\n> window = XtWindow(canvas);\t/* get the window associated with the widget */\n> ...\n> XDrawLine (...,window,...);\t/* produces error */\n\n\tThe window associated with the widget is created as a part of the \nrealization of the widget.  Using a window id of NULL (\"no window\") could \ncreate the error that you describe.  It is necessary to call XtRealizeWidget() \nbefore attempting to use the window associated with a widget. \n\tNote that the window will be created after the XtRealizeWidget() call, \nbut that the server may not have actually mapped it yet, so you should also \nwait for an Expose event on the window before drawing into it.\n\n----------------------------------------------------------------------\nSubject: 126)  Why do I get a BadMatch error when calling XGetImage?\n\nThe BadMatch error can occur if the specified rectangle goes off the edge of \nthe screen. If you don't want to catch the error and deal with it, you can take\nthe following steps to avoid the error:\n\n1) Make a pixmap the same size as the rectangle you want to capture.\n2) Clear the pixmap to background using XFillRectangle.\n3) Use XCopyArea to copy the window to the pixmap.\n4) If you get a NoExpose event, the copy was clean. Use XGetImage to grab the\nimage from the pixmap.\n5) If you get one or more GraphicsExpose events, the copy wasn't clean, and \nthe x/y/width/height members of the GraphicsExpose event structures tell you \nthe parts of the pixmap which aren't good.\n6) Get rid of the pixmap; it probably takes a lot of memory.\n\n[10/92; thanks to Oliver Jones (oj@pictel.com)]\n\n----------------------------------------------------------------------\nSubject: 127)  How can my application tell if it is being run under X?\n\n\tA number of programs offer X modes but otherwise run in a straight\ncharacter-only mode. The easiest way for an application to determine that it is\nrunning on an X display is to attempt to open a connection to the X server:\n\t\n\tdisplay = XOpenDisplay(display_name);\n\tif (display)\n\t\t{ do X stuff }\n\telse\n\t\t{ do curses or something else }\nwhere display_name is either the string specified on the command-line following\n-display, by convention, or otherwise is (char*)NULL [in which case \nXOpenDisplay uses the value of $DISPLAY, if set].\n\nThis is superior to simply checking for the existence a -display command-line \nargument or checking for $DISPLAY set in the environment, neither of which is \nadequate. [5/91]\n\n----------------------------------------------------------------------\nSubject: 128)  How do I make a \"busy cursor\" while my application is computing?\nIs it necessary to call XDefineCursor() for every window in my application?\n\n\tThe easiest thing to do is to create a single InputOnly window that is \nas large as the largest possible screen; make it a child of your toplevel \nwindow and it will be clipped to that window, so it won't affect any other \napplication. (It needs to be as big as the largest possible screen in case the \nuser enlarges the window while it is busy or moves elsewhere within a virtual \ndesktop.) Substitute \"toplevel\" with your top-most widget here (similar code \nshould work for Xlib-only applications; just use your top Window):\n\n     unsigned long valuemask;\n     XSetWindowAttributes attributes;\n\n     /* Ignore device events while the busy cursor is displayed. */\n     valuemask = CWDontPropagate | CWCursor;\n     attributes.do_not_propagate_mask =  (KeyPressMask | KeyReleaseMask |\n         ButtonPressMask | ButtonReleaseMask | PointerMotionMask);\n     attributes.cursor = XCreateFontCursor(XtDisplay(toplevel), XC_watch);\n\n     /* The window will be as big as the display screen, and clipped by\n        its own parent window, so we never have to worry about resizing */\n     XCreateWindow(XtDisplay(toplevel), XtWindow(toplevel), 0, 0,\n         65535, 65535, (unsigned int) 0, 0, InputOnly,\n         CopyFromParent, valuemask, &attributes);\n\nwhere the maximum size above could be replaced by the real size of the screen,\nparticularly to avoid servers which have problems with windows larger than\n32767.\n\nWhen you want to use this busy cursor, map and raise this window; to go back to\nnormal, unmap it. This will automatically keep you from getting extra mouse\nevents; depending on precisely how the window manager works, it may or may not\nhave a similar effect on keystrokes as well.\n\nIn addition, note also that most of the Xaw widgets support an XtNcursor \nresource which can be temporarily reset, should you merely wish to change the\ncursor without blocking pointer events.\n\n[thanks to Andrew Wason (aw@cellar.bae.bellcore.com), Dan Heller \n(argv@sun.com), and mouse@larry.mcrcim.mcgill.edu; 11/90,5/91]\n\n----------------------------------------------------------------------\nSubject: 129)  How do I fork without hanging my parent X program?\n\n\tAn X-based application which spawns off other Unix processes which \ncontinue to run after it is closed typically does not vanish until all of its \nchildren are terminated; the children inherit from the parent the open X \nconnection to the display. \n\tWhat you need to do is fork; then, immediately, in the child process, \n\t\tclose (ConnectionNumber(XtDisplay(widget)));\nto close the file-descriptor in the display information. After this do your \nexec. You will then be able to exit the parent.\n\tAlternatively, before exec'ing make this call, which causes the file \ndescriptor to be closed on exec.\n\t\t(void) fcntl(ConnectionNumber(XDisplay), F_SETFD, 1);\n\n[Thanks to Janet Anstett (anstettj@tramp.Colorado.EDU), Gordon Freedman \n(gjf00@duts.ccc.amdahl.com); 2/91. Greg Holmberg (holmberg@frame.com), 3/93.]\n\n----------------------------------------------------------------------\nSubject: 130)  Can I make Xt or Xlib calls from a signal handler?\n\n\tNo. Xlib and Xt have no mutual exclusion for protecting critical \nsections. If your signal handler makes such a call at the wrong time (which \nmight be while the function you are calling is already executing), it can leave\nthe library in an inconsistent state. Note that the ANSI C standard points\nout that behavior of a signal handler is undefined if the signal handler calls\nany function other than signal() itself, so this is not a problem specific to\nXlib and Xt; the POSIX specification mentions other functions which may be\ncalled safely but it may not be assumed that these functions are called by \nXlib or Xt functions.\n\tYou can work around the problem by setting a flag in the interrupt\nhandler and later checking it with a work procedure or a timer event which\nhas previously been added.\n\n\tNote: the article in The X Journal 1:4 and the example in O'Reilly \nVolume 6 are in error.\n\n[Thanks to Pete Ware (ware@cis.ohio-state.edu) and Donna Converse \n(converse@expo.lcs.mit.EDU), 5/92]\n\n----------------------------------------------------------------------\nSubject: 131)  What are these \"Xlib sequence lost\" errors?\n\n\tYou may see these errors if you issue Xlib requests from an Xlib error \nhandler, or, more likely, if you make calls which generate X requests to Xt or \nXlib from a signal handler, which you shouldn't be doing in any case. \n\n----------------------------------------------------------------------\nSubject: 132)  How can my Xt program handle socket, pipe, or file input?\n\n\tIt's very common to need to write an Xt program that can accept input \nboth from a user via the X connection and from some other file descriptor, but \nwhich operates efficiently and without blocking on either the X connection or \nthe other file descriptor.\n\tA solution is use XtAppAddInput(). After you open your file descriptor,\nuse XtAppAddInput() to register an input handler. The input handler will be \ncalled every time there is something on the file descriptor requiring your \nprogram's attention. Write the input handler like you would any other Xt \ncallback, so it does its work quickly and returns.  It is important to use only\nnon-blocking I/O system calls in your input handlers.\n\tMost input handlers read the file descriptor, although you can have an \ninput handler write or handle exception conditions if you wish.\n\tBe careful when you register an input handler to read from a disk file.\nYou will find that the function is called even when there isn't input pending.\nXtAppAddInput() is actually working as it is supposed to. The input handler is \ncalled whenever the file descriptor is READY to be read, not only when there is\nnew data to be read. A disk file (unlike a pipe or socket) is almost always \nready to be read, however, if only because you can spin back to the beginning\nand read data you've read before.  The result is that your function will almost\nalways be called every time around XtAppMainLoop(). There is a way to get the \ntype of interaction you are expecting; add this line to the beginning of your \nfunction to test whether there is new data:\n\t     if (ioctl(fd, FIONREAD, &n) == -1 || n == 0) return;\nBut, because this is called frequently, your application is effectively in a \nbusy-wait; you may be better off not using XtAppAddInput() and instead setting \na timer and in the timer procedure checking the file for input.\n\n[courtesy Dan Heller (argv@ora.com), 8/90; mouse@larry.mcrcim.mcgill.edu 5/91;\nOllie Jones (oj@pictel.com) 6/92]\n\n----------------------------------------------------------------------\nSubject: 133)  How do I simulate a button press/release event for a widget?\n\n\tYou can do this using XSendEvent(); it's likely that you're not setting\nthe window field in the event, which Xt needs in order to match to the widget\nwhich should receive the event.\n\t If you're sending events to your own application, then you can use \nXtDispatchEvent() instead. This is more efficient than XSendEvent() in that you\navoid a round-trip to the server.\n\tDepending on how well the widget was written, you may be able to call\nits action procedures in order to get the effects you want.\n\n[courtesy Mark A. Horstman (mh2620@sarek.sbc.com), 11/90]\n\n----------------------------------------------------------------------\nSubject: 134)  Why doesn't anything appear when I run this simple program?\n\n> ...\n> the_window = XCreateSimpleWindow(the_display,\n>      root_window,size_hints.x,size_hints.y,\n>      size_hints.width,size_hints.height,BORDER_WIDTH,\n>      BlackPixel(the_display,the_screen),\n>      WhitePixel(the_display,the_screen));\n> ...\n> XSelectInput(the_display,the_window,ExposureMask|ButtonPressMask|\n> \tButtonReleaseMask);\n> XMapWindow(the_display,the_window);\n> ...\n> XDrawLine(the_display,the_window,the_GC,5,5,100,100);\n> ...\n\n\tYou are right to map the window before drawing into it. However, the \nwindow is not ready to be drawn into until it actually appears on the screen --\nuntil your application receives an Expose event. Drawing done before that will \ngenerally not appear. You'll see code like this in many programs; this code \nwould appear after window was created and mapped:\n  while (!done)\n    {\n      XNextEvent(the_display,&the_event);\n      switch (the_event.type) {\n\tcase Expose:\t /* On expose events, redraw */\n\t\tXDrawLine(the_display,the_window,the_GC,5,5,100,100);\n\t\tbreak;\n\t...\n\t}\n    }\n\n\tNote that there is a second problem: some Xlib implementations don't \nset up the default graphics context to have correct foreground/background \ncolors, so this program could previously include this code:\n  ...\n  the_GC_values.foreground=BlackPixel(the_display,the_screen);\t/* e.g. */\n  the_GC_values.background=WhitePixel(the_display,the_screen);\t/* e.g. */\n  the_GC = XCreateGC(the_display,the_window,\n                GCForeground|GCBackground,&the_GC_values);\n  ...\n \nNote: the code uses BlackPixel and WhitePixel to avoid assuming that 1 is \nblack and 0 is white or vice-versa.  The relationship between pixels 0 and 1 \nand the colors black and white is implementation-dependent.  They may be \nreversed, or they may not even correspond to black and white at all.\n\nAlso note that actually using BlackPixel and WhitePixel is usually the wrong \nthing to do in a finished program, as it ignores the user's preference for \nforeground and background.\n\nAnd also note that you can run into the same situation in an Xt-based program\nif you draw into the XtWindow(w) right after it has been realized; it may\nnot yet have appeared.\n\n----------------------------------------------------------------------\nSubject: 135)  What is the difference between a Screen and a screen?\n\n\tThe 'Screen' is an Xlib structure which includes the information about\none of the monitors or virtual monitors which a single X display supports. A \nserver can support several independent screens. They are numbered unix:0.0,\nunix:0.1, unix:0.2, etc; the 'screen' or 'screen_number' is the second digit --\nthe 0, 1, 2 which can be thought of as an index into the array of available \nScreens on this particular Display connection.\n\tThe macros which you can use to obtain information about the particular\nScreen on which your application is running typically have two forms -- one\nwhich takes a Screen and one with takes both the Display and the screen_number.\n\tIn Xt-based programs, you typically use XtScreen(widget) to determine \nthe Screen on which your application is running, if it uses a single screen.\n\t(Part of the confusion may arise from the fact that some of the macros\nwhich return characteristics of the Screen have \"Display\" in the names -- \nXDisplayWidth, XDisplayHeight, etc.)\n\t\n----------------------------------------------------------------------\nSubject: 136)  Can I use C++ with X11? Motif? XView?\n\t\n\tThe X11R4/5 header files are compatible with C++. The Motif 1.1 header \nfiles are usable as is inside extern \"C\" {...}. However, the definition of\nString in Intrinsic.h can conflict with the libg++ or other String class and\nneeds to be worked around.\n\n\tSome other projects which can help:\n\tWWL, a set of C++ classes by Jean-Daniel Fekete to wrap X Toolkit \nwidgets, available via anonymous FTP from export.lcs.mit.edu as \ncontrib/WWL-1.2.tar.Z [7/92] or lri.lri.fr (129.175.15.1) as pub/WWL-1.2.tar.Z.\nIt works by building a set of C++ classes in parallel to the class tree of the \nwidgets.\n\tThe C++ InterViews toolkit is obtainable via anonymous FTP from \ninterviews.stanford.edu. InterViews uses a box/glue model similar to that of \nTeX for constructing user interfaces and supports multiple looks on the user \ninterfaces. Some of its sample applications include a WYSIWIG document editor \n(doc), a MacDraw-like drawing program (idraw) and an interface builder \n(ibuild).\n\tTHINGS,  a class library written at the Rome Air Force Base by the \nStrategic Air Command, available as freeware on archive sites.\n\n\tMotif++ is a public-domain library that defines C++ class wrappers for\nMotif 1.1; it adds an \"application\" class for, e.g., initializing X, and also\nintegrates WCL and the Xbae widget set. This work was developed by Ronald van \nLoon <rvloon@cv.ruu.nl> based on X++, a set of bindings done by the University \nof Lowell Graphics Research Laboratory. The current sources are available from \ndecuac.dec.com (192.5.214.1) as /pub/X11/motif++.21.jul.92.tar.Z.\n\t\n\tThe source code examples for Doug Young's \"Object-Oriented Programming \nwith C++ and OSF/Motif\" [ISBN 0-13-630252-1] do not include \"widget wrappers\" \nbut do include a set of classes that encapsulates higher-level facilities \ncommonly needed by Motif- or other Xt-based applications; check export in\n~ftp/contrib/young.c++.tar.Z.\n\tRogue Wave offers \"View.h++\" for C++ programmers using Motif; info:\n1-800-487-3217 or +1 503 754 2311.\n\tA product called \"Commonview\" by Glockenspiel Ltd, Ireland (??) \napparently is a C++-based toolkit for multiple window systems, including PM,\nWindows, and X/Motif.\n\tXv++ is sold by Qualix (415-572-0200; fax -1300); it implements an \ninterface from the GIL files that Sun's OpenWindows Developers Guide 3.0 \nproduces to Xview wrapper classes in C++.\n\n\tUIT is a set of C++ classes embedding the XView toolkit; it is intended\nfor use with Sun's OpenWindows Developers Guide 3.0 builder tool. Sources are \non export.mit.edu.au as UIT.tar.Z. Version 2 was released 5/28/92.\n\t\n\tAlso of likely use is ObjectCenter (Saber-C++). And a reasonable\nalternative to all of the above is ParcPlace's (formerly Solbourne's) Object \nInterface.\n\n[Thanks to Douglas S. Rand (dsrand@mitre.org) and George Wu (gwu@tcs.com);2/91]\n\n----------------------------------------------------------------------\nSubject: 137)  Where can I obtain alternate language bindings to X?\n\n\tVersions of the CLX Lisp bindings are part of the X11 core source \ndistributions. A version of CLX is on the R5 tape [10/91]; version 5.0.2 [9/92]\nis on export.lcs.mit.edu in /contrib/CLX.R5.02.tar.Z.\n\n\tThe SAIC Ada-X11 bindings are through anonymous ftp in /pub from\nstars.rosslyn.unisys.com (128.126.164.2). \n\tThere is an X/Ada study team sponsored by NASA JSC, which apparently is\nworking out bindings. Information: xada@ghg.hou.tx.us.\n\tGNU SmallTalk has a beta native SmallTalk binding to X called STIX (by\nSteven.Byrne@Eng.Sun.COM). It is still in its beginning stages, and \ndocumentation is sparse outside the SmallTalk code itself. The sources are \navailable as /pub/gnu/smalltalk-1.1.1.tar.Z on prep.ai.mit.edu (18.71.0.38) or \nugle.unit.no (129.241.1.97).\n\tProlog bindings (called \"XWIP\") written by Ted Kim at UCLA while\nsupported in part by DARPA are available by anonymous FTP from\nexport.lcs.mit.edu:contrib/xwip.tar.Z or ftp.cs.ucla.edu:pub/xwip.tar.Z.\nThese prolog language bindings depend on having a Quintus-type foreign function\ninterface in your prolog. The developer has gotten it to work with Quintus and \nSICStus prolog. Inquiries should go to xwip@cs.ucla.edu. [3/90]\n\tScheme bindings to Xlib, OSF/Motif, and Xaw are part of the Elk\ndistribution; version 1.5a on export obsoletes the version on the R5 contrib\ntape. \n\tx-scm, a bolt-on accessory for Aubrey Jaffer's \"scm\" Scheme interpreter\nthat provides an interface to Xlib, Motif, and OpenLook, is now available via \nFTP from altdorf.ai.mit.edu:archive/scm/xscm1.05.tar.Z and \nnexus.yorku.ca:pub/scheme/new/xscm1.05.tar.Z.\n\n\tAda bindings to Motif, explicitly, will eventually be made available by\nthe Jet Propulsion Laboratories, probably through the normal electronic\nmeans.  Advance information can be obtained from dsouleles@dsfvax.jpl.nasa.gov,\nwho may respond as time permits.\n\tAdaMotif is a complete binding to X and Motif for the Ada language, for\nmany common systems; it is based in part upon the SAIC/Unisys bindings and also\nincludes a UIL to Ada translator. Info: Systems Engineering Research \nCorporation, 1-800-Ada-SERC (well!serc@apple.com).\n\n\tAlso: the MIT Consortium, although not involved in producing Ada\nbindings for X, maintains a partial listing of people involved in X and Ada;\ninformation is available from Donna Converse, converse@expo.lcs.mit.edu.\n\n----------------------------------------------------------------------\nSubject: 138)  Can XGetWindowAttributes get a window's background pixel/pixmap?\n\n\tNo.  Once set, the background pixel or pixmap of a window cannot be \nre-read by clients.  The reason for this is that a client can create a pixmap,\nset it to be the background pixmap of a window, and then free the pixmap. The \nwindow keeps this background, but the pixmap itself is destroyed.  If you're \nsure a window has a background pixel (not a pixmap), you can use XClearArea() \nto clear a region to the background color and then use XGetImage() to read \nback that pixel.  However, this action alters the contents of the window, and \nit suffers from race conditions with exposures. [courtesy Dave Lemke of NCD \nand Stuart Marks of Sun]\n\n\tNote that the same applies to the border pixel/pixmap. This is a \n(mis)feature of the protocol which allows the server is free to manipulate the\npixel/pixmap however it wants.  By not requiring the server to keep the \noriginal pixel or pixmap, some (potentially a lot of) space can be saved. \n[courtesy Jim Fulton, MIT X Consortium]\n\n----------------------------------------------------------------------\nSubject: 139)  How do I create a transparent window?\n\t\n\tA completely transparent window is easy to get -- use an InputOnly\nwindow. In order to create a window which is *mostly* transparent, you have\nseveral choices:\n\t- the SHAPE extension first released with X11R4 offers an easy way to\nmake non-rectangular windows, so you can set the shape of the window to fit the\nareas where the window should be nontransparent; however, not all servers \nsupport the extension.\n\t- a machine-specific method of implementing transparent windows for\nparticular servers is to use an overlay plane supported by the hardware.  Note \nthat there is no X notion of a \"transparent color index\".\n\t- a generally portable solution is to use a large number of tiny \nwindows, but this makes operating on the application as a unit difficult.\n\t- a final answer is to consider whether you really need a transparent\nwindow or if you would be satisfied with being able to overlay your application\nwindow with information; if so, you can draw into separate bitplanes in colors\nthat will appear properly.\n\n[thanks to der Mouse, mouse@lightning.McRCIM.McGill.EDU, 3/92; see also\nThe X Journal 1:4 for a more complete answer, including code samples for this\nlast option]\n\n----------------------------------------------------------------------\nSubject: 140)  Why doesn't GXxor produce mathematically-correct color values?\n\n\tWhen using GXxor you may expect that drawing with a value of black on a\nbackground of black, for example, should produce white. However, the drawing\noperation does not work on RGB values but on colormap indices. The color that\nthe resulting colormap index actually points to is undefined and visually\nrandom unless you have actually filled it in yourself. [On many X servers Black\nand White often 0/1 or 1/0; programs taking advantage of this mathematical\ncoincidence will break.]\n\tIf you want to be combining colors with GXxor, then you should be \nallocating a number of your own color cells and filling them with your chosen\npre-computed values.\n\tIf you want to use GXxor simply to switch between two colors, then you \ncan take the shortcut of setting the background color in the GC (graphics \ncontext) to 0 and the foreground color to a value such that when it draws over \nred, say, the result is blue, and when it draws over blue the result is red. \nThis foreground value is itself the XOR of the colormap indices of red and \nblue.\n\n[Thanks to Chris Flatters (cflatter@zia.aoc.nrao.EDU) and Ken Whaley \n(whaley@spectre.pa.dec.com), 2/91]\n\n----------------------------------------------------------------------\nSubject: 141)  Why does every color I allocate show up as black?\n\n\tMake sure you're using 16 bits and not 8.  The red, green, and blue \nfields of an XColor structure are scaled so that 0 is nothing and 65535 is \nfull-blast. If you forget to scale (using, for example, 0-255 for each color) \nthe XAllocColor function will perform correctly but the resulting color is \nusually black. \n\n[Thanks to Paul Asente, asente@adobe.com, 7/91]\n\n----------------------------------------------------------------------\nSubject: 142)  Why can't my program get a standard colormap?\nI have an image-processing program which uses XGetRGBColormap() to get the \nstandard colormap, but it doesn't work. \n\n\tXGetRGBColormap() when used with the property XA_RGB_DEFAULT_MAP does \nnot create a standard colormap -- it just returns one if one already exists.\nUse xstdcmap or do what it does in order to create the standard colormap first.\n\n[1/91; from der Mouse (mouse@larry.mcrcim.mcgill.edu)]\n\n----------------------------------------------------------------------\nSubject: 143)  Why does the pixmap I copy to the screen show up as garbage? \n\n\tThe initial contents of pixmaps are undefined.  This means that most\nservers will allocate the memory and leave around whatever happens to be there \n-- which is usually garbage.  You probably want to clear the pixmap first using\nXFillRectangle() with a function of GXcopy and a foreground pixel of whatever \ncolor you want as your background (or 0L if you are using the pixmap as a \nmask). [courtesy Dave Lemke of NCD and Stuart Marks of Sun]\n\n----------------------------------------------------------------------\nSubject: 144)  How do I check whether a window ID is valid?\nMy program has the ID of a window on a remote display. I want to check whether\nthe window exists before doing anything with it.\n\n\tBecause X is asynchronous, there isn't a guarantee that the window \nwould still exist between the time that you got the ID and the time you sent an\nevent to the window or otherwise manipulated it. What you should do is send the\nevent without checking, but install an error handler to catch any BadWindow \nerrors, which would indicate that the window no longer exists. This scheme will\nwork except on the [rare] occasion that the original window has been destroyed \nand its ID reallocated to another window.\n\n[courtesy Ken Lee (klee@synoptics.com), 4/90]\n\n----------------------------------------------------------------------\nSubject: 145)  Can I have two applications draw to the same window?\n\n\tYes. The X server assigns IDs to windows and other resources (actually,\nthe server assigns some bits, the client others), and any application that \nknows the ID can manipulate the resource [almost any X server resource, except\nfor GCs and private color cells, can be shared].\n\tThe problem you face is how to disseminate the window ID to multiple \napplications. A simple way to handle this (and which solves the problem of the\napplications' running on different machines) is in the first application to \ncreate a specially-named property on the root-window and put the window ID into\nit. The second application then retrieves the property, whose name it also\nknows, and then can draw whatever it wants into the window.\n\t[Note: this scheme works iff there is only one instance of the first\napplication running, and the scheme is subject to the limitations mentioned\nin the Question about using window IDs on remote displays.]\n\tNote also that you will still need to coordinate any higher-level \ncooperation among your applications. \n\tNote also that two processes can share a window but should not try to \nuse the same server connection. If one process is a child of the other, it \nshould close down the connection to the server and open its own connection.\n\n[mostly courtesy Phil Karlton (karlton@wpd.sgi.com) 6/90]\n\n----------------------------------------------------------------------\nSubject: 146)  Why can't my program work with tvtwm or swm?\n\n\tA number of applications, including xwd, xwininfo, and xsetroot, do not\nhandle the virtual root window which tvtwm and swm use; they typically return \nthe wrong child of root. A general solution is to add this code or to use it in\nyour own application where you would normally use RootWindow(dpy,screen):\n\n/* Function Name: GetVRoot\n * Description: Gets the root window, even if it's a virtual root\n * Arguments: the display and the screen\n * Returns: the root window for the client\n */\n#include <X11/Xatom.h>\nWindow GetVRoot(dpy, scr)\nDisplay        *dpy;\nint             scr;\n{\nWindow          rootReturn, parentReturn, *children;\nunsigned int    numChildren;\nWindow          root = RootWindow(dpy, scr);\nAtom            __SWM_VROOT = None;\nint             i;\n\n  __SWM_VROOT = XInternAtom(dpy, \"__SWM_VROOT\", False);\n  XQueryTree(dpy, root, &rootReturn, &parentReturn, &children, &numChildren);\n  for (i = 0; i < numChildren; i++) {\n\tAtom            actual_type;\n\tint             actual_format;\n\tlong            nitems, bytesafter;\n\tWindow         *newRoot = NULL;\n\n\tif (XGetWindowProperty(dpy, children[i], __SWM_VROOT, 0, 1,\n\t    False, XA_WINDOW, &actual_type, &actual_format, &nitems,\n            &bytesafter, (unsigned char **) &newRoot) == Success && newRoot) {\n\t\t\troot = *newRoot;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn root;\n}\n\n[courtesy David Elliott (dce@smsc.sony.com). Similar code is in ssetroot, a\nversion of xsetroot distributed with tvtwm. 2/91]\n\nA header file by Andreas Stolcke of ICSI on export.lcs.mit.edu:contrib/vroot.h \nfunctions similarly by providing macros for RootWindow and DefaultRootWindow;\ncode can include this header file first to run properly in the presence of a\nvirtual desktop.\n\t\n----------------------------------------------------------------------\nSubject: 147)  How do I keep a window from being resized by the user?\n\n\tResizing the window is done through the window manager; window managers\ncan pay attention to the size hints your application places on the window, but \nthere is no guarantee that the window manager will listen. You can try setting \nthe minimum and maximum size hints to your target size and hope for the best. \n[1/91]\n\n----------------------------------------------------------------------\nSubject: 148)  How do I keep a window in the foreground at all times?\n\n\tIt's rather antisocial for an application to constantly raise itself\n[e.g. by tracking VisibilityNotify events] so that it isn't overlapped -- \nimagine the conflict between two such programs running.  \n\tThe only sure way to have your window appear on the top of the stack\nis to make the window override-redirect; this means that you are temporarily\nassuming window-management duties while the window is up, so you want to do \nthis infrequently and then only for short periods of time (e.g. for popup \nmenus or other short parameter-setting windows).\n\n[thanks to der Mouse (mouse@larry.mcrcim.mcgill.edu); 7/92]\n\n----------------------------------------------------------------------\nSubject: 149)  How do I make text and bitmaps blink in X?\n\n\tThere is no easy way.  Unless you're willing to depend on some sort of\nextension (as yet non-existent), you have to arrange for the blinking yourself,\neither by redrawing the contents periodically or, if possible, by playing games\nwith the colormap and changing the color of the contents.\n\n[Thanks to mouse@larry.mcrcim.mcgill.edu (der Mouse), 7/91]\n\n----------------------------------------------------------------------\nSubject: 150)+ How do I get a double-click in Xlib?\n\n\tUsers of Xt have the support of the translation manager to help \nget notification of double-clicking.\n\tThere is no good way to get only a double-click in Xlib, because the \nprotocol does not provide enough support to do double-clicks.  You have to do \nclient-side timeouts, unless the single-click action is such that you can defer\nactually taking it until you next see an event from the server.  Thus, you \nhave to do timeouts, which means system-dependent code.  On most UNIXish \nimplementations, you can use XConnectionNumber to get the file descriptor of \nthe X connection and then use select() or something similar on that.\n\tNote that many user-interface references suggest that a double-click\nbe used to extend the action indicated by a single-click; if this is the case\nin your interface then you can execute the first action and as a compromise\ncheck the timestamp on the second event to determine whether it, too, should\nbe the single-click action or the double-click action.\n\n[Thanks to mouse@larry.mcrcim.mcgill.edu (der Mouse), 4/93]\n\n----------------------------------------------------------------------\nSubject: 151)! How do I render rotated text?\n\t\n\tXlib intentionally does not provide such sophisticated graphics \ncapabilities, leaving them up to server-extensions or clients-side graphics\nlibraries.\n\tYour only choice, if you want to stay within the core X protocol, is to\nrender the text into a pixmap, read it back via XGetImage(), rotate it \"by \nhand\" with whatever matrices you want, and put it back to the server via \nXPutImage(); more specifically:\n\t1) create a bitmap B and write your text to it.\n\t2) create an XYBitmap image I from B (via XGetImage).\n\t3) create an XYBitmap Image I2 big enough to handle the transformation.\n\t4) for each x,y in I2, I2(x,y) = I(a,b) where \n\t\ta = x * cos(theta) - y * sin(theta)\n\t\tb = x * sin(theta) + y * cos(theta)\n\t5) render I2\n\tNote that you should be careful how you implement this not to lose\nbits; an algorithm based on shear transformations may in fact be better.\n\tThe high-level server-extensions and graphics packages available for X \nalso permit rendering of rotated text: Display PostScript, PEX, PHiGS, and GKS,\nalthough most are not capable of arbitrary rotation and probably do not use the\nsame fonts that would be found on a printer.\n\tIn addition, if you have enough access to the server to install a font\non it, you can create a font which consists of letters rotated at some\npredefined angle. Your application can then itself figure out placement of each\nglyph.\n\n[courtesy der Mouse (mouse@larry.mcrcim.mcgill.edu), Eric Taylor \n(etaylor@wilkins.bmc.tmc.edu), and Ken Lee (klee@synoptics.com), 11/90;\nLiam Quin (lee@sq.com), 12/90]\n\n\tInterViews (C++ UI toolkit, in the X contrib software) has support for\nrendering rotated fonts in X.  It could be one source of example code.\n[Brian R. Smith (brsmith@cs.umn.edu), 3/91]\n\tAnother possibility is to use the Hershey Fonts; they are \nstroke-rendered and can be used by X by converting them into XDrawLine \nrequests. [eric@pencom.com, 10/91]\n\n\tThe xrotfont program by Alan Richardson (mppa3@syma.sussex.ac.uk) \n(posted to comp.sources.x July 14 1992) paints a rotated font by implementing \nthe method above and by using an outline (Hershey) font.\n\tThe xvertext package by Alan Richardson (mppa3@syma.sussex.ac.uk) is a \nset of functions to facilitate the writing of text at any angle.  Version 3.0 \nwas recently released to alt.sources and comp.sources.misc [3/93]; it is also \non export as contrib/xvertext.3.0.shar.Z. \n\n\tO'Reilly's X Resource Volume 3 includes information from HP about\nmodifications to the X fonts server which provide for rotated and scaled text.\n\n----------------------------------------------------------------------\nSubject: 152)  What is the X Registry? (How do I reserve names?)\n\n\tThere are places in the X Toolkit, in applications, and in the X\nprotocol that define and use string names. The context is such that conflicts\nare possible if different components use the same name for different things.\n\tThe MIT X Consortium maintains a registry of names in these domains:\norgainization names, selection names, selection targets, resource types,\napplication classes, and class extension record types; and several others.\n\tThe list as of 7/91 is in the directory mit/doc/Registry on the R5 \ntape; it is also available by sending \"send docs registry\" to the xstuff mail\nserver.\n\tTo register names (first come, first served) or to ask questions send \nto xregistry@expo.lcs.mit.edu; be sure to include a postal address for\nconfirmation.\n\n[11/90; condensed from Asente/Swick Appendix H]\n----------------------------------------------------------------------\n\n\nDavid B. Lewis \t\t\t\t\tfaq%craft@uunet.uu.net\n\n\t\t\"Just the FAQs, ma'am.\" -- Joe Friday \n-- \nDavid B. Lewis\t\tTemporarily at but not speaking for Visual, Inc.\nday: dbl@visual.com\tevening: david%craft@uunet.uu.net\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1120, "properties": {"category": "soc.religion.christian", "text": "From: kempmp@phoenix.oulu.fi (Petri Pihko)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nOrganization: University of Oulu, Finland\nLines: 183\n\nFirst, I thank collectively all people who have given good answers\nto my questions. In my follow-up to Jason Smith's posting, I will\naddress some issues that have caused misunderstanding:\n\nJason Smith (jasons@atlastele.com) wrote:\n\n> In article <Apr.19.05.13.48.1993.29266@athos.rutgers.edu> kempmp@phoenix.oulu.fi (Petri Pihko) writes:\n\n> I also concede that I was doubly remiss, as I asserted \"No reasonable\n> alternative exists\", an entirely subjective statement on my part (and one\n> that could  be invalidated, given time and further discovery by the\n> scientist).  I also understand that a proving a theory does not necessarily\n> specify that \"this is how it happened\", but proposes a likely description of\n> the phenomena in question.  Am I mistaken with this understanding?\n\nYes, to some degree. There was an excellent discussion in sci.skeptic\non the nature of scientific work two weeks ago, I hope it did not\nescape your notice. \n\nThe correct word is 'likely'. There is no way to be sure our models and\ntheories are absolutely correct. Theories are backed up by evidence,\nbut not proved - no theory can be 'true' in a mathematical sense.\n\nHowever, theories are not mere descriptions or rationalisations of\nphenomena. It is extremely important to test whether theories can\n_predict_ something new or not yet observed. All successful theories\nscience has come up with have passed this test, including the Big\nBang theory of cosmic evolution, the theory of natural selection etc.\nIt does not mean they _must_ be correct, but they are not mere\n'best fits' for the data. \n\n> = But if you claim that there must be\n> = an answer to \"how\" did the universe (our spacetime)  emerge from \n> = \"nothing\", science has some good candidates for an answer.\n\n> All of which require something we Christians readily admit to: ``Faith''.\n\nWell, yes, if you want to _believe_ in them. This is not what science\nrequires - take a good look at the theory and the evidence, see if\nthe theory has made any successful predictions, and use your reason.\nDisbelievers are not punished. \n\n> The fact that there are several candidates belies that *none* are conclusive.  \n> With out conclusive evidence, we are left with faith.\n\nThis is what puzzles me - why do we need to have faith in _anything_?\nMy fellow atheists would call me a weak atheist - someone who is\nunable to believe, ie, fails to entertain any belief in God. \n\nYes, I know that one can't believe without God's help; Luther makes\nthis quite clear in his letter to Erasmus. I'm afraid this does not\nchange my situation. \n\n> [ a couple of paragraphs deleted.  Summary: we ask \"Why does the\n> universe exist\" ]\n\n\n> = I think this question should actually be split into two parts, namely\n> = \n> = 1) Why is there existence? Why anything exists?\n> = \n> = and\n> = \n> = 2) How did the universe emerge from nothing?\n\n(deletions)\n\n> = The question \"why anything exists\" can be countered by\n> = demanding answer to a question \"why there is nothing in nothingness,\n> = or in non-existence\".  Actually, both questions turn out to be\n> = devoid of meaning. Things that exist do, and things that don't exist\n> = don't exist. Tautology at its best.\n\n> Carefully examine the original question, and then the \"counter-question\". \n> The first asks \"Why\", while the second is a request for definition. \n\nNo, it is not, although it does look like one. This is a true dichotomy,\neither something exists, or nothing exists. If nothing exists, nobody\nwould ask why. If something exists, it is possible to ask why, but\nactually no existing being could give an answer. \n\nImagine, for a moment, that the nobodies in non-existence could also\nask: \"Why nothing exists?\" This is equivalent to my counter-question,\n\"why nothing exists in nothingness\". \n\nNow, \"why anything exists\" is equivalent to \"why something exists in\nsomethingness\".  _This_ is what I meant with my tautology, my apologies\nfor the poor wording in my previous post.\n\n> I might add, the worldview of \"Things that exist do, and things that\n> don't...don't\" is as grounded in the realm of the non-falsifiable,\n> as does the theist's belief in God.  It is based on the assumption\n> that there is *not* a reason for being, something as ultimately\n> (un)supportable as the position of there being a reason.  Its very\n> foundation exists in the same soil as that of one who claims there *is* a\n> reason.\n\nI do indeed think there probably _is_ no reason for being, or existence,\nin general, for reasons I stated above. However, they will still\nleave open the question \"why this, and not that\", and this is where\ntheistic explanations come in.\n\nScience cannot give reasons for any _particular_ human being's existence.\n\n> We come to this. Either \"I am, therefore I am.\", or \"I am for a reason.\"\n\nThis is a deep philosophical question - is determinism true, or not?\nAlso, is God deterministic or not? I tend to think this question has\nno meaning in His case. \n\nIf I am for a reason, I've yet failed to see what it would be. \nFrom our perspective, it looks like 'I' exist for truly random\nreasons. I just rolled two dice - why did I get 6 and 1? How can\nI believe there is any better reason for my existence?\n\n> If the former is a satisfactory answer, then you are done, for you are\n> satisfied, and need not a doctor.  If the latter, your search is just\n> beginning.  \n\nYes, I am satisfied with this reason, until I find something better.\nMy 15 years of Christianity were of no help in this respect, I have\nto admit, but I am patient.\n\n> = Another answer is that God is the _source_ of all existence.\n> = This sounds much better, but I am tempted to ask: Does God\n> = Himself exist, then? If God is the source of His own existence,\n> = it can only mean that He has, in terms of human time, always\n> = existed. But this is not the same as the source of all existence.\n\n> This does not preclude His existence.  It only seeks to identify His\n> *qualities* (implying He exists to *have* qualities, BTW).\n\nNo, it doesn't, but I think an existing God cannot know why He exists,\nfor an answer to this question is not knowable. Of course, this\nshould not be any obstacle to belief in His existence.\n\n> I also have discovered science is an inadequate tool to answer \"why\".   It\n> appears that M. Pihko agrees (as we shall see).  But because a tool is\n> inadequate to answer a question does not preclude the question.  Asserting\n> that 'why' is an invalid question does not provide an answer.  \n\nIt is impossible to know unknowable things. However, the question \n\"why do I exist, in particular\" is _not_ an invalid question - this\nis not what I said. But from our perspective, it is impossible to\ntell, and I can't just believe in any given explanation instead of\nanother, especially since I found I was deluding myself. \n\n> My apologies.  I was using why as \"why did this come to be\".  Why did\n> pre-existence become existence.  Why did pre-spacetime become spacetime.\n\nI think \"pre-existence\" is an oxymoron. There is no time 'outside' of\nthis spacetime (except in some other universe), and from that \nperspective, our universe never was. It exists only for those who\nare inside it. \n\n> But we come to the admission that science fails to answer \"Why?\".  Because\n> it can't be answered in the realm of modern science, does that make the\n> question invalid?\n\nNo. The validity of the question has to be discussed separately; I think\nphilosophy is of great help here. What can be known, and what is not\nknowable?\n\n> M. Pihko does present a good point though.  We may need to ask \"What do I \n> as an individual Christian base my faith on?\"  Will it be shaken by the\n> production of evidence that shatters our \"sacred cows\" or will we seek to\n> understand if a new discovery truly disagrees with what God *said* (and\n> continues to say) in his Word?\n\nThis is a very good question. In trying to answer this, and numerous\nother questions that bothered me, I finally found nothing to base\nmy faith on. \n\nI think it would be honest if we all asked ourselves, \"why do I believe\"\nor \"why I don't believe\". \n\nPetri\n\n--\n ___. .'*''.*        Petri Pihko    kem-pmp@          Mathematics is the Truth.\n!___.'* '.'*' ' .    Pihatie 15 C    finou.oulu.fi    Physics is the Rule of\n       ' *' .* '*    SF-90650 OULU  kempmp@           the Game.\n          *'  *  .*  FINLAND         phoenix.oulu.fi  -> Chemistry is The Game.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1121, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dao4@ns1.cc.lehigh.edu (DONALD A. O'SHALL)\nSubject: Re: Original IBM PC specs\nOrganization: Lehigh University\nLines: 27\n\nIn article <C5JD1J.I5s@dutiws.twi.tudelft.nl>, winfrvk@dutiws.twi.tudelft.nl (R.\nv.Kampen) writes:\n>In article <1993Apr9.101944.3200@ucbeh.san.uc.edu> hoffmamc@ucbeh.san.uc.edu wr\nites:\n>>A hard drive with XT-type controller can be added, but I recommend not trying\na\n>>full -height 5 1/4\" hard drive, as I have run into trouble with the 63.5w\n>>supply not having the oomph to spool up those big heavy platters.\n>>\n>one way to get the system going with one floppy drive and one hard\n>disk on a 63 watt power supply is to first disconnect the power from\n>the floppy drive than turn on the pc, you will notice the hard drive\n>having a real difficult time getting up to speed, but it manages.\n>when booting is finished, plug in your floppy drive, now it will work.\n>\n>(ok I know this is not very user friendly, maybe you are better off\n>buying a 486-66 with 300 watt power supply or something like that)\n>\n>willem\n>\nThe newer the drive, the less problem you will have. The old ten and fifteen\nmeg full heights were power hogs, but I have over twenty units that I set up\nrunning flawlessly with half height drives and/or hard cards.\n\n-- \n\n                    DAo4@NS1.CC.LEHIGH.EDU      (Don)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.054+0000", "event": "documents", "entityId": 1122, "properties": {"category": "rec.autos", "text": "From: jdmooney@kocrsv01.delcoelect.com (John D. Mooney)\nSubject: Re: anti-theft devices\nOrganization: Delco Electronics Corp.\nLines: 36\nOriginator: jdmooney@koinsv02\n\n\nIn article <99948@rphroy.ph.gmr.com>, rhaar@gmr.com (Bob Haar) writes:\n> In article 3056@kocrsv01.delcoelect.com, jdmooney@kocrsv01.delcoelect.com (John D. Mooney) writes:\n> |>\n> |>Someone writes:\n> |>> \n> |>> BTW, somebody stole the front grille off my beat-up 1983 Nissan Sentra\n> |>> a few weeks ago!  I couldn't believe it.  I'm just driving around\n> |>> without it now.\n> |>\n> |>Years ago, my brother lived in a ROUGH area....  he left his NOVA \n> |>parked on the street in FRONT of his house for a few days.....  \n> |>one day he went to move it back into the driveway, it wouldn't start....\n> |>\n> |>Seems some industrious fool needed a NOVA GAS TANK..... the fool found\n> |>one under my brothers car.  \n> |>\n> \n> The engines in VW Beatles are quite easy to remove without entering the car\n> or even opening the engine compartment. How would you like to find that\n> your car wouldn't start because the engine was stolen?\n> \n\nI would probobly feel a hell of a lot poorer...   a gas tank is about\n50$ in a junkyard.   An engine... more!\n\nSeriously though, my other brother, DARRELL, left his VW on the same\nstreet...  someone stole the radiator out of it....  try finding a VW\nradiator in a junkyard  :-)    I DARE YOU !\n\nJD\n-- \n********************************************************************************\n* John D Mooney               Delco Electronics                 General Motors *\n* ------------------ jdmooney@kocrsv01@delcoelect.com -------------------------*\n*  Opinions expressed are MINE...             NOT necessarily  DE's or GM's    *\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1123, "properties": {"category": "comp.windows.x", "text": "From: mike@hopper.Virginia.EDU (Michael Chapman)\nSubject: Re: Compiling help\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 15\n\nHere's what I (think) have figured out.  All I need to do is install\nthe R5 disitribution without the Xserver like the sony.cf file defines,\nand all the new libraries, utils, etc., will be installed and my old\nserver from r4 will still work.  This will allow me to run Xview 3.0,\nand have X11r5 up and running.  Does the server interface remain the\nsame with all changes made only to the libs?\n\nAnother question: Is it likely that since Sun is dropping OW support\nthat the desktop utils (like the file manager) will be made public?\nIt would be nice if companies would make old code public for the\nbenefit of those of us with smaller budgets. :)\n-- \nmike@hopper.acs.virginia.edu \n\n\"I will NOT raise taxes on the middle class.\" -Unknown\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1124, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: DeConcini -- ten years ago and today\nOrganization: Ideology Busters, Inc.\nDistribution: usa\nLines: 120\n\n Dennis Deconcini, 1982\n \n...In these and similar areas, the\nBureau has violated not only the dictates of common sense, but of 5\nU.S.C. Sec 552, which was intended to prevent \"secret lawmaking\" by\nadministrative bodies.\n   These practices, amply documented in hearings before this Sub-\ncommittee, leave little doubt that the Bureau has disregarded\nrights guaranteed by the constitution and laws of the United\nStates.\n   It has trampled upon the second amendment by chilling exercise\nof the right to keep and bear arms by law-abiding citizens.\n   It has offended the fourth amendment by unreasonably search-\ning and seizing private property.\n   It has ignored the Fifth Amendment by taking private property\nwithout just compensation and by entrapping honest citizens with-\nout regard for their right to due process of law.\n   The rebuttal presented to the Subcommittee by the Bureau was\nutterly unconvincing. Richard Davis, speaking on behalf of the\nTreasury Department, asserted vaguely that the Bureau's priorities\nwere aimed at prosecuting willful violators, particularly felons ille-\ngally in possession, and at confiscating only guns actually likely to\nbe used in crime. He also asserted that the Bureau has recently\nmade great strides toward achieving these priorities. No documen-\ntation was offered for either of these assertions. In hearings before\nBATF's Appropriations Subcommittee, however, expert evidence\nwas submitted establishing that approximately 75 percent of BATF\ngun prosecutions were aimed at ordinary citizens who had neither\ncriminal intent nor knowledge, but were enticed by agents into\nunknowning technical violations.\n \n( Exerpt from: 97th Congress; 2d Session   COMMITTEE PRINT\n     T H E   R I G H T   T O   K E E P   A N D   B E A R   A R M S\n                                REPORT\n                                of the\n                   SUBCOMMITTEE ON THE CONSTITUTION\n                                of the\n                      COMMITTEE ON THE JUDICIARY\n                         UNITED STATES SENATE\n                        NINETY-SEVENTH CONGRESS\n                            SECOND SESSION\n                             FEBRUARY, 1982\n        Printed for the use of the Committee on the Judiciary\n                    U.S. GOVERNMENT PRINTING OFFICE\n88-618 O\n                        WASHINGTON : 1982\n \n \nLetter to Constituent: April 1993\n \n \nThank you for contacting me regarding the Bureau of Alcohol, Tobacco,\nand Firearms (ATF), which is the Federal law enforcement agency with\njurisdiction over firearms violations and regulations.\n \nIt has been my experience as chairman of the Appropriations\nSubcommittee on Treasury, Postal Service and General Government which\nfunds ATF, that ATF is one of the most competent and highly\nprofessional law enforcement agencies in the Federal government.\nThe agents of ATF have proven their value again and again in\nsuccessful, legal operations to curb the unlawful possession and use\nof firearms, especially in the area of  drug-related crimes.  It\nenforces the Armed Career Criminal Act which calls for mandatory\nminimum sentences for repeat felons using firearms to carry out  an\nillegal activity.  The Bureau has made itself a key component in\npreventing gang related violence, also, both by educating at-risk\nyouth to the dangers of gang membership as well a s by depriving known\ngangs from access to weapons.\n \nThe Waco, Texas case involved the execution of search warrants by ATF\non the Branch Davidians for illegal firearms and explosives possession\n(automatics, semi-automatics, and machine-guns, in addition to bombs\nand other explosives.)  In virtually every gun case, ATF is asked to\ntrace weapons through its' National Firearms Tracing Center, where\nthey keep all dealer and Federal firearms license information.  ATF\nis the Federal governments' firearms expert and routinely works with\nstate and local police to execute warrants.  ATF, working with state\nand local law enforcement in Texas and the U.S. Attorneys' office\nfelt it was necessary to execute these warrants in order to legally\nestablish that a crime had been committed and conclude a long and\nthorough investigation of illegal gun and explosives held by members\nof the Branch Davidians.  In addition, ATF carefully selected a\nSunday morning, knowing from their source, inside, that the men would\nbe separated from the women and children and not in the area where\nit was known that the illegal weapons were stored.\n \nAs you may be aware by now, Vernon Howell a.k.a. David Koresh\nspiritual leader of the Branch Davidians was tipped of the impending\nexecution of the search warrants.  Unfortunately, ATF lost the\nelement of surprise and the cult was able to arm themselves  and\nprepare for ATFs' entry into the compound.  Once a hostage situation\npresented itself, the ATF asked the FBI to become involved since the\nFBI is skilled in hostage negotiations.  In addition, and military\ntanks were brought in due to the serious nature of the situation and\nfirepower of the Branch Davidians.\n \nBased on what I have learned about ATF's role in the Branch Davidian\nraid, I believe the agency acted responsibly.  I am, however, deeply\nsaddened by the loss of lives of the 4 law enforcement agents who\nattempted to enter the compound and the civilian members of the\ncult.  I fully expect the Department of  Treasury to conduct a\nthorough evaluation with representatives from law enforcement outside\nthe Department to be headed by the Assistant Secretary for\nEnforcement.  In addition, ATF will conduct its' own review of the\nWaco operation.  I look forward to reviewing the findings of the\nevaluators and hope this situation in Waco will be brought to a quick\nand peaceful conclusion.\n \nSincerely,\n \nDennis DeConcini\nChairman\nSubcommittee on Treasury,\nPostal Service and\nGeneral Government\n \nApril 7, 1993\n \n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1125, "properties": {"category": "misc.forsale", "text": "From: jac2y@Virginia.EDU (\"Jonathan A. Cook <jac2y>\")\nSubject: Stuff for sale- music\nOrganization: University of Virginia\nLines: 19\n\nCDs ($9 ea inc shipping)\n---\nJesus Jones, DOUBT\nResidents, HEAVEN?\nREM, DOCUMENT\nNymphs, SAD AND DAMNED single\n\nTapes\n-----\nRobert Plant, all solo stuff\nLed Zeppelin IV\n\nTshirts\n-------\nRobert Plant, Manic Nirvana tour\nLed Zeppelin, Symbols/Swansong black\nBob Dylan, 1990 tour tie-dye\n\nAll offers accepted.  Mail to jac2y@virginia.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1126, "properties": {"category": "soc.religion.christian", "text": "From: kilroy@gboro.rowan.edu (Dr Nancy's Sweetie)\nSubject: Questioning Authority\nOrganization: Rowan College of New Jersey\nLines: 36\n\nChris Mussack writes:\n\n> For all those people who insist I question authority: Why?\n\nHow about:\n\n\tThe Holocaust\n\tThe Spanish Inquisition\n\tJonestown\n\n(just to name a few) ?\n\nAuthorities sometimes tell people to do evil things.  People who \"just\nfollow orders\" have tortured and killed others in very large numbers,\nand protest their innocence afterwards.\n\nWhen your authority starts telling you to do things, you should ask\nquestions.  Except for situations of pressing need (\"I said shut the\nhatch because the submarine is filling with water!\"), any reasonable\nauthority should be able to give at least some justification that you\ncan understand.\n\nJust be sure to listen when authority answers.\n\n(If anybody is interested in questions of psychological pressure and\n following orders, you might want to read about a study done by Solomon Ashe\n in 1951 on conformity, and another done by Stanley Milgram in 1963 on\n obedience.  Both should be in any good book on psychology/sociology.  The\n results are both fascinating and terrifying.)\n\n\nDarren F Provine / kilroy@gboro.rowan.edu\n\"we do what we're told\n we do what we're told\n we do what we're told\n told to do\" -- Peter Gabriel\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1127, "properties": {"category": "rec.sport.hockey", "text": "Subject: Re: Too Many Europeans in NHL\nFrom: riel@unixg.ubc.ca (William Riel)\nOrganization: University of British Columbia, Vancouver, B.C., Canada\nNNTP-Posting-Host: unixg.ubc.ca\nLines: 6\n\nHow long has Don Cherry been a student at SFU? (or is that Arche Bunker?)\n\nPlease, keep this racist drivel off of the net.  You're an embarassment\nto Canadians everywhere.\n\nBill \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1128, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: AT&T Bell Laboratories\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nLines: 14\n\nIn article <1qp9d1$e37@dorothy.ibmpcug.co.uk>, gtoal@news.ibmpcug.co.uk (Graham Toal) writes:\n> Try reading between the lines David - there are *strong* hints in there\n> that they're angling for NREN next, and the only conceivable meaning of\n> applying this particular technology to a computer network is that they\n> intend it to be used in exclusion to any other means of encryption.\n\nUmm...  I beg to differ with the phrase ``only conceivable meaning''.\nThe SDNS protocols, for example, make explicit provision for multiple\nencryption systems, as does PEM.  (And I'd love to see how they'd\nmandate this new system for PEM without disclosing it....)\n\nMind you, I'm not saying that multiple algorithms will actually be\nused -- but the relevant technologies certainly provide for them, which\ncertainly casts doubt on your choice of words.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1129, "properties": {"category": "rec.motorcycles", "text": "Organization: Washington University, St. Louis\nFrom:         Brad Thone <C09615BT@WUVMD>\nTo:           NETNEWS@WUVMD\nSubject:      Re: GGRRRrrr!! Cages double-parking motorc\nLines: 25\n\n>An apartment complex where I used to live tried this, only they put the\n>thing over the driver's window, \"so they couldn't miss it.\"  A friend\n>damned near wrecked on the way home one night, her vision blocked by\n>the sticker.  I suggested to the manager the ENORMOUS liability they\n>were assuming by pulling that stunt.  She claimed it was the driver who\n>was at fault for illegally parking in the first place.  That would\n>probably be good for a laugh or two in court, before they found her\n>liable for $Serious.\n\nSeems to me that the driver was driving the vehicle visually impaired.\nIsn't that like not scraping ice and snow off your windshield and such?\n\nSay, that's another thing that bugs me.  Why don't people scrape their\ndamn windows?  I've seen people driving cars with *barely* the driver's\nhalf of the windshield cleared.  Nothing else cleared.  This seems\npretty stupid and isn't there something (probably varies state to state)\nthat says a certain percentage of the glass must be clear?  Oh, well.\n\n-------------------------------------------------------------------------\nBrad Thone\nSystems Consultant\nSystems Service Enterprises\nSt. Louis, MO\nc09615bt @ wuvmd.wustl.edu\nc09615bt @ wuvmd.bitnet\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1130, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Question????\nOrganization: NEC Systems Laboratory, Inc.\nDistribution: usa\nLines: 12\n\nIn article <1r25ldINN9rp@frigate.cis.ohio-state.edu> fields@cis.ohio-state.edu (jonathan david fields) writes:\n>This is probably a stupid question but as I am new to the motorcycle scene\n>I don't really know anything about it. What is DoD? \n\n\tThis has to be a setup.  Lookit--same site as Arnie Skurow.\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1131, "properties": {"category": "comp.graphics", "text": "From: mz@moscom.com (Matthew Zenkar)\nSubject: Re: CView answers\nOrganization: Moscom Corp., E. Rochester, NY\nLines: 19\nX-Newsreader: TIN [version 1.1 PL9]\n\nRay Knight (rknight@stiatl.salestech.com) wrote:\n:uk02183@nx10.mik.uky.edu (bryan k williams) writes:\n\n:>re: majority of users not readding from floppy.\n:>Well, how about those of us who have 1400-picture CD-ROMS and would like to use\n:>CVIEW because it is fast and it works well, but can't because the moron lacked\n:>the foresight to create the temp file in the program's path, not the current\n:>didrectory?\n\n\n:  Actually the most flexible way to create temp files is to check for a TEMP or\n: TMP environment variable and create the files on the drive and directory pointedto by the variable.  This is pretty much a standard for DOS, Windows and OS/2\n: applications.\n\nUnfortunately, cview does not pay attention to the temp environment variable.\n\nMatthew Zenkar\nmz@moscom.com\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1132, "properties": {"category": "misc.forsale", "text": "From: glazier@isr.harvard.edu (Andrew Baker Glazier)\nSubject: Re: HEAVY METAL (the magazine) for sale (NOT the MUSIC)\nArticle-I.D.: burrhus.1993Apr6.151840.3953\nOrganization: Harvard University, Cambridge, MA\nLines: 23\n\nIn article <1prs2t$eqp@transfer.stratus.com> Arthur_Noguerola@vos.stratus.com writes:\n>\n>          I  am  cleaning  out  the coffers.  I have a virtually \n>          MINT collection of HEAVY METAL magazine.  This is  NOT \n>          a  music  mag  but the really neato mag with Giger and \n>          Moebius  artwork,  et  al.  Jam  packed  with  amazing \n>          sci-fi  and  fantasy artwork by many masters.  All are \n>          mint with the exception of the 3 that have split  seam \n>          on  the  cover  only but are otherwise perfect, no cut \n>          outs or missing pages.  I have Sep, Nov and Dec issues \n>          for 1978, ALL issues for 1979, 1980, 1981, 1982,  1983 \n>          and  Jan  thru  Sep  for  1984  (72  issues  in  all i \n>          believe).  I will not break  them  up.  They  will  be \n>          sold  as  a  single  lot.  Send  your  offers  to  me. \n>          Shipping not included,  these  are  pretty  heavy.  Of \n>          course  if  you are local (Mass, USA) you can come get \n>          'em in person. \n>\n>                      arthur_noguerola@vos.stratus.com \n\nIf you send offers to this guy, keep in mind that you can get mint back\nissues from the publisher for $4 - $5 plus shipping, all except the very\nfirst 2 or three issues.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1133, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: Thomas_n.a._Krebs@mcontent.apana.org.au\nOrganization: MacContent BBS, Doncaster, Victoria, Australia\nReturn-Receipt-To: Thomas_n.a._Krebs@mcontent.apana.org.au\nSubject: Re: LC Ram Upgrade will be SLOW!\nLines: 9\n\nYes! what you are saying is absolutey true, but what you fail to mention is the\nfact that the LCIII uses the new 72 pin simms which allow 32 bit access to\neach simm. In the case of the LC III, it only has one simm slot, but accesses will\nbe 32 bits wides.\n***************************************************************************\n The views expressed in this posting those of the individual author only. \n[BBS Number:(613) 848-1346      MacContent is Victoria\u00d5s first Iconic BBS!]\n***************************************************************************\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1134, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: Re: 17\" Monitors\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 10\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nI would realy like to hear from someone that has one of these NANAO T560i\nmonitors that is driving it with a Diamond SpeedStar 24x. With the 24x\nset up to run at its 58.1 khz 72.0hz output mode, and realy driving the\nhell out of the monitor. Just woundering if the NANAO T560i would fall\napart with poor low capabilities like my (3) Sony 1604s did with the 24x\ndriving their balls off...Sam\n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1135, "properties": {"category": "soc.religion.christian", "text": "From: morgan@socs.uts.edu.au\nSubject: re: technology\nReply-To: morgan@socs.uts.edu.au\nOrganization: University of Technology Sydney\nLines: 39\n\nIn article <Apr.2.02.36.53.1993.22906@athos.rutgers.edu> cathye@cs.uq.oz.au writes:\n>I am fairly new to this group. \n>I was wondering about people's opinions on \n>ethical uses of the net, and of technology in general.\n\nthe classic references in this area are Jacques Ellul for a\nliberal/evangelical perspective and Os Guiness for a straight\nevangelical view.  If you want to look at non-christian sources\ntry Alvin Toffler as the perennial optimist.  His views while\nblatently non christian explore where technology may be going.\n\n>For example, there are some chain letters going\n>around which claim to have been written by a Christian missionary, but\n>which present a misleading image of the Christian religion. \n\nThis is regardless of technology.  Be careful to separate the issues of\nrelated to speed and dispersion of technology (how far the letter\nwent and how quickly it got there) and the message being passed in the\ntechnology (something that seems to be totally wrong.)\n\n>How can we help to make best use of computer technology ?\n\nWhen lecturing in this area I challenge my (non-christan/atheistic) class\nabout the impact technology has on life, quality of life and the rights\nthat they consider important.  Depending on how you work out your\nfaith will determine your response to the use of technology.  For example\nfriends of mine are considering IVF due to a life threatening situation the\nwife is going through; when it is over they will have the baby. (God\nwilling).  In this case the technology is available and my friends have to\ndecide what to do.  In all cases though you must decide if the technology\nis against God's revealed word.\n\nRegards\n David\n--\nDavid Morgan| University of Technology Sydney | morgan@socs.uts.edu.au _--_|\\\n            | Po Box 123 Broadway NSW 2007    | Ph: + 61 2 330 1864   /      \\\n            | 15-73 Broadway Sydney           | Fax: +61 2 330 1807   \\_.--._/\n\"I paid good money to get my opinions; you get them for free\"                v\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1136, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: System file in /tmp\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 17\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nIn article <C5JJIG.Doy@acsu.buffalo.edu>, lusardi@cs.buffalo.edu (Christopher Lusardi) writes:\n|> \n|> What is the directory .X11-unix for in /tmp? When I start\n|> x, it is created by the system. This directory wasn't created \n|> by root, and it contains an empty file (X0) that is owned by me. \n|> \n\nIt's the Unix Domain Socket (local connection) to your XServer.\nTry to rm it :)\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1137, "properties": {"category": "talk.politics.misc", "text": "From: ian@nasser.eecs.nwu.edu (Ian Sutherland)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nOrganization: EECS Department, Northwestern University\nLines: 40\n\nIn article <1993Apr15.170731.8797@isc-br.isc-br.com> steveh@thor.isc-br.com (Steve Hendricks) writes:\n>In article <1993Apr15.013651.11353@tijc02.uucp> pjs269@tijc02.uucp (Paul Schmidt) writes:\n>>steveh@thor.isc-br.com (Steve Hendricks) writes:\n>>: \n>>: As noted in another thread (Limiting govt), the problem libertarians face\n>>: is insuring that the \"limited government\" they seek does not become the \n>>: tool of private interests to pursue their own agenda.\n>>: \n\n[...]\n\n>It is a failure of libertarianism if the ideology does not provide any\n>reasonable way to restrain such actions other than utopian dreams.\n\nYou seem to be saying that a LIMITED government will provide MORE\nopportunities for private interests to use it to pursue their own\nagendas, and asking libertarians to prove that this will NOT happen.\nWhile I can't offer such a proof, it seems pretty damn plausible that\nif the government does not regulate a particular area, it cannot become\na tool of private interests to pursue their own agendas in that area.\nI rather suspect that it's the sort of government we have NOW that is\nmore likely to become such a tool, and that it IS such a tool in many\ninstances.\n\n>Just\n>as Marxism \"fails\" to specify how pure communism is to be achieved and\n>the state is to \"wither away,\" libertarians frequently fail to show how\n>weakening the power of the state will result in improvement in the human\n>condition.\n\nI suspect that this is because \"improvement in the human condition\" as\nyou define it is not the primary goal of libertarianism, and would not\nbe the primary goal of a libertarian government.  My impression of\nlibertarianism is that its primary goal is the elimination of\ngovernment coercion except in a very limited cases.\n-- \nIan Sutherland\nian@eecs.nwu.edu\n\nSans Peur\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1138, "properties": {"category": "comp.graphics", "text": "From: ccgwt@trentu.ca (Grant Totten)\nSubject: Re: MS-Windows Screen Grabber (summary)\nLines: 28\nReply-To: ccgwt@trentu.ca (Grant Totten)\nOrganization: Trent University\n\n\nHi again,\n\nMany thanks to all the people who responded to my request for a MS-\nWindows screen grabber.  It proves to me AGAIN that the net is a \nwonderful thing.  :-)\n\nSo, in summary:\n\nThere are two choices:\n\n1)\tVarious screen grabber packages (Corel Draw has one, there are\na couple on simtel and cica).\n\n2)\tUse the built-in PrintScreen and Alt-PrintScreen functionality\nto paste the screen (or window) to the clipboard.  Then paste the \nclipboard to your application.  Cool!\n\nAgain, thanks for the info...\n\nGrant (the MS-Windows newbie -- Unix and X are my bag ;-)\n\n--\nGrant Totten, Programmer/Analyst, Trent University, Peterborough Ontario\nGTotten@TrentU.CA            Phone: (705) 748-1653   FAX: (705) 748-1246\n========================================================================\nA woman's place is in the wrong.\n\t\t-- James Thurber\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1139, "properties": {"category": "rec.motorcycles", "text": "From: sturges@oasys.dt.navy.mil (Richard Sturges)\nSubject: Re: Rejetting carbs..\nReply-To: sturges@oasys.dt.navy.mil (Richard Sturges)\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 34\n\nNow, I am jumping into the middle of this thread so I may not know\nwhat y'all been talking about, but I have a few comments:\n\nIn rec.motorcycles, davet@interceptor.cds.tek.com (Dave Tharp CDS) writes:\n>1.  Unless an engine is supercharged, the pressure available to force\n>air into the intake tract is _atmospheric_.  At the time the intake\n>valve is opened, the pressure differential available to move air is only\n>the difference between the combustion chamber pressure (left over after\n>the exhaust stroke) and atmospheric.  As the piston decends on the\n>intake stroke, combustion chamber pressure is decreased, allowing\n>atmospheric pressure to move more air into the intake tract.  At no time\n>does the pressure ever become \"negative\", or even approach a good\n>vacuum.\n\nThere are a number of other factors that are very important, the three\nbiggest being air velocity, air momentum and shock waves.\nVelocity stacks have been used for years and are now being used inside\nof stock airboxes on a number of bikes.  At a tuned engine rpm, the\nstacks can greatly increase the speed, and thus momentum of the air\nrushing in.\nAir momentum is critical in getting good air intake: the momentum of\nthe air stack outside the combustion chamber will force its way inside\nlong after the piston has begun its compressive up-stroke.\nShock waves are used to induce air intake and to prevent fresh air from\nescaping out the exzhaust ports.  Shock waves are the product of expansion\nchambers or any other means of presenting a 'wall' (opening or closing)\nto the air in motion.  Beyond this I am lost in the mystery of how they\ndesign for shock waves.\n\n\t<================================================>\n       /        Rich Sturges           (h) 703-536-4443   \\\n      /    NSWC - Carderock Division   (w) 301-227-1670    \\\n     /  \"I speak for no one else, and listen to the same.\"  \\\n    <========================================================>\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1140, "properties": {"category": "sci.space", "text": "From: jhwitten@cs.ruu.nl (Jurriaan Wittenberg)\nSubject: Re: Magellan Update - 04/16/93\nOrganization: Utrecht University, Dept. of Computer Science\nKeywords: Magellan, JPL\nLines: 29\n\nIn <19APR199320262420@kelvin.jpl.nasa.gov> baalke@kelvin.jpl.nasa.gov \n(Ron Baalke) writes:\n\n>Forwarded from Doug Griffith, Magellan Project Manager\n>\n>                        MAGELLAN STATUS REPORT\n>                            April 16, 1993\n>\n>\n>2.  Magellan has completed 7225 orbits of Venus and is now 39 days from\n>the end of Cycle-4 and the start of the Transition Experiment.\nSorry I think I missed a bit of info on this Transition Experiment. What is it?\n\n>4.  On Monday morning, April 19, the moon will occult Venus and\n>interrupt the tracking of Magellan for about 68 minutes.\nWill this mean a loss of data or will the Magellan transmit data later on ??\n\nBTW: When will NASA cut off the connection with Magellan?? Not that I am\nlooking forward to that day but I am just curious. I believe it had something\nto do with the funding from the goverment (or rather _NO_ funding :-)\n\nok that's it for now. See you guys around,\nJurriaan.\n \n-- \n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n|----=|=-<- - - - - - JHWITTEN@CS.RUU.NL- - - - - - - - - - - - ->-=|=----|\n|----=|=-<-Jurriaan Wittenberg- - -Department of ComputerScience->-=|=----|\n|____/|\\_________Utrecht_________________The Netherlands___________/|\\____|\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1141, "properties": {"category": "talk.politics.guns", "text": "From: bressler@iftccu.ca.boeing.com (Rick Bressler)\nSubject: Re: Ban All Firearms !\nOrganization: Boeing Commercial Airplane Group\nLines: 21\n\nWoops.  I'm not sure if I screwed up, but this is either forgery or some \nsort of mistake (aborted post that didn't abort) on my part.  \n\nBogus article below if seen in another post should be ignored..  \n\n---------------------------------------------------------------------------\n/ iftccu:talk.politics.guns / bressler@iftccu.ca.boeing.com (Rick Bressler) /  3:29 pm  Apr 13, 1993 /\n/ iftccu:talk.politics.guns / papresco@undergrad.math.uwaterloo.ca (Paul Prescod) /  1:49 am  Apr 12, 1993 /\nIn article <92468@hydra.gatech.EDU> gt6511a@prism.gatech.EDU (COCHRANE,JAMES SHAPLEIGH) writes:\n>\n>I certainly hope this is somebody's idea of a joke, as poor as it it...\n>My earlier posting mentioning an illegal firearms MANUFACTURING site being\n>searched for by the Feds in the Florida area was evidently ignored..\n\nLet's look at this critically:\n1.How many guns did this illegal manufacturing site make compared to\n--------------------------------------------------------------------\n<and so on...>\n\nSorry.\nRick.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1142, "properties": {"category": "rec.autos", "text": "From: gwm@spl1.spl.loral.com (Gary W. Mahan)\nSubject: Re: Are BMW's worth the price?            \nOrganization: Loral Software Productivity Laboratory\nLines: 18\n\n>sure sounds like they got a ringer.  the 325is i drove was definitely\n>faster than that.  if you want to quote numbers, my AW AutoFile shows\n>0-60 in 7.4, 1/4 mile in 15.9.  it quotes Car and Driver's figures\n>of 6.9 and 15.3.  oh, BTW, these numbers are for the 325i.\n\nCar and Driver rated the 325is (1988) at 7.2 0-60 , 1/4 at 15.2 (after 30k miles) last time I checked 8#}.\n\nAutomobile magazine rated new 325is 1/4 mile@16.2.\n\nGee , aint quotiin funner than the dickens!\n\nSounds like we need a race.  I'll let you have the newer version.  Can someone out there lend me a 1988 325is for a day 8-].  I wont hurt it, I promise.\n\n>i don't know how the addition of variable valve timing for 1993 affects it.\n>but don't take my word for it.  go drive it.\n\nActually I will take your word on it.  I refuse to test it (new 325is) because\nI love BMW's and would probably want to buy it.  Problem is, my income just doesn't support that.  \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1143, "properties": {"category": "comp.graphics", "text": "From: berger@chaos.cs.brandeis.edu (David Berger)\nSubject: Need some Graphics Help!\nOrganization: Brandeis University\nLines: 32\n\nHelp!  I'm trying to program my VGA!  I've got it working\nwith in pascal with the following routines for mode $13h\n(320*200*256).  I've got a VESA compatable Trident 8900C w/1meg\nand need to program in 1024*768 mode.  I don't care how many colors.\n \nCould someone take this code and help me write 2 new procedures to\nreplace them so that it'll work in 1024*768*16 or 1024*768*256?\n \nThat'd be GREAT!  Thanks...\n \nHere is the code I currently have for 320*200*256 mode:\n \n  Procedure GraphMode;\n \n    Begin { VideoMode }\n      Asm\n        Mov  AH,00\n        Mov  AL,13h\n        Int  10h\n      End;\n    End;  { VideoMode }\n \n  Procedure PlotPoint (x, y, c : Integer);\n \n    Begin\n      Mem[$A000:x+y*320]:=c;\n    End;\n \n\n-- \n\n\t\t\t\t\tDavid\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1144, "properties": {"category": "misc.forsale", "text": "From: rclar@ctp.com (Richard Clark)\nSubject: 16' HobieCat Special\nOrganization: Cambridge Technology Partners\nDistribution: us\nLines: 9\n\nFor Sale:\n\n1982 - 16' Hobie Cat Special, very good condition with\ntrailer, catbox, righting system, many extras.  Boat\nis currently garaged in Natick MA, 25 miles east of\nBoston.\n\n$1800.  Contact rclar@ctp.com or call (617) 374-8217.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.055+0000", "event": "documents", "entityId": 1145, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Partnership for an America Free Drug\nDistribution: na\nLines: 14\n\nres@colnet.cmhnet.org (Rob Stampfli) writes:\n>\n>Wouldn't a a second monitor of similar type scrolling gibberish and adjacent\n>to the one being used provide reasonable resistance to tempest attacks?\n\nIt would be in a different location, so a directional antenna could\nprobably lock in on just the one monitor. Failing that, a phased array\ncould likely seperate the signals. Admittedly, this is expensive, but\nso is all the rest of this stuff anyway.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1146, "properties": {"category": "talk.religion.misc", "text": "From: joslin@pogo.isp.pitt.edu (David Joslin)\nSubject: Re: Kind, loving, merciful and forgiving GOD!\nOrganization: Intelligent Systems Program\nLines: 46\n\nm23364@mwunix.mitre.org (James Meritt) writes:\n>}(4)  So the fact that Stephen did not reply to A does not justify the\n>}     conclusion that Stephen condoned taking quotes out of context in A\n>Excellent. Now under what conditions could such a conclusion be made, other\n>than a direct assertion by his part.\n\nReplace \"Stephen\" with \"David Joslin,\" since you directed the same\naccusation of hypocrisy at me.  In e-mail to me you wrote:\n    In t.r.m. Robert Weiss writes [a promise from Psalm 9:10]\n    Gee, since you wouldn't be at all hypocritical, you must be really\n    busy arguing against these out-of-context extracted translations!\n\nAs you may recall, you mailed me six mail messages quoting articles by\nRobert Weiss, all sent within a few minutes of each other.  You added:\n    Naturally, I await your arguments against this out-of-context\n    translation.  But I shall not await holding my breath...\nand\n    Wonder when you get to sleep, disputing all these out-of-context\n    extracted translations!\nand other similar comments. \n\nPerhaps you could explain why you ever thought that I might have a\nreason to read all of these articles you pulled off of t.r.m, much\nless write responses to them?  \n\n\n>Have you, by chance, ever even heard of inductive logic?  You are not\n>demonstrating any familiarly with it (i.e. you are being insufficiently\n>logical).\n\nI am familiar with inductive logic.  Go ahead and give me the details\nof the \"logic\" that led you to conclude, incorrectly, that I would\ncondone Robert Weiss taking verses out of context.  Your conclusion was\nwrong, of course, since I agree that both you and Robert Weiss were\nguity of taking verses out of context.  Nothing hypocritical about\nthat, is there?  \n\nSince you reached a false conclusion, you made some mistake in your\n\"logic.\"  The only question is where.  Did you think that it would\nbe hypocritical for me not to post a reply to Robert Weiss' articles?\nDid you make the common creationist error of confusing a lack of\nevidence for X with evidence for the lack of X?   Is your grasp of\ninductive logic not quite as firm as you think? See if you can figure\nout what your mistake was, and learn from it.\n\ndj\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1147, "properties": {"category": "sci.crypt", "text": "From: C445585@mizzou1.missouri.edu (John Kelsey)\nSubject: Re: How large are commercial keys?\nNntp-Posting-Host: mizzou1.missouri.edu\nOrganization: University of Missouri\nLines: 20\n\nIn article <1993Apr20.182038.12009@ee.eng.ohio-state.edu>\nbutzerd@maumee.eng.ohio-state.edu (Dane C. Butzer) writes:\n \n>Finally, can anyone even concieve of a time/place where 128 bit keys aren't\n>sufficient?  (I certainly can't - even at a trillion keys a second, it\n>would take about 10 billion years to search just one billionth of that keys\n>space.)\n \n   It depends on the attack.  Adding a bit to the key doubles the amount of\nwork to be done in a straight brute-force attack, where you try every single\npossible key until one works.  Processing and storage requirements for this\nkind of attack on a 128-bit key seem like they ought to make it effectively\nimpossible.  However, there may be other attacks whose difficulty is (for\nexample) proportional to, say, 2**sqrt(n), or some such.  Also, a long\nkey does you little good if there is a way to incrementally guess a little\nof the key at a time....\n \n>Thanks,\n>Dane\n   --John\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1148, "properties": {"category": "rec.motorcycles", "text": "From: tim@intrepid.gsfc.nasa.gov (Tim Seiss)\nSubject: Re: BMW MOA members read this!\nOrganization: NASA Goddard Space Flight Center - Greenbelt, MD USA\nLines: 18\n\nBill Ranck writes:\n\n>As a new BMW owner I was thinking about signing up for the MOA, but\n>right now it is beginning to look suspiciously like throwing money\n>down a rathole.\n>   When you guys sort this out let me know.\n>\n><--\n>*******************************************************************************\n>* Bill Ranck             (703) 231-9503                     Bill.Ranck@vt.edu *\n>* Computing Center, Virginia Polytchnic Inst. & State Univ., Blacksburg, Va.  *\n>*******************************************************************************\n\nDitto for me..\n\n-Tim Seiss\n '92K75S\n '89KX250\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1149, "properties": {"category": "talk.politics.mideast", "text": "From: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nSubject: Re: Israel's Expansion\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nOrganization: Columbia University\n \nLines: 31\n\n>because the USA is bankrupt and simply cannot afford to finance the\n>Israeli ecconomy any more. There is no money for such an occupation.\n>\n>\n>Don't fool yourself. It was the gulf war that brought the Israelis to the\n>negotiating table. Once their US backers had a secure base in the gulf\n>they insrtructed Shamir to negotiate or else.\n>\n\n>\n>Phill Hallam-Baker \n\nOh, why do you expose your ignorance?  The US has been running on debt for \nthe past four generations and has still financed what it pleases.\n\nAnd after the Gulf War, Israel could do whatever it wanted after\nnot decimating Iraq after the Scud attacks.  It was encouraged, but\nby no means forced, to negotiate.\n\nMr. Baker, to address all of your points would be impossible, but in a \nnutshell, it is hypocritical for you to attack Israel's presence in\nLebanon without attacking Syria.  Syrian occupation has been hostile,\nand amounts to annexation.  Israel's is clearly defensive.  If it \nwere not defensive, you would see all of Lebanon occupied, and governed by\nIsrael.  But that is not what Israel wants.\n\n\nPete\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1150, "properties": {"category": "rec.sport.hockey", "text": "From: lli+@cs.cmu.edu (Lori Iannamico)\nSubject: Pens box score 4/14\nNntp-Posting-Host: lli.mach.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 44\n\nPens-6 NJ Devils-6\n\nFIRST PERIOD: SCORING: 1, Pittsburgh, Daniels(Needham, Tippett)4:14.\n2, NJ Devils, C. Lemieux(Semak, Driver)10:19.  3, Pittsburgh, Stevens\n(Tocchet, Murphy)12:40ppg.  4, NJ Devils, Zelepukin(Driver, Niedermayer)\n17:26.  PENALTIES: PGH, Stevens(roughing)1:30.  NJD, Pellerin-double\nminor(cross-checking)1:30.  NJD, Zelepukin(tripping)7:21.  NJD,\nStasny(holding)11:15.  PGH, Taglianetti(roughing)13:51.  NJD, Lemieux\n(roughing)13:51.  PGH, Jagr(tripping)15:23.\n\nSECOND PERIOD: SCORING: 5, Pittsburgh, Lemieux(Murphy, Tocchet)1:42.\n6, NJ Devils, Semak(Lemieux, Zelepukin)2:27.  7, Pittsburgh, McEachern\n(Jagr, Barrasso)4:24.  8, NJD, Stevens(Guerin, Pellerin)5:45.  9,\nPittsburgh, Lemieux(unassisted)12:40shg.  10, NJ Devils, Richer\n(Nicholls)15:53.  11, NJ Devils, Lemieux(Zelepukin)17:40.  PENALTIES:\nPGH, Stevens(roughing)3:06.  NJD, McKay(roughing)3:06.  PGH, Mullen\n(hooking)10:42.  PGH, Tocchet(roughing)12:06.  NJD, Stevens(slashing)\n12:06.  NJD, Lemieux(unsportsmanlike conduct)12:40.  PGH, U.\nSamuelsson(cross checking)20:00.  PGH, Barrasso-double minor(spearing)\nserved by McEachern, 20:00.  NJD, Holik(cross checking)20:00.  NJD,\nLemieux(roughing)20:00.\n\nTHIRD PERIOD: SCORING: 12, Pittsburgh, Mullen(Jagr, Lemieux)18:54.\nPENALTIES: NJD, Daneyko(interference)3:37.  PGH, Stevens(roughing)\n9:18.  NJD, Holik(roughing)9:18.  PGH, match penalty-game misconduct,9:50.\nNJD, Zelepukin(tripping)12:01.  PGH, Stevens(roughing)18:41.  NJD,\nDaneyko(roughing)18:41.\n\nOVERTIME: SCORING: No scoring.  PENALTIES: No penalties.\n\nSHOTS ON GOAL:\nPittsburgh: 9-11-8-2=30\nNJ Devils: 12-15-9-3=39\n\nGOALIES:\nBarrasso(39 shots, 33 saves. 43-14-5)\nBillington(30 shots, 24 saves)\n\nREF: Devorski  Linesmen: Gauthier, Vines\n\nLori\nContact for the Penguins\nlli+@cs.cmu.edu\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1151, "properties": {"category": "soc.religion.christian", "text": "From: mserv@mozart.cc.iup.edu (Mail Server)\nSubject: Re: src\nLines: 39\n\ndlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n\n>I find it interesting that cls never answered any of the questions posed. \n>Then he goes on the make statements which make me shudder.  He has\n>established a two-tiered God.  One set of rules for the Jews (his people)\n>and another set for the saved Gentiles (his people).  Why would God\n>discriminate?  Does the Jew who accepts Jesus now have to live under the\n>Gentile rules.\n> \n>God has one set of rules for all his people.  Paul was never against the\n>law.  In fact he says repeatedly that faith establishes rather that annuls\n>the law.  Paul's point is germane to both Jews and Greeks.  The Law can\n>never be used as an instrument of salvation.  And please do not combine\n>the ceremonial and moral laws in one.\n> \n>In Matt 5:14-19 Christ plainly says what He came to do and you say He was\n>only saying that for the Jews's benefit.  Your Christ must be a\n>politician, speaking from both sides of His mouth.  As Paul said, \"I have\n>not so learned Christ.\"  Forget all the theology, just do what Jesus says.\n> Your excuses will not hold up in a court of law on earth, far less in\n>God's judgement hall.\n\nPardon me for being a little confused, but at the beginning of your second \nparagraph, you say, \"God has one set of rules for all his people,\" yet at the \nend of the same paragraph you declare, \"please do not combine the ceremonial \nand moral laws in one.\"  Not only do I not understand where in the Bible you \nfind the declaration that there are 2 laws (ceremonial and moral), but I am \nalso unclear on whether you think it is bad to have 2 sets of laws in the first \nplace.  If it's bad to have 2 sets of laws, how can there be a ceremonial law \nthat is different from the moral law (and vice versa)?\n\nI would also be interested in your comments on the passage in I Cor. 10:1-16, \nwhere Paul teaches different rules for covering you head while praying \ndepending on whether you are a man or a woman.  Do you think the apostles can \nprescribe different sets of rules for men and women?  If so, then why not for \nJews and Gentiles?  Also, why did Paul, who was so opposed to circumcising \nGentiles, voluntarily circumcise Timothy?\n\n- Mark\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1152, "properties": {"category": "talk.religion.misc", "text": "From: lfoard@hopper.Virginia.EDU (Lawrence C. Foard)\nSubject: Re: The bad press Islam has recieved.\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 34\n\nIn article <buddha.735157446@du248-07.cc.iastate.edu> buddha@iastate.edu (Scott H Vann) writes:\n>\n>\tI recently read an article in a local paper written by an Islamic\n>  person who was upset with the way Islam has been portrayed by western media.\n>  When a terrorist action takes place in the middle east, it is always played\n>  up as an Islamic Terrorist.  However, when the a Serbian terrorist attacks\n>  the Croations, its not a Christian terrorist, its just a terrorist.\n>\tI have often tried to explain this to some close friends who believe\n>  the press, that Islam is somehow tied to violence.  Often times you hear\n>  things like \"They just don't value human life like we do...\" and so on.\n>  I was wondering if anyone out there had any suggestions for how we can\n>  change this image, or how I can help my friends to see that this is just \n>  hype.  I would appreciate any serious suggestions or comments via e-mail,\n>  and I'm not interested in hearing about how right the press is.\n\nVery easily. Show them pictures of crime scenes perpetrated by Christian\nterrorists in this country, if that doesn't convince them have them talk\nto the victims of Christian terrorism. \n\nA brutal act of terrorism inspired by Christian propoganda was recently\ncommited on your very campus. \n\nIts very simple religious extremists of all religions put no value on\nhuman life. Christian and Islamic fundamentalists put advancing there\nreligion above all else, even if doing so violates the religion itself.\n\nP.S. I'm not saying all Christians are terrorists, I'm using \"Christian\n     terrorist\" in the same way the media uses Islamic terrorist.\n-- \n------          Join the Pythagorean Reform Church!               .\n\\    /        Repent of your evil irrational numbers             . .\n \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n  \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n    \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1153, "properties": {"category": "rec.sport.baseball", "text": "From: mss@netcom.com (Mark Singer)\nSubject: Re: Young Catchers\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 143\n\nIn article <7862@blue.cis.pitt.edu> genetic+@pitt.edu (David M. Tate) writes:\n>mss@netcom.com (Mark Singer) said:\n>\n>>I meant that one should not let the exception make the rule.  \n>\n>It's not an exception.  Good players come up young; most players who come\n>up young will be good.  This has always been the rule.\n\n\nAre most players who come up young always good when they're young, or\nlater?\n\n>Worse: it's not a \"shift\".  This is the way it has *always* been.  Several\n>detailed studies of this have been done, and they've all shown that players\n>aren't coming up any younger or older than in the past, and they aren't \n>playing any more or less in the minors than they used to.  The only thing\n>that shifts is our memories of the \"good old days\" :-).\n\nDamn.  I was afraid you would say that!\n\n>\n>But all after the fact, which makes it *not* applicable to the current\n>discussion, which is about how you decide whether to play the rookie who\n>hasn't \"established himself\" in the majors over the mediocre veteran.  The\n>Padres played Santiago that year because they clearly had nobody else worth\n>playing.  \n\nWell, perhaps if the Braves had no one else worth playing this year it\nwould be Lopez in there.  But they do have others worth playing, at\nleast in *their* opinion.  And I happen to agree.\n\n>\n>>>>Both of these young men were highly touted defensive catchers,\n>>>>expected to be among the best ever in baseball.  \n>\n>Not by rec.sport.baseball consensus.  That may sound like an incredibly\n>arrogant comment, but I've found that the SDCN consensus (when one exists)\n>is right far more often than the media consensus or the opinions of \"baseball\n>people\" affiliated with MLB.  \n\nI can believe that.  I'm a newbie here, so I'll take your word.  But\nAlomar *is* a fine defensive catcher, which was my statement above.\nThat is a solid reason for bringing him up at a tender age, as long\nas they feel he can also hit a bit.  Lopez does not have such a\nconsensus about his defensive prowess, and imho that is enough to\ngive him that dreaded \"seasoning\".\n\n>\n>>I don't know \"who knows\".  I suppose the same people (or similar) who\n>>\"know\" he will be better than some other catcher.  These are, of \n>>course, just differing opinions.  I read that his arm is not that\n>>strong (I suppose somewhere there is some measurement of SB ratios)\n>>and that he is still learning to call a game.  That latter skill may\n>>be difficult to project on someone without an intimate knowledge of\n>>his performance, but it is a tangible skill.\n>\n>I disagree, in that I don't think it *is* a _tangible_ skill, any more than\n>leadership is.  I don't deny that it is a *real* skill, and that some catchers\n>may be much better than others at it, but I really don't see any way that we\n>could ever know who they are.  Nichols's Law of Catcher Defense is eerily\n>accurate far too often for me to take defensive assessments of catchers very\n>seriously.\n\nSorry.  New.  Don't know Nichols' Law.  Don't believe in catchers'\nera.  But I am interested in pitchers' eras with different catchers.\nAny info on that?\n\n>\n>\n>Absolutely.  The evidence is piling up, year after year.  The only other\n>alternative is that the Braves really don't *know* that their young players\n>are, on average, better than their current starters.  I'm not ruling out that\n>kind of gross incompetence, but I think the salary-schedule explanation is\n>more charitable.\n\nIn other words, we know more than they do, so the only logic behind \na different decision than we would make must be financial.  I presume\nwe feel this way about other franchises than Atlanta, no?\n\n>\n>Consider: we *know* that the Braves are about the strongest team in baseball\n>right now, even with Olson and Lemke and Nixon and Bream in the lineup.  They\n>have as good a chance of repeating as champs this year as any team ever has.\n>It actually makes some sense to say \"rather than making our team marginally\n>better this year by bringing up the young studs and dumping the elderly, let's\n>go ahead and compete this year with what we have, and then bring up the studs\n>only as we *have* to, so that we'll still have them under reserve three years\n>from now and beyond when the current team will be collecting pensions.\"\n>\n>Is it fair to the young players?  No.  Does it make organizational sense? \n>I think it does.\n\nWell if it does make organizational sense, one can hardly fault them\nfor their decisions.  I mean, please don't tell me how to run my\nbusiness.  Especially when I'm being successful.\n\n>\n> C:\tI could make it 107 or 108 wins if you let me bring up Lopez.\n>\n>>S:\tListen, Bobby.  I'd like to.  But the way I see it, if he hits\n>>\tthe big club this year we'll be paying mega-arbitration bucks\n>>\tdown the road in a couple of years and there's no way I want\n>>\tto do that.\n>\n>...and continues with\n>\n>\tWe can win without him, and then _keep_ winning next year with him.\n>\tHow's that?\n\nI'm sure you could be right.  You could also be smoking some illegal\nsubstance.\n\n(Hey.  That's a joke.  Don't get offended.  Please.)\n\n>\n>Hey, I'd love to be wrong about this.  If you think it's unlikely, I'd love\n>to know why.  Don't cite anybody's innate ethical rectitude, though, unless\n>you know them personally.\n>\n>\nWell, I can't cite anyone's ethical rectitude because I don't know\nwhat it means.  :)\n\nBut again, if it makes organizational sense, then so be it.  Baseball\nis a business, and if there is a solid business reason for keeping\nLopez on the farm then that's what the Braves *should* do.\n\nI happen to believe that it's a baseball decision.  While you from\nyour armchair may disagee, I don't.  I think there is a lot of\nevidence to suggest the decision they made.  I predicted it among\nlarge guffaws from several at the start of spring training.  I\nthink it is a very *normal* decision to have made.  It is certainly\nmore reversible than to have started Lopez in the bigs and have\nreleased one of their catchers.  Sure, it may be conservative.  It\nmay also be logical.  I don't know what ethics have to do with it.\nSeems like pretty good common sense to me.\n\n--\tThe Beastmaster\n\n\n-- \nMark Singer    \nmss@netcom.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1154, "properties": {"category": "talk.politics.guns", "text": "From: j979@jupiter.sun.csd.unb.ca (FULLER  M)\nSubject: Re: Riddle me this...\nOrganization: University of New Brunswick\nDistribution: usa\nLines: 30\n\nIn article <1993Apr21.040839.20574@ucsu.Colorado.EDU> fcrary@ucsu.Colorado.EDU (Frank Crary) writes:\n>In article <1993Apr20.050550.4660@jupiter.sun.csd.unb.ca> j979@jupiter.sun.csd.unb.ca (FULLER  M) writes:\n>>That the gas was \"not harmful\", as the sensitive, caring Janet Reno described \n>>it?\n>\n>Is it? As far as I know, tear gas, especially in large concentrations,\n>is very dangerous (even toxic) for small children. This makes the\n>FBI's supposedconcern for the safety of the children seem rather \n>hypocritical.\n>\n\nNot to mention that the G-men believed the children didn't have gas masks.\n\nBut that was not, with respect to the children, the point of the gassing.\nThe feds *knew* that the children's health would be in danger and proceeded\nunder the assumption that the \"motherly instinct\" of the Davidian women\nwould remove them from harm's way. I busted a gut on that one.\n\nSomeone else on the net observed that the administration's appeal to a\nwoman's \"motherly instinct\" would never wash with feminists and liberals\nif a republican were in the White House. I say that such an justification\ncould *only* come from a feminist mindset. \n\nBTW - I'd read in the paper yesterday that the type of gas used was CS2.\nThe paper didn't provide any specifics about it.\n\n\"Guess I'm still writing...\"\nMalcolm Fuller, Surveying Engineering, University of New Brunswick\nmalcolm@atlantic.cs.unb.ca or j979@jupiter.csd.unb.ca              }>:-/> --->\n_____________ Malo periculosam libertatem quam quietam servitutem ____________\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1155, "properties": {"category": "rec.motorcycles", "text": "From: todd@psgi.UUCP (Todd Doolittle)\nSubject:  Fork Seals \nDistribution: world\nOrganization: Not an Organization\nLines: 23\n\nI'm about to undertake changing the fork seals on my '88 EX500.  My Clymer\nmanual says I need the following tools from Kawasaki:\n\n57001-183  (T handle looking thing in illustration)\n57001-1057 (Some type of adapter for the end of the T handle)\n57001-1091 No illustration of this tool and the manual just refers to it\n           as \"the kawasaki tool.\"\n57001-1058 Oil seal and bearing remover.\n\nHow necessary are these tools?  Considering the dealers around here didn't\nhave the Clymer manual, fork seals, and a turn signal assembly in stock I\nreally doubt they have these tools in stock and I'd really like to get this\ndone this week.   Any help would be appreciated as always.\n\n--\n\n--------------------------------------------------------------------------\n  ..vela.acs.oakland.edu!psgi!todd  | '88 RM125 The only bike sold without\n  Todd Doolittle                    |           a red-line.         \n  Troy, MI                          | '88 EX500                      \n  DoD #0832                         |                           \n--------------------------------------------------------------------------\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1156, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: Re: Could this be a migraine?\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 31\n\nGB> From: geb@cs.pitt.edu (Gordon Banks)\nGB> >(I am excepting migraine, which is arguably neurologic).\nGB> I hope you meant \"inarguably\".\n\nGiven the choice, I would rather argue <g>.\n\nNo arguments about migranous aura; in fact, current best evidence is\nthat aura is intrinsicially neuronal (a la spreading depression of\nLeao) rather than vascular (something causing vasoconstriction and\nsecondary neuronal ischemia).\n\nMigraine without aura, however, is a fuzzier issue.  There do not\nseem to be objectively measurable changes in brain function.  The\nCopenhagen mafia (Lauritzen, Olesen, et al) have done local CBF\nstudies on migraine without aura, and (unlike migraine with aura,\nbut like tension-type) they found no changes in LCBF.\n\nFrom one (absurd) perspective, *all* pain is neurologic, because in\nthe absence of a nervous system, there would not be pain.  From\nanother (tautologic) perspective, any disease is in the domain of\nthe specialty that treats it.  Neurologists treat headache,\ntherefore (at least in the USA) headache is neurologic.\n\nWhether neurologic or not, nobody would disagree that disabling\nheadaches are common.  Perhaps my fee-for-service neurologic\ncolleagues, scrounging for cases, want all the headache patients\nthey can get.  Working on a salary, however, I would rather not fill\nmy office with patients holding their heads in pain.\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n                                                                       \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1157, "properties": {"category": "rec.sport.hockey", "text": "From: j3david@sms.business.uwo.ca (James David)\nSubject: Plus minus stat\nOrganization: University of Western Ontario\nNntp-Posting-Host: sms.business.uwo.ca\nLines: 26\n\n>Post: 51246 of 51422\n>Newsgroups: rec.sport.hockey\n>From: j3david@sms.business.uwo.ca (James David)\n>Subject: Plus minus stat\n>Organization: University of Western Ontario\n>Date: Fri, 16 Apr 1993 04:42:11 GMT\n>Nntp-Posting-Host: sms.business.uwo.ca\n>Lines: 165\n \n>I'm not defending Bob Gainey...frankly, I don't care for him all\n>that much.  But your dismissal of him as something less than an\n>effective hockey player is tiresome...it has no basis in\n>anything.  How many Calders did he win? I think it was four (go\n                     ^^^^^^^\nOoops...that should read Selke...forgive me for my insolence.\n \ncongenially, as always,\n \njd\n \n-- \nJames David \nj3david@student.business.uwo.ca\n\nj3david@sms.business.uwo.ca (James David)\nWestern Business School  --  London, Ontario\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1158, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: oecjtb@oec4.orbital.dialix.oz.au (John Bongiovanni)\nSubject: SUMMARY: Borland/Microsoft Database C Libraries\nOrganization: Orbital Engine Company\nLines: 384\n\nWell, I'm amazed at how successful this exercise was. I received 20\nresponses and 4 requests for summary. Thanks to everyone who made it\npossible.\n\nOn my own I was able to find out about Codebase, Accsys, and Q+E. Codebase\nand Accsys are C libraries without SQL. Q+E is a Windows application\nthat can be communicated through Windows DDE calls, where you send a SQL\nstring and receive the results.\n\nMost people wrote to tell me about the Paradox Engine from Borland. Other \nproducts mentioned were: Microsoft's ODBC, Accsys, Quadbase, Codebase,\nRBASE, and Q+E. Only ODBC, Quadbase, RBASE, and Q+E have SQL.\n\nFor myself, I decided on Codebase, mostly because it has an ANSI C\nportability version that runs under DOS, UNIX, etc, and includes the\nsource code, and portability is important in my application. It works\nwith DBASE, FoxPro, or Clipper files.\n\nHowever, I feel that Microsoft's ODBC looks very promising.\nIt's mostly a formalisation of building and submitting SQL queries, and\nformatting query results. As the responses say, it's available via ftp,\nexcept it's effectively unusuable without two manuals:\nthe \"ODBC Programmer's Reference\" and the \"ODBC SDK Guide\". Moreover,\nODBC doesn't actually interpret SQL and liase with databases, that's \nup to drivers that should be provided by database manufacturers. Also,\nit's Windows only (it's actually an extension to the Windows SDK). \nNevertheless, it's a start at a SQL interface standard, and should\nmake life interesting in the future.\n\nHere's my original post, followed by the responses, separated by \na line of asterisks (*).\n\n> Does anyone know if Borland or Microsoft have libraries for accessing\n> their respective databases (Paradox, FoxPro) from within C programs?\n> I'd really like to be able to build a SQL query string and pass it\n> to a function which returns the query results in some format. Failing\n> that, any other access would still be better than nothing.\n> \n> I'd also like to hear of third party libraries for doing the same thing.\n> \n> If other people are interested, I'll prepare a summary of what I'm\n> told and post it.\n> \n> Thanks to all.\n\n****************************************************************************\n\nBorland has a product called Paradox Engine that does just what you want. \nThe current version is 3.0, which is fully compatible with (ack) Paradox\n4.0.  (Why the versions are different, I don't know. PD Engine 2.0 was\ncompatible with Pdox 3.0 and 3.5...).  It consists of a rather broad\nlibrary of functions for accesing database files from both Pascal (I think\nturbo Pascal 5.5 and up) and C (I think either Microsoft or Borland).\n\nNow.. reading the box... it's \"Borland Paradox Engine & Database\nFrameworks\".  Works with any Borland C/C++, Mocrosoft C 6.01 or later,\nTurbo C++ for Windows, Turbo Pascal 6.0 or later, TP for Windows 1.0 or\nlater.  For Framework applications, BC++ 3.0 or later or MS C/C++ 7.0. It\ndoes have support for object useage...\n\nI haven't had a real chance to really use it myself... but it looks fairly\ncomplete... I'm planning to use it this summer.\n-Rick\n-- \n+--------------------------------------------------------------------------+\n|  Rick Osterberg   osterber@husc.harvard.edu  617-493-7784  617-493-3892  |\n|     2032 Harvard Yard Mail Center   Cambridge, MA   02138-7510   USA     |\n+--------------------------------------------------------------------------+\n\n****************************************************************************\n\nBorland has a product which is called Paradox Engine. \nI do not know about MS.\n\nThe paradox engine I know very well, and it definitiely\nnot a replacement for SQL, but it will enable you to\nsave and restore records, has locking, et al. Supposedly\nthe Paradox for Windows was impemented on top of it.\n\n\n---------------------------------------------------------\n\nCharles Parker\t\t\t  Phone.(800) 669 9165\nTechnical Support\t\t\t(617) 498 3321\nCenterLine Software, Inc.\t    Fax.(617) 868 6655\n\ncparker@centerline.com\n                                       cyberspace\nmomma, don't let yer children grow up to be ^ cowboys ...\n---------------------------------------------------------\n\n\n****************************************************************************\n\nI know Borland has a library of routines for accessing PARADOX from within\na C program. They recently came out with version 3.0. This works with both\nBorland and Microsoft's C compiler.\n\n\t\t\t\tshailesh bhobe\n\t\t\t\t(708) 979-7101\n\t\t\t\tatt!psp!smb2\n\n\n****************************************************************************\n\n  MS has put their ODBC SDK into the public domain; it's\n _big_ (I believe 1.8 MB), but worth downloading over a\n fast link. Look at ftp.uu.net in vendor/microsoft/odbc-sdk.\n\n Also some companies are starting to provide SQL engines; I\n just got one for RBASE, not exactly cheap at $450, but it\n allows programs in C or VBASIC (under DOS or Windows) to talk\n to data bases using SQL functions in your code.\n\n hth\n\n Walter Knopf\n Fermilab\n\n knopf@fnal.fnal.gov\n\n\n****************************************************************************\n\n   Check out the ODBC toolikt from Microsoft.  It is available on\nftp.uu.net:vendor/microsoft/odbc-sdk.  This is the way that we've\nchosen to access databases from all of our apps.\nmj\n-- \n+----------------------------------------------------------------------------+\n| PPPPP  SSSSSIIIIII   Specialists in MS-Windows and Windows-NT Development  |\n| PP  PPSS      II     Call for information about our OOA/OOD tool:  OOAiD.  |\n| PPPPP  SSSS   II     Michaeljon Miller                   mikem@apertus.com |\n| PP        SS  II     Proficient Solutions, Inc.               612-860-2181 |\n| PP    SSSSS IIIIII   2877 Holmes Ave So. #5          Minneapolis, MN 55408 |\n+----------------------------------------------------------------------------+\n\n\n****************************************************************************\n\nBorland sells the \"Paradox Engine\" which is a C language interface to\nParadox, dBase, Btrieve, ans ASCI files.  They also sell \"Database Frameworks\"\nwhich includes the engine plus a collection (with source) of C++ classes\nfor using the engine.\n\n-- \nEarl Roethke\neroethke@ems.cdc.com\n\n\n****************************************************************************\n\nI actualy have Paradox Engine.  It is a library of functions (large model)\nfor accessing the Paradox's databases.  It seems to be working fine,\nbut I never did try it thouroughly.  It costs ~200$.\n\nHope it will help you...\n\n\nFrom: David Lefebvre <david@hp817.speedware.com>\n\n****************************************************************************\n\nBorland provides a database lib called Paradox Engine which can access\nand use the database files aswell as many other things.\n\nGary.\n\n-- \n``````````` bell@nellads.cc.monash.edu.au `````````````````````````````````````\n| Gary Bell                                                                   |\n| Department of Robotics and Digital Technology                               |\n|Faculty of Computing, Caulfield Campus, Monash University, Australia         |\n\n****************************************************************************\n\nParadox Engine is the library  for Paradox .\n\n\nArtur Babecki\nartur@ii.uj.edu.pl\n\n****************************************************************************\n\nBorland sells the Paradox Engine -- which has all the Paradox calls in it.\nIts hardly SQL though.  You can do searches on key fields and on \nindivual fields, but no comparison operators like <, >=....\n\nso its pretty painful (in my opinion) do do anything besides simple\nretrieval and inserts/updates.\n\nI'm currently using it (I have an eval copy..) and I've linked it in to\nsome entry screens I've written.\n\nThe Engine library adds about 100K to the size of the program, but you can\nload it as an overlay using Borland's VROOM manager.\n\nNow Borland claims that later versions of the engine will have SQL support\nbut they don't really expect it till late in the year... or even next year\nThey are trying to get thrid parties to help out..\n\nIf you have any other questions -- let me know...\n\nMike Kamlet\nmike@vpnet.chi.il.us\n\n\n****************************************************************************\n\nYes, borland sells their Paradox Engine separately.  It has C, C++, and\nPascal interfaces, although the underlying interface is in 'C'. Well at\nleast for version 2.0 of the Engine which I have (costed $99 at Egghead).\nThey now have version 3.0 of the engine, and a separate C++ class package\nfor it.\n\n\n-- \nMichael D. Kersenbrock\nADC Kentrox - Portland, Oregon\nmichaelk@kentrox.com\nuunet!kentrox!michaelk\n\n\n****************************************************************************\n\nI've used AccSys for Paradox (new version is almost ready for Paradox\n4.0) to access Paradox files from C.  Its pretty good.  Not SQL\nthough.  Have heard of Borland Paradox Engine or some such which is\nsupposed to do likewise, but not sure of what it is exactly.\n\nHope this helps, good luck!\nchris\n\nFrom: fernand@slinky.cs.nyu.edu (Christopher Fernandes)\n\n****************************************************************************\n\nBorland sells their \"Paradox Engine (3.0)\".  It's a library of functions\nfor accessing paradox DB files.  It comes with libraries for:\nMS C 7.0\nBCC 3.1\nTurbo Pascal (v??)\nand I believe it comes with Turbo Pascal/Win libraries as well.\nThe C libraries come in both DOS and Windows flavors (the win stuff \nbeing dll's).  \n\nWhen I got it, it also came with Crystal Reports which\nis a graphical report generator.  It allows you to create a generic\nform and use it within a compiled program using Pdox Engine.  I don't\nknow if they still offer it or what the current price is, I paid \nsomething like $50-$60 for an upgrade from the earlier version though...\n\nHope this helps...\n\n-David Taylor\n---\n|      ->> The Commander <<--\t   | It is easier to change the \t|\n|Internet: gt2847c@prism.gatech.edu| specification to fit the program\t|\n|    Also: dtaylor@cfd.gatech.edu  | than vice-versa.\t\t\t|\n|     And: root@cfd.gatech.edu\t   | -Author Unknown (but very wise :-) |\n\n\n****************************************************************************\n\n\nIf you want to do SQL from within your programs, check out QuadBase. I don't\nhave their address oops -- yes I do!    :\nQuadBase Systems, Inc.\n790 Lucerne Dr #51\nSunnyvale, CA 94086 (USA)\n\nphone: 408-738-6989 (voice)  408-738-6980 (fax)\n\nAsk for the SQL/Win demo disk.\n\nIt looked good to me (I have a background in embedded SQL in Ingres -- this\nlooked real similar). It's a little expensive, but if you order the demo\nand then just wait they will probably send you a special offer that'll\nprobably run about $500 US. Good luck!\n\nBest,\n                             Tom DeLosh\n\nFrom: delosh@emunix.emich.edu (Tom Delosh)\n\n\n****************************************************************************\n\nBorland has the Paradox Engine library.  It has libraries for\nboth C and Pascal to access Paradox files under DOS/Windows.  \nBut for Paradox, I believe you'd have buy have the SQL Link \nsince Pdox itself isn't SQL compliant.  I've used the engine \nfor over a year now and have been pretty satisfied with it.  \nUnder DOS, it's a real pig.  It tacks on about 120K to the size of \nyour programs.\n\ntim ma\nassociate programmer\nuniversity of utah\nemail:  tim@src.cppa.utah.edu\n\n****************************************************************************\n\nI don't know about Microsoft, but Borland sells the Paradox Engine for C/C++ &\nPascal (in one package).  And if you want dBase compatible files there is a \nlibrary called CodeBase from Sequiter software that works with C/C++.\n\nFrom: davidr@rincon.ema.rockwell.com (David J. Ray)\n\n\n****************************************************************************\n\n\nWe're using Q+E database libraries to do what you describe.\nIt's a set of DLL's accessed through a common API to talk to most of the\nmajor database formats. We're using it to build an application that\nqueries several databases using SQL queries. _All_ access using Q+E is\ndone using SQL. The package is available through Microway in Melbourne. I\nbelieve it is produced by Pioneer Systems in the US. We have no\nassociation with Microway or Pioneer Systems other than being satisfied\ncustomers.  Feel free to mail me for further information.\n\nChris \n(Programming for NSW National Parks and Wildlife Service)\n-- \n-------------------------------------------------------------------------------\nChris Hutchinson                       Box U302\nResearch Programmer                    University of New England\nchris@sulaw.law.su.OZ.AU               Armidale NSW 2351\n(067) 727 014\n\n\n****************************************************************************\n\nParadox Engine 3.0 provides a complete set of C libraries for \naccessing Paradox tables. However, it seems that it supports \nonly Borland/Turbo C and MicroSoft C. When I tried to compile \nthe engine's sample applications with the Waterloo WATCOM C/C++\n(32-bit) compiler, it complains that the library file LLIBCE.LIB \nis missing even though I am quite certain that the file is NOT\npart of WATCOM C or the engine. Anybody have any success with \nother C compilers?\n\nRon.K.Ng@hydro.on.ca\n--------------------\n\n\n****************************************************************************\n\nI'm currently developing an app. with Borland's \"Paradox Engine\nfor C\" (it also comes in Pascal), which has recently gone to version 3.0\n(I.e., PX Engine 3.0 is compatible with Paradox 4.0, and downward compat.\nw/3.5).  There are indeed C libs for Fox access, but I can't think of the\nnames offhand - I'm sure someone has already written you in that regard -\n(I think I just saw an add for a Fox lib in the \"C Users Journal\", which\nis a good place to look for this type of package in general, by the way).\nI've been paying my dues to learn a lot of the quirks of PX Eng. over the\npast year - wouldn't recommend it for a complex multiuser app.--but I'm\nstaying with it for now--it's like a bad marriage: I've got too much time\ninvested in learning and work-arounds!  But if your interest is limited\nto a simple single-user interface (you want to build your own SQL engine,\nI take it), PX Engine will do the job easily - it doesn't sound like\nyou'll be bumping into any of the gotchas.  If you do, write me; I may\nbe able to point you in the right direction.\n\nFrom: raymond@cruzio.santa-cruz.ca.us (raymond)\n\n****************************************************************************\n\nBorland has a \"Paradox Engine and Database Framework 3.0\" which gives you\na \"C\" (and assembler?) API to Paradox databases.  This is part of \"BOCA\"\n-- Borland's Object Component Architecture.  They have technical briefs\non BOCA, PdoxEng, and other products of theirs.\n\nFrom: jdm@jumbo.Read.TASC.COM (James D. McNamara)\n-------------------  James D. McNamara | TASC  --------------------\n55 Walkers Brook Drive | Reading, MA 01867-3238 | 617-942-2000x2948\n\n****************************************************************************\n\n-- \nJohn Bongiovanni, Systems Analyst, Orbital Engine Company, Perth, Australia\noecjtb@oec4.orbital.dialix.oz.au, bongo@alumni.caltech.edu\nOpinions expressed are my own and not those of my organisation.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1159, "properties": {"category": "misc.forsale", "text": "From: martimer@jaguar.WPI.EDU (the random one...)\nSubject: Re: VHS movie for sale\nOrganization: Worcester Polytechnic Institute\nLines: 10\nNNTP-Posting-Host: jaguar.wpi.edu\n\nIn article <1993Apr19.211400.1@hirama.hiram.edu> koutd@hirama.hiram.edu (DOUGLAS KOU) writes:\n>VHS movie for sale.\n>\n>Dance with Wovies\t($12.00)\n\t    ^^^^^^ what the  hell ios a 'wovie' ?? (wovy (sp))??\n \n-- \n \t\tFrom there to here, from here to there,\n \t\t\tfunny things are everywhere \t     Dr. Suess\n..jonathan Sawitsky       'some random wierdo'         martimer@wpi.wpi.edu...\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1160, "properties": {"category": "soc.religion.christian", "text": "From: rich0043@student.tc.umn.edu (Timothy Richardson)\nSubject: Re: Seeking Christian opinion, all sorts.\nOrganization: Pygmalion Productions\nLines: 22\n\nSubject: Re: Seeking Christian opinion, all sorts.\nFrom: Rob Steele, rsteele@adam.ll.mit.edu\nDate: 5 May 93 06:52:54 GMT\n\n>Do you mean that your fellow Christians tend to find you wacky?  Maybe  \n>they're right.  You might be interested in Franky Schaeffer's books  \n>about what philistines American Christians are: _Addicted to  \n>Mediocrity_ and more recently _Sham Pearls for Real Swine_.\n\nOne day a few years ago Franky Schaeffer walked into a Greek Orthodox\nChurch.  He is now an Orthodox Christian.  So is his mother and if his\nfather, Fransis Schaeffer, had not passed away he too would have come\ninto the church.  \nFranky, like many Americans who have recently found the Orthodox church,\ndescribed the experience as finally coming home after a long jouney\nthrough a desert.  You should also read the book \"Becoming Orthodox\" by\nPeter Gillquist.  It describes the long journey of some 2000 weary\nEvangelical Protestants to the Orthodox church.   Come taste and see how\ngood the Lord is.\n\nTimothy Richardson\nrich0043@student.tc.umn.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1161, "properties": {"category": "talk.politics.guns", "text": "From: ron@hpfcso.FC.HP.COM (Ron Miller)\nSubject: Re: Boston Gun Buy Back\nOrganization: Hewlett-Packard, Fort Collins, CO, USA\nLines: 18\n\nRe: More on Gun Buybacks\n\nThe Denver buy back, trading guns for Denver Nuggets tickets was pretty much\na bust. Very few guns were turned in. The news tried to hype it but \nwhen the best they could do was \".... including a loaded .38...\" well,\nyou get the picture.\n\nA side note- the news also reported that the guns would be checked for\nwhether or not they were stolen. STOLEN GUNS WILL BE RETURNED TO THEIR\nOWNERS!!!!! (They say)\n\n(Does this have anything to do with the rally on the Capital steps yesterday\n in support of the RKBA????)\n\nEven the rally made the 5 pm news on 3 channels :-)\n\n\nRon Miller\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1162, "properties": {"category": "rec.motorcycles", "text": "From: charlie@elektro.cmhnet.org (Charlie Smith)\nSubject: Re: looking for a maintenance manual for Honda CB 360\nOrganization: Why do you suspect that?\nLines: 19\n\nIn article <1993Apr12.132410.19470@wam.umd.edu> buffalo@wam.umd.edu (Duncan D. Sterling) writes:\n>If anyone thinks that touring on a CB 360 is pushing the envelope, try\n>a 175 twin.  My local Honda dealer says that my 1969 Honda Dream 175\n>was commonly referred to as a \"serious touring bike\" when it first\n>came out?!?!?!  (maybe there IS something in the water around here).\n\n\nWhat's the problem here?  Back in 1958 I rode a Puch 175 from Paris to\nBarcelona and back.  That was a two stroke, and back then it was representative\nof the size of bikes on the road.  A 350 was considered a big bike, and the\nsuperbikes of the day were 500cc or 600cc.  Anything bigger was real rare.\n\n\nCharlie Smith,  DoD #0709,  doh #0000000004,  1KSPT=22.85\n\n\tNothing in the water!\n\tMais, voulez vous un peu du melange ?\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1163, "properties": {"category": "comp.graphics", "text": "From: hendrix@oasys.dt.navy.mil (Dane Hendrix)\nSubject: Processing of stereo images\nReply-To: hendrix@oasys.dt.navy.mil (Dane Hendrix)\nOrganization: Code 1542, DTMB, Bethesda, MD\nLines: 16\n\nI'm interested in find out what is involved in processing pairs of \nstereo photographs.  I have black-and-white photos and would like \nto obtain surface contours.\n\nI'd prefer to do the processing on an SGI, but would be interested\nin hearing what software/hardware is used for this type of\nimage processing.\n\nPlease email and/or post to comp.sys.sgi.graphics your responses.\n\nThanks,\n\nDane Hendrix                              | email: dane@wizard.dt.navy.mil \nDTMB (a.k.a. Headquarters, Carderock Div.,|  or hendrix@oasys.dt.navy.mil\nNaval Surface Warfare Center)             |  or hendrix@nas.nasa.gov \nCode 1542, Bethesda, MD 20084-5000        | phone: (301)227-1340\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1164, "properties": {"category": "rec.autos", "text": "From: mje@pookie.pass.wayne.edu (Michael J. Edelman)\nSubject: Re: Saturn 91-92 Manual Transmission Problem\nOrganization: Wayne State University\nLines: 17\nDistribution: world\nReply-To: mje@pookie.pass.wayne.edu\nNNTP-Posting-Host: pookie.pass.wayne.edu\n\nIn article KA6@crdnns.crd.ge.com,  cimjfg@sn370.utica.ge.com writes:\n .\"\n>\n>After many trips to the dealer, who has admittedly been patient with me,\n>they are admittedly going to do nothing about it....>\n>The dealer did however follow the Bulletin and \"review proper shifing\n>procedures with the owner\"....\n>My next attempt at satisfaction in the Customer 800 number but from the first\n>round it doesn't sound too hopeful.\n>\n\nI'm surprised. I know of a local case where a guy took his Saturn back five\ntimes to complain they hadn't properly eliminated a rattling noise...so Saturn\ngave him a new car.\n\nCall that 1-800 number.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1165, "properties": {"category": "sci.space", "text": "From: apryan@vax1.tcd.ie\nSubject: STS-56 Press Kit\nLines: 9\nNntp-Posting-Host: vax1.tcd.ie\nOrganization: Trinity College Dublin\nLines: 9\n\nDoes anyone know ifthe STS-56 email press kit was ever released?\n\n-Tony Ryan, \"Astronomy & Space\", new International magazine, available from:\n              Astronomy Ireland, P.O.Box 2888, Dublin 1, Ireland.\n6 issues (one year sub.): UK 10.00 pounds, US$20 surface (add US$8 airmail).\nACCESS/VISA/MASTERCARD accepted (give number, expiration date, name&address).\n\n   (WORLD'S LARGEST ASTRO. SOC. per capita - unless you know better? 0.033%)\nTel: 0891-88-1950 (UK/N.Ireland) 1550-111-442 (Eire). Cost up to 48p per min\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1166, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dil.admin@mhs.unc.edu (Dave Laudicina)\nSubject: More Diamond SS 24X\nNntp-Posting-Host: dil.adp.unc.edu\nOrganization: UNC Office of Information Technology\nLines: 9\n\nHas anyone experienced a faint shadow at all resolutions using this\ncard. Is only in Windows. I have replaced card and am waiting on \nlatest drivers. Also have experienced General Protection Fault Errors\nin WSPDPSF.DRV on Winword Tools Option menu and in WINFAX setup.\nI had a ATI Ultra but was getting Genral Protection Fault errors\nin an SPSS application. These card manufactures must have terrible\nquality control to let products on the market with so many bugs.\nWhat a hassle. Running on Gateway 2000 DX2/50.\nThx Dave L\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.056+0000", "event": "documents", "entityId": 1167, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pm860605@longs.LANCE.ColoState.Edu (Peter J. McKinney)\nSubject: Re: PC keyboard\nSummary: location of cap lock and ctrl keys on PC keyboard\nKeywords: cap lock and ctrl key\nArticle-I.D.: longs.pm860605.143.734052152\nOrganization: Colorado State University\nLines: 31\nNntp-Posting-Host: hercules.lance.colostate.edu\n\nIn article <hxg5nxl@rpi.edu> wen@yingyang.ral.rpi.edu (John Wen) writes:\n>From: wen@yingyang.ral.rpi.edu (John Wen)\n>Subject: PC keyboard\n>Summary: location of cap lock and ctrl keys on PC keyboard\n>Keywords: cap lock and ctrl key\n>Date: Mon, 5 Apr 1993 19:23:35 GMT\n>Does anyone know of a software that can exchange caps lock and ctrl\n>keys on the AT-style keyboard?  I'm looking for a memory resident\n>program that can work with other programs, rather than a feature in a\n>specific program (I am aware of a shareware program \"back and forth\"\n>that provides this feature within that program).  Thanks.\n\n   A program in the archive keymap00.zip on simtel and mirror sites in the \nmsdos/keyboard directory will do this.  It is written in assembler and it \nbest if you have a compiler to create a new keyboard map.  It is possible, \nhowever, to use a binary editor to edit the provided compiled keyboard \ndriver if you do not have a compiler.  I used hexed100.zip, also available \non simtel.  Simply serach for the codes 00 01 02 03 to locate the biginning \nof the \"normal\" keyboard map.  Then swap the codes for the keys that you \nwish to swap.  See the keyboard directory of simtel for programs that report \nthe scancode for each key to you (some bios programs also have this info).\nGood luck,\n\n- Pete\n____________________________________________________________________________\n| Peter J. McKinney                     pm860605@longs.LANCE.ColoState.Edu |\n| Electrohydrodynamic Laboratory                                           |\n| Fluid Mechanics and Wind Engineering Program                             |\n| Civil Engineering Department                                             |\n| Colorado State University                                                |\n----------------------------------------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1168, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: The Inimitable Rushdie\nOrganization: sgi\nLines: 24\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <115468@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n|> In article <1qg79g$kl5@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >You are amazed that I find it difficult to grasp it when\n|> >people justify death-threats against Rushdie with the \n|> >claim \"he was born Muslim?\"\n|> \n|> This is empty rhetoric. I am amazed at your inability to understand what\n|> I am saying not that you find it difficult to \"grasp it when people\n|> justify death-threats...\". I find it amazing that your ability to\n|> consider abstract questions in isolation. You seem to believe in the\n|> falsity of principles by the consequence of their abuse. You must *hate*\n|> physics!\n\nYou're closer than you might imagine.   I certainly despised living\nunder the Soviet regime when it purported to organize society according\nto what they fondly imagined to be the \"objective\" conclusions of\nMarxist dialectic.\n\nBut I don't hate Physics so long as some clown doesn't start trying\nto control my life on the assumption that we are all interchangeable\natoms, rather than individual human beings.\n\njon. \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1169, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Surviving Large Accelerations?\nOrganization: U of Toronto Zoology\nLines: 13\n\nIn article <EfpX7WS00Uh7QAoP1S@andrew.cmu.edu> Amruth Laxman <al26+@andrew.cmu.edu> writes:\n>... here's my question finally - Are 45g accelerations in\n>fact humanly tolerable? - with the aid of any mechanical devices of\n>course. If these are possible, what is used to absorb the acceleration?\n\nThis sounds a bit high to me.  Still higher accelerations have been endured\n*very briefly*, during violent deceleration.  If we're talking sustained\nacceleration, I think 30-odd gees has been demonstrated using water immersion.\n\nI doubt that any of this generalizes to another order of magnitude.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1170, "properties": {"category": "sci.electronics", "text": "From: rivero@sol.cie.unizar.es\nSubject: Video IO ideas?\nOrganization: Free University of Berlin, Germany\nLines: 7\n\nHave anyone some idea about how to build a cheap, low\nresolution (or high :-) video projector... \n\n(example: a LCD and an slide projector)\n.\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1171, "properties": {"category": "comp.windows.x", "text": "From: stevew@chineham.euro.csg.mot.com (Steve Weet)\nSubject: Xterm Cursor\nX-Received: by usenet.pa.dec.com; id AA19241; Sun, 18 Apr 93 23:09:02 -0700\nX-Received: by inet-gw-2.pa.dec.com; id AA08122; Sun, 18 Apr 93 23:08:16 -0700\nX-Received: from pobox.mot.com ([129.188.137.100]) by motgate.mot.com with SMTP (5.65c/IDA-1.4.4/MOT-2.13 for <comp.windows.x.usenet@decwrl.dec.com>)\n          id AA13841; Mon, 19 Apr 1993 01:08:08 -0500\nX-Received: from chimpc01.euro.csg.mot.com ([140.101.110.3]) by pobox.mot.com with SMTP (5.65c/IDA-1.4.4/MOT-2.12 for <comp.windows.x.usenet@decwrl.dec.com>)\n          id AA05426; Mon, 19 Apr 1993 01:06:06 -0500\nX-Received: by chimpc01.euro.csg.mot.com (5.61/MCDMAIL IR04 [03/06/92 15:24]/1.36)\tid AA07883; Mon, 19 Apr 93 07:04:08 GMT\nX-Mailer: Z-Mail (2.1.3 26jan93)\nX-To: comp.windows.x.usenet\nLines: 42\n\n\n\nForgive me if this is a FAQ (I have checked the list but I cant find it).\n\nI have a problem with the cursor within Xterm on MONO (not grayscale monitors)\nThe problem is that when I have an character application that displays input\nfields in reverse video the Xterm text cursor gets lost on the edge of the\ninput field.\n\nThe solution would appear to be to set the xterm cursor to a line rather\nthan a block, but how do you do this. I can't find any means although\nvarious sources seem to indicate it can be done.\n\nWhen the xterm loses the input focus the cursor becomes an outlined block.\nThis would also be preferable but I can't seem to force this to be the\ndefault either.\n\nConfiguration is  : Motorola 88K X11R4\n\nPlease reply by email if poss.\n\nThank you\n\n\n\n--\n-----------------------------------------------------------------------------\nSteve Weet - European Mis - Motorola Cellular Subscriber Group\nBeechgreen Court, Chineham, Basingstoke, HANTS England.\nPhone : +44 (0)256 790154  E-Mail  stevew@chineham.euro.csg.mot.com\nFax   : +44 (0)256 817481  Mobile  : +44 (0)850 335105  Post : w10075\n\n\n\n\n-- \n-----------------------------------------------------------------------------\nSteve Weet - European Mis - Motorola Cellular Subscriber Group\nBeechgreen Court, Chineham, Basingstoke, HANTS England.\nPhone : +44 (0)256 790154  E-Mail  stevew@chineham.euro.csg.mot.com  \nFax   : +44 (0)256 817481  Mobile  : +44 (0)850 335105  Post : w10075\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1172, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lreiter@jade.tufts.edu (Lowell B. Reiter)\nSubject: HP LaserJet III, printing(non-Appletalk) with Duo\nLines: 25\nOrganization: Tufts University - Medford, MA\n\nHow does one print to a non-appletalk printer  using DMM LaserWriter Stuff.\n\nI'm using the Serial driverand does nothig. I'vetried saving a postscriptfile and then tried sending with SendPS2.0 and it says can'topen LaserWriter Driver,\nthen some appletalk messagethatprinter not specified.  I'm using and imagewritwrite one cable.   Should I use a null-modem adapter?  Help...\n\n---Lowell\n--\n***********************************************************************\n* Lowell Reiter\t\t\t  \"I need a Vacation... Now!!! \"      *\n* Tufts University                                                    *\n* Internet Account: lreiter@jade.tufts.edu                            *\n***********************************************************************\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1173, "properties": {"category": "sci.crypt", "text": "From: schinagl@fstgds15.tu-graz.ac.at (Hermann Schinagl)\nSubject: Need source of FEAL encrytion algorithm\nOrganization: Technical University of Graz, Austria\nLines: 12\nNNTP-Posting-Host: fstgds15.tu-graz.ac.at\nX-Newsreader: TIN [version 1.1 PL9]\n\nHi !\n\nI am interested in the source of FEAL encryption algorithm.\nDoes someone of you know where I can get the source from, or\nwhere I can find documentation about FEAL.\n\nThanks in advance\n\n\nCiao Hermann\n\nPlease email me !!!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1174, "properties": {"category": "sci.electronics", "text": "From: rogerw@world.std.com (Roger A Williams)\nSubject: Re: Adcom cheap products?\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 27\n\nmdonahue@amiganet.chi.il.us (Mike Donahue) writes:\n\n\n>I do NOT know much about Adcom Mobil Audio products, but I DO know for a fact\n>that ADCOM does NOT make its own \"High End\" Home Audio Equptment and that 80%+\n>of it comes directly out of Tiawan...\n\nLike most high-volume manufacturers, Adcom has most of its PC boards\nassembled off-shore (in their case, mostly in the far east).  Final\nassembly _and testing_ are done in East Brunswick.\n\nThe products are, and have always been, designed entirely in the US;\nby their own staff and by audiophile gurus like Walter Jung.  Adcom\nalso tends to prefer American and European components over their\nJapanese/Far East equivalents.\n\nOff-shore assembly is one reason that Adcom is able to make products\nthat perform as well as those from people like Audio Research and Van\nAlstine (and better than Hafler and Forte'), but at a much lower cost.\n\nOf course, if your musical diet consists mostly of Rock, you might\nprefer components from Kenwood or Pioneer...\n\nRoger Williams\t\t| \"Most great discoveries are made\nrogerw@world.std.com\t|  by accident: the larger the\nconsulting engineer\t|  funding, the longer it takes to\nMiddleborough, Mass.\t|  have that accident.\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1175, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: neff123@garnet.berkeley.edu (Stephen Kearney)\nSubject: Re: NDW Norton Desktop for Windows\nOrganization: University of California, Berkeley\nLines: 7\nNNTP-Posting-Host: garnet.berkeley.edu\n\n(NDW)\n>I would like to know how to STOP or uninstall this program!!\n\nIf an Uninstall icon doesn't exist in the Norton Desktop Apps\ngroup:\n\nRun NDW's install program with /u.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1176, "properties": {"category": "soc.religion.christian", "text": "From: jenk@microsoft.com (Jen Kilmer)\nSubject: Re: sex education\nOrganization: Microsoft Corporation\nLines: 27\n\nIn article <Apr.7.23.20.08.1993.14209@athos.rutgers.edu> mprc@troi.cc.rochester.edu (M. Price) writes:\n>In <Apr.5.23.31.32.1993.23904@athos.rutgers.edu> jenk@microsoft.com (Jen Kilmer) writes:\n>\n>> Method                  Expected         Actual \n>> ------                 Failure Rate    Failure Rate\n>> Abstinence                 0%              0% \n>\n>\n>    These figures don't seem to take account of rape. Or is a woman who\n>is raped considered not to have been abstaining?\n\nI no longer have the textbook, but abstinence was defined as something\nlike \"no contact between the penis and the vagina, vulva, or area \nimmediately surrounding the vulva, and no transfer of semen to the\nvagina, vulva, or area surrounding the vulva\".  \n\nThat is, abstinence wasn't discussed as \"sex outside of marriage is\nmorally wrong\" but as keep  the sperm away from the ovum and conception \nis impossible. The moral question I recall the teacher asking was,\n\"is it okay to create a child if you aren't able to be a good parent\nyet?\"\n\n-jen\n\n-- \n\n#include <stdisclaimer>  //  jenk@microsoft.com  // msdos testing\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1177, "properties": {"category": "rec.autos", "text": "From: chrisb@lynx.ps.uci.edu (Chris Barrus)\nSubject: Re: WARNING.....(please read)...\nNntp-Posting-Host: lynx.ps.uci.edu\nIn-reply-to: ejv2j@Virginia.EDU's message of Thu, 15 Apr 1993 02:42:46 GMT\nOrganization: Dept. of Physics, Univ. of California, Irvine\nLines: 15\n\n\nUnfortunately, I've got another story to add to this.  My girlfriend\nand I were driving through west L.A., and got pelted by a rock just as\nwe were pulling away from a stoplight.  The scary thing was that the\nrock was heavy enough to put a decent-sized dent in the door of my '72\nRiviera which is pretty much solid \"Detriot Iron.\"  Couple of inches\nhigher and it would have gone through the window.\n\nChris\n--\n---------------------------------------------------------------------------\n     Chris Barrus  ---   chrisb@lynx.ps.uci.edu  ---  kallista@aol.com\n   1972 Buick Riviera boattail, peace through superior automotive power!\n           Sacred cows make the best hamburger - Abbie Hoffman\n---------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1178, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ivancich@eecs.umich.edu (Eric Ivancich)\nSubject: Re: 14\" monitors\nIn-Reply-To: fredm@media.mit.edu's message of Wed, 31 Mar 1993 20:39:45 GMT\nOrganization: University of Michigan EECS Department\nDistribution: na\nLines: 37\n\nIn article <1993Mar31.203945.8757@news.media.mit.edu> fredm@media.mit.edu (Fred G Martin) writes:\n\n   [part of posting removed]\n\n   * the Sony CPD-1304 has better video circuitry than either of the\n   other two monitors.  It can display Apple 640x480, VGA 640x480, VGA\n   800x600 (though this has 56 Hz flicker), and Apple 832x624 (75 Hz\n   refresh:  no flicker at all).  It might be able to display Apple's\n   1024x768, but I'm not sure about this, and the pixels would be real\n   small anyway so it might not be that useful.\n\n   Note that with either Sony monitor, you will need the proper adapter,\n   which both connects the video signals properly, but also informs the\n   Macintosh video hardware of which display mode to use.\n\n   [part of posting removed]\n\n   -- \n   Fred Martin | fredm@media.mit.edu | (617) 253-7143 | 20 Ames St. Rm. E15-301\n   Epistemology and Learning Group, MIT Media Lab     | Cambridge, MA 02139 USA\n\nI'm assuming that the cabling tells the Mac, at startup, what kind of\nmonitor is connected.  Now I think I've seen ads in popular Mac\nmagazines for products (I'm not sure if it's just a monitor, just a\nvideo card, or a package of both) that allow you to change resolutions\non the fly (w/o restarting the Mac).\n\nIf you were to buy a 1304, would it be possible to switch back and\nforth between Apple 640x480 and Apple 832x624 without restarting the\nMac?  Is this strictly a hardware startup function, or can software\nintervene, or does the Mac hardware occasionally probe the cable\nsetting and switch automatically?\n\nThanks,\n\nEric\n(ivancich@eecs.umich.edu)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1179, "properties": {"category": "rec.sport.hockey", "text": "From: arsenaul@ERE.UMontreal.CA (Arsenault Michel)\nSubject: Looking for boxscores\nOrganization: Universite de Montreal\nDistribution: na\nLines: 5\n\n\nI am looking for all the 84 boxscores of any NHL team for \nsome personal research.  Can someone help me ?\n\nMichel Arsenault\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1180, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nOrganization: Texas Instruments Inc\nLines: 22\n\nIn <1993Apr20.101044.2291@iti.org> aws@iti.org (Allen W. Sherzer) writes:\n\n>Depends. If you assume the existance of a working SSTO like DC, on billion\n>$$ would be enough to put about a quarter million pounds of stuff on the\n>moon. If some of that mass went to send equipment to make LOX for the\n>transfer vehicle, you could send a lot more. Either way, its a lot\n>more than needed.\n\n>This prize isn't big enough to warrent developing a SSTO, but it is\n>enough to do it if the vehicle exists.\n\nBut Allen, if you can assume the existence of an SSTO there is no need\nto have the contest in the first place.  I would think that what we\nwant to get out of the contest is the development of some of these\n'cheaper' ways of doing things; if they already exist, why flush $1G\njust to get someone to go to the Moon for a year?\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1181, "properties": {"category": "comp.windows.x", "text": "From: marc@pinet.aip.org (Marc Wiener)\nSubject: core dump from getcons(?)\nOrganization: American Institute of Physics\nLines: 11\n\nWe are getting a memory fault and a core dump whenever we end a Motif\nsession under Ultrix 4.3, running on a DEC 5000/240. An examintion of the \ncore file leads us to believe it's from getcons. Does anyone know what\nthis is all about?\n\nmarc\n-- \nMarc Wiener                    |    marc@aip.org\nAmerican Institute of Physics  |    \n500 Sunnyside Blvd.            |    Voice: (516)576-2329 \nWoodbury, NY 11797             |    Fax:   (516)349-7669\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1182, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Plus minus stat\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 130\n\nIn <VFq32B2w165w@sms.business.uwo.ca> j3david@sms.business.uwo.ca (James David) writes:\n\n>>If Gilmour was taken completely by surprise, as Gainey was, then\n>>yeah, I would have to say that Doug wasn't playing\n>>\"technically\" smart  hockey.  In any case, to claim as Greg did,\n>>that Gainey *never* made  a technical mistake is absolutely\n>>ludicrous.\n> \n>Later on, in your posting, you make reference to \"putting words\n>into other people's mouths\"...I would suggest that your last\n>paragraph can only be interpreted in one way...namely, that I,\n>along with Greg, claim that Gainey never made a technical\n>mistake.  If you actually read what I've written, you will find\n>that I make no such claim...soooo, if logic serves me well,\n>you're contradicting yourself.\n\nNonsense.  I quite clearly state that it was Greg that made the claim\nthat Gainey never made an error.  And he made the claim. Read below.\n\nFrom rec.sport.hockey Thu Apr 15 21:22:49 1993\nFrom: gballent@hudson.UVic.CA (Greg  Ballentine)\nMessage-ID: <1993Apr15.160450.27799@sol.UVic.CA>\n\n[nonsense deleted]\n\nGainey is the best defensive forward ever.  I stand by that assessment.\nHe was a very good player who belongs in the hall of fame.  Did you\never watch him play? He never made a technical error.\n\n[more nonsense deleted]\n\n>>Good for you.  You'd only be displaying your ignorance of\n>>course, but to each his own...\n> \n>Roger, I'm not sure here, but I think \"ignorance\" is really a\n>function of \"a lack of knowledge\" and not \"formulating an\n>opinion\"...but hey, if you need to take a cheap shot, then by all\n>means go ahead...that's if it makes you feel better.\n\nTo knowledgeable observers of the game my meaning is obvious.  Your\nhockey education is not my responsibility.\n \n>My word, such vehemence against poor ol' Bob Gainey.  Why does\n>he bother you so much...he was an effective player for his style\n>of play.\n\nHe was just another player.  To laud him as anything more I find\nbothersome.  I hated the Habs.  I hated Lafleur until I realized\nthat he was likely the most aesthetically pleasing player to ever \nskate in my lifetime.  Why would anyone talk about Gainey?\n  \n>>go  around.  Who would you rather have as your \"checking\"\n>>centre?  Doug Gilmour or Doug Jarvis?  For that matter I would\n>>take either Gretzky or Mario as my \"checking\" centres.  Do you\n>>think Gretzky could cover Bob Gainey?\n\n>I'm really sorry Roger, but you have lost me completely here. \n>Why don't you ask me if I would rather have Jesus Christ,\n>himself, in nets?\n\nDid he play hockey at a high level?  Was he any good?  If not, why\nwould you bother to bring JC up?  I am talking about hockey players\nhere.  If you can't follow the conversation don't follow up.  As I\nsaid previously, it is not my responsibility to educate you.\n\n>Now, if you were to compare, say for example, Bob Gainey with Guy\n>Carbonneau, you would have a balanced comparison.\n\nSure.  Two journeymen.  Big deal.  Neither one of them is worth\ndiscussing.\n\n>I'm wrong AGAIN...hmmm, let's see...where was I wrong in the\n\n>>>I would take Fuhr and Sanderson off of the latter.\n\n>first place?  I'm only guessing here, Rog, but I have a feeling\n>that you've setup a \"You're wrong again\" macro key on your\n>machine.\n\nThat is an excellent idea and if I decide to waste any more time\nresponding to any of your, or Greg's, postings then I will be sure\nto implement that very macro.\n \n>I would suggest that your comment: \"And when the press runs out\n>of things to say about  the stars on dynasties they start to hype\n>the pluggers.  Grant Fuhr, Essa Tikkannen, Butch Goring, Bob\n>Nystrom, Bob Gainey, Doug Jarvis, Derek Sanderson, Wayne Cashman,\n>Bob Baun, Bob Pulford, Ralph Backstrom, Henri Richard, Dick\n>Duff...and so on...\" demonstrates a blanket disregard for these\n>individuals as contributors to the game...so yes, settle\n>down...nobody has claimed that they are hockey gods.\n\nTarasov claimed that Gainey was a \"hockey god.\"  And Greg ate it up.\nAnd that is what this thread is all about.  If you didn't know \nthat then why are you responding?\n\nAnd as for \"blanket disregard for these individuals\", I can remember \nLeaf teams, purely populated by such \"individuals\", winning four \nStanley Cups.  Teams.  No one ran around telling us that George\nArmstrong was the best hockey player in the world.\n\n>>>congenially, as always,\n>>> \n>>>jd\n>>> \n>>>--\n>>>James David\n>>>david@student.business.uwo.ca\n> \n>>You might consider developing your own style.  After all,\n>>imitation is  the sincerest form of flattery and I am quite sure\n>>that flattery is not  your intention.\n> \n>C'mon...it has a nice ring to it...and admit it, you had a good\n>laugh.\n\nRight.  I had to get to the end of your posting before I realized you were \na complete joke.\n\nIn the future, if you are going to respond to my postings I would appreciate\nit if you could present a cogent argument supported by facts gleaned from a\nversion of reality that most of the rest of us would recognize.\n\ncordially, as always, \n\nrm\n\n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1183, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss)\nSubject: 17 Apr 93   God's Promise in Luke 11:28\nOrganization: University at Buffalo\nLines: 8\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\n\n\tBut he said,\n\tYea rather,\n\tblessed are they\n\tthat hear the word of God,\n\tand keep it.\n\n\tLuke 11:28\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1184, "properties": {"category": "comp.graphics", "text": "From: srlnjal@grace.cri.nz\nSubject: CorelDraw Bitmap to SCODAL\nOrganization: Industrial Research Ltd., New Zealand.\nLines: 10\nNNTP-Posting-Host: grv.grace.cri.nz\n\n\nDoes anyone know of software that will allow\nyou to convert CorelDraw (.CDR) files\ncontaining bitmaps to SCODAL, as this is the\nonly format our bureau's filmrecorder recognises.\n\nJeff Lyall\nInst.Geo.Nuc.Sci.Ltd\nLower Hutt New Zealand\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1185, "properties": {"category": "comp.windows.x", "text": "From: jigang@dale.NoSubdomain.NoDomain (Jigang Yang)\nSubject: icon pixmap problem...\nKeywords: icon, motif, openlook\nNntp-Posting-Host: dale.ssc.gov\nOrganization: Superconducting Super Collider Laboratory\nLines: 15\n\n\n\n             I have a problem with icon pixmap. My application has to run\n   under openwindow and motif. I wrote my program in Motif with pixmap and\n   icons. It runs fine under motif/motif window manager and X11R5/mwm. But \n   the icon pixmap does not show up under openwin/olwm and X11R5/olwm.\n\n             Has anybody got into this kind of problem? Need a clue. An \n   example which works in both X11R5/motif and openwindow will be great.\n\n-- \nJigang Yang, jigang@dale.ssc.gov, jyang@sscvx1.bitnet\n2550 Beckleymeade Ave. MS 4011  Tel: 214-708-3498\nDallas, TX 75237                Fax: 214-708-4898 \n \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1186, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: The Dayton Gun \"Buy Back\" (Re: Boston Gun Buy Back)\nOrganization: Ideology Busters, Inc.\nLines: 11\n\nAccording to WNCI 97.9 FM radio this morning, Dayton, Ohio is operating a\ngun \"buy back\".  They are giving $50 for every functional gun turned in.\nThey ran out of money in one day, and are now passing out $50 vouchers of\nsome sort.  They are looking for more funds to keep operating.  Another\nmedia-event brought to you by HCI.\n\nIs there something similar pro-gun people can do ?  For example, pay $100\nto anyone who lawfully protects their life with a firearm ?  Sounds a bit\ntacky, but hey, whatever works.\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1187, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: Re: Jewish Baseball Players?\nOrganization: Allegheny College\n\nIn article <1qkkodINN5f5@jhunix.hcf.jhu.edu> pablo@jhunix.hcf.jhu.edu  \n(Pablo A Iglesias) writes:\n> In article <15APR93.14691229.0062@lafibm.lafayette.edu>  \nVB30@lafibm.lafayette.edu (VB30) writes:\n> \n> Hank Greenberg would have to be the most famous, because his Jewish\n> faith actually affected his play. (missing late season or was it world\n> series games because of Yom Kippur)\n> \n\n\nKofax missed world series game because of The jewish day of repentence.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1188, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rbspencer@vms.macc.wisc.edu\nSubject: FTP Problem on Gateway 486DX50\nOrganization:  University of Wisconsin Chemistry Computing Center\nDistribution:  usa\nLines: 18\n\nWe have a Gateway 486DX50 with a SMC Elite16 Series Ethercard Plus.\n\nWhen we use NCSA FTP to send from the Gateway with hash turned on, we see\n4 hash marks immediately.  Then the computer  r e a l l y  drags.  If we turn \noff the internal cache of the 486, the speed is better, but doesn't match\nthe speed when we receive to the Gateway.\n\nIt doesn't matter if we send from the Gateway or get to it: 4 hash marks and \nthen extreme slowness if the cache is not disabled.\n\nDoes anyone know any more about this?  Is there a fix?\n\nThe Gateway was purchased in June, 1992.\n\nPlease respond directly.  You wouldn't believe how slow the news is on this \nsystem.   \n\nThanks. \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1189, "properties": {"category": "rec.sport.baseball", "text": "From: rudy@netcom.com (Rudy Wade)\nSubject: Re: YANKKES 1 GAME CLOSER\nArticle-I.D.: netcom.rudyC52rBD.86w\nOrganization: Home of the Brave\nLines: 18\n\nMy god, hope we don't have to put up with this kind of junk all season!\n\nIn article <002251w.5.734117130@axe.acadiau.ca> 002251w@axe.acadiau.ca (JASON WALTER WORKS) writes:\n>    The N.Y.Yankees, are now one game closer to the A.L.East pennant.  They \n>clobbered Cleveland, 9-1, on a fine pitching performance by Key, and two \n>homeruns by Tartabull(first M.L.baseball to go out this season), and a three \n\nHow many home runs by Tartabull?  Just 1, right, you must be thinking\nof Dean Palmer or Juan Gonzalez (both of Texas) who each had 2 homers.\n\n>run homer by Nokes.  For all of you who didn't pick Boggs in your pools, \n>tough break, he had a couple hits, and drove in a couple runs(with many more \n\nI don't know how many to follow, but he was 1 for 4.\n\n> GO YANKS., Mattingly for g.glove, and MVP, and Abbot for Cy Young.\n\nSpare us, please!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1190, "properties": {"category": "rec.autos", "text": "From: welty@cabot.balltown.cma.COM (richard welty)\nSubject: rec.autos: the Rec.Autos Archive Server \nKeywords: Monthly Posting\nReply-To: welty@balltown.cma.com\nOrganization: New York State Institute for Sebastian Cabot Studies\nLines: 10\n\nArchive-name: rec-autos/part3\n\nThe Automotive Articles Archive Server:\n\nthe automotive archive server is in the process of being rehosted,\nand is presently not available.\n-- \nrichard welty        518-393-7228       welty@cabot.balltown.cma.com\n``Nothing good has ever been reported about the full rotation of\n  a race car about either its pitch or roll axis''  -- Carroll Smith\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1191, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: Re: Pleasant Yankee Surprises\nOrganization: Allegheny College\nLines: 7\n\nIn article <120399@netnews.upenn.edu> sepinwal@mail.sas.upenn.edu (Alan  \nSepinwall) writes:\n\n\n\nThanks Alan, that was well thought out.\n Even written in an entertaining style.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1192, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: v119matc@ubvmsb.cc.buffalo.edu (Claus Schwinge)\nSubject: Needed, large, fast backup utility\nOrganization: University at Buffalo\nLines: 15\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\nI'm looking for a better method to back up files.  Currently using a MaynStream\n250Q that uses DC 6250 tapes.  I will need to have a capacity of 600 Mb to 1Gb\nfor future backups.  Only DOS files.\n\nI would be VERY appreciative of information about backup devices or\nmanufacturers of these products.  Flopticals, DAT, tape, anything.  \nIf possible, please include price, backup speed, manufacturer (phone #?), \nand opinions about the quality/reliability.\n\nPlease E-Mail, I'll send summaries to those interested.\n\nThanx in advance,\n\n-Claus Schwinge\n-SUNYAB Student Finances and Records\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.057+0000", "event": "documents", "entityId": 1193, "properties": {"category": "talk.politics.mideast", "text": "From: alaa@peewee.unx.dec.com (Alaa Zeineldine)\nSubject: Re: THE HAMAS WAY of DEATH\nOrganization: Digital Equipment Corp.\nX-Newsreader: Tin 1.1 PL3\nLines: 12\n\ntclock@orion.oac.uci.edu (Tim Clock) writes:\n: \n: While you brought up the separate question of Israel's unjustified\n: policies and practices, I am still unclear about your reaction to\n: the practices and polocies reflected in the article above.\n: \n: Tim\n\nNot a separate question Mr. Clock. It is deceiving to judge the \nresistance movement out of the context of the occupation.\n\nAlaa Zeineldine\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1194, "properties": {"category": "comp.sys.mac.hardware", "text": "Organization: University of Maine System\nFrom: Jon Carr <IO91748@MAINE.MAINE.EDU>\nSubject: Pin map for 8pin-DIN cable?\nLines: 26\n\n                           ####   ####\n                         #     ###    #\n                        #   1   2     3 #\n     Facing           #                  #\nFemale Plug End        #  4       5   6   #\n                        #               #\n                         #            #\n                         #  7     8  #\n                         #           #\n                         #############\n\nAnyone Recognize this?  It's my little layout of a eight pin female plug\nconnector used for many mac peripherals.\n\n#####Problem########Problem#########Problem########\n  Printer (cheap) cables using this configuration switch a couple of\npins between one end and the other.  I want to use cheap cables for an\nA-B box.  Anyone know which pins get reversed so I can do some\ncreative editing on the internals of my box?  Any help would be\ngreatly appreciated.\n\n\n    -----> Jon                                     Jon Carr\n    -----> IO91748@MAINE.MAINE.EDU                 UMaine '93\n    1993 NCAA Champions! How about those 42-1-2 Black Bears!!\n    M   -   A   -   I   -   N   -   E   -   GO BLUE!!!!!!!!!!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1195, "properties": {"category": "rec.sport.hockey", "text": "From: voecking@Informatik.TU-Muenchen.DE (Volker Voecking)\nSubject: Re: expanding to Europe:Dusseldorf\nOriginator: voecking@hphalle5c.informatik.tu-muenchen.de\nOrganization: Technische Universitaet Muenchen, Germany\nLines: 29\n\n\nIn article <1993Apr15.192231.27574@abo.fi>, MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF) writes:\n|> In <PKORTELA.93Apr15164732@lk-hp-17.hut.fi> pkortela@snakemail.hut.fi writes:\n|> \n|> > \n|> > DEG has many german-born forwards in the team. In fact the majority of players\n|> > are german-born. 1992-93 DEG had 11150 average in 11800 spectator arena.\n|> \n|> Interesting! One of our German friends here (Robert?) told me their forwards\n|> were all Canadian-Germans. Perhaps somebody can sort this out for us?\n\nAs far as I know Dusseldorf has only one Canadian-German forward (i.e. a  player\nwho was born in Canada but now has a German passport). \nBenoit Doucet became german by marriing a german and he is going to play \nfor Germany in the WC.\n\nThe other Canada-born forwards are:\n\tPeter-John Lee (has British passport)\n\tChris Valentine\n\tDale Dercatch\n\tSteve Gootas\n \tEarl Spry (?)\n\nAt the moment there are only three German-born forwards coming into my mind:\n\tBernd Trunschka, Andreas Brockmann, Ernst Koepf\n\n\nVolker\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1196, "properties": {"category": "comp.windows.x", "text": "From: folkert@capints.UUCP (Folkert Boonstra)\nSubject: comp.windows.x\nOrganization: The Internet\nLines: 17\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nI would like to keep track of X development on:\n- A/UX\n- ULTRIX\n- OpenWindows\nCurrently I cannot use the newsgroup comp.windows.x \nand would like to use the Email based info. \nThanks,\n\n\nFolkert Boonstra \n\n\nCap Gemini Innovation\t\tDutch Research Centre \nBurg.Elsenlaan 170\t\tPhone:\t+31 70 3957 239 \nP.O. Box 3027\t\t\tFax:\t+31 70 3957 237 \n2280 GA Rijswijk (NL)\t\te-mail:\tboonstra@capints.uucp\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1197, "properties": {"category": "rec.autos", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Re: Most bang for $13k\nOrganization: Lehigh University\nLines: 41\n\nIn article <1993Apr17.014638.56998@ns1.cc.lehigh.edu>, rwf2@ns1.cc.lehigh.edu (R\nOBERT WILLIAM FUSI) writes:\n>In article <23056.74.uupcb@cutting.hou.tx.us>, david.bonds@cutting.hou.tx.us (D\na\n>vid Bonds) writes:\n>>In rec.autos, CPKJP@vm.cc.latech.edu (Kevin Parker) writes:\n>> I'd like to get some feedback on a car with most bang for the buck in the\n>> $13000 to 16,000 price range. I'm looking for a car with enough civility to b\ne\n>> driven every day, or even on long trips, but when I hit the gas, I want to fe\ne\n>l\n>>\n>>Take a look at a '91 Taurus SHO - they can be found for ~13k, and are the\n>>ultimate in 4 door sports cars.  Performance similar to a Mustang, but\n>>quite civil and comfortable...  Try to get a late model 91 for the better\n>>shifter.\n>>\n>>\n>\n>>----\n>>The Cutting Edge BBS (cutting.hou.tx.us)   A PCBoard 14.5a system\n>>Houston, Texas, USA   +1.713.466.1525          running uuPCB\n>\n>>Well, you could always go with a 5.0 Mustang LX with a pleasant V8, but the\n>diamond star cars (Talon/Eclipse/Laser) put out 190 hp in the turbo models,\n>and 195 hp in the AWD turbo models,  These cars also have handling to match\n>the muscle, and are civil in regular driving conditions, rather than having a\n>harsh, stiff ride....The AWD Turbo is clearly the better choice of the two\n>(because of all that torque steer on the front drive model), but you may have\n>to go with a leftover or \"slightly\" used model for that price range....tough\n>decision...\n>\n>        Rob Fusi\n>        rwf2@lehigh.edu\n>\n>--\n> Car and Driver did a test with the same basic idea and chose the Ford Probe\nGT (5sp of course)\n>\n-- \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1198, "properties": {"category": "misc.forsale", "text": "From: barsz@bnr.ca (Peter Barszczewski)\nSubject: For Sale: TR-606 and Mirage Rack Mount Sampler\nOrganization: Bell-Northern Research Ltd.\nLines: 23\n\nFor Sale:\n\n    Roland TR-606 Drum Machine\n    Near Mint Condition (no scratches, fully operational).\n    Sorry no Manuals.\n    Asking $200 US + shipping\n\n    Mirage Rack Mount Sampler\n    Minor Scratches around rack ear screws\n    with Advanced Sampling Option, 32 Disks\n      and both manuals\n    It's a long story, but I *may* have the Turtle Beach Vision, sample\n        editing software for the IBM PC.\n    Asking $400 US + shipping\n\nSend all e-mail requests to:  barsz@bnr.ca\n\nRegards,\n--\nPeter A. Barszczewski         (      *\n(barsz@bnr.ca)                 )    ~|~  spirituality through technology.\nBell-Northern Research, Ltd.  (      |\nMontreal, Canada               )\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1199, "properties": {"category": "soc.religion.christian", "text": "From: lmh@juliet.caltech.edu (Henling, Lawrence M.)\nSubject: Christian's need for Christianity (was ...)\nOrganization: California Institute of Technology\nLines: 26\n\nIn article <Apr.16.23.17.40.1993.1861@geneva.rutgers.edu<, mussack@austin.ibm.com writes...\n<< < For example: why does the universe exist at all?  \n\n<Whether there is a \"why\" or not we have to find it. This is Pascal's(?) wager.\n<If there is no why and we spend our lives searching, then we have merely\n<wasted our lives, which were meaningless anyway. If there is a why and we\n..\n<Suppose the universe is 5 billion years old, and suppose it lasts another\n<5 billion years. Suppose I live to be 100. That is nothing, that is so small\n<that it is scary. So by searching for the \"why\" along with my friends here\n<on earth if nothing else we aren't so scared.\n\n I find this view of Christianity to be quite disheartening and sad.\nThe idea that life only has meaning or importance if there is a Creator\ndoes not seem like much of a basis for belief.\n\n And the logic is also appalling: \"God must exist because I want Him to.\"\n\n I have heard this line of \"reasoning\" before and wonder how prevalent\nit is. Certainly in modern society many people are convinced life is\nhopeless (or so the pollsters and newscasts state), but I don't see\nwhere this is a good reason to become religious. If you want 'meaning'\nwhy not just join a cult, such as in Waco? The leaders will give you\nthe security blanket you desire.\n\nlarry henling   lmh@shakes.caltech.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1200, "properties": {"category": "rec.motorcycles", "text": "From: fist@iscp.bellcore.com (Richard Pierson)\nSubject: Moving On\nNntp-Posting-Host: foxtrot.iscp.bellcore.com\nOrganization: Bellcore\nDistribution: usa\nLines: 25\n\nWell, it's been fun. This is my last day at Bellcore and\nIt will be a while before I have net access again (taking\ntime off and scheduling Military Schools for the summer\non joint operations, and anything else that looks good).\nI have had a blast reading, responding and commenting on\nthings posted here. My final say is 9mm's are inferior\nto .45's errr oh wrong news group. Hopefully I'll be back.\nI guess \"internet withdrawl\" starts around 1pm or so and\nconsidering I never knew inet existed 2 years ago I am\nreally going to miss it. \n\nOH yea, to the guy who called me this morning about the\n\"Military issue\" boots, good luck, I think you will be\nhappy with the tankers boots.\n-- \n##########################################################\nThere are only two types of ships in the NAVY; SUBMARINES \n                 and TARGETS !!!\n#1/XS1100LH\tDoD #956   #2 Next raise\nRichard Pierson E06584 vnet: [908] 699-6063\nInternet: fist@iscp.bellcore.com,|| UUNET:uunet!bcr!fist  \n#include <std.disclaimer> My opinions are my own!!!\nI Don't shop in malls, I BUY my jeans, jackets and ammo\nin the same store.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1201, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: HYPOGLYCEMIA\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 19\n\n>From: anello@adcs00.fnal.gov (Anthony Anello)\n>Can anyone tell me if a bloodcount of 40 when diagnosed as hypoglycemic is\n>dangerous, i.e. indicates a possible pancreatic problem?  One Dr. says no, the\n>other (not his specialty) says the first is negligent and that another blood\n\nBlood glucose levels of 40 or so are common several hours after a\nbig meal.  This level will usually not cause symptoms.\n\n>test should be done.  Also, what is a good diet (what has worked) for a hypo-\n>glycemic?\n\nIf you mean \"reactive\" hypoglycemia, there are usually no symptoms,\nhence there is no disease, hence the dietary recommendations are the\nsame as for anyone else.  If a patient complains of dizziness,\nfaintness, sweating, palpitations, etc. reliably several hours after\na big meal, the recommendations are obvious - eat smaller meals.\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n                                                                                                             \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1202, "properties": {"category": "rec.sport.baseball", "text": "From: philly@ravel.udel.edu (Robert C Hite)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nKeywords: Hall of Fame, Winfield, Kingman, Murray, Joe Lundy, :-)\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nDistribution: na\nLines: 15\n\nIn article <mssC5K4w5.GqE@netcom.com> mss@netcom.com (Mark Singer) writes:\n>\n>I'm no Kingman fan.  Just thought I'd point out that he's the\n>only player in history to have five three-HR games.  Joe Carter\n>has four.  Eddie Murray three.  McCovey and Gehrig also three.\n>Ruth, Mays, Foxx and Dawson two each.\n>\n\nDidn't Mike Schmidt also do this at least three times?  I can \nremember twice in Wrigley Field alone...he did it the same day\nKong did it in a 23-22 shootout, and he swatted four there one\nday in April '76 (the month he set the April record with 11 HR's.\nAnybody remember any of this?  (I was just a kid)\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1203, "properties": {"category": "sci.med", "text": "From: Dan Wallach <dwallach@cs.berkeley.edu>\nSubject: FAQ: Typing Injuries (2/4): General Info [monthly posting]\nSupersedes: <typing-injury-faq/general_734664243@cs.berkeley.edu>\nOrganization: University of California, Berkeley\nLines: 409\nExpires: 22 May 1993 04:18:16 GMT\nReply-To: Dan Wallach <dwallach@cs.berkeley.edu>\nNNTP-Posting-Host: elmer-fudd.cs.berkeley.edu\nSummary: information about where to get more information\nOriginator: dwallach@elmer-fudd.cs.berkeley.edu\n\nArchive-name: typing-injury-faq/general\nVersion: $Revision: 4.28 $ $Date: 1993/04/13 04:17:58 $\n\n-------------------------------------------------------------------------------\n         Answers To Frequently Asked Questions about Typing Injuries\n-------------------------------------------------------------------------------\n\nThe Typing Injury FAQ -- sources of information for people with typing\ninjuries, repetitive stress injuries, carpal tunnel syndrome, etc.\n\nCopyright 1992,1993 by Dan Wallach <dwallach@cs.berkeley.edu>\n\nMany FAQs, including this one, are available on the archive site\npit-manager.mit.edu (alias rtfm.mit.edu) [18.172.1.27] in the directory\npub/usenet/news.answers.  The name under which a FAQ is archived appears\nin the Archive-name line at the top of the article.  This FAQ is archived\nas typing-injury-faq/general.Z\n\nThere's a mail server also.  Just e-mail mail-server@pit-manager.mit.edu\nwith the word 'help' on a line by itself in the body.\n\nThe opinions in here are my own, unless otherwise mentioned, and do not\nrepresent the opinions of any organization or vendor.  I'm not a medical\ndoctor, so my advice should be taken with many grains of salt.\n\n[Current distribution: sci.med.occupational, sci.med, comp.human-factors,\n {news,sci,comp}.answers, and e-mail to c+health@iubvm.ucs.indiana.edu,\n sorehand@vm.ucsf.edu, and cstg-L@vtvm1.cc.vt.edu]\n\nChanges since previously distributed versions are marked with change        ||\nbars to the right of the text, as is this paragraph.                        ||\n\nTable of Contents:\n    ==1== Mailing lists, newsgroups, etc.\n    ==2== The soda.berkeley.edu archive\n    ==3== General info on injuries\n    ==4== Typing posture, ergonomics, prevention, treatment\n    ==5== Requests for more info\n    ==6== References\n\n==1== Mailing lists, newsgroups, etc.\n\nUSENET News:\n-----------\ncomp.human-factors occasionally has discussion about alternative input devices.\ncomp.risks has an occasional posting relevant to injuries via computers.\nsci.med and misc.handicap also tend to have relevant traffic.\n\nThere's a Brand New newsgroup, sci.med.occupational, chartered specifically\nto discuss these things.  This would be the recommended place to post.\n\nMailing lists:\n-------------\nThe RSI Network: Available both on paper and via e-mail, this publication\n    covers issues relevant to those with repetitive stress injuries.  For\n    a sample issue and subscription information, send a stamped, self-\n    addressed business envelope to Caroline Rose, 970 Paradise Way, Palo\n    Alto CA 94306.\n\n    E-mail to <crose@applelink.apple.com>\n\n    $2 donation, requested.\n\n    All RSI Network newsletters are available via anonymous ftp from\n    soda.berkeley.edu (see below for details).\n\nc+health and sorehand are both IBM Listserv things.  For those familiar\n    with Listserv, here's the quick info:\n\n    c+health -- subscribe to listserv@iubvm.ucs.indiana.edu\n\t\tpost to c+health@iubvm.ucs.indiana.edu\n\n    sorehand -- subscribe to listserv@vm.ucsf.edu\n\t\tpost to sorehand@vm.ucsf.edu\n\nQuick tutorial on subscribing to a Listserv:\n    % mail listserv@vm.ucsf.edu\n    Subject: Total Listserv Mania!\n\n    SUBSCRIBE SOREHAND J. Random Hacker\n    INFO ?\n    .\nThat's all there is to it.  You'll get bunches of mail back from the Listserv,\nincluding a list of other possible commands you can mail.  Cool, huh?  What'll\nthose BITNET people think of, next?\n\n==2== The soda.berkeley.edu archive\n\nI've started an archive site for info related to typing injuries.  Just\nanonymous ftp to soda.berkeley.edu:pub/typing-injury.  (128.32.149.19)\nCurrently, you'll find:\n\nInformative files:\n    typing-injury-faq/\n        general           -- information about typing injuries\n        keyboards         -- products to replace your keyboard\n        software          -- software to watch your keyboard usage\n\tchanges\t\t  -- changes since last month's edition (new!)\t    ||\n\n    keyboard-commentary   -- Dan's opinions on the keyboard replacements\n    amt.advice\t\t  -- about Adverse Mechanical Tension\n    caringforwrists.sit.hqx -- PageMaker4 document about your wrists\n    caringforwrists.ps\t  -- PostScript converted version of above...\n    carpal.info           -- info on Carpal Tunnel Syndrome\n    carpal.explained\t  -- very detailed information about CTS\n    carpal.surgery\t  -- JAMA article on CTS surgery\n    carpal.tidbits\t  -- TidBITS article on CTS\n    tendonitis.info       -- info on Tendonitis\n    rsi.biblio\t\t  -- bibliography of RSI-related publications\n\n    rsi-network/*         -- archive of the RSI Network newsletter\n\t\t\t     (currently, containing issues 1 through 11)    ||\n    \n    rsi.details\t\t  -- long detailed information about RSI\n    rsi.physical\t  -- study showing RSI isn't just psychological\n\n    Various product literature:\n\n    apple-press\t\t  -- press release on the Apple Adjustable Keyboard\n    apple-tidbits\t  -- extensive info about Apple's Adjustable Keybd\n    bat-info\t\t  -- MacWeek review on the Bat\t\t\t    ||\n    comfort-*\t\t  -- marketing info on the Comfort Keyboard\n    datahand-review\t  -- detailed opinions of the DataHand\n    datahand-review2\t  -- follow-up to above\n    datahand-desc\t  -- description of the DataHand's appearance\n    kinesis-review\t  -- one user's personal opinions\n    maltron-*\t\t  -- marketing info on various Maltron products\n    maltron-review\t  -- one user's personal opinions\n    vertical-info\t  -- marketing info on the Vertical (new!)\t    ||\n\nPrograms:\n    (With the exception of accpak.exe, everything here is distributed as\n     source to be compiled with a Unix system.  Some programs take advantage\n     of the X window system, also.)\n\n    hsh.shar\t\t  -- a program for one-handed usage of normal keyboards\n    typewatch.shar\t  -- tells you when to take a break\n    xdvorak.c\t\t  -- turns your QWERTY keyboard into Dvorak\n    xidle.shar\t\t  -- keeps track of how long you've been typing\n    rest-reminder.sh      -- yet another idle watcher\n    kt15.tar  \t\t  -- generates fake X keyboard events from the\n\t\t\t     serial port -- use a PC keyboard on anything!\n\t\t\t     (new improved version!)\n    accpak.exe\t\t  -- a serial port keyboard spoofer for MS Windows\n\n    (Note: a2x.tar and rk.tar are both from export.lcs.mit.edu:contrib/\n     so they may have a more current version than soda.)\n\n    a2x.tar  \t\t  -- a more sophisticated X keyboard/mouse spoofing\n\t\t\t     program.  Supports DragonDictate.\n\t\t\t     (note: a new version is now available)\t    ||\n    rk.tar  \t\t  -- the reactive keyboard -- predicts what you'll\n\t\t\t     type next -- saves typing\n\nPictures (in the gifs subdirectory):\n    howtosit.gif\t  -- picture of good sitting posture\n\t\t\t     (the caringforwrists document is better for this)\n\n    accukey1.gif\t  -- fuzzy picture\n    accukey2.gif\t  -- fuzzy picture with somebody using it\n    apple.gif\t\t  -- the Apple Adjustable Keyboard\t\t    ||\n    bat.gif               -- the InfoGrip Bat\n    comfort.gif           -- the Health Care Comfort Keyboard\n    datahand1.gif\t  -- fuzzy picture\n    datahand2.gif\t  -- key layout schematic\n    datahand3.gif\t  -- a much better picture of the datahand\n    flexpro.gif\t\t  -- the Key Tronic FlexPro keyboard\t\t    ||\n    kinesis1.gif          -- the Kinesis Ergonomic Keyboard\n    kinesis2.gif\t  -- multiple views of the Kinesis\t\t    ||\n    maltron[1-4].gif      -- several pictures of Maltron products\n    mikey1.gif            -- the MIKey\n    mikey2.gif            -- Schematic Picture of the MIKey\n    tony.gif\t\t  -- The Tony! Ergonomic Keysystem\t\t    ||\n    twiddler1.gif\t  -- \"front\" view\n    twiddler2.gif\t  -- \"side\" view\n    vertical.gif\t  -- the Vertical keyboard\t\t\t    ||\n    wave.gif\t\t  -- the Iocomm `Wave' keyboard\n\nMany files are compressed (have a .Z ending).  If you can't uncompress a file\nlocally, soda will do it.  Just ask for the file, without the .Z extension.\n\nIf you're unable to ftp to soda, send me e-mail and we'll see what we\ncan arrange.\n\n==3== General info on injuries\n\nFirst, and foremost of importance: if you experience pain at all, then\nyou absolutely need to go see a doctor.  As soon as you possibly can.  The\ndifference of a day or two can mean the difference between a short recovery\nand a long, drawn-out ordeal.  GO SEE A DOCTOR.  Now, your garden-variety\ndoctor may not necessarily be familiar with this sort of injury.  Generally,\nany hospital with an occupational therapy clinic will offer specialists in\nthese kinds of problems.  DON'T WAIT, THOUGH.  GO SEE A DOCTOR.\n\nThe remainder of this information is paraphrased, without permission, from\na wonderful report by New Zealand's Department of Labour (Occupational\nSafety and Health Service): \"Occupational Overuse Syndrome. Treatment and\nRehabilitation: A Practitioner's Guide\".\n\nFirst, a glossary (or, fancy names for how you shouldn't have your hands):\n(note: you're likely to hear these terms from doctors and keyboard vendors :)\n\n  RSI: Repetitive Strain Injury - a general term for many kinds of injuries\n  OOS: Occupational Overuse Syndrome -- synonym for RSI\n  CTD: Cumulative Trauma Disorder -- another synonym for RSI\n  WRULD: Work-Related Upper Limb Disorders -- yet another synonym for RSI\n  CTS: Carpal Tunnel Syndrome (see below)\n  Hyperextension:  Marked bending at a joint.\n  Pronation: Turning the palm down.\n  Wrist extension: Bending the wrist up.\n  Supination: Turning the palm up.\n  Wrist flexion: Bending the wrist down.\n  Pinch grip: The grip used for a pencil.\n  Ulnar deviation: Bending the wrist towards the little finger.\n  Power grip: The grip used for a hammer.\n  Radial Deviation: Bending the wrist toward the thumb.\n  Abduction: Moving away from the body.\n  Overspanning: Opening the fingers out wide.\n\nNow then, problems come in two main types: Local conditions and diffuse\nconditions.  Local problems are what you'd expect: specific muscles,\ntendons, tendon sheaths, nerves, etc. being inflamed or otherwise hurt.\nDiffuse conditions, often mistaken for local problems, can involve muscle\ndiscomfort, pain, burning and/or tingling; with identifiable areas of\ntenderness in muscles, although they're not necessarily \"the problem.\"\n\n--- Why does Occupational Overuse Syndrome occur?  Here's the theory.\n\nNormally, your muscles and tendons get blood through capillaries which\npass among the muscle fibers.  When you tense a muscle, you restrict\nthe blood flow.  By the time you're exerting 50% of your full power,\nyou're completely restricting your blood flow.\n\nWithout fresh blood, your muscles use stored energy until they run out,\nthen they switch to anaerobic (without oxygen) metabolism, which generates\nnasty by-products like lactic acid, which cause pain.\n\nOnce one muscle hurts, all its neighbors tense up, perhaps to relieve the\nload.  This makes sense for your normal sort of injury, but it only makes\nthings worse with repetitive motion.  More tension means less blood flow,\nand the cycle continues.\n\nAnother by-product of the lack of blood flow is tingling and numbness from\nyour nerves.  They need blood too.\n\nAnyway, when you're typing too much, you're never really giving a change\nfor the blood to get back where it belongs, because your muscles never\nrelax enough to let the blood through.  Stress, poor posture, and poor\nergonomics, only make things worse.\n\n--- Specific injuries you may have heard of:\n\n(note: most injuries come in two flavors: acute and chronic.  Acute\ninjuries are severely painful and noticable.  Chronic conditions have\nless pronounced symptoms but are every bit as real.)\n\nTenosynovitis -- an inflamation of the tendon sheath.  Chronic tenosynovitis\noccurs when the repetitive activity is mild or intermittent: not enough to\ncause acute inflamation, but enough to exceed the tendon sheath's ability\nto lubricate the tendon.  As a result, the tendon sheath thickens, gets\ninflamed, and you've got your problem.\n\nTendonitis -- an inflammation of a tendon.  Repeated tensing of a tendon\ncan cause inflamation.  Eventually, the fibers of the tendon start separating,\nand can even break, leaving behind debris which induces more friction, more\nswelling, and more pain.  \"Sub-acute\" tendonitis is more common, which entails\na dull ache over the wrist and forearm, some tenderness, and it gets worse\nwith repetitive activity.\n\nCarpal Tunnel Syndrome -- the nerves that run through your wrist into your\nfingers get trapped by the inflamed muscles around them.  Symptoms include\nfeeling \"pins and needles\", tingling, numbness, and even loss of sensation.\nCTS is often confused for a diffuse condition.\n\nAdverse Mechanical Tension -- also known as 'neural tension', this is where\nthe nerves running down to your arm have become contracted and possibly\ncompressed as a result of muscle spasms in the shoulders and elsewhere.\nAMT can often misdiagnosed as or associated with one of the other OOS \ndisorders.  It is largely reversible and can be treated with physiotherapy \n(brachial plexus stretches and trigger point therapy).\n\nOthers: for just about every part of your body, there's a fancy name for\na way to injure it.  By now, you should be getting an idea of how OOS\nconditions occur and why.  Just be careful: many inexperienced doctors\nmisdiagnose problems as Carpal Tunnel Syndrome, when in reality, you\nmay have a completely different problem.  Always get a second opinion\nbefore somebody does something drastic to you (like surgery).\n\n==4== Typing posture, ergonomics, prevention, treatment\n\nThe most important element of both prevention and recovery is to reduce\ntension in the muscles and tendons.  This requires learning how to relax.\nIf you're under a load of stress, this is doubly important.  Tune out\nthe world and breath deep and regular.  Relaxing should become a guiding\nprinciple in your work: every three minutes take a three second break.\nEVERY THREE MINUTES, TAKE A THREE SECOND BREAK.  Really, do it every\nthree minutes.  It's also helpful to work in comfortable surroundings,\ncalm down, and relax.\n\nIf you can't sleep, you really need to focus on this.  Rest, sleep, and\nrelaxation are really a big deal.\n\nThere are all kinds of other treatments, of course.  Drugs can reduce\ninflamation and pain.  Custom-molded splints can forcefully prevent bad\nposture.  Surgery can fix some problems.  Exercise can help strengthen\nyour muscles.  Regular stretching can help prevent injury.  Good posture\nand a good ergonomic workspace promote reduced tension.  Ice or hot-cold\ncontrast baths also reduce swelling.  Only your doctor can say what's best\nfor you.\n\n--- Posture -- here are some basic guidelines.  [I so liked the way this was\nwritten in the New Zealand book that I'm lifting it almost verbatim from\nAppendix 10. -- dwallach]\n\n. Let your shoulders relax.\n. Let your elbows swing free.\n. Keep your wrists straight.\n. Pull your chin in to look down - don't flop your head forward.\n. Keep the hollow in the base of your spine.\n. Try leaning back in the chair.\n. Don't slouch or slump forward.\n. Alter your posture from time to time.\n. Every 20 minutes, get up and bend your spine backward.\n\nSet the seat height, first.  Your feet should be flat on the floor.  There \nshould be no undue pressure on the underside of your thighs near the knees,\nand your thighs should not slope too much.\n\nNow, draw yourself up to your desk and see that its height is comfortable\nto work at.  If you are short, this may be impossible.  The beest remedy\nis to raise the seat height and prevent your legs from dangling by using a\nfootrest.\n\nNow, adjust the backrest height so that your buttocks fit into the space\nbetween the backrest and the seat pan.  The backrest should support you in\nthe hollow of your back, so adjust its tilt to give firm support in this\narea.\n\nIf you operate a keyboard, you will be able to spend more time leaning\nback, so experiment with a chair with a taller backrest, if available.\n\n[Now, I diverge a little from the text]\n\nA good chair makes a big difference.  If you don't like your chair, go\nfind a better one.  You really want adjustments for height, back angle,\nback height, and maybe even seat tilt.  Most arm rests seem to get in\nthe way, although some more expensive chairs have height adjustable arm\nrests which you can also rotate out of the way.  You should find a good\nstore and play with all these chairs -- pick one that's right for you.\nIn the San Francisco Bay Area, I highly recommend \"Just Chairs.\"  The\nname says it all.\n\n--- Keyboard drawers, wrist pads, and keyboard replacements:\n\nThere is a fair amount of controvery on how to get this right.  For some\npeople, wrist pads seem to work wonders.  However, with good posture, you\nshouldn't be resting your wrists on anything -- you would prefer your\nkeyboard to be \"right there\".  If you drop your arms at your side and then\nlift your hands up at the elbow, you want your keyboard under your hands\nwhen your elbows are at about 90 degrees.  Of course, you want to avoid\npronation, wrist extension, and ulnar deviation at all costs.  Wrist pads\nmay or may not help at this.  You should get somebody else to come and\nlook at how you work: how you sit, how you type, and how you relax.  It's\noften easier for somebody else to notice your hunched shoulders or\ndeviated hands.\n\nSome argue that the normal, flat keyboard is antiquated and poorly\ndesigned.  A number of replacements are available, on the market, today.\nCheck out the accompanying typing-injury-faq/keyboards for much detail.\n\n==5== Requests for more info\n\nClearly, the above information is incomplete.  The typing-injury archive\nis incomplete.  There's always more information out there.  If you'd like\nto submit something, please send me mail, and I'll gladly throw it in.\n\nIf you'd like to maintain a list of products or vendors, that would be\nwonderful!  I'd love somebody to make a list of chair/desk vendors.  I'd\nlove somebody to make a list of doctors.  I'd love somebody to edit the\nabove sections, looking for places where I've obviously goofed.\n\n==6== References\n\nI completely rewrote the information section here, using a wonderful\nguide produced in New Zealand by their Occupational Safety & Health\nService, a service of their Department of Labour.  Special thanks\nto the authors: Wigley, Turner, Blake, Darby, McInnes, and Harding.\n\nSemi-bibliographic reference:\n    . Occupational Overuse Syndrome\n    . Treatment and Rehabilitation:\n      A Practitioner's Guide\n    \n    Published by the Occupational Safety and Health Service\n    Department of Labour\n    Wellington,\n    New Zealand.\n\n    First Edition: June 1992\n    ISBN 0-477-3499-3\n\n    Price: $9.95 (New Zealand $'s, of course)\n\nThanks to Richard Donkin <richardd@hoskyns.co.uk> for reviewing this posting.\n\n-- \nDan Wallach               \"One of the most attractive features of a Connection\ndwallach@cs.berkeley.edu  Machine is the array of blinking lights on the faces\nOffice#: 510-642-9585     of its cabinet.\" -- CM Paris Ref. Manual, v6.0, p48.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1204, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: <<Pompous ass\nOrganization: sgi\nLines: 20\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1qlef4INN8dn@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> [...]\n|> >>The \"`little' things\" above were in reference to Germany, clearly.  People\n|> >>said that there were similar things in Germany, but no one could name any.\n|> >That's not true.  I gave you two examples.  One was the rather\n|> >pevasive anti-semitism in German Christianity well before Hitler\n|> >arrived.  The other was the system of social ranks that were used\n|> >in Imperail Germany and Austria to distinguish Jews from the rest \n|> >of the population.\n|> \n|> These don't seem like \"little things\" to me.  At least, they are orders\n|> worse than the motto.  Do you think that the motto is a \"little thing\"\n|> that will lead to worse things?\n\nYou don't think these are little things because with twenty-twenty\nhindsight, you know what they led to.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1205, "properties": {"category": "comp.graphics", "text": "From: rob@rjck.UUCP (Robert J.C. Kyanko)\nSubject: Re: VGA 640x400 graphics mode\nDistribution: world\nOrganization: Neptune Software Inc\nLines: 26\n\ndutc0006@student.tc.umn.edu writes in article <C5G7qB.BMp@news2.cis.umn.edu>:\n> >\n> >Some VESA bios's support this mode (0x100).  And *any* VGA should be able to\n> >support this (640x480 by 256 colors) since it only requires 256,000 bytes.\n> >My 8514/a VESA TSR supports this; it's the only VESA mode by card can support\n> >due to 8514/a restrictions. (A WD/Paradise)\n> >\n> >--\n> >I am not responsible for anything I do or say -- I'm just an opinion.\n> >             Robert J.C. Kyanko (rob@rjck.UUCP)\n> \n> \tAhh no.  Possibly you punched in the wrong numbers on your\n> calculator.  256 color modes take a byte per pixel so 640 time 480 is\n> 307,200 which is 300k to be exact.  640x400x256 only takes 250k but I\n> don't think it is a BIOS mode.  I wouldn't bet that all VGA cards can do\n> that either.  If a VGA card has 512k I bet it can do both 640x400 and\n> 640x480.  That by definition is SVGA, though not very high SVGA.\n> \n\nYes, I did punch in the wrong numbers (working too many late nites).  I\nintended on stating 640x400 is 256,000 bytes.  It's not in the bios, just my\nVESA TSR.\n\n--\nI am not responsible for anything I do or say -- I'm just an opinion.\n             Robert J.C. Kyanko (rob@rjck.UUCP)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1206, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: shenx@helium.gas.uug.arizona.edu (xiangxin shen  )\nSubject: Re: IDE Low Level Format\nOrganization: University of Arizona, Tucson\nLines: 10\n\nIn article <C5H3yL.F66@news.cso.uiuc.edu> mandel@romulus.ehs.uiuc.edu (Hector Mandel) writes:\n>I accidentally tried to low level format my Western Digital Caviar 280 drive.\n>Is there a public domain or shareware utility available that will allow \n>me to fix it?\n>\n>Thanks.\n\nI am no expert on this.  But I am pretty sure there is no way to recover this.  IDE drive has mapping information written directly on drives.  When you  low level format it, the information itself is gone as well, I don't think you can get it back unless you send it back to Western Digital and ask them to refurbish it for you.\n\nJim\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1207, "properties": {"category": "sci.crypt", "text": "From: karn@servo.qualcomm.com (Phil Karn)\nSubject: Re: Keeping Your Mouth Shut (was: Hard drive security)\nNntp-Posting-Host: servo.qualcomm.com\nReply-To: karn@chicago.qualcomm.com\nOrganization: Qualcomm, Inc\nLines: 37\n\nIn article <C5K1CE.51A@sunfish.usd.edu>, vkub@charlie.usd.edu (Vince Kub) writes:\n|> Now,\n|> the original scheme as suggested here would be to have the key disappear if\n|> certain threatening conditions are met. Once the key is gone there is no\n|> question of Contempt of Court as there is nothing to compell, the key is no\n|> longer there to be produced.\n\nGetting rid of the keys is actually pretty easy to do automatically on\na communications link, as opposed to storage where the keys have to be\nretained somehow as long as the owner wants to be able to retrieve the\ndata.\n\nThe right way to do communications security is to generate a random\nsession key with Diffie Hellman, use it for a while and then destroy\nit. Once it's gone, there's no getting it back, and no way to decrypt\nrecordings of the conversation.\n\nTo make sure you aren't being attacked by a man in the middle, you\nhave to authenticate your DH exchanges. The AT&T secure phone does\nthis by displaying the DH key so you can compare them verbally over\nthe phone. This is nice and simple, but it relies on user awareness\nplus the inability of the man in the middle to duplicate the users'\nvoices.\n\nA better way is to authenticate the exchanges with RSA. Since you'd\nnever use RSA for actual encryption, compromising your RSA secret key\nwould only allow someone to impersonate you in a future conversation,\nand even that only until you revoke your public key.  They would still\nnot be able to decrypt recordings of prior conversations for which the\nsession keys have been destroyed.\n\nI'm convinced that this is how the government's own secure phones\n(the STU-III) must work. Neat, eh?\n\nPhil\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1208, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Now, the Genocide of the Azeri Turks of x-Soviet Armenia and Karabag.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 69\n\nIn article <1993Apr20.164517.20876@kpc.com> henrik@quayle.kpc.com writes:\n\n>At last, I hope that the U.S. insists that Turkey stay out of the KARABAKH \n>crisis so that the repeat of the CYPRUS invasion WILL NEVER OCCUR again.\n\nDo you have a terminal cold? Karabag is 'Turkish' and will remain \n'Turkish'. Here we are, almost at the end of the 20th century, and \na whole community, the Azeri Turks of x-Soviet Armenia and Karabag, \nis facing forced assimilation, torture and murder on one hand and \nforced exodus, expulsion and genocide on the other, all because \nof their ethnic and religious background. And one should ask herself: \nis the world community really so powerless? Where are all those human \nrights advocates? Where are all the decent people? Are we going to \nlet this human tragedy go on and do nothing about it? The number\nof Azeris murdered by the terrorist Armenian army and its savage\ngangs is increasing. On the one hand they wish to distort the truth\nand on the other, they beg mercy from Turkiye.\n\n        The Age...Melbourne...6/3/92\n\n        By Helen WOMACK  .... Agdam, Azerbaijan, Thursday\n\n        The exact number of victims is still unclear,  but there can be \n        little  doubt that Azeri civilians were massacred  by  Armenian \n        fighters in the snowy mountains of Nagorno-Karabakh last week. \n\n        Refugees  from the enclave town of Khojaly,  sheltering in  the \n        Azeri border town of Agdam, give largely consistent accounts of \n        how  their  enemies  attacked their homes on the  night  of  25 \n        February,    chased  those  who  fled  and  shot  them  in  the \n        surrounding forests. Yesterday, I saw 75  freshly dug graves in \n        one  cemetery  in  addition to four mutilated corpses  we  were \n        shown in the mosque when we arrived in Agdam late on Tuesday. I \n        also  saw women and children with bullet wounds in a  makeshift \n        hospital in a string of railway carriages. \n\n        Khojaly, an Azeri settlement in the enclave mostly populated by \n        Armenians,  had a population of about 6000. Mr.  Rashid Mamedov \n        Commander of Police in Agdam,  said  only about 500  escaped to \n        his  town.   \" So where are the rest?\".  Some might have  taken \n        prisoner, he said, or fled. Many bodies were still lying in the \n        mountains  because  the  Azeris were short  of  helicopters  to \n        retrieve them. He believed more than 1000 had perished, some of \n        cold in temperatures as low as minus 10 degrees. \n\n        One  refugee,  Rami Nasiru,  described how Khojaly residents at \n        first thought the attack was no more than the routine  shooting \n        to  which they had become accustomed in four years of conflict. \n        But  when  they  saw the Armenians with  a  convoy  of  armored \n        personnel carriers, they realised they could not hope to defend \n        themselves  with  machineguns and grenades,  and fled into  the \n        forests. In the small hours, the massacre started. \n\n        Mr.  Nasiru,  who believes his wife and two children were taken \n        prisoner,   repeated what many other refugees have said -  that \n        troops of the former Soviet army helped the Armenians to attack \n        Khojaly. \"It is not my opinion, I saw it with my own eyes.\" \n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1209, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ralph@spss.com (Ralph Brendler)\nSubject: Re: Using Microsoft Foundation Classes with Borland C++ 3.1\nOrganization: SPSS, Inc.\nDistribution: usa\nLines: 53\n\nIn article <1qv1rc$fcp@news.cs.tu-berlin.de>, make@cs.tu-berlin.de (M. Kerkhoff) writes:\n> Hi all,\n> \n> has anybody tried to compile CTRLTEST from the MFC/SAMPLES directory,\n> after compiling the MFC-libs with BWC ?\n> \n> Seems to me, that BWC isn't able to distinguish pointers to overloaded\n> functions.\n> For example, imagine the following 2 (overloaded) functions:\n> void same_name ( void ) \n> void same_name ( int )\n>  \n> After trying the whole day, I think, with BWC its impossible to take the\n> adress of one of the above two functions and assign it to a properly defined\n> function pointer. \n> Am I right ? Has anybody else had this problem ?\n> \n> \tthanx\n\nI think you may be chasing the wrong problem.  I don't think it is the\nfunction overloading at all-- I do that sort of thing all of the time\nin BC++ without a hitch.  The big problems I have encountered in\nporting MFC to BC++ is that fact that MFC _depends_ on a couple of\ninvalid C++ assumptions.\n\nI have never gotten the _entire_ ctrltest app to run under BC++, but\nthe reason is that MS makes some bad assumptions about the order in\nwhich static/global objects are initialized (i.e. some objects are\ngetting accessed before they are initialized).  The problem is in the\nowner-draw menu code somewhere-- if you comment out that section, all\nother pieces of ctrltest work fine.\n\nTwo other major gotchas I have found using MFC under BC++:\n\n- The CFile::OpenFlags enum uses hard-coded numbers for the open mode,\n  rather than the manifest constants defined in fcntrl.h (which differ\n  between MSC and BC).\n\n- All of the MFC collection classes depend on another bad C++\n  assumption-- that a reference to a base object can used be in place\n  of a reference to a derived object (true for pointers, NOT for\n  references).\n\nI am sure there are other problems along the same lines, but I have\nnot encountered them (yet).  I have not seen MFC 2.0 yet, but I hope\nthat some of these will be addressed.  If they are not, all of MS's\nhype about portability to other vendor's compilers will be just that.\n\n-- \n      If these were my employer's opinions, I wouldn't be posting them.\n###############################################################################\n  \"Whoever said nothing lasts forever was obviously  # R. Brendler\n   NOT a Cubs fan...\" - Mike Royko                   # SPSS, Inc. - Chicago IL\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1210, "properties": {"category": "talk.politics.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: Clinton's Wiretapping Initiative\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 49\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, helfman@aero.org (Robert S. Helfman) says:\n\n>In article <9304161803.AA23713@inet-gw-2.pa.dec.com> blh@uiboise.idbsu.edu (Broward L. Horne) writes:\n>>\n>>\tIf you look through this newsgroup, you should be \n>>\table to find Clinton's proposed \"Wiretapping\" Initiative\n>                     ^^^^^^^^^\n>>\tfor our computer networks and telephone systems.\n>>\n>>\tThis 'initiative\" has been up before Congress for at least\n>>\tthe past 6 months, in the guise of the \"FBI Wiretapping\"\n>        ^^^^^^^^^^^^^^^^^\n>>\tbill.\n>\n>What kind of brainless clod posted the above garbage? Would they be\n\n\n     What kind of brainless clod doesn't understand the difference \n     between a \"PROPOSED BILL, BLOCKED IN CONGRESS\" and an \"EXECUTIVE\n     ORDER, ISSUED BY CLINTON, AND CRAMMED DOWN OUR THROATS\".\n\n     \n  Here, let me give a remedial course in thinking:\n\n     In order to create the appearance of low interest rates, Uncle Sam\n     has shifted his debt from long-term to short-term securities.\n\n     In effect, Uncle Sam has transformed the Federal Goverment into\n     one giant S&L, waiting to blow.\n\n     Short-term rates rise --->  Interest payments on Deficit rise --->\n     Uncle Sammy has to borrow more ---->  Causing Short-term rates to rise.\n\n     Uncle Sammy gets caught in a positive feedback loop.  His options:\n\n       i) Raise taxes a truly unimaginable amount\n       ii)  Make truly unimaginable spending cuts\n\n    Results of i):  large numbers of pissed-off citizens\n    Results of ii): large numbers of pissed-off citizens\n\n\n    Uncle Sammy has thoughtfully taken the initiative to pre-empt the use\n    of communication newtworks to foster a nation-wide, grassroots\n    uprising.\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1211, "properties": {"category": "rec.motorcycles", "text": "From: speedy@engr.latech.edu (Speedy Mercer)\nSubject: Re: Boom! Dog attack!\nOrganization: Louisiana Tech University\nLines: 17\nNNTP-Posting-Host: bhm116e-spc.engr.latech.edu\n\nIn article <csundh30.734975106@ursa> csundh30@ursa.calvin.edu (Charles Sundheim) writes:\n\n<tale of bike-eating-devil-dog deleted>\n\n>Moral: I'm not really sure, but more and more I believe that bikers ought \n>       to be allowed to carry handguns.\n\nCome to Louisiana where it is LEGAL to carry concealed weapons on a bike!\n\n ----===== DoD #8177 = Technician(Dr. Speed) .NOT. Student =====----\n\n                          Stolen Taglines...\n              * God is real, unless declared integer. *\n            * I came, I saw, I deleted all your files. *\n         * Black holes are where God is dividing by zero. *\n        * The world will end in 5 minutes. Please log out. *\n       * Earth is 98% full.... please delete anyone you can. *\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1212, "properties": {"category": "rec.sport.hockey", "text": "From: c115110@cs.UAlberta.CA (Keith Scott Alan)\nSubject: Hockey coverage\nNntp-Posting-Host: assn011.cs.ualberta.ca\nOrganization: University Of Alberta, Edmonton Canada\nLines: 15\n\nThis is a general question for US readers:\n\nHow extensive is the playoff coverage down there?  In Canada, it is almost\nimpossible not to watch a series on TV (ie the only two series I have not had\nan opportunity to watch this year are Wash-NYI and Chi-Stl, the latter because\nI'm in the wrong time zone!).  We (in Canada) are basically swamped with \ncoverage, and I wonder how many series/games are televised nationally or even\nlocally in the US and how much precedence they take over, say, local news if\nthe games go into double-OT.\n\nEmail me so as not to waste bandwidth, please.  My news feed is kind of slow\nanyways.\n\nl8tr\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1213, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: re: WINBENCH 3.11 help -- graphics comparison?!?\nFrom: srg3sir@grv.grace.cri.nz\nDistribution: world\nOrganization: Industrial Research Ltd., New Zealand.\nNNTP-Posting-Host: rmayston.grace.cri.nz\nLines: 25\n\n\n\nIn article <C4zoGD.C56@news.udel.edu> swyatt@bach.udel.edu (Stephen L Wyatt) writes:\n>I have a question about WINBENCH (pc labs thing) 3.11..\n>\n>I have a 386/33 and a Ahead B (512k) card and got these results-\n>\n>windows vga driver - 2.44 million\n>ahead B (640-480-256) driver - 455,000 winmarks\n>windows svga (800-600-16) driver - 1.68 million winmarks...\n>\n>I was thinking about upgrading to a diamond 24x card.. I read it had about\n>8 million winmark..\n>\n>obviously this is MUCH MUCH greater... but is this in 256-color mode or what?\n>is this a good card...street price is about $170...\n\nOn my 386dx 33Mhz 4Mb RAM\nWinbench 2.5\n 24x v2.02 16.7M        1,668,274\n     v2.03 16.7M        1,668,985\n     v2.03 16           4,602,428\n     v2.03 256          7,635,278\nRichard Mayston\nmaystonr@grace.cri.nz\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1214, "properties": {"category": "rec.sport.hockey", "text": "From: kozloce@wkuvx1.bitnet\nSubject: Re: Tie Breaker....(Isles and Devils)DIR\nOrganization: Western Kentucky University, Bowling Green, KY\nLines: 25\n\nIn article <1993Apr18.222115.6525@ramsey.cs.laurentian.ca>, maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n> In <lrw509f@rpi.edu> wangr@vccsouth22.its.rpi.edu ( Rex Wang ) writes:\n> \n>>I might not be great in Math, but tell me how can two teams ahve the same points\n>>with different record??? Man...retard!!!!!! Can't believe people actually put\n>>win as first in a tie breaker......\n> \n> Well I don't see any smileys here.  I am trying to figure out if the poster\n> is a dog or a wordprocessor.  Couldn't be neither.  Both are smarter than\n> this.\n> \n> \"I might not be great in Math\"\n> \n> \n> -- \n> \n> cordially, as always,                      maynard@ramsey.cs.laurentian.ca \n>                                            \"So many morons...\n> rm                                                   ...and so little time.\" \n\nRoger? Lecture someone on not using smileys? What sweet hipocracy...\n\nKOZ\n\nLETS GO CAPS!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.058+0000", "event": "documents", "entityId": 1215, "properties": {"category": "rec.motorcycles", "text": "From: ak954@yfn.ysu.edu (Albion H. Bowers)\nSubject: Re: ++BIKE SOLD OVER NET 600 MILES AWAY!++\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 23\nReply-To: ak954@yfn.ysu.edu (Albion H. Bowers)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, essbaum@rchland.vnet.ibm.com (Alexander Essbaum) says:\n\n>In article <6130331@hplsla.hp.com>, kens@hplsla.hp.com (Ken Snyder) writes:\n\n>|> > Any other bikes sold long distances out there...I'd love to hear about\n>|> it!\n\n>|> I bought my VFR750 from a guy in San Jose via the net.  That's 825 miles\n>|> according to my odometer!\n\n>mark andy (living in pittsburgh) bought his RZ350 from a dude in\n>massachusetts (or was it connecticut?).\n\nI sold a bike via the net to a young lady who lived in Salt Lake City.  I\nlive near Lost Angeles.  It turned out we had mutual aquaintances at UCLA\nas well. \n\n\n-- \nAl Bowers  DOD #900  Alfa  Ducati  Hobie  Kottke  'blad  Iaido  NASA\n\"Well goodness sakes...don't you know that girls can't play guitar?\"\n                                             -Mary Chapin-Carpenter\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1216, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Old Spacecraft as NAvigation Beacons!\nArticle-I.D.: aurora.1993Apr21.001555.1\nOrganization: University of Alaska Fairbanks\nLines: 8\nNntp-Posting-Host: acad3.alaska.edu\n\nOther idea for old space crafts is as navigation beacons and such..\nWhy not?? If you can put them on \"safe\" \"pause\" mode.. why not have them be\nactivated by a signal from a space craft (manned?) to act as a naviagtion\nbeacon, to take a directional plot on??\n\nWierd or what?\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1217, "properties": {"category": "sci.crypt", "text": "From: smhanaes@gpu.utcc.utoronto.ca (D. Wigglesworth)\nSubject: freely distributable public key cryptography c++ code:  where?\nSummary: Do you know?   \nOrganization: UTCC Public Access\nLines: 8\n\n\nDo you know of any freely distributable c++ (or c) code for public\nkey cryptography (such as RSA)?  \n\nI've tried various archie searches to no avail.  \n\n\tThanks,\n\tDan\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1218, "properties": {"category": "soc.religion.christian", "text": "From: parkin@Eng.Sun.COM (Michael Parkin)\nSubject: Re: DID HE REALLY RISE???\nReply-To: parkin@Eng.Sun.COM\nOrganization: Sun Microsystems Inc., Mountain View, CA\nLines: 57\n\nAnother issue of importance.  Was the crucification the will of God or\na tragic mistake.  I believe it was a tragic mistake.  God's will can\nnever be accomplished through the disbelief of man.  Jesus came to\nthis world to build the kingdom of heaven on the earth.  He\ndesperately wanted the Jewish people to accept him as the Messiah.  If\nthe crucification was the will of God how could Jesus pray that this\ncup pass from him.  Was this out of weakness.  NEVER.  Many men and\nwomen have given their lives for their country or other noble causes.\nIs Jesus less than these.  No he is not.  He knew the crucification\nwas NOT the will of GOD.  God's will was that the Jewish people accept\nJesus as the Messiah and that the kingdom of Heaven be established on\nthe earth with Jesus as it's head. (Just like the Jewish people\nexpected). If this had happened 2000 years ago can you imagine what\nkind of world we would live in today.  It would be a very different\nworld.  And that is eactly what GOD wanted.  Men and women of that age\ncould have been saved by following the living Messiah while he was on\nthe earth.  Jesus could have established a sinless lineage that would\nhave continued his reign after his ascension to the spiritual world to\nlive with GOD.  Now the kingdom of heaven on the earth will have to\nwait for Christ's return.  But when he returns will he be recognized\nand will he find faith on this earth.  Isn't it about time for his\nreturn.  It's been almost 2000 years.\n\nMike\n\n\nIn article 28885@athos.rutgers.edu, oser@fermi.wustl.edu (Scott Oser) writes:\nIn article <Apr.10.05.33.59.1993.14428@athos.rutgers.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>The two historic facts that I think the most important are these:\n>\n>(1) If Jesus didn't rise from the dead, then he must have done something\n>else equally impressive, in order to create the observed amount of impact.\n>\n>(2) Nobody ever displayed the dead body of Jesus, even though both the\n>Jewish and the Roman authorities would have gained a lot by doing so\n>(it would have discredited the Christians).\n\nAnd the two simplest refutations are these:\n\n(1)  What impact?  The only record of impact comes from the New Testament.\nI have no guarantee that its books are in the least accurate, and that\nthe recorded \"impact\" actually happened.  I find it interesting that no other\ncontemporary source records an eclipse, an earthquake, a temple curtain\nbeing torn, etc.  The earliest written claim we have of Jesus' resurrection\nis from the Pauline epistles, none of which were written sooner than 20 years\nafter the supposed event.\n\n(2)  It seems probable that no one displayed the body of Jesus because no\none knew where it was.  I personally believe that the most likely\nexplanation was that the body was stolen (by disciples, or by graverobbers).\nDon't bother with the point about the guards ... it only appears in one\ngospel, and seems like exactly the sort of thing early Christians might make\nup in order to counter the grave-robbing charge.  The New Testament does\nrecord that Jews believed the body had been stolen.  If there were really\nguards, they could not have effectively made this claim, as they did.\n\n-Scott O.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1219, "properties": {"category": "sci.space", "text": "From: kwp@wag.caltech.edu (Kevin W. Plaxco)\nSubject: Re: Boom!  Whoosh......\nOrganization: California Institute of Technology, Pasadena, CA\nLines: 22\nNNTP-Posting-Host: sgi1.wag.caltech.edu\n\nIn article <37147@scicom.AlphaCDC.COM> wats@scicom.AlphaCDC.COM (Bruce Watson) writes:\n>+\n>Pageos and two Echo balloons were inflated with a substance\n>which expanded in vacuum. \n\nCalled \"gas\".\n\n>Once inflated the substance was no longer\n>needed since there is nothing to cause the balloon to collapse.\n>This inflatable structure could suffer multiple holes with no \n>disastrous deflation.\n\nThe balloons were in sufficiently low orbit that they experienced\nsome air resistance.  When they were finally punctured, this \npreasure (and the internal preasure that was needed to maintain\na spherical shape against this resistance) caused them to\ncatastrophically deflated.  The large silvered shards\nthat remained were easily visible for some time before\nreentry, though no longer useful as a passive transponder.\n\nThe billboard should pop like a dime store balloon.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1220, "properties": {"category": "misc.forsale", "text": "From: mark@ardsley.business.uwo.ca (Mark Bramwell)\nSubject: Re: Cellular Phone (Portable) for sale\nOrganization: Western Business School\nDistribution: usa\nSummary: Takes longer than 24 hours\nNntp-Posting-Host: home-pc1.business.uwo.ca\nLines: 19\n\n>\n>I hope you realize that for a cellular phone, you need to subscribe to a\n>Cellular carrier, and it usually takes at least one working day before\n>the service is available to you. Only then you can find out whether \n>the phone is working.\n>\n>Tin\n>\n\n\nNot true.  Dial 811 and listen to the recording.  If you get it, then your \nphone was recognized by the network.  You wouldn't be able to dial a real \nnumber yet (of course!)\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nMark Bramwell, VE3PZR                Located in sunny London, Ontario\n\nInternet: Mark@ARDSLEY.business.uwo.ca  IP Address: 129.100.29.33\n  Packet:  VE3PZR @ VE3GYQ               UWO Phone: (519) 661-3714\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1221, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Possible Canadian WC Team?\nOrganization: University of Toronto Chemistry Department\nLines: 22\n\nIn article <1993Apr18.194657.26319@news.columbia.edu> gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>nlu@Xenon.Stanford.EDU (Nelson Lu) writes:\n>>\n>>CENTERS\n>>Mark Messier, N. Y. Rangers\n>\n>Messier was not invited due to his nagging injuries.  While the press\n>made an issue of it, and attempted to link it to the Rangers' internal\n>political woes, Mike Keenan repeated that to Messier personally during\n>the MSG press conference.  It makes sense ... Messier would probably\n>have not declined the invitation if it were made for publicity ...\n>\n\nActually, Messier was invited, but declined due to nagging injuries...\nKeenan and Messier have always gotten along...Keenan dumped Steve\nYzerman from the last Canada Cup team, even though Yzerman had\nendured the training camp, when Messier who had missed essentially the\nentire camp recovering from injuries became available at the\nlast moment.\n\nGerald\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1222, "properties": {"category": "talk.politics.guns", "text": "From: dbernard@clesun.Central.Sun.COM (Dave Bernard)\nSubject: Re: Impeach Clinton, Reno\nReply-To: dbernard@clesun.Central.Sun.COM\nOrganization: Sun Microsystems\nLines: 22\nNNTP-Posting-Host: clesun.central.sun.com\n\n\n >   I HEARTILY agree.  Now that the BATF warrant has been \n  >   unsealed, it is CLEAR that Clinton and Reno supported an\n   >  ILLEGAL raid.  Did they not KNOW this?\n\n\n\n>     NO authority for a 'no-knock\" raid\n >    NO authority to use helicopters.\n>     NO authority to search for a \"drug lab\"\n\n>    And, apparently, not even any authority to search for \"automatic\n>    weapons\".\n\n>     51 days of GOVERNMENT LIES.\n\n\tSorry, I missed all this!  Can you please give an update on\n\tthe warrant?  I hadn't heard that it was unsealed.  There\n\twas no authority for a \"no-knock?\"  This is news.  How about\n\tan OK for a wiretap?\n\n\tPlease summarize!\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1223, "properties": {"category": "rec.sport.baseball", "text": "From: jaufrecht@pomona.claremont.edu\nSubject: Dodgers newsletter?\nArticle-I.D.: pomona.0096A95C.A0CBE0E8\nReply-To: jaufrecht@pomona.claremont.edu\nOrganization: Pomona College\nLines: 3\n\nCould somebody please tell me if there is a Dodgers newsletter on the Net,\nand if so how to subscribe?  Thanks,\nJoel\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1224, "properties": {"category": "alt.atheism", "text": "From: dewey@risc.sps.mot.com (Dewey Henize)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Motorola, Inc. -- Austin,TX\nLines: 48\nNNTP-Posting-Host: rtfm.sps.mot.com\n\nIn article <1993Apr15.212943.15118@bnr.ca> (Rashid) writes:\n[deletions]\n>\n>The fatwa was levelled at the person of Rushdie - any actions of\n>Rushdie that feed the situation contribute to the legitimization of\n>the ruling. The book remains in circulation not by some independant\n>will of its own but by the will of the author and the publishers. The fatwa\n>against the person of Rushdie encompasses his actions as well. The\n>crime was certainly a crime in progress (at many levels) and was being\n>played out (and played up) in the the full view of the media.\n>\n>P.S. I'm not sure about this but I think the charge of \"shatim\" also\n>applies to Rushdie and may be encompassed under the umbrella\n>of the \"fasad\" ruling.\n\nIf this is grounded firmly in Islam, as you claim, then you have just\nexposed Islam as the grounds for terrorism, plain and simple.\n\nWhether you like it or not, whether Rushdie acted like a total jerk or\nnot, there is no acceptable civilized basis for putting someone in fear\nof their life for words.\n\nIt simply does not matter whether his underlying motive was to find the\nworst possible way he could to insult Muslims and their beliefs, got that?\nYou do not threaten the life of someone for words - when you do, you\nquite simply admit the backruptcy of your position.  If you support\nthreatening the life of someone for words, you are not yet civilized.\n\nThis is exactly where I, and many of the people I know, have to depart\nfrom respecting the religions of others.  When those beliefs allow and\nencourage (by interpretation) the killing of non-physical opposition.\n\nYou, or I or anyone, are more than privledged to believe that someone,\nwhether it be Rushdie or Bush or Hussien or whover, is beyond the pale\nof civilized society and you can condemn his/her soul, refuse to allow\nany members of your association to interact with him/her, _peacably_\ndemonstrate to try to convince others to disassociate themselves from\nthe \"miscreants\", or whatever, short of physical force.\n\nBut once you physically threaten, or support physical threats, you get\nmuch closer to your earlier comparison of rape - with YOU as the rapist\nwho whines \"She asked for it, look how she was dressed\".\n\nBlaming the victim when you are unable to be civilized doesn't fly.\n\nDew\n-- \nDewey Henize Sys/Net admin RISC hardware (512) 891-8637 pager 928-7447 x 9637\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1225, "properties": {"category": "talk.politics.mideast", "text": "From: henrik@quayle.kpc.com \nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: NONE\nLines: 57\n\nIn article <C5qu5H.1IF@news.iastate.edu>, oyalcin@iastate.edu (Onur Yalcin) writes:\n|> In article <1993Apr19.155856.8260@kpc.com> henrik@quayle.kpc.com  writes:\n|> >In article <1993Apr17.185118.10792@ee.rochester.edu>, terziogl@ee.rochester.edu (Esin Terzioglu) writes:\n|> >|>\n|> >|>..[cancellum]... \n|> >|>\n|> >\n|> >\nhenrik] Let me clearify Mr. Turkish;\nhenrik] ARMENIA is NOT getting \"itchy\". SHE is simply LETTING the WORLD KNOW \nhenrik] that SHE WILL NO  LONGER sit there QUIET and LET TURKS get away with \nhenrik] their FAMOUS tricks. Armenians DO REMEMBER of the TURKISH invasion \nhenrik] of the Greek island of CYPRESS WHILE the world simply WATCHED. \n\nOnur Yalcin] It is more appropriate to address netters with their names as \nOnur Yalcin] they appear in their signatures (I failed to do so since you did \nOnur Yalcin] not bother to sign your posting). Not only because it is the \nOnur Yalcin] polite thing to do, but also to avoid addressing ladies with \nOnur Yalcin] \"Mr.\", as you have done.\n\n\tFine. Please, accept my opology !\n\nOnur Yalcin] Secondly, the island of which the name is more correctly spelled \nOnur Yalcin] as Cyprus has never been Greek, but rather, it has been home to \nOnur Yalcin] a bi-communal society formed of Greeks and Turks. It seems that \n               ^^^^^^^^^^^\nOnur Yalcin] you know as little about the history and the demography of the \nOnur Yalcin] island, as you know about the essence of Turkey's \nOnur Yalcin] military intervention to it under international agreements.\n\n\tbi-communal society ? Then why DID NOT Greece INVADE CYPRUS ? \n\t\nOnur Yalcin] Be that as it may, an analogy between an act of occupation in \nOnur Yalcin] history and what is going on today on Azerbaijani land, can only \nOnur Yalcin] be drawn with the expansionist policy that Armenia is now pursuing.\n\n\tBuch of CRAP and you know it. Nagarno-Karabagh has ALWAYS been PART \n        of ARMENIA and it was STALIN who GAVE IT to the AZERIS. Go back and\n        review the HISTORY.  \n\n\tThe Armenians in Nagarno-Karabagh are simply DEFENDING their RIGHTS\n        to keep their homeland and it is the AZERIS that are INVADING their \n        teritory.\n\nOnur Yalcin] But, I could agree that it is not for us to issue diagnoses to \nOnur Yalcin] the political conduct of countries, and promulgate them in such \nOnur Yalcin] terminology as \"itchy-bitchy\"... \n\n       I was not the one that STATED IT. \n\t\n       However, I hope that the Armenians WILL force a TURKISH airplane \n       to LAND for purposes of SEARCHING for ARMS similar to the one\n       that happened last SUMMER. Turkey searched an AMERICAN plane\n       (carrying humanitarian aid) bound to ARMENIA.\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1226, "properties": {"category": "rec.autos", "text": "Subject: apology (was Re: Did US drive on the left?)\nFrom: aas7@po.CWRU.Edu (Andrew A. Spencer)\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nNNTP-Posting-Host: slc5.ins.cwru.edu\nLines: 54\n\n\nIn a previous article, dh3q+@andrew.cmu.edu (\"Daniel U. Holbrook\") says:\n\n>>i'm guessing, but i believe in the twenties we probably drove mostly down\n>>cattle trails and in wagon ruts.  I am fairly sure that placement of the \n>>steering wheel was pretty much arbitrary to the company at that time.....\n>\n>By the 1920s, there was a very active \"good roads\" movement, which had\n>its origins actually in the 1890s during the bicycle craze, picked up\n>steam in the teens (witness the Linclon Highway Association, 1912 or so,\n>and the US highway support act (real name: something different) in 1916\n>that first pledged federal aid to states and counties to build decent\n>roads. Also, the experience of widespread use of trucks for domestic\n>transport during WW 1 convinced the government that good raods were\n>crucial to our national defense.  Anyway, by the 20s there were plenty\n>of good roads, at least around urban areas, and they were rapidly\n>expanding into the countryside.  This was the era, after all, of the\n>first auto touring fad, the motel, the auto camp ground, etc. Two good\n>books on the subject spring to mind - Warren Belasco \"America on the\n>Road\" (title may not be exact - author is) and another called \"The Devil\n>Wagon in God's Country\" author I forget.  Also, any of John Flink's  or\n>John Bell Rae's auto histories.\n\ni'm sorry, as i have never heard of any of this.  Guess they don't think\nit's important enough for a classroom, and i was going on what i've seen\nin pics.(some movies--real nice scource there, huh?)  I just always \nrecall thinking that GOOD roads of asphalt didn't come around til the\nInterstate Hiway Act, or whatever they called it(60's?), and that wood and\ncobblestone roads were fairly rare up through the depression, except in\noverpopulated places like England and US cities.  Obviously netwisdom\nsays i am wrong.\n\n>As to placement of the steering wheel being arbitrary, by the early\n>teens there were virtually no American cars that did not have the wheel\n>on the left.  In the early days, cars had the wheel on the left, on the\n>right, and even in the middle, as well as sometimes having a tiller\n>instead of a wheel.  This was standardized fairly early on, though I\n>don't know why.\n\ni knew it was almost always done, but i knew of no reason that it might not\nbe done the other way by DeSoto for their car.  Seems like they had some\nother deviations from the norm too, at times :-)\n\n>Dan\n>dh3q@andrew.cmu.edu\n>Carnegie Mellon University\n>Applied History\n>\n>\"World history strides on from catastrophe to catastrophe, whether we\n>can comprehend and prove it or not.\"\n>               Oswald Spengler\n\nthanx for corrrecting me, and again, i aplogize for harebraned post.\nDREW\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1227, "properties": {"category": "talk.religion.misc", "text": "From: tims@megatek.com (Tim Scott)\nSubject: Re: RFD: misc.taoism\nReply-To: tims@megatek.com\nOrganization: Megatek Corporation, San Diego, California\nLines: 72\n\nIn article <79899@cup.portal.com> Thyagi@cup.portal.com (Thyagi Morgoth NagaSiva) writes:\n\n\nI would like to add my support for a misc.taoism discussion group.\nI applaud the enthusiam shown by the person posting <79899@cup.portal.com> \n\"Thyagi@cup.portal.com\" (I read in alt.magick), but I differ\nwith him/her in believing that at least some minimal parameters \nshould be agreed upon.\n\nThyagi wrote:\n\n> I recommend that the depth of generality, indeed, of AMBIGUITY, in this\n> newsgroup (misc.taoism) be maximized.  Calling the Tradition old or new\n> is rather unnecessary, and only leads to foolish squabbles.  There is no\n> doubt that Nature is a splendid teacher, whether she appears in the words\n> spoken by a tree or by a stream, a microbe or a star.  Let us not limit\n> 'misc.taoism' to 'philosophy'.  \n\nBut if we don't limit it to *something*, the discussion degenerates into\na big amorphous glob. \n\nOther questions Thyagi proposes are:\n\n> 1) What is this 'actual process of reality'?\n> 2) Why is Taoism based upon an assumption?\n> 3) Why does this assumption concern knowledge and what can be known?\n> 4) What is the value of not knowing?\n> 5) What is 'a Tao'?  What does it mean to be 'Tao'd'?\n\nIt seems to me that these questions more properly fall into the\ncategory of \"general metaphysics\". I would prefer any misc.taoism\nto deal more closely with topics and works more closely associated\nwith at least \"semi-orthodox\" Taoism: with established classic works \ndefinitely included and works like Mantak Chia's argued about! \n\nI think \"neo-Taoism\" should be excluded or get its own group (what I\nmean by this is \"Humpty-Dumpty Taoism\", in which Taoism means whatever \na poster says it means.) This \"alt.taoism\" could also be a refuge \nfor debates about what \"Taoism *REALLY* means\" or speculations on sexual\nalchemy, etc..\n\ne.g. (from Thyagi again):\n> Taoism does what the hell it wants, I tell you.\n> Taoism doesn't exist.  'Taoism' is no more real that 'Tao'.  Decide, now.\n> Real or not real?  Exist or not-exist?  When shall we be certain\n\nKent gloomily predicts (quoting from Thyagi's article):\n\n> However most traffic in \n> the group will likely concern the philosophical, secular taoism\n> averred by Alan Watts and Niels Bohr, and yogic taoism as it pertains\n> to medical, sexual and martial techniques.\n\nI think that discussions of this nature are not completely out of\nplace. What's happening is that that the term \"Taoism\" is becoming\ncompletely polluted and trivialized like the words \"magic\", \"Alchemy\", \n\"Zen,\" etc., by writers appropriating the word to mean whatever they \nwant. This is seen by the spate of new age books entitled \"The\nTao of\" this, that, and everything else. (With respect to some exceptions\nlike the books by Jou, Tsung-Hwa.)\n\nAny other comments/ideas? I look forward to seeing them. On balance,\nI say let misc.taoism rip and let the chips fall where they may. If\nit just gets filled up with college freshmen asking about the\nTao of Sex then it will have been a failure and people will post to\nthese groups just as they do now.\n\n-- \n------------------------------------------------------------------------\nTim P. Scott sending from: Megatek Corporation    (619)455-5590 ext.2610\n9645 Scranton Rd. San Diego, CA 92121-3782 USA        FAX: (619)453-7603\nInternet: tims@megatek.com [or] ...uunet!megatek!tims \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1228, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jason@sigma.demon.co.uk (Jason Manger)\nSubject: Hhy won't my DOS apps run in a window?!\nDistribution: world\nOrganization: Sigma Press\nReply-To: jason@sigma.demon.co.uk\nX-Mailer: Simple NEWS 1.90 (ka9q DIS 1.19)\nLines: 8\n\nCan somebody help me out there? I have just purchased Win 3.1 and I just\ncan't get DOS apps (text mode apps) to run in a window on their own. I've\ntried mucking around with the PIF settings etc, but to no avail. What am\nI doing wrong? (I didn't get this problem under v3.0).\n\nThanks in advance ...\n\nJason.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1229, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Stratus Computer, Inc.\nLines: 13\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1r19tp$5em@bigboote.WPI.EDU>, mfrhein@wpi.WPI.EDU (Michael Frederick Rhein) writes:\n\n> >napalm, then let the wood stove inside ignite it.\n>                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> As someone else has pointed out, why would the stove be in use on a warm day  \n> in Texas. \n\nDo YOU eat all your food cold?\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1230, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 50\nNNTP-Posting-Host: punisher.caltech.edu\n\nbobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>>I think that about 70% (or so) people approve of the\n>>death penalty, even realizing all of its shortcomings.  Doesn't this make\n>>it reasonable?  Or are *you* the sole judge of reasonability?\n>Aside from revenge, what merits do you find in capital punishment?\n\nAre we talking about me, or the majority of the people that support it?\nAnyway, I think that \"revenge\" or \"fairness\" is why most people are in\nfavor of the punishment.  If a murderer is going to be punished, people\nthat think that he should \"get what he deserves.\"  Most people wouldn't\nthink it would be fair for the murderer to live, while his victim died.\n\n>Revenge?  Petty and pathetic.\n\nPerhaps you think that it is petty and pathetic, but your views are in the\nminority.\n\n>We have a local televised hot topic talk show that very recently\n>did a segment on capital punishment.  Each and every advocate of\n>the use of this portion of our system of \"jurisprudence\" cited the\n>main reason for supporting it:  \"That bastard deserved it\".  True\n>human compassion, forgiveness, and sympathy.\n\nWhere are we required to have compassion, forgiveness, and sympathy?  If\nsomeone wrongs me, I will take great lengths to make sure that his advantage\nis removed, or a similar situation is forced upon him.  If someone kills\nanother, then we can apply the golden rule and kill this person in turn.\nIs not our entire moral system based on such a concept?\n\nOr, are you stating that human life is sacred, somehow, and that it should\nnever be violated?  This would sound like some sort of religious view.\n \n>>I mean, how reasonable is imprisonment, really, when you think about it?\n>>Sure, the person could be released if found innocent, but you still\n>>can't undo the imiprisonment that was served.  Perhaps we shouldn't\n>>imprision people if we could watch them closely instead.  The cost would\n>>probably be similar, especially if we just implanted some sort of\n>>electronic device.\n>Would you rather be alive in prison or dead in the chair?  \n\nOnce a criminal has committed a murder, his desires are irrelevant.\n\nAnd, you still have not answered my question.  If you are concerned about\nthe death penalty due to the possibility of the execution of an innocent,\nthen why isn't this same concern shared with imprisonment.  Shouldn't we,\nby your logic, administer as minimum as punishment as possible, to avoid\nviolating the liberty or happiness of an innocent person?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1231, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Ten questions about Israel\nOrganization: Aiken Computation Lab, Harvard University\nLines: 64\n\nIn article <1483500349@igc.apc.org> cpr@igc.apc.org (Center for Policy Research) writes:\nTen Questions about arab countries\n----------------------------------\n\nI would be thankful if any of you who live in arab countries could\nhelp to provide accurate answers to the following specific questions.\nThese are indeed provocative questions but they are asked time and\nagain by people around me.\n\n1.      Is it true that many arab countries don't recognize\nIsraeli nationality ?  That people with Israeli stamps on their\npassports can't enter arabic countries?\n\n2.      Is it true that arabic countries such as Jordan and Syria\nhave undefined borders and that arab governments from 1948 until today\nhave refused to state where the ultimate borders of their states\nshould be?\n\n3.      Is it true that arab countires refused to sign the Chemical\nweapon convention treaty in Paris in 1993?\n\n4.      Is it true that in arab prisons there are a number of\nindividuals which were tried in secret and for which their\nidentities, the date of their trial and their imprisonment are\nstate secrets ?\n\n4a.\tIs it true that some arab countries, like Syria, harbor Nazi\nwar criminals, and refuse to extradite them?\n\n4b.\tIs it true that some arab countries, like Saudi Arabia,\nprohibit women from driving cars?\n\n5.      Is it true that Jews who reside in the Muslim\ncountries are subject to different laws than Muslims?\n\n6.      Is it true that arab countries confiscated the property of\nentire Jewish communites forced to flee by anti-Jewish riots?\n\n7.      Is it true that Israel's Prime Minister, Y. Rabin, signed\na chemical weapons treaty that no arab nation was willing to sign?\n\n8.      Is it true that Syrian Jews are required to leave a $10,000\ndeposit before leaving the country, and are no longer allowed to\nemmigrate, despite promises made by Hafez Assad to George Bush?\n\n9.\t Is it true that Jews in Muslim lands are required to pay a\nspecial tax, for being Jews?\n\n10.     Is it true that Intercontinental Hotel in Jerusalem was built\non a Jewish cemetary, with roads being paved over grave sites, and\ngravestones being used in Jordanian latrines?\n\n11.\tIs it really cheesy and inappropriate to post lists of biased\nleading questions?\n\n11a.\tIs it less appropriate if information implied in Mr.\nDavidsson's questions is highly misleading?\n\nAdam\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1232, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: phill@dnbf01.bram.cdx.mot.com (Phil Longstaff)\nSubject: WANTED: chipset info\nNntp-Posting-Host: ws13.bram.cdx.mot.com\nReply-To: phill@dnbf01.bram.cdx.mot.com (Phil Longstaff)\nOrganization: Motorola Codex, Mississauga, Ontario\nLines: 8\n\nI have a 286 with an M205 motherboard.  The Last Byte memory manager (which\nI downloaded for a trial) reports the chipset is an AddTech PCCHIP1 chipset,\nand it is able to activate the ram behind segments A000-FFFF, which can then be\nused for UMBs (except for video/BIOS).  I would like to write my own driver to\nactivate the memory.  Does anyone know where I can get programming information\non this chip?\n\nPhil\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1233, "properties": {"category": "talk.politics.mideast", "text": "From: ma170saj@sdcc14.ucsd.edu (System Operator)\nSubject: A Moment Of Silence\nOrganization: University of California, San Diego\nLines: 14\nNntp-Posting-Host: sdcc14.ucsd.edu\n\n\n    April 24th is approaching, and Armenians around the world\nare getting ready to remember the massacres of their family members\nby the Turkish government between 1915 and 1920.  \n    At least 1.5 Million Armenians perished during that period,\nand it is important to note that those who deny that this event\never took place, either supported the policy of 1915 to exterminate\nthe Armenians, or, as we have painfully witnessed in Azerbaijan,\nwould like to see it happen again...\n    Thank you for taking the time to read this post.\n\n    -Helgge\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1234, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: some thoughts.\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 18\n\nKent Sandvik (sandvik@newton.apple.com) wrote:\n: In article <11838@vice.ICO.TEK.COM>, bobbe@vice.ICO.TEK.COM (Robert\n: Beauchaine) wrote:\n: >   Someone spank me if I'm wrong, but didn't Lord, Liar, or Lunatic\n: >   originate with C.S. Lewis?  Who's this Campollo fellow anyway?\n\n: I do think so, and isn't there a clear connection with the \"I do\n: believe, because it is absurd\" notion by one of the original\n: Christians (Origen?).\n\nThere is a similar statement attributed to Anselm, \"I believe so that\nI may understand\". In both cases reason is somewhat less exalted than\nanyone posting here could accept, which means that neither statement\ncan be properly analysed in this venue.\n\nBill\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1235, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: shaw@feanor.xel.com (Greg Shaw)\nSubject: Re: IDE vs SCSI\nOrganization: XEL Communications, Inc.\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 106\n\nWayne Smith (wlsmith@valve.heart.rri.uwo.ca) wrote:\n: In article <1qk7kvINNndk@dns1.NMSU.Edu> bgrubb@dante.nmsu.edu (GRUBB) writes:\n: >>point of view, why does SCSI have an advantage when it comes to multi-\n: >>tasking?  Data is data, and it could be anywhere on the drive.  Can\n: >>SCSI find it faster?  can it get it off the drive and into the computer\n: >>faster?  Does it have a better cache system?  I thought SCSI was good at\n: >>managing a data bus when multiple devices are attached.  If we are\n: >>only talking about a single drive, explain why SCSI is inherently\n: >>faster at managing data from a hard drive.\n\n: >IDE:  Integrated Device Electronics \n: > currently the most common standard, and is mainly used for medium sized \n: > drives. Can have more than one hard drive. Asynchronous Transfer: ~5MB/s max.\n\n: Why don't you start with the spec-sheet of the ISA bus first?\n: You can quote SCSI specs till you're blue in the face, but if they\n: exceed the ISA bus capability, then what's the point?\n\nWho said ISA was necessary?  EISA or VLB are the only interfaces worth\ninvesting thousands of dollars (e.g. a new pc's worth of money ) in .\n\n: Who says IDE is limited to 5 megs/sec?  What about VLB-IDE?  Does anyone\n: know how they perform?\n\nYou didn't read to carefully.  VLB-IDE uses the same connection mechanism\nas standard IDE.  If transfer rate is limited by IDE, whether it's\ninterfaced to ISA, EISA or VLB matters not.\n\n: >So at its LOWEST setting SCSI-2 interface in Asynchronous SCSI-1 mode AVERAGES \n: >the through put MAXIMUM of IDE in asynchronous mode.  In full SCSI-2 mode\n: >it blows poor IDE out the window, down the street, and into the garbage can.\n: As implimented on what system?  \n\nOn mine, for one thing.  SCSI blows IDE out of the water, hands down.  If\nIDE has better throughput, why isn't it used on workstations and file\nservers?  \n\n: >The problem becomes can the drive mechanisim keep up with those through put\n: >rates and THAT is where the bottleneck and cost of SCSI-2 comes from.  NOT\n: >the interface itself but more and more from drive mechanisims to use the\n: >SCSI-2 through put.  \n\n: Given the original question (SCSI used only as a single hard drive\n: controller),  is it then necessary to get a SCSI drive that will do\n: at least 5, maybe 10 megs/sec for the SCSI choice to make any sence?\n: What does a 200-400 meg 5 megs/sec SCSI drive cost?\n\nNo, that's the nice thing -- on a multitasking OS, SCSI can use both drives\nat once.  I've got unix loaded on one of my pcs (along with windogs) and the OS can only use one of the two IDE drives at one time.  It's pretty ugly.\n\nI just bought at Quantum 240 for my mac at home.  I paid $369 for it.  I\nhaven't seen IDE drives cheaper.\n\n: The original CGA cart back in '84 was $300.  I think the original EGA card\n: (or PGA?) was $800.  SCSI has stood relatively alone in not coming down\n: in price, mainly because we're talking about PC's and not Sun's or Sparc\n: or SGI or (name your favorite unix workstation).  That is, after millions\n: of PC buying decisions over the years, SCSI has had plenty of time to\n: come down in price.\n\nNo, actually, we're talking about SCSI being expensive simply because\nnobody did a common interface for the PC.  If they had a common (read:\neasily implemented) method of adding scsi to a PC (like as in a Sun or\nMac), then you'd find SCSI the connection medium of choice.\n\n: I won't argue that the SCSI standard makes for a good, well implimented\n: data highway, but I still want to know why it intrinsically better\n: (than IDE, on an ISA bus) when it comes to multi-tasking OS's when\n: managing data from a single SCSI hard drive.\n\nOn a single drive, SCSI is more expensive.  But, you bought your PC for\nexpandibility, so, you'd want to add more drives or whatever.  The\nfollowing are why I find SCSI intrinsically better than IDE:\n\nA (partial?) list:\n\t1.  You can add many different types of devices and access them \n\tconcurrently.\n\t2.  A SCSI device works on many different machines (I have a mac\n\tand a PC at home and moving hard drives between them is VERY nice\n\twith SCSI -- hook them up and away they go)\n\t3.  SCSI devices work together better than IDE devices.  For\n\tinstance, recently, I added an older connor 100 meg IDE to a maxtor\n\t212 meg IDE.  The connor *MUST* be setup as the slave.  It will\n\twork no other way.  On SCSI, you set the address, check the\n\ttermination, plug it in, and away it goes.\n\t4.  I have a problem with IDE's mutual exclusion - I notice that\n\tthe time it takes to switch from accessing drive c: to drive d: is\n\tquite long as compared to the time it takes to switch from drive c:\n\tto d: on a SCSI system.  Under a multitasking OS, this is very\n\tnoticable, as many things can be going on at once.\n\nOne neat thing that I've noticed lately (a fringe benefit) has been the\nability to add older (almost dead) drives as storage on a SCSI system with\nlittle problem -- we've got a bunch of almost dead 20 meg drives that I've\nadded to my PC.  I've now got the interface full, but, it does allow me to\nhave 4 20 meg drives, 1 240 meg drive, 1 tape drive, and 1 105 meg drive\nall on the same card.  \n\nSimply put, SCSI is handier than IDE.  No mysterious jumpers to figure out.\n\nGreg.\n-- \n_______________________________________________________________________________\nYou can't go against nature, because when you do, \tGreg Shaw\ngo against nature, it's part of nature too.\t\tshaw@feanor.xel.com \n\t\t\tLove & Rockets\t\t\tuunet!csn!xel.com!shaw  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1236, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: huot@cray.com (Tom Huot)\nSubject: Re: Soundblaster IRQ and Port settings\nLines: 22\nNntp-Posting-Host: pittpa.cray.com\nOrganization: Cray Research Inc.\nX-Newsreader: TIN [version 1.1 PL8]\n\nThe Cybard (dudek@acsu.buffalo.edu) wrote:\n: uzun@netcom.com (William Roger Uzun) writes:\n\n: >I have a SoundBlaster board in a 486-SX PC, and I have it\n: >jumpered to IRQ 7, port 220h.  Will this conflict with my\n: >parallel port?  I just have an IDE controller, a multi-IO board\n: >with 2ser, 1Par port and a VGA board.  Should I choose\n: >another IRQ besides 7?  Or is IRQ 7 safe to use on 486 Motherboards?\n\n: Recently I was adding a modem to my computer, and I noticed that LPT1 uses\n: IRQ-7 and so does my SB card (220h).  I've never had a problem, but I'm\n: just wondering why not.  I thought this would cause a conflict.  \n\nI would also like an explanation of this. If anyone can explain\nwhy the SB Pro and LPT 1 can share an IRQ, please do so.\nThanks\n\n--\n_____________________________________________________________________________\nTom Huot        \t\t\t       \nhuot@cray.com \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1237, "properties": {"category": "sci.crypt", "text": "From: eachus@spectre.mitre.org (Robert I. Eachus)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nIn-Reply-To: mjr@tis.com's message of 21 Apr 1993 21:28:13 GMT\nNntp-Posting-Host: spectre.mitre.org\nOrganization: The Mitre Corp., Bedford, MA.\n\t<1993Apr20.192105.11751@ulysses.att.com>\n\t<1993Apr21.001230.26384@lokkur.dexter.mi.us> <1r4e9d$pdo@sol.TIS.COM>\nLines: 19\n\n\n      Don't get fooled by exponents 2^80 (possible keys) is not in the\nsame league with 10^80 (particles in the universe).  2^80 < 10^25.\nRemember Avagadro's number?  There are about that many elementary\nparticles (not molecules) in one mole.  Pretty small universe!  Or if\nyou can put 5 Gigabytes on one tape, you would need about 10 trillion\ntapes (allowing several bytes per entry).  Still more than all of the\nexisting magnetic media on the planet, but wait a few years.  (I'm\nincluding existing audio and video cassettes in the total.  Ten\ntrillion is about 2,000 per person worldwide...  Gives new meaning to\nthe suspicions of hiden messages.)\n\n--\n\n\t\t\t\t\tRobert I. Eachus\n\nwith Standard_Disclaimer;\nuse  Standard_Disclaimer;\nfunction Message (Text: in Clever_Ideas) return Better_Ideas is...\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.059+0000", "event": "documents", "entityId": 1238, "properties": {"category": "sci.med", "text": "From: sandy@nmr1.pt.cyanamid.COM (Sandy Silverman)\nSubject: Re: Barbecued foods and health risk\nIn-Reply-To: markmc@halcyon.com's message of 19 Apr 1993 01:07:22 -0700\nNntp-Posting-Host: nmr1.pt.cyanamid.com\nOrganization: American Cyanamid Company\n\t<1qtmjq$ahd@nwfocus.wa.com>\nLines: 11\n\nFrom my reading of the popular, and scientific, literature,  I think that the\nbenzopyrene-from-burned-fat problem is probably real but very small compared to\nother kinds of risks.  (This type of problem also occurs with stove-top pan\ngrilling.)  One possible remedy I have read about is to take some vitamin C with your meal of barbecue (or bacon, e.g.).  This MAY make sense because vit. C\nis an antioxidant which could counteract the adverse affect of some of the \nchemicals in question.  Bon Apetit!     \n\n--\nSanford Silverman                      >Opinions expressed here are my own<\nAmerican Cyanamid  \nsandy@pt.cyanamid.com, silvermans@pt.cyanamid.com     \"Yeast is Best\"\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1239, "properties": {"category": "comp.windows.x", "text": "From: root@netdev.comsys.com (Operator)\nSubject: DevGuide with Motif - Solaris 2.2 to ease Motif burden ..\nSummary: Sun helps software developers support motif\nKeywords: SUN, GUI, Motif, DevGuide\nOrganization: ProTools Inc.\nLines: 25\n\n\n We've developed a number of applications using DevGuide and found it to \nbe a very useful tool. I've been impressed with the level of integration it\naffords using the connection editor. I love the general ease of use.\n \n I talked with Tali Aben at Sun today about DevGuide + Motif. She was very\nhelpful. We provided some input as to what we'd like to see in the next\nversion of DevGuide. Tali was very enthusiatic about our comments. I mentioned\nI was going to post this email message and she offered to receive additional\ncomments from the net on what DevGuide should evolve into. \n \n Send your comments/wish-list, raving, et. al. about DevGuide to:\n\n  Tali.Aben@Sun.COM\n\n\n Pretty cool example of a company that cares what we want.... More of this\nand computers may have a future.\n\n Frankly, I like the idea that it will offer some migration capability\nto DOE/DOMF through an integrated ToolTalk capability, pointed out in March's \nSunExpert magazine. \n\n Technology works, we can crankout the interfaces with DevGuide. Price is \noutstanding. \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1240, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: Re: 68LC040 vs. 68RC040 in Centris 650\nFrom: Bruce@hoult.actrix.gen.nz (Bruce Hoult)\nLines: 16\n\nZack T. Smith writes:\n> konpej@eua.ericsson.se (Per Ejeklint) writes:\n> \n> >Hm, maybe I'm missing something, but the Centris 650 has the '040 with FPU.\n> >At least the ones shipped here in Europe.\n> \n> You are indeed. The 4/80 model (shipped here) definitely does not have the\n> FPU. I own one; I know.\n\n\nNo, he's not missing anything.  You're right that some models of the 650 ship in\nthe USA without FPU or Ethernet.  Per Ejeklint is also right -- *all*, I repeat,\n*ALL* Centris 650's sold here in New Zealand and, I assume, Europe have the FPU\nand Ethernet.\n\nI know.  I bought a 650 4/80 and it has both FPU and Ethernet.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1241, "properties": {"category": "misc.forsale", "text": "From: am229@cleveland.Freenet.Edu (Terry S. Collins)\nSubject: SMARTCAM VERSION 7 FOR SALE AND 486 33DX\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 14\nNNTP-Posting-Host: slc4.ins.cwru.edu\n\n\n\nSMARTCAM VERSION 7 FOR SALE. Purchased in August 1992. Latest version!\nAlso willing to sell 486 33dx. 124mg hard drive. 17\" multi scan monitor.\n\npaid $11,000 for software and $2800 for computer. Also includes 1 yr maintanence\ncontract that can be updated every year for apx. $950 per year.\n\nMake offer.\n\nCall 1 800 940-7874\nor 216-941-7400\n\nask for Terry\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1242, "properties": {"category": "sci.med", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Great Post! (was Re: Candida (yeast) Bloom...) (VERY LONG)\nSummary: Warning, lots of words in typical Phlegmatic fashion\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 447\n\n\nGREAT post Martin.  Very informative, well-balanced, and humanitarian\nwithout neglecting the need for scientific rigor.\n\n\n(Cross-posted to alt.psychology.personality since some personality typing\nwill be discussed at the beginning - Note: I've set all followups to sci.med\nsince most of my comments are more sci.med oriented and I'm sure most of the\nreplies, if any, will be med-related.)\n\n\nIn article banschbach@vms.ocom.okstate.edu writes:\n\n>I can not believe the way this thread on candida(yeast) has progressed.\n>Steve Dyer and I have been exchanging words over the same topic in Sci. \n>Med. Nutrition when he displayed his typical reserve and attacked a woman \n>poster for being treated by a licenced physician for a disease that did \n>not exist.  Calling this physician a quack was reprehensible, Steve, and I \n>see that you and some of the others are doing it here as well.  \n\nThey are just responding in their natural way:  Hyper-Choleric Syndrome (HCS).\nOops, that is not a recognized \"illness\" in the psychological community,\nbetter not say that since it therefore must not, and never will, exist.  :^)\n\nActually, it is fascinating that a disproportionate number of physicians\nwill type out as NT (for those not familiar with the Myers-Briggs system,\njust e-mail me and I'll send a summary file to you).  In the general\npopulation, NT's comprise only about 12% of the population, but among\nphysicians it is much much higher (I don't know the exact percentage -\nany help here a.p.p.er's?)\n\nOne driving characteristic of an NT, especially an NTJ, is their obvious\ncholeric behavior (driver, type A, etc.) - the extreme emotional need to\ncontrol, to lead, and/or to be the best or the most competent.  If they are\nalso extroverted, they are best described as \"Field Marshalls\".  This trait\nis very valuable and essential in our society - we need people who want to\nlead, to strive to overcome the elements, to seek and thirst for knowledge,\nto raise the level of competency, etc.  The great successes in science and\ntechnology are in large part due to the vision (an N trait) and scientifically-\nminded approach (T trait) of the NT personality (of course, the other types\nand temperaments have their own positive contributions as well).  However,\nwhen the NT person has self-image challenges, the \"dark-side\" of this\npersonality type usually comes out, which should be obvious to all.\n\nA physician who is a strong NT and who has not learned to temper their\ntemperament will be extremely business-like (lack of empathy or feeling),\nand is very compelled to have total control over their patient (the patient\nmust be obedient to their diagnosis and prescription without question).  I've\nknown many M.D.'s of this temperament and suffice to say I don't oblige them\nwith a followup visit, no matter how competent I think they are (and they\nusually are very competent from a knowledge viewpoint since that is an\nextreme drive of theirs - to know the most, to know it all).\n\nMaybe we need more NF doctor's.  :^)\n\nEnough on this subject - let's move on to candida bloom.\n\n\n>Let me tell you who the quacks really are, these are the physicans who have \n>no idea how the human body interacts with it's environment and how that \n>balance can be altered by diet and antibiotics...  Could it just be\n>professional jealousy?  I couldn't help Elaine or Jon but somebody else did.\n\nYou've helped me already by your post.  Of course, I believe that I have\nbeen misdiagnosed on the net as suffering from 'anal retentivitis', but being\nthe phlegmatic I am, maybe I was just a little too harsh on a few people\nmyself in past posts.  Let's all try to raise the level of this discussion\nabove the level of anal effluent.\n\n\n>...Humans have all \n>kinds of different organisms living in the GI system (mouth, stomach, small \n>and large intestine), sinuses, vagina and on the skin.  These are \n>nonpathogenic because they do not cause disease in people unless the immune \n>system is compromised.  They are also called nonpathogens because unlike \n>the pathogenic organisms that cause human disease, they do not produce \n>toxins as they live out their merry existence in and on our body.  But any of \n>these organisms will be considered pathogenic if it manages to take up \n>residence within the body.  A poor mucus membrane barrier can let this \n>happen and vitamin A is mainly responsible for setting up this barrier.\n\nIn my well-described situation (in prior posts), I definitely was immune\nstressed.  Blood tests showed my vitamin A levels were very low.  My sinuses\nwere a mess - no doubt the mucosal lining and the cilia were heavily damaged.\nI also was on antibiotics 15 times in 4 years!  In the end, even two weeks\nof Ceftin did not work and I had confirmed diagnoses of a chronic bacterial\ninfection of the sinuses via cat-scans, mucus color (won't get into the\ndetails), and other symptoms.  Three very traditional ENT's made this\ndiagnosis (I did not have any cultures done, however, because of the\ndifficulty of doing this right and because my other symptoms clearly showed\na bacterial infection).  Enough of this background (provided to help you\nunderstand where I was when I make comments about my Sporanox anti-fungal\ntherapy below).\n\n\nThe first question I have is this.  Can fungus penetrate a little way into poor\nmucus membrane tissue, maybe via hyphae, thus causing symptoms, without being\nconsidered 'systemic' in the classic sense?  It is sort of an inbetween\ninfection.\n\n\n>Steve got real upset with Elaine's doctor because he was using anti-fungals \n>and vitamin A for her GI problems.  If Steve really understoood what \n>vitamin A does in the body, he would not(or at least should not) be calling \n>Elaine's doctor a quack.\n\nI was concerned, too, because of the toxicity of vitamin A.  My doctor, after\nmy blood tests, put me on 75,000 IU of vitamin A for one week only, then\ndropped it down to 25,000 IU for the next couple of weeks.  I also received\nzinc and other supplementation, since all of these interrelate in fairly\ncomplex ways as my doctor explained (he's one of those 'evil' orthomolecular\nspecialists).  I had a blood test three weeks later and vitamin A was normal,\nhe then stopped me on all vitamin A (except for some in a multi-vitamin)\nsupplement), and made sure that I maintain a 50,000 IU/day of beta carotene.\nCall me carrot face.  :^)\n\nHopefully, Elaine's doctor will take a similar, careful approach and to\nall supplements.  I'm even reevaluating some supplements I'm taking, for\nexample, niacin in fairly large dosages, 1 gram/day, which Steve Dyer had\ngood information about on sci.med.nutrition.  If niacin only has second-order\nimprovement in symptomatic relief of my sinus allergies, then it probably is\nnot worth taking such a large dose long-term and risking liver damage.\n\n\n>survives.  If it gets access to a lot of glucose, it blooms and over rides \n>the other organisms living with it in the sinuses, GI tract or vagina.  In \n\nThough I do now believe, based on my successful therapy with Sporanox, that\nI definitely had some excessive growth of fungus (unknown species) in my\nsinuses, I still want to ask the question:  have there been any studies that\ndemonstrate candida \"blooms\" in the sinuses with associated sinus irritation\n(sinusitis/rhinitis)?  (My sinus irritation reduced significantly after one\nweek of Sporanox and no other new treatments were implemented during this\ntime - I did not have any noticeable GI track problems before starting on\nSporanox, but some for a few days after which then went away - considered\nnormal).\n\nBTW, my doctor dug out one of his medical reference books (sorry, can't\nremember which one), and found an obscure comment dating back into the 1950's\nwhich stated that people can develop contained (non-lethal or non-serious)\naspergillis infestations (aspergiliosis) of the sinuses leading to sinus\ninflammation symptoms.  I'll have to dig out that reference again since it\nis relevant to this discussion.\n\n\n>some people do really develop a bad inflammatory process at the mucus \n>membrane or skin bloom site.  Whether this is an allergic like reaction to \n>the candida or not isn't certain.\n\nMy doctor tested me (I believe a RAST or RAST similar test) for allergic\nresponse to specificially Candida albicans, and I showed a strong positive.\nAnother question, would everybody show the same strong positive so this test\nis essentially useless?  And, assuming it is true that Candida can grow\npart-way into the mucus membrane tissue, and the concentration exceeds a \nthreshold amount, could not a person who tests as having an allergy to\nCandida definitely develop allergic symptoms, such as mucus membrane\nirritation due to the body's allergic response?  As I said in an earlier post,\none does not need to be a rocket scientist, or have a M.D. degree or a \nPh.D. in biochemistry to see the plausibility of this hypothesis.\n\nBTW, and I'll repost this again.  Dr. Ivker, in his book, \"Sinus Survival\",\nhas routinely given, before anything else, Nizoral (a pre-Sporanox systemic\nanti-fungal, not as safe and not as good as Sporanox) to his new chronic\nsinusitis patients IF they have been on antibiotics four or more times in\nthe last two years.  He claims that out of 2000 or so patients, well over\n90% notice some relief of sinus inflammation and other symptoms, but it\ndoesn't cure it by any means, implying the so-called yeast/fungus infection\nis not the primary cause, but a later complication.  He's also found that\nnystatin, whether taken internally, or put into a sinus spray, does not help.\n\nThis implies (of course assuming that excessive yeast/fungus bloom is\naggravating the sinus inflammation) that the yeast/fungus has grown partway\ninto the tissue since nystatin will not kill yeast/fungus other than by\ndirect contact - it is not absorbed into the blood stream.  Again, I admit,\nlots of 'ifs', and 'implies', which doesn't please the hard-core NT who\nhas to have the double-blind study or it's a non-issue, but one has to start\nwith some plausible hypothesis/explanation, a strawman, if you will.\n\n\n>If it's internal, only symptoms can be used and these symptoms are pretty \n>nondescript.  \n\nThis brings up an interesting observation used by those who will deny\nand reject any and all aspects of the 'yeast hypothesis' until the\nappropriate studies are done.  And that is if you can't observe or culture\nthe yeast \"bloom\" in the gut or sinus, then there's no way to diagnose or\neven recognize the disease.  And I know they realize that it is virtually\nimpossible to test for candida overbloom in any part of the body that cannot\nbe easily observed since candida is everywhere in the body.\n\nIt's a real Catch-22.\n\nAnother Catch-22:  Those who totally reject the 'yeast hypothesis' say that\nno studies have been done (actually studies have been done, but if it's not\nup to a certain standard then it is, from their perspective, a non-study which\nshould not even be considered).  I agree that the appropriate studies should\nbe done, and that will take big $ to do it right.  However, in order to\nconvince the funding agencies in these austere times to open their wallets,\nyou literally have to give them evidence, and the only acceptable evidence to\ncompete with other proposals is paradoxically to do almost the exact study\nneeded funding.  That is, you have to do 90% of the study before you even get\nfunding (as a scientist at a National Lab, I'm very aware of this for the\nsmaller funded projects).  I'm afraid that even if Dr. Ivker and 100 other\ndoctors got together, pooled their practice's case histories and anecdotes\ninto a compelling picture, and approach the funding agencies, they would get\nnowhere, even if they were able to publish their statistical results.\n\nIt is obvious from the comments by some of the doctors here is that they have\n*decided* excessive yeast colonization in the gut or sinuses leading to\nnoticeable non-lethal symptoms does not exist, and is not even a tenable\nhypothesis, so any amount of case histories or compiled anecdotal evidence\nto the contrary will never change their mind, and not only that, they would\nalso oppose the needed studies because in their minds it's a done issue - \nexcessive yeast growth leading to diffuse allergic symptoms does not, will\nnot, and cannot exist.  Period.  Kind of tough to dialog with those who hold\nsuch a viewpoint.  Kind of reminds me of Lister...\n\n\n>Candida is kept in check in most people by the normal bacterial flora in \n>the sinuses, the GI tract(mouth, stomach and intestines) and in the \n>vaginal tract which compete with it for food.  The human immune system \n>ususally does not bother itself with these(nonpathogenic organisms) unless \n>they broach the mucus membrane \"barrier\".  If they do, an inflammatory \n>response will be set up.  Most Americans are not getting enough vitamin A \n>from their diets.  About 30% of all American's die with less Vitamin A than \n>they were born with(U.S. autopsy studies).  While this low level of vitamin \n>A does not cause pathology(blindness) it does impair the mucus membrane \n>barrier system.  This would then be a predisposing factor for a strong \n>inflammatory response after a candida bloom.  \n\nAren't there also other nutrients necessary to the proper working of the\nsinus mucus membranes and cilia?\n\n\n>While diabetics can suffer from a candida \"bloom\" the  most common cause of \n>this type of bloom is the use of broad spectrum antibiotics which \n>knock down many different kinds of bacteria in the body and remove the main \n>competition for candida as far as food is concerned.  While drugs are \n>available to handle candida, many patients find that their doctor will not \n>use them unless there is evidence of a systemic infection.  The toxicity of \n>the anti-fungal drugs does warrant some caution.  But if the GI or sinus \n>inflammation is suspected to be candida(and recent use of a broad spectrum \n>antibiotic is the smoking gun), then anti-fungal use should be approrpriate \n>just as the anti-fungal creams are an appropriate treatment for recurring \n>vaginal yeast infections, in spite of what Mr. Steve Dyer says.\n\nAgain, the evidence from mycological studies indicate that many yeast/fungus\nspecies can grow hyphae (\"roots\") into deep tissue, similar to mold growing\nin bread.  You can continue to kill the surface, such as nystatin does, but\nyou can't kill that which is deeper in the tissue without using a systemic\nanti-fungal such as itraconazole (Sporanox) or some of the older ones such\nas Nizoral which are more toxic and not as effective.  This is why, as has\nbeen pointed out by recent studies (sent to me by a doctor I've been in\ne-mail contact with - thanks), that nystatin is not effective in the long-\nterm treatment of GI tract \"candidiasis\".  It's like trying to weed a garden\nby cutting off what's above the ground but leaving the roots ready to come\nout again once you walk away.\n\nThe $60000 question is whether a contained candida \"bloom\" can partially\ngrow into tissue through the mucus membranes, causing some types of symptoms\nin susceptible people (e.g., allergy), without becoming \"systemic\" in the\nclassical sense of the word - something in between strictly an excessive\nbloom not causing any problems and the full-blown systemic infection that\nis potentially lethal.\n\n\n>In the GI system, the ano-rectal region seems to be a particularly good \n>reservoir for candida and the use of pantyhose by many women creates a very \n>favorable environment around the rectum for transfer(through moisture and \n>humidity) of candida to the vaginal tract.  One of the most effctive ways to \n>minimmize this transfer is to wear undyed cotton underwear.  \n\nAlso, if one is an 'anal retentive', like I've been diagnosed in a prior\npost, that can also provide more sites for excessive candida growth.  ;^)\n\n\n>If the bloom occurs in the anal area, the burning, swelling, pain and even \n>blood discharge make many patients think that they have hemorroids.  If the \n>bloom manages to move further up the GI tract, very diffuse symptomatology \n>occurs(abdominal discomfort and blood in the stool).  This positive stool \n>for occult blood is what sent Elaine to her family doctor in the first \n>place.  After extensive testing, he told her that there was nothing wrong \n>but her gut still hurt.  On to another doctor, and so on.  Richard Kaplan \n>has told me throiugh e-mail that he considers occult blood tests in stool \n>specimens to be a waste of time and money because of the very large number of \n>false positives(candida blooms guys?).  If my gut hurt me on a constant \n>basis, I would want it fixed.  Yes it's nice to know that I don't have \n>colon cancer but what then is causing my distress?  When I finally find a \n>doctor who treats me and gets me 90% better, Steve Dyer calls him a quack.\n\nAs I've said in private e-mail, there are flaws in our current medical system\nthat make it difficult or even impossible for a physician to attempt\nalternative therapies AFTER the approved/proven/accepted therapies don't work.\nFor example, I went to three ENT's, who all said that I will just have to live\nwith my acute/chronic sinusitis after the ab's failed (they did mention\nsurgery to open up the ostia, but my ostia weren't plugged and it would not\nget to the root cause of my condition).  After three months of aggressive and\nfairly non-standard therapy (Sporanox, body nutrient level monitoring and\nequalization, vitamin C, lentinen, echinacea, etc.), my health has vastly\nimproved to where I was two years ago, before my health greatly deteriorated.\nOf course, skeptics would say that maybe if I did nothing I would have\nimproved anyway, but that view is stretching things quite far because of the\nexperience of the three ENT's I saw who said that I'd just have to \"live with\nit\".  I'm confident I will reach what one could call a total \"cure\".  The\nanti-fungal program I undertook was one necessary step in that direction\nbecause of my overuse of ab's for the last four years.  (Note:  for those\nhaving sinus problems, may I suggest the book by Dr. Ivker I mention above.\nBe sure to get the revised edition.)\n\n\n>...I have often wondered what an M.D. with chronic \n>GI distress or sinus problems would do about the problem that he tells his \n>patients is a non-existent syndrome.\n\nDr. Ivker started off having chronic and severe sinus problems, and his\nvisits to several ENT's totally floored him when they said \"you'll just have\nto live with it\".  He spent several years trying everything - standard and\nnon-standard, until he was essentially cured of chronic sinusitis.  He now\nshares his approach in his book and I can honestly say that I am on the road\nto recovery following some parts of it.  His one recommendation to take a\nsystemic anti-fungal at the beginning of treatment IF you have a history of\nanti-biotic overuse has been proven to him time and time again in his own\npractice.  I'm sure if I commented to him of the hard-core beliefs of the anti-\n\"yeast hypothesis\" posters that he would have definite things to say, such as,\n\"it's worked wonders for me in almost two thousand cases\", to put it mildly.\nI also would not be surprised if he would say that they are the ones violating\ntheir moral obligations to help the patient.\n\nMaybe those doctors who are reading this who have a practice and are\nconfronted by a patient having symptoms that could be due to the \"hypothetical\nyeast overgrowth\" (e.g., they fit some of the profiles the pro-yeast people\nhave identified), should consider anti-fungal therapy IF all other avenues\nhave been exhausted.  Remember, theory and practice are two different things -\nyou cannot have one without the other, they are synergistic.  If a doctor does\nsomething non-standard yet produces noticeable symptomatic relief in over a\nthousand of his patients, shouldn't you at least sit up and take notice?\nMaybe you ought to trust what he says and begin hypothesizing why it works\ninstead of why it shouldn't work.  I'm afraid a lot of doctors have become\nso enamored with \"scientific correctness\" that they are ignoring the patients\nthey have sworn to help.  You have to do both;  both have to be balanced, which\nwe don't see from some of the posters to this group.  There comes a point when\nyou just have to use a little common sense, and maybe an empirical approach\n(such as trying a good systemic anti-fungal such as Sporanox) after having\nexhausted all the other avenues.  I was one of those who the traditional\nmedical establishment was not able to help, so I did the natural thing:  I\nwent to a couple of doctor's who are (somewhat) outside this establishment,\nand as a result I have found significant relief.\n\nWould it not be better if the traditional medical establishment can set up\nsome kind of mechanism where any doctor, without fear of being sued or having\nhis license pulled, can try experimental and unproven (beyond a doubt)\ntherapies for his/her patients that finally reach the point where all the\naccepted therapies are ineffective?  I'd like to hear a doctor tell me:\n\"well, I've tried all the therapies that are approved and accepted in this\ncountry, and since they clearly don't work for you, I now have the authority\nto use experimental, unproven techniques that seem to have helped others.  I\ncan't promise anything, and there are some risks.  You will have to sign\nsomething saying you understand the experimental and possibly risky nature of\nthese unproven therapies, and I'll have to register your case at the State\nBoard.\"  Anyway, if my ENT had suggested this to me, I would've jumped on this\npronto instead of going to one of those doctors who, for either altruistic\nreasons, or for greed, is practicing these alternative therapies with much\nrisk to him/her (risk meaning losing their license) and possibly to the\npatient.  Such a mechanism would keep control in the more mainstream medicine,\nand also provide valuable data that would essentially be free.  It also would\nbe morally and ethically better than the current system by showing the\ncompassion of the medical community to the patient - that it's doing everything\nit can within reason to help the patient.  It is the lack of such a mechanism\nthat is leading large numbers of people to try alternative therapies, some of\nwhich seem to work (like my case), and others of which will never work at all\n(true quackery).\n\nI better get off my soapbox before this post reaches 500K in size.\n\n\n>If taken orally, it can also become a major bacteria in the gut.  Through \n>aresol sprays, it has also been used to innoculate the sinus membranes.\n>But before this innoculation occurs, the mucus membrane barrier system \n>needs to be strengthened.  This is accomplished by vitamin A, vitamin C and \n>some of the B-complex vitamins.  Diet surveys repeatedly show that Americans \n>are not getting enough B6 and folate.  These are probably the segement of \n>the population that will have the greatest problem with this non-existent \n>disorder(candida blooms after antibiotic therapy).\n\nWhat dosage of B6 appears to be necessary to promote the healing and proper\nworking of the mucos memebranes?\n\n\n>Some of the above material was obtained from \"Natural Healing\" by Mark \n>Bricklin, Published by Rodale press, as well as notes from my human \n>nutrition course.  I will be posting a discussion of vitamin A  sometime in \n>the future, along with reference citings to point out the extremely \n>important role that vitamin A plays in the mucus membrane defense system in \n>the body and why vitamin A should be effective in dealing with candida \n>blooms.  Another effective dietary treatment is to restrict carbohydrate \n>intake during the treatment phase, this is especially important if the GI \n>system is involved.  If candida can not get glucose, it's not going to out \n>grow the bacteria and you then give bacteria, which can use amino acids and \n>fatty acids for energy, a chance to take over and keep the candida in check \n>once carbohydrate is returned to the gut.\n\nI'd like to see the role of complex carbohydrates, such as starch.\n\n\n>If Steve and some of the other nay-sayers want to jump all over this post, \n>fine.  I jumped all over Steve in Sci. Med. Nutrition because he verbably \n>accosted a poster who was seeking advice about her doctor's use of vitamin \n>A and anti-fungals for a candida bloom in her gut.  People seeking advice \n>from newsnet should not be treated this way.  Those of us giving of our \n>time and knowledge can slug it out to our heart's content.  If you saved \n>your venom for me Steve and left the helpless posters who are timidly \n>seeking help alone, I wouldn't have a problem with your behavior. \n\nBrave soul you are.  The venom on Usenet can be quite toxic unless one\ndevelops an immunity to it.  One year ago, my phlegmatic self would have\nbacked down right away from an attack of cholericitis.  But my immune\nsystem, and my computer system, have been hardened from gradual\ndesensitization.  I now kind of like being called \"anal retentive\" - it has\na nice ring to it.  I also was very impressed by how it just flowed into the\npost - truly classic, worthy of a blue (or maybe brown) ribbon.  I might\neven cross-post it to alt.best.of.internet.  Hmmm...\n\n\n>Martin Banschbach, Ph.D.\n>Professor of Biochemistry and Chairman\n>Department of Biochemistry and Microbiology\n>OSU College of Osteopathic Medicine\n\nThanks again for a great and informative post.  I hope others who have\nresearched this area and are lurking in the background will post their\nthoughts as well, no matter their views on this subject.\n\nJon Noring\n\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1243, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: skcgoh@tartarus.uwa.edu.au (Shaw Goh)\nSubject: Re: How is a Loopback connector made?\nOrganization: The University of Western Australia\nLines: 12\nNNTP-Posting-Host: tartarus.uwa.edu.au\nX-Newsreader: Tin 1.1 PL5\n\n35002_4401@uwovax.uwo.ca wrote:\n: I need to know the Pins to connect to make a loopback connector for a serial\n: port so I can build one.  The loopback connector is used to test the \n: serial port.\n: \n: Thanks for any help.\n: \n: \n: Steve\n: \nMe Too!!!!!!!\nskcgoh@tartarus.uwa.edu.au\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1244, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: burge@qdeck.com (Bill Burge)\nSubject: Re: DOS 6.0\nOrganization: Quarterdeck Office Systems, Santa Monica CA\nDistribution: na\nLines: 22\n\nIn article <4903@eastman.UUCP> lrxi00@icts01.Kodak.COM (James Nonnemacher) writes:\n>Is there enough experience out in netland with DOS 6.0 that anyone could make some comments on whether\n>or not it's a worthwhile upgrade? Any problems with hardware compatibility or any bugs been found?\n>\n>One thing I wonder about is the disk doubler included with DOS 6.0. Is there any possiblity that if\n>the disk double .exe file gets corrupted your disk would be unreadable? How would one recover from\n>such an event?\n\nThe file that would be a problem is DBLSPACE.BIN, not .EXE.\n\n                                   /\\_/\\   ARF!!\n                                   (0 0)\n+==========================----oOO--(_)--OOo----============================+\n\\ Bill Burge  burge@qdeck.com      /     ^--- \"and his dog Spot\"            /\n\\ Problem Resolution & Prevention  \\   BBS - (310) 314-3227 (N-8-1)         /\n\\ Quarterdeck Office Systems       /   FAX - (310) 314-3217                 /\n\\                                  \\   QFAX- (310) 314-3214                 /\n\\ Tech Support - support@qdeck.com /    (This is an automated \"request      /\n\\ Gen'l Info - info@qdeck.com      \\      FAX\" system, call it from the     /\n\\ CompuServe - GO QUARTERDECK      /      handset on your FAX)              /\n+==================================+========================================+\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1245, "properties": {"category": "comp.graphics", "text": "From: weilej@cary115.its.rpi.edu (Jason Lee Weiler)\nSubject: Re: need a viewer for gl files\nNntp-Posting-Host: cary115.its.rpi.edu\nReply-To: weilej@rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY.\nLines: 17\n\nIn article <1qu36i$kh7@dux.dundee.ac.uk>, dwestner@cardhu.mcs.dundee.ac.uk (Dominik Westner) writes:\n|> Hi, \n|> \n|> the subject says it all. Is there a PD viewer for gl files (for X)?\n|> \n|> Thanks\n|> \n|> \n|> Dominik\n|> \n\nDominik,\n\n\tHave you tried xgrasp?  It's out there on several ftp sites.(not sure which, but archie can find it, I'm sure.)  It works ok but it lacks an interface.\n\n-Jason Weiler\n<weilej@rpi.edu>\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1246, "properties": {"category": "comp.windows.x", "text": "From: rainer@sun3.eeam.elin.co.at (Rainer Hochreiter)\nSubject: X-server multi screen\nOrganization: ELIN Energeanwendung Ges.m.b.H\nLines: 24\nNNTP-Posting-Host: sun3.eeam.elin.co.at\nX-Newsreader: TIN [version 1.1 PL9]\n\nHi Xperts, some simple questions for you:\n\nI've seen a lot of different terms, which seem to mean the same thing.\nWho can give an exact definition what these terms mean:\n\n\t-) multi-screen\n\t-) multi-headed\n\t-) multi-display\n\t-) X-Server zaphod mode\n\nIs there a limit how many screens/displays a single server can handle\n(in an articel a read something about an upper limit of 12) ?\n\nHow is the capability called, if I want to move the cursor from one\nscreen/display to another.\n\nAny hints welcome.\n\nThanks, rainer.\n-- \nRainer Hochreiter                | Telephone: +43 (1) 89100 / 3961\nELIN-Energieanwendung GesmbH     | Telefax  : +43 (1) 89100 / 3387\nPenzingerstr. 76                 |\nA-1141 Wien, Austria/Europe      | E-mail   : rainer@elin.co.at\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1247, "properties": {"category": "talk.politics.guns", "text": "From: Minh Lang <minh@inst-sun1.jpl.nasa.gov>\nSubject: Re: Gov't break-ins (Re: 60 minutes)\nOrganization: Jet Propulsion Laboratory\nLines: 23\nDistribution: world\nNNTP-Posting-Host: 128.149.109.37\nX-UserAgent: Nuntius v1.1.1d17\nX-XXDate: Mon, 5 Apr 93 16:17:37 GMT\n\nIn article <1993Apr5.155733.114@pasadena-dc.bofa.com> ,\nfranceschi@pasadena-dc.bofa.com writes:\n> In Viet Nam, Lt Calley was tried and convicted of murder because his\n> troops, in a war setting, deliberately killed innocent people. It is\ntime\n> that the domestic law enforcement agencies in this country adhere to\n> standards at least as moral as the military's.\n\nNo, Lt Calley was later acquitted. His troops killed 400-500\npeople, including kids, elderly and women... I sure don't want\nto see the domestic law enforcement agencies in this country\nadhere to those \"military standards\"... If they did, we're\nall in big trouble...(The My Lai massacre was covered up\nby high-ranking officials and ALL who were involved were\nACQUITTED).\n\n  == Minh ==\n\n+------------------------------------------------------------+\n Minh Lang, Software Engineer  - Jet Propulsion Laboratory\n Instrumentation Systems Group - Instrumentation section 375\n Note:  My employer has nothing to do with what I said here...\n+------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1248, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Ignorance is BLISS, was Is it good that Jesus died?\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\n\t<1993Apr17.010734.23670@organpipe.uug.arizona.edu> \n\t<sandvik-170493104859@sandvik-kent.apple.com>\nLines: 7\n\nIn article <sandvik-170493104859@sandvik-kent.apple.com> \nsandvik@newton.apple.com (Kent Sandvik) writes:\n>Ignorance is not bliss!\n\nIgnorance is STRENGTH!\n\nHelp spread the TRUTH of IGNORANCE!\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1249, "properties": {"category": "talk.politics.mideast", "text": "From: steven@surya.cs.ucla.edu (Steven Berson)\nSubject: Re: Ten questions about Israel\nNntp-Posting-Host: surya.cs.ucla.edu\nOrganization: UCLA, Computer Science Department\nLines: 25\n\ncpr@igc.apc.org (Center for Policy Research) writes:\n\n>From: Center for Policy Research <cpr>\n>Subject: Ten questions about Israel\n\n>I would be thankful if any of you who live in Israel could help to\n>provide\n> accurate answers to the following specific questions. These are\n>indeed provocative questions but they are asked time and again by\n>people around me.\n\n[ ... questions omitted ... ]\n\n>Elias Davidsson Iceland email:   elias@ismennt.is\n\nFunny you should mention it, but I've heard these questions time\nand again, also.  Why just the other day, a couple neo-Nazis by\nUCLA were passing out literature like this.\nCheers,\nSteve\n-- \n=========================================================================\nSteven Berson           UCLA Computer Science Department   (310) 825-3189\nsteven@cs.ucla.edu      Los Angeles, CA 90024-1596\n=========================================================================\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1250, "properties": {"category": "talk.politics.misc", "text": "From: deane@binah.cc.brandeis.edu (David Matthew Deane)\nSubject: Re: PUBLIC HEARINGS on Ballot Access, Vote Fraud and Other Issues\nReply-To: deane@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 11\n\nHmmm...intersting (and long) message, but TWICE? Well, I don't care for\nlibertarianism, but that is a philisophical disagreement, not a tactical\none. Reform of existing laws would be an awfully good idea. You wouldn't\nbelieve some of the outrageous things the guardians of our two party \nsystem do to shut out dissent. \n============================================================================\nDavid Matthew Deane (deane@binah.cc.brandeis.edu)\n     \nWhen the words fold open,\nit means the death of doors;\neven casement windows sense the danger.   (Amon Liner)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1251, "properties": {"category": "talk.politics.misc", "text": "From: gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy)\nSubject: Re: The Role of the National News Media in Inflaming Passions\nOrganization: University of Virginia\nLines: 25\n\nTheodore A. Kaldis writes:\n#> Ah, I know women who wear miniskirts without wearing underwear, and\n#> they are not prostitutes.\n#No, I suppose they must be sluts.\n\nNope. They both are very nice women, whom I'm good friends with. \n\nOr do you think its ok to rape anyone when you don't like the way they\ndress?\n\n#> Gee, Both Clayton and Kaldis engaging in ad hominem arguments.\n#Where?\n\nCalling someone names, as you did. Are you ignorant of what an ad\nhominem argument is?\n\n#You provided absolutely no evidence, chump.\n\nI provided a quote from the judge. What else do you want?\n\n--\n-Greg Hennessy, University of Virginia\n USPS Mail:     Astronomy Department, Charlottesville, VA 22903-2475 USA\n Internet:      gsh7w@virginia.edu  \n UUCP:\t\t...!uunet!virginia!gsh7w\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1252, "properties": {"category": "sci.crypt", "text": "From: peter@memex.co.uk (Peter Ilieve)\nSubject: Re: Clipper Chip and crypto key-escrow\nOrganization: Memex Information Systems Ltd, East Kilbrde, Scotland\nLines: 70\n\nExcerpts from the Clipper announcement, with some questions:\n\n>     --   the ability of authorized officials to access telephone\n>          calls and data, under proper court or other legal\n>          order, when necessary to protect our citizens;\n\n>Q:   Suppose a law enforcement agency is conducting a wiretap on\n>     a drug smuggling ring and intercepts a conversation\n>     encrypted using the device.  What would they have to do to\n>     decipher the message?\n>\n>A:   They would have to obtain legal authorization, normally a\n>     court order, to do the wiretap in the first place.  They\n>     would then present documentation of this authorization to\n>     the two entities responsible for safeguarding the keys and\n>     obtain the keys for the device being used by the drug\n>     smugglers.  The key is split into two parts, which are\n>     stored separately in order to ensure the security of the key\n>     escrow system.\n\nIn these two sections the phrases `or other legal order' and `normally a\ncourt order' imply there is some other way or ways of doing a legal\nwiretap. What is/are these? How do they affect the way people who trust the\nsystem of court orders to protect them feel about this escrow system?\n\nThe second section shows the sequence of events.\nThe law enforcer, armed with his warrant, attaches his headphones to the\nline with his croc-clips (remember, these are the folk who couldn't cope\nwith digital telephony) and hears a load of modem-like tones (we are\ntalking analogue telephony here).\nWhat next? What modulation scheme do these Clipper boxes use?\nIs it possible to record the tones for use after the keys are obtained?\nI thought it was quite difficult to record a modem session at some\nintermediate point on the line. Maybe they have taken a crash course\nin data comms and have a unit that demodulates the tones and stores the\ndigital stream for decryption later. This would still suffer from the\nsame problems as trying to record the tones as the demodulator would not\nbe at one end of the line. If calls can't be recorded for decryption later\nit would be quite easy to foil the system by buying lots of Clipper units\n(these are supposed to be cheap mass market items) and using them in turn.\n\nHow tolerant is the modulation scheme to errors? These things are proposed\nfor use by US corporations to secure their foreign offices, where phone\nline quality may well be poor. It seems hard enough to me to get digitised\nspeech of any quality into something a modem can handle without having to\nadd lots of error correction to keep the decryption in sync.\n\n>Q:   Will the devices be exportable?  Will other devices that use\n>     the government hardware?\n>\n>A:   Voice encryption devices are subject to export control\n>     requirements.  ...  One of the\n>     attractions of this technology is the protection it can give\n>     to U.S. companies operating at home and abroad.  With this\n>     in mind, we expect export licenses will be granted on a\n>     case-by-case basis for U.S. companies seeking to use these\n>     devices to secure their own communications abroad.\n>     ...\n\nThis raises an intersting question in the UK. Here it is illegal to connect\nanything to a public telecomms network without it being approved by a body\ncalled BABT. It has been stated, either here or in the uk.telecom group,\nthat they will not approve equipment that does encryption. I don't know\nif this is true or not, but this would make a good test case.\nPerhaps `friendly' countries, and the UK may still qualify, will get\nto fish in the escrowed key pool as well.\n\n\n\t\tPeter Ilieve\t\tpeter@memex.co.uk\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1253, "properties": {"category": "sci.space", "text": "From: C.H.A.Wong@bradford.ac.uk (CHA WONG)\nSubject: How can you see the launch of the Space Shuttle ?\nOrganization: University of Bradford, UK\nLines: 28\nX-Newsreader: TIN [version 1.1 PL9]\n\n\nSorry for asking a question that's not entirely based on the\ntechnical aspects of space, but I couldn't find the\nanswer on the FAQs !\n\nI'm currently in the UK, which makes seeing a Space Shuttle\nlaunch a little difficult.....\n\nHowever, I have been selected to be an exchange student\nat Louisiana State Uni. from August, and I am absolutely\ndetermined to get to see a Space Shuttle launch sometime\nduring the year at which I will be in America.\n\nI hear there's a bit of a long mailing list, so if someone\ncan tell me how to get tickets and where to get them from, then\nplease E-mail me !\n\nThanks very much for your patience....\n\n(And if anyone else wants to know, tell me and I'll summarize\nfor you - just to save all those poor people who have to\npay for their links !)\n-- \n===============================    April is the cruellest month\nAndrew Wong                    \\   Mixing memory and desire\n-----x-----                     \\\nE-mail:C.H.A.Wong@bradford.ac.uk \\ T.S.Eliot - The Wasteland 1918\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1254, "properties": {"category": "misc.forsale", "text": "From: Mike Diack <mike-d@staff.tc.umn.edu>\nSubject: NuBus NTSC Genlock card f/sale\nX-Xxdate: Sat, 17 Apr 93 02:54:45 GMT\nNntp-Posting-Host: dialup-slip-1-97.gw.umn.edu\nOrganization: persian cat & carpet co.\nX-Useragent: Nuntius v1.1.1d7\nLines: 5\n\n\"Computer Friends\" nubus card - good for doing graphics overlays on\nyour videos etc. $275 with apple 8 bit vid card, $225 without. Wont\nsell vid card separately. UPS (U pay shipping).\ncheers\nMike.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1255, "properties": {"category": "sci.electronics", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: HELP: MC146818A Real Time Clock Standby Mode\nOrganization: U of Toronto Zoology\nLines: 20\n\nIn article <1r0b69INN5ct@flash.pax.tpa.com.au> mgregory@flash.pax.tpa.com.au (Martin John Gregory) writes:\n>I am having trouble obtaining the specified standby current drain from\n>a MC146818A Real Time Clock...\n>lowest current drain I can acheive at 3.7V Vcc is 150uA.  This is\n>three times the specified MAXIMUM...\n>1) Made sure that RESET/ is asserted for Trlh after powerup, and AS is\n>   low during this time.\n>2) Made sure that there is a cycle on AS after the negation of RD/ or\n>   WR/ during which STBY/ was asserted...\n\nAre any of the inputs to the chip coming from TTL?  Standby-drain specs\nfor CMOS chips typically apply only if inputs are pulled all the way down\nto zero or all the way up to Vcc.  TTL isn't good at doing the former and\nit won't do the latter at all without help from pullup resistors.  This\nsort of thing can easily multiply power consumption by a considerable\nfactor, because the CMOS transistors that are supposed to be OFF aren't\nall the way hard OFF.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1256, "properties": {"category": "soc.religion.christian", "text": "From: halsall@murray.fordham.edu (Paul Halsall)\nSubject: Weirdness of Early Christians\nReply-To: halsall@murray.fordham.edu\nOrganization: J. Random Misconfigured Site\nLines: 76\n\n\n\tI am a good Catholic boy. A convert no less, attracted by the\nrational tradition [Aquinas et al] and the emotional authenticity\n[in comp. with the faddishness of Anglicanism] to Roman Catholicism. I\nnever had much time for the pope - or any other heirarchs - but I did, and\ndo, believe in the sacremental system. I always felt quite happy to\nlook down my nose at those such as John Emery [a few posts back] who\nhad to engage in circuitous textual arguments to prove their faith, entirely\noblivious to the fact that a dozen other faiths can do the same [with\nmiracles too], and that since their arguments depend on the belief in the\nBible as God's sole revelation, it was not very good logic to argue\nthat the Bible proved God. No, I was happy to accept the CHURCH as God's\nrevelation. It was the Church after all that existed before the Bible, the\nChurch that choose [under grace of course] the canon of scripture. Protestant\nludicrosity, I thought, was shown by Protestants breathtaking acceptance\nof Luther's right to reject a dozen or so books he disliked.\n\tBut recently I read Peter Brown's _Body and Society_. It is very\nwell researched, and well written. But is raises some very upsetting\nquestions. The early Christians were weird - even more so than today's\ncarzy fundies. They had odd views on sex, odder views on the body, \ntotally ludicrous views about demons, and distinctly uncharitable\nviews about other human beings. \n\tnow the question is this: were the first Christians just as\nweird, but we've got used to them, or did the pristine \"Fall of the\nChurch\" happen within one generation. It certainly did'nt have to\nwait until the Triumph of the Church under Constantine. If so,\nwha does  this say about God's promise to always support the Church.\nIt's no use throwing the usual Protestant pieties about the Church\nnot being an organization at me. It's a community or it is nothing,\nand it was the early communities that were weird. The institional\nchurch was a model of sanity by comparison.\n\tI would be interested in serious Catholic and Orthodox responses to\nthis entirely serious issue. I'm not sure it is an issue for Protestants\nwith their \"soul alone with Jesus\" approach, but for we who see the\n\"ecclesia\" as a \"koinoia\" over time and space, the weird early\nChristians are a problem.\n\n[This is an exaggeration of the Protestant view.  Many Protestants\nhave a strong appreciation for the role of the Church.  \"The soul\nalone with God\" is certainly important for Protestants, but it's by no\nmeans the whole story.\n\nI have read the sort of history you talk about.  As you point out,\nProtestants don't have quite the same problem you do, because we\nbelieve that the church had a Fall at some point.  However Protestant\nmythology typically places the Fall around the time of Constantine (or\nmore likely, regard it as happening in a sort of cumulative fashion,\nstarting from Constantine but getting worse as the Pope accumulated\npower during the medieval period.)  The consequences of having it\nearlier are somewhat worrisome even to us.  Most Protestants accept\nthe theological results of the early ecumenical councils, including\nsuch items as the Trinity and Incarnation.  Indeed in the works of\nReformers such as Luther and Calvin, you'll find Church Fathers such\nas Augustine quoted all the time.  I think you'll find many\nProtestants resistant to the idea that the Early Church as a whole was\n\"wierd\".  (There is an additional problem for Protestants that I don't\nmuch want to talk about in this context, since it's been looked at\nrecently -- that's the question of whether one can really think of\nAugustine and other Fathers as being proto-Protestants.  Their views\non Mary, the authority of the Pope, etc, are not entirely congenial to\nProtestant thought.)\n\nOne thing that somewhat worries me is a question of methodology.\nThere are certainly plenty of wierd people in the early church.  What\nconcerns me is that they may be overrepresented in what we see.  We\nsee every Christian who courted martyrdom.  But I think there's good\nreason to believe that most ordinary Christians were more prudent than\nthat.  We see the heroic virgins.  But I think there's good reason to\nthink that many Christians were happily married.  I can't help\nsuspecting that the early church had the same range of wierdos and\nsane people that we do now.  I think there's also a certain level of\n\"revisionism\" active in history at the moment.  I don't mean that\nthey're manufacturing things out of whole cloth.  But don't you think\nthere might be a tendency to emphasize the novel?\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1257, "properties": {"category": "sci.med", "text": "From: fulk@cs.rochester.edu (Mark Fulk)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: University of Rochester\nDistribution: inet\n\nIn article <C5JDuo.K13@unx.sas.com> sasghm@theseus.unx.sas.com (Gary Merrill) writes:\n>Of course we can't hope (currently at least) to explain how or why\n>Kekule had the daydream of snakes in the fire biting their tails.\n>Surely it wasn't the *only* daydream he had.  What was special about\n>*this* one?  Could it have had something to do with a perceived\n>*analogy* between the geometry of the snakes and problems concerning\n>geometry of molecules?  Is such analogical reasoning \"extra-scientific\"?\n>Or is it rather at the very heart of science (Perice's notion of abduction,\n>the use of models within and across disciplines)?  Upon close examination,\n>is there a non-rational mystical leap taking place, or is it perhaps\n>closer to a formal (though often incomplete) analogy or model?\n\nI feel the need to repeat myself: Kekule's dream is a rather bad example\nof much of anything.  Read Root-Bernstein's book on the history of the\nbenzene ring.\n-- \nMark A. Fulk\t\t\tUniversity of Rochester\nComputer Science Department\tfulk@cs.rochester.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1258, "properties": {"category": "talk.religion.misc", "text": "From: nyikos@math.scarolina.edu (Peter Nyikos)\nSubject: Re: Spreading Christianity (Re: Christian Extremist Kills Doctor)\nOrganization: USC  Department of Computer Science\nLines: 24\n\nI addressed most of the key issues in this very long (284 lines) post\nby Dean Kaflowitz in two posts yesterday.  The first was made into the\ntitle post of a new thread, \"Is Dean Kaflowitz terminally irony-impaired?\"\nand the second, more serious one appeared along the thread\n\n\"A Chaney Post, and a Challenge, reissued and revised\"\n\nboth only in talk.abortion, but I am posting its contents into\ntalk.religion.misc as soon as I exit here.\n\nThis should be enough for us to thrash out for the next week or so.  The\nsecond post really grapples with the main bones of contention between us.\nThe first is more lighthearted and tells about such things as \nKaflowitzDebatingPoints [tm], which he continues to rack up on both\ntalk.abortion and talk.religion.misc, while setting follow-ups to \ntalk.abortion alone.  His lame excuse for the latter policy is that\nhe gets a prompt as to where to set follow-ups, and does not follow\ntalk.religion.misc much; this suggests that he is being hypocritical in not\nalso setting his Newsgroups line to talk.abortion alone.\n\nPeter Nyikos\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1259, "properties": {"category": "sci.crypt", "text": "From: djb@silverton.berkeley.edu (D. J. Bernstein)\nSubject: Re: Clipper chip -- technical details\nOrganization: IR\nLines: 17\n\nIn article <1993Apr19.052005.20665@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n> Nothing was said about where K_P comes from.\n\nOh? Hellman said ``each user will get to choose his or her own key.''\nThat's the key which I called K_P, the session key. According to\nHellman, if Alice and Bob are communicating with the Clipper Chip,\nthen Alice chooses ``her own key'' and Bob chooses ``his own key.''\nThis is incompatible with the suggestion that when Alice and Bob are\ntalking, they use a _common_ K_P, chosen by classical or public-key\napproaches.\n\nThe protocol/key-management description published so far is either\nincomplete or incorrect. It leaves me with no idea of how the system\nwould actually _work_. I hope the CPSR FOIA request succeeds so that\nwe get full details.\n\n---Dan\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.060+0000", "event": "documents", "entityId": 1260, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Lindros will be traded!!!\nArticle-I.D.: alchemy.1993Apr6.142415.9567\nOrganization: University of Toronto Chemistry Department\nLines: 14\n\nIn article <1993Apr5.163209.576@r-node.hub.org> shadow@r-node.hub.org (Jay Chu) writes:\n>True rumor.  Fact!  A big three way deal!\n>\n>Eric Lindros going to Ottawa Senators.  And Senators get $15mill from\n>Montreal.\n>\n>Montreal gets Alexander Daigle (the first round pick from Senators)\n>\n>Philly gets Damphousse, Bellow, Patrick Roy and a draft pick.\n>\n\nAnother person incapable of rational thought!\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1261, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Cohen@ssdgwy.mdc.com (Andy Cohen)\nSubject: Re: My IIcx won't turn on...\nOrganization: MDA-W\nLines: 22\nDistribution: world\nNNTP-Posting-Host: q5022531.mdc.com\n\nIn article <_vv58kl@rpi.edu>, pilon@aix02.ecs.rpi.edu (T.J. Pilon) wrote:\n> \n> Anyone know what would cause my IIcx to not turn on when I hit the keyboard\n> switch?  The one in the back of the machine doesn't work either...\n> The only way I can turn it on is to unplug the machine for a few minutes,\n> then plug it back in and hit the power switch in the back immediately...\n> Sometimes this doesn't even work for a long time...\n\nTJ\nThis problem is most likely the same that all cx users are experiencing....\nThanks to one very adventurous USENET reader (sorry I can't remember the\nguy's name!  Somebody please post it....he deserves the credit for saving\nus all $$$$$) it is easily fixed, if it is the same problem......\n\n\nBest I can figure it is due to time, heat and repeated warmup/cool downs in\nthe power supply....i.e., bad solder joints in the power supply circuit\ncard.  Go get a desolder tool from radio shack, a low wattage iron and some\ngood nonacid solder and resolder the lower left quadrant of the circuit\ncard with the AC plugs facing away from you..........or get someone to do\nit for you.  It took me less then 10 minutes and saved me at least $300 for\na new supply!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1262, "properties": {"category": "talk.religion.misc", "text": "From: bskendig@netcom.com (Brian Kendig)\nSubject: Re: *** The list of Biblical contradictions\nOrganization: Starfleet Headquarters: San Francisco\nLines: 24\n\nhudson@athena.cs.uga.edu (Paul Hudson Jr) writes:\n>bskendig@netcom.com (Brian Kendig) writes:\n>\n>>Specifically: when I bring up the fact that Genesis contains two\n>>contradictory creation stories, I usually get blank stares or flat\n>>denials.  I've never had a fundamentalist acknowledge that there are\n>>indeed two different accounts of creation.\n>\n>That is because two creation stories is one of the worst examples of \n>a difficulty with the Bible.  \"were formed\" can also be translated \"had been\n>formed\" in chapter two without any problems.  So the text does not demand\n>that there are two creation stories.  \n\nReally?  I don't get it... Genesis first says that God created the\nearth, then the animals, then humans; then it turns around and says\nthat humans were created before animals!  How can you escape this\ncontradiction?\n\n-- \n_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n_/_/                            n'etre fait comme aucun de ceux qui existent.\n  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n /    is that it ends.                                           -- Rousseau\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1263, "properties": {"category": "comp.windows.x", "text": "From: lemons@cadsys.enet.dec.com\nSubject: Xremote into X11R6?\nReply-To: lemons@cadsys.enet.dec.com ()\nOrganization: Digital Equipment Corporation\nLines: 12\nX-Newsreader: mxrn 6.18\n\n\nHi!\n\nI remember reading (or hallucinating) that NCD's PC-Xremote functionality had \nbeen given, by NCD, to MIT for inclusion in X11R6.  Is this true?  If so,\n(set mode/cheap) can I just wait for X11R6 to get compressed serial line\nX server support?\n\nThanks!\n\nTerry Lemons\nDigital Equipment Corporation\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1264, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: I think I am going to cry again Yankees lose it again\nOrganization: Allegheny College\n\nI can't believe this, Howe has an ERA in the 80's He is improving!!!\n\n\n\nKey pitches a GREAT game, and they screw it up AGAIN.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1265, "properties": {"category": "sci.space", "text": "From: clj@ksr.com (Chris Jones)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nReply-To: clj@ksr.com (Chris Jones)\nOrganization: Kendall Square Research Corp\nLines: 13\nIn-reply-to: prb@access.digex.com (Pat)\n\nIn article <1r6aqr$dnv@access.digex.net>, prb@access (Pat) writes:\n>Voyager  has the unusual  luck to be on a stable trajectory out of the\n>solar system.   All it's doing is collecting  fields  data,  and routinely\n>squirting it down.  One of the mariners is also in stable\n>solar orbit,  and still providing similiar  solar data.  \n\nThere are no Mariner craft from which we are still receiving data.  I believe\nyou are referring to one or more of Pioneers 6 through 9 (launched from\nDecember 1965 through November 1968), which were put into solar orbits to study\ninterplanetary space.  I recall reading that at least one of them was still\nfunctioning 25 years after launch.\n--\nChris Jones    clj@ksr.com\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1266, "properties": {"category": "talk.politics.misc", "text": "From: borden@head-cfa.harvard.edu (Dave Borden)\nSubject: ABOLISH SELECTIVE SERVICE\nOrganization: Smithsonian Astrophysical Observatory, Cambridge, MA,  USA\nLines: 12\n\nThe Selective Service Registration should be abolished.  To start with, the\ndraft is immoral.  Whether you agree with that or not, we don't have one now,\nand military experts agree that the quality of the armed forces is superior\nwith a volunteer army than with draftees.  Finally, the government has us\non many lists in many computers (the IRS, Social Security Admistration and\nMotor Vehicle Registries to name a few) and it can find us if it needs to.\nMaintaining yet another list of people is an utter waste of money and time.\nLet's axe this whole department, and reduce the deficit a little bit.\n\n\n  - Dave Borden\n    borden@m5.harvard.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1267, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 61\n\nIn article <C5K5LC.CyF@murdoch.acc.Virginia.EDU>, lfoard@hopper.Virginia.EDU (Lawrence C. Foard) writes:\n> In article <15378@optilink.com> cramer@optilink.COM (Clayton Cramer) writes:\n# #From the Santa Rosa (Cal.) Press-Democrat, April 15, 1993, p. B2:\n# #\n# #    Male sex survey: Gay activity low\n# #\n# #    A new natonal study on male sexual behavior, the most thorough\n# #    examination of American men's sexual practices published since\n# #    the Kinsey report more than four decades ago, shows about 2\n# #    percent of the men surveyed had engaged in homosexual sex and\n# #    1 percent considered themselves exclusively homosexual.\n# #\n# #    The figures on homosexuality in the study released Wednesday\n# #    by the Alan Guttmacher Institute are significantly lower than\n# #    the 10 percent figure that has been part of the conventional\n# #    wisdom since it was published in the Kinsey report.\n# \n# 1) So what?\n\nHomosexuals lie about the 10% number to hide the disproportionate\ninvolvement of homosexuals in child molestation.  They also lie\nabout \"10%\" to keep politicians scared.\n\n# 2) It will be interesting to see the reaction when 2.5million queers\n#    gather in Washington DC. After all if there are only 6million of\n#    us then this is an event unprecidented in history...\n\nBut many of the people who will be marching aren't homosexuals, but\nother members of the leftist agenda.\n\n# #The article also contains numbers on the number of sexual partners.\n# #The median number of sexual partners for all men 20-39 was 7.3.\n# \n# Don't forget that 25% had 20 or more partners....\n\nNot surprising.  Remember, that study includes homosexuals as well.\n\n# #Compared to the table I have already posted from Masters, Johnson,\n# #and Kolodny showing male homosexual partners, it is apparent that\n# #homosexual men are dramatically more promiscuous than the general\n# #male population.  \n# \n# And what did this study show for number of sexual contacts for those\n# who said they where homosexual? Or is that number to inconvient for\n# you....\n\nIt wasn't published.\n\n# #It's a shame that we don't have a breakdown for\n# #straight men vs. gay/bi men -- that would show even more dramatically\n# #how much more promiscuous gay/bi men are.\n# \n# Fuck off\n\nTypical homoseuxal response.\n\n\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1268, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rpao@mts.mivj.ca.us (Roger C. Pao)\nSubject: Re: 16Mb ISA limit\nKeywords: monitor, VGA, question\nOrganization: MicroTech Software\nLines: 29\n\nmarka@SSD.CSD.HARRIS.COM (Mark Ashley) writes:\n\n>In the latest PC Magazine (Pentium isssue), there \n>is an editorial on the\n>advantages of a PC using EISE/VESA-LB rather\n>than just plain ISA/VESA-LB. Supposedly users\n>will eventually want more than 16Mb of RAM.\n>However since the ISA bus has only 24 bits, \n>then anything on the bus can access only 16Mb\n>even if I have 32Mb on the motherboard.\n>So far I agree with the arguments.\n\n>Then the writer claims that glitches can\n>occur in systems with over 16Mb because \n>of that limit. That part I don't understand\n>because the RAM is right on the motherboard.\n>So the cpu should have no problems talking\n>with the RAM. Can anybody explain this ?\n\nThe problem is with ISA bus-masters which\ncan only address the first 16MBs of system\nmemory.  Bus-masters do not use the CPU\nnor the system DMA to do the actual data\ntransfer but transfer their data directly\nto the system RAM.\n\nrp93\n-- \nRoger C. Pao  {gordius,bagdad,pride386}!mts!rpao, rpao@mts.mivj.ca.us\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1269, "properties": {"category": "talk.politics.misc", "text": "From: jim@specialix.com (Jim Maurer)\nSubject: Re: $50,000 Reward!\nOrganization: Specialix Inc.\nLines: 10\n\najteel@dendrite.cs.Colorado.EDU (A.J. Teel) writes:\n\n>\tIf you are a \"United States' Citizen\" and a \"resident\" of the\n>state, then your citizenship is in D.C. and thus are a 14th Amendment\n>Citizen. Are you a Citizen of the State in which you live? If you are\n>a \"resident\" then you *are not*.\n\nSo the only people who are citizens of a state are ones who don't live\nin that state?  So am I a \"citizen\" of 49 other states since I live in\nCalifornia?\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1270, "properties": {"category": "alt.atheism", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: EnviroLeague\nOrganization: Stratus Computer, Inc.\nLines: 117\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\n\nA new alternative to Scouting for those \"unacceptable to BSA\" for reasons\nof religious or sexual preference:\n\n\nFrom: \"BOYD R. CRITZ, III\" <71611.365@CompuServe.COM>\nSubject: EnviroLeague\n\n\"Birth Announcement\" on March 7, 1993, from EARTH Forum, CompuServe\n                       Information Service\n===================================================================\n \n                     FORMAL ANNOUNCEMENT\n                     -------------------\n \n                                     (SM)\n                        EnviroLeague\n \nA new youth movement,\"EnviroLeague,\" was recently born, according to its\nfounder, Boyd R. Critz, III (CIS ID# 71611,365), of Peoria, Illinois.\nEnviroLeague exists for the education of youth, both male and female, in\nmatters concerning their values related to and responsibility for our\nenvironment.\n \nIncorporated as an Illinois not-for-profit corporation, its Articles and\ninitial applications for a service mark have now been filed.  According to\nCritz, its draft Bylaws contain the following statement of Mission and\nObjectives:\n \n                           MISSION\n \n   It is the Mission of EnviroLeague and its adult members\n   to foster and implement the improved education of young\n   people in the need to conduct their lives as Stewards\n   of The Earth, to leave The Earth in a better condition\n   than they found it, and to otherwise act as responsible,\n   moral and ethical users of their environment.  To pursue\n   the accomplishment of this Mission, EnviroLeague shall\n   seek to serve as a catalyst, focusing in common cause the\n   separate efforts of all groups desiring the preservation,\n   improvement, and responsible use of the environment in\n   which we must all live.\n \n                         OBJECTIVES\n \n   In pursuit of the Mission of EnviroLeague, its primary\n   objectives shall be:\n       (1)  To establish a Movement involving as many\n            environmentally concerned organizations as\n            possible, said Movement having as its primary\n            focus the education and participatory\n            involvement of young people in appropriate areas\n            of environmental concern;\n       (2)  To develop and provide to such organizations and\n            their branches a full complement of program\n            materials for their use, including suitable\n            uniforms, insignia and other badges, written\n            ideas, syllabi and information, literature and\n            other items as shall seem appropriate and\n            desirable;\n       (3)  To serve as a \"clearing house\" for the exchange\n            of program ideas, materials and information\n            among said organizations;  and\n       (4)  To assist environmentally concerned\n            organizations to recruit and train the necessary\n            adult leadership for their youth programs.\n \nEnviroLeague will operate through three \"Program Divisions\" serving youth in\nthe elementary, middle and high school grades, respectively.  Service shall be\nthrough formation of \"EnviroLeague Teams,\" either by EnviroLeague itself or by\nenvironmentally conscious organizations (or their local branches) wishing a\ncharter to use programs developed by EnviroLeague.\n \nEnviroLeague, as it develops, will be controlled by the actual adult leaders\nof each local Team, and will have no nationally imposed obstacles to\nmembership or adult leadership status not based upon relevant improper\nconduct. Organizations accepting a charter may, however, impose certain\nadditional standards for their own use of the program material.  Should such\norganizations do so, EnviroLeague will commit itself to forming, as soon as\npossible, new nearby Teams having no such restrictions, particularly as to\nyouth membership.\n \nEnviroLeague will operate on the principle that youth will have much to\ncontribute to developing its programs.  Thus, the top youth leaders of its\nTeams for middle and high school youth may become involved in governing any\nlocal administrative groups, and those for its high school youth may be\ninvolved in similar functions at the national level.\n \nProgram materials are in development at this time.  Copies of the \"draft\"\nportions of the Mentor's Manual (manual for adult leadership) will be in the\nEARTH Forum, Library 17. These files will be updated as development takes\nplace.\n \nCompuServe is particularly proud that EnviroLeague's founder chose this\nelectronic medium to make the first public announcement of its formation.\nThis announcement is being made simultaneously in both the OUTDOOR and EARTH\nForums.\n \nThe electronic home of EnviroLeague is in CompuServe's Earth Forum - GO\nEARTH - message and library areas 17, both named \"EnviroLeague.\"\n============================================================================\n \nSubsequently, EnviroLeague's Initial Governance Council has held its first\nmeeting.  Boyd Critz was elected as the first EnviroLeague Chief Guardian\n(equivalent to Chairman of the Board or CEO).  He can be reached at home\n(309) 675-4483 in case of real need.  Also, mail can be addressed to:\n       EnviroLeague\n       P.O. Box 418\n       Peoria, IL  61651-0418\n \nThose interested in starting an EnviroLeague Team might just establish\ncontact, to receive a diskette (IBM DOS, ASCII) with initial information.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1271, "properties": {"category": "talk.politics.guns", "text": "From: manes@magpie.linknet.com (Steve Manes)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nOrganization: Manes and Associates, NYC\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 168\n\nJim De Arras (jmd@cube.handheld.com) wrote:\n: > Last year the US suffered almost 10,000 wrongful or accidental\n: > deaths by handguns alone (FBI statistics).  In the same year, the UK\n: > suffered 35 such deaths (Scotland Yard statistics).  The population\n: > of the UK is about 1/5 that of the US (10,000 / (35 * 5)).  Weighted\n: > for population, the US has 57x as many handgun-related deaths as the\n: > UK.  And, no, the Brits don't make up for this by murdering 57x as\n: > many people with baseball bats.\n\n: You just can't compare this way!  All homicides must be shown, per capita, not  \n: just handguns.  The availability of them in the USA makes them the preferred  \n: murder weapon, but ban them, and some other weapon will step in as the  \n: favorite.\n\nAs a \"favorite\", sure.  As lethal, not likely.  A study of violence in\nChicago produced this table:\n\n\t\tPercentage of Reported Gun and Knife Attacks\n\t\t\t    Resulting in Death\n\t\t\t    \n\tWeapon\t\t\t\tDeaths As Percentage of Attacks\n\t---------------------------------------------------------------\n\tKnives (16,518 total attacks)\t\t 2.4\n\tGuns (6,350 total attacks)\t\t12.2\n\n\tSource: Firearms and Violence in American Life\n\t\nIt might be contended that if gun murderers were deprived of guns\nthat they would find a way to kill as often with knives.  If this were\nso, knife attacks in cities where guns were widely used in homicide\nwould be expected to show a low fatality rate, and knife attacks in\ncities where guns were not so widely used (like Vancouver) would show\na higher fatality rate.  But the Nat'l Commission on the Causes and\nPrevention of Violence Task Force analyzed the data and found this\nnot to be the case.  It appeared to them that as the number of knife\nattacks increased in relation to the number of firearms attacks\n(which presumably happened where guns were less available to assailants),\nthe proportion of FATAL knife attacks did NOT increase relative to the\nproportion of gun attacks.  In fact, the reverse was true.\n\nWhat was found was that most homicides did not show a determination on\nthe part of the assailant to kill.  Fatalities caused by knife tended\nto show a single-mindedness on the part of the assailant to do grave\nphysical injury: multiple stabs wounds, wounds concentrated about the\nhead neck and chest, etc.  Most gun homicides did not show this\npattern.  Rather, more fatal attacks were committed during a moment of\nrage and not the focused intent to kill the victim.\n\n\tSource: Report on Firearms and Violence\n\n: Then, since England != USA (my ancestors left because of the oppression) you  \n: must compare England before strict gun laws to England after strict gun laws to  \n: be able to draw any meaning at all.  England has essentially legalized drugs,  \n: so there are no drug gangs battling for turf, etc., there.  If you drop out the  \n: drug related killings here, the USA would look a whole lot more peaceful.\n\nThere are a lot of factors which make a difference.  Actually, I'm not\nfond of making ANY kind of social parallels between Europeans and\nAmericans. There are more cultural, beahvioral and economic\ndifferences between us than similarities.  I just sort of found\nmyself backed into that corner over the last couple of weeks.  I\ndon't think we could ever attain the low levels of European violent\ncrime here in the US, whether we banned guns or required every\nlaw-abiding citizen to carry a loaded Uzi.\n\nOn the other hand, we can draw lessons from neighbors who are more\nculturally similar, namely the Canadians.  In fact, an exhaustive,\nseven-year study has already been done of the respective crime rates\nof Vancouver, British Columbia and Seattle, Washington... cities\nwith roughly the same population, urban economy, geography\nand crime but with decidedly different approaches to gun control.\n\nIn Seattle, handguns may be purchased legally for self-defense.  After\na 30-day waiting period, a permit can be obtained to carry a concealed\nweapon.  The recreational use of handguns is minimally restricted.\n\nIn Vancouver, self-defense is not considered a valid or legal reason\nto purchase a handgun.  Concealed weapons are not permitted.\nRecreational uses of handguns (target shooting, collecting) are\nregulated by the province.  Purchase of a handgun requires a\nrestricted-weapons permit.  A permit to carry may be obtained in\norder to transport the weapon to licensed shooting clubs.  Handguns\ntransported by vehicle must be stored in the trunk in a locked box.\nIn short, gun control but not unreasonably so.\n\nBoth cities aggressively enforce their gun laws.  Convictions for\ngun-related offenses carry similar penalties.  The researchers\nstudied all cases of robbery, assault (simple and aggravated),\nburglary and homicides occurring in Seattle and Vancouver from\n1/1/80 to 12/31/86. In defining the cases, they used the same\nstandard: the FBI's Unified Crime Report.\n\nResults: during the seven-year study the annual rate of robbery in\nSeattle was found to be only slightly higher than that in Vancouver\n(1.09 / 1.11).  Burglaries occurred at nearly identical rates (.99).\n18,925 assaults were recorded in Seattle versus 12,034 in\nVancouver.  The risk of being a victim of a simple assault in\nSeattle was found to be only slightly higher than Vancouver (1.18 /\n1.15) and the risk of aggravated assault was also slightly higher\n(1.16 / 1.12).  However, when aggravated assaults were subdivided by\nweapon and the mechanism of assault, a clear pattern emerged.\nAlthough both cities reported nearly identical rates of aggravated\nassault involving knives and other dangerous weapons, firearms were\nfar more likely to be used in Seattle.  In fact, 7.7 times as often.\n\nOver the seven-year study, 388 homicides occurred in Seattle\n(11.3 per 100,000) vs. 204 homicides in Vancouver (6.9 per 100,000).\nAfter adjustment for differences in age and sex among the populations,\nthe relative risk of being a victim of homicide in Seattle, as\ncompared to Vancouver, was found to be 1.63.\n\nWhen homicides were subdivided by the mechanism of death, the rate\nof homicide by knives and other weapons (excluding firearms) in\nSeattle was found to be almost identical to that in Vancouver.\nVirtually ALL of the increased risk of death in Seattle was due to\na more than fivefold higher rate of homicide by firearms.  Handguns\naccounted for roughly 85% of homicides involving firearms.  Handguns\nwere 4.8 times more likely to be used in homicides in Seattle than\nin Vancouver.\n\nThe authors of the report also investigated \"legally justifiable\"\nhomicides (self-defense).  Only 32 such homicides occurred during\nthe seven-year study, 11 of which were committed by police.  Only\n21 cases of civilians acting in self-defense occurrred: 17 in\nSeattle and 4 in Vancouver.  Only 13 involved firearms.  After\nexcluding these cases, there was virtually no impact on these\nearlier findings.\n\n-------\n\nThis is, I feel, a very fair report.  One might even make the\nargument that it is biased against Canada as a whole because\nVancouver reports annual rates of homicide two to three times\nthat of Ottawa, Calgary and Toronto while Seattle reports\nannual homicide rates only half to two-thirds that of NYC,\nChicago, Los Angeles and Houston.\n\nCritics of handgun control always argue that limited legal access\nto handguns will have little effect on the rates of homicide because\npersons intent on killing others will only try harder to acquire a\ngun or will kill by other means.  This report shows differently.\nIf the rate of homicide in a community were influenced more by\nthe strength of intent than by the availability of weapons, we\ncould expect the rate of homicides by weapons other than guns to\nbe higher in Vancouver than in Seattle.  However, during the study\ninterval, Vancouver's rate of homicide by weapons other than guns\nwas not significantly higher than that in Seattle, suggesting that\nfew would-be assailants switched to homicide by other methods.\n\nAs well, ready access to handguns for self-defense by law-abiding\ncitizens was not endorsed in this report.  Although Seattle did\nexperience a higher rate of firearm death for self-defense, these\ncases accounted for less than 4% of the homicides in both cities\nduring the course of the study period.  And, as was reported,\nSeattle apparently didn't enjoy relief from any crime category\nover Vancouver because citizens may legally arm themselves for\nself-defense.\n\n\tHeavily quoted source: Handgun Regulation, Crime,\n\tAssaults, and Homicide: A Tale of Two Cities.\n\n\tJohn H. Sloan, Arthur L. Kellerman, Donald T. Reay,\n\tJames A. Ferris, Thomas Koepsall, Frederick P. Rivara,\n\tCharles Rice, Laurel Gray and James LoGerfo\n-- \nStephen Manes\t\t\t\t\t   manes@magpie.linknet.com\nManes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1272, "properties": {"category": "comp.windows.x", "text": "From: dla@se05.wg2.waii.com (Doug Acker)\nSubject: xterm build problem in Solaris2.1\nReply-To: acker@se01.wg2.waii.com\nOrganization: Western Geophysical Exploration Products\nLines: 20\nNNTP-Posting-Host: se05.wg2.waii.com\n\n..continuing on my build problems, I got stuck here build xterm...\n\ngcc -fpcc-struct-return -o xterm main.o input.o charproc.o cursor.o util.o tabs.o  screen.o scrollbar.o button.o Tekproc.o misc.o  VTPrsTbl.o TekPrsTbl.o data.o menu.o -O2   -R/usr/wgep/X11R5.sos5/lib${LD_RUN_PATH+\\:$LD_RUN_PATH} -L../.././lib/Xaw -lXaw -L../.././lib/Xmu -lXmu -L../.././lib/Xt -lXt -L../.././extensions/lib -lXext -L../.././lib/X -lX11 -L/usr/wgep/X11R5.sos5/lib  -lsocket -lnsl -ltermcap\nUndefined                       first referenced\n symbol                             in file\nindex                               /usr/ucblib/libtermcap.a(termcap.o)\nrindex                              /usr/ucblib/libtermcap.a(termcap.o)\nld: fatal: Symbol referencing errors. No output written to xterm\n*** Error code 1\nmake: Fatal error: Command failed for target `xterm'\n\nAny clues for help?\n\n--\nDouglas L.Acker                Western Geophysical Exploration Products\n____    ____     ____          a division of Western Atlas International Inc.\n\\   \\  /   /\\   /   /\\         A Litton / Dresser Company\n \\   \\/   /  \\ /   /  \\        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n  \\  /   / \\  /   /\\   \\       Internet  :  acker@wg2.waii.com\n   \\/___/   \\/___/  \\___\\      Voice     :  (713) 964-6128\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1273, "properties": {"category": "comp.windows.x", "text": "From: lapp@waterloo.hp.com (David Lapp)\nSubject: Re: NumLock masking? interference with Meta/Compose/ExtendChar, ...\nNntp-Posting-Host: hppadan.waterloo.hp.com\nOrganization: HP Panacom Div Waterloo ON Canada\nX-Newsreader: TIN [version 1.1 PL8.9]\nLines: 34\n\nRalph Seguin (rps@arbortext.COM) wrote:\n: > My question is this:  Is there a means of determining what the state\n: > of CapsLock and/or NumLock is?\n\n: Alright.  Ignore this.  I have delved a bit deeper (XKeyEvent) and\n: found what I was looking for.\n\n: ev->state   has a bunch of masks to check against (LockMask is the one\n: for CapsLock).  Unfortunately, it appears that the NumLock mask varies\n: from server to server.  How does one tell what mask is numlock and\n: which are for Meta (Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask).\n: eg, SGI's vendor server has Mod2Mask being NumLock, whereas Solaris\n: 1.0.1 OpenWindows 3.0 has Mod3Mask for NumLock.  Is there an\n: unambiguous means of determining NumLock's mask at runtime for any\n: given server?  Sorry for the wasted bandwidth and my appalling ignorance.\n\nYou'll have to check the keysym(s) on each of the keys for each\nmodifier. The one with NumLock in its mapping is the modifier\nyou want. A bit ugly perhaps but I think its currently the only\nway to do this (and it does have some precedent as keysyms are \nused to differentiate CapsLock from ShiftLock for the Lock\nmodifier).\n\nI don't know of an accepted strategy for handling ambiguous\nassignments either. (ie. what if NumLock is mapped for more then\none modifier). I suppose first found is as good as any.\n\nX doesn't handle locking modifiers that well. \n\nHope that helps,\n\nDave Lapp\n\nStandard Disclaimer etc...\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1274, "properties": {"category": "rec.sport.baseball", "text": "Subject: Hal McRae\nFrom: rbd@flash.ece.uc.edu (Bobby Davis)\nOrganization: University of Cincinnati\nNNTP-Posting-Host: flash.ece.uc.edu\nLines: 18\n\nDAK988S@vma.smsu.edu writes:\n>No....Hal McRae is the worst manager in baseball.\n\nI haven't seen enough Royals' games to judge his tactics, so you may have\na point here.  But:\n\n>I've never seen a guy who can waste talent like he can.  One of the best\n>raw-talent staffs in the league, and he's still finding a way to lose.\n\nIMO, the Royals don't have a chance to win the pennant even if McRae\nsuddenly began channeling for John McGraw.  OK, they have some decent\npitchers.  But when your offense consists of bums like Gagne and Lind\nand McReynolds and McRae and an over-the-hill Brett, you're not going\nto finish .500 unless McGraw brings Christy Mathewson back with him.\n\nI'd say it is hard to evaluate a manager when all of his hitters suck.\n\nBob Davis\trbd@thor.ece.uc.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1275, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ROGOSCHP@MAX.CC.Uregina.CA (Are we having Fun yet ???)\nSubject: VGA monitors and the mac LC series of computers\nOrganization: University of Regina\nLines: 9\n\nI recall reading that the Mac LC (and presumably the LC II & III) can use stand\nard VGA monitors, with appropriate cable adapters.  I am uncertain of this sinc\ne I have asked other people who say this is not so.  So can all vga monitors be\n used on the Mac LC?  What are the specs needed for a PC monitor to work with a\nMac LC (horizontal nad vertical frequencies)?\n \n \n \n \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1276, "properties": {"category": "rec.motorcycles", "text": "From: dagibbs@quantum.qnx.com (David Gibbs)\nSubject: Re: Wanted: Advice for New Cylist\nOrganization: QNX Software Systems, Ltd.\nLines: 73\n\nIn article <C5r7Ey.7Mq@srgenprp.sr.hp.com> blaisec@sr.hp.com (Blaise Cirelli) writes:\n>\n>So the question I have is \"HOW DANGEROUS IS RIDING\"?            \n\nTough question -- more dangerous than driving a car, and far more\ndangerous if you don't apply a modicum of intelligence to the \nactivity.  Basically, stupidity will get you hurt/killed a lot\nfaster on a motorcycle than in a car.  But with care, it is\nnot unreasonably dangerous.  Also, buying good protective\nclothing is helpful, that way if something does go wrong,\nyou are likely to be less severely injured.\n\nFirst thing, if possible take a (MSF) driver training course,\nthis will get you started on the right foot -- they teach\ncontrol of the vehicle and safe riding practices.\n\nSecond, buy protective gear.  At minimum a good helmet\nand a pair of leather gloves are a must.  A good sturdy \npiece of footgear is also very helpful, though leather hiking\nboots, a pair of old army boots, or something similar works fine\nfor this purpose as long as you make sure the laces stay \ntied.  After those, a leather jacket and leather pants or chaps\nare nice as well; but these are also expensive items.  For the\npants, many people consider a good pair of jeans to be reasonable,\npreferably recent and of a fairly heavy weight.  Similarly for\na jacket, a good jean jacket is a reasonable compromise, though\nmore people tend to have leather jackets around than pants.  Another\nthing to do is drop in on garage sales looking for a second-hand\nleather jacket.  Look for a fairly thick leather in these items.\n\nThird don't do anything stupid -- don't ride after \ndrinking, even one drink can noticeably affect you judgement\nand balance; don't ride in the snow, or when conditions\nare such that black ice is likely; be very careful riding\nin the rain -- slow way down, take corners gingerly, \nbrake early and gently;  try not to ride if you are sick,\ntired, taking any medication with drowsiness warnings, or\notherwise not in average shape.\n\nWith care, you should be ok.\n\n>The next question I have is what bike would you recommend for\n>a first time rider. I don't want to race; nor do I want to\n>ride cross country; nor do I want to ride on dirt trails. I'll\n>probably drive it on back roads with occasional rides on city\n>streets and freeways. The maximum I can spend is about $2500 so\n>I'll be looking at a used bike.\n\nI would suggest mid to late 80's japanese mid-sized standard.\nSomething in 400-650 cc range would probably be reasonable.  If\nyou are shorter/lighter than average, you might want to go as\nlow as a 300-400 cc bike.\n\nPossible models: \nThe Suzuki GS### series (eg. GS500, GS650, etc.).  These are generally\ninline 4 bikes, generally dependable except for a tendency to \nweakness in the charging system.  (Stator and/or Regulator/Rectifier \nproblems.)  My first bike was a (about '82) GS650, it server me well.\n\nThe Honda Nighthawk series (this may also be known as the CB### series\nI think).  eg. Honda CB450, CB650, etc.  This is another series of\nstandard motorcycles.  Also fairly dependable.\n\nKawasaki and Yamaha probably have similar bikes, but I don't know\nthem as well.\n\nFor mid to late '80s models of the above, you should be able to\nbuy the bike for under $2000, leaving you money for protective \nclothing and insurance and licensing costs.\n\nHope this helps,\n-David\n(dagibbs@qnx.com)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1277, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Re: Conference on Manned Lunar Exploration. May 7 Crystal City\nDistribution: na\nOrganization: University of Illinois at Urbana\nLines: 18\n\nprb@access.digex.com (Pat) writes:\n\n>AW&ST  had a brief blurb on a Manned Lunar Exploration confernce\n>May 7th  at Crystal City Virginia, under the auspices of AIAA.\n\n>Does anyone know more about this?  How much, to attend????\n\nA good summary has been posted (thanks), but I wanted to add another comment.\nI remeber reading the comment that General Dynamics was tied into this, in \nconnection with their proposal for an early manned landing.  Sorry I don't \nrember where I heard this, but I'm fairly sure it was somewhere reputable. \nAnyone else know anything on this angle?\n\nHrumph.  They didn't send _me_ anything :(\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n\t\t    \"Find a way or make one.\"\n\t             -attributed to Hannibal\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1278, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: btbg1194@uxa.cso.uiuc.edu (Bradley T Banko)\nSubject: Save my hard disk?!  (allocation error, cross-linked)\nReply-To: b-banko@uiuc.edu\nOrganization: University of Illinois at Urbana\nLines: 150\n\nHi.\n\nWhile running the MS Quick C compiler in a DOS window under Windows 3.1 \nthis evening, I got a \"program has violated system integrity... close all \napplications, exit windows and restart your computer\" error.\n\nI started to do this when I immediately got a \"Serious disk error\" message\nfrom Windows.  \"hit return to retry\".  I did that about 5 times and then\nrebooted to find that quite a few files have been corrupted somehow.\n(I am including the chkdsk output below.)\n\nQuestions:\n\n1)  Is there an easy way to restore everything to working order?\nWhat might be some better approaches?\n\n2)  What might have caused this?  Does the SMARTDRV cache make me more\nvulnerable?  (I'm suspicious of hard drive caches especially when they\ncache data writing.)\n\nThe straightforward approach would be to run chkdsk with the /f option to \nfix the disk and then it looks like I would probably have to reinstall Windows\nand a few other things.\n\nThanks for your comments and suggestions.\n\nBrad Banko\n\nps:  this is a 386sx machine with a 40Mb hard drive and 2 Mb of RAM.\n\n\nchkdsk output:\n======================================================================\nVolume Serial Number is 1159-09D3\nErrors found, F parameter not specified\nCorrections will not be written to disk\n\nC:\\GFX\\VPIC46\\CVPIC.EXE\n   Allocation error, size adjusted\nC:\\GFX\\VPIC46\\VPIC.TXT\n   Allocation error, size adjusted\nC:\\GFX\\VPIC46\\VIDEO7.CFG\n   Allocation error, size adjusted\nC:\\GFX\\VPIC46\\ORCPRO2.CFG\n   Allocation error, size adjusted\nC:\\GFX\\VPIC46\\VGA.CFG\n   Allocation error, size adjusted\nC:\\GAME\\GOOSE\\BIRD2.X\n   Allocation error, size adjusted\nC:\\WINMISC\\ADV21\\WINADV.EXE\n   Allocation error, size adjusted\n\n   316 lost allocation units found in 224 chains.\n    647168 bytes disk space would be freed\n\nC:\\GFX\\VPIC46\\CVPIC.EXE\n   Is cross linked on allocation unit 16133\nC:\\GFX\\VPIC46\\GENO5400.CFG\n   Is cross linked on allocation unit 16138\nC:\\GFX\\VPIC46\\TRI8800B.CFG\n   Is cross linked on allocation unit 16139\nC:\\GFX\\VPIC46\\TS4000HI.CFG\n   Is cross linked on allocation unit 16140\nC:\\GFX\\VPIC46\\CONFIG.DOC\n   Is cross linked on allocation unit 16141\nC:\\GFX\\VPIC46\\VPIC.TXT\n   Is cross linked on allocation unit 16146\nC:\\GFX\\VPIC46\\VIDEO7.CFG\n   Is cross linked on allocation unit 16151\nC:\\GFX\\VPIC46\\DEFINCON.CFG\n   Is cross linked on allocation unit 16152\nC:\\GFX\\VPIC46\\ATIWONDR.CFG\n   Is cross linked on allocation unit 16153\nC:\\GFX\\VPIC46\\GENO6400.CFG\n   Is cross linked on allocation unit 16154\nC:\\GFX\\VPIC46\\OAK.CFG\n   Is cross linked on allocation unit 16155\nC:\\GFX\\VPIC46\\HIRES.CFG\n   Is cross linked on allocation unit 16156\nC:\\GFX\\VPIC46\\AHEADA.CFG\n   Is cross linked on allocation unit 16157\nC:\\GFX\\VPIC46\\VPIC.DOC\n   Is cross linked on allocation unit 16208\nC:\\GFX\\VPIC46\\ORCPRO2.CFG\n   Is cross linked on allocation unit 16184\nC:\\GFX\\VPIC46\\EVERX673.CFG\n   Is cross linked on allocation unit 16185\nC:\\GFX\\VPIC46\\WAIT.COM\n   Is cross linked on allocation unit 16186\nC:\\GFX\\VPIC46\\MAXXON.CFG\n   Is cross linked on allocation unit 16187\nC:\\GFX\\VPIC46\\WAIT.DOC\n   Is cross linked on allocation unit 16188\nC:\\GFX\\VPIC46\\EVERX678.CFG\n   Is cross linked on allocation unit 16189\nC:\\GFX\\VPIC46\\EGA.CFG\n   Is cross linked on allocation unit 16190\nC:\\GFX\\VPIC46\\CONFIG.EXE\n   Is cross linked on allocation unit 16191\nC:\\GFX\\VPIC46\\README.1ST\n   Is cross linked on allocation unit 16199\nC:\\GFX\\VPIC46\\VGA.CFG\n   Is cross linked on allocation unit 16201\nC:\\GAME\\GOOSE\\BIRD2.X\n   Is cross linked on allocation unit 16382\nC:\\WINDOWS\\SYSTEM\\SOUND.DRV\n   Is cross linked on allocation unit 16380\nC:\\WINDOWS\\GAMES0.GRP\n   Is cross linked on allocation unit 16367\nC:\\WINDOWS\\MAD79-11.BMP\n   Is cross linked on allocation unit 16341\nC:\\MAGE\\DEMO2_2A.KIN\n   Is cross linked on allocation unit 16151\nC:\\MAGE\\DEMO2_2B.KIN\n   Is cross linked on allocation unit 16257\nC:\\MAGE\\PKIN_2_2.EXE\n   Is cross linked on allocation unit 16339\nC:\\WINMISC\\GAMES\\DIALWORD.EXE\n   Is cross linked on allocation unit 16184\nC:\\WINMISC\\GAMES\\DIALWORD.TXT\n   Is cross linked on allocation unit 16201\nC:\\WINMISC\\ADV21\\WINADV.WRI\n   Is cross linked on allocation unit 16257\nC:\\WINMISC\\ADV21\\ADV.KEY\n   Is cross linked on allocation unit 16265\nC:\\WINMISC\\ADV21\\ADV.REC\n   Is cross linked on allocation unit 16275\nC:\\WINMISC\\ADV21\\FREEZER\n   Is cross linked on allocation unit 16339\nC:\\386SPART.PAR\n   Is cross linked on allocation unit 16133\nC:\\BNG2.MBX\n   Is cross linked on allocation unit 16146\n\n  42366976 bytes total disk space\n   3958784 bytes in 4 hidden files\n    153600 bytes in 67 directories\n  36042752 bytes in 1496 user files\n   1564672 bytes available on disk\n\n      2048 bytes in each allocation unit\n     20687 total allocation units on disk\n       764 available allocation units on disk\n\n    655360 total bytes memory\n    579712 bytes free\n-- \nBrad Banko;  Dept of Physics;  U of Illinois;  b-banko@uiuc.edu\n=========================================================================\nSee one.  Do one.  Teach one.\t\t\t73 de kb8cne @ n9lnq.il\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1279, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Accounts of Anti-Armenian Human Rights Violations in Azerbaijan #013\nSummary: Prelude to Current Events in Nagorno-Karabakh\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 339\n\n     Accounts of Anti-Armenian Human Right Violations in Azerbaijan #013\n                 Prelude to Current Events in Nagorno-Karabakh\n\n   +---------------------------------------------------------------------+\n   |                                                                     |\n   | I said that on February 27, when those people were streaming down   |\n   | our street, they were shouting, \"Long live Turkey!\" and \"Glory to   |\n   | Turkey!\" And during the trial I said to that Ismailov, \"What does   |\n   | that mean, 'Glory to Turkey'?\" I still don't understand what Turkey |\n   | has to do with this, we live in the Soviet Union. That Turkey told  |\n   | you to or is going to help you kill Armenians? I still don't        |\n   | understand why \"Glory to Turkey!\" I asked that question twice and   |\n   | got no answer . . . No one answered me . . .                        |\n   |                                                                     |\n   +---------------------------------------------------------------------+\n\nDEPOSITION OF EMMA SETRAKOVNA SARGISIAN\n\n   Born 1933\n   Cook\n   Sumgait Emergency Hospital\n\n   Resident at Building 16/13, Apartment 14\n   Block 5\n   Sumgait [Azerbaijan]\n\n\nTo this day I can't understand why my husband, an older man, was killed. What \nwas he killed for. He hadn't hurt anyone, hadn't said any word he oughtn't \nhave. Why did they kill him? I want to find out--from here, from there, from \nthe government--why my husband was killed.\n\nOn the 27th, when I returned from work--it was a Saturday--my son was at home.\nHe doesn't work. I went straight to the kitchen, and he called me, \"Mamma, is \nthere a soccer game?\" There were shouts from Lenin Street. That's where we \nlived. I say, \"I don't know, Igor, I haven't turned on the TV.\" He looked \nagain and said, \"Mamma, what's going on in the courtyard?!\" I look and see so \nmany people, it's awful, marching, marching, there are hundreds, thousands, \nyou can't even tell how many there are. They're shouting, \"Down with the \nArmenians! Kill the Armenians! Tear the Armenians to pieces!\" My God, why is \nthat happening, what for? I had known nothing at that point. We lived together\nwell, in friendship, and suddenly something like this. It was completely \nunexpected. And they were shouting, \"Long live Turkey!\" And they had flags,\nand they were shouting. There was a man walking in front well dressed, he's \naround 40 or 45, in a gray raincoat. He is walking and saying something, I \ncan't make it out through the vent window. He is walking and saying something,\nand the children behind him are shouting, \"Tear the Armenians to pieces!\" and \n\"Down with the Armenians!\" They shout it again, and then shout, \"Hurrah!\" The \npeople streamed without end, they were walking in groups, and in the groups I \nsaw that there were women, too. I say, \"My God, there are women there too!\" \nAnd my son says, \"Those aren't women, Mamma, those are bad women.\" Well we \ndidn't look a long time. They were walking and shouting and I was afraid, I \nsimply couldn't sit still. I went out onto the balcony, and my Azerbaijani \nneighbor is on the other balcony, and I say, \"Khalida, what's going on, what \nhappened?\" She says, \"Emma, I don't know, I don't know, I don't know what \nhappened.\" Well she was quite frightened too. They had these white sticks, \neach second or third one had a white rod. They're waving the rods above their \nheads as they walk, and the one who's out front, like a leader, he has a white\nstick too. Well maybe it was an armature shaft, but what I saw was white, I \ndon't know.\n\nMy husband got home 10 or 15 minutes later. He comes home and I say, \"Oh \ndear, I'm frightened, they're going to kill us I bet.\" And he says, \"What are \nyou afraid of, they're just children.\" I say, \"Everything that happens comes \nfrom children.\" There had been 15- and 16-year kids from the Technical and \nVocational School. \"Don't fear,\" he said, \"it's nothing, nothing all that \nbad.\" He didn't eat, he just lay on the sofa. And just then on television they\nbroadcast that two Azerbaijanis had been killed in Karabakh, near Askeran. \nWhen I heard that I couldn't settle down at all, I kept walking here and \nthere and I said, \"They're going to kill us, the Azerbaijanis are going to \nkill us.\" And he says, \"Don't be afraid.\" Then we heard--from the central \nsquare, there are women shouting near near the stage, well, they're shouting\ndifferent things, and you couldn't hear every well. I say, \"You speak\nAzerbaijani well, listen to what they're saying.\" He says \"Close the window\nand go to bed, there s nothing happening there.\" He listened a bit and then \nclosed the window and went to bed, and told us, \"Come on, go to sleep, it's\nnothing.\" Sleep, what did he mean sleep?  My Son and I stood at the window\nuntil two in the morning watching. Well he's sick, and all of this was\naffecting him. I say, \"Igor, you go to bed, I'm going to go to bed in a minute\ntoo.\" He went and I sat at the window until three, and then went to bed. \nThings had calmed down slightly.\n\nThe 28th, Sunday, was my day off. My husband got up and said, \"Come on, Emma, \nget up.\" I say, \"Today's my day off, let me rest.\" He says, \"Aren't you going \nto make me some tea?\" Well I felt startled and got up, and said, \"Where are \nyou going?\" He says, \"I'm going out, I have to.\" I say, \"Can you really go \noutside on a day like today? Don't go out, for God's sake. You never listen to\nme, I know, and you're not going to listen to me now, but at least don't take \nthe car out of the garage, go without the car.\" And he says, \"Come on, close \nthe door!\" And then on the staircase he muttered something, I couldn't make it\nout, he probably said \"coward\" or something.\n\nI closed the door and he left. And I started cleaning . . . picking things up\naround the house . . . Everything seemed quiet until one o'clock in the after-\nnoon, but at the bus station, my neighbor told me, cars were burning. I said,\n\"Khalida, was it our car?\" She says, \"No, no, Emma, don't be afraid, they\nwere government cars and Zhigulis.'' Our car is a GAZ-21 Volga. And I waited,\nit was four o'clock, five o'clock . . . and when he wasn't home at seven I\nsaid, \"Oh, they've killed Shagen!\"\n\nTires are burning in town, there's black smoke in town, and I'm afraid, I'm \nstanding on the balcony and I'm all . . . my whole body is shaking. My God, \nthey've probably killed him! So basically I waited like that until ten \no'clock and he still hadn't come home. And I'm afraid to go out. At ten\no'clock I look out: across from our building is a building with a bookstore,\nand from upstairs, from the second floor, everything is being thrown outside. \nI'm looking out of one window and Igor is looking out of the other, and I \ndon't want him to see this, and he, as it turns out, doesn't want me to see \nit. We wanted to hide it from one another. I joined him. \"Mamma,\" he says,\n\"look what they're doing over there!\" They were burning everything, and there \nwere police standing there, 10 or 15 of them, maybe twenty policemen standing \non the side, and the crowd is on the other side, and two or three people are \nthrowing everything down from the balcony. And one of the ones on the balcony \nis shouting, \"What are you standing there for, burn it!\" When they threw the \ntelevision, wow, it was like a bomb! Our neighbor on the third floor came out \non her balcony and shouted, \"Why are you doing that, why are you burning those\nthings, those people saved with such difficulty to buy those things for their \nhome. Why are you burning them?\" And from the courtyard they yell at her, \"Go \ninside, go inside! Instead why don't you tell us if they are any of them in \nyour building or not?\" They meant Armenians, but they didn't say Armenians, \nthey said, \"of them.\" She says, \"No, no, no, none!\" Then she ran downstairs to\nour place, and says, \"Emma, Emma, you have to leave!\" I say, \"They've killed\nShagen anyway, what do we have to live for? It won't be living for me without \nShagen. Let them kill us, too!\" She insists, saying, \"Emma, get out of here, \ngo to Khalida's, and give me the key. When they come I'll say that it's my \ndaughter's apartment, that they're off visiting someone.\" I gave her the key \nand went to the neighbor's, but I couldn't endure it. I say, \"Igor, you stay \nhere, I'm going to go downstairs, and see, maybe Papa's . . . Papa's there.\"\n\nMeanwhile, they were killing the two brothers, Alik and Valery [Albert and \nValery Avanesians; see the accounts of Rima Avanesian and Alvina Baluian], in \nthe courtyard. There is a crowd near the building, they're shouting, howling, \nand I didn't think that they were killing at the time. Alik and Valery lived\nin the corner house across from ours. When I went out into the courtyard I saw\nan Azerbaijani, our neighbor, a young man about 30 years old. I say, \"Madar, \nUncle Shagen's gone, let's go see, maybe he's dead in the garage or near the \ngarage, let's at least bring the corpse into the house. \"He shouts, \"Aunt \nEmma, where do you think you're going?! Go back into the house, I'll look for \nhim.\" I say, \"Something will happen to you, too, because of me, no, Madar, \nI'm coming too.\" Well he wouldn't let me go all the same, he says, \"You stay \nhere with us, I'm go look.\" He went and looked, and came back and said, \"Aunt \nEmma, there's no one there, the garage is closed. \"Madar went off again and \nthen returned and said, \"Aunt Emma, they're already killed Alik, and Valery's \nthere . . . wheezing.\"\n\nMadar wanted to go up to him, but those scoundrels said, \"Don't go near him, \nor we'll put you next to him.\" He got scared--he's young--and came back and \nsaid, \"I'm going to go call, maybe an ambulance will come, at least to take \nAlik, maybe he'll live . . . \" They grew up together in our courtyard, they \nknew each other well, they had always been on good terms. He went to call, but\nnot a single telephone worked, they had all been shut off. He called, and \ncalled, and called, and called--nothing.\n\nI went upstairs to the neighbor's. Igor says, \"Two police cars drove up over \nthere, their headlights are on, but they're not touching them, they are still \nlying where they were, they're still lying there . . . \"We watched out the\nwindow until four o'clock, and then went downstairs to our apartment. I didn't\ntake my clothes off. I lay on the couch so as not to go to bed, and at six\no'clock in the morning I got up and said, \"Igor, you stay here at home, don't\ngo out, don't go anywhere, I'm going to look, I have to find Papa, dead or\nalive . . . let me go . . . I've got the keys from work.\"\n\nAt six o'clock I went to the Emergency Hospital. The head doctor and another \ndoctor opened the door to the morgue. I run up to them and say, \"Doctor, is \nShagen there?\" He says, \"What do you mean? Why should Shagen be here?!\" I \nwanted to go in, but he wouldn't let me. There were only four people in there,\nthey said. Well, they must have been awful because they didn't let me in. They\nsaid, \"Shagen's not here, he's alive somewhere, he'll come back.\"\n\nIt's already seven o'clock in the morning. I look and there is a panel truck\nwith three policemen. Some of our people from the hospital were there with\nthem. I say, \"Sara Baji [\"Sister\" Sara, term of endearment], go look, they've\nprobably brought Shagen.\" I said it, shouted it, and she went and came back\nand says, \"No, Emma, he has tan shoes on, it's a younger person.\" Now Shagen \njust happened to have tan shoes, light tan, they were already old. When they \nsaid it like that I guessed immediately. I went and said, \"Doctor, they've \nbrought Shagen in dead.\" He says, \"Why are you carrying on like that, dead, \ndead . . . he's alive.\" But then he went all the same, and when he came back \nthe look on his face was . . . I could tell immediately that he was dead. They\nknew one another well, Shagen had worked for him a long time. I say, \"Doctor, \nis it Shagen?\" He says, \"No, Emma, it's not he, it's somebody else entirely.\" \nI say, \"Doctor, why are you deceiving me, I'll find out all the same anyway, \nif not today, then tomorrow.\" And he said . . . I screamed, right there in the\noffice. He says, \"Emma, go, go calm down a little.\" Another one of our \ncolleagues said that the doctor had said it was Shagen, but . . . in hideous \ncondition. They tried to calm me down, saying it wasn't Shagen. A few minutes \nlater another colleague comes in and says, \"Oh, poor Emma!\" When she said it \nlike that there was no hope left.\n\n   That day was awful. They were endlessly bringing in dead and injured \npeople.\n\nAt night someone took me home. I said, \"Igor, Papa's been killed.\"\n\nOn the morning of the 1st I left Igor at home again and went to the hospital: \nI had to bury him somehow, do something. I look and see that the hospital is \nsurrounded by soldiers. They are wearing dark clothes. \"Hey, citizen, where \nare you going?\" I say, \"I work here,\" and from inside someone shouts, \"Yes, \nyes, that's our cook, let her in.\" I went right to the head doctor's office\nand there is a person from the City Health Department there, he used to\nwork with us at the hospital. He says, \"Emma, Shagen's been taken to Baku.\nIn the night they took the wounded and the dead, all of them, to Baku.\" I\nsay, \"Doctor, how will I bury him?\" He says, \"We're taking care of all that,\ndon't you worry, we'll do everything, we'll tell you about it. Where did you\nspend the night?\" I say, \"I was at home.\" He says, \"What do you mean you\nwere at home?! You were at home alone?\" I say, \"No, Igor was there too.\" He\nsays, \"You can't stay home, we're getting an ambulance right now, wait just\none second, the head doctor is coming, we're arranging an ambulance right\nnow, you put on a lab coat and take one for Igor, you go and bring Igor here\nlike a patient, and you'll stay here and we'll se~ later what to do next ...\"\nHis last name is Kagramanov. The head doctor's name is Izyat Jamalogli\nSadukhov.\n\nThe \"ambulance\" arrived and I went home and got Igor. They admitted him as a \npatient, they gave us a private room, an isolation room. We stayed in the \nhospital until the 4th.\n\nSome police car came and they said, \"Emma, let's go.\" And the women, our \ncolleagues, then they saw the police car, became anxious and said, \"Where are \nyou taking her?\" I say, \"They're going to kill me, too . . . \" And the\ninvestigator says, \"Why are you saying that, we're going to make a positive\nidentification.\" We went to Baku and they took me into the morgue . . . I\nstill can't remember what hospital it was . . . The investigator says, \"Let's \ngo, we need to be certain, maybe it's not Shagen.\" And when I saw the caskets,\nlying on top of one another, I went out of my mind. I say, \"I can't look, no.\"\nThe investigator says, \"Are there any identifying marks?\" I say, \"Let me see\nthe clothes, or the shoes, or even a sock, I'll recognize them.\" He says, \n\"Isn't they're anything on his body?\" I say he has seven gold teeth and his \nfinger, he only has half of one of his fingers. Shagen was a carpenter, he had\nbeen injured at work . . .\n\nThey brought one of the sleeves of the shirt and sweater he was wearing, they \nbrought them and they were all burned . . . When I saw them I shouted, \"Oh, \nthey burned him!\" I shouted, I don't know, I fell down . . . or maybe I sat \ndown, I don't remember. And that investigator says, \"Well fine, fine, since \nwe've identified that these are his clothes, and since his teeth . . . since\nhe has seven gold teeth . . . \"\n\nOn the 4th they told me: \"Emma, it's time to bury Shagen now.\" I cried, \"How, \nhow can I bury Shagen when I have only one son and he's sick? I should inform \nhis relatives, he has three sisters, I can't do it by myself.\" They say, \"OK, \nyou know the situation. How will they get here from Karabagh? How will they \nget here from Yerevan? There's no transportation, it s impossible.\"\n\nHe was killed on February 28, and I buried him on March 7. We buried him in \nSumgait. They asked me, \"Where do you want to bury him?\" I said, \"I want to \nbury him in Karabagh, where we were born, let me bury him in Karabagh,\" I'm \nshouting, and the head of the burial office, I guess, says, \"Do you know what \nit means, take him to Karabagh?! It means arson!\" I say, \"What do you mean, \narson? Don't they know what's going on in Karabagh? The whole world knows that\nthey killed them, and I want to take him to Karabagh, I don't have anyone \nanymore.\" I begged, I pleaded, I grieved, I even got down on my knees. He\nsays, \"Let's bury him here now, and in three months, in six months, a year, \nif it calms down, I'll help you move him to Karabagh . . . \"\n\nOur trial was the first in Sumgait. It was concluded on May 16. At the\ninvestigation the murderer, Tale Ismailov, told how it all happened, but then\nat the trial he . . . tried to wriggle . . . he tried to soften his crime. \nThen they brought a videotape recorder, I guess, and played it, and said, \n\"Ismailov, look, is that you?\" He says, \"Yes.\" \"Well look, here you're \ndescribing everything as it was on the scene of the crime, right?\" He says, \n\"Yes.\" \"And now you're telling it differently?\" He says, \"Well maybe I \nforgot!\" Like that.\n\nThe witnesses and that criminal creep himself said that when the car was going\nalong Mir Street, there was a crowd of about 80 people . . . Shagen had a \nVolga GAZ-21. The 80 people surrounded his car, and all 80 of them were \ninvolved. One of them was this Ismailov guy, this Tale. They--it's unclear\nwho--started pulling Shagen out of the car. Well, one says from the left side\nof the car, another says from the right side. They pulled off his sports \njacket. He had a jacket on. Well they ask him, \"What's your nationality?\" He \nsays, \"Armenian.\" Well they say from the crowd they shouted, \"If he's an\nArmenian, kill him, kill him!\" They started beating him, they broke seven of\nhis ribs, and his heart . . . I don't know, they did something there, too \n. . . it's too awful to tell about. Anyway, they say this Tale guy . . . he \nhad an armature shaft. He says, \"I picked it up, it was lying near a bush, \nthat's where I got it.\" He said he picked it up, but the witnesses say that he\nhad already had it. He said, \"I hit him twice,\" he said, \" . . . once or twice\non the head with that rod.\" And he said that when he started to beat him \nShagen was sitting on the ground, and when he hit him he fell over. He said, \n\"I left, right nearby they were burning things or something in an apartment,\nkilling someone,\" he says, \"and I came back to look, is that Shagen alive or\nnot?\" I said, \"You wanted to finish him, right, and if he was still alive, you\ncame back to hit him again?\" He went back and looked and he was already dead.\n\"After that,\" that bastard Tale said, \"after that I went home.\"\n\nI said, \"You . . . you . . . little snake,\" I said, \"Are you a thief and a \nmurderer?\" Shagen had had money in his jacket, and a watch on his wrist. They\nwere taken. He says he didn't take them\n\nWhen they overturned and burned the car, that Tale was no longer there, it was\nother people who did that. Who it was, who turned over the car and who burned\nit, that hasn't been clarified as yet. I told the investigator, \"How can you \nhave the trial when you don't know who burned the car?\" He said something, but\nI didn't get what he was saying. But I said, \"You still haven't straightened \neverything out, I think that's unjust.\"\n\nWhen they burned the car he was lying next to it, and the fire spread to him. \nIn the death certificate it says that he had third-degree burns over 80\npercent of his body . . .\n\nAnd I ask again, why was he killed? My husband was a carpenter; he was a good \ncraftsman, he knew how to do everything, he even fixed his own car, with his \nown hands. We have three children. Three sons. Only Igor was with me at the \ntime. The older one was in Pyatigorsk, and the younger one is serving in the \nArmy. And now they're fatherless...\n\nI couldn't sit all the way through it. When the Procurator read up to 15\nyears' deprivation of freedom, I just . . . I went out of my mind, I didn't\nknow what to do with myself, I said, \"How can that be? You,\" I said, \"you are \nsaying that it was intentional murder and the sentence is 15 years' \ndeprivation of freedom?\" I screamed, I had my mind! I said, \"Let me at that\ncreep, with my bare hands I'll . . . \" A relative restrained me, and there\nwere all those military people there . . . I lest. I said,\" This isn't a \nSoviet trial, this is unjust!\" That's what I shouted, l said it and left . . .\n\nI said that on February 27, when those people were streaming down our street, \nthey were shouting, \"Long live Turkey!\" and \"Glory to Turkey!\" And during the \ntrial I said to that Ismailov, \"What does that mean, 'Glory to Turkey'?\" I \nstill don't understand what Turkey has to do with this, we live in the Soviet \nUnion. That Turkey told you to or is going to help you kill Armenians? I still\ndon't understand why \"Glory to Turkey!\" I asked that question twice and got no\nanswer . . . No one answered me . . .\n\n   May 19, 1988\n   Yerevan\n\n\t\t     - - - reference - - -\n\n[1] _The Sumgait Tragedy; Pogroms against Armenians in Soviet Azerbaijan,\n    Volume I, Eyewitness Accounts_, edited by Samuel Shahmuradian, forward by\n    Yelena Bonner, 1990, published by Aristide D. Caratzas, NY, pages 178-184\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1280, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: djweisbe@unix.amherst.edu (David Weisberger)\nSubject: Booting from B drive\nNntp-Posting-Host: amhux3.amherst.edu\nOrganization: large\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 17\n\nI have a 5 1/4\" drive as drive A.  How can I make the system boot from\nmy 3 1/2\" B drive?  (Optimally, the computer would be able to boot\nfrom either A or B, checking them in order for a bootable disk.  But\nif I have to switch cables around and simply switch the drives so that\nit can't boot 5 1/4\" disks, that's OK.  Also, boot_b won't do the trick\nfor me.)\n\nThanks,\n  Davebo\n\n--\nDavid Weisberger   | Q: Mr. President, do you care to say any more about the\n                   |    operational details of the airlift?\ndjweisbe           | THE PRESIDENT:  No.\n@unix.amherst.edu  | Q: How about explaining to the American people why it's\n                   |    an important issue for the United States to undertake?\n                   | THE PRESIDENT:  What?\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.061+0000", "event": "documents", "entityId": 1281, "properties": {"category": "misc.forsale", "text": "From: cxs2341@ultb.isc.rit.edu (C.X. Sawran)\nSubject: Bernoulli 44 Removeable SCSI Drive & Disks\nNntp-Posting-Host: ultb-gw.isc.rit.edu\nOrganization: Rochester Institute of Technology\nDistribution: usa\n\n    \n    Storage space for sale:\n    \n    Iomega 44 MB removeable HD for sale w/ 16 cartridges.\n    \n    Total storage space comes out to be about 750 MB.  6 cartridges still in\n    original shrinkwrapping, unused.  Note:  this is NOT compatible with\n    SysQuest 45 cartridges.\n    \n    SCSI interface required... plugs right into the back of Macintoshes,\n    but I don't have a controller for the IBM.  All utilities I have for it\n    are for the Mac.  If you have a Mac, then this is for you!  I have a\n    ton of software on these disks that I don't use anymore, because I sold\n    my mac system.  Stuff included:  Most of the PD stuff from info-mac\n    site, LOTS of GIF's, and LOTS of sound effects.  (1 entire disk with\n    just sounds)\n   \n    I am asking $900 for all, plus shipping.\n\n    For more information, send me mail (cxs2341@ultb.isc.rit.edu) or call\n    (716) 427-0701... ask for Sawran\n    \n    cheers\n    \n    chris\n    cxs2341@ultb.isc.rit.edu\n    cxs2341@ritvax.isc.rit.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1282, "properties": {"category": "sci.crypt", "text": "From: ted@nmsu.edu (Ted Dunning)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: Computing Research Lab\nLines: 36\n\t<1993Apr21.001230.26384@lokkur.dexter.mi.us>\n\t<C5uvn4.MF7@austin.ibm.com> <strnlghtC5wCMo.Fx5@netcom.com>\nNNTP-Posting-Host: lole.nmsu.edu\nIn-reply-to: strnlght@netcom.com's message of Thu, 22 Apr 1993 17:59:12 GMT\n\n\nIn article <strnlghtC5wCMo.Fx5@netcom.com> strnlght@netcom.com (David\nSternlight) writes:\n\n   >At the company I worked for previously, I received a file that was\n   >des encryped and the person that had sent it, went on vaction.\n   >Rather than wait two weeks I set up a straight frontal attack with\n   >one key at a time.  It only took two(2) days to crack the file.\n   >No, I don't have any faith in DES.\n   \n\n   Taking this at face value (though it seems quite dissonant with\n   much else that has been published here about brute force DES\n   cracking, unless Russell was lucky with respect to the key), I'd be\n   very interested in whether the program Russell used is available?\n\nkey search is very practical in many real situations since people use\nsuch stupid keys on the average.  password crackers know this well.\n\n   Depending on his answer, this could be an appalling development\n   calling into question both DES and RSA/DES.\n\nnot really.  in fact, public key based communication systems very\noften pick keys automatically which are much better than passwords or\npass phrases.\n\n   If any bright programmer with a little idle machine time can crack\n   a single DES message in a couple of days (assuming no tricks that\n   are message-specific),\n\nif a person picked the password or pass phrase, then the key search is\npretty straightforward.  in running english text, the average content\nof a single word is about 8 bits.  in pass phrases, this may increase\nto 10 bits or so.  searching 30bit spaces is semi-practical even in\nsoftware and searching 40bit spaces isn't outrageous to imagine with\nhardware assists of moderate size.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1283, "properties": {"category": "talk.politics.misc", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: The lessons of the NAZIs Re: David Irving - Scholastic fraud\nLines: 112\nReply-To: hallam@zeus02.desy.de\nOrganization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n\n\nIn responding to the post below I have considered issues far outside the\nscope of revisionism and principally have considered the political\nimplications of a racist ideology and its inevitable outcome. Thus it\nis tangentially relevant to soc.history and alt.revisionism but I have directed\nfollowups to t.p.m since it is principally consideration of the political\nlessons to be drawn from the history of the NAZI party that I deal with.\n\n\nIn article <1993Apr14.121823.21851@oneb.almanac.bc.ca>, kmcvay@oneb.almanac.bc.ca (Ken Mcvay) writes:\n\n|>As Dawidowicz points out, in \"The Holocaust and the Historians,\" (Harvard \n|>University Press, 34-38):\n|>\n|>\"...the nadir in Hitlerology is reached by David Irving's \"Hitler's\n|>War.\"<34> An amateur historian, whose reputation as a German apologist and\n|>as a writer without regard for accuracy or truth won him a measure of\n|>notoriety, <35> Irving produced a 926-page work intended to show that Hitler\n|>was kind to his animals and to his secretaries, that he was \"probably the\n|>weakest _leader_ Germany has known in this century,\" and that he did not\n|>murder the Jews or even wish to do so, but that the murder was committed\n|>behind his back, without his knowledge or consent.\" \n\nLet us assume for the sake of argument that this was indeed the case? Does\nthis mean that Hilter would have been in any way less guilty of mass murder\nbecause he aquiesced rather than participated as an active and ardent\nsupporter?\n\nOne of the important things to realise about the NAZIs is that the system\nwas far more evil than any single member. Once created the NAZI party\nitself was a murder machine that would inevitably commit genocide, there was\nnoone within it strong enough to prevent it. Remember that Hitler did not\noriginaly lead the NAZI party nor was he particularly powerful within it\nuntil his oratory allowed the party to come to power. Had Hitler reneged\nupon the emotiaonal expectations which he had created within the ranks of \nhis supporters he would have been replaced as he had himself replaced the\nold guard who he beleived were unable to grasp the intellectual implications\nof their rhetoric. \n\nThis is why all parties that espouse NAZI style race supremacy ideologies must\nbe considered as dangerous and as evil as the NAZIs. The idea that one \"race\"\nof people is inherently superior to another and that the greatest goal of\nhumanity is to achieve racial perfection has only one logical outcome,\nthe gas chambers of Auschwitz.\n\nThe NAZI party is not simply the tale of a supremely evil single man who\nlead an entire country astray, beyond the evil of individuals there was the\nevil of the system itself which was self generating and self perpetuating.\nHitler was an extreemly evil person who built his party arround an ego\ncult centered on the demonstration of his own power, this does not however\nmean that he was as entirely free from political constraints as he and\nhis propagandists worked so hard to assert. The myth that racism can\nproduce a strong government that can cure a nations ills must be \nemphatically rejected. In the same way we must accept a distinction between\na govenrment that demonstrates its strength and one that is able to \ngovern decisively in the manner it beleives is best. I would accept only the\nlatter as a \"strong\" government since most displays of strength are made\nnecessary by an essential weakness.\n\nIt is important to understand that the NAZIs were not stupid nor were they\namoral in the sense that they lacked moral scruples. They acted in the\nsame manner as the Spanish Inquisition - murder and torture in the cause\nof morality. The fault of the NAZIs lies in their axioms, not in their\nlogic nor in their implementation of those axioms. Thus all such parties\nsuch as the National Front or David Dukes Klu Klux Klan front who assert\nthe truth of those axioms must be considered for what they are, advocates\nof a system that would commit genocide. \n\nThe conclusion that Hitler was not only responsible but imensely evil is\ninescapable from the historical record. It is important though to not let\nthe conclusion be reached that the NAZIs espoused a set of ideas that\nwere basically correct but had an unfortunate proponent. The evils of\nthe concept of race supremacy are primary. Although this most emphaticaly\ndoes not excuse individual culpability this is nevertheless secondary.\n\nNo matter what the promises made by a racist, supremacist party upon \nelection those promises will be broken as soon as circumstances permit.\nIf this requires the replacement of the leaders that originally made\nthe pledges, that will occur. Hatred is a supreme justifier. It also creates\na dynamic of its own when those in government allow it reign. For many\nin government politics is a method of providing a justification for\ntheir own existence through a demonstration of their importance. A \nrhetoric of hatred inevitably develops the question of action since the\ncontinued existence of an object of hatred is inevitably a reminder of the\nessential impotence of the politician. Thus we have the US raid on Tripoli\nwhich has little purpose beyond a demonstration of power. It is important\nto realise that there is no quantum jump between the politics of the right\nand those of the extreeme right but a progression from the reinforcement\nof popular predjudice to action being taken on the basis of that predjudice.\nIn the same way the extreeme left trace their route to despotism through\ntheir assertion of the subjugation of the individual to ideology.\n\nIt is important though that in attempting to understand the dynamics\nof political systems that this is not used to excuse the participants. The\nleaders of a nation take on a supreme moral burden but not only do\nso voluntarily are required to stive to do so. Thus to take on such a \ntask without a fundamental examination of the logical progression of\nones set of axioms to its conclusion in itself is a moral crime. Furthermore\nin taking on such a duty one is obliged to put the interest of the whole\nbefore personal concerns, even of personal security.\n\nAlthough it was inevitable that a party such as the NAZIs, based upon hatred\nand an idolisation of the symbols of power should have saught to commit\ngenocide it was not inevitable that they should succeeded. Each member of\nthe system had an ability to create a change within it that had a possibility\nof changing the dynamic. Realising that the individual cannot hope to \ncontrol a system does not mean accepting that the individual cannot \naffect the system.\n\n\nPhill Hallam-Baker\nPhill Hallam-Baker\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1284, "properties": {"category": "rec.sport.baseball", "text": "From: philly@bach.udel.edu (Robert C Hite)\nSubject: Let's Talk Phillies\nNntp-Posting-Host: bach.udel.edu\nOrganization: University of Delaware\nLines: 20\n\nThe Phillies salvaged their weekend series against the Chicago Cubs\nby beating them 11-10 in a wild one at Wrigley Field Sunday\nafternoon.  It was the Phils only win in the three game series, and\nwas the first time the Phillies have lost a series in the young\nseason.   The Phils jumped to a 6-0 lead in the game thanks to 2\nJohn Kruk 2-run homers and two Wes Chamberlain homers.  However Danny\nJackson, and the Phillies middle relief was unable to hold the lead.\nMitch Williams entered the game with the Phillies leading 8-4,\nhowever Candy Maldonado hit a ninth inning homerun to tie it.  In\nthe 11th, Dave Hollins hit a three-run shot, his first of the year\nto push the Phils ahead to stay.  However, in a shaky bottom of the\n11th the Cubs scored 2 runs and had the tying runner on base when\nthe Cubs pinch hit Randy Myers for Bob Scanlan (they were out of\nposition players) and Myers bunted into a double play to end the\ngame.\n\nThe Phils bring their league leading 9-3 record back to action\nTuesday, Wednesday, and Thursday against the Padres.\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1285, "properties": {"category": "rec.motorcycles", "text": "From: davide@dcs.qmw.ac.uk (Dave Edmondson)\nSubject: Re: GPz900 runs like a bitch.\nOrganization: Computer Science Dept, QMW, University of London\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 31\n\nI tried mailing you but your domain seems not to exist, can't even get \nsinet.slb.com to admit to knowing about geco, anyway here we go:\n\nIn article <1q7kq1INNjl9@griffin.orpington.sgp.slb.com> you wrote:\n\n: Subject:GPz900 runs like a bitch.\n:    Anyone have a cure for sub zero running probs on a GPz 900.\n: Anything below 3000 revs and the bike wants to cut out all the time,\n: the recommended cure in the bike mags seems to be to switch off the engine\n: for a minute to thaw the ice,but this is obviously not mutch of a cure.\n: mine has had the kawasaki heated carb mod but the problem persists,\n: i've covered the rad which makes the bike run warmer and moves the problem\n: down the temp scale a degree or two.\n:    Has anyone tried a dynojet kit on the 900 or (getting desperate) different\n: carbs or the fuel injection off the GPz 1100.\n:\n\nHave you talked to Kawasaki, maybe they did another version of the upgrade\nkit.  Got to be worth a phone call.  Did you do the carb mod or did you buy it\nsecondhand from someone who said that it had been done.\n\nIs that Orpington in Kent?  If so have you heard of the Ogri mailing list\nwhich I run?  Its an email list for bikers in the UK and interested parties,\navailable live or as a daily digest.  Let me know if you want to subscribe.\n\nGood luck, Dave\n\n--\nDavid Edmondson                 davide@dcs.qmw.ac.uk\nQueen Mary & Westfield College  DoD#0777 Guzzi Le Mans 1000\n\"This means the end of the horse-drawn Zeppelin.\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1286, "properties": {"category": "sci.space", "text": "From: jcm@head-cfa.harvard.edu (Jonathan McDowell)\nSubject: Re: Shuttle Launch Question\nOrganization: Smithsonian Astrophysical Observatory, Cambridge, MA,  USA\nDistribution: sci\nLines: 23\n\nFrom article <C5owCB.n3p@world.std.com>, by tombaker@world.std.com (Tom A Baker):\n>>In article <C5JLwx.4H9.1@cs.cmu.edu>, ETRAT@ttacs1.ttu.edu (Pack Rat) writes...\n>>>\"Clear caution & warning memory.  Verify no unexpected\n>>>errors. ...\".  I am wondering what an \"expected error\" might\n>>>be.  Sorry if this is a really dumb question, but\n> \n> Parity errors in memory or previously known conditions that were waivered.\n>    \"Yes that is an error, but we already knew about it\"\n> I'd be curious as to what the real meaning of the quote is.\n> \n> tom\n\n\nMy understanding is that the 'expected errors' are basically\nknown bugs in the warning system software - things are checked\nthat don't have the right values in yet because they aren't\nset till after launch, and suchlike. Rather than fix the code\nand possibly introduce new bugs, they just tell the crew\n'ok, if you see a warning no. 213 before liftoff, ignore it'.\n\n - Jonathan\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1287, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bts@rock.concert.net (Bruce T Smith -- Personal Account)\nSubject: Disappearing hard drive in LC?\nOrganization: CONCERT-CONNECT -- Public Access UNIX\nLines: 31\n\nThe internal HD in my LC disappeared for a day last week, and I'd like to\nhear any (reasonable) theories folks can suggest for what happened.\n\nIt is an LC, with 10MB of RAM and an 80MB internal drive, running system\n7.1, with a few SCSI devices in a (so far as I know) properly terminated\nchain.\n\nI had shut down the system for a day-- I was out of town and we sometimes\nhave thunderstorms this time of year-- and upon restarting got a blinking\nquestion mark.  I booted from a floppy and saw that my external HD seemed\nokay, but there was no sign of the internal.\n\nI installed a system folder on the external and was, indeed, able to boot\nfrom it.  I tried things like Disk First Aid and Silverlining, to inquire\nabout the internal drive.  They either could not find it or got errors in\ntrying to talk to it. (Silverlining claimed it was a Connor drive, but it\nis a Quantum... )\n\nWell, I'd backed things up, so I was able to work.  But, at some point I\nnoticed that the internal had reappeared.  Now, Disk First Aid says that\nall's well, etc.  Things seem to be fine.\n\nBut, what happened?  Was this a warning that something (the internal HD\nor something else) is about to die?  I'm definitely nervous.\n\nAnd, if this is a signal that the internal HD is sick, is it true that I\ncan only put up to a 127MB drive inside an LC?  Some folks have claimed\nthere's a limitation in the LC (other'n size or power) while others (and\nthat includes LaCie, over the phone) say anything that fits is okay.\n\nThanks for answers.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1288, "properties": {"category": "comp.graphics", "text": "From: johnsh@rpi.edu (Hugh Johnson)\nSubject: Re: QuickTime movie available\nArticle-I.D.: mustang.johnsh-060493161931\nOrganization: Rensselaer Polytechnic Institute\nLines: 31\nNntp-Posting-Host: mustang.stu.rpi.edu\n\nIn article <johnsh-040493161915@mustang.stu.rpi.edu>, I wrote:\n> \n> I've used the recently-released Macintosh application MPEG to QuickTime to\n> convert the excellent MPEG \"canyon.mpg\" into a QuickTime movie.  While\n> anyone who would want this movie is perfectly able to convert it\n> themselves, I thought I'd let the net know that I'd be glad to mail copies\n> of mine out.  The movie conversion took close to SIX HOURS on my poor\n> little IIcx; in other words, unless you've got a Quadra, you might not want\n> to tie up your machine in converting this file.\n> \n> The movie is a fast fly-through of a fractal-generated canyon landscape. \n> The movie is 58 seconds long, and uses the compact video compressor (i.e.,\n> QuickTime v1.5).  The movie looks okay on 8-bit displays, and looks\n> absolutely awesome on 16- and 24-bit displays.\n> \n> I'd be happy to mail this movie to the first 20 or so people who ask for\n> it.  The only caveat is you need to be able to receive a nine-megabyte mail\n> message (the movie was stuff-it'ed down to seven megs, but binhex ruined\n> that party).  If more then 20 people want this movie, then it's just more\n> evidence that the net needs a dedicated QuickTime FTP archive site.  C'mon,\n> someone's gotta have a spare 1.2GB drive out there...\n\nOkay, I've received a whole lot of requests for the movie, so for\nsimplicity's sake I can't mail out any more than I've already received (as\nof 16:30 EDT, Tuesday).  Maybe it'll pop up on a site sooner or later.\n\n==============================================================================\nHugh Johnson (johnsh@rpi.edu)    | \nRensselaer Polytechnic Institute |            Welcome to Macintosh.\nTroy, New York, USA              |\n==============================================================================\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1289, "properties": {"category": "talk.politics.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: National Sales Tax, The Movie\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 38\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, ckincy@cs.umr.edu (Charles Kincy) says:\n\n>Let the \"GREAT CHUCKMEISTER\" make a couple predictions, if you\n>will:\n>\n>1.  The sun will rise tomorrow.\n>2.  Rush will bash Clinton on his next show.\n>3.  I will turn out to be Clinton's love child.\n\n\n     Hey, *I* wasn't the one dancing and singing on Jan. 20, now\n     WAS I?   I was roundly ridiculed for my \"predictions\".\n\n     Sure they were easy.  TEll that to the other 43% of the people. :)\n\n\n>\n>+----------------+\n>|     SUCKA!     |\n>|                |\n>|  Made in USA   |  \n>+----------------+\n>\n>Hook, line, and sinker!  *chuckle*\n\n\n      Just WAIT until the see what Clinton has planned for \n      their pension funds!  :)  This one doesn't take much thinking\n       either.    Uncle Sam needs money, BAD, and pension funds got it.\n\n      Well, they USED to have it.  Turns out the states  have been\n      plundering state employee funds for the past 2-3 years.  ;)\n\n       Ah, it's gonna be SWELL!\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1290, "properties": {"category": "talk.politics.guns", "text": "From: phz@cadence.com (Pete Zakel)\nSubject: Re: Some more about gun control...\nNntp-Posting-Host: cds709.cadence.com\nOrganization: Cadence Design Systems, Inc.\nLines: 24\n\nIn article <1993Apr16.010235.14225@mtu.edu> cescript@mtu.edu (Charles Scripter) writes:\n>You didn't even get the capitalization correct!  Try reading USCA on\n>the Constitution, or get any other CORRECT version of the\n>Constitution. \n\nThis is REALLY STUPID nitpicking.  Capitalization rules in the late 18th\ncentury were quite different from today, and what was posted matches current\ncapitalization rules.\n\nWe also don't make 's' look like 'f' and other such things done in the late\nseventeen hundreds.\n\nIn the original Constitution, \"militia\", \"arms\", etc. were capitalized simply\nbecause they were nouns.  This is also done currently in German.  There is\nno special significance to these words simply because they are capitalized.\nThe capitalization denotes no special emphasis.\n\n-Pete Zakel\n (phz@cadence.com or ..!uunet!cadence!phz)\n\n\tARIES (Mar 21 - Apr 19)\nYou are the pioneer type and hold most people in contempt.  You are\nquick tempered, impatient, and scornful of advice.  You are not very\nnice.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1291, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Sunrise/ sunset times\nOrganization: U of Toronto Zoology\nLines: 14\n\nIn article <1r6f3a$2ai@news.umbc.edu> rouben@math9.math.umbc.edu (Rouben Rostamian) writes:\n>>Hello. I am looking for a program (or algorithm) that can be used\n>>to compute sunrise and sunset times.\n>\n>Here is a computation I did a long time ago that computes the length\n>of the daylight.  You should be able to convert the information here\n>to sunrise and sunset times.\n\nSorry, not so -- the changes in sunrise and sunset times are not\nquite synchronized.  For example, neither the earliest sunrise nor the\nlatest sunset comes on the longest day of the year.\n\nYou can derive day length from sunrise and sunset times, but not\nvice-versa.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1292, "properties": {"category": "comp.graphics", "text": "From: ab@nova.cc.purdue.edu (Allen B)\nSubject: Re: Fractals? What good are they ?\nOrganization: Purdue University\nLines: 16\n\nIn article <mdpyssc.2@fs1.mcc.ac.uk> mdpyssc@fs1.mcc.ac.uk (Sue Cunningham)  \nwrites:\n> We have been using Iterated Systems compression board to compress \n> pathology images and are getting ratios of 40:1 to 70:1 without too\n> much loss in quality. It is taking about 4 mins per image to compress,\n> on a 25Mhz 486 but decompression is almost real time on a 386 in software \n> alone.\n\nHow does that compare with JPEG on the same images and hardware as far\nas size, speed, and image quality are concerned?\n\nDespite my skeptical and sometimes nearly rabid postings\ncriticizing Barnsley and company, I am very interested in the\ntechnique.  If I weren't I probably wouldn't be so critical. :-)\n\nab\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1293, "properties": {"category": "misc.forsale", "text": "Organization: The American University - University Computing Center\nFrom: Joseph Dresnok III <JDRESNO@auvm.american.edu>\nSubject: !!!!JAZZ CD 4 sale/trade!\nLines: 7\n\nI have an unopened CD called \"Bird-The Original Recordings of Charlie\nParker\"  It has on it, among others: Miles Davis, Dizzy Gillespie,\nRed Rodney, Thelonious Monk, and Lester Young.\nI would be willing to sell it to the highest bidder, or else to trade\nit for another jazz CD that I would be interested in.\n\n joe\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1294, "properties": {"category": "rec.motorcycles", "text": "From: frog@sarvax.cmhnet.org (Jeff 'Frog' Campbell)\nSubject: Re: BMW MOA members read this!\nOrganization: Comp3, Inc.\nLines: 28\n\nFrom article <C5px3n.Kw0@murdoch.acc.Virginia.EDU>, by cdw2t@dayhoff.med.Virginia.EDU (Dances With Federal Rangers):\n> In article <1098@rider.UUCP> joe@rider.cactus.org writes:\n>>cdw2t@dayhoff.med.Virginia.EDU (Dances With Federal Rangers) writes:\n> \n>>]I'm going to buy a BMW just to cast a vote for Groucho.\n> \n>>I thought you were gonna buy a BMW for its superior power and handling...\n> \n> Yes, but the 535i was just a tad out of my price range...\n> \n> \n> ObMotoWashing: Is it just me, or does everyone cut their finger(s) on the\n> Evil Cotterpin (tm), lurking somewhere in the dark recesses of the back end\n> of the bike, when giving the prized moto a bath?  I seem to slice the pinkie\n> of one hand or the other *every* time (*both* of them this time!).\n> \n> Ride safe, send me your old MOA rags, y'all,\n> ----------------------------------------------------------------------------\n> |        Cliff Weston           DoD# 0598          '92 Seca II             |\n> |                                                                          |\n> |  I thought it might be cool to have the whole bike done in powder coat,  |\n> |      like maybe a black undercoat with neon splatter, or something.      |\n> |                           -- Brian W Simmons                             |\n> ----------------------------------------------------------------------------\n\nIt's you. Beemers have no EC (tm).\n-- \n***  Jeff Campbell  N8WXS  '76 R75/6  70010,160  frog@sarvax.cmhnet.org  ***\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1295, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: frode@zevs.ifi.unit.no (Frode Kvam)\nSubject: FTP-site for .WAV-files\nOrganization: Institutt for informatikk, Universitetet i Tr.heim, AVH\nX-Newsreader: Tin 1.1 PL4\nLines: 27\n\nHello everybody...\n\nAre there any ftp-sites with wav-files available???\nFrode Kvam :-)\n\n\n--\n_______________________________________________________________________________\n  _/_/_/_/_/   _/_/_/_/        _/_/_/     _/_/_/       _/_/_/_/_/\n  _/           _/      _/    _/      _/   _/    _/     _/\n  _/           _/      _/    _/      _/   _/      _/   _/\n  _/_/_/       _/_/_/_/      _/      _/   _/      _/   _/_/_/\n  _/           _/    _/      _/      _/   _/      _/   _/\n  _/           _/      _/    _/      _/   _/    _/     _/\n  _/           _/      _/      _/_/_/     _/_/_/       _/_/_/_/_/    (C)\n_______________________________________________________________________________\n  Name:         Frode Kvam\n  Univ:         University of Trondheim, dept of informatics\n  E-mail:       frode@ifi.unit.no\n  Snail-mail:   Lademoens Kirkealle 8\n                7042 TRONDHEIM\n  Voice:        + 47 7 50 45 06\n_______________________________________________________________________________\n\n          *** Beware of Programmers who carry screwdrivers.  ***\n_______________________________________________________________________________\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1296, "properties": {"category": "sci.electronics", "text": "From: rkim@mars.uucp (Richard H.S. Kim)\nSubject: Need sources for HV capacitors.\nArticle-I.D.: nic.1993Apr5.213718.4721\nDistribution: usa\nOrganization: Triacus Inc.\nLines: 26\nNntp-Posting-Host: mars.calstatela.edu\n\nRecently, my video monitor went dead, no picture, some low distorted sound.\nI didn't hear the tell-tale cracking that indicated HV at work, nor are the\nfilaments at the far end of the tube glowing orange, just nothing.\n\nOn examining the power board, I noticed the largest capacitor with a very\nbad bulge at the top.  Naturally, I want to replace it, but I can't find\nany sources.\n\nThe electrolytic capacitor is 330 mF at 250WV.  It has radial leads, and is\nroughly 1 1/2 inches long, 1 1/8\" wide.  The dimensions are important since\nthe whole board fits in a metal cage, leaving little room.\n\nLiving in the Los Angeles area, I've been to numerous stores (Dow Radio,\nAll Electronics, ITC Elect, Sandy's, Yale Elect) with empty hands.\n\nCan anyone suggest sources for high-voltage capacitors?  Mail order is \nfine, although I'd rather check out a store to compare the can.  I'm going\nto try a video electronics store, hopefully they'll have HV caps.\n\n(By the way, the monitor is a ATARI SC1224, Goldstar circuitry, Masushita\ntube.  Anyone else had problems?)\n\nThanks in advance,\nRich K.\n\nemail>  rkim@opus.calstatela.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1297, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: migraine and exercise\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 20\n\nIn article <C4Iozx.7wx@world.std.com> rsilver@world.std.com (Richard Silver) writes:\n\n>I have two questions. Is there any obvious connection between the\n>flushed appearance and the migraine? Was I foolish to play through\n>the migraine (aside from the visual disturbance affecting my play)?\n>I just prefer to ignore it when possible.\n>\n\nThe flushing is due to vascular dilation, part of a migraine attack.\nSome people event get puffy and swollen.  As long as you are careful\nyou can see well enough to avoid getting hit in the face or eye by\nthe ball, migraine will not hurt your health.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1298, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Robert Everett Brunskill <rb6t+@andrew.cmu.edu>\nSubject: Re: $$$ to fix TRACKBALL\nOrganization: Freshman, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 7\nNNTP-Posting-Host: po4.andrew.cmu.edu\nIn-Reply-To: <93105.152944BR4416A@auvm.american.edu>\n\nOf course, if you want to check the honesty of your dealler, take it in\nknowing what's wrong, and ask them to tell you. :)\n\nOf course he'll probably know right a way, then charge you a $20 service\nfee. :)\n\nRob\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1299, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: Which Gehrels? (was Re: Comet in Temporary Orbit Around Jupiter?)\nOrganization: Fermi National Accelerator Laboratory\nLines: 30\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <1993Apr21.170817.15845@sq.sq.com>, msb@sq.sq.com (Mark Brader) writes:\n> \n>> > > Also, peri[jove]s of Gehrels3 were:\n> \n> Thanks again.  One final question.  The name Gehrels wasn't known to\n> me before this thread came up, but the May issue of Scientific American\n> has an article about the \"Inconstant Cosmos\", with a photo of Neil\n> Gehrels, project scientist for NASA's Compton Gamma Ray Observatory.\n> Same person?\n\nI would guess not.  Dr. Neil Gehrels of CGRO is the son of Dr. Tom\nGehrels of the University of Arizona.  Since he's long had research\ninterests in asteroids and other solar-system astronomy, Tom is the\none more likely to have discovered  a comet (and thus had his name\nattached to it).\n\nTom Gehrels is a leader in the Spacewatch project, which has recently\nincreased mankind's discovery rate on near-Earth asteroids (they're\nfinding a couple every month).  For much more on this interesting guy,\nread his autobiography, *On a Glassy Sea*.\n\n\"Do you know the asteroids, Mr.Kemp?...    Bill Higgins\nHundreds of thousands of them.  All        \nwandering around the Sun in strange        Fermilab\norbits.  Some never named, never\ncharted.  The orphans of the Solar         higgins@fnal.fnal.gov\nSystem, Mr. Kemp.\"\n                                           higgins@fnal.bitnet\n\"And you want to become a father.\"\n  --*Moon Zero Two*                        SPAN/Hepnet: 43011::HIGGINS\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1300, "properties": {"category": "talk.politics.mideast", "text": "From: hm@cs.brown.edu (Harry Mamaysky)\nSubject: Dir Yassin\nIn-Reply-To: aurag@ERE.UMontreal.CA's message of Fri, 23 Apr 1993 18:48:15 GMT\nOrganization: Dept. of Computer Science, Brown University\nLines: 34\n\n\n\nFrom _Myths and Facts_, by Leonard J. Davis, Near East Research Inc.,\n1989:\n\n[pp. 108-109]\n\n    \"Unlike the PLO's almost exclusive focus on civilian targets, the\n100 troups from the Irgun and Stern group that struck at Deir Yassin\non April 10, 1948, targeted the village for its military importance.\nDeir Yassin was on the road to Jerusalem, which the Arabs had\nblockaded, and it housed Iraqi troups and Palestinian irregulars.\nSnipers based in Deir Yassin were a constant threat to Jewish citizens\nin Jerusalem.\n\n    \"Arab civilians were killed at Deir Yassin, but that attack does\nnot conform to the propaganda picture that the Arabs have tried to\npaint. The number of Arabs killed was generally reported to be about\n250. In 1983, however, Eric Silver of _The Guardian_ (Britain)\ninterviewed a survivor, Mophammed Sammour, who testified that 116 out\nof a population of 800-1000 were killed. 'About three days after the\nmassacre,' Sammour explained, 'representatives of each of the five\nclans in Deir Yassin met at the Moslem offices in Jerusalem and made a\nlist of the people who had not been found (alive). We went through the\nnames.  Nothing has happend since 1948 to make me think this figure\nwas wrong.'\n\n    \"Unlike the PLO's deliberate attacks on civilians, the killing of\ncivilians at Deir Yassin was not premeditated. The attackers left open\nan escape corridor from the village and more than 200 residents left\nunharmed. After the remaining Arabs feigned surrender and then fired\non the Jewish troops, some of the attackers killed Arab soldiers and\ncivilians indiscriminately. Independent observers told _The Guardian_\nthat among the bodies they found Arab men disguised as women.\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1301, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Old Predictions to laugh at...\nSummary: LONG!\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 404\n\n\nOops!  I came across this file from last year.  Thought you might\nenjoy some of these thoughts.  The predictions were made on the\ndate indicated.  They are largely out of order.\n\n------------------------------------------------------------------------------\n\nJune 11, 1992\ntedward@cs.cornell.edu (ME!)\n>What have I done?  I computed the \"expected winning percentage\" for\n>each team from their OBP, total bases, and runs allowed.  I use the\n>basic RC formula and the pythagorean projection.  I then compare this\n>with their actual winning percentage.  All stats through June 7.\n>\n>Team           OBP    TB    RA     W     L    XWP  Diff\n>baltimore    0.351   768   199    33    21  0.647   -36\n>boston       0.334   580   176    26    25  0.548   -38\n>toronto      0.319   750   221    34    22  0.540    68\n>new york     0.327   759   237    28    26  0.523    -5\n>milwaukee    0.325   692   226    28    25  0.498    31\n>detroit      0.328   782   285    24    31  0.448   -11\n>cleveland    0.316   688   274    22    34  0.386     7\n\n>minnesota    0.353   797   237    30    24  0.585   -29\n>oakland      0.350   719   236    32    23  0.532    50\n>texas        0.324   815   281    33    26  0.469    90\n>chicago      0.325   601   212    25    27  0.459    22\n>california   0.307   664   231    22    32  0.438   -30\n>kansas city  0.310   656   239    22    32  0.420   -13\n>seattle      0.310   726   290    22    33  0.376    24\n\nYou all know how things turned out.  The Orioles, Red Sox, and Yankees\nall disappeared.  The Jays and Tigers continued at essentially the\nexpected pace.  The Brewers and Indians cranked in the second half.\n\nThe Rangers predictably took a dive.  That shouldn't have surprised\nanybody.  Meanwhile, as predicted, the Mariners dropped behind the\nAngels and Royals.  They clearly didn't deserve the 22-33 record in\nJune.  The White Sox and A's upped their game a bit, while the Twins\ndropped off a little.  But for the most part things were as expected.\n\nOkay, so there were a few blatant errors.  But for a predictive\ncalculation, I thought this did pretty well.\n------------------------------------------------------------------------------\n\nFrom CAVGEOE@YaleVM.YCC.Yale.Edu Tue Mar 31 16:36:34 1992\n>1. The Braves insert Kent Mercker into the starting rotation\n>sometime this year (1992).  Bielecki is traded or released, Lei-\n>brandt becomes the fifth starter, and the best bullpen in baseball\n>has Pena, Berenguer, Stanton, Wohlers, Freeman, and Pete Smith, who\n>spot-starts as well.\n\nHm.  Pete Smith made the rotation instead of Mercker.  And Bielecki\nwasn't released until the end of the year.  I won't comment on the\nbullpen.  (Jeff Reardon???  :-)\n\n>2. Blauser wins the starting shortstop job outright by the end\n>of May.  Bream goes on the DL, and Klesko goes on a nice hitting\n>honeymoon (a la Gregg Jefferies in 1988) platooning with Hunter.\n>Mitchell wins the center field job a bit later (All-Star break?) and\n>Nixon stays on as a valuable pinch-runner.  Lonnie is released unless\n>the Braves find a taker in a trade.\n\nRight on Blauser.  Wrong on Bream and Mitchell.  A bit early on\nLonnie, as with Bielecki.  Didn't pick Sanders.  (Did anybody? :-)\n\n>3. Managers to be fired this year (1992) in chronological order:\n>Fregosi, Showalter, Valentine, Riddoch\n\nThree of them went, right?  Showalter is still around (and likely to\nstick, it seems).\n------------------------------------------------------------------------------\n\n\nFrom mattel.Auto-trol.COM!mattel@auto-trol.com Tue Mar 31 17:04:22 1992\n>1) Bonds gets traded from Bucs for some young talent.\n\nNope!  They won the division, and so kept him for a shot at the\nplayoffs.\n\n>2) Mets win division\n\n:-)  Well, they didn't finish last.\n\n>3) Atlanta repeats in the West\n\nGot that one right.\n\n>4) Yankees surprise everyone, but finish second behind Toronto.\n\nNope.\n\n>5) Dwight Gooden wins 20, but is surpassed by Saberhagen who wins 22.\n\nI guess this is why you picked the Mets to win, huh?\n\n>6) Roger Clemens is injured early in the season.\n\nTsk Tsk.  Not nice to predict something like this.\n\n>7) Strawberry fails to hit even 20 home runs and is often injured.\n>8) Due to 7, Dodgers drop out of race.\n\nYou got that right!\n\n------------------------------------------------------------------------------\n\nAnd my response...\n\n>From tedward Tue Mar 31 17:57:42 1992\n>\n>Hmph!  Can tell you are a Mets fan!  Do you mind if I make some counter\n>predictions against yours?  They follow:\n>2) Mets come in third, behind Pittsburgh and Montreal.\n\nOkay, so the Mets finished fifth.  But I got the Pirates and Expos\nright!\n\n>4) The Yankees offense and pitching flounders, dropping them to fourth\n>   place in the AL East.  Boston wins 95 games, the division, the pennant,\n>   and the World Series.\n\nFirst half?  Dead on!  Second half?  Ummm....  I'm a Sox fan, go easy\non me!\n\n>5) Dwight Gooden rushes his comeback, gets blown out, and goes on the DL from\n>   May through mid-July.\n>   Saberhagen runs a .500 record; WFAN criticizes the Mets for \"giving away\n>   that great talent Jefferies\", who has a solid year in KC.\n\nSo I got my predictions for Gooden and Saberhagen reversed.  :-)  I\nwas at least *close*, and was right about Jefferies.  (Though I don't\nknow.  HAS WFAN criticized the Jefferies trade?)\n\n>6) Roger Clemens wins another CY, as well as 20 games.\n\nClose.  No cigar.\n\n------------------------------------------------------------------------------\n\nIn article <UdqcEAO00VpeII_lI1@andrew.cmu.edu>, al1x+@andrew.cmu.edu (Amit Likhyani) writes:\n> Excerpts from netnews.rec.sport.baseball: 1-Apr-92 Re: NL East( Smiley\n> trade's.. CAVGEOE@YaleVM.YCC.Yale. (591)\n> \n>>      OPS Projected for 1992:\n>>                              HoJo .792\n> \n> I will streak naked down Forbes avenue if HoJo does not muster more than\n> a .792 OPS.  Something is wrong with that projection.\n\nSome predictions need no introduction!\n\n------------------------------------------------------------------------------\n\n>From navarra@casbah.acns.nwu.edu Mon Apr 13 02:09:15 1992\n>>From tedward@cs.cornell.edu\n>>Do you care to put your prediction down for posterity?  You predict\n>>Mark Grace will get 90+ RBIs.  I say you are out of your mind.  That\n>>is almost impossible for a 10-HR type guy batting behind Dawson.  (Who\n>>kills most of the rallies he doesn't finish.)\n>\n>\tWhy do you say that? Mark has driven in 82 ('90) and 79 ('89).\n>Last year Mark was batting second primarily and it was his worse year\n>average wise. Since he is batting either 3rd or 5th this year I predict \n>he will be back up to his previous standards (I think he will be better)\n>90 rbi's is not that much of a stretch.\n\nSometimes us statheads get lucky.  Grace *didn't* hit behind Dawson\nthe entire season, but he also finished with only 79 RBIs.\n\n------------------------------------------------------------------------------\n\n>From nss3@midway.uchicago.edu Tue May 19 22:09:06 1992\n>\n>The most ballsy prediction ever:\n>\n>Mark McGwire will hit 61 or more HRs this year.\n\nNope.  He slowed down, and the injury finished him off.  Didn't\neven reach 50.  But a ballsy prediction, nonetheless.\n\n------------------------------------------------------------------------------\n\nFrom ECAXRON@MARS.LERC.NASA.GOV Thu May 21 16:42:21 1992\n>(1) Baltimore will not fade.  They will not win the division this year,\n>    but they will finish within five games.  I find the prospect of two\n>    Orioles winning 20 each easier to comprehend than that of two Sox.\n>    No offense - I think their pitching is about as good as the division\n>    has to offer.\n\nThe Orioles finished seven games out.  None of them won 20 (though\nMussina might have had a chance, with better relief and more starts).\n\n>(2) Nobody else in the division is worth a darn.  They all finish a minimum\n>    of fifteen games out, the Tribe 30.  That's another reason to watch\n>    Baltimore this year and next - they won't waste many of those games \n>    against the rest of the division.\n\nExcept for the Brewers (who you probably forgot), you were right!  The\nrest of the division was thoroughly mediocre.  The Yankees and Indians\n\"led\" with 76 wins, the Red Sox \"trailed\" with 73 wins.  None were\nhorrible, but four were five or more games below .500.\n\n------------------------------------------------------------------------------\nFrom: djohnson@cayley.uwaterloo.ca (David Johnson)\nDate: Thu, 6 Aug 1992 15:47:30 GMT\n\n>Right.  That was me.  I never said the Jays were a cinch to clinch it\n>but I said that Milwaukee will be more of a threat than Baltimore.  I\n>do think that Toronto should win it but after '87 I don't consider\n>anything a cinch unless you have something like a 4 game lead with 3\n>games to go.  I do think that the Jays have the best talented team in\n>the AL East and if we had a good, or even average manager we might\n>have a bigger lead right now.  I also think that the Orioles will not\n>play much better than .500 baseball for the rest of the season.\n\nYou win!\n\n------------------------------------------------------------------------------\n\nFrom king@cogsci.UCSD.EDU Thu Nov 14 14:33:45 1991\n>\n>In article <1991Nov13.060413.9187@cs.cornell.edu> you write:\n>>7. Indians\tthe first and only 0-162 season ever!  :-)\n>\n>Prediction:  The Cleveland indians will win 70 or more games next year.\n\nYou were right!\n\n------------------------------------------------------------------------------\n\nFrom stvjas@meteor.wisc.edu Fri Sep 13 01:15:52 1991\n>\n>1. Jose Rijo will win the 1992 Cy Young award IF he is healthy enough to go\n>at least 210 IP. (Who would have thought he would try to steal a base? Why\n>risk such an injury???)\n\nHe had 211 IP, but didn't win the Cy Young.  Maddux surprised all.\n\n>2. The Orioles will win 88+ games in at least 3 of the next 6 years\n>(probably the last 3) and their pitching staff will have a team ERA\n>among the best 4 in the AL in at least 3 of the next 6 years (but not\n>necessarily all the same years as they win 88+). This one will take a\n>long time to verify.\n\nI don't think I want to wait that long.  But they won 89 games last\nyear, and they were fifth in the league in ERA.  Not a bad start.\n\n>4. Ben McDonald will not challenge for an ERA title in the next 2\n>years, nor will he have 18+ victories either year. (By challenge, I\n>mean FINISH among the leaders; being among the leaders BEFORE the\n>season is done doesn't count.)  He will probably never be the pitcher\n>he was hyped to be, but is still a decent starter to have.\n\nLooks like it.  He wasn't bad last year, just too consistent to be an\nace.  So far this year looks like more of the same.\n\n>5. The Phillies will give up *many* fewer walks if/when they get rid of their\n>bullpen coach (Ryan). (I am not predicting when or whether they will get rid\n>of him, and you will have to give the team a little bit of time to adjust \n>before seeing the radical change. They would have a fine pitching staff if \n>they would just steal Ray Miller away from Pittsburg. The White Sox seem to\n>have the same problem, but not as bad.)\n\nI honestly can't say.  Did they get rid of him?  Their BB totals were\ndown last year.\n\n>7. Ricky Jordan will have 90+ rbi IF he starts 145+ games, hitting in\n>the 3 or 4 or 5 spot in any lineup or the 6 spot in a lineup with very\n>good OBP in the 4,5 hitters. This applies for each of the next 3\n>years.\n\nI just don't think he's that good....\n\n>12. Billy Ripken will *never* again hit over .240 with 400+ AB.\n\n:-)  So far, so good.  I'm *definitely* not waiting to check this one.\n\n-------------------------------------------------------------------------------\n\nFrom panix!spira@cmcl2.NYU.EDU Fri Sep 13 12:38:08 1991\n>\n>No matter what Lou Gorman and his scouts say, Paul Quantrill will\n>never ever be an adequate major league starter.  Never!  (I have never\n>seen a starting pitcher who can only strike out 3 per 9 innings at AAA\n>be successful in the majors.)\n\nCurrent plans seem to be to use Quantrill in long relief.  He has a\nrubber arm and unusual delivery.  He might be decent in that role.\n\n-------------------------------------------------------------------------------\n\nFrom lyle@ecn.purdue.edu Sat Sep 14 01:51:28 1991\n>      M.V.P. - `92\n>A.L. - Frank Thomas\n>N.L. - Hal Morris\n>\n>      Division Winners - `92\n>A.L. East - Baltimore Orioles\n>A.L. West - Chicago White Sox\n>A.L. Pennant - Chicago White Sox\n>N.L. East - St. Louis Cardinals\n>N.L. West - Cincinatti Reds\n>N.L. Pennant - Cincinatti Reds\n>W.S. Champion - Cincinatti Reds\n\nWrong on all of the above.  (Hal Morris????) \n\n-------------------------------------------------------------------------------\n\nAnd my favorites!\n\nFrom tedward Sun Oct 20 23:52:57 1991\n>\n>Belle will not walk as many as 50 times in 1992.\n>Belle will hit more HR than he has walks in 1992.\n\nBelle hit 34 HR last year, walking 52 times (but five of those were\nintentional!).  Okay, so I exaggerate.  But I *might* have been right.\n\n------------------------------------------------------------------------------\n\nFrom trn@strdev.jhuapl.edu Tue Mar 31 15:25:28 1992\n>\n>> Are the O's going to sign Cal, of is Eli's wallet welded shut (outgoing \n>> money only, wide open for incoming cash 8-))\n>\n>My prediction (which you may make note of, Valentine :-) ), is that Eli Jacobs\n>will defer any serious negotiations on Cal Ripken's contract until the '92\n>season is over.  Eli will give Cal every opportunity to have his stats tumble\n>a bit from last year's pace before coming forth with an offer.\n>\n>(Despite claims that OP@CY was designed to Cal's strength, my feeling is that\n>the 411 foot left-center \"canyon\" will cut down on Cal's power stats.)\n>\n>After all, it's hard to credibly to offer $3-4 million/year to an\n>All-Star game MVP/AL MVP/Gold Glove shortstop/baseball deity :-) --\n>but it'd be a lot easier to offer a similar salary to an \"obviously\n>declining but above average\" shortstop who had a career year one full\n>season ago.\n>\n>Of course, if Cal *does* match his '91 numbers, then Eli is going to be faced\n>with a rather huge (and expensive) problem...\n\nHow much did Cal sign for?  When did he sign?  If I remember\ncorrectly, he got a rather hefty contract despite a weak season.\n\n------------------------------------------------------------------------------\n\nAnd finally....\n\nFrom jpalmer@uwovax.uwo.ca Thu Sep 12 10:35:58 1991\n>\n>Generally, because of expansion in 1993, there will be a lot of\n>mediocre talent hanging around. Much of it will not make it, as the\n>expansion teams look for younger talent around which to build their\n>teams. My specific predictions:\n>\n>As of April 7, 1993:\n>\n>Jim Acker and Cory Snider will be selling aluminum siding.\n\nSnyder is still in SF.  Acker is gone??\n\n>Neither Charlie Kerfeld nor Vance Lovelace (presently in Tiger AA but\n>formerly big leaguers) will be playing professional ball.\n\nThey aren't in the majors.\n\n>Nor will Dave Rozema (who says he's keeping in shape with a hope for\n>another shot with expansion).\n\nNever heard of him.\n\n>Shawn Hare and Jody Hurst will be in the major leagues.\n>(They are outfielders in the Tiger minor league system)\n\nI don't *think* they are in the majors.\n\n>Ron Hassey will be a minor league manager with the Yankees.\n\nDunno what happened to him.\n\n>It will be bye-bye for Balboni.\n\nIf he's still around, he's stuck in the minors.\n\n>Bo Jackson will _not_ be a starter.\n\nHm.  With Raines out, Bo looks to get a lot of PT.\n\n>Gary Huckaby will have moved to Alaska permanently (they're on the\n>net!), \n\n:-)\n\n>and Dave Kirsch will return to Canada to live.\n\nHm.\n\n------------------------------------------------------------------------------\n\nThanks for listening!\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1302, "properties": {"category": "comp.graphics", "text": "From: disser@engin.umich.edu (David Disser)\nSubject: 2D bitmap interpolation\nOrganization: University of Michigan\nLines: 11\nDistribution: world\nNNTP-Posting-Host: vesuvius.engin.umich.edu\n\n\nYesterday I wrote a program to do bilinear interpolation ala Numerical\nRecipes, with the PBMPLUS libraries.  I'm pretty happy with the results,\nbut I'm looking for any already-coded non-linear interpolation schemes\nbefore I go ahead an try to write one.  Any pointers?\n\n--\n\n) Dave Disser                 UM-CAEN User Services         Wealth is wasted\n) disser@engin.umich.edu      229 Chrysler Center           on the old.\n) (313) 763-3067              Ann Arbor, MI 48109-2092\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1303, "properties": {"category": "talk.politics.mideast", "text": "From: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nSubject: Re: was:Go Hezbollah!\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nOrganization: Columbia University\nLines: 28\n\nIn article <1993Apr16.130037.18830@ncsu.edu> hernlem@chess.ncsu.edu (Brad Hernlem) writes:\n>\n>In article <2BCE0918.6105@news.service.uci.edu>, tclock@orion.oac.uci.edu (Tim Clock) writes:\n>|\n>|> In article <Apr15.175334.72079@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n>|> >\n\n\n>Tim, you are ignoring the fact that the Palestinians in Lebanon have been\n>disarmed. Hezbollah remains the only independent militia. Hezbollah does\n>not attack Israel except at a few times such as when the IDF burned up\n>Sheikh Mosavi, his wife, and young son. Of course, if Israel would withdraw\n>from Lebanon and stop assassinating people and shelling villages they wouldn't\n>make the Lebanese so mad as to do that. Furthermore, with Hezbollah \n>subsequently disarmed, it would not be possible.\n\n\nJust to address this one point, what about the two Katyusha rocket \nattacks made within Lebanon, for which Fatah claimed responsibility.\nI didn't realize that one can use Katyushas while onr is disarmed.\nAlso, Page 8 of today's New York Times, Faisal Saleh, a high ranking \nFatah official, and his 9 month old son were gunned down in Beirut \nby members of Abu Nidal.  There have been 46 assasination attempts \nin 1993 alone in the fued between these two factions, resulting in\n11 deaths.\n\nAmir\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.062+0000", "event": "documents", "entityId": 1304, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jartsu@hut.fi (Jartsu)\nSubject: HELP WANTED! Monitor problems (NEC 3D & IIvi) \nNntp-Posting-Host: lk-hp-15.hut.fi\nReply-To: jartsu@vipunen.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 107\n\n\nHello all!\n\nFor few past days I've been fighting to get My NEC Multisync 3D\n(predecessor of 3FG) to work properly with the internal video of Mac\nIIvi.\n\nWith a VGA-adapter (as described in Dale Adams' posting about Quadra\nvideo) it works, only some minor interferences occur, small enough not\nto prevent any action on screen to be visible & clear.\n\nBut because the scanrates & stuff of 3D are well enough for emulating\nApple 13\" RGB, I first made an adapter, then got one fron the local\ndistributor of NEC.\nWith both adapters I can get a picure, which looks excellent most of\nthe time or every now and then.\nBut with radical changes on screen (opening palettes, large windows\netc.) there are major interferences in sync. The picture either tilts\nsideways or scrables up totally. Even when it is clear, there are some\n\"spiky\" interferences on horizontal line alignment when accessing\npull-downs etc.\nWith the self-made adapter, almost identical to the VGA one, only\nsense pins differ, it is sometimes impossible to even boot up with a\npicture clear enough to shut down from menu...\nWith the adapter from NEC, everything is well most of the time, but\nsometimes the picture tilts badly sideways or the sync is completely\nlost. But not nearly as often as with the self-made one.\n\nI know, with self made adapters there can always be interference, but\nwith the one provided by NEC... where's the source of this interference?\n\nI'll give you the pinouts of the whole mess, and I hope that you can,\nat least someone (please try =) figure out what could be the best pin\nassignment for NEC 3D.\nI am going to make a completely new cable with maximum shieldings and\nisolations, as soon as someone figures out how the pins should be\narranged, especially syncs and groundings.\n\nYes, I have checked that the monitor is not defective, it works\nperfectly well with all PC graphic adapters up to 1024x768 pixels and\nalso Atari 71Hz monochrome, which I am using now with it.\n\nHere are the pinouts & stuff:\n\n15 pin mini D-sub (NEC 3D)\t\t15 pin D-sub (Mac, at least Quadra)\n\n1  Red Video\t\t\t\t1  Red GND\n2  Green Video\t\t\t\t2  Red Video\n3  Blue Video\t\t\t\t3  Composite Sync\n4  GND\t\t\t\t\t4  Sense 0\n5  GND\t\t\t\t\t5  Green Video\n6  Red GND\t\t\t\t6  Green GND\n7  Green GND\t\t\t\t7  Sense 1\n8  Blue GND\t\t\t\t8  NC\n9  NC\t\t\t\t\t9  Blue Video\n10 GND\t\t\t\t\t10 Sense 2\n11 GND\t\t\t\t\t11 C.Sync & V.Sync GND\n12 NC\t\t\t\t\t12 V.Sync\n13 H.Sync\t\t\t\t13 Blue GND\n14 V.Sync\t\t\t\t14 H.Sync GND\n15 NC\t\t\t\t\t15 H.Sync\nSHELL GND\t\t\t\tSHELL GND\n\n\n\nConnection suggested by Apple for VGA/SVGA, sense pins changed to\nemulate Apple 13\" with Multisync (my self-made adapter)\n\nMultisync (15pin mini D-sub)\tMac (15pin D-sub)\n\t  \n\t  1  ---------------------- 2\n\t  2  ---------------------- 5\n\t  3  ---------------------- 9\n\t  6  ---------------------- 1\n\t  7  ---------------------- 6\n\t  8  ---------------------- 13\n\t  10 ---------------------- 14\n\t  13 ---------------------- 15\n\t  14 ---------------------- 12\n\t\t\t\t    4 (sense0) grounded to 11 (sync GND)\n\n\nConnection measured from an adapter to make NEC 3FG/4FG \nemulate Apple 13\" (adapter provided by NEC representative)\n\n\tNEC (15 mini)   \tMac (15)\n\n\t1   ----------------------- 2\n\t2   ----------------------- 5\n\t3   ----------------------- 9\n\t4   ----------------------- SHELL GND, 1, 4, 6, 13\n\t5   ----------------------- same as above\n\t6   ----------------------- same...\n\t7   ----------------------- same...\n\t8   ----------------------- same...\n\t10  ----------------------- same...\n\t11  ----------------------- same...\n\t13  ----------------------- 3\n\t14    * Not Connected! *\n\t\n\nWell, I am waiting for your solutions...\n\nAnd thanks!\n\n--\nJartsu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1305, "properties": {"category": "rec.sport.baseball", "text": "From: thornley@milli.cs.umn.edu (David H. Thornley)\nSubject: Re: Minnesota Pitching\nNntp-Posting-Host: milli.cs.umn.edu\nOrganization: University of Minnesota, Minneapolis, CSci dept.\nLines: 37\n\nIn article <snelson3.8.0@uwsuper.edu> snelson3@uwsuper.edu (SCOTT R. NELSON) writes:\n>The rotation has changed due to a \"strange\" injury to Scott Erickson.  He \n>developed a twinge in the stomach area and has been taken out of the \n>rotation.  New rotation (to the best of my mind's knowledge) is:\n>Kevin Tapani, Jim Deshais, Pat Mahomes, Willie Banks.\n>\nAdd Mike Trombley in there somewhere, since they need five people.  Mark\nGuthrie will remain in the bullpen as the long lefty.\n\n>As to SS and 3B:\n>Short will be played by Scott Leius who played short for much of his career \n>before the Twins.  At third Mike Pagliarulo and Jeff Reboulet will platoon.\n>\nPags and Terry Jorgenson will platoon at third, with Reboulet as the\nbackup infielder.  Pags looked pretty miserable yesterday for a guy who\nlead the league in DA in 1991, muffing what should be routine grounders\n(heck, muffing a grounder *I* would probably have gotten to).  Jorgenson\ndid nothing exceptional that I noticed.  Leius missed a ball I *think*\nGagne would have reached; we will certainly miss Gag's glove this season.\n\n>Winfield has struggled during preseason.  Sunday against the Colorado \n>Rockies he went 2 for 3 with 2 RBIs and scored once.\n>\nHe looked pretty good there.  Contrary to what the mediots have been saying,\nhe looked reasonable at first.  He isn't mid-80s Hrbek, but then neither is\nthe Pretty Big Guy himself any more (note:  I'm used to seeing the Twins\n1B looking kinda big on the field, but not that big!).  If he hits vaguely\nlike last year, he's a perfectly good first baseman.\n\nNote:  Much of this posting is from personal observation yesterday in a game\nwhere the regulars were mostly pulled after several innings.  Winfield may\nhave big holes in his defensive game that didn't show up (he didn't have to\npick any bad throws, for example), but I'll take what I saw so far.\n\nDavid Thornley\n\"Have tickets, will travel to Dome\"\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1306, "properties": {"category": "rec.sport.baseball", "text": "From: u96_msopher@vaxc.stevens-tech.edu\nSubject: Phils are still looking immaculate!\nLines: 18\nOrganization: Stevens Institute Of Technology\n\n\n\n\n\nLadies and gentleman,\n\n\tStep one was taken on the Phils' triumphant trip this year tonight!\n\n\t\t\t(Yes, that was English!)\n\n\tMulholland's ERA after tonight's game? 0.00...nice try Drabek!\n\n\n\n\n\n\t\t\t\t\t\t\tNINJA JEW\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1307, "properties": {"category": "talk.politics.mideast", "text": "From: dzk@cs.brown.edu (Danny Keren)\nSubject: Suicide Bomber Attack in the Territories \nOrganization: Brown University Department of Computer Science\nLines: 22\n\n               Attention Israel Line Recipients\n \n                    Friday, April 16, 1993\n \n \nTwo Arabs Killed and Eight IDF Soldiers Wounded in West Bank Car\nBomb Explosion\n \nIsrael Defense Forces Radio, GALEI ZAHAL, reports today that a car\nbomb explosion in the West Bank today killed two Palestinians and\nwounded eight IDF soldiers. The blast is believed to be the work of\na suicide bomber. Radio reports said a car packed with butane gas\nexploded between two parked buses, one belonging to the IDF and the\nother civilian. Both busses went up in flames. The blast killed an\nArab man who worked at a nearby snack bar in the Mehola settlement.\nAn Israel Radio report stated that the other man who was killed may\nhave been the one who set off the bomb. According to officials at\nthe Haemek Hospital in Afula, the eight IDF soldiers injured in the\nblast suffered light to moderate injuries.\n \n\n-Danny Keren\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1308, "properties": {"category": "sci.space", "text": "From: rouben@math9.math.umbc.edu (Rouben Rostamian)\nSubject: Re: Sunrise/ sunset times\nOrganization: University of Maryland, Baltimore County Campus\nLines: 60\nNNTP-Posting-Host: math9.math.umbc.edu\n\nIn article <1993Apr21.141824.23536@cbis.ece.drexel.edu> jpw@cbis.ece.drexel.edu (Joseph Wetstein) writes:\n>\n>Hello. I am looking for a program (or algorithm) that can be used\n>to compute sunrise and sunset times.\n\nHere is a computation I did a long time ago that computes the length\nof the daylight.  You should be able to convert the information here\nto sunrise and sunset times.\n\n--\nRouben Rostamian                          Telephone: 410-455-2458\nDepartment of Mathematics and Statistics  e-mail:\nUniversity of Maryland Baltimore County   bitnet: rostamian@umbc.bitnet\nBaltimore, MD 21228, USA                  internet: rouben@math.umbc.edu\n======================================================================\nDefinitions:\n\nz = the tilt of the axis of the planet away from the normal to its\norbital plane.  In case of the Earth z is about 23.5 degrees, I think.\nI do not recall the exact value.  In case of Uranus, z is almost\n90 degrees.\n\nu = latitude of the location where the length of the day is measured.\nParis is at about 45 degrees.  North pole is at 90.\n\na = angular position of the planet around the sun.  As a goes from\n0 to 360 degrees, the planet makes a full circle around the sun.\nThe spring equinox occurs at a=0.\n\nL = daylight fraction = (duration of daylight)/(duration of a full day).\nOn the equator (u=0) L is always 1/2.  Near the north pole (u=90 degrees)\nL is sometimes one and sometimes zero, depending on the time of the year.\n\nComputation:\nDefine the auxiliary angles p and q by:\nsin p = sin a sin z\ncos q = h ( tan u tan p ),       (0 < q < 180 degrees)\n\nConclusion:\nL = q / 180   (if q is measured in degrees)\nL = q / pi    (if q is measured in radians)\n\nWait!  But what is h?\nThe cutoff function h is defined as follows:\n\nh (s) = s    if  |s| < 1\n      = 1    if   s > 1\n      = -1   if   s < 1\n\nAs an interesting exercise, plot L versus a.   The graph will shows\nhow the length of the daylight varies with the time of the year.\nExperiment with various choices of latitudes and tilt angles.\nCompare the behavior of the function at locations above and below\nthe arctic circle.\n\n--\nRouben Rostamian                          Telephone: 410-455-2458\nDepartment of Mathematics and Statistics  e-mail:\nUniversity of Maryland Baltimore County   bitnet: rostamian@umbc.bitnet\nBaltimore, MD 21228, USA                  internet: rouben@math.umbc.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1309, "properties": {"category": "rec.motorcycles", "text": "From: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nSubject: Spagthorpe Viking\nReply-To: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nDistribution: world\nOrganization: Computer Dynamics-Vancouver B.C.-(604)986-9937 (604)255-9937\nLines: 103\n\nDS>From: viking@iastate.edu (Dan Sorenson)\n\nDS>ryan_cousineau@compdyn.questor.org (Ryan Cousineau)  writes:\n\nDS>>Riding up the hill leading to my\nDS>>house, I encountered a liver-and-white Springer Spaniel (no relation to\nDS>>the Springer Softail, or the Springer Spagthorpe, a close relation to\nDS>>the Spagthorpe Viking).\n\nDS>        I must have missed the article on the Spagthorpe Viking.  Was\nDS>that the one with the little illuminated Dragon's Head on the front\nDS>fender, a style later copied by Indian, and the round side covers?\n\nNo. Not at all. The Viking was a trick little unit made way back when\n(forties? fifties?) when Spag was trying to make a go of it in racing.\nThe first iteration (the Springer) was a boxer twin, very similar to Max\nFriz's famous design, but with an overhead \"point cam\" (see below for\nmore on the valvetrain). The problem was that the thing had no ground\nclearance whatsoever. The solution was to curve the cylinder bores, so\nthat the ground clearance was substantially increased:\n\n\n      ==@==   <-Springer motor (front)\n                 Viking motor (front) ->   \\=@=/\n\nThis is roughly the idea, except that the bores were gradually curved\naround a radius, as the pistons were loath to make a sharp-angled turn\nin the middle of their stroke. The engine also had curved connecting\nrods to accomodate the stroke.\n\nThe engine stuck out so far because of its revolutionary (and still\nunique) overhead cam system. Through the use of clever valve timing and\nand extrordinarily trick valve linkage, only a single cam lobe was\nrequired to drive both overhead valves.\n\nJust as revolutionary was the hydraulic valve actuation, which used a\npressurized stream of oil to power the \"waterwheel\" which kept the lobe\nspinning over. One side effect that required some rather brutal\nengineering fixes was that until the engine's oil pressure came up to\nnormal, the engine's valve timing would be more or less random,\nresulting in some impressive start-up valve damage. The solution was a\nlittle hand crank that pressurized the cases before you started the\nbeast, remarkably similar to the system used in new Porsches to\npressurize the oil system before the car is started (the cage, however,\nuses an electric oil pump. Wimps).\n\nDespite this fix, the engine had a nasty propensity for explosively\nfiring its valves into the pistons when a cylinder would temporarily\nlose a bit of oil pressure in a corner. The solution was to run even\nhigher oil pressures and change the gaskets and seals regularly. This\nwas feasible because it was a racing engine.\n\nWith just a single overhead lobe, and no pushrod/shaft/chain towers\nbecause of the hydraulic system, the head of the engine came to an\nalmost perfect point:\n\n                    /\\\n                   /()\\   <-lobe\n                  / XX \\  <-complex linkage (not shown due to\n valvestems ->   / \\  / \\    complexity)\n                |  |   | |\n                |  |===| |\n                    =0=  <---piston\n                     |\n                             Note that the tip was not truly vertical\n                             (it was at about a 70 degree angle to the\n                             ground, and this drawing doesn't show the\n                             curvature because there was none in the\n                             head itself. The bore curve would start\n                             about where the cylinder bore disappears in\n                             this diagram\n\n\nThe effect of the pointy heads on top of a pair of gently (pundits of\nthe day even said sensuously) curved cylinders was much like a pair of\nfinned Viking horns poking out from beneath the gas tank. Thus, the\nname.\n\nThe Vik was a moderately successful racer, lightning fast when it\nworked, but plagued by problems relating to its revolutionary\ntechnology. Eventually, it was dumped when Spag finally realized that\nracing was not where the Spagthorpe name would be made. The machines\nwere raced for another year or two by privateers, and their fate\n(approximately six Vikings were made, plus one or possibly two\nSpringers. Confusing the issue is one old Spag staffer who swears up and\ndown that this machine was tooled for production, and that as many as\ntwenty or thirty machines may have come off the line. However, no modern\nrecord of a production Viking has survived, and most motorcycle\nhistorians discount this story.\n\nRyan Cousinetc.|1982 Yamaha Vision XZ550 -Black Pig of Inverness|Live to Ride\nKotRB          |1958 AJS 500 C/S -King Rat                      |to Work to\nDoD# 0863      |I'd be a squid if I could afford the bike...    |Flame to\nryan.cousineau@compdyn.questor.org  |   Vancouver, BC, Canada   |Live . . .\n\n\n * SLMR 2.1a * If you aren't sliding, you aren't riding.\n                                                                                                          \n----\n+===============================================================+\n|COMPUTER DYNAMICS BBS    604-255-9937(HST)    604-986-9937(V32)|\n|Vancouver, BC, Canada -  Easy Access, Low Rates, Friendly Sysop|\n+===============================================================+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1310, "properties": {"category": "sci.space", "text": "From: ajjb@adam4.bnsc.rl.ac.uk (Andrew Broderick)\nSubject: DC-X & DC-Y\nOrganization: Rutherford Appleton Lab, UK\nLines: 15\n\n\nHi guys,\n\tI've been hearing lots of talk on the net about DC-X and DC-Y,\nbut none of the many posts actually explain what they are !!! Sorry if\nthis is a FAQ, but would somebody please explain to me what they are.\nReply by Email please . . . thanks.\n\n\tAndy\n\najjb@adam4.bnsc.rl.ac.uk\n-- \n                                  ----------------------------------- \nAndy Jonathan J. Broderick,      | \"I have come that they might have |\nRutherford Lab., UK              |  life, and have it to the full\"   |\nMail : ajjb@adam2.bnsc.rl.ac.uk  |  - Jesus Christ                   |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1311, "properties": {"category": "rec.sport.baseball", "text": "From: sweda@css.itd.umich.edu (Sean Sweda)\nSubject: Royals final run total...\nOrganization: University of Michigan - ITD Consulting and Support\nLines: 22\nNNTP-Posting-Host: stimpy.css.itd.umich.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\n\nI've been saying this for quite some time, but being absent from the\nnet for a while I figured I'd stick my neck out a bit...\n\nThe Royals will set the record for fewest runs scored by an AL\nteam since the inception of the DH rule.  (p.s. any ideas what this is?)\n\nThey will fall easily short of 600 runs, that's for damn sure.  I can't\nbelieve these media fools picking them to win the division (like our\nTom Gage of the Detroit News claiming Herk Robinson is some kind of\ngenius for the trades/aquisitions he's made)\n\nc-ya\n\nSean\n\n\n--\nSean Sweda                                      sweda@css.itd.umich.edu\nCSS/ITD Consultant\t\t\t   President, Bob Sura Fan Club\nGM/Manager Motor City Marauders\nInternet Baseball League\t\t\t\t   \"play ball!\"\t\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1312, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: ISLAM BORDERS vs Israeli borders\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 47\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <C50wJJ.J4r@newsflash.concordia.ca>, ilyess@ECE.Concordia.CA (Ilyess Bdira) writes:\n|> In article <4805@bimacs.BITNET> ehrlich@bimacs.BITNET (Gideon Ehrlich) writes:\n|> >\n|> >\n|> >What are the borders the Islamic world dreams about ??\n|> \n|> The Islamic world dreams of being the whole planet, but not by kicking\n|> the current inhabitant out, we rather deam of the day everybody converts.\n|> If Jews had the same dream, I would not feel threatened a bit.\n\nContrary to what the \"Protocols of Zion crowd\" might suggest,\nJudaism does not have any such goals.\n\n|> >Islamic readers, I am waiting to your honest answer.\n|> \n|> I want also a honest answer from Zionists for the following questions:\n|> \n|> 1)why do jews who don't even believe in God (as is the case with many\n|> of the founders of secular zionism) have a right in Palestine more\n|> than the inhabitants of Palestine, just because God gave you the land?\n\nThe question you ask is complicated and deserves an honest answer.\nI am going to provide one from my own current perspective, not a historical\none.  Currently, as a non-observant jew/Israeli/American, my own feeling\nis that Jews from the diaspora do not have a greater right in Palestine or\nIsrael, than the palestinians or Israelis (both arab and jew) do.\nWith regard to Jewish Israelis, they should have the same rights\nin Israel as do all other Israelis.\n\n|> 2)Why do most of them speak of the west bank as theirs while most of\n|> the inhabitants are not Jews and do not want to be part of Israel?\n\nWho are them?  If by them you mean the non-religious Jews, I think\nyou should be aware by now that the majority of the settlers and their\nsupporters are religious.  The other part of the problem is, to my\nknowledge, not that the palestinians don't want to be a part of Israel,\nas much as they would accept (for the most part) being full citizens\nof Israel, with all the priviliges and responsibilities accorded Israeli\ncitizens.  What they object to is the current limbo in which they find\nthemselves.\n\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1313, "properties": {"category": "comp.graphics", "text": "From: sloan@cis.uab.edu (Kenneth Sloan)\nSubject: Re: Removing Distortion From Bitmapped Drawings?\nOrganization: CIS, University of Alabama at Birmingham\nLines: 135\n\nIn article <1993Apr19.141034.24731@sctc.com> boebert@sctc.com (Earl Boebert) writes:\n>Let's say you have a scanned image of a line drawing; in this case a\n>boat, but it could be anything.  On the drawing you have a set of\n>reference points whose true x,y positions are known.  \n>\n>Now you digitize the drawing manually (in this case, using Yaron\n>Danon's excellent Digitize program).  That is, you use a program which\n>converts cursor positions to x,y and saves those values when you click\n>the mouse.\n>\n>Upon digitizing you notice that the reference point values that come\n>out of the digitizing process differ in small but significant ways\n>from the known true values.  This is understandable because the\n>scanned drawing is a reproduction of the original and there are\n>successive sources of distortion such as differential expansion and\n>contraction of paper, errors introduced in the printing process,\n>scanner errors and what have you.\n>\n>The errors are not uniform over the entire drawing, so \"global\"\n>adjustments such as stretching/contracting uniformly over x or y, or\n>rotating the whole drawing, are not satisfactory.\n>\n>So the question is: does any kind soul know of an algorithm for\n>removing such distortion?  In particular, if I have three sets of\n>points \n>\n>Reference(x,y) (the known true values)\n>\n>DistortedReference(x,y) (the same points, with known errors)\n>\n>DistortedData(x,y) (other points, with unknown errors)\n>\n>what function of Reference and Distorted could I apply to\n>DistortedData to remove the errors.\n>\n>I suspect the problem could be solved by treating the distorted\n>reference points as resulting from the projection of a \"bumpy\" 3d\n>surface, solving for the surface and then \"flattening\" it to remove\n>the errors in the other data points.\n\nIt helps to have some idea of the source of the distortion - or at least\na reasonable model of the class of distortion.  Below is a very short\ndescription of the process which we use; if you have further questions,\nfeel free to poke me via e-mail.\n\n================================================================\n*ASSUME: locally smooth distortion\n\n0) Compute the Delaunay Triangulation of your (x,y) points.  This\n   defines the set of neighbors for each point.  If your data are\n   not naturally convex, you may have very long edges on the convex hull.\n   Consider deleting these edges.\n\n1) Now, there are two goals:\n\n    a) move the DistortedData(x,y) to the Reference(x,y)\n    b) keep the Length(e) (as measured from the current (x,y)'s)\n       as close as possible to the DigitizedLength(e) (as measured \n       using the digitized (x,y)'s).\n\n2) For every point, compute a displacement based on a) and b).  For\n   example:\n\n    a) For (x,y) points for which you know the Reference(x,y), you\n       can move alpha0*(Reference(x,y) - Current(x,y)).   This will\n       slowly move the DistortedReference(x,y) towards the\n       Reference(x,y). \n    b) For all other points, examine the current length of each edge.\n       For each edge, compute a displacement which would make that edge\n       the correct length (where \"correct\" is the DigitizedLength). \n       Take the vector sum of these edge displacements, and move the\n       point alpha1*SumOfEdgeDisplacements.  This will keep the\n       triangulated mesh consistent with your Digitized mesh.\n\n3) Iterate 2) until you are happy (for example, no point moves very much).\n\nalpha0 and alpha1 need to be determined by experimentation.   Consider\nhow much you believe the Reference(x,y) - i.e., do you absolutely insist\non the final points exactly matching the References, or do you want to\nbalance some error in matching the Reference against changes in length\nof the edges.\n\nWARNING: there are a couple of geometric invariants which must be\nobserved (essentially, you can't allow the convex hull to change, and\nyou can't allow triangles to \"fold over\" neighboring triangles.  Both of\nthese can be handled either by special case checks on the motion of\nindividual points, or by periodically re-triangulating the points (using \nthe current positions - but still calculating DigitizedLength from the\noriginal positions.  When we first did this, the triangulation time was\nprohibitive, so we only did it once.  If I were motivated to try and\nchange code that has been working in production mode for 5 years, I\n*might* go back and re-triangulate on every iteration.  If you have more\ncompute power than you know what to do with, you might consider having\nevery point interact with every other point....but first read up on\nlinear solutions to the n-body problem.\n\nThere are lots of papers in the last 10 years of SIGGRAPH proceedings on\nsprings, constraints,  and energy calculations which are relevant.  The\nabove method is described, in more or less detail in:\n\n@inproceedings{Sloan86,\nauthor=\"Sloan, Jr., Kenneth R. and David Meyers and Christine A.~Curcio\",\ntitle=\"Reconstruction and Display of the Retina\",\nbooktitle=\"Proceedings: Graphics Interface '86 Vision Interface '86\",\naddress=\"Vancouver, Canada\",\npages=\"385--389\",\nmonth=\"May\",\nyear=1986  }\n\n@techreport{Curcio87b,\nauthor=\"Christine A.~Curcio and Kenneth R.~Sloan and David Meyers\",\ntitle=\"Computer Methods for Sampling, Reconstruction, Display, and\nAnalysis of Retinal Whole Mounts\",\nnumber=\"TR 87-12-03\",\ninstitution=\"Department of Computer Science, University of Washington\",\naddress=\"Seattle, WA\",\nmonth=\"December\",\nyear=1987  }\n\n@article{Curcio89,\nauthor=\"Christine A.~Curcio and Kenneth R.~Sloan and David Meyers\",\ntitle=\"Computer Methods for Sampling, Reconstruction, Display, and\nAnalysis of Retinal Whole Mounts\",\njournal=\"Vision Research\",\nvolume=29,\nnumber=5,\npages=\"529--540\",\nyear=1989  }\n \n\n-- \nKenneth Sloan                   Computer and Information Sciences\nsloan@cis.uab.edu               University of Alabama at Birmingham\n(205) 934-2213                  115A Campbell Hall, UAB Station \n(205) 934-5473 FAX              Birmingham, AL 35294-1170\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1314, "properties": {"category": "comp.graphics", "text": "From: diablo.UUCP!cboesel (Charles Boesel)\nSubject: Alias phone number wanted\nOrganization: Diablo Creative\nReply-To: diablo.UUCP!cboesel (Charles Boesel)\nX-Mailer: uAccess LITE - Macintosh Release: 1.6v2\nLines: 9\n\nWhat is the phone number for Alias?\nA toll-free number is preferred, if available.\n\nThanks\n\n--\ncharles boesel @ diablo creative |  If Pro = for   and   Con = against\ncboesel@diablo.uu.holonet.net    |  Then what's the opposite of Progress?\n+1.510.980.1958(pager)           |  What else, Congress.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1315, "properties": {"category": "comp.windows.x", "text": "From: ziegenfE@moravian.edu (Eric W. Ziegenfus)\nSubject: Re: PROBLEM: Running AIX info from a Sun rlogin shell.\nLines: 36\nNntp-Posting-Host: batman\n\nIn <1r74bcINN6ei@ome.sps.mot.com> wcl@risc.sps.mot.com (Wayne Long) writes:\n\n\n>  When I run our RS6000's \"info\" utility through a remote login\n>  shell (rlogin) from my Sun Sparc 1+, I can no longer type\n>  lower case in any of info's window prompt's.\n\n>  I thought the prob. may have been due to my Sun window mgr. \n>  (Openlook) being incompatible with the AIX Motif application\n>  but I tried it under TVTWM also.  Same result.\n>  \n>  So this is presumably an X11 key definition problem between \n>  workstations - but my system admins. feign ignorance.\n>  \n>  What do I need to do the be able to type lower case into \n>  this remote AIX motif app. from within my local Openlook\n>  window manager?\n>  \n>  \n>-- \n>-------------------------------------------------------------------\n>Wayne Long - OE215              Internet: wcl@risc.sps.mot.com\n>6501 William Cannon Drive West  UUCP: cs.texas.edu!oakhill!risc!wcl\n>Austin, Texas 78735-8598        Phone (512) 891-4649  FAX: 891-3818\n\nI have had the exact same problem, but have not figured out a solution.\nI run a PC with Linux (free-unix) with X11r5 and OpenWindows 3.0, I\nwould appreciate any solutions.\n\newz\n-- \n\n               /---------------------------------------------\\\n              | INTERNET:  ziegenfE@moravian.edu              |\n              | UUCP:      ...!rutgers!lafcol!batman!ziegenfE |\n               \\_____________________________________________/\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1316, "properties": {"category": "comp.graphics", "text": "From: sean@whiting.mcs.com (Sean Gum)\nSubject: Re: CView answers\nOrganization: -*-  Whiting Corporation, Harvey, Illinois  -*-\nX-Newsreader: Tin 1.1 PL4\nLines: 23\n\nbryanw@rahul.net (Bryan Woodworth) writes:\n: In <1993Apr16.114158.2246@whiting.mcs.com> sean@whiting.mcs.com (Sean Gum) writes:\n: \n: >A stupid question, but what will CView run on and where can I get it? I\n: >am still in need of a GIF viewer for Linux. (Without X-Windows.)\n: >Thanks!\n: > \n: \n: Ho boy. There is no way in HELL you are going to be able to view GIFs or do\n: any other graphics in Linux without X windows!  I love Linux because it is\n: so easy to learn..  You want text?  Okay.   Use Linux. You want text AND\n: graphics?  Use Linux with X windows.  Simple.  Painless.  REQUIRED to have\n: X Windows if you want graphics!  This includes fancy word processors like\n: doc, image viewers like xv, etc.\n:\nUmmm, I beg to differ. A kind soul sent me a program called DPG-VIEW that\nwill do exactly what I want, view GIF images under Linux without X-Windows.\nAnd, it does support all the way up to 1024x768. The biggest complaint I\nhave is it is painfully SLOW. It takes about 1 minute to display an image.\nI am use to CSHOW under DOS which takes a split second. Any idea why it\nis so slow under Linux? Anybody have anything better? Plus, anybody have\nthe docs to DPG-View? Thanks!\n \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1317, "properties": {"category": "alt.atheism", "text": "From: twpierce@unix.amherst.edu (Tim Pierce)\nSubject: Re: [soc.motss, et al.] \"Princeton axes matching funds for Boy Scouts\"\nArticle-I.D.: unix.C52Cw7.I6t\nOrganization: Blasny Blasny, Consolidated (Amherst, MA Offices)\nLines: 37\n\nIn article <1993Apr6.041343.24997@cbnewsl.cb.att.com> stank@cbnewsl.cb.att.com (Stan Krieger) writes:\n\n>Roger and I have\n>clearly stated our support of the BSA position on the issue;\n>specifically, that homosexual behavior constitutes a violation of\n>the Scout Oath (specifically, the promise to live \"morally straight\").\n>\n>There is really nothing else to discuss.\n\nApparently not.\n\nIn response to his claim that it \"terrifies\" gay people not to be able\nto \"indoctrinate children to our lifestyle\" (or words to that effect),\nI sent Roger a very calm, carefully-written, detailed letter\nexplaining simply why the BSA policy does, indeed terrify me.  I did\nnot use inflammatory language and left myself extremely open for an\nanswer.  Thus far, I have not received an answer.  I can conclude only\nthat Roger considers his position either indefensible or simply not\nworth defending.\n\n>Trying to cloud the issue\n>with comparisons to Blacks or other minorities is also meaningless\n>because it's like comparing apples to oranges (i.e., people can't\n>control their race but they can control their behavior).\n\nIn fact, that's exactly the point: people can control their behavior.\nBecause of that fact, there is no need for a blanket ban on\nhomosexuals.\n\n>What else is there to possibly discuss on rec.scouting on this issue?\n\nYou tell me.\n\n-- \n____ Tim Pierce                /  ?Usted es la de la tele, eh?  !La madre\n\\  / twpierce@unix.amherst.edu /  del asesino!  !Ay, que graciosa!\n \\/ (BITnet: TWPIERCE@AMHERST) /    -- Pedro Almodovar\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1318, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dcb@wdl1.wdl.loral.com (David C Blume)\nSubject: Cannot move data fast enough!?\nSummary: disk -> buffer -> network card\nKeywords: NuBus, SCSI, disk, throughput\nOrganization: Gokuraku Videos\nLines: 43\n\nI want to achieve an overall throughput rate of around 5 megabytes / sec\nfor very large data transfers.  (Around 5 MB.)\n\nI have a Quadra 950. \nI have a NuBus network card that can pump data in to mac memory at 8.5 MB/s.\n         (using block-mode transfers)\nI have a high-speed disk array (no asynchronous PB calls) that can\n         achieve 6.8 MB/s.\n\nLet's say all transfers go from disk to buffer to network card.\n\nIt is not enough to first transfer all the data from the disk to buffer,\nthen transfer all the data from the buffer to card.  (6.8 MB/s then 8.5 MB/s\nresult in an overall 3.8 MB/s.  Too slow!)\n\nSo I tried the following scheme: For an n-megabyte transfer, \n\nStep 1:                                Load the 1st MB from disk to buffer.\nStep 2: Asynch send 1st MB out card,   Load the 2nd MB from disk to buffer.\nStep 3: Asynch send 2nd MB out card,   Load the 3rd MB from disk to buffer.\n        ...\nStep n: Asynch send the n-1 MB out card, Load the nth MB from disk to buffer.\nStep n+1: Send the nth MB out card.\n\nEven though the code apparently does execute the card transfer asynchronously,\nand the card does not use the Mac cpu at all,  (It is using the buffer, tho')\neach of the steps 2 through n take as long as if the two transfers were\nexecuted one after another.  So there is no improvement in the rate.\n\nWhy?\n\nIs the mac RAM dual-port?  (So the NuBus card and the disk driver can both\naccess data at the same time.)\nIs the problem that the two devices, card and disk driver, both have to use\nthe same bus to mac RAM?\n\nIs there anything I can do?\n\n--David\n+---------------------------------------------------------------------+\n| David Blume            | \"I get tired thinking of all the things I  |\n| dcb@wdl1.wdl.loral.com |  don't want to do.\"  --Bukowski, _Barfly_  |\n+---------------------------------------------------------------------+\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1319, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Lincoln & slavery (Re: Top Ten Tricks You Can Play on the American Voter)\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 27\n\nIn article <CB.93Apr5130728@tamarack13.timbuk>, cb@tamarack13.timbuk (Chris Brewster) writes:\n> Craig Depken writes:\n> \n>     The fact that the South had a number of slave owners is true, but\n>     relatively small numbers (around 1200) had more than a few hundred slaves.\n>     (I have to get references that I do not have here for \n>     exact numbers.)\n> \n> If it has any bearing on this discussion, I saw a figure for the total\n> number of slave-owners as 300,000.  Does anyone have a figure for how\n> many slaves there were?  How many farmers without slaves?\n> \n> Chris Brewster                            E-MAIL ADDRESS: cb@cray.com\n\nIn 1860:\n\nregion              total population  free blacks  %       slaves   %\nU.S.                32,227,616        487,070      1.5%    3,953,818 12.3%\nConfederacy          9,103,332        132,760      1.5%    3,521,110 38.7%\nUnion Slave States   3,212,041        128,158      4.0%      432,586 13.5%\nAll Union States    23,124,284        354,310      1.5%      432,708  1.9%\nUnion \"Free\" States 19,912,243        226,152      1.1%          122  0.0%\n\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1320, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: What WAS the immaculate conception\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 48\n\nBiblical basis for the Immaculate Conception:\n\n1) \"I will put enmity between you [the Serpent] and the woman, and\nbetween your seed and her seed, she [can also be read he] shall crush\nyour head and you shall bruise her [or his] heel.\"\n    -Genesis 3.15\n\n2) \"He who commits sin is of the devil ...\"\n    -1 John 3.8\n\n3) \"Hail, full of grace [greek - kecharitomene], the Lord is with thee ...\"\n    -Luke 1.28\n\n   From the above, we prove the doctrine of the Immaculate Conception.\n   First, God has given the proto-evangel in Genesis 3.15, which is the\nfirst promise of a savior, who will redeem mankind from the wiles of\nSatan. \"[Satan] was a murderer from the beginning, and has not stood in\nthe truth because there is no truth in him.\" John 8.44.  Now the\nproto-evangel promises several things, enmity between Satan and \"the\nwoman\", and enmity between Satan and \"her seed.\"  Now the woman is both\nEve (who is the immediate point of reference) and Mary, the second Eve. \n\"Her seed\" is Jesus Christ, and He is also at enmity with Satan in the\nsame way as Mary is said to be at enmity with Satan.  Thus, knowing as\nwe do that Jesus Christ is sinless (Hebrews 7.26), we can conclude that\nMary is also sinless because if she wasn't she would 1) not be at enmity\nwith the devil, as 1 John 3.8 tells us, and 2) the relation of her\nsinlessness to Christ's sinlessness would be called into question, as\nwould God's veracity.  For God promised an enmity between Mary and the\nserpent, and it is not possible for God to lie or be decieved.\n    Second, we have the Angelic Greeting where Mary is called by the\nArchangle Gabriel \"full of grace.\"  As I pointed out above this is from\nthe Greek word \"Kecharitomene\" which means not just full of grace, but a\nplenitude or perfection of grace.  The sense of it is best grasped by\nthe footnote to the Jerusalem Bible, \"Hail you who have been and reamin\nfilled with grace.\"  But that is a little to long to say, so it is\nreduced to full of grace.  And as it says, \"you who have been\" Mary had\nalways been filled with grace, from the moment of her conception, which\nwas also the moment of her salvation, until her death some years later.\n    It must be admitted that it is possible that God could have done\nwhat the doctrine of the Immaclute Conception says He did do.  And if\nGod could keep himself free from any contact with sin, through his\nMother, He would have, and the Bible records this fact, to which the\nFathers of the Church such as St. John Damascus, St. Augustine of Hippo\n, St. Ambrose and others are in complete agreement with, as is all of\nChristian tradition, and as is the infallible declaration of the Pope on\nthe matter in \"Ineffibilus Deus.\"\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1321, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mmatteo@mondrian.CSUFresno.EDU (Marc Matteo)\nSubject: Why the drive speeds differ??\nKeywords: Quantum, LPS, speed\nNntp-Posting-Host: mondrian.csufresno.edu\nOrganization: California State University, Fresno\nLines: 13\n\nHi all,\n\nI just got a La Cie 240 meg external hard drive.  Speed tests show that it's\nsubstantially faster that my internal 105 meg Quantum HD.  Supposedly the 105\nand the 240 (both LPS drives) are roughly rated the same speed.  Why such a \nlarge difference?\n\nMarc.\n-- \n______________________________________________________________________________\nMarc Matteo,                     |  AppleLink:  MATTEO\nCalifornia State University,     |  Internet:   mmatteo@mondrian.CSUFresno.EDU\nFresno                           |  AOL:        M Matteo\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1322, "properties": {"category": "comp.windows.x", "text": "From: guy@x.co.uk (Guy Singh)\nSubject: Re: >>>>> MOUSE BUTTONS 1,2 & 3 <<<<<<<< urgent !\nIn-Reply-To: it4ik@dmu.ac.uk's message of 5 Apr 93 10:10:23 GMT\nX-Disclaimer: This is not the view of IXI Ltd unless explicitly stated.\nLines: 29\nNntp-Posting-Host: yorks.x.co.uk\nOrganization: Not a lot\nX-Copyright: The author asserts the right of paternity in this message.\n\n>>>>> On 5 Apr 93 10:10:23 GMT, it4ik@dmu.ac.uk (I Kler) said:\nIK> Nntp-Posting-Host: elm\n\nIK> I know it sounds stupid, but....\n\nIK> Does anyone know how to control individual mouse buttons.\nIK> I am writing an application, which currently makes use of\nIK> ButtonPressMask, however this is invoked by the pressing\nIK> of any mouse button. I want to be able to restrict this\nIK> to one of the 3 buttons. I tried Button1PressMask, but\nIK> just get undefined errors. I know it can be done, and I\nIK> am pretty sure theres an easy answer to it, but I just don't know\nIK> what it is.\nIK> \"time is of the essence ...\"\n\nThere is no event mask for a particular mouse button press. However in your\nevent handler you can use the event structure passed in and query it to find\nwhich button was pressed i.e.\n\nvoid\nSomeEventHandler(Widget w, XtPointer data, XEvent *event)\n{\n    /* Catch the button 1 (usually left button) */\n    if ( event->xbutton.button == Button1 ) {\n        /* do some action */\n    } else {\n        /* do nothing and exit from function */\n    } \n}\n--\n-Guy Singh,                 IXI            Internet: guy@x.co.uk\n                            Vision Park    UUCP:     guy@ixi.uucp\n                            Cambridge      Bang:     ...!uunet!ixi!guy\n                            CB4 4ZR, UK    Tel:      +44 223 236 555\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1323, "properties": {"category": "sci.space", "text": "From: eder@hsvaic.boeing.com (Dani Eder)\nSubject: Re: NASP\nDistribution: sci\nOrganization: Boeing AI Center, Huntsville, AL\nLines: 39\n\nI have before me a pertinent report from the United States General\nAccounting Office:\n\nNational Aero-Space Plane: Restructuring Future Research and Development\nEfforts\nDecember 1992\nReport number GAO/NSIAD-93-71\n\nIn the back it lists the following related reports:\n\nNASP: Key Issues Facing the Program (31 Mar 92) GAO/T-NSIAD-92-26\n\nAerospace Plane Technology: R&D Efforts in Japan and Australia\n(4 Oct 91) GAO/NSIAD-92-5\n\nAerospace Plane Technology: R&D Efforts in Europe (25 July 91)\nGAO/NSIAD-91-194\n\nAerospace Technology: Technical Data and Information on Foreign\nTest Facilities (22 Jun 90) GAO/NSIAD-90-71FS\n\nInvestment in Foreign Aerospace Vehicle Research and Technological\nDevelopment Efforts (2 Aug 89) GAO/T-NSIAD-89-43\n\nNASP: A Technology Development and Demonstration Program to Build\nthe X-30 (27 Apr 88) GAO/NSIAD-88-122\n\n\nOn the inside back cover, under \"Ordering Information\" it says\n\n\"The first copy of each GAO report is free.  . . .  Orders\nmay also be placed by calling (202)275-6241\n\"\n\nDani\n\n-- \nDani Eder/Meridian Investment Company/(205)464-2697(w)/232-7467(h)/\nRt.1, Box 188-2, Athens AL 35611/Location: 34deg 37' N 86deg 43' W +100m alt.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1324, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Boston University Physics Department\nLines: 57\n\nIn article <1993Apr15.215833.15970@bnr.ca> (Rashid) writes:\n\n\n>> What about the Twelve Imams, who he considered incapable of error\n>> or sin? Khomeini supports this view of the Twelve Imans. This is\n>> heresy for the very reasons I gave above. \n\n\n>I would be happy to discuss the  issue of the 12 Imams with you, although\n>my preference would be to move the discussion to another\n>newsgroup.  I feel a philosophy or religion group would be more \n>appropriate. \n\n\nI think many reading this group would also benefit by knowing how\ndeviant the view _as I've articulated it above_ (which may not be\nthe true view of Khomeini) is from the basic principles of Islam. \nSo that the non-muslim readers of this group will see how far from \nthe simple basics of Islam such views are on the face of them. And \nif they are _not_ in contradiction with the basics of Islam, how \nsubtle such issues are and how it seems sects exist in Islam while \nthey are explicitly proscribed by the Qur'an.\n\n\n>The topic is deeply embedded in the world view of Islam and the\n>esoteric teachings of the Prophet (S.A.). Heresy does not enter\n>into it at all except for those who see Islam only as an exoteric\n>religion that is only nominally (if at all) concerned with the metaphysical\n>substance of man's being and nature.\n\n\nIn my opinion considering any human being as having a substance\nor metaphysical fundamentally different from that of any other human\nbeing _is_ a heretical notion and one proscribed by Islam. \n\n\n>From your posts, you seem fairly well versed in Sunni thought. You\n>should seek to know Shi'ite thought through knowledgeable \n>Shi'ite authors as well - at least that much respect is due before the\n>charge of heresy is levelled.\n\n\nAbsolutely! I would be interested in discussing this privately and\nI am interested in hearing how one might try to make the concept of\nerror-free and sinless human beings philosophically consistent with\nthe teachings of the Qur'an. However, _prima facie_ such attemptsa\nare highly susceptible to degenerating into monkery, explicitly\nproscribed by the Qur'an.\n\n\n>As salaam a-laikum\n\nAlaikum Wassalam\n\n\nGregg\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1325, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dingman+@cs.cmu.edu (Christopher Dingman)\nSubject: Re: Buying a high speed v.everything modem\nNntp-Posting-Host: pie9.mach.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 38\n\nIn article <1993Apr20.001127.4928@rs6000.cmp.ilstu.edu> behr@math.ilstu.edu (Eric Behr) writes:\n>\n>The AT&T Dataport earns nearly unanimous praises for reliability. They are\n>backordered at the moment, probably because of the special $299 price in\n>effect until May. Its fax capabilities are worse than that of the other two\n>modems. WARNING: AT&T ads say that the modem comes with a Mac kit (cables &\n>all), and has lifetime warranty. This applies *only* when you order\n>directly from Paradyne! I called ElekTek (one of the distributors), and\n>they wanted to charge me $16 for cable, and gave only 1 year warranty...\n>\n\nHmm, I don't know where this information concerning the cable and the\nwarranty came from but I ordered mine from Logos Communications, near\nCleveland, and inside was a Mac cable (with the correct pin connections :-))\nand a lifetime warranty.  The whole package was assembled at AT&T Paradyne,\nand every piece (the serial cable, the telephone cable, etc.) had AT&T \npart numbers on them, except the QuickLink software package and the \nCompuServe intro kit.\n\n>-- \n>Eric Behr, Illinois State University, Mathematics Department\n>behr@math.ilstu.edu   or   behr@ilstu.bitnet  (please avoid!)\n\nIf anyone's interested, Logos number is (800) 837-7777.  I ordered mine\nlast Wednesday and got my modem on Friday, though it's not to far from\nCleveland to Pittsburgh.. :-)  On the down side they only ship UPS COD.\n\n\n\t\t\t\t\t- Chris\n\n+--------------------------------------------------------------------------+\n|  Christopher P. Dingman                                                  |\n|  Electrical and Computer Eng. Dept.                  dingman@ece.cmu.edu |\n|  Carnegie Mellon University                          (412) 268-7119      |\n|  5000 Forbes Ave                                                         |\n|  Pittsburgh, PA  15213                                                   |\n+--------------------------------------------------------------------------+\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.063+0000", "event": "documents", "entityId": 1326, "properties": {"category": "sci.space", "text": "From: games@max.u.washington.edu\nSubject: Aerospace companies cooperate in reusable vehicle market.\nArticle-I.D.: max.1993Apr6.121843.1\nDistribution: world\nLines: 34\nNNTP-Posting-Host: max.u.washington.edu\n\nWhat would all of you out there in net land think of the big 6 (Martin\nMariatta, Boeing, Mcdonell Douglas, General Dynamics, Lockheed, Rockwell)\ngetting together, and forming a consortium to study exactly what the market\nprice pints are for building reusable launch vehicles, and spending say\n$3million to do that.  Recognizing that most of the military requirements\nfor launch vehicles are pulled out of a hat somewhere (say, has the shuttle \never really used that 1200mi crossrange capability?  You get the idea, figure\nout how many, how often, where to, etc...)\n\nThen taking this data, and forming a sematech type company (bad example, I\nknow... but at least its an example...)  To develop between 3 and 5 craft\ndesigns.  Then to take all of those designs, and figure out EXACTLY what\nthe technologies are, and demonstrate those technologies, in order to \neliminate designs that can't be built today.  And lets say that this\nportion again funded by the GOV cost about $20 million.\n\nAnd from here all of these companies went their separate ways, with the\nintention of taking all of the market data and the design data to wall\nstreet, and saying \"I want to build this vehicle, and here are the numbers\nthat show %20 ROI, fund me...)\n\n\nNow many of you think that this is a joke, but I have it on good authority that\njust this project is shaping up in the background. It seems that the aerospace\ncompanies have learned that everyone yelling similar but different things\nends up in many programs that do nothing much and get canceled (NASP, NLS,\nALS, DCY?, etc...)  They need to work more in the japaneese, and european\nspirit of initial cooperation.  They have also learned that design requirements\nthat are phony (I.E. some generals idea of what a space vehicle ought to be)\nends up getting chopped up in congress, because it is not a REAL requirement.\n\nAny feedback?\n\n\t\t\tJohn.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1327, "properties": {"category": "rec.sport.hockey", "text": "From: jca2@cec1.wustl.edu (Joseph Charles Achkar)\nSubject: Blues steal game 1 from Hawks\nKeywords: Blues, Hull, Shanahan, Joseph, Blackhawks, Belfour\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nLines: 125\n\n\n  The Blues scored two power-play goals in 17 seconds in the third period\nand the beat the Chicago Blackhawks 4-3 Sunday afternoon at Chicago Stadium.\nBrendan Shanahan tied the game 3-3 and Brett Hull scored the game winner 17\nseconds later. Jeff Brown and Denny Felsner scored the other Blues goals.\nBrian Noonan had the hat trick for the Hawks, who also had some very good\ngoaltending from Ed Belfour. Blues goalie Curtis Joseph was solid down the\nstretch to preserve the Blues lead.\n\nThe Hawks came out strong in the first period, outshooting the Blues 6-1 and\ntaking a 1-0 lead on Noonan's first goal. Right after an interference penalty\non Rick Zombo had expired, Keith Brown intercepted a clearing attempt at the\nblue line and passed the puck to Steve Larmer in the right circle. Larmer fired\na long slap shot, and Noonan deflected the puck between Joseph's pads. After\nthe goal, the Blues picked up the intensity and went on to outshoot the Hawks\n10-9 in the first period.\n\nJeff Brown tied the game 1-1 at 3:12 of the second. Nelson Emerson broke in on\nthe left side, got by Craig Muni and pushed the puck across the slot. Belfour\ncame out to play the pass and shoveled it to the right boards, where Brown\ncollected it and slapped it in before Belfour could get back to the goal.\n\nTwo minutes later on a Hawks power play, Belfour stopped Rich Sutter on a\nshort-handed break-in. Chris Chelios picked up the puck and passed it to Jeremy\nRoenick who carried it on right wing and found an open Noonan with a nice pass\nacross the slot. Noonan fired it past Joseph at 5:30 for the 2-1 lead.\n\nNoonan completed his hat trick 3:11 later to increase the Hawks' lead to 3-1.\nStephane Matteau made a nice pass from the right boards to Noonan who beat\nStephane Quintal by driving to the net. Joseph had no chance as Noonan\ndeflected the puck in the net.\n\nDenny Felsner reduced the Blues deficit to 3-1 at 12:49 after picking up the\nrebound of Basil McRae's slap shot from the slot. Janney set up McRae for\nthe shot, and the puck sailed wide of the net and bounced off the end boards\nto Felsner. Felsner sticked the rebound into the partially open net. The Blues\noutshot the Hawks 10-5 in the second period.\n\nWith the Blackhawks leading 3-2 at 9:56 of the third, Stephane Matteau picked\nup a high sticking penalty. Just 53 seconds into the power play, Steve Smith\nwas called for slashing, giving the Blues a 5-on-3 advantage for 1:07.\n\nThe Blues didn't waste time as Brendan Shanahan scored just 23 seconds into\nthe two-man advantage to tie the game 3-3. Janney found Hull in the slot,\nand Hull fired a rocket at Belfour. Jeff Brown collected the rebound and\npassed it to Shanahan in the left circle. Shanahan beat Belfour from a sharp\nangle.\n\nJust 17 seconds later, Hull scored the game winner for the Blues. Nelson\nEmerson broke in on right wing, carried the puck behind the net along with\ntwo Hawks defensemen. Emerson made a nice pass to an unchecked Hull in the\nslot, and Hull beat Belfour to put the Blues up 4-3.\n\nThe Hawks had several chances to tie the game in the final minutes, but Joseph\nmade some brilliant saves to prevent the Hawks from scoring. He stopped Troy\nMurray point blank from just right of the crease with 2:30 left in the game.\nThe Blues killed off a late Hawks power play, with Rich Sutter clearing the\npuck with his hand as it was trickling along the goal line. The Blues held\non to win the game. The Hawks oushot the Blues 13-7 in the third period,\ntotaling 27 shots on goal for each team. The Blues special teams were excellent\nin the game. The Blues killed 6 of 7 Hawks power plays, and scored twice on\non four power play chances. The Blues ranked among the best special teams in\nthe league. They rank 2nd in penalty killing and 3rd on the power play.\n \nThe game was carried live on ABC, the first time an NHL game other than an\nAll-Star game has been shown on network television since May 24, 1980, when\nCBS carried Game 6 of the Stanley Cup finals.\n\nThe best-of-seven series continues Wednesday in Chicago and Friday and Sunday\nin St. Louis.\n\nBox score\n---------\nBlues 4, Blackhawks 3\n\nBLUES       0    2    2   --   4\nCHICAGO     1    2    0   --   3\n\nFIRST PERIOD\n\n   CHI -- Noonan 1 (Larmer, K.Brown), 8:17.\n\n   Penalties -- Shanahan, StL (holding), 2:28; Zombo, StL (interference), 6:00;\nMurphy, Chi (high-sticking), 11:30; Grimson, Chi (boarding), 14:39; Zombo, StL\n(holding), 18:46.\n\nSECOND PERIOD\n\n   STL -- Brown 1 (Shanahan, Emerson), 3:12.\n   CHI -- (PPG) Noonan 2 (Roenick, Chelios), 5:40.\n   CHI -- Noonan 3 (Matteau, Sutter), 8:51.\n   STL -- Felsner 1 (McRae, Janney), 12:49.\n\n   Penalties -- Baron, StL (interference), 4:33; Wilson, StL (tripping), 9:31.\n\nTHIRD PERIOD\n\n   STL -- (PPG) Shanahan 1 (J.Brown, Hull), 11:12.\n   STL -- (PPG) Hull 1 (Emerson, J.Brown), 11:29.\n\n   Penalties -- Shanahan, StL (roughing), 1:54; Matteau, Chi (high-sticking),\n9:56; Smith, Chi (slashing), 10:49; Baron, StL (roughing), 14:23.\n\nSHOTS ON GOAL\n\nBLUES       10    10     7   --   27\nCHICAGO      9     5    13   --   27\n\nPower-play Opportunities -- St. Louis 2 of 4; Chicago 1 of 7.\n\nGoaltenders -- St. Louis, Joseph, 1-0-0 (27 shots-24 saves).\n               Chicago, Belfour, 0-1-0 (27-23).\n\nReferee -- Kerry Fraser. Linesmen -- Kevin Collins, Brian Murphy. A -- 16,199.\n\n  %*%*%*%**%*%%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*\n  *   __  ______________         ____________________________________    % \n  %   \\ \\_)____________/         A L L E Z   L E S   B L U E S  ! ! !    * \n  *    \\    __________/          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    % \n  %     \\    ________/                                                   *\n  *      \\   _______/                  Joe Ashkar                        % \n  %       \\  \\                         Contact for the Blues             *\n  *        \\  \\  SAINT LOUIS           jca2@cec1.wustl.edu               % \n  %        (___)             BLUES                                       * \n  *%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*% \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1328, "properties": {"category": "talk.politics.misc", "text": "From: bhayden@teal.csn.org (Bruce Hayden)\nSubject: Re: Hate Crimes Laws\nNntp-Posting-Host: teal.csn.org\nOrganization: Colorado SuperNet, Inc.\nLines: 59\n\nthf2@kimbark.uchicago.edu (Ted Frank) writes:\n\n>In article <1993Apr5.050127.22304@news.acns.nwu.edu> dmeier@casbah.acns.nwu.edu (Douglas Meier) writes:\n>>In article <1993Apr4.011042.24938@isc-br.isc-br.com> steveh@thor.isc-br.com\n>>(Steve Hendricks) writes:\n>>>In article <1993Apr3.211910.21908@news.acns.nwu.edu>\n>>>dmeier@casbah.acns.nwu.edu (Douglas Meier) writes:\n>>>>...\n>>>>If someone beats up a homosexual, he should get charged for assault and\n>>>>battery.  Why must we add gay bashing to the list?  Isn't this a sort of\n>>>>double jeopardy?  Or am I just being a fascist again?\n>>>\n>>>() To deter an epidemic of \"gay bashing\" that has not been deterred by\n>>>   assault laws.  \n>>\n>>So we ought to make beating up a homosexual more illegal than beating up a\n>>straight?  \n\n>And who's advocating that?  Hate crimes laws are aimed at the motivations\n>of the acts.  Just like premeditated homicide is treated stricter than\n>heat-of-passion homicide.\n\nBut you still get into trouble. For example - how often are crimes\nof violence not \"hate crimes\"? The question is then who are you\nhating? If its another gang member, then its better than if\nthe person you hate is of a differnt color? \n\nAlso, is it realistic to declare that crimes of hate are worse\nthan crimes of gross negligence? (Like random drive by shootings\nwhere they can't be hate crimes because the shooter doesn't know\nwho he is going to hit - he just shoots into the crowd).\n\n>>>() No, it is not \"double jeopardy.\"  A single act may lead to multiple\n>>>   charges and multiple crimes.\n>>\n>>I think what you meant to say here was, \"With the current mutation of the US\n>>Constitution under the current police state, someone may be charged multiple\n>>times for one act if the victim in question is of the right shade.\"  A single\n>>act should never merit more than on charge.  \n\n>So if I set off a bomb in the World Trade Center, I can only be charged with\n>more than one murder, and not the other five deaths and extensive property\n>damage?  After all, the bomb was a single act.\n\nFirst, I heard today that there is a good chance that the U.S. instead\nof New York is going after the bombers. This means no capital punishment.\n\nSecondly, double jepardy does help keep the government from going after\nyou for first one murder, then the next, etc. A \"sovereign\" has essentially\none chance with a single fact pattern (such as the World Trade Center bombing).\nThat is why the bombers will in all probability be tried for all the\ndeaths, as well as the property damages, as well as conspiracy, at once.\nOf course, as we discovered in the Rodney King case, there are two\n\"sovereigns\", neither of which can try you twice for the same crime.\n\nBruce E. Hayden\n(303) 758-8400\nbhayden@csn.org\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1329, "properties": {"category": "comp.windows.x", "text": "From: fabian@vivian.w.open.de (Fabian Hoppe)\nSubject: Searching CAD-software\nNntp-Posting-Host: vivian\nOrganization: SubNet - The NeXT Generation\nLines: 13\n\nHi out there!\n\nI'm looking for (mechanic-construction)CAD-software either PD-sources\nor Sun 3-binaries (respective the licence.. :-).\nWho knows _ANY_ package (and a source/site to get it..) ?\n\nThx, Fabian\n\n-- \nFabian Hoppe\t\t\t\tPhone  : ++49 2332 12580\nElsternstr. 57\t\t\t\tFax    : ++49 2332 83741\nW-5820 Gevelsberg\t\t\tEMail  : fabian@vivian.w.open.de\nGermany\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1330, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: Press Briefing by George Stephanopoulos 4.14.93\nOrganization: MIT Artificial Intelligence Lab\nLines: 996\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\n\n                           THE WHITE HOUSE\n\n                    Office of the Press Secretary\n_____________________________________________________________________\nFor Immediate Release                                  April 14, 1993\n\n\n\n                            PRESS BRIEFING\n                       BY GEORGE STEPHANOPOULOS\n\n\n                          The Briefing Room\n\n\n12:40 P.M. EDT\n\t     \n\t     \n\t     MR. STEPHANOPOULOS:  I guess I'm just prepared to take \nquestions today.\n\t     \n\t     Q\t  George, Bob Dole says that the Clinton \nadministration's policy on Bosnia is a failure and that he wants the \nUnited States to take the lead in lifting the arms embargo so that \nthe Bosnian Muslims can defend themselves.\n\t     \n\t     MR. STEPHANOPOULOS:  As you know, President Clinton has \nsaid that that suggestion is under active consideration.  Obviously, \nthis is a tragic situation in Bosnia.  And if the Bosnian Serbs don't \ncome to the negotiating table in a constructive way, we'll look \nseriously at pressing for lifting the arms embargo.  In the meantime, \nwe're going to continue to press for a tough sanctions resolution in \nthe U.N.  We're going to continue to work on the Serbs to come to the \nnegotiating table.  But the prospect of an arms embargo is something \nthe President certainly will consider if the Serbs don't come to the \ntable.\n\t     \n\t     Q\t  How much longer are you going to give them to come \nto the table, George?\n\t     \n\t     MR. STEPHANOPOULOS:  We're working on that right now.\n\t     \n\t     Q\t  It's been a long time.\n\t     \n\t     Q\t  On February 19th, the President mentioned the value \nadded tax in Ohio.  And when he was asked about it later by \nreporters, he said -- quote -- \"That is a radical change in the tax \nsystem of the United States.  It's something I think we may have to \nlook at in the years ahead.\"  Questioned again about it later he \nsays, \"It is not something that is now under consideration.  If we \nstart considering it, I'll tell you.\"  It wasn't a trial balloon or \nanything, he said.  I was just discussing the tax response to a \nquestion.  Donna Shalala, quoted in USA Today this morning -- quote -\n- \"Certainly we're looking at a VAT.\"  What's gone on?\n\t     \n\t     Q\t  The same with Alice Rivlin this morning.\n\t     \n\t     MR. STEPHANOPOULOS:  The health care task force is \nreviewing a number of options.  They haven't made any decisions yet.  \nAnd as I have said from this podium time and time again, we're not \ngoing to comment on decisions that haven't been made.\n\t     \n\t     Q\t  But you have also said from this podium time and \ntime again --\n\t     \n\t     Q\t  Wait a minute.  Whoa, Nelly.  Whoa.  \n\t     \n\t     Q\t     that that was not under consideration.\n\t     \n\t     Q\t  Yes.  Clinton says, \"It is not something that is \nnow under consideration.\"  Is that no longer true?\n\t     \n\t     MR. STEPHANOPOULOS:  I believe the working group, as Ms. \nShalala says, has looked at this prospect, but no decisions have been \nmade of any kind.\n\t     \n\t     Q\t  Well, I know.  But he said he'd tell us about it if \nit was ever under consideration.  I take it that now he is and he \ndidn't tell us about it or --\n\t     \n\t     MR. STEPHANOPOULOS:  Did he say if it was under \nconsideration or if it was something to be proposed?\n\t     \n\t     Q\t  \"If we start considering I'll tell you.\"\n\t     \n\t     MR. STEPHANOPOULOS:  If it's something to be proposed?\n\t     \n\t     Q\t  \"If we start considering it, I'll tell you.\"  \nThat's a direct quote.\n\t     \n\t     MR. STEPHANOPOULOS:  The task force has looked at a \nnumber of different options.  They have not made any decisions yet.  \nThe President has not made any decisions yet.  This is -- one of the \nproposals under consideration by the task force was to go out and \ncast as wide a net as possible for different ideas on how to reform \nthe health care system.  They have cast a very wide net.  They have \nlooked at hundreds of different proposals -- probably thousands of \ndifferent proposals.  But the President has not made any decisions.\n\t     \n\t     Q\t  Well, is the President aware of their consideration \nof this option?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know if he's been briefed \non any preliminary conclusions or anything like that from the task \nforce on this specific proposal of any kind.  I don't know that \nthat's gotten to his level.  He started yesterday to go through with \nthe task force a very wide range of decisions and I don't believe \nthat that's been presented to him, no.\n\t     \n\t     Q\t  Well, he's not relying on the USA Today to tell him \nwhat his task force is considering in the way of taxes.\n\t     \n\t     MR. STEPHANOPOULOS:  No, he's going through it in a very \ndeliberate fashion.  There are a number of decisions that have to be \nmade.  I don't know that this proposal has reached that decision-\nmaking point.\n\t     \n\t     Q\t  If this is still under consideration, that's a \nchange, at least from what we've been told by Dee Dee, I think about \nthree weeks ago or so.  She said, that is not an option, talking \nabout the -- had a big argument with somebody over this, so I \nremember it specifically -- and said it not once, but twice.  Is that \nnot the case?\n\t     \n\t     MR. STEPHANOPOULOS:  Again, I don't know if this has \nbeen presented to the President as something that is being looked at \nat some level in the task force.\n\t     \n\t     Q\t  It was ruled it out, though.  I mean, unlike other \noptions that you've kept in the mix, this one specifically was ruled \nout.\n\t     \n\t     MR. STEPHANOPOULOS:  Again, this is something that is \nbeing looked at, but no decision has been made of any kind.  I mean, \nit doesn't -- it's not necessarily material until you get to the \ndecision-making phase.  The working groups are looking at hundreds of \ndifferent options.\n\t     \n\t     Q\t  If it was ruled out before and it's not ruled out \nnow, then something has changed, George.  Yes, no?\n\t     \n\t     Q\t  When a guy says in February --\n\t     \n\t     MR. STEPHANOPOULOS:  Well, the working groups are \nlooking at the widest possible range of options.\n\t     \n\t     Q\t  So something's changed.  They weren't looking at it \nbefore; they're looking at it now.\n\t     \n\t     MR. STEPHANOPOULOS:  Well, I don't know if the working \ngroups have gotten to that point yet.  They are casting a very wide \nnet.\n\t     \n\t     Q\t  How was it possible that you and Dee Dee were able \nto sell -- definitively rule it out as an option previously and now \nare saying that, in fact, it is being considered?\n\t     \n\t     MR. STEPHANOPOULOS:  Again, the working groups are \nlooking at a wide range of options.  They have not --\n\t     \n\t     Q\t  Do you deny that you and Dee Dee ruled it -- flatly \nruled it out on several occasions in the past month?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't deny that -- I mean, those \nare the President's words.  Those are very clear.\n\t     \n\t     Q\t  Subsequent to the President's words, do you deny \nthat within the last month you and Dee Dee have both publicly ruled \nit out?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know about the timing.  I \nthink what we did was refer back to the President's words and say \nthey stand.\n\t     \n\t     Q\t  So don't they stand any longer?\n\t     \n\t     Q\t  March 25th, Clinton said for the next four to five \nyears it was ruled out.\n\t     \n\t     MR. STEPHANOPOULOS:  Well, those words -- the President \ndid say that in February.  The working groups are on a separate \ntrack, and as I said, I don't believe --\n\t     \n\t     Q\t  Separate from the President?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't believe this has been \npresented to the President.\n\t     \n\t     Q\t  Are they considering something that the President \n--\n\t     \n\t     Q\t  Has ruled out?\n\t     \n\t     Q\t     has ruled out?  I mean, will the President \nconsider a VAT tax?\n\t     \n\t     MR. STEPHANOPOULOS:  Again, the working groups have not \npresented this to the President.  They have looked at a wide range of \noptions.  I suppose that if an argument is made, he will clearly \nlisten to it.  That does not mean he has decided to do it.\n\t     \n\t     Q\t  Can we put this another way?  In his answer in \nOhio, he looked at the VAT in terms of restructuring the whole tax \nsystem.  Under those -- that was the circumstance that he said it \nmight be considered at some future point.  Is that no longer the \ncase, or is that the only way that he can see a VAT emerging?\n\t     \n\t     MR. STEPHANOPOULOS:  I guess I'm not sure exactly what \nyou're asking.\n\t     \n\t     Q\t  He talked about the VAT in the context of a \nrestructured tax system, not as a specific way to finance health \ncare, for example.\n\t     \n\t     Q\t  Or anything else.\n\t     \n\t     Q\t  Or anything else.\n\t     \n\t     Q\t  It was always in the context of substituting for \nother taxes at a time of a dramatic overhaul of the whole tax system.\n\t     \n\t     MR. STEPHANOPOULOS:  Right.\n\t     \n\t     Q\t  Has that change, too?\n\t     \n\t     Q\t  Is that still his view?\n\t     \n\t     MR. STEPHANOPOULOS:  I haven't spoken about those \nspecific comments.  I think -- I can just go back to it -- are the \nworking groups -- have they examined the possibility of a VAT?  Yes, \nthey have.\n\t     \n\t     Q\t  Certainly we're looking at a VAT, she said.\n\t     \n\t     MR. STEPHANOPOULOS:  They have examined the possibility \nof a VAT.  Has it been presented to the President?  Has he made a \ndecision?  No, he has not.\n\t     \n\t     Q\t  What kind of a deal do you have when you've got the \nPresident's appointed task force, obviously not oblivious to his \nruling something out except in the context of some huge down the line \nreform, goes ahead on its own and considers a tax which he has \nspecifically ruled out in any context other than much later, and then \ngoes ahead and announces that that's what they're looking at?  Is the \nPresident concerned about that sort of thing?\n\t     \n\t     MR. STEPHANOPOULOS:  I think that the President's \nconcern is to make sure he gets the best health care proposal \npossible.  He's concerned with making sure that they have the most \nthorough process for examining all the possible alternatives, all the \ndifferent alternatives.  If a decision is made to go forward with \nsomething like that it's certainly something the President will \nexplain and justify.  But no decision has been made along those \nlines.\n\t     \n\t     Q\t  What does it mean exactly, though, when the \nPresident rules something out?  Does it mean it can get back on the \ntable later if a more persuasive argument is made?\n\t     \n\t     MR. STEPHANOPOULOS:  That's just -- that's indisputably \ntrue.  If you -- but, at the same time, he has not ruled it in.  He \nhas not made a proposal.\n\t     \n\t     Q\t  What makes him open to it now when he wasn't open \nto it before?\n\t     \n\t     MR. STEPHANOPOULOS:  He's certainly willing to listen to \nthe argument.\n\t     \n\t     Q\t  Was he willing to listen to the argument for a \nshort-term tax this year, and he wasn't willing to listen to it in \nChilicothe?  He's now open to it --\n\t     \n\t     MR. STEPHANOPOULOS:  The context of his comments was \nthat it was not something -- he wanted to be clear that this is not \nsomething he was proposing, not something he was floating.\n\t     \n\t     Q\t  Not something he was considering.  Those are his \nwords -- \"It's not something that's now under consideration.  If we \nstart considering it, I'll tell you.\"  You're now acknowledging, are \nyou not, that it is under consideration and --\n\t     \n\t     MR. STEPHANOPOULOS:  I'm acknowledging that the task \nforce has studied this proposal.  I am also stating that the \nPresident has not made a decision on it.\n\t     \n\t     Q\t  But the door is open for the President to \nreconsider including this as part of --\n\t     \n\t     MR. STEPHANOPOULOS:  Obviously, the working groups are \nlooking at it.  Again, but the President has not made a decision.\n\t     \n\t     Q\t  Do you know if they will make a presentation on \nbehalf of the VAT to him?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know that.  I assume that \nif -- I don't know what stage they are it in proposing.  I don't know \nthat they're going to make the conclusion that this is something they \nshould present to him.  I know this is something the working groups \nare looking at.\n\t     \n\t     Q\t  Do you understand, George, that none of us are \nasking these questions in context of a decision that the President \nhas made, only about what the President is considering?\n\t     \n\t     MR. STEPHANOPOULOS:  I understand that, and I am \nacknowledging that the working groups have examined the issue of a \nVAT.\n\t     \n\t     Q\t  And the President will consider it?\n\t     \n\t     MR. STEPHANOPOULOS:  I assume that he will consider the \nargument if it is presented to him.\n\t     \n\t     Q\t  Does that mean the President -- that working groups \nthink that when the President says no, he means maybe?  (Laughter.)\n\t     \n\t     MR. STEPHANOPOULOS:  I think that means that the working \ngroups are trying to do the most thorough job possible.\n\t     \n\t     Q\t  George, can I ask you another question about \nBosnia?\n\t     \n\t     MR. STEPHANOPOULOS:  Sure.  (Laughter.)\n\t     \n\t     Q\t  No, he wants us to stay on this.\n\t     \n\t     Q\t  Let's do gays in the military.  (Laughter.)\n\t     \n\t     Q\t  No, he got out of that swamp.\n\t     \n\t     Q\t  I think we've gotten the bottom line on that VAT.  \nReggie Bartholomew, your Special Ambassador in Belgrade, today said \nthat if the Serbs do not accept the agreement that has been worked \nout -- quote -- \"We will do our part to pursue the lifting of the \narms embargo together with our allies.\"  That seems to go a bit \nfurther than what you've just said --\n\t     \n\t     MR. STEPHANOPOULOS:  Sounds almost exactly what I just \nsaid.\n\t     \n\t     Q\t  Well, do you accept -- in other words, you accept \nwhat Reggie --\n\t     \n\t     MR. STEPHANOPOULOS:  Well, the President has said that \nthis is something that's under consideration.  It is something he \nwill consider if the current actions don't bring the Serbs to the \ntable.\n\t     \n\t     Q\t  Isn't there some kind of timetable here?  \n\t     \n\t     MR. STEPHANOPOULOS:  Yes, there is a timetable.  There's \ngoing to be a vote on the U.N. resolution in about 10 days.\n\t     \n\t     Q\t  That's on sanctions, that's on tightening the \nsanctions.\n\t     \n\t     MR. STEPHANOPOULOS:  That's right, that's sanctions.  \nAnd we believe that that will ratchet up the pressure, and we hope \nthat that will bring the Serbs to the table.  As you know, Mr. \nBartholomew also met with Mr. Churkin of Russia, and they are also \nworking on ways to bring the Serbs to the table.  We will continue to \npressure them in many different ways and this is one possible option \nas well.\n\t     \n\t     Q\t  The question is whether there's a timetable for \nconsideration or a vote on a decision on lifting the arms embargo, \nnot the sanctions.\n\t     \n\t     MR. STEPHANOPOULOS:  The next vote in the U.N. is on \nsanctions.  As far as I know, there are no votes scheduled on lifting \nthe arms embargo.  But it is something that we have discussed both \ninternally and with our allies.\n\t     \n\t     Q\t  Why did Reggie Bartholomew tell the Serbs that the \nU.S. would do that?  What was the point of his telling them that?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, clearly, I mean, this is \nsomething that's under consideration, and this is something that we \ntake quite seriously if they do not come to the table.  They should \nknow the consequences of failing to come to the table.\n\t     \n\t     Q\t  Have they been given a deadline?\n\t     \n\t     Q\t  Warren Christopher has been saying the same thing \nand it hasn't seemed to change the Serbs' behavior in the least.  Why \nshould the Serbs take any heed of a threat to lift the arms embargo \nwhen so far everything that's been done has had no effect on the \nfighting in Bosnia?\n\t     \n\t     MR. STEPHANOPOULOS:  I just don't accept the premise of \nyour question.  It has had an effect; the embargo is having an \neffect.  \n\t     \n\t     Q\t  What effect?\n\t     \n\t     MR. STEPHANOPOULOS:  If the Serbians choose not to heed \nour warnings, then they will face the consequences.\n\t     \n\t     Q\t  What effect has it had in Bosnia?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, the effect that it has had on \nthe Serbians, it has tightened up -- they are not getting their \nshipments through.  We can brief more fully --\n\t     \n\t     Q\t  In Bosnia, George.  In Bosnia what effect has it \nhad?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, it's hard to say if it's \nstopped the aggression to date.  That is why we're continuing to \npress for the Serbians to stop.  But we believe that over time we \nwill continue to weaken the Serbs and that will have   an effect.  \nI'm not saying it's going to happen overnight; it clearly hasn't \nhappened overnight.  But we believe that over time the sanctions can \nweaken the Serbs.  If it fails to work and if the Serbs fail to come \nto the negotiating table, we'll move forward with the embargo.\n\t     \n\t     Q\t  Isn't there a working deadline, George, of the 24th \n-- the same date as the U.N. -- the scheduled U.N. vote?  Hasn't the \nUnited States said, along with many of the other NATO allies, that if \nthe Serbs aren't willing to sign on to the peace accord by then, that \nwe'll seek -- haven't we said that we will seek --\n\t     \n\t     MR. STEPHANOPOULOS:  We've said continually we're going \nto --\n\t     \n\t     Q\t  But on that deadline?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't have a specific date, but \nwe're going to move forward with the resolution, the U.N. resolution, \nby around that time.  And if that fails to take effect, if that fails \nto bring the Serbs to the table, we will clearly consider other \nactions.\n\t     \n\t     Q\t  Isn't this awfully incremental?\n\t     \n\t     MR. STEPHANOPOULOS:  We're taking a step-by-step \napproach.  We're ratcheting up the pressure and we're going to \ncontinue to do that.\n\t     \n\t     Q\t  Is there a possibility, George, that by the time \nall these incremental steps are taken the Serbs will have achieved \ntheir goals and then what's the purpose?\n\t     \n\t     MR. STEPHANOPOULOS:  I think the purpose is to get the \nSerbs to stop the aggression.  We are pursuing that goal on many \ndifferent fronts.  We are pursuing it through the U.N.; we're \npursuing it through direct talks; we are pursuing it through \ntightening the sanctions.  And we will consider lifting the arms \nembargo.  We are turning the screws up on the Serbs and we will \ncontinue to do that.\n\t     \n\t     Q\t  But if the efforts have been unsuccessful in \ngetting the Serbs to stop the aggression how effective will any \ncampaign be to have the Serbs give back what they've gained?  I mean, \nonce they're entrenched --\n\t     \n\t     MR. STEPHANOPOULOS:  I can't speculate on that.  We're \ngoing to continue to press for them to come to the table now.  We're \ngoing to continue to find ways to stop the aggression.  But I can't \nsee into the future.\n\t     \n\t     Q\t  George, on the stimulus package, House Republicans \nsay they're going to hold a series of town meetings on Saturday to \ntry and explain the details of your package.  They cite polls which \nshow that the more people learn about it, the less they like it.  \nWhat's your strategy to counter that?\n\t     \n\t     MR. STEPHANOPOULOS:  The strategy we have is the one \nwe're going to continue.  As you saw, the President today pointed up \nthe very real benefits of the summer jobs program that this package \nwill provide:  700,000 new summer jobs this summer for kids in inner \ncities and suburbs to do productive work.  We are also going to point \nout the benefits of the highway money, the investments in highways.  \nWe're going to point up the benefits of immunization.  We're going to \npoint up the benefits of Head Start.  We are going to say that the \nRepublicans have a choice:  they can take action to create jobs or \nthey can perpetuate the gridlock of the last four years. \n\t     \n\t     Q\t  Does it concern you, though, that the House now, \nthe House Republicans are after you as well as the Senate?\n\t     \n\t     MR. STEPHANOPOULOS:  The House Republicans voted against \nit before.  They made a mistake then; they're making a mistake now.\n\t     \n\t     Q\t  George, does it strike anybody in the \nadministration that it's a bit strong to describe, as the President \ndid this morning, the summer jobs program as -- quote -- \"a \nreaffirmation of a promise of America\"?\n\t     \n\t     MR. STEPHANOPOULOS:  Not at all.  I think it's the \npromise of America to give kids a chance to reach their full \npotential. \n\t     \n\t     Q\t  Government-funded jobs?\n\t     \n\t     MR. STEPHANOPOULOS:  To give people a chance to work?  \nAbsolutely.  That is the promise of America.\n\t     \n\t     Q\t  I want to follow up on something I asked yesterday \n-- where does 700,000 summer jobs, where does that figure come from?\n\t     \n\t     MR. STEPHANOPOULOS:  That is on top of.  I did look at \nit.  There are currently 600,000 summer jobs in the pipeline.  This \nwill be on top of the 600,000, so it will be a total of 1.3 million.\n\t     \n\t     Q\t  The 700,000 would be created by the stimulus \npackage?\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.\n\t     \n\t     Q\t  Where does that number come from?  Because we've \nbeen told all along that the stimulus package would create 500,000 \nnew jobs.  And according to Panetta, that breaks down to something \nlike 200,000 full-time jobs and 150,000 summer jobs.\n\t     \n\t     MR. STEPHANOPOULOS:  Yes, but the summer -- that's when \nyou do their full-time equivalence.  I mean, 700,000 individuals will \nreceive jobs this summer.  When you calculate it for the full-time \njob effect, you have to do -- I don't know what the exact formula is.\n\t     \n\t     Q\t  Seven hundred thousand part-time jobs --\n\t     \n\t     MR. STEPHANOPOULOS:  -- 150,000 or --\n\t     \n\t     Q\t  One to four because it's three months.\n\t     \n\t     MR. STEPHANOPOULOS:  Thank you.\n\t     \n\t     Q\t  Can I follow up on that?  Did the President \nmisspeak this morning when he said that some of the government money \nfor these summer jobs will pay for private -- for kids to work in the \nprivate sector?\n\t     \n\t     MR. STEPHANOPOULOS:  Not necessarily.  I mean, I think \nthat there will be grants available.  That's one of the ways that you \npay for the jobs.  At the same time, he's also issued a challenge to \nthe private sector to hire kids on their own as well.  \n\t     \n\t     Q\t  Tax dollars, for instance, would pay for kids to \nwork at Time-Warner?\n\t     \n\t     MR. STEPHANOPOULOS:  I think the Time-Warner is actually \nsomebody coming forward and actually doing a grant.  That's going to \nbe the bulk of it.  There could be isolated instances, though, where \nthere would be grants to businesses.\n\t     \n\t     Q\t  Has the President spoken with any Senate \nRepublicans this week?\n\t     \n\t     MR. STEPHANOPOULOS:  \nNo, but there's been a lot of contact with Senate Republicans in the \nWhite House.\n\t     \n\t     Q\t  At a lower level.  But the President hasn't?\n\t     \n\t     MR. STEPHANOPOULOS:  The President has not, no.\n\t     \n\t     Q\t  Getting any closer to get the votes?\n\t     \n\t     MR. STEPHANOPOULOS:  We're continuing to work on it. \n\t     \n\t     Q\t  Anybody leaning your way?\n\t     \n\t     Q\t  On Haiti, The New York Times seems to be reporting \nsomething of a breakthrough in Aristide's attitude towards the coup \nleaders.  Can you confirm that there has been this change, and what \nimpact will it have on the process?  And what did Pezzullo have to \nsay yesterday in his report?\n\t     \n\t     MR. STEPHANOPOULOS:  Pezzullo did brief the principals.  \nI can't confirm what's actually happening in the talks.  I would \nleave that to the negotiators themselves.  But Mr. Caputo has \nreturned to Haiti.  We have received a briefing here at the White \nHouse from Ambassador Pezzullo.  And as we have said time and time \nagain, we believe that assurances of security are important to a \nfinal resolution to a broader political settlement.\n\t     \n\t     Q\t  George, yesterday you offered some selective \nbreakdowns of how the stimulus would impact some states and cities.  \nCan we get a complete breakdown by state of how these jobs would be \nimpacted?\n\t     \n\t     MR. STEPHANOPOULOS:  I think we have it for most states, \nyes.  And I think we can get it out.\n\t     \n\t     Q\t  Could you make that generally available?\n\t     \n\t     MR. STEPHANOPOULOS:  I believe we can.\n\t     \n\t     Q\t  And could you do it by the component of the \nstimulus?  In other words --\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know if we can do -- I know \nthat we can do it by summer jobs and other jobs.  I don't know how \ndeeply it can be broken down.  But clearly, we can break it down into \nsummer jobs and other jobs.\n\t     \n\t     Q\t  And can I follow up?  Is this the information that \nJeff Eller and the rest of the White House is using in the ads in the \nstates?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know if they're ads, but \nthey're press releases.\n\t     \n\t     Q\t  Can you describe what those press releases contain?\n\t     \n\t     MR. STEPHANOPOULOS:  All we're doing is pointing out the \nbenefits of this package to various states.  For instance, I know \nthat today Senator Dole is heading up to Vermont and New Hampshire.  \nAnd I would point out that the stimulus package, the jobs package \ncreates 1,000 jobs in Vermont.  It creates 2,000 jobs in New \nHampshire.  And the people of those states should remind him that \nthis is important. \n\t     \n\t     Q\t  Where are the releases going?\n\t     \n\t     MR. STEPHANOPOULOS:  They go to the states.\n\t     \n\t     Q\t  To whom?\n\t     \n\t     MR. STEPHANOPOULOS:  We can get them.  It's no problem.\n\t     \n\t     Q\t  Can we get it?\n\t     \n\t     Q\t  Why don't you put them out here as well?\n\t     \n\t     MR. STEPHANOPOULOS:  I think we can.\n\t     \n\t     Q\t  This afternoon?  Would that be possible?\n\t     \n\t     MR. STEPHANOPOULOS:  I'll have to check.  I don't know.  \nBut as soon as we can.\n\t     \n\t     Q\t  Are you focusing these press releases on states \nwhere there are moderate or pragmatic Republican senators?\n\t     \n\t     MR. STEPHANOPOULOS:  I think we're trying to get as many \nas we can.  It's actually quite difficult to pull this together and \nwe're doing our best.  We're putting them out as we get them.\n\t     \n\t     Q\t  Why are you so closely tracking Senator Dole's \nschedule?\n\t     \n\t     MR. STEPHANOPOULOS:  I was just following it. \n\t     \n\t     Q\t  Are press releases going along to states where he's \nvisiting?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm not sure.  I think that \nprobably there are press releases going to Vermont.  (Laughter.)\n\t     \n\t     Q\t  Will there be a man in a chicken suit waiting?  \n(Laughter.)\n\t     \n\t     Q\t  George, as the President goes about the business of \ndefending what's in his stimulus package, he doesn't address what \nseems to be the Republicans' main point, that you're funding it with \ndeficit spending rather than \"if it's so important, why not come up \nwith the funding for it\" seems to be the Republican argument.  And \nhow do you answer that?\n\t     \n\t     MR. STEPHANOPOULOS:  What was answer is, we are paying \nfor it over time.  And if you look at our budget, we pay for this \npackage over time.  We believe right now the economy needs a jump-\nstart for jobs.\n\t     \n\t     Q\t  You're not claiming, are you, that that doesn't add \nto the deficit this year?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm saying we're paying for it over \ntime.  I didn't say that.\n\t     \n\t     Q\t  I know that, George.  But I mean, from the \nbeginning, the question -- we do have annual budgets and things --\ndeficit spending will pay for that this year, will it not?\n\t     \n\t     MR. STEPHANOPOULOS:  This year they clearly will.  But \nover time our budget fully pays for this program.\n\t     \n\t     Q\t  What you're saying is that there are savings that \nwould cover this if it were this year in future years?\n\t     \n\t     MR. STEPHANOPOULOS:  Absolutely.  That's exactly what I \nsaid.\n\t     \n\t     Q\t  I know that, but there is going to be outstanding \ndebt, it will add to the national debt from this year --\n\t     \n\t     MR. STEPHANOPOULOS:  No, we're reducing the deficit by \n$500 billion -- $514 billion over the next four years.\n\t     \n\t     Q\t  You mean you're reducing it below what it would \nhave been?\n\t     \n\t     MR. STEPHANOPOULOS:  Exactly.\n\t     \n\t     Q\t  In fact, you're adding a very large amount to the \nnational debt over the period of --\n\t     \n\t     MR. STEPHANOPOULOS:  But we're reducing it far more from \nwhat it would have been.  That's true.  \n\t     \n\t     Q\t  Washington-type reduction.  (Laughter.)\n\t     \n\t     Q\t  You're getting to be a grumpy old man.\n\t     \n\t     Q\t  George, has any decision been made about the White \nHouse or the President's participation in the gay rights march coming \nup in a week and a half?\n\t     \n\t     MR. STEPHANOPOULOS:  We're working on the President's \nschedule now.  I believe he's going to be at the Senate Democratic \nretreat in Jamestown that weekend.\n\t     \n\t     Q\t  Will he address it by phone?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know about that.  It's a \nlittle far out, but I believe he's going to be in the Senate retreat.\n\t     \n\t     Q\t  So will he have the leaders in a day or two before \nthe speech?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know.  I would expect that \nat some point he would meet with the leaders of some of these groups.  \nI don't know the schedule on it, though.\n\t     \n\t     Q\t  Will there be an AIDS czar appointed prior to or in \nconjunction with the event?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm just not sure.\n\t     \n\t     Q\t  April 22nd is Earth Day.  What is the President \ngoing to do to mark that, and is it the case that he is going to sign \nthe biodiversity treaty that day?\n\t     \n\t     MR. STEPHANOPOULOS:  I know there's been some work on \nthe biodiversity treaty.  I don't know about signing it that day, but \nI would expect he'll have a statement on Earth Day or right around \nthen.\n\t     \n\t     Q\t  Where is the work on the biodiversity treaty?\n\t     \n\t     MR. STEPHANOPOULOS:  I'd have to check with Katie \nMcGinty.  I just know that there's been some work done, but I don't \nknow exactly what.\n\t     \n\t     Q\t  When is Earth Day?\n\t     \n\t     MR. STEPHANOPOULOS:  The 22nd, I think.\n\t     \n\t     Q\t  Why is it you know that he is going to have a \nstatement on Earth Day but you don't know if he's going to have a \nstatement on the gay rights march?\n\t     \n\t     MR. STEPHANOPOULOS:  I said I don't know if he's going \nto meet or when he's going to meet.\n\t     \n\t     Q\t  Do you have a statement on the gay rights march?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't, actually, no.  I wouldn't \nbe surprised if he did, though.\n\t     \n\t     Q\t  Do you have some details on the Miyazawa visit?\n\t     \n\t     MR. STEPHANOPOULOS:  It's a working visit on Friday and \nthe President is looking forward to that in discussing a number of \nissues including Russian aid and the Japanese stimulus package and \nthe trade issues between the two countries.\n\t     \n\t     Q\t  There was some expectations that a second aid \npackage to Russia was going to be unveiled at the G-7 meeting and, if \nI understand, it hasn't happened.  Why is that or what's the status \non that?\n\t     \n\t     MR. STEPHANOPOULOS:  The G-7 meeting is still going on \nand, as you know, Secretaries Bentsen and Christopher have talked \nabout the outlines of a possible package.  But we're going to \ncontinue to consult with Congress and our G-7 allies on that.\n\t     \n\t     Q?\t    We will not then make any kind of announcement \nduring the two-day meeting?\n\t     \n\t     MR. STEPHANOPOULOS:  The meeting's not over yet.  \n\t     \n\t     Q\t  Is that when you're going to make one?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm not ruling out the possibility.\n\t     \n\t     Q\t     the President's going to announce it tomorrow.\n\t     \n\t     Q\t  Bentsen said that.\n\t     \n\t     Q\t  Yes, Bentsen said it would be tomorrow.\n\t     \n\t     Q\t  So did Christopher.\n\t     \n\t     MR. STEPHANOPOULOS:  I'd have to look at that, but I \nbelieve it is more likely that the announcement will come out of \nTokyo.\n\t     \n\t     Q\t  George, has there been further consideration here \nabout going to -- sending the President out to Los Angeles?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know that there's -- it's \nnot something we've ruled out.  We don't have a date set for it.\n\t     \n\t     Q\t  George, you all have a position or do you support \nImmigration's plan to settle 4,000 Iraqi prisoners in the United \nStates?\n\t     \n\t     MR. STEPHANOPOULOS:  It's the first I've heard of it.\n\t     \n\t     Q\t  George, there was a report today about the --\n\t     \n\t     Q\t  Fortunately.  (Laughter.) \n\t     \n\t     Q\t     about the pace of appointments and says that \nPresident Clinton is behind President Bush in the number of positions \nthat people have been nominated for.  Are you going to speed up the \npace of nominations or where do you stand with it?\n\t     \n\t     MR. STEPHANOPOULOS:  We filled 814 of the President's \nappointments.  And it's broken down -- we have 384 Schedule C; 147 \nnoncareer SES; 213 PAS full-time.  I'm not sure what that means --\n(laughter) -- 70 PA full-time.  And this is about the same -- it's \nabout the same pace of President Bush.  Obviously, as you move along \nfarther, once you -- each level of appointment actually has a \nmultiplier effect and frees up far more appointments.  So we expect \nthe process to speed up.  But we're at the pace of Bush.  Obviously \nwe'd like to get these done as quickly as possible.  \n\t     \n\t     I would point out that the FBI background checks and the \nbackground check is far more comprehensive and it takes more time \nthan our predecessors, and that is part of the holdup.  But we're \nworking on it.\n\t     \n\t     Q\t  Is that because of Nannygate?\n\t     \n\t     MR. STEPHANOPOULOS:  I think that's an awful big part of \nit, yes.\n\t     \n\t     Q\t  In the story this morning, you were at \napproximately the same pace as Bush in making appointments, but way \nbehind in winning confirmations.\n\t     \n\t     MR. STEPHANOPOULOS:  That's where the background checks \ncomes into play.  That's the problem.\n\t     \n\t     Q\t  That's the background checks problem?  Because I \nmean, you have a Democratic Senate --\n\t     \n\t     MR. STEPHANOPOULOS:  No, that's not the -- you make the \nappointments, and then it takes quite a bit of time to fill out all \nthe forms and have the background checks done.  That's exactly where \nthe problem is.\n\t     \n\t     Q\t  What's the President doing this afternoon, and \nwhat's on the plan for tomorrow?\n\t     \n\t     MR. STEPHANOPOULOS:  He's got some meetings -- just \noffice meetings this afternoon for the most part, on a variety of \nissues that -- probably a half-dozen different issues.  And then \nhe'll be -- tomorrow we'll have an event, probably again focused on \nthe stimulus and jobs package out of here at the White House.  And \nFriday is the Miyazawa meeting.\n\t     \n\t     Q\t  Will you be releasing his tax return tomorrow, \nGeorge?\n\t     \n\t     MR. STEPHANOPOULOS:  Either tomorrow or Friday.\n\t     \n\t     Q\t  Is there going to be a pre-briefing regarding the \nJapanese Prime Minister's visit tomorrow?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know about tomorrow, but \nwe'll probably get something done, as we usually do, for these \nvisits.\n\t     \n\t     Q\t  Was Reverend Jackson here this morning and do you \nknow what that was about?\n\t     \n\t     MR. STEPHANOPOULOS:  He was here.  He met with a group \nof us here at the White House, including Mack McLarty.\n\t     \n\t     Q\t  Who?\n\t     \n\t     Q\t  Reverend Jackson.\n\t     \n\t     MR. STEPHANOPOULOS:  Reverend Jackson.  Mack McLarty, \nme, Gene Sperling, Bruce Reed, Jeff Watson, Mark Gearan. \n\t     \n\t     Q\t  Talking about Haiti?\n\t     \n\t     MR. STEPHANOPOULOS:  We talked about general urban \npolicy.  He is about to go to Los Angeles.  He was just back from \nMississippi, where we had a good victory last night; and he's going \non to Los Angeles.\n\t     \n\t     Q\t  Did he request the meeting?\n\t     \n\t     MR. STEPHANOPOULOS:  Actually, no.  He's in continual \ncontact with the President.  He had written a letter on a variety of \nissues, and so we asked him to come in and talk about it.\n\t     \n\t     Q\t  George, Dole is having a fundraiser for Jeffords \ntonight in Vermont.  Have you guys been  in contact with Jeffords at \nall on this?\n\n\t     MR. STEPHANOPOULOS:  I think there's been some contact, \nsure.\n\t     \n\t     Q\t  Can you tell us about the contacts?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm not sure -- \n\t     \n\t     Q\t  Do you know who contacted him or what was said?\n\t     \n\t     MR. STEPHANOPOULOS:  I know that Howard Paster talked to \nhim and they just has a general talk about the package.\n\t     \n\t     Q\t  And did he express his support for it now, or is he \n--\n\t     \n\t     MR. STEPHANOPOULOS:  I can't divulge the details of the \nconversation, but there have been conversations.\n\t     \n\t     Q\t  The L.A. Times is reporting that abortion --\nelective abortions is likely to be included in the basic health care \npackage.  Is this something the President is considering?\n\t     \n\t     MR. STEPHANOPOULOS:  Again --\n\t     \n\t     Q\t  Along with the VAT?  (Laughter.)\n\t     \n\t     MR. STEPHANOPOULOS:  It's certainly something that's \nbeen looked at, but no decisions have been made.\n\t     \n\t     Q\t  What was the question?\n\t     \n\t     MR. STEPHANOPOULOS:  The L.A. Times story on whether \nabortions will be covered by the President's health plan.\n\t     \n\t     Q\t  Did the President in his meeting -- did you in your \nmeeting with Reverend Jackson ask his advice, solicit his advice \nabout what kind of stance the White House should take in the wake of \nthe verdict in L.A.?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, we certainly talked about the \nsituation in Los Angeles and the long-term prospects for economic \ndevelopment and other issues.\n\t     \n\t     Q\t  For instance, did you discuss whether it would be \nhelpful for the President to go there or not?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, we discussed a wide range of \nissues related to Los Angeles.  That was certainly one of them.\n\t     \n\t     Q\t  Letting you perhaps go out on the way you came in, \nI need to go back to Bosnia just for a second and ask --\n\t     \n\t     MR. STEPHANOPOULOS:  Oh, good.\n\t     \n\t     Q\t     your reaction to Margaret Thatcher's comments \nthat you're just sitting by and watching a massacre.\n\t     \n\t     MR. STEPHANOPOULOS:  Well, we've been pushing very hard \non a number of fronts for more aggressive action.  We will continue \nto do that.\n\t     \n\t     Q\t  Can you tell us if you've made any progress in your \ntalks on the stimulus package getting a compromise?  I mean, we don't \nhave any feel except talks are ongoing.  Have you talked to like 20 \npeople or --\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know the numbers.  We've \ntalked to several people and we've had wide-ranging sessions.  \n\t     \n\t     Q\t  Anyone leaning your way?\n\t     \n\t     MR. STEPHANOPOULOS:  I can't get into that.  We're just \ngoing to keep working through Tuesday.\n\t     \n\t     THE PRESS:  Thank you.\n\n                                 END                    1:10 P.M. EDT\n\t     \n#56-04/14\n\t     \n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1331, "properties": {"category": "talk.religion.misc", "text": "From: mathew@mantis.co.uk (mathew)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Mantis Consultants, Cambridge. UK.\nLines: 12\nX-Newsreader: rusnews v1.01\n\nfrank@D012S658.uucp (Frank O'Dwyer) writes:\n> (b) I am neither a Christian nor a theist, but I believe in objective\n> morality in preference to a relativist soup of gobbledegook.\n\nWell, there are two approaches we can take here.  One is to ask you what this\nobjective morality is, assuming it's not a secret.\n\nThe other is to ask you what you think is wrong with relativism, so that we\ncan correct your misconceptions :-)\n\n\nmathew\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1332, "properties": {"category": "talk.politics.mideast", "text": "From: anwar+@cs.cmu.edu (Anwar Mohammed)\nSubject: Re: Remember those names come election time.\nKeywords: usa federal, government, international, non-usa government\nNntp-Posting-Host: gs135.sp.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 15\n\nI said:\n  In article <C5u4qI.Mz4@apollo.hp.com> nelson_p@apollo.hp.com (Peter Nelson) writes:\n  >\n  >  Besides, there's no case that can be made for US military involvement\n  >  there that doesn't apply equally well to, say, Liberia, Angola, or\n  >  (it appears with the Khmer Rouge's new campaign) Cambodia.   Non-whites\n  >  don't count?\n\n  Hmm...some might say Kuwaitis are non-white. Ooops, I forgot, Kuwaitis are\n  \"oil rich\", \"loaded with petro-dollars\", etc so they don't count.\n\n...and let's not forget Somalia, which is about as far from white as it\ngets.\n\nThat's two in a row, care to try for more?\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1333, "properties": {"category": "talk.politics.guns", "text": "From: kckluge@eecs.umich.edu (Karl Kluge)\nSubject: Re: Gritz/JBS/Liberty Lobby/LaRouche/Christic Insitute/Libertarian/....\nIn-Reply-To: arf@genesis.MCS.COM's message of 15 Apr 1993 20:57:53 -0500\nOrganization: University of Michigan\nLines: 21\n\n\n> From: arf@genesis.MCS.COM (Jack Schmidling)\n> Subject: Re: Gritz/JBS/Liberty Lobby/LaRouche/Christic Insitute/Libertarian/....\n> Date: 15 Apr 1993 20:57:53 -0500\n> \n> I can't speak for the organizations you cited but everywhere you look in\n> our society and government, one can see the relentless movement toward\n> one world government.  The fact that the media demeans such charished \n> values as patriotism, nationalism and protectionism are some of the\n> clues....Our porous border both people and trade are an indiciation that \n> we have already lost a great deal of sovergnty.\n\n...and I'm sure that people who were big fans of fuedalism pissed and\nmoaned about the emergence of the modern nation-state. Imagine, the King\nallowing serfs their freedom if they could live in the city for a year!\nTimes change, technology changes, viable forms of social organization\nchange. While concerns about preserving Western notions of civil liberties\nin the face of cultures with very different values is a valid one, it's\na waste of effort to try to turn back the tide. It's much smarter to focus\non trying to make sure that the emerging forms of social organization are\nacceptable than it iss to lament the passing of the old forms.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1334, "properties": {"category": "comp.sys.mac.hardware", "text": "From: qman@casbah.acns.nwu.edu (Charlie Kuehmann)\nSubject: Trouble w/ VGA displays\nNntp-Posting-Host: ironman.ms.nwu.edu\nOrganization: Northwestern University\nLines: 17\n\nI'm currently having trouble connecting my PB to a true blue (IBM Model\n1513) VGA monitor.  The display is bearly readable but all the details are\nseperated into yellow and red colors. ie. a window will have two images one\nin yellow and a ghost image in red.  The background is also a little\ngreenish.  I read some time ago, before I ever thought I would hook my mac\nup to a VGA screen, about an incompatability with some VGA monitors due to\nthe sync on green signal.  Does this sound like it could be the same demon?\n I also read that there are both hardware (putting a diode on the green\nsignal?) solution and a software solution to this problem.  I don't the\ndetails does somebody have them the can e-mail to me or post them?  I\nchecked all the FAQ's for this and didn't find anything about it.  Did I\nmiss it somewhere?  This sure seems that it would be a good thing to have\nin one.  Thanks for any replys.\n\nCharles Kuehmann\nNorthwestern University\nSteel Research Group\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1335, "properties": {"category": "soc.religion.christian", "text": "From: will@futon.webo.dg.com (Will Taber)\nSubject: Re: SATANIC TOUNGES\nLines: 38\n\n\n pwhite@empros.com (Peter White) relates a story about a person who \ngives a message in tongues which consists entirely of the words pu'\nka.  He was asked to refrain from doing that.\n\n\n>Well, Brother Puka controlled himself for a while, but a few weeks\n>later, the church had invited a missionary in to speak. At the time of\n>the meeting where tongues and interpretation were appropriate, who \n>should arise to speak but Brother Puka. And off he went as before,\n>all the words were Puka. The pastor was about to apologize for this\n>embarrassment when the missionary arose to speak saying that he\n>was sorry that he did not have the interpretation but that he could\n>give the translation. In a tribe where he had worked, they only had\n>one word in the language, puka. Meaning was derived from the inflection\n>and other voice qualities. Brother Puka had given a perfectly inflected\n>and reasonable message.\n\nNice story but it sets off my urban legend (or is it charismatic\nlegend?) alarms.  Can the linguists on the net identify the language\nfrom the description?  Or can they even attest that such a language\nexists.  It seems to be odd enough (at least by the standards of\nEuropean languages) that if it exists, it should be reasonably well\nknown to linguists as an extreme case of something or other.\n\nOr have I just overreacted to your basic shaggy dog story?\n\nWill\n\n\n---------------------------------------------------------------------------- \n| William Taber         | Will_Taber@dg.com \t  | Any opinions expressed |\n| Data General Corp.    | will@futon.webo.dg.com  | are mine alone and may |\n| Westboro, Mass. 01580 |                         | change without notice. |\n|---------------------------------------------------------------------------\n| When all your dreams are laid to rest, you can get what's second best,   |\n|\tBut it's hard to get enough.\t\tDavid Wilcox               |\n----------------------------------------------------------------------------\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1336, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Flames Truly Brutal in Loss\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nDistribution: na\nLines: 13\n\n\nThis game would have been great as part of a double-header on ABC or\nESPN; the league would have been able to push back-to-back wins by\nLe Magnifique and The Great One.  Unfortunately, the only network\nthat would have done that was SCA, seen in few areas and hard to\njustify as a pay channel. )-;\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1337, "properties": {"category": "comp.windows.x", "text": "From: dale@wente.llnl.gov (Dale M. Slone)\nSubject: xlock\nOrganization: Lawrence Livermore National Laboratory\nLines: 11\nDistribution: world\nNNTP-Posting-Host: morbid.llnl.gov\n\nI found an oddity with our SGI Indigo (MIPS R3000 chip).\nWhen xlock +nolock is running, and I am working remotely\nor in batch (at) mode, the runtime of my programs (as timed\nby using clock() in the code itself) is ~25% slower than if\nxlock is NOT running.  No other processes seem to affect my\nruntimes, yet this is very consistent!\n\nAny explanations, real or imagined :)\n\nthanx\ndale@frostedflakes.llnl.gov\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1338, "properties": {"category": "sci.electronics", "text": "From: peter.m@insane.apana.org.au (Peter Tryndoch)\nSubject: What'S A Good Ic For Rs23\nLines: 13\n\nAllTall Cool OneWhat's a good IC for RS23\n\nTC>From: rky57514@uxa.cso.uiuc.edu (Tall Cool One )\nTC>Organization: University of Illinois at Urbana\nTC>I'm looking for an IC that will convert RS232 voltage levels to TTL vo\nTC>levels.  Something relatively inexpensive would be nice, too.  Anyone \nTC>a suggestion??  Thanks.\n\nTry a Maxim \"MAX232CPE\" 8 pin dil, converts 5V to 12V for 232commms.\nWhat a clever little gizmo!\n\nPeter T.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1339, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ruckman@oasys.dt.navy.mil\nSubject: Re: Is ms-windows a \"mature\" OS?\nKeywords: ms-windows\nReply-To: ruckman@oasys.dt.navy.mil\nOrganization: Carderock Division, NSWC\nLines: 12\n\n\nIn article <C5snBs.J3H@usenet.ucs.indiana.edu> comp.os.ms-windows.advocacy writes:\n>>(1) You can not create hierarchy groups. There is no way to create a group\n>>    in a group. (If you know how, please tell me.)\n\nGet Norton Desktop.  Put groups within groups, groups on the desktop, icons\non the desktop, etc.\n\n--\nChris Ruckman - ruckman@oasys.dt.navy.mil | This .sig brought to you by\nHull Structures Acoustics, Code 741       | your local Chevrolet bottler.\nCarderock Division, NSWC                  | \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1340, "properties": {"category": "comp.graphics", "text": "From: add@sciences.sdsu.edu (James D. Murray)\nSubject: Need specs/info on Apple QuickTime\nOrganization: San Diego State University, College of Sciences\nLines: 12\nNNTP-Posting-Host: sciences.sdsu.edu\nKeywords: quicktime\nX-Newsreader: TIN [version 1.1 PL9]\n\nI need to get the specs, or at least a very verbose interpretation of the\nspecs, for QuickTime.  Technical articles from magazines and references to\nbooks would be nice too.\n\nI also need the specs in a format usable on a Unix or MS-DOS system.  I can't\ndo much with the QuickTime stuff they have on ftp.apple.com in its present\nformat.\n\nThanks in advance.\n\nJames D. Murray\nadd@sciences.sdsu.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1341, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rosa@ghost.dsi.unimi.it (massimo rossi)\nSubject: ide &scsi controller\nOrganization: Computer Science Dep. - Milan University\nLines: 16\n\nhi folks\ni have 2 hd first is an seagate 130mb\nthe second a cdc 340mb (with a future domain no ram)\ni'd like to change my 2 controller ide & scsi and buy\na new one with ram (at least 1mb) that could controll \nall of them\nany companies?\nhow many $?\nand is it possible via hw or via sw select how divide\nthe ram cache for 2 hd? (for example using dos that is \nabout all on one hd i'd like to reserve ram cache just to it)\n\nthanks to all\nwrite at   rosa@ghost.sm.dsi.unimi.it\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1342, "properties": {"category": "rec.sport.baseball", "text": "From: st1rp@rosie.uh.edu (Schwam, David S.)\nSubject: Re: ASTROS FOR REAL?\nOrganization: University of Houston\nLines: 51\nDistribution: usa\nNNTP-Posting-Host: rosie.uh.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <C5Ky58.12KD@austin.ibm.com>, marc@yogi.austin.ibm.com (Marc J. Stephenson) writes...\n>In article <1993Apr15.234838.4138@ccsvax.sfasu.edu> z_millerwl@ccsvax.sfasu.edu writes:\n>>WHO THINKS THE ASTROS ARE GOING PLACES???\n>>THEY'RE CURRENTLY FIRST PLACE.\n>>THEY'RE 5-4, 5-1 ON THE ROAD! \n> \n>I AGREE, LUMBERJACK (except that they're in 2nd)!  They ARE going PLACES -\n>San Diego, Los Angeles, San Francisco, Cincinnati, Denver, Atlanta, Miami,\n>Philadelphia, New York, Montreal, Pittsburgh, Chicago, St. Louis...and\n>points in between.  :-)\n> \n>But,\n>THEY'RE 0-3 AT HOME!\n\nBut,\n THEY FACED THE PHILLIES -- A TEAM THAT GOT OFF TO AN 8-1 START.\n\n\n> \n>I'm just not used to an overly enthusiastic Houston fan.  I really shouldn't\n>discourage it, so HANG IN THERE, LUMBERJACK!  (But, get ahold of that shift\n>key, will ya?)\n> \n>ObBase:  Apparently the new owner (Drayton McLain (sp?)) doesn't particularly\n>like excuses.  An item in our paper (the Austin American-Statesman - \"If you\n>read it here, it was somewhere else first\") said that he wouldn't take \n>injuries as an excuse for losing because that possibility should have been\n>accounted for.  Uh, oh.  I don't want an owner that'll keep everybody on\n>edge - I'd never gotten that feeling about him, but who knows?  Does \n\n\n  To be honest, I think the city of Houston loves the new owner.  He has\nbrought baseball back to Houston with key acquisitions -- players that\nwere from the Houston area and wanted to play for the Astros.  I don't\nthink that too many people are fearful that McLane will meddle in the team\nas he has already admitted that he doesn't know a whole lot about baseball.\nMcLane is a businessman, and doesn't like excuses.  He makes a valid point\nthat injuries shouldn't be an excuse to this club.  Look at the depth of the\nbench this season.. Canadele can play 7 positions; Bass and James are solid\noutfielders and can hit well too; Uribe is nice to have as well..  The\npitching staff has 6 legitimate starters.  We're dealing with a young\nHouston team, so injuries shouldn't play a big role.  The only threat is\nthe bullpen -- if Jonesy goes out, we may be in trouble but with the\ntype of starters we have this season, there is less pressure on the pen.\n\n--- --- --- --- --- ---\n David S. Schwam\n University of Houston\n st1rp@jetson.uh.edu\n--- --- --- --- --- ---\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1343, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Boston University Physics Department\nLines: 14\n\nIn article <1qi3l5$jkj@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>I hope an Islamic Bank is something other than BCCI, which\n>ripped off so many small depositors among the Muslim\n>community in the Uk and elsewhere.\n\n>jon.\n\nGrow up, childish propagandist.\n\n\n\n\nGregg\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1344, "properties": {"category": "soc.religion.christian", "text": "From: REXLEX@fnal.fnal.gov\nSubject: Hell_2:  Black Sabbath\nOrganization: FNAL/AD/Net\nLines: 70\n\n[In looking through my files this weekend, I ran across some lyrics from\nvarious rock groups that have content.  Here are two from Black Sabbath's\n\"Master of Reality\".  I'll say this much for the music of the '60's and early\n'70's, at least they asked questions of significance.  Jethro Tull is another\nto asked and wrote about things that caused one to wonder. --Rex] \n\nAFTER FOREVER\n\nHave you ever thought about your soul--\n     can it be saved?\nOr perhaps you think that when you're dead\n     you just stay in you grave.\nIs God just a thought within you read in a book\n     when you were at school?\nWhen you think about death \n     Do you lose your breath\n     Or do you keep your cool?\n\nWould you like to see the Pope on the end of a rope?\nDo you think he's a fool?\nWell I have seen the truth.  Yes I have seen the light\n     and I've changed my ways.\nAnd I'll be prepared \n     When you're lonely and scared\n     at the end of your days.\n\nCould it be you're afraid of what your friends might say\nIf they knew you believed in God above?\nThey should realize before they criticise\nThat God is the only way to love. \n\nIs your mind so small that you have to fall\nIn with the pack wherever they run?\nWill you still sneer when death is near\nAnd say they may as well worship the sun?\n\nI think it was true -it was people like you\n     that crucified Christ.\nI think it is sad the opinion you had\n     was the only one voiced.\nWill you be so sure when your day is near\n     to say you don't believe?\nYou had the chance but you turned it down\n     now you can't retrieve.\nPerhaps you'll think before you say that God is dead & gone\nOpen your eyes, just realize that He is the one.\nThe only one who can save you now from all this sin and hate.\nOr will you still jeer at all you hear?\nYes!  I think it's too late.\n\n\nLORD OF THIS WORLD\n\nYou're searching for your mind don't know where to start.\nCan't find the key to fit the lock on your heart.\nYou think you know but you are never quite sure\nYour soul is ill but you will not find a cure.\nYour world was made for you by someone above\nBut you choose evil ways instead of love.\nYou made me master of the world where you exist\nThe soul I took from you was not even missed.\nLord of the world,\nEvil Possessor,\nLord of this world,\nHe's now your confessor!\nYou think you're innocent -you've nothing to fear\nYou don't know me, you say, but isn't it clear?\nYou turned to me in all your worldly\n    greed and pride.\nBut will you turn to me when it your turn to die?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1345, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jks4675@ritvax.isc.rit.edu\nSubject: Seagate 125MB IDE Jumper question\nNntp-Posting-Host: vaxc.isc.rit.edu\nReply-To: jks4675@ritvax.isc.rit.edu\nOrganization: Rochester Institute of Technology\n\nSince the losers that sold me the hard disk for my computer are\nso generous, I need the info to set this drive from master to\nslave. Any help would be greatly appreciated.  Please reply via e-mail.\n\nIncidentally, avoid purchasing a computer from ACS in Endicott, NY.\n\n\nJeff\n****************************************************************\n*  Four out of five electrons prefer holes for their mutual    *\n*  annhiliation needs. Boycott Sierra. Ignore anybody who      *\n*  purports to be a serious Windows user. Support new makers   *\n*  of hardware and software. Buy Canadian music. Quit smoking. *\n*  Take up running. FM synthesis is the CGA of audio.          *\n*                            JKS4675@RITVAX.ISC.RIT.EDU        *\n****************************************************************\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.064+0000", "event": "documents", "entityId": 1346, "properties": {"category": "sci.space", "text": "Subject: Re: Vandalizing the sky.\nFrom: thacker@rhea.arc.ab.ca\nOrganization: Alberta Research Council\nNntp-Posting-Host: rhea.arc.ab.ca\nLines: 13\n\nIn article <C5t05K.DB6@research.canon.oz.au>, enzo@research.canon.oz.au (Enzo Liguori) writes:\n\n<<<most of message deleted>>>\n\n> What about light pollution in observations? (I read somewhere else that\n> it might even be visible during the day, leave alone at night).\n\n> Really, really depressed.\n> \n>              Enzo\n\nNo need to be depressed about this one.  Lights aren't on during the day\nso there shouldn't be any daytime light pollution.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1347, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ntaib@silver.ucs.indiana.edu (Iskandar Taib)\nSubject: Re: Hercules Graphite?\nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 20\n\nIn article <1993Apr06.185638.12139@metrics.com> tomh@metrics.com (Tom Haapanen) writes:\n\n>Has anyone used a Hercules Graphite adapter?  It looks good on paper, and\n>Steve Gibson gave it a very good review in Infoworld.  I'd love to get a\n>real-world impression, though -- how is the speed?  Drivers?  Support?\n\nThe PC World reviewers found out that the Herc people had hard-coded\nWinbench text into the driver. Clever, no? In any case, the Winbench\nresults are pretty much inflated.\n\nWhen and if you get one send me mail.. I might buy that ATI GU+ off\nyou.. 9-)\n\n\n\n-- \n-------------------------------------------------------------------------------\nIskandar Taib                          | The only thing worse than Peach ala\nInternet: NTAIB@SILVER.UCS.INDIANA.EDU |    Frog is Frog ala Peach\nBitnet:   NTAIB@IUBACS                 !\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1348, "properties": {"category": "talk.politics.misc", "text": "From: cdm@pmafire.inel.gov (Dale Cook)\nSubject: Re: Why Is Tax Evasion Not Considered Unpatriotic?\nOrganization: WINCO\nLines: 32\n\nIn article <C4vy56.C0t@newsserver.technet.sg> ipser@solomon.technet.sg (Ed Ipser) writes:\n>In article <1993Mar31.185128.5668@pmafire.inel.gov> cdm@pmafire.inel.gov (Dale Cook) writes:\n>>In article <1pasrg$ife@s1.gov> lip@s1.gov (Loren I. Petrich) writes:\n>>>\n>>>\tThe title is self-explanatory; Isaac Asimov once pointed out\n>>>that curious fact.\n>>\n>>Well, since tax evasion is illegal, one generally would not bother to \n>>consider whether it was unpatriotic or not.  How often does one think\n>>of murder as being unpatriotic?\n>>\n>>Perhaps a more appropriate question would be \"why is tax *avoidance* not\n>>considered unpatriotic?\".  The answer to this is simple.  Tax avoidance\n>>is simply defined as paying the minimum tax you are legally obligated to\n>>pay.\n>\n>There is a deeper reason. Taxes,  by their very nature, are un-American.\n>One need only look at the birth and history of the US to see this fact.\n\nWasn't the beef with the English over \"taxation WITHOUT REPRESENTATION\",\nnot taxation itself?  \n\nFrom my admittedly dim recollection of US history, most of the problems \nwe Americans have had with taxes have been with unfair/unjust taxation\nschemes, not with taxes themselves.  It's pretty hard to run a government\nwithout any means of support.\n\n--------------------------------------------------------------------------\n...Dale Cook    \"Any town having more churches than bars has a serious\n                   social problem.\" ---Edward Abbey\nThe opinions are mine only (i.e., they are NOT my employer's)\n--------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1349, "properties": {"category": "rec.sport.hockey", "text": "From: huot@cray.com (Tom Huot)\nSubject: Re: Bruins-Pens: the Ulf-Neeley fight\nLines: 9\nNntp-Posting-Host: pittpa.cray.com\nOrganization: Cray Research Inc.\nX-Newsreader: TIN [version 1.1 PL8]\n\nOh, excuse me for wasting the bandwidth, but I was referring to \nthe original incident, not the recent skirmish which occurred\nthis past month. \n\n--\n_____________________________________________________________________________\nTom Huot        \t\t\t       \nhuot@cray.com \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1350, "properties": {"category": "talk.religion.misc", "text": "From: irfan@davinci.ece.wisc.edu (Irfan Alan)\nSubject: A TREATISE ON THE MIRACLES OF MUHAMMAD SAW, PART-2\nOrganization: Univ. of Wisconsin-Madison; Electrical & Computer Engineering\nDistribution: usa\nLines: 125\n\n\nThe following is an introduction as to who is Muhammad SAW\nas will be covered with this treatise.\n\nMUHAMMAD peace and blessings of Allah be upon him (SAW)\nis the last prophet of Islam.  He is the Prophet who is revealed\nthe last Holy Scripture, Qur'an, by Allah SWA (all praise be to Him)\nthrough the Arch Angel Gabriel.  He is the seal of all prophets\ntill the day of judgement as stated in the Qur'an by Allah\nSWA (all praise be to Him).  Muhammad SAW lived between\n571-632 AC.  All other prophethoods claimed after Muhammad SAW,\nis a treason against Islam, against Qur'an, against the message\nof Allah SWA.  Muhammad SAW is from the seed of Ishmael, another\nmessenger of Allah and son of Abraham also a messenger of Allah.\nHe is the Messenger that previous holy scriptures foretold his\ncoming.  The above mentioned verse from the Qur'an is from \nChapter 33, Verse 40 whose rough translation is as follows:\n\n\tMuhammad is not the father of any of your men,\n\tbut (he is) the messenger of Allah, and the seal\n\tof the prophets, and Allah has full knowledge of\n\tall things.\n\n---------------------\nCommentary on the above verse:  When a document is sealed,\nit is complete, and there can be no further addition.  The \nHoly Prophet Muhammad SAW closed the long line of Messengers.\nAllah's teaching is and will always be continuous, but there\nhas been and will be NO Prophet after Muhammad SAW.  The later\nages will want thinkers, and revivers, not Prophets.  This is not\nan arbitrary matter.  It is a decree full of knowledge and wisdom,\n\"for Allah has full knowledge of all things.\"\n\n----------------------\nDROPLET VOL 1, No 11, Part 2\n\nA   D R O P L E T\nFrom The Vast Ocean Of The Miraculous Qur'an\n\nTranslations from the Arabic and Turkish Writings of \nBediuzzaman Said Nursi, The Risale-i Noor\n\nVOL 1, No 11, Part 2\n------------------------------------------------------------------\n   \t\t NINETEENTH LETTER  \n\n\t\t MU'JIZAT-I AHMEDIYE RISALESI \n(A TREATISE ON THE MIRACLES OF MUHAMMED SAW)       \n\n(continued from Droplet Vol 1, No 11, Part 1)\n\n   SECOND  SIGN:   The  Noble  Messenger  (SAW)\ndeclared His prophethood, and presented to humanity a\ndecree as the Glorious Qur'an and manifest miracles\nwhich number, according to the scholars, one thousand.\nThe occurrence of those miracles in their entirety is as\ncertain as the fact that He declared himself prophet.  In\nfact, as a shown by the words of the  most obstinate\nunbelievers quoted in various places of the Wise\nOur'an, even they could not deny the occurrence of His\nmiracles, but only called them -hasha wa kella!-(Allah forbids) \nsorcery, in order to satisfy themselves, or to deceive their\nfollowers.  The miracles of Muhammad (SAW) have the\ncertainty of confirmation by consensus of Ulema (scholars\nof Islam) to the hundreth degree.\n   The Miracle is the conformation by the CREATOR of\nthe universe of His declaration of Prophethood; it has the\neffect of the words,'You have indeed spoken the truth !'\n   Suppose that you said in the assembly of a ruler,\nwhile being observed by Him, 'The true ruler has\nappointed me to such and such position.  'At a time when\nyou were asked to prove your claim, the word 'Yes'\nuttered by the ruler would sufficiently support you.  Or, if\nthe ruler changed his usual practice and attitude at your\nrequest, this would confirm your claim even more soundly\nand more definitely than would the word 'Yes.'\n   In the same way, ALLAH's Most Noble Messenger\nclaimed: 'I am the envoy of the CREATOR of this\nuniverse.  My proof is that He will change His unbroken\norder at my request and my prayer.  Now look at my\nfingers:  He makes them run like a fountain with five\nspigots.  Look at the moon: by a gesture of my finger, He\nsplits it in two.  Look at that tree: to affirm me, and to bear\nwitness to me, it moves and comes near to me.  Look at\nthis food: although it is barely enough for two or three\nmen, it satisfies two or three hundred.  'Further he shows\nhundreds of similar miracles.  However, the evidences  of\nthe veracity of this high being and the proofs of his\nprophethood are not restricted to his miracles.  All his\ndeeds and acts, his words and behavior, his moral\nconduct and manners, his character and appearance\nprove to the attentive his truthfulness and seriousness.\nIndeed, many people  such  as  Abdullah  b. Salam,  the\nfamous scholar of the Children of Israel, came to belief\nmerely by seeing him, and said, 'No lie can hide in this\nface, nor can any fraud be found in it!'\n   Although many of the  researchers have concluded\nthat the proofs of the prophethood of Muhammad and his\nmiracles number about one thousand, there are\nthousands, perhaps hundreds of thousands of proofs  of\nhis prophethood.  And hundreds of thousands of\ntruth-seeking men (muhakkikiin) with varying opinions\nhave affirmed his prophethood in an equal number of\nways.\n   The Wise Our'an alone demonstrates thousands of\nthe proofs of his prophethood, in addition to its own forty\naspects of miraculousness.  Since prophethood is as a\nphenomenon of humanity, and hundreds of thousands of\nindividuals who claimed prophethood and performed\nmiracles have lived and passed away; then, the\nprophethood of Muhammad (SAW) is of a certanity\nsuperior to that of the prophethood of all the others.  For\nwhatever evidences, qualities  and attributes  became the\nmeans of the prophethood and messengership of all the\nmessengers such as Jesus (AS) and Moses (AS), they\nare all owned in a more perfect and comprehensive\nfashion by Muhammad (SAW).  And since the causes and\nmeans of prophetic authority exist more perfectly in the\nperson of Muhammad (SAW), this authority is to be found\nin him with more certanity than all the other prophets.\n\n-----------------------------------------------------------------\nTo be Continued Allah Willing.\nIrfan Alan, A Servant of Islam.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1351, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: Re: post\nOrganization: Kulikauskas home\nLines: 30\n\njono@mac-ak-24.rtsg.mot.com (Jon Ogden) writes:\n\n> My advice is this:  If you know someone that you have the hots for who is\n> NOT a Christian, befriend them and try to develop just a friendship with\n> them.  At the same time, witness and share the gospel with them, not so\n> that you can date them, but so that they can be saved.  Once they become a\n> Christian, then it is quite possible to let the relationship progress\n> beyond friendship.  However, if they don't accept Christ, you still have a\n> good friendship and you haven't wasted a lot of emotional energy and gotten\n> hurt.\n\nWhile I agree with most of Jon says (I deleted those parts, of course), I \nhave serious reservations about this advice.  Maintaining a `just \nfriends' level of relationship is much easier said than done.  People \nusually end up getting hurt.  This is especially likely to happen when \nthey start off with feelings of attraction.  \n\nWhen people feel attracted those feelings can cloud their judgement.  \nI've had the experience of going quickly from believing that I shouldn't \ndate non-Christians to believing that dating this man would be okay to \nbelieving that premarital sex is fine when people really love each \nother.  When the relationship ended my beliefs immediately returned to \ntheir original state.  \n\nThis is an especially extreme case because I was young and away from home \nand fellowship.  I don't think it would work exactly this way for most \npeople.  However, it's important not to underestimate the power of \nfeelings of attraction.  \n\nJayne Kulikauskas/ jayne@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1352, "properties": {"category": "sci.crypt", "text": "From: holthaus@news.weeg.uiowa.edu (James R. Holthaus)\nSubject: Re: Fighting the Clipper Initiative\nOrganization: University of Iowa, Iowa City, IA, USA\nLines: 43\n\nprz@sage.cgd.ucar.edu (Philip Zimmermann) writes:\n\nPhilip,\nI think your ideas are well taken and constructive.  Thanks for\narticulating them in this forum.\n\n>2)  Work the Press.  Talk with your local newspaper's science and\n>technology reporter.  Write to your favorite trade rags.  Better yet,\n>write some articles yourself for your favorite magazines or\n>newspapers.  Explain why the Clipper chip initiative is a bad idea. \n>Remember to tailor it to your audience.  The general public may be\n>slow to grasp why it's a bad idea, since it seems so technical and\n>arcane and innocent sounding.  Try not to come across as a flaming\n>libertarian paranoid extremist, even if you are one. \n\nAs a flaming libertarian paranoid extremist (:-), I'at a loss for\nspecific objections that don't sound frighteningly technical.  Any\nsuggestions?  Perhaps somebody could post a list of these?\n\n>5)  Mobilize opposition in industry.  Companies that will presumably\n>develop products that will incorporate the Clipper chip should be\n>lobbied against it, from within and from without.  If you work for a\n>telecommunications equipment vendor, first enlist the aid of your\n>coworkers and fellow engineers against this initiative, and then\n>present your company's management with a united front of engineering\n>talent against this initiative.  Write persuasive memos to your\n>management, with your name and your colleagues' names on it.  Hold\n>meetings on it.\n \nOne way to do this might be to suggest that these companies should be\nimplementing their own schemes, not being limited to the govt's\nscheme.\n\nI find that most of my reasons for opposition to the CLipper scheme\nare algoritm insecurity and mistrust of the govt/NSA.  These are hard \nto sell in letters to the editor and to nontechnical people.  Any\nhints or advice.  Maybe a small FAQ-type thing \"Why should I Hate\nClipper\" would be a good idea.\n-- \n<><><><><><><><><><>James Holthaus  james-holthaus@uiowa.edu<><><><><><><><><>\n<   Government is an association of men who do violence to the rest of us.   >\n<             -- Leo Tolstoy                                                 >\n<><><><><>PGP 2.2 Public key available on request or from key server<><><><><>\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1353, "properties": {"category": "sci.crypt", "text": "From: holthaus@news.weeg.uiowa.edu (James R. Holthaus)\nSubject: Cryptology in the world\nKeywords: cryptology international restrictions\nOrganization: University of Iowa, Iowa City, IA, USA\nLines: 10\n\nWhat is the status of cruptology for private citizens throughout the\nworld? or, more clearly, is there a listing of countries and their\npolicies on citizens encrypting electronic data?  \n\nI'm curious how the Europeans handle this, for instance.\n-- \n<><><><><><><><><><>James Holthaus  james-holthaus@uiowa.edu<><><><><><><><><>\n<   Government is an association of men who do violence to the rest of us.   >\n<             -- Leo Tolstoy                                                 >\n<><><><><>PGP 2.2 Public key available on request or from key server<><><><><>\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1354, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hfeldman@infoserv.com (Howard MITCHell Feldman)\nSubject: Re: Need longer filenames\nOrganization: Mind's Eye, Inc.\nLines: 18\nX-Mailer: TMail version 1.13\n\nIn <1993Apr19.211044.28763@guinness.idbsu.edu>, lhighley@gozer.idbsu.edu (Larry Paul Highley)  wrote:\n> \n> \n> Is there a utility out there that will let me use filenames longer than\n> the standard 8.3 format.  If so please email me.\n\nplease e-mail me too,\n\nthanks\n\n...howard\nhfeldman@infoserv.com\n\n---------------------------------------------------------------\n\nHoward Feldman\nMind's Eye, Inc.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1355, "properties": {"category": "comp.windows.x", "text": "From: rps@arbortext.COM (Ralph Seguin)\nSubject: NumLock masking? interference with Meta/Compose/ExtendChar, ...\nOrganization: The Internet\nLines: 17\nTo: xpert@expo.lcs.mit.edu\n\n> My question is this:  Is there a means of determining what the state\n> of CapsLock and/or NumLock is?\n\nAlright.  Ignore this.  I have delved a bit deeper (XKeyEvent) and\nfound what I was looking for.\n\nev->state   has a bunch of masks to check against (LockMask is the one\nfor CapsLock).  Unfortunately, it appears that the NumLock mask varies\nfrom server to server.  How does one tell what mask is numlock and\nwhich are for Meta (Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask).\neg, SGI's vendor server has Mod2Mask being NumLock, whereas Solaris\n1.0.1 OpenWindows 3.0 has Mod3Mask for NumLock.  Is there an\nunambiguous means of determining NumLock's mask at runtime for any\ngiven server?  Sorry for the wasted bandwidth and my appalling ignorance.\n\n\t\t\tThanks, Ralph\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1356, "properties": {"category": "comp.graphics", "text": "From: chris@sarah.lerc.nasa.gov (Chris Johnston)\nSubject: One day graphics/composites seminar\nOrganization: NASA Lewis Research Center, Cleveland, OH\nLines: 47\nDistribution: world\nReply-To: chris@sarah.lerc.nasa.gov (Chris Johnston)\nNNTP-Posting-Host: looney.lerc.nasa.gov\n\nSAMPE, NCGA, The University of Akron, and NASA Lewis Research Center\nis sponsoring:\n\n                      COMPUTERS AND COMPOSITES\n\n\tA one-day seminar devoted to practical applications of\n\tcomputer workstations for efficient processing, design, and\n\t\t\tManufacture of composites\n\nMay 18, 1993\nat\n The University of Akron\n  Akron, Ohio\n\nSpeakers on:\n Advancement in Graphics Visualization   Dr. Jay Horowitz, NASA\n Integrated Product Development with     Mr. Michael R. Cowen\n  Network Workstations\t\t          Sikorski Aircraft\n Structural Analysis\t\t\t Mr. Brian Fite, NASA\n Stereolithography\t\t\t Mr. Jason Williams, Penn State-Erie\n Molecular and Physical Modeling\t Dr. Vassilios Galiatsato,\n  of Polymer Curing                       University of Akron\n Process Modeling of Polymer\n  Matrix Composites\t\t\t Dr Ram Upadhyay, GE Corporate R&D\n\nRegistration Fees: $75.00 Advance, $100.00 on site (Includes box lunch)\n\nContact Gary Roberts, NASA Lewis Research Center (216) 433-344\nor write:\n\tSAMPE Regional Seminar\n\tc/o Gary Roberts\n\tNASA Lewis Research Center\n\t21000 Brookpark Rd MS 49-1\n\tCleveland, Ohio 44135\n\nOr Email to me, | and I'll get it to Gary.\n\t\t|\n\t        \\/\n-- \n+---------------------------------------------------------------------------+\n| Chris Johnston                  (216) 433-5029                            |\n| Materials Engineer\t\t  (216) 433-5033                            |\n| NASA Lewis Research Center   Internet: chris@sarah.lerc.nasa.gov          |\n| 21000 Brookpark Rd MS 105-1\t\t \t\t\t\t    |\n| Cleveland, OH 4413 USA\tResistance is futile!\t\t\t    |\n+---------------------------------------------------------------------------+\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1357, "properties": {"category": "sci.electronics", "text": "From: kludge@grissom.larc.nasa.gov (Scott Dorsey)\nSubject: Mysterious MOSFET\nOrganization: NASA Langley Research Center and Reptile Farm\nLines: 9\nDistribution: world\nNNTP-Posting-Host: grissom.larc.nasa.gov\n\nI have a MOSFET pulled out of a Trygon power supply, for which I have no \nmanual.  It's a Motorola part with a 1972 date code and the number\n\n\t\t285-4\n\nwhich the Motorola folks assure me is a house number, which they can't\nhelp me with.  Any suggestions from folks out there?  I can't put it on\na curve tracer to try to get an equivalent, since it's completely shot.\n--scott\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1358, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: The 'justice' for the victims of the Armenian Barbarism and Fascism.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 102\n\nIn article <66118@licre.ludwig.edu.au> THEO@licre.ludwig.edu.au writes:\n\n>>         First of all: it is called ISTANBUL. \n>>         Let me even spell it for you: I S T A N B U L\n>>                                       - - - - - - - -\n>> \n>>         Secondly: The Turks are also asking for their money, for \n>>         their destroyed and confiscated properties in Greece, and \n>>         former-Yugoslavia (Bosnia and Serbia).\n\n>Classic !!\n\nIt is called 'The Justice'. We also demand that the x-Soviet Armenian \nGovernment admit its responsibility for the Turkish and Kurdish \nGenocide, render reparations to the Muslim people, and return the \nland to its rightful owners. The recognition of the Genocide has \nbecome an issue which cannot be delayed further, and it is imperative \nthat artificial obstacles created for political manipulations be removed.\n\n>Now if we're talking about rent and vandalism, let's make it fair then: \n>Greece pays back it's dues and Turkey pays for 400 years rent and \n>destruction of classical architecture. Deal? Democracy in action.\n\nAre you the 'truelove' or 'falselove' of 'Arromdian' of the ASALA/SDPA/ARF\nTerrorism and Revisionism Triangle? \n\n\"If Turks had behaved like Christians to use force to convert to Islam the\nnations which they brought under their power, to which no one could have\nopposed, today there would be no Eastern problem. But Turks did not do so. \nThey obeyed the word of the Koran to permit everybody \"to worship in their own\nway\" centuries before Frederick the Great pronounced his famous dictum. Thus,\nin an age when the Christian Europe itself shed Christian blood and when \npeople in Europe enjoyed inflicting inhuman tortures upon those whose beliefs\ndiffered from theirs, the Ottoman Empire became the sole country where the\ninquisition did not exist, where deaths at the stake were unheard of and \nwhere accusations of witchcraft were not made. And the barbarian (!) Turkey\nwas the only country where the Jews persecuted and chased away everywhere\nby the Christians, could find asylum. These facts demonstrate that Muslim\ncountries provided spiritually far better living conditions than Christian\ncountries.\"[1]\n\n\"The Turks, who are a conquering nation, did not Turkify the nations that came\nunder their rule; instead, they respected their religions and traditions. It\nwas a stroke of luck for Romania to live under Turkish rule instead of\nRussian or Austrian rule. Because otherwise there would not have been a\nRomanian nation today\" (Popescu Ciocanel).\n\n\"Turks rule over people under their administration only externally, without\ninterfering with their internal structures. On account of this, the autonomy\nof minorities in Turkey is better and more complete than any in the most\nadvanced European countries.\"[2]\n\n\"...human beings hate each other on account of religious differences. This flaw\nis older than Islam and Christianity. But there has never been any examples\nof this adjuration in Turkey because Turks never oppress anybody on account\nof his religion. If enmity on the basis of religion had been such a case of\nsimple contempt among us too, or if it did not keep translating itself into\naction, many nations in our Europe would probably have considered themselves\nhappy!\" (A. de Mortraye).[3]\n\n\"Turkey never became a scene for religious terror or for the cruelty of the\ninquisition. On the contrary, it served as an asylum for the unfortunate\nvictims of Christian fanaticism. If you look into history, you will see that\nin the fifteenth century thousands of Jews who were expelled from Spain and\nPortugal found such a good asylum in Turkey that their descendants have been\nliving there very calmly all through these approximately three hundred years,\nand are only forced to defend themselves in some countries against the\ncruelty of Christians, especially that of the Orthodoxes. No Jew is able to\nappear in public during Easter celebrations in Athens, even today. In Turkey,\nhowever, if the Israelites are insulted by the Greek and Armenian communities,\nlocal courts immediately take them under their protection.\"\n\n\"In that vast and calm country of the sultan, all religions and nations are\nliving together peacefully. Although the mosque is superior to the church and\nthe synagogue, it does not replace them. Because of this, the Catholic sect is\nmore free in Istanbul and Smyrna compared with Paris and Lyon. In addition \nto the fact that no law in Turkey prohibits the open-air ceremonies of this \nsect, neither does any law imprison its cross in the church. While the\ndead are being taken to the graves, a long line of priests bear processional\ncandles and chant Catholic hymns. When all the priests in all the churches in\nthe Galata and Beyoglu districts go into the streets and form clerical\nprocessions during the Eucharist celebrations, chanting hymns and bearing\ntheir crosses and religious banners, a detachment of soldiers escorts them\nwhich forces even the Turks to stand in respect around the group of \npriests.\" (A. Ubicini).[4]\n\n[1]  Ah. Djevat, \"Yabancilara Gore Eski Turkler,\" 3rd ed. (Istanbul, 1978),\n     pp. 70-71.\n[2]  Ibid., p.91.\n[3]  Ibid., pp. 214-215.\n[4]  Ibid., pp. 215-216.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1359, "properties": {"category": "rec.sport.hockey", "text": "Organization: Central Michigan University\nFrom: Martin D. Hill <32GFKKH@CMUVM.CSV.CMICH.EDU>\nSubject: Re: NHL team in Milwaukee\nLines: 24\n\nWell put, Jason.  I am not from Wisconsin, but I have close relatives who\nlive in Port Washington (about 30 minutes north of Milwaukee), I visit the\ncity regularly, and I have been in the Bradley four times to see the Admirals\nplay  and the NCAA Hockey Championships.  It is a beautiful building.  The\nPettits and the city like to promote it as the best facility for hockey in\nNorth America.\nAs to what will happen with the Admirals if Milwaukee does acquire a\nfranchise, word is the team will move to Green Bay and play in the Brown\nCounty Arena.\nOnce again, the Admirals are an independent franchise, and the people of\nMilwaukee have been supporting them well.  The games I have been to have seen\ncrowds anywhere from 10,000 to 13,000, which are numbers some NHL teams (i.e.\nthe Islanders, Hartford, New Jersey) would be envious of having on some nights.\nPlus the fact that the city is able to support a minor league franchise without\nthe glamour of having an NHL club affiliated to it is testimony to the amount\nof hockey interest exists in the city.\n\nSincerely,\n\nMartin Hill, Rt. 2, Box 155B, Sault Ste. Marie, MI (Home of LSSU:  Go Lakers!)\n\nP.S.  Anybody know what the attendance figures are for the IHL and how\nMilwaukee stacks up against other IHL cities such as Atlanta, Phoenix, San\nDiego, Cleveland, and Cincinnati?  If so, please reply.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1360, "properties": {"category": "comp.sys.mac.hardware", "text": "From: b-clark@nwu.edu (Brian Clark)\nSubject: Re: High Resolution ADC for Mac II\nNntp-Posting-Host: elvex33.acns.nwu.edu\nOrganization: Northwestern University\nLines: 24\n\nIn article <1qidk1INNhk9@iskut.ucs.ubc.ca>, Rob Douglas\n<douglas@ecc.ubc.ca> wrote:\n> \n> In article <1qhfmg$hoh@lll-winken.llnl.gov> Charles E. Cunningham,\n> cec@imager writes:\n> >   I would like to buy a 16 bit ADC card for the Mac II with digitization\n> >rate of at least 100 kHz, preferably 200 kHz.  I would prefer one with \n> >good differential and integral linearity, and DMA would be a plus.  Other\n> >than National Instruments, do you know of any other vendor who sells such\n> >a card?\n> \n> Instrutech Corp has a nice looking 16 bit A/D and D/A board that can run\n> at the speeds you want. The ITC-16 (?) doesn't have DMA, but it does have\n> a good sized FIFO that can buffer your samples. Instrutech can be reached\n> at (516) 829-5942, or 929-0934 (FAX).\n> \n\nI don't know about the Instrutech boards (though I plan to check them out),\nbut you need to be very careful checking the monotonicity and S/N ratio of\nmany of the \"16 bit\" boards out there. The NI boards are very clearly\nspecified in terms of monotonicity, S/N ratio, accuracy, etc; and the\nNB-A2100 and NB-A2150 have all the dyynamic range and freedom from\ndistortion that you'd expect from a good, true 16 bit converter. This is\nnot true for the Spectral Innovations boards, for example.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1361, "properties": {"category": "talk.politics.guns", "text": "From: rboudrie@wpi.WPI.EDU (Robert A. Boudrie)\nSubject: Re: Some more about gun control...\nOrganization: Worcester Polytechnic Institute\nLines: 249\nNNTP-Posting-Host: wpi.wpi.edu\n\nIn article <1993Apr16.010235.14225@mtu.edu> cescript@mtu.edu (Charles Scripter) writes:\n>In article <C5Bu9M.2K7@ulowell.ulowell.edu>\n>jrutledg@cs.ulowell.edu (John Lawrence Rutledge) wrote:\n>\n>> In article <1q96tpINNpcn@gap.caltech.edu> arc@cco.caltech.edu\n>> (Aaron Ray Clements) writes:\n>> >The Second Amendment is a guarantee of the right to bear arms.  Clearly\n>> >and unequivocally, without infringement.\n>\n>> Unfortunately the Second Amendment is not as clear as you state.  If last \n>> part of it is taken along, it follows what you have said.  The problem\n>> I have is with the first part of the single sentence which makes up the\n>> amendment.  The Second Amendment is:\n>\n>> \tA well regulated militia, being necessary to the security \n>                         ^^^^^^^ Militia\n>\n>> \tof a free state, the right of the people to keep and bear \n>                  ^^^^^ State\n>\n>> \tarms, shall not be infringed.\n>        ^^^^ Arms\n>\n>You didn't even get the capitalization correct!  Try reading USCA on\n>the Constitution, or get any other CORRECT version of the\n>Constitution. \n>\n>> This mention of a well regulated militia is what confuses me.  According\n>> to the Federalist Paper's, a well regulated militia has a well defined \n>> structure and follows nationally uniform regulations.\n>\n>Perhaps you should actually READ the Federalist Papers!!\n>\n>    James Madison, Federalist Paper 46: \"Besides the advantage of\n>    being armed, which the Americans possess over the people of almost\n>    every other nation, the existence of subordinate governments, to\n>    which the people are attached, and by which the militia officers\n>    are appointed, forms a barrier against the enterprises of\n>    ambition, more insurmountable than any which a simple government\n>    of any form can admit of.  Notwithstanding the military\n>    establishments in the several kingdoms of Europe, which are\n>    carried as far as the public resources will bear, the governments\n>    are afraid to trust the people with arms.\"\n>                  ^^^^^^^^^^^^^^^^^^^^^^^^^^\n>\n>    James Madison, I Annals of Congress 434, 8 June 1789: \"The right\n>    of the people to keep and bear... arms shall not be infringed.  A\n>    well regulated militia, composed of the body of the people,\n>                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>    trained to arms, is the best and most natural defense of a free\n>    country...\"\n>\n>    Alexander Hamilton, Federalist Paper 29 (on the organization of\n>    the militia): \"Little more can reasonably be aimed at, with\n>    respect to the people at large, than to have them properly armed\n>               ^^^^^^^^^^^^^^^^^^^\n>    and equipped; and in order to see that this be not neglected, it\n>    will be necessary to assemble them once or twice in the course of\n>    a year.\"\n>\n>    Alexander Hamilton, Federalist Paper 29 (speaking of standing\n>    armies): \"... if circumstances should at any time oblige the\n>    government to form an army of any magnitude that army can never be\n>    formidable to the liberties of the people while there is a large\n>    body of citizens, little, if at all, inferior to them in\n>    ^^^^^^^^^^^^^^^^\n>    discipline and the use of arms, who stand ready to defend their\n>                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^*****\n>    own rights and those of their fellow-citizens.\"\n>    ***^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>\n>But *surely* Hamilton and Madison didn't mean the PEOPLE when they\n>said \"people\", right?  That's why the Amendment refers to \"the Right\n>of the Militia\"?...  ;-)\n>\n>> Your average \n>> 17-45 year old male does not fall into the definition.\n>\n>You're right, the Militia consists of ALL able bodied males (and\n>probably females under current interpretation). \n>\n>> Therefore most\n>> members of The Militia, the one the every gun advocate refers to, are\n>> not members of a well organized militia and therefore are not directly\n>\n>The Amendment does nor refer to \"well organized\", it says \"well\n>regulated\".  I have some targets you may examine if you wish to check\n>how _well regulated_ I am. \n>\n>> mentioned in the amendment.\n>\n>> If this amendment wanted to allow every member of The Militia to keep\n>> and bear arms, why did it specificly mention a \"well organized militia\" \n>> in the SAME SENTENCE as the right to keep and bear arms?\n>\n>Correct.  That's why the Right is reserved to the People.  And that\n>was to insure the People could form a \"well regulated Militia\", not a\n>\"well organized militia\".\n>\n>> It could be\n>> argued that the first part of the sentence is separate from the last \n>> part.  If so, why was it include in the same atomic unit of written\n>\n>What do Atomic Units have to do with this argument?  Any moron can set\n>h_bar = C = 1...\n>\n>> instead of a separate sentence?\n>\n>Oh, I see what your question is; Why don't you read the federalist\n>Papers?! \n>\n>    James Madison, Federalist Paper 41 (regarding the \"General\n>    Welfare\" clause): \"Nothing is more natural nor common than first\n>    to use a general phrase, and then to explain and qualify it by a\n>    recital of particulars.\"\n>\n>But what does Madison know about the grammatical style of the 2nd?  He\n>only wrote it.\n>\n>> The amendment also implies that the right to arms has to due with \n>> the security of a free state.  The Federalist Paper's mention of a\n>> well regulated militia gives many examples of how this militia protects\n>> the security of a free state.  All these examples are actions of a\n>> very organized force, not some John Q. Public with a gun.\n>\n>That's obviously because you've never actually *read* the Federalist\n>Papers. \n>\n>> All that the Second Amendment clearly states to me is that the people's\n>> right to form well regulated militias shall not be infringed.  That is \n>> people have the right to join a well organized militia.  This well\n>> organized militia will, of course, provide training in how to use arms\n>> and in basic military tactics.  These training members of the militia\n>> can keep and bear the arms.\n>\n>Can't read, huh?  Show me where the document says \"well organized\n>militia\". \n>\n>> Lastly, reading through the Federalist Paper's on well organized \n>> militia it is very clear that many of the reasons for these militias.\n>> One reason stated is the protection from a standing army.  These days\n>> the standing army could easily defeat a group consisting of every \n>> 17-45 year old male and female not in the armied forces.\n>\n>That is *exactly* why EVERY PERSON should be allowed to own *any*\n>weapon currently in use in the armed forces.\n>\n>> Another\n>> reason stated for well organized militias is to reduced the need\n>> for a standing army.  Well, the US Armied Forces have been a standing\n>> army for more than half the history of the US.\n>\n>But the major reason is to protect against that very same army.\n>\n>> It seems to me the whole reason for the Second Amendment, to give\n>> the people protection from the US government by guaranteeing that the\n>> people can over through the government if necessary, is a little bit\n>> of an anachronism is this day and age.  Maybe its time to re-think\n>> how this should be done and amend the constitution appropriately.\n>\n>    Abraham Lincoln, First Inaugural Address, March 4, 1861: \"This\n>    country, with its institutions, belongs to the people who inhabit\n>    it.  Whenever they shall grow weary of the existing government,\n>    they can exercise their constitutional right of amending it, or\n>    their revolutionary right to dismember it or overthrow it.\"\n>\n>    Rep. Elbridge Gerry of Massachusetts, spoken during floor debate\n>    over the Second Amendment, I Annals of Congress at 750, 17 August\n>    1789: \"What, Sir, is the use of a militia?  It is to prevent the\n>    establishment of a standing army, the bane of liberty. ...\n>    Whenever Governments mean to invade the rights and liberties of\n>    the people, they always attempt to destroy the militia, in order\n>    to raise an army upon their ruins.\"\n>\n>So now we know which category Mr. Rutledge is in; He means to destroy\n>our Liberties and Rights.\n>\n>--\n>Charles Scripter   *   cescript@phy.mtu.edu\n>Dept of Physics, Michigan Tech, Houghton, MI 49931\n>-------------------------------------------------------------\n>\"...when all government... in little as in great things, shall be\n>drawn to Washington as the centre of all power, it will render\n>powerless the checks provided of one government on another and will\n>become as venal and oppressive as the government from which we\n>separated.\"   Thomas Jefferson, 1821\n\n>> In article <1q96tpINNpcn@gap.caltech.edu> arc@cco.caltech.edu\n>> (Aaron Ray Clements) writes:\n>> >The Second Amendment is a guarantee of the right to bear arms.  Clearly\n>> >and unequivocally, without infringement.\n>\n>> Unfortunately the Second Amendment is not as clear as you state.  If last\n>> part of it is taken along, it follows what you have said.  The problem\n>> I have is with the first part of the single sentence which makes up the\n>> amendment.  The Second Amendment is:\n>\n>>       A well regulated militia, being necessary to the security\n>                         ^^^^^^^ Militia\n>\n>>       of a free state, the right of the people to keep and bear\n>                  ^^^^^ State\n>\n>>       arms, shall not be infringed.\n>        ^^^^ Arms\n>\n>You didn't even get the capitalization correct!  Try reading USCA on\n>the Constitution, or get any other CORRECT version of the\n>Constitution.\n\nThere are several ways in which one can choose to intrepret any \nconstitutational issue :\n\n   (a) Original intent\n   (b) Subjectively intrepreted accordiong to political whims of the day.\n\nIf we use original intent as the basis for intrepreting the constitution, \nit is clear that the founding fathers intended that the individual citizen \nbe allowed to bear arms similar to those used by soldiers of the day.\n\nFor references, I cite :\n\n  - Federalist papers\n  \n  - \"The Embarassing Second Ammendment\", Yale Law Review, \n    Prof. Stanford Levinson [sorry, I don't have the date handy]\n\n       Prof Levinson sought to prove that the 2nd ammendment did not\n       convey an individual right, but concluded that it did, hence the \n       \"embarassing\" in his title.\n \n  - Report of the Subcomittee on the Consititution, United States Sendate,\n    97th Congress, Second Session February 1982.\n\n  - U.S. vs. Verguido Urguidez (Supreme court case in recent years).  \n    Although this case did not pertain to firearms, Justice Rhenquist\n    notes that the term \"the people\" is a term of art conveying individual\n    rights, and specifically cited several used, 2nd ammentment included,\n    in his opinion.\n\n  - Title 10, U.S. Code.  This states that all males between the ages of\n    18 & 45 not part of the organized militia, and all female officers of\n    the national guard are part of the unorganized militia.\n\nFeel free to cite any scholarly and historical references you have to\nsupport your position.  I could go on a greater length with my personal\nproof by assertion, however, such a technique would carry no more or\nless weight that your dubious proofs by assertion.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1362, "properties": {"category": "talk.politics.guns", "text": "From: jim.wray@yob.sccsi.com (Jim Wray)\nSubject: BATF/FBI revenge\nOrganization: Ye Olde Bailey BBS - Houston, TX - 713-520-1569\nLines: 55\nReply-To: jim.wray@yob.sccsi.com (Jim Wray)\nNNTP-Posting-Host: cs.utexas.edu\n\n\nJason Kratz writing:\n\n...\nJK>If they had rocket launchers and such (as the press and gov claims) why\nJK>shouldn't they have done something?  What possible use would a religious cult\nJK>have for a rocket launcher?  Also, is child abuse covered by the Bill of\nJK>Rights?\n...\n\nThis is taken a little out of context and I'm not flaming Jason...it's just\nthat this was the proverbial straw....\n\nI grow a little weary of the allegations (here, the media, people on the\nstreet) that the BD's had all these \"horrible illegal weapons and other\nparaphenalia of destruction capable of blowing tanks 50 feet into the air...\"\nand then, without missing a beat, discuss how the BD's willfully commited\nmass suicide, or killed their own less fanatical and *then* commited mass\nsuicide, etc., etc.\n\nIf the BD's had all these things and intended to \"blow up their abode, blow up\nWaco, blow up the entire country, or whatever suits your fancy, what happened\nto all the violence they were supposed to unleash? Why wouldn't they have \"gone\nout in the proverbial blaze of glory\" and \"come out shooting\" with an attitude\nof \"let's take as many of those dogs as possible with us\"?\n\nInstead, they seemed to have preferred death to whatever they thought was in\nstore for them at the government's hands.\n\nIt's totally immaterial whether they were all crazy, all fanatics, all followers\nof the antichrist, haters of the government, practicers of weird lifestyles, or\nwhatever...they must have felt that they were being pressured into renouncing\ntheir beliefs, however how strange or lunatic those beliefs might appear to \"you\nand me\". There is much precedent for such devotion to cause.\n\nMy conclusion at this point is that the \"authorities\" seriously misread their\ndanger to society (else why did the BD's not do as suggested above) and/or chose\nthis incident to make some heinous point or satisfy some internal agenda, up to\nand including AG J. Renbo using this as an opportunity to assert her manhood.\n\nSome people really do believe it is better to die than be subjected to what\nthey perceive as the godless government. When I force myself to not judge\nothers by my own personal standards and beliefs, I can almost admire their\nstand.\n\nI surely believe in the Constitution but I don't know that I have such strength\nof conviction as evidenced by the BD's.\n---\n . OLX 2.2 . Obesa non cantatis!\n                          \n----\n+------------------------------------------------------------------------+\n| Ye Olde Bailey BBS   713-520-1569 (V.32bis) 713-520-9566 (V.32bis)     |\n|   Houston,Texas          yob.sccsi.com       Home of alt.cosuard       |\n+------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1363, "properties": {"category": "comp.graphics", "text": "From: N020BA@tamvm1.tamu.edu\nSubject: Help! Need 3-D graphics code/package for DOS!!!\nOrganization: Texas A&M University\nLines: 7\nNNTP-Posting-Host: tamvm1.tamu.edu\n\n    Help!! I need code/package/whatever to take 3-D data and turn it into\na wireframe surface with hidden lines removed. I'm using a DOS machine, and\nthe code can be in ANSI C or C++, ANSI Fortran or Basic. The data I'm using\nforms a rectangular grid.\n   Please post your replies to the net so that others may benefit. IMHO, this\nis a general interest question.\n   Thank you!!!!!!\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1364, "properties": {"category": "rec.sport.baseball", "text": "From: gt0523e@prism.gatech.EDU (Michael Andre Mule)\nSubject: Militello update\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 22\n\nHEY!!! All you Yankee fans who've been knocking my prediction of Baltimore.\nYou flooded my mailbox with cries of \"Militello's good, Militello's good.\"\n\nWhere is he??!! I noticed he got skipped over after that oh so strong first\nouting.  He's not by any chance in Columbus  now, is he?  Please don't tell\nme you're relying on this guy to be the *fourth*, not the fifth, but the \n*fourth* starter on this brittle pitching staff.  \n\nAs for the O's, it's still early.\n\n\nSee y'all at the ballyard\nGo Braves\nChop Chop\n\nMichael Mule'\n\n-- \nMichael Andre Mule\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0523e\nInternet: gt0523e@prism.gatech.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1365, "properties": {"category": "rec.autos", "text": "From: eliot@stalfos.engr.washington.edu (eliot)\nSubject: Re: Open letter to NISSAN (Really Station Wagon)\nOrganization: clearer than blir\nLines: 7\nDistribution: na\nNNTP-Posting-Host: 192.42.145.4\n\n\nthis week's autoweek talks about how wagons are getting back in vogue.\ni wouldn't mind an audi s4 wagon (great stealth value) but you'll\nnever catch me dead in a minivan!\n\n\neliot\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1366, "properties": {"category": "comp.graphics", "text": "From: wdm@world.std.com (Wayne Michael)\nSubject: Adobe Photo Shop type software for Unix/X/Motif platforms?\nSummary: Searching for Adobe Photo Shop type software for Unix/X/Motif platforms\nKeywords: Image Enhancement\nOrganization: n/a\nLines: 19\n\nHello,\n\n    I have been searching for a quality image enhancement and\n    manipulation package for Unix/X/Motif platforms that is comparable\n    to Adobe Photo Shop for the Mac.\n\n    I have not been able to find any, and would appreciate any\n    information about such products you could provide.\n\n    I would be particularly interested in software that runs on HP or\n    Sun workstations, and does not require special add-in hardware, but\n    would also be interested in other solutions.\n\n\nThank You.\nWayne\n-- \nWayne Michael\nwdm@world.std.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1367, "properties": {"category": "rec.sport.baseball", "text": "From: traven@pitt.edu (Neal Traven)\nSubject: Re: The 1964 Phillies: deja vu?\nLines: 25\nX-Newsreader: TIN [version 1.1 PL8]\n\nRobert C Hite (philly@bach.udel.edu) wrote:\n: I think most of the problems mainly arose from Manager Gene Mauch's\n: ineptitude in managing the pitching staff.  Down the stretch, he\n: abused Jim Bunning, Chris Short, and Robin Roberts (I think those\n: are the three) pitching each on only 2 days rest for quite some\n: time.  By the time they hit the last 2 weeks of the season,\n: obviously none of these guys had an ounce left in their arm.  Oh\n: well.\n\nRoberts was long gone -- he was probably an Oriole in 1964.  Or maybe a\nColt .45.  The 3rd starter was Art Mahaffey, the previous year's ace.\nDennis Bennett was the 4th starter.\n\nThey were indeed 6.5 up with 12 to go, but they won their final two\ngames after the horrid 10-loss streak.  The final game victory\n(Bunning's 19th win, if memory serves) kept the Reds from tying for the\ntitle; they and the Phils were both 1 game behind the Cards, with the\nGiants(?) another game back.  The Mets couldn't hold an early lead\nagainst the Cards that final Sunday, or there would have been a 3-way\ntie.  Too bad they couldn't have saved some of the 15 or so runs they\nscored on Saturday when they crushed St. Louis.\n--\n-----------------------------------------------------------------------------\nneal\ttraven+@pitt.edu\t      You're only young once, but you can be\n\ttraven@vms.cis.pitt.edu\t       immature forever.   -- Larry Andersen\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.065+0000", "event": "documents", "entityId": 1368, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jpaparel@cs.ulowell.edu (Joseph Paparella)\nSubject: Re: mouse on COM3 under Windows 3.1 ?\nOrganization: UMass-Lowell Computer Science\nLines: 8\n\nI've pursued and researched this question over the last month or so because I have the same requirements you do......and the long and short of it is that the windows mouse drivers don't accept mice at any but com1 and com2 using irq4 or irq3 unless you buy special drivers from someone who has them.....I've talked to Mouse Systems who say their driver doesn't support other than com1 and com2 as above , but who claim to be releasing one that will SOON!??.\n\nThe other alternative seems to be possible, but in one case prohibitively expensive, i.e. 4 port card for $600??????!!, and in the other, the author(s) of PowerBBS for Windows claim to have a 4 port serial card with buffered 16550 UARTS and drivers for windows to match (i.e. com3 irq5) for $120......\n\nThe second paragraph is hearsay, because I haven't checked it out yet.....but intend to as soon as I can free up $120 <g>\n\nHope this will save you some steps.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1369, "properties": {"category": "rec.sport.baseball", "text": "From: mss@netcom.com (Mark Singer)\nSubject: Re: Young Catchers\nArticle-I.D.: netcom.mssC52qMx.768\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 86\n\nIn article <7975@blue.cis.pitt.edu> genetic+@pitt.edu (David M. Tate) writes:\n>mss@netcom.com (Mark Singer) said:\n>>\n>>We know that very, very few players at this age make much of an impact\n>>in the bigs, especially when they haven't even played AAA ball.  \n>\n>Yes.  But this is *irrelevant*.  You're talking about averages, when we\n>have lots of information about THIS PLAYER IN PARTICULAR to base our\n>decisions on.\n\nDo you really have *that* much information on him?  Really?\n\n>Why isn't Lopez likely to hit that well?  He hit that well last year (after\n>adjusting his stats for park and league and such); he hit better (on an\n>absolute scale) than Olson or Berryhill did.  By a lot.\n\nI don't know.  You tell me.  What percentage of players reach or \nexceed their MLE's *in their rookie season*?  We're talking about\n1993, you know.\n\n>\n>As for rushing...  If there really is a qualitative difference between the\n>minors and the majors that requires a period of adjustment (and I don't\n>believe there is), then wouldn't you rather waste Lopez's 22-year old good\n>season than his 23-year old very good season or his 24-year-old excellent\n>season?  The sooner you get him acclimated, the more of his prime you get to\n>use.\n\nIf that were your purpose, maybe.  Offerman spent 1992 getting \nacclimated, if you will.  The Dodgers as a team paid a big price\nthat season.  Perhaps they will reap the benefits down the road.\nDo you really think they would have done what they did if they\nwere competing for a pennant?\n\n>\n>>>Lopez was hitting .588 over 17 AB when he was cut from spring\n>>>training.  What does he have to do to earn a chance?  Maybe not a full\n>>>time job, but at least a couple starts and a few AB for him to prove\n>>>his worth?\n>>\n>The point was not that 17 AB is a significant sample, but rather that he\n>hadn't done anything in spring training to cause even a blockhead manager\n>to question whether his minor league numbers were for real, or to send him\n>down \"until he gets warmed up\".\n\nFor a stat-head, I'm amazed that you put any credence in spring\ntraining.  Did you notice who he got those 10 (!) hits off of, or\nare you going to tell me that it doesn't make a difference?\n\n>>The kid *will* improve playing at AAA, \n>\n>Just like Keith Mitchell did?\n\nWait a minute.  I missed something here.  First, forget Keith\nMitchell.  Are you saying that a kid who moves from AA to AAA\nand then does not improve would have been better off making a\ndirect leap to the majors?  If a player does well at AA and then\ndoes not improve at AAA, isn't that a sign that maybe he doesn't\nbelong in the bigs?\n\nNow, Keith Mitchell.  As I recall (no stat books handy - surprise!)\nhe jumped from AA to Atlanta in 1991.  He did so well that he was\nreturned to the minors, where he didn't do very well at all.  Now\nhis career is in jeopardy.  So how does he fit in with your \npoint.  Good MLE's in AA.  Moved him right to the big club.  Now\nhe's one step away from being traded or moved out of baseball.\nDuh.\n\n\n>That was me, and you so far your only counter-proposal is that they\n>really don't understand how good Lopez is, or overvalue experience,\n>or some combination of the two.  I think my interpretation was more\n>flattering to the organization.\n\nWell, I've cast my lot.  Certainly you may understand better how \ngood Lopez is.  And I may overvalue experience.  But neither one\nof us runs a baseball team.\n\n\n\n--\tThe Beastmaster\n\n\n-- \nMark Singer    \nmss@netcom.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1370, "properties": {"category": "rec.motorcycles", "text": "From: klf@druwa.ATT.COM (FranklinKL)\nSubject: Re: Hell-mets.\nSummary: Visual damage is NOT an indicator.\nLines: 50\n\nIn article <1993Apr18.035125.29930@freenet.carleton.ca>, aa963@Freenet.carleton.ca (Lloyd Carr) writes:\n> \n> In a previous article, maven@mavenry.altcit.eskimo.com (Norman Hamer) says:\n> \n> >\n> > \n> > If I don't end up replacing it in the real near future, would I do better \n> >to wear my (totally nondamaged) 3/4 face DOT-RATED cheapie which doesn't fit \n> >as well or keep out the wind as well, or wearing the Shoei RF-200 which is a \n> >LOT more comfortable, keeps the wind out better, is quieter... but might \n> >have some minor damage?\n> \n> == Wear the RF200.  Even after a few drops & paint chips, it is FAR better\n> than no helmet or a poorly fitting one.  I've had many scratches & bangs\n> which have been repaired plus I'm still confident of the protection the\n> helmet will continue to give me.  Only when you actually see depressions\n                                    \n> or actual cracks (using a magnifying glass) should you consider replacement.\n\n> -- \n\nThis is not good advice.  A couple of years I was involved in a low-speed\ngetoff in which I landed on my back on the pavement.  My head (helmeted)\nhit the pavement with a \"clunk\", leaving a couple of dings and chips in the\npaint at the point of impact, but no other visible damage.  I called the\nhelmet manufacturer and inquired about damage.  They said that the way a\nfiberglass shell works is to first give, then delaminate, then crack.\nThis is the way fiberglass serves to spread the force of the impact over a\nwider area.  After the fiberglass has done its thing, the crushable foam\nliner takes care of absorbing (hopefully) the remaining impact force.\nThey told me that the second stage of fiberglass functionality (delamination\nof the glass/resin layers) can occur with NO visible signs, either inside or\noutside of the helmet.  They suggested that I send them the helmet and they\nwould inspect it (including X-raying).  I did so.  They sent back the helmet\nwith a letter stating that that they could find no damage that would\ncompromise the ability of the helmet to provide maximum protection.\n(I suspect that this letter would eliminate their being able to claim\nprior damage to the helmet in the event I were to sue them.)\n\nThe bottom line, though, is that it appears that a helmets integrity\ncan be compromised with no visible signs.  The only way to know for sure\nis to send it back and have it inspected.  Note that some helmet\nmanufacturers provide inspections services and some do not.  Another point\nto consider when purchasing a lid.\n\n--\nKen Franklin \tThey say there's a heaven for people who wait\nAMA     \tAnd some say it's better but I say it ain't\nGWRRA           I'd rather laugh with the sinners than cry with the saints\nDoD #0126       The sinners are lots more fun, Y'know only the good die young\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1371, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: criminals & machineguns\nOrganization: Computer Science Department,  Stanford University.\nDistribution: usa\nLines: 30\n\nIn article <93104.175256U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>people are getting killed by gang violence every day?  Every single day I hear\n>about more people getting killed by gang violence and see some of the weapons\n>that are being confiscated.\n\nIs Kratz claiming that he can reliably visually distinguish an M-16\nfrom an AR-15?  That he can see the difference between a semi-auto and\na full-auto UZI?  That he can see the difference between the various\nversions (some full-auto, some semi-auto only) of the M-11/9?\n\nIf so, I'd love to hear the details, if only because they'll demonstrate\nthat Kratz is blowing smoke.\n\nConsidering that one can design a gun so that it looks just like\nanother gun, yet have very different properties, and that that's\nquite common....\n\nMost kids in my neighborhood were quite young when they figured out\nthat my parents car wasn't much like Richard Petty's, even though it\nlooked just like it (except for the paint job).  Things must have been\ndifferent with Kratz.\n\n>Sure it's on TV but why does that make a difference?\n\nNo, it doesn't, but that's irrelevant.  If visual inspection of the\noutside worked, TV would be acceptable, but since it doesn't, the fact\nthat it's just as good as seeing in person doesn't mean much.\n\n-andy gave Kratz a chance to back down on this in private\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1372, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bobmon@cs.indiana.edu (Bob Montante)\nSubject: WANTED: bus card for Logitech Mouse\nArticle-I.D.: news.1993Apr1.162131.4673\nExpires: 5/15/1993\nDistribution: na\nOrganization: dyskaryotic\nLines: 7\n\nI've acquired an old Logitech Series 7 (3-button) mouse, and I'm told\nthat this is a bus mouse.  Does anyone want to unload an old\n(pc-clone) bus-card for this mouse?\n\nemail replies to:  bobmon@cs.indiana.edu\n\nthanks.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1373, "properties": {"category": "rec.autos", "text": "From: ravi@merlin.dev.cdx.mot.com (Ravi Puvvala)\nSubject: $13,500 Mazda 626 DX (with Air, AM/FM) Good Deal?\nNntp-Posting-Host: elvis.dev.cdx.mot.com\nReply-To: ravi@merlin.dev.cdx.mot.com (Ravi Puvvala)\nOrganization: Motorola Codex\nLines: 12\n\nHi Netters\n\tI want to know if 13500 (w/o tax) is a good deal for 1993 Mazda 626 DX\nHow is the performance review so far on Mazda 626. Is it a good buy?\nPlease reply to me as I don't read this group often.\n\nThanks In advance\nRavi\n--\nRavi Kiran Puvvala\t\t| \"The purpose of education is not merely, \nravi@merlin.dev.cdx.mot.com\t|  the assimilation of facts but blow all \nMotorola Codex, Boston  MA \t|  the money\" - Ravi Puvvala\n----------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1374, "properties": {"category": "rec.sport.baseball", "text": "From: cs902043@ariel.yorku.ca (SHAWN LUDDINGTON)\nSubject: Re: Jack Morris\nOrganization: York University, Toronto, Canada\nLines: 40\n\nIn article <1993Apr18.032345.5178@cs.cornell.edu> tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n>In article <1993Apr18.030412.1210@mnemosyne.cs.du.edu> gspira@nyx.cs.du.edu (Greg Spira) writes:\n>>Howard_Wong@mindlink.bc.ca (Howard Wong) writes:\n>>\n>>>Has Jack lost a bit of his edge? What is the worst start Jack Morris has had?\n>>\n>>Uh, Jack lost his edge about 5 years ago, and has had only one above\n>>average year in the last 5.\n>\n>Again goes to prove that it is better to be good than lucky.  You can\n>count on good tomorrow.  Lucky seems to be prone to bad starts (and a\n>bad finish last year :-).\n>\n>(Yes, I am enjoying every last run he gives up.  Who was it who said\n>Morris was a better signing than Viola?)\n>\n>Cheers,\n>-Valentine\n\nHey Valentine, I don't see Boston with any world series rings on their\nfingers.  Damn, Morris now has three and probably the Hall of Fame in his \nfuture.  Therefore, I would have to say Toronto easily made the best \nsigning.  And don't tell me Boston will win this year.  They won't \neven be in the top 4 in the division, more like 6th.\n\nShawn\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1375, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Aargh!  Great Hockey Coverage!! (Devils)\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 16\n\n\nLocked away, waiting for the tape-delay to start ...\n\nIt's nice that the Devils are starting out their playoffs on network\ntelevision ... too bad that their playoff game has been preempted on\nWABC-AM for an early-season Yankees baseball game!\n\nIt's a 12-2 win by the Texas Rangers ... and they're delaying the\ntape-delay by another half-hour for the ballgame \"highlights\"!!!\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1376, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nArticle-I.D.: mksol.1993Apr22.213815.12288\nOrganization: Texas Instruments Inc\nLines: 22\n\nIn <1993Apr22.130923.115397@zeus.calpoly.edu> dmcaloon@tuba.calpoly.edu (David McAloon) writes:\n\n> ETHER IMPLODES 2 EARTH CORE, IS GRAVITY!!!\n\nIf not for the lack of extraneously capitalized words, I'd swear that\nMcElwaine had changed his name and moved to Cal Poly.  I also find the\nchoice of newsgroups 'interesting'.  Perhaps someone should tell this\nguy that 'sci.astro' doesn't stand for 'astrology'?\n\nIt's truly frightening that posts like this are originating at what\nare ostensibly centers of higher learning in this country.  Small\nwonder that the rest of the world thinks we're all nuts and that we\nhave the problems that we do.\n\n[In case you haven't gotten it yet, David, I don't think this was\nquite appropriate for a posting to 'sci' groups.]\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1377, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: War Powers Resolution on Bosnia 4.14.93\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 102\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n                          THE WHITE HOUSE\n  \n                    Office of the Press Secretary\n  \n  _______________________________________________________________\n  \n  For Immediate Release\t   \t     \t           April 14, 1993\n  \n  \n                 TEXT OF A LETTER FROM THE PRESIDENT\n                        TO THE SPEAKER OF THE\n                    HOUSE OF REPRESENTATIVES AND\n               THE PRESIDENT PRO TEMPORE OF THE SENATE\n  \n  \n                           April 13, 1993\n  \n  \n  Dear Mr. Speaker:      (Dear Mr. President:)\n  \n  As part of my continuing effort to keep the Congress fully \n  informed, I am providing this report, consistent with section 4 \n  of the War Powers Resolution, to advise you of actions that I \n  have ordered in support of the United Nations efforts in \n  Bosnia-Herzegovina.\n  \n  Beginning with U.N. Security Council Resolution 713 of \n  September 25, 1991, the United Nations has been actively \n  addressing the crisis in the former Yugoslavia.  The Security \n  Council acted in Resolution 781 to establish a ban on all \n  unauthorized military flights over Bosnia-Herzegovina.  There \n  have, however, been blatant violations of the ban, and villages \n  in Bosnia have been bombed.\n  \n  In response to these violations, the Security Council decided, \n  in Resolution 816 of March 31, 1993, to extend the ban to all \n  unauthorized flights over Bosnia-Herzegovina and to authorize \n  Member States, acting nationally or through regional organi-\n  zations, to take all necessary measures to ensure compliance.  \n  NATO's North Atlantic Council (NAC) agreed to provide NATO air \n  enforcement for the no-fly zone.  The U.N. Secretary General \n  was notified of NATO's decision to proceed with Operation DENY \n  FLIGHT, and an activation order was delivered to participating \n  allies.\n  \n  The United States actively supported these decisions.  At my \n  direction, the Joint Chiefs of Staff sent an execute order to \n  all U.S. forces participating in the NATO force, for the conduct \n  of phased air operations to prevent flights not authorized by \n  the United Nations over Bosnia-Herzegovina.  The U.S. forces \n  initially assigned to this operation consist of 13 F-15 and \n  12 F-18A fighter aircraft and supporting tanker aircraft.  \n  These aircraft commenced enforcement operations at 8:00 a.m. \n  e.d.t. on April 12, 1993.  The fighter aircraft are equipped for \n  combat to accomplish their mission and for self-defense.\n  \n  NATO has positioned forces and has established combat air \n  patrol (CAP) stations within the control of Airborne Early \n  Warning (AEW) aircraft.  The U.S. CAP aircraft will normally \n  operate from bases in Italy and from an aircraft carrier in the \n  Adriatic Sea.  Unauthorized aircraft entering or approaching \n  the no-fly zone will be identified, interrogated, intercepted, \n  escorted/monitored, and turned away (in that order).  If these \n  steps do not result in compliance with the no-fly zone, such \n  aircraft may be engaged on the basis of proper authorization by \n  NATO military authorities and in accordance with the approved \n  \n                                more\n  \n       \t    \t      \t   \t     \t       \t    (OVER)\n\f\n                                  2\n  \n  rules of engagement, although we do not expect such action will \n  be necessary.  The Commander of UNPROFOR (the United Nations \n  Protection Force currently operating in Bosnia-Herzegovina) was \n  consulted to ensure that his concerns for his force were fully \n  considered before the rules of engagement were approved.\n  \n  It is not possible to predict at this time how long such \n  operations will be necessary.  I have directed U.S. armed forces \n  to participate in these operations pursuant to my constitutional \n  authority as Commander in Chief.  I am grateful for the con-\n  tinuing support that the Congress has given to this effort, and \n  I look forward to continued cooperation as we move forward \n  toward attainment of our goals in this region.\n  \n       \t    \t      \t   \tSincerely,\n  \n  \n  \n  \n       \t    \t      \t   \tWILLIAM J. CLINTON\n  \n  \n  \n  \n                               #  #  #\n  \n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1378, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Re: What is a Shadow Mask\nOrganization: Ford Motor Company Research Laboratory\nLines: 9\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\nAndrew BW Colfelt (colfelt@ucsu.Colorado.EDU) wrote:\n: \n: \n: Shadow mask is when you put your face into\n: main memory.\n: \n\nKeep your day job.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1379, "properties": {"category": "rec.sport.baseball", "text": "From: steph@pegasus.cs.uiuc.edu (Dale Stephenson)\nSubject: Re: Defensive Averages 1988-1992, Third Base\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 64\n\nIn <C5L068.6v3@srgenprp.sr.hp.com> craigs@srgenprp.sr.hp.com (Craig Stelter) writes:\n\n>Dale Stephenson (steph@cs.uiuc.edu) wrote:\n>: In <C5JJrJ.EM3@cs.uiuc.edu> steph@cs.uiuc.edu (Dale Stephenson) writes:\n\n>: >Compiled from the last five Defensive Average reports, here are the career\n>: >DAs for the individual players in the reports.  Stats are courtesy of\n>: >Sherri Nichols.  Players are listed in descending order.\n\n>: And some comments, with some players deleted.\n\n>: >Third Basemen\n>: >-------------\n>: >Leius, Scott         ----  ----  ----  .653  .680   0.672\n>: Looks good.  Too bad he's moving to short.\n\n>: >Pagliarulo, Mike     .631  ----  .575  .744  ----   0.649\n>: This is an interesting line.  His 1988 figure was slightly below average.\n>: His 1990 was pathetic, and his 1991 was the next best year by anybody.  Part of\n>: that may be his mobility.  1988 was with the Yankees.  1990 was with the\n>: Padres, who appear to have a rotten infield.  1991 was with the Twins, and\n>: judging by Leius and Gaetti, the Metrodome may be a good place to play\n>: third.\n\n>Gaetti, Gary         .616  .638  .655  .632  ----   0.637\n\n>Apologies if I don't know what I'm talking about :-), but as a Twins fan,\n>I like to think they have good players in any park.  Not sure if I remember\n>completely or not, but I think Gaetti played with the Twins in '87 for the \n>world series, and again in '88 (note that's his lowest of the 4).  I believe \n>the next 3 (or at least the last two) were played with the Angels. \n\nActually, Gaetti's first year with California was 1991.  His .632 DA wasn't\nout of line with his career averages, and his .616 was actually below average\nin 1988.  But check out the last three years at the Metrodome.\n\n1990\nGaetti  .655\nAL Avg  .604\n1991\nPags    .744\nLeius   .653\nAl Avg  .620\n1992\nLeius   .680\nAL Avg  .603\n\nFor the last three years, the highest DAs in either league have been posted\nby Minnesota players -- three different ones, including one (Pags) who was\nmediocre to horrible elsewhere.  That doesn't *prove* a park effect is at\nwork, any more than San Diego's horrible infield numbers prove a park effect\nis at work.  But it looks like a strong possibility to me.\n\n  Lots\n>of factors make a player excell...  I hate it when so many use the dome.\n>It may not be ideal, but nice to comfortably enjoy baseball and football \n>even when it's snowing and raining.\n\nAnd it might even be a nice play to thrid base.\n-- \nDale J. Stephenson |*| (steph@cs.uiuc.edu) |*| Baseball fanatic\n\n  \"It is considered good to look wise, especially when not \n   overburdened with information\" -- J. Golden Kimball\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1380, "properties": {"category": "sci.space", "text": "From: dpage@ra.csc.ti.com (Doug Page)\nSubject: Re: Sr-71 in propoganda films?\nNntp-Posting-Host: ra\nOrganization: Texas Instruments\nDistribution: sci\nLines: 28\n\nIn article <1993Apr5.220610.1532@sequent.com>, bigfoot@sequent.com (Gregory Smith) writes:\n|> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n|> \n|> >In <1phv98$jbk@access.digex.net> prb@access.digex.com (Pat) writes:\n|> \n|> \n|> >>THe SR-71 stopped being a real secret by the mid 70's.\n|> >>I had a friend in high school who had a poster with it's picture.\n|> \n|> >It was known well before that.  I built a model of it sometime in the\n|> >mid 60's, billed as YF-12A/SR-71.  The model was based on YF-12A specs\n|> >and had a big radar in the nose and 8 AAMs in closed bays on the\n|> >underside of the fuselage.  The description, even then, read \"speeds\n|> >in excess of Mach 3 at altitudes exceeding 80,000 feet.\"\n|> \n|> L.B.J. publically announced the existance of the Blackbird program\n|> in 1964.\n\n\nHe's also the one who dubbed it the SR-71 - it was the RS-71 until LBJ\nmippselled (sic) it.\n\nFWIW,\n\nDoug Page\n\n***  The opinions are mine (maybe), and don't necessarily represent those  ***\n***  of my employer.                                                       ***\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1381, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Re: plus minus stat\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 24\n\n\nIn article 1@tnclus.tele.nokia.fi, hahietanen@tnclus.tele.nokia.fi () writes:\n>In article <1993Apr14.174139.6604@sol.UVic.CA>, gballent@vancouver.UVic.CA (Greg  Ballentine) writes:\n>> \n>> \n>> +/- is a good stat because it is the only stat that I am aware of that\n>> takes into account defensive play.  It isn't a measure of defensive\n>> play- it takes into account offense and defence- all aspects of play.\n>                                                   \n>  If we are interested of real all-round players, the power play stats\n>  should be considered, too. Because the power play is also one aspect \n>  of play! There is still something to be done with these player evaluation\n>  tools!!\n\nIMO any good player should score on power plays because of the man\nadvantage.  Very good power play scorers tend to become overrated\nbecause their point totals are inflated by power play points.\n+/- tends to expose these overrated players such as Brett Hull,\nJohn Cullen and Dave Andreychuck.\n\nGiven the opportunity to play power play consistently, any player can\ninflate his totals.\n\nGregmeister\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1382, "properties": {"category": "comp.sys.mac.hardware", "text": "From: brucet@extro.ucc.su.OZ.AU (Bruce Tulloch)\nSubject: Re: HELP! Duo 230 problems\nNntp-Posting-Host: extro.ucc.su.oz.au\nOrganization: Sydney University Computing Service, Sydney, NSW, Australia\nLines: 76\n\nbcherkas@netcom.com (Brian Cherkas) writes:\n>chess@cats.ucsc.edu (Brian Vantuyl Chess) writes:\n>>  I just got a Duo 230, and I'm having some difficulties.\n>>If the machine is plugged in to the wall adapter, put to sleep,\n>>unplugged from the wall, and woken up, it crashes 75% of the time.\n>>(There's nothing but the original system software on the machine.)\n>>The battery has plenty of life - I think this must be a power manager\n>>problem, but I don't know what to do about it.\n>>Also, the speaker occasionally makes a high-pitched hiss.  The noise\n>>is irregular, but seems to favor sleep and restart commands.\n\n>I've had my Duo 230 for a few weeks now and suffer from both\n>of the above problems. I reinstalled my system software twice\n>in an effort to combat the problems - thinking they were\n>system software problems. Initially reinstalling the system\n>seemed to help but not anymore. Occasionally when I try to\n>wake up the Duo I get a solid screen of horizontal lines on\n>the screen - it freezes.\n\n>I also get the high-pitched hiss occasionally - but only at\n>startup.\n\n>I've called the apple hotline (800 SOS-APPL) three times\n>already and finally they agreed something is astray after my\n>Duo's screen would go dim and the hard drive spun down by\n>itselft and put itself to sleep. This problem only occured\n>twice. Apple sent me a box to ship my Duo to be looked at in\n>New York but the problem now is intermittent and I can't\n>afford to be without my Duo at this time.\n\n>Anyone out there with these same problems?\n\n>-- \n>Brian Cherkas     * *    bcherkas@netcom.com\n>                   I   \n>AOL/BrianC22      \\_/    compuserve/71251,3253\n>Netcom - Online Communication Services San Jose, CA\n\nYes, quite a number of people it seems from discussions I've had (me\nincluded). I bought my machine a couple of weeks ago as well and\nstarted to experience these problems.\n\nApple Australia via my dealer said that this problem has a number of\npotential causes - Faulty applications, faulty third party hardware\n(modems, memory etc), system software, PRAM corruption and power\nmanager corruption, and the Duo hardware itself.\n\nNone of the above are relevant in my case except the last two maybe\n(no applications were running, the system software was re-installed, I\nhave no additional hardware). I have found that clearing PRAM appears\nto help for a while at least (hold down command option P and R on\nstartup). Unfortunately the problem returns suggesting that PRAM is\nbeing corrupted by something (system software bug ? - I don't have any\nnon-issue inits in my system). Apparently the Power Manager can be\nreset by \"holding the reset and interrupt buttons while powering up\" -\nApple's advice - but since the Duo does not have an interrupt button\nI'm not sure what they mean in this case. This may also help if\nsomeone can decipher Apple's advice for me.\n\nBeyond this Apple suggest that \" you should follow the technical\nprocedures to check the hardware of this Duo\". Since so many others\nappear to be having the same problem it would seem to me that there\nhas been a system software bug introduced somewhere along the line -\nand quite recently too - since it only seems to be recent Duo 230\npurchasers who have this problem.\n\nAny more comments from others in the same boat are welcome,\nparticularly Apple Duo engineers :-)\n\ncheers\n\nbrucet\n\n-- \n          bruce tulloch sydney australia - brucet@extro.ucc.su.oz.au\n***complex problems have straight forward, easy to understand wrong answers***\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1383, "properties": {"category": "sci.med", "text": "From: young@serum.kodak.com (Rich Young)\nSubject: Re: Barbecued foods and health risk\nOriginator: young@sasquatch\nNntp-Posting-Host: sasquatch\nReply-To: young@serum.kodak.com\nOrganization: Clinical Diagnostics Division, Eastman Kodak Company\nLines: 24\n\nIn article <C5Mv3v.2o5@world.std.com> rsilver@world.std.com (Richard Silver) writes:\n>\n>Some recent postings remind me that I had read about risks \n>associated with the barbecuing of foods, namely that carcinogens \n>are generated. Is this a valid concern? If so, is it a function \n>of the smoke or the elevated temperatures? Is it a function of \n>the cooking elements, wood or charcoal vs. lava rocks? I wish \n>to know more. Thanks. \n\n   From THE TUFTS UNIVERSITY GUIDE TO TOTAL NUTRITION: Stanley Gershoff, \n   Ph.D., Dean of Tufts University School of Nutrition; HarperPerennial, 1991\n   (ISBN #0-06-272007-4):\n\n\t\"The greatest hazard of barbecuing is that the cook will not use\n\t enough caution and get burned.  Some people suggest that the\n\t barbecuing itself is dangerous, because the smoke, which is \n\t absorbed by the meat, contains benzopyrene, which, in its pure form,\n\t has been known to cause cancer in laboratory animals.  However,\n\t in order to experience the same results, people would have to\n\t consume unrealistically large quantities of barbecued meat at a\n\t time.\"\n\n\n-Rich Young (These are not Kodak's opinions.)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1384, "properties": {"category": "sci.crypt", "text": "From: C445585@mizzou1.missouri.edu (John Kelsey)\nSubject: 80-bit keyseach machine\nNntp-Posting-Host: mizzou1.missouri.edu\nOrganization: University of Missouri\nLines: 26\n\nIn article <1993Apr21.001230.26384@lokkur.dexter.mi.us>\nscs@lokkur.dexter.mi.us (Steve Simmons) writes:\n \n>Normally I'd be the last to argue with Steve . . . but shouldn't that\n>read \"3.8 years for *all* solutions\".  I mean, if we can imagine the\n>machine that does 1 trial/nanosecond, we can imagine the storage medium\n>that could index and archive it.\n \n   Hmmmm.  I think, with really large keyspaces like this, you need to\nalter the strategy discussed for DES.  Attempt decryption of several\nblocks, and check the disctribution of the contents.  I don't think it's\nat all feasible to keep 2**80 encryptions of a known plaintext block on\n*any* amount of tape or CD-ROM.  And certainly not 2**128 such encrypted\nblocks.  (Anyone know a cheap way of converting every atom in the solar\nsystem into a one bit storage device?)\n \n   Actually, a keysearch of this kind shouldn't be much worse than the\nsimpler kind in terms of speed.  It's just that you have to do it over\nfor *every* encrypted message.\n \n   Dumb question:  Has anyone ever done any serious research on how many\nlegitimate ASCII-encoded 8-byte blocks there are that could be part of\nan english sentence?  For attacking DES in ECB mode, it seems like a\ndictionary of this kind might be pretty valuable....\n \n   --John Kelsey\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1385, "properties": {"category": "comp.sys.mac.hardware", "text": "From: guykuo@carson.u.washington.edu (Guy Kuo)\nSubject: Re: Q700 at 34.5MHz, it's fine...\nOrganization: University of Washington\nLines: 11\nNNTP-Posting-Host: carson.u.washington.edu\n\n>I have had my Q700 running with a 66.666 MHz osc for a few months. I have a\n>number of SCSI devices connected (Quantum LP52, Maxtor 213, Toshiba MK156F via\n>Emulex adapter, Pioneer DRM-600) and have had no trouble.\n\nIs this being done with the motherboard's SCSI interface? If this is possible\nthen a bit of experimenting with just plain old clock oscillators may be\nin order. Give us some more details please.\n\nThe Mad Clock Chipper in Seattle\n<guykuo@u.washington.edu>\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1386, "properties": {"category": "rec.sport.baseball", "text": "From: fls@keynes.econ.duke.edu (Forrest Smith)\nSubject: Re: Infield Fly Rule\nOrganization: Duke University; Durham, N.C.\nLines: 13\nNntp-Posting-Host: keynes.econ.duke.edu\n\nIn article <1qmrciINNoin@gap.caltech.edu> shippert@cco.caltech.edu (Tim Shippert) writes:\n[about the infield fly rule]\n>So, if he's feeling lucky, your runner at second can sprint for glory\n>as soon as the ball is popped up.  If it isn't caught, he's probably scored\n>a run.  If it is, he's probably headed for AAA.  \n>\n\tUnless he's Deion Sanders, in which case he just heads back to the\ndugout and waits for his next base-running-blunder opportunity.\n-- \n@econ.duke.edu     fls@econ.duke.edu     fls@econ.duke.edu    fls@econ.duke.\ns  To my correspondents:  My email has been changed.                       e\nl                         My new address is:  fls@econ.duke.edu            d\nf            If mail bounces, try fls@raphael.acpub.duke.edu               u\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1387, "properties": {"category": "sci.med", "text": "From: cliff@buster.stafford.tx.us (Cliff Tomplait)\nSubject: Re: sex problem.\nOrganization: Buster irby\nLines: 34\n\nls8139@albnyvms.bitnet (larry silverberg) writes:\n>I have question that I hope is taken seriously, despite the subject content.\n\n>Problem:  My long time girlfriend lately has not been initiating any sexual\n>\tactivity.  For the last four months things have changed dramatically.\n>       ...\n>\t--to make this shorter-- Summary: nothing that I can think of has\n>\t\t\t\tchanged....\n>       ...\n>She suggested we go to a sex counselor, but I really don't want to (just yet).\n>Any suggestions would be appreciated.\n>If you think you can help me, please contact me by e-mail for further info.\n>PLEASE serious replies only.\n>Thanks, Larry\n\nLarry:\n\nThe subject content IS serious; as is the question.\n\nOn one hand you state that \"things have changed dramatically\" but, at the\nsame time nothing you \"can think of has changed\".  Your girlfriend seems\nto want to see a counselor, but you don't.  \n\nI'd recommend that you examine your hesitation to see a counselor.  It's\na very good environment to examine issues.  \n\nThe fact of the matter is:  your girlfriend has a different perception than\nyou.  The TWO of you need to address the issue in order to resolve it.\n\nPlease consider going to a counselor with your girlfriend.  What could it\npossibly hurt?\n\nCliff  (the paramedic)\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1388, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: richk@grebyn.com (Richard Krehbiel)\nSubject: Re: IDE vs SCSI\nIn-Reply-To: bgrubb@dante.nmsu.edu's message of 18 Apr 1993 19:30:47 GMT\nLines: 14\nOrganization: Grebyn Timesharing, Inc.\n\nIn article <1qsa97INNm7b@dns1.NMSU.Edu> bgrubb@dante.nmsu.edu (GRUBB) writes:\n\n>   richk@grebyn.com (Richard Krehbiel) writes:\n>   [Stuff about the connection between IDE and IDA deleated]\n>   >8MHz clock, 16 bit width, 5MB/sec.\n>   If IDE speed come from IDA WHERE does the 8.3MB/s sighted for IDE\n>   come from?\n\nWell, some quick math on my part shows that an 8.3MHz bus, 16 bits\nwide, performing a transfer every two clock cycles will provide 8.3M\nbytes/sec.  Someone said that it really takes 3 clock cycles to\nperform a transfer, so that reduces the transfer rate to 5.5MB/s,\nwhich is the commonly-used figure for ISA bus speed.  However, I\nbelieve a two-clock transfer is possible (0 wait states).\n-- \nRichard Krehbiel                                 richk@grebyn.com\nOS/2 2.0 will do for me until AmigaDOS for the 386 comes along...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1389, "properties": {"category": "rec.sport.baseball", "text": "From: king@cogsci.ucsd.edu (Jonathan King)\nSubject: A Move we won't see (was Why The RedFlops Can(but won't) win.....)\nOrganization: University of California, San Diego\nLines: 14\nNNTP-Posting-Host: cogsci.ucsd.edu\nSummary: it would be tragic if ted simmons were to pick up mo vaughn\n\nstwombly@cs.ulowell.edu (Steve Twombly) writes:\n>1.  Mo Vaughn CAN hit .400 in the spring.\n>1b. Mo Vaughn CAN Only hit .230 during the season.\n\nExcellent point.  I hope to God that Ted Simmons doesn't get the weird\nidea of trading for the guy.  And if he does, he had better not\ninclude Jeff King in the deal.  Oh God--what if he traded Zane Smith\nand Jeff King for Vaughn and Greg Blosser?  It would be worse than The\nNichols Curse!\n\nHmm, I guess that doesn't sound sincere enough.  Oh well, at least I\ntried...\n\njking\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1390, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: \"lds\" Rick's reply\nFrom: <ISSCCK@BYUVM.BITNET>\nOrganization: Brigham Young University\nLines: 159\n\n\nRobert Weiss (psyrobtw@ubvmsb.cc.buffalo.edu) writes:\n\n#Rick Anderson replied to my letter with...\n#\n#ra> In article <C5ELp2.L0C@acsu.buffalo.edu>,\n#ra> psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss) says:\n#ra>\n\n(...)\n\n# Just briefly, on something that you mentioned in passing. You refer to\n# differing interpretations of \"create,\" and say that many Christians may\n# not agree. So what? That is really irrelevant. We do not base our faith\n# on how many people think one way or another, do we? The bottom line is\n# truth, regardless of popularity of opinions.\n\nIt may be \"irrelevant\" to you and *your* personal beliefs (or should I say\n\"bias\"?), but it is relevant to me and many others.  You're right, \"the\nbottom line IS truth,\" independant from you or anyone else.  Since you\nproclaim \"truths\" as a self-proclaimed appointee, may I ask you by what\nauthority you do this?  Because \"it says so in the Bible?\"  --Does the\nBible \"say so,\" or is it YOU, or someone else, who interprets whether a\nscripture or doctrine conforms to your particular liking or \"disapproval\"?\n\nExcuse moi, but your line of \"truths\" haven't moved me one bit to persuade\nme that my beliefs are erroneous.  Of all the \"preachers\" of \"truth\" on\nthis net, you have struck me as a self-righteous member of the wrecking\ncrew, with no positive message to me or any other Latter-day Saint...\nBTW, this entire discussion reminds me a lot of the things said by Jesus\nto the pharisees: \"ye hypocrite(s) . . . ye preach about me with your lips,\nbut your hearts are far removed from me...\"\n\n# Also, I find it rather strange that in trying to persuade that created\n# and eternally existent are equivalent, you say \"granted the Mormon\n# belief...\" You can't grant your conclusion and then expect the point to\n# have been addressed. In order to reply to the issue, you have to address\n# and answer the point that was raised, and not just jump to the\n# conclusion that you grant.\n\nSophistry.  Look who's talking: \"jumping to conclusions?\"  You wouldn't do\nthat yourself, right?  All YOU address is your own convictions, regardless\nwhether we come up with any Biblical scriptures which supports our points\nof view, because you reject such interpretations without any consideration\nwhatsoever.\n\n#\n# The Bible states that Lucifer was created.  The Bible states that Jesus\n# is the creator of all. The contradiction that we have is that the LDS\n# belief is that Jesus and Lucifer were the same.\n\nA beautiful example of disinformation and a deliberate misrepresentation\nof lds doctrine.  The former KGB would have loved to employ you.\nJesus and lucifer are not \"the same,\" silly, and you know it.\n\n(...)\n\n# The Mormon belief is that all are children of God. Literally. There is\n# nothing symbolic about it. This however, contradicts what the Bible\n# says. The Bible teaches that not everyone is a child of God:\n\nCorrection: it may contradict would YOU think the Bible says.  The Bible\nindeed does teach that not all are children of God in the sense that they\n\"belong to\" or follow God in His footsteps.  Satan and his followers have\nrebelled against God, and are not \"children (=followers/redeemed) of God,\"\nbut it doesn't mean that they were not once created by God, but chose to\nseparate themselves from those who chose to follow God and His plan of\nsalvation.\n\n#\n#        The field is the world; the good seed are the children of the\n#        kingdom; but the tares are the children of the wicked \"one\";\n#        (Matthew 13:38)\n\nSo?  --This illustrates nicely what I just said: the children of the\nkingdom are those who have remained valiant in their testimony of Jesus\n(and have shown \"works of repentance, etc.), and the children of the\nwicked one are those who rebelled against God and the lamb.  The issue\nof satan's spirit-origin (and of those who followed him) has not been\naddressed in this and other verses you copied from your Bible.  You\npurposefully obscured the subject by swamping your \"right\" with non-\nrelated scriptures.\n\n(...lots of nice scriptures deleted (NOT Robert W. copyrighted) though...)\n\n#ra> > We are told that, \"And this is life eternal, that they might know\n#ra> > thee the only true God, and Jesus Christ, whom thou hast sent.\"\n#ra> > (John 17:3). Life eternal is to know the only true God. Yet the\n#ra> > doctrines of the LDS that I have mentioned portray a vastly\n#ra> > different Jesus, a Jesus that cannot be reconciled with the Jesus of\n#ra> > the Bible. They are so far removed from each other that to proclaim\n\nCorrection: \"my\" Jesus is indeed different than your Jesus, and CAN be\nreconciled with the Jesus in the Bible.  --Not your interpretation of Him,\nI concur, but I honestly couldn't care less.\n\n#ra> > one as being true denies the other from being true. According to the\n#ra> > Bible, eternal life is dependent on knowing the only true God, and\n#ra> > not the construct of imagination.\n\nIn this single posting of yours, I've seen more \"constructs of imagination\"\nthan in all of the pro-lds mails combined I have read so far in this news\ngroup.  First get your lds-facts straight before you dare preaching to us\nabout \"the only true God,\" whom you interpret according to your own likes\nand dislikes, but whose image I cannot reconcile with what I know about\nHim myself.  I guess your grandiose self-image does not allow for other\nfaiths, believing in the divinity of Jesus Christ, but in a different\nway or fashion than your own.  Not that it really matters, the mission\nand progress of the lds church will go on, boldly and nobly, and no mob\nor opponent can stop the work from progressing, until it has visited\nevery continent, swept every clime, and sounded in every ear.\n\n#  This is really a red herring. It doesn't address any issue raised, but\n#  rather, it seeks to obfuscate. The fact that some groups try to read\n#  something into the Bible, doesn't change what the Bible teaches.\n\nSigh.  \"What the Bible teaches\"?  Or: \"what the bible teaches according to\nRobert Weiss and co.?\"  I respect the former, I reject the latter without\nthe remotest feeling that I have rejected Jesus.  On the contrary.  And by\nthe way, I do respect your interpretations of the Bible, I even grant you\nbeing a Christian (following your own image of Him), as much as I am a\nChristian (following my own image of Him in my heart).\n\n(...)\n\n#  Most of the other replies have instead hop-scotched to the issue of\n#  Bruce McConkie and whether his views were 'official doctrine.' I don't\n#  think that it matters if McConkie's views were canon. That is not the\n#  issue.  Were McConkie's writings indicative of Mormon belief on this\n#  subject is the real issue. The indication from Rick is that they may\n#  certainly be.\n\nThe issue is, of course, that you love to use anything to either mis-\nrepresent or ridicule the lds church.  The issue of \"official doctrine\"\nis obviously very important.  McConkie's views have been controversial\n(e.g. \"The Seven Deadly Heresies\" has made me a heretic!  ;-) at best,\nor erroneous at worst (\"blacks not to receive the priesthood in this\ndispensation\").  I respect him as someone who has made his valuable\ncontribution to the church, but I personally do NOT rely on his personal\ninterpretations (his book \"Mormon Doctrine\" is oftentimes referred to\nas \"McConkie's Bible\" in mormon circles) on mormon doctrine.  I rather\nlook to official (doctrinal) sources, and... to Hugh Nibley's books!\n(The last comment is an lds-insider reference.)  Summarizing: McConkie\nwas a wise man who contributed undoubtedly far more to the kingdom of\nGod than I have, but whose views are by no means dogma or accepted\ndoctrine, some of it clearly belongs to personal interpretation and\nspeculation.  But having said this, I find McConkie (even in his most\nbiased and speculative moments) far more thought-provoking than the\ntrash coming from your proverbial pen.  I'm somewhat appalled that I have\nallowed myself to sink as low as you in this posting...\n\n=============================\nRobert Weiss\npsyrobtw@ubvms.cc.buffalo.edu\n\n\nCasper C. Knies              isscck@byuvm.bitnet\nBrigham Young University     isscck@vm.byu.edu\nUCS Computer Facilities\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.066+0000", "event": "documents", "entityId": 1391, "properties": {"category": "talk.politics.guns", "text": "From: yoony@aix.rpi.edu (Young-Hoon Yoon)\nSubject: Re: Constitutionality of 18 U.S.C 922(o)\nNntp-Posting-Host: aix.rpi.edu\nDistribution: usa\nLines: 50\n\nbrians@atlastele.com (Brian Sheets) writes:\n\n>You know, I was reading 18 U.S.C. 922 and something just did not make \n>sence and I was wondering if someone could help me out.\n\n>Say U.S.C. 922 :\n\n>(1) Except as provided in paragraph (2), it shall be unlawful for\n>any person to transfer or possess a machinegun.\n\n> Well I got to looking in my law dictionary and I found that a \"person\" \n>might also be an artificial entity that is created by government \n>and has no rights under the federal constitution. So, what I \n>don't understand is how a statute like 922 can be enforced on \n>an individual. So someone tell me how my government can tell\n>me what I can or cannot possess. Just passing a law \n>does not make it LAW. Everyone knows that laws are constitional\n>until it goes to court. So, has it ever gone to court, not\n>just your run of the mill \"Ok I had it I am guilty, put me in jail\"\n\n>Has anyone ever claimed that they had a right to possess and was told\n>by the Supreme Court that they didn't have that right?\n\n\n\n>-- \n>Brian Sheets\t\t    _   /|  \t\"TRUCK?! What truck?\"\n>Support Engineer  \t    \\`o_O'    \t \n>Atlas Telecom Inc. \t      ( ) \t   -Raiders of the Lost Ark\n>brians@atlastele.com           U\n\nI'm not a lawyer but to the best of my understanding, the Congress has no\nmore rights than what is enumerated in the constitution.  That is the \nprime reason why the National Firearms Act is based on collecting revenue.\nSince the Congress has the authority to levy taxes, the NFA is a tax act and\nthe registration requirement within it is to assist in that tax collection.\nU.S.C 922, in order to be constitutional, must have a basis on a particular\nauthority granted to the Congress by the Constitution.  Congress can not\narbitrarily ban a substance or product.  That is why prohibition came into\neffect, only by passing an ammendment.   What you said about constitutionality\nof law needs to be clarified.  I believe that an unconstitutional law was \nnever constitutional.  When a law is determined by the Supreme Court, to be\nunconstitutional, that law was never really a law.  The very nature of the law\nbeing unconstitutional invalidates the law at it's inception.  Please correct\nme if I'm wrong, but when a law is deemed to be unconstitutional, anyone\nconvicted of breaking that law is absolved.\n   I don't believe U.S.C 922 has ever been challenged in court.  NFA has been\ninvalidated in two Federal District Court cases( one may have been appellate\nlevel{ U.S. vs Rock Island Armory  and U.S. vs Dalton}).\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1392, "properties": {"category": "rec.motorcycles", "text": "From: jrlaf@sgi502.msd.lmsc.lockheed.com (J. R. Laferriere)\nSubject:   So, do any XXXX, I mean police officers read this stuff?\nOrganization: Lockheed Missiles and Space Co.\nLines: 11\n\nI was just wondering if there were any law officers that read this.  I have\nseveral questions I would like to ask pertaining to motorcycles and cops.\nAnd please don't say get a vehicle code, go to your local station, or obvious\nthings like that.  My questions would not be found in those places nor\nanswered face to face with a real, live in the flesh, cop.\nIf your brother had a friend who had a cousin whos father was a cop, etc.\ndon't bother writing in.  Thanks.\n\n \n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1393, "properties": {"category": "talk.politics.mideast", "text": "From: bh437292@longs.LANCE.ColoState.Edu (Basil Hamdan)\nSubject: RE: was:Go Hezbollah!\nReply-To: bh437292@lance.colostate.edu\nNntp-Posting-Host: parry.lance.colostate.edu\nOrganization: Engineering College, Colorado State University\nLines: 116\n\n\nI will try to answer some of Dorin's questions, even though they were\nnot addressed to me specifically, but I feel that I am a bit concerned\nby the thread since I am a Southern Lebanese from a village that is \noften on the receiving end of Israel's bombs.\nIn the first place the death of three soldiers on a patrol in occupied\nLebanese terrritory is NOT an act of terrorism or murder.  It is \ndisingeneous to compare their death to that of athletes in Munich\nor any other act of terrorism or mrder.  This exercise is aimed \nsolely at diverting the issue and is far from the truth.\nIt seems to me, Dorin, that, you are so remote and ignorant of the problem\non the ground that your comments can only be charactrized as irrelevant,\nand heavily colored by the preconceptions and misinformation.\nI will try to paint the most accurate picture I can of\nwhat the situation really is in South Lebanon.\n\nIn article <1993Apr15.152455.14555@unocal.com>, stssdxb@st.unocal.com (Dorin Baru) writes:\n\n|> Is there any Israeli a civilian, in your opinion ?\n|> \n|> Now, I do not condone myself bombing villages, any kind of villages.\n|> But you claim these are villages with civilians, and Iraelis claim they are \n|> camps filled with terrorists. You claim that israelis shell the villages with the\n|> 'hope' of finding a terrorist or so. If they kill one, fine, if not, too bad, \n|> civilians die, right ? I am not so sure. \n\nI am.  I was back in my home village this last summer.  For your information\nwe are PEOPLE, not a bunch of indiscriminate terrorists.  Most of the \npeople in my village are regular inhabitants that go about their daily\nbusiness, some work in the fields, some own small shops, others are\nolder men that go to the coffe shop and drink coffee.  Is that so hard to\nimagine ????  It is NOT a \"terrorist camp\" as you and the Israelis like \nto view the villages they are small communities with kids playing soccer\nin the streets, women preparing lunch, men playing cards, etc.....\nSOME young men, usually aged between 17 to 30 years are members of\nthe Lebanese resistance.  Even the inhabitants of the village do not \nknow who these are, they are secretive about it, but most people often\nsuspect who they are and what they are up to.  These young men are\nsupported financially by Iran most of the time.  They sneak arms and\nammunitions into the occupied zone where they set up booby traps\nfor Israeli patrols.  Every time an Israeli soldier is killed or injured\nby these traps, Israel retalliates by indiscriminately bombing villages\nof their own choosing often killing only innocent civilians.  Once they\nare back they announce that they bombed a \"terrorist  hideout\" where\nan 8 year old girl just happened to be.\nWe are now accustomed to Israeli tactics, and we figure that this is \nthe Israeli way of telling us that \"if you're gonna hurt our soldiers\nyou're gonna pay the price\".  We accept this as a price we have to pay\nto free our land, Israel knows very well that it is not really hurting\nthe resistance that much militarily with these strikes, but rather\njust keeping the pressure on the villagers to demand from their young \nmen to stop attacking Israeli soldiers since these attacks are\ntaking a heavy toll on the lives of the civilian villagers.\nIsrael's retalliation policy is cold hearted, but a reality that\nwe have come to accept and deal with, the Lebanese Resistance\non the other hand is not going to stop its attacks on OCCUPYING \nISRAELI SOLDIERS until they withdraw, this is the only real \nleverage that they have to force Israel to withdraw.\nThe people of South Lebanon are occupied, or shelled by Israel on a \nregular basis.  We do not want to be occupied.  If Israel insists that\nthe so called \"Security Zone\" is necessary for the protection of \nNorthern Israel, than it will have to pay the price of its occupation\nwith the blood of its soldiers.  If Israel is interested in peace,\nthan it should withdraw from OUR land.  We are not asking for the \nestablishment of a Lebanese occupied zone in northern Israel to protect\nour villages that are attacked on a regular basis by Israel, so the\nbest policy seems to be the removal of Israeli occupation and the\nestablishment of peace keeping troops along the border.\n\nI have written before on this very newsgroup, that the only\nreal solution will come as a result of a comprehensive peace\nsettlement whereby Israel withdraws to its own borders and\npeace keeping troops are stationed along the border to insure\nno one on either side of the border is shelled.\nThis is the only realistic solution, it is time for Israel to\nrealize that the concept of a \"buffer zone\" aimed at protecting\nits northern cities has failed.  In fact it has caused much more\nIsraeli deaths than the occasional shelling of Northern Israel\nwould have resulted in.  \nIf Israel really wants to save some Israeli lives it would withdraw \nunilaterally from the so-called \"Security Zone\" before the conclusion\nof the peace talks.  Such a move would save Israeli lives,\nadvance peace efforts, give Israel a great moral lift, better Israel's \npublic image abroad and give it an edge in the peace negociations \nsince Israel can rightly claim that it is genuinely interested in \npeace and has already offered some important concessions.\nAlong with such a withdrawal Israel could demand that Hizbollah\nbe disarmed by the Lebanese government and warn that it will not \naccept any attacks against its northern cities and that if such a\nshelling occurs than it will consider re-taking the buffer zone\nand will hold the Lebanese and Syrian government responsible for it.\nThere seems to be very little incentive for the Syrian and Lebanese\ngoovernment to allow Hizbollah to bomb Israel proper under such \ncircumstances, and now the Lebanese government has proven that it is\ncapable of controlling and disarming all militias as they did\nin all other parts of Lebanon.\n  \n|> If you ask me those questions, I will have no problem answering (not with a \n|> question, as you did) : No, NOBODY is qualified candidate for murder, nothing\n|> justifies murder.\n\nI agree, only in the case of the Isareli soldiers their killing\nCANNOT be qualified as murder, no matter what you say.\n\n I have the feeling that you may be able yourself to make\n|> similar statements, maybe after eliminating all Israelis, jews, ? Am I wrong ?\n\nYes, we have no quarrel with Jews, or Israeli civilians.\nThe real problem is with OCCUPYING Israeli soldiers and those brave\nIsraeli pilots that bomb our civilian villages every time an \noccupying soldier is attacked.\n \n\n|> Dorin\n\nBasil\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1394, "properties": {"category": "sci.electronics", "text": "From: drand@spinner.osf.org (Douglas S. Rand)\nSubject: Re: Power, signal surges in home...\nIn-Reply-To: randall@informix.com's message of 19 Apr 93 20:37:19 GMT\nOrganization: Open Software Foundation\nLines: 76\n\nIn article <randall.735251839@woof> randall@informix.com (Randall Rhea) writes:\n\n   gstovall@crchh67.NoSubdomain.NoDomain (Greg Stovall) writes:\n   >Anyway, over the weekend, I was resting on the sofa (in between chores),\n   >and noticed that I briefly picked up what sounded like ham radio traffic\n   >over my stereo and television, even though both were off.  Also, all the\n   >touch sensitive lights in my house start going wacko, cycling through \n   >their four brightness states.\n\n   >I presume that some ham operator with an illegal amplifier drove past\n   >my house (I live on a busy thoroughfare); would this be a correct presumption?\n   >What kind of power must he be putting out to cause the effects?  \n   >The affected equipment is about 100 feet from the road...\n\nHams are unlikely to have an illegal amp,  and are also unlikely to\nhave a \"dirty\" amp.\n\n   Hams can legally run up to 1500 watts.  It is very unlikely, however,\n   that a ham would be running that kind of power from a car.  Ham rigs\n\nNot possible either.  You'd need about a 300 amp alternator for\njust the amplifier.  I can just see it.  You need to slow\ndown on a downgrade,  so you hit the push to talk button.\n\n   for cars put out around 100 watts.  It is possible that a 100 watt\n   radio would cause interference to consumer electronic 100 feet \n   away.  Most TVs, stereos, and VCRs have very poor RF shielding.\n   If you experience the problem frequently, it may be \n   caused by a ham, CBer, or other radio operator in a base station\n   nearby.    The interference may have been caused by a radio \n   transmitter used for other purposes, such as police, fire,\n   etc.  If you heard voices over your stereo, I think you are\n   correct in assuming that the source is an RF transmitter.\n\n   If you have frequent trouble, you may want to try the RF ferrite\n   chokes available at Radio Shack.  The interference is probably\n   being picked up by your speaker wires, and those chokes can\n   be installed on the wires very easily (without cutting them).\n   Good instructions are included with the chokes.\n   If that does not solve the problem, you may want to search your\n   neighborhood for a radio operator.  Look for antennas on the roof\n   or car.  Talk to him/her about your problem.  There are things\n   a radio operator can do to reduce interference.\n\nAnd please remember to be friendly when approaching your\nlocal radio operator.  This person may or may not be the \ncause of your troubles,  and you'll get better cooperation\nand help if you assume that he is going to be helpful (most\nare).  It was amazing the accusations that we sometimes\ndealt with as I grew up.  We were blamed for skip (ghost\npictures on the TV that occur at sunspot peaks),  c.b.\ninterferance,  dead grass :),  you name it.  \n\nBTW, the local operator should try and help you whether or\nnot he or she is directly responsible.  It is part of\nbeing a good neighbor and that is how the FCC views it.\nToo bad they don't require the consumer equipment makers\nto take any precautions.\n\nLast, you can usually tell ham radio vs. CB.  Ham operators are\nrequired to declare their call (sign) every so many minutes (no more\nthan 10).  So if you hear \"This is WA1QT\" or some other call starting\nwith A, W or K and no more than 6 total characters, you heard a ham.\nCB'ers probably won't sign (I don't know that they're even required\nto) and fire/police have other private ids.\n\n\n\n\n\n\n--\nDouglas S. Rand <drand@osf.org>\t\tOSF/Motif Dev.\nSnail:         11 Cambridge Center,  Cambridge,  MA  02142\nDisclaimer:    I don't know if OSF agrees with me... let's vote on it.\nAmateur Radio: KC1KJ\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1395, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gcohen@mailer.acns.fsu.edu (Gregory Cohen)\nSubject: Re: Photo shop scanner?\nOrganization: Florida State University\nLines: 37\n\nIn article <C5LGII.EuJ@ncube.com> root@ncube.com (Operator) writes:\n>From: root@ncube.com (Operator)\n>Subject: Photo shop scanner?\n>Date: Fri, 16 Apr 1993 20:49:30 GMT\n>I have a Macc IIci and a Color scanner.\n>I scanned a picture at 600 dpi. When I try to print\n>it on my HP500 color printer, after 10 minutes of\n>making noise, the mac hangs. I would need to reboot it.\n>What does this mean? Do I need to buy more memory? I have\n>5.0 MB now. I also have about 50 MB of disk free, and the\n>scanned picture is about 12 MB.\n>\n>---\n>\n>\n>\n>                     ^~\n>                     @ *  *\n>  Captain Zod...    _|/_ /\n>  zod@ncube.com    |-|-|/\n>                  0 /| 0\n>                   / |\n>           \\=======&==\\===\n>           \\===========&===\n>\n>\n>\n\nhave you tried printing the data file (TIFF) from another application such \nas freehand or PageMaker?  I have found that Photoshop has occasional \nproblems printing files that I can print through other applications.\n\n-GReg\n------------------------------------------------------------------------------\n| gcohen@mailer.cc.fsu.edu         | Infinite Illusions Juggling Supplies    |\n| \"Beware of the Fnord or it will  | 1-800-54TORCH Call or write for a       |\n|  eat you\"                        | catalog.                                |\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1396, "properties": {"category": "rec.autos", "text": "From: tobias@convex.com (Allen Tobias)\nSubject: Re: WARNING.....(please read)...\nNntp-Posting-Host: hydra.convex.com\nOrganization: CONVEX Computer Corporation, Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 24\n\nIn article <1993Apr15.024246.8076@Virginia.EDU> ejv2j@Virginia.EDU (\"Erik Velapoldi\") writes:\n>This happened about a year ago on the Washington DC Beltway.\n>Snot nosed drunken kids decided it would be really cool to\n>throw huge rocks down on cars from an overpass.  Four or five\n>cars were hit.  There were several serious injuries, and sadly\n>a small girl sitting in the front seat of one of them was struck \n>in the head by one of the larger rocks.  I don't recall if she \n>made it, but I think she was comatose for a month or so and \n>doctors weren't holding out hope that she'd live.\n>\n>What the hell is happening to this great country of ours?  I\n>can see boyhood pranks of peeing off of bridges and such, but\n>20 pound rocks??!  Has our society really stooped this low??\n>\n>Erik velapold\n\nSociety, as we have known it, it coming apart at the seams! The basic reason\nis that human life has been devalued to the point were killing someone is\n\"No Big Deal\". Kid's see hundreds on murderous acts on TV, we can abort \nchildren on demand, and kill the sick and old at will. So why be surprised\nwhen some kids drop 20 lbs rocks and kill people. They don't care because the\nmessage they hear is \"Life is Cheap\"!\n\nAT\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1397, "properties": {"category": "rec.sport.hockey", "text": "From: damelio@progress.COM (Stephen D'Amelio)\nSubject: Re: What was Ray doing?\nNntp-Posting-Host: elba\nOrganization: Progress Software Corp.\nLines: 22\n\ndaveb@thewho.East.Sun.COM (Dave Brewer) writes:\n\n>In yesterday's fracus between Rob Ray and Brent Hughes, was it the camera angle or was\n>Ray actually punching Hughes where it appeared he was punching him? (For those that didn't\n>see the game - it was several inches below the belt and he punched him there quite a few\n>times.) Dreadful.\n\n>Also, why did Poulin get four minutes?\n\n\nI've been watching & playing hockey for a good long time now, and\nI've seen players with questionable tactics, but never have I seen\nwhat Ray did on Sunday. This guy gets my all time loser award. It's\none thing to repeatedly cross check someone to the back of the neck\nwhen they are down, it's another thing to have a fist fight with\nsomeones balls. Ray should be thrown out of the league, what an\na**hole.\n\n-Steve\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1398, "properties": {"category": "talk.politics.misc", "text": "From: walsh@optilink.COM (Mark Walsh)\nSubject: Re: Age of Consent == Child Molestation\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 20\n\nFrom article <C4zLJ8.Bun@queernet.org>, by rogerk@queernet.org (Roger B.A. Klorese):\n> In article <15148@optilink.COM> walsh@optilink.COM (Mark Walsh) writes:\n\n#>NAMBLA's presence in the SF Gay Pride Parade says quite a bit.\n#>It says that either the parade organizers want to show support\n#>for NAMBLA, or they themselves have a fundamental misunderstanding\n#>of their rights and responsibilities.  I would really, really like\n#>to believe the latter, but I would need some help to do so.\n\n> There are dozens of examples of the latter; NAMBLA is an especially\n> glaring one, but hardly the only one.\n\nPerhaps, though the exclusion of the Gay Perotistas in the\nSF Gay Pride Parade would make me think that they had some\nclue in this regard.  Dozens of examples?  I don't know...\n-- \nMark Walsh (walsh@optilink) -- UUCP: uunet!optilink!walsh\nAmateur Radio: KM6XU@WX3K -- AOL: BigCookie@aol.com -- USCF: L10861\n\"What, me worry?\" - William M. Gaines, 1922-1992\n\"I'm gonna crush you!\" - Andre the Giant, 1946-1993\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1399, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: richk@grebyn.com (Richard Krehbiel)\nSubject: Re: IDE vs SCSI\nIn-Reply-To: wlsmith@valve.heart.rri.uwo.ca's message of Thu, 15 Apr 1993 23:55:09 GMT\nLines: 38\nOrganization: Grebyn Timesharing, Inc.\n\nIn article <1993Apr15.235509.29818@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n\n>   In article <1qk7kvINNndk@dns1.NMSU.Edu> bgrubb@dante.nmsu.edu (GRUBB) writes:\n>   >>point of view, why does SCSI have an advantage when it comes to multi-\n>   >>tasking?  Data is data, and it could be anywhere on the drive.  Can\n>   >>SCSI find it faster?  can it get it off the drive and into the computer\n>   >>faster?  Does it have a better cache system?  I thought SCSI was good at\n>   >>managing a data bus when multiple devices are attached.  If we are\n>   >>only talking about a single drive, explain why SCSI is inherently\n>   >>faster at managing data from a hard drive.\n\nThe Adaptec 1540-series use bus mastering.  This means that the CPU\ndoesn't sit waiting for data bytes, it can go off and do other\ncomputing - if you have an advanced multi-tasking OS, that is.  DOS\njust sits and waits anyway.\n\n>\n>   >IDE:  Integrated Device Electronics \n>   > currently the most common standard, and is mainly used for\n>   > medium sized drives. Can have more than one hard drive.\n>   > Asynchronous Transfer: ~5MB/s max.\n>\n>   Why don't you start with the spec-sheet of the ISA bus first?\n>   You can quote SCSI specs till you're blue in the face, but if they\n>   exceed the ISA bus capability, then what's the point?\n>\n>   Who says IDE is limited to 5 megs/sec?  What about VLB-IDE?  Does anyone\n>   know how they perform?\n\nWhy don't you start with the spec-sheet of the ISA bus first? :-) IDE\nwas designed to plug into ISA virtually unaided - in essence, IDE *is*\nISA, on a ribbon cable.  Therefore it's specs are the same as ISA -\n8MHz clock, 16 bit width, 5MB/sec.\n\nThis is why I've concluded that IDE on VL-bus is a waste of a fast\nslot.  The card's job would to slow the VL-bus transactions to ISA\nspeed.  Heck, that's what ISA slots do - I'll just use one of those\ninstead.\n-- \nRichard Krehbiel                                 richk@grebyn.com\nOS/2 2.0 will do for me until AmigaDOS for the 386 comes along...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1400, "properties": {"category": "rec.sport.baseball", "text": "From: steph@pegasus.cs.uiuc.edu (Dale Stephenson)\nSubject: Re: PHILS, NL EAST NOT SO WEAK\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 10\n\nIn <1993Apr15.214133.3371@guvax.acc.georgetown.edu> apanjabi@guvax.acc.georgetown.edu writes:\n[...]\n\n>BRAVES HIT LIKE A AAA CLUB\nShouldn't this read \"Braves Hitters are at the AAA Club?\"\n-- \nDale J. Stephenson |*| (steph@cs.uiuc.edu) |*| Baseball fanatic\n\n  \"It is considered good to look wise, especially when not \n   overburdened with information\" -- J. Golden Kimball\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1401, "properties": {"category": "soc.religion.christian", "text": "From: alvin@spot.Colorado.EDU (Kenneth Alvin)\nSubject: Re: Assurance of Hell\nOrganization: University of Colorado, Boulder\nLines: 31\n\nIn article <Apr.20.03.01.19.1993.3755@geneva.rutgers.edu> REXLEX@fnal.fnal.gov writes:\n>\n>2)  If you haven't accepted Jesus are your Savior, you're taking an awful\n>chance.  As I say to the Jehovah Witnesses (who no longer frequent my door), if\n>you are right and I am wrong, then I will have lived a good life and will die\n>and cease to exist, but if I am right and you are wrong, then you will die and\n>suffer eternal damnation.  I don't mean to make fun at this point, but its like\n>Dirty Harry said, \"You've got to ask yourself, 'Do I feel lucky?'  Well do\n>you?\"  \"A man's got to know his limitations.\"  Don't be one of the \"whosoever\n>wont's.\"  \n\nThis is a ridiculous argument for being a Christian.  So then, you might \nconsider switching from Christianity to another religion if you were \noffered an even more frightening description of another hell?  How many\nChristians do think there are who view it strictly as an insurance policy?\nNot many I know; they believe in a message of love and compassion for \nothers.  A faith based on fear of hell sounds like a dysfunctional \nrelationship with God.  Like a child who cringes in fear of a parent's\nphysical violence.  \n\nMany religions have concrete views of heaven and hell, with various\nthreats and persuasions regarding who will go where.  Competition over\nwho can envison the worst hell can hardly nurture the idea of loving\nyour neighbor as yourself.\n\n>--Rex\n\n-- \ncomments, criticism welcome...\n-Ken\nalvin@ucsu.colorado.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1402, "properties": {"category": "rec.sport.hockey", "text": "From: riel@unixg.ubc.ca (William Riel)\nSubject: Re: Travesty at the Joe Louis\nOrganization: University of British Columbia, Vancouver, B.C., Canada\nLines: 12\nNNTP-Posting-Host: unixg.ubc.ca\n\nIn article <1993Apr20.005512.3382@mtroyal.ab.ca> caldwell8102@mtroyal.ab.ca writes:\n>(Detroit, April 19)\n>\n>In a development that shocked most knowledgable observers, the Detroit Redwings\n>scored no less than six goals against the best goaltender in the world en\n>route to a 6-3 win over the best team in the NHL, the Toronto Maple Leafs. \n\nNot only that, but if I'm not mistaken Detroit scored 4 goals on their first\nfive shots on net...looks like Toronto's cream cheese run continues (or is\nthat swiss cheese? after watching Potvin I'm leaning towards the latter)\n\nBill   \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1403, "properties": {"category": "comp.sys.mac.hardware", "text": "From: T. Kephart <kephart@snowhite.eeap.cwru.edu>\nSubject: Re: LCIII problems (sideways HD's)\nOrganization: Case School of Engineering\nLines: 27\nDistribution: world\nNNTP-Posting-Host: b62182.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7F445923701F2E6@b62182.student.cwru.edu>\nX-XXDate: Fri, 16 Apr 93 11:14:26 GMT\n\nIn article <1qmgjk$ao5@menudo.uh.edu> , sunnyt@coding.bchs.uh.edu writes:\n> \tIts not a good idea to have a horizontally formatted hard disk in a  \n> vertical position.  If the drive is formatted in a horizontal position,\nit can  \n> not completely compensate for the gravitational pull in a vertical\nposition.   \n> I'm not saying that your hard disk will fail tomorrow or 6 months from\nnow, but  \n> why take that chance?  If you want more detailed info on the problem,\nplease  \n> mail me at:===> sunnyt@dna.bchs.uh.edu <===.  \n> \n\nSunny,\n\nI asked this question a while ago while contemplating placing my 650 on \nit's side.  I received a response from someone at Seagate (Sorry I \ntrashed the message) stating that most newer drives (Seagates at the \nleast) can very well compensate for gravity.  This means that a \nhorizontally formatted drive can be later placed vertically with no data \nintegrity problems.  The only way that newer drives cannot work is if you \nhave varying forces (shaking, bouncing, etc) so don't place the drive on \nit's side on a rocking chair :).  What constitutes a 'newer' drive I \ndon't know, try calling your drive manufacturer.  I have a Quantum LP240S \ninternal, and since I got it a month ago, I am guessing it's 'newer'.\n\n-t\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1404, "properties": {"category": "rec.autos", "text": "From: sjp@hpuerca.atl.hp.com (Steve Phillips)\nSubject: Re: SUPER MEGA AUTOMOBILE SIGHTING(s)!!!!! Exotics together!\nOrganization: Hewlett-Packard NARC Atlanta\nX-Newsreader: Tin 1.1.3 PL5\nLines: 8\n\nGive out the address, I'll drive by and take a look myself, then post.\n\n\n--\nStephen Phillips\nAtlanta Response Center\nAtlanta, Ga.\nHome of the Braves!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1405, "properties": {"category": "soc.religion.christian", "text": "From: ka2czu@cbnewsh.att.com\nSubject: Christians in the Martial Arts\nOrganization: AT&T\nLines: 39\n\nGreetings and Salutations!\n\nI would like to get in touch with people who\n(a) consider themselves Christians (you define it), and\n(b) are in the Martial Arts\n\nSome topics for discussion:\n\t- your particular martial art\n\t- your view of the relationship between\n\t\tChristianity and your art\n\t- your view of the relationship between\n\t\t*your* Christianity and your art\n\t- why should a Christian participate in MA\n\t- why shouldn't a Christian participate in MA\n\t- Biblical views of MA; pro or con.\n\nFor example, I heard from one fellow:\n\t\"...I tried the Karate for Christ thing and it wasn't for me...\"\n\t- why or why not?\n\nAs an aside, I am involved (in *NO* official way) with an\norganization called the Christian Black Belt Association and\nI would also like to distribute info regarding upcoming events\nto *those who are interested*.  No, you won't be put on any\n\"mailing list\" nor will your name be \"sold\".\n\nHowever, if you ARE intested in an email list, let me know.\n\nI am interested in email replies ONLY as this is cross-posted \nto groups I don't normally read.  If anyone wants a summary\nor, of course, on-going discussion, then let me know.\n\n\nShalom,\nRobert Switzer\nka2czu@cbnewsh.att.com\n-- \nBell Labs, 200 Laurel Ave., 2b-334, Middletown, NJ 07748-4801 USA (908)957-2923\n...-.-    Amateur Radio Operator           KA2CZU   Robert Switzer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1406, "properties": {"category": "talk.politics.guns", "text": "From: ghm@sserve.cc.adfa.oz.au (Geoff Miller)\nSubject: Re: Ban All Firearms !\nOrganization: Australian Defence Force Academy, Canberra, Australia\nLines: 18\n\njrm@gnv.ifas.ufl.edu writes:\n\n>\tFirearms tend to fall into this low dollar/pound area.\n>\tIt would not be economic to smuggle them in. All production\n>\twould have to be local. There are not all that many people\n>\twho have both the skill AND motivation to assemble worthwhile\n>\tfirearms from scratch. High-ranking crime figures could\n>\tobtain imported Uzis and such, but the average person, and\n>\taverage thug, would be lucky to get a zip-gun - and would\n>\tpay through the nose for it. \n\nSo why did the Australian Customs Service make a public statement to\na parliamentary committee last year that weapons smuggling was a problem\nwhich it was not able to control?  Possibly criminals don't have your \ngrasp of economics?\n\nGeoff Miller  (g-miller@adfa.edu.au)\nComputer Centre, Australian Defence Force Academy\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1407, "properties": {"category": "sci.med", "text": "From: jperkski@kentcomm.uucp (Jim Perkowski)\nSubject: Re: jiggers\nDistribution: world\nX-NewsSoftware: GRn 1.16f (10.17.92) by Mike Schwartz & Michael B. Smith\nOrganization: Privately owned and operated UUCP site.\nLines: 26\n\nIn article <1ppae1$bt0@bigboote.WPI.EDU> susan@wpi.WPI.EDU (susan) writes:\n> a friend of mine has a very severe cause of jiggers -\n> for over a year now - they cause him a lot of pain.\n>\n> i recently read (i don't know where) about a possible\n> cure for jiggers.  does anyone have any information on\n> this?  i can't remember the name of the treatment, or\n> where i read it.\n>\n\nI'll probably get flamed for this, but when I was a kid we would go to\nmy uncles cabin on Middle Bass Island on Lake Erie. We always came home\nwith a nasty case of jiggers (large red bumps where the buggers had\nburrowed into the skin). My mother would paint the bumps with clear\nfinger nail polish. This was repeated daily for about a week or so. The\napplication of the polish is supposed to suffocate them as it seals of\nthe skin. All I can say is it worked for us. One word of caution\nthough. Putting finger nail polish on a jigger bite stings like hell.\n\n(If I do get flamed for this just put jam in my pockets and call me\ntoast.:)\n\n--\n_______________________________________________________________________________\nkentcomm!jperkski@aldhfn.akron.oh.us (and) kentcomm!jperkski@legend.akron.oh.us\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1408, "properties": {"category": "comp.sys.mac.hardware", "text": "From: winstead@faraday.ece.cmu.edu (Charles Holden Winstead)\nSubject: ftp site for Radius software???\nOrganization: Electrical and Computer Engineering, Carnegie Mellon\n\nHey All,\n\nDoes anyone know if I can ftp to get the newest version of Radiusware\nand soft pivot from Radius?  I bought a pivot monitor, but it has an\nold version of this software and won't work on my C650, and Radius said\nit would be 4-5 weeks until delivery.\n\nThanks!\n\n-Chuck\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1409, "properties": {"category": "rec.motorcycles", "text": "From: shz@mare.att.com (Keeper of the 'Tude)\nSubject: Re: Live Free, but Quietly, or Die\nOrganization: Office of 'Tude Licensing\nNntp-Posting-Host: binky\nLines: 7\n\nIn article <1qegpf$d0i@sixgun.East.Sun.COM>, egreen@east.sun.com (Ed Green - Pixel Cruncher) writes:\n> I know it sounds ludicrous for a biker to advocate restrictions on\n> biking in a biking forum,\n\nDon't you mean \"former motorcyclist?\"\n\n- Roid\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1410, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: My Gun is like my American Express Card\nDistribution: usa\n <93104.231 <1993Apr15.184452.27322@CSD-NewsHost.Stanford.EDU>\nLines: 44\n\nIn article <1993Apr15.184452.27322@CSD-NewsHost.Stanford.EDU>,\nandy@SAIL.Stanford.EDU (Andy Freeman) says:\n>\n>In article <93104.231049U28037@uicvm.uic.edu> Jason Kratz                     >\n><U28037@uicvm.uic.edu\n>>All your points are very well taken and things that I haven't considered as\n>>I am not really familiar enough with handguns.\n>\n>That's not all that Kratz doesn't know.\n>\n>>Hell, a Glock is the last thing that should be switched to.  The only thing\n>>that I know about a Glock is the lack of a real safety on it.  Sure there is\n>>that little thing in the trigger but that isn't too great of a safety.\n>\n>Now we know that Kratz doesn't understand what a safety is supposed to\n>do.  (He also confuses \"things he can see\" with \"things that exist\";\n>Glocks have multiple safeties even though only one is visible from the\n>outside.)\n>\nExcuse me but I do know what I safety is supposed to do.  It's basic purpose -\nnot to let the gun fire until you're ready.  Christ, I've known that since I\nhad my first Crosman air gun.  You don't know me so don't make assumptions\nabout what I know and don't know.  I do know that the Glock has multiple\nsafties from reports, looking at them at a gun shop, and friends who own one.\n\n>A safety is supposed to keep the gun from going off UNLESS that's\n>what the user wants.  With Glocks, one says \"I want the gun to go\n>off\" by pulling the trigger.  If the safeties it has make that work,\n>it has a \"real\" safety, no matter what Kratz thinks.\n>\n>-andy\n>--\nFrom the things I have read/heard Glocks are always knocked because of the\ntrigger safety.  They are supposedly harder to learn to use properly.  Every\narticle that I have read can't be wrong about the damn thing.  And don't ask\nme to quote my sources because I don't keep a ton of gun magazines and/or\nrec.guns articles laying around.  Boy, you can't make a simple statement on\nhere without someone getting right on your ass.  No wonder why there are so\nmany problems in the world.  Everyone takes everything just a little too\nseriously.  By the way,  I'm not going to reply to any of this stuff anymore as\nsomeone made the good point that this discussion is getting too close to r.g\n(And yes I know that I had something to do with that).\n\nJason\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1411, "properties": {"category": "rec.motorcycles", "text": "From: infante@acpub.duke.edu (Andrew  Infante)\nSubject: Re: Should liability insurance be required?\nDistribution: usa\nOrganization: Duke University; Durham, N.C.\nLines: 22\nNntp-Posting-Host: north1.acpub.duke.edu\n\nIn article <1993Apr14.125209.21247@walter.bellcore.com> fist@iscp.bellcore.com (Richard Pierson) writes:\n>Lets get this \"No Fault\" stuff straight, I lived in NJ\n>when NF started, my rates went up, ALOT. Moved to PA\n>and my rates went down ALOT, the NF came to PA and it\n>was a different story. If you are sitting in a parking\n>lot having lunch or whatever and someone wacks you guess\n>whose insurance pays for it ? give up ?  YOURS.\n\nOnly if you have a weeny insurance company. Unless it's\nsome stupid PA law.  I know that if some jerk hits me while \nI'm in a parking lot, if my insruance company doesn't sue\nhis (or his doesn't immediately say, 'Yes, it's his fault')\nI'll sure him myself and tell my insurance company to go to\nhell if they raise my rates.\n\n\n\n-- \nAndy Infante  | You can listen to what everybody says, but the fact remains   |\n'71 BMW R60/5 | that you've got to get out there and do the thing yourself.   | \nDoD #2426     |                             -- Joan Sutherland                | \n==============| My opinions, dammit, have nothing to do with anyone else!!!   | \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1412, "properties": {"category": "sci.crypt", "text": "From: bob@natasha.portal.com (Bob Cain)\nSubject: Re: Pgp, PEM, and RFC's (Was: Cryptography Patents)\nOrganization: Oce Graphics USA\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 41\n\nCharles Kincy (ckincy@cs.umr.edu) wrote:\n: \n: All I have to say is...yeah, right.  If you're willing to pay them\n: mucho big bucks and/or use the routines *they* tell you to do.  \n: Doesn't sound very reasonable to me.\n\nAll I have to say is this is full of shit.  I have negotiated a license\nand the bucks are incredibly reasonable with an upfront charge on a\nsliding scale depending on your capitalization.  If you are a startup\nand can't afford it you can't afford to start up in the first place.\nWhy do people insist on making unequivocal statements about that which\nthey know nothing.\n\n: \n: But I don't guess PKP and RSA are interested in big bucks.  Maybe\n: they have some other agenda?  Secure communications only for \n: government agents, perhaps?\n\nHave you considered treatment for paranoia?  The government is the\nsingle biggest thorn in RSA's side.\n\n: \n: Some limitation.  Let me guess:  don't use the code in any way PKP or\n: RSA doesn't like....such as...providing secure communications for the\n: average citizen.\n\nThat was exactly its purpose if you know anything about it.  There is\nnothing at all preventing the average citizen using it, only selling\nit.\n\n: \n: I hope my cynicism is misplaced here.  Go ahead...I'm not afraid to\n: be wrong every once in a while.  But, I have an uneasy feeling that I\n: am right.  :(\n\nIt is and you are wrong yet you emotionally state a bunch of crap as fact\nwith a tiny disclaimer at the end.  Check your facts first and grow up.\nWhy is there such a strong correlation between interest in cryptography\nand immaturity I wonder.\n\nBob Cain (normally rcain@netcom.com)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1413, "properties": {"category": "talk.politics.guns", "text": "From: feustel@netcom.com (David Feustel)\nSubject: Government Exlanations for WACO\nOrganization: DAFCO: OS/2 Software Support & Consulting\nLines: 8\n\nWhen you have no principles, you can't admit that someone else might,\nand everyone who acts differently from what you expect can only be a nutcase.\n-- \nDave Feustel N9MYI <feustel@netcom.com>\n\nI'm beginning to look forward to reaching the %100 allocation of taxes\nto pay for the interest on the national debt. At that point the\nfederal government will be will go out of business for lack of funds.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.067+0000", "event": "documents", "entityId": 1414, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: harter5255@iscsvax.uni.edu\nSubject: Help on hand scanners wanted\nOrganization: University of Northern Iowa\nLines: 30\n\nFellow netters,\n\nI'm in the market for a hand scanner.  However, I don't know anyone who has\none.  I have my eye on two choices.\n\nDexxa:  This scanner is available at Wal-Mart for $90.  It includes GrayWorks\nsoftware and provides 400 dpi and 32 grayscales (I think).  The OCR software\nCatchword is available through mail-order for about $90 also.\n\nMustek:  (Gray Artist for Windows)  This scanner offers 256 grayscales\n(according to Cad & Graphics) and 800 dpi.  It is available for $169\nmail-order and comes with Perceive OCR and Picture Publisher LE.\n\nI am also looking at a Genius hand scanner (B105) from Cad & Graphics.  It\nis basically the same as the Mustek scanner except for the resolution (400\ndpi) and price ($149).  \n\nBasically, I would like recommendations on which to buy.  I have heard that\nLogitech makes the best and manufactures Dexxa scanners.  But which one is the\nbest buy?  Would 800 dpi really be helpful (output would be no better than HP\nLaserJet III or Canon BJ-200 - 300x300 to 360x360)?  I am leaning toward the\nMustek because it offers the most features and is in the middle in terms of\nprices.  Which should I buy?\n\nIf you have a hand scanner, please let me know whether or not you would\nrecommend it.  Also, if you know of another scanner within the price range\n(under $225) that would be a better deal, please E-Mail me.  Any and all help\nwould be greatly appreciated.\n\n- Kevin Harter\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1415, "properties": {"category": "talk.religion.misc", "text": "From: king@ctron.com (John E. King)\nSubject: Re: After 2000 years, can we say that Christian Morality is oxymoronic?\nOrganization: Cabletron Systems Inc.\nLines: 16\nNNTP-Posting-Host: saturn.ctron.com\nTo: \"Andrew A. Houghton\" <ah0i+@andrew.cmu.edu>\n\n\n\nAndrew A. Houghton\"  writes:  \n\n>I'm still waiting to hear a good response from a christian type..  how\n>is christ's word (as quoted by Paul) reconciled with current christian\n>beliefs?\n\nAlmost one third of the world's population claim to be Christian.  But\nany similarity between their beliefs and lifestyle to the first century\nmodel is purely coincidental.  At Luke 18:8 it states, \"...nevertheless,\nwhen the son of man returns, will he really find the faith on the earth?\"\n\n\nJack\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1416, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: What to do if you shoot somebody\n <1993Apr18.061532.3288@uoft02.utoledo.edu>\nLines: 40\n\nIn article <1993Apr18.061532.3288@uoft02.utoledo.edu>,\nsteiner@jupiter.cse.utoledo.edu (Jason 'Think!' Steiner) says:\n>\n>Jason Kratz (U28037@uicvm.uic.edu) writes:\n>>\n>> Say you're in a situation where you have to pull a gun on somebody.\n>>  You give them a chance to get away but they decided to continue in\n>> their action anyway and you end up shooting and killing them.  My\n>> question is what do you do?  Should you stay and wait for the cops\n>> or should you collect your brass (if you're using a semi-auto) and\n>> get out of there (provided of course you don't think that you have\n>> been seen)?  What kind of laws are on the books regarding this type\n>> of situation?  What would be the most likely thing to happen to you\n>> if you stayed and waited and it was a first offense?  What would\n>> happen if you took off but someone saw you and you were caught?\n>\n>ghods. do you have -any- idea how much trouble you'd get into for\n>taking off like that? leaving the scene of an auto accident is bad\n>enough! killing someone & leaving is 10 times worse. who's going\n>to seriously believe it was self-defense when you took the time\n>to collect your spent casings? \"But officer, I reload!\"\n>\nWell, like someone said in a reply to this it really all depends on the area\nthat you live in.  See David Veal's reply to this.  I have heard exactly the\nsame thing that he said in his reply - to fade away if you think that you\nhaven't been seen (I heard this from a police officer).  For the record though\nhe was talking about in Tennessee - not everywhere.\n\n>even if you could get away with it, you're still a fugitive. do\n>it nice & legal, keep your law-abiding status & send your story\n>into the Armed Citizen column of American Rifleman.\n>\n>jason\n>\n>--\nJason - u28037@uicvm.cc.uic.edu\n\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1417, "properties": {"category": "sci.electronics", "text": "From: martinkm@leland.Stanford.EDU (Kenneth michael Martin)\nSubject: PADS model of a 68hc11.\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 5\n\nHas anyone done a model of the 52 pin version of the 68hc11?  It doesn't\nseem to be too big a job, but if someone else has already done it ...\n\nmany thanks\nKen Martin\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1418, "properties": {"category": "comp.graphics", "text": "Organization: Stanford Linear Accelerator Center\nFrom: <RCB@SLACVM.SLAC.STANFORD.EDU>\nSubject: Re: Sphere from 4 points?\nDistribution: world\nLines: 21\n\n\n> From: bolson@carson.u.washington.edu (Edward Bolson)\n\n> Given 4 points (non coplanar), how does one find the sphere, that is,\n> cnter and radius, exactly fitting those points?\n\nThe equation of the sphere through the 4 points (x1,y1,z1),...,(x4,y4,z4) is\n  | x^2+y^2+z^2  x1^2+y1^2+z1^2  ...  x4^2+y4^2+z4^2 |\n  |      x             x1        ...        x4       |\n  |      y             y1        ...        y4       | = 0\n  |      z             z1        ...        z4       |\n  |      1             1         ...        1        |\nWhen this 5 by 5 determininant is expanded on its first column you get the\nequation in the form\n  A(x^2+y^2+z^2) + Bx + Cy + Dz + E = 0\nIf you need the center and radius, jyst divide through by A (it cannot be\nzero if the 4 given points form a non-degenerate tetrahedron) and complete\nthe square on x, y, and z to obtain\n  (x-xc)^2 + (y-yc)^2 + (z-zc)^2 = r^2\n\nrcb@slacvm.slac.stanford.edu (Bob Beach)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1419, "properties": {"category": "sci.med", "text": "From: turner@reed.edu (Havok impersonated)\nSubject: Re: Is MSG sensitivity superstition?\nArticle-I.D.: reed.1993Apr16.170752.6312\nOrganization: Reed College, Portland, OR\nLines: 35\n\nIn article <1qlgdrINN79b@gap.caltech.edu> carl@SOL1.GPS.CALTECH.EDU writes:\n>In article <1993Apr15.173902.66278@cc.usu.edu>, slyx0@cc.usu.edu writes:\n>=Surprise surprise, different people react differently to different things. One\n>=slightly off the subject case in point. My brother got stung by a bee. I know\n>=he is allergic to bee stings, but that his reaction is severe localized\n>=swelling, not anaphylactic shock. I could not convince the doctors of that,\n>=however, because that's not written in their little rule book.\n>Of course, bee venom isn't a single chemical.  Could be your brother is\n>reacting to a different component than the one that causes anaphylactic shock\n>in other people.\n\nHmmm.  The last time I got stung by a bee I experienced the same reaction\nthe first poster's brother did.  We went off to the doctor to see if I\nshould worry about the fact that my foot was now about 3 times it's normal\nsize.  (And itched!!!  Ow!)  He basically said I shouldn't this time, but\nthat bee sting allergy was not something you tended to get aclimatized to,\nbut were something that each time got progressively worse generally and that\nnext time could be the time I go into anaphylactic shock.  Admittedly this\nwas many years ago when I was young.  Since then I just make sure I don't\nget stung.  I also should carry a bee sting kit with me, but I don't.  \n\nThis isn't scientific or proof, but this would lead me to believe it's not a\ndifferent reaction, just a different degree of reaction.  Allergies work\nthat way.  People have various reactions.  Sort of like diabetes, some\npeople can get by with just monitoring their diet, others have to monitor\ntheir diet and use insulin sometimes while others have to watch their diet\nlike a hawk and use insulin regularly.  \n\nI think MSG is probably similar...some people have allergic reactions to\nit.  Some people are allergic to fermented things and can't use soy\nsauce...but the chinese have been using it for centuries... that doesn't\nnecessarily mean that it's safe for everyone.  \n\n\tJohanna\nturner@reed.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1420, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mark@bilpin.co.uk (Mark Allerton)\nSubject: FOR SALE - MACINTOSH SE/30\nOrganization: SRL Data\nLines: 26\nX-Useragent: Nuntius v1.1\n\nFOR SALE\n\nApple Macintosh SE/30\n8MB RAM, 80MB HD\nSystem 7.1 Installed\nRasterOps 264/30 24-bit video card for SE/30\nApple 13\" Monitor\nTargus carrying case\n\nI'm after offers in the region of 1250 pounds. I'm in the\nnorth London area.\n\nContact Mark Allerton\nE-Mail:\npascal@cix.compulink.co.uk\nmark@bilpin.co.uk\n\nPhone:\n081 341 6400 (evenings/weekends)\n071 267 2561 (office hours)\n+-----------------------------------+\n| Mark Allerton\t\t\t\t\t\t|\n| SRL Data\t\t\t\t\t\t\t|\n| mark@bilpin.co.uk\t\t\t\t\t|\n| pascal@cix.compulink.co.uk\t\t|\n+-----------------------------------+\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1421, "properties": {"category": "misc.forsale", "text": "From: Peter Todd Chan <pc1o+@andrew.cmu.edu>\nSubject: Klipsch Forte 2 SPKRS 4 Sale\nOrganization: Fifth yr. senior, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 14\nNNTP-Posting-Host: po3.andrew.cmu.edu\n\nITEM: Klipsch Forte 2 Speakers\nCONDITION: Mint\nAGE: 6 months old\n\nPRICE: $1000/pair (retail: $1400/pair)\n\nThese speakers are in perfect condition and used only in audiophile system.\nThey are floor standing and come with all the original packagaing and\nliterature. They are also still under warranty. If you are interested or\nhave  any questions, please feel free to e-mail (pc1o@andrew.cmu.edu) or call\nme at home.\nThanks,\nJon\n(412) 882-6425\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1422, "properties": {"category": "sci.crypt", "text": "From: pdh@netcom.com (P D H)\nSubject: Re: An Open Letter to Mr. Clinton\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 105\n\nld231782@LANCE.ColoState.Edu (L. Detweiler) writes:\n\n>I'm quite astonished, shocked, and appalled at this serious frontal \n>assault on emerging American freedoms.  The Clinton administration \n>nor any other government agency has any legitimate role whatsoever \n>in regulating cryptography. To do so is tantamount to regulating \n>`acceptable' speech, and is blatantly unconstitutional. Perhaps we \n>should rename this year `1984' in honor of such an illustrious \n>proposal.  Let the Crappy Chip live in infamy, and the adminstration\n>receive great shame and discredit for this bizarre misadventure.\n\nIMHO, encryption is (also) protected under the SECOND amendment of\nthe Constitution of the United States.\n\n\n>I am outraged that my tax money is being used to develop technology\n>to restrict my freedoms far beyond reasonable measures.  The U.S.\n>government will have my full uncooperation and disobedience on any\n>serious threat to my liberties such as this, and I call on everyone\n>with an interest in a sensible government to resist and defy this \n>proposal.  The administration does not seem to understand that they\n>are merely a subservient instrument to implement the will of the\n>public, and hence anyone involved in this proposal in this respect is \n>wholly negligent and remiss in performing their lawful duty.\n\nI am not surprised that this administration is doing this.\nI could have told you so.\n\n\n>Cryptography is neutral technology. If everybody has strong \n>cryptography (including policemen, bureacrats, businessmen, \n>housewives, thugs and hoodlums), we have a sustainable \n>equilibrium.  Anything less is an unworkable anti-egaltarian \n>arrangement, intrinsically antithetical to American freedoms, and\n>guaranteed to collapse under its own weight of inherent \n>impracticality. We don't need to compromise on issues of freedom.\n\nPrivacy has ALWAYS been something that has the effect of restricting\nout ability to prosecute criminals.  We are supposed to have the\npresumption of innocence.\n\nI have the right to pull the curtains over my windows and close my\ndoor, and the police may not come in.  If I perform a crim in my home,\nthey will have to find out by means other than simply looking.\n\nEncryption is to my data as the window curtains are to my home.\nSimple enough?\n\n\n>For too long our government has demonstrated itself to be \n>increasingly hostile and a serious obstacle to economic vitality \n>and protecting Americans.\n\nAnd yet the people vote for these people because they come out a lie\nto them about promising to fix things.\n\n\n>The administration has to be committed to leaving private \n>industries alone, esp. on this issue.  The government has no \n>legitimate role in regulating the content of communications.\n>Law enforcement agencies must be prepared to forfeit their\n>surveillance bludgeon; they are soon and inevitably to be \n>disarmed of it. \n\nYou mean they might have to go back to actually WORKING to do their job?\nOh heavens.\n\n\n>No such laws can be constitutionally sound, and this is equivalent\n>to a veiled threat, which I don't appreciate.  This kind of \n>extortion tends to agitate me and others into radicalism. I will\n>trade threats for threats, and violation for violation.\n\nPerhaps the FIRST amendment.  Definitely the SECOND and FIFTH.\n\n\n>If the administration did say this, it would find itself \n>impeached for reckless and outrageous disregard of essential,\n>established, entrenched, and explicit constitutional privacy \n>guarantees. The administration would have no legal standing \n>whatsoever; such an action would be egregiously illegal and\n>criminal, and wholly untolerated and disregarded by vast \n>segments of the population.\n\nUnfortunately, the vast segments of the population are misinformed.\nThey just haven't appended -SR to the name of out country, yet.\n\n\n>This is an outright Dingaling Denning lie.  The two aims of\n>privacy and surveillance are intrinsically and fundamentally \n>incompatible, and you have to work for the NSA to think otherwise. \n>Americans are about to discover ways, through the use of technology, \n>to preserve their inalienable but forgotten freedoms that have slowly \n>been eroded away by an increasingly distant and unresponsive and \n>*unrepresentative* government.\n\nI seriously doubt that the NSA thinks that privacy and surveillance are\ncompatible.  I doubt of any smart person in any other agency thinks\nso, either.  The PROBLEM is that they simply hold PRIVACY to be of no\nvalue at all.\n-- \n| Phil Howard,  pdh@netcom.com,  KA9WGN         Spell protection?  \"1(911)A1\" |\n| Right wing conservative capitalists are out to separate you from your MONEY |\n| Left wing liberal do gooders are out to separate you from EVERYTHING ELSE!! |\n+-----------------------------------------------------------------------------+\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1423, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gsnow@clark.edu (Gary Snow)\nSubject: Re: WARNING! Don't break Powerbook screen\nArticle-I.D.: clark.1993Apr6.210853.26502\nOrganization: Clark College, Vancouver, Wa.  USA\nLines: 20\n\nIn article <D2150035.ub9c68@outpost.SF-Bay.org> peirce@outpost.SF-Bay.org (Michael Peirce) writes:\n>\n>Surprised? Shouldn't be.  Protective tarriffs almost always end up\n>hurting the U.S. in the long run.  Same with subsidies.  they way\n>to build a strong economy isn't to wall it off from the tough outside\n>world, but rather to compete in the global market place (and don't\n>come crying when the world doesn't always want to play by our house\n>rules).\n\nTell that to the Japanese, their local market is neatly protected by\nthe Japanese government. Its one very tough nut to crack. In fact\nthe only current way to break into it, is to do it with a Japanese\ncompany as a partner in the venture.\n \nGary\n\n-- \n-----\nGary Snow\nuunet!clark!gsnow  or  gsnow@clark.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1424, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bcasavan@cougar.ecn.uoknor.edu (Brent Casavant)\nSubject: Diamond Viper\nSummary: Want information\nNntp-Posting-Host: cougar.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nKeywords: Any problems?\nLines: 16\n\nHi folks,\n\nAt the end of the summer I'm planning on getting a new computer (486DX50 or\n486DX2/66) and have been poking around in Computer Shopper.  Anyway I saw\nthe ads for the Diamond Viper (Local Bus, 2MB memory, 50 million+ WinMarks)\nand was wondering if anyone has had any experience with it (good/bad/not worth\nthe money/etc.)  Any information at all would be nice.\n\nAlso, a few other questions.  Anyone know of a good cheap 15\"+ 1024x768 NI\nmonitor?  And what is a good CD-ROM drive that meets MPC standards and is\ncontrolled via SCSI?  How about a 250MB tape drive on SCSI?\n\nThanks for your time,\nBrent Casavant\nbcasavan@mailhost.ecn.uoknor.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1425, "properties": {"category": "comp.graphics", "text": "From: ad994@Freenet.carleton.ca (Jason Wiggle)\nSubject: PCX\nOrganization: National Capital Freenet, Ottawa, Canada\nLines: 27\n\n\nHello\n\tHELP!!! please\n\t\tI am a student of turbo c++ and graphics programming\n\tand I am having some problems finding algorithms and code\n\tto teach me how to do some stuff..\n\n\t1) Where is there a book or code that will teach me how\n\tto read and write pcx,dbf,and gif files?\n\n\t2) How do I access the extra ram on my paradise video board\n\tso I can do paging in the higher vga modes ie: 320x200x256\n\t800x600x256\n\t3) anybody got a line on a good book to help answer these question?\n\nThanks very much !\n\nsend reply's to : Palm@snycanva.bitnet\n\nPeace be\nBlessed be\nStephen Palm\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1426, "properties": {"category": "rec.motorcycles", "text": "From: lusky@ccwf.cc.utexas.edu (Jonathan R. Lusky)\nSubject: Kawasaki ZX-6 engine needed\nReply-To: lusky@ccwf.cc.utexas.edu (Jonathan R. Lusky)\nDistribution: usa\nOrganization: UT SAE / Longhorn Racing Team\nLines: 14\nOriginator: lusky@sylvester.cc.utexas.edu\n\nI'm looking for a 1990-91 Kawasaki ZX-6 engine.  Just the engine,\nno intake, exhaust, ignition, etc.  Preferably in the central texas\narea, but we haven't had much luck around here so we'll take whatever we\ncan get.  Please reply via mail or call (512) 471-5399 if you have one\n(or more...  really need a spare).\n\nThanx\n\n-- \n--=< Jonathan Lusky ----- lusky@ccwf.cc.utexas.edu >=-- \n    \\ \"Turbos are nice, but I'd rather be blown!\" /\n     \\    89 Jeep Wrangler - 258/for sale!       / \n      \\        79 Rx-7 - 12A/Holley 4bbl        / \n       \\________67 Camaro RS - 350/4spd________/ \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1427, "properties": {"category": "talk.politics.guns", "text": "From: ccdarg@dct.ac.uk (Alan Greig)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Dundee Institute of Technology\nLines: 22\n\nIn article <C5tEnu.112F@ns1.nodak.edu>, green@plains.NoDak.edu (Bill Green) writes:\n\n> And a few other questions.  Like I said, I believe the actions taken, in\n> general, were proper.  But I still have some reservations.\n\nWe've heard a lot of talk about brainwashing in Waco but the brainwashing\nof the general population never ceases to amaze me. Here is an\nexample of action being taken which results in the worst possible\noutcome and despite people's deep intuition telling them something\nis wrong the programming will still cut in and say that the\nagents probably acted in good faith. NO THEY DIDN'T. They either did\nnot have enough information to act in good faith or else they acted\nknowing the risk. Sums up human stupidity all over and one of these\ndays it will destroy the fucking planet: \"Oh sorry. Didn't think they\nwould respond by launching a strike. All our best calculations told\nus they were bluffing.\"\n\n-- \nAlan Greig                            Janet: A.Greig@uk.ac.dct\nDundee Institute of Technology\t   Internet: A.Greig@dct.ac.uk\nTel: (0382) 308810                 (Int +44 382 308810)\n         ** Never underestimate the power of human stupidity **\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1428, "properties": {"category": "misc.forsale", "text": "From: kpeterso@nyx.cs.du.edu (Kirk Peterson)\nSubject: IBM software for sale, cheap!\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 76\n\n\nFor Sale...:\n \n        Three software packages for IBM PC and compatible computers:\n \n \n                o Wing Commander deluxe edition\n                o Includes Secret Missions 1 & 2\n                o Includes all original packaging, manuals\n                  and disks\n                o Includes registration card (so you can\n                  send it in and register it in your name)\n                o Original price for Wing Commander: $69.95\n                o Original price for Secret Missions I: $29.95\n                o Original price for Secret Missions II: $29.95\n                o Total original price: $129.85\n                o My asking price for all these of these\n                  games TOGETHER is $65.00\n                o Wing Commander and the Secret Missions is a\n                  battle and flight simulator set in space.  It\n                  includes all the standard fun things about\n                  flight simulators, like taking off and landing\n                  on carriers, flying -- of course -- and better\n                  yet, it is also a battle simulator.  It is a\n                  lot of fun, indeed.\n                o An IBM PC or compatible with at least 640K, and\n                  dual floppies or a hard drive is required.\n \n \n                o WinWay Resume for Windows\n                o Includes all original packaging, manuals\n                  and disks\n                o Original price: $50.00\n                o My asking price: $35.00\n                o WinWay Resume is a resume writing program for\n                  Windows.  It is an excellent program (it got\n                  me a job!) and running under the Window's\n                  interface makes it very, very easy to use.  All\n                  you do is answer a few questions, and print out\n                  the results.  In just a few minutes, you have a\n                  beautifully and professionally designed resume.\n                o An IBM PC with Windows 3.0 or later installed\n                  and 1 MB of free hard disk space is required.\n \n \n                o More Typefaces\n                o Includes all original packaging, manuals\n                  and disks\n                o Original price: $99.99\n                o My asking price: $30.00\n                o More Typefaces is a package of three TypeType\n                  font families (for a total of twelve fonts) for\n                  Windows 3.1.  The fonts included are: Marque,\n                  Crystal and Architech, and of course italic,\n                  bold and bold italic versions are included with\n                  all those fonts.  Because of the unique font\n                  software included with the package, these fonts\n                  can be used with either the MoreFonts typeface\n                  program, Adobe Type Manager, TrueType, GeoWorks,\n                  Express Publisher and CorelDRAW.\n                o An IBM PC with Windows 3.1 and a hard disk is\n                  required if you want to use the typefaces in\n                  TrueType format.  For all other formats, an\n                  IBM PC and a hard disk with one of the programs\n                  listed above is required.\n \n \n        If you are interested in any of these programs, please\neither leave me email or call Kirk Peterson at (303) 494-7951,\nanytime.  If I don't answer, leave me a message on my answering\nmachine and I'll call you back.  I will pay the shipping on all\nof the programs to anywhere in the continental United States.\n \n        Thank you!\n \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1429, "properties": {"category": "talk.politics.guns", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: What to do if you shoot somebody\nLines: 29\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <93108.025818U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n\n>I have heard many opinions on this subject and would like to hear more from\n>the people on the net.\n>\n>Say you're in a situation where you have to pull a gun on somebody.  You\n>give them a chance to get away but they decided to continue in their\n>action anyway and you end up shooting and killing them.  My question is\n>what do you do?  Should you stay and wait for the cops or should you\n>collect your brass (if you're using a semi-auto) and get out of there\n>(provided of course you don't think that you have been seen)?  \n\n       As a data point from Tennessee, a friend of mine and a police\nofficer essentially recommends that if you can, fade away.  Even if\nyou were perfectly justified you're likely in for a great deal of \nhassle.  (A side note, carrying a gun concealed is a misdemeanor.)\n\n>What kind\n>of laws are on the books regarding this type of situation?  What would\n>be the most likely thing to happen to you if you stayed and waited and\n>it was a first offense?  What would happen if you took off but someone\n>saw you and you were caught?\n\n       It's one of those \"by State\" things, pretty much.  \n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1430, "properties": {"category": "alt.atheism", "text": "From: wilkins@scubed.com (Darin Wilkins)\nSubject: Re: KORESH IS GOD!\nNntp-Posting-Host: renoir\nOrganization: S-CUBED, A Division of Maxwell Labs; San Diego CA\nLines: 22\n\n>>FROM:   mathew <mathew@mantis.co.uk>\n>>The latest news seems to be that Koresh will give himself up once he's\n>>finished writing a sequel to the Bible.\n\nIn article <2944079995.1.p00261@psilink.com> \"Robert Knowles\" <p00261@psilink.com> writes:\n>Writing the Seven Seals or something along those lines.  He's already\n>written the first of the Seven which was around 30 pages or so and has\n>handed it over to an assistant for PROOFREADING!.  I would expect any\n>decent messiah to have a built-in spellchecker.  Maybe Koresh 2.0 will\n>come with one.\n\nI heard he had asked the FBI to provide him with a word processor.  Does\nanyone know if Koresh has requested that it be WordPerfect5.0?  WP5.0 was\nwritten (and is owned) by Mormons, so the theological implications of\nrequesting (or refusing) WP5.0 are profound!\n\ndarin\nwilkins@scubed.scubed.com\n________________________________\n|                              |\n| I will be President for food |\n|______________________________|\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1431, "properties": {"category": "talk.politics.misc", "text": "From: lfoard@hopper.Virginia.EDU (Lawrence C. Foard)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 47\n\nIn article <1993Apr16.200354.8045@magnus.acs.ohio-state.edu> rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) writes:\n>\n>In article <C5K5LC.CyF@murdoch.acc.Virginia.EDU> lfoard@hopper.Virginia.EDU (La\n>wrence C. Foard) writes:\n>>In article <15378@optilink.com> cramer@optilink.COM (Clayton Cramer) writes:\n>>>\n>>>\n>>>From the Santa Rosa (Cal.) Press-Democrat, April 15, 1993, p. B2:\n>>>\n>>>    Male sex survey: Gay activity low\n>>>\n>>>    A new natonal study on male sexual behavior, the most thorough\n>>>    examination of American men's sexual practices published since\n>>>    the Kinsey report more than four decades ago, shows about 2\n>>>    percent of the men surveyed had engaged in homosexual sex and\n>>>    1 percent considered themselves exclusively homosexual.\n>>>\n>>>    The figures on homosexuality in the study released Wednesday\n>>>    by the Alan Guttmacher Institute are significantly lower than\n>>>    the 10 percent figure that has been part of the conventional\n>>>    wisdom since it was published in the Kinsey report.\n>>\n>>1) So what?\n>\n>So there are less gays, then the gays claim.\n\nLast I checked I was one person, I haven't even been elected\nas a representative for \"gaydom\". Should I ascribe every thing\nyou say as representing every member of the straight community?\n\n>>2) It will be interesting to see the reaction when 2.5million queers\n>>   gather in Washington DC. After all if there are only 6million of\n>>   us then this is an event unprecidented in history...\n>>\n>\n>Dream on.  Abortion and African-American Civil rights rallies don't even bring\n>in half of that.\n\nThats the point. If there are several million queers in DC you had better\nstart wondering about the validity of the study.\n\n-- \n------          Join the Pythagorean Reform Church!               .\n\\    /        Repent of your evil irrational numbers             . .\n \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n  \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n    \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1432, "properties": {"category": "talk.politics.guns", "text": "From: se08+@andrew.cmu.edu (Seth Adam Eliot)\nSubject: reference needed....\nOrganization: Doctoral student, Materials Science and Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 22\n\n\nDoes anybody have any solid data on how many legally owned versus\nillegally owned firearms are used in crime.  I know the number of\nlegally owned guns used in crime is small, but I would like a number,\nand a reference if possible.\n\nData should be e-mailed to me.\nOpen discussion should be directed to talk.politics.guns\n\n-Seth\n\n__________________________________________________________________________\n[unlike cats] dogs NEVER scratch you when you wash them. They just\nbecome very sad and try to figure out what they did wrong. -Dave Barry\n           \nSeth Eliot                    Dept of Material Science and Engineering\n                              Carnegie Mellon Univerity,   Pittsburgh, PA\nARPA    :eliot+@cmu.edu       |------------------------------------------\n   or    se08+@andrew.cmu.edu |\nBitnet:  se08%andrew@cmccvb   |      \n------------------------------|\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1433, "properties": {"category": "soc.religion.christian", "text": "From: rgolder@hoh.mbl.edu (Robert Golder)\nSubject: Re: Pantheism & Environmentalism\nOrganization: Marine Biological Laboratory\nLines: 39\n\nIn article <Apr.13.00.08.04.1993.28376@athos.rutgers.edu>, \nmcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n> \n> In article <Apr.12.03.44.17.1993.18833@athos.rutgers.edu> \nheath@athena.cs.uga.edu (Terrance Heath) writes:\n> >\n> >\tI realize I'm entering this discussion rather late, but I do\n> >have one question. Wasn't it a Reagan appointee, James Watt, a\n> >pentacostal christian (I think) who was the secretary of the interior\n> >who saw no problem with deforestation since we were \"living in the\n> >last days\" and ours would be the last generation to see the redwoods\n> >anyway?\n> \n> I heard the same thing, but without confirmation that he actually said it.\n> It was just as alarming to us as to you; the Bible says that nobody knows\n> when the second coming will take place.\n> \n> -- \n> :-  Michael A. Covington\n\nI do recall Watt making a comment to this effect, though it was quite a few\nyears back and I can't cite the specifics.  I also recall that Cecil Andrus, who\nwas Secretary of the Interior during the Carter Administration, responded\nto Watt's comments by pointing out the stewardship role that God gave\nto man, as recorded in Genesis.  Which makes me wonder: who are the\ntrue conservatives?  It seems to me that a *conservative* should want to\n*conserve* things of value for long-term societal benefit.  This form of\n*conservation* should logically extend to the physical environment in \nwhich people live, as well as the moral environment in which they relate\nto one another and to God.\n\nIMHO, Watt's stewardship status is not enhanced by the fact that he served \non the board of directors for Jim Bakker's organization, during a time in \nwhich Bakker committed criminal acts which eventually landed Bakker \nin federal prison.\n\nBob\nrgolder@hoh.mbl.edu\nJust another Baptist...\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1434, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wayne@amtower.spacecoast.org (Wayne Summer)\nSubject: Re: IDE vs SCSI\nDistribution: world\nReply-To: wayne@amtower.spacecoast.orgX-NewsSoftware: GRn 1.16f (10.17.92) by Mike Schwartz & Michael B. Smith\nOrganization: Wayne's Machine; Palm Bay, Florida\nLines: 33\n\nIn article <1993Apr15.235509.29818@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>\n> I won't argue that the SCSI standard makes for a good, well implimented\n> data highway, but I still want to know why it intrinsically better\n> (than IDE, on an ISA bus) when it comes to multi-tasking OS's when\n> managing data from a single SCSI hard drive.\n\nI have been following this thread and figured I'd throw in my two cents...\n\nThe Amiga Zorro II bus is comparable with the ISA bus (7.16 vs 8.33 MHZ).\nThe Amiga has had a pre-emptative multi-tasking  OS since '85 and can\noperate with 1 MB RAM!  SCSI is used almost exclusively on these systems.\n\nA SCSI controller that transfers data by DMA allows the cpu to request data\nfrom the hard drive and continue working while the controller gets the data\nand moves it to memory.  A controller that allows reselection can operate\neven better with multiple devices.  This is espically true with SCSI tape\nunits.  For example, when rewinding or formatting a tape, the command is\nissued to the controller and the bus is released to allow access to other\ndevices on the bus.  This greatly increases productivity or, at least, do\nsomething else while backing up your hard drive :-).  Which happens to be\nwhat I am doing while reading this group.\n\nIts a long story, but I still use IDE on my 486 except for the CDROM which,\nthanks to SCSI, I can move between both machines.  If, and when, SCSI is\nbetter standardized and supported on the ibm-clone machines, I plan to\ncompletely get rid of IDE.\n--\n  Wayne Summer        //        AMIGA - Simply the Best.\n  Palm Bay, FL. US  \\X/        wayne@amtower.spacecoast.org\n\nQuote of the week: Don't hate microsoft because because they are microsoft,\nthough...hate them because their products are lame - Found in c.s.ibm.pc.misc\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1435, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: apoylis@inode.com\nSubject:  FAQ on Cyrix 486DLC?\nReply-To: apoylis@inode.com\nDistribution: world\nOrganization: inode BBS, NYC's Best Usenet Access (212-679-9146)\nLines: 9\n\nReply-to: apoylis@inode.com\n\nIs there a FAQ on Cyrix 486DLC? If I missed it, could anyone please repost\nor email it to me? Thanks in advance.\n\n... Alexander Poylisher, Internet: apoylis@inode.com; FidoNet: 1:2603/106\n---\n \u00fe Blue Wave/QWK v2.12 \u00fe\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1436, "properties": {"category": "sci.space", "text": "From: globus@nas.nasa.gov (Al Globus)\nSubject: Space Colony Size Preferences Summary\nOrganization: Applied Research Office, NASA Ames Research Center\nReply-To: globus@nas.nasa.gov\nDistribution: sci.space\nLines: 92\n\n\nSome time ago I sent the following message:\n   Every once in a while I design an orbital space colony.  I'm gearing up to\n   do another one.  I'd some info from you. If you were to move\n   onto a space colony to live permanently, how big would the colony have\n   to be for you to view a permanent move as desirable?  Specifically,\n\n   How many people do you want to share the colony with?\n \n\n   What physical dimensions does the living are need to have?  \n\n\n   Assume 1g living (the colony will rotate).  Assume that you can leave\n   from time to time for vacations and business trips.  If you're young\n   enough, assume that you'll raise your children there.\n\nI didn't get a lot of responses, and they were all over the block.\nThanx muchly to all those who responded, it is good food for thought.\n\n\n\n\nHere's the (edited) responses I got:\n\n\n   How many people do you want to share the colony with?\n \n100\n\n   What physical dimensions does the living are need to have?  \n\nCylinder 200m diameter x 1 km long\n\nRui Sousa\nruca@saber-si.pt\n\n=============================================================================\n\n>   How many people do you want to share the colony with?\n\n100,000 - 250,000\n\n>   What physical dimensions does the living are need to have?  \n\n100 square kms surface, divided into city, towns, villages and\ncountryside.  Must have lakes, rivers amd mountains.\n\n=============================================================================\n\n> How many\n1000.  1000 people really isn't that large a number;\neveryone will know everyone else within the space of a year, and will probably\nbe sick of everyone else within another year.\n\n>What physical dimensions does the living are need to have?  \n\nHm.  I am not all that great at figuring it out.  But I would maximize the\npercentage of colony-space that is accessible to humans.  Esecially if there\nwere to be children, since they will figure out how to go everywhere anyways.\nAnd everyone, especially me, likes to \"go exploring\"...I would want to be able\nto go for a walk and see something different each time...\n\n=============================================================================\n\nFor population, I think I would want a substantial town -- big enough\nto have strangers in it.  This helps get away from the small-town\n\"everybody knows everything\" syndrome, which some people like but\nI don't.  Call it several thousand people.\n\nFor physical dimensions, a somewhat similar criterion:  big enough\nto contain surprises, at least until you spent considerable time\ngetting to know it.  As a more specific rule of thumb, big enough\nfor there to be places at least an hour away on foot.  Call that\n5km, which means a 10km circumference if we're talking a sphere.\n\n                                         Henry Spencer at U of Toronto Zoology\n                                          henry@zoo.toronto.edu   utzoo!henry\n\n=============================================================================\nMy desires, for permanent move to a space colony, assuming easy communication\nand travel:\n\nSize:  About a small-town size, say 9 sq. km.  'Course, bigger is better :-)\nPopulation:  about 100/sq km or less.  So, ~1000 for 9sqkm.  Less is\nbetter for elbow room, more for interest and sanity, so say max 3000, min 300.\n\n-Tommy Mac\n-------------------------------------------------------------------------\nTom McWilliams | 517-355-2178 (work) \\\\     Inhale to the Chief!\n18084tm@ibm.cl.msu.edu  | 336-9591 (hm)\\\\  Zonker Harris in 1996!\n-------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.068+0000", "event": "documents", "entityId": 1437, "properties": {"category": "talk.politics.mideast", "text": "From: nstramer@supergas.dazixco.ingr.com (Naftaly Stramer)\nSubject: Peace talks ...\nNntp-Posting-Host: supergas\nReply-To: nstramer@dazixco.ingr.com\nOrganization: Intergraph Electronics\nLines: 23\n\n\nFrom Israeline 4/14\n\nToday's MA'ARIV reports that yesterday, following Egyptian\nPresident Hosni Mubarak's meeting with PLO Chief Yasser Arafat and\nprominent Palestinian Faisal al-Husseini, the latter said that in\nprinciple, the Palestinians have decided to participate in the\npeace talks. Nonetheless, he noted that everything will be decided\nupon at the meeting of the Arab foreign ministers in Damascus. The\nnewspaper also reports that threatening phone calls were recently\nmade to houses of several of the senior members of the Palestinian\ndelegation to the peace talks. The threats, in Arabic, demanded\nthat the delegates not go to Washington to, \"sell out the\nPalestinian people.\" One caller threatened, \"Should you go, you\nwill not find your family alive upon your return.\" The newspaper\nstates that such phone calls were received, as far as is known, at\nthe houses of Faisal al-Husseini, Hanan Ashrawi and others.\n\n----\nNaftaly Stramer \t\t\t | Intergraph Electronics\nInternet: nstramer@dazixco.ingr.com      | 6101 Lookout Road, Suite A    \nVoice: (303)581-2370  FAX: (303)581-9972 | Boulder, CO 80301\n\"Quality is everybody's job, and it's everybody's job to watch all that they can.\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1438, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: robert@weitek.COM (Robert Plamondon)\nSubject: Re: Orchid P9000 vs Fahrenheit (mini review)\nOrganization: WEITEK Corporation, Sunnyvale CA\nLines: 102\n\nIn article <1993Apr16.173120.19289@adobe.com> sherwood@adobe.com \n(Geoffrey Sherwood) writes:\n\n>In going with the modern trend, the Orchid P9000 card only supports 16 colors\n>in 640x480 mode without a driver.  Of course, this breaks any DOS program\n>which uses SVGA modes (like most of my CD-ROMs). \n\nThis is not the case: the ROM on the P9000 supports VESA modes of up to\n1024x768 in 256 colors.  VESA-compliant applications should have no trouble\nsetting these modes. (But I'm forwarding your posting to our Software group,\njust in case.  Can't be too careful.)  Not that I doubt that YOUR applications\nare failing to run; lots of stuff depends on figuring out which exact SVGA\nthey're looking at, and don't use VESA calls (VESA is still pretty new).\nEvery new chip set confuses them.\n\n>The supported resolutions really annoy me.  You can do 1280x1024 at 75Hz if\n>you tell the driver you have an NEC 5FG (they only have about six monitors\n>listed plus 'Generic', and if you choose Generic you can't get any high\n>refreshes at ALL).  But at 1024x768 you are limited to 70Hz.  Seems to me\n>that the hardware should be able to support the bandwidth (if it can do 75Hz\n>at 1280 it sure should be able to do it at 1024!).  Higher vertical resolution\n>was the main reason I bought the card over the Orchid F. VLB I currently have,\n>and it will do 1024x768x70 Hz as well.\n\nI think we go to AT LEAST 76 Hz at 1024x768x8, and maybe more (and\nit's a function of the RAMDAC speed, not the Power 9000). We need to\nfix the problems you've noted (they were already on the list).  If\nyou're really interested, though, take a look at the text file\nP9000RES.DAT, which holds the data from which the choices in the\nP9000 monitor installation program are built.  Working by analogy,\nyou can build up a new monitor definition that has the right\ncombinations of refresh rates for your monitors.  Keep a backup copy\nof the file!  Once you've built a new version of the P9000RES.DAT\nfile, run the P9000 installation program, INST, and your new choices\nshould show up.  (This assumes you have the WEITEK v. 2.2 drivers.\nYou can tell the rev number by looking at the modification time of\nthe driver: 02:20 is version 2.20.  Microsoft uses this gimmick,\ntoo.)\n\n>The board is faster that the OFVLB for most things according to the Hercules\n>Speedy program. This program tests various operations and reports the results\n>in pixels/second.  I don't have the numbers for the Graphite card, but they\n>were close to half of the OFVLB (ie, slower) but that was running in a 20MHz\n>386, ISA, so the numbers aren't really comparable.  The following numbers\n>were all obtained using a 486, 33 MHz, AIR motherboard (UMC chipset), with\n>8 MB memory.  I give ranges because the program reports the numbers as it\n>computes them, and these tend to jump around a bit.\n\nThe SPEEDY benchmark was put out by Hercules and IIT, who to my\nknowledge were unencumbered by any motivations except making the\nHercules Graphite/IIT AGX014 card look really good.  So I'd take the\nnumbers with a ton of salt. (Texas Instruments did the same thing\nwith WINTACH, trying to make the 34020 look good compared to the\n8514, as if anyone cared.)  It's safer (though not safe) to use\nbenchmarks from \"unbiased\" sources, such as testing labs, columnists,\netc.\n\n\n>Interestingly, the solid\n>vectors and shaded polygons show no improvement, and hatched polygons (ie,\n>filled with cross-hatching) and Ternary Rops (whatever they are.  Graphics\n>operations like XORs maybe????) are a dead loss on the 9000.  \n\nI think you'll a large discrepancy between the results of SPEEDY and\nthe results of anything else in the universe on these things.\n\n>I give two\n>numbers for the 9000 fonts, because I think they are caching.\n>When the fonts are first drawn on the screen they are done fairly slowly --\n>1/3 the speed of the OFVLB.  Then the speed increases dramatically.  Sounds\n>like programming to a benchmark to me....\n\nFont caching is a perfectly legitimate optimization -- Windows has\nhooks for it built right into the GDI.  What's kind of silly is IIT's\nuse of a hardwired \"The quick brown fox jumped over the lazy dog then\nsat on a tack\" string in their driver.  Not only is it useless in\nreal applications, it lacks the programming elegance of the \"Bart\nSimpson optimization,\" in which you save the bitmap of the\nmost-recently drawn string in off-screen memory, and just do a\nscreen-to-screen bitblit if you happen to be given that same string a\nsecond time in a row.  (We call it the \"Bart Simpson optimization\"\nbecause Bart's the only person we can see benefiting from it: he\ncould right \"I will not cheat on benchmarks\" a hundred times and be\ndone in half the time it would take to actually form each character.)\n\n>I make no claims that these numbers mean anything at all.  Its just what\n>I saw when I ran them on my computer.  I normally don't write disclaimers,\n>but this time maybe I'd better.  My testing is totally unconnected with my\n>work (I program under UNIX on Decstations) is done completely without the\n>knowledge, blessing, or equipment of my company.\n\nWe don't have any lawyers -- they're all working for Intel.  There\nused to be a lawyer in Montana who didn't, but he died.\n\n\t-- Robert\n\n\n-- \n\t\t\t    Robert Plamondon, robert@weitek.COM\n\"Pay no attention to the man behind the curtain. I, the Great and\nGlorious Oz, have spoken!\"\n\t\t\t\t-- scene from a trade show\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1439, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Ind. Source Picks Baerga Over Alomar: Case Closed \nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nDistribution: na\nLines: 24\n\nIn article <C5L6Dn.4uB@andy.bgsu.edu> klopfens@andy.bgsu.edu (Bruce Klopfenstein) writes:\n>fester@island.COM (Mike Fester) writes:\n>> \n>> I'd say you could make a good for them being about equal right now. T&P\n>> rated Baerga higher, actually.\n>\n>Finally, an objective source.  Alomar's a great player, but so is Baerga.\n>Nice to see the objective source cited rather than \"my dad's bigger than\n>your dad\" posts.\n\nI know.  You have this fucked up idea that anybody who prefers Alomar\nto Baerga must be a Jay-Lover and Indian-Hater.  Sorry, you got that\none wrong!  I hate the Jays and don't care one way or the other about\nthe Indians.  But objectively, Alomar had the better offensive year\nlast year, so I have to pick him.\n\nYou admit T&P as a reliable(?), objective source?  Then you will note\nthat they rated Alomar as the better offensive player, chosing Baerga\nover Alomar only because of his defense.\n\nThat's a joke!  (Alomar might not be a gold-glover, but he's certainly\nno worse than Baerga defensively.)\n\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1440, "properties": {"category": "soc.religion.christian", "text": "From: rolfe@dsuvax.dsu.edu (Tim Rolfe)\nSubject: Re: quality of Catholic liturgy\nLines: 56\n\nIn <Apr.10.05.30.16.1993.14313@athos.rutgers.edu>\njemurray@magnus.acs.ohio-state.edu (John E Murray) writes:\n\n>I would like the opinion of netters on a subject that has been bothering my\n>wife and me lately: liturgy, in particular, Catholic liturgy.  In the last few\n>years it seems that there are more and more ad hoc events during Mass.  It's\n>driving me crazy!  The most grace-filled aspect of a liturgical tradition is\n>that what happens is something we _all_ do together, because we all know how \n>to do it.  Led by the priest, of course, which makes it a kind of dialogue we \n>present to God.  But the best Masses I've been to were participatory prayers.\n\n[ . . . ]\n\nHaving lived through the kicking and screaming in the 60s and 70s as the\nCatholics were invited to participate in the liturgy instead of counting\ntheir rosary beads during Mass, I find this comment interesting.  There\nis a _massively_ longer tradition for proclaiming the Passion accounts\nwithout active participation.  If you know the Latin, one really\nbeautiful way to hear the Passion is it's being chanted by three\ndeacons:  the Narrator chants in the middle baritone range, Jesus chants\nin the bass, and others directly quoted are handled by a high tenor.\nThis is actually the basis for the common proclamation of the Passion\nthat John would prefer.\n\nBut there is always a judgement call based on pastoral considerations.\nEach pastor makes his own decisions (it isn't a church-wide conspiracy\nagainst participation).  The Palm Sunday liturgy, with its initial\nblessing and distribution of the palms and procession, is already\ngetting long before you get to the Passion; some pastors feel that they\nshould not make the people stand through that long narrative.  Also, the\norchestrated proclamation with multiple readers and public participation\nin the crowd quotations runs longer than the single-reader proclamation\n--- in churches with multiple Masses for the Sunday, it might be\nnecessary to go with the briefer options just to \"get 'em in and get 'em\nout\".\n\nEach parish is different.  Catholics are no longer canonically tied to\ntheir geographic parishes.  It is possible that another Catholic parish\nin the Columbus area (based on the Ohio State address) has a liturgy\ncloser to your preferences.  Or talk to some of your fellow\nparishioners and see how common your preferences are --- pastors\ngenerally ARE willing to listen to non-confrontational requests.  Though\nyou probably should bring along a paramedic in case he reacts too strongly\nto the shock of people asked for a _longer_ Sunday Mass.\n\nPerhaps the problem is that recent liturgical development hasn't follow\nthe continuous evolution model (the accumulation of small changes, no\nsingle one of which is too hard to take) but rather the punctuated\nequilibrium model (things stay the same and we get accustomed to them,\nthen the marked mutation hits).  {My apologies if I am mis-remembering\nthe names of the evolutionary theories.}\n-- \n                                                    --- Tim Rolfe\n                                                 rolfe@dsuvax.dsu.edu\n                                                 rolfe@junior.dsu.edu\n                                                RolfeT@columbia.dsu.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1441, "properties": {"category": "sci.crypt", "text": "From: ebrandt@jarthur.claremont.edu (Eli Brandt)\nSubject: Re: Do we need the clipper for cheap security?\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 35\n\nIn article <1r1f62$rh5@news.intercon.com> amanda@intercon.com (Amanda Walker) writes:\n>One thing that Clipper offers is interoperability, at a higher degree of \n>security than we currently have in non-proprietary voice encryption systems.\n>This means it will be cheaper than anyone's proprietary scheme, and easier to \n>deploy.\n\nI may be an anarchist nutcase, but I wouldn't have frothed overmuch\nhad the government proposed a secure encryption standard.  In fact,\nif the NSA had come up with a privacy chip rather than a wiretap\nchip, I would have been happy.  They *could* have done this -- set\nup an ANSI committee, picked a secure cryptosystem, defined a\nprotocol and interface, and said, \"Hey, start building them.\"\n\nInstead we have a deliberately brain-dead version of a cryptosystem\nthat has not even been peer reviewed.  Yes, the NSA owns some smart\npeople.  But if they pulled a FEAL, well, AT&T is going to be left\nwith a lot of dud phones on its hands.\n\n>Perry said:\n>> Someone please tell me what exactly we get in our social contract in \n>> exchange for giving up our right to strong cryptography? \n>\n>Can you tell me where exactly we have given up that right?\n\nHeh heh.  The government already gave it up for us.  Remember in the\nannouncement they described this scheme as balancing the two\nextremes of having no privacy and claiming that citizens had a\nConstitutional right to encryption?  \n\nSo much for Clinton's support of the \"right of privacy\".\n\n\t PGP 2 key by finger or e-mail  (void when prohibited)\n   Eli   ebrandt@jarthur.claremont.edu\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1442, "properties": {"category": "sci.crypt", "text": "From: deuelpm@craft.camp.clarkson.edu (Hobbit)\nSubject: Re: White House Public Encryption Management Fact Sheet\nNntp-Posting-Host: logic.clarkson.edu\nOrganization: Clarkson University\nDistribution: na\nLines: 26\n\n\nI have a question about digital communications encryption:\n\n\tThe Fact Sheet mentioned encryption/decryption microcircuitry with \nspecial \"keys\" for law enforcement for wire tapping purposes.\n\n\tIf I wanted to, couldn't I develop  encryption of my own?  That\nis, if me and a partner in crime had unique Encryption/decryption\ndevices installed before the \"tappable\" one, couldn't we circumvent\nthe \"keys\" system?  Or replace it?\n\n\tI'd be really interested in knowing how the E/D microcircuits might\nbe made to prevent such befuddlement! (Laymans' Language, please! maybe a bit\ntechnical...)\n\nPlease E-mail to me, as I'm not in Net News as much as I'd like to be!\n\n\nPete\ndeuelpm@craft.camp.clarkson.edu\n\n--\n=====================================\ndeuelpm@craft.camp.clarkson.edu\n=====================================\n\"*Regret* is a rough sheet to sleep on.\"  -Herman Brooks\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1443, "properties": {"category": "sci.electronics", "text": "From: ankleand@mtl.mit.edu (Andrew Karanicolas)\nSubject: Re: IC Packages\nOrganization: MIT Microsystems Technology Laboratories\nLines: 31\nNNTP-Posting-Host: ampere.mit.edu\n\nIn article <1993Apr16.142715.12613@sol.ctr.columbia.edu> seema@madvlsi.columbia.edu (Seema Varma) writes:\n>Getting a custom-made package is too expensive, so\n>I am trying to choose between a flatpak and a\n>leadless chip carrier. The flatpack would be hard\n>to test since it has to be soldered on to the test\n>setup and I would spend loads of time soldering \n>as I kept changing the test chip. The leadless chip\n>carrier sockets also have long lead lines and may\n>not work at high speeds.\n> \n>\tDoes anyone out there have experience/knowledge\n>of this field ? I would greatly appreciate help! Any ideas/\n>names of companies manufacturing holders/sockets/packages\n>would help. \n\nCheck with Kyocera America, Inc.\n           24 Prime Park Way, Suite 150\n           Natick, MA 01760\n\nThey are one of the largest manufacturers of IC packaging in the\nworld.\n\nIt sounds like you would be a good candidate for wafer probing or at\nleast IC probing to test performance.  HP, Cascade Microtech and\nTektronix should be able to help you here.  One note, testing at high\nfrequency accurately can be an *expensive* business.\n\n-- \nAndrew Karanicolas\nMIT Microsystems Technology Laboratory\nankleand@mtl.mit.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1444, "properties": {"category": "rec.sport.baseball", "text": "From: dkl@cs.arizona.edu (David K. Lowenthal)\nSubject: Re: Braves & Giants\nOrganization: U of Arizona CS Dept, Tucson\nLines: 14\n\nIn article <13536@news.duke.edu> fls@keynes.econ.duke.edu (Forrest Smith) writes:\n>\n>\tCox should've protested the game the second time the garbage got\n>thrown at his outfielders.  He should also have protested the game at the\n>point where Ron Gant was assessed the second strike in the ninth, on the\n>grounds that he (Cox) was on the field and time should have been called.\n\nBoth protests would be denied, of course.  The umpire's judgement\ndetermines the garbage thing, although I think the game should be\ncalled (but that's my personal opinion...doesn't matter).  There\nis time only when the ump says, so the second argument is baseless.\n\n\n--dave\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1445, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nArticle-I.D.: clarinet.1993Apr17.090731.18680\nOrganization: ClariNet Communications Corp.\nLines: 21\n\nInterestingly enough, in designing the escrow, we may want to use some\nrather unusual technology, such as sealed boxes of paper, or\ndestructive read memory, rather than typical computer databases, which\nis fun for a database of hundreds of millions of keys.\n\nThe greatest danger of the escrow database, if it were kept on disk,\nwould be the chance that a complete copy could somehow leak out.  You\ncan design lots of protection, but with enough corruption a complete\ncopy is always possible.   Storing it on paper or something very hard\nto copy at once may actually make sense.  Or a medium that can't be\ncopied -- for example, something with very slow access times or which\nleaves a destructive trail if it is even read.\n\nOf course then it's hard to backup.  However, I think the consequences\nof no backup -- the data is not there when a warrant comes -- are worse\nthan the consequences of a secret backup.\n\nAn audit trail that reveals when data has been access, that *can't* be\nerased by the humans involved, is also necessary.\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1446, "properties": {"category": "talk.politics.guns", "text": "From: chris@MorningStar.Com (Chris Miller)\nSubject: Re: The 'pill' for Deer = No Hunting\nNntp-Posting-Host: beluga.morningstar.com\nOrganization: /usr/local/etc/organization\nLines: 79\n\nIn article <1993Apr14.182610.2330@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>In article <1993Apr14.120958.11363@synapse.bms.com>, hambidge@bms.com writes:\n>> \n>> The Second Amendment is about sovereignty, not sporting goods.\n>\n>\tPerfectly correct, but it won't make any difference.\n\nI agree.  Sad, but true.\n\n>\n>> Self defense is a valid reason for RKBA.\n>\n>\tThe vast majority get through life without ever having to\n>\town, use or display a firearm. Besides, there are other\n>\tmeans of self-protection which can be just as effective\n>\tas firearms. \n\nPlease name one.\n\n>\n>> Freedoms and rights are not dependent on public opinion, necessity, or\n>> scientific scrutiny.\n>\n>\tNew to this planet ? EVERYTHING is dependent on either public\n>\tor political opinion, usually political. To imagine that\n>\tinalienable 'rights' are somehow wired into the vast cold\n>\tcosmos is purest egotism and a dangerous delusion.\n>\n\n.... Upon which our Bill of Rights is based.  Some delusion.\n\n>> No arguments against RKBA can withstand scientific scrutiny.\n>\n>\tThey don't have to. Like so many other things, the issue\n>\tis one of -perception- rather than boring statistics.\n>\tEvery time some young innocent is gunned-down in a drive\n>\tby, every time some kid is murdered for a jacket, every\n>\ttime a store clerk is executed for three dollars in change,\n>\tevery time some moron kills his wife because she took the\n>\tlast beer from the fridge, every time someone hears a 'bang'\n>\tin the night .... the RKBA dies. The stats are not all *that*\n>\tclearly behind firearms - the protection factor does not\n>\tstrongly outweigh the mindless mayhem factor. Given society\n>\tas we now experience it - it seems safer to get rid of\n>\tas many guns as possible. That may be an error, but enough\n>\tactive voters believe in that course. \n>\n\nIf this were not true in practice, then certain unethical politicians would\nnot be passing gun control laws.  Politicians are generally whores to public\nopinion.  This does NOT mean the the public is either well informed or correct.\nAs for the stats,  anyone can support anything with the right stats.  The \n\"right\" stats, from what I've seen, are sometimes even used to support\nconflicting sides of the same issue.\n\n\n>> How do you intend to 'silence' RKBA supporters?\n>\n>\tTalk all you want. Talk about the \"good old days\" when\n>\tyou used to own firearms. After a while, such talk will\n>\ttake on the character of war stories ... and no one will\n>\tbe very interested anymore.\n>\n\nUsed to own firearms? While armed insurrection, as the FF's of the Const. \nmay have envisioned seems to me a somewhat fanatical approach to avoiding this,\nPolitical protest is still an option at this point.  I agree that it's \nargueably not enough and/or too late.  If all else fails, there's always\nPVC pipe and cosmoline.\n\n--\n\nChris Miller\nchris@MorningStar.Com\n\nMy opinions are my own (obviously), and by definition do not reflect the\nopinions of anyone else...\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1447, "properties": {"category": "comp.windows.x", "text": "From: neuralog@NeoSoft.com (Neuralog)\nSubject: Authorization in OW 3.0 \nOrganization: NeoSoft Communications Services -- (713) 684-5900\nLines: 29\n\n\nHello,\n\nThis is my first net letter, so forgive mistakes!\n\nI have been plagued by problems (or lack of info) with\nauthorization in Open Windows 3.0 for a long while and\nwould like some help please!  I generally use strait\nMIT X, and so don't use OW much, but when I share \nX software with others - bad news.\n\nPROBLEM:\n\nMy friend who logs into his SSII trys to run my \nprogram that runs fine on my machine, however, \nmy friend gets \"client not authorized to connect \nto server\" (or something close).  If OW is started\nwith the -noauth option all is well, but surely this\nis not required in general!\n\nAlso, xhost + does not work, becoming root does not \nwork, etc... \n\nAny help will be greatly appreciated!\n\nThanx\n\nsend replies to neuralog@neosoft.com or this news group\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1448, "properties": {"category": "sci.crypt", "text": "From: jhesse@netcom.com (John Hesse)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nDistribution: na\nLines: 21\n\n\nStupid me. I believed the Democrats stood for principles of personal\nprivacy while it was the Neanderthal Republicans that wanted into every\naspect of our lives. \n\nClinton is just more clever than the other guy. Looks like gun control for\nprivacy technology. One small step at a time.\n\nWait a minute....  Let me think about this.\n\nHmmm, I feel better now. I believe the White House when they tell us\nthis first step is, in fact, the final step. All is OK. We've nothing to fear.\nThey're here to help us. \n\nGod bless America.\n-- \n------------------------------------------------------------------------------\nJohn Hesse           |          A man,     \njhesse@netcom.com    |                 a plan, \nMoss Beach, Calif    |                         a canal, Bob.\n------------------------------------------------------------------------------\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1449, "properties": {"category": "talk.religion.misc", "text": "From: cutter@gloster.via.mind.org (cutter)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nDistribution: world\nOrganization: Gordian Knot, Gloster,GA\nLines: 26\n\nbskendig@netcom.com (Brian Kendig) writes:\n\n> b645zaw@utarlg.uta.edu (Stephen Tice) writes:\n> >\n> >One way or another -- so much for patience. Too bad you couldn't just \n> >wait. Was the prospect of God's Message just too much to take?\n> \n> So you believe that David Koresh really is Jesus Christ?\n> \n\nYou know, everybody scoffed at that guy they hung up on a cross too.\nHe claimed also to be the son of God; and it took almost two thousand \nyears to forget what he preached.\n\n\tLove thy neighbor as thyself.\n\n\nAnybody else wonder if those two guys setting the fires were 'agent \nprovacateurs.'\n\n\n---------------------------------------------------------------------\ncutter@gloster.via.mind.org (chris)     All jobs are easy \n                                     to the person who\n                                     doesn't have to do them.\n                                               Holt's law\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1450, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: adamsr@netcom.com (Rick Adams)\nSubject: Help with 486/66 Decision.\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nDistribution: us\nLines: 37\n\n        I'm buying a new system this week to replace my brain dead 286, and\ncould use some feedback on a couple systems I'm looking at if anyone is\nfamiliar with them.\n \n        The system that looks the most interesting is the Budget 486/66 VLB\ntower.  For about $2343 (delivered) it offers VLB, 8MB, 200MB IDE, a Mitsumi\nCD-ROM (with software bundle), Media Vision Sound board, 14\" CTX 1468NI,\n128K Cache, and the usual drives, ports, & OS software.  Since my budget is\n$2350 for a system, it seems almost too good to be true (which may mean it\nIS too good to be true, of course). Among other things, I've never seen a\nreview of the Budget systems (or their parent company, Micro Smart), or of\nthe motherboard they are using (the Aetana). Any feedback would be\nappreciated.\n \n        In a similar vein, the second system I'm considering Midwest Micro's\nElite VESA 486/66 tower with a Diamond Viper (2MB) & Midwest Micro 14\" MI\nmonitor is one I've never seen reviewed anywhere.  I'm familiar with the\nfirm but not the product line - and some idea of their quality would be abig\nbenefit here as well.\n \n        Any other suggestions in the price range would be appreciated - my\ngreatest needs are speed and graphics capabilities.\n \n\tEmail response would be greatly appreciated.\n\n\tThanks,\n\n-- \n\n                       -=*=- -=*=- -=*=- -=*=- -=*=-\n            The only purpose for which power can be rightfully exercised\n      over any member of a civilized community, against his will, is to\n      prevent harm to others. His own good, either physical or moral, is\n      not a sufficient warrant.                         John Stuart Mill\n                       -=*=- -=*=- -=*=- -=*=- -=*=-\n         Rick Adams -=*=- adamsr@ais.org -=*=- adamsr@norwich.bitnet\n           anonymous users may send to ap-poly.491@n7kbt.rain.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1451, "properties": {"category": "sci.space", "text": "From: games@max.u.washington.edu\nSubject: SSTO Senatorial (aide) breifing recollections.\nArticle-I.D.: max.1993Apr6.125512.1\nDistribution: world\nLines: 78\nNNTP-Posting-Host: max.u.washington.edu\n\nThe following are my thoughts on a meeting that I, Hugh Kelso, and Bob Lilly\nhad with an aide of Sen. Patty Murrays.  We were there to discuss SSTO, and\ncommercial space.  This is how it went...\n\n\n\nAfter receiving a packet containing a presentation on the benifits of SSTO,\nI called and tried to schedule a meeting with our local Senator (D) Patty\nMurray, Washington State.  I started asking for an hour, and when I heard\nthe gasp on the end of the phone, I quickly backed off to 1/2 an hour.\nLater in that conversation, I learned that a standard appointment is 15 minutes.\n\nWe got the standard bozo treatment.  That is, we were called back by an aide,\nwho scheduled a meeting with us, in order to determine that we were not\nbozos, and to familiarize himself with the material, and to screen it, to \nmake sure that it was appropriate to take the senators time with that material.\n\nWell, I got allocated 1/2 hour with Sen. Murrays aide, and we ended up talking\nto him for 45 minutes, with us ending the meeting, and him still listening.\nWe covered a lot of ground, and only a little tiny bit was DCX specific.  \nMost of it was a single stage reusable vehicle primer.  There was another\nwoman there who took copius quantities of notes on EVERY topic that\nwe brought up.\n\nBut, with Murray being new, we wanted to entrench ourselves as non-corporate\naligned (I.E. not speaking for boeing) local citizens interentested in space.\nSo, we spent a lot of time covering the benifits of lower cost access to\nLEO.  Solar power satellites are a big focus here, so we hit them as becoming \nfeasible with lower cost access, and we hit the environmental stand on that.\nWe hit the tourism angle, and I left a copy of the patric Collins Tourism\npaper, with side notes being that everyone who goes into space, and sees the\natmosphere becomes more of an environmentalist, esp. after SEEING the smog\nover L.A.  We hit on the benifits of studying bone decalcification (which is \nmore pronounced in space, and said that that had POTENTIAL to lead to \nunderstanding of, and MAYBE a cure for osteoporosis.  We hit the education \nwhereby kids get enthused by space, but as they get older and find out that\nthey havent a hop in hell of actually getting there, they go on to other\nfields, with low cost to orbit, the chances they might get there someday \nwould provide greater incentive to hit the harder classes needed.\n\nWe hit a little of the get nasa out of the operational launch vehicle business\nangle.  We hit the lower cost of satellite launches, gps navigation, personal\ncommunicators, tellecommunications, new services, etc...  Jobs provided\nin those sectors.\n\nJobs provided building the thing, balance of trade improvement, etc..\nWe mentioned that skypix would benifit from lower launch costs.\n\nWe left the paper on what technologies needed to be invested in in order\nto make this even easier to do.  And he asked questions on this point.\n\nWe ended by telling her that we wanted her to be aware that efforts are\nproceeding in this area, and that we want to make sure that the\nresults from these efforts are not lost (much like condor, or majellan),\nand most importantly, we asked that she help fund further efforts along\nthe lines of lowering the cost to LEO.\n\nIn the middle we also gave a little speal about the Lunar Resource Data \nPurchase act, and the guy filed it separately, he was VERY interested in it.\nHe asked some questions about it, and seemed like he wanted to jump on it,\nand contact some of the people involved with it, so something may actually\nhappen immediatly there.\n\nThe last two things we did were to make sure that they knew that we\nknew a lot of people in the space arena here in town, and that they\ncould feel free to call us any time with questions, and if we didn't know\nthe answers, that we would see to it that they questions got to people who\nreally did know the answers.\n\nThen finally, we asked for an appointment with the senator herself.  He\nsaid that we would get on the list, and he also said that knowing her, this\nwould be something that she would be very interested in, although they\ndo have a time problem getting her scheduled, since she is only in the\nstate 1 week out of 6 these days.\n\nAll in all we felt like we did a pretty good job.\n\n\t\t\tJohn.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1452, "properties": {"category": "rec.sport.hockey", "text": "From: sclark@epas.utoronto.ca (Susan Clark)\nSubject: OOOPS!\nOrganization: University of Toronto - EPAS\nNntp-Posting-Host: epas.utoronto.ca\nLines: 18\n\nPicture if you will, the Habs going into the last couple minutes of the\ngame, leading 2-0.  The Nords get a power play, pull Hextall, and get\na goal.  Bout a minute later, they get another one.  Then they win in\novertime......\n\nA bad dream?.......\n\nHow's that Red Hot Chili Peppers song go...\n\"Give it away,give it away, give it away now....\"\n\nOh well.  Suppose I can always watch the Leafs win tomorrow night....\n   (smilies.....)\n\nAm I the only female hockey fan in the world?\n\nSusan Carroll-Clark\nsclark@epas.utoronto.ca\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1453, "properties": {"category": "talk.politics.misc", "text": "From: rcanders@nyx.cs.du.edu (Mr. Nice Guy)\nSubject: Re: Celebrate Liberty!  1993\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 10\n\nThis is as bad as the \"Did You Know\"  Japan bashing of 2 weeks ago.  After\nfinding  this set of postings for the third time I hope no one shows up.\n\nI don't know why fools insist on posting to every group.  It just\nagrevates people.  \n--\nRod Anderson  N0NZO            | The only acceptable substitute\nBoulder, CO                    | for brains is silence.\nrcanders@nyx.cs.du.edu         |       -Solomon Short-\nsatellite  N0NZO on ao-16      |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1454, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Don Cherry - Coach's Corner summary - April 19, 1993\nOrganization: University of Toronto Chemistry Department\nLines: 24\n\nIn article <Yfoz1lm00WBOQ13hYq@andrew.cmu.edu> \"James J. Murawski\" <jjm+@andrew.cmu.edu> writes:\n>\n>On 20-Apr-93 in Don Cherry - Coach's Corner..\n>user Allan Sullivan@cs.UAlber writes:\n>>Next, a clip was shown from an earlier episode, in which Don was\n>>proclaiming Doug Gilmour to be the best player, not only in\n>>the NHL, but in the world. What about players like Lemieux?\n>>Don said that Gilmour was the best PLAYER, not \"Designated point getter\".\n>>Its not like baseball, where you have a \"designatted hitter\" who\n>>can score runs but can't play defense. Gilmour is a good two way player.\n>\n>This clip was shown on local news in Pittsburgh last night (KDKA), complete\n>with animated sarcasm by the sportscaster.  It's the second time Cherry\n>has been shown on local Pittsburgh news in the last couple of weeks.  Both\n>times he was blasting Lemieux.\n>\n\nHis designated point-getter remarks were not only meant for Lemieux,\nbut for Gretzky, Bure, etc. etc. .... and he made those particular\nremarks last December before Lemieux was diagnosed with Hodgkin's,\nand as the Leafs started their second half roll, and before\nGilmour's great season was being recognized by many people.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1455, "properties": {"category": "rec.autos", "text": "From: scott@psy.uwa.oz.au (Scott Fisher)\nSubject: Re: MGBs and the real world\nOrganization: The University of Western Australia\nLines: 28\nNNTP-Posting-Host: wapsy.psy.uwa.oz.au\n\nderek@nezsdc.icl.co.nz (Derek Tearne) writes:\n\n>>People who bought MGB`s bought them because they were an open topped sportscar\n>>and embodied what people thought they should for an old fashioned traditional\n>>brit. sportscar - not because they were great at anything.\n\n>Pretty much like the people who buy the Mazda MX-5 (Miata) today.  Small \n>fun and you can fool yourself (and a lot of other people) that you have the \n>performance of many far superior (and much more expensive) performnace cars.\n\nI have been for a fairly hard run in an MX5, what they lack in power they\nsurely make up for in handling.  Great for back streets with heaps of corners.\nThey are a fairly light car with a low center of gravity and a quite free\nrevving DOHC engine, a fun car.  Have you driven a TURBO converted\nMX5?  Now they are starting to perform!  I've often thought a Mazda rotary\nwould go well in the XM5 too....anyone done it?\n\nRegards Scott.\n_______________________________________________________________________________\nScott Fisher [scott@psy.uwa.oz.au]  PH: Aus [61] Perth (09) Local (380 3272).                \n                                                             _--_|\\       N\nDepartment of Psychology                                    /      \\    W + E\nUniversity of Western Australia.      Perth [32S, 116E]-->  *_.--._/      S\nNedlands, 6009.  PERTH, W.A.                                      v       \n\nJoy is a Jaguar XJ6 with a flat battery, a blown oil seal and an unsympathetic \nwife, 9km outside of a small remote town, 3:15am on a cold wet winters morning.\n-------------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1456, "properties": {"category": "sci.crypt", "text": "From: jhart@agora.rain.com (Jim Hart)\nSubject: Screw the people, crypto is for hard-core hackers & spooks only \nOrganization: Open Communications Forum\nLines: 37\n\nSince the AT&T wiretap chip is scheduled to be distributed \ninternationally, allowing the U.S. government to spy on foreign \ngovernments, companies and people as as well as to wiretap domestic \ncitizens, this is a world-wide issue.  Thus Distribution: world.\n\nygoland@wright.seas.ucla.edu (The Jester) writes:\n\n>However assuming that I can still encrypt things as I please, who\n>cares about the clipper chip? \n\nWhy do we hackers care about the Clipper chip?  Do we give a shit\nabout anybody's privacy accept our own?  And perhaps not even our\nown; are we so smart that we always know when we're talking to\nsomebody who has a wiretap on their phone?\n\nI find the \"call thru your computer\" ideas may reflect this attitude.\nIdeas that are of, by, and for hackers, and don't help anybody in the\nreal world, aren't going to do anybody much good, including ourselves\nwhere voice phones are concerned.\n\nWe *do* need an alternative to NSA-bugged telephones, but\nwe're talking inexpensive *telephones* here, including hand-sized\ncellulars, that need strong crypto, real privacy.  Make-shift\ncomputer hacker rigs that require living by your computer to\ntalk privately over the phone are just a dumb stunt that doesn't \ndo anything for anybody's privacy in the real world.  \n\nWhat we need is a true *privacy chip*.  For example, a real-time \nvoice-encryption RSA, silicon compile it and spit out ASIC.  \nPut this chip on the market as a de facto standard for international \nbusiness, diplomats, and private communications.  If the U.S. bans \nit, we make it somewhere else and import it.  The Japanese, German,\nDutch, Taiwanese, Korean, etc. electronics companies don't want the \nNSA spying on them.  U.S. workers lose more jobs to government fascist\nstupidity.\n\njhart@agora.rain.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1457, "properties": {"category": "sci.electronics", "text": "From: d2bohre@dtek.chalmers.se (Henrik Bohre)\nSubject: Digital Answering mach\nKeywords: digital\nNntp-Posting-Host: hacke9.dtek.chalmers.se\nOrganization: Chalmers University of Technology, Gothenburg Sweden\nLines: 10\n\nDoes anybody know anything about the chips D6275A/D6235A/D6205A chips from\nDSP Telecommunications Inc?\n\nI'd greatly appreciate information about price, pinouts and peripherals.\n\nRegards,\n\n  Henrik Bohre\n\n  @>-+--\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1458, "properties": {"category": "comp.windows.x", "text": "From: sti@cs.hut.fi (Sami-Jaakko Tikka)\nSubject: Re: finding out state of state keys (eg, CapsLock and NumLock)\nOrganization: Helsinki University of Technology, CS lab\nLines: 23\nDistribution: inet\nNNTP-Posting-Host: tahma.cs.hut.fi\n\nIn <9304211637.AA03386@blue.arbortext.com> rps@arbortext.COM (Ralph Seguin) writes:\n\n>My question is this:  Is there a means of determining what the state\n>of CapsLock and/or NumLock is?\n\nI don't know any way except to see what modifiers are on in th\nKeypress event.  Of course if there is some reason why you need to\nalways know the state of modifiers even if your windows don't have the\nkeyborads focus you can always ask for KeyPress events from the root\nwindow.  Then you get all the KeyPresses and you always know what have\nbeen pressed.\n\n>An even more pointed question: Is there an easy means of making an X\n>keyboard act like a PC keyboard?  ie, CapsLock is active, and the user\n>presses shift-a, I'd like to get a lowercase 'a' instead of 'A'.\n\nI think this is just a question of how to implement XLookupString.\nYou can always write another function that interprets the KeyPresses\nas you like.  You can look at the implementation of XLookupString from\nthe Xlib sources and then modify it a little bit.\n-- \n        Sami.Tikka@hut.fi | /G=Sami/S=Tikka/O=hut/ADMD=fumail/C=fi/\n                           \"Live Long and Prosper!\"\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1459, "properties": {"category": "sci.crypt", "text": "From: cme@ellisun.sw.stratus.com (Carl Ellison)\nSubject: Re: Licensing of public key implementations\nOrganization: Stratus Computer, Software Engineering\nLines: 28\nNNTP-Posting-Host: ellisun.sw.stratus.com\n\nIn article <1993Apr4.221640.8104@magnus.acs.ohio-state.edu> jebright@magnus.acs.ohio-state.edu (James R Ebright) writes:\n>I guess we will have to wait for the time in the far future\n>when everyone uses such good crypto that the NSA has no job.  Then the\n>agency will be disbanded and its files opened after the approprate\n>historical delay.  ;)\n\nYou've overlooked a fundamental Truth:\n\n\tboth headcount and budget of any government agency are\n\tmonotonic increasing functions.\n\nGiven that Truth, you need to look for what the agency can do to occupy\nall those people and spend all that money when crypto is unbreakable.\n\nPerhaps they could talk the world's telephone companies into making equipment\nthey could break into and tap.\n\nMaybe they could convince people that distributed computing was a good idea\nso that even the internal state of a process would be available for access\nby wiretapping.\n\nMaybe....\n\n-- \n - <<Disclaimer: All opinions expressed are my own, of course.>>\n - Carl Ellison                                        cme@sw.stratus.com\n - Stratus Computer Inc.       M3-2-BKW                TEL: (508)460-2783\n - 55 Fairbanks Boulevard ; Marlborough MA 01752-1298  FAX: (508)624-7488\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.069+0000", "event": "documents", "entityId": 1460, "properties": {"category": "sci.space", "text": "Organization: Queen's University at Kingston\nFrom: Graydon <SAUNDRSG@QUCDN.QueensU.CA>\nSubject: Re: What if the USSR had reached the Moon first?\n <dxb105.734155421@aries> <1993Apr7.124724.22534@yang.earlham.edu>\n <dxb105.734495289@virgo> <1993Apr12.161742.22647@yang.earlham.edu>\nLines: 9\n\nThis is turning into 'what's a moonbase good for', and I ought\nnot to post when I've a hundred some odd posts to go, but I would\nthink that the real reason to have a moon base is economic.\n\nSince someone with space industry will presumeably have a much\nlarger GNP than they would _without_ space industry, eventually,\nthey will simply be able to afford more stuff.\n\nGraydon\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1461, "properties": {"category": "alt.atheism", "text": "Subject: Re: islamic authority over women\nFrom: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 17\n\nIn article <1993Apr5.024626.19942@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n>\n>Peace,\n\n  Bobby:\n\n  Get this the hell out of your .sig until you 1) learn what it\n  stands for and 2) really mean it.\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1462, "properties": {"category": "sci.electronics", "text": "From: mpaul@unl.edu (marxhausen paul)\nSubject: How to kill AC inductive load spiking?\nOrganization: University of Nebraska--Lincoln\t\nLines: 20\nDistribution: world\nNNTP-Posting-Host: unlinfo.unl.edu\n\nIs there a fast 'n dirty way to kill the line spiking that occurs when\nan inductive load is turned on sometime other than at zero-crossing of\nthe AC cycle?  A capacitor kludged in somehow, etc?\n\nI've got a microcontroller that is running a bunch of valves and pumps\nin a big instrument washer, and almost everything is being switched with\nzero-crossing solid state relays, so that stuff stays \"quiet\", AC-wise.\nBut there's one steam valve that gets turned on by a mechanical relay\nin the water tank fill/thermostat system, and it's not under control\nof my SSRs, and it does sometimes generate/radiate a spike that resets\none of my peripheral chips.  My software times out and tries again, but\nI'd love to just tack in a magic spike-killing fix that would avoid having\nto do some major rewiring/redesign.  A varistor would help but might not\nbe sufficient.  Ideas?\n\n--\npaul marxhausen .... ....... ............. ............ ............ .......... \n .. . .  . . . university of nebraska - lincoln .  . . .. . .  .. . . . . . . .\n .     .    .  .   .     .   .  .    .   .  .   .    .   .  grace .   .    .  . \n   .         .       .      .        .        .      .        .   happens .     \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1463, "properties": {"category": "soc.religion.christian", "text": "From: aa888@freenet.carleton.ca (Mark Baker)\nSubject: Re: The arrogance of Christians\nReply-To: aa888@freenet.carleton.ca (Mark Baker)\nOrganization: The National Capital Freenet\nLines: 63\n\nIn a previous article, phs431d@vaxc.cc.monash.edu.au () says:\n\n>In article <Apr.13.00.08.07.1993.28379@athos.rutgers.edu>, aa888@freenet.carleton.ca (Mark Baker) writes:\n>> To demand scintific or rational proof of God's existence, is to deny\n>> God's existence, since neither science, nor reason, can, in their very\n>> nature, prove anything.\n>\n>Are you asking us to believe blindly?  You are trying to deny that part of\n>us that makes us ask the question \"Does God exist?\" i.e. self-awareness and\n>reason.  If we do not use our ability to reason we become as ignorant\n>as the other animals on this earth.  Does God want us to be like that?\n>\nI am asking you to believe in things not visible. I don't know if this is\nbelieveing blindly or not. I'm not sure how blindness comes into it. I do\nnot deny reason, indeed I insist upon it, but reason only draws conclusions\nfrom evidence. If you decide in advance that your reason will act only on\nthe evidence of the five physical senses, then you cut reason off from any\npossibility of reaching a conclusion outside the physical sphere (beyond the\nrather provocative, if inconclusive, conclusion that the physical sphere\nis not self explanatory). \n\nChristians claim that they have received a different kind of evidence, \nwhich they call faith, and which is a gift of God. That is, this evidence\nis the evidence of a thing which chooses to reveal or hide itself. The \nevidence of the senses cannot tell you is such a ting exists. Reasoning\non the evidence of the senses won't help either. But Christians do reason\nof the evidence of faith, and do claim that this evidence is wholly\nconsistent with the evidence of the other senses, and indeed, that the\nevidence of these other senses is part of God's revelation of himself\nto us.\n\nIt is not necessarilly the case however that knowledge of a God must come\nthrough this route. There may be other senses than the physical ones\nproviding evidence of non-physical realities. (There may, of course, be\nphysical realities of a type for which we have no corresponding senses, for\nall we know.) These senses, if they exist, may provide valid evidence for\nreason to work on. And, as with all senses, these senses may be impaired\nin some people, that is, they may be spiritually blind. In this sense,\nbelief in God becomes an act of sight, and it is disbelief which is blind.\n\n>You are right that science and reason cannot PROVE anything.  However, if\n>we do not use them we can only then believe on FAITH alone.  And since\n>we can only use faith, why is one picture of \"God\" (e.g. Hinduism) any less\n>valid than another (e.g. Christianity)?\n>\nFaith, as I have said, is not opposed to reason, it is simply a new source \nof evidence on which reason may operate. It is clear that human beings\nhave many systems for explaining the evidence of the physical senses, and\nsimilarly there are many systems for explaining the evidence provided by\nfaith. Religious believers in general, and Christians in particular, use\nreason to help sift through the evidence to come to a clearer understanding\nof the evidence provided by faith. Science claims, with good reason, to be\nthe most valid system for explaining the physical universe, and Christianity\nclaims, also with good reason, to be the most valid system, possessed of the\nbest evidence, for explaining Gods revelations of himself to man.\n\nIf you doubt that Christians use reason, read this newsgroup for a while\nand you will see rational debate aplenty.\n-- \n==============================================================================\nMark Baker                  | \"The task ... is not to cut down jungles, but \naa888@Freenet.carleton.ca   | to irrigate deserts.\" -- C. S. Lewis\n==============================================================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1464, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: A visit from the Jehovah's Witnesses\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.01\nLines: 37\n\nsuopanki@stekt.oulu.fi writes:\n> On 5 Apr 93 11:24:30 MST, jbrown@batman.bmd.trw.com said:\n> :> God is eternal.    [A = B]\n> :> Jesus is God.      [C = A]\n> :> Therefore, Jesus is eternal.  [C = B]\n> \n> :> This works both logically and mathematically.  God is of the set of\n> :> things which are eternal.  Jesus is a subset of God.   Therefore\n> :> Jesus belongs to the set of things which are eternal.\n> \n> Everything isn't always so logical....\n> \n> Mercedes is a car.\n> That girl is Mercedes.\n> Therefore, that girl is a car?\n\nUnfortunately your phrasing is ambiguous.  Re-writing more carefully, we have\n(at least) two possibilities.  The first:\n\nThings called \"Mercedes\" are cars\nThat girl is called \"Mercedes\"\nTherefore that girl is a car\n\nThat is entirely valid as a piece of logical deduction.  It is not sound,\nbecause the first statement is false.  Similarly, I would hold that Jim's\nexample is valid but not sound.\n\nAnother possible interpretation of what you wrote is:\n\nThere exists at least one car called \"Mercedes\"\nThat girl is called \"Mercedes\"\nTherefore that girl is a car\n\n-- which isn't valid.\n\n\nmathew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1465, "properties": {"category": "sci.med", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Eumemics (was: Eugenics)\nArticle-I.D.: cup.79700\nOrganization: The Portal System (TM)\nLines: 36\n\n> Probably within 50 years, a new type of eugenics will be possible.\n> Maybe even sooner.  We are now mapping the human genome.  We will\n> then start to work on manipulation of that genome.  Using genetic\n> engineering, we will be able to insert whatever genes we want.\n> No breeding, no \"hybrids\", etc.  The ethical question is, should\n> we do this?  Should we make a race of disease-free, long-lived,\n> Arnold Schwartzenegger-muscled, supermen?  Even if we can.\n\nProbably within 50 years, it will be possible to disassemble and\nre-assemble our bodies at the molecular level.  Not only will flawless\ncosmetic surgery be possible, but flawless cosmetic PSYCHOSURGERY.\n\nWhat will it be like to store all the prices of shelf-priced bar-coded\ngoods in your head, and catch all the errors they make in the store's\nfavor at SAFEWAY?  What will it be like to mentally edit and spell-\ncheck your responses to the questions posed by a phone caller selling\nVACATION TIME-SHARE OPTIONS?\n\nIndeed, we are today a nation at risk!  The threat is not from bad genes,\nbut bad memes!  Memes are the basic units of culture, as opposed to genes\nwhich are the units of genetics.\n\nWe stand on the brink of new meme-amplification technologies!  Harmful\nmemes which formerly were restricted in their destructive power will\nrun rampant over the countryside, laying waste to the real benefits that\nfuture technology has to offer.\n\nFor example, Jeremy Rifkin has been busy trying to whip up emotions\nagainst the new genetically engineered tomatoes under development at\nCALGENE.  This guy is inventing harmful memes, a virtual memetic Typhoid\nMary.\n\nWe must expand the public-health laws to include quarantine of people\nwith harmful memes.  They should not be allowed to infect other people\nwith their memes against genetically-engineered food, electromagnetic\nfields, and the Space Shuttle solid rocket boosters.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1466, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 30\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nX-Newsreader: InterCon TCP/Connect II 1.1\n\njhesse@netcom.com (John Hesse) writes:\n> Oh great. Wonderful news. Nobody can listen in--except the feds. \n\nHey, it's better than the status quo.\n\nI am far less worried about \"the feds\" tapping my phone than high school \nscanner surfers who get their kicks out of eavesdropping on cellular and \ncordless phone calls.\n\nIt would be stupid to rely on even a \"Clipperized\" channel for truly \nsensitive material, but it *does* seem to finally offer a reasonable way to \nguard against casual eavesdropping.  For example, even with my strong \"right \nto bear arms\" view of the private right to possess and use strong \ncryptosystems, the system as described provides enough security that I would \nactually buy a cordless phone, and would be much less wary of using cellular \nphones, walkie-talkies, and so on.  As long as it's only used for mass-market \nvoice scrambling, I actually don't see a problem with it.\n\nIf you want more security than it offers, use something different.  Use PKCS \nfor electronic mail, CELP over DES or triple DES with Diffie-Hellman key \nexchange for your voice traffic, or whatever.\n\nAnd yes, I'd rather just see all crypto restrictions lifted, but this is at \nleast an incrememental improvement for certain applications...\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1467, "properties": {"category": "talk.politics.misc", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: Damn Ferigner's Be Taken Over\nArticle-I.D.: cos.bob1.734037895\nDistribution: world\nOrganization: Corporation for Open Systems\nLines: 34\n\nIn <C4v13w.Dup@apollo.hp.com> nelson_p@apollo.hp.com (Peter Nelson) writes:\n\n>In article <bob1.733696161@cos> bob1@cos.com (Bob Blackshaw) writes:\n>>In <C4ruo8.77r@apollo.hp.com> nelson_p@apollo.hp.com (Peter Nelson) writes:\n\n>>>  Norway (where you appear to be posting from) is just such a \n>>>  place, although it has always escaped my understanding just\n>>>  what the appeal, to allegedly rational people, of such a\n>>>  scheme might be.  What gives King Olav V (or whoever it is\n>>>  now - my atlas is from 1987) the right to any special legal\n>>>  status or title based on a mere accident of birth? \n>>\n>>To begin with, it's quite inexpensive compared to here, what with our\n>>having six former presidents still alive, drawing pensions, expense\n>>accounts, and secret service protection.\n\n>  Maybe so, but they were, after all, President.  In the corporate \n>  world it's SOP for retiring senior executives to be given nice\n>  pensions, etc.  The point is that they performed a service and\n>  this is part of the compensation package.   The only \"service\" \n>  royals have to perform for their free ride is being born.\n\nWe might be better off had some of our former presidents done nothing.\n\n\n>---peter\n\n\n\n>PS  - . . . which is not to say that some of our presidents have \n>      not provided a service for the country too dissimilar from what\n>      occurs when a bull \"services\" a cow (for those of you familiar\n>      with cattle breeding).\n>                                                 \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1468, "properties": {"category": "comp.graphics", "text": "Subject: .GL and .FLI specs\nFrom: arthur@qedbbs.com (Arthur Choung)\nOrganization: The QED BBS, Lakewood CA\nLines: 6\n\nCan somebody point out to me where I can find the specs for .GL and .FLI files\nfound on PC's?\n\n------------------------------\narthur@qedbbs.com (Arthur Choung)  or  qed!arthur\nThe QED BBS -- (310)420-9327\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1469, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ken@austin.ibm.com\nSubject: Re: Win NT - what is it???\nOriginator: ken@daedalus.austin.ibm.com\nOrganization: IBM Austin\nLines: 50\n\n\nIn article <C5qoFw.3AA@usenet.ucs.indiana.edu>, ntaib@silver.ucs.indiana.edu (Iskandar Taib) writes:\n> In article <2BCF2664.3C6A@deneva.sdd.trw.com> reimert@.etdesg.trw.com (Scott P. Reimert) writes:\n> \n> >Somewhere in this thread, it has been said that Windows NT (tm) is a \n> >multi-user OS, as well as multi-threading, etc.  I certainly haven't\n> >seen this to be the case.  There are seperate accounts for each person,\n> >and even seperate directories if that is desired.  I don't see an \n> >implentation of simultaneuos use though.\n> \n> Since running any GUI over a network is going to slow it down by a\n> fair amount, I expect Windows NT will be multiuser only in the sense\n> of sharing filesystems. Someone will likely write a telnetd for it so\n> one could run character-based apps, but graphics-based apps will have\n> to be shared by running the executables on the local CPU. This is how\n> things are shaping up everywhere: client-server architectures are\n> taking over from the old cpu-terminal setups. \n> \n> Note that the NeXT does this: you can always telnet into a NeXT and\n> run character-based apps but you can't run the GUI. (Yeah, I know\n> about X-Windows, just haven't been too impressed by it...)..\n> \n> \n> \n> \n> \n> \n> -- \n> -------------------------------------------------------------------------------\n> Iskandar Taib                          | The only thing worse than Peach ala\n> Internet: NTAIB@SILVER.UCS.INDIANA.EDU |    Frog is Frog ala Peach\n> Bitnet:   NTAIB@IUBACS                 !\n\n\n\nI read this in an electronic \"magazine\" about NT:\n\n\"And for all the hoopla about NT, one would\nthink the thing would be multi-user but it's not. It supports\nonly one user at a time. It can support multiple clients but\nonly one actual user.\"\n\n\nYour mileage may vary!\n\n-- \n   THIS POSTING DOES NOT REPRESENT THE OPINIONS OF MY EMPLOYERS.\n------------------------------------------------------------------\n\"I'm afraid I'll have to ask you to leave the store, mam\" Ash, AoD\n==================================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1470, "properties": {"category": "rec.autos", "text": "From: gaia@carson.u.washington.edu (I/We are Gaia)\nSubject: Re: Plymouth Sundance/Dodge Shadow experiences?\nOrganization: University of Washington, Seattle\nLines: 115\nDistribution: usa\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <oprsfnx.735015349@gsusgi1.gsu.edu> oprsfnx@gsusgi2.gsu.edu (Stephen F. Nicholas) writes:\n>daubendr@NeXTwork.Rose-Hulman.Edu (Darren R Daubenspeck) writes:\n>\n>\n>>> they are pretty much junk, stay away from them.  they will be replaced next\n>>> year with all new models.  \n>\n>\n>>Junk?  They've made the C&D lists for years due to their excellent handling and  \n>>acceleration.  They have been around since about, oh, 85 or 86, so they're not  \n>>the newest on the lot, and mileage is about five to eight MPG under the class  \n>>leader.  You can get into a 3.0 L v-6 (141 hp) Shadow for $10~11K (the I-4  \n>>turbo a bit more), and a droptop for $14~15K.  \n>\n>\n> As an ex-Fleet Mgr. of 3000 cars, they were amoung the most trouble free of\n>all models.  I bought one for my wife.\n>\n\n\n*nnnnnnnng* Thank you for playing, I cannot agree with this.  I believed\nthis and to put it nicely, it was a piece of junk!\n\nI loved this car, I babied it, I pampered it, and after 2 years, it just\ncouldn't stay together, I would say that not everyone will have the\nproblems that I had, but know this, it's not just the car, it is the\nability to get the car fixed, which will NOT happen at any\nchrysler/dodge/take your pick dealer.  I don't care if there are going to\nreform their dealers/service with the intro of the LH cars, I will believe\nit when I see it.  Case and point, the local dodge dealer.  You drive up,\njust looking, you don't even get out of your door, when about 10 (yes 10)\nsalesman all eye you like their next meal, and literally pounce on you,\nand try to get you to make a deal, on everything your eye wanders towards.\nService is about 2 times worse than that.  I had an alignment problem, but\nthey tried to tell me that the K frame was bent, and about 2000 dollars of\nwork/parts to fix it.  Let me tell you the problems I had, and I took care\nof this car, I put alot of miles on it in the first couple years, but took\nit to every checkup it needed, and many that shouldn't have been.\n\n1988 Dodge Shadow ES\n\nThese were replaced within the 4 years that I owned the car.\n\nEngine \n4 Alternators\nRear Suspension Torsion Bar\n2 Water pumps\n5 thermostats\nHall effect sensor\nMain computer\n4 Batteries\n\nThese were rebuilt/repaired\n\nRadiator\nAutomatic Transmission\nPower Steering\n\n\nThose are just the things I can remember off the top of my head.  For\nabout a year before I sold the car, I said to myself, it's a good car, I\njust can't find anybody competent enough the fix it.  In the end, before I\ntraded it in for a Saturn, the power steering started acting up again.  I\njust stopped putting money into it.  I must have put at least $5000-$7000\nworth of repairs over it's lifetime.  I am sorry but Lee Iacocca can bite\nme.  Bullshit, whoever backs em best, is just afraid the stupid things are\ngoing to fall apart, and no one will buy them without assurance, why the\nhell do you think that LH has been nicknamed Last Hope.\n\nYou can do better, and I know people will disagree with me here, but\nJapanese, like Honda, or Toyota, or the only american car company that I\nfeel is a quality product, Saturn.  I will not touch another chrysler\nproduct again, no way.  I don't care how good the LH cars look good, and I\nwill admit they look promising, but not with the support that you get.  GM\nisn't much better, thank god, they don't control Saturn, like they do\ntheir divisions, or it would be just another marketing ploy.  \n\nDon't get me wrong, i will be watching my car (which I do like) like a\nhawk for the next 4 years.  I am much more hesitant to say it (or any) car\nis really good, until it has proved itself to me.\n\nBut since someone else pointed out C&D as a source.  I will note, because\nI used to read these magazines, that Car and Driver has never had a good\nthing to say about most Chrysler products (Shadow for one), always were\nthey moaning about the reguritated K-car, and engine.  Whereas Motor Trend\nalways thought they were great cars.  No car magazine is really objective.\n\nAnd although there are alot of people who don't like Consumers Reports, I\nwill use them to reinforce my argument (I already know about the big stink\nwith the Saturn crash tests, time will tell how good a car they are), the\nshadow/sundance rate much worse than average, in fact none of the\nchrysler's rate a better than average, I think the best one is just\naverage.  Excluding the diamond star/mitsubishi stuff and the LH's.  You\ncan find bad stuff about the Shadow.  Try as I might, when I researched\nthe Saturn, I could not find anything bad about it.  There is a great deal\nof information about this company, just because it is a new american\ncompany and it has created quite a stir in the automotive community, for\ngood reason.  Much more than the introduction of any new model lines of\nany established company.  I read an article, which had a sub-column, an I\nthink this imprinted on me more than anything else.  Some big wig in\nToyota said and I quote, \"We are watching them very closely.\"  Come on,\neverybody grow up, the foreign cars, especially the japanese have been\nkicking our butts, for good reason, the american car companies could not make\na good product or support the customer the way they want these days, to\nset in their ways, which is one of the reasons Saturn was created.  They\nare still struggling because they haven't learned yet.  They have the\nability, the workers are not inferior, the technology is not out of date,\nbut their attitude is, and they are just finding this out.  It's called\ncompetition gentleman/women if you don't satisfy the demand of the\nconsumer, well your out..  \n\n*asbestos suit on*\n\nGaia\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1471, "properties": {"category": "soc.religion.christian", "text": "From: Eugene.Bigelow@ebay.sun.com (Geno )\nSubject: Re: Christianity and repeated lives\nReply-To: Eugene.Bigelow@ebay.sun.com\nOrganization: Sun Microsystems, Inc.\nLines: 13\n\n\n > ...there is nothing in Christianity that precludes the idea of\n > repeated lives on earth.\n\nThere is a paragraph in the New Testament which in my opinion, clearly makes\na positive inference to reincarnation. I don't remember which one it is off of\nthe top of my head, but it basically goes like this: Jesus is talking with the\napostles and they ask him why the pharisees say that before the messiah can come,\nElijah must first come. Jesus replies that Elijah has come, but they did not \nrecognize him. It then says that the apostles perceived that he was refering to\nJohn the Baptist. This seems to me to clearly imply reincarnation. Can anyone\noffer a reasonable alternative interpretation? I would be very interested to \nhear it.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1472, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: slc@a2.cim.cdc.com (Steve Chesney x4662)\nSubject: Diamond Speedstar 24X Driver Bug?\nReply-To: slc@.cdc.com\nOrganization: Metaphase Technology, Inc.\nKeywords: Speedstar\nLines: 23\n\nSince swapping out my generic VGA card for a Diamod Speedstar 24X, I have \nnoticed two new problems:\n\n* if I create a windowed MS-DOS session (386 mode), when the text starts \n   to scroll, rather than printing characters it starts to print\n   horizontal lines that spill out to the desktop and trash the entire \n   display.  Ctrl-alt-del terminates the dos window and restores the \n   desktop\n\n* after a short time in NCD's PC X-remote for windows, all characters  \n  displayed on the desktop are changed to be unreadable; I am unable to\n  restore without rebooting.\n\nThese are in both 256 and 16 color 800x600 drivers, large and small fonts.\nDOS 5, Win 3.1, emm386 and smartdrv installed.\n\nI like the speed of the card and have had no other problems.  Any ideas?\nThanks!\n-- \nSteve Chesney                                    slc@catherine.cim.cdc.com     \nMetaphase Technology Inc.                        612-482-4662 (voice)\n4233 North Lexington Avenue                      612-482-4001 (fax)\nArden Hills, MN  55126\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1473, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: neff123@garnet.berkeley.edu (Stephen Kearney)\nSubject: Re: Is Microsoft Windows really and Ope\nArticle-I.D.: agate.1pr6r2$t7c\nOrganization: University of California, Berkeley\nLines: 9\nNNTP-Posting-Host: garnet.berkeley.edu\n\n>ALL icons in Program Manager are aliases. Is that explicit \n>enough??\n\nApparently not. Many people complain about the confusion that\nresults from the filemanager/progman split. It's just a basic\nflaw.\n\nBesides, what about the control panel icons? Where are all those\nlittle files?\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1474, "properties": {"category": "sci.crypt", "text": "From: tcmay@netcom.com (Timothy C. May)\nSubject: Re: The Escrow Database.\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: Tin 1.1 PL5\nLines: 41\n\nPerry E. Metzger (pmetzger@snark.shearson.com) wrote:\n: Here is a disturbing thought.\n....good stuff elided....\n: Don't pretend that no one unauthorized will ever get their hands on\n: the escrow databases.\n: \n.......\n: secret. The escrow databases aren't the sorts of secrets that our\n: teachers told us about, but they are the sort of big secrets they\n: would lump into this category. Imagine trying to replace 100 million\n: Clipper chips.\n\nSounds to me like a *great* gimmick for a replacement market...every\nso often issue a \"Clipper Alert\" announcing that some key backup tapes\nare missing, that some Drug Lords got 'em, whatever. Then the owners\nof these $1200 Clipperphones have to trot down to their local Key\nEscrow Agency and buy new chips and have them programmed.\n\nMicrotoxin, the Clipper supplier, will make a killing...maybe this was\nthe real idea. (Anybody know if Janet Reno has stock in Microtoxin,\nVLSI Technology, or AT&T?)\n\nCould be a good opportunity to undermine this with some\ndisinformation: float rumors that the key database has been stolen.\nAll the chips need replacing. It angers people, undermines confidence\neven more, and kills sales.\n\nAfter the Waco Massacre and the Big Brother Wiretap Chip, any tactic\nis fair.\n\n-Tim May\n\n\n-- \n..........................................................................\nTimothy C. May         | Crypto Anarchy: encryption, digital money,  \ntcmay@netcom.com       | anonymous networks, digital pseudonyms, zero\n408-688-5409           | knowledge, reputations, information markets, \nW.A.S.T.E.: Aptos, CA  | black markets, collapse of governments.\nHigher Power: 2^756839 | Public Key: PGP and MailSafe available.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1475, "properties": {"category": "comp.graphics", "text": "From: jhwitten@cs.ruu.nl (Jurriaan Wittenberg)\nSubject: Re: images of earth\nOrganization: Utrecht University, Dept. of Computer Science\nLines: 27\n\nIn <1993Apr18.230732.27804@kakwa.ucs.ualberta.ca> ken@cs.UAlberta.CA (Huisman Kenneth M) writes:\n\n>I am looking for some graphic images of earth shot from space. \n>( Preferably 24-bit color, but 256 color .gif's will do ).\n>\n>Anyways, if anyone knows an FTP site where I can find these, I'd greatly\n>appreciate it if you could pass the information on.  Thanks.\n>\n>\nTry FTP-ing at\n pub-info.jpl.nasa.gov  (128.149.6.2) (simple dir-structure)\n\nand  ames.arc.nasa.gov\nat /pub/SPACE/GIF and /pub/SPACE/JPEG\nsorry only 8 bits gifs and jpegs :-( great piccy's though (try the *x.gif\nfiles they're semi-huge gif89a files)\n                           ^^-watch out gif89a dead ahead!!!\nGood-luck (good software to be found out-there too)\n\nJurriaan\n\nJHWITTEN@CS.RUU.NL \n-- \n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n|----=|=-<- - - - - - JHWITTEN@CS.RUU.NL- - - - - - - - - - - - ->-=|=----|\n|----=|=-<-Jurriaan Wittenberg- - -Department of ComputerScience->-=|=----|\n|____/|\\_________Utrecht_________________The Netherlands___________/|\\____|\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1476, "properties": {"category": "sci.med", "text": "From: balick@nynexst.com (Daphne Balick)\nSubject: Re: Altitude adjustment\nReply-To: balick@nynexst.com\nOrganization: NYNEX Science & Technology, Inc\nLines: 32\n\n\n\nIn article <4159@mdavcr.mda.ca> vida@mdavcr.mda.ca (Vida Morkunas) writes:\n>I live at sea-level, and am called-upon to travel to high-altitude cities\n>quite frequently, on business.  The cities in question are at 7000 to 9000\n>feet of altitude.  One of them especially is very polluted...\n\nMexico City, Bogota, La Paz?\n>\n>Often I feel faint the first two or three days.  I feel lightheaded, and\n>my heart seems to pound a lot more than at sea-level.  Also, it is very\n>dry in these cities, so I will tend to drink a lot of water, and keep\n>away from dehydrating drinks, such as those containing caffeine or alcohol.\n>\n\n>Thing is, I still have symptoms.  How can I ensure that my short trips there\n>(no, I don't usually have a week to acclimatize) are as comfortable as possible?\n>Is there something else that I could do?\n\n---\n\nAn unconventional remedy that you might try for altitude sickness in the Andes is\nchewing coca leaves or taking teas made from coca leaves. You might notice that\nmany of the natives have wads in their mouths... the tea can be obtained in S.\nAmerican pharmacies. This remedy alleviates some of the lightheadedness and\ndizziness - but don't try to jog with it. I've tried this when travelling and\nhiking in Peru and Ecuador. The amount of cocaine you would ingest are too minute\nto cause any highs...\n\nAlso it is a good idea to eat lightly and dress warm while adjusting to high altitudes.\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1477, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: branham@binah.cc.brandeis.edu\nSubject: Windows Locks up with green lines down the Screen\nReply-To: branham@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 18\n\nHi, I am using a dtk 386-20Mhz 13Meg memory to run a variety of\nprograms, and have had problems off and on with lock up,\nbut now I am trying to run an application that wants a lot of memory\nover a period of time (Playmation 24 bit rendered) and it is \nlocking up Everytime.  I have an ATI ultra + w/2Meg which I have\ntried in each of the video modes, I have excluded the region of\nvideo memory from A000-C800 segments from the use of emm386,\nhave tried adjusting the swap partion from large to nonexistant (to\nprevent swapping) and I have REM'd ALL TSR's and utilities in config.syus\nand autoexec, and even tried using the default program manager, disabling\nmy HP dashboard.  even with a minimal system, no swap, no smartdrv,\nno TSR's, no windows utilities and exclusion of video regions it still\nlocks up completely (no mouse control, no response to anything except\n3finger salute, and even that does not stop by the standard windows\nscreen, but simply does a full reset immediately).  Just about out\nof ideas, anyone out there have any????  Thanks\ntom branham\nbranham@binah.cc.brandeis.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1478, "properties": {"category": "rec.sport.hockey", "text": "From: chuq@apple.com (Chuq Von Rospach)\nSubject: Re: SHARKS REVIEW Part 5: Left Wings\nOrganization: Go Sharks, Go Giants, Inc.\nLines: 113\nNNTP-Posting-Host: apple.com\n\nnlu@Xenon.Stanford.EDU (Nelson Lu) writes:\n\n>#8\tLARRY DEPALMA\t\tSeason:\t3rd\n>Acquired:\t'91-92, free agent from Minnesota\n>Grade:\t\tI (C-/D+)\n\n>No netter/fan watching the Sharks, including me, knows where DePalma was at\n>the end of the season; the Sharks appeared to still have his rights, but he\n>wasn't in San Jose, he wasn't in Kansas City, and his name hasn't appeared on\n>the waiver wire.\n\nSorry, Nelson, but you forgot to ask me. If you check the THN stats for\nKansas City, you'll find that Larry has been playing for the games, having\nplayed in 8 games in the period covered in the stats between 3/26 and the\n4/16 issue (1-3-4 with 13 PIM). Not exactly invisible.\n\n>He then was sent down to\n>Kansas City, walked out from there, and was suspended and later reinstated\n>when it was revealed that he was injured; he then promptly disappeared from\n>the watching eyes of Shark Bytes (as the mailing list is now known to Sharks\n>officials) faithful, and neither the Sharks nor we miss him.\n\nWell, having gotten to a chance to talk to him a few times, this isn't quite\naccurate. He injured his back (a disk injury) and did one stupid thing,\nwhich was to hide it from the Sharks and he tried to play through it because\nhe knew he was on the bubble. The Sharks then sent him to K.C., at which\npoint he disclosed the injury. Since he didn't disclose it, the Sharks and\nhe disagreed about the responsibility and he was suspended for not\nreporting. That was eventually worked out, the Sharks re-instated him as\ninjured and put him into therapy, and when he was able to play then shipped\nhim down to K.C. He fully expects to play in the NHL again, although clearly\nnot with the Sharks (hiding injuries is a stupid no-no, beyond just a\nno-no).\n\nVery nice guy. Always hustled his butt off. He disappeared because he was\nhurt. I expect he'll surface with another team at some point (probably\nanother expansion team), but is likely to be a bubble player for the rest of\nhis career. Has a good work ethic and is good at getting other players\nmotivated. Unfortunately, he played himself out of the Sharks future with a\nbad judgement call.\n\n\n>#20\tJOHN CARTER\t\tSeason: 4th\n>Acquired:\t'91-92, free agent from Boston\n>Grade:\t\tI (B+/B)\n\n> He\n>is very unlikely to be back next season.\n\nAlways gave 110%, best work ethic on the club (except maybe Kisio), but\nhustle isn't always enough. His future with the Sharks was made clear to me\none night against the Flames when he went behind the crease and tried to\nhold Joel Otto against the board. He literally had one arm around Otto's\nneck and another wrapped around Otto's stick arm. Otto casually turned\naround and fed the puck in front of the crease for a goal, as though Carter\nwasn't there. Hustle can only cover size so far.\n\nThe Sharks have told me, point blank, that he's gone for good (ditto HUbie\nMcDonough). He was one of the favorites of the staff, but as one said to me\n\"you have to make room for the kids\". Carter, in fact, refused to report to\nK.C. and has been suspended by the Sharks. That might be a defacto\nretirement, but I haven't heard anything official. His only hope in hockey\nnow is the Gulls.\n\n>#28\tJEAN-FRANCOIS QUINTIN\tSeason: 1st\n>Acquired:\t'91-92, from Minnesota in dispersal draft\n>Grade:\t\tI (B+/B)\n\n>I don't understand why the Sharks didn't let Quintin play any more than the\n>14 games he played this season.\n\nBecause, at least from the games I saw him in, he was outmatched and looked\nfairly lost on the ice. I think he shows potential, but I didn't think he\nwas quite ready to make the jump to the NHL.\n\n> He should be a solid contender for regular duty next season.\n\nAgreed (BTW, I still think a lot of your grades are more based on how you\nwish they'd performed than how they actually performed. I wonder whether you\ncan really judge talent from radio and television, Nelson? I know I have\ntrouble, since you don't see the off-puck action. your views from home and\nmy views from the ice differ in numerous ways)\n\n>#41\tMARK BEAUFAIT\t\tSeason: 1st\n>Acquired:\t2nd round pick in 1991 supplemental draft\n>Grade:\t\tI (?)\n\n>After a all-star season at Kansas City, Beaufait got a cup of coffey with the\n\nCoffee. Coffey is with the Red Wings.\n\n>#45\tDODY WOOD\t\tSeason: 1st\n>Acquired:\t3rd round pick in 1991 entry draft\n>Grade:\t\tI (D+/D, although perhaps I shouldn't give a grade at all)\n\n>I have been accused of knocking on Wood too much.\n\nYou? Nah... \n\nHe was seriously unimpressive, even as a tough guy (his rep). However, as\nfew games as he had in a season that was at that point meaningless, I hate\nto judge the talent too quickly. Butn in Dody's case, I\"m tempted to make an\nexception.\n\nBut I won't.\n\n-- \n Chuq \"IMHO\" Von Rospach, ESD Support & Training (DAL/AUX) =+= chuq@apple.com\n   Member, SFWA =+= Editor, OtherRealms =+=  GEnie: MAC.BIGOT =+= ALink:CHUQ \n  Minor League fans: minors-request@medraut.apple.com (San Jose Giants: A/1/9)\n  San Francisco Giants fans: giants-request@medraut.apple.com (The Stick?NOT!)\n   San Jose Sharks fans: sharks-request@medraut.apple.com (New seat: 127/TBD)\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1479, "properties": {"category": "sci.space", "text": "From: kjenks@gothamcity.jsc.nasa.gov\nSubject: Space Station Redesign, JSC Alternative #4\nOrganization: NASA/JSC/GM2, Space Shuttle Program Office \nX-Newsreader: TIN [version 1.1 PL8]\nLines: 71\n\nI have 19 (2 MB worth!) uuencode'd GIF images contain charts outlining\none of the many alternative Space Station designs being considered in\nCrystal City.  Mr. Mark Holderman works down the hall from me, and can\nbe reached for comment at (713) 483-1317, or via e-mail at\nmholderm@jscprofs.nasa.gov.\n\nMark proposed this design, which he calls \"Geode\" (\"rough on the\noutside, but a gem on the inside\") or the \"ET Strongback with\nintegrated hab modules and centrifuge.\"  As you can see from file\ngeodeA.gif, it uses a Space Shuttle External Tank (ET) in place of much\nof the truss which is currently part of Space Station Freedom.  The\nwhite track on the outside of the ET is used by the Station Remonte\nManipulator System (SRMS) and by the Reaction Control System (RCS)\npod.  This allows the RCS pod to move along the track so that thrusting\ncan occur near the center of gravity (CG) of the Station as the mass\nproperties of the Station change during assembly.\n\nThe inline module design allows the Shuttle to dock more easily because\nit can approach closer to the Station's CG and at a structurally strong\npart of the Station.  In the current SSF design, docking forces are\nlimited to 400 pounds, which seriously constrains the design of the\ndocking system.\n\nThe ET would have a hatch installed pre-flight, with little additional\nlaunch mass.  We've always had the ability to put an ET into orbit\n(contrary to some rumors which have circulated here), but we've never\nhad a reason to do it, while we have had some good reasons not to\n(performance penalties, control, debris generation, and eventual\nde-orbit and impact footprint).  Once on-orbit, we would vent the\nresidual H2.  The ET insulation (SOFI) either a) erodes on-orbit from\nimpact with atomic Oxygen, or b) stays where it is, and we deploy a\nKevlar sheath around it to protect it and keep it from contaminating\nthe local space environment.  Option b) has the advantage of providing\nfurther micrometeor protection.  The ET is incredibly strong (remember,\nit supports the whole stack during launch), and could serve as the\nnucleus for a much more ambitious design as budget permits.\n\nThe white module at the end of ET contains a set of Control Moment\nGyros to be used for attitude control, while the RCS will be used\nfor gyro desaturation.  The module also contains a de-orbit system\nwhich can be used at the end of the Station's life to perform a\ncontrolled de-orbit (so we don't kill any more kangaroos, like we\ndid with Skylab).\n\nThe centrifuge, which has the same volume as a hab module, could be\nused for long-term studies of the effects of lunar or martian gravity\non humans.  The centrifuge will be used as a momentum storage device\nfor the whole attitude control system.  The centrifuge is mounted on\none of the modules, opposite the ET and the solar panels.\n\nThis design uses most of the existing SSF designs for electrical,\ndata and communication systems, getting leverage from the SSF work\ndone to date.\n\nMark proposed this design at Joe Shea's committee in Crystal City,\nand he reports that he was warmly received.  However, the rumors\nI hear say that a design based on a wingless Space Shuttle Orbiter\nseems more likely.\n\nPlease note that this text is my interpretation of Mark's design;\nyou should see his notes in the GIF files.  \n\nInstead of posting a 2 MB file to sci.space, I tried to post these for\nanon-FTP in ames.arc.nasa.gov, but it was out of storage space.  I'll\nlet you all know when I get that done.\n\n-- Ken Jenks, NASA/JSC/GM2, Space Shuttle Program Office\n      kjenks@gothamcity.jsc.nasa.gov  (713) 483-4368\n\n     \"...Development of the space station is as inevitable as \n      the rising of the sun.\" -- Wernher von Braun\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1480, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wow@cup.portal.com (wallace otis waggoner)\nSubject: 2 SMC 270E ARCNET cars for sale $50ea.\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 4\n\nI have 2 new SMC 270E ARCNET cards for sale . They are brand new. $50 each\n\nwow@cup.portal.com\nWally Waggoner\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1481, "properties": {"category": "talk.politics.guns", "text": "From: shepard@netcom.com (Mark Shepard)\nSubject: S414 (Brady bill) loopholes?\nKeywords: brady handguns s414 hr1025 hr277 instant check waiting period\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nDistribution: na\nLines: 40\n\nHi. I've just finished reading S414, and have several questions about\nthe Brady bills (S414 and HR1025).\n\n1. _Are_ these the current versions of the Brady bill?\n     What is the status of these bills?  I've heard they're \"in committee\".\n     How close is that to being made law?\n\n2. S414 and HR1025 seem fairly similar.  Are there any important\n   differences I missed?\n\n3. S414 seems to have some serious loopholes:\n  A. S414 doesn't specify an \"appeals\" process to wrongful denial during\n     the waiting period, other than a civil lawsuit(?)  (S414 has an appeals\n     process once the required instant background check system is established,\n     but not before).\n  B. the police are explicitly NOT liable for mistakes in denying/approving\n     using existing records (so who would I sue in \"A\" above to have an\n     inaccurate record corrected?)\n  C. S414 includes an exception-to-waiting-period clause for if a person\n     can convince the local Chief Law-Enforcement Officer (CLEO) of an\n     immediate threat to his or her life, or life of a household member.\n     But S414 doesn't say exactly what is considered a \"threat\", nor does\n     it place a limit on how long the CLEO takes to issue an exception\n     statement.\nTrue?  Have I misunderstood?  Any other 'holes?\n\n4. With just S414, what's to stop a person with a \"clean\" record from\n   buying guns, grinding off the serial numbers, and selling them to crooks?\n   At minimum, what additional laws are needed to prevent this?\n\n   'Seems at min. a \"gun counting\" scheme would be needed\n   (e.g., \"John Doe owns N guns\").  So, if S414 passes, I wouldn't be surprised\n   to see legislation for stricter, harder-to-forge I.D.'s plus national gun\n   registration, justified by a need to make the Brady bill work.\n\nPlease comment.  I'm mainly interested in specific problems with the current\nlegislation--I don't mean to start a general discussion of the merits\nof any/all waiting-period bills ever proposed.\n\n\tMarkS || shepard@netcom.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.070+0000", "event": "documents", "entityId": 1482, "properties": {"category": "soc.religion.christian", "text": "From: caralv@caralv.auto-trol.com (Carol Alvin)\nSubject: Re: The arrogance of Christians\nLines: 37\n\nvbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) writes:\n\n> \tI just thought I'd share some words that I received in a letter \n> from Moody Bible Institute a couple of months ago.  The words are by\n> James M. Stowell, the president of MBI.\n> \n> \t\"The other day, I was at the dry cleaner and the radio was playing.\n> It caught my attention because a talk show guest was criticizing evangelical\n> Christians, saying we believe in absolutes and think we are the only ones\n> who know what the absolutes are.\n> \n> \t\"He missed the point.\n\nNo, IMO, Mr. Stowell missed the point.\n\n> \t\"We affirm the absolutes of Scripture, not because we are arrogant\n> moralists, but because we believe in God who is truth, who has revealed His\n> truth in His Word, and therefore we hold as precious the strategic importance\n> of those absolutes.\"\n\nMr. Stowell seems to have jumped rather strangely from truth to absolutes.\nI don't see how that necessarily follows.  \n\nAre all truths also absolutes?\nIs all of scripture truths (and therefore absolutes)?\n\nIf the answer to either of these questions is no, then perhaps you can \nexplain to me how you determine which parts of Scripture are truths, and\nwhich truths are absolutes.  And, who is qualified to make these \ndeterminations?  There is hardly consensus, even in evangelical \nChristianity (not to mention the rest of Christianity) regarding \nBiblical interpretation.\n\nI find Mr. Stowell's statement terribly simple-minded.\n\nCarol Alvin\ncaralv@auto-trol.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1483, "properties": {"category": "talk.religion.misc", "text": "From: joshua@cpac.washington.edu (Joshua Geller)\nSubject: Re: Merlin, Mithras and Magick\nOrganization: Institute for the Study of Ancient Science\nLines: 14\nDistribution: world\n\t<C5HwKA.7AF@unix.portal.com>\n\t<Pegasus-150493132018@fp1-dialin-4.uoregon.edu>\nNNTP-Posting-Host: bailey.cpac.washington.edu\nIn-reply-to: Pegasus@aaa.uoregon.edu's message of 15 Apr 1993 20:26:04 GMT\n\n\nIn article <Pegasus-150493132018@fp1-dialin-4.uoregon.edu> \nPegasus@aaa.uoregon.edu (LaurieEWBrandt) writes:\n\n>    Lets add to those percentages 13-15% for the Orphaic docterians brought to\n>   the group by Paul/Saul who was a high ranking initiate. On the development\n>   of Orphaic Mysteries, see Jane Harrisons .Prolegomena to the study of Greek\n>   religion. Cambridge U Press 1922. and you can easly draw your own\n>   conclusions.\n\nperhaps you can quote just a bit of her argument?\n\njosh\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1484, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: drice@ponder.csci.unt.edu (D. Keith Rice)\nSubject: Re: Drive/Controller Compatibility\nLines: 672\nOrganization: University of North Texas\n\nThanks to all who responded to my original post.  I got the number for\nWestern Digital tech support and determined that I need to upgrade the\nBIOS to the Super BIOS.  It will handle hard drives with up to 16 read/\nwrite heads and up to 1024 cylinders.  The upgrade is $15, payable by\ncheck or money order.  Send to:\n\n\tWestern Digital Corporation\n\tTechnical Support Group\n\tP.O. Box 19665\n\tIrvine, CA  92713-9665\n\nThe Super BIOS is for any WD XT hard drive controller card in the\nWD1002 series.\n\nThe BIOS on my system would only handle up to 20mb drives.\n\nThe responses to my request for help follow my .sig.  Warning: It's long.\n\nKeith\n\n--\n_____________________________\n__-----____--___--__-----____\tD. Keith Rice\n__--__--___--__--___--__--___\tUniversity of North Texas\n__--___--__--_--____--___--__\tDepartment of Computer Science\n__--___--__----_____--__--___\tDenton, Texas, USA\n__--___--__--_--____--_--____\n__--__--___--__--___--__--___\tdrice@ponder.csci.unt.edu\n__-----____--___--__--___--__\tdrice@cs.unt.edu\n_____________________________\n\n<========================== responses below ==========================>\n\nFrom ravalent@mailbox.syr.edu Sat Apr  3 16:45:03 1993\nReceived: from mailbox.syr.EDU by ponder (5.61/1.36)\n\tid AA15218; Sat, 3 Apr 93 16:45:00 -0600\nFrom: ravalent@mailbox.syr.edu (Bob Valentine)\nReceived: from mothra.syr.EDU by mailbox.syr.edu (4.1/CNS)\n\tid AA16647; Sat, 3 Apr 93 17:44:49 EST\nReceived: by mothra.syr.EDU (4.1/Spike-2.0)\n\tid AA03607; Sat, 3 Apr 93 17:43:27 EST\nDate: Sat, 3 Apr 93 17:43:27 EST\nMessage-Id: <9304032243.AA03607@mothra.syr.EDU>\nTo: drice@ponder\nStatus: OR\n\nTo: drice@ponder.csci.unt.edu\nSubject: Re: Drive/Controller Compatibility\nNewsgroups: comp.sys.ibm.pc.hardware\nIn-Reply-To: <drice.733866833@ponder>\nOrganization: Syracuse University, Syracuse, NY\nCc: \n\nIn article <drice.733866833@ponder> you write:\n>I recently bought a used Seagate ST-251 hard drive.  The guy told me that\n>it had been fully tested and that it was good.  I took it home to install\n>in my Compaq Portable (OK, I'm a little behind in technology).  I already\n>had an MFM controller.\n>\n>I installed the drive and powered up the system.  I got a post error, \"1701\".\n>\n>My controller is a Western Digital WD1002S-WX2 Rev. C.\n>As I said above, the drive is a Seagate ST-251.\n>The system is a Compaq Portable (circa 1985).\n\n     Ah, finally a question I can answer.   I mess with this older\nstuff alot.   Kinda fun.  8)\n\n     First problem I can forsee is that the ST-251 will not be\ncompadible with that WD card unless it has the right bios rom.  \n\n    Check the numbers on it.  It should be the only non-smt chip on\nthe board.  Slightly below center, and left.    The bios should read \neither :     62-000042-015 or\n             62-000094-0x2\n\n     If the last 3 digits are 013, you got problems.\n\n>\n>Controller jumpers are set as follows: (\"-\" represents jumper)\n>\tW1\t1-2 3\n>       W2      1-2 3\n>\tW3\t1-2\n>\tW4\t1 2-3\n>\tW5\t1 2 3\n>\tW6\t1-2 3\n>\tW7\t1 2 3\n\n    Looks right.   W5 and W7 are factory jumped (with a trace) between\npins 1 and 2 to select the primary controller address.\n\n>The drive jumpers are as follows: (\"8\" represents jumper)\n\n    Looks right.\n  \n[art deleted]\n\n>Here are my questions:\n>\n>1.)\tAre the drive and controller compatible w/ each other?\n\n      I notice you left out the S1 jumper table settings.   Those are\nwhat control what drive the controller thinks it has.   If you have\nthe 62-000042-015 rom, set it like this:\n\n              5 + +    open\n              6 + +    open             \n              7 + +    open        \n              8 + +    open\n              4 + +    closed\n              3 + +    closed\n              2 + +    open\n              1 + +    open\n\n    Note:   those are how WD runs the numbers on the jumper block.\nTop to bottom.   +'s represent the jumper pins.    Pins 3,4, and 8\nselect the first drive setting (drive 0) and pins 1,2 and 7 select the\nsecond drive (drive 1).   \n\n      If you have the 62-000094 rom, it's a auto-config, and I'll have\nto look up how to do it... I don't have the big book right here.\n\n>2.)\tAre the jumpers on the card/drive set correctly?\n\n      See above.  You might have problems if the S1 jumpers are not\nright.   Also,  at the risk of being insulting, make sure the cables\nare on right and good. 8).    On the jumper on the 251, try moving it\nto the opposite side of the drive.    It's one or the other.   \n     The narrow data cable goes to J2.   I've thrown it on J3 a few\ntimes and banged my head for a day.....\n\n>3.)\tIs my system's BIOS in need of an upgrade?\n\n     Dunno.    IBM roms had to be later than 10/27/82.   A quick way\nto check is to boot dos and run debug.   Enter:\n       \n        -d f000:fff5 fffc    (the - is the debug prompt)\n   \n    This will return the rom date, if it's of any use.\n\n>Keith Rice\n\n      If I oversimplified any of the above, I appologize.     It's\njust hard to know what caliber of person I'm talking to. 8).\n\n                     -->   Bob Valentine  <--  \n                  --> ravalent@mailbox.syr.edu <--  \n\n\n\nFrom chpp@unitrix.utr.ac.za Mon Apr  5 06:33:46 1993\nReceived: from unitrix.utr.ac.za by ponder (5.61/1.36)\n\tid AA16194; Mon, 5 Apr 93 06:32:59 -0500\nReceived: by unitrix.utr.ac.za (Smail3.1.28.1 #1)\n\tid m0nfpMA-0001X7C; Mon, 5 Apr 93 13:28 GMT\nMessage-Id: <m0nfpMA-0001X7C@unitrix.utr.ac.za>\nFrom: chpp@unitrix.utr.ac.za (Prof P. Piacenza)\nSubject: ST251\nTo: drice@ponder\nDate: Mon, 5 Apr 1993 13:28:49 +0200 (GMT)\nX-Mailer: ELM [version 2.4 PL11]\nMime-Version: 1.0\nContent-Type: text/plain; charset=US-ASCII\nContent-Transfer-Encoding: 7bit\nContent-Length: 24559     \nStatus: OR\n\n\nIf you are using a TWISTED 34-way cable then move the jumper \non your drive to the neighbouring pins   :8::::::.  Make sure that\nthe twisted cable is for a hard disk (and not a floppy disk) - the\ncoloured stripe (pin 1) should be furthest from the twist.\n\nThis may also help.\n\n\n                             PRODUCTS FOR XT SYSTEMS\n     \n     \n     HARD DISK CONTROLLERS FOR MFM HARD DISK DRIVES\n                                  Reference NOTE 1.\n     \n          \n          WD1002A-WX1, feature F300R - Half-slot size hard disk controller \n          card with an ST506/ST412 interface.  It supports 2 MFM drives \n          with up to 16 heads and 1024 cylinders and is jumper \n          configurable for secondary addressing and default drive tables.  \n          Built in ROM BIOS supports non-standard drive types, virtual \n          drive formatting, dual drive operation, bad track formatting and \n          dynamic formatting.  This board features a power connector for \n          filecard applications and it will also operate in AT systems. \n          Please note that this controller card will be unavailable from \n          the manufacturer (Western Digital) after March, 1989.  Reference \n          NOTE 2.\n          \n          WDXT-GEN, feature F300R - Half-slot size hard disk controller \n          card with an ST506/ST412 interface.  It  supports 2 MFM hard \n          disk drives with up to 8 heads and 1024 cylinders.  Built-in ROM \n          BIOS supports non-standard drive types, virtual drive \n          formatting, dual drive operation, bad track formatting and \n          dynamic formatting.  Please note that this controller card will \n          be unavailable from the manufacturer (Western Digital) after \n          March, 1989.\n          \n          WD1004A-WX1, feature F300R - Half-slot size disk controller \n          card  with an ST506/ST412 interface.  It supports 2 MFM drives \n          with up to 16 heads and 1024 cylinders and is jumper \n          configurable for secondary addressing and default drive tables.  \n          Built in ROM BIOS supports non-standard drive types, virtual \n          drive formatting, dual drive operation, bad track formatting and \n          dynamic formatting.  This board features a power connector for \n          filecard applications and it will also operate in AT systems.  \n          Reference NOTE 2.\n          \n          WDXT-GEN2, feature F300R - Half-slot size hard disk controller   \n          card with an ST506/ST412 interface.  It supports 2 MFM hard disk \n          drives with up to 8 heads and 1024 cylinders.  Built-in ROM BIOS \n          supports non-standard drive types, virtual drive formatting, \n          dual drive operation, bad track formatting and dynamic \n          formatting.  Reference NOTE 2.\n          \n          \n     \n     HARD DISK CONTROLLERS FOR RLL HARD DISK DRIVES\n                                  Reference NOTE 2.\n     \n          \n          WD1002-27X, feature F301R - Half-slot size hard disk controller \n          card with an ST506/ST412 interface.  It supports 2 RLL hard disk \n          drives with up to 16 heads and 1024 cylinders and is jumper \n          configurable for secondary addressing and default drive tables.  \n          Built in ROM BIOS supports non-standard drive types, virtual \n          drive formatting, dual drive operation, bad track formatting and \n          dynamic formatting.  This board features a power connector for \n          filecard applications and it will also operate in AT systems.   \n          Please note that this controller card will be unavailable from \n          the manufacturer (Western Digital) after March, 1989.  Reference \n          NOTE 2.\n          \n          WD1002A-27X, feature 300R - Half-slot size hard disk controller \n          with an ST506/ST412 interface.  It supports 2 RLL drives with up \n          to 16 heads and 1024 cylinders. Built-in ROM BIOS supports non-\n          standard drive types, virtual drive formatting, bad track \n          formatting and dynamic formatting.  Please note that this \n          controller card will be unavailable from the manufacturer     \n          (Western Digital) after March, 1989.\n          \n          WD1004-27X, feature F301R - Half-slot size hard disk controller  \n          card with an ST506/ST412 interface.  It supports 2 RLL hard    \n          disk drives with up to 16 heads and 1024 cylinders and is jumper \n          configurable for secondary addressing and default drive tables.  \n          Built in ROM BIOS supports non-standard drive types, virtual    \n          drive formatting, dual drive operation, bad track formatting     \n          and dynamic formatting.  This board features a power connection \n          for filecard applications and it will also operate in AT \n          systems.  Reference NOTE 2.\n          \n          WD1004A-27X, feature F300R - Half-slot size hard disk \n          controller  with an ST506/ST412 interface.  It supports 2 RLL \n          drives with up to 16 heads and 1024 cylinders.  Built-in ROM \n          BIOS supports non-standard drive types, virtual drive \n          formatting, bad track formatting and dynamic formatting.\n          \n          NOTE 1:  AT&T 6300 - The AT&T 6300 and the AT&T 6300 PLUS \n          contain system BIOS chips that support the hard disk drive.  \n          When using a Western Digital XT controller card the system will \n          not \"boot.\"  To solve this problem, one of the ROM BIOS chips \n          must be disabled.  To disable the BIOS on your Western Digital  \n          XT controller card, you must remove the jumper at position W-3 \n          or add a jumper at position R-23 (depending on which model of XT \n          controller you are using).\n          \n                                       -2-\n\n\n          \n          NOTE 2:  TANDY 1000 SYSTEMS - The WD1002A-WX1, WD1004A-WX1, \n          WDXT-GEN2 and the WD1004-27X can be modified to operate in \n          Tandy 1000 series computers, models SX, TX and the original or \n          \"A\" version.  These computers utilize an interrupt of 2 (IRQ2) \n          instead of IRQ5, the IBM standard.  To modify the WD1002A-WX1 or \n          the WD1002-27X to operate in these systems, you must cut the \n          etch between pin 1 and pin 2 at jumper position W-7.  Then \n          solder pin 2 and pin 3 at the position (W-7).  To complete the \n          modification, a jumper must be added to position 7 of switch S-1 \n          (2 rows of 8 pins).  PLEASE NOTE THAT ANY PHYSICAL MODIFICATION \n          TO YOUR WESTERN DIGITAL HARD DISK CONTROLLER VOIDS THE WARRANTY \n          ON YOUR BOARD.  To modify the WD1004A-WX1, WDXT-GEN2 or the \n          WD1004-27X for your Tandy 1000 system, a zero ohm resister must \n          be soldered to jumper position W-27.  This will change the \n          interrupt from IRQ5 to IRQ2.\n     \n     \n     XT CONTROLLERS FOR FLOPPY DISK DRIVES\n     \n          \n          WD1002A-FOX - Half-slot floppy disk controller for XT or AT  \n          systems.  Four versions of the board are available:\n                Feature F001 supports two floppy disk drives.\n                Feature F002 supports four floppy disk drives and includes \n                an optional 37-pin control, data and power connector and \n                an optional 4-pin power connector.\n                Feature F003 supports two floppy disk drives and includes\n                a ROM BIOS that will enable your system to recognize \n                floppy disk drive that may not be supported by your AT\n                system ROM BIOS.  The optional ROM BIOS will also allow\n                this controller card to operate high density floppy disk\n                drives in an XT system.\n                Feature F004 supports four floppy disk drives and includes\n                an optional 37-pin control, data and power connector, an\n                optional 4-pin power connector and a ROM BIOS that will \n                enable your system to recognize floppy disk drives that \n                may not be supported by your AT system ROM BIOS.  The \n                optional ROM BIOS will also allow this controller card to \n                operate high density floppy disk drives in an XT system.\n                \n                \n                                       -3-\n\n\n\n                             PRODUCTS FOR AT SYSTEMS\n     \n      \n     HARD DISK CONTROLLERS FOR MFM HARD DISK DRIVES - NO FLOPPY SUPPORT\n     \n          \n          WD1003-WAH, feature F003R - Hard disk controller card with an   \n          ST506/ST412 interface.  It supports 2 MFM drives with up to 16 \n          heads and 2048 cylinders, 3:1 interleave.\n          \n          WD1003V-MM1, feature F300R - Hard disk controller card with an  \n          ST506/ST412 interface. It supports 2 MFM drives with up to 16  \n          heads and 2048 cylinders, 2:1 interleave.  The \"V\" boards can   \n          run in high speed AT systems (10 to 16 megahertz system speed).\n          \n          WD1006-WAH , feature F001R - Hard disk controller card with     \n          an ST506/ST412 interface.  It supports 2 MFM drives with up to \n          16 heads and 2048 cylinders, 1:1 interleave.\n              \n          WD1006V-MM1, feature F300R - Hard disk controller card with an  \n          ST506/ST412 interface.  It supports 2 MFM drives with up to 16  \n          heads and 2048 cylinders, 1:1 interleave and faster data     \n          transfer due to \"look ahead caching.\"  The \"V\" boards can run in \n          high speed AT systems (10 to 16 megahertz system speed).\n          \n          \n     HARD DISK CONTROLLERS FOR MFM HARD DISK DRIVES AND FLOPPY DISK DRIVES\n     \n     \n          WD1003-WA2, feature F003R - Hard disk controller card with an  \n          ST506/ST412 interface, full AT form factor.  It supports 2 MFM \n          drives with up to 16  heads and 2048 cylinders, at 3:1 \n          interleave and 2 floppy disk drives (360K and 1.2 MB).\n          \n          WD1003A-WA2, feature F003R - Hard disk controller card with an \n          ST506/ST412 interface, full XT form factor.  It supports 2 MFM \n          drives with up to 16 heads and 2048 cylinders, at 3:1 interleave \n          and 2 floppy disk drives (360K and 1.2 MB).\n          \n          WD1003V-MM2, feature F300R - Hard disk controller card with an  \n          ST506/ST412 interface.  It supports a maximum of 2 MFM drives \n          with up to 16  heads and 2048 cylinders at 2:1 interleave, and 2 \n          floppy disk drives (5-1/4\" 360K, 1.2Mb; 3-1/2\" 720K, 1.44Mb).   \n          The \"V\" boards can run in high speed AT systems, (10 to 16 \n          megahertz system speed).\n          \n          WD1006V-MM2, feature F300R - Hard disk controller card with an   \n          ST506/ST412 interface.  It supports a maximum of 2 MFM drives \n          with up to 16 heads and 2048 cylinders at 1:1 interleave and \n          faster data transfer due to \"look ahead caching\" and 2 floppy \n          disk drives (5-1/4\" 360K, 1.2 Mb; 3-1/2\" 720K, 1.44 Mb).  The \n          \"V\" boards can run in high speed AT systems, (10 to 16 megahertz \n          system speed).\n          \n     \n                                       -4-\n\n\n     HARD DISK CONTROLLERS FOR RLL HARD DISK DRIVES - NO FLOPPY SUPPORT \n     \n          \n          WD1003-RAH - Hard disk controller card with an ST506/ST412 \n          interface.  It supports 2 RLL hard disk drives with up to 16  \n          heads and 2048 cylinders at 3:1 interleave. \n          \n          WD1003V-SR1 - Hard disk controller card with an ST506/ST412 \n          interface.  It supports a maximum of 2 RLL hard disk drives with \n          up to 16 heads and 2048 cylinders at 2:1 interleave. The \"V\" \n          boards can run in high speed AT systems (10 to 16 megahertz \n          system speed).\n                Feature F301R includes an optional ROM BIOS that allows \n                the user to define the drive's parameters. \n                Feature F300R does not include the ROM BIOS and you must  \n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameters.\n                \n          \n          WD1006-RAH - Hard disk controller card with an ST506/ST412 \n          interface.  It supports a maximum of 2 RLL hard disk drives with \n          up to 16 heads and 2048 cylinders, 1:1 interleave.\n                Feature F001R includes an optional ROM BIOS that provides  \n                additional drive parameter tables.\n                Feature F300R does not include the ROM BIOS and you must   \n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameters.\n                \n          \n          WD1006V-SR1 - Hard disk controller card with an ST506/ST412     \n          interface.  It supports 2 RLL hard disk drives with up to 16 \n          heads and 2048 cylinders, 1:1 interleave and faster data \n          transfer due to \"look ahead caching.\"  The \"V\" boards can run in \n          high speed AT  systems (10 to 16 megahertz system speed).\n                Feature F301R includes an optional ROM BIOS that allows  \n                the user to define the drive's parameters.           \n                Feature F300R does not include the ROM BIOS and you must  \n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameters.\n                \n                 \n     \n     HARD DISK CONTROLLERS FOR RLL HARD DISK DRIVES AND FLOPPY DISK DRIVES\n     \n     \n          WD1003-RA2, feature F001R -  Hard disk controller card with an  \n          ST506/ST412 interface.  It supports a maximum of 2 RLL hard disk \n          drives with up to 16  heads and 2048 cylinders, at 3:1 \n          interleave, and 2 floppy disk drives (5-1/4\" 360K, 1.2 Mb).\n          \n          \n     \n                                       -5-\n\n          \n          WD1003V-SR2 -  Hard disk controller card with an ST506/ST412    \n          interface.  It supports a maximum of 2 RLL hard disk drives with \n          up to 16 heads and 2048 cylinders, at 2:1 interleave, and 2 \n          floppy disk drives, (5-1/4\" 360K, 1.2 Mb; 3-1/2\" 720K, 1.44 \n          Mb).  The \"V\" boards run in high speed AT systems (10 to 16 \n          megahertz system speed).\n                Feature F301R includes an optional ROM BIOS that allows   \n                the user to define the drive's parameters.\n                Feature 300R does not include the ROM BIOS and you must\n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameters.\n                \n          \n          WD1006V-SR2 -  Hard disk controller card with an ST506/ST412   \n          interface.  It supports a maximum of 2 RLL hard disk drives with \n          up to 16 heads, 2048 cylinders and 2 floppy disk drives (5-1/4\" \n          360K, 1.2 Mb; 3-1/2\" 720K, 1.44 Mb).   It also features 1:1 \n          interleave and faster data transfer due to  \"look ahead \n          caching\".  The \"V\" boards can run in high speed AT  systems (10 \n          to 16 megahertz system speed).              \n                Feature F301R includes an optional ROM BIOS that allows \n                the user to define the drive's parameters.\n                Feature 300R does not include the ROM BIOS and you must   \n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameters.\n                \n                 \n     \n     HARD DISK CONTROLLERS FOR ESDI HARD DISK DRIVES - NO FLOPPY SUPPORT -\n     \n          \n          WD1007A-WAH - This controller card will support up to 2 ESDI \n          hard disk drives, 10 megabit per second data transfer rate and \n          1:1 interleave.        \n                Feature F301R  includes an optional ROM BIOS with \"shadow \n                RAM\" that will enable the controller card to interface \n                with all types of ESDI drives without modifying the system \n                ROM BIOS.\n                Feature F300R does not include the ROM BIOS and you must \n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameters.\n                \n          WD1007V-SE1/ME1 - This controller card will support up to 2 ESDI \n          hard disk drives, 15 megabit per second data transfer rate and \n          1:1 interleave.  The \"V\" boards can run in high speed AT \n          systems, (10 to 16 megahertz system speed).\n                Feature F301R includes an optional ROM BIOS with \"shadow \n                RAM\" that will enable the controller card to interface \n                with all types of ESDI drives without modifying the system \n                ROM BIOS.\n                Feature F300R does not include the ROM BIOS and you must \n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameters.\n                \n                                       -6-\n      \n     HARD DISK CONTROLLERS FOR ESDI HARD DISK DRIVES AND FLOPPY DISK \n     DRIVES\n     \n          \n          WD1007A-WA2 - This controller card will support up to 2 ESDI \n          hard disk drives, 10 megabit per second data transfer rate, 1:1 \n          interleave and 2 floppy disk drives (5-1/4\" 360K, 1.2 Mb; 3-1/2\" \n          720K, 1.44 Mb).\n                Feature F301R includes an optional ROM BIOS with \"shadow \n                RAM\" that will enable the controller card to interface \n                with all types of ESDI drives without modifying the system \n                ROM BIOS.\n                Feature F300R does not include the ROM BIOS and you must \n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameters.\n                \n          \n          WD1007V-SE2/ME2 - This controller card will support up to 2 ESDI \n          hard disk drives, 15 megabit per second data transfer rate, 1:1 \n          interleave and 2 floppy drives (5-1/4\" 360K, 1.2 Mb; 3-1/2\" \n          720K, 1.44 Mb).  The \"V\" boards can run in high speed AT systems \n          (10 to 12 megahertz bus speed).\n                Feature F301R includes an optional ROM BIOS with \"shadow \n                RAM\" that will enable the controller card to interface \n                with all types of ESDI drives without modifying the system \n                ROM BIOS.\n                Feature F300R does not include the ROM BIOS and you must \n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameters.\n                \n                \n          WD1007A-WA4 - This controller card will support up to 2 ESDI \n          hard disk drives, 10 megabit per second data transfer rate, 1:1 \n          interleave and 2 floppy disk drives (5-1/4\" 360K, 1.2 Mb; 3-1/2\" \n          720K, 1.44 Mb).  This board also has a serial port and parallel \n          port.\n                Feature F301R includes an optional ROM BIOS with \"shadow \n                RAM\" that will enable the controller card to interface \n                with all types of ESDI drives without modifying the system \n                ROM BIOS.\n                Feature F300R does not include the ROM BIOS and you must \n                use the drive tables on your system's ROM BIOS that must \n                contain the appropriate drive parameter. \n                \n                \n                                       -7-\n\n\n      \n     HARD DISK CONTROLLERS FOR SCSI HARD DISK DRIVES\n     \n          \n          7000-ASC - A SCSI host adapter that serves as an interface \n          between the AT bus and the SCSI bus.  All necessary drivers and \n          receivers are included, permitting direct cable connections to \n          the SCSI bus through a 50 pin connector and to the AT bus \n          through two edge connectors.  The 7000-ASC utilizes jumper  \n          configurable options that enable the address space, DMA channels \n          and interrupt requests to be selected to suit the end user's \n          application.  The board also features word data transfer at 4 \n          megabytes per second (synchronous), an on-board floppy disk \n          controller and a ROM BIOS.  Please note that the 7000-ASC \n          operates using standard DOS 3.2 or DOS 3.3 only.\n          \n          7000-FASST2 - This SCSI host adapter card provides the same \n          features as the 7000-ASC plus additional support capabilities \n          using software developed by Columbia Data Products.  The 7000-\n          FASST2 will support MS-DOS 3.2-3.3, Compaq DOS 3.31, PC-DOS 4.0, \n          PC-MOS/386 version 2.1, XENIX, Microsoft Windows, Novell and \n          Sytos tape backup.\n          \n          WDATXT-FASST KIT - An \"unintelligent\" SCSI host adapter that is \n          compatible with the IBM XT, AT and compatible systems.  It uses \n          a 50 pin external SCSI bus \"D\" connector with a standard 50 pin \n          internal SCSI cable.  The WDATXT-FASST can be used as  both a \n          target and an initiator and it serves as an excellent tool for \n          SCSI designers.  It also provides a low cost alternative for end-\n          users desiring to install a SCSI peripheral device such as a \n          hard disk drive or a tape backup unit. The kit includes an 8-bit \n          SCSI HBA board, manual, FASST software diskettes and an internal \n          SCSI cable.\n          \n          SYTOS TAPE BACKUP - (Utility for 7000-FASST) - FASST-SYTOS - \n          FASST version of Sytos tape backup utilities.  MS-DOS \n          compatible, it runs with FASST software products Revision 3.3+.\n          \n          \n     HARD DISK CONTROLLERS FOR PS/2 MODEL 50, 60, 80 SYSTEMS  \n     (MICROCHANNEL ARCHITECTURE)\n     \n          \n          WD1006V-MC1, feature F300R - Hard disk controller with an \n          ST506/ST412 interface for microchannel systems.  It supports 2 \n          MFM drives with up to 16 heads and 2048 cylinders, 1:1 \n          interleave and faster data transfer due to \"look ahead \n          caching.\"  The\"V\" boards can run in high speed AT systems (10 to \n          16 megahertz system speed).\n          \n     \n                                       -8-\n\n\n          \n          WD1007V-MC1, feature F300R - This controller card will support \n          up to 2 ESDI hard disk drives, 15 megabit per second transfer \n          rate and it contains a ROM BIOS with \"shadow RAM\" that will \n          enable the controller card to interface with all types of ESDI \n          hard disk drives without modifying the system BIOS.  It uses 1:1 \n          interleave.  The \"V\" boards can run in high speed AT systems, \n          (10 to 12 megahertz bus speed).\n          \n          \n     \n     CONTROLLERS FOR FLOPPY DISK DRIVES ONLY\n     \n          \n          WD1002A-FOX - Half-slot floppy disk controller for XT or AT \n          systems.  Four versions of the board are available:\n                Feature F001 supports two floppy disk drives.\n                Feature F002 supports four floppy disk drives and includes \n                an optional 37-pin control, data and power connector and \n                an optional 4-pin power connector.\n                Feature F003 supports two floppy disk drives and includes \n                a ROM BIOS that will enable your system to recognize     \n                floppy disk drives that may not be supported by your AT \n                system ROM BIOS.  The optional ROM BIOS will also allow \n                this controller card to operate high density floppy disk\n                drives in an XT system.\n                Feature F004 supports four floppy disk drives and includes \n                an optional 37-pin control, data and power connector, an \n                optional 4-pin power connector and a ROM BIOS that will \n                enable your system to recognize floppy disk drives that \n                may not be supported by your AT system ROM BIOS.  The \n                optional ROM BIOS will also allow this controller card to \n                operate high density floppy disk drives in an XT system.\n                \n\n\n-- \n    Prof. L. Piacenza - Chemistry Department - University of Transkei\n    Internet: chpp@unitrix.utr.ac.za  (preferred).  Tel. 27-471-3022384\n    Internet: sppp@hippo.ru.ac.za\n\n\nFrom necis!mydual.uucp!olson@transfer.stratus.com Mon Apr  5 12:14:06 1993\nReceived: from transfer.stratus.com by ponder (5.61/1.36)\n\tid AA29202; Mon, 5 Apr 93 12:14:03 -0500\nReceived: from necis.UUCP by transfer.stratus.com (4.1/3.12-jjm)\n\tid AA22183; Mon, 5 Apr 93 13:12:04 EDT\nReceived: from mydual by necis.necis.ma.nec.com id aa21760; 5 Apr 93 12:50 EDT\nReceived: by mydual.UUCP (5.58/smail2.5/09-28-87)\n\tid AA18009; Mon, 5 Apr 93 13:24:23 EST\nDate: Mon, 5 Apr 93 13:24:23 EST\nFrom: \"Kirtland H. Olson\" <mydual!olson@transfer.stratus.com>\nMessage-Id: <9304051824.AA18009@mydual.UUCP>\nTo: drice@ponder\nSubject: Re: Drive/Controller Compatibility\nNewsgroups: comp.sys.ibm.pc.hardware\nIn-Reply-To: <drice.733866833@ponder>\nOrganization: The Harvard Group, 01451-0667\nReply-To: necis!olson%mydual.uucp@transfer.stratus.com\nCc: \nStatus: OR\n\nSuggest you move jumper on drive rightward one position.\n\nRegards,\n\n      --Kirt\n\n-- \nKirtland H Olson Harvard MA 01451-0667 USA olson%mydual.uucp@necis.ma.nec.com\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1485, "properties": {"category": "comp.graphics", "text": "From: ab@nova.cc.purdue.edu (Allen B)\nSubject: Re: comp.graphics.programmer\nOrganization: Purdue University\nLines: 26\n\nIn article <1qukk7INNd4l@no-names.nerdc.ufl.edu> lioness@maple.circa.ufl.edu  \nwrites:\n> However, that is almost overkill.  Something more like this would probably\n> make EVERYONE a lot happier:\n> \n> comp.graphics.programmer\n> comp.graphics.hardware\n> comp.graphics.apps\n> comp.graphics.misc\n\nThat's closer, but I dislike \"apps\".  \"software\" (vs. \"hardware\")\nwould be better.  Would that engulf alt.graphics.pixutils?  Or would\nthat be \"programmer\"?\n\nI don't know if traffic is really heavy enough to warrant a newsgroup\nsplit.  Look how busy comp.graphics.research is (not).\n\nIt's true that a lot of the traffic here is rehashing FAQs and\ndiscussing things that would probably be better diverted to\nsystem-specific groups, but I don't know whether a split would help\nor hurt that cause.\n\nMaybe we need a comp.graphics.RTFB for all those people who can't be\nbothered to read the fine books out there.  Right, Dr. Rogers? :-)\n\nab\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1486, "properties": {"category": "soc.religion.christian", "text": "From: MNHCC@cunyvm.bitnet (Marty Helgesen)\nSubject: RADIO FREE THULCANDRA  (was Dungeons & Dragons: An author's view\nOrganization: City University of New York\nLines: 18\n\nThere was a recent discussion of Dungeons and Dragons and other role\nplaying games.  Since there is a lot of crossover between gamers and\nscience fiction and fantasy fans, I will mention that I am the editor\nand publisher of RADIO FREE THULCANRA, a Christian-oriented science\nfiction fanzine.  It is not a Christian magazine with a special\ninterest in science fiction.  It is a science fiction fanzine with a\nspecial interest in Christianity.  Gaming is not a major topic of\ndiscussion but it has come up in some letters.  (No, there are no\narguments about whether D&D is satanic.  People who think it is are\nnot likely to be reading RFT.)  Anyway, I am now working on the April\nissue.  I will send a sample copy to any reader of\nsoc.religion.christian who requests it.  It is printed on paper, so\nrequests should include a snail-mail address.\n-------\nMarty Helgesen\nBitnet: mnhcc@cunyvm   Internet: mnhcc@cunyvm.cuny.edu\n\n\"What if there were no such thing as a hypothetical situation?\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1487, "properties": {"category": "rec.sport.baseball", "text": "From: Eastgate@world.std.com (Mark Bernstein)\nSubject: Re: Jewish Baseball Players?\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 10\n\nAl Weiss played second for the White Sox in the early sixties, chiefly as\nback up to Don Buford. Good glove, no hit, some spunk.\n\n(Which reminds me: do they still serve Kosher hot dogs at the new Comiskey?)\n\n-- \nMark Bernstein\nEastgate Systems, Inc.   134 Main Street   Watertown MA 02172 USA\nvoice: (800) 562-1638 in USA   +1(617) 924-9044\nEastgate@world.std.com    Compuserve: 76146,262    AppleLink:Eastgate \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1488, "properties": {"category": "rec.sport.hockey", "text": "From: delarocq@eos.ncsu.edu (DERRELL EMERY LAROCQUE)\nSubject: BUFFALO 4, Boston 0: Defense!!\nReply-To: delarocq@eos.ncsu.edu (DERRELL EMERY LAROCQUE)\nOrganization: North Carolina State University, Project Eos\nLines: 26\nOriginator: delarocq@c00082-100lez.eos.ncsu.edu\n\n\n\n\n\n\n   Tonight in Boston, the Buffalo Sabres blanked the Boston\nBruins 4-0 tonight in Boston. Looks like Boston can hang\nthis season up, because Buffalo's home record is awesome!!!!\nThis is great.. Buffalo fans might get to see revenge for\nlast year!!!!! :)\n-- \ndelarocq@eos.ncsu.edu\n\n\n      \n---------------------------------------------------------------------------   \n1988,1989,1990,1991 AFC East Division Champions\n1991,1992, AND 1993 AFC Conference Champions!!!!!!!!  :)\n\nSquished the Fish ............... Monday Night Football, November 16, 1992..\nSQUISHED THE TRASH TALKING FISH.. AFC CHAMPIONSHIP, JANUARY 17, 1992..\n\nIf you are a Buffalo Bills fan, email me at delarocq@eos.ncsu.edu\nso we can talk all about the games, insight, etc.\nIf you are a Packers fan, let me know. I am interested in any news\nout of Green Bay...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1489, "properties": {"category": "talk.politics.guns", "text": "From: paull@hplabsz.hpl.hp.com (Robert Paull)\nSubject: Re: Newspapers censoring gun advertisements\nOrganization: Hewlett-Packard Laboratories Palo Alto,CA\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 17\n\nAndy Freeman (andy@SAIL.Stanford.EDU) wrote:\n: >NEWSPAPER AD CENSORSHIP\n: >\n: >San Fran. Independent\tSan Fran. Examiner\tSan Jose Mercury News\n: >1201 Evans Ave\t\t110 5th St.\t\t750 Ridder Park Dr.\n: >San Fran., CA 94124\tSan Fran., CA 94103\tSan Jose, CA 95190\n: \nHmmm, the SJ Merc. carries Targemasters West, National Shooting club,\n Reeds sportshop, Sportsmens supply and Big 5 ads. They all sell guns.\nNo they don't have any adds like in Shotgun news.  If they won't at least\nrun the current adds I swear I'll cancel my subscription and end to cash\nto the CRPA.\n\nRob P.\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1490, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kschang@sfsuvax1.sfsu.edu (Kuo-Sheng (Kasey) Chang)\nSubject: Re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nOrganization: San Francisco State University\nLines: 29\n\nIn article <C64n5K.L45@vcd.hp.com> robertt@vcd.hp.com (Bob Taylor) writes:\n>Justin Whitton (ma90jjw%isis@ajax.rsre.mod.uk) wrote:\n>: In article <C60EKI.Kvp@vcd.hp.com> edmoore@vcd.hp.com (Ed Moore) writes:\n>: \n>:    thomas.d.fellrath.1@nd.edu@nd.edu wrote:\n>: \n>:    I think the ink now used in the DeskJet family is water-fast. \n>: \n>: I've had pictures ruined by a few drops of rain. These were colour pictures\n>: from a DeskJet 500C. Mind you, it could have been acid rain:-)\n>\n>The black ink is waterfast, but the color isn't\n>\n>: \n>: I use a BJ10ex. Ink dries fast, but it really doesn't like getting wet.\n>: \n>: --\n>: /-----------------------------------------------------------------------------\\\n>: |Justin Whitton at ma90jjw%hermes@uk.mod.relay |Where no man has gone before..|\n>: |after August mail ma90jjw@brunel.ac.uk.       \\------------------------------|\n>: |Disclaimer: My opinions count for nothing, except when the office is empty.  |\n>: |I'm a student => intelligence = 0.                                           |\n>: \\-----------------------------------------------------------------------------/\n>\n>Bob Taylor\n>HP Vancouver\n>\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1491, "properties": {"category": "comp.windows.x", "text": "From: wolfson@ll.mit.edu (Harry Wolfson)\nSubject: Re: MacX 1.2 color problem\nKeywords: mac x color window macx\nOrganization: MIT Lincoln Laboratory\nLines: 16\n\nStan Kerr writes:\n >When some types of client windows are displayed, parts of the windows\n >are in the wrong color; if the window is moved slightly, forcing the server\n >to repaint it, it is repainted in the correct colors. It doesn't happen\n\nI have the exact same problem when running Hewlett Packard's Microwave Design\nSystem (MDS) from an HP 380 unix box and running MacX 1.2, Sys 7.0.1*.\nNormally, MDS draws a window with a deep blue backround, but occasionally\nit becomes a light blue and all the text, etc, inside the window become\n\"washed out\" (nearly invisible). I thought that it was just something\nbrain dead that I was doing or a subtle conflict with another app or INIT.\n\nBy slightly moving the window, and forcing a re-draw, the colors get corrected.\n\nHarry Wolfson\nwolfson@ll.mit.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1492, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: Jewish Baseball Players?\n <1993Apr16.173252.7393@asd.com>\nLines: 11\n\nIn article <1993Apr16.173252.7393@asd.com>, scott@asd.com (Scott Barman) says:\n>\n>Wasn't Ron Bloomberg, the former Yankee who got the first base hit\n>by a Designated Hitter, Jewish??\n\ni have no idea, nor do i care.  however, i'd like to point out that\nblomberg got the first plate appearance by a designated hitter, and\nthe first walk by a designated hitter.  i am not sure, but i do not\nthink that he also got the first hit by a designated hitter.\n\nbob vesterman.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1493, "properties": {"category": "soc.religion.christian", "text": "From: sdittman@liberty.uc.wlu.edu (Scott Dittman)\nSubject: Re: Some questions from a new Christian\nOrganization: Washington & Lee University\nLines: 21\n\nSteven R Hoskins (18669@bach.udel.edu) wrote:\n: Hi,\n\n: I am new to this newsgroup, and also fairly new to christianity.\n: ... I realize I am very ignorant about much of the Bible and\n: quite possibly about what Christians should hold as true. This I am trying\n: to rectify (by reading the Bible of course), but it would be helpful\n: to also read a good interpretation/commentary on the Bible or other\n: relevant aspects of the Christian faith. One of my questions I would\n: like to ask is - Can anyone recommend a good reading list of theological\n: works intended for a lay person?\n\nI'd recommend McDowell's \"Evidence that Demands a Verdict\" books (3 I\nthink) and  Manfred Brauch's \"Hard Sayings of Paul\".  He also may have\ndone \"Hard Sayings of Jesus\".  My focus would be for a new Christian to\nstruggle with his faith and be encouraged by the historical evidence,\nespecially one who comes from a background which emphasizes knowable faith.\n-- \nScott Dittman                    email: sdittman@wlu.edu\nUniversity Registrar             talk: (703)463-8455   fax: (703)463-8024\nWashington and Lee University    snail mail:  Lexington Virginia 24450\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1494, "properties": {"category": "comp.sys.mac.hardware", "text": "From: roes@vax.oxford.ac.uk\nSubject: Re: AD conversion\nOrganization: Oxford University VAX 6620\nLines: 36\n\nb-clark@nwu.edu (Brian Clark) writes:\n\n> In article <1993Apr13.181720.13214@vax.oxford.ac.uk>, roes@vax.oxford.ac.uk\n> wrote:\n> >\n> > I am working a  data acquisition and analysis program to collect data\n> > from insect sensory organs.\n> >\n> > (stuff deleted)\n> >\n> > Another alternative is the use of the sound input port.\n\n> Can you really make due with the non-existent dynamic range of an 8-bit\n> converter, of probably dubious linearity and monotonicity, and perhaps\n> AC-coupled as well?\n\nIt clearly depends on the type of questions you are asking but in many\ncases it will do fine. The critical information from the neuron is in\nthe firing frequency (maximum about 100 action potentials per\nseconds), and not in the amplitude of the signal or in details of the\nsignal shape. So the resolution of about 0.4 % you get with an 8 bit\nconvertor is more then sufficient.\n\nAC coupling does not have to be a problem either, since in many cases\nyou are not interested in the DC level. My pre amplifier is AC coupled\nalso. The critical point is the lowest frequency that will pass. If\nthe cutoff point is to high, the action potentials will be slightly\ndistorted. But even that normally does not matter since it is the\noccurrence of the spike that is important. \n\nHowever, I do want to know what exactly I can expect before I start\nbattling with the toolbox to get it going. As yet I have no clue were\nto start looking for the technical specifications.\n\nPeter.  \nroes@vax.oxford.ac.uk\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1495, "properties": {"category": "alt.atheism", "text": "From: datepper@phoenix.Princeton.EDU (David Aaron Tepper)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOriginator: news@nimaster\nNntp-Posting-Host: phoenix.princeton.edu\nOrganization: Princeton University\nLines: 28\n\nIn article <30136@ursa.bear.com> halat@pooh.bears (Jim Halat) writes:\n>In article <1qjd3o$nlv@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n>>Firstly, science has its basis in values, not the other way round.\n>>So you better explain what objective atoms are, and how we get them\n>>from subjective values, before we go any further.\n>\n>Atoms are not objective.  They aren't even real.  What scientists call\n>an atom is nothing more than a mathematical model that describes \n>certain physical, observable properties of our surroundings.  All\n>of which is subjective.  \n\n[rest deleted...]\n\nYou were a liberal arts major, weren'tcha?\n\nGuess you never saw that photo of the smallest logo in the world--\n\"IBM\" made with noble gas atoms (krypton? xenon? I forget the\nspecifics).\n\nAtoms, trees, electrons are all independently observable and\nverifiable. Morals aren't. See the difference?\n\nTep\n-- \nMen who love brown tend to be warm and deep, sensitive to the needs and\ndesires of their partners. Sex is a 24 hour a day thing. Snuggling by\nthe fire, walking in the rain or catching snowflakes on their tongue is\na real turn-on to a lover of brown. (thanx becka!)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1496, "properties": {"category": "soc.religion.christian", "text": "From: lmvec@westminster.ac.uk (William Hargreaves)\nSubject: Help\nOrganization: University of Westminster\nLines: 25\n\nHi everyone, \n\t   I'm a commited Christian that is battling with a problem.  I know\nthat romans talks about how we are saved by our faith not our deeds, yet\nhebrews and james say that faith without deeds is useless, saying' You fools,\ndo you still think that just believing is enough?'\n\nNow if someone is fully believing but there life is totally lead by themselves\nand not by God, according to Romans that person is still saved by there faith.\nBut then there is the bit which says that God preferes someone who is cold to\nhim (i.e. doesn't know him - condemned) so a lukewarm Christian someone who\nknows and believes in God but doesn't make any attempt to live by the bible.\n\nNow I am of the opinion that you a saved through faith alone (not what you do)\nas taught in Romans, but how can I square up in my mind the teachings of James\nin conjunction with the lukewarm Christian being 'spat-out'\n\nCan anyone help me, this really bothers me.\n\nIn Christ,\nWill\n\n-- \n============================================\n| Dallas Cowboys - World Champions 1992-93 |\n============================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1497, "properties": {"category": "comp.sys.mac.hardware", "text": "From: zxxst+@pitt.edu (Zhihua Xie)\nSubject: For the poor owner of IIsi\nOrganization: University of Pittsburgh\nLines: 16\n\nMacintosh IIsi, 3/40, 80ns.\nClock-upgraded IIsi works well at 25MHZ, however, does not work with\nNubus adaptor and 1400k disk even though it can read/write 800k disk\nat32MHz. Interestingly, upgraded IIsi overcomes basically the fighting\nbetween the Vedio and the System so that CPU never be reduced below 8 no\nmater whether the cache is on or off. This is pretty useful when you\nuse the virtual memory of system 7. \n\n                    20MHz         25MHZ                 32MHz \n     CPU            5.46(6.0.7)\t   6.81(6.0.7)\t8.83(6.0.7) 8.74(7VM)\n     Graf.   \t    6.72           8.56        11.07        9.19 \n     Disk           1.44           1.50         1.56        1.49\n     Math.          5.72           11.27(FPU)   9.36        8.84\n                                            \n                                      speedometer3.1\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1498, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lee@tosspot.sv.com (Lee Reynolds)\nSubject: Serial multiport card for sale.\nOrganization: Ludus Associates, Incorporated.\nLines: 9\n\nSelling -\n\n          Arnet Multiport card. Four serial ports on one card (16450s)\nwith docs and drivers for OS/2 and DOS (works great with Unix flavors\ntoo).  Aggregate is probably around 64Kb.\n\n   Offers?  Also willing to swap for monitor.\n\n                                    Lee  (lee@tosspot.sv.com)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1499, "properties": {"category": "comp.sys.mac.hardware", "text": "From: carsona@fraser.sfu.ca (Debra Carson)\nSubject: (Q) buying Advice\nKeywords: Ziffnet/mac buy advice stack\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 22\n\nDoes anyone have a version of \"Which Mac Do I Buy?\"\nthat is later than v 1.3.1?\n\nI no longer have access the ZiffNet/Mac, accessed\nthrough CompuServe, to check for myself.\n\n\"Which Mac...\" is a HyperCard stack that assists\nin decision making based on budget, features, and\nmain software used.\n\nPlease let me know if you can help me out. Download\nfrom CompuServe should not cost much if a higher speed\nmodem is used. Stack, compressed, is about 125KB?\n\nThanks for any help...\n\nDale \ncarsona@sfu.ca\n\n.\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1500, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bernstei@shrike.und.ac.za (Simon Bernstein)\nSubject: BOCA XGA3 woes\nOrganization: University of Natal (Durban), South Africa\nLines: 25\nNNTP-Posting-Host: shrike.und.ac.za\nX-Newsreader: TIN [version 1.1 PL9]\n\nHi.  I am having some interesting problems with my Boca graphics card, which \nis based on the Cirrus Logic chipset (I am not sure exactly which one).  The\nproblem is as follows:\n\nIf I use any Windows driver at 800x600 except for the 64K-colour driver (ie\n16 colour or 256 colour), the image on screen becomes too tall - no amount of\nresizing on the monitor will make it fit.  And if I use Excel with the 64K-\ncolour driver, it hangs as soon as it loads.  Anyone out there used this\ncard/experienced anything similar.\n\nPlease reply by mail, and I will post any solutions here.\n\nRegards\n\n  - Simon\n\n\n--\n\n\n+-------------------------------+--------------------------------------------+\n|  Simon Bernstein              |    \"Man is condemned to be free\" (Sartre)  |\n|  University of Natal, Durban  +--------------------------------------------+\n|  bernstei@shrike.und.ac.za    |              Simonfish on IRC              |\n+-------------------------------+--------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1501, "properties": {"category": "sci.crypt", "text": "From: ifarqhar@laurel.ocs.mq.edu.au (Ian Farquhar)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: Macquarie University, Sydney Australia\nLines: 46\nNNTP-Posting-Host: laurel.ocs.mq.edu.au\n\nIn article <1r0ausINNi01@senator-bedfellow.MIT.EDU> jfc@athena.mit.edu (John F Carr) writes:\n>The chip and algorithm are classified.  If you reverse engineer it and\n>tell people, you are likely to go to jail.\n\nI don't find this a credible argument, for two reasons.  One you have\nsupplied below: unless I care about entering the USA at any time in the\nfuture (eg. the Taiwanese backyard cloners - who BTW have been known to\ndecap custom silicon and reproduce it on daughterboards when pirating\nhigh-profit arcade machines and the like - who wouldn't care less), I am not \ngoing to care much about US confidentiality, am I?  Only people like the\nreal me, who does care about travelling to various countries for business\nreasons, will sit up and follow laws like this, but I would contend that\nwe're not the main threat.\n\nI also have grave doubts whether an algorythm widely distributed in silicon\ncould possibly be called \"classified.\"  It's like handing out military\nsecrets to the whole world in envelopes marked \"don't open me.\"  I can\nimagine several credible defences which could be employed if it came to\na trial.  One would be the stupidity of the government's actions.\n\n>Perhaps some foreign governments or corporations could help us out by\n>cracking the system outside the USA.  The US government could probably\n>stop importation of clone hardware, but a software implementation\n>should be practical.\n\nAmusing thought: could they have employed an algorythm which is infeasable\nfor a fast software implementation, but which is easy in custom hardware?\nIn DES, the extensive use of permutation tables (trivial in hardware: you\njust swap bus lines), but relatively slow in software have had a big effect\non the speed difference between hardware and software implementations of\nthat cipher (indeed, I suspect that Lucifer's designers were well aware that\nit would be, and approved.)  Certain algorythms (usually parallel search\nalgorythms) can be very slow in software, yet can fly in custom hardware.\nI have no proof of their employment in Clipper -- it is pure conjecture.  \nHowever, as a software implementation of this cipher is something that its \ndesigners would have been trying to avoid at all costs, then the inclusion \nof such techniques seems credible.\n\nHmmm... I also wonder what Intergraph thinks about the use of the name\n\"Clipper\" for this device. :)\n\n--\nIan Farquhar                      Phone : + 61 2 805-9400\nOffice of Computing Services      Fax   : + 61 2 805-7433\nMacquarie University  NSW  2109   Also  : + 61 2 805-7420\nAustralia                         EMail : ifarqhar@laurel.ocs.mq.edu.au.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1502, "properties": {"category": "sci.electronics", "text": "From: then@snakemail.hut.fi (Tomi  H Engdahl)\nSubject: Re: Telephone on hook/off hok ok circuit ~\nOrganization: Helsinki University of Technology, Finland\nLines: 17\n\t<laird.734044906@pasture.ecn.purdue.edu>\n\t<1ptolq$p7e@werple.apana.org.au>\nNNTP-Posting-Host: lk-hp-11.hut.fi\nIn-reply-to: petert@zikzak.apana.org.au's message of 7 Apr 1993 05:26:18 GMT\n\nIn article <1ptolq$p7e@werple.apana.org.au> petert@zikzak.apana.org.au (Peter T.) writes:\n\n>Since an on-hook line is aprox 48-50V, and off-hook it usually drops below 10V.\n>How about an LED in series with a zener say around 30V.\n>On-hook = LED on\n>Off-hook = LED off.\n>Would this work? If anyone tries/tried it, please let me know.\n\nNot recommended. Your circuit would take too much current, when\ntelephone is on-hook. Telephone company does not like it.\n\n\n--\nTomi.Engdahl@hut.fi  !  LOWERY'S LAW:\nthen@niksula.hut.fi  !  \"If it jams - force it. If it breaks,\n                     !   it needed replacing anyway.\" \n* This text is provided \"as is\" without any express or implied warranty *\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1503, "properties": {"category": "rec.sport.baseball", "text": "From: edo@casbah.acns.nwu.edu (Edward Ouellette)\nSubject: Re: Notes on Jays vs. Indians Series\nNntp-Posting-Host: unseen1.acns.nwu.edu\nOrganization: Northwestern University, Evanston Illinois.\nDistribution: na\nLines: 41\n\nIn article <8966@blue.cis.pitt.edu> dtate+@pitt.edu (David M. Tate) writes:\n>Substituting irony for brains, (Bruce Klopfenstein) said:\n>\n>>dtate+@pitt.edu (David M. Tate) writes:\n>\n>>> Of *course* they left RBIs off; we're comparing Alomar the individual with\n>>> Baerga the individual, so only individual stats count.  \n>\n>>I forgot.  Most runs are scored by players stealing home, so RBI don't\n>>count for anything.\n>\n>Uh, right.  You also forgot that you can't get an RBI (barring a HR) with\n>nobody on base.  What fraction of all runs come on solo HR?\n>\n>Most runs are scored because there happened to be players on base when the\n>batter did something good.  I use the phrase \"happened to be\" advisedly.\n>Lots of people have tried to figure out who the players are who have the\n>most ability to \"turn it up a notch\" in clutch/RBI/whatever situations, and\n>what they've found is that there is no evidence that *anyone* has such an\n>ability to any measurable extent.  There are no clutch hitters.  People who\n>tend to do things that *would* cause an RBI if there were somebody on base\n>end up getting RBIs proportional to how many of their teammates obliged by\n>being in position.  \n>\n>>My mistake.\n>\n>I agree.\n>\nMe, too... RBI are a worthless stat. Of course, so is stolen bases because \nsometimes runners are in front of a player that would otherwise run. And of\ncourse pitchers pitch differently with different people on different bases,\nso batting average, slugging and obp out, too.  Hmmm... i guess homers would\nnot count then, either.\nMy point? RBI might not be a perfect stat but nothing is. And no stat (or lack\nof) can tell me there are no clutch hitters. Maybe no stat CAN tell me,\neither, but some people are... I just know it!!! 8)\n\nEd O.\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.071+0000", "event": "documents", "entityId": 1504, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: phu.luong@u2u.lonestar.org (Phu Luong) \nSubject: help\nDistribution: world\nOrganization: USER-TO-USER PCBoard (214)492-6565 (USR DS v32bis)\nReply-To: phu.luong@u2u.lonestar.org (Phu Luong) \nLines: 12\n\n\tCan somone explain to me all the stuff about modems...\nlike v.32 v.42 HST USRobotics...\n \nwhy cheap 14.4 can' t cannot connect fast to some modems...\n\n\njust explain to me everything!!!  thanks..\n\n\n... We must believe in free will.  We have no choice.\n___ Blue Wave/QWK v2.12\n                                                                                                            \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1505, "properties": {"category": "sci.electronics", "text": "From: sehari@iastate.edu (Babak Sehari)\nSubject: How to the disks copy protected.\nOriginator: sehari@marge.ecss.iastate.edu\nOrganization: Iowa State University of Science and Technology, Ames, Iowa.\nLines: 10\n\n---\n\nI was wondering, what copy protection techniques are avaliable, and how\neffective are they?  Has anyone have any experience in this area?\n\n                      With highest regards,\n                           Babak   Sehari.\n\n\n-- \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1506, "properties": {"category": "comp.graphics", "text": "From: boylan@pi.eai.iastate.edu (Terran Boylan)\nSubject: Reaction-Diffusion techniques\nOrganization: Engineering Animation, Inc.\nLines: 24\n\nThis past week I've been playing with some of the R-D (Reaction-\nDiffusion, not to be confused with RDS or R&D) techniques\nfrom SIGGRAPH '91.\n\nI was wondering what material is available to explain the control\nmechanism a little more.  It seems to me very much like a matter of\npicking random magic numbers and sitting back and waiting.  Although\nboth of the papers (Turk and Witkin & Kass) were very well organized\nand extremely helpful, I guess what I need is a more basic description\nof the technique, especially wrt the control mechanisms.  The tests\nthat I did had a tendency to either turn into blurry mud or become\nunstable.\n\nIs there any info available online?  Source code would be great but\nnot necessary.\n\nThanks!\n\n\n-- \n---\nTerran J. Boylan, Sr. Artist/Programmer | \"It's better to have loved\nEngineering Animation, Inc.,  Ames, IA  | and lost than just to have\n(515) 296-9908 / (515) 296-7892 (> 5PM) | lost.\" -- Dorky Dog\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1507, "properties": {"category": "sci.space", "text": "From: shread@ll.mit.edu ( Peter Shread)\nSubject: El Sets\nOrganization: MIT Lincoln Laboratory\nDistribution: us\nLines: 5\n\nI am looking for a source of orbital element sets\nother than UAF/Space Command.  I believe there is\none on CompuServe.  Please let me know what other\npossible sources there are and how I can reach \nthem.  Thanks much.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1508, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 05/14\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 957\n\n\n------------ Part 5 of 14 ------------\nM)B9R&KJZ)EVZ=+ITNKH>?7U=PGU]+\"Q=?72_=\"PU'GT>+,<LORPU86$1EX,8\nM,P$HWA=@8!SKWI_,S\"B<)S<W-R>!5C<-S`HFNAIR<K)R<B9RMW)+D)#D\"C!V\nM=KPYWA>\\'.L74?4<JPW,5EQEFYJLKHBQ?K5^(7*ZLK*Z)KH:NKJZ)G0FNKI=\nM)K)=)KHFNGU=NK*RLB9TLKIT)L)=PK)=71JRNKH:<AIR&KH:<B9R&G*W<G*W\nM&K>W&JVM<G)RK:UR<K>W<JVM<G)R<A^M<G*WMW(5<K=RK:URMW)RM[>WM[=R\nM<JUR'Q^W<A45<JUR%:VMMQ\\5K7)RK16WMQ6MK:T5K:UO%6\\5'Q6MK6\\5K6]O\nM%6^M%:T5;Q6W%16M%:VW%:T?M[>M%:VWK:VM<K<5K4]RK:UR<G)RMW*W3W*M\nMMW(:<B9R<B8:MW)R<G*W&AH:&K<:<K=R<JURK7*MMW*M<G*W%;>MK16MMZT(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"*T5K145MZVM<A45K;<(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!H:<AIR<G)R\nM<B8F<G(:<G)R<G(:K7)R<G)/3[=RK7*W'ZUR%;>MK:VW;[<5%6\\5%15O;Q45\nM;V]O%15OJ*AO%6]O;ZBHJ&\\5J`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!XLPGT>72PL=+HL?1Y=\nM'BRZLG1]LK*R71JR&K*ZNM34`DN0T\"L!=A.\\$Q-VO':?ZY^4,]`1)6Z089\"J\nM/K.S&+.;\"`@(\"`@(\"`@(\"`A+2\\@.TXC((,$AW!TBJJ:.?#`P8Z&!5E96X5:4\nME%9\\7%U=75TL+'UT+\"PL?2Q]+%U=75TL?1Y]71ZZ?;I]LKJZ7;I=)AJZ\"`@(\nM\"`5KC;G4T[:Q;$,=(B%H6N!^:\"((\"`@(\"`@(\"`@(\"`@(\"$M+`@)_3=.N`DL%\nM2D,B(F[I2D.Y:!U-2D,B(JP^\\1T=[[9R<G)R<@#K=G`P84A+`M0@U-1_(-34\nMU-0(\"`@(\"!JW<G(:&G*W<G)RK;=/&G*WMW)R<K=R<G)RMW)R&G)R)G(F3QIR\nM<@@(\"`@(\"`@(\"`@(\"`\";)3MH?B$B(J:SK#ZSK+YD<`@(\"`CNV=DED\"6J3=.N\nM\\0*`P2'<'6CJP>\"Y:&C!2CZ:FIM<5E96\"`@(\"`@(\"`@(\"`@(<G(:`.YA)260\nM86%A$4M+R`+4\"=0)U%VZ75U=772ZNKJZ=+JZ?1XL'GU=77TL71XL?5TU?1XL\nM-2P>OS4L+\"PL86$1EX..,P$H)Y\\WS#GK)Y\\W-RB<)\\PWS\">?-\\P-S`I=75VZ\nMPB9RNAJZ&B;#D!'D\"C\"\\O!,<#1>\\'`T74?4<J]XW5EQEFYKQKHBQ?K6Q(;H:\nM)G(F)AHF)B9R&G)R&B8F)B:Z<KHF&G(:)KIR<AH:LB8:LKHF<KHF&KJR<KJZ\nM&KJZNL*ZNETFLGTFPB9]NKH>7;JZ72PL+!Y]-1Y=='UT+'U='G0L77T>72PL\nM735]+,*Z+\"PLNGU=?<*RLB:R='1=NK*ZNK(F&B8F<AIR&AH:<K<:<G)R<G*M\nM<JVMK7)/K:VW<JVW'Q5R%145%;>M<K=R<G)R3ZUR<G*W<K<:MW)R&G(:)G)R\nM)K(:<G)RLG(:)G)R<G(:NK*Z<K)R<G(F<B9R<G(:<JUR<JUR'W*M<G*W<A6M\nMK16M%6^M%:T5%6\\5;V\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(%:T5\nM%6]O%6\\5K15O\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(%145MQ45<K>M<G)RK7*W'W*MMT]RK:UR<AJMK7)RK:VWK7)R3ZUR%16M\nM3Q6M%:T5MZUOK6]O%15O;Q5OJ!5OJ&]O;Z@(;V\\(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(MQH:\nM)B9R&KJZ&L)=NKJZ)AJRNKI=77U]729TNGU=NKI]=\"#4?TN082LK,W83$Q-V\nMO'87ZY^4,RMA)6Z089\"J/C`P&#\".\"`@(\"`@(\"`BMMQ5+2\\@.TXC((,$AW!TB\nM1J:.5HR,4*&?5E8&X90W-U9\\7!JZNKH:NAHF&ET:)B;\"PK*R)KI=LG2ZLB9=\nM=+JZNKJZ71H(\"`@(\"`@(\"&QKC;;4T^]^;$,=(B&Q6N!^L?$(\"`@(\"`@(\"`@(\nM\"`@(\"$L\"`G]_3=.N`@(%2D,B(F[I2D,B'2)-2J#Q(JP^\\1TBL;9O;V]O;P\"K\nM=N$P8;Y+?]0@U-0@U-34U-0(\"!45J!45%15O;Q\\5;Q45K1\\5K145%145K:VM\nM%16MK;=RK7*W3W(:<@@(\"`@(\"`@(\"`@(\"`@(\"``D83MH6B$=(D2DK&JS\\;YD\nM2`A=NKKN;MDED\"6J34J@K&ZJP3N('6CJP>\"Y:&C!2CZ:FIM<5E96\"`@(\"`@(\nM\"`@(&K(:&K(:``<K82418=!A$260;F[4\"=1K?[JZLB8:<AIRNB8:&K(F&B8:\nM&G(F)KJR&AH:<B9R<B:Z<G*R<B8F<G(F86%AEX..,P$H)Y^4E#F<)X%6E\"B<\nM)\\S,8\">?8&`--PJR=+JZ?5UT770FNKI+D)#DCC`3$[P<#1<3')R?8/4<Z]Y6\nM7%QE/JPBB-Q^?K4=.QIR&G*MMW)RK7*M<K=RK16W3[>M'W*MMQ45K7*M3[>W\nMMW*M&K=RMR9R)AH:NB8F&B9]7;I='GU=?5TU+#7'Q\\<LO[]IQS5I:<=I:<>_\nM:<=ID6EIQY''D<=I:6F1-8;'Q\\<L+#7'-34>-7V_71YT?1Y]+'VZNKHF)EU=\nMNL*R)G*Z)G(F&G(:&G)R<G)R<AH:<AHF)AHF<AH:<B8:&G(FNG(FNAH:NKHF\nMNK*ZNAJZLKJZNB8:LK*R&B:Z&B:RNAHF)B9R<AH:<AIR<JUR&G*MMW)R3W*M\nMK;=R%:T5MZVMMZUOMQ45K15O;Q5OK16M%16M%6\\(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"!6M%;>M%:UO%145%14(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"*BHJ&]OJ&^HJ*AOJ&\\5;Z@5%6\\5;Q5O%16M%:UOK145\nM%16M3ZVW3ZT5K7)RK:T5MQ6WK:VMK:VMMQ6M%:T5K:T5MQ5OK145K0@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(;ZAO\"&^HJ*AOJ&]OK:T5%:T5<JUR<AI/K;=R)D^R&AHF<G(:\nMLB#4?TMN)6$K,P%VO!-V=G;UZQ>4,RLK81&081&J/K,P&+.;\"`@(\"!H:M[=R\nMMW)+2\\@.TXC4U,$AW!WQ1H..5E8&4*&?S#>4X3?,-U9<7!6W'W*M<JVW<K=R\nM<JT:<D\\:<K>W<G)R)AIR<K(:&G((\"`@(\"`@(\"`@(\"&QKC;;4T[9:$@QH:$.Q\nM6N!:?O$(\"`@(\"`@(\"`@(\"`@(\"$M_U\"!_P3NN`G]LTT,='0+I2D/<(O'E1#ZL\nM(JP^K\"(BL;FH;P@(\"!'K=N$P84A+2\\C(U-0@U-34U\"\"H;V]O;V\\5J&^H%145\nM%15O%145%6^M;V]OK6]O;ZVWK145MQ6W%0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"``D\nM)3MH6B$B'42N(JZ:\\;YD2!H:&AKN-C:0D\"6J3;Z@K&ZJP3N('6CJP>`0:!U-\nM2CZ:FIM<7%96\"`@(\"`@(NB8F)KJRLKJZ``<K86$1T-#0$260;DL\":P)K`G)R\nM&K>W<G*W<A5R3[<5%16M%145;V]OJ&^H%6]O\"&]O;PBH;V]OJ*AO*V%AEX,8\nM,U(H)Y^4E#F<)X&4E\"B<WF!@8-X745$--PJZ<AJZ&L*ZNEU=NEW+;F[D\"C\"\\\nM=H0<#?43'*&?8/4<ZY]6,'Q$/O$=B+E^?D,BOG*MK:UO%145%6]OJ&]O%16H\nM;V]O%6]O;V]O%6^M%16M3[=/<D^M3W(:&AIR&KHFNKI=NGUT+\"PL-2PU=!['\nMQ\\>_++_'QVG'Q\\<L:<<U-<?'QS7'QRS'+,<L'L?'+\"R_++\\L-5U]+!XLNGUT\nMNG1=PKHF772R&L*Z)L*Z)G(:NK*ZNB:Z&KJZ&AH:&KJZNAIRLB:RNAJZ71HF\nM)K*Z&K*RPKHF&K*ZNAHFNL(:PB8:NG*Z<AIR<G)R<G)R<G)R<K=RMW*M<K>W\nMK:VM'Q6W%:VWMQ6M%145;ZVM'[<5M[=/%145'Q6W%;=RMQ6M'W*M3W*M<G((\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(&AJW<AIR<AIRK7(:<@@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(;V\\5;ZAO%:AOJ!6H;V]OJ!6HJ*AO\nMJ*AOJ&]O;ZBHJ!6HJ*BHJ&^H;Z@5;Q5O%:T5%16M%:VW%:VW%7*M<A5R<G(?\nMMW*W&G)R\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"*@(\"`BHJ`BH\"`BHJ*@(\"`@(\"`BHJ*BHJ*AO\nM;V]OJ!5O%6\\5;Q5O%:T5MR#4?TMN2V$K,P&$O!-V=G;UZQ>4,RLS81$1T!%&\nM/K,P&)J;&AIR&G(F)G(F&G)+2\\@.T[74U,$AW\"+Q1N2!5I24ZPT78,PW)\\S,\nMS%9<7*VWK:VWMQ6W%:VMK16WMW*W%7*MK145<JVW%0@(\"`@(\"`@(\"`@(\"`@(\nM\"&S(7[G42KE^$K5^[PQ^?N!^[R((\"`@(\"`@(\"`@(\"`@(\"$M_(-0@$B&(`G\\%\nMTT,=:`+I2D.(\\:SE1#Z:\\60[FB(B:!T(\"`@(\"&'K$^$P84AN2P(\"R,C4U-34\nMU\"\"MM[=R%7)R<G(5K;>MK4^W<G*M<D]RMW)R<G(5MZVMK1^M<@@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`&;2SNQ6B$B'4J('8BN(KZL2A5O;V]&-C9ND\"6J3;Z@\nMK&ZJP3N(';'JZ.#<'1U-2CZ:FIM<7`96\"`@(NKHFLB:Z)ETF)EVZ``<ST&$1\nMT-#0$25AV25N-@)K`JURK145%145;Q45%6]O;ZBHJ*@(J`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(*RL1EZ'A,W:K#9\\WE#F<)Y\\W-RCKWA=140WU4?7U-PH:)AIR\nM&KJR)AH:&KI_;F[DCC!2E0$<#?43.:&?8/4<G(%<,+-*H\")HN;E^L4.L2&]O\nM;V^H;V\\5J&^HJ&^H;ZAO%6^HJ&]OJ!45;Q4?;ZUO%:T5MQ45K:UR3ZT:M[=R\nM<B8:)K)R)B8FNB:RLB:ZNAJZ7<(F7;JZNB:RNK(FNAIRLAHF&B8:<G(:)G)R\nM<B8FM[>W&JURMW)R&G(:MZUR&K<:MQJW&G)R&AIR)B8F<K)R<B8:LAJZ&G*Z\nMNKIR)KH:)L(:NG*ZNB8FLB8:NG*Z)B9R<K(FNB8:)AIR<K=R&K=R<G)RK:VM\nM%:T5K7)R<JVW%:U/M[<5K:VW;ZT5%145K16WM[<5%7*MK:VMK1^WMW)R<AIR\nMM[<:3R:W<G(:&AJRNK((\"`@(\"`@(\"`@(\"`@(\"')RMQIR&G)R&G)R)K<(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BMMW)RK7*W'Q^M\nMMQ^M%145;V^M%:T5%16M;V^M;V\\5%:AO;V]O;Z@5%6]O;Q5O;Q5OJ&]O;Q6H\nM%:AOJ!5O;V]OMZT5K1]R3Q4(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(<JVM<JVWMQ6WMQ6M%145\nMK6]O%6]O;V^HJ&^H;V\\5;ZBHJ*BH%:@5;V^HJ&^H;]34?TMN2V$1,P%2O+QV\nM=G;UZQ<W,P$ST!%A*Q'N/C`P&)J;<G(:3W)/<G)R&G)+2\\@.T[74U,$AB\"+Q\nM1N2!-\\S,JPWU45%@)V!@S%9<7*T53ZT5<G(5<JUR%;<5K:VW%16M%145K0@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"!()Z*P\"2JP=;`Q^[PQHL>!^L6@(\"`@(\"`@(\"`@(\nM\"`AR)DM_(-1_$M.N`G\\%TT,=:,@%2D.LK&3E99N:K)H[FO'Q:\"((\"`@(\"&'K\nM$^$P84AN2VX\":P+4U\"#4U']=LKJZ?7W\"?7VZNL*ZPKK\"NG2Z7;JZ=+ITNKHF\nM)KHFN@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"N^;CNQ6B$=:$K<:(BL(COQ\nMTPBH\"*A&:S9N;DNJ33N@K&ZJP2'<:+'JZ.#<'1U-2CZ:FIM<7`96&G*RNKJZ\nMNKJZ)KI=NK*Z,P<S*RLST-#0[B5A$25+;@)KU*VWMQ45MZT?MZUO%15OJ*AO\nMJ&^H;V]OJ*BH\"`@(\"`BHJ`@(\"&^H;Z@(*RL1EZ'A,[RK#1?,-SGK)Y_,S#GK\nM#?7U]0WU]5$7-S>W<B8:<G(:<K)R<G)_;F[DCGPK*P$<#?43.:&?4?4<Y-9\\\nMFJ1*0QVQN1\"Q:*\":<!6M;V\\5'V\\5%6\\5;V\\5%145;V\\5%145%:T5K1\\5%16M\nM3ZT5%;<5%145MQ45'Q45K145%145;V]OK15O;Q]O%15OJ&\\5J&]O;V]O;V^H\nMJ&^H\"&^H;PBH;P@(J&^HJ*BHJ&\\(J*AOJ&]O;V]O%15O'ZUO%:VM%:VW%:VW\nM<K>M<G)/MW(:&K=R<G)R&D]R<AH:)G)RMW)RMQIR&K=R)D]R<K>M&K>W&K=R\nM<JUR'W)R<G*WMW*MM[>M<K>MK;<5K7)/<G)R<JUR<G*WK:VM<JURK7(:&JUR\nMK;>W3[>W&B9RM[<F&G)R<AIR<K<:<G)R<G(:)AH(\"`@(\"`@(\"`@(K6]OK16M\nM%:VM%:VM;P@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nMK7*WK7*M&JT:<G)R<AJWMW)R&G)R<AJWK1H:MW(:K7*M<JVWK7*M<A5R%145\nMK;=R%;>MM[>M%6]OK16MK6^M%145%15OK6\\?K0@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BZ?71]\nMNEU=NKJR)KJRNEVZLKJZ)B8:&AHF<B8:MQH:<G)R<K>MMW*M%:VM%16M;[<5\nM%=34?TMN2V$1,P&$$W9V=KSUZQ?,E0$S*Q%A*S/NFS!\\&)J;%1]O%6]O;ZVM\nMK:U+2\\@.T[7((,$AB\"*L1N2!S&#,JPWU45%1WF!18%9<7!45MZT5MZU/K:T5\nMK16MK;>M<K=R\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!()1*1+1*0B!4-H:\"$=\nM:.!^L>\\(\"`@(\"`@(\"\":ZNL(:NDM_?]1_3=.N`G\\%TT,=:,@%2D/Q\\63E99N:\nM9)J^FJRL'2((\"`@(\"&'K$^%\\84AN;FYN;FY_U\"`)U'^ZNGU]?34U?72_?7T>\nM+\"PL?<=]'BPU+\"P>?2PL\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"N^\nM;CNQ?N\"Q?HVYL8BL(CLBTV\\(\"`A&:S9N;DNJ33NN\\0*JP2'<:._JP2&('2)-\nM2CZSLYM<?%96<G(:)B9R<B9R)AIRLAJZ,UDS`0`S*RO0[F%A)25N-@()U')R\nM)B:R<AIR<G(F<G)R<G)RMW)RMW)R&D^M<D]R<G)R<AIRMQHF)D^W`\"LSEZ$G\nME1.K#?51S!SKWF!@8#FK#?51%PT78&#>S)]R&G)R&B9R<AJW&AH@2V[DCEPS\nM*RL<#?43')P745$YY(XPFJ1*0QWOMK4=(CZ:X:URMW(:3[=R&AIR<G*W<AIR\nM<G(:MZVW<AH:<K>WK:VW<JVM%:T5K1\\5K15O;Q6HJ&\\(\"&]OJ*@(J*@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(J*@(\"*BH;ZAOJ*BHJ!45\nM%:@5;V]O%16M%145%1\\5MQ45%:VWK7(?%7)R'Q6MMZT5K1]R%:URMW*M3[>W\nMMW(5<G*W<G*W<G*W<A6M<K>MMW*MMW)R<AH:<G(:<G(:<G*W<G)R)B8:&G)/\nM)AH:)G)R<AJR&AH:<K=R&G*W<K>W&AJM&G*WMQJW<JVM<JVM%:VWMZURMQ\\(\nM\"`@(\"*VM;ZVMK145%:T5%:T(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`AO;Q5O;V^H;V\\5%145;V]O;ZT5%1^M%;<5M[<53ZT?MZUR\nMK;>W<JUR<AH:&G*W<JVM<K=R<AH:<D]RM[=RK:UR&K=R<JURK;<5\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"'*W<G(:<AJR<G)R&B8F)K*Z<AJZ&G*RNK)R<AHF)G(FNAJR)KHF\nMNKH:<B8F<AH:<D\\F)B9R\"-0@?TMN2R4K,P&$$[QV=KSUJQ?,E0&5*S,K`3/N\nMFUQ<X;.;;Q6HJ&]O;ZAOJ&^0;@(.TT/((,$[KJQD1N3AS&!@J^OU]5%1#1=1\nM8%9<7&\\5;Q45%6]O;Q45%:T5K:T5\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"!)KIIHE9;.L!4,=(B$B'2%^:'X(\"`@(\"+(:)KHFNKH:&DM_?]1_3=.N`@(%\nMTT,=:`+I2D,B(JSE99N:K)J^FJRL(B((\"`@(\"&'K$^&,T'!N;DMN;FX\":R`)\nMU$LF&B:Z&EW\"&KJZ=%W\"PK)]NKI=71ZZ='TL\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"\"N^2SMH[R&Q?M.V?MSQ(CLBTP@(\"`A&:S9+;DN`33NN\nM(@*`P2'<:._JP2&('2)-2CZSLYN;?(Q6K7)R3W(:MW)R<AH:<D\\F*UF5`0`S\nM*RMA[F%AV4MN-M0)U+JZLK(FLEVZNKIT'G0L72Q=?2P>+#4L+!Z_+\"PL+'2_\nM?1Z_?;]]+#4L`\"LK.:$G4A,<J_518!RK#1=1]1RK#6#,-R>!5E:?S,RZ)G)R\nM<K>W&G(:<AI_2V[D\"C`K*RLY#?43'.L7]5$YY-8PFJY*0VA^N8@B\\9LPX2:Z\nM&B8FNKK\"LKI=NAHF&AH:NB9R)G(:&G*W<G)R<JVMK7*W%:T5MV^M%6\\5%:@5\nM;Z@5;V^H;ZBHJ&^HJ*@(J`BH\"*BHJ*AOJ&^HJ*@5%:AO%6\\5;Q6M;V^W%145\nM;Q6M%16M%1\\5%16W'Q6W%;<5%7(5K16WK;<5%;<5%15O%145K:T5%15O;V\\5\nM;ZUO;V\\5K;<5;ZT5%145K;>MK7*W<G*M<K>W<G(FLG)R)AIR)B:Z)KJZNB:R\nMNK*ZPAI=&EVR)L(:NK*ZNAJRNAIR)B8F<AIR<K=RK1IR<JT?K7(5'Q45%16M\nM%6\\5;Q6MK6]O;V\\5;V\\(K16M%6^MMQ4?K:T5K0@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"&]OJ&^HJ*BH;V]O;V^HJ*BHJ*BHJ&^H\nMJ*BHJ*BH;ZBHJ&^HJ&]OJ*@5;V]OJ*AO;Q45;V]OK15O;ZUOMQ6WK:VMMQ6M\nM%;<5<A4(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(J!5O;V]OJ*@5J&]O;V]O%145%1\\5%145%145\nMK145%:T5K:VW%;=R<G*MK;>M<G)RK;=R&G((\"`@(\"-1_`DM+2V$K,X1V$[QV\nMO!/UZQ?,E0&5`3,K`3/N\"E96X3\";%15R<JT5K1\\5K14ED`+ITZ[(?\\$[I&2:\nM1N3A8%%@J^OU]?51#1=18%9<7&\\5;V\\5;V]OJ!5O;Z@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"&PVIK-A@[.LSJ`B\\3LB[\"&Q'>\\(\"*VMMW)R&G)R\nM<K=RK4M_U-1_3=.N`@(%2D,B:`+I2D,B(O'E1#YDK)J^FJRL(JP(\"`@(\"\"L-\nMO.%6*W`1D\"4E;FYKU\"`)($MO%6\\5%6]O%6\\5%6]O%16MK6^M;ZT5\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"N^)3L=:-,=[XVV6KDB'3OL\nMTP@(\"`A&-C:0D$NJ3=.N(@*`P2'<:+'JP>\"('2)-1)NS,)M\\?(Q6<G*W3[>M\nMK16WMZVM%16M*P<S`0`ST-#9[F$EV4L\"U-0)U!HF&AHF)B:Z7;*Z?1[\"?2PL\nM?<(L-7U]+'1T'C4U'GTU-34L+\"PU'BPU@@$!.>3>=A.KJ_7U41RK#?7U41SK\nM)S=65N$*5E:!E,P:<AJWM[<:&G)R<G(@2P*#FYHK*RLH#1=V=JOU4<PYH=8P\nMFJ[30VA^N:ZLFILPX;JZLKJZLB:Z)B8:)K*ZLG(F&K)R<G)R&G(F&G)R<AJW\nM<JUR<K>WK:T?K7(5<G*M<JU/<G)R&G)RMW(:<AIRLG)RLL)=NKJZ=+IT?<*Z\nMNKI=NKITNL*Z?7U]LEW\"NG3\"LKJZ<K*Z<G)R&D^W<G)RK7*M3W*W%6\\5MQ4?\nMK145;Q5O;V]O%6]O%:BHJ&]O;Q5O%16M;[<5K16WMW*M%7)RK1H:&AHF)G(:\nM)B8FLK(:NKJZNB:RNB:ZNL*ZNK(:&AH:<B8F<G)R<G(:MW*W<JT?'W(?3Q45\nMK1^WM[<5%:VMK:UOK145%6\\5;Q5O%15O;Q45%145;ZAO;ZAO%6\\(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`ARMW*MK;>M<G)RMQ6W\nM'W*WK;>W%16W<JT5MQ5O%15O%16M;Q5O;V\\5%15O;ZBH;ZAOJ`BHJ&\\(J*@(\nMJ`@(;PAOJ&]O;V\\(J&^HJ`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@5;Q45J&\\5;V^H;V^HJ*AO\nMJ&^H;Z@(\"`BHJ&\\(J*@(J*AOJ*BHJ*BHJ&^HJ&]OJ&\\5;Q5O%14(\"`@(\"`@(\nM\"-1_`FYN2V$K,W:\\$Q-VO+SUZQ?,E0&5`3,S`2ON\"E8W)S\".LAIRLB9R)B9R\nMLG)A)6[I2D-_?TT[I)HME^0G8%%1J^OU]?51#1=1459<7'*WK:VMMW(5<A4(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`4\"IK-A@[.LSC[QK#NL\nM(CMH'6BH;ZAO;V^H;ZBHJ*AOJ$M_(\"!_3=.N`DL%2D,B'0+I2D,B'2)-2CZL\nM(F0[I/'Q(JP(\"`AO;Q&A4MXW`>$1$6%A$4L\"U\"#4?TMOJ`AOJ*BH\"*@(J`BH\nM\"*@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BW<BL8\nM83LB'=,=L8VY?K9HL2$=TP@(\"`A&-C:0D$NJ33NN(@*`P2&Y:+'JZ.\"U'2)-\nM1)M\\,)M\\?%:4K:T5%16M;Q45;Q45;V\\5*P<S*P`ST-`1[F$EV4L\"\"=0)U'*M\nM<A4?<K=/<G*W<AIR<G(:&G)R<G(:&AHF<AIR<K=R<G*WK;>W%:UR@H)2.9S>\nM=A.K#?7U]7:K#1?,S#F<@59<7!B;?%R!5I2W%:T5<G(5K7)R<AH@(-2F/IH`\nM*P$H)Y\\!'.L78)27Y-8PFJ[30VA^N:\":FHY\\X1H:LK(F<G(:&G)R&G)RMQIR\nM<JVMMW*M%7*M%7*M<A^M%7*MK7*WMW(:&G(:&KJR)B8F&EVZ77VZNGTL+'TU\nM75V_?2P>-<<L?2Q]-34UQQXU+\"Q]?2Q=+,)]'GVZ770FNAH:&G)R<B9R)AJM\nM<A5R<K>M%145K145%6\\5%145;V\\5;Q45;V]O;V\\5;V]O;Z@5;ZT5%6\\5;ZVM\nM;ZVM%16MMZVM%;<?M[<5K:VM%15R<K<5'[<5%;<?<JT5MT^W3Q45MQ6WM[<5\nMMZVMK16W%:VMK;>W'[<5K:T?<A6MK7*WMW)RMZURK:UR<JUR<G*WK7)RK4\\5\nM%1\\5%0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!6W\nMK;<5<JVW%:URMW(:<G(F)AH:<G)R&AHFNKIR&KIR&B;\")KJZ&K*ZNAH:)B8F\nM<AH:)B9R<AJW<K<5M[<5MZT5%6]O%6\\5J&]O\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"*VWM[=R\nM<JUR%7)R'[>W%7*MMZT?%16M;Q5OK145%:T5'Q5O;V^H;Q5O;V\\5;Q45J!45\nM;V]OJ`@(\"`@(\"`@(\"`@(\"-1_2TMN2V$KE7:\\$Q.\\O+SUZQ<W,P$``3,S`3/N\nM@08W)WR.<G)R)K)R<AHFNB9A)6[I2D,\"`DT[I)JS[N3>4?51JZOU]?51#1=1\nM459<7%TF7;(F)@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`5NIK-AIK.LSCZLFKZ:\\;X=(AVH;V\\(;PAO;PAOJ`AO\"$M_(\"!_3=.N`DL%\nM2D,B'0+I2D,B'1U-2J`B(JP^9\"(B(F2W%16MMV&A,PTW`>$S,RLK$4MN:R!K\nM?VX5K6\\5'Q5O%145J&]OJ&^H\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@5%145;RN^);[Q(M,=L4JY?K:V?D/L2@@(\"`A&-C:0D$NJ3=.N\nM(@*`Z\"&Y:+'JZ.#<'1U-1)M\\?`I<7`8WK6\\5%145%6\\5K1^M;ZT58>XS*RLS\nMT-`1$6%AV4O(\"=0)U&\\5%145%6]O%6\\5;V^H;V^H;ZBHJ*BHJ`BH\"*@(\"`@(\nM\"`@(\"`@(\"`@(O'9V'`T-=A.K#?7U]1SK)Y]65BCD@59\\?!B;,##67%85%6^M\nM%1^W%:VM<G+4U-1$H\"*$*RLHX0HK.:&?E`:7H8ZSFHC3B+%^W#Z:LXY<X:T?\nMMZVM3Q6WK:VMK16M%145%16MK145K145K:VMMW*MK;=RK;>M<AIR<B9R&K(:\nM&AH:NKJZ)AI=)KHF)EVZNEVR)KJZ)AH:NKJZ)B8:NKH:LG(:)B9R<B8:<K<:\nM<D]RK7)R<G*W3W)R%;=R%7(?K;<5%145%:VMK145%;<5K:VW%;<5K:VMK:T5\nM;Q45'Q5O%15O;V]O;Z@5;V]O;ZAO;ZAO;V\\(J*AOJ`@(\"*AO\"&^H\"&\\(;PBH\nM;V^H;V\\5;ZAO;V]O;V^M%;>MMQ45K7*W<A4?K;>W<G)R<K=R<B9R<AIR<K=/\nM&AIR<AH:<D\\:MW(:MQIR\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(;V]OJ&^HJ&^H;ZAO;V^H;ZAOJ!5OJ*@5;Q6M;V]OK145<G*M\nMMQJM&G)R<G(F<B8:)KH:)B;\"NB:Z)B8:NB8:NKHFLB:RNB:Z&B8(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(J&]O;Q5O%6\\5;ZVMK;>MK15RMT\\5'W)R<G*W<D^W<K>MMQH:&D^W\nM&AH:&G)R<G*W<AJWK7)R\"`@(\"`@(\"`@(\"`@(\"`@(\"-1_2TMN)6$KE783$Q.\\\nMO+SUZQ>4,P$K*S,S*RM&@58W)WR.MQ6M%7)R%7)R<G)A86[I2D,\"`DT[LYJS\nM[N3>%_51JZOU]?51#1=1]5967!HF)@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"&S(IK-AIK-DSCN:FKZ:K+XB(B)R&AJMK7*M<G*W\nMK7)R<@)_(-1_3=.N`DL%2D/Q(F[I2D,B'1U-2D,B'2(^\\1TB(F1/MW)R&F&A\nM,]Y6*^$S*P$K$6&0;G]K(&XF&K(FNB8:)G(:&AHF\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BMK1IR<K>MK0&^);ZL(M,=L4HB?K:V?B'L\nM2@@(\"`A&;FZ0D$NJ33NN(@*`Z$.YL;'JZ.#<'1U-1)M\\?`I<7%;,M[=R%16M\nMMW*MK:T:MQIR8>XS`2LS*RLS$=!AV4O(\"=0)U+=R<JVWM[>M%16M;Q45%6\\5\nMJ&]O;ZBHJ*BH\"*BH\"`@(J`@(\"`@(\"`@(O+R\\'.L-$Q.K#1=141R<)PI6C\"CD\nMCEPP?!B;,#\";?%85MQ45K145<A6WMW)_U-1?B!V\"*RO-X9O0EZ&!5HR7@YN:\nMK-S3M7[OB#Z:,(Y6)ZT5;Q45MQ45%:T5%;>WK7(5MQ5R<JVMMQ]R<K>M3W)R\nMK7*M<D]RK:VW<G*WK;=R<JVM3[<5;Q45%:T5K15O%15OJ&\\5;V\\5;V\\5J*BH\nMJ&]O%6]O;V]O%6\\5%16M%16MK;<5M[<5<G)/K;<:<JU/MW)R&G)R&G*W<G*W\nM)AIR<AJM<AJWK7)R<JURM[>W%16W%;=O%6]O;Q5O%:BHJ&^HJ*@(J&\\(\"`AO\nMJ*BH;ZBHJ&]O;V\\5;Q5O;V\\5%15OK16MMT^MK7)R'Q^MMW)R<K=/<G)RMZU/\nM<K>WMW(:MW*MK;>M<JVWK7)RMW*M<D^WMQ45%:T(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"*URMT]R'ZT5;Q45'Q6H;ZBH;V^HJ*AOJ`@(\nMJ*@(J`@(\"`@(\"`@(\"`@(\"`@(J*@(J`@(\"`BH;V\\(J*BHJ&\\5;V]OK145;Q6M\nM%;>W\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`BHJ!5OJ&^H%:AO;V]O;V^HJ&\\5%15O;Q45;V^M\nM;Q6W%145MQ6WMZURK7)RK7*WK:UR<G*W&AH(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"-1_2TN082LK4KP3$Q,3O!/UZQ>4,P$K*Q$S*Q%&\"E96)WR.;Q5O%15O;Q5O\nM;V\\186[I2D,\"2TV^/IJS[N0G45%1JZOU]?51#1=1]5965@@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"&S(1+-AIK-DSCN:FKZ:\nM9$CQK/&ZNKJZ?7U=NKI]LGVZ)G\\@U&M_3=.N`DL%2J\"L(F[I2D,B'1U-2D,B\nM:\")#(F@=(F1R<K=R<F&AE2=6*^$S`0$!,]`1;DLV:TL:LKHF<AIR&AJZ\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@F75TF)EVZNL(FN@&^\nM)4BL\\=-HL8VY?K:V?B$=2@@(\"`CN;FZ0;DNJ33NN(LB`Z$.YL>_JP>\"U'1U-\nM1)M\\7`I65E;,K7(:<AIRLB9R<KH:)KJR8>XS`94S*P$S$=!A;F[4\"=2J`K(F\nM)B:Z&AH:&G)R<G)R<B9R&G*W&G)R<K=R<G*W<B8:<G)R<G)RLB9RO+R\\'*L-\nM$[RK#9_,S#F<X0I67,VA&%PP?!B;,#\";,%:M&G)RMZVMMV^M%:W+U-2-$.^$\nM*]#-X9O0EZ$*7#`HIIMD(KDN$&AHKCZS,(&4WJT5MQ6MK4]R3QIRMW)R&G(:\nM<G*W<D\\F)K=R<K=R&JT:MW*MK16W%15O%:T5J*AO;ZAO;Z@(\"`BH\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"*AOJ*BHJ&]O'ZT5MZT5K7*M<G(:&AJR<KIRNKJZ\nMNK(:&K)=NAJZ)KH:NKH:NKJZ&AH:NK)R<B9R&G)R&D]R&K=RK;>W<D^MK:UR\nM'W*W<G(5<A5RK7*MK:UR<K=RM[=R<G(:MZUR<K=R&K<:MW)R<AJM<G)/MZVM\nMK7)R<G)RK145%;>M%:T5%15OK16W%145K6\\?;ZT5;ZT5;Q5O;V\\5;Q5O%14(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(3ZUR<G(:K;=R&AJW&B8:\nM3QJW3W)R<G*MK:UR<G(5%1\\5%145%16HJ*AO;V^H;ZBH\"`@(J`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!6MMQ5R%;<5K:T5%:T5K:T5\nM;V\\5K16M%16M'Q5O%145;Q45%:UO'V^MK16W%:VM'Q45MQ45K;<(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"-1_2Y`1T``!=A,3$Q,3O+SUZQ>4,RLS*Q$1*Q%&\nM\"E96X7R.%:BHJ&]OJ&]OJ*@E)6[ITT,\"2TV^LYJSE^2?8%%1J^OU]5%1WA=1\nM45965@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"&S(1)HEIK.LSCMDFKZ:+7\":FF1R<G)RMW(:<G)R)KJZ&G\\@U\"!_3=.N`DL%\nM2CZL\\4OI1$,B'1U-2D,B:\")#(F@=(JP:<JURMRNA=B=6*^%9,P$!,RL1$4L)\nMU$L5%16M;Q45\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@:\nM&G)R<G)R<AH:&AH(\"\"N^)4BL(M-H[XVY6K:V?D,=TP@(\"`CNV6Z0;DNJ3=.N\nM(LB`Z$.Y[W[JP2&('1U-1)M\\?`I65E;,&G)R<K<F)G(:<D]R&G(F80>5A)65\nM`0&562MA;F[(\"=0)2QHF&G)R)G(FNG(:&AJR)K(F)L*R?72Z7;JZ?2PL?2Q]\nM?1XLORR_'L<L$[P3'*L-O'8HH9\\WE#F<X59<,,VACGPP?!B;,#\";,%RWM[=R\nMK;>M%145;V_#2P*-$'Z\"*]#-X9O0EX,*,+/P93[Q';;@M1TBKILP?(%@#:VW\nMK;=R<AJW<G)/<AJWMW)R&G(:<AIR3W)R<JUR<JUR%:VM%145;V^H%145%145\nMJ&^H;V^HJ!6H;ZBHJ&^H;Q45;V^M%6^MK:VM'[<5K15RK;=RK7)R<AH:&K=R\nM&AH:<B8F<G(F&G)R<G)R<AIR<B8:)G*W<B9R&K=R&G)RMQJW&AJW)K<:<K=R\nM<G(:<K(:)AH:&KHF&AJR)EW\"NKI=)L)=NAJZNB8:NAH:&K+\"&KH:NAH:<G)R\nMMR8:K1JW&K=R%1^W%:T5%6^M;Q45K15O%6\\5%145;Q5O%145;Q5O%6\\?%145\nM;Q5O;Q45%15OK145MZT(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nMJ`@(J*AOJ&^HJ*AOJ&]O;V^M%16WMQ5R3[=R<G(F&G(:&G(:)B:RNB:RNAJZ\nM&K*RLB9R)AJWK:URK:VW%;>MMV\\5;V]O;P@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(K;=RM[=/\nM<A]RK7*W<JVW%:T5%7*W%145%:T5%4\\5%:UOK16W%:VW%:T5K;<5K:VWK:VM\nM%7*M%0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BM<M1_D\"5A*P!2=A,3$Q,3\nM$[P7ZQ>4,RLST!%A*Q%&CHQ<X7R.;ZAO%6]O;V^H;V\\E)6[I2D,\"2TV^LYJ:\nME^2!S,S,J^OU45%1WF!@45965@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`7(1)HE9;.LSCMDFABSLW\":LYH(\"`@(\"`BHJ*BH\nMJ`BH;W_4U\"!_3=.N;DL%2CZ:K$OI1#ZL(B)-2J`B'2)#(F@=(JQR%16WMV&A\nME=Y6`2<S,P$!,]`1;DL)U&YO\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`BH%:BH%:AO;ZBH;Q4(\"`@(\"\"N^);[Q'2&Q?HVV6KEH?D.Q\nMTP@(\"`CNV6Z02VZJ3=.N'<B`Z$.Y?G[JP2&((B)-1)M\\?`I65@8WMW*W<JVW\nM<G(5M[>WK14580>5=E)V=G9V'`$1V6[4\"=2J;F\\5;Q5O%145%145K15RK16W\nMMQ5RM[=R<AJW<G)R&B8FLB:ZNKHF)KH:$Q.\\'.L-O(+-H8%65I?DX9M\\,,V#\nMCGRS?!B;,#\";,)NM%16M%16W%16WK:UA2VY?B+$`*]#-X9O0EX.;LV3P1*`B\nML>\\N0R+Q/ILP7)]1#:UR%:VM%15R%4^MK15O%15O;Q6M;Q5O;Q45%6]O;V]O\nMK145;V]OK145K15R%:VMMW)R<K=R<JT:&B8:<B8:<B8FNG*RNB9R&AHF&AIR\nM<B:W<G*MK7)R%145<JT5K145%6\\5J!45%6\\5;V^H;PBH;ZBHJ*AO;Q6HJ&]O\nM%:@5%:UO;Q5OK;>W'Q45%7)R'[=RM[=R&G)R<G)R&AJW<AH:<G)/<JVWK;>W\nMK7*M<K>MK7)/K;>M%;>WMZT5K1\\5%15O%145%145%16M%:VMK:VW%7*M%16W\nM%7*MMZT?%4^W<G)R<G*W<G*MK7*M'W*W%7*W<G((\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"!6HJ&^H;V^HJ`@(\"`@(\"`@(\"`BH\"`@(\"`@(\"`@(\"*@(\"*BH\"*BH\nMJ&]O;V^M%;<5'[=RK;=R<AH:&B8F&KJZNAJZ)KJRNAH:LKH:\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(%;>M%145%6^MMQ6W%;>M%;<5;V\\5%145K6^MK145%6\\5%145%6]O\nM;Q5O%:@5J&\\5;V]OJ*AO\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"')/<AIR\nM)M1_)6$K`5)VO!.\\$Q,3$[P7Z]Z4,]!A824ET\"5&CC`P&'R.<G*M<G*MK:UR\nM'[=A)6[I2D,\"2TV^?)HM[N2!E#<WZPT746!@WF#,8%965@@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"')R&@7(1*Q+1*2L8[Z:,!BS\nM,.$P,+,(\"*@(\"`@(\"`@(\"`@(\"'_4(\"!_3=.@;DMY1#Z:9\"7P1#YD(B)-2C[Q\nM(B)#(F@=(JQO;Q45%6&#,]Y6`2>5E0$!$6$1;DL)U`(5\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AO;V\\5;ZBH%6]O;Z@(\"`@(\"`@(\"\"N^\nM)3LBL2Y^?HVY[[D=[T-^TP@(\"`CN;C9+2P*JP3N('=2`Z`RY?G[JP=.N(O%-\nM1)M\\?`I65I16%15O%6^H;Q5O%6\\5;Q5O85E2=H)V=KQV,P$1V6[4\"=0)`A5O\nM%6^HJ*@5J*@5%6^H%6\\5;V]O;V^H;V^H;PAOJ`@(\"*@(\"`BHJ`@($Q.\\=NL-\nM=E)0H8%6!I?D&)LP,%\"FOK.:LTB;L[.;,%RW<A]R<K<:<AH:<B9AD$OHKAT`\nM*]#-X9O01J:;FJR`1$,=?K;3H*RL/IM<5M[U#:URK:T5K145%6\\5;Q6H%6\\5\nM;Q45%145;V\\5;Q45%14?%;>WK15RMQIRM[=RMW(:&K=R&K(F&AIR&AIR<K<F\nM<K=R<D^WM[>MK145%15O%6\\5;V^HJ*BH\"*@(\"`BH\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`BH\"`BHJ*@(\"*AOJ&^H;V]O\"`AOJ&]O;V\\5;ZBH;V]O;V]O;V^H;P@(\nM;PBHJ*BHJ*@(\"`BH\"&\\(\"*AOJ&]O;ZBH;V]O;Q6M%145%1^WMZUR<A5RK1IR\nMK4^MMW)R<K=RMQIR&K=/&K=R&G*M<G*WK7(5K:T5K16M%16W;ZUO;Q6M%6^[\nMN[N[\"`@(\"`@(\"`@(\"`@(\"`BM%1]RMQ5R'ZVWM[>MK7(5MZVMMQ6M;ZVM%16H\nM%6^H;ZBH;ZAOJ*BH;PAO;ZBH\"&]OJ&]O;PAO;V^H;V^H;Q5O%6]O%145K:UO\nM'ZT(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`AO;Q45;Q45%6\\5;ZT5%:T5K16M%;>W%16MMZVM\nM%:T5%:UO%6]O;V]O;V\\5;Q5O;V]OJ`BH\"*@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"*@(\"`BHJ-0\")2LS`5)VO!,3$Q,3$Q,7Z]Z4,]!A89`E81&J\nMCC\"S&#\".?;I=?<)=NB;\"NKHE)6[I2D,\"2TU(/IHM[N2!E)24*)P7S,S,WI\\W\nMS%96E`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+I]+\"QT\nM-6S(1-QN2J2L8]8P,!@P,.$P7#\"RNB8F<AIR\"`@(\"`@(\"'\\@(-1+34J@2TMY\nM1#Z:9\"7P1#NDK/%-2CZL(B)#(F@=(JRWK:T5K<.#,]Y6`=YV=H0!$=`1;DLV\nMU&X(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`ARMW*W&G)R<AHF\nMMT\\(\"`@(\"`@(\"`@(\"\"4[2SMH?BY^?HTB'=PB[PQ^TP@(\"`CN-C9+2\\B`P2&(\nM'=2`Z`RV?G[JP3NNK/%-1)M\\?`I6E,Q6;V^H;Z@(J&^H;ZBH%6\\5*UE2A'9V\nMA(25$2L1V4O(\"=0)(')RK7*M<G)RK7*M<K>WMZVM%:UOK6]O%:@5J&]OJ`@(\nM\"`@(\"`@(\"`@($Q.\\=NL-=E)0H8%65I?E&)LPLS^FOIIDFKX^FIJ;,%RW<AH:\nMNG*R)K*ZNKIA)9!$H/&\"*]`HX9O01F6;FB+I2D.Q?KG3/IJ:?)M65M[U#:VW\nMM[>W%16M<G*M%16MM[<?'ZVMK;=R<G)RK;=RK7*MMQJW&K>W<AIR<JT:<K>W\nMK:VWMW(5K16M%:T5K1]O;V\\5;V^H;ZAOJ&]OJ`BHJ`BHJ*AO;V]O%145%6]O\nM%6\\5%:VM%145K145K7(5%:U/%15R<JVW3Q6M%145;Q6WK145'Q6M;Q6H;Q45\nMJ&]OJ*AOJ&^H;V^HJ*BH;Z@(\"&^H\"&^H;ZAOJ&]O%:@5%:T5'Q45K:VW<A45\nMK7*M<JVMMW*M<K=R<G)RK:UR<JVMMZVMK4\\5MQ45%;>WK145%14?%6\\5K15O\nM;V\\5;ZBH;V^H;ZB'AX<J*BHJN[N[N[LJNRHJ*BHJ*BHJ*BHJN[M>7EX5%6]O\nM%6^MK6\\5%15O%14?%16W%:VW'Q6M<JT5%16MMQ5OK15O%15O;Q5OJ&\\5;V^H\nM;Q45J!5O;Q6H;ZAO;P@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(J`@(\"`@(J*@(J`@(\nM\"*BH\"*BH;ZBH;ZAOJ!45;Q45;Q6M%7*W'ZURM[=RMW)R&JUR<@@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"'_+)2LS`0!2=KP3$[QV\nMO!/UZQ>4,V$E)9\"089\"JF[.:OIJ;%6^MK16WK16WK:TE)6[I2D,\"2TU(?)HM\nM[J&!E)24**&?-S<W)Y^4-U96-P@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(J&]OJ!5O;V^WK1)KZ\")_2JRL8]9\\7!@P,.%<5EQR&AIR\"`@(\"`@(\nM\"`@(\"`)_?W]+34H^2Y!Y1#NS9\"7P93NDK*SE1#ZL(B)#(FAH(JRM<JUR<LNA\nM,R=6`0UV=KR$,]\"0;DLV($L(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@5%145%145%15/%;<(\"`@(\"`@(\"`@(\"`@(\"$M#`B%^6B%H:$JL(H@BL0Q^\nMTP@(\"`CN-FL\"`LB`P2&UI]2`Z`RV?N_J33N@9*Q-1)M\\,`I6-V!<;Q5O;V]O\nM;Q5O%15O%145`%E2A'9V`0$K$6$EV4O(\"=2`U+(F)B:Z<KHF)KJR)AH:&B8:\nM&K(F<AH:)G)R<B:W&AIR&JUR&JURK7*M$Q,3=NL-=E)0H8%67)?E&)NSFF-E\nM.Z3Q9#L^FF0^LWP5%145%145%6]OK15A)9\"F/IJ\",]`HX2301F4^9\"+I2K5^\nM[]S3/IJ:?`I6E`U1)W*WK;>W&B8:LG*ZNG(:)AH:)B9R&G)R<G)R<G*W)K>M\nMK;>W<JVWK:T5MQ6W%145K6]O%6\\5%15O;Q5O%16M%:VMK6\\5K7*M%:VMMW(:\nMMQJW)AHF<AJZNAJZ&AJZ=+JZNEU]75VR=+HF7;)T=+JZPKJZLKJRNB8:&G*R\nM<G)R&D]R&G)R<AIR3QJW&G(:K7*WK1JWMW)RMZUR<G*W3[=RK:T:K4]R<G)R\nMK7*MK:UR%;<5%16W%145K6\\5%15O;Q5O;V]O;Q45%15O%6^M%145;Q45;Q6M\nM%:VMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>[N[M>7KN[N[N[N[N[*BHJ\nM*GIZ>GIZW]_?W]_?WT='1T='W]_?W]]Z>GIZ*BHJN[M>7@.9\"`@(\"`@(MW)R\nM<JVWMQ4?%:VM%:VMMZVM%6\\5;V\\5%6^H\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(3Q5R%;<5\nM%16M%145;Q5OJ&]OJ*AOJ&^H\"*@(J`BH\"`AOJ&\\(;ZAOJ&^HJ*@5J!45%:T5\nM%;>M<@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`ATNG1=NKHF&K)R&G(:)G)R\nMK7]+)6$K`0$!E82\\=E)2A';UJQ>4,V&0)6Z0)9\"JFYJLOJR;\"`@(\"`@(\"`@(\nM\"`AA.&[IYD,\"2\\&^?)HM1H.!5@8&4*&!5E:4)S>4-U968`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!()C;;4T_&L8X%<7.%<\nM,\"=6E%:H\"`@(\"`@(\"`@(\"`@(\"$M_?Q1+3;X^2Y!Y2CZ:9\"7P2CZ:K*SE2J\"L\nM(B)#';%H':RM%:T5;W^A=@TW`0UV$Q.\\E=`1;DLV?P((\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`BH\"*AO\"`@(\"`BH\"*@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`*U\nMU.\"Q[],B(D2:K*XBL0SOTP@5;Q7N-FM_U,B`P2X0I]2`Z`RV[[&`3;Z@FII-\nM1#ZS,`H&S&!<MW)RK7)R<JT:K:VM<JUR4EEV=KQV`2L1[B60;F[(\"=0)U&^M\nM%6\\5K:VMK145%;<?K15RMW*W<G)R<G*W<G*Z&K(:LB:Z71HF7;K\"$Q.\\'.L-\nMO`%0H8%6C)?E&'QD9'E$/JS&(CN@[/$^+7P(\"`@(\"`@(\"`@(\"*AA)1&FF[-2\nM*]`HX5;01F6;9\"+IC;6GL=Q*/K.:FXY6S`W,)Q45MQ6M%;<5MQ\\5MQ6MMQ6M\nM;Q5O%6]O%:AOJ!5O;ZAOJ!5O;V\\5;V]O;Q45%6]OK6\\5%16MK7*MK7(:<G*W\nMMR9R<G)RNG)R<G)R)AIR<G)R)G)R&G)R<G)R<G*M3[>M<JVM%;<5%;=OK6\\5\nM'Q6M%:T5%:UO;Q45%;<5MQ^WK7)/<JVW<AH:)AHFLAH:&G*Z&G(:<AIR<G)R\nM<G(F&AH:MW)RK:VM%6^M'ZUO%:AO%6]O;V^HJ`AOJ*AO\"`@(J`B'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>[\nMN[N[7EY>7EY>7EY>N[N[*BHJ*BHJ*GIZW]_?1T>EI0L+9F9F9@L+\"PNE1T??\nM>KM>`P,#F=)Q&5.+BS0TQ6=G#TQ,3$R)B8F)R<G)R<D(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`BM<K=R&B8FLG(FNG(F&KJZ&B8FLL(:)K(FNKH:&G(:)AH:<G)R<G)R\nM3W*WK16M;Q5O%15O;V]O\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BWK7*M\nM3W(F<KJZNKH:LB:Z?;K\"70)+)6$K*RLK*P&$`2LK`0'UJ_4W*V&0)6Z0)26J\nMFYJL._$^%:VMMV\\5%6]O;Q5A=6X.YK7(2\\$[/IHM1H/65HR,4.&!5E8&)Y\\W\nMS#?,%P@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(K:VW'Q45;Q6M%:UOK6]O\nM%6P)C;;4T_'Q8X%65N%6C\"=6-P8(\"`@(\"`@(\"`@(\"`@(\")!+%%M+3;Z@2Y!Y\nM2J\":K\"7P2J\":K*SE2J\"L'2*UN>^Q':P(J`BH\"'^#E0U@A`UV$Q.\\4BL1;DLV\nM?W\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BW<K=R<G)R<G(5K;<(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"\"\"UU#LB'4JLK&6S9*XBL4,=2*@(\"`CN-@E_5]2`P?(0\nMI]2`Z`RV[VB`3;Z@9)I-2CZS,%8&S&!<&K(:&KJZ&K)R)AJWM[=RO%EV=A-V\nM`2L1;DM+;@+4\"=0)U&^H\"*@(J*@(\"&]O\"*BH;V]O%6\\5;V\\5%145K1\\5K15R\nM<D^M<K>W<G(:$Q.\\'`W>E0%0H8'TC)?E&&IDK`5$0QVQ'2&N[,:@9'QOJ*AO\nM%6^HJ*@5%15A86&#FS\"\"`=`HH0HK1H.;9\"+I2K6Q:(A*/K,PFX&48`U6X145\nM%6^H;V]OJ&\\(\"`@(J`@(\"*@(\"`@(\"`@(\"`@(J*@(\"&\\(;V]OJ*AO;Z@5K1\\5\nMK:T5K:VWK;<5K4^W'ZURK;<5%;<5;Q5O%6\\5;V^HJ*BHJ`@(J*@(J`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AOJ*BH;ZAO;Z@5;V]O;V\\5%16H\nM%6\\5;V\\5%6]O%:@5J&^H;Q45;Z@5%15OJ*@5AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>[N[N[N[N[N[N[N[N[N[N[NRIZ>GIZ>GIZW]]'1T='\nMI:4+\"V9FQ,3$Q,1F\"T??>KM>`YD]/7$9L.V+-,5G#TQ,B8G)R1945%145%14\nM5)*2DI*2DI*2DI*2DI*2DI*2DI*2DI)45%145%0(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BH\"*@(J`BHJ*BH\"`BH;PBHJ*AO;V]OJ*AO\nM%6\\5;Q45%:VWK:T5%7(5<JVWK;>M%;>MK14(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`BH\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`);P,!AT'5U,RL!*YXS\nM`0$7G/51,V$E)4N0826JFYKQ._$^MZUR<G*MMW(:<K=A=0+BYK7(?\\$[/IJ:\nMJJ:^?#`P8W`D7%P&)V!@46!@]0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AR)AIR\nM<AH:<G)RMZVW'W*M<K=/MVQKZ+G4TR+Q8X$WS\"=6!B=6S`8(\"`@(\"`@(\"`@(\nM\"`@(\"&%+6UM+3;Z@2Y`%2J\"L\\4OI2J#QK*Q-2J#L';FU[W[O':P5;V]O;W^#\nM,PWU$PUV$Q.\\E2L1;DLV?W\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AR)AJZ=+HF\nMNKI]NKH(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"-1#R$B:K$B:FJ9\\LZ3<:$,B\nM2&\\5K6_N:PE_5]2`P?*VI]2`C0RVL1V`3;YJ+9I-2CZS,\"1<E,Q<%16WK16M\nM%6^M;Q45%6]O$Y5VA+QV`2LE;FY+;LC(\"=0)U&]O;V\\5J&]O%:T5%6^W%16M\nMMZT5K:VMK16M%16M%16WMQ6M%:VMK:T5O+P3')S>60%0H23TC)?E&&JL\\05*\nMM<9::$,0:+&@9+,:LETF75U=NGUT770K*S.#\"GQV`\"LHH0HKEX.;FB+IC1!H\nM:(A*FS`I\"I_,40V,X7)RMW(5K:VW<K=/%;>W3T^M3ZT5%4\\5'Q45%16MMQ45\nM;Q6MMQ6W;ZUO%15O;V]O;ZAO;V]OJ*BH;PBH\"*@(\"`BH\"`BHJ`AO;ZBH\"*BH\nMJ*AO;ZAO%15O%15O%16W%145K145K145%7*M'ZVWK145MQ45K145;V]O;Q5O\nM%6]O;V]O;ZBHJ&^H\"&\\(AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<J*BIZ>GIZ>GIZ>GIZ>M_?\nMWT='1T='1T>EI4='WT='I:6E\"PL+\"PL+\"Z5'1]]Z>BJ[7@.9/7&P[8LTQ6=G\nM3$R)R<D65%22DI+5U=75U=75U=75U=75U=75U=75U=75U=75U=75U9*2DI*2\nMDI*2DI)45%06%LG)B8F)3$Q,3$Q,3$P/#V=G9P@(\"`@(\"`@(\"`@(%6^M;Q5O\nM;V]O;V^H;ZAO\"*@(\"`BHJ`@(\"`@(J*BH\"`@(\"`@(\"*BH\"`@(J`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(J*BHJ*AO;Q5O;V]O;V^HJ*BH\"*@(\"`@(J*@(\nM\"*(4P,`E875U8=`KT'4K*P&?H?7UE=`E)9\"081&JFV3Q.ZR;\"`@(J*BH;P@(\nMJ`AA=0+B+A#(HL$[I)HMJJ:^+;.S8W`D,'P&)V!1]5%1]0@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`BW;ZT5%16WK1\\5K:U/K;>WK;>W%6]O;P7(1\"+4YKDB8X%68`W,\nM-]XWS`8(\"`@(\"`@(\"`@(\"`@(J\"7`P,!+3;Z@2Y`%2J#Q(FX%TT/Q\\?%-2J#L\nM:!VU?GY^:*P:<D\\FMTME$>',O`UV=G92,RL1;DLV('\\(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`BHJ*BHJ*AOJ*BH;V\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"-1#\nM;G`PLW!\\,(-<,&JD(CNL<')R<G+N:PE75\\B`Z/*YI]2`C0RV:!V`3;YJVK--\nM2#ZSVB28!C=\\;ZBHJ`AOJ*BHJ*BH;ZAOO%)V=KQV`2LE;FY+;@(\":]0)U!\\5\nMMZVWMQ45%;<5MQ45%6\\5;V\\5%6\\5;V^H;Q45J&]OJ&^HJ*AO;V]O@KP3.:'A\nM!RM0H23TC)?EOJ2L(@5*M:=:[PP0L>^NK*1RK:VMM[<5K;>MK:T`*S/D@5:\\\nM=@$YW@HKEX.;FAWIC;4=:*Y(CEST\"A=@]=Z,X7(:<B:ZNB8:)ETFLG2Z)KJZ\nM=%VZ)KH:NKJZLB8F<AJM<G)R%145%6\\5;Q6H;Q6HJ*BHJ&]O;V]O;V]O;Q45\nM;Q45K145K7)R<AIR&AIR<AJZNETFPGVZNK)=++ITNKH>++*ZNEUT=+JZ)AH:\nM&H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=Z\nM>GIZ>GK?W]_?WWIZ>GIZ>GIZ>GIZ>M_?1T='1T='1T='1T>EI:6EI4='WWHJ\nMNUY>`P.9/=)Q&5/MB\\5G9TQ,B8G)%E14DM75U=75U=5\"0D)\"0D)\"0D)\"G9V=\nMG9V=0D)\"0D)\"U=75U=75U=62DI)45%06%A;)R8F)B8E,3$Q,3$Q,3$P/9V=G\nMQ<7%Q30T-#2+B^WM4[\"P&1EQ<=+2TM+2/9F9`UYR<G)R<AJWM[=RK;>M&G(:\nM<G)RMP@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(<AJW<G*M<JVMK;=RMW(:\nM<K=RK;<:K1IR<AIR<G(:MU>B6ULX)75U==#0T'4K*P&?H9_U=BMU89\"0)9\"J\nM/F3QOIJ;3ZT5K;<5K0@(\"`AU.,CB+A#(5^@A9&1DJF4^9&0MSD@^VC!6)V!1\nM]?7U]0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"*BHJ*@(J`AOJ&]O%6\\5K:VWK;>MK16W\nM<L[(1\"+4T[9HSM96S`U@-PW,8)0(\"`@(\"`@(\"`@(J!5O;V$XP,!;3;Z@2Y`%\nM2D/Q[&X%TT,B[.Q-TZ[L:&@0[[U^:-P5%:T(\",-$$>%6A`V5`0$K$6$1;DO4\nM('\\(\"`@(\"`@(\"`@(\"`@(\"`@5;ZBHJ*BHJ*@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"\"`^)>%6C.%65J%6C)M\\FKZSX16MK:U&:PE75\\B`Z.`0\nM:,B`C0RY:.R`3;YJVBWE2\"1J*228C`9\\%7)R<G)R<JT:<G(:LAJR=G:\\=KQV\nM`0$1$4M+;@(\"`B#4U'(5%15O%6]OJ!6H;V\\(\"`@(J`@(J`@(\"`@(\"`@(\"`BH\nM\"`BH\"*@(;V]O@A,3.:'6J2M0X23T7)?EOJ2L(@5*M>^]6@RV[UJ(\\:0(\"`@(\nM\"`BH\"`AO;ZB\"4G;DG\\R\\O%(<W@HK1F4^\\1T.C;5HQJ1$CIB,G_5149^,X145\nM%6\\5%145MQ6MMQ6WK6\\5%145K:T5%16MK145;V]O%6]O;V\\5%6\\5%6^M;V\\5\nM%6\\5K145%16M%;>WMZVW%:U/3Q45%16MMZUO;V^MAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=Z>GHJ*BHJ*BHJ*KN[NRJ[N[N[NRHJ*GIZW]_?1T='\nMI:6EI:5'1T='1T='I:5'WWHJ7IG2<1FP4^TTQ6</3$R)R<D6%E22U=750D)\"\nM0D)\"0D*=G9V=G9V=G9V=G9V=G9V=G9V=G9U\"0D+5U=75U=75DI)45%06%LG)\nMB8E,3$Q,3`]G9V=GQ<4TBXOM[>U34U-3L+\"PL+`9&7%QTM(]/3T]F9F9F0->\nM7KLJ*GK?1Z6E\"V;$,8>'AX>'AX>'AX>'AX>'AS'$9@L+\"P@(\"`@(\"`BW3Q6M\nMK4^MMZURK;=R%145%;>WMZT5%:VM;V^M;V]O%145%5=7%!3`)3AU==#0T'5U\nM*RN!H9]1O\"MU89\"0826J/F2LOIJ;\"`@(\"`@(\"`@(\"`@XP,CB+A#45^@AK/&L\nMJD0^K&1DSD@^+3!6)V!1]5'U]0@(\"`@(\"`@(\"`@(\"+<5K145;Q5O%6]O%15O\nM%15O;Q5O;V]O%6\\5;V^H%<[(1\"+4T[:Q!=9\\E-Y@S`U@46`(\"`@(\"`AR<K=R\nM<B8:<F%U.#A;3;Z@P\\`%2D/Q'0(%TT/L:&A-TX@=6J<0[UKO[]P(\"`@(\"&%$\nM$1A6A-XS,RLK$6&0;G\\)(\"`(\"`@(\"`@(\"`@(\"`@?%1453[>WMQ5/%:T(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"'\\^82>4!B?,E.0W5@I67!B,\nMH145K15&-FO/HLB`Z\"&U:,CJC0RY:!V`3;YJVBWE2\"1J*9N8](Q<K;>WM[>W\nM<B8:LAH:<B9R4E(3$Q.\\A`$K$6$E)6YN`G_4(')R&AJWMW)/<JUR<K>M<A6M\nM'Q6W<JVMK;=R%1^MK7)/<A5/<JT?K:T54A.$EZ'6V2MCX23TC)?EOJ2L(@73\nMM7Y:6@RV6EJ([&1R&K>W<AIR&AIR)B83$Q/K]?43$W8<)PK01D2@[+$.C;5H\nM[*1$CHR4%_518)^,<&^H\"`@(\"`@(\"`@(\"`BH\"*@(J`@(J*AO;V^H%145K:T5\nMK1^MM[=/K;>M%8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX='1]_?>GHJ*KN[NUY>7KN[\nMN[LJ*BHJ*BJ[NRJ[N[LJ*BIZ>GHJ>GIZ>GIZ>BHJNP.9/7$9L.TTQ0],3$R)\nMB<D6%E22U=75U=75U4)\"0D)\"0D)\"0D)\"0D)\"0D)\"0D)\"0IV=G9V=0D)\"0D+5\nMU=75U=75DI*25%14%A86R<F)B4Q,3$QGQ<7%-#0T-#0T-#2+B^U34[\"PL+`9\nM&7%QTCT]/9F9F9F9F9F9F9F9`P->7KLJ>M]'I0L+9L3$Q,3$Q&9F\"Z5'W]]Z\nM>GIZ>GIZ>GIZ>GHJ*BJ[*BJ[N[N[NRHJ*BJ[N[LJ*GIZ>GK?1T<+9F;$\"`@(\nM\"%=7%!1;P\\`X==!A875U*P&!H9]1$P%UT\"4E826J/F2LOIJ;\"`@(\"`@(\"`@(\nM\"`C`6\\CB+A#45^@A\\?&LJD0^K*RLSD@^+3!6X<Q1]5'U%P@(\"`@(\"`@(\"+>W\nM&G(F&G)/<AH:&AIR<D]RMW)R<JVMK7)/K;=OK6\\5%<YN1+G4+K9H!;XP5MY1\nM40U@8%$(\"`BH\"`@(\"*@(J`@(J\"MU.#A;33NNP\\`%2D/L'<CBTPP=L;'!(;7&\nM6K80[[WO[]P(\"`@(\"&%$$1A6A-XS,RO0$25N;G\\)(-0(\"`@(\"`@(\"`AO%145\nMK6^M'V]O%6\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`*^\nMT-[,E`U18)Q@S)\\WE.',#145K:U&-FNB%,B`Z\"&('<CJC0RY:!V`3;YJ+2WE\nM2\"28*9MJ](Q<\"`@(\"`BH\"`@(\"`AO\"*AO`5*\\$Q,3O'92,RLK$4M+;@)K?ZAO\nM;V^MK;=R<JVMMW)R<B:ZLG(:LKHF)B:Z<G(F<AIRMQIR<G*W3Q6M=A-2EZ'6\nMV2M0<\"0I,$;EOJ2L(@73M7Y:6@RV6EJ([*PF)AJR)EUTLG0F)B83$W:K]5$3\nM$W8YX9@EJDJ(L7X.C;4=[+-E)`;,]?518-Z4X6]OJ!6'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX='\nM1T='1]_?WWIZ>GIZ>GIZ*BHJ*BHJ>GIZ*BHJN[M>7@,#`P,#`P.9F9F9/3T]\nMTM)Q<1FP[8LTQ6=,3(G)R1865%14DM75U=75U=750D)\"0D)\"0D)\"0D)\"0D)\"\nM0D)\"0D)\"0D)\"0D)\"U=75U=75U=75U=75DI*2DE145!86%A;)R<F)B8F)3$Q,\nM3`\\/#V=G9\\7%-#2+B^WM[>U34U/M[>U34U.PL+\"P&7%Q<7%Q<7'2TCV9`UZ[\nM*GIZ>M_?W]]Z>BJ[NUY>`P.9F9D]/3V9F9D]/9F9F9F9F9F9`P,#`P,#`P->\nMN[N[NRHJ>GK?1T>EI:6EI5=7%!1;;L`X.&$E)76I*P&!H8%@$W:I*Q$E89\"J\nMFYIDOIJ;AX>'AX>'\"`@(\"`A;%-3B+A`;5^A#(NSQJD0^K&1DSD@^VBU6X3=@\nM45%140@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"*BH;ZAO;Q45;P@(\nM\"&-N2KG4TR(=SKXP5MY140V4-_4F<AHF<B9R<G*MMW)R3P!U.#@433NN;EL%\nMTT/L:,CBT[7&[^_!(;5H6J>U?KU^L:P(\"`@(\"&%$$7!6=MXS,RLK$25N;G\\)\nMU'\\(\"`@(\"`BW%:T?K;=/MZVM%14(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(J$N^T-[,-PU14:OU41?,S-Y1#15O%6]&-FNB%`*JP2&(\nM'<CJC0RYL1V`P;Z@+2WE<\"28*9AJ*3!<MZT5%145%1\\5%15O;Q45*U)VO+R\\\nM$[QV4@$K,R5+2TL\"?V]O;ZBH;ZBHJ*BH\"*@(\"*@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`BH\"`@(O(0!EX/6HV%C<\"0P,$;EOJ3Q(@73M>^]6@RV6EJU[/&H\"`@(\nM\"`B'AX>'AX=2``&<G\\P3$W8HX6I+@-,0?EH.TXCL[+-E\"C=1]?518-XWX8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX='1T='W]_?>GIZ>BHJ*BHJ*BHJ*BHJ*BHJN[M>`P,#\nMF9F9/3T]/9F9F9D]/=+2<1D9L+\"PL%/M[8LT9P],B<G)%A945%22DI*2DM75\nMU=5\"0D)\"0IV=G9V=G4)\"0D)\"0D)\"0D)\"0D+5U=75U=75U=75U=75U=75DI*2\nMDE145!86%A86%A86R<G)R8F)B8F)3$Q,3$Q,3$P/#V?%9V=G9V=G9\\7%Q30T\nM-(N+[>U34[\"P&1EQTCV9F9D#7EZ[NRJ[NUY>`P.9/3W2TM)Q<7%Q<7'2TCT]\nM/3T]F9F9F9F9F9D#`P,#`UY>N[N[N[N[N[N[N[N[*E>B%*(4;L#`.&$E)76>\nM*P&!H9]@O+R>*RMA826J:IIDOIJ;Q,3$Q,3$Q#$Q,3$4HM3B+A`;5^A#[.PB\nM@$0^9&1DSDAJVMH&X08WS%%@S(>'AX>'AX>'AX>'AX>'AX>'AX>'AP@(\"`@(\nMJ*@(J*@(\"*@(\"`@(\"`@(\"#_9Z+G4TR(BSM9\\!MY@8\"=<5O4?;V\\5%6^M%145\nMMQ6MK0!UP,`4P2&(`EL%TT/L:,CBT[6V6G[!+K6G6K:U[[U:L:P(\"`@(\"\"5E\nM$>&4$]XS*RL!,V&0;G_4U$L(\"`@(;ZBH\"*@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(%1]RK9#6T\"?,-PWU4:OU41=@S-[U\nM#7)RMW+N-FL46VZJP2&('<CJC0RYL6B`P;Z@+2WE<-:8])AJVC!<<G(:<AH:\nMNAJZ)L*Z='TF*U)VO'9V$Q,3=H0!E6$E;DO4?QHF<JUR<G(53Q45%6^M;Q]O\nM;V\\5J(>'AX>'AX>'AX>'AX>'AX>'AX>'$U*5EX.^HV'.2&HMLT9-.Z3L[`73\nMM>]:[PP0[UJ(:/&'AX>'AX>'AX>'AX<K*ROD@8P3$U(H<*1N@-,06EH.C4/L\nM\\7R#@6!1%_5140W,X8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>E1T??WWIZ*BJ[7EX#`P,#\nM`P,#`UX#`P.9F9F9`YF9/=+2<7%Q<=+2TM+2TM+2TM+2<7%Q&1D9L+!3[8LT\nMQ6</3$Q,B8F)B<G)R<D6%E145)*2U=75U4)\"0D)\"0D)\"0D)\"0D)\"0D)\"0D)\"\nM0D)\"0D+5U=75U=75U=75U=75DI*25%145%145%14%A86%A;)R<G)R8F)B8F)\nM3$Q,3$Q,3$Q,3`\\/9V=G9V?%Q<4T-(OM[5.P&1EQ<=(]/3V9F9F9F9F9F9F9\nMF9D]/3T]TCT]F9F9/3W2TM+2TM+2TM+2TM(]/3T]/9F9F9F9F9F9/3T]/3T]\nMF5>B%*(4;EO`.&$E)76>`0&!H9]@4A-X`9YA826J:IJLOIJ;I0L+\"PL+\"PMF\nM9F975]3B+A`;5U\\,'6CL@$2@9&0MSD@D*3`&X0:4-U&4C(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A[0E1\"+4TR(=SM9<5B?,\nM-^%<5O6'AX>'AX>'AX>'AX>'AYYUP,!7P2'<R!1LTT/L:,CBT[7&6G[!+K6G\nM6J>U[[U::/&'AX>'AV&A`2=1$R<S`0$!,V&0;B#4($N'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AV'6\nMT\">4-PU1S.L7]1<740WU#8>'AX?N-FM;6VZJP2&('<@.C0RYL6B`P3N@+2WE\nM<-:8])AJVC!<AX>'AX>'AX>'AX>'AX>'*U)VO()VO!,3O+QV4BO0D&[4((>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'4@%XEX.^\nM-L#.OJ!DFJI-.Z[L'073M:=:IT,0L;&(:\"*'AX>'AX>'AX>'AX=U*V'D\"O03\nM$P$H2*0\"@\"ZV6N_ITT/QK%RAGU%18!=140U@)X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX='\nM1T??WWIZ*KN[7EY>7@,#F3T]TM+2TM+2TG%Q&1FPL+\"P&1D9&1EQ<7%Q<7%Q\nM<7%QTM)Q<1D9&1FP4U-34^V+Q6</3$Q,B8F)B8F)R<D6%A865%145%14DI*2\nMDM75U=75U=5\"0D)\"0D)\"0D)\"0D)\"0D)\"0M75U=75U=75U=75U9*2DI)45%14\nM5!86%A86%A86%A86%LG)R<G)R8F)B8F)B4Q,3$Q,3`\\/#V=GQ<4T-(OM4[\"P\nM&7'2TM+2TM(]/3T]/3W2TM+2TG%Q<=+2TM+2TCW2TG%Q&1D9&1D9&;\"PL%.P\nML+\"PL+\"P&1D9&1D9&1D9&5>BHJ(4`EO`.&$E)76>`0&!H9]@E1,!`9ZIT,\"J\nM:IJ:&+,DW]]'1T='1Z6EI0M75]3B+A#45U\\,QK$=@$2@9&0M8W`D]/24X90W\nMS,R,F#$Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAU791-S(YK8=SM8P7.%6!N%<5O6'AX>'AX>'AX>'AX>'AYYUP%M7Z\"$0U*)L\nMTZ[LL=3BYK6G6EK!+K6G6N^U[[U::.R'AX>'ARN<=@WU=B=2=H2$,V&0;M34\nM?R6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'A\\#6T.%6-PW,5N0WS/7U]0WU#8>'AX?N-C9;P&ZJ33N(\nM'<@.C0RYL6B`P3N@+2WE<-:8])AJVMHPAX>'AX>'AX>'AX>'AX>'*Y5V$W9V\nMO!,3$Q.\\4BO0)4O4SX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'E0$'EV6^P%O..Z[QK*I-(8CL:&S3M:=:IT,0L;&(L>R'AX>'\nMAX>'AX>'AX=U83:#F]I2`2M02*0\"#BZV6K'I2CYD+5:A%U',GQ=@8`U1)X>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX??W]]Z>BHJNUX#`YF9F9D]/=)Q<1D9L+!3[>WM[>WM\nM[>U34U-3L+\"PL!D9&;\"PL!FPL+`9&1FPL+\"P4U/M[8N+BXLT-,7%9V</3$Q,\nMB8F)R<G)R186%A86%A865%22DM75U=75U=5\"0D)\"0IV=G9V=G9V=G9V=G4)\"\nM0D+5U=75U=75U=75U=75DI*2DE145%145%145%06%A86%A86R<G)R<G)R8F)\nMB8F)B8E,3$Q,#V=GQ32+B^WM[5-34^WM4U.PL!D9&1D9&1D9&1D9&1D9&1D9\nML+\"PL+\"PL%/M[8LT-,7%Q<7%-#0T-#0T-#0TBXN+BU=75Z(4`EO`.&$E8:F>\nM`5*?G)]14A,!`9Z>T'6J:IJ:&#`D>GK?W]_?WT='1T=75]3B+A#45U\\,QK$=\nM@$2@9\"W:8^$DC`;,)Y_,8#<I*69F9F;$Q,3$Q,3$Q,3$Q,3$,3$Q,3$QAX>'\nMAX>'AX>'AX>'AX>'AX>'AU791*X\"+K8=SM8P7.%6C.%\\5E&'AX>'AX>'AX>'\nMAX>'AZDX6Q17Z.`0U%=LT[4=L=3BYK6G6EKHX!#OO5JU[[U:L>R'AX>'AY[K\nM$PU1=MYVO+QV4M\"0;E?42W6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\#6T.$&-PU67.16C)]@-R?U\nMWH>'AX?N-C;`P,.J33N('<@.7PRYL6B`P3N@9&3E<-:8])AJVK.SAX>'AX>'\nMAX>'AX>'AX>'*UEV$[R\\O+R\\$Q.\\4BO0)<!_SX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'67AXEV6^P%ML(8CL(H#!0]QH:&S3\nMM:=:IT,0L;&(L>R'AX>'AX>'AX>'AX=U)5NF/BU2`2M02*0\"#BZV6FCI2C[:\nM*90-]6`W\"I_,S-Y1WH>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>E1T??WWHJNUX#F9F9F3T]\nM/=+2<7%Q&1FPL+!34U.PL%-34U-34^WM4U-34U-3L+\"P&1D9&;\"PL+!34^V+\nMBS0T-,5G#P],3$Q,3$R)B8G)R<G)R<G)%A945%22DI*2DI+5U=75U=75U=75\nMU=5\"0D)\"0D)\"G9V=G9V=G9V=G9U\"0D)\"0D)\"0D)\"0D+5U=75U=75U=62DI*2\nM5%145%14%A86%A86R<G)R<G)B8F)B8F)B8F)3$Q,#V=GQ<4T-(N+[>U34U-3\nML+\"PL%-34^WM[>WM[>V+BS0T-#0T-,7%Q6</#P],3$Q,3$Q,3$P/#P\\/#P]G\nM9U=75U<4`EO`.&%AT*EX=G87Z][U4A,!`9Z>*W6J)#\"L&-HDN[N[*BHJ>GIZ\nMW]]75]3BX!#45U\\,QK$=@$2@9\"TP8^'6E#=1WF!1490PVF;$Q,0Q,3$Q,3$Q\nMQ,3$Q,3$Q#$Q,3$Q,3$Q,3$Q,8>'AX>'AX>'AX>'AU791*0\"YK8=SM8P,'!<\nMC.%<5LR'AX>'AX>'AX>'AX>'AW7`%*)7Z/*V&U<2(;7&L=3BYK6G6EKHX!!:\nMO5H0?KU:[QV'AX>'AP&K$PU@A`UV$Q.\\=BLE;E=_6W6'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUN^\nM8>$&-PU6?*%<,`I6C-91)X>'AX=&;C8X.$NJ33N('<@.7PRYL6B`P3N@9&3E\nM<-:,]\"28,#\":AX>'AX>'AX>'AX>'AX>'*UEVO+QV=G9V=A.\\4@'0)<`\"&X>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'!WB>1F4[\nM6Q1L(8@='8#!0[FQ[VS;M:=:IT,0:+&([QV'AX>'AX>'AX>'AX<X.%NFH&25\nM>-\"32*0\"ZBZV[QWP1)OTC&`-%\\R4\"I^4E)_,)X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX='\nMW]]Z>BJ[7@,#F9D]TM)Q&1D9&1D9&1D9&1EQ&1D9&1FP4U/MBXLT-#0T-#0T\nMB^WM4U.P&1D9<7$9&5/MBXLT-#0TQ<7%9V</3$Q,3$R)B<G)R186%A945)*2\nMU=75U=75U=75U=75U=75U=75U4)\"0D)\"0IV=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G4)\"0M75U=75U9*2DI*2DE145%14%A86%A;)R<G)R<G)R8F)B8F)\nMB8F)3$Q,3$P/#V=G9\\7%Q30T-,4TQ<4T-#0T-#0T-#0T-#3%Q6=G#P],3(F)\nMB8F)B8F)B8F)B8E,3$Q,3%=75U>B`EM;.&'0*YX!O!/UZ_7U4KQX`9Z>*]E&\nM)#!D&-HD*BIZ>GK?W]_?W]]75]3BX!#45^@,';'L@$H^I+,P4.&?S,SU#1?U\nM]8S:+8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAU791*S(+K8=SILP,'!<C.%\\])2'AX>'AX>'AX>'AX>'AW5;HE=7Z.`0U%<2\nM+K7&L=3BT[6G6EKHX!#OO>\\0[[U:6FB'AX>'AX2K$PU1A`V\\O!.\\@BLE2U<\"\nMP#B'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AZ([)>$&-PU6*:%<,)M<,-91H8>'AX=&;C8X.\"6J33N(\nM'<@.C0RYL6B`P3N@9&3E<-:,]\"28*3!DAX>'AX>'AX>'AX>'AX>'GED`=G92\nMA(2\"61,3O(0K83A+:X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'!YZ>1F4^P!1L(8AH:(#H#+9:?FS;M:=:IPP0:+&([\\:'AX>'\nMAX>'AX>'AX<XP&NFH*P'GM\"T2*0\"ZBZVL>SP9=:,-_4-%S<&\"I\\&C-8&X8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=Z>BHJNUX#`YD]TG%Q<1D9&1D9&1D9&1D9L+\"P&1D9\nM&;\"P4^WMBXN+-#0TQ6=G9\\7%-#2+[>WM[>WM[5-3[>V+BS0T-,7%Q6=G9V=G\nM9P],3$Q,B8F)R<D6%E14DI+5U=75U=750D)\"0D)\"0D)\"0D)\"0D)\"0D*=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G4)\"0D+5U=75U=75U9*2DI)45%145!86\nM%LG)R<G)R<G)R<G)R<G)R<G)R<G)R8F)B4Q,3$Q,3$Q,3$Q,3$Q,3`\\/#P\\/\nM#P\\/#TQ,3$Q,3$Q,3$Q,3(F)B8F)B8F)B4Q,3$Q,#U=75U>B`EM;.&'0*P<!\nM$Q/UZ]Y1E80'`9Z>*ZE&)#`M&\"TD\"PL+\"PL+\"V9F9F975]3B+A#45^@,[&CL\nM@$H^I#\",4\">?8%'U#?7U48PM+8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AU4E1/'4+KEHSIMD,'#T,.%<])2'AX>'AX>'AX>'\nMAX>'A\\!;HE=7Z\"$0R%<2X+7&[]3BT[6G6EKHX!\"G6J>U[[U:6J>'AX>'AU*K\nM=@U1A`U2,X2$,]\"0;E=_P'6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\\\^;G!6!@U6].16,)M<+=91\nMX8>'AX=&;C9U=26J33N('<@.C0RYL6B`P3N@9&3EX=:,C\"28]\"EDAX>'AX>'\nMAX>'AX>'AX>'`5D!`9Z>`0&>!X0!=KP!=75;R(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'V9ZI1F4[P!1L(1\"QL>KH#+9:6A+;\nMM:=:IPP0L>^U6L:'AX>'AX>'AX>'AX?`P**FH*P'GM\"T2*0\"ZBZV:/'P@X$W\nM8/4-GS<&\"H&,]-:,X8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<J*BHJNUX#F3W2<7$9&;\"P\nML+\"P4U-34U/M[5-34U.PL+!34U/M[5/M[8LTQ<5G9V=G9\\7%Q30TQ<5G9\\7%\nM-,7%Q<7%Q<7%Q<5G#P\\/#TQ,3$R)B8F)R<G)%A945%22DI+5U=75U=75U=5\"\nM0D)\"0D)\"0D)\"0D)\"0D)\"0D)\"0D)\"0D)\"0D)\"0D)\"0D)\"0D+5U=75U=75U=75\nMU=62DI*2DE145%14%A86%A;)R<G)R<G)R<G)R<G)B8F)B8F)B8F)B8F)B8F)\nMB4Q,3$Q,3$Q,B8F)3$Q,B8F)B8F)B8F)B8E,3$Q,3$Q,3$Q,3$Q,3$Q,#P]G\nM9U=75U>B`EM;.&'0*P<!$[SUG)_,,P&>*YZ>`:E&)#!D&\"TDAX>'AX>'AX>'\nMAX=75]0.(;7(5^A#N6CL@$H^LS\",4\"?>45'U#?5148PM+8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AU792NS4+KFQ!3ZL,'#T\nM,.'TC,R'AX>'AX>'AX>'AX>'A\\`45U=7P2$0U%<2X!\"G[]3BT[6G6EKHX!\"G\nM6FBUIUI:6N^'AX>'AP'K>-[,`2>>J2LK=25;HE<4P'6'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\]#\nM`DA<C`W,-^L&C\"28VM91X8>'AX=&;C9U=26J33N('<@.C0RYL6B`P3N@9\"WE\nMX=8&C`H&C(QDAX>'AX>'AX>'AX>'AX>'4EFI*YZIT-\"IJ2N>4KR$GG4V6X>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'V75U1F4[\nMP!1L(1#O[^KHM>]:6A+;M:=:IT,0L>\\06J>'AX>'AX>'AX>'AX?`6\\^FH*P'\nMGF&TOJX\"ZBZV[*SP@Y]@4?4-GS>4\"@J,*=;TX8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>9\nM/3T]/3W2TM)Q&1D9&1D9&1D9&;\"PL+\"PL%/M[>V+-#0T-#0TQ<7%9V=G#TQ,\nM3$Q,3$Q,3$Q,#P]G9\\4T-#0TQ<5G9V=G9V</#TQ,3$Q,3$Q,B8F)B8G)R<G)\nM%A865%145)*2DM75U=75U=75U4)\"0D)\"0D)\"0D)\"0D+5U=75U=75U=75U=75\nMU=75U=75U9*2DI*2DI*2DI*25%14DI)45%145%145!86%A86%A;)R<G)B8F)\nMB8F)B8E,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#P]G\nMQ6=G9V=G9\\5GQ<4T-#0T-%=75U>B`EM;.&'0*P<!$[P7G(&4J0&>*YZ>`0?N\nM:IKQ&\"V;AX>'AX>'AX>'AX=7%,@%T[745^@AW&@=@$H^LS\",*-X745%1#1=1\nM8(PM+8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAVQN7QW4+K;O!3ZLLQ@I,.&,C%&'AX>'AX>'AX>'AX>'A\\`45U=7P2&(U%<2\nMX!\"G?M3BT[6G6EKHX+6G?L:UIUI:O5J'AX>'AP'KGB>4`>&>V=#0=2445U<4\nMP'6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'A^I#R+XP,`U14:O,!@H&C\"?,X8>'AX=&;C9U=26J33N(\nM(L@.C0RYL1V`P3N@+2WEX=:4E#<&C(QDAX>'AX>'AX>'AX>'AX>'4@=U*W5U\nM)25U==\">,X2\\GG4V6X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'-G4V1F6^.!1L(1#O[^KHM>]:6A+;M:?O:$,0L5H06J>'AX>'\nMAX>'AX>'AX?`6\\^FH/$'GM\"TOJX\"#N\"Y[&0HH9]@4?4-GS>4\"@KTVB0IX8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<9&1D9&;\"P4^V+BXN+[>WM4U-3L!D9&;\"P4U/M[8LT\nM-,5G9V=G9P\\/#P],3$Q,3(F)B8F)B8F)B8F)3$Q,3$Q,3$Q,3$Q,3$Q,#P]G\nM9V=G9P\\/#TQ,3$Q,B8F)B8F)B<G)R<G)%A86%E145%14DI*2DI+5U=75U=75\nMU=75U=75DI*2DI)45%145!86%A86%A86%A945%145%145%145%145%145%14\nM5!86%LG)R<F)B8F)B4Q,3$Q,3$P/#P],#P\\/#P\\/#TQ,3$Q,3$Q,3$Q,#TQ,\nM3$Q,3`\\/#V=GQ<7%-,7%9V=G9V?%Q<7%Q<4TBXLT-%=75U<4`EM;==`K*P<!\nM$W87H=96J0&>*YZ>`0?NKO$=OF2;AX>'AX>'AX>'AX>B%`+ITZ[(HN@AW&@=\nM@$H^LS\",*-[U45'U#?7U48PM+8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVPV7[;4+AWO!3[Q+1@I,\">,!O6'AX>'AX>'AX>'\nMAX>'A\\`4SU=7$B&(U%<2X!#O?M3BYK6G6EKHX!\"G?L:UIUI:O5J'AX>'AU(-\nMGN&,*^%UV=!A.&ZB5U=;.'6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\^UU+ZS,.&4-^OU4?478`V,\nM<(>'AX=&;C9U=26J33N('<@.C0RYL1V`3;Z@+=KEX8$WS)^4!E::AX>'AX>'\nMAX>'AX>'AX>'`0=UT'5U)27`=25U!P$3>)ZC;H>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'-G4V1F6^.%ML(1#O[^KHM;9:6FS;\nMM<:QQD,0L5H06J>'AX>'AX>'AX>'AX?`P,^FH/%9GM\"TOJX\"#N\"Y[&0HH9]@\nM4?4-%\\R4\"B3T+20IX8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>+BXN+BXN+-#3%Q6=G9V=G\nM9V?%Q<7%Q<5G9V=G9V=G#P],3$Q,3$Q,3$Q,B8F)B<G)R<G)R<G)R<G)R8F)\nMB8F)B8F)B8F)B8F)3$Q,3$Q,3$Q,3$R)B8F)B8F)B8F)B8G)R<G)R<G)R<G)\nMR<G)R<G)R<D6%A865%145%145%06%A86R<G)R<F)B8F)B8G)R<G)R<G)R186\nM%LG)R<G)R<G)R<G)R<G)R<G)R<G)B8F)B4Q,3`\\/#P\\/9V=G9V=GQ<7%Q<7%\nMQ<7%Q<7%Q<7%Q<7%Q<5G9V?%Q30TBXN+[>WM4U/M[>V+B^WM[5-34^WM4U-3\nM[5=75U<4`L!;==`K`5F$O%*!H216J2N>*YYX`0?NM1WO.ZP^AX>'AX>'AX>'\nMAX<46V[ITZ[(%,$AN6@=@$H^LS\",4-[U]5'U#?7U48S:VH>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVPV7[8;YKFQ!3ZLFAC:\nM,.&,E/6'AX>'AX>'AX>'AX>'A\\`4SU=7P2&UU%<2X!#O6M3B+K6GO5KHX!\"G\nM?L:UQEI:O>^'AX>'AX2AGN'T*W!UV6$E6P)75Z+`=76'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\^U\nMR#MD9'#TC.3,41<W-^$P2(>'AX=&;C9U=26J33N('<@.C0RY:!V`3;Z@VC!C\nMH9]@8!<WE%::AX>'AX>'AX>'AX>'AX>'`5EUT'7`P\\-;.\"5U!RN\\`7BCV8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'-C@V1F6^\nM.&ML(1#O[^KH#+;O[VS3M<:QQD,0L5H06J>'AX>'AX>'AX>'AX?`6\\]$KO%2\nM>\"NT2*0\"#N\"Y[*SPH9]@4?4-%\\PW\"B0I+3XPX8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX</\nM9V=G9\\7%Q6=GQ<7%Q<7%Q<5G9P\\/3$Q,3$Q,3$Q,3$Q,B8F)B<G)R<G)R<G)\nMR<G)R<D6%A86%A86%A;)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)\nMR<G)B8F)B8F)B8F)B8F)B4Q,3(F)B8F)R<G)R186%LG)R<F)B8F)3$Q,3$Q,\nM3$Q,3$R)B4Q,3$Q,3$R)B8F)B8F)B8E,3$Q,3$Q,3(E,3$Q,3$Q,#P\\/9\\4T\nMBXOM[8OM[>WM4U-34U-34U/M[>V+B^WM[>WM4U-34U-3L+\"PL+\"PL+\"PL+\"P\nML!D9<7'2/3T]TM+2<7%Q<5=75U<4`L!;==`!`5F$A`&!@R1<V2N>*YYX`7CN\nM$+%:._&@AX>'AX>'AX>'AX<46V[ITZ[(HNA#N;%H@$H^I#\",4\"?>45%1WA=1\nM]8PP,(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAVPV7Z?4YB)HSCZLLQC:,.&,E/6'AX>'AX>'AX>'AX>'AUNBSU=7Z\"$0U%<2\nMX!#O6M3B+K7OO5K!X!\"G?AVUQEKOO>^'AX>'AP&AJ7`IT!AU;B5+HLC/5Q3`\nM=3B'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'A\\]#U\"$B\\4C:VJ&8C`J8]-::2(>'AX=&;C8X.$NJ32&(\nM:-0.C4/<QB*`3;YJVBGK)]Y141>?-S>SAX>'AX>'AX>'AX>'AX>'>`=UT#A;\nM;FY;P,-U)2N$A`&CV8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>':SAK1D0[.&ML(1\"QL>KH#+FQL6S3M<:QQD,0L5H06L:'AX>'\nMAX>'AX>'AX?`6\\]$KNQ2`0%02*0\"#N\"Y[/'P@Y_,8/6K%V`W\"B3:9#[:X8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>)B8F)B8F)B4Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$R)B8F)\nMB8F)B<G)R<G)R<G)%A86%A86%A86%A865%145%145%06%A86%A86%A86%A86\nM%A86%A86%A86%A86R<G)R<G)R<G)R8F)B4Q,3`\\/#P\\/#P\\/3$Q,3(F)3$Q,\nM3$Q,3$Q,#P]GQ30TBXN+-,7%Q6=GQ<7%Q<7%Q<7%9V=G9V=G9V=G#P\\/#P\\/\nM#TQ,3`]G9\\7%Q<4TBXOM4[\"PL+`9&7%QTM+2TM+2TM+2<7%Q<7'2/3V9F9F9\nMF3T]/3V9F9F9F0,#`P->NRHJ*BHJ*BHJ*BHJ*BHJ*A175U>B`EMK==`!`94!\nM`2L*@R0PV2N>*WAX`7A&$%J]0QV@AX>'AX>'AX>'AX<46V[ITZ[(5^A#N>^Q\nMZDJ@I#`I4.&?8,Q@)Y]1]90P*8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVS(7Z?4YB+LSCZLLQC:L^'TE%&'AX>'AX>'AX>'\nMAX>'AUM7SU=7Z.\"VU%<2X!!:6M3B+A#O6EK!+K5H[^Q#'>^Q6J>'AX>'AWB#\nM=1C:84AU6TMN5]3/HEO`.,\"'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVM#U`RQ'=.LK*:S,'PM9+YD\nMOH>'AX?N;C8XP,.JP2$0[QOJ7T/<[/&J34AJ*8SK#=Y1]?5@S#<PAX>'AX>'\nMAX>'AX>'AX>'>`=U8<!;;FY;P,,XV=`!4E+9V8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>':SAK1D0[P&ML(1\"Q:.KH#+EH:&S3\nMM<:Q:$,0L;&(L1V'AX>'AX>'AX>'AX<X6\\]$B.R5A%)02*0\"#N\"Y[/'P@X&4\nMS!<-]6`W)\"3:9#XIX8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?)R<G)R<G)R<G)R<G)R<G)\nMR<G)R<G)B8G)R<G)R<D6%A86%A865%145%145%145%145%145%145%145%14\nM5%145%145%145%145%145%145%145!86%A86%A86%LG)R<G)B8F)B<G)B8F)\nMB8E,3$Q,3$Q,3$P/9V?%Q<7%-#0T-#0T-#0T-#0T-#0TQ<7%-#0T-#2+BXOM\nM[5-34U/M[8N+BXN+BS0T-#0TBXOM[>WM4U-34U-3L+\"PL!D9<=+2/3V9F9F9\nMF9F9`P->NRIZWT='1T??W]_?>GIZW]_?WT='I:4+\"PMF9F;$Q,3$Q#'$Q,3$\nMQ%L45U=7`EMK.-`!`94!`2N;96JSV2N>*P<!4GA&MEJ]0[&(AX>'AX>'AX>'\nMAX=;P&[ITZ[(5^@,MEJQZDJ@+3`P8^&!-Y0WX9]1]<ST](>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVS(7Z?4YB)H!3[QFD@M\nM+>'TE%&'AX>'AX>'AX>'AX>'AQ17@%=7Z/*VU%<2X!!:6M3B+K6G6N_!(;7&\nML>Q#[+&Q6L:'AX>'AWB#=4@M);[`R`(\"S]3/HEM;6UN'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVN@\nMR`Q:?B'&:$3Q\\:[Q[#[Q.X>'AX?N;C;`P&Z`P2&V?M3J7R&(\\:RJ34@D](RK\nM#0U14?478#=<AX>'AX>'AX>'AX>'AX>'>.YU8<`4;FY;P,,XV=`!`5*IV8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>':\\!KJD0^\nMP&ML(8AH:(#!0]S&:`730QVQQD,0:+&(:.PQ,3$QAX>'AX>'AX<XP,]$B.P'\nMA(102*0\"#N\"YQB+P@]:,E&`-]5$W)\"3:9#XIX8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<6\nM%A86%A86%A86%A86%A865%14%A86%A86%E145%145%22DI*2DI*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI)45%14\nM5%14%A86%LG)R<G)R<G)R<G)R<G)B8F)B8E,3$Q,3$P/#P]G#P\\/9V=G9V=G\nM9V=G9V=GQ<4T-(N+[5,9<7'2/3V9F9D]TG$9&1D9&1D9&1D9&1EQ<7%Q<1D9\nM&1D9&1EQTM(]/0->N[LJ*BHJ*GIZWT>E\"PMF9F9FQ,3$Q,3$Q#$Q,3$Q,3$Q\nM,3$Q,3&'AX>'AX>'AX>'AUL45U=7R!2BP&$K`96$4BLD93ZS;M\">T)YX4GA&\nM$%J]#.^UAX>'AX>'AX>'AX=;P&X%T[7(5U\\,MEKOZDJ@+;,P8^'6!HR4X9]1\nM46\",C(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAVPV7[;4+K9:;$/&\\;ZL9.$IC%&'AX>'AX>'AX>'AX>'AQ17ZE=7Z/*VU%<2\nMX!!:6M3B+K7&[['!(;7L:.Q#\\6AH[QV'AX>'AYZ#=;YD2SL4&\\C4ZM17HEM;\nM6Q2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AVN@R$-^6N#O6HUH:-P=:$,B.X>'AX?N-C9;6P*`Z/*V\nML<CJ2CNDK)I&37`DC)2K#1=18!<78#=<AX>'AX>'AX>'AX>'AX>'GNYU)5L4\nM`@);6\\,X)2L!`5*>J8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS'$9@NE:\\!KJD0^P&ML(8CL'8#!0]S&'05*0^RQQD/<:+&([/%ZWT='\nM1T>EI:6E\"PMUP&NFKNP'A'902*0\"#N\"YQB+P9=:,C#<-%U',\"B0I+3[TX8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=45%145%145%145%145%145%145)*2DI*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DI*2DE145%06%A86%A;)R<G)R<G)R<G)R<G)B8F)3$Q,\nM3$Q,3$Q,3`\\/#V=G9V=G9\\7%-#0TBXN+[5-3L+\"P&1EQ<=(]/3T]/=+2<7%Q\nM<7$9&1D9&1FPL+\"PL+`9&1EQ<7'2F0,#7EZ[N[LJ>M]'I0L+9F;$Q#&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUL45U=7R!3/P\"4K*UF$\nMA\"L*@YNS;M\"IT)YX`7A&$%J]#%H0AX>'AX>'AX>'AX=;P&X%T[745U\\,MEKO\nMZDJ@+3`P8^'6!HR4X9]@45&4C(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVPV7QW(YK:]$K5::\"'LK'#:C%&'AX>'AX>'AX>'\nMAX>'AZ)7ZE=7Z.`0U%<2X!!:6LCB+K4=L6C!TZ[LQO%#\\>SL:.R'AX>'AYZ#\nM=;[Q;B%7S]34S\\C/%%M;6Q2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUL^`B%H?N!:O8VG?KFG6D-H\nM(8>'AX=&-FL4%,B`7_(0'0*`1+YJ+3!&Y>$*-V\"K#=Y@S!<78#=<AX>'AX>'\nMAX>'AX>'AX>'GNYU)5L4`L@46\\,X)2L!>`%X!X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'A\\1F\"PNE1WHJNUX#F3T]:UMKJDJ@6Z)L(8CL'8#!0]SL'05*\nM0^RQQD/<L;&([/%>7KN[*BHJ>GIZW]]U=6NFKNP'A(102*X\"#BX0QB+P9=;T\nM])0G%U%1GR0I+3XIX8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=45%145)*2DI*2DE14DI*2\nMDI*2DI*2DI*2U=75U=75U=75U=75DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DE145%145%145%06%A86R<G)R<G)\nMR<G)B8F)B8F)B8E,3$Q,3$Q,3$Q,3$Q,#V=G9V=G9P\\/#P\\/9V?%Q30T-(N+\nMB^U34U.PL+\"PL+`9&7%Q<7'2TM+2TG%Q&1D9&7$9&1EQTCV9`P->7KLJ>M]'\nMI0MFQ#$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAUM75U=7U!3/P\"70*P<!O`&!@R0PV=\">*YYX`9Y&$%J]#%H0AX>'AX>'AX>'\nMAX=;P&X%(;745U\\,MEJQZDH^+3`I8^'6!@8W)V!1]5$W!H>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVPV2NP\"TR):;(A:?@QH\nM(D@M]%&'AX>'AX>'AX>'AX>'AZ)7@%=7Z.`0U%<2X!#O6M3B+K7L:!U-TZ[L\nM[/&@\\>SL:.R'AX>'AYZ#=;[LR.!7S]34S]2B%%M;6Q2'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUL^\nM`B%HL2'OO8WO6K;OO0SO(8>'AX=&:VNB5]3JZ.\"(\\6ZJ9;Z8*8R7Y.&?8%&K\nMWI\\W-Q<78#=<AX>'AX>'AX>'AX>'AX>'=>YU)104R-2B%&XX)2L!>'@!,X>'\nM,3$QAX>'AX>'AX>'AX>',<1F\"Z5'1]]Z*EX#F3W2<7$9&;\"P4U-3SUL)JDI#\nM6\\]L(8CL'8#!0]SL'05*0^QHQD/<L;&([/$#7EY>N[N[*BHJ>GIU=6NFI/%9\nMA`&32*X\"#B[<[\"+P99LI])0GGU%1GPKTVCXIX8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=4\nM5%145%145%14DI*2DI*2DI*2DI*2DM75U=75U=75U=62DI*2DI*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*25%145%145%145%145%145%14\nM5!86%A86%A86%A;)R<G)R<G)R<G)R8F)B8F)B8F)B8E,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$P/#P]G9\\4TB^U3L!D9&1D9&7%Q<=+2/3T]F9D#`P,#`P,#\nM7EY>N[LJ*GK?W]]'I0L+Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AQ175U=7U!3/P\"70T-EXO':?H21<V2N>*YYX`9Y&\nM$%J]M;VVAX>'AX>'AX>'AX<46VX%(;7(5U\\,MEJQZDH^VC\",4.&!E)1@WA?U\nM]5$W!H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAU5N1/%N2JS&!3[L'0Q:L;YD]%&'AX>'AX>'AX>'AX>'AQ17@%=7Z.\"VU%<2\nMX!#O6M3BYK7L:!U-TT/Q[/&@\\>SLQNR'AX>'AW5E.#NQU`Q7S]3(S\\BB6UL4\nM%!2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AUL^`B$=:\"%H6MM:6K;OO;5:X(>'AX=&\"0E75]2`Z\"&N\nM9\"6JIA@DC`8YZ]X7]6\"K)Y\\W-V`78#=<AX>'AX>'AX>'AX>'AS'$=:-U)104\nMR,A7%`+`V=`!>'B$4M]Z>BHJ*GK?WWIZ>GIZ*KM>`YD]TM)Q&;!34^WM[8N+\nMBXN+-#0T-#0TSQ3/JDI#%,]L(8CL'8#!0]S&'05*0^RQQD/<:+&([/$#`UY>\nMN[N[NRHJ>GIU=5NFH*P!`0&TOJX\"#BX0[\"+P99LI*90GGV!1%PKT*23:<(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=45%145%145%145%14DI*2DI*2DI*2DI*2U=75U=75\nMDI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DE145%145%145%14\nM5%145%145%145%14%A86%A86%A86%A86R<G)R<G)R<G)R<F)B8F)3$Q,3$Q,\nM3$Q,3$Q,B8F)B8F)B8F)B8F)B4Q,3$Q,3$P/#P]G9\\4T-(N+[5.P&1EQ<=(]\nMF0->7EZ[N[M>N[N[*BIZ>M_?WT='I:4+\"V9FQ,0QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ175U=7U!1KP\"5AT-F>\nM=A/UG-8&V2N>*YYX`9Y&$%J]M;VVAX>'AX>'AX>'AX<4%`)L(;7(5U\\,MEJQ\nM@$H^VC\",4.&?S,Q1#1=145$W!H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AU791*S#1+/QSINL\\2'O6CMD]%&'AX>'AX>'AX>'\nMAX>'AUM7SU=7Z/*VU%<2X!#O6M3BYK7L:!U-TZ#Q[/&@\\>SL[.R'AX>'AW5E\nM6R%:U`Q7S]1_5\\BB%!045Q2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUL^`B$='=/LL8VG6K9^O;5:\nMX(>'AX>J\"<]75\\B`P3N@+26J@W`*!LP<JPT78#>KH9\\WS!=1S%9<AX>'AX>'\nMAX>'AX<QQ&:EP#9U)12B`LA75P+`V6$KGIX!4M+2TM+2TM+2TM)Q<7$9&1FP\nM4^V+BXLT-#3%Q<7%Q<7%-#0T-#2+-(N+SU?/@$I#5\\]L(8@='8#!0]S&:`73\nM0^RQQD/<:+&([/&[NRHJ*BHJ*BIZ>GIU=3:FH*Q2`2NTOJX\"#N`0QB+P99LI\nM])0GGV!1%PJ,*20M<(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,3$Q,3$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=45%145%145%22DI*2DI*2\nMDI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2\nMDI*25%145%145%06%A86%A86%A86%A86%A86%A86%A86%A86%A86R<G)R<G)\nMR<G)B8F)B8F)B8F)B8F)B8F)B8F)B8G)R8F)B8F)B8F)B8F)B4Q,3$Q,3`\\/\nM9V?%-(OM4[`9<7'2/9D#7EZ[N[LJ*GIZ>GIZ>GIZ>GK?1T='I:4+\"PMF9F;$\nMQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\n-------- End of part 5 of 14 --------\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1509, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bjorndahl@augustana.ab.ca\nSubject: Re: document of .RTF\nOrganization: Augustana University College, Camrose, Alberta\nLines: 10\n\nIn article <1993Mar30.113436.7339@worak.kaist.ac.kr>, tjyu@eve.kaist.ac.kr (Yu TaiJung) writes:\n> Does anybody have document of .RTF file or know where I can get it?\n> \n> Thanks in advance. :)\n\nI got one from Microsoft tech support.\n\n-- \nSterling G. Bjorndahl, bjorndahl@Augustana.AB.CA or bjorndahl@camrose.uucp\nAugustana University College, Camrose, Alberta, Canada      (403) 679-1100\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1510, "properties": {"category": "comp.sys.mac.hardware", "text": "From: meg5184@hertz.njit.edu (Starman)\nSubject: * What's the difference between a Mac Portable and Powerbook 100?\nDistribution: usa\nOrganization: New Jersey Institute of Technology, Newark, N.J.\nLines: 24\nNntp-Posting-Host: hertz.njit.edu\n\nI've been looking into getting a portable Mac to do some work and I've\nhad my eye on the PB 100. Lately, I've been seeing people with the old\nportables, and they're selling for $300 LESS that the PB 100s. What I\nwant to know is: what are the differences between them? All I know is\nthat the Portable is heavier, but the PB100 doesn't have an internal\ndrive. Here's what I NEED to know:\n\nDoes the portable support Appletalk/network connections?\nWhat's the CPU inside a Portable? (68000?)\nDOES THE PORTABLE SUPPORT SYSTEM 7?????????\nWhat's the maximum memory capacity of the Portable? Can you still get\n\tRAM (meaning: does it use special SIMMS?)\nWhat kind of internal HD does it use?\nDoes the Portable have a better screen?\n\n\t\t\t\t\t\tTHANX in advance.\n\n===============================Mike Gaines==============================\n= WHAT is your name?                           Captain Jean-Luc Picard =\n= WHAT is your quest?                            I seek the Holy Grail =\n= WHAT is the top velocity of a Bird of Prey?      Romulan or Klingon? =\n=                         I....I don't know...AAAHHHH!!!!              =\n=============================meg5184@hertz.njit.edu=====================\n                                Graphix@AOL.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1511, "properties": {"category": "talk.politics.mideast", "text": "From: bill_paxton@fourd.com\nSubject: Argic\nOrganization: 4th Dimension BBS\nLines: 7\nNNTP-Posting-Host: cs.utexas.edu\n\nCan you aswer me one question? How did you get to be so retarded?\n\n********************************************************************\nSystem: fourd.com                                Phone: 617-494-0565\nCute quote:  Being a computer means never having to say you're sorry\n********************************************************************\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1512, "properties": {"category": "soc.religion.christian", "text": "From: will@futon.webo.dg.com (Will Taber)\nSubject: [soc.religion.christian] Re: The arrogance of Christians\nLines: 50\n\nIn a previous message  aa888@freenet.carleton.ca (Mark Baker) writes:\n\n>If I don't think my belief is right and everyone else's belief is wrong,\n>then I don't have a belief. This is simply what belief means.\n\n [More stuff deleted]\n\nThis seems to be a pretty arogant definition of belief.  My beliefs\nare those things which I find to be true based on my experience of the\nworld.  This experience includes study of things that I may not have\nexperienced directly.  But even then, I can only understand the\nstudies to the extent to which I can relate what I study back to what\nI have experienced.\n\nWhich means that by beliefs about God are directly related to my\nexperience of God.  Having experienced God, I try to make sense of\nthat experience.  I study religion and read the Bible.  I find things\nthat echo what I have already experienced.  Out of this I build my\nbeliefs.  I also find things that don't match my experience.  That\ndoesn't make them false.  They just don't match my experience.  Maybe\nI will understand that stuff later.  I don't know.  Maybe all of my\nbeliefs are wrong.  I can change my beliefs.\n\nIf someone else has beliefs that are different from mine, so what.\nNeither of us are necessarily wrong.  Someone else is making sense out\nof a different set of experiences.  Even though we have different\nexplanations and beliefs, if we talk we might even discover that the\nunderlying experiences are similar.\n\nSome people approach religion as a truth that can only exist in one\nform, and usually has a single revelation.  The more dogmatic and\ninflexible the belief system, the more arrogant it will appear to an\noutsider.  There is another approach possible, however.  God is a\nmystery.  I am trying to solve the mystery, so I look at the evidence\navailable to me.  I try to arrive at the best understanding that I can\nbased on the evidence.  New evidence may cause me to change my\nunderstanding.  When I encounter someone with a different belief than\nmy own, it isn't a threat, it is an opportunity to perhaps discover\nsomething new about this mystery I can never fully comprehend.\n\nPeace\nWill Taber\n---------------------------------------------------------------------------- \n| William Taber         | Will_Taber@dg.com \t  | Any opinions expressed |\n| Data General Corp.    | will@futon.webo.dg.com  | are mine alone and may |\n| Westboro, Mass. 01580 |                         | change without notice. |\n|---------------------------------------------------------------------------\n| When all your dreams are laid to rest, you can get what's second best,   |\n|\tBut it's hard to get enough.\t\tDavid Wilcox               |\n----------------------------------------------------------------------------\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1513, "properties": {"category": "sci.electronics", "text": "From: gtalatin@vartivar.ucs.indiana.edu  (Gerard V. Talatinian)\nSubject: Low cost oscilloscopes?\nNntp-Posting-Host: vartivar.ucs.indiana.edu\nReply-To: gtalatin@ucs.indiana.edu\nOrganization: Indiana University\nLines: 12\n\nI am looking at buying a low cost (< $500) scope for general purpose use.\nAny recommendations? Is this info in a faq somewhere?\nAny pointers appreciated.\nThanks,\n  -Gerard.\n\n******************************************************************\n* Gerard Talatinian                 |                            *\n* Network Systems                   |   gtalatin@ucs.indiana.edu *\n* University Computing Services     |   FAX:   (812) 855-8299    *\n* Indiana University                |   Voice: (812) 855-0962    *\n******************************************************************\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1514, "properties": {"category": "rec.sport.hockey", "text": "From: smorris@venus.lerc.nasa.gov (Ron Morris )\nSubject: Re: Blackhawks win!!!\nOrganization: NASA Lewis Research Center\nLines: 19\nDistribution: world\nNNTP-Posting-Host: venus.lerc.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn <1993Apr16.140953.5025@vax.cns..edu>, jbrown@vax.cns.muskingum.edu writes...\n>The Hawks win!!  Jermey Roenick scored his 50 th goal and the Hawks put the\n>Leafs in their place, the losers column.  If the Leafs can not even beat the\n>Hawks in a match that had little or no meaning I will hate to see them against\n>the Wings.  \n> \n>Oh btw I laugh at rm, that jerky!!!\n\nI would appreciate it if you would not refer to Mr. Maynard by his\ninitials.  Thanks, see you in the Norris finals.\n\nRon\n\n**********\n\"And one of my major goals is to leave the next president a new set\nof things to worry about.  I'm getting bored reading the same problems\nin the paper, decade after decade.  I want people to have to deal\nwith new problems.\"\n                    ... President Bill Clinton   2-4-93\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1515, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Alexander Samuel McDiarmid <am2o+@andrew.cmu.edu>\nSubject: Re: HELP INSTALL RAM ON CENTRIS 610\nOrganization: Sophomore, Mechanical Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 22\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <C5115s.5Fy@murdoch.acc.Virginia.EDU>\n\nExcerpts from netnews.comp.sys.mac.misc: 5-Apr-93 Re: HELP INSTALL RAM\nON CEN.. by Jason Harvey Titus@farad \n> From: jht9e@faraday.clas.Virginia.EDU (Jason Harvey Titus)\n> Subject: Re: HELP INSTALL RAM ON CENTRIS 610\n> Date: Mon, 5 Apr 1993 20:05:51 GMT\n>  \n>         I had asked everyone about problems installing a 4 meg\n> simm and an 8 meg simm in my Centris 610, but the folks at the\n> local Apple store called the folks in Cupertino and found that\n> you can't have simms of different speeds in one machine, even\n> if they are both fast enough - ie - My 80 ns 8 meg and 60ns 4\n> meg simms were incompatibable...  Just thought people might\n> want to know.....\n>                                         Jason.\n\n\n\noh boy am i confused, I thought the entire point of the 72 pin simms was\nthat you could use diffrent size simms so you could avoid having to use\nsets.  all horror stories not withstanding.\n\n                                                                -A.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1516, "properties": {"category": "comp.sys.mac.hardware", "text": "From: afung@athena.mit.edu (Archon Fung)\nSubject: wrong RAM in Duo?\nOrganization: Massachusetts Institute of Technology\nLines: 9\nDistribution: world\nNNTP-Posting-Host: thobbes.mit.edu\n\nA few posts back, somebody mentioned that the Duo might crash if it has\nthe wrong kind (non-self refreshing) of RAM in it.  My Duo crashes\nsometimes after sleep, and I am wondering if there is any software which\nwill tell me whether or not I have the right kind of RAM installed.  I\nhad thought that the problem was the battery connection.\n\nThanks in Advance,\n\nArchon Fung\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1517, "properties": {"category": "sci.crypt", "text": "From: grady@netcom.com (1016/2EF221)\nSubject: powerful \"similarity\" too\nOrganization: capriccioso\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 107\n\nA Unix tool of cryptographic significance is available\nfor anonymous ftp.\n\n\"agrep 2.0.4\" -- a fast approximate pattern-matching tool\n\nsource code project available from:\n\ncs.arizona.edu \n\nin directory \"agrep\"\n\nagrep is a very fast fuzzy search tool with a tremendous\nnumber of powerful search options.  The one most obviously\napplicable to cryptography (key selection) is to be able to\nspecify the \"similarity\" of matches in the data.\n\nFor example say you make up a password/phrase of \"qimwe7l\".\nOf course you rightly suspect that this key itself is not\nin any dictionary or word list.  But how *close* is it to\nen entry that could be varied by some \"crack\" program to\nbrute-force search for it?\n\nYou use agrep to find out.  Looking with argument for none,\none or two errors, no matches.  Good so far.  But \n\nagrep -3 \"qimwe7l\" bigwordandphraselist\n\nfinds that the pattern \"qimwe7l\" is too close to the\npattern \"imsel\" (part of \"himself\" and a host of others),\nto be of any cryptographic value as a key.\n\nAn error of level two corresponds to a simple transposition of\nletters like \"teh\" for \"the\".  A minimally acceptable password\nwould have to pass as *least* level 3 in order not immediately\nruled-out as even a remote possibility of being a good password.\n(In real cryptographic use, my personal passphrases clear at\n*least* level 8 on my rather large [>80 meg] word and phrase lists.)\n\n\nAnd for searching for key words in human-typed data (lots o'\ntypos) the tool is unexcelled.  For example, For example,\nsay I want to find out what people think about Gibson's\nSF book \"Neuromancer\" in the huge SF-Lover's archives.\nEven with an error distance specification as small as\nof \"1\" I will find all those people who think the title\nwas \"Necromancer\" or other common typos.  Why miss anything?\n\nAlso, the program can look for up to 30,000 patterns IN PARALLEL\nat Boyer-Moore (sublinear) speeds.  Great for a NSA wannabe\nto look for your name, terrorists names, special Tagalog or\nreligious words, etc. in the news or e-mail spool directories.\n\nYou can even search for ciphertext by using, say, 30,000\nrandom three-byte combinations and eliminate all texts that\ndon't score the X chi-square 'birthday' hits on message size Y.\n\nYou think some crypto-terrorist is try to foil you by changing\nthe pattern on you?  No problem.  Try agrep -p NSA to find\nNSA, National Security Agency, NSecAg, No Such Agency,\nNational Scrabble Association, N*S*A, etc.\n\nYou can also specify \"fixed\" areas: looking for license\nplate XYZ123 when you know that the letters are correct,\nyou might say:\n\nagrep -2 <XYZ>123 licenseplatedatabase\n\nwill find all plates starting with XYZ with up to two errors\n(addition, substitution, deletion) in the number area.  You can\nalso \"weight\" the relative \"cost\" for substiutions, additions,\nor deletion errors.  For example, when searching DNA patterns\nfor a particular protein combination, you might know that\nsome kinds of damage cause the \"A\" nucelotide to drop out more\nthan other errors... you could adjust for this bias by setting\n-Dc where you set the \"deletion cost\" to count as \"c\" errors.\n\nA steganographic use (I even used \"agrep -2 \"<steg>eograp\" E\"\njust now to find the correct spelling!) would be to intentionally\nintroduce errors of a certain type and magnitude into a plaintext\nand then later recover the orginal it via an agrep pipe.  Lots of\npossibilities here when only outlaws can have ciphertext...\n\nAlso with agrep's powerful extraction options it makes it easy\nto abstract the \"hits\" into a useful form.  For example,\n\nagrep -d \"^From\" 'PGP;(passphrase|Zimmerman|NSA)'\n\nsays output the entire mail record, delimited by 'From'\nthat contains 'PGP' and contains either 'passphrase',\n'Zimmerman', or 'NSA'.\n\nAnd agrep has been measured an order-of-magnitude faster\nthan the second-best similarity tool publicly available.\n\nAs usual, I will be glad to e-mail the source and docs\nto those who reqest them by e-mail IF they cannot do\nan anonymous FTP.\n\nGet this now.\nIt is too powerful to stay in the hands of the NSA.\n\n\nGrady Ward, vendor to the NSA (and proud of it)\n\n-- \ngrady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1518, "properties": {"category": "rec.motorcycles", "text": "From: egreen@East.Sun.COM (Ed Green - Pixel Cruncher)\nSubject: Re: hats update... patches too!\nOrganization: Sun Microsystems, RTP, NC\nLines: 15\nDistribution: world\nReply-To: egreen@East.Sun.COM\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article XHFg2B5w165w@fringe.rain.com, dean@fringe.rain.com (Dean Woodward) writes:\n>I've got orders for about 30-35 hats.  The expensive part (not surprisingly)\n>is going to be having the patches made, with a setup fee of $100-200 or so.\n\nDean, there's an old engineering saying concerning inventions and\nwheels.  Contact #0099, he's done several runs of patches, and there is\nsome patch-making company out there with the artwork already set up and\npaid for.\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1519, "properties": {"category": "comp.sys.mac.hardware", "text": "From: davisson@stein.u.washington.edu (Gordon Davisson)\nSubject: Re: Interesting ADB behaviour on C650\nOrganization: University of Washington, Seattle\nLines: 34\nNNTP-Posting-Host: stein.u.washington.edu\n\nIn article <1993Apr16.091202.15500@waikato.ac.nz> ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes:\n>In article <1993Apr15.181440.15490@waikato.ac.nz>, I said:\n>> I know that plugging and unplugging ADB devices with the power on is \"not\n>> supported\", and you can hit problems if you have multiple devices with\n>> clashing addresses, and all that.\n\n>I've had a couple of e-mail responses from people who seem to believe that\n>this sort of thing is not only unsupported, it is downright dangerous.\n>\n>I have heard of no such warnings from anybody at Apple. Just to be sure, I\n>asked a couple of our technicians, one of whom has been servicing Macs for\n>years. There is *no* danger of damaging logic boards by plugging and unplugging\n>ADB devices with the power on.\n\nNoooooooo!  I've been servicing Macs for years too, and I've had to\nrepair a number of motherboards that had been damaged this way.  It's\nrare, but it does happen.\n\nMind you, this doesn't mean you shouldn't do it.  The parts that can\nblow (the ADB power fuse and RF filter) aren't too expensive, so IF you\nhave a someone around who can do component-level repair, it may be worth\nthe risk (especially if you're around Seattle, 'cause you might get to\npay *me* to fix it :-))..  On the other hand, if your only repair option\nis the Apple-standard logic board swap (major $$$$), you should probably\nplay it safe.\n\n>SCSI, yes, ADB, no...\n\nSCSI: yes, ADB: yes, Floppies: yes...  They can all cause trouble.\n\n--\nGordon Davisson\t\tdavisson@stein.u.washington.edu\nWestwind Computing\t(206) 632-8141\n4518 University Way NE, Suite 311, Seattle WA 98105\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1520, "properties": {"category": "talk.politics.mideast", "text": "From: stssdxb@st.unocal.com (Dorin Baru)\nSubject: Re: No land for peace - No negotiatians\nOrganization: Unocal Corporation\nLines: 52\n\n\n\nhasan@McRCIM.McGill.EDU writes:\n\n\n>Ok. I donot know why there are israeli voices against negotiations. However,\n>i would guess that is because they refuse giving back a land for those who\n>have the right for it.\n\nSounds like wishful guessing.\n\n\n>As for the Arabian and Palestinean voices that are against the\n>current negotiations and the so-called peace process, they\n>are not against peace per se, but rather for their well-founded predictions\n>that Israel would NOT give an inch of the West bank (and most probably the same\n>for Golan Heights) back to the Arabs. An 18 months of \"negotiations\" in Madrid,\n>and Washington proved these predictions. Now many will jump on me saying why\n>are you blaming israelis for no-result negotiations.\n>I would say why would the Arabs stall the negotiations, what do they have to\n>loose ?\n\n\n'So-called' ? What do you mean ? How would you see the peace process?\n\nSo you say palestineans do not negociate because of 'well-founded' predictions ?\nHow do you know that they are 'well founded' if you do not test them at the \ntable ? 18 months did not prove anything, but it's always the other side at \nfault, right ?\n\nWhy ? I do not know why, but if, let's say, the Palestineans (some of them) want\nALL ISRAEL, and these are known not to be accepted terms by israelis.\n\nOr, maybe they (palestinenans) are not yet ready for statehood ?\n\nOr, maybe there is too much politics within the palestinean leadership, too many\nfractions aso ?\n\nI am not saying that one of these reasons is indeed the real one, but any of\nthese could make arabs stall the negotiations.\n\n>Arabs feel that the current \"negotiations\" is ONLY for legitimizing the current\n>status-quo and for opening the doors of the Arab markets for israeli trade and\n>\"oranges\". That is simply unacceptable and would be revoked.\n \nI like California oranges. And the feelings may get sharper at the table.\n\n\n\nRegards,\n\nDorin\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1521, "properties": {"category": "comp.windows.x", "text": "From: mike@hopper.Virginia.EDU (Michael Chapman)\nSubject: Re: Tektronix\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 14\n\nIn article <930424212154.1000227@tgv.com> mahan@TGV.COM (Patrick L. Mahan) writes:\n># I remember seeing something in the X distribution mentioning support\n># for a Tektronix terminal in an X server.  Is this accurate? \n\n>Xterm supports 401x emulation.\n\nWhat I was talking about was using an Tek terminal as your X display.  I\nshould be possible to write an X server that does this as far as I can\ntell, but what I'm asking is if there is already one.\n\n-- \nmike@hopper.acs.virginia.edu \n\n\"I will NOT raise taxes on the middle class.\" -Unknown\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1522, "properties": {"category": "soc.religion.christian", "text": "From: parkin@Eng.Sun.COM (Michael Parkin)\nSubject: Re: Being right about messiahs\nReply-To: parkin@Eng.Sun.COM\nOrganization: Sun Microsystems Inc., Mountain View, CA\nLines: 71\n\nIn article 2262@geneva.rutgers.edu, Desiree_Bradley@mindlink.bc.ca (Desiree Bradley) writes:\n> I must have missed the postings about Waco, David Koresh, and the Second\n> Coming.  How does one tell if a Second Coming is the real thing, unless the\n> person claiming to be IT is obviously insane?\n\nFirst by his fruits.  The messiah comes to build the kingdom of heaven\non the earth.  He also comes to first reveal the root cause of\noriginal sin (fallen nature) and then provide a means to cut the\nconnection to that original sin.  He also wants to create world peace\nbased on Godism.  The messiah's teachings will build on the foundation\nof the Bible but provide profound new insights into the nature of God,\nthe fall of man, the purpose of creation, and God's providence of\nrestoration.  It will also provide a foundation for the unity of all\nthe World's religions.\n\nMany Christians expect Jesus to come on literal clouds, so they may\nmiss him when he returns. Just as the Jewish people missed Jesus 2000\nyears ago.  They are still waiting for his first coming.  The Jewish\npeople of that age expected Elijah to come first.  Jesus said that\nJohn the Baptist was Elijah. But John the Baptist denied that he was\nElijah.  (How did this reflect on Jesus?)  Later in prison John even\nquestioned who Jesus was: \"is he the one who is to come or do we look\nfor another\". (see book of Matthew)\n\n> \n> I'm not saying that David Koresh is the Second Coming of Christ.  How could\n> somebody who breaks his word be the Second Coming?  Koresh did promise that\n> he would come out of his compound if only he was allowed to give a radio\n> broadcast.  He didn't.  Still it seems to me that he did fool some people.\n\nDavid Koresh didn't even come close.  The problem is that people like\nthis make it difficult for people to believe and trust in the real\nMessiah when he does show up.\n\n> \n> And, from my meagre knowledge of the Bible, it seems that Christians have\n> been hard on the Jews of Christ's day for being cautious about accepting\n> somebody that their religious authorities didn't accept as the Messiah.\n> \n> So I was surprised that nobody had discussed the difficulty of wanting to be\n> early to recognize the Second Coming while, at the same time, not wanting to\n> be credulously believing just anybody who claims to be God.\n\nVery good point and perhaps the most important point of all for\nChristians: How to recognize the Second Coming?\n\nThe Messiah should not claim to be God.  What sets a Messiah apart is\nthat he is born without original sin.  He is not born perfect but\nachieves perfection after a period of growth.  Adam and Eve were born\nsinless but they fell, and this tragedy meant that it would take God\nthousands of years to create the kingdom of heaven on the earth as God\noriginally intended.  God's restoration providence is still not\ncomplete.  The messiah is the true Son of God, one with God, God's\nrepresentative on the earth, but not God himself.  There is only one\nGod.\n\n> [Mark 13:21   And then if any one says to you, 'Look, here is the Christ!' \n> or 'Look, there he is!' do not believe it. \n...\n> Mark 13:26   And then they will see the Son of man coming in clouds with \n> great power and glory. \n\n> My understanding of Jesus' answer is that, unlike his first coming,\n> which was veiled, the second coming will be quite unmistakeable.\n\n> By the way, from Koresh's public statement it's not so clear to me\n> that he is claiming to be Christ.\n\nWho else in this world is claiming to be the Messiah.  Maybe he's already here.\n\nMike\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.072+0000", "event": "documents", "entityId": 1523, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: conf:mideast.levant\nNf-ID: #N:cdp:1483500358:000:1967\nNf-From: cdp.UUCP!cpr    Apr 24 14:55:00 1993\nLines: 47\n\n\nFrom: Center for Policy Research <cpr>\nSubject: conf:mideast.levant\n\n\nRights of children violated by the State of Israel (selected\narticles of the IV Geneva Convention of 1949)\n-------------------------------------------------------------\nArticle 31:  No physical or moral coercion shall be exercised\nagainst protected persons, in particular to obtain information\nfrom them or from third parties.\n\nArticle 32:  The High Contracting Parties specifically agree that\neach of them is prohibited from taking any measure of such a\ncharacter as to cause the physical suffering or extermination of\nprotected persons in their hands. This prohibition applies not\nonly to murder, torture, corporal punishment (...) but also to any\nother measures of brutality whether applied by civilian or\nmilitary agents.\n\nArticle 33:  No protected person may be punished for an offence he\nor she has not personally committed. Collective penalties and\nlikewise measures of intimidation or of terrorism are prohibited.\n\nArticle 34:  Taking of hostages is prohibited.\n\nArticle 49:  Individual or mass forcible transfers, as well as\ndeportations of protected persons from occupied territory to the\nterritory of the Occupying Power or to that of any other country,\noccupied or not, are prohibited, regardless of their motive.\n\nArticle 50:  The  Occupying Power shall, with the cooperation of\nthe national and local authorities, facilitate the proper working\nof all institutions devoted to the care and education of\nchildren.\n\nArticle 53:  Any destruction by the Occupying Power of real or\npersonal property belonging individually or collectively to\nprivate persons, or to the State, or to other public authorities,\nor to social or cooperative organizations, is prohibited, except\nwhere such destruction is rendered absolutely necessary by\nmilitary operations.\n\nPS: It is obvious that violations of the above articles are also\nviolations of the International Convention of the Rights of the\nChild.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1524, "properties": {"category": "rec.sport.hockey", "text": "From: gp2011@andy.bgsu.edu (George Pavlic)\nSubject: Re: Ron Francis\nOrganization: Bowling Green State University B.G., Oh.\nLines: 10\n\nNot to mention, Mr. Francis is an incredibly nice person.  Over Christmas\nbreak, a friend of mine had a little Xmas gathering.  The two of us drove\nto Ron's house.  While I stayed in the car out of shyness, my friend went\nto the door and rang the bell.  Ron answered and my friend introduced\nhimself.  He then proceeded to invite Francis to the party.  Ron declined\nbecause he \"had to watch his daughter.\"  He then reached out and shook my\nfriend's hand!  I know this isn't r.s.b., but I don't think Barry Bonds\nwould be this polite in this situation.\n\nGeorge\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1525, "properties": {"category": "rec.motorcycles", "text": "From: jrwaters@eos.ncsu.edu (JACK ROGERS WATERS)\nSubject: Re: Your opinion and what it means to me.\nOrganization: North Carolina State University, Project Eos\nLines: 74\n\nIn article <1993Apr20.204831.19788@rtsg.mot.com> svoboda@rtsg.mot.com (David Svoboda) writes:\n>In article <13516@news.duke.edu> infante@acpub.duke.edu (Andrew  Infante) writes:\n>|Well, as a few of you so aptly put it, \n>|get off the road, jerk, we don't wanna hear your \n>|whining.\n>|\n>|Fine.\n>|\n>|Fuck off too.\n>|\n>|If you noticed, it was in 91, more than two years ago,\n>|and YES, I've learned, and it's cost me.\n>|\n>|And yes, I've known people (friends and relatives) who've\n>|been involved in drunk-related accidents (not them, they were hit)\n>|and my cousin is still recovering.\n>|\n>|No, I can't take back what happened.\n>|\n>|Yes, it was stupid.\n>|\n>|But, by reminding me about it all the time, you're\n>|neither helping me or yourself, so stuff your opinion.\n>\n>Hey, man, you brought it up.  I agree completely, driving drunk is really\n>stupid, and I understand and appreciate that you feel bad about it.  But\n>DWI is endemic in our society.  It is a REAL problem.  And we, as \n>motorcyclists, can be in the worst of vulnerable positions around a drunk\n>driver.  (Alert readers might remember that last year I witnessed a DWI\n>accident (right bloody in front of me), and was unable to save the life \n>of one of the participants, as I reported here.)  Also, drunk driving by\n>motorcyclists is a prime cause of their injury and death, which raises the\n>insurance rates, forces stupidly restrictive laws, and turns the public\n>against those of us who ride responsibly.\n>\n>In my view, drunk driving should carry a mandatory prison sentence.\n>It is one of the traffic offenses which is NOT a public funds issue,\n>but a genuine safety issue.  So if YOU bring up the subject on rec.moto,\n>admitting having been caught DWI, and looking for sympathy over the \n>consequences, don't expect people to respond with warm wishes.\n>\n>Dave Svoboda (svoboda@void.rtsg.mot.com)    | \"I'm getting tired of\n\nYou and the Beav should lighten up (esp the Beav).  I agree that\nDUI/DWI is serious.  We should have reasonable laws, strict\nenforcement, and tough sentences.  But, Andrew did not\npost \"looking for sympathy over the consequences.\"  He posted\nasking for advice because he had an extremely high quote.  His\npost was obviously valid because he later found insurance for LESS.\nHe noted why he was in his predicament but did not defend in\nany way drunk driving (and has renounced drunk driving).  There\nare too many repeat offenders to worry about and other BDC.\nWhy try to make this person who is no longer part of the problem\nan outcast?  He has paid his debt to society.  Step off the high\nhorse.  We have all been irresponsible in the past.\n\nWith that said, I'm guilty of the same type of hostility towards\nrapists.  I think it comes because I feel the punishment is not\nsevere enough.  The same may be true of DWI/DUI. If that is the\ncase, then it is our stinkin' gubment we need to change.  If \nwe had a reasonable law about DWI/DUI with a stiff penalty\nthen fewer people would do it.  \n\nAt any rate, Andrew as paid his debt as defined by the law.\nIf you think that debt is actually greater than the law mandates, \ntell your 'representatives'.\n\nJack Waters II\nDoD#1919\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~ I don't fear the thief in the night.  Its the one that comes in the  ~\n~ afternoon, when I'm still asleep, that I worry about.                ~\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1526, "properties": {"category": "misc.forsale", "text": "From: Steve@Busop.cit.wayne.edu (Steve Teolis)\nSubject: Re: *** TurboGrafx System For SALE ***\nOrganization: Wayne State University\nLines: 38\nDistribution: na\nNNTP-Posting-Host: 141.217.75.24\n\n>TurboGrafx-16 Base Unit (works like new) with:\n>       1 Controller\n>       AC Adapter\n>       Antenna hookup\n>     * Games:\n>         Kieth Courage\n>         Victory Run\n>         Fantasy Zone\n>         Military Madness\n>         Battle Royal\n>         Legendary Axe\n>         Blazing Lasers\n>         Bloody Wolf\n>\n>  --------------------------------------\n>* Will sell games separatley at $25 each\n>  --------------------------------------\n\nYour kidding, $210.00, man o man, you can buy the system new for $49.00 at \nElectronic Boutique and those games are only about $15 - $20.00 brand new.  \nMaybe you should think about that price again if you REALLY need the money.\n\n\n\n\n\n\n                        \n                        \n                        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n                            Wayne State University      \n                                                       \n                                Steve Teolis            \n                             6050 Cass Ave. # 238       \n                              Detroit, MI  48202        \n                                                        \n                           Steve@Busop.cit.wayne.edu    \n                        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1527, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rmbult01@starbase.spd.louisville.edu (Robert M. Bultman)\nSubject: AST Hot Shot 286\nSummary: AST Hot Shot 286\nNntp-Posting-Host: starbase.spd.louisville.edu\nOrganization: University of Louisville\nKeywords: AST Hot Shot 286\nLines: 23\n\nI recently acquired an AST Hot Shot 286 accellerator board for an 8088\nsans documentation.  \n\nDoes anyone know what the dip switches on the\nback of the card do?  \n\nDid it come with software?\n\nAny help or information about the card would be greatly\nappreciated.\n\nThanks,\nRob\n-- \nRobert M. Bultman                              |\nSpeed Scientific School                        |\nUniversity of Louisville                       |\nInternet: rmbult01@starbase.spd.louisville.edu |\n-- \nRobert M. Bultman                              |\nSpeed Scientific School                        |\nUniversity of Louisville                       |\nInternet: rmbult01@starbase.spd.louisville.edu |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1528, "properties": {"category": "sci.med", "text": "From: cps@generali.harvard.edu (Chris Schaeffer)\nSubject: Re: Eugenics\nSummary: It will be difficult.  \nOrganization: Harvard University, Cambridge, MA\nDistribution: world  \nLines: 28\n\nIn article <19617@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>Probably within 50 years, a new type of eugenics will be possible.\n>[...should] we do this?  Should we make a race of disease-free, long-lived,\n>Arnold Schwartzenegger-muscled, supermen?  Even if we can.\n>----------------------------------------------------------------------------\n>Gordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\n>geb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n>----------------------------------------------------------------------------\n\n\tTwo thoughts.\n\n\t- I think that psychologically it will be easier for the next \ngeneration to accept genetic manipulation.  It seems that people frown\nupon 'messing with Nature', ignoring our eons-old practice of doing just that.\nAny new human intervention is 'arrogance and hubris' and manipulation\nwe routinely do is 'natural' and certainly 'not a big deal'.\n\n\t- Most interesting human traits will probably be massively\npolygenetic and be full of trade-offs.  In addition, without a positive\nsocial environment for the cultivation of genetic gifts, having them won't\nbe the advantage it's made out to be.  Some people will certainly pursue it\nas if it is the Grail, but we know how most of those quests turn out.\n\nChris Schaeffer\n\n\n\n \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1529, "properties": {"category": "sci.med", "text": "From: km@cs.pitt.edu (Ken Mitchum)\nSubject: Re: Open letter to Hillary Rodham Clinton (#7)\nArticle-I.D.: pitt.19425\nReply-To: km@cs.pitt.edu (Ken Mitchum)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 3\n\nHow about posting one of her replies to your letters?\n\n-km\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1530, "properties": {"category": "misc.forsale", "text": "From: jvinson@xsoft.xerox.com (Jeffrey A Vinson)\nSubject: 4rent: timeshare week\nLines: 16\nX-Received: by usenet.pa.dec.com; id AA02982; Mon, 5 Apr 93 11:54:26 -0700\nX-Received: by inet-gw-1.pa.dec.com; id AA02009; Mon, 5 Apr 93 11:54:25 -0700\nX-Received: from xsoft.xerox.com ([13.242.72.2]) by alpha.xerox.com with SMTP id <11671>; Mon, 5 Apr 1993 11:53:13 PDT\nX-Received: from aerie ([13.242.56.32]) by xsoft.xerox.com (4.1/SMI-4.1)\n\tid AA24096; Mon, 5 Apr 93 11:53:00 PDT\nX-Received: by aerie (4.1/SMI-4.1)\n\tid AA11021; Mon, 5 Apr 93 11:53:06 PDT\nX-To: misc.forsale.usenet\n\n\nTimeshare week for rent / must use before July / Best offer!!\n\n\nWeek can be \"traded\" to anywhere in the world (Hawaii, Austria,\nFar East, U.S. etc.) under Interval International.  \n\n\nWill answer questions about that, and help you trade (we have \nthe paperwork and phone numbers in order to that).\n\n\nContact:\nJeff Vinson\nvinson@migration.com\n415.813.7492 (daytime or leave msg)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1531, "properties": {"category": "rec.motorcycles", "text": "From: drinckes@tssc.wlg.nec.co.jp (Doug Rinckes)\nSubject: Re: RGV and posing!!\nNntp-Posting-Host: 133.206.251.21\nReply-To: drinckes@tssc.wlg.nec.co.jp\nOrganization: Telecommunications Systems Support Centre, New Zealand\nLines: 18\n\nIn article 25444@dsd.es.com, bgardner@pebbles.es.com (Blaine Gardner) writes:\n>In article <speedy.153@engr.latech.edu> speedy@engr.latech.edu (Speedy Mercer) writes:\n>>In article <2553@spam.maths.adelaide.edu.au> amydlak@spam.maths.adelaide.edu.au (Adam Mydlak) writes:\n>\n>>>[Squid deleted]\n>\n>> 5.  Helment laws vary from state to state.  In my state (Louisiana) it is \n>>the law.  I personaly, would not go 2 feet on a bike without one law or no \n>>law.  A helment will save your life.\n>\n>I'll go 2 feet, but I draw the line at 3. \n\nI'll see your 3 and raise you 4.\n\nDoug Rinckes   drinckes@tssc.wlg.nec.co.jp   New Zealand TSSC Ltd\n1976 BMW R100S           1960 BMW R60            1940 Indian 741A       \n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1532, "properties": {"category": "comp.graphics", "text": "From: rbarris@orion.oac.uci.edu (Robert C. Barris)\nSubject: Re: Rumours about 3DO ???\nNntp-Posting-Host: orion.oac.uci.edu\nSummary: 3DO demonstration\nOrganization: University of California, Irvine\nKeywords: 3DO ARM QT Compact Video\nLines: 73\n\nIn article <1993Apr16.212441.34125@rchland.ibm.com> ricardo@rchland.vnet.ibm.com (Ricardo Hernandez Muchado) writes:\n>In article <1993Apr15.164940.11632@mercury.unt.edu>, Sean McMains <mcmains@unt.edu> writes:\n>|> In article <1993Apr15.144843.19549@rchland.ibm.com> Ricardo Hernandez\n>|> Muchado, ricardo@rchland.vnet.ibm.com writes:\n>|> >   And CD-I's CPU doesn't help much either.  I understand it is\n>|> >a 68070 (supposedly a variation of a 68000/68010) running at something\n>|> >like 7Mhz.  With this speed, you *truly* need sprites.\n[snip]\n(the 3DO is not a 68000!!!)\n>|> \n>|> Ricardo, the animation playback to which Lawrence was referring in an\n>|> earlier post is plain old Quicktime 1.5 with the Compact Video codec.\n>|> I've seen digitized video (some of Apple's early commercials, to be\n>|> precise) running on a Centris 650 at about 30fps very nicely (16-bit\n>|> color depth). I would expect that using the same algorithm, a RISC\n>|> processor should be able to approach full-screen full-motion animation,\n>|> though as you've implied, the processor will be taxed more with highly\n>|> dynamic material.\n[snip]\n>booth there.  I walked by, and they were showing real-time video capture\n>using a (Radious or SuperMac?) card to digitize and make right on the spot\n>quicktime movies.  I think the quicktime they were using was the old one\n>(1.5).\n>\n>   They digitized a guy talking there in 160x2xx something.  It played back quite\n>nicely and in real time.  The guy then expanded the window (resized) to 25x by\n>3xx (320 in y I think) and the frame rate decreased enough to notice that it\n>wasn't 30fps (or about 30fps) anymore.  It dropped to like 15 fps.  Then he\n>increased it just a bit more, and it dropped to 10<->12 fps. \n>\n>   Then I asked him what Mac he was using... He was using a Quadra (don't know\n>what model, 900?) to do it, and he was telling the guys there that the Quicktime\n>could play back at the same speed even on an LCII.\n>\n>   Well, I spoiled his claim so to say, since a 68040 Quadra Mac was having\n>a little bit of trouble.  And this wasn't even from the hardisk!  This was\n>from memory!\n>\n>   Could it be that you saw either a newer version of quicktime, or some\n>hardware assisted Centris, or another software product running the \n>animation (like supposedly MacroMind's Accelerator?)?\n>\n>   Don't misunderstand me, I just want to clarify this.\n>\n\n\nThe 3DO box is based on an ARM RISC processor, one or two custom graphics\nchips, a DSP, a double-speed CDROM, and 2MB of RAM/VRAM. (I'm a little\nfuzzy on the breakdown of the graphics chips and RAM/VRAM capacity).\n\nIt was demonstrated at a recent gathering at the Electronic Cafe in\nSanta Monica, CA. From 3DO, RJ Mical (of Amiga/Lynx fame) and Hal\nJosephson (sp?) were there to talk about the machine and their plan. We\ngot to see the unit displaying full-screen movies using the CompactVideo codec\n(which was nice, very little blockiness showing clips from Jaws and Backdraft)\n... and a very high frame rate to boot (like 30fps).\n\nNote however that the 3DO's screen resolution is 320x240.\n\nCompactVideo is pretty amazing... I also wanted to point out that QuickTime\ndoes indeed slow down when one dynamically resizes material as was stated\nabove... I'm sure if the material had been compressed at the large size\nthen it would play back fine (I have a Q950 and do this quite a bit). The\nprice of generality... personally I don't use the dynamic sizing of movies\noften, if ever. But playing back stuff at its original size is plenty quick\non the latest 040 machines.\n\nI'm not sure how a Centris/20MHz 040 stacks up against the 25 MHz ARM in\nthe 3DO box. Obviously the ARM is faster, but how much?\n\nRob Barris\nQuicksilver Software Inc.\nrbarris@orion.oac.uci.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1533, "properties": {"category": "rec.motorcycles", "text": "From: Brian.Vaughan@um.cc.umich.edu (Brian Vaughan)\nSubject: For Sale: Kawasaki EX500 (Michigan)\nOrganization: University of Michigan\nLines: 13\nDistribution: world\nNNTP-Posting-Host: dss1.uis.itd.umich.edu\n\n                             * FOR SALE *\n                        From Ann Arbor, Michigan\n\n1988 Kawasaki EX-500 \n6682 miles\nCherry Red\nExcellent condition\nAsking $2300\n\nContact Brian at (313) 747-1604 (days)  \n                 (313) 434-7284 (evenings & weekends)\n              or e-mail at vaughan@umich.edu...or reply to this post.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1534, "properties": {"category": "comp.sys.mac.hardware", "text": "From: James_Jim_Frazier@cup.portal.com\nSubject: MO driver compatibility?\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 10\n\nIt's my understanding that, when you format a magneto-optical disc, (1) the\nformatting software installs a driver on the disc, (2) if you insert the\ndisc in a different drive, then this driver is loaded into the computer's\nmemory and then controls the drive, and (3) if this driver is incompatible\nwith the drive, then the disc can not be mounted and/or properly read/written\nIs that correct?\n\nThanks,\nJim Frazier\n73447.3113@compuserve.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1535, "properties": {"category": "rec.autos", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: LICENSE PLATES NISSAN\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 12\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, edf003@marshall.wvnet.edu () says:\n\n>Hi, I'm interested in getting the list for license plate numbers.  If anyone\n>has a listing I'd appreciate getting a copy of it.  Thanks!\n>\nYou must be _incredibly_ bored.  Have you considered reading the phone book?\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1536, "properties": {"category": "misc.forsale", "text": "From: jyow@desire.wright.edu\nSubject: RADAR DETECTOR: Whistler: X,K,Ka\nOrganization:  Wright State University \nLines: 7\n\nWhistler Spectrum 2-SE.  X, K, Ka.  Pulse protection.  Good condition. \nPurchased for $130, asking for $80.\n-- \n************************************************************************\nJason Yow\t\t\t\tHuman Factors Psychology Program\nWright State University, Dayton, OH\tE-mail: jyow@desire.wright.edu\n************************************************************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1537, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: My Gun is like my American Express Card\n <93104.173826U28037@uicv <PA146008.711.734832476@utkvm1.utk.edu>\nLines: 79\n\nIn article <PA146008.711.734832476@utkvm1.utk.edu>, PA146008@utkvm1.utk.edu\n(David Veal) says:\n>>\n[stuff deleted]\n\nme:\n>>What seems to be happening here is the situation getting totally blown out of\n>>proportion.  In my post I was referring to your regular patrolman in a car\n>>cruising around the city vs. gang members.  Of course the police have access\n>>to the things that you mentioned but do they use tanks and such all of the\n>>time?  Of course they don't and that's the point I was trying to make.  Every\n>>day when I go out to lunch I always see cops coming in.  The majority that I\n>>see are still carrying revolvers.  Not that there is anything wrong with a\n>>revolver but if you're a cop that is up against some gang member with a\n>couple\n>>of automatics in his coat (I mean semi-auto handguns) you're going to be at a\n>>disadvantage even with training.\n>\nDavid:\n\n>      This is the \"arms race\" fallacy.  That somehow bigger guns make an\n>individual safer.  The problem is that for each corresponding level of\n>offensive power the is not an automatic level of defense increase.  The\n>problem is that there's a sort of lethality threshold that once you get\n>past you're only talking about a metter of degree.\n>\n>      Regardless of what cops are up against there's really no reason\n>for the average beat cop to have anything bigger than a pistol on him\n>as a personal weapon and maybe a rifle and a shotgun in the cruiser.\n>\n>      I mean, think about it.  Carrying a monster pistol or sub-machinegun\n>doesn't make the cop any less wounded if somebody shoots him.  A lot\n>of police departenments have switched to semi-automatics, as better\n>more reliable weapons, and more stopping power, but there's a point\n>of diminishing returns.\n>\nThis is a very, very good point.  Who cares what kind of gun you've got if\nyou're lying on the ground dead.\n\n>      And as far as automatics go, any gang member carrying around \"a\n>couple\" of automatics (an incredible rarity) is going to be far more of\n>a menace to himself and innocent bystanders than anything he might be\n>tryinh to aim at.  One auto is hard enough to control.  Anybody who\n>could control two is going to get the police officer regardless of\n>what the police officer is armed with.\n>\n[more stuff deleted.  mostly mine]\n>        My question is this:  What would a police officer gain from\n>having a sub-machinegun or similar personal weapon that he already\n>doesn't have with a 9mm or 10mm semi-automatic pistol?  I don't see\n>as how the police should be hosing around full-auto fire, nor has\n>my experience with police officers (or the stats regarding how many\n>police officers get killed by other cops) made me feel such would be a\n>good idea.  Precise fire is far more preferable.  Nor should they using\n>\"bigger\" guns.  Most standard sidearms have more then sufficient\n>stopping power when properly applied.  All more powerful weapons would\n>do is make the likelihood of death higher without really giving police\n>significantly more options.\n>\nAnother very good point that is well taken.  It seems that when lots of lead\nis flying (either the cops or the gangs) someone innocent always gets caught\nin the crossfire.\n>------------------------------------------------------------------------\n>David Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\n>PA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\n>your pushed me down the elevator shaft;  I'm beginning to think you don't\n>love me anymore.\" - \"Weird Al\"\n\nAll points made above are well taken.  I guess I am in the mindset of\n\"having more makes it better\" which is obviously not the correct mindset\nto take in this discussion.  Now that I think about the situation a\nlittle more carefully I see your point exactly David and I\nwholeheartedly (sp?) agree.  Like I said I'm just assuming that \"more\nbullets and/or bigger bullets is better\".  Once again though I want to\nstate that I am a pro-gun individual and do NOT believe that gun control\nis really a viable option here in the United States regardless of the drivel\nthat I spout here :-)\n\nJason\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1538, "properties": {"category": "soc.religion.christian", "text": "From: koberg@spot.Colorado.EDU (Allen Koberg)\nSubject: Re: SATANIC TOUNGES\nOrganization: University of Colorado, Boulder\nLines: 49\n\nIn article <May.6.00.34.49.1993.15418@geneva.rutgers.edu> marka@hcx1.ssd.csd.harris.com (Mark Ashley) writes:\n>In article <May.2.09.50.21.1993.11782@geneva.rutgers.edu> mmh@dcs.qmw.ac.uk (Matthew Huntbach) writes:\n>>I have seen the claims, but I don't know if there are any\n>>authenticated cases of people making prolonged speeches in\n>>real languages they don't know. From my observations, \"speaking\n>>in tongues\" in practice has nothing at all do with this.\n>\n>I have a simple test. I take several people who can speak\n>only one language (e.g. chinese, russian, german, english).\n>Then I let the \"gifted one\" start \"speaking in toungues\".\n>The audience should understand the \"gifted one\" clearly\n>in their native language. However, the \"gifted one\" can\n>only hear himself speaking in his own language.\n>\n\nThere seem to be many points to the speaking in tongues thing which\nare problematic.  It's use as prayer language seems especially troubling\nto me.  I understand that when you pray in tongues, the spirit is doing\nthe talking.  And when you pray, you pray to God.  And the Spirit is\nGod.  So, the Spirit is talking to Himself.  Which is why I only go\nby the Pentecost use where it's an actual language.\n\nMoreover, the phrase \"though I speak with the tongues of men and angels\"\nused by Paul in I Cor. is misleading out of context.   Some would then\nassume that there is some angelic tongue, and if when they speak, it\nis no KNOWN language, then it is an angelic tongue.\n\nHmmm...in the old testament story about the tower of Babel, we see how\nGod PUNISHED by giving us different language.  Can we assume then that\nif angels have their own language at all, that they have the SAME one\namongst other angels?  After all, THEY were not punished in any manner.\n\nSo why do these supposed angelic tongues all sound different FROM ONE\nANOTHER?  It's disturbing to think that some people find ways to \njustify jabbering.\n\nBut I'll buy the idea that someone could talk in a language never learned.\n\nTrouble is, while such stories abound, any and all attempts at\nverification (and we are to test the spirit...) either show that\nthe witness had no real idea of the circumstances, or that outright\nfabrication was involved.  The Brother Puka story in a previous post\nseems like a \"friend of a friend\" thing.  And linguistically, a two\nsyllable word hardly qualifies as language, inflection or no.\n\nMuch as many faith healers have trouble proving their \"victories\" (since\nmost ailments \"cured\" are just plain unprovable) and modern day\nressurrections have never been validated, so is it true that no\nmodern day xenoglossolalia has been proved by clergy OR lay.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1539, "properties": {"category": "sci.electronics", "text": "From: csulo@csv.warwick.ac.uk (Mr M J Brown)\nSubject: 600RPM Floopy drives - UPDATE!\nOrganization: Computing Services, University of Warwick, UK\nLines: 26\nDistribution: world\nNNTP-Posting-Host: clover.csv.warwick.ac.uk\n\nMany thanks to those who replied to my appeal for info on a drive I have\nwhich is 3.5\" 600RPM!!\n\nI now have some information on how to modify this for use with a BBC B \ncomputer. Not only do you have to change the speed from 600 to 300 rpm\n(tried that) but also change 8 components in the Rec/Play section to allow\nfor the lower data rate (250kbit, not 500kbit as it was designed for) and also\nchange the Recording Current to allow for the low data rate/rev speed!\n\nHopefully this should sort it all out .... not bad for 9 quid (normally 32 \nquid and upwards ....)\n\nThe drive is a JVC MDP series drive ...\n\n=============================================================================  \n     _/      _/   _/   _/  _/   _/_/_/_/   |\n    _/_/  _/_/   _/   _/_/     _/          |         Michael Brown\n   _/  _/  _/   _/   _/       _/_/         |\n  _/      _/   _/   _/_/     _/            |    csulo@csv.warwick.ac.uk\n _/      _/   _/   _/  _/   _/_/_/_/  _/   |     mjb@dcs.warwick.ac.uk\n                                           |\n=============================================================================\n              Lost interest ?? It's so bad I've lost apathy!\n=============================================================================\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1540, "properties": {"category": "rec.autos", "text": "From: hhtra@usho0b.hou281.chevron.com (T.M.Haddock)\nSubject: Re: Looking to buy Dodge Stealth, have questions\nKeywords: questions\nOrganization: Chevron\nLines: 66\n\nIn article <1993Apr2.030031.15691@cactus.org>, boyle@cactus.org (Craig Boyle) writes:\n|> In article <1993Apr1.104746@usho72.hou281.chevron.com> hhtra@usho72.hou281.chevron.com (T.M.Haddock) writes:\n\n I found a Mopar spec sheet this weekend:\n\n               model         wgt    hp\n             Stealth         3086   164\n             Stealth ES      3186   222\n             Stealth RT      3373   222\n             Stealth RT TT   3803   300\n\n Okay, I'll take \"their\" word for it.\n\n\n> I am giving every chance to retract figures widely known. The Mustang is\n> rated at 205.  222-205 is 17. You have a 17hp advantage over a Mustang\n\n Seems that the 1993 Mustang 5.0 is rated at 205 hp ONLY because Ford\n changed its testing procedures.  Under the older procedures, it still \n rates closer to 225 hp.  That means that the Mustang has 3 hp more.\n \n And you still haven't posted any weight figures for the Mustang.\n\n\n> Big threat. You are KO'd by a Civic, acording to C+D \n\n Yeah, sure, in your wet dreams.  And that's probably where you got \n that 11.2 second 0-60 for the Stealth.\n\n\n>> I'll check C&D's 5/91 issue.  Strange that you claim to have that \n>\n> Go ahead and check asshole, you'll realize what an idiot you are for not\n> checking data beforeposting. Car+ Drive, may 91. Stealth ES, 222hp,\n> automatic.\n\n For 3 posts now you've been harping on this May 1991 issue of Car & Driver\n without posting any numbers.  Why not?  Because they prove me right and you\n ain't got the guts to admit it?  Yeah, thought so.\n\n\n> The Sentra SE-R really is alot quicker than the 222hp FWD Sports car.\n> You are close to the 9k sentra-e. Go look up the numbers in C+D - and\n> report please.\n\n No, I'm going to play your game -\n\n       No way, Sentra's are SLOW!  I took a test drive and it took\n       21.7 to go 0-50!  Why, even the Hyundai Excel blows it doors\n       off.  Any 12 yr old knows that!  I race and I'll kick your butt! \n       blah, blah, blah...\n\n Let's see ...  yep, that sounds just like you. \n Oh man, I just got it!  Beavis & Butthead - that's you!\n\n\n> Who would buy a FWD automatic, that costs $20K+ that is capable of only\n> a 15.8 and would plainly be dusted by a SE-R?\n\n I dunno, why did you?\n\n But why would someone pick the Dodge Stealth RT over the Nissan Sentra?\n All it takes is one look.\n\n \n TRAVIS\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1541, "properties": {"category": "rec.motorcycles", "text": "Organization: Penn State University\nFrom: <LRR105@psuvm.psu.edu>\nSubject: Re: Tools Tools Tools\n <1993Apr1.162709.16643@osf.org> <1993Apr2.235809.3241@kronos.arc.nasa.gov>\n <1993Apr5.165548.21479@research.nj.nec.com>\nLines: 1\n\nWHAT IS THE FLANK DRIVE EVERYONES TALKING ABOUT?\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1542, "properties": {"category": "comp.sys.mac.hardware", "text": "From: cherkaue@ee.rochester.edu (Brian Cherkauer)\nSubject: Re: IIvx -> C650 Upgrade Question\nDistribution: comp\nOrganization: Univ of Rochester, College of Engineering and Applied Science\nLines: 18\n\nIn article <JAS.93Apr16125049@tigger.ISI.EDU> jas@ISI.EDU (Jeff Sullivan) writes:\n>If you get teh IIvx ->C650 upgrade, does it include a new sticker to\n>cover the IIvx identifier with a Centris 650 indetifier?\n\nI can't say for sure with the IIvx -> C650 upgrade, but I wondered the\nsame thing when I ordered my LC -> LC III upgrade.  Turns out the \"upgrade\"\nis actually an entire CPU minus any disk drives.  You pull the floppy and\nhard drives out of the old one, stick them in the new one, and you've got\nan LC III.\n\nThe IIvx -> C650 may be the same thing.\n\nIt might be something to look into for those people who are unhappy that\nApple only sells Macs pre-packaged with the drives.  Of course, the price\nis quite a bit higher without the trade-in...\n\n(-Brian\n  cherkaue@ee.rochester.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1543, "properties": {"category": "talk.politics.mideast", "text": "From: cy779@cleveland.Freenet.Edu (Anas Omran)\nSubject: Re: Israeli Terrorism\nReply-To: cy779@cleveland.Freenet.Edu (Anas Omran)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 18\nNNTP-Posting-Host: slc4.ins.cwru.edu\n\n\nIn a previous article, adam@endor.uucp (Adam Shostack) says:\n\n>In article <2BDAD779.24910@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n>>In article <AMOSS.93Apr25163327@shuldig.cs.huji.ac.il> amoss@shuldig.cs.huji.ac.il (Amos Shapira) writes:\n>>>cy779@cleveland.Freenet.Edu (Anas Omran) writes:\n>\n>>>Eh????  Could you please give me details about an event where a \"Neutral\n>>>Observer\" was killed by purpose by an Israeli soldier?\n>\n\nThere are many cases, but I do not remeber names.  The Isralis shot and killed\na UN observer in Gaza in the first half of Intifada.\n\nI believe that most of the world has seen pictures of Israeli soldiers who\nwere breaking the cameras of the reporters, kicking reporters out, confiscating\ncassettes, and showing reporters militery orders preventing them from going\nto hot areas to pick pictures and make reports.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1544, "properties": {"category": "sci.electronics", "text": "From: dgj2y@kelvin.seas.Virginia.EDU (David Glen Jacobowitz)\nSubject: Dumb Question: Function Generator\nOriginator: dgj2y@kelvin.seas.Virginia.EDU\nOrganization: University of Virginia\nLines: 35\n\n\n\tI have a new scope and I thought I'd save a few bucks by\nbuying one with a function generator built in. After having it awhile\nI noticed two things about the function generator. For one, there\nseems to be a bias even when the 'pull-offset' is pushed in. That is,\nI have to pull that know and adjust it to get a signal sans some\nrandom 50mV bias.\n\tThe other _really_ annoying thing is that the damn output\nwon't go below about 1V p-p. I am a student ( you may have guessed\nfrom my previous posts ), and I often have to measure the input\nimpedances of various circuits I build.Many of the circuits have\nmaximum input signals of way less than 500mV amplitude and most have\ninput impedances in the 10's of Kohm range. The thing is, in order to\nuse my function generator I have to divide the voltage to some thing\nreasonable. Then, of course, to measurethe input impedance of my\ncircuit I am going to have to throw in another resistor in series.\nWith the 50ohm output of the generator I could just ignore it, but now\nwith this little divider there I have to figure that in. It's kind of\na pain in  the ass.\n\tIs there any way I could make myself a little box that could\nsolve this little problem. The box would tkae the function generator\ninput, lower the voltage and give an output impedance that is some\nlow, unchanging number. I would want to lower the voltage by a factor\nof one hundred or so. I could just build a little buffer amp, but I'd\nlike to have this box not be active.\n\tAny quick ideas. The scope's not broken. For other reasons I\nhad sent it to the shop to get repaired and they replaced it. The\nfunction generator was the same way on that one, too.\n\n\t\t\tplease help as I am feeling very stupid \n\t\t\ttoday,\n\n\t\t\t\t\t\tdave \n\t\t\t\t\t\tdgj2y@virginia.edu\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.073+0000", "event": "documents", "entityId": 1545, "properties": {"category": "rec.motorcycles", "text": "From: paulb@harley.tti.com (Paul Blumstein)\nSubject: Latest SoCal Rides -- 4/14\nNntp-Posting-Host: harley.tti.com\nOrganization: Black Belt Motorcyclists Association\nDistribution: ca\nLines: 194\n\n\t\tSouthern California RideList -- 4/14/93\n\n  Please send me any updates to this ride list. Remember, only street\nrides that are open to all bikers are posted.  Please inc. phone # for\nfurther info.  Also, send me your e-mail address if you want mailed\ncopies of this list.\n  I suggest calling first to make sure that info is current.  If you\nfind out further info, please let me know.  I strive for accuracy but\ncannot be responsible for errors.\n  e-mail address: paulb@harley.tti.com \t\n---------\nc&d = coffee & donuts; Mx = Live Music; f&d = food & drinks available;\n* = changes since last posting; ** Address at end of posting\n-------\nApr 15-18\t11th Annual Laughlin (NV) River Run.  Rides to the run from\n\t\tpoints all over SoCal.  Concerts, poker runs, parties,\n\t\tetc., etc. This is sponsored by the Southern Calif. Harley\n\t\tDealer Assoc., but all bikes are welcome.  Reservations\n\t\tare only $25 at any SoCal Harley Dealer.  River Run 24 Hr\n\t\tHotline: 800/266-6441.  Discount Room reservations or\n\t\tconcert tix: 909/883-0317 (Tues-Sat, 9A-noon & 1-4P).\nApr 17\t\t2nd Annual Racing Memorabilia Show & Sale. art, prints,\n\t\tphotos, lithos, models, books. 310/539-8108.\nApr 17-18\tSCMA Route 66 Tour. 714/680-4667.\nApr 18\t\tSCMA/TRAC A. Gypsy Tour. 7A in Santa Monica. John\n\t\tLane @ 818/359-0414.\nApr 18\t\tTax Time Run for the money (ABATE #19). 200 pins, prizes,\n\t\tgames, f&d, raffles. $7 (free if you join). s/in 8-10A\n\t\t@ V-Twin City, 565 Brea Canyon Rd, Walnut. \n\t\tManny @ 909/594-0086.\n*Apr 18 \t3rd Annual GWTA Loma Linda Children's Hospital Benefit Run.\n\t\tfree c&d @ start. hot dogs, etc. @ finish. s/in 8-11A\n\t\t@ Skip Fordyce motors, 7840 Indiana Ave., Riverside.\n\t\t909/679-1097.\nApr 23-25\tMMA State Overnighter. Frazier Park. 805-522-6557 or \n\t\t805/392-0540.\nApr 23-25\t32nd Yuma Prison Run. $20 mailin/$25 gate. camping.\n\t\t310/944-2180 or 805/253-3043.\nApr 23-25\tPaso Robles Clean & Sober Run @ Paso Robles Fairgrounds.\n\t\t805/461-1211.\nApr 25\t\tShamrock's 3rd Annual Scenic Byways Tour. 2 starts,\n\t\t5 routes. s/in 6:30-8:30A @ Simi Valley Honda, \n\t\t4346 L.A. Ave. or Cycles Parts, 473 W. Baseline,\n\t\tSan Bernadino. Picnic & bbq @ Lake hughes. $14.  805/584-3983.\nApr 25\t\tMRA Chap \"E\" Poker Run. 8A @ American Legion, 600 South\n\t\t\"D\" St., Peris.  Steve Hill @ 714/244-3064.\nMay 1\t\tAMA Grand Nat'l Dirt Track Series race. Pomona Fairplex,\n\t\t714/623-3111 or 614/891-2425.\nMay 1\t\tKPFK's (90.7 FM) Centerstand Radio Show and The Car Show\n\t\twill broadcast live from Autobooks, Etc., 3524 W. Magnolia\n\t\tAv., Burbank.  Carshow starts @ noonb, Centerstand \n\t\t@ 1:30PM.  818/845-0707.\nMay 1\t\tABATE #8 Poker Run. East end of Bucklin Park, Imperial Valley.\n\t\ts/in 8-10A. $8 includes food & entertainment. Barbara \n\t\t@ 619/352-7006.\nMay 1-2 \tPMC 47th Annual Greenhorn Tour. 818/963-5480 or 909/593-9988.\nMay 1-2\t\tSong Dog Ranch Spring Rally. Overnight camping at this\n\t\tfamousmotorcycle campground.  Mx., All you can eat or\n\t\tdrink bbq dinner.  sunday bkfst. $40/person. reserve by\n\t\tApril 26. Song Dog Ranch, Rt 33, New Cuyama (N of Ojai).\n\t\t805/766-2454.  (Keep trying this number).\nMay 2\t\tBSA Owner's Club Spring Ride. Castaic Landing. 805/273-7005.\nMay 2\t\tAlbum Release Celebration (\"Helmet Laws Suck\" by Billy Gordon & \n\t\tThe Blue Rockers) @ La Vida Hot Springs (91 to 57N to \n\t\tLambert east 5 miles on left). Special Guests, Mx, raffle.\n\t\t714/996-0720.\nMay 2\t\t1st Annual Spring Round-Up Rodeo. (ABATE #27). Many Bike\n\t\tGames. f&d, pins, raffle. s/in starts 9A. Games @ noon.\n\t\t$10 ea/$18 couple (free if you join). Robbies Restaurant,\n\t\t26020 Hwy 74 (btwn Perris & Lake Elsinore). George or\n\t\tSusan @ 909/674-0554; Allen or Melanie @ 909/780-3743.\nMay 14\t\tMC Swap Meet @ Orange County Fairgnds, Costa Mesa. $6.\n\t\t714/364-0515.\nMay 14\t\tLA Cnty MC Swap Meet. $8. 818/361-0205.\nMay 14\t\tChristian M/C Assn. SoCal Rally. First Assembly of God\n\t\tChurch, 15260 Nisqually Rd, Victorville. Bob Quintard\n\t\t@ 909/797-9801.\nMay 16\t\tMother's with the Most. 805/763-4614.\nMay 16\t\t4th Annual MC Awareness Day. (ABATE #22). 9:30-5p @\n\t\tAmerican Legion Hall, 1340 Gardena Bl (crnr Normandie),\n\t\tGardena. Mx, Vendors, raffles, games, etc. $5 (<12 free);\n\t\t($8 w/pin). f&d.  Doc or Carol @ 310/371-2348 or\n\t\tDieter @ 310/531-8942.\nMay 16\t\tBlue Knights 5th Annual Benefit Ride. Starts @ Cycle Parts\n\t\tWest, San Diego. Harold Crosby @ 619/753-7827.\nMay 19 \t\tRun For The Wall. LA to DC. Lv (8A? or) 9A from TA Truck \n\t\tStop where I10 & I15 meet in Ontario. Camping & Motels\n\t\tavailable at each night's stop. Rides ends up at the\n\t\tVietnam Veterans Memorial Wall in Washington, DC.  \n\t\t100,000 bikes are expected to meet there.  Call\n\t\tRod Coffey @ 310/425-3145.  Alt Info: send $1 p/h to\n\t\tJohn Anderson, 5920 Deer Creek Way, Paso Robles,\n\t\tCA  93446 or call him @ 805/237-0790. \nMay 23\t\tLong Beach MC Parts Exchange, LB Veterans Memorial Stadium.\n\t\t310/323-9611.\nMay 28-31\tUS MC Jamboree. Tulare Cnty Fairgnds, Tulare. ride in \n\t\tmc show, benefit poker run (sun), Mx, raffles, games.\n\t\tstarts noon on Friday. $23; $11 (15 & under); free for \n\t\t6 & under. 918/542-5939; 502/622-4810; 805/822-8939;\n\t\t310/492-9688; 909/825-3798; 602/425-6609.\nMay 29-31\tBlazing Saddles Tour (SCMA). 818/789-9932.\nMay 30\t\tAriel Owners Club Annual Event. 3225 Greenfield Ave., LA.\n\t\tChuck Walton, 818/345-6532.\nJun 6\t\tFun in the Sun Ride (MMA #2). Bakersfield. 805/392-0546.\nJun 12-13\tClass Act Tour\nJun 12-13\tSilver Eagles Run. Palomar, San Diego. 619/569-7370.\nJun 20\t\tVentura Swap & Show by The Shop. @ Ventura Fairgnds.\n\t\t805/656-6777.\nJun 20\t\t3rd Annual Summer Solstice Poker Run & Pig Feed. (ABATE #9).\n\t\t$15 ea/$25 couple (free if you join). Pig Roast, games,\n\t\traffles, Mx, swimming, 300 pins. s/in 8-10A @ Swallows Inn,\n\t\tI5 & Ortega Hwy, San Juan Capistrano. Earl @ 714/496-3401;\n\t\tRick @ 714/548-3434.\nJun 25-27\tMMA's Bike Fest '93 @ Mariposa Fairgrounds (Hwy 99\n\t\tto Hwy 140E; go 38 miles). Mx, Camping Available; \n\t\ttrade show, f7d, games. $25 advance/$35 gate. info \n\t\t& tix: 800/247-6246.\nJun 27\t\tHope House Benefit Run (SCMA). 805/581-3235.\nJul 4\t\tBike Show @ Accessories Unltd**\nJul 4\t\tABATE #6 Christmas in July. 619/569-7370.\nJul 11\t\tBeach Ride 93 to benefit the Exceptional Children's\n\t\tFoundation.\nJul 11\t\tABATE #8 Old Timers Poker Run. 714/998-5740.\nJul 16-19\t4th Annual Unicoastal Ride and Joust.  Starts all over the\n\t\tWest Coast and goes to Pine Glen Campground (near Mammoth\n\t\tLakes) for a 2 or 3 day weekend of fun with the usenet\n\t\tpersonalities your fond of flaming.  To get on the mail\n\t\tlist, contact joust-request@harley.tti.com .\nJul 18\t\tIron Horse Poker Run. 805/734-3401.\nJul 21\t\t2nd Annual National Ride to Work Day.\nJul 23-25\tQuaff M/C Mt. Palomar 17th Annual Overnighter @ La Jolla\n\t\tCampgrounds. 714/352-0443.\nJul 25\t\t5th Annual Summer Food Run. ABATE #19. 818/917-2243.\nJul 30\t\tMC Swap Meet @ Orange County Fairgnds, Costa Mesa. $6.\n\t\t714/364-0515.\nAug 1\t\tAccessories Unltd** Ride\nAug 7\t\tHot August Nights Poker Run. 805/392-0546.\nAug 14-15\t650 Tour (SCMA area B). 805/481-3482.\nAug 21-22\tSong Dog Ranch Summer Rally. Overnight camping at this\n\t\tfamous motorcycle campground.  Classical Mx., All you can \n\t\teat or drink bbq dinner.  sunday bkfst. $40/person. reserve by\n\t\tAug 16. Song Dog Ranch, Rt 33, New Cuyama (N of Ojai).\n\t\t805/766-2454.  (Keep trying this number).\nAug 22\t\tVets Benefit Run (TRAC A). 714/680-4667.\nAug 22\t\tMMA Chicken Roast. Camarillo Park. 805/522-6557.\nSep 3-6\t\t18th Annual 3 Flags Classic. Juarez, Mexico to\n\t\tSouthern Alberta, Canada. $110/person. received by\n\t\t1/23/93. Frank Weed @ 714/879-9432. (or try 714/962-3150)\nSep 3-6\t\tABATE's Golden State Rendezvous. 10A Fri-noon Mon @\n\t\tMid State Fairgrounds, Paso Robles.\nSep 12\t\tIron Horse Rocket Run. 805/734-3401.\nSep 19\t\tBlack Gold Poker Run (Taft MC). 805/765-5085.\nSep 24-26\tRedwood Run #2.\nSep 25-27\tBonanza Tour (Shamrocks).  805/272-9865.\nOct 1\t\tMC Swap Meet @ Orange County Fairgnds, Costa Mesa. $6.\n\t\t714/364-0515.\nOct 9-10\tSong Dog Ranch Fall Rally. Overnight camping at this\n\t\tfamous motorcycle campground.  Mx., All you can \n\t\teat or drink bbq dinner.  sunday bkfst. $40/person. reserve \n\t\tby Oct 4. Song Dog Ranch, Rt 33, New Cuyama (N of Ojai).\n\t\t805/766-2454.  (Keep trying this number).\nOct 16-17\tSCMA Grand Tour 805/269-1399.\nOct 22-24\tEasyriders Motorcycle Rodeo. Antelope Valley Fairgrounds\n\t\t(Hwy. 14 N. to Ave, I exit, right), Lancaster.\nOct 23-24\t22nd Annual Griffith Park Sidecar Rally. Mineral Springs \n\t\tarea of the Park. Doug Bingham @ 818/780-5542.\nOct 24\t\tMRA Chap \"E\" Ride\nNov 7\t\tLove Ride 10 to benefit the Muscular Dystrophy Assoc.\n\t\tSponsored by Glendale H-D, 3717 San Fernando Rd,\n\t\tGlendale.  818/246-5618.\nNov 14\t\tToy-Key Run (SCMA Area B). 805/481-3482.\nNov 14\t\tMC Awareness Day (ABATE 1)\nNov 21\t\tAccessories Unlimited** Posse Ride.\nDec 3\t\tMC Swap Meet @ Orange County Fairgnds, Costa Mesa. $6.\n\t\t714/364-0515.\nDec 12\t\tHathaway Children's Center Toy Run\n-------------------- ONGOING EVENTS & NOTICES ----------------------------\nHD Swap Meet & Show. Santa Fe Springs Drive-in, 13963 Alondra Blvd. \n\t5:30-10:30P, 3rd Thurs ea mo. $5 fee. 310/944-4268.\n\tnote that in April, it was moved to 4/8.\nFree seminars every Saturday @ Luftmeister, Inc., Long Beach.  310/539-6420.\nTune in Centerstand, a radio program for motorcyclists every Saturday from\n\t1:30-2PM on KPFK, 90.7 FM\nParents w/out Partners MC Club meets 2nd Sat @ 8A at Cocos, Brea Rd & Colina\n\tRoad in Diamondbar.  909/595-3785\nA new mc club for women only is forming: Diamonds and Pearls.  818/706-3164\nMARC (Motorcycling Amateur Radio Club) meets 8A, 2nd Sat @ Denny's, 2314\n\tE 17th St, Santa Ana. Net @ 8P Weds on 146.985- . Info: Ray or Bonnie\n\t@ 714/551-1036.\n------------------- ** ADDRESSES -----------------------------------------\nFollows Camp -- From 210 or 10 Fwy, go North on Azusa Ave (Hwy 39) To East\n\tFork Rd.  Go 2.5 miles East to camp (hint: look for bridge).\nAccessories Unlimited -- 24508 Lyons Ave (at I5), Newhall. 805/255-6522.\nCycle Parts West -- 13682 Beach Blvd, Westminister.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1546, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: An Anecdote about Islam\nOrganization: Technical University Braunschweig, Germany\nLines: 76\n\nIn article <115687@bu.edu>\njaeger@buphy.bu.edu (Gregg Jaeger) writes:\n \n(deletion)\n>Sure. Yes, I did. You see I don't think that rape and murder should\n>be dealt with lightly. You, being so interested in leniency for\n>leniency's sake, apparently think that people should simply be\n>told the \"did a _bad_ thing.\"\n>\n \nStraw man. And you brought up leniency.\n \n \n>>And what about the simple chance of misjudgements?\n>\n>Misjudgments should be avoided as much as possible.\n>I suspect that it's pretty unlikely that, given my requirement\n>of repeated offenses, that misjudgments are very likely.\n>\n \nAssuming that misjudgements are not correlated.\n \n \n(Deletion)\n>>I just love to compare such lines to the common plea of your fellow believers\n>>not to call each others names. In this case, to substantiate it: The Quran\n>>allows that one beATs one's wife into submission.\n>\n>\n>Really? Care to give chapter and verse? We could discuss it.\n>\n \nHas been discussed here. Chapter and verse were cited, I assume that you\nweren't looking then.\n \nLet's be more exact, do you think it is not in the Quran?. And what would\nyour consequences be when it it was shown to be in it?\n \n \n>>Primitive Machism refers to\n>>that. (I have misspelt that before, my fault).\n>\n>Again, not all of the Orient follows the Qur'an. So you'll have to do\n>better than that.\n>\n \nI have not claimed that. It is sufficient for the argument when there are\na lot of male dominated societies that qualify as Machistic. Are you going\nto say that the situation of women is better in sufficeint areas of the\nOrient?\n \n \n(Deletion)\n>This is an argument for why _you_ don't like religions that suppress\n>sex. A such it's an irrelevant argument.\n>\n>If you'd like to generalize it to an objective statement then\n>fine. My response is then: you have given no reason for your statement\n>that sex is not the business of religion (one of your \"arguments\").\n>\n>The urge for sex in adolescents is not so strong that any overly strong\n>measures are required to suppress it. If the urge to have sex is so\n>strong in an adult then that adult can make a commensurate effort to\n>find a marriage partner.\n>\n \nYou apparently have trouble reading things you don't like. The point was\nhaving sex the way one wishes being a strong desire. Marriage is a red\nherring. Tell me about homosexuals, for one. You simply ignore everything\nthat doesn't fit into the world as you would like to have it.\n \nAnd as for the situation of adolescents, one has probably keep your\ncombination of leniency and maiming in mind, whe you say that it does\nnot take *overly* strong measures to suppress the urge for sex in\nadolescents.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1547, "properties": {"category": "alt.atheism", "text": "From: lucio@proxima.alt.za (Lucio de Re)\nSubject: Re: atheist?\nReply-To: lucio@proxima.Alt.ZA\nOrganization: MegaByte Digital Telecommunications\nLines: 33\n\nTony Lezard <tony@mantis.co.uk> writes:\n\n>My opinion is that the strong atheist position requires too much\n>belief for me to be comfortable with. Any strong atheists out there\n>care to comment? As far as I can tell, strong atheists are far\n>outnumbered on alt.atheism by weak atheists.\n\nAt the cost of repudiating the FAQ, I think too much is made of the\nstrong vs weak atheism issue, although in the context of alt.atheism,\nwhere we're continually attacked on the basis that strong atheists\n\"believe\" in the non-existence of god, I think the separation is a\nvalid one.\n\nTo cover my arse, what I'm trying to say is that there is an\ninfinitely grey area between weak and strong, as well as between\nstrong and the unattainable mathematical atheism (I wish!).  Whereas I\n_logically_ can only support the weak atheist position, in effect I am\na strong atheist (and wish I could be a mathematical one).  To\njustify my strong atheist position I believe I need only show that\nthe evidence presented in favour of any of the gods under scrutiny\nis faulty.\n\nIf I read the FAQ correctly, no argument for the existence of god\n(generic, as represented by mainstream theologians) has ever been\nfound to be unassailable.  To me this is adequate evidence that the\n_real_god_ is undefinable (or at least no definition has yet been\nfound to be watertight), which in turn I accept as sufficient to\nbase a disbelief in each and every conceivable god.\n\nI'm a little fuzzy on the edges, though, so opinions are welcome\n(but perhaps we should change the thread subject).\n-- \nLucio de Re (lucio@proxima.Alt.ZA) - tab stops at four.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1548, "properties": {"category": "talk.politics.mideast", "text": "From: hm@cs.brown.edu (Harry Mamaysky)\nSubject: Re: From Israeli press. Madness.\nIn-Reply-To: jar2e@faraday.clas.Virginia.EDU's message of Sat, 17 Apr 1993 18:16:47 GMT\nOrganization: Dept. of Computer Science, Brown University\nLines: 12\n\nIn article <C5n43z.Dq2@murdoch.acc.Virginia.EDU> jar2e@faraday.clas.Virginia.EDU (Virginia's Gentleman) writes:\n\n   This post has all the earmarks of a form program, where the user types in\n   a nationality or ethnicity and it fills it in in certain places in the story. \n   If this is true, I condemn it. If it's a fabrication, then the posters have\n   horrible morals and should be despised by everyone on tpm who values truth.\n\n   Jesse\n\nAgreed.\n\nHarry.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1549, "properties": {"category": "soc.religion.christian", "text": "From: eng10205@nusunix1.nus.sg (LING SIEW WEE)\nSubject: ONLINE BIBLE as bible study\nOrganization: National University of Singapore\nLines: 33\n\nHello, I am about to embark on a bible study on ACTS. I have online\nbible software with me. I would like to know the the background of the\nauthors of its various topics articles and about the author of the\nPeople's New Testament. I need to know how realible is the articles in\nthe Online Bible software. Specifically (for your convenience) I want to\nknow about the :\n\n\n\t\t1. Darby Translation ( I have never heard of this one)\n\t\t2. Young's Literal Translation (I have also never heard\nof)\n\t\t3. The realiability of the Hebrew/Greek Lexicon\n\t\t4. The authors (from which denomination etc) of the\narticles in the TOPICS modules.\n\t\t5. The realiability of the Treasury of Scripture\nKnowlege ( as I have never heard of too) \n\t\t6. Who are the commentators, Scofield and B.W. Johnson\nwho wrote the Scofield Reference Bible and the People's New Testament respectively \n\t\t7. The realiability of the Strong numbers.\n\nI will be most happy to receive a reply of any of you who knows about\nthe above. Also, please 'qualify' yourself so that I may know that I am\nnot receiving a 'rubbish' letter. I just want to make sure.            \n\nWilfred Ling\n\n\t\n--\n***********************************************************************\n*Name\t    : Wilfred Ling Siew Wee   | National University of S'pore *\n*Internet   : eng10205@nusunix.nus.sg | Electrical Engineering        *\n*Bitnet\t    : eng10205@nusvm.bitnet   |                               *\n*********************************************************************** \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1550, "properties": {"category": "talk.politics.mideast", "text": "From: astein@nysernet.org (Alan Stein)\nSubject: Re: Freedom In U.S.A.\nOrganization: NYSERNet, Inc.\nLines: 23\n\nab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n>\tI have just started reading the articles in this news\n>group. There seems to be an attempt by some members to quiet\n>other members with scare tactics. I believe one posting said\n>that all postings by one person are being forwarded to his\n>server who keeps a file on him in hope that \"Appropriate action\n>might be taken\". \n>\tI don't know where you guys are from but in America\n>such attempts to curtail someones first amendment rights are\n>not appreciated. Here, we let everyone speak their mind\n>regardless of how we feel about it. Take your fascistic\n>repressive ideals back to where you came from.\n\nFreedom of speech does not mean that others are compelled to give one\nthe means to speak publicly.  Some systems have regulations\nprohibiting the dissemination of racist and bigoted messages from\naccounts they issue.\n\nApparently, that's not the case with virginia.edu, since you are still\nposting.\n-- \nAlan H. Stein                     astein@israel.nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1551, "properties": {"category": "talk.politics.guns", "text": "From: gs26@prism.gatech.EDU (Glenn R. Stone)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nReply-To: glenns@eas.gatech.edu\nOrganization: The Group W Bench\nLines: 22\n\n\nIn <93109.13404334AEJ7D@CMUVM.BITNET> 34AEJ7D@CMUVM.BITNET writes:\n\n>I will be surprised if this post makes it past the censors,\n>but here goes:\n\nFret not, you made it.\n\n>I have predicted this from the start, but God, it sickens me to see\n>it happen. I had hoped I was wrong. I had hoped that there was\n>still some shred of the America I grew up with, and loved, left\n>alive. I was wrong. The Nazis have won.\n\nNot while we still have our guns.  <evil grin>  \n\nHey, gang, it's not about duck hunting, or about dark alleys,\nit's about black-clad, helmeted and booted troops storming\nhouses and violating civil rights under color of law. \n\nAre YOU ready to defend YOUR Constitution?\n\n-- Glenn R. Stone (glenns@eas.gatech.edu)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1552, "properties": {"category": "talk.politics.guns", "text": "From: kdw@icd.ab.com (Kenneth D. Whitehead)\nSubject: Re:  Blast them next time\nNntp-Posting-Host: sora.icd.ab.com\nOrganization: Allen-Bradley Company, Inc.\nLines: 57\n\noldham@ces.cwru.edu (Daniel Oldham) babbles:\n\nWhat happened in Waco is not the fault of the BATF. If they would of\nhad the proper equipment and personal then they could of captured the\ncompound on the initial assault and none of this would of happened.\n\n\tIf they'd gone to the door and knocked on it to serve the\n\twarrant, like the Sheriff had done 3 other times, they\n\twouldn't have needed to HAVE an initial assault.  But then,\n\tHerr Klinton and Attorney Gen'l Reno wouldn't have been\n\table to have told such heroic stories about how they\n\t\"protected\" the rest of us from a group of people who\n\tkept to themselves, miles out in the prairie.\n\nThe BATF needs more people, better weapons and more armored\ntransports. When they meet hostile fire they should be able to use\nmore force instead of retreating to a stand off. If you are going to\ndo a job then do it right. The BATF is there to protect us and they\nmust have the proper equipment and people to do the job.\n\n\tThe BATF needs to be disbanded.  This out of control group\n\tof Rambo wannabees is a danger to the Republic.\n\nWith the WoD and the increased crime in the streets the BATF is needed\nmore now then ever. If they blast away a few good fokes then that is\nthe price we all have to pay for law and order in this country.\n\n\tWell, I figure you're going to get flamed pretty badly by\n\teverybody else for this incredibly stupid statement, so I'll\n\tjust let it pass for now.\n\n\tCase Western reserve, huh?  Do the Feds know about that big \n\tstockpile of automatic weapons and crack you have in  your\n\thouse?  Are you the same Daniel Oldham that lives on Orchard\n\tDrive?  Just so they get the address right, that is...\n\nLook\nat all the good people that died in wars to protect this great country\nof ours.\n\n\tWell, it used to be a great country.  Now I'm not so sure.  \n\tI knew a few of those good people who died in wars;  I was\n\tin Viet Nam.  I can assure you, none of us fought to protect\n\tthe right of the government to attack its own citizens with\n\tmilitary force without provocation.  (Hint: serving a search warrant\n\tis NOT sufficient provocation to stage a military style assault\n\ton a religious group.  At Least not here in the US.  Maybe in\n\tIraq, or Syria...)\n\nWith the arms build up in Waco they needed to hit that compound with\nmega fire power. They could of gone in there blasting and killed a few\nwomen and kids but it would of been better then letting them all burn\nto death 51 days later.\n\n\tThis is a joke, right?  Or are they really letting fools like\n\tyou into CWRU now?  Too bad. Used to be a good school.  How'd you\n\tget in anyway, did your old man buy a new wing for the library?\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1553, "properties": {"category": "comp.graphics", "text": "From: pvconway@cudnvr.denver.colorado.edu\nSubject: TIN files & coutours\nLines: 15\n\n\nHi!\n\tI am working on a project that needs to create contour lines\nfrom random data points.  The work that I have done so far tells me that I\nneed to look into Triangulated Irregular Networks (TIN), the Delauney\ncriiterion, and the Krige method.  Does anyone have any suggestions for\nreferences, programs and hopefully source code for creating contours.  Any\nhelp with this or any surface modeling would be greatly appreciated.\nI can be reached at the addresses below:\n\n\n\t\t\t-- Paul Conway\n\nPVCONWAY@COPPER.DENVER.COLORADO.EDU\nPVCONWAY@CUDNVR.DENVER.COLORADO.EDU\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1554, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: About this 'Center for Policy Resea\nOrganization: The Department of Redundancy Department\nLines: 85\n\nIn article <1483500350@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n\n>It seems to me that many readers of this conference are interested\n>who is behind the Center for Polict Research. I will oblige.\n\nTrumpets, please.\n\n>My name is Elias Davidsson, Icelandic citizen, born in Palestine. My\n>mother was thrown from Germany because she belonged to the 'undesirables'\n>(at that times this group was defined as 'Jews'). She was forced to go\n>to Palestine due to many  cynical factors. \n\n\"Forced to go to Palestine.\"  How dreadful.  Unlike other\nundesirables/Jews, she wasn't forced to go into a gas chamber, forced\nunder a bulldozer, thrown into a river, forced into a \"Medical\nexperiment\" like a rat, forced to march until she dropped dead, burned\nto nothingness in a crematorium.  Your mother was \"forced to go to\nPalestine.\"  You have our deepest sympathies.\n\n>I have meanwhile settled in Iceland (30 years ago) \n\nWe are pleased to hear of your escape.  At least you won't have to\nsuffer the same fate that your mother did.\n\n>and met many people who were thrown out from\n>my homeland, Palestine, \n\nYour homeland, Palestine?  \n\n>because of the same reason (they belonged to\n>the 'indesirables'). \n\nShould we assume that you are refering here to Jews who were kicked\nout of their homes in Jerusalem during the Jordanian Occupation of\nEast Jerusalem?  These are the same people who are now being called\nthieves for re-claiming houses that they once owned and lived in and\nnever sold to anyone?\n\n>These people include my neighbors in Jerusalem\n>with the children of whom I played as child. Their crime: Theyare\n>not Jews. \n\nI have never heard of NOT being a Jew as a crime.  Certainly in\nIsrael, there is no such crime.  In some times and places BEING a Jew\nis a crime, but NOT being a Jew??!!\n\n>My conscience does not accept such injustice, period. \n\nOur brains do not accept your logic, yet, either.\n\n>My\n>work for justice is done in the name of my principled opposition to racism\n>and racial discrimination. Those who protest against such practices\n>in Arab countries have my support - as long as their protest is based\n>on a principled position, but not as a tactic to deflect criticism\n>from Israel. \n\nThe way you've written this, you seem to accept criticism in the Arab\nworld UNLESS it deflects criticism from Israel, in which case, we have\nto presume, you no longer support criticism of the Arab world.\n\n>The struggle against discrimination and racism is universal.\n\nLook who's taling about discrimination now!\n\n>The Center for Policy Research is a name I gave to those activities\n>undertaken under my guidance in different domains, and which command\n>the support of many volunteers in Iceland. It is however not a formal\n>institution and works with minimal funds.\n\nBe careful.  You are starting to sound like Barfling.\n\n>Professionally I am music teacher and composer. I have published \n>several pieces and my piano music is taught widely in Europe.\n>\n>I would hope that discussion about Israel/Palestine be conducted in\n>a more civilized manner. Calling names is not helpful.\n\nGood.  Don't call yourself \"ARF\" or \"the Center for Policy Research\",\neither. \n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1555, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Re: Space Advertising (2 of 2)\nOrganization: University of Illinois at Urbana\nLines: 24\n\nWales.Larrison@ofa123.fidonet.org writes:\n\n>the \"Environmental\n>Billboard\" is a large inflatable outer support structure of up to\n>804x1609 meters.  Advertising is carried by a mylar reflective area,\n>deployed by the inflatable 'frame'.\n>   To help sell the concept, the spacecraft responsible for\n>maintaining the billboard on orbit will carry \"ozone reading\n>sensors\" to \"continuously monitor the condition of the Earth's\n>delicate protective ozone layer,\" according to Mike Lawson, head of\n>SMI. Furthermore, the inflatable billboard has reached its minimum\n>exposure of 30 days it will be released to re-enter the Earth's\n>atmosphere. According to IMI, \"as the biodegradable material burns,\n>it will release ozone-building components that will literally\n>replenish the ozone layer.\"\n ^^^^^^^^^ ^^^ ^^^^^ ^^^^^\n\n Can we assume that this guy studied advertising and not chemistry?  Granted \nit probably a great advertising gimic, but it doesn't sound at all practical.\n\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n\t\t    \"Find a way or make one.\"\n\t             -attributed to Hannibal\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1556, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gene@jackatak.raider.net (Gene Wright)\nSubject: mac portable ram problems; coprocessor not installed?\nOrganization: Jack's Amazing CockRoach Capitalist Ventures\nLines: 18\n\nI just recently bought a 4 MB ram card for my original mac portable \n(backlit) and have since had some bizarre crashes. It happens when I put \nthe machine to sleep and wake the machine up. sometimes it will just \nfreeze the cursor and lock the machine up forcing me to push the reset \nswitch. Other times it will give me the usual bomb box with the error \nmessage of \"Co processor not installed\". \n\nI know one solution is NOT to put the machine to sleep, but does anyone \nhave any ideas on what could be causing this or better yet what might fix \nit? The memory card is Psuedostatic ram and goes into the PDS Slot. That \nprobably figures into the problem. the manufacturer is King Memory (Not \nkingston) from irvine, CA. They say the problem is in my machine. \n\nAny Ideas? -- Gene Wright.\n\n--\n     gene@jackatak.raider.net (Gene Wright)\n------------jackatak.raider.net   (615) 377-5980 ------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1557, "properties": {"category": "misc.forsale", "text": "Subject: Mives 4 Sale (update)\nFrom: koutd@hiramb.hiram.edu (DOUGLAS KOU)\nOrganization: Hiram College\nNntp-Posting-Host: hiramb.hiram.edu\nLines: 15\n\nVHS movie for sale\n\nKevin Costner\tDances withs Wolves\n\nJust open and was used once, $12.00 or best offer, buyer will have\nto pay shipping. ($1.00 for shipping)\n\nLet me know if you are interested, and send your offer to this\ne-mail address. Koutd@hirama.hiram.edu\n\nthanks,\n\nDouglas Kou\nHiram College\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1558, "properties": {"category": "sci.crypt", "text": "From: aj@sage.cc.purdue.edu (John Dormer)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nSummary: Misinterretation got us here today\nKeywords: constitution, misinterpretation, law\nOrganization: Purdue Daemons\nDistribution: na\nLines: 26\n\n  Misinterpretation, though it should be a crime in itself, is what\nUnited States lawyers use to make their bread and butter.\n\n  In Manchester, CT a few years ago, a small company wanted to run a\ngame system galled \"LaserGames,\" similar in many aspects to Photon\n(tm). Three lawyers and about a hundred citizens found an ancient law\nin Manchester's books which clearly from context was designed to\nprohibit travelling carnivals by enumerating the features of a carnival\nwhich they felt at the time made the prohibition obvious. Among these\nthings was \"shooting galleries,\" which is what the lawyers for the\nopposition to LaserGames wanted to harp upon. The judge took the two\nwords from this law, completely out of context, and ruled that\nLaserGames could not operate in Manchester.\n\n  Keep in mind that most travelling carnivals use projectile weapons in\ntheir shooting galleries, and not light beams. Clearly from context,\nLaserGames got shafted, but if the two words are applied, their denial\nof operating permission was justified.\n\n  If I had the text of the law I'd post it, but I'm afraid I don't\nremember it all well enough to even try. That little bit with the two\nwords stuck well, though.\n\n:\tJohn Dormer\n:\tjad@expert.cc.purdue.edu\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1559, "properties": {"category": "sci.electronics", "text": "From: domain@cbnewsf.cb.att.com (george.d.hodge)\nSubject: Dayton Hamfest\nSummary: Where and when is Dayton Hamfest\nOrganization: AT&T\nDistribution: usa\nLines: 14\n\n\nSome weeks ago, someone posted an article telling when and where\na hamfest and computerfest was going to be help in Dayton, OH.\nUnfortunately, I lost the article and I was wondering if someone\ncould repost it.\n\nI believe it was being held the 23,24,and 25 of this month at\nthe Dayton convention center but I'm not sure.\n\nAny help and more details would be greatly appreciated.\n\n\t\tgeorge.d.hodge\n\t\tdomain@cbcat.att.com\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1560, "properties": {"category": "rec.motorcycles", "text": "From: csundh30@ursa.calvin.edu (Charles Sundheim)\nSubject: Looking for MOVIES w/ BIKES\nSummary: Bike movies\nKeywords: movies\nNntp-Posting-Host: ursa\nOrganization: Calvin College\nLines: 21\n\nFolks,\n\nI am assembling info for a Film Criticism class final project.\n\nEssentially I need any/all movies that use motos in any substantial\ncapacity (IE; Fallen Angles, T2, H-D & the Marlboro Man,\nRaising Arizona, etc).  \nAny help you fellow r.m'ers could give me would be much `preciated.\n(BTW, a summary of bike(s) or plot is helpful but not necessary)\n\nThanx\n\n-Erc.\n\n\n_______________________________________________________________________________\nC Eric Sundheim        csundh30@ursa.Calvin.edu\nGrandRapids, MI, USA\n`90 Hondo VFR750f\nDoD# 1138\n-------------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1561, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 57\nNNTP-Posting-Host: lloyd.caltech.edu\n\nmmwang@adobe.com (Michael Wang) writes:\n\n>I was looking for a rigorous definition because otherwise we would be\n>spending the rest of our lives arguing what a \"Christian\" really\n>believes.\n\nI don't think we need to argue about this.\n\n>KS>Do you think that the motto points out that this country is proud\n>KS>of its freedom of religion, and that this is something that\n>KS>distinguishes us from many other countries?\n>MW>No.\n>KS>Well, your opinion is not shared by most people, I gather.\n>Perhaps not, but that is because those seeking to make government\n>recognize Christianity as the dominant religion in this country do not\n>think they are infringing on the rights of others who do not share\n>their beliefs.\n\nYes, but also many people who are not trying to make government recognize\nChristianity as the dominant religion in this country do no think\nthe motto infringes upon the rights of others who do not share their\nbeliefs.\n\nAnd actually, I think that the government already does recognize that\nChristianity is the dominant religion in this country.  I mean, it is.\nDon't you realize/recognize this?\n\nThis isn't to say that we are supposed to believe the teachings of\nChristianity, just that most people do.\n\n>Like I've said before I personally don't think the motto is a major\n>concern.\n\nIf you agree with me, then what are we discussing?\n\n>KS>Since most people don't seem to associate Christmas with Jesus much\n>KS>anymore, I don't see what the problem is.\n>Can you prove your assertion that most people in the U.S. don't\n>associate Christmas with Jesus anymore?\n\nNo, but I hear quite a bit about Christmas, and little if anything about\nJesus.  Wouldn't this figure be more prominent if the holiday were really\nassociated to a high degree with him?  Or are you saying that the\nassociation with Jesus is on a personal level, and that everyone thinks\nabout it but just never talks about it?\n\nThat is, can *you* prove that most people *do* associate Christmas\nmost importantly with Jesus?\n\n>Anyways, the point again is that there are people who do associate\n>Christmas with Jesus. It doesn't matter if these people are a majority\n>or not.\n\nI think the numbers *do* matter.  It takes a majority, or at least a\nmajority of those in power, to discriminate.  Doesn't it?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1562, "properties": {"category": "talk.politics.guns", "text": "From: slack@boi.hp.com (David Slack)\nSubject: Re: Clinton wants National ID card, aka USSR-style \"Internal Passport\"\nOrganization: Hewlett-Packard / Boise, Idaho\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 24\n\n\nThe idea of the card is bull in and of its self, but I'm curious to know, do \nthey plan on making it a requirement to *always* have it on you, or is it \nonly going to be required to be *presented* when trying to ge medical aid?\n\nBTW, anybody planning on shaving Hillary's head to look for *666*? 8^)\n\nLater Dave,\nDays\n\n^^^^^^^^\nGoverment logic or just the Clintons?\n\n\n--\n    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n   |_/_/_/  _/       _/      _/_/  _/  _/ | David H. Slack                  |\n   |_/      _/      _/_/    _/     _/ _/  | Boise Surface Mount Center      |\n   |_/_/_/  _/     _/  _/   _/     _/_/   | email: slack@hpdmd48.boi.hp.com |\n   |    _/  _/    _/_/_/_/  _/     _/ _/  | telnet: 323 4019                |\n   |_/_/_/  _/_/ _/      _   _/_/  _/  _/ | phone: (208) 323 4019           |\n   |------------------------------------------------------------------------|\n   | Hewlett-Packard, 11213 Chinden Blvd., Boise Idaho 83714-1023, M/S #625 |\n    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1563, "properties": {"category": "misc.forsale", "text": "From: reb@Ingres.COM (Phydeaux)\nSubject: White Toyota Camry LE 1988 MUST SELL\nReply-To: reb@Ingres.COM (Phydeaux)\nOrganization: E 4th St Home For The Overeducated Underemployed - New Jersey Div.\nLines: 10\n\nMUST SELL:\n\n1988 Toyota Camry LE -- Car has AC, PS, PB, Sunroof, AM/FM\n     Cassette radio, Cruise control, etc. 61000 miles.\n     White with red interior.\n\nCar is in excellent condition.  It is located in the Paramus, NJ area.\n$7900 or best offer.\n\nIf interested please call 201-666-9207\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1564, "properties": {"category": "soc.religion.christian", "text": "From: tedr@athena.cs.uga.edu (Ted Kalivoda)\nSubject: Re: Christianity and repeated lives\nOrganization: University of Georgia, Athens\nLines: 20\n\nIn article <May.7.01.09.36.1993.14545@athos.rutgers.edu> danc@procom.com (Daniel Cossack) writes:\n>JEK@cu.nih.gov writes:\n>>The Apostle Paul (Romans 9:11) points out that God chose Jacob\n>>rather than Esau... If we admit the possibility that they had lived previous\n>>lives, and that (in accordance with the Asiatic idea of \"karma\")\n>\n>And following Romans to 9:13, \"As it is written, Jacob have I loved,\n>but Esau have I hated.\"  How could God have loved and hated (in the\n>past tense) those that are not yet born, neither having done good\n>or evil?\n\nWoah...The context is about God's calling out a special people (the Jews) to\ncarry the \"promise.\"  To read the meaning as literal people is to miss Paul's\nentire point.  I'd be glad to send anyone more detailed explanations of this\npassage if interested.\n\n====================================          \nTed Kalivoda (tedr@athena.cs.uga.edu)\nUniversity of Georgia, Athens\nInstitute of Higher Ed. \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1565, "properties": {"category": "rec.sport.hockey", "text": "From: jimg@cybernet.cse.fau.edu (Jim Gorycki)\nSubject: Panther's President\nOrganization: Cybernet BBS, Boca Raton, Florida\nLines: 46\n\nAs I promised, I would give you the name of the Panther's president.\nAfter Huizenga announced the team name, he announced that Bill\nTorrey is named the first president of the Panthers.\n\nA little Bio from _Sun-Sentinel_\nTorrey, the architect of four consecutive Stanley Cup champions as \npersident and general manager of the New York Islanders.\nThroughout his 27 years in the NHL, Bill Torrey's bow ties have become\nas much of a signature as Andre Agassi's hair.\n\nThe Panthers will introduce a uniform, insignia, and ticket-price \ninformation in early next month.  In the meantime, Huizenga leaves the\nday-to-day operation in the hands of Torrey and Bob Clarke, the VP and\nGM.\n\nThe Florida Panthers was chosen as the name of South Florida's NHL team\nto focus attention on an endangered species.  There are 30 to 50 Florida\nPanthers in the Everglades National Park, the Big Cypress National \nPreserve and other parts of southwestern Florida.\n\n\"The Panther is the quickest-striking of all cats,\" Torrey said.  \n\"Hopefully that's the way we'll play on ice.\"\n\nMore BIO:\nIn Torrey, Huizenga has the first man hired by the expansion Islanders\nin 1972 and the one most responsible for guiding the Islanders to four\nconsecutive Stanley Cup championships (their first after only eight\nseasons) and 14 consecutive winning seasons.  As executive vice president\nof the California Golden Seals, Torrey watched the Seals go to the play-\noffs in 1968, only their second NHL season.\n\n\"I guess this completes my own personal hat trick\", said Torrey, 58, a\nnative of Montreal but a resident of Bear Lakes Country Club in Palm\nBeach.\n\nJim G.\nother accounts:\ngorycki@sol.cse.fau.edu\njimg@cybernet.cse.fau.edu\n\n--------------------------------------------------------------------\n\"I repeat myself when under stress. I repeat myself when under stress.\nI repeat myself when under stress. I repeat myself when under stress.\nI repeat...\"  Adrian Belew, \"Indicipline\"\n---------------------------------------------------------------------\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1566, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: The University of Texas at Austin, Austin TX\nLines: 31\nNNTP-Posting-Host: louie.cc.utexas.edu\n\nirvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n:glenns@eas.gatech.edu writes:\n:>Hey, gang, it's not about duck hunting, or about dark alleys,\n:>it's about black-clad, helmeted and booted troops storming\n:>houses and violating civil rights under color of law. \n:>\n:>Are YOU ready to defend YOUR Constitution?\n:\n:Its also about crazy fatigue clad survivalist types blasting the \n:snot out of people who accidentally stray onto his land in the\n:name of 'self defense.'\n\nWell, the count is now at least 86 dead by government action.  How many\nhave been killed in the last year in the manner you described?  What, no\nfacts?  Oh, how silly of me; I forgot, you don't like guns, so you don't\nneed no stinkin' facts.\n\n\n:Don't get too self-righteous, Mr. gun-toter.\n\nDon't get too smug, Mr. gun-hater.\n\n\nMike Ruff\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1567, "properties": {"category": "rec.autos", "text": "From: issa@cwis.unomaha.edu (Issa El-Hazin)\nSubject: Re: 300ZX or SC300???\nOrganization: University of Nebraska at Omaha\nLines: 20\n\nip02@ns1.cc.lehigh.edu (Danny Phornprapha) writes:\n\n>Hi everyone,\n\n>I'm getting a car in the near future.  I've narrow it down to 300ZX and SC300.\n>Which might be a better choice?\n\n>Thanks for your opnion,\n>Danny\n>-- \n\nI've been asking myself this same question for the past year, so, if/when\nyou find out, would you please share the magistic answer with me.. \n\nThe way I see it right now, work twice as hard so you can have both.\n\ncheers :)\n\nIssa\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.074+0000", "event": "documents", "entityId": 1568, "properties": {"category": "rec.sport.baseball", "text": "From: m_klein@pavo.concordia.ca (CorelMARK!)\nSubject: Re: Best Homeruns\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: pavo1.concordia.ca\nOrganization: Concordia University\nLines: 18\n\nI haven't been following the previous HR's.  But there are two, that I saw\nlive that would have to be up there (up where? there!).  \n1) Rick Monday's HR to bury the Expos in the NL championship in 1981.\nIt was hit off Steve Rogers, who is a RHP and primarily a starter.\nWhy was he used as a reliever when the 'Spos had Reardon and BillLee\nwarming up in the bullpen.  Considering Monday couldn't touch LHP,\nLee would have been a safe bet.  He wasn't even doing any drugs at that\ntime (or so he told me and around 50 others on a recent venture into \nMontreal.  The blast wasn't the important aspect.  It was the timing.\nSeventh game, a tie game, and in the top of the 9th.  The Expos almost\ncame back though...\n2) Mike Schmidt hit one that killed the Expos in 1980.  So close, yet, so\nfar.\nand\n3) Strawberry killed a pitch on the second day of the season a couple of\nyears ago.  It went off the technical ring in the Big O.  It almost left\nthe stadium!  That was hit HARD!!!\n\t\t\t\tCorelMARK! \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1569, "properties": {"category": "talk.politics.misc", "text": "From: radford@cs.toronto.edu (Radford Neal)\nSubject: Re: Government-Mandated Energy Conservation is Unnecessary and Wastful, Study Finds\nOrganization: Department of Computer Science, University of Toronto\nLines: 24\n\nIn article <C51vzu.I1r@newsserver.technet.sg> ipser@solomon.technet.sg (Ed Ipser) writes:\n\n>  Government-Mandated Energy Conservation is Unnecessary and Wastful, \n>  Study Finds\n\nWhile I agree with much of this post, one point seems mis-directed...\n\n>    When standards of living, population densities, and industrial\n>  structures are controlled for, the United States is no less energy\n>  efficient than Japan and more energy efficient than many of the Group\n>  of Seven nations.\n\nAnd when controlled for usage of oil, gas, etc. energy efficiency in\nall countries turns out to be identical :-)\n\nTo take population density as an example, one way to reduce energy\nused in transportation is surely to concentrate the population in\ndense urban areas (though this might, of course, have other\ndisadvantages, possibly even relating to energy use).  The fact that\nJapan is forced to do this by the nature of the country, while the US\nis not, does not mean that people in the US would be unable to do this\nif given sufficient motive to conserve energy.\n\n    Radford Neal\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1570, "properties": {"category": "sci.electronics", "text": "From: gerrit@laosinh.stgt.sub.org (Gerrit Heitsch)\nSubject: Re: What's a good IC for RS232 -> TTL signals??\nDistribution: world\nOrganization: Lao-Sinh project (private UUCP site)\nLines: 26\n\nIn article <C5nz60.99z@scraps.uucp>, Frank Holden KA3UWW writes:\n\n> >I'm looking for an IC that will convert RS232 voltage levels to TTL voltage \n> >levels.  Something relatively inexpensive would be nice, too.  Anyone have\n> >a suggestion??  Thanks.\n> \n> Well it looks as if Digi-Key sells a chip with the number ICL232 that does what\n> you want.  They are selling it for about $3.50...\n\nAre you sure that he needs a two way converter? If he wants only\nRS232->TTL I would suggest the MC1489, its very cheap (0.80 DM in\nGermany). This chip needs only +5V. The MC1488 TTL->RS232-Converter\nuses +12V and -12V.\n\nBTW... The MAX232 and compatibles seem to be expensive in the USA...\nI paid 2.95 DM for a ITS80272 (made by Harris), its absolutely\ncompatible with the MAX232 or the ICL232.\n\nGerrit\n\n-- \n         Gerrit Heitsch  Moenchweg 16  7038 Holzgerlingen  Germany\n  Logical adresses: UUCP: gerrit@laosinh.stgt.sub.org FIDO: (2:2407/106.9)\nIf we will ever be visited by Aliens, it will be very hard to explain, why a\n lifeform, that is intelligent enough to build atomic weapons can be stupid\n   enough to do it. (taken from GEO special about space, page 88-91)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1571, "properties": {"category": "comp.sys.mac.hardware", "text": "From: andrem@pyrtech.mis.pyramid.com (Andre Molyneux)\nSubject: Re: LCIII->PowerPC?\nReply-To: andrem@pyrtech.mis.pyramid.com (Andre Molyneux)\nOrganization: Pyramid Technologies, Mt. View, California.\nLines: 34\n\nIn article <1qksuq$1tt8@hal.gnu.ai.mit.edu>, mirsky@hal.gnu.ai.mit.edu\n(David Joshua Mirsky) writes:\n|> Hi. I own an LCIII and I recently heard an interesting rumor.\n|> I heard that the LCIII has a built in slot for a PowerPC chip.\n|> Is this true? I heard that the slot is not the same as the PDS\n|> slot.  Is that true?\n|> \n|> Thanks\n|> David Mirsky\n|> mirsky@gnu.ai.mit.edu\n\nWell, I also have an LC III.  Popping the top revealed:\n\n\tOne \"socket\" for an additional VRAM SIMM\n\n\tOne \"socket\" for a 72-pin RAM SIMM\n\n\tOne socket for a flat-pack FPU\n\n\tA processor-direct slot (PDS) identical to the LC/LC II, but with\n\tan additional set of connetions to one side (for the full 32-bit\n\tdata path that the LC/LC II lacked\n\nThat's it.  I guess a board with a PowerPC chip could be made that would fit\nin the PDS, but that's the only place.\n\n+--------------------------------------------------------------------------+\n| Andre Molyneux   KA7WVV     \"Insert your favorite disclaimer here\"       |\n+-----------------------------------------+--------------------------------+\n|      -=-------- PYRAMID TECHNOLOGY CORP |Internet:                       |\n|    ---===------ 3860 N. First Street    |  andrem@pyramid.com            |\n|  -----=====---- San Jose, CA            |Packet:                         |\n|-------=======-- (408) 428-8229          |  ka7wvv@n0ary.#nocal.ca.usa.na |\n+-----------------------------------------+--------------------------------+\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1572, "properties": {"category": "sci.med", "text": "From: twain@carson.u.washington.edu (Barbara Hlavin)\nSubject: Re: Is MSG sensitivity superstition?\nArticle-I.D.: shelley.1qvq10INNlij\nDistribution: na\nOrganization: University of Washington, Seattle\nLines: 38\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <1993Apr19.204855.10818@rtsg.mot.com> lundby@rtsg.mot.com (Walter F. Lundby) writes:\n>As nobody in the food industry has even bothered to address my previous\n>question \"WHY DO YOU NEED TO PUT MSG IN ALMOST EVERY FOOD?\" I must assume\n>that my wife's answer is closer to the truth than I hoped it was.\nI don't mean to be disrespectful to your concerns, but it seems to me \nthat you're getting all wound up in a non-issue.  \n\nAs many knowledgeable people have pointed out, msg is a naturally \noccurring substance in a lot, if not most, foods.  When food \nmanufacturers add it to a preparation, they do so because it's a \nknown flavor enhancer. \n\nYour wife's theory, that MSG is added to food to stimulate appetite, \nmay well be true.  But I don't believe it's ALWAYS the reason it's \nadded.  People are (largely, for the most part) in charge of their \nown appetites. \n\n>children's and my parent's) seem to fixate on a particular brand of pet\n>food. The cat will eat any product within one brand and not any other\n>brand.  I have wondered if this is not a case of preference, but, some\n>sort of chemical training or addiction. My questions, for the net, are:\n>Does the FDA regulate the contents of pet food?  Is it allowed for pet\n>food to contain addictive or conditioning substances?  Is MSG put in \n>pet food?\n>\nYou don't know much about cats, do you? \n\nCats will Take Advantage of You.  Resign yourself:  you will never  \nunderstand a cat.  Their tastes are whimsical.  \n\nI also suspect, though it's been a while since I've checked ingredients \non commercial cat food, that there are much more stringent requirements \non pet food additives than human.  \n\nSee, the FDA has this stupid idea that human beings have the intelligence \nto look out after their own interests.  \n\nBarbara, wondering how her cat would take care of *her*\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1573, "properties": {"category": "rec.autos", "text": "From: jek@icf.hrb.com (Joe Karolchik)\nSubject: Re: WARNING.....(please read)...\nOrganization: HRB Systems, Inc.\nLines: 31\n\n(I deleted your name because I don't want to sound accusative in my remark)\n> \n> This is a two-sided problem. Unfortunately our culture has been deteriorating over time.\n> The \"breeding\" of these low-life's is getting worse; our justice system is at best\n> extremely weak to handle these problems. That is why low-abiding citizens should have\n> the power to protect themselves and their property using deadly force if necessary \n> anywhere a threat is imminent.\n> \n> My Camaro (my pride and joy) got stolen right out of my driveway a few years back.\n> The persons that did that were eventually caught (lucky for me!) but not before\n> having trashed the car.\n> \n> On another occasion, on my way from Texas to Florida, I had stopped in a small motel\n> for the night in a small town somewhere in Florida. About 5 youths were disturbing my\n> car, setting off the alarm and challenging me to come out. When I and another tenant\n> walked out with a 357 Magnum and a 45 automatic respectively, they vanished. \n> Needless to say, I immediately packed-up and left.\n> \n> Watch out for car-jacking and staged accidents. They can be deadly!\n> \nI'm not going to argue the issue of carrying weapons, but I would ask you if \nyou would have thought seriously about shooting a kid for setting off your\nalarm?  I can think of worse things in the world.  Glad you got out of there\nbefore they did anything to give you a reason to fire your gun.\n\nWe can all ask \"what's happening to society these days\", but don't forget to\nask another important question too: What effort am I expending to make it any\ndifferent than it is?\n\nJust my thoughts,\nJoe Karolchik\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1574, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: joel@tekgen.bv.tek.com (Joseph Look)\nSubject: Bar code fonts\nOrganization: Tektronix, Inc.\nLines: 3\n\nI am looking for some bar code fonts especially code 3 of 9. Did anybody\nknow  any ftp sites or BBS that I can download these types of fonts? \nPlease email to me if you have any info.  Thanks!\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1575, "properties": {"category": "rec.sport.baseball", "text": "From: neuharth@hardy.u.washington.edu (John Neuharth)\nSubject: Re: New Uniforms\nArticle-I.D.: shelley.1pserkINNltg\nOrganization: University of Washington\nLines: 16\nNNTP-Posting-Host: hardy.u.washington.edu\n\njpopovich@guvax.acc.georgetown.edu writes:\n\n>While I enjoy the trend towards the more classic style of uniform - \n>and I disagree with the person who wants a return to the non-gray road \n>uniforms - it should be remembered that one of the, if not THE reason \n>for the redesigning of uniforms, especially hats (re: the new road all \n>green A's caps and the cardinal navy blue road cap), is the marketing \n>money to be made in sales of new merchandise. \n\nno kidding...just ask the White Sox...\n\ntoo bad, really...\n\n-John Neuharth\n\nneuharth@u.washington.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1576, "properties": {"category": "soc.religion.christian", "text": "From: cs89mcd@brunel.ac.uk (Michael C Davis)\nSubject: Re: Help\nOrganization: Brunel University, Uxbridge, UK\nLines: 27\n\nJon Ogden (jono@mac-ak-24.rtsg.mot.com) wrote:\n: It is a dead and useless faith which has no action behind it.  Actions\n: prove our faith and show the genuineness of it.\n\nA good example of this is Abraham (referred to in the James passage). Hebrews\nsays that Abraham was justified by faith -- but his faith was demonstrated\nthrough his works (i.e., he obeyed what God told him to do).\n\nReading Abraham's ``biography'' in Genesis is very instructive. He was a man\nbeset by *lack* of faith a lot of the time (e.g. lying about Sarah being his\nwife on 2 occasions; trying to fulfil God's promise on God's behalf by\ncopulating with Hagar). . . yet it seems that God didn't evaluate him on the\nbasis of individual incidents. Abraham is listed as one of the ``heroes of \nfaith'' in Hebrews 11. i.e., when it really came to the crunch, God declared\nAbraham as a man of faith. He believed God's promises.\n\nThis gives us confidence. Although real faith demonstrates itself through\nworks, God is not going to judge us according to our success/failure in\nperforming works.\n\n``Not by works of righteousness which we have done, but according to His mercy\nhe saved us, through the washing of regeneration, and renewing of the Holy\nSpirit.'' (Titus 3.5)\n\nAmazing Grace! Hallelujah!\n-- \nMichael Davis (cs89mcd@brunel.ac.uk)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1577, "properties": {"category": "rec.sport.baseball", "text": "From: 93jll@williams.edu (Teflon X)\nSubject: Re: Zane!!Rescue us from Simmons!!\nOrganization: Williams College, Williamstown, MA\nLines: 28\nNNTP-Posting-Host: hancock.cc.williams.edu\n\nIn article <sfoVX7O00WB4MIUm0d@andrew.cmu.edu> Mamatha Devineni Ratnam <mr47+@andrew.cmu.edu> writes:\n\n>So far Simmons looks like a total idiot.\n\n>5) Leyland should accept a part of the blame for the LaValliere situation. I\n>can't understand his and management's fear of losing Tom Prince through\n>waivers. Even if they do, what's the use. He is aright hander like Slaught.\n>Not a very smart platoon. Also, I am blaming Leyland in this case, since he is hcurrently    convinced that LaVAlliere is through, while giving him\n>way too much time last year in the regular season AND the playoffs(SLaught\n>should have played in all 7 games; he has a good average against right handed\n>pitching). Didn't Leyland and Simmons forsee this last year, and attempt to\n>trade LaValliere last year itself? Any fool could tell them LaVAlliere\n>wasn't very fit last year.\n\nSorry, but this is the biggest load of bunk I've seen in a while. \na) The Pirates have been trying to trade LaValliere for some time now.\nNobody was even vaguely interested.\nb) Several other teams had made it known that they would grab Prince,\nwho was out of options.\nc) LaValliere's release had nothing to do with him being through. He\nwas released, because, in the event of an injury to Slaught,\nLaValliere is no longer capable (they believe) of being the everyday\ncatcher.\n\nSince Slaught is as good against righties as he is against lefties,\nthe offense should actually improve with this move.\n\nToby\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1578, "properties": {"category": "rec.autos", "text": "From: sorlin@magnus.acs.ohio-state.edu (Steven J Orlin)\nSubject: Re: Changing oil by self.\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: usa\nLines: 18\n\n\nIn article <1993Apr15.222254.6651@rtfm.mlb.fl.us> gwalker@rtfm.mlb.fl.us (Grays\non Walker) writes:\n>Why crawl under the car at all? I have a machine I got for my boat that\n>pulls the oil out under suction through the dip stick tube. It does an\n>excellent job and by moving the suction tube around, you can get more\n>old oil out than by using the drain plug. I think I paid $25 at E&B Marine.\n>The oil goes into a steel 3 gal can - wait until it cools and decant into\n>your favorite device. I use soft drink bottles. Easy to take them down to\n>the local oil recycle center.\n\n\nYeah I suppose you could do that.  But then you don't get the broken knuckles,\nthe rust in your eyes, the oil bath, and the burns from the exhaust.\n\nI mean come on!...\n\nSteve\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1579, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: k4bnc@cbnewsh.cb.att.com (john.a.siegel)\nSubject: Can't set COM4\nOrganization: AT&T\nDistribution: usa\nKeywords: G2K\nLines: 15\n\nI have been unable to get COM 4 to work - diagnostic programs such as msd show\nnothing installed.  I think the software options are OK - is there a known\nhardware conflict and/or workaround for this problemand CD ROM\nSystem is a G2K 486DX2/66 tower with ATI video card\nPorts are set as follows \n  On board COMa = COM1 IRQ4 to external device\n  Internal modem = COM 3 IRQ5\n  DFIO port card primary port = COM 2 IRQ3  mouse\n  On board COM B = COM 4 IRQ 9  <--- DOES NOT WORK\nI have run this from a boot disk with only command.com to eliminate softwar\n\nAny suggestions before I call technical support?\nJohn Siegel\nk4bnc@cbnewsh.att.com\njas@hrollie.hr.att.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1580, "properties": {"category": "sci.space", "text": "From: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nSubject: Re: Space Debris\nOrganization: NASA Langley Research Center\nLines: 7\nDistribution: world\nReply-To: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nNNTP-Posting-Host: tahiti.larc.nasa.gov\n\nThere is a guy in NASA Johnson Space Center  that might answer \nyour question. I do not have his name right now but if you follow \nup I can dig that out for you.\n\nC.O.Egalon@larc.nasa.gov\n\nClaudio Oliveira Egalon\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1581, "properties": {"category": "sci.med", "text": "From: rind@enterprise.bih.harvard.edu (David Rind)\nSubject: Re: Good Grief!  (was Re: Candida Albicans: what is it?)\nOrganization: Beth Israel Hospital, Harvard Medical School, Boston Mass., USA\nLines: 40\nNNTP-Posting-Host: enterprise.bih.harvard.edu\n\nIn article <noringC5snsx.KMo@netcom.com> noring@netcom.com (Jon Noring) writes:\n>In article rind@enterprise.bih.harvard.edu (David Rind) writes:\n>>There is no convincing evidence that such a disease exists.\n\n>There's a lot of evidence, it just hasn't been adequately gathered and\n>published in a way that will convince the die-hard melancholic skeptics\n>who quiver everytime the word 'anecdote' or 'empirical' is used.\n\nNo, there's no evidence that would convince any but the most credulous.\n\nThe \"evidence\" is identical to the sort of evidence that has been\nused to justify all sorts of quack treatments for quack diseases\nin the past.\n\n>medicine on the right road.  But methinks that some who hold too firmly\n>to the party line are academics who haven't been in the trenches long enough\n>actually treating patients.\n\nI like the implication here.  It must not be that the quacks making\nmillions off such \"diseases\" are biased -- rather that those who\ndoubt their existence don't understand the real world.  It seems\neasy to picture a 19th centure snake oil salesman saying the same\nthing.\n\nHowever, I have been in the trenches long enough to have seen multiple\nquack diseases rise and fall in popularity.  \"Systemic yeast syndome\"\nseems to be making a resurgence (it had fallen off a few years ago).\nThere will be new such \"diseases\" I'm sure with best-selling books\nand expensive therapies.\n\n>If anybody, doctors included, said to me to my\n>face that there is no evidence of the 'yeast connection', I cannot guarantee\n>their safety.  For their incompetence, ripping off their lips is justified as\n>far as I am concerned.\n\nWell this, of course, is convincing.  I guess I'd better start diagnosing\nany illnesses that people want so that I can keep my lips.\n-- \nDavid Rind\nrind@enterprise.bih.harvard.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1582, "properties": {"category": "talk.religion.misc", "text": "From: royc@rbdc.wsnc.org (Roy Crabtree)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Red Barn Data Center\nLines: 11\n\nIn article <keng.735334134@tunfaire> keng@den.mmc.com (Ken Garrido) writes:\n\n[lotsa stuff taken out]\n\nBottom line: due process was not served.  No peaceful attempt to serve\na warrant occurred.\n\nThink on that.\n\nroyc\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1583, "properties": {"category": "talk.politics.misc", "text": "From: ipser@solomon.technet.sg (Ed Ipser)\nSubject: Re: Supply Side Economic Policy (was Re: David Stockman )\nNntp-Posting-Host: solomon.technet.sg\nOrganization: TECHNET, Singapore\nDistribution: na\nLines: 29\n\nIn article <Ufk_Gqu00WBKE7cX5V@andrew.cmu.edu> Ashish Arora <ashish+@andrew.cmu.edu> writes:\n>Excerpts from netnews.sci.econ: 5-Apr-93 Re: Supply Side Economic Po..\n>by Not a Boomer@desire.wrig \n>[...]\n>\n>>    The deficits declined from 84-9, reaching a low of 2.9% of GNP before  \n>> the tax and spending hike of 1990 reversed the trend.\n>>  \n>> Brett\n>Is this true ?  Some more details would be appreciated.\n\nYes, sadly, this is true. The primary reason, and the essence of the\ndetails that you are seeking, is that the Grahm-Rudman budget controls\nwere working.  In fact, they were working so well that unless the feds\ndid something, they were going to have to start cutting pork. So Bush\nand the Democrats got together in a Budget Summit and replaced\nGrahm-Rudman with the now historic Grand Compromise in which Bush\n\"consented\" to raise taxes in exchange for certain caps on spending\nincreases.\n\nAs it turned out, the taxes killed the Reagan expansion and the caps\non spending increases were dispelled by Clinton in his first act as\nPresident (so that he could create his own new plan with more tax\nincreases).\n\nThe result is that Clinton now HOPES to reduce the deficit to a level \nABOVE where it was when Reagan left office.\n\nChew on that awhile.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1584, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ams@Auspex.COM (Allan Schwartz)\nSubject: Re: Making an internal hard disk into an external\nOrganization: Auspex Systems, Santa Clara\nLines: 29\nNntp-Posting-Host: auspex.auspex.com\n\n>Its not a difficult operation-- the cables and such are standard,\n>except for SCSI ID.  SCSI ID is usually three jumper pads-- labelled\n>A0-A2 on Quantums.\n\nI am trying to put a 40MB drive from my LC into a case.  It is a Conner\nCP3040A.  I can't figure out which jumpers are the SCSI ID jumpers.\nIs anyone familiar with this drive?\n\nAt the end of the drive (oposite the 50 pin pibbon connector), there\nare eleven pins which look like this:\n\n\n        o o o o o   o   1\n          o o o o   o   2\n\n         L5  CR12   C37\n\nwhere the \"o\" are pins, and the \"L5 CR12 C37\" represent some of the\nsilk screen notation near these pins.\n\nElsewhere on the board there are four jumper pads marked E1,E2,E3,E4\non the silk screen.\n\nDoes anyone know where the SCSI ID A0,A1,A2 pins are, and where the\ndrive activity light LED should be plugged into?\n\n\t\t-allan\n-- \nAllan M. Schwartz              +1 408 492-0900                 ams@auspex.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1585, "properties": {"category": "misc.forsale", "text": "From: cmd@cbnewsc.cb.att.com (craig.m.dinsmore)\nSubject: VCR, Cassette, Generator, tube tester, lawn spreader\nOrganization: AT&T\nDistribution: chi\nKeywords: forsale\nLines: 21\n\n\nFor Sale:\n\nVCR - Samsung VR2610 basic 2 head machine. It has a problem loading the tape,\notherwise it plays and records just fine, remote is missing. $25 or make offer.\n\nCassette deck - Pioneer CT-F900, three head, servo control, dolby. This was\nthe top of the line (or close to it) several years ago. The rewind doesn't\nwork well. All else is fine. Service & owners manual included. $45 or offer.\n\nGenerator - 120 VAC 2000-2500 watt, has a voltmeter w/duplex outlet, a 5 hp\nengine should drive it to full output. Manufactered by Master Mechanic in\nBurlington Wisconsin.  $50 or make an offer\n\nEICO Model 625 tube tester.   $20 or make offer\n\nLawn spreader - Scott \"precision flow\" model PF-1 drop type, excellent\ncondition, ideal for a smaller yard. $20 or make offer.\n\nCraig    days: 979-0059  home: 293-5739\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1586, "properties": {"category": "comp.sys.mac.hardware", "text": "From: horton@what.sps.mot.com (David Horton)\nSubject: Re: Centris 610 Video Problem - I'm having it also!\nNntp-Posting-Host: 223.10.249.26\nOrganization: Motorola Inc. MMTG Oakhill Austin Texas\nLines: 27\n\nIn article <1qqf6b$oc6@usenet.INS.CWRU.Edu> bm967@cleveland.Freenet.Edu (David Kantrowitz) writes:\n>\n>From: push@media.mit.edu (Pushpinder Singh)\n>Subject: re: Centris 610 Video Problem - I'm having it also!\n>Date: Sat, 17 Apr 1993 03:17:45 GMT\n>\n>> When the computer is set for 256 colors and certain operations are done,\n>> particularly vertical scrolling through a window, horizontal white lines\n>> appear on the monitor (which generally but not always spare open\n>> windows).  These lines accummulate as the operation is continued.  If a\n>> window is moved over the involved area of the screen and then moved away\n>> the line disappear from that area of the screen.  This problem is not\n>> observed if the monitor is configured for 16 colors or a 14 inch Apple\n>> monitor with 256 colors is used.\n>>\n>> I suspect a bad video RAM chip but cannot be certain.  The problem has\n>> been apparent since day 1 but has gotten worse.\n>\n>etc.\n>\n>Has anyone NOT had these problems in the given configurations?\n>(that would help eliminate design flaw as the explanation)\n\nAs a data point, I'm using a Centris 610 4/80 with the Apple 16\"\nmonitor and do NOT have these problems.\nDCH\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1587, "properties": {"category": "comp.windows.x", "text": "From: eks@daimi.aau.dk (Eigil Krogh S|rensen)\nSubject: X-window for PC\nOrganization: DAIMI: Computer Science Department, Aarhus University, Denmark\nLines: 7\n\nIf a X-window package exists, that runs om PC, DOS (and maybe MS-windows)\nI would be very happy to hear about it.\n\nThanx in advance.\n\n  -- Eigil Krogh Sorensen\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1588, "properties": {"category": "sci.electronics", "text": "From: wayne@uva386.schools.virginia.edu (Tony Wayne)\nSubject: speaker impedance help needed\nOrganization: Virginia's Public Education Network (Charlottesville)\nLines: 7\n\n           I want to connect a very small \"home-made\" speaker\nup to the headphone jack on my macintosh LC for an experiment.\nThe dc resistance of the speaker is 1 ohm.  Any ideas how I can\ndo this safely?  I think I need some kind of an impedance\ntransformer or something.?\n-tony\n wayne@uva386.school.virginia.edu \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1589, "properties": {"category": "talk.politics.guns", "text": "From: nagle@netcom.com (John Nagle)\nSubject: Re: WACO: The Militia Assembles\nKeywords: We Salute Them\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nDistribution: usa\nLines: 7\n\n\n        Dumb move.  \n\n        The smart move would be to sneak in someone with a TV camera\nand video transmitter.  \n\n\t\t\t\t\tJohn Nagle\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1590, "properties": {"category": "soc.religion.christian", "text": "From: kene@acs.bu.edu (Kenneth Engel)\nSubject: Re: Atheists and Hell\nOrganization: Boston University, Boston, MA, USA\nLines: 18\n\n|> Imagine the worst depth of despair you've\n|> ever encountered, or the worst physical pain you've ever experienced.\n|> Some people suffer such emotional, physical, and mental anguish\n|> in their lives that their deaths seem to be merciful. But at least\n|> the pain does end in death. What if you lived a hundred such lives,\n|> at the conclusion of one you were instantly reborn into another?\n|> What if you lived a million, a billion years in this state?\n|> What if this kept going forever?\n\n\nDid this happen to Jesus? I don't think so, not from what I heard. He lived\nONE DAY of suffering and died. If the wages of sin is the above paragraph, then\nJESUS DIDN'T PAY FOR OUR SINS, DID HE?\n\nI'd be surprised to see the moderator let this one through, but I seriously\nwant a reasonable explanation for this.\n\nken\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1591, "properties": {"category": "rec.autos", "text": "From: ward@cs.uiuc.edu (Christ Ward)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 49\n\nR1004@vmcms.csuohio.edu writes:\n\n>In article <C5Lz30.Jus@news.cso.uiuc.edu>\n>cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n> \n>>laszlo@csd4.csd.uwm.edu (Tyson F Nuss) writes:\n>>\n>>>From article <1pq6i2$a1f@news.ysu.edu>, by ak296@yfn.ysu.edu (John R. Daker):\n>>>>\n>>\n>>>> Fake convertible roofs and vinyl roofs.\n>>>> Any gold trim.\n>>\n>>>\tThese, I will agree, are abominations, right along with the fake\n>>>continental spare-tire kit -- it's sad watching those little old ladies\n>>>try to load their groceries into the trunk with that huge tire-medallion\n>>>in the way.\n>>>\tMost pitiful fake convertible top: on a \"Cadillac\" Cimarron, with\n>>>all the chrome door trim still visible -- not fooling *anyone*.\n>>>Of course, there was that Hyundai Excel I once saw...\n>>\n>>\tI have seen a cutlass Supreme coupe (GM10) with a vinyl roof, ditto\n>>a Taurus.  Shoot the owners, NOW, before it's too late.\n>>\n>    It gets better.  I've seen them on a 4-door escort, Chevy S-10\n>Blazer, and even a Chevy astro mini-van.  A mini-van w/ a fake\n>convertible top is not something you want to see just after eating!\n> \n\n\tAnd better yet..There's a chevette in town with wire crome wheels,\nvinyl roof, tacky paint job and a continental spare (showing the wire\ncrome wheel within, of course)...I'm scared to look on the inside and have\nonly seen it rolling down the road...and I too was glad I hadn't just ate.\n\n\n\n> \n>------------------------------------------------------------------------\n>Bob Martel               |  Lady luck must have been a wonderful girl\n>bob2@cua3.csuohio.edu    |    -She's never been a friend of mine!\n>R1004@vmcms.csuohio.edu  |                    The Alan Parsons Project\n>                         |     The 3B1 lives!\n>--------------------------------------------------------------------------\n-- \n-------------------------------------------------------------------------------\nChris T. Ward  DoD#0710   \"Don't take life too seriously, you can never come\n                           out of it alive.\"  -?\n-------------------------------------------------------------------------------  \n \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1592, "properties": {"category": "talk.religion.misc", "text": "From: ins559n@aurora.cc.monash.edu.au (Andrew Bulhak)\nSubject: Re: 666 - MARK OF THE BEAST - NEED INFO\nOrganization: Monash University\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 14\n\n (U28698@uicvm.uic.edu) wrote:\n: Marian CATHOLIC high school, outside of chicago:\n: \n: 666 south ASHLAND avenue.\n: \nActually, Satanism is technically inverted Catholicism.\n\n\n+---------------------------------------------------------------------------+\n|  Andrew Bulhak\t     | :plonk: n. The sound of Richard Depew        |\n|  acb@yoyo.cc.monash.edu.au |   hitting the ground after being             | \n|  Monash Uni, Clayton,      |   defenestrated by a posse of angry Usenet   |\n|  Victoria, Australia       |   posters.                                   |\n+---------------------------------------------------------------------------+\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.075+0000", "event": "documents", "entityId": 1593, "properties": {"category": "talk.politics.misc", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: ProLifer Or Terrorist Threat\nOrganization: Corporation for Open Systems\nDistribution: world \nLines: 22\n\nIn <1993Apr5.204531.9006@jetsun.weitek.COM> nadja@weitek.COM (Nadja Adolf) writes:\n\n>In article <C4zA0H.IHD@wetware.com> drieux@wetware.com writes:\n>>In article 1pamhpINN7d3@geraldo.cc.utexas.edu, taite@ccwf.cc.utexas.edu () writes:\n>>>I'm prepared to instruct individuals in the proper use and \n>>>handling of firearms.  \n\n>>>As a Desert Storm vet with six years in the National Guard, I have a\n>>>great deal of experience in handling weapons and tactical training. \n\n\n>>ps: anyone up for a discussion of counter sniper operations?\n>>Security drills, Your Friend the Counter Terrorist Operation.....\n\n\n>If twit promises to train them in tactics and weapons handlings, I doubt\n>any of them will last long enough to become terrorists. Look for a sudden\n>rise in firearms accidents among the Fiends of the Fetus, though.\n\nBless you, Nadja, we needed a name for these Attack Puppies. Friends\nof the Fetus, or FOOF for short. :-)\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1594, "properties": {"category": "sci.electronics", "text": "From: kludge@grissom.larc.nasa.gov (Scott Dorsey)\nSubject: Re: R/S Battery of the Month Club\nOrganization: NASA Langley Research Center and Reptile Farm\nLines: 9\nNNTP-Posting-Host: grissom.larc.nasa.gov\n\nIn article <JWATERMA.93Apr14214858@jade.tufts.edu> jwaterma@jade.tufts.edu (Jason Waterman) writes:\n>I talked to a friend who works for Radio Shack, and he said the deal\n>with the Red Batteries were that they had too much lead in them.\n>Condidering the Red Batteries had a life cycle shorter than a mayflies, \n>I think the EPA was worried about all those batteries being dumped out.\n\nPardon me, but why would carbon-zinc cells have any lead in them at all.\n--scott\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1595, "properties": {"category": "rec.sport.hockey", "text": "From: steveg@cadkey.com (Steve Gallichio)\nSubject: Re: NHL team in Milwaukee\nOrganization: Cadkey, Inc.\nLines: 38\nNNTP-Posting-Host: access.digex.net\n\n\n\n\nCharlie Betz (cbetz@romulus.cray.com) writes:\n> After reading some of the reports of possible NHL moves to Milwaukee or that\n> Milwaukee should have an NHL team, I thought I'd pass along a story I heard\n> recently.  This is second hand, so I don't know how true it is, but I have\n> no reason to doubt it either.\n> \n> Bradley Center in Milwaukee is home to the Milwaukee Admirals minor leauge\n> hockey team.  The owner of the Admirals (sorry, I can't remember his name)\n> either owns or at least shelled out the majority of the funds to build the\n> Bradley Center.\n\nLloyd Pettit.\n\n> \n> Supposedly he was approached by the NHL about an expansion franchise, but \n> turned it down because he thought the franchise fee of $50 million was too\n> high.\n> \n> Like I said, I don't know whether this story is true or just a rumor, but if\n> it's true, don't look for an NHL team in Milwaukee anytime soon.  The Admirals\n> aren't going to be forced out of the building and you won't see an NHL club\n> and a minor league club in the same building, especially since the NBA's\n> Milwaukee Bucks play there as well.\n\nYes, it is true that he refused to buy a franchise from the NHL for $50M; but\nat the time the reason was that the established market for teams was much \nless than that. He felt that no one would pay $50M for an expansion team, and\nthat he would simply wait to buy an existing franchise for less than that. But\nthe market fooled him, and 5 teams have been created for $50M apiece in the\nlast three years, and even the existing teams can't be moved for less than \n$50M and I doubt that he could get one for that little.\n\nPettit gambled and lost. Now he'll have to pay more.\n\n-SG\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1596, "properties": {"category": "sci.med", "text": "Subject: Broken rib\nFrom: jc@oneb.almanac.bc.ca\nOrganization: The Old Frog's Almanac, Nanaimo, B.C.\nKeywords: advice needed\nSummary: long term problems?\nLines: 17\n\nHello,  I am not sure if this is the right conference to ask this\nquestion, however, Here I go..  I am a commercial fisherman and I \nfell about 3 weeks ago down into the hold of the boat and broke or\ncracked a rib and wrenched and bruised my back and left arm.\n  My question,  I have been to a doctor and was told that it was \nbest to do nothing and it would heal up with no long term effect, and \nindeed I am about 60 % better, however, the work I do is very \nhard and I am still not able to go back to work.  The thing that worries me\nis the movement or \"clunking\" I feel and hear back there when I move \ncertain ways...  I heard some one talking about the rib they broke \nyears ago and that it still bothers them.\u00ff.  any opinions?\nthanx and cheers\n\n           jc@oneb.almanac.bc.ca (John Cross)\n     The Old Frog's Almanac  (Home of The Almanac UNIX Users Group)    \n(604) 245-3205 (v32)    <Public Access UseNet>    (604) 245-4366 (2400x4)\n        Vancouver Island, British Columbia    Waffle XENIX 1.64  \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1597, "properties": {"category": "soc.religion.christian", "text": "From: fraseraj@dcs.glasgow.ac.uk (Andrew J Fraser)\nSubject: Religious wars\nOrganization: Glasgow University Computing Science Dept.\nLines: 33\n\nI don't know if this is the sort of thing you guys like\nto discuss.  I guess it falls into the area of apologetics.\n\nThis is a question that seems to pop up now and again in\nconversations with non-christians.  It usually appears in\nthe following sort of unqualified statement:\n\"Well you know that religion has caused more wars than\nanything else\"\nIt bothers me that I cannot seem to find a satisfactory\nresponse to this. After all if our religion is all about\npeace and love why have there been so many religious wars?\n  Personally I am of the view that religion has often been\nused as an excuse to instigate wars often to disguise\nnational ambitions but I would love to hear what anyone\nelse has to say about this subject.\n  Thanks in advance\n  Andrew J Fraser\n\n(If we're thinking in terms of history, the Crusades,\nNorthern Ireland, Yugoslavia(?) come immediately to mind)\n\nnorthern Ireland, Yugoslavia (? \n  \n-- \n=========================================================================\n||     Name: Andrew James Fraser  E-mail: fraseraj@dcs.gla.ac.uk       ||\n||     ESE-3H student, University of Glasgow.\t\t\t       ||\n||     Standard disclaimers...                                         ||\n\n[I'm beginning to suspect that the natural condition of humans is\nconflict.  Perhaps we should not ask whether a religion or philosophy\nhas been involved in any wars -- since they all have -- but whether\nit has stopped any.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1598, "properties": {"category": "soc.religion.christian", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Re: Christians that are not church members\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 69\n\nIn article gchin@ssf.Eng.Sun.COM writes:\n\n>Over the years, I have met Christians who are not associated with\n>any local church and are not members of any local church. This is\n>an issue that may be very personal, but is important.  What does\n>the Bible say about this and how can we encourage our friends with\n>regard to this issue?\n\nThis brings up an interesting subject that has not been discussed much,\nand probably has not been studied much.\n\nAs some of you may be aware, I've posted a lot of articles lately on\npersonality typing (of which the MBTI is a test vehicle).  To come up\nto speed, just read 'alt.psychology.personality' and/or ask for by\npersonality type summary file.\n\nOne observation is that people have significantly different personalities\n(no question on this) which seem to be essentially in-born.  With respect\nto church attendance and participation, some people thrive on this, while\nother people have real difficulty with this because they prefer a more\nsolitary and contemplative lifestyle - that is, they are de-energized if\nconfronted with excessive closeness to outside activities and lots of\npeople.  Of course this is measured by extroversion/introversion.\n\nMy impression is that many churches are totally blind to this fact, and\ncreate environments that 'scare away' many who are naturally introverted\n(there are many introverted characters in the Bible, btw).  I know, I am\nquite introverted in preference, and find the 'pressure' by many churches\nto participate, to meet together in large groups, etc., to be very\nuncomfortable.  Knowing what I know now, these churches have been overly\ninfluenced by highly extroverted people who thrive on this sort of thing.\n(BTW, there's nothing wrong with either extroversion or introversion, both\npreferences have their place in the Body).\n\nMaybe I should define extrovert/introvert more carefully since these words\nare usually not used correctly in our culture.  The extrovert/introvert\nscale is a measure of how a person is energized.  The following is\nexcerpted from my summary:\n\n1.  Energizing - How a person is energized:\n\n        Extroversion (E)- Preference for drawing energy from the outside\n                          world of people, activities or things.\n\n        Introversion (I)- Preference for drawing energy from one's internal\n                          world of ideas, emotions, or impressions.\n\n\nHopefully this will elicit further discussion as to how churches can\nstructure themselves to meet the real needs of the people who comprise\nthe Body of Christ, instead of trying to change people's personalities\nto fit them into a particular framework.  I'm sure there are other aspects\nof how churches have not properly understood personality variances among\ntheir members to the detriment of all.\n\nJon Noring\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1599, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Going permanent no-mail\nOrganization: Indiana University\nLines: 8\n\nWell, it's that time of year again here at IU:  graduation.\nUnfortunately, this means that I am out of here, more than likely for\ngood.  I cannot say if I'll be in here under another username or not, or\neven if I'll ever get back in here at all.  I am leaving this part of my\nministry to another brother, John Right.  So, have fun and remember that\nflaming can be considered slander.\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1600, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nOrganization: The Department of Redundancy Department\nLines: 47\n\n\n\nIt's all my fault. \nI am in violation of one of my own rules:\n\"Avoid FollowingUp to a Barf posting.\"\n\n\n\nIn article <1r64pb$nkk@genesis.MCS.COM> arf@genesis.MCS.COM (Jack Schmidling) writes:\n>In article <C5ut1s.3xA@bony1.bony.com> jake@bony1.bony.com (Jake Livni) writes:\n>>through private contributions on Federal land\".  Your hate-mongering\n>>article is devoid of current and historical fact, intellectual content\n>>and social value.  Down the toilet it goes.....\n\n>And we all know what an unbiased source the NYT is when it comes to things\n>concerning Israel.\n\nThose damned, spiking Israelists, right, Barfling?\n\n>Neither the Times nor the trained seals who have responded thus far seem to\n\n\"Trained Seals\"?  You mean the ones that flap their flippers making\n\"Arf, Arf!  Arf, Arf!\" sounds?\n\n>recognize the statement that these \"private funds\" were all tax exmpt.  In\n>otherwords, American taxpayers put up at least 30% of the money.  And\n>finalyy, how does \"Federal land\" mitigate the offensiveness of this alien\n>monument dedicated to perpetuating pitty and the continual flow of tax money\n>to a foreign entity?\n\nIn your own diseased mind, you now seem to believe that tax exemption\nis equivalent to government funding.  Holy Shit, Batman!  The US\ngovernment is now one of the major supporters of the Catholic Church\n--  in violation of the rules of separation of Church and State! \n\n>That \"Federal land\" and tax money could have been used to commerate\n>Americans or better yet, to house homeless Americans.\n\nQuick, Bill!  Commandeer all the churches and give them to the People!\nOr does your anti-logic only apply to the mosques belonging to what\nyou have described as \"Ragheads\" or perhaps the synagogues of those\nyou have characterized as \"Hymies\"?\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1601, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: The Escrow Database.\nOrganization: Partnership for an America Free Drug\nLines: 77\n\nHere is a disturbing thought.\n\nNow, we no longer live in the days of big filing cabinets. We live in\nthe electronic age. I asked myself, how big could the escrow database\nget? How hard might it be to steal the whole thing, particularly were\nI an NSA official operating with the tacit permission of the escrow\nhouses? (We can pretend that such will not happen, but thats naive.)\n\nWell, lets see. Ten bytes of each escrow half. Lets asume ten bytes of\nserial number -- in fact, I believe the serial number is smaller, but\nthis is an order of magnitude calculation. We assume 250*10^6 as the\npopulation, and that each person has a key. I get five gigabytes for\neach of the two escrow databases. Fits conveniently on a single very\nvaluable Exabyte tape. This can only get easier with time, but who\ncares -- I can already hold all the clipper keys in the country in my\npocket on two 8mm tapes.\n\nAdmittely, they will think of safeguards. They won't put the whole\ndatabase on one disk, prehaps. Maybe they will throw stumbling blocks\nin the way. This changes nothing -- they keys will be needed every day\nby hundreds if not thousands of law enforcement types, so convenience\nwill dictate that the system permit quick electronic retrieval. At\nsome point, with or without collusion by the agencies, those exabyte\ntapes are going to get cut. Dorothy Denning and David Sternlight will\ndoubtless claim this can't happen -- but we know that \"can't\" is a\nprayer, not a word that in this instance connotes realism.\n\nWith two exabyte tapes in your pocket, you would hold the keys for\nevery person's conversations in the country in your hands. Yeah, you\nneed the \"master key\" two -- but thats just ten bytes of information\nthat have to be stored an awful lot of places.\n\nCome to think of it, even if the NSA getting a copy of the database\nisn't a threat to you because unlike me you have no contraversial\npolitical views, consider foreign intelligence services. You know, the\nones that David Sternlight wants to protect us from because of the\nevil industrial espionage that they do. The French apparently do have\na big spying operation in friendly countries to get industrial\nsecrets, so he isn't being completely irrational here (although why\nour companies couldn't use cryptosystems without back doors is left\nunexplained by those that point out this threat.) \n\nPresumably, foreign intelligence services can get moles into the NSA\nand other agencies. We have proof by example of this: its happened\nmany times. Presumably, someday they will get their hands on some\nfraction of the keys. You can't avoid that sort of thing.\n\nDon't pretend that no one unauthorized will ever get their hands on\nthe escrow databases.\n\nWe crypto types are all taught something very important at the\nbeginning of intro to cryptography -- security must depend on the\neasily changed key that you pick to run your system, and not on a\nsecret. The escrow databases aren't the sorts of secrets that our\nteachers told us about, but they are the sort of big secrets they\nwould lump into this category. Imagine trying to replace 100 million\nClipper chips.\n\nI cannot believe that the NSA or whomever it is thats doing this\ndoesn't realize all this already. They are too smart. There are too\nmany of them who have made their bones in the real world. I suspect\nthat they know precisely what they are doing -- and that what they are\ndoing is giving us the appearance of safety so that they can continue\nto surveil in spite of the growth of strong cryptography. I suspect\nthat they realize that they can't put things off forever, but they can\ntry to delay things as long as possible.\n\nWho knows. Maybe even some of the higher ups, the inevitable\nbureaucratic types that rise in any organization, really do believe\nthat this scheme might give people some security, even as their\nsubordinates in Fort Meade wring their hands over the foolishness of\nit all.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1602, "properties": {"category": "rec.sport.hockey", "text": "From: \"William K. Willis\" <ww1a+@andrew.cmu.edu>\nSubject: LET'S GO BUFFALO!\nOrganization: Administrative Computing & Info Services, Carnegie Mellon, Pittsburgh, PA\nLines: 3\nNNTP-Posting-Host: po2.andrew.cmu.edu\n\n\n     You know, I never really appreciated them before!\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1603, "properties": {"category": "rec.sport.baseball", "text": "From: 1605112EC400@sscl.uwo.ca\nSubject: jays game\nOrganization: Social Science Computing Laboratory\nKeywords: score?\nNntp-Posting-Host: conslt.sscl.uwo.ca\nLines: 6\n\n\nanyone know the outcome of tonight's jays game?\n-home runs?\n-winning pitcher?\n\n\t\teco gods at U.W.O\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1604, "properties": {"category": "comp.graphics", "text": "From: un034214@wvnvms.wvnet.edu\nSubject: M-MOTION VIDEO CARD: YUV to RGB ?\nOrganization: West Virginia Network for Educational Telecomputing\nLines: 21\n\nI am trying to convert an m-motion (IBM) video file format YUV to RGB \ndata...\n\nTHE Y portion is a byte from 0-255\nTHE V is a byte -127-127\nTHe color is U and V\nand the intensity is Y\n\nDOes anyone have any ideas for algorhtyms or programs ?\n\nCan someone tell me where to get info on the U and V of a television signal ?\n\nIF you need more info reply at the e-mail address...\nBasically what I am doing is converting a digital NTSC format to RGB (VGA)\nfor displaying captured video pictures.\n\nThanks.\n\n\nTHE U is a byte -127-127\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1605, "properties": {"category": "talk.religion.misc", "text": "From: m23364@mwunix.mitre.org (James Meritt)\nSubject: See? ( was Re: Apology to Jim Meritt (Was: Silence is concurance)\nNntp-Posting-Host: mwunix.mitre.org\nOrganization: MITRE Corporation, McLean VA\nDistribution: usa\nLines: 45\n\nIn article <9473@blue.cis.pitt.edu> joslin@pogo.isp.pitt.edu (David Joslin) writes:\n}m23364@mwunix.mitre.org (James Meritt) writes:\n}>}So stop dodging the question.  What is hypocritical about my\n}>}criticizing bad arguments, given that I do this both when I agree\n}>}with the conclusion and when I disagree with the conclusion?  \n}>\n}>You are the one who has claimed to possess the fruits of precognition,\n}>telepathy, and telempathy.  Divine it yourself.\n}\n}Another dodge.  Oh well.  I'm no match for your amazing repertoire\n}of red herrings and smoke screens.  \n}\n}You asked for an apology.  I'm not going to apologize for pointing out\n}that your straw-man argument was a straw-man argument.  Nor for saying\n}that your list of \"bible contradictions\" shows such low standards of\n}scholarship that it should be an embarrassment to anti-inerrantists,\n}just as Josh McDowell should be an embarrassment to the fundies.  Nor\n}for objecting various times to your taking quotes out of context.  Nor\n}for pointing out that \"they do it too\" is not an excuse. Nor for calling\n}your red herrings and smoke screens what they are.\n\nHow about the following inaccurate, unsubstantiated accusations:\nIn 8257@blue.cis.pitt.edu\n>Jim has been threatening\n\t- but no \"threat\" produced \n>once he realized that\n\t- display of telepathy\n>threatening to quote me\n\t- in spite of no \"threat\" produced, nor forecast ever happening (precognition?)\n>responding Jim's threat to quote me\n\t- in spite of claimed threat never being given\n>Jim, preparing to...\n\t- in spite of it never happening.  telepathy or precognition?\n>Jim again, still mystified\n\t- unsubstantiated and untrue.  more telepathy?  Or maybe telempathy?\n>Jim, still scandalized\n\t- unsubstantiated again.  Seems to be a habit...\n\nHaving more trouble with reality, it appears.  Why get bothered with the facts when\nyou appear to have the products of paranatural divination methods?\n\n\n*yawn*\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1606, "properties": {"category": "misc.forsale", "text": "From: sgc1@cbnewsm.cb.att.com (scott.g.crawford)\nSubject: Selling Riding Lawn Mower\nOrganization: AT&T\nDistribution: nj\nSummary: Riding Lawn Mower for Sale\nLines: 26\n\n\n\n\t1987 ARIENS RIDING LAWN MOWER\n\n\tThis mower is in perfect condition and\n\tcontains the following features:\n\n\t- Electric Start\n\t- 26 inch cut\n\t- Double Rear Baggers\n\t- New Battery\n\t- New Engine (one year old)\n\t- Inflatable Tires (gives nice ride)\n\t- Cushioned Seat (gives nice ride)\n\n\tI am moving into a house that has a\n\tsmall area of grass to cut and does not\n\trequire such large mower. The engine was\n\treplaced, not rebuilt, last year due to\n\tsome faulty work done by a lawn mower\n\trepair shop.\n\n\tPRICE:  $600.00\n\tPHONE: 908-582-7028 (Leave Message)\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1607, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ingemar@isy.liu.se (Ingemar Ragnemalm)\nSubject: Re: Stereo sound problem (?) on mac games\nOrganization: Dept of EE, University of Linkoping\nLines: 45\n\nSteve Bollinger <buzz@apple.com> writes:\n\n\n>Enter game developers. The sound driver and current sound manager are\n>inconveniently lame for making games.\n\nThe Sound Driver is pretty ok, since it's fast. Sound Manager used by the\nbook is *useless*. Disposing of sound channels as soon as sound has completed\nis out of the question for games with smooth animation. (It's too slow.)\n\nThe Sound Driver is so much snappier than Sound Manager. Unfortunately,\nSystem 7 supports it poorly, making programs crash occasionally.\n\n>The more of the story is to developers: DON'T CHEAT!\n>Really, I am absolutely, positively not allowed to do what I am about to\n>do,\n>but I'm going say it anyway.\n>Stop cheating on sound!\n>Really soon, you will be sorry, as even those without external speakers\n>will be disappointed with your sound on future hardware. The grace period\n>is about to end.\n>The Sound Manager is understandable now, and works pretty well and will\n>work\n>even better soon, so use it.\n\nWell, I want my code to work on old systems too. I don't know about sys 7.1,\nbut at least on 6.0.7, there are bugs in the Sound Manager that causes\nchannels to hang (with no error message). This happends when I keep a\nchannel open for long periods - necessary for performance - and play many\nsounds, stopping sounds halfway. Callbacks seems not to be reliable.\nThen only way I can safely tell if a sound has stopped playing is to\ninspect private variables in the channel (QHead, I think it was), and the\nonly way I have found to tell if a channel is hung is to inspect an\n*undocumented* flag and modify it.\n\nAm I happy with this? Nope. I consider writing to SoundBase simply to get\nrid of the bugs.\n\nAny better suggestions? (Silent games is not among the acceptab|e solutions.)\n\n-- \nIngemar Ragnemalm\nDept. of Electrical Engineering\t     ...!uunet!mcvax!enea!rainier!ingemar\n                  ..\nUniversity of Linkoping, Sweden\t     ingemar@isy.liu.se\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1608, "properties": {"category": "rec.sport.baseball", "text": "Subject: Giants Win The Pennant!!!!\nFrom: mrosales@koko.csustan.edu (Maria Rosales)\nDistribution: usa\nOrganization: CSU Stanislaus\nLines: 4\n\nGiants Win the Pennant!!  Giants Win the Pennant !! Gi... OOOPS\nI guess I'm a little early here...\nSee you in October...\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1609, "properties": {"category": "talk.politics.mideast", "text": "From: nstramer@supergas.dazixco.ingr.com (Naftaly Stramer)\nSubject: Re: rejoinder. Questions to Israelis\nNntp-Posting-Host: supergas\nReply-To: nstramer@dazixco.ingr.com\nOrganization: Intergraph Electronics\nLines: 25\n\n\nIn article <1483500352@igc.apc.org>, Center for Policy Research <cpr@igc.apc.org> writes:\n>\n>From: Center for Policy Research <cpr>\n>Subject: rejoinder. Questions to Israelis\n>\n>\n>To:  shaig@Think.COM\n>\n>Subject: Ten questions to Israelis\n>\n>Dear Shai,\n>\n>Your answers to my questions are unsatisfactory.\n\n\n\nSo why don't ypu sue him.\n\n----\n\nNaftaly Stramer \t\t\t | Intergraph Electronics\nInternet: nstramer@dazixco.ingr.com      | 6101 Lookout Road, Suite A    \nVoice: (303)581-2370  FAX: (303)581-9972 | Boulder, CO 80301\n\"Quality is everybody's job, and it's everybody's job to watch all that they can.\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1610, "properties": {"category": "talk.politics.mideast", "text": "From: osinski@chtm.eece.unm.edu (Marek Osinski)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nOrganization: University of New Mexico, Albuquerque\nLines: 12\nDistribution: world\nNNTP-Posting-Host: chtm.eece.unm.edu\n\nIn article <1993Apr15.174657.6176@news.uiowa.edu> mau@herky.cs.uiowa.edu (Mau Napoleon) writes:\n\n>Compromise on what, the invasion of Cyprus, the involment of Turkey in\n>Greek politics, the refusal of Turkey to accept 12 miles of territorial\n>waters as stated by international law, the properties of the Greeks of \n>Konstantinople, the ownership of the islands in the Greek lake,sorry, Aegean.\n\nWell, it did not take long to see how consequent some Greeks are in\nrequesting that Thessaloniki are not called Solun by Bulgarian netters. \nSo, Napoleon, why do you write about Konstantinople and not Istanbul?\n\nMarek Osinski\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1611, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: phantom@diku.dk (Haktan Bulut)\nSubject: Is 980-1MB/sec. HD transfer slow for 486DX-50 EISA with UltraStor24F\nKeywords: SCSI\nOrganization: Department of Computer Science, U of Copenhagen\nLines: 27\n\nHi. I recently switched my old Amiga 500 with a 486DX-50. My computer\nconfiguration is :\n\n486DX-50 Mhz. 8/256 kB EISA (Micronics Motherboard ASIC EISA 50Mhz)\n16MB Ram\nST3283N 248 MB Harddisk, SCSI\nUltraStor24F EISA Cache Controller\n\nWhen I use Norton6.0 Harddisk benchmark, I get a Harddisk data transfer\nabout 980 kb/sec. and sometimes 1MB/sec. Is that good ? I thought\nthat with EISA I could get about 2MB/sec. \nSomewhere in the manual for my harddisk I have read, that some host \nadapters need to perform a low-level format to optimize the harddisk \nperformance in that system, do I need that ?\nA guy I know, gets a HD transfer about 1.2MB/sec, and he has an ST3283A and\na ISA 486DX-50, how can a ISA with the same system be faster ?\n\nIs there anything that I can do to get a speedier harddisk ?\n\n\n                                        Thanks.\n\nphantom@diku.dk   (e-mail is preffered)\n\n\n\nWorking on a sign...... \"Are we live or on tape ??\"\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1612, "properties": {"category": "sci.electronics", "text": "From: advax@reg.triumf.ca (A.Daviel)\nSubject: Re: Radar detector DETECTORS?\nOrganization: TRIUMF: Tri-University Meson Facility\nLines: 24\nDistribution: world\nNNTP-Posting-Host: reg.triumf.ca\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1pslckINNmn0@matt.ksu.ksu.edu>, nhowland@matt.ksu.ksu.edu (Neal Patrick Howland) writes...\n> \n>From what I understand about radar dectectors all they are is a passive\n>device much like the radio in your car.  They work as an antenna picking\n>up that radar signals that the radar gun sends out.  Therefore there would\n>be no way of detecting a radar detector any more than there would be of\n>detecting whether some one had a radio in their car.  \n> \nFrom my rather rusty knowledge of radio, most radio receivers use a superhet \ncircuit, so that the incoming signal is mixed with a local oscillator, giving \na fixed intermediate frequency (IF) that is more easily amplified. The\ndetector detectors work by picking up IF re-radiated from your radar \ndetector. In Britain, where one has/used to pay for a TV licence, there \nare/were TV detector vans prowling the streets, looking for people who hadn't \npaid their licence fee. They had a couple of long solenoid antennae on the\nroof, and I believe could triangulate an operating TV from the IF. \n\nI wonder how much of the IF is radiated back from the detector antenna, and \nhow much from the rest of the module. It might be worth putting the detector \nin a proper RF shielded enclosure.\n\n--\n Andrew Daviel, Vancouver, Canada <advax@triumf.ca>\n  finger advax@reg.triumf.ca for PGP key\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1613, "properties": {"category": "sci.med", "text": "From: km@cs.pitt.edu (Ken Mitchum)\nSubject: Re: Update (Help!) [was \"What is This [Is it Lyme's?]\"]\nArticle-I.D.: pitt.19421\nReply-To: km@cs.pitt.edu (Ken Mitchum)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 15\n\nIn article <1993Mar24.182145.11004@equator.com> jod@equator.com (John Setel O'Donnell) writes:\n>IMHO, you have Lyme disease.  I told you this in private email and predicted\n>that you might next start having the migrating pains and further joint\n\nIMHO, the original poster has no business soliciting diagnoses off the net,\nnor does Dr./Mr.  O'Donnell have any business supplying same. This is one\nmajor reason real physicians avoid this newsgroup like the plague. It is\nalso another example of the double standard: if I as a physician offered\nto diagnose and treat on the net, I can be sued. But people without\nqualifications are free to do whatever they want and disclaim it all with\n\"I'm not a doctor.\"\n\nGet and keep this crap off the net. Period.\n\n-km\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1614, "properties": {"category": "talk.politics.guns", "text": "From: random@cbnewse.cb.att.com (David L. Pope)\nSubject: Riddle me something else.\nOrganization: AT&T\nDistribution: usa\nLines: 11\n\n> On the other hand, I wonder if,\n> with a face full of \"massive amounts of CS,\" *I* would be able to escape\n> a burning tinder-box like that ranch house assuming my best efforts.\n\nWhat ever happened to the 'Adobe Fortress' I kept hearing about? I\nthought this was a 'Cult Stronghold'! If the kgbatf knew it was a\ntinderbox, why didn't they just have all the talking heads line up\nand start huffin' and puffin?\n\n\tRandom\n\t\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1615, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: DSI/USCRPAC\nDistribution: na\nLines: 26\n\nIn article <ELEE9SF.93Apr21095141@menudo.menudo.UH.EDU>\nelee9sf@menudo.menudo.UH.EDU (Karl Barrus) writes:\n\n>\n>Would you trust a black-box from the NSA versus an \"open system\" from\n>elsewhere?\n\nAbsolutely, if I were assured by someone I trusted that the black box was\nmore secure. I have nothing to conceal from the government, but I would like\nto be sure that any Russian, Japanese, French, or other competitors for my\nservices can't read my traffic. I'd like to be sure that competitive bid\ninformation was safe from commercial competitors and foreign governments\nwhich would aid them.\n\nI believe the NSA has identical motivations with respect to my activities.\nThe President and many other senior government officials have made it very\nclear that they share these motivations. Thus I'd trust them on the\n\"coincidence of interests\" argument as well as on a basic trust in their\nprofessionalism and a high confidence in their skills.\n\nDavid\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1616, "properties": {"category": "sci.electronics", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: TV RECEPTION:  HEELLLPPP!!!\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 14\n\nAt 50 miles, a conventional set of TV antennas on a pole (one aimed\nat each transmitter location) should work well.\n\n\"Rabbit ears\" inside the house are probably not adequate.\n\nGadgets to plug into your house wiring are even worse.\nAt VHF, you don't want a _big_ antenna, you want a _resonant_\nantenna.  \n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.076+0000", "event": "documents", "entityId": 1617, "properties": {"category": "talk.politics.guns", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: Impeach Clinton, Reno\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 40\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, gs26@prism.gatech.EDU (Glenn R. Stone) says:\n\n>\n>Fact:  Both Janet Reno and Bill Clinton have admitted responsibility,\n>       even grief, over the deaths in Waco.\n>\n>Fact:  Regardless of who started the fire, there are more than enough\n>       things on tape to make a civil rights case against these two.\n>       Cruel and unusual punishment (dying tortured rabbits on tape?)\n>       come to mind.  \n>\n>Fact:  It is a federal felony to infringe civil rights under color of\n>       law; where death is involved, this offense carries a penalty\n>       of life in prison.\n>\n>Fact:  Impeachment is allowable for \"high crimes and misdemeanors.\"\n>       Anything that's a federal felony should qualify.\n>\n>Conclusion:  We have NO CHOICE, if we are an honest people, but to \n>             impeach Mr. Clinton, and remove Reno from office.\n\n\n     I HEARTILY agree.  Now that the BATF warrant has been \n     unsealed, it is CLEAR that Clinton and Reno supported an\n     ILLEGAL raid.  Did they not KNOW this?\n\n\n\n     NO authority for a 'no-knock\" raid\n     NO authority to use helicopters.\n     NO authority to search for a \"drug lab\"\n\n    And, apparently, not even any authority to search for \"automatic\n    weapons\".\n\n     51 days of GOVERNMENT LIES.\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1618, "properties": {"category": "sci.med", "text": "From: rousseaua@immunex.com\nSubject: Re: Lactose intolerance\nOrganization: Immunex Corporation, Seattle, WA\nLines: 8\n\nIn article <ng4.733990422@husc.harvard.edu>, ng4@husc11.harvard.edu (Ho Leung Ng) writes:\n> \n>    When I was a kid in primary school, I used to drink tons of milk without\n> any problems.  However, nowadays, I can hardly drink any at all without\n> experiencing some discomfort.  What could be responsible for the change?\n> \n> Ho Leung Ng\n> ng4@husc.harvard.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1619, "properties": {"category": "misc.forsale", "text": "From: vsloutsk@magnus.acs.ohio-state.edu (Vladimir Sloutsky)\nSubject: Apartment for Rent in Russia\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 14\n\n                Apartment for rent in downtown Moscow!!!\n\n2- room furnished apartment in a very nice location. 5 minutes walk to\nBelorusskaya subway station. Walking distance to Kremlin, major shopping\ncenters, theaters, restaurants, and government buildings.\n\nAvailable in early June.\n\nPlease, call:\n\n(614)-459-4256\n\nor send E-mail:\nvsloutsk@magnus.acs.ohio-state.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1620, "properties": {"category": "comp.graphics", "text": "From: ezzie@lucs2.lancs.ac.uk (One of those daze...)\nSubject: Borland turbo C libraries for S3 graphics card\nOrganization: Lancaster University Computer Society\nLines: 5\n\nI've recently got hold of a PC with an S3 card in it, and I'd like to do some\nC programming with it, are there any libraries out there that will let me\naccess the high resolution modes available via Borland Turbo C?\n\n\tAndy\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1621, "properties": {"category": "sci.electronics", "text": "From: ketil@edb.tih.no (Ketil Albertsen,TIH)\nSubject: Re: How to the disks copy protected.\nOrganization: T I H / T I S I P \nPosting-Front-End: Winix Conference v 92.05.15  1.20 (running under MS-Windows)\nLines: 20\n\nIn article <1993Apr20.230749.12821@reed.edu>, mblock@reed.edu (Matt Block) writes:\n\n>\tI guess what I am saying is that your question is difficult, if not\n>impossible, to answer.  What exactly do you want to know?  Do you need a good\n>one for a project you are working on?  How secure must it be?  Are you trying\n>to crack one that someone else has used?  I can probably make suggestions,\n>assuming the activity is strictly legal.  (In general, it is a BAD idea,\n>legally, to tamper with copy protection.  It can also lead to corruption of\n>files which you necessarily do not have back ups of (being as they are copy\n>protected,) which can be devestating.)  Do you have absolutely no ideas for\n>practical applications, and are merely curious?\n>\tPlease clear up those questions, and I'll try to help as much as I\n>can.\n\nMay we interpret this as an offer to volunteer as editor for a\n\"Copy protection FAQ\" ? I am quite sure that I am not alone welcoming such\nan initiative! *I* will volunteer to ask some of the questions, if you will\nprovide the answers :-)\n\nKetil Albertsen\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1622, "properties": {"category": "talk.politics.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: The Manitoban Candidate\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 12\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, smith@phoneme.harvard.edu (Steven Smith) says:\n\n>With yet another tax being floated by the Clinton administration to\n>pay for new ``free'' social programs, I've really begun to suspect\n>that the Canadians, long resentful of their place in the American\n>shadow, brainwashed an American draft dodger who fled to Canada some\n\n\n      Hey, he HAS been talking with Mulroney a lot, huh?\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1623, "properties": {"category": "sci.space", "text": "From: wats@scicom.AlphaCDC.COM (Bruce Watson)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nOrganization: Alpha Science Computer Network, Denver, Co.\nLines: 5\n\nThe Apollo program cost something like $25 billion at a time when\nthe value of a dollar was worth more than it is now. No one would \ntake the offer.\n-- \nBruce Watson (wats@scicom.alphaCDC.COM) Bulletin 629-49 Item 6700 Extract 75,131\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1624, "properties": {"category": "comp.windows.x", "text": "From: andreas@appel012.hydromech.uni-hannover.de (Andreas Dunker)\nSubject: mail\nOrganization: University of Hannover, FRG\nX-Newsreader: Tin 1.1 PL4\nLines: 12\n\nHello networld,\n\nI'm looking for an X mailreader. Is there a Xelm?\n\nAndreas\n\n\n--\n_______________________________________________________________________________\nAndreas Dunker\nandreas@appel012.hydromech.uni-hannover.de   We all live in a yellow subroutine\nandreas@veeble.han.de                        The Beatles\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1625, "properties": {"category": "rec.sport.baseball", "text": "From: dwarner@journalism.indiana.edu (David J.)\nSubject: Re: Bonilla\nNntp-Posting-Host: clove.journalism.indiana.edu\nReply-To: dwarner@journalism.indiana.edu\nOrganization: Indiana University\nDistribution: usa\nLines: 11\n\nJiann-ming Su writes\n> Bobby Bonilla supposedly use the word 'faggot' when he got mad at that author\n> in the clubhouse.  Should he be banned from baseball for a year like Schott?\n\nIt wouldn't bother me...\n\n--\nDavid J.(dwarner@journalism.indiana.edu)*****Blue Riddle Productions 1993\n*-------------------------------It's on.--------------------------------*\n***\"THE RAP IS AN ART EP\" is coming out on tape -- this time for real.***\n*------------------------E-mail me for the 411.-------------------------*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1626, "properties": {"category": "rec.sport.baseball", "text": "From: steph@pegasus.cs.uiuc.edu (Dale Stephenson)\nSubject: Hits Stolen -- Second Base 1992\nSummary: Stolen Hits for all second basemen\nKeywords: second defense\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 117\n\nDisclaimer -- This is for fun.\n\nIn my computerized baseball game, I keep track of a category called\n\"stolen hits\", defined as a play made that \"an average fielder would not\nmake with average effort.\"  Using the 1992 Defensive Averages posted\nby Sherri Nichols (Thanks Sherri!), I've figured out some defensive stats\nfor the second basemen. Hits Stolen have been redefined as \"Plays Kurt\nStillwell would not have made.\"\n\nOK, I realize that's unfair.  Kurt's probably the victim of pitching staff,\nfluke shots, and a monster park factor.  But let's put it this way:  If we\nreplaced every second baseman in the NL with someone with Kurt's 57.6% out\nmaking ability, how many extra hits would go by?\n\nTo try and correlate it to reality a little more, I've calculated Net\nHits Stolen, based on the number of outs made compared to what a league\naverage fielder would make.  By the same method I've calculated Net Double\nPlays, and Net Extra Bases (doubles and triples let by).\n\nFinally, I throw all this into a a formula I call Defensive Contribution, or\nDCON :->.  Basically, it represents the defensive contribution of a player.\nI add this number to OPS to get DOPS (Defense + Onbase Plus Slug), which\nshould represent the player's total contribution to the team.  So don't\ntake it too seriously.  The formula for DCON appears at the end of this\narticle.\n\nThe short version -- definition of terms\nHS -- Hits Stolen -- Extra outs compared to Kurt Stillwell\nNHS -- Net Hits Stolen -- Extra outs compared to average fielder\nNDP -- Net Double Plays -- Extra double plays turned compared to avg fielder\nNEB -- Net Extra Bases --  Extra bases prevented compared to avg. fielder\nDCON -- Defensive Contribution -- bases and hits prevented, as a rate.\nDOPS -- DCON + OPS -- quick & dirty measure of player's total contribution.\n\nNational League\n\nname            HS   NHS   NDP   NEB   DCON    DOPS\nAlicea, L.      50    21    2    -1    .160    .865\nSandberg, R.   108    42    1     1    .134   1.015\nThompson, R.    65    20    5    -1    .104    .852\nLind, J.        66     8   -2     1    .027    .571\nDoran, B.       31    -1    4     0    .014    .705\nDeShields, D.   51     1   -2     1   -.002    .755\nHarris, L.      25    -4    0     1   -.019    .602\nLemke, M.       43    -1   -5    -5   -.038    .573\nMorandini, M.   37    -9   -6     0   -.069    .580\nRandolph, W.    13   -16    3    -1   -.088    .582\nBiggio, C.      34   -26   -4     0   -.091    .656\nStillwell, K.    0   -43   -3    -1   -.236    .336\n\nOrdered by DOPS\n\n1.015 Sandberg\n .865 Alicea\n .852 Thompson\n .755 DeShields\n .705 Doran\n .678 *NL Average*\n .656 Biggio\n .602 Harris\n .582 Randolph\n .580 Morandini\n .573 Lemke\n .571 Lind\n .336 Stillwell\n\nAmerican League\n---------------\n\nname            HS   NHS   NDP   NEB   DCON    DOPS\nFletcher, S.    59    18    5     1    .116    .811\nReed, J.        83    17    3     1    .071    .708\nRipken, B.      56     9   -1    -1    .044    .631\nBaerga, C.      67     0   10     0    .029    .838\nBlankenship, L. 34     2    2     1    .023    .757\nMiller, K.      34    -4    1    -1   -.016    .725\nAlomar, R.      62     4   -9    -2   -.020    .812\nKnoblauch, C.   50   -13    7    -3   -.024    .718\nBordick, M.     37    -4   -2    -1   -.025    .704\nKelly, P.       42    -1   -5    -1   -.039    .636\nWhitaker, L.    40    -8   -1    -2   -.041    .806\nReynolds, H.    47    -6   -5     1   -.043    .603\nSax, S.         56    -6   -9    -1   -.052    .555\nSojo, L.        28   -11   -3     0   -.075    .602\n\nOrder by DOPS\n\n.838 Baerga\n.812 Alomar\n.811 Fletcher\n.806 Whitaker\n.757 Blankenship\n.725 Miller\n.718 Knoblauch\n.708 Reed\n.704 Bordick\n.691 *AL Average*\n.636 Kelly\n.631 Ripken\n.603 Reynolds\n.602 Sojo\n.555 Sax\n\nMore discussion --\n\nDCON formula:  ((NHS + NDP)/PA) + ((NHS + NDP + NEB)/AB)\nWhy such a bizzare formula?  Basically, it's designed to be added into the\nOPS, with the idea that \"a run prevented is as important as a run scored\".\nThe extra outs are factored into OBP, while the extra bases removed are \nfactored into SLG.  That's why I used PA and AB as the divisors.\n\nFor more discussion see the post on Hits Stolen -- First Base 1992\n-- \nDale J. Stephenson |*| (steph@cs.uiuc.edu) |*| Baseball fanatic\n\n  \"It is considered good to look wise, especially when not \n   overburdened with information\" -- J. Golden Kimball\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1627, "properties": {"category": "comp.graphics", "text": "From: mtoivakk@abo.fi (Martti Toivakka PAP)\nSubject: Compiled version of VOGL-library for PC?\nKeywords: VOGL\nOrganization: Abo Akademi University\nLines: 11\n\n\nHas anybody compiled VOGL-graphics library\nfor IBM-PC? I need to call it from MS-Fortran\nbut don't have MS-C to compile the sources.\n\nThanks for any help...\n\n\nmartti toivakka\nmtoivakk@abo.fi\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1628, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 18\n\nIn article <C5Jxru.2t8@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike Cobb) writes:\n>What do you base your belief on atheism on?  Your knowledge and reasoning? \n>COuldn't that be wrong?\n>\n\n  Actually, my atheism is based on ignorance.  Ignorance of the\n  existence of any god.  Don't fall into the \"atheists don't believe\n  because of their pride\" mistake.\n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1629, "properties": {"category": "sci.crypt", "text": "From: mrr@scss3.cl.msu.edu (Mark Riordan)\nSubject: Re: Source of random bits on a Unix workstation\nOrganization: Michigan State University\nLines: 18\nNNTP-Posting-Host: scss3.cl.msu.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nBennett Todd @ Salomon Brothers Inc., NY (bet@sbi.com) wrote:\n: However, unless I\n: missed something, the only source they suggested (aside from a hardware RNG)\n: that seems available, and unguessable by an intruder, when a Unix is\n: fresh-booted, is I/O buffers related to network traffic. I believe my\n: solution basically uses that strategy, without requiring me to reach into\n: the kernel.\n\nA few more sources are statistics on your filesystems (easily\nand quickly obtained) and the output from the \"rusage\" system\ncall.  \n\nYou can also exec a finger to one or more favorite heavily-used\nsystems, though this can take several seconds.\n\ncf. the source code to RIPEM on ripem.msu.edu.\n\nMark R.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1630, "properties": {"category": "rec.autos", "text": "From: dunnjj@ucsu.Colorado.EDU (DUNN  JONATHAN JAMES)\nSubject: Re: Photo radar (was Re: rec.autos: Frequently Asked Questions)\nKeywords: Monthly Posting\nOrganization: University of Colorado, Boulder\nLines: 18\n\n>Photo radar and mailed tickets make no sense at all. Speeding is a moving \n>violation, committed by the operator, not the owner. The owner may be a \n>rental agency, a dealer, a private party, or a government agency. As long\n>as the owner has no reason to expect the operator will be driving illegally\n>or unsafely, the owner cannot be held responsible for what the operator does.\n>The car may even have been driven without the owner's knowledge or consent. \n>I can't believe a mailed ticket, where the driver is not identified, would \n>stand up in court. This is obviously a lazy, cynical, boneheaded, fascist \n>way to extort revenue, and has nothing to do with public safety.\n\n>- BK\n\nWhat do photo radar units look like?  Also, what major U.S. cities use it?\n\n>Jon Dunn<\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1631, "properties": {"category": "sci.electronics", "text": "From: keith@churchill.ColumbiaSC.NCR.COM (Keith.Boyd)\nSubject: Re: Need to find out number to a phone line\nNntp-Posting-Host: churchill.columbiasc.ncr.com\nOrganization: NCR Corp., Columbia SC\nLines: 30\n\nIn article <20756.2bd16dea@ecs.umass.edu> alee@ecs.umass.edu writes:\n>\n>Greetings!\n>      \n>        Situation:  I have a phone jack mounted on a wall.  I don't\n>                    know the number of the line.  And I don't want\n>                    to call up the operator to place a trace on it.\n>\n>        Question:   Is there a certain device out there that I can\n>                    use to find out the number to the line?\n>        Thanks for any response.\n>                                                    Al\n>\n>  \n\nDo you get a dial tone when you plug a phone into the jack??  If not,\nthen the line is possibly disconnected from the nearest telco junction\nbox. If you do get a dial tone, then surely the telco is sending a bill\nfor the line to *someplace* or *somebody*. Are you sure that what you\nare doing is on the level. Sounds to me like you are just trying to get \nat somebody's unlisted number.  Fess up.\n\nKeith\n\n\n-- \n| Keith Boyd  (NCR- MCPD Cola.) |  Nothing could be finer than huntin' and   |\n| 3325 Platt Springs Rd.        |    and fishin' in South Carolina! -Me-     | \n| West Cola., S.C. 29170 |   Go Gamecocks!   | keith.boyd@columbiasc.NCR.COM |\n| Vp: 803-791-6419 or 6455    | From uunet: uunet!ncrcom!ncrcae!clodii!keith | \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1632, "properties": {"category": "misc.forsale", "text": "From: richg@sequent.com (Richard Garrett)\nSubject: Computers for sale ( PC and amiga )\nArticle-I.D.: sequent.1993Apr21.151726.26547\nDistribution: na\nOrganization: Sequent Computer Systems, Inc.\nLines: 57\nNntp-Posting-Host: crg8.sequent.com\n\nIts time for a little house cleaning after my PC upgrade.  I have the following\nfor sale:\n\nLeading Technology PC partner (286) sytsem.  includes\n\t80286 12mhz intel cpu\n\t85Mb IDE drive (brand new - canabalized from new system)\n\t3.5 and 5.24 floppies\n\t1 Meg ram\n\tvga congroller\n\tkb\n\t5.0 dos on hard drive\nneed to get $300 for system\n\nAT style kb - $20\nLogitech serial trackman with latest drivers $45\n\nAmiga 500 with 2.0 roms installed and 1Mb video ram and 4Mb addon ram\n\t501 clone (512K ram and clock)\n\tRoctec addon disk IDE disk controller includes SCSI option\n\tQuantum 105mb SCSI drive with lots of software\n\t4mb ( 4 x 1mb simm) installed in roctec\n\tAmiga DOS 2.04\n\tICD Flicker Fixer II\nAsking $500 for  system, \n\nI will part out the amiga, make an offer!\n\namiga Software\n\tCando\t\t\t\t- $25\n\tTextcraft Plus\t\t\t- $5\n\ttetris & welltris\t\t- $5 for both\n\tSword of Sodam\t\t\t- $5\n\tQix\t\t\t\t- $5\n\tCarmen Sandiego\t\t\t- $5\n\tCrossword Construction Kit\t- $10\n\n\tCanadian Prototype Replicas\n\tCD rom Fast File System\t\t- $30\n\n\tHypermedia CD rom containing fred fish disks 1-480\n\tincludes registration card, low cost upgrades.\t$20\n\n\tAmiga hardware Reference Man\t- $5\n\tAmiga to vga monitor cable\t- $5\n\ttwo joysticks\t\t\t- $5 each\n\t\n\nPrices DO NOT include shipping.\n\nContact Rich Garrett\nEmail - richg@sequent.com\nHOME (503) 591-5466\tWORK (503) 578-3822\n-- \n             OOo O                Rich Garrett\n             O oO                 richg@sequent.com\n              o                   WORK (503) 578-3822\n       _____ o o\t\t  \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1633, "properties": {"category": "sci.electronics", "text": "From: rg@futserv.austin.ibm.com (R.G. Keen)\nSubject: EICO tube tester repairs? \nReply-To: ...futserv.austin.ibm.com!rg\nOrganization: IBM Coporation - Advanced Workstations and Systems.\nLines: 14\n\nI had the good luck to obtain an EICO dynamic conductance \ntube tester for a song. Unfortunately, I was a little out of\nkey; the only thing wrong with it was an open meter movement.\nDoes anyone know where I can find either another meter movement\nlike it, a dead-but-not-the-meter-dead unit, or schematics \nto specify the current scale of the meter movement? I can cut\nand paste a more sensitive movement in if I can find what the\nfull scale current was. Or... is EICO still contactable?\n\nThe thing is a model 666 -nope, not a joke or any sort of snide\nreference.\n\nR.G.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1634, "properties": {"category": "comp.os.ms-windows.misc", "text": "Nntp-Posting-Host: fac-csr.byu.edu\nLines: 24\nFrom: ecktons@ucs.byu.edu (Sean Eckton)\nSubject: Why is my mouse so JUMPY?  (MS MOUSE)\nOrganization: Fine Arts and Communications -- Brigham Young University\n\nI have a Microsoft Serial Mouse and am using mouse.com 8.00 (was using 8.20 \nI think, but switched to 8.00 to see if it was any better).  Vertical motion \nis nice and smooth, but horizontal motion is so bad I sometimes can't click \non something because my mouse jumps around.  I can be moving the mouse to \nthe right with relatively uniform motion and the mouse will move smoothly \nfor a bit, then jump to the right, then move smoothly for a bit then jump \nagain (maybe this time to the left about .5 inch!).  This is crazy!  I have \nnever had so much trouble with a mouse before.  Anyone have any solutions?  \n\nDoes Microsoft think they are what everyone should be? <- just venting steam!\n\n\n---\nSean Eckton\nComputer Support Representative\nCollege of Fine Arts and Communications\n\nD-406 HFAC\nBrigham Young University\nProvo, UT  84602\n(801)378-3292\n\nhfac_csr@byu.edu\necktons@ucs.byu.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1635, "properties": {"category": "soc.religion.christian", "text": "From: miner@kuhub.cc.ukans.edu\nSubject: Re: Ancient Books\nOrganization: University of Kansas Academic Computing Services\nLines: 43\n\nIn article <Apr.14.03.07.58.1993.5438@athos.rutgers.edu>, mayne@ds3.scri.fsu.edu (Bill Mayne) writes:\n> In article <Apr.13.00.09.02.1993.28445@athos.rutgers.edu> miner@kuhub.cc.ukans.edu writes:\n>>[Any former atheists converted by argument?}\n>>This is an excellent question and I'll be anxious to see if there are\n>>any such cases.  I doubt it.  In the medieval period (esp. 10th-cent.\n>>when Aquinas flourished) argument was a useful tool because everyone\n>>\"knew the rules.\"  Today, when you can't count on people knowing even\n>>the basics of logic or seeing through rhetoric, a good argument is\n>>often indistinguishable from a poor one.\n> \n> The last sentence is ironic, since so many readers of\n> soc.religion.christian seem to not be embarrassed by apologists such as\n> Josh McDowell and C.S. Lewis.\n\nI haven't followed whatever discussion there may have been on these\npeople, but I feel that C. S. Lewis is an excellent apologist and I\nsee no reason for embarrassment.  If you think that errors and flawed\narguments are a reason for dismissing a thinker, you must dismiss\nnearly every thinker from Descartes to Kant; any philosophy course\nwill introduce you to their weaknesses.  \n \n  The above also expresses a rather odd sense\n> of history. What makes you think the masses in Aquinas' day, who were\n> mostly illiterate, knew any more about rhetoric and logic than most people\n> today? If writings from the period seem elevated consider that only the\n> cream of the crop, so to speak, could read and write. If everyone in\n> the medieval period \"knew the rules\" it was a matter of uncritically\n> accepting what they were told.\n\nI said nothing about \"the masses.\"  However comparing \"the masses\" in\nour day and in Aquinas' day really *is* odd.  Read Ortega y Gasset on\nthis.\n\nI'm talking about the familiar experience of arguing all night and\nwinning on logic and evidence, only to discover your opponent to be\nunaware, even intuitively, of things like entailment (let alone\npragmatics).  (I am assuming that both parties are college graduates\nor better...)  Myself, I don't bother any more.\n\nKen\n-- \nminer@kuhub.cc.ukans.edu | Nobody can explain everything to everybody.\nopinions are my own      | G. K. Chesterton\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1636, "properties": {"category": "sci.space", "text": "From: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nSubject: Re: pushing the envelope\nArticle-I.D.: rave.1psogpINNksq\nReply-To: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nDistribution: world\nOrganization: NASA Langley Research Center, Hampton, VA  USA\nLines: 11\nNNTP-Posting-Host: tahiti.larc.nasa.gov\n\n\n> flight tests are generally carefully coreographed and just what \n> is going to be  'pushed' and how\n> far is precisely planned (despite occasional deviations from plans,\n> such as the 'early' first flight of the F-16 during its high-speed\n> taxi tests).\n\n.. and Chuck Yeager earlier flights with the X-1...\n\n\n C.O.EGALON@LARC.NASA.GOV\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1637, "properties": {"category": "comp.graphics", "text": "From: alex@talus.msk.su (Alex Kolesov)\nSubject: Help on RenderMan language wanted!\nReply-To: alex@talus.msk.su\nOrganization: unknown\nLines: 17\n\nHello everybody !\n\nIf you are using PIXAR'S RenderMan 3D scene description language for creating 3D worlds, please, help me. \n\nI'm using RenderMan library on my NeXT but there is no documentation about NeXTSTEP version of RenderMan available. I can create very complicated scenes and render them using surface shaders, \nbut I can not bring them to life by applying shadows and reflections.\n\nAs far as I understand I have to define environmental and shadows maps to produce reflections and shadows, but I do not know how to use them.\n\nAny advises or simple RIB or C examples will be appreciated.\nThanks in advance...\n\n---\nAlex Kolesov                             Moscow, Russia.\nTalus Imaging & Communications Corporation\ne-mail: <alex@talus.msk.su> \t\t(NeXT mail accepted)  \t\t\t   \n.   \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1638, "properties": {"category": "rec.autos", "text": "From: mwbg9715@uxa.cso.uiuc.edu (Mark Wayne Blunier)\nSubject: Re: 5W30, 10W40, or 20W50\nOrganization: University of Illinois at Urbana\nLines: 12\n\nzowie@daedalus.stanford.edu (Craig \"Powderkeg\" DeForest) writes:\n\n>If you're planning on making long drives, the 20W50 is probably fine\n>(esp. in the summer) in your 10W40 car.  But if you're making short drives,\n>stick to the 10W40.\n\nSeveral years ago GM was having trouble with the rings sticking on the\n5.7 diesel.  They traced a cause to the use of 10W-40 oil.  They would\nnot honor warranty work if 10W-40 was used (if my memory serves me).\n5-30, 10-30 or 20 50 was OK'd though.\n\nMark B.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1639, "properties": {"category": "sci.electronics", "text": "From: ulan@ee.ualberta.ca (Dale Ulan)\nSubject: Re: Need to find out number to a phone line\nNntp-Posting-Host: eigen.ee.ualberta.ca\nOrganization: University Of Alberta, Edmonton Canada\nLines: 21\n\nalee@ecs.umass.edu writes:\n\n\n>Greetings!\n>      \n>        Situation:  I have a phone jack mounted on a wall.  I don't\n>                    know the number of the line.  And I don't want\n>                    to call up the operator to place a trace on it.\n\n>        Question:   Is there a certain device out there that I can\n>                    use to find out the number to the line?\n>        Thanks for any response.\n>                                                    Al\n\nThere usually is a way, however, often, telephone companies like to\nkeep all of their internal numbers private. Depends on your exchange.\nAny modern electronic switching equipment usually have voice synth\nlines that echo the number you called from. The line service guys use this\nto make sure they connect up the right pairs of lines.\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1640, "properties": {"category": "talk.politics.mideast", "text": "From: hm@cs.brown.edu (Harry Mamaysky)\nSubject: Re: Final Solution in Palestine ?\nIn-Reply-To: ahmeda@McRCIM.McGill.EDU's message of Sun, 25 Apr 93 17:10:03 GMT\nOrganization: Dept. of Computer Science, Brown University\n\t<1993Apr25.171003.10694@thunder.mcrcim.mcgill.edu>\nLines: 81\n\nIn article <1993Apr25.171003.10694@thunder.mcrcim.mcgill.edu> ahmeda@McRCIM.McGill.EDU (Ahmed Abu-Abed) writes:\n\n   In article <HM.93Apr24133027@angell.cs.brown.edu>, hm@cs.brown.edu (Harry Mamaysky) writes:\n   |> In article <1483500354@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n   |> \n   |>    Final Solution for the Gaza ghetto ?\n   |>    ------------------------------------\n   |> \n   |>    While Israeli Jews fete the uprising of the Warsaw ghetto, they\n   |>    repress by violent means the uprising of the Gaza ghetto and\n   |>    attempt to starve the Gazans.\n   |> \n   |>    [...]\n   |> \n   |> The Jews in the Warsaw ghetto were fighting to keep themselves and\n   |> their families from being sent to Nazi gas chambers. Groups like Hamas\n   |> and the Islamic Jihad fight with the expressed purpose of driving all\n   |> Jews into the sea. Perhaps, we should persuade Jewish people to help\n      ^^^^^^^^^^^^^^^^^^\n   |> these wnderful \"freedom fighters\" attain this ultimate goal.\n   |> \n   |> Maybe the \"freedom fighters\" will choose to spare the co-operative Jews.\n   |> Is that what you are counting on, Elias - the pity of murderers.\n   |> \n   |> You say your mother was Jewish. How ashamed she must be of her son. I\n   |> am sorry, Mrs. Davidsson.\n   |> \n   |> Harry.\n\n   O.K., its my turn:\n\n\t  DRIVING THE JEWS INTO THE SEA ?!\n\n   I am sick and tired of this 'DRIVING THE JEWS INTO THE SEA' sentance attributed\n   to Islamic movements and the PLO; it simply can't be proven as part of their\n   plan !\n\n   (Pro Israeli activists repeat it like parrots without checking its authenticity\n   since it was coined by Bnai Brith)\n\n   What Hamas and Islamic Jihad believe in, as far as I can get from the Arab media,\n   is an Islamic state that protects the rights of all its inhabitants under Koranic\n   Law. This would be a reversal of the 1948 situation in which the Jews in\n   Palestine took control of the land and its (mostly Muslim) inhabitants.\n\n   However, whoever committed crimes against humanity (torture, blowing up their\n   homes, murders,...) must be treated and tried as a war criminal. The political\n   thought of these movements shows that a freedom of choice will be given to the\n   Jews in living under the new law or leaving to the destintion of their choice.\n\n   As for the PLO, I am at a loss to explain what is going inside Arafat's mind.\n\n   Although their political thinking seems far fetched with Israel acting as a true\n   super-power in the region, the Islamic movements are using the same weapon the\n   Jews used to establish their state : Religion.\n\n\n   Ahmed.\n\nForget the syntax, Ahmed, and focus on the semnatics. The fact is that\nthe PLO does not recognize Israel's right to exist. This is perfectly\nobvious from the PLO covenant (Cairo, 1968). The covenant calls for\nthe destruction of the \"Zionist entity\". As far as I know the\nIsrael-destruction clauses still exist in the document which specifies\nthe purpose for the existence of the PLO. If you would like, I can\npost the relevant caluses.\n\nNow the Hamas ideal is far more radical, it seems. I know it has been\nposted here several times, and while I do not have a copy of it, I am\nsure that someone does and he (or she, of course) would be more than\nhappy to repost it.\n\nRegardless of phrasing, groups like Hamas, and the Hezbollah, and\neven the newly moderate and politically-correct PLO, have at the very\nheart of their ideologies the need for the destrcution of Israel.\n\nIt just seems to me that Mr. Davidsson's suggestion that Jews support\npeople envolved in these organizations is not a particularly appealing\none to many Jews.\n\nHarry.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1641, "properties": {"category": "talk.politics.mideast", "text": "From: ahmeda@McRCIM.McGill.EDU (Ahmed Abu-Abed)\nSubject: Re: Desertification of the Negev\nOriginator: ahmeda@ice.mcrcim.mcgill.edu\nNntp-Posting-Host: ice.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for  Intelligent Machines\nLines: 23\n\n\nIn article <1993Apr26.021105.25642@cs.brown.edu>, dzk@cs.brown.edu (Danny Keren) writes:\n|> This is nonsense. I lived in the Negev for many years and I can say\n|> for sure that no Beduins were \"moved\" or harmed in any way. On the\n|> contrary, their standard of living has climbed sharply; many of them\n|> now live in rather nice, permanent houses, and own cars. There are\n|> quite a few Beduin students in the Ben-Gurion university. There are\n|> good, friendly relations between them and the rest of the population.\n|> \n|> All the Beduins I met would be rather surprised to read Mr. Davidson's\n|> poster, I have to say.\n|> \n|> -Danny Keren.\n|> \n\nIt is nonsense, Danny, if you can refute it with proof. If you are citing your\nexperience then you should have been there in the 1940's (the article is\ncomparing the condition then with that now).\n\nOtherwise, it is you who is trying to change the facts.\n\n-Ahmed.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.077+0000", "event": "documents", "entityId": 1642, "properties": {"category": "alt.atheism", "text": "From: ingles@engin.umich.edu (Ray Ingles)\nSubject: Re: Concerning God's Morality (was: Americans and Evolution)\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 110\nDistribution: world\nNNTP-Posting-Host: syndicoot.engin.umich.edu\n\nIn article <1993Apr2.155057.808@batman.bmd.trw.com> jbrown@batman.bmd.trw.com writes:\n[why do babies get diseases, etc.]\n>What God did create was life according to a protein code which is\n>mutable and can evolve.  Without delving into a deep discussion of\n>creationism vs evolutionism,\n\n Here's the (main) problem. The scenario you outline is reasonably \nconsistent, but all the evidence that I am familiar with not only does\nnot support it, but indicates something far different. The Earth, by\nlatest estimates, is about 4.6 billion years old, and has had life for\nabout 3.5 billion of those years. Humans have only been around for (at\nmost) about 200,000 years. But, the fossil evidence inidcates that life\nhas been changing and evolving, and, in fact, disease-ridden, long before\nthere were people. (Yes, there are fossils that show signs of disease...\nmostly bone disorders, of course, but there are some.) Heck, not just\nfossil evidence, but what we've been able to glean from genetic study shows\nthat disease has been around for a long, long time. If human sin was what\nbrought about disease (at least, indirectly, though necessarily) then\nhow could it exist before humans?\n\n>                             God created the original genetic code\n>perfect and without flaw.  And without getting sidetracked into\n>the theological ramifications of the original sin, the main effect\n>of the so-called original sin for this discussion was to remove\n>humanity from God's protection since by their choice A&E cut\n>themselves off from intimate fellowship with God.  In addition, their\n>sin caused them to come under the dominion of Satan, who then assumed\n>dominion over the earth...\n[deletions]\n>Since humanity was no longer under God's protection but under Satan's\n>dominion, it was no great feat for Satan to genetically engineer\n>diseases, both bacterial/viral and genetic.  Although the forces of\n>natural selection tend to improve the survivability of species, the\n>degeneration of the genetic code tends to more than offset this.  \n\n Uh... I know of many evolutionary biologists, who know more about\nbiology than you claim to, who will strongly disagree with this. There\nis no evidence that the human genetic code (or any other) 'started off'\nin perfect condition. It seems to adapt to its envionment, in a\ncollective sense. I'm really curious as to what you mean by 'the\ndegeneration of the genetic code'.\n\n>Human DNA, being more \"complex\", tends to accumulate errors adversely\n>affecting our well-being and ability to fight off disease, while the \n>simpler DNA of bacteria and viruses tend to become more efficient in \n>causing infection and disease.  It is a bad combination.\n\n Umm. Nah, we seem to do a pretty good job of adapting to viruses and\nbacteria, and they to us. Only a very small percentage of microlife is\nharmful to humans... and that small percentage seems to be reasonalby\nconstant in size, but the ranks keep changing. For example, bubonic\nplague used to be a really nasty disease, I'm sure you'll agree. But\nit still pops up from time to time, even today... and doesn't do as\nmuch damage. Part of that is because of better sanitation, but even\nwhen people get the disease, the symptoms tend to be less severe than in\nthe past. This seems to be partly because people who were very susceptible\ndied off long ago, and because the really nasty variants 'overgrazed',\n(forgive the poor terminology, I'm an engineer, not a doctor! :-> ) and\ndied off for lack of nearby hosts.\n I could be wrong on this, but from what I gather acne is only a few\nhundred years old, and used to be nastier, though no killer. It seems to\nbe getting less nasty w/age...\n\n>                                                          Hence\n>we have newborns that suffer from genetic, viral, and bacterial\n>diseases/disorders.\n\n Now, wait a minute. I have a question. Humans were created perfect, right?\nAnd, you admit that we have an inbuilt abiliy to fight off disease. It\nseems unlikely that Satan, who's making the diseases, would also gift\nhumans with the means to fight them off. Simpler to make the diseases less\nlethal, if he wants survivors. As far as I can see, our immune systems,\nimperfect though they may (presently?) be, must have been built into us\nby God. I want to be clear on this: are you saying that God was planning\nahead for the time when Satan would be in charge by building an immune\nsystem that was not, at the time of design, necessary? That is, God made\nour immune systems ahead of time, knowing that Adam and Eve would sin and\ntheir descendents would need to fight off diseases?\n\n>This may be more of a mystical/supernatural explanation than you\n>are prepared to accept, but God is not responsible for disease.\n>Even if Satan had nothing to do with the original inception of\n>disease, evolution by random chance would have produced them since\n>humanity forsook God's protection.\n\n Here's another puzzle. What, exactly, do you mean by 'perfect' in the\nphrase, 'created... perfect and without flaw'? To my mind, a 'perfect'\nsystem would be incapable of degrading over time. A 'perfect' system\nthat will, without constant intervention, become imperfect is *not* a\nperfect system. At least, IMHO.\n Or is it that God did something like writing a masterpiece novel on a\nbunch of gum wrappers held together with Elmer's glue? That is, the\noriginal genetic 'instructions' were perfect, but were 'written' in\ninferior materials that had to be carefully tended or would fall apart?\nIf so, why could God not have used better materials?\n Was God *incapable* of creating a system that could maintain itself,\nof did It just choose not to?\n\n[deletions]\n>In summary, newborns are innocent, but God does not cause their suffering.\n\n My main point, as I said, was that there really isn't any evidence for\nthe explanation you give. (At least, that I'm aware of.) But, I couldn't\nhelp making a few nitpicks here and there. :->\n\nSincerely,\n\nRay Ingles                  || The above opinions are probably\n                            || not those of the University of\ningles@engin.umich.edu      || Michigan. Yet.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1643, "properties": {"category": "misc.forsale", "text": "From: colinm@max.carleton.ca (Colin McFadyen)\nSubject: Maxtor 2190 info needed (was Re: UNIX PC Software for sale)\nOrganization: Carleton University\nLines: 14\n\nIn <1qvs59$knh@crl.crl.com> bob@nntp.crl.com (Bob Ames) writes:\n\n>Here is a list of items for the 3B1 which I am selling:\n\nList deleted..........\n\n>PPS:  Priam D519 150M Hard Drives (Exactly same as Maxtor 2190, but faster)\n\nDoes anyone know what the jumpers should be set to on the Maxtor 2190??\nI have a 2190 that came off of a VS2000 that I would like to use on a PC.\n\nThanks in advance...Colin.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1644, "properties": {"category": "misc.forsale", "text": "From: tfoley@camaro.uucp (Tim Foley)\nSubject: A1000 Memory Needed!!!\nOrganization: camaro\nLines: 27\n\n\n \n  Wanted:  Amiga 1000 Memory Expander\n \t   Any Size (at least 1 meg), populated or not\n           \n\t eg. AX2000, Insider, etc.\n\nNeeded Desperately!\n \nCash deal or trade for:\n \n2400 mnp4 Everex Evercom 24e External Modem\n2400 pc internal modem\nPP 2400SA V42.bis external modem\nApple II+ parts\nLots of PC cards\nPanasonic Video CCD Video Camera (BL204) w/ lenses\n(Great for Digi-View etc...CCD...no lens...no burn-in!)\n \nSend Email ASAP!  \n-- \n  --------------------------------------------------------------------------\n               The HeartBeat of America...Yesterdays Camaro Z28 \n                             tfoley@camaro.uucp   \n     Call the Camaro Linux Pub-access site: 1-416-238-6550 USRobotics HST\n    Note: Please, no ftpmail or mailing lists or the host gets annoyed :)\n  --------------------------------------------------------------------------\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1645, "properties": {"category": "talk.religion.misc", "text": "From: rnapier@csugrad.cs.vt.edu (Rob Napier)\nSubject: Re: OTO, the Ancient Order of Oriental Templars\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 21\nDistribution: world\nNNTP-Posting-Host: csugrad.cs.vt.edu\n\nIn article <79615@cup.portal.com> Thyagi@cup.portal.com (Thyagi Morgoth NagaSiva) writes:\n>\n>\n>\"To all whom it may concern -\n>\n[constitution sacrificed to the bandwidth gods]\n\nim glad i finally have heard exactly what the OTO is all about.  i finally\nknow that i can stop looking, content i the knowlege that im not interested.\nit's tough enough listening to all the religions who refer to themselves as\n\"the One Truth\".  How can i possibly accept it from a magical order?  \"We have\nall the Answers and will give them to those who join us (and pay dues)?\"\nScary.  Besides, answers are easy.  Questions!  now that's another story...\n\nrintaw\n\n-- \n|------------------------------------------------------------------------------\n| Rob Napier - Virginia Tech | There is no gravity, the earth sucks.          |\n| rnapier@csugrad.cs.vt.edu  | All in all I'm just another Schitz In The Hall |\n|-----------------------------------------------------------------------------|\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1646, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cmenzel@kbssun1.tamu.edu (Chris Menzel)\nSubject: Re: Procomm Plus for windows problems....\nOrganization: Texas A&M University, College Station, TX\nLines: 25\nNNTP-Posting-Host: kbssun1.tamu.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nJeff Meyers (jmeyers@ecst.csuchico.edu) wrote:\n: In article <1qkqrhINNobc@matt.ksu.ksu.edu> kentiler@matt.ksu.ksu.edu (Kent P. Iler) writes:\n: .\n: .\n: >I have a friend who connects to the mainframe and unix machines here\n: >using [Procomm Plus for Windows], but the screen seems to have a problem \n: >keeping up with the\n: >modem....he has a 14,400 modem on a 486 50 Mhz machine.\n\n: Tell him he probably needs to upgrade to a faster video card!  My 9600 baud\n: modem was one of the reasons I sought out the Diamond Speedstar 24X. I get\n: about 7 million WinMarks on my 386-25 and it just about keeps up with the\n: modem speed (using procomm plus for windows, too).  He should get over\n: 10 million on his machine with the same card.  Anything 10+ should yield\n: acceptable speed...\n\nI'm using PC Plus at home on my trusty old NEC 386 SX/20 with a 14,400\nbaud modem with no problems at all.  I am, however, running only\nstraight 16 color VGA.\n\n--\n\nChristopher Menzel\t\t    Internet -> cmenzel@tamu.edu\nPhilosophy, Texas A&M University    Phone ---->   (409) 845-8764\nCollege Station, TX  77843-4237\t    Fax ------>   (409) 845-045\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1647, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: j_meyer@informatik.uni-kl.de (Joerg Meyer)\nSubject: VideoBlaster & PC SPEAKER\nKeywords: Video Blaster Speaker Driver\nReply-To: j_meyer@informatik.uni-kl.de (Joerg Meyer)\nOrganization: University of Kaiserslautern (Germany)\nLines: 28\n\n\nSoftware that comes together with the VideoBlaster\nis designed to work together with the SoundBlaster\n(from the same manufacturer).\n\nSince I do not own a SoundBlaster: is there a possibility\nto use the PC Speaker driver to play audio files for\nthe VideoBlaster (.AVI = audio video interleave files) ?\n\nI think what I should have is a device driver for\nthe Media Player that controls the PC Speaker Driver\ninstead of the SoundBlaster card (something like MCISPKR.DRV).\n\nHas anybody heard of such a driver?\nOr am I on the wrong track?\n\nAny information on this appreciated!\n\n(Please send e-mail, since I don't watch this group regularly.)\n\n\n    _V_      |  Joerg Meyer\n   /   \\     |  E-Mail:  j_meyer@informatik.uni-kl.de\n   |O O|     |  University of Kaiserslautern, Germany\nooO--U--Ooo  |  ------- This space for rent ! -------\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1648, "properties": {"category": "rec.sport.baseball", "text": "From: spira@panix.com (Greg Spira)\nSubject: Re: And America's Team is....But Why?\nOrganization: Panix Public Access Internet & Unix, NYC\nLines: 12\n\nIn article <C5p3yr.GH2@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>\n>\tThe defenition of the Underdog is a team that has no talent and comes\n>out of nowhere to contend.  The '69 Mets and '89 Orioles are prime examples,\n\nUh, I don't think you can call a team with Tom Seaver, Jerry Koosman,\nand Nolan Ryan on the pitching staff a team that has \"no talent.\" They\ndid come out of nowhere, but some of the improvement was\nforseeable.  \n\nGreg \n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1649, "properties": {"category": "comp.sys.mac.hardware", "text": "From: cmmiller@iastate.edu (C. M. Miller)\nSubject: RESULTS of Mathematica Speed Tests!!\nOrganization: Iowa State University, Ames, IA\nLines: 84\n\nWell, here are the results of the Mathematica test which I posted to\nthis newsgroup.  The \"test\" was the following command:\n\n>Plot3D[((-2*9000)/(2*3.1416*((x-5000)^2+(y-8000)^2+\n>81000000)^1.5))+((-3*9000)/(2*3.1416*((x-10000)^2+\n>(y-1000)^2+81000000)^1.5))+((4*2000)/(2*3.1416*\n>((x-7000)^2+(y-10000)^2+4000000)^1.5)),\n>{x,-5500,19500},{y,-5500,19500},PlotPoints->50]\n\n\nI was just curious how fast the plot command would be executed on\nvarious Macintosh machines as well as other personal computers and\nworkstations.  The results are posted below:\n\nMachine\t\tSystem\t\tMath vers.\t# of trials\ttime, min\n\nPB 170\t\t7.0.0 with\t2.1\t\t2\t\t2:08\n\t\ttuneup/8MB\n\t\tRAM/5MB for\n\t\tMathematica\n\nDEC 5000\tUltrix v4.2a\t2.1 for\t\t1\t\t0:25\n\t\tDEC RISC\t\n\t\t\t\t\t\nIIsi\t\t7.1/cache@96MB\t1.2f33Enh.\t1\t\t4:30\n\t\t25MHz/5MB RAM/\n\t\t3MB for Math./\n\t\tw/ 68882\n\nC650\t\t7.1/8MB RAM\t\t\t2\t\t0:32\n\nQ800\t\t8MB/Cache@384/\t1.2\t\t\t\t1:01\n\t\t4MB for Math.\t\n\nSparc\t\tSunOS4.1.3\t\t\t\t\t0:14\nStation\t\t40MB RAM\n\nSGI Iris/4D\tR3000 RISC\t\t\t\t\t<0:01\n\t\tprocessor\n\t\tversion\n\nSparc\t\tSunOS4.1.2\t2.1 \t\t\t\t0:26\nStation2\n\nIIsi\t\t7.1\t\t\t\t\t\t3:15\n\nNeXT\t\tNeXTSTEP 2.1\t1.2\t\t\t\t2:38\nCube\t\t68030 based/\n\t\tw/ coprocessor\t\n\nNeXT\t\tNeXTSTEP 3.0\t1.2\t\t5(ave)\t\t0:52\nCube\t\t68040/25MHz/\n\t\t20 MB RAM\n\nIIsi\t\t17MB/8MB for\t2.102 Enha\t\t\t3:15\n\t\tMath.\t\t\t\n\t\tw/ 68882\n\nNeXT\t\t16MB RAM/\t\t\t1 \t\t0:37\n\t\t25 MHz 040/\n\t\tWorkspace\n\t\tManager 2.1\n\nFunny how the IIsi running at 25 MHz is slower than other equivalent\nmachines, lots slower in fact.  Perhaps the version of Mathematica\nmakes a difference or the fact that not much RAM was allocated.\nAnother interesting thing is how fast the SGI did it.  Wow. \n\nBasically, though, I wouldn't draw any conclusions from this data.  It\nseems that Mathematica's speed is dependant on a lot of variables.  I\nwas just curious how different machines would measure up.  \n\nWell, if you have any questions or if I forgot something, just drop me\na line at \"cmmiller@iastate.edu\".  \n\nChad\n\nPS  If the spacing of the above table doesn't come out right on your\nmachine, tell me and I'll mail you a copy of this in a binhexed Word\n5.1 document.  \n\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1650, "properties": {"category": "sci.electronics", "text": "From: pat@fegmania.wustl.edu (Pat Niemeyer)\nSubject: Re: $25 network\nOrganization: Washington University in Saint Louis, MO USA\nLines: 14\nReply-To: pat@fegmania.wustl.edu\nNNTP-Posting-Host: fegmania.wustl.edu\nOriginator: pat@fegmania\n\n>>The same folks now have out LBL (Little Big Lan) for $75.  I think you\n>>get it for $50 if you already own $25 Network.  LBL works with Arcnet,\n>>parallel ports, and serial ports in any combination for up to 250 or so\n>>nodes.\n\nNo flames please, but I picked up this discussion a bit late and I \nam really curious...\n\nWhat exactly *is* the $25 network?\nSomething to hack together N serial cables?\nSomething with N serial drivers?\n\nThanks,\nPat\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1651, "properties": {"category": "sci.space", "text": "From: eder@hsvaic.boeing.com (Dani Eder)\nSubject: Re: Elevator to the top floor\nOrganization: Boeing AI Center, Huntsville, AL\nLines: 56\n\n\nReading from a Amoco Performance Products data sheet, their\nERL-1906 resin with T40 carbon fiber reinforcement has a compressive\nstrength of 280,000 psi.  It has a density of 0.058 lb/cu in,\ntherefore the theoretical height for a constant section column\nthat can just support itself is 4.8 million inches, or 400,000 ft,\nor 75 Statute miles.\n\nNow, a real structure will have horizontal bracing (either a truss\ntype, or guy wires, or both) and will be used below the crush strength.\nLet us assume that we will operate at 40% of the theoretical \nstrength.  This gives a working height of 30 miles for a constant\nsection column.  \n\nA constant section column is not the limit on how high you can\nbuild something if you allow a tapering of the cross section\nas you go up.  For example, let us say you have a 280,000 pound\nload to support at the top of the tower (for simplicity in\ncalculation).  This requires 2.5 square inches of column cross\nsectional area to support the weight.  The mile of structure\nbelow the payload will itself weigh 9,200 lb, so at 1 mile \nbelow the payload, the total load is now 289,200 lb, a 3.3% increase.\n\nThe next mile of structure must be 3.3% thicker in cross section\nto support the top mile of tower plus the payload.  Each mile\nof structure must increase in area by the same ratio all the way\nto the bottom.  We can see from this that there is no theoretical\nlimit on area, although there will be practical limits based\non how much composites we can afford to by at $40/lb, and how\nmuch load you need to support on the ground (for which you need\na foundation that the bedrock can support.\n\nLet us arbitrarily choose $1 billion as the limit in costruction\ncost.  With this we can afford perhaps 10,000,000 lb of composites,\nassuming our finished structure costs $100/lb.  The $40/lb figure\nis just for materials cost.  Then we have a tower/payload mass\nratio of 35.7:1.  At a 3.3% mass ratio per mile, the tower\nheight becomes 111 miles.  This is clearly above the significant\natmosphere.  A rocket launched from the top of the tower will still\nhave to provide orbital velocity, but atmospheric drag and g-losses\nwill be almost eliminated.  G-losses are the component of\nrocket thrust in the vertical direction to counter gravity,\nbut which do not contribute to horizontal orbital velocity.  Thus\nthey represent wasted thrust.  Together with drag, rockets starting\nfrom the ground have a 15% velocity penalty to contend with.\n\nThis analysis is simplified, in that it does not consider wind\nloads.  These will require more structural support over the first\n15 miles of height.  Above that, the air pressure drops to a low\nenough value for it not to be a big factor.\n\nDani Eder\n\n-- \nDani Eder/Meridian Investment Company/(205)464-2697(w)/232-7467(h)/\nRt.1, Box 188-2, Athens AL 35611/Location: 34deg 37' N 86deg 43' W +100m alt.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1652, "properties": {"category": "sci.electronics", "text": "From: garyg@warren.mentorg.com (Gary Gendel)\nSubject: Re: Need to find out number to a phone lin\nOrganization: Mentor Graphics Corp. -- IC Group\nLines: 32\nDistribution: world\nReply-To: garyg@warren.mentorg.com\nNNTP-Posting-Host: garyg.warren.mentorg.com\n\nIn article 1qub4mINN7r3@rave.larc.nasa.gov, kludge@grissom.larc.nasa.gov (Scott Dorsey) writes:\n>In article <20756.2bd16dea@ecs.umass.edu> alee@ecs.umass.edu writes:\n>>\n>>Greetings!\n>>      \n>>        Situation:  I have a phone jack mounted on a wall.  I don't\n>>                    know the number of the line.  And I don't want\n>>                    to call up the operator to place a trace on it.\n>>\n>>        Question:   Is there a certain device out there that I can\n>>                    use to find out the number to the line?\n>\n>\n>Call a friend long distance, collect.  Ask to speak with yourself.  When\n>the operator asks for you, you won't be there, so ask the operator to leave\n>your number.  She'll read it out in the clear.\n>--scott\n\nEven easier, my area supports 311.  Dial this and a recording recites your number.\nPhone techs use it to verify an installed line.\n---\n\t\t\tGary Gendel\nVice President:\t\t\t\tCurrent consulting assignment:\nGenashor Corp\t\t\t\tMentor Graphics Corporation\n9 Piney Woods Drive\t\t\t15 Independence Boulevard\nBelle Mead, NJ 08502\t\t\tWarren, NJ 07059\n\nphone:\t(908) 281-0164\t\t\tphone:\t(908) 604-0883\nfax:\t(908) 281-9607\t\t\temail:\tgaryg@warren.mentorg.com\n\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1653, "properties": {"category": "rec.motorcycles", "text": "From: nrmendel@unix.amherst.edu (Nathaniel Mendell)\nSubject: Re: OPINIONS WANTED -- HELP\nNntp-Posting-Host: amhux3.amherst.edu\nOrganization: Amherst College\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 9\n\nWhat size dirtbikes did you ride? and for how long? You might be able to\nslip into a 500cc bike. Like I keep telling people, though, buy an older,\ncheaper bike and ride that for a while first...you might like a 500 Interceptor\nas an example\n\nNathaniel\nZX-10\nDoD 0812\nAMA\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1654, "properties": {"category": "rec.autos", "text": "From: cak3@ns1.cc.lehigh.edu (CHAD ANDREW KAUFFMAN)\nSubject: Car alarm info. (UNGO BOX)\nOrganization: Lehigh University\nLines: 12\n\n\n\n\n    I want to get a car alarm and I am thinking about getting an Ungo Box.\n    Does anyone out there have any knowledge or experience with any of\n    these alarms?  How about price ranges for the different models?\n    Are these good car alarms?  Please email me any responces.\n\n                cak3@ns3.lehigh.edu\n\n                                        Chad\n                                                Chad\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1655, "properties": {"category": "talk.religion.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 15\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, spl@pitstop.ucsd.edu (Steve Lamont) says:\n\n>... or consider the thousands in Central America killed by those brave\n>CIA/NSC sponsored \"Freedom Fighters.\"\n>\n>Thus far, Slick Willie is a piker.\n\n\n      ONLY if you weight Americans equal to SAlvadorans.\n\n      I don't.\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1656, "properties": {"category": "sci.space", "text": "From: nickh@CS.CMU.EDU (Nick Haines)\nSubject: Re: What if the USSR had reached the Moon first?\nIn-Reply-To: gary@ke4zv.uucp's message of Sun, 18 Apr 1993 09:10:51 GMT\nOriginator: nickh@SNOW.FOX.CS.CMU.EDU\nNntp-Posting-Host: snow.fox.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon University\n\t<1993Apr7.124724.22534@yang.earlham.edu> <dxb105.734495289@virgo>\n\t<1993Apr12.161742.22647@yang.earlham.edu>\n\t<93107.144339SAUNDRSG@QUCDN.QueensU.CA>\n\t<1993Apr18.091051.14496@ke4zv.uucp>\nLines: 35\n\nIn article <1993Apr18.091051.14496@ke4zv.uucp> gary@ke4zv.uucp (Gary Coffman) writes:\n\n   In article <93107.144339SAUNDRSG@QUCDN.QueensU.CA> Graydon <SAUNDRSG@QUCDN.QueensU.CA> writes:\n\n   >This is turning into 'what's a moonbase good for', and I ought not\n   >to post when I've a hundred some odd posts to go, but I would\n   >think that the real reason to have a moon base is economic.\n   >\n   >Since someone with space industry will presumeably have a much\n   >larger GNP than they would _without_ space industry, eventually,\n   >they will simply be able to afford more stuff.\n\n   If I read you right, you're saying in essence that, with a larger\n   economy, nations will have more discretionary funds to *waste* on a\n   lunar facility. That was certainly partially the case with Apollo,\n   but real Lunar colonies will probably require a continuing\n   military, scientific, or commercial reason for being rather than\n   just a \"we have the money, why not?\" approach.\n\nAh, but the whole point is that money spent on a lunar base is not\nwasted on the moon. It's not like they'd be using $1000 (1000R?) bills\nto fuel their moon-dozers. The money to fund a lunar base would be\nspent in the country to which the base belonged. It's a way of funding\nhigh-tech research, just like DARPA was a good excuse to fund various\nfields of research, under the pretense that it was crucial to the\ndefense of the country, or like ESPRIT is a good excuse for the EC to\nfund research, under the pretense that it's good for pan-European\ncooperation.\n\nNow maybe you think that government-funded research is a waste of\nmoney (in fact, I'm pretty sure you do), but it does count as\ninvestment spending, which does boost the economy (and just look at\nthe size of that multiplier :->).\n\nNick Haines nickh@cmu.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1657, "properties": {"category": "rec.motorcycles", "text": "From: speedy@engr.latech.edu (Speedy Mercer)\nSubject: Re: So, do any XXXX, I mean police officers read this stuff?\nOrganization: Louisiana Tech University\nLines: 22\nNNTP-Posting-Host: bhm116e-spc.engr.latech.edu\n\nIn article <1993Apr20.163629.29153@iscnvx.lmsc.lockheed.com> jrlaf@sgi502.msd.lmsc.lockheed.com (J. R. Laferriere) writes:\n\n>I was just wondering if there were any law officers that read this.  I have\n>several questions I would like to ask pertaining to motorcycles and cops.\n>And please don't say get a vehicle code, go to your local station, or obvious\n>things like that.  My questions would not be found in those places nor\n>answered face to face with a real, live in the flesh, cop.\n>If your brother had a friend who had a cousin whos father was a cop, etc.\n>don't bother writing in.  Thanks.\n\nI just gotta ask... What ARE these questions you want to ask an active cop?\nWorking on your DoD qualfications? B-)\n\n\n ----===== DoD #8177 = Technician(Dr. Speed) .NOT. Student =====----\n\n                          Stolen Taglines...\n              * God is real, unless declared integer. *\n            * I came, I saw, I deleted all your files. *\n         * Black holes are where God is dividing by zero. *\n        * The world will end in 5 minutes. Please log out. *\n       * Earth is 98% full.... please delete anyone you can. *\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1658, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 191\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>Much though it might be fun to debate capital punishment itself,\n>this is probably the wrong group for it.  The only relevance here\n>is that you don't seem to be able to tell us what capital punishment\n>actually is, and when it is murder.  That is, when you tell us murder\n>is wrong, you are using a term you have not yet defined.\n\nWell, I've said that when an innocent person has been executed, this is\nobjectively a murder.  However, who is at blame is another question.\nIt seems that the entire society that sanctions any sorts of executions--\nrealizing the risks--is to blame.\n\n>There is a *probability* of \n>killing an innocent person by shooting at random into the air, and \n>there is a *probability* of killing an innocent person when the\n>state administers a system of capital punishment.  So when you do\n>either, you know that they actions you are taking will sooner or \n>later result in the killing of an innocent person.\n\nYes, but there is also a probablity that you will kill someone doing\nany raondom activity.  Presumably, you had not isolated yourself totally\nfrom the rest of society because of this.\n\n>>And, driving will kill people, as will airlines, but people continue to do\n>>both.\n>Driving and flying are not punishments inflicted on unwilling\n>prisoners by Courts.  They are risks that we take upon ourselves\n>willingly.\n\nAnd I argue that our law system is a similar risk.  Perhaps an innocent\nperson will be punished someday, but we work to prevent this.  In fact,\nmany criminals go free as a result of our trying to prevent punishment\nof innocents.\n\n>If our own driving kills someone else, then sure, there is a moral\n>issue.  I know at least one person who was involved in a fatal\n>accident, and they felt vey guilty afterwards.\n\nBut, such accidents are to be totally expected, given the numner of vehicals\non the road.  Again, the blame is on society.\n\n>>No I'm not.  This is what you said.  You were saying that if there were such\n>>a false witness that resulted in an innocent person being convicted and killed\n>>, it would still be the fault of the state, since it did the actual killing.\n>No, I just commented that the state does the killing.  It does not\n>depend on there being false witnesses.  How could it?  The state\n>does the killing even in the case of sincere mistakes\n\nYes, but the state is not at fault in such a case.  The state can only do\nso much to prevent false witnesses.\n\n>>It is possible.  So, what are you trying to say, that capital punishment\n>>is always murder because of the possibilty of human error invalidating\n>>the system?\n>I'm saying capital punishment is murder, period.  Not because of\n>this that and the other, but because it involves taking human life.\n>That's *my* definition of murder.  I make no appeals to dictionaries\n>or to \"objective\" morals.\n\nOkay, so this is what you call murder.  But, the question is whether or not\nall such \"murders\" are wrong.  Are you saying that all taking of human life\nis wrong, no matter what the circumstances?\n\n>If we, as a society, decide to murder someone, then we should say\n>that, and lists our reasons for doing so, and live with the moral\n>consequences.  We should not play word games and pretend that\n>murder isn't murder.  And that's *my* opinion about how society\n>ought to be run.\n\nBut, this is basically how it works.  Society accepts the risk that an\ninnocent person will be murdered by execution.  And, every member of\nsociety shares this blame.  And, most people's definitions of murder\ninclude some sort of malicious intent, which is not involved in an\nexecution, is it?\n\n>>But, we were trying to discuss an objective moral system, or at least its\n>>possibilty.  What ramifications does your personal system have on an\n>>objective one?\n>No, we were not discussing an objective moral system.  I was showing\n>you that you didn't have one, because, for one thing, you were incapable\n>of defining the terms in it, for example, \"murder\".\n\nMurder violates the golden rule.  Executions do not, because by allowing\nit at all, society implicitly accepts the consequences no matter who the\ninnocent victim is.\n\n>>We're not talking about reading minds, we are just talking about knowing the\n>>truth.  Yes, we can never be absolutely certain that we have the truth, but\n>>the court systems work on a principle of knowing the \"truth\" \"beyond a\n>>reasonable doubt.\"  \n>Sorry, but you simply are not quoting yourself accurately.  Here\n>is what you said:\n>\t\"And, since we are looking totally objectively at this case,\n>\tthen we know what people are thinking when they are voting to\n>\texecute the person or not.  If the intent is malicious and \n>\tunfair, then the execution would be murder.\"\n>What you are doing now is to slide into another claim, which is\n>quite different.  The jury being *persuaded* beyond a serious\n>doubt is not the same as us knowing what is in their minds beyond\n>a serious doubt.\n\nReading the minds of the jury would certainly tell whether or not a conviction\nwas moral or not.  But, in an objective system, only the absolute truth\nmatters, and the jury system is one method to approximate such a truth.  That\nis, twelve members must be convinced of a truth.\n\n>Moreover, a jury which comes from a sufficiently prejudiced background\n>may allow itself to be persuaded beyond a serious doubt on evidence\n>that you and I would laugh at.\n\nBut then, if we read the minds of these people, we would know that the\nconviction was unfair.\n\n>>But, would it be perfectly fair if we could read minds?  If we assume that\n>>it would be fair if we knew the absolute truth, why is it so much less\n>>fair, in your opinion, if we only have a good approximation of the absolute\n>>truth?\n>It's not a question of fairness.  Your claim, which I have quoted\n>above is a claim about whether we can *know* it was fair, so as to\n>be able to distinguish capital punishnment from murder.\n\nYes, while we could objectively determine the difference (if we knew all\npossible information), we can't always determine the difference in our\nflawed system.  I think that our system is almost as good as possible,\nbut it still isn't objectively perfect.  You see, it doesn't matter if\nwe *know* it is fair or not.  Objectively, it is either fair or it is not.\n\n>Now there's a huge difference.  If we can read minds, we can know,\n>and if we cannot read minds, we can know nothing.  The difference\n>is not in degree of fairness, but in what we can know.\n\nBut what we know has no effect on an objective system.\n\n>>I think it is possible to produce a fairly objective system, if we are\n>>clear on which goals it is supposed to promote.\n>I'm not going to waste my time trying to devise a system that I am\n>pretty sure does not exist.\n\nWhy are you so sure?\n\n>I simply want people to confront reality.  *My* reality, remember.\n\nWhy is *your* reality important?\n\n>In this case, the reality is that, \"ideal theories' apart, we can\n>never know, even after the fact, about the fairness of the justice\n>system.  For every innocent person released from Death Row, there\n>may have been a dozen innocent people executed, or a hundred, or\n>none at all.  We simply don't know.\n\nBut, we can assume that the system is fairly decent, at least most likely.\nAnd, you realize that the correctness of our system says nothing about a\ntotally ideal and objective system.\n\n>Now what are we going to do?  On the one hand, we can pretend\n>that we have an 'ideal' theory, and that we can know things we can\n>never know, and the Justie System is fair, and that we can wave a \n>magic wand and make certain types of killing not murder, and go \n>on our way.\n\nWell, we can have an ideal system, but the working system can not be ideal.\nWe can only hope to create a system that is as close an approximation to\nthe ideal system as possible.\n\n>On the other hand, we can recognize that all Justice has a small\n>- we hope - probability of punishing the innocent, and that in the\n>end we do bear moral responsibility even for the probabilistic\n>consequences of the systems we set up, and then say, \"Well, here\n>we go, murdering again.\"  Maybe some of us will even say \"Gee, I\n>wonder if all this is strictly necessary?\"\n\nYes, we all bear the responsibility.  Most people seem willing to do this.\n\n>I think that the second is preferable in that if requires people\n>to face the moral consequences of what we do as a society, instead\n>of sheltering ourselves from them by magic ceremonies and word \n>games.\n\nWe must realize the consequences of all our actions.  Why do you keep\nseparating the justice system from the pack?\n\n>And lest I forget, I also don't think we have an objective moral\n>system, and I believe I only have to take that idea seriously\n>when someone presents evidence of it.\n\nI don't think our country has an objective system, but I think such an\nobjective system can exist, in theory.  Without omniscience, an objective\nsystem is not possible in practice.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1659, "properties": {"category": "soc.religion.christian", "text": "From: mwhaefne@infonode.ingr.com (Mark W. Haefner)\nSubject: Re: \"Accepting Jesus in your heart...\"\nOrganization: Intergraph Corporation, Huntsville, AL.\nLines: 10\n\n>\n>> Religion (especially Christianity) is nothing more than a DRUG.\n>> Some people use drugs as an escape from reality.  Christians inject\n>> themselves with jeezus and live with that high. \n\n\nWhy would you say \"especially Christianity\"?\n\n\nMark\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1660, "properties": {"category": "rec.sport.baseball", "text": "From: cmk@athena.mit.edu (Charles M Kozierok)\nSubject: Re: Baseball spreads?\nOrganization: Massachusetts Institute of Technology\nLines: 9\nNNTP-Posting-Host: marinara.mit.edu\n\nIn article <1993Apr18.225909.16116@colorado.edu> davewood@bruno.cs.colorado.edu (David Rex Wood) writes:\n} How does one read the betting spreads for baseball?  They tend to be something\n} like 8-9 which means it must not be runs!\n\nthat spread means you bet $5 on the underdog to win $8, or $9 on the\nfavorite to win $5.\n\n-*-\ncharles\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1661, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: \"Exercise\" Hypertension\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 18\n\nIn article <93084.140929RFM@psuvm.psu.edu> RFM@psuvm.psu.edu writes:\n>I took a stress test a couple weeks back, and results came back noting\n>\"Exercise\" Hypertension.  Fool that I am, I didn't ask Doc what this meant,\n>and she didn't explain; and now I'm wondering.  Can anyone out there\n>enlighten.  And I promise, next time I'll ask!\n\nProbably she meant that your blood pressure went up while you were on\nthe treadmill.  This is normal.  You'll have to ask her if this is\nwhat she meant, since no one else can answer for another person.\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1662, "properties": {"category": "talk.politics.mideast", "text": "From: B8HA <B8HA@MUSICB.MCGILL.CA>\nSubject: Re: Israel's Expansion II\nLines: 24\nNntp-Posting-Host: vm1.mcgill.ca\nOrganization: McGill University\n\nIn article <1993Apr22.093527.15720@donau.et.tudelft.nl> avi@duteinh.et.tudelft.nl (Avi Cohen Stuart) writes:\n>From article <93111.225707PP3903A@auvm.american.edu>, by Paul H. Pimentel <PP3903A@auvm.american.edu>:\n>> What gives Isreal the right to keep Jeruseleum?  It is the home of the muslim a\n>> s well as jewish religion, among others.  Heck, nobody ever mentions what Yitza\n>> k Shamir did forty or fifty years ago which is terrorize westerners much in the\n>>  way Abdul Nidal does today.  Seems Isrealis are nowhere above Arabs, so theref\n>> ore they have a right to Jerusaleum as much as Isreal does.\n>\n>\n>There is one big difference between Israel and the Arabs, Christians in this\n>respect.\n>\n>Israel allows freedom of religion.\n>\n>Avi.\n>.\n>.\nAvi,\n   For your information, Islam permits freedom of religion - there is\nno compulsion in religion.  Does Judaism permit freedom of religion\n(i.e. are non-Jews recognized in Judaism).  Just wondering.\n\nSteve\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1663, "properties": {"category": "sci.electronics", "text": "From: randyd@csd4.csd.uwm.edu (Randall Elton Ding)\nSubject: Re: ADCOM GTP500II IR sensor & repeater spec's?\nOrganization: Computing Services Division, University of Wisconsin - Milwaukee\nLines: 48\nNNTP-Posting-Host: 129.89.7.4\n\nIn article <1r1996INNijp@hp-col.col.hp.com> johnr@col.hp.com (John T. Rasper) writes:\n>Does anyone know the details of the interface (5 wire din) for the\n>IR remote sensor & (2 wire IR repeater) for the ADCOM GTP-500II\n>preamp?  The ADCOM part numbers are the XR-500II, SPM-500II, and \n>IRA-500II.\n>\n>A cursory physical examination of the pre-amp connector indicates\n>that the connector (5 pin din) may provide: (Viewed from connector front)\n>\n>      |\n>   5     1     (pin ?) +?v @ ???mA\n>    4   2      (pin ?) +/-?v @ ???mA\n>      3        (pin 3) Signal Ground\n>               (pin ?) Demodulated signal ?V-pp, ? polarity, ? mA drive\n>               (pin ?) Signal to drive repeater LED (drives through 150ohm\n>                       resistor) ?V-pp\n>\n>I assume that the repeater connectors (mini-plugs) drive the IR repeater\n>LED's directly.  True?\n>\n>Can anyone fill in the ?'s.  Thanks.\n>\n\nHere's the scoop.  When you get your home brew receiver working, would\nyou be willing to share it with the rest of us?  I always wanted to\nbuild my own but never have the time to fool around and design it.\n\npin 1:  signal ground\npin 2:  signal\npin 3:  always hot +6 volts\npin 4:  +6 volts, hot only when preamp is turned on\npin 5:  infrared repeater connectors\n\nThe infrared repeater jacks on the back of the preamp are not connected\nto anything inside the preamp except the 5 pin connector pin #5.  There\nis a 150 ohm resistor between the two jacks, with a 1.5K from pin 5 to\nground.\n\nThe signal pin #2 in the preamp is summed with the built in IR receiver.\nThey use a chip called CX20106A and a BJT to amplify the signal.  I would\nimagine the logical way would be to duplicate this circuit and use\nit as the external receiver.\n\nIf you need more info, let me know.\n\nRandy      randyd@csd4.csd.uwm.edu\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1664, "properties": {"category": "sci.electronics", "text": "From: aras@Ziggy.csl.ncsu.edu (Caglan M. Aras)\nSubject: Polaroid Range finder interference-Help!\nOrganization: /etc/organization\nLines: 26\n\nWe have a setup with with 13 polaroid transducers and rangefinders. We\nwould like to fire these three at a time with about 5 ms between\nfirings. The three that are being fired do not fire in the same\ndirection. \n\nTo further explain the situation, assume we are firing sonars A,B,C\n5 ms apart each other. We should normally see an echo on A that\ncorresponds to the distance. However, sonar A detects the INIT line\nof sonar B! The detection is actually through the transducer of sonar A;\nwe can see a very faint 50Khz signal on the transducer, exactly at the\ntime the init line of sonar B is activated. \n\nWe feel that there is some ground coupling that is causing this interference.\nWe came to this conclusion since we are using a separate power supply\nfor sonars B and C. \n\nHas anyone else had any problems with these particular units and\nthis type of experience? Your suggestions for remedies will be greatly\nappreciated.\n\n\n-- \nCaglan M. Aras                 [] aras@eceris.ece.ncsu.edu\nECE Department                 [] ph: 919-515-5405\nNorth Carolina State University[] fx: 919-515-5523\nRaleigh, NC 27695              []\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.078+0000", "event": "documents", "entityId": 1665, "properties": {"category": "talk.politics.guns", "text": "From: donb@netcom.com (Don Baldwin)\nSubject: Re: Ax the ATF\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 14\n\nIn article <1r1173INNajc@cronkite.Central.Sun.COM> \ndbernard@clesun.Central.Sun.COM writes:\n>Even if it were a capital offense, the warrant was not even an arrest warrant,\n>but a search warrant.  In other words, there was no evidence of illegal\n>arms, just enough of a suggestion to get a judge to sign a license to\n>search for illegal evidence.\n\nIt's hard to know what/who to believe.  However, the letter I received from\nthe BATF, in response to one I sent to Bentsen, said that there was a search\nwarrant AND an arrest warrant.\n\n     don\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1666, "properties": {"category": "talk.politics.mideast", "text": "From: nstramer@supergas.dazixco.ingr.com (Naftaly Stramer)\nSubject: Re: no-Free man propaganda machine: Freeman, with blood greetings from Israel\nNntp-Posting-Host: supergas\nReply-To: nstramer@dazixco.ingr.com\nOrganization: Intergraph Electronics\nLines: 31\n\n\nIn article <1qev18INNnk7@early-bird.think.com>, shaig@Think.COM (Shai Guday) writes:\n>In article <1993Apr13.142902.14479@thunder.mcrcim.mcgill.edu>, hasan@McRCIM.McGill.EDU  writes:\n\n>|> As for israelis, Menahim Begal Begin and Yitzhak Shakh Shamir were leaders\n>                            ^^^^^                   ^^^^^\n>Cute, real cute.  Now can you please stop being childish and get on\n>with the issues?\n>\n>|> of many of these gangs that massacred Palestineans and became the\n>|> HEROS of israel and its Prime ministers. Oh sorry I forgot Ben Gurion,\n>|> too. I hope he is enjoying his coffin . Now, if israelis donot support\n>|> (which i doubt) the oppression and killing from 1930's-now, \n\nYou probably mean the mass murders of Jews in the West Bank between 1936-1939. \n\n\n\n>|> Hasan\n\n>Shai Guday\n\n\nNaftaly\n\n\n----\nNaftaly Stramer \t\t\t | Intergraph Electronics\nInternet: nstramer@dazixco.ingr.com      | 6101 Lookout Road, Suite A    \nVoice: (303)581-2370  FAX: (303)581-9972 | Boulder, CO 80301\n\"Quality is everybody's job, and it's everybody's job to watch all that they can.\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1667, "properties": {"category": "rec.motorcycles", "text": "From: mmanning@icomsim.com (Michael Manning)\nSubject: Re: Bikes, Contacts Lenses & Radial Keratotomy\nOrganization: Icom Simulations\nLines: 22\n\nIn article <C5FI2H.Ew8@rice.edu>  (jcn@rice.edu) writes:\n> > I was going to try radial keratotomy, but they want over $2,000 per\n> > eye! \n> > That's a lot of contact lenses and sunglasses!\n> > \n> \n> And a lot of money if they make one tiny mistake ;-O\n> \n> Jeff Nichols\n\nAlso if they don't get it exactly right or your eyes change\nagain, contacts to correct for it are out of the question.\nThis is due to the strange conical shape your cornea takes\nafter the surgery.\n\n--\nMichael Manning\nmmanning@icomsim.com (NeXTMail accepted.)\n\n`92 FLSTF FatBoy\n`92 Ducati 900SS\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1668, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: Change of name ??\nLines: 31\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <CMM.0.90.2.735383339.thomasp@surt.ifi.uio.no> Thomas Parsli <thomasp@ifi.uio.no> writes:\n\n>NOTE!!!\n>My posting was in reply to those about FBI torching the plasce after\n>filling it with napalm, and arrested people dissapering.\n>\n>[...]\n>\n>About Waco\n>It looks to me as the BATF and FBI can't handle situations like this.\n>The way it went reminds me of 'stun' bomb beeing dropped on a house\n>in LA from a helicopter. (Whole block went up in flames, 5 died...)\n>\n>It doesn't HAVE to be a conspiracy, MAYBE they just screwed up ???\n\n       I don't think we've got a conspiracy on our hands, or anything\nvaugely similar.  I do think that the Feds showed a distinct lack of\nboth intelligence and disregard for others safety throughout this whole\nmess.\n\n       I do think the FBI and the BATF screwed up big.  What made me\nreally concerned was FBI director William Sessions being on CNN engaging\nin what could only be called spin control before the place had even\ncooled down.  Evertyhing had literally blown up in their faces and I felt\nthere had to be something more important he should have been doing...\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1669, "properties": {"category": "sci.electronics", "text": "From: victor@inqmind.bison.mb.ca (Victor Laking)\nSubject: Re: Radar detector DETECTORS?\nOrganization: The Inquiring Mind BBS  1 204 488-1607\nLines: 30\n\nalee@bmerh794.bnr.ca (Louis Leclerc) writes:\n\n> \n> In article <34263@oasys.dt.navy.mil> you write:\n> >VA, CT, Wash DC  and I think BC Canada where I've heard they actually\n> >use Radar detector detectors.\n> \n> Nope, not in British Columbia.  Detectors are legal here in BC, I've even\n> got one.\n> \n> In Alberta and Ontario they're illegal, and detection devices are sometimes\n> used.  I've heard the police in Ontario prefer a much more direct method of\n> detection.  Just trigger the radar gun, watch for people slamming on the\n> brakes, and search the car.\n> \n> \n> David Lee\n> leex@sfu.ca\n> \n\n\nThey are illegal here in Manitoba as well though I don't know what \nmethods are used to detect them.\n\nIt has always amazed me with the way the laws work.  It is not illegal to \nsell them here in Manitoba, only to have them within a vehicle.  (Last I \nheard, they don't have to be installed to be illegal.)\n\nvictor@inqmind.bison.mb.ca\nThe Inquiring Mind BBS, Winnipeg, Manitoba  204 488-1607\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1670, "properties": {"category": "comp.windows.x", "text": "From: duijnda@wldelft.nl (ArnoDuijndam)\nSubject: Re: creating a GIF file.\nLines: 29\nOrganization: Delft Hydraulics\n\nIn article <9304261216.AA04485@crnsu1.in2p3.fr> michel@crnsu1.IN2p3.FR (6893) writes:\n>Path: wldelft.nl!sun4nl!mcsun!uunet!gatech!enterpoop.mit.edu!INTERNET!news-mail-gateway\n>From: michel@crnsu1.IN2p3.FR (6893)\n>Newsgroups: comp.windows.x\n>Subject: creating a GIF file.\n>Date: 26 Apr 1993 10:43:28 -0400\n>Organization: The Internet\n>Lines: 12\n>Sender: news@athena.mit.edu\n>Message-ID: <9304261216.AA04485@crnsu1.in2p3.fr>\n>NNTP-Posting-Host: enterpoop.mit.edu\n>To: xpert@expo.lcs.mit.edu\n>\n>\tWe are looking for a X client which can convert a xwd or a bitmap\n>file into a gif file for use on a Macintosh.\n>\n>\tThanks\n>\n>\t\tmichel@crnsu1.in2p3.fr\n>\t\tLaurent MICHEL\n>\t\tCRN - GTI\n>\t\tBP 20\n>\t\t67037 STRASBOURG cedex (France)\n>\t\tPhone (33) 88 28 62 76\n\nJust look at the pbmplus package; it does everything you could ever ask\nfor in converting pbm to almost any format (gif, tga, pcx etc...)\n\nArno Duijndam\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1671, "properties": {"category": "comp.windows.x", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Re: Honors Degrees: Do they mean anything?\nOrganization: Ford Motor Company Research Laboratory\nLines: 27\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\nJustin Kibell (jck@catt.citri.edu.au) wrote:\n: What has this got to do with comp.windows.x?\n: \n\nI agree that this is a side track, but it is funny that I skip so many\nother articles (threads) but I couldn't resist reading this one.\n\nMy beliefs, opinions, and expressions are strictly my own and do not\nrepresent or reflect any official or unofficial policies or attitudes\nof any other person or organization....\n \nbut.  I have heard that Ford Motor Company has (had) a recruiting bias\ntoward engineers and away from computer science graduates.  The reasoning\nis supposedly to better meet long range personnel requirements.  This is\nevidenced by the large number of CS people who are employed via contracts\nand are not brought on board except in special circumstances.  This is\na generalization which obviously doesn't always hold true, but there are\nstatistics.  Furthermore, most \"software engineering\" at Ford gets done\nby electrical engineers.  I know of 2 univerities that have merged the\ncomputer science department and the electrical engineering so that you\ncan get a computer degree which qualifies you for much more than programming.\n\nBut since my beliefs and opinions are merely figments of my distorted\nimagination I suppose I should keep it to myself.\n\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1672, "properties": {"category": "talk.religion.misc", "text": "Organization: City University of New York\nFrom: <KEVXU@CUNYVM.BITNET>\nSubject:    re: ABORTION and private health insurance\nLines: 22\n\n>In <1qid8s$ik0@agate.berkeley.edu> dzkriz@ocf.berkeley.edu (Dennis Kriz)\nwrites:\n\n  >I recently have become aware that my health insurance includes\n  >coverage for abortion.  I strongly oppose abortion for reasons of\n  >conscience.  It disturbs me deeply to know that my premiums may\n  >be being used to pay for that which I sincerely believe is\n  >murder.  I would like to request that I be exempted from abortion\n  >coverage with my health premiums reduced accordingly.\n\nI share Dennis's outrage over a similar manner.  I have recently become aware\nthat my health insurance includes coverage for illness and injuries\nsuffered by Christians.  It disturbs me deeply to know that my premiums\nmay be used to pay for that which I sincerely believe is divine\npunishment for their sinful conduct.  In addition these folks are able to\navail themselves of such alternative therapies as Lourdes, Fatima,\nMorris Cerullo, Benny Hinn, etc.  In any case as \"Jesus Saves' I feel\nthat there is no reason for them to be covering their bets at my\nexpense.  I would like to request that I be exempted from Christian\ncoverage with my health premiums reduced accordingly.\n\nJack Carroll\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1673, "properties": {"category": "soc.religion.christian", "text": "From: Petch@gvg47.gvg.tek.com (Chuck Petch)\nSubject: Daily Verse\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 6\n\n\n   But someone will say, \"You have faith; I have deeds.\" \n    Show me your faith without deeds, and I will show you my faith by what\nI do. \n\nJames 2:18\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1674, "properties": {"category": "talk.politics.mideast", "text": "From: arens@ISI.EDU (Yigal Arens)\nSubject: Re: Ten questions about Israel\nOrganization: USC/Information Sciences Institute\nLines: 184\nDistribution: world\nNNTP-Posting-Host: grl.isi.edu\nIn-reply-to: backon@vms.huji.ac.il's message of 20 Apr 93 21:38:19 GMT\n\nIn article <1993Apr20.213819.664@vms.huji.ac.il> backon@vms.huji.ac.il writes:\n>\n> In article <1483500349@igc.apc.org>, cpr@igc.apc.org (Center for Policy Research) writes:\n> >\n> > 4.      Is it true that in Israeli prisons there are a number of\n> > individuals which were tried in secret and for which their\n> > identities, the date of their trial and their imprisonment are\n> > state secrets ?\n>\n>\n> Apart from Mordechai Vanunu who had a trial behind closed doors, there\n> was one other espionage case (the nutty professor at the Nes Ziona\n> Biological Institute who was a K.G.B. mole) who was tried \"in camera\".\n> I wouldn't exactly call it a state secret. The trial was simply tried\n> behind closed doors. I hate to disappoint you but the United States\n> has tried a number of espionage cases in camera.\n\nAt issue was not a trial behind closed doors, but arrest, trial and\nimprisonment in complete secrecy.  This was appraently attempted in the\ncase of Vanunu and failed.  It has happened before, and there is reason\nto believe it still goes on.\n\nRead this:\n\nFrom Ma'ariv, February 18 (possibly 28), 1992\n\nPUBLICATION BAN\n\n        The State of Israel has never officially admitted that for many\n        years there have been in its prisons Israeli citizens who were\n        sentenced to long prison terms without either the fact of\n        their arrest or the crimes of which they were accused ever\n        being made public.\n\nBy Baruch Me'iri\n\nAll those involved in this matter politely refused my request, one way\nor another: \"Look, the subject is too delicate.  If I comment on it, I\nwill be implicitly admitting that it is true; If I mention a specific\ncase, even hint at it, I might be guilty of making public something\nwhich may legally not be published\".\n\nThe State of Israel has never officially admitted that for many years\nthere have been in its prisons Israeli citizens who were sentenced to\nlong prison terms without either the fact of their arrest or the\ncrimes of which they were accused ever being made public. More\nprecisely: A court ordered publication ban was placed on the fact of\ntheir arrest, and later on their imprisonment.\n\nIn Israel of 1993, citizens are imprisoned without us, the citizens of\nthis country, knowing anything about it.  Not knowing anything about\nthe fact that one person or another were tried and thrown in prison,\nfor security offenses, in complete secrecy.\n\nIn the distant past -- for example during the days of the [Lavon - YA]\naffair -- we heard about \"the third man\" being in prison.  But many\nyears have passed since then, and what existed then can today no\nlonger be found even in South American countries, or in the former\nCommunist countries.\n\nBut it appears that this is still possible in Israel of 1993.\n\nThe Chair of the Knesset Committee on Law, the Constitution and\nJustice, MK David Zucker, sent a letter on this subject early this\nweek to the Prime Minister, the Minister of Justice, and the Cabinet\nLegal Advisor.  Ma'ariv has obtained the content of the letter:\n\n\"During the past several years a number of Israeli citizens have been\nimprisoned for various periods for security offenses.  In some of\nthese cases a legal publication ban was imposed not only on the\nspecifics of the crimes for which the prisoners were convicted, but\neven on the mere fact of their imprisonment.  In those cases, after\nbeing legally convicted, the prisoners spend their term in prison\nwithout public awareness either of the imprisonment or of the\nprisoner\", asserts MK Zucker.\n\nOn the other hand Zucker agrees in his letter that, \"There is\nabsolutely no question that it is possible, and in some cases it is\nimperative, that a publication ban be imposed on the specifics of\nsecurity offenses and the course of trials.  But even in such cases\nthe Court must weigh carefully and deliberately the circumstances\nunder which a trial will not be held in public.\n\n\"However, one must ask whether the imposition of a publication ban on\nthe mere fact of a person's arrest, and on the name of a person\nsentenced to prison, is justified and appropriate in the State of\nIsrael.  The principle of public trial and the right of the public to\nknow are not consistent with the disappearance of a person from public\nsight and his descent into the abyss of prison.\"\n\nZucker thus decided to turn to the Prime Minister, the Minister of\nJustice and the Cabinet Legal Advisor and request that they consider\nthe question.  \"The State of Israel is strong enough to withstand the\ncost incurred by abiding by the principle of public punishment.  The\nState of Israel cannot be allowed to have prisoners whose detention\nand its cause is kept secret\", wrote Zucker.\n\nThe legal counsel of the Civil Rights Union, Attorney Mordechai\nShiffman said that, \"We, as the Civil Rights Union, do not know of any\ncases of security prisoners, Citizens of Israel, who are imprisoned,\nand whose imprisonment cannot be made public.  This is a situation\nwhich, if it actually exists, is definitely unhealthy.  Just like\ncensorship is an unhealthy matter\".\n\n\"The Union is aware\", says Shiffman, \"of cases where notification of a\nsuspect's arrest to family members and lawyers is withheld.  I am\nspeaking only of several days.  I know also of cases where a detainee\nwas not allowed to meet with an attorney -- sometimes for the whole\nfirst month of arrest.  That is done because of the great secrecy.\n\n\"The suspect himself, his family, his lawyer -- or even a journalist --\ncan challenge the publication ban in court.  But there are cases where\nthe family members themselves are not interested in publicity.  The\njournalist knows nothing of the arrest, and so almost everyone is\nhappy...\"\n\nAttorney Yossi Arnon, an official of the Bar, claims that given the\nlaws as they exist in Israel today, a situation where the arrest of a\nperson for security offenses is kept secret is definitely possible. \n\"Nothing is easier.  The court orders a publication ban, and that's\nthat.  Someone who has committed security offenses can spend long\nyears in prison without us knowing anything about it.\"\n\n-- Do you find this situation acceptable?\n\nAttorney Arnon: \"Definitely not.  We live in a democratic country, and\nsuch a state of affairs is impermissible.  I am well aware that\npublication can be damaging -- from the standpoint of security -- but\ntotal non-publication, silence, is unacceptable. Consider the trial of\nMordechai Vanunu: at least in his case we know that he was charged\nwith aggravated espionage and sentenced to 18 years in prison.  The\ntrial was held behind closed doors, nobody knew the details except for\nthose who were authorized to.  It is somehow possible to understand,\nthough not to accept, the reasons, but, as I have noted, we at least\nare aware of his imprisonment.\"\n\n-- Why is the matter actually that serious?  Can't we trust the\ndiscretion of the court?\n\nAttorney Arnon: \"The judges have no choice but to trust the\npresentations made to them. The judges do not have the tools to\ninvestigate.  This gives the government enormous power, power which\nthey can misuse.\"\n\n-- And what if there really is a security issue?\n\nAttorney Arnon: \"I am a man of the legal system, not a security expert.\n Democracy stands in opposition to security.  I believe it is possible\nto publicize the matter of the arrest and the charges -- without\nentering into detail.  We have already seen how the laws concerning\npublication bans can be misused, in the case of the Rachel Heller\nmurder.  A suspect in the murder was held for many months without the\nmatter being made public.\"\n\nAttorney Shiffman, on the other hand, believes that state security can\nbe a legitimate reason for prohibiting publication of a suspect's\narrest, or of a convicted criminal's imprisonment.  \"A healthy\nsituation?  Definitely not.  But I am aware of the fact that mere\npublication may be harmful to state security\".\n\nA different opinion is expressed by attorney Uri Shtendal, former\nadvisor for Arab affairs to Prime Ministers Levi Eshkol and Golda\nMeir.  \"Clearly, we are speaking of isolated special cases.  Such\nsituations contrast with the principle that a judicial proceeding must\nbe held in public. No doubt this contradicts the principle of freedom\nof expression.  Definitely also to the principle of individual freedom\nwhich is also harmed by the prohibition of publication.\n\n\"Nevertheless\", adds Shtendal, \"the legislator allowed for the\npossibility of such a ban, to accommodate special cases where the\ndamage possible as a consequence of publication is greater than that\nwhich may follow from an abridgment of the principles I've mentioned.\nThe authority to decide such matters of publication does not rest with\nthe Prime Minister or the security services, but with the court, which\nwe may rest assured will authorize a publication ban only if it has\nbeen convinced of its need beyond a shadow of a doubt.\"\n\nNevertheless, attorney Shtendal agrees: \"As a rule, clearly such a\nphenomenon is undesirable. Such an extreme step must be taken only in\nthe most extreme circumstances.\"\n--\nYigal Arens\nUSC/ISI                                                TV made me do it!\narens@isi.edu\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1675, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Medication For Parkinsons\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 15\n\nIn article <19621.3049.uupcb@factory.com> jim.zisfein@factory.com (Jim Zisfein) writes:\n\n>If you want to throw around names, Drs. Donald Calne, Terry Elizan,\n>and Jesse Cedarbaum don't recommend selegiline (not to mention Dr.\n>William Landau).\n>\n\nGosh, Jesse is that famous now?  He was my intern.  Landau not liking\nit makes me like it out of spite.  (Just kidding, Bill).  \n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1676, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 23\n\nIn article <stevethC5JGCr.1Ht@netcom.com> steveth@netcom.com (Steve Thomas) wri\ntes:\n\n>\n>Just _TRY_ to justify the War On Drugs, I _DARE_ you!\n>\n\nA friend of mine who smoke pot every day and last Tuesday took 5 hits of acid \nis still having trouble \"aiming\" for the bowl when he takes a dump.  Don't as \nme how, I just have seen the results.\n\nBoy, I really wish we we cut the drug war and have more people screwed up in \nthe head.\n\n\n\n>--\n>_______\n>Steve Thomas\n>steveth@rossinc.com\n\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1677, "properties": {"category": "rec.motorcycles", "text": "From: arnie@magnus.acs.ohio-state.edu (Arnie Skurow)\nSubject: Re: Solar battery chargers -- any good?\nNntp-Posting-Host: photon.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 28\n\nIn article <1993Apr16.061736.8785@CSD-NewsHost.Stanford.EDU> robert@Xenon.Stanf\nord.EDU (Robert Kennedy) writes:\n>I've seen solar battery boosters, and they seem to come without any\n>guarantee. On the other hand, I've heard that some people use them\n>with success, although I have yet to communicate directly with such a\n>person. Have you tried one? What was your experience? How did you use\n>it (occasional charging, long-term leave-it-for-weeks, etc.)?\n>\n>    -- Robert Kennedy\n\nI have a cheap solar charger that I keep in my car.  I purchased it via\nsome mail order catalog when the 4 year old battery in my Oldsmobile would\nrun down during Summer when I was riding my bike more than driving my car.\nKnowing I'd be selling the car in a year or so, I purchased the charger.\nBelieve it or not, the thing worked.  The battery held a charge and\nenergetically started the car, many times after 4 or 5 weeks of just\nsitting.\n\nEventually I had to purchase a new battery anyway because the Winter sun\nwasn't strong enough due to its low angle.\n\nI think I paid $29 or $30 for the charger.  There are more powerful, more\nexpensive ones, but I purchased the cheapest one I could find.\n\nI've never used it on the bike because I have an E-Z Charger on it and\nkeep it plugged in all the time the bike is garaged.\n\nArnie Skurow\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1678, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mikey@eukanuba.wpd.sgi.com (Mike Yang)\nSubject: Re: 17\" Monitors\nReply-To: mikey@sgi.com\nOrganization: Silicon Graphics, Inc.\nLines: 15\nNntp-Posting-Host: eukanuba.wpd.sgi.com\n\nIn article <1qulqa$hp2@access.digex.net>, rash@access.digex.com (Wayne Rash) writes:\n|> The F550iW is optimized for Windows.  It powers down when the screen\n|> blanker appears, it powers down with you turn your computer off, and it\n|> meets all of the Swedish standards.  It's also protected against  EMI from\n|> adjacent monitors. \n\nThanks for the info.\n\n|> Personally, I think the F550i is more bang for the buck right now.\n\nHow much more does the F550iW cost?\n\n-----------------------------------------------------------------------\n                 Mike Yang        Silicon Graphics, Inc.\n               mikey@sgi.com           415/390-1786\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1679, "properties": {"category": "rec.autos", "text": "From: lovall@bohr.physics.purdue.edu (Daniel L. Lovall)\nSubject: Buick heater controls\nSummary: My air vents don't work on my 71 Skylark\nDistribution: usa\nOrganization: Purdue University Physics Department\nLines: 31\n\nI have a '71 Buick Skylark with 148K on it.  I bought it in California, and if\nit'll let me, I'd like to keep it for another year.  The only problem is these\nIndiana winters--my heater controls don't work.\n\nThe car has vacuum operated control switches for the vents.  Right now it is\nstuck in the \"vent\" mode.  It will blow warm air, but I can't switch the air\nflow to either the floor (I can live without this) or the defrost (I can't \nlive without this).  I probably could just jam the air deflector to the \ndefrost position, but this blows a lot of air in my face and is, well,\nkind of like putting a vacuum cleaner in reverse.\n\nI have taken parts of the dash off and looked at the vacuum system and I think\nthe problem (or part of it) is with the two diaphragms which control up/down\nand outside/inside air flow.  THe diaphragm which controls outside(vent)/in-\nside(no vent) air is cracked most of the way around, and the other one is\nprobably damaged too, considering the advanced age of the car.\n\nTwo questions:\n\n\t1)  Is there anything I should be aware of about this (other than\n\tthe fact that I should move from Indiana) ?\n\n\t2)  In the event that replacement diaphragms aren't available, is there\n\ta way to \"fix\" this?\n\nTHanks for any advice/info\n\nselah,\n\nDan\nlovall@physics.purdue.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1680, "properties": {"category": "comp.graphics", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Gaspra Animation (QuickTime)\nKeywords: Gaspra, JPL\nOrganization: Jet Propulsion Laboratory\nLines: 22\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41\n\n\n                       ==============================\n                              GASPRA ANIMATION\n                                March 12, 1993\n                       ==============================\n\n     The Gaspra animation is now available at the Ames Space Archives in \nQuickTime format.  The animation was formed from 11 images taken by the \nGalileo spaecraft shortly before its closest approach to the asteroid in \nOctober 1991.  The animation is available using anonymous ftp to:\n\n        ftp:      ames.arc.nasa.gov (128.102.18.3)\n        user:     anonymous\n        cd:       pub/SPACE/ANIMATION\n        files:\n                  gaspra.qt \n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | It's kind of fun to do\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | the impossible. \n|_____|/  |_|/       |_____|/                     | Walt Disney\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1681, "properties": {"category": "misc.forsale", "text": "From: foxfire@access.digex.com (foxfire)\nSubject: Car Audio [Forsale]\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 19\nNNTP-Posting-Host: access.digex.net\n\nCar Audio Products for Sale...\n\nKicker (Stillwater Designs) - SS10x2: 2 10\" Kickers in a sealed box. The box\n       is manufactured direct from Kicker. (Instructions).\n*******Asking $175 + Shipping\n\n\nKicker (Stillwater Designs) - 2 Kicker 12\" Subwoofers. (Instructions).\n*******Asking $175 + Shipping (Sold as a pair only!)\n\n\nKenwood KAC923 Amp - 220 Watts X 2. 2 ohm stable (Box & Instruction Included).\n*******Asking $375 + Shipping \n\nIm selling the above item for a friend without Internet access... You can\neither E-Mail me or call him (Mike Metalios) at (410)665-5773.\n\nFoxfire\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1682, "properties": {"category": "sci.space", "text": "From: ghelf@violet.berkeley.edu (;;;;RD48)\nSubject: Re: space food sticks\nKeywords: food\nArticle-I.D.: agate.1pr5u2$t0b\nOrganization: University of California, Berkeley\nLines: 19\nNNTP-Posting-Host: violet.berkeley.edu\n\nI had spacefood sticks just about every morning for breakfast in\nfirst and second grade (69-70, 70-71).  They came in Chocolate,\nstrawberry, and peanut butter and were cylinders about 10cm long\nand 1cm in diameter wrapped in yellow space foil (well, it seemed\nlike space foil at the time).  \n\nThe taste is hard to describe, although I remember it fondly.  It was\nmost certainly more \"candy\" than say a modern \"Power Bar.\"  Sort of\na toffee injected with vitamins.  The chocolate Power Bar is a rough\napproximation of the taste.  Strawberry sucked.\n\nMan, these were my \"60's.\"\n\n\n-- \nGavin Helf\nUC Berkeley Political Science\nBerkeley-Stanford Program in Soviet Studies\nghelf@violet.berkeley.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1683, "properties": {"category": "talk.politics.guns", "text": "From: yoony@aix.rpi.edu (Young-Hoon Yoon)\nSubject: Re: Gun Talk -- Legislative Update for States\nKeywords: gun talk, ila\nNntp-Posting-Host: aix.rpi.edu\nDistribution: usa\nLines: 27\n\nviking@iastate.edu (Dan Sorenson) writes:\n\n>lvc@cbnews.cb.att.com (Larry Cipriani) writes:\n\n>>IOWA:  All firearm related bills are dead.  Senate File 303\n>>dealing with off-duty police officers carrying concealed remains\n>>viable.\n\n>\tThe *POWER* of the word processor and a stamp at work.\n>The fact that around here the state rep generally lives no more than\n>nine miles from any constituent doesn't hurt, either.\n\n>< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n><  ISU only censors what I read, not what I say.  Don't blame them.  >\n><     USENET: Post to exotic, distant machines.  Meet exciting,      >\n><                 unusual people.  And flame them.                   >\n\n\nDoes anyone know the particulars on the Senate File 303?\nDoes this bill allow or deny off-duty police from carrying concealed?\n\nFrom what information that I have, Iowa has a discretionary permit policy\non CCW.  If S 303 allows police(off-duty) to carry concealed then I would\nbe inclined to oppose it.  I don't believe off-duty police officers should\nhave any more rights than civilians.  If law or policy prevents law-abiding\ncitizens from being armed for self defense then why should off-duty police\nofficer be treated any differently.  \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1684, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dlc@umcc.umcc.umich.edu (David Claytor)\nSubject: Re: Noisy SE: What can I do?\nOrganization: UMCC, Ann Arbor, MI\nLines: 27\nDistribution: usa\nNNTP-Posting-Host: umcc.umcc.umich.edu\n\nIn article <1qk2rjINN503@cae.cad.gatech.edu> vincent@cad.gatech.edu (Vincent Fox) writes:\n>There's this old SE here. It's got the older-style fans that remind\n>me of a house-ventilator. A cylindrical drum instead of the bladed rotor\n>I usually see. Anyway, the SE makes this loud buzzing noise due\n>to vibration somewheres. If I remove the screws and loosen the front\n>from the back, it quiets down. I can only assume that the fan housing\n>from this goofy thing is touching the back of the case and vibrating\n>against it. \n>\n>Anyway, any suggestions for where to get replacement fans and how to\n>\"stealth\" this guy? Your experiences welcome.....\n>\n>-- \n>\"If everything had gone as planned, everything would have been perfect.\"\n>\t-BATF spokesperson on CNN 3/2/93, regarding failed raid attempt in TX.\n\n\nWhen I owned an SE, I replaced the fan with SE Silencer, available, I\nbelieve, from MacWarehouse or MacConnection.  It comes with instruction for\ninstallation and requires no soldering.  Worked like a charm.  I think the\nmanufacturer is Mobius.\n\n__Dave\n\n-- \n                           dlc@umcc.ais.org  313.485.3394\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1685, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: august1@server.uwindsor.ca (AUGUSTYN  ROBERT         )\nSubject: Data path width from 16 to 32 bits but speed less then double?\nOrganization: University of Windsor, Ontario, Canada\nLines: 5\n\nIn evolution of 80-x86 data path width has been doubled from \n8 to 16 t0 32 bits but the speed of data processing has not increased at\nsame rate.The question is Why? What is relationship bettween data path width and data processing speed?\nThanks in advance for the input.\nRobert. \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1686, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: de7043@medtronic.COM (Don Eller)\nSubject: Re: MIDI files on MS-Win3.1 and SoundBlaster 1.0?\nArticle-I.D.: medtron.1993Apr22.190051.23597\nOrganization: Medtronic, Inc.\nLines: 31\nNntp-Posting-Host: bhutan.inst.medtronic.com\nX-Newsreader: TIN [version 1.1 PL8]\n\nThe Cybard (dudek@acsu.buffalo.edu) wrote:\n: I have a 486DX-33 computer with a SoundBlaster 1.0 card.  I'm running\n: Microsoft Windows v3.1.  I have the SB driver set up properly to play\n: normal sounds (.WAV files, etc.).  I want to play midi files through the\n: Media Player that is included with windows.  I know I have to set up the\n: patch maps or something in the MIDI-Mapper in the Control Panel.  I KNOW\n: NOTHING ABOUT MIDI.  (This is to be the way I'll get my feet wet.)\n\n: How do I set up Windows so that I can play MIDI files?\nIf you install the Soundblaster windows drivers correctly, and have\nthe latest drivers, the media player should be setup to play files\nauthored to Microsoft's Multimedia midi authoring standard (General\nMidi), see the section in the back of the Voyetra manual in the\nSoundblaster midi upgrade kit.\nYou'll find that midi files exist with all kinds of different\nmappings, so don't expect them to always sound correct without using\nsome kind of midi file editor, such as Voyetra's Sequencer Plus.\n\nYou can attempt to use the midi-mapper to remap the patches for\nsoundblaster, but since you cannot modify the sbfm.drv you are allways\nstuck with the instruments that come with this driver.  Unless you can\nfind an editor for making modifications to the instrument settings in\nsbfm.drv , I would suggest you locate the early version of\nsoundblaster drivers that were mapped to mt32 voices, and the later\ndrivers that are mapped to the general midi voices.   \n:   \n: -- \n: David Thomas Dudek /  v098pwxs@ubvms.bitnet     \\     __   _ The Cybard\n:  State University / dudek@sun.acsu.buffalo.edu   \\   /  `-' )      ,,, \n:    of New York   / \"If music be the food of love, \\  | | ()|||||||[:::}\n:     @ Buffalo   /   play on!\" - Wm. Shakespeare    \\ `__.-._)      ''' \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1687, "properties": {"category": "rec.autos", "text": "From: laszlo@csd4.csd.uwm.edu (Tyson F Nuss)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: University of Wisconsin - Milwaukee\nLines: 37\nReply-To: laszlo@csd4.csd.uwm.edu\nNNTP-Posting-Host: 129.89.7.4\nOriginator: laszlo@csd4.csd.uwm.edu\n\nFrom article <1pq6i2$a1f@news.ysu.edu>, by ak296@yfn.ysu.edu (John R. Daker):\n> \n> Cup holders (driving is an importantant enough undertaking)\n> Ashtrays (smokers seem to think it's just fine to use the road)\n\n\tOh, sure -- sorry, but the absence of a cupholder is not gonna\ndiscourage anyone from eating/drinking in the car;  let's just put one\nin anyway, so at least they don't have the further distraction of trying\nnot to spill it.\n\tFurthermore, you are obviously not a smoker; on a cold day, it\ntakes a certain skill to toss a butt out of a cracked window without having\nit wind-deflect into the back seat.  Also, just 'cause some smokers use\nthe window, doesn't mean all of us do.\n\tThis reminds me of *one* pleasant feature in the otherwise\nergonomically-hellish interior of the Alfa Romeo Milano:  you could ash\nyour cigarette without even removing your hand from the wheel; the 'tray\nwas *right*there*.\n\n> Fake convertible roofs and vinyl roofs.\n> Any gold trim.\n\n\tThese, I will agree, are abominations, right along with the fake\ncontinental spare-tire kit -- it's sad watching those little old ladies \ntry to load their groceries into the trunk with that huge tire-medallion\nin the way.\n\tMost pitiful fake convertible top: on a \"Cadillac\" Cimarron, with\nall the chrome door trim still visible -- not fooling *anyone*.\nOf course, there was that Hyundai Excel I once saw...\n\n%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\n___    A      laszlo@csd4.csd.uwm.edu\n| |   {*}     Redhead Afficionado Extraordinaire   *and*\n| |  __V__    Little Canadia's Minister of Fine Tobaccos\n|_|o_|%%%|0_  Cigaret brands sampled: 55 import/luxury, 17 handrolling\n   |       |\n   |       |  These opinions are not necessarily mine (or mine, either).\n   |_______| -----> Can anyone bum me a .sig?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.079+0000", "event": "documents", "entityId": 1688, "properties": {"category": "rec.autos", "text": "From: wrat@unisql.UUCP (wharfie)\nSubject: Re: Too fast\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 24\n\nIn article <1qkon8$3re@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>larger engine.  That's what the SHO is -- a slightly modified family\n>sedan with a powerful engine.  They didn't even bother improving the\n>*brakes.*\n\n\tThat shows how much you know about anything.  The brakes on the\nSHO are very different - 9 inch (or 9.5? I forget) discs all around,\nvented in front.  The normal Taurus setup is (smaller) discs front, \ndrums rear.\n\n\tYour argument still boils down to \"An SHO shouldn't be driven\nfast because I, Jim Frost, say it isn't designed to go fast.\"\n\n\tPffffftttttt.\n\n>If you think so you sure don't pay attention to my postings.\n\n\tDamn straight.  You're one of those people who makes stuff\nup and tries to pawn it off as God's own truth.  If I want lies I can\ngo listen to television.\n\n\t\t\t\t\t\t\tthe wharf rat\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1689, "properties": {"category": "rec.sport.baseball", "text": "From: stwombly@cs.ulowell.edu (Steve Twombly)\nSubject: Red Sox win 1st\nOrganization: UMass-Lowell Computer Science\nLines: 8\n\nBoSox 3     Royals 1\n\nWP: Clemens (1-0)\nLP: Appier  (0-1)\n\nKey Hit:  Mike Greenwell's 2 out tripple with bases loaded.\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1690, "properties": {"category": "talk.religion.misc", "text": "From: decay@cbnewsj.cb.att.com (dean.kaflowitz)\nSubject: Re: Spreading Christianity (Re: Christian Extremist Kills Doctor)\nOrganization: AT&T\nDistribution: na\nLines: 29\n\nIn article <C51puA.K2u@mailer.cc.fsu.edu>, dlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n> \"David R. Sacco\" <dsav+@andrew.cmu.edu> writes:\n> >    Not to be too snide about it, but I think this Christianity must\n> >    be a very convenient religion, very maliable and suitable for\n> >    any occassion since it seems one can take it any way one wants\n> >    to go with it and follow whichever bits one pleases and\n> >    reinterpret the bits that don't match with one's desires.  It\n> >    is, in fact, so convenient that, were I capable of believing\n> >    in a god, I might consider going for some brand of Christianity.\n> >    The only difficulty left then, of course, is picking which sect\n> >    to join.  There are just so many.\n> >     \n> >    Dean Kaflowitz\n> > \n> > Yes, Christianity is convenient.  Following the teachings of Jesus\n> > Christ and the Ten Commandments is convenient.  Trying to love in a\n> > hateful world is convenient.  Turning the other cheek is convenient.  So\n> > convenient that it is burdensome at times.\n> \n> Some Christians take a 10% discount off the Ten Commandments.  Sunday\n> cannot be substituted for the Sabbath.\n\n\nMake that 20%.  Where did I see that poll recently about the\nvery religious and adultery?  Was it this newsgroup or alt.atheism\nor some other place?\n\nDean Kaflowitz\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1691, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: adcock@bnr.ca (Doug Adcock)\nSubject: Perfect MAG MX15F Monitors?\nOrganization: Bell-Northern Research, BNR-RTP \nLines: 26\n\nI've been intently following the MAG thread while waiting for\nmine to arrive in the mail. There seems to be a lot of\ncomplaints about minor alignment problems with the MX15F. One\narticle contained a comment that the owner called the factory\nand was told that his screen rotation was within spec (1/4\").\n\nWell, my monitor arrived last night and, sure enough, it has\na very noticable barrel distortion. It's not dramatic, but it\nis there and it is especially noticable when the image doesn't\nfill the entire screen. The fact that it is worse on the right\nside doesn't help matters.\n\nWhat I'm trying to find out is if these minor imperfections\nare the norm or are most of their monitors perfect? I don't want\nto send it back and get one with the same or an even worse\nproblem. Does the factory consider this kind of thing normal\nand ship their monitors with less than perfect alignment? \nAre other netters just living with these kind of imperfections?\n\n-- \n\n...............................................................\n:      Comments and opinions are mine - not BNR's             :\n: Doug Adcock                      adcock@bnr.ca              :\n: Bell-Northern Research           Research Triangle Park, NC :\n...............................................................\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1692, "properties": {"category": "talk.politics.guns", "text": "From: manes@magpie.linknet.com (Steve Manes)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nOrganization: Manes and Associates, NYC\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 24\n\nJ. Spencer (J.M.Spencer@newcastle.ac.uk) wrote:\n: manes@magpie.linknet.com (Steve Manes) writes:\n\n: >Jim De Arras (jmd@cube.handheld.com) wrote:\n: >: > Last year the US suffered almost 10,000 wrongful or accidental\n: >: > deaths by handguns alone (FBI statistics).  In the same year, the UK\n: >: > suffered 35 such deaths (Scotland Yard statistics).  The population\n: >: > of the UK is about 1/5 that of the US (10,000 / (35 * 5)).  Weighted\n: >: > for population, the US has 57x as many handgun-related deaths as the\n: >: > UK.  And, no, the Brits don't make up for this by murdering 57x as\n: >: > many people with baseball bats.\n\n: [snip]\n\n: If you examine the figures, they do. Stabbing is favourite, closely\n: followed by striking, punching, kicking. Many more people are burnt to\n: death in Britain as are shot to death. Take at look and you'll see for\n: yourself. \n\nIt means that very few people are shot to death in Great Britain.\n-- \nStephen Manes\t\t\t\t\t   manes@magpie.linknet.com\nManes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1693, "properties": {"category": "talk.politics.misc", "text": "From: garrett@Ingres.COM \nSubject: Re: fillibuster\nSummary: Proceedure\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nKeywords: \nOrganization: ASK Computer Systems, Ingres Product Division\nLines: 24\n\nIn article <C5JpL7.5Cz@dscomsa.desy.de>, hallam@zeus02.desy.de                            writes...\n>In article <1993Apr12.002302.5262@martha.utcc.utk.edu>, PA146008@utkvm1.utk.edu (David Veal) writes:\n>|>>And like the house of lords which it is copied from it was given pretty\n>|>>wide powers. Unfortunately they started to use them and thus the gridlock\n>|>>set in.\n>|>\n>|>       I wasn't aware the House of Lords had \"wide powers.\"  I was under the\n>|>impression is was pretty powerless compared to the House of Commons, and\n>|>certainly didn't have almost equal their powers.  (The Senate is restricted\n>|>only that it may not introduce bills relating to raising revenue.)\n> \n>The Senate was less powerful than the House of Lords in the period in question.\n>The stripping of the powers of the House of Lords did not occur until 1914\n>and David Llloyd George's budget. Even despite this the House of Lords has\n>considerable power even today and is far from a rubber stamping body. \n> \nJust how much power does the House of Lords have now? \n\n------------------------------------------------------------------------------\n\"Who said anything about panicking?\" snapped Authur.           Garrett Johnson\n\"This is still just culture shock. You wait till I've       Garrett@Ingres.com\nsettled into the situation and found my bearings.\nTHEN I'll start panicking!\" - Douglas Adams  \n------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1694, "properties": {"category": "rec.autos", "text": "From: dreitman@oregon.uoregon.edu (Daniel R. Reitman, Attorney to Be)\nSubject: Re: legal car buying problems\nOrganization: University of Oregon\nLines: 41\nDistribution: ca\nNNTP-Posting-Host: oregon.uoregon.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr20.143930.13144@chpc.org>,\n rboudrie@chpc.org (Rob Boudrie) writes...\n>In article <9285.27317@stratus.SWDC.Stratus.COM>\n> bob@runway.swdc.stratus.com (Bob Hutson) writes:\n>>After agreeing to terms I signed the contract and drove home in my new\n>>car.  Later that same night I noticed that the terms in the were\n>>different from the terms I had agreed to.  (I made the stupid mistake\n>>of not checking everything on the contract).  This all happened last\n>>Saturday.\n\n>>I have heard that there is a \"cooling-off\" law allowing me three days\n>>to reconsider the contract.  Is this true?  Can anyone point me to the\n>>law?  The transaction happened at the dealership, if it matters.\n\n>This cooling off period applies only in certain situations - lik ewhen\n>you are solicited at home.  I also think the cooling off period ends\n>if you actually accept the merchandise.\n\n>If this were not the case, any car buyer would have the right to return\n>a slightly used, highly devalued, car 2 days after buying it.  Yeah - \n>that's the trick - if I want to buy a new car, I'd have a firend buy \n>& return one, then go in and negotiate a better deal on a pre-owned\n>used car.\n\nFOR DISCUSSION PURPOSES ONLY\n\nOn the other hand, if it can be proven, it's possible the changed \nterms could be thrown out.  The question will be whether the \nagreement contains a merger clause.  See UCC @ 2-202 (parol \nevidence).  If we're talking about warranties, then, of course, \nUCC @ 2-316 should be looked at.\n\nBut we have so little information that none of us can say anything \nconclusive.\n\n\t\t\t\t\t\tDaniel Reitman\n\n\"The Uniform Commercial Code protects the innocent purchaser, but it is not a \nshield for the sly conniver, the blindly naive, or the hopelessly gullible.\"\nAtlas Auto Rental Corp. v. Weisberg, 54 Misc. 2d 168, 172, 281 N.Y.S.2d 400, \n405 (N.Y. City Civ. Ct. 1967).\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1695, "properties": {"category": "rec.motorcycles", "text": "From: jet@netcom.Netcom.COM (J. Eric Townsend)\nSubject: Re: Insurance and lotsa points...\nIn-Reply-To: cjackson@adobe.com's message of Mon, 19 Apr 1993 21:13:40 GMT\nOrganization: Netcom Online Communications Service\n\t<1993Apr19.211340.12407@adobe.com>\nLines: 25\n\n\"cjackson\" == Curtis Jackson <cjackson@adobe.com> writes:\n\ncjackson> I am very glad to know that none of you judgemental little shits has\ncjackson> ridden/driven when too tired, sleepy, hungover, angry, or distracted\ncjackson> in the last 3 years. Why, if you had then you might be just as guilty\n\nSome of us not-so judgmental little shits don't drive/ride when we're\nimpaired.  I stopped doing that sort of thing when a good friend of\nmine got killed by a drunk driver who failed to stop for a red and\ndrove through the side of her volvo in his '72 caddy.\n\nThen again, I suspect most of the responsible adults on the net don't\nbother posting in flame wars on rec.moto.\n\ncjackson> \"There is no justification for taking away individuals' freedom\ncjackson>  in the guise of public safety.\" -- Thomas Jefferson\n\nHe also owned slaves, kept some as forced concubines, and had enough\nresources to do what he wanted without fear of reprisal.  Then again,\nhe also smoked dope.\n-- \njet@netcom.com -- J. Eric Townsend -- '92 R100R, DoD# (hafta kill you...)\nThis is my fun account -- work email goes to jet@nas.nasa.gov\n\"You got to put down the ducky if you wanna play saxophone.\"\nSkate UNIX or die, boyo.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1696, "properties": {"category": "misc.forsale", "text": "From: europa@eng.umd.edu (Tae Hun Kim)\nSubject: NEW Hard Drive SALE!!!\nOrganization: University of Maryland\nLines: 7\nNNTP-Posting-Host: coke.eng.umd.edu\n\nSeagate 1.2GB SCSI hard Drive\nBrand NEW with full factory warranty.\n5-1/4\" FH, 15ms access time, 150,000 MTBF\nOnly $1100+s/h.\n\nLeave E-mail if interested.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1697, "properties": {"category": "rec.motorcycles", "text": "From: essbaum@rchland.vnet.ibm.com (Alexander Essbaum)\nSubject: Re: Countersteering_FAQ please post\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: florida.rchland.ibm.com\nOrganization: IBM Rochester\nLines: 18\n\nIn article <12739@news.duke.edu>, infante@acpub.duke.edu (Andrew  Infante) writes:\n|> In article <05APR93.02678944.0049@UNBVM1.CSD.UNB.CA> C70A@UNB.CA (C70A000) writes:\n|> >In article <C4zKCL.FGC@ux1.cso.uiuc.edu> Eric@ux1.cso.uiuc.edu (93CBR900RR) writes:\n|> >>Would someone please post the countersteering FAQ...i am having this awful\n|> >>time debating with someone on why i push the right handle of my motorcycle\n|> >>foward when i am turning left...and i can't explain (well at least) why this\n|> >>happens...please help...post the faq...i need to convert him.\n|> >\n|> > Ummm, if you push on the right handle of your bike while at speed and\n|> >your bike turns left, methinks your bike has a problem.  When I do it\n|> \n|> Pushing the right side of my handlebars _will_ send me left.\n|> \n|> I'm sure others will take up the slack...\n\noh yes, i'm quite sure they will :)\n\naxel\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1698, "properties": {"category": "rec.motorcycles", "text": "From: cjackson@adobe.com (Curtis Jackson)\nSubject: Re: Cultural Enquiries\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 32\n\n}>More like those who use their backs instead of their minds to make\n}>their living who are usually ignorant and intolerant of anything outside\n}>of their group or level of understanding.\n\nThere seems to be some confusion between rednecks and white trash.\nThe confusion is understandable, as there is substantial overlap\nbetween the two sets. Let me see if I can clarify:\n\nRednecks: Primarily use their backs instead of their minds to make a\n\tliving. Usually somewhat ignorant (by somebody's standards,\n\tanyway) because they have never held education above basic\n\treading/writing/math skills to be that important to their\n\teventual vocation. Note I did not say stupid, just ignorant.\n\t(They might be stupid, but then so are some high percentage\n\tof any group).\n\nWhite trash: \"White trash fit the stereotype referred to by the\n\tword 'nigger' better than any black person I ever met, only\n\twith the added 'bonus' that white trash are mean as hell.\"\n\t-- my father. Genuinely lazy (not just out of work or under-\n\tqualified), good-for-nothing, dishonest, white people who are\n\tmean as snakes. The \"squeal like a pig\" boys in _Deliverance_\n\tmay or may not have been rednecks, but they were sure as hell\n\twhite trash.\n\nWhite trash are assuredly intolerant of anything outside of their\ngroup or level of understanding. Rednecks may or may not be.\n-- \nCurtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\nDoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\"\n\"There is no justification for taking away individuals' freedom\n in the guise of public safety.\" -- Thomas Jefferson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1699, "properties": {"category": "rec.sport.hockey", "text": "From: tvartiai@vipunen.hut.fi (Tommi Vartiainen)\nSubject: Re: Suhonen will NOT go to Jokerit\nKeywords: Suhonen\nNntp-Posting-Host: vipunen.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 12\n\nIn <tvartiai.734823058@vipunen.hut.fi> tvartiai@vipunen.hut.fi (Tommi Vartiainen) writes:\n\n>According to the inside information, Alpo Suhonen won't be the next headcoach\n>of Jokerit. It's pretty sure that Boris Majorov will continue, although owner\n>of the team previously said that he will chance the coach.\n\n>Tommi\nWrong information. They just announced that Suhonen has made a deal with \nJokerit.\n \n\nTommi\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1700, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: Need to find out number to a phone line\nOrganization: Megatest Corporation\nLines: 24\n\nIn article <20756.2bd16dea@ecs.umass.edu> alee@ecs.umass.edu writes:\n>\n>Greetings!\n>      \n>        Situation:  I have a phone jack mounted on a wall.  I don't\n>                    know the number of the line.  And I don't want\n>                    to call up the operator to place a trace on it.\n>\n>        Question:   Is there a certain device out there that I can\n>                    use to find out the number to the line?\n>        Thanks for any response.\n>                                                    Al\n\nThere is a number you can call which will return a synthesized\nvoice telling you the number of the line.  Unfortunately, for the\nlife of me I can't remember what it is. The telephone technicians\nuse it all the time.  We used to play around with this in our\ndorm rooms since there were multiple phone lines running between\nrooms.\n\nsorry!\n\naaron\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1701, "properties": {"category": "comp.windows.x", "text": "From: amathur@ces.cwru.edu (Alok Mathur)\nSubject: How to get 24bit color with xview frames ?\nOrganization: Case Western Reserve University\nLines: 55\nDistribution: world\nNNTP-Posting-Host: amethyst.ces.cwru.edu\n\nHi !\n\nI am using Xview 3.0 on a Sparc IPX under Openwindows along with a XVideo board\nfrom Parallax which enables me to use 24 bit color. I am having some problems\nutilizing the 24 bit color and would greatly appreciate any help in this matter.\n\nI use Xview to create a Frame and then create a canvas pane inside which I use\nto display live video. My video input is 24 bit color.\n\nThe problem is that my top level frame created as\n\tframe = (Frame) xv_create(NULL,FRAME,NULL);\nseems to have a depth of 8 which is propagated to my canvas.\n\nI would like to know how I can set the depth of the frame to be 24 bits.\nI tried using the following Xlib code :\n\nXVisualInfo visual_info;\nint depth = 24;\nColormap colormap;\nXSetWindowAttributes attribs;\nunsigned long valuemask = 0;\nWindow *win;\nXv_opaque frame;\n\nwin = xv_get(frame,XV_XID);\nXMatchVisualInfo(display,screen,depth,TrueColor,&visual_info);\n\n/* So far so good */\n\ncolormap = XCreateColormap(display,win,visual_info,AllocNone);\n\n/* It dies here with a BadMatch error :( */\n\nattribs.colormap = colormap;\nvaluemask |= CWColormap;\nXChangeWindowAttributes(display,w,valuemask,&attribs);\nXSetWindowColormap(display,win,colormap);\n\n\nAm I using a completely wrong approach here ? Is it possible to set the depth\nand colormap for a window created by Xview ? What am I doing wrong ?\n\nThanks in advance for any help that I can get. I would prefer a response via\nemail although a post on the newsgroup is also okay.\n\nThanks again,\n\n\nAlok.\n---\nALOK MATHUR\nComputer Science & Engg, Case Western Reserve Univ, Cleveland, OH 44106\n11414 Fairchild Road, #2, Cleveland, OH 44106\nOff - (216) 368-8871 Res - (216) 791-1261, email - amathur@alpha.ces.cwru.edu\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1702, "properties": {"category": "soc.religion.christian", "text": "From: cbc5b@virginia.edu (Charles Campbell)\nSubject: Re: Was Jesus Black?\nOrganization: University of Virginia\nLines: 21\n\n\n\tJesus was born a Jew.  We have biblical accounts of\nboth his mother's ancestry and his father's, both tracing back\nto David.  It seems reasonable to assume, therefore, that Jesus\nwas Semitic.\n\tAs an interesting aside, Jesus' being semitic makes him\nneither \"white\" nor \"black,\" and in some sense underscores the\npoint made earlier that his color was not important, it was his\nmessage, his grace, and his divinity that we should concentrate\non.\n\tFinally, I would direct anyone interested in African\ninvolvement in the church to the account of the conversion of\nthe Ethiopian eunuch in Acts chapter 9 (I think it's chapter\n9).  This is one of the earliest conversions, and the eunuch,\ntreasurer to the queen of the Ethiopians, was definitely\nAfrican.  Because \"Ethiopia\" at that time indicated a region\njust south of Egypt, many also speculate that this man was not\nonly the first African Christian, but the first black Christian\nas well.  \nGod bless,\nCharles Campbell\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1703, "properties": {"category": "sci.space", "text": "From: daviss@sweetpea.jsc.nasa.gov (S.F. Davis)\nSubject: Re: japanese moon landing/temporary orbit\nOrganization: NSPC\nLines: 46\n\nIn article <pgf.735012282@srl03.cacs.usl.edu>, pgf@srl03.cacs.usl.edu (Phil G. Fraering) writes:\n|> rls@uihepa.hep.uiuc.edu (Ray Swartz (Oh, that guy again)) writes:\n|> \n|> >The gravity maneuvering that was used was to exploit 'fuzzy regions'.  These\n|> >are described by the inventor as exploiting the second-order perturbations in a\n|> >three body system.  The probe was launched into this region for the\n|> >earth-moon-sun system, where the perturbations affected it in such a way as to\n|> >allow it to go into lunar orbit without large expenditures of fuel to slow\n|> >down. The idea is that 'natural objects sometimes get captured without\n|> >expending fuel, we'll just find the trajectory that makes it possible\". The\n|> >originator of the technique said that NASA wasn't interested, but that Japan\n|> >was because their probe was small and couldn't hold a lot of fuel for\n|> >deceleration.\n|> \n|> \n|> I should probably re-post this with another title, so that\n|> the guys on the other thread would see that this is a practical\n|> use of \"temporary orbits...\"\n|> \n|> Another possible temporary orbit:\n|> \n|> --\n|> Phil Fraering         |\"Seems like every day we find out all sorts of stuff.\n|> pgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n|> \n|> \n\nIf you are really interested in these orbits and how they are obtained\nyou should try and find the following paper:\n\n     Hiroshi Yamakawa, Jun'ichiro Kawaguchi, Nobuaki Ishii, \n     and Hiroki Matsuo, \"A Numerical Study of Gravitational Capture\n     Orbit in the Earth-Moon System,\" AAS-92-186, AAS/AIAA Spaceflight\n     Mechanics Meeting, Colorado Springs, Colorado, 1992.\n\nThe references included in this paper are quite interesting also and \ninclude several that are specific to the HITEN mission itself. \n\n|--------------------------------- ******** -------------------------|\n|                                 * _!!!!_ *                         |\n| Steven Davis                   * /  \\   \\ *                        |\n| daviss@sweetpea.jsc.nasa.gov  *  (<o><o>)  *                       |  \n|                               *  \\>_db_</  *  McDonnell Douglas    |\n|  - I don't represent           *   |vv|   *   Space Systems Company| \n|    anybody but myself. -        *  (__)  *    Houston Division     |\n|--------------------------------- ******** -------------------------|\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1704, "properties": {"category": "rec.sport.baseball", "text": "From: craigs@srgenprp.sr.hp.com (Craig Stelter)\nSubject: Re: Defensive Averages 1988-1992, Third Base\nOrganization: HP Sonoma County (SRSD/MWTD/MID)\nX-Newsreader: TIN [version 1.1 PL9.2]\nLines: 37\n\nDale Stephenson (steph@cs.uiuc.edu) wrote:\n: In <C5JJrJ.EM3@cs.uiuc.edu> steph@cs.uiuc.edu (Dale Stephenson) writes:\n\n: >Compiled from the last five Defensive Average reports, here are the career\n: >DAs for the individual players in the reports.  Stats are courtesy of\n: >Sherri Nichols.  Players are listed in descending order.\n\n: And some comments, with some players deleted.\n\n: >Third Basemen\n: >-------------\n: >Leius, Scott         ----  ----  ----  .653  .680   0.672\n: Looks good.  Too bad he's moving to short.\n\n: >Pagliarulo, Mike     .631  ----  .575  .744  ----   0.649\n: This is an interesting line.  His 1988 figure was slightly below average.\n: His 1990 was pathetic, and his 1991 was the next best year by anybody.  Part of\n: that may be his mobility.  1988 was with the Yankees.  1990 was with the\n: Padres, who appear to have a rotten infield.  1991 was with the Twins, and\n: judging by Leius and Gaetti, the Metrodome may be a good place to play\n: third.\n\nGaetti, Gary         .616  .638  .655  .632  ----   0.637\n\nApologies if I don't know what I'm talking about :-), but as a Twins fan,\nI like to think they have good players in any park.  Not sure if I remember\ncompletely or not, but I think Gaetti played with the Twins in '87 for the \nworld series, and again in '88 (note that's his lowest of the 4).  I believe \nthe next 3 (or at least the last two) were played with the Angels.   Lots\nof factors make a player excell...  I hate it when so many use the dome.\nIt may not be ideal, but nice to comfortably enjoy baseball and football \neven when it's snowing and raining.\n\n-Craig\n\nI'm sure the company for which I work does not have all the same opinions \nthat I do...\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1705, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Weaver trial update\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 13\n\nI've been running a daily summary of the Randy Weaver/Kevin\nHarris trial from here in Boise.  These summaries are sent\nprimarily to mailing lists.  However, I was wondering if\npeople would be interested in seeing them here.  Post or\nemail.\n\nDrew \n--\nbetz@gozer.idbsu.edu\n*** brought into your terminal from the free state of idaho ***\n*** when you outlaw rights, only outlaws will have rights   ***\n*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1706, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: skucera@prstorm.bison.mb.ca (stan kucera)\nSubject: MONOUMB.386\nOrganization: Prairie Storm International, Lockport, MB., Canada\nLines: 10\n\nDoes anyone know where the program MONOUMB.386 is available .. I have \nchecked my Windows system disks and MONOUMB2.386 is there but not the \nother one.. Thanks..\n\nStan Kucera\n\n\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nskucera@prstorm.bison.mb.ca (stan kucera)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1707, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: \"Mohammad Al-Ansari\" <alansari@mango.ucs.indiana.edu>\nSubject: CACHE or Micronics EISA/VLB Motherboard?\nOrganization: Indiana University Computer Science, Bloomington\nLines: 27\n\n\nThis might be a silly question but I have to ask it anyway. I am in\nthe process of purchasing an EISA/VL Bus 486 DX2-66 computer and I\nfound two places that sell machines that have what I want and have the\nsame price. The first is Ares and they use a Cache motherboard (that's\nthe brand of the motherboard) with OPTI chip set, the other is Micron\n(formerly Edge Technology) and they use the Micronics EISA/VLB\nmotherboard.\n\nI said that this might be a silly question since I believe that\nMicronics is a very well known motherboard manufacturer while I never\nheard of Cache! I am however leaning towards the Ares machine because\nmy impression is that they are known for building good, solid machines\nand they have good tech support (24 hr, 7 days/wk), and a better\nwarrantee (2 years).  Micron, on the other hand, seems to have\nrecently aquired Edge Technologies and I'm not sure how much I should\ntrust the company.\n\nI would REALLY appreciate any input on this. Is the Micron machine the\nclear choice?  Does anyone know anything positive or negative about\neither company? Has anyone ever heard of Cache motherboards? Should I\ngo with Micron just because it has the Micronics motherboard? etc.\n\nThanks very much in advance for any information.\n\n--\nMohammad Al-Ansari\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1708, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: plus minus stat\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 29\n\nIn <1993Apr15.160450.27799@sol.UVic.CA> gballent@hudson.UVic.CA (Greg  Ballentine) writes:\n\n>The Selke candidate forwards main purpose on a shift is to prevent goals\n>from being scored- not to score them.  When Lemieux or Gilmour play their\n>number one purpose is to score- defence is secondary- especially considering\n>the line that plays against them is probably a defensive one.  That is\n>why they are not Selke candidates.\n>Gainey is the best defensive forward ever.  I stand by that assessment.\n>He was a very good player who belongs in the hall of fame.  Did you\n>ever watch him play? He never made a technical error.\n\nI watched him over his entire career.  I have NEVER seen a player, and that\nincludes Russell Courtnall and Davie Keon, screw up as many breakaways as\nBob Gainey.  And I will never forget the time Denis Potvin caught Gainey\nwith his head down.  You have been sold a bill of goods on Bob Gainey.\n\nGainey was a plugger.  And when the press runs out of things to say about \nthe stars on dynasties they start to hype the pluggers.  Grant Fuhr, Essa\nTikkannen, Butch Goring, Bob Nystrom, Bob Gainey, Doug Jarvis, Derek\nSanderson, Wayne Cashman, Bob Baun, Bob Pulford, Ralph Backstrom, Henri\nRichard, Dick Duff...and so on...\n\ncordially, as always,\n\nrm\n\n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1709, "properties": {"category": "rec.sport.hockey", "text": "From: ee152fcs@sdcc15.ucsd.edu (Bjorn Karlsson)\nSubject: Re: WC 93: Results, April 20\nOrganization: University of California, San Diego\nLines: 12\nNntp-Posting-Host: sdcc15.ucsd.edu\n\nIn article <1993Apr21.073134.5117@ericsson.se> etxonss@ufsa.ericsson.se (Staffan Axelsson) writes:\n>\n> 1993 World Championships in Germany:\n> ====================================\n\nIs there any games being shown here in the US from the WC???\n\nThanks\n\nmc\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1710, "properties": {"category": "soc.religion.christian", "text": "From: JBUDDENBERG@vax.cns.muskingum.edu (Jimmy Buddenberg)\nSubject: Revelations - BABYLON?\nOrganization: Muskingum College\nLines: 34\n\n\nHello all.  We are doing a bible study (at my college) on Revelations.  We\nhave been doing pretty good as far as getting some sort of reasonable\ninterpretation.  We are now on chapters 17 and 18 which talk about the\nwoman on the beast and the fall of Babylon.  I believe the beast is the\nAntichrist (some may differ but it seems obvious) and the woman represents\nBabylon which stands for Rome or the Roman Catholic Church.  What are some\nviews on this interpretation?  Is the falling Babylon in chapter 18 the same\nBabylon in as in chapter 17?  The Catholic church?\nHate to step on toes.\nthanks\n\n-------- \nJimmy Buddenberg       INTERNET:  jbuddenberg@vax.cns.muskingum.edu\nMuskingum College \n\n[Reading this imagery as the Roman Catholic Church was certainly\ncommon in earlier Protestant writers.  A lot of us find that frankly\nembarassing now, though some of our readers will certainly advocate\nsuch a position.  The problem is that the description makes it look a\nlot like a political entity.  It's associated with kings, controls\nworld commerce, is seated on seven mountains (17:9 -- recall that Rome\nis traditionally regarded as built on seven hills).  If it's a church,\nthen it's not the current Roman Catholic church, but a church that has\nbeen taken over by the anti-Christ and merged with the state, turning\ninto something rather different than it is now.  Presumably in such a\nscenario the true Catholics are among those who are persecuted.  Given\nthe overall impression that Satan is pretending to be an angel of\nlight, and the true church is a persecuted remnant, I think the most\nconsistent playing out of the image would be that the anti-Christ\nwould be presiding over a church that claims to be the heir of both\nthe Protestant and Catholic traditions, but that the true spiritual\ndescendants of both Peter and the Reformers are equally being\npersecuted.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1711, "properties": {"category": "comp.graphics", "text": "From: bryanw@rahul.net (Bryan Woodworth)\nSubject: Re: CView answers\nOrganization: a2i network\nLines: 13\nNntp-Posting-Host: bolero\n\nIn <1993Apr17.113223.12092@imag.fr> schaefer@imag.imag.fr (Arno Schaefer) writes:\n\n>Sorry, Bryan, this is not quite correct. Remember the VGALIB package that comes\n>with Linux/SLS? It will switch to VGA 320x200x256 mode *without* Xwindows.\n>So at least it is *possible* to write a GIF viewer under Linux. However I don't\n>think that there exists a similar SVGA package, and viewing GIFs in 320x200 is\n>not very nice.\n\nNo, VGALIB?  Amazing..  I guess it was lost in all those subdirs :-)\nThanks for correcting me.  It doesn't sound very appealing though, only\n320x200?  I'm glad it wasn't something major I missed.\n\nThanks,\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1712, "properties": {"category": "comp.graphics", "text": "From: borst@cs.utwente.nl (Pim Borst)\nSubject: PBM-PLUS sources, where?\nNntp-Posting-Host: utis116.cs.utwente.nl\nOrganization: University of Twente, Dept. of Computer Science\nLines: 7\n\nHi everybody,\n\nCan anyone name an anonymous ftp-site where I can find the sources\nof the PBM-PLUS package (portable bit/gray/pixel map).\nI would like to compile and run it on a Sun Sparcstation.\n\nThanks!\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.080+0000", "event": "documents", "entityId": 1713, "properties": {"category": "rec.sport.baseball", "text": "From: vince@sscl.uwo.ca\nSubject: Binaca Blast Deep Drive Derby (BBDDD) Returns\nOrganization: Social Science Computing Laboratory\nDistribution: na\nNntp-Posting-Host: vaxr.sscl.uwo.ca\nLines: 72\n\nIn article <1piisn$asq@network.ucsd.edu>, king@cogsci.ucsd.edu (Jonathan King) writes:\n> \n> A less well-publicized part of the now infamous Darrin Jackson for\n> Derek Bell trade was the fact that San Diego included $300,000 in the\n> deal.  Even less publicized than this, however, was that the $300,000\n> didn't come from the Padres, but from an un-named source, and that the\n> money didn't go to the Blue Jays.  In Toronto, the money was diverted\n> into a London bank account owned by a shadowy character named Vincent\n> Gray.\n\nI should be so lucky: the account number must have been rejected! :-)\n\n> The odd thing was that Gray wasn't some British financier, but a\n> Canadian social scientist working at the University of Western\n> Ontario.  Gray was previously known to the authorities only as an\n> associate of John Palmer, and as the man who had the previous year\n> discovered the True Tater Name of \"Bing Bang Ben\" MacDonald.\n\nTo be accurate, it is \"Big Bang Ben\" MacDonald.\n\n> Soon after that, Gray and Palmer sent word to Ottawa that Canada had\n> achieved absolute superiority over the United States in the field of\n> baseballistic research, as she controlled both the Acker-Cook\n> Pitch-Alike Contest and the Binaca Blast Research Institute.  The Prime\n> Minister smiled.\n\nI hope not.  To think that I would inadvertantly give any pleasure to\nMulroney _really_ ruins my day.  PS: Matthew Wall: a marvellous ending\nto the section on the Expos.\n\n> Okay, so I'm not giving up the day job.  But, in an effort to help me\n> keep the day job, I've managed to foist the job of running the Binaca\n> Blast Deep Drive Derby onto Vince Gray, to whom future Deep\n> Drive-related tidbits should be sent:\n> \n> VINCE@sscl.uwo.ca\nor VINCE@VAXI.SSCL.UWO.CA; please identify any messages with the\nsubject line BBDDD\n\n> Vince can take this post as the cue to chime in about what he plans to\n> do as the new director of the Research Institute, and what kind of\n> body armor Ontarians are wearing this Spring.  Meanwhile, I have to go\n> pick up that truckload of Denis Boucher cards I bought to fill in the\n> area behind our tool shed...\n> \n> jking\n\nRealizing the taterific importance of this work, John Palmer and I\nconcluded that we might be able to pool some resources. I have not yet\ngone through the archives that Jonathan sent to me; when I do, I will\nsend out an \"official\" introduction to the Deep Drive Derby.\n\nHowever, I wonder if we need to rename the project, now that the\nprincipal investigator and research archive have changed. Send your\nsuggestions for a rename of the study to me, at the address given\nabove.\n\nAnd, just think:  it's opening day.  Soon, the balls will be flying\nout (no, get your minds out of the gutter) of the ball parks, and\nhelpless bystanders will be injured by balls reentering the\natmosphere. (and you thought that meteorite showers were made of\nrocks!)\n\nWho will be the stars this year? Can anyone hope to combat Brad\nArnsberg's record start to last year?\n\nThe season is young, the balls newly rubbed in mud, the hot dogs\nstarting to boil for the rest of the year. Play ball (and take cover).\n\nAnd may all your sliders hang.\n\nVince.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1714, "properties": {"category": "rec.sport.hockey", "text": "From: tvartiai@vipunen.hut.fi (Tommi Vartiainen)\nSubject: Re: Finland/Sweden vs.NHL teams (WAS:Helsinki/Stockholm & NHL expansion)\nNntp-Posting-Host: vipunen.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 51\n\nIn <1993Apr16.195754.5476@ousrvr.oulu.fi> mep@phoenix.oulu.fi (Marko Poutiainen) writes:\n\n>: FINLAND:  \n>: \n>: D-Jyrki Lumme.......20\n>: D-Teppo Numminen....20\n>: D-Peter Ahola.......13\n>: \n>Well well, they don't like our defenders (mainly Lumme and Numminen)...\n\nAbout 25 is correct for Numminen and Lumme.\n\n\n>: R-Teemu Selanne.....27\n>: \n>Compared to Kurri, Selanne's points are too high, lets make it 25 or 26.\n\nNo, Kurri's points are too low. 27 for Kurri and 28 for Sel{nne.\n\n>: well in the Canada Cup and World Championships largely due to the efforts of\n>: Markus Ketterer (the goalie), 3-4 or the players listed above and luck. There's\n>: presumably a lot of decent players in Finland that wouldn't be superstars at\n>: the highest level but still valuable role players, however. My guess would be\n>: that the Finnish Canada Cup team would be a .500 team in the NHL.\n\n>Wow, now, it looks like you don't like our players? What about guys like:\n>Nieminen, Jutila, Riihijarvi, Varvio, Laukkanen, Makela, Keskinen and (even\n>if he is aging) Ruotsalainen? The main difference between finnish and North-\n>American players is, that our players tend to be better in the larger rink.\n>The Canadian defenders are usually slower that defenders in Europe. \n>And I think that there was more in our success than Ketterer and luck (though\n>they helped). I think that the main reason was, that the team worked well\n>together.\n\n\nThat's true. Game is so different here in Europe compared to NHL. North-ame-\nricans are better in small rinks and europeans in large rinks. An average\neuropean player from Sweden, Finland, Russian or Tsech/Slovakia is a better \nskater and  puckhandler than his NHL colleague. Especially defenders in NHL\nare mainly slow and clumsy. Sel{nne has also said that in the Finnish Sm-league\ngame is more based on skill than in NHL. In Finland he couldn't get so many \nbreakaways because defenders here are an average much better skaters than in\nNHL. Also Alpo Suhonen said that in NHL Sel{nne's speed accentuates because\nof clumsy defensemen.\n\nI have to admit that the best players come from Canada, but those regulars\naren't as skilful as regulars in the best european leagues. Also top europeans\nare in the same level as the best north-americans.(except Lemieux is in the\nclass of his own). \n\nTommi\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1715, "properties": {"category": "talk.politics.mideast", "text": "From: henrik@quayle.kpc.com \nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: NONE\nLines: 41\n\nIn article <1993Apr20.131336@IASTATE.EDU>, oyalcin@IASTATE.EDU (Onur Yalcin) writes:\n|> In article <1993Apr19.234534.18368@kpc.com>, henrik@quayle.kpc.com  writes:\n|> > In article <C5qu5H.1IF@news.iastate.edu>, oyalcin@iastate.edu (Onur Yalcin)\n\nOY] Henrik (?),\nOY] Your ignorance manifests itself in an awkward form of intransigence. I'm not\nOY] going to spend time to review with you the recent history of Cyprus. \n\n\tGood !! Go back to your references and read it over and over ...\n\nOY] If you are really interested, I can provide you with a number of references\nOY] on the issue.  Just send me EMail for that.  \n\n\tYou think I am that STUPID to ask you for REFERENCES !  NOT !\n\tI have many GREEK friends that I could ask for the INFO if I\n\tneeded. I have already read many articles and DO NOT need\n\tyour help. Boy, how generous !!\n\nOY] Relax! You're swinging fists into open air... I was *agreeing* with you,\nOY] assuming that would be one of your points that you did not state! You may \nOY] not be very much used to it, to be agreed with - that is, but take it more\nOY] easily.  !:-)\n\n\tBelieve me, I am so relaxed ...\n\nhenrik]     However, I hope that the Armenians WILL force a TURKISH airplane \nhenrik]     to LAND for purposes of SEARCHING for ARMS similar to the one\n\n[OY] \tNo, Henrik, believe me: You don't hope that.\n\n\t  IF Armenia is goint to do that, then so be it.\n  \nhenrik]         that happened last SUMMER. Turkey searched an AMERICAN plane\nhenrik]         (carrying humanitarian aid) bound to ARMENIA.\n\nOY] Was that after or before one French plane changed its route to avoid\nOY] inspection??? \n\n\tAll I am saying is that the plane that was SEARCHED was an\n\tAMERICAN and why Turkey DID NOT TRUST the U.S. that it was\n        mainly HUMANITARIAN AID CARGO.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1716, "properties": {"category": "sci.med", "text": "From: euclid@mrcnext.cso.uiuc.edu (Euclid K.)\nSubject: Re: Anti-Viral Herbs\nArticle-I.D.: news.C51o24.8A4\nDistribution: na\nOrganization: University of Illinois at Urbana\nLines: 38\n\nkxgst1+@pitt.edu (Kenneth Gilbert) writes:\n\n>Unfortunately it was rather poorly researched, and would not be available\n>today if it were just invented.  Keep in mind however that those were\n>the days when a bottle of Coca Cola really did contain coca extract and\n>a certain amount of active cocaine.  Times have changed, and our attitudes\n>need to change with them.\n Well, yes.  That was a part of my point.  Aspirin has its problems, but\nin some situations it is useful.  Ditto stuff like licorice root.  Taking\nanything as a drug for theraputic purposes implicitly carries the idea\nof taking a dose where the benefits are not exceeded by any unwanted,\nadditional effects.  Taking any drug when the potential ill-effects are\nnot known is a risk assumed by the parties involved, and it may be that\nin a given situation the risk is worthwhile.\n   Like Prozac, for instance; Prozac has been shown to be theraputic in\nsome cases where the tri-cyclics fail.  But Prozac hasn't been in use\nthat long, and it really isn't clear what if any effects it may have\nwhen taken over long periods of time, even though it has been tested\nby present day standards.  Should Prozac be taken off the market because\nlong-term effects, if any, are not known?  IMHO, i'd say no.\n\neuclid\n\n>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n>=  Kenneth Gilbert                |          University of Pittsburgh   =\n>=  General Internal Medicine    --*--        Pittsburgh, PA             =\n>=  kxgst1+@pitt.edu               |      \"...dammit, not a programmer!  =\n>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n>-- \n>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n>=  Kenneth Gilbert                |          University of Pittsburgh   =\n>=  General Internal Medicine    --*--        Pittsburgh, PA             =\n>=  kxgst1+@pitt.edu               |      \"...dammit, not a programmer!  =\n--\nEuclid K.       standard disclaimers apply\n\"It is a bit ironic that we need the wave model [of light] to understand the\npropagation of light only through that part of the system where it leaves no\ntrace.\"  --Hudson & Nelson (_University_Physics_)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1717, "properties": {"category": "misc.forsale", "text": "From: hinds@cmgm.stanford.edu (Alexander Hinds)\nSubject: Sega Genesis + games for sale\nKeywords: sega, genesis, games\nOrganization: Stanford University, California, USA\nLines: 11\n\nI have a Sega Genesis (barely used) that IUd like to sell with the following games:\n\nSonic the Hedgehog (I)\nRevenge of Shinobi\nThunderforce III\n\nI'm asking $160 OBO.  I can best be reached via email, or alternatively, \nby phone at: (415) 497-3719.\n\nAlexander Hinds\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1718, "properties": {"category": "sci.electronics", "text": "From: mtearle@gu.uwa.edu.au (Mark Tearle)\nSubject: Re: Need to find out number to a phone line\nOrganization: The University of Western Australia\nLines: 14\nNNTP-Posting-Host: mackerel.gu.uwa.edu.au\n\nWell here in Australia you dial \n11544\nto get the number read back to you\nif you live in the country include the area code of the nearest capital city\neg for wa 09 11544\n\nYours\nMark\n\n--\n#***********************************************************************#\n#  Mark Tearle                         |                                   #\n#                                      |     \n#  email: mtearle@tartarus.uwa.edu.au  |     \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1719, "properties": {"category": "comp.sys.mac.hardware", "text": "From: auerbach@batman.bmd.trw.com\nSubject: Accelerating the MacPlus...;)\nLines: 15\n\nWe're about ready to take a bold step into the 90s around here by accelerating\nour rather large collection of stock MacPlus computers. Yes indeed, difficult\nto comprehend why anyone would want to accelerate a MacPlus, but that's another\nstory. Suffuce it to say, we can get accelerators easier than new machines.\nHey, I don't make the rules...\n\nAnyway, on to the purpose of this post: I'm looking for info on MacPlus\nacelerators.  So far, I've found some lit on the Novy Accelerator and the\nMicrMac MultiSpeed Accelartor. Both look acceptable, but I would like to hear\nfrom anyone who has tried these.  Also, if someone would recommend another\naccelerator for the MacPlus, I'd like to hear about it.\n\nThanks for any time and effort you expend on this!\n\nKarl\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1720, "properties": {"category": "comp.sys.mac.hardware", "text": "From: especkma@reed.edu (Erik. A Speckman)\nSubject: Re: PDS vs. Nubus (was Re: LC III NuBus Capable?)\nArticle-I.D.: reed.1993Apr19.184256.8664\nDistribution: usa\nOrganization: Reed College, Portland, Oregon\nLines: 26\n\nIn article <1qt3vd$802@morrow.stanford.edu> HK.MLR@forsythe.stanford.edu (Mark Rogowsky) writes:\n\n>Second Wave makes NuBus card cages that work on the PDS slots of at\n>least three Macs: the SE/30, IIsi and Centris 610. They have not, to\n>my knowledge, announced such a device for the LCII, but they could\n>make one, technologically.\n>\n>The PDS card that goes to the cage simply needs the NuBus controller\n>circuitry present on NuBus Macs.\n>\n>Why, though, does anyone care about this? dgr has a three-PDS\n>adapter for the LC/LCII. They will soon have one for the LCIII. PDS\n>is better than NuBus for most people in most applications. Granted,\n>there are more NuBus cards. But, most applications that require a\n>NuBus card (like full-motion video capture) shouldn't be done on an\n>LC/LCII/LCIII anyway.\n>\n>Mark\n\n\nNuBus is a much more robust system for system for installing multiple\ncards without configuration problems.  I know that when I was checking\ninto expasion options for an SI there were a number of PDS video cards\nthat would not work with certian Dual slot cache adapters.\n\n_Erik Speckman\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1721, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: Nuclear/heavy weapons and the Militia [Long]\nOrganization: Iowa State University, Ames IA\nLines: 194\n\nfcrary@ucsu.Colorado.EDU (Frank Crary) writes:\n\n\tDown to 170-some odd lines.  We must be making progress!\nOn an ironic note, where I deleted lines Emacs continually gave me\nthe message \"Garbage collecting... Done.\"  Think it's trying to\ntell me something?\n\n>viking@iastate.edu (Dan Sorenson) writes:\n\n>And thank you: It's a great change from the same tired old debates...\n\n\tYou lurkers can join in at any time, you know!  Ahhh..\nTalk.politics.guns -- the kindler, gentler newsgroup.  Who would\nhave thought?\n\n>No, not exactly: The only reason for this sort of restriction is\n>the possible endangerment of others. A poorly maintained \n>rifle is dangerous, but only to the user; since it doesn't\n>endanger others, there is no justification for such restrictions.\n\n\tI remind you of shrapnel.  I consider 5' a reasonable space\nlimitation, but make no mistake a gun blowing up is a hazard to\nthose nearby, say in the next lane at the range.  My point was at\nwhat distance, or level of threat, we draw the line.  Is it the\nendangerment of others, so we do a 5' restriction, or the possibility\nof being shot, hence we draw a 1.5 mile restriction, or a nuke and\ndraw a 5 mile restriction?  To me they al suffer from the fundamental\nflaw that they restrict based upon the instrument rather than placing\nthe responsibility for usage squarely upon the shoulders of the user.\nPerhaps Sen. Metzenbaum declaring the Barrett Light Fifty an assault\nrifle has made this more apparent to me, since the Barrett has\nonly range and acurracy going for it.\n\n>They have determined that their lives are worth the effort to\n>protect their homes and families. Using nuclear weapons close \n>to home will not accomplish this.\n\n\tI disagree, on the grounds that a house can be rebuilt much\nmore easily than my family once I have died.  I assume that word\nwould get to the citizens that such an attack was planned.  If this\nis not the case, the tactical and strategic implications change\nquite a bit.  Personally, my home is worth, say, twenty Martians\nintent on taking over the world.  My family?  All of them.  The\nbalancing act here is hard to judge sitting at my desk.\n\n>There is, however, another problem: In any case of civil war,\n>the strength of the militias fighting on each side should\n>reflect the popular will. If the public is split 67% versus\n>33%, then the minorities' militias should be at a 2:1 disadvantage.\n>Such a need for popular support would, hopefully, prevent \n>insurrections unless the people really were behind the rebels.\n>But heavy weapons owned by a small fraction of the militia \n>could distort this: What if the 33% minority included all the\n>tank and artillery owners?\n\n\tThat seems to be the case already, given that heavy\nweapons aren't commonly owned by the citizenry.  With such low\nnumbers, obviously due to cost, I don't think the superior\nweapons are going to be of great effect against a numerically\nsuperior foe.  Furthermore, it is even more doubtful their training\nincludes proper tactical movements that best utilize tanks,\nwhereas the commonly rifleman is not so hampered in effectiveness.\n\n>I think it is vital to avoid such a situation, where a small \n>minority would have a reasonable chance of gaining political power\n>through violence. To prevent this, it may be necessary to give \n>control of heavy weapons (e.g. those which only a small number\n>of individuals would own _and_ whose firepower would grossly \n>distort the relation between popular support and military \n>strength) to someone other that individual militiamen. This is\n>certainly not a good thing, but I think it is the lesser of two evils.\n>Whoever controls these weapons must be a democratic body,\n>responsive to the will of the people.\n\n\tI had envisioned that the armorer, perhaps the officers\nof a select group, and the like would exercise control over the\nheavier, more complex weapons.  But, if Joe Bob owns an old Sherman\ntank I certainly wouldn't ask him to give it up.  Follow orders\nfrom the officers, yes.  Since the expense of a tank is so large,\nthough, chances are it would be jointly purchased and should\ntherefore be jointly maintained and operated.\n\n>Here, I think we have to be carefull about _which_ \"state\" we\n>are talking about: Certainly one role of the militia is to\n>overthrow a repressive government, and it would be completely\n>destructive to that end for that same government to control \n>the militia's arms. But the United States have several levels\n>of government, each able to act independently, but not all\n>likely targets of rebelion.\n>As such, rebelions against state and\n>local governments are very unlikely. I think, therefore, that the\n>state (or possibly local) governments could safely be allowed to\n>keep the select militia's heavy weapons. The risk of abuse, while\n>still something to consider, is far less than the similar risk\n>were the federal government in control.\n\n\tThis I'll agree with to a point.  The State having control\nover the heavy weapons should not be justification for the state\nto have them centrally located.  Keep them spread out, such that\nthe ability of the State to lock them up isn't so easy.  Otherwise,\nI would have to assume that State control would rest on the\nauthority of the Governor and militia officers.\n\n>That is eaxctly why I think they should be removed: The select\n>militia should privide the militia's heavy weapons and highly-trained\n>specialists. For the reasons I have outlines above, I think \n>these heavy weapons (tanks, artillery, aircraft, etc...) are\n>better off being kept by local governments than by a small \n>number of individuals. However, local governments shouldn't\n>be able to use the select militia without the support to the\n>people. Ideally, the general militia, under the direct \n>control of the people, and the select militia, under the direction\n>of democratic, local governments, would opperate together.\n>But even in the worst case, the general militia should be able\n>to functional without the select militia. Similarly, the\n>select militia should be incapable of action without the\n>aid of the general militia.\n\n\tI'm having a hard time seeing how these heavy weapons,\nfairly few in numbers, could not be easily wielded by a few\npeople with government support.  Just as you argued above that\nthe weapons should be divvied up and under democratic control\nso one side doesn't have all of them, I can't see where this\nsituation is alleviated in having the select militia holding\nall the weapons and the unorganized militia being the infantry.\nI think a better mix is called for.  But, I would argue that\nthe Federal army should rely upon the select militia and the\nunorganized militia for the bulk of its infantry units.\n\n>Consider, then, the effect of removing the National Guard's\n>infantry and placing the Guard under the control of local\n>governments. The government-controled select militia could\n>not fight effectively without infantry support provided by\n>the general militia (an inherently infantry organization.) \n>On the other hand, the general militia could function (although\n>at a disadvantage) without the backing of local governments and\n>the select militia.\n\n\tWe have to assume that there would be those who would\nside with the government-controlled forces, and if they've all\nthe equipment an infantry force 3x the size would be in trouble.\nI'd like to see that heavy stuff, say tanks, offset by the\nlocal troups having a few 105's and anti-tank weapons in their\narmory.  These would be much more useful to infantry than the\ntank would be when cost and training requirements are figured in.\nI suppose I'm quibbling over what constitutes heavy equipment.\n\n>>...but a mechanized infantry unit is what builds\n>>dikes in times of flood, sets up disaster relief cities, and\n>>the like.\n>\n>I would much rather see these things handled by the local, \n>general militias.\n\n\tSo would I, but the resources often aren't available to\noutfit local units well enough.  Thus, we will certainly have to\ncall in others, and a mechanized unit carries more stuff faster\nthan anything else.\n\n>Perhaps the National Guard isn't as close to my conception of\n>the select militia as I thought: I was considering them to \n>be the heavy weapons/armor arm of the militia, not the infantry\n>arm of the regular army.\n\n\tPerhaps our ideas of heavy weapons are different?  I think\nmain battle tanks, self-propelled artillery, and 155mm and up\nfield pieces are heavy stuff.  M113 troop carriers, 2 1/2 ton\ntrucks, HumVee's, old M60 tanks, 105 Howitzers, are more the stuff\nof a mechanized infantry.  Actually, this is what the Guard units\nin Iowa are currently fielding in some units.\n\n\tPerhaps it is just my innate fear of having the real heavy\nequipment under State control, with little but numbers and light\nstuff to act as a deterrent.  Allowing main battle tanks to the\nstates should be balanced with anti-tank capability in the local\nranks.  Similarly, local units would need to band together quickly,\nhence small and fast response means mechanized infantry.  Finally,\nthe militia is more than just fighting.  Equipment is needed for\nother responses.  The Federal army, I'm convinced, should have a\nvery minumum of infantry, relying on the state and local militias\nfor these functions.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n\n\n\n\n\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1722, "properties": {"category": "alt.atheism", "text": "From: perry@dsinc.com (Jim Perry)\nSubject: Re: Yeah, Right\nOrganization: Decision Support Inc.\nLines: 27\nNNTP-Posting-Host: dsi.dsinc.com\n\nIn article <65882@mimsy.umd.edu> mangoe@cs.umd.edu (Charley Wingate) writes:\n}>For several years I've periodically asked Charley Wingate to explain this\n}>mythical alternative to rationality which he propounds so enthusiastically\n}>when he pops up every few months.  His reluctance to explain indicates to me\n}>that it's not so hot.\n}\n}I've said enough times that there is no \"alternative\" that should think you\n}might have caught on by now.  And there is no \"alternative\", but the point\n}is, \"rationality\" isn't an alternative either.  The problems of metaphysical\n}and religious knowledge are unsolvable-- or I should say, humans cannot\n}solve them.\n\nIf there is truly no alternative, then you have no basis whatsoever\nfor your claim.  The usual line here, which you call \"a prejudgment of\natheism\", and dispute, is that reason is all we have.  Here you admit\nthat you have no alternative, no possible basis for the claim that\nthere is anything other than reason or that reason is inapplicable in\nreligious knowledge, except possibly that reason conflicts with\n\"religious knowledge\".\n\nThis sounds very much like \"I can't provide a rational defense for my\nbelief, but prefer to discard rationality rather than accept that it\nmay be false\".  I hope it makes you happy, but your repeated and\nunfounded assertions to this effect don't advance your cause.\n-- \nJim Perry   perry@dsinc.com   Decision Support, Inc., Matthews NC\nThese are my opinions.  For a nominal fee, they can be yours.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1723, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: From Israeli press: Nazi methods.\nNf-ID: #N:cdp:1483500343:000:3194\nNf-From: cdp.UUCP!cpr    Apr 16 16:50:00 1993\nLines: 66\n\n\nFrom: Center for Policy Research <cpr>\nSubject: From Israeli press: Nazi methods.\n\n/* Written  4:38 pm  Apr 16, 1993 by cpr@igc.apc.org in igc:mideast.forum */\n/* ---------- \"From Israeli press: Nazi methods.\" ---------- */\nFROM THE ISRAELI PRESS\n\nNewspaper: Ha'aretz Date: 14 February1993 Author: Gideon Levi\n\nSubject: NAZI methods in Gaza\n\nTitle: In the neighborhood of Hope, among the rubble\n\n(Excerpts)\n\nMahmoud Jowara'r stared at me long and sadly: \"I worked my entire\nlife in order to built that house and this is what is left\". Only\nTV could transmit the full sadness of his face. \"You say that we\nteach our children to hate you, but what do you expect to happen\nto a child who sees this ?\" And once again he wraps himself in a\nlengthy silence, his face crumbling into weeping. Mahmoud stood in\nthe field of rubble that was once his home. The term\n'dispossession' has an absolute meaning here. Nothing is left of\nwhat he accumulated during his entire life, only the rubble of a\nhouse and shreds of belongings.\n\nOnce again Khan Yunis. Once again demolished homes. Last Thursday\nthere was a search for wanted people here. Once again the IDF\nforces employed the new method, fired and bombed and shot missiles\nand placed explosives. Already three times during the past weeks I\nhave gone out to see the destruction and each time I was more\nhorrifying scenes. This time they hit the largest number of\nhouses, 17 according to the IDF estimate, ten of them completely\ndemolished. But not only that:  the method has also become more\nbrutal. Three weeks ago, in Tufah neighborhood in Gaza, the\nresidents were still told to remove their valuables from their\nhomes.  This time the army skipped that part; three weeks ago the\nhandcuffed men, inhabitants of the demolished homes, were supplied\nwith some water and one apple during the 12 hours they had to\nstand. This time there was only water. Three weeks ago they were\neven allowed to go out to the toilet. This time the soldier just\ngold them: Piss and shit in your pants. And thus, last Thursday,\nsome 45 men stood for about 12 hours, their hands bound behind\ntheir backs, their eyes blindfolded, without food, with wet pants\non their legs and a terrible feeling of humiliation in their\nhearts, listening to the sounds of the explosions destroying their\nhomes, one after the other.\n\n(...)\n\nDr. Juma'a Fuad Said al-Rubi. the brother from Saudi Arabia,\nemerges from among the ruins. Ten days ago he arrived for a family\nvisit, mainly in order to celebrate the housewarming with his\nfather and brothers. On Thursday he was handcuffed like everyone\nelse for 12 hours, and later went with everyone to view the\ndestrucion. He tried to explain that he was a visitor and that he\nis a physician, but only got a shove.  Like all the rest he also\nurinated in his pants, while standing with his hands bound and his\neyes blindfolded for the entire day. Juma'a al-Rubi studied\nmedicine at Cairo University, and for ten years he has been\ntreating wealthy Saudis in Medina. His wife and four children\nremained there. Now his documents have been lost and he does not\nknow how he will return to them. \"There is no humanity\", stated\nthe physician from Saudi Arabia.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1724, "properties": {"category": "rec.sport.baseball", "text": "Subject: The 1964 Phillies: deja vu?\nFrom: csc2imd@cabell.vcu.edu (Ian M. Derby)\nExpires: Mon, 10 May 1993 04:00:00 GMT\nOrganization: Virginia Commonwealth University\nKeywords: Phillies\nSummary: Phillies\nLines: 9\n\n\nAfter reading my local paper today, I found out that the Phillies\nstarted the 1964 season at 10-2.  I am not as old as 1964, but I've\nheard many talk about the serious choke job the Phillies did that\nseason. They were ahead of the Cardinals by 15 games that season in\nmid-August.  They managed to lose a bunch from then on and the\nCardinals took the division.  15!!! games ahead and lost it.... I\nhope this season is MUCH different.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1725, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Center for Anit-Israel Propaganda\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 67\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nthe 'Center for Policy Research' writes...\n \n> FROM THE ISRAELI PRESS\n>\n>Hadashot, 14 March 1993:\n>\n>The Israeli Police Department announced on the evening of Friday,\n>March 12 that it is calling upon [Jewish] Israeli citizens with\n>gun permits to carry them at all times \"so as to contribute to\n>their security and that of their surroundings\".\n\n    Considering all the murders of innocent Israelis at the hands \n    of Arab death merchants, I see nothing wrong with the advice.\n\n>Ha'aretz, 15 March 1993:\n>\n>Yehoshua Matza (Likud), Chair of the Knesset Interior Committee,\n>stated that he intends to demand that the police department make\n>it clear to the public that anyone who wounds or kills\n>[non-Jewish] terrorists will not be put on trial.\n\n    As usual, the bias of the 'Center for Policy Research' echoes\n    through this newsgroup.  Here we have an enraged Likudnik who\n    is venting his spleen, and you portray it as if this is going\n    to become policy.  You don't say what the response to Matza's\n    suggestion was.  Do do not mention whether he was refering to\n    terrorists caught in the act, which could be a clear cut case\n    of self-defence.  Would you care to elaborate on this, or was\n    this all you wanted to say on the matter.  Why don't you give\n    up this 'Center for Policy Research' crap, and just post your  \n    biases without trying to legitimize them with a pompous name?\n\n>Ha'aretz, 16 March1993:\n>\n>Today a private security firm and units from the IDF Southern\n>Command will begin installation of four magnetic gates in the Gaza\n>strip, as an additional stage in the upgrading of security\n>measures in the Strip.\n>\n>The gates will aid in the searching of [non-Jewish] Gaza residents\n>as they leave for work in Israel. They can be used to reveal the\n>presence of knives, axes, weapons and other sharp objects.\n>\n>In addition to the gates, which will be operated by a private\n>civilian company, large quantities of magnetic-card reading\n>devices are being brought to the inspection points, to facilitate\n>the reading of the magnetic cards these [non-Jewish] workers must\n>carry.\n\n    A laudable precaution.  \n    \n    Every single thing you post about Israel is posted to portray\n    Israel as negatively as you can.  Deliberate omissions are an\n    integral part of the shtick.  And it's not only the incidents\n    that you do not mention, but even the stories you do post are\n    fraught with omissions, which change the entire meaning.  The\n    absurdity of your respectable name cannot hide your bias.\n\n    In your effort to portray Israel in an unfavorable light, you \n    have accomplished nothing, except to prove that a respectable \n    sounding label like the Center for Policy Research is nothing \n    but a smoke screen for someone with a heavily biased attitude \n    against Israel and the need to vent it.  You \n    \n    This 'Center for Policy Research' stuff is nonsense.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1726, "properties": {"category": "sci.crypt", "text": "From: Rob Shirey <shirey@mitre.org>\nSubject: ISOC Symposium on Net Security\nX-Xxmessage-Id: <A7F43AAA5A058C64@shirey-mac.mitre.org>\nX-Xxdate: Fri, 16 Apr 93 15:27:54 GMT\nNntp-Posting-Host: shirey-mac.mitre.org\nOrganization: The MITRE Corporation, McLean, Virginia, USA\nX-Useragent: Nuntius v1.1.1d20\nLines: 94\n\n\n                             CALL FOR PAPERS\n                    The Internet Society Symposium on\n                 Network and Distributed System Security\n\n        3-4 February 1994, Catamaran Hotel, San Diego, California\n\nThe symposium will bring together people who are building software and\nhardware to provide network or distributed system security services.\nThe symposium is intended for those interested in practical aspects of\nnetwork and distributed system security, rather than in theory.  Symposium\nproceedings will be published by the Internet Society.  Topics for the\nsymposium include, but are not limited to, the following:\n\n*  Design and implementation of services--access control, authentication,\n   availability, confidentiality, integrity, and non-repudiation\n   --including criteria for placing services at particular protocol\nlayers.\n\n*  Design and implementation of security mechanisms and support\n   services--encipherment and key management systems, authorization\n   and audit systems, and intrusion detection systems.\n\n*  Requirements and architectures for distributed applications and\n   network functions--message handling, file transport, remote\n   file access, directories, time synchronization, interactive\n   sessions, remote data base management and access, routing, voice and\n   video multicast and conferencing, news groups, network management,\n   boot services, mobile computing, and remote I/O.\n\n*  Special issues and problems in security architecture, such as\n   -- very large systems like the international Internet, and\n   -- high-speed systems like the gigabit testbeds now being built.\n\n*  Interplay between security goals and other goals--efficiency,\n   reliability, interoperability, resource sharing, and low cost.\n\nGENERAL CHAIR:\n   Dan Nessett, Lawrence Livermore National Laboratory\n\nPROGRAM CHAIRS:\n   Russ Housley, Xerox Special Information Systems\n   Rob Shirey, The MITRE Corporation\n\nPROGRAM COMMITTEE:\n   Dave Balenson, Trusted Information Systems\n   Tom Berson, Anagram Laboratories\n   Matt Bishop, Dartmouth College\n   Ed Cain, U.S. Defense Information Systems Agency\n   Jim Ellis, CERT Coordination Center\n   Steve Kent, Bolt, Beranek and Newman\n   John Linn, Independent Consultant\n   Clifford Neuman, Information Sciences Institute\n   Michael Roe, Cambridge University\n   Rob Rosenthal, U.S. National Institute of Standards and Technology\n   Jeff Schiller, Massachusetts Institute of Technology\n   Ravi Sandhu, George Mason University\n   Peter Yee, U.S. National Aeronautics and Space Administration\n\nSUBMISSIONS:  The  committee seeks both original technical papers and\nproposals for panel discussions on technical and other topics of general\ninterest.  Technical papers should be 10-20 pages in length.  Panels\nshould include three or four speakers.  A panel proposal must name the\npanel chair, include a one-page topic introduction authored by the chair,\nand also include one-page position summaries authored by each speaker\nBoth the technical papers and the panel papers will appear in the\nproceedings.\n\nSubmissions must be made by 16 August 1993.  Submissions should be made\nvia electronic mail to\n\n                   1994symposium@smiley.mitre.org.\n\nSubmissions may be in either of two formats:  ASCII or PostScript.  If\nthe committee is unable to read a PostScript submission, it will be\nreturned and ASCII requested.  Therefore, PostScript submissions should\narrive well before 16 August.  If electronic submission is absolutely\nimpossible, submissions should be sent via postal mail to\n\n                   Robert W. Shirey, Mail Stop Z202\n                   The MITRE Corporation\n                   McLean, Virginia  22102-3481  USA\n\nAll submissions must include both an Internet electronic mail address and\na postal address.  Each submission will be acknowledged through the\nmedium by which it is received.  If acknowledgment is not received within\nseven days, please contact either Rob Shirey <Shirey@MITRE.org> or\nRuss Housley <Housley.McLean_CSD@xerox.com>, or telephone Mana Weigand at\nMITRE in Mclean, 703-883-5397. \n\nAuthors and panelists will be notified of acceptance by 15 October 1993.\nInstructions for preparing camera-ready copy for the proceedings will be\npostal mailed at that time.  The camera-ready copy must be received by\n15 November 1993.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1727, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: Conference on Manned Lunar Exploration. May 7 Crystal City\nOrganization: Evil Geniuses for a Better Tomorrow\nDistribution: na\nLines: 19\n\nIn article <C5rHoC.Fty@news.cso.uiuc.edu> jbh55289@uxa.cso.uiuc.edu (Josh Hopkins) writes:\n\n\n>I remeber reading the comment that General Dynamics was tied into this, in \n>connection with their proposal for an early manned landing.  Sorry I don't \n>rember where I heard this, but I'm fairly sure it was somewhere reputable. \n>Anyone else know anything on this angle?\n\nIf by that you mean anything on the GD approach, there was an article on\nit in a recent Avation Week. I don't remember the exact date but it was\nrecent.\n\n Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------56 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1728, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: twa2@Ra.MsState.Edu (Todd W Anderson)\nSubject: Re: Diamond Stealth 24 giving 9.4 Winmarks?\nNntp-Posting-Host: ra.msstate.edu\nOrganization: Mississippi State University\nLines: 9\n\n\n   On my 486DX33 with the Stealth 24 VLB I get 11.4 WinMarks with ver. 3.11\n\n\n\n\n\n\n   \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1729, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: ABC coverage\nOrganization: University of Toronto Chemistry Department\nDistribution: usa\nLines: 24\n\nIn article <cfoy0MW00Uh_41JndV@andrew.cmu.edu> Anna Matyas <am2x+@andrew.cmu.edu> writes:\n>\n>Thorne is good and I've always been a fan of Clement (but I miss\n>Mike Emrick!).  My boyfriend, who is not a hockey fan, even looked up\n>at one point and said, \"These guys are pretty good announcers.\"  (This\n>is the same guy who said that Rick Tocchet looks like Charles Bronson...:)\n>\n\nIMHO...\n\nClement, although he has a pleasant personality (aggravatingly pleasant\nin my opinion), is a terrible\nanalyst, because he is almost alway wrong...the prototypical example\nbeing New Jersey's first goal last Sunday.\n\nI grew up with Dick Irvin doing color beside Danny Gallivan...I knew\ndid Irvin, Dick Irvin was a friend of mine...Bill Clement you aren't\nany Dick Irvin.\n\nAs long as the teams involved do not include the US national team or\nthe New York Rangers, I'd take John Davidson over Bill Clement any\nday.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1730, "properties": {"category": "rec.motorcycles", "text": "From: shz@mare.att.com (Keeper of the 'Tude)\nSubject: Re: Riceburner Respect\nOrganization: Office of 'Tude Licensing\nNntp-Posting-Host: binky\nLines: 11\n\nIn article <oXZ12B1w164w@cellar.org>, craig@cellar.org (Saint Craig) writes:\n> No anyone who is a \"true\" rider with the real riding attitude will offer a\n> wave, weather they are on a Harley or on a Honda or some other bike, inless\n> they have a serious case of my bike is better than your and you're too low\n> to be acknowleged. This you'll find is the case with most of the harley\n> riders out here where I am, however I still give them a wave, and ride\n> secure in the knowlege that I'm a better persob than they are.\n\nHuh?\n\n- Roid\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1731, "properties": {"category": "comp.windows.x", "text": "From: pmartz@dsd.es.com (Paul Martz)\nSubject: Re: Animation with XPutImage()?\nNntp-Posting-Host: bambam\nReply-To: pmartz@dsd.es.com (Paul Martz)\nOrganization: Evans & Sutherland Computer Corp., Salt Lake City, UT\nLines: 28\n\nIn article <1993Apr21.154620.16330@infodev.cam.ac.uk>, dcr@mail.ast.cam.ac.uk (Derek C. Richardson) writes:\n> Hi, I'm new to this group so please bear with me!\n> \n> Two years ago I wrote a Sunview application for fast animation\n> of raster files. With Sunview becoming rapidly obselete, I've\n> finally decided to rewrite everything from scratch in XView.\n> I put together a quick test, and I've found that XPutImage()\n> is considerably slower (factor of 2 on average?) than the\n> Sunview command pw_rop() which moves image data from memory\n> pixrects to a canvas. This was on a Sparc IPX. It seems that:\n> (1) the X protocol communication is slowing things down; or\n> (2) XPutImage is inefficient...or both!\n\nUsing XPutImage, your source is maintained by the client and the\ndestination is maintained by the server, thus you incur the overhead\nof transporting through whatever client-server communications\nmechanism you are using.\n\nIs it possible for you to maintain your source images in pixmaps?\nThese are maintained by the server, so copying them into a window is\nmuch cheaper.\n\nAlso make sure you are not sending any unnecessary XSyncs, or running\nin XSynchonize mode.\n-- \n\n   -paul\tpmartz@dsd.es.com\n\t\tEvans & Sutherland\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1732, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Flames Truly Brutal in Loss\nOrganization: University of Toronto Chemistry Department\nLines: 11\n\nIn article <vzhivov.735193129@cunews> vzhivov@superior.carleton.ca (Vladimir Zhivov) writes:\n>As the subject suggests the Flames were not impressive this afternoon,\n>dropping a 6-3 decision to the LA Kings. Most of the Flames neglected\n>to show up, especially in their own zone, as the Kings hit at least\n>five posts! The Flames best line was probably\n\nMike Vernon is now 3 wins 11 losses plus that All-Star game debacle in\nafternoon games during his career...with another afternoon game with\nLos Angeles next Sunday...has the ABC deal doomed the Flames?\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1733, "properties": {"category": "soc.religion.christian", "text": "From: caralv@caralv.auto-trol.com (Carol Alvin)\nSubject: Re: The arrogance of Christians\nLines: 44\n\n(Dean and I write lots and lots about absolute truth and arrogance.)\n\nvbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) writes:\n> I strongly suspect that we are reaching an impasse here, which is why I\n> deign from commenting much further.\n\nI agree that we'll probably never agree, and I'm starting to feel \nfrustrated, and I'm tired of having my conversations with my husband \ndominated by this topic (just kidding, :-)).\n\nI do have to say, though, that participating in this discussion has been\na good learning experience for me.  My views on this topic have evolved\nand clarified through this, and I suspect that we may not disagree as \nmuch as we think. \n\nI admit that I'm strongly prejudiced against evangelical Christianity,\nand I may not always be rational in my reactions to it.  I grew up\nin EC, and went to an EC college.  It was definitely the wrong place\nfor me, and I react strongly to any implication that EC or conservative\nChristianity has any sort of stronghold on true Christianity.  I shudder \nwhen I remember the condescending attitude I had about other Christians \nwho didn't adhere to the EC model.\n\nI have come to see that my real objection to this whole notion of \nabsolute truth is the actions I have seen it lead to.  I have had some \nvery bad experiences with evangelical Christians claiming to know the \ntruth, and judging me or others based on their belief that they have \nthe answers.  Knowing the truth doesn't seem to leave a whole lot of \nroom for others' opinions.\n\nI can accept your belief in absolute truth as long as you* don't try to \nuse that belief to try to force others to comply with it, and you are \nvery careful that you don't hurt others with it.  Love your neighbor \nseems to go totally out the window when one knows the truth and believes \nthat everyone should be living by that truth.  Other people have \nconvictions about the truth every bit as strong and sincere as yours, \nbased on careful searching, prayer, and their relationship with God.  \nDon't dismiss them because God didn't lead them to the same conclusions \nas yours.\n\n*This is not directed personally at you, Dean.\n\nCarol Alvin\ncaralv@auto-trol.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1734, "properties": {"category": "sci.space", "text": "From: khayash@hsc.usc.edu (Ken Hayashida)\nSubject: Re: Life on Mars???\nOrganization: University of Southern California, Los Angeles, CA\nLines: 25\nNNTP-Posting-Host: hsc.usc.edu\n\nIn article <1993Apr26.184507.10511@aio.jsc.nasa.gov> kjenks@gothamcity.jsc.nasa.gov writes:\n>I know it's only wishful thinking, with our current President,\n>but this is from last fall:\n>\n>     \"Is there life on Mars?  Maybe not now.  But there will be.\"\n>        -- Daniel S. Goldin, NASA Administrator, 24 August 1992\n>\n>-- Ken Jenks, NASA/JSC/GM2, Space Shuttle Program Office\n>      kjenks@gothamcity.jsc.nasa.gov  (713) 483-4368\n\nLets hear it for Dan Goldin...now if he can only convince the rest of\nour federal government that the space program is a worth while\ninvestment!\n\nI hope that I will live to see the day we walk on Mars, but\nwe need to address the technical hurdles first!  If there's sufficient\ninterest, maybe we should consider starting a sci.space group \ndevoted to the technical analysis of long-duration human spaceflight.\nMost of you regulars know that I'm interested in starting this analysis\nas soon as possible.\n\nKen\nkhayash@hsc.usc.edu\nUSC School of Medicine, Class of 1994\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1735, "properties": {"category": "comp.windows.x", "text": "From: klute@tommy.INformatik.uni-dortmund.DE (Rainer Klute)\nSubject: Imake support for xmosaic\nOrganization: CS Department, Dortmund University, Germany\nLines: 20\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xannounce@expo.lcs.mit.edu\n\n\n\tImake support for xmosaic\n\t=========================\n\nAlthough xmosaic is a great program in general, it unfortunately comes\nwithout Imake support. So I created one. Until Marc Andreessen finds the\ntime to incorporate it in an official xmosaic release, you can easily do it\nyourself. Use anonymous FTP to get\n\n\tftp.germany.eu.net:/pub/X11/misc/xmosaic.Imake.tar.z\n\nThe file's size is 3200 Byte. You will need gzip to unpack it. Have fun!\n\n-- \n  Dipl.-Inform. Rainer Klute      I R B :  immer richtig beraten\n  Univ. Dortmund, IRB\n  Postfach 500500         |)|/    Tel.: +49 231 755-4663\nD-W4600 Dortmund 50       |\\|\\    Fax : +49 231 755-2386\n\n  new address after June 30th: Univ. Dortmund, D-44221 Dortmund\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.081+0000", "event": "documents", "entityId": 1736, "properties": {"category": "soc.religion.christian", "text": "From: sschaff@roc.slac.stanford.edu (Stephen F. Schaffner)\nSubject: Re: Ancient Books\nOrganization: Stanford Linear Accelerator Center\nLines: 18\n\nIn article <Apr.10.05.32.47.1993.14396@athos.rutgers.edu>, \nwhheydt@pbhya.pacbell.com (Wilson Heydt) writes:\n\n|> As for the dating of the oldest extant texts of the NT....  How would\n|> you feel about the US Civil War in a couple of thousand years if the\n|> only extant text was written about *now*?  Now adjust for a largely\n|> illiterate population, and one in which every copy of a manuscript is\n|> done by hand....\n\nConsiderably better than I feel about, say, the Punic Wars, or the \nPeloponnesian War (spelling optional), or almost any other event in \nclassical history.  How close to the events do you think the oldest \nextent manuscripts are in those cases?\n\n-- \nSteve Schaffner        sschaff@unixhub.slac.stanford.edu\n\tThe opinions expressed may be mine, and may not be those of SLAC, \nStanford University, or the DOE.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1737, "properties": {"category": "sci.crypt", "text": "From: louie@sayshell.umd.edu (Louis A. Mamakos)\nSubject: Re: Once tapped, your code is no good any more.\nDistribution: na\nOrganization: The University of Maryland, College Park\nLines: 14\nNNTP-Posting-Host: sayshell.umd.edu\n\nIn article <tcmayC5M2xv.JEx@netcom.com> tcmay@netcom.com (Timothy C. May) writes:\n\n>But is it any worse than the current unsecure system? It becomes much\n>worse, of course, if the government then uses this \"Clinton Clipper\"\n>to argue for restrictions on unapproved encryption. (This is the main\n>concern of most of us, I think. The camel's nose in the tent, etc.)\n\nExcuse me?  This has *already* happened.  There's a couple of humps in\nthe tent already.  Ask the folks at Qualcomm what became of the\nnon-trivial encryption scheme they proposed for use in their CDMA\ndigitial cellular phone standard?  There *already* are restrictions in\nplace.\n\nLouis Mamakos\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1738, "properties": {"category": "sci.space", "text": "From: jdnicoll@prism.ccs.uwo.ca (James Davis Nicoll)\nSubject: Re: Why DC-1 will be the way of the future.\nOrganization: University of Western Ontario, London\nNntp-Posting-Host: prism.engrg.uwo.ca\nLines: 9\n\n\tHmmm. I seem to recall that the attraction of solid state record-\nplayers and radios in the 1960s wasn't better performance but lower\nper-unit cost than vacuum-tube systems.\n\n\tMind you, my father was a vacuum-tube fan in the 60s (Switched\nto solid-state in the mid-seventies and then abruptly died; no doubt\nthere's a lesson in that) and his account could have been biased.\n\n\t\t\t\t\t\t\tJames Nicoll\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1739, "properties": {"category": "rec.autos", "text": "From: raman@translab.its.uci.edu (Balaji V. Ramanathan)\nSubject: Re: Plymouth Sundance/Dodge Shadow experiences?\nNntp-Posting-Host: translab.its.uci.edu\nOrganization: University of California, Irvine\nLines: 23\nDistribution: usa\n\nIn article <1qofeaINNn7h@shelley.u.washington.edu> gaia@carson.u.washington.edu (I/We are Gaia) writes:\n>just stopped putting money into it.  I must have put at least $5000-$7000\n>worth of repairs over it's lifetime.  I am sorry but Lee Iacocca can bite\n>me.  Bullshit, whoever backs em best, is just afraid the stupid things area\n\tThe part about spending $5000-7000 on repairs reminds me\nof an article I read in a magazine comparing the 5 year ownership costs\nof a Toyota Camry and a Ford Taurus or something like that.  The result,\nwhich they announced with great flourish was that it cost the same at the\nend of the period.  That was their argument to prove that you don't go\nwrong buying the Ford Taurus over the Camry.\n\n\tNow, if I remember correctly, the Camry costs about $4000 or so more\nin initial costs.  Essentially, it means that you spend about $4000 extra\non repairs on the Taurus.  That is ridiculous.  Every time your car\nneeds repairs, it is extra hassles, loss of time and a dozen other things.\nI would much rather spend $5000 more in initial costs than spend $4000 more\nin repair costs.\n\n--\n----------------->8      Cut here for Signature!       8<---------------------\nBalaji Ramanathan,                   | \nInstitute of Transportation Studies, |         I don't believe in luck!\nUniversity of California, Irvine.    |              I RELY on it!!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1740, "properties": {"category": "soc.religion.christian", "text": "From: wagner@grace.math.uh.edu (David Wagner)\nSubject: Re: Eternity of Hell (was Re: Hell)\nOrganization: UH Dept of Math\nLines: 27\n\n\"Darius\" == Darius Lecointe <dlecoint@garnet.acns.fsu.edu> writes:\n\nDarius> vic@mmalt.guild.org (Vic Kulikauskas) writes:\n\nDarius> Let me suggest this.  Maybe those who believe in the eternal\nDarius> hell theory should provide all the biblical evidence they can\nDarius> find for it.  Stay away from human theories, and only take\nDarius> into account references in the bible.\n\nLike most topics, we've been through this one before, but here is\na good start:  Matthew 25:46:\n\n\"Then they will go away to eternal punishment, but the righteous\nto eternal life.\"\n\nI may post more on this subject when I have more time.  In any\ncase, it is clear that the fate of the damned is most unpleasant,\nand to be avoided.\n\nDavid Wagner\t\t\t\"Sola Scriptura!\"\na confessional Lutheran\n\n[I'd like to suggest that discussions based on single quotations\nare a bad way to proceed.  There are passages consistent with\neither theory.  The sensible way to proceed is to look at them\nall, and see if we can come up with a view that encompasses all\nof them.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1741, "properties": {"category": "sci.space", "text": "From: jgreen@trumpet.calpoly.edu (James Thomas Green)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nArticle-I.D.: zeus.1993Apr22.003719.101323\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 32\n\nprb@access.digex.com (Pat) Pontificated: \n>\n>\n>Some birds require constant management for survival.  Pointing a sensor at\n>the sun, even when powered down, may burn it out.  Pointing a\n>parabolic antenna  at Sol,  from venus orbit  may trash the\n>foci  elements.\n>\nWhat I was getting at in my post is whether or not it might be\npossible to put enough brains on board future deep-space probes\nfor them to automatically avoid such things as looking at the\nsun or going into an uncontrolled tumble.  \n\nI heard once that the voyagers had a failsafe routine built in\nthat essentially says \"If you never hear from Earth again,\nhere's what to do.\"  This was a back up in the event a receiver\nburnt out but the probe could still send data (limited, but\nstill some data).  \n\n>Even if you let teh bird drift,  it may  get hosed by some\n>cosmic phenomena.   \n>\nSince this would be a shutdown that may never be refunded for\nstartup, if some type of cosmic BEM took out the probe, it might\nnot be such a big loss.  Obviously you can't plan for\neverything, but the most obvious things can be considered.\n\n\n/~~~(-: James T. Green :-)~~~~(-: jgreen@oboe.calpoly.edu :-)~~~\\ \n| \"I know you believe you understand what it is that you        |   \n| think I said.  But I am not sure that you realize that        |\n| what I said is not what I meant.\"                             |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1742, "properties": {"category": "sci.space", "text": "From: rborden@ugly.UVic.CA (Ross  Borden)\nSubject: Re: How many read sci.space?\nNntp-Posting-Host: ugl-gw.uvic.ca\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 33\n\nIn article <1qjs1j$306@access.digex.net> prb@access.digex.com (Pat) writes:\n>\n>\n>In the old days,  their used to be Arbitron stats'  that analyzed\n>the readership and posting volumes  by group  and user.\n>\n>They were available from UUNET.   That's how you check the\n>readership of Sci.space,  not some stupid  unscientific attempt\n>to  flood the newsgroup.\n>\n>I have abetter idea.  WHy don't we all reply directly to the\n>origanator  of this post,  and tell him we read sci.space ;-)\n>\n>\n>pat\n\n\tSigh.\n\tI try to make a little joke, I try to inject some humour here\nand what happens?  In the immortal words of Foghorn Leghorn:\n\n\t\"I say, that was a _joke_, son.\"\n\n\tI thought that the bit about McElwaine, not to mention the two\nsmileys, would indicate to even the most humour impaired that I was\nJOKING.\n\tSigh.\n\t(And will everyone who pat's suggestion (thanks bunches, pat)\n*please* stop sending me email.)\n\n-------------------------------------------------------------------------------\n|  I shot a man just to watch him die;    |     Ross Borden                   |\n|  I'm going to Disneyland!               |     rborden@ra.uvic.ca            |\n-------------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1743, "properties": {"category": "rec.sport.baseball", "text": "From: jtchern@ocf.berkeley.edu (Joseph Hernandez)\nSubject: MLB Standings and Scores for Fri., Apr. 16th, 1993\nOrganization: JTC Enterprises Sports Division (Major League Baseball Dept.)\nLines: 72\nDistribution: world\nNNTP-Posting-Host: monsoon.berkeley.edu\nKeywords: mlb, 04.16\n\n\t     MLB Standings and Scores for Friday, April 16th, 1993\n\t                   (including yesterday's games)\n\nNATIONAL WEST\t      Won  Lost   Pct.    GB   Last 10  Streak    Home   Road\nSan Francisco Giants   06   04    .600    --     6-4     Won 1   03-01  03-03\nHouston Astros         05   04    .556   0.5     5-4    Lost 1   00-03  05-01\nAtlanta Braves         06   05    .545   0.5     5-5    Lost 2   03-03  03-02\nColorado Rockies       03   05    .375   2.0     3-5     Won 1   03-03  00-02\nLos Angeles Dodgers    03   07    .300   3.0     3-7    Lost 4   00-03  03-04\nSan Diego Padres       02   07    .222   3.5     2-7    Lost 4   00-04  02-03\nCincinnati Reds        02   07    .222   3.5     2-7    Lost 3   01-02  01-05\n\nNATIONAL EAST\nPhiladelphia Phillies  08   01    .889    --     8-1     Won 5   05-01  03-00\nPittsburgh Pirates     07   02    .778   1.0     7-2     Won 4   03-02  04-00\nSt. Louis Cardinals    07   02    .778   1.0     7-2     Won 3   04-02  03-00\nNew York Mets          04   04    .500   3.5     4-4    Lost 1   02-03  02-01\nChicago Cubs           04   05    .444   4.0     4-5     Won 1   01-02  03-03\nMontreal Expos         04   05    .444   4.0     4-5     Won 1   01-02  03-03\nFlorida Marlins        03   06    .333   5.0     3-6     Won 1   02-04  01-02\n\n\nAMERICAN WEST         Won  Lost   Pct.    GB   Last 10  Streak    Home   Road\nTexas Rangers          06   02    .750    --     6-2    Lost 1   04-02  02-00\nCalifornia Angels      05   02    .714   0.5     5-2     Won 3   03-02  02-00\nChicago White Sox      04   04    .500   2.0     4-4     Won 1   02-03  02-01\nMinnesota Twins        04   04    .500   2.0     4-4    Lost 1   01-02  03-02\nOakland Athletics      04   04    .500   2.0     4-4    Lost 2   04-02  00-02\nSeattle Mariners       04   04    .500   2.0     4-4    Lost 1   03-02  01-02\nKansas City Royals     02   07    .222   4.5     2-7     Won 1   01-05  01-02\n\nAMERICAN EAST\nBoston Red Sox         07   02    .778    --     7-2     Won 3   03-00  04-02\nToronto Blue Jays      05   03    .625   1.5     5-3     Won 1   04-02  01-01\nNew York Yankees       05   04    .556   2.0     5-4    Lost 1   02-01  03-03\nDetroit Tigers         04   04    .500   2.5     4-4     Won 2   02-00  02-04\nCleveland Indians      03   06    .333   4.0     3-6    Lost 3   02-01  01-05\nMilwaukee Brewers      02   05    .286   4.0     2-5    Lost 4   00-02  02-03\nBaltimore Orioles      02   06    .222   4.5     2-6     Won 1   00-02  02-04\n\n\n\t\t\t     YESTERDAY'S SCORES\n                  (IDLE teams listed in alphabetical order)\n\nNATIONAL LEAGUE\t\t\t\tAMERICAN LEAGUE\n\nHouston Astros\t\t1\t\tSeattle Mariners\t1\nMontreal Expos\t\t2\t\tToronto Blue Jays\t3\n\nNew York Mets\t\t3\t\tOakland Athletics\t2\nColorado Rockies\t5\t\tDetroit Tigers\t\t3\n\nPittsburgh Pirates\t5\t\tKansas City Royals\t5\nSan Diego Padres\t4 (13)\t\tNew York Yankees\t4\n\nSt. Louis Cardinals\t4\t\tCleveland Indians\t3\nLos Angeles Dodgers\t2\t\tBoston Red Sox\t\t4 (13)\n\nAtlanta Braves\t\t1\t\tCalifornia Angels     PPD\nSan Francisco Giants\t6\t\tMilwaukee Brewers    RAIN\n\nChicago Cubs\t     IDLE\t\tBaltimore Orioles    IDLE\nCincinnati Reds      IDLE\t\tChicago White Sox    IDLE\n\nFlorida Marlins      IDLE\t\tMinnesota Twins      IDLE\nPhiladelphia PhilliesIDLE\t\tTexas Rangers        IDLE\n-- \n-------------------------------------------------------------------------------\nJoseph Hernandez          |    RAMS  | |    /.\\  ******* _|_|_  / |   LAKERS\njtchern@ocf.Berkeley.EDU  |   KINGS  | |__ |   | DODGERS _|_|_  | |   RAIDERS\njtcent@soda.Berkeley.EDU  |  ANGELS  |____||_|_| *******  | |  |___|  CLIPPERS\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1744, "properties": {"category": "rec.motorcycles", "text": "From: infante@acpub.duke.edu (Andrew  Infante)\nSubject: Re: Definition of \"two up\"?\nDistribution: usa\nOrganization: Duke University; Durham, N.C.\nLines: 24\nNntp-Posting-Host: north1.acpub.duke.edu\n\n>   So following that logic could you describe \"Two down\" \n>as the transition period between \"Two Up\" and \"coming to\n>rest after a High or low side\" ? Otherwise it sounds pretty\n>good. :-)\n>-- \n>Richard Pierson E06584 vnet: [908] 699-6063\n\nOr perhaps it's referring to the wife and child sitting\nin the sidecar next to the one-up on the\nmoto?\n\n:)\n\nAnyone ever heard of a game called oneup-onedown?\n\n(it's a drinking game, for all you older folx...:)\n\n\n\n-- \nAndy Infante  | You can listen to what everybody says, but the fact remains   |\n'71 BMW R60/5 | that you've got to get out there and do the thing yourself.   | \nDoD #2426     |                             -- Joan Sutherland                | \n==============| My opinions, dammit, have nothing to do with anyone else!!!   | \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1745, "properties": {"category": "rec.autos", "text": "From: wen-king@cs.caltech.edu (Wen-King Su)\nSubject: male/female mystery [ Re: Dumbest automotive concepts of all time ]\nOrganization: California Institute of Technology\nLines: 16\nNNTP-Posting-Host: neptune.cs.caltech.edu\n\nIn article <1993Apr1.191826.28921@iscnvx.lmsc.lockheed.com> sharen@iscnvx.lmsc.lockheed.com (Sharen A. Rund) writes:\n\n<apparently you're not a woman - my husband hates the auto door locks\n>features, but forgets that besides families with children, a woman\n<feels safer in a car that locks easily (in addition to watching around\n>& checking out if anyone's near me when I get to my car - never park\n<in a secluded spot, etc - have my keys ready to open the door so I'm\n>not fumbling in my purse looking for them ....\n\nThis has me thinking.  Is there a biological reason why women can't put\ntheir keys in their pants pockets like men do?  I have two pockets on the\nback of each of my pants.  I put my keys in one and wallent in another.\nMany of the pockets even have a botton on them so I can close them securely.\nEverything is that much simpler for me.  Why can't women do the same?\nIs is biological (ie, not enough room for a bigger bottom plus keys and\na wallet) or is it the way they are raised by the parents? \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1746, "properties": {"category": "rec.sport.hockey", "text": "From: bks2@cbnewsi.cb.att.com (bryan.k.strouse)\nSubject: NHL RESULTS FOR GAMES PLAYED 4-14-93\nOrganization: AT&T\nKeywords: wednesday night's boxscores\nLines: 138\n\n\n\nNHL RESULTS FOR GAMES PLAYED 4/14/93.\n\n--------------------------------------------------------------------------------\n                                  STANDINGS\n      PATRICK              ADAMS              NORRIS              SMYTHE\n TM    W  L  T  PT   TM    W  L  T  PT   TM    W  L  T  PT   TM    W  L  T  PT\n \nxPIT  56 21  7 119  xBOS  51 26  7 109  xCHI  46 25 12 104  xVAN  45 29  9  99\nyWAS  42 34  7  91  yQUE  47 27 10 104  yDET  46 28  9 101  yCAL  42 30 11  95\nyNJ   40 36  7  87  yMON  48 30  6 102  yTOR  44 28 11  99  yLA   39 34 10  88\nyNYI  39 37  7  85  yBUF  38 35 10  86   STL  36 36 11  83  yWIN  39 37  7  85\n PHL  34 37 11  79   HAR  26 51  6  58   MIN  36 37 10  82   EDM  26 49  8  60\n NYR  34 38 11  79   OTT  10 70  4  24   TB   23 53  7  53   SJ   11 70  2  24\n\nx - Clinched Division Title\ny - Clinched Playoff Berth\n\n--------------------------------------------------------------------------------\n\nBoston Bruins    (51-26-7)   2   2   0   -   4\nOttawa Senators  (10-70-4)   0   1   1   -   2\n\n1st period: BOS, Roberts 5 - (Juneau) 7:19\n\t    BOS, Wiemer 1 - (Juneau, Oates) 17:47\n\n2nd period: BOS, Neely 11 - (Juneau, Murphy) 6:10\n\t    BOS, Hughes 5 - (Richer, Kimble) 7:55\n\t    OTT, Archibald 9 - (Rumble, Lamb) 11:37\n\t  \n3rd period: OTT, Boschman 9 - (Kudelski) 5:10\n\nPowerplay Opportunities-Bruins   0 of 2\n\t\t\tSenators 0 of 4\n\nShots on Goal-\tBruins    13  11  10  -  34\n\t\tSenators   5   9  12  -  26\n\nBoston Bruins--Moog (36-14-3) (8 shots - 8 saves)  Blue (9:38 second) \n\t       (18 shots - 16 saves)\nOttawa Senators--Sidorkiewicz (8-46-3) (27 shots - 23 saves)  Berthiaume\n\t\t (6:36 third) (7 shots - 7 saves)\n\nATT-10,500\n\n--------------------------------------------------------------------------------\n\nWashington Capitals   (42-34-7)   0   0   2   -   2\nNew York Rangers     (34-38-11)   0   0   0   -   0\n\n1st period: NONE\n\n2nd period: NONE\n\n3rd period: WAS, Bondra 36 - (Pivonka, Cavallini) 6:54\n\t    WAS, Bondra 37 - (Cote, Pivonka) 10:10\n\nPowerplay Opportunities-Capitals 0 of 2\n\t\t\tRangers  0 of 1\n\nShots on Goal-\tCapitals  16  11  12  -  39\n\t\tRangers    8   7   8  -  23\n\nWashington Capitals--Tabaracci (7-11-0) (23 shots - 23 saves)\nNew York Rangers--Richter (13-17-3) (39 shots - 37 saves)\n\nATT-17,897\n\n--------------------------------------------------------------------------------\n\nNew York Islanders  (39-37-7)   2   1   1   0   -   4\nHartford Whalers    (26-51-6)   2   1   1   1   -   5\n\n1st period: NYI, Ferraro 13 - (Malakhov, King) 1:29\n\t    NYI, Hogue 32 - (Thomas, Turgeon) 1:57\n\t    HAR, Yake 21 - (Poulin) 4:15\n\t    HAR, Yake 22 - (Nylander, Poulin) 16:44\n\n2nd period: HAR, Verbeek 39 - (Cassels, Weinrich) (pp) 2:43\n\t    NYI, Thomas 35 - (King, Ferraro) 7:58\n\n3rd period: HAR, Burt 5 - (Sanderson, Cassels) 13:41\n\t    NYI, Malakhov 14 - (Hogue) 17:45\n\nOvertime:   HAR, Janssens 12 - (Poulin) 1:08\n\nPowerplay Opportunities-Islanders 0 of 3\n\t\t\tWhalers   1 of 3\n\nShots on Goal-\tIslanders  16   8   7   1  -  32\n\t\tWhalers     7  13   7   1  -  28\n\nNew York Islanders--Fitzpatrick (16-15-5) (28 shots - 23 saves)\nHartford Whalers--Lenaduzzi (1-0-1) (32 shots - 28 saves)\n\nATT-10,915\n\n--------------------------------------------------------------------------------\n\nPittsburgh Penguins  (56-21-7)   2   3   1   0   -   6\nNew Jersey Devils    (40-36-7)   2   4   0   0   -   6\n\n1st period: PIT, Daniels 5 - (Needham, Tippett) 4:14\n\t    NJD, C.Lemieux 29 - (Semak, Driver) 10:19\n\t    PIT, K.Stevens 55 - (Tocchet, Murphy) (pp) 12:40\n\t    NJD, Zelepukin 22 - (Driver, Niedermayer) 17:26\n\n2nd period: PIT, M.Lemieux 68 - (Stevens, Tocchet) 1:42\n\t    NJD, Semak 36 - (C.Lemieux, Zelepukin) 2:27\n\t    PIT, McEachern 28 - (Jagr, Barrasso) 4:24\n\t    NJD, S.Stevens 12 - (Guerin, Pellerin) 5:45\n\t    PIT, M.Lemieux 69 - (sh) 12:40\n\t    NJD, Richer 37 - (Nicholls) 15:53\n\t    NJD, C.Lemieux 30 - (Semak, Zelepukin) 17:40\n\n3rd period: PIT, Mullen 33 - (Jagr, M.Lemieux) 18:54\n\nOvertime:   NONE\n\nPowerplay Opportunities-Penguins 1 of 5\n\t\t\tDevils   0 of 3\n\nShots on Goal-\tPenguins   9  11   8   2  -  30\n\t\tDevils    12  15   9   3  -  39\n\nPittsburgh Penguins--Barrasso (43-14-5) (39 shots - 33 saves)\nNew Jersey Devils--Billington (21-14-4) (30 shots - 24 saves)\n\nATT-14,796\n\n--------------------------------------------------------------------------------\n\n\n\\|||||/\n-SPIKE-\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1747, "properties": {"category": "misc.forsale", "text": "Organization: Penn State University\nFrom: <HV0@psuvm.psu.edu>\nSubject: Nintendo system + power pad + light gun + games = $80\nLines: 8\n\nNintendo 8 bit system, power pad, light gun (zapper), 2 controllers\n\nGames: Supermario, duck hunt, power field, and wings.\n\nAsking $80.\n\n\nPlease reply to hv0@psuvm.psu.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1748, "properties": {"category": "comp.sys.mac.hardware", "text": "From: slang@bnr.ca (Steven Langlois)\nSubject: Increasing the number of Serial ports\nReply-To: slang@bnr.ca (Steven Langlois)\nOrganization: Bell-Northern Research Ltd.\nLines: 15\n\nDoes anyone know if there are any devices available for the Mac which\nwill increase the number of serial ports available for use\nsimultaneously?  I would like to connect up to 8 serial devices to my\nMac for an application I am working on. I must be able to access each\none of the independently.\n\nIf such a device exists, are there are any limits to the number of\nserial devices I can use?\n\nAny information is appreciated.\n\nSteven Langlois\nslang@bnr.ca\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1749, "properties": {"category": "sci.crypt", "text": "From: lewis@eecg.toronto.edu (david lewis)\nSubject: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: CSRI, University of Toronto\nLines: 31\n\nIn article <16BB51156.C445585@mizzou1.missouri.edu> C445585@mizzou1.missouri.edu (John Kelsey) writes:\n> \n>strnlght@netcom.com (David Sternlight) writes:\n>>\n[..stuff deleted]\n>existence of the key-registry system seems to make possible all kinds of\n>possible attacks at a small fraction of the expense of trying to build (say)\n>a DES keysearch machine.\n> \n>   As originally described, it sounded like any police / court combination\n>could acquire the key for a given chip.  I hope that's not the case, since\n>it would imply a glaring hole.  (How much does it cost to find *one* crooked\n>jodge and *one* crooked cop?  Especially for a foreign intelligence agency\n>or organized crime boss?)  However, even if more intelligent schemes are used\n>to allow access to the unencrypted phone conversations, there will be weak-\n>nesses.  They may be very expensive, and very difficult.  But who would\n>trust his/her confidential information to an encryption scheme that, for\n>(say) $100,000 could by cracked one time in a hundred?  (DES, for all the\n>complaints about a 56-bit key, would probably cost several million dollars\n>to build a keysearch machine for.)\n> \n\nI can buy a DES keysearch machine off the shelf now for approx $500K, but\nit is not sold by that name. Go buy a circuit emulation machine (eg. Quickturn)\ncontaining a bunch of FPGAs, (say 500 to 1000 3090's), and program each\nto be a DES search engine. Lets say 500 chips, running at 10Mhz = 5G tests/sec.\nTime is 14e6 sec max = 23 weeks, 12 weeks average. Can't wait that long?\nBuy a bigger machine.\n\n\nDavid Lewis\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1750, "properties": {"category": "soc.religion.christian", "text": "From: jsledd@ssdc.sas.upenn.edu (James Sledd)\nSubject: Afterlife\nOrganization: Social Science Computing\nLines: 23\n\nHere is another way of looking at it.\n\nWhen we die we are released from the arc of time, and able\nto comprehend our lives in toto.  To visit each moment in\ntime sequentially or all at once, but not able to alter the\nactions thoughts or feelings we had/have/will have in this \nlife.\n\nFrom that perspective, I posit that all will have direct knowledge\nof God, and be able to recognize at each moment of time wether\nwe were doing what we ought.  That the experience of having\nlived a life far from God will be an eternal torment.  That \nhaving lived a life of grace, will be an eternal joy.  That the \nresurrection of the body comes not from any physical reconstitution\nof our present forms, but knowledge of our present forms by our\nfully cognizant souls.\n\nAs an Aside:  If we were to be restricted for all time to\nour present form, would you opt for immortality?\n\nJames Sledd\n\nthink in n dimensions & listen for the voice of God\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1751, "properties": {"category": "rec.motorcycles", "text": "From: gharriso@hpcc01.corp.hp.com (Graeme Harrison)\nSubject: Re: Used Bikes, East vs. West Coasts\nOrganization: the HP Corporate notes server\nLines: 16\n\n/ hpcc01:rec.motorcycles / groverc@gold.gvg.tek.com (Grover Cleveland) /  9:07 am  Apr 14, 1993 /\nShop for your bike in Sacramento - the Bay area prices are\nalways much higher than elsewhere in the state.\n\nGC\n----------\nAffirmative! Check Sacramento Bee, Fresno Bee, Modesto, Stockton,\nBakersfield and other newspapers for prices of motos in the\nclassifieds...a large main public library ought to have a\nnumber of out-of-town papers. \n\n--------------------------------------------------------------------------\nGraeme Harrison, Hewlett-Packard Co., Communications Components Division,\n350 W Trimble Rd, San Jose, CA 95131 (gharriso@hpcc01.corp.hp.com) DoD#649 \n--------------------------------------------------------------------------\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1752, "properties": {"category": "rec.autos", "text": "From: mcostell@oasys.dt.navy.mil (Malcolm G. Costello)\nSubject: Re: Dumbest automotive concepts of all time\nReply-To: mcostell@oasys.dt.navy.mil (Malcolm G. Costello)\nDistribution: usa\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 25\n\nx>>\nx>>>> Fake convertible roofs and vinyl roofs.\nx>>>> Any gold trim.\nx >\nx>>>     These, I will agree, are abominations, right along with the fake\nx>>>continental spare-tire kit -- it's sad watching those little old ladies\nx>>>try to load their groceries into the trunk with that huge tire-medallion\nx>>>in the way.\nx>>>     Most pitiful fake convertible top: on a \"Cadillac\" Cimarron, with\nx>>>all the chrome door trim still visible -- not fooling *anyone*.\nx>>>Of course, there was that Hyundai Excel I once saw...\nx>>\nLeast you think bad taste is something new:\nBack in the early 1970s I saw a couple of cars with *flocked* paint jobs.\nThats not a typo. I think they sprayed on some kind of glue then blew\non tiny pieces of nylon. It comes out looking like felt. Can you picture\na huge Plymouth Fury III in dark blue felt? I think I can even remember\none guy who did it in red to a early 1960s Corvette. That was after he had\nturned it into a station wagon.\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nMack Costello <mcostell@oasys.dt.navy.mil> Code 65.1 (formerly 1720.1)\nDavid Taylor Model Basin, Carderock Division Hq. NSWC    ___/-\\____\nBethesda, MD 20084-5000   Phone (301) 227-2431          (__________>|\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1753, "properties": {"category": "sci.space", "text": "From: flb@flb.optiplan.fi (\"F.Baube[tm]\")\nSubject: First Spacewalk\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 13\n\nAt one time there was speculation that the first spacewalk \n(Alexei Leonov ?) was a staged fake.\n\nHas any evidence to support or contradict this claim emerged ?\n\nWas this claim perhaps another fevered Cold War hallucination ?\n\n-- \n* Fred Baube (tm)         *  In times of intellectual ferment,\n* baube@optiplan.fi       * advantage to him with the intellect\n* #include <disclaimer.h> * most fermented !\n* How is Frank Zappa doing ?\n* May '68, Paris: It's Retrospective Time !!  \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1754, "properties": {"category": "sci.crypt", "text": "From: jhan@debra.dgbt.doc.ca (Jerry Han)\nSubject: Overreacting (was Re: Once tapped, your code is no good any more)\nNntp-Posting-Host: debra.dgbt.doc.ca\nOrganization: Communications Research Centre, Ottawa\nDistribution: na\nLines: 36\n\nIn this giant bally-ho over this Clipper chip I noticed a rather\ndisturbing trend in some of the E-mail and posts I've tossing back and\nforth.  \n\nSomebody asked me what was wrong about overreacting in cases such as this.\n\nThe reason is very simple:  How many people do you want to die in a riot? \nIn a new Civil War? \n\nEverybody is jumping up and down and screaming about it, and I'm worried\nthat people are going to reach for their hammers and rifles before their pens\nand paper.  \n\nCan people work within the system before trying to break it?  Examine your\nhistory books, and find out how many armed revolutions led to Democratic\n(or Democratic style) governments.  I think you'll only find one in over\nfive thousand years of written history.\n\nThat's not very good odds.  \n\nSomebody once said something like: \"Armed Violence is meant only to be\nused in response to an armed attack.  It is not meant to be used in\nagression.  This is the difference between self-defence and murder.\"\n\nLet's try to avoid killing things, eh?  There's enough blood shed in the\nworld, without adding a couple of riots, Civil Wars, etc.\n\nI'm probably overreacting.  But what I've read scared me a lot.  I don't\nwant my children growing up in a War Zone.\n\n\n-- \nJerry Han-CRC-DOC-Div. of Behavioural Research-\"jhan@debra.dgbt.doc.ca\"\n///////////// These are my opinions, and my opinions only. \\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\ A proud and frozen member of the Mighty Warriors Band ////////  \n\"Memories of those I've left behind, still ringing in my ears.\"-Genesis-\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1755, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gsnow@clark.edu (Gary Snow)\nSubject: Re: QUESTION: 1024 x 768 on Quadra 800\nArticle-I.D.: clark.1993Apr6.215836.27428\nOrganization: Clark College, Vancouver, Wa.  USA\nLines: 14\n\nIn article <D2150026.u982nu@bostrauma.trauma.com> ennui@trauma.com (N is for Neville who died of ennui) writes:\n>Does anyone have information on acheiving 1024 x 768 resolution on a Q800\n>using interanl video? Is this even possible? I suspect that it isn't although\n>I'd certainly like to know for sure.\n\nOf course its possible, I get 1024x768 on my Centris 650. All you need is\na correctly wired video cable.\n\nGary\n\n-- \n-----\nGary Snow\nuunet!clark!gsnow  or  gsnow@clark.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1756, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: End of the Space Age?\nOrganization: Express Access Online Communications USA\nLines: 30\nDistribution: world\nNNTP-Posting-Host: access.digex.net\n\n\n\nOddly, enough,  The smithsonian calls the lindbergh years\nthe golden age of flight.  I would call it the granite years,\nreflecting the primitive nature of it.  It was  romantic,\nswashbuckling daredevils,  \"those daring young men in their flying\nmachines\".  But in reality, it sucked.  Death was a highly likely\noccurence,  and  the environment blew.  Ever see the early navy\npressure suits,  they were modified  diving suits.  You were ready to\nstar in \"plan 9 from outer space\".   Radios  and Nav AIds were\na joke,  and engines ran on castor oil.  They  picked and called aviators\n\"men with iron stomachs\",  and it wasn't due to vertigo.\n\nOddly enough, now we are in the golden age of flight.  I can hop the\nshuttle to NY for $90 bucks,  now that's golden.\n\nMercury gemini, and apollo were romantic,  but let's be honest.\nPeeing in bags,  having plastic bags glued to your butt everytime\nyou needed a bowel movement.  Living for days inside a VW Bug.\nRomantic,  but not commercial.   The DC-X  points out a most likely\nnew golden age.  An age where  fat cigar smoking business men in\nloud polyester space suits will fill the skys with strip malls\nand used space ship lots.\n\nhhhmmmmm,  maybe i'll  retract that golden age bit.   Maybe it was\nbetter in the old days.  Of course, then we'll have  wally schirra\ntelling his great grand children, \"In my day,  we walked on the moon.\nEvery day.  Miles.  no buses.  you kids got it soft\".\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1757, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: In memoriam: Dan Kelly and Danny Gallivan\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nDistribution: na\nLines: 27\n\nIn article <burke.1-290393150052@burkemac.oshag.nd.edu> burke.1@nd.edu (R. P. Burke) writes:\n>When talking about hockey broadcasters, let's give a moment of silence to\n>remember the St. Louis Blues' great, Dan Kelly. (Many of you may have heard\n>him in the late 60s and early 70s on CBS.) He used to do Hockey Night In\n>Canada intermissions, with another recently deceased great, Danny Gallivan\n>of the Canadiens.\n\nAgreed here...I'll never forget Dan Kelly calling the play-by-play in the '87\nCanada Cup.  He was masterful!\n\nAnd Danny Gallivan will _never_ be replaced; even now when I watch HNIC I\nremember his voice...when I see an Al MacInnis or Al Iafrate (hey, what's with\nthese guys named Al who can shoot??) shot from the point I still think\n\"blistering blast\"...THN had a tribute to Gallivan in the issue following his\ndeath; in the story they included a quote from one of the games he did.  It\nwent: \n\n\"It appears Risebrough has pugnaciously construed that check,\" he said, \"and \nwill undoubtedly make a visitation to the box of punition.\"\n\nClassic, vintage Gallivan!  He's sorely missed.  So here's to two of the best\nthere was and best that ever will be.\n\n\ndchhabra@stpl.ists.ca\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1758, "properties": {"category": "comp.graphics", "text": "From: ib@ivan.asd.sgi.com (Ivan Bach)\nSubject: Re: Adobe Photo Shop type software for Unix/X/Motif platforms?\nNntp-Posting-Host: ivan.asd.sgi.com\nOrganization: Silicon Graphics, Inc., Mountain View, CA\nLines: 9\n\nWe have been shipping for over one year the Adobe Display PostScript (DPS)\non Silicon Graphics workstations, file servers, and supercomputers.\nThe Adobe Illustrator 3.5 for Silicon Graphics machines was released\nlast February.  Adobe and SGI announced last October that Photoshop\nwill be available on SGI systems in 1993.  Initial release will support \n24-bit color graphics.\n\nIvan Bach, ib@sgi.com\nDisclaimer: I do not speak for my employer.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.082+0000", "event": "documents", "entityId": 1759, "properties": {"category": "talk.religion.misc", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 54\n\n\n: In my mind, to say that science has its basis in values is a bit of a\n: reach. Science has its basis in observable fact. \n\nI'd say that what one chooses to observe and how the observation is\ninterpreted and what significance it's given depends a great deal on\nthe values of the observer. Science is a human activity and as such,\nis subject to the same potential for distortion as any other human\nactivity. The myth that scientists are above moral influence or\nethical concern, that their knowledge can be abstacted whole and pure\nfrom nature untainted by the biases of the scientist, is nonsense.\n\nBill\n\n: If one is to argue for objective values (in a moral sense) then one must\n: first start by demonstrating that morality itself is objective. Considering\n: the meaning of the word \"objective\" I doubt that this will ever happen.\n\n: So, back to the original question:\n\n: And objective morality is.....?\n\nThis may be an unfortunate choice of words, almost self-contradictory.\nObjective in the sense used here means something immutable and\nabsolute while morality describes the behavior of some group of\npeople. The first term is all inclusive, the second is specific. The\nconcept supposedly described may have meaning however. \nIf there is a God as described by the Christians (for instance), then\nHe has existence apart from and independent of humankind; His\nexistence is outside of our frame of reference (reality). If this\nbeing declares a thing to be so, it is -necessarily- so since He has\ndefined Himself as omnipotent and, if His claims are to be believed,\nHe is at least omnipotent relative to us. God is intrinsically\nself-defined and all reality is whatever He says it is - in an\nobjective sense.\nIf God determines a standard of conduct, that standard is objective.\nIf human beings are held accountable for their conformance to that\nstandard while permitted to ignore it, they substitute a relative\nmorality or mode of conduct, giving the term morality a nebulous,\nmeaningless sense that can be argued about by those pretending to\nmisunderstand. The standard is objective and the conduct required to\nmeet that standard is therefore objectively determined.\nJust because it is convenient to pretend that the term morality is\ninfinitely malleable, doesn't mean that the objective standard itself\ndoesn't exist. Morality has come to mean little more than a cultural\nnorm, or the preferred conduct of \"decent\" people, making it seem\nsubjective, but it is derived from an absolute, objective, standard.\nIronically, this objective standard is in perfect accord with our true\nnature (according to Christianity at least), yet is condemned as being\ncontrary to human nre, oppressive and severe. This may be due as\n\nBill\nmuch to our amoral inclinations as to the standard itself, but like it\nor not, it's there.x\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1760, "properties": {"category": "talk.politics.misc", "text": "From: rja@mahogany126.cray.com (Russ Anderson)\nSubject: Re: New Study Out On Gay Percentage\nOriginator: rja@mahogany126\nLines: 33\nNntp-Posting-Host: mahogany126\nOrganization: The 1991 World Champion Minnesota Twins!\n\n\nIn article <15378@optilink.COM>, cramer@optilink.COM (Clayton Cramer) writes:\n> \n> From the Santa Rosa (Cal.) Press-Democrat, April 15, 1993, p. B2:\n> \n>     Male sex survey: Gay activity low\n> \n>     A new natonal study on male sexual behavior, the most thorough\n>     examination of American men's sexual practices published since\n>     the Kinsey report more than four decades ago, shows about 2\n>     percent of the men surveyed had engaged in homosexual sex and\n>     1 percent considered themselves exclusively homosexual.\n\nActually, what the study shows is that 2 percent of the men surveyed\n*said* they engaged in homosexual sex and 1 percent *said* they \nconsidered themselves exclusively homosexual.\n\nThe point being that what people say and what they acutally do\nmay be different.\n\nIt is interesting that this clip from the newspaper did not\nmention that difference.  Maybe it is conservative media bias.  :-)\n\n>     The figures on homosexuality in the study released Wednesday\n>     by the Alan Guttmacher Institute are significantly lower than\n>     the 10 percent figure that has been part of the conventional\n>     wisdom since it was published in the Kinsey report.\n\n\n-- \nRuss Anderson    |  Disclaimer: Any statements are my own and do not reflect\n------------------              upon my employer or anyone else.  (c) 1993\nEX-Twins' Jack Morris, 10 innings pitched, 0 runs (World Series MVP!)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1761, "properties": {"category": "sci.space", "text": "From: abdkw@stdvax (David Ward)\nSubject: Re: Shuttle Launch Question\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nOrganization: Goddard Space Flight Center - Robotics Lab\nDistribution: sci\nLines: 18\n\nIn article <C5JLwx.4H9.1@cs.cmu.edu>, ETRAT@ttacs1.ttu.edu (Pack Rat) writes...\n>There has been something bothering me while watching\n>NASA Select for a while.  Well, I should'nt say\n>bothering, maybe wondering would be better.  When\n>they are going to launch they say (sorry but I forget\n>exactly who is saying what, OTC to PLT I think)\n>\"Clear caution & warning memory.  Verify no unexpected\n>errors. ...\".  I am wondering what an \"expected error\" might\n>be.  Sorry if this is a really dumb question, but\n\n\nIn pure speculation, I would guess cautions based on hazardous\npre-launch ops would qualify.  Something like \"Caution:  SRBs\nhave just been armed.\"  \n\nIt does raise an interesting question as to how hard it is to \npick out an Expected Error from an Unexpected Error in the heat\nof the moment. \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1762, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mmadsen@bonnie.ics.uci.edu (Matt Madsen)\nSubject: SE/30 acc & graphics card?\nNntp-Posting-Host: bonnie.ics.uci.edu\nReply-To: mmadsen@ics.uci.edu (Matt Madsen)\nOrganization: Univ. of Calif., Irvine, Info. & Computer Sci. Dept.\nLines: 9\n\nAre there any graphics cards for the SE/30 that also have, say, an 040\naccelerator?  There seem to be plenty of accelerator/graphics cards for\nthe _SE_, but none (that I've seen) for the SE/30.\n\nThanks\n\nMatt Madsen\nmmadsen@ics.uci.edu\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1763, "properties": {"category": "sci.med", "text": "From: kxgst1+@pitt.edu (Kenneth Gilbert)\nSubject: Re: quality control in medicine\nOrganization: University of Pittsburgh\nLines: 20\n\nIn article <93108.003258U19250@uicvm.uic.edu> U19250@uicvm.uic.edu writes:\n:Does anybody know of any information regarding the implementaion of total\n: quality management, quality control, quality assurance in the delivery of\n: health care service.  I would appreciate any information.  If there is enough\n:interest, I will post the responses.\n\n\nThis is in fact a hot topic in medicine these days, and much of the\nmedical literature is devoted to this.  The most heavily funded studies\nthese days are for outcome research, and physicians (and others!) are\nconstantly questionning whether what we do it truly effective in any given\nsituation.  QA activities are a routine part of every hospital's\nadministrative function and are required by accreditation agencies.  There\nare even entire publications devoted to QA issues.\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!\" =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1764, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nKeywords: Nuclear\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 25\n\nJust to complete that thought, the cooling towers cool water that\ncirculates through heat exchangers that recondense the turbine\nexhaust back into feedwater for the heat exchangers that transfer\nenergy from the reactor's cooling circuit.\n\n\n  |---------------|   |------turbine, etc---|  |---------|\n  |                >   >                    >   >        .\nreactor            <   <                    <   >        .\n  |                >   >                    >   >        C. T.\n  |---------------|    |--------------------|  |----------\n\nThe reactor has a closed loop circuit to prevent radioactive\ncontamination of the the turbine feedwater.\n\nThe cooling tower is a separate circuit to avoide contamination of\nthe turbine feedwater with atmospheric contamininats, etc.\nPurifying boiler feedwater is important business at both fossil\nfired and nuclear generation facilities.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1765, "properties": {"category": "rec.autos", "text": "From: lorenzo@rintintin.Colorado.EDU (Eric Lorenzo)\nSubject: Re: Integra GSR\nNntp-Posting-Host: rintintin.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 25\n\nIn article <1993Apr5.234729.100387@ns1.cc.lehigh.edu> daz1@ns1.cc.lehigh.edu (DEMOSTHENIS A. ZEPPOS) writes:\n>Why don't you look again at Motor Trend's, slalom times, they are 67.9, right\n>along with the Integra, and the car does that with small 14 inch tires that\n>are all -weather XGTV4, not to mention that the Integra rides alot better than\n>a Beretta.\n\n\tMy GS came with XGT V4s and they are NOT all weather tires.  I took\nout my right front bumper sliding on packed snow (not ice), before I learned\nthis fact.  I immediately bought XGT H4s which are definately all-weather.\nA Carrera 4 I walk by everyday has XGT V4s on it even.  The Michelin dealer\nwhere I bought my new tires said the V4s were made out of a different \nrubber that gets really hard and slick when the weather gets near feezing.  \nSaid he'd only try to sell me those tires during the winter if we were in\nTexas and not Colorado.\n\nThanks,\nEric\n\n\n\n-- \n     --    O       An inactive lifestyle               Eric J. Lorenzo\n   ---   </\\_  violates our genetic warranty   lorenzo@rintintin.Colorado.EDU\n  ---  -\\/\\       Not to excercise is not            also @spot & @ucsu\n    ---   /_         to be fully human.    -Keith Johnsgard\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1766, "properties": {"category": "talk.religion.misc", "text": "From: bskendig@netcom.com (Brian Kendig)\nSubject: Re: *** The list of Biblical contradictions\nOrganization: Starfleet Headquarters: San Francisco\nLines: 30\n\njoslin@pogo.isp.pitt.edu (David Joslin) writes:\n>\n>I'm curious to know what purpose people think these lists serve.\n>Lists like this seem to value quantity over quality, an \"argument\n>from article length.\"  And the list you have here is of poorer\n>quality than most.\n\nI agree, which is why I've asked for help with it.\n\nThe reason I'm working on this list is because I've recently had one\ntoo many Christians tell me \"the Bible contains no contradictions\nwhatsoever.\"  They believe that it's true, and that it describes\nreality perfectly, and even predicts history before it happens.\n\nBefore I can carry on any sort of meaningful conversation with these\npeople, I've got to SHOW them, with concrete evidence, that the Bible\nis not nearly as airtight as they thought.  I hope to do that with\nthis list.\n\nSpecifically: when I bring up the fact that Genesis contains two\ncontradictory creation stories, I usually get blank stares or flat\ndenials.  I've never had a fundamentalist acknowledge that there are\nindeed two different accounts of creation.\n\n-- \n_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n_/_/                            n'etre fait comme aucun de ceux qui existent.\n  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n /    is that it ends.                                           -- Rousseau\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1767, "properties": {"category": "talk.politics.misc", "text": "From: richw@mks.com (Rich Wales)\nSubject: Sick and tired (was Re: Bill Conklin (et al) 's letter)\nReply-To: richw@mks.com (Rich Wales)\nOrganization: Mortice Kern Systems Inc., Waterloo, Ontario, CANADA\nDistribution: na\nLines: 92\n\nReplying to A.J. Teel:\n\n\tWell, the two nifty letters giving concrete proof that the\n\tIncome Tax is voluntary and giving specific procedures for\n\tstopping withholding, et cetera have been out there for a\n\twhile now.\n\nHumbug.  Those letters don't provide \"concrete proof\" of anything at all\nin the absence of any case law that demonstrates the method will actu-\nally work for ordinary people in everyday situations.\n\nSpecifically, show us some case law in which the courts have ruled that\nincome tax is illegal and/or that ordinary working types do not have to\npay income tax (and that they can legally avoid paying income tax with-\nout declaring themselves to be churches or some such silliness).  This\nissue is sufficiently important that I think we have a right to expect\nsomething squarely on point from the US Supreme Court (in the case of\nfederal tax) or a state's supreme court (for a state's income tax).\n\nUnless you can do that, I for one am unwilling to call your material\n\"concrete proof\".\n\n\tThere has been no refutation to date.  Have the nay-sayers\n\tfinally given up as defeated?  Sure would like to hear their\n\treasons for disbelief at this point.\n\nRefutation??  Refutation of what?  You haven't made a case yet.  You've\nposted plenty of claims, but you haven't given us any valid reason to\nbelieve that any court in the US will agree with you.  Your claims seem\non the surface to deviate so radically from the legal mainstream that I\nfeel the burden of proof is still on =you= to show that your arguments\nhave any merit whatsoever.  And the cases you've cited involve such\nstrange situations that I see no reason to assume that the rulings are\napplicable to anyone else, or that they will ultimately stand on appeal\nto the Supreme Court.\n\nWhy can't you just cite us a case in which Joe Schmoe, a regular\nemployee earning regular wages from a regular company, refuses to pay\nhis income tax, gets hauled into court, is convicted of wilful tax eva-\nsion, and then has his conviction overturned by the US Supreme Court\nwith a landmark 7-2 majority ruling that income tax is indeed totally\nvoluntary?  What, you say?  No such case exists?  Hmmm, I wonder why\nnot; why haven't you?\n\n\tShall I conclude that the point has been received and the\n\topposition has forfeited the field?\n\nWith all due respect, you can conclude anything you want.  I just hope,\nfor your own sake, that you don't conclude that anyone in a position of\nauthority in the United States or any legitimate or illegitimate polit-\nical subdivision thereof is going to agree with your conclusions.\n\nFor that matter, I confess I'm thoroughly confused as to =why= you would\nbe looking for court rulings in your favor anyway -- since I thought you\ntold us earlier that every court in the US has been in cahoots with big\nbanking interests since the 1938 \"admiralty jurisdiction\" coverup thing.\nDo you honestly expect us to believe that they'd go to all the trouble\nto subvert the system, and yet would still promptly slink back into\ntheir burrows in the face of anyone who knew enough to invoke the right\ncombination of magic spells and mystic mumbo-jumbo?\n\nNot only that, but why do you even =care= what the US courts say anyway?\nDidn't you tell us a while back that you've disavowed all attempts by US\nofficials to classify you as a \"14th Amendment federal citizen\"?  When\nthe FBI comes to haul you away for tax evasion, why don't you just tell\nthem they're out of their jurisdiction and should go back to Washington,\nD.C., where they belong?\n\nOr maybe we should all just go back to mediaeval common law, which you\nsuggested would be better than all these statutes, codes, and the like.\nIf you want to renounce society's legal framework, fine; we can just\ndeclare you an outlaw, OK?, and anyone who sees you driving on the roads\nwith no license plate on your car and no driver's license in your wallet\ncan just take you like a game animal and stew you for their supper (with\nplenty of veggies and a pinch of salt, but WITHOUT PREJUDICE UCC 1-207).\n\nSorry, everyone, it's getting late, and I'm sick and tired of all this\ngarbage.  If I know what's good for me, I'll just clam up and stop try-\ning to refute this nonsense, and if anyone falls for it and winds up in\njail for tax evasion or what-not, it'll be on their own head.\n\nNeedless to say, none of the above represents the opinions of my current\nemployer -- who, in any case, is a Canadian and doesn't really need to\ncare too much about US tax law.  I, on the other hand, am a \"14th Amend-\nment federal citizen\", with a US passport to prove it, and plan to keep\non filing Form 1040's for the foreseeable future (though I will probably\nnot owe any US income tax due to the foreign earned income exclusion\nand/or the foreign tax credit).\n\n-- \nRich Wales <richw@mks.com>       //      Mortice Kern Systems Inc. (MKS)\n35 King St. N. // Waterloo, Ontario, Canada N2J 2W9 // +1 (519) 884-2251\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1768, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: David_A._Schnider@bmug.org\nOrganization: BMUG, Inc.\nSubject: SE pricing\nLines: 7\n\nWhat is the value of an SE (HDFD) 4/20?\n\n-David\n\n**** From Planet BMUG, the FirstClass BBS of BMUG.  The message contained in\n**** this posting does not in any way reflect BMUG's official views.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1769, "properties": {"category": "comp.graphics", "text": "From: lcd@umcc.umcc.umich.edu (Leon Dent)\nSubject: Re: MPEG for x-windows MONO needed.\nOrganization: UMCC, Ann Arbor, MI\nLines: 20\nNNTP-Posting-Host: umcc.umcc.umich.edu\n\nOn sunsite.unc.edu in pub/multimedia/utilities/unix find \n mpeg_play-2.0.tar.Z.\n\nI find for mono it works best as mpeg_play -dither threshold \n   though you can use            mpeg_play -dither mono\n\nFace it, this is not be the best viewing situation.\n\nAlso someone has made a patch for mpeg_play that gives two more mono\nmodes  (mono2 and halftone).\n\nThey are by jan@pandonia.canberra.edu.au (Jan Newmarch).\nAnd the patch can be found on csc.canberra.edu.au (137.92.1.1) under\n/pub/motif/mpeg2.0.mono.patch.\n\n\nLeon Dent\nlcd@umcc.umich.edu\n \n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1770, "properties": {"category": "misc.forsale", "text": "From: wgs1@Isis.MsState.Edu (Walter G. Seefeld)\nSubject: Re: Microsoft DOS 6.0 Upgrade for sale\nNntp-Posting-Host: isis.msstate.edu\nOrganization: Mississippi State University\nLines: 22\n\nIn article <AHALL.93Apr5132130@slothrop.fmrco.com> ahall@fmrco.com (Andrew Hall) writes:\n>In article <C4rvnz.6wE@unx.sas.com> sasjhc@maxwell.unx.sas.com (Joe Croos) writes:\n>\n>   |> yuanchie@eve.usc.edu (Yuan-Chieh Hsu) writes:\n>   |>\n>   |> >    MS DOS 6.0 Upgrade for sale     best offer over $45\n>   |> >    (opened, unregistered)\n>   |>\n>   |> Gee, my copy of PC Magazine states that the upgrade is retailing for $49.99...\n>\n>   Egghead, across the street, sells it for $47.49 and I'm going that way\n>   after work :->\n>\n>CompUSA has it for 38.xx, in Boston.\n\nI will sell it for $33 including shipping...\n\n--\nWalter G. Seefeld          |  By the dawn's early light,\n940 N. Jackson St. #1A     |  By all I know is right,\nStarkville, MS 39759       |  We're going to reap what we have sown.\nN5QXR                      |   -Jackson Brown \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1771, "properties": {"category": "talk.religion.misc", "text": "From: kevin@rotag.mi.org (Kevin Darcy)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Who, me???\nLines: 15\n\nIn article <pww-180493195323@spac-at1-59.rice.edu> pww@spacsun.rice.edu (Peter Walker) writes:\n>In article <1993Apr18.210407.10208@rotag.mi.org>, kevin@rotag.mi.org (Kevin\n>Darcy) wrote:\n>> The phenomenologist Husserl, for one, considered Intentionality to be the\n>> primary ontological \"stuff\" from which all other ontology was built --\n>> perceptions, consciousness, thoughts, etc. Frank is by no means alone in\n>> seeing intentionality (or \"values\", as he puts it) underlying all human\n>> experience, even the so-called \"objective\" experiences, such as \n>> measurements of the natural world, or the output of your DES chip.\n>\n>And others of us see it as intellectual masturbation.\n\nI'll defer to your greater firsthand knowledge in such matters.\n\n\t\t\t\t\t\t\t\t- Kevin\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1772, "properties": {"category": "rec.autos", "text": "From: ssave@ole.cdac.com (The Devil Reincarnate)\nSubject: Quick question\nKeywords: Removing panels.\nOrganization: CDAC, WA\nLines: 9\n\n How do you take off the driver side door panel from the inside\non an '87 Honda Prelude?  The speaker went scratchy, and I want\nto access its pins.\n\n I see only one press button and the rest is snug fit.\n\n\n -S\n ssave@ole.cdac.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1773, "properties": {"category": "sci.space", "text": "From: u1452@penelope.sdsc.edu (Jeff Bytof - SIO)\nSubject: End of the Space Age?\nOrganization: San Diego Supercomputer Center @ UCSD\nLines: 16\nDistribution: world\nNNTP-Posting-Host: penelope.sdsc.edu\n\nWe are not at the end of the Space Age, but only at the end of Its\nbeginning.\n\nThat space exploration is no longer a driver for technical innovation,\nor a focus of American cultural attention is certainly debatable; however,\ntechnical developments in other quarters will always be examined for\npossible applications in the space area and we can look forward to\nmany innovations that might enhance the capabilities and lower the\ncost of future space operations. \n\nThe Dream is Alive and Well.\n\n-Jeff Bytof\nmember, technical staff\nInstitute for Remote Exploration\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1774, "properties": {"category": "comp.graphics", "text": "From: ehgasm2@uts.mcc.ac.uk (Simon Marshall)\nSubject: How do I compensate for photographic viewpoint and distortion?\nReply-To: S.Marshall@dcs.hull.ac.uk\nOrganization: Manchester Computing Centre, Manchester, England\nLines: 42\n\nHi to all out there.  We have this problem, and I'm not certain I'm solving it\nin the correct way.  I was wondering if anyone can shed light on this, or point\nme in the right place to look...\n\nWe have an X-ray imaging camera and a metallic tube with a cylindrical hole\npassing through it at a right angle to the tube's axis:\n\n                                                          |\n                                     ||                   [ image\n                                                          |\n  X-ray source ]                     ||                   | screen\n                            metallic || tube              |\n                                     ||                   |\n                                                          |\n\nWe know source--screen centre distance, radius of the tube, radius of the hole.\n\nWe do some calculations based on the image of the hole on the screen.  However,\nthe calculations are mathematically highly complex, and must assume that the\nobject's hole projects an image (resembling an ellipse if the tube is not\nparallel to the screen) in the centre of the screen.  However, it is unlikely\nthat the object is placed so conveniently.  \n\nFirstly, we must transform the major and minor axis of the ellipse.  I cannot\nknow what the angle between the tube and screen is.  Do I have to assume that\nthey are parallel to do the transformation?  How do I do this transformation?\n\nSecondly, there is a distortion of the image due to the screen being planar\n(the source--screen distance increases as we move away from the centre of the\nscreen).  How can I compensate the ellipse's axis for this image distortion?\n\nSo, please can anyone give us a few pointers here?  How do we transform the\nimage so it appears as it would if it were in the centre of the screen, and how\ndo I deal with distortion due to the shape of the screen?\n\nWe'd appreciate any help, either posted or emailed.\n\nThanks in advance, Simon.\n-- \nSimon Marshall, Dept. of Computer Science, University of Hull, Hull HU6 7RX, UK\n  \"Football isn't about life and death.  It's more important than that.\" Bill\nEmail: S.Marshall@cs.hull.ac.uk   Phone: +44 482 465951  Fax: 466666   Shankley\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1775, "properties": {"category": "rec.sport.hockey", "text": "From: wong@fraser.sfu.ca (Sam S. Wong)\nSubject: Re: Mogilny must be benched.\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 21\n\ndchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n\n>Actually this stuff from Mogilny doesn't surprise me all that much.  About 4\n\n>or 5 weeks ago I read in the Toronto Sun a quote from Alex; it went something\n>like [sarcastically]:\n\n>\"Yep, Patty's the man.  He's responsible for the team's success...I'm a \n>nobody around here.\"\n\n>I was going to post it at the time...I must have forgot since nobody else \n>Gee, kinda like Alex's spot on the team, isn't it?\n\n\n\nHow can you assume it was a sarcastic remark?\n\nFor someone whose first language is not English, I would interpret\nthat comment to mean that he believes Pat is the MVP on the team and that\nhe is just one of the other normal players.  Quite modest I might say.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1776, "properties": {"category": "rec.autos", "text": "From: celeste%express@freedom.msfc.nasa.gov (Celeste)\nSubject: Re: male/female mystery [ Re: Dumbest automotive concepts of all time ]\nNntp-Posting-Host: 128.158.16.248\nOrganization: AEGIS\nLines: 56\n\nIn article <1pima2INN180@gap.caltech.edu>, wen-king@cs.caltech.edu\n(Wen-King Su) wrote:\n> \n> In article <1993Apr1.191826.28921@iscnvx.lmsc.lockheed.com> sharen@iscnvx.lmsc.lockheed.com (Sharen A. Rund) writes:\n> \n> <apparently you're not a woman - my husband hates the auto door locks\n> >features, but forgets that besides families with children, a woman\n> <feels safer in a car that locks easily (in addition to watching around\n> >& checking out if anyone's near me when I get to my car - never park\n> <in a secluded spot, etc - have my keys ready to open the door so I'm\n> >not fumbling in my purse looking for them ....\n> \n> This has me thinking.  Is there a biological reason why women can't put\n> their keys in their pants pockets like men do?  I have two pockets on the\n> back of each of my pants.  I put my keys in one and wallent in another.\n> Many of the pockets even have a botton on them so I can close them securely.\n> Everything is that much simpler for me.  Why can't women do the same?\n> Is is biological (ie, not enough room for a bigger bottom plus keys and\n> a wallet) or is it the way they are raised by the parents? \n\nWomen's pants rarely have pockets and most, when they do, are too\nshallow to use!\n\nI is very important for a woman to have her keys in her hand when\nshe goes from building to a car. It is protect herself from\nwould be assilants by broadcasting that this is someone who\nas a definite place of safty (ie a locked car!).\n\nPuting keys and walet looks ugly! It breaks the lines and makes\nyou rear look wide as a cows!\n\n Also, to have the habits that\nwork for any clothing situation, the pruse functions no mater\nwhat you are wearing! (even nude or a bikni)\n\nA women's suit coat is lucky to have 2 pockets (2 on the outside,\nnone on the inside). I have men's coats that have as much as 6\npockets! This is definitally not fair!!!\n\nAs one that wears both men's and women's clothes, I can tell you,\nwomen's clothes have few if any funtional pockets!\n\nWhen dressed as a man, I put my wallet on my inside coat pocket and\nmy keys in a coat outside pocket. It is much more covenent\nthan the pants pockets and looks better.\n\nHaving a car that unlocks quickly and locks back fast is\nparamout to a woman's safty. Men don't see this as a problem.\nA woman is aware of this every time she goes out! (i.e.\nImage some red necks yelling at you \"We are going to FUCK YOU!\"\nand the out weight you by 20 lbs and have 3 inches in hight\non you!)\n\nIf you want to find out why a women does something, LIVE AS ONE!\n\nCeleste\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1777, "properties": {"category": "talk.politics.misc", "text": "From: neal@magpie.linknet.com (Neal)\nSubject: Re: race and violence\nOrganization: Manes and Associates, NYC\nDistribution: usa\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 8\n\nI replied to your message, however, it is listed as a new topic with\nthe title: \"rnitedace and violence\". Possibly line noise or error\ncaused to post as a new topic. I see it here as #100.\n\nRegards,\n\nNeal\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1778, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Re: plus minus stat\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 47\n\n\nIn article 1qmtd1INNr1l@iskut.ucs.ubc.ca, gibson@nukta.geop.ubc.ca (Brad Gibson) writes:\n\n<In response to a debate about who has has a better season- Jagr of Francis>\n\nI think Jagr did he probably had a better point per minute ice time- stats\ndon't exist to properly analyze this and he had a substancially better +/-.\n\n\n>  Actually, what I think has become more evident, is that you are determined to\n>  flaunt your ignorance at all cost.  Jagr did not have a better season than\n>  Francis ... to suggest otherwise is an insult to those with a modicum of\n>  hockey knowledge.  Save your almost maniacal devotion to the almighty\n>  plus/minus ... it is the most misleading hockey stat available.\n>\n>  Until the NHL publishes a more useful quantifiable statistic including ice\n>  time per game and some measure of its \"quality\" (i.e., is the player put out\n>  in key situations like protecting a lead late in the game; is he matched up\n>  against the other team's top one or two lines; short-handed, etc), I would\n>  much rather see the +/- disappear altogether instead of having its dubious\n>  merits trumpeted by those with little understanding of its implications.\n\n+/- is a useful statistic.  If a player is on the ice when his team scores a\nlot of goals and only allows a few goals, he must be doing something right.\nIt is especially useful to compare between teammates- as they play for the\nsame team and should have roughly similar +/- ratings if they are equally\ngood players.  It can be adjusted- with varying degrees of success to compare\nbetween players on different teams.\n\nI agree it would be nice for the NHL to keep more statistics- but how useful\nare the ones that you suggest??  Total ice time would be very useful- it is\na missing stat in Jagr vs Francis arguments from before.  Somehow measuring\nthe quality of ice time as you suggest would be useless.  It would be a\nbetter stat for evaluating coaching- ie are the players given quality ice\ntime actually their talented ones?  A very good player could be given low\namounts of quality ice time because of team depth or a stupid coach who\ndoesn't recognize his talent and a very bad player could be given lots of\nquality ice time because of a lack of team depth or a stupid coach that\nthinks he is an effective player.  This stat would be much more flawed than\n+/- and almost no conclusions could be drawn regarding player talent.\n\n+/- is a useful stat.  It is quite useful in evaluating player talent.\nYou are the one displaying ignorance because of your unwillingness to see\nthat being on the ice when goals are scored but not when they are allowed\nis a very positive thing- and should be evaluated as such.\n\nGregmeister\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1779, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Organization: Penn State University\nFrom: <DXB132@psuvm.psu.edu>\nSubject: Re: IDE vs SCSI\nDistribution: world\nLines: 18\n\nIn article <1qlbrlINN7rk@dns1.NMSU.Edu>, bgrubb@dante.nmsu.edu (GRUBB) says:\n\n>In PC Magazine April 27, 1993:29 \"Although SCSI is twice as fasst as ESDI,\n>20% faster than IDE, and support up to 7 devices its acceptance ...has\n>long been stalled by incompatability problems and installation headaches.\"\n\nI love it when magazine writers make stupid statements like that re:\nperformance. Where do they get those numbers? I'll list the actual\nperformance ranges, which should convince anyone that such a\nstatement is absurd:\n\nSCSI-I ranges from 0-5MB/s.\nSCSI-II ranges from 0-40MB/s.\nIDE ranges from 0-8.3MB/s.\nESDI is always 1.25MB/s (although there are some non-standard versions)\n\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1780, "properties": {"category": "comp.windows.x", "text": "From: mppa3@syma.SUssex.ac.UK (Alan Richardson)\nSubject: Now available: xvertext.4.0\nOrganization: University of Sussex\nLines: 25\nTo: xannounce@expo.lcs.mit.edu\n\nNow available: xvertext 4.0 \n--------------\n\nSummary                                  \n-------\nxvertext provides you with four functions to draw strings at any angle in   \nan X window (previous versions were limited to vertical text). Rotation  \nis still achieved using XImages, but the notion of rotating a whole font\nfirst has been dropped.\n\nWhat's new?\n-----------\nI've added a cache which keeps a copy of previously rotated strings - thus\nspeeding up redraws.\n\nWhere can I get it? \n-------------------\ncomp.sources.x (soon...)\nexport.lcs.mit.edu : contrib/xvertext.4.0.shar.Z  (now)\n\n-- \nAlan Richardson,                             * \"You don't have to be *\nSchool of Maths & Physical Sciences,         *  old to be wise\"      *\nUniv. of Sussex, Brighton BN1 9QH, ENGLAND   * ******Judas Priest*****\nUK: mppa3@uk.ac.sussex.syma         elsewhere: mppa3@syma.sussex.ac.uk\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1781, "properties": {"category": "comp.windows.x", "text": "From: rlm@helen.surfcty.com (Robert L. McMillin)\nSubject: Re: How do I find my AppContext?\nOrganization: Surf City Software/TBFW Project\nIn-Reply-To: masc0442@ucsnews.sdsu.edu's message of 19 Apr 1993 23:00:15 GMT\nLines: 14\n\nOn 19 Apr 1993 23:00:15 GMT, masc0442@ucsnews.sdsu.edu (Todd Greene) said:\n\n> Is there an Xt call to give me my application context?\n> I am fixing up an X/Motif program, and am trying to use XtAppAddTimeOut,\n> whose first argument is the app_context.  What call can I use\n> to give me this value?\n\nI believe it's XtVaAppInitialize or something like that.\n\n--\n\nRobert L. McMillin | Surf City Software | rlm@helen.surfcty.com | Dude!\n#include <std.disclaimer.h>\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1782, "properties": {"category": "comp.graphics", "text": "From: lipman@oasys.dt.navy.mil (Robert Lipman)\nSubject: Call for presentations: Navy SciViz/VR seminar\nReply-To: lipman@oasys.dt.navy.mil (Robert Lipman)\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 74\n\n**********************************************************************\n\n\t\t      2ND CALL FOR PRESENTATIONS\n\t\n      NAVY SCIENTIFIC VISUALIZATION AND VIRTUAL REALITY SEMINAR\n\n\t\t\tTuesday, June 22, 1993\n\n\t    Carderock Division, Naval Surface Warfare Center\n\t      (formerly the David Taylor Research Center)\n\n\t\t\t  Bethesda, Maryland\n\n**********************************************************************\n\nSPONSOR: NESS (Navy Engineering Software System) is sponsoring a \none-day Navy Scientific Visualization and Virtual Reality Seminar.  \nThe purpose of the seminar is to present and exchange information for\nNavy-related scientific visualization and virtual reality programs, \nresearch, developments, and applications.\n\nPRESENTATIONS: Presentations are solicited on all aspects of \nNavy-related scientific visualization and virtual reality.  All \ncurrent work, works-in-progress, and proposed work by Navy \norganizations will be considered.  Four types of presentations are \navailable.\n\n     1. Regular presentation: 20-30 minutes in length\n     2. Short presentation: 10 minutes in length\n     3. Video presentation: a stand-alone videotape (author need not \n\tattend the seminar)\n     4. Scientific visualization or virtual reality demonstration (BYOH)\n\nAccepted presentations will not be published in any proceedings, \nhowever, viewgraphs and other materials will be reproduced for \nseminar attendees.\n\nABSTRACTS: Authors should submit a one page abstract and/or videotape to:\n\n     Robert Lipman\n     Naval Surface Warfare Center, Carderock Division\n     Code 2042\n     Bethesda, Maryland  20084-5000\n\n     VOICE (301) 227-3618;  FAX (301) 227-5753  \n     E-MAIL  lipman@oasys.dt.navy.mil\n\nAuthors should include the type of presentation, their affiliations, \naddresses, telephone and FAX numbers, and addresses.  Multi-author \npapers should designate one point of contact.\n\n**********************************************************************\nDEADLINES: The abstact submission deadline is April 30, 1993.  \nNotification of acceptance will be sent by May 14, 1993.  \nMaterials for reproduction must be received by June 1, 1993.\n**********************************************************************\n\nFor further information, contact Robert Lipman at the above address.\n\n**********************************************************************\n\n\t  PLEASE DISTRIBUTE AS WIDELY AS POSSIBLE, THANKS.\n\n**********************************************************************\n\n\nRobert Lipman                     | Internet: lipman@oasys.dt.navy.mil\nDavid Taylor Model Basin - CDNSWC |       or: lip@ocean.dt.navy.mil\nComputational Signatures and      | Voicenet: (301) 227-3618\n   Structures Group, Code 2042    | Factsnet: (301) 227-5753\nBethesda, Maryland  20084-5000    | Phishnet: stockings@long.legs\n\t\t\t\t   \nThe sixth sick shiek's sixth sheep's sick.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.083+0000", "event": "documents", "entityId": 1783, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: who are we to judge, Bobby?\nLines: 38\nOrganization: Walla Walla College\nLines: 38\n\nIn article <1993Apr14.213356.22176@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n>From: snm6394@ultb.isc.rit.edu (S.N. Mozumder )\n>Subject: Re: who are we to judge, Bobby?\n>Date: Wed, 14 Apr 1993 21:33:56 GMT\n>In article <healta.56.734556346@saturn.wwc.edu> healta@saturn.wwc.edu (TAMMY R HEALY) writes:\n>>Bobby,\n>>\n>>I would like to take the liberty to quote from a Christian writer named \n>>Ellen G. White.  I hope that what she said will help you to edit your \n>>remarks in this group in the future.\n>>\n>>\"Do not set yourself as a standard.  Do not make your opinions, your views \n>>of duty, your interpretations of scripture, a criterion for others and in \n>>your heart condemn them if they do not come up to your ideal.\"\n>>                         Thoughts Fromthe Mount of Blessing p. 124\n>>\n>>I hope quoting this doesn't make the atheists gag, but I think Ellen White \n>>put it better than I could.\n>> \n>>Tammy\n>\n>Point?\n>\n>Peace,\n>\n>Bobby Mozumder\n>\nMy point is that you set up your views as the only way to believe.  Saying \nthat all eveil in this world is caused by atheism is ridiculous and \ncounterproductive to dialogue in this newsgroups.  I see in your posts a \nspirit of condemnation of the atheists in this newsgroup bacause they don'\nt believe exactly as you do.  If you're here to try to convert the atheists \nhere, you're failing miserably.  Who wants to be in position of constantly \ndefending themselves agaist insulting attacks, like you seem to like to do?!\nI'm sorry you're so blind that you didn't get the messgae in the quote, \neveryone else has seemed to.\n\nTammy\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1784, "properties": {"category": "sci.electronics", "text": "From: dale@access.digex.com (Dale Farmer)\nSubject: Re: Building a UV flashlight\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 31\nNNTP-Posting-Host: access.digex.net\nX-Newsreader: TIN [version 1.1 PL8]\n\nJohn Hawkinson (jhawk@panix.com) wrote:\n: Yes, I know it sounds crazy. Call it an urge. Call it what you want.\n: Just don't ask why :-)\n\n: Anyway, I'd like to build a UV flashlight, cheaply. \"flashlight\" means\n: it should be reasonably portable, but could have a power pack if\n: necessary.\n\n: My main question is the bulb: where can I get UV bulbs? Do they\n: need a lot of power? etc., etc.\n\n: I'm not too concerned with whether it's long-wave or short-wave\n: (but hey, if anyone has a cheap source of bulbs, I'll take both).\n\n\tCheck out a medical supply catalog, the thing you are looking for\nis called a woods lamp (so you can check for woods sign, certain skin\nconditions flourecse (sp) under UV light)  They come in disposable\npenlight like types and larger ac powered types.  It is also used in eye\nexaminations, a flourescent dye is introduced to the surface of the eye,\nthen UV is shined on it, shows up scratches and abrasions very clearly\nthat would otherwise be very difficult to detect.  (for the completest the\ndye is called flouescien, and in normal light appears orangish, and leaves\na mild burning sensation to the eye for 10-15 minutes, until the tears\nflush it all out.  \n\nHave fun.\n\n--Dale Farmer\n\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1785, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: michael@jester.GUN.de (Michael Gerhards)\nDistribution: world\nSubject: Re: com ports /modem/ mouse conflict -REALLY?\nX-Newsreader: TIN [version 1.1 PL8]\nOrganization: private COHERENT system\nLines: 20\n\nPhil Hunt (phil@howtek.MV.COM) wrote:\n> I'm kind of new at the pc stuff.  My machine has 4 serial ports.  Com 1 and3\n> and 2 &4 share same IRQs.  You mean I can't plug a mouse into Com1 and a modem\n> into com3 and expect both to work?\n\nNo, but some OS's ( COHERENT , etc ) are able to drive one of the ports in\npolled mode without using the IRQ. In your example, after accessing the\nmodem, the mouse won't work until you reboot, because the IRQ is used by\nthe modem.\n\n> If Answer is NO, should I change IRQ's for com ports to be different?  And,\n> does it really matter which IRQ I set the ports too?\n\nYes, you can change the IRQ's for com3/4, but it depends on your other\nhardware. com1 uses IRQ4, com2 IRQ3.  If you have only one printerport \n( IRQ7 ), you can change com3 to IRQ5 ( normally 2nd printer ). For com4,\nyou can assign IRQ2, if its free. As far as I know, no other IRQ can be\nused until your I/O-card is 16bit and caould access IRQ's > 8.\n\nMichael\n--\n*  michael@jester.gun.de  *   Michael Gerhards   *   Preussenstrasse 59  *\n                          *  Germany 4040 Neuss  *  Voice: 49 2131 82238 *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1786, "properties": {"category": "sci.electronics", "text": "From: johnh@macadam.mpce.mq.edu.au (John Haddy)\nSubject: Re: what to do with old 256k SIMMs?\nOrganization: Macquarie University\nLines: 14\nDistribution: world\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\n\nIn article <120466@netnews.upenn.edu>, jhaines@eniac.seas.upenn.edu (Jason Haines) writes:\n|> \n|> \tI was wondering if people had any good uses for old\n|> 256k SIMMs.  I have a bunch of them for the Apple Mac\n|> and I know lots of other people do to.  I have tried to\n|> sell them but have gotten NO interest.\n|> \n|> \tSo, if you have an inovative use (or want to buy\n|> some SIMMs  8-) ), I would be very interested in hearing\n|> about it.\n\nThe most practical use I've seen for them is as key ring ornaments :-)\n\nJohnH\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1787, "properties": {"category": "soc.religion.christian", "text": "From: brownli@ohsu.edu@ohsu.edu (Liane Brown)\nSubject: DOCTRINE OF GOD\nOrganization: Oregon Health Sciences University\nLines: 111\n\nThis is being posted as a general outline for your personal study of this \ndoctrine:\n\n\n                        THE DOCTRINE OF GOD\n\n\nI.   THE PERSONS OF THE GODHEAD\n     Of all of the doctrines of Scripture, this is the most\n     important.  The Bible is pre-eminently a revelation of God. \n     Therefore, our first objective in studying the Bible should\n     be to know God.\n     I believe that the Bible teaches that there are Three\n     Persons in the Godhead (Trinity):  God, the Father; God the\n     Son--the Lord Jesus Christ; and God, the Holy Spirit.  I\n     believe that they are individual Persons who are one in\n     nature, meaning that They are identical in nature, each\n     possessing the same divine attributes.  They are also\n     equally worthy of our worship, our trust, and our obedience.\n     Cf. Matt.28:19, 2 Cor.13:14; John 14:8,9,16,17.\n\nII.  THE ATTRIBUTES, or CHARACTERISTICS, OF THE GODHEAD.\n     A.  God's nature is revealed in the Name He has taken for\n         Himself: Jehovah.  He is the living God, eternal, and\n         unchanging.  He is without beginning, and without\n         ending.  Cf. Isa.42:8.\n     B.  God is a spirit.  Cf. John 4:24.\n     C.  God is love.  Cf. 1 John 4:8,16.\n         As such, He is gracious, merciful, good, faithful,\n         patient, and full of lovingkindness.  Cf. Psa 89:1,2;\n         Psa 103:8; Nahum 1:7.\n     D.  But God is also holy and righteous.  He is absolutely\n         without sin in His nature, and so is incapable of\n         sinning in though, word, or action.  Cf. Ex. 15:11; Isa.\n         6:3.\n     E.  God is omnipresent (everywhere present at the same time\n         in the completeness of His Person), omniscient (all\n         knowing, knowing all things--the end from the beginning,\n         infinitely wise), omnipotent (almighty, sovereign, with\n         unlimited power over all creation).\n         God is infinite in His presence, wisdom, and power.  It\n         is my conviction that the work of the Lord in our day\n         has become very man-centered, and that the people in our\n         churches know very little about God.  I believe that the\n         Lord's work needs to be God-centered, and that the\n         people of God need to understand that God is sovereign\n         in all things:  in the affairs of nations, in the lives\n         of all people, and in the carrying out of His purposes\n         regarding salvation.\n\nIII.     THE WORKS OF THE GODHEAD.\n     A.  In creation\n          All Three Persons of the Godhead were active in\n          creating, and all Three are active in sustaining\n          creation, and in ordering the course of human affairs\n          (for nations as well as individual people) to the end\n          of time.  Cf. Gen. 1:1,2; John 1:1-3; Col. 1:16-17;\n          Heb. 1:3.\n     B.  In salvation\n         In order to understand salvation I believe that it is\n         absolutely necessary to begin with God, not with man. \n         All three Persons of the Godhead have been, and are,\n         active in salvation.\n         1.  God, the Father\n             Salvation originated with God.  The Members of the\n             Godhead determined in eternity past that there would\n             be salvation, the conditions under which people\n             could and would be saved, and even who would be\n             saved.  Election to salvation is recognized in\n             Scripture as the work of  God, the Father.  Cf. Eph\n             1:3-4; 2 Thess 2:13-14.\n         2.  Christ, the Son of God\n             The Lord Jesus Christ, through His birth by the\n             virgin Mary, came to the earth to accomplish two\n             important works:\n             a.   He came as the final and complete revelation of\n                  God, the Father.  Cf. Col 1:15; heb 1:1-3.\n             b.   He came to provide salvation for all whom the\n                  Father had chosen.  He did this by His death on\n                  the Cross, by His bodily resurrection, and by\n                  His present intercessory work in heaven.  The\n                  work of salvation will be completed for us when\n                  the Lord returns.  Cf. Rom 5:8-10; 1 Cor 15:3-\n                  4; Heb 7:25, 1 John 3:2.\n         3.  The Holy Spirit\n             As the Author of Scripture, the theme of which is\n             Christ and His redemptive work, the Holy Spirit is\n             carrying out the redemptive plan of God in the\n             following ways:\n             a.   He convicts of sin. Cf. John 16:7-11\n             b.   He regenerates (known in the Bible as the new\n                  birth).  Cf. John 3:5-8.\n             c.   He indwells each believer to fulfill the work\n                  of sanctification.  Cf. John 14-16-17.\n             d.   He seals every believer in Christ, thus making \n                  salvation secure.  Cf. Eph 1:13-14.\n             e.   He baptizes every believer into the body of\n                  Christ.  Cf. Cor. 12:13\n             f.   He teaches every believer the truth of\n                  Scripture. Cf. John 14:26.\n             g.   He bestows spiritual gifts on the people of \n                  God for ministry.  (Cf. 1 Cor 12\n             h.   He restrains sin.  Cf Gal 5:16-26.\n             i.   He empowers for living and for service.  \n                  Cf. Acts 1:8\n\n\n----------------------------------\nLiane Brown\n(Internet) brownli@ohsu.edu\nPortland Oregon\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1788, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: junaid@monu6.cc.monash.edu.au (Mr A. Walker)\nSubject: 2 Sound Blasters in 1 machine\nOrganization: Monash University, Melb., Australia.\nLines: 10\n\n\tIs it possible to have 2 Sound Blasters in 1 machine?\nWould give your the equivalent of a SB Pro but with stereo Digitized sound.\nThe way Creative Labs price Pro's in Oz, the price is equal.\n\n\tI suppose you could set the I/O addresses to 220 and 240H\nbut what about the DMA channels?\n\tAny way what is this DMA channel sharing hype?  Does it share the\nSB and hardisk DMA channels or something more esoteric?\n \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1789, "properties": {"category": "talk.religion.misc", "text": "From: dsoconne@quads.uchicago.edu (Daniel S OConnell)\nSubject: Re: Religion and homosexuality\nKeywords: being liberal\nReply-To: dsoconne@midway.uchicago.edu\nOrganization: University of Chicago\nDistribution: usa\nLines: 32\n\n> magarret@magnus.acs.ohio-state.edu (COMPUTER DUDETTE) writes:\n\n>I just recently realized that I am bisexual, and also just recently returned to\n>religion, and have a good friend who has pointed out to me that homosexuality\n>is a sin in the bible.  Well, I don't see how it could be considered a sin,\n\nFirst of all as far as I know, only male homosexuality is explicitly\nmentioned in the bibles, so you're off the hook there, I think. In\nany event, there are *plenty* of people in many denominations who\ndo not consider a person's sexual identification of gay/lesbian/bisexual\nas an \"immoral lifestyle choice\"\n\n>Also, I have always been a somewhat liberal feminist, and am pro-choice, and it\n>seems that being pro-choice and being religious don't mix either.  I am told\n\nThis is another misconception. You are not being told the whole story.\n\nMy former minister is a lesbian, and I know personally and\nprofessionally several openly gay and lesbian ministers. I am\na Unitarian-Universalist and like most others in my denomination,\nam pro-choice. You needn't go looking to the Unitarian Universalists\n(which is a liberal religion) for acceptance of your sexual\nidentification and pro-choice views, however; there are many of us\nwho believe in spirituality AND freedom of conscience.\n\nGood Luck on your journey!\n\n-- \nDaniel O'Connell\nMeadville/Lombard Theological School\nUniversity of Chicago Divinity School\n<dsoconne@uchicago.edu>\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1790, "properties": {"category": "sci.crypt", "text": "From: rboudrie@chpc.org (Rob Boudrie)\nSubject: Why the algorithm is secret\nDistribution: na\nOrganization: Center For High Perf. Computing of WPI; Marlboro Ma\nLines: 15\n\n\nMy thoughts on why the algorithm is secret :\n\n   The chip is (regretably) likely to become a standard.   There will\n   be many applications where economic factors dictate use of this\n   chip, like it or not.\n\n   If the alrogithm is public, and the code is as secure (absent the \n   access to escrowed keys) as represented, an enterprising sort \n   would make \"compatible crypto chips for which no key had been\n   escrowed\".  This is likely what the release was refering to when \n   they refered to the secrecy of the algorithm protecting the\n   security of the escrow system.\n\n                                        rob boudrie\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1791, "properties": {"category": "talk.religion.misc", "text": "From: dan@Ingres.COM (a Rose arose)\nSubject: Re: Christian Extremist Kills Doctor\nOrganization: Representing my own views here only.\nX-Newsreader: Tin 1.1 PL3\nDistribution: usa\nLines: 97\n\nregard@hpsdde.sdd.hp.com (Adrienne Regard) writes:\n: In article <1993Mar30.001428.7648@pony.Ingres.COM> dan@Ingres.COM (a Rose arose) writes:\n: \n: Seriously, though, Griffen didn't save the lives of children, and he did\n: destroy the life of a man, so on the most superficial of levels, he's scum.\n: \n\nI almost agree, but Griffen is not scum.  Scum has no guilt or freedom to\nchoose anything.  Griffen does.  God did not make scum when he made Griffen.\nHe made a precious person and this person chose to do wrong.  The same goes\nfor Dr. Gunn.\n\n: But if you are to examine it more closely, Griffen would have preferred that\n: these children were born -- yet AFTER their birth, did Griffen have any \n: assistance to offer them?  Did Griffen intend to support them, educate them,\n: raise them up to be useful citizens?  Did he have any intent whatsoever\n: to help these children after birth?\n: \n\nHere's the real problem.  Americans have become so insensitive to the needs\nof others and so completely wrapped up in themselves that they cannot see\nstraight or think clearly enough to make even the slightest and most obvious\nmoral decisions based on reality.\n\nIf a man abandons a woman to care for their child on her own, he is not\nconsidered to be a very respectable or decent man by anyone.  This man has\nfled his responsibility, has behaved like a lazy coward, and has turned\naway from his responsibility to his wife and child.\n\nHowever, if a woman decides to kill her unborn child to release her burden,\nshe is not thought of in the same way.  When the man abandons, the woman\nsuffers but the child is free to grow up and live a happy and normal life.\nWhen the woman abandons, the child is diced or killed with saline or vacuumed\nout, and the man has no choice, and the man sometimes suffers so badly that\nhe wishes he could trade places with his child.\n\nThs root of this whole problem is selfishness--the arrogance that says, \"My\nfeelings and desires are supreme and your well being is not worth dung.\"\nAnd when you come down to it, this is the substance of what hell is made of.\nIt's the reason a loving God can throw selfish people to the devil and his\ndemons for all of eternity.  Let any one of us unrepentant into heaven, and\nwe'll ruin it the first chance we get.\n\n: Now, I don't really know the answer to these questions, but I've got a real\n: good guess.\n: \n\nAnd, it's probably right.\n\n: And I wouldn't call *that* 'benevolent', either.\n: \n\nIt is a move in the right direction.  As it is now, we don't see our\nresponsibility because we kill it and get it out of sight.  The media\nbacks us completely.  Real responsibility does not sell.  The only\n\"responsibility\" that sells in the marketplace is that which is just\nenough to make us \"feel responsible\" without showing anything that\nmight show us our own true irresponsibility.  We want to \"feel\" like\ngood people, but we want nothing with *being* good people.  Just give\nme the freedom to say \"I'm good\", and the rest of the world can burn.\nRape and kill my children and throw my parents to the places where\npoor old folks rot until they're dead.  I'll hate my brother and sister\nif I wish and I'll cheat on my wife or husband.  Screw the government,\nbecause it screws me, and don't talk to me about giving to the church\nbecause church people are all a bunch of money grubbing hypocrites.\nBut, I'm a good person.  At least I admit what I do.  At least I love\nmyself and we all know that is the greatest love in the world--not that\na man lay down his life for his brother...That sounds too \"christian\".\n\nAt the root, this is the substance of what hell is made of.\n\nWe've become a self indulgant, backslidden society no longer responsible\nto our children, to our parents, to our families, to our government, or\nto our God.  This is the root behind justification of every evil, of every\ncorruption in government, of every slanderous remark, of every lie, and\nof every murder.  Society cannot continue to live like this long.  it will\nhave to destroy itsself soon, and perhaps in the end, that will be the\nbiggest blessing this world can hope to see.\n\nWhy do people see so much evil in trying to turn this situation around?\n\n--\n-----------------------------------------------------------------------\n\t\"I deplore the horrible crime of child murder...\n\t We want prevention, not merely punishment.\n\t We must reach the root of the evil...\n\t It is practiced by those whose inmost souls revolt\n\t from the dreadful deed...\n\t No mater what the motive, love of ease,\n\t\tor a desire to save from suffering the unborn innocent,\n\t\tthe woman is awfully guilty who commits the deed...\n\t but oh! thrice guilty is he who drove her\n\t\tto the desperation which impelled her to the crime.\"\n\n\t\t- Susan B. Anthony,\n\t\t  The Revolution July 8, 1869\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1792, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ewl@world.std.com (Erich W Lantz)\nSubject: >80 col. mail messages in MS Windows editors\nKeywords: windows editor norton desktop mail\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 31\n\nI have a modest system of aliases/macros that enables me to download\nmail from a public access UNIX system to my MS-DOS box. I read and reply\nto the mail with a MS Windows 3.1 based editor.\n\nEverything works peachey keen as long as the author of the message has\nmaintained his text at 80 col. max. width. Sometimes I get slightly wider\nmessages that run off-screen, so I have to use the cursor/slider to read\nthe whole thing.\n\nI'm using NDW Deskedit mainly, but I've experienced the same prob with\nall other MS WIndows editors. I've fiddled with word wrap settings in\nthe various editors, but to no avail. I know I'm missing something very\nbasic in editor setup, but what is it?\n\nOh yeah, MS Word for Windows converts everything flawlessly but for what\nI'm looking for that's like using a tank to crack walnuts.\n\nI'd really like to have an editor setup that would display all incoming\nASCII files in a readable format to my screen.\n\nThanks in advance,\n\n============================================================\nErich W. Lantz            AMA #601821\newl@world.std.com         Distributor of Deflagration #0815\n                          '85 Virago\n     \" Well yer dead now, so shut up! \" - M.P.\n============================================================\n \n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1793, "properties": {"category": "sci.med", "text": "From: jmilhoan@magnus.acs.ohio-state.edu (JT)\nSubject: Re: ringing ears\nKeywords: ringing ears, sleep, depression\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 50\n\nIn article <10893@ncrwat.Waterloo.NCR.COM> jfare@53iss6.Waterloo.NCR.COM (Jim Fare) writes:\n>\n>\n>A friend of mine has a trouble with her ears ringing.  The ringing is so loud\n>that she has great difficulty sleeping at night.  She says that she hasn't \n>had a normal night's sleep in about 6 months (she looks like it too :-().\n>This is making her depressed so her doctor has put her on anti-depressants.\n\nSometimes I have a problem with doctor's prescribing medicine like\nthis.  I of course don't know the exact situation, and\nanti-depressants may work, but it isn't helping the ringing at all, is it?\n\n\n>The ringing started rather suddenly about 6 months ago.  She is quickly losing\n>sleep, social life and sanity over this.\n\nMine started about three years back.  Turns out I have tinnitus\nbilateral (translation: ringing in both ears, basically ;).  If this\nis what it is, she'll probably get used to it.  It would keep me up\nand drive me nuts too, but nowadays, I have to plug both my ears with\nmy fingers to check to see if they are ringing.  Usually they are, but\nyou get so used to it, it just gets tuned out.  Yes, this is what I've\nread about it... not just from my own personal experience.\n\n\n>Does anyone know of any treatments for this?  Any experience?  Coping\n>mechanisms?  Any opinions on the anti-depressant drugs?\n\nMillions have it, according to my physician.  You just learn to cope\nwith it (like I mentioned earlier) by ignoring it.  It eventually\nbecomes unconscious.\n\nThe doc also said it could be caused by diet (ie: too much caffeine)\nand stress, but I haven't changed my lifestyle much, and it just comes\nand goes (it is always there somewhat, but now I rarely notice it when\nit really \"kicks in\").\n\nAlso, it doesn't necessarily mean there is any hearing loss, either\ncaused by it or causing it.  I had an ENT (ear/nose/throat) exam, and\npassed.  In fact, my hearing is quite good considering I don't take as\ngood of care of my hearing as I should.\n\nHer reaction is normal.  If it is tinnitus, chances are good she'll\nbegin to not even notice it.  \n\nThis info is taken mostly from a few \"experts\", my own experience, and\nsome readings (sorry, it was a few years back and don't have any\nspecifics handy).\n\nJT\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1794, "properties": {"category": "misc.forsale", "text": "Subject: 20\" Color TV San Diego\nFrom: louis@netlink.cts.com (Louis Cornelio)\nOrganization: NetLink Online Communications, San Diego CA\nLines: 23\n\n \n========== 20\" COLOR TV ============= San Diego Mesa College Area\n \nEmerson M20R w/ \"high-tech\" square screen\n                                                        BEST PRICE YOU\nfeatures: timer/sleep feature for auto- shut on/off\n                                                        CAN FIND FOR A\nfully cable ready w/ all coaxial video audio jacks\n                                                        20-INCH COLOR TV\nMTS (multichannel sound jack) for processing stereo\n                or bilingual channels\n                                                        $ 170.00 FIRM\n19 key remote includes review, recall, sleep features\n \n============================================== tel 619-278-8779\n \n please reply to lcornel@eis.calstate.edu for fastest response! -Louis\n\n--\n //////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n| Louis Cornelio  GEnie:L.Cornelio       \"The better the technology,         |\n| louis@netlink.cts.com             the less efficient the human use of it.\" |\n \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\//////////////////////////////////////\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1795, "properties": {"category": "sci.electronics", "text": "From: adler@netcom.com (Bruce Adler)\nSubject: Re: IBM-PC XT switch settings\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 26\n\nIn article <1qk158$kcp@bigbird.hri.com> obrien@bigbird.hri.com writes:\n>I just got an IBM-PC XT with no documents. Its a true\n>IBM, and I was wondering if anyone had the definitions\n>of the 2 8 position dip switches? \n\nSW8,SW7\tnumber of 5.25\" drives\n0,0\t1 drive\n0,1\t2 drives\n1,0\t3 drives\n1,1\t4 drives\n\nSW6,SW5\ttype of display\n0,0\treserved\n0,1\t40x25 color (mono mode)\n1,0\t80x25 color (mono mode)\n1,1\tmono 80x25\n\nSW4,SW3\tamount of memory on system board\n\t64k chips\t256k chips\n0,0\t64k\t\t256k\n0,1\t128k\t\t512k\n1,0\t192k\t\t576k\n1,1\t256k\t\t640k\n\nSW2\tco-processor installed\nSW1\tloop on POST\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1796, "properties": {"category": "sci.electronics", "text": "From: kolstad@cae.wisc.edu (Joel Kolstad)\nSubject: Re: How to the disks copy protected.\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 38\n\nIn article <sehari.735357542@du139-213.cc.iastate.edu> sehari@iastate.edu (Babak Sehari) writes:\n>\n>I have written a program and I want to market it.  I would like certain degree\n>of protection, since my main custmers are individuals and not the \n>cooperations.   I know laser hole burning method, and hardware key method,\n>however, my  software is going to cost only $15.00, so I can not afford that.\n>Also, at this low price I can not afford people make too many copy of my\n>software. Well, I guess say upto %20 illigal copying is ok by me.\n>\n>However, I do not want someone to get a copy of PCTools and copy my software.  \n>Off course, I never meant to forbid the true hackers from copying, since they\n>can develope a better program anyway.\n\nI wouldn't bother with the copy protection, if I were you.  If you program\nis any good, the pirates will have stripped the protection and will be\ndistributing the stripped version is well under a week.\n\nHardware methods prevent J. Random Loser from using his Copy II PC to pirate \nyour software, but doesn't stop anyone who knows a few people with enough \nconnections to \"real\" pirates who _will_ be able to defeat your \"check for the \nhole\" code.\n\nYou may want to price your software (depending on what it is) a tad\nhigher... a price change from $15 to $25 probably would turn off very few\npotentials buyers, and that way you could tolerate more pirates (whose\nnumbers don't change with the price).\n\nAs for the 20% pirating figure... ha, ha.  Of course, a lot of pirates just\nhave this \"thing\" about having pirated software, even if they never use it,\nso perhaps that really wouldn't count towards 20%.  Even so, 20% is awfully\nlow.\n\n\n\t\t\t\t\t---Joel Kolstad\n\nP.S. -- I assume you're talking PC software.  If you're talking UNIX,\nHP-48, or something else somewhat obscure, copy protection might be a\nslightly more viable alternative.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1797, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: maley@micro.cs.umn.edu (Michael P Maley)\nSubject: Re: GUI Application Frameworks for Windows ??\nNntp-Posting-Host: micro.cs.umn.edu\nOrganization: University of Minnesota\nLines: 6\n\nI look at zApp and really liked it. However, I think you should\nwait for version 2.0 (I think it will be out soon).\n\nMike Maley\nmaley@cs.umn.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1798, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: David_A._Schnider@bmug.org\nOrganization: BMUG, Inc.\nSubject: DESI PB upgrade\nLines: 9\n\nDoes anyone know exactly how Digital Eclipse does their upgrades?  Someone was\nsuggesting to me that some chips may not be able to perform at 33MHz.  Is this\ntrue, and if so, how does DESI deal with that?\n\n-David\n\n**** From Planet BMUG, the FirstClass BBS of BMUG.  The message contained in\n**** this posting does not in any way reflect BMUG's official views.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1799, "properties": {"category": "comp.windows.x", "text": "From: ramakris@csgrad.cs.vt.edu (S.Ramakrishnan)\nSubject: Re: Mwm title-drag crashes X server (SIGPIPE)\nOrganization: VPI&SU Computer Science Department, Blacksburg, VA\nLines: 33\n\nIn article <1993Apr20.144415.2153@ncar.ucar.edu> boote@eureka.scd.ucar.edu (Jeff W. Boote) writes:\n  >In article <4378@creatures.cs.vt.edu>, ramakris@csgrad.cs.vt.edu (S.Ramakrishnan) writes:\n  >> \n  >>    Environment:\n  >>       mach/arch : sparc/sun4  (IPX)\n  >>       OS\t: SunOS 4.1.3\n  >>       X11\t: X11R5 (patchlevel 22)\n  >>       Motif\t: 1.2.2\n  >> \n  >> I bring up X server using 'startx' and /usr/bin/X11/Xsun. The following sequence\n  >> of actions crashes the X server (SIGPIPE, errno=32, 'xinit' reports that connexion \n  >> to X server lost):\n  >\n  >I had this problem as well - It had to do with the CG6 graphics card that\n  >comes with the IPX.  What fixed the problem for me was to apply the \"sunGX.uu\"\n  >that was part of Patch #7.  Patch #1 also used this file so perhaps you\n  >didn't apply the one that came with Patch #7.\n  >\n  >jeff\n  >-\n  >Jeff W. Boote  <boote@ncar.ucar.edu>      *********************************\n  >Scientific Computing Division             * There is nothing good or bad  *\n  >National Center for Atmospheric Research  * but thinking makes it so.     *\n  >Boulder                                   *                   Hamlet      *\n  >                                          *********************************\n\nThanx, Jeff. You're a lifesaver. I imported the new sun GX emulator that came in\nwith patch #7. The problem has since disappeared.\n\nThanx to der (schoene) Mouse for his help too.\n\n---\nS Ramakrishnan, CS Dept, McBryde Hall, VaTech\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1800, "properties": {"category": "rec.sport.baseball", "text": "From: dswartz@osf.org (Dan Swartzendruber)\nSubject: Re: Best Homeruns\nOrganization: Open Software Foundation - Research Institute\nLines: 16\n\nIn article <4200419@hpcc01.corp.hp.com> boell@hpcc01.corp.hp.com (Donald P Boell) writes:\n>I'd have to say the most impressive HRs I've ever see came from Dave Kingman\n>and his infamous moon-raker drives...\n\nI remember one he hit circa 1976 at Wrigley Field that went across\nthe street (in dead center field) and hit a house on the roof.  He\nwhiffed a lot, but when he *did* connect, watch out!\n\n\n\n\n-- \n\n#include <std_disclaimer.h>\n\nDan S.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1801, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Keith IS a relativist!\nOrganization: California Institute of Technology, Pasadena\nLines: 10\nNNTP-Posting-Host: punisher.caltech.edu\n\n9051467f@levels.unisa.edu.au (The Desert Brat) writes:\n\n>Keith, if you start wafffling on about how it is different for a human\n>to maul someone thrown into it's cage (so to speak), you'd better start\n>posting tome decent evidence or retract your 'I think there is an absolute\n>morality' blurb a few weeks ago.\n\nDid I claim that there was an absolute morality, or just an objective one?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1802, "properties": {"category": "alt.atheism", "text": "From: qpliu@ernie.Princeton.EDU (q.p.liu)\nSubject: Re: A visit from the Jehovah's Witnesses\nOriginator: news@nimaster\nNntp-Posting-Host: ernie.princeton.edu\nReply-To: qpliu@princeton.edu\nOrganization: Princeton University\nLines: 34\n\nIn article <1993Apr5.091139.823@batman.bmd.trw.com> jbrown@batman.bmd.trw.com writes:\n>In article <16BA5DA01.I3150101@dbstu1.rz.tu-bs.de>, I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n>> But could you give a definition of free will? Especially in the\n>> presence of an omniscient being?\n\n>\"Will\" is \"self-determination\".  In other words, God created conscious\n>beings who have the ability to choose between moral choices independently\n>of God.  All \"will\", therefore, is \"free will\".\n\nSo these hypothetical conscious beings can ignore any influences of\ntheir circumstances (their genetics, their environment, their experiences)\nwhich are not all self-determined?\n\n(Of course, the idea of Hell makes the idea of \"free will\" dubious.\nOn the other hand, the idea of Hell is not a very powerful idea.\n\n\t\"A Parable for You\n\n\t\"There was once our main character who blah blah blah.\n\t\"One day, a thug pointed a mean looking gun at OMC, and\nsaid, 'Do what I say, or I'm blasting you to hell.'\n\t\"OMC thought, 'If I believe this thug, and follow the\ninstructions that will be given, I'll avoid getting blasted to\nhell.  On the other hand, if I believe this thug, and do not\nfollow the instructions that will be given, I'll get blasted to\nhell.  Hmm... the more attractive choice is obvious, I'll\nfollow the instructions.'  Now, OMC found the choice obvious\nbecause everything OMC had learned about getting blasted to\nhell made it appear very undesirable.\n\t\"But then OMC noticed that the thug's gun wasn't a real\ngun.  The thug's threats were make believe.\n\t\"So OMC ignored the thug and resumed blah blah blah.\")\n-- \nqpliu@princeton.edu           Standard opinion: Opinions are delta-correlated.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1803, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: na\nLines: 59\n\nIn article <C4u3x5.Fw7@magpie.linknet.com> manes@magpie.linknet.com (Steve Manes) writes:\n>I don't know how anyone can state that gun control could have NO\n>effect on homicide rates.\n\nI don't think anyone is arguing that there would be no effect. But\nthere would be no _net_ _positive_ effect. You also have to \nconsider the negative side: Law abiding citizens, armed with \nfireamrs (pistols for the most part), prevent between 80,000\n(National Crime Survey) and 1,000,000 (Dr. Kleck) crimes\neach year. (Those are the extremes. Most studies find\nthe number to be 500,000 to 600,000.) About 1% of those crimes are\nhomicides, so private ownership of firearms _saves_ approximately\n5,000 lives each year. There are roughly 12,000 criminal homicides\nand fatal accidents involving guns each year. For there to \nbe any net benefit, you would have to show that gun control measures\nwould disarm over 40% of the criminals currently using guns.\nThat would be very hard to do: According the the federal BATF,\nonly 8% of criminals buy their guns over the counter. Since\ngun control laws, by their very nature, only effect legal\nsales, such a law would remove all the benefits of armed,\nlaw-abiding citizens while having only a minimal effect on\narmed criminals (who, by and large, get their guns illegally.) \nThat doesn't sound like a net benefit to me.\n  \n>...There were over 250 >accidental< handgun\n>homicides in America in 1990, most with licensed weapons.\n\nSince most were with licensed weapons, I assume you are not\nsupporting \"reasonable\" laws (i.e. waiting periods, background\nchecks, licenses, etc...). Since only a complete ban would \nalter the statistic you refer to, I assume that's what you\nare supporting.\n\nBy the way, 1135 people dies in 1986 from falling down stairs.\n250 accidental handgun deaths isn't significant next to \nother household accidents.\n\n>...More\n>American children accidentally shot other children last year (15)\n>than all the handgun homicides in Great Britain.\n\n1080 children under the age of 10 died by drowning, 69 from \ndrinking poisonous household chemicals (like Drano), 139 from\nfalls. If the real goal is to reduce the tragic, accidental\ndeaths of children, wouldn't a ban on drain cleaners be a \nbetter palce to start? (Or, perhaps, restricting ownership to\nprofessionals like plumbers?)\n\n>...Please... no dictionary arguments about RATES vs\n>TOTAL NUMBERS, okay?  They're offered for emphasis, not comparison).\n\nWhile you might call it \"emphasis\", refering to completely two\nstatistics in the same sentence _implies_ a comparison. If it\nisn't valid, and you put the numbers together to convince people\nyou are right, the kindest thing I could call it is propaganda.\n\n                                                      Frank Crary\n                                                      CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1804, "properties": {"category": "comp.windows.x", "text": "From: dla@se05.wg2.waii.com (Doug Acker)\nSubject: Problem with libXmu on SUNOS5.1 and gcc\nReply-To: acker@se01.wg2.waii.com\nOrganization: Western Geophysical Exploration Products\nLines: 52\nNNTP-Posting-Host: se05.wg2.waii.com\n\nI am using X11R5patch23 with the R5-SUNOS5 patch posted on export.\nI did optionally apply the patch.olit.\n\nlibXmu compiles fine .. when I try to use it with clients (i.e. bmtoa and\ntwm), I get errors ... I can not figure out what is wrong:\n\ngcc -fpcc-struct-return -o twm gram.o lex.o deftwmrc.o add_window.o gc.o list.o twm.o  parse.o menus.o events.o resize.o util.o version.o iconmgr.o  cursor.o icons.o -O2   -R/usr/wgep/X11R5.sos5/lib${LD_RUN_PATH+\\:$LD_RUN_PATH} -L../.././lib/Xmu -lXmu -L../.././lib/Xt -L../.././extensions/lib -L../.././lib/X -L../.././extensions/lib -lXext -L../.././extensions/lib -lXext -L../.././lib/X -lX11 -L/usr/wgep/X11R5.sos5/lib  -lsocket -lnsl\nld: warning: file ../.././extensions/lib/libXext.so: attempted multiple inclusion of file libXext.so\nUndefined                       first referenced\n symbol                             in file\nXtAppSetWarningMsgHandler           ../.././lib/Xmu/libXmu.so\nXtScreenDatabase                    ../.././lib/Xmu/libXmu.so\nXtDisplayStringConversionWarning    ../.././lib/Xmu/libXmu.so\nXtErrorMsg                          ../.././lib/Xmu/libXmu.so\nXtRealloc                           ../.././lib/Xmu/libXmu.so\nXtIsManaged                         ../.././lib/Xmu/libXmu.so\nXtMalloc                            ../.././lib/Xmu/libXmu.so\nXtGetApplicationResources           ../.././lib/Xmu/libXmu.so\nXtOwnSelection                      ../.././lib/Xmu/libXmu.so\nXtGetConstraintResourceList         ../.././lib/Xmu/libXmu.so\nXtCalloc                            ../.././lib/Xmu/libXmu.so\nXtName                              ../.././lib/Xmu/libXmu.so\nXtStringConversionWarning           ../.././lib/Xmu/libXmu.so\nXtAppSetTypeConverter               ../.././lib/Xmu/libXmu.so\nXtDisplayToApplicationContext       ../.././lib/Xmu/libXmu.so\nXtGetResourceList                   ../.././lib/Xmu/libXmu.so\nXtFree                              ../.././lib/Xmu/libXmu.so\nXtDestroyWidget                     ../.././lib/Xmu/libXmu.so\nXtGetValues                         ../.././lib/Xmu/libXmu.so\nXtWarningMsg                        ../.././lib/Xmu/libXmu.so\nXtTranslateCoords                   ../.././lib/Xmu/libXmu.so\nXtCvtStringToFont                   ../.././lib/Xmu/libXmu.so\nXtWidgetToApplicationContext        ../.././lib/Xmu/libXmu.so\nXtWarning                           ../.././lib/Xmu/libXmu.so\nXtCreateWidget                      ../.././lib/Xmu/libXmu.so\nXtWindowOfObject                    ../.././lib/Xmu/libXmu.so\nXtVaSetValues                       ../.././lib/Xmu/libXmu.so\nXtAppWarningMsg                     ../.././lib/Xmu/libXmu.so\nXtGetSelectionValue                 ../.././lib/Xmu/libXmu.so\nXtResolvePathname                   ../.././lib/Xmu/libXmu.so\nld: fatal: Symbol referencing errors. No output written to twm\n*** Error code 1\n\n\n\n--\nDouglas L.Acker                Western Geophysical Exploration Products\n____    ____     ____          a division of Western Atlas International Inc.\n\\   \\  /   /\\   /   /\\         A Litton / Dresser Company\n \\   \\/   /  \\ /   /  \\        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n  \\  /   / \\  /   /\\   \\       Internet  :  acker@wg2.waii.com\n   \\/___/   \\/___/  \\___\\      Voice     :  (713) 964-6128\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1805, "properties": {"category": "sci.med", "text": "From: jgd@dixie.com (John De Armond)\nSubject: Re: Do we need a Radiologist to read an Ultrasound?\nOrganization: Dixie Communications Public Access.  The Mouth of the South.\nLines: 28\n\nE.J. Draper <draper@odin.mda.uth.tmc.edu> writes:\n\n>If it were my wife, I would insist that a radiologist be involved in the\n>process.  Radiologist are intensively trained in the process of\n>interpreting diagnostic imaging data and are aware of many things that\n>other physicians aren't aware of.  \n\nMaybe, maybe not.  A new graduate would obviously be well trained (but\nperhaps without sufficient experience). A radiologist trained 10 or\n15 years ago who has not kept his continuing education current is a \nwhole 'nuther matter.  A OB who HAS trained in modern radiology technology\nis certainly more qualified than the latter and at least equal to \nthe former.\n\n>Would you want a radiologist to\n>deliver your baby?  If you wouldn't, then why would you want a OB/GYN to\n>read your ultrasound study?\n\nIf the radiologist is also trained in OB/GYN, why not?\n\nJohn\n\n-- \nJohn De Armond, WD4OQC               |Interested in high performance mobility?  \nPerformance Engineering Magazine(TM) | Interested in high tech and computers? \nMarietta, Ga                         | Send ur snail-mail address to \njgd@dixie.com                        | perform@dixie.com for a free sample mag\nLee Harvey Oswald: Where are ya when we need ya?\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.084+0000", "event": "documents", "entityId": 1806, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Players Rushed to Majors\nFrom: admiral@jhunix.hcf.jhu.edu (Steve C Liu)\nExpires: 5/9/93\nDistribution: usa\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nSummary: Big Ben\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\nLines: 25\n\nI don't know if you could call him rushed, but \"Big\" Ben McDonald didn't\nmuch time at all in the minors. Of course that was because the balls used\nin AAA had seams too large and gave McDonald blisters forcing him to go\non the DL several times. He's done most of his learning here in the majors.\nOf course Gregg \"Wild Thing\" Olson and Mike \"Deserved a Cy Young\" Mussina\ndidn't spend much time in the minors either. I read somewhere that pitchers\nare less likely to need that much time in the minors anyway so maybe that\nhas something to do with it.\nLet's go O's! Why Not?\nAdmiral Steve \"Still reliving Sept. 30, 1989\" Liu\n____________________________________________________________________________\n|Admiral Steve C. Liu          Internet Address: admiral@jhunix.hcf.jhu.edu|\n|Commander-In-Chief of the Security Division of the Pi Club - Earth Chapter|\n|    President of the Earth Chapter of the Pi Club - Founded April 1990    |\n|1993 World Champions  - Baltimore Orioles - Why Not? - Series in the Yards|\n|         1992-1993 Stanley Cup Champions -  Washington Capitals           |\n| \"Committee for the Liberation and Intergration of Terrifying Organisms   |\n|   and their Rehabilitation Into Society, the only problem is that the    |\n|   abbreviation is CLITORIS.\" from the \"Polymorph\" episode of Red Dwarf   |\n|*****The Bangles are the greatest female rock band that ever existed!*****|\n|   This sig has been brought to you by... Frungy! The Sport of Kings!     |\n|\"My God man, drilling holes through his head is not the answer!\" Dr. McCoy|\n|\"You know, Susanna Hoffs has a really nice ass.\" - comment by M. Flanagan |\n|  The Pi Club - Creating the largest .signatures for the past nine months | \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1807, "properties": {"category": "talk.religion.misc", "text": "From: m23364@mwunix.mitre.org (James Meritt)\nSubject: Re: Kind, loving, merciful and forgiving GOD!\nNntp-Posting-Host: mwunix.mitre.org\nOrganization: MITRE Corporation, McLean VA\nLines: 41\n\nIn article <8968@blue.cis.pitt.edu> joslin@pogo.isp.pitt.edu (David Joslin) writes:\n}m23364@mwunix.mitre.org (James Meritt) writes:\n}>joslin@pogo.isp.pitt.edu (David Joslin) writes:\n}>}m23364@mwunix.mitre.org (James Meritt) writes:\n}>}>}(a) out of context;\n}>}>Must have missed when you said this about these other \"promises of god\" that we keep\n}>}>getting subjected to.  Could you please explain why I am wrong and they are OK?\n}>}>Or an acknowledgement of public hypocrisy. Both or neither.\n}>}\n}>}So, according to you, Jim, the only way to criticize one person for\n}>}taking a quote out of context, without being a hypocrite, is to post a\n}>}response to *every* person on t.r.m who takes a quote out of context?\n}>\n}>Did I either ask or assert that?  Or is this your misaimed telepathy at work again?\n}\n}(1)  Stephen said you took a quote out of context\n}(2)  You noted that Stephen had not replied to some other t.r.m article\n}     (call it A) that took a quote out of context\n}(3)  But the lack of evidence for X does not constitute evidence for the\n}     lack of X  (a common creationist error)\n}(4)  So the fact that Stephen did not reply to A does not justify the\n}     conclusion that Stephen condoned taking quotes out of context in A\n\nExcellent.  Now under what conditions could such a conclusion be made, other\nthan a direct assertion by his part.  For instance, am I to assume that\nyou have no position on eating shit merely because you have not said\nyour position, or might a conclusion be made by observing that you do not.\n\n}(7)  I assumed you were being logical, and that the sentence that begins\n}     \"Could you please explain ...\" was not a nonsequitur, but was intended\n}     to follow from the sentence that preceded it.\n\n}Is that better Jim?   It's called an argument.  If you disagree with it,\n}explain why the argument is not sound.  (I admit that my assumption in (7)\n}may have been a bit hasty.)  If you agree with it, just say \"yup.\"\n\nHave you, by chance, ever even heard of inductive logic?  You are not\ndemonstrating any familiarly with it (i.e. you are being insufficiently\nlogical).\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1808, "properties": {"category": "talk.politics.misc", "text": "From: rolandi@hssc.scarolina.edu (Walter Rolandi)\nSubject: Re: Will Italy be the Next Domino to Fall?\nOrganization: USC  Department of Computer Science\nLines: 13\n\nhagenjd@wfu.edu (Jeff Hagen) writes:\n\n\n>A good two-party system will bring Italy efficient, accountable government.\n\nyeah, just like we have here in the US.\n\n\n--\n\n  WALTER G. ROLANDI\n  USENET: rolandi@andy.hssc.scarolina.edu\nINTERNET: rolandi@hsscls.hssc.scarolina.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1809, "properties": {"category": "comp.sys.mac.hardware", "text": "From: anielsen@uniwa.uwa.edu.au (Andrew Nielsen)\nSubject: Versatec plotter PPD?\nOrganization: The University of Western Australia\nLines: 13\nDistribution: world\nNNTP-Posting-Host: uniwa.uwa.edu.au\nX-Newsreader: Tin 1.1 PL5\n\nHello world, does anyone know of a Postscript PPD for a Versatec \nA0-size plotter, which is generally accessed via a ZEH Postscript\ninterpreter?  Replies by e-mail very gratefully received - this is\nproving to be quite a tricky one.\n\n_________________________________________________________________________\nAndrew D. Nielsen                        Internet : anielsen@DIALix.oz.au\nAdvanced Systems Consultant              AppleLink: AUST0278\nAppleCentre Perth                  \n69 Adelaide Tce                                        Tel: +61-9-2214511\nPERTH WA 6004   AUSTRALIA                              FAX: +61-9-2212527\n\n     \"Any opinions expressed are my own, not those of my employer.\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1810, "properties": {"category": "sci.med", "text": "From: dmp1@ukc.ac.uk (D.M.Procida)\nSubject: Re: Homeopathy: a respectable medical tradition?\nReply-To: dmp1@ukc.ac.uk (D.M.Procida)\nOrganization: Computing Lab, University of Kent at Canterbury, UK.\nLines: 26\nNntp-Posting-Host: eagle.ukc.ac.uk\n\nIn article <19609@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n\n>Accepted by whom?  Not by scientists.  There are people\n>in every country who waste time and money on quackery.\n>In Britain and Scandanavia, where I have worked, it was not paid for.\n>What are \"most of these countries?\"  I don't believe you.\n\nI am told (by the person who I care a lot about and who I am worried\nis going to start putting his health and money into homeopathy without\nreally knowing what he is getting into and who is the reason I posted\nin the first place about homeopathy) that in Britain homeopathy is\navailable on the National Health Service and that there are about 6000\nGPs who use homeopathic practices. True? False? What?\n\nHave there been any important and documented investigations into\nhomeopathic principles?\n\nI was reading a book on homeopathy over the weekend. I turned to the\nsection on the principles behind homeopathic medicine, and two\nparagraphs informed me that homeopaths don't feel obliged to provide\nany sort of explanation. The author stated this with pride, as though\nit were some sort of virtue! Why am I sceptical about homeopathy? Is\nit because I am a narrow-minded bigot, or is it because homeopathy\nreally looks more like witch-doctory than anything else?\n\nDaniele.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1811, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mbeale@groucho.mrc.uidaho.edu (Mark Beale)\nSubject: Re: Quadra Acceleration\nArticle-I.D.: moscow.C5G4MM.6xI\nDistribution: na\nOrganization: Microelectronics Research Center\nLines: 7\nNntp-Posting-Host: groucho.mrc.uidaho.edu\n\nAbout this QUADRA 700, 800 clock acceleration: has anyone heard\nof anything like it for the QUADRA 950?\n\nPlease reply e-mail, I don't get to the news very often.  Thanks!!\n\nMark Beale\nmbeale(at)wallaby.mrc.uidaho.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1812, "properties": {"category": "rec.autos", "text": "From: mgqlu@ntuix.ntu.ac.sg (Max Lu)\nSubject: Re: Auto air conditioning without Freon\nOrganization: Nanyang Technological University - Singapore\nX-Newsreader: TIN [version 1.1 PL8]\nDistribution: usa\nLines: 12\n\nWe are working on gas-solid adsorption air-con system for auto applications.\nIn this kind of system, the energy for regenerating the adsorbent is from \nthe exhaust gas.  Anyone interested in this mail email me or follow up this\nthread, we may have a discussion on prospects of this technology.\n\nMax \n\n-- \nMax G Q Lu, PhD \t\t\t\t|  Internet: mgqlu@ntu.ac.sg\nDivision of Thermal Enginerring\t\t\t|  Bitnet: mgqlu@ntuvax.bitnet\nSchool of MPE, Nanyang Technological University |  Phone: (65) 7994818\nNanyang Avenue, Singapore 2263\t\t\t|  Fax:   (65) 7911859\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1813, "properties": {"category": "rec.autos", "text": "From: srihari@cirrus.com (Srihari Shoroff)\nSubject: Re: Instead of a Saturn SC2, What???\nOrganization: Cirrus Logic Inc.\nDistribution: na\nLines: 24\n\nIn <Ifn=sPO00iV18_A8NZ@andrew.cmu.edu> jr4q+@andrew.cmu.edu (Jason M. Roth) writes:\n\n>>R&T had an article on cars of the SC1 ilk and they liked the Civic Ex,\n>>the Escort GT and the MX-3 best of all, and the SC1 was way down the\n>>list except for braking.\n\n>I just looked at that article; first of all, this summary is inaccurate;\n>of 10 cars, the SC1 was 5th, right behind these mentioned and the Suzuki\n>Swift (!). As has been pointed out, it was a semi-silly comparison; the\n>Saturn was at least $500 cheaper than the MX-3 and Escort (admittedly\n>negligible, but an issue), and $1500 (!)less than the Honda. The stated\n>goal was a base under $12k; the Honda was $500 over, while the SC2 at\n>the same price was excluded. In other words, they let the best Honda\n>play, but not the best Saturn.  Note that the Saturn did beat the $13k\n\nI dont know about the car comparison but as far as the price goes rest\nassured that the street prices for the MX-3 and Escort and (maybe) even\nthe Honda will be lesser than that of the Saturn you're talking about.\nAll price comparisons I've seen are based on MSRP and of course the\nsaturn dealer will sell the car for sticker price whereas the others\nwill do it way below sticker.\n\nSrihari\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1814, "properties": {"category": "rec.autos", "text": "From: grahamt@phantom.gatech.edu (Graham E. Thomas)\nSubject: SUPER MEGA AUTOMOBILE SIGHTING(s)!!!!! Exotics together!\nOrganization: Georgia Institute of Technology\nLines: 36\nNNTP-Posting-Host: oit.gatech.edu\n\nAlright, beat this automobile sighting.\n\nDriving along just a hair north of Atlanta, I noticed an old, run down\nformer car dealership which appeared to deal with, and repair, older\nrare or exotic foreign sports cars. I saw:\n\nFord GT-40 (!), the famous model from Ford, that seemed to win most of \nits races in the late 60s, including Le-Mans 4 or 6 times.\n\nTwo Jensen Interceptors, one a convertable, one a hatchback?\n\nPorsche 911 (boring compared to the rest)\n\nTHREE Ferarries, a Mondial, a 308 prepared for racing, and a red 60s model\nthat I couldn't identify.\n\nAnd at the bottom, a late 70s MG convertable.\n\nOutside there was a rotting Rover 3500 saloon, which was never regularly\nsold in the U.S.\n\nAnd in the showroom, there was a small italian body, either an Alpha Romeo\nor a Lancia. It was about the size of an Austin Mini.\nThe trunklid was missing, exposing a boot with a voltage regulator \nin the upper left corner of the wall, and a chunk of metal removed from\nthe floor on the right hand side as if something would leave the trunk\nand go to the outside from here.\nThe taillights looked like they\nwould be the round type (if they were there). Does anyone know what the\nmake of this one is?  \n\nCertainly made my day... \n-- \nGraham E. Thomas                  *  blah blah blah blah blah  \nGeorgia Institute of Technology   *  blah blah blah blah blah     \nInternet: grahamt@oit.gatech.edu  *  blah blah blah blah blah  \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1815, "properties": {"category": "rec.motorcycles", "text": "From: n8643084@henson.cc.wwu.edu (owings matthew)\nSubject: Re: Riceburner Respect\nArticle-I.D.: henson.1993Apr15.200429.21424\nOrganization: Western Washington University\n \n  The 250 ninja and XL 250 got ridden all winter long.  I always wave.  I\nLines: 13\n\nam amazed at the number of Harley riders who ARE waving even to a lowly\nbaby ninja.  Let's keep up the good attitudes.  Brock Yates said in this\nmonths Car and Driver he is ready for a war (against those who would rather\nwe all rode busses).  We bikers should be too.\n\nIt's a freedom that we all wanna know\nand it's an obsession to some\nto keep the world in your rearview mirror\nwhile you try to run down the sun\n\n\"Wheels\" by Rhestless Heart\nMarty O.\n87 250 ninja\n73 XL 250 Motosport\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1816, "properties": {"category": "talk.religion.misc", "text": "From: royc@rbdc.wsnc.org (Roy Crabtree)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Red Barn Data Center\nLines: 83\n\nIn article <bskendigC5rCBG.Azp@netcom.com> bskendig@netcom.com (Brian Kendig) writes:\n>visser@convex.com (Lance Visser) writes:\n>>\n>>\tThey cut off the water, there were no fire trucks present\n>\n>They refused to bring in fire equipment for fear that the firemen\n>would be shot at.\n>\n>>and the FBI/ATF go blasting holes into the builing and firing gas munitions.\n>\n>They used a tank to knock a hole in the wall, and they released\n>non-toxic, non-flammable tear gas into the building.\n\n\tTake a second look at \"non-toxic, non-flammable\":\n\n\t\tMACE (sold tothe public) is supposedly nontoxic.\n\t\tWhatthey do not tell you is that if you get mace directly\n\t\ton the linings of the lungs (such as a direct snort to\n\t\tthe face) above certain quantities, it reacts similarly\n\t\tto a mustard gas inhalation.\n\n\t\t\tI know:  my father and grandfather were exposed\n\t\t\tto poison gas in WWI and WWII; Dad went through\n\t\t\tthe side effects of any WEAPON, including those\n\t\t\t\"non-toxic\" aerosols.\n\n\t\tWHat the label ACTUALLY means is ::\n\n\t\t\tusually, it wont kill you\n\t\t\tit may give you permanent CSS asthsma\n\t\t\tbut that's better than blowing a hole in your\n\t\t\t\thead ...\n\n\t\tALL aerosols are flammable IF YOU HAVE ENOUGH OXYGEN\n\t\tAND HIT IT WITH THE RIGHT IGNITER.  SOme of the most\n\t\tnon-flammable substances known will BOOM or SEARFLAME\n\t\tif you hit it with the right combo.\n\n\n\t\tLet's take one:  a trash can fire.  Makes black smoke;\n\t\talready burned right?  Can't go boom, right?  Wrong.\n\n\t\tSuck that smoke (made up of paper that has carbonized,\n\t\tor burned about 35% of the fuel in it) into an air\n\t\tconditioning return, mix with about 5:1 air, and light\n\t\ta match.  200 feet of conduit is about the same, when\n\t\tfilled with that smoke mixture, as oh, say 200 pounds TNT\n\n\t\t\tTHAT is why the fire codes say NO OPEN CEILING\n\t\t\tTILES IN BUILDINGS.  Because 3-5 stories of\n\t\t\ta building have blown OUT by \"nonflammable _smoke_\"\n\n\tSo:\n\t\tTake a little \"nonflammable aerosol\"\n\t\tMix with gasoline or kerosene fumes\n\n\t\t\tNO electricity, remeber?  A bit of heating\n\t\t\ton the WACO plains?  Boil water to drink\n\t\t\tsince the water was cut off?\n\n\t\tliberally mix and allow to settle for 1-4 hours\n\n\t\tFumes vent down into the bus underground, and the Davidians\n\t\tmove the children UPSTAIRS to a saferoom (they had one,\n\t\tarmor plated, remember?) to BREATH, because kids get sick\n\t\tand die from tear gas.\n\n\t\tand along comes a tracer, a spark, what have you:\n\n\t\t\teveryone burns to death.\n\nTry thinking before opening mouth: it may not have happened the\nway the Gmen say it did.\n\n>\n>-- \n>_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n>/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n>_/_/                            n'etre fait comme aucun de ceux qui existent.\n>  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n> /    is that it ends.                                           -- Rousseau\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1817, "properties": {"category": "rec.sport.baseball", "text": "From: admiral@jhunix.hcf.jhu.edu (Steve C Liu)\nSubject: Re: NO JOKE: ROCKIES HAVE ATTENDANCE RECORD!!!!\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 23\nDistribution: usa\nExpires: 5/9/93\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\nSummary: OPCY is just too small...\n\nHell, the Orioles' Opening Day game could easily be the largest in history\nif we had a stadium with 80,000 seats. But unfortunely the Yards (a\ndefinitely excellent ballpark) only holds like 45,000 with 275 SRO spots.\nTicket sales for the entire year is moving fast. Bleacher seats are almost\ngone for every game this year. It's a extremely likelyhood that the O's\ncould sell out every game this year (especially if we lead the division for\nmost of the year like '89). \n\tOn another front, the sale of the Orioles to anyone is likely to be\nforced upon Eli Jacobs who is major debt apparently. Maybe we can get an\nowner willing to spend on a proven rightfielder free agent in the winter.\n\tFernando has made the O's as the fifth starter. The O's pitching\nstaff looks pretty good. Sutcliffe, Mussina, McDonald, Rhodes, and Fernando.\n\tBaltimore is my pick for the victors in a very competitive AL East.\n__________________________________________________________________________\n|Admiral Steve C. Liu        Internet Address: admiral@jhunix.hcf.jhu.edu|\n|\"Committee for the Liberation and Intergration of Terrifying Organisms  |\n|and their Rehabilitation Into Society\" from Red Dwarf - \"Polymorph\"     |\n|****The Bangles are the greatest female rock band that ever existed!****|\n|   This sig has been brought to you by... Frungy! The Sport of Kings!   |\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n Second to last day of the season - Gregg (The True Wild Thing) Olson\nuncorks a wild pitch allowing the Blue Jays to tie. Blue Jays win in the\n11th and ends the Baby Birds' miracle season of '89.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1818, "properties": {"category": "rec.motorcycles", "text": "From: Dave Dal Farra <gpz750@bnr.ca>\nSubject: Re: Eating and Riding was Re: Drinking and Riding\nX-Xxdate: Tue, 6 Apr 93 15:22:03 GMT\nNntp-Posting-Host: bcarm41a\nOrganization: BNR Ltd.\nX-Useragent: Nuntius v1.1.1d9\nLines: 30\n\nIn article <PNAKADA.93Apr5140811@pnakada.oracle.com> Paul Nakada,\npnakada@oracle.com writes:\n>\n>What's the feeling about eating and riding?  I went out riding this\n>weekend, and got a little carried away with some pecan pie.  The whole\n>ride back I felt sluggish.  I was certainly much more alert on the\n>ride in.  I'm sure others have the same feeling, but the strangest\n>thing is that eating is usually the turnaround point of weekend rides.\n>\n>From now on, a little snack will do.  I'd much rather have a get that\n>full/sluggish feeling closer to home.\n>\n>-Paul\n>--\n>Paul Nakada | Oracle Corporation | pnakada@oracle.com\n>DoD #7773 | '91 R100C | '90 K75S\n>\n\nTo maintain my senses at their sharpest, I never eat a full meal\nwithin 24 hrs of a ride.   I've tried Slim Fast Lite before a \nride but found that my lap times around the Parliament Buildings suffered \n0.1 secs.   The resultant 70 pound weight loss over the summer\njust sharpens my bike's handling and I can always look\nforward to a winter of carbo-loading.\n\nObligatory 8:)\n\nDave D.F.\n\"It's true they say that money talks.  When mine spoke it said\n'Buy me a Drink!'.\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1819, "properties": {"category": "comp.graphics", "text": "From: andreasa@dhhalden.no (ANDREAS ARFF)\nSubject: comp.graphics.programmer\nOrganization: Ostfold College\nLines: 20\nNntp-Posting-Host: pc105\n\nHello netters\n\nSorry, I don't know if this is the right way of doing this kind of thing,\nprobably should be a CFV, but since I don't have tha ability to create a \nnews group myself, I just want to start the discussion. \n\nI enjoy reading c.g very much, but I often find it difficult to sort out what\nI'm interested in. Everything from screen-drivers, graphics cards, graphics\nprogramming and graphics programs are discused here. What I'd like is a \ncomp.graphics.programmer news group.\nWhat do you other think.\n\n\nArff\n\"Also for the not religous confessor, there is a mystery of higher values,\nwho's birth mankind - to the last - builds upon. They are indisputible. And \noften disregarded. Seldom you hear them beeing prized, as seldom as you hear \na seeing man prizeing what he sees.\" Per Lagerkvist, The Fist \n(Free translation from Swedish)\n              --Andreas Arff  andreasa@dhhalden.no--\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1820, "properties": {"category": "sci.space", "text": "From: djf@cck.coventry.ac.uk (Marvin Batty)\nSubject: Re: Moonbase race\nNntp-Posting-Host: cc_sysk\nOrganization: Starfleet, Coventry, UK\nLines: 22\n\nIn article <1r46o9INN14j@mojo.eng.umd.edu> sysmgr@king.eng.umd.edu writes:\n>In article <C5tEIK.7z9@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n>\n>>Apollo was done the hard way, in a big hurry, from a very limited\n>>technology base... and on government contracts.  Just doing it privately,\n>>rather than as a government project, cuts costs by a factor of several.\n>\n>So how much would it cost as a private venture, assuming you could talk the\n>U.S. government into leasing you a couple of pads in Florida? \n>\nWhy use a ground launch pad. It is entirely posible to launch from altitude.\nThis was what the Shuttle was originally intended to do! It might be seriously\ncheaper. \n\nAlso, what about bio-engineered CO2 absorbing plants instead of many LOX bottles?\nStick 'em in a lunar cave and put an airlock on the door.\n\n-- \n****************************************************************************  \n                  Marvin Batty - djf@uk.ac.cov.cck\n\"And they shall not find those things, with a sort of rafia like base,\nthat their fathers put there just the night before. At about 8 O'clock!\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1821, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: miyoshi@psych.toronto.edu (Hiroto Miyoshi)\nSubject: Qestion about amipro demo files on cica\nOrganization: Department of Psychology, University of Toronto\nDistribution: na\nLines: 18\n\n\tHello\n\nI have a question about the demo files for amipro v3 uploaded in cica.\nI downloaded it and tryied to install it.  However, it didn't work.  \nIn addition, it altered or eliminated my NWRES2.dll file so that I had\nto reinstall my Norton Desktop again.\n\nIs there anything I have to know to install it or do I eventually have \nto ask Lotus to send a working model to me (I heard that they have it)?\nI just want to see its look and feel before buying it.\n\nAny pointer would be greatly appreciated.\nThank you\n\n\t\t\t\t\t\tHiroto\n\t\t\t\tmiyoshi@psych.toronto.edu\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1822, "properties": {"category": "sci.electronics", "text": "From: obrien@hri.com (Jim Obrien)\nSubject: IBM-PC XT switch settings\nOrganization: Horizon Research, Inc.\nLines: 7\nDistribution: world\nReply-To: obrien@bigbird.hri.com\nNNTP-Posting-Host: sparc28.hri.com\n\nI just got an IBM-PC XT with no documents. Its a true\nIBM, and I was wondering if anyone had the definitions\nof the 2 8 position dip switches? \n\n- thankx Jim\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1823, "properties": {"category": "rec.sport.hockey", "text": "From: au021@cleveland.Freenet.Edu (Roland Behunin)\nSubject: Does anybody have the schedule for games Sunday 25 Apr 93\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 31\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nHello Hockey fans.\nBonjour tout le monde!\n\nWell, in Salt Lake City this past Sunday, the local ABC station decided not\nto televise the hockey games.  La directrous de programme est la tete de merde!\nAnyway, I have a satellite dish, and a few of my friends from hockey have invited themselves over to watch the games this coming Sunday (25 Apr), and I can\nnot find correct game times.  For the Calgary at LA game I have times showing\neverything from 11:00 AM MDT, to 5:00 PM MDT.\n\nI am not even sure what games are going to be played this coming Sunday, now\nthat ABC has mucked up the schedule.  I think I should be able to\npull in\nthree games (11:00 am, 2:00 pm, and 5:30 pm MDT) off the dish, but I am\nnot sure.\n\nIF anybody has a schedule, pleas emial it to me.  As you can see, I have to\ntelent to get rec.sport.hockey, and it is sometimes difficult to get a link.\n\nThanks in advance\nMerci d'avance\n\nP.S.  Anglais ou francais d'accord.\n\n\nRoland Behunin\n\nbehunin@oodis01.af.mil\nbehunin@oodis01.hill.af.mil\n-- \nRoland\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1824, "properties": {"category": "sci.crypt", "text": "From: masjhd@gdr.bath.ac.uk (James Davenport)\nSubject: Re: Trinomial-Based PRNG\nOrganization: School of Mathematical Sciences, University of Bath, UK\nLines: 27\n\nI tried to mail Peter Boucher, who posted the question, but my e-mail\nbounced, so, apologies to thsoe who are not interested.\n>trinomials are all of the form X**a + X**b + 1, where a\nHave you read:\nBremner,A.,\nOn Trinomials of Type x$+n$-+Ax$+m$-+1.\nMath. Scand. 49(1981) pp. 145-155.\nZbl. 458.12012.\nMR 83k:12002.\n\nLjunggren,W.,\nOn the Irreducibility of Certain Trinomials and Quadrinomials.\nMath. Scand. 8(1960) pp. 65-70.\n.\n\nTverberg,H.,\nOn the Irreducibility of the Trinomials\nx$+n$-$mpm$$x$+m$-$mpm$$1.\nMath. Scand. 8(1960) pp. 121-126.\n\nTverberg,H.,\nOn Cubic Factors of Certain Trinomials.\nMath. Scand. 53(1983) pp. 178-184.\nZbl. 513.12003.\n\nJames Davenport\njhd@maths.bath.ac.uk\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1825, "properties": {"category": "rec.autos", "text": "From: cka52397@uxa.cso.uiuc.edu (CarolinaFan@uiuc)\nSubject: Re: Most bang for between $13,000 and $16,000\nArticle-I.D.: news.C5345n.DGF\nDistribution: na\nOrganization: University of Illinois at Urbana\nLines: 36\n\njmh@hopper.Virginia.EDU (Jeffrey Hoffmeister) writes:\n\n>In article <1993Apr6.200200.29965@progress.com> damelio@progress.COM (Stephen D'Amelio) writes:\n>>\n>>rjwade@rainbow.ecn.purdue.edu (Robert J. Wade) writes:\n>>\n>>>>     There's only one car that really fits your needs. It's spelled:\n>>>>\n>>>>\t\t\t  5.0 LITER MUSTANG\n>>\n>sports car, butm my mothers '88 GT was considered a sports car.\n>I still can't quite figure that out, since when do plastic add-ons\n>make a car a sports car?\n\n>Jeff\n\n\tWe're talking about insurance agents from Bumf**k Illinois (ST.FARM is\nHQ'ed in Bloomington).  What the hell do  they know about cars...  Both are\nsports cars...  :-)\n\n\n\n\n\n\n\n\n\n\n\n\n-- \nChintan Amin  The University of Illinois/Urbana Champaign mail: llama@uiuc.edu\n******************************************************************************\n*\"Because he was human      Because he had goodness      Because he was moral*\n***************They called him insane...\"  Peart \"Cinderella Man\"*************\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1826, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: quick way to tell if your local beat writer is dumb.\nFrom: rbd@flash.ece.uc.edu (Bobby Davis)\nOrganization: University of Cincinnati\nNntp-Posting-Host: flash.ece.uc.edu\nLines: 13\n\nBob Gajarsky - Hobokenite writes:\n>jayson stark (i trhink that's him) fits perfectly in this category.\n>\n>anyone who writes \"dean palmer has 2 homers  - at this pace, he'll\n> have 324 home runs!\" should be shot.\n\nBob, I think that Stark does this sort of thing as a joke, not as a\nserious prediction.  I don't really see why we should shoot him for\nthat.  The guys who ought to be shot are the ones who keep claiming\nhow great the Royals' chances are in the AL West, since all evidence\nindicates that they aren't joking and actually believe it.\n\nBob Davis\trbd@thor.ece.uc.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1827, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jiml@garfunkel.FtCollinsCO.NCR.COM (Jim L)\nSubject: Re: SIMM Speed\nDistribution: world\nOrganization: NCR Microelectronics Products Division (an AT&T Company)\nLines: 40\n\nIn article <1993Apr6.150808.27533@news.unomaha.edu>, hkok@cse (Kok Hon Yin) writes:\n|> Robert Desonia (robert.desonia@hal9k.ann-arbor.mi.us) wrote:\n|> : B\n|> : BK>Is it possible to plug in 70ns or 60ns SIMMs into a motherboard saying\n|> : BK>wants 80ns simms? \n|> \n|> : You shouldn't have troubles.  I have heard of machines having problems \n|> : with slower than recommended memory speeds, but never faster.  \n|> \n|> --\n|> It should run without any trouble of course but why do you want to buy some\n|> 60ns and mixed them with 80ns?  60ns is more expensive than 80ns and\n|> furthermore your machine will run the slowest SIMMs clock speed eventhough\n|> you have 60ns.  Just my 0.02cents thought....\n|> \n\n\nYour machine will run at whatever the bus is jumpered to/CMOS is set to\n(usually wait states) regardless of what speed RAM is installed.  No\nmotherboard can sense the speed of the RAM installed, unless you call\nfailing as a sort of auto-sense.  This is how you can sometimes use\n\"slower\" RAM in a machine.  You either set the number of wait states to\naccomodate the slow RAM (in which case, all memory will run at that\nslower rate) or you reduce the wait states and take the chance that the\nslower RAM will act like faster RAM and you won't crash.\n\nPutting faster RAM in won't speed things up unless you tell the machine\nit has faster RAM.  \n\nMixing fast and slow RAM will not help you if you have to keep the bus \nslowed down to accomodate slow RAM.\n\nJimL\n--------------------------------------------------------------------\n\n-- \nMailer address is buggy!  Reply to: jiml@strauss.FtCollinsCO.NCR.com\n\nJames Lewczyk                                   1-303-223-5100 x9267\nNCR-MPD Fort Collins, CO             jim.lewczyk@FtCollinsCO.NCR.COM\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1828, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith)\nSubject: Re: SCSI on dos\nOrganization: The John P. Robarts Research Institute, London, Ontario\nKeywords: SCSI, DOS, streamer\nNntp-Posting-Host: valve.heart.rri.uwo.ca\nLines: 21\n\nIn article <1993apr19.072253.14522@dde.dk> ibh@dde.dk (Ib Hojme) writes:\n>\tI have a question concerning SCSI on DOS.\n>\n>\tI have a ST01 SCSI controller and two hard-disks conected\n>\t(id's 0 and 1). I'd like to connect a SCSI streamer, but I\n>\tdon't have software to access it. Does such a beast exist\n>\tas shareware or PD ?\n>\tAlso what if I want a third disk ? I know that DOs only can\n>\t\"see\" two two physical and four logical disks. Will it be\n>\tpossible to use extra disks ?\n\nContrary to what others might have thought, I actually did have a SCSI drive\nonce.  It was the Seagate 296N and the ST-02 controller.  I found that the\ncontroller couldn't keep up with a 1:1 interleave, so the best I could do\nwith the drive was a 2:1 interleave and a data transfer of about 450 k/sec.\n\nI have had that drive/controller coexist with MFM, RLL, and IDE drives\nbecause the ST-02 bios will kinda muscle itself in there with no help\nneeded from the computer's bios.  Dos will see many logical drives, much more\nthan 4 (I've had up to 10).  I've often wondered how many SCSI drives you\ncould hang off a ST-01/02.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1829, "properties": {"category": "misc.forsale", "text": "From: steve@titan.tsd.arlut.utexas.edu (Steve Glicker)\nSubject: 2 1000W Power Supplies\nNntp-Posting-Host: rooster\nOrganization: Applied Research Labs, The University of Texas at Austin\nDistribution: misc\nLines: 14\n\nTwo LH Research SM11-1 power supplies (SM10 series).\n\n1000W, 5V, 200A (currently wired for 115VAC)\n\nControl lines: +/- sense, on/off, pwr.fail, high/low margin, and\ncurrent monitor.\n\n(The list price from LH Research is $824.00 each for qty. 1-9)\n\nAsking $500.00 for the pair.\n\nSteve Glicker\nAustin, Texas\n(steve@titan.tsd.arlut.utexas.edu)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1830, "properties": {"category": "sci.med", "text": "From: caf@omen.UUCP (Chuck Forsberg WA7KGX)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nOrganization: Omen Technology INC, Portland Rain Forest\nLines: 38\n\nIn article <C5wC7G.4EG@toads.pgh.pa.us> geb@cs.pitt.edu (Gordon Banks) writes:\n>In article <1993Apr22.001642.9186@omen.UUCP> caf@omen.UUCP (Chuck Forsberg WA7KGX) writes:\n>\n>>>>>Can you provide a reference to substantiate that gaining back\n>>>>>the lost weight does not constitute \"weight rebound\" until it\n>>>>>exceeds the starting weight?  Or is this oral tradition that\n>>>>>is shared only among you obesity researchers?\n>>>>\n>>>>Annals of NY Acad. Sci. 1987\n>>>>\n>>>Hmmm. These don't look like references to me. Is passive-aggressive\n>>>behavior associated with weight rebound? :-)\n>>\n>>I purposefully left off the page numbers to encourage the reader to\n>>study the volumes mentioned, and benefit therefrom.\n>>\n>\n>Good story, Chuck, but it won't wash.  I have read the NY Acad Sci\n>one (and have it).  This AM I couldn't find any reference to\n>\"weight rebound\".  I'm not saying it isn't there, but since you\n>cited it, it is your responsibility to show me where it is in there.\n>There is no index.  I suspect you overstepped your knowledge base,\n>as usual.\n>----------------------------------------------------------------------------\n>Gordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\n>geb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n>----------------------------------------------------------------------------\n\nIt's on page 315, about 2 1/2 inches up from the bottom and an inch in\nfrom the right.\n\nAt least we know what some people *haven't* read and remembered.\n\n-- \nChuck Forsberg WA7KGX          ...!tektronix!reed!omen!caf \nAuthor of YMODEM, ZMODEM, Professional-YAM, ZCOMM, and DSZ\n  Omen Technology Inc    \"The High Reliability Software\"\n17505-V NW Sauvie IS RD   Portland OR 97231   503-621-3406\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.085+0000", "event": "documents", "entityId": 1831, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: Millitello update\nDistribution: usa\n <1993Apr14.175343.3431@alleg.edu>\nLines: 10\n\nIn article <1993Apr14.175343.3431@alleg.edu>, millits@yankee.org (Sam\nMillitello) says:\n>\n>Uhhhh I think I spelled my name correctly. Sam Millitello.\n>\n\nuhhhh there are only three l's.\n\nbob vesterman.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1832, "properties": {"category": "talk.religion.misc", "text": "From: kilroy@gboro.rowan.edu (Dr Nancy's Sweetie)\nSubject: Re: Freemasonry and the Southern Baptist Convention\nSummary: Update on events.\nKeywords: update, report, `Woof!'\nOrganization: Rowan College of New Jersey\nDisclaimer: Sometime tonight, Brandy the WonderDog will turn 11 years old.\n            You can e-mail your presents (he likes rawhide chewy toys) to\n            the address above.\nLines: 73\n\n\nThere were some recent developments in the dispute about Masonry among\nSouthern Baptists.  I posted a summary over in bit.listserv.christia, and\nI suppose that it might be useful here.  Note that I do not necessarily\nagree or disagree with any of what follows: I present it as information.\n\n *\n\nFor a short summary:  a Southern Baptist named Larry Holly wrote a book\nclaiming that Freemasonry is a religion incompatible with Christianity.\n(Mr Holly's father rejects Christianity, and Mr Holly blames that on the\nMasons.)\n\nThe SBC's Home Missions Board includes an interfaith witness department,\nwhich studies other religions and how to teach them about Christ.  A few\nyears ago, they were ordered to produce a report on Masonry: they concluded\nthat it was not a religion, and therefore was outside their speciality.\nHowever, Mr Holly led a movement of people who oppose Masonry, and\nlast year the Convention again ordered the HMB to study Masonry.  (I got the\nfeeling that they were saying \"You got the wrong answer last time, try to\ndo better and get the answer we want.\")\n\nAnyway, there's been a bit of infighting and some inappropriate actions, but\nthe dust has settled and the report is in.  Nobody is entirely happy with it,\nbut everybody seems willing to live with it.  Both sides are saying things\nsuch as: \"This was the best we were going to get in the current environment.\"\n\nThe report commends the Masons for the charity work they do, such as the\nhospitals and burn centers they operate, as well as efforts to help the\nelderly and prevent drug abuse.  The report acknowledges that many well-\nknown Christians are and have been Masons, and notes that many teachings\nof Masonry are \"supportive of Christian faith and practice\".  Examples of\nthe latter include belief in God, emphases on honesty and integrity, and\nthat some Masonic lodges incorporate explicit Christian beliefs.\n\nOn the other hand, they note that some aspects of Masonry are incompatible\nwith Southern Baptist principles.  These included the use of titles which some\npeople consider sacrilegious, the taking of certain oaths (even though they\nare not meant seriously), the \"undeniably pagan and/or occultic\" writings of\nsome Masonic leaders, the implication in some Masonic writings that salvation\ncan be achieved by good works, and the racial discrimination practiced by many\nMasonic lodges.  (I note with some chagrin that Baptist churches as a whole\naren't really in a place to speak on this last point.)\n\n\nThe report concludes that Masonry is not a religion, and says that membership\nshould not be endorsed or censured, but left to the discretion of individuals.\nThis was in part because there is variation among different Masonic Lodges,\nand while one may include elements strongly against Christianity, another may\nnot.  Many Southern Baptists have strong convictions about the priesthood of\nthe believer and the autonomy of the local church, and this history probably\ninfluenced how the report came out.\n\n *\n\nThe information above was gleaned from \"The Religious Herald\", a publication\nof the Baptist General Association of Virginia, and \"Baptists Today\", which\ndoes not have any direct links to a religious organisation.  (Autonomy is a\nbig issue among some Baptists.  8-)\n\nBecause I have neither the report itself, nor whatever Masonic documents are\nrelevant to these issues, none of the above comes with a guarantee.  Your\nmileage may vary.  Void where prohibited.\n\n\nDarren F Provine / kilroy@gboro.rowan.edu\n\nMilton:  \"We use only the finest baby frogs, dew picked and flown from Iraq,\n          cleansed in finest quality spring water, lightly killed, and then\n          sealed in a succulent Swiss quintuple smooth treble cream milk\n          chocolate envelope and lovingly frosted with glucose.\"\n\nPraline: \"That's as may be, it's still a frog.\"\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1833, "properties": {"category": "rec.autos", "text": "From: mcrosbie@batman.bmd.trw.com\nSubject: Any Syclone or Typhoon owners out there?\nLines: 4\n\nI want to start of list for Syclone and Typhoon owners.  If you are interested\nin participating, please contact me via e-mail.\n\nMerrill\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1834, "properties": {"category": "rec.sport.baseball", "text": "From: dougr@meaddata.com (Doug Ritter)\nSubject: Re: Expanded NL Strike Zone? (Was Re: A surfeit of offense?)\nOrganization: Mead Data Central, Dayton OH\nLines: 30\nNNTP-Posting-Host: birch.meaddata.com\n\nIn article <13247@news.duke.edu> fierkelab@bchm.biochem.duke.edu (Eric Roush) writes:\n>In article <1993Apr14.160447.17835@cs.cornell.edu> tedward@cs.cornell.edu\n>(Edward [Ted] Fischer) writes:\n>\n>\n>>We won't really be able to say anything for at least another couple of\n>>weeks.  But so far it looks like a homerific season!  (Might the umps\n>>be squeezing the strike zone?)\n>>\n>\n>\n>Watching the Braves on TBS, I would have said that the strike zone\n>in the NL has expanded this season.  Specifically, it appears that\n>the strike zone has moved above the belt.  Yeah, the announcers\n>have commented on that also, but it was also my perception.\n>\n>However, the strike zone hasn't climbed all the way up to\n>\"the letters\".  It's more like a little ways under the letters.\n>\n>Any other perceptions out there?\n\nJudging by the way the Reds' pitchers have performed thus far, it\nappears to me that the zone has been squeezed to the size of a grape.  \n\n1/2 :-)\n--\n===============================================================================\nDouglas N. Ritter\ndougr@meaddata.com                             Life is short - ride hard!\n..!uunet!meaddata!dougr\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1835, "properties": {"category": "talk.politics.guns", "text": "From: bu008@cleveland.Freenet.Edu (Brandon D. Ray)\nSubject: Re: Statement of Sarah Brady Regarding Texas State Carrying Concealed Legislation\nArticle-I.D.: usenet.1psstg$bbe\nReply-To: bu008@cleveland.Freenet.Edu (Brandon D. Ray)\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 83\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, nigel.allen@canrem.com (\"nigel allen\") says:\n\n>\n>Here is a press release from Handgun Control Inc.\n>\n> Statement of Sarah Brady Regarding Texas State Carrying Concealed\n>Legislation\n> To: State Desk\n> Contact: Susan Whitmore of Handgun Control Inc., 202-898-0792\n>\n>   WASHINGTON, March 25 -- Following is a statement of Sarah \n>Brady regarding Texas state carrying concealed legislation:\n>\n>   \"A handful of lawmakers in Austin today have told the public that\n>their safety is of less importance than the interests of the National\n>Rifle Association.  This action comes as local, state and federal law\n>enforcement officials continue their stand-off with a religious cult\n>that has highlighted the need for tougher gun laws, not weaker ones\n>like the carry concealed bill.\n\n   \"A handful of anti-gun zealots are telling the public that their\nright to self-defense is of less importance than the interests of\nHandgun Control, Inc.  This action comes as local, state and federal law\nenforcement officials continue their assault on the Branch Davidian\ncompound--an assault which has already resulted in the death of one\ntwo year old child at the hands of federal agents.  This has highlighted\nthe need for citizens to be able to defend themselves and their children\nagainst the excesses of their own government.\"\n\n>   \"Any suggestion by proponents that this bill will help to reduce\n>crime is a distortion of the facts, at best.  This so-called\n>crime-fighting law has resulted in a 16 percent increase in violent\n>crime in the state of Florida, and I have never heard law enforcement\n>officials bragging that more guns on the streets is the way to reduce\n>crime.\n\n  \"Any suggestion by opponents that this bill will increase crime is a \ndistortion of the facts, at best.  The aggressive outreach by officials\nin central Florida to train and arm women has led to a dramatic drop in\nthe level of assault and rape in that area.  Of course, this program is\na rare gem, as many law enforcement officials apparently believe that an\nunarmed citizenry will be easier to control, and thus favor tighter \nrestrictions.\"\n\n>   \"The vote today is an insult to the law enforcement officials who\n>are putting their lives on the line every day to end the standoff in\n>Waco.  The entire country now knows just how easy it is for an\n>individual bent on destruction to amass an arsenal of weapons.  Texas\n>lawmakers who voted for this concealed handgun bill have shown total\n>disregard for those law officials on the front lines, and the\n>families of those who have fallen.\n\n   \"The vote today is a tribute to the good sense of the public at large\nwho are putting their lives on the line every day as they go about their\nlawful affairs.  The entire country knows how vulnerable the average \ncitizen is, both to attacks from criminals and from armed assault by our\nown police.  Texas lawmakers who voted for this concealed handgun bill have\nshown total understanding for those innocent, law-abiding citizens on the\nfront lines, and the families of those who have fallen.\"\n\n>   \"I urge the House of Representatives to listen to the 70 percent\n>of Texans that oppose this measure, and reject this ill-conceived\n>legislation.\"\n\n   \"I urge the House of Representatives to pay attention to the needs\nof their constituents, and not be stampeded by ill-conceived arguments\nfrom ideological fanatics.\"\n\n> -30-\n>-- \n> Nigel Allen, Toronto, Ontario     nigel.allen@canrem.com\n>--\n>Canada Remote Systems - Toronto, Ontario\n>416-629-7000/629-7044\n>\nAin't propaganda fun?\n\n-- \n******************************************************************************\nThe opinions expressed by the author are insightful, intelligent and very\ncarefully thought out.  It is therefore unlikely that they are shared by the\nUniversity of Iowa or Case Western Reserve University.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1836, "properties": {"category": "talk.politics.mideast", "text": "From: bh437292@longs.LANCE.ColoState.Edu (Basil Hamdan)\nSubject: Re: Basil, opinions? (Re: Water on the brain)\nReply-To: bh437292@lance.colostate.edu\nNntp-Posting-Host: parry.lance.colostate.edu\nOrganization: Engineering College, Colorado State University\nLines: 65\n\nIn article <1qmdtlINNkrc@early-bird.think.com>, shaig@Think.COM (Shai Guday) writes:\n|> In article <1993Apr15.204930.9517@thunder.mcrcim.mcgill.edu>, hasan@McRCIM.McGill.EDU  writes:\n|> |> \n|> |> In article <1993Apr15.055341.6075@nysernet.org>, astein@nysernet.org (Alan Stein) writes:\n|> |> |> I guess Hasan finally revealed the source of his claim that Israel\n|> |> |> diverted water from Lebanon--his imagination.\n|> |> |> -- \n|> |> |> Alan H. Stein                     astein@israel.nysernet.org\n|> |> Mr. water-head,\n|> |> i never said that israel diverted lebanese rivers, in fact i said that\n|> |> israel went into southern lebanon to  make sure that no \n|> |> water is being used on the lebanese\n|> |> side, so that all water would run into Jordan river where there\n|> |> israel will use it  !#$%^%&&*-head.\n|> \n|> Of course posting some hard evidence or facts is much more\n|> difficult.  You have not bothered to substantiate this in\n|> any way.  Basil, do you know of any evidence that would support\n|> this?\n\nI agree with Shai,  there are many references to Israeli\nplans on the Litani river but I have yet to find hard \nevidence.  I had mentioned before that there is a report\ncommissioned by the UN to study the Litani river, it is \nstill in draft form.  The Israeli gov't also commissioned\na study on the river that was done by Dr. Ben Wolfe.\nThe Litani starts in the Bekaa valley in Lebanon,\nflows Southward, then West across South Lebanon and\ndischarges into the Mediterranean near the city of Tyre.\nThere are other rivers such as the Hasbani and the Wazzani\nthat start in Lebanese territory than join the Jordan river.  \nThe most mentioned plan was one that would divert water\nfrom the Litani into these, then the water would flow\nnaturally into the Lac De Houle.  BUT there is no evidence\nof any diversion structure (which would need to be at least\n3 km long).  The area is mountainous, inaccessible and\noccupied by Israel so I have not seen any independent \nreports of the existence of any diversion structure there.\nAnother often mentioned diversion is through deep wells.\nIt is also rumored that Israe has 600 m wells\ntapping into deep aquifers and drawing water on the\nIsraeli side of the border.  If such wells are indeed\nunder use they would be costly to operate \n(high energy costs) and the Lebanese and Israeli gov't should \nagree on the distribution of water from shared aquifers\nas part of an overall peace plan and the bilateral\nnegociations on \"regional issues\".  The fact that we have\nbeen at war all this time has led to the current state\nof affairs where withdrawals from such aquifers is\ncompletely unregulated.\n\n\nBasil\n\n\n\n\n\n|> |> Hasan \n|> \n|> -- \n|> Shai Guday              | Stealth bombers,\n|> OS Software Engineer    |\n|> Thinking Machines Corp. |\tthe winged ninjas of the skies.\n|> Cambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1837, "properties": {"category": "talk.religion.misc", "text": "From: jmeritt@mental.MITRE.ORG (Jim Meritt - System Admin)\nSubject: Identity crisis (God == Satan?)\nOrganization: UTexas Mail-to-News Gateway\nLines: 5\nNNTP-Posting-Host: cs.utexas.edu\n\nII SAMUEL 24: And again the anger of the LORD was kindled against Israel,\nand he moved David against them to say, Go, number Isreal and Judah.\n\nI CHRONICLES 21: And SATAN stood up against Isreal, and provoked David to\nnumber Israel.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1838, "properties": {"category": "rec.sport.hockey", "text": "From: jpc@philabs.philips.com (John P. Curcio)\nSubject: Re: European expansion and our f*cked system\nOriginator: jpc@condor\nOrganization: Philips Laboratories, Briarcliff, NY 10510\nLines: 29\n\n\n \n|> How long would they support teams that are run on Ranger-based \n|> corporate thinking (I use the term lightly).  (We don't need a good\n|> product because these duffuses in NYC would fill the arena for Ottawa's\n|> record every year......1940!! haha (sorry, had ta say it)).\n\nLook how long the Maple Leafs and Nordiques used similar logic....  Not that\nthey fielded bad teams solely to field bad teams, but the Maple Leafs (and a\ncertain dead man who was in charge) were one of the cheapest teams in the\nhistory of the sport.  Guess what-- they were immensely popular at the\ngate.  The Nordiques have also done well for a team that had missed the\nplayoffs so many years in a row.\n\n|> Look at British (or any European) soccer as an example (they never have fan\n|> problems).\n\nHa!  Such humor!  They have MAJOR fan problems, namely that on occasion some of\nthem don't make it home from the match!  The soccer fans tend to be fanatical,\nmuch like the Montreal fans who firebomb the players and coaches houses when\nthey play pathetically.\n \n-JPC\n\n-- \n-------------------------------------------------------------------------------\nJohn P. Curcio \t\t          Go Bruins!\t\t   Philips Laboratories\njpc@philabs.philips.com \t\t\t           345 Scarborough Road\n(914) 945-6442               \t \t\t     Briarcliff Manor, NY 10510 \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1839, "properties": {"category": "alt.atheism", "text": "From: west@next02cville.wam.umd.edu (Stilgar)\nSubject: Re: Gospel Dating\nNntp-Posting-Host: next15csc.wam.umd.edu\nReply-To: west@next02.wam.umd.edu\nOrganization: Workstations at Maryland, University of Maryland, College Park\nLines: 35\n\nIn article <kmr4.1433.734039535@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M.  \nRyan) writes:\n> In article <1993Apr5.163050.13308@wam.umd.edu>  \nwest@next02cville.wam.umd.edu (Stilgar) writes:\n> >In article <kmr4.1422.733983061@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M.  \n> >Ryan) writes:\n> >> In article <1993Apr5.025924.11361@wam.umd.edu>  \n> >west@next02cville.wam.umd.edu (Stilgar) writes:\n> >> \n> >> >THE ILLIAD IS THE UNDISPUTED WORD OF GOD(tm)    *prove me wrong*\n> >> \n> >> \tI dispute it.\n> >> \n> >> \tErgo: by counter-example: you are proven wrong.\n> >\n> >\tI dispute your counter-example\n> >\n> >\tErgo: by counter-counter-example: you are wrong and\n> >\tI am right so nanny-nanny-boo-boo TBBBBBBBTTTTTTHHHHH\n> \n> \tNo. The premis stated that it was undisputed. \n> \n\nFine... THE ILLIAD IS THE WORD OF GOD(tm)  (disputed or not, it is)\n\nDispute that.  It won't matter.  Prove me wrong.\n\nBrian West\n--\nTHIS IS NOT A SIG FILE            *    -\"To the Earth, we have been\nTHIS IS NOT A SIG FILE            *     here but for the blink of an\nOK, SO IT'S A SIG FILE            *     eye, if we were gone tomorrow, \nposted by west@wam.umd.edu        *     we would not be missed.\"-  \nwho doesn't care who knows it.    *        (Jurassic Park) \n** DICLAIMER: I said this, I meant this, nobody made me do it.**\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1840, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: u083s121@astro.ocis.temple.edu (cis083 sec001 spr93)\nSubject: Leading Edge Computer-Buy?\nOrganization: Temple University\nLines: 46\nNntp-Posting-Host: astro.ocis.temple.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\n\n  I saw the following computer in a store and wanted to know if this is a good\ncomputer or does someone see something wrong with it.  I also would like to\nswitch the motherboard later when this computer becomes too slow.  Does anyone\nknow if this is possible with a Leading Edge Computer, or will it be difficult\nto find a motherboard that will fit in this computer.  Any help will be\ngreatly appreciated.\n\n      Leading Edge- Model PC4170E\n\n      * Intel 486SX/25 Mhz CPU\n      * Supports Intel OverDrive clock-Doubling Processors(What is this?)\n      * Upgradable to 486DX2/66\n      * 4 MB RAM upgradable to 32 MB\n      * 8 KB internal cache\n      * 1.2 MB 5 1/4\" & 1.44 MB 3.5\" Disk Drives \n      * 213 MB Hard Drive\n      * 1024 x 768 VGA Video Resolution\n      * 1 MB Video RAM 256 Colors\n      * 6 Available 16-bit ISA expansion Slots\n      * One local bus socket (16-bit ISA Compatible)\n      * 4 5.25\" drive bays, 3 external\n      * One 25-pin Centronics type parallel port\n      * 2 RS-232C Serial Ports (9 & 25 pin)\n      * One 15-pin analog video connector\n      * One PS/2 Compatible mouse port\n      * 200 Watt power supply\n      * 101 key keyboard and mouse included\n      * Software includes Windows 3.1, Dos 5.0, Microsoft Works for Windows\n\n      The store wants $1200 (without monitor) for this.  Is it a good price?\n\n      Thanks!\n\n--\n***************************************************\n*                                                 *\n* Nicole Bell at Temple University Philly, PA     *\n*                                                 *\n* E-Mail Address: u083s121@astro.ocis.temple.edu  *\n* Prodigy: JPKN01A                                * \n*                                                 *\n*   \"If you're not part of the solution -         *\n*    you're part of the precipitate \"             *\n*         Steven Wright                           *\n***************************************************\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1841, "properties": {"category": "rec.motorcycles", "text": "From: ranck@joesbar.cc.vt.edu (Wm. L. Ranck)\nSubject: Re: Help with backpack\nOrganization: Virginia Tech, Blacksburg, Virginia\nLines: 20\nNNTP-Posting-Host: joesbar.cc.vt.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nSanjay Sinha (sanjay@kin.lap.upenn.edu) wrote:\n\n: The next question is how shall I carry the thing on the bike, given\n: the metal frame and all. I have a big backrest (approx 12\" high) and\n: was hoping that I would be able to bungee cord the backpack to the backrest.\n\n: Any one have any experiences on such experimentation?\n\nPut the pack on the pillion and bungee it to the backrest.\nIf that is not possible then you should be able to bungee it behind the\nbackrest, just make sure it doesn't bend or break anything like the rear\nfender or turnsignals.\n--\n\n*******************************************************************************\n* Bill Ranck                                          ranck@joesbar.cc.vt.edu *\n* \"Cars making a sudden U-turn are the most dangerous.  They may cut you off  *\n*  entirely, blocking the whole roadway and leaving you no place to go.\"      *\n*  pg. 21, MSF Motorcycle Operator Manual, sixth rev. 1991                    *\n*******************************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1842, "properties": {"category": "misc.forsale", "text": "From: unpingco@raman.ucsd.edu (Jose Unpingco)\nSubject: FOR SALE: ULTRABOTS PC GAME\nKeywords: ULTRABOTS,video game, pc game\nLines: 6\n\nElectronics Art's Ultrabots game for sale with book and original\n3.5\" disks in the original box. \n\n\t- $22 or best offer.\n\ncontact:  unpingco@raman.ucsd.edu                    \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1843, "properties": {"category": "rec.sport.baseball", "text": "From: jrogoff@scott.skidmore.edu (jay rogoff)\nSubject: Re: Infield Fly Rule\nOrganization: Skidmore College, Saratoga Springs NY\nLines: 16\n\nOne last infield fly question that has always puzzled me and hasn't\nyet been addressed.  I believe the rule also does *not* deal with this\nsituation:\n\nIf Infield Fly is declared and the ball is caught, runners can tag up\nand advance at their own risk, as on any fly ball.\n\nHowever, if the Infield Fly is *not* caught, at what point can a\nrunner legally leave his base w/o fear of being doubled off for\nadvancing too early?  When the\nball hits the ground?  When a fielder first touches the ball after it\nhits the ground?\n\nEnlightenment would be appreciated.\n\nJay   \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1844, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 25\n\nIn article <115565@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n>In article <1qi3l5$jkj@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>\n>>I hope an Islamic Bank is something other than BCCI, which\n>>ripped off so many small depositors among the Muslim\n>>community in the Uk and elsewhere.\n>\n>Grow up, childish propagandist.\n>\n\n  Gosh, Gregg.  I'm pretty good a reading between the lines, but\n  you've given me precious little to work with in this refutation.\n  Could you maybe flesh it out just a bit?  Or did I miss the full\n  grandeur of it's content by virtue of my blinding atheism?\n\n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1845, "properties": {"category": "sci.med", "text": "From: Daniel.Prince@f129.n102.z1.calcom.socal.com (Daniel Prince)\nSubject: Placebo effects\nLines: 17\n\nI know that the placebo effect is where a patient feels better or \neven gets better because of his/her belief in the medicine and \nthe doctor administering it.  Is there also an anti-placebo \neffect where the patient dislikes/distrusts doctors and medicine \nand therefore doesn't get better or feel better in spite of the \nmedicine?\n\nIs there an effect where the doctor believes so strongly in a \nmedicine that he/she sees improvement where the is none or sees \nmore improvement than there is?  If so, what is this effect \ncalled?  Is there a reverse of the above effect where the doctor \ndoesn't believe in a medicine and then sees less improvement than \nthere is?  What would this effect be called?  Have these effects \never been studied?  How common are these effects?  Thank you in \nadvance for all replies. \n\n... Information is very valuable but dis-information is MUCH more common.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1846, "properties": {"category": "sci.electronics", "text": "From: johnr@col.hp.com (John T. Rasper)\nSubject: ADCOM GTP500II IR sensor & repeater spec's?\nOrganization: HP Colorado Springs Division\nLines: 25\nNNTP-Posting-Host: hplsdvf.col.hp.com\n\nDoes anyone know the details of the interface (5 wire din) for the\nIR remote sensor & (2 wire IR repeater) for the ADCOM GTP-500II\npreamp?  The ADCOM part numbers are the XR-500II, SPM-500II, and \nIRA-500II.\n\nA cursory physical examination of the pre-amp connector indicates\nthat the connector (5 pin din) may provide: (Viewed from connector front)\n\n      |\n   5     1     (pin ?) +?v @ ???mA\n    4   2      (pin ?) +/-?v @ ???mA\n      3        (pin 3) Signal Ground\n               (pin ?) Demodulated signal ?V-pp, ? polarity, ? mA drive\n               (pin ?) Signal to drive repeater LED (drives through 150ohm\n                       resistor) ?V-pp\n\nI assume that the repeater connectors (mini-plugs) drive the IR repeater\nLED's directly.  True?\n\nCan anyone fill in the ?'s.  Thanks.\n\n--\nJohn Rasper                         Hewlett-Packard COL\njohnr@col.hp.com                    P.O. Box 2197\n(719) 590-5895                      Colorado Springs, CO 80901-2197\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1847, "properties": {"category": "sci.crypt", "text": "From: jfc@athena.mit.edu (John F Carr)\nSubject: Re: Don't fight Clipper Chip, subvert or replace it !\nOrganization: Massachusetts Institute of Technology\nLines: 22\nDistribution: na\nNNTP-Posting-Host: achates.mit.edu\n\nIn article <ygoland.735123994@wright>\n\tygoland@wright.seas.ucla.edu (The Jester) writes:\n\n>Ignoring for the moment the question of patented processes (such as\n>Public Keys), can the government stop me from using an encryption\n>process?\n\nFollowing precedent in other areas, the government is likely to put a tax on\nencryption technology.  Once the tax is imposed, it becomes a federal matter\nand suspicision of an unlicensed cryptographic tool will bring the BATF or\nFBI tossing grenades into your house.  (The BATF appears to be the logical\nagency to enforce such regulations: federal control over alocohol, tobacco,\nand firearms is similary based on taxes.)\n\nLook at the FCC: they won't allow sale of any receiever that can receive\nbands that are supposed to be private.  This has nothing to do with any\ndesire to prevent harmful interference. If the government can make a radio\nreceiver illegal what makes you think they won't claim the right to control\nencryption?\n\n--\n    John Carr (jfc@athena.mit.edu)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1848, "properties": {"category": "talk.politics.misc", "text": "From: tzs@stein2.u.washington.edu (Tim Smith)\nSubject: Re: Sick and tired (was Re: Bill Conklin (et al) 's letter)\nArticle-I.D.: shelley.1pqiubINNmht\nDistribution: na\nOrganization: University of Washington School of Law, Class of '95\nLines: 19\nNNTP-Posting-Host: stein2.u.washington.edu\n\nIn article <1993Apr4.054843.22307@mks.com> richw@mks.com (Rich Wales) writes:\n>Why can't you just cite us a case in which Joe Schmoe, a regular\n>employee earning regular wages from a regular company, refuses to pay\n>his income tax, gets hauled into court, is convicted of wilful tax eva-\n>sion, and then has his conviction overturned by the US Supreme Court\n>with a landmark 7-2 majority ruling that income tax is indeed totally\n>voluntary?  What, you say?  No such case exists?  Hmmm, I wonder why\n>not; why haven't you?\n\nUnless I've got my notes mixed up, 939 F.2d 499 comes close to this.\nRegular guy.  Blue-collar worker at a regular company.  Hauled into\ncourt.  Convicted.  Appeals to 7th circuit.  Makes all the right\narguments (his brief is cited by Mr. Teel as an example of a\n\"winning\" brief).  Shot down, 3-zip by the 7th circuit.  Appeals to\nthe Supreme Court.  And...\n\n...Certiorari denied.  Defendant goes to jail.  Oh well.\n\n--Tim Smith\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1849, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc.arc.nasa.gov (Curt Howland)\nSubject: Re: V-max handling request\nOrganization: NASA Science Internet Project Office\nLines: 14\n\nIn article <1993Apr15.222224.1@ntuvax.ntu.ac.sg>, \nba7116326@ntuvax.ntu.ac.sg writes:\n|> hello there\n|> ican anyone who has handson experience on riding the Yamaha v-max, pls kindly\n|> comment on its handling .\n\nI remember a commercial for some cheap, top-\nheavy import cage a while back, where the \ndriver says while wearing a stuck-up fake \nTV anouncers smile:\n\n\"It Really goes Straight!\"\n\nIt fits.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1850, "properties": {"category": "sci.electronics", "text": "From: acooney@netcom.com (Alan Cooney)\nSubject: Re: Membrane keypad with custom legend.\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: TIN [version 1.1 PL6]\nDistribution: usa\nLines: 21\n\nTry the folks at Dimolex Corp., La Crescenta, CA 91214.\nTheir number is (818) 957-7001.  They make membrane keypads\nthat are very flat, in layouts from 2 to 128 keys.  They\nhave standard models, tactile models (with stainless domes\nunder each key to make a 'click' you can feel), as well as\nbacklit models.  Some of them can even be cut with scissors\nto form a funky shape other than a rectangle.  Many of the\nmodels are available in a 'kit' which includes a bezel,\ncolored and plain key covers, and rub on lettering to make\nyour own layout.  One piece prices aren't cheap, though,\nas they want $10 for one four position pad *kit*, and $45\nfor a 40 position *kit*.\n\nI have no affiliation with Dimolex or any company connected\nwith them.  I *have* purchased a couple of keypads from them,\nand am pleased with what I got.\n\nCheers,\nAlan\n<acooney@netcom.com>\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1851, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: more DoD paraphernalia\nFrom: Stafford@Vax2.Winona.MSUS.Edu (John Stafford)\nDistribution: world\nOrganization: Winona State University\nNntp-Posting-Host: stafford.winona.msus.edu\nLines: 11\n\nIn article <1pppnrINNitg@cronkite.Central.Sun.COM>,\ndoc@webrider.central.sun.com (Steve Bunis) wrote:\n> \n> How about a decal of thicker vinyl? \n\n  How about a Geeky temporary tatoo?  I mean, why should the \n  RUBs be exempt from a little razzing.\n\n====================================================\nJohn Stafford   Minnesota State University @ Winona\n                    All standard disclaimers apply.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1852, "properties": {"category": "comp.windows.x", "text": "From: jlong@b4pps40.Berkeley.EDU (John Long)\nSubject: xman source\nReply-To: jlong@b4pps40.Berkeley.EDU (John Long)\nOrganization: bnr\nLines: 8\n\n   Where can I get xman source?  I would like to get the binaries for\nxman for an HP 9000/700, but I would settle for source.  \n\n--\n\nJohn O.F. Long, BNR, Inc.              |  \"If there is no God, who pops\njlong@bnr.ca                           |  up the next Kleenex?\"\n#include <standard_disclaimer.h>       |                  Art Hoppe\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1853, "properties": {"category": "sci.med", "text": "Subject: Why isolate it?\nFrom: chinsz@eis.calstate.edu (Christopher Hinsz)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 13\n\n\tDoes anyone on this newsgroup happen to know WHY morphine was\nfirst isolated from opium?  If you know why, or have an idea for where I\ncould look to find this info, please mail me.\n\tCSH\nany suggestionas would be greatly appreciated\n\n--\n \"Kilimanjaro is a pretty tricky climb. Most of it's up, until you reach\nthe very, very top, and then it tends to slope away rather sharply.\"\n\t\t\t\t\tSir George Head, OBE (JC)\n------------------------------------------------------------------------------\nLOGIC: \"The point is frozen, the beast is dead, what is the difference?\"\n\t\t\t\t\tGavin Millarrrrrrrrrr (JC)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1854, "properties": {"category": "sci.crypt", "text": "From: ckincy@cs.umr.edu (Charles Kincy)\nSubject: Bob \"Putz\" Cain  (was: Pgp and other BS)\nNntp-Posting-Host: next7.cs.umr.edu\nOrganization: University of Missouri - Rolla, Rolla, MO\nLines: 21\n\nIn article <1993Apr16.195927.3952@natasha.portal.com> bob@natasha.portal.com (Bob Cain) writes:\n>Charles Kincy (ckincy@cs.umr.edu) wrote:\n>: In article <1993Apr16.001321.3692@natasha.portal.com> bob@natasha.portal.com (Bob Cain) writes:\n[...]\n>: Oh, I see, flame someone, tell them that they are immature, tell them\n>: they are wrong, and then don't offer any proof for your assertions.\n>: \n>: You really *are* a putz.  Put up or shut up.\n>: \n>\n>I will provide any proof you wish in private.  Name it, dickhead.\n\nDon't bother.  <C5J0t.K52@blaze.cs.jhu.edu> has pretty much made\nyour pathetic ass superfluous.  You lose.  Pack up your bags and\ngo home.\n\n>Putz Cain\n\nWell, if the shoe fits....\n\ncpk\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.086+0000", "event": "documents", "entityId": 1855, "properties": {"category": "talk.politics.guns", "text": "From: brians@atlastele.com (Brian Sheets)\nSubject: Re: Constitutionality of 18 U.S.C 922(o)\nOrganization: Atlas Telecom Inc.\nDistribution: usa\nLines: 40\n\nIn article <1qksp9$l39@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>In article <1993Apr15.142322.1318@atlastele.com>, brians@atlastele.com (Brian Sheets) writes:\n>> and has no rights under the federal constitution. So, what I \n>> don't understand is how a statute like 922 can be enforced on \n>> an individual. So someone tell me how my government can tell\n>> me what I can or cannot possess. Just passing a law \n>                                   ^^^^^^^^^^^^^^^^^^\n>> does not make it LAW. \n>  ^^^^^^^^^^^^^^^^^^^^\n>Sorry, but I really can't figure out what you're trying to say, above.\n\nI guess what I am really asking, like I did above, how does my government\nwho is my servent, tell me the soveriegn what I can or cannot possess?\n\nIt would seem to me that the act of possessing a machine gun is no less\n\"criminal\", by definition, than the act of possessing a television set. I also would seem\nto me that it would be better to pass laws that say, that if I harm\nor kill someone with the machine gun or the television set that there \nwould be specific penalties for doing such. \n\n>\n>> Everyone knows that laws are constitional\n>> until it goes to court.\n\nSorry, I was close.\n\n>\n>Not exactly:\n\n>\"No on is bound to obey an uncontitutional law, and no courts are\n> bound to enforce it.\"\n> 16 Am Jur 2d, Sec 177\n>      late 2d, Sec 256\n\n\n-- \nBrian Sheets\t\t    _   /|  \t\"TRUCK?! What truck?\"\nSupport Engineer  \t    \\`o_O'    \t \nAtlas Telecom Inc. \t      ( ) \t   -Raiders of the Lost Ark\nbrians@atlastele.com           U\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1856, "properties": {"category": "rec.motorcycles", "text": "From: egreen@east.sun.com (Ed Green - Pixel Cruncher)\nSubject: Re: Observation re: helmets\nOrganization: Sun Microsystems, RTP, NC\nLines: 21\nDistribution: world\nReply-To: egreen@east.sun.com\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article 211353@mavenry.altcit.eskimo.com, maven@mavenry.altcit.eskimo.com (Norman Hamer) writes:\n> \n> The question for the day is re: passenger helmets, if you don't know for \n>certain who's gonna ride with you (like say you meet them at a .... church \n>meeting, yeah, that's the ticket)... What are some guidelines? Should I just \n>pick up another shoei in my size to have a backup helmet (XL), or should I \n>maybe get an inexpensive one of a smaller size to accomodate my likely \n>passenger? \n\nIf your primary concern is protecting the passenger in the event of a\ncrash, have him or her fitted for a helmet that is their size.  If your\nprimary concern is complying with stupid helmet laws, carry a real big\nspare (you can put a big or small head in a big helmet, but not in a\nsmall one).\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1857, "properties": {"category": "comp.windows.x", "text": "From: barmar@think.com (Barry Margolin)\nSubject: Re: Pulldown menu periodically hangs application on OpenWindows 3.0\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 22\nDistribution: inet\nNNTP-Posting-Host: gandalf.think.com\n\nIn article <1rgt23INNonv@ssdc.SSDC.Sterling.COM> rlee@ssdc.SSDC.Sterling.COM (Richard Lee) writes:\n>: A Motif 1.2.2 application will periodically hang when run against the\n>: OpenWindows 3. server (xnews).\n\n>I have seen the same problem using a SPARCStation 10, Solaris 2.1, OW 3.1.\n>In my case, it happens far more often than \"periodically\".\n\nI don't know if there's a corresponding patch for Solaris 2.1, but this\nsounds like the following bug which is supposedly fixed in 100492-06, the\nSolaris 1.x olwm Jumbo patch:\n\n\t1108642 - window system can hang in an errant pointer grab\n\nActually, I suspect that the OW 3.1 problem may be different, since the\nREADME file says that this patch is just a SunOS 4.x version of the OW 3.1\nolwm (but maybe that line came from an earlier version of the patch, and\nthey forgot to take it out in the -06 version).\n-- \nBarry Margolin\nSystem Manager, Thinking Machines Corp.\n\nbarmar@think.com          {uunet,harvard}!think!barmar\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1858, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bauer@informatik.uni-ulm.de (Christian Bauer)\nSubject: Re: Q700 at 34.5MHz, it's fine...\nNntp-Posting-Host: christian.informatik.uni-ulm.de\nOrganization: University of Ulm\nLines: 23\n\nIn article <lee5.734735026@husc.harvard.edu>, lee5@husc8.harvard.edu\n(Patrick Lee) wrote:\n> \n> menes@Informatik.TU-Muenchen.DE (Rainer Menes) writes:\n> \n> \n> >I wonder why nobody has ever tried to replace the oscilator only, like on a Mac IIsi. As I understand the Newer Variable Speed Overdrive is only hardware, and alittle init which is use to adjust the speed. My idear is to replace the cristal oscilator wit\n> h a socket and than I can change the oscilator very easy. This will be alot cheaper the the Newer Variable Speed Overdrive. I would gues only 20$ to 50$ are need to do the upgrade. \n> \n> >Does someone on the net ever tried this variant of speeding up the quadra 700??\nIn the May issue of C't Magazine was an article about upgrading 040 models\nof apple. They simply change crystals and add a fan.\nHammerhead: Centris 610 was able to work with 25 MHz (cooler prefered)\n            and for 1000 DM you get an 68040 (33MHz) which works with the\n            appropriate crystal at full speed. (extra cooling required)    \n            Centris 650 like Quadra 700 with extra cooling 33MHz works on\n            most machines and for real power enthusiasts they used a\n            Quadra 950 at 40 MHz wow! But for better description you should\n            get this issue of C't (a german PC magazine!) \n\nChristian Bauer\n\nbauer@informatik.uni-ulm.de\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1859, "properties": {"category": "sci.electronics", "text": "From: mneideng@thidwick.acs.calpoly.edu (Mark Neidengard)\nSubject: Re: What is Zero dB????\nArticle-I.D.: zeus.1993Apr06.232039.106816\nOrganization: Academic Computing Services, Cal Poly San Luis Obispo\nLines: 13\n\n>>: The Ohmite company was the first to characterize resistances by numbers, thus\n>: our use of the Ohms...\n>\n>I don't know about this one, but it doesn't sound right.\n\nDAMN RIGHT it doesn't!  Ohm's come from the greek letter omega, which\nis used for resistance/impedance.\n\nOf course, the original poster MAY have been being facetious (let's hope\nso).\n\nMark Neidengard\nmneideng@cosmos.acs.calpoly.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1860, "properties": {"category": "talk.religion.misc", "text": "From: bskendig@netcom.com (Brian Kendig)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: Starfleet Headquarters: San Francisco\nLines: 47\n\nbrian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615) writes:\n>\n>Brian Kendig contorts . . .\n>\n>>\tIt can not be a light which cleanses\n>>\tif it is tainted with the blood\n>>\tof an innocent man.\n>\n>. . . now showing how Brian Kendig is in the dark of the \n>most fundamental basic of the Old Testament.  Concepts like\n>santification and Lev. 17:11 must be foreign to you.  Too bad\n>you are not interested in understanding.  Too bad you prefer\n>blurting folly even to your own shame.\n\n  Lev 17:11: For the life of the flesh is in the blood, and I have given\n  it to you upon the altar to make atonement for your souls; for it is\n  the blood that makes atonement for the soul.\n\nThe Old Testament was very big on the \"eye for an eye\" business.  It\nmakes sense that Leviticus would support physical injury to \"repay\"\nmoral wrongdoing.\n\nI know about sanctification.  I've been taught all about it in Sunday\nschool, catechism class, and theology classes.  But even after all\nthat, I still can't accept it.  Maybe I'm still not understanding it,\nor maybe I'm just understanding it all too well.\n\nFrom the bottom of my heart I know that the punishment of an innocent\nman is wrong.  I've tried repeatedly over the course of several years\nto accept it, but I just can't.  If this means that I can't accept the\npremise that a god who would allow this is 'perfectly good', then so\nbe it.\n\n>     What ignorance you can show us next?  I guess I'll wait\n>till tomorrow.\n\nIf you can explain to me why the death of Jesus was a *good* thing,\nthen I would be very glad to hear it, and you might even convert me.\nBe warned, however, that I've heard all the most common arguments\nbefore, and they just don't convince me.\n\n-- \n_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n_/_/                            n'etre fait comme aucun de ceux qui existent.\n  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n /    is that it ends.                                           -- Rousseau\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1861, "properties": {"category": "rec.motorcycles", "text": "From: charlie@elektro.cmhnet.org (Charlie Smith)\nSubject: Re: Internet Discussion List\nOrganization: Why do you suspect that?\nLines: 17\n\nIn article <1qc5f0$3ad@moe.ksu.ksu.edu> bparker@uafhp..uark.edu (Brian Parker) writes:\n>  Hello world of Motorcyles lovers/soon-to-be-lovers!\n>I have started a discussion list on the internet for people interested in\n>talking Bikes!  We discuss anything and everything.  If you are interested in\n>joining, drop me a line.  Since it really isn't a 'list', what we do is if you \n>have a post, you send it to me and I distribute it to everyone.  C'mon...join\n>and enjoy!\n\nHuh?    Did this guy just invent wreck.motorcycles?\n\n\tCurious minds want to know.\n\n\nCharlie Smith   charlie@elektro.cmhnet.org  KotdohL  KotWitDoDL  1KSPI=22.85\n  DoD #0709   doh #0000000004  &  AMA, MOA, RA, Buckey Beemers, BK Ohio V\n              BMW K1100-LT,  R80-GS/PD,  R27,  Triumph TR6 \n                          Columbus, Ohio USA\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1862, "properties": {"category": "sci.med", "text": "From: harvey@oasys.dt.navy.mil (Betty Harvey)\nSubject: Re: Is MSG sensitivity superstition?\nReply-To: harvey@oasys.dt.navy.mil (Betty Harvey)\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 30\n\nIn rec.food.cooking, packer@delphi.gsfc.nasa.gov (Charles Packer) writes:\n>Is there such a thing as MSG (monosodium glutamate) sensitivity?\n>I saw in the NY Times Sunday that scientists have testified before\n>an FDA advisory panel that complaints about MSG sensitivity are\n>superstition. Anybody here have experience to the contrary?\n>\nI know that there is MSG sensitivity.  When I eat foods with MSG I get\nvery thirsty and my hands swell and get a terrible itchy rash. I first\nexperienced this problem when I worked close to Chinatown and ate Chinese\nfood almost everyday for lunch.  Now I can't tolerate MSG at all.  I can\nnotice immediately when I have eaten any.  I try to avoid MSG completely.\n\nInteresting fact though is that all three of my children started experiencing\nthe exact same rash on their hands.  I couldn't understand why because I\ndon't MSG in cooking and we ask for no MSG when we do eat Chinese (I still\nlove it).  After some investigation I knew that Oodles of Noodles where\none of their favorite foods.  One of the main ingredients in the flavor\npackets is MSG.  Now I look at all labels.  You would be surprised at\nplaces you find MSG.\n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\nBetty Harvey  <harvey@oasys.dt.navy.mil>     | David Taylor Model Basin\nADP, Networking and Communication Assessment | Carderock Division\n     Branch                                  | Naval Surface Warfare\nCode 1221                                    |   Center\nBethesda, Md.  20084-5000                    | DTMB,CD,NSWC   \n                                             |   \n(301)227-3379   FAX (301)227-3343            |          \n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\\\/\\/\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1863, "properties": {"category": "comp.windows.x", "text": "From: rainer@sun3.eeam.elin.co.at (Rainer Hochreiter)\nSubject: X-Terminal question\nOrganization: ELIN Energeanwendung Ges.m.b.H\nLines: 14\nNNTP-Posting-Host: sun3.eeam.elin.co.at\nX-Newsreader: TIN [version 1.1 PL9]\n\nA simple question to all the Xperts:\n\nIs it possible to use several X-Terminals\nwith only one mouse and one keyboard?\n\nAny suggestions?\n\nThanks, rainer.\n\n-- \nRainer Hochreiter                | Telephone: +43 (1) 89100 / 3961\nELIN-Energieanwendung GesmbH     | Telefax  : +43 (1) 89100 / 3387\nPenzingerstr. 76                 |\nA-1141 Wien, Austria/Europe      | E-mail   : rainer@elin.co.at\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1864, "properties": {"category": "misc.forsale", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: Catalog of Hard-to-Find PC Enhancements (Repost)\nOrganization: Computer Science Department,  Stanford University.\nLines: 33\n\n>andy@SAIL.Stanford.EDU (Andy Freeman) writes:\n>> >In article <C5ELME.4z4@unix.portal.com> jdoll@shell.portal.com (Joe Doll) wr\n>> >>   \"The Catalog of Personal Computing Tools for Engineers and Scien-\n>> >>   tists\" lists hardware cards and application software packages for \n>> >>   PC/XT/AT/PS/2 class machines.  Focus is on engineering and scien-\n>> >>   tific applications of PCs, such as data acquisition/control, \n>> >>   design automation, and data analysis and presentation.  \n>> >\n>> >>   If you would like a free copy, reply with your (U. S. Postal) \n>> >>   mailing address.\n>> \n>> Don't bother - it never comes.  It's a cheap trick for building a\n>> mailing list to sell if my junk mail flow is any indication.\n>> \n>> -andy sent his address months ago\n>\n>Perhaps we can get Portal to nuke this weasal.  I never received a \n>catalog either.  If that person doesn't respond to a growing flame, then \n>we can assume that we'yall look forward to lotsa junk mail.\n\nI don't want him nuked, I want him to be honest.  The junk mail has\nbeen much more interesting than the promised catalog.  If I'd known\nwhat I was going to get, I wouldn't have hesitated.  I wouldn't be\nsurprised if there were other folks who looked at the ad and said\n\"nope\" but who would be very interested in the junk mail that results.\nSimilarly, there are people who wanted the advertised catalog who\naren't happy with the junk they got instead.\n\nThe folks buying the mailing lists would prefer an honest ad, and\nso would the people reading it.\n\n-andy\n--\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1865, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Final Solution for Gaza ?\nOrganization: Aiken Computation Lab, Harvard University\nLines: 13\n\nIn article <2BDC2931.17498@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n\n>Certainly, the Israeli had a legitimate worry behind the action they took,\n>but isn't that action a little draconian?\n\n\tWhat alternative would you suggest be taken to safeguard the\nlives of Israeli citizens?\n\nAdam\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1866, "properties": {"category": "comp.windows.x", "text": "From: mccoy@gothamcity.jsc.nasa.gov (Daniel McCoy)\nSubject: Re: compiling on sun4_411\nReply-To: mccoy@gothamcity.jsc.nasa.gov\nOrganization: I-NET Inc.\nLines: 27\n\nIn article qfe00WB2QzZ7EZ@andrew.cmu.edu, Wilson Swee <ws8n+@andrew.cmu.edu> () writes:\n|>    I have a piece of X code that compiles fine on pmax-ul4, pmax_mach, as\n|>well as sun4_mach, but whenever it compiles on sun4_411, it gives me \n|>undefined ld errors:\n|>_sin\n|>_cos\n|>_pow\n|>_floor\n|>_get_wmShellWidgetClass\n|>_get_applicationShellWidgetClass\n|>\n|>The following libraries that I linked it to are:\n|>-lXaw -lXmu -lXt -lXext -lX11\n|>\n|>The makefile is generated off an imake template.\n|>Can anyone give me pointers as to what I'm missing out to compile on\n|>a sun4_411?\n\nWell, the first 2 are easy.  You need the math library.  Try adding -lm after\n-lX11.  Don't know if that's the whole problem but it's a start.\n\n---\nDaniel J. McCoy           |=> SPACE  <=|                   I-NET, Inc.\nNASA Mail Code PT4        |=> IS     <=|             TEL: 713-483-0950\nNASA/Johnson Space Center |=> OUR    <=|             FAX: 713-244-5698\nHouston, Texas 77058      |=> FUTURE <=| mccoy@gothamcity.jsc.nasa.gov\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1867, "properties": {"category": "rec.autos", "text": "From: wrat@unisql.UUCP (wharfie)\nSubject: Re: Where can I get a New York taxi?\nDistribution: na\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 20\n\nIn article <15631@ncrcan.Canada.NCR.CA> tnelson@ncrcan.Canada.NCR.CA (Tim Nelson) writes:\n>The older NY taxis were made by the Checker Car Company, and I would love\n>to have one.\n>Or, is the Checker Car Company still in business?\n\n\tChecker Motors went out of business in 1982.  It's hard to get\nold Checkers that are worth restoring, since almost every one was\na fleet vehicle that was driven into the ground.  If you can get a \nbody in decent shape the mechanicals should all be available _somewhere_ - \nChecker used whatever parts were around.  For instance, I had a Chevy\nstraight six and a GMC Truck radiator and a Ford rear in mine.\n\n>\n>The model that I am looking for is the Checker Marathon.\n\n\tActually, you want a Checker Special if you can find one.\n\n\tGood luck.  I'm sorry I let mine go...\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1868, "properties": {"category": "misc.forsale", "text": "From: cwilliam@tigger.cs.colorado.edu (Christopher Williamson)\nSubject: ** Oscilloscope for sale $99 + probes $25 ea. ** \nNntp-Posting-Host: tigger.cs.colorado.edu\nOrganization: University of Colorado at Boulder\nDistribution: na\nLines: 13\n\nI have a Tektronix T921 15Mhz scope for sale.  It is a nice, simple\nunit to learn on.  I used it while I was in school.  If you want one\nto play with at home, this is easy and inexpensive.  It has a nice\nhandle and is quite lightweight and easy to move around.\n\nI will consider selling the probes seperately for $25 ea.  They are HP\n10017A probes suitable for this type of scope.  The probes are NOT\nincluded in the price of $99 for the scope.\n\nIf you need more technical info, you will have to come look at it, as\nI am not a scope expert and what I have said is all I know.\n\nChris\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1869, "properties": {"category": "rec.motorcycles", "text": "From: asper@calvin.uucp (Alan E. Asper)\nSubject: Re: New to Motorcycles...\nOrganization: /usr/lib/news/organization\nLines: 25\nNNTP-Posting-Host: calvin.sbc.com\n\nIn article <1993Apr20.131800.16136@alw.nih.gov> gregh@niagara.dcrt.nih.gov (Gregory Humphreys) writes:\n>2)  What is buying a bike going to do to my insurance?  I turn 18 in \n>about a month so my parents have been taking care of my insurance up\n>till now, and I need a comprehensive list of costs that buying a \n>motorcycle is going to insure (I live in Washington DC if that makes\n>a difference)\n\nIt depends on the bike. Once you've found a bike you're interested in, call\nsome insurance companies for rates. Some bikes are much cheaper to insure than\nyou might think (my EX-500 only costs me $127/year in St. Louis; I'm 27)\n>\n>3)  Any recommendations on what I should buy/where I should look for it?\n\nFor a first bike, I recommend 500cc's or less. And a bike short enough to get\nboth feet on the ground when you stop.\n \nThe one piece of advice EVERYONE will give you is to take a Motorcycle Safety\nFoundation Rider's Course. See a dealer for details. In some states, completion\nof such a course can give you a break on insurance. It will also teach you\nto ride properly from the beginning, so you won't learn any bad habits.\n\nGood luck. Riding a motorcycle is the most fun you can have, naked or otherwise.\n\nAlan\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1870, "properties": {"category": "sci.med", "text": "From: grante@aquarius.rosemount.com (Grant Edwards)\nSubject: Re: Krillean Photography\nReply-To: grante@aquarius.rosemount.com (Grant Edwards)\nOrganization: Rosemount, Inc.\nLines: 41\nNntp-Posting-Host: aquarius\n\nstgprao@st.unocal.COM (Richard Ottolini) writes:\n\n: Living things maintain small electric fields to (1) enhance certain\n: chemical reactions, (2) promote communication of states with in a\n: cell, (3) communicate between cells (of which the nervous system is\n: a specialized example), and perhaps other uses.\n\nTrue.\n\n: These electric fields change with location and time in a large\n: organism.\n\nAlso True.\n\n\n: Special photographic techniques such as applying external fields in\n: Kirillian photography interact with these fields or the resistances\n: caused by these fields to make interesting pictures.\n\nNot really.  \n\nKirlian photography is taking pictures of the corona discharge from\nobjects (animate or inanimate).  The fields applied to the objects are\nmillions of times larger than any biologically created fields.  If you\nwant to record the biologically created electric fields, you've got to\nuse low-noise, high-gain sensors typical of EEGs and EKGs.  Kirlian\nphotography is just phun-with-physics type stuff (right up there with\nsoaking chunks of extra-fine steel wool in liquid oxygen then hitting\nthem with a hammer -- which, like a Kirlean setup, is fun but possibly\ndangerous).\n\n: Perhaps such pictures will be diagonistic of disease problems in\n: organisms when better understood. Perhaps not.\n\nProbably not.\n\n--\nGrant Edwards                                 |Yow!  Vote for ME -- I'm\nRosemount Inc.                                |well-tapered, half-cocked,\n                                              |ill-conceived and\ngrante@aquarius.rosemount.com                 |TAX-DEFERRED!\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1871, "properties": {"category": "rec.motorcycles", "text": "From: joe@rider.cactus.org (Joe Senner)\nSubject: Re: So That's Where the Oil in my K75 Went\nReply-To: joe@rider.cactus.org\nDistribution: world\nOrganization: NOT\nLines: 10\n\ntim@intrepid.gsfc.nasa.gov (Tim Seiss) writes:\n]Just wanted to say \"Thanks\" to everyone who sent me e-mail or\n]posted a reply to my question on the oil consumption in my K75S\n\nso what did _you_ decide?\n\n-- \nJoe Senner                                                joe@rider.cactus.org\nAustin Area Ride Mailing List                            ride@rider.cactus.org\nTexas SplatterFest Mailing List                          fest@rider.cactus.org\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1872, "properties": {"category": "sci.space", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: Shuttle oxygen (was Budget Astronaut)\nLines: 24\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nIn article <1qn044$gq5@access.digex.net>, prb@access.digex.com (Pat) writes:\n>I thought that under emergency conditions,  the STS  can\n>put down at any good size Airport.  IF it could take a C-5 or a\n>747, then it can take an orbiter.   You just need a VOR/TAC\n>\n>I don't know if they need ILS.\n\nDFW was designed with the STS in mind (which really mean very little).  Much of\ntheir early PR material had scenes with a shuttle landing and two or three\nothers pulled up to gates.  I guess they were trying to stress how advanced the\nairport was.\n\nFor Dallas types:  Imagine the fit Grapevine and Irving would be having if the\nshuttle WAS landing at DFW. (For the rest, they are currently having some power\nstruggles between the airport and surrounding cities).\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\npyron@skndiv.dseg.ti.com          |solutions, not gestures.\nPADI DM-54909                     |\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1873, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gt4356c@prism.gatech.EDU (James Dean Barwick)\nSubject: Re: Permanaent Swap File with DOS 6.0 dbldisk\nDistribution: git\nOrganization: Georgia Institute of Technology\nLines: 58\n\nIn comp.os.ms-windows.misc you write:\n\n>While reading through the DOS 6.0 book, it states that the Windows permanaent swap file will not work correctly when placed on a compressed drive.  To make things compatable,\n>I removed my Permanent swap file before starting the upgrade.  However, when all the dust settled, and I go into windows, it says that the temporary swap file is right where it always was, in the Windows directory.  My question is:  How come the temporary swap files works OK with a compressed drive, and the permanent one doesn't?\n\nyou might want to look in windows FAQ for this one, but here is my best\nexplanation.  But I can't guarantee that I'm not way off base...\n\nThe permenant swap file is read/written to by windows by talking\ndirectly to the hard disk controller card.  The controller card must\nuse the protocal set up by western digital (or something like that).\nWindows creates a file called spart.par in your windows directory that\npoints to that file.  It then uses the physical information about your\ndisk to index to information in that file.\n\ncompressed disks are actually \"logical\" disks.  These disks have different\ncharacteristics than the actual physical disk.  Furthermore, the information\non the compressed disks must be uncompressed before it is used.  (i.e it must\ngo through the decompression program that traps disk reads at the operating\nsystem level or the BIOS level).  Because of this \"inbetween\" program, windows\ncannot use direct methods to read from the \"logical\" disk.\n\na permenant swap file is only there to \"reserve\" an area of the disk that\nwindows can use and to block that space from DOS.  Windows would theoretically\nnot even have to access the file from DOS to use that disk space. (I don't\nknow if it does or doesn't...but it checks for it somewhere everytime you\nboot windows.)\n\na temporary swap file is just a normal DOS file that is accessed by windows\nvia DOS and the BIOS.  If a disk compression program or other TSR is loaded\nthe file access must go through DOS...TSR'S (disk compression)...and BIOS in\norder to be access. (i.e. NEVER USE A TEMPORARY SWAP FILE...NEVER)\n\nmore on permenent swap files...\n\ni'm sure everyone who has an uncompressed part of their compressed hard disk\nhas seen the message \"you have selected a swap file greater than the suggested\nsize...windows will only use the size suggested...do you wan't to create this\nswap file anyway\" or something like that.\n\nwell, a friend of mine (ROBERT) called microsoft and asked them what and why.\nwhat they said is that windows checks the amount of free disk space and\ndivides that number by 2.  Then it checks for the largest contiguous block\nof free disk space.  Windows then suggests the smaller of the two numbers.\n\nThey also said that under absolutely no circumstances...NONE!...will windows\nuses a swap file larger than the suggested size.  Well...that's what he \nsaid!\n\nI call bull@#$#.  If this is true why does windows report the memory is\navailable to me if it's not going to use it?\n\nany takers?\n\nJames\n\n(if this doesn't get to the net, will someone post it for me?  thanks)\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1874, "properties": {"category": "rec.sport.baseball", "text": "From: js8484@albnyvms.bitnet\nSubject: Re: Pleasant Yankee Surprises\nReply-To: js8484@albnyvms.bitnet\nOrganization: University of Albany, SUNY\nLines: 89\n\nIn article <120399@netnews.upenn.edu>, sepinwal@mail.sas.upenn.edu (Alan Sepinwall) writes:\n>\n>Some pleasant (and then some not so pleasant) surprises about the 1993\n>edition of the Bronx Bombers so far.\n>\n>First, the pleasant:\n>\n>\t1)Spike Owen.  All through spring training, this guy was \n>\t  looking like the second coming of Mike Gallego, but with\n>\t  even worse hitting. Now the guy is third in the major leagues\n>\t  in BA, and he's ranked pretty high in total hits and runs\n>\t  scored. I know it's still early in the season, but he and \n>\t  Pat Kelly (more on him in a minute) have provided a lot of \n>\t  spark at the bottom of the order that's given the big guys\n>\t  (Mattingly, Tartabull, O'Neill) plenty of RBI opportunities.\n>\t  Let's hope he keeps this up.\n>\n>\t2)Pat Kelly. The guy is finally showing some of the ability\n>\t  that led Stick Michael to label him a \"star for the 90s\".\n>\t  I wouldn't go that far, but Kelly looks infinitely improved\n>\t  at bat (I guess the tips he took from Boggs in spring training\n>\t  really paid off. Huh! And here I thought Boggs would never\n>\t  do anything to help anybody besides himself!). And his glove,\n>\t  like always, has been terrific (he and Mattingly comprise the\n>\t  best defensive right side of the infield in all of baseball IMHO).\n>\n>\t3)Paul O'Neill. We had to get rid of Roberto Kelly, partly \n>\t  because he was under too much pressure in NY to be the next\n>\t  Barry Bonds (he won't do that in Cincy, either), and partly\n>\t  because he had this real unprofessional tendency to give up\n>\t  in the second half of the year. I just felt that we could've\n>\t  gotten more for him than O'Neill. Well, so far, O'Neill is\n>\t  turning out just fine. He looks like he should be able to\n>\t  duplicate (if not surpass) Mel Hall's numbers from last year,\n>\t  and he keeps opposing pitchers from pitching around Tartabull.\n>\t  Now, if only Buck would play him against lefties some more to \n>\t  see what he can do!\n>\n>\t4)Wickman. A friend made a comparison between Wickman and Jack\n>\t  Morris - they never have impressive stats but they always\n>\t  find some way to win (although Morris seems to be losing that\n>\t  ability). I figured that Wickman would be the least important\n>\t  part of the Steve Sax trade (best trade since we got that Ruth\n>\t  guy), maybe winding up as a good middle reliever. But I like what\n>\t  I've seen so far. He doesn't pitch pretty, but he gets the job done.\n>\n>\t5)Key. What's going on here? Key was just supposed to provide\n>\t  the rotation with some stability (you know, shore up the left\n>\t  side, provide experience, get maybe 15 wins), and here this guy\n>\t  is *dominating* everybody he faces! Who needs Maddux or Cone (0-2)?\n>\t  I'll take Key any day.\n>\n>And now, the not so pleasant surprises:\n>\n>\t1)Spike Owen. Sure, he's hitting like crazy, but the guy *cannot*\n>\t  field to save his life! And they said he was brought in to\n>\t  provide defense? Velarde, Stankiewicz, and even Silvestri\n>\t  are better defensively than Owen.\n\n        Remember - it's still early. Look for his offense to tail off, and his\ndefense to improve (hopefully). He has that rep because I heard that either\nlast year, or over the last 5 years, or something like that - he has the third\nhighest fielding percentage among major league shortstops - behind C.R. and\nTony (I'm not gonna help this sorry Mets team at all) Fernandez. I do agree\nthough that he has not looked all that impressive in the field thus far.\n>\n>\t2)Tartabull. The book on Tartabull was, keep him healthy and\n>\t  he'll produce. Well, he hasn't done too much so far. Sure. he's\n>\t  hit a few homers, but those were all solo shots, and he hasn't\n>\t  gotten any of the \"big\" RBIs that your cleanup man is supposed\n>\t  to give you. Then again, he had a slow start last year (once he\n>\t  got off the DL, that is) and turned into a one-man wrecking crew\n>\t  late in the year, so we'll see.\n>\n>\t3)The Bullpen. UGH!!!!!What happened? We were supposed to have\n>\t  one of the most solid pens in the majors! Meanwhile, the pen\n>\t  has already blown three saves (maybe more - I haven't checked).\n>\t  The great Howe/Farr lefty/righty tandem? Farr's ERA is in the\n>\t  20s or 30s, and Howe's is.....infinite. (I didn't think such\n>\t  a thing was possible, but it is). Hopefully, they'll get their\n>\t  acts together, or else Buck's gonna burn out the starters\n>\t  for fear that the bullpen'll blow a lead.\n>\n>In the immortal words of the Scooter, \"Holy Cow, Seaver! That Johnny Key\n>guy can pitch, can't he?\"\n>\n>See you in the Series!\n>\n>-Alan\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1875, "properties": {"category": "sci.electronics", "text": "From: umlangston@msuvx1.memst.edu (Mark C. Langston)\nSubject: _negative_ logic high?\nSummary: help!!!\nDistribution: world\nOrganization: Memphis State University\nLines: 28\n\n  This may sound like a simple-minded question, but this is the first time\nI've ever had a need for this:\n\nI've been designing some relatively simple chip circuits based on things\nlike photoresistors (you know, no light to photoresistor, emit a logic\nhigh, etc.).\n\nAnyway, I've got some servos lying around, and I wanted to do some things\nwith them using digital logic.  I know all about having to pulse the signal\nand everything, I just have one problem:  I'm assuming I need a negative\n(yes, negative) logic high to get the thing to turn in the direction \nopposite the direction it would turn under normal logic high.\n\nIs a negative logic high (I've seen this in schematics) the same thing as\nan active low, or what?  I'm not using a bi-polar power source, so how\nwould I get a negative logic high out of this thing?  I need to have all\nthree signals available:  Logic high, logic low, and negative logic high.\n\nAny help would be greatly appreciated.  Also, please reply via email, as I\nnever seem to have time to read this (or any other) group lately.\n\nThanks much,\n-mark\n\numlangston@memstvx1.memst.edu\n\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1876, "properties": {"category": "rec.sport.baseball", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: Why Spanky?\nOrganization: Adobe Systems Incorporated\nLines: 18\n\nIn article <1ql93bINN1s5@postoffice1.psc.edu> boone@psc.edu (Jon Boone) writes:\n>       Spanky is too slow!  If he were quicker, he would still be here.\n>But with Slaught and Tom Prince, they didn't want to lose Prince in order\n>to bring up that 11th pitcher.  Slaught is about as good as Spanky and\n>Prince is coming along nicely!\n\nTom Prince is a 28 year old no-hit catcher.  Think of him as a young Dann\nBilardello.  I can't begin to fathom why the Pirates have been so afraid of\nlosing this guy, who's been in AAA most of the last 5 seasons.  The Pirates\nreleased Kirk Gibson last year because Prince was out of options, then\neventually sent Prince down anyway, and he cleared waivers without a peep.\nHe's another year older, and still can't hit; why do they think he wouldn't\nclear waivers now?  Why would they care?\n\nSherri Nichols\nsnichols@adobe.com\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1877, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Albert Sabin\nFrom: rfox@charlie.usd.edu (Rich Fox, Univ of South Dakota)\nReply-To: rfox@charlie.usd.edu\n <1993Apr7.073926.9874@engage.pko.dec.com> \n <1993Apr10.213547.17644@rambo.atlanta.dg.com> \n <1993Apr11.162936.18734@zeus.franklin.edu>,<1993Apr15.225657.17804@rambo.atlanta.dg.com>\nOrganization: The University of South Dakota Computer Science Dept.\nNntp-Posting-Host: charlie\nLines: 71\n\nIn article <1993Apr15.225657.17804@rambo.atlanta.dg.com>, wpr@atlanta.dg.com (Bill Rawlins) writes:\n>|> >|> \n>|> However, one highly biased account (as well as possibly internally \n>|> inconsistent) written over 2 mellenia ago, in a dead language, by fanatic\n>|> devotees of the creature in question which is not supported by other more \n>|> objective sources and isnt  even accepted by those who's messiah this creature \n>|> was supposed to be, doesn't convince me in the slightest, especially when many\n>|> of the current day devotees appear brainwashed into believing this pile of \n>|> guano...\n>\n>       Since you have referred to the Messiah, I assume you are referring\n>        to the New Testament.  Please detail your complaints or e-mail if\n>        you don't want to post.  First-century Greek is well-known and\n>        well-understood.  Have you considered Josephus, the Jewish Historian,\n>        who also wrote of Jesus?  In addition, the four gospel accounts\n>        are very much in harmony.  \n\nBill, I have taken the time to explain that biblical scholars consider the\nJosephus reference to be an early Christian insert.  By biblical scholar I mean\nan expert who, in the course of his or her research, is willing to let the\nchips fall where they may.  This excludes literalists, who may otherwise be\ndefined as biblical apologists.  They find what they want to find.  They are\nnot trustworthy by scholarly standards (and others).\n\nWhy an insert?  Read it - I have, a number of times.  The passage is glaringly\nout of context, and Josephus, a superb writer, had no such problem elsewhere \nin his work.  The passage has *nothing* to do with the subject matter in which \nit lies.  It suddenly appears and then just as quickly disappears.\n\nUntil you can demonstrate how and why the scholarly community is wrong about\nthe Josephus insert, your \"proof\" is meaningless and it should not be repeated\nhere.  What's more, even if Josephus happened to be legitimate, it would \"prove\"\nnothing.  Scholars speak of the \"weight of evidence.\"  Far more independent\nevidence would be required to validate your claim.  Until forthcoming, your\nbelief is based on faith.  That's OK, but you exceed your rights when you pass\nfaith off as fact.\n\nAs for the gospels, there are parallels, but there are also glaring\ninconsistencies and contradictions.  Shouldn't a perfect canon be perfect? \nShouldn't there be absolutely no room for debate?  I suggest you read _Gospel \nFictions_ by Randel Helms, and _The Unauthorized Version_ by Robin Fox (for \nHerb Huston, no known kinship or familial relationship, but we do indeed share \nan evolutionary ancestry).\n\nThe fact that there are inconsistencies, gaps and contradictions does not deny\nyour position.  On the other hand, neither do the gospels \"prove\" your faith. \nIndependent evidence is necessary, and I know of none (which we have already\ndiscussed, and so far you have not provided any).  Until then, its faith. \nMoreover, you have committed a fundamental error in logic.  You have attempted\nto \"prove\" your claim with that which you want to prove.  Its no different than\nsaying \"I am right because I say so.\"  \n\nYour logic is full of circles.  It reminds me a bit of the 1910 Presbyterian \nGeneral Assembly.  The assembly defined five fundamentals (this is where\n\"fundamentalist\" came from) of orthodox Protestant Christianity, to wit: 1)\nJesus performed miracles, 2) Jesus was born of a virgin, 3) Jesus was bodily\nresurrected, 4) Jesus' crucifixion atoned for human sin, and - here is the\nclincher - 5) the bible is the inerrant word of God.  Presbyterians construe\n\"inerrant\" broadly as spritually inerrant.  Fundamentalists take the\nfirst four as literally true, and then validate them with a literally inerrant\nbible, which contains the first four, and which is the only thing known to \ncontain the first four.  \n\nSmoke and mirrors and wands and hand waving if ever there was!\n\nIts faith, Bill.  You don't have any more or better truths than anyone else. \nWhatever works for you.  Just don't foist it on others. \n\nRegards,\n\nRich Fox, Anthro, Usouthdakota\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.087+0000", "event": "documents", "entityId": 1878, "properties": {"category": "rec.sport.hockey", "text": "From: c5ff@jupiter.sun.csd.unb.ca (COOK  Charlie)\nSubject: NHL Summary parse results for games played Thur, April 15, 1993\nOrganization: University of New Brunswick\nLines: 278\n\nPhiladelphia                     1 2 4--7\nBuffalo                          0 3 1--4\nFirst period\n     1, Philadelphia, Recchi 52 (Galley, Lindros) 0:18.\nSecond period\n     2, Philadelphia, Hawgood 11 (Dineen, Eklund) pp, 2:15.\n     3, Philadelphia, Dineen 33 (McGill) sh, 5:40.\n     4, Buffalo, Barnaby 1 (Hawerchuk, Smehlik) pp, 7:48.\n     5, Buffalo, Wood 18 (LaFontaine, Ledyard) pp, 17:34.\n     6, Buffalo, Mogilny 75 (Hawerchuk, Carney) pp, 18:56.\nThird period\n     7, Philadelphia, Eklund 11 (Dineen, Beranek) 4:42.\n     8, Buffalo, Mogilny 76 (Errey, LaFontaine) 5:24.\n     9, Philadelphia, Dineen 34 (Brind'Amour) pp, 6:44.\n     10, Philadelphia, Dineen 35 (Brind'Amour, Galley) sh, 8:39.\n     11, Philadelphia, Acton 8 (Dineen, Brind'Amour) 19:48.\n\nPhiladelphia: 7    Power play: 5-2   Special goals:  pp: 2  sh: 2  Total: 4\nScorer            G    A   Pts\n---------------  ---  ---  ---\nActon              1    0    1\nBeranek            0    1    1\nBrind'Amour        0    3    3\nDineen             3    3    6\nEklund             1    1    2\nGalley             0    2    2\nHawgood            1    0    1\nLindros            0    1    1\nMcGill             0    1    1\nRecchi             1    0    1\n\nBuffalo: 4    Power play: 10-3\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBarnaby            1    0    1\nCarney             0    1    1\nErrey              0    1    1\nHawerchuk          0    2    2\nLaFontaine         0    2    2\nLedyard            0    1    1\nMogilny            2    0    2\nSmehlik            0    1    1\nWood               1    0    1\n\n-----------------------------------------\nMinnesota                        1 1 1--3\nDetroit                          0 2 3--5\nFirst period\n     1, Minnesota, McPhee 18 (Ludwig) 1:23.\nSecond period\n     2, Minnesota, Dahlen 34 (Courtnall, Gagner) pp, 0:31.\n     3, Detroit, Drake 18 (Howe, Ogrodnick) 9:14.\n     4, Detroit, Ysebaert 34 (Lidstrom, Howe) pp, 17:37.\nThird period\n     5, Detroit, Ciccarelli 41 (Coffey, Chiasson) pp, 0:32.\n     6, Detroit, Kennedy 19 (Burr, Probert) 3:42.\n     7, Detroit, Yzerman 58 (Ciccarelli, Gallant) 6:17.\n     8, Minnesota, Dahlen 35 (Courtnall, Gagner) 19:11.\n\nDetroit: 5    Power play: 4-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBurr               0    1    1\nChiasson           0    1    1\nCiccarelli         1    1    2\nCoffey             0    1    1\nDrake              1    0    1\nGallant            0    1    1\nHowe               0    2    2\nKennedy            1    0    1\nLidstrom           0    1    1\nOgrodnick          0    1    1\nProbert            0    1    1\nYsebaert           1    0    1\nYzerman            1    0    1\n\nMinnesota: 3    Power play: 2-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nCourtnall          0    2    2\nDahlen             2    0    2\nGagner             0    2    2\nLudwig             0    1    1\nMcPhee             1    0    1\n\n-----------------------------------------\nEdmonton                         0 0 0--0\nWinnipeg                         1 2 0--3\nFirst period\n     1, Winnipeg, Shannon 20 (Steen, Davydov) pp, 2:08.\nSecond period\n     2, Winnipeg, Selanne 76 (Olausson) 5:25.\n     3, Winnipeg, Zhamnov 25 (Selanne) 19:42.\nThird period\n     No scoring.\n\nWinnipeg: 3    Power play: 6-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nDavydov            0    1    1\nOlausson           0    1    1\nSelanne            1    1    2\nShannon            1    0    1\nSteen              0    1    1\nZhamnov            1    0    1\n\nEdmonton: 0    Power play: 3-0\nNo scoring\n\n-----------------------------------------\nToronto                          1 1 0--2\nChicago                          0 2 1--3\nFirst period\n     1, Toronto, Baumgartner 1 (unassisted) 18:40.\nSecond period\n     2, Chicago, Roenick 50 (Murphy, Chelios) 1:29.\n     3, Toronto, Andreychuk 55 (Mironov, Lefebvre) 13:22.\n     4, Chicago, Murphy 7 (Roenick, Chelios) pp, 19:05.\nThird period\n     5, Chicago, Matteau 15 (unassisted) 10:51.\nError: Power play goal mismatch. Assuming calc value.\nError: Team: Toronto  Calc: 0  Read: 1\n\nChicago: 3    Power play: 7-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nChelios            0    2    2\nMatteau            1    0    1\nMurphy             1    1    2\nRoenick            1    1    2\n\nToronto: 2    Power play: 3-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAndreychuk         1    0    1\nBaumgartner        1    0    1\nLefebvre           0    1    1\nMironov            0    1    1\n\n-----------------------------------------\nFirst period\n     1, St Louis, Shanahan 50 (Brown, Felsner) 10:44.\n     2, St Louis, Miller 23 (Bassen, Brown) 19:38.\n     3, St Louis, Bassen 8 (Zombo) 19:48.\nSecond period\n     4, St Louis, Bassen 9 (Hedican, Miller) 0:14.\n     5, St Louis, Miller 24 (Zombo, Hedican) 11:09.\n     6, Tampa Bay, Maltais 7(Hamrlik) 11:27.\n     7, Tampa Bay, Bergland 3 (Hervey, Gilhen) 17:16.\n     8, St Louis, Shanahan 51 (Emerson) 19:38.\nThird period\n     9, Tampa Bay, Creighton 19 (Bergland, Bergevin) 0:40.\n     10, Tampa Bay, Chambers 10 (Zamuner, Cole) 10:37.\n     11, Tampa Bay, Cole 12 (Beers, Bradley) 11:58.\n\nSt Louis: 6    Power play: 4-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBassen             2    1    3\nBrown              0    2    2\nEmerson            0    1    1\nFelsner            0    1    1\nHedican            0    2    2\nMiller             2    1    3\nShanahan           2    0    2\nZombo              0    2    2\n\nTampa Bay: 5    Power play: 3-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBeers              0    1    1\nBergevin           0    1    1\nBergland           1    1    2\nBradley            0    1    1\nChambers           1    0    1\nCole               1    1    2\nCreighton          1    0    1\nGilhen             0    1    1\nHamrlik            0    1    1\nHervey             0    1    1\nMaltais            1    0    1\nZamuner            0    1    1\n\n-----------------------------------------\nSan Jose                         0 1 2--3\nCalgary                          0 4 3--7\nFirst period\n     No scoring.\nSecond period\n     1, San Jose, Garpenlov 22 (Odgers, Gaudreau) pp, 3:37.\n     2, Calgary, Nieuwendyk 38 (MacInnis, Suter) pp, 5:26.\n     3, Calgary, Ranheim 21 (Otto, Suter) 10:43.\n     4, Calgary, Yawney 1 (Nieuwendyk, Roberts) 11:26.\n     5, Calgary, Berube 4 (Paslawski, Skrudland) 13:45.\nThird period\n     6, San Jose, Wood 1 (Odgers, Kisio) 8:00.\n     7, Calgary, Reichel 40 (unassisted) 9:26.\n     8, Calgary, Roberts 38 (Musil, Paslawski) pp, 12:27.\n     9, San Jose, Kisio 26 (unassisted) 13:10.\n     10, Calgary, Paslawski 18 (Ashton, Stern) 16:16.\n\nCalgary: 7    Power play: 4-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAshton             0    1    1\nBerube             1    0    1\nMacInnis           0    1    1\nMusil              0    1    1\nNieuwendyk         1    1    2\nOtto               0    1    1\nPaslawski          1    2    3\nRanheim            1    0    1\nReichel            1    0    1\nRoberts            1    1    2\nSkrudland          0    1    1\nStern              0    1    1\nSuter              0    2    2\nYawney             1    0    1\n\nSan Jose: 3    Power play: 3-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nGarpenlov          1    0    1\nGaudreau           0    1    1\nKisio              1    1    2\nOdgers             0    2    2\nWood               1    0    1\n\n-----------------------------------------\nVancouver                        1 2 5--8\nLos Angeles                      2 3 1--6\nFirst period\n     1, Los Angeles, Robitaille 63 (Gretzky, Sandstrom) 1:39.\n     2, Vancouver, Babych 3 (Craven, Nedved) pp, 9:43.\n     3, Los Angeles, Sandstrom 25 (Gretzky, Robitaille) 10:06.\nSecond period\n     4, Vancouver, Linden 32 (Ronning, Courtnall) pp, 0:54.\n     5, Vancouver, Ward 22 (Hunter, Nedved) 1:24.\n     6, Los Angeles, Gretzky 16 (Sandstrom, Robitaille) 6:57.\n     7, Los Angeles, Zhitnik 12 (Kurri, Robitaille) pp, 14:02.\n     8, Los Angeles, Millen 23 (Hardy) pp, 16:57.\nThird period\n     9, Vancouver, Ronning 27 (Dirk) 5:28.\n     10, Vancouver, Ronning 28 (Courtnall, Linden) pp, 11:15.\n     11, Vancouver, Linden 33 (Courtnall, Ronning) 11:27.\n     12, Los Angeles, Donnelly 29 (Millen, Granato) pp, 14:35.\n     13, Vancouver, Courtnall 31 (Ronning, Ratushny) 14:54.\n     14, Vancouver, Ronning 29 (Linden, Diduck) en, 18:47.\n\nVancouver: 8    Power play: 6-3   Special goals:  pp: 3  en: 1  Total: 4\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBabych             1    0    1\nCourtnall          1    3    4\nCraven             0    1    1\nDiduck             0    1    1\nDirk               0    1    1\nHunter             0    1    1\nLinden             2    2    4\nNedved             0    2    2\nRatushny           0    1    1\nRonning            3    3    6\nWard               1    0    1\n\nLos Angeles: 6    Power play: 10-3\nScorer            G    A   Pts\n---------------  ---  ---  ---\nDonnelly           1    0    1\nGranato            0    1    1\nGretzky            1    2    3\nHardy              0    1    1\nKurri              0    1    1\nMillen             1    1    2\nRobitaille         1    3    4\nSandstrom          1    2    3\nZhitnik            1    0    1\n\n-----------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1879, "properties": {"category": "rec.motorcycles", "text": "From: exb0405@csdvax.csd.unsw.edu.au\nSubject: extraordinary footpeg engineering\nArticle-I.D.: csdvax.1993Apr15.001813.3907\nOrganization: University of New South Wales\nLines: 29\n\nOkay DoD'ers, here's a goddamn mystery for ya !\n\nToday I was turning a 90 degree corner just like on any other day, but there\nwas a slight difference-  a rough spot right in my path caused the suspension\nto compress in mid corner and some part of the bike hit the ground with a very\ntangible \"thunk\".  I pulled over at first opportunity to sus out the damage. \nMy bike is a Kawasaki GPX250R with footpegs that are hinged and sprung such\nthat they fold upward and backward on contact with ground etc., and on the\nlower extreme corner of each peg there is mounted a \"bank-follower\", or a\nlittle stud that theoretically is the first bit to hit the ground in a\n100%-banked turn.  The stud is mounted on the footpeg by a threaded bit about 7\nmm long, which screws into a threaded hole in the footpeg.  Now for the\nmystery.\n\nThe stud on the side of the bike that clunked when I turned was absent.  I'm\nfairly sure it was there before the event.  There was no damage to the end of\nthe footpeg where the stud would ordinarily have been.  In fact, the thread in\nthe hole in the footpeg was perfectly intact, with no evidence of something\nhaving been forcefully ripped out of it only moments previously.  \n\nOkay all you engineering types, how the f**k do you explain this ?  How can you\nrip a tightly fitting steel thread out of a threaded hole (in alloy) without\ndamaging the thread in the hole ?  Is this some sort of hi-tech design thingo\nthat Kawasaki never mentioned, like that the end of the footpeg suddenly\nchanges phase on impact, to let the stud rip out, then changes back to a solid\n?  I'm quite amazed at how this could have happened.  In the meantime, life\ngoes on, without a left-hand bank-follower.\n\nBarry Manor DoD# 620 confused accidental peg-scraper\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1880, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: Re: Need phone number for Western Digital (ESDI problem)\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 5\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nWestern Digital 1-800-832-4778.....Sam\n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1881, "properties": {"category": "sci.space", "text": "From: stephens@geod.emr.ca (Dave Stephenson)\nSubject: Re: Old Spacecraft as NAvigation Beacons!\nNntp-Posting-Host: ngis.geod.emr.ca\nOrganization: Dept. of Energy, Mines, and Resources, Ottawa\nLines: 21\n\nnsmca@aurora.alaska.edu writes:\n\n>Other idea for old space crafts is as navigation beacons and such..\n>Why not?? If you can put them on \"safe\" \"pause\" mode.. why not have them be\n>activated by a signal from a space craft (manned?) to act as a naviagtion\n>beacon, to take a directional plot on??\n\n>Wierd or what?\n>==\n>Michael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\nThere is a whole constellation of custom built navigation beacon satellites\nin the process of being phased out right now. The TRANSIT/OSCAR satellites\nare being replaced by GPS. Or were you thinking of deep space navigation,\nwhich is best done with doppler/VLBI/ stellar measurements. I do not think\nadditional radio beacons would help much.\n--\nDave Stephenson\nGeological Survey of Canada\nOttawa, Ontario, Canada\nInternet: stephens@geod.emr.ca\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1882, "properties": {"category": "talk.religion.misc", "text": "From: af664@yfn.ysu.edu (Frank DeCenso, Jr.)\nSubject: Re: *** The list of Biblical contradictions\nOrganization: Youngstown State/Youngstown Free-Net\nLines: 12\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nSomeone posted a list of x number of alleged Bible contradictions.  As Joslin\nsaid, most people do value quantity over quality.  Dave Butler posted some good\nquality alleged contradictions that are taking a long time to properly exegete.\n\nIf you want a good list (quantity) - _When Critics Ask, A Popular Handbook On\nBible Difficulties_ by Dr. Norman Geisler deals with over 800 alleged contradictions.\n\nFrank\n-- \n\"If one wished to contend with Him, he could not answer Him one time out\n of a thousand.\"  JOB 9:3\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1883, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: storm@cs.mcgill.ca (Marc WANDSCHNEIDER)\nSubject: Re: Know anything about EISA-2?\nNntp-Posting-Host: mnementh.cs.mcgill.ca\nOrganization: SOCS, McGill University, Montreal, Canada\nLines: 22\n\nIn article <1qt5nk$8o6@agate.berkeley.edu> bing@zinc.cchem.berkeley.edu (Bing Ho) writes:\n>I read about the development of EISA-2 some time ago but dismissed it\n>in light of the intense interest in VESA and PCI.  However, I recently\n>was disheartened to hear that ISA cannot address more than 16mb of RAM,\n>a limit that too many of us will hit all too soon.\n>\n>I recall that EISA-2 will support 64-bit transfer among other enhancements.\n>Is there such a standard being developed?\n\n\tVery possibly, but if it's still going to be backwards compatible\nwith the ISA bus, it's going to be the same tripe that the current EISA\nimplementation really is.\n\n\tFrom what I've seen, the PCI bus will just be a new 32bit 33MHz\nintelligent bus (ie, bus controller takes care of interrupts and the like,\nnot jumpers...)  Hopefully it'll get somewhere up there with the AMIGA \nZorro III bus....\n\n\tVL Bus is a bit too much of a hack for my liking...\n\n\tToodlepip!\n\tMarc 'em.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1884, "properties": {"category": "soc.religion.christian", "text": "From: mserv@mozart.cc.iup.edu (Mail Server)\nSubject: Re: cause\nLines: 38\n\ntrajan@cwis.unomaha.edu (Stephen McIntyre) writes:\n>norris@athena.mit.edu  writes:\n> [some stuff deleted]\n>> Fortunately for the convenience of us believers, there is a class of\n>> questions that can never be reduced away by natural science.  For\n>> example: why does the universe exist at all?  \n> \n>Must there be a \"why\" to this?  I ask because of what you also\n>     assume about God-- namely, that He just exists, with no \"why\"\n>     to His existence.  So the question is reversed, \"Why can't\n>     we assume the universe just exists as you assume God to\n>     \"just exist\"?  Why must there be a \"why\" to the universe?\"\n[remainder of message deleted]\n\nPardon me for replying to only a portion of your message :)\n\nThe reason we can say \"God just exists\" and can't say \"The universe just \nexists\" is because the universe is a natural realm and is subject to natural \nlaws in general and the law of cause and effect in particular.  That is, we \nobserve in nature that every cause has an effect, and every effect was produced \nby a cause.  The existence of the natural realm, as an effect itself, cannot be \nits own cause; it must therefore have a supernatural cause.\n\nGod, on the other hand, is a supernatural being, and is therefore not subject \nto such natural laws as the law of cause and effect.  As a supernatural being, \nGod's eternal existence does not imply a previous cause the way the existence \nof a physical, natural cosmos does.  Thus, those who believe in the \nsupernatural have a valid basis for accepting the existence of uncaused \nphenomena such as the eternal God, whereas those who deny the existence of the \nsupernatural are faced with the dilemma of a physical universe whose very \nnature shows that it is not sufficient to explain its own existence.\n\nThis is, of course, an oversimplification of a complex topic, but I just wanted \nto clarify some important differences between the supernatural (God) and the \nnatural (the universe), since you seem to mistake them as being \ninterchangeable.\n\n- Mark\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1885, "properties": {"category": "talk.politics.mideast", "text": "From: aa229@Freenet.carleton.ca (Steve Birnbaum)\nSubject: Re: rejoinder. Questions to Israelis\nReply-To: aa229@Freenet.carleton.ca (Steve Birnbaum)\nOrganization: The National Capital Freenet\nLines: 71\n\n\nIn a previous article, cpr@igc.apc.org (Center for Policy Research) says:\n\n>6. Your answer to the question concerning rights to return\n>conflicts with what I was told, namely that hundreds of thousands\n>of non-Jews who left for some reason or other the area under\n>Israel control during the war of 1947-8, were prevented from\n>returning for the sole reason they were not Jews. Jews who also\n>left, for example to Europe, to avoid the clashes, were allowed to\n>return. How can you justify such discrimination, if this is true ?\n>Is the mere fact of a person leaving area of combat to seek refuge\n>somewhere else a reason for stripping him of his right to live in\n>his homeland ?\n\nYou are conveniently ommitting the fact that the Arab governments told the\nArab citizens of Israel to leave Israel, join with the Arab armies so that\nafter what they felt like an assured victory occured, these Arabs could\nreturn to their former homes, reclaim them as well as anything else they\nwanted that belonged to Jews.  When the Arabs lost, Israel was left with\na bunch of people who has just tried to kill them who now wanted back\ninto the country as citizens.  What would you have done?  Let them in so\nthey could kill Jews?  Israel sees those Arabs who stayed as citizens \nbecause they were loyal to Israel during the war and didn't leave.  Of\ncourse some Arabs could have left to avoid the fighting but distinguishing\nbetween the two is impossible.  Therefore a decision was made based on\nsecuturity of the country.\n\n>8.  You maintain that there are some Israeli Arabs living in\n>Israeli kibbutzim. I wonder how many and where. There is very\n>little evidence available about that. As much as I know, many\n>Arabs are working *for* kibbutzim, even for many years, but are\n>not accepted as members. Could it be that kibbutzim do not want\n>Arabs ?\n\nNo kibbutz that I have ever visited has any \"employees\" unless they had to\nhire some people for the restaurants, hotels etc if there weren't enough \npeople ON the kibbutz to do them.  In such cases, they are paid properly.\nIf a kibbutz turns away an Arab, 9I have never seen or heard of this) but it\nreflects only on the membership comittee of that kibbutz, not the whole\nkibbutz movement.\n\n>to keep it what way'. I am certain that if only religious\n>communities in the U.S. would be asked, they would gladly abolish\n>civil marriage so that people would depend upon rabbis and priests\n>to officiate marriages. But Israel has always been ruled by a\n>secular majority. Your answer is not satisfactory.\n\nThis just shows how ignorant you are of Israeli politics.  Although the \nmajor parties in Israel aren't religious (however not totally secular),\ndue to the format of the government (coalition) the religious parties have\nalways had a lot of pull since they were needed to form a majority coalition.\nIn fact, from what I heard the present government is the least influenced\nby the religious parties in the existance of Israel.  Israel CANNOT be\ncalled a secular state.  For instace, Haifa is the only city in the country\n(except for maybe some Arab cities) where buses run on the Jewish Sabbath.  \nThere are many other examples of religion in Israel.  Marriages in Israel\nare NOT contolled by the state, but by Rabbis and Priests.  Obviously your \ndisbelief of this fact sheds some light of your ignorance of the country\nyou claim to know so much about.\n\n  Steve\n-- \n------------------------------------------------------------------------------\n|   Internet: aa229@freenet.carleton.ca              Fidonet: 1:163/109.18   |\n|             Mossad@qube.ocunix.on.ca                                       |\n|    <<My opinions are not associated with anything, including my head.>>    |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1886, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jmg14@po.CWRU.Edu (John M. Graham)\nSubject: Re: New Apple Ergo-Mouse\nArticle-I.D.: usenet.1pt3ns$mdu\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 15\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nI believe that in order to get at the innards of the new mouse,\nyou must remove the label on the bottom that says \"Apple Desktop\nBus Mouse II\"  There you should find two screws on either side.\nI haven't tried it myself yet, but when I ran my fingernail\naccross the label, these two divots appeared, and I can only assume\nthat these are the elusive screws in question.\n\ncheers,\njohn\n-- \n******John M. Graham***********************\n******The Cleveland Institute of Music*****\n******jmg14@po.cwru.edu********************\nBrought to you by the letters J, M, and G, and the number 14.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1887, "properties": {"category": "sci.crypt", "text": "From: koontzd@phobos.lrmsc.loral.com (David Koontz )\nSubject: Spoofing Clipper Serial Number\nDistribution: usa\nOrganization: Loral Rolm Mil-Spec Computers\nLines: 35\n\nSecrecy in Clipper Chip\n\nThe serial number of the clipper chip is encrypted with the system key and\ntransmitted as one part of a three part message.\n\nPresumably the protocol can be recovered (if by nothing else, differential\nanalysis).\n\nPostulate if you will, a chip (or logic) sitting between the clipper chip\nand its communications channel.  The purpose of this chip is twofold:\n    \n\t1) Transmit Channel\n\n\t    The spoof chip XORs the 30 bit encrypted serial number with\n\t    a secondary keying variable.  This renders the serial number\n\t    unrecoverable with just the system key\n\n\t2) Recieve Channel\n\n\t    The spoof chip XORs the incoming encrypted serial number\n\t    with a secondary keying variable (assuming the serial number\n\t    is necessary for local operation).\n\nThis has the net result of hiding the serial number.  This gets more\ninteresting when the number of serial numbers issued becomes large,\nmaking it difficult to distinguish between valid serial numbers and\na spoofed serial number.  Without knowing the system key, you could\nlie about the serial number, but risk detection of the lie.\n\nIF you had the system key and the encryption algorithm you could\nsuccessfully lie with a lower probability of detection by emulating the\nformat of your own serial number.\n\nMakes you wonder whats being hidden here?   Seems  like the secrecy is\nto prevent you from lying about who you are.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1888, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: What to do if you shoot somebody\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 32\n\nIn article <93108.025818U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>Say you're in a situation where you have to pull a gun on somebody.  You\n>give them a chance to get away but they decided to continue in their\n>action anyway and you end up shooting and killing them.  My question is\n>what do you do?  Should you stay and wait for the cops or should you\n>collect your brass (if you're using a semi-auto) and get out of there\n>(provided of course you don't think that you have been seen)?\n\nFor me, it would be an obvious choice: Armed self-defence is clearly\nand strongly protected by the Colorado Constitution and the laws\nof the state. In the very clear-cut situation of your hypothetical,\nI wouldn't have anything to fear from the police (unless I had been\npublicly carrying the weapon concealed, something I'm not in\nthe habit of doing... Even then, the worst I'd have to deal with \nwas a class 2 misdemeanor.) Even if the situation were not so\nclear, and I might have to worry about arrest for manslaughter or\nhomicide, it would still be safer to wait for the police. If\nI were to leave and try to avoid police involvement, I'd be committing\nseveral felonies and ruining my chances of claiming self-defence\nin court (\"If it really was self-defence,\" the prosecuter would\nask, \"why did you run away and hide from the police?\")\n\nIn other states, however, this decision might not be so clear-cut:\nIf someone in, say, Washington D.C. were to use a gun in self-defence\nhe would _automatically_ be guilty of several felony violations of\nthat city's gun control laws. Such a person's choices would be\nbetween certain conviction for a couple of felonies versus possible\nconviction for half a dozen. \n\n                                         Frank Crary\n                                         CU Boulder\n \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1889, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 89\n\nIn article <bskendigC5Ku3C.6Dx@netcom.com> bskendig@netcom.com (Brian Kendig) writes:\n\n>I've asked your god several times with all my heart to come to me.  I\n>really wish I could believe in him, 'cos no matter how much confidence\n>I build up on my own, the universe *is* a big place, and it would be\n>so nice to know I have someone watching over me in it...\n\nBrian K., I am pleased with your honesty.  And to be honest as well, I\nbelieve you have not asked my god to come to you.  Why do I say this?\nBecause by the things you write on the net, and the manner with which\nyou write them, you show me that you made up your own god and are\nattempting to pass him off as the real thing.  I got news for you.\nYours doesn't at all sound like mine.  Your god doesn't come to you\nbecause your god doesn't exist.\n\n>I've gone into this with an open mind.  I've layed my beliefs aside\n>from time to time when I've had doubt, and I've prayed to see what\n>good that would do.  I don't see what more I can do to open myself to\n>your god, short of just deciding to believe for no good reason.  And\n>if I decide to believe for no good reason, why not believe in some\n>other god?  Zeus seems like a pretty cool candidate...\n\nI am sorry Brian, but when I read your postings, I do not see an open mind.\nWhat I do see is misunderstanding, lack of knowledge, arrogance and mockery.\n\n>Please tell me what more I can do while still remaining true to myself.\n\nBe true to yourself then.  Have an open mind.  And so end the mockery.  Gain \nknowledge of the real God.  Put your presumptions aside.  Read the\nBible and know that there is, truly is, a reason for everything and\nthere exists a God that has so much love for you that the depth of it goes beyond\nour shallow worldly experience.  A person who commits himself  \nto seeking God, will find God.  Jesus stands at your door and knocks.  But a\nperson who half-heartedly opens the Bible, or opens it with purpose to find \nsomething to mock, will find, learn and see nothing.  The only thing one\nwill gain with that attitude is folly.\n\nBe careful to not jump the gun, for at first glance, there are many passages\nin the Bible that will seem bizarre and absurd.  Be assured that even\nthough they seem alien at first, be confident that they are not.\nBe assured that beyond your present comprehension, there lies such\ndeep reasons that once you see them, you will indeed be satisfied. \nI will personally guarantee that one.  As Jesus put it, \"You will never\nbe thirsty again.  Your cup will even flow over.\"\n\n\nFrom King Solomon (970 B.C. to 930 B.C.):\n\n    \"It is the glory of God to conceal a matter;\n     to search out a matter is the glory of kings.\"\n\n\nJesus says in John 6:44 & 55:\n\n   \"No one can come to me unless the Father who sent me draws him.\"\n\n\nAnd in John 3:16:\n\n   \"For God so loved the world that he gave his one and only Son,\n   that whosoever believes in him shall not perish but have eternal\n   life.\"\n\n\nYou are included in \"whosoever\".  And I also pray that the Father is\ndrawing you, which it seems He is doing else you wouldn't be posting\nto talk.religion.misc.  Remember Brian, you could be a St. Paul in the\nmaking.  Paul not only mocked Christians as you do, but also had pleasure\nstoning them.  Yet God showed him mercy, saved him, and Paul became\non of the most celebrated men in the history of God's church.\n\nYou see Brian, I myself better be careful and not judge you, because\nyou could indeed be the next Paul.  For with the fervor that you attack\nChristians,  one day you might find yourself one, and like Paul,\nproclaim the good news of Jesus with that very same fervor or more.\n\nOr you could be the next Peter.  What Jesus said to Peter, Jesus would \nprobably say to you: \"Satan would surely like to have you.\"  Why so?\nBecause Peter was hard-headed, cynical and demonstrated great\nmoments of stupidity, but once Peter committed himself to a task\nhe did with full heart.  Peter was the only apostle to have the\nfaith to walk on water as Jesus did.\n\nYou asked \"Why not believe in Zeus?\"  Zeus didn't offer eternal life.\nYou got nothing to gain by believing in Zeus.\n\n-------------------------------\nBrian Ceccarelli\nbrian@gamma1.lpl.arizona.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1890, "properties": {"category": "rec.sport.baseball", "text": "From: jrogoff@scott.skidmore.edu (jay rogoff)\nSubject: Re: New Home for the Bosox!!!\nOrganization: Skidmore College, Saratoga Springs NY\nLines: 19\n\n\n> I agree, though I'd also be happy with a stadium that looks\n> like new Comiskey. The new park was also made for baseball.\n> Unlike Three Rivers, the Vet, Riverfront, etc., it's not a\n> football park in which they also play baseball.\n \nWhile we're on the multipurpose subject, let's not forget Shea, which\nwas designed to accommodate both the Mets & Jets.  It was the first\nstadium (I think) to have the box seats on rollers so they could be\noriented at right angles for baseball & in parallel for football.\n\nOf course, with the Jets gone to Jersey (and a truly good football\nstadium), the Mets are saddled with a multipurpose stadium where,\nbecause it's circular, the seats are almost always too far from the\naction.  The Mets announcers--Kiner & Murphy in particular--have\nalways hyped it as \"beautiful Shea\nStadium,\" a tipoff to how unbeautiful it truly is.\n\nJay \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1891, "properties": {"category": "rec.sport.hockey", "text": "From: \"Patricia L. Bruno\" <pb37+@andrew.cmu.edu>\nSubject: Re: Hockey Hell\nOrganization: Freshman, Mechanical Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 42\n\t<C4s4JK.F72@andy.bgsu.edu>\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <C4s4JK.F72@andy.bgsu.edu>\n\n> \n>In article <C4nq5G.EKB@noose.ecn.purdue.edu>,\n>rgemeinh@separator.ecn.purdue.edu (Richard A Gemeinhart) wrote:\n>> \n>> In article <1993Mar26.155933.9669@ncsu.edu> fmsalvat@eos.ncsu.edu\n(FRANK MICH\n>AE SALVATORE) writes:\n>> >\n>> >\n>> >I am originally from New York State, and I go to school\n>> >in North Carolina.  Yet, I don't constantly gripe about\n>> >the lack of hockey.  Wouldn't some of you who chose to go\n>> >to school in the South realize (most who gripe are Clemson students)\n>> >that hockey isn't quite as popular in South Carolina\n>> >when you chose a school?\n>> >\n>> >Why did you all (excuse me - y'all) choose schools in\n>> >the South if hockey was this important to you?  \n>> \n>> Not everyone has the luxury of deciding on a college by making sure the \n>> hockey coveraage is what you want it to be.  I am a Pittsburgh transplan\n>> to S. C. when at home and the coveraage sucks.  Sports south didn't\neven show\n>> the final game of the Stanley Cup laast year while it was happening.  They\n>> put it on ktape delay and cut the intermissions then went off the air.  \n>> When you move you take the good with the bad and deal with it;  it doesn't\n>> mean thaat you can't complain about it.\n> \n>I was transplanted by my parents from the Greater Hartford area to the\n>Greater Cleveland, Ohio area.  This was not an action of my choice.  The\n>only hockey coverage I could get there regularly was Red Wings and Penguins\n>(explaining, in part, why I follow these teams today).  In Cleveland you\n>couldn't even find hockey scores on the 11 o'clock news because they\n>figured that if they didn't have it, it wasn't a sport.\n> \n\n\nAt least your parents didn't move you Idaho.  The only things that get\nany coverage there are football, basketball and baseball!\n\nPatty\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1892, "properties": {"category": "comp.graphics", "text": "From: prestonm@cs.man.ac.uk (Martin Preston)\nSubject: Re: TIFF: philosophical significance of 42\nLines: 18\n\nIn <C5sCGu.1LL@mentor.cc.purdue.edu> ab@nova.cc.purdue.edu (Allen B) writes:\n\n>I've got the 6.0 spec (obviously since I quoted it in my last posting). \n>My gripe about TIFF is that it's far too complicated and nearly\n>infinitely easier to write than to read,...\n\nWhy not use the PD C library for reading/writing TIFF files? It took me a\ngood 20 minutes to start using them in your own app.\n\nMartin\n\n--\n---------------------------------------------------------------------------\n|Martin Preston,      (m.preston@manchester.ac.uk)    | Computer Graphics |\n|Computer Graphics Unit, Manchester Computing Centre, |    is just        |\n|University of Manchester,                            |  a load of balls. |\n|Manchester, U.K., M13 9PL     Phone : 061 275 6095   |                   |\n---------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1893, "properties": {"category": "rec.motorcycles", "text": "From: cam@castle.ed.ac.uk (Chris Malcolm)\nSubject: Re: Countersteering_FAQ please post\nOrganization: Edinburgh University\nLines: 36\n\nIn article <1993Apr16.175534.13478@rd.hydro.on.ca> jlevine@rd.hydro.on.ca (Jody Levine) writes:\n\n>We all seem to be in agreement that there are two explanations for why\n>one can use the handlebars to lean a moving motorcycle. The question is,\n>is one of the effect dominant, and which one is it? The idea would be to\n>design an experiment which would seaprate the two characteristics, and\n>see which effect produces a similar result to the one with which those of\n>us who have bikes are familiar.\n\nAs you point out, the experiments would be difficult. But we know\nenough about the physics of the situation to do some calculations.\nThere are in fact three effects contributing to leaning the bike over\nto begin a turn.\n\n\t1. Gyro effect causing a torque which twists the bike over.\n\n\t2. Contact patch having shifted to one side, causing bike to fall over.\n\n\t3. Contact patch being accelerated to the side, causing a\n\ttorque which twists the bike over.\n\nTake an average bike/rider, average bike wheel, and at speeds of 5,\n15, and 50 mph (say) calculate how much twist of the bars would be\nneeded to produce (say) 20 degrees of lean in (say) 2 seconds by each\neffect alone. My guess is that at slow speeds 2 is dominant, and at\nhigh speeds 3 is dominant, and at all speeds 1 contributes not far off\nbugger all, relatively speaking.\n\nBy the way, a similar problem is this: how does a runner who wants to\nrun round a corner get leaned into the corner fast? Is there a running\ngroup where we could start \"counter-footing\" arguments and have them\nall falling over as they tried to work out how they go round corners?\n-- \nChris Malcolm    cam@uk.ac.ed.aifh          +44 (0)31 650 3085\nDepartment of Artificial Intelligence,    Edinburgh University\n5 Forrest Hill, Edinburgh, EH1 2QL, UK                DoD #205\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1894, "properties": {"category": "comp.windows.x", "text": "From: pyeatt@Texaco.com (Larry D. Pyeatt)\nSubject: Re: Mix GL with X (Xlib,Xt,mwm)\nNntp-Posting-Host: 211.2.1.65\nOrganization: Texaco\nLines: 24\n\nIn article <27808.9304211039@scorpion.dps.co.uk>, gerard@dps.co.UK (Gerard O'Driscoll) writes:\n|> \n|> pyeatt@Texaco.com writes:\n|> \n|> >> There is a widget already defined for GL.  It is the GlxMDraw (motif) or\n|> >> GlxDraw (athena) widget.  It is similar to a XmDrawingArea, except that it\n|> >> allows you to use GL calls to render into the window.  Look at glxlink,\n|> >> glxunlink, glxgetconfig, and glxwinset in the man pages.\n|> \n|> Where do I get hold of these widgets?\n|> \n|>  \tGerard O'Driscoll (gerard.odriscoll@dps.co.uk)\n|>  \tDu Pont Pixel Systems Ltd.\n\nThey come with every Iris now.  Nth also ships it with their latest\nversion of Nth Portable GL.  I just got the update a couple of weeks\nago.  I would assume that Silicon Graphics would license the source\nto you so that you can include it in your company's GL offering.\n\n-- \nLarry D. Pyeatt                 The views expressed here are not\nInternet : pyeatt@texaco.com    those of my employer or of anyone\nVoice    : (713) 975-4056       that I know of with the possible\n                                exception of myself.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1895, "properties": {"category": "talk.politics.guns", "text": "From: jim.wray@yob.sccsi.com (Jim Wray)\nSubject: Re: With Friends Like The\nOrganization: Ye Olde Bailey BBS - Houston, TX - 713-520-1569\nLines: 27\nReply-To: jim.wray@yob.sccsi.com (Jim Wray)\nNNTP-Posting-Host: cs.utexas.edu\n\n\n Paul Prescod pontificating:\n\n PP>State.EDU (Cathy Smith) writes:\n\n PP>>     Libertarians oppose BOTH waiting periods AND background checks\n PP>>-- or ANY prerequisite for exercising rights that are supposed to\n PP>>be guaranteed.\n\n PP>Let me get this straight.  Unlike the other idiots in this newsgroup,\n PP>you actually support anybody having unlimited access to guns,\n PP>inclucing criminals.  (or would you prohibit them from owning them,\n PP>but not from buying them?)\n\n PP>You are a supreme idiot.  You make the other idiots look like Mensa members.\n\nThanks Paul, for yet another fine example of the holier than thou gun control\nmindset. Why don't you add something intelligent to the debate, like maybe\nnyah nyah nyah nyah nyah.\n---\n . OLX 2.2 . Fight crime..... shoot back!\n                                                                           \n----\n+------------------------------------------------------------------------+\n| Ye Olde Bailey BBS   713-520-1569 (V.32bis) 713-520-9566 (V.32bis)     |\n|   Houston,Texas          yob.sccsi.com       Home of alt.cosuard       |\n+------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1896, "properties": {"category": "talk.politics.misc", "text": "From: muellerm@vuse.vanderbilt.edu (Marc Mueller)\nSubject: Re: Pork ( C-17 & C-5 was (Re: ABOLISH SELECTIVE SERVICE )\nNntp-Posting-Host: irlsp\nOrganization: Vanderbilt University School of Engineering, Nashville, TN, USA\nLines: 48\n\nIn article <1993Apr16.174304.26360@ra.msstate.edu> fpa1@Ra.MsState.Edu (Fletcher P Adams) writes:\n>muellerm@vuse.vanderbilt.edu (Marc Mueller) writes:\n>>fpa1@Trumpet.CC.MsState.Edu (Fletcher P Adams) writes:\n>>>>\n>>>>Eliminate the C-17 transport. \n>>>\n>>>Wrong.  We need its capability.  Sure it has its problems, ........\n>>\n>>If you read Aviation Week, the C-5 line can be reopened and the C-5s\n>>would be delivered a year earlier and cost a billion less for the \n>>program. Politically, though, the C-17 is popular pork.\n>\n>I do read Av Week and don't remember this.  Could you supply the date\n>of the magazine? \n\nAviation Week March 15 1993 p.48\n\n\"the CBO estimates that matching the capability of 100 C-17s would\nrequire 70 C-5s at a total cost of $14.4 billion. This option is still\nmore than $10 billion cheaper than completing the C-17 program, which\nthe CBO estimates will cost $24.7 billion.\"\n\nSorry, I was nine billion off. The C-5s would be ten billion cheaper.\n>  As for C-17 vs. C-5 , the C-17 can't carry as much\n>but has more capability ( read : can land at smaller airfields of which\n>there are more of ) than the C-5.  Now is the C-17 pork?  It depends\n>on whether your job relies on it or not.  :)  In California right now,\n>I would say that it is not pork since due to peace dividend so many \n>people are out of work. \n>\nWell, California voted overwhelmingly for change, right?\nThe argument to continue military programs just to support jobs is\na poor one. It's kept quite a few bases open that should have been closed\nyears ago, wasting billions of taxes.\n\n>>The question is whether Les Aspin and Clinton will be able to face down\n>>a pork happy Congress.\n>>\n>>-- Marc Mueller\n>\n>Huh?  Shouldn't that read \"The question is whether a social-pork happy\n>Les Aspin and Clinton will be able to face down a jobs-pork happy\n>Congress.\"\n>\n>fpa\n>\n\n-- Marc Mueller\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1897, "properties": {"category": "sci.crypt", "text": "From: marc@mit.edu (Marc Horowitz N1NZU)\nSubject: Re: The source of that announcement\nOrganization: Massachusetts Institute of Technology\nLines: 19\nNNTP-Posting-Host: oliver.mit.edu\nIn-reply-to: tcmay@netcom.com's message of Sun, 18 Apr 1993 08:17:28 GMT\n\nIn article <tcmayC5o715.Mrs@netcom.com> tcmay@netcom.com (Timothy C. May) writes:\n\n   I know that at least one person on that list says the first he heard\n   of Clipper was in the Friday morning newspaper! And another has\n   already fired off a letter of protest to NIST.\n\n   My point? I suspect this list, interesting as it is for various\n   reasons, does not represent the cabal that put this proposal together.\n   Some of them, yes. Others, no. \n\nI received mail from Mitch Kapor saying that he did not ask to be on\nthe list, and does not know why he was added.  I'm sure the same\napplies to others on the list.  So, I guess my initial theory was\nright, that the clipper list was just someone's idea of a bad joke.  I\nguess I should be happy it wasn't a conspiracy.\n\n\t\tMarc\n--\nMarc Horowitz N1NZU <marc@mit.edu>\t\t\t\t617-253-7788\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1898, "properties": {"category": "sci.electronics", "text": "From: mtrek@netcom.com (Chuck L. Peterson)\nSubject: 40MHZ Oscilloscope FOR SALE\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 11\n\nI'm giving up hardware design and\nam selling my Oscilloscope:\n\n\tBK Precision  Model 1541B\n\t40 MHZ Dual-Trace\n\tBarely Used\n\t$450 firm   (Fry's sells it for $589+tax)\n\nPrefer people in Silicon Valley, so I don't have to ship it.\n\nmtrek@netcom.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1899, "properties": {"category": "comp.graphics", "text": "From: chert@dungeon.cirr.com (Chert Pellett)\nSubject: Epson (HPGL) 4 pen plotter W/340 Pens $500 / B.O.\nSummary: HP compataible\nKeywords: Plotter HP Epson\nOrganization: Dis-\nDistribution: usa\nLines: 30\n\nGreetings,\n    I have an Epson HI-80 4 pen plotter forsale.  It emulates an HP 7570\nor 7574 - I'm not sure which.  It has an option board on it that does\nthe emulation.  It has a serial interface with Hardware handshake. I\nalso have 340 Pens for it as follows:  10 packs of 4 Black Oil based, 16\npacks of 4 Red,Green, Blue, and Black pens, 22 packs of 4 Aqueous Black,\n7 packs of 4 Aqueous R,G,Blue,Black,  1 pack of 6 Aqueous Multi color\npens,  and 114 assorted non-packaged pens mostly colored.\n\n    The plotter is used.  I have tested it using the Windows drivers for\nHP 7570 and HP 7574 and both worked fine.  It accepts either A or B\nsized paper. (8.5 x 11 or 11x17).\n\n    I figure that the plotter is worth about $300 and the pens are worth at\nleast another $200 more..  One thing is certain, you won't need to\npurchase any pens for quite a while...  All of the packaged pens were\nsealed so they are all still fresh.  The rest were capped and seem to\nfunction as well.\n\n    I'd be willing to sell the pens seperate if anyone is interested in\njust them.\n\n    I'm selling it because I got a HP LaserJet and I don't need color.\n\n    I'd like $350 or best offer...\n\n    -Chert\n-- \nChert Pellett - chert@dungeon.cirr.com || chert@dungeon.lonestar.org\nPANIC: The cat is nibbling on the power cord!\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1900, "properties": {"category": "rec.motorcycles", "text": "From: keithh@bnr.ca (Keith Hanlan)\nSubject: Re: Insurance and lotsa points...\nNntp-Posting-Host: bcarh10f\nOrganization: Bell-Northern Research Ltd., Ottawa\nLines: 16\n\nIn article <13386@news.duke.edu> infante@acpub.duke.edu (Andrew  Infante) writes:\n>Well, it looks like I'm F*cked for insurance.\n>\n>I had a DWI in 91 and for the beemer, as a rec.\n>vehicle, it'll cost me almost $1200 bucks to insure/year.\n>\n>Now what do I do?\n\nSell the bike and the car and start taking the bus. That way you can\nkeep drinking which seems to be where your priorities lay.\n\nI expect that enough of us on this list have lost friends because of\ndriving drunks that our collective sympathy will be somewhat muted.\n\nShowing great restraint,\nKeith Hanlan  KeithH@bnr.ca  Bell-Northern Research, Ottawa, Canada 613-765-4645\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.088+0000", "event": "documents", "entityId": 1901, "properties": {"category": "comp.sys.mac.hardware", "text": "From: simsh@aix02.ecs.rpi.edu (Hillel Y. Sims)\nSubject: How often are SIMMs bad (mail order)?\nNntp-Posting-Host: aix02.ecs.rpi.edu\nLines: 19\n\nHi everyone. Just the other day, I ordered a VRAM chip for my new LCIII from\nMac Connection. They sent it overnight (very nice) and I got it installed,\nand we found that it didn't work properly. When you put the computer in \nthousands mode, the bottom of the screen (using the new chip) is all flickering\nand fuzzy. So I called them up and I'm going to return it for a new one.\n\nMy question is, how often does such a thing happen with SIMM chips in general?\nDo you often find when ordering chips that a large portion are bad? Is this\na rarity? This is the first chip I've ordered so I have no other experience\nin this area. I'm just curious if anyone else has had the same type of\nexperience.\n\nThat's about it. Please email me, and if people want, I can post a summary.\nThanks all.\n-- \nHillel Sims  -----  simsh@rpi.edu  -----  Rensselaer Polytechnic Institute\n\n\"Is rot13 rotated 13 forward or backward?\"\n\t--Anonymous\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1902, "properties": {"category": "talk.politics.mideast", "text": "From: astein@nysernet.org (Alan Stein)\nSubject: Re: Zionism is Racism\nOrganization: NYSERNet, Inc.\nLines: 10\n\n\"D. C. Sessions\" <dcs@witsend.tnet.com> writes:\n\n># So Steve: Lets here, what IS zionism?\n\n>  Assuming that you mean 'hear', you weren't 'listening': he just\n>  told you, \"Zionism is Racism.\"  This is a tautological statement.\n\nI think you are confusing \"tautological\" with \"false and misleading.\"\n-- \nAlan H. Stein                     astein@israel.nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1903, "properties": {"category": "rec.sport.hockey", "text": "From: wein1@ccwf.cc.utexas.edu (david weinberg)\nSubject: Re: Octopus in Detroit?\nOrganization: The University of Texas at Austin, Austin TX\n The tradition of the octopus started back in the 1950s. It was tradition to toss an octopus out on the ice during the first play-off games because you needed eight wins for Stanely Cup.  Today people toss octupi anytime it gets near the   play-offs.\nLines: 3\nNNTP-Posting-Host: sleepy.cc.utexas.edu\n\nDavid\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1904, "properties": {"category": "comp.windows.x", "text": "From: chongo@toad.com (Landon C. Noll)\nSubject: 10th International Obfuscated C Code Contest Opening (part 2 of 2)\nArticle-I.D.: toad.32195\nExpires: 7 May 93 00:00:00 GMT\nReply-To: chongo@toad.com.UUCP (Landon C. Noll)\nDistribution: world\nOrganization: Nebula Consultants in San Francisco\nLines: 1382\n\nEnclosed are the rules, guidelines and related information for the 10th\nInternational Obfuscated C Code Contest.  (This is part 2 of a 2 part\nshar file).\n\nEnjoy!\n\nchongo <Landon Curt Noll> /\\oo/\\\nLarry Bassel\n\n=-=\n\n#!/bin/sh\n# This is part 02 of a multipart archive\n# ============= mkentry.c ==============\necho \"x - extracting mkentry.c (Text)\"\nsed 's/^X//' << 'SHAR_EOF' > mkentry.c &&\nX/* @(#)mkentry.c\t1.24 3/1/93 02:28:49 */\nX/*\nX * Copyright (c) Landon Curt Noll & Larry Bassel, 1993.  \nX * All Rights Reserved.  Permission for personal, education or non-profit use \nX * is granted provided this this copyright and notice are included in its \nX * entirety and remains unaltered.  All other uses must receive prior \nX * permission in writing from both Landon Curt Noll and Larry Bassel.\nX */\nX/*\nX * mkentry - make an International Obfuscated C Code Contest entry\nX *\nX * usage:\nX *\tmkentry -r remarks -b build -p prog.c -o ioccc.entry\nX *\nX *\t-r remarks\t\tfile with remarks about the entry\nX *\t-b build\t\tfile containing how prog.c should be built\nX *\t-p prog.c\t\tthe obfuscated program source file\nX *\t-o ioccc.entry\t\tioccc entry output file\nX *\nX * compile by:\nX *\tcc mkentry.c -o mkentry\nX */\nX/*\nX * Placed in the public domain by Landon Curt Noll, 1992.\nX *\nX * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED\nX * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF\nX * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\nX */\nX/*\nX * WARNING:\nX *\nX * This program attempts to implement the IOCCC rules.  Every attempt\nX * has been made to make sure that this program produces an entry that\nX * conforms to the contest rules.  In all cases, where this program\nX * differs from the contest rules, the contest rules will be used.  Be\nX * sure to check with the contest rules before submitting an entry.\nX *\nX * Send questions or comments (but not entries) about the contest, to:\nX *\nX *\t...!{sun,pacbell,uunet,pyramid}!hoptoad!judges\nX *\tjudges@toad.com\nX * The rules and the guidelines may (and often do) change from year to\nX * year.  You should be sure you have the current rules and guidelines\nX * prior to submitting entries.  To obtain all 3 of them, send Email\nX * to the address above and use the subject 'send rules'.\nX *\nX * Because contest rules change from year to year, one should only use this\nX * program for the year that it was intended.  Be sure that the RULE_YEAR\nX * define below matches this current year.\nX */\nX\nX#include <stdio.h>\nX#include <ctype.h>\nX#include <time.h>\nX#include <sys/types.h>\nX#include <sys/stat.h>\nX\nX/* logic */\nX#ifndef TRUE\nX# define TRUE 1\nX#endif /* TRUE */\nX#ifndef FALSE\nX# define FALSE 0\nX#endif /* FALSE */\nX#define EOF_OK TRUE\nX#define EOF_NOT_OK FALSE\nX\nX/* global limits */\nX#define RULE_YEAR 1993\t\t/* NOTE: should match the current year */\nX#define START_DATE \"1Mar92 0:00 UTC\"\t/* first confirmation received */\nX#define MAX_COL 79\t\t/* max column a line should hit */\nX#define MAX_BUILD_SIZE 256\t/* max how to build size */\nX#define MAX_PROGRAM_SIZE 3217\t/* max program source size */\nX#define MAX_PROGRAM_SIZE2 1536\t/* max program source size not counting\nX\t\t\t\t   whitespace and {}; not followed by\nX\t\t\t\t   whitespace or EOF */\nX#define MAX_TITLE_LEN 12\t/* max chars in the title */\nX#define MAX_ENTRY_LEN 1\t\t/* max length in the entry input line */\nX#define MAX_ENTRY 8\t\t/* max number of entries per person per year */\nX#define MAX_FILE_LEN 1024\t/* max filename length for a info file */\nX\nX/* where to send entries */\nX#define ENTRY_ADDR1 \"...!{apple,pyramid,sun,uunet}!hoptoad!obfuscate\"\nX#define ENTRY_ADDR2 \"obfuscate@toad.com\"\nX\nX/* uuencode process - assumes ASCII */\nX#define UUENCODE(c) (encode_str[(int)(c)&0xff])\nX#define UUENCODE_LEN 45\t\t/* max uuencode chunk size */\nX#define UUINFO_MODE 0444\t/* mode of an info file's uuencode file */\nX#define UUBUILD_MODE 0444\t/* mode of the build file's uuencode file */\nX#define UUBUILD_NAME \"build\"\t/* name for the build file's uuencode file */\nX#define UUPROG_MODE 0444\t/* mode of the program's uuencode file */\nX#define UUPROG_NAME \"prog.c\"\t/* name for the program's uuencode file */\nX\nX/* encode_str[(char)val] is the uuencoded character of val */\nXchar encode_str[256+1] = \"`!\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_ !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_ !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_ !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_\";\nX\nX/* global declarations */\nXchar *program;\t\t\t/* our name */\nXlong start_time;\t\t/* the startup time */\nX\nX/* forward declarations */\nXvoid parse_args();\nXvoid usage();\nXFILE *open_remark();\nXFILE *open_build();\nXFILE *open_program();\nXFILE *open_output();\nXvoid output_entry();\nXvoid output_remark();\nXvoid output_author();\nXvoid output_info();\nXvoid output_build();\nXvoid output_program();\nXvoid output_end();\nXint get_line();\nXvoid output_till_dot();\nXint col_len();\nXvoid check_io();\nXvoid uuencode();\nX\nXmain(argc, argv)\nX    int argc;\t\t/* arg count */\nX    char **argv;\t/* the args */\nX{\nX    FILE *remark=NULL;\t/* open remarks stream */\nX    FILE *build=NULL;\t/* open build file stream */\nX    FILE *prog=NULL;\t/* open program stream */\nX    FILE *output=NULL;\t/* open output stream */\nX    char *rname=NULL;\t/* file with remarks about the entry */\nX    char *bname=NULL;\t/* file containing how prog.c should be built */\nX    char *pname=NULL;\t/* the obfuscated program source file */\nX    char *oname=NULL;\t/* ioccc entry output file */\nX    struct tm *tm;\t/* startup time structure */\nX\nX    /*\nX     * check on the year\nX     */\nX    start_time = time((long *)0);\nX    tm = gmtime(&start_time);\nX    if (tm->tm_year != RULE_YEAR-1900) {\nX\tfprintf(stderr,\nX\t\"%s: WARNING: this program applies to %d, which may differ from %d\\n\\n\",\nX\t    argv[0], RULE_YEAR, 1900+tm->tm_year);\nX    }\nX\nX    /*\nX     * parse the command line args\nX     */\nX    parse_args(argc, argv, &rname, &bname, &pname, &oname);\nX\nX    /*\nX     * open/check the input and output files\nX     *\nX     * We open and truncate the output file first, in case it is the same\nX     * as one of the input files.\nX     */\nX    output = open_output(oname);\nX    remark = open_remark(rname);\nX    build = open_build(bname);\nX    prog = open_program(pname);\nX    if (output==NULL || remark==NULL || build==NULL || prog==NULL) {\nX\texit(1);\nX    }\nX\nX    /*\nX     * output each section\nX     */\nX    output_entry(output, oname);\nX    output_remark(output, oname, remark, rname);\nX    output_author(output, oname);\nX    output_info(output, oname);\nX    output_build(output, oname, build, bname);\nX    output_program(output, oname, prog, pname);\nX    output_end(output, oname);\nX\nX    /* \nX     * flush the output \nX     */\nX    if (fflush(output) == EOF) {\nX\tfprintf(stderr, \"%s: flush error in %s: \", program, oname);\nX\tperror(\"\");\nX\texit(2);\nX    }\nX\nX    /*\nX     * final words\nX     */\nX    printf(\"\\nYour entry can be found in %s.  You should check this file\\n\", \nX\toname);\nX    printf(\"correct any problems and verify that the uudecode utility will\\n\");\nX    printf(\"correctly decode your build file and program.\\n\\n\");\nX    printf(\"This program has been provided as a guide for submitters.  In\\n\");\nX    printf(\"cases where it conflicts with the rules, the rules shall apply.\\n\");\nX    printf(\"It is your responsibility to ensure that your entry conforms to\\n\");\nX    printf(\"the current rules.\\n\\n\");\nX    printf(\"Email your entries to:\\n\");\nX    printf(\"\\t%s\\n\", ENTRY_ADDR1);\nX    printf(\"\\t%s\\n\\n\", ENTRY_ADDR2);\nX    printf(\"Please use the following subject when you Email your entry:\\n\");\nX    printf(\"\\tioccc entry\\n\\n\");\nX    /* all done */\nX    exit(0);\nX}\nX\nX/*\nX * parse_args - parse the command line args\nX *\nX * Given the command line args, this function parses them and sets the\nX * required name flags.  This function will return only if the command\nX * line syntax is correct.\nX */\nXvoid\nXparse_args(argc, argv, rname, bname, pname, oname)\nX    int argc;\t\t/* arg count */\nX    char **argv;\t/* the args */\nX    char **rname;\t/* file with remarks about the entry */\nX    char **bname;\t/* file containing how prog.c should be built */\nX    char **pname;\t/* the obfuscated program source file */\nX    char **oname;\t/* ioccc entry output file */\nX{\nX    char *optarg;\t/* -flag option operand */\nX    int flagname;\t/* the name of the -flag */\nX    int i;\nX\nX    /*\nX     * Not everyone has getopt, so we must parse args by hand.\nX     */\nX    program = argv[0];\nX    for (i=1; i < argc; ++i) {\nX\nX\t/* determine the flagname */\nX\tif (argv[i][0] != '-') {\nX\t    usage(1);\nX\t    /*NOTREACHED*/\nX\t}\nX\tflagname = (int)argv[i][1];\nX\nX\t/* determine the flag's operand */\nX\tif (flagname != '\\0' && argv[i][2] != '\\0') {\nX\t    optarg = &argv[i][2];\nX\t} else {\nX\t    if (i+1 >= argc) {\nX\t\tusage(2);\nX\t\t/*NOTREACHED*/\nX\t    } else {\nX\t\toptarg = argv[++i];\nX\t    }\nX\t}\nX\nX\t/* save the flag's operand in the correct global variable */\nX\tswitch (flagname) {\nX\tcase 'r':\nX\t    *rname = optarg;\nX\t    break;\nX\tcase 'b':\nX\t    *bname = optarg;\nX\t    break;\nX\tcase 'p':\nX\t    *pname = optarg;\nX\t    break;\nX\tcase 'o':\nX\t    *oname = optarg;\nX\t    break;\nX\tdefault:\nX\t    usage(3);\nX\t    /*NOTREACHED*/\nX\t}\nX    }\nX\nX    /*\nX     * verify that we have all of the required flags\nX     */\nX    if (*rname == NULL || *bname == NULL || *pname == NULL || *oname == NULL) {\nX\tusage(4);\nX\t/*NOTREACHED*/\nX    }\nX    return;\nX}\nX\nX/*\nX * usage - print a usage message and exit\nX *\nX * This function does not return.\nX */\nXvoid\nXusage(exitval)\nX    int exitval;\t\t/* exit with this value */\nX{\nX    fprintf(stderr,\nX\t\"usage: %s -r remarks -b build -p prog.c -o ioccc.entry\\n\\n\", program);\nX    fprintf(stderr, \"\\t-r remarks\\tfile with remarks about the entry\\n\");\nX    fprintf(stderr, \"\\t-b build\\tfile containing how prog.c should be built\\n\");\nX    fprintf(stderr, \"\\t-p prog.c\\tthe obfuscated program source file\\n\");\nX    fprintf(stderr, \"\\t-o ioccc.entry\\tioccc entry output file\\n\");\nX    exit(exitval);\nX}\nX\nX/*\nX * open_remark - open/check the remark file\nX *\nX * The remark file should be indented by 4 spaces, and should not extend \nX * beyond column MAX_COL.  These are not requirements, so we only warn.\nX *\nX * This function returns NULL on I/O or format error.\nX */\nXFILE *\nXopen_remark(filename)\nX    char *filename;\nX{\nX    FILE *stream;\t\t/* the opened file stream */\nX    char buf[BUFSIZ+1];\t\t/* input buffer */\nX    int toolong=0;\t\t/* number of lines that are too long */\nX    int non_indent=0;\t\t/* number of lines not indented by 4 spaces */\nX\nX    /*\nX     * open the remark input file\nX     */\nX    stream = fopen(filename, \"r\");\nX    if (stream == NULL) {\nX\tfprintf(stderr, \"%s: cannot open remark file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\treturn(NULL);\nX    }\nX\nX    /*\nX     * look at each line\nX     */\nX    while (fgets(buf, BUFSIZ, stream) != NULL) {\nX\nX\t/* count lines that do not start with 4 spaces */\nX\tif (buf[0] != '\\n' && strncmp(buf, \"    \", 4) != 0) {\nX\t    ++non_indent;\nX\t}\nX\nX\t/* count long lines */\nX\tif (col_len(buf) > MAX_COL) {\nX\t    /* found a line that is too long */\nX\t    ++toolong;\nX\t}\nX    }\nX\nX    /* watch for I/O errors */\nX    check_io(stream, filename, EOF_OK);\nX\nX    /* note long lines if needed */\nX    if (toolong > 0) {\nX\tfprintf(stderr,\nX\t    \"%s: WARNING: %d line(s) from %s extend beyond the 80th column\\n\",\nX\t    program, toolong, filename);\nX\tfprintf(stderr,\nX\t    \"%s:          This is ok, but it would be nice to avoid\\n\\n\",\nX\t    program);\nX    }\nX\nX    /* note non-indented lines, if needed */\nX    if (non_indent > 0) {\nX\tfprintf(stderr,\nX\t    \"%s: WARNING: %d line(s) from %s are not indented by 4 spaces\\n\",\nX\t    program, non_indent, filename);\nX\tfprintf(stderr,\nX\t    \"%s:          This is ok, but it would be nice to avoid\\n\\n\",\nX\t    program);\nX    }\nX\nX    /* return the open file */\nX    rewind(stream);\nX    return(stream);\nX}\nX\nX/*\nX * open_build - open/check the build file\nX *\nX * The how to build file must not be longer than MAX_BUILD_SIZE bytes.\nX *\nX * This function returns NULL on I/O or size error.\nX */\nXFILE *\nXopen_build(filename)\nX    char *filename;\nX{\nX    FILE *stream;\t\t/* the opened file stream */\nX    struct stat statbuf;\t/* the status of the open file */\nX\nX    /*\nX     * open the how to build input file\nX     */\nX    stream = fopen(filename, \"r\");\nX    if (stream == NULL) {\nX\tfprintf(stderr, \"%s: cannot open how to build file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\treturn(NULL);\nX    }\nX\nX    /*\nX     * determine the size of the file\nX     */\nX    if (fstat(fileno(stream), &statbuf) < 0) {\nX\tfprintf(stderr, \"%s: cannot stat how to build file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\treturn(NULL);\nX    }\nX    if (statbuf.st_size > MAX_BUILD_SIZE) {\nX\tfprintf(stderr,\nX\t    \"%s: FATAL: the how to build file: %s, is %d bytes long\\n\",\nX\t    program, filename, statbuf.st_size);\nX\tfprintf(stderr,\nX\t    \"%s:        it may not be longer than %d bytes\\n\",\nX\t    program, MAX_BUILD_SIZE);\nX\treturn(NULL);\nX    }\nX\nX    /* return the open file */\nX    return(stream);\nX}\nX\nX/*\nX * open_program - open/check the program source file\nX *\nX * The program source file must be <= 3217 bytes.  The number of\nX * non-whitespace and }{; chars not followed by whitespace must\nX * be <= 1536 bytes.\nX *\nX * This function returns NULL on I/O or size error.\nX */\nXFILE *\nXopen_program(filename)\nX    char *filename;\nX{\nX    FILE *stream;\t\t/* the opened file stream */\nX    struct stat statbuf;\t/* the status of the open file */\nX    int count;\t\t\t/* special count size */\nX    int c;\t\t\t/* the character read */\nX\nX    /*\nX     * open the program source input file\nX     */\nX    stream = fopen(filename, \"r\");\nX    if (stream == NULL) {\nX\tfprintf(stderr, \"%s: cannot open program source file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\texit(7);\nX    }\nX\nX    /*\nX     * determine the size of the file\nX     */\nX    if (fstat(fileno(stream), &statbuf) < 0) {\nX\tfprintf(stderr, \"%s: cannot stat program source file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\treturn(NULL);\nX    }\nX    if (statbuf.st_size > MAX_PROGRAM_SIZE) {\nX\tfprintf(stderr,\nX\t    \"%s: FATAL: the program source file: %s, is %d bytes long\\n\",\nX\t    program, filename, statbuf.st_size);\nX\tfprintf(stderr,\nX\t    \"%s:        it may not be longer than %d bytes\\n\",\nX\t    program, MAX_PROGRAM_SIZE);\nX\treturn(NULL);\nX    }\nX\nX    /*\nX     * count the non-whitespace, non {}; followed by whitespace chars\nX     */\nX    count = 0;\nX    c = 0;\nX    while ((c=fgetc(stream)) != EOF) {\nX\t/* look at non-whitespace */\nX\tif (!isascii(c) || !isspace(c)) {\nX\t    switch (c) {\nX\t    case '{':\t\t/* count if not followed by EOF or whitespace */\nX\t    case '}':\nX\t    case ';':\nX\t\t/* peek at next char */\nX\t\tc = fgetc(stream);\nX\t\tif (c != EOF && isascii(c) && !isspace(c)) {\nX\t\t    /* not followed by whitespace or EOF, count it */\nX\t\t    ungetc(c, stream);\nX\t\t    ++count;\nX\t\t}\nX\t\tbreak;\nX\t    default:\nX\t\t++count;\nX\t\tbreak;\nX\t    }\nX\t}\nX    }\nX\nX    /* watch for I/O errors */\nX    check_io(stream, filename, EOF_OK);\nX\nX    /* look at the special size */\nX    if (count > MAX_PROGRAM_SIZE2) {\nX\tfprintf(stderr,\nX\t    \"%s: FATAL: the number of bytes that are non-whitespace, and\\n\",\nX\t    program);\nX\tfprintf(stderr,\nX\t    \"%s:        that are not '{', '}', ';' followed by whitespace\\n\",\nX\t    program);\nX\tfprintf(stderr,\nX\t    \"%s:        or EOF must be <= %d bytes\\n\",\nX\t    program, MAX_PROGRAM_SIZE2);\nX\tfprintf(stderr,\nX\t    \"%s:        in %s, %d bytes were found\\n\",\nX\t    program, filename, count);\nX\treturn(NULL);\nX    }\nX\nX    /* return the open file */\nX    rewind(stream);\nX    return(stream);\nX}\nX\nX/*\nX * open_output - open/check the entry output file\nX *\nX * This function returns NULL on open error.\nX */\nXFILE *\nXopen_output(filename)\nX    char *filename;\nX{\nX    FILE *stream;\t\t/* the opened file stream */\nX\nX    /*\nX     * open the ioccc entry output file\nX     */\nX    stream = fopen(filename, \"w\");\nX    if (stream == NULL) {\nX\tfprintf(stderr, \"%s: cannot open ioccc entry file for output: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\texit(8);\nX    }\nX\nX    /* return the open file */\nX    return(stream);\nX}\nX\nX/*\nX * output_entry - output the ---entry--- section\nX *\nX * Read the needed information form stdin, and write the entry section.\nX */\nXvoid\nXoutput_entry(output, oname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX{\nX    char title[MAX_TITLE_LEN+1+1];\t/* the entry's title */\nX    char buf[MAX_COL+1+1];\t\t/* I/O buffer */\nX    int entry=0;\t\t\t/* entry number */\nX    int ret;\t\t\t\t/* fields processed by fscanf */\nX    int ok_line=0;\t\t\t/* 0 => the line is not ok */\nX    char skip;\t\t\t\t/* input to skip */\nX    FILE *date_pipe;\t\t\t/* pipe to a date command */\nX    time_t epoch_sec;\t\t\t/* seconds since the epoch */\nX    char *p;\nX\nX    /*\nX     * write the start of the section\nX     */\nX    fprintf(output, \"---entry---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * write the rule year\nX     */\nX    fprintf(output, \"rule:\\t%d\\n\", RULE_YEAR);\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /* determine if this is a fix */\nX    printf(\"Is this a fix, update or resubmittion to a \");\nX    printf(\"previous entry (enter y or n)? \");\nX    while (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {\nX\tprintf(\"\\nplease answer y or n: \");\nX    }\nX    if (buf[0] == 'y') {\nX\tfprintf(output, \"fix:\\ty\\n\");\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\tprintf(\"\\nBe sure that the title and entry number that you give\\n\");\nX\tprintf(\"are the same of as the entry you are replacing\\n\");\nX    } else {\nX\tfprintf(output, \"fix:\\tn\\n\");\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX    }\nX\nX    /*\nX     * write the title\nX     */\nX    printf(\"\\nYour title must match expression be a [a-zA-Z0-9_=] character\\n\");\nX    printf(\"followed by 0 to %d more [a-zA-Z0-9_=+-] characters.\\n\\n\",\nX\tMAX_TITLE_LEN-1);\nX    printf(\"It is suggested, but not required, that the title should\\n\");\nX    printf(\"incorporate your username; in the\\n\");\nX    printf(\"case of multiple authors, consider using parts of the usernames\\n\");\nX    printf(\"of the authors.\\n\\n\");\nX    printf(\"enter your title: \");\nX    do {\nX\t/* prompt and read a line */\nX\tif ((ok_line = get_line(title, MAX_TITLE_LEN+1, MAX_COL-9)) <= 0) {\nX\t    printf(\"\\ntitle is too long, please re-enter: \");\nX\t    continue;\nX\t}\nX\nX\t/* verify the pattern, not everyone has regexp, so do it by hand */\nX\tif (!isascii((int)title[0]) ||\nX\t    !(isalnum((int)title[0]) || title[0] == '_' || title[0] == '=')) {\nX\t    printf(\"\\ninvalid first character in the title\\n\\n\");\nX\t    printf(\"enter your title: \");\nX\t    ok_line = 0;\nX\t} else {\nX\t    for (p=(&title[1]); *p != '\\0' && *p != '\\n'; ++p) {\nX\t\tif (!isascii((int)*p) ||\nX\t\t    !(isalnum((int)*p) || \nX\t\t      *p == '_' || *p == '=' || *p == '+' || *p == '-')) {\nX\t\t    printf(\"\\ninvalid character in the title\\n\\n\");\nX\t\t    printf(\"enter your title: \");\nX\t\t    ok_line = 0;\nX\t\t}\nX\t    }\nX\t}\nX    } while (ok_line <= 0);\nX    fprintf(output, \"title:\\t%s\", title);\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * write the entry number\nX     */\nX    printf(\"\\nEach person may submit up to %d entries per year.\\n\\n\",\nX\tMAX_ENTRY);\nX    printf(\"enter an entry number from 0 to %d inclusive: \", MAX_ENTRY-1);\nX    do {\nX\t/* get a valid input line */\nX\tfflush(stdout);\nX\tret = fscanf(stdin, \"%d[\\n]\", &entry);\nX\tcheck_io(stdin, \"stdin\", EOF_NOT_OK);\nX\t/* skip over input until newline is found */\nX\tdo {\nX\t    skip = fgetc(stdin);\nX\t    check_io(stdin, \"stdin\", EOF_NOT_OK);\nX\t    if (skip != '\\n') {\nX\t\t/* bad text in input, invalidate entry number */\nX\t\tentry = -1;\nX\t    }\nX\t} while (skip != '\\n');\nX\nX\t/* check if we have a number, and if it is in range */\nX\tif (ret != 1 || entry < 0 || entry > MAX_ENTRY-1) {\nX\t    printf(\nX\t      \"\\nThe entry number must be between 0 and %d inclusive\\n\\n\",\nX\t\tMAX_ENTRY-1);\nX\t    printf(\"enter the entry number: \");\nX\t}\nX    } while (ret != 1 || entry < 0 || entry > MAX_ENTRY-1);\nX    fprintf(output, \"entry:\\t%d\\n\", entry);\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * write the submission date\nX     */\nX    /* returns a newline */\nX    epoch_sec = time(NULL);\nX    fprintf(output, \"date:\\t%s\", asctime(gmtime(&epoch_sec)));\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * write the OS/machine host information\nX     */\nX    printf(\nX      \"\\nEnter the machine(s) and OS(s) under which your entry was tested.\\n\");\nX    output_till_dot(output, oname, \"host:\");\nX}\nX\nX/*\nX * output_remark - output the ---remark--- section\nX *\nX * Read the needed information form stdin, and write the entry section.\nX */\nXvoid\nXoutput_remark(output, oname, remark, rname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX    FILE *remark;\t\t/* stream to the file containing remark text */\nX    char *rname;\t\t/* name of the remark file */\nX{\nX    char buf[BUFSIZ+1];\t\t/* input/output buffer */\nX\nX    /*\nX     * write the start of the section\nX     */\nX    fprintf(output, \"---remark---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * copy the remark file to the section\nX     */\nX    while (fgets(buf, BUFSIZ, remark) != NULL) {\nX\tfputs(buf, output);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX    }\nX    check_io(remark, rname, EOF_OK);\nX\nX    /* be sure that the remark section ends with a newline */\nX    if (buf[strlen(buf)-1] != '\\n') {\nX\tfputc('\\n', output);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX    }\nX}\nX\nX/*\nX * output_author - output the ---author--- section\nX *\nX * Read the needed information from stdin, and write the author section.\nX * If multiple authors exist, multiple author sections will be written.\nX */\nXvoid\nXoutput_author(output, oname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX{\nX    char buf[MAX_COL+1+1];\t/* I/O buffer */\nX    int more_auths;\t\t/* TRUE => more authors to note */\nX    int auth_cnt=0;\t\t/* number of authors processed */\nX\nX    /*\nX     * prompt the user for the author section\nX     */\nX    printf(\"\\nEnter information about each author.  If your entry is after\\n\");\nX    printf(\"%s and before the contest deadline, the judges\\n\", START_DATE);\nX    printf(\"will attempt to Email back a confirmation to the first author\\n\");\nX\nX    /*\nX     * place author information for each author in an individual section\nX     */\nX    do {\nX\nX\t/* write the start of the section */\nX\tfprintf(output, \"---author---\\n\");\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* write the author */\nX\tprintf(\"\\nAuthor #%d name: \", ++auth_cnt);\nX\twhile (get_line(buf, MAX_COL+1, MAX_COL-9) <= 0) {\nX\t    printf(\"\\nname too long, please re-enter: \");\nX\t}\nX\tfprintf(output, \"name:\\t%s\", buf);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* write the organization */\nX\tprintf(\"\\nEnter the School/Company/Organization of author #%d\\n\",\nX\t    auth_cnt);\nX\tprintf(\"\\nAuthor #%d org: \", auth_cnt);\nX\twhile (get_line(buf, MAX_COL+1, MAX_COL-9) <= 0) {\nX\t    printf(\"\\nline too long, please re-enter: \");\nX\t}\nX\tfprintf(output, \"org:\\t%s\", buf);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* write the address */\nX\tprintf(\nX\t    \"\\nEnter the postal address for author #%d.  Be sure to include\\n\",\nX\t    auth_cnt);\nX\tprintf(\"your country and do not include your name.\\n\");\nX\toutput_till_dot(output, oname, \"addr:\");\nX\nX\t/* write the Email address */\nX\tprintf(\nX\t    \"\\nEnter the Email address for author #%d.  Use an address from\\n\",\nX\t    auth_cnt);\nX\tprintf(\nX\t    \"a registered domain or well known site.  If you give several\\n\");\nX\tprintf(\"forms, list them one per line.\\n\");\nX\toutput_till_dot(output, oname, \"email:\");\nX\nX\t/* write the anonymous status */\nX\tprintf(\"\\nShould author #%d remain anonymous (enter y or n)? \",\nX\t    auth_cnt);\nX\twhile (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {\nX\t    printf(\"\\nplease answer y or n: \");\nX\t}\nX\tfprintf(output, \"anon:\\t%s\", buf);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* determine if there is another author */\nX\tprintf(\"\\nIs there another author (enter y or n)? \");\nX\twhile (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {\nX\t    printf(\"\\nplease answer y or n: \");\nX\t}\nX\tif (buf[0] == 'y') {\nX\t    more_auths = TRUE;\nX\t} else {\nX\t    more_auths = FALSE;\nX\t}\nX    } while (more_auths == TRUE);\nX    return;\nX}\nX\nX/*\nX * output_info - output the ---info--- section(s)\nX *\nX * Read the needed information from stdin, and write the info section.\nX * If multiple info files exist, multiple info sections will be written.\nX */\nXvoid\nXoutput_info(output, oname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX{\nX    char infoname[MAX_FILE_LEN+1];\t/* filename buffer */\nX    char yorn[1+1];\t\t/* y or n answer */\nX    char *uuname;\t\t/* name to uuencode as */\nX    FILE *infile;\t\t/* info file stream */\nX\nX    /*\nX     * prompt the user for info information\nX     */\nX    printf(\"\\nInfo files should be used only to supplement your entry.\\n\");\nX    printf(\"For example, info files may provide sample input or detailed\\n\");\nX    printf(\"information about your entry.  Because they are supplemental,\\n\");\nX    printf(\"the entry should not require them to exist.\\n\\n\");\nX\nX    /*\nX     * while there is another info file to save, uuencode it\nX     */\nX    printf(\"Do you have a info file to include (enter y or n)? \");\nX    while (get_line(yorn, 1+1, 0) <= 0 || !(yorn[0]=='y' || yorn[0]=='n')) {\nX\tprintf(\"\\nplease answer y or n: \");\nX    }\nX    while (yorn[0] == 'y') {\nX\nX\t/* read the filename */\nX\tprintf(\"\\nEnter the info filename: \");\nX\twhile (get_line(infoname, MAX_FILE_LEN+1, 0) <= 0) {\nX\t    printf(\"\\nInfo filename too long, please re-enter: \");\nX\t}\nX\nX\t/* compute the basename of the info filename */\nX\t/* remove the trailing newline */\nX\tuuname = &infoname[strlen(infoname)-1];\nX\t*uuname = '\\0';\nX\t/* avoid rindex/shrrchr compat issues, do it by hand */\nX\tfor (--uuname; uuname > infoname; --uuname) {\nX\t    if (*uuname == '/') {\nX\t\t++uuname;\nX\t\tbreak;\nX\t    }\nX\t}\nX\nX\t/* attempt to open the info file */\nX\tinfile = fopen(infoname, \"r\");\nX\tif (infile == NULL) {\nX\t    fprintf(stderr, \"\\n%s: cannot open info file: %s: \",\nX\t\tprogram, infoname);\nX\t    perror(\"\");\nX\t    continue;\nX\t}\nX\nX\t/*\nX\t * write the start of the section\nX\t */\nX\tfprintf(output, \"---info---\\n\");\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* uuencode the info file */\nX\tuuencode(output, oname, infile, infoname, UUINFO_MODE, uuname);\nX\nX\tprintf(\"\\nDo you have another info file to include (enter y or n)? \");\nX\twhile (get_line(yorn, 1+1, 0) <= 0 || !(yorn[0]=='y' || yorn[0]=='n')) {\nX\t    printf(\"\\nplease answer y or n: \");\nX\t}\nX    };\nX    return;\nX}\nX\nX/*\nX * output_build - output the ---build--- section\nX *\nX * Read the needed information from stdin, and write the build section.\nX */\nXvoid\nXoutput_build(output, oname, build, bname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX    FILE *build;\t\t/* open build file stream */\nX    char *bname;\t\t/* name of the build file */\nX{\nX    /*\nX     * write the start of the section\nX     */\nX    fprintf(output, \"---build---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * uuencode the program file\nX     */\nX    uuencode(output, oname, build, bname, UUBUILD_MODE, UUBUILD_NAME);\nX    return;\nX}\nX\nX/*\nX * output_program - output the ---program--- section\nX *\nX * Read the needed information form stdin, and write the program section.\nX */\nXvoid\nXoutput_program(output, oname, prog, pname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX    FILE *prog;\t\t\t/* open program stream */\nX    char *pname;\t\t/* name of program file */\nX{\nX    /*\nX     * write the start of the section\nX     */\nX    fprintf(output, \"---program---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * uuencode the program file\nX     */\nX    uuencode(output, oname, prog, pname, UUPROG_MODE, UUPROG_NAME);\nX    return;\nX}\nX\nX/*\nX * output_end - output the ---end--- section\nX *\nX * Read the needed information form stdin, and write the 'end section'.\nX */\nXvoid\nXoutput_end(output, oname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX{\nX    /*\nX     * write the final section terminator\nX     */\nX    fprintf(output, \"---end---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX    return;\nX}\nX\nX/*\nX * get_line - get an answer from stdin\nX *\nX * This function will flush stdout, in case a prompt is pending, and\nX * read in the answer.\nX *\nX * This function returns 0 if the line is too long, of the length of the\nX * line (including the newline) of the line was ok.  This function does\nX * not return if ERROR or EOF.\nX */\nXint\nXget_line(buf, siz, maxcol)\nX    char *buf;\t\t\t/* input buffer */\nX    int siz;\t\t\t/* length of input, including the newline */\nX    int maxcol;\t\t\t/* max col allowed, 0 => disable check */\nX{\nX    int length;\t\t\t/* the length of the input line */\nX\nX    /* flush terminal output */\nX    fflush(stdout);\nX\nX    /* read the line */\nX    if (fgets(buf, siz+1, stdin) == NULL) {\nX\t/* report the problem */\nX\tcheck_io(stdin, \"stdin\", EOF_NOT_OK);\nX    }\nX\nX    /* look for the newline */\nX    length = strlen(buf);\nX    if (buf[length-1] != '\\n') {\nX\tint eatchar;\t\t/* the char being eaten */\nX\nX\t/* no newline found, line must be too long, eat the rest of the line */\nX\tdo {\nX\t    eatchar = fgetc(stdin);\nX\t} while (eatchar != EOF && eatchar != '\\n');\nX\tcheck_io(stdin, \"stdin\", EOF_NOT_OK);\nX\nX\t/* report the situation */\nX\treturn 0;\nX    }\nX\nX    /* watch for long lines, if needed */\nX    if (maxcol > 0 && (length > maxcol || col_len(buf) > maxcol)) {\nX\t/* report the situation */\nX\treturn 0;\nX    }\nX\nX    /* return length */\nX    return length;\nX}\nX\nX/*\nX * output_till_dot - output a set of lines until '.' by itself is read\nX *\nX * This routine will read a set of lines until (but not including)\nX * a single line with '.' is read.  The format of the output is:\nX *\nX *\tleader:\\tfirst line\nX *\t\\tnext line\nX *\t\\tnext line\nX *\t   ...\nX *\nX * This routine will not return if I/O error or EOF.\nX */\nXvoid\nXoutput_till_dot(output, oname, leader)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX    char *leader;\t\t/* the lead text for the first line */\nX{\nX    char buf[BUFSIZ+1];\t\t/* input buffer */\nX    int count;\t\t\t/* lines read */\nX    int done=FALSE;\t\t/* TRUE => finished reading input */\nX\nX    /* instruct the user on how to input */\nX    printf(\"\\nTo end input, enter a line with a single period.\\n\");\nX\nX    /* read lines until '.' or EOF */\nX    count = 0;\nX    while (!done) {\nX\t/* issue the prompt */\nX\tprintf(\"%s\\t\", (count>0) ? \"\" : leader);\nX\tfflush(stdout);\nX\nX\t/* get the line */\nX\tif (get_line(buf, BUFSIZ, MAX_COL-9) <= 0) {\nX\t    printf(\"\\nline too long, please re-enter:\\n\\t\");\nX\t    continue;\nX\t}\nX\nX\t/* note if '.' was read */\nX\tif (strcmp(buf, \".\\n\") == 0) {\nX\t    done = TRUE;\nX\t}\nX\nX\t/* write line if we read something */\nX\tif (!done) {\nX\t    fprintf(output, \"%s\\t%s\", (count++>0) ? \"\" : leader, buf);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\t}\nX    }\nX\nX    /* if no lines read, at least output something */\nX    if (count <= 0) {\nX\tfprintf(output, \"%s\\t.\\n\", leader);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX    }\nX    return;\nX}\nX\nX/*\nX * col_len - determine the highest that a string would reach\nX *\nX * Given a string, this routine returns that a string would reach\nX * if the string were printed at column 1.  Tab stops are assumed\nX * to start at 9, 17, 25, 33, ...\nX */\nXint\nXcol_len(string)\nX    char *string;\t\t/* the string to examine */\nX{\nX    int col;\t/* current column */\nX    char *p;\t/* current char */\nX\nX    /* scan the string */\nX    for (col=0, p=string; *p != '\\0' && *p != '\\n'; ++p) {\nX\t/* note the column shift */\nX\tcol = (*p=='\\t') ? 1+((col+8)/8*8) : col+1;\nX    }\nX    if (*p == '\\n') {\nX\t--col;\nX    }\nX\nX    /* return the highest column */\nX    return col;\nX}\nX\nX/*\nX * check_io - check for EOF or I/O error on a stream\nX *\nX * Does not return if EOF or I/O error.\nX */\nXvoid\nXcheck_io(stream, name, eof_ok)\nX    FILE *stream;\t\t/* the stream to check */\nX    char *name;\t\t\t/* the name of this stream */\nX    int eof_ok;\t\t\t/* EOF_OK or EOF_NOT_OK */\nX{\nX    /* test for I/O error */\nX    if (ferror(stream)) {\nX\tfprintf(stderr, \"%s: error on %s: \", program, name);\nX\tperror(\"\");\nX\texit(1);\nX\nX    /* test for EOF */\nX    } else if (eof_ok == EOF_NOT_OK && feof(stream)) {\nX\tfprintf(stderr, \"%s: EOF on %s\\n\", program, name);\nX\texit(1);\nX    }\nX    return;\nX}\nX\nX/*\nX * uuencode - uuencode a file\nX *\nX * Perform the uuencoding process identical to the process performed\nX * by the uuencode(1) utility.\nX *\nX * This routine implements the algorithm described in the uuencode(5)\nX * 4.3BSD Reno man page.\nX */\nXvoid\nXuuencode(output, oname, infile, iname, umode, uname)\nX    FILE *output;\t\t/* output file stream */\nX    char *oname;\t\t/* output filename */\nX    FILE *infile;\t\t/* input file stream */\nX    char *iname;\t\t/* input filename */\nX    int umode;\t\t\t/* the mode to put on the uuencode file */\nX    char *uname;\t\t/* name to put on the uuencode file */\nX{\nX    char buf[UUENCODE_LEN+1];\t/* the uuencode buffer */\nX    int read_len;\t\t/* actual number of chars read */\nX    int val;\t\t\t/* 6 bit chunk from buf */\nX    char filler='\\0';\t\t/* filler uuencode pad text */\nX    char *p;\nX\nX    /*\nX     * output the initial uuencode header\nX     */\nX    fprintf(output, \"begin %o %s\\n\", umode, uname);\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * clear out the input buffer\nX     */\nX    for (p=buf; p < &buf[sizeof(buf)/sizeof(buf[0])]; ++p) {\nX\t*p = '\\0';\nX    }\nX\nX    /*\nX     * We will process UUENCODE_LEN chars at a time, forming\nX     * a single output line each time.\nX     */\nX    while ((read_len=fread(buf,sizeof(buf[0]),UUENCODE_LEN,infile)) > 0) {\nX\t\nX\t/*\nX\t * the first character is the length character\nX\t */\nX\tfputc(UUENCODE(read_len), output);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/*\nX\t * We will convert 24 bits at a time.  Thus we will convert\nX\t * 3 sets of 8 bits into 4 sets of uuencoded 6 bits.\nX\t */\nX\tfor (p=buf; read_len>0; read_len-=3, p+=3) {\nX\nX\t    /* bits 0 to 5 */\nX\t    val = (p[0]>>2)&0x3f;\nX\t    fputc(UUENCODE(val), output);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\nX\t    /* bits 6 to 11 */\nX\t    val = ((p[0]<<4)&0x30) | ((p[1]>>4)&0x0f);\nX\t    fputc(UUENCODE(val), output);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\nX\t    /* bits 12 to 17 */\nX\t    val = ((p[1]<<2)&0x3c) | ((p[2]>>6)&0x03);\nX\t    fputc(UUENCODE(val), output);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\nX\t    /* bits 18 to 23 */\nX\t    val = p[2]&0x3f;\nX\t    fputc(UUENCODE(val), output);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\t}\nX\nX\t/* end of UUENCODE_LEN line */\nX\tfputc('\\n', output);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/*\nX\t * clear out the input buffer  (don't depend on bzero() or memset())\nX\t */\nX\tfor (p=buf; p < &buf[sizeof(buf)/sizeof(buf[0])]; ++p) {\nX\t    *p = '\\0';\nX\t}\nX    }\nX\nX    /* check the last read on the input file */\nX    check_io(infile, iname, EOF_OK);\nX\nX    /* write end of uuencode file */\nX    fprintf(output, \"%c\\nend\\n\", UUENCODE(filler));\nX    check_io(output, oname, EOF_NOT_OK);\nX}\nSHAR_EOF\nchmod 0444 mkentry.c ||\necho \"restore of mkentry.c failed\"\nset `wc -c mkentry.c`;Wc_c=$1\nif test \"$Wc_c\" != \"33961\"; then\n\techo original size 33961, current size $Wc_c\nfi\n# ============= obfuscate.info ==============\necho \"x - extracting obfuscate.info (Text)\"\nsed 's/^X//' << 'SHAR_EOF' > obfuscate.info &&\nX1993 Obfuscated contest information\nX\nXCopyright (c) Landon Curt Noll & Larry Bassel, 1993.  \nXAll Rights Reserved.  Permission for personal, education or non-profit use is \nXgranted provided this this copyright and notice are included in its entirety \nXand remains unaltered.  All other uses must receive prior permission in writing \nXfrom both Landon Curt Noll and Larry Bassel.\nX\nXThe International Obfuscated C Code Contest (IOCCC), in the sprit of\nXco-operation, is willing mention other programming contents, as space\nXpermits.  \nX\nXHow to have your contest included in this file:\nX\nX    If you wish the IOCCC judges to include your contest in this file,\nX    send a request to:\nX\nX\tjudges@toad.com\nX\nX    We request that contest descriptions be limited to 50 lines and to\nX    not exceed 2500 bytes.  We typically request that your contest\nX    include a current description of the IOCCC.\nX\nX    In order to be included in this file for given year, we must\nX    receive a current description no EARLIER than Jan 1 00:00:00 UTC and\nX    no LATER than Feb 15 00:00:00 UTC.  Agreement to publish your\nX    contest must also be obtained prior to Feb 15.  Annual contests\nX    that fail to submit a new entry will be dropped from this file.\nX\nXOfficial Disclaimer:  (pardon the officialese)\nX\nX    The contents noted below, other than the IOCCC, are not affiliated \nX    with the IOCCC, nor are they endorsed by the IOCCC.  We reserve the \nX    right to refuse to print information about a given contest.\nX\nX    The information below was provided by the particular contest\nX    organizer(s) and printed by permission.  Please contact the\nX    contest organizer(s) directly regarding their contents.\nX\nXWith that official notice given, we present for your ENJOYMENT, the following\nXinformation about contents:\nX\nX---------------------------------------------------------------------------\nX\nX    10th International Obfuscated C Contest   \nX    \nX\t\"The original obfuscated contest\"\nX\nX    Obfuscate:  tr.v.  -cated, -cating, -cates.  1. a.  To render obscure.\nX                b.  To darken.  2. To confuse:  Their emotions obfuscated \nX\t\ttheir judgment.  [LLat. obfuscare, to darken : ob(intensive) +\nX                Lat. fuscare, to darken < fuscus, dark.] -obfuscation n.\nX                obfuscatory adj.\nX \nX    GOALS OF THE CONTEST:\nX \nX        * To write the most Obscure/Obfuscated C program under the rules below.\nX        * To show the importance of programming style, in an ironic way.\nX        * To stress C compilers with unusual code.\nX        * To illustrate some of the subtleties of the C language.\nX        * To provide a safe forum for poor C code.  :-)\nX \nX    The IOCCC is the grandfather of USENET programming contests.  Since\nX    1984, this contest demonstrated that a program that mearly works\nX    correctly is not sufficient.  The IOCCC has also done much to add\nX    the arcane word 'obfuscated' back into the English language.\nX    (see \"The New Hacker's Dictionary\" by Eric Raymond)\nX \nX    You are strongly encouraged to read the new contest rules before\nX    sending any entries.  The rules, and sometimes the contest Email\nX    address itself, change over time.  A valid entry one year may\nX    be rejected in a later year due to changes in the rules.  The typical\nX    start date for contests is in early March.  Contest rules are normally not\nX    finalized and posted until the beginning of the contest.  The typical \nX    closing date for contests are in early May.\nX \nX    The contest rules are posted to comp.unix.wizards, comp.lang.c,\nX    misc.misc, alt.sources and comp.sources.d.  If you do not have access \nX    to these groups, or if you missed the early March posting, you may \nX    request a copy from the judges, via Email, at;\nX \nX        judges@toad.com   -or-   ...!{sun,uunet,utzoo,pyramid}!hoptoad!judges\nX \nX    Previous contest winners are available via anonymous ftp from\nX    ftp.uu.net under the directory /pub/ioccc.\nX\nX---------------------------------------------------------------------------\nX\nX    0th International Obfuscated Perl Contest\nX\tBy: Landon Noll & Larry Wall\nX\nX    This content is being planned.  Someday when Landon & Larry are not too \nX    busy, they will actually get around to posting the first set of rules!\nX\nX    Landon says: \"Yes, I know that I said we would have a contest in 1993,\nX\t\t  but other existing projects got in the way.  Hopefully\nX\t\t  something will be developed after Nov 1993.\"\nX\nX---------------------------------------------------------------------------\nX\nX                2nd International obFUsCaTeD POsTsCripT Contest\nX                     Jonathan Monsarrat (jgm@cs.brown.edu)\nX                         Alena Lacova (alena@nikhef.nl)\nX\nX    A  contest of  programming skills  and  knowledge, exclusively  for the\nX    PostScript programming language. Its purpose:\nX\nX    * To spread knowledge of PostScript and its details.\nX    * To applaud those with the best tricks.\nX    * To prove  that humans can  beat those damnable  machine generators at\nX      their own game by writing  the most obscure and mysterious PostScript\nX      programs ever.\nX\nX    Winners will receive the fame and attention that goes with having their\nX    program entry posted as a winner to programmers world-wide.\nX\nX    The 1993 contest rules and results are available by ftp as\nX    ``wilma.cs.brown.edu:pub/postscript/obfuscated*.shar'', or individually\nX    in the obfuscated directory. The judges will post the 1994 rules\nX    in November to comp.lang.postscript on Usenet, and other places.\nX    Send questions to jgm@cs.brown.edu.\nX\nX    Categories include: Best Obfuscated PostScript, Best Artwork,\nX    Most Compact, Best Interactive Program, Most Useful, and\nX    anything so unusual and creative that it deserves an award.\nX\nX    The judges will choose the winners of each category.\nX\nX    Alena Lacova  is a system  administrator at NIKHEF  (Institute for High\nX    Energy and Nuclear  Physics) in the  Netherlands. She is  the author of\nX    The PostScript Chaos  Programs, which draw  Julia sets, Mandelbrot sets\nX    and other kinds of fractal functions.\nX\nX    Jonathan Monsarrat is a graduate  student from MIT and Brown University\nX    in  the  U.S.A. He  is  the  FAQ maintainer  for  the  Usenet newsgroup\nX    comp.lang.postscript and the author of The PostScript Zone and LameTeX.\nX .\nX\nSHAR_EOF\nchmod 0444 obfuscate.info ||\necho \"restore of obfuscate.info failed\"\nset `wc -c obfuscate.info`;Wc_c=$1\nif test \"$Wc_c\" != \"6257\"; then\n\techo original size 6257, current size $Wc_c\nfi\nexit 0\n-- \nSunnyvale residents: Vote Landon Noll for Sunnyvale City Council seat 1.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1905, "properties": {"category": "misc.forsale", "text": "From: UD156844@NDSUVM1.BITNET\nSubject: Software Sale\nOrganization: North Dakota Higher Education Computer Network\nLines: 34\n\nHi,\n\nI have the following software forsale:\n\nMicrosoft           MS-DOS  5.0         3.5\"DD    $15\n-- This is a good buy for those who don't need all the utils in DOS 6.0\n\nAccolade            Hardball II         5.25\"DD   $10\n--  Good arcade baseball game, graphics/sound are pretty good, has the\n    ability to make schedules and edit player stats\n\nAccolade           The Third Courier       5.25\"HD     $5\n--  Adventure/Spy type game\n\nEGA                Earl Weaver 2           3.5\"DD      $15\n--  Good arcade/strategy type baseball game, you have ability to play\n    for league play,  i have MLB stats for 1990 and 1991\n\nEGA                Stormovik SU25: Soviet Attack Fighter  3.5\"DD $10\n--  Good fighter simulation, various missions and levels of play\n\n Sierra                 Thexder FireHawk            3.5\" & 5.25\"  $5\n--  Arcade shoot 'em up type game, nice music and sound effects\n\nVirgen                  Scrabble                    3.5\"          $5\n--  computer version of the popular board game\n\nI'm willing to negotiate on the prices, prices do not include shipping.\nShipping costs will be split 50/50.  Drop me a line! :)\n\n\nRoberto Alvarez                                  ud156844@ndsuvm1\nProgrammer Analyst                               ud156844@vm1.nodak.edu\nUniversity of North Dakota                       adrxa@undjes2\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1906, "properties": {"category": "comp.sys.mac.hardware", "text": "From: daves@xetron.com (Dave Steele)\nSubject: Whither QuickDraw Performance (across product line)\nOrganization: Xetron Corp.\nLines: 21\n\nMy company has developed an application for the Mac that emulates a chart\nrecorder - virtual pen traces scroll smoothly across the screen.  As we\ntested the application on a number of computers we discovered some\nsurprising performance differences across products.  The scroll performance\nof the IIsi and LCII was better than the IIfx. This led us to investigate\nColor Quickdraw performance across the Apple line.\n\nThe results:\n\nThe fastest QuickDraw color performing computer Apple makes is the\n(drumroll please) LCIII.  And the Color Classic ranks right up there with\nthe Quadra line.  The Centris line pales in comparison.\n\nDoes anybody know the differences in these computers that explains the\ndisparity in graphics/processor performance?\n\n\nDave Steele (daves@xetron.com) (513)881-3330\nXetron Corp.\n40 W. Crescentville Road\nCincinnati, Ohio 45246\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1907, "properties": {"category": "comp.windows.x", "text": "From: barr@pop.psu.edu (David Barr)\nSubject: Re: tvtwm & xsetroot, X11R5 and Sparc 10 keyboard\nOrganization: Penn State Population Research Institute\nLines: 32\nNNTP-Posting-Host: darwin.pop.psu.edu\n\nIn article <MAILQUEUE-101.930420145015.384@oak.shu.ac.uk> D.Haywood@sheffield-hallam.ac.uk writes:\n>Hi,\n>  Environment: Sun Sparc 10, SunOs 4.1.3.  X11R5 path level 23.  My X process\n>is started by xdm.\n\nOkay, that's good.  I'm typing this from exactly the same setup.\n(US-UNIX layout keyboard)  I did install the sunkbd patch, though.\n\n>  i) I want to setup the backgroud (root window?) of the tvtwm display to\n>     display the escherknot etc (grey is a very boring colour to work on)!\n\nMake sure you're using \"ssetroot\", which comes with tvtwm.  When tvtwm\nstarts up, it nukes the existing root window.  Use an \"ssetroot\" after\ntvtwm starts up.   (You could spawn off a \"(sleep 10; ssetroot ...)&\")\nYou can also use \"VirtualDesktopBackgroundPixmap filename\" or just\nVirtualDesktopBackground if you just want another color besides grey.\n\n> ii) When I open an Xterm on the Sparc 10, not all of the keys are recognised\n>     and some keys on the keyboard are not sending the correct characters.\n\nDid you install the sunkbd patch?  It's in the contrib directory on export.\nAll the keys on my keyboard send events properly, except the following:\nThe End, PageUp, PageDown on the 6-key cluster aren't recognized.\nEven the compose key works.  (Though I can't seem to get the composed\ncharacters in an xterm to get passed.)\n\nAnyone have a fix for the last two?\n\n--Dave\n-- \nSystem Administrator, Penn State Population Research Institute\n* Dog Dianetics (\"Woof woof woof?  Page 725.\") - Kibo\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1908, "properties": {"category": "talk.religion.misc", "text": "From: bobsarv@microsoft.com (Bob Sarver)\nSubject: Re: Question for those with popular morality \nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 103\n\n\nIn article <1993Apr02.025636.23256@microsoft.com> bobsarv@microsoft.com (Bob Sarver) writes:\n>/Why would it be immoral to hurt someone else?  \n>\n/(me)\n>Because you wouldn't want it to happen to you.\n\n/(hudson)\n/Why does that make something immoral?\n\n\n\nBecause you are not being consistent.  Moral systems must be consistent.\n\nA person who thinks they can inflict pain on others, but doesn't want it \ninflicted upon themselves, has a double standard.  And double standards are\na violation of *any* moral system.\n\n\n\n\n\n(me)\n>Morality defines how we interact with other people; the rules that we\n>use to guide our daily affairs.  Our conduct towards our fellow man.  By\n>realizing that we don't like pain, we can also realize that other people\n>don't like it, either.  \n\n/(hudson)\n/Of course we don't like pain.  I don't like brussel sprouts.  Are brussel\n/sprouts immoral?\n\nPain isn't immoral, stupid.  Pain itself is just a physiological\nreaction.  \n\nWhat >>is<< immoral is subjecting unwilling individuals to pain.\n\nOr brussel sprouts, for that matter.\n\n\n\n\n\n\n(hudson)\n>/Is it immoral to produce these same chemical reactions in a test tube?\n>\n(me)\n>It isn't the chemical reaction that is wrong, bozo.  It's making the human\n>being UNDERGO THE EFFECTS of the chemical reaction.  Sorry; your cute\n>little analogy didn't survive for very long under scrutiny.\n\n/(hudson)\n/Why would it be wrong to make humans undergo the effects of the reactions\n/if humans are composed only of matter?  \n\nWhat humans are composed of isn't the qualifying criteria of whether or\nnot something would be wrong.  \n\n\n\n\n/(hudson)\n/Is it wrong to make matter undergo chemical reactions?\n\nYes, if it is sentient matter.\n\n\n\n/(me)\n/>Nature is not a sentient force; there is no choice involved.  Therefore,\n/>no question of morality.\n\n\n/(hudson)\n/I actually heard a geologist entertain the notion that matter had a will.\n/There is some sentient force out there.  \n\nFine.  I have also heard that the government is encoding the DNA for \na new race of superhumans in ordinary drinking water.  \n\nWhat's your point?\n\n\n\n/(hudson)\n/If humans are made only of matter, then choices are also chemical reactions,\n/so why is choice an important issue.\n\nAnd if that is the case, then god is only an idea contained in the minds\nof people (formed of matter) and on printed pages (also formed of matter)\nand does not really exist.  \n\nI can do the argumentem ad absurdium just as well as you can, but it \nwon't prove any points for you or me.  Got anything relevant you want to \ntalk about, or are you just playing cute little games?\n\n\n\n\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1909, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Cookamunga Tourist Bureau\nLines: 25\n\nIn article <1993Apr19.165717.25790@ra.royalroads.ca>,\nmlee@post.RoyalRoads.ca (Malcolm Lee) wrote:\n> \n> It is true what you stated above:  Jesus' saving grace is available to\n> everyone, not just Jews.  In other words, everyone can have salvation but\n> not everyone will.  This option is now open to people other than just\n> Jews.  Of course, if the Jews don't accept the deity of Christ, I would\n> hardly expect them to accept anything that Christ said.  But I don't feel\n> any animosity towards them.  Even though they persecuted Jesus and his\n> disciples and eventually crucified Him, I bear them no ill will.  If anything,\n> I feel pity for them.  Jesus had to die to pay the price for our sins and\n> so the Jews were merely fulfilling prophesy.  Jesus knew He had to die even\n> before He began His ministry.  That demonstrates the great depth of His love\n> for us.\n\nJesus certainly demonstrated the great depth of his love for the\nchildren who died today at the Davidian complex.\n\nSorry, but the events today made me even more negative concering\norganized religion.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1910, "properties": {"category": "comp.graphics", "text": "From: u7711501@bicmos.ee.nctu.edu.tw (jih-shin ho)\nSubject: disp135 [0/7]\nOrganization: National Chiao Tung University\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 285\n\n\n\nI have posted disp135.zip to alt.binaries.pictures.utilities\n\n\n******   You may distribute this program freely for non-commercial use\n         if no fee is gained.\n******   There is no warranty. The author is not responsible for any\n         damage caused by this program.\n\n\nImportant changes since version 1.30:\n    Fix bugs in file management system (file displaying).\n    Improve file management system (more user-friendly).\n    Fix bug in XPM version 3 reading.\n    Fix bugs in TARGA reading/writng.\n    Fix bug in GEM/IMG reading.\n    Add support for PCX and GEM/IMG writing.\n    Auto-skip macbinary header.\n\n\n(1) Introduction:\n  This program can let you READ, WRITE and DISPLAY images with different\n  formats. It also let you do some special effects(ROTATION, DITHERING ....)\n  on image. Its main purpose is to let you convert image among different\n  formts.\n  Include simple file management system.\n  Support 'slide show'.\n  There is NO LIMIT on image size.\n  Currently this program supports 8, 15, 16, 24 bits display.\n  If you want to use HiColor or TrueColor, you must have VESA driver.\n  If you want to modify video driver, please read section (8).\n\n\n(2) Hardware Requirement:\n  PC 386 or better. MSDOS 3.3 or higher.\n  min amount of ram is 4M bytes(Maybe less memory will also work).\n  (I recommend min 8M bytes for better performance).\n  Hard disk for swapping(virtual memory).\n\n  The following description is borrowed from DJGPP.\n\n  Supported Wares:\n\n  * Up to 128M of extended memory (expanded under VCPI)\n  * Up to 128M of disk space used for swapping\n  * SuperVGA 256-color mode up to 1024x768\n  * 80387\n  * XMS & VDISK memory allocation strategies\n  * VCPI programs, such as QEMM, DESQview, and 386MAX\n\n  Unsupported:\n\n  * DPMI\n  * Microsoft Windows\n\n  Features: 80387 emulator, 32-bit unix-ish environment, flat memory\n  model, SVGA graphics.\n\n\n(3) Installation:\n  Video drivers, emu387 and go32.exe are borrowed from DJGPP.\n  (If you use Western Digital VGA chips, read readme.wd)\n  (This GO32.EXE is a modified version for vesa and is COMPLETELY compatible\n   with original version)\n+  *** But some people report that this go32.exe is not compatible with\n+      other DJGPP programs in their system. If you encounter this problem,\n+      DON'T put go32.exe within search path.\n\n  *** Please read runme.bat for how to run this program.\n\n  If you choose xxxxx.grn as video driver, add 'nc 256' to environment\n    GO32.\n\n  For example, go32=driver x:/xxxxx/xxxxx.grn nc 256\n\n  If you don't have 80x87, add 'emu x:/xxxxx/emu387' to environment GO32.\n\n  For example, go32=driver x:/xxxxx/xxxxx.grd emu x:/xxxxx/emu387\n\n  **** Notes: 1. I only test tr8900.grn, et4000.grn and vesa.grn.\n                 Other drivers are not tested.\n              2. I have modified et4000.grn to support 8, 15, 16, 24 bits\n                 display. You don't need to use vesa driver.\n                 If et4000.grn doesn't work, please try vesa.grn.\n              3. For those who want to use HiColor or TrueColor display,\n                 please use vesa.grn(except et4000 users).\n                 You can find vesa BIOS driver from :\n                   wuarchive.wustl.edu: /mirrors/msdos/graphics\n                   godzilla.cgl.rmit.oz.au: /kjb/MGL\n\n\n(4) Command Line Switch:\n\n+   Usage : display [-d|--display initial_display_type]\n+                   [-s|--sort sort_method]\n+                   [-h|-?]\n\n    Display type: 8(SVGA,default), 15, 16(HiColor), 24(TrueColor)\n+   Sort method: 'name', 'ext'\n\n\n(5) Function Key:\n\n    F2 : Change disk drive\n\n+   CTRL-A -- CTRL-Z : change disk drive.\n\n    F3 : Change filename mask (See match.doc)\n\n    F4 : Change parameters\n\n    F5 : Some effects on picture, eg. flip, rotate ....\n\n    F7 : Make Directory\n\n    t : Tag file\n\n    + : Tag group files (See match.doc)\n\n    T : Tag all files\n\n    u : Untag file\n\n    - : Untag group files (See match.doc)\n\n    U : Untag all files\n\n    Ins : Change display type (8,15,16,24) in 'read' & 'screen' menu.\n\n    F6,m,M : Move file(s)\n\n    F8,d,D : Delete file(s)\n\n    r,R : Rename file\n\n    c,C : Copy File(s)\n\n    z,Z : Display first 10 bytes in Ascii, Hex and Dec modes.\n\n+   f,F : Display disk free space.\n\n    Page Up/Down : Move one page\n\n    TAB : Change processing target.\n\n    Arrow keys, Home, End, Page Up, Page Down: Scroll image.\n      Home: Left Most.\n      End: Right Most.\n      Page Up: Top Most.\n      Page Down: Bottom Most.\n      in 'screen' & 'effect' menu :\n        Left,Right arrow: Change display type(8, 15, 16, 24 bits)\n\n    s,S : Slide Show. ESCAPE to terminate.\n\n    ALT-X : Quit program without prompting.\n\n+   ALT-A : Reread directory.\n\n    Escape : Abort function and return.\n\n\n(6) Support Format:\n\n  Read: GIF(.gif), Japan MAG(.mag), Japan PIC(.pic), Sun Raster(.ras),\n        Jpeg(.jpg), XBM(.xbm), Utah RLE(.rle), PBM(.pbm), PGM(.pgm),\n        PPM(.ppm), PM(.pm), PCX(.pcx), Japan MKI(.mki), Tiff(.tif),\n        Targa(.tga), XPM(.xpm), Mac Paint(.mac), GEM/IMG(.img),\n        IFF/ILBM(.lbm), Window BMP(.bmp), QRT ray tracing(.qrt),\n        Mac PICT(.pct), VIS(.vis), PDS(.pds), VIKING(.vik), VICAR(.vic),\n        FITS(.fit), Usenix FACE(.fac).\n\n        the extensions in () are standard extensions.\n\n  Write: GIF, Sun Raster, Jpeg, XBM, PBM, PGM, PPM, PM, Tiff, Targa,\n         XPM, Mac Paint, Ascii, Laser Jet, IFF/ILBM, Window BMP,\n+        Mac PICT, VIS, FITS, FACE, PCX, GEM/IMG.\n\n  All Read/Write support full color(8 bits), grey scale, b/w dither,\n      and 24 bits image, if allowed for that format.\n\n\n(7) Detail:\n\n   Initialization:\n      Set default display type to highest display type.\n      Find allowable screen resolution(for .grn video driver only).\n\n   1. When you run this program, you will enter 'read' menu. Whthin this\n      menu you can press any function key except F5. If you move or copy\n      files, you will enter 'write' menu. the 'write' menu is much like\n      'read' menu, but only allow you to change directory.\n+       The header line in 'read' menu includes \"(d:xx,f:xx,t:xx)\".\n+         d : display type. f: number of files. t: number of tagged files.\n      pressing SPACE in 'read' menu will let you select which format to use\n        for reading current file.\n      pressing RETURN in 'read' menu will let you reading current file. This\n        program will automatically determine which format this file is.\n        The procedure is: First, check magic number. If fail, check\n        standard extension. Still fail, report error.\n      pressing s or S in 'read' menu will do 'Slide Show'.\n        If delay time is 0, program will wait until you hit a key\n          (except ESCAPE).\n        If any error occurs, program will make a beep.\n        ESCAPE to terminate.\n      pressing Ins in 'read' menu will change display type.\n      pressing ALT-X in 'read' menu will quit program without prompting.\n\n   2. Once image file is successfully read, you will enter 'screen' menu.\n      Within this menu F5 is turn on. You can do special effect on image.\n      pressing RETURN: show image.\n        in graphic mode, press RETURN, SPACE or ESCAPE to return to text\n        mode.\n      pressing TAB: change processing target. This program allows you to do\n        special effects on 8-bit or 24-bit image.\n      pressing Left,Right arrow: change display type. 8, 15, 16, 24 bits.\n      pressing SPACE: save current image to file.\n        B/W Dither: save as black/white image(1 bit).\n        Grey Scale: save as grey image(8 bits).\n        Full Color: save as color image(8 bits).\n        True Color: save as 24-bit image.\n\n        This program will ask you some questions if you want to write image\n        to file. Some questions are format-dependent. Finally This program\n        will prompt you a filename. If you want to save file under another\n        directory other than current directory, please press SPACE. after\n        pressing SPACE, you will enter 'write2' menu. You can change\n        directory to what you want. Then,\n\n        pressing SPACE: this program will prompt you 'original' filename.\n        pressing RETURN: this program will prompt you 'selected' filename\n                      (filename under bar).\n\n\n  3. This program supports 8, 15, 16, 24 bits display.\n\n  4. This Program is MEMORY GREEDY. If you don't have enough memory,\n     the performance is poor.\n\n  5. If you want to save 8 bits image :\n       try GIF then TIFF(LZW) then TARGA then Sun Raster then BMP then ...\n\n     If you want to save 24 bits image (lossless):\n       try TIFF(LZW) or TARGA or ILBM or Sun Raster\n       (No one is better for true 24bits image)\n\n  6. I recommend Jpeg for storing 24 bits images, even 8 bits images.\n\n  7. Not all subroutines are fully tested\n\n  8. This document is not well written. If you have any PROBLEM, SUGGESTION,\n     COMMENT about this program,\n     Please send to u7711501@bicmos.ee.nctu.edu.tw (140.113.11.13).\n     I need your suggestion to improve this program.\n     (There is NO anonymous ftp on this site)\n\n\n(8) Tech. information:\n  Program (user interface and some subroutines) written by Jih-Shin Ho.\n  Some subroutines are borrowed from XV(2.21) and PBMPLUS(dec 91).\n  Tiff(V3.2) and Jpeg(V4) reading/writing are through public domain\n    libraries.\n  Compiled with DJGPP.\n  You can get whole DJGPP package from SIMTEL20 or mirror sites.\n    For example, wuarchive.wustl.edu: /mirrors/msdos/djgpp\n\n\n(9) For Thoese who want to modify video driver:\n   1. get GRX source code from SIMTEL20 or mirror sites.\n   2. For HiColor and TrueColor:\n        15 bits : # of colors is set to 32768.\n        16 bits : # of colors is set to 0xc010.\n        24 bits : # of colors is set to 0xc018.\n\n\nAcknowledgment:\n  I would like to thank the authors of XV and PBMPLUS for their permission\n    to let me use their subroutines.\n  Also I will thank the authors who write Tiff and Jpeg libraries.\n  Thank DJ. Without DJGPP I can't do any thing on PC.\n\n\n                                            Jih-Shin Ho\n                                   u7711501@bicmos.ee.nctu.edu.tw\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1911, "properties": {"category": "rec.sport.hockey", "text": "From: spiegel@sgi413.msd.lmsc.lockheed.com (Mark Spiegel)\nSubject: Re: Bay area media (Wings-Leafs coverage)\nOrganization:  Personal Opinions Inc.\nLines: 41\n\nIn article <1993Apr20.031840.18636@ramsey.cs.laurentian.ca> maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n>In <DREIER.93Apr19195132@durban.berkeley.edu> dreier@durban.berkeley.edu (Roland Dreier) writes:\n>\n>>The San Francisco Bay area media is reporting tonight that the Detroit\n>>Red Wings beat the Toronto Maple Leafs 6-3.  Can someone who is not\n>>part of the media conspiracy against the Leafs tell me how the game\n>>really went (I am expecting a 4-0 win for the Leafs, shutout for\n>>Potvin, hat trick for Andreychuk and a goal and 3 assists for\n>>Gilmour).  If the Leafs really lost, how many penalties did whichever\n>>biased ref was at the game have to call against the Leafs to let the\n>>Red Wings win?\n>\n>Ah yes.  California.  Did the San Francisco Bay area media report that\n>Joe Montana is rumoured to be the leading candidate to replace fired\n>San Jose Sharks coach George Kingston?  Apparently Montana is not only\n>coveted for his winning attitude, but as a playing coach he will be\n>expected to quarterback the powerplay.\n\n\tClose Roger, but no banana, er avocado or is it artichoke ?!?\n\n\tGeracie in the Murky News said Kingston will be the new 49ers\n\tquarterback.  I'm still trying to determine if he is kidding\n\tor not :).  If I happen to pound down enuff pints sometime \n\tthis week I'll go back and check what stooper idiot Purdy\n\tsaid in his column.  That ought to be worth a few Leafs, I\n\tmean Laughs.   If I'm really depressed I'll read the SF Comicle.\n\n\tmark\n\n just say\n\n #####  #     #    #    ######  #    #   #####           ____                  \n#     # #     #   # #   #     # #   #   #     #            -_ --__             \n#       #     #  #   #  #     # #  #    #                    \\    --_          \n #####  ####### #     # ######  ###      #####                \\      -_        \n      # #     # ####### #   #   #  #          #                |       \\       \n#     # #     # #     # #    #  #   #   #     #    __________ /         \\_____ \n #####  #     # #     # #     # #    #   #####  ___________ /            \\_____\n______________________________________________________________________________\nMark Spiegel  spiegel@lmsc.lockheed.com   Cow Palace:108/K/8  Epicenter: ?\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1912, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 15\n\nIn article <C5nAvn.F3p@murdoch.acc.Virginia.EDU>, gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy) writes:\n> In article <philC5n6D5.MK3@netcom.com> phil@netcom.com (Phil Ronzone) writes:\n> #Tells you something about the fascist politics being practiced ....\n> \n> Ah, ending discrimination is now fascism. \n> \n> -Greg Hennessy, University of Virginia\n\nWhen you force people to associate with others against their will,\nyes.\n\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1913, "properties": {"category": "rec.autos", "text": "From: hagenjd@wfu.edu (Jeff Hagen)\nSubject: BMW's new plant in Greer, SC\nOrganization: Wake Forest University\nLines: 8\nNNTP-Posting-Host: ac.wfunet.wfu.edu\n\n\nIs anyone reading this message involved with the new BMW plant?\n(does BMW corporate even have a net-connection?)\n\ndesperately seeking info,\nJeff Hagen\nhagenjd@ac.wfu.edu\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1914, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 16\n\nIn article <bskendigC5I9yH.ICp@netcom.com> bskendig@netcom.com (Brian Kendig) writes:\n\n>If you can explain to me why the death of Jesus was a *good* thing,\n>then I would be very glad to hear it, and you might even convert me.\n>Be warned, however, that I've heard all the most common arguments\n>before, and they just don't convince me.\n\nBe warned, it is not my job to convert you.  That is the job of\nthe Holy Spirit.  And I, frankly, make a lousy one.  I am only\nhere to testify.  Your conversion is between you and God.  I am\n\"out of the loop\".  If you decide to follow Jesus, of which I\nindeed would be estatic, then all the glory be to God.\n\n-------------\nBrian Ceccarelli\nbrian@gamma1.lpl.arizona.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1915, "properties": {"category": "talk.religion.misc", "text": "From: nelson_p@apollo.hp.com (Peter Nelson)\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nNntp-Posting-Host: c.ch.apollo.hp.com\nOrganization: Hewlett-Packard Corporation, Chelmsford, MA\nLines: 26\n\nIn article <1993Apr21.093914.1@woods.ulowell.edu> cotera@woods.ulowell.edu writes:\n>In article <1r17j9$5ie@sbctri.sbc.com>, netd@susie.sbc.com () writes:\n>> In article <20APR199301460499@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen) writes:\n>>>For those who think David Koresh didn't have a solid structure,\n>>>or sound Biblical backing for his hour long tape broadcast,\n>> \n>> I don't think anyone really cares about the solid structure of his\n>> sermon.  It's the deaths he's responsible for that concern most people.\n>\n>I assume you have evidence that he was responsible for the deaths?\n> \n>> Koresh was a nut, okay?  \n>\n>Again, I'd like to see some evidence.\n\n  Nut or not, he was clearly a liar.  He said he would surrender after\n  local radio stations broadcast his message, but he didn't.  Then he\n  said he would surrender after Passover, but he didn't.\n\n  None of which excuses the gross incompetence and disregard for the\n  safety of the children displayed by the feds.   As someone else\n  pointed out, if it had been Chelsea Clinton in there you would \n  probably have seen more restraint.\n\n\n---peter\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1916, "properties": {"category": "soc.religion.christian", "text": "From: davem@bnr.ca (Dave Mielke)\nSubject: Does God love you?\nOrganization: Bell Northern Research, Ottawa, Canada\nLines: 416\n\nI have come across what I consider to be an excellent tract. It is a\nbit lengthy for a posting, but I thought I'd share it with all of you\nanyway. Feel free to pass it along to anyone whom you feel might\nbenefit from what it says. May God richly bless those who read it.\n \n=======================================================================\n \n                   D O E S  G O D  L O V E  Y O U ?\n \n \nQ. What  kind  of  question  is that?   Anyone who can read sees signs,\n   tracts, books, and bumper stickers that say, \"God Loves You.\"  Isn't\n   that true?\n \nA. It  is  true that God offers His love to the whole world, as we read\n   in one of the most quoted verses in the Bible:\n \n      For  God  so  loved  the world, that he gave his only begotten\n      Son, that whosoever believeth in him should  not  perish,  but\n      have everlasting life.                               John 3:16\n \n   However, God's love is qualified.  The Bible says:\n \n      The way of the wicked is an abomination unto the LORD:  but he\n      loveth him that followeth after righteousness.   Proverbs 15:9\n \n      For  the LORD knoweth the way of the righteous: but the way of\n      the ungodly shall perish.                            Psalm 1:6\n \n \nQ. But  I am not wicked.  I am a decent, moral person.  Surely the good\n   I have done in my life far outweighs whatever bad I have done.   How\n   can these verses apply to me?\n \nA. By  God's  standard  of  righteousness even the most moral person is\n   looked upon by God as a desperate sinner on his way to  Hell.    The\n   Bible teaches that no one is good enough in himself to go to Heaven.\n   On  the  contrary,  we  are all sinners and we are all guilty before\n   God.\n \n      As it is written, There is none righteous, no, not one:  There\n      is  none  that understandeth, there is none that seeketh after\n      God.                                            Romans 3:10-11\n \n      The  heart  is  deceitful  above  all  things, and desperately\n      wicked: who can know it?                         Jeremiah 17:9\n \n \nQ. If I am such a wicked person in God's sight, what will God do to me?\n \nA. The  Bible  teaches that at the end of the world all the wicked will\n   come under eternal punishment in a place called Hell.\n \n      For  a  fire is kindled in mine anger, and shall burn unto the\n      lowest hell, and shall consume the earth  with  her  increase,\n      and set on fire the foundations of the mountains.  I will heap\n      mischiefs upon them; I will spend mine arrows upon them.  They\n      shall  be  burnt  with hunger, and devoured with burning heat,\n      and  with  bitter  destruction:  I will also send the teeth of\n      beasts upon them, with the poison of serpents of the dust.\n                                                Deuteronomy 32:22-24\n \n \nQ. Oh,  come  on now!   Hell is not real, is it?  Surely things are not\n   that bad.\n \nA. Indeed,  Hell is very real, and things are that bad for the individ-\n   ual who does not know the Lord Jesus Christ as Savior.    The  Bible\n   makes  many  references  to Hell, indicating that it is both eternal\n   and consists of perpetual suffering.\n \n      And  whosoever  was  not found written in the book of life was\n      cast into the lake of fire.                   Revelation 20:15\n \n      So  shall it be at the end of the world: the angels shall come\n      forth, and sever the wicked from among  the  just,  And  shall\n      cast them into the furnace of fire: there shall be wailing and\n      gnashing of teeth.                            Matthew 13:49-50\n \n      ...    when  the Lord Jesus shall be revealed from heaven with\n      his mighty angels, In flaming fire taking  vengeance  on  them\n      that  know  not  God, and that obey not the gospel of our Lord\n      Jesus   Christ:    Who  shall  be  punished  with  everlasting\n      destruction  from the presence of the Lord, and from the glory\n      of his power;                            2 Thessalonians 1:7-9\n \n \nQ. That is terrible!  Why would God create a Hell?\n \nA. Hell  is  terrible,  and  it  exists  because  God created man to be\n   accountable to God for his actions.  God's perfect  justice  demands\n   payment for sin.\n \n      For the wages of sin is death;                     Romans 6:23\n \n      For  we  must  all  appear before the judgment seat of Christ;\n      that every one may  receive  the  things  done  in  his  body,\n      according to that he hath done, whether it be good or bad.\n                                                  2 Corinthians 5:10\n \n      But I say unto you, That every idle word that men shall speak,\n      they shall give account thereof in the day of judgment.\n                                                       Matthew 12:36\n \n \nQ. Does that mean that at the end of the world everyone will be brought\n   to life again to be judged and then to be sent to Hell?\n \nA. Indeed  it  does;  that  is,  unless  we  can find someone to be our\n   substitute in bearing the punishment of eternal  damnation  for  our\n   sins.    That  someone  is  God  Himself, who came to earth as Jesus\n   Christ to bear the wrath of God for all who believe in Him.\n \n      All  we  like sheep have gone astray; we have turned every one\n      to his own way; and the LORD hath laid on him the iniquity  of\n      us all.                                            Isaiah 53:6\n \n      But  he was wounded for our transgressions, he was bruised for\n      our iniquities: the chastisement of our peace  was  upon  him;\n      and with his stripes we are healed.                Isaiah 53:5\n \n      For  I  delivered  unto  you  first  of  all that which I also\n      received, how that Christ died for our sins according  to  the\n      scriptures; And that he was buried, and that he rose again the\n      third day according to the scriptures:    1 Corinthians 15:3-4\n \n      For  he  hath made him to be sin for us, who knew no sin; that\n      we might be made the righteousness of God in him.\n                                                  2 Corinthians 5:21\n \n \nQ. Are  you  saying that if I trust in Christ as my substitute, Who was\n   already punished for my sins, then I will not have  to  worry  about\n   Hell anymore?\n \nA. Yes, this is so!  If I have believed in Christ as my Savior, then it\n   is  as  if  I  have already stood before the Judgment Throne of God.\n   Christ as my substitute has already paid for my sins.\n \n      He  that  believeth  on  the Son hath everlasting life: and he\n      that believeth not the Son shall not see life; but  the  wrath\n      of God abideth on him.                               John 3:36\n \n \nQ. But  what  does it mean to believe on Him?  If I agree with all that\n   the Bible says about Christ as Savior, then am I saved from going to\n   Hell?\n \nA. Believing  on  Christ  means  a  whole lot more than agreeing in our\n   minds with the truths of the Bible.  It means that we hang our whole\n   lives  on Him.   It means that we entrust every part of our lives to\n   the  truths  of the Bible.  It means that we turn away from our sins\n   and serve Christ as our Lord.\n \n      No man can serve two masters: for either he will hate the one,\n      and  love  the  other;  or  else  he will hold to the one, and\n      despise the other. Ye cannot serve God and mammon.\n                                                        Matthew 6:24\n \n      Repent  ye  therefore, and be converted, that your sins may be\n      blotted out, when the times of refreshing shall come from  the\n      presence of the Lord;                                Acts 3:19\n \n \nQ. Are  you  saying  that  there  is no other way to escape Hell except\n   through Jesus?   What about all the other  religions?    Will  their\n   followers also go to Hell?\n \nA. Yes, indeed.  They cannot escape the fact that God holds us account-\n   able  for  our  sins.   God demands that we pay for our sins.  Other\n   religions  cannot  provide  a  substitute  to bear the sins of their\n   followers.  Christ is the only one who is able to bear our guilt and\n   save us.\n \n      Neither  is  there  salvation  in any other: for there is none\n      other name under heaven given among men, whereby  we  must  be\n      saved.                                               Acts 4:12\n \n   Jesus said:\n \n      I  am the way, the truth, and the life: no man cometh unto the\n      Father, but by me.                                   John 14:6\n \n      If  we confess our sins, he is faithful and just to forgive us\n      our sins, and to cleanse us from all unrighteousness.\n                                                          1 John 1:9\n \n \nQ. Now I am desperate.  I do not want to go to Hell.  What can I do?\n \nA. You  must  remember  that God is the only one who can help you.  You\n   must throw yourself altogether on the mercies of God.   As  you  see\n   your hopeless condition as a sinner, cry out to God to save you.\n \n      And the publican, standing afar off, would not lift up so much\n      as  his  eyes  unto heaven, but smote upon his breast, saying,\n      God be merciful to me a sinner.                     Luke 18:13\n \n      ...  Sirs, what must I do to be saved?  And they said, Believe\n      on the Lord Jesus Christ, and thou shalt be saved, ...\n                                                       Acts 16:30-31\n \n \nQ. But how can I believe on Christ if I know so little about Him?\n \nA. Wonderfully,  God  not  only saves us through the Lord Jesus, but He\n   also gives us the faith to believe on Him.  You can pray to God that\n   He will give you faith in Jesus Christ as your Savior.\n \n      For  by  grace  are  ye  saved  through faith; and that not of\n      yourselves: it is the gift of God:               Ephesians 2:8\n \n   God works particularly through the Bible to give us that faith.  So,\n   if  you  really  mean  business  with  God about your salvation, you\n   should  use  every opportunity to hear and study the Bible, which is\n   the only Word of God.\n   In  this  brochure,  all  verses  from the Bible are within indented\n   paragraphs.  Give heed to them with all your heart.\n \n      So  then  faith  cometh by hearing, and hearing by the word of\n      God.                                              Romans 10:17\n \n \nQ. But does this mean that I have to surrender everything to God?\n \nA. Yes.    God wants us to come to Him in total humility, acknowledging\n   our sinfulness and our helplessness, trusting totally in Him.\n \n      The  sacrifices  of  God  are  a broken spirit: a broken and a\n      contrite heart, O God, thou wilt not despise.      Psalm 51:17\n \n   Because  we  are sinners we love our sins.  Therefore, we must begin\n   to pray to God for an intense  hatred  of  our  sins.    And  if  we\n   sincerely desire salvation, we will also begin to turn from our sins\n   as  God  strengthens  us.    We know that our sins are sending us to\n   Hell.\n \n      Unto  you  first God, having raised up his Son Jesus, sent him\n      to bless you, in turning  away  every  one  of  you  from  his\n      iniquities.                                          Acts 3:26\n \n \nQ. Doesn't  the  Bible teach that I must attend church regularly and be\n   baptized?  Will these save me?\n \nA. If  possible,  we should do these things, but they will not save us.\n   No work of any kind can secure our salvation.   Salvation  is  God's\n   sovereign gift of grace given according to His mercy and good pleas-\n   ure.  Salvation is\n \n      Not of works, lest any man should boast.         Ephesians 2:9\n \n \nQ. What else will happen at the end of the world?\n \nA. Those  who have trusted in Jesus as their Savior will be transformed\n   into their glorious eternal bodies and will be with Christ  forever-\n   more.\n \n      For  the  Lord himself shall descend from heaven with a shout,\n      with the voice of the archangel, and with the  trump  of  God:\n      and  the  dead  in Christ shall rise first:  Then we which are\n      alive  and remain shall be caught up together with them in the\n      clouds,  to meet the Lord in the air:  and so shall we ever be\n      with the Lord.                         1 Thessalonians 4:16-17\n \n \nQ. What will happen to the earth at that time?\n \nA. God  will destroy the entire universe by fire and create new heavens\n   and a new earth where Christ will reign with His believers  forever-\n   more.\n \n      But  the day of the Lord will come as a thief in the night; in\n      the which the heavens shall pass away with a great noise,  and\n      the  elements shall melt with fervent heat, the earth also and\n      the   works  that  are  therein  shall  be  burned  up.    ...\n      Nevertheless  we,  according  to  his  promise,  look  for new\n      heavens and a new earth, wherein dwelleth righteousness.\n                                                     2 Peter 3:10,13\n \n \nQ. Does  the  Bible  give us any idea of when the end of the earth will\n   come?\n \nA. Yes!    The end will come when Christ has saved all whom He plans to\n   save.\n \n      And  this  gospel  of the kingdom shall be preached in all the\n      world for a witness unto all nations; and then shall  the  end\n      come.                                            Matthew 24:14\n \n \nQ. Can we know how close to the end of the world we might be?\n \nA. Yes!   God gives much information in the Bible concerning the timing\n   of the history of the world and tells us that while the Day  of  the\n   Lord  will come as a thief in the night for the unsaved, it will not\n   come  as  a  thief for the believers.  There is much evidence in the\n   Bible  that  the  end  of  the world and the return of Christ may be\n   very, very close.* All the time clues in the Bible point to this.\n \n      For  when  they  shall  say,  Peace  and  safety;  then sudden\n      destruction cometh upon them, as travail  upon  a  woman  with\n      child; and they shall not escape.          1 Thessalonians 5:3\n \n      Surely  the  Lord  GOD  will  do nothing, but he revealeth his\n      secret unto his servants the prophets.                Amos 3:7\n \n \nQ. But that means Judgment Day is almost here.\n \nA. Yes,  it  does.    God  warned  ancient Nineveh that He was going to\n   destroy that great city and He gave them forty days warning.\n \n      And Jonah began to enter into the city a day's journey, and he\n      cried,  and  said,  Yet  forty  days,  and  Nineveh  shall  be\n      overthrown.                                          Jonah 3:4\n \n \nQ. What did the people of Nineveh do?\n \nA. From  the  king on down they humbled themselves before God, repented\n   of their sins, and cried to God for mercy.\n \n      But  let  man  and  beast  be  covered with sackcloth, and cry\n      mightily unto God: yea, let them turn every one from his  evil\n      way,  and  from  the violence that is in their hands.  Who can\n      tell  if  God  will  turn  and  repent, and turn away from his\n      fierce anger, that we perish not?                  Jonah 3:8-9\n \n \nQ. Did God hear their prayers?\n \nA. Yes.  God saved a great many people of Nineveh.\n \n \nQ. Can  I still cry to God for mercy so that I will not come into judg-\n   ment?\n \nA. Yes.   There is still time to become saved even though that time has\n   become very short.\n \n      How  shall  we escape, if we neglect so great salvation; which\n      at the first began to be spoken by the Lord, and was confirmed\n      unto us by them that heard him;                    Hebrews 2:3\n \n      In  God is my salvation and my glory: the rock of my strength,\n      and my refuge, is in God.   Trust in  him  at  all  times;  ye\n      people,  pour  out  your heart before him: God is a refuge for\n      us.                                               Psalm 62:7-8\n \n \n \n \n            A R E  Y O U  R E A D Y  T O  M E E T  G O D ?\n \n \n \nA  book  entitled  1994?,  written by Harold Camping, presents Biblical\ninformation that we may be very near the end of time.  For  information\non  how to obtain a copy or to receive a free program guide and list of\nradio  stations on which you can hear our Gospel programs, please write\nto Family Radio, Oakland, California, 94621 (The United States of Amer-\nica), or call 1-800-543-1495.\n \n               ----------------------------------------\n \n \nThe  foregoing  is a copy of the \"Does God Love You?\" tract printed by,\nand available free of charge from, Family Radio.   A  number  of  minor\nchanges  have  been  made to its layout to facilitate computer printing\nand  distribution.  The only change to the text itself is the paragraph\nwhich  describes  the  way in which Biblical passages appear within the\ntext.    In  the  original  tract they appear in italic lettering; they\nappear here as indented paragraphs.\n \n \nI have read Mr. Camping's book, compared it with what the Bible actual-\nly  says, find it to be the most credible research with respect to what\nthe  future holds that I have ever come across, and agree with him that\nthere  is just too much data to ignore.  While none of us is guaranteed\none  more  second  of  life, and while we, therefore, should take these\nmatters  very seriously regardless of when Christ will actually return,\nit  would appear that our natural tendency to postpone caring about our\neternal  destiny  until we feel that our death is imminent is even more\nsenseless  now  because,  in  all  likelihood, the law of averages with\nrespect  to life expectancy no longer applies.  If you wish to obtain a\ncopy  of  this book so that you can check out these facts for yourself,\nyou may find the following information helpful:\n \n      title:       1994?\n      author:      Harold Camping\n      publisher:   Vantage Press\n      distributor: Baker and Taylor\n      ISBN:        0-533-10368-1\n \n \nI  have  chosen  to share this tract with you because I whole-heartedly\nagree with everything it declares and feel that now, perhaps more  than\never  before,  this information must be made known.  To paraphrase Acts\n20:27,  it  does not shun to declare unto us all the counsel of God.  I\nam  always  willing  to  discuss  the  eternal truths of the Bible with\nanyone who is interested as I believe them to be the only issues of any\nreal  importance since we will spend, comparatively speaking, so little\ntime  on this side of the grave and so much on the other.  Feel free to\nget in touch with me at any time:\n \n      e-mail: davem@bnr.ca\n      office: 1-613-765-4671\n      home:   1-613-726-0014\n \n      Dave Mielke\n      856 Grenon Avenue\n      Ottawa, Ontario, Canada\n      K2B 6G3\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1917, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rmohns@vax.clarku.edu\nSubject: RE: page setup in Notepad\nOrganization: Clark University\nLines: 29\n\nIn a previous article, JOEL@jach.hawaii.edu (Joel Aycock) wrote:\n> \n>\tI struggled with the margin problem for ages as well, until I\n>finally got hold of the shareware binary editor BEAV133, and dug into\n>NOTEPAD.EXE (there is no SETUP facility to force NOTEPAD to default to \n>0.0 margins- it's hardwired into code!!!). \n> \n>\tDo a SEARCH for \".75\", then change the offending bytes to \".00\", \n>et viola. Who are the guys who hardcode these \"options\" anyway?\n> \n>\tI'm interested in whether the problem only rears it's ugly head for \n>certain printers- I'm using an old Epson LX-800 (or is that EX-800? never can \n>remember).\n> \n>aloha.\n\nYou are nto alone.  I get the same problems with my Panasonic kpx 1124i (24 \npin).  Oterhwise, it's a great printer.  I just can't find a driver for it, \nonly for the non-\"i\" version.  Anyone seen it?\n\nRob\n\n         |------------------------------------------------------------|\n                      \\       rmohns@vax.clarku.edu       /\n               _________\\                               /________\n                          \\         Rob Mohns         /\n               ==================================================\n                    Annoy Rush Limbaugh.  Think for yourself.\n               ==================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.089+0000", "event": "documents", "entityId": 1918, "properties": {"category": "sci.med", "text": "From: Donald Mackie <Donald_Mackie@med.umich.edu>\nSubject: Re: quality control in medicine\nOrganization: UM Anesthesiology\nLines: 19\nDistribution: world\nNNTP-Posting-Host: 141.214.86.38\nX-UserAgent: Nuntius v1.1.1d9\nX-XXDate: Mon, 19 Apr 93 20:19:29 GMT\n\nIn article <9307@blue.cis.pitt.edu> Kenneth Gilbert,\nkxgst1+@pitt.edu writes:\n>situation.  QA activities are a routine part of every hospital's\n>administrative function and are required by accreditation agencies.\n There\n>are even entire publications devoted to QA issues.\n\n\nIndeed. I spend about 60% of my time dealing with quality stuff. It\nis a hot number. \nTwo journals worth looking at are:-\nQuality Review Bulletin. Pub:Joint Commission on Accreditation of\nHealthcare Organizations, one Renaissance boulevard, Oakbrook\nTerrace, IL 60181\nQuality in Health Care. BMJ Publishing Group, Box No. 560B,\nKennebunkport, ME 04046\n\nDon Mackie - his opinions\nUM Anesthesiology will disavow\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1919, "properties": {"category": "rec.sport.hockey", "text": "From: JBE5 <JBE5@MUSICB.MCGILL.CA>\nSubject: WFAN (STEVE & CHIEF ON 48 HOURS)\nLines: 30\nNntp-Posting-Host: vm1.mcgill.ca\nOrganization: McGill University\n\nGreetings!\n\nSteve Summers and the Chief were on 48 Hours last night shmoozing\nsports.  I unfortunately missed it.  Those of you who saw it, can\nyou please provide a synopsis.\n\nThanx.\n\n------------------------------------------------------------------------\nThe Czar of Mainframe Computing <JBE5@MUSICB.MCGILL.CA>\nMcGill University\n\n---> I'M TOO SEXY FOR COBOL.\n\n---> Habs...it doesn't look good!\n\n---> Let's Go Expos!\n                ======================================\n                | Peter Peter Pumkin Eater,          |\n                | Knew a chick but couldn't meet her.|\n                | Saw her brother one fine day,      |\n                | Sucked his cock now he's gay!      |\n                |           --Andrew Dice Clay       |\n                ======================================\n\n DISCLAIMER:\n************************************************************************\n*   Needless to say that the opinions expressed by THE CZAR represent  *\n*   those of the faculty, staff, and students of McGill University.    *\n************************************************************************\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1920, "properties": {"category": "talk.politics.mideast", "text": "From: hm@cs.brown.edu (Harry Mamaysky)\nSubject: Re: Final Solution for Gaza ?\nIn-Reply-To: Center for Policy Research's message of 23 Apr 93 15:10 PDT\nOrganization: Dept. of Computer Science, Brown University\nLines: 30\n\nIn article <1483500354@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n\n   Final Solution for the Gaza ghetto ?\n   ------------------------------------\n\n   While Israeli Jews fete the uprising of the Warsaw ghetto, they\n   repress by violent means the uprising of the Gaza ghetto and\n   attempt to starve the Gazans.\n\n   [...]\n\nElias should the families of the children who were stabbed in their\nhigh school by a Palestinian \"freedom fighter\" be the ones who offer\ntheir help to the Gazans. Perhaps it should be the families of the 18\nIsraelis who were murdered last month by Palestinian \"freedom\nfighters\".\n\nThe Jews in the Warsaw ghetto were fighting to keep themselves and\ntheir families from being sent to Nazi gas chambers. Groups like Hamas\nand the Islamic Jihad fight with the expressed purpose of driving all\nJews into the sea. Perhaps, we should persuade Jewish people to help\nthese wnderful \"freedom fighters\" attain this ultimate goal.\n\nMaybe the \"freedom fighters\" will choose to spare the co-operative Jews.\nIs that what you are counting on, Elias - the pity of murderers.\n\nYou say your mother was Jewish. How ashamed she must be of her son. I\nam sorry, Mrs. Davidsson.\n\nHarry.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1921, "properties": {"category": "rec.sport.baseball", "text": "From: gajarsky@pilot.njin.net (Bob Gajarsky - Hobokenite)\nSubject: Re: quick way to tell if your local beat writer is dumb.\nArticle-I.D.: pilot.Apr.6.00.33.22.1993.26417\nDistribution: na\nOrganization: Somewhere in Hoboken\nLines: 7\n\nok - sorry about that...i didn't realise he was being sarcastic about\n those sort of things.\n\nbut i'll tell you, mike lupica (daily news) usually says some pretty\n funny things in his \"shooting from the lip\" columns...\n\n- bob gaj\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1922, "properties": {"category": "sci.crypt", "text": "From: habs@panix.com (Harry Shapiro)\nSubject: Re: The [secret] source of that announcement\nOrganization: PANIX Public Access Unix, NYC\nLines: 65\n\nIn <1r1om5$c5m@slab.mtholyoke.edu> jbotz@mtholyoke.edu (Jurgen Botz)\nwrites:\n\n>Even more interesting: the SMTP server at csrc.ncsl.nist.gov no longer\n>recognizes the 'expn' and 'vrfy' commands...\n\n>   telnet csrc.ncsl.nist.gov smtp\n>   Trying 129.6.54.11...\n>   Connected to csrc.ncsl.nist.gov.\n>   Escape character is '^]'.\n>   220 first.org sendmail 4.1/NIST ready at Tue, 20 Apr 93 17:01:34 EDT\n>   expn clipper\n>   500 Command unrecognized\n\n>Seems like sombody didn't like your snooping around, Marc.\n\nThen it is a good thing we already have this:\n\nThe csspub mailing list: csspab@mail-gw.ncsl.nist.gov, and address on\nthe clipper mailing list, seems to contain basically the members of\nthe NIST security board.\n\nIn addition to the names already posted, their true names are as\nfollows:\n\nburrows@ecf = James Burrows a director of NIST's National Computer\nSystems Laboratory\n\nmcnulty@ecf = F. Lynn McNulty an associate director for computer\nsecurity at the National Institute of Standards and Technology's\nComputer Systems Laboratory\n\nGangemi@dockmaster.ncsc.mil = Gaetano Gangemi is director of the\nsecure systems program at Wang Laboratories Inc. He wrote: Computer\nSecurity Basics by Deborah Russell and G. T.  Gangemi, Sr. -1991,\nO'Reilly and Associates\n\nslambert@cgin.cto.citicorp.com = Sandra Lambert is vice-president of\ninformation security at Citibank, N.A.\n\nlipner@mitre.org = Lipner is Mitre Corp.'s director of information\nsystems.\n\ngallagher@dockmaster.ncsc.mil = Patrick Gallagher, director of the\nNational Security Agency's National Computer Security Center and a\nsecurity board member\n\nwalker@tis.com = Stephen Walker a computer security expert and\npresident of Trusted Information Systems, Inc. in Glenwood, Md\n\nwillis@rand.org = Willis H.  Ware a the Rand Corp.  executive who\nchairs the security board.\n\nwhitehurst@vnet.ibm.com = William Whitehurst is a security board\nmember and director of IBM Corp.'s data security programs.\n\n-- \nHarry Shapiro  \t\t\t\t      habs@panix.com\nList Administrator of the Extropy Institute Mailing List\nPrivate Communication for the Extropian Community since 1991\n\n-- \nHarry Shapiro  \t\t\t\t      habs@panix.com\nList Administrator of the Extropy Institute Mailing List\nPrivate Communication for the Extropian Community since 1991\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1923, "properties": {"category": "rec.sport.hockey", "text": "From: dale@odie.cs.mun.ca (Dale Fraser)\nSubject: Re: AHL News: St John's news, part XXXVIII\nOrganization: CS Dept., Memorial University of Newfoundland\nLines: 49\n\nbrifre1@ac.dal.ca writes:\n\n>In article <1993Apr13.132906.1827@news.clarkson.edu>, farenebt@craft.camp.clarkson.edu (Droopy) writes:\n>> Pete Raymond emailed me this piece of info. Not sure if Game 7 was\n>> intentionally or unintentionally omitted (ie date not set).\t\n>> \n>> BRI\n>> ================================================================\n>> [begin quoted material]\n>> \n>> Because of the Moncton win Friday night Halifax was eliminated thus St.\n>> John's will make Halifax home. The first round of play-offs wil take place\n>> on these dates.\n>> \n>> \tApril 14 - Halifax Metro Center (Leafs Home Game)\n>>         April 17 - Halifax Metro Center\n>>      \n>> \tApril 21 - Moncton\n>> \tApril 23 - Moncton\n>> \n>> \tApril 26 - Halifax Metro Center\n>> \n>> \tApril 30 - Moncton\n>> \n>This is a Halifax (or at least this Halifax) resident's dream come true!!\n>The leafs are my favorite NHL team (and no, I don't know why)!!!!!!!!!\n>I'd say that this is even better than the Citadels making the playoffs (a\n>Quebec farm team; who cares??).\n\n>By the way, for any NFLD fans....I'm sure ASN will carry some of the games\n>(they'd be stupid not to....but then this is ASN)\nI haven't heard any news about ASN carrying any games but the local\ncable station here in St. John's (Cable 9) is carrying the games live!\n\nHey, it's better than nothing!\n\nGO LEAFS GO!!!\n\nDale\n\n|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|\n|   \"Why sex is so popular    |    Dale Fraser  dale@odie.cs.mun.ca   |\n|       Is easy to see:       | Memorial University of Newfoundland   |\n|    It contains no sodium    |     CS Undergrad  -  Class of '92     |\n| And it's cholesterol free!\" |-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-| \n|       Shelby Friedman       | BLUE JAYS 1992 WORLD SERIES CHAMPS!!  |\n|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|\n| *OPINIONS EXPRESSED ABOVE DO NOT BELONG TO ME OR THIS INSTITUTION!* |\n|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1924, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: winfrvk@dutiws.twi.tudelft.nl (R.v.Kampen)\nSubject: Re: Adding hard drive to Original IBM PC\nKeywords: hard drive, IBM PC\nOrganization: Delft University of Technology\nLines: 22\n\nIn article <C5DxBs.5ov@panix.com> schuster@panix.com (Michael Schuster) writes:\n>In article <lsj4ruINNl7o@saltillo.cs.utexas.edu> goolsbey@cs.utexas.edu (Keith Goolsbey) writes:\n>>I have an ORIGINAL IBM PC (not an XT or AT) that\n>>has never had a hard drive.  Questions:\n>>\n>>[1] Do I need new BIOS to add a hard drive?\n>>[2] Does anyone sell a complete package to do this?\n>>\n>>Please e-mail me with suggestions.  I only need to\n>>add about a 20Meg or 40Meg hard drive.\n>\n>Sent by mail too.\n>You need the 10/82 BIOS which has support for ROM BIOS extensions, such\n>as the ROM on a hard disk controller.\n>\n>A 20 MB hard card, available for not much over $100, will do the trick\n>if you have the proper BIOS date. Use Norton SI or similar program to\n>find out.\nyou also need to set the correct switch settings on your xt\ncontroller, which can be a pain, since most pc's don't come with\nproper docs for all hardware contained inside it.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1925, "properties": {"category": "comp.windows.x", "text": "From: chongo@toad.com (Landon C. Noll)\nSubject: Reposting: 10th International Obfuscated C Code Contest rules (1 of 2)\nExpires: 8 May 93 00:00:00 GMT\nReply-To: chongo@toad.com (Landon C. Noll)\nDistribution: world\nOrganization: Nebula Consultants in San Francisco\nLines: 864\nKeywords: ioccc\n\nWe have received a number of requests for a reposting of the\nInternational Obfuscated C Code Contest rules and guidelines.  Also\nsome people requested that these rules be posted to a wider set of\ngroups.  Sorry for the cross posting.\n\nSome technical clarifications were made to the rules and guidelines\n(See the diff marks at the right hand edge).  The rules and guidelines\nfor this year remain the same, so people who have already or are\nin the process of submitting entries for the 1993 IOCCC need not worry \nabout these changes.\n\nchongo <Landon Curt Noll> /\\cc/\\        chongo@toad.com\nLarry Bassel                            lab@sun.com\n\n=-=\n\n#!/bin/sh\n# This is a shell archive (shar 3.32)\n# made 04/05/1993 23:00 UTC by chongo@toad.com\n# Source directory /tmp\n#\n# existing files WILL be overwritten\n#\n# This shar contains:\n# length  mode       name\n# ------ ---------- ------------------------------------------\n#   8971 -r--r--r-- rules\n#  25592 -r--r--r-- guidelines\n#  34482 -r--r--r-- mkentry.c\n#   6418 -r--r--r-- obfuscate.info\n#\n# ============= rules ==============\necho \"x - extracting rules (Text)\"\nsed 's/^X//' << 'SHAR_EOF' > rules &&\nX10th International Obfuscated C Code Contest Rules\nX\nXCopyright (c) Landon Curt Noll & Larry Bassel, 1993.\nXAll Rights Reserved.  Permission for personal, education or non-profit use is\nXgranted provided this this copyright and notice are included in its entirety\nXand remains unaltered.  All other uses must receive prior permission in writing\nXfrom both Landon Curt Noll and Larry Bassel.\nX\nX    Obfuscate:  tr.v.  -cated, -cating, -cates.  1. a.  To render obscure.\nX\t\tb.  To darken.  2. To confuse:  his emotions obfuscated his\nX\t\tjudgment.  [LLat. obfuscare, to darken : ob(intensive) +\nX\t\tLat. fuscare, to darken < fuscus, dark.] -obfuscation n.\nX\t\tobfuscatory adj.\nX\nX\nXGOALS OF THE CONTEST:\nX\nX    * To write the most Obscure/Obfuscated C program under the rules below.\nX    * To show the importance of programming style, in an ironic way.\nX    * To stress C compilers with unusual code.\nX    * To illustrate some of the subtleties of the C language.\nX    * To provide a safe forum for poor C code.  :-)\nX\nX\nXNOTE: Changes from the 1993 draft are noted by change bars.  --->\t      |\nX\nX\nXRULES:\nX\nX    To help us with the volume of entries, we ask that you follow these rules:\nX\nX    1) Your entry must be a complete program.\nX\nX    2) Your entry must be <= 3217 bytes in length.  The number of characters\nX       excluding whitespace (tab, space, newline), and excluding any ; { or }\nX       followed by either whitespace or end of file, must be <= 1536.\nX\nX    3) Your entry must be submitted in the following format:\nX\nX---entry---\nXrule:\t1993\nXfix:\ty or n   (n => this is a new entry, y => this replaces an older entry)\nXtitle:\ttitle of entry  \t\t    (see comments below)\nXentry:\tEntry number from 0 to 7 inclusive  (your 1st entry should by 0)\nXdate:\tDate/time of submission in UTC\t    (see comments below)\nXhost:\tMachine(s) and OS(s) under which your entry was tested\nX\tUse tab indented lines if needed\nX---remark---\nX    Place remarks about this entry in this section.  It would be helpful if\nX    you were to indent your remarks with 4 spaces, though it is not a\nX    requirement.  Also, if possible, try to avoid going beyond the 79th\nX    column.  Blank lines are permitted.\nX---author---\nXname:\tyour name\nXorg:\tSchool/Company/Organization\nXaddr:\tpostal address\nX\tuse tab indented lines to continue\nX\tdon't forget to include the country\nXemail:  Email address from a well known site or registered domain.\nX        If you give several forms, list them on separate tab indented lines.\nXanon:\ty or n   (y => remain anonymous, n => ok to publish this info)\nX---info---\nXIf your program needs an info file, place a uuencoded copy of it in\nXthis section.  In the case of multiple info files, use multiple info\nXsections.  If your entry does not need a info file, skip this section.\nX---build---\nXPlace a uuencoded copy of the command(s) used to compile/build your program\nXin this section.  It must uudecode into a file named 'build'.  The resulting\nXfile must be 255 bytes or less.\nX---program---\nXPlace a uuencoded copy of your program in this section.  It must uudecode\nXinto a file named is 'prog.c'.  The resulting file must follow rule #2.\nX---end---\nX\nX      Regarding the above format:\nX\nX\t* The title must match the expression: [a-zA-Z0-9_=][a-zA-Z0-9_=+-]*\nX\t  and must be 1 to 12 characters in length.\nX\nX\t  It is suggested, but not required, that the title should\nX\t  incorporate your username; in the case of multiple authors,\nX\t  consider using parts of the usernames of the authors.\nX\nX\t* The date in the ---entry--- section should be given with respect\nX\t  to UTC.  The format of the date should be as returned by asctime()\nX\t  using the C locale.  (see guidelines for more info)\nX\nX\t* You may correct/revise a previously submitted entry by sending\nX\t  it to the contest email address.  Be sure to set 'fix' in the\nX\t  ---entry--- section to 'n'.  The corrected entry must use the same\nX\t  title and entry number as submittion that is being corrected.  Be\nX\t  sure that you note the resubmittion in the ---remark--- as well.\nX\nX\t* With the exception of the header, all text outside of the above\nX\t  format may be ignored by the judges.  If you need tell the judges\nX\t  something, put it in the ---remark--- section, or send a separate\nX\t  Email message to the judges.\nX\nX\t* Information from the ---author--- section will be published unless\nX\t  'y' was given to the respective author's 'anon' line.\nX\nX\t* To credit multiple authors, include an ---author--- section for\nX\t  each author.  Each should start with ---author--- line, and\nX\t  should be found between the ---entry--- and ---build--- sections.\nX\nX\t* The entry's remarks should include:\nX\t    - what this program does\nX\t    - how to run the program (sample args or input)\nX\t    - special compile or execution instructions, if any\nX\t    - special filename requirements (see rule 4 and 5)\nX\t    - information about any ---data--- files\nX\t    - why you think the program is obfuscated\nX\t    - note if this entry is a re-submission of a previous entry.\nX\t    - any other remarks (humorous or otherwise)\nX\nX\t* Do not rot13 your entry's remarks.  You may suggest that certain\nX\t  portions of your remarks be rot13ed if your entry wins an award.\nX\nX        * Info files should be used only to supplement your entry.  They\nX\t  should not be required to exist.\nX\nX\t  If your entry does not need an info file, skip the ---info---\nX\t  section.  If your entry needs multiple info files, use multiple\nX\t  ---info--- sections, one per info file.  You should describe\nX\t  each info file in the ---remark--- section.\nX\nX    4) If your entry is selected as a winner, it will be modified as follows:\nX\nX\t   'build' is incorporated into a makefile, and 'build' is removed\nX\t   'prog.c' is renamed to your entry's title, followed by an optional\nX\t       digit, followed by '.c'\nX\t   your entry is compiled into a file with the name of your entry's\nX\t       title, possibly followed by a digit\nX\nX       If your entry requires that a build file exist, state so in your\nX       entry's remark section.  The makefile will be arranged to execute a\nX       build shell script containing the 'build' information.  The name of\nX       this build shell script will be your entry's title, possibly followed\nX       by a digit, followed by '.sh'.\nX\nX       If needed, your entry's remarks should indicate how your entry must\nX       be changed in order to deal with the new filenames.\nX\nX    5) The build file, the source and the resulting executable should be\nX       treated as read-only files.  If your entry needs to modify these files,\nX       it should make and modify a copy of the appropriate file.  If this\nX       occurs, state so in your entry's remarks.\nX\nX    6) Entries that cannot be compiled by an ANSI C compiler will be rejected.\nX       Use of common C (K&R + extensions) is permitted, as long as it does not\nX       cause compile errors for ANSI C compilers.\nX\nX    7) The program must be of original work.  All programs must be in the\nX       public domain.  All copyrighted programs will be rejected.\nX\nX    8) Entries must be received prior to 07-May-93 0:00 UTC.  (UTC is\nX       essentially equivalent to Greenwich Mean Time)  Email your entries to:\nX\nX\t\t...!{apple,pyramid,sun,uunet}!hoptoad!obfuscate\nX\t\tobfuscate@toad.com\nX\nX       We request that your message use the subject 'ioccc entry'.\nX\nX       If possible, we request that you hold off on Emailing your entries\nX       until 1-Mar-93 0:00 UTC.  Early entries will be accepted, however.\nX       We will attempt to email a confirmation to the the first author for\nX       all entries received after 1-Mar-93 0:00 UTC.\nX\nX    9) Each person may submit up to 8 entries per contest year.  Each entry\nX       must be sent in a separate Email letter.\nX\nX   10) Entries requiring human interaction to be built are not allowed.\nX       Compiling an entry produce a file (or files) which may be executed.\nX\nX   11) Programs that require special privileges (setuid, setgid, super-user,\nX       special owner or group) are not allowed.\nX\nX\nXFOR MORE INFORMATION:\nX\nX    The Judging will be done by Landon Noll and Larry Bassel.  Please send\nX    questions or comments about the contest, to:\nX\nX\t...!{apple,pyramid,sun,uunet}!hoptoad!judges\t(not the address for  |\nX\tjudges@toad.com\t\t\t\t\t submitting entries)  |\nX\nX    The rules and the guidelines may (and often do) change from year to\nX    year.  You should be sure you have the current rules and guidelines\nX    prior to submitting entries.  To obtain them, send Email to the address   |\nX    above and use the subject 'send rules'.\t\t\t\t      |\nX\nX    One may obtain winners of previous contests (1984 to date), via ftp from: |\nX\nX\thost: ftp.uu.net\t(192.48.96.9)\t\t\t\t      |\nX\tuser: anonymous\nX\tpass: yourname@yourhost\nX\tdir:  ~/pub/ioccc\t\t\t\t\t\t      |\nX\nX    As a last resort, previous winners may be obtained by sending Email       |\nX    to the above address.  Please use the subject 'send YEAR winners',        |\nX    where YEAR is a single 4 digit year, a year range, or 'all'.\t      |\nX\nX\nXchongo <Landon Curt Noll> /\\cc/\\  \tchongo@toad.com\t\t\t      |\nXLarry Bassel\t\t\t  \tlab@sun.com\t\t\t      |\nSHAR_EOF\nchmod 0444 rules ||\necho \"restore of rules failed\"\nset `wc -c rules`;Wc_c=$1\nif test \"$Wc_c\" != \"8971\"; then\n\techo original size 8971, current size $Wc_c\nfi\n# ============= guidelines ==============\necho \"x - extracting guidelines (Text)\"\nsed 's/^X//' << 'SHAR_EOF' > guidelines &&\nX10th International Obfuscated C Code Contest Guidelines, Hints and Comments\nX\nXCopyright (c) Landon Curt Noll & Larry Bassel, 1993.\nXAll Rights Reserved.  Permission for personal, education or non-profit use is\nXgranted provided this this copyright and notice are included in its entirety\nXand remains unaltered.  All other uses must receive prior permission in writing\nXfrom both Landon Curt Noll and Larry Bassel.\nX\nXABOUT THIS FILE:\nX\nX    This file is intended to help people who wish to submit entries to\nX    the International Obfuscated C Code Contest (IOCCC for short).\nX\nX    This is not the IOCCC rules, though it does contain comments about\nX    them.  The guidelines should be viewed as hints and suggestions.\nX    Entries that violate the guidelines but remain within the rules are\nX    allowed.  Even so, you are safer if you remain within the guidelines.\nX\nX    You should read the current IOCCC rules, prior to submitting entries.\nX    The rules are typically sent out with these guidelines.\nX\nX    Changes from the 1993 draft are noted by change bars.  --->\t\t      |\nX\nX\nXWHAT IS NEW IN 1993:\nX\nX    The entry format is better (for us anyway).  The program mkentry.c\nX    has been updated.  See ENTRY FORMAT.\nX\nX    We will reject entries that cannot be compiled using an ANSI C\nX    compiler.  Certain old Obfuscation hacks that cause ANSI C compilers\nX    fits are no longer permitted.  Some of the new issues deal with\nX    non-integral array types, variable number of arguments, C preprocessor\nX    directives and the exit() function.  See OUR LIKES AND DISLIKES.\nX\nX\nXHINTS AND SUGGESTIONS:\nX\nX    You are encouraged to examine the winners of previous contests.  See\nX    FOR MORE INFORMATION for details on how to get previous winners.\nX\nX    Keep in mind that rules change from year to year, so some winning entries\nX    may not be valid entries this year.  What was unique and novel one year\nX    might be 'old' the next year.\nX\nX    An entry is usually examined in a number of ways.  We typically apply\nX    a number of tests to an entry:\nX\nX\t* look at the original source\nX\t* convert ANSI tri-graphs to ASCII\nX\t* C pre-process the source ignoring '#include' lines\nX\t* C pre-process the source ignoring '#define' and '#include' lines\nX\t* run it through a C beautifier\nX\t* examine the algorithm\nX\t* lint it\nX\t* compile it\nX\t* execute it\nX\nX    You should consider how your entry looks in each of the above tests.\nX    You should ask yourself if your entry remains obscure after it has been\nX    'cleaned up' by the C pre-processor and a C beautifier.\nX\nX    Your entry need not do well under all, or in most tests.  In certain\nX    cases, a test is not important.  Entries that compete for the\nX    'strangest/most creative source layout' need not do as well as\nX    others in terms of their algorithm.  On the other hand, given\nX    two such entries, we are more inclined to pick the entry that\nX    does something interesting when you run it.\nX\nX    We try to avoid limiting creativity in our rules.  As such, we leave\nX    the contest open for creative rule interpretation.  As in real life\nX    programming, interpreting a requirements document or a customer request\nX    is important.  For this reason, we often award 'worst abuse of the\nX    rules' to an entry that illustrates this point in an ironic way.\nX\nX    If you do plan to abuse the rules, we suggest that you let us know\nX    in the remarks section.  Please note that an invitation to abuse\nX    is not an invitation to break.  We are strict when it comes to the\nX    3217 byte size limit.  Also, abusing the entry format tends to\nX    annoy more than amuse.\nX\nX    We do realize that there are holes in the rules, and invite entries\nX    to attempt to exploit them.  We will award 'worst abuse of the rules'\nX    and then plug the hole next year.  Even so, we will attempt to use\nX    the smallest plug needed, if not smaller.  :-)\nX\nX    Check out your program and be sure that it works.  We sometimes make\nX    the effort to debug an entry that has a slight problem, particularly\nX    in or near the final round.  On the other hand, we have seen some\nX    of the best entries fall down because they didn't work.\nX\nX    We tend to look down on a prime number printer, that claims that\nX    16 is a prime number.  If you do have a bug, you are better off\nX    documenting it.  Noting \"this entry sometimes prints the 4th power\nX    of a prime by mistake\" would save the above entry.  And sometimes,\nX    a strange bug/feature can even help the entry!  Of course, a correctly\nX    working entry is best.\nX\nX\nXOUR LIKES AND DISLIKES:\nX\nX    Doing masses of #defines to obscure the source has become 'old'.  We\nX    tend to 'see thru' masses of #defines due to our pre-processor tests\nX    that we apply.  Simply abusing #defines or -Dfoo=bar won't go as far\nX    as a program that is more well rounded in confusion.\nX\nX    Many ANSI C compilers dislike the following code, and so do we:\nX\nX\t#define d define\nX\t#d foo\t\t   <-- don't expect this to turn into #define foo\nX\nX\tint i;\nX\tj;\t\t   <-- don't use such implicit type declaration\nX\tint k;\nX\nX    We suggest that you compile your entry with an ANSI C compiler.  If you\nX    must use non-ANSI C, such as K&R C, you must avoid areas that result in\nX    compile/link errors for ANSI C compilers.\nX\nX    Unfortunately, some ANSI C compilers require array indexes to be of       |\nX    integral type.  Thus, the following classical obfuscation hacks should    |\nX    not be used in 1993.  This rule may be relaxed in future contests.\t      |\nX\nX\tint i;\nX\tchar *c;\nX\ti[c];\t\t   <--- use c[i] instead\nX\t(i+3)[\"string\"];   <--- use \"string\"[i+3] instead\nX\nX    If your entry uses functions that have a variable number of\nX    arguments, be careful. Systems implement va_list as a wide variety\nX    of ways.  Because of this, a number of operations using va_list are\nX    not portable and must not be used:\nX\nX\t* assigning a non-va_list variable to/from a va_list variable\nX\t* casting a non-va_list variable into/from a va_list variable\nX\t* passing a va_list variable to a function expecting a non-va_list arg\nX\t* passing a non-va_list variable to a function expecting a va_list arg\nX\t* performing arithmetic on va_list variables\nX\t* using va_list as a structure or union\nX\nX    In particular, do not treat va_list variables as if they were a char **'s.\nX\nX    Avoid using <varargs.h>, use <stdarg.h> instead.\nX\nX    If you use C preprocessor directives (#define, #if, #ifdef, ...),\nX    the leading '#' must be the first character on a line.  While some\nX    C preprocessors allow whitespace the leading '#', many do not.\nX\nX    Because the exit() function returns void on some systems, entries\nX    must not assume that it returns an int.\nX\nX    Small programs are best when they are short, obscure and concise.\nX    While such programs are not as complex as other winners, they do\nX    serve a useful purpose.  They are often the only program that people\nX    attempt to completely understand.  For this reason, we look for\nX    programs that are compact, and are instructional.\nX\nX    One line programs should be short one line programs, say around 80\nX    bytes long.  Getting close to 160 bytes is a bit too long in our opinion.\nX\nX    We tend to dislike programs that:\nX\nX\t* are very hardware specific\nX\t* are very OS or Un*x version specific\nX\t     (index/strchr differences are ok, but socket/streams specific\nX\t      code is likely not to be)\nX\t* dump core or have compiler warnings\nX\t     (it is ok only if you warn us in the 'remark' header item)\nX\t* won't compile under both BSD or SYS V Un*x\nX\t* abusing the build file to get around the size limit\nX\t* obfuscate by excessive use of ANSI tri-graphs\nX\t* are longer than they need to be\nX\t* are similar to previous winners\nX\t* are identical to previous losers  :-)\nX\nX    Unless you are cramped for space, or unless you are entering the\nX    'best one liner' category, we suggest that you format your program\nX    in a more creative way than simply forming excessively long lines.\nX\nX    The build file should not be used to try and get around the size\nX    limit.  It is one thing to make use of a several -D's to help out,\nX    but it is quite another to use 200+ bytes of -D's in order to\nX    try and squeeze the source under the size limit.  You should feel\nX    free to make use of the build file space, but you are better off\nX    if you show some amount of restraint.\nX\nX    We allowed whitespace, and in certain cases ; { or } do not impact\nX    your program size (up to a certain point), because we want to get\nX    away from source that is simply a compact blob of characters.\nX\nX    Given two versions of the same program, one that is a compact blob\nX    of code, and the other that is formatted more like a typical C\nX    program, we tend to favor the second version.  Of course, a third\nX    version of the same program that is formatted in an interesting\nX    and/or obfuscated way, would definitely win over the first two!\nX\nX    We suggest that you avoid trying for the 'smallest self-replicating'\nX    program.  We are amazed at the many different sizes that claim\nX    to be the smallest.  There is nothing wrong with self-replicating\nX    programs.  In fact, a number of winners have been self-replicating.\nX    You might want to avoid the claim of 'smallest', lest we (or others)\nX    know of a smaller one!\nX\nX    X client entries should be as portable as possible.  Entries that\nX    adapt to a wide collection of environments will be favored.  Don't\nX    depend on a particular type of display.  For example, don't depend\nX    on color or a given size.  Don't require backing store.\nX\nX    X client entries should avoid using X related libraries and\nX    software that is not in wide spread use.  We ask that such X client\nX    entries restrict themselves to only the low level Xlib and the\nX    Athena widget set (libX11.a, libXaw.a, libXmu.a and libXt.a).\nX    Don't use M*tif, Xv*ew, or OpenL*ok toolkits, since not everyone\nX    has them.  Avoid depending on a particular window manager.  Not\nX    everyone has X11r5, and some people are stuck back in X11r4 (or\nX    earlier), so try to target X11r5 without requiring X11r5.  Better\nX    yet, try to make your entry run on all version 11 X Window Systems.\nX\nX    X client entries should not to depend on particular items on\nX    .Xdefaults.  If you must do so, be sure to note the required lines\nX    in the ---remark--- section.\nX\nX    We like programs that:\nX\nX\t* are as concise and small as they need to be\nX\t* do something at least quasi-interesting\nX\t* pass lint without complaint (not a requirement, but it is nice)\nX\t* are portable\nX\t* are unique or novel in their obfuscation style\nX\t* MAKE USE OF A NUMBER OF DIFFERENT TYPES OF OBFUSCATION\nX\t* make us laugh and/or throw up  :-)\nX\nX    Some types of programs can't excel in some areas.  Of course, your\nX    program doesn't have to excel in all areas, but doing well in several\nX    areas really does help.\nX\nX    We freely admit that interesting, creative or humorous comments in\nX    the ---remark--- section helps your chance of winning.  If you had to\nX    read of many twisted entries, you too would enjoy a good laugh or two.\nX    We think the readers of the contest winners do as well.\nX\nX    Be creative!\nX\nX\nXENTRY FORMAT:\nX\nX    In order to help us process the many entries, we must request your\nX    assistance by formatting your entries in a certain way.  This format,\nX    in addition, allows us to quickly separate information about the\nX    author from the program itself.  (see JUDGING PROCESS)\nX\nX    We have provided the program, mkentry, as an example of how to\nX    format entries.  You should be aware of the following warning that\nX    is found in mkentry.c:\nX\nX\tThis program attempts to implement the IOCCC rules.  Every\nX\tattempt has been made to make sure that this program produces\nX\tan entry that conforms to the contest rules.  In all cases,\nX\twhere this program differs from the contest rules, the\nX\tcontest rules will be used.  Be sure to check with the\nX\tcontest rules before submitting an entry.\nX\nX    You are not required to use mkentry.  It is convenient, however,\nX    as it attempts to uuencode the needed files, and attempt to check\nX    the entry against the size rules.\nX\nX    If you have any suggestions, comments, fixes or complaints about\nX    the mkentry.c program, please send Email to the judges.  (see below)\nX\nX    The following is a sample entry:\nX\nX---entry---\nXrule:\t1993\nXfix:\tn\nXtitle:\tchonglab\nXentry:\t0\nXdate:\tMon Mar  1 08:45:20 1993\nXhost:\tUn*x v6, pdp11/45\nX\t2.9BSD, pdp11/70\nX---remark---\nX    This is a non-obfuscated obfuscated C program.\nX\nX    It is likely not to win a prize.  But what do you expect from\nX    a short example!\nX---author---\nXname:\tLandon Curt Noll\nXorg:\tIOCCC Judging Group\nXaddr:\tToad Hall\nX\tPO Box 170608\nX\tSan Francisco, California\nX\t94117-0608\nX\tUSA\nXemail:\tchongo@toad.com\nXanon:\tn\nX---author---\nXname:\tLarry Bassel\nXorg:\tIOCCC Judging Group\nXaddr:\tToad Hall\nX\tPO Box 170608\nX\tSan Francisco, California\nX\t94117-0608\nX\tUSA\nXemail:\thoptoad!sun!lab\nX\tlab@sun.com\nXanon:\tn\nX---info---\nXbegin 444 info.file\nXM0V]P>7)I9VAT(\"AC*2!,86YD;VX@0W5R=\"!.;VQL+\"`Q.3DS+@I!;&P@4FEG\nXM:'1S(%)E<V5R=F5D+B`@4&5R;6ES<VEO;B!F;W(@<&5R<V]N86PL(&5D=6-A\nXM=&EO;B!O<B!N;VXM<')O9FET('5S92!I<PIG<F%N=&5D('!R;W9I9&5D('1H\nXM:7,@=&AI<R!C;W!Y<FEG:'0@86YD(&YO=&EC92!A<F4@:6YC;'5D960@:6X@\nXM:71S(&5N=&ER971Y\"F%N9\"!R96UA:6YS('5N86QT97)E9\"X@($%L;\"!O=&AE\nXM<B!U<V5S(&UU<W0@<F5C96EV92!P<FEO<B!P97)M:7-S:6]N(&EN('=R:71I\nXM;F<*9G)O;2!,86YD;VX@0W5R=\"!.;VQL+@H*5&AA=\"!T:&%T(&ES+\"!I<RX*\nXM5&AA=\"!T:&%T(&ES(&YO=\"P*(\"`@(&ES(&YO=\"!T:&%T('1H870@;F]T(&ES\nXM+@I4:&%T(&ES+\"!T:&%T('1H870@:7,@;F]T+\"!I<R$*\"@D)+2T@8VAO;F=O\nXM(#$Y-S0*\"DQA<W0@>65A<BP@;VYE('!E<G-O;B!T;VQD('5S('1H870@=&AE\nXM>2!A8W1U86QL>2!D96-O9&5D('1H:7,@9FEL92X*22!W;VYD97(@:&]W(&UA\nX9;GD@=VEL;\"!D;R!I=\"!T:&ES('EE87(_\"@``\nX`\nXend\nX---build---\nXbegin 444 build\nX28V,@<')O9RYC(\"UO('!R;V<*\nX`\nXend\nX---program---\nXbegin 444 prog.c\nXM;6%I;B@I\"GL*(VEF(&1E9FEN960H05]214=)4U1%4D5$7U9/5$527TE.7U-5\nXM3DY95D%,15]#04Q)1D]23DE!7U5302D*(\"`@('!R:6YT9B@B5F]T92!,86YD\nXM;VX@3F]L;\"!F;W(@4W5N;GEV86QE($-I='D@0V]U;F-I;\"!S96%T(\",Q+EQN\nX:(BD[\"B-E;F1I9@H@(\"`@97AI=\"@P*3L*?0H`\nX`\nXend\nX---end---\nX\nX    Typically the build file should assume that the source is prog.c\nX    and will compile into prog.  If an entry wins, we will rename\nX    its source and binary to avoid filename collision.  By tradition,\nX    we use the name of the entry's title, followed by an optional\nX    digit in case of name conflicts.\nX\nX    If the above entry somehow won the 'least likely to win' award,\nX    we would use chonglab.c and chonglab.\nX\nX    If your entry depends on, or requires that your build, source\nX    and/or binary files be a particular name, please say so in the\nX    ---remark--- section.  If this case applies, it would be be helpful\nX    if you did one of the following:\nX\nX\t* Tell us how to change the filename(s) in your entry.\nX\nX\t* Have the build file make copies of the files.  For example:\nX\nX\t\tcc prog.c -o special_name\t\tneed special binary\nX\nX\t    or  rm -f special_src.c\t\t\tneed special source\nX\t\tcp prog.c special_src.c\nX\t\tcc special_src.c -o special_name\nX\nX\t    or  rm -f special_build\t\t\tneed special build\nX\t\ttail +4 build > special_build\nX\t\tsh < special_build\nX\nX\t* Assume that we will use the entry title.  Send us a version of\nX\t  your build/program files that uses the name convention.  You\nX\t  should uuencode these files in ---data--- sections.\nX\nX    If your entry needs to modify its source, info or binary files,\nX    please say so in the ---remark--- section.  You should try to avoid\nX    touching your original build, source and binary files.  You should\nX    arrange to make copies of the files you intend to modify.  This\nX    will allow people to re-generate your entry from scratch.\nX\nX    Remember that your entry may be built without a build file.  We\nX    typically incorporate the build lines into a Makefile.  If the\nX    build file must exist, say so in the ---remark--- section.\nX\nX    If your entry needs special info files, you should uuencode them\nX    into ---info--- sections.  In the case of multiple info files,\nX    use multiple ---info--- sections.  If no info files are needed,\nX    then skip the ---info--- section.\nX\nX    Info files are intended to be input, or detailed information that\nX    does not fit well into the ---remark--- section.  For example, an\nX    entry that implements a compiler might want to provide some sample\nX    programs for the user to compile.  An entry might want to include a\nX    lengthy design document, that might not be appropriate for a\nX    'hints' file.\nX\nX    Info files should be used only to supplement your entry.  For\nX    example, info files may provide sample input or detailed\nX    information about your entry.  Because they are supplemental,\nX    the entry should not require them exist.\nX\nX    In some cases, your info files might be renamed to avoid name\nX    conflicts.  If info files should not be renamed for some reason,\nX    say so in the ---remark--- section.\nX\nX    Info files must uudecode into the current directory.  If they\nX    absolutely must be renamed, or moved into a sub-directory, say\nX    so in the ---remark--- section.\nX\nX    When submitting multiple entries, be sure that each entry has\nX    a unique entry number from 0 to 7.  Your first entry should\nX    have entry number 0.\nX\nX    With the exception of the header, all text outside of the entry\nX    format may be ignored.  That is, don't place text outside of the\nX    entry and expect the judges to see it.  (Our decoding tools aren't\nX    AI progs!) If you need tell the the something, put it in the\nX    ---remark--- section, or send a Email to the judges at:\nX\nX\t...!{apple,pyramid,sun,uunet}!hoptoad!judges\t(not the address for\nX\tjudges@toad.com\t\t\t\t\t submitting entries)\nX\nX    The date should be given with respect to UTC.  (Some systems refer\nX    to this as GMT or GMT0)  The format of the date should be that as\nX    returned by asctime() in the C locale.  An example of such a string is:\nX\nX\tThr Apr 01 00:47:00 1993\nX\nX    This format is similar to the output of the date(1) command.  The\nX    string does not include the timezone name before the year.  On many\nX    systems, one of the following command will produce a similar string:\nX\nX\tdate -u \"+%a %h %d %T 19%y\"\nX\tdate -u | sed -e 's/... \\(19[0-9][0-9]\\)$/\\1/'\nX\tsh -c 'TZ=UTC date | sed -e \"s/... \\(19[0-9][0-9]\\)$/\\1/\"'\nX\tsh -c 'TZ=GMT date | sed -e \"s/... \\(19[0-9][0-9]\\)$/\\1/\"'\nX\tsh -c 'TZ=GMT0 date | sed -e \"s/... \\(19[0-9][0-9]\\)$/\\1/\"'\nX\nX    You are allowed to update/fix/revise your entry.  To do so, set\nX    the 'fix' line in the ---entry--- section to 'y' instead of 'n'.\nX    Be sure that the resubmittion uses the same title and entry number\nX    as well, as these are used to determine which entry is to be\nX    replaced.\nX\nX\nXJUDGING PROCESS:\nX\nX    Entries are judged by Larry Bassel and Landon Curt Noll.\nX\nX    Entries are unpacked into individual directories.  The Email message\nX    is unpacked into individual files, each containing:\nX\nX\t---entry--- section\nX\tall ---author--- sections\nX\tall ---info--- sections\nX\t---build--- section\nX\t---program--- section\nX\tany other text, including the Email message headers\nX\nX    Prior to judging, the 'any other text' file is scanned to be sure\nX    it does not contain useful information (or in case the entry was\nX    malformed and did not unpack correctly).  Information from the\nX    ---author--- sections are not read until the judging process is\nX    complete, and then only from entries that have won an award.\nX\nX    The above process helps keep us biased for/against any one particular\nX    individual.  We are usually kept in the dark as much as you are\nX    until the final awards are given.  We like the surprise of finding\nX    out in the end, who won and where they were from.\nX\nX    We attempt to keep all entries anonymous, unless they win an award.\nX    Because the main 'prize' of winning is being announced, we make all\nX    attempts to send non-winners into oblivion.  We remove all non-winning\nX    files, and shred all related paper.  By tradition, we do not even\nX    reveal the number of entries that we received.  (for the curious,\nX    we do indicate the volume of paper consumed when presenting the IOCCC\nX    winners at talks)\nX\nX    After the Usenix announcement, we attempt to send Email to the\nX    authors of the winning entries.  One reason we do this is to give\nX    the authors a chance to comment on the way we have presented their\nX    entry.  They are given the chance to correct mistakes, typos.  We\nX    often accept their suggestions/comments about our remarks as well.\nX    This is done prior to posting the winners to the wide world.\nX\nX    Judging consists of a number of elimination rounds.  During a round,\nX    the collection of entries are divided into two roughly equal piles;\nX    the pile that advances on to the next round, and the pile that does\nX    not.  We also re-examine the entries that were eliminated in the\nX    previous round.  Thus, an entry gets at least two readings.\nX\nX    A reading consists of a number of actions:\nX\nX\t* reading the ---entry--- section\nX\t* reading the uudecoded ---build--- section\nX\t* reading the uudecoded ---program--- section\nX\t* reading the uudecoded ---info--- section(s), if any\nX\t* passing the source thru the C pre-processor\nX\t    shipping over any #include files\nX\t* performing a number of C beautify/cleanup edits on the source\nX\t* passing the beautified source thru the C pre-processor\nX\t    shipping over any #include files\nX\nX    In later rounds, other actions are performed:\nX\nX\t* linting the source\nX\t* compiling/building the source\nX\t* running the program\nX\t* performing misc tests on the source and binary\nX\nX    Until we reduce the stack of entries down to about 25 entries, entries\nX    are judged on an individual basis.  An entry is set aside because it\nX    does not, in our opinion, meet the standard established by the round.\nX    When the number of entries thins to about 25 entries, we begin to form\nX    award categories.  Entries begin to compete with each other for awards.\nX    An entry often will compete in several categories.\nX\nX    The actual award category list will vary depending on the types of entries\nX    we receive.  A typical category list might be:\nX\nX\t* best small one line program\nX\t* best small program\nX\t* strangest/most creative source layout\nX\t* most useful obfuscated program\nX\t* best game that is obfuscated\nX\t* most creatively obfuscated program\nX\t* most deceptive C code\nX\t* best X client (see OUR LIKES AND DISLIKES)\nX\t* best abuse of ANSI C\nX\t* worst abuse of the rules\nX\t* <anything else so strange that it deserves an award>\nX\nX    We do not limit ourselves to this list.  For example, a few entries are so\nX    good/bad that they are declared winners at the start of the final round.\nX    We will invent awards categories for them, if necessary.\nX\nX    In the final round process, we perform the difficult tasks of\nX    reducing the remaining entries (typically about 25) down to 8 or 10\nX    winners.  Often we are confident that the entries that make it into\nX    the final round are definitely better than the ones that do not\nX    make it.  The selection of the winners out of the final round, is\nX    less clear cut.\nX\nX    Sometimes a final round entry good enough to win, but is beat out\nX    by a similar, but slightly better entry.  For this reason, it is\nX    sometimes worthwhile to re-enter an improved version of an entry\nX    that failed to win in a previous year.  This assumes, of course,\nX    that the entry is worth improving in the first place!\nX\nX    More often that not, we select a small entry (usually one line), a\nX    strange/creative layout entry, and an entry that abuses the contest\nX    rules in some way.\nX\nX    In the end, we traditionally pick one entry as 'best'.  Sometimes such\nX    an entry simply far exceeds any of the other entry.  More often, the\nX    'best' is picked because it does well in a number of categories.\nX\nX\nXANNOUNCEMENT OF WINNERS:\nX\nX    The first announcement, occurs at a Summer Usenix conference.  By tradition,\nX    this is done during the latter part of the UUNET/IOCCC BOF, just prior to\nX    the Berkeley BSD, and BSDI BOF.\nX\nX    Winning entries will be posted in late June to the following groups:\nX\nX\t    comp.lang.c\t\t  comp.unix.wizards\talt.sources\nX\nX    In addition, pointers to these postings are posted to the following\nX\nX\t    comp.sources.d\t  alt.sources.d\t\tmisc.misc\nX\t    comp.sources.misc\t  comp.windows.x\nX\nX    Winning entries will be deposited into the uunet archives.  See\nX    below for details.\nX\nX    Often, winning entries are published in selected magazines.  Winners\nX    have appeared in books (\"The New Hackers Dictionary\") and on T-Shirts.\nX\nX    Last, but not least, winners receive international fame and flames!  :-)\nX\nX\nXFOR MORE INFORMATION:\nX\nX    You may contact the judges by sending Email to the following address:\nX\nX\t...!{apple,pyramid,sun,uunet}!hoptoad!judges\t(not the address for\nX\tjudges@toad.com\t\t\t\t\t submitting entries)\nX\nX    Questions and comments about the contest are welcome.\nX\nX    The rules and the guidelines may (and often do) change from year to\t      |\nX    year.  You should be sure you have the current rules and guidelines\t      |\nX    prior to submitting entries.  To obtain them, send Email to the address   |\nX    above and use the subject 'send rules'.\t\t\t\t      |\nX\nX    One may obtain winners of previous contests (1984 to date), via ftp from: |\nX\nX\thost: ftp.uu.net\t(192.48.96.9)\t\t\t\t      |\nX\tuser: anonymous\nX\tpass: yourname@yourhost\nX\tdir:  ~/pub/ioccc\t\t\t\t\t\t      |\nX\nX    As a last resort, previous winners may be obtained by sending Email\t      |\nX    to the above address.  Please use the subject 'send YEAR winners',\t      |\nX    where YEAR is a single 4 digit year, a year range, or 'all'.\t      |\nX\nX\nXchongo <Landon Curt Noll> /\\cc/\\  \tchongo@toad.com\t\t\t      |\nXLarry Bassel\t\t\t  \tlab@sun.com\t\t\t      |\nSHAR_EOF\nchmod 0444 guidelines ||\necho \"restore of guidelines failed\"\nset `wc -c guidelines`;Wc_c=$1\nif test \"$Wc_c\" != \"25592\"; then\n\techo original size 25592, current size $Wc_c\nfi\necho \"End of part 1, continue with part 2\"\nexit 0\n-- \nSunnyvale residents: Vote Landon Noll for Sunnyvale City Council seat 1.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1926, "properties": {"category": "rec.autos", "text": "From: jburrill@boi.hp.com (Jim Burrill)\nSubject: Re: Squeekin' Windows\nDistribution: usa\nOrganization: Idaho River Country, The Salmon, Payette, Clearwater, Boise, Selway, Priest.\nX-Newsreader: TIN [version 1.1.8 PL6]\nLines: 19\n\narlen.r.martin (arm1@cbnewsm.cb.att.com) wrote:\n: Consumer Reports once wrote about the S-10 Blazer that it \"shook and rattled\n: like a tired taxi cab\".  There is one noise that is expecially irritating -\n: the back window squeaks.  I believe its because the whole tailgate assembly\n: and window are not solid.  Anyway, has anyone had the same problem, and have\n: you found any fixes?\n:\n\nI can relate to this. I've tried everything on my 86, greasing every point,\nWD40, etc. Grease on the two cheap hinges on the tailgate seems to quiet it\ndown for a time, until the grease works out of the hinges. (Hinge pins appear\nto be made out of 16 penny nails!) \n\nAnother vibration seems to get worse with age, and that is a vibration in the\ntransmission in 4th gear. My S10 has 59K miles on it. I bought it new, treated\nit very easily, no fast off-road stuff. Can't GM build Chevies like they used\nto? Ford Explorers look nice, until you look at the price.\n\nJim Burrill\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1927, "properties": {"category": "sci.electronics", "text": "From: tchannon@black.demon.co.uk (Tim Channon)\nSubject: Re: Can I use a CD4052 analog multiplexer for digital signal\nReply-To: tchannon@black.demon.co.uk\nDistribution: world\nX-Mailer: cppnews $Revision: 1.20 $\nOrganization: null\nLines: 19\n\n> As the subject says - Can I use a 4052 for digital signals?  I don't see\n> why it couldn't handle digital signals, but I could be wrong.  Anyone have\n> any advice?  Thanks.\n\nYes.\n\nI use 74HC4066 and others commerically for this purpose so rest assured it \nworks fine. In one case I route bit serial digital audio using these and it \nis difficult to see any signal degradation at all which surprised me given \nsome pretty fast edges. HC4066 is spec'd at something like -3dB @ 200MHz into \n50 ohms. The more complex types are generally a little slower and more \nresistive.\n\nPlain 4000 series are not so good at handling 5v logic.\n\nRemember that the output load is seen by the input device.\n\n  TC. \n    E-mail: tchannon@black.demon.co.uk or tchannon@cix.compulink.co.uk\n                                \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1928, "properties": {"category": "talk.religion.misc", "text": "From: joslin@pogo.isp.pitt.edu (David Joslin)\nSubject: Re: Food For Thought On Tyre\nOrganization: Intelligent Systems Program\nLines: 113\n\nking@ctron.com (John E. King) writes:\n>Not exactly.  The prophesy clearly implies that people would\n>still be living in the area, but by the same token it would\n>never be \"rebuilt\".  Obviously , if people are still there they\n>would live in houses, correct?  Their \"nets\" implies a fishing\n>village.  This is exactly what it has become -- a far cry from\n>its original position of stature .\n\nLooking at [1] we find that during Roman times \"Tyre vied with Sidon\nfor first place in the intellectual life of the period\"; that Tyre was\nthe seat of a Christian bishop, eventually with 14 dioceses under it;\nthat \"the most magnificent church of its kind in all Phoenecia\" was the\nbasilica built in Tyre ca. 314; that Tyre was well known for its\nexports of glassware, wine, white marble, and dyed cloth; that Tyre,\nalong with other seaports, \"provided outlets for South Arabian, Indian\nand even Chinese trade\"; that Tyre had to accomodate its growing\npopulation by \"following a perpendicular, rather than horizontal, line\nof growth\" (because it was running out of land to build on); that Tyre\nestablished colonies of its own.  None of this sounds like a \"small\nfishing village\" by any stretch of the imagination.\n\nCenturies later, under the Abbasids, Tyre had \"opulent and flourishing\nbazaars\" and buildings of 5-6 stories.  During this period, Tyre was\n\"noted for its export of sugar, beads, and, as of old, glassware.\"\nDuring the Crusades, Tyre was the second-most flourishing city held\nby Franks.  (There is a lot more, but I got tired of writing.)\n\nIn [2] we read the following description of modern Lebanon: \"other\n*major cities* in Lebanon include Tripoli, Sidon, Tyre, Baalbek and\nZahlah.\"  [my emphasis]  This source also discusses the impact of\nthe Lebanese Civil War, and the Israeli military actions (1978, 1982)\non the trading ports of Tyre and Sidon.  It notes that after Israel's\nwithdrawel in 1984, \"Tyre appeared to enjoy a revival of its local\neconomy.\"\n\nIf Tyre is such an insignificant little fishing village at present,\nwhy is it always called a city (or, above, a \"major city\")?  Why\ndoes it show up on all the maps?   When population figures for cities\nin Lebanon are given, why is Tyre always one of the cities on the\nlist (even if the list is only a dozen cities long)?\n\n[1] Philip K. Hitti, _Lebanon in History: From the earliest times to\nthe present_, NY, St. Martins, 1967.  \n\n[2] Federal Research Division, Library of Congress, _Lebanon: a\ncountry study_, edited by Thomas Collelo, 1989.\n\n>>In the early 1980's Tyre had over 22,000 people.\n>\n>So far I've seen stated figurers ranging from 15,000 to 22,000.\n>Let's assume the latter one is correct.  By modern standards\n>we are talking about a one-horse town.\n\nA one-horse town?  Sounds like a lot of work for one horse.\n(Anyway, Tyre is connected by roads to the mainland.  They\nmay even use cars these days. :-) \n\nThe 1991 Encyclopedia Britannica says \"Pop. (1982 est.) 23,000.\"  \nMost other references give figures in the 14-17 thousand range.\n(One atlas gives the population of Tyre as 60,000; the same\nsource give comparatively high figures for Sidon and Beirut, also,\nso I doubt that it is a typo.  Perhaps these were figures for\nthe cities and their surrounding areas.)  I don't doubt that the\npopulation of Tyre has fluctuated over the last few decades.  In\nparticular, the 1982 Israeli military action hurt Tyre quite a bit.   \n\n>> After Alex the G it fell once more in the 1200's, I believe.  What\n>>other times did it fall that you were thinking of? \n>\n>To Egypt (250 bce); to the Seleucids (198 bce); Rome (63 bce); after\n>Rome it fell to various Arab contingents until 1124 ce when it was\n>captured in the Crusades;  it was then recaptured again by the Muslims\n>in 1291 ce and subsequently pillaged; then the French, Turks, British,\n>and today, Lebanon.\n\nI thought you were talking about times that Tyre was destroyed.\nDon't most, if not all, of these apply not just to Tyre but to \nthe other cities in the area?  Sidon, for example?  Can you make\na case for Tyre having been singled out?\n\n>>Well, it recovered enough to have a thriving commerce in the dye\n>>\"Tyrian purple\" in Roman times. \n>\n>This is correct, but they were under Roman domination, and the \n>majority of the created wealth was siphoned off.  The prophesy\n>hold true.\n\nThey had a good deal of autonomy under the Seleucids. From [2]:\nTyre \"receiv[ed] the rights [of autonomy] from Antiochus Ephiphanes\nand from 125 BC onward enjoy[ed] complete autonomy. She started a\nlarge series of coins, occasionally in gold ...\"\n\nThe descriptions of Tyre under the Romans don't seem to fit\nyour characterization, either.  And under the Abbasids it seems\nto have been allowed to flourish.  I still think you are stretching\nwhen you try to describe Tyre as having been nothing but a small\nfishing village.\n\n>Who is Josh McDowell.\n\nA Christian apologist whose standards of scholarship are quite low.\nHe happens to quote the same source you quote (Nina Jidejian,\n_Tyre through the Ages_, Beirut, Dar El-Mashreq Publishers, 1969).\nThe same sentence, in fact.  He defends the fulfillment of the\nprophecy using the same argument you are using, an argument that\nI haven't seen in print anywhere else, which is why I jumped to\nthe conclusion that you were quoting Josh.\n\n(I tried to find the Jidejian book, but it isn't listed in Books\nin Print.  Can you tell me more about it? Her descriptions are so\nmuch at odds with everything else I've read; I'm curious to know why.)\n\ndj\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1929, "properties": {"category": "rec.sport.baseball", "text": "Subject: quick way to tell if your local beat writer is dumb.\nFrom: gajarsky@pilot.njin.net (Bob Gajarsky - Hobokenite)\nOrganization: Somewhere in Hoboken\nLines: 10\n\n\njayson stark (i trhink that's him) fits perfectly in this category.\n\nanyone who writes \"dean palmer has 2 homers  - at this pace, he'll\n have 324 home runs!\" should be shot.\n\nif, at the end of april, he has 11, and anyone writes \"at this\n pace, he'll have 100+ homers!\" they shouldbe shot too.\n\n- bob gaj\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1930, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bishop@baeyer.chem.fsu.edu (Greg Bishop)\nSubject: Re: Diamond SS24X, Win 3.1, Mouse cursor\nOrganization: Physics Department, FSU\nNews-Software: VAX/VMS VNEWS         \nReply-To: bishop@baeyer.chem.fsu.edu\nLines: 26\n\n>In article <1993Apr15.204845.24939@nlm.nih.gov> dabl2@nlm.nih.gov (Don A.B. Lindbergh) writes:\n>>\n>>Anybody seen mouse cursor distortion running the Diamond 1024x768x256 driver?\n>>Sorry, don't know the version of the driver (no indication in the menus) but it's a recently\n>>delivered Gateway system.  Am going to try the latest drivers from Diamond BBS but wondered\n>>if anyone else had seen this.\n>>\n\n>As a followup, this is a co-worker's machine.  He has the latest 2.03 drivers.\n>It only happens using the 1024x768x256 driver.  Sometimes it takes a minute\n>or so for the cursor to wig out, but it eventually does in this mode.  I\n>susect something is stepping on memory the video card wants.  I excluded\n>a000-c7ff in the EMM386 line and in system.ini  The problem persisted.\n>Perhaps it is something specific to the Gateway machine or it's components.\n>It is a 66mhz DX/2 Eisa bus with an Ultrastore (24xx?) controller.  Ah well,\n>I was hoping this was some kind of 'known problem' or somebody had seen it\n>before.  Perhaps a call to Gateway is in order, but I do find folks here\n>usually are far more in the know.\n\nI use the Diamond SpeedStar 24X in 1024X768X256 mode all of the time.  I \nhave NOT found distortions in the cursor.  The cursor is a little jumpy \nfrom time to time (due to 32 bit access to the swap file), but it is never \ndistorted.\n\nGreg Bishop. (bishop@baeyer.chem.fsu.edu)\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1931, "properties": {"category": "soc.religion.christian", "text": "From: jono@mac-ak-24.rtsg.mot.com (Jon Ogden)\nSubject: Re: Latest on Branch Davidians\nOrganization: Motorola LPA Development\nLines: 23\n\nIn article <Apr.20.03.02.42.1993.3815@geneva.rutgers.edu>,\nconditt@tsd.arlut.utexas.edu (Paul Conditt) wrote:\n\n\n> I think it's really sad that so many people put their faith in a mere\n> man, even if he did claim to be the son of God, and/or a prophet.\n\nIt is just as Christ said about his return:\n\n\"Some will say, 'He is in the desert.' or some will say, 'He is in the\nwilderness.'  But do not believe them.  For as lightning flashes east to\nwest so shall the coming of the Son of Man be.\"  \n                                         { My paraphrase - I think the\nverse is\n                                           somewhere in John }\n\nJon\n\n----------------\nsig file broken....\n\nplease try later...\n----------------\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1932, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: Re: Mac OS on a 486!!! \nFrom: Keith Whitehead <sir@office.acme.gen.nz>\nX-Mailer: rnMac Buggy, I mean Beta, Test Version\nLines: 45\n\n\nIn article <C508BJ.6E2@imag.fr>, you write:\n> \n> hillman (hillman@plk.af.mil) wrote:\n> : deathbird+@CMU.EDU (Donpaul C. Stephens)\n> : \n> : kind of slated wouldn't you say?)  Who is going to throw all that to \nthe \n> : side and get the Mac OS for 486???\n\nNot Quite the point to be considdered here!\nFact: If/When Apple release system 7 (or what ever is current at the time \nof release) then you will see shortly afterwards Apple no longer producing \nHardware...Look at Next with their NextStep486 to see what happens.\nWho is going to pay Apples Prices when they can get the same thing cheaper \nelse where! (Heck we can get a Sun Workstation cheaper than a Quadra, and \ninfact we have a number of times!!!, it ALL comes down to $$$$)\n\n> : If Apple released this before windows 3.0 was released I'd be behind \nthem,\n> : they missed the boat.  So why is Apple continued development.  Will it\n> : support the P5 to its fullest capabilities?  Run faster than Windows?  \nIt\n> : must do something significantly better than Windows and OS2 to warrent\n> : being released.\n\n\nNo the continued develeopment is because there is becomming less and less \nprofit in Hardware, So the Next Step (no pun intended...well sort of), is \nto make the money in software (look at Microsoft if you think it can't \nhappen!), after all you can sell multiple pieces of software to ONE \nhardware platform.\n\nAs you also said Windows is a nightmare for programmers, so will the \ntemptation to sell system 7 to a couple of MILLION dos users be too much \nfor Apple! (50 million copies @ $100 is SERIOUS money!).\n\n--\n\n\n==========================================================================\n:  Sir@office.acme.gen.nz                                                :\n:                                                                        :\n: Be thankfull that we dont get all the government we pay for!           :\n==========================================================================\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1933, "properties": {"category": "sci.electronics", "text": "Subject: Re: Power, signal surges in home...\nFrom: emd@ham.almanac.bc.ca\nDistribution: world\nOrganization: Robert Smits\nLines: 21\n\nvanderby@mprgate.mpr.ca (David Vanderbyl) writes:\n\n> drand@spinner.osf.org (Douglas S. Rand) writes:\n> \n> >   Hams can legally run up to 1500 watts.  It is very unlikely, however,\n> >   that a ham would be running that kind of power from a car.\n> >\n> >Not possible either.  You'd need about a 300 amp alternator for\n> >just the amplifier.\n> \n> It is too possible.  As the original poster said \"it is very unlikely\"\n> but definately possible.  (Can you say batteries?)\n\n\nI've even seen pictures of an installation where the ham pulled a little \ntrailer behind his car with a 4KW generator, and ran the full legal limit \nwhile mobile. I don't know what his gas mileage was like, though, or \nwhere he found resonators able to stand the gaff.\n\n\nemd@ham.almanac.bc.ca (Robert Smits Ladysmith BC)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1934, "properties": {"category": "rec.motorcycles", "text": "From: davet@interceptor.cds.tek.com (Dave Tharp CDS)\nSubject: Re: How NOT to put a motor together\nArticle-I.D.: tekgen.2419\nOrganization: Tektronix - Colorado Data Systems, Englewood, CO\nLines: 32\n\nIn article <1993Apr6.183553.19539@tcsi.com> markk@tcs.com (Mark Kromer) writes:\n>In article <65886@mimsy.umd.edu>, leavitt@cs (Mr. Bill) writes:\n>\n>[put pistons in bores first then lower onto bottom end deleted]\n>\n>>Has anybody actually carried out this procedure?  I can visualize fewer\n>>problems with canting pistons in the cylinders with this method, but\n>>more trouble with keeping the bores suspended (especially for the first\n>>two pistons) and with working space to insert piston pins and clips\n>>(especially for the last two pistons).\n\n    It is certainly possible, and quite easy in most cases, especially\non two-strokes.  It's very common to do this on bikes where the\ncylinder-mounting through-studs don't prevent the cylinder from being\nremoved with the engine in the frame.\n    I did this when I assembled the top end on my Indian, which was\neasier yet because it does not have through-studs.  Base flange studs,\nand separate head bolts, dontchaknow.\n    You have to use a little foresight, rags, duct tape, etc. to keep\nclips from falling in, clothespins, hoseclamps, etc. to support the\ncylinder while you're inserting the pins.\n    (Are these called Gudgeon Pins in the UK? If so, what's a Gudgeon?)\n\n-----------------------------------------------------------------------------\n| Dave Tharp                      | DoD #0751   | \"You can't wear out       |\n| davet@interceptor.CDS.TEK.COM   | MRA #151    |   an Indian Scout,        |\n| '88 K75S  '48 Indian Chief      | AHRMA #751  |  Or its brother the Chief.|\n| '75 R90S(#151) '72 TR-2B(#751)  | AMA #524737 |  They're built like rocks |\n| '65 R50/2/Velorex  '57 NSU Max  |             |   to take the knocks,     |\n|       1936 BMW R12              | (Compulsive | It's the Harleys that     |\n| My employer has no idea.        |   Joiner)   |   give you grief.\"        |\n-----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1935, "properties": {"category": "rec.motorcycles", "text": "From: cookson@mbunix.mitre.org (Cookson)\nSubject: DOT Tire date codes\nNntp-Posting-Host: mbunix.mitre.org\nOrganization: The MITRE Corp., Bedford, Ma.\nDistribution: usa\nLines: 25\n\nI just mailed this:\n\nI noticed a 2-3in long cut in the tread of the rear tire on my VFR.\nThe cut is only about as deep as the tread block, and looks like it\nonly scratched the rubber at the base, but the weird thing is, it's\nway over on the edge where I haven't scuffed the tire in yet.\nMy questions are:\n1. How dangerous is this, should I replace the tire right away?\nand\n2. If I should, since the cut is on the unscuffed portion and the\ntire only has about 330 mi on it, what do you think my chances of\ngetting it replaced under warranty are?\n\nTo the nedod mailing list, and Jack Tavares suggested I check out\nhow old the tire is as one tactic for getting it replaced.  Does\nanyone have the file on how to read the date codes handy?\n\nThanks,\nDean\n\n-- \n| Dean Cookson / dcookson@mitre.org / 617 271-2714    | DoD #207  AMA #573534 |\n| The MITRE Corp. Burlington Rd., Bedford, Ma. 01730  | KotNML  /  KotB       |\n| \"The road is my shepherd and I shall not stop\"      | '92 VFR750F           |\n| -Sam Eliott, Road Hogs MTV 1993                     | '88 Bianchi Limited   |\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1936, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: Metric vs English\nArticle-I.D.: mksol.1993Apr6.131900.8407\nOrganization: Texas Instruments Inc\nLines: 31\n\nIn <1993Apr5.195215.16833@pixel.kodak.com> dj@ekcolor.ssd.kodak.com (Dave Jones) writes:\n\n>Keith Mancus (mancus@sweetpea.jsc.nasa.gov) wrote:\n>> Bruce_Dunn@mindlink.bc.ca (Bruce Dunn) writes:\n>> > SI neatly separates the concepts of \"mass\", \"force\" and \"weight\"\n>> > which have gotten horribly tangled up in the US system.\n>> \n>>   This is not a problem with English units.  A pound is defined to\n>> be a unit of force, period.  There is a perfectly good unit called\n>> the slug, which is the mass of an object weighing 32.2 lbs at sea level.\n>> (g = 32.2 ft/sec^2, of course.)\n>> \n\n>American Military English units, perhaps.  Us real English types were once \n>taught that a pound is mass and a poundal is force (being that force that\n>causes 1 pound to accelerate at 1 ft.s-2).  We had a rare olde tyme doing \n>our exams in those units and metric as well.\n\nAmerican, perhaps, but nothing military about it.  I learned (mostly)\nslugs when we talked English units in high school physics and while\nthe teacher was an ex-Navy fighter jock the book certainly wasn't\nproduced by the military.\n\n[Poundals were just too flinking small and made the math come out\nfunny; sort of the same reason proponents of SI give for using that.] \n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1937, "properties": {"category": "sci.space", "text": "From: eder@hsvaic.boeing.com (Dani Eder)\nSubject: Re: Guns for Space\nKeywords: Sopa Gun, Space Launcer\nOrganization: Boeing AI Center, Huntsville, AL\nLines: 72\n\n\nOkay, lets get the record straight on the Livermore gas gun.  \nThe project manager is Dr. John Hunter, and he works for the\nLaser group at Livermore.  What, you may ask, does gas guns\nhave to do with lasers? Nothing, really, but the gun is physically\nlocated across the road from the Free Electron Laser building,\nand the FEL building has a heavily shielded control room (thick walls)\nfrom which the gun firings are controlled.  So I suspect that the\noffice he works for is an administrative convenience.\n\nI visited Hunter at the beginning of Feb. and we toured the gun.\nAt the time I was working on gas gun R&D at Boeing, where I work,\nbut I am now doing other things (helping to save the space station),\n\nThe gun uses a methane-air mixture, which is burned in a chamber\nabout 200 ft long by 16 inch ID (i.e. it looks like a pipe).\nThe chamber holds a 1 ton piston which is propelled at several\nhundred m/s down the chamber.  On the other side of the piston\nis hudrogen gas, initially at room temperature andsome tens\nof atmospheres.\n\nThe piston compresses and heats the hydrogen ahead of it until\na stainless steel burst diaphragm ruptures, at around 50,000 psi.\nThe barrel of the gun is about 100 feet long and has a 4 inch\nbore.  It is mounted at right angles to the chamber (i.e. they\nintersect).  This was done so that in the future, the barrel\ncould be raised and the gun fired into the air without having to\nmove the larger and heavier chamber.  The projectile being used\nin testing is a 5 kg cylinder of Lexan plastic, 4 in in diameter\nand about 50 cm long.\n\nAll of the acceleration comes from the expansion of the hydrogen\ngas from 50,000 psi downwards until the projectile leaves the\nbarrel.  The barrel is evacuated, and the end is sealed with a\nsheet of plastic film (a little thicker than Saran wrap).  The\nplastic is blown off by the small amount of residual air trapped\nin the barrel ahead of the projectile.  \n\nThe gun is fired into a bunker filled with sandbags and plastic\nwater jugs.  In the early testing fragments of the plastic\nprojectile were found.  At the higher speeds in later testing,\nthe projectile vaporizes.\n\nThe testing is into a bunker because the Livermore test range is\nabout 3 miles across, and the projectile would go 100-200 km\nif fired for maximum range.  The intent is to move the whole gun\nto Vandenberg AFB after the testing is complete, where they can\nfire into the Pacific Ocean, and use the tracking radar at VAFB\nto follow the projectiles.\n\nThe design goal of the gun is to throw a 5 kg projectile at 4\nkm/s (half of orbital speed).  So far they have reached 2 km/s,\nand the gun is currently down for repairs, as on the last test\nthey blew a seal and damaged some of the hardware (I think it\nhad to do with the methane-air more detonating than burning, but\nI haven't had a chance to talk to Hunter directly on this).\n\nThere are people waiting to test scramjet components in this\ngun by firing then out of the gun into the air (at Mach 12=\n4 km/s), since the most you can get in wind tunnels is Mach 8.\n\nThis gun cost about 4 million to develop, and is basically\na proof-of-concept for a bigger gun capable of firing useful-\nsized payloads into space.  This would require on the order of\n100 kg projectiles, which deliver on the order of 20 kg\nuseful payload to orbit.\n\nDani Eder\n\n-- \nDani Eder/Meridian Investment Company/(205)464-2697(w)/232-7467(h)/\nRt.1, Box 188-2, Athens AL 35611/Location: 34deg 37' N 86deg 43' W +100m alt.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.090+0000", "event": "documents", "entityId": 1938, "properties": {"category": "talk.politics.guns", "text": "From: ndallen@r-node.hub.org (Nigel Allen)\nSubject: WACO: Clinton press conference, part 1\nOrganization: R-node Public Access Unix - 1 416 249 5366\nLines: 282\n\nHere is a press release from the White House.\n\n President Clinton's Remarks On Waco With Q/A\n To: National Desk\n Contact: White House Office of the Press Secretary, 202-456-2100\n\n   WASHINGTON, April 20 -- Following are remarks by President \nClinton in a question and answer session with the press:\n\n1:36 P.M. EDT\n\n     THE PRESIDENT:  On February the 28th, four federal\nagents were killed in the line of duty trying to enforce the law\nagainst the Branch Davidian compound, which had illegally stockpiled\nweaponry and ammunition, and placed innocent children at risk.\nBecause the BATF operation had failed to meet its objective, a 51-day\nstandoff ensued.\n\n     The Federal Bureau of Investigation then made every\nreasonable effort to bring this perilous situation to an end without\nbloodshed and further loss of life.  The Bureau's efforts were\nultimately unavailing because the individual with whom they were\ndealing, David Koresh, was dangerous, irrational, and probably\ninsane.\n\n     He engaged in numerous activities which violated both\nfederal law and common standards of decency.  He was, moreover,\nresponsible for the deaths and injuries which occurred during the\naction against the compound in February.  Given his inclination\ntowards violence and in an effort to protect his young hostages, no\nprovocative actions were taken for more than seven weeks by federal\nagents against the compound.\n\n     This weekend I was briefed by Attorney General Reno on\nan operation prepared by the FBI, designed to increase pressure on\nKoresh and persuade those in the compound to surrender peacefully.\nThe plan included a decision to withhold the use of ammunition, even\nin the face of fire, and instead to use tear gas that would not cause\npermanent harm to health, but would, it was hoped, force the people\nin the compound to come outside and to surrender.\n\n     I was informed of the plan to end the siege.  I\ndiscussed it with Attorney General Reno.  I asked the questions I\nthought it was appropriate for me to ask.  I then told her to do what\nshe thought was right, and I take full responsibility for the\nimplementation of the decision.\n\n     Yesterday's action ended in a horrible human tragedy.\nMr. Koresh's response to the demands for his surrender by federal\nagents was to destroy himself and murder the children who were his\ncaptives, as well as all the other people who were there who did not\nsurvive.  He killed those he controlled, and he bears ultimate\nresponsibility for the carnage that ensued.\n\n     Now we must review the past with an eye towards the\nfuture.  I have directed the United Stated Departments of Justice and\nTreasury to undertake a vigorous and thorough investigation to\nuncover what happened and why, and whether anything could have been\ndne differently.  I have told the departments to involve independent\nprofessional law enforcement officials in the investigation.  I\nexpect to receive analysis and answers in whatever time is required\nto complete the review.  Finally, I have directed the departments to\ncooperate fully with all congressional inquiries so that we can\ncontinue to be fully accountable to the American people.\n\n     I want to express my appreciation to the Attorney\nGeneral, to the Justice Department, and to the federal agents on the\nfront lines who did the best job they could under deeply difficult\ncircumstances.\n\n     Again, I want to say as I did yesterday, I am very sorry\nfor the loss of life which occurred at the beginning and at the end\nof this tragedy in Waco.  I hope very much that others who will be\ntempted to join cults and to become involved with people like David\nKoresh will be deterred by the horrible scenes they have seen over\nthe last seven weeks.  And I hope very much that the difficult\nsituations which federal agents confronted there and which they will\nbe doubtless required to confront in other contexts in the future\nwill be somewhat better handled and better understood because of what\nhas been learned now.\n\n     Q  Mr. President, can you, first of all, tell us why,\nafter 51 days, you decided --\n\n     Q  Mr. President, can you describe for us what it is\nthat Janet Reno outlined to you in your 15-minute phone conversation\nwith --\n\n     THE PRESIDENT:  I can't hear you both.  If one will go\nfirst and then the other.\n\n     Q  Sorry.  Can you describe what Janet Reno --\n\n     Q  Mr. President --\n\n     THE PRESIDENT:  I'll answer both your questions, but I\ncan't do it at once.\n\n     Q  Can you describe what she told you on Sunday about\nthe nature of the operation and how much detail you knew about it?\n\n     THE PRESIDENT:  Yes.  I was told by the Attorney General\nthat the FBI strongly felt that the time had come to take another\nstep in trying to dislodge the people in the compound.  And she\ndescribed generally what the operation would be -- that they wanted\nto go in and use tear gas which had been tested not to cause\npermanent damage to adults or to children, but which would make it\nvery difficult for people to stay inside the building.  And it was\nhoped that the tear gas would permit them to come outside.\n\n     I was further told that under no circumstances would our\npeople fire any shots at them even if fired upon.  They were going to\nshoot the tear gas from armored vehicles which would protect them and\nthere would be no exchange of fire.  In fact, as you know, an awful\nlot of shots were fired by the cult members at the federal officials.\nThere were no shots coming back from the government side.\n\n     I asked a number of questions.  The first question I\nasked is, why now?  We have waited seven weeks; why now?  The reasons\nI was given were the following:\n\n     Number one, that there was a limit to how long the\nfederal authorities could maintain with their limited resources the\nquality and intensity of coverage by experts there.  They might be\nneeded in other parts of the country.\n\n     Number two, that the people who had reviewed this had\nnever seen a case quite like this one before, and they were convinced\nthat no progress had been made recently and no progress was going to\nbe made through the normal means of getting Koresh and the other cult\nmembers to come out.\n\n     Number three, that the danger of their doing something\nto themselves or to others was likely to increase, not decrease, with\nthe passage of time.\n\n     And number four, that they had reason to believe that\nthe children who were still inside the compound were being abused\nsignificantly, as well as being forced to live in unsanitary and\nunsafe conditions.\n\n     So for those reasons, they wanted to move at that time.\nThe second question I asked the Attorney General is whether they had\ngiven consideration to all of the things that could go wrong and\nevaluated them against what might happen that was good.  She said\nthat the FBI personnel on the scene and those working with them were\nconvinced that the chances of bad things happening would only\nincrease with the passage of time.\n\n     The third question I asked was, has the military been\nconsulted?  As soon as the initial tragedy came to light in Waco,\nthat's the first thing I asked to be done, because it was obvious\nthat this was not a typical law enforcement situation.  Military\npeople were then brought in, helped to analyze the situation and some\nof the problems that were presented by it.   And so I asked if the\nmilitary had been consulted.  The Attorney General said that they\nhad, and that they were in basic agreement that there was only one\nminor tactical difference of opinion between the FBI and the military\n-- something that both sides thought was not of overwhelming\nsignificance.\n\n     Having asked those questions and gotten those answers, I\nsaid that if she thought it was the right thing to do, that she\nshould proceed and that I would support it.  And I stand by that\ntoday.\n\n     Q  Mr. President --\n\n     THE PRESIDENT:  Wait.  Go ahead.\n\n     Q  Can you address the widespread perception --\nreported widely, television, radio and newspapers -- that you were\ntrying somehow to distance yourself from this disaster?\n\n     THE PRESIDENT:  No, I'm bewildered by it.  The only\nreason I made no public statement yesterday -- let me say -- the only\nreason I made no public statement yesterday is that I had nothing to\nadd to what was being said and I literally did not know until rather\nlate in the day whether anybody was still alive other than those who\nhad been actually seen and taken to the hospital or taken into\ncustody.  It was purely and simply a question of waiting for events\nto unfold.\n\n     There was -- I have -- I can't account for why people\nspeculated one way or the other, but I talked to the Attorney General\non the day before the action took place.  I talked to her yesterday.\nI called her again late last night after she appeared on the Larry\nKing Show, and I talked to her again this morning.  A President -- it\nis not possible for a President to distance himself from things that\nhappen when the federal government is in control.\n\n     I will say this, however.  I was, frankly, surprised\nwould be a mild word, to say that anyone that would suggest that the\nAttorney General should resign because some religious fanatics\nmurdered themselves.  (Applause.)\n\n     I regret what happened, but it is not possible in this\nlife to control the behavior of others in every circumstance.  These\npeople killed four federal officials in the line of duty.  They were\nheavily armed.  They fired on federal officials yesterday repeatedly,\nand they were never fired back on.  We did everything we could to\navoid the loss of life.  They made the decision to immolate\nthemselves.  And I regret it terribly, and I feel awful about the\nchildren.\n\n     But in the end, the last comment I had from Janet Reno,\nis when -- and I talked to her on Sunday -- I said, now, I want you\nto tell me once more why you believe -- not why they believe -- why\nyou believe we should move now rather than wait some more.  And she\nsaid, it's because of the children.  They have evidence that those\nchildren are still being abused and that they're in increasingly\nunsafe conditions, and that they don't think it will get any easier\nwith time -- with the passage of time.  I have to take their word for\nthat.  So that is where I think things stand.\n\n     Q  Can we assume then that you don't think this was\nmishandled in view of the outcome, that you didn't run out of\npatience?  And if you had it to do over again, would you really\ndecide that way?\n\n     THE PRESIDENT:  No -- well, I think what you can assume\nis just exactly what I announced today.  This is a -- the FBI has\ndone a lot of things right for this country over a long period of\ntime.  This is the same FBI that found the people that bombed the\nWorld Trade Center in lickety-split, record time.  We want an inquiry\nto analyze the steps along the way.  Is there something else we\nshould have known?  Is there some other question they should have\nasked?  Is there some other question I should have asked?  Can I say\nfor sure that no one -- that we could have done nothing else to make\nthe outcome come different?  I don't know that.  That's why I want\nthe inquiry and that's why I would like to make sure that we have\nsome independent law enforcement people, not political people, but\ntotally non-political, outside experts who can bring to bear the best\nevidence we have.\n\n     There is, unfortunately, a rise in this sort of\nfanaticism all across the world.  And we may have to confront it\nagain.  And I want to know whether there is anything we can do,\nparticularly when there are children involved.  But I do think it is\nimportant to recognize that the wrong-doers in this case were the\npeople who killed others and then killed themselves.\n\n     Q  Mr. President, were there any other options\npresented to you for resolving this situation at any point from\nFebruary 28th until yesterday?\n\n     THE PRESIDENT:  Well, yes, I got regular reports all\nalong the way.  There were lots of other options pursued.  If you go\nback -- you all covered it very well.  The FBI -- you did a very good\njob of it.  I mean, the FBI and the other authorities there pursued\nany number of other options all along the way, and a lot of them\nearly on seemed to be working.  Some of the children got out, some of\nthe other people left.  There was a -- at one point, there seemed to\nbe some lines of communication opening up between Koresh and the\nauthorities.  And then he would say things and not do them and things\njust began to spin downward.\n\n     Whether there were other -- in terms of what happened\nyesterday, the conversation I had with the Attorney General did not\ninvolve other options except whether we should take more time with\nthe present strategy we were pursuing -- because they said they\nwanted to do this, because they thought this was the best way to get\npeople out of the compound quickly before they could kill themselves.\nThat's what they thought.\n\n     Q  Did the government know that the children did not\nhave gas masks?\n\n     Q     congressional hearings once the situation -- are\nyou in agreement with that?\n\n     THE PRESIDENT:  That's up to the Congress.  They can do\nwhatever they want.  But I think it's very important that the\nTreasury and Justice Departments launch this investigation and bring\nin some outside experts.  And as I said in my statement, if any\ncongressional committees want to look into it, we will fully\ncooperate.  There is nothing to hide here.  This was probably the\nmost well-covered operation of its kind in the history of the\ncountry.\n\n   (more, more)\n -30-\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1939, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Re: Guns GONE. Good Riddance !\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 66\n\nIn article <1993Apr18.000152.2339@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>You are loosing.\n\nWhat's \"loosing?\"  \n\n>Of those who vote, your cause is considered an abomination. No matter\n>how hard you try, public opinion is set against the RKBA. \n\nI vote.  I don't consider RKBA an abomination. \n\n>This is the end. By the finish of the Clinton administration, your\n>RKBA will be null and void. Tough titty.\n\nI'm sure Sarah Brady would be delighted to hear your ranting and\nraving.  However, Clinton has not publically stated that he would\nlike to repeal the Second Amendment.  \"Tough titty\" to you.\n\n>You had better discover ways to make do without firearms. The number of\n>cases of firearms abuses has ruined your cause. There is nothing you\n>can do about it. Those who live by the sword shall die by it. \n\nAre we going to \"make do without\" like the people in New York City? \nYou know New York City: That gun ban utopia you dream about, with\nthe millions of unregistered handguns?  New York City, by the way,\nhas a very high crime rate.\n\nPerhaps you should know about a gungrabber's nightmare - Idaho.\nHere in Idaho, the police give concealed carry permits to anyone\nover 21 without a criminal record.  There are no gungrabber schemes\nsuch as FOIDs, waiting periods, \"gun a month,\" or LTCs.  And horror\nof horrors!  You don't even NEED a permit to carry a concealed\nweapon while outside of city limits (although you do need a permit\nfor concealed carry in an automobile).\n\nI feel a hell of a lot safer in Boise than I would in your gun ban\ndream state (e.g., Washington, D.C.).\n\n>The press is against you, the public (the voting public) is against\n>you, the flow of history is against you ... this is it !\n\nThe voting public in Idaho is staunchly pro-gun.  Both senators\nare NRA-endorsed \"A\" rated!  Buy a clue, pal.\n\n>Surrender your arms. Soon enough, officers will be around to collect\n>them. Resistance is useless. They will overwhelm you - one at a time.\n>Your neighbors will not help you. They will consider you more if an\n>immediate threat than the abstract 'criminal'. \n>\nGet out your wallet and buy another clue.  There are millions upon\nMILLIONS of pre-1968 (i.e., non-4473'ed) firearms out there.\nThey have a half-life approaching eternity.  And cosmoline is not\nexactly tracked by the feds.\n\n>Too fucking bad. You have gone the way of the KKK. Violent solutions\n>are passe'. Avoid situations which encourage criminals. Then you will\n>be as safe as possible. Such as it is ...\n>\nGun control laws were passed to PROTECT the KKK from blacks!\n\nDrew\n--\nbetz@gozer.idbsu.edu\n*** brought into your terminal from the free state of idaho ***\n*** when you outlaw rights, only outlaws will have rights   ***\n*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1940, "properties": {"category": "sci.med", "text": "Subject: Burzynski's \"Antineoplastons\"\nFrom: jschwimmer@wccnet.wcc.wesleyan.edu (Josh Schwimmer)\nDistribution: world\nOrganization: Wesleyan University, Middletown, CT USA\nNntp-Posting-Host: consultants.con.wesleyan.edu\nLines: 20\n\nI've recently listened to a tape by Dr. Stanislaw Burzynski, in which he \nclaims to have discovered a series naturally occuring peptides with anti-\ncancer properties that he names antineoplastons.  Burzynski says that his \nwork has met with hostility in the United States, despite the favorable \nresponses of his subjects during clinical trials.\n\nWhat is the generally accepted opinion of Dr. Burzynski's research?  He \npaints himself as a lone researcher with a new breakthrough battling an \nintolerant medical establishment, but I have no basis from which to judge \nhis claims.  Two weeks ago, however, I read that the NIH's Department of \nAlternative Medicine has decided to focus their attention on Burzynski's \nwork.  Their budget is so small that I imagine they wouldn't investigate a \ntreatment that didn't seem promising.\n\nAny opinions on Burzynski's antineoplastons or information about the current \nstatus of his research would be appreciated.\n\n--\nJoshua Schwimmer\njschwimmer@eagle.wesleyan.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1941, "properties": {"category": "comp.graphics", "text": "From: pbenson@ecst.csuchico.edu (Paul A. Benson)\nSubject: CD-ROM Indexes available\nOrganization: California State University, Chico\nLines: 6\nNNTP-Posting-Host: cscihp.ecst.csuchico.edu\n\nThe file and contents listings for:\n\nKnowledge Media Resource Library: Graphics 1\nKnowledge Media Resource Library: Audio 1\n\nare now available for anonymous FTP from cdrom.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1942, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: LCD Overhead Projectors\nFrom: jan@camhpp12.mdcbbs.com (Jan Vandenbrande)\nDistribution: na\nOrganization: M&E (Division of EDS), Cypress CA\nNntp-Posting-Host: 134.244.49.156\nLines: 13\n\nI am looking for one of those color LCD screens you\nplace on an overhead projector and control the presentation\nwith a Mac.\n\nCan you recommend me a particular brand?\nWhat price are we talking about?\n\nThanks, \n-- \nJan Vandenbrande\njan@ug.eds.com\t\t\t(New address)\njan@lipari.usc.edu\t\t(school address, forwards)\nUUCP: {uunet, uupsi}!ug!jan\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1943, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: IMPORTANT HOLLY SILVA INFORMATION\nOrganization: Stratus Computer, Inc.\nLines: 19\nDistribution: usa\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1pkojmINNmuq@cae.cad.gatech.edu>, vincent@cad.gatech.edu (Vincent Fox) writes:\n> In a separate post over on soc.culture.usa she explicitly said that while\n> she cross-posts to t.p.g and sets follow-ups to there, she does not READ\n> talk.politics.guns. If you think about it, it's a clever way of keeping\n> some of the politer respondents who will edit their newsgoup line, or\n> properly use the follow-up: from being heard over there. It also makes it\n> easier for her to claim all she ever sees is \"squeaky weasels\".\n\n> So if you want her to see your insiteful analysis, e-mail it. If you\n> want to point out her flaws in public, make sure your newsgroup line\n> includes soc.culture.usa.\n\nTo keep from flooding s.c.u, I e-mailed it.  However, I agree that it's\nquite the sneaky trick.  No more than I would expect, however.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1944, "properties": {"category": "sci.electronics", "text": "From: bakerjp1@netnews.jhuapl.edu (Baker John P. PDD x4895 )\nSubject: How does \"Differential Mode\" GPS work???\nSummary: Explaination of DGPS system\nKeywords: GPS, differential, navigation, radio\nOrganization: JHU/Applied Physics Laboratory\nLines: 46\n\n\n>I understand that the new GPS boxes now have an option\n>known as \"differential ready\".  Apparently land-based\n>beacons tranmit GPS correction information to your GPS \n>receiver (with differential option installed).\n\n>How does this system work?  What frequency is used for\n>the land-based beacons?\n\n>Thanks in advance,\n\n>Charlie Thompson\n>.\n\nHere's a rough sketch of how the system works.  A reference station\nwith a very exactly known position computes the errors in the\nincoming GPS signals.  These errors are due to several factors\nincluding atmospheric distortion, SA (Selective Availability) time\ndithering, etc.  The reference unit contains complex computational \nequipment to \"back out\" the errors in its position (since it knows\nwhere it is already).  It then transmits these corrections on a \nbroadcast which is available to any number of relatively local\nreceivers.  If the receivers are nearby (<300km) and are using\nthe same satellites as the reference unit, the errors should be very\nsimilar for the reference unit and the receiver unit.  Thus, the\nreceiver unit may apply the corrections calculated by the reference\nunit.\n\nThe US Coast Guard is currently (as far as I know) installing a series\nof coastline transmitters for differential GPS.  These stations will\nuse existing radio towers.  I believe the frequency is to be approximately\n305 kHz.  There are many other private corporations offering DGPS signals\non different frequencies.  For example, PinPoint ((310)-618-7076) offers\ncorrection signals and receiver units using an FM broadcast system\nwhich has stations all across the US.\n\nThe correction codes are usually transmitted using the RTCM 104 format.\nAdvertised accuracies espouse 1 to 5 meter errors.\n\n\n-------------------------------------------------------------------------\nJohn P. Baker                   | My opinions are my own.  I don't know\nJohns Hopkins University        | anyone else who wants them, anyway.\nApplied Physics Laboratory\t|\nLaurel, MD  20723               | bakerjp1@aplcomm.jhuapl.edu\n--------------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1945, "properties": {"category": "comp.windows.x", "text": "From: davewood@bruno.cs.colorado.edu (David Rex Wood)\nSubject: Calling a library which creates widgets (multiple times)\nNntp-Posting-Host: bruno.cs.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 91\n\nA few days ago I posted a question about trying to call a function which set\nup an X app multiple times.  It was pointed out that XtAppInitialize() should\nnever be called more than once.  This helped.  However, I am still having\nsome problems.  Below is a new little test program that more closely models\nmy real program.  In the actual program, I am writing a library, callable\nfrom any other program.  This means that the first time the lib function is\ncalled, it must initialize things, and after that, it should just use the\nold stuff (still around because of static variables).  In the demo below,\nmain() represents the main program calling my library and doit() represents\nthe interface to the library function.\n\n#include <X11/Xlib.h>\n#include <Xm/Xm.h>\n#include <Xm/PushB.h>\n#include <stdio.h>\n#include <stdlib.h>\n\nvoid bla(XtAppContext app, Widget top)\n{\n        Widget topone = top;\t\t// in real prog, these are member vars\n        XtAppContext theapp = app;\t// of a class\n        int junk = 0;\n        Display *dis = XtOpenDisplay(theapp, NULL, NULL, NULL, NULL, 0, &junk,\n                                        NULL);\n\n        Widget box = XtVaCreateManagedWidget(\"blaaa\", xmPushButtonWidgetClass,\n                        topone,\n                        XmNheight, 50,\n                        XmNwidth, 50,\n                        NULL);\n\n        XtRealizeWidget(topone);\n        for (int i=0;i<=25;i++)\t// real prog returns when \"Exit\" button clicked\n        {\n                XEvent event;\n                XtAppNextEvent(theapp, &event);\n                XtDispatchEvent(&event);\n        }\n        XtDestroyWidget(box);\n        XtCloseDisplay(dis);\n}\n\n// SetItUp - should be called once only\nvoid SetItUp(XtAppContext *app, Widget *top)\n{\n        int junk = 0;\n        (*top)=XtAppInitialize (app, \"test\", NULL, 0, &junk, NULL,\n                NULL, NULL, 0);\n}\n\n// doit - some library function callable from the outside\nvoid doit()\n{\n        static XtAppContext app;\t// use these every time called\n        static Widget top;\n\n        static int setup = 0;\n\n        if (!setup)\n        {\n                SetItUp(&app, &top);\n                setup = 1;\n        }\n        bla(app, top);\n}\n\n// main - program which links to my library\nmain()\n{\n        for (int i=0;i<=20;i++)\n        {\n                doit();\n                printf(\"sleeping...\\n\");//widget still on screen at this point\n                sleep(5);\n        }\n}\n\n\nThe problem is that the widget does not go away until the new one is created.\n(It is still on the screen -- unusuable -- during the \"sleep\" in the main prog,\ndespite the XtDestroyWidget call).\n\nAnyone see something I'm missing?\n\nThanks very much.\n\n(Please respond via email)\n-- \n-------------------------------------------------------------------------------\nDavid Rex Wood -- davewood@cs.colorado.edu -- University of Colorado at Boulder\n-------------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1946, "properties": {"category": "sci.med", "text": "From: davel@davelpcSanDiego.NCR.com (Dave Lord)\nSubject: Re: REQUEST: Gyro (souvlaki) sauce\nReply-To: davel@davelpcSanDiego.NCR.com (Dave Lord)\nOrganization: NCR Engineering and Manufacturing, San Diego, CA\nLines: 13\n\nIn article <1r8pcn$rm1@terminator.rs.itd.umich.edu>, Donald Mackie\n<Donald_Mackie@med.umich.edu> writes:\n> In article <1993Apr22.205341.172965@locus.com> Michael Trofimoff,\n> tron@fafnir.la.locus.com writes:\n> >Would anyone out there in 'net-land' happen to have an\n> >authentic, sure-fire way of making this great sauce that\n> >is used to adorn Gyro's and Souvlaki?\n> \n> I'm not sure of the exact recipe, but I'm sure acidophilus is one of\n> the major ingredients.   :-)\n\nIt's plain yoghurt with grated cucumber and coriander (other spices are\nsometimes used). Some people use half yoghurt and half mayonaise.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1947, "properties": {"category": "rec.sport.baseball", "text": "From: acsddc@smucs1.umassd.edu\nSubject: Fenway Gif\nReply-To: acsddc@smucs1.umassd.edu\nOrganization: UMASS DARTMOUTH, NO. DARTMOUTH, MA.\nLines: 5\n\nI was wondering if anyone had any kind of Fenway Park gif.\nI would appreciate it if someone could send me one.\nThanks in advance.\n\n-Dan\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1948, "properties": {"category": "soc.religion.christian", "text": "From: aa888@freenet.carleton.ca (Mark Baker)\nSubject: Re: The arrogance of Christians\nReply-To: aa888@freenet.carleton.ca (Mark Baker)\nOrganization: The National Capital Freenet\nLines: 106\n\nTo what follows, our moderator has already answered the charge of \narrogance more ably that I could have done so, so I will confine\nmyself to answering the charge of illogic.\n \nIn a previous article, Eugene.Bigelow@ebay.sun.com (Geno) says:\n\n>>If I don't think my belief is right and everyone else's belief is wrong,\n>>then I don't have a belief. This is simply what belief means.\n>\n>Unfortunatly, this seems to be how Christians are taught to think when\n>it comes to their religion. \n\nThis is how everyone in the western intellectual tradition is, or was,\ntaught to think. It is the fundamental premis \"A is not not-A\". If a thing\nis true then its converse is necessarilly false. Without this basic \nasumption theology and science as we know them are alike impossible. We\nshould distinguish the strong and weak meanings of the word \"believe\",\nhowever. The weak sense means I am not sure. \"I believe Tom went to \nthe library.\" (but he could have gone to the track). The strong sense\nmeans I am so certain that I use it as a basis of thought. \"I believe \nthat nature operates according to certain fundamental laws.\" (despite \nthe fact that nature *appears* capricious and unpredictable). Christian\nbelief is of the strong kind. (Though Christians may well hold beliefs\nof the weak kind on any number of theological and ecclesiological \ntopics.)\n \n>Some take it to the extreme and say that\n>their religion is the ONLY one and if you don't accept their teachings\n>then you won't be \"saved\". \n\nNote that these are two separate ideas. Most hold the first view, but the \nmajority do not hold the second. Is is again a matter of pure logic that\nif Christanity is true, then Hinduism (for example) must necessarilly be\nfalse, insofar as it contradicts or is incompatible with, Christaianity. \n(And, as a matter of *logic*, vice versa.)\n \n>It takes quite a bit of arrogance to claim\n>to know what God thinks/wants. \n\nIt is arrogant to claim to know what *anyone* thinks or wants, unless \nthey have told you. Christians believe God has told us what he thinks\nand wants.\n\n>Especially when it's based upon your\n>interpretation of a book. \n\nMost Christians do not base their belief on the Bible, but on the living\ntradition of the Church established by Christ and guided constantly\nby the Holy Spirit. The Bible is simply the written core of that tradition.\n\n>The logic in the above statement is faulty\n>in that it assumes two people with differing beliefs can't both be\n>correct. \n\nIf depends what you mean by differing. If I believe Tom is six feet\ntall and you believe he weighs 200 pounds, our beliefs differ, but we \nmay both be right. If I believe Tom is six feet tall and you beleive\nthat he is four foot nine, one of us, at least, must be wrong.\n \n>It's all about perception. No two people are exactly alike.\n>No two people perceive everything in the same way. I believe that\n>there is one truth. Call it God's truth, a universal truth, or call it\n>what you will. I don't believe God presents this truth. I think it is\n>just there and it's up to you to look for and see it, through prayer,\n>meditation, inspir- ation, dreams or whatever. Just because people may\n>perceive this truth differently, it doesn't mean one is wrong and the\n>other is right. \n\nThus you believe that there is a single truth but that no human being \ncan find it. You assert that anyone who believe that we can find \nabsolute truth is mistaken. In short, you believe that anyone who\ndoes not share your belief on this point is wrong. QED.\n\n>As an example, take the question, \"Is the glass half\n>empty or half full\"? You can have two different answers which are\n>contradictory and yet both are correct. So, for your belief to be\n>true, does not require everyone else's belief to be wrong.\n\nHere I begin to suspect that your real difficulty is not with the\nknowability of truth, but simply with language. Saying that the glass \nis half empty is not a contradiction of the statement that it is half\nfull: it is the same fact expressed in different words. (The whole\npoint of this phrase is to illustrate the different ways the pessimist\nand the optimist express the *same* fact.)\n \nIt is, of course, quite true that different people may express the \nsame belief in different words. It is also true that they may fail\nto understand each other's words as expressions of the same belief\nand may argue bitterly and believe that they are miles apart. Great\nscisms have occurred in just this way, and much ecumenical work has\nbeen done simply in resolving differences in language which conceal\nagreement in belief. This does not mean, in any sense, that all beliefs\nare equally valid. Since some of the beliefs people hold contradict\nsome other beliefs that other people hold, after all obfuscations\nof language and culture in the expression of those beliefs have\nbeen stripped away, some of the beliefs that some people hold must,\n**necessarilly** be false, and it is neither arrogant nor illogical\nto say so. If I believe X and you believe Y we may both be correct, \nbut if Y is equivalent to not-X then one of us is wrong and as long\nas we hold our respective beliefs, we must each regard the other \nas in error.\n-- \n==============================================================================\nMark Baker                  | \"The task ... is not to cut down jungles, but \naa888@Freenet.carleton.ca   | to irrigate deserts.\" -- C. S. Lewis\n==============================================================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1949, "properties": {"category": "talk.politics.misc", "text": "From: riggs@descartes.etl.army.mil (Bill Riggs)\nSubject: Re: hard times investments was: (no subject given)\nOrganization: LNK Corporation, Riverdale, MD\nLines: 50\nNntp-Posting-Host: descartes.tec.army.mil\n\nIn article <1pkvcl$nu0@usenet.INS.CWRU.Edu> an030@cleveland.Freenet.Edu (Broward Horne) writes:\n>\n>In a previous article, riggs@descartes.etl.army.mil (Bill Riggs) says:\n>\n>>so much land, and in the long run, we have a zero sum game going. Someone,\n>>somewhere, is going to make a killing from nosediving real estate\n>>markets. The worst thing to do is panic. The best thing you can do is\n>>to ride out deflation to the end. It hurts, but you're better off \n>>than if you sell short and donate to someone else's inheritance.\n>\n>\n>      Sad.  Paradigm Shift is coming, chum.\n>     Ride the WAVE!\n\n\tI don't believe in the \"Wave Theory\".\n\n>\n>     \" There's only so much land \".   Oh, God, is this Mike Zimmer's\n>    replacement?!\n\n\tMy mother-in-law, who grew up in Germany, doesn't believe in \nmoney at all. She started out as a real estate developer, and now raises\nhorses. She keeps telling me that inflation is coming back, and to lock\nin my fixed rate mortgage as low as possible.\n\n>\n>     Here, let me spell it out for you.\n>\n>     Can you spell TWO TRILLION DOLLAR BANK BAILOUT?\n\n\tMaybe you'd like to invest in some foreign currency.\n\n\tWhich one would you guess to come out on top ?\n\n\t(Sigh - speculators never learn.)\n\n\n\nBill R.\n\n--\n\n\"The only proposals in the Senate that I         \"My opinions do not represent\nhave seen fit to mention are particularly        those of my employer or\npraiseworthy or particularly scandalous ones.    any government agency.\"\nIt seems to me that the historian's foremost     - Bill Riggs\nduty is to ensure that virtue is remembered,\nand to deter evil words and deeds with the\nfear of posterity's damnation.\"\n- Tacitus, _Annals_ III. 65\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1950, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: goyal@utdallas.edu (MOHIT K GOYAL)\nSubject: Re: IDE vs SCSI\nNntp-Posting-Host: csclass.utdallas.edu\nOrganization: Univ. of Texas at Dallas\nLines: 30\n\n>How do you do bus-mastering on the ISA bus?\n\nBy initiating a DMA xfer.  :)\n\nSeriously, busmastering adapter have their own DMA ability, they don't use\nthe motherboards on-board DMA(which is *MUCH* slower).\n\nISA has no bus arbitration, so if two busmastering cards in 1 ISA system\ntry to do DMA xfers on the same DMA channel the system will lock or \ncrash.(I forget)\n\nTheir are 8 DMA channels in an ISA system. 0-7. 0-3 are 8-bit & 4-7 are\n16-bit.\n\nThe system uses DMA 0, a SoundBlaster uses DMA 1.\n\nI could buy a busmastering XGA-2 video card & a busmastering SCSI HA.\n\nIn order for them to work properly, I would have to find out what DMA\nchannel the XGA-2 card uses and then simply configure the SCSI HA to\nuse a different DMA channel for its DMA xfers.\n\nI don't know if multiple DMA xfers can go on at the same time on ISA.\nI'm not sure if they can on EISA systems either.\n\nI do know that on EISA/MCA systems, you can allow BM cards to use the\nsame DMA channel.\n\nThanks.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1951, "properties": {"category": "misc.forsale", "text": "From: bigelos@hobo.ECE.ORST.EDU (Space Gigolo)\nSubject: Laser Printer Forsale: Repost\nArticle-I.D.: flop.1po9ovINNqe4\nDistribution: usa\nOrganization: ECE Dept.,OSU,Corvallis\nLines: 25\nNNTP-Posting-Host: hobo.ece.orst.edu\n\nThe following is posted for a friend.  You can send replies to this email\naddress or call him at 503-752-1499.  (Glen)\n\n\tI have a CITIZEN OVERTURE 110 Laser printer for sale.  It is in\nexcellent condition.  It has been used less than one year on this drum.\nI am asking $500, but all offers will be considered.  Below are some\nspecs on it.\n\nToner lifespan:\t\t2500 pages\nDrum lifespan:\t\t15,000 pages\nResolution:\t\t300 DPI\nMemory:\t\t\t512K\nEmulation:\t\tEpson FX286\n\t\t\tIBM ProPrinter\n\t\t\tDiablo 635\nPrinting Capacity:\tQuad-density graphics\nTray capacity:\t\t250 sheets\n\nReason for sale:  \tFinancial--I need to pay tuition.\n\nThanks,\n\n-Glen Anderson\n\nbigelos@hobo.ece.orst.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1952, "properties": {"category": "rec.sport.baseball", "text": "From: bbs-comarow@jwt.oau.org (Bob Comarow)\nSubject: Re: Jewish Baseball Players?\nReply-To: bbs-comarow@jwt.oau.org\nOrganization: The Matrix\nLines: 4\n\nDave Kingman is Jewish\n\nbob\ncomarow@eisner.decus.org\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1953, "properties": {"category": "rec.motorcycles", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Re: dogs\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 26\n\nIn article <C5pntM.8Co@cbnewsj.cb.att.com> car377@cbnewsj.cb.att.com (charles.a.rogers) writes:\n\n>This tactic depends for its effectiveness on the dog's conformance to\n>a \"psychological norm\" that may not actually apply to a particular dog.\n>I've tried it with some success before, but it won't work on a Charlie Manson\n>dog or one that's really, *really* stupid.  A large Irish Setter taught me\n>this in *my* yard (apparently HIS territory) one day.  I'm sure he was playing \n>a game with me.  The game was probably \"Kill the VERY ANGRY Neighbor\" Before \n>He Can Dispense the TERRIBLE PUNISHMENT.\n\nWhat, a dog weighs 150lb maybe, at max? You can't handle it?\n\nYou have, I presume, thumbs? Grapple with it and tear it's head\noff!\n\nSheesh, even a trained attack dog is no match for a human,\nwe have *all* the advantages.\n\nRegards, Charles\nDoD0.001\nRZ350\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1954, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: hawks vs leafs lastnight\nOrganization: University of Toronto Chemistry Department\nDistribution: na\nLines: 15\n\nIn article <93106.082502ACPS6992@RyeVm.Ryerson.Ca> Raj Ramnarace <ACPS6992@RyeVm.Ryerson.Ca> writes:\n>did anyone else see this game last night ? just like a playoff game!!\n>lots of hitting...but I was disappointed by the video goal judge...\n>on all replays, joe murphy's goal shouldn't have counted ! it didn't go in net\n>!! and according to the tsn broadcasters, the video goal judge said that he\n>saw the water bottle on top of the cage move so he assumed the puck went in!\n>this is terrible...hope crap like this doesn't occur in the playoffs!\n>the game would have ended in 2-2 tie !\n\nI thought the red light went on...thus, in the review, the presumption\nwould be to find conclusive evidence that the puck did not go in the\nnet...from the replays I say, even from the rear, the evidence wasn't\nconclusive that the puck was in or out...in my opinion...\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1955, "properties": {"category": "soc.religion.christian", "text": "From: mls@panix.com (Michael Siemon)\nSubject: Re: Homosexuality issues in Christianity\nOrganization: PANIX Public Access Unix, NYC\nLines: 25\n\nIn <May.7.01.08.16.1993.14381@athos.rutgers.edu> whitsebd@nextwork.rose-hulman.edu (Bryan Whitsell) writes:\n\n>Any one who thinks that Homosexuality and Christianity are compatible should check  \n>out:\n>\tRomans 1:27\n>\tI Corinthians 6:9\n>\tI Timothy 1:10\n>\tJude 1:7\n>\tII Peter 2:6-9\n>\tGen. 19\n>\tLev  18:22\n>(to name a few of the verses that pertain to homosexuality)\n\nHomosexual Christians have indeed \"checked out\" these verses.  Some of\nthem are used against us only through incredibly perverse interpretations.\nOthers simply do not address the issues.\n\nYou would seem to be more in need of a careful and Spirit-led course\nin exegesis than most of the gay Christians I know.  I suggest that\nyou stop \"proof-texting\" about things you know nothing about.\n-- \nMichael L. Siemon\t\tI say \"You are gods, sons of the\nmls@panix.com\t\t\tMost High, all of you; nevertheless\n    - or -\t\t\tyou shall die like men, and fall\nmls@ulysses.att..com\t\tlike any prince.\"   Psalm 82:6-7\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1956, "properties": {"category": "rec.autos", "text": "From: cs173sbw@sdcc5.ucsd.edu (cs173sbw)\nSubject: RE: How is Cizeta V16T doing?\nLines: 22\nNntp-Posting-Host: sdcc5.ucsd.edu\n\n\n\nIn article <crh.734864478@regent.e-technik.tu-muenchen.de> crh@regent.e-technik.tu-muenchen.dbp.de (Christian Huebner) writes:\n>I can remember reading a track competition in some car-magazine, which\n>featured the Testarossa, the Diablo and the V16T. The result was about\n>the same I would have expected: The Cizeta was not only the slowest of\n>the three,  but also dropped out halfway during it's test laps because \n>of smoking brakes. For a sportscar it showed ridiculous performance.\n>\nHm... I find this hard to believe.  V16T weights about the same as\nthe Red Head, but it has hell lot more horse power.  Perhaps it's\ndue to pre-production glitches?  Well, to me, it still got the most\nimposing styling among all the sports cars I have seen.\n\n>Bye...\n>\n>Chris  crh@regent.e-technik.tu-muenchen.de\n>\n>Ferrari F40 - Best sportscar ever built!\nPersonally, I don't like cars that rely on turbo power.  I guess everyone\nhas their favorite car.  \n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1957, "properties": {"category": "sci.electronics", "text": "From: prasad@vtaix.cc.vt.edu (Prasad Ramakrishna)\nSubject: Exploding TV!\nOrganization: Virginia Tech, Blacksburg, VA\nLines: 19\nDistribution: usa\nNNTP-Posting-Host: vtaix.cc.vt.edu\n\nI had a GE Emerson 13\" color TV for about 3 years and one fine day,\nwhile we were watching something (I doubt if the program was the cause),\nwe heard a mild explosion.   Our screen went blank but there was sound,\nso we thought, 'oh we have special effects on the program'.  But soon\nthe sound stopped and smoke started to appear at the back of the TV.\nThe brilliant EEs we are, we unplugged the TV and called customer service\nonly to be thrown around by please hold, I will transfer u to blah blah..\n  Finally we abandoned the idea of trying to fix the TV and got a new one\n(we wanted a bigger one too!).\n After all the story, what I wanted to know is: Is my problem an isolated\nincident or a common one? (I recall reading about Russian TVs exploding, but\nnot here, in the US). Why would the picture tube explode or even smoke?\n I still have the left over TV set, I might dig into it this summer. Any\nidea where I can get parts for these things? (probably will cost more than TV).\n\nW/my 0.02\nPrasad\nprasadr@vtvm1.cc.vt.edu\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1958, "properties": {"category": "talk.politics.guns", "text": "From: wwarf@silver.ucs.indiana.edu (Wayne J. Warf)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 46\n\nIn article <C5tEnu.112F@ns1.nodak.edu> green@plains.NoDak.edu (Bill Green) writes:\n>Just to shed some light on the fire, it was widely reported (AP, etc.) that\n>there WERE several witnesses to BD folks starting the fires.  It has also\n>been reported that the fires broke out in several places at once, which\n>rules out a Bradley knocking over a lamp, etc. as the cause.\n\nThe only folks claiming this are the ATF/FBI who have an interest in\nputting the blame on the BD's. Wake up.\n\n\n>What I would like to see is some serious discussion of this incident.  I\n>believe the moves made were right and proper, but I still have some problems\n>with some of the tactics.  After watching the ABC special on it tonight, as\n>well as CNN and Nightline, I question some of the ATF and FBI actions.\n\nRight and proper? How? It was FUBAR from day 1.\n\n>1) Could it have been possible to have taken Koresh outside the compound at\n>some time before the Feb. 28th raid?\n>\nFrom all independent sources. Yes. \n\n>2) Could a further wait have resulted in a different outcome.\n\nIt would have hurt nothing to wait and the result could hardly have been\nworse.\n\n>3) Were FBI actions (blaring loudspeakers, etc.) the \"right\" course of action?\n\nSure, it you want to someone you claim is a dangerous paranoid even\nmore paranoid.\n\n>And a few other questions.  Like I said, I believe the actions taken, in\n>general, were proper.  But I still have some reservations.\n>\n>One other point, I'm no fan of Janet Reno, but I do like the way she had the\n>\"balls\" to go ahead and take full responsibility.  Seems like the waffle boy\n>had problems figuring out just where he stood on the issue.\n\nAnd what makes you think that \"waffle boy\" didn't tell her to take the\nwrap. It was job preservation not \"balls\".\n-- \n +   Wayne J. Warf -- WWARF@ucs.indiana.edu -- I speak for myself only   +\n |*Clinton*Gore*CIA*FBI*DEA*Assassinate*Bomb*WoD*BoR*ATF*IRS*Resist*NSA* |\n |*Christian*God*Satan*Apocalypse*ZOG*Nazi*Socialist*Communist*Explosive*|\n +*fundamentalist*revolution*NSC*Federal Reserve*Constitution*gold*FEMA* +\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1959, "properties": {"category": "rec.autos", "text": "From: dduff@col.hp.com (Dave Duff)\nSubject: Re: Waxing a new car\nOrganization: HP Colorado Springs Division\nLines: 5\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\nI just had my 41 Chrysler painted. I was told to refrain from waxing it and\nto leave it out in the sun!! Supposedly this let's the volatiles escape from\nthe paint over a month or so (I can smell it 15 feet away on a hot day) and\nlets any slight irregularites in the surface flow out, as the paint remains\na little soft for a while.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.091+0000", "event": "documents", "entityId": 1960, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: The museum of 'BARBARISM'.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 215\n\nIn article <C5I7Ap.ELD@acsu.buffalo.edu> v999saum@ubvmsb.cc.buffalo.edu (Varnavas A. Lambrou) writes:\n\n>What about Cyprus?? The majority of the population is christian, but \n>your fellow Turkish friends DID and STILL DOING a 'good' job for you \n>by cleaning the area from christians.\n\nAll your article reflects is your abundant ignorance. The people of \nTurkiye know quite well that Greece and the Greek Cypriots will never \nabandon the idea of hellenizing Cyprus and will remain eternally \nhopeful of uniting it with Greece, someday, whatever the cost to the\nparties involved. The history speaks for itself. Greece was the sole \nperpetrator of invasion on that island when it sent its troops on July \n15, 1974 in an attempt to topple the legitimate government of Archibishop \nMakarios.\n\nFollowing the Greek Cypriot attempt to annex the island to Greece with \nthe aid of the Greek army, Turkiye intervened by using her legal right \ngiven by two international agreements. Turkiye did it for the frequently \nand conveniently forgotten people of the island, Turkish Cypriots. For \nthose Turkish Cypriots whose grandparents have been living on the island \nsince 1571. \n\nThe release of Nikos Sampson, a member of EOKA [National Organization\nof Cypriot Fighters] and a convicted terrorist, shows that the\n'enosis' mentality continues to survive in Greece. One should not\nforget that Sampson dedicated his life to annihilating the Turks\nin Cyprus, committed murder to achieve this goal, and tried to\ndestroy the island's independence by annexing it to Greece. Of\ncourse, the Greek governments will have to bear the consequences \nfor this irresponsible conduct.\n\n\n            THE MUSEUM OF BARBARISM\n\n2 Irfan Bey Street, Kumsal Area, Nicosia, Cyprus\n\nIt is the  house of Dr. Nihat  Ilhan, a major who  was serving at\nthe Cyprus  Turkish Army Contingent. During  the attacks launched\nagainst the Turks by the Greeks, on 20th December 1963, Dr. Nihat\nIlhan's  wife and  three  children were  ruthlessly and  brutally\nkilled in the  bathroom, where they had tried to  hide, by savage\nGreeks. Dr.  Nihat Ilhan happened to  be on duty that  night, the\n24th   December  1963.   Pictures  reflecting   Greek  atrocities\ncommitted during and after 1963 are exhibited in this house which\nhas been converted into a museum.\n\nAN EYE-WITNESS ACCOUNT  OF HOW A TURKISH FAMILY  WAS BUTCHERED BY\nGREEK TERRORISTS\n\nThe date  is the 24th of  December, 1963... The onslaught  of the\nGreeks against the Turks, which  started three days ago, has been\ngoing on  with all its  ferocity; and defenseless women,  old men\nand children are being brutally  killed by Greeks. And now Kumsal\nArea of Nicosia witnesses the  worst example of the Greeks savage\nbloodshed...\n\nThe wife  and the  three infant  children of  Dr. Nihat  Ilhan, a\nmajor on duty at the camp  of the Cyprus Turkish Army Contingent,\nare  mercilessly and  dastardly  shot dead  while  hiding in  the\nbathroom of their house, by  maddened Greeks who broke into their\nhome. A glaring example of Greek barbarism.\n\nLet us  now listen to the  relating of the said  incident told by\nMr. Hasan  Yusuf Gudum, an  eye witness, who himself  was wounded\nduring the same terrible event.\n\n\"On the night of the 24th  of December, 1963 my wife Feride Hasan\nand I were paying a visit to the family of Major Dr. Nihat Ilhan.\nOur neighbours  Mrs. Ayshe of  Mora, her daughter Ishin  and Mrs.\nAyshe's  sister Novber  were also  with us.  We were  all sitting\nhaving supper.  All of  a sudden bullets  from the  Pedieos River\ndirection started to riddle the  house, sounding like heavy rain.\nThinking  that   the  dining-room  where  we   were  sitting  was\ndangerous, we  ran to  the bathroom and  toilet which  we thought\nwould be  safer. Altogether we were  nine persons. We all  hid in\nthe bathroom  except my wife  who took  refuge in the  toilet. We\nwaited in fear. Mrs. Ilhan the wife of Major Doctor, was standing\nin the bath with her three children Murat, Kutsi and Hakan in her\narms. Suddenly with  a great noise we heard the  front door open.\nGreeks had  come in and were  combing, every corner of  the house\nwith  their machine  gun bullets.  During these  moments I  heard\nvoices saying, in  Greek, \"You want Taksim eh!\"  and then bullets\nstarted flying in the bathroom. Mrs. Ilhan and her three children\nfell into  the bath. They were  shot. At this moment  the Greeks,\nwho broke  into the bathroom, emptied  their guns on us  again. I\nheard one of the Major's children moan, then I fainted.\n\nWhen I came  to myself 2 or  3 hours later, I saw  Mrs. Ilhan and\nher three children lying dead in the  bath. I and the rest of the\nneighbours in the  bathroom were all seriously  wounded. But what\nhad happened to my wife? Then I remembered and immediately ran to\nthe  toilet, where,  in  the doorway,  I saw  her  body. She  was\nbrutally murdered.\n\nIn the  street admist the  sound of  shots I heard  voices crying\n\"Help, help. Is  there no one to save us?\"  I became terrified. I\nthought that  if the Greeks came  again and found that  I was not\ndead they would kill  me. So I ran to the  bedroom and hid myself\nunder the double-bed.\n\nAn our  passed by. In the  distance I could still  hear shots. My\nmouth was dry,  so I came out  from under the bed  and drank some\nwater. Then I put  some sweets in my pocket and  went back to the\nbathroom, which was exactly as I had left in an hour ago. There I\noffered sweets  to Mrs. Ayshe,  her daughter and Mrs.  Novber who\nwere all wounded.\n\nWe  waited in  the bathroom  until 5  o'clock in  the morning.  I\nthought morning would never come.  We were all wounded and needed\nto be taken  to hospital. Finally, as we could  walk, Mrs. Novber\nand I, went  out into the street hoping to  find help, and walked\nas far as Koshklu Chiftlik.\n\nThere, we met  some people who took us to  hospital where we were\noperated on. When  I regained my consciousness I  said that there\nwere more  wounded in the  house and  they went and  brought Mrs.\nAyshe and her daughter.\n\nAfter staying three  days in the hospital I was  sent by plane to\nAnkara  for  further treatment.  There  I  have had  four  months\ntreatment but still I cannot use  my arm. On my return to Cyprus,\nGreeks arrested me at the Airport.\n\nAll  I have  related to  you above  I told  the Greeks  during my\ndetention. They then released me.\"\n\nON FOOT INTO CYPRUS'S DEVASTATED TURKISH QUARTER\n\nWe went tonight into the sealed-off Turkish quarter of Nicosia in\nwhich 200  to 300 people have  been slaughtered in the  last five\ndays.\n\nWe  were the  first  Western  reporters there,  and  we saw  some\nterrible sights.\n\nIn the Kumsal quarter at No. 2, Irfan Bey Sokagi, we made our way\ninto  a house  whose floors  were  covered with  broken glass.  A\nchild's bicycle lay in a corner.\n\nIn the  bathroom, looking  like a group  of waxworks,  were three\nchildren piled on top of their murdered mother.\n\nIn a room next to it we glimpsed  the body of a woman shot in the\nhead.\n\nThis, we  were told, was the  home of a Turkish  Army major whose\nfamily had been killed by the mob in the first violence.\n\nToday was five days later, and still they lay there.\n\nRene MacCOLL and Daniel McGEACHIE, (From the \"DAILY EXPRESS\")\n\n\"...I saw in  a bathroom the bodies of a  mother and three infant\nchildren murdered because their father was a Turkish Officer...\"\n\nMax CLOS, LE FIGARO 25-26 January, 1964\n\n\n Peter Moorhead reporting from the village of Skyloura, Cyprus. \n Date : 1 January, 1964. \n\n IL GIARNO (Italy)\n \n THEY ARE TURK-HUNTING, THEY WANT TO EXTERMINATE THEM.\n\n Discussions start in London; in Cyprus terror continues. Right now we\n are witnessing the exodus of Turks from the villages. Thousands of people\n abandoning homes, land, herds; Greek Cypriot terrorism is relentless. This \n time, the rhetoric of the Hellenes and the bust of Plato do not suffice to \n cover up barbaric and ferocious behaviors.\n\n Article by Giorgo Bocca, Correspondent of Il Giorno\n Date: 14 January 1964\n\n DAILY HERALD (London)\n\n AN APPALLING SIGHT\n\nAnd when I came across the Turkish homes they were an appalling sight.\nApart from the walls, they just did not exist. I doubt if a napalm bomb\nattack could have created more devastation. I counted 40 blackened brick\nand concrete shells that had once been homes. Each house had been deliberately\nfired by petrol. Under red tile roofs which had caved in, I found a twisted\nmass of bed springs, children's conts and cribs, and ankle deep grey\nashes of what had once been chairs, tables and wardrobes.\n\nIn the neighbouring village of Ayios Vassilios, a mile away, I counted 16 \nwrecked and burned out homes. They were all Turkish Cypriot homes. From\nthis village more than 100 Turkish Cypriots had also vanished.In neither village\ndid I find a scrap of damage to any Greek Cypriot house.\n\n\n DAILY TELEGRAPH (London)\n \n GRAVES OF 12 SHOT TURKISH CYPRIOTS FOUND IN CYPRUS VILLAGE\n\n Silent crowds gathered tonight outside the Red Crescent hospital in the\n Turkish Sector of Nicosia, as the bodies of 9 Turkish Cypriots found\n crudely buried outside the village of Ayios Vassilios, 13 miles away, were\n brought to the hospital under the escort of the Parachute Regiment. Three \n more bodies, including one of a woman, were discovered nearby but could\n not be removed. Turkish Cypriots guarded by paratroops are still trying to \n locate the bodies of 20 more believed to have been buried on the same site.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1961, "properties": {"category": "misc.forsale", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: Realistic PRO-34 Hand-held Scanner\nOrganization: The Portal System (TM)\nLines: 11\n\nI'd offer $150 for your scanner, shipping at your expense, payment to\nbe sent by personal check within 24 hours after receipt of goods -- or if\nyou live nearby and can deliver, payment in cash with 24 hour advance notice\nso I can go to the bank.  If sent by mail, I reserve the right to return\nit at my expense if when I check it out I find it to be defective in some\nway.\n\nBTW, why would you sell such a fine scanner?  Did you replace it with\nsome other instrument or find it not to be satisfactory in some way?\n\nMark Thorson\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1962, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Re: proof of resurection\nOrganization: The Claremont Graduate School\nLines: 51\n\nIn article <Apr.23.02.56.33.1993.3165@geneva.rutgers.edu>, andrew@srsune.shlrc.mq.edu.au (Andrew McVeigh) writes:\n\n> The Bible's message is that we are to love all people, and\n> that all people are redeemable.  It preaches a message of\n> repentance, and of giving.  Unfortunately, all people have\n> deceitful hearts, and are capable of turning this message\n> around and contorting it in sometimes unbelievable ways.\n> This is also a fundamental Christian doctrine.\n\nAndrew,\n\n   How I wish this were true, and how I long for the day in which it will\nbe true.  But alas, it is not true of history.  The Bible does not have a \nmessage -- it has messages.  And some of those are messages of repentance and\ngiving, to turn the other cheek, and do unto the least of these.  But some\nof the messages are the complete opposite.  Like the isrealites order to \nwipe out other tribes including women and children down to cattle, and \npunished severely when they were less than complete about the job.  Like\njews who are said to have cried out in Matthew, \"His blood be upon our heads\nand our childrens heads\" A verse quoted in every pogrom from the crusades to\nthe holocaust.  Have these been misunderstood?  I think not.  They have only\nbeen understood too clearly.  It is essential that christians grasp firmly\nthe good the bible teaches, the meek carpenter from Nazareth is a potent \nsymbol for how we should be, his teachings we must take to heart, but we\ncannot ignore the other material in the bible which is not to our liking and\nsay those who live by that have misread it.  To say that is only to chose a\npoint of interpretation and declare it normative.  Such can be done with the\nsame legitmacy by anyone.  Instead we must let the text critique the text.\nUnderstanding that there is both good and bad in our sacred corpus, we test\nall things and hold fast to that which is good. \n> \n> \n> p.s. I believe that a line of questioning like you presented\n> is, strangely enough, compatible with becoming a Christian.\n> Certainly Christianity encourages one to question the behaviour\n> of the world, and especially Christians.  I praise God for\n> Jesus Christ, and the fact that we can doubt our beliefs\n> and still come back to God and be forgiven, time and time\n> again.\n> \n\nAt the risk of sounding heretical (well ok, more heretical) I don't think\nthat doubt is something which requires forgiveness, it is something which\nrequires introspection and reflection.  If that is a sin, then there can\nbe no salvation, for doubt is an inescapble part of being human.  Consider\nJob.  His friends had no doubt. Whereas Job had no doubt in himself but\ndoubted the wisdom and justice of God.  When God finally did appear he \nrebuked the friends and had job make sacrifices for them.  To be a Christian\nit to always have doubt, or not to have honesty.\n\nRandy \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1963, "properties": {"category": "talk.religion.misc", "text": "From: mike@inti.lbl.gov (Michael Helm)\nSubject: Re: Religion and history; The real discuss\nOrganization: N.I.C.E.\nLines: 38\nReply-To: mike@inti.lbl.gov (Michael Helm)\nNNTP-Posting-Host: 128.3.128.82\n\nMatthew Huntbach writes:\nsm[?]>a real Christian unless you're born again is a very fundamental biblical\nsm[?]>conversion and regeneration are 'probably' part of some small USA-based cult\n\n>the \"born-again\" tag often use it to mean very specifically\n>having undergone some sort of ecstatic experience (which can in\n>fact be very easily manufactured with a little psychological manipulation),\n>and are often insultingly dismissive of those whose\n>Christianity is a little more intellectual, is not the result\n\nSome of these \"cults\", which seems like a rather dismissive term\nto me, are pretty big here in the USA.  Most of them\nare quite respectable & neiborly & do not resemble Branch Davidians\nin the least; confusing them is a mistake.  What about \"live &\nlet live\", folks?  I'm sure we can uncover a few extremist loonies\nwho are Catholic -- the anti-abortion movement in the USA seems to have a\nfew hard cases in it, for example.\n\n>I've often heard such people use the line \"Catholics aren't\n>real Christians\". Indeed, anyone sending \"missionaries\" to\n>Ireland must certainly be taking this line, for otherwise why\n>would they not be content for Christianity to be maintained in\n>Ireland in its traditional Catholic form?\n\nI have to agree Matthew with this; I have certainly encountered a lot\nof anti-Catholic-religion propaganda & emotion (& some bigotry) from\nmembers of certain religious groups here.  They also practice their\nmissionary work with zeal among Catholics in the United States, but to\nsomeone who is or was raised Catholic such rhetoric is pretty\noff-putting.  It may work better in an environment where there's a lot\nof popular anti-clericalism.\n\nFollow-ups set elsewhere, this no longer seems very relevant to Celtic issues\nto me.\n-- \n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1964, "properties": {"category": "talk.politics.guns", "text": "From: rcanders@nyx.cs.du.edu (Mr. Nice Guy)\nSubject: Re: Blast them next time\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nDistribution: usa\nLines: 35\n\nIn article <1r19l9$7dv@usenet.INS.CWRU.Edu> oldham@ces.cwru.edu (Daniel Oldham) writes:\n>What happened in Waco is not the fault of the BATF. If they would of\n>had the proper equipment and personal then they could of captured the\n>compound on the initial assault and none of this would of happened.\n>\n>The BATF needs more people, better weapons and more armored\n>transports. When they meet hostile fire they should be able to use\n>more force instead of retreating to a stand off. If you are going to\n>do a job then do it right. The BATF is there to protect us and they\n>must have the proper equipment and people to do the job.\n>\n>With the WoD and the increased crime in the streets the BATF is needed\n>more now then ever. If they blast away a few good fokes then that is\n>the price we all have to pay for law and order in this country. Look\n>at all the good people that died in wars to protect this great country\n>of ours.\n>\n>With the arms build up in Waco they needed to hit that compound with\n>mega fire power. They could of gone in there blasting and killed a few\n>women and kids but it would of been better then letting them all burn\n>to death 51 days later.\n>\n\n\n\tI HOPE THAT YOU ARE IN THE WAY OF THE NOBLE FEDERAL ENFORCERS and\nare blown away accidently by the governments goons.\n\nYou would cheer the death to 25 childern?\n\nThis is the sort of person who served as a death camp guard.\n--\nRod Anderson  N0NZO            | The only acceptable substitute\nBoulder, CO                    | for brains is silence.\nrcanders@nyx.cs.du.edu         |       -Solomon Short-\nsatellite  N0NZO on ao-16      |\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1965, "properties": {"category": "rec.motorcycles", "text": "From: thompson@apple.com (Paul Thompson)\nSubject: Tickets - advice is worth what you paid\nOrganization: Apple Computer, Inc., Cupertino, California\nLines: 28\nDistribution: ca\n\nI can't think of another subject that generates as much contradictory\nadvice as traffic laws and their enforcement.  Everybody's got an\nopinion and is dead certain they are right.  Yet acurate information is\nextremely difficult to come by.  The DMV doesn't know.  Cops don't\nknow.  Your traffic school instructor doesn't know.  The vehicle code\nonly tells part of the story.  Judges choose to interpret the laws in a\nwide variety of ways.  And the public at large?  I seldom hear any\nadvice that doesn't disagree with something I've experienced.\n\nIf you don't believe me I suggest you get a copy of the vehicle code,\nstudy it, and then sit in on a day or two of court and see what really\nhappens.  Read \"Fight Your Ticket\" too, but don't miss the little\nsection at the end where it says your chances are lousy and you're\nbasically screwed.\n\nAs you may have guessed, I'm pretty down on the system here in\nCalifornia.  I've carefully prepared for court, bringing witnesses and\nrevealing serious holes in the officer's story, only to be slapped with\nthe maximum allowable fine (plus assessments of over 100%) - the\nmessage clear that the judge does not appreciate John Q Public trying\nhis own cases.\n\nSo here's my advice when you find yourself with a ticket:  Take traffic\nschool if you can.  If it's a serious matter get a lawyer.  A lawyer\ncan present the exact same case as you, the difference is the\nsentence.\n-- \nPaul Thompson    Apple Computer    \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1966, "properties": {"category": "comp.sys.mac.hardware", "text": "From: betts@netcom.com (Jonathan Betts)\nSubject: Ghost on Apple 12\" Color -> user=insane!!\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 16\n\nDear Netters,\n\nMy sister has an Apple 12\" Color Display hooked up to an LC.\n\nProblem:  There is an annoying, horizontal, ghost-like stripe that \nprecesses vertically about once per second.  It is about 1 cm high.\nShe is in grave danger of going insane because of it.\n\nAny ideas of what it might be and how I might cure it for her?\n\n-Joe Betts\nbetts@netcom.com\n\nPS: if I pick up the display (I thought it might be RFI from the LC) it \nseems to get worse!\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1967, "properties": {"category": "rec.autos", "text": "From: rjwade@rainbow.ecn.purdue.edu (Robert J. Wade)\nSubject: Re: Saturn's Pricing Policy\nOrganization: Purdue University Engineering Computer Network\nLines: 22\n\nIn article <1qn19m$c9s@vela.acs.oakland.edu> mje@pookie.pass.wayne.edu writes:\n>I just ordered a Saturn SL1 after considering a few imports. Frankly, the Saturn\n>\nstuff deleted...\n\n>Saturn also has a good extended warranty program; $675 for 6 year/60K miles, \n>fully refunded if you don't use it. That works out to an actual cost of $170 or\n>so, based on the 6 year treasury rates. Using savings account rates it's more\n>like $120. In the first three years it also buys you free rental during any\n>warranty work, without counting against the refund.\n>--mike\n>\nin general extended warranties are a ripoff.  this 6yr/60k is really only\n3yr/24k because you get the 3yr/36k one *free* with the car.  also, is there\nperhaps a deductible you pay each and every time you use the warranty?\nalso, are certain items excluded from coverage on the extended warranty?\nand if you use it at year 4 for some 60 buck job and pay a 50 deduct and then\nyou have used it so no refund ever!\nagain, extended warranties are ripoff, high profit items for the dealer.\n>\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1968, "properties": {"category": "alt.atheism", "text": "From: jbrown@batman.bmd.trw.com\nSubject: Re: Death Penalty / Gulf War\nLines: 128\n\nIn article <930414.121019.7E4.rusnews.w165w@mantis.co.uk>, mathew <mathew@mantis.co.uk> writes:\n> rush@leland.Stanford.EDU (Voelkerding) writes:\n>>In article <1993Apr12.143834.26803@seachg.com> chrisb@seachg.com (Chris\n>>Blask) writes:\n>>>Add to this the outrageous cost of putting someone to death (special cell\n>>>block, years of court costs, extra guards...) and the benefits of the death\n>>>penalty entirely disappear.\n>> \n>> That's because of your earlier claim that the one innocent death\n>> overrides the benefit of all the others.  Obviously it's tragic,  but\n>> it is no argument for doing away with the death penalty.  If we went\n>> to war and worried about accidentally killing civilians all of the time\n>> (because our determination of who the enemy really is is imperfect), then\n>> there is no way to win the war.\n> \n> Yes.  Fortunately we have right-thinking folks like your good self in power,\n> and it was therefore deemed acceptable to slaughter tens or even hundreds of\n> thousands of Iraqis in order to liberate oil^H^H^HKuwait.  We won the war,\n> hurrah hurrah!\n\nThe number of civilian Iraqi deaths were way over-exaggerated and \nexploited for anti-war emotionalism by the liberal news media.  The\nfacts are that less Iraqis died in the Gulf War than did civilians \nin any other war of comparable size this century!  This was due mostly\nto the short duration coupled with precise surgical bombing techniques\nwhich were technically possible only recently.\n\nThe idea that \"hundreds of thousands\" of Iraqi citizens died is\nludicrous.  Not even \"hundreds of thousands\" of Iraqi soldiers died,\nand they were the ones being targeted!  Or do you think that the US\nand its allies were specifically out to kill and maim Iraqi civilians?\nEither the smart bombs didn't hit their targets (and we know they did),\nor they were targeting civilian targets (!) which is hardly condusive to\ndestroying Iraq's military potential.  The military mission planners are\nnot fools, they know they have to hit *military* targets to win a war.\nHitting civilian targets does nothing but unite the people against you,\nnot a laudable goal if one wants the people to rise up against their\ntyrant-dictator. \n> \n> OK, so some innocent people died.  Yes, maybe the unarmed civilians fleeing\n> along that road didn't need to be bombed to bits.  Perhaps that kid with half\n> his face burned off and the little girl with the mangled legs weren't\n> entirely guilty.  But it's worth the death of a few innocents to save the\n> oil^H^H^Hlives of the Kuwaiti people, isn't it?  After all, the Iraqis may\n> not have had a chance to vote for Saddam, but they showed their acceptance of\n> his regime by not assassinating him, right?  All that surrendering and\n> fleeing along open roads was just a devious ploy.  We were entirely within\n> our rights to bomb 'em just in case, without finding out if they were\n> soldiers.\n\nHow about all the innocent people who died in blanket-bombing in WW2?\nI don't hear you bemoaning them!  War is never an exact science, but\nwith smart bombs, it's becoming more exact with a smaller percentage\nof civilian casualties.  Sometimes mistakes are made; targets are\nmisidentified; innocents die.  That's war the way it really is.\nBut the alternative, to allow tyrannical dictators to treat the earth\nlike it's one big rummage sale, grabbing everything they can get is\nworse.  Like Patrick Henry said some 217 years ago, \"I know not what\ncourse others may take -- but as for me, give me liberty, or give me\ndeath!\"  War is always the price one must be willing to pay if one\nwishes to stay free.   \n\n> \n>> The death penalty was conceived as a deterrent to crime,  but the legal\n>> shenanigans that have been added (automatic appeals, lengthy court\n>> battles, etc.) have relegated that purpose to a very small part of what\n>> it should be.  Hence the question is,  do we instate the death penalty as\n>> it was meant to be, and see if that deters crime, or do we get rid of\n>> it entirely?\n> \n> Yes, let's reinstate the death penalty the way it ought to be.  All that shit\n> about fair trials and a court of appeals just gets in the way of justice. \n> Let's give the police the absolute right to gun down the guilty, and save\n> ourselves the expense of all those lawyers.\n> \n> Think of the knock-on benefits, too.  LA would never have had to spend so\n> much money cleaning up after riots and holding showcase trials if the cops\n> had been allowed to do their job properly.  A quick bullet through the head\n> of Rodney King and another for the cameraman, and everyone would have been\n> saved a great deal of unnecessary paperwork and expense.\n> \n> After all, if the police decide a man's guilty, that ought to be enough.  The\n> fact that the death penalty has been shown not to have any deterrent effect\n> over imprisonment, well, that's entirely irrelevant.\n> \n> \n> mathew\n> -- \n\nMathew, your sarcasm is noted but you are completely off-base here.\nYou come off sounding like a complete peace-nik idiot, although I\nfeel sure that was not your intent.\n\nSo the Iraqi war was wrong, eh?  I'm sure that appeasement would have\nworked better than war, just like it did in WW2, eh?  I guess we\nshouldn't have fought WW2 either -- just think of all those innocent\nGerman civilians killed in Dresden and Hamburg.  How about all the poor \nFrench who died in the crossfire because we invaded the continent?  We \nshould have just let Hitler take over Europe, and you'd be speaking\nGerman instead of English right now.\n\nTyrants like Hussein *have* to be stopped.  His kind don't understand\ndiplomacy; they only understand the point of a gun.  My only regret is\nthat Bush wimped out and didn't have the military roll into Baghdad, so\nnow Hussein is still in power and the Iraqi people's sacrifice (not to\nmention the 357 Americans who died) was for naught.  Liberating Kuwait \nwas a good thing, but wiping Hussein off the map would've been better!\n\nAnd as for poor, poor Rodney King!  Did you ever stop and think *why*\nthe jury in the first trial brought back a verdict of \"not guilty\"?\nThose who have been foaming at the mouth for the blood of those\npolicemen certainly have looked no further than the video tape.\nBut the jury looked at *all* the evidence, evidence which you and I\nhave not seen.  When one makes a judgment without the benefit of a\ntrial where evidence can be presented on both sides, one has simply\nlowered himself to the level of vigilante justice, a state-of-mind\nwhich your sarcasm above seemingly spoke against, but instead tends\nto support in the case against the policemen.  \n\nLaw in this country is intended to protect the rights of the accused,\nwhether they be criminals or cops.  One is not found guilty if there is\na reasonable doubt of one's guilt, and only the jury is in a position\nto assess the evidence and render a verdict.  Anyone else is simply\nsuccumbing to verbal vigilantism.\n       \nRegards,\n\nJim B.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1969, "properties": {"category": "alt.atheism", "text": "From: perry@dsinc.com (Jim Perry)\nSubject: Re: [soc.motss, et al.] \"Princeton axes matching funds for Boy Scouts\"\nArticle-I.D.: dsi.1pq6skINNhi4\nDistribution: usa\nOrganization: Decision Support Inc.\nLines: 28\nNNTP-Posting-Host: dsi.dsinc.com\n\nIn article <1993Apr3.221101.25314@midway.uchicago.edu> shou@midway.uchicago.edu writes:\n>In article <1pi0dhINN8ub@dsi.dsinc.com> perry@dsinc.com (Jim Perry) writes:\n>>Bigots never concede that their bigotry is irrational; it\n>>is other people who determine that by examining their arguments.\n>[...]\n>No!  I  expected it! You've set yourself up a wonderful little\n>world where a bigot is whomever you say it is.  This is very \n>comfortable for you--imagine, never having to entertain an\n>argument against your belief system.  Simply accuse the person\n>making of being a bigot.  \n\nWell, this particular thread of vituperation slopped its venom over\ninto alt.atheism, where we spend most of our time entertaining\narguments against our belief system, without resorting to accusing\nothers of bigotry.  It's somewhat ironic that our exposure to bigotry\nhappens in this instance to have originated in rec.scouting, since I\nalways understood scouting to teach tolerance and diversity.  I\nunderstand bigotry to be irrational prejudice against other people who\nhappen to be of a different race, religion, ethnic background, sex, or\nother inconsequential characteristics.  All the evidence I've seen\nindicates that sexual orientation and lack of belief in gods are\nexactly such inconsequential characteristics.  Thus, pending further\nevidence, I conclude that those who show prejudice against such people\nare bigots, and organizations that exclude such people are\ndiscriminatory.\n-- \nJim Perry   perry@dsinc.com   Decision Support, Inc., Matthews NC\nThese are my opinions.  For a nominal fee, they can be yours.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1970, "properties": {"category": "comp.graphics", "text": "From: oberto@genes.icgeb.trieste.it (Jacques Oberto)\nSubject: Re: HELP!!! GRASP\nOrganization: ICGEB\nLines: 33\n\nCBW790S@vma.smsu.edu.Ext (Corey Webb) writes:\n\n>In article <1993Apr19.160944.20236W@baron.edb.tih.no>\n>havardn@edb.tih.no (Haavard Nesse,o92a) writes:\n>>\n>>Could anyone tell me if it's possible to save each frame\n>>of a .gl (grasp) animation to .gif, .jpg, .iff or any other\n>>picture formats.\n>>\n> \n>     If you have the GRASP animation system, then yes, it's quite easy.\n>You simply use GLIB to extract the image (each \"frame\" in a .GL is\n>actually a complete .PCX or .CLP file), then use one of MANY available\n>utilities to convert it.  If you don't have the GRASP package, I'm afraid\n>I can't help you.  Sorry.\n>     By the way, before you ask, GRASP (GRaphics Animation System for\n>Professionals) is a commercial product that sells for just over US$300\n>from most mail-order companies I've seen.  And no, I don't have it.  :)\n> \n> \n>                                               Corey Webb\n> \n\nThere are several public domain utilities available at your usual\narchive site that allow 'extraction' of single frames from a .gl\nfile, check in the 'graphics' directories under *grasp.  The problem \nis that the .clp files you generate cannot be decoded by any of \nthe many pd format converters I have used. Any hint welcome!\nLet me know if you have problems locating the utilities.\nHope it helps.\n\n-- \nJacques Oberto  <oberto@genes.icgeb.trieste.it>\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1971, "properties": {"category": "rec.motorcycles", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Re: insect impacts\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 36\n\nIn article <2385@emoryu1.cc.emory.edu> labrg@emory.edu (Ryan Montieth Gill) writes:\n>\n>\tFor those who have had problems with small birds what about the\n>\tlarge raptor types when they are swooping across the road after\n>\tsmallish prey?? I had a hawk, Falcon what ever come within 5\n>\tfeet of me, lucky for him (or me for that matter) he noticed me\n>\tand my, and pulled up on his/her trajectory at the last moment.\n>\tScared the shit outa me...nothing like a red tailed hawk in the\n>\tface, Talons and all....I wonder if riding a Nighthawk has\n>\tanything to do with it....hmmmm?\n>\n>\t\t\tRyan\n>\t\t\t0780\n\nI got a male Mallard duck in the chest once.\n\nIt was like being kicked by my karate instructor.\n\nNo accident, but my eyes were tearing so hard, and I was wheezing\nso loudly, that it's quite remarkable that I was able to come\nto a stop with the rubber side up.\n\nThe duck, BTW, lived, and seemed quite healthy, though we both\nsat by the roadside and shook our heads for a few minutes.\n\nThe bruise went from my right collar bone all the way down to\nmy belly button.\n\nRegards, Charles\nDoD0.001\nRZ350\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1972, "properties": {"category": "sci.crypt", "text": "From: Marc VanHeyningen <mvanheyn@cs.indiana.edu>\nSubject: Re: More technical details\nOrganization: Computer Science Dept, Indiana University\nLines: 43\n\n>\tencrypted under K, then K will be encrypted under the unit key UK, \n>\tand the serial number of the unit added to produce a three part \n>\tmessage which will then be encrypted under the system key SK \n>\tproducing\n>\n>\t     E{ E[M; K], E[K; UK], serial number;  SK}\n>\n>My understanding is that E[M; K] is not encrypted under SK (called the\n>\"family key\") and that the decrypt key corresponding to SK is held by\n>law enforcement.  Does anyone have first hand knowledge on this?  I\n>will also check it out, but this is 7am Sunday so I did not want to wait.\n\nOk, so there are in fact two distinct components transmitted by the\nchip; the real message encrypted with the \"conventional\" key, and the\nserial number and encrypted \"conventional\" key encrypted with the\n(IMHO kind of bogus, as the whole concept of \"one key that millions of\npeople use which can't be changed\" doesn't seem reasonable) \"family\nkey\".\n\nSuppose I analyze the output of this chip and I'm able to determine\nwhich bits are the encrypted packet which contains the serial number\nand session key.  Suppose I also design a simple algorithm based on\nthis information which takes the data containing the encrypted session\nkey and twiddles a bit (or several) before it's sent down the line.\n\nMind you, I'm sure the NSA thought of this along with a dozen other\nattacks I can't imagine, and the system is probably somehow designed\nso that manipulation of this information will cause a compliant\nreceiving chip to somehow fail to decrypt successfully.  But how?\nWhat if the two parties agree in advance on some kind of consistent\nbit-twiddling scheme, so the decryption chip sees the restored\n\"proper\" bitstream but an eavesdropper gets a E[K; UK] packet that's\nwrong?\n\nI suppose this could be easily defeated if the chip \"sends\" that\ninformation out many times in slightly different ways, making it\neffectively impossible to be certain you know all the information\nbeing sent.\n--\nMarc VanHeyningen   mvanheyn@cs.indiana.edu   MIME & RIPEM accepted\nIf your theory predicts different outcomes depending on whether you use\ndiscrete mathematics or continuous mathematics, then you've got the wrong\ntheory.\t\t- Bruce MacLennan\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1973, "properties": {"category": "rec.autos", "text": "From: andyh@chaos.cs.brandeis.edu (Andrew J. Huang)\nSubject: Re: Changing oil by self.\nOrganization: Brandeis University\nLines: 16\n\nIn article <1993Apr15.020356.28944@magnus.acs.ohio-state.edu> sorlin@magnus.acs.ohio-state.edu (Steven J Orlin) writes:\n>I take the electrodes of the Amp/Ohm/Volt meter whatever and connect one\n>to each earlobe.  Then, symmetrically insert my fingers in each of the\n>spark plug boots. No cheating guys!  both hands must be used!\n\nI have just a couple of questions about this technique.\n\nFirst, what firing order should I use?  Do I start with my pointer\nfinger or my pinky?  Left hand or right?\n\nAnd secondly, I have a 12cyl and there are two cylinders unaccounted\nfor.  Any suggestions?\n\n/andy\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1974, "properties": {"category": "rec.sport.hockey", "text": "Subject: Re: Smiths birthday goal was LEAFS GO ALL THE WAY !!!\nFrom: caldwell8102@mtroyal.ab.ca\nOrganization: Mount Royal College, Calgary, Alberta\nLines: 28\n\nIn article <C4wty9.40u@mcs.anl.gov>, mwm@aps.anl.gov (Michael W. McDowell) writes:\n> In article 5KL@undergrad.math.uwaterloo.ca, kwk2chow@descartes.uwaterloo.ca (KEVIN C.) writes:\n>> (Thanks for the goals by Steve Smith) \n> I don't see why more people don't blame grant fuhr for the goal that smith \n> put in his own net, it's common to play the puck back to your own goalie when\n> deep in your own end and under little or no pressure from the offensive team.\n> If fuhr had been in position the puck would have never crossed the line.\n\nFrom this account, it doesn't sound like you even saw the goal, Mike. Smith\ncame out from behind his own net and fired a breakout pass that hit Fuhr in the\nback of the leg. Fuhr was backing up at the time and never saw what\nhappened. The puck went straight off Fuhr's leg and into the net. Fuhr never\nhad a chance. There was no play back to the goaltender, in fact Perry Berezan\nof Calgary had just dumped it in and Smith was retrieving it. \n\nIt was unfortunate that it happened; Smith is a nice guy and was only a rookie\nat the time, and on his birthday too. But all the blame lies with him. Starting\nin pee-wee coaches tell players never to make a cross-ice pass in front of \ntheir own net. Too much chance of having it intercepted, or hitting the \ngoaltender, or whatever.\n\nAnd to the people who say that Smith cost the Oilers the series, I can only\nsay that he certainly didn't cause the team to lose the other three games.\nThere was no reason for a powerhouse team like Edmonton to be tied late\nin the third period of the 7th game of the second round. Everybody on the team\nhas to take responsibility for them even being in that situation.\n\n\t\t\t\t\t\t\t\tAlan\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1975, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Solar Sail Data\nOrganization: U of Toronto Zoology\nLines: 10\n\nIn article <1qk4qf$mf8@male.EBay.Sun.COM> almo@packmind.EBay.Sun.COM writes:\n>Hey!? What happened to the solar sail race that was supposed to be\n>for Columbus+500?\n\nThere was a recession, and none of the potential entrants could raise any\nmoney.  The race organizers were actually supposed to be handling part of\nthe fundraising, but the less said about that the better.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1976, "properties": {"category": "rec.sport.hockey", "text": "From: andrew@idacom.hp.com (Andrew Scott)\nSubject: USENET Playoff Pool (IMPORTANT)\nOrganization: IDACOM, A division of Hewlett-Packard\nLines: 15\n\nI got back from my trip to discover that my email spool file got blown\naway.  I am missing all the playoff pool entries sent between April 5\nand April 17.  It looks like about 200 entries got lost.  *Sigh*.\n\nTherefore, I would like to ask each person that sent me a team to resend\nit ASAP.  I am relying on your honesty to not make changes after the\ndeadline today.\n\nThanks in advance, and I apologize for the problem.\n\n-- \nAndrew Scott                    | andrew@idacom.hp.com\nHP IDACOM Telecom Operation     | (403) 462-0666 ext. 253\n\nDuring the Roman Era, 28 was considered old...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1977, "properties": {"category": "soc.religion.christian", "text": "From: salaris@niblick.ecn.purdue.edu (Rrrrrrrrrrrrrrrabbits)\nSubject: Satan and MTV\nOrganization: Purdue University Engineering Computer Network\nLines: 25\n\nSomewhere, someone told me that Satan was the angel in charge of\nmusic in heaven, and on top of that, he was the most beautiful\nof the angels.  Isn't it funny that these days how MTV has become\nthe \"bible\" of music and beauty these days.  MTV controls what bands\nare popular, no matter how bad they are.  In fact, it is better to\nbe politically correct - like U2, Madonna - than to have any\nmusical talent.  Then of course, you have this television station\nthat tells us all how to dress.  Think about it, who started the\nretro-fashion craze??  MTV and Madonna.  Gag.\n\nAnyway, just food for thought.  It is really my own wierd theory.\n\nIf Revelation was to come true today, I think MTV would the \"ever\nchanging waters\" (music and fashion world) that the beast would\narise from, and Madonna will be the whore of Babylon, riding the\nbeast and drinking the blood of the martyrs.\n\nHmmmm....great idea for a book/movie.....\n\n\n--\nSteven C. Salaris                We're...a lot more dangerous than 2 Live Crew\nsalaris@carcs1.wustl.edu         and their stupid use of foul language because\n\t\t\t\t we have ideas.  We have a philosophy.\n\t\t\t\t\t      Geoff Tate -- Queensryche\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1978, "properties": {"category": "rec.sport.hockey", "text": "From: farenebt@craft.camp.clarkson.edu (Droopy)\nSubject: AHL Season in review (off ice stuff)\nOrganization: Clarkson University\nLines: 114\nNntp-Posting-Host: craft.clarkson.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nHere is a review of some of the off-ice things that have\naffected the AHL this year.\n\n\nST JOHN'S MAPLE LEAFS PROBLEMS\nThe St John's Maple Leafs sophomore season has been plagued by\nproblems. On-ice, the Leafs won the Atlantic Division title but\noff ice was less happy. A strike by public workers has forced the\nleafs out of the Newfoundland city for much of the last half of\nthe seaosn (since mid-Jan). They have played \"home\" games in places\nlike Montreal, Cornwall and Charlottetown. Their playoff \"home\"\ngames will be played in the Metro Center in Halifax, NS. One\ndemostration got violent. Workers attacked a Leafs' bus and\nrocked it and broke windows in the St John's Memorial Stadium.\nDespite the problems, Toronto officials insist that the Leafs\nwill return to St John's once the strike ends.\n===================================================\nSENATORS SOLD\nThe New Haven Senators have been sold by Peter Shipman to\nthe Ottawa Senators NHL organization. They are the only Canadian\nNHL team with an American AHL affiliate, and have made it clear\nthey intend to move the team to somewhere in the Canadian Atlantic\nProvinces. This sale and move has yet to be approved by the AHL\nhead office, but is expected to pass easily at the general meeting\nin May. The quote in the story from Jack Butterfield made it \nclear the league was more interested in the stability of the \nAHL franchise accompanied by NHL ownership, rather than maintaining\nthe 56-year history of the AHL in New Haven. \n\nThe Senators are currently in serious negotiations with Charlottetown\nNew Brunswick and are expected to move there.\n==================================================\nDALLAS HELPS HAWKS STAY IN MONCTON\nAfter announcing that they would pull their affiliation out\nof Moncton, the Winnipeg Jets changed their mind. \n\nThe Jets announced the move when they said that they would be slashing\ntheir minor league roster from 20-something to around a dozen; and they\nwanted to share with an existing AHL or IHL franchise.\n\nEnter the Dallas Lone Stars. Dallas agreed to supply the remaining\n6 or 8 players to the Moncton franchise. Thus keeping the Hawks\nin the New Brunswick city.\n\nThe deal is for one year and will be extended to three years if\nthe season ticket base increases to over 3000. The Hawks only sold\n1400 for this year.\n============================================================\nSAINT JOHN FLAMES OFFICIAL\nThe Calgary Flames have officially signed a deal with the city of\nSaint John, NB. The Saint John Blue Flames will play in the 6200\nExhibition Center. The Flames still have to apply for an expansion\nfrnachise from the AHL but are expected to have no trouble.\n=========================================================\nCAPS FOLLOW JACKS TO MAINE\nDespite rumors to the contrary, the Capitals will follow the Baltimore\nSkipjacks to Maine. The Caps' current farm team, the Baltimore Skipjacks,\nannounced that they would move to Maine and become the Portland Pirates.\nThere was much doubt as to if the Caps would follow but they announced\na limited deal with Portland. They would supply a dozen or so players\nincluding 2 goalies. They become the third team to announce a limited\nfarm team along with Moncton and the Capital District Islanders.\n======================================================\nAHL GAME OF THE WEEK\nIn early January, the AHL started a game of the week. The game, produced\nby, I believe, Pyman Productions, was televised across the Canadian\nMaritimes and northeastern US. The first few weeks saw two games of\nthe week, one in Canada and another in the US but since then, there\nhas been only one. Sunday afternoon and night games were covered and\nshown on Sportschannel NY and NE in the US and, I believe, Atlantic\nSports Network in Canada (but I'm not sure about that). I am not\nsure if playoff games will be covered.\n=====================================================\nUTICA GONE? SYRACUSE ADDED?\nThere were heavy rumors that the Utica Devils will not be around next\nseason. There were rumors that they might be headed to a midwestern\ncity and that the city of Syracuse is trying to lure them.\n=====================================================\nWHAT THE AHL MIGHT LOOK LIKE NEXT YEAR\n\nONE OPTION\t\t\t\tANOTHER OPTION\n\t\t\t\nNorthern Division\t\t\tSouthern Division\nADIRONDACK RED WINGS\t\t\tADIRONDACK\nSPRINGFIELD INDIANS\t\t\tSPRINGFIELD\nPROVIDENCE BRUINS\t\t\tPROVIDENCE\nCD ISLANDERS\t\t\t\tCDI\nPORTLAND PIRATES\t\t\tHERSHEY\n\t\t\t\t\tBINGHAMTON\nSouthern Division\t\t\tROCHESTER\nHERSHEY BEARS\t\t\t\tHAMILTON\nBINGHAMTON RANGERS\t\t\tUTICA\nROCHESTER AMERICANS\nHAMILTON CANUCKS\t\t\tAtlantic Division\nUTICA (?) DEVILS\t\t\tPORTLAND \n\t\t\t\t\tST JOHN'S\nAtlantic Division\t\t\tSAINT JOHN\nST JOHN'S MAPLE LEAFS\t\t\tMONCTON\nMONCTON HAWKS\t\t\t\tHALIFAX\nHALIFAX CITADELS\t\t\tFREDERICTON\nCAPE BRETON OILERS\t\t\tCAPE BRETON\nFREDERICTON CANADIENS\t\t\tCHARLOTTETOWN\nSAINT JOHN BLUE FLAMES\nCHARLOTTETOWN SENATORS (move is unofficial as yet)\n\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n    + Bri Farenell\t\t\tfarenebt@craft.camp.clarkson.edu +\n    + AHL and ECAC contact for rec.sport.hockey\t\tGo USA Hockey!\t +\t\n    + Adirondack Red Wings, Calder Cup Champs: '81  '86  '89  '92\t +\n    + Clarkson Hockey, ECAC Tournament Champ: '66  '91  '93\t\t +\n    + Glens Falls High School, Division II NY State Champs: '90  '91 \t +\n    + Join the AHL mailing list: ahl-news-request@andrew.cmu.edu    \t +\n    + CONGRATS TO CLARKSON GOLDEN KNIGHTS HOCKEY: 1993 ECAC CHAMPIONS!!! +\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1979, "properties": {"category": "comp.sys.mac.hardware", "text": "From: especkma@reed.edu (Erik. A Speckman)\nSubject: Re: Educational Pricing\nArticle-I.D.: reed.1993Apr15.234121.6655\nOrganization: Reed College, Portland, Oregon\nLines: 36\n\nIn article <1993Apr15.134938.1@jaguar.csc.wsu.edu> f0975893@jaguar.csc.wsu.edu writes:\n>In article <C5Iz7n.Kyv@cs.dal.ca>, hayes@ug.cs.dal.ca (Kevin B. Hayes) writes:\n>>>you can find retail that is within the price of a keyboard of educational\n>>>prices. \n>\n>I would be very wary of retail outlets selling as cheap as educational prices!\n>I went for a retailer, actually mail order (CDA computers), because its price\n>was better thant the campus computer store. I found out why later on when I\n>tried to get a repair done at an Apple registered repair center - the CPU was a\n>resale. The serial number had been removed and replaced with a non-standard\n>number (probably from CDA computers). Consequently, the Apple repair man could\n>not do ANY warrenty repairs. So I ended up with just a 90day warrenty from CDA\n>over the Apple 12month warrenty. Boy, was I pi**ed! Moral of the story, CAVEAT\n>EMPTOR.\n \nApple does not authorise sales through Mail Order.  As a result mail order\ncompanies have to obtain their machines by the grey market.\n\nThis market is supplied with machines from authorised resellers who have\nmore machines than they can sell.  They come into this state of affairs\nby overordering either accidentally or deliberatly to get a better\nwholsale price from Apple.  In either case they often obscure the serial\nnunber to protect their identity.  As a result the warranty is void.\n\nYou may save on sales tax but you have to pay for shipping.\n\nI should also point out that mail order companies cannot get lower prices\nthatn the high volume authorised dealers unless they buy below dealer\ncost.  As a result the only way they can sell cheaper is by cutting costs\nand trimming margins.  Unfortunatly they dont seem to be doing too well. \nThe lowest prices I have been quoted mailorder do not beat the lowest\nprices available from authorised local dealers.\n\nThey are even further away from educational prices.\n\n-ERik Speckman\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1980, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mirsky@hal.gnu.ai.mit.edu (David Joshua Mirsky)\nSubject: LCIII->PowerPC?\nOrganization: dis\nLines: 9\nDistribution: world\nNNTP-Posting-Host: hal.ai.mit.edu\n\nHi. I own an LCIII and I recently heard an interesting rumor.\nI heard that the LCIII has a built in slot for a PowerPC chip.\nIs this true? I heard that the slot is not the same as the PDS\nslot.  Is that true?\n\nThanks\nDavid Mirsky\nmirsky@gnu.ai.mit.edu\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1981, "properties": {"category": "rec.sport.hockey", "text": "From: nlu@Xenon.Stanford.EDU (Nelson Lu)\nSubject: Re: Pens Info needed\nOrganization: Computer Science Department, Stanford University.\nLines: 20\n\nIn article <1993Apr16.074054.3124@jyu.fi> mikkot@romulus.math.jyu.fi (Mikko Tarkiainen) writes:\n\n>Coaching news: \n>\n>\t       Alpo Suhonen (ex-Jets) to Jokerit (now verified), \n>               Boris Majorov (ex-Jokerit) to Tappara,\n>\t       Vasili Tichonov (ex-Assat) to San Jose Sharks \n>                                             (assistant coach),\n>\t       Sakari Pietila to Lulea (silver team in Elite-serien)\n\nWow.  So that's probably the reason why current assistant coach Drew Ramenda\nhinted that he won't be back.  Thanks for the news, Mikko; can you (or any\nof our Finnish netters) comment on Tichonov?\n\n===============================================================================\nGO CALGARY FLAMES!  Al MacInnis for Norris!  Gary Roberts for Hart and Smythe!\nGO EDMONTON OILERS!  Go for playoffs next year!  Stay in Edmonton!\n===============================================================================\nNelson Lu (claudius@leland.stanford.edu)\nrec.sport.hockey contact for the San Jose Sharks\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.092+0000", "event": "documents", "entityId": 1982, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: swood@vela.acs.oakland.edu (Scott Wood)\nSubject: Re: MORE Western Digital HD info needed\nOrganization: Oakland University, Rochester, Michigan, U.S.A.\nLines: 27\nNNTP-Posting-Host: vela.acs.oakland.edu\n\ncs3sd3ae@maccs.mcmaster.ca (Holly       KS) writes:\n\n`My Western Digital also has three sets of pins on the back. I am using it with\n`another hard drive as well and the settings for the jumpers were written right \n`on the circuit board of the WD drive......MA SL ??\n\nWell, I figured out how the jumpers go.  Now I have quite a different\nproblem that has me perplexed like you wouldn't know.  I have both drives\nworking, the C: system formatted and all of my hardware installed.  Only\nproblem is, that during the boot up sequence, the computer does not want\nto pass up looking for a system on the A: drive.\n\nReinitialization all goes fine and the BIOS seems to be configured to\nwhat is necessary.  All the drive tests work, but when the thing comes\nback around to the a: drive and there is no disk present, it just spins.\nIf you insert a disk into drive a with a system however, it works fine\nand boots up (ie how installed all my software)\n\nAny additional help on this will be most welcome....\n\nswood\n\n-- \n       Hunting over in Michigan?  Don't Despair - NO CLOSED SEASON ON:\n         opossum, porcupine, weasel, red squirrel, skunk, starlings,\n        feral pigeons, English sparrows, ground squirrel & woodchuck\n          Anyway trout season opens the last Saturday this month.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1983, "properties": {"category": "comp.windows.x", "text": "From: dick@ahold.nl (Dick Heijne)\nSubject: Re: xdm and Solaris2.1\nOrganization: Ahold NV, Zaandam, Netherlands, EEC\nLines: 11\n\nThe XDM on Solaris 2.1 *WAS* broke. Since two weeks, Sun distributes\na patched release, which works fine (supports /etc/shadow and all).\nWe have it up and running ever since and have not experienced any\nproblems. Call your local Sun rep.\n\nDick.\n-- \n+==============================Ahold NV===============================+\n| Room 146 , Ankersmidplein 2, 1506 CK Zaandam,  The Netherlands, EEC |\n| Dick.Heijne@ccsds.ahold.nl - Tel: +31 75 592151, Fax: +31 75 313030 |\n+=====================================================================+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1984, "properties": {"category": "sci.space", "text": "From: MUNIZB%RWTMS2.decnet@rockwell.com (\"RWTMS2::MUNIZB\")\nSubject: Long Island (was Why use AC at 20kHz for SSF power)\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 21\n\non Date: Fri, 2 Apr 1993 23:19:46 GMT, Edmund Hack <arabia!hack> writes:\n\n/In article <1pgdno$3t1@access.digex.net> prb@access.digex.com (Pat) writes:\n/>\n/>I always thought GD's  Fighter plants were in Long Island.  \n/>\n/No, Northrup has a plant on Long Island.\n\nI don't think Northrup ever had a plant on Long Island.  The two main airframe\nmanufacturers there were (Fairchild)/Republic which closed its doors after the\nT-46 cancellation, and Grumman (which is still hanging on last I time I called).\nI think Sperry also started there.  If you're ever in the area check out the\nCradle of Aviation Museum at Mitchell field (now mostly parking lots behind the\nNassau Coliseum and the community college).  Good display of vehicles from Long\nIsland, including a LEM flight article.\n\nDisclaimer: Opinions stated are solely my own (unless I change my mind).\nBen Muniz     MUNIZB%RWTMS2.decnet@consrt.rockwell.com    w(818)586-3578\nSpace Station Freedom:Rocketdyne/Rockwell:Structural Loads and Dynamics\n   \"Man will not fly for fifty years\": Wilbur to Orville Wright, 1901\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1985, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: skcgoh@tartarus.uwa.edu.au (Shaw Goh)\nSubject: Re: Non-turbo speed\nOrganization: The University of Western Australia\nLines: 17\nNNTP-Posting-Host: tartarus.uwa.edu.au\nX-Newsreader: Tin 1.1 PL5\n\nNic Percival (x5336) (nmp@mfltd.co.uk) wrote:\n: \n: Just taken delivery of a 66MHz 486 DX2 machine, and very nice it is too.\n: One query - the landmark speed when turbo is on is 230 or something MHz\n: - thats not the problem. The problem is the speed when turbo is off. Its\n: 7 MHz. The equivalent in car terms is having a nice Porsche with a button\n: that turns it into a skateboard.\n: \n: Does anyone have a clue as to what determines the relative performance of\n: turbo vs non-turbo?? I would like to set it to give a landmark speed of\n: about 30 or 40 MHz with turbo off.\n: \n: Cheers,\n: \n\nIt should be halved that of turbo (ie 33Mhz).\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1986, "properties": {"category": "rec.autos", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Re: Dumbest automotive concepts of all time\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 23\n\nIn article <1327@qa1.WichitaKS.NCR.COM> jhart@qa1.WichitaKS.NCR.COM (Jim Hart) writes:\n>In article <1993Mar29.161044.1@uncavx.unca.edu> bwillard@uncavx.unca.edu\n>writes:\n>>My TOP 10 list of dumbest automotive concepts ever\n>>\n>>10. 1984 Dodge Colt Vista - tachometer only avail. with automatic trans.\n>>9. Back-up lights on Corvette - they're on the sides of the car!\n>              ^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^\n>Sure would be interested to know what year(s) this was!\n>I don't seem to recall ANY car with back-up lights on the sides, much\n>less any Corvette.  I suppose I could be mis-interpreting what you are\n>trying to say here.....\n\nJust a quick comment. Backup lights mounted on the side\nwould actually be *extremely* useful for people backing out of\nparking stalls...\n\nRegards, Charles\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1987, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: WFAN\nFrom: csc2imd@cabell.vcu.edu (Ian M. Derby)\nExpires: Sat, 1 May 1993 04:00:00 GMT\nOrganization: Virginia Commonwealth University\nLines: 41\n\n\nNo, he's not nuts, WIP is second to none THE sports station.  They\ndon't have Tony Bruno working ESPN radio and Al Morganti doing Friday\nNight Hockey because they suck.  I live in Richmond Va, but I visit\nPhila often, and on the way I get WTEM Washington) and WIP.  I hear\nthe FAN at night wherever I go (the signal used to be WNBC, when they\nplayed golden oldies) because you can't avoid it.  Of those three,\nWIP has the best hosts hands down.  Chuck Cooperstein isn't a homer,\nand neither is Jody Mac.  WTEM is too generic to be placed in the\ncatergory.  In fact if you have heard WTEM and the FAN you notice the\ntheme music is identical...same ownership?? I think so!  WIP is\ntotally original.  Their hosts actually have a personality (this is a\nknock at TEM (the TEAM) not the FAN because Mike and the Mad Dog and\nSommers are good) I mean comparing the morning guys in Philadelphia\nto the ones in Washington is a total joke.  Anyway, I like the FAN\nand WIP, but I think the edge goes to 'IP.  \n\nWhen I get back from Philly, I go into withdraw cause Richmond has\nnada except the national sports line (and those guys are totally\nclueless)   \nI was really mad when WCAU was cancelled because they had Steve\nFredericks doing sports phone after the Phillies games.  (WCAU is\nanother strong station, now it's an oldies station, but they still\nhave the Phillies) I started listening to the FAN because I heard he\nwent there.  I finally heard him last summer and he wasn't the same\nguy.  Those NY fans got to him.  I was glad to hear him back in\nPhilly when I went to see a few Eagles games.  \n\n\nI will admit, I am  die hard EAGLES fan and WIP is basically an\nEagles station 365 days a year.  BUT, I bet you the Phillies are in\ncontrol right now.\n\n\nAbout the knock on G. Cobb, I like him.  He knows the Eagles like a\nbook.  I remember the weekend before they went to play San Fran,\n(when everyone thought the Eagles would be blown away) Cobb said that\nthe Eagles usually play their best when no one believe they can win.\nWell they were inches shy of pulling the victory.  \n\nWell that's my $.02\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1988, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Do we need the clipper for cheap security?\nOrganization: Partnership for an America Free Drug\nLines: 53\n\namanda@intercon.com (Amanda Walker) writes:\n>> The answer seems obvious to me, they wouldn't.  There is other hardware \n>> out there not compromised.  DES as an example (triple DES as a better \n>> one.) \n>\n>So, where can I buy a DES-encrypted cellular phone?  How much does it cost?\n>Personally, Cylink stuff is out of my budget for personal use :)...\n\nIf the Clipper chip can do cheap crypto for the masses, obviously one\ncould do the same thing WITHOUT building in back doors.\n\nIndeed, even without special engineering, you can construct a good\nsystem right now. A standard codec chip, a chip to do vocoding, a DES\nchip, a V32bis integrated modem module, and a small processor to do\nglue work, are all you need to have a secure phone. You can dump one\nor more of the above if you have a fast processor. With integration,\nyou could put all of them onto a single chip -- and in the future they\ncan be.\n\nYes, cheap crypto is good -- but we don't need it from the government.\nYou can do everything the clipper chip can do without needing it to be\ncompromised. When the White House releases stuff saying \"this is good\nbecause it gives people privacy\", note that we didn't need them to\ngive us privacy, the capability is available using commercial hardware\nright now.\n\nIndeed, were it not for the government doing everything possible to\nstop them, Qualcomm would have designed strong encryption right in to\nthe CDMA cellular phone system they are pioneering. Were it not for\nthe NSA and company, cheap encryption systems would be everywhere. As\nit is, they try every trick in the book to stop it. Had it not been\nfor them, I'm sure cheap secure phones would be out right now.\n\nThey aren't the ones making cheap crypto available. They are the ones\nkeeping cheap crypto out of people's hands. When they hand you a\nclipper chip, what you are getting is a mess of pottage -- your prize\nfor having traded in your birthright.\n\nAnd what did we buy with our birthright? Did we get safety from\nforeigners? No. They can read conference papers as well as anyone else\nand are using strong cryptography. Did we get safety from professional\nterrorists? I suspect that they can get cryptosystems themselves on\nthe open market that work just fine -- most of them can't be idiots\nlike the guys that bombed the trade center. Are we getting cheaper\ncrypto for ourselves? No, because the market would have provided that\non its own had they not deliberately sabotaged it.\n\nSomeone please tell me what exactly we get in our social contract in\nexchange for giving up our right to strong cryptography?\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1989, "properties": {"category": "comp.windows.x", "text": "From: dick@ahold.nl (Dick Heijne)\nSubject: Re: xterm build problem in Solaris2.1\nOrganization: Ahold NV, Zaandam, Netherlands, EEC\nLines: 24\n\ndla@se05.wg2.waii.com (Doug Acker) writes:\n: ..continuing on my build problems, I got stuck here build xterm...\n: \n: gcc -fpcc-struct-return -o xterm main.o input.o charproc.o cursor.o util.o tabs.o  screen.o scrollbar.o button.o Tekproc.o misc.o  VTPrsTbl.o TekPrsTbl.o data.o menu.o -O2   -R/usr/wgep/X11R5.sos5/lib${LD_RUN_PATH+\\:$LD_RUN_PATH} -L../.././lib/Xaw -lXaw -L../.././lib/Xmu -lXmu -L../.././lib/Xt -lXt -L../.././extensions/lib -lXext -L../.././lib/X -lX11 -L/usr/wgep/X11R5.sos5/lib  -lsocket -lnsl -ltermcap\n: Undefined                       first referenced\n:  symbol                             in file\n: index                               /usr/ucblib/libtermcap.a(termcap.o)\n: rindex                              /usr/ucblib/libtermcap.a(termcap.o)\n: ld: fatal: Symbol referencing errors. No output written to xterm\n: *** Error code 1\n: make: Fatal error: Command failed for target `xterm'\n: \n: Any clues for help?\n\nEither:\n\t* Add -lucb -lelf to the list\n    or\n\t* #define index() and rindex() to strchr() and strrchr() respectively.\n\t  Both use same args. Former are bsd, latter are SysV.\n-- \n+==============================Ahold NV===============================+\n| Room 146 , Ankersmidplein 2, 1506 CK Zaandam,  The Netherlands, EEC |\n| Dick.Heijne@ccsds.ahold.nl - Tel: +31 75 592151, Fax: +31 75 313030 |\n+=====================================================================+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1990, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wes1574@zeus.tamu.edu (Bill Scrivener)\nSubject: In need of help....\nOrganization: Texas A&M University, Academic Computing Services\nLines: 22\nDistribution: world\nNNTP-Posting-Host: zeus.tamu.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nOk, I have a problem that I thought you guys/gals might know about....\n\nI'm running a 286dx-25 with a 85mb hdd.  I also have windows 3.1, but\nhardly any dos application will run out it.  Also, when I do a \"mem\"\ncommand, it says that I have used up 58kb out of 640kb of conventional\nmemory, zero from upper level memory, and all 385kb of my ems memory.\nAnd to top it off, I can't load any device drivers into upper memory.\nDo I just need more memory?  Also, why would it use up ems memory instead\nof upper memory?\n\nPlease reply by e-mail only to :  wes1574@tamvenus.tamu.edu\n\n\n\n\n---------------------------------------------------------------------------\nBill Scrivener                    |    \"It's not the first time that you\nTexas A&M University              |     sleep with a woman that matters,\nCollege Station, Texas            |     but the first time\nemail: wes1574@tamvenus.tamu.edu  |     you wake up with her.\"\n---------------------------------------------------------------------------\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1991, "properties": {"category": "sci.crypt", "text": "From: Lyle_Seaman@transarc.com\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Mail to News Gateway at Wang Labs\nDistribution: na\nLines: 47\n\njhan@debra.dgbt.doc.ca (Jerry Han) writes:\n> The point of the matter is that; yes this is a serious problem.  But it is\n> not the end of the world.  Guess what?  We're doing something now you\n> can't do in a Communist country or Nazi Germany. \n\nOr John Edgar Hoover's USA.\n\n> We're complaining about\n> it, (or rather, you're complaining about it) and nobody is shooting at us.  \n\nyet.\n\n> GUESS WHAT PEOPLE?  You live in one of the few countries in the world\n> where a person can complain without getting shot at.  \n\nyet.\n\n> People are always complaining that somebody did this wrong, or somebody\n> did that wrong, or whatever.  Sit down and figure out two things:\n> \n> 1)  What have they done right?\n> 2)  How much worse can it get?\n> \n> And you'll find that you and I, are pretty damn lucky.\n\nso far.\n\n> So let's talk about it, get some action going, decide what's going on. \n> But let's not overreact!  \n\nWhat harm is there in overreacting?\nThis may be the largest single threat to civil liberties yet in my\nlifetime.  The US has done some pretty heinous things in the past, \nand we haven't yet recovered from all of them.  There certainly seems\nto be a historical trend towards less liberty, with occasional\nperturbations. \n\nTime to break out the quotes from American political radicals.\n\nLyle\t\tTransarc\t\t707 Grant Street\n412 338 4474\tThe Gulf Tower\t\tPittsburgh 15219\n\n There are more instances of the abridgement of the freedom of the\n people by the gradual and silent encroachment of those in power,\n than by violent and sudden usurpation.          -- James Madison\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1992, "properties": {"category": "rec.sport.baseball", "text": "From:  (Austin Jacobs)\nSubject: BOB KNEPPER WAS DAMN RIGHT!\nNntp-Posting-Host: berkeley-kstar-node.net.yale.edu\nOrganization: University of Yaleta\nLines: 17\n\nDon't you GUYS think so?  I mean, c'mon!  What the heck are women doing\neven THINKING of getting into baseball.  They cause so many problems.  Just\nlook at Lisa Olson.  Remember that feisty reporter that entered the New\nEngland Patriots locker room?  She started crying like a LITTLE GIRL!  I\njust don't think women belong in a man's sport.  Before you smart guys\nflame me for this, I know the given example was about football.  Who cares?\n It still applies to other MALE sports.  How can we have women umpires? \nJeez!  Look at Pam Postema.  Just because she's a woman, everybody on the\nface of the earth thinks it's great that she's getting an opportunity to\nump.  If you even watched the games and had an IQ greater than that of\nroast beef, you'd see that she is not nearly as good as most AAA umpires.\nBesides, she is probably more worried about cracking a fingernail with a\nfoul tip off of Wade Boggs' bat. Or Jose Oquendo's bat. Either way, there\nare too many complications.\n\n\n\u00d1Austin Jacobs (Bob Knepper Fan Club Member #12)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1993, "properties": {"category": "talk.religion.misc", "text": "From: royc@rbdc.wsnc.org (Roy Crabtree)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Red Barn Data Center\nLines: 54\n\nIn article <C5srEw.FCG@noose.ecn.purdue.edu> tbrent@bank.ecn.purdue.edu (Timothy J Brent) writes:\n...\n>Give me a break!  What fireman should have to deal with a blaze like that\n>AND get shot at at the same time.\n\n\tNearly all of them.  Witness LA>  Firemen are among our real\n\theroes most of the time.  I wonder when they were actually\n\taasked to come, or if they found out about the fire over the\n\tTV ....\n\n\n\tShot at by whom?  prove it!\n\n>\n>These people were breaking the law.  I agree these weren't the best tactics,\n\n\tWhen \"law\" replaces \"justice\" the system is dying or dead.\n\tNote that we had a small revolution 216 years ago on this\n\tpoint.\n\n>they probably should have backed off, pulled the perimeter way back, and let\n>them sit there with no media attention until they decided to come out.  The \n>only other alternative I see would have been to send in a couple of special\n>forces guys to capture or assassinate Koresh.  But remember, these fruit-\n\n\tOr perhaps just wait.\n\tOr maybeeven send in a few agents who are Christian to\n\t\tsit down and pray outside the line?  Try affinity\n\t\trather than subversion?\n\n\n>loops were putting their lives on the lines voluntarily.  Why should \n\n\tChuckle.  SO would you if someone points a gun at you.\n\tAt that point you can die or live; and if living means\n\tstayng in a building to keep badge carrying nuts off your\n\tkids, I suspect you might as well.\n\nBOTH sides were wrong.\n\n>law-abiding citizens have to put themselves in any more danger than necessary\n>when dealing with a nut?  Look at the man who jumped out of his Bradley to\n>grab a flaming women who was running back into the building.  Yeah, I would\n>have to say they were trying to save those people.  I don't think I would \n>risk my life that much to save someone that stupid that obviously didn't\n>even want to be saved.\n\n\tTry again:  go see the movie Sophie's CHoice.\n\tGrow up.\n\n>\n>-Tim\n\nroyc\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1994, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Arafat (Re: Sampson)\nOrganization: Aiken Computation Lab, Harvard University\nLines: 61\n\nIn article <5897@copper.Denver.Colorado.EDU> aaldoubo@copper.denver.colorado.edu (Shaqeeqa) writes:\n>In article <1993Apr10.182402.11676@colorado.edu> perlman@qso.Colorado.EDU (Eric S. Perlman) writes:\n\n>>Perhaps, though one can argue about whether or not the current\n>>Palestinian delegation represents the PLO (I would hope it does not, as\n>>the PLO really doesn't have that kind of legitimacy).\n\n>Does it matter to you, Naftaly, Adam, and others, that Arafat\n>advises the delegation and that the PLO, overall, supports it?  Does\n>it also matter that Arafat, on behalf of the PLO, recognizes Israel\n>and its right to exist?  Further, does Israel's new policy concerning\n>direct negotiations with the PLO hold any substance to the situation\n>as a whole?\n\nNo, he does not.  Arafat explicitly *denies* this claim.\n\n\nfrom a Libyan televison interview with Yasser Arafat 7-19-1991\nQ: Some people say that the Palestinian revolution has many times changed\n   its strategies and tactics, something which has left its imprint on the\n   Palestinian problem and on the Palestinian Liberation Front.  The\n   [strategies and tactics] have not been clear.  The question is, is the\n   direction of the Palestinian problem clear?  The Palestinian leadership\n   has stopped, or at least this is what has been said in the media, this\n   happened on the way to the dialogue with the United States, the PLO\n   recognized something called \"Israel\"...\n\nA: No, no, no!  We do not recognize the State of Israel.  We said\n   \"recognition\" -- when a Palestinian state is established.  It will then\n   decide if to recognize Israel or not.  When it is established, its\n   parliament will convene and decide.\n\n>policies which it can justify through occupation.  Because of this,\n>you have the grassroot movements that reject Israel's authority and\n>disregard for human rights; and, if Israel was serious about peace, it\n>would abandon these policies.\n\n\tAnd replace them with what?  If Israel is to withdraw its\ncontrol of any territory, there must be two prerequsites.  One is that\nit leads to a reduction in deaths.  The second is that it should not\nweaken Israels bargianing position with respect to peace talks.\n\n\tLeaving Gaza unilateraly is a bad idea because it encourages\narabs to think they can get what they want by killing Jews.  The only\nway Israel should pull out of Gaza is at the end of negotiations.\nThese negotiations should lead to a mutually agreeable solution with\nsecurity guarantees for both sides.\n\n\tUntil arabs are ready to sit down at the table and talk again,\nthey should not expect, or recieve more concessions.\n\n\nAdam\n\n\n\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1995, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re:  Living\nOrganization: University College of Wales, Aberystwyth\nLines: 15\nNntp-Posting-Host: 144.124.112.30\n\n\nIn article <05APR93.02451203.0049@UNBVM1.CSD.UNB.CA> C70A@UNB.CA (C70A000) writes:\n>In article <1993Apr2.213402.10821@eos.arc.nasa.gov> phil@eos.arc.nasa.gov (Phil Stone) writes:\n>>Thanks for the compliments, Allan, but I think you sidestepped\n>>my point there.  I didn't say I didn't take *any* chances.  Sheesh,\n>>getting out of bed in the morning is risky; I sprained my ankle\n\nDamn right. I was late for a climbing meet one morning, so I got\nout of bed without bothering that my right foot was still asleep.\nIt reminded me by folding underneath with a crunching of Metatarsals.\nLucky the brake's on the right, but i got funny looks riding thru \nLondon with one leg held aloft.\n\n(Climbing wasnt a problem - the best splint in the world is a tight\nclimbing shoe.)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1996, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: was:Go Hezbollah!!\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 28\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <C5I7J7.F7A@eis.calstate.edu>, mafifi@eis.calstate.edu (Marc A Afifi) writes:\n\n|> Don't forget that it was the French Resistance to the\n|> Nazi occupying forces which eventually succeeded in driving out the\n|> hostile occupiers in WWII.\n\nActually, this is incorrect.  French resistance may have played some\npart in hindering the German war effort, however the crucial role was\nsupplied on D-Day.\n\n|> Diplomacy has not worked with Israel and the\n|> Lebanese people are tired of being occupied! They are now turning to the\n|> only option they see as viable. (Don't forget that it worked in driving\n|> out the US)\n\nInteresting statement.  Especially when you consider that Lebanon\nhad claimed to have made progress in the peace talks, as well as\nIsrael.  Of course, one of the prime obstacles to Israel's complete\nwithdrawal is the lack of governmental control that can be applied\nto the area as well as the large presence of Syrian forces which\nhave not been asked to withdraw as well.\n\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1997, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: lisbon@vpnet.chi.il.us (Gerry Swetsky)\nSubject: Program manager ** two questions\nOrganization: Vpnet Public Access\nLines: 16\n\n\n(1) Is it possible to change the icons in the program groups?  I'd like\n    to give them some individuality.\n\n(2) Can you set up a short-cut key to return to the Program Manager? \n    I know <CTL><ESC>, <ESC> will do it, but I'd rather set it up so I \n    can avoid the task list and get back to the P/M with <ALT><F1>.\n\nAny and all help is welcomed.\n\n--\n============================================================================\n| Help stamp out stupid .signature files!           Gerry Swetsky  WB9EBO  |\n|                 vpnet - Public access Unix and Usenet                    |\n| Home (708)833-8122       vpnet (708)833-8126      lisbon@vpnet.chi.il.us |\n============================================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1998, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: The University of Texas at Austin, Austin TX\nLines: 24\nDistribution: world\nNNTP-Posting-Host: louie.cc.utexas.edu\n\ncdt@sw.stratus.com (C. D. Tavares) writes:\n:mfrhein@wpi.WPI.EDU (Michael Frederick Rhein) writes:\n:\n:> As someone else has pointed out, why would the stove be in use on a warm day\n:> in Texas. \n:\n:Do YOU eat all your food cold?\n\nThank you for pointing out the obvious to people who so clearly missed it.\nI can't stand it when people's first reaction is to defend the aggressor.\n\nMr. Tavares, you have a unique and thoughtful way of getting to the heart\nof the matter, and I thank you for putting it to good use.\n\nMike Ruff\n\n\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 1999, "properties": {"category": "rec.sport.hockey", "text": "From: franti@polaris.utu.fi (Pasi Fr{nti)\nSubject: Re: plus minus stat\nOrganization: University of Turku, Finland\nLines: 20\n\nlor@cbnewsk.cb.att.com (edward.lor) writes:\n\n>>\tPlayer:\t\tPoints:\t\t+/-\tSubtraction:\n>>\t-------\t\t-------\t\t----\t------------\n>>\tLemieux\t\t  157\t\t 53\t  -104\n>>\tLaFontaine \t  145\t\t 13\t  -132\n>>\tOates \t\t  141\t\t 12\t  -129\n>>\tYzerman\t\t  138\t\t 33\t  -105\n>>\tSelanne\t\t  137\t\t  8\t  -129\n\n>This is wrong. Among Lemieux's 157 points, we do NOT know how many\n>are power play points. We may be able to find out how many PP goal he\n>scored, but not how many PP assist he accumulated. We also don't know\n>the # times he was on the ice but not credited on the goals the Pens \n>scored.\n\nThat is what my point really was. There is not straight dependency between\nthe +/- and scored points. Apparently most of the netters have realized\nit by themselves.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 2000, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Hell\nOrganization: AI Programs, University of Georgia, Athens\nLines: 22\n\nQuoth the Moderator:\n\n>I have to say that I some qualms about giving you this explanation,\n>because it raises additional problems: If God is the source of all\n>existence, then a complete separation from him would make existence\n>itself impossible.  So, does God maintain just enough connection with\n>those who are rejected to keep them in existence so he can punish\n>them?\n\nIn a short poem (\"God in His mercy made / the fixed pains of Hell\"),\nC. S. Lewis expresses an idea that I'm sure was current among others,\nbut I haven't be able to find its source:\n\nthat even Hell is an expression of mercy, because God limits the amount\nof separation from Him, and hence the amount of agony, that one can\nachieve.\n\n-- \n:-  Michael A. Covington         internet mcovingt@ai.uga.edu :    *****\n:-  Artificial Intelligence Programs       phone 706 542-0358 :  *********\n:-  The University of Georgia                fax 706 542-0349 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 2001, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dppeak@matt.ksu.ksu.edu (David Paul Peak)\nSubject: FOR SALE: 2 4MB 80ns SIMMs\nOrganization: Kansas State University\nLines: 12\nNNTP-Posting-Host: matt.ksu.ksu.edu\n\nI have two 4 meg SIMMS that I am trying to sell.  I\nhad them in my LC.   I would like to get $100 for\neach one.  They are only three months old and have a\nlifetime warrenty. They are 80ns simms.  I will also\nconsider other reasonable offers.  Please E-Mail me.\n\nDave\n\nInternet: dppeak@matt.ksu.ksu.edu\nAOL: skibum7\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 2002, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: himb@iniki.soest.hawaii.edu (Liz Camarra)\nSubject: Re: 17\" Monitors\nOrganization: School of Ocean and Earth Science and Technology\nLines: 20\n\nIn article <C5pIsw.Kq8@cs.mcgill.ca> gerardis@cs.mcgill.ca (The GIF Emporium) writes:\n[stuff deleted]\n>a while.  That is the only thing that is making me lean more in favor\n>of the NEC 5FG (or now also available the NEC 5FGe - only difference,\n>no ACCUCOLOR ).  Any experiences or opinions from people who have used\n\n  Not only do you lose AccuColor, you also had to give up 1280x1024\nnon-interlaced mode, the wider 135 Mhz bandwidth and the Mac\nand BNC inputs of the 5FG.\n\n  Personally I am not bothered at all by the two lines in\ntrinitron tube.\n\n>        Tony Gerardis    @   McGill University - Computer Science\n\n+----------------------------------------------------------------+\nStephen Lau, Elec. Engineering, Univ. of Hawaii\n don't have my own account until grad. school starts (autumn 93)\n+              Death to FM synthesis! Go Gus!                    +\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 2003, "properties": {"category": "talk.politics.misc", "text": "From: ipser@solomon.technet.sg (Ed Ipser)\nSubject: Government-Mandated Energy Conservation is Unnecessary and Wastful, Study Finds\nNntp-Posting-Host: solomon.technet.sg\nLines: 94\n\n\n\n  Government-Mandated Energy Conservation is Unnecessary and Wastful, Study Finds\n\n  Washington, DC -- The energy tax and subsidized energy-efficiency\n  measures supported by President Clinton and Energy Secretary Hazel\n  O'Leary are based on faulty assumptions, a new study from the Cato\n  Institute points out.\n\n    According to Jerry Taylor, Cato's director of natural resource studies,\n  we are not running out of sources of energy. The world now has almost 10\n  times the proven oil reserves it had in 1950 and twice the reserves of\n  1970. Proven reserves of coal and natural gas have increased just as\n  dramatically.\n\n    When standards of living, population densities, and industrial\n  structures are controlled for, the United States is no less energy\n  efficient than Japan and more energy efficient than many of the Group\n  of Seven nations.\n\n    Energy independence provides little protection against domestic oil\n  price shocks because the energy economy is global. Moreover, since the\n  cost of oil represents only about 2 percent of gross national product,\n  even large increases in the price of oil would have little impact on the\n  overall U.S. economy.\n\n    Market economies are, on average, 2.75 times more energy efficient per\n  $1,000 of GNP than are centrally planned economies.\n\n    Utilities' subsidized energy-efficiency measurs, known as demand-side\n  management programs, encourage free riders, overuse of competing resource\n  inputs, an competitive inequities. Furthermore, DSM programs do not\n  reduce demand.\n\n    Taylor concludes that government-mandated energy conservation imposes\n  unnecessary costs on consumers and wastes, not conserves, energy; that\n  subsidizing energy-conservation technologies will stymie, not advance,\n  gains in energy conservation; and that central control over the lifeblood\n  of modern society--energy--would transfer tremendous power to the state\n  at the expense of the individual.\n\n    \"Energy Conservation and Efficiency: The Case Against Coercion\" is no.\n  189 in the Policy Analysis series published by the Cato Institute, an\n  independent public policy research organization in Washington, DC.\n\n\n\nAvailable from:\n  Cato Institute\n  224 Second Street SE\n  Washington, DC  20003\n\n\n\n---------------------------------------------------------------------------\n\n\n\n\n                        The Cato Institute\n\n    Founded in 1977, the Cato Institute is a public policy research\n  foundation dedicated to broadening the parameters of policy debate\n  to allow consideration of more options that are consistent with the\n  traditional American principles of limited government, individual\n  liberty, and peace.  To that end, the Institute strives to achieve\n  greater involvement of the intelligent, concerned lay public in \n  questions of policy and the proper role of government.\n    The Institute is named for Cato's Letters, libertarian pamphlets\n  that were widely read in the American Colonies in the early 18th\n  century and played a major role in laying the philosophical foundation\n  of the American Revolution.\n    Despite the achievement of the nation's Founders, today virtually\n  no aspect of life is free from government encroachment.  A pervasive\n  intolerance for individual rights is shown by government's arbitrary\n  intrusions into private economic transactions and its disregard for\n  civil liberties.\n    To counter that trend the Cato Institute undertakes an extensive\n  publications program that addresses the complete spectrum of policy\n  issues.  Books, monographs, and shorter studies are commissioned\n  to examine the federal budget, Social Security, regulation, military\n  spending, international trade, and myriad other issues.  Major policy\n  conferences are held throughout the year, from which papers are\n  published thrice yearly in the Cato Journal.\n    In order to maintain its independence, the Cato Institute accepts\n  no government funding.  Contributions are received from foundations,\n  corporations, and individuals, and other revenue is generated from\n  the sale of publications.  The Institute is a nonprofit, tax-exempt,\n  educational foundation under Section 501(c)3 of the Internal Revenue\n  Code.\n\n  The Cato Institute\n  224 Second Street S.E.\n  Washington, DC  20003\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 2004, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jdsiegel@garnet.berkeley.edu (Joel Siegel)\nSubject: Re: 2 questions about the Centris 650's RAM\nOrganization: University of California, Berkeley\nLines: 18\nDistribution: usa\nNNTP-Posting-Host: garnet.berkeley.edu\n\n>According to the (seen several times) postings from Dale Adams of Apple\n>Computer, both the 610 and the 650 require 80ns SIMMS - NOT 60 ns.  Only\n>the Centris 800 requires 60 ns SIMMs.\n>\n>Pete\n\nI think you meant Quadra 800 ..... (but a Centris 800 probably\nwould be a real nice machine... :)  )\n\nBut yeah, it needs 80ns not 60ns.\n\nJoel\n\n-- \nJoel Siegel <jdsiegel@garnet.berkeley.edu    jdsiegel@ocf.berkeley.edu>\n\"I myself have never been able to find out what feminism is:  I\nonly know that I am called a feminist whenever I express\nsentiments that differentiate me from a doormat.\" -Rebecca West, 1913\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.093+0000", "event": "documents", "entityId": 2005, "properties": {"category": "sci.electronics", "text": "Organization: Queen's University at Kingston\nFrom: <LEEK@QUCDN.QueensU.CA>\nSubject: Re: ADC card for computer\nDistribution: world\nLines: 54\n\nIn article <1qi8e3$b5e@lll-winken.llnl.gov>, you say:\n>\n>I would like to digitize the output of a SQUID magnetometer (range -10 V\n>to +10 V) and do digital signal processing in a computer, say a Macintosh\n>II or a 486 PC.  I would like a good 16 bit ADC with good linearity and a\n>high conversion speed, at least 50 kHz, preferably 200 kHz.  Other concerns\n>\n>(2)  Must I use an ADC external to my computer to avoid digital noise\n>     feedback into my sensitive SQUID electronics?\n\nMight be a good idea...  The resolution you requested is about 0.3mV\nIn order to get what you've paid for, noise level better be lower than\nthat.  It is kind of hard to do it in a noisy box like you can expect\ninside a PC.\n\nBefore you pay $$$ for a PC card, test it out by sampling a low\ndistortion sine wave (I think there is a sine wave on a CD.  Digital\nDomain ?  There are possibly other low THD sources)  Run the digitized\nwaveform through a FFT transform and take alook at the noise floor on\nthe spectrum.  That's should give you a good indication of the design.\n(That's what I am doing to test a data acquistion system I have designed\n- I got the idea from MAXIM data sheet.)\n\nIf you can live with 14 bit resolution, I would recommend looking at\nthe MAX121 from MAXIM.  It is a high speed (308KHz) complete\nsampling A/D with DSP interface.  The input range is +/- 5V and it\nuses a serial interface (which can easily be optically isolated\nfrom the computer to elinimate a major noise source)  The Analog design\nguide I got from them shows a -100db noise level.  They claim a -77db\nmax (-85 typ.) THD.  Looks pretty good for the $12 @ 1000 pieces\n\nA evaluation kit is available.  Might want to give these nice folks a\ncall.  1-800-998-8800 or fax: (408)737-7194 and (408) 737-7600 ext4000\nfor application assistance.\n\nThis assumes that you can build your own DAS and write your own software.\n(Hey you can get the MAX121 as a free sample just by calling the 1-800 #)\n\n>I would appreciate discussion of your personal experience with a Mac or PC-\n>based ADC system.\n\nI would recommend you to find out the resolution that can be gotten out\nof your system by looking at the noise level, otherwise you might be\nthrowing out your money.\n\n>Charles Cunningham\n>cec@imager.llnl.gov\n\nK. C. Lee\nElec. Eng. Grad. Student\n\nI have no connection with MAXIM except I do in general recommend\ncompanies that give samples to students to others.  I feel they\ndeserve that for being nice to me.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2006, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: peterd@jamie.dev.cdx.mot.com (Peter Desnoyers)\nSubject: Help with fixed-frequency (52kHz?) VGA monitor\nNntp-Posting-Host: jamie.dev.cdx.mot.com\nOrganization: Motorola Codex, Canton, Massachusetts\nLines: 14\n\nI recently bought a monichrome VGA monitor for $99 that will do\n1024x768 non-interlaced, which seems like a good deal. However, it is\na fixed-scan rate monitor, and only handles 52 kHz horizontal, I\nthink. With my Trident card it works only in graphics modes 5e and 62\n- not much use, since just about any application will set the mode to\nsomething else, especially if it wants to do text, I suppose. Anyway:\n\n - is there any way that I can use this as a general-purpose VGA\n   display with a 1-meg trident 8900C card?\n\n - if not, can I do so with some sort of different VGA card?\n\n\t\t\t\tPeter Desnoyers\n-- \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2007, "properties": {"category": "sci.crypt", "text": "From: kadie@cs.uiuc.edu (Carl M Kadie)\nSubject: [EFF] Initial EFF Analysis of Clinton Privacy and Security Proposal\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 107\n\n[An article from comp.org.eff.news, EFFector Online 5.06 - Carl]\n\n                       April 16, 1993\n\n      INITIAL EFF ANALYSIS OF CLINTON PRIVACY AND SECURITY  \n                           PROPOSAL\n\n       The Clinton Administration today made a major announcement \non cryptography policy which will effect the privacy and security of \nmillions of Americans.  The first part of the plan is to begin a \ncomprehensive inquiry into major communications privacy issues \nsuch as export controls which have effectively denied most people \neasy access to robust encryption as well as law enforcement issues \nposed by new technology.\n\n       However, EFF is very concerned that the Administration has \nalready reached a conclusion on one critical part of the inquiry, before \nany public comment or discussion has been allowed.  Apparently, the \nAdministration is going to use its leverage to get all telephone \nequipment vendors to adopt a voice encryption standard developed \nby the National Security Agency. The so-called \"Clipper Chip\" is an \n80-bit, split key escrowed encryption scheme which will be built into \nchips manufactured by a military contractor.  Two separate escrow \nagents would store users' keys, and be required to turn them over \nlaw enforcement upon presentation of a valid warrant.  The \nencryption scheme used is to be classified, but they chips will be \navailable to any manufacturer for incorporation into their \ncommunications products.\n\n       This proposal raises a number of serious concerns .\n\n       First, the Administration appears to be adopting a solution \nbefore conducting an inquiry.  The NSA-developed Clipper chip may \nnot be the most secure product. Other vendors or developers may \nhave better schemes. Furthermore, we should not rely on the \ngovernment as the sole source for Clipper or any other chips.  Rather,\nindependent chip manufacturers should be able to produce chipsets \nbased on open standards.\n\n       Second, an algorithm can not be trusted unless it can be tested. \nYet the Administration proposes to keep the chip algorithm \nclassified.  EFF believes that any standard adopted ought to be public \nand open.  The public will only have confidence in the security of a \nstandard that is open to independent, expert scrutiny.  \n\n       Third, while the use of the split-key, dual-escrowed \nsystem may prove to be a reasonable balance between privacy and \nlaw enforcement needs, the details of this scheme must be explored \npublicly before it is adopted.  What will give people confidence in the \nsafety of their keys?  Does disclosure of keys to a third party waive \nindividual's fifth amendment rights in subsequent criminal \ninquiries?  \n\n       In sum, the Administration has shown great sensitivity to the \nimportance of these issues by planning a comprehensive inquiry into \ndigital privacy and security.  However, the \"Clipper chip\" solution \nought to be considered as part of the inquiry, not be adopted before \nthe discussion even begins.\n\nDETAILS OF THE PROPOSAL:\n\nESCROW\n\nThe 80-bit key will be divided between two escrow agents, each of \nwhom hold 40 bits of each key.  Upon presentation of a valid \nwarrant, the two escrow agents would have to turn the key parts \nover to law enforcement agents.  Most likely the Attorney General \nwill be asked to identify appropriate escrow agents.  Some in the \nAdministration have suggested one non-law enforcement federal \nagency, perhaps the Federal Reserve, and one non-governmental \norganization.  But, there is no agreement on the identity of the agents \nyet.\n\nKey registration would be done by the manufacturer of the \ncommunications device.  A key is tied to the device, not to the person \nusing it.\n\nCLASSIFIED ALGORITHM AND THE POSSIBILITY OF BACK DOORS\n\nThe Administration claims that there are no back door means by \nwhich the government or others could break the code without \nsecuring keys from the escrow agents and that the President will \nbe told there are no back doors to this classified algorithm.  In order \nto prove this, Administration sources are interested in arranging for \nan all-star crypto cracker team to come in, under a security \narrangement, and examine the algorithm for trap doors.  The results \nof the investigation would then be made public.\n\nGOVERNMENT AS MARKET DRIVER\n\nIn order to get a market moving, and to show that the government \nbelieves in the security of this system, the feds will be the first big \ncustomers for this product.  Users will include the FBI, Secret Service, \nVP Al Gore, and maybe even the President. \n\nFROM MORE INFORMATION CONTACT:\n\nJerry Berman, Executive Director\nDaniel J. Weitzner, Senior Staff Counsel\n\n\n\n\n\n-- \nCarl Kadie -- I do not represent any organization; this is just me.\n = kadie@cs.uiuc.edu =\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2008, "properties": {"category": "talk.politics.guns", "text": "From: cash@convex.com (Peter Cash)\nSubject: Raid justification was: Blast them next time\nDistribution: usa\nNntp-Posting-Host: zeppelin.convex.com\nOrganization: The Instrumentality\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 27\n\nIn article <1r1chu$h22@pandora.sdsu.edu> chiu@io.nosc.mil (Francis Chiu) writes:\n\n>    Initial assault on the \"compound\" ( more like a wooden farm house if\n>  it burned to the ground like it did ) for WHAT?  Regardless of who\n>  started/caused the fire, NONE of this would have happened if the\n>  ATF can HONESTLY justify their initial assault and handled it \n>  properly!  \n\nI just got through listening to the 10 o'clock news on Channel 4 here in\nDallas. They trotted out a list of justifications produced by the ATF after\n\"months of investigation\" for their raid. \n\nI couldn't believe the junk on this list! For example, the BDs were accused\nof stockpiling a bunch of \"9mm and .223 ammunition that can be used in M15\nand M16 assault rifles\". Imagine that--they had ammunition!  They also had\naluminum dust! (Yeah, it's a component of thermite, but so far I haven't\nheard that it's illegal to take a grinder to the aluminum lawn\nfurniture...) The only thing on the list that could conceivably have been\nillegal was an M-79 grenade launcher. (Anybody know about this?)\n\nMonths of investigation! For this 80+ people died!\n\n-- \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n             |      Die Welt ist alles, was Zerfall ist.     |\nPeter Cash   |       (apologies to Ludwig Wittgenstein)      |cash@convex.com\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2009, "properties": {"category": "comp.windows.x", "text": "From: rank@winf.uni-passau.de (Christian Rank)\nSubject: Xsun not running on SPARCclassic\nOrganization: Lehrstuhl fuer Wirtschaftsinformatik - Universitaet Passau\nLines: 15\nDistribution: world\nNNTP-Posting-Host: jupiter.winf.uni-passau.de\n\nI've installed X11R5 with patches for Solaris 2.1 on our SPARCstation LX /\nSPARCclassic pool. On the LX, X11R5 runs fine, but on the classics,\nafter giving the command startx, Xsun prints the following messages:\n\tWARNING: cg3_mmap: can't map dummy space!\n\tMapping cg3c: No such device or address\nand exits.\n\nDoes anybody know how to fix this problem?\n\nThanks in advance.\n\n---\nChristian Rank\nLehrstuhl fuer Wirtschaftsinformatik * Universitaet Passau *\nInnstr. 29 * D-8390 Passau\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2010, "properties": {"category": "talk.politics.mideast", "text": "From: ab4z@Virginia.EDU (\"Andi Beyer\")\nSubject: Freedom In U.S.A.\nOrganization: University of Virginia\nLines: 11\n\n\tI have just started reading the articles in this news\ngroup. There seems to be an attempt by some members to quiet\nother members with scare tactics. I believe one posting said\nthat all postings by one person are being forwarded to his\nserver who keeps a file on him in hope that \"Appropriate action\nmight be taken\". \n\tI don't know where you guys are from but in America\nsuch attempts to curtail someones first amendment rights are\nnot appreciated. Here, we let everyone speak their mind\nregardless of how we feel about it. Take your fascistic\nrepressive ideals back to where you came from.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2011, "properties": {"category": "comp.windows.x", "text": "From: gowen@jade.tufts.edu (G. Lee Owen)\nSubject: Re: PostScript on X-terminal\nIn-Reply-To: sp1henhj@edit's message of 22 Apr 93 14:08:31 GMT\nLines: 20\nOrganization: Tufts University - Medford, MA\nDistribution: na\n\n\n> I have a problem when I'm using PostScript. When I am working local \n> on a SUN SPARCstation IPC the PostScript works good, but when I connect\n> to the SUN from a X-terminal I just get error messages that the\n> PostScript cannot connect to the news-display.\n>  Why doesn't PostScript work on an X-terminal\n\n\tBecause xterminals do not have a NeWS server.  xterminals have\nspeed by nature of their limited functionality: once you add NeWS and\neverything else, you have a workstation.  There are workarounds, I've\nheard, one involving a perl script.  What we are trying to do is\nreplace programs that need NeWS (like pageview) with programs that\ndon't (like ghostview).\n\tMaybe someone else can elaborate on the perl workaround; I\nhave no personal experience with it.\n\n  Greg Owen  { gowen@forte.cs.tufts.edu, gowen@jade.tufts.edu }\nSystems Programmer and TA, Tufts University Computer Science Dept.\n  230-   All transfers are disclaimed by my host name and boss's address.\n  230-   If you don't like this policy, disconnect now!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2012, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: div. and conf. names\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nDistribution: na\nLines: 89\n\nIn <1993Apr18.073540.6871@hubcap.clemson.edu> jwodzia@dlite.uucp (john wodziak) writes:\n\n>Sorry Roger but Mr Basketbal should what he really means here. IE he should\n>have said that he hopes \"fans in the _American_ Southeast can follow the\n>names of the divisions.\" The odds that these people other than those who\n>are displaced \"Notherners\" (who are probably already fans) is on the order\n>of the proverbial snowball's in hell.\n\nI am not at all clear about what you are trying to say here.   If  you\nasked  somone,  who  had never heard of hockey before, if LA played in\nthe Smythe division what do you think  that  the  response  would  be?\nWhat  if you asked this person if LA played in the West division?  The\nnaming of  divisions  after  long-dead  entrepreneurs  is  unnecessary\nobfuscation.\n\n>>I am glad that the names are being changed for another reason.  The names\n>>Patrick, Smythe, Norris, Adams and Campbell are all the names of so-called\n>>\"builders\" of the game.  This is the same type of thinking that put Stein\n>>in the Hall of Fame.  This is absolute nonsense.  The real builders of the\n>>game are Richard, Morenz, Howe, Conacher, Orr, etc.  If you are going to\n>>name the divisions after people at least name the divisions after people\n>>who deserve it.\n\n>Yes these people deserve recognigtion as hockey greats but the old division\n>names took into account Messers Patrick, Norris, Smythe and the Prince who \n>had alot more to do with the ORIGINS of the league than people who came into\n>an already established situation. It is much easier to be an element of change\n\nHardly.  The \"established\" situation existed prior to Smythe,  et  al.\nThe  Stanley  Cup was a challenge trophy up for grabs to whatever team\ncould successfully mount the challenge.  What our  dear  founders  did\nwas formalize the challenge.  They created a closed league, an oligop-\nolistic professional system, in the interests of making money.  Wheth-\ner  or  not  that system has contributed to better hockey is certainly\ndebatable.  We are, however, stuck with their invention and  that  de-\nbate  is  academic.   The  point  to  be made, however, is that people\nplayed hockey and people enjoyed watching hockey  long  before  Smythe\nand his pals showed up.\n\n>or a standout in an existing situation than it is to be someone who creates\n>a new situation.  If you want to honor players like Bobby Orr than I'm sure\n>you can find a reason to name a torphy after him such as best offensive \n>defenseman.\n\nWhat's wrong with best defenceman, period?  Was there  ever  a  better\ndefenceman?   Was  there  ever a better player?  And if you think that\nBruce Norris' contribution was somehow  more  significant  than  Bobby\nOrr's  then,  in the interests of education, why don't you take a poll\nand find out how many people know who Norris was?  But you don't  have\nto, do you?\n\n>No I can't for the reasons I gave above. I'm in the same boat as Jason and I\n>grew up with the current divisonal names and learned them when I was about \n>10 years old and who played in what division. If a 10 year old _American_\n>can learn this why would it be hard for an \"Occasional Fan\" to pick up \n>on who plays in what division?\n\nSo you don't feel that you should have to make the effort to  remember\nthat  Vancouver  plays in the West division?  (Or Pacific, or whatever\nother intuitively understandable moniker is chosen.)\n\n>>Oh.  Now I see your point.  Your intention has been to alert us to the erosion\n>>of purity.  I'll bet you like hockey because it's, for the most part, played\n>>by whites of European extraction. \n\n>Probably not. In my case I'm sure of this. What you said would be like me\n>saying that All Maple Leafs fans are as biased, closed minded, ignorant,\n\nAnd of course you neatly deleted Jason's  jingoistic  rant  about  the\ngame  losing  its  \"Canadianization\".   Quoting me out of context does\nmore to erode your credibility than it  does  mine.   My  position  is\nclearly  progressive  and  is anything but \"biased, closed minded, ig-\nnorant\".  Arrogant, I will grant you.\n\n>arrogant, and moronic as you.  Just because someone A) doesn't like what\n>Mr Basketball is doing, B) voices their opinion. and C) Likes the senerio of\n>you going to Antartica does not mean that you have the right to insult them.\n\nNice try John.  But for a flame to be truly effective you have to\ndisplay  at  least  enough  intelligence  to  earn  your target's\nrespect.\n\ncordially, as always,\n\nrm \n\n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2013, "properties": {"category": "rec.motorcycles", "text": "From: txd@ESD.3Com.COM (Tom Dietrich)\nSubject: Re: Shaft-drives and Wheelies\nDistribution: rec\nLines: 18\nNntp-Posting-Host: able.mkt.3com.com\n\nxlyx@vax5.cit.cornell.edu writes:\n\n>Is it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n\nNo, it's not possible to countersteer either.\n\n(for the humor impared :{P PPhhhhhtttttt!)\n\n*********************************************************************\n'86 Concours.....Sophisticated Lady            Tom Dietrich             \n'72 1000cc Sportster.....'Ol Sport-For sale      DoD # 055\n'79 SR500.....Spike, the Garage Rat             AMA #524245\nQueued for an M900!!                           FSSNOC #1843\nTwo Jousts and a Gather, *BIG fun!*            1KSPT=17.28%                     \nMa Bell (408) 764-5874               Cool as a rule, but sometimes...\ne-mail txd@Able.MKT.3Com.COM                     (H. Lewis)          \nDisclaimer: 3Com takes no responsibility for opinions preceding this.\n*********************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2014, "properties": {"category": "comp.windows.x", "text": "From: min@stella.skku.ac.KR (Hyoung Bok Min)\nSubject: subscribe\nOrganization: The Internet\nLines: 3\nTo: expert@expo.lcs.mit.edu\n\n\nsubscribe min@stella.skku.ac.kr\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2015, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Moraltiy? (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 34\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>>>>What if I act morally for no particular reason?  Then am I moral?  What\n>>>>if morality is instinctive, as in most animals?\n>>>Saying that morality is instinctive in animals is an attempt to \n>>>assume your conclusion.\n>>Which conclusion?\n>You conclusion - correct me if I err - that the behaviour which is\n>instinctive in animals is a \"natural\" moral system.\n\nSee, we are disagreeing on the definition of moral here.  Earlier, you said\nthat it must be a conscious act.  By your definition, no instinctive\nbehavior pattern could be an act of morality.  You are trying to apply\nhuman terms to non-humans.  I think that even if someone is not conscious\nof an alternative, this does not prevent his behavior from being moral.\n\n>>You don't think that morality is a behavior pattern?  What is human\n>>morality?  A moral action is one that is consistent with a given\n>>pattern.  That is, we enforce a certain behavior as moral.\n>You keep getting this backwards.  *You* are trying to show that\n>the behaviour pattern is a morality.  Whether morality is a behavior \n>pattern is irrelevant, since there can be behavior pattern, for\n>example the motions of the planets, that most (all?) people would\n>not call a morality.\n\nI try to show it, but by your definition, it can't be shown.\n\nAnd, morality can be thought of a large class of princples.  It could be\ndefined in terms of many things--the laws of physics if you wish.  However,\nit seems silly to talk of a \"moral\" planet because it obeys the laws of\nphyics.  It is less silly to talk about animals, as they have at least\nsome free will.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2016, "properties": {"category": "rec.sport.baseball", "text": "From: jbrown@stein.u.washington.edu (Jeffery Brown)\nSubject: Re: Early BBDDD Returns?\nOrganization: University of Washington, Seattle\nLines: 17\nNNTP-Posting-Host: stein.u.washington.edu\n\nIn article <1993Apr16.073051.9160@news.cs.brandeis.edu> st902415@pip.cc.brandeis.edu writes:\n>Just curious if anyone has started to standout early in the season in the\n>BB DDD this year....\n\nThe tater that Jack Morris served to Griffey the Younger in his first\nat-bat this year went 394 feet, if I remember right (I'll have to check\nmy scorecard at home).  I think that's the longest so far in the Kingdome\nthrough the first stand (five games) there.  A weak showing, despite some\npromising taterball candidates ... Ben McDonald, Rich DeLucia, and the\nrest of the Mariner bullpen ... making appearances.\n\nAnyone have the tape-measure value for Omar Vizquel's grand slam in the\nSkydome?\n---\nJeff Brown         Big Enchilada of the Brown Bag Lunches\nAstronomy Dept.    jbrown@u.washington.edu\nU. of Washington   jbrown@phast.phys.washington.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2017, "properties": {"category": "talk.politics.guns", "text": "From: guy@idacom.hp.com (Guy M. Trotter)\nSubject: Re: guns in backcountry? no thanks\nOrganization: IDACOM, A division of Hewlett-Packard\nLines: 14\n\n\nHi,\n\nIn Canada, any gun that enters a National Park must be sealed (I think it's a\nsmall metal tag that's placed over the trigger).  The net result of this is\nthat you _can't_ use a gun to protect yourself from bears (or psychos) in the\nNational Parks.  Instead, one has to be sensitive to the dangers and annoyances\nof hiking in bear country, and take the appropriate precautions.\n\nI think this policy makes the users of the National Parks feel a little closer\nto Nature, that they are a part of Nature and, as such, have to deal with\nnature on it's own terms.\n\nGuy\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2018, "properties": {"category": "talk.religion.misc", "text": "From: mcelwre@cnsvax.uwec.edu\nSubject: THE DIVINE MASTERS\nOrganization: University of Wisconsin Eau Claire\nLines: 208\n\n          \n\n                             THE DIVINE MASTERS       \n      \n               Most Christians would agree, and correctly so, that \n          Jesus Christ was a Divine Master, and a projection of God \n          into the physical world, God Incarnate. \n          \n               But there are some very important related facts that \n          Christians are COMPLETELY IGNORANT of, as are followers of \n          most other world religions. \n           \n               First, Jesus Christ was NOT unique, John 3:16 NOTWITH-\n          STANDING.  There is ALWAYS at least one such Divine Master \n          (God Incarnate) PHYSICALLY ALIVE in this world AT ALL TIMES, \n          a continuous succession THROUGHOUT HISTORY, both before and \n          after the life of Jesus. \n    \n               The followers of some of these Masters founded the \n          world's major religions, usually PERVERTING the teachings of \n          their Master in the process.  Christians, for example, added \n          THREATS of \"ETERNAL DAMNATION\" in Hell, and DELETED the \n          teaching of REincarnation. \n       \n               Secondly, and more importantly, after a particular \n          Master physically dies and leaves this world, there is \n          NOTHING that He can do for ANYbody except for the relatively \n          few people that He INITIATED while He was still PHYSICALLY \n          alive.  (THAT IS SIMPLY THE WAY GOD SET THINGS UP IN THE \n          UNIVERSES.)                             \n\n               Therefore, all those Christians who worship Jesus, and \n          pray to Jesus, and expect Jesus to return and save them from \n          their sins, are only KIDDING THEMSELVES, and have allowed \n          themselves to be DUPED by a religion that was mostly \n          MANUFACTURED by the Romans. \n      \n               And emotional \"feelings\" are a TOTALLY DECEIVING \n          indicator for religious validity. \n    \n               These things are similarly true for followers of most \n          other major world religions, including Islam. \n     \n               Thirdly, the primary function of each Master is to tune \n          His Initiates into the \"AUDIBLE LIFE STREAM\" or \"SOUND \n          CURRENT\", (referred to as \"THE WORD\" in John 1:1-5, and as \n          \"The River of Life\" in Revelation 22:1), and to personally \n          guide each of them thru the upper levels of Heaven while they \n          are still connected to their living physical bodies by a \n          \"silver cord\". \n    \n               True Salvation, which completes a Soul's cycles of \n          REincarnation in the physical and psychic planes, is achieved \n          only by reaching at least the \"SOUL PLANE\", which is five \n          levels or universes above the physical universe, and this \n          canNOT be done without the help of a PHYSICALLY-Living Divine \n          Master. \n    \n               One such Divine Master alive today is an American, Sri \n          Harold Klemp, the Living \"Eck\" Master or \"Mahanta\" for the \n          \"Eckankar\" organization, now headquartered in Minneapolis, \n          (P.O. Box 27300;  zip 55427). \n    \n               Another Divine Master is Maharaj Gurinder Singh Ji, now \n          living in Punjab, India, and is associated with the \"Sant \n          Mat\" organization. \n      \n               One of the classic books on this subject is \"THE PATH OF \n          THE MASTERS\" (Radha Soami Books, P.O. Box 242, Gardena, CA  \n          90247), written in 1939 by Dr. Julian Johnson, a theologian \n          and surgeon who spent the last years of his life in India \n          studying under and closely observing the Sant Mat Master of \n          that time, Maharaj Sawan Singh Ji. \n    \n               Several of the Eckankar books, including some authored \n          by Sri Paul Twitchell or Sri Harold Klemp, can be found in \n          most public and university libraries and some book stores, or \n          obtained thru inter-library loan.  The book \"ECKANKAR--THE \n          KEY TO SECRET WORLDS\", by Sri Paul Twitchell, is ANOTHER \n          classic. \n    \n               Many Christians are likely to confuse the Masters with \n          the \"Anti-Christ\", which is or was to be a temporary world \n          dictator during the so-called \"last days\".  But the Masters \n          don't ever rule, even when asked or expected to do so as \n          Jesus was. \n    \n               People who continue following Christianity, Islam, or \n          other orthodox religions with a physically-DEAD Master, will \n          CONTINUE on their cycles of REincarnation, between the \n          Psychic Planes and this MISERABLE physical world, until they \n          finally accept Initiation from a PHYSICALLY-LIVING Divine \n          Master. \n    \n          \n    \n          RE-INCARNATION\n          \n               The book \"HERE AND HEREAFTER\", by Ruth Montgomery, \n          describes several kinds of evidence supporting REincarnation \n          as a FACT OF LIFE, including HYPNOTIC REGRESSIONS to past \n          lives [about 50% accurate; the subconscious mind sometimes \n          makes things up, especially with a bad hypnotist], \n          SPONTANEOUS RECALL (especially by young children, some of \n          whom can identify their most recent previous relatives, \n          homes, possessions, etc.), DREAM RECALL of past life experi-\n          ences, DEJA VU (familiarity with a far off land while travel-\n          ing there for the first time on vacation), the psychic read-\n          ings of the late EDGAR CAYCE, and EVEN SUPPORTING STATEMENTS \n          FROM THE CHRISTIAN BIBLE including Matthew 17:11-13 (John the \n          Baptist was the REINCARNATION of Elias.) and John 9:1-2 (How \n          can a person POSSIBLY sin before he is born, unless he LIVED \n          BEFORE?!).  [ ALWAYS use the \"KING JAMES VERSION\".  Later \n          versions are PER-VERSIONS! ] \n          \n               Strong INTERESTS, innate TALENTS, strong PHOBIAS, etc., \n          typically originate from a person's PAST LIVES.  For example, \n          a strong fear of swimming in or traveling over water usually \n          results from having DROWNED at the end of a PREVIOUS LIFE.  \n          And sometimes a person will take AN IMMEDIATE DISLIKE to \n          another person being met for the first time in THIS life, \n          because of a bad encounter with him during a PREVIOUS \n          INCARNATION. \n\n               The teaching of REincarnation also includes the LAW OF \n          KARMA (Galatians 6:7, Revelation 13:10, etc.).  People would \n          behave much better toward each other if they knew that their \n          actions in the present will surely be reaped by them in the \n          future, or in a FUTURE INCARNATION! \n\n\n\n          \"2nd COMINGS\"\n\n               If a Divine Master physically dies (\"translates\") \n          before a particular Initiate of His does, then when that \n          Initiate physically dies (\"translates\"), the Master will meet \n          him on the Astral level and take him directly to the Soul \n          Plane.  This is the ONE AND ONLY correct meaning of a 2nd \n          Coming.  It is an INDIVIDUAL experience, NOT something that \n          happens for everyone all at once.  People who are still \n          waiting for Jesus' \"2nd Coming\" are WAITING IN VAIN. \n    \n          \n          \n          PLANES OF EXISTENCE\n\n               The physical universe is the LOWEST of at least a DOZEN \n          major levels of existence.  Above the Physical Plane is the \n          Astral Plane, the Causal Plane, the Mental Plane, the Etheric \n          Plane (often counted as the upper part of the Mental Plane), \n          the Soul Plane, and several higher Spiritual Planes.  The \n          Soul Plane is the FIRST TRUE HEAVEN, (counting upward from \n          the Physical).  The planes between (but NOT including) the \n          Physical and Soul Planes are called the Psychic Planes. \n    \n               It is likely that ESP, telepathy, astrological \n          influences, radionic effects, biological transmutations [See \n          the 1972 book with that title.], and other phenomena without \n          an apparent physical origin, result from INTERACTIONS between \n          the Psychic Planes and the Physical Plane. \n    \n               The major planes are also SUB-DIVIDED.  For example, a \n          sub-plane of the Astral Plane is called \"Hades\", and the \n          Christian Hell occupies a SMALL part of it, created there \n          LESS THAN 2000 YEARS AGO by the EARLY CATHOLIC CHURCH by some \n          kind of black magic or by simply teaching its existence in a \n          THREATENING manner.  The Christian \"Heaven\" is located \n          elsewhere on the Astral Plane.  Good Christians will go there \n          for a short while and then REincarnate back to Earth. \n          \n          \n          \n          SOUND CURRENT vs. BLIND FAITH\n\n               The Christian religion demands of its followers an \n          extraordinary amount of BLIND FAITH backed up by little more \n          than GOOD FEELING (which is TOTALLY DECEIVING). \n       \n               If a person is not HEARING some form of the \"SOUND \n          CURRENT\" (\"THE WORD\", \"THE BANI\", \"THE AUDIBLE LIFE STREAM\"), \n          then his cycles of REINCARNATION in this MISERABLE world WILL \n          CONTINUE. \n    \n               The \"SOUND CURRENT\" manifests differently for different \n          Initiates, and can sound like a rushing wind, ocean waves on \n          the sea shore, buzzing bees, higher-pitched buzzing sound, a \n          flute, various heavenly music, or other sounds.  In Eckankar, \n          Members start hearing it near the end of their first year as \n          a Member.  This and other experiences (such as \"SOUL TRAVEL\") \n          REPLACE blind faith. \n    \n\n\n               For more information, answers to your questions, etc., \n          please consult my CITED SOURCES (3 books, 2 addresses). \n\n\n\n               UN-altered REPRODUCTION and DISSEMINATION of this \n          IMPORTANT Information is ENCOURAGED. \n\n\n                                           Robert E. McElwaine\n                                           2nd Initiate in Eckankar,\n                                              (but not an agent thereof)\n\n         \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2019, "properties": {"category": "talk.religion.misc", "text": "From: mathew@mantis.co.uk (mathew)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Mantis Consultants, Cambridge. UK.\nLines: 19\nX-Newsreader: rusnews v1.01\n\nfrank@D012S658.uucp (Frank O'Dwyer) writes:\n> I am not a Christian, however I suspect that all flavours of \n> Christianity hold that (a) objective morality exists and (b) their\n> particular interpretation of scripture/revelation/TV is a goodly glimpse\n> of it.  That they may all disagree about (b) says nothing about the truth \n> or falsehood of (a).\n\nActually, they generally claim that (b) their particular interpretation of\nscripture/revelation *is* this objective morality.  That there are two\nconflicting versions of this objective morality does tell us something about\n(a).  It tells us at least one fake objective morality exists.\n\nThe next logical step is to deduce that any given religion's objective\nmorality could be the fake one.  So caveat emptor.\n\n\nmathew\n-- \nAtheism: Anti-virus software for the mind.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2020, "properties": {"category": "talk.politics.mideast", "text": "From: oyalcin@iastate.edu (Onur Yalcin)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: Iowa State University, Ames, IA\nLines: 28\n\nIn article <1993Apr20.214322.8698@kpc.com> henrik@quayle.kpc.com  writes:\n>In article <1993Apr20.131336@IASTATE.EDU>, oyalcin@IASTATE.EDU (Onur Yalcin) writes:\n>OY] ...[deleted]...\n>OY] \n>OY] If you are really interested, I can provide you with a number of references\n>OY] on the issue.  Just send me EMail for that.  \n>\n>\tYou think I am that STUPID to ask you for REFERENCES !  NOT !\n>\tI have many GREEK friends that I could ask for the INFO if I\n>\tneeded. I have already read many articles and DO NOT need\n>\tyour help. Boy, how generous !!\n>\n\nThere is a very narrow margin of stupidity between accepting my references and\nthose of the Greeks, and you just said you'd rather do the latter! That's fine\nwith me. I was sincere in my offer, but this saves me the effort. It doesn't\ntake a half-brained man to go to any library and check out a bunch of sources\nof decent objectivity. Just ask a good friend for help. !:-)\n\n\n\"Stay on these roads,\"\n\nOnur Yalcin\n-- \nOnur Yalcin \noyalcin@iastate.edu\n\n\"Un punto in piu`\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2021, "properties": {"category": "rec.motorcycles", "text": "From: tony@morgan.demon.co.uk (Tony Kidson)\nSubject: Re: What is it with Cats and Dogs ???! \nDistribution: world\nOrganization: The Modem Palace\nReply-To: tony@morgan.demon.co.uk\nX-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)\nLines: 21\n\nIn article <1qk3mqINN72e@emory.mathcs.emory.edu> gnome@pd.org writes:\n\n>james.bessette (jimbes@cbnewsj.cb.att.com) wrote:\n>>In article <6130328@hplsla.hp.com> kens@hplsla.hp.com (Ken Snyder) writes:\n>>Ask the breeder why they also chase BMWs also.\n>\n>Cam chain.\n>\n\nIn that case why do they chase ST1100s & Goldwings?\n\nTony\n\n\n+---------------+------------------------------+-------------------------+\n|Tony Kidson    | ** PGP 2.2 Key by request ** |Voice +44 81 466 5127    |\n|Morgan Towers, |  The Cat has had to move now |E-Mail(in order)         |\n|Morgan Road,   |  as I've had to take the top |tony@morgan.demon.co.uk  |\n|Bromley,       |  off of the machine.         |tny@cix.compulink.co.uk  |\n|England BR1 3QE|Honda ST1100 -=<*>=- DoD# 0801|100024.301@compuserve.com|\n+---------------+------------------------------+-------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2022, "properties": {"category": "soc.religion.christian", "text": "From: jkellett@netcom.com (Joe Kellett)\nSubject: Re: sex education\nOrganization: Netcom\nLines: 45\n\nIn article <Apr.8.00.57.31.1993.28227@athos.rutgers.edu> jviv@usmi01.midland.chevron.com (John Viveiros) writes:\n>It seems I spend a significant amount of my time correcting errors about\n>the reliability tests for condoms and abstinence.  A few years ago I saw\n>that famous study that showed a \"10% failure rate\" for condoms.  The\n>same study showed a 20% failure rate for abstinence!!  That is, adult\n>couples who relied on abstinence to prevent pregnancy got pregnant in\n>alarming numbers--they didn't have the willpower to abstain.  And we're\n>thinking that this will work with high school kids?!?\n\nI am told that Planned Parenthood/SIECUS-style \"values-free\" methods, that\nteach contraceptive technology and advise kids how to make \"choices\",\nactually _increase_ pregnancy rates. I posted a long article on this a while\nback and will be happy to email a copy to any who are interested.  The\narticle included sources to contact for information on research verifying\nthese statements, and an outstanding source for info on acquiring\nabstinence-related curricula even in single-copy quantities for home use.\n\nThe same research produced the results that abstinence-related curricula\nwere found to _decrease_ pregnancy rates in teens.  I assume that it is\nreasonable to assume that the AIDS rate will fluctuate with the pregnancy\nrate.\n\nThe difference is not in \"contraceptive technology\" but in the values taught\nto the children.  The PP/SIECUS curricula taught the kids that they have\nlegitimate choices, while the abstinence related curricula taught them that\nthey did _not_ have _legitimate_ choices other than abstinence.  It is the\nvalues system that is the strongest determinent of the behavior behavior of\nthese kids.\n\nDespite the better track record of abstinence-related curricula, they are\nsuppressed in favor of curricula that produce an effect contrary to that\ndesired.  \n\nQuestion for further discussion (as they say in the textbooks):  Why don't\nwe teach \"safe drug use\" to kids, instead of drug abstinence?  Isn't it\nbecause we know that a class in \"how to use drugs safely if you _choose_ to\nuse drugs\" would increase drug use?  Why isn't \"drug abstinence education\"\nbarred from schools because it teaches \"religion\"?  Aren't we abandoning\nthose children who will use drugs anyway, and need instruction in their safe\nuse?\n\n\n-- \nJoe Kellett\njkellett@netcom.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2023, "properties": {"category": "sci.space", "text": "From: ajjb@adam4.bnsc.rl.ac.uk (Andrew Broderick)\nSubject: Re: Solar Sail Data\nKeywords: Solar Sail\nOrganization: Rutherford Appleton Lab, UK\nLines: 79\n\nIn article <1993Apr15.051746.29848@news.duc.auburn.edu> snydefj@eng.auburn.edu writes:\n>\n>I am looking for any information concerning projects involving Solar\n> Sails\n\nI was at an interesting seminar at work (UK's R.A.L. Space Science\nDept.) on this subject, specifically on a small-scale Solar Sail\nproposed as a student space project. The guy giving the talk was keen to\ngenerate interest in the project. I'll typein the handout he gave out at\nthe meeting. Here goes : \n\n\t\t\tThe Microlight Solar Sail\n\t\t\t-------------------------\n\n1. Introduction\nThe solar sail is a well-established concept. Harnessing the pressure of\nsunlight, a spacecraft would have unlimited range. In principle, such a\nvehicle could explore the whole Solar System with zero fuel consumption.\n\nHowever it is more difficult to design a practical solar sail than most\npeople realize. The pressure of sunlight is only about one kilogram per\nsquare kilometer. Deploying and controlling the large area of aluminized\nfabric which would be necessary to transport a 'conventional' type\nspacecraft is a daunting task. This is why, despite the potential of hte\nidea, no such craft has actually been launched to date.\n\n2.Design\nRecent advances in microelectronics make possible a different concept: a\ntiny sail just a few metres in diameter which could be controlled purely\nbe electronics, with no mechanical parts. Several attitude control\nmethods are feasible: for example the pressure sunlight exerts on a\npanel of solar cells varies according to whether power is being drawn.\n\nThe key components of the craft will be a minute CCD camera developed at\nEdinburgh University which can act as both attitude sensor and data\ngathering device; solar cells providing ~1 watt power for control and\ncommunication; and a directional radio antenna etched onto the surface\nof the sail itself. Launched as a piggyback payload, the total cost of\nthe mission can be limited to a few tens of thousands of dollars.\n\n3.Missions\nThe craft would be capable of some ambitious missions. For example:\na) It could rendezvous with a nearby asteroid from the Apollo or Amor\ngroups. Closeup pictures could be transmitted back to Earth at a low bit\nrate.\nb) It could be steered into a lunar polar orbit. Previously unobserved\nareas around the lunar poles could be viewed. By angling the sail to\nreflect sunlight downwards, polar craters whose bases never receive\nsunlight could be imaged. Bright reflections would confirm that\nvolatiles such as water ice have become trapped in these\nlocations.[Immensely valuable information for setting up a manned lunar\nbase, BTW]\nc) It could be sent to rendezvous with a small asteroid or comet\nnucleus. Impacting at low speed, a thin wire probe attached to the craft\ncauses it to rebound while capturing a tiny sample is a sharp-edged\ntube, like performing a biopsy. Returning to Earth, the sail acts as an\nideal re-entry parachute: load per unit area 20 gm/m2 ensures that heat\nis reradiated so efectively that the sail temperature cannot exceed ~300\ndeg C. The material sample is recovered, enclosed in a small insulating\ncontainer.\n\nContact: Colin Jack                              Tel. 0865-200447\nOxford Mathematical Designs, 131 High Street, Oxford OX1 4DH, England\n\n--------------------------------\n\nThis guy would love to hear from anyone interested in this project or\nseeking details or anything, and would be most happy to send you more\ninformation.\n\n\tAndy\n\n\n\n-- \n                                  ----------------------------------- \nAndy Jonathan J. Broderick,      | \"I have come that they might have |\nRutherford Lab., UK              |  life, and have it to the full\"   |\nMail : ajjb@adam2.bnsc.rl.ac.uk  |  - Jesus Christ                   |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2024, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: Why DC-1 will be the way of the future.\nOrganization: Texas Instruments Inc\nLines: 22\n\nIn <1r6ub0$mgl@access.digex.net> prb@access.digex.com (Pat) writes:\n\n>In article <1993Apr22.164801.7530@julian.uwo.ca> jdnicoll@prism.ccs.uwo.ca (James Davis Nicoll) writes:\n>>\tHmmm. I seem to recall that the attraction of solid state record-\n>>players and radios in the 1960s wasn't better performance but lower\n>>per-unit cost than vacuum-tube systems.\n>>\n\n\n>I don't think so at first,  but solid state offered  better reliabity,\n>id bet,  and any lower costs would be only after the processes really scaled up.\n\nCareful.  Making statements about how solid state is (generally) more\nreliable than analog will get you a nasty follow-up from Tommy Mac or\nPat.  Wait a minute; you *are* Pat.  Pleased to see that you're not\nsuffering from the bugaboos of a small mind.  ;-)\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2025, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Deuterocanonicals, esp. Sirach\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 132\n\nDave Davis writes:\n\n> Let my state my point as provocatively as possible. :-)\n \n> After going through several study Bibles, I'm leaning heavily towards >the \n> assertion that _Sirach_ ('The Wisdom of Ben Sira' or 'Ecclesiasticus')\n> is directly referenced by _James_ - in fact, I think \n> Sirach is more directly referenced by James than _Job_ or _Ruth_ is \n> referenced in any NT verse I've seen.\n\nGood point.  The New Testament does not quote Ezra, Nehemiah, Esther,\nRuth, Job, Ecclesiastes, or Song of Songs, just as it does not quote\nfrom the Deuterocanon.  But if the non-quotation of the former does not\ndisqualify them, neither does the non-quotation of the later.  And the\nWisodm of Solomon was quite clearly an influence on St. Paul, especially\nin the letter to the Romans (cf especially Romans 1.18-32 and Wisdom\n13-14).\n\n[stuff deleted]\n\n>I think everyone would agree that principles that cannot be \n>consistently applied are not very useful as principles. \n>So, if we are to exclude them (not accord them the authority of\n> Scripture) we would appear to require other reasons. What might these \n> reasons be? Tradition (always a fav. with Episcop.) ? Tradition is >equivocal\n> on this subject. Sirach, I believe, is in Vaticanus & Sinaiticus\n> I don't know if it is listed in the Muratorian canon \n> (the oldest list I know of).  Sirach (and the others) are discussed \n> by the Fathers, as Scripture, but not unanimously.\n \nTrue.  Not all accepted them as Scripture, though niether were all the\nbooks of the New Testament so accepted, which puts to the lie the whole\nargument of the books being excluded because they were debated and not\nuniversally accepted.  Hebrews, the Apocalypse, 2 Peter, Esther, and\nothers were debated at various times, but eventually retained.  As for\nthe Codexes you mention, both Vaticanus and Sinaitcus include the\nDeuterocanon, bothe of the New and Old Testaments, and Vaticanus (I\nthink) inlcudes 1 Clement, the Shepard of Hermas, and the Epistle of\nBaranabas.  As for the Muratorian Canon, it deals with the New Testament\nonly, though it is very valuable in its witness to those books.\n\n> My interim conclusion is that Protestant exclusion of \n> (at least one of) these writings is one of those 'traditions\n> of men' one hears of so often. They were excluded during the\n> Reformation, and that appears to be the reason many people\n> continue to exclude them.\n\n>Any takers?  I can be reasonable. (If all else fails :-)\n>Show me where I'm wrong.\n\n\tYou're not wrong!  It is a `tradition of men' to exlcude them, as I\nwill explain below.\n\n\"That nothing be read in the Church under the nmae of Divine Scripture,\nexcept the canonical Scriptures, and the canoncial Scriptures are -\nGenesis, Exodus, Leviticus, Numbers, Deuteronomy, Joshua, Judges, Ruth,\nFour books of Kingdoms [being 1&2 Samuel and 1&2 Kings], Two books of\nParalpomenon [being 1&2 Chronicles], Job, the Psalter of David, the Five\nbooks of Solomon [being Proverbs, Ecclesiastes, Song of Songs, Wisdom of\nSolomon, and [misatributed to him] the Wisdom of Jesus son of Sirach],\nThe books of the Twelve (Minor) Prophets, Isaiah, Jeremiah [being\nJeremiah, the Lamentations, Baruch, and the Letter, all of which were\nformerly counted as one], Ezekiel, Daniel, Tobit, Judith, Esther, Two\nbooks of Ezra [being Ezra and Nehemiah], Two books of Maccabees.  And of\nthe New Testament: Four books of the Gospel, One book of the Acts of the\nApostles, Thirteen letters of Paul the Apostle, One Letter of the same\nto the Hebrews, two of Peter the Apostle, Three of John, One of the\nApostle Jude, One of the Apostle James, One book of the Apocalypse of\nJohn.\"\n\t-Council of Hippo, Statute 36, (393 AD)\n\n\tThis same list was promulgated again at the Third Council of Carthage\n(397 AD), and at the Sixth Council of Carthage (419 AD) - at which\ncouncil the same list was enumerated with the words \"Because we have\nrecieved from the Fathers that these are the books to be read in the\nChurch.\"  Which ought to quiet those who assert \"in the name of Holy\nScripture we do understand those books of whose authority there was\nnever any doubt in the Church,\" as the Episcopal Church does in removing\nthe Deuterocanon from the realm of Scripture.  (Though the Episcopalians\nhold them in high regard and read them in the Church, they are not\ncounted as Scripture by them, and may not be used to prove dogma.  The\nLutherans hold out similarly.)\n\tEarlier mention of the so-called Apocrypha as divine scripture can also\nbe found, and below I inlcude only a portion of the quotes calling it\ndivine scripture that could be found among the writings of the Fathers.\n\n\"And this is the reason why the Law of the old Testament is reckoned as\nconsisting of twenty-two books: so that they may correspond to the\nnumber of letters [in the Hebrew alphabet].... It is to be noted also\nthat by adding to these Tobias and Judith, there are twenty-four books,\ncorresponding to the number of letters used by the Greeks.\"\n\t-St. Hillary of Poitiers, \"Commentaries on the Psalms,\" prologue, 15 (365 AD)\n\n\"The twenty-two books according to the Hebrews are .... Jeremiah, with\nLamentations and the Letter, reckoned as one .... and [also] there is\nMaccabees.\"\n\t-Origen, \"Commentaries on the Psalms,\" Psalm 1 (245 AD)\n\n\"Divine Scripture, addressing itself to those who love themselves and to\nthe boastful .... says most excellently [Baruch 3.16-19 follows].\"\n\t-St. Clement of Alexandria, \"The Instuctor of Children,\" 2, 3, 36, 3, (203 AD)\n\n\"....I learned accurately the books of the Old Testament ... Proverbs of\nSolomon, and also Wisdom ...\"\n\t-St. Melito of Sardes, fragment found in Eusebius' \"History of the\nChurch,\" and dating from crica 177 AD, Book 4, 26, 14\n\n\"It is likewise decreed: Now, indeed, we must treat of the divine\nScriptures: what the universal Catholic Church accepts and what she must\nshun.  The list of the Old Testament .... Wisdom, one book;\nEcclesiasticus, one book .... Tobit, one book .... Judith, one book; of\nMaccabees, two books.\"\n\t-St. Damasus I, Pope, \"The Decree of Damsus,\" section 2 (382 AD)\n\n\tI would think this enough, though more can be shown, that the Church\nhas always accepted the deutero-canon, though parts have been disputed\nby various persons.  For if disputes involving the New Testament\ndeutero-canon does not disqulaify those books (i.e. Hebrews, James, 2\nPeter, 2&3 John, Jude, Revelation) in Protestant eyes, than neither\nshould it disqulaify the Old Testament books.  And I must point out that\nthe Jews only drew up their canon in 90 AD, 60 years after the founding\nof the Christian Religion upon the Cross.  Why should we adhere to a\ncanon that was drawn up by the faithless, in reaction to the Chrsitian\nuse of the Greek Septuagint, which includes the deutero-canon?  As early\nas 150 AD, St. Justin had already accused the Jews of mutilating the\nCanon of Scripture by their removal of certain books.  Protestants\napparently prefer to think that God's revelation was limited by a decree\nof the Jews in the ordering of their (the Jews') faithless canon, and\nthat he could not use other people, like the Apostles, in drawing up the\ncanon.  The Apostles were most certain users of the Septuagint, as some\n80% of the Old Testament quotes use the wording of the Septuagint, and\nnot the Hebrew.  And the Septuagint includes the Deuterocanon.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2026, "properties": {"category": "rec.autos", "text": "Subject: 1993 Honda Civic\nFrom: <LIBEMC@BYUVM.BITNET>\nOrganization: Brigham Young University\nLines: 8\n\nI'd like to converse with anyone who has purchased a 1993 Honda\nCivic about their experience.  I'm new to the car buying game\nand would like to know what price I can expect to pay for a sedan\nafter bargaining.\n\nThanks in advance,\n\n-- Ellen\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.094+0000", "event": "documents", "entityId": 2027, "properties": {"category": "talk.politics.misc", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: The Manitoban Candidate\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 32\n\nsmith@phoneme.harvard.edu (Steven Smith) writes:\n>bross@sandbanks.cosc.brocku.ca (Brian Ross) writes:\n>\n>> In the world of the future, Bill Clinton will appoint Canadians to\n>> govern all American institutions (starting with the American health\n>> care system).  We will be benevolent Canadian dictators.\n>\n>With yet another tax being floated by the Clinton administration to\n>pay for new ``free'' social programs, I've really begun to suspect\n>that the Canadians, long resentful of their place in the American\n>shadow, brainwashed an American draft dodger who fled to Canada some\n>time between 1966 and 1968, tutored him in the ways of Canadian\n>socialism, awarded him with smokeless marijuana cigarettes when he got\n>the correct answers, then returned him to the states (under the\n>control of the domineering wife assigned to his case) to attain high\n>public office and destroy the evil individualistic and free market\n>forces in America, thus shaping America in the Canadian image.\n\n\nAnd not only that, made a second clone from the same tissue sample\nafter that of said domineering wife, to run at the helm of the\nmore-pro-business party under guise of more free trade ... and\nshe did inhale, many times, to boot ...\n\n(-; (-; (-; \n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2028, "properties": {"category": "rec.autos", "text": "Subject: curious about you\nFrom: Maria Alice Ruth <MAO111@psuvm.psu.edu>\nOrganization: Penn State University\nLines: 20\n\nPlease satisfy my curiosity. I'm interested in finding out who is using the\ne-mail system. Please do not flood me with mail after April 21st. Thanks!\nMaria Alice Ruth  mao111@psuvm.bitnet or @psuvm.psu.edu\n\n1. Are you male or female?\n\n2. How long have you been using the e-mail system?\n\n3. How do you have access (at work, at school, etc)?\n\n4. Who taught you how to use the system? Is that person male or female?\n\n5. Have you helped anyone to learn the system? Was that person(s) male or\n   female?\n\n6. Which net did you find my questions on?\n\n7. Which other nets are you interested in?\n\n8. How often do you read/post to the system?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2029, "properties": {"category": "sci.med", "text": "From: x92lee22@gw.wmich.edu\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Western Michigan University\nLines: 33\n\nIn article <annick.735440726@cortex.physiol.su.oz.au>, annick@cortex.physiol.su.oz.au (Annick Ansselin) writes:\n> In <C5nFDG.8En@sdf.lonestar.org> marco@sdf.lonestar.org (Steve Giammarco) writes:\n> \n>>>\n>>>And to add further fuel to the flame war, I read about 20 years ago that\n>>>the \"natural\" MSG - extracted from the sources you mention above - does not\n>>>cause the reported aftereffects; it's only that nasty \"artificial\" MSG -\n>>>extracted from coal tar or whatever - that causes Chinese Restaurant\n>>>Syndrome.  I find this pretty hard to believe; has anyone else heard it?\n> \n> MSG is mono sodium glutamate, a fairly straight forward compound. If it is\n> pure, the source should not be a problem. Your comment suggests that \n> impurities may be the cause.\n> My experience of MSG effects (as part of a double blind study) was that the\n> pure stuff caused me some rather severe effects.\n> \n>>I was under the (possibly incorrect) assumption that most of the MSG on\n>>our foods was made from processing sugar beets. Is this not true? Are \n>>there other sources of MSG?\n> \n> Soya bean, fermented cheeses, mushrooms all contain MSG. \n> \n>>I am one of those folx who react, sometimes strongly, to MSG. However,\n>>I also react strongly to sodium chloride (table salt) in excess. Each\n>>causes different symptoms except for the common one of rapid heartbeat\n>>and an uncomfortable feeling of pressure in my chest, upper left quadrant.\n> \n> The symptoms I had were numbness of jaw muscles in the first instance\n> followed by the arms then the legs, headache, lethargy and unable to keep\n> awake. I think it may well affect people differently.\n\nWell, I think msg is made from a kind of plant call \"tapioca\" and not those\nstaff you mentiond above.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2030, "properties": {"category": "sci.space", "text": "From: flb@flb.optiplan.fi (\"F.Baube[tm]\")\nSubject: The Area Rule\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 12\n\nI read it refered to as the \"parabolic cross-section\" rule;\nthe idea was that if you plot the area of the fuselage cross-\nsection as a function of the point fore-and-aft along the \nfuselage, a plot that is a **paraboloid** minimizes somethin' \nor 'nother (to be technical about it).\n\n\n-- \n* Fred Baube (tm)         *  In times of intellectual ferment,\n* baube@optiplan.fi       * advantage to him with the intellect\n* #include <disclaimer.h> * most fermented\n* May '68, Paris: It's Retrospective Time !!  \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2031, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: Command Loss Timer (Re: Galileo Update - 04/22/93)\nKeywords: Galileo, JPL\nOrganization: Texas Instruments Inc\nLines: 25\n\nIn <1993Apr23.103038.27467@bnr.ca> agc@bmdhh286.bnr.ca (Alan Carter) writes:\n\n>In article <22APR199323003578@kelvin.jpl.nasa.gov>, baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n>|> 3.  On April 19, a NO-OP command was sent to reset the command loss timer to\n>|> 264 hours, its planned value during this mission phase.\n\n>This activity is regularly reported in Ron's interesting posts. Could\n>someone explain what the Command Loss Timer is?\n\nThe Command Loss Timer is a timer that does just what its name says;\nit indicates to the probe that it has lost its data link for receiving\ncommands.  Upon expiration of the Command Loss Timer, I believe the\nprobe starts a 'search for Earth' sequence (involving antenna pointing\nand attitude changes which consume fuel) to try to reestablish\ncommunications.  No-ops are sent periodically through those periods\nwhen there are no real commands to be sent, just so the probe knows\nthat we haven't forgotten about it.\n\nHope that's clear enough to be comprehensible. \n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2032, "properties": {"category": "sci.crypt", "text": "From: mcbay@clam.com (George McBay)\nSubject: Re: What the clipper nay-sayers sound like to me.\nDistribution: na\nOrganization: Clam Associates\nLines: 21\n\nIn article <1qsvfcINNq9v@dns1.NMSU.Edu> amolitor@moink.nmsu.edu (Andrew Molitor) writes:\n[A lot of this article has been deleted for space.]\n\n>   Look! This is clearly the first step toward outlawing our\n>   own screw thread specifications. If this madness isn't fought,\n>   tooth and nail, every step of the way, it'll be a crime to use\n>   screw threads other than those our Fearless Leaders so *graciously*\n>   define for us.\n\n\tThe Clipper standard *is* the first step toward outlawing other\nstrong encryption standards.  If the government didn't intend to outlaw\nother forms of encryption, than Clipper is just a big waste of time and money.\nWhy, you ask?  Because anyone who is transferring data that any government\nagency could use against him/her would be a total fool to use the Clipper\nsystem..So why add the backdoor-key if all lawbreakers will use alternate\nencryption methods? Because they assume they can just do away with everything\nelse.\n\tI, for one, am planning on boycotting any equipment that contains\nclipper technology.\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2033, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: lost in (TekHVC color) space\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 13\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nHi,\n\nxtici worked for my system.\nI'm using X11R5 pl 17 clientside only on a DEC 5000/240 on Ultrix 4.3\nMay be you have a serious floatingpoint compilation problem ?\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2034, "properties": {"category": "sci.med", "text": "From: dougb@comm.mot.com (Doug Bank)\nSubject: Do we need a Radiologist to read an Ultrasound?\nReply-To: dougb@ecs.comm.mot.com\nOrganization: Motorola Land Mobile Products Sector\nNntp-Posting-Host: 145.1.146.35\nLines: 28\n\nMy wife's ob-gyn has an ultrasound machine in her office.  When\nthe doctor couldn't hear a fetal heartbeat (13 weeks) she used\nthe ultrasound to see if everything was ok.  (it was)\n\nOn her next visit, my wife asked another doctor in the office if\nthey read the ultrasounds themselves or if they had a radiologist\nread the pictures.  The doctor very vehemently insisted that they\nwere qualified to read the ultrasound and radiologists were NOT!\n\nMy wife is concerned about this.  She saw a TV show a couple months\nback (something like 20/20 or Dateline NBC, etc.) where an expert\non fetal ultrasounds (a radiologist) was showing all the different\ndeffects that could be detected using the ultrasound.\n\nShould my wife be concerned?  Should we take the pictures to a \nradiologist for a second opinion? (and if so, where would we find\nsuch an expert in Chicago?)  We don't really have any special medical\nreason to be concerned, but if a radiologist will be able to see\nthings the ob-gyn can't, then I don't see why we shouldn't use one.\n\nAny thoughts?\n\n\n-- \nDoug Bank                       Private Systems Division\ndougb@ecs.comm.mot.com          Motorola Communications Sector\ndougb@nwu.edu                   Schaumburg, Illinois\ndougb@casbah.acns.nwu.edu       708-576-8207                    \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2035, "properties": {"category": "comp.graphics", "text": "From: u122743@twncu865.ncu.edu.tw\nSubject: QUESTION: Video Projector\nOrganization: Computer Center, NCU, Taiwan, R.O.C.\nLines: 15\n\nI am setting up a video-aid for a computer room for the teacher to share his\ndisplay with the class.\n\nI have seen people using video projector, TV sets and large monitor to do\npresentations before. I am told that there are three ways to connect video\nprojector: composite, Y/C & RGB.\n\nCan anyone explain to me the difference and their likely costs?\n\nPlease reply to my INETNET E-mail account as well as posting in bulletin:\nu129008@sparc20.nuc.edu.tw\n\nI also like to know if there are TELNET or KERMIT for windows.\n\nTim Chen\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2036, "properties": {"category": "sci.crypt", "text": "From: grady@netcom.com (1016/2EF221)\nSubject: Re: The [secret] source of that announcement\nOrganization: capriccioso\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 35\n\nI guess the cryptowranglers read this group too.  But of\ncourse I knew that because it is so easy to do.  There is\nnot a single doubt in my mind that every byte that passes\nevery significant gateway or 'bone is captured for the\ncolligation of data about __________?  (Maybe your name is here).\n\nMaybe we should start a newsgroup for the distribution of encrypted \nposts intended of members of affinity groups with a shared private\nkey.  For example at the coming up Cypherpunks meeting, a private\nkey corresponding to that particular meeting could be passed out\nby a moderator.  Minutes, followup comments to other participants,\nand so on could be posted to the alt.encrypted group for the use\nof the people who attended. Communiques intended by the group for\nnon-attendees could of course just be signed using the private key\nbut otherwises not encrypted.\n\nStarting a alt.encrypted newsgroup rather than just maintaining\nmailing lists is better for several reasons.  First, it would be\neasier to archive for people who might join a group \"late\" and\nwho might like to easily read earlier posts; second, traffic analysis\nto know exactly to whom an affinity message is directed would be foiled;\nthree, a newsgroup is much more public and would serve to publicize\navailable privacy measures on the internet.\n\nAnd it would be fun to accumulate a secret keyring full of such\nkeys -- it beats giving out t-shirts as a door prize.\n\nWe could send a copy of alt.encrypted directly to Judge William\nSessions or Admiral Studeman to save them the time of having it\ncollected for them.\n\n\n-- \ngrady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2037, "properties": {"category": "soc.religion.christian", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: Florida State University\nLines: 27\n\nI have been following this thread on talk.religion,\nsoc.religion.christian.bible-study and here with interest.  I am amazed at\nthe different non-biblical argument those who oppose the Sabbath present. \n\nOne question comes to mind, especially since my last one was not answered\nfrom Scripture.  Maybe clh may wish to provide the first response.\n\nThere is a lot of talk about the Sabbath of the TC being ceremonial. \nAnswer this:\n\nSince the TC commandments is one law with ten parts on what biblical\nbasis have you decided that only the Sabbath portion is ceremonial?\nOR You say that the seventh-day is the Sabbath but not applicable to\nGentile Christians.  Does that mean the Sabbath commandment has been\nannulled?  References please.\n\nIf God did not intend His requirements on the Jews to be applicable to\nGentile Christians why did He make it plain that the Gentiles were now\ngrafted into the commonwealth of Israel?\n\nDarius\n\n[Acts 15, Rom 14:5, Col 2:16, Gal 4:10.  I believe we've gotten into\na loop at this point.  This is one of those classic situations where\nboth sides think they have clear Scriptural support, and there's no\nobvious argument that is going to change anybody's mind.  I don't think\nwe're going anything but repeating ourselves.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2038, "properties": {"category": "comp.graphics", "text": "From: rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter)\nSubject: Re: Please Recommend 3D Graphics Library For Mac.\nOrganization: Boeing\nLines: 30\n\nIn article <1993Apr17.092051.19814@kth.se> d88-jwa@hemul.nada.kth.se (Jon Wtte) writes:\n>In <Z2442B4w164w@cellar.org> tsa@cellar.org (The Silent Assassin) writes:\n>\n>>> I'm building a CAD package and need a 3D graphics library that can handle\n>>> some rudimentry tasks, such as hidden line removal, shading, animation, etc.\n>>> \n>>> Can you please offer some recommendations?\n>\n>I think APDA has something called MacWireFrame which is a full\n>wire-frame (and supposedly hidden-line removal) library.\n>I think it weighs in at $99 (but I've been wrong on an order\n>of magnitude before)\n>\n\n I spoke with the author of MacWireFrame earlier today. The cost is $299, but there\n are no license royalties. His name is Eric Johnson in Sacramento, CA phone\n 916/737-1550. He doesn't have email. Very nice guy... very knowledgeable about\n graphics. Seems like he may have a decent package. It's an Object Pascal Framework\n that supposedly has a fairly complete set of geometry creation classes. \n I'm going to check it out and see if it's got what I need for my CAD package.\n\n I also found another package: 3D Graphic Tools by Micro System Options in Seattle.\n The number is: 206/868-5418, also no email. The package is strong at ray tracing,\n I'm not too sure about its geometry creation tools. I also need to look into this\n package some more. I also spoke with the author, Mark Owens, another nice\n guy that seems to know his business. The price is $249, no royalties.\n\nBobC\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2039, "properties": {"category": "misc.forsale", "text": "From: ttesta@kali.enet.dec.com (Tom Testagrossa)\nSubject: Re: psychnet\nReply-To: ttesta@kali.enet.dec.com (Tom Testagrossa)\nOrganization: Digital Equipment Corporation, Maynard, Ma.\nLines: 33\n\n\n--In article <1pfg45INNk23@skeena.ucs.ubc.ca>, okabe@unixg.ubc.ca (Ian Okabe) writes:\n\n****************************************************************\n*    //////                                ----------------------\n*   //   //  \"Electronic Networking For   /   PsychNet.Com      /\n*  //////    \"Professional Psychology.\"  /Serving Psychologists/\n* // sychNet     (1-800-541-2598)       /  World Wide         /\n*//                                    -----------------------\n************************************************************\n\n>Whats with this psychnet thing...its on just about everyones's\n>posting no matter where they post from. Its getting very annoying.\n>-- \n>Ian T. Okabe (okabe@unixg.ubc.ca)\n>Atmospheric Sciences, University of British Columbia, Vancouver, Canada\n\tIt's an experiment, place a not so subliminal, slightly\ncagey message in front of a viewer and see how long it takes to create a response, and what was the response...\n\tIt was the same thing with the \"Blow me\" message, only it had a\nquicker response time...and some unexpected responses along with the\nexpectedly negative ones...\n\tAnyone see how long that took?\n\t\tYours, in jest...\n\t\t\tTom T\n\t\n**********************************************************************\n* Tom Testagrossa -             E-MAIL:  ttesta@kali.enet.dec.com     *\n*                               US-mail: 132 Clarendon St Apt #2      *\n*                                        Fitchburg, Ma 01420 U.S.A.   *\n*                               Phone:  Work (508)493-0437 (Voicemail)*\n*                                       Home (508)342-2362            *\n* Ask me about my guitars...                                          *\n***********************************************************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2040, "properties": {"category": "comp.graphics", "text": "From: ruocco@ghost.dsi.unimi.it (sergio ruocco)\nSubject: Re: HOT NEW 3D Software\nKeywords: Imagine,3d\nOrganization: Computer Science Dep. - Milan University\nLines: 26\n\n\nI don't have nor Imagine nor Real 3d, but as old\nAmiga user I think you should take a look also to \nReal 3d 2.0 for the Amiga. I saw Imagine 2.0 on the\nAmiga for a long time at my friend's home, and\nI've seen R3D 2.0 in action at Bit.Movie 93 in Riccione,\nItaly (an Italian Computer Graphics Contest).\nMany professionals using 3d Studio on PC, SoftImage\nfor Silicon Graphics and Imagine on the Amiga were \n*VERY IMPRESSED* by the power of this programs.\nSorry, I've lost the posting with full description \nof features of this great program.\n\nFor more informations give a look in comp.sys.amiga.graphics.\n\nRepresentative of Activa International told me that\nit will be out in 2 weeks for the Amiga and that\nPC MS-Windows, Silicon Indigo and Unix version are \nunder development.\n\nCiao,\n\tSergio\n\n\n\n\n-- \nSergio Ruocco - ruocco@ghost.sm.dsi.unimi.it\nVia Di Vittorio, 4\nI-20019 Settimo Milanese Milano\nPhone: 0039-2-3283896\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2041, "properties": {"category": "alt.atheism", "text": "From: Nanci Ann Miller <nm0w+@andrew.cmu.edu>\nSubject: Re: Bible Quiz\nOrganization: Sponsored account, School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 14\n\t<kmr4.1582.734882394@po.CWRU.edu>\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <kmr4.1582.734882394@po.CWRU.edu>\n\nkmr4@po.CWRU.edu (Keith M. Ryan) writes:\n>         Would you mind e-mailing me the questions, with the pairs of answers?\n> I would love to have them for the next time a Theist comes to my door!\n\nI'd like this too... maybe you should post an answer key after a while?\n\nNanci\n\n.........................................................................\nIf you know (and are SURE of) the author of this quote, please send me\nemail (nm0w+@andrew.cmu.edu):\nIt is better to be a coward for a minute than dead for the rest of your\nlife.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2042, "properties": {"category": "soc.religion.christian", "text": "From: revdak@netcom.com (D. Andrew Kille)\nSubject: Re: Maybe?????\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 14\n\n: [I have some qualms about postings like this.  You might want to\n: engage in a bit more conversation with Joel before deluging \n: someone who doesn't expect it with cards.  --clh]\n\nI'd suggest that more than _some_ qualms are in order.  Without knowing\nanything about the situation, it is impossible to evaluate the\nappropriateness of writing.  Some folks will check, others with more\nzeal than time may not.\n\nIMHO, requests of this nature should be made only for oneself or for someone\nwho knows and approves of the idea.  Otherwise, it is intrusive and\ndisrespectful of the individual.\n\nrevdak@netcom.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2043, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mogul@uclink.berkeley.edu (Bret Mogilefsky)\nSubject: Re: Any good sound formats conversion program out there??\nOrganization: University of California, Berkeley\nLines: 34\nNNTP-Posting-Host: uclink.berkeley.edu\n\nIn article <edd392h.733700028@mings2.cc.monash.edu.au> edd392h@mings2.cc.monash.edu.au (YWI. Li) writes:\n>Hi all,\n>\n>Does anyone know if there is a good sound formats conversion program out\n>\n>there???  (Like PaintshopPro for picture formats conversion)\n>\n>Please send me a copy of your reply!!!\n>\n>thanks a lot\n>\n>Bel\n>\n\nHi...\n\n\tTHe best sound conversion program I've ever seen is SoundTool, which\nis shareware from Germany.  I found a copy somewhere in wuarchive.wustl.edu\na long time ago, but I don't know offhand what directory it was under.  It's\nGREAT at converting files of all types, including Mac, NExT, Sun, and\nvarious PC formats... It's also a great player and editor, with various\nspecial effects that put Windows' Sound Recorder to shame.  It requires a\ndriver for various sound cards... The only builtin one is for the pc speaker\n(and even that sounds pretty good), but if you're just using it to convert\nthings, you can convert them in SoundTool and then play them in Sound\nRecorder.\n\nGive it a try!\n\nBret\n-- \n* \"Why, that's the second    |  mogul@soda.berkeley.edu\t\t*\n*  biggest monkey head I've  |  mogul@ocf.berkeley.edu\t\t*\n*  ever seen!\"  -Guybrush    |  mogul@uclink.berkeley.edu\t*\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2044, "properties": {"category": "comp.windows.x", "text": "From: hoang1@litwin.com (Ted Hoang)\nSubject: Wcl 2.02\nOrganization: Litwin Process Automation\nLines: 17\n\nHi,\nI have a problem when compiled Wcl 2.02 in SCO ODT 2.0:\n\n\n        cc -c -Ox  -I.. -I/usr/include Xt4GetResL.c\nXt4GetResL.c\nXt4GetResL.c(47) : error C2065: '_XtConstraintBit' : undefined\n*** Error code 1\n\nAlthough I follow the instructions in file README_BUILD to build Wcl in SCO \nplatform, this problem didn't resolve.\n\nSo I have some questions related to this matter:\n\n  1. Does _XtConstraintBit exist in SCO ODT 2.0? ( Does _XtConstraintBit use\n      in X11R3 & X11R4? And What release does SCO ODT 2.0 use, X11R3 or X11R4?)\n  2. If not, Does someone know how to work around? \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2045, "properties": {"category": "sci.crypt", "text": "From: wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Sorcerer's Apprentice Cleaning Services\nIn-Reply-To: amanda@intercon.com's message of Mon, 19 Apr 1993 11:18:47 -0500\nNntp-Posting-Host: rainier.ho.att.com\nLines: 28\n\n   For example, I don't own a cordless phone.  With Clipper, I would.  If the \n   local men in blue really want to listen to me talk to my friends or order \n   pizza, I'm no worse off than I am now, and I don't have to worry about\n   local kids or nosy neighbors.\nI do tend to agree.  Sigh.\n\n   So, where can I buy a DES-encrypted cellular phone?  How much does it cost?\n\nOf course, if we didn't have government monopolies on cellular phone service,\nthere probably *would* be some available.\n\n   > How can you reconcile the administrations self proclaimed purpose of \n   > providing law enforcement with access to encrypted data without making \n   > the clipper system the only crypto available in the U.S... ?\n   The Second and Fourth Amendments do come to mind.  \n\nThe Second Amendment is especially apt, given the ITAR definitions of\ncrypto equipment as munitions, and the gun-control people's increasing\nability to define things as \"assault weapons\" and make them illegal.\nTriple-DES is obviously used for \"assault phones\", while\nCripple will be legal, and Triple-Cripple may fall into the gray area\nof \"illegally upgrading to an assault phone\"...\n\n--\n#\t\t\t\tPray for peace;      Bill\n# Bill Stewart 1-908-949-0705 wcs@anchor.att.com AT&T Bell Labs 4M312 Holmdel NJ\n#\t              No, I'm *from* New Jersey, I only *work* in cyberspace....\n# White House Commect Line 1-202-456-1111  fax 1-202-456-2461\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2046, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: Post Polio Syndrome Information Needed Please !!!\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 67\n\nKS> From: keith@actrix.gen.nz (Keith Stewart)\nKS>My wife has become interested through an acquaintance in Post-Polio Syndrome\nKS>This apparently is not recognised in New Zealand and different symptons ( eg\nKS>chest complaints) are treated separately. Does anone have any information\n\nI'm not sure that this condition is \"recognised\" anywhere (in the\nsense of a disease with diagnostic criteria, clear boundaries\nbetween it and other diseases, unique pathologic or physiologic\nfeatures, etc), but here goes with what many neurologists agree on.\n\nPost-polio syndrome patients have evidence of motor neuron disease\nby clinical examination, EMG, and muscle biopsy.  The abnormalities\nare mostly chronic (due to old polio) but there is evidence of\nongoing deterioration.  Clinically, the patients complain of\ndeclining strength and endurance with everyday motor tasks.\nMusculoskeletal pain is a nearly universal feature that doubtless\ncontributes to the impaired performance.  The examination shows\nmuscle weakness and atrophy.  The EMG shows evidence of old\ndenervation with reinnervation (giant and long-duration motor unit\naction potentials) *and* evidence of active denervation\n(fibrillation potentials).  The biopsy also shows old denervation\nwith reinnervation (fiber-type grouping) *and* evidence of active\ndenervation (small, angulated fibers with dense oxidative enzyme\nstaining) - but curiously, little or no group atrophy.\n\nPost-polio patients do not have ALS.  In ALS, there is clinically\nevident deterioration from one month to the next.  In post-polio,\nthe patients are remarkably stable in objective findings from one\nyear to the next.  Of course, there are patients who had polio\nbefore who develop genuine ALS, but ALS is no more common among\npolio survivors than among people who never had polio.\n\nThe cause of post-polio syndrome is unknown.  There is little\nevidence that post-polio patients have active polio virus or\ndestructive immunologic response to virus antigen.\n\nThere is no solid evidence that patients with post-polio have\nanything different happening to the motor unit (anterior horn cells,\nmotor axons, neuromuscular junctions, and muscle fibers) than\npatients with old polio who are not complaining of deterioration.\nBoth groups can have the same EMG and biopsy findings.  The reason\nfor these \"acute\" changes in a \"chronic\" disease (old polio) is\nunknown.  Possibly spinal motor neurons (that have reinnervated huge\nnumbers of muscle fibers) start shedding the load after several\nyears.\n\nThere are a couple of clinical features that distinguish post-polio\nsyndrome patients from patients with old polio who deny\ndeterioration.  The PPS patients are more likely to have had severe\npolio.  The PPS patients are *much* more likely to complain of pain.\nThey also tend to score higher on depression scales of\nneuropsychologic tests.\n\nMy take on this (I'm sure some will disagree):  after recovery from\nsevere polio there can be abnormal loading on muscles, tendons,\nligaments, bones, and joints, that leads to inflammatory and/or\ndegenerative conditions affecting these structures.  The increasing\npain, superimposed on the chronic (but unchanging) weakness, leads\nto progressive impairment of motor performance and ADL.  I am\nperhaps biased by personal experience of having never seen a PPS\npatient who was not limited in some way by pain.  I do not believe\nthat PPS patients have more rapid deterioration of motor units than\nnon-PPS patients (i.e., those with old polio of similar severity but\nwithout PPS complaints).\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n                                            \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2047, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rash@access.digex.com (Wayne Rash)\nSubject: Re: 17\" Monitors\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 21\nNNTP-Posting-Host: access.digex.net\n\nmikey@eukanuba.wpd.sgi.com (Mike Yang) writes:\n\n>In article <1qulqa$hp2@access.digex.net>, rash@access.digex.com (Wayne Rash) writes:\n>|> The F550iW is optimized for Windows.  It powers down when the screen\n>|> blanker appears, it powers down with you turn your computer off, and it\n>|> meets all of the Swedish standards.  It's also protected against  EMI from\n>|> adjacent monitors. \n\n>Thanks for the info.\n\n>|> Personally, I think the F550i is more bang for the buck right now.\n\n>How much more does the F550iW cost?\n\n>-----------------------------------------------------------------------\n>                 Mike Yang        Silicon Graphics, Inc.\n>               mikey@sgi.com           415/390-1786\n\nI think the difference is about 400 dollars, but I could be wrong.  These\nthings change between press time and publication.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2048, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: Nords 3 - Habs 2 in O.T. We was robbed!!\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nLines: 66\n\nIn article <18APR93.25909598.0086@VM1.MCGILL.CA> JBE5 <JBE5@MUSICB.MCGILL.CA> writes:\n>Aargh!\n>\n>Paul Stewart is the worst and most biased ref. presently in the NHL.\n>He called a total of 4 penalties on the Habs and one on the Nordiques.\n>The Nords' penalty came in O.T.  Stewart, being an ex-Nordique himself,\n>was looking to call penalties on the Habs while letting the Nords\n>get away with murder...WE WAS ROBBED!!!!\n\nNo.  Patrick Roy is the reason the game was lost, and Ron Hextall is the\nreason Quebec won.  Everybody said it would come down to goaltending, that\ngoaltending was the key, etc etc.  Well, the key doesn't quite fit if you're\nMontreal.  The Dionne penalty was kind of a cheesy call, but let's face it;\nhe literally left his feet to throw an elbow.  Blaming Stewart is just an\nexcuse to avoid facing the fact that Roy allowed what was one of the worst\ngoals he could possibly allow.  He even saw the whole shot, dammit.  Besides,\nStewart evened things up a bit by calling a Quebec penalty in OT.\n\nMontreal played a solid game (although they still don't know how to clear\ntraffic in front of the net; the loss of Schneider will hurt even more). \nNormally I would say that any team that blows a 2-goal lead with less than \nfive, let alone two, minutes to go in regulation time IN A PLAYOFF GAME \nESPECIALLY needs to be smacked upside their collective heads.  But I don't\nthink this was a team loss (although Keane should have been able to clear \nthe zone just prior to the first Quebec goal).  Roy is paid big money to \nplay.  He looked like a player in an industrial league on Sakic's shot.\n\nDemers should start Racicot in the next game.  If not that, he should let\nthe damn team read the papers for the next day or two....and maybe this\narticle, if possible.\n\n>Patrick Roy collapsed after letting in the tieing goal. He was shaky and\n>on his knees for the rest of the night.  The winning goal shouldn't have\n>gone in.\n\nI didn't think the wrap-around was as bad as the second goal.  I also didn't\nthink Scott Young should have gotten around the defender (can't remember who)\nin the first place.  But you are correct, it shouldn't have gone in\nregardless.\n\n>Oh well, at least the Bruins lost in O.T. also Ha, Ha!!--)\n\nYep.  Moog looked bad on Mogilny's goal with five seconds left in the second,\nIMO.  How about Neely though?   Holy shit, what a player.\n\nSpeaking of great players, man-oh-man can Quebec skate.  I haven't seen a\nteam so potent on the rush in a long time.  Watching them break out of their\nzone, especially Sundin, is a treat to watch.  They remind me of the Red \nArmy.  \n\nBut I still hate the team.\n\nOn the rest of the games:  Didn't St. Louis' winning goal come on a\npowerplay?  Penalties will cost Chicago dearly, especially against Detroit. \nSame goes for Calgary; very, very undisciplined.  When Marty McSorely is\nwaving guys to the bench to *avoid* fights, you know something's up.  New\nJersey was overmatched, Terreri's heroics notwithstanding.  Mario is\nunbelievable, and Jagr for some reason shows up in the playoffs.  But I \nhate that team anyway.\n\n\n\ndchhabra@stpl.ists.ca (pissed-off Habs fan)\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2049, "properties": {"category": "soc.religion.christian", "text": "From: wdburns@mtu.edu (BURNS)\nSubject: Interfaith weddings\nOrganization: CCLI Macintosh Lab, Michigan Tech University\nLines: 39\n\nHello everyone.\n\nLast week I posted a similar question to alt.wedding.  Now I come in\nsearch of a deeper-level answer.\n\nMy fiance is Lutheran and I am Catholic.  We plan on getting married in\nher church because she is living there now and I plan on moving there\nin a month or so.  I called my Catholic priest to find out what I needed\nto do in order for the marriage to be recognized by my church.\n\nNeedless to say that I have found that there is no \"hard and fast\" rule\nwhen it comes to how the Catholic law for interfaith weddings is interpreted.\nBut I'm pretty sure that we CAN get married without too much problem; the\ntrick lies in the letter of dispensation.\n\nBut that is not why I am here....\n\nWhat I'd like to know is: \n  What are the main differences between the Lutheran and Catholic religions?\n  My priest mumbled something about how the Eucharist was understood...\n  I have heard that if two religions combine soon, it would be these two.\n\nAny help would be appreciated...\n\nThanks so much!\n\nBill\n-- \n  Bill Burns  [ Internet: wdburns@mtu.edu ]  Mac Network System Administrator\n              [ AppleLink: SHADOW         ]  Apple Student Rep, MTU\nFirst we must band together as friends,\n     then mearcilessly crush our enemies into paste.\n\n[We've had enough Catholic/Protestant arguments recently that I'm not\ngoing to accept any renewals.  I suggest responses via email, unless\nthey are clearly non-controversial.  I would be happy to see positive\nsummaries of both important Catholic and Lutheran beliefs.  Among\nother things, they'd be useful for the FAQ collection.  But I'm not up\nfor yet another battle.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.095+0000", "event": "documents", "entityId": 2050, "properties": {"category": "sci.electronics", "text": "From: dclaar@cup.hp.com (Doug Claar)\nSubject: Los Angeles Freeway traffic reports\nNntp-Posting-Host: hprtnyc.cup.hp.com\nOrganization: Hewlett-Packard\nX-Newsreader: TIN [version 1.1 PL8.9]\nLines: 8\n\nWhile driving through the middle of nowhere, I picked up KNBR, AM 1070,\na clear-channel station based in Los Angeles. They had an ad \nclaiming that they were able to get traffic flow information from \nall of the thousands of traffic sensors that CalTrans has placed\nunder the pavement. Does CalTrans sell this info? Does KNBR have\nan exclusive? What's the deal?\n\n==Doug \"Former L.A. commuter\" Claar\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2051, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jerry@msi.com (Jerry Shekhel)\nSubject: Tape Backup Question\nOrganization: Molecular Simulations, Inc.\nX-Newsreader: TIN [version 1.1 PL8]\nX-Posted-From: asteroid.msi.com\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 18\n\nHello folks!\n\nI have an Archive XL5580 (internal QIC-80) tape drive, which is pretty\ncomparable to the Colorado Jumbo 250.  Since I have two floppy drives in\nmy system, I'm using a small card (not accelerated) made by Archive to \nattach my tape drive as a third floppy device.\n\nThe problem: Although the DOS-based QICstream software works just fine,\nboth the Norton and Central Point backup programs for Windows fail unless\nI switch the machine to non-turbo speed (I'm using a 486DX/33 EISA).  Since\nthe DOS software works, it can't be a hardware problem, can it?  Has anyone\nseen similar problems?  Any solutions?  Thanks in advance.\n--\n+-------------------+----------------------------+---------------------------+\n| JERRY J. SHEKHEL  | Molecular Simulations Inc. | Time just fades the pages |\n| Drummers do it... |     Burlington, MA USA     | in my book of memories.   |\n|    ... In rhythm! |        jerry@msi.com       |         -- Guns N' Roses  |\n+-------------------+----------------------------+---------------------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2052, "properties": {"category": "sci.electronics", "text": "From: schuch@phx.mcd.mot.com (John Schuch)\nSubject: Re: Radio Electronics Free information card\nNntp-Posting-Host: bopper2.phx.mcd.mot.com\nOrganization: Motorola Computer Group, Tempe, Az.\nLines: 73\n\nIn article <C5uLqG.I5@acsu.buffalo.edu> v064mb9k@ubvmsb.cc.buffalo.edu (NEIL B. GANDLER) writes:\n>\n>\tHow does the radio Electronics free information cards work.\n>Do they just send you some general information about the companies that\n>advertise in their magazine or does it also give you sign you up for a\n>catalog. \n\nThat depends entirely upon the advertiser whose number you circled.\nRadio Electronics compiles all of the cards, then each advertiser\ngets a computer printout of the names and addresses of all of the readers\nwho circled their number. Some magazines also provide the data on\nself-adhesive labels, and the really big magazines provide the\ndata on computer disk.\n\nThe advertiser decides what to do with the data they get. You will\nnotice that the Radio Electronics information card (commonly called\na \"bingo card\" in the industry) includes lines for a company name\nand a business phone number. My guess would be that the big, national\nadvertisers make a distinction between hobbiests and professionals as\nbest they can. For example, if you include Motorola as your company\nand include a business phone (and a mail stop), Tektronics will probably\nsend you a copy of their hard-bound catalog and have a sales engineer\ncall you about a week later. If you leave it blank, odds are they\nwill send you a slick brochure and direct you to a local retail\noutlet. Medium and small companies are more likely to send you th\ne whole catalog. And then some companies, like Digikey or Jameco, have\nnothing to mail out accept the catalog.\n\nA couple of other interesting points about bingo cards: Free, industry\nmagazines like EDN and such also log your card to their computer. They\nuse the information at least three ways. They note that you really do read\nthe magazine and are more likely to continue your subscription or push\nyou, through repeated mailings, to re-subscribe. They also compile\nhow many people requested which data for their marketing demographics.\nThis way thay can tell a prospective advertiser that \"23% of readers\nrequesting data were interested in capacitors.\" And finally, some\nmagazines rent lists of readers who request certain information. For\nexample, Tektronics can rent a list of everyone who requested information\nabout test equipment OTHER THAN TEKTRONIC's, in the past 6 months.\n\nThe other point, in the data the advertiser receives, many magazines\ninclude how many items you circled on the card. If they want, the\nadvertiser can attempt to cull out the \"literature collectors\" from\nthe serious potential customers.\n\n\"Can you say qualified sales leads? I thought you could.\"\n\nWhat's the BEST way for a hobbiest to deal with bingo cards?\n\n  Never circle more than 8 number on the card. If you want more\n  than 8 items, use the second card and mail it a couple of\n  weeks later.\n\n  If you are really, really serious and you really, really want\n  the information, CALL THE ADVERTISER AND ASK! This will also\n  cut about 15 days off the the response time. Virtually\n  everyone takes a voice on the phone more seriously than data\n  on a computer printout.\n\n  To help insure you keep getting a trade magazine that you're\n  not really \"qualified\" for, send in a bingo card at least every\n  other month and circle two or three numbers.\n\n  Include a business name and phone number, even if it's your house.\n  Advertisers almost never call. \n\nJohn Schuch\n  publisher of: The Arizona High-Tech Times\n                The Arizona Electrical Journal\n                The Arizona HVAC News\n  (all of which have bingo cards)\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2053, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: The Role of the National News Media in Inflaming Passions\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 44\n\nIn article <C5IAK2.5zH@murdoch.acc.Virginia.EDU>, gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy) writes:\n> In article <15377@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n> #But what came out,\n> #in much lower profile reporting, was that the \"victim\" was a\n> #prostitute, and the man had not paid her -- hence the false\n> #accusation.\n> \n> There was no evidence the woman in question was a prostitute, the\n> defense merely alledged that she was. Even Clayton knows the\n> difference. Err, perhaps Clayton doesn't know the difference. \n\nEvidence given for her prostitute status, besides the admittedly \nquestionable claim of the man on trial included:\n\n1. Prior employment in a number of massage parlors, with women who\nclaimed that she worked as a prostitute;\n\n2. Walking around a truck stop at 4:00 AM wearing a lace miniskirt,\na halter top, and no underwear of any sort;\n\n3. Not having a purse or other I.D. with her.\n\nNot enough to convict her, but enough to create reasonable doubt\nwhether a rape actually took place, or theft of services.\n\nAre you just ignorant, or lying again?\n\n> #the judge found that there was some credible evidence that the \n> #Marines were engaged in self-defense.\n> \n> No, the judge found that the prosecution did not carry out the burder\n> on proof. A small clipping from clarinews, under fair use guidelines: \n> \n> #\tNew Hanover District Court Judge Jacqueline Morris-Goodson ruled in\n> #the benchtrial that the state failed to carry its burden in proving the\n> #Marines acted to cause injury.\n\nThe accounts on the evening news indicated that they claimed self-\ndefense, and the judge agreed that they were so operating.\n\n> -Greg Hennessy, University of Virginia\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2054, "properties": {"category": "rec.motorcycles", "text": "From: tafi3@syma.sussex.ac.uk (Ian Deeley)\nSubject: Re: CB750 C with flames out the exhaust!!!!---->>>\nOrganization: University of Sussex\nLines: 25\n\nFrom article <C5quw0.Btq@ux1.cso.uiuc.edu>, by mikeh@ux1.cso.uiuc.edu (Mike Hollyman):\n> Hi, I have an 82 CB750 Custom that I just replaced the cylinder head gasket\n> on.  Now when I put it back together again, it wouldn't idle at all.  It was\n> only running on 2-3 cylinders and it would backfire and spit flames out the\n> exhaust on the right side.  The exhaust is 4-2 MAC.  I bought new plugs\n> today and it runs very rough and still won't idle.  I am quite sure the fine\n> tune knobs on the carbs are messed up.  I checked the timing, it was fine, so\n> I advanced it a little and that didn't help.  \n> \n> I assume the carbs need to be synched.  Can I buy a kit and do this myself?\n> If so, what kit is the best for the price.\n> \n> Any other suggestions?\n> \n\tI dont think its the carbs that are out, I would suspect that\nthe cam timing is out, & as you say that you had the head off, that\nwould make sense to me,\n\t\t\t\tIan.\n\n\tJust my 0.02 emu's worth.\n-- \nIan Deeley \t\t\t\t\"...Whatever you do will be\nSchool of Engineering\t   | |\t\tinsignificant, but its very\t\nUniversity of Sussex   \t--=oOo=--\timportant that you do it..\"\nEngland.\t\t\t\t\tAnon\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2055, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: What's so bad about the new playoff format?\nOrganization: University of Toronto Chemistry Department\nDistribution: na\nLines: 23\n\nIn article <115330@bu.edu> icop@csa.bu.edu (Antonio Pera) writes:\n>\n>   What's so bad about the new playoff format? Do you really believe teams\n>that finish fourth in their div. deserve to be in the playoffs? \n>With the new format, you have more of a chance to see more teams. Do you\n>really want to see the Bruins against the Sabres umpteen times or would\n>you rather see the Bruins and the Capitals in the secound round of playoffs?\n\nThere is really nothing inherently wrong with it but they tried it just\na little over a decade ago, and noone showed up for the early rounds in\nthe playoffs...whereas soon after they went to the divisional set-up\narenas were mostly filled in the early rounds.  \n\nThe empirical evidence of the last two decades is that more people will\nshow up to see the Bruins play the Sabre umpteen times than see the\nBruins play the Captials in the first round.\n\nMaybe hockey has increased in popularity sufficiently that this will\nno longer be the case.  The experiment is worthwhile with the uneven\ndistribution of the expansion teams, but I prefer the divisional \nplayoff.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2056, "properties": {"category": "sci.space", "text": "From: jennise@opus.dgi.com (Milady Printcap the goddess of peripherals)\nSubject: Looking for a little research help [ addendum]\nOrganization: Dynamic Graphics Inc.\nLines: 10\nDistribution: usa\nNNTP-Posting-Host: opus.dgi.com\n\nSorry but I forgot this ps.\n\nRight now my sight is getting news about two weeks behind so it's \nkind of necessary (to me) that any responses be sent to me directly.\n\n\nThanks a lot\n\nJennise\n     jennise@dgi.com  \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2057, "properties": {"category": "soc.religion.christian", "text": "From: cox@lambda.msfc.nasa.gov (Sherman Cox)\nSubject: Re: SDA Doctrinal Distinctives\nOrganization: NASA/MSFC\nLines: 21\n\nhealta@saturn.wwc.edu (TAMMY R HEALY) writes:\n\n>In article <Mar.17.02.04.45.1993.23612@athos.rutgers.edu> jodfishe@silver.ucs.indiana.edu (joseph dale fisher) writes:\n\n>|There is a book provided by the SDA which is entitled \"The Seventh Day\n>|Adventist Church believes\", or something like that. \n\n>The book is called \"27 basic fundamental beliefs\" or something very close to \n>that.  the number *IS* 27, not 30.  I have a copy at home (i'm away at \n>school.)\n\nActually the book is called \"Seventh Day Adventists believe...\"  And there\nare 27 basica beliefs.  I believe it is printed by the Reveiew and\nHerald Publishing Association.\n\n--\n\n\"Competition is the law of the jungle.\n Cooperation is the law of civilization.\" -- Eldridge Cleaver\n\nSherman Cox, II\t\tscox@uahcs2.cs.uah.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2058, "properties": {"category": "rec.motorcycles", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Re: Drinking and Riding\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 30\n\nIn article <C4wKBp.B9w@eskimo.com> maven@eskimo.com (Norman Hamer) writes:\n\n> What is a general rule of thumb for sobriety and cycling? Couple hours after\n>you \"feel\" sober? What? Or should I just work with \"If I drink tonight, I\n>don't ride until tomorrow\"?\n\nInteresting discussion.\n\nI limit myself to *one* 'standard serving' of alcohol if I'm\ngoing to ride. And mostly, unless the alcohol is something\nspecial (fine ale, good wine, or someone else's vsop), I usually\njust don't drink *any*.\n\nBut then alcohol just isn't really important to me, mainly\nfor financial reasons...\n\nAt least one of the magazines claims to follow the\naviation guideline of \"no alcohol whatsoever\" within\n24hrs of riding a 'company' bike.\n\nDon't remember which mag though, it was a few years ago.\n\nRegards, Charles (hicc.)\nDoD:0.001\nRZ350\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2059, "properties": {"category": "sci.med", "text": "From: uabdpo.dpo.uab.edu!gila005 (Stephen Holland)\nSubject: Re: diet for Crohn's (IBD)\nOrganization: Gastroenterology - Univ. of Alabama\nDistribution: usa\nLines: 36\n\nIn article <1r6g8fINNe88@ceti.cs.unc.edu>, jge@cs.unc.edu (John Eyles)\nwrote:\n> \n> \n> A friend has what is apparently a fairly minor case of Crohn's\n> disease.\n> \n> But she can't seem to eat certain foods, such as fresh vegetables,\n> without discomfort, and of course she wants to avoid a recurrence.\n> \n> Her question is: are there any nutritionists who specialize in the\n> problems of people with Crohn's disease ?\n> \n> (I saw the suggestion of lipoxygnase inhibitors like tea and turmeric).\n> \n> Thanks in advance,\n> John Eyles\n> jge@cs.unc.edu\n\nIf she is having problems with fresh vegetables, the guess is that there\nis some obstruction of the intestine.  Without knowing more it is not\npossible to say whether the obstruction is permanent due to scarring,\nor temporary due to swelling of inflammed intestine.  In general, there are\nno dietary limitations in patients with Crohn's except as they relate\nto obstruction.  There is no evidence that any foods will bring on \nrecurrence of Crohn's.  It is important to distinguish recurrence from\nrecurrent symptoms.  A physician would think of new inflammation as \nrecurrence, while pains from raw veggies just imply a narrowing of the\nintestine.  \n\nYour friend should look into membership in the Crohn's and Colitis \nFoundation of America.   1-800-932-2423\n\nGood luck to your friend.\n\nSteve Holland\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2060, "properties": {"category": "misc.forsale", "text": "From: Bob.Stettina@fquest.FidoNet.Org (Bob Stettina)\nSubject: NEW AIRCRAFT TU-154M\nLines: 42\n\n\n DJ> Subject: New aircraft TU-154M for leasing, set spare parts.\n>>>>>Category: Offers to leasing >>>>Headline: New Aircraft TU-154M\n>>>>\n>>>>Mr. Director Agabalaevich:\n>>>>\n>>>>BTW, are these guys out of their [....] minds, or was\n>>>>our propaganda so effective that they believe some\n>>>>netters could actually buy such stuff and land in\n>>>>their driveway? Too much soda pop, too quick...\n>>>\n>>Go look up Tu 154M, it should be in most AIRLINER hand-books.\n>>\n>>\n>>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n DJ> ~~\n>>Sgt. D.J. Morton                        Environmental Resource Sciences\n>>Hastings and Prince Edward Regiment     Trent University\n>>                                        Peterborough, Ontario\n>>                                        K9J 7B8  Canada\n DJ> There are a few things wrong with the potential sale of this \n DJ> aircraft: \n\n DJ> There is starting to be a glut of new aircraft on the market\n DJ> (Airlines are taking delivery, then mothballing their new \n DJ> planes). \n\n DJ> Unless the fuel efficiency is better than the Airbus 320 or \n DJ> Boeing 767, this plane is not economically feasible for the \n DJ> major players (airlines). Unless the price is real cheap, and \n DJ> you have an owner that doesn't care about fuel economy (Saudi \n DJ> Family, maybe??) sales ought to be pretty glim. \n\nUmmm...\n\nI'd be surprised if you couldn't find a gov't aid program to\nsubsidize and/or underwrite the lease...  that could make it\nquite an attractive arrangement...\n\nBizarre?  Yes.  Impossible?  Not really...\n\n... Life is like... an analogy!  Yeah!  That's the ticket!\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2061, "properties": {"category": "talk.religion.misc", "text": "From: jburrill@boi.hp.com (Jim Burrill)\nSubject: Re: Disillusioned Protestant Finds Christ\nOrganization: Idaho River Country, The Salmon, Payette, Clearwater, Boise, Selway, Priest.\nX-Newsreader: TIN [version 1.1.8 PL6]\nLines: 31\n\nJohn W. Redelfs (cj195@cleveland.Freenet.Edu) wrote:\n: \n: I am a Mormon.  I believe in Christ, that he is alive.  He raised himself\n: [Text deleted]\n:\n: I learned that the concept of the Holy Trinity was never taught by Jesus\n: Christ, that it was \"agreed to\" by a council of clergymen long after Christ\n: was ascended, men who had no authority to speak for him.\n:\nIf Jesus never taught the concept of the Trinity, how do you deal with the \nfollowing:   \n\n   Mat 28 18 Then Jesus came to them and said, \"All authority in heaven\n   and on earth has been given to me.\n\n   Mat 28 19 Therefore go and make disciples of all nations, baptizing\n   them in\u00b9 the name of the Father and of the Son and of the Holy Spirit,\n\n   Mat 28 20 and teaching them to obey everything I have commanded you.\n   And surely I am with you always, to the very end of the age.\" \n\nAlso Jesus speaking:\n\n   Act 1 5 For John baptized with\u00b9 water, but in a few days you will\n   be baptized with the Holy Spirit.\"\n\nI believe that you may have overlooked some key verses, that are crucial to\nthe Christian faith. \n\nJim Burrill\njburrill@boi.hp.com\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2062, "properties": {"category": "rec.sport.hockey", "text": "From: c5ff@jupiter.sun.csd.unb.ca (COOK  Charlie)\nSubject: NHL Summary parse results for games played Wed, April 14, 1993\nOrganization: University of New Brunswick\nLines: 147\n\nBoston                           2 2 0--4\nOttawa                           0 1 1--2\nFirst period\n     1, Boston, Roberts 5 (Juneau) 7:19.\n     2, Boston, Wiemer 1(Juneau, Oates) 17:47.\nSecond period\n     3, Boston, Neely 11 (Juneau, Murphy) 6:10.\n     4, Boston, Hughes 5 (Richer, Kimble) 7:55.\n     5, Ottawa, Archibald 9 (Rumble, Lamb) 11:37.\nThird period\n     6, Ottawa, Boschman 9 (Kudelski) 5:10.\n\nBoston: 4    Power play: 2-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nHughes             1    0    1\nJuneau             0    3    3\nKimble             0    1    1\nMurphy             0    1    1\nNeely              1    0    1\nOates              0    1    1\nRicher             0    1    1\nRoberts            1    0    1\nWiemer             1    0    1\n\nOttawa: 2    Power play: 4-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nArchibald          1    0    1\nBoschman           1    0    1\nKudelski           0    1    1\nLamb               0    1    1\nRumble             0    1    1\n\n-----------------------------------------\nWashington                       0 0 2--2\nNY Rangers                       0 0 0--0\nFirst period\n     No scoring.\nSecond period\n     No scoring.\nThird period\n     1, Washington, Bondra 36 (Pivonka, Cavallini) 6:54.\n     2, Washington, Bondra 37 (Cote, Pivonka) 10:10.\n\nWashington: 2    Power play: 2-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBondra             2    0    2\nCavallini          0    1    1\nCote               0    1    1\nPivonka            0    2    2\n\nNY Rangers: 0    Power play: 1-0\nNo scoring\n\n-----------------------------------------\nNY Islanders                     2 1 1 0--4\nHartford                         2 1 1 1--5\nFirst period\n     1, NY Islanders, Ferraro 13 (Malakhov, King) 1:29.\n     2, NY Islanders, Hogue 32 (Thomas, Turgeon) 1:57.\n     3, Hartford, Yake 21(Poulin) 4:15.\n     4, Hartford, Yake 22 (Nylander, Poulin) 16:44.\nSecond period\n     5, Hartford, Verbeek 39 (Cassels, Weinrich) pp, 2:43.\n     6, NY Islanders, Thomas 35 (King, Ferraro) 7:58.\nThird period\n     7, Hartford, Burt 5 (Sanderson, Cassels) 13:41.\n     8, NY Islanders, Malakhov 14 (Hogue) 17:45.\nOvertime\n     9, Hartford, Janssens 12 (Poulin) 1:08.\n\nHartford: 5    Power play: 3-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBurt               1    0    1\nCassels            0    2    2\nJanssens           1    0    1\nNylander           0    1    1\nPoulin             0    3    3\nSanderson          0    1    1\nVerbeek            1    0    1\nWeinrich           0    1    1\nYake               2    0    2\n\nNY Islanders: 4    Power play: 3-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nFerraro            1    1    2\nHogue              1    1    2\nKing               0    2    2\nMalakhov           1    1    2\nThomas             1    1    2\nTurgeon            0    1    1\n\n-----------------------------------------\nPittsburgh                       2 3 1 0--6\nNew Jersey                       2 4 0 0--6\nFirst period\n     1, Pittsburgh, Daniels 5 (Needham, Tippett) 4:14.\n     2, New Jersey, Lemieux 29 (Semak, Driver) 10:19.\n     3, Pittsburgh, Stevens 55(Tocchet, Murphy) pp, 12:40.\n     4, New Jersey, Zelepukin 22 (Driver, Niedermayer) 17:26.\nSecond period\n     5, Pittsburgh, Lemieux 68 (Stevens, Tocchet) 1:42.\n     6, New Jersey, Semak 36 (Lemieux, Zelepukin) 2:27.\n     7, Pittsburgh, McEachern 28 (Jagr, Barrasso) 4:24.\n     8, New Jersey, Stevens 12 (Guerin, Pellerin) 5:45.\n     9, Pittsburgh, Lemieux 69 (unassisted) sh, 12:40.\n     10, New Jersey, Richer 37 (Nicholls) 15:53.\n     11, New Jersey, Lemieux 30 (Semak, Zelepukin) 17:40.\nThird period\n     12, Pittsburgh, Mullen 33 (Jagr, Lemieux) 18:54.\nOvertime\n     No scoring.\n\nPittsburgh: 6    Power play: 5-1   Special goals:  pp: 1  sh: 1  Total: 2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBarrasso           0    1    1\nDaniels            1    0    1\nJagr               0    2    2\nLemieux            2    1    3\nMcEachern          1    0    1\nMullen             1    0    1\nMurphy             0    1    1\nNeedham            0    1    1\nStevens            1    1    2\nTippett            0    1    1\nTocchet            0    2    2\n\nNew Jersey: 6    Power play: 3-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nDriver             0    2    2\nGuerin             0    1    1\nLemieux            2    1    3\nNicholls           0    1    1\nNiedermayer        0    1    1\nPellerin           0    1    1\nRicher             1    0    1\nSemak              1    2    3\nStevens            1    0    1\nZelepukin          1    2    3\n\n-----------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2063, "properties": {"category": "sci.electronics", "text": "From: adykes@jpradley.jpr.com (Al Dykes)\nSubject: help: How to reduce the RPMs of a Boxer fan ?\nOrganization: Unix in NYC\nDistribution: na\nLines: 16\n\n\nI need to reduce the speed of a Boxer fan by about 30-50%. I recall\nreading somewhere that the right capacitor in series will do it.\n\nIf this isn't a case of brain fade, can someone suggest the cap value ?\n\nThe specifics; It's a real Boxer Fan (tm). The label says 115 V, .2 amps.\n\nAl Dykes\n--------\nadykes@jpr.com\n\n\n\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2064, "properties": {"category": "comp.windows.x", "text": "From: bradley@grip.cis.upenn.edu (John Bradley)\nSubject: XV 3.00 has escaped!\nOrganization: GRASP Lab, University of Pennsylvania\nLines: 13\nNntp-Posting-Host: grip.cis.upenn.edu\n\nNo, not another false alarm, not a \"It'll certainly be done by *next* week\"\nmessage...  No, this is the real thing.  I repeat, this is *not* a drill!\n\nBatten down the hatches, hide the women, and lock up the cows, XV 3.00 has\nfinally escaped.  I was cleaning its cage this morning when it overpowered\nme, broke down the office door, and fled the lab.  It was last seen heading\nin the general direction of export.lcs.mit.edu at nearly 30k per second...\n\nIf found, it answers to the name of 'contrib/xv-3.00.tar.Z'.\n\nHave a blast.  I'm off to the vacation capital of the U.S.:  Waco, Texas.\n\n--jhb\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2065, "properties": {"category": "sci.electronics", "text": "From: DRAMALECKI@ELECTRICAL.watstar.uwaterloo.ca (David Malecki)\nSubject: Re: Building a UV flashlight\nLines: 40\nOrganization: University of Waterloo\n\nIn article <C5r6Lz.n25@panix.com> jhawk@panix.com (John Hawkinson) writes:\n>My main question is the bulb: where can I get UV bulbs? Do they\n>need a lot of power? etc., etc.\n\nI've seen them in surplus stores.  All they are are fluorescent bulbs \nwithout the phosphor, and a UV transparent bulb (special glass).  I've\nalso seen incandescent versions that you screw into an ordinary 120VAC\nsocket, probably not what you want.\n\n>\n>I'm not too concerned with whether it's long-wave or short-wave\n>(but hey, if anyone has a cheap source of bulbs, I'll take both).\n>\n>One other thing: a friend of mine mentioned something about near-UV\n>light being cheaper to get at than actual UV light. Does anyone\n>know what he was referring to?\n\nAs far as I know, near UV (as opposed to far-UV) is longwave UV (near\nthe visible spectrum).  Longwave UV is safer as far as accidental (I hope)\nexposure to the eyes.  As far as fluorescent minerals go (the reason a\nfriend has a UV lamp), some only respond to only one of short or long UV.\n\nHope this helps.\n\nDave.\n\n\n\n>\n>Thanks much.\n>\n>\n>--\n>John Hawkinson\n>jhawk@panix.com\n ---------------------------------------------------------------------- \n| Who I am:  David Malecki                                             |\n| Who you think I am:  dramalecki@electrical.watstar.uwaterloo.ca      |\n|                                                                      |\n ----------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2066, "properties": {"category": "comp.windows.x", "text": "From: hildjj@jupiter.fuentez.COM (Joe Hildebrand)\nSubject: Re: question regarding overlaying of graphics\nOrganization: The Internet\nLines: 30\nTo: venkatg@grace.cs.orst.edu (Gopal Venkatraman)\nCc: xpert@expo.lcs.mit.edu\n\n\n> Let's say I have two rectangles on the canvas(see above) \n> one intersecting the other...\n> Now, I would like to delete one of the rectangles.\n> The way I do it is to create another GC wherein I use the\n> GXxor logical function and simply redraw the rectangle using the\nnewly\n> created graphics context thus deleting it for all apparent purposes.\n> A problem with this approach is that at the points of intersection\nthe pixel \n> locations belonging to the other rectangle also become white, which\nis \n> something that should be avoided.\n\nYou could set up a bitmap with a mask in it.  Clear the\nbitmap, draw the rectangle to be deleted with GXor.  Draw the one\nthat is to stay with GXclear.  Then GXxor the entire pixmap with\nthe screen.  \n\nNote that this is a pretty effective way of animation, if you ever\nneed to do that (replace the GXclear with a GXxor).\n\n----------\nJoe Hildebrand\nhildjj@fuentez.com\nSoftware Engineer\nFuentez Systems Concepts\n(703)273-1447\n\nStandard disclaimers apply\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2067, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Gun Control: proud to be a Canuck\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 29\n\nIn article <1pqsruINNiae@hp-col.col.hp.com> dduff@col.hp.com (Dave Duff) writes:\n>Does anyone really believe the Swiss have had no war within their borders\n>because every adult male owns a rifle? I'm a great admirer of the Swiss, but\n>500 years of peace on their turf has zilch to do with gun ownership. Can you\n>picture Hitler, with Panzers and Focke-Wulfs poised on the border, losing\n>sleep over a few thousand expert rifleman? Sure. \n\nThe Swiss population is (and well was) far larger than that. I think\nyour question should be, \"...losing sleep over a million expert\nriflemen?\" Certainly he could have conquered Switzerland, but\na million armed militiamen (especially in a mountainous area, \nwhere tanks' effectiveness is limited) would have made it a\nreal pain. The question a conqueror would ask, is \"is it worth \nthe trouble?\" The more difficult an invasion is, the more likely\nthe answer would be \"no.\" Certainly a million riflemen (as\nopposed to a professional army of only ten or twenty thousand, the\nbest a country the size of Switzerland could support), makes\ninvasions more difficult.\n\n>Hitler stayed out of Switzerland because the Swiss run the money in this\n>world.\n\nReally? In 1939? I'm not even sure you could prove that today (despite\nthe steriotype.) Certainly the Swiss bankers were not essential\nto the German war-time economy.\n\n                                           Frank Crary\n                                           CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2068, "properties": {"category": "soc.religion.christian", "text": "From: ata@hfsi.hfsi.com ( John Ata)\nSubject: Re: -= Hell =-\nReply-To: <news@opl.com>\nOrganization: HFSI\nLines: 19\n\nIn article <Apr.12.03.44.24.1993.18836@athos.rutgers.edu> dmn@kepler.unh.edu (There's a seeker born every minute.) writes:\n\n>    That would depend on what Heaven is like. If God is a King, and \n>an eternity in heaven consists of giving thanks and praise to the King,\n>I might opt for Hell. I read a lovely account of a missionary trying to\n\nBut then, on the other hand, if you really loved that King more\nthan you did yourself, and He loved you to the point of assuring\nyou that the eternal time spent with him would be eternal ecstasy,\nwould you really opt for that choice?\n\n>    Dana\n\n\n-- \nJohn G. Ata - Technical Consultant | Internet:  ata@hfsi.com\nHFS, Inc.\t\t  VA20     |     UUCP:  uunet!hfsi!ata\n7900 Westpark Drive\t MS:601\t   |    Voice:\t(703) 827-6810\nMcLean, VA  22102\t           |      FAX:\t(703) 827-3729\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2069, "properties": {"category": "sci.med", "text": "From: choueiry@liasun1.epfl.ch (Berthe Y. Choueiry)\nSubject: French to English translation of medical terms\nOrganization: Ecole Polytechnique Federale de Lausanne\nLines: 41\nNNTP-Posting-Host: liasun1.epfl.ch\n\nDear Netters,\n\nI am not sure whether this is the right place to post my query, but I\nthought there may be some bilingual physicians in this newsgroup that\ncould help. Please, excuse me for overloading the bandwidth.\n\nI am trying to build a resource allocation program for managing a\nsurgical operating unit in a hospital. The user interface is in\nEnglish, however the terms of medical specialties I was given are in\nFrench :-( I have no medical dictionary handy, mine is a technical\nuniversity :-((\n\nI need to get the translation into English (when there is one) of the\nfollowing words. They refer to medical categories of operating rooms\n(theaters). I admit they may not be universally \"used\".\n\n1- sceptique\n2- orl\n3- brulure/brule'\n4- ne'onatal\n5- pre'natal\n6- pre'mature'\n7- neurochirurgie (neuro-surgery??)\n8- chirurgie ge'ne'rale\n9- chirurgie plastique\n10- urologie (urology??)\n\nThank you for you help.\nCheers,\n\n---------\nBerthe Y. Choueiry\n\nchoueiry@lia.di.epfl.ch\nLIA-DI, Ecole Polytechnique Federale de Lausanne, Ecublens\nCH-1015 Lausanne, Switzerland\nVoice: +41-21-693.52.77 and +41-21-693.66.78 \tFax: +41-21-693.52.25\n\n--------\nps: please reply by e-mail if possible since I scan too quickly\nthrough the messages of this newsgroup.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2070, "properties": {"category": "comp.sys.mac.hardware", "text": "From: nextug@ac.dal.ca\nSubject: Powerbook 140-180 Batteries\nOrganization: Dalhousie University, Halifax, Nova Scotia, Canada\nLines: 15\n\nA quick query for Powerbook gurus:\nTom Spearman, in a post on alternative Powerbook battery options\nmentioned that there exist 3 versions of their Powerbook 140-180\nbatteries: a 2.5 amp hour one (M5545/A), a 2.8 amp hour one,\n(M5545/B) and a 2.9 amp hour one (M5545/C). Anyone out there\nknow how to determine which of these a battery is? I looked at my\nbattery and there is no obvious exterior indication. I contacted\nTom Spearman who had gleaned the information from MacUser and he\ndidn't know either. Anyone out there know the answer?\n\tThanks!\n\tChristopher Majka\n\tnextug@ac.dal.ca\n\nBTW, if you can reply via EMail I would be grateful. I don't\noften read this newsgroup. I will post a summary of answers.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2071, "properties": {"category": "talk.politics.mideast", "text": "From: nelson_p@apollo.hp.com (Peter Nelson)\nSubject: Re: Remember those names come election time.\nNntp-Posting-Host: c.ch.apollo.hp.com\nOrganization: Hewlett-Packard Corporation, Chelmsford, MA\nKeywords: usa federal, government, international, non-usa government\nLines: 39\n\nIn article <C5ztEt.Dwz.1@cs.cmu.edu> anwar+@cs.cmu.edu (Anwar Mohammed) writes:\n>In article <C5u4qI.Mz4@apollo.hp.com> nelson_p@apollo.hp.com (Peter Nelson) writes:\n>>                                \n>>  BTW, with Bosnia's large Moslem population, why have nations like \n>>  Turkey, Saudi Arabia, Syria, Egypt, and others with either money \n>>  or strong military forces not spoken out more forcibly or offered \n>>  to help out Bosnia?   \n>\n>Obviously, you really don't know.\n>\n>They *have* spoken out (cf Sec'y of State Christopher's recent trip to the ME),\n\n  Note the clause \"more forcibly\", above.     My point is that they have\n  made a few pro-forma, perfunctory remarks, and sent in a few C-130's and\n  so forth, but it's clearly not something they're losing much sleep over.\n  They're just going through the motions, while Moslems are being \"ethnically\n  cleansed\" out of what used to be Yugoslavia.   The US has been speaking\n  out far more loudly than the Moslem nations in the UN and other world\n  forums.\n\n\n>>  Besides, there's no case that can be made for US military involvement\n>>  there that doesn't apply equally well to, say, Liberia, Angola, or\n>>  (it appears with the Khmer Rouge's new campaign) Cambodia.   Non-whites\n>>  don't count?\n>\n>Hmm...some might say Kuwaitis are non-white. Ooops, I forgot, Kuwaitis are\n>\"oil rich\", \"loaded with petro-dollars\", etc so they don't count.\n\n  Precisely.   Humanitarian concerns were not the primary justification\n  for US involvement in the Gulf - oil and geopolitics were.  If the \n  the Kuwaitis didn't have oil (and assuming Iraq still saw fit to \n  invade them) I doubt you would have seen Operation Desert Storm.\n\n\n---peter\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2072, "properties": {"category": "talk.politics.guns", "text": "From: donb@netcom.com (Don Baldwin)\nSubject: Re: 2ND AMENDMENT DEAD - GOOD !\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 29\n\nIn article <1993Apr18.001319.2340@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu \nwrites:\n>The bulk of firarems are used against unworthy and unnesessary\n>opponents ... those who posessa a cool jakcet you want, those who\n>would argue with you about a parking space, those who would\n>take your woman. In short, trivial and worthless causes.\n\nThat's open for debate.  Certainly, an excessive number of people are\nmurdered every year but people also do save innocent lives with firearms.\nThe media just don't tell us when it happens...\n\n>Too much of this has ruined you cause. There is no recovery. \n>In the near future, federal martials will come for your arms.\n\nI think there are more of us than there are federal marshalls...\n\n>No one will help you. You are more dangerous, to their thinking,\n>than the 'criminal'. This is your own fault. \n\nCrap.  It's simplistic thinking on the part of feather-headed dolts.\n\n>The 2nd amendment is dead. Accept this. Find another way.\n\nNuts.\n\n    don\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2073, "properties": {"category": "sci.space", "text": "From: Mehrtens_T@msm.cdx.mot.com\nSubject: Re: How many read sci.space?\nNntp-Posting-Host: tom_mac.prds.cdx.mot.com\nOrganization: Motorola_Codex\nLines: 25\n\nIn article <1qkmkiINNep3@mojo.eng.umd.edu> sysmgr@king.eng.umd.edu (Doug\nMohney) writes:\n>In article <1993Apr15.204210.26022@mksol.dseg.ti.com>,\npyron@skndiv.dseg.ti.com (Dillon Pyron) writes:\n>>\n>>There are actually only two of us.  I do Henry, Fred, Tommy and Mary.  Oh\nyeah,\n>>this isn't my real name, I'm a bald headed space baby.\n>\n>Damn!  So it was YOU who was drinking beer with ROBERT McELWANE in the PARKING\n>LOT of the K-MART!\n>    Software engineering? That's like military intelligence, isn't it?\n>  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n\nThey just tore down the Kmart near my house (putting in a new suptermarket).  I\nheard that there is a beer drinking ghost who still haunts the place!  8-{)\n\nTom\n\nI liked this one I read a while ago...\n\n\"Data sheet: HSN-3000 Nuclear Event Detector. The [NED] senses the gamma\nradiation pulse [from a] nuclear weapon.\" As if we wouldn't notice...\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.096+0000", "event": "documents", "entityId": 2074, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wlieftin@cs.vu.nl (Liefting W)\nSubject: Re: Why is my mouse so JUMPY? (MS MOUSE)\nOrganization: Fac. Wiskunde & Informatica, VU, Amsterdam\nLines: 20\n\necktons@ucs.byu.edu (Sean Eckton) writes:\n\n>I have a Microsoft Serial Mouse and am using mouse.com 8.00 (was using 8.20 \n>I think, but switched to 8.00 to see if it was any better).  Vertical motion \n>is nice and smooth, but horizontal motion is so bad I sometimes can't click \n>on something because my mouse jumps around.  I can be moving the mouse to \n>the right with relatively uniform motion and the mouse will move smoothly \n>for a bit, then jump to the right, then move smoothly for a bit then jump \n>again (maybe this time to the left about .5 inch!).  This is crazy!  I have \n>never had so much trouble with a mouse before.  Anyone have any solutions?  \n\n>Does Microsoft think they are what everyone should be? <- just venting steam!\n\nI think I have the same problem. I think it is caused by the rubber ball\nin the mouse, which doesn't roll so smooth. The detectors in the mouse\nnotice this and whoops, I hit a mine (using minesweeper :-) ).\n\nI think the solution will be buying a new mouse, and/or using a mouse pad.\n\nWouter.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2075, "properties": {"category": "misc.forsale", "text": "From: mkao@mace.cc.purdue.edu (Michelle Kao)\nSubject: 4 4MB simms for sale(30 pin, 80ns, for Mac)\nOrganization: Purdue University\nLines: 2\n\n$400included shipping\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2076, "properties": {"category": "rec.autos", "text": "From: markm@bigfoot.sps.mot.com (Mark Monninger)\nSubject: Re: Car buying story, was: Christ, another dealer service scam...\nNntp-Posting-Host: 223.250.10.7\nReply-To: rapw20@email.sps.mot.com\nOrganization: SPS\nDistribution: usa\nLines: 28\n\nIn article <1993Apr15.234508.20032@slcs.slb.com>  \ndcd@se.houston.geoquest.slb.com (Dan Day) writes:\n>   ...(relates an experience similar to mine) ...\n> Then comes the part I wish I could have videotaped.  As we go out\n> the front door, the sales manager SHOUTS across the entire showroom,\n> customers and all, \"Go ahead!  You DESERVE to buy a Nissan!\"\n> So my friend bought a Sentra.\n> ...\n\nThis kind of behavior is what I was shocked by in my 'experience'. For  \ncrying out loud, how do these turkeys think they can talk to customers  \nthis way and still stay in business? Again, I don't expect sales people to  \nbow, scrape, and grovel in my presence but I sure don't expect to be  \nabused either. I was very surprised by the way the sales people talked to  \nme and in other 'negotiating' sessions I overheard in neighboring sales  \ncubicles. Evidently, their success rate is high enough that they continue  \nto do business this way. There must be a lot of people out there who are  \neasy to intimidate.\n\nOn the other hand, I'm not sure about the 'one price, no haggling'  \napproach that Saturn and other are starting to use. I guess if their fixed  \nprice is fair it's OK. Maybe the best approach is to do your homework  \nbefore you go in. Find out the invoice prices of the car, add a reasonable  \nprofit for the dealer ($200-$300??), offer them that price and stick to  \nit. If they get abusive, just leave. Then, don't let them try to screw you  \nafter the deal is agreed on.\n\nMark\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2077, "properties": {"category": "soc.religion.christian", "text": "From: mussack@austin.ibm.com (Christopher Mussack)\nSubject: Re: tuff to be a Christian?\nOrganization: IBM Austin\nLines: 66\n\nPlease realize that I am frequently getting in trouble for\nstraying from orthodoxy, but here is my opinion:\n\nIn article <Apr.17.01.10.58.1993.2246@geneva.rutgers.edu>, mdbs@ms.uky.edu (no name) writes:\n> ... Moreover the Buddha says that we are \n> intrinsically good (as against Christ's \"we are all sinners\").\n\nI never thought of these two ideas being \"against\" each other.\nPeople might quibble about what \"intrinsically\" means but the\nreason we are sinners is because we do not behave as good as we\nare. The message of Christ is that each of us are not only good,\nbut great, that we can approach perfection, albeit perhaps through a \ndifferent technique than you claim Buddhism teaches. Because we do\nnot realize our greatness, we sin. Peter had no problem walking \non water until a little doubt crept in.\n\nDoesn't David ask in the 8th Psalm \"what is man that you [God] \nshould care for him, but you have made him just a little lower \nthan the angels\"?\n\nI probably exagerate in my mind what a scrawny little kid David\nwas, just as I probably exagerate what a gigantic monster Goliath\nwas, but David's power easily defeated Goliath's.\n\nRemember the rich young man who comes up to Jesus and asks what\nhe can do to enter the Kingdom, Jesus says follow the commandments.\nI always picture the smug look on his face as he says he's done that\nhis whole life, probably anticipating an \"attaboy\" from the \nMessiah. Instead Jesus gives him a harder task, sell everything\nand follow Him. Jesus is raising the bar. The desciples say\nhow can anyone do this if it's so hard even for rich people.\nJesus says anyone can do it, with God's help.\n\nJesus says not only can we avoid killing people, we can avoid\ngetting angry at people. Not only can we avoid committing\nadultery, we can control our own desires. \n\nI realize this was not your main point, but I wonder how other\npeople see this. \n\n> ...\n> \tParting Question:\n> \t\tWould you have become a Christian if you had not\n> been indoctrinated by your parents? You probably never learned about\n> any other religion to make a comparative study. And therefore I claim\n> you are brain washed.\n\n(Please forgive any generalizations I am about to make.)\n\nYour point about how \"hard\" other religions are is a good one, just \nas your \"Parting Question\" is a tough question. I think that Muslims\nworship the same God as I do, we can learn from their name \"submission\".\nHindus and Buddhists and Taoists, etc. claim that \"God\" is impersonal. \nIs God personal or impersonal? I say yes, but if I think a little\nmore my answer is whichever is greater. I think it is greater \nto be a personal entity, with an individual consciousness, but\nyou're right that that might be a cultural bias. If I think more\nI must admit that God's personal nature is as far beyond my\nconception as His impersonal nature is beyond the Hindu's\nconception. If somehow Jesus could fit into Hindu cosmology\nthen maybe I wouldn't have a problem, though that is hard to imagine.\n\nAre there any former (or present) \"Eastern Religion\" members here \nwho could comment?\n\nChris Mussack\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2078, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mbuntan@staff.tc.umn.edu ()\nSubject: Fax modem for the Mac\nNntp-Posting-Host: staff.tc.umn.edu\nOrganization: University of Minnesota\nLines: 26\n\nHi all:\nThanks to you all who have responded\nto my request for info on various kinds of fax modem.\nI'd like to ask a few more questions.\n1.  What are the advantages of buying a global village\nTeleport Gold over other cheaper brands like Supra, Zoom etc?\n2.  I heard that both Supra and Zoom use the same software.\nWhy are there so many complaints about the incompatibility problems\nof Supra?  What kind of incompatibility is it?\n3.  If I decided to buy the Teleport Gold, is there any\npossibility to add a voice option in the near future?\n4.  Has anyone heard of a possible voice option that Supra will offer\nthis coming summer?\n5.  A person did mention a new AT&T modem.  Is it\ngetting good reviews from various Mac Magazines?\n6.  If I want the best, fastest, most economically sound and\npossible voice option, what fax modem should I buy?\n\nSorry for posting so many questions, but I think they're necessary.\nI promise to repost any answers if they're not already posted by a responder.\n\nThanks so much in advance.\n\nRegards,\n\nThian.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2079, "properties": {"category": "misc.forsale", "text": "From: alin@nyx.cs.du.edu (ailin lin)\nSubject: VGA card/1 meg wanted\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 7\n\nit must have 1 meg memory and support res. 1024x768 (even higher will be better)if it has 9 & 15 pin ports and also supports ega/cga , that's better.\nI will pay $30 + $1 (shipping) for it.\n\nlet me knoe if u have one like this.\n\nailin\n803-654-8817\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2080, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dmsilev@athena.mit.edu (Daniel M Silevitch)\nSubject: Re: Utility for updating Win.ini and system.ini\nOrganization: Massachusetts Institute of Technology\nLines: 28\nDistribution: world\nNNTP-Posting-Host: w20-575-72.mit.edu\n\nIn article <1993Apr20.180234.18192@oz.plymouth.edu>, oddjob@oz.plymouth.edu (Andrew C. Stoffel) writes:\n|> In article <1993Apr20.151912.18590@midway.uchicago.edu> am37@midway.uchicago.edu writes:\n|> \n|> >Unless I am completely misunderstanding you, try using either Notepad or\n|> >sysedit.exe (found in your system subdirectory) to edit you .ini files.\n|> You can add sysedit (& regedit) to a program group... they are Windows\n|> programs. \n|> >The sysedit.exe program is cool because it automatically opens you win.ini,\n|> >system.ini, autoexec.bat and config.sys files to be edited.\n|> \n|> Is it possible to get it to load other *.ini files ????\n|> \n\nNo. When the program is run, it loads 4 configuration files; autoexec.bat,\nconfig.sys, win.ini, and system.ini. There is no Open entry on the File\nmenu. You can only edit these four files. If you need to edit some other\nprogram's .ini file, use Notepad or some other ASCII editor.\n\nI wonder whether Microsoft intended for sysedit to be used, or if it was\njust a holdover from the testing period and they forgot to take it out. The\nreason I think this is because there is absolutely no mention in the manuals\nabout this program, and there is no online help for it (just an About entry\nunder the File menu). The program looks like something that was intended for\ninternal use only. It's kind of a shame, though. It would have made a nice\nmulti-file replacement for Notepad.\n\nDaniel Silevitch                           dmsilev@athena.mit.edu\nMassachusetts Institute of Technology\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2081, "properties": {"category": "talk.politics.mideast", "text": "From: warren@nysernet.org (Warren Burstein)\nSubject: Re: To be exact, 2.5 million Muslims were exterminated by the Armenians.\nOrganization: NYSERNet, Inc.\nLines: 34\n\nac = In <9304202017@zuma.UUCP> sera@zuma.UUCP (Serdar Argic)\npl = linden@positive.Eng.Sun.COM (Peter van der Linden)\n\npl: 1.  So, did the Turks kill the Armenians?\n\nac: So, did the Jews kill the Germans? \nac: You even make Armenians laugh.\n\nac: \"An appropriate analogy with the Jewish Holocaust might be the\nac: systematic extermination of the entire Muslim population of \nac: the independent republic of Armenia which consisted of at \nac: least 30-40 percent of the population of that republic. The \nac: memoirs of an Armenian army officer who participated in and \nac: eye-witnessed these atrocities was published in the U.S. in\nac: 1926 with the title 'Men Are Like That.' Other references abound.\"\n\nTypical Mutlu.  PvdL asks if X happened, the response is that Y\nhappened.  Even if we grant that the Armenians *did* do what Cosar\naccuses them of doing, this has no bearing on whether the Turks did\nwhat they are accused of.\n\nWhile I can understand how an AI could be this stupid, I\ncan't understand how a human could be such a moron as to either let\nsuch an AI run amok or to compose such pointless messages himself.\n\nI do not expect any followup to this article from Argic to do anything\nto alleviate my puzzlement.  But maybe I'll see a new line from his\nlist of insults.\n\n-- \n/|/-\\/-\\          This article is supplied without longbox\n |__/__/_/        and uses recycled 100% words, characters and ideas.\n |warren@         \n/ nysernet.org    \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2082, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jacob@plasma2.ssl.berkeley.edu (nga throgaw shaygiy)\nSubject: Memory upgrades\nOrganization: UCB Space Sciences Lab\nLines: 29\nDistribution: world\nNNTP-Posting-Host: plasma2.ssl.berkeley.edu\n\n\nExcuse me if this is a frequent question, I checked in\nseveral FAQs but couldn't really find anything.\n\nI have a IIsi with the standard 5 meg memory and I want\n(need) to add additional memory.  But I'm on a budget.\nI really don't need more than 10 meg max, so what is\nthe best (performance wise) and most economical way\nto do this?  Someone told me that I should only use\nSIMMs of the same amount of memory, that is 4 1 meg,\n4 2 meg, etc.  What if I just wanted to buy just 1 4 meg\nand use the rest of what I already have?  The manual\nhasn't been very helpful with this.\n\nThanks.\n\n(Respond via e-mail if it isn't worth the bandwidth.)\n____________________________________________________________________\n\"common human laws and interests     \"I wouldn't exactly call it a\n and emotions have no validity        a happy dogma, but it makes me\n or signifigance in the vast          feel better about not \n cosmos-at-large...\"                  getting laid...\"\n\t\t-HP Lovecraft                 -R. Carter\n____________________________________________________________________\n                                       ______   ______   __     \n                                    | /\\  ___\\ /\\  ___\\ /\\ \\    \n  jacob@sunspot.ssl.berkeley.edu    | \\ \\___  \\\\ \\___  \\\\ \\ \\___\n                                    |  \\/\\_____\\\\/\\_____\\\\ \\_____\\\n                                    |   \\/_____/ \\/_____/ \\/_____/\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2083, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Israel does not kill reporters.\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 12\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n   Anas Omran has claimed that, \"the Israelis used to arrest, and\nsometime to kill some of these neutral reporters.\"  The assertion\nby Anas Omran is, of course, a total fabrication.  If there is an\nonce of truth iin it, I'm sure Anas Omran can document such a sad\nand despicable event.  Otherwise we may assume that it is another\npiece of anti-Israel bullshit posted by someone whose family does\nnot know how to teach their children to tell the truth.  If Omran\nwould care to retract this 'error' I would be glad to retract the\naccusation that he is a liar.  If he can document such a claim, I\nwould again be glad to apologize for calling him a liar.  Failing\nto do either of these would certainly show what a liar he is.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2084, "properties": {"category": "talk.politics.guns", "text": "From: jrutledg@cs.ulowell.edu (John Lawrence Rutledge)\nSubject: Re: \"militia\" (incredibly long)\nOrganization: Interactive Media Group - University of Massachusetts at Lowell\nLines: 54\n\nIn article <1qna9m$nq8@transfer.stratus.com>, cdt@sw.stratus.com (C. D. Tavares) writes:\n-> In article <C5L0n2.5LL@ulowell.ulowell.edu>, jrutledg@cs.ulowell.edu (John Lawrence Rutledge) writes:\n-> > But, do you knew how much organization is required to training a large\n-> > group of poeple twice a year.  Just to try to get the same people\n-> > every year, provide a basic training to new people so they can\n-> > be integrated into the force, and find a suitable location, it \n-> > requires a continually standing committee of organizers.  \n-> \n-> Again, my response is, \"so what?\"  Is Mr. Rutledge arguing that since\n-> the local and federal governments have abandoned their charter to support\n-> such activity, and passed laws prohibiting private organizations from \n-> doing so, that they have eliminated the basis for the RKBA?   On the\n-> contrary, to anyone who understands the game, they have strengthened it.\n\nNo, I originally argued that the Second Amendment was \"a little bit\nand an anachronism.\"  These prohibiting laws are examples why the are\nan anachronism.  After all, laws in made by representatives of the \npeople.  These representatives of the people have already decided\nthat the Second Amendment does not apply or is too broad in some\ncases.  Since these representatives feel an unconditional \ninterpretation is not wanted, then it is probable that they majority\nof the people feel the same way.  If this is so, it is an example\nof the people using their power of government.  If this is not\nhow the people feel, the people should stand up and state their wishes.\n \n> Mox nix, Mr. Rutledge.  YOU are the only one here claiming that the\n-> RKBA is dependent on the existence of a top-flight, well-regulated\n-> militia.  Why this is a false assumption has already been posted a \n-> number of times.  \n\nNo, I simple stated that the people have a right to \"join a well\norganized militia.\"  And I have also stated that a militia that\nmeets once or twice a year is clearly \"well organized.\"  And this\nstate of readiness that I have claimed the people have a \"right\"\nto, is the same state of readiness expected of the militia as stated\nby Hamilton. \n\n\n-- \n+-----------------------------+-----------------------------------------------+\n|                             |  \"If only it were a modern document, with a   |\n| John Lawrence Rutledge      | smart index and hyper links stretching all    |\n| Research Assistant          | through the world data net.  It was terribly  |\n|                             | frustrating to flip back and forth between    |\n| Interactive Media Group     | the pages and crude flat illustrations that   |\n| Computer Science Department | never even moved.  Nor were there animated    |\n| UMass - Lowell              | arrows or zoom-ins.  It completely lacked a   |\n| 1 University Ave.           | for sound.                                    |\n| Lowell, MA 01854            |  \"Most baffling of all was the problem of new |\n|                             | words...  In normal text you'd only have to   |\n| (508) 934-3568              | touch an unfamiliar word and the definition   |\n| jrutledg@cs.ulowell.edu     | would pop up just below.\"                     |\n|                             |                    from David Brin's \"Earth\"  |\n+-----------------------------+-----------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2085, "properties": {"category": "soc.religion.christian", "text": "From: johnsd2@rpi.edu (Dan Johnson)\nSubject: Re: intolerance - eternal life - etc\nReply-To: johnsd2@rpi.edu\nOrganization: not Sun Microsystems\nLines: 186\n\nI apologize if this article is slightly confusing, and late. The origonal\ndraft didn't make it through the moderators quote-screens. So I did\nviolence to it, but if you remember the article I am responding\nto it should still make sence.\n\nIn article 1850@geneva.rutgers.edu, jsledd@ssdc.sas.upenn.edu (James Sledd) writes:\n>Hi Xian Netters,  God bless you\n\nWhat, no hello for heathan netters?\n\nI feel all left out now. :(\n\n[deletia- table of content, intro, homosexuality]\n\n>\n>INCREDIBLY CHOPPED UP POST\n\n[deletia- incorrect attributions]\n\nUh, you have your attributions wrong, you were responding\nto my article, so Dan Johnson should be the 1st one.\n\n>In article 28388@athos.rutgers.edu, jayne@mmalt.guild.org \n>(Jayne Kulikauskas) writes:\n\n[deletia- no free gifts speil nuked by moderator fiat.]\n\n>I find that I am dissatisfied with the little purposes that we can\n>manufacture for ourselves.  Little in the cosmic sense.\n\nAh, in the _cosmic_ sence.. but who lives in the cosmic sence?\nNot me! Cosmicly, we don't even exist for all practical purposes.\nI can hardly use the Cosmic Sence Of Stuff as a guide to life.\nIt would just say: \"don't bother.\"\n\nLuckily for mortals, there are many sences of scale you can talk\nabout. In a human sence, you can have big purposes.\n\n>  Even the\n>greatest of the great pharos are long gone, the pyramids historical\n>oddities being worn down by the wind, eventually to be turned into dust.\n\nBut the influence of Aristotle, Confucious, Alexander, Ceasar and\ncountless others is still with us, although their works have perished.\n\nBut they have changed to course of history, and while humanity exists,\ntheir deeds cannot be said to have come to nothing, even if they\nare utterly forgotten.\n\n>Mankind itself will one day perish.\n\nOne day, surely. (well, unless you believe in the Second Coming, which\nI do not)\n\nBut in that time we can make a difference.\n\n> Without some interconnectedness\n>that transcends the physical, without God, it is all pointless in the\n>end.\n\nIn the end. But it must be the end; until then, there is all the\npoint you can muster. And when that end comes, there will be nobody\nto ask, \"Gee, I don't think James Sledd's deeds are gonna make\nmuch of a difference, ulitmately, ya know?\".\n\nBut they will have already have made a difference, great or small,\nbefore the end.\n\nWhy must your ends be eternal to be worthwhile?\n\n>  Most people are able to live with that, and for them little\n>purposes (success, money, power, effecting change, helping others)\n>suffice.\n\nLittle is in the eye of the beholder, of course.\n\n>  I suppose they never  think about the cosmic scale, or are at\n>least able to put it out of their minds.\n\nI don't doubt it. But I have thought about the cosmic scale. And\nit does not seem to mean much to us, here, today.\n\n>To me, it is comforting to know that reality is an illusion.\n\nI would not find this comforting. But perhaps it is merely my\ndefinitions. Here's what I think the relevant terms are:\n\n\"Reality\"\tThat which is real.\n\"Illusion\"\tThat which is not real, but seems to be.\n\"Real\"\t\tObjectively Existing\n\nFor \"reality\" to be an \"illusion\" would mean, then:\n\nThat which is real is not real, but seems to be.\n\nOr:\n\nThat which objectively exists, does not objectively exist, but\ndoes seem to objectively exist.\n\nFrom which we can conclude, that unless you want to get a\ncontradiction, that no things objectively exist.\n\nBut I have a problem with this because I would like to say\nthat *I* objectively exist, if nothing else. Cogito Ergo Sum\nand all that.\n\nPerhaps you do not mean all that, but rather mean:\n\"Objective Reality is Unreachable by humans.\"\n\nWhich is not so bad, and so far as I know is true.\n\n>  That the\n>true reality underneath the the physical is spirit.\n\nHave on. If reality is an illusion, isn't True Reality an illusion\ntoo? And if True Reality is spirit, doens't that make Spirit an Illusion\nas well?\n\nIf I am not distinctly confused, this is getting positively Buddhist.\n\n>  That this world is a school of sorts, where we learn\n>and grow, and our souls mature.\n\nThat is one hell of a statement, although perhaps true.\n\nDo you mean to imply that it was *intended* to be so? If so,\nplease show that this is true. If not, please explain how this\ncan give a purpose to anything.\n\n> That gives a purpose to my little purposes,\n\nHow does it do that?\n\nWouldn't the world=school w/ intent idea make the world a preparation for\nsome *greater* purpose, rather than a purpose in itself.\n\n> and takes some of the pressure off.\n\nWhat pressure?\n\n>  It's not so necessary to make this life a success in human terms\n>if you're really just here to learn.\n\nIt is not necessary to be a success in human terms, unless your\ngoals either include doing so or require doing so before they\nthemselves can be achived.\n\nIndeed, many people have set goals for themselves that\ndo not include success in human terms as _I_ understand it. Check\nout yer Buddhist monk type guy. Out for nirvana, which is not\nat all the same thing.\n\n>  It's more important to progress,\n>grow, persist, to learn to love yourself and others and to express your\n>love, especially when it's dificult to do so.  Honest effort is rewarded\n>by God, he knows our limitations.\n\nWhy is learning to love a goal? What happens if you fail in this\ngoal? To you? To God? To the mysterious Purpose?\n\n\n[deletia- question about immortailty and my answer deleted because it was\n mostly quote.]\n\n>TWO SERIOUS QUESTIONS/INVITATIONS TO DISCUSSION\n>1. What is the nature of eternal life?\n>2. How can we as mortals locked into space time conceive of it?\n>\n>Possible answer for #2: The best we can do is Metaphor/Analogy\n>Question 2A  What is the best metaphor?\n\nI'll have a crack at that.\n\n(1) The nature of eternal life is neatly described by its name: It is\nthe concept of life without death, life without end.\n\n(2) No. We can put together word to describe it, but we cannot imagine it.\n\n(2a) No metaphor is adequate next to eternity; if it were we could not\nunderstand it either. (or so I suspect)\n---\n\t\t\t- Dan Johnson\nAnd God said \"Jeeze, this is dull\"... and it *WAS* dull. Genesis 0:0\n\nThese opinions probably show what I know.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2086, "properties": {"category": "sci.crypt", "text": "From: tarl@coyoacan.sw.stratus.com (Tarl Neustaedter)\nSubject: Re: Organized Lobbying for Cryptography\nOrganization: Stratus Computer, Software Engineering\nLines: 17\nDistribution: inet\nNNTP-Posting-Host: coyoacan.sw.stratus.com\n\nIn article <C5tBpD.Lt@cs.uiuc.edu> kadie@cs.uiuc.edu (Carl M Kadie) writes:\n>[...]\n>>The EFF has been associated with efforts to prevent the banning of sex\n>>and pictures newsgroups at various universities.\n>[...]\n>\n>So what? Justices William Brennan, Thurgood Marshall, John Paul\n>Stevens, and Byron White are associated with [...]\n\nIt means that the EFF's public stance is complicated with issues irrelevant\nto the encryption issue per se. There may well be people who care about\nthe encryption issue who don't care to associate themselves with the\nnetwork erotica issue (or may even disagree with the EFF's position).\n\nEnding up with pallets of baggage to drag around is a frequent \nproblem with permanent organizations. EFF is no exception.\n\tTarl\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2087, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: yeoy@a.cs.okstate.edu (YEO YEK CHONG)\nSubject: Re: Is \"Kermit\" available for Windows 3.0/3.1?\nOrganization: Oklahoma State University\nLines: 7\n\nFrom article <a4Fm3B1w165w@vicuna.ocunix.on.ca>, by Steve Frampton <frampton@vicuna.ocunix.on.ca>:\n> I was wondering, is the \"Kermit\" package (the actual package, not a\n\nYes!  In the usual ftp sites.\n\nYek CHong\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2088, "properties": {"category": "rec.autos", "text": "From: tomm@hank.ca.boeing.com (Tom Mackey)\nSubject: Re: WARNING.....(please read)...\nKeywords: BRICK, TRUCK, DANGER\nOrganization: BoGART Graphics Development\nLines: 27\n\nIn article <C5JoIt.E31@bcstec.ca.boeing.com> neil@bcstec.ca.boeing.com (Neil Williams) writes:\n>As long as we're on the subject... Several years ago myself and two others\n>were riding in the front of a Toyota pickup heading south on Interstate 5\n>north of Seattle, WA. Someone threw a rock of an overpass and hit our\n>windshield. Not by accident I'm sure, it was impossible to get up to the\n>overpass quickly to see who did it. We figured it was kids, reported it and\n>left.\n>A couple of years ago it happend again and killed a guy at my company. He was\n>in his mid-fourties and left behind a wife and children. Turned out there was\n>a reformatory for juviniles a few blocks away. They caught the 14 year old\n>that did it. They put a cover over the overpass, what else could they do?\n\nExecute the juvi on the grounds of the reformatory, required attendendence\nby the rest of the inmates, as soon as possible after the incident and a\nquick sure trial.  I am quite serious.  Cause and effect.  Nothing else\nwill ever make a dent.\n\n>I don't think I'll over forget this story.\n>Neil Williams, Boeing Computer Services, Bellevue WA.\n\nMe neither.\n\n\n-- \nTom Mackey          (206) 865-6575        tomm@voodoo.ca.boeing.com\nBoeing Computer Services               ....uunet!bcstec!voodoo!tomm\nM/S 7K-20,       P.O. Box 24346,       Seattle, WA       98124-0346\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2089, "properties": {"category": "rec.sport.baseball", "text": "From: steven@advtech.uswest.com ( Steve Novak)\nSubject: Re: Old Predictions to laugh at...\nNntp-Posting-Host: jaynes.advtech.uswest.com\nOrganization: U S WEST Advanced Technologies\nLines: 25\n\n> = ( Steve Novak) writes:\n>> = (Edward [Ted] Fischer) writes:\n>>> = (Robert C Hite) writes:\n\n>>>DEAD WRONG!  Last time I checked, Jim Fregosi was still managing the\n>>>Phillies, and doing quite a fine job thank you...best record in\n>>>baseball at 8-1\n\n>>Look, asshole, I got him confused with somebody else.  I didn't flame\n>>you, and I would appreciate it if you extended me the same courtesy.\n\n>What _is_ your problem?  Hite's post wasn't a flame.  It was a\n>correction of *your* error.\n\nThat last was me, Steve Novak.  I've since read the entire original\nposting by Hite.\n\nMr. Fischer was actually restrained.  Let Mr. Hite hope he never makes\nsome similar, tiny mistake.\n\n-- \n+-+-+-+-+-+-+-+\n| Steve Novak |    |\"Ban the Bomb!\"  \"Ban the POPE!!\"| \n+-+-+-+-+-+-+-+\nsteven@advtech.USWest.Com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2090, "properties": {"category": "talk.religion.misc", "text": "From: margoli@watson.ibm.com (Larry Margolis)\nSubject: Re: Abortion\nNews-Software: IBM OS/2 PM RN (NR/2) v0.17i by O. Vishnepolsky and R. Rogers\nLines: 22\nReply-To: margoli@watson.IBM.com (Larry Margolis)\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: netslip63.watson.ibm.com\nOrganization: The Village Waterbed\n\nIn <18275.459.uupcb@ozonehole.com> anthony.landreneau@ozonehole.com (Anthony Landreneau)  writes:\n>To: margoli@watson.ibm.com (Larry Margolis)\n>From: anthony.landreneau@ozonehole.com\n>\n>LM>>  >>The rape has passed, there is nothing that will ever take that away.\n>LM>>\n>LM>>LM>True.  But forcing her to remain pregnant continues the violation of\n>LM>>LM>her body for another 9 months.  I see this as being unbelievably cruel.\n>LM>>\n>LM>>Life is not a \"violation\".\n>\n>LM>But forcing someone to harbor that life in their body *is* a violation.\n>\n>Letting a mother force a child from her body, in order to end that\n>childs life is the ultimate violation.\n\nI happen to take the violation of a person much more seriously than the\n\"violation\" of a mindless clump of cells smaller than my thumb.\n\nYour mileage may vary.\n--\nLarry Margolis, MARGOLI@YKTVMV (Bitnet), margoli@watson.IBM.com (Internet)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2091, "properties": {"category": "talk.politics.misc", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Diplomat License Plates\nOrganization: Express Access Online Communications USA\nLines: 21\nDistribution: va\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr13.123404.18191@linus.mitre.org> m23364@mwunix.mitre.org (James Meritt) writes:\n|\n|Automobiles belonging to personnel associated with the embassies from various\n|nations have diplomatic license plates.  They are red, white, and blue and\n|read DLL #### where \"L\" is a letter and the #'s are numbers.  The \"D\" means\n>diplomatic and the \"L\"s indicate which country.  A few years ago the\n\nactually,  teh D means the registered driver has diplomatic immunity.\nThat means they can do as they damn well please on the roads, and you\nhave only God as your protection.   \n\nThe state Department Issues Saa-XXX  plates for personnel  who work\nat the embassies but haven't been granted  immunity.  Most embassies\nhave restricted parking for embassy personell  street side.  \n\nThe S plates allow them to use  those parking areas as well as the\nrestricted lots at National and State dept,  without a lot of crap.\n\npat\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2092, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Hand Held Products, Inc.\nLines: 56\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <C5tEnu.112F@ns1.nodak.edu> green@plains.NoDak.edu (Bill Green)  \nwrites:\n> Just to shed some light on the fire, it was widely reported (AP, etc.) that\n> there WERE several witnesses to BD folks starting the fires.  It has also\n> been reported that the fires broke out in several places at once, which\n> rules out a Bradley knocking over a lamp, etc. as the cause.\n\n\"Widely reported\", eh?  Remember, this has had a news blackout since day 2.\nThe FBI is the single, sole, source of these rumors.  It may be the truth, but  \nit may not be.  We may never know.  We MUST question it, though.  Why no media  \ncoverare?  What were they hiding?\n\n> \n> What I would like to see is some serious discussion of this incident.  I\n> believe the moves made were right and proper, but I still have some problems\n> with some of the tactics.  After watching the ABC special on it tonight, as\n> well as CNN and Nightline, I question some of the ATF and FBI actions.\n> \n> 1) Could it have been possible to have taken Koresh outside the compound at\n> some time before the Feb. 28th raid?\n> \nIt would seem so.\n\n> 2) Could a further wait have resulted in a different outcome.\n> \n\nThey would still be alive, today.  Another day is another chance.\n\n> 3) Were FBI actions (blaring loudspeakers, etc.) the \"right\" course of  \naction?\n> \nI think it contributed to the outcome.  Folks that are sleep deprived tend not  \nto think clearly\n\n> And a few other questions.  Like I said, I believe the actions taken, in\n> general, were proper.  But I still have some reservations.\n> \nI feel strongly they were NOT proper.\n\n> One other point, I'm no fan of Janet Reno, but I do like the way she had the\n> \"balls\" to go ahead and take full responsibility.  Seems like the waffle boy\n> had problems figuring out just where he stood on the issue.\n\nAs expected.  If it had come out well, he would not have hesitated to take full  \ncredit.\n\n\nJim\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2093, "properties": {"category": "misc.forsale", "text": "From: vvl2h@galen.med.Virginia.EDU (Victor V. Levenson)\nSubject: HELP: How to get a SCUMSTER\nSummary: Need advice \nKeywords: HD, cash/check, no delivery\nOrganization: University of Virginia\nDistribution: usa\nLines: 34\n\n\nHi, everyone;\n\n\nI need an advice on what is the best way to get a scumster.\n\nSeveral weeks ago I posted an article on behalf of a friend who wanted\nan external HD for mac. The scumster - R.E.P. - called my friend and\nthey agreed on a price. My friend (unexperienced and not too fluent in\nEnglish) paid by check, requesting R.E.P. to call him back when the check\narrives and the HD is send. Well, the check was cashed 3/24 and that is\nthat. Phone # that R.E.P. gave is on the answering machine all the time\nand there is no reaction when the message is left; e-mail address does not\nbounce but again there is no answer. I know, that R.E.P. is a student at\nUniversity of Delaware; I have his e-mail address, his US postal address\nand his (?) phone#. The question is: WHAT IS THE BEST WAY TO PROCEED?\n\nThanks in advance for any advice.\n\nSincerely,\nVictor Levenson (VVL2H@virginia.edu)\n\nP.S. The reason I did not put R.E.P.'s full name is that I still hope...\n\n\nP.P.S. If I get enough responses I will post a summary, maybe even on a\nregular basis.\n\nVL\n--\n====================================\n\nDr.Victor V.Levenson               Tel (804) 924 2370 lab\nDept. of Biochemistry              Internet VVL2H@virginia.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2094, "properties": {"category": "talk.politics.guns", "text": "From: meyers@leonardo.rtp.dg.com (Bill Meyers)\nSubject: HR 1276 (\"A gun law I can live with!\" :-)\nDistribution: usa\nOrganization: N/I\nLines: 115\n\n\n103D CONGRESS \n1ST SESSION \n  \n                                  H. R. 1276 \n  \nTo establish the right to obtain firearms for security, and to use firearms\n    in defense of self, family, or home, and to provide for the enforcement\n    of such right.\n  \n                           ======================= \n  \n                       IN THE HOUSE OF REPRESENTATIVES \n  \n                               March 10, 1993 \n  \nMr. BARTLETT introduced the following bill; which was referred to the\n    Committee on the Judiciary \n  \n                           ======================= \n  \n                                    A BILL \n  \nTo establish the right to obtain firearms for security, and\n    to use firearms in defense of self, family, or home, and\n    to provide for the enforcement of such right.\n  \n        Be it enacted by the Senate and House of Representa-\n    tives of the United States of America in Congress assembled,\n  \n    SECTION 1. SHORT TITLE.\n  \n        This Act may be cited as the \"Citizens' Self-Defense\n    Act of 1993\". \n  \n    SEC. 2. RIGHT TO OBTAIN FIREARMS FOR SECURITY, AND\n        TO USE FIREARMS IN DEFENSE OF SELF,\n        FAMILY, OR HOME; ENFORCEMENT.\n  \n        (a) ESTABLISHMENT OF RIGHT. -- A person not pro-\n    hibited by Federal law from receiving a firearm shall have\n    the right to obtain firearms for security, and to use fire-\n    arms in defense of self, family, or home.\n  \n        (b) FIREARM DEFINED. -- As used in subsection (a),\n    the term \"firearm\" means a --\n  \n            (1) shotgun (as defined in section 921(a)(5) of\n        title 18, United States Code);\n\n            (2) rifle (as defined in section 921(a)(7) of such\n        title); or\n\n            (3) handgun (as defined in section 10 of Public\n        law 99-408).\n\n        (c) ENFORCEMENT OF RIGHT. --\n\n            (1) IN GENERAL. -- A person whose right under\n        subsection (a) is violated in any manner may bring\n        an action in any United States district court against\n        the United States, any State, or any person for\n        damages, injunctive relief, and such other relief as\n        the court deems appropriate.\n\n            (2) AUTHORITY TO AWARD A REASONABLE AT-\n        TORNEY'S FEE. -- In an action brought under para-\n        graph (1), the court, in its discretion, may allow the\n        prevailing party, other than a State, a reasonable\n        attorney's fee as part of the costs.\n\n        (d) STATUTE OF LIMITATIONS. -- An action may not\n    be brought under subsection (c)(1) after the 5-year period\n    that begins with the date the violation described therein\n    is discovered.\n\n------------------------ (end of HR 1276) ------------------------\n\n\nWell, this sounds good to me.  The key is Section (2)(c)(2), which\nwill effectively open up the Federal court system to all the folks\nwho can't afford to adopt an Attorney with whom to fight city hall.\nAll of you who've been saying \"hey, isn't that illegal?\" could just\ngo hire your own Attorneys on a pay-if-you-win (\"contingency fee\")\nbasis, and sue the bums ...   :-)\n\nWhat you can do now:\n\n(1)  Write your Representative, and ask them to co-sponsor HR 1276.\n\n(2)  Write Representative Roscoe Bartlett, the sponsor --\n\n        Representative Roscoe Bartlett\n        312 Cannon House Office Building\n        Washington, D.C. 20515\n\n     -- to tell him who your own Representative is, and that you've\n     asked them to join him as a co-sponsor of HR 1276.\n\n(3)  Contact Gun Owners of America --\n\n          Gun Owners of America\n          8001 Forbes Place\n          Springfield, Virginia 22151\n\n     -- which has committed to lobby on behalf of HR 1276.\n\n(4)  For those of us with a RealJob (TM), find out how to reach\n     Representative Bartlett's campaign fund (I'm working on it)\n     and toss in a few bucks.  You can bet your bippy that he's\n     going to be one of the HCI \"targets\" in the next election,\n     which isn't that far away (1994).\n\n(5)  Tell your family, friends, gun club, etc.  Enjoy ...   :-)\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2095, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: yjwu@eng.umd.edu (Yu-Jen Wu)\nSubject: What's the difference between ~30-pin and 72-pin SIMMS?\nOrganization: Project GLUE, University of Maryland, College Park\nLines: 17\nDistribution: world\nNNTP-Posting-Host: paxsunc.eng.umd.edu\n\nHi,\n\nCan anyone tell me the difference between ~30-pin and 72-pin Simms?\nI wish to get detailed information about the origin of these two\ndifferent types of Simms, preferably a magazine review aricle.\n\nBy the way, if there is a FAQ for this group which covers the Simms\ninformation, please also direct me to it.\n\nAny help/information would be very much appreciated.\n\n\nSincerely,\n\nYu-Jen Wu\nDept. of EE, Univ. of Maryland\nyjwu@eng.umd.eu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2096, "properties": {"category": "talk.religion.misc", "text": "From: thyat@sdf.lonestar.org (Tom Hyatt)\nSubject: Re: That Kill by Sword, Must be Killed by Sword\nOrganization: sdf public access Unix, Dallas TX 214/436-3281\nLines: 39\n\nIn article <19APR199310484591@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen) writes:\n>Now that chemical-warfare and the use of juggernauts have been\n>used against innocents -- so likewise are those involved subject\n>to their own judgments. The same goes for those who lead others \n>into captivity -- whether behind strands of barbed-wire, or webs \n>of deceit.\n>\n\nYeah. Innocents. People who hoard $250K worth of high-caliber automatic weapons\nand kill law-enforcement agents really fit the bill here. The only innocents\nwere the 20+ children who were prevented from leaving a burning building by\ntheir self-appointed messiah-following parents. A burning STARTED by the \nDavidians.\n\n\n>Such is the patience and faith of the saints.\n>\n>So let them continue -- for the one-who-rewards them according\n>to what their works shall be -- comes quickly. \n>\n>The evidence continues to mount, which all seems to follow \n>step-by-step quite logically to me. \n>\n>   |\n>-- J --\n>   |\n>   | stephen\n>\n\nIs this subject line a veiled threat against U.S. Government agents or possibly\nExecutive office leadership (i.e. Clinton)? I've considered you a bit of a loon,\nbefore, Stephen, I guess this pretty much confirms it. \n\nNice religion you have there.  The only ones who should be killed are those who\ndon't agree with us. Sheesh.\n\n\n-- \n--------------------------------------------------------------------------------Tom Hyatt                                  I'm a diehard Saints fan, so i've    thyat@sdf.lonestar.org                     suffered quite enough, thank you!    Arlington, TX                                                                                                                                                    Help! I'm being repressed!  -M.Python                                          -------------------------------\n\n-------------------------------------------------\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.097+0000", "event": "documents", "entityId": 2097, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Investment in Yehuda and Shomron\nOrganization: The Department of Redundancy Department\nLines: 22\n\nIn article <1483500346@igc.apc.org> cpr@igc.apc.org (Center for Policy Research) writes:\n\n>Those who wish to learn something about the perversion of Judaism,\n>should consult the masterly work by Yehoshua Harkabi, who was many\n>years the head of Israeli Intelligence and an opponent of the PLO. His\n\nYour suggestion to learn something about \"the perversion of Judaism\"\nfrom someone you claim has experience in Israeli intelligence and the\nPLO is like a suggestion to learn something about the conspiracy of\nSesame Street from someone with experience in fashion design and\npizza-making. \n\n>latest book was published in English and includes a very detailed analysis\n>of Judeo-Nazism.\n\n\"Judeo-Nazism\"?  CPR, you're in a league with Barf Shmidling himself.\nYou can take that as a compliment, if you see it that way.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2098, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jfb@cci632.cci.com (John Bruno)\nSubject: MS-Windows access for the blind?\nOrganization: [Computer Consoles, Inc., Rochester, NY\n\nWe are developing an MS-Windows based product that uses a full screen window\nto display ~24 rows of textual data.  Is there any product for Microsoft Windows\nthat will enable blind individuals to access the data efficiently (quickly) ??\n\nPlease email responses and I will post a summary to this group.\n\nThanks for any help\n--- John Bruno\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2099, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: Re: Western Digital HD info needed\nFrom: oharad@wanda.waiariki.ac.nz\nDistribution: world\nLines: 28\n\n\nIn article <9304172194@jester.GUN.de>, michael@jester.GUN.de (Michael Gerhards) writes:\n> Holly       KS (cs3sd3ae@maccs.mcmaster.ca) wrote:\n>> My Western Digital also has three sets of pins on the back. I am using it with\n>> another hard drive as well and the settings for the jumpers were written right \n>> on the circuit board of the WD drive......MA SL ??\n> \n> The ??-jumper is used, if the other drive a conner cp3xxx. \n> \n> no jumper set: drive is alone\n> MA: drive is master\n> SL: drive is slave\n\nyo,yo,yo .\nthe western digital hd will hve it marked either s,m,a\nput jumper on the s \"its printed on the circuitry underkneth it.\n\nhope i helped i had the same problem.\nbye..\nlater daze.\noharad@wanda.waiariki.ac.nz\n\n\n> \n> Michael\n> --\n> *  michael@jester.gun.de  *   Michael Gerhards   *   Preussenstrasse 59  *\n>                           *  Germany 4040 Neuss  *  Voice: 49 2131 82238 *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2100, "properties": {"category": "rec.sport.hockey", "text": "From: boora@kits.sfu.ca (The GodFather)\nSubject: LA ON ABC IN CANADA\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 16\n\n\tWas the ABC coverage of the Kings/Flames game supposed to be the\nway it was shown in BC with CBC overriding the ABC coverage?  When I flipped\nto ABC, it was the same commentators, same commercials even.  My question\nis:  Was this the real ABC coverage or did CBC just \"black out\" the \nABC coverage for its own?\n\n\n\tcomment:\n\n\tCBC had a great chance for some double headers:  Toronto/Detroit\nand Vancouver/Winnipeg, but today they said that the East gets the Leafs\nand the West get the Vancouver game.  I thought that they would show them\nboth.\n\n\t\tThe GodfAther\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2101, "properties": {"category": "talk.politics.mideast", "text": "From: hasan@McRCIM.McGill.EDU \nSubject: Re: Water on the brain (was Re: Israeli Expansion-lust)\nOriginator: hasan@lightning.mcrcim.mcgill.edu\nNntp-Posting-Host: lightning.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for  Intelligent Machines\nLines: 15\n\n\nIn article <1993Apr15.055341.6075@nysernet.org>, astein@nysernet.org (Alan Stein) writes:\n|> I guess Hasan finally revealed the source of his claim that Israel\n|> diverted water from Lebanon--his imagination.\n|> -- \n|> Alan H. Stein                     astein@israel.nysernet.org\nMr. water-head,\ni never said that israel diverted lebanese rivers, in fact i said that\nisrael went into southern lebanon to  make sure that no \nwater is being used on the lebanese\nside, so that all water would run into Jordan river where there\nisrael will use it  !#$%^%&&*-head.\n\nHasan \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2102, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Pantheism & Environmentalism\nOrganization: AI Programs, University of Georgia, Athens\nLines: 18\n\nIn article <Apr.12.03.44.17.1993.18833@athos.rutgers.edu> heath@athena.cs.uga.edu (Terrance Heath) writes:\n>\n>\tI realize I'm entering this discussion rather late, but I do\n>have one question. Wasn't it a Reagan appointee, James Watt, a\n>pentacostal christian (I think) who was the secretary of the interior\n>who saw no problem with deforestation since we were \"living in the\n>last days\" and ours would be the last generation to see the redwoods\n>anyway?\n\nI heard the same thing, but without confirmation that he actually said it.\nIt was just as alarming to us as to you; the Bible says that nobody knows\nwhen the second coming will take place.\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2103, "properties": {"category": "soc.religion.christian", "text": "From: REXLEX@fnal.fnal.gov\nSubject: Re: Certainty and Arrogance\nOrganization: FNAL/AD/Net\nLines: 70\n\nIn article <Apr.13.00.08.33.1993.28409@athos.rutgers.edu>\nkilroy@gboro.rowan.edu (Dr Nancy's Sweetie) writes:\n>\n>There is no way out of the loop.\n\nOh contrer mon captitan!  There is a way.  Certainly it is not by human reason.\n Certainly it is not by human experience. (and yet it is both!)  To paraphrase\nSartre, the particular is absurd unless it has an infinite reference point.  It\nis only because of God's own revelation that we can be absolute about a thing. \nYour logic comes to fruition in relativism.  \n>\n>\"At the core of all well-founded belief, lies belief that is unfounded.\"\n>                                                    -- Ludwig Wittgenstein\n\nAh, now it is clear.  Ludwig was a desciple of Russell. Ludwig's fame is often\nexplained by the fact that he spawned not one but two significant movements in\ncontemporary philosophy. Both revolve around Tractatus Logico-Philosphicus\n('21) and Philosophical Investigation ('53).  Many of Witt's comments and\nimplicit conclusions suggest ways of going beyond the explicit critique of\nlanguage he offers.  According to some of the implicit suggestions of Witt's\nthought, ordinary language is an invaluable resource, offering a necessary\nframework for the conduct of daily life.  However, though its formal features\nremain the same, its content does not and it is always capable of being\ntranscended as our experience changes and our understanding is deepened, giving\nus a clearer picture of what we are and what we wish to say.  On Witt's own\naccount, there is a dynamic fluidity of language.   It is for this reason that\nany critique of language must move from talking about the limits of language to\ntalking about its boundaries, where a boundary is understood not as a wall but\na threshold.\n  vonWrights's comment that Witt's \"sentences have a content that often lies\ndeep beneath the surface of language.\"  On the surface, Witt talks of the\ninsuperable position of ordinary language and the necessity of bringing\nourselves to accept it without question.  At the same time, we are faced with\nWitt's own creative uses of language and his concern for bringing about changes\nin our traditional modes of understanding.  Philosophy, then, through more\nperspicacious speech, seeks to effect this unity rather than assuming that it\nis already functioning. Yes?  The most brilliant of scientists are unable to\noffer a foundation for human speech so long as they reject Christianity! In his\nTractatus we have the well nigh perfect exhibition of the nature of the impasse\nof the scientific ideal of exhaustive logical analysis of Reality by man. \nPerfect language does not exist for fallen man, therefore we must get on about\nour buisness of relating Truth via ordinary language.\n\n  This is why John's Gospel is so dear to most Christians.  It is so simple in\nit conveyance of the revealation of God, yet so full of unlieing depth of\nunderstanding.  He viewed Christ from the OT concept of \"as a man thinketh, so\nhe is.\"  John looked at the outward as only an indicator of what was inside,\nthat is the consciousness of Christ.  And so must we.  Words are only vehicals\nof truth.  He is truth.  The scriptures are plain in their expounding that\nthere is a Truth and that it is knowable.  THere are absolutes, and they too\nare knowable.  However, they are only knowable when He reveals them to the\nindividual.  There is, and we shouldn't shy from this, a mysticism to\nChristianity.  Paul in ROm 8 says there are 3 men in the world.  There is the\none who does not have the Spirit and therefore can not know the things of the\nSpirit (the Spirit of Truth) and there is the one who has the Spirit and has\nthe capacity to know of the Truth, but there  is the third.  THe one who not\nonly has the Spirit, but that the Spirit has him! Who can know the deep things\nof God and reveal them to us other than the Spirit.  And it is only the deep\nthings of GOd that are absolute and true.\n   There is such a thing as true truth and it is real, it can be experienced\nand it is verifiable.  I disagree with Dr Nancy's Sweetie's conclusion because\nif it is taken to fruition it leads to relativism which leads to dispair.  \n\n\"I would know the words which He would answer me, and understand what He would\nsay unto me.\"  Job 23ff\n\n--Rex\n\nsuggested, easy reading about epistimology:  \"He is there and He is not Silent\"\n by Francis Schaeffer.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2104, "properties": {"category": "talk.politics.misc", "text": "From: demon@desire.wright.edu (Not a Boomer)\nSubject: Re: Clinton caves in: reduces jobs bill\nSummary: Too good to be true, evidently.\nOrganization: ACME Products\nLines: 18\n\nIn article <1993Apr16.131615.8661@desire.wright.edu>, demon@desire.wright.edu (Not a Boomer) writes:\n> \tClinton has backed off from the $16 billion jobs bill.\n> \n> \tWord is he's paring it down to the core: jobless benefits, money for\n> creating full time jobs (ie, no summer jobs money).\n> \n> \tChalk one up for holding the line on spending.\n\n\tIt seems radio reports were overly optimistic.  All Clinton wants to\ncut is $2.5 Billion for community block grants, keeping in summer jobs.\n\n\tHmmm, well, looks like we need to keep up the pressure on our\ncongresspersons.\n\nBrett\n________________________________________________________________________________\n\t\"There's nothing so passionate as a vested interest disguised as an\nintellectual conviction.\"  Sean O'Casey in _The White Plague_ by Frank Herbert.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2105, "properties": {"category": "sci.space", "text": "From: landis@stsci.edu (Robert Landis,S202,,)\nSubject: Re: Soviet Space Book\nReply-To: landis@stsci.edu\nOrganization: Space Telescope Science Institute, Baltimore MD\nLines: 9\n\nWhat in blazes is going on with Wayne Matson and gang\ndown in Alabama?  I also heard an unconfirmed rumor that\nAerospace Ambassadors have disappeared.  Can anyone else\nconfirm??\n\n++Rob Landis\n   STScI, Baltimore, MD\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2106, "properties": {"category": "sci.space", "text": "From: sysmgr@king.eng.umd.edu (Doug Mohney)\nSubject: Re: Moonbase race\nOrganization: Computer Aided Design Lab, U. of Maryland College Park\nLines: 22\nReply-To: sysmgr@king.eng.umd.edu\nNNTP-Posting-Host: queen.eng.umd.edu\n\nIn article <1993Apr21.204941.15055@iti.org>, aws@iti.org (Allen W. Sherzer) writes:\n>In article <1r46o9INN14j@mojo.eng.umd.edu> sysmgr@king.eng.umd.edu writes:\n>\n>>So how much would it cost as a private venture, assuming you could talk the\n>>U.S. government into leasing you a couple of pads in Florida? \n>\n>Why would you want to do that? The goal is to do it cheaper (remember,\n>this isn't government). Instead of leasing an expensive launch pad,\n>just use a SSTO and launch from a much cheaper facility.\n\nAllen, sometimes I think you're OK.  And sometimes you tend to rashly leap into\nmaking statement without thinking them out. \n\nWanna guess which today?\n\nYou'd need to launch HLVs to send up large amounts of stuff.  Do you know \nof a private Titan pad? \n\n\n\n    Software engineering? That's like military intelligence, isn't it?\n  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2107, "properties": {"category": "talk.politics.guns", "text": "From: dfo@vttoulu.tko.vtt.fi (Foxvog Douglas)\nSubject: Re: Rewording the Second Amendment (ideas)\nOrganization: VTT\nLines: 58\n\nIn article <1r1eu1$4t@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>In article <1993Apr20.083057.16899@ousrvr.oulu.fi>, dfo@vttoulu.tko.vtt.fi (Foxvog Douglas) writes:\n>> In article <1qv87v$4j3@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>> >In article <C5n3GI.F8F@ulowell.ulowell.edu>, jrutledg@cs.ulowell.edu (John Lawrence Rutledge) writes:\n>\n>> >> The massive destructive power of many modern weapons, makes the\n>> >> cost of an accidental or crimial usage of these weapons to great.\n>> >> The weapons of mass destruction need to be in the control of\n>> >> the government only.  Individual access would result in the\n>> >> needless deaths of millions.  This makes the right of the people\n>> >> to keep and bear many modern weapons non-existant.\n\n>> >Thanks for stating where you're coming from.  Needless to say, I\n>> >disagree on every count.\n\n>> You believe that individuals should have the right to own weapons of\n>> mass destruction?  I find it hard to believe that you would support a \n>> neighbor's right to keep nuclear weapons, biological weapons, and nerve\n>> gas on his/her property.  \n\n>> If we cannot even agree on keeping weapons of mass destruction out of\n>> the hands of individuals, can there be any hope for us?\n\n>I don't sign any blank checks.\n\nOf course.  The term must be rigidly defined in any bill.\n\n>When Doug Foxvog says \"weapons of mass destruction,\" he means CBW and\n>nukes.  When Sarah Brady says \"weapons of mass destruction\" she means\n>Street Sweeper shotguns and semi-automatic SKS rifles.  \n\nI doubt she uses this term for that.  You are using a quote allegedly\nfrom her, can you back it up?\n\n>When John\n>Lawrence Rutledge says \"weapons of mass destruction,\" and then immediately\n>follows it with:\n\n>>> The US has thousands of people killed each year by handguns,\n>>> this number can easily be reduced by putting reasonable restrictions\n>>> on them.\n\n>...what does Rutledge mean by the term?\n\nI read the article as presenting first an argument about weapons of mass\ndestruction (as commonly understood) and then switching to other topics.\nThe first point evidently was to show that not all weapons should be\nallowed, and then the later analysis was, given this understanding, to\nconsider another class.\n\n>cdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\n>OR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n\n\n-- \ndoug foxvog\ndouglas.foxvog@vtt.fi\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2108, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Stratus Computer, Inc.\nLines: 14\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <C5t2IC.DC@news.udel.edu>, roby@chopin.udel.edu (Scott W Roby) writes:\n\n> >>Please tell me what you think would have happened had the people \n> >>come out with their hands up several weeks ago.\n\n> Now will you answer my question up top?\n\nA suggestion: cameras panning over planted automatic weapons, followed by\na show trial and medals all around for the valiant forces of Lawn Order?\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2109, "properties": {"category": "talk.politics.guns", "text": "From: ccdarg@dct.ac.uk (Alan Greig)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Dundee Institute of Technology\nLines: 32\n\nIn article <1993Apr21.053035.29591@mcs.kent.edu>, mhamilto@Nimitz.mcs.kent.edu (The Lawnmowerman) writes:\n> In article <1r1j1l$4t@transfer.stratus.com>, cdt@sw.stratus.com (C. D. Tavares) writes:\n>> In article <1993Apr20.143255.12711@mcs.kent.edu>, mhamilto@Nimitz.mcs.kent.edu (The Lawnmowerman) writes:\n>> \n>> Oh, then, I guess that shooting THOSE kind of babies is all right.\n>> \n>> You sick bastard.\n>> -- \n>> \n>> cdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\n>> OR cdt@vos.stratus.com        write today for my special Investors' Packet...\n>> \n> \n> Why thanks for your reply to my post.  By the way, I never, never ever said \n> that it was right to shoot \"THOSE kind\" of babies.  However it was the Branch\n> Davidian people in there that insisted on staying there with their \"savior\" \n> (yeah right budy boy) because he had brain-washed them into believing that \n> what ever he says is the truth, even if means that they are to give up their\n> lives for <<<<HIS>>>> cause.  Therefore it is Davids fault and not the ATF's\n> who gave them 50 to 51 days to get out, this was 50 days to many for me and\n\nFor goodness sake if they had fired a cruise missile at the compound more\npeople would have come out alive. It was obvious to anyone with the remotest\ncontact with reality that such an outcome was likely (not just possible)\nhowever the fire started. As, Mr Lawnmower, you seem to have already entered\nyour own little virtual reality I guess you can't be expected to understand\nthings in the real universe.\n-- \nAlan Greig                            Janet: A.Greig@uk.ac.dct\nDundee Institute of Technology\t   Internet: A.Greig@dct.ac.uk\nTel: (0382) 308810                 (Int +44 382 308810)\n         ** Never underestimate the power of human stupidity **\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2110, "properties": {"category": "talk.politics.misc", "text": "From: bernard@sirius.gte.com (Bernard Silver)\nSubject: Re: Bill Conklin (et al) 's letter\n\t<1993Apr3.231858.27507@midway.uchicago.edu>\nOrganization: GTE Laboratories Incorporated\nLines: 27\nIn-reply-to: thf2@kimbark.uchicago.edu's message of 3 Apr 93 23:18:58 GMT\n\nIn article <1993Apr3.231858.27507@midway.uchicago.edu> thf2@kimbark.uchicago.edu (Ted Frank) writes:\n   In article <1993Apr3.223215.20655@colorado.edu> ajteel@dendrite.cs.Colorado.EDU (A.J. Teel) writes:\n   >\tWell, the two nifty letters giving concrete proof that the\n   >Income Tax is voluntary and giving specific procedures for stopping\n   >withholding, et cetera have been out there for a while now.\n   >\tThere has been no refutation to date. Have the nay-sayers\n   >finally given up as defeated? Sure would like to hear there reasons\n   >for disbelief at this point.\n\n   Probably because you have yet to respond to the refutation I've posted.\n   Teel, it's bad enough you post this bs, it's even worse that you don't\n   even try to defend it when it gets torn to pieces, but then posting\n   that no one's looked at it and gloating when all facts point to the\n   contrary point to a severely deluded mind.\n\nWhat I found interesting about Conklin's letter is the \n6 cases he has won against the IRS.  Now, assuming that\nthese cases really exist and were one by him (anyone checked?)\nthey may have nothing to do with his major tax claim.  The IRS fought\none of his deductions.   Defending your deductions seems puny when\nyou believe that there is no need to file in the first place!\n\n--\n\t\t\t\tBernard Silver\n\t\t\t\tGTE Laboratories\n\t\t\t\tbsilver@gte.com\n\t\t\t\t(617) 466-2663\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2111, "properties": {"category": "sci.electronics", "text": "From: cobust@seagoon.ee.sun.ac.za (Cobus Theunissen)\nSubject: Wide band Analog time delay\nOrganization: Rhodes University, Grahamstown, South Africa\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 6\n\nHi there,\n\nI am looking for a wide band analog time delay (not phase delay)\nvariable from 200 microseconds to 2 milliseconds.\n\nPlease reply via email to rrc@firga.sun.ac.za\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2112, "properties": {"category": "sci.med", "text": "From: rind@enterprise.bih.harvard.edu (David Rind)\nSubject: Re: Adult Chicken Pox\nDistribution: usa\nOrganization: Beth Israel Hospital, Harvard Medical School, Boston Mass., USA\nLines: 15\nNNTP-Posting-Host: enterprise.bih.harvard.edu\n\nIn article <C5pM3o.BDo@feenix.metronet.com> marcbg@feenix.metronet.com\n (Marc Grant) writes:\n>all over my bod.  At what point am I no longer infectious?  My physician's\n>office says when they are all scabbed over.  Is this true?\n\nYes.\n\n>Is there any medications which can promote healing of the pox?  Speed up\n>healing?\n\nAcyclovir started in the first 1-2 days probably speeds recovery and\ndecreases the formation of new pox.\n-- \nDavid Rind\nrind@enterprise.bih.harvard.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2113, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: More on Center for Anti-Irsael Rhetoric\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 9\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nDear Mr. Davidsson,\n\n   You claim that your purpose is to fight racism.  But you don't\nseem to have any interest in injustice except that which may have\nbeen committed by Israel.  The treatment of Jews in Arab nations,\nan injustice of staggerring proportions, is an injustice that you\ndo not seem to care the least bit about.  Why not?\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2114, "properties": {"category": "rec.sport.baseball", "text": "From: cabanrf@wkuvx1.bitnet\nSubject: Re: My Belated Predictions (NL)\nOrganization: Western Kentucky University, Bowling Green, KY\nLines: 56\n\nIn article <mssC4zyo8.JsC@netcom.com>, mss@netcom.com (Mark Singer) writes:\n> In article <Apr.4.19.42.08.1993.12176@pilot.njin.net> gajarsky@pilot.njin.net (Bob Gajarsky - Hobokenite) writes:\n>>i've said the braves would improve by injury as well.  here's how.\n>>\n>>javier lopez is a better catcher than greg olson.\n>>ryan klasko is a better firstbaseman than bream.\n>> chipper jones is a better shortstop than anyone the braves\n>> put out there.\n>>\n>>mel nieves is better than nixon/sanders.\n>>\n>>that's how. it FORCES them to play the young guys.\n>>\n>>- bob gaj\n> \n> I continue to be amazed at these comments.  While Lopez might *some\n> day* be a better catcher than Olson, I find it totally amazing for\n> you to suggest that this 22 year-old with three seasons of professional\n> baseball is *now* better than Olson, a five-year MLB veteran who is\n> noted for his ability to call a game, and who has a better-than-average\n> arm.  Oh, perhaps you are talking about hitting.  Well, sure, Lopez\n> *might* hit better.  Perhaps he *probably* will.\n> \n> But has there ever in the history of baseball been a 22-year-old (or\n> younger) *rookie* catcher who compared favorably among all league\n> catchers in terms of defense and brought a .247 bat?  Wasn't it \n\nYes, Ivan Rodriguez, last year.  Batted .260 and threw out 51% of the\nbaserunners.  Not too shabby for a rookie from AA.  20 years old last\nyear.\n\n> Sandy Alomar who was supposed to be that good in his rookie year?\n> Not.  Wasn't it Benito Santiago who was supposed to be that good\n> in his rookie year?  Not.\n> \n> I can continue this thread with the others mentioned, but you get\n> the point.  You and others seem to be so quick to dismiss the \n> seasoned veterans in favor of the hot *young* rookies.  Perhaps -\n> just perhaps - the management team of the pennant-winning Braves\n> knows something more than you do.  And perhaps what they know is\n> that very, very few 21- and 22-year old rookies come up to the majors\n> and make an impact. \n> \n> \n> --\tThe Beastmaster\n> \n> \n>  \n> -- \n> Mark Singer    \n> mss@netcom.com\n-- \nRoy F. Cabaniss......................*Wait till Tommy meets the Lord and\nWestern Kentucky University..........*finds out that He's wearing pinstripes.\nAll opinions contained herein........*Gaylord Perry (talking about Lasorda)\nAre all mine own, and that's the sin.*Baseball, what a way to spend a day!!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2115, "properties": {"category": "misc.forsale", "text": "From: foxfire@access.digex.com (foxfire)\nSubject: Car AMP [Forsale]\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 45\nNNTP-Posting-Host: access.digex.net\n\n\n=========================\n=Car Audio System Items:=\n=========================\n\nSony XR-7070 Head Unit (Radio): Pullout\n==============================\n20 W x 4 max. Dolby B. Controls all Sony CD Changers: disc/track\nselect; track/disc scan; repeat; shuffle play. Features auto reverse;\nlogic controls. 6AM/18FM presets; strong station memory; preset scan;\ntuner monitor; seek/manual tuning; mono/stereo and local/dx switches.\nMetal tape compatible. Fader.......Orig $299 \n\n\nSony CDX-A15 10 Disc CD Changer:\n===============================\n4x oversampling, dual D/A converters with single clock design. Features\none-beam laser; spring and silicon-charged suspension system; horizontal\nor vertical mounting; 13-pin DIN connector; 10-disc magazine; connecting\ncable. 5-20,000 Hz; 0.05% THD.......Orig $399\n\n**** ASKING **** $450 for Both the Radio (CD Controller) and the CD Changer.\nThere are no problems with either unit and they are both in reasonably good\ncondition. (The Radio and CD Changers will only be sold TOGETHER.).\n\n\n\n\nTWO (2) Coustic Amp-360:\n========================\n3 Channels; bridgeable. 30w x 2 + 105w X 1 into 4 ohms from 20-20,000 Hz\nwith 0.09% Thd. 1 Channel - 150w x 1 into 4 ohms from 20-20,000 Hz with\n0.2% Thd or 2 Channels - 65w x 2 into 4 ohms from 20-20,000 Hz with 0.09%\nThd. 2 ohm stable. Features pwm switching power supply w/ protection\ncircuits.......Orig $249\n\n**** ASKING **** $150/each. The units are in good working condition and\nare currently being used to supply power to my subs (Can demonstrate\npower ratings!!). \n\n\nIf you are interested in any of the above items, or have any questions\ndrop me some E-Mail.\n\nfoxfire@access.digex.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2116, "properties": {"category": "talk.politics.guns", "text": "From: graham@cs.washington.edu (Stephen Graham)\nSubject: Re: Some more about gun control...\nOrganization: Computer Science & Engineering, U. of Washington, Seattle\n\nIn article <1qicep$obf@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>In article <1993Apr14.232806.18970@beaver.cs.washington.edu>, graham@cs.washington.edu (Stephen Graham) writes:\n>> In article <1qhpcn$b12@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>> >As far as \"John Q. Public with a gun,\" the Supreme Court has already\n>> >ruled in cases such as US v. Miller (307 U.S. 175 (1939)), and US v.\n>> >Verdugo-Urquidez (110 S. Ct. 1839 (1990)) that that is EXACTLY what \n>> >the amendment protects.  This interpretation can be found as far back\n>> >as the Dred Scott case, in 1857.\n>> \n>> It's worth noting that US vs. Miller sustained Miller's conviction\n>> of possession of an illegal firearm, noting that a sawed-off shotgun\n>> was not a proper militia weapon. \n>\n>No, they noted that no one had CLAIMED that it was a proper militia\n>weapon (despite having been used in at least two wars).  This was true,\n>since neither Miller nor his lawyer appeared before the Court.\n\nDid they or did they not sustain Miller's conviction? I don't have the\ntext of the case handy. \n\nYes, shotguns had been used in WWI, the Spanish-American War, and the\nUS Civil War. That was not in question. The possession of a sawed-off\nshotgun was, i.e., a weapon altered to improve concealibility.\n\n>> Therefore, US vs. Miller supports limited government regulation of \n>> firearms.\n>\n>Don't go arguing down this road unless you are willing to abide by \n>the consequences that you find at the end of it -- mainly, that the\n>law-abiding common man has a right to own any weapon that has a militia \n>purpose, from handguns to sawed-off shotguns and fully automatic weapons.\n>That, in fact, is what this decision says.\n\nYou are free to produce evidence that I'm not willing to abide with\nall the implications of this. \n\nJust because I don't whole-heartedly endorse the NRA position does not\nmean that I oppose the RKBA. This attitude is what makes the NRA\nunpopular.\n\n-- \nStephen Graham\ngraham@cs.washington.edu\t uw-beaver!june!graham\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2117, "properties": {"category": "alt.atheism", "text": "From: cobb@alexia.lis.uiuc.edu (Mike Cobb)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: University of Illinois at Urbana\nLines: 39\n\nIn <11825@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>In article <C5Jxru.2t8@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike \nCobb) writes:\n>>What do you base your belief on atheism on?  Your knowledge and reasoning? \n>>COuldn't that be wrong?\n>>\n\n>  Actually, my atheism is based on ignorance.  Ignorance of the\n>  existence of any god.  Don't fall into the \"atheists don't believe\n>  because of their pride\" mistake.\n\nHow do you know it's based on ignorance, couldn't that be wrong? Why would it\nbe wrong \nto fall into the trap that you mentioned? \n\nAlso, if I may, what the heck where we talking about and why didn't I keep \nsome comments on there to see what the line of thoughts were?\n\nMAC\n \n\n\n>/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\n>Bob Beauchaine bobbe@vice.ICO.TEK.COM \n\n>They said that Queens could stay, they blew the Bronx away,\n>and sank Manhattan out at sea.\n\n>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n--\n****************************************************************\n                                                    Michael A. Cobb\n \"...and I won't raise taxes on the middle     University of Illinois\n    class to pay for my programs.\"                 Champaign-Urbana\n          -Bill Clinton 3rd Debate             cobb@alexia.lis.uiuc.edu\n                                              \nWith new taxes and spending cuts we'll still have 310 billion dollar deficits.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2118, "properties": {"category": "talk.politics.misc", "text": "From: asper@calvin.uucp (Alan E. Asper)\nSubject: Re: Top Ten Ways Slick Willie Could Improve His Standing With Americans\nOrganization: /usr/lib/news/organization\nLines: 13\nNNTP-Posting-Host: calvin.sbc.com\n\nIn article <mwalker-160493090617@mwalker.npd.provo.novell.com> mwalker@novell.com (Mel Walker) writes:\n>\n>> Copyright (c) Edward A. Ipser, Jr., 1993\n>\n>This means we can't quote Ed without his permission. No using these lists\n>in your .sigs, folks!\n\nOh, darn.\nOkay, okay, let's stop slamming Ipser, and get on with making fun of other\npeople.\n\nAlan\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2119, "properties": {"category": "alt.atheism", "text": "From: perry@dsinc.com (Jim Perry)\nSubject: Re: Is Morality Constant (was Re: Biblical Rape)\nOrganization: Decision Support Inc.\nLines: 51\nNNTP-Posting-Host: dsi.dsinc.com\n\nThis (frayed) thread has turned into a patented alt.atheism 5-on-1\nping-pong game, and I don't have any strong disagreement, so I'll try\nto stick to the one thing I don't quite follow about the argument:\n\nIt seems to me that there is a contradiction in arguing that the Bible\nwas \"enlightened for its times\" (i.e. closer to what we would consider\nmorally good based on our standards and past experience) on the one\nhand [I hope this summarizes this argument adequately], and on the\nother hand:\n\nIn article <1993Apr03.001125.23294@watson.ibm.com> strom@Watson.Ibm.Com (Rob Strom) writes:\n}In article <1phpe1INN8g6@dsi.dsinc.com>, perry@dsinc.com (Jim Perry) writes:\n\n}|> }Disclaimer:  I'm speaking from the Jewish perspective,\n}|> }where \"the Bible\" means what many call the Old Testament,\n}|> }and where the interpretation is not necessarily the\n}|> }raw text, but instead the court cases, commentaries\n}|> }and traditions passed down through Jewish communities.\n}|> \n}|> This seems the crux to me: if you judge the Bible according to a long\n}|> line of traditions and interpretations coming down to the current day,\n}|> rather than on its own merits as a cultural artifact, then of course\n}|> it will correspond more closely with more contemporary values.\n}\n}But if that's how the Bible is actually being used today,\n}shouldn't that be how we should judge it?  If most people\n}use scissors to cut paper, shouldn't Consumer's Reports\n}test scissors for paper-cutting ability, even though\n}scissors may have been designed originally to cut cloth?\n\nThat's possibly a good way to judge the use of the Bible in teaching\nJewish morality today, but it hardly seems fair to claim that this\nhighly-interpreted version is what was \"enlightened for its times\".\nTo (attempt to) extend the analogy, this is like saying that the\noriginal scissor-makers were unusually advanced at paper-cutting for\ntheir times, even though they only ever cut cloth, and had never even\nheard of paper.\n\nI'm not arguing that the Bible is \"disgusting\", though some of the\nhistory depicted in it is, by modern standards.  However, history is\nfull of similar abuses, and I don't think the Biblical accounts are\nworse than their contemporaries--or possibly ours.  On the other hand,\nI don't know of any reason to think the history described in the Bible\nshows *less* abuse than their contemporaries, or ours.  That complex\nand benign moral traditions have evolved based on particular mythic\ninterpretations of that history is interesting, but I still don't\nthink it fair to take that long tradition of interpretation and use it\nto attack condemnation of the original history.\n-- \nJim Perry   perry@dsinc.com   Decision Support, Inc., Matthews NC\nThese are my opinions.  For a nominal fee, they can be yours.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2120, "properties": {"category": "talk.politics.mideast", "text": "From: mucit@cs.rochester.edu (Bulent Murtezaoglu)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nIn-Reply-To: henrik@quayle.kpc.com's message of Tue, 20 Apr 1993 16:45:17 GMT\nNntp-Posting-Host: vein.cs.rochester.edu\nOrganization: Computer Science Department, University of Rochester\n\t<1993Apr17.185118.10792@ee.rochester.edu>\n\t<1993Apr19.155856.8260@kpc.com>\n\t<1993Apr20.000413.25123@ee.rochester.edu>\n\t<1993Apr20.164517.20876@kpc.com>\n\nIn article <1993Apr20.164517.20876@kpc.com> henrik@quayle.kpc.com writes:\n[stuff deleted]\n\n> Country. Turks and Azeris consistantly WANT to drag ARMENIA into the\n> KARABAKH conflict with Azerbaijan. \n\nGimme a break.  CAPITAL letters, or NOT, the above is pure nonsense.  It\nseems to me that short sighted Armenians are escalating the hostilities\nwhile hoping that Turkey will stay out.  Stop and think for a moment,\nwill you?  Armenia doesn't need anyone to drag her into the conflict, it\nis a part of it.  \n\n>The KARABAKHI-ARMENIANS who have lived\n>in their HOMELAND for 3000 years (CUT OFF FROM ARMENIA and GIVEN TO AZERIS \n>BY STALIN) are the ones DIRECTLY involved in the CONFLICT. They are defending \n>themselves against AZERI AGGRESSION. \n\nHuh?  You didn't expect Azeri's to be friendly to forces fighting with them\nwithin their borders?  \n\n[...]\n> At last, I hope that the U.S. insists that Turkey stay out of the KARABAKH \n> crisis so that the repeat of the CYPRUS invasion WILL NEVER OCCUR again.\n\nYou're not playing with a full deck, are you?  Where would Turkey invade?\nAre you throwing the Cyprus buzzword around with s.c.g. in the header\nin hopes that the Greek netters will jump the gun?  Yes indeed Turkey\nhas the military prowess to intervene, what she wishes she had, however, is \nthe diplomatic power to stop the hostilities and bring the parties to the\nnegotiating table.  That's hard to do when Armenians are attacking Azeri \ntowns.  Armenian leaders are lacking the statesmanship to recognize the \nfutility of armed conflict and convince their nation that a compromise that \nleads to stability is much better than a military faits accomplis that's \ngoing to cause incessant skirmishes.  Think of 10 or 20 years down the \nline -- both of the newly independent countries need to develop economically\nand neither one is going to wipe the other out.  These people will be\nneighbors, would it not be better to keep the bad blood between them minimal?\n\nIf you belong to the Armenian diaspora, keep in mind that what strikes\nyour fancy on the map is costing the local Armenians dearly in terms of their\nblood and future.  It's easy to be comfortable abroad and propagandize \ncraziness to have your feelings about Turks tickled.  The Armenians\nin Armenia and N-K will be there, with the same people you seem to hate \nas their neighbors, for maybe 3000 years more.  The sooner there's peace in\nthe region the better it is for them and everyone else.  I'd push for\ncompromise if I were you instead of hitting the caps-lock and spreading\ninflammatory half-truths.\n\ncheers,\n\nBM\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.098+0000", "event": "documents", "entityId": 2121, "properties": {"category": "rec.sport.hockey", "text": "From: seth@cbnewsh.cb.att.com (peter.r.clark..jr)\nSubject: FLYERS notes 4/5\nOrganization: AT&T\nKeywords: FLYERS/Leafs summary (take that, Leafs woofers!)\nLines: 225\n\n\n\nThe FLYERS team that can beat any team on any night showed up at the Spectrum\nSunday night, and dominated the Maple Leafs thoroughly en route to a 4-0\nshutout. Tommy Soderstrom will get credit for the shutout, but he barely broke\na sweat until the third period as the FLYERS defense kept the Leafs from\nmounting any serious attack.\n\nInjuries:\n\nPelle Eklund is day-to-day with a bruised thigh.\n\nRoster Moves:\n\nJason Bowen was added to the lineup for his first NHL game. Jason was the FLYERS\nsecond pick in the first round (15th overall) of the 1992 entry draft. 19 years\nold, 6'4\", 210 lbs. In 62 games with the tri-city Americans he had 10 goals,\n12 assists and 219 PIM. He plays left wing and defense, he played defense in\nthis game although Bobby Taylor said that Bill Dineen was planning to use him\nup front as well.\n\nAndre Faust was returned to Hershey. He actually left after the second period\nof the Kings game, flew to Albany, got the game tying goal in a Bears OT win,\nand played again for Hershey Sunday night.\n\nLines:\n\nFedyk-Lindros-Recchi\nBeranek-Brind'Amour-Dineen\nLomakin-Butsayev-Conroy\nActon-Brown\n\nGalley-McGill\nYushkevich-Cronin\nCarkner-Hawgood\nBowen\n\nTommy Soderstrom in goal.\n\nActon replaced Lomakin in the 3rd period.\n\nGame Summary:\n\nIf the FLYERS played like this every night, they'd be in the playoffs this\nyear. The FLYERS hit everything that moved. They created scoring chance after\nscoring chance. They snuffed out everything that the Leafs tried to do.\n\nJason Bowen made a good play on his first NHL shift that almost created a goal.\nHe had the puck in the top of the left offensive circle all alone, but instead\nof taking the shot he found Brind'Amour crashing the net on the other side.\nA perfect pass and a good shot across Daren Puppa's body should have been a\ngoal, but Puppa made a great save reading the play.\n\nGarry Galley gave the Maple Leafs 7th ranked power play the first chance when\nhe hooked Doug Gilmour at 4:25. The FLYERS lowly 21st ranked penalty killing\nunit was almost flawless the entire game, and set the tone on this kill. The\nMaple Leafs got almost nothing but long unscreened shots, and the defense swept\naway every rebound.\n\nAfter the power play, the FLYERS got a goal on an ugly play. Rod Brind'Amour\ngave the puck to Greg Hawgood at the right point, and he sent a drive at the\nnet. Puppa made the save and kicked the rebound right into the feet of Josef\nBeranek and Bob Rouse, who were wrestling in the slot. Beranek was able to\nget his stick on the puck and push it out to Dineen who was skating into\nthe slot from the right circle, and he lifted a backhander over Puppa for\na 1-0 FLYERS lead at 8:10.\n\nThe FLYERS kept the pressure on, and Puppa was the only Leaf keeping the FLYERS\nfrom building on their lead for a while. Eventually things settled down and\ndefense prevailed. Each team got an occasional scoring chance, but the goalies\nwere strong. Bowen started giving some Lindros-like checks in his own corners.\nThen Lindros, who was looking to avenge a hit Foligno gave him, thought he had\na chance to even the score. He had Foligno lined up at center ice, leaned into\nhim, and rode him into the center ice boards. The only problem was that Foligno\nwas a little far from the boards, and Mike \"Mister\" McGeough felt that it\nwarranted a boarding call at 15:38\n\nThe Leafs couldn't get anything going on the power play as the FLYERS were\nvery aggressive (for a change) on the kill.\n\nWith time running out in the period, Recchi carried through the neutral zone\nand handed to Lindros as they approached the Leaf's blue line. They were in\na crowd with Wendell Clark and Jamie Macoun, Lindros tried a backhand pass\nto Recchi through the feet of Macoun that connected to Recchi, but then Clark\nchecked Recchi off the puck. Macoun then tried to clear, but it was weak and\nwent right to McGill who had manned the point. He drove it from just inside\nthe blue line. Macoun got his stick on it and deflected it past his own\ngoalie at 19:55.1. Shots were 13-8 FLYERS in the period.\n\nThe FLYERS finally got their first chance on the power play when Dave Andreychuk\ntripped up Rod Brind'Amour in his offensive zone. During the power play, the\nFLYERS got cheated a little when the puck popped up into the air and Eric\ngloved it down, but McGeough thought it hit his stick above his head. We\ncould see from our seats at the other end of the ice that it only hit his glove\nand the replay confirmed, but the faceoff went to the other end. As time was\nrunning out in the advantage, Lindros found Galley with a pass across the goal\nmouth but Puppa made the save. The rebound kicked back to the right corner where\nRecchi picked it up, passed it out to Eric crashing through the right circle,\nand Eric one-timed past Puppa at 7:55. With the assist, Recchi moves past\nBobby Clarke's 74-75 season, the second best one season total for a FLYER at\n117.  Eric moves up to 4th all time in FLYERS rookie scoring with 67 points.\n\nMike Eastwood took down Al Conroy at 8:30 to give the FLYERS another chance on\nthe power play. Not much pressure before Garry Galley ended the power play with\na slash at 9:19. Not much happened on the 4 on 4, although the Leafs had most\nof the possession. The FLYERS smothered the Leafs short power play. Tempers\nflared a little at 13:14. Bowen and Pearson got roughing minors, Keith Acton\ngot a bloody face. Dave McLlwain then took a dive and got Greg Hawgood a\nhooking minor at 13:46 to set up a 4 on 3. The replay showed that Hawgood's\nstick stopped making contact with McLlwain long before he spun around and fell.\nAgain the FLYERS smothered the Leafs power play, led by Dimitri Yushkevich.\nBowen made a thundering hit when he came out of the box on Pearson. Berehowski\ntried to perplex everybody with his sloooowball. He had the puck at the point,\nand just trickled a pass down the slot. He made all the FLYERS look silly as\nnobody could get a stick on it, and it got to Gilmour at the side of the net,\nbut Soderstrom stoned him.\n\nThe FLYERS picked things up offensively after the kill was over, but didn't\nget anything home. Shots were 13-10 FLYERS.\n\nThe FLYERS were content with the 3 goal lead in the third period, and they\ndecided that if Tommy wanted a shutout, he was going to have to work for it a\nlittle.\n\nThe FLYERS got most of the scoring chances in the first 7 or so minutes of the\nperiod, but couldn't get past Puppa. Then the Leafs got tired of Lindros making\nroad kill out of them, and tempers flared. 2 each for Doug Gilmour and Lindros \n(unsportsmanlike conduct) and 2 each for Glenn Anderson and McGill (roughing)\nall at 7:02. Terry Carkner then took a kneeing penalty at 7:51 on Gilmour.\n\nAgain the FLYERS smothered the Leafs power play.\n\nAt about the 12 minute mark, Dave Andreychuk got a shot away from his left\ncircle that got through Soderstrom. The puck was rolling on it's side, and\nas luck would have it it turned away from the net instead of turning towards\nit (think of how a rolling quarter inevitably starts to lean one way or the\nother). Seconds later Rod Brind'Amour tripped up Gilmour at 12:24 to give the\nLeafs another chance on the power play. On the advantage, after Soderstrom\nstoned Andreychuk while lying down, Andreychuk got the rebound through\nSoderstrom, but from behind the net and it went straight through and was swept\naway by one of his defensemen. They kept the pressure on, but Soderstrom was\nequal and preserved the shutout.\n\nRecchi cross checked Ken Baumgartner to get tempers hot and start a brawl\nat 16:01. No punches thrown, Recchi got the initial minor, Krushelnyski\nBaumgartner and Lindros each got roughing minors. At 17:02 Rouse and Beranek\nexpressed their mutual dislike for each other and got 2 each for slashing to\nset up another 4 on 4. Mike Eastwood shoved down Ryan McGill in the FLYERS\nzone as they were battling for the puck, and while McGill was down he ran\nhis stick across McGill's face. The FLYERS were not happy with that at all.\n5-8 Al Conroy paired up with 6-1 Berehowski, and started throwing punches.\nUpward. Well, Al held his own, much to the delight of the crowd. Each got\na couple punches in before going down in a head, and Al got a standing O!\nPenalties: Eastwood 5 (cross check) + game, Clark, Carkner 10 each. Berehowski\nand Conroy 5 each (fighting) at 17:49.\n\nSo a major penalty for the rest of the game for the FLYERS. The had no interest\nin stting on the lead. Hawgood, Galley and Brind'Amour played catch until\nHawgood found Dineen all alone in the left circle, he controlled the puck and\nblasted it past Puppa at 18:39.\n\nThat was all the fireworks, Tommy Soderstrom would not face another shot. Puppa\ndid, but kept the FLYERS off the board. 4-0 FLYERS, shots were 9-8 FLYERS in the\n3rd. Probably the strongest game I've seen from the FLYERS since the All Star\nbreak. Shutout number 4 for Soderstrom, all since 1/10. Tied for 2nd most in\nthe NHL, but he's played fewer games than Belfour (6) or the goalie I can't\nremember that he's tied with.\n\nNext up it's the Winnipeg Selannes Tuesday night in Winnipeg. The FLYERS cannot\nbe eliminated if they win, but a loss coupled with an Islander win that night\nin Washington would be the official end.\n\nFLYERS up to 71 points on the season in 78 games. Last year they had 75 points\nin 80 games (5 under .500), so they need at least 8 points in their last 6\ngames to improve on that only by percentage points (5 under in 84 is better\nthan 5 under in 80).\n\nTragic number holds at 3 points with 6 games left. The tragic number for 5th\nis 5 points, I watched the Rangers blow a 4-2 third period lead at home to\nlose 5-4 before I finished this up. Why 5 points instead of 4? Well, the FLYERS\nwill win the tie-breaker if they catch them, whereas the Islanders win tie\nbreakers against the FLYERS and so need only a tie. The Rangers could crumble\ndown the stretch as they play the Devils, the Pens twice, the FLYERS, and\nfinish up with 2 games against the Caps. So I guess 5th place could be the\ngoal for the team to focus on.\n\nFLYERS team record watch:\n\nEric Lindros:\n\n38 goals, 29 assists, 67 points\n\n(rookie records)\nclub record goals:\t\t\tclub record points:\nEric Lindros\t38 1992-93\t\tDave Poulin\t76 1983-84\nBrian Propp\t34 1979-80\t\tBrian Propp\t75 1979-80\nRon Flockhart\t33 1981-82\t\tRon Flockhart\t72 1981-82\nDave Poulin\t31 1983-84\t\tEric Lindros\t67 1992-93\nBill Barber\t30 1972-73\t\tPelle Eklund\t66 1985-86\n\nMark Recchi:\n\n51 goals, 66 assists, 117 points.\n\nclub record goals:\t\t\tclub record points:\nReggie Leach\t61 1975-76\t\tBobby Clarke\t119 1975-76\nTim Kerr\t58 1985-86,86-87\tMark Recchi\t117 1992-93\nTim Kerr\t54 1983-84,84-85\tBobby Clarke\t116 1974-75\nMark Recchi\t51 1992-93\t\tBill Barber\t112 1975-76\nRick Macliesh\t50 1972-73\t\tBobby Clarke\t104 1972-73\nBill Barber\t50 1975-76\t\tRick Macliesh\t100 1972-73\nReggie Leach\t50 1979-80\n\nFLYERS career years:\n\nPlayer\t\tPoints\tBest Prior Season\nMark Recchi\t117\t113 (90-91 Penguins)\nRod Brind'Amour\t79\t77 (91-92 FLYERS)\nGarry Galley\t58\t38 (84-85 Kings)\nBrent Fedyk\t58\t35 (90-91 Red Wings)\n\nThat's all for now...\n\npete clark jr - rsh FLYERS contact and mailing list owner\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2122, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ryvg90@email.sps.mot.com (Koji Kodama)\nSubject: >>>WANTED: Your opinions on the Insight Talon TA-1000 or TA-2000 Multimedia kits<<<\nNntp-Posting-Host: 223.7.248.49\nOrganization: Motorola Inc, Austin, Texas\nLines: 47\n\n\nFor those of you who might be familiar with Insight Distribution\n     Network, Inc. and their Multimedia Kits:\n\nI'm seriously considering buying the Insight Talon TA-2000 MM Kit, which\nis bundled with the CD-ROM drive with 265-280ms access time, 300Kb dtr,\nmultispin, multi-session Photo CD capability, etc., and with the PAS-16\nsound card, etc.... (if you are familiar with Insight, you know the kit\nI mean).  I believe the drive is either a Texel (265ms) or an NEC\n(280ms), but it is not clear to me which one is actually a part of the\nbundle (at least two of their sales people couldn't give me a straight\nanswer as to which one; ah, yes, one of the drawbacks of OEM!).\n\nOther questions:\n\n- Excuse my ignorance, but is \"Texel\" a reputable maker in the CD-ROM\n  market?  Or do you think NEC is the better drive?\n\n- Bottom line:  Is this kit worth the money?  (Currently, $449 for the\n  TA-1000, and $699 for the TA-2000)\n\nAlternatively, I was thinking that the TA-2000 might be overkill for my\nuses (however, I *do* want full multimedia capabilities, Photo CD stuff,\neducational programs for my kids, etc.), and considered the lower-end\nTA-1000 kit and using the difference (around $250.00) to get something\nelse useful, like a tape back-up drive unit.\n\nBasically, I would just like to hear from those who have actually USED\nthese kits, and whatever pros/cons you might advise, preferably\ndirectly to the email address below.\n\nThanks,\n\nKoji\n\n                            2\n                         _/\n  ~~~~~~~~~~_/~~~~~~~~~~_/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n  |        _/        _/    |                  Koji Kodama                  |\n  |  by   _/      _/       |              Nippon Motorola Ltd.             |\n  |      _/    _/          |            ryvg90@email.sps.mot.com           |\n  |     _/  _/             |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n  |    _/_/  _/            |      NOTE: The opinions expressed herein      |\n  |   _/      _/           |   are mine, and do not reflect the opinions   |\n  |  _/        _/          |or policies of Motorola Inc. or its affiliates.|\n  ~~_/~~~~~~~~~~_/~~~~~_/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n                 _/_/_/\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2123, "properties": {"category": "sci.crypt", "text": "From: gumby@tweedledumb.cygnus.com (D V Henkel-Wallace)\nSubject: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: Cygnus Support, Cambridge, MA USA\nLines: 11\nNNTP-Posting-Host: tweedledumb.cygnus.com\nIn-reply-to: jhart@agora.rain.com's message of 19 Apr 93 19:57:21 GMT\n\n   Date: 19 Apr 93 19:57:21 GMT\n   From: jhart@agora.rain.com (Jim Hart)\n\n   \"Simply?\" \"Everyone\" should have this attitude?   The only people\n   who can have this attitude are the most hard-core\n   computer hackers, who never make phone calls away from their\n   computer\n\nIn 10 yeards everybody will be talkig into his or her PDA anyway.\nThat should solve most of the problem.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2124, "properties": {"category": "comp.graphics", "text": "From: pest@konech.UUCP (Wolfgang Pest)\nSubject: Speedstar 24 - how to program the TrueColor mode ?\nDistribution: world\nOrganization: Kontron Elektronik GmbH Eching, Germany\nLines: 17\n\nHello,\nI purchased my new 486 with a NoName graphics card installed which is obviously \nSpeedstar 24 compatible. Its name is \"VGA 4000 TrueColor\".\nIt is accompanied with some drivers and the utilities VMODE, XMODE and\nat least one more MODE, as well as some drivers for Lotus, Windows, etc.\nOnly one of the drivers is told to provide the TrueColor mode, namely\nthe Windows 3.1 driver.\nNowhere else, except in the ad, is any pointer to the TrueColor mode.\nSome articles in this group about the Speedstar 24 and some other facts\nmade me believe that my card is compatible to that one.\n\nDoes anybody out there know how this mode can be adjusted? How can I write\na driver which allows me to have 16.7 millions of colors with a resolution\nof 640 x 480 with 45 Hz interlaced ?\n\nGreetings,\n    Wolfgang\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2125, "properties": {"category": "talk.politics.misc", "text": "From: smith@phoneme.harvard.edu (Steven Smith)\nSubject: The Manitoban Candidate\nIn-Reply-To: bross@sandbanks.cosc.brocku.ca's message of 10 Apr 93 23:10:23 GMT\nOrganization: Harvard Robotics Lab, Harvard University\n\t<1993Apr10.231023.19680@spartan.ac.BrockU.CA>\nLines: 18\n\nbross@sandbanks.cosc.brocku.ca (Brian Ross) writes:\n\n> In the world of the future, Bill Clinton will appoint Canadians to\n> govern all American institutions (starting with the American health\n> care system).  We will be benevolent Canadian dictators.\n\nWith yet another tax being floated by the Clinton administration to\npay for new ``free'' social programs, I've really begun to suspect\nthat the Canadians, long resentful of their place in the American\nshadow, brainwashed an American draft dodger who fled to Canada some\ntime between 1966 and 1968, tutored him in the ways of Canadian\nsocialism, awarded him with smokeless marijuana cigarettes when he got\nthe correct answers, then returned him to the states (under the\ncontrol of the domineering wife assigned to his case) to attain high\npublic office and destroy the evil individualistic and free market\nforces in America, thus shaping America in the Canadian image.\n\nSteven Smith\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2126, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: On the eve of 78th Anniversary Commemoration of the Turkish Holocaust.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 232\n\nIn article <1993Apr20.214322.8698@kpc.com> henrik@quayle.kpc.com  writes:\n\nOY] Henrik (?),\nOY] Your ignorance manifests itself in an awkward form of intransigence. I'm not\nOY] going to spend time to review with you the recent history of Cyprus. \n\n>\tGood !! Go back to your references and read it over and over ...\n\nI wish the fascist x-Soviet Armenian government would do that. Well,\nif you prefer to imagine that the American, European, Jewish and Armenian \nscholars were trying to mislead 'Arromdians', be my guest.\n\n\nSource: Stanford J. Shaw, on Armenian collaboration with invading Russian\narmies in 1914, \"History of the Ottoman Empire and Modern Turkey (Volume\nII: Reform, Revolution & Republic: The Rise of Modern Turkey, 1808-1975).\"\n(London, Cambridge University Press 1977). pp. 315-316.\n\n\"In April 1915 Dashnaks from Russian Armenia organized a revolt in the city \n of Van, whose 33,789 Armenians comprised 42.3 percent of the population, \n closest to an Armenian majority of any city in the Empire...Leaving Erivan \n on April 28, 1915, Armenian volunteers reached Van on May 14 and organized \n and carried out a general slaughter of the local Muslim population during \n the next two days while the small Ottoman garrison had to retreat to the\n southern side of the lake.\"\n\n\nSource: \"World Alive, A Personal Story\" by Robert Dunn. Crown Publishers, \nInc., New York (1952). \n(Memoirs of an American officer who witnessed the Armenian genocide of 2.5 \n million Muslim people)\n\np. 361 (seventh paragraph) and p. 362 (first paragraph).\n\n 'The most are inside houses. Come you and look.'\n 'No, dammit! My stomach isn't-'\n 'One is a Turkish officer in uniform. Him you must see.'\n \"We were under those trees by the mosque, in an open space....\n 'I don't believe you,\" I said, but followed to a nail-studded door. The \n  man pushed it ajar, then spurred away, leaving me to check on the corpse. \n  I thought I should, this charge was so constant, so gritted my teeth and \n  went inside.\n\n The place was cool but reeked of sodden ashes, and was dark at first, for \n its stone walls had only window slits. Rags strewed the mud floor around an \n iron tripod over embers that vented their smoke through roof beams black \n with soot. All looked bare and empty, but in an inner room flies buzzed. As \n the door swung shut behind me I saw they came from a man's body lying face \n up, naked but for its grimy turban. He was about fifty years old by what \n was left of his face - a rifle butt had bashed an eye. The one left slanted, \n as with Tartars rather than with Turks. Any uniform once on him was gone, so \n I'd no proof which he was, and quickly went out, gagging at the mess of his  \n slashed genitals.\"\n\np. 363 (first paragraph). \n\n 'How many people lived there?'\n 'Oh, about eight hundred.' He yawned.\n 'Did you see any Turk officers?'\n 'No, sir. I was in at dawn. All were Tartar civilians in mufti.'\n\n \"The lieutenant dozed off, then I, but in the small hours a voice woke me - \n Dro's. He stood in the starlight bawling out an officer. Anyone keelhauled\n so long and furiously I'd never heard. Then abruptly Dro broke into \n laughter, quick and simple as child's. Both were a cover for his sense\n of guilt, I thought, or hoped. For somehow, despite my boast of irreligion,\n Christian massacring 'infidels' was more horrible than the reverse would\n have been.\n\n From daybreak on, Armenian villagers poured in from miles around.....\n The women plundered happily, chattering like ravens as they picked over\n the carcass of Djul. They hauled out every hovel's chattels, the last \n scrap of food or cloth, and staggered away, packing pots, saddlebags, \n looms, even spinning-wheels.\n\n 'Thank you for a lot, Dro,' I said to him back in camp. 'But now I must \n leave.'...We shook hands, the captain said 'A bientot, mon camarade.' And \n for hours the old Molokan scout and I plodded north across parching plains. \n Like Lot's wife I looked back once to see smoke bathing all, doubtless in \n a sack of other Moslem villages up to the line of snow that was Iran.'\"\n\np. 354.\n\n\"At morning tea, Dro and his officers spread out a map of this whole\n high region called the Karabakh. Deep in tactics, they spoke Russian,\n but I got their contempt for Allied 'neutral' zones and their distrust\n of promises made by tribal chiefs. A campaign shaped; more raids on\n Moslem villages.\"\n\np. 358.\n\n\"It will be three hours to take,\" Dro told me. We'd close in on three\n sides.\n\"The men on foot will not shoot, but use only the bayonets,\" Merrimanov\nsaid, jabbing a rifle in dumbshow.\n\"That is for morale,\" Dro put in. \"We must keep the Moslems in terror.\"\n\"Soldiers or civilians?\" I asked.\n\"There is no difference,\" said Dro. \"All are armed, in uniform or not.\"\n\"But the women and children?\"\n\"Will fly with the others as best they may.\"\n\np. 360.\n\n\"The ridges circled a wide expanse, its floors still. Hundreds of feet \n down, the fog held, solid as cotton flock. 'Djul lies under that,' said \n Dro, pointing. 'Our men also attack from the other sides.'\n\n Then, 'Whee-ee!' - his whistle lined up all at the rock edge. Bayonets\n clicked upon carbines. Over plunged Archo, his black haunches rippling;\n then followed the staff, the horde - nose to tail, bellies taking the\n spur. Armenia in action seemed more like a pageant than war, even though \n I heard our Utica brass roar.\n\n As I watched from the height, it took ages for Djul to show clear. A tsing\n of machine-gun fire took over from the thumping batteries; cattle lowed,\n dogs barked, invisible, while I ate a hunk of cheese and drank from a snow\n puddle. Mist at last folded upward as men shouted, at first heard faintly.\n The came a shrill wailing.\n\n Now among the cloud-streaks rose darker wisps - smoke. Red glimmered about\n house walls of stone or wattle, into dry weeds on roofs. A mosque stood in\n clump of trees, thick and green. Through crooked alleys on fire, horsemen\n were galloping after figures both mounted and on foot.\n\n 'Tartarski!' shouted the gunner by me. Others pantomimed them in escape\n over the rocks, while one twisted a bronze shell-nose, loaded, and yanked\n breech-cord, firing again and again. Shots wasted, I thought, when by\n afternoon I looked in vain for fallen branch or body. But these shots and\n the white bursts of shrapnel in the gullies drowned the women's cries.\n\n At length all shooting petered out. I got on my horse and rode down toward\n Djul. It burned still but little flame showed now. The way was steep and \n tough, through dense scrub. Finally on flatter ground I came out suddenly,\n through alders, on smoldering houses. Across trampled wheat my brothers-in-\n arms were leading off animals, several calves and a lamb.\"\n\np. 361 (fourth paragraph).\n\n\"Corpses came next, the first a pretty child with straight black hair, \n large eyes. She looked about twelve years old. She lay in some stubble \n where meal lay scattered from the sack she'd been toting. The bayonet \n had gone through her back, I judged, for blood around was scant. Between \n the breasts one clot, too small for a bullet wound, crusted her homespun \n dress.\n\n The next was a boy of ten or less, in rawhide jacket and knee-pants. He \n lay face down in the path by several huts. One arm reached out to the \n pewter bowl he'd carried, now upset upon its dough. Steel had jabbed \n just below his neck, into the spine. \n\n There were grownups, too, I saw as I led the sorrel around. Djul was \n empty of the living till I looked up to see beside me Dro's German-speaking \n colonel. He said all Tartars who had not escaped were dead.\"\n\np. 358.\n\n \"...more stories of Armenian murdering Turks when the czarist troops fled\n  north. My hosts told me of their duty here: to keep tabs on brigands, \n  Turkish troop shifts, hidden arms, spies - Christian, Red or Tartar -\n  coming in from Transcaucasus. Then they spoke of the hell that would \n  break loose if Versailles were to put, as threatened, the six 'Armenian'\n  vilayets of Turkey under the control of Erevan...\n\n  An Armenia without Armenians! Turks under Christian rule? His lips\n  smacked in irony under the droopy red moustache. That's bloodshed - just\n  Smyrna over again on a bigger scale.\"\n\n\nSource: \"U.S. Library of Congress\": 'Bristol Papers' - General \n         Correspondence Container #34.\n\n \"While the Dashnaks were in power they did everything in the world to keep the\n  pot boiling by attacking Kurds, Turks and Tartars; by committing outrages\n  against the Moslems; by massacring the Moslems; and robbing and destroying\n  their homes;....During the last two years the Armenians in Russian Caucasus\n  have shown no ability to govern themselves and especially no ability to \n  govern or handle other races under their power.\"\n\n\nSource: K. Gurun, \"The Armenian File,\" (London, Nicosia, Istanbul, 1985).\n\n\"Many Muslim villages have been destroyed by the soldiers of Armenian troops\n armed with cannons and machine guns before the eyes of our troops and the\n people.....According to documented information, 28 Muslim villages have\n been destroyed...young Muslim women have been taken to Kars and Gumru,\n hundreds of women and children who were able to flee their villages were\n beaten and killed in the mountains...\"\n\nSource: W. E. D. Allen and Paul Muratoff, \"Caucasian Battlefields,\" \n        Cambridge University Press, 1953, p. 481. \n\n\"As the Armenians found support among the Reds (who regarded the Tartars\n as a counter-revolutionary elements) the fighting soon became a massacre\n of the Tartar population.\" \n\n\nSource: General Bronsart wrote as follows in an article in the July 24, \n        1921 issue of the newspaper \"Deutsche Allgemeine Zeitung:\"\n\n\"Since all the Moslems capable of bearing arms were in the Turkish Army,\n it was easy to organize a terrible massacre by the Armenians against\n defenseless people, because the Armenians were not only attacking the\n sides and rear of the Eastern Army paralyzed at the front by the \n Russians, but were attacking the Moslem folk in the region as well.\"\n\nSource: Quoted by General Hamelin in a letter to the High Commissioner,\n        February 2, 1919, in the official history, \"Les Armees Francaises \n        au Levant,\" vol. 1, p. 122.\n\n \"They [Armenians] burned and destroyed many Turkish villages as punitive\n  measures in their advance and practically all Turkish villages in their\n  retreat from Marash.\"\n\nSource: John Dewey, \"The Turkish Tragedy\", The New Republic, Volume 40, \n        November 12, 1928, pp. 268-269.\n\n \"that they [Armenians] boasted of having raised an army of one hundred \n  and fifty thousand men to fight a civil war, and that they burned at \n  least a hundred Turkish villages and exterminated their population.\"\n\nNeed I go on?\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2127, "properties": {"category": "talk.religion.misc", "text": "From: asiivo@cs.joensuu.fi (Antti Siivonen)\nSubject: Re: Part 1 and part 2 (re: Homosexuality)\nOrganization: University of Joensuu\nLines: 9\n\n\tLong time, no see.\n\n\t\t\tAndreas\n\n-- \n\n\t\tAndreas - Siperian Sirri   Siberian Stint\n\n\tNo ITU, love, evolution.           Tuusniemi ! Siis imein suut !\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2128, "properties": {"category": "comp.sys.mac.hardware", "text": "From: erme@pobox.upenn.edu (Erme Maula)\nSubject: Re: Macs suck! Buy a PC!\nOrganization: University of Pennsylvania\nLines: 7\nNntp-Posting-Host: pobox.upenn.edu\n\nthis is a test\n\n-- \n****************************************************************************\n\n\nErme\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2129, "properties": {"category": "sci.electronics", "text": "From: wagner@mala.bc.ca (TOM WAGNER, Wizzard of old Audio/Visual Equipment........Nanaimo Campus)\nSubject: Re: Suggestions  on Audio relays ???\nOrganization: Malaspina College\nLines: 63\n\nIn article <C5r60r.4ID@megatest.com>, alung@megatest.com (Aaron Lung) writes:\n> In article <C5qsBF.IEK@ms.uky.edu> billq@ms.uky.edu (Billy Quinn) writes:\n>>I built a little project using the radio shack 5vdc relays to switch\n>>audio.  I got pretty bad 'clicks' when the thing switched.  I was doing\n>>most of the common things one is supposed to do when using relays and\n>>nothing seemed to get rid of the clicks.\n>>\n>>\n>>My question is:\n>>\n>>\tIs there a good relay/relay circuit that I can use for switching\n>>audio, so that there will be *NO* noise of any kind on the audio lines.\n>>\n>>\n>>I will appreciate any advice or references to advice.  Also, exact part\n>>numbers/company names etc. for the relays will help!\n> \n> Are you switching high level signals or low level signals like pre-amp\n> out level signals?  Also, are the clicks you mentioning the big\n> clack that happens when it switches or are you refering to contact\n> bounce?  How are you driving the relays?  TTL gate output?  Switching\n> transistor?  How are the relays connected to what you are driving?\n> \n> Need more specifics to answer your question!! :-)\n\nAs a general rule, no relay will cleanly switch audio if you try to tranfer\nthe circuit with the contacts.  The noise you hear is due to the momentary\nopening and closing of the path.\n\nThe noiseless way of transfering audio is to ground the circuit.  In high\nimpedance audio circuits a resistive \"T\" is constructed close to characteristic\nimpedance of the circuit.  Grounding the imputs (connected to the T) transfers\nthe audio.\n\nIn low impedance circuits transformers are usually used, and the inputs are\nshorted out or grounded.  Secondaries are paralleled at the characteristic\nimpedance.\n\nSometimes if it is necessary to actually switch audio, a second contact is used\nto momentarily short the circuit output for the duration of the switching time.\n\nTelephone relays are handy, because contacts can be adjusted to \"Make before\nbreak and Vica Versa\" but I haven't seen any of these for years.\n\nNowadys switching is done electronically with OP amps, etc.\n\nA novel circuit I used to build was a primitive \"optical isolator\".. It consists\nof a resistive photocell and a lamp, all packaged in a tube.  When the lamp is\noff the cell is high resistance.  Turn the lamp on and the resistance lowers\npassing the audio.  Once again this device in a \"T\" switches the audio.  Varying\nthe lamp resistance give a remote volume control.  Use 2 variable resisters and\nyou have a mixer!\n\nLots of luck!\n-- \n73, Tom\n================================================================================\nTom Wagner, Audio Visual Technician.  Malaspina College Nanaimo British Columbia\n(604)753-3245, Loc 2230  Fax:755-8742  Callsign:VE7GDA Weapon:.45 Kentucky Rifle\nSnail mail to:  Site Q4, C2.   RR#4, Nanaimo, British Columbia, Canada, V9R 5X9  \n\nI do not recyle.....   I keep everything!       (All standard disclaimers apply)\n================================================================================\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2130, "properties": {"category": "sci.electronics", "text": "From: segal@rtsg.mot.com (Gary Segal)\nSubject: Pinout needed for TIL311\nNntp-Posting-Host: corolla7\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 17\n\nI've recently picked up some TIL311 display chips, but I can't find\nany information on them.  It seems they are no longer made by TI, and\nI don't have an old enough data book.  :-(\n\nIt appears to have a dot-matrix led display capable of showing one hex\ndigit.  It is in a 14 pin DIP package, but pins 6, 9, and 11 are not\npresent.\n\nIf you have any information on this part (pinout, power requirments,\nfunctions, ...) please send me e-mail.\n\nThank You,\n\n-- \nGary Segal                             Motorola Inc.            \nsegal@oscar.rtsg.mot.com               Cellular Infrastructure Division\n\t--- we are standing here only to gaze at the wind ---\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2131, "properties": {"category": "sci.space", "text": "From: drickel@bounce.mentorg.com (Dave Rickel)\nSubject: Re: Quaint US Archaisms\nArticle-I.D.: news.1993Apr06.090626.21880\nOrganization: Mentor Graphics\nLines: 14\nOriginator: drickel@bounce\nNntp-Posting-Host: bounce.mentorg.com\n\n\nIn article <C512wC.B0M.1@cs.cmu.edu>, nickh@CS.CMU.EDU (Nick Haines) writes:\n|> Oh, and the other advantage is that you don't have shit constants like\n|> 32.??? hanging around.\n\nNo, instead you have stupid things like 3600 and 86400 and 31556925.9747 and\n299792.458 and 9.80665 and ...\n\nHow many cc's in a ml anyway?  The metric system has its problems, just not\nas many of them.\n\n\ndavid rickel\ndrickel@sjc.mentorg.com\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2132, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: himb@iniki.soest.hawaii.edu (Liz Camarra)\nSubject: Re: ZEOS VESA Video Changes & Specs\nOrganization: School of Ocean and Earth Science and Technology\nLines: 19\n\nIn article <1993Apr06.154348.17163@zeos.com> root@zeos.com (Superuser) writes:\n>\n>                     NCR              Stealth 24 VLB        Viper VLB\n>64Ox480 Colors       16,256           16,256,32K,64K,16.7M 16,256,32K,64K,16.7M *\n[stuff deleted]\n>Video RAM            1M               1M                    1M\n>Max RAM addressable\n>  by Vid Processor   3M               2M                    2M\n                                       ^^\n\n  Just a note, even though the 805 can address 2 megs of dram, the\nStealth 24 VLB can only handle 1 meg, unless Diamond has a newer\ndesign (or some special deal with Zeos).\n\n+----------------------------------------------------------------+\nStephen Lau, Elec. Engineering, Univ. of Hawaii\n*Using a friend's account while waiting for my new grad. account*\n+              Death to FM synthesis! Go Gus!                    +\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2133, "properties": {"category": "comp.graphics", "text": "From: orourke@sophia.smith.edu (Joseph O'Rourke)\nSubject: Re: Delaunay Triangulation\nOrganization: Smith College, Northampton, MA, US\nLines: 22\n\nIn article <lsk1v9INN93c@caspian.usc.edu> zyeh@caspian.usc.edu (zhenghao yeh) writes:\n>\n>Does anybody know what Delaunay Triangulation is?\n>Is there any reference to it? \n>Is it useful for creating 3-D objects? If yes, what's the advantage?\n\nThere is a vast literature on Delaunay triangulations, literally\nhundreds of papers.  A program is even provided with every copy of \nMathematica nowadays.  You might look at this if you are interested in \nusing it for creating 3D objects:\n\n@article{Boissonnat5,\n  author = \"J.D. Boissonnat\",\n  title = \"Geometric Structures for Three-Dimensional Shape Representation\",\n  journal = \"ACM Transactions on Graphics\",\n  month = \"October\",\n  year = {1984},\n  volume = {3},\n  number = {4},\n  pages = {266-286}\n}\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2134, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: DC-X update???\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 122\n\nIn article <ugo62B8w165w@angus.mi.org> dragon@angus.mi.org writes:\n\n>Exactly when will the hover test be done, \n\nEarly to mid June.\n\n>and will any of the TV\n>networks carry it.  I really want to see that...\n\nIf they think the public wants to see it they will carry it. Why not\nwrite them and ask? You can reach them at:\n\n\n                          F: NATIONAL NEWS MEDIA\n\n\nABC \"World News Tonight\"                 \"Face the Nation\"\n7 West 66th Street                       CBS News\nNew York, NY 10023                       2020 M Street, NW\n212/887-4040                             Washington, DC 20036\n                                         202/457-4321\n\nAssociated Press                         \"Good Morning America\"\n50 Rockefeller Plaza                     ABC News\nNew York, NY 10020                       1965 Broadway\nNational Desk (212/621-1600)             New York, NY 10023\nForeign Desk (212/621-1663)              212/496-4800\nWashington Bureau (202/828-6400)\n                                         Larry King Live TV\n\"CBS Evening News\"                       CNN\n524 W. 57th Street                       111 Massachusetts Avenue, NW\nNew York, NY 10019                       Washington, DC 20001\n212/975-3693                             202/898-7900\n\n\"CBS This Morning\"                       Larry King Show--Radio\n524 W. 57th Street                       Mutual Broadcasting\nNew York, NY 10019                       1755 So. Jefferson Davis Highway\n212/975-2824                             Arlington, VA 22202\n                                         703/685-2175\n\"Christian Science Monitor\"\nCSM Publishing Society                   \"Los Angeles Times\"\nOne Norway Street                        Times-Mirror Square\nBoston, MA 02115                         Los Angeles, CA 90053\n800/225-7090                             800/528-4637\n\nCNN                                      \"MacNeil/Lehrer NewsHour\"\nOne CNN Center                           P.O. Box 2626\nBox 105366                               Washington, DC 20013\nAtlanta, GA 30348                        703/998-2870\n404/827-1500\n                                         \"MacNeil/Lehrer NewsHour\"\nCNN                                      WNET-TV\nWashington Bureau                        356 W. 58th Street\n111 Massachusetts Avenue, NW             New York, NY 10019\nWashington, DC 20001                     212/560-3113\n202/898-7900\n\n\"Crossfire\"                              NBC News\nCNN                                      4001 Nebraska Avenue, NW\n111 Massachusetts Avenue, NW             Washington, DC 20036\nWashington, DC 20001                     202/885-4200\n202/898-7951                             202/362-2009 (fax)\n\n\"Morning Edition/All Things Considered\"  \nNational Public Radio                    \n2025 M Street, NW                        \nWashington, DC 20036                     \n202/822-2000                             \n\nUnited Press International\n1400 Eye Street, NW\nWashington, DC 20006\n202/898-8000\n\n\"New York Times\"                         \"U.S. News & World Report\"\n229 W. 43rd Street                       2400 N Street, NW\nNew York, NY 10036                       Washington, DC 20037\n212/556-1234                             202/955-2000\n212/556-7415\n\n\"New York Times\"                         \"USA Today\"\nWashington Bureau                        1000 Wilson Boulevard\n1627 Eye Street, NW, 7th Floor           Arlington, VA 22229\nWashington, DC 20006                     703/276-3400\n202/862-0300\n\n\"Newsweek\"                               \"Wall Street Journal\"\n444 Madison Avenue                       200 Liberty Street\nNew York, NY 10022                       New York, NY 10281\n212/350-4000                             212/416-2000\n\n\"Nightline\"                              \"Washington Post\"\nABC News                                 1150 15th Street, NW\n47 W. 66th Street                        Washington, DC 20071\nNew York, NY 10023                       202/344-6000\n212/887-4995\n\n\"Nightline\"                              \"Washington Week In Review\"\nTed Koppel                               WETA-TV\nABC News                                 P.O. Box 2626\n1717 DeSales, NW                         Washington, DC 20013\nWashington, DC 20036                     703/998-2626\n202/887-7364\n\n\"This Week With David Brinkley\"\nABC News\n1717 DeSales, NW\nWashington, DC 20036\n202/887-7777\n\n\"Time\" magazine\nTime Warner, Inc.\nTime & Life Building\nRockefeller Center\nNew York, NY 10020\n212/522-1212\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------57 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2135, "properties": {"category": "sci.electronics", "text": "From: wb8foz@skybridge.SCL.CWRU.Edu (David Lesher)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: NRK Clinic for habitual NetNews abusers - Beltway Annex\nLines: 19\nReply-To: wb8foz@skybridge.scl.cwru.edu (David Lesher)\nNNTP-Posting-Host: skybridge.scl.cwru.edu\n\nOthers said:\n# >       Actually, fossil fuel plants run hotter than the usual \n# >boiling-water reactor nuclear plants.  (There's a gripe in the industry\n# >that nuclear power uses 1900 vintage steam technology).  So it's\n# >more important in nuclear plants to get the cold end of the system\n# >as cold as possible.  Hence big cooling towers.  \n\nWhen the utility gave up on that Cinnci, OH plant (Zimmer?) and\nannounced they were going to convert it to a coal-fired scheme, the\nturbines were already in place, and they were the low-temp type. So the\nplan was: Install a SECOND set of high temp turbines, and feed the\nlow-temp ones with the output of the new ones.\n\nNever saw anything more on this. Did they ever really build it?\n--\nA host is a host from coast to coast..wb8foz@skybridge.scl.cwru.edu\n& no one will talk to a host that's close............(301) 56-LINUX\nUnless the host (that isn't close).........................pob 1433\nis busy, hung or dead....................................20915-1433\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2136, "properties": {"category": "misc.forsale", "text": "From: radley@gibbs.oit.unc.edu (Keith Radley)\nSubject: Electronics\nSummary: here they are\nNntp-Posting-Host: gibbs.oit.unc.edu\nOrganization: University of North Carolina at Chapel Hill\nDistribution: usa\nLines: 20\n\n \nPanasonic KX-T3000H, Combo black cordless & speaker phone all in one.\n new- $160, now- $100 + shipping OBO.\n \nCurtis Mathes VHS VCR Remote included and it works with universal remotes.\n Works great but I replaced it with a Stereo VCR.\n paid $300 years ago, will sell for $125 delivered OBO.\n \nRadio Shack stereo amp.  2 inputs, tone, and left and right volume.  Speakers\n not included.  $20 plus shipping.\n \nIf you are interested in either of the above mail me at\n radley@gibbs.out.unc.edu.\n\n        _\n    _  //       Major: Computer Science              /<eith Radley\n    \\\\//        Minor:     English              Radley@gibbs.oit.unc.edu\n     \\/      Computer:   AMIGA 3000           University of North Carolina\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2137, "properties": {"category": "sci.electronics", "text": "From: tomb@hplsla.hp.com (Tom Bruhns)\nSubject: Re: Do Analog Systems Need Ground Planes?\nOrganization: HP Lake Stevens, WA\nLines: 25\n\nengp2254@nusunix1.nus.sg (SOH KAM YUNG) writes:\n\n>I understand the need for a ground plane in a digital system. However, I\n>would like to know if such a ground plane is also necessary in an analog\n>system.\n>\n>(Note: this ground plane will not be connected, except at one point, to\n>the signal ground).\n>\n>I keep getting conflicting answers over this. Does having a ground plane\n>in an analog system help reduce noise also? My system only deals with\n>low frequency signals (up to 100Hz only!!!).\n\nWell, one reason for getting conflicting answers is that it depends on\nwhat you want the ground plane to do.  A continuous conductor is a good \nelectrostatic shield.  Do you have signals on your board that need\nshielding rom other things?  This shielding won't do much good for magnetic\nfields, unless you make it continuous around the circuit to be shielded,\nlike a Faraday cage.\n\nThe flip side of the coin:  if you are working with (very) high impedances,\nyou could end up with capacitances to the gound plane that cause problems.\nYou aren't likely to encounter this at 100Hz, but at 20kHz, it can be a\nreal problem (one that bit me once).\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2138, "properties": {"category": "comp.windows.x", "text": "From: mouse@thunder.mcrcim.mcgill.edu (der Mouse)\nSubject: Re: Creating 8 bit windows on 24 bit display.. How?\nOrganization: McGill Research Centre for Intelligent Machines\nLines: 59\n\nIn article <1993Apr16.093209.25719@fwi.uva.nl>, stolk@fwi.uva.nl (Bram) writes:\n\n> I am using an X server that provides 3 visuals: PseudoColor 8 bit,\n> Truecolor 24 bit and DirectColor 24 bit.\n\nLucky dog... :-)\n\n> A problem occurs when I try to create a window with a visual that is\n> different from the visual of the parent (which uses the default\n> visual which is TC24).\n\n> In the Xlib reference guide from 'O reilly one can read in the\n> section about XCteateWindow, something like:\n>     In the current implementation of X11: When using a visual other\n>     than the parent's, be sure to create or find a suitable colourmap\n>     which is to be used in the window attributes when creating, or\n>     else a BadMatch occurs.\n\n> This warning, strangely enough, is only mentioned in the newer\n> editions of the X11R5 guides.\n\nIt applies with equal force to earlier versions.  Presumably only\nrecently did the author(s) decide it was important enough to mention.\nThe necessity it refers to has always been there, but it's been\nimplicit in the way CreateWindow requests default some attributes of\nthe new window.\n\n> However, even if I pass along a suitable colourmap, I still get a\n> BadMatch when I create a window with a non-default visual.\n\n>   attr.colormap = cmap;\n>   win = XCreateWindow(\n[...]\n>           CopyFromParent,       /* border width */\n>           8,                    /* depth */\n>           InputOutput,          /* class */\n>           vinfo.visual,         /* visual */\n>           CWColormap,\n>           &attr\n>         );\n\nThis is because the warning you read is incomplete.  You have to\nprovide not only a colormap but also a border.  The default border is\nCopyFromParent, which is not valid when the window's depth doesn't\nmatch its parent's.  Specify a border-pixmap of the correct depth, or a\nborder-pixel, and the problem should go away.\n\nThere is another problem: I can't find anything to indicate that\nCopyFromParent makes any sense as the border_width parameter to\nXCreateWindow.  Your Xlib implementation probably defines\nCopyFromParent as zero, to simplify the conversion to wire format, so\nyou are unwittingly asking for a border width of zero, due to the Xlib\nimplementation not providing stricter type-checking.  (To be fair, I'm\nnot entirely certain it's possible for Xlib to catch this.)\n\n\t\t\t\t\tder Mouse\n\n\t\t\t\tmouse@mcrcim.mcgill.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2139, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Old Predictions to laugh at...\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 12\n\nIn article <C5JCrF.KrM@news.udel.edu> philly@ravel.udel.edu (Robert C Hite) writes:\n>\n>DEAD WRONG!  Last time I checked, Jim Fregosi was still managing the\n>Phillies, and doing quite a fine job thank you...best record in\n>baseball at 8-1\n\nLook, asshole, I got him confused with somebody else.  I didn't flame\nyou, and I would appreciate it if you extended me the same courtesy.\n\nNo, I don't know everything in the world.  Does that surprise you?\n\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2140, "properties": {"category": "soc.religion.christian", "text": "From: kwyatt@ccscola.columbiasc.ncr.com (Kershner Wyatt)\nSubject: Re: quality of Catholic liturgy\nOrganization: NCR Corp, E&M-Columbia, Columbia, SC\nLines: 79\n\nIn article <Apr.13.00.08.27.1993.28403@athos.rutgers.edu> creps@lateran.ucs.indiana.edu (Stephen A. Creps) writes:\n>In article <Apr.10.05.30.16.1993.14313@athos.rutgers.edu> jemurray@magnus.acs.ohio-state.edu (John E Murray) writes:\n>\n>   On Palm Sunday at our parish, we were \"invited\" to take the role of\n>Jesus in the Passion.  I declined to participate.  Last year at the\n>liturgy meeting I pointed out how we crucify Christ by our sins, so\n>therefore it is appropriate that we retain the role of the crowd, but\n>to no avail.\n>\n>>musicians, readers, and so on.  New things are introduced in the course of the\n>>liturgy and since no one knows what's happening, the new things have to be\n>>explained, and pretty soon instead of _doing_ a lot of the Mass we're just\n>>sitting there listening (or spacing out, in my case) to how the Mass is about\n>>to be done.  In my mind, I lay the blame on liturgy committees made up of lay\n>>people to be aware of the Lord's presence.\n\nAs a former Catholic and now as a very active Lutheran - it is some of the\n\"innovations\" of the Mass which made me leave the Catholic Church and return\nto the more traditional Catholic Chuch - the Lutherans.\n\nI spent many years as a Lector reading the Passion parts as appropriate in\nthe Catholic Church and I found it very meaningful.  Our Lutheran parish just\ninstituted the \"Tenebrae\" service for Good Friday and I was the lector for \na paraphrased Passion which was exceptional.  I heard and learned things\nthat I have previously overlooked in the Gospels - yet those \"facts\" were\nalways there.  As a matter of interest, the pastor and I were talking about\nthe differences between the RC and Lutheran Church during Holy Week over\nbreakfast Easter Sunday.\n>\n>   As a member of a liturgy committee, I can tell you that the problem\n>is certain people dominating, who want to try out all kinds of\n>innovations.  The priests don't seem even to _want_ to make any\n>decisions of their own in many cases.  I guess it's easier to \"try\n>something new\" than it is to refuse to allow it.\n\nMy wife is the member of the liturgy committee in the family (called music\nand worship at our church).  Our pastor does have control of this committee\nbut listens very carefully to the committee's suggestions.  It needs a strong\nhand to lead and guide, to keep the intent and the message clear and strong\nas it should be through Lent and the rest of the liturgical year.  Additional\nreason for my leaving the Catholic faith - lack of any selfless spiritual\nguidance by priests in my parishes.  AKA \"wishy-washy\".\n \nAs you may gather from my comments, I feel that it is very important, ir-\nregardless of denominational guidelines, to have a service/Mass which promotes\nthe true reason that we are gathered there.  I am quite comfortable in a\ntraditional Mass, with receiving Holy Communion on the tongue, the Sacrament\nof PENANCE (not Reconciliation), Stations of the Cross, so on and so forth.\nThe reason other types of Masses and parishes exist is because these feelings\nare not shared by everyone.\n\nI want more people to attend church and to find the Lord, but I don't want \nthem attending a show.  It's not.  My church works hard to have a meaningful\nservice during Lent on Wednesdays, but follow traditional Lutheran Book of\nWorship guidelines.  Where things are changed or omitted during Lent (such\nas the Hymn of Praise) it is noted so that we are aware of the reasons that it\nis Not there.\n\nQuite frankly, it is very hard for a non-Catholic to go to a Mass and \"fit in\".\nMy dear wife never could (former Methodist).  And Holy Week Masses and Vigils\nwould intimidate the daylights out of a non-Catholic.  Those Catholics who\nhave beared with me this far understand what I mean.\n\nPlease keep in mind why we are there - to gather together in worship.  Not\nto worry about how something is done or not done.  If there is something\nwrong that you feel needs addressing, by all means talk to your priest or\npastor.  I have only ever met one who wouldn't listen.  They are there to \nprovide spiritual guidance and to help.  Use them.  My differences with\nthe Catholic Church are much more fundamental - but my decision to change\nfaiths was done with prayer, intervention, and sessions with priests and\nministers.\n\nIn Christ,\nKershner\n-- \nKershner Wyatt\nkwyatt@ccscola.ColumbiaSC.ncr.com\n\nMy opinions are my own and aren't necessarily my employer's.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2141, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cunning@mksol.dseg.ti.com (patrick w cunningham)\nSubject: LEADING TECH QUESTION\nNntp-Posting-Host: localhost\nOrganization: Texas Instruments\nLines: 10\n\nHey, does anybody know anything about Leading Technology Computers??\n\nI have a Leading Technology 6000SX and need a new mother board for it.\n\nDoes anybody know where I can get one. \n\n(Leading Technoology is really made by SAMSUNG.  6000SX is Samsung model SD-700)\n\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.099+0000", "event": "documents", "entityId": 2142, "properties": {"category": "rec.autos", "text": "From: jimiii@nimbus.com (Jim Warford)\nSubject: Re: electronic odometers (was: Used BMW Question ..... ???)\nReply-To: jimiii@nimbus.com (Jim Warford)\nOrganization: Nimbus Technology, Santa Clara, CA USA\nLines: 32\n\nIn article <13269@news.duke.edu> klg@mookie.mc.duke.edu (Kim Greer) writes:\n>\n>  I was wondering if anyone can shed any light on just how it is that these\n>electronic odometers remember the total elapsed mileage?  What kind of\n>memory is stable/reliable enough, non-volatile enough and independent enough\n>(of outside battery power) to last say, 10 years or more, in the life of a\n>vehicle?  I'm amazed that anything like this could be expected to work for\n>this length of time (especially in light of all the gizmos I work with that\n>are doing good to work for 2 months without breaking down somehow).\n>\nMK48T02 from thomsom.  It has a timekeeper (clock) and 512 bytes of NVRAM which\nhas a lithium battery backup.  The battery has a life of ~10 years of poweroff\noperation.  Installed in a car it could be left powered on continuously and not\ndraw much current.  The battery would only be used when your auto battery was\ndead or had been removed.\n\n>Side question:  how about the legal ramifications of selling a used car with\n>a replaced odometer that starts over at 0 miles, after say 100/200/300K\n>actual miles.  Looks like fraud would be fairly easy - for the price of a\n>new odometer, you can say it has however many miles you want to tell the\n>buyer it has.\n\nIn California they have a line on the transfer of ownership form which states\nthat the odometer mileage is correct.  If incorrect you are required to \nfill in what you know (or guesstimate) to be the correct mileage.  If you\nlie on this form and are caught you can be prosecuted and the buyer can\nsue you for the value of the mileage differential.\n-- \nFaster Horses\nYounger Women\nOlder Whiskey\nMore Money!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2143, "properties": {"category": "talk.politics.misc", "text": "From: mpye@vmsb.is.csupomona.edu\nSubject: Re: Media horrified at Perot investigating Bush!\n <visser.709454466@convex.convex.com> <1992Jun25.151502.1@vmsb.is.csupomona.edu> <visser.709530365@convex.convex.com>\nOrganization: California State Polytechnic University, Pomona\nLines: 29\nNntp-Posting-Host: acvax1\nNntp-Posting-User: cvads008\n\nvisser@convex.com (Lance Visser) writes:\n> +>I can't find my source.\n> +>But.  If you state that you will retract your claim, I'll go dig one up\n> +>at the library.  Fair enough?\n> \n> \tARE YOU SERIOUS?  I'm not talking about retracting anything until\n> you have produced SOMETHING.\n> \n> \tIf you were not just talking off the top of your head, I would\n> assume that you have SOME memory of what your source is.\n> \n> \tPUT UP NOW without conditions!\n\n\nYes, very serious.  I claim that I can substantiate my statement that\nRudman says he doesn't believe Perot was investigating him.  You claim\nPerot was investigating him.  If you will state that you were in error\non this point, provided I produce the source, I'll go dig it up.\n\nNow give me one reason why I should go to the trouble if you won't\nagree to this?  It is simple enough you know.  But I don't have time\nto waste if you'll just blow it off with more of the tripe you usually\npost.\n\n\n\n---\nMichael Pye\nemail: mpye@csupomona.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2144, "properties": {"category": "comp.graphics", "text": "From: gavin@krypton.asd.sgi.com (Gavin Bell)\nSubject: Re: Surface normal orientations\nOrganization: Silicon Graphics, Inc.  Mountain View, CA\nLines: 38\nNNTP-Posting-Host: krypton.asd.sgi.com\n\nIn <1pscti$aqe@travis.csd.harris.com> srp@travis.csd.harris.com (Stephen Pietrowicz) writes:\n>How do you go about orienting all normals in the same direction, given a \n>set of points, edges and faces?\n\nThis algorithm works well for me:\n\nAlgorithm to attempt to find outward-facing normals:\n---------------------------------------------------\nFirst, mark all faces as UNKNOWN.\n\nThen create an edge dictionary that allows you to find all of the\nfaces sharing a given edge (where an edge is two integers representing\nthe two shared vertices).\n\nPick an arbitrary face and mark it COUNTER_CLOCKWISE.  Using the edge\ndictionary, orient all surrounding faces based on the orientation of\nthis face.  And recurse for all surrounding faces, consistently\norienting the entire surface.\n\nFind the average of the vertices in this surface.  Using that point,\ncalculate a volume measurement, taking into account the face's\norientation.  If the volume turns out to be positive, assume the faces\nare oriented correctly.  If it is negative, reverse their orientations\n(mark them CLOCKWISE).\n\nIf any faces are still UNKNOWN after this, choose another face\nand go through the algorithm again.\n\nAt the end, faces marked CLOCKWISE must have their indices reversed\nbefore facet normals are found.\n\n(Note: if you are running on Silicon Graphics machines and buy the\nIRIS Inventor 3D toolkit developers package you have the source to\nthis algorithm-- see /usr/src/Inventor/tools/ivnorm/.  If you're\nnot... sorry, I can't give out the source, and even if I could it\nrelies heavily on Inventor).\n--\n--gavin     (gavin@sgi.com,  (415)390-1024)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2145, "properties": {"category": "rec.sport.hockey", "text": "From: steven.kipling@freddy.ersys.edmonton.ab.ca (Steven Kipling) \nSubject: Re: NHL Team Captains\nReply-To: steven.kipling@freddy.ersys.edmonton.ab.ca (Steven Kipling) \nDistribution: world\nOrganization: Freddy's Place BBS - Edmonton, AB - 403-456-4241\nLines: 54\n\n -=> Quoting Cire Y. Trehguad to All <=-\nCYT> : Michael Collingridge writes:\n : >And, while we are on the subject, has a captain ever been traded, \n : >resigned, or been striped of his title during the season? Any other \n : >team captain trivia would be appreciated.\n CYT> ;\n CYT> : Wasn't Ron Francis captain of the Whalers when he was traded to\n CYT> : Pittsburgh?\n\n CYT> And Rick Tochett was the captain of the Flyers when traded to the Pens\n CYT> recently...\n\n CYT> Caleb\n\n CYT> And let us not forget that the New Jersey Devils traded\n CYT> captain Kirk Muller for Stephen Richer and Chorske\n\n CYT> Man I hated that trade!\n\n\n        Well as for team captains being traded\n        in there first year in the NHL the\n        Edmonton Oilers traded their captain\n        Ron Chiperfield to the Quebec Nordique\n        right at the trading deadline for \n        Goaltender Ron Lowe\n        In their second year of existence\n        The Edmonton Oilers again right at the trade \n        deadline traded their captain, this time \n        B.J. McDonald to the Vancouver Canucks\n        along with the rights to winger Ken \n        Berry for Garry Lariviere and the rights \n        to Lars Gunner Petterson \n        \n        as for more captain trivia, the next Edmonton\n        captain was Lee Fogilin who was later traded to\n        the Buffalo Sabres, after him was Wayne Gretzky\n        who was traded to L A, then came Kevin Low who\n        only this year was traded to the N Y Rangers\n        so that every captain the Edmonton Oilers have had\n        has been traded.\n\n        The present captain is Craig McTavish and we'll\n        just have to wait and see.\n\n\n        well talk to you later\n\n        Steve\n\n\n... Answers: $1, Short: $5, Correct: $25, dumb looks are still free.\n___ Blue Wave/QWK v2.12\n                                                                                                                  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2146, "properties": {"category": "talk.politics.misc", "text": "From: mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA\nLines: 14\n\nIn <1993Apr15.170715.29896@igor.tamri.com> donb@igor.tamri.com (Don Baldwin) writes:\n\n|>Think about it -- shouldn't all drugs then be legalized, it would lower\n|>the cost and definitely make them safer to use.\n\n|I think so.  And I don't use drugs, outside of the legal ones (alcohol\n|and coffee).\n\nI'm addicted to chocolate myself.\n-- \nMob rule isn't any prettier merely because the mob calls itself a government\nIt ain't charity if you are using someone else's money.\nWilson's theory of relativity: If you go back far enough, we're all related.\nMark.Wilson@AtlantaGA.NCR.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2147, "properties": {"category": "rec.sport.hockey", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Re: Goodbye, good riddance, get lost 'Stars\nOrganization: Georgia Institute of Technology\nLines: 13\n\nIn article <DT642B1w165w@sms.business.uwo.ca> s4lawren@sms.business.uwo.ca (Stephen Lawrence) writes:\n>        Goodbye Minnesota,...you never earned the right to have an NHL \n>franchise in the first place!\n>Whatta weird town!!!!!\n\n\tWhatta ass!!!!!\n\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2148, "properties": {"category": "misc.forsale", "text": "From: dwilson@csugrad.cs.vt.edu (David Wilson)\nSubject: Need APARTMENT/ROOM in BOSTON\nLines: 10\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 10\n\n\tI will be in Boston (Cambridge specifically) working this summer\nand am in need of a place to stay. If you have a room to sublease, or\nanything of the sort I would appreciate a mail.\nI am a 20-year old white male and am very flexible. I can adapt to a smoking\nor non-smoking environment. Access to the 'T' would be nice, though I will \nhave a car thus need a parking space. \nI would need this from late May or early June until aproximately end of July.\nAny responses welcome.\n\n\t\t\t\t\t_Mike_ mbeck@vtssi.vt.edu \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2149, "properties": {"category": "talk.politics.misc", "text": "From: kbanaian@bernard.pitzer.claremont.edu (King Banaian)\nSubject: Re: National Sales Tax, The Movie\nLines: 43\nOrganization: Pitzer College\n\nIn article <VEAL.731.734985604@utkvm1.utk.edu> VEAL@utkvm1.utk.edu (David Veal) writes:\n>In article <1993Apr16.164750.21913@alchemy.chem.utoronto.ca> golchowy@\nalchemy.chem.utoronto.ca (Gerald Olchowy) writes:>\n>>In article <9304151442.AA05233@inet-gw-2.pa.dec.com> blh@uiboise.idbsu.edu (Broward L. Horne) writes:\n>>\n>>Why don't the Republicans get their act together, and say they\n>>will support a broad-based VAT that would have to be visible\n>>(the VAT in Canada is visible unlike the invisible VATS they\n>>have in Europe)\n>>and suggest a rate sufficient to halve income and corporate\n>>and capital gains tax rates and at a rate sufficient to give\n>>the Clintons enough revenue for their health care reform, \n>\n>       The Republicans are, in general, fighting any tax increase.\n>There is also worry that a VAT would be far too easy to increase\n>incrementally.\n>\nI was a graduate student in the early 1980s, and we had a conference on \nReaganomics where Jerry Jordan, then a member of the Council of Economic \nAdvisors, was a speaker.  I had the pleasure of driving him back to the \nairport afterwards, and since taxes were the main topic of discussion I \nthought I would ask him about the VAT.  I have favored it for these reasons \nyou mention, that the income base is too hazy to define, that it taxes \nsavings and investment, that it is likely to be more visible.  He agreed, \nand reported that the CEA at that time was in favor of VAT.  So why not \npropose it?  I asked.  He replied that the Reagan White House feared that \nthe Democrats would introduce VAT *in addition to* the income tax, rather \nthan in lieu.  Better not to give them any ideas, he said.\n\nPretty prescient.\n\n>       (BTW, what is different between Canada's tax and most of\n>Europe's that makes it \"visible?\")\n>\nYes, any Canadian readers, please tell us if the tax is displayed on price \nstickers (I'm relatively certain it is not in Europe).\n\n--King \"Sparky\" Banaian                 |\"It's almost as though young\nkbanaian@pitzer.claremont.edu           |white guys get up in the\nDept. of Economics, Pitzer College      |morning and have a big smile\nLatest 1993 GDP forecast:  2.4%         |on their face ... because,\n                                        |you know, Homer wrote the\n                                        |_Iliad_.\"  -- D'Souza\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2150, "properties": {"category": "soc.religion.christian", "text": "From: cs89mcd@brunel.ac.uk (Michael C Davis)\nSubject: Re: WBT (WAS: Re: phone number of wycliffe translators UK)\nOrganization: Brunel University, Uxbridge, UK\nLines: 17\n\nporam%mlsma@att.att.com wrote:\n: Having met Peter Kingston (of WBT) some years back, he struck me \n: as an exemplery and dedicated Christian whose main concern was with\n: translation of the Word of God and the welfare of the people\n: group he was serving.\n: WBT literature is concerned mainly with providing Scripture\n: in minority languages.\n\nYes, in fact Peter is now at Wycliffe HQ in the U.K., and is a member of my\nchurch. I would fully endorse the above -- Peter is a very Godly man, with a\npassion for serving Christ.\n\nOn one occasion he specifically addressed the issue of ``cultural\ninterference'' in a sermon, presumably from his experience of allegations\ndirected at Wycliffe. (Perhaps I could find the tape...?)\n-- \nMichael Davis (cs89mcd@brunel.ac.uk)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2151, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: My Gun is like my American Express Card\nOrganization: California Institute of Technology, Pasadena\nLines: 47\nNNTP-Posting-Host: sandman.caltech.edu\n\nThomas Parsli <thomasp@ifi.uio.no> writes:\n\n\n\n>I don't remember the figures EXACTLY, but there were about 3500 deaths in Texas\n>in 1991 that was caused by guns.....\n>This is more than those beeing killed in car-ACCIDENTS!\n>(Yes, there could be that low sentences or high poverty could influence the\n>figures but they're still *pretty* high right??)\n>I also believe Texas has some of the most liberal 'gun-laws' in USA......\n\nIn Texas, you cannot carry a handgun.  Period.  Either concealed or open.\nAnd your numbers are misleading; they include suicides and accidents.  The\nreal number from the Department of Public Safety:\n\n                   Murders, Non-neg hom\t\tCar fatalities\n1991\t\t\t2651\t\t\t  3079\n1992\t\t\t2240\t\t\t  3057\n\nTexas only has \"liberal\" gun laws as far as purchasing a firearm; aside \nfrom that, it's probably more restrictive than most states as far as carry\ngoes.\n\n\n>One state (don't remember which, Texas??) tried to impose a rule that you could\n>only buy ONE gun each MONTH. Think you all know what happened.....\n\nThe state was Virginia, and the law passed.\n\n>I respect the right to defend yourself, but that right should not inflict on\n>other people.\n\nThat right only inflicts on those who threaten my rights to life,\nliberty, the pursuit of happiness, etc., in the first place.  I am not\na criminal, and I don't indiscriminately fire my weapons at random.  \nSo please explain how I am \"inflicting\" anything on other people.\n\n>\tThis is not a .signature.\n>\tIt's merely a computergenerated text to waste bandwith\n>\tand to bring down the evil Internet.\n\n\n>                        Thomas Parsli\n>                        thomasp@ifi.uio.no\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2152, "properties": {"category": "comp.graphics", "text": "From: phew@gu.uwa.edu.au (Patrick Hew)\nSubject: Re: Color pict of spinning Earth\nOrganization: The University of Western Australia\nLines: 22\nNNTP-Posting-Host: mackerel.gu.uwa.edu.au\n\nESTOP07@CONRAD.APPSTATE.EDU (*ACS) writes:\n\n>Sorry if this is the wrong place to post this\n\n>\tI was crusing the net earlier this year and came upon something called \n>Color pict of spinning earth.  I am assuming it is a animation sequence of the \n>earth's rotation (or revolution I always get those mixed up).  At the time I \n>found it my sysem would not even support color graphics so I didn't bother to \n>get the pict.  Now I have a fairly nice system and cant find the pict again!\n>If anyone can help please post here or E-mail me \n>Thanks in advance\n>Eric (Estop07@conrad.appstate.edu)\n\nLikewise for me please. First time I've hear of it, but I've beem looking\nfor something like this for the past few months.\n\nPatrick Hew\n2nd Year Science/ Engineering\nUniversity of Western Australia\nphew@tartarus.uwa.edu.au\nphew@mackerel.gu.uwa.edu.au\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2153, "properties": {"category": "rec.sport.baseball", "text": "From: g_waugaman@nac.enet.dec.com (Glenn R. Waugaman)\nSubject: Re: I've found the secret!\nArticle-I.D.: nntpd.1993Apr15.193907.24177\nOrganization: Digital Equipment Corporation\nLines: 23\n\n\nIn article <1993Apr15.161730.9903@cs.cornell.edu>, tedward@cs.cornell.edu (Edward [Ted] Fischer) writes...\n> \n>Why are the Red Sox in first place?  Eight games into the season, they\n>already have two wins each from Clemens and Viola.  Clemens starts\n>again tonight, on three days rest.\n> \n>What's up?  Are the Sox going with a four-man rotation?  Is this why\n>Hesketh was used in relief last night?\n\nClemens is going on his normal four days' rest (last pitched Saturday). \nHesketh only pitched one inning yesterday afternoon, his first outing\nsince an aborted 1-1/3 inning start 6 days before, so he should be plenty\nrested to go in his expected turn this Saturday, as the 5th starter.  Not\nthat this is a good thing, of course.  I'd like to see a well-managed\nfour-man rotation with this team... \n\n---\nGlenn Waugaman\nDigital Equipment Corporation\nLittleton, MA\ng_waugaman@nac.enet.dec.com\n---\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2154, "properties": {"category": "misc.forsale", "text": "From: pk@wet.UUCP (Philip King)\nSubject: PC, NETWORK and OFFICE EQUIPMENT - LONG (Repost, Lower Prices!)\nKeywords: PC,LAN,Novell,ethernet,IBM,laser,copier\nDistribution: na\nOrganization: Wetware Diversions, San Francisco\nLines: 161\n\n\nNEW POSTING, LOWER PRICES!!  MAKE OFFERS ON ANYTHING THAT SEEMS INTERESTING!!\n\n\n\nA company I'm associated with is closing out some inventory and office\nequipment.  Here's what's available:\n\n\nQuan.          Item                     Description               Price ea.\n\n\n        ******* NEW ADDITIONS!! ********\n\n1             NOVELL              * 100 USER * version of         BEST OFFER\n              NETWARE 2.15        ADVANCED NETWARE 286, with\n              TTS, SFT II         System Fault Tolerance level    (Remember\n                                  II (Disk Duplexing, Mirroring),  v2.2 sells\n                                  Transaction Tracking (Fault      for $3000\n                                  Tolerant File System), etc.      for 100\n                                  Just the manuals alone take      users!\n                                  up a foot and a half of shelf\n                                  space!\n\n1             HAYES LANSTEP       HAYES Peer-to-Peer LAN            $40\n              Starter Package     OPERATING SYSTEM and email.\n                                  NetBIOS compatible, expands\n                                  up to 128 users. UNOPENED.\n\n1             Canon NP1010        Great little COPY MACHINE -       $200\n                                  makes great copies (just needs\n                                  toner)  Reduce, Enlarge, etc.\n                                  Very Good Condition, a bargain!\n \n(End of new items)\n\n2       Bytex RingOut             Token Ring Cable and MAU     (Was $750)\n                                  testing and certification\n                                  tool.  This is the standard  NOW: $625\n                                  HANDHELD TESTING UNIT used\n                                  by large companies such as\n                                  Coca Cola and American Express\n                                  to certify their physical layer.\n                                  Current retail price: $1495.\n                                  These are demo or NEW.\n\n1       Microtest Lanmodem        Excellent MODEM SERVER for Novell (Was\n                                  Networks.  Supports \"Remote LAN    $900)\n                                  Node\" indial, modem pooling, and\n                                  LAN to LAN asynchronous routing.   NOW:\n                                  Ethernet version.  Current retail  $750\n                                  price: $2000\n\n13      Microtest Lanport         Standalone ETHERNET PRINT    WAS: $200\n        AUI --> COM1              SERVER for Novell Networks\n                                  (The Intel NetportII is      NOW: $150 ea.\n                                  based on this.  Original\n                                  retail: $595)  Most of\n                                  these are BRAND NEW.\n\n12      Microtest Lanport         See above                           \"\n        BNC --> COM1\n\n11      Microtest Lanport         See above                           \"\n        BNC --> COM1, COM2\n\n3       Microtest Lanport         See above                           \"\n        AUI --> COM1, COM2\n\n4       Microtest Lanport         See above                           \"\n        AUI --> LPT1\n\n1       Microtest Lanport         See above                           \"\n        BNC --> LPT1\n\n\n2       Token Ring MAU            8-port IBM 8228 clone             $100\n\n5       Milan MIL-03P             AUI to 10BaseT Mini TRANSCEIVER (WAS: $50)\n                                                                   NOW: $40\n\n1       QMS SmartWriter 8/3X      HP LaserJet PLUS Compatible    (WAS $400)\n                                  LASER PRINTER.  8 ppm, 300 dpi.\n                                  Based on the Canon Engine, it   NOW: $325\n                                  has serial and IBM TWINAX ports.\n                                  Emulates HP, Epson FX, IBM\n                                  Proprinter, Diablo, and Qume.\n                                  Downloads HP fonts.  Reliable!\n\n2       IBM Quietwriter 2         Quiet, letter-quality PRINTER.    $100\n                                  1 sheet at a time feed.  Have\n                                  extra ribbon cartridges.\n\n1       IBM Tractor Feed          For the Quietwriter above.        $25\n\n3       IBM PC/XT Compatible      Misc PC/XT compatible COMPUTERS,  (WAS:\n                                  some are \"PCs Limited\" (original  $150)\n                                  DELL Computer Co.), some are\n                                  \"Tech PC/XT\".  These come with    NOW:\n                                  at least a 20 MB hard disk, a     $125\n                                  360 KB floppy, monochrome video\n                                  card, keyboard, and 640 kb of\n                                  memory.\n\n3       IBM PC/AT or Compatible   Some of these are original IBM (WAS: $200-\n                                  AT's, some are TURBO clones.         $250)\n                                  Clone brands include Tandon,\n                                  Acer, and Everex.  Standard     NOW: $175-\n                                  equipment is the same as above,      $200\n                                  except most have 30-40 MB hard\n                                  drives, and 1 1.2 MB floppy.\n\n4       Amber Monitor for PC      IBM Compatible Monochrome TTL     $20\n                                  type, brands vary, including\n                                  Samsung, Magnavox, and ADI.\n                                  (Mostly want to stay local on\n                                  these - too hard to ship)\n\n2       IBM 5151 Green Monitor    Ubiquitous IBM PC Display,        $20\n                                  Monochrome TTL type.\n                                  (Local - see above)\n\n1       Zenith ZFL181-92          LAPTOP PC. Full-Size and Full-  (WAS $300)\n                                  Travel keyboard, XT compatible,\n                                  Backlit Supertwist (?) Display,  NOW: $250\n                                  Dual 720k floppies.\n\n1       Accton EtherCoax-8W       8-bit, BNC ETHERNET INTERFACE   (WAS: $60)\n                                  card for PC compatibles.  This\n                                  unit is nicely made (mostly      NOW: $45\n        (Also have 1 used, BO)    surface mount) clone of the\n                                  ubiquitous Western Digital\n                                  WD-8003E.  NEW in box with disk.\n\n6       Western Digital WD8003E   The \"real McCoy\" version of the   $50\n                                  above.  Drivers are available\n                                  for just about anything.  Used.\n                                  Surprising performance for an 8\n                                  bit card.  No DMA hassles.\n\n1       Hedaka 2400 Modem         Internal, for PC Compatibles.  (WAS: $35)\n                                  In box, almost new, works fine.\n                                                                  NOW: $25\n\n1       Hayes 1200B Internal      Internal 1200 real HAYES modem    $15\n                                  for PC compatibles.  Untested.\n\n\n\nTerms on the above are C.O.D., shipping extra.  As usual, offers are welcome,\nbut I think most of these prices are more than fair.  Most of this equipment\nis tested and working perfectly, unless otherwise noted.\n\nPlease contact me via email as follows:\n\npk@wet.com  {netcom,hoptoad}!wet!pk\n\n\n\n\nThanks!\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2155, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lbyler@cup.hp.com (Larry Byler)\nSubject: Re: Problem with Maxtor 340Mb IDE drive\nArticle-I.D.: cup.C533Lx.Ao3\nOrganization: Hewlett-Packard\nLines: 31\nNntp-Posting-Host: hpmpec3c.cup.hp.com\nX-Newsreader: TIN [version 1.1 PL8.10]\n\nFirst of all, thanks to those of you who responded, both here and via e-mail.\nThe tips didn't pan out, but it was good hearing from you.\n\nNow, following up to my earlier post:\n[...]\n: Disk controller:  Acculogic sIDE-3 2 hard/2 floppy IDE controller\n:   Jumpers:  All defaulted (shown as *):  \n:     Normal IRQ*/delayed IRQ     Primary*/secondary floppy address\n:     Single*/dual speed floppy   Primary*/secondary IDE address\n:     Precomp = 125ns*/187 ns     IOCHRDY not driven*/IDE drive controls IOCHRDY\n[...]\n: Other cards:  (didn't check brand) 2 Serial/1 Parallel adapter\n: \t      Logitech Bus Mouse adapter\n: \t      Roland MPU-401-compatible MIDI interface \n: \t\tConfigured with default IRQ 2, mem address 0330\n\nI opened up the box and removed all the \"other cards\" above.  No help there.\nThen, not having anything better to try, I changed Normal IRQ to Delayed\nIRQ on the disk controller (didn't make any difference) and IOCHRDY_not_\ndriven to IDE_drive_controls_IOCHRDY (also had no effect).  So I put \neverything back to the way it was and re-installed the cards.\n\nI then unplugged the floppy drive cable from the disk controller.  Voila!,\nthe PC booted from power up, although it seemed to take several seconds \nbefore the first access to the hard disk.  Plug the floppy cable back\nto the controller and the original (non-boot) behavior returns.\n\nO.K., with this additional information, does anyone in netland have any \nwords of wisdom for what's going on and how I should deal with it?\n\n-Larry \"still (un)plugging away\" Byler-\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2156, "properties": {"category": "sci.crypt", "text": "From: rboudrie@chpc.org (Rob Boudrie)\nSubject: Re: How to detect use of an illegal cipher?\nOrganization: Center For High Perf. Computing of WPI; Marlboro Ma\nLines: 25\n\n>As for my impressions of the whole scheme It seems that instead of trying to\n>ban strong crypto, they are trying to co-opt it. Their contention that they \n>need to keep the algorythm secret to protect the security of the key\n>registration suggests possible inherent weakness to the algorythm. More likely\n>is that they dont want anyone constructing black market devices which dont \n>have the keys registered. Anyone else notice that in their Q&A session, they\n\nPreventing black market chips w/non-escrowed keys IS exactly what they\nmean by protecting the security of the key escrow system.  There are\ntwo parts to the security of such a system:\n  \n    (a) Preventing decruption by unauthorized personel\n    (b) Assuring that the gummit can always decrypt clipper\n        traffic when it authorizes itself to do so.\n\nOf course, the ministry of propoganda will do a lot of tallking about\n(a) and very little about (b).\n\n                                        rob boudrie\n                                        rboudrie@chpc.org\n\nps: Anyone care to guess what encryption scheme the gov't is using on\n    its newly formed database of anarch-cryptists who oppose this entire\n    lunacy?\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2157, "properties": {"category": "talk.politics.misc", "text": "From: cdm@pmafire.inel.gov (Dale Cook)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: WINCO\nLines: 41\n\nIn article <C5IJ7H.L95@news.iastate.edu> jrbeach@iastate.edu (Jeffry R Beach) writes:\n>In article <1993Apr15.021021.7538@gordian.com> mike@gordian.com (Michael A. Thomas) writes:\n>>In article <C5HuH1.241@news.iastate.edu>, jrbeach@iastate.edu (Jeffry R Beach) writes:\n>>> Think about it -- shouldn't all drugs then be legalized, it would lower\n>>> the cost and definitely make them safer to use.\n>>\n>>  Yes.\n>> \n>>> I don't think we want to start using these criterion to determine\n>>> legality.\n>>\n>>  Why not?\n>\n>Where do they get these people?!  I really don't want to waste time in\n>here to do battle about the legalization of drugs.  If you really want to, we\n>can get into it and prove just how idiotic that idea is!  \n\nYou asked a question, and now you don't want people to answer?  I believe\na legitimate question was asked.  Why shouldn't cost and safety be used\n(at least in part) to determine legality?\n\nI'd like to see you *prove* that drug legalization is an idiotic idea.\nSeems to me the evidence from Great Britain is pretty convincing that \ndrug legalization is a good idea.  Even such a noted conservative as\nWilliam F. Buckley supports it.\n>\n>My point was that it is pretty stupid to justify legalizing something just\n>because it will be safer and cheaper.\n> \n>A few more ideas to hold to these criterion - prostitution; the killing of all\n>funny farm patients, AIDS \"victims\", elderly, unemployed, prisioners, etc. -\n>this would surely make my taxes decrease.\n\nYour examples (except for prostitution) fail miserably to meet both criteria\n(safer AND cheaper).  Obviously, killing people is not \"safe\".  As for\nprostitution, why shouldn't it be legal?\n--------------------------------------------------------------------------\n...Dale Cook    \"Any town having more churches than bars has a serious\n                   social problem.\" ---Edward Abbey\nThe opinions are mine only (i.e., they are NOT my employer's)\n--------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2158, "properties": {"category": "comp.windows.x", "text": "From: jck@catt.citri.edu.au (Justin Kibell)\nSubject: Re: Honors Degrees: Do they mean anything?\nReply-To: jck@catt.citri.edu.au\nOrganization: CATT Centre at CITRI, Melbourne, Australia\nLines: 9\n\nWhat has this got to do with comp.windows.x?\n\n     _,_\n    (o o)\n-oo0-\\_/-0oo--------------------------------------------------------------\nJustin Kibell - Systems Programmer - XMelba Project Team - C.A.T.T.\nCollaborative Information Technology Research Institute - Melbourne - Vic.\nInternet: jck@jaguar.catt.citri.edu.au   Phone: +61 03 282 2456  Australia\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2159, "properties": {"category": "rec.autos", "text": "From: dje@bmw535.NoSubdomain.NoDomain (Don Eilenberger)\nSubject: Re: Do trains have radar?\nOrganization: Bellcore, Livingston, NJ\nLines: 30\n\nIn article <1993Apr13.111652@usho72.hou281.chevron.com>, hhtra@usho72.hou281.chevron.com (T.M.Haddock) writes:\n\n|> \n|>  While taking an extended Easter vacation, I was going north on I-45\n|>  somewhere between Centerville, TX and Dallas, TX and I came upon a \n|>  train parked on a trestle with its locomotive sitting directly over\n|>  the northbound lanes.  There appeared to be movement within the cab \n|>  and out of curiosity I slowed to 85 to get a better look.  Just as I\n|>  passed from underneath the trestle, my radar detector went into full \n|>  alert - all lights lit and all chirps, beeps, and buzzes going strong.\n|>  I thought I had been nailed good but no police materialized.\n|> \n|>  Could this have been caused by the train's radio or what?\n|> \n|> \n|>  TRAVIS\n\nBoy, Travis..\n\nWere you LUCKY!!.. you went under the new Texas Rangers\nStealth Patrol Car! Good thing you slowed down!\n\nNewsgroups: rec.autos\nDistribution: world\nReferences:  <1993Apr13.111652@usho72.hou281.chevron.com>\nFrom: dje@bmw535.NoSubdomain.NoDomain (Don Eilenberger)\nOrganization: \nSubject: Re: Do trains have radar?\nKeywords: \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2160, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: About this 'Center for Policy Research'...\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 20\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n   I have read numerous posts over a period of several months, by\nthis anti-Israel fanatic, hiding in the shadow of the respectable\nsounding name of the 'Center for Policy Research.'  Obviously, it\nis no research center of any kind, unless 'researching' published\ndocuments to find material to use against Israel makes it so.  \n\n   Labeling a propaganda mill a research center is not surprising\nin itself.  That is simply part of the propaganda process.  I was\ncurious if anyone knew who this anti-Israel fanatic hiding behind\nhis phoney 'research center' name is.  Is he an Arab?  Is he some\ntypical anti-semite hiding behind a veneer of 'anti-zionism?'  Is\nhe some Jew who perhaps lived in Israel and just couldn't make it\nthere, and is now taking his failure out on Israel?  \n\n   Let's shed some light on this clown once and for all.  It will\nhelp put his nonsense in the proper perspective.  And the readers\nof this group who are more interested in fact than in anti-Israel\nhyperbola can ignore this junk.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2161, "properties": {"category": "talk.politics.guns", "text": "From: earlw@apple.com (Earl Wallace)\nSubject: Re: With Friends Like These -- L. Neil Smith\nOrganization: Apple Computer Inc. ESD/OSBU/Cross-Platform Software\nLines: 17\nNNTP-Posting-Host: apple.com\n\n\n >> Look, if you can figure out a reliable means of keeping guns away from\n >> bad people, while not interfering with good people, I think we'd all be\n >> for it.  The problem is, the methods we're using now don't do the trick.\n\n   > Don't manufacture them.  Don't sell them.  Don't import them.\n   >\n   > Some guns will get through, but far fewer, and far less people will\n   > die because of them.  Hunting weapons could be allowed, of course, as\n   > long as they are big, and bulky, and require reloading after a few\n   > shots (how many times can you shoot at the same animal, anyways One\n   > assumes they are moving!)\n\nA better solution:\n\n  If the 'bad' people can't be trusted with guns, then lock them or knock\n  them off.  Stop punishing good people.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2162, "properties": {"category": "rec.autos", "text": "From: daz1@ns1.cc.lehigh.edu (DEMOSTHENIS A. ZEPPOS)\nSubject: Re: Integra GSR\nArticle-I.D.: ns1.1993Apr5.234729.100387\nOrganization: Lehigh University\nLines: 67\n\nIn article <3mwF2B1w165w@njcc.wisdom.bubble.org>, jonc@njcc.wisdom.bubble.org (J\non Cochran) writes:\n>> >     I'd like to add the Beretta GTZ as a car which will kick GS-R butt\n>> >anyday, and it's a lot cheaper to boot\n>>\n>> I will take this one with a definate grain of salt.  Performance data shows a\n>>\n>> If this poster has some proof(other than \"my friend blew one away last week\"\n>\n>\n>     Want proof?  Here is some data on acceleration and handling from\n>Motor Trend (apr '93).\n>\n>          Integra GS-R     Beretta GTZ\n>\n>0-60         7.7             7.7\n>1/4 mile     16.0/88.1       16.1/87.8\n>L acc (g's)  .84             .86\n>Slalom       63.7            68.4\n>***WRONG***\nWhy don't you look again at Motor Trend's, slalom times, they are 67.9, right\nalong with the Integra, and the car does that with small 14 inch tires that\nare all -weather XGTV4, not to mention that the Integra rides alot better than\na Beretta.\nYour acceleartion times also vary, magazine to magazine\nRoad & Track and Car& Driver have the GS-R at 6.8 to 8.0 for Road and Track.\nAlso Quarter mile times vary from 15.4 to 16.1\nYou can't tell exactly by the numbers.  Furthermore, the Integra will\ndefinately outrun the Beretta on the high end.  Car & Driver and Road & track\nhave the GS-R doing 136 to 141 mph, and it gets there fast.\n\n\n>     So, the Beretta can out handle the Integra and it can certainly keep\n>up with it in acceleration.  And the Beretta probably has a higher top\n>speed due to the horsepower advantage (160/117 (hp/torque) for the\n>Integra vs. 180/160 for the Beretta).\n***You always believe those exact numbers, why don't you drive a GS-R, and see\nfor your self, while the GS-R has a low 117 torqye, its high gearing over a 8000\nrpm make up for the difference (still wouldn't call it a torque moster though!)\n\n>     The biggest advantage would have to be the price.  The Integra costs\n>$19,111 (as tested Motor Trend), the GTZ costs $16,134 (as tested).  The\n>GTZ also has standard nicities and Airbag and Antilock brakes.  An airbag\n>is not available on the Integra and lower models do not have ABS.\n>Considering you save almost $3,000 dollars for the Beretta, and the Quad4\n>is a reliable engine, it doesn't make sense to get the Integra as a\n>performance coupe, which is what people have been trying to make it out\n>to be.\n>\n\nQuad 4 reliable, yeah, what's your definition of reliable- if that's reliable,\nthen its safe to say that integra engines in general are near perfect\n (not to mention, a hell of alot smoother and quieter - balance shafts.The Acura has the engine\n   wins the reliablity contest hands down. You can rev that car all day, everyday,\nand you'll never blow a hose, or crack the block, or anything else. (I speak\nfrom expierence!)\nI'm not saying the Quad 4 is a bad engine, but don't highlight reliability when you\ncomparing it to a Acura Engine.  AND while the Integra costs alot more, it is a\nbetter investment since it will hold its value considerably much better.  And\ndoes a nice job at being a sporty car and practical at the same time.\n\nNOTE: this isn't a flame on the GTZ, or other GM Quad 4 products.  THe Berreta\nis a nice car, and puts out respectable performance and a very reasonable\nprice not to mention, it has an Airbag.  But to start quoting figures from one\nsource, isn't too reliable.  Read other sources, and drive both cars.  While I\nhaven't driven a GTZ, I have driven GTs, and Grand Ams with Quad 4 engines,\n(so they are similair.)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2163, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: btbg1194@uxa.cso.uiuc.edu (Bradley T Banko)\nSubject: DOS Quick C 2.5 crashes Windows 3.1?\nReply-To: b-banko@uiuc.edu\nOrganization: University of Illinois at Urbana\nLines: 22\n\nI am using DOS Quick C 2.5 in a DOS window under Windows 3.1, and the other\nday while I was running the compiler, I got a general protection fault\nimmediately followed by a \"serious disk error\".  When I rebooted, I found\nthat about 15 files had gotten \"cross-linked\" which is a pretty serious\ncorruption of the hard drive file system.\n\nI am concerned that Quick C in a DOS window has somehow strayed outside\nits protected mode world and corrupted the smartdrv.exe disk cache and\nthat is what caused the disk problem.\n\nI thought that DOS programs run in DOS windows were pretty well-contained \nby Windows.  If that is true, then maybe the Quick C compiler has nothing \nto do with it.  Has anybody else had this type of problem?\n\n(I only recently \"upgraded\" from Quick C 2.0 to 2.5.)\n\nBrad Banko\n \n-- \nBrad Banko;  Dept of Physics;  U of Illinois;  b-banko@uiuc.edu\n=========================================================================\nSee one.  Do one.  Teach one.\t\t\t73 de kb8cne @ n9lnq.il\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2164, "properties": {"category": "rec.sport.baseball", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Players Overpaid?\nArticle-I.D.: midway.1993Apr5.231343.17894\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 42\n\nThere's a lot of whining about how much players are overpaid.  I thought\nI'd put together an underpaid team that could win a pennant.  I splurged\nand let four of the players earn as much as half a million dollars; the\nhighest-paid player is Frank Thomas, at $900K.  I cut some players, like\nKenny Lofton, Chris Hoiles, Keith Mitchell, Tim Wakefield, and a bunch\nof pitchers, all of whom could have arguably made the team better at a\ncost of $1 million for the lot of them.  The total team salary is \n$7,781,500, averaging slightly over $300K a player.  If that's too steep,\nyou can dump Thomas and Bagwell, replacing them with Paul Sorrento and\na minimum wager to save a bit over a million dollars, and still have one\nof the best teams in the majors.\n\np, Juan Guzman, 500\np, Mussina,\t400\np, Castillo,    250\np, Eldred,      175\np, Rhodes,\t155\np, Militello,   118\nrp, Rojas,\t300\nrp, Beck,\t250\nrp, Melendez,   235\nrp, Hernandez,\t185\nrp, Nied,\t150\nc, Rodriguez,\t275\nc, Piazza,      126\n1b, Thomas,\t900\n1b, Bagwell,    655\n2b, Knoblauch,\t500\n2b, Barberie,\t190\n3b, Gomez,\t312.5\n3b, Palmer,\t250\nss, Listach,\t350\nss, Pena,\t170\nlf, Gonzalez,\t525\ncf, Lankford,\t290\nrf, R.Sanders,\t275\nof, Plantier,\t245\n-- \nted frank                 | \"However Teel should have mentioned that though \nthf2@kimbark.uchicago.edu |  his advice is legally sound, if you follow it \nthe u of c law school     |  you will probably wind up in jail.\"\nstandard disclaimers      |                    -- James Donald, in misc.legal\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.100+0000", "event": "documents", "entityId": 2165, "properties": {"category": "rec.sport.hockey", "text": "From: umturne4@ccu.umanitoba.ca (Daryl Turner)\nSubject: Re: TPS will stay on the top...\nNntp-Posting-Host: gibson.cc.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Manitoba, Canada\nLines: 25\n\nIn article <1993Apr6.171611.1@tnclus.tele.nokia.fi> hahietanen@tnclus.tele.nokia.fi writes:\n>MIGHTY ONES GET MIGHTIER:\n>\n>TPS, the Finnish Champions 1992/3, are getting still stronger!\n\nOh no!  Say it isn't so!\n\n>\n>BTW. Is Juha Yl|nen (centre, HPK) drafted by the Jets?? During last year\n>he has reached the top level among Finnish centres. He had very good\n>playoff games against TPS!\n\nYes, Yl|nen is a draft choice of the Jets.  (Assuming, of course, this\nis the same Yl|nen that played for Kiekko-Espoo in 1990-91.)  He was a\n5th round, 91st overall pick of the Jets in the 1991 entry draft.\n\nI noticed in the summaries that Yl|nen had really begun to play well in\nthe playoffs.\n\nDaryl Turner : r.s.h contact for the Winnipeg Jets \nInternet: umturne4@ccu.umanitoba.ca  \nFidoNET: 1:348/701 -or- 1:348/4  (please route through 348/700)\nTkachuk over to Zhamnov, up to Sel{nne, he shoots, he scores! \nThe Jets win the Cup!  The Jets win the Cup!\nEssensa for Vezina!  Housley for Norris!  Sel{nne for Calder!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2166, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nOrganization: U of Toronto Zoology\nLines: 17\n\nIn article <1993Apr20.204335.157595@zeus.calpoly.edu> jgreen@trumpet.calpoly.edu (James Thomas Green) writes:\n>Why do spacecraft have to be shut off after funding cuts.  For\n>example, Why couldn't Magellan just be told to go into a \"safe\"\n>mode and stay bobbing about Venus in a low-power-use mode and if\n>maybe in a few years if funding gets restored after the economy\n>gets better (hopefully), it could be turned on again.  \n\nOne consideration to remember is that if you don't turn it off now,\nyou may not be able to later.  This isn't a case of reaching over and\nflipping a switch; much of the spacecraft has to be working correctly\nto execute a \"turn off\" command successfully.  Spacecraft do malfunction\nin their old age.  The big concern is not radio clutter from idle\nspacecraft, but radio clutter from malfunctioning spacecraft that can\nno longer be turned off.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2167, "properties": {"category": "misc.forsale", "text": "Subject: CD ROM\nFrom: mike.damico@cccbbs.UUCP (Mike Damico) \nReply-To: mike.damico@cccbbs.UUCP (Mike Damico) \nDistribution: world\nOrganization: Cincinnati Computer Connection - Cincinnati, OH - 513-752-1055\nLines: 2\n\nIBM 3510-001 cd-rom drive 350ms. drive only make offer or trade.\n                                                               \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2168, "properties": {"category": "comp.graphics", "text": "From: ab@nova.cc.purdue.edu (Allen B)\nSubject: Re: Fractals? what good are they?\nOrganization: Purdue University\nLines: 51\n\nIn article <7155@pdxgate.UUCP> idr@rigel.cs.pdx.edu (Ian D Romanick) writes:\n> One thing:  a small change in initial conditions can cause a huge\n> change in final conditions.  There are certain things about the way\n> the plate tektoniks and volcanic activity effect a land scape that\n> is, while not entirely random, unpredictable.  This is also true with\n> fractals, so one could also conclude that you could model this\n> fractally. \n\nYeah, and it's also true most long complicated sequences of events,\ncalculations, or big computer programs in general.  I don't argue\nthat you can get similar and maybe useful results from fractals, I\njust question whether you >should<.\n\nThe fractal fiends seem to be saying that any part of a system that we\ncan't model should be replaced with a random number generator.  That\nhas been useful, for instance, in making data more palatable to human\nperception or for torture testing the rest of the system, but I don't\nthink it has much to do with fractals, and I certainly would rather\nthat the model be improved in a more explicable manner.\n\nI guess I just haven't seen all these earth-shaking fractal models\nthat explain and correlate to the universe as it actually exists.  I\nreally hope I do, but I'm not holding my self-similar breath.\n\n> There is one other thing that fractals are good for:  fractal\n> image compression.\n\nUh huh.  I'll believe it when I see it.  I've been chasing fractal\ncompression for a few years, and I still don't believe in it.  If it's so\ngreat, how come we don't see it competing with JPEG?  'Cause it can't,\nI'll wager.\n\nActually, I have wagered, I quit trying to make fractal compression\nwork- and I was trying- because I don't think it's a reasonable\nalternative to other techniques.  It is neat, though. :-)\n\nI'll reiterate my disbelief that everything is fractal.  That's why I\ndon't think fractal compression as it is widely explained is\npractical.  I know Barnsley and Sloan have some tricks up their\nsleeves that make their demos work, but I don't see anyone using it in a\nreal product.  It's been six years since Iterated Systems was formed,\nright?\n\n\t\"There are always going to be questions until there's a product\n\tout there,\" Sloan replies.  The company plans to ship its first\n\tencoding devices in the summer, he says.  In March, Iterated\n\tSystems will have the other half of the system: the decoders.\n\n\t\t- Scientific American, March 1990, page 77\n\nAllen B (Don't even get me started :-) )\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2169, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Gamma Ray Bursters.  WHere  are they.\nOrganization: Express Access Online Communications, Greenbelt MD USA\nLines: 16\nNNTP-Posting-Host: access.digex.net\n\n  What  evidence  indicates that Gamma Ray bursters are very far away?\n\nGiven the enormous  power,  i was just wondering,  what if they are\nquantum  black holes or something  like that  fairly close by?\n\nWhy would they have to be at  galactic ranges?   \n\nmy own pet theory is that it's  Flying saucers  entering\nhyperspace :-)\n\nbut the reason i am asking is that most everyone assumes  that they\nare  colliding nuetron stars  or  spinning black holes,  i just wondered\nif any mechanism could exist  and place them  closer in.\n\npat  \n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2170, "properties": {"category": "rec.sport.baseball", "text": "From: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nSubject: Re: NO JOKE: ROCKIES HAVE ATTENDANCE RECORD!!!!\nOrganization: Computer Science Department at Rose-Hulman\nLines: 21\nDistribution: usa\nReply-To: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nNNTP-Posting-Host: g215a-1.nextwork.rose-hulman.edu\n\nIn article <1993Apr2.184338.18205@dvorak.amd.com> twhite@mozart.amd.com (Tom  \nWhite) writes:\n>    The highest single-game attendance was Game 5 of the 1959 World Series,\n> October 6, at the LA Coliseum.  White Sox over Dodgers, 1-0.\n> \n>    Gate?  Officially 92,706.\n> \n>    Largest regular-season game?  78,672, again in LA, for the first\n> game in the City of Angels -- Opening Day, April 18, 1958 (home opener,\n> anyway).\n> \n>    The Rockies might really nail the record.\n> \n>    The record attendance for a doubleheader is larger, but since dh's are\n> all but nonexistent nowadays, why bother listing it...\n\nWasn't there an 85,000 New York at Cleveland game in the late 40's?\n\njhon rickert\nrickert@nextwork.rose-hulman.edu\nprediction for 1993:  Marlins: 70 wins, Rockies: 50 wins\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2171, "properties": {"category": "rec.sport.hockey", "text": "Subject: Re: Rheaume start\nFrom: S960121@UMSLVMA.UMSL.EDU\nOrganization: UM-St. Louis\nNNTP-Posting-Host: umslvma.umsl.edu\nX-Newsreader: NNR/VM S_1.3.2\nLines: 12\n\nJust a quick note about Manon's immediate future: Rumor has it(USA Today's spor\nts page) that she will be playing with Tampa Bay's affiliate in the ECHL(I Thin\nk. It's been a couple of days. :)) She will supposedly be competing for the num\nber 2 goaltender spot.  I think, after her performance, which was damn good for\n someone who hasn't played squat all year, that we'll be seeing a lot more of h\ner in Atlanta in the years to come.\n \n \nWard\n \n-Go Blades!! Bring home the Turner Cup, again!!\n \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2172, "properties": {"category": "misc.forsale", "text": "From: jllee@acsu.buffalo.edu (Johnny L Lee)\nSubject: RE:  == MOVING SALE ===\nSummary: RE:  === MOVING SALE ===\nOrganization: UB\nLines: 44\nNntp-Posting-Host: lictor.acsu.buffalo.edu\n\nReduced Prices! \nI have a list of things forsale on behalf of my brother, who's moving (moved\nalready)\n\n\t\t\t\t\t\t\t\tOffer:\n1) Black and Decker Duster Plus (Portable Hand Vaccum)\t\n \tpurchased for $32, \t\t\t\t\t  $12\n\n2) SR-1000 Dual Cassette Portable Player, AM/FM\n5-Band graphics Equalizer, high speed dubing, Duo \nTape.Tape deck A, seems to have lost treble sound. \nBut, I bet  it's fixable.\n\tpurchased for $80\t\t\t\t\t  $25\n\n3)Monolux Zoom MicroScope, up to 1200X magnification\nMade in Japan, includes case and accessories\n\tpurchased for $50\t\t\t\t\t  $20\n\n4)Sunbeam 1400 Hair Dryer, the dryer you put your \nhead under/into. You know, the ones you see in the salons.\n(Don't ask me why my bro had it)\n\tpurchased for $60\t\t\t\t          $24\n\n5)Everylast Speed Bag, all leather. Brand new, never \nused\t\t\t\t\t\t\t\t  $10\n\n6)Osterizer Pusle Matic Blender, with 10 speeds \nand a cookbook, 5 years old\t\t\t\t\t  $10\n\tpurchased for $50\n\n8)Binolux Binoculars . 7x35, extra wide angle\n525ft. at 1000yds. with case. very new.\t\t                  $20\n\n9)Proctor and Silex Spray,Steam and Dry Iron.\nvery new.\t\t\t\t\t\t\t  $10\n\n\nAny questions, contact me thru e-mail and I will reply expeditously\nAnd always, S+H are not included, so please consider this.\n\nAnd lastly, I'm a very reasonable.Very Reasonable.\n\n\t\t\t\t\tThanks,\n\t\t\t\t\t\tJohn\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2173, "properties": {"category": "talk.religion.misc", "text": "From: peavler@fingal.plk.af.mil (Ninja Gourmet)\nSubject: Scarlet Horse of Babylon (was Daemons)\u001b\nOrganization: University of New Mexico, Albuquerque, NM\nLines: 20\nDistribution: world\nNNTP-Posting-Host: fingal.plk.af.mil\nKeywords: dead horse, Horse of Babylon\n\nIn article <1qilgnINNrko@lynx.unm.edu>, blowfish@leo.unm.edu (rON.) writes:\n|> Its easy...\n|> 667 >is< the neighbor of the beast (at 666)-\n|> the beast lives at the end of a cul-de-sac.\n|> r.\n\nI noticed this dead horse in your Keywords line. Is this the famous scarlet horse\nof Babylon that the Beast (that's 666 for you illuminatti) rides on in those\nwonderful mediaeval manuscripts. If so, I fear your announcement that the old\ngirl is dead may be premature. I bet $20 on her to place in the 6th race at The\nDowns last Sunday, and she slid in a bad fifth. So she is not dead. She is just\ncomatose. (like god that way, I suppose).\n\nNinja Gourmet\nWill fight for food.\u001b \n\n-- \nJim Peavler\t\t\tMy opinions do not exist.\npeavler@plk.af.mil\t\tThat is why they are called\nAlbuquerque, NM\t\t\t\tMY opinions.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2174, "properties": {"category": "rec.sport.baseball", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Ozzie Smith a Defensive Liability?\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 18\n\nIn article <1993Apr17.200602.8229@leland.Stanford.EDU> addison@leland.Stanford.EDU (Brett Rogers) writes:\n>In article <steph.735027990@pegasus.cs.uiuc.edu> steph@pegasus.cs.uiuc.edu (Dale Stephenson) writes:\n>>>Smith, Ozzie           .742  .717  .697  .672  .664   0.701\n>>  The Wizard's 1988 is the second highest year ever.  Still very good,\n>>but I don't like the way his numbers have declined every year.  In a few\n>>years may be a defensive liability.\n>\n>That's rich... Ozzie Smith a defensive liability...\n\nWhy?  Do you expect him to remain the best shortstop in the game until\nhe reaches his seventy-third birthday, or something?  Why is it such a\nstrange concept that a forty-one-year-old Ozzie Smith might be a defensive\nliability in 1996?\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2175, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cs1442au@news.uta.edu (cs1442au)\nSubject: Dos 6.0 question\nOrganization: University of Texas at Arlington\nLines: 17\n\n Could some kind soul please email ma a response since i don't have\nmuch time to read this group.\n\n Question: I have a 170 MB hard drive which currently has 10 MB left.\nHow much space will DoubleSpace allow me to have?? I have a 486 50 w/ 4\nMB Ram if it matters.\n\n\nThanks in advance\n\nJason\n\n-- \n Jason Brown\ncs1442au@decster.uta.edu\n------------------------------------------------------------------------\nFav player Ruben Sierra\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2176, "properties": {"category": "rec.autos", "text": "From: aas7@po.CWRU.Edu (Andrew A. Spencer)\nSubject: Re: Dumb options list\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 21\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, parr@acs.ucalgary.ca (Charles Parr) says:\n\n>The idea here is to list pointless options. You know, stuff you\n>(can) get on a car that has no earthly use?\n\n1) a fitting that allows you to generate household current with\nthe engine running, and plug ins in the trunk, engine compartment\nand cabin.\n\nFeel free to add on...\n\nRegards, Charles\nx\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n\n:-)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2177, "properties": {"category": "comp.graphics", "text": "From: pes@hutcs.cs.hut.fi (Pekka Siltanen)\nSubject: Re: detecting double points in bezier curves\nNntp-Posting-Host: hutcs.cs.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 26\n\nIn article <1993Apr19.234409.18303@kpc.com> jbulf@balsa.Berkeley.EDU (Jeff Bulf) writes:\n>In article <ia522B1w165w@oeinck.waterland.wlink.nl>, ferdinan@oeinck.waterland.wlink.nl (Ferdinand Oeinck) writes:\n>|> I'm looking for any information on detecting and/or calculating a double\n>|> point and/or cusp in a bezier curve.\n>|> \n>|> An algorithm, literature reference or mail about this is very appreciated,\n>\n>There was a very useful article in one of the 1989 issues of\n>Transactions On Graphics. I believe Maureen Stone was one of\n>the authors. Sorry not to be more specific. I don't have the\n>reference here with me.\n\n\nStone, DeRose: Geometric characterization of parametric cubic curves.\nACM Trans. Graphics 8 (3) (1989) 147 - 163.\n\n\nManocha, Canny: Detecting cusps and inflection points in curves.\nComputer aided geometric design 9 (1992) 1-24.\n\nPekka Siltanen\n\n\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2178, "properties": {"category": "alt.atheism", "text": "From: nancyo@fraser.sfu.ca (Nancy Patricia O'Connor)\nSubject: Re: Amusing atheists and agnostics\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 11\n\ntimmbake@mcl.ucsb.edu (Bake Timmons) writes:\n\n>Rule #4:  Don't mix apples with oranges.  How can you say that the\n>extermination by the Mongols was worse than Stalin?  Khan conquered people\n>unsympathetic to his cause.  That was atrocious.  But Stalin killed millions of\n>his own people who loved and worshipped _him_ and his atheist state!!  How can\n>anyone be worse than that?\n\nYou're right.  And David Koresh claimed to be a Christian.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2179, "properties": {"category": "rec.autos", "text": "From: \"Daniel U. Holbrook\" <dh3q+@andrew.cmu.edu>\nSubject: Re: Did US drive on the left?\nOrganization: Carnegie Mellon, Pittsburgh, PA\nLines: 28\nDistribution: world\n\t<reilly-140493131545@rreilly.fnal.gov>\nNNTP-Posting-Host: po4.andrew.cmu.edu\nIn-Reply-To: <reilly-140493131545@rreilly.fnal.gov>\n\nRob Reilly:\n\n>whips and their tempers. Initially, all cars were built with the driver's\n>controls on the right because that's the way people drove buggies, so the\n\nThis is just not so - many of the earliest cars had their steering\ncontrols in the center of the vehicle, and there is no discernible\npattern of left- or right-hand steering controls until a few years into\nthe 20th century, when, in America at least, left-hand wheels became the\npattern. The mule team (or horses, I imagine) explanation, however,\nseems to have some merit.\n\nDan\ndh3q@andrew.cmu.edu\nCarnegie Mellon University\nApplied History\n\n\"This coffee plunges into the stomach...the mind is aroused, and\nideas pour forth like the battalions of the Grand Army on the field\nof battle....  Memories charge at full gallop...the light cavalry\nof comparisons deploys itself magnificently; the artillery of logic\nhurry in with their train of ammunition; flashes of wit pop up like\nsharp-shooters.\" \n               Honore de Balzac, 30 cups/day.\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2180, "properties": {"category": "comp.graphics", "text": "From: jroberts@ux4.cso.uiuc.edu (Robertson)\nSubject: ATI GUP and Graphics Wkshop/Win\nOrganization: University of Illinois at Urbana\nLines: 11\n\nI have an ATI Graph. Ultra Pro VLB w/2 megs, and have a small question\nabout Graphics Workshop for Windows.  When I exit from it it says my\ncurrent driver can handle on 32768 colors when I am actually in \n1024x768x65000 color mode.  Is this a driver problem, a GWS error, or\nwhat?  I am using the 1.5(59) driver under Win 3.1.  It correctly\nstates that I can display 16M colors when I switch to 800x600x24bit,\nthough.\nAnother question- Anybody know of any Viewers that support this card\nother than Windows viewers?\nAny help would be appreciated.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2181, "properties": {"category": "alt.atheism", "text": "From: davidk@welch.jhu.edu (David \"Go-Go\" Kitaguchi)\nSubject: Re: Americans and Evolution\nNntp-Posting-Host: uss1.welch.jhu.edu\nReply-To: davidk@welch.jhu.edu\nOrganization: Welch Medical Library\nLines: 56\n\n\n:P>My atheism is incidental, and the question of \"God\" is trivial.\n:P\n:P>But........\n:P\n:P>It matters a great deal to me when idiots try to force their belief on me,\n:P>when they try to enforce their creation myths to be taught as scientific\n:P>fact in school, when they tell me I can have no morals because morals are\n:P>from \"God\", when a successful presidential candidate says that an atheist\n:P>shouldn't be considered a citizen and couldn't be patriotic because \"after\n:P>all this is one nation under God\", when the fundies try to take over the\n:P>party that may well provide the next President of The United States of\n:P>America so that they can force their beliefs on the rest of the country,\n:P>et cetera..........\n:P\n:P>That's why I subscribe to alt.atheism.\n:P\n:P>And in the middle of this, people who aren't mind readers pop up on\n:P>alt.atheism to tell me what I do or don't believe, or to concoct some\n:P>straw-man reason why I don't share their particular belief.\n:P\n:P>You think I should just accept this?\n:P\n:P>This isn't particularly a dig at fundamentalist christians. I have been\n:P>told on alt.atheism that I reject Allah because I am too proud to embrace\n:P>islam, and that I reject Krishna because my eyes are closed. But most of\n:P>the religious nuts who post on alt.atheism are some kind of militant\n:P>christian who can't accept that others don't share their beliefs. This\n:P>kind of stuff should be kept on talk.religion.misc, where it belongs.\n:P\n:P>ATHEISM ISN'T A BELIEF, IT'S THE ABSENCE OF BELIEF IN ANY GODS.\n:P>                                 -------\n:P\n:P>Do you have a problem with this?\n:P\n:P>>\n:P>>Bill\n:PFirst, I would like to say that atheism is in fact a belief.  It is a beilief\n:Pbecause a belief in something you hold to with ador and faith.  An atheist says there are no gods.  This cannot be proven. therefore you are excepting this on\n:Pfaith alone.  That is a belief.  Secondly, you complain so much about how the \n:Pfundamental christians are trying to force their beliefs on you, but you don't\n:Pmention anything about how the atheists, such as; Madamme Murry O'hare(founder\n:Pof the Atheists Association in Austin Texas), and Robert Sherman(from the       Chicago area) have been trying to force their beliefs on everyone by trying to  get rid of God from our society by banning religious paintings from parks during Chistmas,  forcing cities to change their town seals if there is any mention of God in it (like Sherman has done), or trying to get the slogan \"In God We Trust\" off of the American currency? You also talk about creation \"myths\" as if they are in fact myths and tha\n:P\n:P\n:P \n:Phave concrete evidece of this.  You probably\n:Pdon't and that just enforces my point that your atheism is just as much belief as my christianity.  If this is not so please do show me why it isn't.  \n:PMark Covalt \n\nThe only real problem I have with the argument of christianity is that they seem to ignore their origin that being Asiatic in origin.  As soon as christians become the \ngood non ego-centric Buddhists they are supposed to be, then I might listen.\n\nMy opinion, I speak not for my place of employment... But I should...\n\"Christ was over-rated, and will the ATF follow Koresh (the current Christ) through\nhis ascention to heaven?\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2182, "properties": {"category": "soc.religion.christian", "text": "From: halat@panther.bears (Jim Halat)\nSubject: Re: Prophetic Warning to New York City\nReply-To: halat@panther.bears (Jim Halat)\nLines: 8\n\nI just started reading the group. I was wondering if someone\ncould re-post exactly what the Prophetic Warning to NYC was.\n\nThanks\n-jh\n\n[I suggest sending it to him via email with a cc to me.  I'll hold\nit in my files in case someone else needs it.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2183, "properties": {"category": "misc.forsale", "text": "From: ac999135@umbc.edu (ac999135)\nSubject: *** WANTED: Cheap Used GAMEBOY/TG-16 Games ***\nOrganization: University of Maryland, Baltimore County Campus\nLines: 7\nDistribution: world\nNNTP-Posting-Host: umbc8.umbc.edu\nX-Auth-User: ac999135\n\nThe title says it all...If you have some cheap used \nGAMEBOY or TG-16 (2 Player or more) Games, Please\nemail me all offers...\n\nRohit\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2184, "properties": {"category": "rec.motorcycles", "text": "From: sanjay@kin.lap.upenn.edu (Sanjay Sinha)\nSubject: Battery Charger\nKeywords: battery charger\nOrganization: University of Pennsylvania, Language Analysis Center\nLines: 18\nNntp-Posting-Host: kin.lap.upenn.edu\n\n\nI just noticed that my halogen table lamp runs off 12 Volts.\nThe big thinngy that plugs into the wall says 12 Volts DC,  20mA\n\nThe question is: Can I trickle charge the battery on my CB650\nwith it?\n\nI don't know the rating of the battery, but it is a factory\nintalled one. \n\n\nThanks,\nSanjay\n\n-- \n   '81 CB650 \t\t\t\t\t\tDoD #1224\n\n\t   I would give my right arm to be ambidextrous!\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2185, "properties": {"category": "misc.forsale", "text": "From: jks2x@holmes.acc.Virginia.EDU (Jason K. Schechner)\nSubject: Re: Adlib sound board for sale!\nOrganization: University of Virginia\nLines: 23\n\nIn article <bitzm.133.0@columbia.dsu.edu> bitzm@columbia.dsu.edu (MICHAEL BITZ) writes:\n>\n>\tI have an Adlib sound board for sale.  It includes\n>\tthe original disks, and I'll throw in a Windows 3.1\n>\t.WAV sound file driver.  For those of you that are\n>\tusing your PC Speaker for games, this will be a much\n>\twelcomed board for your PC!\n>\n>\t$70.00 includes shipping to your home or office.\n>\n>\tEmail: bitzm@columbia.dsu.edu\n\n\tConsidering that you can get a brand new Sounds Blaster\n(original) for around $80 I think this price is way too high.  Then\nagain, things are worth what someone is will to pay for them....\n\n-Jason\n\n-- \nSettle down, raise a family join the PTA, \nbuy some sensible shoes, and a Chevrolet\nAnd party 'till you're broke and they drag you away. It's ok.\n\t\t\t\t\tAl Yankovic\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2186, "properties": {"category": "sci.space", "text": "From: sysmgr@king.eng.umd.edu (Doug Mohney)\nSubject: Re: How many read sci.space?\nArticle-I.D.: mojo.1qkmkiINNep3\nReply-To: sysmgr@king.eng.umd.edu\nOrganization: Computer Aided Design Lab, U. of Maryland College Park\nLines: 15\nNNTP-Posting-Host: queen.eng.umd.edu\n\nIn article <1993Apr15.204210.26022@mksol.dseg.ti.com>, pyron@skndiv.dseg.ti.com (Dillon Pyron) writes:\n>\n>There are actually only two of us.  I do Henry, Fred, Tommy and Mary.  Oh yeah,\n>this isn't my real name, I'm a bald headed space baby.\n\nDamn!  So it was YOU who was drinking beer with ROBERT McELWANE in the PARKING\nLOT of the K-MART!\n\n\t\t\t\tUNLIMITED INSEMINATION OF THIS MESSAGE\n\t\t\t\t\tRIGIDLY REFUSED\n\n\n\n    Software engineering? That's like military intelligence, isn't it?\n  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2187, "properties": {"category": "rec.autos", "text": "From: sylveste@ecs.umass.edu\nSubject: Re: Ultimate AWD vehicles\nLines: 24\n\nIn article <Apr09.084236.19413@engr.washington.edu>, eliot@lanmola.engr.washington.edu (eliot) writes:\n> In article <1q34huINNjrv@uwm.edu> qazi@csd4.csd.uwm.edu writes:\n>>  Subarus don't sell that well, although the percentage of Subes purchased\n>>  with AWD is probably relatively high. \n> \n> 56% of all subarus sold are 4wd/awd.\n> \n>> Audi is backing down on the number\n>>  of models it offers with AWD.  Before, one could purchase an 80 or 90 with\n>>  AWD, but now it is reserved strictly for the top line model; the same goes\n>>  for the 100/200.\n> \n> the 80/80Q has been eliminated from the US lineup, but the 90 is still\n> available in quattro version, though it is hardly cheap.  they are\n> still true to their pledge of making 4wd an option on their entire\n> line of cars.  now, if only they will bring in the s4 wagon..\n> \n> eliot\n\nBefore the S4 became the S4 it was called the 200 turbo quattro 20v.\nThis model did come in a wagon, a very quick wagon.  Very rare also.\n\n                                                   Mike Sylvester  Umass\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2188, "properties": {"category": "soc.religion.christian", "text": "From: Steve.Hayes@f22.n7101.z5.fidonet.org\nSubject: Confession & communion\nLines: 14\n\n04 Apr 93, David Cruz-Uribe writes to All:\n\n DC> Also, what is Orthodox practice regarding communion?  I read\n DC> a throw-away remark someplace that the Orthodox receive less\n DC> frequently than Catholics do, but was is their current practice?\n DC> Have their been any variations historically?\n\nI think Orthodox practice varies from place to place, from parish to parish and from jurisdiction to jurisdiction. In some parishes here in South Africa the only ones who receive communion are infants (i.e. children under\n 7). In our parish it is expected that one will have been to Vespers and confessional prayers the evening before, and that one will have been fasting. As we have to travel 70km to the church, we don'\nt receive communion every Sunday, but about every third Sunday.\n\nSteve\n\n--- GoldED 2.40\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2189, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: anger\nOrganization: Indiana University\nLines: 34\n\nIn article <Apr.17.01.10.44.1993.2232@geneva.rutgers.edu> news@cbnewsk.att.com writes:\n>>Paul Conditt writes:\n[insert deletion of Paul's and Aaron's discourse on anger, ref Galatians\n5:19-20]\n>\n>I don't know why it is so obvious.  We are not speaking of acts of the \n>flesh.  We are just speaking of emotions.  Emotions are not of themselves\n>moral or immoral, good or bad.  Emotions just are.  The first step is\n>not to label his emotion as good or bad or to numb ourselves so that\n>we hide our true feelings, it is to accept ourselves as we are, as God\n>accepts us.  \n\nOh, but they definitely can be.  Please look at Colossians 3:5-10 and\nEphesians 4:25-27.  Emotions can be controlled and God puts very strong\nemphasis on self-control, otherwise, why would he have Paul write to\nTimothy so much about making sure to teach self-control? \n\n[insert deletion of remainder of paragraph]\n\n>\n>Re-think it, Aaron.  Don't be quick to judge.  He has forgiven those with\n>AIDS, he has dealt with and taken responsibility for his feelings and made\n>appropriate choices for action on such feelings.  He has not given in to\n>his anger.\n\nPlease, re-think and re-read for yourself, Joe.  Again, the issue is\nself-control especially over feelings and actions, for our actions stem\nfrom our feelings in many instances.  As for God giving in to his anger,\nthat comes very soon.\n\n>\n>Joe Moore\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.101+0000", "event": "documents", "entityId": 2190, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: THE REPUBLIC OF TURKEY SOLD 400 TONES OF ARMENIAN BONES IN 1924. \nKeywords: April 24, 1993, 78th Anniversary of the Turkish Genocide of Armenians\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 68\n\n\t\t\tYarn of Cargo of Human Bones [1]\n\t\n\t\tCopyright, 1924, by the New York Times Company\n\t\t\tSpecial Cable to The New York Times\n\n   PARIS, Dec 22, -- Marseilles is excited by a weird story of the arrival in\nthat port of a ship flying the British flag and named Zan carrying a\nmysterious cargo of 400 tons of human bones consigned to manufacturers there.\nThe bones are said to have been loaded at Mudania on the Sea of Marmora and\nto be the remains of the victims of massacres in Asia Minor. In view of the\nrumors circulating it is expected that an inquiry will be instigated.\n\n\t\t\t- - - Reference - - -\n\n[1] _New York Times_, December 23, 1924, page 3, column 2 (bottom)\n\n\t\t\t- - - - - - - - - - - -\n\nOn the 78th Commemorative Anniversary of the Turkish genocide of the Armenians,\nwe remember those whose only crime was to be Armenian in the shadow of an \nemerging Turkish proto-fascist state. In their names we demand justice.\n\nIn April 1915, the Turkish government began a systematically executed \nde-population of the eastern Anatolian homeland of the Armenians through a \ngenocidal extermination. This genocide was to insure that Turks exclusively\nruled over the geographic area today called the Republic of Turkey. The \nresult: 1.5 million murdered, 30 billion dollars of Armenian property stolen\nand plundered. This genocide ended nearly 3,000 years of Armenian civilization\non those lands. Today, the Turkish government continues to scrape clean any\nvestige of a prior Armenian existence on those lands. Today's Turkish\ngovernmental policy is to re-write the history of the era, to manufacture\ndistortion and generate excuses for their genocide of the Armenian people. In \nthe face of refutation ad nauseam, the Turkish Historical Society and cronies \nshamelessly continue to deny that any such genocide occurred. This policy \nmerely demonstrates that in the modern era, genocide is an effective state \npolicy when it remains un-redressed and un-punished. A crime unpunished is a \ncrime encouraged. Adolf Hitler took this cue less than 25 years after the \nsuccessful genocide of the Armenians.\n\nTurkey claims there was no systematic deportation of Armenians, yet...\nArmenians were removed from every city, town, and village in the whole of \nTurkey! Armenians who resisted deportation and massacre are referred to as \n\"rebels\".\n\nTurkey claims there was no genocide of the Armenians, yet...Turkish population\nfigures today show zero Armenians in eastern Turkey, the Armenian homeland.\n\nTurkey claims Armenians were always a small minority, yet...Turkey claims \nArmenians were a \"threat\".\n\nIn a final insult to the victims, the Republic of Turkey sold the bones of \napproximately 100,000 murdered Armenians for profit to Europe.\n\nToday, the Turkish government is enjoying the fruits of that genocide. The\nsuccess of this genocide is hangs over the heads of Turkey's Kurdish\npopulation.\n\nThe Armenians demand recognition, reparation, return of Armenian land and\nproperty lost as a result of this genocide.\n\nARMENIANS DEMAND JUSTICE                              ERMENILER ADALET ISTIYOR\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"Armenia has not learned a lesson in\nS.D.P.A. Center for Regional Studies |  Anatolia and has forgotten the \nP.O. Box 382761                      |  punishment inflicted on it.\"  4/14/93\nCambridge, MA 02238                  |   -- Late Turkish President Turgut Ozal \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2191, "properties": {"category": "alt.atheism", "text": "From: \"Robert Knowles\" <p00261@psilink.com>\nSubject: Re: KORESH IS GOD!\nIn-Reply-To: <930416.141520.7h1.rusnews.w165w@mantis.co.uk>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Kupajava, East of Krakatoa\nX-Mailer: PSILink-DOS (3.3)\nLines: 15\n\n>DATE:   Fri, 16 Apr 1993 14:15:20 +0100\n>FROM:   mathew <mathew@mantis.co.uk>\n>\n>The latest news seems to be that Koresh will give himself up once he's\n>finished writing a sequel to the Bible.\n>\n>mathew\n\nWriting the Seven Seals or something along those lines.  He's already\nwritten the first of the Seven which was around 30 pages or so and has\nhanded it over to an assistant for PROOFREADING!.  I would expect any\ndecent messiah to have a built-in spellchecker.  Maybe Koresh 2.0 will\ncome with one.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2192, "properties": {"category": "soc.religion.christian", "text": "From: jcj@tellabs.com (jcj)\nSubject: Re: proof of resurection\nOrganization: Huh?  Whuzzat?\nLines: 22\n\nIn article <Apr.21.03.26.18.1993.1352@geneva.rutgers.edu> reedr@cgsvax.claremont.edu writes:\n\n>We also cannot fail to note the intense suffering a devastation which has been\n>wrecked on our world because of Christians -- who were certain they were\n>following Christ.  From Captialist ... in strict obedience to the Gensis \n>innocent women who were burned alive in accordance with \"you shall not allow a\n>witch to live\", the Moslems who were killed in the Crusades, the god-fearing\n>men destroyed by the inquistion.  The religious wars in Spain, France, England,\n>etc.  Christianity has undoubtedly caused the most suffering and needless loss\n>of life by individuals whose certainity that they were following the\n>instructions therein, was unquestionable.  There is much to grieve.\n\nI agree.  Where in the Gospels does Jesus advocate any of the actions\nyou mention?  \n\nI couldn't find \"witch\" or \"sorceress\" in my concordance.  Is there\nsomething in the Epistles about witches?  (I'm still working my way\nthrough the Gospels.)\n\nJJ\n\n[The reference is Ex 22:18.  It's witch in KJ, sorceress in RSV.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2193, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Re: Desertification of the Negev\nNf-ID: #R:cdp:1483500361:cdp:1483500365:000:272\nNf-From: cdp.UUCP!cpr    Apr 26 17:41:00 1993\nLines: 10\n\n\nDanhy,\n\nAs you think Bedouin will be surprised by the posted article, I\nwould be happy to have some feedback from Bedouin readers, if you\nwill. I cannot judge the accuracy of the article, but assumes that\nit is no fabrication. Any critical review would be helpful.\n\nElias\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2194, "properties": {"category": "talk.politics.guns", "text": "From: vojak@icebucket.stortek.com (Bill Vojak)\nSubject: Question on Senate Bills\nOriginator: vojak@icebucket.stortek.com\nNntp-Posting-Host: icebucket.stortek.com\nOrganization: Storage Technology Corp.\nDistribution: usa\nLines: 49\n\n I'm writting letters to my Congresscritters and was wondering if\n there is any reason(s) why I should NOT support the following\n Bills, other than the previous comments about S.458.  Just checking\n before I mail the letter to make sure I don't support something\n that I really shouldn't.\n\n -----------------\n I strongly SUPPORT the following laws currently being considered in Congress\n as they would either have a positive effect towards reducing crime, or re-\n enforce our Constitutional right under the 2nd amendment.\n\n * S. 441 (Campbell)\tTo amend title 18, United States Code, to provide a\n\t\t\tmandatory minimum sentence for the unlawful possession\n\t\t\tof a firearm by a convicted felon, a fugitive from\n\t\t\tjustice, a person who is addicted to, or an unlawful\n\t\t\tuser of, a controlled substance, or a transferor or\n\t\t\treceiver of a stolen firearm, to increase the general\n\t\t\tpenalty for violation of Federal firearms laws,\n\t\t\tand to increase the enhanced penalties provided for the \n\t\t\tpossession of a firearm in connection with a crime of \n\t\t\tviolence or drug trafficking crime, and for other\n\t\t\tpurposes.\n\n * S.458  (Smith) \tTo restore the second Amendment Rights of all Americans.\n\n * S.488  (Specter)\tTo provide Federal penalties for drive-by shootings.\n\n * S.504  (Kohl)\tTo amend section 924 of title 18, United States Code to\n\t\t\tmake it a Federal crime to steal a firearm or explosives\n\t\t\tin interstate or foreign commerce.\n\n\n                                Bill Vojak\n                                vojak@icebucket.stortek.com\n\t\t\t\tNRA, ILA,\n                                Colorado Firearms Coalition\n-----------------------------------------------------------------\n Here's a story, bout a man named Brady, who took a .22 bullet\n in his head.  Even though he can act perfectly normal, he\n prefers to pretend he's brain dead.\n\n Here's a story, bout a woman named Brady, who had nothing to\n do but sit around all day.  Then her husband became a media\n martyr, now she wants to take all your guns away.\n\n The Brady Bunch, The Brady Bunch, This is how we got stuck\n with the Brady Bunch. . . . .\n-----------------------------------------------------------------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2195, "properties": {"category": "rec.motorcycles", "text": "From: galway@chtm.eece.unm.edu (Denis McKeon)\nSubject: Re: How to act in front of traffic jerks\nOrganization: Connemara - Computing for People\nLines: 43\nNNTP-Posting-Host: chtm.eece.unm.edu\nX-Mailer: Mail User's Shell (7.0.1 12/13/89)\nTo: \nBcc: nielsmm@imv.aau.dk\nStatus: OR\n\nIn article <nielsmm-150493114522@nanna.imv.aau.dk> nielsmm@imv.aau.dk (Niels Mikkel Michelsen) writes:\n>The other day, it was raining cats and dogs, therefor I was going only to\n>the speed limit, on nothing more, on my bike. This guy in his BMW was\n>driving 1-2 meters behind me for 7-800 meters and at the next red light I\n>calmly put the bike on its leg, walked back to this car, he rolled down the\n>window, and I told him he was a total idiot (and the reason why).\n>\n>Did I do the right thing?\n\nWell, I used to get mad, and either try to communicate my anger to jerks,\nor to, uhm, educate them in how to improve their manners in traffic.\nNow I just try to get them off my tail.\n\nIn heavy traffic I slow down a bit, mostly so I have more buffer zone in\nfront to balance the minimal buffer behind, but I also often find that the \njerk behind will notice traffic moving faster in other lanes, switch\ninto one of them, and pass me - which is fine, because then I can keep a\nbetter eye on the jerk from behind, while looking ahead, rather than\nfrom in front, while splitting my attention between ahead and the mirrors.\n\nIn traffic so heavy that there is no way for the jerk to pass,\nI might pull over, as if to look for a street number or name,\n(still ignoring the jerk) just to get the jerk off my tail.  \n\nIf this all sounds, well, wimpy or un-Denizenly or pessimistic, or perhaps \n(for any psych types) passive-aggressive, consider that I prefer to get\nmy adrenaline jollies from riding, rather than from yelling at jerks.  \n\nA ride can improve my whole day, while yelling at a jerk is likely (for\nme) to ruin my ride or my day with my own anger.  In the worst case,\nyelling at the jerk could ruin my life - since even a tiny jerk in a\ncage behind me is better armed (with the cage) than I am on a bike. \n\nOn the other hand, you might try subtly arranging to be the last\nvehicle to legally cross one or more intersections, leaving the jerk\nwaiting for cross traffic (and thus off your tail), or crossing\nillegally (hopefully in front of the waiting police).\n\nLike almost everything here, your choices and mileage will vary.\n\n--\nDenis McKeon\t\ngalway@chtm.eece.unm.edu\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2196, "properties": {"category": "comp.graphics", "text": "From: ab@nova.cc.purdue.edu (Allen B)\nSubject: Re: Fractals? what good are they?\nOrganization: Purdue University\nLines: 17\n\nIn article <7208@pdxgate.UUCP> idr@rigel.cs.pdx.edu (Ian D Romanick) writes:\n> They talked about another routine that could yield up to 150 to 1\n> compress with no image loss that *I* could notice.  The draw back is that it\n> takes a hell of a long time to compress something.  I'll have to see if I can\n> find the book so that I can give more exact numbers.  TTYL.\n\nThat's a typical claim, though they say they've improved\ncompression speed considerably.  Did you find out anything else\nabout the book?  I'd be interested in looking at it if you could give me\nany pointers.\n\nReportedly, early fractal compression times of 24-100 hours used\nthat marvelous piece of hardware called \"grad students\" to do the\nwork.  Supposedly it's been automated since about 1988, but I'm still\nwaiting to be impressed.\n\nAllen B (Sign me \"Cynical\")\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2197, "properties": {"category": "comp.windows.x", "text": "From: mccoy@gothamcity.jsc.nasa.gov (Daniel McCoy)\nSubject: Re: Title for XTerm\nReply-To: mccoy@gothamcity.jsc.nasa.gov\nOrganization: I-NET Inc.\nLines: 52\n\nIn article 1r3fe2INN10d@fbi-news.Informatik.Uni-Dortmund.DE, markhof@ls12r.informatik.uni-dortmund.de (Ingolf Markhof) writes:\n|>In article <1quh74$r71@irz401.inf.tu-dresden.de>, beck@irzr17.inf.tu-dresden.de (Andre Beck) writes:\n|>|> \n|>|> In article <C5oL74.3B1@aeon.in-berlin.de>, thomas@aeon.in-berlin.de (Thomas Wolfram) writes:\n|>|> |> >Hey guys!\n|>|> |> >I work on many stations and would like this name and current logname\n|>|> |> >to be in a title of Xterm when it's open and a machine name only\n|>|> |> >when it's closed. In other words, I want $HOST and $LOGNAME to appear\n|>|> |> >as a title of opened XTerm and $HOST when XTerm is closed.\n|>|> |> >How can I do it?\n|>|> |> Almost all window managers (twm, mwm, olwm and their derivates) support\n|>|> |> escape sequences for it. For your purpose put following into your\n|>|> |> .login (if you're using csh or tcsh), for sh you have to modify it.\n|>|> |> \n|>|> |> if ( \"$term\" == \"xterm\" ) then\n|>|> |> \techo \"^[]2;${LOGNAME}@${HOST}^G^[]1;${HOST}^G\"\n|>|> |> endif\n|>|> 1) This is NOT a feature of the Window Manager but of xterm.\n|>|> 2) This sequences are NOT ANSI compatible, are they ?\n|>|>    Does anyone know IF there are compatible sequences for this and what they\n|>|>    are ? I would think they are DCS (device control sequence) introduced,\n|>|>    but may be a CSI sequence exists, too ?\n|>|>    This MUST work on a dxterm (VT and ANSI compatible), it may not work\n|>|>    on xterms.\n|>It works on xterms. At least I have no problem with it. - Back to the original\n|>question:\n|>\n|>I usually start new xterms by selecting the proper menu entry in my desktop\n|>menu. Here is a sample command:\n|>\n|>\txterm -sl 999 -n ls12i -title ls12i -e rlogin ls12i &\n|>\n|>The -n and -title options give the text for window and icon. As I use the\n|>tcsh (a wonderful extension of the csh), I can do the following:\n|>\n|>I have an\n|>\n|>\talias precmd echo -n '^[]2\\;${HOST}:$cwd^G'\n|>\n|>in my ~/.tcshrc. This is a special alias for tvtwm. It is executed each time\n|>before printing the prompt. So, I have the current host name and the current\n|>directory path in the title bar of my xterms.\n\nHave you gotten an answer yet?  Using your variables, this is what I would do:\n\txterm -T \"$HOST - $LOGNAME\" -n \"$HOST\"\n\n---\nDaniel J. McCoy           |=> SPACE  <=|                   I-NET, Inc.\nNASA Mail Code PT4        |=> IS     <=|             TEL: 713-483-0950\nNASA/Johnson Space Center |=> OUR    <=|             FAX: 713-244-5698\nHouston, Texas 77058      |=> FUTURE <=| mccoy@gothamcity.jsc.nasa.gov\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2198, "properties": {"category": "rec.motorcycles", "text": "From: CGKarras@world.std.com (Christopher G Karras)\nSubject: Need Maintenance tips\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 29\n\n\nAfter reading the service manual for my bike (Suzuki GS500E--1990) I have\na couple of questions I hope you can answer:\n\nWhen checking the oil level with the dip stick built into the oil fill\ncap, does one check it with the cap screwed in or not?  I am more used to\nthe dip stick for a cage where the stick is extracted fully, wiped clean\nand reinserted fully, then withdrawn and read.  The dip stick on my bike\nis part of the oil filler cap and has about 1/2 inch of threads on it.  Do\nI remove the cap, wipe the stick clean and reinsert it with/without\nscrewing it down before reading?\n\nThe service manual calls for the application of Suzuki Bond No. 1207B on\nthe head cover.  I guess this is some sort of liquid gasket material.  do\nyou know of a generic (cheaper) substitute?\n\nMy headlight is a Halogen 60/55 W bulb.  Is there an easy, brighter\nreplacement bulb available?  Where should I look for one?\n\nAs always, I very much appreciate your help.  The weather in Philadelphia\nhas finally turned WARM.  This weekend I saw lotsa bikes, and the riders\nALL waved.  A nice change of tone from what Philadelphia can be like. . . .\n\nChris\n\n-- \n*******************************************************************\nChristopher G. Karras\nInternet:    CGKarras@world.std.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2199, "properties": {"category": "rec.sport.hockey", "text": "From: loh@fraser.sfu.ca (Keith Meng-Wei Loh)\nSubject: Re: Hockey and the Hispanic community\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 27\n\nrickc@wrigley.corp.sgi.com (Richard Casares) writes:\n\n>In article <115331@bu.edu>, icop@csa.bu.edu (Antonio Pera) writes:\n>|> \n>|> \tThe presence of the new team in Miami(I can't say South Florida;\n>|> it's too long) makes me think of an interesting question. Can you sell\n>|> the Hispanic community on Hockey? Miami is 60-70% Hispanic. This\n>|> community\n>|> has no experience and no previous exposure to Hockey that I know of.\n>|> The\n>|> teams in NY and LA which also have big Hispanic groups do not seem to\n>|> try\n>|> to woo this group. What will Miami do? Could they get Spanish-language\n>|> tv and radio coverage?\n>|> \n\n>You'll have a hard time selling any sport to a community that\n>can't play it on account of availability or financial reasons.\n>Hockey is pretty much a sport for the white and well off.\n\nWell, suffice to say that it is a sport for those able to make the\nsubstantial investment in equipment, etc. But here's something, do \nyou think that the availability of in-line skates and road hockey\ncould contribute to a rise in awareness of ice hockey? I would\nargue this is having an effect here. Kids play ice hockey in the\nwinter and road hockey in the summer with in-line skates. \n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2200, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 20\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>Perhaps the chimps that failed to evolve cooperative behaviour\n>died out, and we are left with the ones that did evolve such\n>behaviour, entirely by chance.\n\nThat's the entire point!\n\n>Are you going to proclaim a natural morality every time an\n>organism evolves cooperative behaviour?\n\nYes!\n\nNatural morality is a morality that developed naturally.\n\n>What about the natural morality of bee dance?\n\nHuh?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2201, "properties": {"category": "rec.motorcycles", "text": "From: ramage@ece.scarolina.edu (Dan Ramage)\nSubject: Re: Help with backpack\nKeywords: backpack, rucksack, knee protection\nArticle-I.D.: weber.ramage.734101015\nOrganization: USC  Department of Computer Science\nLines: 33\n\nsanjay@kin.lap.upenn.edu (Sanjay Sinha) writes:\n\n\n\n>As summer approaches, the usual preparations are being made...\n\n>Me was thinking of going for some overnite camping trips in the local\n>state forests. For that I was planning to get a backpack/rucksack. \n>The next question is how shall I carry the thing on the bike, given\n>the metal frame and all. I have a big backrest (approx 12\" high) and\n>was hoping that I would be able to bungee cord the backpack to the backrest.\n\n>Any one have any experiences on such experimentation?\n\n>Taking the idea further, what would happen if the backpack was fully\n>loaded with a full load (40lbs). Is the load distribution going to \n>be very severly affected? How will the bike perform with such a load \n>clinging to the back rest. If I really secure it, with no shifting, \n>do I still increase my chances of surfing?\n\nI ride my bike regularly to classes with my book bag.  I take\nthe shoulder straps on the bag, and hook them around the rear turn\nsignals.  I works fine.  You probably will want to attach it with\na bungee cord to keep it from shifting to one side or another.\n\n\n|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\n| Dan Ramage\t\t\t|ramage@charlie.ece.scarolina.edu     |\n|'86 Vulcan 750\t\t\t|DoD#0798\t\t\t      |\n|\"I wanted a Harley, but I haven't won the lottery yet.\"\t      |\n|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\n|\"Them bats is smart, they use radar.\" -D. Letterman\t\t      |\n|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2202, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Re: Life on Mars???\nOrganization: Jet Propulsion Laboratory\nLines: 24\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <C5uB2s.FD@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes...\n>In article <1993Apr20.120311.1@pa881a.inland.com> schiewer@pa881a.inland.com (Don Schiewer) writes:\n>There are currently no particular plans to do any further searches for life.\n\nNot quite true.  One of the instruments on Mars Observer will be searching\nfor potential fossil sites.   \n\n>>Are we going back to Mars to look at this face agian?\n> \n>Mars Observer, currently approaching Mars, will probably try to get a better\n>image or two of the \"face\" at some point.  It's not high priority; nobody\n>takes it very seriously.  The shadowed half of the face does not look very\n>face-like, so all it will take is one shot at a different sun angle to ruin\n>the illusion.\n\nThe face and the Viking landing sites will be targeted by the high-resolution\ncamera on Mars Observer.\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2203, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Do we need the clipper for cheap security?\nLines: 24\n\n\tgtoal@gtoal.com (Graham Toal) writes:\n\t>\n\t>In the UK, it's impossible to get approval to attach any crypto device\n\t>to the phone network.  (Anything that plugs in to our BT phone sockets\n\t>must be approved - for some reason crypto devices just never are...)\n\t>\n\n\tWhats the difference between a V.32bis modem and a V.32bis modem?\n\n\tI'm not being entirely silly here: what I'm pointing out is that the\n\tmodems that they have already approved for data transmission will work\n\tjust fine to transmit scrambled vocoded voice.\n\nAbsolutely.  I just meant that no secure *dedicated* crypto device has\never been given approval.  Guerrilla underground devices should be well\npossible with today's high-speed modems (not that I can think of many v32bis\nmodems that are approved either mind you - just the overpriced Couriers)\n\nCan someone tell me if hardware compression is or is not needed to run\ndigital speech down 14.4K?  I think it is; I've heard it's not.  Lets\nsay 8 bit samples.  Would *raw* data at the corresponding sampling rate\nbe usable?  If not, how fancy does the compression need to be?\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2204, "properties": {"category": "sci.space", "text": "From: MUNIZB%RWTMS2.decnet@rockwell.com (\"RWTMS2::MUNIZB\")\nSubject: Space Event in Los Angeles, CA\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 52\n\n   FOR IMMEDIATE RELEASE           Contact:  OASIS (310) 364-2290\n\n   15 April 1993                                Los Angeles, CA\n\n     LOCAL NATIONAL SPACE SOCIETY CHAPTERS SPONSOR TALK BY L.A.\n  ADVOCATE OF LUNAR POWER SYSTEM AS ENERGY SOURCE FOR THE WORLD\n\n   On April 21, the OASIS and Ventura County chapters of the National \nSpace Society will sponsor a talk by Lunar Power System (LPS) co-\ninventor and vice-president of the LPS Coalition, Dr. Robert D.\nWaldron.  It will be held at 7:30 p.m. at the Rockwell Science\nCenter in Thousand Oaks, CA.\n\n   Dr. Waldron is currently a Technical Specialist in Space\nMaterials Processing with the Space Systems Division of Rockwell\nInternational in Downey, California.  He is a recognized world\nauthority on lunar materials refinement.  He has written or\ncoauthored more than 15 articles or reports on nonterrestrial\nmaterials processing or utilization.  Along with Dr. David\nCriswell, Waldron invented the lunar/solar power system concept.\n\n   Momentum is building for a coalition of entrepreneurs, legal\nexperts, and Soviet and U.S. scientists and engineers to build\nthe Lunar Power System, a pollution-free, energy source with a\npotential to power the globe.\n\n   For the past three years members of the coalition, nearly half\nfrom California, have rejuvenated the commercial and scientific\nconcept of a solar power system based on the Moon.\n\n   The LPS concept entails collecting solar energy on the lunar\nsurface and beaming the power to Earth as microwaves transmitted\nthrough orbiting antennae.  A mature LPS offers an enormous\nsource of clean, sustainable power to meet the Earth's ever\nincreasing demand using proven, basic technology.\n\n   OASIS (Organization for the Advancement of Space\nIndustrialization) is the Greater Los Angeles chapter of the\nNational Space Society, which is an international non-profit\norganization that promotes development of the space frontier.\nThe Ventura County chapter is based in Oxnard, CA.\n\n       WHERE:  Rockwell Science Center Auditorium, 1049 Camino\n               Dos Rios, Thousand Oaks, CA.\n\n   DIRECTIONS: Ventura Freeway 101 to Thousand Oaks, exit onto\n               Lynn Road heading North (right turn from 101\n               North, Left turn from 101 South), after about 1/2\n               mile turn Left on Camino Dos Rios, after about 1/2\n               mile make First Right into Rockwell after Camino\n               Colindo, Parking at Top of Hill to the Left\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2205, "properties": {"category": "sci.med", "text": "From: tas@pegasus.com (Len Howard)\nSubject: Re: Foreskin Troubles\nSummary: Dorsal slit operation\nArticle-I.D.: pegasus.1993Apr22.221111.9678\nOrganization: Pegasus,  Honolulu\nLines: 11\n\nIn article <1993Apr18.042100.2720@radford.vak12ed.edu> mmatusev@radford.vak12ed.edu (Melissa N. Matusevich) writes:\n>What can be done, short of circumcision, for an adult male\n>whose foreskin will not retract?\n>\nMelissa, there is a simpler procedure called a \"Dorsal slit\" that is\nreally the first step of the usual circumcision.  It is simpler and\nquicker, but the pain is about the same as circumcision after the\nanesthetic wears off and the aesthetic result post healing is not as\ngood.  See your friendly urologist for more details.\n                                                Len Howard\n.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2206, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: BMW Nostalgia Question from a Neophyte\nFrom: vech@Ra.MsState.Edu (Craig A. Vechorik)\nOrganization: Mississippi State University\nNntp-Posting-Host: ra.msstate.edu\nLines: 17\n\nTo go one step further, you could write Roland Slabon, Pres. of the\nVintage BMW Motorcycle Owners Ltd at P.O. box 67, Exeter, New Hampshire \n03833 and he'll send you copy of the bimonthly rag with info as to where\nto send your $12 bucks if ya want to join. As far as the price of '60's\nBeemers, it varies wildly, from a low of around $1000 for an unrestored\nbike that still runs (like an R50 or R60) to $4500 or so for a restored\nR69S.  Don't listen to that bull about the old bmw's not being \"good \nenough\" to ride in todays world.. Hell, I'm riding my 1956 R26 Single\nfrom Mississippi to the BMW MOA national rally in Oshkosh, Wisconsin\non the 22nd of July this year.\nSincerely,\nCraig Vechorik\nBMW MOA Ambassador #9462\nBMW Vintage \nBulletin tech editor #1373\nDOD #843\n\"REAL BMW's have ROUND tail lights and ROLLER cranks\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2207, "properties": {"category": "talk.religion.misc", "text": "From: uphrrmk@gemini.oscs.montana.edu (Jack Coyote)\nSubject: Re: RFD: misc.taoism\nReply-To: uphrrmk@gemini.oscs.montana.edu (Jack Coyote)\nOrganization: Never Had It, Never Will\nLines: 8\n\nSunlight shining off of the ocean.\n\n\n-- \nAleph null bottles of beer on the wall, Aleph null bottles of beer!\nTake one down, pass it around  ...  Aleph null bottles of beer on the wall!\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2208, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: simon@moscow.uidaho.edu (Mike Simon)\nSubject: Re: Please help identify this old 3Com Ethernet card\nArticle-I.D.: moscow.C5L5C5.GtM\nOrganization: University of Idaho CS Dept.\nLines: 21\nNntp-Posting-Host: leopard.cs.uidaho.edu\n\nIn article <1qhvunINNhau@emory.mathcs.emory.edu>, splee@pd.org (Seng-Poh Lee, Speedy) writes:\n|> I have an old 3Com ethernet card (PC AT Bus) that came out of a Apollo\n|> workstation. I'm trying to identify it in order to use it on a PC.\n|> \n|> The Assembly number is 4008-00 REV 2 and it is a 16 bit card, circa\n|> 1985.  It has an AUI port as well as a BNC coax connection.  It has\n|> selectable address for the BIOS, IO, DMA, and IRQ locations via berg\n|> jumpers.  It also appears to have a Intel 80186 processor on board,\n|> presumably for buffering. \n|> \n|> The ethernet chip appears to be an Intel 82586, a 48 pin DIP package. Is\n|> this chip an equivalent to the 8390 used in some cards? There is also\n|> a 68 pin PLCC chip, called a LINK+\n|> \n|> Please  e-mail as I don't think this is of general interest.\n\nMy least favorite last line of a post.  Um, it is of general interest.\nAs I prepare to retire 22 Apollos myself, I'm looking for ways to \nrecycle the useful parts.\n\nMike Simon  simon@moscow.uidaho.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2209, "properties": {"category": "sci.med", "text": "From: paj@uk.co.gec-mrc (Paul Johnson)\nSubject: Re: sore throat\nReply-To: paj@uk.co.gec-mrc (Paul Johnson)\nOrganization: GEC-Marconi Research Centre, Great Baddow, UK\nLines: 29\n\nIn article <47835@sdcc12.ucsd.edu> wsun@jeeves.ucsd.edu (Fiberman) writes:\n>I have had a sore throat for almost a week.  When I look into\n>the mirror with the aid of a flash light, I see white plaques in\n>the very back of my throat (on the sides).  I went to a health\n>center to have a throat culture taken.  They said that I do not\n>have strep throat.  Could a viral infection cause white plaques\n>on the sides of my throat?\n\nFirst, I am not a doctor.  I know about this because I have been\nthrough it.\n\nIt sounds like tonsilitis (lit. swollen tonsils).  Feel under your jaw\nhinge for a swelling on each side.  If you find them, its tonsilitis.\nI've had this a couple of times in the past.  The doctor prescribed a\nweeks course of penicillin and that cleared it up.\n\nIn my case it was associated with glandular fever, which is a viral\ninfection which (from my point of view) resembled flu and tonsilitis\nthat kept coming back for a year or so.  There is a blood test for\nthis.\n\nIn conclusion, see a doctor (if you have not done so already).\n\nPaul.\n-- \nPaul Johnson (paj@gec-mrc.co.uk).\t    | Tel: +44 245 73331 ext 3245\n--------------------------------------------+----------------------------------\nThese ideas and others like them can be had | GEC-Marconi Research is not\nfor $0.02 each from any reputable idealist. | responsible for my opinions\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2210, "properties": {"category": "comp.windows.x", "text": "From: jhcox@kodak.com (James Cox)\nSubject: Xterm Problem With Input Focus / \"Shuffle Up\"\nKeywords: Xterm, Tektronics, Input Focus, Shuffle up\nOrganization: Eastman Kodak Company, Rochester NY\nLines: 41\nNntp-Posting-Host: b56vxg\nNews-Software: VAX/VMS VNEWS 1.41\n\n\nThe situation: running a Fortran executable that creats an Xterm.  An option\nin the menu contained in the Xterm runs a Fortran subroutine that creats\na Tektronics-mode Xterm for displaying some graphics.  Typing a <RET> while\nthe Tektronics-mode Xterm (future reference to this will be \"Tek-term\") is\nactive makes the Xterm read future keystrokes but does not shift input focus\nto the Xterm (I'm basing that statement on the fact that the border of the \nTek-term stays the highlighted color and that the Tek-term stays on top of\nXterm.  If what I'm describing isn't input focus, let me know.)  \n\nThe xterm can be brought to the top by clicking the mouse button on it.\n\nSubsequent selections from the Xterm of the menu item that displays graphics \nhighlihts the border and displays the updated graphics, but does not move \nthe Tek-term to the top.  If the Tek-term has been iconized to conserve \nscreen space, it stays an icon.\n\n\nThe desired behavior: one of two options - \n\n    1. Whichever of the windows that is active is always on top of the \n       inactive one.\n\n    2. Whenever the Tek-term is inactivated, it should revert to a icon\n       but when it is activated it should become a window on a higher \n       level than the Xterm.\n\nWhat I think I need: a means of specifying that a Xterm or Tek-term will\nbe at the highest level and a way to iconify/expand a Xterm and Tek-term.\nThese commands, would, I'd guess, need to be in the Fortran or in the \ncommand that starts up the Xterm and Tek-term.\n\nOther information: All this is taking place on a VT-1300 (a DEC dumb \nX-windows terminal) connected to a VAX running VMS and Motif.\n\nThanks for your time.  If you've got any words of wisdom (other than \n\"give up\" ;-), please send email to \n\njhcox@Kodak.com\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2211, "properties": {"category": "sci.med", "text": "From: spp@zabriskie.berkeley.edu (Steve Pope)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: U.C. Berkeley -- ERL\nLines: 13\nDistribution: world\nNNTP-Posting-Host: zion.berkeley.edu\n\nCarl Lydick:\n\n> And you're condemning one particular ingredient without any \n> evidence that that's the ingredient to which you reacted.\n\nBelieve what you will.\n\nThe mass of anectdotal evidence, combined with the lack of\na properly constructed scientific experiment disproving\nthe hypothesis, makes the MSG reaction hypothesis the\nmost likely explanation for events.\n\nSteve\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2212, "properties": {"category": "rec.autos", "text": "From: mchaffee@dcl-nxt07 (Michael T Chaffee)\nSubject: Re: VIPER\nOrganization: University of Illinois at Urbana\nLines: 14\n\nrmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen) writes:\n\n\n>Last night I had a dream that my dad bought a Viper.\n>I took it out for a test drive, without his knowledge,\n>and had to push it all the way home just to avoid a ticket.\n>Wierd dream, I wonder what it means....\n\nVell...Let's see...vas you muzzah in der passenger seat?  Or vas you muzzah in\nder leefing room, vit you fazah?\n\nM.\n(Feeling a tad bit Freudian, doubtless inspired by the magnificent phallic-ness\n(some word) of the Viper)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.102+0000", "event": "documents", "entityId": 2213, "properties": {"category": "misc.forsale", "text": "From: bartmich@cwis.isu.edu (BARTA_MICHAEL_D.)\nSubject: 1989 Honda Accord LX\nOrganization: Idaho State University, Pocatello\nLines: 16\nDistribution: usa\nNNTP-Posting-Host: cwis.isu.edu\n\n************* 1989 HONDA ACCORD LX ***************\n\nLight Brown, Four Door Power Windows, Power Brakes\nPower Locks, Power Steering, Power Antenna\nAM/FM Cassette, Totally Cloth Interior. VERY NICE!\n70,000 miles but excellent condition!!!!!!!!!!!!!!\nMust Sell, quit my job to go back to school.\nBlue book $9,200 in IDAHO\nAsking only $8,000 OBO\nemail bartmich@cwis.isu.edu Phone 208-233-8039\nPocatello, Idaho\n\n-- \n :-> From Michael Barta's AMIGA2000 <-:       send email to\n :->  I.S.U.   Electronics Student  <-:       bartmich@cwis.isu.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2214, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: Bosox win again! (the team record is 9-3)\n <1993Apr18.233404.16702@ncar.ucar.edu>\nLines: 12\n\nIn article <1993Apr18.233404.16702@ncar.ucar.edu>, amj@rsf.atd.ucar.edu (Anthony\nMichael Jivoin) says:\n>\n>With the \"HAWK\", the Red Sox definitely have a chance for the\n>east this year. He brings class, work ethic and leadership to\n>the park each day.\n>\n\ntoo bad he doesn't bring the ability to hit, pitch, field or run.\n\nbob vesterman.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2215, "properties": {"category": "comp.graphics", "text": "From: egerter@gaul.csd.uwo.ca (Barry Egerter)\nSubject: Where's DMORF?\nOrganization: Computer Science Dept., Univ. of Western Ontario, London, Canada\nDistribution: usa\nKeywords: DMORF\nNntp-Posting-Host: obelix.gaul.csd.uwo.ca\nLines: 26\n\n\tCould anyone direct me to the FTP site where I can find the DOS-based\nmorphing package called DMORF12.ZIP?  I had downloaded this file last week,\nbut the new DOS 6 crashed my hard drive and I lost it. Now I can't find the\nsite where I got it from.......\n\nAlso, are there any other morphing packages out for DOS (freeware or shareware)\n\n\nThanks in advance,\nBarry\n\n/---------------------------------------------------------------------------\\\n|       \\\\          //  _______   _______    egerter@obelix.gaul.csd.uwo.ca |\n|        \\\\        //  //            |                                      |\n|         \\\\  /\\  //  ||   ___       |       Author of WGT graphics         |\n|          \\\\//\\\\//   ||     \\\\      |       toolkit for 320*200*256 VGA    |\n|           \\/  \\/ .   \\\\____// .    |  .    Version 3.5 Now Available      |\n|                                          (Turbo/Borland C++ 1.0 or better)|\n|JOYSTICK  MOUSE  GRAPHICS PRIMITIVES  NON-BGI POWER  GIF/PCX  DATA STORAGE |\n|SPRITES  MULTIWAY SCROLLING GAMES  BITMAP WARPING/RESIZING  SB SUPPORT  FLI|\n\\___________________________________________________________________________/\n-- \n\n/---------------------------------------------------------------------------\\\n|       \\\\          //  _______   _______    egerter@obelix.gaul.csd.uwo.ca |\n|        \\\\        //  //            |                                      |\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2216, "properties": {"category": "rec.autos", "text": "From: kak@hico2.westmark.com (Kris A. Kugel)\nSubject: Storing a car long term\nKeywords: tires cars storage\nArticle-I.D.: hico2.C50Myy.4Ew\nReply-To: kak@hico2.westmark.com\nOrganization: High Country Software\nLines: 16\n\nI bought a car with a defunct engine, to use for parts\nfor my old but still running version of the same car.\n\nThe car I bought has good tires.\n\nIs there anything in particular that I should do to\nstore the defunct car long-term?  I'd hate to have\nparts of it go bad.  Someone has told me it's bad\nfor the tires to not move the car once-in-a-while.\nIs this true?   Do I need some props to take the\nweight of the tires?\n\nBest to reply by mail, I am getting spotty news delivery.\n\nKris A. Kugel\t908-842-2707\nhico2!kak\tkak@hico2.westmark.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2217, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Moraltiy? (was Re: <Political Atheists?)\nOrganization: sgi\nLines: 63\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1ql8ekINN635@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >>>>What if I act morally for no particular reason?  Then am I moral?  What\n|> >>>>if morality is instinctive, as in most animals?\n|> >>>\n|> >>>Saying that morality is instinctive in animals is an attempt to \n|> >>>assume your conclusion.\n|> >>\n|> >>Which conclusion?\n|> >\n|> >You conclusion - correct me if I err - that the behaviour which is\n|> >instinctive in animals is a \"natural\" moral system.\n|> \n|> See, we are disagreeing on the definition of moral here.  Earlier, you said\n|> that it must be a conscious act.  By your definition, no instinctive\n|> behavior pattern could be an act of morality.  You are trying to apply\n|> human terms to non-humans.\n\nPardon me?   *I* am trying to apply human terms to non-humans?\n\nI think there must be some confusion here.   I'm the guy who is\nsaying that if animal behaviour is instinctive then it does *not*\nhave any moral sugnificance.   How does refusing to apply human\nterms to animals get turned into applying human terms?\n\n|> I think that even if someone is not conscious of an alternative, \n|> this does not prevent his behavior from being moral.\n\nI'm sure you do think this, if you say so.   How about trying to\nconvince me?\n\n|> \n|> >>You don't think that morality is a behavior pattern?  What is human\n|> >>morality?  A moral action is one that is consistent with a given\n|> >>pattern.  That is, we enforce a certain behavior as moral.\n|> >\n|> >You keep getting this backwards.  *You* are trying to show that\n|> >the behaviour pattern is a morality.  Whether morality is a behavior \n|> >pattern is irrelevant, since there can be behavior pattern, for\n|> >example the motions of the planets, that most (all?) people would\n|> >not call a morality.\n|> \n|> I try to show it, but by your definition, it can't be shown.\n\nI've offered, four times, I think, to accept your definition if\nyou allow me to ascribe moral significence to the orbital motion\nof the planets.\n\n|> \n|> And, morality can be thought of a large class of princples.  It could be\n|> defined in terms of many things--the laws of physics if you wish.  However,\n|> it seems silly to talk of a \"moral\" planet because it obeys the laws of\n|> phyics.  It is less silly to talk about animals, as they have at least\n|> some free will.\n\nAh, the law of \"silly\" and \"less silly\".   what Mr Livesey finds \nintuitive is \"silly\" but what Mr Schneider finds intuitive is \"less \nsilly\".\n\nNow that's a devastating argument, isn't it.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2218, "properties": {"category": "rec.autos", "text": "From: hhtra@usho0b.hou281.chevron.com (T.M.Haddock)\nSubject: Re: I'm getting a car, I need opinions.\nOrganization: Chevron\nLines: 19\n\nIn article <1993Apr17.175451.30896@ns1.cc.lehigh.edu>, ip02@ns1.cc.lehigh.edu (Danny Phornprapha) writes:\n|>\n|> I have $30,000 as my budget.  I'm looking for a sports or GT car. \n|> What do you think would be the best buy? \n\n Well, for a bit more you could get an Mazda RX-7, definitely a BEST.\n\n For under $30k you're stuck with (in no particular order):\n\n      Chevy Camaro Z28 LT1-1\n      Ponitac Firebird Firehawk\n      Ford Mustang Cobra\n      Toyota MR2 Turbo\n      GMC Typhoon  ;)\n\n\n\n TRAVIS\n  \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2219, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: qq43@liverpool.ac.uk (Chris Wooff)\nSubject: Tidying up after removing an OLE server\nKeywords: OLE, SPSS\nNntp-Posting-Host: chad3-22.liv.ac.uk\nOrganization: The University of Liverpool\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 16\n\nA while ago I installed SPSS for Windows as part of an evaluation. Once\nthe evaluation was complete I duly deleted the software from my PC.\n\nUnfortunately there is still a \"ghost\" of SPSS left: when I run\nsomething like \"Write\" and go to embed an object then \"SPSS Chart\"\nappears on the list of objects I'm offered. I looked around all\nthe obvious \"INI\" files without success. The next thing I tried\nwas looking for the string \"SPSS Chart\" in every file in the \nWindows directory. It turned up in a file called REQ.DAT (or\nREG.DAT). Unfortunately the file was binary and so I didn't feel\ninclined to edit it.\n\nI'd welcome a solution for removing SPSS from the list of OLE servers.\n\nChris Wooff\n(C.Wooff@liverpool.ac.uk)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2220, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: herrod@Xenon.Stanford.EDU (Stephen Herrod)\nSubject: MEWIN Latex Help\nOrganization: Computer Science Department, Stanford University.\nLines: 9\n\nI posted this to the apps group and didn't get any response, so\nI'll try here. I am trying to use the latex help feature\navailable in emacs for windows and read that you need a separate\nlatexhlp.zip file along with a vms2hlp.zip file to convert this\nto windows help. Has anyone found these files or gotten this\ncommand help to work?\n\nThanks, Steve Herrod\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2221, "properties": {"category": "comp.graphics", "text": "Subject: Re: Video in/out\nFrom: djlewis@ualr.edu\nOrganization: University of Arkansas at Little Rock\nNntp-Posting-Host: athena.ualr.edu\nLines: 40\n\nIn article <1993Apr18.080719.4773@nwnexus.WA.COM>, mscrap@halcyon.com (Marta Lyall) writes:\n> Organization: \"A World of Information at your Fingertips\"\n> Keywords: \n> \n> In article <628@toontown.columbiasc.ncr.com> craig@toontown.ColumbiaSC.NCR.COM (Craig S. Williamson) writes:\n>>\n>>I'm getting ready to buy a multimedia workstation and would like a little\n>>advice.  I need a graphics card that will do video in and out under windows.\n>>I was originally thinking of a Targa+ but that doesn't work under Windows.\n>>What cards should I be looking into?\n>>\n>>Thanks,\n>>Craig\n>>\n>>-- \n>>                                             \"To forgive is divine, to be\n>>-Craig Williamson                              an airhead is human.\"\n>> Craig.Williamson@ColumbiaSC.NCR.COM                -Balki Bartokomas\n>> craig@toontown.ColumbiaSC.NCR.COM (home)                  Perfect Strangers\n> \n> \n> Craig,\n> \n> You should still consider the Targa+. I run windows 3.1 on it all the\n> time at work and it works fine. I think all you need is the right\n> driver. \n> \n> Josh West  \n> email: mscrap@halcyon.com\n> \nAT&T also puts out two new products for windows, Model numbers elude me now,\na 15 bit video board with framegrabber and a 16bit with same. Yesterday I\nwas looking at a product at a local Software ETC store. Media Vision makes\na 15bit (32,768 color) frame capture board that is stand alone and doesnot\nuse the feature connector on your existing video card. It claims upto 30 fps\nlive capture as well as single frame from either composite NTSC or s-video\nin and out.\n\nDon Lewis\n<djlewis@ualr.edu>\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2222, "properties": {"category": "rec.autos", "text": "From: tedebear@leland.Stanford.EDU (Theodore Chen)\nSubject: Re: Open letter to NISSAN (Really Station Wagon)\nOrganization: DSG, Stanford University, CA 94305, USA\nDistribution: na\nLines: 10\n\nIn article <Apr16.000710.27408@engr.washington.edu> eliot@stalfos.engr.washington.edu (eliot) writes:\n>\n>this week's autoweek talks about how wagons are getting back in vogue.\n>i wouldn't mind an audi s4 wagon (great stealth value) but you'll\n>never catch me dead in a minivan!\n\neven a minivan based on viper running gear?\n\n-teddy\np.s. i think the audi S4 gets a 4.2 liter V-8 next year.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2223, "properties": {"category": "sci.space", "text": "From: nicho@vnet.IBM.COM (Greg Stewart-Nicholls)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nReply-To: nicho@vnet.ibm.com\nDisclaimer: This posting represents the poster's views, not those of IBM\nNews-Software: UReply 3.1\nX-X-From: nicho@vnet.ibm.com\n            <C5w5zJ.HHq@murdoch.acc.Virginia.EDU>\nLines: 15\n\nIn <C5w5zJ.HHq@murdoch.acc.Virginia.EDU> Greg Hennessy writes:\n>In article <1r6aqr$dnv@access.digex.net> prb@access.digex.com (Pat) writes:\n>#The better question  should be.\n>#Why not transfer  O&M of all birds to a separate agency with continous funding\n>#to support these kind of ongoing science missions.\n>\n>Since we don't have the money to keep them going now, how will\n>changing them to a seperate agency help anything?\n>\nHow about transferring control to a non-profit organisation that is\nable to accept donations to keep craft operational.\n -----------------------------------------------------------------\nGreg Nicholls ...         : Vidi\nnicho@vnet.ibm.com or     : Vici\nnicho@olympus.demon.co.uk : Veni\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2224, "properties": {"category": "talk.religion.misc", "text": "From: clavazzi@nyx.cs.du.edu (The_Doge)\nSubject: Re: Davidians and compassion\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 24\n\nIn article <C5sLAs.B68@blaze.cs.jhu.edu> arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n>In article <sandvik-190493200420@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n>>So we have this highly Christian religious order that put fire\n>>on their house, killing most of the people inside.\n>\n>We have no way to know that the cultists burned the house; it could have been\n>the BATF and FBI.  We only have the government's word for it, after all, and\n>people who started it by a no-knock search with concussion grenades are hardly\n>disinterested observers.\n>--\n\tNor, to point out the obvious, are the deluded, siege-mentality\nfollowers of a religious nut-case who thought he was Jesus Christ or possibly\nThe Big Guy.\n\tPersonally, much as I regard the BATF and FBI as ConDupes, I'll take\ntheir word over a bunch of silly pinks who were stoopid enough to lock\nthemselves up with a goofball like \"David Koresh\" in a makeshift arsenal.\n\t************************************************************\n\t*  \tThe_Doge of South St. Louis\t\t\t   *\n\t*\t\tDobbs-Approved Media Conspirator(tm)\t   *\n\t*\t\"One Step Beyond\"  -- Sundays, 3 to 5 pm\t   *\n\t*\t\t88.1 FM\t\tSt. Louis Community Radio  *\n\t*  \"You'll pay to know what you *really* think!\"           *\n\t*\t\t\t-- J.R. \"Bob\" Dobbs\"\t\t   *\n\t************************************************************\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2225, "properties": {"category": "sci.space", "text": "From: steinly@topaz.ucsc.edu (Steinn Sigurdsson)\nSubject: Re: Commercial mining activities on the moon\nOrganization: Lick Observatory/UCO\nLines: 26\n\t<1993Apr20.204838.13217@cs.rochester.edu>\t<STEINLY.93Apr20145301@topaz.ucsc.edu>\t<1993Apr20.223807.16712@cs.rochester.edu>,<STEINLY.93Apr20160116@topaz.ucsc.edu>\n\t<1r46j3INN14j@mojo.eng.umd.edu>\nNNTP-Posting-Host: topaz.ucsc.edu\nIn-reply-to: sysmgr@king.eng.umd.edu's message of 21 Apr 1993 19:16:51 GMT\n\nIn article <1r46j3INN14j@mojo.eng.umd.edu> sysmgr@king.eng.umd.edu (Doug Mohney) writes:\n\n   In article <STEINLY.93Apr20160116@topaz.ucsc.edu>, steinly@topaz.ucsc.edu (Steinn Sigurdsson) writes:\n\n   >Very cost effective if you use the right accounting method :-)\n\n   Sherzer Methodology!!!!!!\n\nHell, yes. I'm not going to let a bunch of seven suits tell\nme what the right way to estimate cost effectiveness is, at\nleast not until they can make their mind up long enough\nto leave their scheme stable for a fiscal year or two.\n\n\nSeriously though. If you were to ask the British government\nwhether their colonisation efforts in the Americas were cost\neffective, what answer do you think you'd get? What if you asked\nin 1765, 1815, 1865, 1915 and 1945 respectively? ;-)\n\n*  Steinn Sigurdsson   \t\t\tLick Observatory      \t*\n*  steinly@lick.ucsc.edu\t\t\"standard disclaimer\"  \t*\n*  If you ever have to go to Shoeburyness\t\t\t*\n*  Take the A-road, the ok road, that's the best!\t\t*\n*  Go motoring on The A13!\t- BB 1983\t\t\t*\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2226, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: klonopin and pregnancy\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 17\n\nA(> From: adwright@iastate.edu ()\nA(> A woman I know is tapering off klonopin. I believe that is one of the\nA(> benzodiazopines. She is taking a very minimal dose right now, half a tablet\nA(> a day. She is also pregnant. My question is Are there any known cases where\nA(> klonopin or similar drug has caused harmful effects to the fetus?\nA(>  How about cases where the mother took klonopin or similar substance and had\nA(> normal baby. Any information is appreciated. She wants to get a feel for\nA(> what sort of risk she is taking. She is in her first month of pregnancy.\n\nKlonopin, according to the PDR (Physician's Desk Reference), is not a\nproven teratogen.  There are isolated case reports of malformations,\nbut it is impossible to establish cause-effect relationships.  The\noverwhelming majority of women that take Klonopin while pregnant have\nnormal babies.\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n                                                               \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2227, "properties": {"category": "talk.politics.misc", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Z Magazine: Health Care Reform (March 93)\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 95\n\n{Sorry, Harel et al, but our doctors and most hospitals are still\nprivate in Canada as well as in much of Western Europe.}\n\nharelb@math.cornell.edu (Harel Barzilai - Grad - Brown) writes:\n>\t\t =================================== \n>\t\t H e a l t h   C a r e   R e f o r m \n>\t\t\t By Camille Colatosti \n>\t\t Z magazine (see bottom), March 1993 \n>\t\t =================================== \n>...\n>The single-payer model, sometimes called national health insurance, \n>eliminates private insurance companies and removes health care from \n>employment. The government provides free health care to all U.S. \n>residents. And there are no out-of-pocket costs. \n\nWrong.  In better EC countries that use pure (but public) health\ninsurance (like we use in Canada) rather than self-enclosed HMO-like\nsocialized medicine, 30% of our costs comes from private supplementary\ninsurance and/or copayments.  France Magazine's Summer 1992 edition\nhas a fantastic presentation of their basic insurance coverage,\nincluding a sample chart of copayment percentages.  For 1-30 days,\nyou're covered for 80% of the public hospital rate, 100% afterward.\nWith extra private insurance, you can get into a private hospital and\nbe covered for any differences beyond the public hospital rate.  The\npublic insurance covers 100% beyond 30 days, or the same cash amount\nfor a private hospital and the difference is paid out-of-pocket or\naccording to your supplementary private insurance.  Over 2/3rds of\nFrench have some form of extra private insurance.  So, 30% of health\ncosts in Europe are out of private funds and not gleaned from other\ntaxes.  The GDP figures are combined public and private expenditures\nfor total outlay using the same methods that yield the 13-14% figure\nfor the U.S.\n\nThat the French had deductibles and copayments in their insurance fund\nis to their credit ... I am in the minority for advocating such back\nin Canada (to make the Canadian insurance look more like real health\ninsurance -- which actually it is).  The new Reform Party, a breakoff\nof traditionalists from the Conservatives with a mildly \"libertarian\"\nfaction, hold our public health insurance as an untouchable but that\njust a few people have to be reminded that it's not free (the average\nCanadian/European is more fiscally naive than their American\ncounterparts on issues like these).\n\nI'm one of the few people who favour copayments (forget about\nleftists, even our conservatives attack me for it on the Canadian\nnewsgroups) to make it look more like real insurance, 'cos the 100%\ninsurance payment is hidden (unlike in France) and if you didn't know\nit, you'd believe it actually is socialized medicine (American\nconservatives/libertarians and Canadian leftists are the only ones who\nseriously call it that).  Canadians aren't worried about the\nAmericans, who spend 14%; we're worried about the French and Germans\nwho spend 7% to our 9% ... so the insurance is looking at things that\nshouldn't be paid for out of general funds like physicals for\ninsurance policies, sick notes, electrolysis, etc.  The reason that\nthe Canadian health insurance hasn't spiralled out of control despite\nbeing open and universal is that unlike Americans, there is no urge to\nspend all of your benefits' worth, and more if you can ... we're a\ndifferent culture.\n\n>Like the play or pay model, managed competition leaves in place two \n>elements of the current health care system that reformers most often \n>criticize: the private, for-profit insurance industry; and the \n>employer-based system of coverage. Managed competition compels \n>employers to enroll their workers in large pools of health insurance \n>customers. Entire industries may, for example, sponsor a pool or \n>network. Insurance companies, doctors, hospitals and other health \n>care providers then bid for the pool's business, competing- in \n>theory- on the basis of price and quality. \n\n\"Managed Care\" relies on HMO's, which are unknown in most western\nnations that use only public health insurance like Canada, France\nand Germany (I'm Canadian, and my German father-in-law-to-be says\nof HMO/NHS approaches, \"We left that behind with East Germany!\").\nSure, HMO/NHS controls costs because you have managers strangling\ndoctors with budget strings.\n\nIn Canada, we use the public health insurance approach as in France\nand Germany, with all private doctors and both private and public\nhospitals.  It is all pure insurance without HMO's.  The divisions\nare different, with the Germans using a couple hundred interlinked\n\"sickness funds\" over a century old while Canada divides by their\nprovinces (who run the insurance fund and set local fees with the\ndoctors monopoly; federal funds cover the fees disbursed.)\n\nWith such an open-ended system, it's no surprise that Canada is #2 to\nthe U.S. in costs; all-insurance is the most expensive way to go. The\nFrench and Germans use the same approach but have larger populations\nin more compact geography to improve scales of economy.\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2228, "properties": {"category": "rec.sport.baseball", "text": "From: ching@fledgling.WPI.EDU (Jay Heminger)\nSubject: Re: TIGER STADIUM GIF?\nOrganization: Worcester Polytechnic Institute\nLines: 9\nDistribution: world\nNNTP-Posting-Host: fledgling.wpi.edu\nOriginator: ching@fledgling.WPI.EDU\n\n\n\nI hate to be rude, but screw the seating chart, post the stadium instead.\n\n-- \n------------------------THE LOGISTICIAN REIGNS SUPREME!!!----------------------\n|\t\t\t\t\t\t\t\t\t      |\n|   GO BLUE!!!   GO TIGERS!!!   GO PISTONS!!!   GO LIONS!!!   GO RED WINGS!!! |\n-------------------------------ching@wpi.wpi.edu-------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2229, "properties": {"category": "rec.sport.hockey", "text": "From: georgeh@gjhsun (George H)\nSubject: Re: President Trophy winner missing playoffs ???\nOrganization: Michigan State University\nLines: 17\nNNTP-Posting-Host: gjhsun.cl.msu.edu\n\njstrangi@hora.seas.upenn.edu (Jim Strangio) writes:\n\n>In article <13APR93.17376172.0059@VM1.MCGILL.CA> CCDB@MUSICA.MCGILL.CA (CCDB000) writes:\n\n>When was the last time a President's Trophy winner fell to last place\n>the following year?  A long time, I'd bet.\n>--\n\nWell I think it in 1969 the Montreal Canadians finished 1st (although\nthere was no President's cup in those days) and missed the playoffs \nin 1970. I do recall that the 1970 playoff picture wasn't decided until\nthe final day, when the NY Rangers defeated the RedWings. The tie-breaker was\nthe number of goals for (if I remember correctly), so the Rangers played\nwith an empty net for the entire game. Some Hab loyalists accused \nthe Wings of 'throwing' the game to keep them out, but as I recall, \nGordie and Delvecchio had the flu, so coach Sid Abel sat them out,\nand the Rangers swarmed the RedWings most of the night. \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2230, "properties": {"category": "sci.space", "text": "From: sysmgr@king.eng.umd.edu (Doug Mohney)\nSubject: Re: Shuttle oxygen (was Budget Astronaut)\nOrganization: Computer Aided Design Lab, U. of Maryland College Park\nLines: 19\nReply-To: sysmgr@king.eng.umd.edu\nNNTP-Posting-Host: queen.eng.umd.edu\n\nIn article <1993Apr16.151729.8610@aio.jsc.nasa.gov>, kjenks@gothamcity.jsc.nasa.gov writes:\n\n>Josh Hopkins (jbh55289@uxa.cso.uiuc.edu) replied:\n>: Double wow.  Can you land a shuttle with a 5cm hole in the wall?\n>Personnally, I don't know, but I'd like to try it sometime.\n\nAre you volunteering? :)\n\n> But a\n>hole in the pressure vessel would cause us to immediately de-orbit\n>to the next available landing site.\n\nWill NASA have \"available landing sites\" in the Russian Republic, now that they\nare Our Friends and Comrades?\n\n\n\n    Software engineering? That's like military intelligence, isn't it?\n  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2231, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: doug@sun.sws.uiuc.edu (Doug Ward)\nSubject: Stealth 24 Video Drivers\nOrganization: State Water Survey\nLines: 14\n\n\nI recently purchased a Diamond Stealth 24 Video card\nand received the wrong drivers.  Does anyone know where\nI can ftp the windows video drivers for the Stealth 24.\nI tried the drivers at cica and they don't work.\nThe right drivers are on the Diamond BBS but the file is almost\n1 meg and it would take a while to download them\nat 2400 baud.  Any information would be appreciated.  Please\ncontact me at doug@sun.sws.uiuc.edu\n\nThank you\n\nDoug Ward\n.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2232, "properties": {"category": "alt.atheism", "text": "Subject: So what is Maddi?\nFrom: madhaus@netcom.com (Maddi Hausmann)\nOrganization: Society for Putting Things on Top of Other Things\nLines: 12\n\nAs I was created in the image of Gaea, therefore I must\nbe the pinnacle of creation, She which Creates, She which\nBirths, She which Continues.\n\nOr, to cut all the religious crap, I'm a woman, thanks.\nAnd it's sexism that started me on the road to atheism.\n\n-- \nMaddi Hausmann                       madhaus@netcom.com\nCentigram Communications Corp        San Jose California  408/428-3553\n\nKids, please don't try this at home.  Remember, I post professionally.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2233, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: tuff to be a Christian?\nOrganization: Indiana University\nLines: 59\n\nIn article <Apr.17.01.10.58.1993.2246@geneva.rutgers.edu> mdbs@ms.uky.edu (no name) writes:\n>bissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n>\n>>\tI don't think most people understand what a Christian is.  It \n>>is certainly not what I see a lot in churches.  Rather I think it \n>>should be a way of life, and a total sacrafice of everything for God's \n>>sake.  He loved us enough to die and save us so we should do the \n>\n>\tTypical statement from an irrational and brainwashed person.\n>The bible was written by some male chavnist thousands of years ago\n>(as were all of the \"holy\" books). Follow the parts that you think are\n>suitable for modern life. Ignore the others. For heaven's (!) sake don't\n>take it literally.\n\nPlease, leave heaven out of it.  For his own sake, I pray that Dan does\ntake it literally because that's how God intended it to be taken.  Dan,\nyour view of many groups appears correct from my point of view.\nHowever, I have found a group which is truly meeting requirements laid\ndown by the Bible on what it means to be a disciple of Jesus.  I have no\nclue where wwc is, but please mail me.  I'd really like to get you in\ntouch with them.\n\n>\n>>same.  Hey we can't do it, God himself inspires us to turn our lives \n>>over to him.  That's tuff and most people don't want to do it, to be a \n>\t\t\t\t^^^^^^^^^^^^^^^\n>>real Christian would be something for the strong to persevere at.  But \n>\n[insert deletion of ranting about other religions which obviously has\ngone off-center of Dan's original context]\n\nDan, I'm familiar with this one.  You've got a point, though.  There are\nsome who don't want to turn over everything and be a disciple, some have\nno clue about it because they've not been taught, some have done exactly\nthat and turned over everything to follow Jesus, some are blocked by\ndifficult doctrine taught by uncaring Pharisees and teachers of the law.\nHowever, Jesus pointed out what it takes to follow him and to be his\ndisciple in Luke 9:23-26 and Luke 14:25-33.  My question is:  why do\npeople ignore the command and treat it as optional?  I certainly don't\nhave an answer to this.\n\n[insert deletion]\n\n>\tParting Question:\n>\t\tWould you have become a Christian if you had not\n>been indoctrinated by your parents? You probably never learned about\n>any other religion to make a comparative study. And therefore I claim\n>you are brain washed.\n\nMy parents had nothing to do with it.  God had and has everything to do\nwith it.  As for these attacking responses, I must say that I disagree\nwith your tone and what appears to be some very judgmental statements\n(possibly to the point of slander) when talking about people, not what\nthey do.  Please, if you have a response, state it instead of flying off\nthe handle on some discourse which may have nothing truly to do with\nwhat is being discussed.  I'm sure both Dan and I would have a much\nhappier time with your responses.\n\nJoe\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2234, "properties": {"category": "comp.graphics", "text": "From: dgf1@ellis.uchicago.edu (David Farley)\nSubject: Re: Why does Illustrator AutoTrace so poorly?\nReply-To: dgf1@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 25\n\nIn article <0010580B.vmcbrt@diablo.UUCP> diablo.UUCP!cboesel (Charles Boesel) writes:\n>I've been trying to figure out a way to get Adobe Illustrator\n>to auto-trace >exactly< what I see on my screen. But it misses\n>the edges of templates by as many as 6 pixels or more - resulting in images\n>that are useless  - I need exact tracing, not approximate.\n>\n>I've tried adjusting the freehand tolerances as well as autotrace\n>tolerances but it doesn't help. Any suggestions?\n>\n>--\n>charles boesel @ diablo creative |  If Pro = for   and   Con = against\n>cboesel@diablo.uu.holonet.net    |  Then what's the opposite of Progress?\n>+1.510.980.1958(pager)           |  What else, Congress.\n\nI've had exactly the same problems in Aldus Freehand.  I think autotracing\nis one of those \"features\" that barely works, but everybody feels compelled\nto throw it in because the other guys are doing it.  :)\n\n\n\n-- \nDavid Farley                           The University of Chicago Library\n312 702-3426                              1100 East 57th Street, JRL-210\ndgf1@midway.uchicago.edu                         Chicago, Illinois 60637\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2235, "properties": {"category": "comp.graphics", "text": "From: xrcjd@mudpuppy.gsfc.nasa.gov (Charles J. Divine)\nSubject: Re: TIFF: philosophical significance of 42 (SILLY)\nOrganization: NASA/GSFC Greenbelt Maryland\nLines: 15\n\nIn article <1r3lf9$fu0@geraldo.cc.utexas.edu> Mark A. Cartwright <markc@emx.utexas.edu> writes:\n>Well,\n>\n>42 is 101010 binary, and who would forget that its the\n>answer to the Question of \"Life, the Universe, and Everything else.\"\n>That is to quote Douglas Adams in a round about way.\n>\n>Of course the Question has not yet been discovered...\n\nBut the Question was later revealed to be:  What is 9 x 6?  (In the\nbase 13 system, of course.)\n\n\n-- \nChuck Divine\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2236, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: marshalk@mercury.Berkeley.EDU (Kevin Marshall)\nSubject: Re: Grey Scale while in windows?\nOrganization: Motorola Ltd., European Cellular Infrastructure Division\nLines: 6\nDistribution: world\nReply-To: marshalk@mercury.Berkeley.EDU (Kevin Marshall)\nNNTP-Posting-Host: mercury.swindon.rtsg.mot.com\n\n\n +----------------------------------------------------------------------------+\n | Kevin Marshall, Operational Support, Motorola ECID, Swindon, UK.           |\n | E-mail   : marshalk@zeus                                                   |\n | Phone    : +44 793 545127 (International)    (0793) 545127 (Domestic)      |\n +----------------------------------------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2237, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jbailey@world.std.com (jim bailey)\nSubject: Re: What to put in Centris 650 Internal Bay?\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 24\n\nhades@coos.dartmouth.edu (Brian V. Hughes) writes:\n\n>tzs@stein2.u.washington.edu (Tim Smith) writes:\n\n>>jbailey@world.std.com (jim bailey) writes:\n>>>Yes, you get internal mixing of the analog CD-Audio outputs with\n>>>the Mac generated audio on the Mac motherboard.  Also you can sample\n>>>the CD-Audio using the sound control panel by clicking on the Options\n>>>button next to the microphone icon.\n\n>>How do you click on the Options button?  I've never seen it undimmed.\n\n>    The latest word on this is you have to disconnect the Microphone\n>cable on the motherboard. Then the button is supposed to un-dim.\n\n\n>-Hades\n\nSorry, I assumed that the the various new machines with the internal\nCD-ROM bay worked the same as the Quadra 900.  Obviously they don't.\nI can use any of three inputs by changing the radio button under\nthe sound cp on my Quadra 900, Microphone, External, and CD-ROM.  I\nalways leave the microphone plugged in (even though I never use\nit).\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.103+0000", "event": "documents", "entityId": 2238, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: What about No-Fault?\nOrganization: NEC Systems Laboratory, Inc.\nLines: 31\n\nIn article <1416@galileo.rtn.ca.boeing.com> meb4593@galileo.rtn.ca.boeing.com (Michael Bain) writes:\n>\n>Insurance companies sure seem to go for No-Fault coverage.  Since the\n>majority of accidents are the cagers' fault, doesn't this imply that we\n>would have to pay much higher rates under a No-Fault system?\n>\n>With a cars-only system, it seems to make sense on the surface: take the\n>legal costs out of the system.  But it looks like motorcyclists would\n>get screwed.\n\n\tYup.  Unfortunately, as has been pointed out, the cost of insurance\ndoes NOT go down with No Fault.  The crappiest drivers make out like bandits\nbecause they no longer have to bear the responsibility of paying for\ninsurance that they have boosted in price for themselves by being crappy\ndrivers.  The good drivers now pay through the nose to spread the cost of\nthe crappy drivers' actions, and that's not fair.\n\n\tAny plan that caps rates for crappy drivers is inherently a piece of\nshit, because the rest of us end up paying more.\n\n\tAny plan that uses speeding tickets as a basis for raising rates is\nalso a piece of shit as it is based upon the lie that faster drivers are\ninherently less safe than slower drivers, and the NHTSA disproved that two\nyears ago now.\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2239, "properties": {"category": "rec.sport.baseball", "text": "From: niguma@ug.cs.dal.ca (Gord Niguma)\nSubject: G. Williams sent down; Yanks win AL East\nNntp-Posting-Host: ug.cs.dal.ca\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nDistribution: na\nLines: 17\n\n  Well, it really isn't this cut and dry, but as a Jay fan the thing I feared\nworst has happened. The Yanks sent down Williams G and are going to start\nWilliams B in CF.\n  I also believe they kept Wickman and Millitello in their rotation, which is\nmuch nicer than that Kaminiecki and Mike Witt combo I thought they'd throw\nout their to the slaughterhouse because of their \"experience\". Granted, Witt\n\"might\" be good, but I think that they used rationale to keep the youngsters\nup and not given the job to Witt because he was a good pitcher and has\nexperience.\n  The Yanks are showing that they are taking positive strides forwards; the\nJays with the loss of Dave Stewart are looking at gigantic holes in their\npitching staff.\n  The Orioles should also be there in the end.....\n\n\t\t\t\t\t\tGord Niguma\n\t\t\t\t\t\t(to salvage the season,\n\t\t\t\t\t\tlet JJ Olerud win MVP)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2240, "properties": {"category": "misc.forsale", "text": "From: davisonj@en.ecn.purdue.edu (John M Davison)\nSubject: TCD-D3 DAT Walkman For Sale\nSummary: I am backing out because someone is selling me another\nKeywords: Digital Audio Tape Sony TCD-D3 DAT Walkman\nOrganization: Purdue University Engineering Computer Network\nLines: 64\n\n        I recently backed out of purchasing an almost-unused Sony TCD-D3 DAT\nWalkman, having found someone else who has a unit I personally prefer (and am\npaying more for).  However, it's still a heck of a machine for the price -- it\nis quite rugged, and many people out there swear by it.  (It's probably the\nmost popular walkman-style DAT machine out there.)\n\n        Anyway, the guy selling it is Bryan Davis (bdavis@netcom.com), and\nhere's what he told me:\n\n-------------------------------------------------------------------------------\nHere is what is included:\n        - TCD-D3 DATman.\n        - (2) RCA to Stereo 1/8\" plug cables.  One for analog input, one for\n          analog output.\n        - Optical digital I/O cable (one lead for input, one for output).\n        - A copy of my sales receipt with a note about your purchase.  The\n          unit is still under factory warrantee.\n        - AC adaptor/battery charger.\n        - Rechargable battery.\n\nI paid $750 + tax for it so I hope you don't mind if I keep the 60 minute\ntape it came with (I have some samples on it!).\n\n[By the way, he spent at least $100 too much for it, unless he's including an\n extended warranty, which is advised for DAT machines, since it costs about\n $300 to replace the head when it wears out, and it probably will within 5\n years if you use it a lot.. -- davisonj]\n-------------------------------------------------------------------------------\n\n        I'm not going to quote my sale price for him: that would not be nice.\nSend him mail and ask him what he wants.\n\n        Again, I've used the TCD-D3, and I have to say that I can certainly\nunderstand why it is as popular as it is.  I've been using one for a little\nwhile, and although I had some problems with it recently, I should also point\nout that the particular one I was using had been on the road for two years and\nhad truly been _used_ during that time.  (This is the same exact DAT machine\nthat was lugged around the U.S. and Canada to record the Jazz Butcher\nConspiracy for their recent live album.)\n\n        Bryan Davis says:\n-------------------------------------------------------------------------------\nI know at least half a dozen professional musicians and record labels\nin S.F who use that model (and have been for a while) with no reported\nproblem.  My problem is that everyone I know already has one.\n-------------------------------------------------------------------------------\n\n        'nuff said.\n\n        The reason I'm not getting it is that I found someone else selling me a\nunit that features phono-plug SPDIF I/O instead of optical (I don't have any\noptical ports on my equipment, but you, the reader, might), and it also has\nsome other bells & whistles that the TCD-D3 doesn't.  (I am also paying more\nfor the alternative.)  Note that phono-plug-to-optical SPDIF adapters are\navailable if you absolutely must have one.\n\n        Of course, it has SCMS.  All consumer decks do.  (So do Sony Minidiscs,\nby the way.)\n\n        Anyway, if you're interested, get in touch with bdavis@netcom.com.\n\n-- \nJohn Davison\ndavisonj@ecn.purdue.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2241, "properties": {"category": "sci.electronics", "text": "From: chris@alien.saar.de (Christian Reisel)\nDistribution: world\nOrganization: Chaos live\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nReply-To: chris@alien.saar.de\nX-Software: HERMES GUS 1.10 Rev. Mar  3 1993\nMIME-Version: 1.0\nContent-Type: text/plain; charset=US-ASCII\nContent-Transfer-Encoding: 7bit\nLines: 82\n\nIn <C5L5x0.KJ7@vcd.hp.com>, John Eaton writes:\n\n   [...]\n>During the nuclear fission reaction the uranium fuel can get hot enough\n>to melt. When this happens the liquid uranium is pumped to the cooling\n>tower where it is sprayed into the air. Contact with the cool outside air\n>will condense the mist and it will fall back to the cooling tower floor.\n>There it is collected by a cleaning crew using shop vacs and is then\n>reformed into pellets for reactor use the next day.\n>\n>Cooling towers are a lot taller than they really need to be. Power companies\n>are forced to make them that tall by some enviromental law that requires the\n>raw uranium emisions to be held to under 1%. This law is now under attack\n>by lawyers arguing that the 1% should be measured at the edge of the property\n>rather than the edge of the cooling tower. Eliminating this law will save\n>power companies thousands of dollars in concrete costs for new nukes.\n>\n>John Eaton\n>!hp-vcd!johne\n>\n\nI think you posted your article 15 days too late :-)) April 1st is over.\nI don't like nuclear powerplants but i think it's not fair to tell such\n\"storys\" about them. OK ?\nLet me try to explain what that tower is used to:\n   -1st. Even the modernst nuclear powerplant is only a simple steam-engine.\n         It has an hightech \"boiler\" but the rest is still verry verry \n         conventional. And if you've already visited any condensation-\n         powerstation you'l have seen the cooling towers too.\n         If you look at any good book about thermophysics you'll find\n         a chapter about the \"CARNOT-process\" which describes how to\n         get energy from a temperature difference ! And that is the reason\n         for cooling towers too !!! You only can get energy if you've an\n         temperature gradient. That means that you have steam on the one \n         side and need to cool down the steam 'till you get water\n         again on the other side if you want to get aprox. 30% of the \n         energy you (or better the uranium) brought into the water to\n         let it boil. If you only have hot steam on the one and \"cold\"\n         steam on the other side you'll loose much more of the energy.\n         And so they cool down the steam to get at least the 30% of\n         energy that carnot will give them.\n         The cooling towers are for cooling the steam !\n         The vapor you'll see is NOT the steam of the main core circulation,\n         because that steam is radioactive ! The circulation is divided in\n         AT LEAST 2 circuits connected about heat exchangers to prevent\n         radioactive pollution of the environment !\n         \n   -2nd. OK, the main core IS hot, but even in the modernst HighTemperature-\n         Reactors (HTR) they only run at ~800 deg celsius. This is still\n         verry far away from uraniums melting point which is somewhere\n         around 2000 deg. celsius ! But you'll have lot's of problems with\n         the boiler's steel. That's because at this temperature the\n         metal is attacked by steam and will corrode verry fast.\n         This is only for BWR's. The new He cooled reactors have temperatures\n         up to 1200 deg. celsius. But this is only experimental. \n\n   -3rd. I personaly think that nuclear waste should be as low as ever\n         possible because the dose you get will accumulate about the\n         years. Today 1 mRem and next year 0.5 mRem won't be 0.75 mRem\n         at all. It accumulates and even in 80 years you'll still have\n         1.5 mRem. And i'm not interested in glowing in the night and\n         getting children with 2 heads. This is my point of view.\n         \n\nOnly my 0.02$ !\n\nChristian Reisel \n\nstudent of electronic sciences\n\n-- \nChristian Reisel, Goldammerweg 2, W-6601 Buebingen, Germany\nVoice        +49 6805 22179 Fax & Email  +49 6805 22179\n\nPGP PubKey:\n--------------------------------------------------------------\nbegin 777 pcr.pub\nMF5L`P`\"S*Q%296ES96PL($-H<FES=&EA;OX!P7R5'F0QY1Q_.=+SY(;DZ0L:6\nMMO(]]0`=K?/VH[U-\"6MX]7G\\-MF]/;&`H5KL/%,M\\$:89^5FI6;W:$T$;9M!Q\n$+04`$0`=@\n``\nend\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2242, "properties": {"category": "sci.crypt", "text": "From: ken@sugra.uucp (Kenneth Ng)\nSubject: Re: Identifying / Securing Files\nOrganization: Private Computer, Totowa, NJ\nLines: 23\n\nIn article <2bb29f4c@mash.boulder.co.us: rmashlan%mash@csn.org (Robert Mashlan) writes:\n:tarnold@vnet.IBM.COM (Todd W. Arnold) said in article <19930322.101356.617@almaden.ibm.com>:\n:>It's OK as long as you trust the end-user to stay out of your application\n:>program - or as long as it runs in a system where the user can't get to it.\n:>Otherwise, you can't stop him from finding the \"load a module\" code in your\n:>program, and simply bypassing the check for a valid module.  The devious user\n:>can either modify the object code before running the program, or he can run\n:>the program under a debugger and change the instructions in memory.\n:There is a way to foil debuggers, by clearing the single step \n:interrupt, on which a debugger depends, every few instructions in \n:the sensitive areas of the code.\n\nThis assumes the person is using the hardware debug instruction of an X86\ntype processor.  It can be negated by NOP'ing the clear debug instruction,\nor by running the code on a machine simulator, like one I wrote as a senior\nproject in college.  It can bypass and trace practically anything one could\nwrite in software.  Kind of like being on a Star Trek Holideck :-).\n\n-- \nKenneth Ng\nPlease reply to ken@eies2.njit.edu for now.\n\"All this might be an elaborate simulation running in a little device sitting\non someone's table\" -- J.L. Picard: ST:TNG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2243, "properties": {"category": "comp.windows.x", "text": "From: hedrick@geneva.rutgers.edu (Charles Hedrick)\nSubject: Re: Xsun not running on SPARCclassic\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 24\n\nherzog@dogwalk.Eng.Sun.COM (Brian Herzog - SunSoft Product Engineering) writes:\n\n>I'm just guessing here, but I'd guess that X11R5 expects the CG3 to have\n>1152x900 resolution, and the version of the CG3 in the SPARCclassic is \n>1024x768.\n\nI've used X11R5 with classics set for both 1024x768 and 1152x900 (you\ncan choose which resolution you want in the PROM monitor before\nbooting).  One person had trouble with X11R5 that was fixed by\nusing the multi-screen version.  Here's how our version was built.\n(You can just copy /usr/local/X11R5/bin/Xsun from farside.rutgers.edu\nif you just want to see whether this version will work.)\n\n  R5 distribution installed,\n        from pub/R5/mit-[1-4] and contrib-[1-3] on export.lcs.mit.edu\n  patches 1 - 23 installed,\n\tfrom pub/R5/fixes on export\n  R5 Xsun Multi-screen patches installed, \n\tfrom contrib/R5.Xsun.multi-screen* on export, 22-Mar-93\n  Solaris 2.1 patches installed, release 1/update 2,\n\tfrom contrib/R5.SunOS5.patch* on export, 22-Mar-93\n\nCompilation is with gcc 2.3.3.  Configuration is standard, except that\nthe root is /usr/local/X11R5, per Rutgers conventions.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2244, "properties": {"category": "sci.space", "text": "From: Wingert@vnet.IBM.COM (Bret Wingert)\nSubject: Re: Level 5?\nOrganization: IBM, Federal Systems Co. Software Services\n              IBM, Federal Systems Co. Software Services\nDisclaimer: This posting represents the poster's views, not those of IBM\nNews-Software: UReply 3.1\nLines: 91\n\nIn <C5uBn5.tz@zoo.toronto.edu> Henry Spencer writes:\n>In article <1993Apr21.134436.26140@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n>>>>(given that I've heard the Shuttle software rated as Level 5 ...\n>>>Level 5?  Out of how many? ...\n>>\n>>... Also keep in mind that it was\n>>*not* achieved through the use of sophisticated tools, but rather\n>>through a 'brute force and ignorance' attack on the problem during the\n>>Challenger standdown - they simply threw hundreds of people at it and\n>>did the whole process by hand...\n>\n>I think this is a little inaccurate, based on Feynman's account of the\n>software-development process *before* the standdown.  Fred is basically\n>correct:  no sophisticated tools, just a lot of effort and painstaking\n>care.  But they got this one right *before* Challenger; Feynman cited\n>the software people as exemplary compared to the engine people.  (He\n>also noted that the software people were starting to feel management\n>pressure to cut corners, but hadn't had to give in to it much yet.)\n>\n>Among other things, the software people worked very hard to get things\n>right for the major pre-flight simulations, and considered a failure\n>during those simulations to be nearly as bad as an in-flight failure.\n>As a result, the number of major-simulation failures could be counted\n>on one hand, and the number of in-flight failures was zero.\n>\n>As Fred mentioned elsewhere, this applies only to the flight software.\n>Software that runs experiments is typically mostly put together by the\n>experimenters, and gets nowhere near the same level of Tender Loving Care.\n>(None of the experimenters could afford it.)\n>--\n>All work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n>                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n>\nNews-Software: UReply 3.1\nX-X-From: Wingert@VNET.IBM.com (Bret Wingert)\n            <C5uBn5.tz@zoo.toronto.edu>\n\nIn <C5uBn5.tz@zoo.toronto.edu> Henry Spencer writes:\n>In article <1993Apr21.134436.26140@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n>>>>(given that I've heard the Shuttle software rated as Level 5 ...\n>>>Level 5?  Out of how many? ...\n>>\n>>... Also keep in mind that it was\n>>*not* achieved through the use of sophisticated tools, but rather\n>>through a 'brute force and ignorance' attack on the problem during the\n>>Challenger standdown - they simply threw hundreds of people at it and\n>>did the whole process by hand...\n>\n>I think this is a little inaccurate, based on Feynman's account of the\n>software-development process *before* the standdown.  Fred is basically\n>correct:  no sophisticated tools, just a lot of effort and painstaking\n>care.  But they got this one right *before* Challenger; Feynman cited\n>the software people as exemplary compared to the engine people.  (He\n>also noted that the software people were starting to feel management\n>pressure to cut corners, but hadn't had to give in to it much yet.)\n>\n>As Fred mentioned elsewhere, this applies only to the flight software.\n>Software that runs experiments is typically mostly put together by the\n>experimenters, and gets nowhere near the same level of Tender Loving Care.\n ========================================================================\nA couple of points on this thread.\n\n1. We have been using our processes since way before Challenger.  Challenger\n   in and of it self did not uncover flaws.\n\n2. What Mr. Spencer says is by and large true.  We have a process that is\n   not dependent on \"sophisticated tools\"  (CASE tools?).  However, tools\n   cannot fix a bad process.  Also, tool support for HAL/S (the Shuttle\n   Language) is somewhat limited.\n\n3. The Onboard Flight Software project was rated \"Level 5\" by a NASA team.\n   This group generates 20-40 KSLOCs of verified code per year for NASA.\n\n4. Feel free to call me if you or your organization is interested in more info\n   on our software development process.\n\nBret Wingert\n\n\n(713)-282-7534\nFAX: (713)-282-8077\n\n\nBret Wingert\n\n\n(713)-282-7534\nFAX: (713)-282-8077\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2245, "properties": {"category": "rec.motorcycles", "text": "From: howard@netcom.com (Howard Berkey)\nSubject: Re: Shipping a bike\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 23\n\nIn article <MELLON.93Apr15183059@pepper.ncd.com> mellon@ncd.com (Ted Lemon) writes:\n>\n>>Can someone recommend how to ship a motorcycle from San Francisco\n>>to Seattle?  And how much might it cost?\n>\n>I'd recommend that you hop on the back of it and cruise - that's a\n>really nice ride, if you choose your route with any care at all.\n>Shouldn't cost more than about $30 in gas, and maybe a night's motel\n>bill...\n>\n\nYes!  Up the coast, over to Portland, then up I-5.  Really nice most\nof the way, and I'm sure there's even better ways.\n\nWatch the weather, though... I got about as good a drenching as\npossible in the Oregon coast range once... \n\n\n-- \n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\nHoward Berkey \t\t\t\t\t\t   howard@netcom.com\n\t\t\t\t Help!\n... .. ...   ... .. ...   ... .. ...    ... .. ...   ... .. ...   ... .. ...\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2246, "properties": {"category": "rec.sport.hockey", "text": "From: jyturunen@tnclus.tele.nokia.fi\nSubject: Re: Too Many Europeans in NHL \nLines: 18\nNntp-Posting-Host: tne03.tele.nokia.fi\nOrganization: Nokia Telecommunications.\n\nIn article <rauser.734062608@sfu.ca>, rauser@fraser.sfu.ca (Richard John Rauser) writes:\n>\n>    Here's the point: there are far too many Europeans in the NHL. I am sick\n> of watching a game between an American and a Canadian team (let's say, the\n> Red Wings and the Canucks) and seeing names like \"Bure\" \"Konstantinov\" and\n> \"Borshevshky\". Is this North America or isn't it? Toronto, Detriot, Quebec,\n> and Edmonton are particularly annoying, but the numbers of Euros on other\n> teams is getting worse as well.\n\n    I'm sick too watching all-american names like GRETZKY etc.\n\n    Which names you accept ? Sitting bull and dances with wolves ?\n\n    It is North America. What are you doing here ?\n\n\n    Jyri\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2247, "properties": {"category": "sci.space", "text": "From: jfc@athena.mit.edu (John F Carr)\nSubject: Re: Gamma Ray Bursters.  WHere  are they.\nOrganization: Massachusetts Institute of Technology\nLines: 12\nNNTP-Posting-Host: achates.mit.edu\n\n\nIf gamma ray bursters are extragalactic, would absorption from the\ngalaxy be expected?  How transparent is the galactic core to gamma\nrays?\n\nHow much energy does a burster put out?  I know energy depends on\ndistance, which is unknown.  An answer of the form _X_ ergs per\nmegaparsec^2 is OK.\n\n\n--\n    John Carr (jfc@athena.mit.edu)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2248, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: After 2000 years, can we say that Christian Morality is oxymoronic\nKeywords: ... and blessed are aluminium siding salesman ...\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\n\t<1qkna8$k@fido.asd.sgi.com> \n\t<930416.140529.9M1.rusnews.w165w@mantis.co.uk>\nLines: 19\n\nIn article <930416.140529.9M1.rusnews.w165w@mantis.co.uk> \nmathew@mantis.co.uk (mathew) writes:\n>livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>>Not, of course, The Greatest Salesman in the World. That was Jesus, wasn't it?\n>No, J.R. \"Bob\" Dobbs.\n\nDefinitely, J.R. \"Bob\" Dobbs, numero uno, top dog, not one can touch, not\none can knock Bob out of the box. Bob kills me mon! Everyday!\n\nBut close El Segundo (el subliminal) is the infamous Paul (birthname Saul) the\nEvangeline who became famous as a result of his numerous trampoline act \ntours of the eastern Mediterranean.\n\nJesus on the other hand was duped, a pawn of the Con, fell pray to the\nHolywood Paradox (ain't nothing but a sign in the hills!). Like many\nAfro-Asians, Jesus found the earth all too pink! And to think that after\nhis death, the Con changed him into a tall blond Holywood sun god! And I \ndo mean that in the kindest way possums! Now Jesus does gigs with Hendrix, \nJoplin, Morrison, Lennon, Marley, Tosh, etc. Mostly ska beat jah-know!\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2249, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 51\n\nIn article <1r0qsrINNc61@clem.handheld.com> jmd@cube.handheld.com (Jim De Arras) writes:\n>In article <C5s0Ds.J54@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n>writes:\n>> I agree that they deserved a trial.  They had more than 40 days to come \n>> out and get their trial.  They chose to keep the children with them and \n>> to stay inside.  They chose to stay inside even after they were tear gassed.\n>> I do not find these actions rational.  Even Noriega was smart enough to \n>> give up and go for the trial he deserved.\n>> \n>\n>Mr. Roby, you are a government sucking heartless bastard.  \n\nUnworthy of comment.\n\n>Humans died  \n>yesterday, humans who would not have died if the FBI had not taken the \n>actions  \n>they did.  That is the undeniable truth.  I cried for them.  \n\nNor would they have died if they had come out with their hands empty.\nThat is undeniable truth.  My heart bleeds just as much as yours for \nthe children who were never released given 51 days of ample opportunities \nto do so.  My heart also bleeds for people so blinded by religious devotion \nto not have the common sense to leave the compound when tanks came up \nand started dropping in tear gas early in the morning.\n\n>You seem to say  \n>they got what they deserved.\n\nI do not think this.  However, if they did set the fire (which started in \nmore than one place and spread very quickly), then they got what they \nwanted and put into motion themselves.\n\nI see the BATF is going to be investigated by the Justice Dept. and likely \nby Arlen Spectre and congress.  This is good.  They have bungled the affair \nfrom the start.\n\n>Jim\n>--\n>jmd@handheld.com\n>-------------------------------------------------------------------------------\n>\"I'm always rethinking that.  There's never been a day when I haven't rethought  \n>that.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n>\"If I were an American, as I am an Englishman, while a foreign troop was landed  \n>in my country, I never would lay down my arms,-never--never--never!\"\n>WILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2250, "properties": {"category": "rec.sport.hockey", "text": "From: etxonss@ufsa.ericsson.se (Staffan Axelsson)\nSubject: Sweden-Finland, April 15\nNntp-Posting-Host: uipc104.ericsson.se\nOrganization: Ericsson Telecom, Stockholm, Sweden\nLines: 119\n\n\n Played in Scandinavium, Gothenburg, April 15 1993:\n ==================================================\n\n SWEDEN - FINLAND  6-6 (1-2,3-1,2-3)\n\n 1st: SWE 1-0 Peter Popovic      (Markus Naslund)                     6:10\n      FIN 1-1 Ville Siren        (Keijo Sailynoja)                    8:44 (pp)\n      FIN 1-2 Juha Riihijarvi    (Timo Saarikoski,Vesa Viitakoski)   13:12 (pp)\n 2nd: FIN 1-3 Jari Korpisalo     (Kari Harila,Rauli Raitanen)         6:48\n      SWE 2-3 Jan Larsson        (Mikael Renberg,Stefan Nilsson)      7:25\n      SWE 3-3 Hakan Ahlund       (Thomas Rundqvist)                   8:56\n      SWE 4-3 Roger Akerstrom    (Roger Hansson)                      9:13\n 3rd: SWE 5-3 Stefan Nilsson     (Patrik Juhlin,Charles Berglund)     2:20\n      FIN 5-4 Keijo Sailynoja                                         9:23\n      FIN 5-5 Keijo Sailynoja                                         9:44 (ps)\n      SWE 6-5 Mikael Renberg     (Hakan Ahlund,Thomas Rundqvist)     17:16\n      FIN 6-6 Jari Korpisalo                                         17:44\n\n             Shots on goal:      Penalties:     Attendance:    Referee:\n Sweden       8 10 10 - 28       5*2min         6,799          Peter Andersson\n Finland     12 10 11 - 33       6*2min,1*10min                (Sweden)\n\n-------------------------------------------------------------------------------\n\n Sweden opened the scoring as Markus Naslund made a drop pass at the Finnish\n blue line, Popovic picked it up and advanced towards the Finnish goal and\n shot a nice hard wrist shot in Ketterer's top corner. Ville Siren's slap\n shot from the blue line on power play made it 1-1, and Juha Riihijarvi\n scored a nice goal in another power play when he close in front of goal\n put the puck high over Aslin, 1-2 after the first period.\n The Finns started the second period with really good pressure. Korpisalo\n made it 1-3 with another goal from close range high over Aslin. Then,\n during the Finnish pressure, Sweden turned the game around in 1:47.\n Mikael Renberg worked hard behind the Finnish goal, and passed the puck to\n Jan Larsson in front, who backhanded the puck low, 2-3. Rundqvist entered\n the Finnish zone and passed to Ahlund, and the Finnish defense let Ahlund \n skate in and take a shot that Ketterer dropped into the goal, 3-3.\n Next, Roger Hansson -behind the goal- sent the puck back to the blue line\n where Roger Akerstrom took a slap shot and Ketterer didn't see the puck since\n there was traffic in front, 4-3.\n Third period started with a nice goal by Stefan \"the Shadow\" Nilsson. Stefan\n and Patrik Juhlin entered the Finnish zone, Patrik passed the puck back to\n Stefan who alone with Ketterer made no mistake, 5-3.\n Then, Keijo Sailynoja show started. He reduce and equalized the lead in only\n 21 seconds! First he scored the 5-4 goal, and after that he came in alone \n with Aslin but was tripped by Aslin to get a penalty shot. Sailynoja\n made a nice penalty shot, showed forehand and put in with a low backhand shot.\n The Swedes seemed to head for a win when Mikael Renberg scored the 6-5 goal\n late in the game on a nice power play combination. Renberg waited in the slot,\n showed that he wanted the puck on the backhand side, Ahlund passed the puck\n and Renberg took a turnaround shot low in Ketterer's goal's far side.\n But Jari Korpisalo had other plans as he only 28 seconds later scored the\n game's final goal to make it 6-6. Korpisalo took a slap shot from a narrow\n angle that -maybe- Aslin should have saved.\n\n All in all, a decent game where the defense wasn't the best.\n Both teams juggled around the lines a bit in the second and third period\n to try no combinations.\n\n Renberg and Rundqvist plays well together in the Swedish team. Larsson-\n Nilsson-Juhlin best line overall again, it seems to be a working WC line.\n Stillman good on defense.\n Some players aren't good enough for the WC though. Hakan Ahlund (faell ner\n hjaelmen och jobba!), Roger Hansson, Challe Berglund, Kenny Jonsson\n will likely have to leave for NHL pros.\n\n Two-goal scorers Jari Korpisalo and Keijo Sailynoja played well in the\n Finnish team. Markus Ketterer didn't have a very good game, we've seen him\n a lot better, so Lindfors is probably Finland's starting goalie in the WC.\n I heard that Esa Tikkanen will join the Finnish team. It would be inter-\n resting to know which other pros coach Matikainen counts on for the WC.\n \n-------------------------------------------------------------------------------\n\n Starting lines:\n\n \tSWEDEN\t\t\t\t\tFINLAND\n\n  35. Peter Aslin\t\t\t30. Markus Ketterer\n\n   8. Kenneth Kennholt\t\t\t 2. Mikko Haapakoski\n  14. Fredrik Stillman\t\t\t 3. Ville Siren\n\n  10. Hakan Ahlund\t\t\t28. Jarkko Varvio\n   9. Thomas Rundqvist\t\t\t40. Mika Nieminen\n  29. Mikael Renberg  \t\t\t18. Keijo Sailynoja\n\n  27. Roger Akerstrom\t\t\t 4. Erik Hamalainen\n   7. Arto Blomsten\t\t\t 8. Kari Harila\n\n  20. Jan Larsson \t \t\t25. Rauli Raitanen\n   4. Stefan Nilsson \t\t\t26. Petri Varis\n   5. Patrik Juhlin\t\t\t14. Jari Korpisalo\n\n   3. Peter Popovic\t\t\t 5. Timo Jutila\n  32. Stefan Larsson\t\t\t44. Harri Laurila\n\n  11. Roger Hansson\t\t\t24. Juha Riihijarvi\n  33. Fredrik Nilsson\t\t\t22. Timo Saarikoski\n  24. Peter Ottosson\t\t\t11. Vesa Viitakoski\n\n\t\t\t\t\t 6. Pasi Sormunen\n\t\t\t\t\t12. Janne Laukkanen\n\n  19. Markus Naslund\t\t\t29. Juha Ylonen\n  21. Peter Forsberg\t\t\t27. Timo Peltomaa\n  18. Jonas Bergqvist\t\t\t17. Marko Palo\n\n Played parts of the game:\n  22. Charles Berglund\t\t\t15. Mika Alatalo\n   6. Kenny Jonsson\t\t\t16. Saku Koivu\n\t\t\t\t\t20. Marko Palo\n\n-------------------------------------------------------------------------------\n--\n ((\\\\  //| Staffan Axelsson            \n  \\\\  //|| etxonss@ufsa.ericsson.se    \n\\\\_))//-|| r.s.h. contact for Swedish hockey  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2251, "properties": {"category": "sci.electronics", "text": "From: wb8foz@skybridge.SCL.CWRU.Edu (David Lesher)\nSubject: Re: Exploding TV!\nOrganization: NRK Clinic for habitual NetNews abusers - Beltway Annex\nLines: 11\nDistribution: usa\nReply-To: wb8foz@skybridge.scl.cwru.edu (David Lesher)\nNNTP-Posting-Host: skybridge.scl.cwru.edu\n\nOthers said:\n# >... Why would the picture tube explode or even smoke?\n\nNaw, it was the penguin on TOP of the set that exploded...\n;-}\n\n--\nA host is a host from coast to coast..wb8foz@skybridge.scl.cwru.edu\n& no one will talk to a host that's close............(301) 56-LINUX\nUnless the host (that isn't close).........................pob 1433\nis busy, hung or dead....................................20915-1433\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2252, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nOrganization: U of Toronto Zoology\nLines: 15\n\nIn article <19930423.010821.639@almaden.ibm.com> nicho@vnet.ibm.com writes:\n>>Since we don't have the money to keep them going now, how will\n>>changing them to a seperate agency help anything?\n>>\n>How about transferring control to a non-profit organisation that is\n>able to accept donations to keep craft operational.\n\nThe problem is, you can't raise adequate amounts of money that way.\nThe Viking Fund tried.  They did succeed, in a way, but only because\nof the political impact of their fundraising.  The actual amount of\nmoney they raised was fairly inconsequential; it would not have kept\nthe Viking lander going by itself.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2253, "properties": {"category": "sci.med", "text": "From: lady@uhunix.uhcc.Hawaii.Edu (Lee Lady)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nSummary: Asking the wrong question is the most fundamental error. \nKeywords: science   errors   Turpin  \nOrganization: University of Hawaii (Mathematics Dept)\nExpires: Mon, 10 May 1993 10:00:00 GMT\nLines: 80\n\n\nAvoiding mistakes is certainly highly desirable.  However it is also \nwidely acknowledged that perfectionism is inimicable to creativity. \nAnd in ordinary life, perfectionism carried beyond a certain point is \nindicative of a psychological disorder.  In the extreme case, a  \nperfectionist becomes so paralyzed by all the possible mistakes he might \nmake that he is unable to even leave the house.  \n\nIn science, we want to discover as much truth about the world as possible \nand we also want to have as much certainty as possible about these \ndiscoveries.  Usually there is some trade-off between these two desiderata \n--- the search for scope and the search for certainty.  \n\nIf 18th century mathematicians had demanded total rigor from Newton and \nLeibniz then there would probably be no calculus today, because neither \nof the two could explain calculus in a way that really made sense, since \nthey lacked the concept of a limit.  And in fact, because of the lack of \na rigorous foundation, they made a number of errors in their use of calculus. \nIt was only a hundred years later that Weistrass was able to give a solid \ngrounding for the ideas of Newton and Leibniz.  Nonetheless, what Newton \nand Leibniz did was undoubtedly science and mathematics gained a great \ndeal more from the application of their important ideas than it lost \nthrough the mistakes they made.  \n\nIn article <1993Apr14.171230.16138@kestrel.edu> king@reasoning.com \n    (Dick King) writes:\n>  [ Somebody writes: ]\n>>I doubt if Einstein used any formal methodology.  ....\n>  ....\n>He also proposed numerous experiments which if performed would distinguish a\n>universe in which special relativity holds from one in which it does not.\n>         ....\n>Einstein played by the rules, which demand that hypotheses only be put out\n>there if there exists a specific experiment that could disprove them.\n\nThese are not the rules according to many who post to sci.med and\nsci.psychology.  According to these posters  \"If it's not supported by\ncarefully designed controlled studies then it's not science.\"\n\nTaken to the extreme, I believe that the attitude that empirical studies \nare everything and ideas are nothing results in a complete stultification \nof science.  \n\nFor one thing, an insistence on an elaborate and expensive methodology \nresults in a sort of scientific trade-unionism, where those outside \nthe establishment and lacking institutional or corporate support have \nno chance to obtain a hearing.  (I don't in the least believe that this \nis the intention of the arbiters of scientific methodology.  Nonetheless, \nit is one of the results.)   And although institutional science has \ncertainly produced many wonderful results, I think it is a foolish \narrogance for scientists to believe that no one outside the establishment \n--- and using less than perfect empirical methodology --- will ever come \nwith anything worthwhile.  \n\nFurthermore, the big bucks approach to science promotes what I think is\none of the most significant errors in science:  choosing to investigate\nquestions because they can be readily handled by the currently\nfashionable methodology (or because one can readily get institutional\nor corporate sponsorship for them) instead of directing attention to\nthose questions which seem to have fundamental significance.\n\nFor instance, certain questions cannot be easily investigated with\nstatistical methods because the relevant factors are not quantitative.\n(One could argue that this is the case for almost all questions in many\nareas of psychology.  In my opinion, a perusal of many of the papers\nresulting from the attempt by psychologists to force these questions\ninto a statistical framework gives the lie to Russell Turpin's\nassertion that current scientific methods \"avoid all known errors.\")\n\nI think that asking the wrong question is probably the most fundamental \nerror in science.  (Ignoring potentially valuable ideas is one of the \nothers.)  And I think that scientific journals are full of all \ntoo many studies done with impeccable empirical methods but which are \nworthless because the wrong question was asked in the first place.  \n\n--\nIn the arguments between behaviorists and cognitivists, psychology seems \nless like a science than a collection of competing religious sects.   \n\nlady@uhunix.uhcc.hawaii.edu         lady@uhunix.bitnet\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2254, "properties": {"category": "alt.atheism", "text": "From: suopanki@stekt6.oulu.fi (Heikki T. Suopanki)\nSubject: Re: A visit from the Jehovah's Witnesses\nIn-Reply-To: jbrown@batman.bmd.trw.com's message of 5 Apr 93 11:24:30 MST\nLines: 17\nReply-To: suopanki@stekt.oulu.fi\nOrganization: Unixverstas Olutensin, Finlandia\n\t<1993Apr3.183519.14721@proxima.alt.za>\n\t<1993Apr5.112430.825@batman.bmd.trw.com>\n\n>>>>> On 5 Apr 93 11:24:30 MST, jbrown@batman.bmd.trw.com said:\n\n:> God is eternal.    [A = B]\n:> Jesus is God.      [C = A]\n:> Therefore, Jesus is eternal.  [C = B]\n\n:> This works both logically and mathematically.  God is of the set of\n:> things which are eternal.  Jesus is a subset of God.   Therefore\n:> Jesus belongs to the set of things which are eternal.\n\nEverything isn't always so logical....\n\nMercedes is a car.\nThat girl is Mercedes.\nTherefore, that girl is a car?\n\n-Heikki\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2255, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gamet@erg.sri.com (Thomas Gamet)\nSubject: keyboard specifications\nOrganization: SRI International, Menlo Park, CA\nLines: 35\n\nTo all hardware and firmware gurus:\n\nMy current home project is to build a huge paddle keyboard for a \nphysically handicapped relative of mine.  My goal is for this keyboard\nto look exactly like an AT sytle keyboard to its host system.\nThis will be a highly endowed keyboard with a Little PCL from Z World\nat its heart.  The only thing I lack is detailed information on the\nhardware signaling that the 486 (with  Windows 3.1  and DOS 5.0) will be \nexpecting.  My project is independant of Windows, my hope is that some of\nyou fellow Window's users/programmers will recognize what I need and be \nwilling to point me in the right direction. \n\nI have The Winn L. Rosch Hardware Bible (2nd edition).  The HB gives\nmost (if not all) of the information I will need concerning scan codes \nand even a wire diagram for the PS/2 style connector I will need, but it \nleaves a number of important questions unanswered.\n1.  Is it synchronous or asynchronous serial communication?  I'm\n    guessing synchronous since the host is providing a clock.  In either\n    event, how is the data framed?\n2.  Is it half-duplex or truly one way?  I'm guessing half-duplex\n    since the host can turn LEDs on and off.\n3.  Are there any chipsets available for communicating with the \"AT\n    keyboard standard\" (other than by cannibalizing a real keyboard)?\n\nIf anyone knows of a book or article (or any other written source of\ninformation) on the above, please advise me at gamet@erg.sri.com.\nWhatever I do it must be safe for I cannot afford to replace the 486 in\nthe event of a booboo.\n\nThank you for your time.\nDanke fuer Ihre Zeit.\n\nThomas Gamet (gamet@erg.sri.com)\nSoftware Engineer\nSRI International\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2256, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: Fighting the Clipper Initiative\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 24\nNNTP-Posting-Host: access.digex.net\n\n> > >As a flaming libertarian paranoid extremist (:-), I'at a loss for\n> > >specific objections that don't sound frighteningly technical.\n> >\n> >  The idea that foisting the Cripple Chip standard on US manufacturers would\n> >result in saying \"Sayonara\" to yet another high-tech market isn't technical,\n> >isn't in the least difficult to understand, and plays on a concern lots of\n> >people are worried about already....     \n>\n>  Could you expand on this...?\n\n\n  Simple -- if you have a choice between:\n\n 1. American manufacturers peddling Cripple Chips with a secret untested\n     algorithm whose keys are held by people with a history of untrustworthy\n     behavoir, or\n\n 2. Japanese (to pick the obvious example) manufacturers peddling encryption\n     chips with an algorithm that has faced public scrutiny and keys under\n     the control of the user,\n\nwhich would you choose?  At most, the American government can deny this\nchoice to American citizens (and probably not that, if the glorious success\nof the War on Drugs is any example); it can't do much about the global market.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2257, "properties": {"category": "soc.religion.christian", "text": "From: dhawk@netcom.com (David Hawkins)\nSubject: Need Help with \"They came for the Jews\" quote\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 19\n\nYears ago I grabbed the following from the net - maybe from this\nnewsgroup.  Does anyone know of a source for whether this is an\naccurate quote?   Thanks!  Bartletts leaves out the homosexual lines,\nbut they were one of the groups the Nazis tried to exterminate.\n===\nIn Germany, they first came for the communists,\nand I didn't speak up because I wasn't a communist.\nThen they came for the jews,\nand I didn't speak up because I wasn't a jew.\nThen they came for the trade unionists,\nand I didn't speak up because I wasn't a trade unionist.\nThen they came for the homosexuals, and I didn't speak up\nbecause I wasn't a homosexual.\nThen they came for the catholics, and I didn't speak up\nbecause I was a protestant.\nThen they came for me ---\nbut by that time there was no one left to speak up.\n\n                                    -- Pastor Martin Neimoller\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2258, "properties": {"category": "comp.graphics", "text": "From: ccgwt@trentu.ca (Grant Totten)\nSubject: MS-Windows graphics viewer?\nKeywords: ms windows jpeg gif tiff \nLines: 31\nReply-To: ccgwt@trentu.ca (Grant Totten)\nOrganization: Trent University\n\n\nHowdy all,\n\n\tI was wondering if people could e-mail me their opinions on\nthe various graphics viewers available for MS-Windows 3.x...  I'm\nworking on a project to set up our scanner and write documentation on\nhow to use it and it would be nice to have a snazzy image viewer \nto look at (and maybe even edit?) the image you just scanned.\n\nThe file formats I'm looking for:\n\nGIF\nJPEG\nTIFF\nPCX\nwhatever other 'major' file formats there are.\n\nThanks a lot for your help\n\nGrant\n\n--\nGrant Totten, Programmer/Analyst, Trent University, Peterborough Ontario\nGTotten@TrentU.CA            Phone: (705) 748-1653   FAX: (705) 748-1246\n========================================================================\nIn the days of old,\nWhen Knights were bold,\n\tAnd women were too cautious;\nOh, those gallant days,\nWhen women were women,\n\tAnd men were really obnoxious ...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2259, "properties": {"category": "soc.religion.christian", "text": "From: mussack@austin.ibm.com (Christopher Mussack)\nSubject: Re: Christian's need for Christianity\nLines: 44\n\nIn article <Apr.19.05.12.31.1993.29175@athos.rutgers.edu>, lmh@juliet.caltech.edu (Henling, Lawrence M.) writes:\n> In article <Apr.16.23.17.40.1993.1861@geneva.rutgers.edu<, mussack@austin.ibm.com writes...\n> << < For example: why does the universe exist at all?  \n> \n> <Whether there is a \"why\" or not we have to find it. This is Pascal's(?) wager.\n> <If there is no why and we spend our lives searching, then we have merely\n> <wasted our lives, which were meaningless anyway. If there is a why and we\n> ..\n>  I find this view of Christianity to be quite disheartening and sad.\n> The idea that life only has meaning or importance if there is a Creator\n> does not seem like much of a basis for belief.\n\nPlease forgive all the inclusions. I suppose they are neccessary to follow\nthe argument.\n\nMy point is that \"if life has meaning or importance then we should try\nto find that meaning or importance\" which is almost a tautology. (I hope\nI'm not being too patronizing.) One term for that meaning is \"Creator\",\nthough that is not obvious from my above argument.\n\n>  And the logic is also appalling: \"God must exist because I want Him to.\"\n\n(It's more like \"I think, therefore I am, therefore God is.\")\n\n>  I have heard this line of \"reasoning\" before and wonder how prevalent\n> it is. Certainly in modern society many people are convinced life is\n> hopeless (or so the pollsters and newscasts state), but I don't see\n> where this is a good reason to become religious. If you want 'meaning'\n> why not just join a cult, such as in Waco? The leaders will give you\n> the security blanket you desire.\n\nUnfortunately the term \"religious\" is ambiguous to me in this context.\nI could say that searching for meaning in life is by definition being\nreligious. I could say cult followers by definition have given up on \nthe search.\n\nIf you want \"meaning\" why not search for the truth?\n\nSo far, my understanding of Christianity is congruent with my understanding\nof truth. There have been many before me who have come to conclusions \nthat are worded in ways that make sense to me. By no means does that imply\nthat I understand everything. \n\nChris Mussack\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.104+0000", "event": "documents", "entityId": 2260, "properties": {"category": "comp.graphics", "text": "From: idr@rigel.cs.pdx.edu (Ian D Romanick)\nSubject: Re: Rumours about 3DO ???\nArticle-I.D.: pdxgate.7272\nOrganization: Portland State University, Computer Science Dept.\nLines: 20\n\nIn article <1993Apr15.164940.11632@mercury.unt.edu> mcmains@unt.edu (Sean McMains) writes:\n>\n>Wow! A 68070! I'd be very interested to get my hands on one of these,\n>especially considering the fact that Motorola has not yet released the\n>68060, which is supposedly the next in the 680x0 lineup. 8-D\n\nA 68070 is just a 68010 with a built in MMU.  I don't even think that Moto.\nmanufactures them.\n\n                                  - Ian Romanick\n                                    Dancing Fool of Epsilon\n\n[]--------------------------------------------------------------------[]\n | Were the contained thoughts 'opinions',     EPN.NTSC.quality = Best|\n | PSU would probably not agree with them.                            |\n |                                                                    |\n | \"Look, I don't know anything about                                 |\n | douche, but I do know Anti-Freeze                                  |\n | when I see it!\" - The Dead Milkmen                                 |\n[]--------------------------------------------------------------------[]\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2261, "properties": {"category": "rec.autos", "text": "From: bbenson@sscvx1.ssc.gov\nSubject: Re: mazda - just does not feel right\nLines: 24\nNntp-Posting-Host: sscvx1\nOrganization: Superconducting Super Collider Laboratory\n\nIn article <mxm1003.734826257@msi.umn.edu>, mxm1003@s15.msi.umn.edu (Ram V. Mohan) writes:\n> I've a 89 mazda 323 with about 42000 miles on it.  Recently I do not get\n> a good feeling of the road, esp. on a wet pavement when driving the car.\n> It feels as if the car is wandering and there is no grip on the road.\n> The tires are the original ones and have threads on them (passes the\n> penny head test).  I had the shocks and struts and alignment checked and\n> things are fine.  However I feel like that I dont have the grip of the\n> road and feel as if the car is wandering esp. on turns.  Any help\n> in this is appreciated.  Thanks.\n> \n\nTwo shots at it: (1) Check the tires again - if you can see the wear bars,\nyou're down to problem area (and some tires pass a penny test between the\nbars - that's no guide at all). Your problem in the wet is call hydroplaning.\nYou may not have enough tread left to channel water out from under the\ntire - so it goes fishy on you as it lifts off the road.\n\n(2) Tires age. In particular, soft tire compounds get harder as you put\nthem thru more heat cycles. Harder compounds don't grip as well as\nsoft ones. Effect is very noticable on tires that get very hot very\noften, such as in competition, but it hits all tires.\n\nBob Benson\n \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2262, "properties": {"category": "soc.religion.christian", "text": "From: hall@vice.ico.tek.com (Hal F Lillywhite)\nSubject: Re: Ancient Books\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 106\n\n{I sent in something on this before but I believe it got lost in the\nweekend accident the moderator described.  This is an improved\nversion anyway so no loss the first time.  HL}\n\nThe standard work on detecting forgeries of ancient documents \nis probably the writing of Friedrich Blass, \"Hermeneutrik und \nKritik,\" _Einleitende und Hilfsdisziplinen_, vol 1 of\n_Handbuch der Klassischen Altertums- wissenshaft_ (Noerdlingen:\nBeck, 1886).  Portions of this are described in Nibley, _The \nProphetic Book op Mormon_, pp 219-242 (SLC:  Deseret Book, 1989).\n(If you want to attempt reading this be forewarned.  Nibley\ndescribes Blass as a typical German scholar who claims little\nknowledge of his subject, then proceeds to exhaust both the subject\nand the reader.)  Nibley's extract from Blass's work is in the form\nof \"rules for forgers.\"  It makes interesting reading.\n\nI confess that I have not read Blass's work, only Nibley's extract\nthereof.  My German falls far short of what would be required and\nas far as I know there is no English translation available.  However,\nI believe the techniques he describes are known widely enough that \nany competent classical scholar could examine a purportedly ancient\ndocument and at least determine if it is consistent with what one \nwould expect of a genuine document of that time frame.  We will not \nbe able to prove who wrote it but at least we should be able to \ndetermine with reasonable confidence if it is from that time and \nculture or is a later forgery.\n\nActually there are 2 types of purportedly ancient documents:\n\n1.  Alleged actual holographs or early copies thereof.  For example\nthe Dead Sea Scrolls.  These can be tested by various scientific\nmeans to determine the age of the paper, inks, and objects found\nwith them.  This can provide a pretty clear dating of the actual\nphysical objects.\n\n2.  Documents claiming to be copies of ancient works although the\ncopy itself may be much more recent.  For example we might find a\ndocument which monks in a monastary claim is a copy of something\nfrom centuries ago (perhaps even having been through several\ngenerations of copists).  This is more of a problem but can still \nbe tested (although the test is not likely to be simple).  We cannot\nexpect a test of the age of the physical objects to tell us much so\nwe must confine our testing to the text itself.\n\nIt is important to remember that none of these tests can tell us if\nthe document is really what it claims to be.  They can only date the\ndocument and identify its culture of origin.  For example I've heard\nof a letter supposed to have been written by Jesus himself to a king\nin what is now Iraq.  If this document were to actually turn up\nscholars could date the paper and ink (assuming they have the\nholograph).  They could check the language, content and writing\nstyle to see if they are consistent with what would be expected of a\nPalestinian Jew of that time.  However even if all test results were\npositive there is no way to determine if Jesus himself actually\nwrote it.  We would know what time and culture it came from but\n(barring a known sample of Jesus handwriting or other clues for \ncomparison) scholarship must stop there.  There is seldom any way to\ndetermine who the actual author was.\n\nAs I say, I'm no expert on Blas's work.  I do remember some of the\ntests which can be applied to alleged copies of ancient works.  \nSpecifically we might ask:\n\n1.  Is the document internally consistent?  Does it contradict\nitself?  If the work it is short it would be relatively easy to \nmaintain internal consistency, even if it is a forgery.  The \nlonger the forgery the more difficult it is to maintain consistency.\nFor this reason most successful forgers stick to short documents.\n\n2.  Is it consistent with the history and geography of the time?\nAgain a short, non-specific work might not be testable but if the\nwriting is of any significant length no latter-day forger would be\nable to escape detection.  Here we look for the minor, inconspicuous\nthings which someone from that culture would get right without even\nthinking about it but which a later forger would find too numerous \nand trivial to check.  The devil is in the details.\n\n3.  What about the literary style of the work, figures of speech\netc.  Any ancient writer would almost certainly speak in ways that \nseem strange to us.  Are there any such odd phrases in this book?  \nIf so do they fit in with the culture?\n\nOf course there are complications if the document has been\ntranslated, or possibly even if somebody just updated language\nwhen he copied it.  A few cases of language not from the culture\nclaimed may be allowed in recent copies.  They cause problems and\nreduce certainty to be sure but don't necessarily prove forgery.\n\nThese tests can be quite effective (given enough material to work \nwith) but they are not easy.  They require the skills of the \nhistorian, the linguist, the anthropologist etc.  The questions to \nask are, \"Is every aspect of this document consistent with what we \nknow about the culture of claimed origin?\"  If there are things \nwhich don't fit how significant are they?  Are problem areas due to\nour lack of knowledge, later changes by copists or are they really \nsignificant?  There will often be some ambiguity since we never\nknow everything about the culture.\n\nThe end result of any such testing is occasionally certain\n(particularly in the case of holographs or other ancient copies).\nHowever often it may just be a probability or an indication that\nthe document (or maybe parts of it) is probably authentic (or\nsometimes maybe other parts are later additions).  This is often \nunsettling to a generation raised on TV where all problems are\nsolved in 30 to 60 minutes with time out for commercials.  It is, \nhowever, the real world and what scholarship has to offer.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2263, "properties": {"category": "rec.sport.baseball", "text": "From: sbp002@acad.drake.edu\nSubject: Re: Torre: The worst manager?\nLines: 26\nNntp-Posting-Host: acad.drake.edu\nOrganization: Drake University, Des Moines, Iowa, USA\n\nIn article <93095@hydra.gatech.EDU>, gt7469a@prism.gatech.EDU (Brian R. Landmann) writes:\n> Joe Torre has to be the worst manager in baseball.\n> \n> For anyone who didn't see Sunday's game,\n> \n> With a right hander pitching he decides to bench Lankform, a left handed\n> hitter and play jordan and gilkey, both right handers.\n> \n> Later, in the ninth inning with the bases loaded and two outs he puts\n> lankford, a 300 hitter with power in as a pinch runner and uses Luis\n> Alicea, a 250 hitter with no power as a pinch hitter.  What the Hell\n> is he thinking.\n\nEducate yourself before you rip on this years manager of the year.\nLankford injured himself in a previous game and Torre was resting\nhim.\n\nAs far as the Whitten/Gilkey controversy.  Whitten adds some more\nneeded power, and if Jordan continues to hit the way he has been,\nGilkey will find himself in the starting lineup soon enough.\n\nSam\n \n> Brian Landmann                                            \n> Georgia Institute of Technology                           \n> Internet:gt7469a@prism.gatech.edu                       \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2264, "properties": {"category": "soc.religion.christian", "text": "From: hayesstw@risc1.unisa.ac.za (Steve Hayes)\nSubject: Re: The arrogance of Christians\nOrganization: University of South Africa\nLines: 36\n\nIn article <Apr.16.23.18.07.1993.1879@geneva.rutgers.edu> phs431d@vaxc.cc.monash.edu.au writes:\n>But what if the geologists are wrong and these people are warning of a\n>non-existent danger?  Analogies can only push an argument so far (on both\n>sides).  Both Melinda's and yours assume the premises used to set up your\n>respective analogies are true and thus the correct conclusion will arise.\n>\n>The important point to note is the different directions both sides come from.\n>Christians believe they know the TRUTH and thus believe they have the right\n>(and duty) to tell the TRUTH to all.  \n>\n>Christians can get offended if others do not believe (what is self-evidently\n>to them) the TRUTH. Non-christians do not believe this is the TRUTH and get\n>offended at them because they (christians) claim to know the TRUTH.\n\nThe analogy does not depend on the premisses being true, because the \nquestion under discussion is not truth but arrogance. \n\nA similar analogy might be a medical doctor who believes that a blood \ntransfusion is necessary to save the life of a child whose parents are \nJehovah's Witnesses and so have conscientious objections to blood \ntransfusion. The doctor's efforts to persuade them to agree to a blood \ntransfusion could be perceived to be arrogant in precisely the same way as \nChristians could be perceived to be arrogant.\n\nThe truth or otherwise of the belief that a blood transfusion is necessary \nto save the life of the child is irrelevant here. What matters is that the \ndoctor BELIEVES it to be true, and could be seen to be trying to foce his \nbeliefs on the parents, and this could well be perceived as arrogance.\n\n============================================================\nSteve Hayes, Department of Missiology & Editorial Department\nUniv. of South Africa, P.O. Box 392, Pretoria, 0001 South Africa\nInternet: hayesstw@risc1.unisa.ac.za         Fidonet: 5:7101/20\n          steve.hayes@p5.f22.n7101.z5.fidonet.org\nFAQ: Missiology is the study of Christian mission and is part of\n     the Faculty of Theology at Unisa\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2265, "properties": {"category": "comp.windows.x", "text": "From: pyeatt@Texaco.com (Larry D. Pyeatt)\nSubject: Re: Mix GL with X (Xlib,Xt,mwm)\nNntp-Posting-Host: 211.2.1.197\nOrganization: Texaco\nLines: 36\n\nIn article <9304191540.AA09727@sparc1.jade.com>, graham@sparc1.ottawa.jade.COM (Jay Graham) writes:\n|> \n|> I am developing an X (Xt,Xm) application that will include a graphics window\n|> of some sort with moving symbols among other things.  A pure X application\n|> could be implemented with Motif widgets, one of which would be an \n|> XmDrawingArea for drawing with Xlib.  But I would like to take advantage of\n|> the Graphics Library (GL) available on our IBM RS/6000 (SGI's GL i believe).\n|> \n|> Is it possible to mix X and GL in one application program?\n|> Can I use GL subroutines in an XmDrawingArea or in an X window opened by me\n|> with XOpenWindow?\n\nThere is a widget already defined for GL.  It is the GlxMDraw (motif) or\nGlxDraw (athena) widget.  It is similar to a XmDrawingArea, except that it\nallows you to use GL calls to render into the window.  Look at glxlink,\nglxunlink, glxgetconfig, and glxwinset in the man pages.\n\n|> I have never used GL before, but the doc on GL winopen() says that the first\n|> time winopen() is called it opens a connection to the server.   Also, most of\n|> the GL calls do not require a Display or GC, unlike most X calls.  From this\n|> initial information it appears that X and GL cannot be mixed easily.   Is this\n|> true?\n\nThe GlxMDraw widget works pretty well.  OpenGL will be an improvement.\n\n|> Does PEX (graPHIGS?) have the same functionality of GL?\n\nI think GL is a little easier to use and a little more powerful, but\nthat's just an opinion.  Mileage may vary.\n\n\n-- \nLarry D. Pyeatt                 The views expressed here are not\nInternet : pyeatt@texaco.com    those of my employer or of anyone\nVoice    : (713) 975-4056       that I know of with the possible\n                                exception of myself.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2266, "properties": {"category": "rec.autos", "text": "From: welty@cabot.balltown.cma.COM (richard welty)\nSubject: rec.autos: Automotive Mailing Lists\nKeywords: Monthly Posting\nReply-To: welty@balltown.cma.com\nOrganization: New York State Institute for Sebastian Cabot Studies\nExpires: Thu, 20 May 1993 04:01:03 GMT\nLines: 166\n\nArchive-Name: rec-autos/part2\n\nAutomotive Mailing Lists (Electronic Mail, that is):\n\n[last updated 3/17/93; new lotus, exotic cars list subscription info;\n   added Portland, OR motorsports list, Corvair list, Triumph TR8 list -- rpw]\n\nThere are a number of electronic mailing lists on the network devoted to\nvarious special automotive topics.\n\nTo the best of my knowledge, all the lists appearing here have open\nmembership policies.  It is my policy not to list `closed' mailing lists\nhere.\n\nMost mailing lists provide separate addresses for administrative\nqueries and for general mail; where separate administrative\naddresses exist, I have listed those below, as the general addresses\nare not appropriate for inquirys and requests.\n\nAudi\n         (send requests to quattro-request@aries.east.sun.com)\n\nAutocross/Solo\n         (send requests to autox-request@hoosier.cs.utah.edu)\n\nBMW\n         (send requests to bmw-request@balltown.cma.com\n          both regular and digest forms available)\n\nBritish Cars\n         (send requests to british-cars-request@hoosier.cs.utah.edu)\n\nBuick Grand National/Regal/GNX\n         (send requests to gnttype-request@srvsn2.monsanto.com)\n\nCamaro/Firebird (GM F-body)\n         (send requests to f-body-request@boogie.EBay.Sun.COM)\n\nCorvair\n         (send requests to bryan@pegasus.mitre.org)\n\nCorvettes\n   there are two lists; the first is more of a competition oriented\n   list, and the second is more general in nature (or so i am told)\n\n   Competition:\n          (send requests to vettes-request@cimage.com)\n   General:\n          (send requests to vettes-request@compaq.com)\n\nDatsun/Fairlady Roadsters\n         (send requests to datsun-roadsters-request@hoosier.cs.utah.edu)\n\nDodge Stealth/Mitsubishi 3000GT\n\t(send requests to stealth-req%jim.uucp@wupost.wustl.edu)\n\nEclipse/Talon/Laser\n         (send requests to diginst!talon-request@radius.com)\n\nElectric Vehicles\n         (send requests to info-ev-request@ymir.claremont.edu)\n\nExotic-Cars\n\t (send requests to exotic-cars-request@sol.asl.hitachi.com)\n\nFabrication (race cars)\n\t (send requests to racefab-request@pms706.pms.ford.com)\n\nInternational Harvester (discussion of Scouts, pickups, etc.)\n\t (send requests to ihc-request@balltown.cma.com)\n\nItalian Cars\n\t (send requests to italian-cars-request@balltown.cma.com;\n          both regular and digest forms available)\n\nHondas\n         listserv@brownvm.brown.edu; use standard listserv subscription\n         procedure: the mail message body to listserv should be\n         \"sub HONDA-L your-real-name\" with no subject line in the header\n\nHot rods\n         (send requests to hotrod-request@dixie.com)\n\nLand Rovers\n\t (send requests to land-rover-owner-request@stratus.com)\n\nLotus\n\t (send requests to lotus-cars-request@netcom.com)\n\nMazdas\n         (send requests to mazda-list-request@ms.uky.edu)\n\nMiata\n         listserv@jhunix.hcf.jhu.edu; use standard listserv subscription\n         procedure: the mail message body to listserv should be\n         \"sub miata your-real-name\" with no subject line in the header\n\nMerkurs\n         (send requests to merkur-request@pcad.UUCP)\n\nMopar\n         (mostly high performance Chrysler, Dodge, Plymouth products.\n          send requests to mopar@casbah.acns.nwu.edu)\n\nMR2\n         (send requests to mr2-interest-request@validgh.com)\n\nMustangs\n   There are two lists, the first is for Mustangs through 1973,\n   the second for Mustangs from 1980 on.  nobody cares about\n   the Mustang II, so don't ask.\n\n   classic:\n         (send requests to classic-mustangs-request@hpfctjc.fc.hp.com)\n   modern:\n\t (send requests to mustangs-request@cup.hp.com)\n\nOffroad & 4X4\n         (send requests to offroad-request@ai.gtri.gatech.edu)\n\nPorsches\n\t (send requests to porschephiles-request@tta.com)\n\nPortland, Oregon Motorsports Activities\n         (send requests to pdxracer-request@reed.edu)\n\nRally\n         (send requests to rally-request@stratus.com)\n\nRX7\n\t (send requests to jjn@cblpf.ATT.COM)\n\nSaabs\n         (send requests to saab@network.mhs.compuserve.com)\n\nSaturn\n         (send requests to saturn-request@oar.net)\n\nSchool (high performance driving schools)\n         (send requests to school-request@balltown.cma.com)\n\nSentra SE-R, G20, N2000\n         (send requests to se-r-request@pencom.com)\n\nSupras\n         (send requests to supras-request@vicor.com)\n\nToyota\n\t (send requests to toyota-request@quack.sac.ca.us)\n\nTriumph TR7/V8, TR8\n         (send requests to jtc@ccwf.cc.utexas.edu)\n\nVolvos\n\t (requests to swedishbricks-request@me.rochester.edu)\n\nWheel-to-Wheel Racing\n         (forum for race drivers, workers, crew, and wannabes;\n          send requests to wheeltowheel-request@abingdon.sun.com)\n\nZ-Cars (Nissan/Datsun)\n         (send requests to z-car-request@dixie.com)\n-- \nrichard welty        518-393-7228       welty@cabot.balltown.cma.com\n``Nothing good has ever been reported about the full rotation of\n  a race car about either its pitch or roll axis''  -- Carroll Smith\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2267, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: food-related seizures?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 21\n\nIn article <116305@bu.edu> dozonoff@bu.edu (david ozonoff) writes:\n>\n>Many of these cereals are corn-based. After your post I looked in the\n>literature and located two articles that implicated corn (contains\n>tryptophan) and seizures. The idea is that corn in the diet might\n>potentiate an already existing or latent seizure disorder, not cause it.\n>Check to see if the two Kellog cereals are corn based. I'd be interested.\n\nYears ago when I was an intern, an obese young woman was brought into\nthe ER comatose after having been reported to have grand mal seizures\nwhy attending a \"corn festival\".  We pumped her stomach and obtained\nwhat seemed like a couple of liters of corn, much of it intact kernals.  \nAfter a few hours she woke up and was fine.  I was tempted to sign her out as\n\"acute corn intoxication.\"\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2268, "properties": {"category": "rec.sport.hockey", "text": "From: cobra@ravel.udel.edu (KING COBRA)\nSubject: Re: NHLPA poll (partial stats/results)\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nLines: 26\n\nIn article <ofnmaO_00iV1A6kYd2@andrew.cmu.edu> Young-Soo Che <yc25+@andrew.cmu.edu> writes:\n>All these people who send in their polls should take a closer look at\n>NJD, they are a very deep team, with two very capable goalies, and\n>excellent forwards and defensemen.  Shooter in Richer, an all around do\n>it all in Todd, chef Stasny-master of a thousand dishes, power play\n>captain-Stevens.  Take a look at the numbers, or play with them and see\n>for yourselves.\n\n  Yup. I agree with ya. I think Devils can beat Red Wings easily. SO I think\n  all those who send in their votes should try all these diffrent teams\n  before voting. I think Islanders and Quebec are much better then I had\n  expected.\n\n  COBRA\n\n\n\n*******************************************************************************\n**   ___  ____  ____  ____  ____  **                                         **\n**  /    /   / /___/ /___/ /___/  **   Sex is not the answer, sex is the     **\n** /___ /___/ /___/ / \\_  /   /   **   question. Yes is the answer.          **\n**                                **                                         **\n** E-mail: cobra@chopin.udel.edu  **                                         **\n**                                **                                         **\n*******************************************************************************\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2269, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Bruins vs Canadiens: Talentwise\nOrganization: University of Toronto Chemistry Department\nLines: 17\n\nIn article <1993Apr14.235849.15397@amc.com> richard@amc.com (Richard Wernick) writes:\n>The bottom line is the Bruins are the better team this year.\n>Montreal fans have been screaming for years that their beloved Canadiens deserve\n>another cup. Since the removal of the French Canadien rule, they have been screaming\n>foul. Welcome to league parity, something the rest of the league has had for years.\n>Even if the Habs do beat Boston in the playoffs, they won't get by the Pens.\n>I do agree with you, Boston is the more taleneted team.\n>\n\nThe French Canadian rule was an extremely short term feature when the\nuniversal draft was instituted in the sixties and only lasted for a\nfew years...and really didn't have any substantial effect during that\nperiod.  The Canadiens Stanley Cup achievements were earned on a\nlevel playing field.\n\nGerald\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2270, "properties": {"category": "sci.space", "text": "From: oreilly@olivia.la.asu.edu (Tom O'Reilly)\nSubject: Russian Phobos Mission\nOrganization: Mars Observer TES Project, ASU, Tempe AZ\nDistribution: sci.space\nLines: 11\n\nYes, the Phobos mission did return some useful data including images of Phobos\nitself. The best I've seen had a surface resolution of about 40 meters. By\nthe way, the new book entitled \"Mars\" (Kieffer et al, 1992, University of\nArizona Press) has a great chapter on spacecraft exploration of the planet.\nThe chapter is co-authored by V.I. Moroz of the Space Research Institute in\nMoscow, and includes details never before published in the West. Don't\nknow of any ftp sites with images though.\n\nTom O'Reilly\nDepartment of Geology\nArizona State University\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2271, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: downs@helios.nevada.edu (Lamont Downs)\nSubject: Re: Windows 3.1 keeps crashing: Please HELP\nLines: 18\nNntp-Posting-Host: cat.lv-lib.nevada.edu\nOrganization: UNLV\n\nIn article <1993Apr16.155637.15398@oracle.us.oracle.com> ebosco@us.oracle.com (Eric Bosco) writes:\n>From: ebosco@us.oracle.com (Eric Bosco)\n>Subject: Windows 3.1 keeps crashing: Please HELP\n>Date: Fri, 16 Apr 1993 15:56:37 GMT\n>\n>As the subjects says, Windows 3.1 keeps crashing (givinh me GPF) on me of  \n>late.  It was never a very stable package, but now it seems to crash every  \n>day.  The worst part about it is that it does not crash consistently: ie I  \n\nHave you tried setting FILES in your config.sys file to a fairly high\nnumber? (I've got mine set to 100; I've seen numbers from 40 to 100 \nrecommended). Also check your STACKS statement, STACKS=9,256 is a good\nstarting point. Try increasing it if it's already set there (such as\nto STACKS=12,256, etc.). Both STACKS and FILES have been identified as\n_one_ cause of frequent Win3.1 crashes.\n\nLamont Downs\ndowns@nevada.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2272, "properties": {"category": "soc.religion.christian", "text": "From: ss6349@csc.albany.edu (Steven H. Schimmrich)\nSubject: Looking for Christians in Urbana, Illinois...\nDistribution: usa\nOrganization: Department of Geological Sciences, SUNY at Albany\nLines: 12\n\n\n   I apologize if this post isn't entirely appropriate for the newsgroup.\n\n   I would like to correspond with any Christians attending the University\nof Illinois at Urbana-Champaign.  I will be transfering there in August to\ncomplete my Ph.D. and I thought it would be nice to correspond with people\nbefore I moved out.\n\n--\nSteven H. Schimmrich     Department of Geological Sciences         \"Non semper\nss6349@csc.albany.edu    State University of New York at Albany   ea sunt quae\nss6349@albnyvms.bitnet   Albany, New York 12222  (518) 442-4466   videntur.\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2273, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Allah Akbar and Praise the Lord.\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 15\n\nMaddi Hausmann (madhaus@netcom.com) wrote:\n: \n: And thank the Lord that Bill Connor has returned to set\n: us straight!  Now I know I can die happy when my Lexus\n: SE400 wipes out on that rain-slick curve in 1997.  The\n: rest of you had best straighten up, because your time \n: is even more limited.  Most of you are going in the Flu\n: of 1994.\n\nMaddi,\n\nYou know you're glad to have me visit ...\nBut I won't stay long this time, just shopping around.\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2274, "properties": {"category": "talk.religion.misc", "text": "From: daveb@pogo.wv.tek.com (Dave Butler)\nSubject: Re: NEW BIBLICAL CONTRADICTIONS [Fallaciously] ANSWERED (Judas)\nOrganization: Tektronix, Inc., Wilsonville,  OR.\nLines: 82\n\nI produced an error last week about CHORION:\n\n>> (By the way Mr DeCenso, you really should have looked in the index of your\n>> Bauer-Arndt-Gingrich Greek lexicon.  You would have found that the word in\n>> Acts for \"lot\" is \"kleros,\" not \"CHORION\" as stated by Mr Archer, and nowhere\n>> in the very large discussion of kleros in done the to \"Theological Dictionary\n>> of the New Testament\" by Bromley, is the meaning \"burial plot\" discussed.  It\n>> discusses the forms of \"kleros\" (eg: kleros, kleroo, etc), and the various\n>> meanings of \"kleros\" (eg: \"plot of land,\" and \"inheritance\"), but mentions\n>> nothing about CHORION or \"burial plot.\" (Why does this not surprise me?) Thus\n>> it would seem to be a very good thing you dumped Archer as a reference).\n> \n> I was wrong. I admit that I do not have a handle on Greek grammar, and thus\n> confused \"kleros\", the second to last word in Acts 1:17 as being the plot of\n> land discussed.  In actuality it is \"chorion\", which is the last word Acts\n> 1:18.  Unfortunately my Greek dictionary does not discuss \"chorion\" so I\n> cannot report as to the nuances of the word.\n\nI abhor publishing trash (I abhor it of myself even more than I do from\nothers, but since I do not present myself as an authority on the subject, I do\nnot feel dishonest, though I do openly admit ignorance and incompetence in\nthis example).  Thus I felt honor bound to do a better set of research\nspecifically on the word.  First it should be noted that Greek grammar is not\nas tough as I first assumed (it is not nontrivial by any means, and I still am\nnot competent with it, but it is not as opaque as I had thought).  It turns\nout that while the Index for the Bauer-Arndt-Gingrich \"Greek Lexicon\" renders\neach verse in order, each word within a verse is put in greek alphabetical\norder.  Thus while the the meaning of the verse is decipherable, the syntax is\nfar from clear.  On the other hand, a Greek-English Intralinear Bible makes\nthings a lot more comprehendable.  And yes, the word for field in Acts 1:18 is\nindeed \"chorion.\" \n\nNow I've checked several Greek-English lexicons:\n\n\t\"Greek English Lexicon of the New Testament,\" Louw and Nida\n\t\"Robinson's Greek and English Lexicon of the New Testament\"\n\t\"Greek English Lexicon of the New Testament,\" Grimm\n\t\"Word study Concordance,\" Tynsdale\n\t\"A Greek English Lexicon of the New Testament and other \n\t early Christian Writings,\" Bauer-Arndt-Gingrich\n\t\"The New Analytical Greek Lexicon,\" Perschbacher\n\nIn each case the meaning of the word Chorion was given variously as:\n\n\tA space, place, region, district, field, area, \"country place,\" \n\tland, farm, estate, \"a bit of tillage\", and similar meanings.\n\nNowhere do any of these books mention anything about \"grave.\" As some of these \nbooks go into great detail, I would be very surprised to find that these books \nare all inadequate and Mr Archer is the only competent scholar in Greek.  I \nthink it more likely that Mr Archer's investigations into \"contradictions\" to \nbe once again, as your friend said it, \"lacking in substance,\" and thus Archer \nis again shown worthless as an expert witness (By the way Mr DeCenso, I would \nhave honorably presented my results on this matter, even if I had found them\nto support Mr Archer's contentions). \n\nBy the way, among these lexicons, (eg: Robinson's) is the definition of\n\"agros,\" the word used in Matthew 27 to describe the field bought.  The word\n\"agros\" is defined as \"a field in the country.\" Chorion is specifically noted\nas a synonym to agros.  This is significant, as it is evidence of how silly\nBullinger's exegisis was, which stated that the word for \"field\" in Matthew\n(ie: agros) is different from the word for \"field\" in Acts (ie: chorion), and\nthus we must be talking about two different fields (Of course you already\nadmit how stupid Bullinger's exegisis is, but this was a small serendipity\nwhich drives the point home). \n\nSo as of now, unless Mr DeCenso show compelling reasons to believe otherwise\n(eg: a reputable scholar with reputable references), I consider this \nparticular issue closed.  See Mr DeCenso, now you can go on to answer\nquestions about the denials of Peter, the day of the Crucifixion, Tyre, and \nthe fact that the author of Matthew quoted from the wrong prophet in\ndiscussing the \"Potter's Field.\"\n \n\t\t\t\tLater,\n\n\t\t\t\tDave Butler\n\n    Precise knowledge is the only true knowledge, and he who does not teach\n    exactly, does not teach at all.\n\t\t\t\tHenry Ward Beecher\n\t\t\t\tAmerican Clergyman\n\t\t\t\tas recorded by George Seldes\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2275, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Accounts of Anti-Armenian Human Right Violations in Azerbaijan #012\nSummary: Prelude to Current Events in Nagorno-Karabakh\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 622\n\n     Accounts of Anti-Armenian Human Right Violations in Azerbaijan #012\n                 Prelude to Current Events in Nagorno-Karabakh\n\n        +---------------------------------------------------------+\n        |                                                         |\n        |  I saw a naked girl with her hair down. They were       |\n        |  dragging her. She kept falling because they were       |\n        |  pushing her and kicking her. She fell down, it was     |\n        |  muddy there, and later other witnesses who saw it from |\n        |  their balconies told us, they seized her by the hair   |\n        |  and dragged her a couple of blocks, as far as the      |\n        |  mortgage bank, that's a good block and a half or two   |\n        |  from here. I know this for sure because I saw it       |\n        |  myself.                                                |\n        |                                                         |\n        +---------------------------------------------------------+\n\n\nDEPOSITION OF TATYANA MIKHAILOVNA ARUTUNIAN (NEZHINTSEVA)\n\n   Born 1932\n   Train Conductor\n   Azerbaijani Railroad\n\n   Resident at Building 13/15, Apartment 27\n   Microdistrict No. 3\n   Sumgait [Azerbaijan]\n\nI hadn't lived very long in Sumgait, only eight years. I moved there from\nNovosibirsk. My son entered the Baku Nautical School, and so I transferred\nto Azerbaijan. Later I met someone and married him, and now my name is\nArutunian, my husband's name . . .\n\nThat there would be a massacre was not discussed openly, but there were hints \nand gibes, so to speak, at the Armenian people, and they were mocking the \nRussians, too. I was constantly aware of it at work, and not just this past \nyear. I couldn't find a definite place for myself in the pool at work because \nI, I'll just say it, couldn't steal, couldn't deceive, and couldn't be \ninvolved in bribe-taking. And when I asked for decent working conditions they \ntold me, \"Leave, don't keep the others from working, you aren't cut out for \nthis kind of work.\" And at work and around all the time I would hear gibes at \nthe Armenians, like \"The Turks had it right, they killed them all--the way\nthey've multiplied here they're making it hard for us to live,\" and \"Things \nwill be just fine if we get rid of them all.\" \"No problem, the Turks will \nhelp,\" they say, \"if we ask them, they'll rid Armenia of Armenians in half an \nhour.\" Well that's the way it all was, but I never thought, of course that it \nwould spill over into a bloody tragedy, because you just couldn't imagine it. \nHere we've been living under the Soviet government for 70 years, and no one \neven considered such an idea possible.\n\nBut I had been forming my own opinions, and in the presence of authoritative \npeople I would often ask, \"Where is this all leading, do people really not see\nwhat kind of situation is emerging here. The Russians are fleeing Sumgait, \nthere are very few of them left. Why is no one dealing with this, what's going\non?\" And when it all happened on the 27th and 28th, it became clear that \neverything had been arranged by someone, because what else are you to make of \nit if the First Secretary of the City Party Committee is marching ahead of the\ndemonstration with an Azerbaijani flag? I wouldn't be saying this now if I \nhadn't received personal confirmation from him later. Because when we were \nunder guard in the SK club on the 1st, he came to the club, that Muslimzade. \nThe women told me, \"There he is, there he is, that's Muslimzade.\" I didn't \nbelieve the rumors that he had carried an Azerbaijani flag. I thought that \nthey were just false rumors. I went over to him and said, \"Are you the First \nSecretary of our City Party Committee?\" He answers me, \"Yes.\" And I ask him, \n\"Tell me, did you really march ahead of that gang carrying an Azerbaijani \nflag, and behind you they were carrying denigrating signs, I don't know \nexactly what they said, but there was mention of Armenian blood?\" And he tells\nme, \"Yes, I was there, but I tried to dissuade them from it.\" Then I asked him\nanother question: \"And where were you when they were burning and slaughtering \nus? And he said, \"I. . . We didn't know what to do, we didn't know, we didn't \nanticipate that that would happen in Sumgait.\"\n\nComrade Mamedov, the First Deputy Chairman of the Council of Ministers of the \nAzerbaijani SSR, answered the same question for me: \"No, we actually didn't \nanticipate the slaughter in Sumgait. At that time we were trying to contain \nthe crowd of 45,000 in Baku that was preparing for a massacre.\" Those are his \nexact words, the ones he said in the office of the Council of Ministers of the\nArmenian SSR.\n\nAnd now, about the events themselves. Of course it's painful to discuss them, \nbecause it may seem that it's not true to someone else. Various rumors \nconcerning what happened are making the rounds: some are true, others aren't. \nBut unfortunately there are more true ones than false, because it was so \nhorrible: in our age, here in the space age, the age of science, the age of\nprogress, I don't know, if someone had told me this story, if I were living in\nor around Moscow, I wouldn't have believed it. Why not? Because it was really \na genocide, it was a massacre. That's genuinely what it was.\n\nFor example, on that day, the 28th--I didn't know about the 27th because my \nhusband and I were both sick, both of us had the flu, and we were in bed--on \nthe 28th our neighbor comes to our place and says, \"You're in bed? You don't \nknow anything about it? There was a demonstration in town, and after it they \nwere overturning Armenian cars and burning them. They were looking into cars \nand asking, 'Are you an Armenian?' If they answered in Armenian, then they \nturned the car over and burned it.\" This isn't made up, the wife of the Senior\nInvestigator of the Baku Ministry of Internal Affairs told us. He was \nreturning home from his dacha with his wife, Raisa Sevastyanova, she's my \nneighbor. She immediately came and told LIS that they had landed right in the \nmiddle of it, I don't know what to call it, the cavalcade of automobiles they \nwere stopping. He answered in Azerbaijani, they let them go, but they made him\nhonk the horn, they were kicking up a fracas. We didn't even believe it, and \nI said, \"Certainly that didn't happen, how can that be?\" And she said, \n\"Muslimzade was leading the crowd, and the Sputnik store was completely\nsmashed because most of the salespeople there are Armenians. And when he saw \nthat they had started breaking the glass in that store, he said, \"Don't break \nthe shop windows, don't destroy state property, but do whatever else you want.\n\" I didn't hear this with my own two ears, but it is a fact that the store was\ntorn up and the director of the store was beaten for employing Armenians \nalthough he's an Azerbaijani.\n\nWhile we were talking, all of a sudden right across from us . . . Sevastyanova\nis the first to look out the window and say, \"Look, there's a crowd out \nthere.\" And sure enough, when we looked out there we saw that the crowd had \nalready started wrecking the neighboring building. There was an Armenian \nfamily there, a woman and two girls. They lived across from us. I'm sorry, I \ndon't know the building number or the people's names, since we were in my \nhusband's apartment, in Microdistrict 8, and I lived in Microdistrict No. 3. \nThere was awful looting going on there at the time, the most hideous things \nwere going on there then. One building there, ours, was attacked twice, once \nwasn't enough for them. They returned to the places where they hadn't finished\nthe Armenians off. If an Azerbaijani family dared to conceal Armenians, they \nbeat the Azerbaijanis too. They also beat Russians, if it was Russians doing \nthe hiding. Because there were Russians among them, they said so on \ntelevision, there were people of various nationalities. But they didn't tell \nus why there were people of different nationalities. Because they wouldn't \nhave touched the Azerbaijanis if they hadn't dared to stick up for the \nArmenians and give them temporary shelter in their homes.\n\nAt the time I saw this from the window I was there, Sevastyanova was there, \nand so was my husband. We went out onto the balcony and saw a television fly \noff a balcony. All kinds of things, even a sofa. Then, when it was all down \nthere, they burned it up. Then we saw the crowd, and they were all oohing. At \nfirst I couldn't figure out what was happening. And later I told my husband, \n\"Lendrush, l think they're beating someone out there.\" And he answered, \"I \ndon't know, could be.\" Suddenly the crowd separated for a moment, and I saw \nit, and Raisa Sevastyanova saw it too. My husband had turned the other way, \nhe didn't see it. I saw a naked girl with her hair down. They were dragging \nher. She kept falling because they were pushing her and kicking her. She fell \ndown, it was muddy there, and later other witnesses who saw it from their \nbalconies told us, they seized her by the hair and dragged her a couple of \nblocks, as far as the mortgage bank, that's a good block and a half or two \nfrom here. I know this for sure because I saw it myself.\n\nThen the crowd rushed toward our building. We were standing there, and you can\nof course imagine what we were feeling. Were they going to kill us or not? And\nI also had the awful thought that they might torment me the way they tormented\nthat woman, because I had just seen that.\n\nI asked my husband. I gave him an axe and said, \"You kill me first, and then \nlet them do what they want with the corpse.\" But our neighbors, it's true, \ndefended us, they said, \"There aren't any Armenians in our entryway, go away, \nonly Muslims live here.\" Disaster missed us that time.\n\nBut at two o'clock in the morning a crowd of about 15 people, approximately, \ncame back to our place. My husband was already asleep. He can sleep when he's \nupset about something, but I can't. I was standing, running from balcony to \nbalcony. Our power was out, I don't remember for how long, but it was as \nthough it had been deliberately turned off. There were no lights whatsoever, \nand I was glad, of course. I thought it was better that way. But then I look \nand the crowd is at our balcony. This was at 2:15 in the morning. The first \ntime they were at our building it was 6:30, and now it was 2:15 in the \nmorning. But I never thought that that old woman on the first floor, the \nAzerbaijani, was awake and watching out, there were human beings among them \ntoo. So she goes out with a pail of garbage, as though she needed to be taking\ngarbage out at two o'clock in the morning. She used it as a pretext and went \ntoward those young people. They really were youngsters. From my balcony you \ncould see perfectly that they were young Azerbaijani boys. They spoke \nAzerbaijani. And when they came up to her she said, \"What do you want?\" And \nthey answered, \"We want the Armenian family that lives here\" [pointing toward \nthe second floor with their hands]. She says, \"I already told you, we don't \nhave any Armenians here, now leave, do you hear, this is an old Muslim woman \ntalking to you,\" and grabbed the hand of one boy who was trying to walk around\nher and enter the building anyway and started pushing him away. And so they \nseemed to listen to her. They were all very young, they started apologizing \nand left. That was the second time death was at our door.\n\nI forgot to mention about one other apartment, a man named Rubik lives there, \nI don't know him really, I knew his daughter, I mean I saw her around, but we \nreally didn't know them. But I do know that that guy who lives on the fourth \nfloor across from our entryway went to Chernobyl and worked there for eight \nmonths, to earn money. Can you imagine what that means? He risked his life to \nearn X amount of money in order to better his family. He bought new furniture \nand was getting ready to give his daughter's hand in marriage, but, alas,\neverything was ruined by those creeps and scoundrels. They threw everything \nout the windows, and the rest we saw from our balcony: how the neighbors on \nthe left and right ran into the apartment and carried off everything that \nhadn't already been smashed or taken. What is one to think of that? It means \nthat the parents in those families were in on it too. Unfortunately I came to \nbe of the opinion that it was all organized and that everything had been \nforeseen in advance: both the beating of the Armenians and the stripping of \napartments. Something on the order of \"We'll move the Armenians out and take \nover their apartments.\"\n\nI have worked honestly my whole life, you can check everything about me. I \ncame as a patriot from China, waited for nights on end in front of the \nConsulate General of the USSR, I came to my homeland as a patriot because I \nknew that the Party and the Komsomol were holy things. But when I saw in \nSumgait that there wasn't anything holy about them, that Party membership was \nbought, that Komsomol members joined only for personal gain, that there were \nno ideals, no ideas, God save me, everything was being bought and sold, I saw \nall of it and understood how they could allow that crap to go on like it did.\n\nI can't talk any more about it . . . the image of that beating . . . When I\nwent out of my own apartment--they picked us up under Soviet Army guard, they \nhad arrived from all over to suppress that gang--not only Armenians, but some \nRussian families and their children, too, came out of their apartments and\njoined us, because no normal person who had seen that could stay there with \nthe situation the way it was. And what's interesting is that when we left on \nthe buses I rode and thought that at least one group of people, for sure \npeople would basically rise to the situation, would have some compassion for \nthe Armenians, would somehow understand the injustice of what was done. But \nhaving analyzed and weighed the whole thing, once I calmed down, having \nthought it all through, I came to a conclusion that is shared by many people. \nIf a lot of Azerbaijanis didn't want their Armenian neighbors to be killed, \nand that basically depended on that Muslimzade--he said that he had wanted to \ncalm them down--then is it possible that he didn't have people at hand to whom\nhe could whisper at the last minute, \"Go and announce it on television: \nCitizens of Sumgait! Take what you can into your hands, let's protect our \nneighbors from this massacre?\" Those crowds weren't such that there was no \ncontrolling them. Basically they were unarmed. They didn't have firearms, \nmostly they had knives, they had all kinds of metal parts, like armature \nshafts, sharpened at the ends, special rocks, different to a degree that we \nnoticed them: there aren't rocks like those in Sumgait soils, they were \nbrought from somewhere, as though it were all specially planned. So as I was \nsaying, I weighed it all out and if any of our neighbors had wanted to defend \nus, why wasn't it arranged? It means that the government didn't want to do \nit. When the crowd was moving from the City Party Committee to the Sputnik, \nwhat, there was no way of informing Baku? No, there was no way, it turns out!\nThe crowd was doing violence in our microdistrict. I won't mention the things \nI didn't see myself, I'll only talk about the things I myself witnessed. They \nwere in Microdistrict 8 beginning at 6 o'clock in the evening, when I saw them\nfrom the other building, and they were somewhere else until mid-night or one \no'clock in the morning, because at 2:15 they came back to our building. They\nhadn't completely finished making their predatory rounds of Microdistrict 8. \nWhen they returned to our building I told my husband, \"Lendrush, now the \npolice are probably going to come, my God, now the authorities are probably \ngoing to find out and come to our aid.\" Well, alas, no, there were to be no \nauthorities, not a single policeman, not a single fireman, not a single \nambulance came while they were raging, as it turns out, as we later found out,\nbeginning on the Might of the 27th. There were dead people, ruined apartments,\nand burned autos: one car near the bus station, it was burned and overturned, \nit was probably there about four days, everyone saw it and what went on in \nBlock 45! Those who live there know, they saw from their balconies how they \nattacked the soldiers in the buses, how they beat those poor, unarmed\nsoldiers, and how on that square, I can't remember the name of it, where there\nis that fork coming from the bus station, that intersection, now I'm upset and\nI can't think of the name . . . there's a tall building there, a 9-story, and \nfrom the balconies there people saw that butchery, when the poor soldiers, \nwearing only helmets, with shields and those unfortunate clubs, moved against \nthat mob. And when they fell, those 12-to 14-year-old boys ran up and using \nstones, big heavy stones, beat them to death on their heads. Who could have \nguessed that something like that could happen in the Soviet Union and under \nthe Soviet government? The upshot is that this republic has not been under \nSoviet control for a long time, but no one wanted to pay any attention or get \ninvolved.\n\nIf you were to go and ask at my work many people would confirm that I tell the\ntruth, I've been struggling for truth for five years there already, the five \nyears that I worked at the Azerbaijani railroad. Some people there considered \nme a demagogue, others who knows what; some think I'm an adventure seeker, and\nsome, a prankster. But I wanted everything to be right, I would become\noutraged: how can this be, why is it people treat one another this way on a \nSoviet railroad, as though the Azerbaijani railroad were Azerbaijani property,\nor the property of some magnate, or some \"mafia\": If I want to, I'll get you \nout of here; If I want to, I'll get rid of you; If I want to, I'll do \nsomething else? And there's a black market price for everything, in the most \nbrazen way: a coach to Moscow costs so much, a coach on a local train costs so\nmuch. Once when I was complaining to the head of the conductor's pool, he had \nthe nerve to tell me, maybe you won't even believe this, but this, I'm afraid,\nI heard with my own ears: \"Tatyana, just how long can you fight for something\nthat you know will never have any effect? You're alone against everyone, so \ninstead why don't you give more money to the chief conductor, and everything \nwill go fine for you.\" I started to cry, turned, and left. What else could I \ndo, where else could I go to complain? I realized that everything was useless.\nAnd the root of the whole thing is that it all goes on and no one wants to see\nit. I filed a written complaint, and they ground it into dust, they destroyed \nit, I still have a copy, but what's the use? When the General Procuracy got \ninvolved with the investigation of the bloody Sumgait affair, in addition to \nthe information about what I saw, what I was a witness to, I gave testimony \nabout the mafia at the railroad. They accepted my petition, but I don't know \nif they're going to pursue it or not. Because, you'll excuse me, I no longer \nbelieve in the things I aspired to, the things I believed in before: It's all \ndead. They just spit on my soul, stomped on everything, physically, and most \nimportant, spiritually, because you can lose belongings, that's nonsense, that\nall comes with time, but when your soul is spit upon and when the best in \nyou--your beliefs--are destroyed, it can be very difficult to restore them...\n\nI want to tell of one incident. I just don't know, at the time I was in such a\nstate that I didn't even take minor things into account. Here is an example.\nOf course, it's not a minor one. My neighbor, Raisa Sevastyanova, she has a\nson, Valery, who is in the 9th grade in a school in Microdistrict 8. A boy,\nVitaly [Danielian], I don't know his last name, goes to school with him, or\nrather, went to school with him. I was just sitting in an apartment trying to\nmake a phone call to Moscow . . . Oh yes, and there's one important detail:\nWhen the massacre began, for two to three hours the phones weren't working in \nArmenian apartments, and later, in several Russian and Azerbaijani apartments.\nBut the fact of the matter is that service was shut off, you could not call \nanywhere. Why? Again, it means it was all planned. How come service is cut off\nfor no reason? And the lights went off. And those brats were raging as they\nliked They weren't afraid, they ran about freely, they that no one would slap \ntheir hands and no one would dare to stop them.  They knew it.\n\nNow I'm going to tell about the incident. So this little Vitaly, Vitalik, an\nArmenian boy, went to school with Valery; they were in the same class. \nAccording to what Valery and his neighbor pal said--at the time I was in the\nsame apartment as they were, I sat at the phone waiting for the call to be put\nthrough--a mob attacked the building where Vitalik lived. So Valery ran to\nhis mother and said, \"Mamma, please let me go to Vitalik's, what if they kill\nhim? Maybe he's still alive, maybe we can bring him here and save him somehow.\n. . . He's a nice guy, we all like him, he's a good person, he's smart.\" His \nmother wouldn't let him go. In tears, she says, \"Valery, you can't go because \nI am afraid.\" He says, \"Mamma, we can get around the crowd. We'll just watch, \njust have a look.\" They made it through. I don't know, I think Vitalik's\nparents lived in Microdistrict No. 1, and when they got there, they made a \nsuperficial deduction. Knowing that balconies and doors were being broken \neverywhere, that you could see from the street which were the Armenian \napartments in the building, they went here and there and looked, and saw that \nthe windows were intact, and so they calmed down. But even though the windows \nin that apartment were not broken, everything inside was totally smashed, and \nVitalik lay there with a broken skull, and his mother and father had already \nbeen murdered. Little Vitalik didn't even know they were dead. So two weeks \nago, I don't know, he was in critical condition, no, maybe it was longer: we \nleft Sumgait on March 20, spent some time in Moscow, and then we came to \nYerevan. So it's been about a month already; it's so hard to keep all this \nstraight. So Valery, the next day, when he found out that Vitalik's family has\nbeen killed and Vitalik was ling in the Semashko Hospital in Baku, Valery and\nhis classmates got together and went to visit him. But they wouldn't admit \nthem, telling them that he was in critical condition and that he was still in \na coma. They cried and left, having also found out that the girl I saw being \nkicked and dragged was in that hospital too. As it turns out she was brought \nthere in serious condition, but at least she was alive at the time . . .\n\nWhen we got to the SK club we would see first one friend and then another, \nthrow ourselves into their arms and kiss them, because you had wondered if \nthese friends were alive or not, if those friends were alive or not  . . . And\nwhen you saw them you were so glad to find out that the family had lived! When\nyou saw people you heard things that made your hair stand on end.\n\nIf you publish everything that happened it will be a hideous book. A book of \nthings it is even difficult to believe. And those two girls who were raped \nwere entirely black and blue, the ones at the SK, they know I'm not lying, \nthat girlfriend came up to one of them and said, \"What happened?\" and she \nbared her breasts, and they were completely covered in cigarette burns . . . \nthose rogues had put cigarettes out on her breasts. After something like that \nI don't know how you can live in a city and look at the people in it.\n\nNow . . . When we stayed at the military unit for a while, they provided,\nwell, basic conditions for us there. The military unit is located in Nasosny,\nsome six miles from Sumgait. And living there we met with a larger group\nof people. There were about 1,600 people at the unit. You know, there was a\npoint when I couldn't even go outside because if you went outside you saw\nso much heartbreak around you. And when you hear the false rumors . . .\n\nYes, by the way, false rumors were spread in Sumgait saying that the Armenians\naround Yerevan had destroyed Azerbaijani villages and razed them to the ground\nwith bulldozers. I didn't know whether to believe it or not. And people who \ndon't know any better get the idea that it was all done in revenge. But when \nI arrived in Armenia and was in Spitak, and in Spitak all those villages are \nnot only intact, but at that time had even been protected just in case, they \nwere guarded, they got better food than did the inhabitants of Spitak. Not a \nsingle person there died, and no one is planning to harm them. Around Yerevan \nall the villages are safe and unharmed, and the Armenians didn't attack \nanyone. But actually, after an evil of the magnitude suffered in Sumgait there\ncould have been a feeling of vengefulness, but no one acted on it. And I don't\nknow why you sometimes hear accusations to the effect that the Armenians are \nguilty, that it is they who organized it. Rumors like that are being spread in\nAzerbaijan. And if one old person says it and ten young ones hear it, they not\nonly perceive it with their minds, but with their hearts, too. To them it \nseems that the older person is telling the truth. For example, one says; \"Did \nyou know that out of 31 people killed (by the way, originally they said 31 \npeople, but later they found a 32nd), 30 were Azerbaijani and one was an \nArmenian?\"\n\nOf course I'm upset, but it's utterly impossible to discuss such things and\nnot become upset. Sometimes l forget things, but I know I want to return to\nthe time when we were in the SK club across from the City Party Committee.\nWhen I saw Muslimzade in the SK club building I went to him to ask because I \ncouldn't believe that he had marched in the front carrying a banner. I already\nmentioned this, and if I repeat anything, please excuse me. I asked him, \"Why \ndid you do that and why are you here now, why did you come here? To laugh at \nthese women who are strewn about on the floor?\" The overcrowding there was \ntremendous, it was completely unsanitary, and several of the children were\nalready sick. It's true the troops tried to make it livable for us. They \ncooked for us on their field stoves and provided us with wonderful food, but \nthe thing is that their main job was to ferret out the gang that was still at \nit everywhere, that was continuing its sordid affairs everywhere. Plus they \nwere never given any direct orders, they didn't know what they were authorized\nto do and not to do. And it was only on March 8 at five o'clock in the evening\nthat Krayev himself, the Lieutenant General, the City Commandant of Sumgait, \nwas given full authority and told everyone over a microphone from an armored \npersonnel carrier that now he could do what he wanted to do, as his heart \nadvised him, and relocate people to the military unit.\n\nBut that's not what I want to talk about now. Muslimzade, characteristically, \ntried to get me out of the SK building and take me to the City Party\nCommittee, which is across the square from the club. He took me by the\nhand and said, \"Citizen, don't worry, we'll go and have a talk in my office.\nI told him, \"No, after everything you've done, I don't believe one iota of \nwhat you say. If I go to the City Party Committee I'll disappear, and the \ntraces of me will disappear too. Because you can't stand it when . . . \" Oh \nyes, and there was another interesting detail from that meeting. It was even \nvery funny, although at the time I wasn't up to laughing. He was in a nice, \nexpensive hat, and so as to put him to shame, so to speak, I said, \"Oh, why \ndid you come here all duded up like a London dandy, you smell of good perfume,\nyou're in your starched shirt, and you have your expensive hat on. You came\nto ridicule the poor women and children who are lying on the floor, who are\nalready getting sick, whose relatives have died. Did you come to laugh at\nthem?\" And the one who was accompanying him, an Azerbaijani, I don't know who \nhe was or what his title was, he quickly snatched the hat off Muslimzade's head \nand hid it. Then I said, \"My God! We're not marauders. We're not you! We \ndidn't come to you with the intention of stealing!\" \"Well kill me, kill me!\" \nMuslimzade says to me, \"But I'm not guilty . . . kill me, kill me, but I'm not\nguilty.\" And I say, \"OK, fine, you're not guilty, have it your way. But give \nus an answer, we're asking you: Where were you when they were torturing and \nraping those poor women, when they were killing the children, burning things, \ncarrying on outrageously, and wrecking all those apartments? Where were you \nthen?\" \"You know, we didn't expect it, we did not know what to do, we didn't \nanticipate that something like that would happen in Sumgait.\" I started \nlaughing and said, \"It's truly funny.\" He says, \"What could I do? We didn't \nknow what to do.\" And I say, \"I'm sorry, but it'll be ridiculous if I tell \nyou: The First Secretary of the City Party Committee shouldn't march out in \nfront with a banner; he should fall down so that the gang would have to cross \nover his dead body. That's what you should have done. That's the way it was \nduring the war. Not a single party committee secretary compromised himself;\neither he died or he led people into battle. And what did you do? You ran \naway, you left, you hid, you marched with a flag, because you were afraid, \nexcuse my language, you feared for your own damned hide. And when we ask you, \nyou tell us that you got confused and you ask me what you could have done? \nThat's right,\" I told him, \"the City party committee got confused, all the \nparty committees got confused, the police got confused,. Baku got confused, \nthey all lay in a faint for two weeks, and the gang ran the show with \nimpunity. And if it weren't for the troops it wouldn't have been just two \ndays, there wouldn't be a single Armenian left in Sumgait for sure, they would \nhave finished their bloody affair, because they brazenly went up to some \nRussians, too, the ones who tried to say something to them, and they told \nthem, 'As soon as we finish with the Armenians we'll come after you, too.\"\n\nAnd by the way, there was a colonel, who took us to the military unit. He was\nthe one with the light blue collar tabs who flew in and two hours later\narrived on an armored personnel carrier when we were at the  SK and took us to\nthe military unit and who later started moving us from the military unit. We \nasked him, \"What? How? What will come of us?\" He openly said, \"You know, for \nus the main thing now is to catch that gang. We'll finish that quickly. You'll\nstay at the military unit for the time being, and we'll decide later.\" The \nGeneral Procuracy of the USSR arrived, it consists of investigators from all \ncities. There were some from Stavropol, from everywhere, just everywhere, because \nthe affair was truly frightful. About this, by the way, Comrade Katusev spoke;\nas everyone knows, he's the First Deputy General Procurator of the USSR. When \nhe gave us a speech from the armored personnel carrier at the military unit, \nby the way, he told us the honest truth, because he couldn't not say it, \nbecause he was still experiencing his first impressions of what he had seen, \nand he said, \"There was Afghanistan; and it was bad, but Sumgait--it's\nhorrible! And the people who dared to do such a thing will be severely \npunished, in accordance with our laws.\" And that's a quote. Then one mother \nthrows herself at him--her two sons had died before her very eyes--and says,\n\"Who will return my sons? Who is going to punish the [culprits]?\" They tried \nto calm her down, and he said, \"In order for us to conduct a proper \ninvestigation, in order that not a single scoundrel avoid responsibility, you \nmust help us, because we don't know, maybe there was someone else in the gang \nwho is now being concealed in homes, and maybe the neighbors know, maybe \nsomeone saw something. Don't be afraid, write about it in detail. So that \nyou're not afraid . . . Everyone knows that many of you are afraid, having \nlived through such horrors, they think that if they write the whole truth \nabout, let's say, their neighbor or someone else, that they will seek revenge \nlater. We're going to do it like this: We're going to set up an urn and you \ncan throw what you write in there. We don't need to know who wrote it. The \nnames of the people who write won't be made public, but we need all the\ninformation. Let each and every one not be afraid, let each write what is \nnecessary, who they saw in that gang, who made threats or shouted threatening \ngibes about the Armenians . . . You must describe all of these people and put \nthe information into the urn.\"\n\nTwo soldiers and a major guarded the urn. And, sure enough, many people, \npeople who didn't even want to write . . .I know one woman who asked me, she \ncame up and said, \"You, as a Russian, the same thing won't happen to you as \nwill happen to me. So please . . . I'll give you the information, and you \nplease write it down for me.\" So she was afraid, and there were a lot like\nher . . . But later, after Katusev made his speech, she sat and wrote down\neverything she knew. And we threw it all into the urn. Now we don't know if \nit will be of any use. For a factual picture will emerge from all that \ninformation. One person can lie, but thousands can't lie, thousands simply \ncan't lie. You have to agree with that, a fact is a fact. Why, for example, \nshould someone say that black is white if it is really black?\n\n   The First Deputy Chairman of the Council of Ministers of the Azerbaijani\nSSR, Mamedov, as I said, was in Yerevan. My husband and I were at the Council \nof Ministers of the Armenian SSR and found out that Mamedov was present, the \none who had come to convince the people of Sumgait to  return to their \nprevious dwellings, to their old apartments. We asked for a meeting with him, \nand it was granted. When we went to see him he tried to behave properly, very \npolitely, delicately, but . . . when the truth was told right to his face and \nwhen I asked him some of the same questions I had asked Muslimzade, \"Where were\nyou personally when they were beating us? Now you're trying to convince us to \nreturn, why didn't you think at the time that they were slaughtering us where \nit was all leading?\" he says, \"You're telling the truth. Let's not mince \nwords. You've told me right to my face, and I'll tell you straight. I'll tell \nyou the pure truth. I was gotten out of bed in the evening, the whole \ngovernment was up, including me, and we were restraining a crowd of about \n45,000 in Baku. But we never expected that in a city like Sumgait, with its \nfine international record, such a thing could happen. We expected it in Baku.\"\nI say, \"So that means you expected it all the same? Why were you expecting \nit?\" And he says, \"You know, it just happened that way. We were expecting it \nin Baku, we were trying to restrain it, but in Sumgait . . . \" I say, \"Fine, \nyou didn't know for the first three or four hours, but then you should have \nknown. Why did no one help us?\" And he says, \"Well, OK, we didn't know what to\ndo\" and things like that. Basically it was the same story I got from \nMuslimzade. Later, when he said, \"You go on back, the situation in Sumgait is \nfavorable now, everything is fine, the Armenians are friendly with the \nAzerbaijanis . . . \" To this l answered, \"You know what . . . I'm speaking \nwith you as a [member of a] neutral nation . . . I have never argued with \nArmenians or with Azerbaijanis and I was an eyewitness . . . You tell me, \nplease, Comrade Mamedov, \" I asked him, \"What would you say about this\nhonestly, if you were being completely frank with us?\" Then he said, \"Yes, I \nadmit that I am honestly ashamed, shame on the entire Azerbaijani nation, we \nhave disgraced ourselves not only before the entire Soviet Union, but before \nthe whole world. Because now the Voice of America and all the other foreign \nradio stations of various hues are branding us with all kinds of rumors, too.\"\nAnd I say, \"There's nothing to add to what really happened. I don't think it's\npossible to add anything more awful.\" He says, \"Yes, I agree with you, I \nunderstand your pain, it is truly an unfortunate occurrence.\" I repeat that he\nsaid \"unfortunate occurrence.\" And then he suddenly remembered himself, what \nhe was saying--he had a pen in his hands, he was fidgeting with it nervously--\nand said, \"Oh, excuse me, a tragedy, really . . . \" I take this to mean that \nhe really thinks it's an \"unfortunate occurrence.\" \"And of course,\" he says, \n\"I understand that having gone through all this you can't return to Sumgait, \nbut it's necessary to cool down and realize that all those people are being \ntried.\" And he even gave a detail, which, I don't know if it matters or not, \nthat 160 policemen were being tried. Specifically in relation to that bloody \naffair.\n\nYes, by the way, there is another good detail, how I was set up at work in\nBaku after the events. I went to an undergarment plant, there was an \nAzerbaijani working there, and suddenly she tells me, \"What, they didn't\nnail your husband? They screwed up.\" I was floored, I hadn't imagined that\nanyone in Baku, too, could say something like that. Well after that I went up\nto see . . . to my office, I needed to find out about those days, what was\ngoing to happen with them, how they were going to put down those days from \nFebruary 29 to March 10 . . . and the administrator told me, \"I don't know, \nTatyana, go to the head of the conductors' pool. Be grateful if they don't \nput it down as unexcused absence.\" I was really discouraged by this. They all \nknow that we were but a hair away from death and barely survived, and here \nthey're telling me that I was skipping work, as though I was off enjoying \nmyself somewhere. I went to the office of the chief of the pool, his last name\nis Rasulov, and he's had that position for many years. Incidentally, he's a \nParty member, and is a big man in town. And suddenly, when I went to him and \nsaid, \"Comrade Rasulov, this is the way it was . . . \" He looked at me askance\nand said, \"And why are you\"--he knows me by my previous last name--\"why did\nyou get wrapped up in this mess?\" I say, \"What do you mean, why did I get \nwrapped up in this mess? My husband's an Armenian,\" I tell him, \"I have an \nArmenian last name.\" And he screwed up his face, made a kind of a grimace, as \nthough he had eaten something sour, and said, \"I didn't expect that you would\n. . . \" What did he mean by that? And \"how\" should he behave, the chief of the\npool, a man who supervises 1,700 workers? Now, it's true, there was a \nreduction, but for sure there are still 1,200 conductors working for him. And \nif someone who supervises a staff that size says things like that, then what \ncan you expect from a simple, uneducated, politically unsophisticated person?!\nHe's going to believe any and all rumors, that the Armenians are like this, \nthe Armenians are like that, and so on . . .\n\nBy the way, that Mamedov--now I'm going back to Mamedov's office when I asked \nhim \"Are you really going to guarantee the safety of our lives if we return \nto Sumgait?\" he answered, \"Yes, you know, I would guarantee them . . . I don't\nwant to take on too much, I would guarantee them firmly for 50 years. But I \nwon't guarantee them for longer than 50 years.\" I say, \"So you've got another\nthing like that planned for 50 years from  now? So they'll be quiet and then \nin another 50 years it'll happen again?!\" I couldn't contain myself any more,\nand I also told him, \"And how did it get to that point, certainly you knew\nabout it, how they were treating the Russians, for example, in Baku and in \nSumgait, how they were hounded from their jobs? Certainly you received\ncomplaints, I wrote some myself. Why did no one respond to them? Why did \neveryone ignore what was going on? Didn't you prepare people for this by the \nway you treated them?\" And he says, \"You know, you're finally starting to \ninsult me!\" He threw his pen on the desk. \"Maybe now you'll say I'm a \nscoundrel too?\" I say, \"You know, I'm not talking about you because I don't \nknow. But about the ones who I do know I can say with conviction, yes, that \ncomrade was involved in this, that, and that, because I know for certain.\n\"Well anyway he assured us that here, in Yerevan, there were false rumors, \nthat 3,000 Sumgait Armenians were here, and 15,000 were in Sumgait and had \ngotten back to work. Everyone was working, he said, and life was very good. \n\"We drove about the town ourselves, Comrade Arutiunian [First Secretary of \nthe Communist Party of Armenia SSR] came from the Council of Ministers of \nArmenian, he came and brought information showing that everything was fine in\nSumgait.\" When I asked Mamedov how he had reached that conclusion he said, '\n\"Well, I walked down the street.\" And I said, \"Walking down the street in any \ncity, even if I were to go to New York, I would never understand the situation\nbecause I would be a guest, I don't have any contact with people, but if you \nspend 10 days among some blue-collar workers in such a way that they didn't \nknow you were the First Deputy Chairman of the Council of Ministers, you'd \nhear something quite different.\" I told him, for example, that I drew my \nconclusion when we left the military unit to look at our apartments. They took\nus all in turns to pick things up, since people had fled to the military unit;\nthey got on the bus just to save themselves as soon as possible. How are the \nneighbors in the microdistrict, how will they view us, what do they think? I \nthought maybe that in fact it wasn't something general, of a mass nature, some\nanti-national something. And when that bus took us to our building, because it\nwas the same bus, while we were going up to our apartment, an armed soldier \naccompanied us. What does that say? It speaks of the fact that if everything \nthere were fine, why do we need to have soldiers go there and come back with\nus, going from apartment to apartment? And in fact, especially with the young \npeople, you could sense the delight at our misfortune, the grins, and they \nwere making comments, too. And that was in the presence of troops, when police\ndetachments were in the microdistricts and armored personnel carriers and \ntanks were passing by. And if people are taking such malicious delight when \nthe situation is like that, then what is it going to be like when they \nwithdraw protection from the city altogether? There will be more outrages, of \ncourse, perhaps not organized, but in the alleys . . .\n\n  April 20, 1988\n  Yerevan\n\n\t\t     - - - reference - - -\n\n[1] _The Sumgait Tragedy; Pogroms against Armenians in Soviet Azerbaijan,\n    Volume I, Eyewitness Accounts_, edited by Samuel Shahmuradian, forward by\n    Yelena Bonner, 1990, published by Aristide D. Caratzas, NY, pages 166-177\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2276, "properties": {"category": "talk.politics.guns", "text": "From: starr@genie.slhs.udel.edu (Tim Starr)\nSubject: Re: Ban All Firearms !\nOrganization: UDel: School of Life & Health Sciences\nLines: 19\n\nIn article <C5D42C.88K@undergrad.math.uwaterloo.ca> papresco@undergrad.math.uwaterloo.ca (Paul Prescod) writes:\n}\n}>  Drugs are banned, please tell me when this supply will dry up?\n}\n}Drugs are easier to manufacture, easier to smuggle, easier to hide.\n}\n}No comparison.\n\nYou, sir, are an ignorant fool who knows nothing about either the drug\nbusiness or the gun business.\n\nTim Starr - Renaissance Now!\n\nAssistant Editor: Freedom Network News, the newsletter of ISIL,\nThe International Society for Individual Liberty,\n1800 Market St., San Francisco, CA 94102\n(415) 864-0952; FAX: (415) 864-7506; 71034.2711@compuserve.com\n\nThink Universally, Act Selfishly - starr@genie.slhs.udel.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2277, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: White House Wiretap Chip Disinformation Sheet\nKeywords: Big Bubba Is Watching.\nArticle-I.D.: qualcom.rdippold.735041031\nOrganization: Qualcomm, Inc., San Diego, CA\nLines: 10\nOriginator: rdippold@qualcom.qualcomm.com\nNntp-Posting-Host: qualcom.qualcomm.com\n\nwcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705) writes:\n>Fascinating.  Most of the content of the White House announcements was\n>in what was *not* said.  It gives us almost nothing of value, threatens to\n>take away a lot, and does it with a sincere smile on its face,\n>and the nice friendly word \"Management\".\n\nThe computer, err, government, is your friend.  Have a nice day (under\npenalty of law).\n-- \nTo refuse praise is to seek praise twice.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2278, "properties": {"category": "misc.forsale", "text": "From: ginkgo@ecsvax.uncecs.edu (J. Geary Morton)\nSubject: TI-95 PROCALC + MODULES for sale\nOrganization: UNC Educational Computing Service\nLines: 17\n\n\nTEXAS INSTRUMENTS TI-95 PROCALC new in box w/manuals\n\nalso\n\nTEXAS INSTRUMENTS TI-95 STATISTICS LIBRARY MODULE FOR PROCALC\nnew in box w/manual\n\nand\n\nTEXAS INSTRUMENTS TI-95 CHEMICAL ENGINEERING MODULE FOR PROCALC\nnew in box w/manual\n\nall for $100.00 + shipping\n\ncontact Geary Morton <ginkgo@uncecs.edu>\nphones: 919-851-6565(h) 919-549-7017(w)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2279, "properties": {"category": "rec.autos", "text": "From: jwg@SEDV1.acd4.acd.com (jwg)\nSubject: Re: WARNING.....(please read)...\nIn-Reply-To: bh@anarres.CS.Berkeley.EDU's message of 20 Apr 93 17:50:58 GMT\nOrganization: /u/jwg/.organization\n\t<rfelixC5sJpE.Bq8@netcom.com> <1r1d62$d6s@agate.berkeley.edu>\nLines: 21\n\nIn article <1r1d62$d6s@agate.berkeley.edu> bh@anarres.CS.Berkeley.EDU (Brian Harvey) writes:\n\n   rfelix@netcom.com (Robbie Felix) writes:\n   >How about the thousands of kind teenagers who volunteer at local\n   >agencies to help children, seniors, the homeless?\n\n   Hear, hear!  Thanks, Robbie.\n\n   You also don't read that much about violence *against* teenagers, such as\n   George Bush burying alive tens of thousands of unarmed Iraqi 17-year-olds,\n   who were trying to surrender, with bulldozers.\n\n\nI didn't know George Bush could drive a bulldozer.\n\n\n\nKee-ripe.\n\njim grey\njwg@acd4.acd.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.105+0000", "event": "documents", "entityId": 2280, "properties": {"category": "rec.sport.hockey", "text": "From: dwk@cci632.cci.com (Dave Kehrer)\nSubject: Individual Winners (WAS: Re: WHERE ARE THE DOUBTERS NOW? HMM?)\nSummary: my picks\nOrganization: Northern Telecom, Inc. - Network Application Systems\nLines: 45\n\nWell, since you mentioned it...\n\nIn article <1993Apr12.142028.6300@jarvis.csri.toronto.edu>, migod@turing.toronto.edu (Mike Godfrey) writes:\n  \n> Lemieux is clearly the MVP\n\nNo question here.  Chip in the Masterson as well...\n\n> Selanne wins the Calder\n\nYep. \n\n> Chelios the Norris,\n\nIf you asked me 30 days ago, I'd agree with you.  I now give the nod to\nRaymond Bourque; his play took off the same time the B's did.  Chelios\ngets a close second...\n\n> dunno who wins the Vezina, but I suspect not Potvin.  \n  \nBarrasso finally gets his due, in a close one over Eddie the Eagle...\n\n> Coach of the year is tricky:  Burns did the most with the least raw talent,\n> King did a good job but the Flames clearly underachieved last year, Brian\n> Sutter has done exceptionally well in his first year with a new team, ditto\n> Demers, Page has been blessed by the ripening and acquisition of young\n> talent, Darryl Sutter is having a good year for a rookie coach, Berry made\n> the best of a bad situation, Terry Crisp worked minor miracles, and Bowman\n> was Bowman.  I'd pick Burns, but I'm mildly biased.\n\nIn *your* case, that bias is acceptable :-)... Mine shows with the Norris pick,\nso we're even...\n\nI'm impressed with what all the coaches you mentioned did, but my pick would be \nAl Arbour.  Not too many folks thought the Isles would be in the playoffs, let \nalone contend for 3rd in their division... Granted that they *did* have a little\nhelp from their cousins on Broadway... :-)\n\nAnd I like the Islanders about as much as I like mowing my lawn...\n\n> Mike Godfrey\n--------\nDavid Kehrer (dwk@sunsrvr2.cci.com)-Northern Telecom NAS-Rochester, New York \n\"It's nothing for me to eat six or seven pieces of pizza, then go out to\ndinner with my wife and not remember I had the pizza.\" - Jacques Demers\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2281, "properties": {"category": "comp.sys.mac.hardware", "text": "From: censwm@cend3c7.caledonia.hw.ac.uk (Stuart W Munn)\nSubject: Macintosh Lisa Dot Matrix Parallel Printer\nOrganization: Dept of Computing and Electrical Engineering, Heriot-Watt University, Scotland\nLines: 15\n\nI have got a dot matrix printer that came with a Lisa (I think) I wish to attach it to a PC, but have no manual. I have been told that it is some sort of C.Itoh printer in disguise. Can anyone help with manuals or info about codes to send to select fonts, italics etc. I want to write a printer driver for Protext.\n\nThanks in advance\n\nStuart\n\n=========================================================================\nStuart Munn\t\tDOD# 0717\nHeriot-Watt University                  \"The sky is BLACK . . .\nEdinburgh                                therefore GOD, he is a St Mirren\nScotland, EH14 4AS                       supporter!!!\"\n031 451-3265\n031 451-3261 FAX                         God may have a Harley . . .\nE-Mail censwm@UK.AC.HW.CLUST (JANET)     But the Pope rides a Guzzi! \n=========================================================================\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2282, "properties": {"category": "rec.sport.hockey", "text": "From: steveg@cadkey.com (Steve Gallichio)\nSubject: Re: NHL Team Captains\nOrganization: Cadkey, Inc.\nLines: 28\nNNTP-Posting-Host: access.digex.net\n\n\n\nAnna Matyas (am2x+@andrew.cmu.edu) wrote:\n> Wasn't Ron Francis captain of the Whalers when he was traded to\n> Pittsburgh?\n\nNo.\n\nIn what still, IMHO, ranks as the all-time greatest PR blunder (not to\nmention on-ice blunder) the Whalers ever committed, GM Eddie Johnston and\nCoach Rick Ley 'decided' that Francis was incapable as a leader and stripped\nhim of the Captain's \"C\" in December of 1990. The whole organization (read:\nEJ and Ley, and by default owner Richard Gordon because he was too much of\na dupe to know how much he was being blind-sided by EJ) dumped on Francis all\nseason, starting with refusing to sign him to a new contract, publicly \nhumiliating him, stripping him of the \"C\", and then trading him that Spring\nto the Penguins. Classy guy, that EJ.\n\nThe loss of Francis (and too a lesser extent, Ulf), was one of a series of\ndecimating player moves by EJ which stripped the personality and fan-awareness\nfrom the team that has put them in the precarious position they are in today.\n\n[Gratuitous good EJ note...he did preside over the organization when it\nacquired Verbeek, Cassels, Sanderson, Poulin, Nylander, etc. He stripped the\nroster but he DID lay a foundation.]\n\n-SG (a real live Hartford Whalers season ticket holder)\n-steveg@cadkey.com\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2283, "properties": {"category": "sci.electronics", "text": "From: zklf0b@wwnv28.hou.amoco.com (Fergason)\nSubject: Re: what to do with old 256k SIMMs?\nOrganization: Amoco Production\nLines: 21\n\nIn article <1ql7ug$i50@sunb.ocs.mq.edu.au> johnh@macadam.mpce.mq.edu.au (John Haddy) writes:\n>In article <120466@netnews.upenn.edu>, jhaines@eniac.seas.upenn.edu (Jason Haines) writes:\n>|> \n>|> \tI was wondering if people had any good uses for old\n>|> 256k SIMMs.  I have a bunch of them for the Apple Mac\n>|> and I know lots of other people do to.  I have tried to\n>|> sell them but have gotten NO interest.\n>|> \n>|> \tSo, if you have an inovative use (or want to buy\n>|> some SIMMs  8-) ), I would be very interested in hearing\n>|> about it.\n>\n>The most practical use I've seen for them is as key ring ornaments :-)\n>\n>JohnH\n\nI used a bunch as weights, when building a model airplane.  Hung them\non the stringers, across the stringer, or whatever.  Worked pretty well.\n\nKelly\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2284, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: space food sticks\nOrganization: Express Access Online Communications USA\nLines: 9\nNNTP-Posting-Host: access.digex.net\nKeywords: food\n\ndillon comments that Space Food Sticks may have bad digestive properties.\n\nI don't think so.  I think  most NASA food products were designed to\nbe low fiber 'zero-residue' products so as to minimize the difficulties\nof waste disposal.  I'd doubt they'd deploy anything that caused whole sale\nGI distress.  There aren't enough plastic baggies in the world for\na bad case of GI disease.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2285, "properties": {"category": "rec.sport.baseball", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: MARLINS WIN! MARLINS WIN!\nArticle-I.D.: netcom.ericsC52qCC.6Fu\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 19\n\ngenetic+@pitt.edu (David M. Tate) writes:\n\n>dwarner@journalism.indiana.edu said:\n\n>>I only caught the tail end of this one on ESPN.  Does anyone have a report?\n>>(Look at all that Teal!!!!  BLEAH!!!!!!!!!)\n\n>Maybe it's just me, but the combination of those *young* faces peeking out\n>from under oversized aqua helmets screams \"Little League\" in every fibre of\n>my being...\n\nHmm, it seems the Little Leaguers didn't do too badly against Hershiser,\nStrawberry, E. Davis, and the rest of the Dodgers yesterday ...   :-)\n\n-----\nEric Smith\nerics@netcom.com\nerics@infoserv.com\nCI$: 70262,3610\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2286, "properties": {"category": "comp.windows.x", "text": "From: reznik@robios.me.wisc.edu (Dan S Reznik)\nSubject: Correction on my last posting (GLX & lack of cous on Dialog Widget)\nOrganization: U. Wisconsin-Madison, Robotics Laboratory\nIn-reply-to: reznik@robios5.me.wisc.edu's message of 22 Apr 93 18:22:55 CDT\nLines: 13\n\nOn the code I sent, please replace the line:\n\n   XtAddCallback(PopUpShell, XtNcallback, MyPopUp, (XtPointer)PopUpShell);\n\nby\n\n   XtAddCallback(Button, XtNcallback, MyPopUp, (XtPointer)PopUpShell);\n\n--- \n\nThe rest (and my question) remains the same...\n\nDan\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2287, "properties": {"category": "rec.sport.baseball", "text": "From: west@esd.dl.nec.com (Mike West)\nSubject: Re: Dean Palmer Hurt?\nNntp-Posting-Host: swan.esd.dl.nec.com\nOrganization: Engineering and Support Division, NEC America, Inc.\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 14\n\nEdward Ouellette (edo@casbah.acns.nwu.edu) wrote:\n: I think Dean got hit by a pitched ball the other night... he got pinch hit for\n: and didn't play against Baltimore tonight... whats up with that? Is he hurt?\n: Please tell me he's not...\n\nHe evidentally got hit in the elbow by a Fernando pitch.  His arm swelled\nfrom the elbow to the wrist (or something like that).  They took X-rays\nof the arm and there is nothing damaged.  He missed the last game with the\nOrioles, but he is suppose to be ready for the next game.\n\nHope this helps.\n\nMike West\nwest@esd.dl.nec.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2288, "properties": {"category": "comp.windows.x", "text": "From: ge!severy%severy@uunet.UU.NET (severy)\nSubject: Overriding window manager focus processing\nOrganization: GE Information Services, Rockville, MD\nLines: 44\nNNTP-Posting-Host: cs.utexas.edu\nKeywords: Window Manager Focus Motif\n\n     I am working on an X-Window based application that needs to \noverride some of the window manager focus processing.  I am \nusing X11R4 and Motif 1.1 currently, although I will also be \nworking with Open Look in the future.\n\n     What I need to do is under certain circumstances prevent the \nuser from switching from one window of the application to \nanother window.  Let's say, for example, that Window A is on top \nof Window B in the window hierarchy.  Normally, if the user clicks \nthe mouse in Window B it will be brought to the top of the \nwindow hierarchy and placed on top of Window A.  Under certain \ncircumstances if the user clicks the mouse in Window B I need to \nbeep and prevent Window B from being raised on top of Window \nA.\n\n      From the research and testing I've done so far, it appears that \nthis window ordering is handled by the window manager, in this \ncase Motif.  I haven't found any way to override this default \nprocessing through standard X Window functions.  I can tell \nwhen this switching occurs through focus change and mapping \nnotify events, but I can't find any way to tell Motif not to make the \nswitch.\n\n      The temporary solution I've currently come up with is very \nkludgy but it partially works.  When I detect such a window switch \nin those cases when the switch is not allowed, I manually force \nthe formerly top window back on top with an XRaiseWindow call \nand beep with the XBell function.  This provides the necessary \nfunctionality but looks ugly when the windows switch places \ntwice.\n\n      Does anyone know how I can tell Motif (or preferably *any* \nwindow manager) when I don't want the window order switch to \nactually take place?  Respond either by e-mail or posting to this \nnewsgroup.\n\nCheers....     Randall\n\n***************************************************************************\n* Randall Severy                    *      UUNET: uunet!ge!severy         *\n* GE Information Services           *   INTERNET: ge!severy@uunet.uu.net  *\n* 401 N. Washington St.   MC05A     *      GENIE: RSEVERY                 *\n* Rockville, MD  20850    USA       *      PHONE: +1-301-340-4543         *\n***************************************************************************\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2289, "properties": {"category": "rec.autos", "text": "From: kissane@black.Berkeley.EDU (John G. Kissane)\nSubject: Re: Manual Shift Bigots\nNntp-Posting-Host: black\nReply-To: kissane@rtsg.mot.com (John G. Kissane)\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 7\n\nAs a matter of interest does anyone know why autos are so popular in the US while \nhere in Europe they are rare??? Just wondering.....\n-- \n___________________________________________________________________ ____/|\nJohn Kissane                           | Motorola Ireland Ltd.,   | \\'o.O'\nUUCP    : ..uunet!motcid!glas!kissanej | Mahon Industrial Estate, | =() ()=\nInternet: kissanej@glas.rtsg.mot.com   | Blackrock, Cork, Ireland |    U\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2290, "properties": {"category": "comp.graphics", "text": "From: amann@iam.unibe.ch (Stephan Amann)\nSubject: Re: Radiosity\nReply-To: amann@iam.unibe.ch\nOrganization: University of Berne, Institute of Computer Science and Applied Mathematics, Special Interest Group Computer Graphics\nLines: 54\n\nIn article 16598@rz.uni-jena.de, hahm@fossi.hab-weimar.de (peter hahm) writes:\n>\n>\n>RADIOSITY SOURCES WANTED !!!\n>============================\n>\n>When I read the comp.graphics group, I never found something about \n>radiosity. Is there anybody interested in out there? I would be glad \n>to hear from somebody.\n>I am looking for source-code for the radiosity-method. I have already\n>read common literature, e. g.Foley ... . I think little examples could \n>help me to understand how radiosity works. Common languages ( C, C++, \n>Pascal) prefered.\n>I hope you will help me!\n>\n>Yours\n>Peter \n>\n\n\nPeter,  there's a radiosity package ahead. The only problem is: there \nare a few miles to sail ... ;-^\n\nLet's be serious... I'm working on a radiosity package, written in C++.\nI would like to make it public domain.  I'll announce it in c.g. the minute\nI finished it. \n\nThat were the good news. The bad news: It'll take another 2 months (at least) \nto finish it. \n\nIn the meantime you may have a look at the file\n  Radiosity_code.tar.Z\nlocated at\n  compute1.cc.ncsu.edu\n\n(there are some other locations; have a look at archie to get the nearest)\n\nHope that'll help.\n\nYours\n\nStephan\n\n\n\n----------------------------------------------------------------------------\n\n Stephan Amann     SIG Computer Graphics, University of Berne, Switzerland\n           amann@iam.unibe.ch\n\t   Tel +41 31 65 46 79\t   Fax +41 31 65 39 65\n\n Projects: Radiosity, Raytracing, Computer Graphics\n\n----------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2291, "properties": {"category": "comp.windows.x", "text": "From: bading@cs.tu-berlin.de (Tobias 'Doping' Bading)\nSubject: Re: Forcing a window manager to accept specific coordinates for a window\nOrganization: Technical University of Berlin, Germany\nLines: 36\nDistribution: world\n\t<C5u667.Ln8@boulder.parcplace.com> <1r5l8g$bub@wsinfo03.win.tue.nl>\nNNTP-Posting-Host: athene.cs.tu-berlin.de\nMime-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\nIn-reply-to: rcb5@wsinfo03.win.tue.nl's message of 22 Apr 1993 10:33:20 +0200\n\n\nIn article <1r5l8g$bub@wsinfo03.win.tue.nl> rcb5@wsinfo03.win.tue.nl (Richard Verhoeven) writes:\n\n   Sorry, but olwm and tvtwm don't do it. They place the title at that position\n   and the window at a position below it.\n\n   This becomes a problem when you want a program to be able to save its current\n   configuration and restore is later.\n\n   Currently, my solution is:\n\n\t   XCreateWindow(...);\n\t   XSetWMProperties(..);\n\t   XMapWindow(...);\n\t   XFlush(...);\n\t   XMoveWindow(...);\n\n\n   It works with olwm, but is less than elegant. All this leaves me wondering\n   if I'm overlooking something obvious.\n\n   Richard.\n\n\nI know that the mwm has an resource to specify if positions are to be used for\nthe border of a window or for the \"user\" window. Maybe other window managers\nhave similar options.\nAnother way to figure out the difference between the \"user\" window position\nand the window manager decoration window position is to subtract their\npositions. You just have to use XQueryTree and remember that the window manager\ndecorations window is the parent of your window. Unfortunately, you can only\nfigure out the decoration width and height after the window has been mapped\nthis way.\n\nGreeting,\n          Tobias (bading@cs.tu-berlin.de)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2292, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Re: Guns GONE. Good Riddance !\nOrganization: Ideology Busters, Inc.\nLines: 88\n\nIn article <1993Apr18.000152.2339@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>You are loosing.\n>\n>There is no question about it. \n>\n>Of those who vote, your cause is considered an abomination. No matter\n>how hard you try, public opinion is set against the RKBA. \n\nNot so.  Surveys have shown while the public thinks certain types\nof gun control may be acceptable they do believe they have an\nindividual right to keep and bear arms, and that the police should\nnot have /discretion/ over who may and may not own firearms.\n\n>This is the end. By the finish of the Clinton administration, your\n>RKBA will be null and void.\n\nBy the end of the Clinton administration a lot of things will be\nscrewed up.  Hell, we'll probably be just like England.\n\n> Tough titty.\n\n\"Tough titty\" ?  My how eloquent you are.\n\nAs for your claim, I think Clinton has a big fight ahead of him if\nhe thinks he's going to pass some comprehensive gun legislation.\nHe will sign the Brady Bill if it gets to his desk.  We will do\nwhatever we can to either keep that from happening, or modify it\nsuch that it is acceptable to us.\n\n>You had better discover ways to make do without firearms.\n\nSorry, that's not possible.  And that's why we won't give them up\neither.  Legally or illegally, American's will keep their firearms.\nThe number of unregistered weapons in New York City is in the millions.\nThere aren't even close to that number of violent criminals there.\n\n>The number of cases of firearms abuses has ruined your cause.\n\nIf the gov't was serious about stopping violent crime they would\nkeep violent criminals in jail for a long long time where they\nbelong instead of letting them out on early release.\n\n>There is nothing you can do about it.\n\nHey, we can go into politics too if we feel like it.\n\n> Those who live by the sword shall die by it. \n\nI don't believe this one bit.\n\n>The press is against you, the public (the voting public) is against\n>you, the flow of history is against you ... this is it !\n\nSnore.  Like I take advice on the RKBA from a Brit.  No way.\n\n>Surrender your arms. Soon enough, officers will be around to collect\n>them. Resistance is useless.\n\nYou watch too much \"Star Trek\".  Actually, this is an understandable\nattitude from a Brit; you are a subject of the state.\n\n>They will overwhelm you - one at a time.\n\nNot necessarily.  There are ways of resisting oppression without\ngetting caught by the gov't.\n\n>Your neighbors will not help you. They will consider you more if an\n>immediate threat than the abstract 'criminal'. \n\nThe \"abstract criminal\" like the ones who killed a relative of mine\nwhile she was working in a carry-out.\n\n>Too fucking bad. You have gone the way of the KKK. Violent solutions\n>are passe'.\n\nWhile undesirable, they are sometimes unavoidable.  If you don't want\nto resist a criminal attack by all means do nothing.  I will (a) take\nmy chances resisting violent attack, and (b) stand a better chance of\nbeing unharmed than someone who does nothing.\n\n>Avoid situations which encourage criminals. Then you will\n>be as safe as possible. Such as it is ...\n\nWhat a joke.  Criminals want a disarmed population.  How can you keep\ncriminals from preying on us after our best means of self defense is\ntaken away ?\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2293, "properties": {"category": "comp.windows.x", "text": "From: nicholas@ibmpcug.co.uk (Nicholas Young)\nSubject: Writing a Motif widget\nX-Disclaimer: The views expressed in this article are those of the author\n\talone and may not represent the views of the IBM PC User Group.\nOrganization: The IBM PC User Group, UK.\nLines: 22\n\nCan anyone give me some information, please ...\n\nI need (probably) to write one or more new Motif widgets on the HP-UX\nplatform. Do I need the Motif private header files and source,\nor can I make do with the public headers that are provided?\n\"Motif\" includes Xt in this context.\n\nOne widget is a multi-column list (which lots of people have\nalready written, I am sure), and would therefore be probably be\na subclass of List rather than something simple like an Xt class.\nIs this more difficult (in principle, not lines of code)?\n\nAlternatively, if anyone has a multi-column list widget they\ncould sell me, this might save me from having to write one!\nDoes it by any chance exist in Motif 1.2 already (I do not\nyet have the spec)?\n\nAnswers appreciated,\n\nNicholas.\n-- \nNicholas Young (+44 71 637 9111)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2294, "properties": {"category": "rec.autos", "text": "From: cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc)\nSubject: Re: Instead of a Saturn SC2, What???\nDistribution: na\nOrganization: University of Illinois at Urbana\nLines: 39\n\nsrihari@cirrus.com (Srihari Shoroff) writes:\n\n>In <Ifn=sPO00iV18_A8NZ@andrew.cmu.edu> jr4q+@andrew.cmu.edu (Jason M. Roth) writes:\n\n>>>R&T had an article on cars of the SC1 ilk and they liked the Civic Ex,\n>>>the Escort GT and the MX-3 best of all, and the SC1 was way down the\n>>>list except for braking.\n\n>>I just looked at that article; first of all, this summary is inaccurate;\n>>of 10 cars, the SC1 was 5th, right behind these mentioned and the Suzuki\n>>Swift (!). As has been pointed out, it was a semi-silly comparison; the\n>>Saturn was at least $500 cheaper than the MX-3 and Escort (admittedly\n>>negligible, but an issue), and $1500 (!)less than the Honda. The stated\n>>goal was a base under $12k; the Honda was $500 over, while the SC2 at\n>>the same price was excluded. In other words, they let the best Honda\n>>play, but not the best Saturn.  Note that the Saturn did beat the $13k\n\n>I dont know about the car comparison but as far as the price goes rest\n>assured that the street prices for the MX-3 and Escort and (maybe) even\n>the Honda will be lesser than that of the Saturn you're talking about.\n>All price comparisons I've seen are based on MSRP and of course the\n>saturn dealer will sell the car for sticker price whereas the others\n>will do it way below sticker.\n\n>Srihari\n\t\n\tI'd hate to rehash an old thread, but...  Would someone kindly quote\na prices that a dealer quotes for a Civic EX, and Escort GT.  Also, I'm a\nassuming that the MX-3 was the V-6, so go ahead and look that up, too.  If \nsomeone has one of those yearly buyers' guides that give a low quote price,\nplease quote them, too.  Then find the the SC1 base price.\n\nThanks.\n\n-- \nChintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n******************************Neil Peart, (c)1981*****************************\n*\"Quick to judge, Quick to Anger, Slow to understand, Ignorance and Prejudice*\n*And********Fear********Walk********************Hand*********in*********Hand\"*\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2295, "properties": {"category": "rec.sport.hockey", "text": "From: dmoney@magnus.acs.ohio-state.edu (Dean R Money)\nSubject: How difficult is it to get Penguin tickets?\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 6\n\nThe subject line says it all.  Is it terribly difficult to get tickets\nto Penguins games, especially now that they are in the playoffs?  Would\nit be easy to find scalpers outside of the Igloo selling tickets?\n\nDean Money\ndmoney@magnus.acs.ohio-state.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2296, "properties": {"category": "misc.forsale", "text": "From: mace@kilowatt.UUCP (Mace)\nSubject: Intel 96oo Ex Modem\nOrganization: Kilowatt Computers, Deer Park, LI\nLines: 12\n\nFor Sale:\n Intel 96oo Baud Modem\n External\n V32/V42bis\n Very Good Working Condition\n Never had any problems \n $160 oBo\n\nLeave daytime number for fastest response.\n\n\nThe Kilowatt BBS - Deer Park, LI NY\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2297, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re:  Islam And Scientific Predictions (was\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 24\n\nIn article <C5L1Fv.H9r@ra.nrl.navy.mil> khan@itd.itd.nrl.navy.mil (Umar Khan) writes:\n>How would a man of 7th Century Arabia have known\n>what *not to include* in the Holy Qur'an (assuming he had authored\n>it)?  \n>\n\n  So now we're judging the Qur'an by what's not in it?  \n\n  How many mutton headed arguments am I going to have to wade\n  through today?\n\n>Lots of other books have been written on this subject.  Those\n>books can speak far more eloquently than I.\n\n  One would hope.\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2298, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsd.cc.buffalo.edu (Robert Weiss)\nSubject: 18 Apr 93   God's Promise in Philippians 4:9\nOrganization: University at Buffalo\nLines: 8\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsd.cc.buffalo.edu\n\n\n\tThose things,\n\twhich ye have both learned, and received,\n\tand heard, and seen in me,\n\tdo:\n\tand the God of peace shall be with you.\n\n\tPhilippians 4:9\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2299, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Too many MRIs?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 15\n\nIn article <1q6rie$mo2@access.digex.net> kfl@access.digex.com (Keith F. Lynch) writes:\n\n>So, why are the scans so expensive, and what can be done to reduce the\n>expense?  Isn't it just a box with some big magnets, a radio transmitter,\n>and an attached PC?\n\nThe magnets are huge!  Good MRI sets with big (>1.5 Tesla) magnets\ncost millions of dollars.  Then, the radiologist wants $400 for\nreading each scan.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2300, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: Ok, So I was a little hasty...\nOrganization: Ontario Hydro - Research Division\nLines: 17\n\nIn article <speedy.155@engr.latech.edu> speedy@engr.latech.edu (Speedy Mercer) writes:\n>In article <jnmoyne-190493111630@moustic.lbl.gov> jnmoyne@lbl.gov (Jean-Noel Moyne) writes:\n>>       Ok, hold on a second and clarify something for me:\n>\n>>       What does \"DWI\" stand for ? I thought it was \"DUI\" for Driving Under\n>>Influence, so here what does W stand for ?\n>\n>Driving While Intoxicated.\n>\n>This was changed here in Louisiana when a girl went to court and won her \n>case by claiming to be stoned on pot, NOT intoxicated on liquor!\n\nHere it's driving while impaired. That about covers everything.\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2301, "properties": {"category": "comp.sys.mac.hardware", "text": "From: u8121520@cc.nctu.edu.tw ()\nSubject: hi:could I join?\nOrganization: National Chiao Tung University\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 7\n\n    Hi:\n    Does anybody known how much about to buy an ethernet card for mac se ?\n    Besides,Where do I goto buy.If I buy it by mail-order,which brand is suitable for mac se(the network is coxial wire).Thanks a lot.\n   Could anybody tell me what to do?  Thank you.\n\n\n \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2302, "properties": {"category": "comp.graphics", "text": "From: rubery@saturn.aitc.rest.tasc.com. (Dan Rubery)\nSubject: Graphic Formats\nOrganization: TASC\nLines: 7\nNNTP-Posting-Host: saturn.aitc.rest.tasc.com\n\nI am writing some utilies to convert Regis and Tektonic esacpe sequences  \ninto some useful formats. I would rather not have to goto a bitmap format.  \nI can convert them to Window Meta FIles easily enough, but I would rather  \nconvert them to Corel Draw, .CDR, or MS Power Point, .PPT, files.  \nMicrosoft would not give me the format. I was wondering if anybody out  \nthere knows the formats for these two applications.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2303, "properties": {"category": "sci.crypt", "text": "From: artmel@well.sf.ca.us (Arthur Melnick)\nSubject: Some questions regarding Big Brother (Clipper)\nSummary: Some thoughts and questions regarding clipper\nKeywords: clipper\nNntp-Posting-Host: well.sf.ca.us\nOrganization: The Whole Earth 'Lectronic Link, Sausalito, CA\nLines: 23\n\n\n     In previous postings by Hellman, Bellovin, etal it was\nreported the Big Brother (Clipper) chip will encrypt plaintext in\n64 bit blocks as is done with DES.  The users key K which can be\nderived from RSA, Diffy-Hellman, etc. is used to encrypt\nplaintext M and is then used to form a \"three part message\".\n     This three part message consists of E[M; K], K encrypted\nwith some other key, and the chip serial number.  This three part\nmessage is then encrypted by still another key.\n     My question is: What is a message?\n     For example, say we are dealing with an encrypted digitized\nvoice application.  The speech waveform is sampled and digitized\nand then some number of samples are grouped into a 64 bit block.\nThis block is then encrypted and transmitted over a non-secure\ncommunications link.\n     Where is the three part message?  Is something appended to\neach 64 bit block?  Is a header sent at the beginning of the\nsession?\n     If the header is sent at the beginning of the session, how\ndo they insure the equipment manufacturer using the chip does\njust that?  Can just anyone manufacture products using the chip?\nIs a facility clearance required to manufacture?\n     Any ideas?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2304, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: john@wa3wbu.UUCP (John Gayman)\nSubject: Re: ATI build 59 drivers \"good\"?\nSummary: ATI\nOrganization: WA3WBU, Marysville, PA\nLines: 22\n\nIn article <C5FoMu.267o@austin.ibm.com>, larryhow@austin.ibm.com writes:\n> \n> How stable are the build 59 drivers?  Are people having success installing\n> and running with these?\n> \n\n\n    I've been using the Build59 drivers on a GW2K 4DX2-66V for several\nweeks with no problems. I'm running Windows in 1024x758 and all software\nI've run has worked fine. This includes many games and the CD-based \nmulti-media encyclopedia, on which the full-motion video works fine.\nI'd recommend you give them a try.\n\n\n-- John\n\n\n\n-- \nJohn Gayman, WA3WBU \nUUCP: uunet!wa3wbu!john\nPacket: WA3WBU @ WB3EAH \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.106+0000", "event": "documents", "entityId": 2305, "properties": {"category": "rec.autos", "text": "From: mcostell@oasys.dt.navy.mil (Malcolm G. Costello)\nSubject: Re: \"Sprayed-on\" Bedliner Info Wanted\nReply-To: mcostell@oasys.dt.navy.mil (Malcolm G. Costello)\nDistribution: usa\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 28\n\nIn rec.autos, dennis@hpcvra.cv.hp.com (Dennis Schloeman) writes:\nxSorry to repost this again so soon, but\nxthe information from my earlier post was\nxdeleted from our system.\n>\nxI am looking for information concerning\nx\"sprayed-on\" bedliners for pickup trucks.\nxA company here does it using polyurethene\nxbut they've only been around for 9 months\nxso there's not much of a track record here.\nxIs the sprayed-on bedliner any good?  How\nxwell do they hold up over the years?  Any\nxinfo would be appreciated.\nx\nxThanks.\nx\nxDennis\nDo you have a Ziebart dealer in your area? They've offered spray\non bed liners around here for several years. If you do, see what\nkind of a warranty they have. ( Unfortunately, I don't know anyone\nwho has gotten one so I can't help you there.) Also ask if they\ncan give you a list of references.\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nMack Costello <mcostell@oasys.dt.navy.mil> Code 65.1 (formerly 1720.1)\nDavid Taylor Model Basin, Carderock Division Hq. NSWC    ___/-\\____\nBethesda, MD 20084-5000   Phone (301) 227-2431          (__________>|\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2306, "properties": {"category": "misc.forsale", "text": "From: jmu@acpub.duke.edu (Joshua Mostkoff Unger)\nSubject: INTEL FAX MODEM FOR SALE\nOrganization: Duke University; Durham, N.C.\nLines: 15\nNntp-Posting-Host: raphael.acpub.duke.edu\n\nI have an Intel SatisFAXtion Modem/100 INTERNAL for sale.\nIt runs at 2400 baud data mode and up to 9600 baud as a Class 1 fax modem.\nIt transmits up to 9600 baud (V.29) and receives up to 4800 baud (V.27 ter.)\n\nThe modem has all original manuals and comes with software, icluding\n  Intel's SatisFAXtion and FAXability, as well as Crosstalk Communicator\n\nI have used this modem less than an hour.  It came with my computer and I\n  already had another one.\n\nI would like to ask $50 for this modem, but will entertain all serious offers.\n\nPlease email to jmu@acpub.duke.edu\n\nThanks.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2307, "properties": {"category": "comp.windows.x", "text": "From: Wilfred.Hansen@cs.cmu.edu\nSubject: Andrew (was Re: X Toolkits)\nOrganization: Carnegie Mellon, Pittsburgh, PA\nLines: 40\nDistribution: inet\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <C5y8wJ.3zE@undergrad.math.uwaterloo.ca>\n\nExcerpts from netnews.comp.windows.x: 23-Apr-93 X Toolkits Paul\nPrescod@undergrad.m (1132)\n\n> I get the impression Andrew is from the FSF, but I don't know what it\n> looks like either.\n\nThe Andrew User Interface System is supported, maintained, enhanced, and\ndistributed by the Andrew Consortium, Carnegie Mellon.  The distribution\nterms are those of the X consortium, not the GNU Public License.  Thus\nanyone can commercially exploit the Andrew code without restriction. \n(To encourage membership, however, we defer universal release of the\nlatest versions until Consortium members have had an opportunity to\nexplore the new capabilities.)\n\nTo se what AUIS looks like, you can try a remote demo.  You need an X\nserver (R5 is best) on a machine linked to the internet.  Give the\ncommand \n\n\tfinger help@atk.itc.cmu.edu \n\nfor instructions.\n\nNOTE:  The demo version does not use the Motif-look-and-feel scrollbar,\nbut one is available.  You can use it on the demo by changing an option\nin the ~/preferences file and starting a new editor.\n\nThe Andrew Toolkit component of AUIS is ideal if you want to build\napplications using compound documents.  Andrew's major feature is its\narchitecture for recursive embedding of objects: equation in table in\nfigure in text, for example.  This architecture extends to areas not\nusually found in toolkits, including file stream formats, cut/paste, and\nprinting.\n\nAndrew also provides some of the most commonly requested applications: \nword processor, spreadsheet, drawing editor, and font editor (the latter\ntwo are in version 5.2 which will be generally released on the XR6 tape\nin December.)\n\nFred Hansen\nDirector, Andrew Consortium\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2308, "properties": {"category": "rec.motorcycles", "text": "From: jbourgui@ucs.indiana.edu (Opso Lopso)\nSubject: need help getting saddle bags!!  \nNntp-Posting-Host: jh224-695078.ucs.indiana.edu\nOrganization: Indiana University\nLines: 15\n\nhey... I'm pretty new to the wonderful world of motorcycles... I just\nbought\na used 81 Kaw KZ650 CSR from a friend.... I was just wondering what kind of\n\nsaddle bags I could get for it (since I know nothing about them)  are there\nbags for the gas tank?  how much would some cost, and how much do they\nhold?\nthanks for your advice!!!  I may be new to riding, but I love it\nalready!!!!\n:)\n\n\n-----\njbourgui@ucs.indiana.edu\n(DoD #55,555)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2309, "properties": {"category": "comp.windows.x", "text": "From: jan@camhpp12.mdcbbs.com (Jan Vandenbrande)\nSubject: xv -root with vue? (was Re: xloadimage -onroot ...)\nArticle-I.D.: ug.1993Apr5.113128.2936\nOrganization: M&E (Division of EDS), Cypress CA\nLines: 16\nNntp-Posting-Host: 134.244.49.156\n\nOn a related note, how can I use xv to display colored GIFs on my\nroot display with HP Vue?\n\nAll I can do with Vue is display xbm's through their\nBackdrop Style Manager.\n\nxv does not seem to be able to override whatever Vue\nputs there.\n\nThanks, Jan\n\n-- \nJan Vandenbrande\njan@ug.eds.com\t\t\t(New address)\njan@lipari.usc.edu\t\t(school address, forwards)\nUUCP: {uunet, uupsi}!ug!jan\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2310, "properties": {"category": "comp.windows.x", "text": "From: michaelr@spider.co.uk (Michael S. A. Robb)\nSubject: Re: Honors Degrees: Do they mean anything?\nOrganization: Spider Systems Limited, Edinburgh, UK.\nLines: 44\n\nIn article <TKLD.93Apr2123341@burns.cogsci.ed.ac.uk> tkld@cogsci.ed.ac.uk (Kevin Davidson) writes:\n>\n>>   In my opinion, a programming degree is still worth having.\n>\n> Yes, but a CS degree is *not* a programming degree. Does anybody know of\n>a computing course where *programming* is taught ? Computer Science is\n>a branch of maths (or the course I did was).\n> I've also done a Software Engineering course - much more practical and likely\n>to be the sort of thing an employer really wants, rather than what they think\n>they want, but also did not teach programming. The ability to program was\n>an entry requirement.\n\nAt Robert Gordon University, programming was the main (most time-consuming) \nstart of the course. The first two years consisted of five subjects:\nSoftware Engineering (Pascal/C/UNIX), Computer Engineering (6502/6809/68000 \nassembler), Computer Theory (LISP/Prolog), Mathematics/Statistics and \nCommunication Skills (How to pass interviews/intelligence tests and group\ndiscussions e.g. How to survive a helicopter crash in the North Sea).\nThe third year (Industrial placement) was spent working for a computer company \nfor a year. The company could be anywhere in Europe (there was a special \nTravel Allowance Scheme to cover the visiting costs of professors).  \nThe fourth year included Operating Systems(C/Modula-2), Software Engineering \n(C/8086 assembler), Real Time Laboratory (C/68000 assembler) and Computing \nTheory (LISP).  There were also Group Projects in 2nd and 4th Years, where \nstudents worked in teams to select their own project or decide to work for an \noutside company (the only disadvantage being that specifications would change \nsuddenly).\n \nIn the first four years, there was a 50%:50% weighting between courseworks and \nexams for most subjects. However in the Honours year, this was reduced to a \n30%:70% split between an Individual Project and final exams (no coursework \nassessment) - are all Computer Science courses like this?\n\nBTW - we started off with 22 students in our first year and were left with 8 by\nHonours year. Also, every course is tutored separately. Not easy trying\nto sleep when you are in 8 student class :-). \n\nCheers,\n  Michael \n-- \n| Michael S. A. Robb     | Tel: +44 31 554 9424  | \"..The problem with bolt-on\n| Software Engineer      | Fax: +44 31 554 0649  |  software is making sure the\n| Spider Systems Limited | E-mail:               |  bolts are the right size..\"\n| Edinburgh, EH6 5NG     | michaelr@spider.co.uk |             - Anonymous\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2311, "properties": {"category": "rec.motorcycles", "text": "From: asphaug@lpl.arizona.edu (Erik Asphaug x2773)\nSubject: Re: CAMPING was Help with backpack\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 24\n\nIn article <1993Apr14.193739.13359@rtsg.mot.com> svoboda@rtsg.mot.com (David Svoboda) writes:\n>In article <1993Apr13.152706.27518@bnr.ca> Dave Dal Farra <gpz750@bnr.ca> writes:\n>|My crafty girfriend makes campfire/bbq starters a la McGiver:\n>Well, heck, if you're going to make them yourself, you can buy\n>candle-wax by the pound--much cheper than the candles themselves.\n\nHell, just save your candle stubs and bring them.  Light them up, and\ndribble the wax all over the kindling wood and light _that_.  Although\nI like the belly-button lint / eggshell case idea the best, if you're\nfeeling particularly industrious some eventful evening.  Or you can\ndo what I did one soggy summer: open the fuel line, drain some onto a \npiece of rough or rotten wood, stick that into the middle of the soon-to-\nbe inferno and CAREFULLY strike a match... As Kurt Vonnegut titled one\nof the latter chapters in Cat's Cradle, \"Ah-Whoom!\"\n\nWorks like a charm every time :-)\n\n\n/-----b-o-d-y---i-s---t-h-e---b-i-k-e----------------------------\\\n|                                                                |\n|     DoD# 88888           asphaug@hindmost.lpl.arizona.edu      |\n|  '90 Kawi Zephyr                  (Erik Asphaug)               |\n|   '86 BMW R80GS                                                |\n\\-----------------------s-o-u-l---i-s---t-h-e---r-i-d-e-r--------/\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2312, "properties": {"category": "comp.graphics", "text": "From: lioness@maple.circa.ufl.edu\nSubject: Re: comp.graphics.programmer\nOrganization: Center for Instructional and Research Computing Activities\nLines: 68\nReply-To: LIONESS@ufcc.ufl.edu\nNNTP-Posting-Host: maple.circa.ufl.edu\n\nIn article <andreasa.157.735211806@dhhalden.no>, andreasa@dhhalden.no (ANDREAS ARFF) writes:\n|>Hello netters\n|>\n|>Sorry, I don't know if this is the right way of doing this kind of thing,\n|>probably should be a CFV, but since I don't have tha ability to create a \n|>news group myself, I just want to start the discussion. \n|>\n|>I enjoy reading c.g very much, but I often find it difficult to sort out what\n|>I'm interested in. Everything from screen-drivers, graphics cards, graphics\n|>programming and graphics programs are discused here. What I'd like is a \n|>comp.graphics.programmer news group.\n|>What do you other think.\n\nThis sounds wonderful, but it seems no one either wants to spend time doing\nthis, or they don't have the power to do so.  For example, I would like\nto see a comp.graphics architecture like this:\n\ncomp.graphics.algorithms.2d\ncomp.graphics.algorithms.3d\ncomp.graphics.algorithms.misc\ncomp.graphics.hardware\ncomp.graphics.misc\ncomp.graphics.software/apps\n\nHowever, that is almost overkill.  Something more like this would probably\nmake EVERYONE a lot happier:\n\ncomp.graphics.programmer\ncomp.graphics.hardware\ncomp.graphics.apps\ncomp.graphics.misc\n\nIt would be nice to see specialized groups devote to 2d, 3d, morphing,\nraytracing, image processing, interactive graphics, toolkits, languages,\nobject systems, etc. but these could be posted to a relevant group or\nhave a mailing list organized.\n\nThat way when someone reads news they don't have to see these subject\nheadings, which are rather disparate:\n\nSystem specific stuff ( should be under comp.sys or comp.os.???.programmer ):\n\n\t\"Need help programming GL\"\n\t\"ModeX programming information?\"\n\t\"Fast sprites on PC\"\n\nHardware technical stuff:\n\n\t\"Speed of Weitek P9000\"\n\t\"Drivers for SpeedStar 24X\"\n\nApplications oriented stuff:\n\n\t\"VistaPro 3.0 help\"\n\t\"How good is 3dStudio?\"\n\t\"Best image processing program for Amiga\"\n\nProgramming oriented stuff:\n\n\t\"Fast polygon routine needed\"\n\t\"Good morphing alogirhtm wanted\"\n\t\"Best depth sort for triangles?\"\n\t\"Which C++ library to get?\"\n\nI wish someone with the power would get a CFD and then a CFV going on\nthis stuff....this newsgroup needs it.\n\nBrian\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2313, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: osburn@halcyon.com (Tim Osburn)\nSubject: Netware 3.11 & win 3.1 fileman\nOrganization: Northwest Nexus Inc.\nLines: 12\nNNTP-Posting-Host: nwfocus.wa.com\n\n\n\tIs there a update or something that will allow a person when\nusing novell 3.11 and windows 3.1 file manager to view the files with\nthe name of the person who created it or changed it like the novell\ncommand ndir ?\n\ntim osburn\nosburn@halcyon.com\n\n\n-- \n*------------------------------------------------------------------------------*|   Tim Osburn     KB7GBQ      osburn@halcyon.com      Bellevue, Washington    |*------------------------------------------------------------------------------*\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2314, "properties": {"category": "talk.religion.misc", "text": "From: V2110A@VM.TEMPLE.EDU (Richard Hoenes)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Temple University\nLines: 31\nNntp-Posting-Host: vm.temple.edu\nX-Newsreader: NNR/VM S_1.3.2\n\nIn article <cjkC5sy5G.Ko4@netcom.com>\ncjk@netcom.com writes:\n \n>This was obviously a lot different than the ordinary FBI adventure.\n>\n>I believe that the Federal officers had a conflict of interests here.\n>\n>Throught out the whole affair, it seamed to me that they were chiefly\n>concerned with saving face rather than saving lifes.  Its true that\n>The BD were resisting arrest and that they should have surrendered\n>when they first realized that these where federal officers.  But they\n>didn`t.\n \nI'm not sure what you mean by 'saving face' unless you are confusing\nthe FBI with the BATF who are the ones who were in charge of the\noriginal search warrant.\n \n>But when they didn`t, the FBI should not have treated as a hostage\n>situation, it wasn't.\n>\n>I think  more discussions, possible independant negotiators, and\n>family intervention should have been used.\n>\nIndependant Negotiators? What was there to negotiate? Any sort of plea\nbargin has to be brought to the court, the negotiators can't negotiate\ncharges or sentences. FBI negotitators did make a deal for the\nDividians to come out. Koresh showed he was not negotiating in good\nfaith and there is no reason to believe independent negotiators\nwould have done any better.\n \nRichard\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2315, "properties": {"category": "misc.forsale", "text": "From: etuggle@auc.trw.com (Eddie Tuggle)\nSubject: Re: UHC SVR4.0.3.6 forsale..\nKeywords: UHC, SVR4\nOrganization: TRW Denver Operations\nLines: 21\n\nIn article <C5I0rs.Kzo@gator.rn.com> larry@gator.rn.com (Larry Snyder) writes:\n>darylm@illian.mnet.com (Daryl V. McDaniel) writes:\n\n ...\n\n>\n>considering the conversation about UHC on the net, I wouldn't say $1K is\n>a good deal -- considering the package is inflated in price to start with\n>\n>-- \n>Larry Snyder                               \n>larry@gator.rn.com\n\n\nWhat problems have you had with UHC?  I have been using their OS for 2 years\nand have had very few problems.\n-- \nEddie D. Tuggle, etuggle@dora.auc.trw.com | \"There is nothing either good or \nTRW Denver Operations                     |  bad, but thinking makes it so.\"\n16201 Centretech Pky / Aurora, CO  80011  |                -- SHAKESPEARE\nVoice:  303.360.4001  FAX:  303.360.4133  |\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2316, "properties": {"category": "rec.motorcycles", "text": "From: mrc@Ikkoku-Kan.Panda.COM (Mark Crispin)\nSubject: dogs\nArticle-I.D.: Ikkoku-K.MS-C.735160298.1147902781.mrc\nOrganization: University of Washington\nLines: 52\nNNTP-Posting-Host: ikkoku-kan.panda.com\nMIME-Version: 1.0\nContent-Type: TEXT/PLAIN; charset=US-ASCII\n\nI'm a biker and a dog-lover.\n\nFirst and foremost, I want to mention some common sense.  If it's a choice\nbetween injuring/killing a dog or getting yourself injured/killed, there is\nonly one rational decision.  Only the most insane animal rights kook would put\nthe dog first.\n\nSecond, it's useful to learn how to read a dog's body language.  How you react\nto a dog who is chasing you because he thinks it's a game (and that you're\nplaying with him) is completely different from how you react to a dog which\nhas hostile intent.\n\nThird, it's useful to learn how to present yourself to a dog.  Dogs are social\nbeasts, and recognize a domination/submission hierarchy.  To a dog, there are\ntwo types of fellow-creatures; that which he dominates, and that which\ndominate him.  You need to unambiguously represent yourself as being of the\nlatter class.  You are God: you are easily angered and your anger is terrible.\nBut God is also amused by one who properly submits to His dominance, and may\neven on rare occasions dispense a kind word, a kind word, or even (oh joy oh\nrapture unforeseen) A Dog Bisquit!\n\nNow, how does that all relate to biking?  Well, first, it's a good idea to\nassume that most dogs who chase motorcycles do so because they think it's a\ngame, and not out of overt hostility.  The MSF suggestion is a very good one;\nwhen you see the dog coming, slow down so he determines a particular place of\ninterception.  Just before you (and he) reach that spot, punch the throttle so\nthat when he reaches it you're already long gone.  Dogs take a few seconds to\nreact to new input, and definitely cannot comprehend the acceleration that a\nmotorcycle is capable of.\n\nWith a hostile dog, or one which you repeatedly encounter, stronger measures\nmay be necessary.  This is the face off.  First -- and there is very important\n-- make sure you NEVER face off a dog on his territory.  Face him off on the\nroad, not on his driveway.  If necessary, have a large stick, rolled up\nnewspaper, etc. (something the beast will understand is something that will\nhurt him).  Stand your ground, then slowly advance.  Your mental attitude is\nthat you are VERY ANGRY and are going to dispense TERRIBLE PUNISHMENT.  The\nlarger the dog, the greater your anger.\n\nDogs will pick up anger, just as they can pick up fear.  And, since you and he\nare not on his home territory, it may suddenly dawn on the dog that perhaps he\nis on your territory, and that you are prepared to fight to the death.\n\nMost dogs will decide that it is a good idea to retreat to their own territory\nwhere there is at least a home advantage.  They'll also observe that you are\nsatisfied by that retreat (gesture of submission) and thus they have escaped\npunishment.\n\nThe interesting thing about dogs is that body language communicates a great\ndeal to them.  The more effective you are at communicating body language, the\nless you actually have to do.  After 7 years with my 93 pound beast, I've\nlearned a few tricks I think...\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2317, "properties": {"category": "rec.autos", "text": "From: brian@gothamcity.jsc.nasa.gov (Brian Donnell)\nSubject: FOR SALE: '91 Celica Repair Manuals\nNntp-Posting-Host: hotspare.arc.nasa.gov\nOrganization: NASA/ARC Information Sciences Division\nLines: 12\n\nTwo-volume soft-cover repair manuals\nfor all models of '91 Toyota Celicas.\n(Probably good for '92 models as well.)\nLike new condition.\nThese are the manuals used by the\nToyota dealers' mechanics - they normally\ncost over $80 new.\n\n$50 OBO\n\nBrian Donnell\nbrian@gothamcity.jsc.nasa.gov\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2318, "properties": {"category": "sci.med", "text": "From: tarl@sw.stratus.com (Tarl Neustaedter)\nSubject: Re: Krillean Photography\nOrganization: Stratus Computer, Inc.\nLines: 14\nDistribution: world\nNNTP-Posting-Host: coyoacan.sw.stratus.com\n\nIn article <1993Apr19.205615.1013@unlv.edu>, todamhyp@charles.unlv.edu (Brian M. Huey) writes:\n> I think that's the correct spelling..\n\nThe proper spelling is Kirlian. It was an effect discoverd by\nS. Kirlian, a soviet film developer in 1939.\n\nAs I recall, the coronas visible are ascribed to static discharges\nand chemical reactions between the organic material and the silver\nhalides in the films.\n\n-- \n         Tarl Neustaedter       Stratus Computer\n       \t tarl@sw.stratus.com    Marlboro, Mass.\nDisclaimer: My employer is not responsible for my opinions.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2319, "properties": {"category": "rec.sport.baseball", "text": "From: fierkelab@bchm.biochem.duke.edu (Eric Roush)\nSubject: Reds Without Sleeves (was Re: New Uniforms)\nArticle-I.D.: news.12805\nOrganization: Biochemistry\nLines: 13\nNntp-Posting-Host: bruchner.biochem.duke.edu\n\n\n\nAm I the only person who thinks the Reds sleeveless uniforms are\nugly?  Yet another reason why they won't win the NL West! ;)\n\n\n-------------------------------------------------------\nEric Roush\t\tfierkelab@\tbchm.biochem.duke.edu\n\"I am a Marxist, of the Groucho sort\"\nGrafitti, Paris, 1968\n\nTANSTAAFL! (although the Internet comes close.)\n--------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2320, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: Alaska Pipeline and Space Station!\nOrganization: Texas Instruments Inc\nLines: 45\n\nIn <1pq7rj$q2u@access.digex.net> prb@access.digex.com (Pat) writes:\n\n>In article <1993Apr5.160550.7592@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n>|\n>|I think this would be a great way to build it, but unfortunately\n>|current spending rules don't permit it to be workable.  For this to\n>|work it would be necessary for the government to guarantee a certain\n>|minimum amount of business in order to sufficiently reduce the risk\n>|enough to make this attractive to a private firm.  Since they\n>|generally can't allocate money except one year at a time, the\n>|government can't provide such a tenant guarantee.\n\n\n>Fred.\n\n>\tTry reading a bit.  THe government does lots of multi year\n>contracts with Penalty for cancellation clauses.  They just like to be\n>damn sure they know what they are doing before they sign a multi year\n>contract.   THe reason they aren't cutting defense spending as much\n>as they would like is the Reagan administration signed enough\n>Multi year contracts,  that it's now cheaper to just finish them out.\n\nI don't have to \"try reading a bit\", Pat.  I *work* as a government\ncontractor and know what the rules are like.  Yes, they sign some\n(damned few -- which is why everyone is always having to go to\nWashington to see about next week's funding) multi-year contracts;\nthey also aren't willing to include sufficient cancellation penalties\nwhen they *do* decide to cut the multi-year contract and not pay on it\n(which can happen arbitrarily at any time, no matter what previous\nplans were) to make the risk acceptable of something like putting up a\nprivate space station with the government as the expected prime\noccupant.\n\nI'd like a source for that statement about \"the reason they aren't\ncutting defense spending as much as they would like\"; I just don't buy\nit. The other thing I find a bit 'funny' about your posting, Pat, is\nthat several other people answered the question pretty much the same\nway I did; mine is the one you comment (and incorrectly, I think) on.\nI think that says a lot.  You and Tommy should move in together.\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2321, "properties": {"category": "talk.politics.misc", "text": "From: demon@desire.wright.edu (Not a Boomer)\nSubject: Re: Supply Side Economic Policy (was Re: David Stockman )\nArticle-I.D.: desire.1993Apr6.125825.8263\nDistribution: na\nOrganization: ACME Products\nLines: 60\n\nIn article <Ufk_Gqu00WBKE7cX5V@andrew.cmu.edu>, Ashish Arora <ashish+@andrew.cmu.edu> writes:\n> Excerpts from netnews.sci.econ: 5-Apr-93 Re: Supply Side Economic Po..\n> by Not a Boomer@desire.wrig \n> [...]\n> \n>>    The deficits declined from 84-9, reaching a low of 2.9% of GNP before  \n>> the tax and spending hike of 1990 reversed the trend.\n>>  \n>> Brett\n> Is this true ?  Some more details would be appreciated.\n\nIn billions of dollars (%GNP):\nyear  GNP    receipts     outlays       deficit     debt    unempl%  admin\n====  ====   ===========  ============  =========   ======  =======  =======\n1977  1930   355.6 (18.4) 409.2  (21.2) 53.6 (2.8)   709.1           Carter\n1978  2174   399.6 (18.4) 458.7  (21.1) 59.2 (2.7)   780.4           Carter\n1979  2444   463.3 (19.0) 503.5  (20.6) 40.2 (1.6)   833.8           Carter\n1980  2674   517.1 (19.3) 590.9  (22.1) 73.8 (2.8)   914.3   7.9     Carter\n1981  2986   599.3 (20.1) 678.2  (22.7) 78.9 (2.6)  1003.9   8.4     Reagan\n1982  3130   617.8 (19.7) 745.7  (23.8) 127.9 (4.1) 1147.0  11.0     Reagan\n1983  3325   600.6 (18.1) 808.3  (24.3) 207.8 (6.2) 1381.9  10.9     Reagan\n1984  3688   666.5 (18.1) 851.8  (23.1) 185.3 (5.0) 1576.7   8.6     Reagan\n1985  3958   734.1 (18.5) 946.3  (23.9) 212.3 (5.4) 1827.5   8.1     Reagan\n1986  4177   769.1 (18.4) 989.8  (23.7) 220.7 (5.3) 2129.5   7.9     Reagan\n1987  4442   854.1 (19.2) 1002.1 (22.6) 148.0 (3.4) 2354.3   7.1     Reagan\n1988  4771   909.0 (19.1) 1064.1 (22.3) 155.1 (3.2) 2614.6   6.3     Reagan\n1989  5201   990.8 (19.0) 1142.8 (22.0)\t152.0 (2.9) 2881.1           Bush\n1990         1031.2       1251.6        220.4       3190.5           Bush\n1991\t     1054.3\t  1323.0\t268.7       3599.0           Bush\n\n[Source: Statistical Abstract of the US (1990 version), American Almanac \n(1993 version), Universal Almanac (1993 version), Information Please Almanac\n(1991 version)]\n\n\t\tGRAPHICALLY: Deficits as a % of GNP, 1981-89\n\n% GNP\n7|\n |\n6|                       X\n |                                       X       X\n5|                               X                \n |                                                \n4|               X\n |                                                       X\n3|                                                               X       X\n |       X\n2|\n |\n1|\n |____________________________________________________________________________\n0\t1981\t1982\t1983\t1984\t1985\t1986\t1987\t1988\t1989\n\n\tIronically, Bush could have frozen spending, kept his \"no new taxes\"\npledge and balanced the budget.\n\nBrett\n________________________________________________________________________________\n\t\"There's nothing so passionate as a vested interest disguised as an\nintellectual conviction.\"  Sean O'Casey in _The White Plague_ by Frank Herbert.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2322, "properties": {"category": "rec.sport.baseball", "text": "From: sepinwal@mail.sas.upenn.edu (Alan Sepinwall)\nSubject: Re: WFAN\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 54\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <C5JC3z.KnD@news.udel.edu> philly@ravel.udel.edu (Robert C Hite) writes:\n>In article <1993Apr15.151202.3551@Virginia.EDU> jja2h@Virginia.EDU (\"\") writes:\n>>Does any one out there listen to WFAN?  For those of you who do\n>>not know what I am talking about, it is an all sports radio\n>>staion in New York.  On a clear night the signal reaches up and\n>>down the East coast.  In particular, I want to know how Len\n>>Berman and Mike Lupica's show is.  I go to school in Virginia\n>>so I can't listen when there are on during the day.  Just\n>>wondering.\n\nYou're right about the signal being strong. I live in West Philadelphia,\nand I can get FAN almost perfectly. It's a sports fans dream (especially\nif that person is from NY and wants to hear about his teams while he's\naway at school). As for Lupica & Berman, it's turned out to be Lupica,\nthen Berman. Neither of them wanted to work a full four hour show, so Ed\nColeman and Dave Sims' old four-hour slot was broken down into two\nseperate two-hour show - Lupica from 10-12, and Berman from 12-2. And they\nboth happen to suck in comparison to Eddie and Dave.  COME BACK, GUYS!\n\n>\n>The FAN is an okay Sports Radio station, but doesn't come close to\n>the ULTIMATE in Sports Radio, 610 WIP in Philadelphia.  The signal\n>might not be as powerful, but then again only stations in New York\n>feel \"obligated\" to pollute everyone else's airwaves with a bunch of\n>hoodlum Mets fans complaining 24 hours a day.  WIP took two of your\n>best sports jockeys too, Jody MacDonald and Steve Fredericks.  610\n>WIP is rockin with sports talk from 5:30 AM till midnight, check it\n>out anytime your within a few hours of Philadelphia.  If I'm not\n>mistaken, WIP has the highest sports talk ratings in the nation?\n>\n\nLike I said, I live in Philly, so I can hear FAN and/or WIP whenever I\nwant. But I cannot stand WIP. And it isn't because I loathe the Philly\nsports teams - the Phillies are my favorite NL team (Yanks are favorite\nAL), and the Eagles aren't too bad either. There are two big problems:\n\n\t1)Total emphasis on the home teams, especially the Eagles. Unlike\n\t  the FAN hosts, who can at least answer a question about an\n\t  out-of-town team if a caller asks, the WIP hosts seem\n \t  to have no clue about any team that doesn't play on\n\t  Broad Street. Also, FANs periodic sports updates (every 20\n\t  minutes) gives sports news and scores from around the\n\t  country. It's very rare to hear an out-of-town score\n\t  being reported on WIP.\n\n\t2)The hosts. With the exception of Jody MacDonald, who I miss\n\t  from his days at FAN, none of the hosts really seems to have\n\t  both a broad knowledge of the sport or a good on-air presence.\n\t  The worst is Gary Cobb, who seems to have been hired solely\n\t  on the basis that he used to play for the Eagles.\n\nAnyway, that's my two cents on the whole FAN vs WIP battle.\n\n-Alan\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2323, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: ACLU (was Re: Waco Shootout ...)\nOrganization: California Institute of Technology, Pasadena\nLines: 22\nNNTP-Posting-Host: sandman.caltech.edu\n\njmd@cube.handheld.com (Jim De Arras) writes:\n\n>In article <1993Mar31.140529.10843@news.cs.indiana.edu> \"Paul Hager\"  \n><hagerp@cs.indiana.edu> writes:\n>> \n>> As an old post of mine came up in a collection of posts about\n>> the ACLU's position on gun-control, I would like to note that my \n>> own position has been evolving.  But, I'm still not sure how to\n>> answer the question, \"does the 2nd allow me to have my own nuclear\n>> device?\"  \n\n>The second amendment does not prohibit it, but it can probably be argued that  \n>there is no way you can operate one without severely impacting on the safety  \n>and rights of others, and so might not be permitted on that basis.\n\nThe existence of the weapon in and of itself (and this is also\ntrue for biologics and chemical weapons, but for slightly different\nreasons) poses a threat to living critters.  Can you say \"neutron\nand other radiation flux due to radioactive decay\", boys and girls?\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2324, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: aew@eosvcr.wimsey.bc.ca (Alan Walford)\nSubject: Summary: ATI Graphics Ultra Questions etc\nReply-To: aew@eosvcr.wimsey.bc.ca\nOrganization: Eos Systems Inc, Vancouver, B.C., Canada\nLines: 147\n\n\nTo those interested in the new ATI Ultra Cards:\n\nI had posted some questions regarding the new ATI Ultra Pro cards and\nhad asked confirmation of some opinions.\n\nThis message is a summary of the responses. Thanks to all of you that\nreplied.\n\n\n> 1) The card does not work in a system with 32M RAM.\n\na) The higher memory limits apply to ISA cards only, as far as I know.  The VLB\n   and EISA version should have no problems.\n \nb) I'm pretty sure from my experience that the ISA version doesn't\n   work in systems with over 16M Ram.  There is supposed to be way\n   of switching the \"memory aperture\" feature off to prevent this,\n   but apparently it doesn't work.  I posted some \"help me\" messages\n   on the net and people indicated that the EISA card didn't have this\n   problem.\n\nc) FALSE\n\nd) The VLB card, which I have, allows you to set memory aperture over 32M\n   by using their configuration software.  No messing with jumpers necessary.\n\n   The 32M problem is probably valid only for ISA cards.\n\n\n> 2) The card works in a 32M system with some switches\n>    set but it is much slower.\n\na) Again, the memory aperture need only be disabled if you have more than 124M RAM\n   (EISA and VLB) or 12 M (ISA).  32M should not be a problem for you. \n \nb) Dunno.\n\nc) Depends on the bus. YES if ISA, NO if EISA or Localbus\n\n\n> 3) The card is _interlaced_ in its 24bit (true-colour) modes.\n\na) Nope.  I can use 640x480 at 72hz, 24-bit and 800x600 at 70hz, 24-bit, all\n   non-interlaced.\n\nb) Yes - According to PC Magazine, they've tested a local bus version\n   that does 1024x768 in 24-bit which may or may not be interlaced.\n\nc) Not for the Pro. Sometimes for the Plus.\n\n   Some modes may run only interlaced on certain monitors. This has nothing to \n   do with 24 bits ... only with screen size. Note that for 24 bit color\n   and Windows you MUST have 2 megs, memory size calculations notwithstanding.\n\n\n> 4) The latest build 59 drivers still do not work in many\n>    cases.\n\na) They aren't perfect, but are much improved.  I don't recall the last time which\n   I had to leave mach 32 mode (ATI GUP mode) and switch to 8514 or VGA mode due\n   to software incompatibility.\n\nb) True.  Many people recommended going back to Build 55 or 54.\n\nc) They appear to be excellent, but have a few bugs. For example, certain\n   graphs with dashed lines in Mathcad 3.1 do not print correctly, though they\n   do display OK on the screen. They are about par for fancy cards ..\n   other accelerated cards also have bugs.\n\nd) Overall, I like the card, even if driver performance is somewhat less than\n   satisfactory.  I am running the 1024*768 16 Color mode as that is all my\n   NT driver for October NT version seems to allow.\n\n   I will say this that Color performance is not quite as nice as a Diamond\n   Stealth VRAM, but I have not been able to try out a lot of the options on\n   the old driver.\n\n\n> 5) This card is the fastest full colour card for the money.\n\na) It's quite fast, but whether or not its the fastest is open to debate.\n \nb) Yes - I'll admit it was very very fast in 16-bit mode, which is what\n   I wanted to use it for.  Too bad it crashed (in many different ways)\n   every 20 minutes or so...\n\nc) Depends on many many things.\n\n\n> 6) This card is the greatest thing since sliced bread. ;-)\n\na) I like it.\n\nb) Well - PC Magazine seems to think it is.\n\nc) Yes, this appears to be true :-)\n\nd) As to greatest thing since sliced bread, I doubt it.  Better cards are\n   coming out.  Who knows, maybe ATI will come out with something faster yet.\n   Several reviews I read rated one Pycon Winjet card as a superior performer \n   at a cheaper price except for availability of drivers, which Pycon was \n   developing at that time.  (PC Magazine, about two months or so back)\n\n   Overall, the card has a lot of potential, but you have to be able to use it.\n \n\n-----------------------------------------------------------------------------\nThat is the end of the questions. These were the most discussed items in this\ngroup so I thought they needed confirmation. For those of you not familiar\nwith the card I have included a summary here (from an ATI ad since I don't have\nan Graphics Ultra yet.)\n\nATI Graphics Ultra Plus:\n- Accelerated 1024x768 at 65K colours\n- True colour(16.7M) at 800x600\n- Multimedia Video Acceleration (for Indeo Video,RLE and Video 1 compressed)\n  Stretch full motion video windows to full size\n- Fast VGA\n- Includes 3 button mouse (ISA versions only)\n- Anti-aliased fonts (ed. avail in 16 colour mode only,I think)\n- Real-time pan and zoom across large virtual windows desktop\n- Around a 1/2 length card size\n- Priced from $400 U.S.\n\nATI Graphics Ultra Pro:\n- Everything in Graphics Ultra Plus\n- Faster performance with VRAMS\n- Accelerated 1280x1024 at 256 colours 74Hz non-interlaced\n- Available in ISA, EISA and Microchannel\n- Priced from $600 U.S.\n\nATI Technologies\n(416) 756-0718\n\nI hope this summary can be of use to you.\n\nAl\n\nP.S.  I am not associated with ATI Technologies in any way other\n      than having used their previous ATI Ultra card for a few\n      years (which I generally liked).\n\n\n-- \nAlan Walford     Eos Systems Inc., Vancouver,B.C., Canada  Tel: 604-734-8655\naew@eosvcr.wimsey.bc.ca           OR        ...uunet!wimsey.bc.ca!eosvcr!aew  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2325, "properties": {"category": "talk.politics.mideast", "text": "From: steel@hal.gnu.ai.mit.edu (Nick Steel)\nSubject: Re: F*CK OFF TSIEL, logic of Mr. Emmanuel Huna\nKeywords: Conspiracy, Nutcase\nOrganization: /etc/organization\nLines: 24\nNNTP-Posting-Host: hal.ai.mit.edu\n\nIn article <4806@bimacs.BITNET> huna@bimacs.BITNET (Emmanuel Huna) writes:\n>\n>        Mr. Steel, from what I've read Tsiel is not a racist, but you\n>are an anti semitic.  And stop shouting, you fanatic,\n\nMr. Emmanuel Huna,\n\nGive logic a break will you.  Gosh, what kind of intelligence do\nyou have, if any?\n\n\nTesiel says :  Be a man not an arab for once.\nI say       :  Fuck of Tsiel (for saying the above).\n\nI get tagged as a racist, and he gets praised?\nWell Mr. logicless, Tsiel has apologized for his racist remark.\nI praise him for that courage, but I tell Take a hike to whoever calls me\na racist without a proof because I am not.\n\nYou have proven to us that your brain has been malfunctioning\nand you are just a moron that's loose on the net.\n\nAbout being fanatic:  I am proud to be a fanatic about my rights and\nfreedom, you idiot.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2326, "properties": {"category": "rec.autos", "text": "From: eliot@stalfos.engr.washington.edu (eliot)\nSubject: Re: top 10 reasons why i love CR (not for the humor impaired)\nArticle-I.D.: engr.Apr06.203257.20048\nDistribution: na\nOrganization: clearer than blir\nLines: 15\nNNTP-Posting-Host: 192.42.145.4\n\nIn article <1993Apr6.194738.20021@magnus.acs.ohio-state.edu> jnielsen@magnus.acs.ohio-state.edu (John F Nielsen) writes:\n\n[blah blah blah]\n\n>Ok if you are so right, name a few good examples that were brought up.\n\n\nlet's create a new group:  rec.autos.CR-is-right-no-its-not-yes-it-is-oh-yeah-\nmy-father-can-lick-your-father-.......\n\n\n:-)\n\n\neliot\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2327, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Ontology (was: Benediktine Metaphysics)\nOrganization: Technical University Braunschweig, Germany\nLines: 46\n\nIn article <66019@mimsy.umd.edu>\nmangoe@cs.umd.edu (Charley Wingate) writes:\n \n>\n>>     IF IT IS CONTRADICTORY IT CANNOT EXIST.\n>\n>\"Contradictory\" is a property of language.  If I correct this to\n>\n>\n>      THINGS DEFINED BY CONTRADICTORY LANGUAGE DO NOT EXIST\n>\n \nNo need to correct it, it stands as it is said.\n \n \n \n>I will object to definitions as reality.  If you then amend it to\n>\n>      THINGS DESCRIBED BY CONTRADICTORY LANGUAGE DO NOT EXIST\n>\n>then we've come to something which is plainly false.  Failures in\n>description are merely failures in description.\n>\n \nYou miss the point entirely. Things defined by contradictory language\ndo not exist. Though something existing might be meant, conclusions\ndrawn from the description are wrong, unless there is the possibility\nto find the described, and draw conclusions from direct knowledge of\nthe described then. Another possibility is to drop the contradictory\npart, but that implies that one can trust the concept as presented\nand that one has not got to doubt the source of it as well.\n \n>(I'm not an objectivist, remember.)\n>\n \nNeither am I. But either things are directly sensed (which includes\nsome form of modelling, by the way) or they are used in modelling.\nUsing something contradictive in modelling is not approved of.\nWonder why?\n \nWe remain with the question if something contradictory can be sensed\nas contradictory. An important point is that either one manages to\nresolve the contradictions or one is forced not to use or to refer\nto the contradictory part in drawing conclusions, or one will fall\nin the garbage in garbage out trap.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.107+0000", "event": "documents", "entityId": 2328, "properties": {"category": "talk.religion.misc", "text": "From: merlyn@digibd.digibd.com (Merlyn LeRoy)\nSubject: Re: 14 Apr 93 God's Promise in 1 John 1: 7\nNntp-Posting-Host: digibd.digibd.com\nOrganization: DigiBoard, Incorporated, Eden Prairie,MN\nLines: 13\n\nbrian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615) writes:\n>In article <bskendigC5Ku3C.6Dx@netcom.com> bskendig@netcom.com (Brian Kendig) writes:\n>>I've asked your god several times with all my heart to come to me...\n\n>Brian K., I am pleased with your honesty.  And to be honest as well, I\n>believe you have not asked my god to come to you.  Why do I say this?\n\nBecause that would contradict your religious beliefs; therefore,\nyou feel more comfortable simply accusing his sincerity, so you will\nnot have to critically examine your religious beliefs.\n\n---\nMerlyn LeRoy\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2329, "properties": {"category": "rec.autos", "text": "From: damelio@progress.COM (Stephen D'Amelio)\nSubject: Re: Ford and the automobile\nNntp-Posting-Host: elba\nOrganization: Progress Software Corp.\nLines: 19\n\nrwong@eis.calstate.edu (Russel Wong) writes:\n\n>Hello, my name is Russell Wong and I am doing a research project on Henry\n>Ford and his automobile.  I need information on whether Ford is\n>partially responsible for all of the car accidents \n\nYa, he cut me off on 128 the other day, he drives like a crazy person.\nI'd have to say he's responsible for most accidents, they really should\npull his licence.\n\n-Steve\n\n\n7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7\n               Alan Kulwicki    1992 Winston Cup Champion\n                              1954 - 1993\n7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2330, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: div. and conf. names\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nDistribution: na\nLines: 50\n\nIn <1993Apr19.191126.27651@newshub.ists.ca> dchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n\n>However, that aside, the real question is whether you like the idea of\n>changing the names based on the reasons given for it (making it easier for\n>the 'casual fan'), or whether you like the idea of unique divisional names\n>based on individuals who do deserve the honour.  IMO, the latter is a nice\n>and unique touch that differs from other sports.  In addition, I do not\n>think that changing divisional names will have an effect on the number of\n>people that are interested in hockey, so it's a pointless exercise anyway.\n\nThere are several problems with the way the game is being presented to the\nfans.  I feel that geographical names would enhance regional loyalties\nmore than names honouring personages.  And of course, they would not appear\nnearly as confusing to one approaching the sport for the first time.  \nAnother thing that bothers me is the points system.  Percentages, as used in\nthe other major sports are clearly more informative.  When I look at the\nNHL standings the first thing I have to do is make a quick calculation to\naccount for games in hand (which is almost always the case).  Some will\nobject to percentages, claiming perhaps, that it is an \"Americanization\"\nof the sport but I feel that using percentages is more informative and\nwhether it is \"American\" or not is irrelevant.\n \n>If the current names are inappropriate, then that is a separate issue, not \n>central to the original article.  Something to consider additionally is\n>whether or not players like Orr who 'contributed to the glory of the sport'\n>would have been able to do so _without_ an organized professional league to\n>play in.  In this case, honouring builders of the _league_ as opposed to\n>builders of the _sport_ becomes a chicken-and-egg type question. (although\n>it was the chicken.....)\n\nEven if Orr couldn't have contributed without the likes of Norris, you would\nhave to agree that Norris couldn't have contributed without the likes of Orr.\nAnd taking a poll of most fans would quickly tell you who the fans feel made\nthe more meaningful contribution.\n\n>>Exactly true.  Naming divisions and trophies after Smythe and the bunch\n>>is the same kind of nepotism that put Stein in the hall of fame.  I have\n>>always thought that this was nonsense.\n\n>Dunno if the Stein comparison is justifiable, since it doesn't look as though\n>his 'unanimous acceptance' to the Hall will hold up.\n\nIt doesn't look as if the division names are going to hold up either does it?\n\n\n-- \n\ncordially, as always,                      maynard@ramsey.cs.laurentian.ca \n                                           \"So many morons...\nrm                                                   ...and so little time.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2331, "properties": {"category": "rec.sport.hockey", "text": "From: mvs1@cec2.wustl.edu (Michael Virata Sy)\nSubject: Re: Red Wings Goespel...\nNntp-Posting-Host: cec2\nOrganization: Washington University, St. Louis MO\nLines: 20\n\n\tDon't forget Paul Ysebaert, ex-Devil.  He's a good team player.\nMichael Sy\nmvs1@cec2.wustl.edu\n \t\t\t    /|______|\\\n                           ||||||||||||\n                            \\||||||||/  \n                  .---.      )|||||/'   \n                 /|||||\\    /|||||/   \n                /|||||||\\  /|||||/     NEW JERSEY DEVILS\n               /|||||||||\\/|||||/      \n              /||||||||||||||||/      \n             /||||||||||||||||/     \n            /||||||||||||||||/       \n           /||||||/\\||||||||/        \n          /||||||/  \\||||||/      \n         ''''' .____/|||||/             \n           ../|||||||||||'           \n     /|./||||||||||||||'            \n    /|||||'       '''                    \n   //|\\                               \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2332, "properties": {"category": "rec.autos", "text": "From: jmh@hopper.Virginia.EDU (Jeffrey Hoffmeister)\nSubject: Re: Dumbest automotive concepts of all tim\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 41\n\nIn article <1ppg8b$fvq@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>joes@telxon.mis.telxon.com (Joe Staudt) writes:\n>>In article <1phoi3$s95@armory.centerline.com> jimf@centerline.com (Jim Frost) \n>>writes:\n>>[stuff deleted...]\n>>>\n>>>The silly thing about this whole argument is that most of the trunk\n>>>releases (I'm tempted to say all, but there's bound to be a\n>>>counterexample) only operate if the car is on (ACC or running).  Thus\n>>>you can't easily pop the trunk without starting the car.\n>\n>>\"Most\" cars?  The only cars I've ever seen with this \"feature\" have been\n>>GM cars.  My `88 Mazda, '80 Honda, and (coming soon) '93 Probe all have\n>>cable-operated releases [...].  My '84\n>>Camaro had an electric hatch release that was (thankfully) independent of\n>>the key in the ignition (the exception to the rule mentioned in my first\n>>sentence).\n>\n>I should probably have said \"glovebox trunk releases.\"  I haven't\n>encountered any glovebox releases that are cable operated.  Numerous\n>GM and several Ford/Mercury cars that I've encountered have electrical\n>releases in the glovebox, and all of the ones I've seen needed the\n>ignition on to some degree to operate.  Your Camaro example is noted,\n>but since it's a hardtop it's not a big deal.  I've never run into a\n>convertible with a cable-operated trunk release -- I'd agree 100% that\n>in such an environment a cable or always-active electrical release\n>would be rather stupid.\n>\n>jim frost\n>jimf@centerline.com\n\nMy Honda has a cable release that can be locked out with the ignition key.\nThe valet key can be left with someone and will NOT unlock the trunk\nor enable the cable release.\n\nI remember my mothers '86 Corvette that had an electronic hatch release\nlocated on the drivers door, which was ALWAYS active.  The fact that the\ncar had no real trunk makes the security measure of beign able to \ndis-able the hatch release unnecessary.\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2333, "properties": {"category": "comp.graphics", "text": "Subject: Re: Looking for Tseng VESA drivers\nFrom: t890449@patan.fi.upm.es ()\nOrganization: /usr/local/lib/organization\nNntp-Posting-Host: patan.fi.upm.es\nLines: 10\n\nHi, this is my first msg to the Net (actually the 3rd copy of it, dam*ed VI!!).\n\n  Look for the new VPIC6.0, it comes with updated VESA 1.2 drivers for almost every known card. The VESA level is 1.2, and my Tseng4000 24-bit has a nice affair with the driver. \n\n  Hope it is useful!!\n\n\n\t\t\t\t\t\t\tBye\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2334, "properties": {"category": "rec.autos", "text": "From: dlb5404@tamuts.tamu.edu (Daryl Biberdorf)\nSubject: Re: LH Workmanship\nOrganization: Texas A&M University, College Station\nLines: 19\nNNTP-Posting-Host: tamuts.tamu.edu\n\nIn article <1993Apr15.203750.25764@walter.bellcore.com> jchen@ctt.bellcore.com writes:\n>I just visited the NY Auto Show, and saw two LH cars on the floor: Eagle \n>Vision and Dodge Intrepid. \n>at a competitive price.  ...\n>\n>Unfortunately, the workmanship is quite disappointing. On BOTH cars,\n>the rubber seals around the window and door fell off. It turns out\n>the seals are just big grooved rubber band. It goes on just by pressing\n\n\n\"Through a single data point, you can draw any line you want.\"\n-- Dr. S. Bart Childs, Professor, Texas A&M Dept. of Computer Science\n\n\nBoth my pastor's late model Corolla and my father's 1987 Stanza\nhave demonstrated the \"falling door seals\" problem.\n\n             Daryl Biberdorf  N5GJM    d-biberdorf@tamu.edu\n               + Sola Gratia + Sola Fide + Sola Scriptura\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2335, "properties": {"category": "talk.politics.mideast", "text": "From: jfurr@nyx.cs.du.edu (Joel Furr)\nSubject: Re: How many Mutlus can dance on the head of a pin?\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 16\n\nIn article <3456@israel.nysernet.org> warren@nysernet.org writes:\n>In <C4xKBx.53F@polaris.async.vt.edu> jfurr@polaris.async.vt.edu (Joel Furr) writes:\n>>How many Mutlus can dance on the head of a pin?\n>\n>That reminds me of the Armenian massacre of the Turks.\n>\n>Joel, I took out SCT, are we sure we want to invoke the name of he who\n>greps for Mason Kibo's last name lest he include AFU in his daily\n>rounds?\n\nI dunno, Warren.  Just the other day I heard a rumor that \"Serdar Argic\"\n(aka Hasan Mutlu and Ahmed Cosar and ZUMABOT) is not really a Turk at all,\nbut in fact is an Armenian who is attempting to make any discussion of the\nmassacres in Armenia of Turks so noise-laden as to make serious discussion\nimpossible, thereby cloaking the historical record with a tremendous cloud\nof confusion.  \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2336, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Thomas Kephart <kephart@snowhite.eeap.cwru.edu>\nSubject: Re: Interesting ADB behaviour on C650\nOrganization: Case School of Engineering\nLines: 29\nDistribution: world\nNNTP-Posting-Host: b62182.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7F350070401F2E6@b62182.student.cwru.edu>\nX-XXDate: Thu, 15 Apr 93 17:46:47 GMT\n\nIn article <16BB1A4DF.DJCOHEN@YaleVM.YCC.Yale.Edu> Daniel Cohen, \nDJCOHEN@YaleVM.YCC.Yale.Edu writes: \n>>I've noticed an interesting phenomenon on my Centris 650. If I unplug\nthe \n>>keyboard and mouse and plug them in again without turning the power\noff, \n>>the mouse suddenly switches to about half its normal movement speed. I \n>>check the \"Mouse\" control panel, and there's no change in its setting \n>>there--it's still on full speed, the way I like it. Restarting the\nmachine \n>>restores the normal mouse speed. \n>>\n>>By the way, it happens with both the newer-style mouse that came with\nthe \n>>Centris, and the older-style mouse from my IIfx at work. Thus I don't\nthink \n>>it has anything to do with the resolution setting in the mouse--it's \n>>definitely a quirk of the ADB interface (either hardware or software)\nin \n>>the Centris itself. \n\n>I have noticed this exact same phenomenon occurs with my LCIII. Perhaps\nit \n>is a quirk of the new machines? \n\n\nSorry, but mine works fine  (C650)\n\nMy 2 cents worth...\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2337, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 04/14\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 958\n\n\n------------ Part 4 of 14 ------------\nM)G(F&G*Z<G*R)G(:NB8:NAHFNAJZ<AHF<AJZ)AH:&K*R&B9R)G(F&KHF&AJZ\nM<AJR&B9R)AHF<G)R&AJR&AJRNK)R&AIR&KIRNG(:NB:Z&G(FNAJZ)KJZ<KHF\nMNB;\"NAHFLEU=771T772Z772R)L)]NGT(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\",M_?W_4?]0@U-34U-34U`)+;FX^IHY<,RLK*Y6$`)5V\nM(4,,#`Q#0T-#.R$,(3L[?71_;F[I1)MA*YPG%_51')SA5E9<8X.;LYJ:OK-D\nM\\2(B'<>&O[\\UQS4UD<<U+&EI:8:_Q\\<(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+H:NG)RLF$1$9`1Y7\";2Y!Y\nM1)NSFDL$1#ZL'6C!TQ\"QL2(^FJRLK)IR&JT:<JVM<G)R&JT:<G(:&G(:<G(:\nM<AIR&B8F<B:R&B9R&G*R&K(F&AJZNKHF7;JZ7;*ZLK)TNAZZ'KIT+'0L+\"PL\nM+\"PUQRPLQS4L+#4L-<>_-<?'QX:&QY$(\"`@(\"`@(\"`@(\"`AN2VO4\"=3JP2&(\nMW`*`P3M\\,%R7G.&!5E;KH9_,S!?U45$-V-C*V-C8.LHZ.LK*RLK8+SJ1RLHZ\nMRLJ1+SHZ.FG*.FF&.I%I.I%I.FG'QVDZ.L?'.B_':8;'QY''OVEIQY''QVG'\nM-;^&AK^&\"`@(,P%V'.L-=C/EH8',]1RK#1?,E\"CD)S=65G\";LYI#:+8(\"`@K\nM*P`K$9!N`JR:,'Q<5E9N;@(%.XC(@-.UIWX.C4,=L;8NM:>QB*XB(CXB.S`P\nMFLH\\V&US/)8\\<VW8EM@\\13Q%<W-S/$5%13P\\EG,\\/#P\\T3QS<W/1T7-S<]%%\nM13Q%19:6ED4\\<W-%13QST44\\;7,\\/$5S/#QM/)9S/-ASEG-M<W/*<W/*V,IS\nMECK*03IS;=C*;3HZV,HZ.CK8.CHZ.D%I09$ORCHZ+VEI:9$Z:<?'+SK'D6F1\nMQVG'+\\=ID<>&D9&&AB]I+VEIAL>&QVG'QR\\Z.FDO:<<ZQ\\?'D3HZ:3J&D3HZ\nM.CHZALII.D$OACHOD88Z.CJ1D3J1D<K*:9%IACJ1RI&1+VEI:3HZD2]I.CJ&\nM.CJ1.I''+VF1AI$Z.H8F&AJR<G(F&KH:<KH:)G(:<B9RLG)R&G)R<AJR)AHF\nM<G(F<G*R<G(:<G*R<B8:&B8:MQH:)K<:&B9R<G)R<B9/&G(F<K)R<G)RLG(F\nM&AIRLAJZNG)R)KJRLB:Z)KJZNAHFNKI=&KH:PETF)B8F\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@F\"`@(\"`@(\"`@(\"$M_?VX\"2P)_U\"#4U-34U-0\"\nM`FX^IIM<,RLK*S,!`#-V0T,,#`P,#`Q#.SM#0SL[.WU+;F[I1)MA8>0G8%'U\nM'.O>-U968X.;,#\":2+.:K*PB(L=I:36&QS4U-6F1-6EIQP@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(NKJR)L*Z\nMLAK\"NBLS$1$1Y7\";2Y`_1)NS9$L$1#Z('6C!TQ\"QL2([FJR:9+-RK16MMQ^M\nM%7*M%:VW<G*M%7(5%145MQ6M%:URMQ]R<JT5%7*MMW)R<K<:<JT:<G)RMW(F\nM<B9RLG(:)G*ZNK*Z)EW\"PK)=NEVZPKH>NBQT=%U]?2PL-2P(\"`@(\"`@(\"`@(\nM\"`@(\"`A&2VO4\"=3JP>`0N<B`P3L^LUR7G.$*5E;KH8%6E!<745'U.I'*.LJ1\nMRCHZ+Y'*RI&1RI%!.H8Z+VG*.D%!.I$Z+SII.CJ1QY''D3HZ.L?'QY&1O\\?'\nMAK^&D<>1Q[_':<?'AH8UAL<(\"`@(\"`@(,P%V'.L-=I6<H9]@]7:K#6!65BCD\nMX3=65G\";LYI#:+8(\"&%A*S,S$9!N`O&:LS!\\7%QN;@(%.XC4@-.UIWX.C;6V\nM?K8NM:>QW*XB\\3XB.S\":FFTZ<VV6EI;*V#QS/,J6/);8<]@\\<SS8<]A%145S\nM<W-%/#Q%;3Q%EG-S/$4\\<W-%/#QM<VT\\13QS<SQM<SS8<Y8\\<]C*<]C*ELIS\nMRLK8RCI!RLK8.D'8RM@O.LK8RLK*D9&1.LHZ+\\J&AB\\ZD3IIAH9ID<>1.L=I\nM.I%IQY&&D<?'AFG'QR_'D<?'+\\?'QVF1Q\\?'AI&1Q\\>1:<>1:9%IAI'':2_'\nM:88ZD2_'.I$ZD88OAFF&D2\\ZD<>&D9$O.CIIQSHZ+SHZD<<Z:3HZ+R]IQSHO\nM:6G'+VDOQVF1:6G'+\\<ZD<=IQ\\?'QX:1OVG'Q\\<:&G)R&B:R)K(F<G(:<K)R\nM)B9R&B9R&K<:<G(:<D]R<G(F<G)R&D\\:<G(:&G*W<D]R&G)R<G)R)AIR<B8F\nM<B9R&G(:MR8:)AI/<D]R)B9R<B8F<AJRNAIR&B:Z&AHF&B:ZNET:&KHF7;H(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+JZLKHFNAH(\"`@(\"`@(\"$M_\nM?VYNV6X\"U'_4U-34U-34`FZ@99M<,RLK*S,```!V0PP,#`P,#`Q#.SM###L[\nM.R%+;F[I1)MA8>3AGV#U'*O>S`8&4*&.?#\"S&'R:9*PB(BPL-<?'O\\<UOS6_\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`AT?7VZNAZZNKHF=\"9=70`S,Q$SY>&;)9`_99NS9$L$1#ZL'6C!TQ\"Q\nML2(^FJR:FGRMK7*M%;<5;ZVM'ZT5%145;ZVM%145;V\\5;Q45%6]OK:T5;ZUO\nMK:UOK:T?%:VW;Q6M3[=RK:T5MW(5'[=R<G*M<G(:&G(:&G*R)KH:<AH:7;*Z\nM70@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`A&D#8\"U-2`P2$0MM2`P3N@FGR7Y>&;?#!C\nMH8Y65I\\745'U03HZ.I%IACJ1:6DZ:<HZD9%I.FEI.FDZ:6F1D9&1:3HZAFDZ\nMD2_':<?':6EIAI'':8:_D6G':34UO\\>&-;\\UQ\\<(\"`@(\"`@(\"`@(,P&5'.L-\nM=I6<)Q=1]1RKWI]6!LWDX9165G\";LYI#:+8@?\\,1$1$S$9`\"`B*LFC!\\7%QN\nM;@(%.XC4ZM,0IWX.C;6G?K8NM:=^M:[Q\\3XB.YJ:FCK*.CI!.LISRLIMRLK*\nM<SQMV'.6<SP\\V,H\\V#QSRCQS<]C*/&US/'.6<\\K*V'-MRMC8<W/8<VUSRFUS\nM;<ISV-AMV#K*V,K*;3K*RLHZV)'8D88ZRB^&D<J109$Z.I%I:6F1:2_':6DO\nMQ\\?'AFF1+\\>_QY&1Q[^_:6F&OVEI:;_':;_'QVG'Q\\>1Q[_'D;^1Q\\?'QVG'\nMAK_'O\\?'QVEIQ\\=I:3HZ:89I+SJ&QY&&:<?'D2\\O.B_':6F1D<>1D3II+VEI\nMD<=IQY&1Q\\?'D<?'QVDO.L>&QY%I-<?'Q\\>&D6F&OVDUQ[^_:34U+#4UQS4:\nM&D^R&G)R)B8:&B9R)G(:)B8FMW)R&G)R&G(:<K>W<G(F<B:W)B9R<D\\:3QIR\nM&K>W<G(:<G)R&G)R&AH:&G)RMR8:<G)R&G*W<G)R&G)/<AHF)G(:<G(F)K(:\nM&AH:NAH:)B:R\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BRLL(FNAH:\nMNKH:L@@(\"`@(\"`@(\",M_?VYND&Y+R'\\\"U,C4U-34`LN@99LP$=!AT#,```\"\"\nM#`P,#`P,#`Q#(3M##\"$[.R%+;F[I1)MA8>7A-\\Q1=JO>S`8&4*&.?#`P&'R:\nMFF3Q(BP>-;_'++\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"'TL-7U]?34L'BQ]77U='GU]70\"5,S,S8^&;824_\nM99NS9&[I1#ZL'6C!TQ\"QL2(^K*RDFGQR<JUR'Q6MK:VM%6\\5%15O;Q^M;V\\5\nM%16H;Q45;Q45;Q6HJ&^H%16H;V\\5%6^H;V\\5%145%15O;Q5O%145;Q45%145\nM%:VM%;>M<JUR3QJW<@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`CN)39N:]2`33N(\nMMM2`Z#NNFK-&Y7\";L[-C@XY<7(%@S&#U:9%ID6F1:<=I.L=I.FG'QY''.L=I\nM.I&&D6DZD<?'QVF&QX:1:8:&QX:&D9&1-6G'QS7'O[_'O\\=IQRPL+#4(\"`@(\nM\"`@(\"`@(\"`@(,P&5'.L-=G;K#?7U41SK)PI67,WD@5965G\";LYJ@:+8@?VX1\nM$1$S$6[4U\"*LFK-\\7%QN;@(%(=S4ZM,0IWX.C0RVL;8N$*>QB*[Q\\3XB.YJ:\nMFCK*RLHZRMC*RCK8RMAM.CISRMC8RG-SRLISRG/*.G/*;<K*<W/8;6W*RLK*\nMRFW*RLI!.LHO;<IMRCK*.B^1D3HZ+SHZRCHORCI!.CHO.B_'+VEID6G'QY''\nMAI'':<<UQS7'QS7'AL>_+,?'+,<U-<?'ORS'OS4LQVF_QS5IQ\\?'-<<LQRPU\nMQVEIORS'+,?'QS5IQS6_:9&&-<>1QX:_AK^_+\\>1OY'':<?'QVG'QY%IQ\\>&\nMAFEI:<>1QR^&QY%I:6EIQX9IQ\\?'Q\\>1OY%IO\\>&:;\\UORPUORPU-6DL-<<L\nM-7V_Q\\<>'AY]'AY]'BPF)B9R<AH:<AIR<AIRMQHF3[<F)AIR&G(:<G*W<AIR\nM<AIR&G)R<AJW<K<:<D\\:<K<:3W)RM[>W<G(:MT^W<AIR<K<:<AJW&AIR<K>W\nMMW)R)K=/<AIR&B8:&G)R<G(F&@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"'U]?;HFNKJR)KK\"\"`@(\"`@(\"`@(\"`@(\"'\\@()\"0)6YN`DL\"U-34U-34\nMR,N@1)NS$6%A83,S*P\"\"#`P,#`P,#$-#0SLA0T.^.R$\"2V[P1)MA*^3A-\\Q1\nM'*O>-U968X..?#\"S2'R:9&3Q(BPL+`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(-<<U-36_-2PL+!XL+\"QT?5TL\nM'G1]78)VE3,S4.&;824_99NS9&[I1#Z('6C!T[6QL;E#K/&DFGQRK:VW<D^W\nMK14?MQ5O;V\\5%6\\5%6]O%6]O%6]O%15OJ*AO;ZAO;V]O%:BH;ZBH;V^H;Q45\nM;ZAO;V\\5;V]OJ*AOJ&\\5;V]OK145%16M\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@'*]E+;G^J33NNMM3JZ\"&(K)JJY4@^FIKE@XY\\?`K,-\\SUD<=IQ\\>1\nMO[^1AFG'Q\\=I:6F1QY''QY&1:9''D9&1QVDOQ\\>1D<<U:;_'-36&O\\=IQS7'\nMQRS'-<<L+\"P(\"`@(\"`@(\"`@(\"`@(\"`@(,P&5'.L-=G:K#?518!R<X0I<7,WD\nM@5965G\";LYJ@';G4U&X1,Q$1$6[4(!WQ9+-\\7%P\"`L@%(=S4ZM,0I^\\.C4,=\nM';DN$*>QB*[Q(D,B.YJ:FI$ZD89!.B\\Z.M@O.LK8RLJ1D3K8RMC*RCJ1V\"^1\nM.B_*.CHZD3K*.CK*D3J1D9$Z.CHZ:9&1QX8Z.L<Z:6EIAL?'D6F1QVEIAL>&\nM-<?'+,<U+,?'OS7'++\\UO\\?'QQX>?;\\UQRPL+,?'?1XU+!XLORR_+#4>+!Y]\nMQRR_'BPU+,<U-2PL++\\U-;_'-34L:<<L-<=IQ\\=I-36&-6G'Q\\?':6G':9&1\nMD<<OD9&1QVF1Q\\>1AK^1Q\\>1QVF_OY&1QX;'Q\\?'QS7':<=I:34UO\\?':<?'\nMQRS'OQXUQRP>+'T>QRR_+#4>-34L'GU=PG0L+!YR<G)R&AH:)K)R&G(F<G)R\nM<G*R<AHFLB8FMQIR&G)R<G)/)AJWMR:W&AH:<K=R<AIR3QIR&G)RK;=RK7)R\nM<G*MMW)R<G*W<JUR&K=R<AJWMW*M&G*W3R8:&G((\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`A]?2Q=75TL?1Y]?2P(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM5R60$9!N;DL\"U-34U-34R'^N1#Z:824E)1$182L`P<'!P>CHZ.CH0SL[0R&^\nM.R$\"`@+P99O0*YSAG\\Q1'*O>E%9<8X.;,#\":OK-DK&3Q(@@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`B_-6EI:35I\nM-2S'+#6_Q\\<UORPL-7W'OWU]++R\\=I52ZR<*T&$_99NS9&[I1#NL'6C!T[6Q\nM[[E#K\"*LFGPF&G)/&K<:&AIRMZVMK;<5%:T5MQ45K:T5'Q45;V]OJ&^H%6]O\nMJ&]OJ&]OJ*BH;V]O;V^HJ*AO;V^H%6^H;V\\5%145;V]O%6^M\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`A9*Q$1;FZJY4BN(M2`C4/<(JRJ34B@K&3E\nM99M\\,`J45C?U-37':6F&Q[_'QY%I:<?'QVF1QX:&Q\\>_O[^1-<?':6G'QY&&\nM:2S'Q\\=IQ\\<LQS5IQ\\<U+,<L'L<(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(,P%V'.L-\nM=G8<#?5@-SF<X0I\\?,VA@5965AB;FIJ@';G4U&X1,S,1$6Z-7U_!P<%$2DIN\nM;@(%.]S4@-.('6CJ2D,B';DNM:>QB*XB(D,=.Z9I+SJ1.H:1:3HZ.I%I+VE!\nMD9%I.LII:2\\ZRCJ1+VDOAFDZACK'QSJ1D<>1AL?':<?'Q\\?'QVF_-6G'OX;'\nMQ\\<L+,<L++\\UOS4U-34LQRR_+\"QT+'0U-1Y]71XL=!XL'AY]72Q=71Y]PBQ]\nM+,)='AYT+'TU?1XL-7U]?2QT+\"PU+#4LOS6_+#4L+,<>+\"PL++\\L-;\\L-36_\nM:<?'O\\>&-36_-361:6EI:35I-<>1:<>_QVF&O\\<UQS61-<>_Q[\\UQ\\?'QRR_\nMQ\\?'ORS'QRP>+\"P>'L>_+'U]-34U='U]+\"Q=?71]?2Q]NKI]+,)T77U]NL*R\nM<AIRNB9R<KHF&B8FNKJRNK(:LAHF<B8:LAJZ&G)R<AIR<G(:<G(F<B9R<G)R\nM&G)R<G(:<G)R<G)R<G*M<D\\:<AJWM[=R&D^W&K=R<K<:&AIR<G(:\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"PL-<>_-2PL-1Y]\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"!$1$9\"02TL\"U-34U-34U'^(2J!D82792Q$E86%A\nM34VF3<'!34U-3<$[(2&^.R$\"?P+PIH[0*YSAG\\Q1'*LG5HPP8X.;,+.:OJ2L\nM\\:PB(@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\",>&OS7'-361:9$UQ\\>&QX:&:<>&QS4U+,=I-35I-1,3$W9VZR>!*V$_\nMIINS9$L$1#N('6C!T[6Q?KE#\\2*LFGRZNKH:LG*Z&G)R&B8:)G)R<JURMW)R\nMK:UR%16WM[=O%:VM%15O%6\\5;V\\5;ZBH%6]O;ZAO%6]O;V]OJ!5OJ*@5;V\\5\nM%6\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`A9=@<S$25&Y4@^\nM\\<B`Z`RY'2*`33NN(O'E1)LP,%Q65C?U-<<LOS6_-;\\L:;_'+&G'AL<LQ\\>_\nMQ[_'QVG'+,=I-6DL-<<L+\"PUQS7'Q\\<L-<<UO[\\LOS4(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(*Y5V'.L-=G8<#1?,E#F<X59\\,`2ACE9<7!B;FF2@(KG4U&XS\nME2L1IJ:FIJ:FIL%$2M-N;F[.TXC(Z4JN(B*`1#NL(MS3$*>QB(@B(D,=.Y''\nMD<?':2\\ZQX;':3K'QR^1.L=IQ\\=IQR^1:<>1OY&&Q\\=IAL?'Q[_':2S'+\"PL\nM+\"R_ORPL?37'OS4U++\\L='TL+!XL?2S\"+%UT=%VZNGTL75U]NK)]NEU=?<*R\nM7;*R'GU]'GT>NKIT=\"Q='G3\"+'VZ75UT=\"PL72PU+\"PU+\"PU'AZ_='TLORPU\nMOQXUOS7'-;\\LQ\\<UQ\\<LQS7'QVG':<?'AL?'D;^_Q[_'Q\\?'AL?'Q\\?'+\"QI\nMOS5IQS6_-;_'Q[_'Q\\<UQRPU-34L+#4L+\"P>+'TL?70L?5U=?7U]?2PL+'1]\nM771]?7U=='U==+*Z?5VZ7<+\"75VZ)ET:&KJZ7;+\"&AIR<KHFLKJR)G)R&K*Z\nMLB9R&KH:LAIR&G(:<AIR)AIR<G)R<G)/3T]RMQHF&G(:<AIR&K=R<K<:&JT:\nMMW*WMP@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@UQ\\?'-<?'+,?'\nM+,<(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!$1$9\"02TMN`LC4U-34\nMU\"`02D/QPTMN2TN02Y!A/JPB0W[!$NCHZ.CHP2&^.R'4U`+PIH[0*YSA-S=1\nM'*LG5EPP8V6;LV1DOJ[Q(JPB(@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(Q\\<U-36_Q\\?'QY&1-9&_Q\\?'D361OX9ID<?':9''\nM:6G'QQ-V$W:\\JR>!*RL$IINSFDOP93NN'6C!T[6Q[[E#\\2*LFGPLNKJZ75U=\nM?;I=LKJZ71JZ&K)R<G)R&AIR<G)RK7(:<JVW'W)RMQ\\5%4]/%:T5;ZT5%16M\nMMZT5K14?%;>M%:T5K1\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@<$Y4S$6%&Y7`^I`*`P4.VL1V`P3N('2+E1)NSLUQ65C?UORPLQ[_'\nMQS4L++\\UOS4LQS7'O[_'Q\\?'++\\L-2PL+,<L-2PU+\"Q]QRS'++\\L-<<L?7T(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(`(1V'.L-=KP<#1?,5CF<X59\\,`2A\nMCEQ\\7$@^FJR@(MS4U)`K=N3DY(.#@X,K!Q%$B!V0D&[.2JX\"@$H^K/&`1#ZL\nM\\8C3B&A^W(@='4,=.\\?'Q[^1:6F1OVG'AH9I:6G'Q[_'AK_'QVDLQRS'++^_\nM+,?'+,?'-1Z_O[\\U?71]+%U]77TLPBPL72Q]NAZRPEU=NB:Z7;*Z728FLB:Z\nMPKJZLKJZNK)TPKJRPK*R729TPKI]7;I]NKJZ?5VRNK*Z77VZ?7TL=\"Q=7;HL\nM?2Q]?5TU=\"Q]-;]]'GTL?36_+\"S'+#4L+#4L:34LO\\>_-<?':36_QS6_Q\\?'\nMAL=I:36_+(;'Q\\?':<<U+&DU+,?'+\"PLQRR_O\\<U+#7'+\"PL-;]]++]]71X>\nM'GU]NBQT+'1]+%U=?7TL?5W\"7;I]77U=NKJR7<*ZNKHFPKJZ)KHFNB9==%TF\nMNEVR=+HFLKH:7;JZNK*R)K*ZLB:ZNAJZNAH:NKJZNB8FLKHF)AHF&B8F<AHF\nM<G)R&G(:&K(F<G)R&G((\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"(:_QS5I:<=I+(;'\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"&$1$1&0)4MN`LC(U-34U-00TZXB2VYN;FY+;FYAFZSQ0WZ(P1(234U-34U-\nMOCO4U`+PIIO0,YSA\"C=1'*LG5EPP8V6;LRUDOJXB(JSLB`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`B_-<<L:<?'-<=I+(;'Q\\?'AFG'\nMD<<UO\\>&QX9IQ\\<OD<>1AB_'D;QV=G83JPV?`2O-@XY\\+24$ICNL'6C!TQ\"Q\nML;E#K/&DFGPLQWTL'AXL71XU+'UT?;I=?;K\"NGVZNB;\"LL(F&KHFNAIR&KH:\nM&K(:<G)R<B9R&AIR<AIR<G)R<AJMMZVW&@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AV=G:5,]#NY>&;I&ZJP2&Y?J?JP2'<:!U-\nM2CZ:FEQ65C<7-2P>'AY]QRPUQQZ_Q[\\LQ\\<L-;^_+!XL'BS'-7W'+#4L?2PL\nM?;\\>?35]?2PU+'T(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(4G9V'.L-\nM=KP<#1<W5CF<X59\\,`2#CGPP?+X^K/%#(MS4`A&<Y(.#IJ8X.#@'$=E$B\"(1\nMD$MY2*!N\\&6;FJRJICN:K(C30VA^N8@='4,=.\\<U-<=I:<<U:;\\LQ\\<LQRS'\nM+#6_+,>_-7TU+\"Q]+#4L?71=-7U]?1Y=++I]PGT>'GVZNL*RNKJZ728:=!HF\nM75VZ)KHFLAI=)B:R)KJR)KJZ)B:Z)K(FLKH:NB:ZNAJZLKJZ75TF?7TF)KI=\nM?;JZNGU]='UT?<)=NET>=!XL-2Q=?34U+\"R_-<<L?2PLQRPLQ\\?'+,<L+,>_\nMQ\\?'O\\=IQ\\?'-34LQVEI:34LQVEI-6DU-;^_QS4UQRS'O\\<U'BP>-2R_+,=]\nM?37'-7TL+\"PL?2P>77U]?1X>+\"P>+!ZZ?5U]+%TL+,)T7;HLPKJZNAZZNL)]\nM'GTLNKK\"?7U=7;JZ?73\"'AY]75U]=%UT7;HF771T7;K\"NGU=729==+*RNAI=\nM7;)=7;HFNKHFLB:Z<AH:&G(FNKH:)B:ZN@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`C'-6F_:35IORPUQVD(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(QRPU-2L1$1&0)6YN`LC(U-34U-00TX@B2VX\";FY+;FYA\nM/IJL0WX,$A(2P>CHZ.C!$A+4U'_P99MA,^3A\"I1@'*O>5HPP8V6;LYJL.Z0B\nM(JPBB`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!XL-7W'+\"S'\nMQ\\?'QS4L:2QI-<?'AL>&D8;'D8:1Q\\>1D3J&QX;':2\\Z.H)2=G9VJPT7A\"LH\nM@XY\\LR7PICND'6C!TQ\"QL=Q#K*R:FGQI:6F1QX;'QS7'QVDL+#4UQ[\\LO\\<L\nM?;\\L?34L72PLNGU]'AY]77VZNGTFPB9TNKI=NAH:LEW\"7;JZ70@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"%VRNKIV=G9V,RONG.&;\nMLTM&ICN(:'[JZ.\"YL6A-2J\":FGQ65C<7?;]]?7U]+!['++_'QS4L?34L-7TU\nM?35]+!XU?2PU+!XLORQT77TU?1XL?7T(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`A==G83'.L-=A,<#1<W5CF<X9M\\,`2#CGRSL[X^K/%#';G4Z.CH\nMP<'`P,#`.'79$1%$0_$1$25C1'PE\\(.;,)JJIKZ:9*[30QVQN1!H'4,BOC4L\nMO\\>_'BR_+#4LQ\\=]'BQ]-34L+#4>77TL72P>++IT+%U=7;JZ7;)=NKJZ=+)T\nM)EU=NKJZ&KI=PKJZNKH:LKIR)G(:LK(FLB:ZNKHFLAK\"&AK\"72:Z)AH:LAI=\nMNKI=)EUTNB9=)B:Z?7U]75VZNBQ=?;I]'ETL=\"Q]77UT?2PL?2Q]?2PU+'W'\nMQ[\\L+,?'QRPLQVF_Q\\?'++_'QS5I:34U:<<UQ[]I:<=I:2S'QRPLO\\=IQRR_\nM+\"PLO\\<>Q[_'Q\\<UORPL+\"S'OWW'?34L-2P>+#4L?1X>+\"PU+\"QT+\"PL77U]\nM+\"QT?<(L'AYT='UT++JZ?7TL+'U=?5TL75T>++I=+%U]+%W\"'BQTNL(>'EU]\nM?;ITNG1=++IT'AY]NEVRNKJZPKJRNGU=7<*Z7;HF72:R&AH(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+^_+'TL++_'-<?'QP@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`B&AFG':35I-3,S$9\"02VX\"`LC(U-34\nMU-00TX@B;@(\";I\"0;FZ0/IJ:.WZU'GTU?5UT+,*Z?1[4U,CI1)MA$>3A\"E;,\nM'*L--P8P8V6;FIJL.Z0B(JPBB`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(?7U]+%TU=!YT-1Z_+\"R_+\"P>+,?'++_'QS6_+(;':9&1:;]I:2]IQY&1\nM:9&1AH*5E79VJPWU=@`HH8Y\\,\"4$ICN:'6C!+A\"QL=P^FJR:FIMI:<>&:<>1\nMD6F1+SJ&+\\>&:<=IQ\\<UQX8LQVG'-6EIOVG'Q\\<LOS7'OS4L'C4L+'TLOWTL\nM+#4>\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"PL\nM+'U]+\"QV=E)V=@%9ZR<*?\"5&IKZN':?JZ.\"Y?G[!TT/QK+-65C=@+\"PU-36_\nM?34L-;\\L+\"PU?34L?2PU?34L-2R_=+\\L'GTL+!X>734L=\"P(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`A]+\"Q]O+QV'*L-=A,<#1<W5CF<X9LP,%\"F\nMF[.:L[X^K/%#';E_\"`@(\"\"P>+,<UQ\\<1$1%$H*P1825C99MA1J&.?#\"J@XZS\nMFJY*0QVQMA!H'4,BOL<>+\"PL-2S'ORPL'BPL?2PL-7U]='0L+'U=+\"Q]72S\"\nM?;JZLK)]NEU=NETF71I=&K*ZNB9=&AJZ)KHF7;JRNKHF)L(:NB8:NB8FNB:Z\nMNAJZ72;\"NB8F)L+\"NKHFNGW\"NGU=NKI]'EU]772Z=%T>-5TU77TL='TL+\"R_\nM?1XU'C7'-<=]-2PU+,<LORS'++^_Q\\<LOVG'Q\\=I-<?'Q\\?'O\\<LQ\\=IQS7'\nM+,=IQRPLQ\\>_:2PU-<?'ORPU-;\\L+\"S'-2PLOS6_++\\U-2Q]-2R_+\"S'++]]\nM+\"Q]-1XL?34L?<<LQ\\<L?1X>+'T>O\\<>+'TU+\"Q=NKJZ+\"PL+'1]'EVZ71ZZ\nMNETL72P>NBQ]?71]=%TL72P>+,*Z72PL?2Q=7;JZNGU]=+IT'GUT+%U]PAY=\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(?1ZZ=!Y]+%U=PGT(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(QVEI-;^_OVDUO\\?'\nM-2LS$9!N;FX\"U-3(U-34U-00TX@B;FX\";I\"02VYN/F2:.^^U++\\UOP@(\"*;D\nMY)S4U,CI1#XE$>3A5E8W'*L-S`9<8X.;LYJL.Z3Q(F3QKDO+R\\M+\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`A]?;JZ?5U]'ETL+%UT='T>=!XL-2PL'BS'QQXUQ\\<L\nM:;\\U:35I-<>_Q[_'Q\\?'QVEI:0`S,S-VJPWUO((HH8Y\\,&$$ICN:'6C!+K5H\nML=P^FJRSLYN1.LHZD9$Z+T&1ALHZD3HZ.I$ZD6DZ:8:1+VG'+Y$ZQ\\>1D<?'\nMQ\\=ID6G'D;\\UQX8U:<?'\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"\"QIQRS'+\"R_OS4<E943=@$<JR>!7&%&IKZD(AWJP2&YL7[!\nMTT,B(K-65C=@-2S'ORPL-2R_+\"PL+#5]+\"P>?2PU+#4U'BQ=-;\\L72QT+\"QT\nMP@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@L-7T2$A)LO!-V=JL-\nM=A,<#1<W5CF<X9LPLU\"FF[.:L[X^FJQ#';G4;FZ0FIHUO[_'+\"P'$1%$H*PE\nM824_@U;0EZ&.7#!&Y(Y\\FJ1*H!VQN1!H'4/Q2\"S'++\\L?34U-7TU='1]+'UT\nM?5TL?2PL?;JZPKJZ?7U]7;I=NG2ZNEU=NKI=='0F?2:Z7;I=NB9=770F7<)=\nMNK(F?;HF75UT=+ITNKJZPKI=772RNG1=?1[\"+'1]+\"PL+'T>72Q]72PU'GUT\nM?7U]-7TUO[]]?2Q]?1['+\"R_+,>_+#4LQ[_'-2PUQS4L:2PL+#4L-2PLQVF_\nMQRPLORS'O\\=I-2S'OS7'Q\\>_OS4U+&DLQ\\>_+,?'OVDL-36_+\"S'ORPUOVG'\nM++\\LQS4L-2PLORS'-2PU+#7'OVG'+,?'Q[_'Q\\>_+\"PL+,>_-2S'QS7'-2RZ\nM7;JZNKK\"729=?7VZ'EU]?5U=?71='KJZ?5UT77U]PKIT+'W\"72PLNKI=++I=\nMPBQT+'TL7;I]+`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!K\"\nM&KH:PKJZNKJZ=`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`C'\nMORS'+\"R_-<<LQS4LQ\\?'+\"LS$6YN;@(\"U-34U-34R-00TX@B;@)N;F$E2V[9\nMH*RL.[&U\"`@(\"`@(\"*;DY)P\"U-3I2CY+$>3A5E:4'.L-43=68X.;LYID.YKQ\nM(IJLI']_?W]_PV%AD,L(\"`@(\"`@(\"`@(\"+JZ7;JZNKI]7;I]NKJZ?;I='GVZ\nM'AYT+%TL?1XL-2R_?34L+\"P>O\\<UQ\\>_+,=IAL>_-6F_:0`S,S.\"JPWU$W8H\nMH8Y\\,&$$ICN:'6C!+K6QL=P^FJR:LYN1.LI!.I$ZRI$ZRCHZ.LK*.CHZ+SK*\nM0<J&+Y$OD2^1.CHOD<HZ:3HZRD$ZAI&1:3H(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(:;^_:<=I+Y%IQ\\>_+X8<E943=@$<JPV?\nM5M#NY!BSK\"*`P2'<:+'!TX@=(J1<5E87QRPL+#4L+,<U+!['+#4>+'TU+\"PL\nM=!XU+#5T'BPL72P>+`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`A]\nM$A)L;&P2;&QL$Q-V=JL-=A,<#1<WE#F<X9M\\,`2FOK.:LT@^FIJ@:+G4`FYN\nMFIHLQS6_O\\<'$1%$/F1A827-H0H!.:&!5ER7H8Y\\LZ!*0QVQMA!H'4.L2'TU\nM-<<U?2Q]+\"PL?2P>+\"PL+!Y]NBQ]?;I=?1ZZ++I=?;HLPBQ=?7U]'BQ=NGW\"\nM?7U=?5U]NG1]?5U]72RZ=\"PL+\"PL+!YT?1XU+\"Q=-7TL='0>?34L734U+'U]\nM?2PL'C4L+!XLQS4>?2P>Q\\<L++\\LQ[\\LO\\<L+#7'-<<LQ\\?'+#4UQ[\\UORPL\nMQRPU+,>_QRS'Q\\<LO\\?'QS4L:<>_+,<L-2S'-2PL+,<LQ\\<LQ[\\U-6DL:2PU\nM-35I:<<L:35IQVG'Q\\?':;^_-6DUQ\\?'-6G'-<?'AC7'-<=IAL>&-<?'-6G'\nMQVEIO\\<UQY'':;^_ORPFNB:ZNB:ZLB8FNAHF7<)=75U=NEU]7;JZNKI]NEVZ\nM?1X>NG2ZNKK\"NKI]+'2ZNBP>770(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(MQI/M[=R<G)RM[<(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\",)]77T>NGT>?7TL'L)]+\"Q]+#4>?2LSD&YN`@+4U-34U-34\nMU-00TZXB;FYN2V%A2VZ0H*RL(;$0\"`@(\"`@(\"*;DY.L\"U-3I2J!+$>7A5EQ6\nM.>L-]<Q68X.;,)J:OIJLK)IDLW\\@U\"`@R\\.02W\\@('\\(\"`@(NB8FNKJZ=+JZ\nMNEVZ?<*Z?1Y=75TL=%W\"'GVZNBPL77VZ72Q]+\"Q]?35]+\"PU'BP>+\"PUORS'\nMOS4U-0`S,S-VJPWU$W8HH8Y<,&$$ICN:(FC!+A\"QL2)#FJRSLWPZ03HZRLJ1\nMRB]!.CJ1RLK8RB_*.CJ1D=@Z.B\\ORLHZV-C8.CHZ.LHO+\\J1.D$(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(.CII:6F&.CJ1:2]I\nMD8:1:9$<E96\\=@$<JPV?5BLYY!A\\FO&`P3N('6CH+K4=(J1\\7%87Q[\\UQVG'\nMQ\\<U+!XL'BPL+\"PU-35]-34L+'1]+'1]+`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@((.+BXFQL;!(2$FQL$Q-V=JL-=A,<#1?,-SF<X59\\,`2F\nMCK.S?$B;LYH^:+G4U`)NK*PL+\"PL+\"PS$1&F/IIA86'-H9\\!')R?5E:7H8%\\\nMLZ!*0QVQMA!H':\"L2'0L?;\\>?1Y]?2QT+#4U+\"PU?2PU+'TU+!YT734L-2PL\nM77TL=\"R_?70U-2PL'BPU-1Y]QRQ]?2P>+\"PL+\"R_OS6_Q[\\L-<>_+\"QI-;\\U\nMO[\\L-<?'-34LQ\\<LQRQIQ\\<UOVG'O\\=IQ\\<U+#4LQVF_++_'QS4U+\"R_-34L\nMO\\?'Q[\\UQ\\?'+,?'+#7'QRS'++\\L'A['-2PU+!XL++^_ORS'-34UQ\\?'QRS'\nMQ\\<U+#4LQ\\?':6DUQ\\?'-37'O[_'Q[\\U:<>1QVF_QVG'AL>&+VG'QVEIQY$O\nMQR\\OQR_'AI''D<?':<=I:<<OQ[_'OY%IAH:_Q\\>W&AIR<G(F&G(F<G(:)AHF\nM<K)R&G*R&G)R&L*Z&KJR7<(FNAHF=+JZPB9T=+I=\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+>W<AJWMW*MK;>MK0@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BW&G(:)K(F<AIR<AJZ&L*ZLAHFLAJZNL)=\nM72LKD&YN`@+4U-34U-34R-002D/Q;FYN2V%A)4N00_'Q0^\\0\"`@(\"`@(\"*;D\nMY.L\"`M0.2J!ND.48FS!6.9S>]5&44*&.?#\"SOK.:FIJ:L]34U-34U`)+`M34\nMU\"!])EVZNKI=)K*ZLK*RNB:ZNL)T75VZNKJZ?7VZNEUTPEUT?2S\"75T>+\"P>\nM72PL+\"Q]=\"Q==!XU+'TL++\\L+``K,Y5VJPWUO%(HH8Y<,&$$ICN:(FC!+A\"Q\nML=P^FJRSLYN&QY&1.D%I:6EI:9&&+\\K*.I&&09$Z+\\K*.LK8.CHZ+SHZ.CK*\nM.LHZ.@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nMRB_*.CJ1D<HO.LJ1.B^1ALHZ0<IV4I6\\=E(<JPT7E\"LYY.&;FF2J33NN(AWH\nM+K4=':!\\?%;U:;\\U:34UQ\\<UQRS'Q\\<L'BP>QRPL+!Z_'BPL+`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(?P5L;&QL$A)L$A)L$Q.\\=JL-\nM=A,<#?5@S#F<X59<7,V#CGPP?!B;,+,^:+G4U-0\"(B(L+'TU+,<'81%-/IIA\nM$6$HH6\"$'`T7-U:7H8Y\\LZ!*0QU^MA!H'4.L2\"PU'C4L++\\U-;\\LQRPU++_'\nM+,<U?2PU-2PL?2PL-2PLO\\?'ORR_+\"R_-<<U-<?'-9&&:<?'D;^1QR_'QVF1\nMD8;'D2_':88O:6EI:6EI:8:&:6G'QY%IQVG'D6F1:<>_QVF1:<?'AL<UOS5I\nM+#7'-37'-34UOS4L+\"QI+\"PLQRS'ORP>+,<L++\\U-<<UOS4LQRP>QRR_+\"S'\nM+!XUQS4U-34LQQXU++\\LO\\<UOS7'QS7':34UQVF_QVDUQVEIQ\\>1:6G'D9$Z\nMQVEI:<<OQY''.CHZ:6G'D9''.I$Z:2\\Z:9&1:<<Z:6DZ:9&1QY''+Y$OD6ER\nM<G*M<K=RK1IR<JVMMQIR&G)RMW*W)B8:)B9R&G(F<G(:&AIR&G*ZL@@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(3T]R<G)RK:UR<G((\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+>W<A6W%16M%;>M%;=R\nMMW)R&G*W<G*M<K=R<G(:)BMA2TMN`M34U-34U`(\"`@*U2CZL;DMN)1%A)9\"0\nM0R(B0WZU\"`@(\"`@(\".3DY.M_`M0.2D-N;N48?#!<.>3>]5$W4*&.?#`P&'RS\nML[.:?-34U-34(`)_(-34U-2ZNL)=?;HF7;*Z=+)=?;I]LEUT?29=?72ZLEVZ\nM728FNKJZ?7VZLGVRNKJZNEVR'KJZNG2Z7;JZ=%U]'BQT+`\"5E783JPWU=I4H\nMH8%6,&$$IKZ:(FC!TQ\"QL=P^FF2SLWS':6G'Q\\=IQY'':<?'AL>&.I$ZQVG'\nM.CJ1+VEID6DZ+VF1ACJ&00@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@ZRLK*.D%!.LK*RB\\O09$ZD6DZ+\\K*:89V4I6\\=H0<JPT7\nME`$YG.%6,)JJ3;Z@(AWH+K4=':!\\,(SU-34L-;_'-;_'ORS'QRPL+\"PL-2PL\nM+'TLQP@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(RP4%\nM!6QL$A(2$A)L$Q.\\'.L-=A,<#?518!SK)U967,VACGPP7'\";,#`^:+G4U-34\nM'1TL?35=+\"P'81%-.YIA$6$HH6\"$'.L7S`:7H=9\\FJ1*0QU^MA\"Q'4,B2+\\U\nM+\"Q]-;\\U?34U+!XUO[_'+#6_-;_'-35ID<=IQS61:6F&D3J&QY%I.B]IQY&1\nM.CHZD9&1D3HZ.FDZD6F1.CK*+R^&+SJ1.I&1D2\\Z+SJ1ACHZAFF&+Y''D6DZ\nMQVDZD9''D89I:9$UD6G':9''AFG':2PUQ[\\L-<<>+,<U+,>_+\"PU'AZ_'BQT\nM'BQ]-34L+'U=-2PL-7T>'BR_-34U+'TL-2Q]-2PLQ\\<LQ\\<U+&DUQS4U:;\\U\nM-<?'Q\\>1:<=I:<<ZACJ1D2^1:3K':9$Z.FDZ.FEI+SJ1+VF1:<?'.FDZ+X9I\nM.L=I.FEI.I''Q\\=IQVD5K16M<K>M%:T5K:T5<A45<A6WK:UR<G)R<G)/K;=R\nM<JUR<K=R\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!IR<G)R\nMMR9R<G)R<@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@('Q45\nM;Q5O%16MK145;ZUO;ZUOK:UO%6\\5%:T5MW(5'[=RK2MA2VX\"R-34U-34R&YN\nM;FZN1#ZS$26086$K)9\"00R(=0WZU\"`@(\"`@(\".2<G*M_`M0.2D,\"2TV^?)HP\nM.>0G4?7,4*&.7#`P&'PP,#\"S?-34U-34U-34U-34U-3\"NKJZ7;JZ77TFNKK\"\nMNKK\"NEU]NB:R)B9=NKIT)EU=NEVZ)L(FLETF?;HFLKHFNGVZ)EU=LL)=NKI]\nMNL)=?5)V=KP3JPV?`3,HH8%6,&'-IKZ:(FC!TQ\"QL=P^FIJSLWPUQS6_?;\\U\nMQ[_'+#4U+,<LOVF&QVF&D6F_Q\\?'O\\?'Q\\>1\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@OD6DO:6DO.CJ1ACHOACJ&:6DZACK'\nM.FEID3IVE3-V=H0<JPT7E`$YG.%6,+.JY4B@\\2+H+K5H':\"S,##UQRS'Q[]I\nM:2R_:36_QS4L-<<L+\"R_QP@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`C'-;_'QRPL+\"PL2P4%!6QL$A)L;!(2O!,3.>L-=KP<#?5141SK)PI65LVA\nMCE9\\5G\";?#`^';G4U-34?FA=+'2Z'ET'86%-OK-A$6$HH9^$'.L75E:7@]8P\nMFJY*0QVQN;FQ:$,BOAY]+\"P>+#6_-<?'QS6_Q\\?':361OY%IQR_'+Y$Z.FDZ\nM.B]I.LK*+\\HZRI'*+]C*V#HO.M@Z.B\\O.CK8.CK*.LIMV\"\\Z.CK*D3K*D9'*\nM.CHZRCJ1RD%ID3J1:2_'.L<Z+Y%ID9&_OVG':6G'O\\<U+&G'+,?''K]]OWT>\nM?;]]-70U75U='BPL?2PL+\"PL?<*Z+'TL+%TL'GTL?1Y=-7TL-7V_-;\\>-;\\L\nM+\"PLOS7'Q\\>_Q\\?'Q[_'QX;'D6F_D9''AFF1:<>1+VG'D9''QR_'.I&1+SK'\nMD2]IQSII.FG'.FG'+Y&1Q[^_D2_'O[^1O[]IQS45K;<5%;<5%7*M%:T5<JT5\nMK16W%;<5%;>M<A45%;<5MP@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(LG(:)AHF)AH:)B:Z\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"+=OK6^M%145K16M;Q6M;Q45;Q45%145;V]O%15O;V\\5;V\\5K1\\5\nM;RL12P+4U-34U-34`FYN)9\"@IIM\\$=`1T\"LK81$EB!UH#'ZU\"`@(\"`@(\")SK\nMJZM_`LCI2D,\";DV^LYHPE^0G4?5@**&!7#`P&'PP,'PP7-34U-34U-34U\"#4\nMU-2Z)L)]LK*Z)B:Z75VZ)L+\"7;JZNEVZNETF72:Z)KJZ7>ZSFKH:NAI=&KHF\nM)KHFLKH:NB:ZNB9=)K(:&AJZ)G83$[QVZR>!`3,HH8%6,&'-@YN:(FC!TQ\"Q\nML8@^FIJS,)L>+'VZNEUTPAXL=,)]+\"PL-;]]-7U]+\"S'O[_'?36_\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\",<OQ[_'D8:_Q\\?'\nMQ\\?':6G'O\\?'Q[_':9%IO\\?'AL<<E3-V=G8<JPT7E`$YG.%6?#!&Y4@^K\"+!\nM+A!H:*Z:FC`7Q\\?':<<UO\\<LQVDL+\"S'+\"S'QP@(\"`@(\"`@(\"\"L`@@`(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`C'-<<LQ\\?'-2PU:0@(2P4%;&P2$A(2;!)L=G9V[N3>\nM=G8<J_5141SK)S=6!LWDCE965N%6?#`^';D\"U-34L7Y=?1X>NKH'86%-.[-A\nM$6$HX9\\!')R?5EPH@[ZSFJY*H\")HN1\"Q:$,=OETU'GTL'C4L-2S'+,?':9&&\nMQ\\>&Q\\<O:8:1.CJ1D3HO+T&1D<K8.LK8.M@ZRCK*.LK*V#K8<\\HZ.MAMV-AM\nM<SI!V#HOV&W*+R\\ZRLJ10<HZRCI!.LK*D88O.FF&D6G'+Y$OO[^_-<?'Q\\?'\nM+\"PLO[\\UORP>-7U]'BQ=?7VZNAXLNEU]75VZNEVZ+'U=NBRZPKJZ'KJZ77T>\nM772Z?<(LNKHL+\"PL=\"PL'GTL+!XLQRS'+,?'+#7'QS7'AL?'AFF1O\\?':<=I\nMO\\?'AK]I+VF1OY&_Q\\?'O\\?'AFEIQY''D<?'QS4U:<?':;]IQS7'+,<UORRM\nMMW*MK7*WK1\\5K15/%16M%;<5K7*MK16MK:T(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"%TF=%TFLK(FLKH:N@@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(MZT?K:UR<A45'[>M%:VW%;>M%6^M%:T5%:T5\nM%145%6\\5K6\\5%6\\5%6]O%2L12P+4U-34U,@\";I\"081&;@XY6,RLS*S,`T!%A\nMB&BQ#'ZU\"`@(\"`@(\"`@(*%!_?\\CI2J`\"2TV^LYHPE^2?8/51JZ&!7#`P&%PP\nM,%Q\\5J*B5U?4U-34(\"`@:]3\"NEVZ72:Z&EU=&AJZNKI=NETF7;HFNAH:&KHY\nM.3DY[NXPFO%H?K$BK+-\\5E:4NKJZNAJZ)B8F&AH:&AH:<A-V=G8!8Z&!*S,H\nMH8%67&'-@[Z:(FC!TQ\"QL=P^FIHP,%PF71H:72:Z)L)TNB:Z)L)=77VZ=%U=\nMNKITNGT(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"!XUOS4L-<<L-7TL+'U]+,<LQ\\=]-7V_QS4U+\"PLQRR_-2P<E3-V$W8<JPV?\nME\"LYG.%6?#!&Y4@^K\"+!+A\"Q:(B:FII@QWW'O\\<LQ\\>_-2S''C6_QPB\"O(*\"\nM``!A86%A````A`!AD,L@2P@(\"`@(\"`@(\"`AI:<?'-<>_OVDUOP@(\"`@(;@4%\nM;&P2$A)LZ,%-E5)V[J'A')4H#?518!SK)S=6!LWDCE965N$*7#`^(MQ75U]T\nMLK(F7;(F)EW9$6&F/K-A$6$HX8$!.>2!7##PIKZSFJY*H\"(=W+E^L4,BOGTL\nM-2QT?;\\U-2PUQ\\<UAC6_-<>1.L>1:9&1.CII+\\J1D<K8.CHO+SK8.CK8.MC*\nMRCHZ<VW*.LK*.LHZ.MC8.B\\OV#K8D=C*RB^1+R]!RB\\Z:3HZ+\\<OD<=IQX:_\nMQVG'QRR_QRS'-2R_QS4L+\"PL?7U==!ZZ+\"P>7;I=77VZPGVZNETF7<*Z)KK\"\nM75VZNB:Z7;JZ729T=+*Z'L*Z?;I]72Q]77VZ?;HL+'T>735]?2PL-;^_-;\\L\nM-7W'QRR_++\\L+&G'-6G'-<?'-<?'++_'QRPU+\"QI:34L+,<L+\"PL'AXL-<<L\nM-;\\>QWTL-7TU+'1T?36M<JURK;>WMZVW<G)RK7)RK7*MK;>M\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@()EUTNKI=LKJR?29=\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@F<AHF)AHF<G(:<AIR<K=R\nM<K<:MZVW<K>W'T\\5MQ6MK:VWM[<5%:VWK16M%16W%6$1?]34U\"`\"`@)N2Q$1\nMT!$DH9\\WE0$S`96\"*P#0M6BQ#'ZN\"`@(\"`@(\"`@(\"`@@?P+I2J`\"2TV^LYJS\nME^3A8%%1JZ&!5C`P&'PP,%9<5A2B5U=75Z*B5U<@(-2RNB9RLAHFLB:ZNAH:\nM)B:ZNAJZNAJ`@(\"`JD8Y.3F71I>SFJP=?K$BK)HP7%Q65E;,45',5C\"SFO'Q\nM<AH:<A-2E3,K8Z$**S,HH8%6,&'-IKZ:(FC!+A\"Q:*R;LYHP,%8:)AHF&G)R\nM&B8:<K(F<G)R)B9RNB:Z)K((\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"+IT'EU]='VRNGU]7;JZNGU]NAYTNAZZ'KJZ?7VZ?7TL\nMNKJZ7<(<4C-V=KP<J]Z?5BLYY.%6?#!&Y4B@\\2+!TQ\"QL8BLK&2?=\"PL?2PL\nMX>'A)PT-#2<GE5)V=G9VE3,S,S,S,S.5=@!AP\\O42V%A86%A\"`B1-<=I-<>_\nMOVF_D0@(\"`@(\"`@(`@4%Z.A?Z,%-3>7D,RLS1J&.$3,H#?5141SK)S=6!BBA\nM@596E.$*5GR;(MPF)KHF=%VZ)K(:LB;9$1&FFS!A$6$HX0H!.:$*?+/PIKZS\nMFJ1*/JPBB+E^L4,B2'UT+\"P>+\"PLQRPLQS6_Q\\?'+#7'AH9IQY&1AL>1D6F&\nM:9$Z:<J&RI$Z.I$Z.LI!.I$ZD3K80=C*RB\\Z.LJ1D<J1D4%!.I%I.FF1:9%I\nMD8:&:6F_O[^_QRPLQ\\?'-2P>QQXUQQXL?2PL75U]?72Z?7VZNKK\"7;HF?;JZ\nM=+HF)B;\"LKHFNKJZNK(:LL(:NB9=)EW\"PKHF)EVZ)GVZ77U=7;I]NGVZ=![\"\nM'L+\"75VZPEU]+\"Q=-2PL+\"PL72PL-2R_?7TL?2PU+'TL+\"PUORPL+'TU?35T\nM+\"PL?1XU?70U?7TL+!XL?<(L75TL'GU=NGU='BPF<AIR&G)R<AIR<B8:<G)R\nM)@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+(FNKJZ)L*Z\nMNKH:&@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\",(FPKJZ\nM72:ZNKI=)B;\")B8F&KJRNG*Z)B9R)AIRLK(F<B8:<AIR&AHF)K>W&G)R&G)/\nMK6&0(-34U']N;FY+)1$1*P#6Y)]@=H12A':\\`0`KM;'O#'Y#\"`@(\"`@(\"`@(\nM\"`@@?P+I2J!N2TV^LYHPE^3A8%'UJZ&!5C`P&'PP,%96-U=75U=7<AIRLK)R\nM<AIRLB8:<AHF)G(F<K(FNG(:&H\"J1D:J@(\"`JD8Y.3E&1D::FIHB[^\\=\\9J:\nM,#!\\7%:48/7,5GPPFJSQ\\:RW<KPS,S,S8^$*T#,HH8%6,&'PIKZ:(K'!+A\"Q\nM:*R;LYHP?%8:MW)R<JVMMW(:<AIR<AIR<G*W<@@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(LAIR<B:Z&K)R<AIRNG(:<B:Z&K(:\nMNK*RLG)R<B8F&KHFLG*Z)K)RNAH<=I5V$[P<JR>!5BLYY.%6,+.JY4B@(B+!\nMTQ\"QL8CQ(JPW?0@(WB?AX>'A)PT-#0T-=G9V=G9V=I4S,S.5E5)V=C,1;@+4\nM`FZ0$1$1,Y\\-@;^_QVEID0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`A$P'5U,RLSJH..\nM[C/-#?7U]1RK)Y]65BCDX3<WS.$*5ER;(HBZ75TFPL)=NB8:)EUA$6&FFWQA\nM$=`HX0H!.:&.,)KPIKZSFJ!*/JPBB-Q^?D/Q2%U=+%UT+\"PU?;\\L?;\\LQ\\<L\nMQ[\\L:2QI-<?':<<U:8:&QVF&:<?'+SHOD6G'.I&&QVG'QSIIAB^1:<?'.FDZ\nMOVF&AB]ID<?'D6G'QS7':;\\U+#4LORS''GTL-7TL+'TU=\"S\"NKJZ+!ZZ=+I=\nMNKJZNGVZ=\";\"7;JZ7;I=&K*R&KHFLKJZNAJZPKH:LAJZ)B:ZNKJZNETF)B9=\nMNB:ZNEUT7<)TNGVZ7;I='K)=NKJRLGVZNKI]NBRZ?1Y]NEU='GU]'AZZ'KH>\nMPGUT?2RZ?<*RPKI=NEU=7;I]LGUTNEU=?;*ZNB:ZLG2Z7;I]NEU=NK)=NL(:\nM&B9R)G*R)B8:LG((\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(<B9R)G(F)AHF<AH:\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`BZ'EU]=+K\"?;)T77U=77U=+\"Q]PG0>7<*ZNGT>NGVZ?;)T772Z772Z\nM7<+\")KJZPEVZ)ET:7;(:NB5NU-34U$MN;DM+)1$1*P\"!G!=1$[QVO'83A((!\nMM;%^#.^N\"`@(\"`@(\"`@(\"`C4?P+I2CYND.5(?)HP[N3A8%'UJPV!5GPP&'PP\nM,%96S+>W<G(:&G(F&G)R&G(F<B8F&K)RLG*RLK(F\"`@(\"(\"J1D:J@(\"`JD8Y\nM.3E&1D::FIJL:'YH(JR:FK,P?%Q6S/5@5EPPFIKQ(B)RMW8S,S,S8^$*T#,H\nMH8%\\,\"7P93NL'>_H+K5H:&2;,+,P7)2WK7)RK:UR'W)RK:VM<K>M<@@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(<K=R&JUR<K>M\nMMW*M<K=R<JVWMW)RK7*MK:URMZUR<K>WMW)RMW*W<JUR<G(<696\\$[P<JR<*\nM5BLYY.&;,+.J34B@(AW!+A\"QL8@B(O&4\"`@()^'AX>$GW@T-#0T-$Q,3$[QV\nM=G9V4I65=G9V=@!AP\\L@?TO#86%A`-[>@6G':0@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@($6$1JF6^[F%0)Q=1]1RKWI\\WE\"B<)V!@%R>?5E:;\\8BZLKHF\nMLETFLB8:)AIA$1&#CE9A8=`HX0HKEZ&.,)KPIKZSFJ!*/IJLKMQ^?D.L2!Y]\nM?7TLPET>=%U]+#5]-70U-1XUOS4L+,<LOS6_+!['-2S'-<<L:34LQVG'Q\\>_\nMQ\\<U+\"PLQ\\?'Q\\<>'K^_++\\UQRP>+'T>?1XL75TU?2QT7;HL7;H>NKIT?;)]\nMNKI=)L)T)KI=NK*RNKI=LETFNAJR&AH:NAI=NEVZNKJZ)B:R&KH:LL)=7;H:\nMNK+\"NB8F&B8:=,(:NKJZ75T:NKHFNGTF=%U=NKJR7;*ZNK)=LKHFPB:ZNETF\nMNK*Z=%W\"&K*ZNETF&B:Z71HF)ETF7;JR)B:ZNKJZLL(F)KHFLG0FNB:R)KIT\nMNKI=NEU=LKI=)EU=7;H:)AHF)G(F\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`BWK:UR&K=R<G)R<@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"%VZ77U=NKHL+'VZ72Q]'AXL=\"RZ+,(L-1XL?2PL\nM+\"Q=?34L-34L?71T?34L?2Q]+\"PU'BQ]?2Q]+%TL?9!NU-34R$MN;DLE)1$1\nM*S.!Z_7U$Q,3O':\\O+R$M>]^#.^N\"`@(\"`@(\"`@(\"`C4(,CI2J!ND.5(?+,P\nM.>0G4?7UJZ&!5GPP&'PP,%968'(:LG(F<G(F&AI/)G(F)G*R<AIR<G((\"`@(\nM\"`@(\"(!&1D:J@(\"J1I<Y.3E&1D::FIJL(GY^:\"+QK)J:,%Q6S/515E9<,)JL\nM(B(F&H(S*Q$S8^$*T\"O-@XXPFDOP1#XB:'[H+K4=':2;,+,P7#<(U'ZQ'2*L\nMFK-\\5LSU]1,3$[P3$Q,3$[R$```(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(<G*MK7)RK;<5<A6MK:VWMZT5%1^WMKF(/IL*]?6?\"IL^KJZ(B(C<W+FV\nMN8BNH*%V'%*\\=KP<ZR<*5BLYY!B;LYJJ3;ZN(AW!+A\"Q:(CQ(O&4\"`@(X>'A\nMX>$G)PT-#0T-=G9VO!-V=KR\\=G9V=G:\\O`!AP\\L@?\\O+D&%A``W>C@@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(D)`1JD0[[F%CH9_,41RK#1?,-RCK\nMWA=1]0T7-U:;K(BR?72Z?5TF?29]?;K0$1'D@59A8=`HX58KEX,*,)KPIKZS\nMFCY$FYJLKMQ^?D.:&+JZLKJZ?;IT?;JZ'G1T+%TL'GU]NL(>?<)]'GU]+\"S\"\nM+'T>72Q=?7VZNBPL7<*Z'L)=771=NGU=71Y]7;*ZNETF77VZ=%U=NK(FLG1=\nM&G2R)B8:NB8F&KJRNK+\")KJZ)ET:NKJZLKJZ&B8F)EU=NAH:)B8:PKJRPB:R\nM72:R)KITNEVZ?72R)G2ZPGU=72:Z=+JZ)KIT728FLB9=PEU=75VZLKJZ728F\nM)KH:)AH:)B:Z&K*R&KH:)B8:&B8:<B:ZNAIR&G(:&KJZ<B8:NG(FLKJZNB:Z\nM<KHF&K(FNAJZLKI=NAJZ7;JZLKJZNEU=7;)TLK*Z)B8(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(<G*WK:URK7*M&G*M\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(PKH:)B8:NKI]NK(F=+ITNEU=\nM7;I]++I=?2PU+'TU77TL?1['?<<UOS5]-2PL'K_''K\\L+,>_QRPL+\"PU:<>_\nM+$M+U-0\"`DM+$24E81$1*S.?Z_51$[QV=G9V$Q.\\M>]^#+&N\"`@(\"`@(\"`@(\nM\"`C4(,CI2J!N2^5(?#\",.9S>4?51JZ&!5GPP&'PP,%:4%QJZ&AJRNB:R)AHF\nMNKIR&KJZ&AH:&G)R<AIR\"`@(\"(!&1D:J@(\"J1NXY.3F71D::FIJL(N]^L6@=\nM(B*LFC!<-U%1-U9<,+.:\\2(F)E(K,Q$18^&;86$$@YN:K`+I2D,=L5K!TX@=\nM'9J^?+,P5C=A(&@BK)J:LS!<5F#U]1,3O+P3$Q,3O(*\"`\"MA86%AD`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`BM3T]/'[>WMW(5MQ5RMZURK0@(\"-R(W+FYMKF(H'P*\nM%_6!FWRNB-S<W(B(B+FVN8BD/J%2'%*\\=KP<ZR<*5BLYY!A\\FIJJ33NN'6CH\nM+K5H:(CQ(O&4\"`@(<'`8<.'AX2<G)R<G,S.5=KP3$Q.\\$[R\\O!,3O`!APW\\@\nM?W]_2V%A@@V?U@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(;FYNJD0[\nM-F%CX8%68!RK#?5@8#GK#?7U]0T7S%;69*ZZ++I=?2Q]PKI]7;HK$1'D@3=A\nM8=`HX58KEX,*,)KP9;XPLVI$F[.:KMQ^?D.:<+I=LEVZNEVZ75VZ7;K\")L)=\nM)EVZ72:ZLEU=PEU=)EU=)K*Z)KH:NKH:NB:ZNAH:NB8F)G(:)KHF<B9R<G(:\nM&AJZ&B9R<G(F<G)R<G)R<AH:<G*Z<AH:<AH:LAHF)AJZ72:ZLAH:NB9=&EVZ\nM77VR)GVZ)B8FNK)]?7U]LKJR='UTPKI]NGT>NEU=773\"7;JZ?;I]=+I=)KI=\nM?7VZ7;JRNKITNETF729=)B8:&AJR)G(FLKIR&B9R<AJR<AH:<G(:<G)R&AHF\nMNG)R<KHFNAJZ)B:R<KJZ&AJZLB:Z72:Z&K*R)EW\"?;)=LKJZ'EU]=%U]?5T(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AR&G(F<B8:)AIR\nM<D\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"'(:)B8:<AH:\nM&G(FNKJZ)ETFNKJZ7;IT)EU=?5U]?7T>'L)=?;H>?2PL+'TU-2Q]-2S'-2PL\nM-2PLQ\\<LO\\=IQ\\?'+,?'\"$M_U`(\";I\"0$24E81$S`3/>J_51=G9V4I52O'9V\nMM7Y^#+&N\"`@(\"`@(\"`@(\"`C4U-3I2D-N2TU(?#\",.9S>4?5@ZZ&!5GPP&'PP\nM,%:4%W2RLKI])EVZNAH:)B8FLL)=NK(F)K*Z\"`@(\"`@(\"(\"J1D:J@(\"J1CDY\nM.3ECY4UL3<'!3<%^?K&Q:!WQFK,P5F!1-U9<,#\":K/&Z)E(S*Q$1Y>&;)24_\nM93Z:(LCI2D-H?G[!TZXB(IJ.?#!\\5LQA?R*LFC`P,%Q6S%'U]1,3$Q,3$Q,3\nM$[R\"``!A86%A80@(\"`@(\"`@(\"`@(\"`@(\"`@:&G(F<G)R&AI/M[=R<JT:<@@(\nM\"`@(\"+FYN;:VN=R(KCZ;G_6?FSZNB+FYW-R(B+FVN8BD?*%2'%*\\O+P<ZR>!\nM5BLYY!A\\FF2J33N(';'H+K5H'8BL\\:R4\"`@(2$A(&'#AX>'AX>'A$3,S,U)V\nMO'9V=A-V`2LK)25+PW\\@(']_R\\-AA-Z!C@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(QWV_?P(VJD0[-F%CX0I6E#FK#?7U]1RK#5%140WU8#>.FJ1]+%TL\nM+'0U+\"Q=-34K$1&<G\\QAT-`H)U8KEX,*,##P9=9\\,'QEFS\":KMRQ?D.:X;*Z\nM)G2Z)KJR=+K\")KI=&ET:LKIR&AH:)KH:<G(:<B9R&AJW<K<:<G)RM[=R&G*M\nM<G)RMZVM'ZVW<JVMK:UR<K>W<G(:MW(:&K<:&AH:<G(F&AH:LAH:NKHF)B:R\nM728F=\":Z?7VZ=+I=LGU]75U=?1Y=+'3\"'GVZ+%U=+'TL75U=PAX>?2P>+\"PL\nM?7T>PL(LPEVZ?;HLNKI=NEVR)EU=)GTFNK)=)G2ZNAJZ)K(:)B8:&K*Z)B8:\nM&K(:)B9R)K)R&G*Z<B:R<B8:&B8F<AHF<AJZ&AK\"&B9=NKJZLB9=PKJZ7;*R\nMNEU]771]NAY==+HL?2P(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM75VZ&B8FNKH:&B8:\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(MW(:&G(:MW(:MW*W<AIR)G)R<B9R)G*ZNAH:&AHFNKH:LAJZNKJZ75VR\nMNKI]NEVZ=%U]?1XL=%U]+%U]'GV_-36_QP@(\"`@(\"$O4U']N;I\"0$25AT#,S\nM`97UJ_5@=H12`965=G8<M7Y^#&BN\"`@(\"`@(\"`@(\"`C4U-0.2D,\"2TV^?#!6\nM.9S>]?7,**$*7'PP&'PP,%96%WTL7<(L'KJZ=,)=NGVR7;JZNG1T\"`@(\"`@(\nM\"`@(\"(\"J1D:J@(!L;&QL;$ULP>@2TQVQ34.QZ.A?Z,'!3>55M\"CU5EPP,+.:\nMK/&ZN@$S$1$1Y7\";2Y!Y1#XB:-0.T[6Q?K'!2J#Q\\;..?#!<5F\"0?_&:LS!\\\nM7%8W4?7U41,3$Q,3$Q,3$[R\"```K86%A80@(\"`@(\"`@(\"`@(\"`BZ7;JZNKHF\nMPAJRPG(:)B8FNG((\"`@(\"`@(\"-RYN;:YW-R(KCZ;\"A<75GRNW+FYN;G<N;FV\nMN8BD?*$<65(3=KP<JR>?5BLYY.%\\FJRJ33N(:+'HT[4=':Z:K&24\"`@(2$A(\nM2'!P<'`8Y>6>`1,!T\"5+;L@\"R-34U,AN;L,E83C`6UL4;FX1=B>!C@@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(-71=-2PU(-1KJD0[[B5CX9M<5CGKWA=1]1SK\nMWF#,8`WU4<R!FK,UOS7'-2PLQ[\\L-7TK$1&<GS=A8=`H)U8KEZ$*?#`H@XY<\nM?%QECGR:H(AH?@QD<+*R)GVZNEVR71HFNKIR&AIRLB8F&G(F<JUR<G*M&JVW\nM<K>M<K>M'Q6W%16MK16M%145MQ6W%7*M<JT5K7)R%7)R<JUR&G(:<AH:)B9R\nMNKJRNB9R&B9=)B9]?<*R?5TL71X>'BQ]+\"Q]+%TU+'U]'K]]?1XU-7TL+'U]\nM?2R_-7W'QQXL-<>_++^_OUU]?7TU+'U]+\"Q=NBS\"77U]NBS\"NGVZNL*R7;JZ\nM)K*Z)B:Z7;I=NB8:NAJR)KJZ&K*Z&KJRNKH:NB:R7;I=NKJZ)G0FPGVR?7VR\nM?72R?;JZ77U]'BPLPGTLNG0L+'UT?5U]?34L'BP(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`A]?72ZNAZZ75T>?7T(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@F&K=R&AIRK7*W<G(:MW*M<G)RM[<:&JURK:UR&G)R\nM3QH:&G)R)G)R&G(FLAH:LK*R)KJZNKHFLAI=&B:ZPK*Z?71=\"`@(\"`@(\"`@(\nM\"'\\@U$MN2Y`1$6'0T#,SA';UJQ?,E825`3,SA)59$'Y^0QVN\"`@(\"`@(\"`@(\nMQ\\?4U-0.TT,\"2TV^?#!6.9S>4?7,**$*7'PP&'PP,%968+\\U?34>?2Q]=\"Q]\nM+%T>?2P(\"`@(\"`@(\"`@(\"`@(\"(\"J;%555555555U=1()Z+;4TQVQ;$.QL0RQ\nM?B'LFHQ04*NK4+1554U-$EVZ72MA$1$1Y4@^2TMY2D,=?M0.C4,=:!U-2J\"L\nM9+..?#!6-V!+(*R:,'Q<5C=@4?5141,3$Q,3$Q,3$[R\"````*V%A80@(\"`@(\nM\"`@(\"\"P>?5T>NEU]NEW\"+%U=?;JZNGUT?70>N@@(\"`@(\"+FYN;F(B*ZNH*`^\nMFX'U\"GRDB+FYN;FYN;FVN8BS?*$<65(3O+P<J]Z?E\"LYY.%\\FJRJ33N(:'[!\nMTX@=(JZ:FBU6\"`@(\"`BKZU5-3<%75U=7U`(V`MG9`@)N`M34U-1NPR43O'AX\nM>`&$4E*$ZYSEC@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(NAX>'GU]+%W\"U-34JF4[\nM[B5CX9M\\7)><X9_,8#F<)S=6-PWU46\"!,'S'Q\\?'Q[_'+,<U:6G0$1&<@59A\nM86$H)U8KEZ$*?#`H@]967)N#CGRSH(AHL;6L<%U]77U]NEW\"NB8FNG(F)G*Z\nM<K=R)K=RK;<:<G*W<JVMK;>M%16MMQ6WM[=R%;>W%:VM%:T5K;>W%7*M<D]R\nM<D]R<AIRLG)R)G*Z)KJZPAHFLKJZNKIT+'TL72Q]?2PU-2PL-34U+\"PU-<<L\nM+\"PL-34>QS6_-2PU-2PUQ\\<U-37''BPLQS4UQQXL'GTLORR_'C4L-2PU?2PL\nM75U]?7TLNGUT='1]7;K\"NK*ZLKITNL)]?<*ZNKJZPG1=PEVZLK)TLKI=NKI]\nMPKJZ+\"RZ?7U]7;JZ++I]72QT?<)]+'T>+'U=+'0U?35T72PU?1XL+\"QTPGT(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@()KJZNEVZPGU]NEU=\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@()KHF&AJZ<G*R<K)R&AH:&G(F<G(:\nMK:URMZURK7*M<K=RM[<5K:UR<G*W<G*WM[<5<K<?K1^WK;>W3[=/&AH:&G(:\nM&G((\"`@(\"`@(\"`@(\"`@(\"\"#4`DMN2R41$=`K*Y65O!/UZQ<WE825`3,S`8)9\nM$'Y^0QVN\"`@(\"`C'++_'ORS4U-0.TX@\"2TV^?#\",.9S>4?5@ZZ&!7'R,&'PP\nM,%Q6GS6_+\"PL?2Q]++\\>+`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(7;*Z75M;\nM6P5_C;G4T[FQ;$.Q[PRQ[R$BLXQ0M%5L;'U]LGVZ?;ITNC,1$1$EY4@^;DL%\nM2HBQ?M0%2D,B'2)-1#Z:FGR.?#!6-V`\"U/%DFC!6-U'U]?7U]1,3$Q,3$Q,3\nMO(*$@@```\"MA80@(\"`@(\"\"PL'BPL+'U=?;\\L+\"PL'AX>=#5T?7V_+'U]+'0L\nM\"`@(\"+:YB(BNH*\"@H*`^FPKUGYN@B-RYN;FYN;:VN=R:LX,<65(3O+P<J]Z?\nME\"LYY.%\\FJRJ33N(:'[!TT,B(J\"SFC!6\"`@(\"`@(\"`@(\"`A;P#AU:VYN`I\"0\nM`FYN2]34U-1NV243$X2$A`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(NKJR\nMNAJZ)K*Z)B:ZU-34JF6^[F%CX9M\\7)><X596E\"CD@596E`WU]5&!,'S'-<=I\nM:6DLOS7':;]A$27DCGQA8=`H)U8KEZ$*?#`H@]967)MECGRS/H@=L;6L<\"RZ\nM?5U]7;JZ71JZLK*Z)AIR<G(:<G(:<K=R<G*WM[<:K7)RMW*M3W*M<JURMW)R\nM<G)RM[<:&AH:)G(F&AH:<KJZ)B:ZNKJRNB:ZNKI]++JZ'GU]+\"P>?2R_ORPL\nM?2PU-2P>-;_'+#4LORS'O\\<L-;\\U++\\U-2PLQ\\?'QS4LOS6_+,<LQ\\=]+,<U\nMQ[]]?1YT=\"QT770L-2QT=\"PL?5VZNBPL+!Y=?2PL+'2Z+!YT'GT>?5U=PGTL\nM72QT+!XL+'U]75U=+\"PL-5TU-71]+'U]+\"Q]'GU]75U]'G1=-7U=='T>-7T>\nM'AY=+%TU?7U]++I=?5T(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@:&AH:<K*R&AJZ&KH(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`A]72:RNK(:772Z\nM)KJZ&B8FLAHF<G(F&G)R)G(:<K<:MZURK7(5<K>W%:VM%;<5K;>WMT^MK;<5\nM%145MQ5OK16MMQ6M%0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"-34`DMN2R41$2L!`79V\nM$[S>G)^4,P$S*S,S`0$Y$'Y^0VA#\"+)]NEVZPGT>7;K4U-0.TZX\";DV^?+-<\nM.>3AS%%1JZ&!5ER,X5PP,'Q<GW0L?7U]734>\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@LNGUT?;H>NKJR?05_C;;4T[E^$@Q^?@QHL=.L,%Q=LAZZ'G2ZNAZZ\nMNAYT+#-A$1$EY4@^`DL%T[6QL<CI2D/Q(O'E1#Z:FGR.?#!6-V`@U!(23<[E\nM4)R<JZNKJ[P3$Q,3$Q,3O(2\"@@`````K80@(-2PL=\"Q]?2PU?70>?7TU-7UT\nM?35]+\"Q]?1Z_?7U]\"`@(\"`@(\"(B(KJZ@/CX^H*`^FPKUGYL^P<'HZ.CHZ.CH\nMZ!)-SE4<4G83=KP<JR>!5BLYY!A\\FF2J33N(L7[!TT/QK#Y\\,%Q6\"`@(\"`@(\nM\"`@(\"`@(\"`@(U&YNR&&0`FYN2]34U-1ND\"6\\=@@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(<AIR&K=R&B9R)AH:NB8:U-34JF6^[F%CX9M\\?)?DX596!BCD\nM@5965MX7]5&?,'S'++\\UO\\<LQ\\>_:2QA86Z#FYHYT-`HX5;0EX.;,##P9=9<\nM?%QEFS\":/JX=:+6L<\"Q]?5VZNKI]NEVZNKJZ71HFPB:ZNAJZ&KHF&G(:&KJR\nM&B9RLB9RLKIRNAH:LG(FNB9=NKJZ)B9=)ET>NAY]NKI]+%UT+%TU-2PU+'TL\nM+\"PUOQXUOQXL'BR_QRR_+#4L-;\\LQQZ_+,<LORS''L<L+#5]-1Y]+\"PU?7U]\nM?7V_?2Q==!Y]-70L77UT+!Y=7<)]+\"PL772Z+\"RZNGTL+'2Z'AY=+%TL72Q=\nM+'U=+'TL-7TU?1Y=-1Y]+%TL?34L+%TL++\\L-36_+#4L+#4U+'U=OWU]?1X>\nM+\"QT72PU+'U=PBQ=75VZ+,*ZNKJR75VRNKJR728(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(;Q45\nMM[>W%:T5%7)RK0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"'U=?7VZPG3\")K*Z=+JZ72:Z)B8:)B:Z&KH:)KH:LK(F&K(:&AIR<G)RK:VM\nM<D]RK;>WMQ6W%14?%;=OK6^M%145;V]O\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"-34?TMN2R41$2M2=A,3O(2?G(%6,P$S*S,K*RON$'Y^0VA#&AH:<AHF)K(:\nMLB;4(-0.TT,\";DV^LYHP[N2!5LSUJPV?5E:,X5Q\\,'Q<-UW\"NKH(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`A]=+I]NKJZPGVZLKI=)@5_C;;4T[9^$@Q^?@QH\nML4J:7%:ZNG1=NGVZNGVZ77T>?3-A$1$EY4@^`G]LT[5HL<CI1#ZL\\:SE1)NS\nMLUR.?#!6E,P2$N@2$FQ-U\"&QU#MNPTMAT`&$$W9VA(1X`0$!`0$!++I=+%U=\nM+'U=PGU]72PL?2PL+\"PL=\"P>?5TL='U]\"`@(\"`@(\"`@(\"`C!$A)-357KZU#E\nM;KXB?B%^L4JY[]PB[+[EY555554<=G:\\=G8<ZR>!5BONY!A\\FF2J33N(L7[!\nM2J\":FIM<7%96\"`@(\"`@(\"`@(\"`@(\"`@FU&Y+U)!N`@+#R]0@U,A+$26\"=@@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(<D^W%:VMK:URK7*W<K=RMQIRU-34JF6^\nM[F%CX9M\\?)?DX59<C,WDCE965M[U]5&!,'PU+\"PU-1X>O[\\U?1[#2\\BF/JPY\nM*RLHX9O01F6;LYKP@XY\\,'QEF[.:/JX=:+6L<\"Q]'KI==\"Q]NG2ZNGT>PGVZ\nM?5VZNKITPG1=?;JR?2Q]PKK\"7;I]?2Q]?5U=734L72QT+#5]?34U?2P>+\"PU\nMQRS'+'TU+\"PL-2P>+'V_ORP>-2P>+\"S'+,?'O\\<U?7U]+#5]OWT>+'V_77T>\nM?7TU71YT+'U=?;H>?1X>?<)]NEW\"75VR75U]NAY]NG2ZNGU]?;JRNGU]?;H>\nM?5UT='0L?1YT?;I]+%U]'BP>72Q=?2P>?34U='1]734L+\"P>+'U]-2Q]'ET>\nM+\"PU72PL75U]+\"Q]=!ZZ?5T>71YT=!Y=NGU=7;I=)AJZ)KHF)B;\"&AIR<K((\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`BH;V\\5;Q5O;V]O;V\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`BZ<G)RNKH:NKH:7;JZ)AJZ71JZ=\"9=)KHFNAK\"NAI=NB8F\nMNB8FNAJR<G*R<B8:)B9/)G)R<G)R<K>MK:VW<G(5%;=OMZT(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"-34(']N2R5A,P%V$Q-VA`&!Y(%6,RLST!%A*]#N\nMM7Y^#&A#;Q45%6\\5'Q6M%:T@(-0.2D-_;DV^LYHPEZ&.5I1@JPT75E8&X59<\nM,%Q<-T\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+IR)B:Z)KHFNB8:)G(:)G(F\nM)@4@C;G4T[9^$K5^L>\"Y'4BS5LPFNGW\"7;I=PEU]71ZZLC-A$1%AY4@^;@)L\nMT[4=:`+I1#N:K*SE99LP,%R.7#!65I0H**L!GF[3:]-HU#MNPVZ082N5$Q.\\\nM$Q,!4@$!`;ITPGVZ71Y=NL)=NG1]71Y=75VZNGU]NG2Z?<*Z\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"+10*\"B$>`>^;D@BL2%^L4K<L8B((KZ:X:NKJZMV=G:\\=H0<ZR>!\nM5M\"7Y!A\\FJRJ33N(L7Y-2CZ:FIM65I1<\"`@(\"`@(\"`@(\"`AT&ETF(#9+U&%N\nMR`)+?]0@U`)+D\"6\"4@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"*T5MQ45MW*WK7*M\nM<G*W<K<:<G(:U-34JF6^[F%CX9M\\7)?DX59<C,VACE965@WU]5&!,'QT75T>\nM?5U='AY]?7U+RVO!H\")9*RM0X9MA1F6;FIKPIM8PL[-$F[.:/JX=:+6L<\"Q]\nM77W\"PG0LNG0L72Q]'BP>?2PL+'T>'BPU'K\\L-7W'-2PU+,=]O\\?'QS4LQ[^_\nM+\"R_+,=IQRPU+,<L+#4U+#4LQS4U+!XUQQXL-2PUOWTU+#4L-5UT?7U]+!Y=\nM+,*Z++H>NG0>NK)])G2RNG0FLB8F)B8:NKH:)AH:LB:Z&K*RNKH:PB8F&G*Z\nMLKJZNKH:&KJZ7;(:NKK\"NKJR=%VR7;JZ?;+\"='VR71Y=?5U=77TL+%VZ++I]\nM?;I]+'U=NEUT7;JZ=+)=NL)]=+JZ?;JRNEW\")L*ZNKHFNAHF)G)RLKH:)AH:\nM)B8F<G)R&G(:<K=RK;<(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(;Q45;ZBH;ZBHJ!5O%0@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"'*W<K=R&G(:<K=RM[=R<B9R&KHF<B9R\nM&KIRNAHFNB8FNKH:)KI=)KI=&AI=NB8:PKH:&B:ZNKJZLAHF<AIR<G(:&G(:\nM&@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"-34(`)N2R41,P$3$W:5\nM`0&!Y(%6$2LS81$1T-#NB+%^#.]#J*BH%:AOJ!45;V\\@(-3I2D/(;DV^LYHP\nM1J&.5@8WJZOUS%8&)U8&C%96-P@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(K:VWM[=R\nM<G*M<G)R<JVW3QH:&G)R<FP@C;G4T[9^$K5^L2$B(D@P5E%RNB;\"&B;\"NAHF\nMNKJZ72MA$9!AY7`^;@)LT[4='0+I1#N:K&3E99LP,%R.7#!65E8(\"`@(\"$O3\nMU-,=R\"$\"`@)N$=`SE8*\"`1,!A(1=?5TF)ETF=%VZNL*Z&KHFLKI=LETFNAJZ\nMLKH(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+HF=<#`6S..;DBLL2&G?DK<L8BN(KZS\nMH5U=+'T<=G:\\=H0<ZR<*7-!&Y4BSK/&`33O<?GY-2CZ:LU:4-\\Q<\"`@(\"`@(\nM\"`BR75TF7;(F?V[#R&%NR,A_(-1_U`)+D\"6\"E0@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"')RK:VMM[>W&AJM<G)RM[=R<AH:<AJW(-34JJ:^[F%CX0I\\7)><X596C,VA\nMCE965@WU46\"!FK-RNAIRLB9R)KHF)AK+?VO!0R)9,P%CX7PE1F6;FIKPIKXP\nMFK-(/IJ:/JX=:+6L<+JZ?1XL'BPL+\"PL?7TL+'TL?1X>++^_-2PU+,=IOS5I\nMQVG':<<L:<<UAC4UQVG'-37':<<L:37'Q[\\LQS4UQRPL+,<U+,=]?2PL+'U=\nM?70>?1Y]?;)=)KJR&AJRPAHF&KH:&KHF&AIR&G)R&AJW<K=R&G)R3QJW&K>W\nM<AIR<K=R<B8:)AH:)B9R<D]R<G(FLG)R&B8:NG*ZNG(FNAHFNKJR&B:Z&KJZ\nM)B;\"7;HF72:R)B:ZNL*Z)K)=LETF&KJZLB9RNKHF<G)R<G*R<G)R&G)R&B9R\nM<AIR<K=R<G*WK7*M<G)R<JVMK7*W&AIRK:VWK7((\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AR<K>MK7*M%145K:T(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(%15O%145'Q5R'ZUR\nM%7)/<K>W<K>M&D]/&AI/&AIR)K(:)KHF&AIR<KHF&G(:&KJZNAJR)B8FPKI=\nM&KJZ&KJZLB:R)AJZ\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"-34(`(V2V$S,X03O%(S`0>!H8%6$2L181%AT-!&B+%^#'ZU%6]O;ZAOJ*@5\nM%6]_?]3I2D/(2TV^LYJS1J&.7%8&JPWU8%8&)U96!E:48`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(K:T5K:VWK:VM%:T5%1\\5K;>WM[>M3ZVM<FS(2KG4T[9^$@RQ:\"'Q\nM\\7!\\5O4:&B9R&G)R&B8:&AIR&BMA$1$K8W`^;FYLT[4='0+I1#N:K&3E99LP\nM,%R.7#!<7%8(\"`@(\")#FU\"$=U\"'4?\\AND&$1,S,`*W;\"LKJZ)EVRNAJZNL(:\nMLKJZLK*RNB:ZNG(:&AH(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+JRLB8:&K*Z<BN.\nM;DAD:\"&G6HVY:*ZN\\;Z:@R;\"NKH<4G83=H0<G.$*7&%&IKZD\\2*`P2'<?K%-\nM2CZSLPK,8%%<\"`@(\"`C\")B8:NK(:NKJZ2VZ0`I##:]0@(-34U-1N;B6\"E0@(\nM\"`@(\"`@(\"`@(\"`@(\"+H:NG*RNAJZ&G)RLB8:LG(:LG*RLB8:<AH:?P)NJH..\nM[F%CX0I65CF<)PI6!LVA@596E`WU43>.FK,:&G(:<G*W&G)R&AK+?PGH0QU9\nM,P%CX7QA1F6;FIKPIKZSFK-(/IJ:H*X=:+6L&,)]+%T>?1XL+'1=?7U]?7U]\nM-<<UQS4U++\\LQ[\\LORS'QVDLO\\>_+&G'-6F_-<?'QS4U-<?'+\"PU+#5]Q[\\L\nM?2Q=?5VZ?1Y=PKI=728FLK)=NKH:NKH:<AIR3QJWM[=RMW)R<K=R<A]RMW)R\nM3[=RK7*M<A6MK:VW%;<?K7*MMW)/K7)RK:UR<G)R<JUR&K=R<K<:MQIR)AIR\nM&AIR<AIR<G*R<G(:&K(:LB9R<G)R&G)R)B:W<B8FMQJW&AJWMQH:<G*MK7)R\nM<K<?K1]RMT\\5MQ]R<JURMW*WK:U/<G)R%7)R<G)RM[>WMW)R<K=RMZUR<G((\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(NGW\"NKIT\nM75VRNEVZL@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BW\nMK16M%;>M%145'ZVMMQ6MMQ6MK145%7(5%;>MK;=RMW)RK7)/<G)R3R9R<AH:\nM<K)R<G*Z&KHF)AJZ&K*Z)KHFNL*ZNET(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"-34(`)N2Q$SE783=I4S`0>!H0J,$=`181%AT&%&\nM$+%^#'ZU'V^M;Q5O;V\\5;V]_?\\CI2D,\"2^5(LYJS1N2.7(Q6*`WU43>4WC>4\nME,S,40@(\"`@(\"`@(\"`@(\"`@5K15O;ZT?%16MK:T5%16W3ZVWK16M%16M<A6W\nMK6S(Z+G4TZ=^$@RQ:\"'Q(D@P5E&W%7)R<JURK;=RMQJW&F%A)1$K8^&;2TL%\nMT[4='6[I1#N:K*SE1)NS,%R.5C!<?%P(\"`@(\"&'3U\"ZQU`S4(,AN;DN0$1%A\nMT'8:NB:ZNKJZ)KHFPL+\")AH:)KJRLKIR&KH(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"')R&G)R&G)R<AHF<F&^2TAD'2&G6HVYL:ZN(KZ:97)RMW(<4G83=H0<G.&;\nM?&%&ICNN(AV`P2&Y?FA-1#ZSLPI@8%%<\"`@:)AHF)B8:<KHF&@@(D.YA;ME+\nMR-0@U-34U,AN;FZ\"E0@(\"`@(\"`@(\"`@(\"+I=NEU=77U='AYT=+I]NKHL'GVZ\nM=+I=)G1=)L(:2TMN1H..$6%CX0I65CGKWI\\WE\"CD@596-PWU8)36FJ2M<G)R\nMK7)R<A5R<K?+`@GHB!T<E0%0X9MA1F6;FIKPIKZSFK-*/IJ:H(@=:+7Q2+I]\nM7;I=?7U]+%U==\"PU+\"R_O[\\UQWTUQRPL?<<L-2PLQ\\?'QRPUQS7'+\"PL-2Q]\nM++]]?71=72Q]NGU=?7VZLG2Z)B8FPG)RNAJZLG(:<K<:MZURMW*MMW)R<G*M\nMMW)R%16MMZUR%:UR<JVMK7*M<G*MMZVM<K=R<G*W3W*W&AIR&K=/&AH:K7)R\nMM[=R<AJW<G)R)G)R<G*WMW)/<K=RM[=R<JVMK;=R&JUR<JUR<JVW%:URMZT5\nM%145K16W%;<5%;>M3[<5%16WM[>W%145K16WK;<5%:UR<K=R%7*M<G)R<JT:\nMMW)RMT]R<AJWMW(F&G((\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`A]=#4U+#5]-2QT=\"P(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(3W*WMW*M<G(53Q5/<G*MMQ45K:T?<K<5K:T5MT\\5K:UR<A5R\nM<A^WMZVW<JVW<K<:&G*M<B8F<AIR&B8F)G(:<AH:)KJZ)@@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"-34?VYN)3,S=A,3A#,S\nM*]\"!H0I<$=`181%A86%&$'Y^#'ZUMW*M&K=R&AJW<AI_?\\CI2D,\"2^5(?)HP\nM1J&.7(P&4`WU46#,#6`W-U%1]0@(\"`@(\"`@(\"!JW<D]R<AH:MW*M<AIRMW*M\nM3ZVW<K=R<G)RMW)RK16M<A+4Z+G4+J=^$K7O:\"$B(DB:7,QRMZT5K:T?K16W\nM3ZT5'V%A)1$KY>&;2TL%T[4='6[I1#ZL\\:SE1)NSFGR.7'Q<,%P(\"`@(\"&%*\nMU/)^U.#4U-0\";FYND)!A878:&K*ZNKJRNB8:NKJZNKJZ)B:Z)@@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(NG*ZNG*R&AH:NG)R<G)/&F&^2TBL'2'O6HVYL8B('3NL\nM<!^MK;<<E783=H0<G.&;LR6JICN('6CJZ.\"YL1U-1)NSLPI@8%%6<B8:)KHF\nMNAJZ)@@(\"`@([NYA;FY+R-0@U,@\"U,AN;FX`,P@(\"`@(\"`@(\"+\\L+#4U'K_'\nMOS4LQ\\<>-<<U'GW'?<>_-2PL?2PL++IT;I`11H,8$6%CX8%6-QSKWF!@-RCD\nM@596-PWU8)36FJ2WMQ6M'W)/'Q5/%7)+`C9?B&B54@%0X9O01F6;FIKPIKZS\nMFK-*/IJ:H(AHL;4B2%TF?;I=NKI]?7T>NAYT75U]7;HL?7U]-7TL-5TL+#5=\nM'BPLNEUT+,)=PGU]?7UTNB:Z)KI=&KJRNKH:NB8:)G)/&G(:<G)R&G(:MW*W\nMK7*WMZURMW)RK:URK1]RK7(:<JURK7*W&K=R<AIR<G(:<AI/&G)R&AH:<B8:\nM&B9R)K*Z)K(F)B9RLAIR)G(:&AH:<AIR<AHF&G*WM[=R&AJM<G(:K:UR<G*M\nM3ZUR3T]RK:VWMQ6WMZVW3Q45K145%16M%;>M3Q6MK7*W%7*W<A6M<JVMK7(?\nMK:VMMW)R<G*W)G(:<G)R&B9R&KH:<AH:NAIR&B8(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"!HF?;ITLEVZ?5U]?0@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BR)EW\"NK*R)K*R)B:R<G)RMW)R&K>MK7)R\nM'ZUR<G)R<G(5K7(5K:VM<K=R<JVMK7)R'[>M<G*W&AIR&D^W&G(:&AHF<AHF\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"\"#4`DMN83-VO+QV`3,S*]\"!H8Y<$=`1)1&0)25&$'Y^#'X0NKJZNB8FPKK\"\nMPB9_`LCI2D,\"2^5(LYJS1J&.?(Q64*$7]5%@#1=@8/7U]0@(\"`@(7;I=)EU=\nM)KHF)KI=NEVZLKHF7;H:71JR&K(F&KJZ)AJZ)KIR<A+42KG4TZ=^$K7O:\"$B\nM'4J:,%9RM[>MK;>MMZT?K6\\(\"&%A)1$KY7\";2TL%T[4='0+I1#ZL(O%-1#Z:\nMFGR.7#!<,'P(\"`@(\"`!*`B%HU/+4U-34U`)N;FZ0)8)R&KHFNL(:)EVZNAI=\nM77VZN@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@('EU=NEU]?7VZ)KHFNAI=75VZ&F&^\nM2TBL:.\"G[TJYL=S<:#OQ1*T(\"`AV4G83=H19G.&;LR6JP3O<:+'JZ.\"Y:!U-\nM1)NS,`K,8&!6&B9R&B9R&@@(\"`@(\"`@(.>YA2VY+R-34U-0\"?P(\";FX`*P@(\nM\"`@(\"#7'-9&1QY$UQVG':9%I-9''D37'QVF_-<<UQ[^_+,?'?;^_D\"411J&.\nM$2MCX8&4S!RK#1=1S\"B<X5968`WU43?6FJ2M&G*W&G)RMW*M<D]+;C:-$'Y2\nM=H10X5;01H.;FIKPIKZSFK-*/IIDKMQHL;4=.QJZ)B:RLKITLEVZNB8F='U=\nM=+I=NKITNETFLGVRNG1=NKH:NAJR&B8F<AH:<KIR&B9R<K<:)AJM<AJW&AIR\nMM[>W<JVMK7*W&JVW<JUR<G)RMW)RMW)R&G(F<AIR)B:Z)AH:)G(:<B;\"NEW\"\nMNEW\"LKJZNEU=?29]?7VZ7;I=)L(F)KI=NKHFNKJZ)AHF)K(:&AIR&G*R&G(:\nM<KIR<B9R<G)R<K=R&AH:<K>W<G*M<G*M<JURK7*W3[=RK7*W%7*WM[=R<G*W\nMMT]R<AI/MQJW)K<:LG(F)G)R<AIR&B8:&B9RNKHFNETF71JR&EU=NKI=LK((\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BW%7(5%:VM<G)RMW)R\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"'2RLGW\"75U=NKJZ)KJR\nM)EVZNB:ZLKHF<K(:<AH:3QJWMQIRMQIR<K<:<K>M<JVM<JVWMW*M3ZVM<G*W\nM&G)RK:T:M[=/<@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"\"#42]D1T%(3O':$`2LS*]`*H8Y<$=`1)6[9)9\"J\nM$'Y^#'ZUNBQTLK)T?71]NEU+;LCI2D,\"PTV^LYHM1H..?%R,4*$745%1#1=1\nM45%140@(+\"Q=71XL-5TU+%U=+\"PL-5TU+'TU-7TL+\"PL=\"Q=+\"PL72PL?1[\"\nM=!+4Z+G4YJ=:$@SO:\"$B'4B:VEQR<AIRMZVM%0@(\"`@(\"&$E$9!AY7`^;DL%\nMT[5H:`+I1#ZL(B)-2J\"LK+..?#!\\LWP(\"`@(\")5$2R$=U.`@U-34U-0\"`DM+\nMD`$:)B8F<B8:&KJZPEU=)@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(+'0U+\"PL-7U]\nM'BPL72Q]NET>7;I]76$[2TCQL>!HL4K<:(C<:\"'Q1`@(\"`AV=G9V=@$YY>&;\nMLTNJP2&YL7[JZ.#<'2)-1)LP,`K,S,Q6&G*R&@@(\"`@(\"`@(\"`@(6>YA2Y!N\nMR-34U-34?P(\";FX180@(\"&G'OY%I:<>1QY''AFDUQY&_:6F1OX;'Q\\<UQ\\<L\nMQ[\\UO\\<L+\"PLD\"411H..$2MCH8$WS!RK#1=18#F<)S<W%PWU4<R!L[,:)AHF\nM)G)R<B8:<G)+;C:-$'X3$[S-X58K1H.;LYKPIKZSFK-*/IIDKMQHL;4=.R8F\nMLKHF&AJZNAJZ&KH:&AJZ<AJR<B8F)AH:)G(F<G)RMW*W<K>W<AIRMW*MK7(5\nMK16W<G*M<JVW<G)R<G*M&JUR&G)/<G)R<AHF&AH:)AH:NL(:)AHFNKI]NKI=\nMNKJZ'BQ]?5TL+'TL-7TU+%TL?2Q]+#4U'BP>?2PU'GU=72Q]'L*Z771=+,)]\nMNAY]PEU]=+JRLKJZ)EVRNKH:&KH:&AJZNAH:)G)RLG(F&G)R)G)R<K)R<G(F\nMLB8:&B9R<AIR&KHF<K*RNAJZ)KJZNAH:PL*R75UTLL+\")B:Z7;HF772ZNEVZ\nM)K)=PL*R7;JZLKJRNK((\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"*AO;V\\(J`AO\nM;ZBHJ`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AR)K(:\nM<B8:<G*R&AHF)AIR&KIR<G)R)G)R&G(F&B9RMR9R&G*M&AIR<G*M<K>MK:VM\nM<K>WK:URK7(5K:URK7)R<A^WK15R\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"#42Y`1*[P3=@$!`2L1\nMT-`*H8Z,$=`1)6Y+2]FJ$'Y^M5JUNEVZ77UTNGVZ)K)+;LCI2D,\"2TV^FJQD\nM1J:.,#`P8Z&?4?51#1=146!@8\"Q=?7T>+'U]+%TU734L734L?2PU'BQ]QRPL\nM+#7'QS5]QWT>'AXU?2Q]+&S4Z\"+4YJ=:$K5^L2$='4AD+7RZNB;\"N@@(\"`@(\nM\"`@(\"&$ED)`1Y1@^;DL%T[6QL<CI1$,B'6C!TT,B(J2^LYHPFK,(\"`@(J':#\nM)3LB`B$@R-0@U-34U']_2P`5M[<?<G)R<G(F<@@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(+%TU+\"P>?36_'GW''C4U?34L=+\\L-34L?6&^2TCQL2YH:$K<:(C<L4,B\nM2`@(\"`@<=E)VE0$YY7\";FDNJP2&Y?G[JP2&('2)-1)LP,`HWS#=6&@@(\"`@(\nM\"`@(\"`@(\"`@(6>YA2Y!N?]34(-34?\\C(`@)AD`@UQ\\<LQS4U+,<LQS6_'BS'\nMQ[^_QRPUQS4LQ\\<>?2P>+#6_-7U]+'UT81$11H..$2M0H9_,8!RK#1=143GK\nMWF!@%PWU46\"!,'Q=PKI=&L)=NB8FNEW#2S;3B+$3O!,Y)U8K1H.;L[/PIKZS\nMFK-(FYJ:KHAHL;4=.[H:)B8:)G(FNG)RNAIR<B8:&K>W<G*MMQJM<JVW<JT?\nMK;=R'ZT5MT^W%:VWK15RK;>WMW*MMW*WMW(:&AJW)AJR)AJZ)B:RNKI]NK*Z\nM771]+\"Q=734U+#4U+'W'++^_-;\\L+,?'+\"PLQRS'+#7'-;\\LQRQIQRPU+\"PL\nM++_'?34>+\"R_+'0L?5TL75TL?5U]+'U=+'1]'ET>LKI]NEU]7;JZNGUTNEVZ\nM729=NGU=NKI])KI]75VZ7;ITLKJRNL)]NEU]?7VRPEVRPGVZ?;JZ?71]NK+\"\nM?;I]77UT)GVZ7;I]72:RNG1=771TNEVRNL(:&KH(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`BH\"&^H\"*BH;P@(\"*BH\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"!45%16MM[=R%16WK7*W<G)R<K=RMW)R<G)R<A^M<A^M'ZURK7*W\nMMW*M<G*M'[=RK:VWK16W%15RMZT5%:VMK;>WK1^M%;<(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+JR\nMNG_42R41*Q.\\E0$!`2L1*]`*H8Z,$=`1)6Z02VZJ$'Y^#'ZU71JZLAK\"NAJZ\nM&B9+;L@.TT,\"2TT[I\"*LJJ:^,#`P8Z&?8/7U#?51]<PW-[JZPEVRPK)=)L)]\nMNEW\"NG1=NEW\"PL+\"+\"PU'GTLOWT>+,<L?;\\L?36_-6P)Z+G4YJ=^$A!^?@P=\nM'4KQK#`L\"`@(\"`@(\"`@(\"`@(\"&$ED)\"0Y4@^;DL%T[5^?M0%2D,B:+'!TX@=\nM:-P[FJR:K*0(;ZAO\"!.A8;ZL;B'4R-0@U-34U\"#42RL5;Q6W'Q5R\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(NEU=NG2Z+,)=+,(L77TL+'TU-34L?5U]+'U=76&.\nM)4CQL2YH:$2(:(C<:$,B2@@(\"`@<E94!,RLYY1@^FFZ`P2&Y?G[JP2&((B)-\nM1)LP,%8W-S=6\"`@(\"`@(\"`@(\"`@(\"`@(6>YA2Y!N`M34R-34U,C(?]1+;KI=\nM?7W\"'AY]NGU]NKJRPGVZ=,+\"=%VR7;JZ?5TF)B;\")EVZ)KJZ772Z82411H..\nM$0!0H9_,41RK#1=141SKWE%1%PWU]5&?5IL>7;I=?7TL'KJZ'L+#2VM*KFB\\\nM=G8<WC<!EZ$*?#`H@]8PL[-$FYIDKHAHL;5H.R8:<G(:<B9R<G(FMW)R<G)R\nM&K>MK7)RK1\\?<K=R'W*WMQ6M<JVWMW)RMT]R<JU/&K<:<G)R<AH:LG(:<B8:\nMLKJZLKI=72PL?7U]+#4>=\"PL'GU]++^_Q\\<>+\"R_QRR_Q\\<UQS4UORPU+,?'\nM+\"PLQRPL+#7'QRR_+,<U?2PL+\"R_OS6_?35]+'U]-7U]='U]+'TL?7TL75TL\nM?2Q]PBQ]+%T>PAYT++K\"?5U]?1XL+'TL?<(LPETL='1]?5TLNBP>?2Q]NGU]\nM++I]?2RZNKJZNG0F729TNGTF)K(:71K\"NK(:NB9=NAIRLKJZLB:R&KJZNAH(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"!5O'V\\5;Q6HJ&^H;P@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(J&^H;V]O%145%6]O;Q45%145K15O%15OK15O\nM%16WMQ6M%16MM[<?K145MQ45K16M%16W%;<5;ZVM%1^M;ZT5;ZT?%15OK0@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(<B9R<AJR&G_4;I`1`1.\\E0$!`2LS*]`*H8Z,$=`1)>Z02VZJ\nM$+%^0[&(<AH:<K*W<B9R<@A+2]0.TXA_`L$[B\"(BJJ:^L[,P8Z&!S%'U#?7U\nM]3=65K<?<G)/%7*M<K=RK:UR<G)RM[<F<G(:LKJZ)B9=NKI=7;JZ?7VZ77U=\nM?07(C;;4YK9^$K5^?@QH:$KQ\\9H(\"`@(\"`@(\"`@(\"`@(\"&$ED&Z0Y4B@`DL%\nMT[6Q6M0.2D,=L7[!T[6Q?KE#(B+Q(MRW%145K7:A*[Z:)3L\"?]34U-34U-34\nM?V$5%;>M\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BW&G(F<G)R<AJZNB:Z)KH:)G0F\nM75UT7;JRNKI]?;I=NF&.84CQL>`=(D2(:(@B'3OQ2`@(\"`A965DK,RONY4@^\nMK&Z`P4.Y?G[JP2&('2)-2CZS,%965I16\"`@(\"`@(\"`@(\"`@(\"`@(,^Z0;DMN\nM`L@\"`LC4U,C(?]0\"`G(F<AIR<AJW<K>W<D\\:K;=R<K<:3W)R<G)R<G(:<G)R\nM<G(:&G)/&G*W89`11H..$0#-)Y]@41RK#1=141SK#6!@%PWU]?7>5E9]NKI=\nM75U==,)]?73+?PE*H!V\\=G8<#6`!.:&!5HR7H=9<,'Q$FYJLKH@=:+6Q(28:\nMLAJW&G)R<G*WMQIR<AJW<K>M<JU/<JUR&G)RK7)RMW)R<AH:<G(F&AIR)KH:\nM)AJZNKJZ)KHF72:Z77U]NK)TLG1]=+H>?;K\"+\"PLNETL=\"S\"+,*Z+'0LNBQ=\nM?71=773\"PGUTPL)]?71=7;H>NAY]NGU==%U=NGUT75W\"7;HLNBQ]NG0L?<*Z\nM7;I=7<)=?2Q=?2Q=?<(L+\"Q=='1=?7U=?2P>+'U]+#4U+#4L='TL?35=+\"Q=\nM+\"RZ'KI]NEUTNKJZNKI]LB:ZNB:Z)B:ZNB9R&AHFNAHF&AIRNB9R<K*R<K)R\nM)G(F<K(:)B9R<G)R)B8(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`BMMZVWMZVM<K>W%16M\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"&^H;V]O;V^H%16HJ!45%6\\5\nM;Q5O;V\\5'Q45K16M%14?K145%;>M%4^M%7(5K:T5%16MMW(5%16M3[>W%;>M\nMMQ6WK16M%15O\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@?K7(5%16WM[=R3W_42Y`1`1.\\E0$!`2LS\nM`2N!H0I<$6$12VZ0)9\"JM6BQ0QU#&B8:<G)/\"`@(\"`A+2]0.TXC(?\\$AB!TB\nMJJ:^L[,P8Z&!-V!1#?7U45965J@5;V]O%6\\5;V^H;V]O;V]O%145%:T5%16M\nMK145%16WM[>MMZT:<G(:<@74C;;4T[9^;`Q^L0QH:-,B9*P(\"`@(\"`@(\"`@(\nM\"`@(\"&&0D&Y+SDJ@`DL%2D,=[]0.TT,=[W[H+A!^?GX,:+$=:\")R&B9R&BNA\nM,QBS);XV`M34U-34U\"#4?V&W\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`ARK;>M%16M\nM'Q]RK:VM<G)R<K=R&G*W<G)R)G(:<AIR&G)RLF$884CQL>`=(D2N'8@B'3NL\nM2`@(\"`@Y!UDS$=!&Y4B@K`*`P4.Y?G[JP2&('2)-2CZS,\"165E9<\"`@(\"`@(\nM\"`@(\"`@(\"`@(*Z.0`FX\"`LA+;LC4U-3(RP+(U&\\5%6]O;Q5O;Q45;V\\?%145\nM%1]O%145;Q6M%6\\5K14?MQ45%:T?MZVMD)\"0EX,8$0`HWA=141RK#1=141SK\nMWF!@8-X74?4--PHFNAJZ7;HFNAI=NB8@U`E$/B(3O'8<#?6\\.9R?E`8YG(%6\nM7%QEFYJLKH@=:+5^(1IR<AJW<K=/3QIR<G*W<G*W<B8F<K)R&AH:<G*R)KHF\nMNK*Z)L(:NKH:NB8F75VZNETFNKK\"?7U])B8F75U=LKJR75T:)KJZ)K*Z)KHF\nMLG(:<G*R<B9R<G)R&G)R3[>W<G*W<AJMMZUR<JVW<G)R3W*MK1JM<G*W<G)R\nM&G)R)B:R<KJZNKH:)KHF)KJZ&EVZ)EVR7;*R?7VZ?71=75U]NEU]?2PLNL)=\nM?7TL'GU]NAYTLL)]NK*Z)K)TNEVZNB;\"NKHF&G)R<K(F&G(:MR9RM[<:&G)R\nM&JT:3W)R&AJMMW)R<G)R<G)RM[=R<B9R)K>RLAH(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"*UR<JVWK;=R<K=R\nM<G((\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@('[<5'ZVM\nM%16M%1^M%:T5K145K145%:VMK;=R<G*W<JVW<G)RMW)R<G*MMQIRK7*WMW)R\nM<AH:<G)R&K=/MW*W)K<:&AH:&JT(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"&^H;V^H;V^H%15OJ!5O\nM%2#4`I`1*[P3=@$!`94S`2N!Y(%6$6&02S:0)9\"JB!UH(2*@)AH(\"`@(\"`@(\nM\"`A+2]0.T[74(,$AW!TBJJ8[L[.S8Z&!5C=@WA=1459<5JAO;V\\(J&^H;Z@(\nM;ZBHJ*@(;PBHJ*BH\"`@(J`BHJ*@5%:AO;V\\5%15O%6QKC;G(T[FQ;$.Q:`RQ\nML=,BK/$(\"`@(\"`@(\"`@(\"`@(\"&&02VY+34J@`DL%2D,=:,@.TPQH?EK!T[5H\nM[QT,L7ZQ[[E]72Q]?0\"A`!@P8;YN2\\C4U-34U\"#4?Y`(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`A/MQ]R%7)R<D^M%16MMQ45K15RK:VW<JU/K;>MK:T5MQ]R<G*M3V$8\nMT$@BL>`=(F6D[(CQ(CNL2`@(\"`@Y!UDS$6%&3;Z@\\0*`P4.Y?G[JP2&('1U-\nM2CZ:LYM65@9<\"`@(\"`@(\"`@(\"`@(\"`@(8:/#`DL\"`LA+2P)_U-3(`M34U&]O\nM;V]O;Q6H;V^H;ZBHJ!6H;V\\5%6]OK:T?;Q6M%:VMK16M'W)R<K>W81$1EZ'A\nM,P`H#1=141RK#1=141SKWF#,S\">?S%$-8)\\:&G(F<G*R&AH:)G(@?]1$/JP3\nMO+P<#?43'.L746`<Z]XW5EQEFYJLKH@=:+5^X!JW<G(:<AIR<AHF&K(:&AJR\nMLKHF&KH:7;JR)L)])B9=?1Y]PEVZ7;JZ?;H>NKH>75VZ7<(F)KJRLB8:)AHF\nM<G(F<G(:<G)/'Q^W%16M%145%145;Q5O%6]O\"*@(;V^HJ`BH;PBHJ*BH\"`AO\nM\"`BHJ`AOJ&^HJ&]O;Q5OK6\\5K:T5%16M%;=/<G)RMQIR&G)R<G*R<G)R<AHF\nM<AHF<AH:)KJR)AHFNG)R&G)RNB8F)AIR&G)R)G)RMW)R&JURK;>M<JVWK;>M\nM%:VMMZT5K:VMMZT53W*M%145%15R<K<5K7)R<JVWMW)RK7)R<G(:&G)R&K((\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@5\nM%16WK;>MK15R%7*M\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@:&JVWK7*M<G)RK1JM<JVWM[<:3ZUR<G*W<AH:3W)RMW)R&AHF&B8F\nM<G)RNAHF&B:Z)AH:NB8:NKHF)B:Z)KJZ=+JZPG2ZN@@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(;V\\5\nMJ&\\5J*BHJ*BHJ`AOJ&^H;R#4`I`1*[P3=H0!`965A`&!Y($&$6&02V[9)9\"J\nMB\"(B._$^\"`@(\"`@(\"`@(\"`A+?]0.T[74(,$AW!TBJJ:^L[.S8Z&!5E8W)V!@\nMS%9<5JVWK145%1]O;V]O;Q6HJ&^H%:BHJ*BH;V^H\"&]O\"*BHJ`BH;P@(J*AO\nM;VQKC;G(T[FQ;$-H:$/O[R$=\\2((\"`@(\"`@(\"`@(\"`@(\"\"5+2VY+34J@`DL%\nM2D,B'0(%T[6G?G[!TX@=:\")#'7Y^?J<L-37'OP\"A`!A\\8;YN;LC4(-34U\"#4\nM`FX(\"`@(\"`@(\"`@(\"`@(\"`AR<G*W<JVWK:VMK7)R%;<5<A45%:T5%4^M%16M\nM%;>W<K>W%16M%0@(\"&&.84@B[^`=\\::@(JZL(CNL2@@(\"`@Y$0<1$6%&3;ZN\nM(@*`Z$.YL7[JZ\"'<'1W!2CZ:LYM<5@9<\"`@(\"`@(\"`@(\"`@(\"`@(*Z-N`DMN\nM`@)N)0++U-34:]34U&\\5;V^M%145%16M%15O;[>W%14?<JVMMZUR<K=R&G(:\nM)G*R&B8F<KH:8241EZ'A,P$H#1=141RK#1=18#GKWLPW-R>?-\\P-8)\\:<D]R\nMM[<:<AH:K;=_2VZFFYJ\\O'8Y#1<3'*OU]?4<JPU@5EQEFYJLKHAHL;6QX+=R\nM)G(:<AJZ<AHF&AH:NKHF77VZNGU]7;JZ?5VZ771]?7T>7;I=770>77U=NEU=\nM='1TNAH:NAHF<G(:<G*MK;=R3Q45;Q4?;ZAO;V\\(J`@(\"`BH\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(J*BHJ*AOJ`BH;V]O;V\\5J!5O;Q5O;V^M\nMMQ45K1453ZVMK7*M%;<5%7)R<G)R<A^MM[=RMW*WK7*W%16MK1^WMQ6MMZVM\nMMZVMK145MV\\5%:T5'ZUO%1\\5K14?%:VM%;>W%:T5MZU/MW)R3W*WK1JMK;>W\nM<G)R<AIR<G)R&K>W)G((\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"!45%7*MK;>WK7(5MZT(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(&B8F&D]R<K=R<G(:M[<FM[<:&G*W<D]RMQJW<G)R\nM<G)R<AIR3W)R<G)R&D\\:<AH:<AH:&AJZLG*ZNG(:&KI=LB8F75VZ7;I=\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`BMK145MQ6MK;>M;V\\5%6]O%6\\5;ZBHJ\"#4`FX1*W:\\O':$A'9V\nM=E*!G(%6$6&02VZ089\"JKO&LOF0^\"`@(\"`@(\"`@(\"`A+?]0.T[74U,$AW!TB\nMJJ:^L[,P8Z&.5E8&)S<W-U9<5L(:<K*ZNAJR<G*WMQIR<G)RMQ45K:VWK1]O\nM%:T5%6]O;ZAOJ&^H;V^HJ&QKC;G(T[FQ;$-H'2&G?B%H(B((\"`@(\"`@(\"`@(\nM\"`@(\"\"5+2VY+34JN`DL%2J#Q(@+I2@RG?G[!TZX='?%#(FAH?J?'O[_'+(*A\nM`!A\\84AN;LC4(-34U-34?VX(\"`@(\"`@(\"`@(\"`@FNB8FNG*ZNG)R<AJW<D\\:\nMMQJWMW)R<JUR%7(5<A5RK:URMW)RMP@(\"`@(\"\"N.);X=?BXB\\:8^\\:ZN(CNL\nM1`@(\"`CN$0<1D\"6J33NN(G^`P2&YL>_JZ.#<:!W!2CZ:FIM<5E9<\"`@(\"`@(\nM\"`@(\"`@(\"`@(*^Z02TO#2VZ0V6Y+`LC4\"=34U*VMMT\\5<G)RMW*W&AH:<G)R\nMNKIRNAH:NAJZ)EU]7;I]772Z+'U=?5T>86$1EZ'A,P$H#1=141SKWA=@S#F<\nM)S>4-^&!E#<-S#>R<K=R<G*MMW)RMZU+;FZFF[-V=G8YWA>\\'*OU4?4<JPU@\nM5E9EFYJLKHAH[[5^X')R)KH:<G(:)KJRPAJZNG1]?;*Z7;JZ?5VZNKJZ'KIT\nMNGUTNBRZ=+JZ=%U=NL(:&AJR<AHF)AIR&G)R<A^MMZVWK16M%15O%:AOJ*@(\nMJ*@(\"`@(J`BH\"*@(\"`@(\"`@(\"*@(\"`BH\"*AO\"*AOJ*@(J&]O\"*@(;V^H%:BH\nM%6]O;V\\5%145;Q5O'Q\\5'Q45%145K145%:UOK6\\5;Q45;ZVM;ZVM%6^MK:VM\nM;V\\5%6\\5;Q6M;ZVM%:VM;ZUO%1\\5%6\\5K145MQ45%16MM[>WK;>W3ZUR<D^W\nM<K>W<JT:<G(:<G(:<G)/&G*MMZUR<G*M<G(:<AH(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@5K;>WK:T5<G*MK16M\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@:<AHF)AH:&AH:&G)RMW)R&AH:\nM<K<:<D^WK7)RMZUR%:VMMQ6M'W*M'Q6M<A6M%145K7*MK;<5%:VW<A5R<G)/\nMMZUR&K=R<K<(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+JR7;*ZLB:RNK)R&B8:&G(:)JVW<A]R<JVW\nM<M34`DL1T`%V$[QV=G9V=H2?G)]6,]`12VZ089\"J/IJ:&)J;\"`@(\"`@(\"`@(\nM\"`A+2]0.T[7((,$AW!TBJJ:^,#`P8Z&!5E96X924E%9<5KI='EVZ+\"Q]PET>\nM?2RZNEU]NEVZNAHFLB9RNKIR<B9RMW*W&G*W<G(5\"&QKC;G(T[:Q;$-H(B&Q\nM6N#O'2((\"`@(\"`@(\"`@(\"`@(\")!+2VY+3=.N`DL%2D/Q(F[I2D,=L;%-TT,B\nM'?$^(AT=?K;\"75U=?0&<,QA\\84AN`M34U-34(-34(-0(\"`@(\"`@(\"\":Z71H:\nM&KHFLB:ZNG(:&B9RLG)R<AH:<AJW)G)R<G)R<K=R<B8:)@@(\"`@(\"`@(\"`\";\nM)3MH?B$B\\::SK*\"D\\3MD1`@(\"`CNV1$1D\"6J3=.N(@*`P2'<:+'JZ.\"Y:&C!\nM2CZ:FIM<7%9<\"`@(\"`@(\"`@(\"`@(\"`@:,^X12TMA)241V4M+R,C4\"=3/U\"9R\n-------- End of part 4 of 14 --------\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2338, "properties": {"category": "rec.motorcycles", "text": "From: rbemben@timewarp.prime.com (Rich Bemben)\nSubject: Safe driving prcatices...\nExpires: 30 Apr 93 05:00:00 GMT\nOrganization: Computervision\nLines: 34\n\nIn article <1993Apr9.133114.2605@news.columbia.edu> rdc8@cunixf.cc.columbia.edu (Robert D Castro) writes:\n>In article <rbpC54D51.26n@netcom.com> rbp@netcom.com (Bob Pasker) writes:\n>>cjackson@adobe.com (Curtis Jackson) writes:\n>\n>>\n>>my solution is *never* to ride next to a car\n>\n>The only thing between you and \"them\" is space.\n>Keep as much as possible.\n\nTake this one step further ...\n\nNever dilly-dally in that rear 1/4 of either side of a cage - when you pass\nmake it as POSITIVE as possible and if you can't pass fully, at least make\nsure that if you attempt it you can make the driver aware of you by at least\ngetting into his area of vision.\n\nThis also applies to merging into another lane after making a pass - do it\nas POSITIVELY as possible ... and what I \"try\" to do is look in the rear view\nand then over my shoulder.  And after I've done that ACCELERATE into the \nlane so that you have a speed cushion should you have missed seeing a \npotential BDI that's trying to do the same thing as you ... or worse (ie:\nhe may have been behind you, saw you made the pass successfully but YOU aren't\nGOING FAST ENOUGH to suite him so he tries to go around you on the right).\n\nRide with four eyes...\n\nRich\n\n\nRich Bemben - DoD #0044                     rbemben@timewarp.prime.com\n1977 750 Triumph Bonneville                 (617) 275-1800 x 4173\n\"Fear not the evil men do in the name of evil, but heaven protect\n us from the evil men do in the name of good\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2339, "properties": {"category": "comp.os.ms-windows.misc", "text": "Organization: Penn State University\nFrom: Azmi Hashim <AXH113@psuvm.psu.edu>\nSubject: Re: Trident 8900 *CL* 1280x1024 driver?\nLines: 18\n\nIn article <C5qKuA.CHn@da_vinci.it.uswc.uswest.com>,\ndfeldman@lookout.mtt.it.uswc.uswest.com (David Feldman) says:\n\n>Please excuse if FAQ but...\n>New Trident 8900CL based card claims to have 1280x1024 support.\n>Drivers with card indicate several 1280x1024 drivers on diskette.\n>Windows 3.1 does not make all drivers on diskette available to\n>configuration dialog box. Any suggestion?\n>Thanx; please e-mail.\n>dfeldman@uswest.com\n\n\nSince we are in the subject, I have one more question. I have a Trident\n8900C Video Card. I want to know what is the latest video driver for it.\nSo far, all I can find is that an old driver dated Aug. 92 in garbo.uwasa.fi\nAnyone have any info ? Please e-mail me at axh113@psuvm.psu.edu\n\n-Az.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2340, "properties": {"category": "talk.politics.misc", "text": "From: k044477@hobbes.kzoo.edu (Jamie R. McCarthy)\nSubject: Re: CA's pedophilia laws\nOrganization: Kalamazoo College\nLines: 79\n\ncramer@optilink.COM (Clayton Cramer) writes:\n>k044477@hobbes.kzoo.edu (Jamie R. McCarthy) writes:\n># \n># Having completely\n># dived into the abyss of believing that there are no queers in the world\n># who think differently from the child-molestation-advocating minority on\n># soc.motss, he doesn't even notice that he's starting a sentence with\n># \"They believe\" when the referent of that \"they\" is millions of people.\n># \"...so few as to be irrelevant...\"\n>\n>If you don't want to be lumped together as a group, stop insisting\n>on being treated as a member of a group.\n\nPlease point out where I have said I even _was_ a member of that group,\nmuch less asked to be treated as such, much less insisted upon it.\n\n>Sexual orientation is not defined by the anti-discrimination law\n>that was passed last year.  Pedophilia isn't a sexual orientation?\n\nWait a minute.  You've been claiming for quite a while now that\npedophilia, according to CA state law, is a sexual orientation.  Now\nyour position is that the law doesn't specifically exclude it?\n\nYou know damn well what's going to happen.  Some guy in a NAMBLA\nT-shirt's going to apply at a day-care, they're going to turn him down,\nhe's going to take it to court, and the court's going to rule that\nsexual orientation is defined as homosexuality, heterosexuality, or\nbisexuality.\n\nUnless and until that court decides that pedophilia is a sexual\norientation, you have no business saying so.\n\n># \"Silence = Death\" pin or something.  They turn me down because of\n># that.\n>\n>I wholeheartedly support their right to take this action.  I wouldn't\n>do it myself, unless it was something like the NAMBLA T-shirt.\n\nDespite the fact that all homosexuals are lying bastards?\n\n># How about:  a black man applies for a job at a bank.  The bank decides,\n># based on statistics, a black person would be more likely to steal\n># money, and denies the man the job.  Would you support the bank's right\n># to this freedom?\n>\n>I support their right to do so [deletia] but [deletia]\n\nAh.\n\nSo, for example, you are opposed to the Civil Rights Act of 1964?\n\n>Here's the law that was passed and signed by the governor:\n>\n>     The people of the State of California do enact as follows:\n>\n> 1       SECTION 1.  The purpose of this act is to codify\n> 2  existing case law as determined in Gay Law Students v.\n> 3  Pacific Telephone and Telegraph, 24 Cal. 3d 458 (1979)\n> 4  and Soroka v. Dayton Hudson Corp., 235 Cal. App. 3d 654\n> 5  (1991) prohibiting discrimination based on sexual\n> 6  orientation.\n> 7       SEC. 2.  Section 1102. is added to the Labor Code, to\n> 8  read:\n> 9       1102.1.  (a) Sections 1101 and 1102 prohibit\n>10  discrimination or disparate treatment in any of the terms\n>11  and conditions of employment based on actual or\n>12  perceived sexual orientation.\n>              ^^^^^^^^^^^^^^^^^^\n>\n>13       (b)  This section shall not apply to a religious\n>14  association or corporation not organized for private\n>15  profit, whether incorporated as a religious or public\n>16  benefit corporation.\n\nThere's no \"for purposes of this act, the term 'sexual orientation' will\nbe defined as\" section?  No definitions anywhere?  Did they run this\nthrough the state Congress on an accelerated schedule or something?\n-- \n Jamie McCarthy\t\tInternet: k044477@kzoo.edu\tAppleLink: j.mccarthy\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2341, "properties": {"category": "rec.sport.hockey", "text": "From: mmb@lamar.ColoState.EDU (Michael Burger)\nSubject: TEAM POOL - Tabulations\nNntp-Posting-Host: lamar.acns.colostate.edu\nOrganization: Colorado State University, Fort Collins, CO  80523\nLines: 40\n\nThanks for the 41 people who have entered this year's TEAM POOL.\n\nHere is a summary of what was picked:\n\n1st Round:\nPittsburgh 41, New Jersey 0\nChicago 40, St. Louis 1\nBoston 40, Buffalo 1\nVancouver 30, Winnipeg 11\nCalgary 27, Los Angeles 14\nDetroit 26, Toronto 15\nWashington 24, New York Islanders 15 (2 people picked New Jersey)\nQuebec 23, Montreal 18\n\n2nd Round:\nPittsburgh 38, Washington 2, New York Islanders 1\nBoston 31, Quebec 6, Montreal 4\nDetroit 21, Chicago 15, Toronto 5\nCalgary 18, Vancouver 14, Los Angeles 8, Winnipeg 1\n\n3rd Round:\nPittsburgh 31, Boston 7, Quebec 2, Washington 1\nDetroit 18, Chicago 11, Toronto 5, Vancouver 3, Calgary 2, Los Angeles 2\n\nFinals:\nPittsburgh 26, Boston 5, Detroit 4, Toronto 2, Quebec 2, Los Angeles 1, Chicago\n1\n\nGood luck to all!\n\n\n*******************************************************************************\n*  Mike Burger                    *  My Canada includes, Quebec, Ontario,     *\n*  mmb@lamar.colostate.edu        *  the Maritimes, the Prairies, and Florida *\n*  A Beginning Computing TA Stud  *  four months a year.                      *\n*  over 500 students served       *    --Royal Canadian Air Farce             *\n*******************************************************************************\n*      University of Michigan - 1990  --  Colorado State University - 199?    *\n*******************************************************************************\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2342, "properties": {"category": "talk.politics.guns", "text": "From: turmoil@halcyon.com (Tim Crowley)\nSubject: Re: WACO: Clinton press conference, part 1\nOrganization: Northwest Nexus Inc.\nLines: 13\nNNTP-Posting-Host: nwfocus.wa.com\n\ncathyf@is.rice.edu (Catherine Anne Foulston) writes:\n\n>Could y'all PLEASE stop posting this stuff to tx.general.  tx.politics\n>is sufficient and is where this stuff belongs.  Thanks.\n\n>\tCathy\n>-- \n>Cathy Foulston + Rice University + Network & Systems Support + cathyf@rice.edu\n\nWHY??????????\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2343, "properties": {"category": "rec.motorcycles", "text": "From: ranck@joesbar.cc.vt.edu (Wm. L. Ranck)\nSubject: Re: Should liability insurance be required?\nOrganization: Virginia Tech, Blacksburg, Virginia\nLines: 14\nDistribution: usa\nNNTP-Posting-Host: joesbar.cc.vt.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nTommy Marcus McGuire (mcguire@cs.utexas.edu) wrote:\n: You know, it sounds suspiciously like no fault doesn't even do what it\n: was advertised as doing---getting the lawyers out of the loop.\n\n: Sigh.  Another naive illusion down the toilet....\n\nSince most legislators are lawyers it is very difficult to get any\nlaw passed that would cut down on lawyers' business.  That is why\n\"No-fault\" insurance laws always backfire. \n--\n*******************************************************************************\n* Bill Ranck             (703) 231-9503                     Bill.Ranck@vt.edu *\n* Computing Center, Virginia Polytchnic Inst. & State Univ., Blacksburg, Va.  *\n*******************************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2344, "properties": {"category": "alt.atheism", "text": "From: ingles@engin.umich.edu (Ray Ingles)\nSubject: Re: Yeah, Right\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 49\nDistribution: world\nNNTP-Posting-Host: agar.engin.umich.edu\n\nIn article <66014@mimsy.umd.edu> mangoe@cs.umd.edu (Charley Wingate) writes:\n>Benedikt Rosenau writes:\n>\n>>And what about that revelation thing, Charley?\n>\n>If you're talking about this intellectual engagement of revelation, well,\n>it's obviously a risk one takes.\n\n Ah, now here is the core question. Let me suggest a scenario.\n\n We will grant that a God exists, and uses revelation to communicate\nwith humans. (Said revelation taking the form (paraphrased from your\nown words) 'This infinitely powerful deity grabs some poor schmuck,\nmakes him take dictation, and then hides away for a few hundred years'.)\n Now, there exists a human who has not personally experienced a\nrevelation. This person observes that not only do these revelations seem\nto contain elements that contradict rather strongly aspects of the\nobserved world (which is all this person has ever seen), but there are\nmany mutually contradictory claims of revelation.\n\n Now, based on this, can this person be blamed for concluding, absent\na personal revelation of their own, that there is almost certainly\nnothing to this 'revelation' thing?\n\n>I'm not an objectivist, so I'm not particularly impressed with problems of\n>conceptualization.  The problem in this case is at least as bad as that of\n>trying to explain quantum mechanics and relativity in the terms of ordinary\n>experience.  One can get some rough understanding, but the language is, from\n>the perspective of ordinary phenomena, inconsistent, and from the\n>perspective of what's being described, rather inexact (to be charitable).\n>\n>An analogous situation (supposedly) obtains in metaphysics; the problem is\n>that the \"better\" descriptive language is not available.\n\n Absent this better language, and absent observations in support of the\nclaims of revelation, can one be blamed for doubting the whole thing?\n\n Here is what I am driving at: I have thought a long time about this. I\nhave come to the honest conclusion that if there is a deity, it is\nnothing like the ones proposed by any religion that I am familiar with.\n Now, if there does happen to be, say, a Christian God, will I be held\naccountable for such an honest mistake?\n\n Sincerely,\n\n Ray Ingles               ingles@engin.umich.edu\n\n \"The meek can *have* the Earth. The rest of us are going to the\nstars!\" - Robert A. Heinlein\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2345, "properties": {"category": "comp.graphics", "text": "From: sgoldste@aludra.usc.edu (Fogbound Child)\nSubject: Re: \"Fake\" virtual reality\nOrganization: University of Southern California, Los Angeles, CA\nLines: 31\nNNTP-Posting-Host: aludra.usc.edu\n\nMike_Peredo@mindlink.bc.ca (Mike Peredo) writes:\n\n>The most ridiculous example of VR-exploitation I've seen so far is the\n>\"Virtual Reality Clothing Company\" which recently opened up in Vancouver. As\n>far as I can tell it's just another \"chic\" clothes spot. Although it would be\n>interesting if they were selling \"virtual clothing\"....\n\n>E-mail me if you want me to dig up their phone # and you can probably get\n>some promotional lit.\n\nI understand there have been a couple of raves in LA billing themselves as\n\"Virtual Reality\" parties. What I hear they do is project .GIF images around\non the walls, as well as run animations through a Newtek Toaster.\n\nSeems like we need to adopt the term Really Virtual Reality or something, except\nfor the non-immersive stuff which is Virtually Really Virtual Reality.\n\n\netc.\n\n\n\n>MP\n>(8^)-\n\n___Samuel___\n-- \n_________Pratice Safe .Signature! Prevent Dangerous Signature Virii!_______\nGuildenstern: Our names shouted in a certain dawn ... a message ... a\n              summons ... There must have been a moment, at the beginning,\n              where we could have said -- no. But somehow we missed it.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.108+0000", "event": "documents", "entityId": 2346, "properties": {"category": "comp.windows.x", "text": "From: azn30@RUTS.ccc.amdahl.com\nSubject: Compiling X programs\nReply-To: azn30@RUTS.ccc.amdahl.com ()\nDistribution: usa\nOrganization: Amdahl Corporation, Sunnyvale CA\nLines: 53\n\n\nHi Guys,\n\n\tIt has been a long time since I wrote a program using X. I am trying to \n\tget myself re-familiarize with X. I would appreciate your help regarding\n\tthe following problem.\n\n\tI am trying to compile a simple X program on sun running sunOS 4.1.2. \n\tusing\n\tcc -o ex ex.c -lXaw -lXmu -lXt -lXext -lX11 -lm\n\tI am getting an error\n\n\tld: Undefined symbol\n\t\t_get_wmShellWidgetClass\n\t\t_get_applicationShellWidgetClass\n\n\n The simple program I tried to compile is given below.\n\n#include <stdio.h>\n#include <X11/Intrinsic.h>\n#include <X11/StringDefs.h>\n#include <X11/Xaw/Form.h>\n\nmain(argc,argv)\nint \targc;\nchar\t**argv;\n{\n\tWidget\ttopLevel;\n\tWidget\tframe;\n\n\ttopLevel = XtInitialize(\"ex\",\"Ex\",NULL,0, &argc,**argv);\n\tframe = XtCreateManagedWidget(\"Form\",formWidgetClass,topLevel,NULL,0);\n\tXtRealizeWidget(topLevel);\n\tXtMainLoop();\n}\n\n\n\n\n\tI got the same error when I tried to build \"xpostit\" using the Imakefile\n\tprovided with the software.\n\n\tI have compiled X programs before (not on this machine, but on other \n\tmachines running sunOS 4.0 and X11 R4). I did not get this error message\n\tCan anybody tell me why I am getting these messages.\n\n\tI would appreciate if you can email your responses to me at\n\tazn30@ruts.ccc.amdahl.com.\n\n\tThanks\n\tAnand\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2347, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cui@maccs.mcmaster.ca (Jun Cui)\nSubject: How to hold the control to a window object?\nNntp-Posting-Host: maccs.dcss.mcmaster.ca\nOrganization: McMaster University, Hamilton, Ontario.\nLines: 28\n\n// Hope I am in the right group! I'm using BC++'s ObjectWindows (version 3.1),\n// trying to get some date processed in a window object. However, when invoking\n// the window object, the calling program gives up the control to the window\n// object, and keeps executing the next statement. The source code may look\n// like the following:\n\nclass MyWindow : public TWindow\n{\n\t...\n};\n\nvoid MyCallingProg(...)  // Could the calling program be a C function?\n{\t...\n\tMyWindow *MyWinObj;\n\tMyWinObj = new MyWindow(...);\n\tGetApplication()->MakeWindow(MyWinObj);\n\tMyWinObj->Show(SW_SHOWNORMAL);\n\n\tnext statement;  // I want the program to wait here until MyWinObj is closed\n\t...              // so that I can get some data back from MyWinObj. \n\t...              // I specified the window style to be WS_POPUPWINDOW, didn't\n\t...              // help. Is there any other way to execute the window object\n\t...              // so that the calling program won't give up the control?\n}                   // Any help would be appreciated. Thanks!  --jun\nTo talk to the Lord with PS/2 through MS-Windows\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2348, "properties": {"category": "rec.sport.baseball", "text": "From: ez027993@dale.ucdavis.edu (Gary The Burgermeister Huckabay)\nSubject: Bill James Player Rating Book 1993.\nOrganization: Harold Brooks Duck L'Orange Club, Ltd.\nLines: 26\n\n(Dave 'This has never happened to me before' Kirsch) writes:\n>  Correction: \"Nied was the only player identified in this book as a grade A\n>prospect who was exposed to the draft..\", according to Bill James in the\n>'Stop the Presses' section preceding his player evaluations. He valued Nied\n>at $21, and said that Nied's value does not increase significantly as a\n>result of his selection (although he did catch a break getting away from the\n>strongest rotation in baseball). \n\nI thought Bill James' latest book completely and totally sucked.  I bought\nit, but will not purchase anything of his ever again without THOROUGHLY\nlooking at it first.  What tripe.\n\nThe book is inconsistent, and filled with selective analysis.  James\nclaims to be looking forward, and then makes some absolutely bizarre\nstatements of value.  Not only that, but I got the impression he\nprobably glanced at the book for about an hour before he put his name\non it. \n\nTo say I was disappointed is a grand understatement.\n\n\n-- \n*     Gary Huckabay      * Kevin Kerr: The Al Feldstein of the mid-90's! *\n* \"A living argument for * If there's anything we love more than a huge  *\n*  existence of parallel * .sig, it's someone quoting 100 lines to add   *\n*       universes.\"      * 3 or 4 new ones.  And consecutive posts, too. *\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2349, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: leebr@ecf.toronto.edu (LEE BRIAN)\nSubject: Re: WP-PCF, Linux, RISC?\nOrganization: University of Toronto, Engineering Computing Facility\nLines: 67\n\nIn article <C5w9J7.JLL@Nyongwa.CAM.ORG> angcl@Nyongwa.CAM.ORG (Claude Angers) writes:\n>In article <C5rx8B.Kzp@ecf.toronto.edu> leebr@ecf.toronto.edu (LEE BRIAN) writes:\n>>In article <1qu8ud$2hd@sunb.ocs.mq.edu.au> eugene@mpce.mq.edu.au writes:\n>>>In article <C5o1yq.M34@csie.nctu.edu.tw> ghhwang@csie.nctu.edu.tw (ghhwang) writes:\n>>>>\n>>>>Dear friend,\n>>>>  The RISC means \"reduced instruction set computer\". The RISC usually has \n>>>>small instruction set so as to reduce the circuit complex and can increase \n>>>>the clock rate to have a high performance. You can read some books about\n>>>>computer architecture for more information about RISC.\n>>>\n>>>hmm... not that I am an authority on RISC ;-) but I clearly remember\n>>>reading that the instruction set on RISC CPUs is rather large.\n>>>The difference is in addressing modes - RISC instruction sets are not\n>>>as orthogonal is CISC.\n>>>\n>>>-- \n>>\n>>Theoretically supposed to be reduced.... not any longer.  That's why everyone\n>>is arguing about RISC v.s. CISC.  Personally, I think CISC will win out.\n>>Just take a look at the Pentium!  (Not that I like Intel architectures either,\n>>but that's another story...)\n>>\n>>bye!\n>>\n>\n>Do you mean that the Pentium is better than a Risc?  or that it will outsell\n>them all?  If the first, you have to remember that intel CISC (like the\n>pentium) are a always a generation away from the best riscs... also Riscs\n>cpu are more costly because they are not sold in the same quantities (not\n>even on the same order)...  but I remember reading about 3 years (maybe 2)\n>about a T800(?) from hypercube that did a 100 mips, was superscallar AND\n>reordered its instruction itself so\n\nI'm not 100% sure, but I think the T800 was a 25MHz transputer?  so ya tie\na gazillion of them together to get 100mips.  (The newest is the T9000\nwhich kicks anyone's butt :)... haven't seen them used much though).\n\nAnyway, to respond, I think the Pentium (CISC) is better than the more advanced\nRISC (e.g., like the alpha, etc.  the 66MHz Pentium has approximately the\nsame \"performance\" as the superduper 133MHz Alpha - here, performance is the\nweird Specint92 that everyone refers to? - this is what I *heard* - the\nAlpha still kicks in the P5's butt in fp - again, this is what I *heard*).\nand in the computing world, if you sell lots of chips (like intel), and\nmake it faster (like intel), you are the winner (like intel), even though\nyou have a sucky architecture from over 10 years ago (like intel :0).\n\nIf you can make a \"CISC\" chip (superscalar, superduperpipelined, superfast)\nwith the ideas behind the \"RISC\" ideology, you got a CISC chip.  And then\nI admit I can't see the advantages of RISC over CISC...\n\nIf the latest technology is a generation behind, then it sucks (relatively\nspeaking).\n\nNow I may sound like I like intel, but I'll have to say that the P5 is some\nreal kick butt pile of Si and SiO2...\n\nBut I hope that Motorola really catches up with the 68K line... or I'm gonna\nstart crying...\n\nbrian\n\n-------------------------------------------------------------------------------\nBrian \"Hojo\" Lee       | \"Hey, excuse me miss, could I have a .GIF of you?\"\nleebr@ecf.toronto.edu  |\nleebr@eecg.toronto.edu | (try Linux... the best and free UN*X clone!)\n-------------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2350, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 07/10 - Digital Signatures\nOrganization: The Crypt Cabal\nLines: 85\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 7 of 10 of the sci.crypt FAQ, Digital Signatures and\n Hash Functions.  Theory of one-way hash functions, distinctions of\n terms. MD4 and MD5. Snefru.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part07\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 7: Digital Signatures and Hash Functions\n\nThis is the seventh of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read the first part before the rest.\nWe don't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in the last part.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers\nevery 21 days.\n\n\nContents:\n\n* What is a one-way hash function?\n* What is the difference between public, private, secret, shared, etc.?\n* What are MD4 and MD5?\n* What is Snefru?\n\n\n* What is a one-way hash function?\n\n  A typical one-way hash function takes a variable-length message and\n  produces a fixed-length hash. Given the hash it is computationally\n  impossible to find a message with that hash; in fact one can't\n  determine any usable information about a message with that hash, not\n  even a single bit. For some one-way hash functions it's also\n  computationally impossible to determine two messages which produce the\n  same hash.\n\n  A one-way hash function can be private or public, just like an\n  encryption function. Here's one application of a public one-way hash\n  function, like MD5 or Snefru. Most public-key signature systems are\n  relatively slow. To sign a long message may take longer than the user\n  is willing to wait. Solution: Compute the one-way hash of the message,\n  and sign the hash, which is short. Now anyone who wants to verify the\n  signature can do the same thing.\n\n  Another name for one-way hash function is message digest function.\n\n* What is the difference between public, private, secret, shared, etc.?\n\n  There is a horrendous mishmash of terminology in the literature for a\n  very small set of concepts. When an algorithm depends on a key which\n  isn't published, we call it a private algorithm; otherwise we call it\n  a public algorithm. We have encryption functions E and decryption\n  functions D, so that D(E(M)) = M for any message M. We also have\n  hashing functions H and verification functions V, such that V(M,X) = 1\n  if and only if X = H(M).\n\n  A public-key cryptosystem has public encryption and private\n  decryption. Checksums, such as the application mentioned in the\n  previous question, have public hashing and public verification.\n  Digital signature functions have private hashing and public\n  verification: only one person can produce the hash for a message,\n  but everyone can verify that the hash is correct.\n\n  Obviously, when an algorithm depends on a private key, it's meant to\n  be unusable by anyone who doesn't have the key. There's no real\n  difference between a ``shared'' key and a private key: a shared key\n  isn't published, so it's private. If you encrypt data for a friend\n  rather than ``for your eyes only'', are you suddenly doing\n  ``shared-key encryption'' rather than private-key encryption? No.\n\n* What are MD4 and MD5?\n\n  MD4 and MD5 are message digest functions developed by Ron Rivest.\n  Definitions appear in RFC 1320 and RFC 1321 (see part 10). Code is\n  available from [FTPMD].\n\n  Note that a transcription error was found in the original MD5 draft\n  RFC. The corrected algorithm should be called MD5a, though some\n  people refer to it as MD5.\n\n* What is Snefru?\n\n  Snefru is a family of message digest functions developed by Ralph\n  Merkle. Snefru-8 is an 8-round function, the newest in the family.\n  Definitions appear in Merkle's paper [ME91a]. Code is available from\n  [FTPSF].\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2351, "properties": {"category": "rec.sport.baseball", "text": "From: dtate+@pitt.edu (David M. Tate)\nSubject: Re: Young Catchers\nArticle-I.D.: blue.8007\nOrganization: Department of Industrial Engineering\nLines: 81\n\nmss@netcom.com (Mark Singer) said:\n>In article <7975@blue.cis.pitt.edu> genetic+@pitt.edu (David M. Tate) writes:\n>>mss@netcom.com (Mark Singer) said:\n>>>\n>>>We know that very, very few players at this age make much of an impact\n>>>in the bigs, especially when they haven't even played AAA ball.  \n>>\n>>Yes.  But this is *irrelevant*.  You're talking about averages, when we\n>>have lots of information about THIS PLAYER IN PARTICULAR to base our\n>>decisions on.\n>\n>Do you really have *that* much information on him?  Really?\n\nI don't personally, but Clay just posted it.  Yes, we do.  \n\nUnfortunately, it shows that Lopez wasn't as good an example as Nieves would\nhave been, since his last year numbers were out of line with the previous\nyears (which I didn't have access to).\n\nThe point remains, though; knowing a guy's minor league history is as good\nas knowing his major league history, if you know how to read it.\n\n>>Why isn't Lopez likely to hit that well?  He hit that well last year (after\n>>adjusting his stats for park and league and such); he hit better (on an\n>>absolute scale) than Olson or Berryhill did.  By a lot.\n>\n>I don't know.  You tell me.  What percentage of players reach or \n>exceed their MLE's *in their rookie season*?  We're talking about\n>1993, you know.\n\nThe MLE is not a *projection*, it's an *equivalence*.  It's a \"this is how\nwell he hit *last* year, in major league terms\" rating.  So, in essence, he\nhas *already* reached it.  I would guess (Bob?  Clay?) that essentially half\nof all players surpass their previous MLEs in their rookie seasons.  Maybe\nmore than half, since all of these players are young and improving.\n\n>If that were your purpose, maybe.  Offerman spent 1992 getting \n>acclimated, if you will.  The Dodgers as a team paid a big price\n>that season.  \n\nDid they?  Offerman may have been the difference between 4th or 5th place\nand last place, but no more.\n\n>Perhaps they will reap the benefits down the road.\n>Do you really think they would have done what they did if they\n>were competing for a pennant?\n\nSure; they didn't have anyone better.  I suppose they might have gutted the\nfarm system to acquire Jay Bell or Spike Owen or somebody if they were really\nin contention. \n\n>>The point was not that 17 AB is a significant sample, but rather that he\n>>hadn't done anything in spring training to cause even a blockhead manager\n>>to question whether his minor league numbers were for real, or to send him\n>>down \"until he gets warmed up\".\n>\n>For a stat-head, I'm amazed that you put any credence in spring\n>training.  \n\nIf you'd read what I wrote, you'd be less amazed.  Nowhere do I claim to put\nany credence in spring training.  Quite the contrary; I said that Lopez hadn't\ndone anything that even the bozos who *do* put credence in spring training\ncould interpret as \"failure\".  Just because I think spring training numbers\nare meaningless doesn't mean that Bobby Cox does; it's just a case of ruling\nout one possible explanation for sending Lopez down.\n\n>>>The kid *will* improve playing at AAA, \n>>\n>>Just like Keith Mitchell did?\n>\n>Wait a minute.  I missed something here.  \n\nKeith Mitchell did very very well at AA, AAA, and the majors over a season,\nthen did very, very poorly for a year in AAA.\n\n\n-- \n  David M. Tate   |  (i do not know what it is about you that closes\n  posing as:      |  and opens; only something in me understands\n   e e (can       |  the pocket of your glove is deeper than Pete Rose's)\n     dy) cummings |  nobody, not even Tim Raines, has such soft hands\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2352, "properties": {"category": "comp.sys.mac.hardware", "text": "From: cmwand@leland.Stanford.EDU (Christopher Wand)\nSubject: Re: Syquest 150 ???\nOrganization: DSG, Stanford University, CA 94305, USA\nDistribution: usa\nLines: 30\n\nIn article <93759@hydra.gatech.EDU> gt8798a@prism.gatech.EDU (Anthony S. Kim) writes:\n>I remember someone mention about a 150meg syquest.  Has anyone else\n>heard anything about this?  I'd be interested in the cost per megabyte and the\n>approximate cost of the drive itself and how they compare to the Bernoulli 150.\n\nI think you must be talking about the Syquest 105 (code named Mesa I believe).\nIt is a 3.5\" Winchester technology drive pretty much like the other Syquest\ndrives in terms of how it works. According to the latest MacLeak, the \ndrive has a 14.5 ms access time, 1.9 MB/s sustained throughput (these figures\nare from memory so they could be slightly off, but they give you an idea of\nperformance nonetheless). The drive was originally released for the PC\nand just recently was released for the Mac world (don't ask me what the \ndifferences are) and through they are currently in limited supply, according\nto a Syquest rep. they are in the process of ramping up for mass production.\nI have already seen them advertised by a number of manufacturers in MacLeak\nincluding PLI, MassMicro, ClubMac, and MacWarehouse's PowerUser. The PLI\nand MassMicro units are priced at just around $1000; the lesser name brands\nare going for around $750 for an external drive. Cartridges which hold \n105 MB sell for about $80 each. At these prices, the drives and cartridges\nare cheaper and better performing than the 88MB drives.\nCost per megabyte compares favorably with other cartridge drives and Bernoulli\ndrives, but for large amounts of data optical is still cheaper, and more\nreliable.  Personally, I'm excited by the new drive and look forward to \ngetting my hands on one.\n-Chris Wand\n\n-- \n\n\"Egotism is the anesthetic that dulls the pain of stupidity.\"\n                                                     - Frank Leahy\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2353, "properties": {"category": "talk.politics.guns", "text": "From: gt6511a@prism.gatech.EDU (COCHRANE,JAMES SHAPLEIGH)\nSubject: Re: guns in backcountry? no thanks\nOrganization: Georgia Institute of Technology\nLines: 48\n\nIn article <121415@netnews.upenn.edu> egedi@ahwenasa.cis.upenn.edu (Dania M. Egedi) writes:\n:In article <1993Apr16.222604.18331@CSD-NewsHost.Stanford.EDU>, andy@SAIL.Stanford.EDU (Andy Freeman) writes:\n:|> In article <1993Apr16.174436.22897@midway.uchicago.edu> pkgeragh@gsbphd.uchicago.edu (Kevin Geraghty) writes:\n:|> >wrong about the  whole guns-for-protection mindset, it ignores the\n:|> \n:|> Why?  If you're not a threat, you're not affected at all.\n:|> \n:\n:Aha.  That's the part that makes me nervous too.  Who gets to decide if\n:I am a threat?  Based on appearance?  Would someone feel more threatened\n:\nActions determine whether someone presents a threat... and I don't carry a gun\nso much for people, cause I tend to fade if there are any about, but due to \nseveral encounters with formerly domestic dogs...  these critters ain't scared\nof folks, and can get aggressive.\n\n:on staying at and saw someone sitting there cleaning his gun.  Softly I backed\n:away, and hiked another 5 miles to get *out of there*.  I'll freely admit it here:\n:I'm not afraid of guns; I'm afraid of people that bring them into the backcountry.\n:\nI'd count that as a fear of guns... somebody having the sense to keep their\nweapons maintained isn't as likely to present a threat.  The Army taught me to\nclean any weapons DAILY, since they usually need it, regardless of whether \nthey've been used... You'd be amazed how sweaty a holster can get, or how much\ntrail dust will get in it.  And I guess you'd be scared of me and my former\nExplorer Post... seems the advisors were National Guard Special Forces grunts,\nand considered it heresy to be out in the woods without a weapon... course, \nusually you wouldn't notice 'em... :)  They tended to avoid public scrutiny...\n\n:Of course, that may be the way to solve the solitude problem.  Just carry a gun\n:and display it prominently, and one probably won't see most of the other hikers\n:out there, who will be hiding in the woods.  1/2 :-)\n:\n: - Dania\nMy 9mm goes in a hip holster, mixed in with magazine pouches (hold lotsa stuff \nin them), canteens, knives, compasses, and such...  Not so easy to notice, in \nthe off chance I decide to be visible... I prefer not to be, since walking \nquietly away from active areas increases the number of non-human type critters\nI see...\n\nJames\n\n\n-- \n********************************************************************************\nJames S. Cochrane        *  When in danger, or in doubt, run in * This space \ngt6511a@prism.gatech.edu *  circles, scream and shout.          * for rent\n********************************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2354, "properties": {"category": "rec.motorcycles", "text": "From: mbeaving@bnr.ca (Michael Beavington)\nSubject: Re: Your opinion and what it means to me.\nNntp-Posting-Host: bmerh824\nReply-To: MBEAVING@BNR.CA\nOrganization: BNR Ottawa, DMS Software Design\nLines: 27\n\nIn article <13516@news.duke.edu>, infante@acpub.duke.edu (Andrew  Infante) writes:\n|> Well, as a few of you so aptly put it, \n|> get off the road, jerk, we don't wanna hear your \n|> whining.\n|> \n|> Fine.\n|> \n|> Fuck off too.\n\nWell it still looks like you've got an attitude problem\nMr. Muttonhead.  You should take the comments with more\nsensitivity.  I still despise most people who belittle\ndrinking and driving since my first girlfriend was killed \nby such an asshole back in '85.  Learn to take the verbal \nabuse.\n\nIf you can't take the flames, \nand you can't use your brains,\nstay out of the newsgroup.\n\n\n=============================================================================\n= The Beav |Mike Beavington|BellNorthernResearch Ottawa,Ont,Canada| Dod:9733=\n= Seca 400->Seca 400->RZ350->Seca750->Suzuki550->Seca650turbo->V65Sabre     =\n= (-> 1994 GTS1000 ...can't afford the '93) |  mbeaving@bnr.ca              =\n= This company has no idea what I am talking about!                         =\n=============================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2355, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kssimon@silver.ucs.indiana.edu (kenneth steven simon)\nSubject: Re: HELP: Need modem info for Duo 210\nSummary: very hard to get a modem \nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 34\n\n  jdsiegel@garnet.berkeley.edu (Joel Siegel) writes:\n\n  jmilhoan@magnus.acs.ohio-state.edu (JT) writes:\n\n  >Hi... what alternatives to the Express modem do Duo owners have (if\n  >they want to go at least 9600 baud)?\n\n  >Every place in town says they are back ordered, and part of the reason\n  >I want a laptop mac is so I can use it as a remote terminal from\n  >wherever I am, but I really would hate to have to wait 2 months to get\n  >a modem in or have to settle with 2400 baud.\n\nIf Apple didn't put out such a good product -- I'd gladly take my\nbusiness to -- to -- the 8-bit Ataris.  I think the\nsituation with the Express modem is inexusable for any business.\nI've had mine on order since January.  Apple finally called me last\nweek -- to tell me that I should have it \"by the second week of May.\"\nIn the meantime, I've been stuck with my Duo210 without the\nconnectability I needed it for.  I'm sure there are plenty of people\nwho can bite back at me, citing all sorts of reasons why Apple is\nright or at least justified, but I'm just a crabby consumer and\nwhen I order a \"Duo210 with modem\" that's the product I expect.\n\nOh, well.  It's not like it's limited to the computer biz.  Remember\nwhen the Miata came out?  What about those Cabbage Patch Dolls?  Well,\nI want my toy!  ;)\n\n\n\n-- \n-----------------------------------------------------------------\nKenneth Simon               Dept of Sociology, Indiana University\nInternet: KSSIMON@INDIANA.EDU              Bitnet: KSSIMON@IUBACS \n-----------------------------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2356, "properties": {"category": "comp.graphics", "text": "From: samson@prlhp1.prl.philips.co.uk (Mark Samson)\nSubject: Psygnosis CD-I titles (was Re: Rumours about 3DO ???)\nReply-To: samson@prlhp1.UUCP (Mark Samson)\nOrganization: Philips Research Laboratories, Redhill, UK\nLines: 42\n\nIn article <1993Apr20.130854.27039@rchland.ibm.com> ricardo@rchland.vnet.ibm.com (Ricardo Hernandez Muchado) writes:\n>\n>   Anyway, still with 15Mhz, you need sprites for a lot of tricks for\n>making cool awesome games (read psygnosis).\n\nSpeaking of Psygnosis, they have licensed games to Philips Interative\nMedia International for CD-I.\n\nThe following was recently posted in a message in the CD-I section of\nthe Multimedia Forum.\n\n\"Seventh Guest has been licensed by Virgin Games to Philips Interactive\nMedia International for worldwide CD-I rights. Were also licensed to\nP.I.M.I. Litil Divil from Gremlin Graphics (UK) and Microcosm from\nPsygnosis (UK). Those three titles will be adapted on CD-I using the full\npotential of the FMV cartridge, meaning, using the additional memory as\nwell as the motion video capabilities. Those titles have been negociated\nin Europe but will be available worldwide.\n\nAlso, Lemmings 1 & 2 have been licensed from Psygnosis, as well as Striker\nSoccer from Rage (UK).\"\n\nI don't know when these titles will be available or when work on them even\nstarted (so don't expect your CD-I retailer to have them yet).\n\nThere was also some mention of future Nintendo CD-I games in an issue of the\nUK magazine ERT - Mario Hotel was mentioned as having 75 levels.\n\nMark\n\n[Although I work for Philips, I don't work on CD-I or multimedia. The above\ninfo is just provided in good faith from what I've read and does not\nrepresent any statement from Philips]\n\n******************************************************************************\nMark Samson: Information Technology Group, Philips Research Laboratories,       \nCross Oak Lane, Redhill, Surrey RH1 5HA                                         \nTel(my Ext): 0293 815387 Tel(labs): 0293 785544 Telex: 877261 Fax: 0293 776495\nEmail:- SERI: samson@prlhp0  UNIX: samson@prl.philips.co.uk                  \nBinary files: packages@prlhp0\n******************************************************************************\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2357, "properties": {"category": "talk.politics.mideast", "text": "From: astein@nysernet.org (Alan Stein)\nSubject: Re: Israel's Expansion II\nOrganization: NYSERNet, Inc.\nLines: 16\n\nab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n>I understand how israel captured the teritory and feels that it\n>is its right to annex it. I can't fully understand why it has\n>to deal with palestinians much the same way jews were treated\n>before the holocaust (the Final Solution) by Hitler. What I\n>totally don't get is why the U.S. has to subsidize the\n>existance of such a thorough abuser of human rights.\n>\t\t\t\tJust wondering\n\nSeems that you're more \"just misinformed\" than \"just wondering.\"\n\nThe comparison you're making is not just totally off base, but\noffensive to all sane people.\n-- \nAlan H. Stein                     astein@israel.nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2358, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Re: DID HE REALLY RISE???\nOrganization: The Claremont Graduate School\nLines: 29\n\nIn article <Apr.9.01.11.16.1993.16937@athos.rutgers.edu>, emery@tc.fluke.COM (John Emery) writes:\n> The one single historic event that has had the biggest impact on the\n> world over the centuries is the resurrection of Jesus.  At the same\n> time, it is one of the most hotly contested topics....\n> \n> Did Jesus Christ really rise from the dead?  Since the eyewitnesses\n> are no longer living, we have only their written accounts. ...\n> ...  Because of the magnitude of significance\n> involved here, either the resurrection is the greatest event in the\n> history of man or the greatest deception played on man.\n> [massive amounts of data deleted]\n\nJohn, \n\nWhile I will not take the time to rebut you point by point, I will suggest\nthree current works which I think will be helpful in your quest to answer\nthis question.  John Dominic Crossan (Professor of Religion at De Paul Univ)-\n_The Cross That Spoke_ Harper and Row Pub. 1988, Also his latest work \n_The Historical Jesus - The Life of A Mediterranean Jewish Peasant_ Harper\nand Row Pub. 1991,  Also two works of Burton Mack (Professor of New Testament\nat the Claremont Graduate School) _A Myth of Innocence_ Fortress Press 1988,\nAnd his latest book _The Lost Gospel: The Book of Q and Christian Origins_\nHarper and Row, 1992.  You might start with Mack's book on Q and then \nexamine the others afterward.  However I think that once you do that you will\nsee that your \"evidence\" is not as sturdy as you'd like.  Most of the tired\narguements you stated, assume eyewitness accounts, such is not the case. But\nAnyway look at Mack and Crossan and then get back to us.\n\nrandy\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2359, "properties": {"category": "talk.politics.guns", "text": "From: jim.wray@yob.sccsi.com (Jim Wray)\nSubject: My Gun is like my Ame\nOrganization: Ye Olde Bailey BBS - Houston, TX - 713-520-1569\nLines: 23\nReply-To: jim.wray@yob.sccsi.com (Jim Wray)\nNNTP-Posting-Host: cs.utexas.edu\n\n\nMark Wilson responding to C.D. Tavares:\n\n\nMW>|So the laws exist, and the penalties are as you say, but nobody is ever\nMW>|prosecuted under these laws.  They are \"traded away\" for easy pleas.\n\nMW>Having such gun laws on the books is still better than nothing.\nMW>What would the DA have traded away in order to get the guilty plea if the\nMW>gun law had not been in effect.\n\nOur liberty?\n\nRight...don't even think about enforcing the law and imposing the prescribed\npenalty....let's hose the citizens instead.\n---\n . OLX 2.2 . Madness takes its toll - please have exact change\n                            \n----\n+------------------------------------------------------------------------+\n| Ye Olde Bailey BBS   713-520-1569 (V.32bis) 713-520-9566 (V.32bis)     |\n|   Houston,Texas          yob.sccsi.com       Home of alt.cosuard       |\n+------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2360, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc2.arc.nasa.gov (Curt Howland)\nSubject: Re: Another question about synthetic engi\nArticle-I.D.: news.1993Apr6.020533.6165\nDistribution: usa\nOrganization: NASA Science Internet Project Office\nLines: 21\n\nIn article <1993Apr5.133542.19077@porthos.cc.bellcore.com>, \nfist@iscp.bellcore.com (Richard Pierson) writes:\n\n|> Two years ago he went to work for CONRAIL as a mechanic.\n|> On the EMD and GE power units (train engines) they NEVER\n|> EVER change the oil, just the filters\n\nI remember seeing an artical on large-engine oil \nrequirements, and one of the ways of prolonging\nthe life of the oil was to run through a heated\nun-presurized chamber to allow water and volitiles\nto boil off. This made such long-term usage of \noil practical.\n\nIsn't the Discovery channel great!?!\n\n---\nCurt Howland \"Ace\"       DoD#0663       EFF#569\nhowland@nsipo.nasa.gov            '82 V45 Sabre\n     Meddle not in the afairs of Wizards,\n for it makes them soggy and hard to re-light.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2361, "properties": {"category": "talk.politics.guns", "text": "From: donb@netcom.com (Don Baldwin)\nSubject: Re: 2ND AMENDMENT DEAD - GOOD !\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 14\n\nIn article <1qrn3aINN4rq@clem.handheld.com> jmd@cube.handheld.com \n(Jim De Arras) writes:\n>> The 2nd amendment is dead. Accept this. Find another way.\n>\n>It ain't dead, yet.  And even if it were repealed, remember, it just protects \n>our RKBA, it does not grant any rights.  There would then have to be \n>additional laws passed to outlaw gun possession.\n\nEven if they outlawed private posession of firearms, there would be no moral\nforce behind that law; I imagine compliance would be low.\n\n    don\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2362, "properties": {"category": "rec.sport.baseball", "text": "From: napoli@strobe.ATC.Olivetti.Com (Gaetano Napolitano)\nSubject: ERA formula\nDistribution: ca\nOrganization: Olivetti ATC; Cupertino CA, USA\nLines: 17\n\nHello\n\nas the subject tells all I am trying to find out what is the formula to\ncalculate the ERA for the pitchers.\n\nIf any of you baseball fans have it please e-mail me at\n\n\n\tnapoli@atc.olivetti.com\n\n\n\tthank you very much\n\n\n\tGaetano Napolitano\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2363, "properties": {"category": "soc.religion.christian", "text": "From: mwhaefne@infonode.ingr.com (Mark W. Haefner)\nSubject: Re: Atheists and Hell\nOrganization: Intergraph Corporation, Huntsville, AL.\nLines: 27\n\nIn article <Apr.20.03.01.40.1993.3769@geneva.rutgers.edu> trajan@cwis.unomaha.edu (Stephen McIntyre) writes:\n>\n>I don't have a problem with being condemned to Hell either.  The\n>     way I see it, if God wants to punish me for being honest in\n>     my skepticism (that is, for saying he doesn't exist), He\n>     certainly wouldn't be changing His nature.  Besides, I would\n>     rather spend an eternity in Hell than be beside God in Heaven\n>     knowing even one man would spend his \"eternal life\" being\n>     scorched for his wrongdoings...\n>\n\nI see some irony here. Jesus was willing to go through torture to free\nyou from the definite promise of hell (based on Adam/Eve's fall from grace)\nbut rather than allow him to stand in your place, you would give up\nyour redemption to stand with those who do not accept his grace.\nGod would rather have none in hell, which seems to put the burden of \nchoice on us. Of course, this is all fictional anyway since you reject him\nalso.\n\nMy former sociology professor once told us at the beginning\nof our term, \"you all start out with an A...what you do with that during\nthe course of this term is up to you\". In the beginning...Adam and Eve\nwere given an A. \n\n\n\nMark Haefner\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2364, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: HR 1276 (\"A gun law I can live with!\" :-)\nOrganization: California Institute of Technology, Pasadena\nLines: 27\nDistribution: usa\nNNTP-Posting-Host: sandman.caltech.edu\n\ncdt@sw.stratus.com (C. D. Tavares) writes:\n\n>In article <1993Apr15.171601.25930@dg-rtp.dg.com>, meyers@leonardo.rtp.dg.com (Bill Meyers) writes:\n\n>>                                     A BILL \n>>   \n>> To establish the right to obtain firearms for security, and\n>>     to use firearms in defense of self, family, or home, and\n>>     to provide for the enforcement of such right.\n\n>Maybe I'm too \"religious,\" but when I see a bill to \"establish a right,\"\n>I wince.  Keep in mind, what the law giveth, the law can taketh away.\n>-- \n\n>cdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\n>OR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\nI don't think your objection is beyond the bounds of rationality.  The\nright mentioned in the bill is already established under the Second\nAmendment; the bill should be reworded to reaffirm the Second Amendment\nRKBA, and then establish the procedures for redress through the federal\ncourt system.\n\nThe right already exists and is already embodied in our Constitution.\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2365, "properties": {"category": "rec.sport.hockey", "text": "From: jrmst8+@pitt.edu (Joseph R Mcdonald)\nSubject: Re: plus minus stat\nOrganization: University of Pittsburgh\nLines: 18\n\nIn article <1993Apr15.000256.24403@sol.UVic.CA> gballent@vancouver.UVic.CA writes:\n>What it comes down to is that Jagr, despite being an arrogant asshole, is a\n>very good hockey player who has had a better season this year than Ron Francis.\n>Jagr has more points and a better +/-.\n\nJagr has a higher +/-, but Francis has had more points.  And take it from\nan informed observer, Ronnie Francis has had a *much* better season than\nJaromir Jagr.  This is not to take anything away from Jaro, who had a \ndecent year (although it didn't live up to the expectations of some).\n \n>Gregmeister\n\nDean\n-- \n-------------------------------------------------------------------------------\nDean J. Falcione                                      \"Badges? What badges? We \n(using jrmst8 by permission                            Don't need no stinkin'\n of the owner, Joe McDonald)                           badges!\"\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2366, "properties": {"category": "comp.sys.mac.hardware", "text": "From: sml@eniac.seas.upenn.edu (Steven M Labovitz)\nSubject: Re: Accelerator for SE\nKeywords: Accelerator, compatibility\nOrganization: University of Pennsylvania\nLines: 13\nNntp-Posting-Host: eniac.seas.upenn.edu\n\n\n\tI too am interested in peoples' experience with accelerators for the\nSE.  Is an accelerator the best route to improve performace in my SE, or should\nI consider upgrading to an SE/30 motherboard?  Obviously, buying a new mac \nwould be ideal, but alas, I only have enough money for an accelerator or\nmotherboard.\n\tE-mail reply preferred.  Thanks.\n\n\n-------------------------------------------------------------------------------\nSteve Labovitz\nDept. of Materials Science & Engineering\nU. Penn\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2367, "properties": {"category": "sci.electronics", "text": "From: mabbot@stellenbos.csir.co.za (Mike Abbot)\nSubject: High level language compilers for uControllers ?\nArticle-I.D.: stellenb.mabbot.30.0\nOrganization: CSIR\nLines: 15\nNNTP-Posting-Host: 146.64.23.16\nX-Disclaimer: None of the opions expressed herein are the official\nX-Disclaimer: opinions of the CSIR or any of its subsidiaries.\nX-Disclaimer: **  So don't freak out at _us_ about anything  **\n\nHowdy chaps\n\nHas anybody got any pointers to good C, Pascal, etc compilers for \nmicrocontrollers, shareware or otherwise ?\n\nMy specific need is for 8051 C, but if the responses are many and varied I \nwill post a summary.\n\nCheers\nMike\n\n\nMike Abbott\tmabbot@stellenbos.csir.co.za\nCape Town\tmabbot@fred.csir.co.za\nSouth Africa\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2368, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cs1442au@news.uta.edu (cs1442au)\nSubject: Reboot problem\nOrganization: University of Texas at Arlington\nLines: 38\n\nFrom x51948b1@usma1.USMA.EDU Tue Apr 20 10:28:47 1993\nReceived: from usma1.usma.edu by trotter.usma.edu (4.1/SMI-4.1-eef)\n\tid AA01628; Tue, 20 Apr 93 11:27:50 EDT\nReceived:  by usma1.usma.edu (5.51/25-eef)\n\tid AA03219; Tue, 20 Apr 93 11:20:18 EDT\nMessage-Id: <9304201520.AA03219@usma1.usma.edu>\nDate: Tue, 20 Apr 93 11:20:17 EDT\nFrom: x51948b1@usma1.USMA.EDU (Peckham David CDT)\nTo: cs1442au@decster.uta.edu\nSubject: Problem.\nStatus: OR\n\n--------------------\n\nI am running a Unisys PW2 386SX20 with DOS 6.  My problem, even when I had DOS\n5.0, is that when I have EMM386 loaded I can't CTL-ALT-DEL.  If I do, the\ncomputer beeps a few times rapidly and hangs.  Then I have to use the obscure\nreset (requires a screwdriver or pencil) or the power switch to reboot.  Does\nanyone have a solution to this problem?\n\nE-mail me at x51948b1@usma1.usma.edu\n\nDave\n---------------------\n\nThanks,\n\ndave\n-------------------------------------------------------------------------\nDavid S. Peckham                   |  Internet : x51948b1@usma1.usma.edu\nU.S. Military Academy              |\n-------------------------------------------------------------------------\n\n-- \n Jason Brown\ncs1442au@decster.uta.edu\n------------------------------------------------------------------------\nFav player Ruben Sierra\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.109+0000", "event": "documents", "entityId": 2369, "properties": {"category": "talk.politics.misc", "text": "From: acheng@ncsa.uiuc.edu (Albert Cheng)\nSubject: Re: hard times investments was: (no subject given)\nArticle-I.D.: news.C52t8L.5CH\nOrganization: Nat'l Ctr for Supercomp App (NCSA) @ University of Illinois\nLines: 10\nOriginator: acheng@shalom.ncsa.uiuc.edu\n\n\nIn article <1938@tecsun1.tec.army.mil>, riggs@descartes.etl.army.mil (Bill Riggs) writes:\n>\tMy mother-in-law, who grew up in Germany, doesn't believe in \n>money at all. She started out as a real estate developer, and now raises\n>horses. She keeps telling me that inflation is coming back, and to lock\n>in my fixed rate mortgage as low as possible.\n\nIf time is really hard, can a bank selectively call in some mortgage\nloans early?  What if the bank folds, can its creditors call in the\nloans?\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2370, "properties": {"category": "sci.med", "text": "From: Dan Wallach <dwallach@cs.berkeley.edu>\nSubject: FAQ: Typing Injuries (3/4): Keyboard Alternatives [monthly posting]\nSupersedes: <typing-injury-faq/keyboards_732179032@cs.berkeley.edu>\nOrganization: University of California, Berkeley\nLines: 652\nExpires: 22 May 1993 01:24:03 GMT\nReply-To: Dan Wallach <dwallach@cs.berkeley.edu>\nNNTP-Posting-Host: elmer-fudd.cs.berkeley.edu\nSummary: everything you ever wanted to know about replacing your keyboard\nOriginator: dwallach@elmer-fudd.cs.berkeley.edu\n\nArchive-name: typing-injury-faq/keyboards\nVersion: $Revision: 5.11 $ $Date: 1993/04/13 01:20:43 $\n\n-------------------------------------------------------------------------------\n      Answers To Frequently Asked Questions about Keyboard Alternatives\n-------------------------------------------------------------------------------\n\nThe Alternative Keyboard FAQ\nCopyright 1992,1993 By Dan Wallach <dwallach@cs.berkeley.edu>\n\nThe opinions in here are my own, unless otherwise mentioned, and do not\nrepresent the opinions of any organization or vendor.\n\n[Current distribution: sci.med.occupational, sci.med, comp.human-factors,\n {news,sci,comp}.answers, and e-mail to c+health@iubvm.ucs.indiana.edu,\n sorehand@vm.ucsf.edu, and cstg-L@vtvm1.cc.vt.edu]\n\nChanges since previously distributed versions are marked with change        ||\nbars to the right of the text, as is this paragraph.                        ||\n\nInformation in this FAQ has been pieced together from phone conversations,\ne-mail, and product literature.  While I hope it's useful, the information\nin here is neither comprehensive nor error free.  If you find something\nwrong or missing, please mail me, and I'll update my list.  Thanks.\n\nAll phone numbers, unless otherwise mentioned, are U.S.A. phone numbers.\nAll monetary figures, unless otherwise mentioned, are U.S.A. dollars.\n\nProducts covered in this FAQ:\n    Using a PC's keyboard on your workstation / compatibility issues\n    Apple Computer, Inc.\n    Key Tronic FlexPro\n    Dragon Systems\n    The Bat\n    DataHand\n    Comfort Keyboard System\n    Kinesis Ergonomic Keyboard\n    Maltron\n    The Tony! Ergonomic KeySystem\n    The Vertical\n    The MIKey\n    The Wave\n    The Minimal Motion Computer Access System\n    Twiddler\n    Half-QWERTY\n    Microwriter\n    Braille 'n Speak\n    Octima\n    AccuKey\n\nGIF pictures of many of these products are available via anonymous ftp\nfrom soda.berkeley.edu:pub/typing-injury.  (128.32.149.19)  I highly\nrecommend getting the pictures.  They tell much more than I can fit\ninto this file.\n\nIf you can't ftp, send me mail, and I'll uuencode and mail them to you\n(they're pretty big...)\n\n==============\nUsing a PC's keyboard on your workstation / compatibility issues\n\n    Mini outline:\n        1. Spoofing a keyboard over the serial port\n        2. X terminals\n        3. NeXT\n        4. Silicon Graphics\n        5. IBM RS/6000\n\t6. Other stuff\n\n    1. Spoofing a keyboard over the serial port\n\n\tIf you've got a proprietary computer which uses its own keyboard\n\t(Sun, HP, DEC, etc.) then you're going to have a hard time finding\n\ta vendor to sell you a compatible keyboard.  If your workstation\n\truns the X window system, you're in luck.  You can buy a cheap used\n\tPC, hook your expensive keyboard up to it, and run a serial cable\n\tto your workstation.  Then, run a program on the workstation to read\n\tthe serial port and generate fake X keyboard events.\n\n\tThe two main programs I've found to do this are KT and A2X.\n\n\ta2x is a sophisticated program, capable of controlling the mouse, and\n\teven moving among widgets on the screen.  It requires a server\n\textension (XTEST, DEC-XTRAP, or XTestExtension1).  To find out if your\n\tserver can do this, run 'xdpyinfo' and see if any of these strings\n\tappear in the extensions list.  If your server doesn't have this,\n\tyou may want to investigate compiling X11R5, patchlevel 18 or later,\n\tor bugging your vendor.\n\n\tkt is a simpler program, which should work with unextended X servers.\n\tAnother program called xsendevent also exists, but I haven't seen it.\n\n\tBoth a2x and kt are available via anonymous ftp from soda.berkeley.edu.\n\n    2. X terminals\n\n\tAlso, a number of X terminals (NCD, Tektronics, to name a few) use\n\tPC-compatible keyboards.  If you have an X terminal, you may be all\n\tset.  Try it out with a normal PC keyboard before you go through the\n\ttrouble of buying an alternative keyboard.  Also, some X terminals add\n\textra buttons -- you may need to keep your original keyboard around\n\tfor the once-in-a-blue-moon that you have to hit the Setup key.\n\n    3. NeXT\n\n\tNeXT had announced that new NeXT machines will use the Apple Desktop\n\tBus, meaning any Mac keyboard will work.  Then, they announced they\n\twere cancelling their hardware production.  If you want any kind of\n\tupgrade for an older NeXT, do it now!\n\n    4. Silicon Graphics\n\n\tSilicon Graphics has announced that their newer machines (Indigo^2 and\n\tbeyond) will use standard PC-compatible keyboards and mice.  I don't\n\tbelieve this also applies to the Power Series machines.  It's not\n\tpossible to upgrade an older SGI to use PC keyboards, except by\n\tupgrading the entire machine.  Contact your SGI sales rep for more\n\tdetails.\n\n    5. IBM RS/6000\n\n\tIBM RS/6000 keyboards are actually similar to normal PC keyboards.  ||\n\tUnfortunately, you can't just plug one in.  You need two things: a  ||\n\tcable converter to go from the large PC keyboard connector to the   ||\n\tsmaller PS/2 style DIN-6, and a new device driver for AIX.  Believe ||\n\tit or not, IBM wrote this device driver recently, I used it, and it ||\n\tworks.  However, they don't want me to redistribute it.  I've been  ||\n\ttold Judy Hume (512) 823-6337 is a potential contact.  If you learn ||\n\tanything new, please send me e-mail.\t\t\t\t    ||\n    \n    6. Other stuff\n\n\tSome vendors here (notably: Health Care Keyboard Co. and AccuCorp)\n\tsupport some odd keyboard types, and may be responsive to your\n\tqueries regarding supporting your own weird computer.  If you can\n\tget sufficient documention about how your keyboard works (either\n\tfrom the vendor, or with a storage oscilloscope), you may be in\n\tluck.  Contact the companies for more details.\n\n\nApple Adjustable Keyboard\n    Apple Computer, Inc.\n    Sales offices all over the place.\n\n    Availability: February, 1993\n    Price: $219\n    Supports: Mac only\n\n    Apple has recently announced their new split-design keyboard.  The\n    keyboard has one section for each hand, and the sections rotate\n    backward on a hinge.  The sections do not tilt upward.  The keys are\n    arranged in a normal QWERTY fashion.\n\n    The main foldable keyboard resembles a normal Apple Keyboard.\n    A separate keypad contains all the extended key functions.\n\n    The keyboard also comes with matching wrist rests, which are not\n    directly attachable to the keyboard.\n\n    As soon as soda comes back up, I'll have a detailed blurb from\n    TidBITS available there.\n\n\nFlexPro Keyboard\n    Key Tronic\n    Phone: 800-262-6006\n    Possible contact: Denise Razzeto, 509-927-5299\n    Sold by many clone vendors and PC shops\n\n    Availability: Spring, 1993 (?)\n    Price: $489 (?)\n    Supports: PC only (highly likely)\n\n    Keytronic apparently showed a prototype keyboard at Comdex.  It's\n    another split-design.  One thumb-wheel controls the tilt of both\n    the left and right-hand sides of the main alphanumeric section.\n    The arrow keys and keypad resemble a normal 101-key PC keyboard.\n\n    Keytronic makes standard PC keyboards, also, so this product will\n    probably be sold through their standard distribution channels.\n\n\nDragonDictate-30K (and numerous other Dragon products)\n    Dragon Systems, Inc.\n    320 Nevada Street\n    Newton, MA  02160\n\n    Phone: 800-TALK-TYP or 617-965-5200\n    Fax: 617-527-0372\n\n    Shipping: Now.\n\n    Price: DragonDictate-30K -- $4995 (end user system)\n\t   DragonWriter 1000 -- $1595 / $2495 (end user/developer system)\n\t   various other prices for service contracts, site licenses, etc.\n    \n    Compatibility: 386 (or higher) PC only\n\t\t   (3rd party support for Mac)\n\n\tFree software support for X windows is also available -- your\n\tPC with Dragon hardware talks to your workstation over a\n\tserial cable or network.  The program is called a2x, and is\n\tavailable via anonymous ftp:\n\n\tsoda.berkeley.edu:pub/typing-injury/a2x.tar.Z\n\texport.lcs.mit.edu:contrib/a2x.tar.Z (most current)\n\n\tIf you want to use your Dragon product with X windows, you may want\n\tto ask for Peter Cohen, an salesman at Dragon who knows more about\n\tthis sort of thing.\n\n    Dragon Systems sells a number of voice recognition products.\n    Most (if not all) of them seem to run on PC's and compatibles\n    (including PS/2's and other MicroChannel boxes).  They sell you\n    a hardware board and software which sits in front of a number\n    of popular word processors and spreadsheets.\n\n    Each user `trains' the system to their voice, and there are provisions\n    to correct the system when it makes mistakes, on the fly.  Multiple\n    people can use it, but you have to load a different personality file\n    for each person.  You still get the use of your normal keyboard, too.\n    On the DragonDictate-30K you need to pause 1/10th sec between\n    words.  Dragon claims typical input speeds of 30-40 words per minute.\n    I don't have specs on the DragonWriter 1000.\n\n    The DragonDictate-30K can recognize 30,000 words at a time.\n    The DragonWriter 1000 can recognize (you guessed it) 1000 words at a time.\n\n    Dragon's technology is also part of the following products\n    (about which I have no other info):\n\n\tMicrosoft Windows Sound System (Voice Pilot)\n\tIBM VoiceType\n\tVoice Navigator II (by Articulate Systems -- for Macintosh)\n\tEMStation (by Lanier Voice Products -- \"emergency medical workstation\")\n\n\nThe Bat\n    old phone number: 504-336-0033\n    current phone number: 504-766-8082\n\n    Infogrip, Inc.\n    812 North Blvd.\n    Baton Rouge, Louisiana 70802, U.S.A.\n\n    Ward Bond (main contact)\n    David Vicknair (did the Unix software)  504-766-1029\n\n    Shipping: Now.\n\n    Supports: Mac, IBM PC (serial port -- native keyboard port version\n    coming very soon...).  No other workstations supported, but serial\n    support for Unix with X Windows has been written.  PC and Mac are\n    getting all the real attention from the company.\n\n    A chording system.  One hand is sufficient to type everything.\n    The second hand is for redundancy and increased speed.\n\n    Price:\n\t$495 (dual set -- each one is a complete keyboard by itself)\n\t$295 (single)\n\n\t(cheaper prices were offered at MacWorld Expo as a show-special.)\n\n\nDataHand   602-860-8584\n    Industrial Innovations, Inc.\n    10789 North 90th Street\n    Scottsdale, Arizona 85260-6727, U.S.A.\n\n    Mark Roggenbuck (contact)\n\n    Supports: PC and Mac\n\n    Shipping: In beta.  \"Big backlog\" -- could take 3+ months.\n\n    Price: $2000/unit (1 unit == 2 pods). (new price!)\t\t\t    ||\n\n    Each hand has its own \"pod\".  Each of the four main fingers has five\n    switches each: forward, back, left, right, and down.  The thumbs have\n    a number of switches.  Despite appearances, the key layout resembles\n    QWERTY, and is reported to be no big deal to adapt to.  The idea is\n    that your hands never have to move to use the keyboard.  The whole pod\n    tilts in its base, to act as a mouse.\n\n    (see also: the detailed review, written by Cliff Lasser <cal@THINK.COM>\n     available via anonymous ftp from soda.berkeley.edu)\n\n\nComfort Keyboard System   414-253-4131\n    FAX: 414-253-4177\n\n    Health Care Keyboard Company\n    N82 W15340 Appleton Ave\n    Menomonee Falls, Wisconsin 53051 U.S.A.\n\n\n    Jeffrey Szmanda (Vice President -- contact)\n\n    Shipping: Now.\n\n    Supports: PC (and Mac???)\t\t\t\t\t\t    ||\n    \n    Planned future support:\n\tIBM 122-key layout (3270-style, I believe)\n\tSun Sparc\n\tDecision Data\n\tUnisys UTS-40\n\tSilicon Graphics\n\n\tOthers to be supported later.  The hardware design is relatively\n\teasy for the company to re-configure.\n\n    Price: $690, including one system \"personality module\".\t\t    ||\n\n    The idea is that one keyboard works with everything.  You purchase\n    \"compatibility modules\", a new cord, and possibly new keycaps, and\n    then you can move your one keyboard around among different machines.\n\n    It's a three-piece folding keyboard.  The layout resembles the\n    standard 101-key keyboard, except sliced into three sections.  Each\n    section is on a \"custom telescoping universal mount.\"  Each section\n    independently adjusts to an infinite number of positions allowing each\n    individual to type in a natural posture.  You can rearrange the three\n    sections, too (have the keypad in the middle if you want).  Each\n    section is otherwise normal-shaped (i.e.: you put all three sections\n    flat, and you have what looks like a normal 101-key keyboard).\n\n\nKinesis Ergonomic Keyboard   206-455-9220\n    206-455-9233 (fax)\n\n    Kinesis Corporation\n    15245 Pacific Highway South,\n    Seattle, Washington 98188, U.S.A.\n\n    Shirley Lunde (VP Marketing -- contact)\n\n    Shipping: Now.\n\n    Supports: PC.  Mac and Sun Sparc in the works.\n\n    Price: $690.  Volume discounts available.  The $690 includes one foot\n\tpedal, one set of adhesive wrist pads, and a TypingTutor program.\n\tAn additional foot pedal and other accessories are extra.\n\n    The layout has a large blank space in the middle, even though the\n    keyboard is about the size of a normal PC keyboard -- slightly\n    smaller.  Each hand has its own set of keys, laid out to minimize\n    finger travel.  Thumb buttons handle many major functions (enter,\n    backspace, etc.).\n\n    You can remap the keyboard in firmware (very nice when software won't\n    allow the reconfig).\n\n    Foot pedals are also available, and can be mapped to any key on the\n    keyboard (shift, control, whatever).\n\n\nMaltron\t\t(+44) 081 398 3265 (United Kingdom)\n    P.C.D. Maltron Limited\n    15 Orchard Lane\n    East Molesey\n    Surrey KT8 OBN\n    England\n\n    Pamela and Stephen Hobday (contacts)\n\n    U.S. Distributor:\n\tJim Barrett\n\tApplied Learning Corp.\n\t1376 Glen Hardie Road\n\tWayne, PA  19087\n\n\tPhone: 215-688-6866\n\n    Supports: PC's, Amstrad 1512/1640, BBC B, BBC Master,\n\t      Mac apparently now also available\n\n\n    Price: 375 pounds\n\t   $735 shipped in the U.S.A. (basically, converted price + shipping)\n\n\t   The cost is less for BBC computers, and they have a number of \n\t   accessories, including carrying cases, switch boxes to use both\n\t   your normal keyboard and the Maltron, an articulated arm that\n\t   clamps on to your table, and training 'courses' to help you learn\n\t   to type on your Maltron.\n\n\t   You can also rent a keyboard for 10 pounds/week + taxes.\n\t   U.S. price: $120/month, and then $60 off purchase if you want it.\n\n    Shipping: Now (in your choice of colors: black or grey)\n    \n    Maltron has four main products -- a two-handed keyboard, two one-handed\n    keyboards, and a keyboard designed for handicapped people to control with\n    a mouth-stick.\n\n    The layout allocates more buttons to the thumbs, and is curved to\n    bring keys closer to the fingers.  A separate keypad is in the middle.\n\n\nAccuKey\n    AccuCorp, Inc.\n    P.O. Box 66\n    Christiansburg, VA  24073, U.S.A.\n \n    703-961-3576 (Pete Rosenquist -- Sales)\n    703-961-2001 (Larry Langley -- President)\n \n    Shipping: Now.\n    Supports: PC, Mac, IBM 3270, Sun Sparc, and TeleVideo 935 and 955.\n    Cost: $495 + shipping.\n \n    Doesn't use conventional push-keys.  Soft rubber keys, which rock\n    forward and backward (each key has three states), make chords for\n    typing keys.  Learning time is estimated to be 2-3 hours, for getting\n    started, and maybe two weeks to get used to it.\n\n    Currently, the thumbs don't do anything, although a thumb-trackball\n    is in the works.\n \n    The company claims it takes about a week of work to support a\n    new computer.  They will be happy to adapt their keyboard to\n    your computer, if possible.\n\n\nTwiddler\t516-474-4405, or 800-638-2352\n    Handykey\n    141 Mt. Sinai Ave.\n    Mt. Sinai, NY 11766\n\n    Chris George (President)\n\n    Shipping: now.\n\n    Price: $199.\n\n    Supports: PC only.  Mac and X Windows in the works.\n\n    The Twiddler is both a keyboard and a mouse, and it fits in one hand.\n    You type via finger chords.  Shift, control, etc. are thumb buttons.\n    When in \"mouse\" mode, tilting the Twiddler moves the mouse, and mouse\n    buttons are on your fingers.\n\n    The cabling leaves your normal keyboard available, also.\n\n    Most applications work, and Windows works fine.  DESQview has trouble.\n    GEOWorks also has trouble -- mouse works, keyboard doesn't.\n\n\nBraille 'n Speak     301-879-4944\n    Blazie Engineering\n    3660 Mill Green Rd.\n    Street, Md 21154, U.S.A.\n\n    (information provided by Doug Martin <martin@nosc.mil>)\n\n    The Braille N Speak uses any of several Braille codes for entering\n    information: Grade I, Grade II, or computer Braille.  Basically,\n    letters a-j are combinations of dots 1, 2, 4, and 5.  Letters k-t are\n    the same combinations as a-j with dot 3 added. Letters u, v, x, y, and\n    z are like a-e with dots 3 and 6 added.  (w is unique because Louis\n    Braille didn't have a w in the French alphabet.)\n\n\nThe Tony! Ergonomic KeySystem        415-969-8669\n    Tony Hodges\n    The Tony! Corporation\n    2332 Thompson Court\n    Mountain View, CA  94043, U.S.A.\n\n    Supports: Mac, PC, IBM 3270, Sun, and DEC.\n    \n    Shipping: ???\n\n    Price: $625 (you commit now, and then you're in line to buy the\n    keyboard.  When it ships, if it's cheaper, you pay the cheaper price.\n    If it's more expensive, you still pay $625)\n\n    The Tony! should allow separate positioning of every key, to allow\n    the keyboard to be personally customized.  A thumb-operated mouse\n    will also be available.\n\n\nThe Vertical\n    Contact: Jeffrey Spencer or Stephen Albert, 619-454-0000\n    P.O. Box 2636\n    La Jolla, CA  92038, U.S.A.\n\n    Supports: no info available, probably PC's\n    Available: Summer, 1993\n    Price: $249\n\n    The Vertical Keyboard is split in two halves, each pointing straight up.\n    The user can adjust the width of the device, but not the tilt of each\n    section.  Side-view mirrors are installed to allow users to see their\n    fingers on the keys.\n\n\nThe MIKey     301-933-1111\n    Dr. Alan Grant\n    3208 Woodhollow Drive\n    Chevy Chase, Maryland 20815, U.S.A.\n\n    Shipping: As of July, 1992: \"Should be Available in One Year.\"\n\n    Supports: PC, Mac (maybe)\n\n    Price: $200 (estimated)\n\n    The keyboard is at a fixed angle, and incorporates a built-in mouse\n    operated by the thumbs.  Function keys are arranged in a circle at\n    the keyboard's left.\n\n\nThe Wave\t(was: 213-)  310-644-6100\n    FAX: 310-644-6068\n\n    Iocomm International Technology\n    12700 Yukon Avenue\n    Hawthorne, California 90250, U.S.A.\n\n    Robin Hunter (contact -- in sales)\n\n    Cost: $99.95 + $15 for a set of cables\n\n    Supports: PC only.\n\n    Shipping: now.\n\n    Iocomm also manufactures \"ordinary\" 101-key keyboard (PC/AT) and\n    84-key keyboard (PC/XT), so make sure you get the right one.\n\n    The one-piece keyboard has a built-in wrist-rest.  It looks *exactly*\n    like a normal 101-key PC keyboard, with two inches of built-in wrist\n    rest.  The key switch feel is reported to be greatly improved.\n    \n\nThe Minimal Motion Computer Access System \t508-263-6437\n    508-263-6537 (fax)\n\n    Equal Access Computer Technology\n    Dr. Michael Weinreigh\n    39 Oneida Rd.\n    Acton, MA  01720, U.S.A.\n\n    Price: InfoGrip-compatible: \"a few hundred dollars\" + a one-handed Bat\n\t  For their own system: $300 (DOS software) + \"a few hundred dollars\"\n    \n    Shipping: these are custom-made, so an occupational therapist would\n\t  make moulds/do whatever to make it for you.  You can buy one now.\n    \n    Supports: PC only, although the InfoGrip-compatible version might\n\t  work with a Mac.\n\n    In a one-handed version, there is exactly one button per finger.  In a\n    two-handed version, you get four buttons per finger, and the thumbs\n    don't do anything.  You can also get one-handed versions with three\n    thumb buttons -- compatible with the InfoGrip Bat.  Basically, get it\n    any way you want.\n\n    They also have a software tutorial to help you learn the chording.\n\n    Works on a PC under DOS, not Windows.  Planning on Macintosh and\n    PC/Windows support.  No work has been done on a Unix version, yet.\n\n\nHalf-QWERTY\t(Canada) 416-749-3124\n    The Matias Corporation\n    178 Thistledown Boulevard\n    Rexdale, Ontario, Canada\n    M9V 1K1\n\n    E-mail: ematias@dgp.toronto.edu\n\n    Supports: Mac and PC (but, not Windows)\n\n    Demo for anonymous ftp: explorer.dgp.toronto.edu:/pub/Half-QWERTY\t    ||\n\n    Price:   $129.95 (higher in Canada, quantity discounts available)\n    Shipping: Now.\n    \n    This thing is purely software.  No hardware at all.\n\n    The software will mirror the keyboard when you hold down the space\n    bar, allowing you type one-handed.\n\n\nOctima\t(Israel) 972-4-5322844\n    FAX: (+972) 3 5322970\n\n    Ergoplic Keyboards Ltd.\n    P.O. Box 31\n    Kiryat Ono 55100, Israel\n\n    (info from Mandy Jaffe-Katz <RXHFUN@HAIFAUVM.BITNET>)\n    A one-handed keyboard.\n\n\nMicrowriter AgendA (U.K.) (+44) 276 692 084\n    FAX: (+44) 276 691 826\n\n    Microwriter Systems plc\n    M.S.A. House\n    2 Albany Court\n    Albany Park\n    Frimley\n    Surrey GU15 2XA, United Kingdom\n\n    (Info from Carroll Morgan <Carroll.Morgan@prg.oxford.ac.uk>)\n\n    The AgendA is a personal desktop assistant (PDA) style machine.  You\n    can carry it along with you.  It has chording input.  You can also\n    hook it up to your PC, or even program it.\n\n    It costs just under 200 pounds, with 128K memory.\n===========\n\nThanks go to Chris Bekins <AS.CCB@forsythe.stanford.edu> for providing\nthe basis for this information.\n\nThanks to the numerous contributors:\n\nDoug Martin <martin@nosc.mil>\nCarroll Morgan <Carroll.Morgan@prg.oxford.ac.uk>\nMandy Jaffe-Katz <RXHFUN@HAIFAUVM.BITNET>\nWes Hunter <Wesley.Hunter@AtlantaGA.NCR.com>\nPaul Schwartz <pschwrtz@cs.washington.edu>\nH.J. Woltring <WOLTRING@NICI.KUN.NL>\nDan Sorenson <viking@iastate.edu>\nChris VanHaren <vanharen@MIT.EDU>\nRavi Pandya <ravi@xanadu.com>\nLeonard H. Tower Jr. <tower@ai.mit.edu>\nDan Jacobson <Dan_Jacobson@ATT.COM>\nJim Cheetham  <jim@oasis.icl.co.uk>\nCliff Lasser <cal@THINK.COM>\nRichard Donkin <richardd@hoskyns.co.uk>\nPaul Rubin <phr@napa.Telebit.COM>\nDavid Erb <erb@fullfeed.com>\nBob Scheifler <rws@expo.lcs.mit.edu>\nChris Grant <Chris.Grant@um.cc.umich.edu>\nScott Mandell <sem1@postoffice.mail.cornell.edu>\n\nand everybody else who I've probably managed to forget.\n\nThe opinions in here are my own, unless otherwise mentioned, and do not\nrepresent the opinions of any organization or vendor.\n-- \nDan Wallach               \"One of the most attractive features of a Connection\ndwallach@cs.berkeley.edu  Machine is the array of blinking lights on the faces\nOffice#: 510-642-9585     of its cabinet.\" -- CM Paris Ref. Manual, v6.0, p48.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2371, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: studner@rintintin.Colorado.EDU (STUDNER  ROGER ALAN)\nSubject: Modem for Sale\nNntp-Posting-Host: rintintin.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 4\n\nI am selling a USR HST 14.4k baud modem with v42bis compression upgrades.\nTHere is no manual, as it was lost going from one side of the U.S. to the other at some point.  THe modem is setup for max throughput, and it has built in help, but a quick reference guide on the bottom of it, so its use it not difficult by any means.\nAny offers?\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2372, "properties": {"category": "misc.forsale", "text": "From: dlneal@apgea.army.mil (Dennis L. Neal <dlneal>)\nSubject: AMIGA Software For Sale!!\nOrganization: Edgewood\nLines: 22\nNntp-Posting-Host: cbda9.apgea.army.mil\n\n\n I have the following Amiga software for sale:\n\nProVideo GOLD                   $50\n\nAmigaVision                     $25\n\nB.E.S.T. Plan It!               $10\nspreadsheet\n(still in shrinkwrap)\n\nSuperBack                       $10\n(hard drive backup)\n\nCertificate Maker               $10\n\n\nAdd s&h to the above and its yours...email me at the address listed below:\n\n\nthanx,\n-Dennis L. Neal        dlneal@cbda9.apgea.army.mil\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2373, "properties": {"category": "comp.graphics", "text": "From: sp1marse@kristin (Marco Seirio)\nSubject: Flat globe\nLines: 13\nX-Newsreader: Tin 1.1 PL3\n\n\nDoes anybody have an algorithm for \"flattening\" out a globe, or any other\nparametric surface, that is definied parametrically. \nThat is, I would like to take a sheet of paper and a knife and to be\nable to calculate how I must cut in the paper so I can fold it to a\nglobe (or any other object).\n\n\n      Marco Seirio - In real life sp1marse@caligula.his.se\n\n \n\n \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2374, "properties": {"category": "misc.forsale", "text": "From: crrob@sony1.sdrc.com (Rob Davis)\nSubject: Re: DRIVE\nSummary: ** Honda XR-100R Dirt Bike for sale ** MINT!\nLines: 10\n\n\n For Sale: 1987 Honda XR-100R dirt bike. Bought new from dealer in\n           1989. Ridden only 4 hours, garage kept and well cared for.\n           The bike is in MINT condition; perfect size for lady or\n           young adult. price: $600 firm. You will not be disappointed.\n           Ohio/Kentucky/Indiana inquiries preferred please.\n \n           work: (513) - 576-5986. Leave voicemail please.\n\n      Rob Davis, Cincinnati Ohio.  Again, this is a new bike.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2375, "properties": {"category": "soc.religion.christian", "text": "From: ide!twelker@uunet.uu.net (Steve Twelker)\nSubject: Esotericism\nOrganization: Interactive Development Environmenmts, SF\nLines: 11\n\nI'm compiling a bibliography on religious perspectives on esotericism,\nhermeticism, gnosticism, mysticism, occultism, alchemy and magic, and\nam interested in sources that others have found particularly interesting\nand insightful.  I'm especially interested in medieval works, such as\n_The Chemical Wedding of Christian Rosenkreutz_ and Arthurian legends.\n\nPlease feel free, too, to send personal opinions on any of the above,\npro or con or anywhere in between.  Thanks much.\n\nStephen Twelker\ntwelker@ide.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2376, "properties": {"category": "rec.sport.baseball", "text": "From: bm562@cleveland.Freenet.Edu (Richard L. Trionfo)\nSubject: Re: WFAN\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 92\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\n    I hope that this comes off as a somewhat unbiased assesment\nof WFAN and WIP(I go to school in Philadelphia, and I listen to\nboth stations on a consistant basis.)  Now that the fan has Mike\nLupica on from 10 to noon, they have a person who can get the \nbig name guests for interviews, and not just of local importance\nHe did have Dave Cheketts and Fred Wilpon on his show, but he \nhad Bob Costas and Magic Johnson on too.  \n  Now here are my opinions of the two stations competing talent:\nMorning show:\n  In my opinion, I think Imus is much better than Bruno, Cataldi, \nand Morganti, even though I would feel different if Morganti\nhad a better crew of people to work with.  To me, WIP tries\nto copy Imus but make it all sports as a theme.  In terms of\nsports, Imus lacks the blanketing of the airwaves, but he\ninterjects humor and politics into his show.\n10 AM to 12 Noon:\n  I think Chuck Cooperstein and Lupica are equal in their\nabilities to host a radio show, but I think Chuck has the\nadvantage over Lupica in terms of dealing with the caller\nwho is asking about who the local team is going to draft\nin the sixth round.  Lupica and the other hosts on FAN get\nbetter interview guests, but I heard the PD of WIP say that\nthey were not interested in interviews with celebrities unless\nit was a major story.\n  I would consider this even because they are two different\nstyles of host.\n\n12 Noon to 2 PM:\n  At this point, I would have to give a big advantage to \nJody McDonald over Len Berman because Lenny has only been\non for a couple of weeks.  I just think JM has the ability\nto transcend the \"homer\" mentality of the Philadelphia fan\nbase.  This is most evident when the IGGLES(Philadelphia \nspelling) play the Cowboys because JM is a huge Dallas fan.\nWhere else can you have people call up and predict a 93-0\nscore without the egging of the hosts(re:WIP morning 'guys')\nI do agree that JM was great on the FAN weekend overnight\nand I miss hearing him over the current crop of rotating\nhosts.  I feel that JM is the best sportstalk host on \neither station by a good margin.  If you are in NY and\nyou can't get WIP, JM does fill in on the weekends sometimes.\n\n2PM to 4PM:\n  This is the time when JM goes up against Francesa and \nRusso(fatso and froot loops) and I become the most divided\nin my loyalties.  Mike and the dog are very entertaining,\nbut they often go an hour or so without calls or even 10\nto 20 minutes without talking about sports.  MATD do\nget great guests and that is the basis for their show, so\nit is like the 10 to 12 debate.  Another plus is the\nappearances by Mike and Chris on Imus in the Morning, which\nare often hilarious.  \n\n4 PM to 7 PM:\n  MATD go up against Fredericks and Missanelli.  I like\nMike Missanelli but I just can't stomach Steve Fredericks.  \nI know that SF came from Philly originally, but when he\nwas at the FAN, he was a NY homer as much as he is a Philly\nhomer now.  I don't listen to WIP much after 4 PM unless there\nis a game on that night, but you will see later for the \nreason.  That is why I give the advantage to FAN.\n\n7 PM to Midnight:\n  S&M are on WIP until 8 and then it is the man who makes\nEli that calls MATD all the time seem like a novice on\ncharges of racism, G Cobb.  This man is so grating on my\nnerves that if I listen to him for a few minutes I go\nnuts.(I know that is biased, but listen to his show)\nOn FAN, there is usually a game on, Knicks, Rangers, Mets\nJets, or St. John's basketball.  If the game is on the\nwest coast, then it is usually Howie Rose.  Of course\nI think dead air would be better than G Cobb on WIP, but\nWIP does air Sixers and Flyers games during the season.\n(If this is the sports station, why did they lose the\nIGGLES to WYSP(home of Howard Stern in Phil.))\nDuring the summer, it\nis all talk on WIP.\n\n\nOverall, I would have to give the advantage to WFAN, with\nthe exception of 10 to 12, and 2 to 4 where it is even, and\n12 to 2 where WIP has the advantage.   \n\n\n\n            Rich\n-- \n  \"You've read the hat, now see the movie.\"\n                   -Imus in the morning \n  \"A blurb? You're a blurb!\"\n                   -Seinfeld\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2377, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bsardis@netcom.com (Barry Sardis)\nSubject: Re: Date is stuck\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 32\n\nkevin@kosman.uucp (Kevin O'Gorman) writes:\n\n>Anybody seen the date get stuck?\n\n>I'm running MS-DOS 5.0 with a menu system alive all the time.  The machine\n>is left running all the time.\n\n>Suddenly, the date no longer rolls over.  The time is (reasonably) accurate\n>allways, but we have to change the date by hand every morning.  This involves\n>exiting the menu system to get to DOS.\n\n>Anyone have the slightest idea why this should be?  Even a clue as to whether\n>the hardware (battery? CMOS?) or DOS is broken?\n>-- \n>Kevin O'Gorman ( kevin@kosman.UUCP, kevin%kosman.uucp@nrc.com )\n>voice: 805-984-8042 Vital Computer Systems, 5115 Beachcomber, Oxnard, CA  93035\n>Non-Disclaimer: my boss is me, and he stands behind everything I say.\n\n\nI've started to notice the same thing myself. I'm running DOS 5 and Win 3.1 so\nI can fix it from the Windows Control Panel. At times it is the date, at\nothers the clock seems to be running several minutes behind where it should\nbe.\n\nIf you find out I'd like to know also. Oh, and I also leave my system running\nall the time.\n                                                                    \n-- \nBarry Sardis\t\t| Home:   (408) 448-1589\n1241 Laurie Avenue\t| Office: (408) 448-7404\nSan Jose, CA 95125\t| Fax:    (408) 448-7404\nEmail: bsardis@netcom.COM or 70105.1210@compuserve.COM\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2378, "properties": {"category": "sci.electronics", "text": "From: donrm@sr.hp.com (Don Montgomery)\nSubject: Radio Shack Battery of the Month Club\nOrganization: HP Sonoma County (SRSD/MWTD/MID)\nX-Newsreader: TIN [version 1.1 PL9.2]\nLines: 10\n\n\nRadio Shack has canceled their \"Battery of the Month\" Club.  Does \nanyone know why?  \n\nThey say they'll honor existing cards in customer hands, but no new\ncards will be issued.\n\nDon Montgomery\ndonrm@sr.hp.com\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2379, "properties": {"category": "rec.sport.baseball", "text": "From: loos@cup.hp.com (Joe Loos)\nSubject: Bonds vs. Maddux\nNntp-Posting-Host: hpisq3lk.cup.hp.com\nOrganization: Hewlett-Packard\nX-Newsreader: Tin 1.1 PL4\nLines: 27\n\nI've been following the Giants closely over the off-season -- newspapers,\nnotesgroup, etc -- but I had my first up close and personal last night at\nthe Stick.\n\nAfter watching Giants hitters struggle last year, Barry's swing was \nvery impressive -- he's very quick and his swing seems effortless, even\ncompared to Clark (particularly Clark as of late).\n\nIt was interesting to see Bonds hit Maddux so well.  I'm not sure if\nBarry was after revenge against the Braves or what but he stroked\nthree very pretty hits (1b, 2b, hr) for 5 rbi's.\n\nThe Giants as a team are doing a lot of surprising things this year in\naddition to Bonds.  There has been some good pitching and some hitters\nseem to be swinging much better.  Clayton's defense has been superb.\nMcGee seems to like leading off this year.  Manwaring is driving the ball.\nSo on & so forth.\n\nI hope it continues...I think they need to continue well into June before\npeople are really sold that they are for real--particularly the pitching.\n\nFor myself, I think the fresh start of Magowan/Baker/etc has really wiped\nout a lot of negatives from the last few years and will be a real factor\nin helping them significantly improve over last year.\n\nJoe Loos\nloos@cup.hp.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2380, "properties": {"category": "alt.atheism", "text": "From: tclark@tlcslip.uncecs.edu (Thomas B. Clark)\nSubject: Re: \"So help you God\" in court?  \nReply-To: tclark@med.unc.edu\nOrganization: UNC School of Medicine\nLines: 11\n\nI don't think there is really any question about which god the courts\nmean.  The request for solemnly swearing, so help you god,\n is always made after a request to pick up the bible in your left hand\nand hold up your right hand.  In the courts of NC, at least, it is always\nan old and new testament.\n\nThough it is hard to imagine, picking up the bible and swearing to (whatever)\ngod is sometimes the least of the religious influence.  There is a court in\nGreensboro, NC, where the judge routinely has everyone in the courtroom\nstand to join him in prayer at the beginning of every session.  I've thought about\nsitting through it, but I'm not terribly anxious to spend 30 days in jail...\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2381, "properties": {"category": "soc.religion.christian", "text": "From: BOCHERC@hartwick.edu (Carol A. Bocher)\nSubject: Re:Major Views of the Trinity\nLines: 28\n\nAnn Jackson (ajackson@cs.ubc.ca) wrote on 5 May:\n\n>In article <May 2.09.50.06.1993.11776@geneva.rutgers.edu>\n>Jim Green writes:\n\n>>Can't someone describe someone's Trinity in simple declarative\n>>sentences with words that have common meaning?\n\n>The answer to this question appears to be \"no\".\n\nI would like to submit the following which helped me enormously.\nIf it has already been posted, I apologize.\n\nIt seems that during the Middle Ages, it was customary for pastors to \nexplain the Trinity to their parishoners by analogy to water.\nWater is water, but can exist in three forms--liquid, ice and vapor.\nThus it is possible for one essence to exist in three forms.\n\nAnd recently, the pastor of my church drew an analogy, which I\nalso found useful--A woman is often percieved by others in three\nways, depending on their relationship to her--a mother, a wife and\nan employee in a business.\n\nThus, it seems clear to me that the essence of God can subsist in\nthe Father, Son, and Holy Spirit or, depending on one's particular\nneed for Him.\n\nCarol Bocher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2382, "properties": {"category": "comp.sys.mac.hardware", "text": "From: chrism@col.hp.com (Chris Magnuson)\nSubject: FORSALE: RADIUS Precision Color 24x Video Card\nOrganization: HP Colorado Springs Division\nLines: 22\nNNTP-Posting-Host: hpcsrc13.col.hp.com\n\n  I have a Radius Precision Color 24x video card for the Mac that fits in a \nNuBus slot.  The card has 3 Mb of VRAM on it, which means that 24-bit color \nis possible on the card!  The card supports just about any monitor scan\nrate you can think of (I used it at 640x480, 800x600 and 1024x768, but it\ncan go higher).  You can switch resolutions and depth on the fly with a\nsoftware control panel.\n\n  This is the ACCELERATED version of the card, which means all QuickDraw \ncalls are not executed by the CPU but taken over by the video card, freeing\nup the mac processor for other tasks. \n\n  The cheapest I could find this card for when I called around last night\nwas $1738 at Mac's Place.  I will sell it for $1250 + shipping.  It is just\nover a year old and never been any problem.  It comes with software and the\noriginal manuals.\n\n  Hurry!\n\nChris Magnuson\nchrism@col.hp.com\nHewlett-Packard Company\n(719) 590-2963\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2383, "properties": {"category": "comp.windows.x", "text": "From: phil@flex.eng.mcmaster.ca (Phil Nguyen)\nSubject: How to unsubscribe from mailing list\nKeywords: unsubscribe\nNntp-Posting-Host: flex.eng.mcmaster.ca\nOrganization: McMaster University, Hamilton, Ontario, Canada\nLines: 20\n\nI try to unsubscribe from this group by sending an email but that doesn't work.\n\nCould some one tell me the listserv address and command for me to unsubcribe ?\n\nI am leaving this Friday (30th April 93) and the mail box will overflow\nsoon after that.\n\nThanks\n\n-----------------------------------------------------------------\nPhilip Nguyen\nResearch Engineer\nFlexible Manufacturing Research and Development Centre (FMR&D)\nMcMaster University\n1280 Main St. West\nHamilton, On L8S 4L7\nVoice: (416) 529-7070 ext 2902 or 7343\nFax: (416) 572-7944\ne-mail: phil@flex.eng.mcmaster.ca\n-----------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2384, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: stam@netcom.com (David Stam)\nSubject: Re: Recommendations for a Local BUS (Cache\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 85\n\nPenio Penev (penev@rockefeller.edu) wrote:\n>\n>I have a Maxtor 212MB on an ISA IDE controller, although my machine is\n>DX2/66 VLB. I has the save transfer rate of 0.647 MB/s regardless of\n>the variations of the ISA bus speed. I tested it with speed between\n>5.5MHz and 8.33MHz. Not _any_ difference. The problem is not the\n>interface between the controller and the memory.\n>\n\nChris Brinton (brinton@icd.teradyne.com) wrote:\n: I also have a DX2/66 and a Maxtor 212. I have a local bus IDE controller (generic) and I get\n: 985 KB/s. I tried swapping my local bus IDE controller for an ISA IDE controller and my\n: transfer rate went to 830 KB/s. The specs for this drive show a maximum platter to controller\n: transfer rate of 2.83 MB/s. I dont know how to get there from here. The local bus interface\n: got me a little, but certainly not as much as I had hoped. I am also looking for a way to \n\nWhat is the deal with the IDE transfer rates?  Is anybody getting throughput\nanywhere close to the platter->controller rate?  I haven't seen anything\neven close to the 5MB/sec limit of the IDE interface.  These drives are 1:1\n(non-interleaved), aren't they?\n\nHere are the rates I get:\n\n1) sequential read (MSDOS C program that uses bios calls to read 64-sector\n                    blocks sequentially from outside (first) track inward)\n\n                     8mhz bus    10mhz bus\n                     --------    ---------\n   MAXTOR LXT340:    860KB/sec   976KB/sec\n   QUANTUM LPS240:   862KB/sec   887KB/sec\n\n2) disk buffer read (same C program, but re-reads the same block repeatedly\n                     so in effect is reading the RAM buffer on the drive)\n\n                     8mhz bus    10mhz bus\n                     --------    ---------\n   MAXTOR LXT340:   1046KB/sec  1212KB/sec\n   QUANTUM LPS240:  1015KB/sec  1276KB/sec\n\n3) CORETEST V2.7 transfer rate (seems to agree with (2) above)\n\n                     8mhz bus    10mhz bus\n                     --------    ---------\n   MAXTOR LXT340:   1051KB/sec  1224KB/sec\n   QUANTUM LPS240:  1026KB/sec  1298KB/sec\n\nI managed to get hold of the QUANTUM LPS240AT product manual and it goes\ninto excrutiating detail describing how the bits get from the platter,\nthrough the controller, and out the IDE interface.  Nowhere do I see\nanything like \"after the bits are whipped of the platter at high speed\nthey sit around in a buffer to thaw before they are sent to the host\"\n(even though I SWEAR that's whats happening ;->).  Here are some relevent\nquotes from the manual:\n\n  \"Data is transferred from the disk to the read buffer at a rate of\n   3.75 MB/s maximum, 1.87MB/s minimum.\"  (My calculations show 3121KB/sec\n   maximum and 1578KB/sec minimum...  disk spins at 4306 RPM with 87\n   sectors per track on the outside and 44 on the inside)\n\n  \"Single burst errors of up to 24 bits within one sector can be corrected\n   'on-the-fly', in real time as they occur, allowing a high degree of\n   data integrity with no impact to the drive's performance.\"  (I take\n   this to mean error correction isn't the bottleneck)\n\n  \"For page-mode operations, the data-transfer rate to and from the buffer\n   RAM is up to 10.0 MB/s. This high transfer rate allows the AT Interface\n   IC to communicate over the AT bus at a data-transfer rate of 5.0 MB/s,\n   while the DCS simultaneously controls disk-to-RAM transfers\"\n                 ^^^^^^^^^^^^^^\nSo the thing can even do it's cache pre-fetch WHILE it's sending the\nrequested sector (it has 3 64KB read buffers for pre-fetching, I guess\nyou could call that a cache :-|).\n\nSo when I do a sequential read on the outer tracks, WHY am I getting a\nmeasly 862KB/sec when I should be getting around 3MB/sec???\n\nAny of you hard-disk engineers out there know?\n\n\nWondering why my disks are so slow,  \nDavid\n                        o o\n--------------------oOO-(_)-OOo--------------------------------------------\nDavid Stam                            Linux: The choice of a GNU generation\nstam@netcom.com                       386-un*x-X11R5-Openlook-gcc-TeX-FREE!\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2385, "properties": {"category": "sci.crypt", "text": "From: redsonja@olias.linet.org (Red Sonja)\nSubject: Re: Once tapped, your code is no good any more.\nDistribution: na\nOrganization: Utter Chaos in Islip, Long Island, New York (we think)\nLines: 26\n\nIn article <1993Apr20.054308.15985@Celestial.COM> bill@Celestial.COM (Bill Campbell) writes:\n>In <strnlghtC5p7zp.3zM@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>\n>:In article <Apr18.194927.17048@yuma.ACNS.ColoState.EDU>\n>:holland@CS.ColoState.EDU (douglas craig holland) writes:\n>\n>:>Note that measures to protect yourself from\n>:>TEMPEST surveillance are still classified, as far as I know.\n>\n>:I think this to be inaccurate. One can buy TEMPEST equipment commercially.\n>:Even Macs.\n>\n>Sure you can buy a TEMPEST approved Mac -- if you have enough\n>money.  I haven't had any reason to look at this type of pricing\n>for about 10 years, but a TEMPEST rating in 1982 would raise the\n>price of a $2,495.00 Radio Shack Model III to something around\n>$15,000.00.\n>\nOr just dig a deep enough hole in the ground. 50 feet should do it.\n\n\n-- \nredsonja@olias.linet.org     \\\\\\RS///     Self possession is 9/10 of the law.\nAlien: \"We control the laws of nature!\" | \"How come when it's human, it's an\nJoel: \"And you still dress that way?\"   | abortion, but when it's a chicken, \n(MST3K#17 - Gamera vs Guiron)           | it's an omelet?\" - George Carlin\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2386, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Wings take game one\nKeywords: The Detroit Red Wings - 6 ; The Toronto Maple Leafs - 3\nOrganization: University of Toronto Chemistry Department\nLines: 28\n\nIn article <1993Apr20.032350.18885@ramsey.cs.laurentian.ca> maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n>In <1qvos8$r78@msuinfo.cl.msu.edu> vergolin@euler.lbs.msu.edu (David Vergolini) writes:\n>\n>>  The Detroit Red Wings put a lot of doubter on ice tonight with a 6 - 3\n>>washing of the Toronto Maple Leafs.  All you Toronto fans have now seen the\n>>power of the mighty Red Wing offense.  Toronto's defense in no match for the\n>>Wing offense.  As for the defense, Probert, Kennedey and Primeau came out\n>\n>Did they move Probert back to defense?  Why did I see him parking his ass\n>in front of Potvin all night?  Somebody is going to have to discipline\n>Probert if the Leafs want to win the series.  Perhaps a fresh Clark should\n>hit the ice at the end of a long Probert shift and straigten him out for\n>a while...\n>\n\nDuring the regular season, when the intensity is down, not many teams\nhave forwards who will continually go and park themselves in front of\nthe opposing teams net...and the inadequacy of the Leafs defense in\nthis regard thus didn't matter...however, the playoffs are a different\nstory...every good team is going to have players who are going to\nbecome potted plants in front of Potvin...and the Leafs relatively\nunphysical defensive core will finally be exposed as weak an inept.\n\nHard work will go a long way during the regular season...almost\nto 100 points...and the Leafs deserve credit for that...but in the \nplayoffs talent matters, because everyone begins working hard.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2387, "properties": {"category": "talk.politics.misc", "text": "From: v140pxgt@ubvmsb.cc.buffalo.edu (Daniel B Case)\nSubject: Re: EIGHT MYTHS about National Health Insurance (Pt II)\nOrganization: University at Buffalo\nLines: 147\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\nIn article <1993Apr18.001116.19872@news.columbia.edu>, gld@cunixb.cc.columbia.edu (Gary L Dare) writes...\n>The difference in the litigation environment is reflected in the fees.\n> \n>Lack of defensive medicine and near-absence of malpractice is really\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n>why we spend less using the most expensive approach of pure insurance\n~~~~~~~~~~~~~~~~~~\n\nThen why do we really need national health insurance then? Wouldn't it just make\nmore sense to find some way to cut down on the cost of malpractice insurance?\n\nAnd maybe that's not such a good thing. I also read somewhere that it is next to\nimpossible in Canada to litigate against the health system-class action suits\nare nearly impossible, and you can't sue the provincial health officials at all.\n\n> \n>Part of the deal for using the all-insurance approach like the French\n>and Germans do (hey, why don't they criticize France and Germany?  Is\n>it because too many people take French and German in college to make\n>the accusations stick? (-;) was to preserve the doctors independance.\n>Since the provincial wings of the CMA are the ones that go to bat when\n>the fee schedule hikes are presented, the politically-bent doctors\n>were just cackling when they realized the CMA would grow in strength\n>rather than diminish, especially when unopposed unlike in socialized\n>medicine approaches like Britain's National Health Service.\n\nOh no. Don't let the AMA know about this. They have enough power as it is. Ask\nmost Americans whether they'd like the doctors' lobby to get more powerful.\n\n>For non-life threatening things, market arguments adequately cover why\n>certain procedures are in scarcer demand.  I have MD friends who can't\n>make a living as specialists back in Manitoba not due to the insurance\n>rates but because they won't get enough customers -- the CMA medical\n>monopoly's grip on doctors licencing (as in the US) aside -- so they\n>must move to larger places.  However, this does not refute debunking\n>of waiting lines for urgent AND routine care, as has been done in the\n>U.S. by Consumers Reports, health policy studies cited by Prof. Dennis\n>E. Shea on USENET, CNN, NYT, etc.\n\nWell, yeah, tell us about the National Defense Medical Centre outside Ottawa.\nTheoretically it's limited to service personnel, but some studies I've heard\nabout have suggested that about half the patients there are civilians who not\nonly have connections but aren't \"urgent\" at all.\n\nThe problem is, in a system where hospitals' annual budgets are approved by the\ngovernment, how do you keep political considerations out of medical decisions?\nI bet that if you're an MP or MPP, or good friends with one, you're put on any\nhospital's \"urgent\" care list no matter how minor your problem. Which is OK \nunless you're someone who gets bumped off the list for some bigshot.\n\n>>WOULDN'T NATIONAL HEALTH INSURANCE MEAN THAT AMERICANS WHO ARE NOW  \n>>FULLY INSURED MIGHT HAVE TO SETTLE FOR LESS?  \n>>\n>>In Canada, provincial insurance covers all health costs except dental  \n>>care, eyeglasses, prescription drugs, ambulance service, and private  \n>>hospital rooms, -- so many Canadians do end up buying some private  \n>>insurance. A policy to cover all of these things runs about #40 to $40  \n>>a month.  \n\nHmm. How much difference would it make in the figure of percentage of GNP spent\non health care if dentistry and optometry were included in the accounting? \nMaybe Canada spends proportionately just as much on health care as we do.\n\n> \n>Of course, the one thing to note is that in the Canada/France/Germany\n>case, private insurance *offloaded* the basic coverage to the public\n>sector.  They realized they were keeping low-risk/high-profit extra\n>insurance for things like private/semi-private rooms (vs. ward\n>accomodation), dental, glasses, etc. for corporate or personal\n>benefits, they'll have nothing to do with you if you want to be\n>covered for basic care.\n> \n>At that point, they wouldn't even consider a \"voucher\" approach\n>to broker the universal coverage and sell policies to make up\n>the difference in the federal guidelines and market stuff.\n\nSo what happens if the health care systems financially collapse. Bob Rae, the\nsecond least popular man in Ontario, warned Ontarians a few years ago that if\nthey didn't stop cross-border shopping in such huge numbers, \"the services they\nexpect from the province just won't be there in a few years\" (Fortunately for\nthem (and less fortunately for the retailers here in Western New York) the \nCanadian dollar went back to a more realistic value). He didn't say so, but I\nknew he meant the OHIP. What would happen if his warning turned out to be the \ntruth? Would the private insurers take up the slack? They'd be under no \nobligation to. Of course, they could eventually make money again, but if what\nyou say is true, they'd be loathe to do so (and out of practice in handling \nsuch basic services, too).\n\n> \n>>******************************************************************  \n>>\n>>WOULDN'T FREE CARE ENCOURAGE PEOPLE TO RUN TO THE DOCTOR FOR EVERY  \n>>ACHE AND PAIN?  \n>>\n>>People who get free treatment *do* go to the doctor and hospital about  \n>>a third more often than those who have to pay a share of their medical  \n>>bills.  \n>>\n>>Still, Canadians -- who pay nothing at the doctor's -- have a lower  \n>>per-person health bill than we do.\n> \n>It is \"free\" in that there are no deductibles nor copayments (two\n>things which I advocate to make the Canadian insurance look more like\n>real health insurance -- which actually it is).  I know that when\n>working in Alberta, Ontario and Quebec, I was aware that I was paying\n>for health insurance - e.g., in Toronto, OHIP fees were listed on my\n>pay stub; Manitoba did not collect at paycheque time, but only\n>annually at income tax time (built into the tax rate).  Only fiscal\n>naifs will proclaim that it's free, along with the Canadian Left for\n>that is part of their brainwashing agenda.\n\nWould that it were free. Americans would start another revolution if they had\nto pay taxes at Canadian rates.\n\n>>ISN'T THE PRIVATE HEALTH INSURANCE INDUSTRY JUST TOO BIG  \n>>AND POWERFUL TO KILL?  \n>>\n>>Dismantling the health segment of our insurance industry would be  \n>>\"politically thorny,\" in the quiet words of one advocate for a  \n>>national plan. Some 1,200 firms now sell more than $192 billion in  \n>>health insurance. They'd put up a hard fight. Not only has the industry  \n>>grown eightfold since Canada shut down its own health insurers, but \n>>our government leaves politicians more open to lobbyists than does  \n>>Canada's parliamentary system.\n> \n>Health insurance does exist in Canada and in Western Europe, its\n>just that it doesn't cover basic care.  You can opt out in Canada\n>and Germany, but you'll have to go uninsured as a result because\n>there are too few other people that do so --- i.e., no market.\n> \n>When private insurance realized how much money they'd make without the\n>risks involved in basic insurance (e.g., neurosurgery) versus deluxe\n>amenities (e.g., having to call Granada TV to replace a rental set on\n>the fritz in someone's private hospital room), they started to pat\n>themselves on the back for their social responsibility.  In Quebec\n>last spring, a consortium of private insurers publicly warned against\n>any thoughts of privatizing routine, low cost parts of that province's\n>public health insurance plan.\n\nAgain, I doubt Americans would like giving the insurance companies that much\npower. I half wonder if the Canadian health insurers didn't go along with the\nprovinces and the federal government years ago because they knew that there was\na good chance of the public system going bust in the long run, and then \nafterwards they could clean up (Okay, this sort of contradicts what I said\nhigher up. But it's another possibility). They'd have an added bonus when \narguing against government involvement in their industry-as they could then \npoint to its failure instead of just citing theoretical principles.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2388, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: goo@cup.hp.com (Mike Goo)\nSubject: Re: Visual c++\nDistribution: usa\nNntp-Posting-Host: hpingoo.cup.hp.com\nOrganization: Hewlett-Packard, Cupertino, CA\nLines: 30\n\nIn article <1rgr7v$6ga@lll-winken.llnl.gov> David A. Fuess writes:\n\n>It is correct that VC++ is NOT considered an upgrade for C7. C7 is\n>basically a DOS product, VC++ is a Windows product. As Windows is not\n>an upgrade for DOS, it is a separate operating system product line, its\n>utilities cannot be upgrades for DOS utilities. However, I have also\n>been told that it is NOT an upgrade for QCWIN, which it should be!\n\nYou *can* upgrade MSC 7.0 and QCWIN to the Visual C++ products as follows:\n\n  STANDARD EDITION:\n    List Price                    $199\n    Upgrade from QCWin            $ 79\n    Competitive Upgrade           $ 99\n\n  PROFESSIONAL EDITION:\n    List Price                    $499\n    Upgrade from MSC 7.0          $139\n    Competitive Upgrade*          $199 \n\n  * Includes upgrades from other MS language products like QCWin\n\n-------------------------------------------------------------------------------\nMichael Goo                   |\nHewlett-Packard               | \"I never try to cover my ass...\nInformation Networks Division |   but I certainly support your right to do so!\"\n19420 Homestead Road  MS 43LT |\nCupertino, CA 95014-9974      |\ngoo@hpinddh.cup.hp.com        |\n-------------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2389, "properties": {"category": "sci.med", "text": "From: draper@gnd1.wtp.gtefsd.com (PAM DRAPER)\nSubject: Any info. on Vasomotor Rhinitis\nOrganization: GTE Government Systems, Federal Systems Division, Chantilly, VA\nLines: 20\nDistribution: world\nReply-To: draper@gnd1.wtp.gtefsd.com\nNNTP-Posting-Host: gnd1.wtp.gtefsd.com\nNews-Software: VAX/VMS VNEWS 1.3-4   \n\n\n\nI recently attended an allery seminar.  Steroid Nasal sprays were \ndiscussed.  Afterward on a one-on-one basis, I asked the speaker what if \nnone of the Vancanese, Beconase, Nasalide, Nasalcort, or Nasalchrom work \nnor do any oral decongestants work.  She replied that she saw an article on \nVasomotor Rhinitis.  That this is not an allergic reaction and that nothing \nother than the Afrin's and such would work.  (Which in my case is true).\n\nI want to find out as much as possible about this, since I am going to see \nmy allergist in May and want to be armed to the hilt with information; \nsince nothing he has done with me has helped me at all and I have had no \nrelief for 14 months.\n\nPlease respond if you know anything about this and/or please let me know \nwhat articles might be helpful that I could look up in the library.\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.110+0000", "event": "documents", "entityId": 2390, "properties": {"category": "misc.forsale", "text": "From: gt0463b@prism.gatech.EDU (Michael Davis Smith)\nSubject: REAL ESTATE SALE\nArticle-I.D.: hydra.91506\nOrganization: Georgia Institute of Technology\nLines: 71\n\n\n\n\n\n\n\n\n                            RESIDENTIAL LOT FOR SALE\n\n\n\n\n\n               I have a nice residential lot available.  It is approx-\n          imately 1/2 acre in size.  It is located in the development\n          called Belvedere Plantation in Pender County, eastern North\n          Carolina, north of Wilmington.  The lot is near the Intra-\n          Coastal Waterway.  Golf and tennis are located on the\n          development property.  Belvedere Plantation also has a mar-\n          ina facility on the ICW.  This lot is nearby to all of the\n          facilities mentioned.\n\n\n\n               I own the lot outright but it does not look like I will\n          get back to the area anytime soon.  I would like to sell it\n          for that reason.  Make an offer.\n\n\n\n               If interested please send E-mail.\n          gt0463b@prism.gatech.edu.  - Mike Smith\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n-- \nMichael Davis Smith\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0463b\nInternet: gt0463b@prism.gatech.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2391, "properties": {"category": "soc.religion.christian", "text": "From: mussack@austin.ibm.com (Christopher Mussack)\nSubject: Re: sex education\nOrganization: IBM Austin\nLines: 9\n\nIn article <Apr.19.05.13.02.1993.29198@athos.rutgers.edu>, jkellett@netcom.com (Joe Kellett) writes:\n> ...\n> Question for further discussion (as they say in the textbooks):  Why don't\n> we teach \"safe drug use\" to kids, instead of drug abstinence?  ...\n\nAnd how come we don't pass out bullet-proof vests in school\nto promote safe gun usage? \n\nChris Mussack\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2392, "properties": {"category": "talk.religion.misc", "text": "From: rich.bellacera@amail.amdahl.com\nSubject: \"Ex-Gays?\" (follow-up)\nLines: 53\nReturn-Path: <amail.amdahl.com!rich.bellacera@juts.ccc.amdahl.com>\n\nI would like to apologize for the typos in the previous post.\n\nIn retrospect I would also like to quote another source: Douglas C.\nHaldeman from his 1991 book _Homosexuality_\n\nTHERAPY INEFFECTIVE\n\nRecently the founders of yet another prominent \"ex-gay\" ministry, Exodus\nInternational, denounced their conversion therapy procedures as ineffective.\nMichael Busse and Gary Cooper, cofounders of Exodus International and lovers\nfor 13 years, were involved with the organization from 1976 to 1979.  The\nprogram was described by these men as \"ineffective . . . not one person was\nhealed.\"  They stated that the program often exacerbated already prominent\nfeelings of guilt and personal failure among the counselees; many were\ndriven to suicidal thoughts as a result of the failed \"reparative therapy.\"\n\nThe previous article quoted in the last posting is from THE ADVOCATE, June\n30, 1992 called \"The Ex-Ex-Gay\" by Robert Pela.\n\nSome personal thoughts:\n\nIt is of no great astonishment that there is a concerted effort by a major\nportion of the Church to control and mandate change of a minority among\nits ranks.  This was the momentum behind the Spanish Inquisition, only all\nthey required was a confession of faith (after much torture) and then, to\nsave their souls they would dispatch them to heaven through death.  Even\nlater, the Bible was used vigorously to defend slavery, oppression and\nsegragation of African-Americans, even to the justification of lynchings.\nToday's scholars are just a bit more slick in their approach.  The tool is\nstill coersion, but now it is mostly by means of brainwashing and mind\ncontrol, convincing people that they should see themselves as less than\nGod sees them, then maintaining a cultic hold on them until it is felt\nthier mind-conditioning is complete.  Sure, no one is \"physically\" forced\nto stay in this \"reparative therapy\" but sheer social pressure is enough for\nmany to keep themselves in this new found bondage of self-hate.\n\nAs an abolitionist I advocate the abolishment of oppression and persecution\nagainst gays in all facets of civil life.  A person should be judged by\nthe contibution, or non-contribution to the society in which they live,\nnot by some high-brow standard of conformity imposed by those who haven';t\na clue what is in their heart.\n\nFor those who seek more information about Gays and groups that accept them\nplease contact your nearest chapter of PFLAG (Parents & Friends of Lesbians\nAnd Gays) who will be more than happy to assist you.  This is a group of\npeople comprised of Gays, Lesbians and Bisexuals, their parents and friends\nwho have formed a support group for help and understanding.  Try talking to\na parent of a gay son or daughter and learn some \"first-hand\" real life and\nloving understanding.  God's love and understanding for Gay people is no\nless abundant.\n\nThank you.\nPAX\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2393, "properties": {"category": "comp.graphics", "text": "From: cb@wixer.bga.com (Cyberspace Buddha)\nSubject: Re: CView answers\nKeywords: Stupid Programming\nOrganization: Real/Time Communications\nLines: 15\n\nrenew@blade.stack.urc.tue.nl (Rene Walter) writes:\n>over where it places its temp files: it just places them in its\n>\"current directory\".\n\nI have to beg to differ on this point, as the batch file I use\nto launch cview cd's to the dir where cview resides and then\ninvokes it.  every time I crash cview, the 0-byte temp file\nis found in the root dir of the drive cview is on.\n\njust my $0.13,\ncb\n-- \n Cyberspace Buddha { Why are you looking for more knowledge when you  } /(o\\\n cb@wixer.bga.com   \\ do not pay attention to what you already know? /  \\o)/\n cb@wixer.cactus.org }   \"get out of my chair!\" -- Hillary to god   { peace...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2394, "properties": {"category": "sci.electronics", "text": "From: w1gsl@athena.mit.edu (Steven L. Finberg)\nSubject: New England Ham - Electronic Fleamarket Dates  ** 1 April update  **\nKeywords: Fleamarkets Swaps Ham Radio Computers Electronics\nArticle-I.D.: senator-.1peffgINNarc\nExpires: 6 May 1993\nDistribution: na\nOrganization: Massachusetts Institute of Technology\nLines: 112\nNNTP-Posting-Host: e40-008-5.mit.edu\n\n\n\n\nNew England Area Major Flea Market    ***  DATES  ***      1993        P 1 of 2\nAll events are Ham Radio/ Electronic related except ~_____~ \n*******************************************************************************\n1993                                                    Contact          Source\n*******************************************************************************\n\n3 April Upper Saddle River NJ CRRC   9-3 sell @8     Jack W2EHD 201 768 8360 D\n\n4 April Southington CT SARA @HS $20@6:3 $10@8:3 $3@9      N1GCV 203 621 6191 F\n\n17 April Nashua NH NE Antique RC $5@8 $1@9 @ Res Ctr Church Ray 508 865 1290\n \n18 April Cambridge MA       FLEA at MIT                    Nick 617 253 3776 F\n               buy $2@9A  sellers $10/sp@7A $8in adv  $35 for season pass\n               3rd Sunday Each Month April thru October   \n\n18 April Webster MA ECARA @ Pt Breeze Rest $3 tables $10   Gary 203 974 2564 F\n\n18 April Agawam MA HCRA @ Southwick Rec Ctr $3@9A     Bob W1ZGP 203 653 0715 F\n\n23,24,25 April Dayton OH  adm $11  sell $30/50++       evenings 513 767 1107 F\n\n2 May Yonkers NY  @Lincoln HS                       Otto WB2SLQ 914 969 1053 A\n\n7-8 May Rochester NH Hoss Traders @FG ex13 off rt 16 $5 noon fri  WA1IVB sase\n\n15 May N Smithfield RI RIFMRS @VFW Main St 8A        Rick K1KYI 401 725 7507  \n\n16 May Cambridge MA       FLEA at MIT                      Nick 617 253 3776 F\n\n16 May Pittsfield MA @Taconic HS Sell $5@7 Buy $2@8 Cliff W1SJV 413 743 3334  \n\n21-22-23 May Rochester NY ARRL-NY Conv @ Monroe FG  Harold K2HC 800 724 8515 F\n\n5 June S Burlington VT                             Mitch WB2JSJ 802 879 6589\n\n6 June Newington CT @HS Flea                         Les KA1KRP 203 523 0453\n\n12 June Bangor ME Pine St ARC @Hermon ES 146.34/94 8AM-$2 Roger 207 848 3846 \n\n20 June Cambridge MA         FLEA at MIT                   Nick 617 253 3776 F\n\n17 July Nashua NH NE Antique RC $5@8 $1@9 @ Res Ctr Church  Ray 508 865 1290\n\n17 July Union ME @ Fairground $3@7AM State Conv    Skeet KA1LPW 207 622 2915  \n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nLAST UPDATE 3-29-93 de W1GSL                                           P 1 of 2\n*******************************************************************************\nAdditions/ Corrections  via Internet  w1gsl@athena.mit.edu\n                            US Mail   W1GSL POB 82 MIT Br Cambridge MA 02139\n                                      SASE for updated copy as issued.\n\f\n\n\n1993                                                   Contact           Source\n*******************************************************************************\n\n18 July Cambridge MA         FLEA at MIT                   Nick 617 253 3776 F\n                   3rd Sunday Each Month April thru October   \n\n24 July Manchester NH NHARA @HI 8A$4 NE DC 300Ts (no TG) WB1HBB 603 432 6011 F\n\n8 Aug White Planes NY WECAfest                      Sarah N2EYX 914 962 9666 D\n\n8 Aug Wellseley MA WARS+BARS @Babson College         Barry WN1N 508 877 4947 T\n\n14 Aug St Albans ME  @ Snow Mobile Club             Hitch K1HHC 207 796 2282  \n\n15 Aug Cambridge MA          FLEA at MIT                   Nick 617 253 3776 F\n\n29 Aug Fall River MA BCRA                            Tom WA1LBK 508 674 4163 T+\n\n11 Sept Windsor ME @ Fairground $3@7AM             Skeet KA1LPW 207 622 2915  \n\n12 Sept Gaithersburg MD FAR @Mg Cty FG $5@6A- $7TG Nancy Drahim 703 691 0078 J\n\n12 Sept S Dartmouth MA SE Mass ARA 8A-                Dan N1HCV 508 933 0678  +\n\n19 Sept Cambridge MA         FLEA at MIT                   Nick 617 253 3776 F\n\n19 Sept Sandy Hook CT Candlewood ARA               Harold KB1US              A\n\n25 Sept Greenbush ME  WCSN/BARC @WCSN xmtr          Ed Cockburn 207 732 4366  \n\n26 Sept Framingham MA @ HS $12@8 $5@9 $2@10          Barry WN1N 508 877 4947 F\n\n26 Sept Yonkers NY Metro 70 ARC                     Otto WB2SLQ 914 969 1053 A\n\n15,16 Oct Rochester NH Hoss Traders @FG ex13 off rt 16 $5 noon fri      K1RQG \n\n17 Oct Cambridge MA          FLEA at MIT                   Nick 617 253 3776 F\n\n13 Nov Plymouth MA Mayflower RC @Mem Hall 9-3 sell@8   Jim NM1F 508 747 2224  \n                   \n14 Nov Branford CT SCARA @intrm sch                 Brad WA1TAS 203 265 9983 T\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nLAST UPDATE 3-29-93 de W1GSL                                           P 2 of 2\nSource F= Flyer  J= John Roberts list   A= ARRL list   WR NV 73 CQ QST = Mags\n       T= tentative early info    D= W1DL      + = new info this month\nThis list has been compiled from many sources.  While we believe the info to \nbe accurate the author can not be responsible for changes or errors.  \nCheck with the sponsoring organizations for more details. \nThis list will be posted monthly to Usenet if additions have been made. \nMailed copies are sent when additions are made.\n*******************************************************************************\nAdditions/ Corrections  via Internet  w1gsl@athena.mit.edu\n                            US Mail   W1GSL POB 82 MIT Br Cambridge MA 02139\n                                      SASE for updated copy as issued.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2395, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Mel_Shear@maccomw.uucp\nSubject: Adapter Cable for VGA Monitors\nLines: 51\n\nDoes anyone know who makes a cable or adapter that is wired according to\nApple's specs that forces the external output on LC's and the Powerbook's\n160/180 and Duo 230 into a true VGA style output signal? The NEC Adapter does\nnot do this since their monitors are multisync they just route the signal into\nthe correct pinout but do not switch the Macs output into VGA mode.\n\nDo I have to make one of these or does someone already have one made-up??\n\nThe following is the Apple spec for the LC cpu VGA Cable adapter. I'm assuming\nthat the Powerbooks/Duos will work with the same adapter(?);\n\n\nMacintosh LC to VGA\n \nThe Macintosh LC can supply a 640 x 480, VGA timed signal for use with VGA\nmonitors by using an adapter cable.  The standard Macintosh LC supports VGA to\n16 colors, and with the optional 512K VRAM SIMM, the VGA monitor is supported\nto 256 colors.\n \nNote:     The Macintosh LC supplies signals capable of driving TTL level\n          inputs.  However, some low impedance input VGA monitors do not work\n          with the Macintosh LC.\n \nTo connect a Macintosh LC to a VGA monitor, you need to make an adapter cable\nfrom the Macintosh LC video connector to the VGA monitor.  Following is the\npinout description for the adapter cable:\n \nMacintosh LC        VGA\nVideo Connector     Pin     Signal Name\n---------------     ----    -----------\n1                   6       Red ground\n2                   1       Red video signal\n5                   2       Green video signal\n6                   7       Green ground\n9                   3       Blue video signal\n13                  8       Blue ground\n15                  13      /HSYNC\n12                  14      /VSYNC\n14                  10      HSYNC ground\n7,10                nc      SENSE1 & SENSE2 tied together\n \nVGA monitors are identified by shorting pin 7 to pin 10 on the Macintosh LC\nvideo connector.  The Macintosh LC grounds pin 7 on its video connector, which\nresults in pulling down pin 10 and gives the correct monitor ID for a VGA\nmonitor.\n\n***************************************************************************\nThis message was created on MCW BBS a jointly supported by\nNew Orleans Mac User Group & National Home & School User Group\nuser@maccomw.uucp        The views expressed in this posting those of the individual author only.\n***************************************************************************\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2396, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rnichols@cbnewsg.cb.att.com (robert.k.nichols)\nSubject: Re: ATM\nOrganization: AT&T\nLines: 39\n\nIn article <1r1jq4$af5@network.ucsd.edu> adean@weber.ucsd.edu (Anthony V. Dean) writes:\n>\n>I've been reading, with much confusion, about whether or not to use\n>ATManager. Lately, all the packages I've been buying have all\n>included ATManager as a \"bonus\"\n>I do some desktop publishing using PageMaker and Coreldraw.\n>Coreldraw comes with a nifty laser disk that contains over 200 diff\n>types. Add that to the TTfonts that come with win31 and you have a\n>decent amount of fonts. I print my creations out on an HP4\n>Postcript, at 600 dpi resolution with the \"Resolution Enhancement \n>Technology\" and ..  well ... I get some darn good copies. \n>So good that there isn't any diff whether or not ATManager is turned\n>on or not. Is it worth it to run ATM at all? Especially with these\n>better printer technologies ... and TT?\n\nATM will do nothing for your TrueType fonts.  If your TrueType fonts are\nsufficient for your needs, don't run ATM.  I have a lot of fonts that I can\ninstall either as Type-1 PostScript (under ATM) or as TrueType.  I have\nnoticed that:\n\n    1.\tTrueType font files are at least 1/3 larger than their Type-1\n\tequivalents.  If you are using a disk compressor, though, be aware\n\tthat TrueType fonts will compress, whereas Type-1 fonts will not\n\t(they are encrypted).\n\n    2.\tWith a 300 dpi laser printer, the \"artificial bold\" version of a\n\tTrueType font is indistingishable from the original, forcing me to\n\tinstall the actual bold (and bold-italic, etc.) variants if I want\n\tto use them.  Type-1 PostScript fonts under ATM generate a visually\n\tdistinct bold variant from the base font.  I realize that the\n\tartificial bold font that ATM generates is aesthetically inferior\n\tto the hand-generated bold TrueType variant, but it is sufficient\n\tfor my needs, and not having to install bold variants saves me 50%\n\ton disk space (uncompressed).\n\n--\nBob Nichols\nAT&T Bell Laboratories\nrnichols@ihlpm.ih.att.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2397, "properties": {"category": "comp.graphics", "text": "From: diablo.UUCP!cboesel (Charles Boesel)\nSubject: Re: Postscript drawing prog\nOrganization: Diablo Creative\nReply-To: diablo.UUCP!cboesel (Charles Boesel)\nX-Mailer: uAccess LITE - Macintosh Release: 1.6v2\nLines: 22\n\n\nIn article <1993Apr19.171704.2147@Informatik.TU-Muenchen.DE> (comp.graphics.gnuplot,comp.graphics), rdd@uts.ipp-garching.mpg.de (Reinhard Drube) writes:\n>In article <C5ECnn.7qo@mentor.cc.purdue.edu>, nish@cv4.chem.purdue.edu (Nishantha I.) writes:\n>|> \tCould somebody let me know of a drawing utility that can be\n>|> used to manipulate postscript files.I am specifically interested in\n>|> drawing lines, boxes and the sort on Postscript contour plots.\n>|> \tI have tried xfig and I am impressed by it's features. However\n>|> it is of no use since I cannot use postscript files as input for the\n>|> programme.Is there a utility that converts postscript to xfig format?\n>|> \tAny help would be greatly appreciated.\n>|> \t\t\t\tNishantha\nHave you checked out Adobe Illustrator? There are a few Unix versions\nfor it available, depending on your platform. I know of two Unix versions:\nOne for Mach (NeXT) and for Irix (SGI). There may be others, such\nas for Sun SparcStation, but I don't know for sure.\n\nttyl,\n\n--\ncharles boesel @ diablo creative |  If Pro = for   and   Con = against\ncboesel@diablo.uu.holonet.net    |  Then what's the opposite of Progress?\n+1.510.980.1958(pager)           |  What else, Congress.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2398, "properties": {"category": "talk.religion.misc", "text": "From: rwd4f@poe.acc.Virginia.EDU (Rob Dobson)\nSubject: Re: That Kill by Sword, Must be Killed by Sword\nOrganization: University of Virginia\nLines: 18\n\nIn article <sandvik-190493201048@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n>\n>So are you happy now when 70+ people, including innocent kids,\n>died today?\n\nNo, and Im especially unhappy that these 70+ people died in an assault\non private property with government armored vehicles.\n\nI am also unhappy (or actually, very suspicious) that the FBI was dismissing\nout of hand any chances that they might have accidentally set the blaze \nthemselves. I mean, I guess we are just supposed to believe that\nramming modified tanks into the walls of a building and injecting\ntoxic gases into the building are just routine procedures, no WAY\nanything could go wrong.\n\n\n--\nLegalize Freedom\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2399, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Given the massacre of the Muslim population of Karabag by Armenians...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nLines: 124\n\nIn article <1993Apr19.155856.8260@kpc.com> henrik@quayle.kpc.com  writes:\n\n>Let me clearify Mr. Turkish;\n>ARMENIA is NOT getting \"itchy\". SHE is simply LETTING the WORLD KNOW that \n>SHE WILL NO  LONGER sit there QUIET and LET TURKS get away with their FAMOUS \n>tricks. Armenians DO REMEMBER of the TURKISH invasion of the Greek island of\n>CYPRESS WHILE the world simply WATCHED. \n\nAnd the 'Turkish Karabag' is next. As for 'Cyprus', In 1974, Turkiye \nstepped into Cyprus to preserve the lives of the Turkish population \nthere. This is nothing but a simple historical fact. Unfortunately, \nthe intervention was too late at least for some of the victims. Mass \ngraves containing numerous bodies of women and children already showed \nwhat fate had been planned for a peaceful minority.\n\nThe problems in Cyprus have their origin in decades of \noppression of the Turkish population by the Greek Cypriot \nofficials and their violation of the co-founder status of \nthe Turks set out in the constitution. The coup d'etat \nengineered by Greece in 1974 to execute a final solution \nto the Turkish problem was the savage blow that invoked \nTurkiye's intervention. Turkiye intervened reluctantly and \nonly as a last resort after exhausting all other avenues \nconsulting with Britain and Greece as the other two signatories \nto the treaty to protect the integrity of Cyprus. There simply \nwas not any expansionist motivation in the Turkish action at \nall. This is in dramatic contrast to the Greek motivation which \nwas openly expansionist, stated as 'Enosis,' union with Greece. \nSince the creation of independent Cyprus in 1960, the Turkish \npopulation, although smaller, legally had status as the co-founder\nof the republic with the Greek population.\n\nThe Greek Cypriots, with the support of 'Enosis'-minded\nGreeks in the mainland, have consistently ignored that\nstatus and portrayed the Island as a Greek island with\na minority population of Turks. The Turks of Cyprus are\nnot a minority in a Greek Republic and they found the\nonly way they could show that was to assert their \nautonomy in a separate republic.\n\nTurkiye is not satisfied with the status quo. She would\nrather not be involved with the island. But, given the\ndismal record of brutal Greek oppression of the Turkish\npopulation in Cyprus, she simply cannot leave the fate\nof the island's Turks in the hands of the Greeks until\nthe Turkish side is satisfied with whatever accord\nthe two communities finally reach to guarantee that\nhistory will not repeat itself to rob Turkish Cypriots\nof their rights, liberties and their very lives.\n\n\n  Source: 'Cyprus: The Tale Of An Island,' A. H. Rizvi, p. 42\n\n  21-12-1963 Throughout Cyprus\n  \"Following the Greek Cypriot premeditated onslaught of 21 December,\n   1963, the Turkish Sectors all over Cyprus were completely besieged\n   by Greeks; all telephonic, telegraphic and postal communications\n   between these sectors were cut off and the Turkish Cypriot\n   Community's contact with each other and with the outside world\n   was thus prevented.\"\n\n  21-12-63 -- 31-12-63 Turkish Quarter of Nicosia and suburbs\n  \"Greek Cypriot armed elements broke into hundreds of Turkish\n   homes and fired at the unarmed occupants with automatic\n   weapons killing at random many Turks, including women, children\n   and elderly persons (51 Turks were killed and 82 wounded). They\n   also carried away as hostages more than 700 Turks, including\n   women and children, whom they forced to walk bare-footed and\n   in night-dresses across rough fields and river beds.\"\n\n   21-12-63 -- 12-12-64 Throughout Cyprus\n   \"The Greek Cypriot Administration deprived Turkish Cypriots \n   including Ministers, MPs, and Turkish members of the Public\n   services of the republic, of their right to freedom of movement.\"\n\n   In his report No. S/6102 of 12 December, 1964 to the Security\n   Council, the UN Secretary-General stated in this respect the\n   following:\n\n  \"Restrictions on the free movement of civilians have been one of\n   the major features of the situation in Cyprus since the early\n   stages of the disturbances, these restrictions have inflicted\n   considerable hardship on the population, especially the Turkish\n   Cypriot Community, and have kept tension high.\"\n\n   25-9-1964 -- 31-3-1968 Throughout Cyprus\n  \n      \"Supply of petrol was completely denied to the Turkish sections.\"\n\n   Makarios Addresses UN Security Council On 19 July 1974\n   After being Ousted by the Greek Junta Coup\n\n   \"In the beginning I wish to express my sincere thanks to all the\n   members of the Security Council for the great interest they have\n   shown in the critical situation which has been created in Cyprus\n   after the coup organized by the military regime in Greece and\n   carried out by the Greek army officers who were serving in the\n   National Guard and were commanding it.\n\n   [..]\n\n   13-3-1975 On the road travelling to the South to the freedom of\n             the North\n\n   \"A Turkish woman was seriously wounded and her four-month old\n   baby was riddled with bullets from an automatic weapon fired by\n   a Greek Cypriot mobile patrol which had ambushed the car in which\n   the mother and her baby were travelling to the Turkish region.\n   The baby died in her mother's arms.\n\n   This wanton murder of a four-month-old baby, which shocked foreign\n   observers as much as the Turkish Community, was not committed by\n   irresponsible persons, but by members of the Greek Cypriot security\n   forces. According to the mother's statement the Greek police patrol\n   had chased their car and deliberately fired upon it.\"\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2400, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lewallen@cis.ohio-state.edu (stephen richard lewallen)\nSubject: ### 68040 25Mz FOR SALE : ABSOLUTELY NEVER USED ###\nOrganization: The Ohio State University - Computer Science\nLines: 14\nDistribution: usa\nNNTP-Posting-Host: gecko.cis.ohio-state.edu\n\n\nI have a new 25 MHz Motorola 68040 that I am willing to sell if I get\na good enough offer.  It is still in its static free sealed package.\n\nIf I don't get a good enough offer, I will use it to replace my 68LC040.\n\nAny takers?  \n\nSupposedly you can get one of these for $375.  However, at the moment the\ndemand is higher than the supply so I think $400 is a good round number.\nI will pay shipping, of course.\n\nAll offers should be send to lewallen@cis.ohio-state.edu\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2401, "properties": {"category": "rec.sport.baseball", "text": "From: marc@yogi.austin.ibm.com (Marc J. Stephenson)\nSubject: Re: Astros Are Back!!!!!!!!!!!!!!!!!!!\nDistribution: usa\nOrganization: IBM, Austin\nLines: 63\n\nIn article <15APR199311534452@rosie.uh.edu> st1rp@rosie.uh.edu (Schwam, David S.) writes:\n>In article <C5HHwv.CvK@austin.ibm.com>, marc@yogi.austin.ibm.com (Marc J. Stephenson) writes...\n>>  2) Astros relief corps holding together.  If Doug Jones keeps his changeup\n>>     effective and Xavier Hernandez can be effective, then it's passable.\n>>     There's no reasonable left-handed help, and the middle relief is iffy.\n>>     Tom Edens was expected to take over the Joe Boever setup man role, but\n>>     he's been injured, and he was an expansion team acquisition anyway.  \n>>     Houston thought that Boever would demand too much money, so they let him\n>>     go.  Doug Jones can lose his touch - he went from Cleveland's all-star\n>>     closer to the minors in a pretty short span.\n>\n>  From what I understand, Boever and Murphy were considered expendable by the\n                                      ^^^^^^\n>club.  Houston felt that their positions could be filled by a number of\n>players..  Art  Doug Jones is the key to Houston's success.  He must have\n>another great year for Houston to challenge in the NL West. \nNo argument at all with Murphy.  He scared the hell out of me when he came in\nlast year.  On the other hand, the club though enough of Boever to put him into\nan awful lot of games (he may have led the league in appearances - he did at\nleast at some point).  He seemed to be a very viable setup guy - but I guess\nthat's not considered that crucial by the club.  I can just remember two years\nago so well, though...\n...\n>      The unsuspected strength of the lower part of the order has saved the\n>      club so far.  Biggio and Finley just aren't doing their job of getting\n>      on base.  Instead of filling his role as an RBI man, Bagwell has had to\n>      assume Biggio and Finley's job.  Biggio concerns me, since he usually\n>      starts the season very strong.\n\nI'm not that concerned.  Those guys have been relatively consistent over the\nyears and they have no good reasons to decline (no injuries, not old, ...).\nI expect them to come through just fine.  It's those guys that have not\nbeen consistently good that are the worrisome part, even if they are coming\nthrough right now.\n>                                * * * * * *\n>\n>     On a side note, are you at all concerned with the rumors concerning\n>next year's uniform?  There is talk that their road uniform will be\n>(blech..) traditional grey, with the word \"HOUSTON\" written across the\n>chest.  If I'm not mistaken, their home uniforms may totally eliminate\n>the color orange (shiver..).  McLane's favorite color is red, so...\n\nThis sounds like their old road unis.  Pretty dull.  Buttons or pullovers?\nI'll check through my uniform book to see if they've always had some orange.\n\n>     I'm really upset.. the current unforms are dull and the new ones sound\n>horrible.  I'd like to see the uniform of the mid-1980s return.  They\n>may not have been pretty, but Houston had established a long precident of\n>wearing the ugliest uniforms in baseball -- and I liked it.\n\nWell, we'll see.  I've got a Astros pullover shirt with the \"Astros stripes\"\nacross the shoulders and I have trouble making myself wear it in public.  i\ncan see why they might want that to change.  Gee, if they eliminate the\norange, will they reupholster the seats in the Astros stripes section (what\nused to be the gold and yellow levels - I don't know those numbers they use\nnow).\n\nI saw a pinstripe version of an Astros cap and I actually thought it looked \ngood!\n-- \nMarc Stephenson\t           IBM AWS (Advanced Workstations & Systems - Austin,TX)\nDISCLAIMER: The content of this posting is independent of official IBM position.\nINTERNET->marc@austin.ibm.com      VNET: MARC at AUSVMQ        IBM T/L: 678-3189\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2402, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Boston University Physics Department\nLines: 50\n\nIn article <1993Apr10.123858.25059@bradford.ac.uk> L.Newnham@bradford.ac.uk (Leonard Newnham) writes:\n\n>Gregg Jaeger (jaeger@buphy.bu.edu) wrote:\n\n>> Khomenei was a jerk and so were plenty of \n>>British \"leaders\", so what? \n\n>>THE QUR'AN is the basis of judgement. Khomenei was clearly a heretic\n>>by the standards of the Qur'an. End of story.\n\n>Could you be a little more specific as to exactly why Khomanei was a\n>heretic and a jerk as judged by the Koran.  I have no liking for the\n>guy, but as far as I know he has done nothing contrary to the teachings\n>of the Koran, or at least so I'm told by several Iranian research\n>students that I share an office with.\n\n>It is easy and convenient for you to denounce him.  But I have the \n>feeling that your views are not as clear cut and widely accepted as you\n>suggest.\n\nI have made this clear elsewhere but will do so again. Khomeini put a \nprice on the head of someone in another country, this makes him a jerk\nas well as an international outlaw. Khomeini advocates the view that\nthere was a series of twelve Islamic leaders (the Twelve Imams) who\nare free of error or sin. This makes him a heretic. In the Qur'an \nMuhammad is chastised for error directly by God; the Qur'an says that\nMuhammad is the greatest example of proper Islamic behavior; thus\nno muslim is free from error. \n\n\n>As usual there seems to be almost as many Islamic viewpoints as there\n>are Muslims.  \n\nPerhaps it seems so to you, but this is hardly the case. There is\nwidespread agreement about matters of Islam. There certainly are\nmany viewpoints on issues which are not particularly Islamic in\nand of themselves, but this is so for any large group of people\nunder the same name. \n\n>It all comes back to the Koran being so imprecise in its wording.\n\nThe Qur'an is not particularly imprecise in wording, though it is true\nthat several interpretations are possible in the interpretations of\nmany words. However, as an entire text the Qur'an makes its meanings\nprecise enough for intelligent people free from power lust to come\nto agreement about them. \n\n\n\nGregg\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2403, "properties": {"category": "rec.autos", "text": "From: tgardner@athena.mit.edu (Timothy J Gardner)\nSubject: Re: another Taurus SHO question\nOrganization: Massachusetts Institute of Technology\nLines: 13\nNNTP-Posting-Host: m2-225-2.mit.edu\n\nIn article <1993Apr14.064702.26925@reed.edu> rseymour@reed.edu writes:\n\n>The Taurus SHO (for those who can get it straight, it is S-H-O as in Super \n>High Output, not SHO as in show) has a Yamaha 3.0L DOHC (24 valves) SHO V-6. \n\nHaving spoken to technical staff from Ford many times, I can assure you that \ninternally at Ford this car is always called the Taurus \"Show\" or just  \n\"the Show\".  As in long \"o\" sound.  I still refer to it as the \"S-H-O\",\nhowever, because it sounds better to me. I assume many purist fans and owners \nprefer using the Ford lingo.  \n\nTim Gardner\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2404, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@eufrat.nada.kth.se (Jon W\u00e4tte)\nSubject: Re: SE rom\nNntp-Posting-Host: eufrat.nada.kth.se\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 21\n\nIn <1993Apr20.085651.1@mrl.dsto.gov.au> ryanph@mrl.dsto.gov.au writes:\n\n>There is no reason that Apple couldn't release software patches for older\n>computers (there are lots of Mac Pluses, Classics and SEs that have been\n>upgraded to 68020 and 68030 processors which should be perfectly able to deal\n>with Color Quickdraw) - but they wont, and 3rd parties are having a difficult \n\nThere is one reason: market size.\n\nThe market size for color quickdraw for accellerated plusses and\nSEs (which don't go beyond 4 MB anyway) is just too small; the\nextra cost would belike $1,000 and with that money, you can buy a\ncolor classic instead.\n\nCheers,\n\n\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n\n -- I don't fear death, it's dying that scares me.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2405, "properties": {"category": "alt.atheism", "text": "From: guncer@enuxha.eas.asu.edu (Selim Guncer )\nSubject: Re: Islam & Dress Code for women\nOrganization: Arizona State University, Tempe, AZ\nLines: 53\n\nIn article <16BA7103C3.I3150101@dbstu1.rz.tu-bs.de> I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n>In article <1993Apr5.091258.11830@monu6.cc.monash.edu.au>\n>darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n> \n>>(2) Do women have souls in Islam?\n>>\n>>People have said here that some Muslims say that women do not have\n>>souls.  I must admit I have never heard of such a view being held by\n>>Muslims of any era.  I have heard of some Christians of some eras\n>>holding this viewpoint, but not Muslims.  Are you sure you might not be\n>>confusing Christian history with Islamic history?\n>>\n> \n>Yes, it is supposed to have been a predominant view in the Turkish\n>Caliphate.\n> \n\nI am not aware of any \"Turkish Caliphate\" viewpoint on this. Can you\nreference?\n\nHowever, I found a quote due to Imam Ali, whom the Shias follow:\n\n\"Men, never obey your women in any way whatsoever. Never let them give their\nadvice on any matter whatsoever, even those of everyday life. Indeed, allow\nthem freely to give advice on anything and they will fritter away one's\nwealth and disobey the wishes of the owner of this wealth.\n  We see them without religion, when, alone, they are left to their own\ndevices; they are lacking in both pity and virtue when their carnal\ndesires are at stake. It is easy to enjoy them, but they cause great\nanxiety. The most virtious among them are libertines. But the most\ncorrupt are whores. Only those of them whom age has deprived of any\ncharm are untainted by vice. They have three qualities particular to\nmiscreants; they complain of being oppressed, whereas it is they\nwho oppress; they make oaths, whereas they are lying; they pretend\nto refuse men's solicitations, whereas they desire them most ardently.\nLet us beg the help of God to emerge victorious from their evil deeds.\nAnd preserve us in any case from their good ones.\"\n\n(Quote from Mas'ud al-Qanawi, ref. A. Bouhdiba, Sexuality in Islam, \np. 118).\n\nI wouldn't consider this quote as being exemplary of the Islamic (TM)\nviewpoint though.  For all we know, the prophet's cousin and\nthe Fourth Khalif Hazret-i Ali may have said this after a frustrating \nnight with a woman.\n\nSelim Guncer\n\n--\nSelim E. Guncer               | Jaca negra, luna grande,\nCSSER-ASU                     | y aceitunas en mi alforja.\n(602)-965-4096                | Aunque sepa los caminos\nguncer@enuxha.eas.asu.edu     | yo nunca llegare a Cordoba.. (FGL)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2406, "properties": {"category": "rec.autos", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Re: New Alarm Proposal\nOrganization: Lehigh University\nLines: 22\n\nIn article <1993Apr14.190652.19777@slcs.slb.com>, dcd@se.houston.geoquest.slb.co\nm (Dan Day) writes:\n>In article <1qeee6$o7s@armory.centerline.com> jimf@centerline.com (Jim Frost) w\nrites:\n>>\n>>An audible alarm is just an annoyance -- to either a professional or\n>>amateur.  NOBODY LISTENS TO AUDIBLE ALARMS ANYMORE.  The thieves know\n>\n>This is why I think there ought to be a heavy fine on false alarms.\n>I'm really honked off about the fact that due to all the\n>cars with cruddy alarms crying \"wolf\", no one will pay any attention\n>to my car if its alarm ever goes off for real.\n>\n> Depends on your area, in the city, nobody thinks about it...but at a mall or\nsomething near the suburbs, people do at least glance over.  Remember, an\nalarm is only a deterent, not a prevention.  If a thief sees two cars he\n\"likes\", one has an alarm and the other doesn't, he's obviously going to skip\nthe alarmed car and avoid the hassle.  There is a way around every alarm, but\nat least you've got SOMETHING on your side.....\n                                                            Rob Fusi\n                                                            rwf2@lehigh.edu\n-- \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2407, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hulthage@morue.usc.edu (Ingemar Hulthage)\nSubject: Dead mouse ?\nOrganization: University of Southern California, Los Angeles, CA\nLines: 11\nDistribution: usa\nNNTP-Posting-Host: morue.usc.edu\n\n\nMy MacClassic mouse died.  I dissected it and determined that it is\nthe microswitch, that senses the click, that is stuck in the depressed\nmode.  This tragedy prompts the following questions:\n\n1.\tIs it easy to find a microswitch that I could solder into the\n\tplace of the old switch ?\n\n2.\tI have old mice (Max+, Mac 512Ke), can they be used with some\n\tadapter ?\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2408, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jmeyers@ecst.csuchico.edu (Jeff Meyers)\nSubject: Re: Procomm Plus for windows problems....\nOrganization: California State University, Chico\nLines: 20\nNNTP-Posting-Host: psycho.ecst.csuchico.edu\n\nIn article <1qkqrhINNobc@matt.ksu.ksu.edu> kentiler@matt.ksu.ksu.edu (Kent P. Iler) writes:\n.\n.\n>I have a friend who connects to the mainframe and unix machines here\n>using it, but the screen seems to have a problem keeping up with the\n>modem....he has a 14,400 modem on a 486 50 Mhz machine.\n\nTell him he probably needs to upgrade to a faster video card!  My 9600 baud\nmodem was one of the reasons I sought out the Diamond Speedstar 24X. I get\nabout 7 million WinMarks on my 386-25 and it just about keeps up with the\nmodem speed (using procomm plus for windows, too).  He should get over\n10 million on his machine with the same card.  Anything 10+ should yield\nacceptable speed...\n\n\n-- \n============================================================================\n| Jeff Meyers      |  jmeyers@ecst.csuchico.edu      | 39x43'N  121x48'W   |\n| Chico, Ca 95926  |  KD6DIS@KE6LW.#NOCAL.CA.USA.NA  | Grid: CN80-CM99 ??  |\n============================================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2409, "properties": {"category": "comp.graphics", "text": "From: crussell@netcom.com (Chris Russell)\nSubject: Re: TIFF: philosophical significance of 42 (SILLY)\nOrganization: Adaptive Solutions, Custom Software & Support  909/861-4048\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 40\n\nMark Wilson (mark@ocsmd.ocs.com) wrote:\n: Mark A. Cartwright (markc@emx.utexas.edu) wrote:\n: : 42 is 101010 binary, and who would forget that its the\n: : answer to the Question of \"Life, the Universe, and Everything else.\"\n: : Of course the Question has not yet been discovered...\n: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n: But it WAS discovered (sort of).  The question was \"What is 7 times 8?\"\n\n[ Read on and there's a special prize at the bottom.  Amaze your friends\nand gain respect from your peers that you can carry on so long about the\nnumber 42. ]\n\nThe original question was \"What is the meaning of Life, the Universe, and\nand Everything.\"  The answer generated by Deep Thought (the 2nd largest\ncomputer ever created) was 42.  Deep Thought realized that to understand\nthe answer, one must really know what the question is.  Unfortunately, he\ndidn't.  But he was able to help build the largest computer (named Earth)\nwhich could figure out the real question.  (I know this is background\nknowledge for everyone here... just bear with me a sec... :)\n\nWhen Arthur pulled the scrabble tiles out of the bag, he spelled out\n\"What is nine times six?\" (or the like).  However, it is not clear that\nthe monkey-man had the right question in his brain, especially since it\nwas that lady in the diner (which was vaporized moments later) that came\nup with the answer to how everyone could get along.  On the other hand,\nMarvin said he saw the answer in Dent's brain, so lets presume it's \ncorrect.\n\nWell, NINE TIMES SIX ***IS*** FORTY-TWO!!!  ...in base 13.\n\nChew on that for awhile... :)\n\n--\nChris Russell            Custom software, networks, CASE tools, and consulting\nAdaptive Solutions       Sun SPARC, SGI IRIS, HP Apollo, Macintosh, & PC\n\nInternet:  crussell@netcom.com\nGTE:       909/861-4048\nU.S. Mail: P.O. Box 5424\n           Diamond Bar, CA 91675-7424\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2410, "properties": {"category": "comp.windows.x", "text": "From: pannon@bcsfse.ca.boeing.com (Joe Pannon)\nSubject: Re: Motif vs. [Athena, etc.]\nOrganization: BOECOM Project - Boeing Computer Services, Seattle, Wa\nLines: 14\n\nIn article <C5K6ny.AzJ@kirk.bu.oz.au>, bambi@kirk.bu.oz.au (David J. Hughes) writes:\n\n|> Ports of Motif to both 386BSD and Linux are available for a fee of about\n|> $100.  This is cost recovery for the person who bought the rights to\n|> redistribute.  The activity in both the BSD and Linux news groups\n|> pertaining to Motif has been high.\n\n???\nI've heard about that Italian guy distributing Motif binaries for 386BSD,\nbut I haven't heard of anybody doing the same thing for Linux.  ... and\nI do follow the Linux news group pretty closely.  So, have I missed something?  I'd LOVE to get hold of Motif libs for Linux for $100!\n\nRegards,\nJoe Pannon\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2411, "properties": {"category": "rec.autos", "text": "From: n8643084@henson.cc.wwu.edu (owings matthew)\nSubject: Re: Ranger vs. S-10 opinions\nArticle-I.D.: henson.1993Apr15.203313.24290\nOrganization: Western Washington University\nLines: 16\n\nIf your buying a compact pickup do yourself a favor and wait a few months\nfor the 1994 GMC sonoma.  Magazines are saying it is day and night over the\ncurrent truck.  It's georgeous, solid, and fast (200hp Vortec 4.3 V-6).\nShould whip the Ranger in every area too (accept maybe payload).  And always\npick a GMC over a Chevy.  GMC's are always so much better looking.  Man, I \nmiss the Comanche.\n\nMarty and Matt Owings\n'87 250 ninja type rider dudes\n\n\"It's a feeling that we all wanna know\nand it's an obsession to some\nto keep the world in you rearview mirror\nwhile you try to run down the sun\"\n\n\"Wheels\" by Rhestless Heart.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.111+0000", "event": "documents", "entityId": 2412, "properties": {"category": "talk.politics.misc", "text": "From: jason@ab20.larc.nasa.gov (Jason Austin)\nSubject: Re: Top Ten Comments Overheard in the Secret Service Lounge\nOrganization: NASA Langley Research Center, Hampton, VA\nLines: 29\nReply-To: Jason C. Austin <j.c.austin@larc.nasa.gov>\nNNTP-Posting-Host: ab20.larc.nasa.gov\nIn-reply-to: popec@unkaphaed.jpunix.com's message of Tue, 06 Apr 93 02:29:13 GMT\n\nIn article <eZ0J2B3w165w@unkaphaed.jpunix.com> popec@unkaphaed.jpunix.com (William C. Barwell) writes:\n-> croaker@highlite.uucp (Francis A. Ney) writes:\n-> \n-> > Besides which, we don't *want* Clinton assasinated, because that would make h\n-> > a martyr a la JFK.\n-> > \n-> > It's a much better deal to have him end his term of office in disgrace, after\n-> > watching all his liberal democrat friends on his staff run this nation down t\n-> > toilet.\n-> > \n-> > Assuming, of course, that the riots a fortnight from now don't do it for him.\n-> \n-> \n-> He'd have to go a far ways to run things down as bad as Reagan and Bush \n-> did.  We didn't have riots but Bush got dumped out on his spotty Behind.\n-> \n-> \n-> We'll see in 4 years.\n-> \n-> \n-> Pope Charles Slack in our time!\n-> \n-> ?s\n\n\tYou need to stop watching TV and start reading some history.\n--\nJason C. Austin\nj.c.austin@larc.nasa.gov\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2413, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 16\n\nIn article <1993Mar30.030105.26772@omen.UUCP> caf@omen.UUCP (Chuck Forsberg WA7KGX) writes:\n\n>Sometime in the future diet evangelists may get off their \"our\n>diet will work if only the obese would obey it\" mode and do\n>useful research to allow prediction of which types of diet might\n>be useful to a given individual.\n>\n\n\"Diet Evangelist\".  Good term.  Fits Atkins to a \"T\".  \n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2414, "properties": {"category": "sci.crypt", "text": "From: Marc VanHeyningen <mvanheyn@cs.indiana.edu>\nSubject: Re: Clipper chip -- technical details\nOrganization: Computer Science Dept, Indiana University\nLines: 24\n\nThus said djb@silverton.berkeley.edu (D. J. Bernstein):\n>Short summary of what Bellovin says Hellman says the NSA says: There is\n>a global key G, plus one key U_C for each chip C. The user can choose a\n>new session key K_P for each phone call P he makes. Chip C knows three\n>keys: G, its own U_C, and the user's K_P. The government as a whole\n>knows G and every U_C. Apparently a message M is encrypted as\n>E_G(E_{U_C}(K_P),C) , E_{K_P}(M). That's it.\n>\n>The system as described here can't possibly work. What happens when\n>someone plugs the above ciphertext into a receiving chip? To get M\n>the receiving chip needs K_P; to get K_P the receiving chip needs U_C.\n>The only information it can work with is C. If U_C can be computed\n>from C then the system is cryptographically useless and the ``key\n>escrow'' is bullshit. Otherwise how is a message decrypted?\n\nGiven the description of the algorithm given, the only plausible\nexplantion I can find is that K_P must be agreed to out of bandwidth\nin advance by the two parties; i.e. it's a standard shared symmetric\nkey.\n--\nMarc VanHeyningen   mvanheyn@cs.indiana.edu   MIME & RIPEM accepted\nSecurity through Diversion: n. Theory which states that the public\navailability of good computer games is vital to maintaining system\nsafety.  Contrast Security through Obscurity.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2415, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Israeli Terrorism\nArticle-I.D.: das.1993Apr26.184547.20058\nOrganization: Aiken Computation Lab, Harvard University\nLines: 65\n\nIn article <2BDAD779.24910@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n>In article <AMOSS.93Apr25163327@shuldig.cs.huji.ac.il> amoss@shuldig.cs.huji.ac.il (Amos Shapira) writes:\n>>cy779@cleveland.Freenet.Edu (Anas Omran) writes:\n\n>>Eh????  Could you please give me details about an event where a \"Neutral\n>>Observer\" was killed by purpose by an Israeli soldier?\n\n>Actually, I'm still trying to understand the self-justifying rationale\n>behind the recent murder of Ian Feinberg (?) in Gaza.\n\n\tHate to be simple minded about this Tim, but I think its\nreally very simple.  He was a dirty Jew.  And the only good Jew, in\nsome peoples mind, is a dead Jew.  Thats what 40 years of propaganda\nthat fails to discriminate between Jew and Zionist will do.  Thats\nwhat 20 years of statements like the ones I've appended will do to\nsomeones mind.  They make people sick.  They drag down political\ndiscourse to the point where killing your opponent is an honorable way\nto resolve a dispute.\n\n\tWhat else can come of such demagogery?  Peace?\n\nAdam\n\n\nArafat on political pluralism:\n\n\t``Any Palestinian leader who suggests ending the intifada\n\texposes himself to the bullets of his own people and\n\tendangers his life.  The PLO will know how to deal with\n\thim.''\n\t--- Arafat, Kuwaiti News Agency, 1/2/89\n\nArafat on the massacre at Tienamin Square:\n\n\t``...  on behalf of the Arab Palestinian People, their\n        leadership, and myself...  [I] take this opportunity to express\n        extreme gratification that you were able to restore normal order\n        after the recent incidents in People's China.''\n\t--- Arafat in telegram sent to the head of the Chinese Communist Party\n\nYassir Arafat, humanitarian:\n\n       ``Open fire on the new Jewish immigrants ...  be they from the\n       Soviet Union, Ethiopia, or anywhere else.  It would be a disgrace if\n       we did not lift a finger while herds of immigrants settle our\n       territory.  I want you to shoot...  It makes no difference if they\n       live in Jaffa or Jericho.  I give you explicit orders to open fire.\n       Do everything to stop the flow of immigration.''\n\t--- Yassir Arafat, Al Muharar (Lebanese weekly), April 10, 1990\n\nYassir Arafat on genocide:\n\n\t``When the Arabs set off their volcano, there will only be Arabs in\n\tthis part of the world.  Our people will continue to fuel the torch\n\tof the revolution with rivers of blood until the whole of the\n\toccupied homeland is liberated...''\n\t--- Yasser Arafat, AP, 3/12/79\n\n\n\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2416, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Patient-Physician Diplomacy\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 18\n\nIn article <1993Mar29.130824.16629@aoa.aoa.utc.com> carl@aoa.aoa.utc.com (Carl Witthoft) writes:\n\n>What is \"unacceptable\" about this is that hospitals and MDs by law\n>have no choice but to treat you if you show up sick or mangled from\n>an accident.  If you aren't rich and have no insurance, who is going\n>to foot your bills?  Do you actually intend to tell the ambulance\n>\"No, let me die in the gutter because I can't afford the treatment\"??\n\nBy law, they would not be allowed to do that anyhow.\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2417, "properties": {"category": "talk.politics.mideast", "text": "From: bf3833@pyuxe.cc.bellcore.com (feigenbaum,benjamin)\nSubject: Re: Israel's Expansion II\nOrganization: Bellcore, Livingston, NJ\nSummary: Hope Springs Eternal\nLines: 37\n\nIn article <1993Apr20.013037.20907@news.columbia.edu>, pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman) writes:\n> In article <19APR93.22304462.0062@VM1.MCGILL.CA> B8HA@MUSICB.MCGILL.CA (B8HA) writes:\n> >So nice of you all to answer some questions.  And it so nice that most\n> >of you feel that it would be in your hearts to give the Palestinians\n> >some land - most of you focus on the fact that Israel annexed all\n> >this land and it is a kind gesture to give some of it back.  Well,\n> >I hope that after after a state run by Palestinians is established,\n> >the first decision should be to make Jerusalem part of this state -\n> >by annexing it of course.\n> >\n> \n> >Steve\n\nSteve,\n\nIf the Israelis are stupid enough to \"allow\" a second \"Palestinian\"\nstate (the first one is Jordon), then you will probably get your\nwish - and the Israelis would get what's coming to them.\n\nHowever, if the \"Palestinians\" were to somehow demonstrate that \nthey could govern themselves AND live in peace with their \nJewish neighbors, then they would have to give up the idea of\nJerusalem as a part of their state - and you would be disappointed.\n\n\n\n> \n> Israel has not annexed any of the West Bank, just Jeruselum.  Which\n> will remain part of Israel forever!\n> \n>\nYashir Koach to this. \n> \n> \n> \n\nBen.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2418, "properties": {"category": "sci.crypt", "text": "Subject: Re: Organized Lobbying for Cryptography\nFrom: kubo@zariski.harvard.edu (Tal Kubo)\nDistribution: inet\nOrganization: Dept. of Math, Harvard Univ.\nNntp-Posting-Host: zariski.harvard.edu\nLines: 27\n\nIn article <C5uprt.GMq@dcs.ed.ac.uk> pdc@dcs.ed.ac.uk (Paul Crowley) writes:\n>\n>>Perhaps these encryption-only types would defend the digitized porn if it\n>>was posted encrypted?\n>\n>>These issues are not as seperable as you maintain.\n>\n>In fact, since effective encryption makes censorship impossible, they\n>are almost the same issue and they certainly fall into the brief of the\n>EFF.\n\n\nIt also falls within the purview of the ACLU, but that doesn't mean\nthe ACLU (or the EFF) would be the most effective instrument to \n\"win the hearts and minds\" in favor of access to cryptography. \n\nIt's precisely slogans like \"cryptography makes censorship impossible\"\nwhich stand to torpedo any attempt to generate a broad consensus in favor\nof encryption.  It is not true, and in the context of a public debate it\nwould be a dangerous red herring.  Advocates of strong crypto had better\nprepare themselves to answer such charges in pragmatic terms that laypeople\nand politicians can sympathize with. The usual mumblings about\nConstitutional amendments are not enough.\n\n\n\nTal  kubo@math.harvard.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2419, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Accounts of Anti-Armenian Human Rights Violations in Azerbaijan #007\nSummary: Prelude to Current Events in Nagorno-Karabakh\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 821\n\n     Accounts of Anti-Armenian Human Rights Violations in Azerbaijan #007\n                 Prelude to Current Events in Nagorno-Karabakh\n\n\n +--------------------------------------------------------------------------+\n |                                                                          |\n | They grab Papa, carry him into one room, and Mamma and me into another.  |\n | They put Mamma on the bed and start undressing her, beating her legs.    |\n | They start tearing my clothes, right there, in front of Mamma. I don't   |\n | remember where they went, what they did, or how much time passed. I had  |\n | the feeling that they beat me on the head, on my body, and tore my       |\n | clothes, all at the same time, I don't even know what I said. The        |\n | atrocities started. I was savagely raped in that room. They argued among |\n | themselves who would go first.                                           |\n |                                                                          |\n +--------------------------------------------------------------------------+\n\n\nDEPOSITION OF KARINE (KARINA) GRIGOREVNA M. [1]\n\nBorn 1964\nSecretary-Typist\nAzsantekmontazh Trust\nSumgait Construction and Installation Administration\nSecretary of the SMU Komsomol Organization\n\nResident at Building 17/33B, Apartment 15\nMicrodistrict No. 3\nSumgait [Azerbaijan]\n\n\nOn the 27th my sister Marina and I went to the movies the seven o'clock show,\nat the theater that is across from the City Party Committee, about 50 yards \naway. The SK theater. They were showing an Argentinian film, \"The Abyss.\" \nBefore the film we noticed about 60 to 70 people standing near the podium at \nthe City Party Committee, but they were silent, there's no conversation \nwhatsoever, and we couldn't figure out what was going on. That is, we knew it \nwas about Karabagh, but what it was exactly, what they were talking about, if \nsomeone gave a speech or not, we didn't know. We bought our tickets. There \nwere 30 or 40 people in the theater. This was a very small number for that \nlarge movie theater. The film started. About 30 minutes later they stopped the\nfilm. A crowd burst in. About 60 people. They came up onto the stage. Well \nmostly they were young people, from 16 to 23 years old. They demanded that an \nArmenian woman come up onto the stage. They used foul language and said that \nthey were going to show what Azerbaijanis were capable of, what they could do \nto Armenian girls. I thought that's what they meant because they had demanded \na girl specifically. Marina and I were sitting together. I told her to move \nover, there were some Russian girls sitting nearby. So that if someone \nrecognized me or if something happened, they would take me, and not Marina. \nIt got quiet, 2 or 3 girls jumped up to run out, but the door was closed--it's\nonly opened at the end of the   show--and they returned to their seats. \nEveryone in the theater was looking at one another, Russians, Azerbaijanis, \npeople of various nationalities. But no one reacted at all, no one in the \nauditorium made a sound. They were silent, looking at one another, and \ngradually started to leave. Some guy, a really fat one, says, \"OK, we've \nscared them enough, let's leave.\" They leave slowly, pompously. It seemed to \nme that those people were not themselves. Either they had smoked a bunch of \n\"anasha\", or had taken something else, because they all looked beastly, like \nthey were ready to tear anyone apart. Then it was all over, as though nothing \nhad happened at all. The film started up again, it was one of those cheerful \nfilms which should have only brought pleasure, made you happy to be alive. We \ncould barely sit to the end. So it had started at seven it was over by nine, \nand it was dark . . .\n\nMarina and I were walking home, Lenin Street, that's the center of town. Lenin\nStreet was packed, just packed with young people. They were shouting, \nsomething about Karabagh and something about Armenians. We weren't especially \nlistening, because the way we were feeling we didn't know if we were going to \nmake it home or not, and just what had happened anyway? Public transportation \nwasn't running. Incidentally, when we came out of the theater we saw police, \npolicemen standing there. The director of the movie theater was looking at the\ndoors, because when they were leaving they had broken the glass, the doors \nthere are basically all glass. Everything was broken. He stood there grief-\nstricken, but looking as though nothing really big had happened, like some \nnaughty boys had just broken them quite by accident, with a slingshot. Well, \nsince he looked more or less calm I decided that, nothing all that super \nserious had happened. We went out very slowly; we wanted to catch a bus, we \nlive literally one stop away. We didn't want to go on foot, not because it was\ndark, but because something might happen. We flagged down a cab, but the \ndriver didn't want to take us. We told him we live near the bus station, and \nhe said he'd take us to the bus station and not a yard farther. I said, well, \nOK . . .\n\nSo we got into the cab and managed to get there. Something incredible was \nhappening at the bus station. There was a traffic jam. Public transportation \nwas at a standstill and everyone was shouting \"Ka-ra-bagh,\" they're not going \nto give up Karabagh. I go home and tell my family what's going on, and there's\nimmediate panic in the house. Mamma says, what should we do? Like the end had \ncome, they were going to come, kill us, that's it . . . Somehow we managed to \ncheer ourselves up: Nothing that bad could happen. Where are we living anyway,\njust what kind of social order do we have? Somehow we manage to calm Mamma \ndown. And we went to bed. But no one could sleep. Everyone made as though \nnothing had happened.\n\nThat was on Saturday. In short, the day went by. We didn't go anywhere and \ndidn't call our relatives. No one did anything. Because . . . life goes on.\nThat day I realized something was approaching, but what exactly, I couldn't\nguess.\n\nOn the 28th everything was like it was supposed to be, we lived like we always\nhad. There were five of us at home: Mamma, Papa and us, three sisters: Lyuda, \nMarina, and I. My sister Lyuda was in Yerevan at the time. We sat at home and \nno one went out. Later we learned that a demonstration had started that \nmorning. It all started . . . They were smashing up stores. We were sitting at\nhome and didn't know anything about it. Then a girlfriend of mine, Lyuda \nZimogliad, came by at around three o'clock I think. We worked together, we did\nour apprenticeships together, she's a Russian girl. She said that something\nawful was happening in town. I asked, \"Don't they want Armenians? Well what \nare they after, if they're already in that state?\" She says, no, nothing like \nthat, it's just a demonstration, but it's awful to watch it. Somehow, it feels\nlike a war has broken out. Public transportation has been stopped . . . The \ncabs, the buses, well it's just a nightmare.\n\nThen Papa decides to go to the drugstore, my mother was having allergy \nproblems at the time . . . He left the house and our neighbor, Aunt Vera,\nasked him, \"Where are you going? Stop! There are such terrible things going\non in the courtyard; aren't you afraid to go out?\" Papa didn't know what she\nwas talking about. She simply pushed him back into the entryway. He came home \nand told Mamma. Mamma said, \"Well, if Aunt Vera was talking like that it means\nthat something is really going on.\" But we didn't go see her, she's a Russian,\nshe lives across from us. I had to see my friend out. Around five o'clock I \ntell Lyuda, \"Ok, look, it's time for you to go, it's late already, I'll see \nyou out.\" Mamma says, \"You don't need to go, it's too late already, you can \nsee what the situation in town is.\" So we decided to stay home. Dinner was \nready. Mamma says, \"Let her eat with us, then she can go.\" We sat down at the \ntable. But no one was hungry, no one was in the mood, we just put everything \nout on the table to calm ourselves down, and make it appear that we're eating.\nWe turned on the television, and the show \"In Fairy-Tale Land\" was coming on. \nWe cleared the table.\n\nWe hear some noise out in the courtyard. I go out on the balcony, but I can't \nsee what's going on, because the noise is coming from the direction of the bus\nstation, and there is a 9-story building in the way. There is mob of people \n. . . I can't figure out what's happening. They're shouting something, looking\nsomewhere, I can't make out what is going on. I go down to a neighbor, she's \nan Azerbaijani; we've been friends of her family for about 25 years. I go down\nto look from their place. I see people shouting, looking at the 5-and 9-story \nbuildings near the bus station. Just then soldiers set upon them, about 20 \npeople, with clubs. The mob runs off in different directions. I even see \nseveral people from our building. They are looking and laughing . . . I decide\nthat means it's not all that bad if they are laughing: it means they're not \nkilling anyone. But now the crowd suddenly dashes toward the soldiers. One of \nthe soldiers cannot manage to get away, they start stomping on him with their \nfeet, everyone's kicking him . . . I become ill and go home, and explain in \ngeneral terms that horrible things are going on out there . . .  can't speak\n. . . Well, they've probably killed that soldier, the way that crowd is . . .\nIf each of them kicked him just once . . . They took his club away from him\nand started to beat him with it. But it was far away and I couldn't see if he\ngot up and left or not.\n\nI become terrified and go home and say, \"Lyuda, don't go anywhere, stay at our\nplace, because if you go out they could kill you or . . . \" Then the crowd \nruns over closer toward our building and stands at the 12-story building and \nstarts shouting something. We go out onto the balcony. All of our neighbors \nare also out on theirs, too. Everyone is standing, staring. The mob is \nshouting and about 5 minutes later comes running toward our building. As it \nturns out, at the 12-story building the Azerbaijani neighbors went down and \nkept them from coming in. There's only one entryway there, they could stop \nthem.\n\nThey all run up to our building. Mamma immediately starts closing the windows,\nafraid that they might throw stones. They have stones and they break the \nwindows, all of them. There are very many people. We have a large courtyard, \nand it's packed with people. They spill up to the first floor so they don't \ncrush each other. They crawl up on trees, posts, and garages. It's just a huge\ncloud of people. They break and burn the motorcycle of the Armenian Sergey \nSargisian, from our building. We close the windows and immediately hear \ntramping in our entryway. They come up to our fifth floor with a tremendous \ndin and roar. It's incomprehensible. Mamma told me later that they were \nshouting Father's name, \"Grisha, open the door, we've come to kill you!,\" or\nsomething like that. I don't remember that, I was spaced out, kind of. Mamma \nsays, \"Into the bedroom, quickly!\" In the bedroom we have two tall beds, part \nof our dowry; Mamma says, \"Hide there, they probably won't come in there, \nthey'll ask something, say something, and leave.\" She says, \"We'll tell them \nthat we live alone here.\" I can't imagine that my parents will stand out in \nthe hall alone talking with some sort of beasts . . . I go to them and say \nthat I'll stand together with them, I'll talk with them if they come, maybe I \ncan find a common language with them, all the more so if they know me: I speak \nAzerbaijani more or less, and I can find out what they want. I told Marina and\nLyuda to hide under the bed, and my sister Lyuda, I can't remember if I told \nher anything or not.\n\nThen . . . they open the door: it's like they blew on it and it broke and fell\nright into the hall. The crows bursts in and starts to shout: Get out of here,\nleave, vacate the apartment and go back to your Armenia; things like that. I\ntell them, \"What has happened, speak calmly. One of you, tell me, calmly, what\nhas happened.\" In Azerbaijani, they say, \"Get out of the apartment, leave.\" I \nsay, \"OK. Go downstairs. We'll gather everything we need and leave the \napartment.\" I realize that it is senseless to discuss any sort of rights with\nthem, these are animals. They must be stopped. The ones standing in the\ndoorway, the young guys, say, \"There are old people and one girl with them.\nToo bad!\" They take two or three steps back. It seems as though I have\npacified them with our exchange. Then someone in the courtyard shouts, \ncommanding them: \"Don't you understand what you are saying? Kill them?\"\n\nAnd that was it! That was all it took. They grab Papa, carry him into one\nroom, and Mamma and me into another. They put Mamma on the bed and start \nundressing her, beating her legs. They start tearing my clothes, right there, \nin front of Mamma. I don't remember where they went, what they did, or how \nmuch time passed. I had the feeling that they beat me on the head, on my body,\nand tore my clothes, all at the same time, I don't even know what I said. The \natrocities started. I was savagely raped in that room. They argued among \nthemselves who would go first.\n\nLater, I remember, I came to. I don't know if I'm dead or alive. Someone comes\nin, someone tall, I think, clean-shaven, in an Eskimo dogskin coat, balding. \nHe looks around at what's happening. At that instant everything stops. It \nseems to me that he is either their commander or . . . that somehow everything\ndepends on him. He looks and says, \"Well, we're done here.\" They are beating\nMamma on the head. They break up the chairs and beat her with the chair legs \n. . . She loses consciousness, and they decide that she's dead. Papa . . . was\nout cold. They want to throw Lyuda off the balcony, but they can't get the \nwindow open. Apparently the window frames are stuck after the rain and the \nwindows can't be opened. They leave her next to the window. She was thinking \nabout being thrown out the window and passed out. She's not a real strong \nperson anyway . . . He looks at me and sees that I'm saying something, that\nI'm still twitching. Well, I start saying the opposite of what I should be, \nwhich is humbling myself and pleading. I start shouting, cursing . . . they \ndon't get any entreaty out of me. I  already know that I'm dead, why would I \nhumble myself before anyone? And he says that if that's what I think, since my\ntongue is so long . . . maybe he thinks that I still look quite appealing \n. . . In short, he commands that I be taken outside.\n\nI no longer saw or remembered what was happening to Marina and Lyuda, I don't \nknow if they are alive or not. They take me outside. They are dragging me by \nmy arms, by my legs. They are hitting me against the wall, the railings, \nsomething metal . . . While they are carrying me someone is biting me, someone\nelse is pinching me . . .I don't even know. I think, my God, when will death \ncome? If only it were sooner . . . Then . . . they carry me out, throw me near\nthe entryway . . . and start kicking me. I lose consciousness . . . What \nhappened after that, how many people there were, I don't remember.\n \nI come to after a while, I don't remember how long. A neighbor is bringing me \nclothing. I'm entirely covered with blood, she puts a dress on me. I remember \nthat I said the same words over and over again: \"Mamma, what happened, Mamma, \nwhat have they done to us, where are we, whose house are we at?\" I can't make \nsense out of anything. There is a guy standing over me, I sort of know him, he\nserved in Afghanistan, his name is Igor, he brought me indoors. When they all \nwent to the third entryway and killed a person there, Igor gathered his \ncourage, took me into his arms, and brought me to the neighbors', even though \nhe's small-minded, he put himself at risk. Igor Agayev is Azerbaijani; he \nserved in Afghanistan. There are three brothers. The older brother also served\nthere, I think; now he's stationed here, on the border, in Armenia. Igor \nbrought me to the neighbors', and then helped me come to my senses, saying, \n\"Karina, I know you, calm down, I'm not one of them.\" How do I know who's who \nand what's what? I come to, and they clean me up. I was covered in blood. Then\nPapa . . . I saw Papa, I saw Mamma. And Marina, too . . . Igor was there when \nthey dragged Marina and Lyuda out from under the bed . . . Marina . . . Lyuda \nsaid that she was Russian, they said, we'll let you go, we aren't touching the\nRussians, go. And while they are dragging Marina out she decides she's going \nto tell them she's Azerbaijani. Igor immediately grabs Marina's and Lyuda's \nhands, because he knows Marina, and knows that she is Armenian and is our \nsister, and takes her to the second floor to a neighbor's and starts pounding \non the door so she will open up. She opens the door and Igor pushes them in \nthere. So they survived.\n\nMy sister Lyuda lost consciousness after the bandits started stealing things.\nWhile they were going downstairs, taking things downstairs, then coming back \nup again, Lyuda seized the opportunity and crawled under the bed and stayed \nthere. Then, when she was herself again, she found a torn night shirt and put \nit on, and some sort of robe and went to a neighbor's on the fourth floor, the\none whose apartment I had watched the crowd from, the friend of ours, and \nknocked on the door. The neighbor opened and said, \"I'm not going to let you \nin the apartment because I'm afraid of them. But I'll give you some stockings \nand we'll leave the building.\" Lyuda says, \"I'll stay at your place because of\nwhat's going on, they keep going up and down the stairs.\" It was just for a \nmoment, just a moment in life, but the neighbor wouldn't consent. Lyuda came \nback to our place and lay under the bed . . .\n\nI came to. Mother was there. I can't remember my supervisor's telephone \nnumber, but something had to be done. Somehow I remembered and called, and he \ncame to get us. He didn't have any idea what was going on. He thought we were \nsimply afraid, he didn't know that they were killing us and that we had passed\nbetween life and death. He came and got us and took us to the police precinct.\nThere they looked us over. I was having trouble walking, my lungs hurt badly, \nit was hard to breathe . . .\n\nMy supervisor's name is Urshan Feyruzovich Mamedov. He's the head of our \nadministration. They took us there. When we were leaving, I saw a great number\nof buses full of soldiers at the entrance to town. The buses were ordinary \npassenger buses. There were very many soldiers. We left around eleven, right \nafter eleven. If these people could stop what was happening they could save a \ngreat many lives . . . Because the crowd was moving on, toward the school, and\nwhat was going on there . . . I think everyone know not only in Sumgait, not \nonly in Yerevan. Because there they murdered them all one after the next, \nwithout stopping. After us.\n\nI think 14 people died in Microdistrict No. 3, and 10 to 12 of them were from\nBuildings 4, 5, and 6. In our building one person died, and one old woman died\nfrom Building 16, that's the building in front of ours. There young \nAzerbaijani men stopped the mob and wouldn't let it into their building. \nIncidentally, when we were at the neighbors', Marina called our relatives\nto warn them, so they would all know what was happening. I called a aunt in \nMicrodistrict No. 5. They have three neighbors who are Armenians. I said, \"Run\nquickly, I can't explain what's going on; hide, do what you can, just stay\nalive. Hide at Azerbaijanis', ones who won't give you away.\" At that moment \nthree people came in, policemen. I think they were Azerbaijanis. I was in such\nawful condition, my face was completely distorted my lips were puffed up, \nthere was blood, my eye was swollen, no one thought I would ever see anything \nout of that eye again . . . my forehead was badly cut, and one-half of my face\nwas pushed out forward. No one would have thought that I would survive, get my\nnormal appearance back, and be able to grasp anything at all. I started to \nscream at those people, why did you come, who sent you here, no one wants you \nhere, haven't you killed people people yet, what are you doing here? One of \nthe soldiers said, \"Don't scream at us. We're Muslims, but we're not from the \nSumgait police. They called in from Daghestan.\" So at that point the \nDaghestan police were there.\n\nWhen we got to the police precinct there were an awful lot of police there,\nthere were soldiers, police with dogs, ambulances, firemen . . . I don't know,\nmaybe they were waiting for people to bring them the goners and the seriously \ninjured to treat them there in the police precinct. I don't know what they \nwere there for. There were also doctors from Baku there. They examined Lyuda \nand me and said, \"These women need to go to the Maternity Home, but we don't \nknow what to do with the rest.\"\n\nSo they took us, and I lost contact with my parents, my boss, everyone. My \nboss said, \"Don't worry, I'll find you, no matter where you are, no matter\nwhat happens.\" We went to the hospital. There we were examined by a department\nhead from the Sumgait Maternity Home, Pashayeva, I think her name was. She \nexamined us. The ambulance was from Baku; I figured out that the Sumgait \nambulances hadn't done anything, they didn't respond to any calls. People \ncalled and neither the police nor the ambulances showed any sign of life.\n\nThat doctor looked me over and I could tell from her behavior that something\nvery good had happened, for she became quite glad. I even thought to myself, \n\"God, can it be that nothing all that bad is wrong?\" She looks me over and \nsays, \"Now why are you suffering so? You don't know what your people have been\ndoing, your people did even worse things.\" And I think, great, I have to deal \nwith her . . . And I felt so bad, I thought, why don't I just die so as not to\nhave to hear more stuff like this from people like her? Here I am in this \ncondition and being told about something that our people did. I just didn't \nhave the energy to say, \"How could our people possibly be smart enough to \nthink of something that yours haven't already done?\" I stayed there. Then they\nbrought in another woman, Ira B., she was married, and she was raped in her \nown apartment, too. There were three of us, Ira, Lyuda, and 1. The next \nmorning they took Lyuda and Ira away. They didn't do anything to help us. This\nwas in the old Maternity Home, in the combined block. They didn't do anything \nmore than examine me, that was it. I didn't want any shots or tranquilizer, \nnothing. What shots could have calmed me down? I didn't even want to look at \nthem.\n\nI lay in the ward. Either it just worked out that way or they did it on pur-\npose, but I was alone. I was alone even though the wards were packed. That\nsame evening a woman came by and asked me what was wrong with me, that my face\nwas disfigured. She asked what had happened to me, and I said, \"Better to ask \nyour brother what happened, there's no point in asking me, your brother can \nbetter explain what happened.\" She fell into a faint. All the doctors threw \nthemselves at her, and the doctor categorically forbade anyone to come into my\nward.\n\nThen people from work came to see me, my boss, his daughter; they brought me \nclothing, because I was literally naked. The only thing I had on was a dress, \nbut the woman who gave it to me was very short, and the dress was way up \nabove my knees, and the woman orderly said, \"I can't believe you put on such a\nshort dress, who are you showing off your legs to here?\" I went back to my \nward thinking, just one more thing from something. People from work came and \nbrought me something in a sack, apples, I think, three or four pounds, but I \ncouldn't take them. I had become so weak that it was just embarrassing. I said\nthat I couldn't take the apples, and really didn't have any appetite. No one \nhad to bring me anything. Some woman took the sack . . . And, oh yes! . . . \nThen I heard that the head doctor tell a nurse that my medical history should \nbe hidden or torn up completely so that no one would know that I was an \nArmenian, maybe they wouldn't figure it out from looking at me. So they must \nhave been thinking that there would be some kind of attack, that something \nelse would happen. That it would be worse. Or, perhaps, someone was outside on\nthe street, I don't know. In any case, I didn't sleep a wink that night.\n\nThe next morning they picked me up, a whole police detail, put me in a bus, \nand off we went. I didn't even know where they were taking me. They took me to\nthe club where the troops were, the very one I was in that ill-fated evening.\nI got off the bus. Near the City Party Committee there were a great many \ntroops, tanks, armored personnel carriers; the whole scene was terrible. I saw \na few people I knew there, and that calmed me a little. I had already thought \nthat I was the only one left. So there were five or six of us left in Sumgait \nafter that night. I still didn't know what happened to my parents, they didn't \ncome to see me in the hospital, and my boss told me that everything was fine. \nI didn't know whether to believe him or not. Maybe he was just trying to calm \nme down, maybe something happened on the way. Then I went to the club and saw \na lot of people I knew. They all knew one another, they were all kissing each \nother and asking, \"What happened, what went on?\" Two days later they came to \nsee me from work. They were there all the time. Each day they came, showed \ninterest, and were constantly bringing me money. They did everything they \ncould. Of course I'm most thankful to my boss, the only one of my colleagues \nwho didn't lose his presence of mind and who didn't change his opinions, \nneither before, nor after, nor in the heat of the moment, no matter what \nhappened. He constantly took an interest. A sincere interest, from the heart \n. . . Then, about two days later, the secretary of the Party Committee came, \nnot from our Party organization, but from the First Trust, which ours is part \nof, Comrade Kerimov, a very important figure in our town. He made arrangements\nwith the emergency medical personnel to take me away, because if I sat down by\nmyself I couldn't get up or lie down again. There was something wrong with my\nlungs, it was hard to breathe. They examined me there several times, there I \nlay were several doctors, they all thought that . . . that it must just be \nfrom all the blows, I don't know. They didn't diagnose anything in particular.\nWhen I was in the Maternity Home I even asked . . . I made it a point of \ninsisting that they take me to the trauma section because I felt so awful. \nThere was no way something inside wasn't broken, my ribs . . . Well they took \nme there and took x-rays and said that everything was fine. There were \nemergency medical workers on duty in the club. The mother of one of Marina's \nfriends was there. She was the head doctor at the Sumgait Children's Clinic. \nThey had every kind of antifever agent in the world, which was exactly what I\nneeded at that moment, I thought. I said that I was having great difficulty\nbreathing, I couldn't seem to get enough air, something was wrong with me.\nThey put tight bandages around my chest and waist. Later I overheard some\npeople saying that I had been cut all over. I think they just saw me being all\nbandaged up and decided that my breasts and face had been cut . . . But I\nwasn't cut.\n\nThey took us to the Khimik boarding house. We lived there a long time. Soon \nappeared representatives . . . They were agitating. At first people would not \ntalk to them, and drove them off. One of the Armenian women shouted, \"We \ndemand that Seidov come!\" The response was, \"It's Seidov who sent us.\" Seidov \nis the Chairman of the Azerbaijani Council of Ministers. The woman said, \n\"We'll only see Seidov's daughter, have her come here, we'll do the same \nthings to her that they did to our daughters, and then we'll deal with you \nagitators.\" And so on. More of them said, \"Have Seidov himself come.\" This \nwent on day in, day out. The agitators kept coming and coming, this drove us \nout of our wits. Then people gradually started departing for Yerevan because \nthey realized it was senseless to stay. Everything got on our nerves: The \nsmell, the small children. There were children at the SK club, children who \nhad literally just come out of the Maternity Home. What were they doing in a \nclub that didn't even have running water all the time? At first we had to pay \nto eat there. They even overcharged us, as it turned out. On the second day \nsomeone told us that they would bring us food for free. The children were ill.\nEverything stank there. Well imagine about 3,000 people in a small movie \ntheater with seating for no more than 500. You couldn't sit or lie down, it \nwas impossible to even move. The stench was awful. Even the smallest infants \ntook ill overnight there. I heard that they were arriving seriously ill in \nYerevan, the infants. They have to be washed, they have to be bathed, not to \nmention that we, the adults, were ill and needed care. People were fainting \nright and left. I just don't know, everyone was crying, everyone . . . Only \nthe young people, the men, somehow managed to keep it together. But the women \nwere in a constant state of panic. It seemed to everyone that they would come \nany minute and kill and stab. It seemed clear that we had been gathered \ntogether purposely, like during the war, so that they could burn the movie \ntheater and there wouldn't be a single Armenian left. Then people went up to \nthe attic. I didn't see them, I only heard them, because I was lying down and \ncouldn't get up. I lay right on the stage, we had some room there. Apparently \nthey caught two people with either oil or gas. I think they wanted to burn the\ntheater. Maybe someone saw them, I didn't. I was in no condition to open my \neyes.\n\nEveryone was suspicious of everyone else. They would ask, \"Aren't you an \nAzerbaijani? I think I saw you somewhere, I think you're an Azerbaijani.\" They\nled out all the men and started letting them back in by checking their\npassports, relatives might be covering for each other. Half of the people did\nnot have any documents. There were people who had run out of their homes in \nnothing but a pair of pants and slippers, or wearing just a shirt, not like\nthey should have, with their IDs.\n\nSo on the 28th, on Sunday, I think, the police did nothing to help us. On\nMonday everything resumed where it had left off on Block 41A. They didn't \nspare a soul there: not children, not pregnant women, nobody. They killed,\nthey burned, they hacked with axes, just everything possible. They murdered \nthe Melkumian family whom I knew, my mother worked with them. Their daughter-\nin-law went to school with my older sister. They were brutally murdered. Only \nthe two daughters-in-law survived. By a miracle one was able to save herself, \nshe ran away, the neighbors wouldn't take her in, so she ran about the \nbuilding until she found refuge. She was pregnant and had two small children. \nThis all continued on Monday in Block 41A, on the 29th, when the troops were \nalready in the city.\n\nThey murdered people, they overturned automobiles, and they burned entire \nfamilies. They say they didn't even know for sure if the people were Armenians\nor not. I heard that the Lezgins suffered, too. I'm not sure myself, I didn't \nsee any Lezgins who had been injured. They burned cars so it's very difficult \nnow to say exactly who died and who didn't. It was very difficult to identify \nthe corpses, or rather, what remained of the corpses after they were doused in\ngasoline and burned . . . it's all very hard to imagine, of course I heard \nthat many people disappeared without a trace, from the BTZ plant two people, \nincluding a woman who worked the night shift, Aunt Razmella, who also lived in\nMicrodistrict 3.\n\nThey were stopping buses between Baku and Sumgait. In the evening people who \nhad been visiting Baku were returning to Sumgait, and people from Baku were \ngoing home from Sumgait, and there were students, too. They were simply \nsavagely murdered. They were stopping the buses, the drivers immediately did \nwhat they were told because there was just no other way to deal with that \nhoard of brutally minded people. They stopped the buses, dragged the Armenians\nout and killed them on the spot. I didn't see it myself, but I heard that they\nput them all in a pile so as to burn them. Later it was hard to discern from \nthe corpses, well you can't call them corpses, you had to figure out from the \nashes who it was. l heard that two fellows saved two women, one a student, Ira\nG., if I'm not mistaken. She was in the hospital a long time after that, and \nshe still can't figure out who saved her. She was also brutally raped and \nbeaten and thrown onto a pile of corpses. The fellow pulled her out of that \nwhole pile of corpses, put his coat on her, took her into his arms, and \ncarried her to the city. I still can't imagine how he managed to do that.\n\nI heard that from Engels Grigorian. He knows her, apparently. Well a lot of \npeople went to that hospital anyway. She was in the hospital and singing a \nsong in Armenian, and they wrote the words down, and, I think he still has \nthat piece of paper, because he says that a lot of people now have that song, \nthe one she sang in the hospital where she lay in such bad shape. They \ncouldn't find the guy who saved her. He left her in someone's apartment and\ncalled the ambulance, she was in such awful shape that, probably, like me,\nshe couldn't remember anyone's face.\n\nI think that I knew one of the people who broke into our house, maybe I had \ntalked with him once. But I received so many blows everything was just knocked\nout of my head. I can't remember to this day who he was. Then, it seems, I saw\nthe Secretary of the Directorate's Party organization, where Marina works. She\ngoes to school and works, she goes to night school at AZI, and works by day at\nthe Khimzashchita Construction and Installation Administration. I'm the \nSecretary of the Komsomol organization at our administration and often met \nwith the secretaries of Party and Komsomol organizations. We had joint \nmeetings. I know them all, I've even talked with them, and he, I know, is from\nArmenia. An Azerbaijani, but from Armenia. It became obvious that many of \nthose people were Azerbaijanis born in Armenia.\n\nThey took me to various police stations, to the police precinct, and to the\nProcuracy, because the USSR Procuracy got involved in the case, and I iden-\ntified the photographs of people who I could more or less recognize. They\nshowed me the people who were in our apartment, they're working on our\ncase, but I can't even recognize them, although it was proved that they were\nthe ones, they're processing it somehow. They tell me that they know that\nsomeone held me by the arm and someone else held me by the leg when they were \ndragging me. There was someone else in our apartment who did not even touch \nme, he just stole a blanket and an earring or something like that. All these \npeople, all of them, as much as I've heard about them and seen them, they were\nall from Kafan.\n\nThe Secretary of the Party organization is named Najaf, Najaf Rzayev. He was \nthere when everything started. It must have been him because I didn't \nrecognize anyone else in the crowd whom I knew besides him. All the more since\nI told him, \"Listen, you do something, because you know me.\" He turned away \nand went toward the bedroom, where Marina was. Well you couldn't see Marina \nanyway. There was such a noisy confusion of people that you couldn't make out \nanyone. All of it flew right out of my head, and then gradually I became \nmyself again, at the City Party Committee . . . There were military people \nthere. I told them what went on, and they wrote it all down. I told them his \nname. On March 8 the Secretary of our First Trust Party organization, the one \nwe're part of, came to see us, his name is Najaf Rzayev. I tell Mamma, \"If\nhe's here despite the fact that I gave his name, it means that either his \nalibi has been confirmed or, probably, that they think I'm crazy, not \nresponsible for my words.\" He said, \"What did they do to you, how awful, \nmyself, I hid an Armenian family.\" Then after some time goes by he comes back \nagain and says something entirely different: \"I wasn't at home, my family and \nI went to Baku.\" I said, \"Marina, what is he saying? He said something totally\ndifferent before.\" After that I didn't go to see our Procurator, our case is \nbeing handled by a procurator from Voronezh, Fedorov by name. Fedorov told me \nthat Rzayev's case had just gotten to him, and there were so names involved. \nWhat are they doing with Rzayev?\nDid he prove his alibi or not? They just think that since I was hit in the \nhead I can't say anything for sure, whether it was him or not. It will be an \ninsult if he was in our apartment and doesn't have to pay for it, but at the \nsame time\n\nI'm afraid to say I'm a hundred percent sure that it was he. Because no mat-\nter who I name, they tell me, no, you're wrong, he didn't do that, that one\nwasn't there. All the faces have gotten mixed up in my mind. Who did what\nexactly I can't say.                                                     \n\nWhen they took me outside there was a whole crowd there, but I didn't see it, \nbecause I had my eyes closed all the time. It seemed to me that I always got\nit because of my eyes, people were always hassling me, for some reason it \nalways seemed to me that my eyes are responsible. When they were beating my \nface I thought they were trying to put my eyes out. So I had my eyes closed, \nthey took me outside and started to beat me. A young guy, 22, held my arms, he\nworks at the BTZ plant. And right nearby, across the road from us, Block 41, \nis where all this was going on. Right across the road from us. The BTZ \ndormitory is over there, that's where he lives. Now he's in custody, they even\nhave proved, as far as I know, that it was he who killed Shurik Gambarian, the\nclarinet player from the third entryway of our building. One person in our \nbuilding was killed, it was that man.\n\nA guy comes by who shared a room with the guy who was holding me. He saw that\nhe was holding me by the arms and that he was beating me, but he didn't come \nover, he just looked and then went into the dormitory. A while after it was \nall over, people started making announcements in town saying that \ninvestigators had been summoned. That guy went and told them everything. Now \nthey've caught him, everything's been proved. Now, evidently, they've been\nbeating him, I don't know what they're doing with them over there, but he \nhimself said that he was working the night shift at the plant. Some young guy \ncame to the plant and said, \"Everyone who wants to kill Armenians come to the \nbus station on Saturday at ten.\" That was it. He said, the ones who wanted to,\nwent. This was at the BTZ plant, during the night shift, probably, late Friday\nnight. It was at night, they were at the sauna together. And he said, what do \nyou mean, do you understand what you are saying? The others were silent, \nprobably, in their hearts they were thinking, I'm going to go. But they didn't\nsay anything to one another. He said that he thought it important to to go, \nbecause he had heard a lot about what had happened in Kafan, that they had \nkilled their Azerbaijani sisters, their mothers, burned villages, and all of \nthat. That guy was also born in Kafan. That is certain. And Marina says that \nthe Secretary of the Party organization is from Armenia, too.                                                             from\n\nI've participated in the investigation a couple of times. I'm satisfied with\nthem thus far. They summoned us and asked about what happened, and every word \nI said was recorded. I met some guy there . . . By the way, he was an \nArmenian. I said that he was in our apartment, but what he did, I don't know. \nHis last name was Grigorian, Eduard Grigorian. He s from Sumgait, from \nMicrodistrict 1. He was sentenced I think, to five years, not his first time. \nHis mother is Russian. I met with him at the KGB in Baku, at the Azerbaijani \nKGB. They took us there and showed me photographs. There were so many \nphotographs, I think they even photographed those people who were caught at \ncurfew, and I've got them all confused. I say, the face was about like this, \nthe guy in the white coat with the red clasps. But he could take that coat off\nand burn it somewhere, and it would be like looking for a needle in a \nhaystack. Well. This guy, Grigorian, I said, he was in our apartment, but he \nis so light-complected that he looks like a Lezgin. I don't know what he did, \nI can't remember. Maybe he beat me or raped me. But he was in our apartment. \nAt the KGB he started asking me, pleading with me, there's no need for this, \nall this stuff, look me in the eyes, you're like a sister to me. I took a look\nat him and thought, \"My God, Heaven forbid that I should have a brother like \nyou.\" But they were satisfied with my responses, because I said everything \nwithout great certainty. I was there with Mamma. Then Lyuda came in, but when \nshe came in she got sick immediately. She wanted to kill him, she crawled over\nthe table at him. She recognized him. When she came to, Lyuda was lying on the\nbalcony, the mob threw her there and all of them ran into the bedroom. We had \nall kinds of boxes with dishes in them, the dowries for all three sisters. \nThey stole everything in the apartment, leaving only small things. At that \nmoment Lyuda came to and started remembering everything. Well, seeing the \nfaces, hearing the voices . . . Two people were saying they could burn the \napartment. Another says, why burn the apartment when I've got three kids and \nno place to live. So this guy was in temporary housing, he didn't have \nanywhere to live, he was from Sumgait. They were sure that they would get the \napartment. Besides, the neighbors were Azerbaijani. Why should they burn the \napartment, they might burn Azerbaijanis. That's what they said. How did they \nknow there were Azerbaijanis there, if they just picked a place, thinking that\nArmenians lived there? We have a list of the residents for our part of the \nbuilding, our name is in there, but how could they know that Azerbaijanis \nlived on the other side of the wall from us? So they didn't set fire to our \napartment.\n\nI don't know, I was in such bad shape that if all of it had come to a halt \nwhen I was outside, if someone had asked me what was happening, I would\nhave said that a civil war was going on. Well, maybe not civil . . . but\nprobably civil, because when they were beating me I opened my eyes and saw\nthat all the neighbors were standing on their balconies and watching, like at\na free horror film. So a civil war was going on, and only the Armenians were\nbeing fought. If it were a world war or something like that, they would have\nbeen fighting everyone. But they only fought us. Then I met some women from \nour building, some Azerbaijanis. They are crying, they tell me, \"Karina, we \nsaw all of it, how could it happen?\" They're asking me! Well I just don't know\nwhat to call it if a normal girl can stand there and watch what happened to \nme. I think that if it were the other way around either I wouldn't have been \nable to take it, or I would have tried to avert it, like that one Azerbaijani \nwoman did in front of our building. A woman lives there, an awful, dissipated \nwoman, if you can call her a woman, the dissipated life she leads. Two \nArmenian families live there, in her part of the building. She came out on the\nbalcony and saw what was happening to me and started to scream and curse. She \ncame down to the entryway and said, \"You'll come in this entryway over my dead\nbody.\" So not one of them took it in his head to go in that entryway. Some \nfolks were saying that those people were so out of control that they didn't \neven know what they were doing. I don't think that's true. They knew very well\nwhat they were doing if they didn't even lift a hand against that woman. They \ncouldn't have cared less about her, but the fact that she was an Azerbaijani \nstopped them.\n\nThey were just beasts, they had smoked so much. When they came to our place \nthey were all chewing something. I noticed: Everyone who came into the \napartment was chewing something. I think, my God, maybe I just think that? \nMaybe I'm losing my mind? But no, they're all chewing something. Maybe it is \nsome kind of drug, it must be, because . . . At first glance they all seemed \nto be such normal people, young, clean-shaven, looking exactly as if they had \ncome to some sort of celebration. But they were shouting something. They\ndidn't talk, they shouted, as though there were deaf people there. They \nscreamed and screamed: \"Yeah, killing, killing, we're killing the Armenians!\" \nOnly they didn't shout \"kill,\" they shouted \"gurun ermianlary.\" Gurun \nliterally means \"kill,\" or \"destroy.\"\n\nThat's how it was! I'll continue. We hid in a captain's apartment, he's an\nAzerbaijani, his wife is a Tatar. We were sitting in their apartment, their \nkids were out in the yard. Their kids knew a whole lot. This was in our part \nof the building, on the third floor. When Mamma came to and couldn't find\nLyuda she took Papa's hand, this was while the looters were stealing things,\nbut they didn't pay attention because they were stealing things. Apparently\nthey had already ceased killing and switched to stealing. Mamma found the\ncourage to . . .\n\nA boy said to my mother \"Where's the gold?\" Mamma said he must have been 12 \nto 14 years old. He even looked Russian, he was so fair-skinned. But the \nAzerbaijanis from Armenia are fair-skinned. I noticed they were all on the \nfair side. He shouted, they were all smashing things, and he asks Mamma where \nthe gold is. We kept our gold in the wardrobe with our important papers. In a \nlittle black bag, we kept everything in there. Mamma doesn't really like to \nwear gold. She probably never even wore those things from the time they were \nbought for her. They took everything that was lying on the cheval glass. Mamma\nthinks that the gold saved us. Because they threw themselves at the gold, and \nMamma grabbed Papa, who was trying to breathe. They had closed his mouth, \nbound his hands, and put a pillow and a chair on his face . . . They had \nshoved something into his mouth so he would suffocate. Mamma grabbed him and \ntore all that stuff off . . . He had something in his mouth, he was having \ntrouble breathing, his nose was filled with blood. Mamma grabbed him and \nstarted running from the fifth down to the first floor because no one wanted \nto open their doors to them. Mamma said that by accident, completely by \naccident that person opened his door, he was sleeping, and said, half-awake, \n\"What's happened?\" He sees that they are bloody. Mamma said, \"At least go and \nfind out what's happening to my daughters, even if they've burned them or \nmurdered them, at least bring the corpses.\" He went looking for us. At that \nmoment Lyuda was under the bed. She says that after they left it seemed that \nsomeone was calling her name. When he quietly called her she couldn't get out \nfrom under the bed. She wanted to get out and was calling softly. She thought \nshe was shouting, but in fact she was either silent or was only talking to \nherself, it just seemed to her that she was shouting. When she got out from \nunder the bed everyone was gone. And again . . . She thought that she had lost\nher mind. I'll never leave here, never! To hell with it! It just seems that \nway to me, I'll come to eventually. But then, when everything had settled \ndown, stopped, that mall brought Lyuda down, and Igor carried me in from\noutside. Or first I was brought in, then Lyuda, I don't remember what order it\nhappened in.\n\nAnd Mamma said, \"Listen, they're all running around down there, shouting \nsomething or other, and running toward the other building.\" It had more or \nless calmed down where we were. Who's dead, who's alive, we don't know. I \ntried to call my girlfriend. I had basically come to. Mamma says, \"Listen;\nlet's go upstairs, at least get a mattress or something. We don't know how \nlong we'll be here. Maybe they didn't burn everything.\" I don't get it, all\nwomen have that feeling, they want to get something from their homes, maybe \nnot everything was taken? I tell Mamma, \"Mamma, what do you need any of that \nfor? To hell with it! We're alive, forget the rest of it, all of it!\" She\nsays, \"No, let's go get at least something. Maybe we'll leave here, spend the \nnight at someone else's.\" Mamma went upstairs, and their little boy, their son\nAlik, was standing on the lookout. lIe was standing there to see if they were \ncoming. They only managed to run up there and grab something one time. He \nshouts, \"Come back, they're coming!\" They didn't have enough time to get a \nlot, mattresses from one apartment, a blanket from another . . . Mamma got my \nknitting . . . Someone managed to grab our old things, the ones we never wore,\nout of the hall . . . Someone took Father's old coveralls. The neighbor, his \nwife, Mamma and Papa . . . Marina went with them. I was in no condition to \nleave. Neither was Lyuda. We just sat. They ran out and we closed the door and\njust then we hear that the mob is on its way toward our place upstairs, \nthey're dragging something again. They were going toward the other building, \nmaybe over by the school, or . . . There was an unfinished building over\nthere, people said they were going toward the basement or the unfinished \nbuilding, they could gradually carry everything over there. Then things more \nor less calmed down. I tried to call my boss.\n\nLater there was more noise. We were on the third floor, in a one-bedroom\napartment, and a woman lives in the one-bedroom place on the second floor,\nAsya Dallakian. She's an old woman, retired. She wasn't at home, at that\ntime she was usually in the country, she has a married daughter there, and\nher grandson is in the army. She is only very rarely in town; she gets her\nretirement money and the apartment is essentially vacant. They started\npounding on her door and broke it down. She had two or three beds in there, \nsomething like that, she's a 60-to 70-year-old woman who really does not even \nlive there. Probably she had some pots, a couple of metal bed frames and \nmattresses, and a television. When her grandson came she bought a television. \nThey started wrecking everything. I started getting sick again. I think, \"My \nGod, what is going on around here? When will this end?\" We turned off the \nlights and sat. As it turns out the people who weren't afraid, the ones who \nknew what was going on, knew not to turn off the lights. We didn't know, but \nthey didn't come to where we were all the same. They all knew very well that \nhe was a captain. He went out and closed the door, and we sat in his \napartment. His last name was Kasumov. He's an exserviceman, retired, works up \nat the fire station at some plant or other. He went out and stood at his door.\nThey tell him, \"Comrade Captain, don't worry, we won't harm you, you're one of\nus.\" He went upstairs, and they say, \"Aren't you taking anything from this \napartment?\" He says, \"I don't need anything.\" And the women who were standing \nin the yard . . . we have a basement, full of water . . . the women who were \nstanding in the yard saw. Those guys, they left everything they stole on the \nfirst floor and ran upstairs again. The women threw everything they had time \nto into the basement, to save our property. Some things were left: dirty \npillows, two or three other things and a rug. A guy came downstairs, really \nmad, and he says, \"Where's the rug? I just put it right here!\" They tell him, \n\"Some guy came and took it and went off toward the school.\" He ran off in that\ndirection.\n\nOh! I forgot the most important point. When Igor picked me up in his arms, \nthere were women standing there who saw everything that was going on. They \njust didn't tell me about it for a long time. The wife of that military man, \nshe didn't want to kill my spirit, I was already dead enough. Later she told \nme, that after they murdered Uncle Shurik in the third entryway one of them, \nthe ringleader, apparently a young man, said, \"Where's the girl who was here?\"\nAnd he became furious. The woman tells him, \"She came to . . . \" She didn't\nknow what to say: Think something up? Someone carried her off? Then they would\ncomb the whole house and find me and our whole family. So the woman says, \"She\ncame to and went to the basement.\" Now, our basement is full of water. So the \nwhole mob dashes off to the basement to look for me or my corpse. They took \nflashlights; they were up to their waists in water, water which had been \nstanding there for years, and soot, and fuel oil. They climbed down in there \nto get me. Then one of them said, \"There's so much water down there, she \nprobably walked and walked and then passed out and died. She met her death in \nthe basement. That's it, we can leave, no problem!\" I didn't know that, and \nwhen I was told, I felt worse. Two times worse. A lot worse! So they didn't \njust want to pound me flat, something more awful was awaiting me . . .\n\nAfter that we of course didn't want to live in Sumgait any longer. We really \ndidn't want to go back to our apartment. When we moved, I went up there and \nstarted to quiver and shake all over, because I started remembering it all. \nAlthough the neighbors all sobbed, it was all . . . so cheap . . . The people \nwho sat in their apartments and didn't help us at a time like that. I think \nthat they could have helped! I don't think that they were obligated to, but \nthey could have helped us! Because that one woman was able to stop that whole \nbrutal crowd by herself. That means they could have, too. It would have been\nenough foe one man or women to say, What do you think you're doing?\" That's \nall! That would have done it. There were 60 apartments in our building. Not \none person said it! When I was lying on the ground and all those people were \nstanding on their balconies I didn't hear anyone's voice, no one said what are\nyou doing, leave her alone . . . Mamma even told one of the neighbor women \nthat if it had been an Azerbaijani woman in my place they would have dropped a\nbomb if it would have killed even one Armenian. They would have stood up for \none of their own. True, they say that our neighbor from the fourth entryway, \nan old/ sick woman tried to stop the pogrom. The Azerbaijanis have a custom: \nif a woman takes her scarf and throws it on the ground, the men are supposed \nto stop immediately. The old woman from the fourth entryway did that, but they\nstomped her scarf into the ground, pushed her off to the side, and said, \"If\nyou want to go on living, you'll disappear into your apartment.\" So she left.\nThat trick didn't work on them.\n\nEven the neighbors who helped us move told me, OK, fine, calm down, forget \nthat it happened. I said I'd only forget it if I told them right then that it\nhad happened to their daughter--and if that didn't have any effect on them, \nthen I would forget everything, too. Imagine that it happened to your sister. \nAnd no one did anything. Anything.\n\n   April 25, 1988\n   Yerevan\n\n\t\t\t- - - reference - - -\n\n[1] _The Sumgait Tragedy; Pogroms against Armenians in Soviet Azerbaijan,\n    Volume I, Eyewitness Accounts_, edited by Samuel Shahmuradian, forward by\n    Yelena Bonner, 1990, published by Aristide D. Caratzas, NY, pages 93-109\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2420, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bagoly@ludens.elte.hu\nSubject: PC/TCP onpredir with Windows\nOrganization: Eotvos University, Budapest, Hungary\nLines: 14\n\nHello,\n\nWe are having troubles using the PC/TCP onpredir (printer redirection program\nwith lpr support) with the Windows print manager. The onpredir simply waits\nan do only the capture till the end of the Windows session, while after some\nprinter inactivity  it should start the printing.\n Does anybody uses this two programs together?\n\n                                Thanks,\n                                        Zsolt\n*    Zsolt Bagoly    Dept. of Atomic Physics, Eotvos University             *\n*                    Budapest, Hungary                                      *\n* E-mail: zsolt@hercules.elte.hu    (ELTENET)                               *\n*         bagoly@ludens.elte.hu     (ELTENET, Internet)                     *\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2421, "properties": {"category": "sci.med", "text": "From: russ@pmafire.inel.gov (Russ Brown)\nSubject: Re: Altitude adjustment\nOrganization: WINCO\nLines: 22\n\nIn article <4159@mdavcr.mda.ca> vida@mdavcr.mda.ca (Vida Morkunas) writes:\n>I live at sea-level, and am called-upon to travel to high-altitude cities\n>quite frequently, on business.  The cities in question are at 7000 to 9000\n>feet of altitude.  One of them especially is very polluted...\n\nMexico City, Bogota, La Paz?\n>\n>Often I feel faint the first two or three days.  I feel lightheaded, and\n>my heart seems to pound a lot more than at sea-level.  Also, it is very\n>dry in these cities, so I will tend to drink a lot of water, and keep\n>away from dehydrating drinks, such as those containing caffeine or alcohol.\n>\n\n>Thing is, I still have symptoms.  How can I ensure that my short trips there\n>(no, I don't usually have a week to acclimatize) are as comfortable as possible?\n>Is there something else that I could do?\n\nGo three days early.  Preliminary acclimatization takes 3-4 days.  It\ntakes weeks or months for full acclimatization.  Could you be\nexperiencing some jet lag, too?\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2422, "properties": {"category": "rec.sport.hockey", "text": "From: mjr4u@Virginia.EDU (\"Matthew J. Rush\")\nSubject: Re: Octopus in Detroit?\nOrganization: University of Virginia\nLines: 16\n\nd_jaracz@oz.plymouth.edu  writes:\n> In article <93106.092246DLMQC@CUNYVM.BITNET> Harold Zazula <DLMQC@CUNYVM.BITNET> writes:\n> >I was watching the Detroit-Minnesota game last night and thought I saw an\n> >octopus on the ice after Ysebaert scored to tie the game at two. What gives?\n> \n> No no no!!!  It's a squid!  Keep the tradition alive!  (Kinda like the\n> fish at UNH games....)\n> \nActually, the way I understand it, it is an octapus.\nApparently, a number of years ago, a fan threw an octapus on\nthe ice and the announcer said \"Octapi will not occupy the ice\"\nor something like that, and it's happened ever since.  The fans\ncheer those who pick up the dead octapus with their hands, and\nboo those who use a shovel.\n\nMatt at UVA\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2423, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: schewe@fraser.sfu.ca (Tim Schewe)\nSubject: $25.00 Network ???\nSummary: What is it??\nKeywords: network\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 8\n\nI have heard that there is something called a $25.00 Network that allows\ntwo PC's to be networked by joining their serial ports.  Does someone out\nthere know anything about this?  I would greatly appreciate e-mail on this!\n\nThanks!   tschewe@first.etc.bc.ca\n\n:wq\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2424, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun2.ai.uga.edu (Michael Covington)\nSubject: Re: Nature of God (Re: Environmentalism and paganism)\nOrganization: AI Programs, University of Georgia, Athens\nLines: 18\n\nIn article <Apr.13.00.08.44.1993.28424@athos.rutgers.edu> heath@athena.cs.uga.edu (Terrance Heath) writes:\n>\n>\tFortunately, my own personal theology, which will probably not\n>fall into line with a lot others, recognized God as a being both\n>without gender and posessing qualities of both genders, as being both\n>a masculine and feminine force.\n\nThat is not necessarily unorthodox.  When Christians call God 'Father', \nwe are using a metaphor.  The Bible in one place refers to God as being\nlike a mother.  God is neither a father nor a mother in the literal\nsense; God has some of the attributes of both; the father metaphor is\nusually used because (for most people at most times) it is the less\nmisleading of the two possibilities.\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2425, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Re: Clipper chip -- technical details\nOrganization: AT&T Bell Laboratories\nLines: 20\n\nIn article <1667.Apr1821.58.3593@silverton.berkeley.edu>, djb@silverton.berkeley.edu (D. J. Bernstein) writes:\n> Short summary of what Bellovin says Hellman says the NSA says: There is\n> a global key G, plus one key U_C for each chip C. The user can choose a\n> new session key K_P for each phone call P he makes. Chip C knows three\n> keys: G, its own U_C, and the user's K_P. The government as a whole\n> knows G and every U_C. Apparently a message M is encrypted as\n> E_G(E_{U_C}(K_P),C) , E_{K_P}(M). That's it.\n> \n> The system as described here can't possibly work. What happens when\n> someone plugs the above ciphertext into a receiving chip? To get M\n> the receiving chip needs K_P; to get K_P the receiving chip needs U_C.\n> The only information it can work with is C. If U_C can be computed\n> from C then the system is cryptographically useless and the ``key\n> escrow'' is bullshit. Otherwise how is a message decrypted?\n\nVia K_P, of course.  Nothing was said about where K_P comes from.  It's\nthe session key, though, and it's chosen however you usually choose\nsession keys --- exponential key exchange, shared secret, RSA, etc.\nBut however you choose it, the chip will apparently emit the escrow\nheader when you do.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2426, "properties": {"category": "talk.politics.misc", "text": "From: ries@hqrim.sedd.trw.com (Marc Ries)\nSubject: Re: \" Only $17 / Month! \"\nNntp-Posting-Host: hqrim.sedd.trw.com\nOrganization: TRW SEDD\nLines: 25\n\n\n  A Alan Brock 4/14/93 Orange County Register Editorial titled \"A case for\n  repealing the income tax\" got my attention.\n\n  Some quotes:\n\n   \"... a tax on income, because of the flexible definition of that\n   concept, invites the government to snoop into every nook and\n   cranny of our lives. Encouraging people to snoop on one another\n   and report transgressions against the almighty state, which most\n   Americans deplored in Nazi or communist regimes...\" \n\n   \"... Although most Americans paid no income tax at all 50 years ago\n   -- withholding began only during World War II, as a \"temporary\"\n   exigency, and in 1948 the median family federal income tax was $9...\"\n\n   \"Last year the federal government got only 37 percent of its income\n    from income taxes... How long ago was it that the federal government\n    somehow managed to stagger along on 63 percent of its 1992 revenue?\n    ... Would you believe five?...\"\n\n   \"... The income tax has converted a free people into a society of\n    the fearful and the snitches...\"\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2427, "properties": {"category": "rec.autos", "text": "From: yongje@hardy.u.washington.edu (Yong Je Lim)\nSubject: Dealer cheated me with wrong odometer reading. Need help!\nOrganization: University of Washington, Seattle\nLines: 14\nDistribution: usa\nNNTP-Posting-Host: hardy.u.washington.edu\n\nHere is a story.  I bought a car about two weeks ago.  I finally can\nget hold of the previous owner of the car and got all maintanence\nhistory of the car.  In between '91 and '92, the instrument pannel \nof the car has been replaced and the odometer also has been reset\nto zero.  Therefore, the true meter reading is the reading before\nreplacement plus current mileage.  That shows 35000 mile difference\ncomparing to the mileage on the odometer disclosure from.  The \ndealer never told me anything about that important story.\n\nI hope that I can return the car with full refund.  Do u think this\nis possible?  Does anyone have similar experiences?  Any comments\nwill be appreciated.  Thanks.\n\nyongje@u.washington.edu \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2428, "properties": {"category": "talk.religion.misc", "text": "From: ds0007@medtronic.COM (Dale M. Skiba)\nSubject: Re: BIBLICAL CONTRADICTIONS and Archer\nNntp-Posting-Host: bass.pace.medtronic.com\nOrganization: Medtronic, Inc.\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 27\n\nJenny Anderson (jennya@well.sf.ca.us) wrote:\n\n: medtronic.COM (Dale M. Skiba) entirely missed my point in my previous\n: posting, in which I wrote:\n\n: : firmly on the western coast of the Med.  You can bet IUm gonna keep this\n: baby\n\n: >My my my, such double standards.  You neglected to give any primary sources\n: >for your book,  _Encyclopedia of the Bible_.  Are we to expect that source\n: >to be as unbiased as the other sources...  MR. Butler *DID* give at least\n: >one source, you have given none.\n\n: REPLY\n\n: It was a JOKE.  The Readers digest _Encyclopedia of the Bible_ was the most\n: outrageously bogus *authority* I could dredge from my shelves.\n: I was trying to point out that going to some encyclopedia, rather than\n:  original or scholarly sources is a BIG MISTAKE in procedure.  I am glad\n: to note that Butler and DeCesno are arguing about substance now,\n: rather than about arguing.\n\nI guess the joke was on me...  I am so used to seeing bogus stuff\nposted here that I assumed that yours was necessarily the same.\n\n--\nDale Skiba\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2429, "properties": {"category": "rec.motorcycles", "text": "From: egreen@east.sun.com (Ed Green - Pixel Cruncher)\nSubject: Re: Tracing license plates of BDI cagers?\nOrganization: Sun Microsystems, RTP, NC\nLines: 26\nDistribution: world\nReply-To: egreen@east.sun.com\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article 150493174345@17.127.11.85, jamesf@apple.com (Jim Franklin) writes:\n>\n>I can file a complaint about this? And actually have the chance to have\n>something done? How? Who? Where?\n\nA traffic citation is an accusation of having committed a crime.\nThat's why they have to go through the motions of having a trial if you\nwant one, you are still innocent until proven guilty.  Cops are not the\nonly ones who can accuse people of committing crimes, anyone who\nwitnesses a crime can do so.\n\nGo to the Highway Patrol and explain the situation, give them a\ndescription of the car and the license number, and tell them the\nspecific violation of the law which you witnessed and wish to prosecute\n(ie, search the Vehicle Code and have the section number handy).  Fill\nout the ticket and sign it.  It will go through the same system any\nticket a cop writes goes through.  If contested, you will have to\nappear in court to prosecute.  Your word will not carry the same weight\nas a cop's.\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2430, "properties": {"category": "misc.forsale", "text": "From: tripper@cbnewsk.cb.att.com (andrew.r.tripp)\nSubject: Airline Tickets -- O'Hare->Tuscon\nOrganization: AT&T\nDistribution: usa\nKeywords: Tickets - O'Hare->Tucson Round Tripp\nLines: 29\n\n\tTwo Round-Trip Tickets\n\tO'Hare --> Tuscon\n\tAmerican Airlines\n\tGood thru November\n  No Reasonable Offer Refused, But lets start at\n  $750 for both (Paid $925)\n\n\tHopefully someone can use these as I\nhave no use for them, and don't know a  way \nto get my moneys worth without going to\nTuscon again!  `\n\n\tE-Mail only at this time\n\n\t tripper@cbnewsk.cb.att.com\n\n//////////////////////////////////////////////////////////////\n            Now why would AT&T or Butler Services \n        have anything to do with my warped ramblings?!\n\nCrabby-Old-Fart Mechanical/PCB Designer w/buku CAD background,\n       & still working on BSCS is looking for work! \n         Wants to take a shot at ASIC/IC Layout!!\n\n--------------------------------------------------------------\n      A.R.Tripp - a.k.a. tripper@cbnewsk.cb.att.com\n--------------------------------------------------------------\n//////////////////////////////////////////////////////////////\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2431, "properties": {"category": "sci.space", "text": "From: jgreen@trumpet.calpoly.edu (James Thomas Green)\nSubject: What if the USSR had reached the Moon first?\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 25\n\nSuppose the Soviets had managed to get their moon rocket working\nand had made it first.  They could have beaten us if either:\n\n* Their rocket hadn't blown up on the pad thus setting them back,\n\nand/or\n\n* A Saturn V went boom.\n\nIf they had beaten us, I speculate that the US would have gone\nhead and done some landings, but we also would have been more\ndetermined to set up a base (both in Earth Orbit and on the\nMoon).  Whether or not we would be on Mars by now would depend\nupon whether the Soviets tried to go.  Setting up a lunar base\nwould have stretched the budgets of both nations and I think\nthat the military value of a lunar base would outweigh the value\nof going to Mars (at least in the short run).  Thus we would\nhave concentrated on the moon.\n\n\n/~~~(-: James T. Green :-)~~~~(-: jgreen@oboe.calpoly.edu :-)~~~\\ \n| \"I believe that this nation should commit itself to achieving\t| \n| the goal, before this decade is out, of landing a man on the \t|\n| Moon and returning him safely to the Earth.\"    \t\t|\n|                  <John F. Kennedy; May 25, 1961> \t\t|\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2432, "properties": {"category": "alt.atheism", "text": "From: jimh@carson.u.washington.edu (James Hogan)\nSubject: Re: The Inimitable Rushdie\nOrganization: University of Washington, Seattle\nLines: 30\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <115571@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n>In article <2BCC892B.21864@ics.uci.edu> bvickers@ics.uci.edu (Brett J. Vickers) writes:\n>\n>>In article <115290@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n>\n>>>Well, seeing as you are not muslim the sort of fatwa issued by Khomeini\n>>>would not be relevant to you. I can understand your fear of persecution\n>>>and I share it even more than you (being muslim), however Rushdie's\n>>>behavior was not completely excusable.\n\nAs much as I considered some of the (so-called) Islam-related dialogue\nhere a total waste of time, I somehow can't restrain myself in this\ninstance, so, Gregg, try this:\n\n20:52 P.S.T.  I come to my senses and accept the all-knowing\nwisdom and power of the Quran and Allah.  Not only that, but Allah \nhimself drops by to congratulate me on my wise choice. Allah rolls a\nfew bones and we get down.  Then Allah gets out the Crisco, bends \nover, and invites me to take a spin around the block.  Wow.\n\n20:56 P.S.T.  I realize that maybe Allah is looking for more of a \ncommitment than I'm ready for, so I say \"Man, I've got some\nprogramming to do.  Gotta go.  I'll call you.\"\n\n20:59 P.S.T   Thinking it over, I renounce Islam.\n\nBTW, Gregg, Allah said he still thinks of you.\n\nJim\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.112+0000", "event": "documents", "entityId": 2433, "properties": {"category": "rec.autos", "text": "From: smith@ctron.com (Lawrence C Smith)\nSubject: Re: MR2 - noisy engine.\nOrganization: Cabletron Systems, Inc.\nLines: 16\nDistribution: world\nReply-To: smith@ctron.com\nNNTP-Posting-Host: glinda.ctron.com\n\nIn article <Apr21.053718.19765@engr.washington.edu>, eliot@lanmola.engr.washington.edu (eliot) writes:\n\n>if the noise really bugs you, there is nothing else that you can do\n>except to sell it and get a V6.\n\nPerhaps a nice used '88 Pontiac Fiero GT?  2.8 liters.\n\nDoes anyone know if the motor mounts for the 2.8 and the twin-dual-cam 3.4\nliter match?  The 3.4 is supposedly derived from the pushrod 3.1, which was\na punched out 2.8 liter.  Should be a drop-in replacement, eh?  205 horses in\na mid-engine the size of a Fiero?\n\nLarry Smith (smith@ctron.com)  No, I don't speak for Cabletron.  Need you ask?\n-\nLiberty is not the freedom to do whatever we want,\nit is the freedom to do whatever we are able.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2434, "properties": {"category": "sci.electronics", "text": "From: schmidt@auvax1.adelphi.edu\nSubject: Grounding power wiring, was Re: a question about 120VAC outlet wiring\nLines: 163\nNntp-Posting-Host: auvax1\nOrganization: Adelphi University, Garden City NY\n\nThere has been quite a bit of discussion about house wiring and grounding\npractices here.  A few points need to be clarified:\n\nThe Equipment GROUNDING conductor, Green, green with a yellow stripe, bare, or\nthe metal sheath or pipe of SOME wiring methods, is used as a safety ground, to\ncarry fault currents back to the circuit breaker panel, and to limit the\nvoltage on the metal case of utilization equipment or other metal objects.  It\nshould never (except for a few exceptions to be discussed later) carry the\nnormal operating current of a connected load.  Some equipment has filters in\nthe power supply which may cause some slight current flow through the grounding\nconductor.  \n\nMuch communications or audio equipment is sensitive to noise or slight voltages\non the grounding conductor, and may require special wiring of the grounding\nconductors to provide reliable operation  (\"orange\" outlets are often used for\nthis, with insulated grounding conductors wired back to the panel box, and in\nmany cases back to the service.  Anyone installing such a system should read\nboth the section on grounding in the National Electric Code and publications on\ninstalling quiet isolated ground systems.  The code requires the insulated\ngrounding conductors (green wires) to run with the current carrying conductors\nback to the panel box, and, if required, back all the way to the service\nentrance , where it is bonded to the service ground (water pipe or rod)  Many\nof these systems are installed illegally or unsafely, where they do not provide\na safe ground or a quiet ground or either. \n\nThe GROUNDED conductor of a circuit, often called the NEUTRAL, which is\nreferred to in the code as the \"identified\" conductor and is supposed to be\nwhite or natural grey.  This conductor is supposed to be connected to ground in\nmost electrical systems at a single point, generally at the service entrance\npanel.  This connection is through the Main Bonding Jumper.  (In many household\nservice panels, the main bonding jumper is actually a bonding screw which\nattaches the neutral busbar to the case of the panel)  \n\nThe Grounded conductor (neutral) is generally a current carrying conductor.  In\nthe case of a 120 volt circuit it is one of the two conductors completing the\ncircuit from the panel to the load device.  \n\nSince the grounded conductor (neutral) is only connected to the grounding\nconductor (bare or green) at the service entrance, if the load is any distance\nfrom the service and draws any significant current, there will be a small but\nmeasurable voltage between the grounded and grounding conductors at the load,\nunder normal operating conditions.  If you should (incorrectly) connect the\ngrounded (neutral) conductor to the grounding conductor at the load, some of\nthe neutral current will flow instead through the grounding conductor.  Since\nthere will now be current flowing through the grounding conductor, it will also\nno longer be quite at ground potential at the load end.  If the load equipment\nhas a metal case, which is connected to the grounding conductor through the \"U\"\nground plug, the metal case is now also no longer quite at ground potential. \nThe difference (under normal, non short-circuit conditions) may be only a few\ntenths of a volt, but it could also be a volt or two.  This normally does not\npresent a shock hazard.  \n\nHOWEVER, if you let the metal case of the grounded equipment come into contact\nwith an independently grounded object such as a water or gas pipe, a radiator,\na metal air conditioning duct or such, part of the neutral current will try to\nflow through this aalternate ground path.  If the contact is not solid, you\nwill get a significant arc (a low voltage, but possibly moderate current arc)\nUnder the wrong conditions, this arcing could start a fire.  It is possible in\nsome cases that the sneak ground current   could also flow through a wire of\ninadequate size, causing it to overheat.\n\nWith the incorrect non single-point grounding of the neutral, if there is a\nshort circuit from hot to neutral, the high short circuit current which may\nflow will cause a much higher voltage on the grounding conductor, which\nincreases the possibility for shock or fire.  \n\nAlso if you incorrectly multiply connect the neutral and ground, the voltage on\nthe ground system is seen as noise bu computer or audio equipment, often\ncausing malfunction.  I have spent some hours tracking down such shorts in\ntechnical facilities where they were inducing severe hum into equipment.\n\nThe Neutral is usually bonded to the ground at the distribution transformer as\nwell as at the service entrance of each dwelling.  This is done primarily for\nlightning protection, so that induced lightning currents have a short path back\nto ground, and also to assure that the currents drawn by shorts to grounded\nobjects like pipes draw enough current to trip circuit breakers or blow fuses\nquickly.  The bad side of this is that not all the neutral current from the\ndwelling goes through the neutral wire back to the transformer.  Some of it\nflows through the grounding electrode (water pipe, etc.) this may cause\ncorrosion in the pipes and possibly in things like underground fuel oil tanks,\nand it may also cause measurable AC magnetic fields due to the large loop\nbetween the \"hot\" conductors in the service and the neutral current in the\nwater pipe and ground.  There are those who feel these fields may be unhealthy. \n(don't flame ME on this, I'm just telling you where the field comes from, not\nit's health effect, as far as I'm concerned, the jury is still out on this.)\n\nNote that the bonding jumper is only installed at the main panel, NOT at any\nsub distribution panels.  This is one reason why it is illegal to run service\nentrance cable with the sheath used as a neutral to a sub panel, you must have\na seperate insulated conductor for the neutral.  The sheath can be used in this\napplication only as the groundING conductor.  If the neutral is bonded to the\ngrounding conductor in the sub panel, say by forgetting to remove the bonding\nscrew, all the grounding conductors of the loads on that panel will be above\nground, with the possible problems listed above.\n\nThe code makes exceptions for ranges and dryers, as well as feeds from one\nbuilding to another.  In the cases of the range and dryer, the neutral may be\nused as the equipment ground under certain conditions, instead of a seperate\nwire.  Every time the code is revised, these exceptions come up for review. \nThese exceptions were, in fact the first required safety grounds, in the days\nbefore U ground outlets and such.  The appliance manufacturers don't want to\nhave to redesign their ranges and driers, and the contractors don't want to\nhave to run four wire cable (with four fairly heavy, expensive wires) in place\nof three wire to the appliances.  No question it would be safer with seperate\nneutrals to the stove, but the neutral current is low for most burner settings\n(since most current is in the 220 volt \"hots\" except at some low settings, the\nwires are large gauge, and there are few reported cases of injury or damage. \nSo far, the exceptions have survived. In the case of feeds between buildings,\nit's primarily for lightning protection.\n\nPeople doing wiring should be aware what is and what isn't a legal grounding\nconductor.  Obviously, the bare wire in \"romex\" 'with ground' is.  Anywhere\nthere is a green wire installed, such as in a portable cord, that is a good\ngrounding conductor.  The sheath of BX clamped in BX connectors in metal boxes\nis a legal grounding conductor (in the US). (BX has an aluminum band run under\nthe steel sheath to lower the resistance of the sheath.  You can just cut this\naluminum band off at the ends, you don't have to bond it to anything, it does\nits job by touching every turn of the BX sheath.) Conduit or EMT (thinwall\ntubing) is generally a legal grounding conductor, but may require a bonding\nlocknut where it enters a box or panel, particularly for larger pipes.  \n\n\"Greenfield\" (looks like big BX, but you pull your own wires in the empty\nsheath after you run it) is NOT a legal grounding conductor, as it doesn't have\nthe aluminum band to bond it, and the spiral steel has too much resistance and\ninductance.  You have to run a seperate green grounding conductor inside the\ngreenfield.\n\n\"Wiremold\" is also not a legal grounding conductor, as the paint on the boxes\noften prevents good contact, and the \"feed\" to the wiremold extension is often\nfrom a box in the wall that may not be well connected to the first wiremold\nbox.  I have personally discovered cases where the entire run of wiremold and\nthe cases of everything plugged into all the outlets on the run were \"hot\" with\n120 volts (Why do I get a shock every time I touch my computer and the radiator\nhere in the office?) because there was no ground wire in the wiremold and one\nof the outlets had shorted to the edge of the wiremold box.  You must run a\nground wire back in the wiremold from the outlets at least to the first box in\nthe original wiring (conduit, BX, etc.) where you can \"bond\" the wire to the\nbox with a screw, bnding clip, or whatever.\n\nOn another issue, while you should ground the green wire/lug on GCFI outlets\nwhen ever there is a place to ground them, it is legal in the NEC to use them\nwithout a ground if no ground is available.  It is better to have the\nprotection of the Ground fault interrupter than no protection if you don't\ninstall it.  The interrupter doesn't depend on the ground to trip.  It is\ndesirable to connect the ground if available, because if the ground is\nconnected, the interrupter will trip as soon as a faulty device is plugged in,\nwhereas without the ground, it will not trip until someone or something\nprovides a ground path.  For those questioning the legal use of ungrounded\nGCFI's, read in the NEC, 210-7 (d) exception. (This is the 1990 code, my '93\ncode is in the city, but I know the rule hasn't changed.  It might be\nrenumbered though.) \n\nWe have only touched the surface concerning grounding ;-} , there is much more\nto this subject, but most of you have fallen asleep by now.  \n\nJohn\n-- \n*******************************************************************************\nJohn H. Schmidt, P.E.              |Internet: schmidt@auvax1.adelphi.edu\nTechnical Director, WBAU           |Phone--Days     (212)456-4218 \nAdelphi University                 |       Evenings (516)877-6400 \nGarden City, New York 11530        |Fax-------------(212)456-2424\n*******************************************************************************\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2435, "properties": {"category": "rec.autos", "text": "From: wanderer@camelot.bradley.edu (Kevin Murphy)\nSubject: old license plates wanted\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Bradley University\nLines: 18\n\n\n  Hi.. Me and My roomate are going to redecorate the \"living room\" and \nwe thought it would be a cool idea to have a license plate from every \nstate in the US and then from whereever else we could find, like canada,\nMexixo, even some European ones.\n\n  If anyone has any ideas or knows someone that could help us out\nplease let me know....  The more recent, the better, but anything\nwould be nice.\n\n  Either that or if you have an old plate hanging around... (hint hint!)\n\nKev\nwanderer@camelot.bradley.edu\n\nKevin C Murphy\n1312 West Main Street #421\nPeoria IL 61606\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2436, "properties": {"category": "alt.atheism", "text": "From: bcash@crchh410.NoSubdomain.NoDomain (Brian Cash)\nSubject: Re: free moral agency\nNntp-Posting-Host: crchh410\nOrganization: BNR, Inc.\nLines: 24\n\nIn article <house.734841689@helios>, house@helios.usq.EDU.AU (ron house) writes:\n|> marshall@csugrad.cs.vt.edu (Kevin Marshall) writes:\n|> \n|> >healta@saturn.wwc.edu (TAMMY R HEALY) writes:\n|> \n|> >>     you might think \"oh yeah. then why didn't god destroy it in the bud \n|> >>before it got to the point it is now--with millions through the \n|> >>ages suffering along in life?\"\n|> >>      the only answer i know is that satan made the claim that his way was \n|> >>better than God's.  God is allowing satan the chance to prove that his way \n|> >>is better than God's.  we all know what that has brought.     \n|> \n|> >Come on!  God is allowing the wishes of one individual to supercede the\n|> >well-being of billions?  I seriously doubt it.  Having read the Bible\n|> >twice, I never got the impression that God and Satan were working in some\n|> >sort of cooperative arrangement.\n|> \n|> Read the book of Job.\n|> \n\nOh, that was just a bet.\n\n\nBrian /-|-\\  \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2437, "properties": {"category": "talk.politics.misc", "text": "From: kaldis@romulus.rutgers.edu (Theodore A. Kaldis)\nSubject: Re: Supply-Sider Lightbulb Joke\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 16\n\nlip@s1.gov (Loren I. Petrich) writes:\n\n> There was once the following joke:\n\n> How many supply-siders does it take to screw in a light bulb?\n\n> None.  They let the free market do it.\n\nIf the free market places an attractive price on the screwing in of a\nlight bulb, you can bet your bottom dollar that the light bulb will\nmost certainly get screwed in -- and most promptly at that, too.\n-- \n  The views expressed herein are   |  Theodore A. Kaldis\n  my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n  believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n  as this would hold such views??? |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2438, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: himb@iniki.soest.hawaii.edu (Liz Camarra)\nSubject: Re: Which high-performance VLB video card?\nOrganization: School of Ocean and Earth Science and Technology\nLines: 35\n\nIn article <hcbfp4e@zola.esd.sgi.com> blean@rwb.esd.sgi.com (Bob Blean) writes:\n>\n>Someone in this group posted a little while back that they were getting an\n>Orchid V9000 card -- has that card arrived?  What do the benchmarks look\n>like?\n\n  The one I got only does about 4kb/s in text and 320x200 (VGA/MCGA) mode,\nwhich is almost identical to the other W5186 based cards (ATI 68800\ndoes about 6kb/s).  This is weird since the Orchid supposedly should\nbe much faster (and I was told by someone that it can do almost 16 kb/s),\nsince the VGA chip is covered by the Orchid label, I can't really tell\nfor sure if it uses a 5286 chip, but the spec. sheet that comes with\nthe board (no docs!) did say it has 1 meg dram and uses a 5286 chip.\nWinmarks (3.11) is about 4 mil. slower than a Viper (34 vs ~38) using\nstandard palette.\n\n  BTW if anyone is insterested, I'm trying to sell a Diamond Viper (2 megs\nvram) for a friend for $300, email if interested (I'm too broke to\ntake it myself).\n\n>Also, is the AMI P9000-based card real?  What does it use for VGA?  Speed?\n\n  I think it's available in limited quantites.  No idea of what VGA\nchip it uses though.\n\n  Be very careful with OEM P9000 boards though, the Orchid I got\nfor example only has a readme file on disk that serve as \ndocumentation, and conflicts the hell with my VLB controller \ncard (or maybe it's my motherboard, an A.I.R. 486 VLB)\n\n+----------------------------------------------------------------+\nStephen Lau, Elec. Engineering, Univ. of Hawaii\n*Using a friend's account while waiting for my new grad. account*\n+              Death to FM synthesis! Go Gus!                    +\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2439, "properties": {"category": "sci.electronics", "text": "From: rcook@gfx.engga.uwo.ca (Richard Cook)\nSubject: Re: Need to find out number to a phone line\nOrganization: University of Western Ontario, London\nNntp-Posting-Host: server.gfx.engga.uwo.ca\nLines: 23\n\nIn article <20756.2bd16dea@ecs.umass.edu> alee@ecs.umass.edu writes:\n>\n>Greetings!\n>      \n>        Situation:  I have a phone jack mounted on a wall.  I don't\n>                    know the number of the line.  And I don't want\n>                    to call up the operator to place a trace on it.\n>\n>        Question:   Is there a certain device out there that I can\n>                    use to find out the number to the line?\n>        Thanks for any response.\n>                                                    Al\n>\n>  \n\n\nHow about calling someone with the Caller ID service and have them call you back\nwith the number?\n\n-- \n\nRichard Cook    (519) 641-1985     E-mail:  rcook@gfx.engga.uwo.ca\nElect. Eng. FAX\t(519) 661-3488\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2440, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: islamic genocide\nOrganization: Monash University, Melb., Australia.\nLines: 49\n\nIn <2943927496.1.p00261@psilink.com> \"Robert Knowles\" <p00261@psilink.com> writes:\n\n>>DATE:   14 Apr 1993 23:52:11 GMT\n>>FROM:   Frank O'Dwyer <frank@D012S658.uucp>\n>>\n>>In article <1993Apr14.102810.6059@monu6.cc.monash.edu.au> darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n>>\n>>Just borrowing your post, Mr. Rice...\n>>\n>>#In <2943656910.0.p00261@psilink.com> \"Robert Knowles\" <p00261@psilink.com> writes:\n>>#>Are you sure that democracy is the driving force behind\n>>#>the massacres in East Timor?  It is certainly odd that so many of the worlds\n>>#>massacres occur along religious lines, independently of any claims to a\n>>#>democratic form of government.  Are Ireland and Northern Ireland considered\n>>#>democracies?  Would you attribute their problems to democracy even though\n>>#>they are democracies?  Which motivates them more, religion or democracy?\n>>\n>>Mr. Rice was pointing out a fallacy in the assertion that Islam is evil\n>>because some of those who claim to follow it are evil, not asserting that \n>>democracy causes massacres, as I read it.  \n\n>That is right, he was.  And I was pointing out that his use of Indonesians\n>killing the East Timorese as a result of _democracy_ was a bit weak because\n>democracy is not much of a motivation for doing much of anything in Indonesia\n>from what I remember.  East Timor was a former Portguese territory which was\n>forcibly annexed by Indonesia.  Last I heard over 10,000 Indonesians have\n>died trying to keep East Timor a part of Indonesia.  Being a former \n>Portuguese colony, there is a strong Catholic influence in East Timor as I\n>recall.  So it seems a bit odd that yet again we have another war being\n>fought between people who just \"happen\" to have different religions.  Purely\n>coincidental, I guess.  But then the real motivation is to get the vote out\n>and make democracy work in Indonesia.\n\nI pointed out the secession movement in Aceh which has also been\nbrutally dealt with in the past by the Indonesian government.  The\nharshly with all secessionist movements.\nthe evidence, it appears to me that the Indonesian government has dealt\nvery harshly with all secession movements.\n\nI know that the head of the Indonesian armed forces for a very long time\nwas Benny Murdani -- a \"Christian\".  Indonesia has been heavy handed in\nEast Timor for a long time , even when Murdani was head of the armed\nforces.  The people who make up the\nIndonesian government are in general motivated by national interests,\nnot religious ones.\n\n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2441, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ecktons@ucs.byu.edu (Sean Eckton)\nSubject: Re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nKeywords: printer\nArticle-I.D.: byu.~c$\nOrganization: Fine Arts and Communications -- Brigham Young University\nLines: 27\nNntp-Posting-Host: fac-csr.byu.edu\n\n>The deskjet is SLOW.  This is in comparison to the other printers I\n>mentioned.  I have no idea how the bubblejet compares.\n>\n>The interface between Win3.1 and the printer is just dandy, I've not\n>had any problems with it.\n\nI just bought a BJ-200 printer a couple of days ago.  I compared it to the \nsample print of an HP DeskJet 500 and knew that the HP wasn't for me.  The \nBJ-200 is pretty fast and really prints with good quality.  I can compare it \nwith the HP LaserJet IIID PostScript and they look almost identical (\ndepending on the kind of paper).  I don't have problems with the ink not \nbeing dry, it seems to dry VERY fast.  Probably within a second.  Since \nCanon is giving a $50 rebate until the end of May, it is really a good buy.\n\n\n---\nSean Eckton\nComputer Support Representative\nCollege of Fine Arts and Communications\n\nD-406 HFAC\nBrigham Young University\nProvo, UT  84602\n(801)378-3292\n\nhfac_csr@byu.edu\necktons@ucs.byu.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2442, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Go Hezbollah!!\nOrganization: The Department of Redundancy Department\nLines: 17\n\nIn article <C5HIyr.327@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n\n>Brad, You're a very sick son-of-a-bitch.  Wishing for someone's death, even if\n>they are your enemy, is very deranged.  I really have pity for you and those\n>like you.  Did you acquire this philosophy from Islam?\n\n>>Brad Hernlem (hernlem@chess.ncsu.EDU)\n>Ed.\n\nThis is an interesting question to ponder.  Did Brad/Ali's sickness\nmake Ayatollah-style Islam attractive to him or did this new religion \nthat Brad/Ali has formally adopted give him this sickness?\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2443, "properties": {"category": "comp.graphics", "text": "From: kai_h@postoffice.utas.edu.au (Kai Howells)\nSubject: Re: HOT NEW 3D Software\nOrganization: University of Tasmania (Australia)\nLines: 20\n\nIn article <1qflpk$re1@usenet.INS.CWRU.Edu>, mbc@po.CWRU.Edu (Michael B.\nComet) wrote:\n> \n> \n> In a previous article, trb3@Ra.MsState.Edu (Tony R. Boutwell) says:\n> \n> >There is a new product for the (IBM'ers) out there... it is called\n> >IMAGINE and it just started shipping yesterday... I can personally attest that it will blow the doors off of 3D-Studio.  It is made by IMPUlSE, and is in its\n> >\n> \tWell....I don't know about its competing with 3D studio, but\n> it's pretty powerful allright.\n\nYes but a key issue is _SPEED_ how fast is Imagine? And is it as easy to\nuse\nas 3D Studio? Can it just do a render as fast as 3DS if you don't want\nthings like IOR etc.. 3DS can do fine shadows, animated reflection maps,\nanimated bump maps, animated anything maps, and with the IPAS routines \n(Not that I've ever seen them) It can do explosions, top quality\nmorphing, fire, rain, lens flares etc..\nI'm not knocking imagine, I just want to know how it compares with 3DS\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2444, "properties": {"category": "comp.graphics", "text": "From: dfegan@lescsse.jsc.nasa.gov (Doug Egan)\nSubject: Re: Any graphics packages available for AIX ?\nOrganization: LESC\nLines: 20\n\nIn <1993Apr8.122037.19260@sun1x.res.utc.com> mark@sun1x.res.utc.com (MARK STUCKY) writes:\n\n>In <1pr9qnINNiag@tahko.lpr.carel.fi>, \n>   Ari Suutari (ari@tahko.lpr.carel.fi) wrote:\n\n>   > Does anybody know if there are any good 2d-graphics packages\n>   > available for IBM RS/6000 & AIX ? I'm looking for something\n>   > like DEC's GKS or Hewlett-Packards Starbase, both of which\n>   > have reasonably good support for different output devices\n>   > like plotters, terminals, X etc.\n\n   Try graPHIGS from IBM... It is an excellent package! :^)\n\nDoug\n \n--\n Doug Egan                                  \"It's not what you got -\n Lockheed Engineering and Sciences Co.       It's what you give.\"          \n Houston, TX                                                  -Tesla      \n ***** email:  egan@blkbox.com  *****                                    \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2445, "properties": {"category": "sci.electronics", "text": "Subject: PACE MODEM \nFrom: mora@verdi.cineca.it (Stefano Mora)\nDistribution: world\nNntp-Posting-Host: verdi.eng.unipr.it\nLines: 19\n\nHi,\nI've got a PACE MODEM , Series Four 2400s ( made in England by\nPACE Micro Technology ) with a broken power supply .\nSo I'd like to know :\n\n- the voltage and current values of the original \n  power supply PS1001.\n- the pinout of the power supply connector.\n- the pinout of the USER PORT and how to use it.\n\nMany thanks in advance to all the people help me.\nPlease post the reply also to my e-mail..........\n\n+--------------------------------------------------+\n|                                                  |\n|  Sender: Stefano Mora                            |\n|  eMail : mora@verdi.eng.unipr.it                 |\n|                                                  |\n+--------------------------------------------------+\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2446, "properties": {"category": "talk.politics.misc", "text": "From: kaldis@romulus.rutgers.edu (Theodore A. Kaldis)\nSubject: Re: Formal Rebuttal to the Presumption of Jurisdiction\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 13\n\nIn article <1993Apr5.045612.14229@midway.uchicago.edu> thf2@kimbark.uchicago.edu (Ted Frank) writes:\n\n> [...]  You're not breathing clean air provided by government\n> regulations, [...]\n\nIf this doesn't beat all I ever heard!  The above certainly says a\nmouthful about the mindset of Ted Frank, and also of statists\neverywhere.\n-- \n  The views expressed herein are   |  Theodore A. Kaldis\n  my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n  believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n  as this would hold such views??? |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2447, "properties": {"category": "sci.electronics", "text": "From: bill@thd.tv.tek.com (William K. McFadden)\nSubject: Re: Cable TVI interference\nKeywords: catv cable television tvi\nArticle-I.D.: tvnews.1993Apr15.193218.13070\nOrganization: Tektronix TV Products\nLines: 15\n\nIn article <VL812B2w165w@inqmind.bison.mb.ca> jim@inqmind.bison.mb.ca (jim jaworski) writes:\n>What happens when DVC (Digital Videon Compression) is introduced next \n>year and instead of just receiving squiggly lines on 2 or 3 channels \n>we'll be receiving sqigglies on, let's see 3*10 = 30 channels eventually.\n\nSince the digital transmission schemes include error correction and\nconcealment, the performance remains about the same down to a very low\ncarrier-to-noise ratio, below which it degrades very quickly.  Hence,\ndigitally compressed TV is supposed to be less susceptible to interference\nthan amplitude modulated TV.\n\n-- \nBill McFadden    Tektronix, Inc.  P.O. Box 500  MS 58-639  Beaverton, OR  97077\nbill@tv.tv.tek.com, ...!tektronix!tv.tv.tek.com!bill      Phone: (503) 627-6920\nHow can I prove I am not crazy to people who are?\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2448, "properties": {"category": "sci.electronics", "text": "From: peter.m@insane.apana.org.au (Peter Tryndoch)\nSubject: What'S Exactly In A Flour\nLines: 32\n\nAllMartin MccormickWhat's Exactly in a Flour\n\nMM>From: martin@datacomm.ucc.okstate.edu (Martin McCormick)\nMM>Organization: Oklahoma State University, Stillwater, OK\nMM>\tWhat sort of lamp is the little glass bulb found inside the \nstarter?\nMM>It sort of reminds me of a NE2 neon lamp.  Starters appear open when m\nMM>with an Ohm meter so the little lamp is either a neon or has a capacit\nMM>in series with it.\nMM> \nMM>\tI have seen these things all my life, but never read a really good\nMM>description of what is happening inside that little can.\n\nDo you know what a bi-metallic strip is?\nJust in case: it is two strips of different metals bonded together, which \nwhen heated bend to one side (check out the blinker globe in your \nchristmas tree lights).\n\nSo when you turn on the power, this causes the bulb to work like a neon, \nheating up and shorting out, thus providing a loop to power the heaters in \nthe main tube. When the tube fires, insufficient current runs through the \nstarter to keep the heat up and the bi-metalic strip straightens out \n(O/C).\n\nBTW, I too thought that they were nothing more than a small neon, so one \nday when the neon in my sisters digital (flip the metal squares type) \nclock broke (flimsy leads), I replaced it with one from a starter. Well \npowering up made a bit of a mess of the clock!\n\nCheers\nPeter T.   \n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2449, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ren@ccwf.cc.utexas.edu (Ren Hoek)\nSubject: how to number prongs of a chip?\nOrganization: The University of Texas at Austin, Austin TX\nLines: 11\nDistribution: usa\nReply-To: ren@ccwf.cc.utexas.edu (Ren Hoek)\nNNTP-Posting-Host: flubber.cc.utexas.edu\nOriginator: ren@flubber.cc.utexas.edu\n\nHow can one tell which prong of your basic chip is number 20?  I realize there\nis a chunk of the chip missing so that one can orient it correctly.  So \nusing that hole as a guide, how can I count the prongs of the chip to find\n#20?  Please help.\n-- \n  |\\    |\\\n  | \\   | \\       Ren Hoek\n  |  \\  |  \\\n  |   | |  |      internet: ren@ccwf.cc.utexas.edu\n   \\       /\n   _\\ ^  _/       \"It is not I who am crazy...  It is I who am MAD!!!\"\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2450, "properties": {"category": "rec.sport.baseball", "text": "From: addison@leland.Stanford.EDU (Brett Rogers)\nSubject: Re: Defensive Averages 1988-1992 -- Shortstop\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 12\n\nIn article <steph.735027990@pegasus.cs.uiuc.edu> steph@pegasus.cs.uiuc.edu (Dale Stephenson) writes:\n>>Smith, Ozzie           .742  .717  .697  .672  .664   0.701\n>  The Wizard's 1988 is the second highest year ever.  Still very good,\n>but I don't like the way his numbers have declined every year.  In a few\n>years may be a defensive liability.\n\nThat's rich... Ozzie Smith a defensive liability...\n\nBrett Rogers\naddison@leland.stanford.edu\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2451, "properties": {"category": "soc.religion.christian", "text": "From: MNHCC@cunyvm.bitnet (Marty Helgesen)\nSubject: Re: Question about Virgin Mary\nOrganization: City University of New York\nLines: 45\n\nIn article <May.3.05.01.53.1993.9964@athos.rutgers.edu>, a.faris@trl.oz.au (Aziz\nFaris) says:\n>A.Faris\n<<Posting deleted.  The moderator replies:\n>[I think you're talking about the \"assumption of the Blessed Virgin\n>Mary\".  It says that \"The Immaculate Mother of God, the ever Virgin\n>Mary, having completed the course of her earthly life, was assumed\n>body and soul into heavenly glory.\"  This was defined by a Papal\n>statement in 1950, though it had certainly been believed by some\n>before that.  Like the Immaculate Conception, this is primarily a\n>Roman Catholic doctrine, and like it, it has no direct Biblical\n>support.  Note that Catholics do not believe in \"sola scriptura\".\n>That is, they do not believe that the Bible is the only source of\n>Christian knowledge.  Thus the fact that a doctrine has little\n>Biblical support is not necessarily significant to them.  They believe\n>that truth can be passed on through traditions of the Church, and also\n>that it can be revealed to the Church.  I'm not interested in yet\n>another Catholic/Protestant argument, but if any Catholics can tell us\n>the basis for these beliefs, I think it would be appropriate.  --clh]\n\nThat is generally accuate, but contains one serious error.  We Catholics\ndo believe that God's revealed truth that is not explicitly recorded in\nthe Bible can be and is passed on through the Tradition of the Church.\nIt should be noted that the Tradition of the Church, otherwise known as\nSacred Tradition, is not the same as ordinary human traditions.\nHowever, we do not believe that additional truth will be revealed to\nthe Church.  Public revelation, which is the basis of Catholic doctrine,\nended with the death of St. John, the last Apostle.  Nothing new can\nbe added.  Theologians study this revelation and can draw out implications\nthat were not recognized previously, so that the Council of Nicea could\ndefine statements about the theology of the Trinity and the Incarnation\nthat were not explicitly stated in the Bible and had been disputed\nbefore the council, but there was no new revelation at Nicea or at\nany subsequent council.\n\nCardinal Newman's _An Essay on the Development of Christian Doctrine_,\nwritten while he was still an Anglican, is an excellent discussion of\nof this point.  It was recently reprinted as a Doubleday Image Books\npaperback with some related shorter works under the title _Conscience,\nConsensus, and the Development of Doctrine_.\n-------\nMarty Helgesen\nBitnet: mnhcc@cunyvm   Internet: mnhcc@cunyvm.cuny.edu\n\n\"What if there were no such thing as a hypothetical situation?\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2452, "properties": {"category": "rec.sport.baseball", "text": "From:  (Steve Tomassi)\nSubject: DAVE KINGMAN FOR THE HALL OF FAME\nNntp-Posting-Host: berkeley-kstar-node.net.yale.edu\nOrganization: Yale Computing Center\nLines: 39\n\n     Hi, baseball fans! So what do you say? Don't you think he deserves it?\nI\n \nmean, heck, if Dave Winfield (ho-hum) is seriously being considered for it,\nas\n\nis Lee Smith (ha), then why don't we give Dave Kingman a chance? Or Darrell\n\nEvans! Yeah, yeah! After the Hall of Fame takes in them, it can take in\nEddie\n\nMurray and Jeff Reardon.\n\n     Well, in any case, I am sick and tired (mostly sick) of everybody\ngiving\n\nHall of Fame consideration to players that are by today's standards,\nmarginal.\n\nHonestly, Ozzie Smith and Robin Yount don't belong there. They're both\n\nshortstops that just hung around for a long time. Big deal.\n\n     Let's be a little more selective, huh? Stop handing out these honors\nso\n\nliberally. Save them for the guys who really deserve it. Face it, if\nsomething\n\nisn't done, there will be little prestige in the Hall of Fame anymore. When\n\ncertain individuals believe that Steve Garvey or Jack Morris are potential\n\ncandidates, the absurdity is apparent. Gee, can these guys even compare to\n\nthe more likely future Hall of Famers like Kirby Puckett or Nolan Ryan?\n\n\n                                 \u00d1 Steve\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2453, "properties": {"category": "rec.autos", "text": "From: kmac@cisco.com (Karl Elvis MacRae)\nSubject: Sport Utility Vehical comparisons? Any Opinions?\nOrganization: Tattooed Love Boys\nLines: 36\nDistribution: world\nNNTP-Posting-Host: glare.cisco.com\n\n\n\n\tI just read articals on this in Road and Track and Car and Driver\n\t(Is that one mag or two? =B^), and I was wondering if people out\n\tthere have any opinions that differed from what these mags have to\n\tsay...\n\n\n\tI'm looking at the following three SUV's; anyone who's driven all\n\tthree have any strong opinions?\n\n\n\tFord Explorer\n\tToyota 4Runner\n\tNissan Pathfinder\n\n\n\tCurrently I'm leaning toward the Toyota, 'cause I've had big success\n\twith Toyota trucks in the past, and 'cause I think it's the best\n\tlooking of the three. But I thought I'd see if anyone has any strong \n\topinions....\n\n\n\n\t\t\tThanks!\n\n\n\t-Karl\n\n\n  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n  Karl Elvis MacRae\tSoftware Release Support\tCisco Systems\n  kmac@cisco.com -or- batman@cisco.com     415-688-8231   DoD# 1999  FJ1200\n  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\t      \"Shovels and rakes and implements of destruction\"\n\t\t\t\t\t\t-Arlo Guthrie\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2454, "properties": {"category": "rec.sport.baseball", "text": "From:  (Sean Garrison)\nSubject: Re: Fenway Gif\nNntp-Posting-Host: berkeley-kstar-node.net.yale.edu\nOrganization: Yale University\nLines: 11\n\nI'd love to see a Shea Stadium gif.\n\n\n                                    -Sean\n\n\n\n*******************************************************************************\n  \"Behind the bag!\"\n            - Vin Scully\n*******************************************************************************\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2455, "properties": {"category": "rec.motorcycles", "text": "From: tony@morgan.demon.co.uk (Tony Kidson)\nSubject: Re: Protective gear \nDistribution: world\nOrganization: The Modem Palace\nReply-To: tony@morgan.demon.co.uk\nX-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)\nLines: 26\n\nIn article <1993Apr5.151323.7183@rd.hydro.on.ca> jlevine@rd.hydro.on.ca writes:\n\n>In article <C4wKFs.BC1@eskimo.com> maven@eskimo.com (Norman Hamer) writes:\n>>Question for the day:\n>>\n>>What protective gear is the most important? I've got a good helmet (shoei\n>>rf200) and a good, thick jacket (leather gold) and a pair of really cheap\n>>leather gloves... What should my next purchase be? Better gloves, boots,\n>>leather pants, what?\n>\n>I would go for the gloves. There's not a whole lot that you can do in life if\n>you have no skin on your hands. \n\nYup! Ruins your sex life!\n\nTony\n\n\n\n+---------------+------------------------------+-------------------------+\n|Tony Kidson    | ** PGP 2.2 Key by request ** |Voice +44 81 466 5127    |\n|Morgan Towers, |  The Cat has had to move now |E-Mail(in order)         |\n|Morgan Road,   |  as I've had to take the top |tony@morgan.demon.co.uk  |\n|Bromley,       |  off of the machine.         |tny@cix.compulink.co.uk  |\n|England BR1 3QE|Honda ST1100 -=<*>=- DoD# 0801|100024.301@compuserve.com|\n+---------------+------------------------------+-------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2456, "properties": {"category": "comp.graphics", "text": "From: gmt@beach.cis.ufl.edu (Gary McTaggart)\nSubject: 3d Animation Studio file format??\nOrganization: Univ. of Florida CIS Dept.\nLines: 7\nDistribution: world\nNNTP-Posting-Host: beach.cis.ufl.edu\n\nIs the \".3ds\" file format for Autodesk's 3D Animation Studio available?\n\nThanks,\nGary\n\n(Please respond by email.  I have a hell of a time keeping up with news!!\n:-) )\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.113+0000", "event": "documents", "entityId": 2457, "properties": {"category": "talk.politics.misc", "text": "From: mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson)\nSubject: Re: Why Is Tax Evasion Not Considered Unpatriotic?\nOrganization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA\nLines: 37\n\nIn <1993Apr2.125134.3780@hemlock.cray.com> rja@mahogany126.cray.com (Ben's dad) writes:\n\n|In article <C4tAuw.Mrz@ncratl.AtlantaGA.NCR.COM>, mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson) writes:\n|> In article <1pasrg$ife@s1.gov> lip@s1.gov (Loren I. Petrich) writes:\n|> \n|> |\tThe title is self-explanatory; Isaac Asimov once pointed out\n|> |that curious fact.\n|> \n|> Are you saying that it should be considered unpatriotic if you do not give\n|> everything you own to the state.\n\n|Are you saying that it should be considered unpatriotic if you do not give\n|your *life* in battle for the state?  The PC (Patrioticly Correct) certainly\n|think so.\n\n|>                                   I thought that kind of system collapsed\n|> when the Soviet Union did.\n\n|No, the pentagon is still standing and collecting names for the draft.\n\n|> If that's not what you meant. At what point does paying more taxes cease\n|> being patriotic?\n\n|Your money or your life.  Which is more important?\n\nNice dodge. I give it a 9.2.\n\nNow to answer your questions. I do not believe that there should be a\ndraft. The armed services should be voluntary. Can you say the same\nabout taxes.\n\nI've answered your question. Would you now answer mine.\n-- \nMob rule isn't any prettier merely because the mob calls itself a government\nIt ain't charity if you are using someone else's money.\nWilson's theory of relativity: If you go back far enough, we're all related.\nMark.Wilson@AtlantaGA.NCR.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2458, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: Clinton Boost in Spy Spending\nArticle-I.D.: qualcom.rdippold.735040094\nOrganization: Qualcomm, Inc., San Diego, CA\nLines: 23\nOriginator: rdippold@qualcom.qualcomm.com\nNntp-Posting-Host: qualcom.qualcomm.com\n\n\nRight on the heels of the Clinton \"registered encryption key\" debacle comes:\n\nsphughes@sfsuvax1.sfsu.edu (Shaun P. Hughes) writes:\n>[From yesterdays S.F. Chronicle]\n\n>\"President Clinton has asked Congress for authority to spend more money\n>on spy agencies, satellites and other intelligence activities in fiscal\n>1994 than it allotted for 1993, congressional and administration\n>officials say. \"\n\n>.... Clinton had promised to slash intelligence spending by $7 billion\n>over four years.\n\n>.... Although the size of the nations' vast intelligence budget remains\n>an official secret, administration and congressional officials disclosed\n>yesterday that it would total about $28 billion if the increase\n>requested by Clinton is approved.\n\nWonder how much of that extra money goes into coming up with\nencryption schemes they can easily crack?\n-- \nThe Theorem Theorem: If if, then then\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2459, "properties": {"category": "comp.graphics", "text": "From: eapu207@orion.oac.uci.edu (John Peter Kondis)\nSubject: Physics lab LOSES a number!!!!\nNntp-Posting-Host: orion.oac.uci.edu\nSummary: I need a pointer address for one of those weird graphics modes.\nKeywords: VGA\nLines: 10\n\nPlease , I need the starting address (pointer) for the beginning \nof the color information (RGB) on VGA mode 68h (that's 68 hex, gee, \nduh!)...\n\nThanks SOOOO much (hugs and kisses) in advance.....\n\n.....John (at UCI)\ne-mail--->  eapu207@orion.oac.uci.edu\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2460, "properties": {"category": "sci.electronics", "text": "From: cab@col.hp.com (Chris Best)\nSubject: Re: Food Dehydrators\nOrganization: your service\nLines: 10\nDistribution: usa\nNNTP-Posting-Host: hpctdkz.col.hp.com\n\n>   Does anybody out there have one of those food dehydrators I've been seeing\n> all over late-night TV recently? I was wondering if they use forced air, heat,\n> or both. If there's heat involved, anybody know what temperature they run at?\n> My wife would like one and I'm not inclined to pay >$100.00 for a box, a fan\n> and a heater. Seems to me you should be able to throw a dehydrator together\n> for just a few bucks. Heck, the technology is only what? 1,000 years old?\n\n----------\n\nYeah, but 1000 years ago, you couldn't buy it from a guy with sprayed-on hair!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2461, "properties": {"category": "rec.sport.hockey", "text": "From: jpc@philabs.philips.com (John P. Curcio)\nSubject: ABC's announcers, ESPN's (lack of) coverage (WAS: Re: Atlanta ...)\nOriginator: jpc@condor\nOrganization: Philips Laboratories, Briarcliff, NY 10510\nLines: 38\n\n\nIn article <1993Apr19.160356.19160@newshub.ists.ca>, dchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n \n|> Ok, here's the solution to your problem.  Move to Canada.  Yesterday I was able\n|> to watch FOUR games...the NJ-PITT at 1:00 on ABC, LA-CAL at 3:00 (CBC), \n|> BUFF-BOS at 7:00 (TSN and FOX), and MON-QUE at 7:30 (CBC).  I think that if\n|> each series goes its max I could be watching hockey playoffs for 40-some odd\n|> consecutive nights (I haven't counted so that's a pure guess).\n\nThe worst thing is that this is exactly what I did last year.  I had the Rangers\non MSG, and the two different games on SCNY and SCA on at the same time.  Yes,\nI'd rather have SC cover it, just for the amount of coverage.\n\n \n|> Btw, those ABC commentaters were great!  I was quite impressed; they seemed\n|> to know that their audience wasn't likely to be well-schooled in hockey lore\n|> and they did an excellent job.  They were quite impartial also, IMO.\n\nI think Thorne earns his money.  The best part is that he is the same way when \nhe is earning his $$ from SportsChannel as the Devils announcer (i.e.,\nunbiased).  He goes orgasmic for goals, despite which team scores, and even more \nexcited (if possible) for great saves.  He did a good job of explaining certain \nthings to non-hockey types without offending those of us who follow the sport\n(unlike NBC's clowns for the ASG).\n\n-JPC\n\n(Ob. Playoff-time flame-bait)\n\n      Don't any of you Pittsburgh fans tell me how Mike Lang(e) is better. \n      Maybe if he were a little spontaneous, rather than reading rehearsed\n      lines of B.S having nothing to do with hockey he would be better.\n\n-- \n-------------------------------------------------------------------------------\nJohn P. Curcio \t\t          Go Bruins!\t\t   Philips Laboratories\njpc@philabs.philips.com \t\t\t           345 Scarborough Road\n(914) 945-6442               \t \t\t     Briarcliff Manor, NY 10510 \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2462, "properties": {"category": "rec.motorcycles", "text": "From: kirjy@strix.udac.uu.se (Jonathan Yuen)\nSubject: Re: European M/C Insurance\nOrganization: Uppsala University\nLines: 5\nNNTP-Posting-Host: strix.udac.uu.se\n\nI moved to Sweden and I have to take all the tests again (written and\nroad) even though I had a valid US license for 12 some years...\nOf course I became a resident, and could drive on my US license until\nI became resident.  Don't know about Italy, it's different in the EEC.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2463, "properties": {"category": "misc.forsale", "text": "From: casu@magnus.acs.ohio-state.edu (Ching Tzu Andrea Su)\nSubject: Software Unlimited?\nArticle-I.D.: magnus.1993Apr6.195910.20328\nOrganization: The Ohio State University\nLines: 12\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\n\n\nSorry to waste the bandwidth. Does anyone know a software mail order company \ncalled \"Software Unlimited\"? I ordered a software from them and they charged my\ncredit card but never did send the package to me.\n\nI call them many times but nobody answer the phone. I also check Computer\nShoppers and found they don't advertise anymore. If you know if they are still\nin business or you know how to contact them, please tell me.\n\nThank you very much.\n\nChing-Tze Su\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2464, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: An Open Letter to Mr. Clinton\nOrganization: Totally Unorganized\nLines: 48\n\nIn article <bontchev.735226256@fbihh> bontchev@fbihh.informatik.uni-hamburg.de writes:\n<strnlght@netcom.com (David Sternlight) writes:\n<\n<> Here's a simple way to convert the Clipper proposal to an unexceptionable\n<> one: Make it voluntary.\n<\n<As usually, you are not reading. The proposal -does- say that it is a\n<\"voluntary program\". This doesn't make it more desirable, though...\n<\n<> That is--you get high quality secure NSA classified technology if you agree\n<> to escrow your key. Otherwise you are on your own.\n<\n<\"Secure\"? How do you know? Because NSA is trying to make you believe it?\n<\"Trust us.\" Yeah, right.\n<\n<\"Otherwise you are on your own\"? How do you know that tomorrow they\n<will not outlaw encrypring devices that don't use \"their\" technology?\n<Because they are promising you? Gee, they are not doing even that -\n<read the proposal again.\n\nOne minor nitpick:  It is not a proposal.  It is a *DECISION* ... from their\npoint of view it is a DONE DEAL.  The chips are being manufactured, it\nobviously has been budgeted, the whole thing.  THAT IS WHAT IS SO UPSETTING.\nTHIS WAS ALL DONE IN SECRET.  Because they DIDN'T want the people to know\nwhat was going on until it is too late.\n\nOtherwise, I agree with you 100 percent.\n\nHow come it always takes someone who has lived under the Eastern Bloc to\nremind us about how precious and fragile our liberties are?\n\nPlease, keep up the good work.  Hopefully you will wake SOMEONE up...\n\n<\n<Regards,\n<Vesselin\n<-- \n<Vesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\n<Tel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n<< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\n<e-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2465, "properties": {"category": "rec.sport.hockey", "text": "From: dreier@jaffna.berkeley.edu (Roland Dreier)\nSubject: Re: plus minus stat\nOrganization: U.C. Berkeley Math. Department.\nLines: 59\n\t<1qmtd1INNr1l@iskut.ucs.ubc.ca>\nNNTP-Posting-Host: jaffna.berkeley.edu\nIn-reply-to: gibson@nukta.geop.ubc.ca's message of 16 Apr 1993 18:20:17 GMT\n\nIn article <1qmtd1INNr1l@iskut.ucs.ubc.ca> gibson@nukta.geop.ubc.ca (Brad Gibson) writes:\n\n   In article <1993Apr16.160228.24945@sol.UVic.CA> gballent@hudson.UVic.CA writes:\n   >\n   >In article 9088@blue.cis.pitt.edu, jrmst8+@pitt.edu (Joseph R Mcdonald) writes:\n   >\n   >>Jagr has a higher +/-, but Francis has had more points.  And take it from\n   >>an informed observer, Ronnie Francis has had a *much* better season than\n   >>Jaromir Jagr.  This is not to take anything away from Jaro, who had a \n   >>decent year (although it didn't live up to the expectations of some).\n   >\n   >Bowman tended to overplay Francis at times because he is a Bowman-style\n   >player.  He plays hard at all times, doesn't disregard his defensive\n   >responsibilities and is a good leader.  Bowman rewarded him be increasing his\n   >ice time.\n   >\n   >Jagr can be very arrogant and juvenile and display a \"me first\" attitude.\n   >This rubbed Bowman the wrong way and caused him to lose some ice time.\n   >\n   >Throughout the year, Francis consistently recieved more ice time than\n   >Jagr.  Althouhg I have never seen stats on this subject, I am pretty\n   >sure that Jagr had more points per minute played that Francis.  When\n   >you add to that Jagr's better +/- rating, I think it becomes evident\n   >that Jagr had a better season- not that Francis had a bad one.\n   >\n\n     Actually, what I think has become more evident, is that you are determined to\n     flaunt your ignorance at all cost.  Jagr did not have a better season than\n     Francis ... to suggest otherwise is an insult to those with a modicum of\n     hockey knowledge.  Save your almost maniacal devotion to the almighty\n     plus/minus ... it is the most misleading hockey stat available.\n\n     Until the NHL publishes a more useful quantifiable statistic including ice\n     time per game and some measure of its \"quality\" (i.e., is the player put out\n     in key situations like protecting a lead late in the game; is he matched up\n     against the other team's top one or two lines; short-handed, etc), I would\n     much rather see the +/- disappear altogether instead of having its dubious\n     merits trumpeted by those with little understanding of its implications.\n\nThank you for posting this.  As the person who first brought up the\nfact that Jagr has a much higher +/- than Francis, I can assure you\nthat I brought it up as an example of the absurdity of +/-\ncomparisons, even on the same team.  I never, ever thought that anyone\nwould argue that Jagr's higher +/- actually reflected better two-way\nplay.\n\nIn my opinion, Francis's low +/- is purely a result of him being asked\nto play against opponents top scorers at all times; the fact that he\ncan chip in 100 points while neutralizing the other team's top center\nis a testament to how valuable he is, even if his +/- suffers.  On the\nother hand, Jagr, for how big, fast and skilled he is, can't even get\n90 points, no matter how inflated his +/- is.\n\n(By the way, don't get me wrong -- I like Jagr.  He may be a lazy\nfloater, but he turns it on at exactly the right times -- like\novertime of playoff games).\n\n--\nRoland Dreier                                        dreier@math.berkeley.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2466, "properties": {"category": "rec.sport.hockey", "text": "From: apanjabi@guvax.acc.georgetown.edu\nSubject: Re: How to beat Pittsburgh!\nSummary: Take out player\nDistribution: world\nOrganization: Georgetown University\nLines: 42\n\nIn article <AfnKOVK00UhB01RDtJ@andrew.cmu.edu>, Robert Angelo Pleshar <rp16+@andrew.cmu.edu> writes:\n> \t<kfnJYea00Uh_I1VmUs@andrew.cmu.edu>\n> NNTP-Posting-Host: po5.andrew.cmu.edu\n> In-Reply-To: <kfnJYea00Uh_I1VmUs@andrew.cmu.edu>\n> \n> from Anna Matyas:\n>>>Now if we could just clone Chelios's personality and transplant it\n>>>into all of the defensemen on the Islanders, Capitals, and Devils...\n>>> \n>>>Gerald\n>> \n>>In other words, you want to turn them all into assholes so they\n>>will spend lots of time in the penalty box and get lots of\n>>misconducts?\n>> \n>>And this comes from a Chelios fan...\n> \n> Yeah, and also be second in the team in scoring and play about 35\n> minutes a game and play on the power play and kill penalties and be the\n> best defenseman in the league. I'd take a whole team of Chelioses if I\n> could. (That way, when one got a penalty the others could kill it!)\n> \n> Ralph\n\n>HOW TO BEAT PITTSBURGH???\n\n\tI.Mario Lemieux\n\t\tA.Death\n\t\t\t1.Too much Kimo\n\t\t\t2.Slash to skull\n\t\t\t3.Ask the Rangers (Slashing his wrist????)\n\tII.Jaromir Jagr\n\t\tA.Deportation\n\t\t\t1.Send him back to whatever Commie country \n\t\t\t  he's from\n\t\t\t2.Tell him that Bill Clinton is going too\n\tIII.Kevin Stevens\n\t\tA.Fighting\n\t\t\t1.Call Bob Probert\n\t\t\t2.Call Tie Domi\n\t\t\t3.Call my grandmother (She'd kick his ass)\n \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2467, "properties": {"category": "rec.sport.hockey", "text": "From: shah@pitt.edu (Ravindra S Shah)\nSubject: Re: Nords 3 - Habs 2 in O.T. We was robbed!!\nLines: 23\nX-Newsreader: TIN [version 1.1 PL8]\n\nDeepak Chhabra (dchhabra@stpl.ists.ca) wrote:\n\n: Speaking of great players, man-oh-man can Quebec skate.  I haven't seen a\n: team so potent on the rush in a long time.  Watching them break out of their\n: zone, especially Sundin, is a treat to watch.  They remind me of the Red \n: Army.  \n\n: dchhabra@stpl.ists.ca (pissed-off Habs fan)\n\nYeah, the Nords look like they're going to be good...but (excuse the\nbias) have you ever watched the Pens on a rush?...Don't answer: everyone\nhas seen this footage.  Near the end of the season when the Pens played\nthe Nords it was like watching a (younger) double of the Pens.  ...The\nNords looked good right up to the point when they lost. \n--\nRavi Shah\nshah+@pitt.edu\n\n\"La mu'sica ideas portara'  \tapprox. translation: \"Music will bring ideas\ny siempre continuara'\t\t\t\t     and will continue forever\nsonido electro'nico\t\t\t\t     electronic sound\ndecibel sinte'tico\"\t-Musique non stop-\t     synthetic decibel\"\n                           -Kraftwerk\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2468, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nFrom: kmcvay@oneb.almanac.bc.ca (Ken Mcvay)\nOrganization: The Old Frog's Almanac\nLines: 20\n\nIn article <20APR199301460499@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen) writes:\n\n>Seems to me Koresh is yet another messenger that got killed\n>for the message he carried. (Which says nothing about the \n\nSeems to be, barring evidence to the contrary, that Koresh was simply\nanother deranged fanatic who thought it neccessary to take a whole bunch of\nfolks with him, children and all, to satisfy his delusional mania. Jim\nJones, circa 1993.\n\n>In the mean time, we sure learned a lot about evil and corruption.\n>Are you surprised things have gotten that rotten?\n\nNope - fruitcakes like Koresh have been demonstrating such evil corruption\nfor centuries.\n-- \nThe Old Frog's Almanac - A Salute to That Old Frog Hisse'f, Ryugen Fisher \n     (604) 245-3205 (v32) (604) 245-4366 (2400x4) SCO XENIX 2.3.2 GT \n  Ladysmith, British Columbia, CANADA. Serving Central Vancouver Island  \nwith public access UseNet and Internet Mail - home to the Holocaust Almanac\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2469, "properties": {"category": "sci.crypt", "text": "From: WHMurray@DOCKMASTER.NCSC.MIL\nSubject: Licensing...\nOrganization: Yale CS Mail/News Gateway\nLines: 24\n\n\n>This actually supports Bill's speculation - IF there is a backdoor in\n>RSAREF and IF PKP is supported secretly by the NSA, then it is more\n>than natural that they will welcome ANY public-key implementation that\n>uses RSAREF and will strongly oppose themselves against ANY\n>implementation that doesn't.\n\nMy speculation does not include or depend upon a trapdoor in RSAREF. I\ndo not believe that RSA would consent to such.  \n\nHowever, there are other limitation in the concept of RSAREF in which\nNSA has an interest.  It has an interest in a limited number of\nimplementations, i.e., targets.  It has an interest in fixed key or\nmaximum modulus size.  \n\nIt has a legitimate (literally) right to pursue such interests.  Within\nbounds, it probably has a right to pursue those interests by covert\nmeans.  At least it has the same right as the rest of us not to disclose\nall of its motives and intentions.  (Institutions are not self-aware;\nthey do not know their intentions in any meaningful sense.)\n\nWilliam Hugh Murray, Executive Consultant, Information System Security\n49 Locust Avenue, Suite 104; New Canaan, Connecticut 06840                \n1-0-ATT-0-700-WMURRAY; WHMurray at DOCKMASTER.NCSC.MIL\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2470, "properties": {"category": "talk.politics.misc", "text": "Organization: City University of New York\nFrom: <F36SI@CUNYVM.BITNET>\nSubject: UNITED NATIONS : Gettin' busy\nLines: 4\n\n    Chapter 7 operation in Somlia.  Almost Chapter 7 in Cambodia and Yugo.\n    'Bout time the UN started using force to make the peace happen.\n    Hopefully, they will soon be doing the same with world economics.\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2471, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: spart@cs.uq.oz.au (Geoff Green)\nSubject: Multi I/O card with 16550 UART's\nReply-To: spart@cs.uq.oz.au\nOrganization: Department of Computer Science, The University of Queensland\nLines: 18\n\nIs it possible to buy a serial I/O card with the 16550 UART's built in\n(rather than having to buy them separately, and socketing them in)?\n\nMy current I/O card uses 8250's (correct number? The braindead ones anyway).\nIt also controls two floppy drives, and two IDE hard drives.\n\nIdeally, I'd like to get a new multi I/O card, that had 2 serial ports with\n16550's and could also control another 2 IDE HD's. It would have to have\nconfigurable addresses for both the serial ports, and the IDE controller, so\nit could co-exist with my existing card.\n\nDoes such a beast exist? Now the hard part - where can I get one in Australia,\npreferably Brisbane?\n\nThanks,\nGeoff Green (spart@cs.uq.oz.au)\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.114+0000", "event": "documents", "entityId": 2472, "properties": {"category": "talk.politics.guns", "text": "From: jagst18+@pitt.edu (Josh A Grossman)\nSubject: Re: Dillon puts foot in mouth, film at 11\nOrganization: The Zets at the University of Pittsburgh (aka The Pitt)\nLines: 17\n\n\nI have also heard about HCI claiming thant anyone they  get an address\nfrom is a member.  If this is the case their membership rolls are\ngrossly inflated and we should not call them and give them a name\nand address to add to their already false rolls.  Perhaps\nif you could get a copy of their existing membership, then pretend to\nbe an existing member, do that several thousand times, you could\nhurt HCI.  But names are power.  Remeber the NRA uses the fact\nthat it has 3 million paid members in order to flex its muscles.\n\nPerhaps politicians don't realize the lying tactics of HCI, wait a\nminute, HCI learned it from politicians....\n\nLater,\nJosh\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2473, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: huot@cray.com (Tom Huot)\nSubject: Re: Procomm Plus for windows problems....\nLines: 24\nNntp-Posting-Host: pittpa.cray.com\nOrganization: Cray Research Inc.\nX-Newsreader: TIN [version 1.1 PL8]\n\nRobert J. Niland (rjn@teal.csn.org) wrote:\n\n\n[Much text deleted]\n\n: I have heard from several people about less expensive m-f I/O cards\n: with 16550s:\n\n: TSD Systems\n: (407) 331-9130\n: $19.95 for the card, plus $9.95 per 16550.\n\nI can vouch for this one. I ordered it and got it for $34 including\nS&H. It took me awhile to figure out how to get it working with my\nsystem, but since I did, I get terrific results while downloading\nusing PCPlus for Windows. I used to get errors if I started any other\nprogram while downloading at high speed. Not anymore. \n\n[More text deleted]\n--\n_____________________________________________________________________________\nTom Huot        \t\t\t       \nhuot@cray.com \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2474, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: des@inmos.co.uk (David Shepherd)\nSubject: Re: DCC and MiniDisc: next DAT/DDS like st\nLines: 25\nX-Newsreader: TIN [version 1.1 PL8]\n\nST002560@brownvm.brown.edu wrote:\n: As far as I can tell, the MD is an offshoot of technology that already exists.\n: It is an MO drive.  MO drives exist already for computers.  They're expensive\n: and a bit slow, but the disks are cheep (128 mb disks).  Dan.\n\nI read a recent article in Personal Computer World mainly about the new\ndigit audion formats (DCC and MD) but at the end talked about how nice\nit would be to use these for data storage with a brief calculation of\nhow much data you could store. The author had been talking to someone\nfrom Sony about these formats and mentioned this to get the reply \"MD\nis a purely audio format, we wouldn't use it for data\", then when\npressed for info about MO the Sony man basically admitted that it was\nno more than a slight adaptabtion on MD!\n\nWhat I think the original poster was wanting was MO drives at MD audio\nplayer prices. I'd assume that the problem here is that an MD system\ncan have higher tolerances than an MO system as the ear doesn't pick up\nthe occasional bit error as well as an archiving program!\n\n--\n--------------------------------------------------------------------------\ndavid shepherd: des@inmos.co.uk                     tel: 0454-616616 x 625\n                inmos ltd, 1000 aztec west, almondsbury, bristol, bs12 4sq\n\t\t\"They didn't like the rates, they don't like the poll tax,\n\t\t and they won't like the council tax.\"   - Nicholas Ridley   \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2475, "properties": {"category": "sci.electronics", "text": "From: hjkim@hyowon.pusan.ac.kr (Hojoong Kim)\nSubject: Looking for Electronics Dept Info in Austrailia\nOrganization: Korea Advanced Institute of Science and Technology\nX-Newsreader: TIN [version 1.1 PL8]\nLines:       13\n\nHi Netters!\n\nI am looking for the list of universities in Austrailia, which has electronics department. \nI am considering to spend a year for research in Austrailia about communication area.\u00fd\u00e9 I am interested in Mobile communication areas and spread spectrum communications etc. \nBut I don't have any information about Austrailian Universities.\nCan anybody recommend a good university in co\u00fb\u00dfmmunic\u00f7\u00b3ation area?\nAny comments will be welcomed!\n\nBye.\n\nJaehyung Kim\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2476, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dhk@ubbpc.uucp (Dave Kitabjian)\nSubject: x86 ~= 680x0 ??  (How do they compare?)\nDistribution: usa\nOrganization: Unisys UNIX Portation Center, Blue Bell, PA\nLines: 36\n\nI'm sure Intel and Motorola are competing neck-and-neck for \ncrunch-power, but for a given clock speed, how do we rank the\nfollowing (from 1st to 6th):\n  486\t\t68040\n  386\t\t68030\n  286\t\t68020\n\nWhile you're at it, where will the following fit into the list:\n  68060\n  Pentium\n  PowerPC\n\nAnd about clock speed:  Does doubling the clock speed double the\noverall processor speed?  And fill in the __'s below:\n  68030 @ __ MHz = 68040 @ __ MHz\n\nThanks very much.  I'd appreciate hearing any further explanations\nfrom any experienced folks out there, too! \n\n \nP.S.  Folks have been having trouble replying to me lately with the \"reply\"\n      command.  Try typing my address by hand and it should work.  Thanks!\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nDAVE KITABJIAN (kit-ahb'-jyin)    Vital Statistics:\n                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n ||||||   K-10 East Garden Way    Favorite guitarist     :  Phil Keaggy \n| @  @ |  Dayton, NJ  08810       Favorite computer      :  Macintosh\nc  <   c  (908) 274-0892          Spaghetti preference   :  Semi-broken\n \\ O  /   tredysvr!ubbpc!dhk@     TP installation pref.  :  Over the top \n  \\__/     GVLS1.VFL.paramax.com  Favorite book          :  Bible\n                                  Favorite Rush Limbaugh\n                                     commercial          : Taxula, Part III\n                                  Favorite contradiction : \"Pro-child --\n                                                               Pro-choice.\"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2477, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jleon@usc.edu (Juan Carlos Leon)\nSubject: modems and noisy lines.\nOrganization: University of Southern California, Los Angeles, CA\nLines: 21\nDistribution: world\nNNTP-Posting-Host: phakt.usc.edu\n\nHi,\n\nI just got a problem, I have a cheapo 2400bps modem which I use to connect\nto my university, but I get too much garbage on the screen. I do know it's\nbecause the noise in the line (I can actually hear it).  So my question is\nwill an error correction protocol help to eliminate this garbage?, my modem\ndoesn't have any of these on hardware, can a software implemented protocol\ndo the trick?\n\nThanks.\n\nJuan Carlos Leon\n\n\n\n\n-- \njleon@scf.usc.edu             |  jcleon@ucs.usc.edu\nElectrical & Computer Major   |  University Computing Services\n\t\tUniversity of Southern California\n\t\t\tLos Angeles, CA.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2478, "properties": {"category": "sci.space", "text": "From: ghasting@vdoe386.vak12ed.edu (George Hastings)\nSubject: Re: Soviet space book\nOrganization: Virginia's Public Education Network (Richmond)\nLines: 13\n\n     I have received my copies of Cosmonautics 1990 and\nCosmonautics 1991, as well as Soviet Space 1990 and Space\nStation [MIR] Handbook from Aerospace Ambassadors with no\nproblem.\n     I'm getting ready to FAX them some material in Huntsville,\nand I'll include a printout of your inquiry.\n ____________________________________________________________\n| George Hastings\t\tghasting@vdoe386.vak12ed.edu |  \n| Space Science Teacher\t\t72407.22@compuserve.com      |  If it's not\n| Mathematics & Science Center \tSTAREACH BBS: 804-343-6533   |   FUN, it's\n| 2304 Hartman Street\t\tOFFICE:       804-343-6525   |  probably not\n| Richmond, VA 23223\t\tFAX:          804-343-6529   |    SCIENCE!\n ------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2479, "properties": {"category": "sci.med", "text": "From: E.J. Draper <draper@odin.mda.uth.tmc.edu>\nSubject: Re: Do we need a Radiologist to read an Ultrasound?\nOrganization: U.T.M.D. Anderson Cancer Center\nLines: 25\nDistribution: world\nNNTP-Posting-Host: rpidev2.mda.uth.tmc.edu\nX-UserAgent: Nuntius v1.1.1d17\nX-XXMessage-ID: <A7FAC234C902019A@rpidev2.mda.uth.tmc.edu>\nX-XXDate: Wed, 21 Apr 93 15:19:48 GMT\n\nIn article <9551@blue.cis.pitt.edu> Kenneth Gilbert, kxgst1+@pitt.edu\nwrites:\n>This is one of those sticky areas of medicine where battles frequently\n>rage.  With respect to your OB, I suspect that she has been certified in\n>ultrasound diagnostics, and is thus allowed to use it and bill for its\n>use.  Many cardiologists also use ultrasound (echocardiography), and are\n>in fact considered by many to be the 'experts'.  I am not sure where OBs\n>stand in this regard, but I suspect that they are at least as good as the\n>radioligists (flame-retardant suit ready).\n\nIf it were my wife, I would insist that a radiologist be involved in the\nprocess.  Radiologist are intensively trained in the process of\ninterpreting diagnostic imaging data and are aware of many things that\nother physicians aren't aware of.  Would you want a radiologist to\ndeliver your baby?  If you wouldn't, then why would you want a OB/GYN to\nread your ultrasound study?\n\n\nIn my opinion the process should involve a OB/GYN and a radiologist.\n\n\n      |E|J-  ED DRAPER\n rEpar|D|<-  Radiologic/Pathologic Institute\n             The University of Texas M.D. Anderson Cancer Center\n             draper@odin.mda.uth.tmc.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2480, "properties": {"category": "comp.graphics", "text": "From: nahess@mir.gatech.edu (Nicholas A. Hess)\nSubject: Hitatchi Raster Format (HRF)?\nOrganization: USGS Center for Spatial Analysis Technologies\nLines: 19\nNNTP-Posting-Host: mir.gatech.edu\nKeywords: HRF\n\n Our shop uses a package called CADCore - very good - to scan and\nsubsequently vectorize original maps into digital maps. The problem is that\nonce the raster file is loaded into the CADCore package, a header is added\nto the .HRF file which makes it unreadable by the supplied converter. We\nwould like to be able to ship some of the already-altered raster images for\nfurther use on our workstations. So, here are my questions:\n\n (1) What is the Hitachi format? - I need this format so I can recognize\nprecisely what to strip out. I strongly suspect that it's a compressed\nformat - if so, then t might not be possible for me to strip out the\noffending header.\n\n (2) Are there any UNIX packages that read and recognize HRF? It would be\nreally nice to find some sort of \"hrftopbm\" converter out there. ;)\n\n I've already searched some of the more well-known ftp sites which contain\ngraphics formats documentation, with no luck. So, if you know, or knwo\nsomeone who knows - please email! Thanks.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2481, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon W\u00e4tte)\nSubject: Re: Why the drive speeds differ??\nKeywords: Quantum, LPS, speed\nNntp-Posting-Host: hemul.nada.kth.se\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 19\n\nIn <C5r70z.4GB@zimmer.CSUFresno.EDU> mmatteo@mondrian.CSUFresno.EDU (Marc Matteo) writes:\n\n>I just got a La Cie 240 meg external hard drive.  Speed tests show that it's\n>substantially faster that my internal 105 meg Quantum HD.  Supposedly the 105\n>and the 240 (both LPS drives) are roughly rated the same speed.  Why such a \n>large difference?\n\nCould be better caching on the disk.\nCould be faster coil for seeks.\nCould be that the disk spins faster so data transfers faster.\nCould be that data is packed tighter so it transfers faster.\nCould be a faster SCSI command decoder in the drive.\n\nAmong other things...\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n Engineering: \"How will this work?\" Science: \"Why will this work?\" Management:\n \"When will this work?\"  Liberal Arts: \"Do you want fries with that?\"\n                     -- Jesse N. Schell\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2482, "properties": {"category": "rec.motorcycles", "text": "From: pooder@rchland.vnet.ibm.com (Don Fearn)\nSubject: Re: Antifreeze/coolant\nReply-To: pooder@msus1.msus.edu\t\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: garnet.rchland.ibm.com\nOrganization: IBM Rochester\nLines: 34\n\nIn article <1993Apr15.193938.8569@research.nj.nec.com>, behanna@syl.nj.nec.com (Chris BeHanna) writes:\n|> \tFor those of you with motorcycles of the liquid-cooled persuasion,\n|> what brand of coolant do you use and why?  I am looking for aluminum-safe\n|> coolant, preferably phosphate-free, and preferably cheaper than $13/gallon.\n|> (Can you believe it:  the Kaw dealer wants $4.95 a QUART for the Official\n|> Blessed Holy Kawasaki Coolant!!!  No way I'm paying that usury...)\n|> \n\nPrestone.  I buy it at ShopKo for less \nthan that a _gallon_.    BMW has even more\nexpensive stuff than Kawasaki (must be \nfrom grapes only grown in certain parts of\nthe fatherland), but BMW Dave* said \"Don't \nworry about it -- just change it yearly and\nkeep it topped off\".  It's been keeping \nGretchen happy  since '87, so I guess it's OK.\n\nKept my Rabbit's aluminum radiator hoppy for\n12 years and 130,000 miles, too, so I guess\nit's aluminum safe. \n\n*Former owner of the late lamented Rochester \nBMW Motorcycles and all around good guy.\n\n-- \n\n\n   Pooder  -  Rochester, MN   -  DoD #591  \n -------------------------------------------------------------------------\n   \"What Do *You* Care What Other People Think?\" -- Richard Feynman \n -------------------------------------------------------------------------\n   I share garage space with:   Gretchen - '86 K75   Harvey - '72 CB500  \n -------------------------------------------------------------------------\n << Note the different \"Reply-To:\" address if you want to send me e-mail>>\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2483, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: estaucl@csv.warwick.ac.uk (Mr I Coggins)\nSubject: Beyond 640K, Trident 8900, and lots more 8)\nOrganization: Computing Services, University of Warwick, UK\nLines: 48\nNNTP-Posting-Host: nutmeg.csv.warwick.ac.uk\nKeywords: Ram,Trident,Interrupts\n\nHi,\n\nI have a few enquiries about PC's and compatibles in general.. Some software\nothers hardware orientated.. (Probably the wrong newsgroup .... as everyone \nclaims..)\n\nAnyway..\n\n1) Does any one happen to have the board jumper details for a Trident 8900\nSVGA graphics card (1MB) or even what the dip switches do on the end.. Mine\nalready works fine (albeit slow) and after having blown up a monitor I found \nout which switch controlled the interlace/non interlace facility.. \n\nBut I'm curious as to why there are 8 dip switches on the card with apparantly\nlittle use..\n\n2) Secondly, does anyone know why Commodore had to be so crazed in their design\nof the PC-40 motherboard with respect to the RAM.. (IE 512 + 512 or 640 +0K) ??\n\n3) Can anyone supply pin details for the expansion ports for a pc (8 or 16 bit\n) .. or even a sample circuit to cause an irq when a button is pressed...\n(Yeah I know its a piece of cake.. I'm lazy 8)\n\n4) Software wise.. Anyone care to divulge some tips on accessing expanded RAM\non a PC (from a program written in Turbo C++).... \n\nFor instance, using farcoreleft() and coreleft() return only memory available\nfrom the base 640K regardless of combinations of EMM386 etc etc...\nWhat I want is to be able to use the RAM above and beyond the 1MB boundary...\n\nI'm not certain whether farmalloc / new actually uses it anyway but I'll \nsuspect not .. \n\n5) Also.. what half brained wit created DOS so as not to be re-entrant??????\n   As a follow on, does anyone have any comments about the use of DOS calls\n   0 to 0C from within a DOS interrupt? Ie will changing the stack size on\n   entry be of use.. Two articles I've read on the subject have given \n   conflicting views... Does anyone have any views on writing direct to\n   screen memory in terms of portability?\n\nMany thanks..\nGotta go, bars closing soon 8)\nCheers\nIan\n\n\t\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2484, "properties": {"category": "sci.electronics", "text": "From: koops@gaul.csd.uwo.ca (Luke Koops)\nSubject: Speaker design software?\nOrganization: Computer Science Dept., Univ. of Western Ontario, London, Canada\nSummary: Searching for speaker deisn software/shareware/freeware\nKeywords: speaker, design, software\nNntp-Posting-Host: obelix.gaul.csd.uwo.ca\nLines: 13\n\nHi.  I'm looking for software to aid a friend of mine with designing speakers.\nDoes this type of software exist?  If anyone can point me toward a shareware or\nfreeware product with this description, that would be ideal.\n\n...Steve van der Burg (using a friend's account)\n\n(p.s. Excuse the terseness of the message;  I'm having difficulty stringing\nreadable sentences together today, for some reason.)\n\n-- \n\n\t\t\t\t-Luke Koops\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2485, "properties": {"category": "rec.sport.baseball", "text": "From: chuck@cygnus.eid.anl.gov (Charles Cilek)\nSubject: How is slugging percentage computed?\nOrganization: UTexas Mail-to-News Gateway\nLines: 3\nNNTP-Posting-Host: cs.utexas.edu\n\nSubject line says it all. Thanks in advance. Please email\nchuck@cygnus.eid.anl.gov\nGo Cubs!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2486, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Possible Canadian WC Team?\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 17\n\nnlu@Xenon.Stanford.EDU (Nelson Lu) writes:\n>\n>CENTERS\n>Mark Messier, N. Y. Rangers\n\nMessier was not invited due to his nagging injuries.  While the press\nmade an issue of it, and attempted to link it to the Rangers' internal\npolitical woes, Mike Keenan repeated that to Messier personally during\nthe MSG press conference.  It makes sense ... Messier would probably\nhave not declined the invitation if it were made for publicity ...\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2487, "properties": {"category": "misc.forsale", "text": "From: pchang@ic.sunysb.edu (Pong Chang)\nSubject: Re: Microsoft DOS 6.0 Upgrade for sale\nNntp-Posting-Host: libws4.ic.sunysb.edu\nOrganization: State University of New York at Stony Brook\nLines: 36\n\nIn article <hatton.733706165@cgl.ucsf.edu> hatton@socrates.ucsf.edu (Tom Hatton) writes:\n>adn6285@ritvax.isc.rit.edu writes:\n>>In article <1pctnfINN6dp@eve.usc.edu>, yuanchie@eve.usc.edu (Yuan-Chieh Hsu) writes:\n>>>\tMS DOS 6.0 Upgrade for sale\tbest offer over $45\n>>>\t(opened, unregistered)\n>\n>>So, does anyone care to enlighten us whether DOS6.0 is worth upgrading to?\n>>How good is it's compression, and can it be turned on/off at will?\n>>Any other nice/nasty features?\n>\n>According to reports, if you don't have DOS yet, and don't have any\n>utilities (QEMM, Stacker, PCTools, Norton, ...) then DOS6 may be worth it. \n>\n>For people who have DOS5, and some sort of utility, DOS6 doesn't offer\n>much. You'd never know it from the usual hype that marketing is able\n>to create, however. :-)\n\ni installed dos 6 last week, and had nothing but trouble afterwards.\nwindows apps are hitting protection faults more than a kid can do \nto a pinata, and it does not seem to like to work with NDOS (norton \ndos 7.0).  other probs include:\n\nset pcplus=d:\\pcplus for procomm plus no longer works.\nmany of the little utilities to written for dos no longer works\n\teither. (mostly shareware)\n\ni now have uninstalled dos 6 , and dos 5 works just fine.\nare there any apps that dos 6 will be able to run that dos 5 wont?\n\n-- \n**********************************************************************\nC_ommon  \tpchang@ic.sunysb.edu \t\t\nS_ense\t\tState University of New York @ Stony Brook \nE_ngineer\t\n**********************************************************************\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2488, "properties": {"category": "rec.autos", "text": "From: netops@tekgen.bv.tek.com (Randy King)\nSubject: left turn signal won't stop automaticaly\nArticle-I.D.: tekgen.2408\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 5\n\nThe subject says it all. My 1984 Chev S10 Pickup's left turn signal does\nnot stop after turning. What cause this to stop automaticaly?. Is this\na mechanical problem by the steering wheel?.\n\nNOTE: This truck has an after market steering wheel (GT-Grant) installed.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2489, "properties": {"category": "talk.religion.misc", "text": "From: alamut@netcom.com (Max Delysid (y!))\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: Longinus Software & Garden ov Delights\nLines: 27\n\nIn article <1qppef$i5b@usenet.INS.CWRU.Edu> ch981@cleveland.Freenet.Edu (Tony Alicea) writes:\n>\n>     Name just three *really* competing Rosicrucian Orders. I have\n>probably spent more time than you doing the same. \n>\n>     None of them are spin-offs from O.T.O. The opposite may be the\n>case. \n\nCan we assume from this statement that you are >unequivocally< saying that\nAMORC is not a spin off of OTO? .. and that in fact, OTO may well be a spin\noff of AMORC??\ni would be quite interested in hearing what evidence you have to support this\nclaim. \n\n>Study Harder,\n\nStudy Smarter, not Harder! :-)\n\n\n\n-- \n--->|<-------------------------------------------------------------------------\n<---|--->  More. More of Everything. More of Everything for Everybody.\n  <-|-> \"Real total war has become information war, it is being fought now...\"\n<---|---> !MaX! Delysid - alamut@netcom.com - ALamutBBS 415.431.7541 1:125/51\n--->|<-------------------------------------------------------------------------\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2490, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: tedm@tsoft.net (Ted Matsumura)\nSubject: Re: Windows gripe...\nOrganization: TSoft BBS and Public Access Unix, +1 415 969 8238\nLines: 37\n\nIn article <1ppmvf$qnh@bigboote.WPI.EDU> bigal@wpi.WPI.EDU (Nathan Charles Crowell) writes:\n>\n>Hi there,\n>\n>     There's one thing about Windows that really frosts me.\n>I have 20MB of RAM installed in my system. I use a 5MB (2.5MB\n>under Windows) disk-cache, and a 4MB permanent swap file.\n>\n>     While I can never fill the memory up, I still have problems\n>sometimes because I run out of GDI resources. What gives?\n>I think Windows could manage these resources a little better.\n>\n>     Does anyone have any input on how to conserve these resources\n>so that I can avoid this problem?\n>\n>Nate\n>--------------------------\n>Nathan C. Crowell, Dept. of Mechanical Engineering/ACRL\n>\n>Worcester Polytechnic Institute     E-mail: bigal@wpi.wpi.edu\n>\n>\"Costing the net hundreds if not thousands of dollars\"\n\nNathan,\n  Win31 has a fixed limit of 64K GDI memory, regardless of physical RAM\ninstalled, this is twice that of Win30, but not nearly robust enough for\nmany developers and power users.\n \nUsing Amish Launch as your shell, you can reduce GDI memory usage by as\nmuch as 15% over Progman, NDW 2, DAshboard, and other graphical type icon\nbased and other shells.  Also, nesting, and full hot-key global support\nis offered, something no other shells have at this time.\n \nTed Matsumura, President\nAmish Software, Inc.\n\n:wq\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2491, "properties": {"category": "rec.sport.baseball", "text": "From: cmk@athena.mit.edu (Charles M Kozierok)\nSubject: Re: Jack Morris\nOrganization: Massachusetts Institute of Technology\nLines: 59\nNNTP-Posting-Host: marinara.mit.edu\n\nIn article <1993Apr19.024222.11181@newshub.ariel.yorku.ca> cs902043@ariel.yorku.ca (SHAWN LUDDINGTON) writes:\n} In article <1993Apr18.032345.5178@cs.cornell.edu> tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n} >In article <1993Apr18.030412.1210@mnemosyne.cs.du.edu> gspira@nyx.cs.du.edu (Greg Spira) writes:\n} >>Howard_Wong@mindlink.bc.ca (Howard Wong) writes:\n} >>\n} >>>Has Jack lost a bit of his edge? What is the worst start Jack Morris has had?\n} >>\n} >>Uh, Jack lost his edge about 5 years ago, and has had only one above\n} >>average year in the last 5.\n} >\n} >Again goes to prove that it is better to be good than lucky.  You can\n} >count on good tomorrow.  Lucky seems to be prone to bad starts (and a\n} >bad finish last year :-).\n} >\n} >(Yes, I am enjoying every last run he gives up.  Who was it who said\n} >Morris was a better signing than Viola?)\n} \n} Hey Valentine, I don't see Boston with any world series rings on their\n} fingers.\n\noooooo. cheap shot. :^)\n\n} Damn, Morris now has three and probably the Hall of Fame in his \n} future.\n\nwho cares? he had two of them before he came to Toronto; and if the\nJays had signed Viola instead of Morris, it would have been Frank who\nwon 20 and got the ring. and he would be on his way to 20 this year, too.\n\n} Therefore, I would have to say Toronto easily made the best \n} signing.\n\nyour logic is curious, and spurious.\n\nthere is no reason to believe that Viola wouldn't have won as many games\nhad *he* signed with Toronto. when you compare their stupid W-L records,\nbe sure to compare their team's offensive averages too.\n\n\nnow, looking at anything like the Morris-Viola sweepstakes a year later\nis basically hindsight. but there were plenty of reasons why it\nshould have been apparent that Viola was the better pitcher, based\non previous recent years and also based on age (Frank is almost 5\nyears younger! how many knew that?). people got caught up in the '91\nWorld Series, and then on Morris' 21 wins last year. wins are the stupidest,\nmost misleading statistic in baseball, far worse than RBI or R. that he\nwon 21 just means that the Jays got him a lot of runs.\n\nthe only really valid retort to Valentine is: weren't the Red Sox trying\nto get Morris too? oh, sure, they *said* Viola was their first choice\nafterwards, but what should we have expected they would say?\n\n} And don't tell me Boston will win this year.  They won't \n} even be in the top 4 in the division, more like 6th.\n\nif this is true, it won't be for lack of contribution by Viola, so who cares?\n\n-*-\ncharles\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2492, "properties": {"category": "rec.sport.hockey", "text": "From: jslam@cbnewsl.cb.att.com (joseph.lam)\nSubject: Re: Request for Islanders e-mail list\nArticle-I.D.: cbnewsl.1993Apr5.183014.16567\nDistribution: na\nOrganization: AT&T\nLines: 26\n\nIn article <1993Apr3.014237.20959@sifon.cc.mcgill.ca> bui@ee470.ee.mcgill.ca (BUI/DON/MR) writes:\n>In article <16b5xvf@rpi.edu> wangr@rpi.edu writes:\n>>>If anyone out there is keeping an Islanders e-mail list, could you\n>>>please add me to it? Thanks in advance.\n>>\n>>>Ercu\n>>\t\n>>\tCan u add me onto the list too....Thanks...\n>>\n>>Rex\n>\n>Count me IN !!!!\n>\n>Go Isles!\n>\n>\t\t\t\t\t\t-Don\n>\n>bui@ee470.ee.mcgill.ca\n>\n\nPlease count me in also...\n\nJust can't tell you how excited I was when the Islanders beat the Rangers\nin overtime on last Friday!!!\n\nGo Isles!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.115+0000", "event": "documents", "entityId": 2493, "properties": {"category": "sci.space", "text": "From: djf@cck.coventry.ac.uk (Marvin Batty)\nSubject: Re: What counntries do space surveillance?\nNntp-Posting-Host: cc_sysk\nOrganization: Starfleet, Coventry, UK\nLines: 35\n\nThe European Space Agency has involvement with remote earth \nobservation, and I presume this includes surveillance (optical etc.).\nSo it's not just the US/USSR(ex) who are in the game.\n\nBut what *is* the game? What can be done with space observation?\nThe military functions of missile spotting, troop spotting etc. are well\ndocumented, but what about anything else?\n\nThe biggest eg I can think of is to get a  metal sensing sat over a\npaying country and scan their territory for  precious metals.\n\nMore importantly, if radar can spot water vapour (clouds), presumably\na radar based sat will be capable of spotting rivers,open water and \n*underground water* from space. This would be a positive life saver\nfor African or other drought affected countries. Implementing a\nclean water and irrigation program would be of imense benifit to such\ncountries and should cut down mortalities considerably.\n\nSo how about it? Is there a charity or government agency that would\npay for a third world country to have their minerals and water deposits\nmapped?\n\nOr is this still sci-fi?\n\nMail replies would be great.\n\nThought for the day: Thermal energy needs water to make steam so sstick\nit in the ocean!\n\n\n-- \n****************************************************************************  \n                  Marvin Batty - djf@uk.ac.cov.cck\n\"And they shall not find those things, with a sort of rafia like base,\nthat their fathers put there just the night before. At about 8 O'clock!\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2494, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: My Gun is like my American Express Card\nDistribution: usa\nLines: 28\n\nIn article <1qvff6INN9p4@clem.handheld.com>, jmd@cube.handheld.com (Jim De\nArras) says:\n>\n>In article <93109.172450U28037@uicvm.uic.edu> Jason Kratz\n>[...]\n>\n>> It is kind of funny though how you were the only one who picked up\n>> the part about my sister being a social worker and keeping me up to date on\n>the\n>> gang thing.  Everyone else seemed to just skim by that part.\n>>\n>> Jason\n>\n>\n>I guess that just means \"Everyone else\" was mistaken?\n>\n>Jim\n>\n>jmd@handheld.com\n>------------------------------------------------------------------------------\n>-\nActually not Jim.  I just said that everyone else seemed to have skimmed by\nthat part and not mentioned it.  You can get whatever meaning you want from it.\n\nJason\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2495, "properties": {"category": "comp.windows.x", "text": "From: dwex@cbnewsj.cb.att.com (david.e.wexelblat)\nSubject: Re: Dell 2.2 EISA Video Cards\nOrganization: AT&T\nLines: 25\n\n[This belongs in comp.windows.x.i386unix - I've redirected followups]\n\nIn article <C5ssHu.CBI@gator.rn.com> larry@gator.rn.com (Larry Snyder) writes:\n> Does XFree86 support any EISA video cards under Dell 2.2?\n> -- \n> Larry Snyder                               \n> larry@gator.rn.com\n\nI know for a fact that the EISA version of the Orchid ProDesigner IIS\nworks.  However, an EISA SVGA card is likely a waste of money.\n\nWhen XFree86 2.0 comes out, with support for accelerated chipsets, ISA,\nEISA, and VLB will all be supported.\n\nThe more important question is \"what chipsets are supported?\".  The bus\nis basically irrelevent as a compatibility issue.\n\n--\nDavid Wexelblat <dwex@mtgzfs3.att.com>  (908) 957-5871  Fax: (908) 957-5627\nAT&T Bell Laboratories, 200 Laurel Ave - 3F-428, Middletown, NJ  07748\n\nXFree86 requests should be addressed to <xfree86@physics.su.oz.au>\n\n\"Love is like oxygen.  You get too much, you get too high.  Not enough and\n you're gonna die.\"  -- Sweet, Love Is Like Oxygen\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2496, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mrm@st-andrews.ac.uk (Malcolm R. McLeod)\nSubject: WEN 20\" monitor help\nOrganization: St. Andrews University, Scotland.\nLines: 5\n\ndoes anybody have any info on this monitor or the manufacturers?\n\nall help through e-mail please.\n\nScotty.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2497, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: A loathesome subject\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 18\n\nIn article <1993Apr13.174636.15142@ads.com>, henry@ADS.COM (Henry Mensch) writes:\n> carlos@beowulf.Jpl.Nasa.Gov (Carlos Carrion) wrote: \n# -#\tJust curious (don't have to answer if you feel uncomfortable):\n# -#\thow many times have YOU had sex with boys?\n# \n# why do you care?  if a total stranger asked you how often you had sex,\n# would you answer?\n# \n# # henry mensch / booz, allen & hamilton, inc.  / <henry@ads.com#\n\nThis is so typical of homosexuals -- constantly making excuses for\nchild molesters.\n\n\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2498, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 39\n\n\nIn article <sandvik-190493200858@sandvik-kent.apple.com>, sandvik@newton.apple.com (Kent Sandvik) writes:\n|> In article <1993Apr19.165717.25790@ra.royalroads.ca>,\n|> mlee@post.RoyalRoads.ca (Malcolm Lee) wrote:\n|> > \n|> > It is true what you stated above:  Jesus' saving grace is available to\n|> > everyone, not just Jews.  In other words, everyone can have salvation but\n|> > not everyone will.  This option is now open to people other than just\n|> > Jews.  Of course, if the Jews don't accept the deity of Christ, I would\n|> > hardly expect them to accept anything that Christ said.  But I don't feel\n|> > any animosity towards them.  Even though they persecuted Jesus and his\n|> > disciples and eventually crucified Him, I bear them no ill will.  If anything,\n|> > I feel pity for them.  Jesus had to die to pay the price for our sins and\n|> > so the Jews were merely fulfilling prophesy.  Jesus knew He had to die even\n|> > before He began His ministry.  That demonstrates the great depth of His love\n|> > for us.\n|> \n|> Jesus certainly demonstrated the great depth of his love for the\n|> children who died today at the Davidian complex.\n|> \n|> Sorry, but the events today made me even more negative concering\n|> organized religion.\n|> \n\nI understand and sympathize with your pain.  What happened in Waco was a very\nsad tradgedy.  Don't take it out on us Christians though.  The Branch\nDavidians were not an organized religion.  They were a cult led by a ego-maniac\ncult leader.  The Christian faith stands only on the shoulders of one man,\nthe Lord of Lords and King of Kings, Jesus Christ.   BTW, David Koresh was NOT\nJesus Christ as he claimed.\n\nGod be with you,\n\nMalcolm Lee  :)\n\n|> Cheers,\n|> Kent\n|> ---\n|> sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2499, "properties": {"category": "rec.autos", "text": "Subject: Re: MGBs and the real world\nFrom: derek@nezsdc.icl.co.nz (Derek Tearne)\nOrganization: Fujitsu New Zealand - Software Development Center\nLines: 20\n\nIn article <1993Apr8.095119.5367@hasler.ascom.ch> kevinh@hasler.ascom.ch writes:\n>\n>Oh yeah, I had a 1975 1275GT Mini, and even before I did anything\n>to it, it could leave an MGB standing anywhere except, perhaps, on a long straight\n>motorway run at 90+. \n>\n>People who bought MGB`s bought them because they were an open topped sportscar\n>and embodied what people thought they should for an old fashioned traditional\n>brit. sportscar - not because they were great at anything.\n\nPretty much like the people who buy the Mazda MX-5 (Miata) today.  Small \nfun and you can fool yourself (and a lot of other people) that you have the \nperformance of many far superior (and much more expensive) performnace cars.\n\n\n-- \nDerek Tearne.   --   derek@nezsdc.icl.co.nz   --    Fujitsu New Zealand   -- \nSome of the more aware dinosaurs were worried about the environmental\nconsequences of an accident with the new Iridium enriched fusion reactor.  \n\"If it goes off only the cockroaches and mammals will survive...\" they said.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2500, "properties": {"category": "talk.politics.mideast", "text": "From: rj3s@Virginia.EDU (\"Get thee to a nunnery.....\")\nSubject: Re: Israel's Expansion II\nOrganization: University of Virginia\nLines: 67\n\nwaldo@cybernet.cse.fau.edu  writes:\n> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n> \n> > waldo@cybernet.cse.fau.edu  writes:\n> > > ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n> > > \n> > > > First of all I never said the Holocaust. I said before the\n> > > > Holocaust. I'm not ignorant of the Holocaust and know more\n> > > > about Nazi Germany than most people (maybe including you). \n> > > \n> > > Uh Oh!  The first sign of an argument without merit--the stating of one's \n> > > \"qualifications\" in an area.  If you know something about Nazi Germany, \n> > > show it.  If you don't, shut up.  Simple as that.\n> > > \n> > > > \tI don't think the suffering of some Jews during WWII\n> > > > justifies the crimes commited by the Israeli government. Any\n> > > > attempt to call Civil liberterians like myself anti-semetic is\n> > > > not appreciated.\n> > > \n> > > ALL Jews suffered during WWII, not just our beloved who perished or were \n> > > tortured.  We ALL suffered.  Second, the name-calling was directed against\n> > > YOU, not civil-libertarians in general.  Your name-dropping of a fancy\n> > > sounding political term is yet another attempt to \"cite qualifications\" \n> > > in order to obfuscate your glaring unpreparedness for this argument.  Go \n> > > back to the minors, junior.\n> > \tAll humans suffered emotionally, some Jews and many\n> > others suffered physically. It is sad that people like you are\n> > so blinded by emotions that they can't see the facts. Thanks\n> > for calling me names, it only assures me of what kind of\n> > ignorant people I am dealing with. I included your letter since\n> > I thought it demonstrated my point more than anything I could\n> > write. \n> \n> -----\n> When you're willing to actually support something you say with fact or \n> argument rather than covering up your own inadequacies with feigned \n> offense, let me know.  Otherwise, back to your own league, son.\n  I have never seen such immaturity among semitophiles.  This\nAndi Beyer character shows no signs of anti semitism, yet\nbecause he deviates from the norm of accepted opinion, you\nattack him.  Why did not anyone venture to answer Andi's\nquestion in an intelligent and unoffending manner?  The only\nones guilty here of not backing up there viewpoints with fact\nare the Israelophiles.  Now will we please start having some\nINTELLIGENT conversation?  You all are an insult to you race!\n{assuming you are also semitic}\n\tNow I have a comment concerning Israeli terrorism\nduring the 1930's and 1940's.  The Hirgun, and other branch -\noff militant groups, did fight the British do get them out of\nPalestine.  Yet I fail to see how this Israeli form of\nterrorism was better than the terrorism practiced now by the\nArabs.  These Jewish terrorist groups killed innocent British\nsoldiers, but not only thta also killed many Jews who were in\nfavor of a compromise with the Palestinians.  In addition, they\nmassacred an entire Palestinian village in 1948, contributing\nto the exodus of the frightened Palestinians who feared their\nvery lives.\n\tI mention this not because I'm anti semitic [I'm part\nJewish] but because this self righteousness on the part of the\nIsraelites pisses me off so.  I'm not as critical of the\nPalestinians because they were indeed screwed over by the\nJews.  It 's a damn shame that the Palestinians had to pay for\nGerman and European anti semitism.\n\n\t\t\t\tPissed off at Immature,\n                          Closeminded, Self righteous\n\t\t\t\tSemites\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2501, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sp@odin.NoSubdomain.NoDomain (Svein Pedersen)\nSubject: Utility for updating Win.ini and system.ini\nOrganization: University of Tromsoe, Norway\nLines: 6\n\nI nead a utility for updating (deleting, adding, changing) *.ini files for Windows. \n\nDo I find it on any FTP host?\n\nSvein\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2502, "properties": {"category": "comp.graphics", "text": "From: mark@ocsmd.ocs.com (Mark Wilson)\nSubject: Re: TIFF: philosophical significance of 42 (SILLY)\nOrganization: Online Computer Systems, Inc.\nX-Newsreader: Tin 1.1 PL5\nLines: 20\n\nMark A. Cartwright (markc@emx.utexas.edu) wrote:\n: Well,\n: \n: 42 is 101010 binary, and who would forget that its the\n: answer to the Question of \"Life, the Universe, and Everything else.\"\n: That is to quote Douglas Adams in a round about way.\n: \n: Of course the Question has not yet been discovered...\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nBut it WAS discovered (sort of).  The question was \"What is 7 times 8?\"\nWhen Arthur Dent objected that this was, unfortunately, factually\ninaccurate, the effort to discover the question was begun all over.\nThis last effort was, I believe, likely to take far longer than\nthe lifespan of the universe, in fact several lifespans of same!\n--\n-------------------------------------------------------------------------------\nMark Wilson, Online Computer Systems.  1-800-922-9204 or 1-301-601-2215\n(Try email address mark@ocsmd.ocs.com....)\nThis file .disclaims everything signed with my .signature, I .mean it!\n-------------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2503, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: Robert_N._Ward@bmug.org\nOrganization: BMUG, Inc.\nSubject: Great deal!\nLines: 10\n\nFor those of you who have TI ps35 laser printers, if you want an envelope\nfeeder, they are now on sale, direct from TI for the unbelievable price of\n$45! Call 1-800-847-2787.  Same for extra paper trays.  They have too many\ngray ones and want to move them out. Strange but true.\n\n--The Bobmeister\n\n**** From Planet BMUG, the FirstClass BBS of BMUG.  The message contained in\n**** this posting does not in any way reflect BMUG's official views.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2504, "properties": {"category": "misc.forsale", "text": "From: kpeterso@nyx.cs.du.edu (Kirk Peterson)\nSubject: Brand new H.P. toner for sale, cheap!\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 30\n\n\nFor Sale...:\n \n        **BRAND NEW** Hewlett Packard toner cartridge\n        model number HP 92295A.\n \n \n        o I am selling this toner because I recently\n          bought a Brother HL-10V printer and the\n          toner that I am selling.  I activated the\n          toner, but ended up returning the printer.\n          The store, however would not take back the\n          toner.  This toner has been used to print\n          only three pages and is in perfect condition.\n          I will protect it for shipment so that no\n          toner escapes.  It comes with all original\n          packaging and manuals.  The toner is compatible\n          with ANY laser printer that uses the model\n          number of the toner I am selling; just look in\n          your manual to see if it will work for you.\n          I will not go below $60.00.  I will pay the\n          shipping to anywhere in the continental \n          United States.\n \n        If you are interested, leave me email or call Kirk\nPeterson at (303) 494-7951 anytime.\n \n        Thank you!\n \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2505, "properties": {"category": "rec.sport.hockey", "text": "From: Scott.Marks@launchpad.unc.edu (Scott Marks)\nSubject: Re: NHL Team Captains\nNntp-Posting-Host: lambada.oit.unc.edu\nOrganization: University of North Carolina Extended Bulletin Board Service\nLines: 18\n\n>And of course, Mike Ramsey was (at one time) the captain in Buffalo prior to\n>being traded to Pittsburgh.  Currently, the Penguins have 3 former captains\n>and 1 real captain (Lemieux) playing for them.  They rotate the A's during the\n>season (and even the C while Mario was out).  Even Troy Loney has worn the C\n>for the Pens.\n\nI had heard(perhaps incorrectly) that while Lemieux was out, noone wore a\nC on their jersey.  The As took turns doing captain duties(whatever they\nare).\n\nScott...\nscott.marks@launchpad.unc.edu\nscott.marks@launchpad.unc.edu\n--\n   The opinions expressed are not necessarily those of the University of\n     North Carolina at Chapel Hill, the Campus Office for Information\n        Technology, or the Experimental Bulletin Board Service.\n           internet:  laUNChpad.unc.edu or 152.2.22.80\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2506, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: Jewish Baseball Players?\n <1qkkodINN5f5@jhunix.hcf.jhu.edu> <C5L9vC.3r6@world.std.com>\nLines: 10\n\nIn article <C5L9vC.3r6@world.std.com>, Eastgate@world.std.com (Mark Bernstein)\nsays:\n>\n>(Which reminds me: do they still serve Kosher hot dogs at the new Comiskey?)\n>\n\nyup.  with onions, of all things.\n\nbob vesterman.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2507, "properties": {"category": "sci.med", "text": "From: etxmow@garbo.ericsson.se (Mats Winberg)\nSubject: Re: HELP for Kidney Stones ..............\nNntp-Posting-Host: garboc29.ericsson.se\nOrganization: Ericsson\nLines: 15\n\n\n   Isn't there a relatively new treatment for kidney stones involving\n   a non-invasive use of ultra-sound where the patient is lowered\n   into some sort of liquid when he/she undergoes treatment? I'm sure\n   I've read about it somewhere. If I remember it correctly it is a\n   painless and effective treatment.\n   A couple of weeks ago I visited a hospital here in Stockholm and\n   saw big signs showing the way to the \"Kidney stone chrusher\" ...\n\n\n\n   Mats Winberg\n   Stockholm, Sweden\n\n\t     \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2508, "properties": {"category": "comp.graphics", "text": "From: sean@whiting.mcs.com (Sean Gum)\nSubject: Re: CView answers\nOrganization: -*-  Whiting Corporation, Harvey, Illinois  -*-\nX-Newsreader: Tin 1.1 PL4\nLines: 11\n\nrenew@blade.stack.urc.tue.nl (Rene Walter) writes:\n: A very kind soul has mailed me this reply for the bugs in CView.\n: Since he isn't in the position to post this himself, he asked me to post\n: it for him, but to leave his name out. So here it comes:\n: \n: CView has quite a number of bugs.  The one you mention is perhaps the most\n:\nA stupid question, but what will CView run on and where can I get it? I\nam still in need of a GIF viewer for Linux. (Without X-Windows.)\nThanks!\n \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2509, "properties": {"category": "sci.space", "text": "From: aa429@freenet.carleton.ca (Terry Ford)\nSubject: A flawed propulsion system: Space Shuttle\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 13\n\n\n\nFor an essay, I am writing about the space shuttle and a need for a better\npropulsion system.  Through research, I have found that it is rather clumsy \n(i.e. all the checks/tests before launch), the safety hazards (\"sitting\non a hydrogen bomb\"), etc..  If you have any beefs about the current\nspace shuttle program Re: propulsion, please send me your ideas.\n\nThanks a lot.\n\n--\nTerry Ford [aa429@freenet.carleton.ca]\nNepean, Ontario, Canada.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2510, "properties": {"category": "rec.sport.hockey", "text": "From: grogers@slacvx.slac.stanford.edu (Greg Rogers)\nSubject: Hey, What about teh Cannucks?\nReply-To: grogers@slacvx.slac.stanford.edu (Greg Rogers)\nOrganization: Stanford Linear Accelerator Center\nLines: 13\n\nHi all,\n\nDue to living in the Bay Area, I as unable to see Vancouver's victory over\nthe Jets last night.  I know the score, but that rarely describes the game.\nCould someone please post a brief sonapsis (sp?) of waht happened.  How well\ndid each team play?  Were the cannucks deserving of the victory?\n\nAlso, could some kind soul please email me the end of season, individual\nplayer stats?\n\nGreg\n\n-- Vancouver for the cup (in a virtual reality)--\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2511, "properties": {"category": "misc.forsale", "text": "From: jbr1@Ra.MsState.Edu (Jarryl B. Ritchie)\nSubject: For Sale:  Cannondale 3.0 Road Bike w/Dura Ace 56 cm\nNntp-Posting-Host: ra.msstate.edu\nOrganization: Mississippi State University\nLines: 12\n\nCannondale 3.0 Road Bike  56 cm\nBright Blue Color\nDura Ace 8 speed not STI, could be easily converted though.\n32 spoke wheelset, clinchers.\n\nComplete Bike $700 or best offer.  All offers will be considered\nthis bike has to go.  Desperate times call for desperate measures.\nWill consider parting out, write for details.\n\njay ritchie\njbr1@ra.msstate.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2512, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nOrganization: The Department of Redundancy Department\nLines: 32\n\nIn article <1r3n8d$4m5@techbook.techbook.com> dgannon@techbook.techbook.com (Dan Gannon) writes:\n>\n>   THE U.S. HOLOCAUST MEMORIAL MUSEUM: A COSTLY AND DANGEROUS MISTAKE\n>\n>                         by Theodore J. O'Keefe\n>\n>HARD BY THE WASHINGTON MONUMENT, within clear view of the Jefferson\n>Memorial, an easy stroll down the Mall to the majestic Lincoln Memorial,\n>has arisen, on some of the most hallowed territory of the United States of\n>America, a costly and dangerous mistake.  On ground where no monument yet\n>marks countless sacrifices and unheralded achievements of Americans of all\n>races and creeds in the building and defense of this nation, sits today a\n>massive and costly edifice, devoted above all to a contentious and false\n>version of the ordeal in Europe during World War II, of non-American\n>members of a minority, sectarian group.  Now, in the deceptive guise of\n>tolerance, the United States Holocaust Memorial Museum begins a propaganda\n>campaign, financed through the unwitting largess of the American taxpayer,\n>in the interests of Israel and its adherents in America.\n\nAfter reading the first paragraph, a quick scan confirmed my first\nimpression: this is a bunch of revisionist and anti-semitic hogwash.\n\nThe NY Times reported on April 18, 1993 that the museum \"was built\nthrough private contributions on Federal land\".  Your hate-mongering\narticle is devoid of current and historical fact, intellectual content\nand social value.  Down the toilet it goes.....\n\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2513, "properties": {"category": "sci.space", "text": "From: 18084TM@msu.edu (Tom)\nSubject: Economics\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 14\n\n\n>If all the ecomomists in the world were laid end to end . . .\n\n>Punchline #1: they would all point in different directions.\n\n>Punchline #2: they wouldn't reach a conclusion.\n\nPunchline #3: it would be a good idea just to leave them there.\n\n-Tommy Mac\n-------------------------------------------------------------------------\nTom McWilliams 517-355-2178 wk   \\\\ As the radius of vision increases,\n18084tm@ibm.cl.msu.edu 336-9591 hm \\\\ the circumference of mystery grows.\n-------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2514, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mwgordon@nyx.cs.du.edu (Mike Gordon)\nSubject: Otronics Attache luggable info needed\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 19\n\n\nHi all,\n \n    I'm looking for some info regarding an old pcmade by Otronics (or\nmaybe Oltronics) called the Attache.  This little beauty is an 8088\n/ Z80 luggable with a 4 or 5 inch screen (monochrome CGA) and 2 360\nfloppies.  \n    For serial ports it has 2 DB-15 connectors (one is labled 'printer')\nand I can't figure out the pinouts for them.  I also don't know if they \nare standard com ports addressable as COM1 and COM2.  I have figured out \nthat they'll only work with DOS 2.something.  \n    \n    If anyone can give me some pointers on this one, I'd be most \nappreciative.  Please reply via email, as I can't keep up with news \nlately.  (Finals are coming up you know :( )\n\nThanks much,\nMike Gordon   N9LOI  mwgordon@nyx.cs.du.edu\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2515, "properties": {"category": "rec.sport.baseball", "text": "From: fierkelab@bchm.biochem.duke.edu (Eric Roush)\nSubject: Re: quick way to tell if your local beat writer is dumb.\nArticle-I.D.: news.12787\nOrganization: Biochemistry\nLines: 28\nNntp-Posting-Host: bruchner.biochem.duke.edu\n\nIn article <1993Apr06.062907.108109@locus.com> aardvark@spica.la.locus.com\n(Warren Usui) writes:\n>In article <Apr.5.16.22.48.1993.11331@pilot.njin.net> gajarsky@pilot.njin.net\n(Bob Gajarsky - Hobokenite) writes:\n>>anyone who writes \"dean palmer has 2 homers  - at this pace, he'll\n>> have 324 home runs!\" should be shot.\n\n\n\nNow, on the other hand, Juan Gonzales probably DOES have a shot at\n324 HR's.  ;).\n\n>The Dodgers after one inning of play have committed one error.  At this rate\n>they'll have 1,455 errors this season!\n\n>Well maybe I'm right this time...\n\n\n\nActually, you might be underpredicting?  ;)\n\n-------------------------------------------------------\nEric Roush\t\tfierkelab@\tbchm.biochem.duke.edu\n\"I am a Marxist, of the Groucho sort\"\nGrafitti, Paris, 1968\n\nTANSTAAFL! (although the Internet comes close.)\n--------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2516, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Basics about maintenance\nArticle-I.D.: cactus.1993Apr6.002142.6753\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 30\n\nIn article <1993Apr5.175719.7892@telxon.mis.telxon.com> joes@telxon.mis.telxon.com (Joe Staudt) writes:\n>In article <1piip4$bo6@agate.berkeley.edu> hubertc@whistle.CS.Berkeley.EDU (Hung-Hsien (Hubert) Chang) writes:\n>>\n>>Hi! being new to a car owner, I would pretty much like to know more about \n>>some basics of maintaining the cars.\n>>\n>>I know the following:\n>>\n>>1. Oil has to be changed every 3000 miles.\n>\n>Change the oil filter, too.\n>\n>>2. Check tires before going on the high way. And fill up the tank.\n>\n>Make that monthly, or more often if you know one or more of your\n>tires has a slow leak.\n\nIf the tire has a leak you should fix it. \n\n>\n>>What others? Thank you.\n>\n>\n>4. Check ALL fluids regularly (every month?), check the oil every time you\n>   fill up with gas.\n\nDoesn't work too well if the engine is hot, its more accurate to check the\noil when the engine is cool, i.e. not when you are at a gas station.\n\nCraig\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.116+0000", "event": "documents", "entityId": 2517, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Weekly reminder for Frequently Asked Questions list\nSupersedes: <reminder_734971619@cs.unc.edu>\nOrganization: University of North Carolina, Chapel Hill\nLines: 36\nDistribution: world\nExpires: 7 May 1993 17:25:40 GMT\nNNTP-Posting-Host: mahler.cs.unc.edu\n\n    This notice will be posted weekly in sci.space, sci.astro, and\nsci.space.shuttle.\n\n    The Frequently Asked Questions (FAQ) list for sci.space and sci.astro is\nposted approximately monthly. It also covers many questions that come up on\nsci.space.shuttle (for shuttle launch dates, see below).\n\n    The FAQ is posted with a long expiration date, so a copy may be in your\nnews spool directory (look at old articles in sci.space). If not, here are\ntwo ways to get a copy without waiting for the next posting:\n\n    (1) If your machine is on the Internet, it can be obtained by anonymous\nFTP from the SPACE archive at ames.arc.nasa.gov (128.102.18.3) in directory\npub/SPACE/FAQ.\n\n    (2) Otherwise, send email to 'archive-server@ames.arc.nasa.gov'\ncontaining the single line:\n\nhelp\n\n    The archive server will return directions on how to use it. To get an\nindex of files in the FAQ directory, send email containing the lines:\n\nsend space FAQ/Index\nsend space FAQ/faq1\n\n    Use these files as a guide to which other files to retrieve to answer\nyour questions.\n\n    Shuttle launch dates are posted by Ken Hollis periodically in\nsci.space.shuttle. A copy of his manifest is now available in the Ames\narchive in pub/SPACE/FAQ/manifest and may be requested from the email\narchive-server with 'send space FAQ/manifest'. Please get this document\ninstead of posting requests for information on launches and landings.\n\n    Do not post followups to this article; respond to the author.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2518, "properties": {"category": "rec.sport.hockey", "text": "From: holger.ohlwein@ap.mchp.sni.de (Holger Ohlwein)\nSubject: Re: Canada 3 Sweden 1 at the World Champioships\nReply-To: holger.ohlwein@ap.mchp.sni.de (Holger Ohlwein)\nOrganization: Siemens Nixdorf Informationssysteme AG\nLines: 16\nNNTP-Posting-Host: 139.21.16.6\n\nIn article <20APR199319243244@venus.cc.hollandc.pe.ca>, white@venus.cc.hollandc.pe.ca (Take me Baby!) writes:\n> \n> \tToday at the World Championships in Munich, Canada scored an \n> impressive 3-1 victory over the defending World Champs, Sweden. \n \nIn the game *I* have seen yesterday in the Olympiahalle of Munich\nCanada won 4-1 against Sweden! The last goal for Canada was at 19:59 in\nthe 3rd period. Maybe you shouldn't go and get you another beer \nbefore the game is over and then post imaginary results...\n\nHolger\n\n-- \nS I E M E N S    Holger Ohlwein   AP153   Otto-Hahn-Ring 6    8000 Muenchen 83\n-------------    Tel: + 49 (89) 636-3746  Email: holger.ohlwein@ap.mchp.sni.de\nN I X D O R F    Never put off till tomorrow what you can avoid all together.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2519, "properties": {"category": "misc.forsale", "text": "Subject: Re: FORSALE: Men Without Hats- Folk of the 80's Part III vinyl\nFrom: andrew@tigress.equinox.gen.nz (andrew king)\nReply-To: Andrew@tigress.equinox.gen.nz\nDistribution: world\nOrganization: Wibble\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 14\n\nGrinning Evil Death (mute@bigwpi.WPI.EDU) wrote:\n\n: Men Without Hats - \"Folk of the 80's (Part III)\" - vinyl\n\nAnyone out there who is willing to part with their copy of\n\nMen without Hats, \"Pop goes the world!\" album on vinyl...or perhaps CD...\n\nplease contact me, we wish to purchase it!\n\n\n|o| Andrew@tigress.equinox.gen.nz  )()                            |o|\n| |\t\t\t\t  |U  |\\   It's late (again)...   | |\n|o|\t\t\t\t  |___|/ Tea and Lemmings please! |o|\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2520, "properties": {"category": "sci.space", "text": "From: jib@bonnie.jsc.nasa.gov (J. I. Blackshear Jr.)\nSubject: DSPSE (was Why Clementine?)\nReply-To: jib@bonnie.jsc.nasa.gov\nOrganization: Barrios Technology @ NASA/JSC; Houston\nLines: 29\n\nThe SDIO has \"contracted\" with the NRL (Naval Research Laboratory) to fly the Clementine Mission.  BTW we call it DSPSE (Deep Space Project Science Experiment).\n\nThe NRL is building the spacecraft, designing the detailed mission and doing the\nintegration and operations (with help from, JPL & Goddard & prob. some folks I\nhave left out...don't be mad).\n\nI am on the TAMP (Trajectory Analysis & Mission Planning) team and am responsable\nfor the IV&V of the traj that Goddard/CSC are designing.\n\nAs for why SDIO is doing it, some of the reasons are:\n\n   1)  the safety constraints are too tight to try to run the LIDAR in LEO\n\n   2)  in LEO we don't get any new radiation data on the sensors, we will get\n       that data on our 9 passages through the Van Allen (sp?) Belts\n\n   3)  since we are going out there...why not piggy-back some general science\n\n   4)  the intercept problem is a lot easied over LONG distances and LONG times\n\nI am sure there are some things I have forgotten, and some I haven't been told\nbut, those are the reasons we all talk about.\n\n-- \n\n\n                                             Jim Blackshear\n                                             jib@bonnie.jsc.nasa.gov\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2521, "properties": {"category": "sci.electronics", "text": "From: babb@sciences.sdsu.edu (J. Babb)\nSubject: Re: Circuit Cellar Ink address?\nOrganization: SDSU - LARC\nLines: 14\nDistribution: na\nNNTP-Posting-Host: larc.sdsu.edu\n\nIn article <1qvlmaINNhuu@shelley.u.washington.edu>,\nptorre@hardy.u.washington.edu (Phil Torre) wrote:\n> \n> Is CCI still published?  If so, does anyone have their address?\n\n\nCircuit Cellar Inc.\n4 Park St.  Suite 20\nVernon, CT  06066\n(203)875-2751\n\nJeff Babb\nbabb@sciences.sdsu.edu   babb@ucssun1.sdsu.edu\nProgrammer, SDSU - LARC\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2522, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Some more about gun control...\nOrganization: Stratus Computer, Inc.\nLines: 87\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1993Apr16.162447.26289@beaver.cs.washington.edu>, graham@cs.washington.edu (Stephen Graham) writes:\n> In article <1qicep$obf@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n> >In article <1993Apr14.232806.18970@beaver.cs.washington.edu>, graham@cs.washington.edu (Stephen Graham) writes:\n\nre: is \"John Q. Public with a gun\" protected?\n\n> >> It's worth noting that US vs. Miller sustained Miller's conviction\n> >> of possession of an illegal firearm, noting that a sawed-off shotgun\n> >> was not a proper militia weapon. \n\n> >No, they noted that no one had CLAIMED that it was a proper militia\n> >weapon (despite having been used in at least two wars).  This was true,\n> >since neither Miller nor his lawyer appeared before the Court.\n\n> Did they or did they not sustain Miller's conviction? I don't have the\n> text of the case handy. \n\nMiller was convicted of owning a sawed-off shotgun and not paying the\nNFA '34 tax.  Snatches of the court's decision:\n\nThe Second Amendment was intended to \"assure the continuation and render \npossible the effectiveness of such a force [the militia]... It must be \ninterpreted and applied with that end in view.\"\n\nThe militia includes \"all males physically capable of acting in concert \nfor the common defense.\"\n\nHowever, regarding sawed-off shotguns, \"certainly it is not within \njudicial notice that this weapon is any part of the ordinary military \nequipment or that its use could contribute to the common defense.\"\n\n\"Judicial notice\" is the term of art here -- it meant that no such\nevidence had been formally presented.  This is different from claiming\nthat they had ruled that it wasn't.\n\n> Yes, shotguns had been used in WWI, the Spanish-American War, and the\n> US Civil War. That was not in question. The possession of a sawed-off\n> shotgun was, i.e., a weapon altered to improve concealibility.\n\nI'm not talking about plain shotguns in war -- I'm talking about short-\nbarrelled (\"sawed-off\") shotguns in war.\n\nCompare Revolutionary War blunderbusses; luparas in the Spanish-American \nWar; and trench-cleaners in WW I.  They were also put to good use by\nUS soldiers in WW II, not to mention being invaluable to \"tunnel rats\" \nin Vietnam, but, of course, \"Miller\" took place in 1939.\n\n> >> Therefore, US vs. Miller supports limited government regulation of \n> >> firearms.\n> >\n> >Don't go arguing down this road unless you are willing to abide by \n> >the consequences that you find at the end of it -- mainly, that the\n> >law-abiding common man has a right to own any weapon that has a militia \n> >purpose, from handguns to sawed-off shotguns and fully automatic weapons.\n> >That, in fact, is what this decision says.\n> \n> You are free to produce evidence that I'm not willing to abide with\n> all the implications of this. \n\nHere is my quandary:  you seem to be arguing that certain types of \nguns fall outside the scope of the Second.  This isn't a useful argument \nunless you believe that some significant gun or class of gun belongs\nin that class.  \n\nI think we both agree that zip guns probably aren't protected.  Maybe \nwe also both agree that all the weapons that random state governments \nhave been banning or trying to ban because they have \"no sporting purpose\" \nand \"no provate citizen would ever need these guns\" DO fall under the \nprotection of the Second.  \n\nSo, given that damn near any gun of any practical utility is or has at \nsome time been used by the military, even if only for marksmanship \ntraining purposes, I need to understand why you are intent on pressing \nthis point, arguing that that SOMETHING is not protected by the Second.\n\n> Just because I don't whole-heartedly endorse the NRA position does not\n> mean that I oppose the RKBA. This attitude is what makes the NRA\n> unpopular.\n\nOften, what makes someone unpopular is what other people say about him.\nHow much did any of us fear or abhor the Branch Davidians six months ago?\nHow many of us feared or abhorred Saddam Hussein five years ago?\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2523, "properties": {"category": "sci.crypt", "text": "From: cuffell@spot.Colorado.EDU (Tim Cuffel)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: na\nLines: 11\n\nI change login passwords every couple of months.  I sure would suck if I had\nto get a new sparc station everytime I wanted to do this.  It seems that this\nis what they expect you to do if you want to routinely change your password\non your phone.  I'm sure the government contractor doesn't mind, but a system\nwhere you can cheaply change keys (DES) has inherent security advantages, \nregardless of the algorithms involved.\n-- \n-Tim Cuffel\tFinger for PGP 2.1  The CIA has admitted that the assassination\n                                    of Saddam Hussien was one of their goals.\nThey failed, of course.  Seems as though that motorcade through downtown Dallas\ntrick only works once.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2524, "properties": {"category": "soc.religion.christian", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: Revelations\nOrganization: University of Georgia, Athens\nLines: 29\n\nIn article <Apr.9.01.11.00.1993.16923@athos.rutgers.edu> topcat!tom@tredysvr.tredydev.unisys.com (Tom Albrecht) writes:\n\n>Now, as to the suggestion that all prophecy tends to be somewhat cyclical,\n>can you elaborate?  I'm not exactly sure what you mean.  How does the\n>suggestion relate to Isaiah's prophecy of the birth of Christ by a virgin? \n>I don't see any cycles in that prophecy.\n\nMaybe cyclical is not the best word.  That is one aspect of it.  In the\ncase of the virgin birth prophecy, it applied to the then and there, and\nalso prophetically to Christ.  The army that threatened the king would \ncease to be a threat in a very short time.  Yet it also prophecied of \nChrist.\n\nSeveral prophecies that refered to Christ also had application at the\ntime they were made.  \"Out of Egypt have I called my Son\" refers both\nto Israel, and prophetically to Christ.   \"Why do the heathen rage\"\nwas said of David and also of Christ.  \n\nAnother example would be the Scripture quoted of Judas, \"and his bishoprick\nlet another take.\"  Another example is something that Isaiah said of His\ndisciples which is also applied to Christ in Hebrews, \"the children thou\nhast given me.\"\n\nHow does the preterist view account for this phenomenon.\n\nLink\n\n\nLink Hudson.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2525, "properties": {"category": "alt.atheism", "text": "From: naren@tekig1.PEN.TEK.COM (Naren Bala)\nSubject: Re: Theists posting\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 21\n\nIn article <C4ux99.AIC@ra.nrl.navy.mil> khan@itd.itd.nrl.navy.mil (Umar Khan) writes:\n\nStuff deleted \n\n>Is there a concordance for the FAQ?  WHich translation is considered\n>most authoritative?  Is there an orthodox commentary for the FAQ\n>available?  Is there one FAQ for militant atheists and another for\n>moderate atheists; or, do you all read from the same FAQ?  If so,\n>how do you resolve differences of interpretation?\n\nHmmmmmmmmmmmm.............................................         \nI can put the same question to followers of any religion. How do you\nMoslems resolve differences of opinion ?? Don't tell me that there\nis one interpretation of the Quran. Read the soc.culture.* newsgroups.\nYou will zillions of different interpretations.\n\n-- Naren\nnaren@TEKIG1.PEN.TEK.COM \n\nAll standard disclaimers apply\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2526, "properties": {"category": "rec.sport.hockey", "text": "From: e8l6@jupiter.sun.csd.unb.ca (Rocket)\nSubject: NHL Playoff leaders as of April 19, 1993\nOrganization: University of New Brunswick\nDistribution: rec.sport.hockey\nLines: 126\n\n    Playoff leaders as of April 19, 1993\n\n    Player       Team   GP  G   A  Pts +/- PIM\n\n    M.Lemieux    PIT     1   2   2   4   0   0\n    Juneau       BOS     1   1   3   4   0   0\n    Noonan       CHI     1   3   0   3   0   0\n    Mogilny      BUF     1   2   1   3   0   0\n    Neely        BOS     1   2   1   3   0   0\n    Brown        STL     1   1   2   3   0   0\n    Jagr         PIT     1   1   2   3   0   0\n    Oates        BOS     1   0   3   3   0   0\n    Carson       LA      1   2   0   2   0   0\n    Hunter       WAS     1   2   0   2   0   0\n    Stevens      NJ      1   2   0   2   0   0\n    Cullen       TOR     1   1   1   2   0   0\n    Hull         STL     1   1   1   2   0   0\n    Khristich    WAS     1   1   1   2   0   0\n    Linden       VAN     1   1   1   2   0   0\n    Racine       DET     1   1   1   2   0   0\n    Shanahan     STL     1   1   1   2   0   0\n    Sydor        LA      1   1   1   2   0   0\n    Yzerman      DET     1   1   1   2   0   0\n    Bure         VAN     1   0   2   2   0   0\n    Coffey       DET     1   0   2   2   0   0\n    Drake        DET     1   0   2   2   0   0\n    Emerson      STL     1   0   2   2   0   0\n    G.Courtnall  VAN     1   0   2   2   0   0\n    Johansson    WAS     1   0   2   2   0   0\n    Lapointe     QUE     1   0   2   2   0   0\n    Niedermayer  NJ      1   0   2   2   0   0\n    Ramsey       PIT     1   0   2   2   0   0\n    Sandstrom    LA      1   0   2   2   0   0\n    Smehlik      BUF     1   0   2   2   0   0\n    Stevens      PIT     1   0   2   2   0   0\n    Adams        VAN     1   1   0   1   0   0\n    Barr         NJ      1   1   0   1   0   0\n    Bellows      MON     1   1   0   1   0   0\n    Burr         DET     1   1   0   1   0   0\n    Chiasson     DET     1   1   0   1   0   0\n    Craven       VAN     1   1   0   1   0   0\n    Dahlquist    CAL     1   1   0   1   0   0\n    Dionne       MON     1   1   0   1   0   0\n    Felsner      STL     1   1   0   1   0   0\n    Ferraro      NYI     1   1   0   1   0   0\n    Francis      PIT     1   1   0   1   0   0\n    Gilmour      TOR     1   1   0   1   0   0\n    Hannan       BUF     1   1   0   1   0   0\n    Heinze       BOS     1   1   0   1   0   0\n    Howe         DET     1   1   0   1   0   0\n    Huddy        LA      1   1   0   1   0   0\n    King         WIN     1   1   0   1   0   0\n    LaFontaine   BUF     1   1   0   1   0   0\n    Lefebvre     TOR     1   1   0   1   0   0\n    McSorley     LA      1   1   0   1   0   0\n    Millen       LA      1   1   0   1   0   0\n    Ronning      VAN     1   1   0   1   0   0\n    Rucinsky     QUE     1   1   0   1   0   0\n    Sakic        QUE     1   1   0   1   0   0\n    Sheppard     DET     1   1   0   1   0   0\n    Steen        WIN     1   1   0   1   0   0\n    Suter        CAL     1   1   0   1   0   0\n    Sweeney      BUF     1   1   0   1   0   0\n    Tipett       PIT     1   1   0   1   0   0\n    Yawney       CAL     1   1   0   1   0   0\n    Young        QUE     1   1   0   1   0   0\n    Barnes       WIN     1   0   1   1   0   0\n    Borschevsky  TOR     1   0   1   1   0   0\n    Brunet       MON     1   0   1   1   0   0\n    Chelios      CHI     1   0   1   1   0   0\n    Ciccarelli   DET     1   0   1   1   0   0\n    Clark        TOR     1   0   1   1   0   0\n    Desjardins   MON     1   0   1   1   0   0\n    Dipietro     MON     1   0   1   1   0   0\n    Donnelly     LA      1   0   1   1   0   0\n    Driver       NJ      1   0   1   1   0   0\n    Duchesne     QUE     1   0   1   1   0   0\n    Ellett       TOR     1   0   1   1   0   0\n    Elynuik      WAS     1   0   1   1   0   0\n    Flatley      NYI     1   0   1   1   0   0\n    Fleury       CAL     1   0   1   1   0   0\n    Gallant      DET     1   0   1   1   0   0\n    Gill         TOR     1   0   1   1   0   0\n    Granato      LA      1   0   1   1   0   0\n    Gretzky      LA      1   0   1   1   0   0\n    Guerin       NJ      1   0   1   1   0   0\n    Hawerchuk    BUF     1   0   1   1   0   0\n    Holik        NJ      1   0   1   1   0   0\n    Housley      WIN     1   0   1   1   0   0\n    Janney       STL     1   0   1   1   0   0\n    K.Brown      CHI     1   0   1   1   0   0\n    Khmylev      BUF     1   0   1   1   0   0\n    Krygier      WAS     1   0   1   1   0   0\n    Larmer       CHI     1   0   1   1   0   0\n    MacInnis     CAL     1   0   1   1   0   0\n    Matteau      CHI     1   0   1   1   0   0\n    McEachern    PIT     1   0   1   1   0   0\n    McLean       VAN     1   0   1   1   0   0\n    McRae        STL     1   0   1   1   0   0\n    Mullen       PIT     1   0   1   1   0   0\n    Muller       MON     1   0   1   1   0   0\n    Murphy       PIT     1   0   1   1   0   0\n    Murzyn       VAN     1   0   1   1   0   0\n    Otto         CAL     1   0   1   1   0   0\n    Pearson      TOR     1   0   1   1   0   0\n    Pivonka      WAS     1   0   1   1   0   0\n    Primeau      DET     1   0   1   1   0   0\n    Probert      DET     1   0   1   1   0   0\n    Reichel      CAL     1   0   1   1   0   0\n    Ricci        QUE     1   0   1   1   0   0\n    Robitaille   LA      1   0   1   1   0   0\n    Roenick      CHI     1   0   1   1   0   0\n    Samuelsson   PIT     1   0   1   1   0   0\n    Semak        NJ      1   0   1   1   0   0\n    Shannon      WIN     1   0   1   1   0   0\n    Shuchuk      LA      1   0   1   1   0   0\n    Sundin       QUE     1   0   1   1   0   0\n    Sutter       CHI     1   0   1   1   0   0\n    Taylor       LA      1   0   1   1   0   0\n    Tocchet      PIT     1   0   1   1   0   0\n    Vaske        NYI     1   0   1   1   0   0\n-- \n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                                           -\n-    Maurice Richard                                                        -\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2527, "properties": {"category": "comp.windows.x", "text": "From: bentz@blustone.uucp (Ray Bentz)\nSubject: SPARC IPC Sprite goes off screen\nOrganization: Bluestone Consulting Inc.\nLines: 21\n\nEnvironment:\n\tX11R4\n\tMotif 1.1.4\n\tSun IPC 4.1.3\n\nProblem:\n\tWhen mouse is moved across screen horizontally, the sprite goes off\n\tof the edge of the screen and reappears at the *other* edge.\n\tIt appears that the server thinks we are running in multi-screen\n\tmode; the cursor seems to \"wrap\" from one side of the screen to\n\tthe other.\n\tAs far as we can tell, we are not running the server in multi-screen\n\tmode.\n\nPlease reply via E-mail.\n\n-- \nRay Bentz                            Phone: (609)727-4600\nBluestone Consulting, Inc.             Fax: (609)778-8125\n1200 Church Street                   uunet: uunet!blustone!bentz\nMount Laurel, NJ 08054            Internet: blustone!bentz@uunet.uu.net\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2528, "properties": {"category": "alt.atheism", "text": "From: Patrick C Leger <pl1u+@andrew.cmu.edu>\nSubject: It's all Mary's fault!\nOrganization: Sophomore, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 23\nNNTP-Posting-Host: po5.andrew.cmu.edu\n\nYou know, it just occurred to me today that this whole Christian thing\ncan be blamed solely on Mary.\n\nSo, she's married to Joseph.  She gets knocked up.  What do you think\nol' Joe will do if he finds she's been getting around?  So Mary comes up\nwith this ridiculous story about God making her pregnant.  Actually, it\ncan't be all THAT ridiculous, considering the number of people that\nbelieve it.  Anyway, she never tells anyone the truth, and even tells\npoor little Jesus that he's hot shit, the Son of God.  Everyone else\ntells him this too, since they've bought Mary's story.  So, what does\nMary actually turn out to be?  An adultress and a liar, and the cause of\nmankind's greatest folly...\n\nJust my recently-minted two cents.\n\nChris\n\n----------------------\nChris Leger\nSophomore, Carnegie Mellon Computer Engineering\nRemember...if you don't like what somebody is saying, you can always\nignore them!\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2529, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: Richard.Solomon@ColoSpgs.NCR.COM (Richard Solomon)\nSubject: Jumper settings for OMTI 8610 ESDI controller????\nOrganization: NCR Microelectronics\nLines: 12\n\nSubject says it all :)\n\nI'm looking for the jumper settings for an SMS OMTI 8610 AT-bus ESDI \ncontroller card.  \n\nThanks in advance,\nRichard\n\nRichard Solomon                                 NCR Microelectronics\n                                                1635 Aeroplaza Drive\nRichard.Solomon@ColoSpgs.NCR.COM                Colorado Springs, CO  80916\n...!uunet!ncrcom!ncr-mpd!Richard.Solomon        (719) 573-3227\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2530, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: Cirrus Logic 5426 Graph Card\nFrom: gardner_a@kosmos.wcc.govt.nz (andy gardner)\nReply-To: gardner_a@kosmos.wcc.govt.nz\nOrganization: Wellington City Council (Public Access), Wgtn, Nz\nNNTP-Posting-Host: kosmos.wcc.govt.nz\nLines: 37\n\nIn article <1qms3c$37t@news.cs.tu-berlin.de>, wong@cs.tu-berlin.de (Wolfgang Jung) writes:\n>After setting up Windows for using my Cirrus Logic 5426 VLB GraphicsCard\n>It moved a normal Window from one place to another...\n\n>...What I was wondering why is it not using the BITBLT  Engine which\n>is suuposed to be on the Chip.\n\n>How are the experiences here..\n>Have I done something wrong ?\n\nThe 5426 has its own set of drivers. You may be using the\ndrivers intended for the 5420 or 5422 by mistake.\n\nBe sure you have the 5426 driver version 1.2\n\n>(I installed the MSWIN 3.1 MultiResolution drivers which where supplied \n>with the Card ?!)\n\nDon't quote me on this one, but I'd steer clear of the\nmulti resolution driver that allows you to change resolution\nwithout exiting Windows.  I think it's buggy.\n\n>Also if there are new(hopefully faster) drrivers around I would love to \n>how to get hold of them :-) (ftp or whatsoever :-) )\n\nVersion 1.3 drivers are due to be release by Cirrus soon.\nUnfortunately, their not available via FTP, you have to dial\nup their BBS in the USA.  I do this from NZ using a 14.4k modem\nto cut down on phone bills.  It took me around 7 minutes to \ndownload the v1.2 driver.\n\n\nGood Luck,  \n\nAndy Gardner,\nWellington, New Zealand\nTe Whanga-nui-a-Tara, Aotearoa\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2531, "properties": {"category": "misc.forsale", "text": "From: sbrogii@copernicus.Tymnet.COM (Scott Brogley)\nSubject: dodge wagon for sale\nSummary: 1964 Dodge Dart V8 wagon $300/negotiable\nKeywords: 1964 Dodge Dart wagon 273ci v8 sale 300 $ for california cal CAL Bay Area bay area Cal\nArticle-I.D.: tymix.3647\nOrganization: 2M&I\nLines: 20\nNntp-Posting-Host: copernicus\n\nTo: Dodge Dart collectors\n\nI have a 1964 Dodge (25th anniversary) Dart 273ci V8 wagon to turn into cash.\nMy asking price is $300.00 although we can negotiate.  The car currently\nresides in Union City, California.  Thats on the east side of the San Francisco\nBay Area in the state of California of the United states of America on the\ncontinent of North America of the planet Earth, third planetary body out from\nSol, a mid range yellowish star in the Western Spiral Arm of the Milkyway\nGalaxy.\n\ntoowhit: north of Silicon Valley\n\nif interested pleas contact Scott by the following means:\n        internet                sbrogii@tymnet.com\n        home answering machine  510.489.6165\n        business voice mail     408.922.6547\n        loud yell & wave money out the window\n                        ^(not recommended in downtown urban environment)\n\nps. I also have a `72 BMW r60/5 for sale, $700.00.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2532, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 35\n\nIn article <1993Apr22.001642.9186@omen.UUCP> caf@omen.UUCP (Chuck Forsberg WA7KGX) writes:\n\n>>>>Can you provide a reference to substantiate that gaining back\n>>>>the lost weight does not constitute \"weight rebound\" until it\n>>>>exceeds the starting weight?  Or is this oral tradition that\n>>>>is shared only among you obesity researchers?\n>>>\n>>>Annals of NY Acad. Sci. 1987\n>>>\n>>Hmmm. These don't look like references to me. Is passive-aggressive\n>>behavior associated with weight rebound? :-)\n>\n>I purposefully left off the page numbers to encourage the reader to\n>study the volumes mentioned, and benefit therefrom.\n>\n\nGood story, Chuck, but it won't wash.  I have read the NY Acad Sci\none (and have it).  This AM I couldn't find any reference to\n\"weight rebound\".  I'm not saying it isn't there, but since you\ncited it, it is your responsibility to show me where it is in there.\nThere is no index.  I suspect you overstepped your knowledge base,\nas usual.\n\n\n\n\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2533, "properties": {"category": "talk.politics.mideast", "text": "From: bf3833@pyuxe.cc.bellcore.com (feigenbaum,benjamin)\nSubject: Clinton's views on Jerusalem\nOrganization: Bellcore, Livingston, NJ\nLines: 15\n\nI recently read that during Bill Clinton's campaign, he stated\nthat if elected he would immediately recognize Jerusalem as\nIsrael's capital.  According to the article, Mr. Clinton\nreaffirmed this after winning the presidency.  However,\nduring recent talks with President Mubarak, Secretary of\nState Christopher stated that \"the status of Jerusalem\nwill be a final matter of discussion between the parties\".\n\nNow I don't want to start a big discussion over the status\nof Jerusalem.  All I want to know is if anyone can \nauthenticate Mr. Clinton's statements with dates, places, etc.\n\nThank you.\n\nBen.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2534, "properties": {"category": "misc.forsale", "text": "From: tchen@magnus.acs.ohio-state.edu (Tsung-Kun Chen)\nSubject: ** Software forsale (lots) **\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\n    ****   This is a post for my friend,  You can either call    ****\n    ****    him  J.K Lee  (614)791-0748    or Drop me a mail     ****\nDistribution: usa\nLines: 39\n\n1.  Software publishing SuperBase 4 windows v.1.3           --->$80\n\n2.  OCR System ReadRight v.3.1 for Windows                  --->$65\n\n3.  OCR System ReadRight  v.2.01 for DOS                    --->$65\n\n4.  Unregistered Zortech 32 bit C++ Compiler v.3.1          --->$ 250\n     with Multiscope windows Debugger,\n     WhiteWater Resource Toolkit, Library Source Code\n\n5.  Glockenspiel/ImageSoft Commonview 2 Windows\n     Applications Framework for Borland C++                 --->$70\n\n6.  Spontaneous Assembly Library With Source Code           --->$50\n\n7.  Microsoft Macro Assembly 6.0                            --->$50\n\n8.  Microsoft Windows v.3.1 SDK Documentation               --->$125\n\n9.  Microsoft FoxPro V.2.0                                  --->$75\n\n10.  WordPerfect 5.0 Developer's Toolkit                    --->$20\n\n11.  Kedwell Software DataBoss v.3.5 C Code Generator       --->$100\n\n12.  Kedwell InstallBoss v.2.0 Installation Generator       --->$35\n\n13.  Liant Software C++/Views v.2.1\n       Windows Application Framework with Source Code       --->$195\n\n14.  IBM OS/2 2.0 & Developer's Toolkit                     --->$95\n\n15.  CBTree DOS/Windows Library with Source Code            --->$120\n\n16.  Symantec TimeLine for Windows                          --->$90\n\n17.  TimeSlip TimeSheet Professional for Windows            --->$30\n\n         Many More Software/Books Available,Price Negotiable\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2535, "properties": {"category": "comp.graphics", "text": "From: Ivanov Sergey <serge@argus.msk.su>\nSubject: Re: Re: VGA 640x400 graphics mode\nDistribution: world\nOrganization: Commercial and Industrial Group ARGUS\nReply-To: serge@argus.msk.su\nLines: 7\n\n> My 8514/a VESA TSR supports this\n\n Can You report CRT and other register state in this mode ?\n Thank's.\n\n        Serge Ivanov (serge@argus.msk.su)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2536, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: shc@cbnewsk.cb.att.com (stephen.chu)\nSubject: Application Errors on WIN31\nOrganization: AT&T\nKeywords: memory errors\nLines: 60\n\n\nH E L P !\n\nI have  a problem in which I'm getting increasing frustrated every day...\n\nSome background about my PC:\n\n- American Megatrend BIOS (clone 386 SX) with 32M of RAM\n- config.sys file:\n\n\tdevice=c:\\dos\\himem.sys\n\tdos=high,umb\n\tdevice=c:\\windows\\emm386.exe noems\n\tfiles=30\n\tbuffers=30\n\tstack=9,256\n\n- autoexec.bat file is using smartdrv.exe +c\n- CMOS set up is running 0 wait state on read and write cache ram.\n\nThe problem: APPLICATION ERROR from WIN31\n\nI started off with a newly installed WIN31 and then installed EXCEL.\nRun excel, no problem. A permanent swap file of size 18K was in place\nfor windows.\n\nOk, I then proceed to install Norton Desktop\nfor Windows version 2.0. No problem with the installation. I also\nallow NDW to alter my autoexec.bat(with the nav running on c:).\nThe problem came when I try to (bring up excel or if excel is running\nand right in the middle of it - like click a selection with the mouse)\nfrom the desktop.\nFirst of all, I always get the application error screen followed by\nanother application error screen with various different messages. The\nfollowing are some of them:\n\n- Stack fault, by TC1024.DRV at address 0001:XXXX where XXXX is some\n  number. (TC1024.DRV is the VGA driver provided by the manufacture)\n- General protection fault, by ndw.exe at the same address\n- Segment load failure, by ndw.exe at same address\n\nSome how, the address flagged was always 0001:something. What is address\n0001:XXXX means? \n\nI have absolutely on idea what this mean. I tried commented out the\nTSR programs from autoexec.bat, no help.\n\nIs it something to do with the emm386 setup which is not telling\nWIN31 what it suppose to know. Looks like the application is crossing\nmemory boundary when it is being loaded or while it is running.\n\nPlease reply if you have any idea or suggestion. I'm willing to try\nanything.\n\n--------------\nSteve Chu\nAT&T Bell Labs\nHolmdel, NJ\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2537, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Striato Nigral Degeneration\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 16\n\nIn article <9303252134.AA09923@walrus.mvhs.edu> ktodd@walrus.mvhs.edu ((Ken Todd)) writes:\n>I would like any information available on this rare disease.  I understand\n>that an operation referred to as POLLIDOTOMY may be in order.  Does anyone\n>know of a physician that performs this procedure.  All responses will be\n>appreciated.  Please respond via email to ktodd@walrus.mvhs.edu\n\nIt isn't that rare, actually.  Many cases that are called Parkinson's\nDisease turn out on autopsy to be SND.  It should be suspected in any\ncase of Parkinsonism without tremor and which does not respond to\nL-dopa therapy.  I don't believe pallidotomy will do much for SND.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.117+0000", "event": "documents", "entityId": 2538, "properties": {"category": "rec.autos", "text": "From: ssave@ole.cdac.com (The Devil Reincarnate)\nSubject: Re: Changing oil by self.\nOrganization: CDAC, WA\nLines: 27\n\nIn article <1993Apr14.130427.21349@porthos.cc.bellcore.com> dje@bmw535.NoSubdomain.NoDomain (Don Eilenberger) writes:\n>\n>In article <1qgi8eINNhs5@skeena.ucs.ubc.ca>, yiklam@unixg.ubc.ca (Yik Chong Lam) writes:\n>|> Hello,\n>|> \n>|> \tDoes anyone know how to take out the bolt under the engine\n>|> compartment?  Should I turn clockwise or counter?  I tried any kind\n>|> of lubricants, WD-40,etc, but I still failed!\n>|> \tDo you think I can use a electric drill( change to a suitable\n>|> bit ) to turn it out?  If I can succeed, can I re-tighten it not too\n>|> tight, is it safe without oil leak?\n>|> Thank you very much in advance------  Winson\n\n  I would suggest you take the car to the nearest Chevron dealer, with\nyour own oil and filter.  Ask for an oil change.  It will cost less\nthan $10.  Watch him/her do it.  Just from watching someone do a job,\nyou will be able to learn and remember the sequence, and do it right\nwhen you do it yourself the next time.  Besides, when he/she loosens\nthe drain nut, the next time around it will be easier for you.\n\n  If it is stuck, use an impact wrench.  Not too much force though.\nUse a new washer each time you put the nut back.....\n\n-S\nssave@ole.cdac.com\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2539, "properties": {"category": "rec.sport.baseball", "text": "From: jxu@black.clarku.edu (Dark Wing Duck!!)\nSubject: Bosox win again! (the team record is 9-3)\nOrganization: Clark University (Worcester, MA)\nLines: 8\n\nToday, Frank Viola and rest of pitcher staff of Boston Red Sox shutout Chicago\nWhite Sox 4-0.  It is Red Sox 9th win of this season.\n\nSo far, Red Sox won all the games Roger and Frank V. pitched (6-0) and 3-3\nwhen other three starters were pitching.  Tomorrow, Dopson will pitch again\n(have a good first start and rocky second start).  I wonder that Bosox can\nplay over 500 ball without Roger and Frank V.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2540, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: spring@diku.dk (Jesper Honig Spring)\nSubject: 486/66DX2 (ISA) vs. 486/50DX2 (EISA)\nOrganization: Department of Computer Science, U of Copenhagen\nLines: 18\n\n\nHello,\n\nCan anyone give me their opinion on which system has got the best overall\nsystem performance;\n\n486/66DX2 with ISA-BUS or\n486/50DX2 with EISA-BUS\n\nThe systems are equal in all other areas.\n\nThanks in advance\n\n-- \n-------------------------------------------------------------------------------\njesper honig spring, spring@diku.dk |        IF ANIMALS BELIEVED IN GOD       \nuniversity of copenhagen, denmark   |         THE DEVIL WOULD BE A MAN\n-------------------------------------------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2541, "properties": {"category": "comp.windows.x", "text": "From: xyzzy@hal.gnu.ai.mit.edu (Daniel Drucker)\nSubject: tape down selections\nArticle-I.D.: hal.1r4cej$1jc8\nOrganization: dis\nLines: 11\nNNTP-Posting-Host: hal.ai.mit.edu\n\nI just had an idea. I'm not sure if its been done and I'm just\nremembering it unconsiously, but I thought that in dialog\nboxes and whatever in windowing systems, there should be a\nway to intuitivly set some things checked or unchecked or\nfilled in a certain way. My idea: tape. You know, like putting\na piece of tape over a light switch?\nJust an idea, if you like it, use it.\n\n-- \nDaniel Drucker   N2SXX          | xyzzy@gnu.ai.mit.edu\nForever, forever, my Coda.      | und2dzd@vaxc.hofstra.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2542, "properties": {"category": "misc.forsale", "text": "From: ehud@eng.umd.edu (Ehud Oentung)\nSubject: MFM Controller Wanted\nOrganization: Project GLUE, University of Maryland, College Park\nLines: 9\nDistribution: usa\nNNTP-Posting-Host: pepsi.eng.umd.edu\n\nI have a friend who is looking to buy MFM controller.\nIf you have one for sale, would you please contact me through\nemail...\n\nThanx.\nEhud.    \nehud@eng.umd.edu\neoentung@cbis.com\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2543, "properties": {"category": "soc.religion.christian", "text": "From: aa888@freenet.carleton.ca (Mark Baker)\nSubject: Re: Nature of God (Re: Environmentalism and paganism)\nReply-To: aa888@freenet.carleton.ca (Mark Baker)\nOrganization: The National Capital Freenet\nLines: 31\n\nIn a previous article, mcovingt@aisun2.ai.uga.edu (Michael Covington) says:\n\n>In article <Apr.13.00.08.44.1993.28424@athos.rutgers.edu> heath@athena.cs.uga.edu (Terrance Heath) writes:\n>That is not necessarily unorthodox.  When Christians call God 'Father', \n>we are using a metaphor.  The Bible in one place refers to God as being\n>like a mother.  God is neither a father nor a mother in the literal\n>sense; God has some of the attributes of both; the father metaphor is\n>usually used because (for most people at most times) it is the less\n>misleading of the two possibilities.\n\nI don't know which passage you are refering to, but the passage I have\noften seen cited as an example of a mother image of God is Isaiah 49:15\n\"Can a woman forget her sucking child / that she should have no \ncompassion / on the son of her womb? / Even these may forget, / \nyet I will not forget you.\" \n \nThis passage is *not* a mother image of God at all. The mother here\nis the image of the best human constancy can show, and it is \ncontrasted with the constancy of God. The mother figure here represents\nmankind, not God.\n-- \n==============================================================================\nMark Baker                  | \"The task ... is not to cut down jungles, but \naa888@Freenet.carleton.ca   | to irrigate deserts.\" -- C. S. Lewis\n==============================================================================\n\n[Luke 13:34   O Jerusalem, Jerusalem, killing the prophets and stoning those\nwho are sent to you! How often would I have gathered your children together\nas a hen gathers her brood under her wings, and you would not!\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2544, "properties": {"category": "comp.windows.x", "text": "From: dla@se05.wg2.waii.com (Doug Acker)\nSubject: Re: build X11R5 with xlc 1.2.1 (Aix 3.2.3e)\nOrganization: western geophysical exploration products\nLines: 50\nNNTP-Posting-Host: se05.wg2.waii.com\nIn-reply-to: dla@se05.wg2.waii.com's message of 22 Apr 1993 01:02:41 GMT\n\n>>>>> On 22 Apr 1993 01:02:41 GMT, dla@se05.wg2.waii.com (Doug Acker) said:\n\tDoug> NNTP-Posting-Host: se05.wg2.waii.com\n\n>>>>> On 21 Apr 1993 03:49:16 GMT, dla@se05.wg2.waii.com (Doug Acker) said:\n\tDoug> NNTP-Posting-Host: se05.wg2.waii.com\n\tDoug> I  am  having  a  big problem trying to build MIT X11R5 with xlc 1.2.1\n\tDoug> (the  one  bundled  with  AIX  3.2.3e).   Its almost the linker is not\n\tDoug> working properly with shared libraries.\n\n\tDoug> I've built X11R5 with no problem before .. but now its all  headaches.\n\tDoug> For example, the xset client complains that libXmu doesnt have a bunch\n\tDoug> of Xt routines and shr.o is missing (or  something  like  that).   The\n\tDoug> build of libXmu DOES link in libXt  so I am really perplexed  what  is\n\tDoug> going on.\n\n\n\tDoug> ....following up on this, the specific error I get is:\n\tDoug> Could not load program ./xset \n\tDoug> Symbol XtVaSetValues in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Symbol XtName in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Symbol XtWindowOfObject in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Symbol XtGetConstraintResourceList in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Symbol XtDisplayToApplicationContext in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Symbol XtAppSetTypeConverter in ../.././lib/Xmu/libXmu.a is undefined\n\n\n\n\n\n\n\n\n\tDoug> Symbol XtScreenDatabase in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Symbol XtResolvePathname in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Symbol XtCvtStringToFont in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Symbol XtCallConverter in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Symbol XtDisplayStringConversionWarning in ../.././lib/Xmu/libXmu.a is undefined\n\tDoug> Could not load library libXmu.a[shr.o]\n\tDoug> Error was: Exec format error\n\n\n....  a  search  on  IBMLINK  revealed that this is similar to IX33890\n(howervre this was closed USE).\n--\nDouglas L.Acker                Western Geophysical Exploration Products\n____    ____     ____          a division of Western Atlas International Inc.\n\\   \\  /   /\\   /   /\\         A Litton / Dresser Company\n \\   \\/   /  \\ /   /  \\        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n  \\  /   / \\  /   /\\   \\       Internet  :  acker@wg2.waii.com\n   \\/___/   \\/___/  \\___\\      Voice     :  (713) 964-6128\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2545, "properties": {"category": "soc.religion.christian", "text": "From: revc@garg.campbell.ca.us (Bob Van Cleef)\nSubject: Re: SSPX schism ?\nOrganization: The Land of Garg\nLines: 48\n\n>From: jhpb@sarto.budd-lake.nj.us (Joseph H. Buehler)\n\n\n>Many Catholics will decide to side with the Pope.  There is some\n>soundness in this, because the Papacy is infallible, so eventually\n>some Pope *will* straighten all this out.  But, on the other hand,\n>there is also unsoundness in this, in that, in the short term, the\n>Popes may indeed be wrong, and such Catholics are doing nothing to\n>help the situation by obeying them where they're wrong.  In fact, if\n>the situation is grave enough, they sin in obeying him.  At the very\n>least, they're wasting a great opportunity, because they are failing\n>to love Christ in a heroic way at the very time that He needs this\n>badly.\n\nJoe;\n\nYour logic excapes me. \n\nIf the Papacy is infallible, and this is a matter of faith, then the \nPope cannot \"be wrong!\"  If, on the other hand, this is not a matter \nof faith, but a matter of Church law, then we should still obey as the\nPope is the legal head of the church.\n\nIn other words, given the doctrine of infallibility, we have no choice\nbut to obey.\n\nBob\n\n-- \n><>  ><>  ><>  ><>  ><>  ><>     \\|/     <><  <><  <><  <><  <><  <><\nBob Van Cleef              Peace -0- be      revc@garg.Campbell.CA.US\nThe Land of Garg BBS        unto /|\\ you           BBS (408) 378-5108\n><>  ><>  ><>  ><>  ><>  ><>      |      <><  <><  <><  <><  <><  <><\n\n\n[You might want to look at the FAQ on infallibility.  The doctrine on\ninfallibility does not say that the pope is always right.  All\nCatholic theologians acknowledge that there have been a number of\noccasions when the pope was wrong.  There appear to be two aspects to\ninfallibility.  One is a general concept that in the long run the\nChurch is protected from serious error.  However this does not mean\nthat it's impossible for it to take wrong turns at one time or\nanother.  The more specific concept of papal infallibility is that in\nvery specific circumstances a papal statement can be known to be\ninfallible.  However a relatively small fraction of statements meet\nthose criteria.  This does not absolve Catholics from the duty to obey\neven \"ordinary\" teachings of the pope.  However only a few teachings\nare made in a way that is explicitly infallible.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2546, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Big amateur rockets\nOrganization: U of Toronto Zoology\nLines: 30\n\nIn article <C5Ky9y.MKK@raistlin.udev.cdc.com> pbd@runyon.cim.cdc.com (Paul Dokas) writes:\n>Anyhow, the ad stated that they'd sell rockets that were up to 20' in length\n>and engines of sizes \"F\" to \"M\".  They also said that some rockets will\n>reach 50,000 feet.\n>\n>Now, aside from the obvious dangers to any amateur rocketeer using one\n>of these beasts, isn't this illegal?  I can't imagine the FAA allowing\n>people to shoot rockets up through the flight levels of passenger planes.\n\nThe situation in this regard has changed considerably in recent years.\nSee the discussion of \"high-power rocketry\" in the rec.models.rockets\nfrequently-asked-questions list.\n\nThis is not hardware you can walk in off the street and buy; you need\nproper certification.  That can be had, mostly through Tripoli (the high-\npower analog of the NAR), although the NAR is cautiously moving to extend\nthe upper boundaries of what it considers proper too.\n\nYou need special FAA authorization, but provided you aren't doing it under\none of the LAX runway approaches or something stupid like that, it's not\nespecially hard to arrange.\n\nAs with model rocketry, this sort of hardware is reasonably safe if handled\nproperly.  Proper handling takes more care, and you need a lot more empty\nair to fly in, but it's basically just model rocketry scaled up.  As with\nmodel rocketry, the high-power people use factory-built engines, which\neliminates the major safety hazard of do-it-yourself rocketry.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2547, "properties": {"category": "talk.politics.guns", "text": "From: chiu@io.nosc.mil (Francis Chiu)\nSubject: Re: Guns GONE. Good Riddance !\nOrganization: San Diego State University, College of Sciences\nLines: 50\nNNTP-Posting-Host: io.nosc.mil\nX-Newsreader: TIN [version 1.1 PL7]\n\njrm@gnv.ifas.ufl.edu wrote:\n: You are loosing.\n: There is no question about it. \n: Of those who vote, your cause is considered an abomination. No matter\n: how hard you try, public opinion is set against the RKBA. \n\n  Care to show some *real* numbers instead of something HCI make up?\n  I thought so, all \"foaming at the mouth\" shouting but nothing is \n  ever said...\n   \n: This is the end. By the finish of the Clinton administration, your\n: RKBA will be null and void. Tough titty.\n\n  Well, we'll just have to wait and see about that, won't we?  Or are\n  you quite satisified with living in your little fantasy?\n \n< SNIP >\n: cases of firearms abuses has ruined your cause. There is nothing you\n< SNIP >\n: The press is against you, the public (the voting public) is against\n: you, the flow of history is against you ... this is it !\n\n  Not true, it is ONLY those who are ignorant and are afraid to understand,\n  accept, and deal with the real problems behind this violent society \n  who are proposing gun control as a band-aid solution.  May be I should \n  refresh your memory with a quote from Prez. Clintion? \n\n    \"It's the criminals, stupid!\"  \n\n  HEY, why is he cutting the budget for more prisons? May be someone need \n  to remind him of what he promised...on second thought, why bother...\n\n: Surrender your arms. Soon enough, officers will be around to collect\n: them. Resistance is useless. They will overwhelm you - one at a time.\n: Your neighbors will not help you. They will consider you more if an\n: immediate threat than the abstract 'criminal'. \n\n  Oooh, WACO II, coming to your living room soon...  When was the last\n  time you turned off your TV?  Can't remember?  I thought so...\n\n: Too fucking bad. You have gone the way of the KKK. Violent solutions\n: are passe'. Avoid situations which encourage criminals. Then you will\n: be as safe as possible. Such as it is ...\n\n  Wait, I got it, this is a late April fool post, right?  I didn't\n  think ANYBODY is stupid enough to post something like this...good one\n  guys, this group was getting boring without Holly and Susan. \n\n--Francis Chiu, Professional Student, Programmer, Tax Payer. \n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2548, "properties": {"category": "comp.sys.mac.hardware", "text": "From: petrack@vnet.IBM.COM\nSubject: disabling all power management interrupts\nReply-To: petrack@vnet.IBM.COM\nDisclaimer: This posting may contain no views at all\nNews-Software: Usenet 3.1\nLines: 21\n\nCould someone please do one of the following:\n1. Point to an init that allows me to turn off power management on my\n   Duo 210.\n1. Write an init that would allow me to turn off ALL power management on\n   Duo 210.\n2. Point me to documentation on power management so that I can write such\n   an init.\n3. Explain to me why such an init is totally or partially impossible.\n\nIdeally, of course, I would like to be able to turn in on and off on the\nfly.\n\nSurely such an init would be very helpful to Powerbook owners who want to\ndo MIDI... I cannot imagine why it is not possible to do, unless it requires\nApple to divluge some secret. And if that is the case, the surely APPLE\ncould write the init. (Unless Apple brings out new models so fast these\ndays that even THEY don't know how they work).\n\nScott Petrack\nPetrack@haifasc3.vnet.ibm.com\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2549, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: Cookamunga Tourist Bureau\nLines: 14\n\nIn article <RN652B5w165w@tweekco.uucp>, alizard@tweekco.uucp (A.Lizard)\nwrote:\n> Judging from postings I've read all over Usenet and on non-Usenet\n> BBs conferences, Barney is DEFINITELY an endangered species. Especially\n> if he runs into me in a dark alley.\n\nPlease, please don't make Barney to a modern martyr/saviour mythical\nfigure. I detest this being, and if humans will create a religion in his\nname, then life will be unbearable :-).\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2550, "properties": {"category": "rec.sport.baseball", "text": "From: kesslerm@columbia.dsu.edu (MICHAEL KESSLER)\nSubject: Box Scores\nLines: 8\nOrganization: Dakota State University\nLines: 8\n\n\n\tI was wondering if anyone types in the box scores each day.\nI am at college and am not able to get them till the weekend.\nI would be thankful if someone could p-mail the Twins box scores every so \noften.\nAlso I am looking for a Twins 93 schedule.\n\nkesslerm@columbia.dsu.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2551, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gt2617c@prism.gatech.EDU (Brad Smalling)\nSubject: Re: Help with changing Startup logo\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 24\n\nIn article farley@access.digex.com (Charles U. Farley) writes:\n>I installed the s/w for my ATI graphics card, and it bashed my Windows\n>logo files.  When I start Windows now, it has the 3.0 logo instead of\n>the 3.1 logo.\n>I thought the files that controlled this were\n>\\WINDOWS\\SYSTEM\\VGALOGO.RLE\n>\\WINDOWS\\SYSTEM\\VGALOGO.LGO\t\n>I restored these files, but it didn't change the logo.  Anyone know what\n>the correct files are?\n\nFor a VGA card these are the correct files but you can't just copy them\nback and expect it to work.  You have to create a new WIN.COM file.  Try\nthe command (you will have to worry about what directories each file is in\nsince I don't know your setup):\n\nCOPY /B WIN.CNF+VGALOGO.LGO+VGALOGO.RLE WIN.COM\n\n(I grabbed this from _Supercharging Windows_ by Judd Robbins--great book)\nThis is also how you can put your own logo into the Windows startup screen.\nAn RLE file is just a specially compressed BMP file.\n\nHope this helps\n-- \nBrad Smalling :: Jr.EE :: GA Tech :: Atlanta, GA :: gt2617c@prism.gatech.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2552, "properties": {"category": "misc.forsale", "text": "From: geos56@Judy.UH.EDU\nSubject: WholeSale TV sets.\nOrganization: University of Houston\nLines: 3\nReply-To: geos56@Judy.UH.EDU\nNNTP-Posting-Host: judy.uh.edu\n\nWe are representing some Chinese TV manufacturers who want to wholesale their\nproducts to Latin American countries. We are looking for brokers/agents who\ncan help us. Products include both color and black/white TVs from 11\" to 24\". If interested, please e-mail or fax to Mr Z Ho at 713-926-7953 (USA) for more information or inquiries. good commission.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2553, "properties": {"category": "sci.space", "text": "From: landis@stsci.edu (Robert Landis,S202,,)\nSubject: Re: Space Debris\nReply-To: landis@stsci.edu\nOrganization: Space Telescope Science Institute, Baltimore MD\nLines: 14\n\nAnother fish to check out is Richard Rast -- he works\nfor Lockheed Missiles, but is on-site at NASA Johnson.\n\nNick Johnson at Kaman Sciences in Colo. Spgs and his\nfriend, Darren McKnight at Kaman in Alexandria, VA.\n\nGood luck.\n\nR. Landis\n\n\"Behind every general is his wife.... and...\n behind every Hillary is a Bill . .\"\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2554, "properties": {"category": "rec.motorcycles", "text": "From: rwalls@twg.com (Roger Walls)\nSubject: Re: Boom! Dog attack!\nOrganization: The Wollongong Group, Palo Alto, CA\nLines: 25\n\nIn article <viking.734937529@ponderous.cc.iastate.edu> viking@iastate.edu (Dan Sorenson) writes:\n>ryan_cousineau@compdyn.questor.org (Ryan Cousineau)  writes:\n>\n>mere 20mph or so, gravel road with few loose rocks on it (as in,\n>just like bad concrete), and 2200lbs of swinging beef jumped a\n>fence, came out of the ditch, and rammed me!  When I saw her jump\n>the fence I went for the gas, since she was about 20 feet ahead\n>of me but a good forty to the side.  Damn cow literally chased me\n>down and nailed me.  No damage to cow, a bent case guard and a\n>severely annoyed rider were the only casualties.  If I had my\n>shotgun I'd still be eating steak.  Nope, if 2200lbs of cow\n>can hit me when I'm actively evading, forget a much more\n>manueverable dog.  Just run them over.\n>\n\nOne day out riding, my friend and i were passing a field of goats and\nnoticed 2 out on the road. As we slowed to pass the ram made a dash at \nmy friend just missing him and then tangling it self up in the barb wire\nfence. Being good samaritains and generally nice guys we turned around to \nuntrangle the goat from the barbed wire. As I pulled up next to him\n(seeing him still tangled up), stopped the bike and got off the Goat had\nvanished (into the field I guess).\n\n\t\tJolly Roger\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2555, "properties": {"category": "sci.electronics", "text": "From: Mike Diack <mike-d@staff.tc.umn.edu>\nSubject: 16 bit serial converters\nX-Xxdate: Tue, 20 Apr 93 06:56:45 GMT\nNntp-Posting-Host: dialup-slip-1-34.gw.umn.edu\nOrganization: persian cat & carpet co.\nX-Useragent: Nuntius v1.1.1d7\nLines: 2\n\nSomeone was looking for these a few weeks ago - check out comp.dsp\nMike.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2556, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Monophysites and Mike Walker\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 20\n\nNabil Ayoub writes:\n\n>As a final note, the Oriental Orthodox and Eastren Orthodox did sign a\n>common statement of Christology, in which the heresey of >Monophysitism\nwas condemned. So the Coptic Orthodox Church does not >believe in\nMonophysitism.\n\nSorry!\n\nWhat does the Coptic Church believe about the will and energy of Christ?\n Were there one or were there two (i.e. Human and Divine) wills and\nenergies in Him.\n\nAlso, what is the objection ot the Copts with the Pope of Rome (i.e. why\nis there a Coptic Catholic Church)?  Do you reject the supreme\njurisdiction of the 263rd sucessor of St. Peter (who blessed St. John\nMark, Bishop of Alexandria was translator for) and his predecessors?  Or\nhis infallibility?  Or what other things perhaps?\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2557, "properties": {"category": "sci.electronics", "text": "From: tomb@hplsla.hp.com (Tom Bruhns)\nSubject: Re: A question about 120VAC outlet wiring..\nOrganization: HP Lake Stevens, WA\nLines: 21\n\ncrisp@ecsvax.uncecs.edu (Russ Crisp) writes:\n\n>SO..  Here's my question.  It seems to me that I'd have the\n>same electrical circuit if I hooked a jumper from the neutral\n>over to the ground screw on new 'three prong' grounding outlets.\n>What's wrong with my reasoning here?  \n\nMay I respectfully suggest you NOT do this??  The ground is\nsupposed to be a protective ground, and though what you suggest\nlooks good on paper, it's dangerous to rely on the same wire for\npower and protection.  It'd never meet code, and if you now own\nthe property and later sell it, you may end up with liabilities\nyou don't want, and if you _don't_ now own it, well...\n\nThere's a \"wiring\" FAQ that I think addresses this.  I believe\nan alternative is use of a GFCI, but I'm really not sure what\ncurrent code allows in this area.  The GFCI senses alternate\n(unwanted) current paths, and doesn't rely on a specific\nprotective ground wire, at least not beyond the GFCI in the\nprotected circuit.  GFCI breakers are available (but expensive).\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2558, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: paladin@world.std.com (Thomas G Schlatter)\nSubject: Looking for Tom Haapanen\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 11\n\nI'm trying to find Tom Haapanen, formerly tom@wes.on.ca\nwho was the keeper of the FAQ for this newsgroup.\nHe was working at Watrerloo Engineering Software,\nbut netfind can't even find that (but it may have\nbeen a uucp connection).  If anyone knows how to\ncontact Tom, please let me know.\n\nThanks,\nTom Schlatter\npaladin@world.std.com\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2559, "properties": {"category": "rec.sport.hockey", "text": "From: kirk@gaul.csd.uwo.ca (ANDREW KIRK)\nSubject: Re: Goodbye, good riddance, get lost 'Stars\nOrganization: Computer Science Dept., Univ. of Western Ontario, London, Canada\nNntp-Posting-Host: obelix.gaul.csd.uwo.ca\nLines: 34\n\nIn article <9505@blue.cis.pitt.edu> gomer+@pitt.edu (Richard J Coyle) writes:\n>In article <1993Apr19.232038.26593@julian.uwo.ca> kirk@gaul.csd.uwo.ca (ANDREW KIRK) writes:\n>>First off, anyone accepted into the Western Business School is not a dork. \n>>Second, just because one person out of a country of 27 Million doesn't think\n>>before he/she posts an article, does NOT mean that he/she is embarrasing\n>>Canada. This network is for expressing what you feel are your thoughts. Just\n>>because someone doesn't agree with you, this does not give you the right to\n>>call them assholes. Anyways, the North Stars are SHIT!!!!!!!!!\n>\n>Actually, I think it does give people the privilege of calling folks\n>like you assholes.   Although my own asshole might take offense at being\n>grouped in with a bunch of losers like you.\n>\n>I've never heard of the Western Business School, anyhow.  Probably a\n>chickenshit place.\n>\n>rick\n\nLosers like us? You are the fucking moron who has never heard of the Western\nBusiness School, or the University of Western Ontario for that matter. Why \ndon't you pull your head out of your asshole and smell something other than\nshit for once so you can look on a map to see where UWO is! Back to hockey,\nthe North Stars should be moved because for the past few years they have\njust been SHIT. A real team like Toronto would never be moved!!!\n\nAndrew--\n\n\n\n-- \nAndrew Kirk\nUniversity of Western Ontario\nLondon, Ontario\nGO LEAFS GO!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2560, "properties": {"category": "sci.med", "text": "Organization: University of Maine System\nFrom: Andrew T. Robinson <ANDY@MAINE.MAINE.EDU>\nSubject: Reasons for hospitals to join Internet?\nLines: 8\n\nWhat resources and services are available on Internet/BITNET which\nwould be of interest to hospitals and other medical care providers?\nI'm interested in anything relelvant, including institutions and\nbusinesses of interest to the medical profession on Internet,\nspecial services such as online access to libraries or diagnostic\ninformation, etc. etc.\n\nPlease reply directly to ANDY@MAINE.EDU\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2561, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kelleyb@austin.ibm.com (Kelley Boylan)\nSubject: Re: Screen Death: Mac Plus/512\nOriginator: kelleyb@kelleyb.austin.ibm.com\nReply-To: kelleyb@austin.ibm.com\nOrganization: IBM Austin, PowerPC\nLines: 29\n\n\n> I have a (very old) Mac 512k and a Mac Plus, both of which \n> have the same problem.\n> Their screens blank out, sometimes after a minor physical jolt\n> (such as inserting a floppy in the internal drive), sometimes \n> all by themselves (computer left to itself just goes blank).\n> \n> I have replaced the wires connecting the logic boards and the \n> video board, because it seemed at first that jiggling the wires\n> made the screen come back on.  This worked for a while, but the\n> blanking out has returned.\n> \n> Can I do anything?  Do I need a new power supply?  A new CRT?\n> A new computer?\n\nI had the same problem with my 512 a long time ago.  Resoldering\nthe joints on the motherboard (all of them) fixed it.  Turns out\nthat continuous heating and cooling caused annular (ring-shaped)\ncracks to develop in the solder, effectively cutting the video\ncircuitry off.  If you're not a solder-jockey you might want to\nhave someone else do it -- I took mine to an electrical engineer\nbuddy -- but it was a 20-minute job, tops.\n\n-Kelley-\n-- \n-----------------------------------------------------------------\nThomas Kelley Boylan, PowerPC, IBM Austin, kelleyb@austin.ibm.com\n-----------------------------------------------------------------\n                  I buy and pay for my own opinions\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2562, "properties": {"category": "talk.politics.guns", "text": "From: eyc@acpub.duke.edu (EMIL CHUCK)\nSubject: Re: Bill 'Blame America First' Clinton Strikes Again.\nSummary: Repost from alt.rush-limbaugh\nDistribution: na\nOrganization: Duke University; Durham, N.C.\nLines: 31\nNntp-Posting-Host: red5.acpub.duke.edu\n\njeddi@next06pg2.wam.umd.edu (Anheuser Busch) writes:\n >This argument sounds very stupid.. if the ability to make guns from\n >\"simple metalworking\" was easy,  then Drug dealers would make their own \n >wouldn't they???.. why spend hundreds of dollars buying a gun that\n >somebody else made cheap and is selling it to you at an\n >exorbitant markup???... The simple truth of the matter is, that regardless\n >of how easy it is to make guns, banning guns will reduce the \n >the number of new guns and seriuosly impede the efforts of a \n >killer intent on buying a weapon....\n >To show why the tools argument is the silliest i have ever seen.. take an\n >analogy from computer science... almost every computer science major\n >can write a \"wordprocessor\" yet we(comp sci majors)  would willingly pay 3  \n >to 400 bucks for a professional software like wordperfect... why don't we  \n >just all write our own software???...... Because it is highly  \n >inconvinient!!!..\n >Same with guns... secondly.. how does one get this gunpowder for the \n >\"home made gun\" ??? Take a quick trip to the local 7-eleven???.\n > If guns were really that simple to make... the Bosnian muslims would\n >be very happy people (or is it the case that metalworking tools are\n >banned in bosnia??? (deep sarcasm)  ).\n >\n >well this is my two cents..\n >   i will now resume reading all these ridiculus post from people\n >     who must make their living doing stand-up comedy.\n** END OF FORWARDED MATERIAL **\n\n-- \nAnd so, the rubber spheroid arced beneath the brilliant lights.\nHeaded for a hoop of dreams he'd dreamt of all those nights.\nThe crowd gasped as the ball descended; Would it grant their fondest wish?\nThere was no doubt in Casey's mind, He knew it was a *SWISH*!\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.118+0000", "event": "documents", "entityId": 2563, "properties": {"category": "sci.electronics", "text": "From: cyberman@toz.buffalo.ny.us (Cyberman)\nSubject: Re: Analog switches/Balan\nLines: 31\nX-Maildoor: WaflineMail 1.00r\n\n{Michael Fulbright} said\n   \"Analog switches/Balanced\"\n      to <All> on 04-15-93  01:08\n MF> I am trying to build a synchronous demodulator and I've hit a snag.\n MF> In my application I want to be able to change the gain of an\n MF> op amp amplifier from 1 to -1, controlable via a digital input.\n MF> The most obvious way I've come up with is to use analog switches\n MF> to adjust the gain of the op amp. The only analog switch I have\n MF> experience with it the 4066. Unfortunately I want to switch an\n MF> AC signal which goes from about -5V to 5V, and the 4066 is only\n MF> for positive signals.\n\n    How about using a 4053 it has a seperate ground for the\n    analog outputs.  It would get you 3 bits.\n\n MF> Another part which caught my eye was the Analog Devices AD630. This\n MF> is a balanced demodulator which appears to fill exactly the need I\n MF> have. The data sheet was somewhat skimpy on application notes. Could\n MF> someone comment on using this chip for the following application?\n\n    Or how about a multiplying D/A convertor?  This is\n    essentiallty what you are makeing.\n\n\n                Stephen Cyberman@Toz.Buffalo.NY.US\n             Mangled on Fri  04-16-1993  at 13:36:11\n\n... Catch the Blue Wave!\n---\n * Blue Wave/QWK v2.12 *\n                          \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2564, "properties": {"category": "comp.graphics", "text": "From: orourke@sophia.smith.edu (Joseph O'Rourke)\nSubject: Re: Fast polygon routine needed\nKeywords: polygon, needed\nOrganization: Smith College, Northampton, MA, US\nLines: 5\n\nIn article <C5n3x0.B5L@news.cso.uiuc.edu> osprey@ux4.cso.uiuc.edu (Lucas Adamski) writes:\n>This may be a fairly routine request on here, but I'm looking for a fast\n>polygon routine to be used in a 3D game.\n\n\tA fast polygon routine to do WHAT?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2565, "properties": {"category": "rec.motorcycles", "text": "From: charlie@elektro.cmhnet.org (Charlie Smith)\nSubject: Re: Where's The Oil on my K75 Going?\nOrganization: Why do you suspect that?\nLines: 35\n\nIn article <C5DLvo.6J@skates.gsfc.nasa.gov> tim@intrepid.gsfc.nasa.gov (Tim Seiss) writes:\n>\n>  After both oil changes, the oil level was at the top mark in the\n>window on the lower right side of the motor, but I've been noticing\n>that the oil level seen in the window gradually decreases over the\n>miles.  I'm always checking the window with the bike on level ground\n>and after it has sat idle for awhile, so the oil has a chance to drain\n>back into the pan.  The bike isn't leaking oil any place, and I don't\n>see any smoke coming out of the exhaust.\n>\n>  My owner's manual says the amount of oil corresponding to the\n>high and low marks in the oil level window is approx. .5 quart.  It\n>looks like my bike has been using about .25 quarts/1000 miles.  The\n>owner's manual also gives a figure for max. oil consumption of about\n>.08oz/mile or .15L/100km.\n>\n>  My question is whether the degree of \"oil consumption\" I'm seeing on\n>my bike is normal?  Have any other K75 owners seen their oil level\n>gradually and consistently go down?  Should I take the bike in for\n>work?  I'm asking local guys also, to get as many data points as I\n>can.  \n\n\nIt's normal for the BMW K bikes to use a little oil in the first few thousand \nmiles.  I don't know why.  I've had three new K bikes, and all three used a\nbit of oil when new - max maybe .4 quart in first 1000 miles; this soon quits\nand by the time I had 10,000 miles on them the oil consumption was about zero.\nI've been told that the harder you run the bike (within reason) the sooner\nit stops using any oil.\n\n\nCharlie Smith   charlie@elektro.cmhnet.org  KotdohL  KotWitDoDL  1KSPI=22.85\n  DoD #0709   doh #0000000004  &  AMA, MOA, RA, Buckey Beemers, BK Ohio V\n              BMW K1100-LT,  R80-GS/PD,  R27,  Triumph TR6 \n                          Columbus, Ohio USA\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2566, "properties": {"category": "comp.graphics", "text": "From: tdawson@llullaillaco.engin.umich.edu (Chris Herringshaw)\nSubject: Ray tracer for ms-dos?\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 9\nDistribution: world\nNNTP-Posting-Host: llullaillaco.engin.umich.edu\nOriginator: tdawson@llullaillaco.engin.umich.edu\n\n\nSorry for the repeat of this request, but does anyone know of a good\nfree/shareware program with which I can create ray-traces and save\nthem as bit-mapped files?  (Of course if there is such a thing =)\n\nThanks in advance\n\nDaemon\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2567, "properties": {"category": "rec.motorcycles", "text": "From: stefan@prague (Stefan Fielding-Isaacs)\nSubject: Racelist: WHO WHAT WHERE\nDistribution: rec\nOrganization: Gain Technology, Palo Alto, CA.\nLines: 111\nNntp-Posting-Host: prague.gain.com\n\n\n Greetings fellow motorcycle roadracing enthusiasts!\n\n BACKGROUND\n ----------\n\n The racing listserver (boogie.EBay.sun.com) contains discussions \n devoted to racing and racing-related topics. This is a pretty broad \n interest group. Individuals have a variety of backgrounds: motojournalism, \n roadracing from the perspective of pit crew and racers, engineering,\n motosports enthusiasts.\n\n The size of the list grows weekly. We are currently at a little\n over one hundred and eighty-five members, with contributors from\n New Zealand, Australia, Germany, France, England, Canada\n Finland, Switzerland, and the United States.\n\n The list was formed (October 1991) in response to a perceived need \n to both provide technical discussion of riding at the edge of \n performance (roadracing) and to improve on the very low signal-to-noise \n ratio found in rec.motorcycles. Anyone is free to join.\n\n Discussion is necessarily limited by the rules of the list to \n issues related to racing motorcycles and is to be \"flame-free\".  \n\n HOW TO GET THE DAILY DISTRIBUTION\n ---------------------------------\n\n You are welcome to subscribe. To subscribe send your request to:\n\n\n        race-request@boogie.EBay.Sun.COM\n\n\n Traffic currently runs between five and twenty-five messages per day\n (depending on the topic). \n\n   NB: Please do _not_ send your subscription request to the\n       list directly.\n \n After you have contacted the list administrator, you will receive\n an RSVP request. Please respond to this request in a timely manner\n so that you can be added to the list. The request is generated in\n order to insure that there is a valid mail pathway to your site.\n \n Upon receipt of your RSVP, you will be added to either the daily\n or digest distribution (as per your initial request).\n\n HOW TO GET THE DIGEST DISTRIBUTION\n ----------------------------------\n\n It is possible to receive the list in 'digest'ed form (ie. a\n single email message). The RoadRacing Digest is mailed out \n whenever it contains enough interesting content. Given the\n frequency of postings this appears to be about every other\n day.\n\n Should you wish to receive the list via digest (once every \n 30-40K or so), please send a subscription request to:\n\n\n        digest-request@boogie.EBay.Sun.COM\n\n\n HOW TO POST TO THE LIST\n -----------------------\n\n This is an open forum. To post an article to the list, send to:\n\n\n        race@boogie.EBay.Sun.COM\n\n\n Depending on how mail is set up at your site you may or may\n not see the mail that you have posted. If you want to see it\n (though this isn't necessarily a guarantee that it went out)\n you can include a \"metoo\" line in your .mailrc file (on UNIX\n based mail systems). \n\n BOUNCES\n -------\n\n Because I haven't had the time (or the inclination to replace\n the list distribution mechanism) we still have a problem with\n bounces returning to the poster of a message. Occasionally,\n sites or users go off-line (either leaving their place of\n employment prematurely or hardware problems) and you will receive\n bounces from the race list. Check the headers carefully, and\n if you find that the bounce originated at Sun (from whence I\n administer this list) contact me through my administration\n hat (race-request@boogie.EBay.sun.com). If not, ignore the bounce. \n\n OTHER LISTS \n -----------\n\n        Two-strokes:     2strokes@microunity.com\n        Harleys:         harley-request@thinkage.on.ca\n                         or  uunet!watmath!thinkage!harley-request\n        European bikes:  majordomo@onion.rain.com\n                         (in body of message write: subscribe euro-moto)\n\n\n thanks, be seeing you, \n Rich (race list administrator)\n\n rich@boogie.EBay.Sun.COM\n-- \nStefan Fielding-Isaacs                                415.822.5654 office/fax\ndba Art & Science              \"Books By Design\"      415.599.4876 voice/pager\nAMA/CCS #14\n* currently providing consulting writing services to: Gain Technology, Verity *\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2568, "properties": {"category": "rec.sport.hockey", "text": "From: j3david@sms.business.uwo.ca (James David)\nSubject: Plus minus stat...\nOrganization: University of Western Ontario\nNntp-Posting-Host: sms.business.uwo.ca\nLines: 65\n\nRoger Maynard shares his views, with the masses, on Bob Gainey\nand life in general:\n \n>In <1993Apr15.160450.27799@sol.UVic.CA> gballent@hudson.UVic.CA\n>(Greg  Ballentine) writes:\n \n>>The Selke candidate forwards main purpose on a shift is to\n>>prevent goals from being scored- not to score them.  When\n>>Lemieux or Gilmour play their number one purpose is to score-\n>>defence is secondary- especially considering the line that\n>>plays against them is probably a defensive one.  That is why\n>>they are not Selke candidates.\n>>Gainey is the best defensive forward ever.  I stand by that\n>>assessment. He was a very good player who belongs in the hall\n>>of fame.  Did you ever watch him play? He never made a\n>>technical error.\n \n>I watched him over his entire career.  I have NEVER seen a\n>player, and that includes Russell Courtnall and Davie Keon,\n>screw up as many breakaways as Bob Gainey.  And I will never\n>forget the time Denis Potvin caught Gainey with his head down. \n>You have been sold a bill of goods on Bob Gainey.\n \nIt was Bryan Trottier, not Denis Potvin.  It was a vicious\n'boarding' from behind...Trottier was given a major.\n \nBut Roger, what the hell does this have to do with Gainey's skill\nas a hockey player?  If Probert smashes Gilmour's head into the\nboards next week, will that diminish your assessment of Gilmour's\nskills?\n \n>Gainey was a plugger.  And when the press runs out of things to\n>say about  the stars on dynasties they start to hype the\n>pluggers.  Grant Fuhr, Essa Tikkannen, Butch Goring, Bob\n>Nystrom, Bob Gainey, Doug Jarvis, Derek Sanderson, Wayne\n>Cashman, Bob Baun, Bob Pulford, Ralph Backstrom, Henri Richard,\n>Dick Duff...and so on...\n \nI would take Fuhr and Sanderson off of the latter.\n \nI think Gainey would be honoured to know that you've included him\non this list.  I also think you have a relatively naive view\nabout what wins a hockey game...pluggers are an integral part of\nany team.  The Selke is designed to acknowledge their\ncontribution...I think that most people understand that it's not\nthe Nobel Prize...so settle down.\n \n>cordially, as always,\n \n>rm\n \n>-- \n>Roger Maynard \n>maynard@ramsey.cs.laurentian.ca \n \ncongenially, as always,\n \njd\n \n--\nJames David\ndavid@student.business.uwo.ca\n\nj3david@sms.business.uwo.ca (James David)\nWestern Business School  --  London, Ontario\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2569, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: Thinking about heaven\nLines: 20\n\nJames Sledd asks:\n\n 1. What is the nature of eternal life?\n 2. How can we as mortals locked into space-time conceive of it?\n 2a. If the best we can do is metaphor/analogy, then what is the\n best metaphor?\n\nC S Lewis's essay THE WEIGHT OF GLORY deals with this question. I\nrecommend it enthusiastically. You might also read the chapter on\n\"Heaven\" in his book THE PROBLEM OF PAIN. He gives a fictional\ntreatment in his book THE GREAT DIVORCE. I have found all of these\nvery helpful.\n\nYou might also be helped by the treatment in Dante's DIVINE COMEDY.\nHeaven occupies the last third of the poem, but I cannot imagine\nreading it other than from the beginning. I urge you to use the\ntranslation by Dorothy L Sayers, available from Penguin Paperbacks.\n\n Yours,\n James Kiefer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2570, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: masika@bnr.ca (Nicholas Masika)\nSubject: FileManager: strange sizes in summary line\nLines: 25\nReply-To: masika@bnr.ca\nOrganization: Bell-Northern Research\n\nI have just noticed my FileManager doing something strange recently.\nUsually, the line at the bottom of the FileManager (the status bar, I\nguess) displays the total disk space and the total number of bytes for\nthe current selection.  If I select a whole bunch of files, I will get\nan exact byte count.\n\nRecently, I notice it incorrectly displays this count; it's truncating!\nIf I select a file that is, say, 532 bytes, it correctly displays '532 bytes'.\nIf I select select a file that is 23,482 bytes, it displays '23 bytes', \nnot 23 Kbytes, just 23 bytes!  If I select 893,352 it will report only\n893 bytes in the selection.  If I select over a Meg worth of files, say\n3,356,345 it reports 3 bytes!  It's as if it's got a problem with displaying\nmore than 3 characters!\n\nMy system: 486DX/33, 8M memory, Stacker 3.0, DOS 5, Win 3.1.  I've run\nthe latest virus scanners (scan102, f-prot) and they didn't report anything.\nCould I have unknowingly altered something that controls the formatting\nof the status bar in the FileManger?\n-----------------------------------------------------------------------------\n     _/      _/  _/   _/_/_/  _/  _/    Nicholas Masika, masika@bnr.ca\n    _/_/    _/  _/  _/       _/ _/      Bell-Northern Research, Ottawa\n   _/  _/  _/  _/  _/       _/_/        (613) 765-4893 / fax:765-4309\n  _/    _/_/  _/  _/       _/ _/        \n _/      _/  _/   _/_/_/  _/   _/       OPC Development Operations\n-----------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2571, "properties": {"category": "sci.crypt", "text": "From: cme@ellisun.sw.stratus.com (Carl Ellison)\nSubject: Re: White House Public Encryption Management Fact Sheet\nOrganization: Stratus Computer, Software Engineering\nLines: 25\nDistribution: na\nNNTP-Posting-Host: ellisun.sw.stratus.com\n\nIn article <C5LGAz.250@dove.nist.gov> clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement) writes:\n\n>PROCUREMENT AND USE OF ENCRYPTION DEVICES\n\n[ ... ]\n\n>The Attorney General will procure and utilize encryption devices to\n>the extent needed to preserve the government's ability to conduct\n>lawful electronic surveillance and to fulfill the need for secure\n>law enforcement communications.  Further, the Attorney General\n>shall utilize funds from the Department of Justice Asset Forfeiture\n>Super Surplus Fund to effect this purchase.\n\n\nTalk about adding insult to injury ... \n\nI, for one, believe that the use of civil forfeiture should be abolished by\na decent administration, not continued.  Instead, it looks like that\nill-gotten gain will be used to help pay for wiretap equipment.\n\n-- \n - <<Disclaimer: All opinions expressed are my own, of course.>>\n - Carl Ellison                                        cme@sw.stratus.com\n - Stratus Computer Inc.       M3-2-BKW                TEL: (508)460-2783\n - 55 Fairbanks Boulevard ; Marlborough MA 01752-1298  FAX: (508)624-7488\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2572, "properties": {"category": "comp.graphics", "text": "From: alex@falcon.demon.co.uk (Alex Kiernan)\nSubject: Re: .SCF files, help needed \nDistribution: world\nOrganization: DIS(organised)\nReply-To: alex@falcon.demon.co.uk\nX-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)\nLines: 14\n\nIn article <1993Apr22.123832.23894@daimi.aau.dk> rued@daimi.aau.dk writes:\n\n>RIX's files with the extension  .sci and .scf are just a RAW file with\n>a 256 color palette.\n>...stuff deleted...\n>regards\n>Thomas \n>\n\nDo you happen to know what a .SCO RIX file is?\n\n-- \nAlex Kiernan\nakiernan@falcon.demon.co.uk\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2573, "properties": {"category": "rec.motorcycles", "text": "From: jfriedl+@RI.CMU.EDU (Jeffrey Friedl)\nSubject: Re: GGRRRrrr!! Cages double-parking motorc\nNntp-Posting-Host: hiroshima.rest.ri.cmu.edu\nReply-To: jfriedl@cs.cmu.edu\nOrganization: Omron Corporation / Carnegie Mellon\nLines: 28\n\negreen@east.sun.com (Ed Green - Pixel Cruncher) writes:\n|> In article 34211@castle.ed.ac.uk, wbg@festival.ed.ac.uk (W Geake) writes:\n|> >Ultra sticky labels printed with your\n|> >favourite curse are good - even our local hospitals use them instead of\n|> >wheel clamps, putting one (about A5 size) on each window of the cage.\n|> \n|> An apartment complex where I used to live tried this, only they put the\n|> thing over the driver's window, \"so they couldn't miss it.\"  A friend\n|> damned near wrecked on the way home one night, her vision blocked by\n|> the sticker.  I suggested to the manager the ENORMOUS liability they\n|> were assuming by pulling that stunt.\n\n(not that logic has anything to do with it, but...)\nI can see the liability of putting stickers on the car while it was moving,\nor something, but it's the BDI that chooses to start and then drive the car\nin a known unsafe condition that would (seem to be) liable. Furthermore, they\nwould have had the last chance to avoid an unsafe situation, which is an\nadditional factor in attributing \"blame\".\n\nAnyway, stickers on the window are less effective... no one has any problem\ntaking a blade to a window to remove a stubborn sticker, but it's a different\nstory with that that nice paint job on the door....\n\n\t*jeff*\n--------------------------------------------------------------------\nJeffrey E.F. Friedl     Omron Corporation, Nagaokakyo (Kyoto), Japan\njfriedl@omron.co.jp, jfriedl@cs.cmu.edu   [ DoD##4  N8XBK  CBR250R ]\nVisiting researcher to the Mach Project, Carnegie Mellon, Pittsburgh\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2574, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Lezgians Astir in Azerbaijan and Daghestan\nSummary: asking not to fight against Armenians in Karabakh & for unification\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 106\n\n\n04/19/1993 0000  Lezghis Astir\n\nBy NEJLA SAMMAKIA\n Associated Press Writer\n   \nGUSSAR, Azerbaijan (AP) -- The 600,000 Lezghis of Azerbaijan and Russia have\nbegun clamoring for their own state, threatening turmoil in a tranquil corner \nof the Caucasus.\n\nThe region has escaped the ethnic warfare of neighboring Nagorno-Karabakh,\nAbkhazia and Ossetia, but Lezhgis could become the next minority in the former\nSoviet Union to fight for independence.\n\nLezghis, who are Muslim descendents of nomadic shepherds, are angry about the\nconscription of their young men to fight in Azerbaijan's 5-year-old undeclared\nwar with Armenia.\n\nThey also want to unite the Lezghi regions of Azerbaijan and Russia, which\nwere effectively one until the breakup of the Soviet Union created national\nborders that had been only lines on a map.\n\nA rally of more than 3,000 Lezghis in March to protest conscription and\ndemand a separate \"Lezghistan\" alarmed the Azerbaijani government.\n\nOfficials in Baku, the capital, deny rumors that police shot six\ndemonstrators to death. But the government announced strict security measures\nand began cooperating with Russian authorities to control the movement of\nLezhgis living across the border in the Dagestan region of Russia.\n\nVisitors to Gussar, the center of Lezhgi life, found the town quiet soon\nafter the protest. Children played outdoors in the crisp mountain air.\n\nAt the Sunday bazaar, men in heavy coats and dark fur hats gathered to\ndiscuss grievances ranging from high customs duties at the Russian border to a\nwar they say is not theirs.\n\n\"I have been drafted, but I won't go,\" said Shamil Kadimov, gold teeth\nglinting in the sun. \"Why must I fight a war for the Azerbaijanis? I have\nnothing to do with Armenia.\"\n\nMore than 3,000 people have died in the war, which centers on the disputed\nterritory of Nagorno-Karabakh, about 150 miles to the southeast.\n\nMalik Kerimov, an official in the mayor's office, said only 11 of 300 locals\ndrafted in 1992 had served.\n\n\"The police don't force people to go,\" he said. \"They are afraid of an\nuprising that could be backed by Lezghis in Dagestan.\"\n\nAll the men agreed that police had not fired at the demonstrators, but\ndisagreed on how the protest came about.\n\nSome said it occurred spontaneously when rumors spread that Azerbaijan was\nabout to draft 1,500 men from the Gussar region, where 75,000 Lezghis live.\n\nOthers said the rally was ordered by Gen. Muhieddin Kahramanov, leader of the\nLezhgi underground separatist movement, Sadval, based in Dagestan.\n\n\"We organized the demonstration when families came to us distraught about\ndraft orders,\" said Kerim Babayev, a mathematics teacher who belongs to Sadval.\n\n\"We hope to reunite peacefully, by approaching everyone -- the Azerbaijanis, \nthe Russians.\"\n\nIn the early 18th century, the Lezhgis formed two khanates, or sovereignties,\nin what are now Azerbaijan and Dagestan. They roamed freely with their sheep\nover the green hills and mountains between the two khanates.\n\nBy 1812, the Lezghi areas were joined to czarist Russia. After 1917, they\ncame under Soviet rule. With the disintegration of the Soviet Union, the \n600,000 Lezghis were faced for the first time with strict borders.\n\nAbout half remained in Dagestan and half in newly independent Azerbaijan.\n\n\"We have to pay customs on all this, on cars, on wine,\" complained Mais\nTalibov, a small trader. His goods, laid out on the ground at the bazaar,\nincluded brandy, stomach medication and plastic shoes from Dagestan.\n\n\"We want our own country,\" he said. \"We want to be able to move about easily.\nBut Baku won't listen to us.\"\n\nPhysically, it is hard for outsiders to distinguish Lezhgis from other\nAzerbaijanis. In many villages, they live side by side, working at the same \njobs and intermarrying to some degree.\n\nBut the Lezhgis have a distinctive language, a mixture of Arabic, Turkish and\nPersian with strong guttural vowels.\n\nAzerbaijan officially supports the cultural preservation of its 10 largest\nethnic minorities. The Lezghis have weekly newspapers and some elementary \nschool classes in their language.\n\nAutonomy is a different question. If the Lezghis succeeded in separating from\nAzerbaijan, they would set a precedent for other minorities, such as the \nTalish in the south, the Tats in the nearby mountains and the Avars of eastern\nAzerbaijan.\n\n\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2575, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 8\nDistribution: na\nNNTP-Posting-Host: access.digex.net\n\n  You're drifting off topic.  In any case, if you check on any of the\ntopics devoted to gun rights issues, you will find ample evidence that\nthe \"misinformation\" is your assertion that the term \"the people\" in\nthe Second Amendment has mysteriously taken on a meaning diametrically\nopposite the meaning of the exact same term in the First and Fourth\nAmendments.\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2576, "properties": {"category": "comp.windows.x", "text": "From: mouse@thunder.mcrcim.mcgill.edu (der Mouse)\nSubject: Re: a question on window ids\nKeywords: windows\nOrganization: McGill Research Centre for Intelligent Machines\nLines: 23\n\nIn article <wnk.734824081@aquifer.geology.uiuc.edu>, wnk@aquifer.geology.uiuc.edu (Walter Kreiling) writes:\n\n> Given a program running on a workstation with an X based window\n> system, how can one pop the window in which it is running to the top.\n> By window I mean the terminal window from which it was invoked.\n\nOne can't.  The application may not have been started from a terminal\nemulator; if it was, the terminal emulator may not still exist, and if\nit does it may be in no condition to be \"pop[ped] to the top\" (eg, it\nmay be iconified).  And even if you can, it may not do what you want -\nconsider a virtual-root window manager like tvtwm, with the relevant\nwindow in a portion of the virtual desktop that's outside the real\ndesktop.\n\nSome (but not all) X terminal emulators provide environment variables\ngiving a window ID.  Even if such a thing is present in the\nenvironment, it may not be what you want; it may correspond to a window\non a different server, for example.\n\n\t\t\t\t\tder Mouse\n\n\t\t\t\tmouse@mcrcim.mcgill.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2577, "properties": {"category": "soc.religion.christian", "text": "From: lmh@juliet.caltech.edu (Henling, Lawrence M.)\nSubject: Re: catholic church poland\nOrganization: California Institute of Technology\nLines: 10\n\nIn article <Apr.20.03.01.44.1993.3772@geneva.rutgers.edu>, s0612596@let.rug.nl (M.M. Zwart) writes...\n>I'm writing a paper on the role of the catholic church in Poland after 1989. \n>church concerning the abortion-law, religious education at schools,\n\n There was an article on clari.news.religion in the last few days about a\nPolish tribunal decision. It said that crucifixes and religious classes in\npublic schools were okay; and that children who did not want to take religion\nclass could not be forced to take an ethics class as a substitute.\n\n larry henling  lmh@shakes.caltech.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2578, "properties": {"category": "rec.sport.hockey", "text": "From: andrew@idacom.hp.com (Andrew Scott)\nSubject: USENET Hockey Draft week 26 price list\nOrganization: Hewlett-Packard, IDACOM Telecommunications Division\nLines: 264\n\nHere is the price list for the week April 6 to April 12.\n\n\t- Andrew\n\nBuy\tSell\tPts\tTeam\tPlayer\n157.5\t141.8\t150\tPIT\tMario_Lemieux\n152.1\t136.9\t143\tBUF\tPat_LaFontaine\n139.3\t125.4\t131\tBOS\tAdam_Oates\n133.8\t120.4\t129\tDET\tSteve_Yzerman\n132.9\t119.6\t125\tWPG\tTeemu_Selanne\n132.9\t119.6\t125\tTOR\tDoug_Gilmour\n130.9\t117.8\t120\tNYI\tPierre_Turgeon\n129.7\t116.7\t122\tBUF\tAlexander_Mogilny\n126.0\t113.4\t117\tPHI\tMark_Recchi\n120.2\t108.2\t113\tLA\tLuc_Robitaille\n115.9\t104.3\t109\tQUE\tMats_Sundin\n111.3\t100.2\t106\tPIT\tKevin_Stevens\n108.5\t97.7\t102\tSTL\tCraig_Janney\n108.5\t97.7\t102\tVAN\tPavel_Bure\n106.3\t95.7\t100\tCHI\tJeremy_Roenick\n105.3\t94.8\t99\tQUE\tJoe_Sakic\n104.0\t93.6\t99\tPIT\tRick_Tocchet\n103.1\t92.8\t97\tSTL\tBrett_Hull\n102.1\t91.9\t96\tBOS\tJoe_Juneau\n102.1\t91.9\t96\tTOR\tDave_Andreychuk\n101.9\t91.7\t97\tPIT\tRon_Francis\n99.8\t89.8\t95\tMTL\tVincent_Damphousse\n98.9\t89.0\t93\tMIN\tMike_Modano\n98.9\t89.0\t93\tWPG\tPhil_Housley\n98.9\t89.0\t93\tCGY\tTheoren_Fleury\n97.8\t88.0\t92\tBUF\tDale_Hawerchuk\n97.7\t87.9\t93\tMTL\tKirk_Muller\n96.0\t86.4\t88\tNYR\tMark_Messier\n94.6\t85.1\t89\tSTL\tBrendan_Shanahan\n94.4\t85.0\t91\tDET\tDino_Ciccarelli\n91.4\t82.3\t86\tLA\tJari_Kurri\n91.4\t82.3\t87\tPIT\tJaromir_Jagr\n90.3\t81.3\t86\tMTL\tBrian_Bellows\n88.3\t79.5\t82\tWSH\tPeter_Bondra\n87.3\t78.6\t80\tHFD\tGeoff_Sanderson\n87.2\t78.5\t82\tCGY\tRobert_Reichel\n87.2\t78.5\t82\tQUE\tSteve_Duchesne\n87.1\t78.4\t84\tDET\tPaul_Coffey\n86.1\t77.5\t83\tDET\tSergei_Fedorov\n85.1\t76.6\t79\tTB\tBrian_Bradley\n85.1\t76.6\t79\tPHI\tRod_Brind'Amour\n85.1\t76.6\t81\tPIT\tLarry_Murphy\n84.0\t75.6\t77\tHFD\tAndrew_Cassels\n84.0\t75.6\t77\tHFD\tPat_Verbeek\n84.0\t75.6\t79\tLA\tTony_Granato\n84.0\t75.6\t78\tWSH\tMike_Ridley\n84.0\t75.6\t77\tNYI\tSteve_Thomas\n83.0\t74.7\t79\tMTL\tStephan_Lebeau\n81.8\t73.6\t76\tWSH\tDale_Hunter\n80.8\t72.7\t76\tQUE\tMike_Ricci\n80.8\t72.7\t76\tBOS\tRay_Bourque\n78.6\t70.7\t73\tWSH\tKevin_Hatcher\n77.7\t69.9\t74\tSJ\tKelly_Kisio\n77.6\t69.8\t73\tVAN\tCliff_Ronning\n77.6\t69.8\t73\tSTL\tJeff_Brown\n77.6\t69.8\t73\tTOR\tNikolai_Borschevsky\n76.6\t68.9\t72\tNJ\tClaude_Lemieux\n76.6\t68.9\t72\tMIN\tDave_Gagner\n76.6\t68.9\t72\tMIN\tRuss_Courtnall\n76.4\t68.8\t70\tNYR\tTony_Amonte\n75.5\t68.0\t71\tVAN\tMurray_Craven\n75.5\t68.0\t71\tLA\tJimmy_Carson\n75.5\t68.0\t71\tCGY\tGary_Suter\n75.5\t68.0\t71\tMIN\tUlf_Dahlen\n74.4\t67.0\t70\tVAN\tGeoff_Courtnall\n74.4\t67.0\t70\tBOS\tDmitri_Kvartalnov\n74.3\t66.9\t69\tWSH\tMichal_Pivonka\n74.2\t66.8\t68\tNYI\tDerek_King\n74.2\t66.8\t68\tNYI\tBenoit_Hogue\n73.4\t66.1\t69\tQUE\tOwen_Nolan\n73.4\t66.1\t69\tCHI\tSteve_Larmer\n73.4\t66.1\t69\tNJ\tAlexander_Semak\n73.1\t65.8\t67\tNYR\tMike_Gartner\n72.3\t65.1\t68\tSTL\tNelson_Emerson\n72.3\t65.1\t68\tCHI\tChris_Chelios\n72.2\t65.0\t67\tPHI\tEric_Lindros\n71.1\t64.0\t66\tWSH\tAl_Iafrate\n70.2\t63.2\t66\tVAN\tTrevor_Linden\n70.2\t63.2\t66\tLA\tMike_Donnelly\n70.0\t63.0\t65\tWSH\tDmitri_Khristich\n69.3\t62.4\t66\tPIT\tJoe_Mullen\n69.1\t62.2\t65\tCGY\tJoe_Nieuwendyk\n69.1\t62.2\t65\tNJ\tStephane_Richer\n68.1\t61.3\t64\tWPG\tAlexei_Zhamnov\n68.1\t61.3\t64\tWPG\tThomas_Steen\n68.1\t61.3\t64\tQUE\tAndrei_Kovalenko\n68.1\t61.3\t64\tVAN\tPetr_Nedved\n66.5\t59.9\t61\tNYR\tAdam_Graves\n66.5\t59.9\t61\tHFD\tZarley_Zalapski\n66.4\t59.8\t64\tDET\tRay_Sheppard\n64.9\t58.4\t61\tTOR\tGlenn_Anderson\n64.1\t57.7\t61\tSJ\tJohan_Garpenlov\n63.8\t57.4\t60\tOTT\tNorm_Maciver\n63.0\t56.7\t60\tMTL\tMike_Keane\n63.0\t56.7\t60\tPIT\tShawn_McEachern\n62.7\t56.4\t59\tLA\tRob_Blake\n62.7\t56.4\t59\tLA\tWayne_Gretzky\n62.5\t56.3\t58\tPHI\tGarry_Galley\n62.5\t56.3\t58\tPHI\tBrent_Fedyk\n61.1\t55.0\t56\tNYI\tPat_Flatley\n60.6\t54.5\t57\tCGY\tSergei_Makarov\n60.6\t54.5\t57\tNJ\tBernie_Nicholls\n60.1\t54.1\t58\tDET\tSteve_Chiasson\n59.5\t53.6\t56\tCHI\tSteve_Smith\n59.5\t53.6\t56\tQUE\tScott_Young\n59.1\t53.2\t57\tDET\tPaul_Ysebaert\n58.9\t53.0\t54\tNYR\tSergei_Nemchinov\n58.5\t52.7\t55\tNJ\tValeri_Zelepukin\n58.2\t52.4\t54\tWSH\tPat_Elynuik\n58.2\t52.4\t54\tTB\tJohn_Tucker\n58.2\t52.4\t54\tPHI\tKevin_Dineen\n57.4\t51.7\t54\tVAN\tGreg_Adams\n56.4\t50.8\t53\tWPG\tDarrin_Shannon\n55.6\t50.0\t51\tNYR\tDarren_Turcotte\n55.3\t49.8\t52\tNJ\tScott_Stevens\n55.0\t48.8\t51\tCHI\tChristian_Ruuttu\n55.0\t48.8\t51\tVAN\tDixon_Ward\n55.0\t48.8\t51\tWPG\tFredrik_Olausson\n55.0\t48.2\t49\tNYR\tEd_Olczyk\n55.0\t47.9\t50\tWPG\tKeith_Tkachuk\n55.0\t47.2\t48\tNYI\tJeff_Norton\n55.0\t46.9\t49\tTOR\tJohn_Cullen\n55.0\t46.9\t49\tVAN\tAnatoli_Semenov\n55.0\t46.9\t49\tCGY\tAl_MacInnis\n55.0\t46.9\t49\tBOS\tStephen_Leach\n55.0\t45.9\t48\tCHI\tBrent_Sutter\n55.0\t45.4\t48\tMTL\tDenis_Savard\n55.0\t45.2\t46\tHFD\tTerry_Yake\n55.0\t45.0\t47\tNJ\tJohn_MacLean\n55.0\t44.6\t46\tWSH\tSylvain_Cote\n55.0\t44.0\t46\tEDM\tPetr_Klima\n55.0\t44.0\t46\tEDM\tShayne_Corson\n55.0\t44.0\t46\tLA\tTomas_Sandstrom\n55.0\t44.0\t46\tEDM\tCraig_Simpson\n55.0\t43.5\t46\tMTL\tGilbert_Dionne\n55.0\t43.2\t44\tNYI\tVladimir_Malakhov\n55.0\t43.0\t45\tBOS\tDave_Poulin\n55.0\t43.0\t45\tSTL\tKevin_Miller\n55.0\t43.0\t45\tLA\tAlexei_Zhitnik\n55.0\t43.0\t45\tQUE\tMartin_Rucinsky\n55.0\t43.0\t45\tWPG\tEvgeny_Davydov\n55.0\t42.7\t44\tWSH\tKelly_Miller\n55.0\t42.1\t44\tEDM\tDoug_Weight\n55.0\t42.1\t44\tEDM\tDave_Manson\n55.0\t41.2\t42\tHFD\tPatrick_Poulin\n55.0\t41.1\t43\tCHI\tMichel_Goulet\n55.0\t40.7\t42\tPHI\tPelle_Eklund\n55.0\t40.2\t42\tMIN\tMark_Tinordi\n55.0\t39.7\t42\tMTL\tMathieu_Schneider\n55.0\t39.2\t41\tCGY\tPaul_Ranheim\n55.0\t39.2\t41\tEDM\tTodd_Elik\n55.0\t39.2\t41\tBOS\tVladimir_Ruzicka\n55.0\t39.2\t41\tOTT\tSylvain_Turgeon\n55.0\t37.4\t39\tTOR\tDave_Ellett\n55.0\t37.4\t40\tDET\tNiklas_Lidstrom\n55.0\t37.4\t40\tDET\tBob_Probert\n55.0\t36.4\t38\tNJ\tPeter_Stastny\n55.0\t36.4\t37\tNYR\tEsa_Tikkanen\n55.0\t36.4\t38\tOTT\tBrad_Shaw\n55.0\t36.4\t38\tTOR\tWendel_Clark\n55.0\t36.4\t38\tBUF\tYuri_Khmylev\n55.0\t35.4\t37\tVAN\tSergio_Momesso\n55.0\t35.4\t37\tOTT\tBob_Kudelski\n55.0\t35.4\t36\tNYR\tBrian_Leetch\n55.0\t35.4\t37\tNJ\tBobby_Holik\n55.0\t34.5\t36\tTOR\tRob_Pearson\n55.0\t34.5\t36\tMIN\tMike_McPhee\n55.0\t34.4\t35\tNYR\tAlexei_Kovalev\n55.0\t33.9\t35\tTB\tAdam_Creighton\n55.0\t33.5\t35\tEDM\tZdeno_Ciger\n55.0\t32.6\t34\tLA\tCorey_Millen\n55.0\t32.6\t34\tCHI\tDirk_Graham\n55.0\t31.6\t33\tTOR\tPeter_Zezel\n55.0\t30.6\t32\tBOS\tTed_Donato\n55.0\t30.6\t32\tQUE\tValery_Kamensky\n55.0\t30.2\t32\tMTL\tGary_Leeman\n55.0\t29.9\t32\tDET\tKeith_Primeau\n55.0\t29.7\t31\tBUF\tWayne_Presley\n55.0\t29.7\t31\tMIN\tNeal_Broten\n55.0\t29.7\t31\tBOS\tSteve_Heinze\n55.0\t29.1\t30\tPHI\tJosef_Beranek\n55.0\t28.7\t30\tCHI\tStephane_Matteau\n55.0\t28.7\t30\tBUF\tRichard_Smehlik\n55.0\t28.7\t30\tTOR\tDmitri_Mironov\n55.0\t28.4\t29\tNYI\tBrian_Mullen\n55.0\t27.2\t28\tPHI\tDmitri_Yushkevich\n55.0\t26.8\t28\tCHI\tBrian_Noonan\n55.0\t26.8\t28\tEDM\tScott_Mellanby\n55.0\t26.5\t28\tSJ\tPat_Falloon\n55.0\t25.8\t27\tSTL\tIgor_Korolev\n55.0\t25.6\t26\tNYR\tJames_Patrick\n55.0\t24.8\t26\tBUF\tPetr_Svoboda\n55.0\t23.9\t25\tOTT\tMark_Lamb\n55.0\t23.2\t24\tTB\tMikael_Andersson\n55.0\t22.6\t23\tNYI\tScott_LaChance\n55.0\t22.1\t23\tEDM\tKevin_Todd\n55.0\t21.3\t22\tWSH\tBob_Carpenter\n55.0\t21.1\t22\tTOR\tBill_Berg\n55.0\t21.1\t22\tWPG\tSergei_Bautin\n55.0\t20.8\t22\tMTL\tBenoit_Brunet\n55.0\t20.6\t21\tNYI\tDavid_Volek\n55.0\t20.6\t21\tHFD\tMikael_Nylander\n55.0\t20.1\t21\tMIN\tBrent_Gilchrist\n55.0\t19.6\t20\tNYR\tPhil_Bourque\n55.0\t19.6\t20\tNYI\tRay_Ferraro\n55.0\t18.6\t19\tHFD\tYvon_Corriveau\n55.0\t18.2\t19\tEDM\tMartin_Gelinas\n55.0\t17.7\t19\tDET\tJim_Hiller\n55.0\t17.6\t18\tNYI\tDarius_Kasparaitis\n55.0\t17.5\t18\tPHI\tAndrei_Lomakin\n55.0\t17.2\t18\tBUF\tDonald_Audette\n55.0\t15.5\t16\tTB\tRoman_Hamrlik\n55.0\t15.1\t16\tSJ\tMark_Pederson\n55.0\t14.2\t15\tPIT\tMartin_Straka\n55.0\t12.4\t13\tNJ\tJanne_Ojanen\n55.0\t12.4\t13\tOTT\tTomas_Jelinek\n55.0\t11.5\t12\tCHI\tJoe_Murphy\n55.0\t10.8\t11\tNYR\tPeter_Andersson\n55.0\t10.6\t11\tTB\tSteve_Kasper\n55.0\t10.5\t11\tBOS\tCam_Neely\n55.0\t9.5\t10\tMIN\tBobby_Smith\n55.0\t9.5\t10\tSJ\tRay_Whitney\n55.0\t8.8\t9\tHFD\tRobert_Petrovicky\n55.0\t8.6\t9\tBUF\tViktor_Gordijuk\n55.0\t7.7\t8\tQUE\tMikhail_Tatarinov\n55.0\t7.7\t8\tTOR\tJoe_Sacco\n55.0\t7.6\t8\tSJ\tPeter_Ahola\n55.0\t6.7\t7\tCHI\tRob_Brown\n55.0\t6.7\t7\tBOS\tGlen_Murray\n55.0\t5.9\t6\tHFD\tTim_Kerr\n55.0\t4.9\t5\tWSH\tReggie_Savage\n55.0\t4.8\t5\tSTL\tVitali_Prokhorov\n55.0\t4.8\t5\tLA\tRobert_Lang\n55.0\t4.8\t5\tEDM\tShaun_Van_Allen\n55.0\t3.9\t4\tBOS\tJozef_Stumpel\n55.0\t3.9\t4\tMIN\tDan_Quinn\n55.0\t3.8\t4\tPIT\tBryan_Fogarty\n55.0\t3.7\t4\tDET\tViacheslav_Kozlov\n55.0\t2.9\t3\tTB\tStan_Drulia\n55.0\t2.9\t3\tMIN\tBrian_Propp\n55.0\t2.9\t3\tMTL\tOlav_Petrov\n55.0\t2.0\t2\tWSH\tJason_Woolley\n55.0\t1.9\t2\tNJ\tClaude_Vilgrain\n55.0\t0.0\t0\tVAN\tIgor_Larionov\n55.0\t0.0\t0\tTB\tBrent_Gretzky\n55.0\t0.0\t0\tOTT\tAlexei_Yashin\n55.0\t0.0\t0\tQUE\tPeter_Forsberg\n55.0\t0.0\t0\tEDM\tDean_McAmmond\n55.0\t0.0\t0\tWSH\tBrian_Sakic\n55.0\t0.0\t0\tWSH\tRandy_Burridge\n55.0\t0.0\t0\tMTL\tPatrick_Kjellberg\n55.0\t0.0\t0\tCGY\tCory_Stillman\n55.0\t0.0\t0\tCHI\tSergei_Krivokrasov\n55.0\t0.0\t0\tBUF\tJason_Dawe\n-- \nAndrew Scott                    | andrew@idacom.hp.com\nHP IDACOM Telecom Operation     | (403) 462-0666 ext. 253\n\nDuring the Roman Era, 28 was considered old...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2579, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: nuclear waste\nOrganization: Texas Instruments Inc\nLines: 34\n\nIn <1psg95$ree@access.digex.net> prb@access.digex.com (Pat) writes:\n\n[On the issue of 'burning' nuclear wastes using particle beams...]\n\n>How is it ever going to be an Off- the Shelf Technology if someone doesn't\n>do it?  Maybe we should do this as part of the SSF design goals. ;-)\n\n>Gee fred.  After your bitter defense of 20 KHz power as a Basic technology\n>for SSF, Id think you would support a minor research program like\n>this.\n\nI sometimes wonder if your newsfeed gives you different articles than\neveryone else, Pat.  Just a *few* corrections:\n\n1) I never 'defended' 20kHz power, other than as something reasonable\nto GO LOOK AT.\n\n2) I have also never opposed a *research project* into feasibility of\nthe spalling reactor approach to 'cleaning' nuclear waste -- I simply\ndoubt it could be made to work in the Real World (tm), which ought to\nbecome clear fairly quickly during a research program into feasibility\n(sort of like what happened to 20 kHz power -- it proved to have a\ndown-side that was too expensive to overcome).\n\nI figure 2 things wrong in a single sentence is a high enough fault\ndensity for even you, Pat.\n\n\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2580, "properties": {"category": "talk.politics.guns", "text": "From: bjones@convex.com (Brad Jones)\nSubject: Re: guns in backcountry? no thanks\nNntp-Posting-Host: neptune.convex.com\nOrganization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 27\n\n\n>In article <1qkcok$s9i@usenet.INS.CWRU.Edu>, ci946@cleveland.Freenet.Edu (John K. Gever) writes:\n\n>|> \n>|> Does anybody reading this group have an actual, honest-to-God\n>|> experience with violent crime in the backcountry to tell about?\n>|> \n\nIt was around 1969 in the Shenandoah Valley near Woodstock, Virginia.  Me,\nmy wife, a friend, his wife, and his 2 kids were hiking in a totally\ndesolate mountain area.  All of a sudden, large rocks began raining down\non us.  Looking up, we saw at least 3 punks gleefully letting loose rocks\nfrom what was an obvious stash.  They were a couple hundred feet above us.\nMeanwhile, the women and kids were screaming and running for cover and the\npunks were shrieking with laughter.  Me and my friend yelled for them to\nknock it off.  They responded that we should \"Get f***ed!\".  Me and my\nfriend drew our pistols and fired a couple of times into the trees above\ntheir heads.  They ran.  With no more 3-5 pound rocks coming at our heads,\nwe proceeded on our journey.\n\nSorry, but me and my friend saw no need to let it evolve to a more\n\"violent\" level than we were already experiencing.  I guess we should\nhave tried harder to understand and cope with the anger that society\nhad instilled in them and was driving them to do such things.  Guess\nthat's a cross I'll have to bear.\n\nBrad\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2581, "properties": {"category": "rec.sport.hockey", "text": "From: gjp@sei.cmu.edu (George Pandelios)\nSubject: Re: Washington To Beat Pitt\nOrganization: The Software Engineering Institute\nLines: 35\n\n\nIn article <1993Apr14.185059.27513@ncsu.edu>, fmsalvat@eos.ncsu.edu (FRANK MICHAE SALVATORE) writes:\n|> \n|>  \n|> \n|> > \n|> > What makes you think so?  I'd like to understand your reasoning.\n|> > From my seat, the Caps don't really appear to believe that they can \n|> > defeat Pittsburgh.  Therefore, they don't.  I think their spirit was \n|> > broken in last year's playoffs and hasn't really recovered.  I don't know \n|> > what the season series numbers were, but I believe that the Pens won it.\n|> > I think that either the Devils or the Islanders will cause more problems for\n|> \n|> \n|> What is this spirit crap?  I'm a Caps fan and hope they win\n|> if they end up facing Pittsburgh,\n|> but I don't think the Caps lose to Pitt because of lack\n|> of spirit.  Yes, the Penguins won the season series against the\n|> Caps.  They've won eighteen games in a row for God's sake.\n|> Did you ever think the Penguins might be good, and that's\n|> why they win?\n\nI re-read what I wrote and it didn't say exactly what I thought.  \n\nSure the Pens are a better team.  They've got size and the best skill players\nin the league.  They've also got the best clutch goaltending.  They're the \nbest team in the league.\n\nBut, my point was the Caps have not played to their ability level vs the\nPens since last year's choke.  And that's the mental problem (the one they've\nhad for a number of years) I tried to point out.  Spirit, mental preparedness,\nwill to win, whatever you want to call it, it's missing when the Caps play the\nPens.  Actually, you're right - it won't make any difference.\n\nGeorge\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2582, "properties": {"category": "soc.religion.christian", "text": "From: mhsu@lonestar.utsa.edu (Melinda . Hsu   )\nSubject: Re: The arrogance of Christians\nOrganization: University of Texas at San Antonio\nLines: 26\n\n>They believe the danger is real, but others may not.\n>\n>Does that mean that the first group are NECESSARILY arrogant in warning\n>others of the danger? Does it mean that they are saying that their beliefs\n>are correct, and all others are false?\n>\n>Some might indeed react to opposition with arrogance, and behave in an\n>arrogant manner, but that is a personal idiocyncracy. It does not\n>necessarily mean that they are all arrogant.\n\nNo the members of the first group are not necessarily\narrogant.  But when I ask them if they are absolutely certain\nthat the volcano will erupt, I expect them to say so \"No,\nbut I've chosen to believe some knowledgable people who have\ndetermined that the volcano will erupt,\" rather than, \"Yes, I am\nabsolutely certain.\"  When it comes to religious discussions,\narrogance or at best naivete is reflected in the latter type of\nstatement.\n\n| Louis J. Kim                      ---  _ O                PH:512-522-5556 |\n| Southwest Research Institute    ---  ,/  |\\/'            FAX:512-522-3042 |\n| Post Office Drawer 28510      ----      |__                 lkim@swri.edu |\n| San Antonio, TX 78228-0510   ----    __/   \\    76450.2231@compuserve.com |\n\n\n-- \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2583, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: olson@anchor.esd.sgi.com (Dave Olson)\nSubject: Re: How much should I pay for a SCSI cable (with 3 or 4 connectors)?\nOrganization: Silicon Graphics, Inc.  Mountain View, CA\nLines: 21\n\nIn <T83y2B1w164w@hub.parallan.com> danj@hub.parallan.com (Dan Jones) writes:\n| > >Also, I seem to remember a posting saying that the SCSI spec calls for\n| > >1 foot between devices on the cable, but most cables you get (internal)\n| > >don't meet the spec.\n| \n| SCSI II Draft Proposal, Rev. 10h, Section 4.2.1: Single-Ended \n| cable, which is in the Cable Requirements Section, has an \n| implementor's note: \" Stub clustering should be avoided. Stubs \n| should be spaced at least 0.3 meters apart.\"\n| \n| For the non-technical, stubs are SCSI devices. :-)\n\nHowever, also be aware that Implementor's notes are basicly\nrecommendations, they are *NOT* part of the spec.  As others have\nnoted, many vendors (including SGI) violate this.  Indeed, the main\npoint is to reduce impedance changes, and therefore reflections, and\ntherefore 'noise' on the bus.\n--\nLet no one tell me that silence gives consent,  |   Dave Olson\nbecause whoever is silent dissents.             |   Silicon Graphics, Inc.\n    Maria Isabel Barreno                        |   olson@sgi.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2584, "properties": {"category": "talk.religion.misc", "text": "From: ekr@squick.eitech.com (Eric Rescorla)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: EIT\nLines: 88\nNNTP-Posting-Host: squick.eitech.com\n\nIn article <1r3le9$mlj@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>In article <1r22qp$4sk@squick.eitech.com> ekr@squick.eitech.com (Eric Rescorla) writes:\n>#In article <1r0m89$r0o@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>#>In article <1qvu33$jk3@kyle.eitech.com> ekr@kyle.eitech.com (Eric Rescorla) writes:\n>#>#>If almost all people agree that the sun exists (in the usual, uncritical sense),\n>#>#>and almost all people agree that  a deal is bad,  it's a reasonable \n>#>#>conclusion that the sun really does exist, and that the deal really is bad.\n>#>#I disagree completely. Until rather recently, most people did not\n>#>#believe in evolution or the possibility of the atom bomb. Popular\n>#>#opinion is notoriously wrong about matters of fact.\n>#>True, but nevertheless the basis of all \"matters of fact\" is overwhelming\n>#>popular opinion, and some overwhelming popular opinion *is* fact (\"the\n>#>sun shines\").  If it were not so, physics would be a personal matter,\n>#>assumed to be different for each of us.  There would be YourGravity and\n>#>MyGravity and no theoretical framework to encompass them and predict\n>#>both.  \n>#This is simply complete nonsense. The basis for 'matters of fact' is,\n>#if any class of opinion, the majority of INFORMED popular opinion\n>#for some value of informed. I would really hate to base my knowledge\n>#of, for instance, QM on what the overwhelming popular opinion is.\n>The *basis*, Eric, is people peering at the world and saying what\n>they see.  I'm talking about uninterpreted facts - observations.  _People_\n>do those.  Agreement on some observations is a prerequisite for a theory\n>that is more than personal.\nYes, that's true, but you have to be clear exactly what is\nan uninterpreted observation. It's pretty low level stuff.\n'The sun shines' is already a LOT higher level than that. We\ncan agree that 'I perceive brightness' perhaps.\n\n>#>Now I take an experience of good/evil to be every bit as raw a fact as an\n>#>experience of pain, or vision.\n>#That might seem like a good first pass guess, but it turns out to\n>#be a pretty cruddy way to look at things, because we all seem to\n>#have rather different opinions (experiences) about what is good\n>#and evil, while we seem to be able to agree on what the meter says.\n>You're not comparing apples with apples.  If we all look at the same meter,\n>we'll agree.  If we're all in the same situation, that's when we'll\n>agree on fundamental values, if at all.  People who say that nobody agrees on\n>values to the same extent that they agree on trivial observations seem\n>to be unaware of the extent of agreement on either.\nHuh? What do you mean 'all in the same situation?' Let's take me\nand Dennis Kriz as examples. We're in pretty different situations,\nbut I think we can agree as to whether it's day or night. I don't\nthink we can agree as to whether or not abortion is morally\nacceptable. Yet we are certainly in the same difference of\nsituations with respect to each other. Looks like weasel-words\nto me, Frank. \n\n>#I don't see that it's any evidence at all.\n>#As I point out above, I'm really not interested very much in\n>#what the popular opinion is. I'm prepared to trust--to some extent--\n>#the popular opinion about direct matters of physical observation\n>#because by and large they accord with my own. However, if everyone\n>#else said the dial read 1.5 and it looked like a 3 to me, I would\n>#hope that I would believe myself. I.e. believing other people about\n>#these matters seems to have a reasonable probability of predicting\n>#what I would believe if I observed myself, but the possibility exists\n>#that it is not. Since I know from observation that others disagree\n>#with me about what is good, I believe I can discount popular opinion\n>#about 'good' from the beginning as a predictor of my opinion.\n>#I would say that the fact that it seems almost impossible to get\n>#people to agree on what is good in a really large number of situations\n>#is probably the best evidence that objective morality is bogus, actually.\n>Firstly, if everyone else said the dial was 1.5 and I saw 3, I'd check\n>my lens prescription.\nThat's up to you, I guess.\n\n>  Secondly, your observation that people\n>disagree shows nothing - people may be looking at different things,\n>by virtue of being in different situations.  If I look at an elephant, I'll \n>see an elephant.  That doesn't imply that you will see an elephant if you \n>look at an iguana.\nThis 'different situations' stuff is pretty confusing, Frank. How\ndo we decide if we are in the same situation? You mind explaining?\n\n>    Thirdly, I question your assumption that when\n>people disagree about how to achieve fundamental or secondary goals, that \n>they therefore do not have the same fundamental goals (that seems to be the \n>disagreement you refer to).\nHuh? I don't think so. I think that people disagree about\nfundamental goals.\n\n-Ekr\n\n-- \nEric Rescorla                                     ekr@eitech.com\n             Would you buy used code from this man?\n        \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.119+0000", "event": "documents", "entityId": 2585, "properties": {"category": "talk.religion.misc", "text": "From: rwd4f@poe.acc.Virginia.EDU (Rob Dobson)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: University of Virginia\nLines: 12\n\nIn article <sandvik-190493200323@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n\n>I'm mostly angry why the Davidians didn't spare the children the\n>awful suffering. See my other posting, I'm in a bad temper.\n\nWell, dozens of children left the compound between the original BATF assualt\nand the FBI assault 7 weeks later. So if Koresh really wanted to kill\nchildren, why did he let so many go?\n\n\n--\nLegalize Freedom\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2586, "properties": {"category": "talk.religion.misc", "text": "From: blowfish@leo.unm.edu (rON.)\nSubject: Re: 666, THE NUMBER OF THE BEAST, VIEWER DISCR\nOrganization: University of New Mexico, Albuquerque\nLines: 7\nNNTP-Posting-Host: leo.unm.edu\n\nIn article <1pr3d3$doh@cat.cis.Brown.EDU> ST002649@brownvm.brown.edu (Alex Gottschalk) writes:\n>>>Well, I *WILL* do the math, and I get:  (6^6)^6=2,189,739,336\n>>>This mean anything to anyone?  :^)\n>5*1=5 thus fitting in neatly with something else.\n\nOf course, 2+1+8+9+7+3+9+3+3+6 = 51, which, quite obviously is 23+23+5...\nr.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2587, "properties": {"category": "sci.electronics", "text": "From: edhall@rand.org (Ed Hall)\nSubject: Re: Los Angeles Freeway traffic reports\nOrganization: RAND\nLines: 29\nNntp-Posting-Host: ives.rand.org\n\nIn article <C5uLqn.Gpw@fc.hp.com> cfb@fc.hp.com (Charlie Brett) writes:\n>: While driving through the middle of nowhere, I picked up [KNX], AM 1070,\n>: a clear-channel station based in Los Angeles. They had an ad \n>: claiming that they were able to get traffic flow information from \n>: all of the thousands of traffic sensors that CalTrans has placed\n>: under the pavement. Does CalTrans sell this info? Does [KNX] have\n>: an exclusive? What's the deal?\n\nWell, they claim they are the only radio broadcaster with this\ninformation.  But the city's cable channel (35 in CableVision areas)\nshows this information map during travel times (6-9am and 4-7pm, I\nbelieve).  Most of the major LA freeways are covered.  The\ncomputer-generated map shows green, yellow, red, or flashing red\n(respectively: <40mph, 25-40mph, >25mph, and \"incident\"--I might be off\na little on the speeds, since this is from memory).\n\nI often look at this display in the morning to see if I really want to\nfight the traffic on the Sepulveda Pass or work from home for a little\nwhile to wait for it to clear.\n\nAnother poster explained the origin of the information: sensors (embedded\nwire loops) in the pavement near ramps and every half mile or so.  CalTrans\nhas had a \"big board\" driven from this data in their traffic control center\nfor some time.  I don't know if they are selling the data or if anyone\nwith the equipment necessary for its transmission and display can have\nit.\n\n\t\t-Ed Hall\n\t\tedhall@rand.org\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2588, "properties": {"category": "sci.space", "text": "From: msmilor@skat.usc.edu (Mark Smilor)\nSubject: Summer Internships\nArticle-I.D.: skat.1psaifINNfc5\nOrganization: University of Southern California, Los Angeles, CA\nLines: 15\nNNTP-Posting-Host: skat.usc.edu\n\n\n\t\n        Hi Folks not exactly certain if this is the best place to ask, but I am\nsearching for a summer internship in engineering.  I will be graduating in early\n May with a B.S. in aerospace engineering and then pursuing my Masters this Fall\n.Does anyone know of anything that is available, I am in the process of applyi\nng to some of the larger companies (ie. MacDac, Martin Marietta, Lockheed.  If a\nnyone knows of anything I would appreciate it if you could mail it to me.\n\nThanks in advance\n\nMark Smilor\nmsmilor@skat.usc.edu\nor\nsmilor@aludra.usc.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2589, "properties": {"category": "comp.graphics", "text": "From: dls@aeg.dsto.gov.au (David Silver)\nSubject: Re: Fractal Generation of Clouds\nOrganization: Defence Science and Technology Organisation\nLines: 14\nNNTP-Posting-Host: kestrel.dsto.gov.au\n\nhaabn@nye.nscee.edu (Frederick J. Haab) writes:\n\n\n>I need to implement an algorithm to fractally generate clouds\n>as sort of a benchmark for some algorithms I'm working on.\n\nJust as a matter of interest, a self-promo computer graphics sequence \nthat one of the local TV stations used to play quite a lot a couple of\nyears ago showed a 3D flyover of Australia from the West coast to the\nEast.  The clouds were quite recognisable as fuzzy, flat, white\nMandlebrot sets!!\n\nDavid Silver\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2590, "properties": {"category": "comp.windows.x", "text": "From: N.R.Ellis@newcastle.ac.uk (Nigel R. Ellis)\nSubject: Keyboard map for UK type 5 keyboard under X11/R5?\nNntp-Posting-Host: ws-ai3.dur.ac.uk\nX-Newsreader: TIN [version 1.1 PL9]\nReply-To: N.R.Ellis@durham.ac.uk\nOrganization: Computer Science, University of Durham, Durham, UK. DH1 3LE\nLines: 16\n\nHi,\n\ndoes anyone have a keyboard map for a Sun UK type 5 keyboard for use under\nX11/R5 ?\n\nThanks,\n\nNigel.\n\n--\n============================================================================\n| Nigel R Ellis, Artificial Intelligence Group, | N.R.Ellis@durham.ac.uk   |\n| Computer Science, University of Durham,       | Phne: +44.91.374.2549    |\n| Durham. England DH1 3LE                       | Fax : +44.91.374.3741    |\n============================================================================\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2591, "properties": {"category": "rec.autos", "text": "From: Stefan.M.Gorsch@dartmouth.edu (Stefan M. Gorsch)\nSubject: Importing Volvo?\nX-Posted-From: InterNews1.0b10@newshost.dartmouth.edu\nOrganization: Dartmouth College, Hanover, NH\nLines: 11\n\nWell, I'm afraid the time has come; my rice-burner has finally died.\nI'd always promised my wife that we would do a Scandanavian tour when\nmy car died and pick up a Volvo in Sweden, drive it around and then\nimport it home. \n\nCan anyone give me 1) advice on feasibility and relative costs 2)\nreferences where I might learn more 3) Personal experience?\n\nPlease email\n\nThanks\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2592, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: koberg@spot.Colorado.EDU (Allen Koberg)\nSubject: Re: What is AT BUS CLK Speed?\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 24\n\nIn article <12934.73.uupcb@hal9k.ann-arbor.mi.us> robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia)  writes:\n>\n>S >There is one param in the bios setup that says AT BUS CLK.  I have\n>clock, which is beyond ISA specs, but may be ok if all of the cards can \n>run that fast.  I would set it to 3 ( in fact I did ) and set it back if \n>anything acts weird ( e.g. you get unexplainable floppy drive errors, your \n>modem locks up, you have video problems, etc. ).  If you overdrive the AT \n>bus, then that should be the first thing to check if you get an error on \n>your system.  \n>\n>It is pretty safe to overdrive your AT bus, as long as your ISA cards \n>still work flawlessly.  I suggest backing up your HD before playing with \n>it though.\n\nOn my 486DX-50 (really 50, not DX2), my AT bus is set to CLK/3.\n\nAt 16.67 MHz, I have no problems.  Soundblaster Pro, Zoom 14.4 FXM, RLL\ncontroller, etc.  All work fine.\n\nIf I set it to 2 (25 MHz), I simply don't get past the POST routines.\n\nI doubt you could actually damage much by playing with it.\n\nAllen\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2593, "properties": {"category": "sci.electronics", "text": "From: gerald.belton@ozonehole.com (Gerald Belton) \nSubject: MC SBI mixer\nDistribution: world\nOrganization: Ozone Online Operations, Inc. - New Orleans, LA\nReply-To: gerald.belton@ozonehole.com (Gerald Belton) \nLines: 32\n\nMJM>HI, I was wondering if anyone would be able to help me on twwo related\nMJM>subjects. I am currently learning about AM/FM receivers and recieving\nMJM>circuits. I understand a lot of things ,but a few things I am confused\nMJM>abuot. The first is the MIXER, to mix the RF and local oscillator\nMJM>frequencies to make the IF. Does anyone have any cicruit diagrams (as\nMJM>simple as possible) for this kind of mixer? I have come across a\nMJM>MC-SBL mixer chip But I have not been able to find it in any catalogs\nMJM>(ACTIVE,etc...)\n\nMJM>Along the same note, are there any SIMPLE fm receiver circuits anyone\nMJM>may have stashed away somewhere and they couold let me see?.\n\nMJM>P.S. any REALLY GOOD BOOKS on AM/FM theory ALONG WITH DETAILED\nMJM>ELECTRICAL DIAGRAMS would help a lot.\nMJM>I have seen a lot of theory books with no circuits and a lot of\nMJM>circuit books with no theory, but one without the other does not help.\n\nDigi-key has the NE-622 chip which has a local oscillator and mixer on\none chip.\n\nFor a great combination of theory with actual circuits, the best\nreference for non-engineers is probably the Radio Amateur's Handbook\nfrom the ARRL.  Most library's have it in the reference section.\n\n\n * SLMR 2.1 * If ignorance is bliss, why aren't there more happy folk?\n \n----\nThe Ozone Hole BBS * A Private Bulletin Board Service * (504)891-3142\n3 Full Service Nodes * USRobotics 16.8K bps * 10 Gigs * 100,000 Files\nSKYDIVE New Orleans! * RIME Network Mail HUB * 500+ Usenet Newsgroups\nPlease route all questions or inquiries to:  postmaster@ozonehole.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2594, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: AT's need what kinda battery???\nFrom: grisch@uceng.uc.edu (George Risch)\nDistribution: usa\nOrganization: University of Cincinnati\nLines: 11\n\nHello,\n\n\tI'm the proud owner of an IBM AT without a battery. I know it\nhooks into jumper J21, but I need more info so I can replace it. What's\nits voltage? Any suggestions for replacement? Where can I get one? Please\nrespond to :\n\t\t\tgrisch@uceng.uc.edu\n\n\n\t\t\t\t\t\tThanks,\n\t\t\t\t\t\t-George\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2595, "properties": {"category": "sci.crypt", "text": "From: carl@lvsun.com (Carl Shapiro)\nSubject: Re: Estimating Wiretap Costs/Benefits\nSummary: Benefits probably greater than thought\nOrganization: Las Vegas Sun\nLines: 16\n\nIn article <1993Apr20.203756.20667@kronos.arc.nasa.gov> hanson@kronos.arc.nasa.gov (Robin Hanson) writes:\n>A rough estimate suggests that wiretaps are worth about five million\n>dollars per year to U.S. law enforcement agencies.  (In 1990, 872 U.S.\n>wiretaps led to 2057 arrests, while total police expenditures of $28\n>billion led to 11.25 million arrests [ref US Statistical Abstracts].)\n>I'm working on estimating this wiretap benefit more accurately, but\n\nYou seem to be assuming that all arrests are of equal value, and that\nthe use of wiretaps is spread uniformly among them.\n\nGiven this comparatively tiny number of wiretaps, and the associated\ndifficulty and cost involved (judges, technicians, etc) I expect that\nlaw enforcement reserves the use of wiretaps for the most valuable\ncases.  Since the \"value\" of an arrest can vary over an enormous range\n(eg. jaywalking -> mass murder) I think your $5 million estimate may\nbe too low by a couple of orders of magnitude.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2596, "properties": {"category": "sci.electronics", "text": "From: dp@cec1.wustl.edu (David Prutchi)\nSubject: Re: Cicuit Cellar Ink - Extras 4 Trade\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nLines: 32\n\nIn article <babb-190493113153@larc.sdsu.edu> babb@sciences.sdsu.edu (J. Babb) writes:\n>Fellow Info-junkies,\n>  I have an extra CCI #27 (Real Time Programming/Embedded Sensors &\n>Storage) and an extra CCI #32 (Voice control of telescope, among other\n>articles). No labels. No torn, cut-up, or missing pages.\n>\n>Would like to trade for CCI # 26, or CCI # 23, or CCI # 19 in same\n>condition (Labels OK).\n>\n>I mail mine you mail yours mutual trust kinda thang OK?\n>You don't actually throw them away, do you?\n>\n>Thanx,\n>Jeff Babb\n>babb@sciences.sdsu.edu\n\nI have also been trying to complete my collection.  I have an extra CCI # 16\n(Communications) and a # 12 (Applications in the Arts), both in mint\ncondition.\n\nI would like to trade for (or buy) the following: # 1, 3, 22, 23, 25, 26, 30,\nand 31.\n\nThanks      -David\n\n+------------------------------------------------------------+\n|  David Prutchi                 HC1DT                       |\n|  Washington University         <prutchi@mesun4.wustl.edu>  |\n|  Campus Box 1185               <dp@cec1.wustl.edu>         |\n|  One Brookings Drive                                       |\n|  St. Louis, MO  63130-4899                                 |\n+------------------------------------------------------------+\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2597, "properties": {"category": "talk.politics.guns", "text": "From: pes3@cunixf.cc.columbia.edu (Paul Eric Stoufflet)\nSubject: Clipper Chip\nNntp-Posting-Host: cunixf.cc.columbia.edu\nReply-To: pes3@cunixf.cc.columbia.edu (Paul Eric Stoufflet)\nOrganization: Columbia University\nDistribution: usa\nLines: 12\n\nI thought that the Clipper Chip that was posted to t.p.g (sorry, I lost\nthe original post) was a joke.  I really did.  I didn't believe it for\na second.  But on the way to work this morning, I heard about it on NPR.\n\nThis scares me almost as much as the doublespeak emanating from the\nFBI and BATF in Waco.\n\n\n ***   Paul Eric Stoufflet\n ***   Columbia Presbyterian Medical Center\n ***   internet: pes3@cunixf.cc.columbia.edu\n ***   All opinions are my own\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2598, "properties": {"category": "misc.forsale", "text": "From: lgibb@nyx.cs.du.edu (Lance Gibb)\nSubject: WANTED: Xapshot digital camera\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nDistribution: na\nLines: 13\n\n\nWANTED:\n \nCannon's Xapshot digital camera.  I'd be interested in any other\nmakes, but the Xapshot is the only one I'm familiar with.\nI need one with a composite output and approx. 50 pictures per\ndisk capability.\n \nIf you have one for sale, or if you know of a cheap place to order one,\nplease leave me Email at lgibb@nyx.cs.du.edu\n \nThanks\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2599, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 73\n\nIn article <stevethC5nwnn.49t@netcom.com> steveth@netcom.com (Steve Thomas) wri\ntes:\n>In article <1993Apr18.001338.21323@magnus.acs.ohio-state.edu> rscharfy@magnus.\nacs.ohio-state.edu (Ryan C Scharfy) writes:\n>>>No social problem, however great, is worth destroying the freedom in America\n.\n>>>The destruction of freedom is never an answer to any social problem.\n>>\n>>You can't even walk down the street at night alone in America because of drug\ns.\n>>Freedom my ass.\n>>\n>>Ryan\n>\n>Why exactely can't you walk down the street safely?  It it because somebody\n>will jump out from behind a shadow, and, SELL YOU DRUGS?  Hardly.\n\nOr mug me.\n>  On the\n>other hand, it's certainly possible that you are walking down the steet of\n>a bustling lawless part of your metropolitan area.  Lawless and bustling: read\n>underground economy.\n\nWhy must you pursue this fantasy that all crime is derived from \"underground \neconomies\".\n\n>  There, it may not be a very safe place to be at all.\n>Unless of course you're there to buy some drugs...\n>\n>I explained how the WOD is a major cause of large-scale crime in America.  The\n>head of the Guardian Angles agrees with me: legalize drugs and watch violent\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nHaaahaaaahaaaa\n\n>crimes significantly decrease.\n>\n>As for me, well, I think I'll go take a walk tonight--alone.  I feel safe.  I\n>just hope the FDA/FBI/DEA/BATF isn't back at my apartment confiscating all my\n>property because they found my phone number written on a phone booth that was\n>also used by a drug dealer. \n\nYeah buddy, this happens all the time.  Tell me, HAS IT EVERY REALLY HAPPENED \nTO YOU?   That's what I thought.\n\n> In that sense, I don't feel safe.  I'm an honest,\n>law-abiding citizen (drug laws included, FTM), why is it that I fear the\n>government more than I fear criminals?\n>\n\nYour foolish.\n\n>Freedom MY ass.  This is NOT what the founding fathers (some of whom would be\n>thrown in prison under today's drug laws) had in mind.  All of these problems\n>you come up with pale in comparison to the fact that the very fiber of our\n>country--the US Constitution--is being destroyed.  What good would it do\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nMust I ask again, what part?\n\n>even IF the WOD actually reduced crime: we just created a new class of\n>criminals, headed up the gang's current leader: Bill Clinton.  The DEA, etc.\n>are private armies that answer directly to the president.  They possess\n>advanced weapons and survailance technology.  Does this sound familiar to\n>anybody?\n>\n>Do you support \"Mein Furher Clinton\"?  Hmmmmmm?  You seem to have come out\n>against the current adminstration: why are you eager to endow it with\n>even MORE power?  (Power of the most dangerous kind, too).\n>\n\nAll I ask is that drugs stay illegal.  I don't think it's too much to ask.\n\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2600, "properties": {"category": "rec.autos", "text": "From: aas7@po.CWRU.Edu (Andrew A. Spencer)\nSubject: Re: MR2 - noisy engine.\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 33\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, eliot@lanmola.engr.washington.edu (eliot) says:\n\n>In article <1r1vofINN871@usenet.pa.dec.com> tomacj@opco.enet.dec.com (THUNDERBIRDS ARE GO !!!) writes:\n>>\tAre there any MR2 owners or motor-head gurus out there, that know why\n>>my MR2's engine sounds noisy? The MR2's engine is noisy at the best of times, \n>>but not even a nice nose - it's one of those very ugly noises. \n>\n>assuming yours is a non turbo MR2, the gruffness is characteristic of\n>a large inline 4 that doesn't have balance shafts.  i guess toyota\n>didn't care about \"little\" details like that when they can brag about\n>the mid engine configuration and the flashy styling.\n>\n>myself, i automatically cross out any car from consideration (or\n>recommendation) which has an inline 4 larger than 2 liters and no\n>balance shafts..  it is a good rule of thumb to keep in mind if you\n>ever want a halfway decent engine.  \n>\n>if the noise really bugs you, there is nothing else that you can do\n>except to sell it and get a V6.\n>\n>\n>eliot\n\nnice theory.  too bad the MR2's never came with a four cylinder over 2.0\nliters.  More like 1.6.  Or did they? were the nonturbo MR2II's  2.2 or\nsome such?\n\nI also understand that anyone using balancing shafts on four cylinders, must\npay SAAB a royalty for using their patented design..like Porsche's 3.0 I4...\n\nc ya\nDREW\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2601, "properties": {"category": "sci.med", "text": "From: spenser@fudd.jsc.nasa.gov (S. Spenser Aden)\nSubject: Re: diet for Crohn's (IBD)\nOrganization: Flight Data and Evaluation Office\nDistribution: usa\nLines: 72\n\nIn article <uabdpo.dpo.uab.edu-220493145727@spam.dom.uab.edu> uabdpo.dpo.uab.edu!gila005 (Stephen Holland) writes:\n>In article <1r6g8fINNe88@ceti.cs.unc.edu>, jge@cs.unc.edu (John Eyles)\n>wrote:\n>> \n>> A friend has what is apparently a fairly minor case of Crohn's\n>> disease.\n>> \n>> But she can't seem to eat certain foods, such as fresh vegetables,\n>> without discomfort, and of course she wants to avoid a recurrence.\n>> \n>> Her question is: are there any nutritionists who specialize in the\n>> problems of people with Crohn's disease ?\n>\n>If she is having problems with fresh vegetables, the guess is that there\n>is some obstruction of the intestine.  Without knowing more it is not\n>possible to say whether the obstruction is permanent due to scarring,\n>or temporary due to swelling of inflammed intestine.  In general, there are\n>no dietary limitations in patients with Crohn's except as they relate\n>to obstruction.  There is no evidence that any foods will bring on \n>recurrence of Crohn's. \n\nInteresting statements, simply because I have been told otherwise.  I'm\ncertainly not questioning Steve's claims, as for one I am not a doctor, and I\nagree that foods don't bring on the recurrence of Crohn's.  But inflammation\ncan be either mildly or DRASTICALLY enhanced due to food.\n\nHaving had one major obstruction resulting in resection (is that a good enough\ncaveat :-), I was told that a *LOW RESIDUE* diet is called for.  Basically,\nthe idea is that if there is inflammation of the gut (which may not be\nrealized by the patient), any residue in the system can be caught in the folds\nof inflammation and constantly irritate, thus exacerbating the problem.\nTherefore, anything that doesn't digest completely by the point of common\ninflammation should be avoided.  With what I've been told is typical Crohn's,\nof the terminal ileum, my diet should be low residue, consisting of:\n\nCompletely out - never again - items:\n\to corn (kernel husk doesn't digest ... most of us know this :-)\n\to popcorn (same)\n\to dried (dehydrated) fruit and fruit skins\n\to nuts (Very tough when it comes to giving up some fudge :-)\n\nDiscouraged greatly:\n\to raw vegetables (too fibrous)\n\to wheat and raw grain breads\n\to exotic lettuce (iceberg is ok since it's apparently mostly water)\n\to greens (turnip, mustard, kale, etc...)\n\to little seeds, like sesame (try getting an Arby's without it!)\n\to long grain and wild rice (husky)\n\to beans (you'll generate enough gas alone without them!)\n\to BASICALLY anything that requires heavy digestive processing\n\nI was told that the more processed the food the better! (rather ironic in this\nday and age).  The whole point is PREVENTATIVE ... you want to give your\nsystem as little chance to inflame as possible.  I was told that among the\nNUMEROUS things that were heavily discouraged (I only listed a few), to try\nthe ones I wanted and see how I felt.  If it's bad, don't do it again!\nRemember though that this was while I was in remission.  For Veggies: cook the\ndaylights out of them.  I prefer steaming ... I think it's cooks more\nthoroughly - you're mileage may vary.\n\nAs with anything else, CHECK WITH YOUR DOCTOR.  Don't just take my word.  But\nthis is the info I've been given, and it may be a starting point for\ndiscussion.  Good luck!\n\n-Spenser\n\n\n-- \nS. Spenser Aden --- Lockheed Engineering and Sciences Co. --- (713) 483-2028\nNASA --- Flight Data and Evaluation Office --- Johnson Space Center, Houston\nspenser@fudd.jsc.nasa.gov    (Internet) ---  Opinions herein are mine alone.\naden@vf.jsc.nasa.gov (if above bounces) ---  \"Eschew obfuscation.\" - unknown\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2602, "properties": {"category": "talk.politics.guns", "text": "From: crphilli@hound.dazixca.ingr.com (Ron Phillips)\nSubject: Randy Weaver Trail - Day 3 \nNntp-Posting-Host: hound\nReply-To: crphilli@hound.dazixca.ingr.com\nOrganization: \"Intergraph Electronics, Mountain View, CA\"\nDistribution: usa\nLines: 85\n\nThis was posted to the firearms-politics mailing list.\n=============================================================\nHi Folks;\n\nThursday, April 15 marked Day 3 of the trial.\n\nThis day marked the first testimony of the trial.  Deputy\nU.S. Marshal Larry Cooper took the stand for the prosecution.\n\nThe short version is that his testimony was consistent with\nthe opening statements for the prosecution.\n\nCooper testified that he had arrived in Spokane (Washington)\non August 17, 1992 to participate in a surveillance operation\nwith five other deputies near the Weaver cabin.  The team was\nusing night vision equipment for surveillance, and split up\ninto two teams of three people.  The six later met at an\nobservation point above the cabin.  After this, deputies\nCooper, William Degan, and Arthur Roderick began a descent to\nscout further possible surveillance sites.\n\nCooper told the court that Roderick threw two large rocks into\na gully to see, \"whether the [Weaver family] dogs would respond.\"\nStriker, the Weaver's yellow lab, started toward them barking\nloudly.  Roderick led the three in a run from the area.\n\nThey ran through some dense woods into an open area [called the\n\"fern field\"] with the dog in pursuit.  By this time, Kevin\nHarris and Samuel Weaver had joined the chase.  The surveillance\nteam had reached a Y in the road: Cooper decided that they should\ntake cover in the woods because otherwise they would be an easy\ntarget and might be \"shot in the back.\"\n\nAs Degan reached the Y, he spotted Randy Weaver coming down the\nroad from the cabin ahead.  Weaver was startled but did not fire.\n\nAt this moment, Striker reached Degan, and Cooper had to \"fend\nhim off with his gun.\"  [It is unclear whether this means he\nclubbed the dog or shot the dog].  Both Cooper and Degan then\ntook cover in the woods.  According to Cooper, Kevin Harris and\nSamuel Weaver continued walking down the road, apparently not\nnoticing the two.  After they had passed by on the road, Degan\ngot up on one knee, raised his gun, and shouted, \"Stop!  U.S.\nMarshal!\"  Harris then \"...brought the weapon around at hip level\nand fired.  He didn't bring the weapon up to eye level.  I saw\nBill's arm going back, and I knew he had been hit.\"  Cooper fired\nat Harris, and Harris went down.  Cooper then brought his weapon\nto bear on Samuel, but did not fire.  At this point, Cooper then\nheard two shots to his right.  Samuel Weaver looked in the\ndirection of the shots, yelled, \"You son of a bitch!\" and ran\ntoward them.  Cooper then realized that shots were coming at him\nfrom directly ahead, so he fired a three-round burst at the\ncabin.  At this point he then saw Samuel Weaver running toward\nthe cabin.  When Cooper reached Degan, he placed his first two\nfingers on Degan carotid artery, counted two or three beats, and\nthen his heart stopped.  Shortly thereafter, Roderick and the\nother three marshals joined him.  They then all heard a large\nburst of gunfire from the area around the cabin.\n\nOn cross-examination, David Nevin questioned the point of\nthrowing rocks into the gulley, asking, \"You wanted to lure that\ndog out so you could shoot that dog, didn't you?\"  Nevin also\npointed out that in last September's testimony, Cooper had\nclaimed that he spotted Weaver after the dog had left him.\nCooper claimed that he had gone over the events in his head and\ndecided that Thursday's account was correct.  Nevin continued the\ncross-examination by asking what Cooper would have done had an\narmed man dressed in full camouflage jumped out of the woods at\nhim [no answer was available].\n\nFriday, April 16 marks continued cross-examination of Cooper.\n\nNotes: There was no coverage of protestors.\n\nDrew\n==============================================================\n\n-- \n**************************************************************\n* Ron Phillips               crphilli@hound.dazixca.ingr.com *\n* Senior Customer Engineer                                   *\n* Intergraph Electronics                                     *\n* 381 East Evelyn Avenue               VOICE: (415) 691-6473 *\n* Mountain View, CA 94041              FAX:   (415) 691-0350 *\n**************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2603, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gwni@troi.cc.rochester.edu (G. Wayne Nichols)\nSubject: Help! Ten beeps with 386/40 (AMI BIOS)\nSummary: What error is signalled by 10 beeps at power-up?\nKeywords: 386/40 AMI 10 beeps\nOrganization: University of Rochester - Rochester, New York\nLines: 9\nNntp-Posting-Host: troi.cc.rochester.edu\n\nI have a 386/40 motherboard with AMI BIOS.\nI haven't located the little motherboard manual yet,\nand suddenly it's giving me 10 beeps when I turn the power on.\nIt was working fine this morning,\nthen gave all kinds of problems, in Windows and outside it.\nAfter multiple reboots, now it only gives 10 beeps and sits there?\n\nAnybody know what 10 beeps means?\nThanks.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2604, "properties": {"category": "rec.sport.hockey", "text": "From: caj@sei.cmu.edu (Carol Jarosz)\nSubject: Re: Radio stations\nOrganization: The Software Engineering Institute\nLines: 15\n\n\nIn article <ragraca.735252641@vela.acs.oakland.edu>,\nragraca@vela.acs.oakland.edu (Randy A. Graca) writes: \n\n|>  The Pittsburgh Penguins games used to be\n|> broadcast on KDKA 1020, but I don't know whether they will be pre-empted\n|> by baseball (and moved to another station) or not.  You can try those\n|> if the local baseball teams aren't playing at the same time, anyway.\n|> \n|> --Randy\n|> \n\nThe Pens are now being broadcast on 102.5 WDVE.  \n\nCarol\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2605, "properties": {"category": "rec.sport.hockey", "text": "From: ndallen@r-node.hub.org (Nigel Allen)\nSubject: Brown University Ordered To Restore Two Women's Varsity Teams\nOrganization: R-node Public Access Unix - 1 416 249 5366\nLines: 49\n\nI found this press release from Trial Lawyers for Public Justice on\nanother system, and thought it would be of interest on campuses \nwhere the administration or the athletics department wants to \neliminate the women's ice hockey team.\n\n Women Athletes, TLP Win Sex Discrimination Ruling: Brown University\nOrdered to Restore Two Women's Varsity Teams\nTo: National Desk, Sports Writer\n Contact: Lynette Labinger, 401-421-9794, home 401-274-7507, or\n          Ray Marcaccio, 401-831-8900, both of Trial Lawyers For\n          Public Justice\n\n   WASHINGTON, April 16 -- The U.S. Court of Appeals\nfor the First Circuit in Boston has upheld a U.S. District Court\norder requiring Brown University to immediately reinstate its women's\ngymnastics and volleyball teams to full varsity status. The ruling in\nCohen et al. v. Brown University is the first appeals court decision\nin the nation applying Title IX to intercollegiate athletics.  Trial\nLawyers for Public Justice (TLPJ), is the national public interest\nlaw firm representing the women athletes.\n   \"This ruling makes clear what we have said all along -- if a\nschool wants to eliminate teams before women have their fair share of\nopportunities to participate, they can only eliminiate men's teams,\"\nsaid TLPJ Executive Director Arthur Bryant, co-counsel in the case.\n   The class action, filed April, 1992, charged Brown with violating\nTitle IX of the Education Amendments of 1972, the federal law that\nprohibits sex discrimination by all educational institutions\nreceiving federal funds.  Brown terminated the two women's teams as\nuniversity-funded sports in May 1991, allowing them to continue to\ncompete against varsity teams if they could raise their own funds for\nuniforms, travel, coaches, and all other expenses.  They had also\nbeen denied admission preferences for use in recruiting new members.\n   \"This is a major victory for women and the cause of equal rights,\"\nsaid TLPJ lead counsel Lynette Labinger of Providence's Roney &\nLabinger.  \"Universities across America need to reevaluate their\nprograms quickly. Title IX is the law and it's going to be enforced.\"\n   Three similar Title IX appeals await decision.  Colorado State\nUniversity, Indiana University of Pennsylvania (IUP), and Colgate\nUniversity are asking federal appeals courts to overturn court orders\nrequiring them to reinstate or establish specific women's varsity\nteams.  Continuing its cutting-edge Title IX activities, TLPJ is\nrepresenting women athletes at IUP.\n   In addition to Labinger and Bryant, TLPJ's legal team included:\nRay Marcaccio of Blish & Cavanagh and Amato DeLuca of Mandell, DeLuca\n& Schwartz in Providence; and Sandra Duggan of Philadelphia.  The\nNational Women's Law Center, Women's Sports Foundation, and National\nAssociation for Girls and Women in Sports filed an amicus brief in\nsupport of TLPJ's appeal.\n -30-\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2606, "properties": {"category": "soc.religion.christian", "text": "From: luom@storm.cs.orst.edu (Luo Martha BaoMing)\nSubject: summer program\nOrganization: Computer Science Department, Oregon State University\nLines: 8\n\nDoes anyone know any good decipleship trainning program during min August \nto end of Sept.  Or any missionary programs.\nI currently belong to the Missionary Alliance Church in Oregon.\nPlease reply by mail.\n\nthanks.\n----\nluom@storm.cs.orst.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2607, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenians exterminated 2.5 million Muslim people. Denying the obvious?\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 109\n\nIn article <1993Apr23.122146.23931@oucsace.cs.ohiou.edu> gassan@ouvaxa.cats.ohiou.edu writes:\n\n>After having read this group for some time, I am appalled at its lack of\n>scholarship, its fuzzy-thinking, reliance on obsessed and obnoxious posters\n\nWell, these are Armenian and Jewish scholars, not me. Denying the obvious?\n\n\nSource: Hovannisian, Richard G.: Armenia on the Road to Independence, 1918.\nUniversity of California Press (Berkeley and Los Angeles), 1967, p. 13.\n\n\"The addition of the Kars and Batum oblasts to the Empire increased the\n area of Transcaucasia to over 130,000 square miles. The estimated population\n of the entire region in 1886 was 4,700,000, of whom 940,000 (20 percent) were\n Armenian, 1,200,000 (25 percent) Georgian, and 2,220,000 (45 percent) Moslem.\n Of the latter group, 1,140,000 were Tatars. Paradoxically, barely one-third\n of Transcaucasia's Armenians lived in the Erevan guberniia, where the \n Christians constituted a majority in only three of the seven uezds. Erevan\n uezd, the administrative center of the province, had only 44,000 Armenians\n as compared to 68,000 Moslems. By the time of the Russian Census of 1897,\n however, the Armenians had established a scant majority, 53 percent, in the\n guberniia; it had risen by 1916 to 60 percent, or 670,000 of the 1,120,000\n inhabitants. This impressive change in the province's ethnic character \n notwithstanding, there was, on the eve of the creation of the Armenian \n Republic, a solid block of 370,000 Tartars who continued to dominate the \n southern districts, from the outskirts of Ereven to the border of Persia.\" \n (See also Map 1. Historic Armenia and Map 4. Administrative subdivisions of \n Transcaucasia).\n\nIn 1920, '0' percent Turk. \n\n\"We closed the roads and mountain passes that might serve as \n ways of escape for the Tartars and then proceeded in the work \n of extermination. Our troops surrounded village after village. \n Little resistance was offered. Our artillery knocked the huts \n into heaps of stone and dust and when the villages became untenable \n and inhabitants fled from them into fields, bullets and bayonets \n completed the work. Some of the Tartars escaped of course. They \n found refuge in the mountains or succeeded in crossing the border \n into Turkey. The rest were killed. And so it is that the whole \n length of the borderland of Russian Armenia from Nakhitchevan to \n Akhalkalaki from the hot plains of Ararat to the cold mountain \n plateau of the North were dotted with mute mournful ruins of \n Tartar villages. They are quiet now, those villages, except for \n howling of wolves and jackals that visit them to paw over the \n scattered bones of the dead.\" \n\n                             Ohanus Appressian\n                            \"Men Are Like That\"\n                                   p. 202.\n\n\n \"In Soviet Armenia today there no longer exists a single Turkish soul.\n  It is in our power to tear away the veil of illusion that some of us\n  create for ourselves. It certainly is possible to severe the artificial\n  life-support system of an imagined 'ethnic purity' that some of us\n  falsely trust as the only structure that can support their heart beats \n  in this alien land.\"\n            (Sahak Melkonian - 1920 - \"Preserving the Armenian purity\") \n\n\n<1993Apr24.042427.29323@walter.bellcore.com>\nddc@nyquist.bellcore.com (Daniel Dusan Chukurov 21324)\n\n>           The world's inaction when the conflict began over the mostly\n>Christian Armenian enclave inside Muslim Azerbaijan might have\n>encouraged the conflict in Bosnia-Herzegovina, said the\n>Moscow-based activist, who's part Armenian.\n\nNo kidding. The Armenians tore apart the Ottoman Empire's eastern provinces,\nmassacred 2.5 million defenseless Turkish women, children and elderly \npeople, burned thousands of Turkish and Kurdish villages and exterminated \nthe entire Turkish population of the Armenian dictatorship between \n1914-1920. Such outrageous sleight of hand that is still employed today \nin Armenia brings a depth and verification to the Turkish genocide \nthat is hard to match. A hundred years ago Armenians again thought \nthey could get whatever they wanted through sheer terror like the \nRussian anarchists that they accepted as role models. Several Armenian \nterror groups like ASALA/SDPA/ARF Terrorism and Revisionism Triangle \nresorted to the same tactics in the 1980s, butchering scores of innocent\nTurks and their families in the United States and Europe. It seems that \nthey are doing it again, at a different scale, in fascist x-Soviet Armenia \ntoday.\n\nA merciless massacre of the civilian population of the small Azeri \ntown of Khojali (Pop. 6000) in Karabagh, Azerbaijan, is reported to \nhave taken place on the night of Feb. 28 under a coordinated military \noperation of the 366th mechanized division of the CIS army and the \nArmenian insurgents. Close to 1000 people are reported to have been \nmassacred. Elderly and children were not spared. Many were badly beaten \nand shot at close range. A sense of rage and helplessness has overwhelmed \nthe Azeri population in face of the well armed and equipped Armenian \ninsurgency. The neighboring Azeri city of Aghdam outside of the\nKarabagh region has come under heavy Armenian artillery shelling. City \nhospital was hit and two pregnant women as well as a new born infant \nwere killed. Azerbaijan is appealing to the international community to \ncondemn such barbaric and ruthless attacks on its population and its \nsovereignty.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.120+0000", "event": "documents", "entityId": 2608, "properties": {"category": "rec.sport.baseball", "text": "From: jrogoff@scott.skidmore.edu (jay rogoff)\nSubject: Re: '61 Orioles Trivia\nOrganization: Skidmore College, Saratoga Springs NY\nLines: 6\n\n\nBunker & McNally were later.\n\nPappas, Estrada, Steve Barber, and . . . ?\n\nJay\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2609, "properties": {"category": "comp.windows.x", "text": "From: devil@loki.HellNet.org (Gil Tene)\nSubject: COSE GUI - Just what is it they agreed on?\nLines: 31\nNntp-Posting-Host: loki\n\nThe COSE announcement specifies that Motif will become the common\nGUI. But what does this mean exactly? \n\n- Do they mean that all \"COSE-complient\" apps will have the Motif\n  look and feel?\n\n- Do they mean that all \"COSE-complient\" apps will use the Motif\n  toolkit API?\n\n- Do they mean both of the above?\n\n- Is it possible that there will be a Motif-API complient toolkit with\n  an OpenLook Look & Feel?\n\n- How about an OLIT/XView/OI/Interviews API toolkit with a Motif L & F?\n  (I know OI already does this, but will this be considered COSE-complient?)\n\n- Will there be more than one \"standard\" toolkit API or L & F supported?\n\n- How does using ToolTalk fit in with Motif?\n\nThis is my attempt to start a discussion in order to pull as much \nknowledge about these questions off the net... Feel free to e-mail\nor followup.\n\n-- \n--------------------------------------------------------------------\n-- Gil Tene\t\t\t\"Some days it just doesn't pay     -\n-- devil@imp.HellNet.org\t   to go to sleep in the morning.\" -\n-- devil@diablery.10A.com \t\t\t\t\t   -\n--------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2610, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: <Political Atheists?\nOrganization: sgi\nLines: 15\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <930404.111651.1K0.rusnews.w165w@mantis.co.uk>, mathew@mantis.co.uk (mathew) writes:\n|> In article <1993Apr2.065230.18676@blaze.cs.jhu.edu>\n|> arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n|> >The \"automobile system\" kills non-driving passengers, not to mention\n|> >pedestrians.  You need not drive or even use a car to be killed by one.\n|> \n|> Indeed, and it kills far more than a system of public transport would.  I am\n|> therefore entirely in favour of banning private cars and replacing them with\n|> trains, buses, taxis, bicycles, and so on.\n\nSeconded.   I cycle to work each day, and if we could just get\nthose damned cars and their cretinous drivers off the road, it\nwould be a lot more fun.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2611, "properties": {"category": "sci.space", "text": "From: drchambe@tekig5.pen.tek.com (Dennis Chamberlin)\nSubject: Re: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nReply-To: drchambe@tekig5.pen.tek.com\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 31\n\n\n----- News saved at 23 Apr 93 22:22:40 GMT\nIn article <1993Apr22.130923.115397@zeus.calpoly.edu> dmcaloon@tuba.calpoly.edu (David McAloon) writes:\n>\n> ETHER IMPLODES 2 EARTH CORE, IS GRAVITY!!!\n>\n>  This paper BOTH describes how heavenly bodys can be stationary, \n>ether sucking structures, AND why we observe \"orbital\" motion!!\n  \n\n>  \"Light-Years\" between galaxies is a misnomer. The distance is \n>closer to zero, as time and matter are characteristics of this phase \n>of reality, which dissipates outward with each layer of the onion. \n>(defining edge = 0 ether spin)  \n\n>  To find out about all of this, I recommend studying history.  \n\nWell, I'm working on it, but getting a little impatient. So far, \nI've made it through Egyptian, Chinese, and Greek cultures, and\nup through the Rennaisance. But so far, these insights just don't \nseem to be gelling. Perhaps it's in an appendix somewhere.\n\nIn its own right, though, the history is kind of fun. Lots of \ngood yarns in there, with varied and interesting characters. And,\nmore to come.\n\n\n\n\n\n \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2612, "properties": {"category": "rec.motorcycles", "text": "From: infante@acpub.duke.edu (Andrew  Infante)\nSubject: Re: RIM NEEDED\nKeywords: Either do it, or keep you opinions to yourself.\nOrganization: Duke University; Durham, N.C.\nLines: 46\nNntp-Posting-Host: north1.acpub.duke.edu\n\nIn article <1993Apr14.210922.20916@news.columbia.edu> twang@cunixf.cc.columbia.edu (Tony Wang) writes:\n>In article <13177@news.duke.edu> infante@acpub.duke.edu (Andrew Infante)writes:\n>>In article <1993Apr13.122643.3180@walter.bellcore.com> pgoudas@gomer.bellcore.com (Paul Goudas) writes:\n>>>\tAlso, is there a law or something that requires NYC to keep it's\n>>\t\t\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>>>street empty of potholes greater than a certain depth?  I (rather my bike) \n>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>>\n>>HAHAHAHAHAAHAHHA WHAHwuhuhahuah!!!!\n>>\n>>That's a good one!!  Really, stop!  I can't breathe!!\n>\n>\tBite your tongue. Those of us who ACTUALLY RIDE in NYC on a\n>daily basis could not live without those Potholes. It'll ruin the\n>flavor. It's not enough just to dodge taxis, buses, pedistrians,\n>bicycle messengers, and BDI's on a block by block basis. Those\n>potholes always makes for that sudden randomness that makes it all so\n>much fun. Besides, where else can you think of that allows you to\n>constantly test your panic braking, shocks, and dirt-riding abilities\n>all on city streets. You smooth asphalt canyon carvers don't know what\n>you're missing.\n>\n>8-)........\n>\nI was laughing about the law part.\n\nI've driven thru SOHO...manahattan, _I_ know what' you're talking 'bout...\n\n:^)\n\nNot that Durham, NC is any better...\n\n(well, maybe a little bit anyway, but the NC DOT takes more\nmoney from road taxes and puts it in their own pockets and\ninto the pockets of the guys building the large condos that\nneed their own roads than they do back into fixing roads, but\nhey, the local paper did a report of this last summer, and \nboy, am I glad I don't work for the DOT, 'cause they got SHAT\non, bigtime....wonder who lost their jobs?  ED?  Got any idea?)\n\n\n-- \nAndy Infante  | You can listen to what everybody says, but the fact remains   |\n'71 BMW R60/5 | that you've got to get out there and do the thing yourself.   | \nDoD #2426     |                             -- Joan Sutherland                | \n==============| My opinions, dammit, have nothing to do with anyone else!!!   | \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2613, "properties": {"category": "comp.graphics", "text": "From: wdm@world.std.com (Wayne Michael)\nSubject: Re: XV under MS-DOS ?!?\nOrganization: n/a\nLines: 12\n\nNO E-MAIL ADDRESS@eicn.etna.ch writes:\n\n>Hi ... Recently I found XV for MS-DOS in a subdirectory of GNU-CC (GNUISH). I \n\nplease tell me where you where you FTP'd this from? I would like to have\na copy of it. (I would have mailed you, but your post indicates you have no mail\naddress...)\n\n>             \n-- \nWayne Michael\nwdm@world.std.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2614, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: IC Packages\nOrganization: Megatest Corporation\nLines: 58\n\nIn article <1993Apr16.142715.12613@sol.ctr.columbia.edu> seema@madvlsi.columbia.edu (Seema Varma) writes:\n>Hi,\n>\tI am looking for some help in choosing a package\n>for a high-speed silicon ADC (100Mhz) currently being \n>fabricated. This is a PhD research project and I have to test\n>the chip at speed on a PCB. I expect to have roughly 100\n>packaged circuits and will do DC, low-speed and high-speed\n>testing using 3 different set-ups for the test chip.\n> \t\n>\tI know for sure that a DIP will not work\n>(the long lead lines have too high an inductance).\n>Getting a custom-made package is too expensive, so\n>I am trying to choose between a flatpak and a\n>leadless chip carrier. The flatpack would be hard\n>to test since it has to be soldered on to the test\n>setup and I would spend loads of time soldering \n>as I kept changing the test chip. The leadless chip\n>carrier sockets also have long lead lines and may\n>not work at high speeds.\n> \n>\tDoes anyone out there have experience/knowledge\n>of this field ? I would greatly appreciate help! Any ideas/\n>names of companies manufacturing holders/sockets/packages\n>would help. \n> \n>P.S. The multi-layer fancy GaAs packages seem like a bit\n>of overkill(?)\n>\t\n> --- Seema Varma\n\n\nYou didn't mention whether or not cost is an issue.  Where\nexactly are you running 100MHz??  THe digital side?  TTL?\nECL?  We run 200MHz and 100MHz all over our IC test equipment \nall day long in the ECL domain, and we use DIP's along\nwith PLCC's, 25mil and 20mil pitch 256pin QFP's to name\na few.  I don't see a problem in packaging as long\nas you adhere to sound engineering practices.  \n\nA good source of information is Motorola's MECL System Design\nHandbook. The latest ed. is dated 2/88.  That is considered\nto be one of the *bibles* in high-speed design.\n\nThe very fact that you need to build a test fixture means\nyou're most likely going to need a socket.  It in itself\nhas far more inductance per pin than the package you are\ntesting, not to mention any impedance discontinuities.  I\ndon't see the big concern over the packaging because it\nprobably isn't going to make that much difference\n\nIf you're trying to get TTL to run at 100MHz, have fun...\nTTL was never designed to run in a 100MHz environment.\n:-(\n\naaron\n\nP.S. My opinions have nothing to do with my company...the\nstandard disclaimer applies.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2615, "properties": {"category": "talk.religion.misc", "text": "From: ad354@Freenet.carleton.ca (James Owens)\nSubject: Re: 666, THE NUMBER OF THE BEAST, VIEWER DISCRETION IS ADVISED!\nReply-To: ad354@Freenet.carleton.ca (James Owens)\nOrganization: The National Capital Freenet\nLines: 13\n\n\nUN Resolution 666 guarantees humanitarian aid will get into Irag during\nthe Gulf War.  Is this war over? Is aid getting in, or are they still\ntrying to smoke out Saddam?  Is this the Middle East?  Are we talking\nreligious war here?  Am I ranting?\n-- \n                                     James Owens  ad354@Freenet.carleton.ca\n                                     Ottawa, Ontario, Canada\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2616, "properties": {"category": "talk.religion.misc", "text": "From: tph@susie.sbc.com (Timothy P. Henrion)\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nOrganization: /usr/lib/news/organization\nLines: 32\nNNTP-Posting-Host: susie.sbc.com\n\nIn article <1993Apr21.093914.1@woods.ulowell.edu> cotera@woods.ulowell.edu writes:\n>In article <1r17j9$5ie@sbctri.sbc.com>, netd@susie.sbc.com () writes:\n>> In article <20APR199301460499@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen) writes:\n>>>For those who think David Koresh didn't have a solid structure,\n>>>or sound Biblical backing for his hour long tape broadcast,\n>> \n>> I don't think anyone really cares about the solid structure of his\n>> sermon.  It's the deaths he's responsible for that concern most people.\n>\n>I assume you have evidence that he was responsible for the deaths?\n\nOnly my common sense.  The fire was caused by either Koresh and his\nfollowers or by the FBI/ATF/CIA/KGB/and maybe the Harper Valley PTA.  Since\nyou are throwing around the evidence arguement, I'll throw it back.  Can\nyou prove any government agency did it?  (Please don't resort to \"they \ncovered it up so that proves they did it\" or any wild theories about how\nthe government agencies intentionally started the fire.  The key words\nare proof and evidence.)\nproves they did it\"\n\n>\n>> All that \"thou shalt not kill\" stuff.\n>\n>I'd like to point out that the Bible says \"Do not commit murder.\" The NKJ\n>translation mistranslates.  Self-defense was never considered murder.  The\n\nPlease explain how Koresh was defending himself from those children who\nburned.  \n\n-- \n  Tim Henrion              Southwestern Bell Technology Resources\n  thenrion@sbctri.sbc.com       \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2617, "properties": {"category": "rec.motorcycles", "text": "From: jonc@joncpc.SanDiego.NCR.COM (Mike Corcoran)\nSubject: Re: tire recomendation for CB400T wanted\nKeywords: tires recomend CB400T\nOrganization: NCR E&M San Diego\nDistribution: usa\nLines: 20\n\nIn article <1993Apr14.172716.4301@cbnewsm.cb.att.com>, asalerno@cbnewsm.cb.att.com (antonio.j.salerno..jr) writes:\n|> \n|> I've got a '81 CB400T with Chen-Shing (sp?) tires on it.\n|> I got it with these tires on it!  The only reason I need new tires \n|> is beacuse I hate (and don't feel safe on) these.\n|> \n|> I'd appreciate any recomendations I can get (about NEW tires!).\n|> \n|> Thanks,\n|> Tony\n\nI'll throw in a vote for a Metzler \"economy\" tire, the ME77. Good\nfor mid-size older bikes. Rated to 130mph. Wearing well and handles\nmy 12 mile ride(twisties) to work well on the SR500. Costs a bit \nmore than the Chengs/IRC's etc, but still less than the Sport\nMetzlers for the newer bikes. Cost from Chaparral is about $60 for the\nfront, and $70 for the rear.\n-- \n          Jon M.(Mike) Corcoran <Mike.Corcoran@SanDiego.NCR.COM>   \n\t\t  '78 Yamaha SR500 - '72 Honda XL250 - '70 Husky 400 Cross\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2618, "properties": {"category": "soc.religion.christian", "text": "From: gt7122b@prism.gatech.edu (boundary, the catechist)\nSubject: Re: Atheists and Hell\nOrganization: Georgia Institute of Technology\nLines: 54\n\n>>\"We look for the resurrection of the dead, and the\n>>life of the world to come.\"  - Nicene-Constantinopolitan Creed.\n\n>I always took the 'resurrection' in this statement to mean the\n>resurrection of the soul, but I guess resurrection does strictly mean\n>the raising of the physical body.  I have some questions on this point:\n\nThe next time you go to church, you can check the better creed, that is,\nthe Apostles' Creed.  It says: \"the resurrection of the body.\"  Should\nhave learned that on the first go around.  But what's a body without \na little bit a'soul? \n\n>1.  I always thought that Christians believe the descent into hell was \n>pretty much immediate, and that there are people burning in hell right\n>now. Where will my \"soul\" \n>(which, by the way, I don't believe in) exist until that time?\n\nAt the risk of offending everybody, I will interject the 13th century\npoint of view.  Christ descended immediately into the bosom of Abraham\nto set captives captive.  He preached to the saved for three days before\ndrawing them with Him back to this earth.  I'm no expert on this part,\nbut Matthew (27:52-53) says about the death of Jesus: \"tombs were opened,\nand the bodies of many saints who had fallen asleep were raised.  And\ncoming forth from the tombs after his resurrection, they entered the\nholy city and appeared to many.\"  (NAB)  Regarding the hell of the\ndamned, of which you speak, Christ did not see it (Ps 16:10, Acts 2:27),\nalthough it saw Him (cf. Is 45:2).  \n\nConcerning the abodes of the dead, I don't want to subject my brethren\nto further anguish, so I will direct you to contact me through e-mail\nif you are genuinely concerned. \n\n>2.  Will the new body I will have be created out of the same atoms \n>that my body now is made of, or will it be built from scratch? \n\nYour new body might be something like Adam's before his fateful encounter\nwith the Just One (Acts 7:52, CR trans. Vulgate): filled with infused\nknowledge, absent of concupiscence, and immortal.  It would probably be\na little glorified, too.\n\n>3.  Since I will have a physical body, I assume it will need a physical\n>place to exist in -- where is this hell?  In the center of the earth?\n>Do you think we could find it if we dig?\n\nI wouldn't recommend it.  It's really hot down at the center of the earth!\nYou know, the normal geothermal gradient, and all that.\n  \nRegards.\n\n-- \nboundary, the catechist \n\nno teneis que pensar que yo haya venido a traer la paz a la tierra; no he\nvenido a traer la paz, sino la guerra (Mateo 10:34, Vulgata Latina) \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2619, "properties": {"category": "talk.politics.mideast", "text": "From: jaa12@cunixa.cc.columbia.edu (John A Absood)\nSubject: Re: Freedom In U.S.A.\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: jaa12@cunixa.cc.columbia.edu (John A Absood)\nOrganization: Columbia University\nLines: 25\n\nDear Mr. Beyer:\n\nIt is never wise to confuse \"freedom of speech\" with \"freedom\"\nof racism and violent deragatory.\"\n\nIt is unfortunate that many fail to understand this crucial \ndistinction.\n\nIndeed, I find the latter in absolute and complete contradiction\nto the former. Racial invective tends to create an atmosphere of\nintimidation where certain individuals (who belong to the group\nunder target group) do not feel the ease and liberty to exercise \n*their* fundamental \"freedom of speech.\"\n\nThis brand of vilification is not sanctioned under \"freedom of\nspeech.\n\nSalam,\n\nJohn Absood\n\n\"Marlow ceased, and sat apart, indistinct and silent, in the pose of a\n meditating Buddha. Nobody moved for a time...The offing was barred by\n a black bank of clouds, and the tranquil waterway leading to the utter-\n most ends of the earth flowed sombre under an overcast sky - seemed to\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2620, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: PGP ideas for IBM systems\nLines: 7\n\n:    I've been thinking about how difficult it would be to make PGP available\n: in some form on EBCDIC machines.\n\nDon't encourage them.  Let EBCDIC machines die an honorable death :)\n\nG\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2621, "properties": {"category": "sci.crypt", "text": "Subject: Re: Once tapped, your code is no good any more.\nFrom: a_rubin@dsg4.dse.beckman.com (Arthur Rubin)\nDistribution: na\nOrganization: Beckman Instruments, Inc.\nNntp-Posting-Host: dsg4.dse.beckman.com\nLines: 60\n\nIn <strnlghtC5nrHw.1qB@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n\n>In article <115863@bu.edu> uni@acs.bu.edu (Shaen Bernhardt) writes:\n\n>>\n>>I wish I could agree with you.  Ask yourself this.  Why would any private\n>>sector entity wish to buy a crypto system that was KNOWN to be at least\n>>partially compromised? (Key escrows in this instance)  Why would any\n>>private sector entity wish to buy a crypto system that had not been properly\n>>evaluated?  (i.e. algorythm not publically released)\n>>The answer seems obvious to me, they wouldn't.  There is other hardware out\n>>there not compromised.  DES as an example (triple DES as a better one.)\n\n>What follows is my opinion. It is not asserted to be \"the truth\" so no\n>flames, please.  It comes out of a background of 20 years as a senior\n>corporate staff executive in two Fortune 50 companies.\n\nNo wonder American businesses are going down the tubes! :-|\n\n>I'd be happy to use a crypto system supplied by the NSA for business, if\n>they told me it was more secure than DES, and in particular resistant to\n>attempts by Japanese, French, and other competitive companies and\n>governments to break.\n\n(It's NIST, not NSA.  NSA is not supposed to have anything to do with this.)\nThey didn't say that.  They said is was better than some commercial-grade\nencryptions.  I, for one, wouldn't trust them if they did, unless they\nrelease the algorithm for investigation.\n\n>I'd be happy to do so even with escrowed keys, provided I was happy about\n>the bona fides of the escrow agencies (the Federal Reserve would certainly\n>satisfy me, as would something set up by one of the big 8 accounting firms).\n\nMaybe the ACLU and EFF.  (It would have to be a non-profit, so the big 8\nwould be out.)\n\n>I'd trust the NSA or the President if they stated there were no trap\n>doors--I'd be even happier if a committee of independent experts examined\n>the thing under seal of secrecy and reported back that it was secure.\n\nI wouldn't trust the NSA.  I think I would trust the President on this, but\nI'm not certain he would be told.\n\n>I'd trust something from the NSA long before I'd trust something from some\n>Swiss or anybody Japanese.\n\nThat's your problem.\n\n>This may seem surprising to some here, but I suggest most corporations would\n>feel the same way. Most/many/some (pick one) corporations have an attitude\n>that the NSA is part of our government and \"we support our government\", as\n>one very famous CEO put it to me one day.\n\nI want to emphasize the I am not speaking for Beckman Instruments at this\npoint.  However, we are an international company, and I would like to think\nthat our customers come first, ahead of our government's whims.\n--\nArthur L. Rubin: a_rubin@dsg4.dse.beckman.com (work) Beckman Instruments/Brea\n216-5888@mcimail.com 70707.453@compuserve.com arthur@pnet01.cts.com (personal)\nMy opinions are my own, and do not represent those of my employer.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2622, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: korenek@ferranti.com (gary korenek)\nSubject: Re: 80486DX-50 vs 80486DX2-50\nOrganization: Network Management Technology Inc.\nLines: 26\n\nIn article <1qd5bcINNmep@golem.wcc.govt.nz> hamilton@golem.wcc.govt.nz (Michael Hamilton) writes:\n>I have definitly seen a\n>mother board with 2 local bus slots which claimed to be able to\n>support any CPU, including the DX2/66 and DX50.  Can someone throw\n>some more informed light on this issue?\n>[...]\n>Michael Hamilton\n\nSome motherboards support VL bus and 50-DX CPU.  There is an option\n(BIOS I think) where additional wait(s) can be added with regard to\nCPU/VL bus transactions.  This slows the CPU down to a rate that gives\nthe VL bus device(s) time to 'do their thing'.  These particular wait(s)\nare applied when the CPU transacts with VL bus device(s).  You want to\nenable these wait(s) only if you are using a 50-DX with VL bus devices.\n\nThis is from reading my motherboard manual, and these are my interpre-\ntations.  Your mileage may vary.\n\nStrictly speaking, VL and 50mhz are not compatable.  And, there is at\nleast one 'fudge' mechanism to physically allow it to work.\n\n-- \nGary Korenek   (korenek@ferranti.com)\nNetwork Management Technology Incorporated\n(formerly Ferranti International Controls Corp.)\nSugar Land, Texas       (713)274-5357\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2623, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: Laser vs Bubblejet?\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 29\n\nFYI:  The actual horizontal dot placement resoution of an HP\ndeskjet is 1/600th inch.  The electronics and dynamics of the ink\ncartridge, however, limit you to generating dots at 300 per inch.\nOn almost any paper, the ink wicks more than 1/300th inch anyway.\n\nThe method of depositing and fusing toner of a laster printer\nresults in much less spread than ink drop technology.\n\nIt doesn't take much investigation to see that the mechanical and\nelectronic complement of a laser printer is more complex than\ninexpensive ink jet printers.  Recall also that laser printers\noffer a much higher throughput:  10 ppm for a laser versus about 1\nppm for an ink jet printer.\n\nSomething else to think about is the cost of consumables over the\nlife of the printer.  A 3000 page yield toner cartridge is about\n$US 75-80 at discount while HP high capacity (~500-1000 page yield)\ncartridges are about $US 22 at discount.  It could be that over the\nlife cycle of the printer that consumables for laser printers are\nless than ink jet printers.  It is getting progressively closer\nbetween the two technologies.  Laser printers are usually desinged\nfor higher duty cycles in pages per month and longer product\nreplacement cycles.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2624, "properties": {"category": "rec.motorcycles", "text": "From: kjk3@po.CWRU.Edu (Kathleen J. Kelly)\nSubject: Re: Protective gear\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 6\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nI second the boots... oil spots from cars are particularly\nslippery when parking the bikes, and  good boots help here as\nwell.\n-- \nSquid\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2625, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: sextonm@univrs.decnet.lockheed.com\nSubject: Re: Can't get 1280x1024 to work w/2M ATI Ultra Pro\nLines: 25\nNntp-Posting-Host: univrs.rdd.lmsc.lockheed.com\nOrganization: Lockheed Palo Alto Research Labs\n\nIn article <1993Apr19.144814.17736@aio.jsc.nasa.gov>, mancus@sweetpea.jsc.nasa.gov (Keith Mancus) writes:\n>   I am unable to get my Gateway 486DX2/66 to run Windows\n> in 1280x1024.  I ordered a 2M ATI Ultra Pro, and I'm pretty\n> sure the 2M is really there because I *can* select\n> 1024x768x65536.   But no matter what I do with the Flex program\n> in the ATI's program group, 1280x1024 remains ghosted out.\n> I have Windows 3.1, build 59 of the drivers, DOS 5.0.  The\n> drivers were installed by Gateway, not by me, so perhaps there's\n> a file missing from the hard drive.  It runs 1024x768 just fine.\n>   I did go into the Desktop window and select 1280x1024.  Sometimes\n> it refuses (ghosted out), other time it accepts it, but when I hit\n> OK and re-enter Desktop, it's back to 1024x768.  At no time does\n> it unghost 1280x1024 in the main Flex window.  Help!\n> \n> -- \nKeith,\n\nI had a problem getting 256 colors (I was stuck with 16) even though\nthe flex-stuff said I was at 1024-256.  I solved it by entering\nthe 'advanced' window on the flex program pannel and changing the\n'color palette'.  Sorry for the vaugeness, I hope it helps some.\n\nBTW, I have a GW2000-66V and 1M ATI GUP.\n\nMatt Sexton    SEXTON@CLAES.SPACE.LOCKHEED.COM\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2626, "properties": {"category": "rec.motorcycles", "text": "From: nelson@seahunt.imat.com (Michael Nelson)\nSubject: Re: Boom! Dog attack!\nNntp-Posting-Host: seahunt.imat.com\nOrganization: SeaHunt, San Francisco CA\nLines: 15\n\nIn article <9426.97.uupcb@compdyn.questor.org> ryan_cousineau@compdyn.questor.org (Ryan Cousineau)  writes:\n>\n>Interestingly, the one thing that never happened was that the bike never\n>moved off course. \n\n\tUnfortunately, I am one of the \"negative-impaired\".  The\n\tabove sentence says (I believe), that the bike DID move\n\toff course.  Of course.\n\n\t\t\t\t;-)  Michael\n-- \n+-------------------------------------------------------------+\n| Michael Nelson                                1993 CBR900RR |\n| Internet: nelson@seahunt.imat.com                 Dod #0735 |\n+-------------------------------------------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2627, "properties": {"category": "rec.sport.baseball", "text": "From: cmk@athena.mit.edu (Charles M Kozierok)\nSubject: Re: Best Homeruns\nOrganization: Massachusetts Institute of Technology\nLines: 22\nNNTP-Posting-Host: electric-monk.mit.edu\n\nIn article <1993Apr16.172502.2301@osf.org> dswartz@osf.org (Dan Swartzendruber) writes:\n} In article <4200419@hpcc01.corp.hp.com> boell@hpcc01.corp.hp.com (Donald P Boell) writes:\n} >I'd have to say the most impressive HRs I've ever see came from Dave Kingman\n} >and his infamous moon-raker drives...\n} \n} I remember one he hit circa 1976 at Wrigley Field that went across\n} the street (in dead center field) and hit a house on the roof.  He\n} whiffed a lot, but when he *did* connect, watch out!\n\nthe best home run i have *ever* seen came off, believe it or not,\nRoger Clemens (sorry, Val) a couple of years ago. he threw a ball to\nIncaviglia which was literally at Inky's neck, and he absolutely \nhammered the crap out of it. after the swing, Clemens nonchalantly\nmotioned for a new ball--he didn't even turn around to look, or\neven get upset. the ball hit the lights in the left-field standard,\nsome 70 or so feet about the Green Monster (over 100 feet above the\nground total!)\n\ntruly an amazing shot.\n\n-*-\ncharles\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2628, "properties": {"category": "rec.sport.baseball", "text": "From: genetic+@pitt.edu (David M. Tate)\nSubject: Re: Young Catchers\nArticle-I.D.: blue.7977\nOrganization: Department of Industrial Engineering\nLines: 65\n\nmss@netcom.com (Mark Singer) said:\n>In article <7862@blue.cis.pitt.edu> genetic+@pitt.edu (David M. Tate) writes:\n>\n>Well, perhaps if the Braves had no one else worth playing this year it\n>would be Lopez in there.  But they do have others worth playing, at\n>least in *their* opinion.  \n\nCatcher is their weakest position, with the possible exception of second base.\nThey have a chance to simultaneously replace their biggest offensive problem\nspot with a well-above-average offensive player *and* acclimate a highly\npromising potential star with no pressure on him to carry the team, and they\nwant to play *Olson* and *Berryhill* instead?!\n\n>>I disagree, in that I don't think it *is* a _tangible_ skill, any more than\n>>leadership is.  I don't deny that it is a *real* skill, and that some catchers\n>>may be much better than others at it, but I really don't see any way that we\n>>could ever know who they are.  Nichols's Law of Catcher Defense is eerily\n>>accurate far too often for me to take defensive assessments of catchers very\n>>seriously.\n>\n>Sorry.  New.  Don't know Nichols' Law.  \n\n\"A catcher's defensive reputation will be inversely proportional to his\n recent offensive level of performance.\"  Thus, Mickey Tettleton goes (in\n the media) from being a no-hit defensive whiz to a slugging thumb-finger\n in two short years.  The rule doesn't apply to perceived \"superstars\", who\n get the Gold Glove Offensive Transfer effect instead.  Greg Olson is probably\n considered to be a good defensive catcher precisely because he can't hit.\n\n\n>Don't believe in catchers'\n>era.  But I am interested in pitchers' eras with different catchers.\n\nAren't they the same thing?\n\n>In other words, we know more than they do, so the only logic behind \n>a different decision than we would make must be financial.  \n\nEither that or just stupidity.\n\n>I presume\n>we feel this way about other franchises than Atlanta, no?\n\nOf course.\n\n>>Is it fair to the young players?  No.  Does it make organizational sense? \n>>I think it does.\n>\n>Well if it does make organizational sense, one can hardly fault them\n>for their decisions.  I mean, please don't tell me how to run my\n>business.  Especially when I'm being successful.\n\nOne could make the same sort of argument in other cases.  Pete Rose, in\npursuing Ty Cobb's record, was a huge gate attraction (and national media\nmagnet).  The Reds made a lot of money off that; they also wasted the prime\nof Eric Davis.  That may be \"good business\", but that doesn't mean I don't\nloathe them for it.\n\n\n\n-- \n  David M. Tate   |  (i do not know what it is about you that closes\n  posing as:      |  and opens; only something in me understands\n   e e (can       |  the pocket of your glove is deeper than Pete Rose's)\n     dy) cummings |  nobody, not even Tim Raines, has such soft hands\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2629, "properties": {"category": "misc.forsale", "text": "From: mkawecki@cbnewsk.cb.att.com (michael.kawecki)\nSubject: *** TurboGrafx System For SALE ***\nOrganization: AT&T\nDistribution: na\nLines: 25\n\n\n   Take Everything for $210\n\n\nTurboGrafx-16 Base Unit (works like new) with:\n       1 Controller\n       AC Adapter\n       Antenna hookup\n     * Games:\n         Kieth Courage\n         Victory Run\n         Fantasy Zone\n         Military Madness\n         Battle Royal\n         Legendary Axe\n         Blazing Lasers\n         Bloody Wolf\n\n  --------------------------------------\n* Will sell games separatley at $25 each\n  --------------------------------------\n\n         Please Call Mike: 908-949-3804 (Day)\n                           908-469-3250 (Eves)\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2630, "properties": {"category": "rec.motorcycles", "text": "From: karen@angelo.amd.com (Karen Black)\nSubject: Re: Happy Easter!\nOrganization: Advanced Micro Devices, Santa Clara, CA\nLines: 18\n\nranck@joesbar.cc.vt.edu (Wm. L. Ranck) writes:\n>Nick Pettefar (npet@bnr.ca) wrote:\n>: English cars:-\n>\n>: Rover, Reliant, Morgan, Bristol, Rolls Royce, etc.\n>                  ^^^^^^\n>   Talk about Harleys using old technology, these\n>Morgan people *really* like to use old technology.\n>I think their suspension design hasn't changed since \n>they went from 3 wheels to 4 back in the '50s.  And it's\n>not like they had reached the pinnacle of good design \n>at that point either. \n\nWell, if you want to pick on Morgan, why not attack its ash (wood)\nframe or its hand-bent metal skin (just try and get a replacement :-)).  \nI thought the kingpost suspension was one of the Mog's better features.\n\nKaren Black\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2631, "properties": {"category": "talk.politics.guns", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: The Dayton Gun \"Buy Back\" (Re: Boston Gun Buy Back)\nLines: 23\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <C5uCHu.FFn@cbnews.cb.att.com> lvc@cbnews.cb.att.com (Larry Cipriani) writes:\n\n>According to WNCI 97.9 FM radio this morning, Dayton, Ohio is operating a\n>gun \"buy back\".  They are giving $50 for every functional gun turned in.\n>They ran out of money in one day, and are now passing out $50 vouchers of\n>some sort.  They are looking for more funds to keep operating.  Another\n>media-event brought to you by HCI.\n>\n>Is there something similar pro-gun people can do ?  For example, pay $100\n>to anyone who lawfully protects their life with a firearm ?  Sounds a bit\n>tacky, but hey, whatever works.\n\n      Ack, what a public relations nightmare just begging happen.\n\n      \"Gun Lobby pays vigilanties.\"\n\n      \"NRA to shell out dough to gunfighters.\"\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.121+0000", "event": "documents", "entityId": 2632, "properties": {"category": "rec.sport.baseball", "text": "From: brock@NeXTwork.Rose-Hulman.Edu (Bradley W. Brock)\nSubject: Re: Tribune & Times\nOrganization: Computer Science Department at Rose-Hulman\nLines: 20\nReply-To: brock@NeXTwork.Rose-Hulman.Edu (Bradley W. Brock)\nNNTP-Posting-Host: g210b-1.nextwork.rose-hulman.edu\n\nIn article <C5C9JA.AMB@unix.amherst.edu> ddsokol@unix.amherst.edu (D. DANIEL  \nSOKOL) writes:\n> pjtier01@ulkyvx.louisville.edu wrote:\n> > \n> > Is the Chicago Tribune baseball coverage any good?  Does the New York Times\n> > have daily coverage/boxscores?\n> \n> I don't know about the Tribune but the Times has daily coverage and  \nboxscores.\n> Of course, they have special emphasis on the Yankees and Mets\n\nBeware.  The original poster looks to be from Louisville, and chances are  \nLouisville gets the edition of the NYTimes that is printed in Chicago for the  \nMidWest.  This edition has boxscores only on Monday (and Sunday) and an  \nextremely skimpy sports section (few game summaries, mostly just color  \nstories).\n--\nBradley W. Brock, Department of Mathematics\nRose-Hulman Institute of Technology  | \"Resist not evil.... Love your enemies.\"\nbrock@nextwork.rose-hulman.edu       | --some Nazarene carpenter\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2633, "properties": {"category": "misc.forsale", "text": "From: 02106@ravel.udel.edu (Samuel Ross)\nSubject: Books for sale!!!\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 25\n\n\nSOMEONE PLEASE BUY THESE BOOKS!!!!!  I AM NOT ASKING MUCH!!!!!!\n\nJUST MAKE ME AN OFFER AND I WILL PROBABLY TAKE IT!!!!!\n\n\n* Writing good software in Fortran, Graham Smith. \n\n* The Holt Handbook by Kirszner & Mandell (copyright 1986) 720+ page writing guide. \n\n* General Chemistry Principles & Modern Applications, R. Petrucci, fourth\n  edition.  Big Book! Very good condition!\n\n* Solutions manual for Chemistry book.  Paperback.\n\n* Study guide for Chemistry book.  Paperback.\n\n\nSend me your offers via email at 02106@chopin.udel.edu\n\n\n\nSam\n02106@chopin.udel.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2634, "properties": {"category": "comp.windows.x", "text": "From: fish@daacdev1.stx.com (John Vanderpool)\nSubject: anybody have patched version of xroach for tvtwm???\nOrganization: NASA Goddard Space Flight Center - Greenbelt, MD USA\nLines: 19\n\ni read about the code you can put in to most applications so that\nthe virtual desktop stuff in tvtwm doesn't confuse them (or is the\napplication confusing the virtual-ness? [chicken & the egg?]\n\nbut wanted to see if it has been applied to a version of xroach\n\ni never could quite get ssetroot to work either? any suggestions.\nluckily xv -root -quit does the trick for the most part\n\nalso, i'ld be quite interested in hearing more about the icon region\nfor each virtual window under tvtwm that i read a thread on last week\nhere\n\tthanx,\n\t\tfish\n--\nJohn R. Vanderpool     INTERNET: fish@eosdata.gsfc.nasa.gov\nNASA/GSFC/HSTX         VOX: 301-513-1683                \n\"So you run, and you run, to catch up with the sun, but it's sinking,\n racing around to come up behind you again.\" -rw/dg\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2635, "properties": {"category": "rec.sport.baseball", "text": "From: fierkelab@bchm.biochem.duke.edu (Eric Roush)\nSubject: Re: Young Catchers\nArticle-I.D.: news.12799\nOrganization: Biochemistry\nLines: 139\nNntp-Posting-Host: bruchner.biochem.duke.edu\n\nSince I was the one responsible for these divergent threads of\napprox. 40+ posts (going back to: The Braves could be better off\nif an injury happens), I may as well inject a little more\nfuel to the flame!\n\n1)  Back at the beginning of Spring Training, I though\nLopez would make the squad easily.  Olson was still\nrecovering from his late-season injury (knee, I believe),\nand there were questions as to whether he would be\nable to play before June.  And then Berryhill was dinged up.\n\nI was looking forward to this, because I believe that Lopez\ncan hit AND field the position.  Before last season, he was\nthe Braves \"Defensive Catcher\" prospect, while Brian Deak was\nthe Braves \"Offensive Catcher\" prospect.  Besides, Olson\nand Berryhill couldn't hit their way out of a wet cardboard\nbox, and don't walk enough to be useful.\n\nBut Olson recovered quickly, Berryhill recovered, and the Braves went\nwith the two vets.  I still say that if one of those two had been down\nat the start of the season, he wouldn't have gotten his job back.\n\n2)  There is a certain logic to keeping Olson and Berryhill around.\nAfter all, ML catchers are in short supply and suffer from wear and\ntear.  There are teams out there without ONE average ML catcher\n(California and Seattle come to mind).  Certainly, trying to\nmove Olson or Berryhill through waivers would be unlikely to work.\nPlus, you'd have to eat that salary, which isn't huge, but isn't\ntiddleywinks either (I think Olson's at about $800,000, Berryhill\nat $450,000, but that's only what I recall).\n\n3)  Yes, I think arbitration-eligibility may have a role to\nplay in this also.  What is it, that 5/6 of the 2+year players\naren't eligible for arbitration?   Only the 1/6 that were on the roster\nthe longest are eligible?  Of course, the system may change,\nbut the extent of that change is not yet known.  From a business\nstandpoint, it may make sense to keep Lopez down until June/the\nfirst time Olson/Berryhill go on the DL.\n\n4)  I am still disappointed that Lopez isn't on the team.\nI still prefer to think of myself as a fan when it comes to the Braves,\nand the truth is that I'd rather see our best team on the field,\nwhich, IMO, includes Lopez.\n\nOf course,today we play the Cubs.  Hopefully, we won't need him. ;)\n\nAs for the Schuerholz/Cox conversation, I imagine it went\nlike this:  (Remember, they've BOTH been GM's)\n(the following is not meant to be read by the humor-impaired)\n\nCox:  OK, we've sent Jones down.  His fielding could be a\nlittle smoother.  Besides, Blauser can hit OK and his fielding\nis better than it used to be.\n\nSchuerholz:  Well, we'll have to send Nieves down too.  Deion\njust won't sign that baseball only contract.  We can't count\non him in October, so we have to keep Nixon around for the\ndefense.  Besides, Gorman's not ready to give up on\nBilly Hatcher yet.  Once Hatcher's gone AND Deion signs,\nwe can move Nixon for Frankie Rodriguez.  That ought to\ngive us some pitching depth in 1995.\n\nCox:  Yep, that'll be nice.  Too bad Deion won't sign.\nOK, I'll look for Nieves when Justice starts having\nBerry-Berry...er, back problems again.  Now, what about\nKlesko?\n\nSchuerholz:  Well, we've still got to fork out another 1.5 mil\nfor Bream.  If we keep Klesko, we either lose the money\nor Cabrera.  I keep dangling Sid in front of Dal Maxwell,\nbut somehow he doesn't seem to be the same GM.  First\nJeffries for Jose, and now Whiten for Clark!  If he\ngets rid of Brian Jordan, then I'd HAVE to believe that he\nand Whitey Herzog switched bodies at the Winter Meetings!\n\nCox:  OK, keep trying on Bream, and I'll wait til the trading\ndeadline for my Hunter/Klesko platoon.  Maybe I can get a few\nextra at-bats for Cabrera while we wait.  Try California...\nif Snow starts slowly, maybe WhiteyDal will bite on Sid.\nAnd if that doesn't work, then perhaps Sid's knees\ncould be \"persuaded\" to act up.  There's always the\n15-day DL!  Mwa-ha-ha-ha-ha!\n\nSchuerholz:  What about Caraballo?\n\nCox:  Well, he's not that much better than Lemke.  Maybe if he starts\nin Richmond, he'll start walking more.  Besides, if he's going to be\narbitration-eligible, better to stretch him out so that we actually\nget some value from him before he makes the big bucks.\n\nSchuerholz:  Now, let's see.  That leaves Lopez.\n\nCox:  NOOOOO!  I gotta keep Lopez!  Sure, I didn't think Olson\nwould recover this quickly.  Maybe I can talk Caminiti into\nrunning into him again?\n\nSchuerholz:  Nope, Lopez has gotta go.  You know that he'll get\n$3 million in arbitration.  May as well put it off that one\nextra year.  Besides, until Olson's shown his stuff a little\nbit, I can't trade him.  Besides, Berryhill's a left-handed\nhitter.  You know how rare that is?\n\nCox:  Don't you mean a left-handed whiffer?  Pretty common,\nif you ask me.  I mean, he made Pat Borders look good in\nthe World Series.  PAT BORDERS!!!\n\nSchuerholz:  Hey, you're the one who wouldn't write Lopez\ninto the lineup.\n\nCox:  Well, you're the one who went out and got me Jeff\nReardon!  Besides, I thought Lopez wouldn't be used\nto our pitching staff's stuff.  He got some time with\nthem this spring...looked pretty good.  Come on, surely\nwe only need to keep one stiff behind the plate?\n\nSchuerholz:  Yeah, but which stiff?  Whichever one we keep\nwill be hurt by May.\n\nCox:  OK, OK, you made your point.  Keep them both.  Surely\none of them will be on the DL by June at the latest.  Then I\ncan call up Lopez, and then we can win 110 games!  The Pennant!\nTHE WORLD SERIES!  I'll be up there with John McGraw!  Casey\nStengel!  Earl Weaver!  Oh, they laughed at me in Toronto,\nbut have you ever had to deal with George Bell?  I'll finally\nget my just reward!  Mwa-ha-ha-ha!\n\nSchuerholz:  Easy, Bobby.  Have you been taking those\n\"happy pills\" left around by Chuck Tanner?  Why'd you\never hire that guy anyhow?\n\nCox:  Don't ask me; ask Ted.\n\n-------------------------------------------------------\nEric Roush\t\tfierkelab@\tbchm.biochem.duke.edu\n\"I am a Marxist, of the Groucho sort\"\nGrafitti, Paris, 1968\n\nTANSTAAFL! (although the Internet comes close.)\n--------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2636, "properties": {"category": "sci.med", "text": "From: caf@omen.UUCP (Chuck Forsberg WA7KGX)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nOrganization: Omen Technology INC, Portland Rain Forest\nLines: 32\n\nIn article <1qk6v3INNrm6@lynx.unm.edu> bhjelle@carina.unm.edu () writes:\n>\n>Gordon Banks:\n>\n>>a lot to keep from going back to morbid obesity.  I think all\n>>of us cycle.  One's success depends on how large the fluctuations\n>>in the cycle are.  Some people can cycle only 5 pounds.  Unfortunately,\n>>I'm not one of them.\n>>\n>>\n>This certainly describes my situation perfectly. For me there is\n>a constant dynamic between my tendency to eat, which appears to\n>be totally limitless, and the purely conscious desire to not\n>put on too much weight. When I get too fat, I just diet/exercise\n>more (with varying degrees of success) to take off the\n>extra weight. Usually I cycle within a 15 lb range, but\n>smaller and larger cycles occur as well. I'm always afraid\n>that this method will stop working someday, but usually\n>I seem to be able to hold the weight gain in check.\n>This is one reason I have a hard time accepting the notion\n>of some metabolic derangement associated with cycle dieting\n>(that results in long-term weight gain). I have been cycle-\n>dieting for at least 20 years without seeing such a change.\n\nAs mentioned in Adiposity 101, only some experience weight\nrebound.  The fact that you don't doesn't prove it doesn't\nhappen to others.\n-- \nChuck Forsberg WA7KGX          ...!tektronix!reed!omen!caf \nAuthor of YMODEM, ZMODEM, Professional-YAM, ZCOMM, and DSZ\n  Omen Technology Inc    \"The High Reliability Software\"\n17505-V NW Sauvie IS RD   Portland OR 97231   503-621-3406\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2637, "properties": {"category": "talk.politics.mideast", "text": "From: alaa@peewee.unx.dec.com (Alaa Zeineldine)\nSubject: Re: WTC bombing\nOrganization: Digital Equipment Corp.\nX-Newsreader: Tin 1.1 PL3\nLines: 13\n\ntclock@orion.oac.uci.edu (Tim Clock) writes:\n: \n: \"But Hadas might be a fictitious character invented by the two men for \n: billing purposes, said Mohammed Mehdi, head of the Arab-American Relations Committee.\"\n: \n: Tim\n\nI would remind readers of the fact that the NY Daily News on March 5th \nreported the arrest of Joise Hadas. Foreign newspapers reported her\nrelease shortly afterwards. I can provide copies of the articles \nupon request.\n\nAlaa Zeineldine\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2638, "properties": {"category": "sci.crypt", "text": "From: ee92jks@brunel.ac.uk (Jonathan K Saville)\nSubject: Re: freely distributable public key cryptography c++ code:  where?\nOrganization: Brunel University, Uxbridge, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 26\n\nD. Wigglesworth (smhanaes@gpu.utcc.utoronto.ca) wrote:\n\n: Do you know of any freely distributable c++ (or c) code for public\n: key cryptography (such as RSA)?  \n\n: I've tried various archie searches to no avail.  \n\nHave you heard of PGP? I assume from your post that you have not. PGP 2.2\nis a freeware RSA encryption program which includes digital signatures and\ncomprehensive key management facilities. Most sites also keep the source code.\nA growing number of people are using this excellent software to encrypt (to\na very high standard) their email and data. Get it before Clinton outlaws it.\n\nTwo of the many sites are:\n      rsa.com     /pub/pgp\n      soda.berkeley.edu      /pub/cypherpunks/pgp\n\nHope this helps,\n\nJon\n--\n ------------------------ -------------------------------------\n|      Jon Saville       |   Who alive can say, 'Thou art no   |\n|  ee92jks@brunel.ac.uk  |  Poet, may'st not tell thy dreams?' |\n ------------------------ -----------  Keats, 1819  -----------\n     PGP 2.2 public key available upon request or by finger\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2639, "properties": {"category": "talk.politics.guns", "text": "From: phd85@seq1.keele.ac.uk (D.H. Holden)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nLines: 9\nDistribution: world\nNNTP-Posting-Host: seq1.cc.keele.ac.uk\n\nFrom article <1qvjh9INNh4l@hp-col.col.hp.com>, by dduff@col.hp.com (Dave Duff):\n> NUT CASE PANICS!!!!JUMPS THE GUN ON THE NET BEFORE GETTING FACTS STRAIGHT!!!!\n\n   Brilliant I like it!\n--\nDave Holden Phys. Dept. |  Email:                          \nkeele university.       | phd85@uk.ac.keele.seq1          \nkeele. staffs. England. |                                   \n-----------------------------------------------------------x\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2640, "properties": {"category": "comp.graphics", "text": "From: lansd@dgp.toronto.edu (Robert Lansdale)\nSubject: Advice sought: Turning font outlines into renderable polygons\nOrganization: CSRI, University of Toronto\nDistribution: na\nLines: 53\n\n\nI am seeking some alternate solutions on how to turn a Postscript Type 1 or\nTrueType font outline into polygons that can be subsequently scan converted\nby a 3D scanline renderer. \n\nI have been studying the problem of font conversion for a few years but\nhave never had the need to implement such a system. Well, I now have the\nopportunity to write some font rendering software so I would like to have\nsome of my questions answered before I jump into the deep end.\n\nThe main problem I face is how to use the even/odd or non-winding rules to\nturn the outlines into a single outline polygon (my renderer can handle\ncomplex polygons so there is no need to reduce the polygons to simple\npolygons). For example, in the letter \"O\" there are two outlines:\n\n\t1) The outside outline which is clockwise (TrueType font)\n\t2) The inside outline which is counterclockwise.\n\nOne common solution used by a number of rendering packages is to simply \nconnect the inner outline to the outer outline at the point where the\ntwo outlines are closest. This is equivalent to descibing a \"polygon with\nholes\". The renderer will then make the appropriate hole since the interior\npolygon edges are in the opposite direction to the outside edges.\n\nI do not want to use this simplistic system since:\n\n\t1) It will not handle all outline fonts properly (it is not a simple\n\t\tmatter to connect the outer outline to the inner outline for\n\t\tsome fancy fonts).\n\t2) It does not properly handle the even/odd or non-winding rules.\n\nFrom my research over the years the proper solution is to use a trapezoid\ndecomposition algorithm to scan convert the outlines into trapezoids (as\nis done by the Postscript and TrueType font rasterizers). These trapezoidal\npolygons can then be easily and properly rendered by the 3D scanline renderer.\n\nMy question is: are there any better solutions to turning the outlines into\npolgyons other than the trapezoid decomposer? I am not fond of this solution\nsince it creates excess number of polygons.\n\nAnother question, for those in the know: what is the best algorithm to create\nbevelled and/or offset curves for font outlines? I have a dozen papers on these\nsubjects but I can't tell which method is the best to implement.\n\nThanks for any pointers.\n\n--> Rob Lansdale\n\n-- \nRobert Lansdale - (416) 978-6619       Dynamic Graphics Project\t\nInternet: lansd@dgp.toronto.edu        Computer Systems Research Institute\nUUCP:   ..!uunet!dgp.toronto.edu!lansd University of Toronto\nBitnet:\t  lansd@dgp.utoronto           Toronto, Ontario M5S 1A4, CANADA\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2641, "properties": {"category": "rec.autos", "text": "From: bmoss@grinch.sim.es.com (Brent \"Woody\" Moss)\nSubject: Re: Do trains have radar?\nNntp-Posting-Host: 130.187.200.5\nOrganization: Evans & Sutherland Computer Corp., Salt Lake City, UT\nLines: 34\n\nIn article <x!fvt=b@dixie.com>, jgd@dixie.com (John De Armond) writes:\n|> hhtra@usho72.hou281.chevron.com (T.M.Haddock) writes:\n|> \n|> \n|> > While taking an extended Easter vacation, I was going north on I-45\n|> > somewhere between Centerville, TX and Dallas, TX and I came upon a \n|> > train parked on a trestle with its locomotive sitting directly over\n|> > the northbound lanes.  There appeared to be movement within the cab \n|> > and out of curiosity I slowed to 85 to get a better look.  Just as I\n|> > passed from underneath the trestle, my radar detector went into full \n|> > alert - all lights lit and all chirps, beeps, and buzzes going strong.\n|> > I thought I had been nailed good but no police materialized.\n|> \n|> Some, but not all, locomotives have doppler speedometers.  The radar head is \n|> mounted looking down at the ground (to minimize intereference sent and \n|> received) but looking tangentally at a wheel.  These are low power units\n|> and typically won't trigger radar detectors unless an unusual situation\n|> such as yours arises.\n|> \n|> John\n|> \n|> -- \n|> John De Armond, WD4OQC               |Interested in high performance mobility?  \n|> Performance Engineering Magazine(TM) | Interested in high tech and computers? \n|> Marietta, Ga                         | Send ur snail-mail address to \n|> jgd@dixie.com                        | perform@dixie.com for a free sample mag\n|> Need Usenet public Access in Atlanta?  Write Me for info on Dixie.com.\n\n\nThis makes sense(radar pointed down), because almost every train I pass head-on that triggers\nmy radar detector does so more just after I have passed the front of the engine.\nI get a little of the reflections as I am approaching and the instant I get to\nthe side of the first engine the detector receives a fairly strong signal for\na short time. It happens with just about EVERY train I see.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2642, "properties": {"category": "rec.sport.hockey", "text": "From: ayari@judikael.loria.fr (Ayari Iskander)\nSubject: Re: How to beat Pittsburgh!\nOrganization: Crin - Inria-Lorraine\nLines: 55\n\nIn article <1993Apr15.214902.3372@guvax.acc.georgetown.edu>, apanjabi@guvax.acc.georgetown.edu writes:\n|> In article <AfnKOVK00UhB01RDtJ@andrew.cmu.edu>, Robert Angelo Pleshar <rp16+@andrew.cmu.edu> writes:\n|> > \t<kfnJYea00Uh_I1VmUs@andrew.cmu.edu>\n|> > NNTP-Posting-Host: po5.andrew.cmu.edu\n|> > In-Reply-To: <kfnJYea00Uh_I1VmUs@andrew.cmu.edu>\n|> > \n|> > from Anna Matyas:\n|> >>>Now if we could just clone Chelios's personality and transplant it\n|> >>>into all of the defensemen on the Islanders, Capitals, and Devils...\n|> >>> \n|> >>>Gerald\n|> >> \n|> >>In other words, you want to turn them all into assholes so they\n|> >>will spend lots of time in the penalty box and get lots of\n|> >>misconducts?\n|> >> \n|> >>And this comes from a Chelios fan...\n|> > \n|> > Yeah, and also be second in the team in scoring and play about 35\n|> > minutes a game and play on the power play and kill penalties and be the\n|> > best defenseman in the league. I'd take a whole team of Chelioses if I\n|> > could. (That way, when one got a penalty the others could kill it!)\n|> > \n|> > Ralph\n|> \n|> >HOW TO BEAT PITTSBURGH???\n|> \n|> \tI.Mario Lemieux\n|> \t\tA.Death\n|> \t\t\t1.Too much Kimo\n|> \t\t\t2.Slash to skull\n|> \t\t\t3.Ask the Rangers (Slashing his wrist????)\n|> \tII.Jaromir Jagr\n|> \t\tA.Deportation\n|> \t\t\t1.Send him back to whatever Commie country \n|> \t\t\t  he's from\n|> \t\t\t2.Tell him that Bill Clinton is going too\n|> \tIII.Kevin Stevens\n|> \t\tA.Fighting\n|> \t\t\t1.Call Bob Probert\n|> \t\t\t2.Call Tie Domi\n|> \t\t\t3.Call my grandmother (She'd kick his ass)\n|>  \n\nSince everybody wants to see Pittsburgh players not playing, the\nStanley cup would be devaluated.\n\n-- \n_____________________________________________________\n\n  Iskander AYARI\n\n  Email : Iskander.Ayari@loria.fr ou ayari@loria.fr\n_____________________________________________________\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2643, "properties": {"category": "rec.autos", "text": "From: hagenjd@wfu.edu (Jeff Hagen)\nSubject: Improvements in Automatic Transmissions\nOrganization: Wake Forest University\nLines: 18\nNNTP-Posting-Host: ac.wfunet.wfu.edu\nSummary: query\nKeywords: Saturn, Subaru, manual, automatic\n\n\nThe biggest hurdle for automatics (IMHO) is not shifting speed\nper se, but rather the transmission's reaction speed when you\ntry to force it to shift manually.  \n\nThis was the biggest fault with the Subaru ECVT -- it took SOOOOOO\nLONNNNNNNNGGGGG for the tranny to find the right ratio.\n\nThe sales propaganda says the Saturn automatic is effectively an\nelectronically-shifted manual.  Might this mean that Saturn has\nconquered the problem?  (I dunno, only driven Saturn 5-speeds)\n\nINPUT, PLEASE!\n\nAnother question:  Any plans for a manual-trans Chrysler LH?\nDoes anyone else out there fall asleep at night dreaming of this combo?\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2644, "properties": {"category": "rec.sport.hockey", "text": "From: Karim Edvard Ahmed <ka0k+@andrew.cmu.edu>\nSubject: Re: Truly a sad day for hockey\nOrganization: Senior, Economics, Carnegie Mellon, Pittsburgh, PA\nLines: 17\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <1993Apr16.031823.11861@news.stolaf.edu>\n\n>A fine 26 year history came to a close tonight, as the Minnesota North Stars, \n>or Norm's Stars (whichever you prefer) lost to the Red Wings by a score of\n>5-3.  The Stars goals were scored by Mike McPhee and Ulf Dahlen, who netted\n>two including the final one in franchise history, with less than a minute to\n>play.\n\n\nYes, it's a shame that the NHL lost a fine team in one of the best\nhockey markets in the country.  Being a North Stars fan, it is sad to\nsee all of the tradition of the last 26 years get thrown into oblivion\nat the hands of a truly crappy owner.\n\nHopefully the NHL will install an expansion franchise in the Twin Cities\nwithin the next five years.  Even if this is the case, a lot has been\nlost in the North Stars move...\n\nKEA\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2645, "properties": {"category": "sci.electronics", "text": "From: jgd@dixie.com (John De Armond)\nSubject: Re: Help with ultra-long timing\nArticle-I.D.: dixie.8#_v!0a\nOrganization: Dixie Communications Public Access.  The Mouth of the South.\nLines: 44\n\nwellison@kuhub.cc.ukans.edu writes:\n\n>I have a project that was drooped in my lap that is somewhat a pain to design.\n>What I am looking for is a stable ultra-long solid state timer. What they want\n>to do is to place this thing on the Antartic ice shelf and measure the amount\n>of snow fall over a period of six weeks. Every two weeks, they want to trip a\n>selonoid to discharge different colored pellets by gas pressure out across the\n>snow. Then by digging down into the snow, the snow fall amount can be measured\n>as they come to the different color pellets.\n\n>The problem is trying to build a timer that would stand the cold (-40 degrees)\n>and a power source that wouldn't drain. I have looked at the XR-2204 timers and\n>the standard NE556 dual timers, but thier temp specs won't go that low. Also,\n>two weeks equates to 1,209,600 seconds per firing, which means one big timing\n>cap ! I have found 2.2 farad (yes, Farad !) caps that have a working voltage of\n>5 volts and are small in size. \n\nWhy are you fooling around with analog for this job?  A single chip\nmicro and a crystal will do the job reliably and easily.  An 8748 only\ncosts about $5.  That and a $1 crystal and you're in business.  Embed\nthe whole thing in a foam insulated blanket, power it from a solar cell,\nuse the excess power to heat the assembly during the day and rely\non the insulation to hold the heat during darkness.  If you don't want\nto try thermal management, contact someone like ICL and have them cut\nyou a special low temperature crystal.  It'll cost at most $20.\n\nIf you use a single chip micro, you're looking at a parts count of \nmaybe 7.  A processor, a crystal, two caps on the crystal, a power FET\nto fire the solenoid a flyback diode and a battery.  This is fewer parts than \nyou can build an analog timer for and is infinitely more reliable.  Add\na power zener diode (for heat) and a solar cell and the parts count\nscreams up to 9.\n\nPD assemblers are available for all the common single chip micros.  This\napplication is so trivial you could even look up the op codes in the \nprogrammer's guide and create the binary with a hex editor.\n\nJohn\n-- \nJohn De Armond, WD4OQC               |Interested in high performance mobility?  \nPerformance Engineering Magazine(TM) | Interested in high tech and computers? \nMarietta, Ga                         | Send ur snail-mail address to \njgd@dixie.com                        | perform@dixie.com for a free sample mag\nNeed Usenet public Access in Atlanta?  Write Me for info on Dixie.com.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2646, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Objective morality (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 44\nNNTP-Posting-Host: lloyd.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>Humans have \"gone somewhat beyond\" what, exactly?    In one thread\n>you're telling us that natural morality is what animals do to\n>survive, and in this thread you are claiming that an omniscient\n>being can \"definitely\" say what is right and what is wrong.   So\n>what does this omniscient being use for a criterion?   The long-\n>term survival of the human species, or what?\n\nWell, that's the question, isn't it?  The goals are probably not all that\nobvious.  We can set up a few goals, like happiness and liberty and\nthe golden rule, etc.  But these goals aren't inherent.  They have to\nbe defined before an objective system is possible.\n\n>How does omniscient map into \"definitely\" being able to assign\n>\"right\" and \"wrong\" to actions?\n\nIt is not too difficult, one you have goals in mind, and absolute\nknoweldge of everyone's intent, etc.\n\n>>Now you are letting an omniscient being give information to me.  This\n>>was not part of the original premise.\n>Well, your \"original premises\" have a habit of changing over time,\n>so perhaps you'd like to review it for us, and tell us what the\n>difference is between an omniscient being be able to assign \"right\"\n>and \"wrong\" to actions, and telling us the result, is. \n\nOmniscience is fine, as long as information is not given away.  Isn't\nthis the resolution of the free will problem?  An interactive omniscient\nbeing changes the situation.\n\n>>Which type of morality are you talking about?  In a natural sense, it\n>>is not at all immoral to harm another species (as long as it doesn't\n>>adversely affect your own, I guess).\n>I'm talking about the morality introduced by you, which was going to\n>be implemented by this omniscient being that can \"definitely\" assign\n>\"right\" and \"wrong\" to actions.\n>You tell us what type of morality that is.\n\nWell, I was speaking about an objective system in general.  I didn't\nmention a specific goal, which would be necessary to determine the\nmorality of an action.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2647, "properties": {"category": "talk.religion.misc", "text": "From: kevin@rotag.mi.org (Kevin Darcy)\nSubject: Re: After 2000 years, can we say that Christian Morality is \nOrganization: Who, me???\nLines: 15\n\nIn article <1993Apr15.010329.23133@mnemosyne.cs.du.edu> kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n>[Followups set out of talk.abortion...]\n>\n>In article <C5Fuo2.FF8@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike Cobb) writes:\n>>Am I reading this thread wrong or is this just another bemoaning of the fact\n>>that Christianity has a code of objective morality?\n>\n>Please define this \"objective morality\".\n>\n>While you're at it, please state the theory of creationism.\n\nStill searching for an irrelevant issue in which to mire a pro-lifer, I see.\nSlimy tactic.\n\n\t\t\t\t\t\t\t\t- Kevin\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2648, "properties": {"category": "sci.med", "text": "From: vgwlu@dunsell.calgary.chevron.com (greg w. luft)\nSubject: Relief of Pain Caused by Cancer\nOrganization: chevron\nLines: 51\n\n\n I am not sure if this is the proper group to post this to but here goes anyway.\n\n About five years ago my mother was diagnosed with having cancer in the lymph nodes\n under one of her arms. After the doctors removed the cancerous area she had full movement\n of her arm with only slight aching under her arm when she moved it. Over the course of\n the next two years the aching got more severe and her complaining to the doctors produced\n the explanation that it was scar tissue causing the pain. At this time her doctor \n suggested that some physiotherapy should be employed to break up the scar tissue.\n\n While attending one of her therapy sessions, while her arm was being \n manipulated, some damage occured (nerve?) which caused the level of pain to permanently\n increase severly (controlled by Tylenol 3s) and some loss of use of the arm (\n palsied wrist and almost no outward lateral movement). With great persistence on her part\n the doctors looked further into the issue and discovered that not all of the cancer had\n been removed and another tumor had grown under the arm. This was removed also but the\n pain in the arm has not decreased. The doctors are not sure exactly why the pain is \n persisting but feel some sort of nerve damage has occured and they have employed Tylenol 3\n and soon Morphine to relieve the pain. She has tried acupuncture by this only provides\n minor reductions in pain and is only short term.  \n\n My questions are: \n\n     Has anyone has heard of similar cases and what, if anything, was done to reduce the\n     levels of pain?\n\n     Are their methods to block nerves so that the pain can be reduced?\n\n     Are their methods to restore nerves so that loss of arm function can be restored?\n\n\n  Any general suggestions on pain reduction would be greatly appreciated.\n  \n  \n  Please respond by email because I do not always get chance to read this group.\n\n  If anyone knows of some literature that may be useful to this case or another newsgroup\n  that I should be posting this to it would also be appreciated.\n   \n     \n\n\n\n\n\n\n-- \nGregory W. Luft                              Internet: vgwlu@calgary.chevron.com\nChevron Petroleum Techonology Company             Tel: (403) 234-6238\n500, Fifth Ave. S.W.                              Fax: (403) 234-5215\nCalgary, Alberta, Canada   T2P 0L7\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2649, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sam4628@chensun2m.tamu.edu (Arglebargle IV)\nSubject: Re: How can I use the mouse in NON-Windows\nOrganization: Dept. of Chemical Engineering, Texas A&M University\nLines: 34\nDistribution: world\nReply-To: sam4628@chensun2m.tamu.edu\nNNTP-Posting-Host: chensun2m.tamu.edu\n\nIn article 5Iq@netcom.com, kasajian@netcom.com (Kenneth Kasajian) writes:\n} wnkretz@ikesg1.energietechnik.uni-stuttgart.de (Oliver Kretzschmar) writes:\n} \n} \n} \n} }   Hey,\n} \n} }   could somebody tell me, how it is possible to work with the mouse\n} }   in a NON-Windows application, which runs in an window. We use\n} }   MS-WINDOWS 3.1 and have CLIPPER applications. Exists there any\n} }   routines or something else ? Please mail me your informations.\n} \n} }   Thanks for your efforts,\n} \n} }     Oliver\n} }-- \n} } NAME : O.Kretzschmar                      Inst.IKE / University Stuttgart\n} } PHONE: +49 711 685 2130                           Pfaffenwaldring 31\n} } FAX  : +49 711 685 2010                            7000 Stuttgart 80\n} } EMAIL: wnkretz@ikesg1.energietechnik.uni-stuttgart.de\n} \n} Very simple.  You have to have the MOUSE.COM or MOUSE.SYS loaded in DOS\n} before you run Windows.  Note that you don't need to have these files loaded\n} to use the mouse in Windows.\n\n\n... and you need a video driver which is completely Windows 3.1 compatible, and\nyour mouse driver has to be completely compatible as well.  Not quite so simple.\n(I never could get my logitech mouse to work 100% in a DOS window with my\nold Paradise card:  now I have a Diamond SS24X and the 6.2 mouse drivers, and\neverything works perfectly).\n\nSteven M.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2650, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: sgi\nLines: 28\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1993Apr3.100039.15879@monu6.cc.monash.edu.au>, darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n|> In <1p8ivt$cfj@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >Should we British go around blowing up skyscrapers next?\n|> \n|> I don't know if you are doing so, but it seems you are implying \n|> (1) that the person accused of blowing up the WTC in NY actually did it,\n|> and\n|> (2) that Islamic teachings have something to do with blowing up the WTC.\n\nI was replying to a person who attempted to justify the fatwa\nagainst Rushdie on the grounds that his work was intentionally\ninsulting. \n\nI think that to take a single sentence from a fairly long\nposting, and to say \n\n\t\"I don't know if you are doing so, but it \n\tseems you are implying.....\"\n\nis at the very best quite disingenuous, and perhaps even\ndishonest.    If anyone care to dig back and read the full\nposting, they will see nothing of the kind.\n\nI trust you don't deny that Islamic teaching has \"something\nto do\" with the fatwa against Rushdie?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2651, "properties": {"category": "sci.med", "text": "From: sasghm@theseus.unx.sas.com (Gary Merrill)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOriginator: sasghm@theseus.unx.sas.com\nNntp-Posting-Host: theseus.unx.sas.com\nOrganization: SAS Institute Inc.\nLines: 15\n\n\nIn article <1993Apr15.163923.25120@microsoft.com>, tomca@microsoft.com (Tom B. Carey) writes:\n|> OK, just for grins:\n|> - Kekule hypothesized a resonant structure for the aromatic benzene\n|> ring after waking from a dream in which a snake was swallowing his tail.\n|> - Archimedes formalized the principle of buoyancy while meditating in\n|> his bath.\n\nWell, certainly in Archimedes case the description \"while observing the\nphenomena in his bath\" seems more accurate than \"while meditating in\nhis bath\" -- it was, after all, a rather buoyancy intense environment.\n-- \nGary H. Merrill  [Principal Systems Developer, C Compiler Development]\nSAS Institute Inc. / SAS Campus Dr. / Cary, NC  27513 / (919) 677-8000\nsasghm@theseus.unx.sas.com ... !mcnc!sas!sasghm\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2652, "properties": {"category": "sci.med", "text": "From: anello@adcs00.fnal.gov (Anthony Anello)\nSubject: HYPOGLYCEMIA\nOrganization: Fermi National Accelerator Laboratory, Batavia IL\nLines: 14\nDistribution: world\nNNTP-Posting-Host: adcs01.fnal.gov\nKeywords: 40 BLOODCOUNT DANGEROUS?\n\n\nCan anyone tell me if a bloodcount of 40 when diagnosed as hypoglycemic is\ndangerous, i.e. indicates a possible pancreatic problem?  One Dr. says no, the\nother (not his specialty) says the first is negligent and that another blood\ntest should be done.  Also, what is a good diet (what has worked) for a hypo-\nglycemic?  TIA.\n\n\nAnthony Anello\nFermilab\nBatavia, Illinois\n\n\n-- \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2653, "properties": {"category": "sci.crypt", "text": "From: ariel@world.std.com (Robert L Ullmann)\nSubject: Re: Why the algorithm is secret\nOrganization: The World in Boston\nDistribution: na\nLines: 27\n\nExactly.\n\nBut I'll add another observation: if the chip does become a standard,\nthe algorithm won't _remain_ secret.\n\nLeaving the government with the only remaining option: to make use\nof un-escrowed keys illegal. Which won't begin to bother the terrorists\nand child abusers the government is so fond of referring to.\n\nNote that the Federalist papers stress _one_ reason for the right\nof citizens to bear arms: to defend themselves _against_ the army.\n_Our_ army.\n\nIMHO the _primary_ purpose of private crypto is defend ourselves\n_against_ the government. The odd terrorist I'm not worried about;\nthe goverment damages my quality of life every day.\n\nRob\n--\nRobert Ullmann\t\tAriel@World.STD.COM\t+1 508 879 6994 x226\nQuand Maigret poussa la porte du Tabac Fontaine, vers une heure et demie,\nle patron du bar, qui venait de se lever, descendait lentement un escalier\nen colima\u00a0\u00e7on qui s'amor\u00a0\u00e7ait dans l'arri\u00a0\u00e8re-salle. ... Arriv\u00a0\u00e9 derri\u00a0\u00e8re le\ncomptoir, il repousa le gar\u00a0\u00e7on d'un geste n\u00a0\u00e9gligent de la main, saisit\nune bouteille de vin blanc, un verre, m\u00a0\u00e9langea au vin de l'eau min\u00a0\u00e9rale et,\nla t\u00a0\u00eate renvers\u00a0\u00e9e en arri\u00a0\u00e8re, se gargarisa.  -- Simenon\n[text is ISO 10646 UTF-1 universal character set]\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.122+0000", "event": "documents", "entityId": 2654, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mitchell@nodecg.ncc.telecomwa.oz.au (Clive Mitchell)\nSubject: Dataproducts LZR1260 not printing correctly\nOrganization: Regional Network Systems Group, Perth\nLines: 951\n\n---------- cut here ---------- part 01/01\nbegin 644 1260wn31.exe\nM35KO 1D    & -$,__\\@ P $     ?#_'@     !0V]P>7)I9VAT(#$Y.#DM\nM,3DY,\"!02U=!4D4@26YC+B!!;&P@4FEG:'1S(%)E<V5R=F5D+@T*        \nM        _\"Z,#F\\$H0( C,N!PP (.\\-R RT !BT@ /J\\  *.T/LM00\"C<02.\nMP.B9 *%[!*-Y!*%]!*-W!(S BQY_!+Y_!.AM \"ZC<P2[Y &^F +H8 !0OGL$\nMO^$!I:6+'GL$BQ9]!(OK@>7_#XK?BOJQ!-/KB]73ZD(KPH[ B\\N&Z0,V?P2,\nMV@/1CMJ+S8ON,__1Z1//\\Z6%VW04_LR.P/[.CMJY  @S_XOU\\Z5+Z^B.V#/ \nM4,O1ZXO+T>O1Z]'K0RO#CL S__.EPS/V,]LSTC/_BHPP NA- (J70@*+ZB:(\nM3@ FB)X  0/H@?T  7+O0_[-=>2*C#D\"Z\"H A]^*EX(\"B^I#0R:(C@ \")HB>\nM  ,#Z(']  %R[DO^S77AA_M&@_X)<JW#BNF1L032[\"0/D;@! -/@PQ(3%%5V\nM]\\?X>\"(3-#4F)W@8%@ \"!@X> 1$)&3D%)14U#2UM'5T]?0-#(V,34S-S\"TLK\nM:QM;.WL'1R=G%U?7-[=W]P^/3\\\\OKV_O'Y]?WS^_?_\\  @$%#0,+&P<7-R]O\nM'Y]?WS^_?_\\/Z&L +HX>VP&++@  3;X* \"Z+/M<!@\\<0._5S%3/ K)%!K8O7\nM ]\".PJV3)@$_XOGKYRZAUP&.P 40 (L> @ #V/J.TXLF! #[ P8( \"ZCUP&A\nM!@ NH]4!C,\".V#/ B]B+R(O0B^B+\\(OX+O\\NU0$N@S[? 0!U$\"Z!/N$!  -W\nM!RZ++N$!ZP.]  ,N*2[A 2Z#'M\\! \"Z.!M<!+HP&W0&_  $S]JVR!Z@!= GH\nMC0\"JZ*@ Z_/HA  NC@;9 3/;BM@FBH\\  NAU \":*GP #@/L7=0@\"V(#7 .B \nM %.#^P)T-(KP@.9_L0?H4P R_XK8)HH/Z$D )HJ_  '0YHK>T>M9+HX&W0$>\nM5@8?B_<K\\T[SI%X?ZY.*\\(#F#[$$Z!\\ BM@FB@_H%P FBI\\  ='CT>/1X]'C\nM\"M[KR+S^ <.Q 3OU=R'3Z\"K1>1* P@B*Z#+DK(;$L0<JRM/H\"L7#._6*[';L\nML0@N@S[? 0!U'RZ!/N$!  -W%BZ#/N$! '4'A<!TN-/HPRZ++N$!ZP.]  ,N\nM*2[A 2Z#'M\\! %-242Z+%MT!ZP>![P @@,8\"@?\\ 0'?SC,$N.P[= 74\"CL(N\nMB1;= 8S:B]ZQ!-/K ]..VH/F#UE:6P/N3>EK_P !  $             X2T \nM #  ;P\\ !C8H   -  \"  7$!7@%/ 34!:Q U$-H1%Q7$%%(5(R=!*,LH ;X#\nM6 /L P$\"> =8=3'[Q48)KI2>6R' ^_$'\"X<I%;U[B%V%\"WA?\"!7]]?__[1)$\nM'_W?:&AU$0U $2 T:!7]7XZ+X0_V*;8@0+H*EH3!*2XV[@6U!@'B!@F =3M#\nM'*:,@]D+O((Y2+C0J,$Z7&A_?0A3<$K<9 %FE@H%1'9$GPI/<*LQ9@M&[V.#\nM L8;/Q?C7_B?;@,8 ]*F$-</1$_ZW_:@*,0)$7<)UXP)T>O7Q>70%,$ =;%5\nM@P5A J!\"XEX)FOQ_UR/Z_0]8)9 -[!.]] >A*D0(D1\"W:@&T6Z!28I=&\\*93\nM@GGQI:VXF&[=. <0/F[: 0#+^R$N(L'(%^5@X@*'XZX=H#.,9(:B2#TZH!TD\nMH8.3'Z(O_H^P; FTA*^4$!!A.1IH!XDY9!S\"COX7-W$;L,$CL*X3H$ JHCH?\nM'C?H4G=  ,.VZ,7^JQ%'R*%\"]!TL@.R^8 % M4JYZ/Z$#1FY=, )4Y)A\\'\\A\nM.-V6-6'V?Q,PP*3!*SFZO_TV(&95.V!X>.)B[(J!_E=)/K%1_SU?X/,F ?-\\\nM23<D;AUHPFK>%$R$S@*O*]%J8Z/ZT*S3\"\"Y8TAY*B'0_0#[Z&J33,C;L05NZ\nM\"*_B3CF L24GXD(J4'TEL(ZX GI.@59]P_]#N+L2M*,]ZNX!#M,UF-@F2MWK\nM(0X\"3^N:Q[V+*N(^(%N3_O=B#8/S-*G!QD0#DO0';>9PQ;D*8D*8.O)_*,;3\nMI0%M8$QA!IGAW95MHW2\"<Z'V!(AP[@!@$0%P./CXP]@$I[^_BOXSQM'4\"2:V\nM: VN0Z][HK@L0)0SK^=15^IG[)7?T@*/^2'4C]X'? IR\\3%W!#^*\"$.A[B)U\nM$,7$5D2!!F@@75_M#9<R\"-'*V!_22P>\\#WP]\"Y8=)18<P#1Q$_\"L';B;^$.A\nM-G'!Q#XH-BXJP+4=DXTA%7P$?^:EI!74HT=9P=7C1OE!%_KUOTW'NM'WO@#X\nM0.M>Q(VO(A9W J>TWW_] <P'A YP1H[+_8$K%Q[9Y 8:'J\\G\"= B(D4)N&<+\nM:AZTV88X\"]+%@%G0#'CP?@(THRQ$_'\\=8]'?_#\\ ^(.^%+B(>;GX!_FQ[O.%\nM]NL>Q&U:0'CR^>0OI)P>9 !PAP@5)$J\"= >F;QC0J&(\"T&')[P!;#@78LR) \nM.X@F!S@0^&27_T]7+9C^'=KJTWS#].@TD+7N].$TT!I-;1I(#N-T -Q#21[B\nM],H* 2I6)-/]SK.)5.(R1(BZC::'989LB!@@8#X,ZW#?&_/S[8ZF!/J8*@9H\nMV B:\\<+TB0%$H Q!]@R#7SJ\\F[-G3(!R??:D@69%KK_!63[^N-Y:#B#B]<YQ\nM2P0X&H <UX-(VP5>]L4)#41P5Q197A^[IQC>M=YS#,3LZ$7R7R\\:_?[]Z#5P\nM9'F;H&2\"@0M\"N0)LXH\"9\"9XFF)X@: (DHQ-T3: OH,Q*VAM4GT>E[N\\5M#ID\nM^1XMZEY\\5 %SJ#PZ. (8C1?0Y.,N8$/E\\Q]M\"55XL&L<-S;F%\"!CK (]@/I/\nM#F/((<4*P?'_70D((4!'/&E;'.Q76?0JB6PWZASJ$HC0 PIL9(+HD4+ *-T\"\nMY:JPQN$6%_M5/]\"O.X3L@%48/(OS3T2&5 4N%%YW0262V+._]R%?!?ZG ;G,\nMI!&&$\"YTN @O0::N!7H3L$7B'$W> \\H 0=+M: (L2V!XE:+)@4<=FIQX%6) \nM@_X;1K0(T*'!J>A1\\5ECP'6GRIPKGJ[YP]<7[)F'[$>)&P$3&%/<#-028 GT\nMOH%\"N6[8<GA<$!#]JA\"]6'W:XH:X8$,S\"DVJ^KQ$C<DZP+NXNGT AA5?PJJ_\nMH(&6EQ=*K\\.&  G:07]* [< H:_[M]CW(6Z=NJ!XE505X)'3]2\\VGGFQ$U:]\nM&ER)?*/VQ$[ 5J_^![NC>^WZ$YT$:.=6_$W0H<<K_+X$EIPKKA^8V*_]1IH1\nM6GI%??48-ND 5/,)LJG7'<<.V\\O:.@: ]]L?_(X*ZPAH%K2@QG&KZ'7N'T5.\nMH%.LC\\L(T3=G(-[UNOAX\"][-/ #X/-&J/U$<+,VE29W]*89BC1#@!OQNLB+N\nM$AZ++!.T!$;XN>%@GY!U,;T?,'B)Z*^X>4A(&2: E]QFZRJHH T?0EX6/<S\\\nMZ%WW7[]#>+K0J'^Z( .[Y4<M#P(:7.R'(1^NB('X%;*(*R#DGU[AOZVQ%_@8\nMEYD<^#]?6P(O#35$SQ@AE%IGHTX<C5,WT#HIYE&B9XX?-PE5;(R@1#2,@#\"L\nM*)3^VH +3+9J];=3KA1S>==06MZ*WII2ZW>$)UULPWB<(1E@0TFJ@B)7Z18(\nMKHIP,0W/V7'Z*M>T3 58Q>VW 6FY,X 68D,Q>)MA8R%[2[T2<;_@DVR(_KT(\nMG:A=>TSC18A@+EQ_@9P$4!_NB$!@OB@,XLY36C#6Y;;\\LJYYP#Z3#QPH!\\P#\nMJ6@-3@,[$TK9NE:=!\"6& B9[($H7; ^B3K=G#Z:_KM=?)) .]H*:W2AQ-\"RJ\nME^X#:)9O U@'HI]X(%_UZ0OBT[K=<BNCQW\\O*3#]!\\1:$_JKHZ$W3&Q1>L/1\nMI'6/!EOPN$%^8O*AV(Q%KB]&@^+__^M[O4!J R@DXL$A@WGHT?_I+0;TK;\"@\nME7F0; 1>S<%IW0I9\"Y&O)LFS5N?GV@Y@JT:\"E$K:M@OD $*>O:QHO^X!C.2D\nM<8OZA-6G!ZT4IG7J =<^4BM91%B<P 5Y%(MT.2CNXH_%T>_)F\\Q!_K]K4JX!\nMCD<=WO6 5],O0KMIF*/$>W#XU0!S306Q&D#_I$]QN?0&_FL08, YN%U\\% 7V\nMQE@?F,?G,C'?#2M?BP]R$WAQ#132!5%&I9MAK*J^WQZQ?(@:<;!9_\"<\\L>!_\nMI_KK_A)!!_6UF.T!-J7!]'/_[6AC<!8$&(-++BM^(,%&)L\"^78\"1G.:\\!D=Z\nM.H*^B/BJ?V7R*(!P#J!A(Y18W2%->&I58AW!>I5\"LX),O-7J9)\"I#O[+T.#=\nM\"C%0H-P#,;\"@G1B(<*%=B[C!N*1!>R/4J_71#ZZ?GGJ T&C_J +H-P.DR4:Z\nMP4*W M=?<S;HP@%91),5#V%D)/JO3?$$9L8D>=<;\"QN0?LYZVPBO=;$% X@.\nMZ5MH;1&;]C(]#-PK10RMMX%!84OP.&*!Z>/^ _-O+3* ^!4#6#40&] S8>72\nM_=RZ ]/K#$ H\".,>11$6$\"^P:0;RR2#ML&T/<I;N'\"30Q2G9I8.<M  * P-U\nMC:BFQ-U .T$3Q\"U);7R6P&TN9_P@R\\D%N:KE!(D($R^V0,3WH=^7=FWMR/\\&\nML3?$3<H8K=-?;V;.>GKA>DJCX'*&ZQ.5HN\"C4U?J60)I4\"#='3%P(%T:<4EK\nMZBDF5G#@>F0H)\\ <X9 9]NU1#SYK; !]ICJ/\\#SI+Y+TYU6/=2_DE0J<0XW:\nM8(YQ^S)2*FR>Y8-6CCMP@-( S84I?:>#+O- 7<C6P87V!?\"]-$QVD,?^ <@K\nMH; TI+J*/J3#=91A),[^@A#LLFC]T9IUH?\\YZUXHG.X1,50)//8 T_VB=8]V\nMWA\"0NQ)]#-C@:-T(0T%VD206?&\"MBIZ5L,'1GJP1M.Y0E!UH (447BXX&IS#\nMK/B&ZU4&=NL?,,! \\L\"\\+>2?@!^&PM/_#AB$GZ:7^V_'AZ_/V\\*0P!@Z[RI<\nM[-,26>5AW^'&J UQ=8W_ZPK\\7Q.]2GWVB* 73-A_\\'&\"3NN:PVJ.2#<B>MKR\nMRED5II26Y:,W+:_9+74E3?2?_Z,G_R\"I*OJF#;8%J98RK!H\\6/\"&]6'WOV\"N\nM7PBX)T@[$N@\"NGHTIU_W=>%9*]65&+Q2N4'T9O,94 /NX_2JZ@+XMCQ6>4AD\nM:@,,2_%JQ _K@L<-PZD;?X/GDE8((]K%^!/[=25]D.(1--Q9UX%4&EWL/?KX\nM@=V/)O[K\"A'J^CDU%<@D\"K5*R1ZS^&1;@XNQ#^P(^.__EW07%$'RG2QJ8-V)\nM7@<?6\\=73]N&_7Q<H-.\\OP?[ 5?I/L3MS:W)\"YDVP<H;Q=2B3OHBI:W5EU;\"\nM#.$71!])(NMVM8H^M( 06P>EP2=VI]) !?+0_9G@>AZ(BH@$X<6^$H$FHB@A\nM6R&^D]\"H@;!>2D@@:9!!#&JE!LH]'JF_ 7QDI]&7E;_(1M7?&M=!U#,_RG=K\nM8H\"BS3;4O!.@R@&Z1P3$-P>VB'VT;,#!Q@4NY@CX9POH\"=09<&3=B+A7B&L/\nM(I@O%XX\"6^P0=[A1+ZZ20D,2FMWGY1T24)=C4O2 YZ-WWS^T2UV-$ 1T/(P_\nMLAP#)-H\\I$S[@'*/3(?BOW&? 2L'0;98X7#:-V$#P*A8N$QRR4F P\\-UO^3*\nM7_%#G<ZH<\\07AQ).7G=>C,.+N5]=_%?@5?3@,YAFY,77N(#/T@9\"NE]J0X^+\nMGPHL?I6@C57A!SW+BZD+%9('<P<H\">H$]A?;2_L?Q^-'!=8#1E>5?/.JQP.!\nM]?'=BZTB7.R'?/Q]L?#Q(PM+I_N1_\\SVINE67%E_8#.0BZ$OWI^4+@.>!9^*\nMU[^>8%&EX,G/! 89I+C8^%<O&:W2?H)$2M<W&%?NBZ\\*I*UAXF\"!!FR>MI/I\nMP%OVF\"[E/%,Z5J@E__<+LC]W\\(@.HS[79(F4BW\\EZ%BZ_> !ZQ:$#//AT\"0.\nM*/[^;M\\#'4^GC/7C%AMYJ ZG/@<@3-#Y&KQOD+84B(R'8]TYW&[ R8ZQS[2_\nMV'E2_JQY%J%F(&*MJR )%K T1=YV&E0\\>MC_/W!%S,/[.\\$4Y-S]_(VR8EKY\nMT=U]#1HD\"%0U;)VJ6:LF1-WMOAX_@.H2(\"3<SPT0HF^ \\'S295T+4?+!F\\H0\nM4CE^?6K ? 5RK5N\"TJ!R0?+4>I<#%RPKU[=VF=BF40EY4R?=;$QZ]SY_EXN$\nM<+TK)X:)T#FJ QV7[=+VS]HJH$NC1Q475,S!@';4*9QN1L+;Z3K5J9VN4IW#\nMZ9K7Z9VN>)W=Z3I@A^CR,!$D &C=F$9<@;$,'!&!$L9SQ':\\8X\\.[('_OWX^\nM3K8!Z0)=SXS7N@;*-__.#1NP6C>!-0#^\\+JRCXC@ SU<( :!,/33HT82$./@\nM#.TGH,*ZCM)O7<1KW7*N0(1$B- ]3CH0L:>G^V^FKD%%S/[BKPAI\"Q'M0'-)\nM.SX@AMBDE_C;TTL^!-\"C2A)))C/TXX88>KW]$/>/..C_PE49TG3D<CV\"W)\"@\nMEW\"KD%J]$?&:E?6G %+9@V/$1O5C[JD0X%^'/1,\"[,O.\\7;=\"<;K3'OX*7OO\nMJ0&B_![,7[K4%5$6,4$CB;%%8N2I ;W)\\S_=C3P;TKW(4R'=B8/=\\@]X=_LZ\nM;(.;!V$CY9FP+D)C0)H#C.6VB[&KN75(*;D>^4D)B?]%6/PN0<;\"%Q\\?;W-P\nM?HAS\":X_23KI?6,FAO'Q](G)>/T\"\\ASP..+W/O9WPZC!TPN<;[9TUL'A!ZXW\nM&#W]_-+1H\\\\G9=X7KA# \\I[C9M_ >!;G0 \\M:[?\\C\\QDN I5LR$=N;*NPO=R\nMBGF;]!L&=N8Q-DXSX'WSL1%.1^_EQ:Q9/H3;0) A_?\\V*>M&ORF&/'KA_V42\nM1%Q@2WGTOU/^==5=CA7]'N<:)>[7(./BZSF& F(&W\"QVP//X<+QBXC+).RYN\nM4F9!5:VCT[KAOY3[HF<!U68@7XCLY\\#<GD ]% U9]_J'@*QN &6\"/#=P>\\:F\nM]S^M2\\Y3\"! W9A7\"![&JJ'<&(<'_T+0Z4DW_LQXK;CFTHRYW(.OND/4!CA<@\nMW^*^U$;1/]Q7E4ZDZ^8_SB#_\\17^Q^G*7'^C64.0BT(:)-K%\\$I&T/]7PE]H\nMWV\\&;(]ZNWXB;FCZV' ?=:S.2+<W%^RMW\\L.F KV>M<7D:_V_X#8^5U=3:A<\nMW\\V9TF17_F]$#UKHT[!; TG(>2_/<,(QT-/O [T1I_QQ'JP[\\(C?\"C'^GV#=\nM9:MM8AQ%?X4L%M!8\"6-2AC+\"7-<_%X&==GP^2-]?]_LU&%[G.)J;W4[O#730\nM@@YB<#F9V*K_Q3Z=-QCY8@[^;@Z,=Q7*+9C3+_\\Y2 \\$<!6T+H:>=5]%[S/]\nM(@&6K@7$IK3+/P-E5@9 9_N'ZW^]1\"U$OQMOKM/0&'4O-*A15^$7V4CN7BE]\nMIP6<<A_>-;C3 *IV#RZR 4? PE\"4QX+V1\\/0T2O#0P\\21D<_\"O'LI<48-X4K\nM9D@*@(BXM%.(\"V22;,'1INRL 1G>,. <PF7-/Z4-P@9P 8EWLM#_#A7KSAL1\nM_=K_HSC4 ER7@7F&BSUP[G\\##!4?0&XPUJ;X!@S!-PR-!LX;P$!WBWQP]\\/U\nM3T.+PGT'<N@ UI7!=-F=QNTXJ2_&![EJQ %4#Y(=M!,&\\M\\'RP#(_97W)@F@\nM ;IRX-3S_U L%_GL'X4)6D,<-:NMMF@=H6NHH4WJ$KJ!$!29'K+51X.1-31=\nM<\\KDCL;@Q0!M'T07MP'-W1;[*6_#6A0K[H2/1ZM\"^BG$:5YSM)7H[2+T:$5]\nM9RC L#G.L(NA(*XT!O@3B.=U_Z.W[^_\")\\EK*\"9\"/\"9\"JP)W;[1(<%>C/-S=\nM\":TVOIULO\"BV\\\"%>(QK@!6UGH< E[F\\&$4Z!#M''_H_+Q!Z0H*!\\B;H'&B\",\nM#( L*$B;_M<_;+%OHA,0>/7Y4 'X]$ZQRB4,[AM%_T/REI]=ONWH^_X1%SSJ\nMM&Z[-.XEBLAZ01OX5*_[!@K &W&+L,N _!X%GK%FD)[@#%L>A51-*CZJD\"1!\nM'N1K'=\"@(.PE (?\\^L^^QPS;4,'(Y]%?/)^>'#!K<#\"4?'BE0#1;$/WU!.R@\nM0]L# =1]*PJ0+>'V'V>@J3#1>8%U08!\"M .$00%M!0B!(MF&/QQ?9:S;@ 40\nMG00]KO=0'X*H#RR US_UX8'^T&4H*BQ N*/UH5FC@;S$R/W5:]@,.V@8D [F\nM:@>OZ  M\"<&G;4X0MS%6\\H$, D.[7R-X/[P:&D\\\"31$I>HH T=]-N,(TK%G_\nMZ-\\U^I;C[BN]J5EH):@8G)WZ]_%3NE,GJCKI_6/IU)I3KSF%_JK?;'#P$+&:\nME;Q_YK: ZNL+!DX'= \\-G _BW7JL+A8^W^SJ_;E@+LTK+[BZUBVEJZ]25U<]\nM^4NV+>=]3U'PP7^Y^*\\'_'5T?\"D4C1_P5.NZ:V!UYBSD#!;]1>*E733B?MW?\nM[9N;#0@?PC#:0GI<<%&4P?'=J/F8!?ZGFR K]H90EQ<;]GZ0CUX,$&B=^)\\F\nM>N?_2GX\\)R,>(]S_7@[L44B+ #9#$=1Z62'ZY1!&H@C&!#N0A)F7B?_+O%28\nM? '/H4IR=^!)05$=M?!EY1X!JN\"5A2?6C1@:G6E7?<,<LC[P+ZTBI'LAL[E5\nM UH7;7\\48!,)P@A-/3[M$)1-_T,_A)I !OH%F6%\\V@PE.A 4 J18D\", &=UU\nM%1HW0',(Q\"(0(O,A+7JE:NY=$*:J09S''@<.HW=L.@W,KE=!*S^GK@#UBR8'\nM_SQ8]^%_@UKP,44<S;4 E_=:<.?]N0(7^P_HE__*>ZJ*TE[C%*&5 )\\K$Z&:\nM=QHWJH]ZWRF\"+_WR6P#YP=I27;5+0<AKG;X5T*J@05_]%>!5]17_!$&L0MQC\nMG>9 ?8-GZ(E.ZTX'[%>_CRK5!QQ1SQ)UU9>Q):)'3,&-E9X+C._'B_1K@=AF\nM]<NKYI<UX6#A0:6B-W<FJ >MR\\=],,!&Z6!Q=F?1NYU02Y*IT<_9X<#1X^'N\nM.CT$]II=8*_QL8NA@*Z*[L,'$)6O$#>X^(KBE#\\_IL[PFZ$IJ5\\5GTA/+VC_\nM#4D^)\"C!S2!L O0!#,R>E_C?*?ZZY_3W$_? #]AP!4AYFF@:]]%K'Y?JJCXX\nM(M; $0: $7*.WFP]-0XB<!%_BXPH6Q[]'GX]6/7(KN-M0 _$G4U0 N4K?CT4\nMU#(<[!8_!(,P1X+V<?ORPMKQ4MG:,<)S431@7&'[*^3R]7\"\\?ST>PZGVL*S]\nMQ=@;!PWH08S%OW(X$O?;\\3Q<D? JKH\\AX_F-MK0MPWG^B_T:O)H+;Y\\)?/XJ\nM41FE\\U^?0F:%>/\"V^'R,YH8(\\\"@DNJY:_+[><&!\\)[[XM!^I,[=7H2QZQ1O]\nM+T>\\$7'0B.+E=Y&PW#@NQ,:Y'P8<N'^F-$-,#GF@<,4,G>I,3_>@XG2$YI^N\nM??72NNRR6J@E%[LUV-@SQ(!-^5]E+8/_C%_Q0/\\#+T<_OSAB%,*SH9\"CBX^.\nMO;!T\\/B#@)R./>O7U>*Q=6RAPR/R%_] _E4!CD?(#!FS5N1O4OKZH8J7H=- \nM5TZ72W\"^ZKOK*K>0XHB+(E:LB7V:U&60PZ%.C2K5(/I65#?Z@UJS;L7:%\"_Y\nMX47I (/G_WL!!TWK;IHWXWKJ7JVRHON$?_-!Q22-KD]X>#OD)IS-[K6U5<7L\nM%3OD &XZI-Y0I$E\\Y+AXR*%(DCQ(-SQ.@R1U1[:K ;(^O;*\"+'C#Q:>C%_!\"\nMP1];Y >LV<TA@T]?'QNA2N32RROL+]  9D=1=E*;B!Y,&X0M,7D']-R::/'T\nM/_^%HD(.16E7P=KY&S< N0$@$'Y\"] @%HH\\HP(JQK#/;)W9!!,E1-]F0Z;G^\nM5RU:>\\/1-F B%)G^Z7_T: .N7P'=]X^T+D90G.L?N\"B(+!%&AAV '$8J\"O;1\nM!Z/U&JK?TV,- +7DQLF!_R.T/5<Y8)\\JI-3(K_?XD*+NW/__\\7:^ZZ>J+R_V\nM!W< .4+(AP&-6E+4W3*AZ[FC+2/F3-#E80M &MU\\8LH$W<0.>A\\4ZJM>[(%1\nMPO_I^@7\\&Z%C@'5W\\K-'\\;KS$ 4JP\\:+H?<$&%!N8[KOD/@W0<>Y 2+L/QGG\nM(\\S2/:[X,$&'JJ,AKS\\Q@3L**0IEO2EL\\7;0P]O!!R\\'P1-7/$RK'O;/7W4N\nM+E[IW&ACP@-1[CQN%^A\\4C76N@OV4]<_:+>PS21AJ^5+ ]82/V\"]WQ\\7UKWR\nM>.25P3@?O4& D=>C3M^X7Z6]V'WT:^O5V@O''8;-&G#5Q[:KUKUS^-V D]SV\nM[T[X.+$'1.\"O4#U.G6'W'GMZ/ZMO@S L6?ZR RX.'CT=P1(&IQD&14*,(6RX\nM_H\"/L/5DQ!'N <6[1X\\1X '^=GJ,_A6;0!9A1U1)7!1R.8S=<\"I58,#A (SY\nMNW\\\"U/T?@)6_BA\\;!CS]G/=XOF+ Q@$OAN=GWB%BQH;_H'7#?@?>WRG?KCRN\nM6X#Y+EX7PS8<B+9& P/.C_!NP=Z&X:X'65@>-,#.CM2/N!(-ZAVB<M<7H&]@\nMI#O=O0I/M)]-+] 0,F*!B!4A\"[4D_:5]&44?)2 B*@9TL;9@:7 0&!H4-%C:\nM7=]\"+#D,EG;O&T.+= _$2[SK&<8V@%%/E\\DG94#.+E/#7::J549*\\6*7BM '\nM_&VG [ 11<,'^6$O!Z+G*E Q1:,RVZ<?&1!]5('K>Z)G O$K^B,0'Q\"QRO1S\nM)=KOKK+Y='7H%^(K3:.*F]=\"OJ:C@19E_D/V\\,28W;N>#\"6$J$N;,=:7(^P.\nM^=AAW_5&[0O_2;<64[J5Y/2M)!Y9S+L^(_IG[-N0A*739346VE'1!06HWKE]\nMU';YJ(K]2-\"IW+3H\"W$N6?22(&J$Q.L)/ZQ],+KZN5K]+C@;#5<;/5(OYD1?\nM!;4TT8N!2!U]%X@5T:&_UQ=%/P6BF_.BN7NI=!QHW?5OH&/_S?%Z(D.YIA6+\nM%VF2;$/0C'4K1G9KU-9G5C#WK^)/^&[DZ>,C*^1&W&8ZX&ZQT=6\"=!TT;,(E\nM#!QO#W.,<Z^HY5H!N8K3H/Z&=*-&7NP-_[C2!A0Z(=ZPG!>MSF69?NM_2&^W\nM)?'MMG+T<N[ZS^B= DS/\\C]ZK0#7AR(Z(%Y79(<#AYV!75$#<\\P SK2T\"R2=\nM9#GV%IVWTYOWIW=T/;1&5M?*7^E3H(/RIL,!^X\"/ ]+=T!@NA1=\"6*G)U;P%\nMF ]N.!SKI82\"HA\\7\\O40]GK:M-QT(Z[H<K32$HFT;&G_?QM^7]L$J5LS *&[\nMHS@FLO&JF\\]O=/5UA&T;1(\\2@(OV]1]2?G8D@Q/K[S1*D*Z\".GRO ]YG^6YI\nM!J^TXVW2P7X14/X0ILB_ ?^8M\"Z[_?]X:U+Q1:FT!38/B76P0>@- PYR_AV \nM_N.#/!76/6AT?<.9_]<G/#KX/U2[ XV@'.P?XQPFZQ1AW>*)%#*10B2KLAO$\nM1]Q*A'423!?T0MX+[%_D*WQR@TY*<6/1 \\:.6XH@CD>/&R$#V @F!*.G\"'EN\nMK/O^OP$T/],>T>G[(H :4K7 +6:[=]%V\"DO_[: TASK!+]<WI@W#&P7.06.0\nMOWT/2.W_RON!_0.$* =T(.IW?#TP<8>[]\\^%:/$C^NX$9XB;)WD0]W\\FA#N8\nMO'^;B4U:'2\"!4BC76,JOD=H<#77@P/N)%)+Q\\)7>[V^GK82S-AE[/#[0XD'^\nMOZ43S UQ]\\IG:KI5N>1. !((!!]^Q83MV&'T QB:<T!R[.#0<S:^ \"7AM[')\nMZ+5YW\"#5@:Q3^/D&C:\\V \";2>BT DIB.3N9XR\\ =]''M@8P-WA[H\\ /.DKJ5\nMHR $#!<[I$APO$O'!L#4!%]E\";\"X08L$&6N?N=WF?X\\2\"<XMP&OZF01M0*I!\nM\"G<I1BI@I%MT0-OQ-AT'@SM-^'I)EV5NA@!]HQXXWS3=A;G__R'+\\EW7S;B^\nMO$&/!XCX_F]H7!YS9-;^P-. 2%6+OP?XN]A!P*<@_57HQW(5VA<.2.S51X \"\nM79KWO&^/!'\\A1\"\\:P\"\"H&$ ^H2]^]!=\"]'U6A714GL2\";M#,LI M0/2ZS2D=\nM7%\"]Z8+'R .LS6KO+N[4_B$\\8&X2I.T#2(>*EX]._1RKM-PX]=>#NQ1OJ%6/\nMQ2W64F5+\"'F\"O):GOM[0(^CY R\"EA_5EPF$V)Q4^?;JXX7C[_Z.OEQ<''0Y^\nM3W!QP85%!=*5_[_C>O?#D@YD/_7.&+MCX(O]2/\"<=:#MC>O^LS=0\"MZ/OC+_\nM87_R<9O3B<FP/U[J^KOL'^)]ZB]$3!\"88Y.+CZ,.\\\"U#Q?!^@[9)(ZTF6G^@\nMS1,X:Z3X\\T!B2I%%?WTQ_O4$(5EZE<BR\"AG+LT+ASN-^@) CX)P]ZY;S,$YP\nM*OK/!30GRB:M4>)WA!N%=/W>AZ)N&1U>F!SO!6;7XQ3F[1#<LO+FN5Q<7R$$\nM:AR(?\"[#G0ZP^W(-)G; VO4*H*O!!Y!;?I8S31 J[$X#?FB. O%X+OA1D(&J\nMZ\\<EIXK-!#RMV\"@\"2TZO>$6QJ.[_-F8->C\\;+5SW/I)/<>\"?!9!G0->Z2$BO\nMML-XXA-1[$?RB\"=8X3JR]3B_4A' $-].5WQ0 ;8;D658GAKG$B08%/'!(8&P\nM[GM):R0F!&PB'!S^X_B$T<%'EUX1( #PQJQ).^?Z C%P!V,)H,7T6(():>LH\nM!N?&[PF!.V<O>1+M#W%L%?+\\@:<\\5=:-+WN@Y/SKJR4+RM(.(HTC!TQ\":2.Q\nMK<OE $5D,)#>A^DE#I@+Q(7I\"U2)M[?4F[=YR .3 [K/.8P+(!9AXH/IR0OH\nM*9B;0YJ\"\"/FL_FMA@6FGW>.P>*LNI/VC>PHD!NM4 ?( ;*@.,B(#1YPL8(4,\nMW*+ X@YX18/Z29FX^>F?'8+N^L3G*<+>6L 0>19]3 &I&!GWT]?=_]B@_H&Z\nM2.*TF'P@W11%RT!D\"9\"Q07:*W<RY 0*>X<9UA=FC1Q/[5#]@F<-H?KM]!P;H\nM2$7!_5NZ^WDFI'M/5?F-'G?MD3C>TT6GA.24D(L28N4IDBY)GESI#A2ZGOS,\nMY$%P0:E/\"0D.X#]/2W!P8C3D>5WEZP.( ^\"N$,83=JBK863W >.V#:/T]9<M\nM?H#RY <.O'XT^CF(@,7[7RE^,?'1Y@?X_[W?XD&;B7\\.'5K<!E1FK4J2KT^7\nMVLA+UWE551=-)*_^!2 (H.:%5#*43[?)X34;*L:&>E'/$VFHJI=/#<+F.H_0\nM:!1,IZKGT!0!LU@%U84SJA#$6STCNZ\\9L\\V,EC)C,QW\"58\\?8*_^-ZDO1[]*\nM2L(X7'-Q^L7YD^1=DI*%Z-BX2< ^&$/-&P#&B_#C^HM>!DK2_^+^T<N9SW^\\\nM^CLA0/37 \\!/GQ$Z$']BE^@'D*\\=>Y]I/^GXB8%Y[AQ*MV!BOP\"+%NF#%=\\^\nML1-7]2Y7><6Z[]LDP=8[A6$Q4,MT&5Z:2+KX_OKUEK\\<\\).@L^B7)72=HN3%\nM^DXQYZ54M%^-HMR),U(^'3X7/Q3IXUA*P8/H'>QF5B9Y=.SN<-',!RHD7W=$\nM%_\\W(#OG, 2!WX1=</U!R#PGVA4(>^)N?L0BYM'!'/027W^O3FH@D\\ZZ.'_)\nMS&E.X+](ZV#A%#P^N1Z)RNZ!2.E&W'F?;L/%1 4F-LK0*GJ= +W.A3G8.,' \nM_E\"=2W\"A]+H&\\N?ZCHNU#Q[^,/KVV .GKPLQE9M><F*\"B:DPCD%@Y0/%UF'4\nM2P9H:TZF LBV ;*N_/SK?Y#N0(YR<RZ>[C@8%]%^3@\\>BB9J\">8B 4AAPH'9\nM0Y&S*R27<FJC:DK AA8X*_D0^#E:O?-64OF/<+S)Q=F\"JMX+H/5^]H'+%_LS\nM69UO6C'1?]BJSB)NWY!WDR:Q' >;RTWH PU K7)KYLB^6++@ ^!G=&P\"%3TC\nMRC/EKUP^,+@CQF++G%CE0B0)'XFTSLJ+71!N0 L,0#V>/O*]ZA287J\\*%V*S\nMFK&X8+8^KHD7'H@L#II5.* .',>\\V=T+HYF1]1E_?Q.]2P!\"F/@*W'U@-VYD\nMGJ&!B.$\\^F[EX0%!:.I1/IQB\\@1*J-,*R>2([ Q=)V0A9F  QG'$5T303$?C\nM MBOCJLO3%Z7_OWYB^'YT$B8(KP'_XPNE^$.Q-X]*-> LD&[ 9TPOF6O6UHD\nM%<8W&.6E,)3KBSP#8\"(+& P1'\"\\7Q$N#*YATHU4%% E0-'A?^WUL?B^&39GM\nMQQL(D.+U#].0= !U\"8G;9:!?J B,W2K\\#=$V/VJQZ/J+)B0=R\\RNN+EB]8JM\nM*T+GQQ&<F7!F5(%-ZYJ/9&)8N0+4O=H/7O_M4'<O]QW:#JM1;G3TT;613P/+\nM!SFX)N[VXN.OEKRZ:5[R_+]V7=YZ,469V\"($^E\"Q.-R7:7_F(2R>>5FB[<1$\nM_2>F.\"S5W_P7?T%^LF^(?OI_W_\"8!WR6JP#L#3\\_>#I W04)8?OWQ4</EP %\nMIL,;W$Z2H\"AP?NR\"T\\=1+ !_'\"P=0!%BQ=YEX\"X]R'?\\WZMR ?75A@J3F@69\nM]VU=D&;3NB4+$NK2J4:QH P[ERY+D&4HYJ$8Q@K'OG5KMZS;- CI@J3[%F3=\nMN66T /U9]FP:S,H-2S<-K2#?,#Y)F358_P[HL^&MV#*\\PH4#V+%I:\"U+UB5(\nM$\",&Z,@D29HW<\"L79!N&98K\"NVG9LI')L673,!$7WD7#&,P/:S<,I6'%LA%\"\nM.H\"\"=%L6#YG0*G?.J)$)R*+6I%!PP5C522$89O<$3-^>P?)MY[K@?\"B$!U58\nM@Q4\\2-7P0>0<CG3OAI63#0A3#1U;5PX.KLDV+PA\"8*-.IS@3T!\\#V[%KVB9P\nMAA609$#/A=7!BW1>#2JU\")!-ZG:,<0C!$Q#@S9HT:X)T@H10:(>-KW!Y-,#H\nM&<1CLU+)/ <W'F6C0,-D8:\\F!5ESILR8-Z2Y65Q)<&J&89E-<;AIN'D*8<DD\nMXZ856Y=NF15UU*D;-@)LVS9@28O+)C @9:,Z3IY.GX(T6K0(HU-!#D4\"U(\\6\nM)8+SJ5205:>HU:%/H69-ZO0H\"!\\DPBM5J4F%5J6:]*F3RZ9)J00'Q,/8] EB\nMC2:Q!\\ %&=1I%J8<-(LGJ'#*9)+1,>1B&GJ\"*VAWW!MRBAXB#W1P3HS\"C?&R\nM*TXU/$T.6N)7;/IS2*$JH,>Z<-D +AE8\\![2K\\-[4)]\"CS)\\&S3 :1L2#0FH\nM@&R;%.XRO#L!6#0ZV$*S+X8Z AS) 7N?KIM\\$9,A;\\/A#6S -:P $PZ^#O=-\nMM-9L'3H*EF$\"0Q >,4%&\"H088H^,P(CC!.8]'F5\"X3Q@F.P;S.-C-S.1=,'Y\nM<BHJZV!\\!!5S2,\\.V]0)Y3(3BT((:JEQZ_\"Y<)\"!!5%&APK,44SL4F*717<C\nMN6P3I(4\"]N&#2WA?#V/I;+X5*H29!DDS)LV6,VO*;'F#V[=QR+Z4;&#'#N'<\nML6'/OHF$,V/**!1CPJ\" ^$7QD/664(?4$!'R)LZ<+6FPYS\".D%/8C !QR\";L\nM >05BC5CVFQ!7'- FS-A(#Z %&$L.\\:<$*-L=#CT-;(BW.I-\"R</-, OFU:.\nM8TU[-HUKPUSC?L CM*\\'(ID(4Q,V9;#AG#+9JG/@8ED=0PZWX/=*9+N0)*L#\nMFD,]$<B5+EVZ[(+:)\\U!:E'5PY9CM[8!; ^W7DDD?\" 3-B-N>DN>7H%RO&\"V\nMS#5\"FD0Y-R5(%/A_LV& ;;HI\"DDRAF . 0FV8#)'^G*R]N=X8)ED71\"\"<IK(\nM1A.T.\\QEV#P'G\\'WQQ ).5-' !G OC&4OV/4(X5))\";I!JTRVVQ;TM$$_TIG\nMV\\PN!%6DF^LE?$-DCKQ]1[CW6>1<GG#ODO7A\"M#LU#&Z\"K(+=8SL!^##.X)S\nMOAQ-A+LU+$NQ+,=VW1J3I4R6,SY>AK\\3/=AP:Q\"RQY>!.ED*L2V%X!\"Q+AS1\nM.05.# 0YLDM<3EL<B7Q\"S,,Q%Y(!O/J&9%^D%ZF!5*>D0B:,=>+>\"=L8]9HG\nMQC%\\X*^O$$H&O$(5*%7)\\@=BUQ!*I\"4N\"('9H$R9M(PNBNYUQT<I!?6PT&C0\nMJ51#A!6698,%TPA!5J53AXP66IE/-:;+&#8 WH/OUVR90UV 5]@&$L?,(3V \nM ,C02S4OT9'(O!3^*AJKH10D 7P[D==JSI=H:IX@M]G\"604A[!E8J[J<8HAA\nM-$KT*=4V')^:-9.5^&BI:RTKZ90.J:O_LBJ<^@>#T@93KQT3/I+:H-@X'J2M\nM+3Y'<*IYY>0FS\\15&WS6&X\\\"50$Z<\"I\"_N4$[@M'J4X!,H5*-0:C+HMB+4)Q\nMZ-,F+H#GPS@I91U(@25DYV@@ $<5_4HV3R_B.5*+3[8G1IGWI=N4/QB;1'+1\nM[0FFNM;MVSODD -8\\O26R700CBK.$WG(KI/MVS%*LVB,(H_X34^BE%!RWXSR\nM-K(Y5.I0$,5NH?3I$H8,&U@0W..$<.4 [MP0-'GX1:9\\@[@^NH$I1.P+DZ1:\nMIF:)5\"R)TPU6@=ZBT<0ULX$<PG$D5P-L;AJ$&I0JDHE([A0;QFDIB2Y&FR36\nMW1(EP)0M^#G:'5NFJ2W1=/4M1X\\7J4:R+:\"6,$B!FR3;')O\"*;@\"+-*ELI&(\nM@?I0\"MN(N+I&;$=S19K6X6S+H%;DQ4'K*\"D9X9@A)(;B-\"30M1#CD2 !W\"%$\nM&+6'8QI>-Z+4F(+[ IC9\\Y[6=]EOZR>*+*D7J&9;N&4\"*Z20<X;2I43?]*@_\nM3.O[]CYS 9&[TPS/ADZQK'\"\"](\" Z<P+QW[?(CM* SH)I[3!N5O@[_9=VG%C\nMUJ95L]=?/_U]TNK9A]9NTV7?FA43,O08\\:/%CA8Y%H0J<B' @1DGIEUH$*%0\nMB$,#3BSH4R5.LWNUZH\">QPU)M^;.GS3KNFVZ =&3(5.&)$N&NKT4*->O4S<^\nMU6@5J52L#RG.M(MU*%&':[,>-5H08=\"G28-F% #NJVV+E^?2J$/CGH7*E^U$\nMF3QA/D!:A7HUFA K4Z1*;^ZD03S':Y6FQ,1GBXZ$) +T9ZE3-F3\" (>G8.A[\nMP!W!DQ*@U8$[AWXUFI1IT:])G1I]\\@R<2!%@X,\"! P;XV]#] \"8_Y\"VA18$\"\nM,3: ^ADR/(C0HL7_$AM*%/CO#2)/GDZ;3CWJPV0LU29,&**++<(:B7I(=&H&\nM>GS'@C^@-IR1#2I=JUZWW330#VZ'/XJU/4&!F\",@P.MTU#O$[EDTG+='$2\"T\nMH;^[B:S+%OEI]0%@63G ;$LZ_KLZFQ#K HI(&2'\".\\-4O@GWC7#4%$; 1Y$T\nM____!U!+ P0*    !@#R2@L9;![>X' %  !K%   \"P   $Q:4C$R-C N5U!$\nM#P 2 R05-B<X.6I[3)UN'PD& 1,TY?:6]R4,.W6 YHJ]X\\.!$(I'2W @0*)A\nMZ8:%*_<MV;ICZ<X%R52K5) Q9=J$\"=(NS9LN8<SS ,%P4P//,L\"X#(]5H/\" \nM(Q-<(QE4.T6 \"P'V' B48(%DIY#L8PL:!#AAVB4*-#HP03(W.= PP07;UKQ,\nM@2\\'-@C+FM<M,/U !]T.H-NY$YPP;=_'#2AV((6B^>& H0=6!'@AV54'Q#_0\nMPKDE?SS@38(7NGGW@&D)C@2X%B!9@($!*MC*@M\\XL\"I 8E II+]H&&@5/,C_\nM=90]RK!S43*\\1X\"3P RBMF,2ZMNY=*>.E9L6+EV 0]_6.;ZL7(!CVP)\\\"_\",\nMVNCN ZFI#1VR?$#5!-0&]';-9&L!QW0WM4$.:C>L6[I'P\\HE6T;YHT(!PG$;\nM= \"W 51ZS20MMP'L$R]#!R1(,8\"7.6\\!;^, \"W@9\\(5$O SE-AW ;0#%RP!T\nMHD]0#]KTP-@ O P;\\:% *&\\#ZKEF\\K0 U .BT+=OU[:1N^.T/!NUX5L/# U \nMR[ 1-:@-\"$D$HS:@)K$R-.B!LZQ,ZY.G([(S(B\"B:R91K0W0F5@9NN_ .5:F\nMU,;% 7Z0 ZCNFDE7:@,4*T->'=BL#5\"6#OC\"H4*L#*4VU0:$VH W(!R(5J$F\nM';$VX S4[E4VHS8:]D!2K0*9.^#] 6H#NKEFTE0;2&YJ@XRT+%N[9>FF'1M&\nMX]V&;6C4 SNY 3JD]X#HV ;4=<WD*K8!*A(X[(9M4+D&QS; RVLF9;$-$(YX\nM'2[;$8&H-B\"0M@'E5,\".:QLP6SIAE3CF=YRX'3!OAVZX)X)&') &W8\":KYG,\nM13< 6RS .W6#PB)<W0 WTW%@=0,PW[ 9*HP4RH$+(\\#S:R9YV0W ?O-9(-0-\nM]UD U\\A@\"A>0\"!?R_4!R/ ]2H0#9 :3'!^A.R]X=6L;EQ.OG@1XM6S&FNMNQ\nM8JX([7V@-(,+*5#@HU<(J/^:R5]T [#3J!D:^<!A5X2.J*PS '%?,[FK;@\".\nM;DAJ=#/20$:$1C<@\"!R\"P1K= *(<G.]EZ$8;'XB.\\B&7T0V(Z9K)5'23V^@&\nM&6I8-C#R-*KC4(5XV=9&XAZ8;O$A?:T-B.^:R5=K ^0D6(:6/?\";X$-&8HGA\nM'J T C!L \\K:D)T'0LL#9.^ >-8&5'7-I*JU :I4@&H*1&NCY0]\\&6!M@I]'\nMP/E+6!M0P?4L\\-G6!GEJWC:.')2?PX8B9S%IHXL/[*9YD*K<  B_BX^J,HDM\nM;9\"IIFU;!B!.58B4#6VDWX%^+@^2T^  ,- &S\"12AA8]T!;E04I*&Q#+-9.E\nMT@98:$,\"'G@G\\B CH0V(Y)I)4F@#;\"D!K*=!&[UR()$H0P?U@C8@4$*PW] &\nM60L+M-FA:\"#,8R#B>0'J'?,VU,(: )8QH'G4T +QO0VH['P7W-M ):+:GQ4#\nMVWUY+4^VL9W>L),DH /:L'/PA[-^+\\B^'U1G.NO7G4NFY$X7I-BR9_8'R4;F\nM3L>MZ<H-FQ?$*T_6 SCP9R*S;US$-TC06K;-*MDX?F,<Y!GEF3V<MD*;G.D2\nMY\\V:>'$4RWLS>[9OL,/7&O@ FZ;+F#+PS^G\"'MJ&/4\"C/R9,ES/<AIQQ#]#,\nM\\I@QZ&%ET .L> $+TB  ,M(% 2R1)P0@)U3B'9;&L-<87FR-[LTHZFG?] EP\nMZ\"/F088Q#T$.]!CD %4&.4 1\"QRYKR '^04\"XG4X?[-ERY(%87[=,I?E;^4 \nMF;-@!V0SQ\\]IAP^Q&BYDV,7\\$\" :\\H@R[/:&W86M^)AAOS3LGX;=U+#'&O9:\nMPYYKV'L-.[%A[S=LHVNZV[\"'&G9+G^9IAKW:LG\\X=GV.3!(= #<(TD %4$L#\nM! H    & $ 9:AA)<@PP+;<! !#&!  +    4%-#4DE05\"Y$4E8/ !(#)!4V\nM)S@Y:GM,G6X?\"08!$S3E]I;WFVH]')# L0WK_W_#X[HF@>P#=$##[O\"C;H< \nM:2=L'A)W0\";$4T6;=BY(N'+?GI4;MBW(L6'=NGU+%Z38LB#EUG4+,HWP1)].\nM!=GV+=FR+ALJ)#$T[K1H08IO&SX>F#XY\\_T!!W\\$\"/I!M6[89LT/!(A10%+C\nM#'BT(=:&7AOZC3\"]I+2X0(0\\ ]I.<+S\"@3X#BE0(M</P[@,2%G'<\\# )CCYP\nMW/\"V\"4)-<=SP:@\\:7'#<\\/(5!C\\(L:/P@WH7:AQP_,:!KA?.#7 \\W8#'%S[&\nM<#QDC&(;#K1P/$&+T1W617\"\\781@'T(%<'Q4@&@?&KOWXP?S/\\R^X7CM&[%'\nMW'%O?=\\^8HIW5VE1[$26\"XYON7 CQ941CF<9<69%:?<^':#0BM2.]NH(L5=4\nM2N#XI01!6CQV[<@!PK3X4,!QPU>U>.[9T0,T:Y'5L;<&*->B=P;'?V?H$J%,\nM &\\UO-&+JPL\\-SSKBQ'^72+!^1?)W>7E!])$:'EE7 ;#%6F'@!&4B=O$4*9A\nM<N2K8%ES+',_RYR'GEIV0,O<QS(OM,R!+'-%RUS(,G^TS(DL<TK+W,@RS[3,\nM\"YQ-(CE3T^YIFF/%N&#90RWSL1A-+'NI99X8HX9E1[7,1V-DL.RKEOEKC#F6\nM'=8R1W<TG[7,\\6/LL.RWEKE!P!'.YA4S'ICVG(&6E6-& LNN8YF#S\"AAV?$L\nM<YD9'2Q[GF4.-\".%9=^SS*F\\<SW+'&N&(2NB9:XUXX-E1P [\"C#-.#^PS-MF\nMG+#L\"98YH*^Y@F4N.<-5NF\"9OSJ:_UCFL3.B6'8@RSQ[1@/+/F&9?\\_88-DI\nM+'-V7W,&RQPBX !3YO S>IB>88!I/A P@VGN4,/>0^0P38?4^&+9!2QS*,M\\\nMP#+_,\\X)3$5=\\P++/-@R-[#,X8VS)],#-RS+F6D+RVS+=(IEMF6:QS+;,OUD\nMF:U%&PQ\\X2HN=B.\"O^PJ6NV&TY>KZ#K+[\"H:T#*[BEZTS*ZB+6_8@UQ%=][H\nMX(SHU1L;_!&->Z.\".:*%;V0P1[3SC0GFB+ZVS*ZBP2WS!LL\\W3)WL,SE+?,'\nMRWS?7!S\"D&@.RQIAF2_DL+9*6.85.:PM;Z!#<CA+WD\"CY'\"65ECF-CELCEI8\nMYD8Y?*T7EOF!+9%/.1Q9MD1SY1AB2^@^RVQ+M&>.'+:$UK7,MD1;NXIMB?;.\nMT<>6T!P[^M@26FM'\"EM\"N^WH8DMHSAT=; FMNB.'+:&-Y7);0J/;9UNB^7=$\nML\"4T08\\@MH0FL<RV1!/U^&%+Z+$>;6P)G=DC@BVA0WL\\LB4T>H\\LMH2F^)'\"\nMEM !MD2B_(AEM-& /\\I;MBW1<D$LRY9HLB&694NT51'+LB4:Z<AYR[8E>B>)\nMHV5+]&22*0,LMR6:=XEEV1)=WN219=L2S1+%OFR)_IAB7[9$WTWQM6R)3JMB\nM6;9$;UWQ1F>P)3KSRB_+MB4:_XIQV1*MGL7G.8,MT?%9C,N6:*@M H$SV!*-\nMT<6R;(D&[V(HV1(]_<71LB5:8. I6^+%80YYDQ<[98XPQK(F6^9+EKFS9>YH\nMF4M;YM%C%EGV:\\O<HDPBRZYMF6M9YMZ6N:=E/FZ9BY=I9-G/+7.4,_9UW3)O\nML\\SA+7-9R]S>,K\\_4\\BR[YOY-(V[U=\\RYTOC6@4N6%9?U[S ,@]8XY<TP3*'\nML,P9+/,/RQS\",G>QS\"<L\\YXUCE8+R_QOC:,UPS(7=LT[+'.\"-JX5Q#(_:F,K\nM);',&=NXLIY8YM!M)EGV%<L\\XXUE=;',Q2QS&<M\\U3*_L<SIWSA:=RSSG#B.\nM5A_+O\"].),L>9)D7Q_&N1I:YPQS7RF296\\UQK5\"6^><<3]0JR[Q\\CJDURS)7\nMJ6-9O2SS-\\N<S#*GK>-H3;/,^2WS-LN<Z(ZI5<XR;[SC6N\\L\\^H[]JQ\\ECE&\nM'LOZ9YEO6>:#EKFG96YHF8?GL;8J6N8F>VRECI8YFV4^:9G+6N:7ECG^GDJ6\nM?=,R%^ICT/73,D_LXUI)+?/I/IY25,M\\XX\\U*:ME_O7'VOIJF9/^L:^SEOGZ\nM'U^KK64>$\\B[YEKF=8&,*Z]ESAO(N );Y@*#7.NP99XTR.VKL66^.,AOLV7N\nM[)HWNUQ:R+5\"6^93A:I8=FI[H(7,I=>6^7$A7ZNV9=YPR!;5VQ[H(6MKN&7>\nM>>B*92>WS)$/F15%MWG4-6]W.S2198VWS)42F5KK+7/(1(Y6?,O\\.I$C*;]E\nMSK'(M0; F7QLD7<]L,Q3%SE:&2SS@8%^*DV]R$77#+_.M1=YB*IAF7<O&F&6\nMT.YJ3,N.89G/+]IA%-$0C;;8193CWU; RL-5\\:16'EHX4@0K#ZT<J8>5AT:/\nM],3!0S],^N#FH3TF';7RT,&3@OAXZ/!)+WP\\-/ZD#\"8>FJ!2IP(F'EXPT$^E\nMI3)]L E0C>9, T(E2/0K5\"?$BH18K1 [$V=EDLR1[/Y\"!SZ%.E7 \\ *)-B50\nM/%(BT5L=.+6JT(9$F1YQ/RC4HE*G)M7\"I41OH02&_0FR$T$V$#[SI2POA=JE\nM4*N4877\"[$Z%%B#6)\\HROE\"B X1/8CP3XYD8/T3MA*-^:!/ABEOZ <)-?T3[\nM(]J.I'DDVHYTB''B$QCV)\\CV;.HC47JD5OHO0\"S4;I6)LR%S)\\C6MA&+N+3]\nMP\"5.V?!+B#D68I=Z5\"\"3JV=RM3,Y*N' =[*U#7L29!L6(.^4\"K13@58JPRK%\nM2#7)WOV)L#$/A7DH8CD486-^BM!/4;)/>>LI;_D4K+)_0+X9)VQ(;P5IMX*T\nM6D':K2#M6I*<\\$$)#)M8$6L295%?*Y$9YBEXGQ0J%</QJT6A3AB#[6$ EF-&\nMJNL-+FEC)E1AONJ4XR?^']C\\A[<5NT35\"HH=HN< Q<X@F@?DM*P)M4_H5CGC\nM?#*!8NV<H-@1YHI6!15,T?IF7VA^[ZKP*8-B/[BL6RV:*>9_BCFF8AY+*0]0\nMMVI,*4\"J!20KQ9<#GE5HP!YD]:P<^N8=BKG ;5,KQZ$\"EO69)!9/-TP6KPX]\nM\"UB:=.B\\ (F:0#9+Z3WK@K#4X?('Q0I;8H!ZFD#*ZUDC9AS!D%KG6\"I&Q2\\$\nM#Z!8W0HH=H&%*Q0[0?8#BE4F@6(?*+7 LMI95H(NKCFF8@V(&4&W<NCF3/8U\nM@0Q1T,KT0K'.*%:\"A$T4J\\<3Q5X0KH%K@7!%ZX.FM>\"S:#WP6Q;M4#,42Y J\nM5@[%',*U/E16S'&-\\T)EJT2S$(H553%75ZP7@N89CJ9QG<638_A:NX6E!?DG\nM.$O;I%D'7LA+(VJZ6PFB*5L'(HI6@<OJ^;*M=*\"M:\"VH[5T+3,T+1ECF%9J6\nMI<M:!9;=$\"3-EC4_52;^[V@^H4\\J,%R]@! VM18KFQW-(13S@<RBU<(R0P!;\nM5HA[':3KAZEUH:MH]=#-#8Q3Q=PA] G+.B!(6K%:&KB7(FO$%E%FXUQAG[ZU\nM8J]HK7@DG1U-1TG7@I/:TH03 I\\[*ELQ='.!F^Y6@8@U?*THTJP\"<T3S>X&O\nM\"FR^98X=B=X1^]S=FU7@KK4UXK!HE=#-)88JLB)8IF?5*T(=06*A:,5NK9C+\nM_W\"Y;)G76=:+FY+2@BH5%\"N;XD<2)2K5*DBH;^?2G3I6;EJX=)0KWBW=LG)U\nMQH0)D^6,8:J'LT%_RJK/M$A2*YBX6TTZM&C3)\\<AL!OP]39MIE2B7N$43;LH\nMU2&D>%(ADG\\#Y8,RV42#U946'4I%[!L6Q4JE'JF%TCZB+H?XU:1$J2*I!\"OP\nM=BK#_K0J%2A_T*B3LTMVZ  ER%.<.A12-:?SU8M.W>)]4:=5FUQM==I W*:W\nMV7D)\\54\":RZ\\^HO\\7=X_/2JM^R)&.Q.1XPBZFZ92] R@IN3R)E.G>2LT&H0^\nMM9=2O93&_\\ DK)3\\R2#U<]+XJ)-OGO33H=:&[BV3\\D;ZNMJ947G[!I5M9$_4\nM:I!73+VQZ6C2BH3/26W\\25.3LH$F.Q3ASC#$J%6NST(4A7\\3)\\]E5Q.$8[&D\nM3.\\%=W(J6S)MK:!EH_-.F4J)I!-4E=!-XDZ-U,+$([,;(<NDTFESLB,YD6>=\nM:D *%)&F\\O9,O90Y40RY)U:_$\"<9ZOT JG9.6PK]*4_1R9I0WK;X27DC5 Q\\\nMJ?H!3A@RAN]5H93374H6%0QXP:J+V5^UZMNC0>)^'>:^L=(NO=@HP<5>'9I,\nM?!0C<;L*3?ZG:Q\"M?X!KC2)4\"'4Q?LU#WIT8-R? 32/@]JN:L5BC#4Q_EZ!:\nMLO_M&M3<9AU![0:HZ4[I\"*!U,5&#CHU\":'8$QC-H=@3-M +U$;2;_)ICO:-I\nM3*./>;\"*K9JV48W>EH[F,8V.EP[OHQI=,$ Z3F0:O3% .M)(-?I%.IK)-+I(\nM.KR3:G26=#25:?2;='@KU>A!Z6@LT^BP Z9QK2:/'_52Z'O]NKA\\5V&NN4>L\nMD(M\\P3TZQCZ8O8DR?-RHO!#C1O6):(/\"\"XT:I#NCOC@^^\"])HG53F@S\\5V35\nM@75#'#L(G77=#,=N4I\"..D+80Q#>P>RL^?\\_^Q<\"IWM4+5\"TQ@$T\\T1)!WW=\nM@>GC&B\"GA&<@O(+J#3+VBM C5+4 @E\\,SQZ'P$U[M,*/Y2V6/Q&D27I(<Y0&\nMH4R9=H@>J 'J^5'S_@6,N?\\\"T(O;*XWEZS9^QJ_U\"M[A8KO\\!^,$H'6YF](O\nM+NKBXU_7_,#YB>V*TUKZ6NG_@'4OK@2V.(N#/!.>X:) 4.U9\\01:SZC-V5<X\nMOT+;C7JC]L7(E$<@/(/F\\5G=E)PO2X%UJR9V:JY>C:(K'D'QZHJCRMDO/D \\\nMN:_G#6J#\".P7+I)7=T[<^_H$Q.-3EJ@5_F)O0O^;U5K3A:$VHCIL7_]Q\\?#&\nM?LEA:8L'<Q]H+0,\"2^<&B+9_1^/ %ODI;WY'W?<=<#QZJ)H!=;X#R=Z>NN[H\nMW/D>8'/%/=N9-@^%]QWR \"\"JN>;1\"6_OV4$],V97]TS#>F;,SNZ9@B/%[.Z>\nM:6C?C-GA/=/E#3PK?/M&2,ITEWP>S6-)0SCR])![(*9[8 AS8^77%S\"V6BE^\nM\"\\)3;/2D+>#![2^2?(::SAU]^GWY4U@<U^A\\ .VZ6X#I;Q)0&DU!:7S!.&TG\nMLN-3RH3>Q2%EH75-?)@X &*7#!\"77&=\"=D7-?IF1M#I*5DC$&S^<70\"\\M;N%\nM:J>DK9:(10LM_6%.7?W/V#T9TZ)(O#6Q,6X5H4&/C7\\CR.+P'6O//08(_O&@\nM8^&+L4GQIT8@M;N=*0CGF']47S-GK%V ,^?D3')SIDTYD]Z<:5+.)#AG6I0S\nM*<Z9]N5,VG.F@3F3^)S5_M&40.F>L)(+L=(,A,0/N4'74V 3E2*OJZ :#Q!;\nM?/%A5O\\T8?(\"GFE7SZ2Y9Q+6,XGNF90-X(G\\L'H!=I23-E\\#=(\\585T)U8*[\nMRP+(USWPM<OZVK[)'-^6:817#I%N!Z3<9T\"^%HQUX-\\'O&L60%+3[ 6NM^ 5\nME1Q=KF 9@V-Z4R3NS%(,S2)[ K%.T*M[ 7MP^ +JH(?I+?MA>6@%F[8+)W+[\nM-(=F&D<SK:!9&(,7Q&5Z+J#S< /EM)-FFH_=3FH5^LIDS#_5,^QXAG]TP47L\nM!E!_J^(--OZK<[$\\UV2[Y4]]FES!^FW;\"O;B:,HN1-D)P=Z+%B7D[_I=[-_D\nMP+M DK^URTM5B\\2Q2JRY%=K:-><W\\!<.B+9=6[9J7GA@&O/_2C3G$(T?]6L%\nMFK,$((XY_6\"_W&3[B8T/MQ90RB4.79#.V$-='X&YR-JJQ0+72R%,(R5I$Y8Z\nM_I=E8SN<^8>]6.J4OKVMW<.>:1MITR*:*2G01TDTTTR::1/-M))F&J5BLQ-+\nM @3<XXAO!!9FHY1@TP0YU3(-XBNB:=%6KFR&7<VPNQEV.<,.9]CII#L$S9!E\nM1S+L*H:= 95M=W/RC 700O$%JMDE DN 0C)<$)?O$2WA%-'D%#%1OL_]^;[R\nM(U8 :_!#$&2F!\\^*YELM:-_HYZ^Y$-9V/'W-?XX=\"CEC8@1G.C#/]36SZ3\\F\nMF#@J[^;<M$G.^6/7ILHE[!QH\"COG_S:1IY\"X'N!Q#&!4SP3MA?8LMZ1.GX!Z\nM(-YJI>)@3S\\S0<4EZ7Z#>//C1LQW3*B\"K>)?\"&WG[>$J$Q[_%:4P;T+AO_!X\nM'8-J<VTL:5^O\">P$\\OH^<BSZS/?S=;W] %TKOJZ]&]0O]DM_/1TM6<ZA_]>(\nMV7C713%G C_H 51#&E,.]<1$!1P[L%:REK, 9BMNX4R4@#X<(IR]A2]10,U.\nM>P7%NRL.Y\\0(7N$L(,_EKXA6A(.-.QQ\\W. @KJ][^#@!+5)U$4!$&@ BU-H;\nM=3B*2)GST0!3\\&\\\\Q;TZ1,,<YR\\P)5I %(.:@Q<T;N!Y *QA2&-S[H9IDB_A\nM50HV'.B ,T @<ZV.KXY UBYP[&.._<\"QQSGV!,>^YM@7O/N'0BUS>A]@^P3'\nMGSCV2,>.XMB9I#F_.W8.QZ[B:8>8X/T)]_;AFA[6L=?Z=Q['GN[8>QQ[O&/W\nM<>S,CCW(L2LX=BS'CFYHOS;L\"JYV?V_[C[<=P+,#XVAUV_%1K@TER(\\!2(YN\nM#6F\"=#] :0D)&<8*I!U?IM=?\\ ;)CI1*= A&PZ/ '@/&HIX&9!#G@!$!'@!K\nMV@+6\\!R8!DP*0(.= S1!X\"\"=(&:O?X7<-WY)G@*@;52;[*X6!.W@\"9X-P LG\nM/]B' >)\\/M0V(6@>%5LO_.?+ACM[& FDYD^%Q?F%\\]<!)EWY0<X%0]F_?@]L\nM*MI\"7+LLKAVE9GS=QO86#3Q3[0V^F8;ZDABJOX#GOM,XWQ^X^48!99,@RH;!\nMBGQ0PC4YEFI&[P\"-KC_F_%(!SAJ%7HU%9NTT>E ZVG ')Y!G:)A6J$)#HXIA\nM+531T*ABNT;C\\U\",;%_?PU$Q ^-T7\\C8]<THTH+:5//\\@0(I*PFZE^&#K =R\nMRK+(5+$:60S#,N^;2\\R>V4ME()[RP.P9!SC\"NP,H\"/.D_R_<9L43>\\7?V#!=\nM?T>-%A125,5+&E0S]6D8]X.<,\\/PGHF!+(HRHU3;).\"?7.GDO/:ZO8!J6.,'\nMN8!XM[(.KKJJB2--@NPQ#B ;<U[\\@[EIHYR:FZ9&CW#2_B!Q]^D_ WAQW!WX\nMNH(BRJGB$*<FPMOKR+/!<%8^-VJ7J%E4V-[C\\Z[#XD1X;RC.T@E/K$R#T]JA\nM.'!(NBO(K?#4WR:3]-PHLDV:)T!Y/$8N*ZU XO8U\\R;P%L'Q$35<(U25,WX \nMR(ZMY[P]_61_@X=E$9V50.$19*:@OPZ 7QL3#1#!!?@&<#R*]R:P=F3=+XYW\nM\\'/WP<05Q\".PN6960XG6.DAK^#&IXU;*87 .XV].=KJVAR\"W!FX);YBG2[H5\nMWN#7$%M\"N*H3@-=';7-=S@L3 !T26=\"\"1NW!E;4\";,Z2)5J>\"TZ]-J27T\"WC\nM+N'_%.CFL]>,MT\"<&)*NM607967[>_K&D /;B0Q[CV&3NS^;V(,V@-)%#X;;\nM=GH^'[ >\\AI<Q<Z\"_Z'KWQL7XOR0ZAL+&9H )R6 0UUV(=OPN+WK@;#MC*,M\nMT,O#M'<ZI0<')MQ#<R9>FE%4O*Z'<.OAA)!4,[:R*#&YZ$5A<HKK$>*FLMKV\nM@$[!!R.<Y)I_I,E:&28\"Q?#]PIHEI9)W#7S-\"1QN,^2)_8 BN'*!-?XXX*\\,\nMJ0I\"LA5 +20_P@-;L2E 5FP D!4[RH\\;BEU%T[TH1_4P+,$\\8 !QW +L&4):\nM2#]5_I9R>O$Q04%\"D +$+OH:O>P0N$;-\"0] @;0%!;\"&AOW/L/N! FT)0PL4\nM $<8! J0,J\" 29!K[A 5K_L!\"D19/&> LO@\"L;@&K^<0A99>@U1%80X]%T8(\nMF-B%A.ENN#A 1L]OIJ8\"!'Y$M?_5;E2#).Q>/@F-X9,D3=/A'65 ]Y\"0$I5#\nM)2VW32%X);,]LT+ 6V@X)JX.T5?,MUL[B,)%B8AHY_MA6?_7):IY( *6B WE\nM#J^PT^M%_,':\"3&>Z\"%@J.860-7*TP0\\=H%*)RL#<!L/BX!4Q2IO[ 3Z*#'4\nM^%;T3B:%1O?@>IH7QC5/QYI'7YI'07, [Z1)? F\"JJ=MU=.RZM'6ZB&UU)/P\nM[[U3GWJ/'1%JQ:S'F%V+/QW)'[TP@3\\,6ER(T&0KH>FB1N2Y)'F<L7'-/NA!\nM5D)/XJ'?F-W.Z6QZTMGH./(@,Y$GB\\C3GN1I5?)H4/)03T);<*=]N=.KW-'/\nMW(%^WIX[!^9.LW)'^W.'#.!.XG*GA;G3L-Q1(6CNT&7<R43N-+%MRK-N#2!I\nMM!MM7M0&TIS2W8B-8WZV % ;A(!*]P!JS1_RP/4%C!VS@-E#G'1#FBP1Z>Z_\nM9 ##H0O](\"MJ-LI)V44I<P+*:AJ@/3.T=(0\\\\/4-?(C_^1 'H#VJ]@@J1LT)\nM--.T[MFL%H+CA5%!<Q#02%;0' @TTA4T!P2-A!4U+0 :+0LV:32EA^S(0/9!\nMBY R*;7>EC@.P)#-X8/[XG3HM\\&X+Y+$:I?&H<\\X@\\9A3TT]>MD)\\+D+!=*M\nM7H6RP.(+)OVY\">RI;,$,F8CP5?SDZQ\\N/@\"N.<#S] SB_AVHO3\\AQ+-/1^QT\nM66\"U0#0<? > ]U]@4^QH+@/<K\"=@S99L#YGEK3!^H@(;?&LS3U/Y.)8U0_$N\nM6BV]IFDD1MT'+'Y,.7W2C#Y>21_\"]_ 7^B0+UB-OL)X;P-C6N/JI<='7^($N\nM?QX_[7-=W:0/VJ7_]#U=&'[S/4'C2AL$#2T@:!)6T\"2/H'$>!E;]$3>CDL6=\nM.M!)GMBI_?4>=)'T5T].1$!RIN?%Z:T ?B!!%\\;]H'&_W$*AR<W5R(WKD1N\"\nM+KR'W\"23=KX&<9&^#[S#2\"%XG.$\\*7\"E/:+GNV!? _<QE /Z@8M44AUE$*^]\nMFF\"K2_TRJFM'$O!THUY5TT.9:=#RRDG> .R GBW/R#.2F>Y$FP1&>*9-8M(F\nM:9RN:TZ5PO$BQ4:MQP_S$I@VDF@('Y<2>.J!YMC1VZN(WH+\"4RH'!IMI37:.\nM=T!2.8(C!Z!Q3+S?YG0X[I8=-+;*RWD<T 27SPY[!367@S]PH ELS[+BG.^_\nMI]6A%81-LCX V?1BPKB.3?X<-L](6&.Y.*\\G\\(P/+*3D2S2;F]/&Q22\\YC^@\nM.5$C_ZSA3]>%P$/YTUG\\0:1KI)^\\[\\]OFI/?)\">_<4G_:$U^ \\_);]RV/WQ=\nMY/'M-SAA3T#CDX!&;P,:>$] XW6\"(GT%1?H\"&E<%-)HC!*!!] 4T3B,H$EA0\nM)#\"@\\55 H[L #3PPH/'Y_8*BA05%\"@,:9P4T^F8$H$$4!C0N\"VB2%-#$<0_>\nM+6$^*8J:%$6M@:A)4]3$\\77?1-.JHHGCZW:)IE%%$\\?771)-LXHFCJ^;(YIV\nM%4T<7_=$- TKFCB^;H5H6E8T*>N'5F(XFZ:49;1\"\"8&#JPKQFA IDH9ZKIG:\nMAS\\W@([T .(#V!G\\8%YS';#>Q.OBR/*LEE7Z8/$@%T)K=EG95,U[H;!FI[7-\nM XNS.'$S*AT@X5HV1U5/0L#FL.HIGMLV=[5- MGFHK8IAU7S\"Z-+<2,YE%]L\nMTRQBF_+0MXB%F)1II!)@&T06_*0!?M('/^W#M<A/4$+'7- /HH]^$OF^?II'\nM/\\U#;W(//RY,;^!Y\\).+^$DD_#02?C(-/_Z/'W@D_*33?:7-;E:DS8GBX\"?1\nM\\.,])_\"#@#%)]!'R)IGD33/Y;\"H6N&$>)H \"U<RG'R'-_*D CTO7YT\\K\\:>5\nM^)-K_-&J_(&9<?AD?>Z\\#%:3:[<(XJ85 :Q<2@:9?D$2GN3Z3,!H+NW.%PSO\nM #9JSG\\]'(D]OY\\A+9C[VV=9YIJ_5O\"!*#8C.L'NW/Z&0\\3UKT>!OSY\\!0$T\nM71?#.IPK&/R#=)+Y.H6]?@'#NQMV_@(>-J[($AC4(W#S1VVHD;;A@/9/Z9\\<\nM@)7=AC_).Y\\Y[<2<=DJ7@SD.3;.<KQ/7EIV/0\\ZWC5.K\\\\876_DH:R](%Z\"4\nMFK3_Q+[(<&+/.O]K)DK Y K42I.XI^FB[GBZ&NIQ[@\"D2--XF@2:#X9PS0$K\nM?!P]6$&'5OF:)SIHUHP.1@Z\"!H45L %A-L@!;!#Q4*V0Y+*$S2F( ;<G!MYM\nM:H[ F1'/KH[^O@+')BPV)6T48<__OHR'7!>W*H@;3F3/S)-DCBQ]#IY).7D:\nML\"<DV%9\"HJW@N(!Z:&P82SJP*(,/!H V5\\M0LW8''CAS9L3#>LJ%.GB*:6D+\nM8SNLRZ>0Q];N%&#N!?KB5]% 4&N.+&\"9&I8$/&;CXP@''D]LE1\\?UPS=PBZ[\nM, 90&0'>)@'_Y$J7HD$KGULUM/&#7\"2<56^N&AS5#&ZN^; %L2FA%O]0,\\8+\nMS)2:1Z%FNG4%\"I3W\\&,5O?61X=G7[^$*)\\45+$D+7$$'%\\ 5\\/RX A8TAFI*\nM*T(P2SN@=HHM W'XFD= Y5:VHA,.V#RY(V[@\\R TV+!Q!]C0&IZ0Y6PPL5=Y\nM7$^/<S[0&I9 FZO[$9,R/NGAC;C:'H)=2RPHP;&-J>$=>=H#3I=?.0@#F<SY\nM=<\\_A_Q_M4W^^C!S^8Z&]IQ\\\"?Y!H#4GX^#!SV&]776T/ON!]XXW=SSZP<8-\nM1K4\"-;SFXA@J2\\U5^:,FCEV=8'W =VS(\"+4@M:@E@?G@W\\2$RH!K_5O':S8#\nMM+EV;I])25UQ=P9O.BG<1@T8M;O8< $/VW)DSE5O[.:TZQL F7HYP#.OVQ*M\nM4!!\\2,-?P+98U9KX4-,]=?(,9+\"DR01&Z[';2 K]2DS:\":]LY 7;J;HNL2;/\nM/MU/55/K,[8\"*3/(@Q\\FD$\\MHNMS_'FRK\"-;>S>\"N+0ZX=&MF^(ZM[8,J%+^\nM5M47!.%IHCX4)X5@EIG!MYGIJ56T\"S.B=9B!GE;SY3-F:\"._X4T5S='(E;\"%\nMH_V$LX;>U7!LTQH15&UMQ<LY:JXI:?\"\"+ -LTVJ%:BXL 6LFI18E/,R.V]JL\nMB0F<3<%(,1MW;U4M@10\"SY(FN2.S$\\8L^=+S)UAP@270X. -%C0*,+.4!<8(\nM<%*?V0Y\"C(@%@HDVZ>YN:Q!.<#VB+\\@;_-$:H5?^0Z-1L?W9.?X__3YA-+&S\nM6V%M!V!D?*$%(_,G7X)-CQ$M>PSHTB6_CP$O)@HF\"B+:LD2VYD![+@&HUX<$\nM[-<TS#H-PG)W8^!IP0VL+5 M\\$CJ#*1Y]>L)-0)U1YE UN!*U)H*I*WVDVMV\nMM^<%#<39]MK*Z3F],\"F[R>3FUT_IRM%\")*CF#J3F\\1JN4KXUK%4C02AP5,T(\nM-ZS%%=2/#K+,J==?\"$5'JY# Z9GFHS4#/E#Y2J_RY6/9;F[^;ZFBJ*&F\"(\"W\nM#,@$7#B\"0H-0=?LM4L'ATR<YI$(D@74@4YA]6 ,IE!/[!'#UD! :5=SIBQAZ\nM7R3+Y3&FKP'R\\K9DH:7V!).O#U+'[:'6?*@\\W0B8+X*9&F<L;,Q\\_<8>BGM?\nM!M54\\>/65[!,E8D#IV#9%!B4']O#T[P/_J5%-_I18[D7K8 N@3/+>WFIJ1(&\nM<\"I.@]X'%?OJ.K&B7Z+2Q00:@>E*J6(LU0#GG'[Q^]4!1JJ7S=1/?.%U>0+0\nMHSSI;YAKKS/\\A<C(E.*;R^;PR+#U\"P)9Y0=8FT#[O/YNBETRT\";VC@5,;%6X\nMR&&Y8?/^ #!E>!6]V *8EE8SB-Y2-$=H%3W4 FPI@FY>D( T]S]@X9LC&V[-\nM\"\"2ZW'Z\\[9#\"-&T++E&:I>1%\\Q0;\\W'[#\\1N@^3I VSJB9<[7VR'<\\SY<\\[K\nML4<5[X!N1PL@)XQIVC2.N@@_8(#AZ]TUVG=;XZG\\S?D-UOY@V!,&L\"9)%(!6\nMU0P7F #'X8K3,; ;-21D\\N. 9=8^C'@G&5\"S1P]R6S=% 1(?;W]5<:__J!'X\nM]>30L6P:_0ZD*<@3RN.9OCU];0%WTR*H1&]8WT;1<%J[MZ*%VM<70Z<8 !< \nM1-RN@*BW9A:)9YG*6LR:!I8WZFI \\MH>4I'B9M@'&;+7&/+P]%:< JC))M1>\nM)!Y]48.8-,HS%1*QM5<H )I]&;ZV@R]+T#QK@\"CSAQ^B\"76.7HD\\Y3T8;SJ$\nM-XOF9J+I&=%(-M%TD6BDG&CZ2C0R3S2=)AH)*)I^#D(I]*%HXVF%F^*\\@,,>\nMX9QL'/ *NJ+?[,Z<G&2NQ\\SEL+9GCLX<X#4X>CKF^\"=S=6<.MI0YV<0<7V6N\nM%4&8@Y=E3IHPQW&9*P]SL+_,R?_MS$ECYCK&'&PS<Q*;.3[-7!\\(#!8\"W[,A\nMP+M HX.?I(-_&B](RB S@_0,$E8P]&B0J(J]-4A?*LHO^A:P\\-P7)+V^H>\\$\nM%Y#[5O!0W3<!*N+:TB;=I(VW ST/5WLGN$5+D7(1S=)@),T2#D5^//*9:KCH\nMV(&D-4_ML)F*8!%7\\\" 5@;M>H;F^T\"A!NB/$29L=W$!*F*0)+@'%<^KX.)W0\nM$X!X!^G=;GA.H%YH-5C[2JBL[P=J8*4RS'C-6#'<TW5'1'5Z;]QK]BD\"^JN \nMC>Z+R:[/8<C*FG8&K<ENW<O>P F4'B]93$?,=?\\ )%[UY;#M^PK[>_I;WW:B\nM0'R= N9T%(/;NV\"43K<;RV$,WOW5FF6+3Y[#9G$>;L;0Q?N# KRIS:D+#_; \nM)!FS=%/X9/4.E,$H\\Z/_&^'F :2*;!)E\"+;HOX2:\"TE?W< OQP_>8$?^Q4^H\nM/E%B,N*JN(&8)6Z$IP_\"C9 O :S^<C;B !$&.'X%SQC +#\\PX',-NO]; ,<C\nM/6#UA(Z]>('C\"QU[L'7_<^QTCAW0L4ON<'R@8W<\\X/@\"Q[[BV0T=^T4+QQ\\Z\nM]H4,CC]P[\".V=@3'GI_\"\\0F.?=ZQ+SAVL\"&.?W#L@XX=PK$;%7%\\A&-_].P2\nMCCW.L4\\X]O03GIK453[<P_&NCAUJAN-A77O>#]_G./96YZ[CV#'\\^XYCMW.4\nM*SEV4T=YE&-?\\Y5+.79 QT[EV)>].Y:XO,Z=V?,%GCW+L[OX,PGC:-=R[M]#\nMG/VU9T]JX7ALQS[CV+,=#U#E@/.\".[ZO@UZV9Y?V[ &./7V'XP4<._D%W7;L\nMKXZ=P+%3.O8\"QQZRPO$&COW&V:9%!Q ,<! +%A0)IDX5#LZ/ 20]./W%*+G(\nM&.]!QIV>^8HIQN \\H4L(.-U[#SY=]T8(Z>Z$9S=H_D?:UZMXT6)80XV\"N^F=\nM(2Z@UT@(UK(*_RP@<^D^LVN*1*LAGS, %<,V\"(,]&] +S,2\\/.;I7\\$MXQX:\nMM]'M\\N@VRAT?W4J @=4!FNGT>G=Y5'E[  !:^9)!ROD!IB'EZ^:E<VQI8?WE\nM1[2\"V2;L\\IQV&DXRI]%/ SB-TQK:9EQ5F9__:T\"YE#*=8J?_T$^%4KX* T$/\nM5*B=Y6B@QD8*05JL1I%)K';[%G2DXK%:T'Q=,$)O#^F?$+K*H$$<C&S:2=U^\nM8'^2W=+[(JY)RVJ2[P!8XQA95#A5_:!J3W$>O_Y%=NB[?^!-C<TL@!I@UQW@\nMEREEU[=NA02K8/&A&2V^:$ '_M>FZR!H-]C\">[H(D=+U(+S+]4!$.0.S_<.6\nM(#<UQ[2GN[U>^4?-OOX$-C: ?TZ:\"UQ/@2/,<%$U\\>I'J^8$+FC:X$II9GAE\nM\\BBS[ -@6$(*;AM MX#J3@?XODAY+\\<B$1U?@_$,$9[\"M/$#!:)? ^/?>MPW\nM-;]#LIV?Z5P$7!Z-I_TWM$22! Y%>_,%(T:G)T:>78 8Z2)<G%\\>U\"_/*Y-,\nM@7%Z8(3+%S#Z!;FI<*J: N/TUQNC:P%P^_J$5Z1Y^OO^E C3(R 56MF.PYCP\nM]JJB&; RRBMJM/7%:%,J@G:0P'V $OI&* D$::_/O.Z\";'FSATHSMU<DBU%H\nM!@(<A-;8,=Z##&\\$?A];.RZ@'0HD;F4EHM(L9I(<?0D36B=Z;,2X6_Q(;+0N\nM72KX#S@;E-V0!'J=!\\Z'>-=E(OM#'/Q3(-^\\]H]B!4EW#DL0UR_W<N$U\\8.@\nMV\\&DA59B<8<C)NSK MU(\">I'#1COP-F!.1,^VR$N/JIU/0[3\"W&&V+@KUYQ5\nMM?I%F?.!9_IPA4+7QYMUZFIUN%:;7<?E8I;G J7GE_I@3:&/Z\\Z=!20;P0U,\nMGL'8O3+,^5<K7XUUV.(3V.(-<2&V+UQ[KW0'RL5H<!0$N/X-V\"L#>VY +0?R\nM7K&5$>@\";A^&5T2,\"_<G1B] 16)LH)-0R]P?Y#+SU%Z*Y[1!2_;\";./@%E$W\nM,-$)#O;CZ1#\\@WUDQZH_T.834E _;N\"YO+H/$2X!A3[=X=[!E#A_H'6;&&U.\nMF]T1?R%4_&H 622MR&*U8,WM\"U1-9+_*W 5P4+E;N!CUE6_5,L+)-U7ZI]<8\nM,-'+5'ZQ-S=+P+\\:L 2<C@[E_#6?-:! J@'__O+UC729>Q.>6R_[$:(-A!BM\nMP =G&)Q\",:X.;8\"T66Q[A7-[OM66N8=0DED<0&&+T[\\.,-MJ<+2$W-9197Z!\nMQ!.)4P3YJ*/F[\\^43\"FCFHDFC2^W2/E01!,YU0HUJ6\\<SRJ (;'QPPH851K>\nMJ#I$#[=F#9CY[?((DS#J1.!B@\\6IUU6X'H/:=@D5$N&N3RHZD1T]/=M_7U/%\nM5&G!\"GCQM)64LK;7\\S^B_5$3!\\@D9/0 =YL0F&M3A#TOX-4?.D0#^;]#OO.C\nMGRO_>! &PMC]KU.R?0L>/^H4<@\"<S\" 77.;M%4%JK5\"14\"^>/]0D#DZ\\GHWS\nM/WM/A\\;Y 080:<\"D\\J$&? HMN8!+H>\\6<\"ETPP,NA39OP*#0S:Z=Q['S>O8>\nM%DF.W<>QS[&H_N/8U5@D!W+LF*X]B$-1 SZ57FC I](R#?A4)NAA[@#W';NI\nM8^=WK 6.[W?LWF!O@/XJ&L!X:0!%2%OH+,, ,\\(,=U[OFT )0[SOUF#Z;K#K\nM\"G=:]_/L!IYWF+[9\\\\<S+WZ^V-@3,U[_RN ;ISTBY6T=RNBMV(QV^(OS67XY\nM79:X9DBEK<BT=R!OW.5VW+0[SS-NG\\5-(N!FQ[L+:G@R:OD;\\FL^L5/UB;VR\nMUTP,M-6H.NG9#\\0_4;Z5D$^15'JA]+X7>-T8S?&]:$,QI7L*[#-@O[Z\"-?P\"\nMUK:=MKZ=-C]H\"J=31K-)AOE4P$8/W<2L (5$8>N*'D(Y0+95#D2G!O%BD 21\nM%S(VJ?@ <O/=0L=YD.XYW@Z7;,AA-.#LE^#RA*)R.@?'SC2\"B_N )8PT41)-\nM1K A\"!KWZWX]Q)WWYU8T: 70\"6MC[>F!=IR31GNG_[D$G3IE9/!63!\"QT7RM\nM/8'1< =_1DE076V5=3YW14S@HP#-M\\0C?[^ 2/8\" I$0NTMRN@EJ60D F1A,\nM?-EM@M-2.$^-TRV#<G505/\\]43P?&\\Y!^!1I]&58:TZB!/E\"V\"GV[#2>:8-]\nMK?3,Z0H8GL9TS)M<250@%&1CC5<2\\$\"=?X&_:$T&G*5$AY\"TY/H$-KZ'4!9%\nM2\\7Y!?,?&C0XA2%@XB0 54=\\ ?P5BP&CR 2T&/T$BW[: <Z80H6#IF@R^<2E\nMR0$BCVI'O7@X8V&[\"ZOU8-:M6 U*M>HKA?C^^J@+D^<E>#_[?>]1HZ<3[90I\nMZ?#/FG6]R$BHY0.#3YQV[0P'SYNXQQ,^V,M].L#HP:-/S[IS>=8[EK1QK\\OO\nMYQL>(&-L?6&T%<.883&L>F@;Y\"^?]%>OC<WZ$WQ*'%*![(FXJA)'(Q\"']TC[\nMQ9+9G\"YNE2%MC9J!L,G<C7F$M)V0 #&[7($S@6O]\"$7;LS0[U@]F@S\"TGB4P\nM-&T W0D3\"(F2_!-3\"VAH34##$M@,2 D*BMG>#\"#V]I+HQTK;=BP?>/2%\"TO1\nMT;A^2D0_+(43;P59!_,6][C3[8'V\\D3OPP0%2&M.P@8'TEUI@+=<X57 9O'[\nMTS2#_[<%<?= X:W7',2:F;H>)VP)4]V>T@= F5X)Y[J\\N*=?$*) *:CK.B%(\nMIO\\N$+C*8%T#$Y:7=HWS8,KT!>S;B30&8(AT6PQ%RZ(%N;0TV_G,Y@WPIE9K\nM](P7KM? 3*&JOB:XGD%?K)D3!2 @!!3M[*\\DKJ3]< .KPY9%7D\"D,PS0X?R@\nMA6AL>8(5)(:9!HR=;$Z#((DLMW1QUY<#OUWBY!D;-8?F;SL4<.OEMOZ_ZU$M\nMDMF(9=')<G%^=>\\/%(S<L7&3:8O:1#]@QG\\_GBPZKF3JNJ(ODO0KB]*\\GRZ,\nM5L+B\".M\\ZE/14!RG@*-(!1XL2\\-&R<%I<W!BJD#]J0(6/)2.*L/VX<Q[?[;R\nM8.D [VO#EE+(9KI-P?E/C;+G<'T#):P M1V0LE?QFN$+&)+\"X#1^B/\"C,9/K\nM,!.B?&7P9#=%FRY.>' 27C*=]M-[;10[0%<KI,^\\Z,:\"'P'F!@DPDV@U@;K)\nM^VTM!+E&<OE2.G@<WQR]0*R<GC> Z&$?B%9TWJO;5\\5%.ZHD5R1?U%+]CZ%1\nM;XYX<\\*3>XNK$QY=23&6XN@/>7BQWQ] =BDP]^T'0%#V9\"FJ 0I-5U.>J;^I\nMEP<S-6KE8$')E21H1;]\"S V5CE#%1ST\\]8[E^7AYN/_4J6)J%46D,-['-,].\nMS'8EP##\\-D@!7B MU+Y#R*;ZML7I;W@\"!'9P!';-97P]-)5DNL?\\=67NJ*%W\nM<0]E1K,'P6NQAS]@;V*M/(\"5*<T4%6MX7AP2;/;MRJ._[H'8V7Z,+1!]3A#V\nM]([ 6JX\"BA27)[ \"V(/L79$7*.+!T366XX/E/P(.?S[8B\\UTUF<G[DYX=N)V\nM.P]TBGY\"2A]J%.:>MP*P=TI^Y?:5PS=&TY-P@=H93D\\,%+YE[M&,[!B$MZCY\nM:H+)51+WBP.@!T\\G=MS<\\>3H\\MT NL;10;VZT4%U@8/[G]X_ONB?4\\! );=T\nM?=65]M<G46V_;Z;U>IAA..:& ;2A6/.+$>;)5O-L3QL)+,V-(G*$$EQ7PL#R\nM!^$DM'\".T&@.R/JO['^X9<+GL.J_H\\3?0#1^3YS*SA8DI[2@ 0\\!RB8C7O+5\nMUR7M+LQQC0K,\"8*X50B)P?#$A.0RQ'&>\"U(V$Y]A;@A+\";(O5KY+6?<)^>CC\nM3#,&S&EDKD\\'G\\!!>F8OGZL6/I<6P:E@V7'J[CC#!0IH@Z$6>96QL4TY=036\nMICI#@L53C3(C;(>RF=(3'%^G!F@JY0_466S*PW-=MXDF][,T2RQ:<[<F&S9C\nMZ!6*0?2A=-.:07220YFZ!J[22'731<< \"WO 3QJ!I_G3B![@G=U4UMOG5N!E\nMA7)K\\M*/F)L,FSGVI7EJ\\+>9N1;VVVHAM!Y6+&9Y!9E!5C$%' = AT<+($\"X\nMV@O1)$4&D,\\P!<D.4\\ ]36#*[0U@\"DUWQJ7\"^UNF)IW[YYOA3AC@4+ONZ$L&\nM&#Q?GUWMO^ UDVN#;]UR1\"P831 MPP.@5.)S\"LZVTZCSI320*NY*>].(! ]N\nMN3_5\"$F&0QQIYAY6S;WM$C$^F7&<+0/ );V)(3\"+Z:)<T58*<4S5;7J1FKDN\nM8+E$V:C-IISY+:@I@9$/:[R7 ?Z):WO8PS!G+6[__H&C_ED7PCM1R4=KI_[L\nM@?W +Y\"OM.S31LCF%P\"+DF6P<B1'%J)#O/(VM;NW?,\"XJ\\DQ:M?4DD:MV2 \"\nMCB$R,D_)]1V5\\*9ZQ6+XK%X*!.=H03] Y%4ALKOX9<J ;8<+D9&M!P2!^VV0\nM18'2ME)G7#8-!R8<0-@N+^%U+3 J*WM:!])0&,O;LL#Q-\\@\"\\VSSU-4I[>D%\nM**^N?';EFRL?/:Z]\\VK&7KE9-??%W@<;V^K%!X2_*K#%8#Q8.X\"BZ,%NS4,<\nM[!4]@-PV!6TMHX=E!&0KM*N)%M_T*R]BHZ+.)[UB;@N@97<:I3W=_J U-W8@\nM4IG;BW)[4E11RWM:'I1>%./,KF3'(O>K;F6K#=EQ;DM/$\"D29@?$ZO^+<+'8\nM?M$1$.7>V%.$>S<Q JE13DI<>TZ_G.WZ@;R]K44\\Y=J>HCQBTTZ4W_!40(YC\nMJE^35.@\"\"4,ID=J6-2-?0!6)\":DU48536MX2543;(SRZOE-),/,;98@9!VM4\nMDP56MX44!T+WV@A\"1GU'K,4&>%8@S6H7A_7XE(1!^*9ZPE1'UQ\\=6_[2H)X:\nMMA/ =@,IWAEDNX-LVEKVV-=CX%7#>WUC=H^-_4HSPA8/.M9>NE3P'^3R 5.S\nM+_/HX*-+\\Z!V/T'R%3U(#/P+XY^8.*IK:IR6/T$ 4?3\\+XP'*5M%9C3PTL2G\nM)N[9Q%V9^,R,!M;:^-C&O=:X.QL?6EEC*SE1'%^^45C)46K,<1!NE)D87OE\\\nM(WPKT3M%AO->Z2WF^!0F3^S<]YU;B7=ZX'Y_(_(HDY4O]N_9-T(#7ZU!-1O$\nM9\"$$03E8)^>6*@BXM>6Q!0''-YMN/[UC?VW4Q5\\%!A\\_</ P RKFBCZE5_49\nMG;(KWEQQ&SLII++O!YLV9$^064/(+&'<3.>Z!HHW#Z!&^\\I^C<*5S!85L ) \nM51+B[ZCPAJP9( .1(AK%'0F& <9W(P0U!+ILP:Z,*\\X@@]U#3N&.*L53F(\"*\nMEI \"$*Z/(U)P1Y'2P?. A2!%*T&*2DJ%,X 4.;[+L6EL@S@X 8@#:0#B(':-\nM=K!KM)Y=RU+82-*!7R:XO6)S.&N3),(P;$)J>G.YX=C.M/:\"' 7 GAN\"/3IW\nM1H#S8B]=V[ %!H>#8^>OJ')UTK@W:4Y)6A!RZ^-:)ZKY7 '08X+V[0%*H1H7\nMBAL .%.;=\"F Q!+K-G)%)D<8MFNA[!=8BM[(S 6T<7=SO&!/H!^V/&[ /C.O\nM/U\"P['!%Q* Y'L!:%]I[]P,Y4)_<AV&[*D)S]P&D,#<OGH@6X PGB)%5%+4G\nM/+V*2>>T:F\\B>N& <A$LU.G+27Y/;QKMU?71U3&FG#R+*5G>B[VZ7^F4_D:O\nM]G=.EXM! GUG,!5?/[UB_HU6F+9S\"9*\\?*N(&,QR<P42\\6T-V0FH>;IDM*EL\nMRK-##9-RKV<4>7^[;F].#15PD;[[7VF\\Q_%S$22S@FA\"IA\"\"T1U'W]A+47X\"\nM%VRBP*4'9+]>UMC4SRO#NV:6!6I/UHS B:T9!W1M:P9 T?'HYM>__!76.^^1\nM_HO]M0B,;E'L^TNX\"AJ='<E[9_!FET('4+K9[C!&^\\\\9NDV$[PUQ'N& TK/T\nM@(.VH(D$4@(SH33;.C?=?VI% ,6>M0)JR46UC#[?\",H*CF 0U+;2J?8N%C2*\nMS<KQ5%[D6FO8 %%PH3-V\"QC+U3+4G)O\"^SVF>%T4>' 2W7/CY5Q+,\\<FB%XL\nM!=2AU02VPK4P..AF0CE@\"Z\\O/Z40O,'AM $@3&DH- /;EY]\":Q8U)KO(L^OL\nM-/C=0:J!4,:G*MDTAUS_8\\R3._&&@\"A\"])<!%'\"X?;DA\"CBE;U<#N45OKYPJ\nMH/TN0_1Q 5@6?:24)P_AX*S^+Z^;-OR2 T1W:3LD&B*ND7@FPY__AA)2IL6%\nMM$DXO4FXO2 ,+PC+\\^/H@+QX\"TG4<)DIG,?>1 MXDRHV2U E<,5.\"ZILOS\"8\nM-%8H@81,MD.SWH#UBX/'<FNB$\\3I:,8?.(]?\";\"1YD!05,'/,3B\\^%C6,W14\nM,/^V<_V%FZBV1U#0-B GUQR !.$.\"DA:L^D(4%0\". A9-<\"/$Q''9G#^@&Z/\nMO].XG^Q=9),>FN=;0F1$2J2Q48(D-TIX(4.@^VJL,<SIFEF E,%,,XF\\A0@(\nMC ;@Z$-'<'VJT84I3J^3N;$(R$U>>$ POS)21.YVR&^W8Y)L(?^6$FZ'S0PF\nM394$R<&IO_B!%MX^)(9YBIYC/#>@NQRJ:ZZ#!'M4Y@*1@P\\$1=(]\\@)A6PG7\nMP'#)HPRM#B740*!KO?9.\"2SL#:8W]:D#7[_B2%I7!%[SPPNG?X'%$/TGI! 4\nMU_R0@@((M_%(#))O::<''5Y'\"!+&3*K3?1%IQ=!&Y^FAOFD'\\X87FB9PV0XR\nM@!-&L%IQ-KH?&'B\\OQEK&937^$%^4 6R+ANEIB>%E38NE,1\"\\E&6Z X: )-*\nM5(P(>2>'_EX,4V1HD4H7R#JAP\"H&:E(L!CN2].P(%RK<_16@F!T5/6EZ -+_\nMD;9U;H^T_SXYR?_QK771Y Q:@XM2S:PA((E8=KT,,!EC=M 8+)FVURPIPD-Q\nM3#6&(F#(_18Y;310B5!KUO.48,U)3R@1$$W<(U;(1:+H'AU-@+,G<%H*T7< \nMO5SBE;VH%S&9/)EG;_]H0(AT3=!IB28']Y8]4 #G=7Q?/FZ:Q06E#J>$F=&6\nMH@^#02VA7PU,P^OE9SLNX\"VI&FFJY6Q,J)LV(>J/79LJ,PH2B6LP%X+79M73\nMD>HT?_:!AW4AK>.9!&)ZB!M\\H6J)K!R27V?QA 'RL0F>RBP6.^8H,L#1F@TO\nM..EDM:[9EH79YP/8.,I<0Q.-XNY5GX;TA0?$]D_CKHX Q V05,?=^!9+W> '\nME)I)I0^4L$8#FT'F1 S]E405@'UQ!4^I+I+G]SZ.X^I$]24\\+X)*5,6=\"C\"@\nMI\"'[80WK:L_)#A0M4!\"V;JG9:QN$-:%._# 141Z<[@E\\,-N6B^64;\\3@1%UG\nM(MK7STA6<[9GQ^KNV'%YOUY&DT!X$]$DP1S7/$G=\"Q(P,T]\\8!?M\"D@$5X 6\nM\\',D $P*Z,:'F&!,%Z,' \"E>J-CL@4;[6X'7Q;_PO\\)#-G%)S58W\",4J[_5/\nMJM=(T HUMT3-]2W)441]50[,,]:&\\2Q2/,+#-[%,3ARH9I(3QJSZ-:,)-_XW\nM$G\"0UD,N[<JD$8BR^[^LAHPD,&2 \"B%I7RSL+Z ;M )8,J^,@97^\"$Q5&S.J\nM]R@,Q(Z!77.I434W 5JM&AB*])(TKB!I:(56^@9Z*'Z'@B(]%=%24#^0P9C#\nM5*OX'/:\\I&4YK<<W-8H*X*9V!U.3\"J:&]ZUA:CI[AJD9+\"9TD/3!Q%=:K#_6\nM$!8\\@Z;!02%6>ZR$X;5*5!M0<UD!I\\E'.-]7 I:9)3F;9(H*S@\"9HPY 6LF:\nM.;I)32Y[(S@0R(^.^ @C>(7N.%CH&J_:K0.=0)7H$Z#>1_R?L-7V_\"@$X1OF\nM^ B +[GDHP5+[#I,V=,:0+XH0R#.V*.-Z\\0^6KX)_!WEV4?3-_&73V .-V*V\nM NC1]L#> />C]9L,E1T@^3\"&QP6$SJ&V7VF NP?MOWS9;7\"O.<+B&+*&<K_ \nMPPMW%Y 4!9-DB5T;32Z)CQDWJ:6^K7WP_X#U-P(OL7Z L*W>!SQM:'NB=:MI\nMN2)KFRI%M>%>ESO]\\3,R6*N%D#Q!\"R&((PS%'H\\R&GW?B.C/_OL4-_ ;GOXW\nM ';Q^!O\\SW?FWX.!&.J5]\\M5X:Q_2?*IP)T@Y;L<<5/^QY&< $?:@$NUVML@\nM8J/_&K(+5?\"C7H\\%GW?\\DZZ5Y59H=H!_']SSM7</\"\"1G67<]#VKERT.<LY5+\nM0YR[Y).VKB5XM^1@-]0/LD(]A%AMH6U9._J$+!,:14STW___C'7]A0RPXO_G\nM)C\"Q#\"/\\_0G),6L5=^+#RW3Y3\"F/4HB$&M,$$USG>!]73*SU6\\QE'JC:)/8#\nMCZ<%WM9YP=]8HA35;A+1)&X$@+6\\T@@9R:>Q%S2[;7!H*5V#QPTJEL!HRL#E\nMD39N@-%7_C^J^/4['LN,7H',HE80:QBDYNL?!+9HA^_VAHUFQ]J.B!O/>H$!\nM)I(.=MK;=YD6T.RVL(^;W9BM?F3X_22&YU]K^/[*7@[E^.M#$';*!R@Y-_U7\nM*$\"Q!EKF695G&'\"C_7L<R/;IMOAMIM0*-%FEHAT8P!:2\"D2_!W9A,G:%=!=*\nMJ;.K'2!:) -IG<'D_9MP$N6_ ]_\"\\3GM\"')(K\"SJ7'KZ ,8ZM;]50N4&M *F\nM\"GH%HJ/X>HT>-/.NVQ HD)3M'04B*781.J ;5*ID^A:R,UV2+0C>=+&F]QH \nMVA&V9(\"SYYM>:L 6<GBP-H\"S\\#H%2],+ 4$<PE@[@,\\C;]# \"^8(4O/T+0/@\nM13SM 1O%81NK-H'A?/HV3FT;K&+I9N->3PV?/.!L)/SKB\\G3=5.\\ R/%UY-Z\nM)P[?,1QOD8Z,EG4:P;H=GVC>V#? [@V,$E*.P0Y GA1R/(?C-=;5\\0[\"LS-X\nM=@?/CN#9OI7\"LUMX=@;/[N!IV]S77^F*I'(\\B.,]UF52%DA8 W0(SRX!:W@/\nM:\"F!\"B.-UZ\"\\UG@!)+S8P:NY ]$,!=YO0_0V]\\$:/DP1NA-:=HR.1!#_/O@X\nM 1+28M!6^N@#B2^][_CUVQ4UOGNP#[#FAYJ6K(#__F=8MP+I4Y[N%;SA2-.F\nM-)SB$/^Z:CUP9I#<*9%0T:J'B+XE/U3BXCM,;M;D8@O/KR?BNS3ZB/O7YT3/\nM5A]*XF7_38T;/WA$&4E\"&5E+&:F,UMCD8%/VU,+\\'L3EN)FQ=C\"\\585F%)Z;\nMO2].^/EF'Y(6#H'3[#/LVZWLT5SD5J\"+8R\\O#/0V2<JO-+\"B_,. 7[V0HS)[\nM!.<F@Z41'P<1;#%#\"1N_GZX\")8UG'CD]I55^L%R-KCL-=/T1ELTZHP]V_;5K\nM_%S#<N4SI6T$'U 0G^B4'P&ROZ[YL*V!&FYK+&J(HP%1P*.F&M7&>1<\"MF/Q\nMOF?X6P<P:2X]+P9G'W@?^OWI]Z/?EU[@MQX\\3?AHPDL',  ,$&X)<.M8 P3L\nMG_EZC?;\\NY@?Z'%I^WUMS\"Z V;>I^_UL8J,EJ!598N+<\"0G Y3T RR6X,]\\-\nMD- \\_<\\ &E0[+MZ8KH:8XR$XCM.E>#CZXN'W[S4T ?/W#VO+_--K#'AX6K.G\nME\\ >ISURL#]RT[+;NP -??N'E2%A?.1>'T\"R#UOV].OPO+5&,'IUA;Q3=PN8\nMU;W]\\3]]??[3S=^S;HM/'W<R?#JP >(1]7^[:O\\SCYT8GS[LV7+G8T7TF=_4\nMMF^D_AG4C@\\!-0=4_:AQ)W;OQ0-]&P']_?B+-\"C79_RA).P7__JM.Z/+^0\\!\nMCV?JROGK']Y#00Q[>4YX)?Z-\\N<F0 7+'[A_8ORY][22=VNGX;7#PFN'A==.\nM5-N$C>[=CX^X*\\B^3@I/?S_=^0@RO'_F_,7.<+,[U_CTS&15&._2N@DE&4^7\nM:&R(>($J:.(-#<LW3-TP>,#!$3\"/]V70@< GB(_\"F YA3&LPIB<8TPR,Z0+&\nM[-,'$.S#UXY@;!F%3ZD1%< *C*9_I&,:[-?Z=R#YBN\"@&Z+(-:W@&LW@>@61\nM8:V^4P7VYKNMR3B\\&)N0QZ%LUFY%9VGT]=&S1U<?'=L3G=X3];Y9AI$4KM\\W\nM/\\!+,]PA7D]?KL$=YML-Z&3H+3_)A'G=ZKIV@%MNXRX@UD(B1S 8OA!9U,;G\nMPM9PV#K%N+<IIQ]PS,,/G+XEGO0XM;A7 CR&L7A'/SA B^5;!&WA!M(,;R#*\nM)($HHVA*S&5EUR2\":Y3)=@1IIIXL:<8)I!F)X$T&;6D&64&:'4&:<0-II@FD\nM&7AA:28-D-G2K C2K 32[,+2C\";@M \\X9FEF\\?34*TH&> A)!A%#DN&.S(4I\nM_S3OT/5(F S8R)@LPR-0,G*!DM5 BQ]!BU_!C*>$3LKXEZ^XS/;C>G_PT:6+\nMUS]LF=;G=,MH=<O4*G*/!_9RW[DEMMXQ:D,$:LF!__),X+D4:_FN%]]?O]Y2\nM;W/A O3 &OX$T2^+,$Y78F.'J%S240PJ][!1]YG\"^\"_FM$Z  P%VTZ@#5!C@\nM^#G'ON#X@$53\"EBVY_MN>-[!LP?=L/R;YSQ4/VV A(Y]U+$7.'9ZQV[@W'MG\nM./_#N8?6\\/R!:X=U[0BNW<^U@[CVA2.>3_#LC4$\\'^)LKW/L(H[]UK&7^'8N\nM]_[@WN5;.![\"L;.]<'R$8Y=,X7@)QT[FV2?\\^QD,.T <][X8P_$Z[EUM!T0X\nMBV/72.'X%E&YV [75WMW)9TT0!?7GK#!\\3\".W<6QQSCVU\"#V+_6VO/N-8Y_/\nMX>I?O'O:\",_G./9^SR[CV,T=V[.*./>B );_<C4-\\,+=#N9O?R!C!QCFV 4\\\nMNYBCG6>$Y85\\NYMG'W/MO[Z=S+6SI+ \\D6OG56(&6.;:%SS1S1R[1@['G_GV\nM2G<[E[,]Z8\"QQW+L,P4<G^78QU<X7LNQ![O:KYV;=<=C#U#S#FSB>EE/>^4)\nM_^\\[=MT?CN=W[J@)7&_FV3UJ_-=LIL*\"@9#BD('90P8001M,WRIZK0=,VPOT\nMC-/O.D##L\"]Q8)R=;N\\N!7,*SK[IL_<?_-RF[>$E_C\\H__255H+3.]QDWACY\nMMFU,-!V*P4[N_^GZOH)CMR8@#05=6U'>0P_7924X[DUX;B]FS6T'2*;[I3_8\nM)P#>G:Z3DK7@(,,/DKP-P_T7G_W\"[!U N3$M*\"D\"D/H[@.(0 T8W:S\\:<SIL\nM,V7D*<0:JA6!' JQYB--2\\+/+G>=CF1E'<22%M\"-T)5>TQ6\" RKR@@8R0&=W\nM@Y@!0!<DX#)U<?85VB:ILY\\H/S=+ 3_G@';=$[?+OI&#[WR\"@_07<(\"Y)Z\\S\nMNN5&V%[Z^.2+JRL'Z@X^\\WH'0,F2AS<60;[]\"\"%2#&4K$LO1O;6ZMS@U>5[W\nM##M,E[XR@!#E\\ZNBP\\#>G?#L+GBW\\D\\7]/]_8[*,=N#P# 6NC.Y8V*_(1'CE\nMP19RY47Z\"@.(+S1>UX=(,\"ILL(\"QI^\\WP3D]IAW*\\. U\"Y*2!;(C8!*F;?;L\nMJ8P\\7V4FF-K#X\\*D5\"BHK07.+1C8J'H\\'C9;T,<P*9U#J?UNT+9GBT#>!B9%\nM/U';I%I&/Z!7]4;7@UMZ=<*C,\\/RUJ\"B+;QM\"HRX/Z!(V!UYBK!, EQ>';$L\nM<WY9)I8NR[@\\;K53L&U>;L1HA13:=O$);R^&QO\\5T>?V7^P]^#C;;G8]\\5__\nMQX_R>]P2QV4/P!R4^+7[17M0@NF1'.O]@;C\"T[%H93B7??;J/EO][$)#!/N5\nM9U-\\_009]4^6=\"T:G!)!$-1;I=?6\\JI-=28'@]H$_'T%K#0!!6U8= 4EI-F!\nM0(CW+0'Y%+6B%1\"!8R/*>C%LA8*.R&H#A-EBRP&ZYDJEPQZL2! ;MH#:CG:2\nMU'2/X^MVM>+T^O1L93NI<VOVP/]M1?\"KX9H:P%W99#E(S> LG]-]T8Z<ULYM\nM]S'?]AYWS0O G:MRYV:8+4=PO0&M:CXS20.HX;XG9D4T0)A*'$#57/,$S!T@\nM$-\\R>JY91#/M+@&@^F;.SB[QBTE17Q!2D%T=S1::6]7^P09W=4]/ /39-YNZ\nMQ^U7(_U$_[8$;&\\#VY0T4\\QC18=?GL?ZSW', ?'CAKS\\H@?* RVVPLOWS(D-\nM!?G$EI+<5@Z@-=S>$ QH8>M_\\ WM 8;V<4.+\\_H#I3@[[+<!V<S8TK[R__H.\nM*)3!3P\">-B)B+9Z,6\"#>C^;T\"_^O-S!;.\\\"K:\"?=M;<M&[1ADUBPI2$)S PW\nM9&@CG[W?#T8#542MF=&OY^8E7[? KMD=(!EB[(5D<02-0ZL&@ $H+#CN$2U(\nM 65DS>PPS63:,]:6ZE^?('+FJ2-S-\\H86-OK6S;6VQU6$X#:CKB_U[\"B284\"\nM0 ?'EWL#).AWX&\\ 5SE#D\\=Z9X\"^ [\"BVU_OUHIY!*OWQ5L('7HP<07\\+)II\nM#_X!%[9B.:Y6R]\\4,VLJE[L=$FS>_!9#Z:Z(6O^QODL O\"&0<'[LTT@(GV8K\nMO4]3\"=.VY_D9VOZ-&&J_?:,*7I;3,PWAY<'A,!L 4B&8%1(/+8@Q8[USR.F^\nM+%9P\\WADSC@M]!V<Z?]QQ$3)$FX 286@#Z3!0*3U_$X=*<!K*-NL:J2'4,WH\nMS57-!YERM[R#9_H_'*N_I07W$C10'K8:=)K3QM'[W5%ST(/S .TL((4O]D&P\nM/>$@COY?#EWKMZ?%+&;NQW+3!WI;E05X;6'!\"2@^Z-X(_Y)J@:AX!]J30T;J\nM52)^5-D'!R\\ \"_2H[VK#\"7CI]2^(;$&>(%\\2E]IT?GZPL=/:F+GL!TIHNM@3\nMA>6)IK9:9@B!0C+$Y@__P><K&@ELM08:A043K2(I\"Z4\"8/I0D&.0N 1 <@/C\nM,&D\"#_'*H[A!M P)5$UK=HL@E95>PGM]EFO52$\"0N.;F\"$P)#R)*)#84CL;W\nM,3C=#8#I4!I@E\\?-\\CNFU)=ZH%GU51/'J_'Q ^A<I_]75-=:H&X\\88(U0H0%\nM2V 7B.V[ H'J#$2^?49@=)-7>/H$H4\"KYI )7#:3HTZH?B.!B4-J!G-M# ]:\nMP6\"#L;JI!6\"S!M\\L4+XOK\\09C<=J]CKA3!+M@&NRU[5*YUM :U\\O(--DY2+Z\nM\"%4R9\\\"Z>SQ&.%\\@)64X&NI%*&5$CB/:1S.]&$KX'.#>1R*;=X8VP5#+_WMV\nM*(\" Y*I ;2BT<01H0[!31-9-[<!9!:[.T&I2#FT0EYBSR+9G)&@%3H )&D0'\nM2Q\"\\'3V*H&$A^%&M^)%,-C2T EVB 2$,ZGP(2?H?+)'C%< LL@#1OK[DE2.9\nM)SH@5\";(J6?$[EON;CP3:U%93>)$^U4$%0P]^4 #0_,^T,#P@+81%##T7@0%\nM# _H&D$/RP-N%E#\"TJ81=+#T:@,=+\"WP0 ?+ X*Z]@I)'Y#)M<<Y]BT5TN5<\nM.V8$':P5\"/\\,H(*E]1>X>U(=K/SM*;X=>H$6CL9HH('D 8_%<,[CV.%DW4GO\nMV%N<>XUCQ_/L/HX=2POO0(Y]R+,'.?9VSQ[EV&,=NY1C'W;L5([]Q;%7.7;$\nM!3HX&G.!#HXN<)5U<#I?00=''QS0P>F ?3O3_0HXCQW@>'\\_/! 98YM\\[  ]\nMJD&KXQWL8$%@1QDC2?< ,E]?T.O!K!^_-C;KCU-5P-I^8<I.8&L',;:_\"&$!\nM$4 3K!DF:H<J-ZU;NF7E!F6;-NS<,AGH*FKPR4S_=B[=J6.PATL7A#>A/MFR\nM=M..+0OPCO-DW]XY'^Z<;U:FX<)E6Q8DDWV7>P6Z=(N?;=TY00,N<.A;N&F>\nM\\B+F&TWSW?%0I]S CPV3;%_9-C9MW]@V)8%&0WA8NFU=C'T:-)RV#;D5<Y!2\nMW[8-ZQ8 F;%LD*?F=?O6;=XV53G;,&.-]BU;,G%Y4*I- 4\"#K@KWK-PPS\"U#\nM99DT6[8L61G%?$8QIU',8TC3,:;IF#7,X6.PP\\N0AY^!#YO#'QI&T3#MSWU;\nM5T[>9DRL!:8(2)8 QMTL73-DGL[MRS(^)QE517.'IMI&2][6#9F@EIDR'+F,\nMJ]4P=S!H3K0NW;%HYDFG9>_<PSA;,YN#(RW+U@XQ+U.?'4JK_O90$+J\\Y]2^\nM(/DT@F?MMHQ]TRV=D+T<VXN9!L%,#(WJQJ!1X;C6L'#-@AP2'^Z7!H>+)GN \nM0M^^76.4@PPRY]/&K=/W4+B#O5SO-]BL&G4O]M!)J0X%H4\\(C7Z\"QD%.I9OG\nM=BT;'UKF/[K.4UV1BIZMF&H'D&2K)JA-.FAPY2ZDG 3!#V'-T$$BQX^^I6.5\nM!K53]W2/K#G\"L;#$F8-XIIM4?N/GA:.9'7&Y<]/:F3*)!CS1Z[]VQB4J&GM'\nM3WD/\\XQ;B5SILV+#,),@FE'[J&B4\"S!-@4 %+A4852!6@6(%$!!9> >(:$,O\nM\\++ 3LD^6N\"K8K\\MD+C Z +%)?M\\ :;P\"C_8 U>P4,YS(-*!6HY=[(  >L,#\nM-P^4M>S$!QB0>SMV]P/_#V0 0+E' BW@.@DB23;)PTO\"I(F7:(E<[UB&P2#Y\nMJ52ISHRAS\"S]-D1H<YLU!R'L4Y4J2\":$-8XT%R(-(PSY9!LF3S&OL&2)X(66\nM/5/GI9:)35HGB-V2[^>D>T@CRDX%B!ZS94R7,)XMM6\\9))476^9: >AK$5P.\nM'U=@-V )VR$HZHCM,BC*W^G4)$-+=-\"\"#S#*:0\"=5]HAA_GFBR:DS\\Y!AQZR\nM9=/LAKLT,^NA4I-\"J3@KF#AV\\?$ P1XA9#J C&?/ZC^@O([G_S-4GU$ERP#!\nMHPX(=:\"_A$.R3\\A.)YLGL& [5O0#T>W!@@==$!3+0UE<D)G<'>\\L!-9F>O0K\nME!][42EB7FM1@$^F?]$K9KF/I3ODS09D3H;9+*5+;C.:[&+W/1XBYGI!9$S(\nM\\?6><##[\\ #9#/?]E3T_LX:T@A1C!P79IUYC@HR!#YASZXKA?R^<L0>1FI.!\nMMR8NI]C3N.)L<G[(3&@3 @DCV) HFZ]$WXZMVV8SW(DE]#*FCYX#>J/XK)#V\nME K(8:?6F3F>QAP8IMFD?&9:&D[.74/M+G@XH?P8JJ939O@96BZ=3C+I$:R0\nM:AT@60[,'Y]JI2PKTF$.,3A*.*I@-*;?GC$*?@K3%;GGP@@.^B*W.))(G0PE\nMU;G6!J0\"94_3M&\\!^[)XRWS=TMWLB)#<RVF2C4[OSS5#\"TP;V65[NWA!O&7;\nM&%9N%BI4$,[7L0JB**)9J:B?IFX69\"KK]'8Y438_616A2SB319\\:64P^(M.]\nMJ!*5^U0%Y%C2*&CL#/  8!W![2M^'<&S$=D.D@I:MFCR3;L-4_N#7%LVKXYZ\nM!0DB.%%!@NS!-*KS !. 'P!SQ52 1;M0F0.*:@!$X*&R)'\\D4!\\D-X!SYF;#\nM#*94+I30\"\"4(%*P( R!<V[!4K!HR(Z9ZC *8YO\\$\"2O]D@EC 3M-0ETCTAPL\nMH>6RV25@PEFB:XQ*!,+3X4,6<>8N:SB30O3=*(BZS)ENHFF4V];QJD:H$\\Z \nM(DQ+E9(TRAONPPS\":SAA9R+=DV$^KC\"CT0Z)H[91EC9RGR!&2YAG@V2:K1IC\nMWI:-/#R<?_24(QHB'\"D13[B5C6\\1Z3 -3I!1X+M0\\5:,.8.=6E5(T930#WWR\nMXR;ZE:D38K5\"K$B('8JS0DGF5@H1XS)[+U:9,T7KK\"+:,[8A&.[\"$]$^S*%+\nMQD[GGC1)DHJ^S.5([%.SJP!2ET70;R&%!-IXETQ@MV XL< 0P6(,6&L$MP$<\nM&W[N&O^4X3B',%LN1PB-U#$T56HH7@B<KD*#6$304SK;]\\0\\@^WGDJ&XB*[H\nM&*ZL<*ZVFZ=].-]*#H5P+68 =8KGP6\"#,3M.),TDLIU]7CI2N1RL;/!'0XHI\nM&TXTK<5(%.M9.-9&Z:;@8D#$6QPS(%K6AHFHOM$*J@BQ1*(KARD3#S']4LZ)\nMSVL0(A\\07\\)1$<[C:&H86VP#5)@Q4$<#XIX[JTR:?0\"%G-$SC.0MARR\"F^/8\nM!AK94* #,\"(0\\HL89PM'M&_R4J\"#=$.D%&OA?QE4\"H+Z!8M\\#$UT-G;RN6V&\nM[=,?V^9DR]5U<$Y5BC$)(&(;(,SL9-W/1-ETHA0$A0*J.B;TC&W2Y56H1*Y@\nM9Q)>T$@ZB<E;Z%,L/U0I?&Q?%$]=!J7/HOFX%=-.S'R;&\\J;D.YI/GZ:TVZ?\nM5HA!=@#$C)TE,UMWNWER#\"!H&-  \\3_L_Q A1(<0*T+D\"+$D1)40:4+ L-*X\nM&VE<%LR[[(F@%F%L^JTQX,RDVBZ(24@T([HC6H^\\(1;:C8P8_O)H29E8@H8Z\nMFE203>\\1KV4)'3\"&:U_;8_,8<.-[>0)(M\\J]SZ(A0$+R]\\EOQ<L^6YK2VQK$\nM9%IHTZ-Y*I6J_*6+&MHRK.1\")?*IX6 3N5G&D[)3!%0NB,M=4Q;VC2#N6CJL\nMB0:,9N!FJ&B]CEK8_L; R)UE.P(\\W1;)MCPR!<O.AB(# *,=,+\"\"+4,11<K@\nM:CRHAI+S8<4@P'93L,#=3=9>ELAJ1\\D!T/11HDDN;\\$+2VB.*[#@H0&;\")9D\nMY<G3\"4;^J$\\?E+74JDZI)FU:)&7%L'\\B6&F[5)LP8<)LJ+ EB!=)*,9RS9S&\nM=Z('.&\";S]@6%,:>W(&SU_.T9&I90<@[P 3@/ >X-%&NW%SY=D?W*EZ&0S#H\nMVD/(NQ')TN[\\ 1 ;2,O(NVU)-TU--*>7,VX,E0TPH*(!_Q=%P/]%#N#_(AWP\nM?Y$$^+^(!_B_B GXOX@\"^+\\(#_B_\" 7XOP@6\\'\\1!.#_(F# __T @/_[ 0#_\nM]P, _N\\' /S?#P#XOQ\\ \\'_!@#_VB!5RT:J+V7MTC'TP>[=7K2ZVJ]\"Q488F\nM_]/EJ/G_O^X3&\\6_$#C=&M*ZF\"B'YNV;/$[8X(#KC-TR &,EBC @P/\\VD:=$\nMFQE@8Z.2+4)5\"U4S(VRCO^[ ].8++O:+3U\\'\\^4+L.[4QD4%>H1\"SK1FX@XD\nMGVO*1W_+QUD7_&^7H15KUDX4TQ[1NG^0K9JSU#W P<01A+.K6?:$4X@SJ7DI\nMJ5V<U$Y1\\]( 4I-9\"[!3U[K8*_[_=XT41=)](!:ZH*[VUPM<*7VA=+H3J-$)\nM#5I52V\"=2>-T$9\"M:OFN-W#,_?B%OUG;EIE8?)!8U%,\\D)C1F*K-N^KM&DA'\nM\\DKG#)CF?=!QB /@IO_3!@R V 41*R%BI^,V1=6,CVM6AL\\A['FL!_*P9FQP\nM4\\V7:M9[S;3C8W+1!JR/?7 ]@>)I'YB;&Q7@34F9Z_F^X&\\$>E[$LIM8'L.7\nM?/!/@7P7VC^*%4*V-\\@>X:\\L^<#?!(9$FH\":]X*:GS^PU)K7.$UIK6@'!KRJ\nM&;X -V'J[H#\\B0C(G=#<\\+R],5\\'VTE@*V4!>9$U@N::23WC1)YI6L\\XE6=:\nM&M*PZIAKPX/_(S!;RS2M(P<LA1)]W %6I-H$B ]A>94A,'! 8$ #N2-.EP0:\nM2<U4H.8*%QM%N-\"H0;HISL#_O&.SRR ?W+1 OBS;\\/;5#O M6B%2*'.P=QI_\nM8\\((!UZ%T@4[>Q:.A36U)FU=;'RQ588%O)?BO?#%WL\"_RU(M@. <@]1W?I_S\nM&0L0,JWP8-TM;-\"_,):\\%#\\?Q\\\\JS\\\\(OB5JUZ_9(('=TCE3HB<2 (<. *Y0\nMP+D?<+H+.+V^H0%PBLS#F=HHCQQ!>4:D.^R19B_ KR64YVJJU@#HV'/J)<T'\nM)4WW41N2H-I_ADX6^J:=$X@\\\\$G*]L5'F9K,25B[P#IQ_*B29.<ND*X,,O!'\nM9$\"_)\\!9F'G$%IX:\\'Y0<P90T^ RST_D<TCY:,T%1@/68H&_X<6Y>X3*-B)J\nM+&PXU*,= ]PE6#VR+RXJ9*J)@J3K-+%7^\\><T)7\\>$$H6'!^>:U__05?ZGB&\nM\"Y-!3H=HYC,Q7^&@[ 4.';R?(%]RQ$[7PK4HWB 7SX]N3LV>$RB4VG?/ %=N\nM7[B=;@NU^\":UT!D/<#UQKPH ST$,BYCIJ9J':<49H#6S(8KP\"C77-5!&$I\\J\nMP>7K\\2.4'NX]OT SG?@PJL72J)H)&H#&34'KC'<4]*J@M<*R3.X4 ?(MB<O6\nM701:VT_O]9]2_%;\\FG_X$\\RCJAQZ)7\"O7YLV75S^8]>FRA% /&@K$$\\-%'$$\nM*)^::^T(<(4_-L I*-MG@NSG_G($>/RS 54G[3W3O-()H:T1\\@FN;P W[_>5\nM0:MQ<P7H[')IA0F8N6T ]:B$HQJ<?1'\"^=\\:O=CU?8T\\_G&@1I_Q!/QD@)Q/\nM&!QUY4<.]0!ED)(!L*-U#!PBW.H8RZ5/#!R4/2W%FM/U<I1,4[-ZJK]EZ*%:\nM36Q75>K-:M!(5L*KTB.IBHETY@/,F!G=%#.*\"FN6D6:KQ)T7Z'RE5FQP1!*T\nM\".\"2EWV B\"<X=E;'ON!X@.)^]@!3!CB>$2L8((MC3SW@^!C'7N[8;1Q[20+'\nMWSAV*[\\Q0!S'[NW8<QR[@7?7<>S(,LX =QS[GV?G<>QTCKW'\\0%K$U@>UMF^\nM'\\#9YSCV4<>NY=AS'KC^VKF3.?=]?WNTLYW?L9,[V@%<.S,WE]ZQ$[KV@@%^\nM&A -N)Y[<3U&J@<,6\">U_.A2DPN/)B&\")](Y+[Z;=.#\\Q?X906:H,T>3C(D*\nM0$Q'.G X8V'.$R4P/%4#[K8+'M;L*)I=1;/G:.8TFMU&LQ]1VHM QHN'\\>8F\nM!Q(MXG\"ZG3,[8EJ+LAB^J@N[A?PAY!Z4+L-%5ILY#V(.#\\/<92CLGHUQ3VP%\nMU3]V\"N>'!#@E0ZM0<ITV.#6OV\"A%G$8ESBU ?_H1M- A?'D'7.9TN;#M+_J2\nMI=FT$JR[4>J45S@:,56ZMGGS.W0,?L!/N(,>@_ 6G':5Y!<CCPY^X'&@0,8%\nM>@G0KPP.)#IW\"C8\\74%Y\\3ZH+XHAB-NHW6)UJQ@5.ZF__>+X*Y-'#S\\P&.!,\nM#^[MW?.=QOD^^UJ2.H/Q]%)E>E(\\\\4&CZ\\<=88?HS?KK>8Z-E!?WQLF!&Q%?\nM?-6&_MST]U9D-ZFXZ8>HA9 C%]$9AO_B1L5UHD4_@+47<'+5'9Y)!$6RY].3\nMD&J[#N:V?<5)M./=!-Z&[![G9/[K,G]%T579\\4W[BM+P/P'Q?UZQZYEZ*/L5\nM<4ED_K= TM,'\\$0!DO@YZK4G]FM_O8,P[X[O+>RUA;TT:$ZGVO^V&V?ARH_+\nMJOAI!Z)%3M972]I;]?\"&O#P[45 /Q'EL66UQ_4YB5V!RFJZ'Y.&M^0-HC>'I\nM\"4*Y,EP7Y:6T)MFFC1JA.Y/R/UQ@PN<H^K^]RKB$*7GPE4[I![':K2FU=;\\N\nMNK)V*QBQUY6N7Z_8BU9QF=XYG\"^$O=3.7B3!H>O//0_N<9$8!V\"F<TB] ;[ \nM+3,P];T_S)1C'P\"84+0+*^\"WC*32%(Y74-#<XV+XCK43]VLPEZP]O_1'W QN\nM#9Y!/K2#?'26?/ &\\J7T6<]X8-T=N$\")?Q7 <^SRQL<D&PV_RD\"PE?Y*^X/]\nM(^RKP<W3D^,%S&N,$0-E8!P,_\\\"_!J2>7N4>'C<%OX$HT,J1>KP'\\PC%4RXJ\nMXH/SH1UL\"0+7)CP*:0]!> <IASI)5!)HN\"8#\\X1ZM4X?8N(M^Y&\"&[;XS>EN\nM1,*0$K[G>JK$2A-7 K/-G0=9*)(TXK,W[G]]BVFP[*;/, T1-[P7O7 )6% 1\nM6/ 66/ R4/ FF>3S3'F TIX@4G:K@WT\"G:APKHTHO=@#\\M''+_XL!,2.PZM+\nM.\",]R%97FW Y;X$\"7CYS7%\\?'9</QQI69]]5.(&D)4N3P,+&C;ZS;5<@1<5Y\nM4 Y1$:I;E5C0__^-R>]'#QS>F,\\ZFA?8[)SYGA(;ZOO:4'L(QYX[>,#IX@>D\nM+T6E6).Y58*(C?[# C^H .X3,/_.L=WX@5!U\"/RVZ4;+6L\"IKJ[J\"4CY:*E%\nMU>;L)-7G!46LUNR(&D!M^#\"[MY=:C/+^ON/XN6FL&EZ_$^CG1OHYO_[]JQ4B\nMT-<\\=D\"DJ3J&Q6MY5.)Y<]ZC*^XQM@K.(/'U'9R>'TOV *MT8*/^VP8@W ] \nM;\\XS-^>6%:\\_IU_]<KWUO?KU%M\"&23JT96@!<\\+N+<W@7&)MC3B@#C1O=T\";\nMS8%IQ7;2:2N,CAO[1'%US100H]0#.H4_47LN[:>/#^A5WMRS2WMVF#YW.70M\nM0#;\\W>YD!85@!=J :SD!(VRPH$2 4DC-<OX#OYYX^6E<>UUG%/F\\+D'8!-<A\nMKO,K\\^O[[>P!:@1.\\C]! 9K/$0Q-\"\\#\\_P?8KZ@5'VT@M.(\\.H&^:8^ *'0#\nM;3HBR8$\\!:Y?P(SVCXQ\\0.0CB!?H,5RKC.M1PZMF#J3A7DX1N4TD)=DN(,C_\nMVQN>@.5*W[B\"3IB7]@<U?^H0<#CFG?;7B?R.4NJ\"9GD$<EW\\%^%._W*05@](\nM[P\\3W(]JSG#G_3MD_/A*8TJ,AGWE\\=QD*&_I]^,AL;5=97\"\"\"N)$17C8P.S%\nM!L#82C_ '5U\")CJ'L?BH%WUBBW8G.\"A*1F4H*X!1/I?@<8-N)X#!/707!I-$\nMYX]6*$@UOX=*H W'9)R&';H!]\")S+>Y.=**;8C<Z$4^Q(YWHI]B53D14[$PG\nM4BIVIQ,Y%3O4B:B*7>I$6,5.=2*N8@=\"MJ<W<.A=;I^!2-WA;9QFPV+'T0-@\nM#:LJE+=5\"*W/-8,U4$7^[(96_ 644G: LSOL$BCEQQ4/]2/LR38::'*-G.FX\nMN/+)I098 SJHJ89W-J :%F^518^&XR27@[V/@1\"MK<)1Z-Q6IG=JD-$8]AA5\nM2I#HT6HGW)IAWA[:8Y%&H.RUG-VC\"X0-Z8;#.GRJ*G4G/'LTES]ZUOM.?W5X\nMU,&_84W&=2B,_^;%$;P#'I>7J[[QGY),5YAL>\\A_U,.[DJ_WQVT,ROT07W<$\nMV KX!_P:6F$4U?DZZ,&&4'BKTUQ75PMV=QJ>S@ :L%_U >WJ562VI)J!_^:G\nM\\K\\.\"W@5TG.C3<_0K 2:V=R^H\"E=?-CW %^UL?ONR?O3KY]>[^K8WEH;^MC0\nM/0,U=86Q_:KEM7]@V19W:\\YGFL_B<K^!KZW+]K?6215+$D_?.T!2J,CUUP&,\nMS) W'6\"SQPT@3PRU;.%,\"S>V):8I\"\"]!>'FWE8T<MX4Q4DV/ZUT[!HA\\K)-H\nMDP9L56&I85EDLD[R6)3C(P,DGGJ:'E2(L.)=M9EZ,5FB&S5EJ#XWQE&+^N1%\nM?3(GY7#[9.[)>T]W\\O79;'J3C)[&-1-:OF?U%8WJJU59A<.PX2B&Y.H<M2AQ\nM>$<R+*]M3[F^:]<,*H&18S=U;-[#VF0DK$UVQ0 V666IMM1);.%$S%K;.4;W\nMIA<O'XA]9S;?=[?_HH*'\"R J%175I!S!:KAVTYHGL)EK^UU3?T JNH3$)00'\nM\\^+8 ?P>BX [:VQE$7?83IT= !G&]C=:;C@CVT(N)X]-)&J/U[K.HKN;KJW>\nM&!\\/\\=@0\\ XELLF2 M%KQV=NX$ ,!7XN<)EZ-J-N:V!1$#[C$B87VTKKGD]L\nMHSR>5:2:< ^EA-C%,\\9J*4O9Y_ W-#LM#A5AS#C[#I)<1WVG4P0D_+Z<\"\\F:\nM(\"0[*=_#=#J8JY:SE<,9-M<8_54!79O!YAP%;-U43G>$*Y,;+I*8\" =!8ECL\nM[RWV!Z>]_0#:K_<A3MK B!02J$/E P\"X8I?BPT]]/'OBQP)N>#N*\"DH$FYW-\nMXO9PE8(:;%H] LK'KD0%Y:)8#RF*]7Q@ M934F_B\\(:D=Q3;10DUJ:!)\"@QX\nM.0V5>G;(AM,6U<CZ,@%.4U);489'-W!M.Z,C%NS9W],4RH]]SQ.EYZY)8%U!\nM'<TTU>M>*W=CY0X R71C0\\I;<'R#(L5%RHH:JJF16#M]].BDZ/@.1]2T/1]M\nM:-K;FMTW (=.,5#LRGLK3$O3GI*>L6'0_H<.P=C$M6!00F <01\\UD7'9A)6H\nM:4&86@=@;TN_%<R%D/(,RCWC>C!J8A(TCFI]563>%-2J@&%9 F-X]G4Y8KN>\nM M[$Z#:X^Z -@#-Z4>!<,W@%),>]FCIY$>*HG\"Z0W12AV3[MP8*WY?L2:_3U\nM-3K[> ,VT.AR/&(#7TO,1FR>+2C$1\"65# B%$*0=!,F'!V@3S(F3>IJ (Y0A\nM_]+D\\:,QGA_P03B]U&U$?OS0HO[OT!G*6$ $3ELTN0*C5[+HB6H@T2WL[1[5\nM(N%9V MN1W\\8 0[KAPT*(& ,T\":DZ='$!U.BD:6 SE@1L2F[HZVM<E90[I<9\nM\"@#9(\\FA947N47-(!4Z6H-6A *VEUY8]4\"\"=0I7CX+B$L]9O,N=A9CG\\\"'H0\nM$@*$(\"&<Z$+C]0?0XD<)Y+XE\"T\"Q.PW%*U.SX\\NX9H%O:WTBZ^2 I<V$;P9P\nMJQ1Z)C. ;\"2W K:(M/0%G^7$,6A E#1'GW0AE._/$XAA+7[[!2$*8%E$>4)R\nM>BN<'>T&/3;^]1M]T)H[ P>M!V)HHGHGU12D\\0]ZD0$70M.-#E!^]$%;4A)>\nM0')B]@6RKXB,15LA:-,,M#D#;9J!&[Q@6 $%B;8P^K2&T7<G'(05Z+,[0I+)\nMEK.@Q8?D%I^G,9E)?9[SQAKCQ?LN?_KK$03I3!PD^_(:RDQ'*15JA7EL@$6A\nM'I1U0!^GJ^\"&],9=__%\"9Y%#N0_N4G8].A#4)6SGN+[!<5T\"@OAW@L$U\"M[U\nMB=J+M1=$X$1/]($($[SHB1>HE]^S.U4GN3GD_9KK>_2:?S:07?$ W9SL^@G9\nM]13/:N!Y=<^.XV[1:*6@-R;*)+2-T85G&8:D$3H\"/#=V/0\"[L+VCGT'H&^+^\nM_R;ZV@*8Y?<W4*Z)B?ID#.R9/R40I9QG\"H2YT7WP(<;AEQB'/V(<439O3F1X\nMJD;>)0B6ER(N^N\"?TC$S '?$373H_21@OF)N63EB\"!2]\\ %Q4[T5<W$[@;^)\nM&\"U(W@\"2B=5Q>71]]#^+S6!S4 PC\"+0\"/:B\"5-M>PE7^0C;+0/]L<W 2&L]#\nM!H#H1W$[TJ <^?]]?!#Y(1O4#1!EP2Y0,UP'V;<4DIO.[P14XW0S8*L0>?(*\nM66Z%Q^%7BMG9'H\"-IFY^\\+@!V![A8N\\#0*@L3_4MLB<9GNJ2IWU0STC(CF3X\nMJTHHMF?BLB<!DR\\)]PS7+D2(LSU![%SP4+*/2-822W2B1TTN)%I$]IKV(M-Z\nM9%J'3'N0:1YD6H=,ZXYISS'-<TSKCFF],>TUIGF-:;T)H/#U6-.-.+6'<C53\nMM\"/H<#X1&99<,(##LY];3*S\"./(48U*T @.8B8;W0-3NUOUA\"P1!?0E!NM,=\nM<HV(HM)]>,6>\\!V3C/*=LS].HGYW(;]+^6G,\"ORD3HH9.^L^O2Y=L&*B&$G\"\nMYPEU/0BLA)FD6\\'4ED^0<3\"--]V34<Q>G ABC.D)F$SH4?D7M M@%\"(9_ :-\nM@/#<+P+1U3ZVY@0,^!Z0.*%U?,-?06&ZP@+)P>I:(8BB$LA%G$$NDG.L*?X6\nM_G4OO$M+/B,4?=<\\&<*5Q6E?GR4NL])]!=[W;F5J8MPUS\\+G_EB/M!=!3I>F\nMV@57DVA9./%CW[[3N%^)4.;ASTW[>H5KZC^8Z]1S8<_W;VA94=F3FG%&!' &\nMJ]E>5* !WW4\"A$EEVZ['DUT_^A*DX?A(RQ68C DDKHF\"$]^ET%O9EA/U8!O\\\nM2+5@7+F%0F1U&D'B*SZ#*=7[J_8,U4JF&IVAFMY0K2475.,;Q+;6>>'1I'0O\nM_'E_1.1=DP[\\ENTZ%^'->2@&Y4=2BL@65DC[=26G+1YHA8ZB%;+:DX(V0Z1T\nMKR+9/*\\7NW/I33/X3FSJ:.R)D/W89IDGV.@O8T=PX^>5:A-58'PO8U]@O\"]C\nM9[C\"4YV(W$[DW8D^&/8(NN,. Q![0X'I'30-WE;3-/$5R0S:<>&+\\;J\\%K8I\nMLS::S-@9L$U#T)MVJ&)4+&L;CL?Z,F.?8#PS8Z?0[ *--DOV\"LG<6;);2-Z8\nML5^ G!@]7%1:_[[!>%G&WB%#'1R9 +\"*CVWD!Z-*SL>X7DV<0:@R@LZ$D%![\nMADFS\"B#V!VY6\"!\"X&_=W%M6\\! +*U@;=H JT@BJ(%*I$L4PO@>)O4;LIZ(B9\nM27>!:(D#:'UM/$'09?-MQ/XKQ[VNI3M?@0S]TC-6!ZCT[P$3PG\\]9C+#5F+W\nM_0ZG4PO=@+Z>GE ZQ%VO-S ).IZO M81QO1AV>2*[/,B\"),S<&VWL$T.A;\"-\nM H*L12-@!- \".O0 /D!Z8.X#*Y;@$2!',5F)N9*( !H9F+WW@%9$81U,C=&3\nM)DB'Y%@_F)-$\"-\";-;A/CNW43P)0O2D\\;ZW75T=*2EF H2E=\"X4UA0G/80YH\nM%YRU57>;S.MDX\")!<&USW\"#)@3Q*930#.0C\"^?_+D=^/MB,G3G'%CL1DR5.8\nM=Y3AI(E\\H&7YC<!+VJ?0H':_'L/05 1/LHO@C7.+X-7=4VO_[X2'\\+K>WMW?\nM^_>AET188>BNG1_<-C1ILL+0=H!O*>': IYCS@RPN@XW=R>!D:AZ.)9\";14?\nM6KB\\L^$/G8U;,^'5G@G?\"*_X5C@LVDHXDV:I:D+/;X9FNY-+N>-B8]VN;X!5\nMTA7 E=\\\\T^&ZX8) -L*-/&B!&Z&3%;FQ;P? 4N1'7P>B1E<(/ARNZ$*\\NZ]P\nM\"?B(;2*+!TC(L@;[)NT_^!:4Z^F^L+V_B:XTMW($<R'^5I'^_F[,MR2 BOXW\nMVT$TV3.AHP[(DV=LU1S2E0Q%SSV?M#\"[@.-Y=.WHE>C^MI/Z;RSH7+F=[\\UZ\nMI_\\R4$M>G)S]@R YMYG 0'+=D6W.S3!QUYD?X,+T.B\\I_?=;M#6  F72\"5RZ\nM8\"):V62 ZVV1[>7U^Q9@.%+Q5VC?\\$A_!O(!SP< B@+G5AR;]**#N;HUV^@$\nM^2EY; #0VOW8^93^ @<78\\$(^%Y<&Y<0B[3 *_\\&P\")HIK')OI2LZV!> &Q[\nMG\"9:H2 JAKG$-9<WH#+I.CQ%7PE,7WVA-TC\"_ (XIZ15IS$A^0&AQEX,;\\(\"\nM!XCP-7M=*7U/*WO&QVIV+FD #];])16R+[[F\\HV/)D*\\^!#Y!>:/#CZS%\"S:\nM0T>N^'KW [X&&^AK!A?,4P+7;?]I/,Z)[FS(1K^:X<1IR2M.Q\\$\\W_\\?LG[Q\nML5(#GJ&5F&Z75PNQ :,,W@KL_EQ0JVUY-OH3A4B?\\*?M41@CX2CM<F'QGD.Q\n---------- cut here ----------\n-- \n    _--_|\\    Clive Mitchell               ph: +61 9 4916384\n   /      \\   Regional Network Systems     mitchell@telecomwa.oz.au\n>> *_.--._/   Perth , Western Australia\n         v\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2655, "properties": {"category": "rec.sport.baseball", "text": "From: rstimets@silver.ucs.indiana.edu (robert and stimets)\nSubject: Reds snap 5-game losing streak: RedReport 4-18\nKeywords: Finally\nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 136\n\nKevin Mitchell's sacrifice fly in the eighth off Brett Saberhagen plated \npitch runner Cesar Hernandez to give the Reds a 2-3 come-from-behind victory over \nNew York. Hernandez ran for pinch-hitter Cecil Espy, who got the inning started \nwith a solid single to right, moved to second on \"Bob\" Kelly's infield sneaker\ndown the third-base line, and to third on Jeff Branson's well-placed bunt--a \nrare show of excellent execution by the recently hapless Reds offense.\n\nCincinnati trailed 2-0 after starter Tim Pugh blinked in the fifth.  He had only \ngiven up one hit in the first four innings, a fourth-inning lead-off double\nby Vince Coleman.  Coleman was left stranded at third by Bobby Bonilla after\nJoe Orselak popped to short.  Orselak was pinch-hitting for Eddie Murray who \nargued plate umpire Kellogg's inside strike by \"drawing the line\" (really, he\nshould know better than that).  Murray, and later manager Jeff Torborg ended up getting\ntossed.\n\nThe Mets' fifth started with a Howard Johnson's first-pitch homer.  Pugh must \nhave been slightly shaken, as he was popped on the next pitch by Jeff Kent's\nsingle, then a Ryan Thompson liner to left was (surprise) misplayed by Mitchell\nand turned into a RBI triple. Catcher Hundley's grounder to the drawn-in Branson\nfailed to bring Thompson in, then the play of the game occured:\n\nSaberhagen was due up, so Reds pitching coach Larry Rothschild met with the infield\nto discuss the possibility of a suicide squeeze.  They called it perfectly:\nThompson was hung out to dry after Pugh's first-pitch pitch out and the threat ended.\n(Isn't the NATIONAL LEAGUE great??)\n\nThe Reds picked up 2 runs in the seventh to knot up the game.  After Barry Larkin's\nground out, Mitchell, Chris Sabo, and Randy Milligan got back-to-back-to-back\nsingles--the third scoring Mitchell.  Reggie Sanders then plated Sabo with a long\nfly to center.  A double by Oliver might have scored runner Dan Wilson, but\nthird base coach Dave Bristol threw up the stop sign too late--Wilson himself was\nhung out to dry killing the Reds rally.\n\nRob Dibble came on in the ninth and pitched shakily.  With two outs and a runner\non second Bonilla came to the plate and all I could think of was the Sunday game\nin late August last year when Bonilla's three-run dinger slapped a loss on\nDibble and spelled the beginning of the end for Cinci's season.  Bonilla ended\nup walking, and HoJo flied out to left to give the Reds their first win in a \nweek, and earned Dibble his third save in as many opportunities.  The win went\nto Steve Foster (1-2) who got in what must be an ego-boosting two perfect innings\nwork, striking out three.  Saberhagen (2-1) got the loss--though I'm a bit\nsurprised he even pitched in the eighth.  I'll take it, though.\n\nThe Reds are now 3-9, still the worst team in baseball with the Royals victory\ntoday.  The Mets are 6-5.\n\n\nThe Line:\n\nNew York Mets\n\n\t\t\tAB\tR\tH\t\tK\tBB\tLO\n-----------------------------------------------|----------------------------\nColeman lf\t\t4\t0\t1\t\t0\t0\t0\nFernandez ss\t\t4\t0\t0\t\t1\t0\t0\t\nMurray 1b\t\t1\t0\t0\t\t0\t0\t0\n  Orselak ph/rf\t\t3\t0\t1\t\t0\t0\t0\nBonilla rf/1b\t\t3\t0\t0\t\t2\t1\t1\nJohnson 3b\t\t3\t1\t1\t\t1\t0\t2\nKent 2b\t\t\t3\t1\t1\t\t1\t0\t0\nThompson cf\t\t3\t0\t1\t\t1\t0\t0\t\nHundley c\t\t3\t0\t0\t\t2\t0\t0\nSaberhagen p\t\t3\t0\t0\t\t0\t0\t0\n----------------------------------------------------------------------------\nTotals\t\t\t30\t2\t5\t\t8\t1\t3\n\nHR-Johnson (off Pugh, leading off fifth, 0-0 pitch) \n3b-Thompson (off Pugh, in fifth, 0 out, 1 RBI, picked-off)\n2b-Coleman (off Pugh, in fourth, 0 out, 0 on, stranded at third)\nRBI-Johnson, Thompson\n\n\nCincinnati Reds\n\n\t\t\tAB\tR\tH\t\tK\tBB\tLO\n-----------------------------------------------|----------------------------\nKelly cf\t\t4\t0\t1\t\t0\t0\t0\nBranson 2b\t\t3\t0\t1\t\t0\t0\t0\nLarkin ss\t\t3\t0\t0\t\t0\t1\t0\nMitchell lf\t\t3\t1\t1\t\t0\t0\t0\n  Dibble p\t\t0\t0\t0\t\t0\t0\t0\nSabo 3b\t\t\t4\t1\t1\t\t1\t0\t2\nMilligan 1b\t\t3\t0\t3\t\t0\t0\t0\n  Wilson pr/c\t\t0\t0\t0\t\t0\t0\t0\nSanders rf\t\t2\t0\t0\t\t0\t0\t1\nOliver c/1b\t\t3\t0\t1\t\t1\t0\t1 \nPugh p\t\t\t1\t0\t0\t\t1\t0\t0\n  Roberts ph\t\t1\t0\t0\t\t1\t0\t0\n  Foster p\t\t0\t0\t0\t\t0\t0\t0\n  Espy ph \t\t1\t0\t1\t\t0\t0\t0\n  Hernandez pr/lf\t0\t1\t0\t\t0\t0\t0\n----------------------------------------------------------------------------\nTotals\t\t\t28\t3\t9\t\t4\t1\t5 (*)\n\n(*) Oliver was stranded in the seventh after his double when Wilson was run down.\n\n2b Oliver (off Saberhagen, 2 out, runner on first, stranded)\nRBI-Milligan, Sanders, and Mitchell\nSac-Branson\nSF-Sanders and Mitchell\nIBB-Larkin\nGDP-Larkin\n\n\nNew York\t0  0  0    0  2  0    0  0  0    ---- 2-5-0\nCincinnati\t0  0  0    0  0  0    2  1  x    ---- 3-9-0\n\n\nPitching\n\n\t\t\tIP\tR\tER\tH\tK\tBB\nNEW YORK\nSaberhagen (L 2-1)\t8\t3\t3\t9\t4\t1\n\nCINCINNATI\nPugh\t\t\t6\t2\t2\t4\t4\t0\nFoster (W 1-2)\t\t2\t0\t0\t0\t3\t0\nDibble (S 3)\t\t1\t0\t0\t1\t1\t1\n\n\nPB- Wilson\nEjected-Murray, Torborg\n\nUmps-Kellogg/Relliford/Runge/DeMuth\n\nAttendance 32,435\nT- 2:23\n\n\nComing up:\nThe Reds travel to Pittsburgh for three then continue on into Chicago for\nthree.  Next game is Tuesday at 7:35, expected to pitch are Belcher (0-1)\nvs. Tomlin (0-0).\n\n\nRStimets\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2656, "properties": {"category": "sci.space", "text": "From: keithley@apple.com (Craig Keithley)\nSubject: Re: Why not give $1 billion to first year-lo\nOrganization: Apple Computer, Inc.\nLines: 80\n\nIn article <1993Apr21.150545.24058@iti.org>, aws@iti.org (Allen W. Sherzer)\nwrote:\n> \n> In article <C5sJDp.F23@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:\n> \n> >>This prize isn't big enough to warrent developing a SSTO, but it is\n> >>enough to do it if the vehicle exists.\n> \n> >Actually, there are people who will tell you that it *would* be enough\n> >to do SSTO development, if done privately as a cut-rate operation.  Of\n> >course, they may be over-optimistic.\n> \n> In spite of my great respect for the people you speak of, I think their\n> cost estimates are a bit over-optimistic. If nothing else, a working SSTO\n> is at least as complex as a large airliner and has a smaller experience\n> base. It therefore seems that SSTO development should cost at least as\n> much as a typical airliner development. That puts it in the $3G to $5G\n> range.\n> \n\nFor the purpose of a contest, I'd bet some things could be cut.  Like fuel\nfor re-entry, any kind of heat shielding, etc., etc.  Even still, if the\ncontest participants had to fund DC-1 development, it probably wouldn't be\nworth it to develop DC-1 (just for the contest).  Just give me the cheapest\nheaviest lift man rated (or at least under 6 or so Gs) booster...  If I\ndon't have to pay for DC-1 development, great!, I'll use it.\n\nBut back to the contest goals, there was a recent article in AW&ST about a\nlow cost (it's all relative...) manned return to the moon.  A General\nDynamics scheme involving a Titan IV & Shuttle to lift a Centaur upper\nstage, LEV, and crew capsule.  The mission consists of delivering two\nunmanned payloads to the lunar surface, followed by a manned mission. \nTotal cost:  US was $10-$13 billion.  Joint ESA(?)/NASA project was $6-$9\nbillion for the US share.\n\nI didn't find a mention of how long the crew could stay, but I'd bet that\nits  around 30 days.  And the total payload delivered was about 30 metric\ntonnes.  So if you ignore the scientific payload, hitch a ride in the crew\nhabitation module (no return trip...), and toss in a few more tonnes for\nthe additional consumables to last another 11 months, then you *might* be\nable to get a year visit out of 15 tonnes (and in case its not obvious,\nthat's a wild ass guess).  A pretty boring visit, since every trip outdoors\neats up a bit of LOX.  And I'm not certain if a home brewed (or\ncollege-brewed) life support system could last a year.  But let's round\nthis up to 19.4 tonnes (convient, since the GD plan talks about 9.7 ton\npayloads delivered to the lunar surface.  This adds up to two Centaurs, two\nLEVs, two Shuttle flights... All to put a single man on the moon for a\nyear.   Hmmm.  Not really practical.  Anyone got a cheaper/better way of\ndelivering 15-20 tonnes to the lunar surface within the decade?  Anyone\nhave a more precise guess about how much a year's supply of consumables and\nequipment would weigh?\n\nAnd I was wondering about the GD LEV.  Is it reusable?  Or is it discarded\nto burn up on return to LEO?  If its not discarded, could it be refueled? \nHenry: Do you know anything about the GD LEV?  I noted that it uses RL-10\nengines.  Aren't they reusable/restartable?  Would a LEV fit in a DC-1? \nI've forgotten (if I ever knew) what the cargo bay dimensions are for the\nDC-1.\n\nAll in all, I'm not certain that the single goal/prize of staying on the\nmoon for a year is wise and/or useful.  How about:  A prize for the first\nnon-government sponsered unmanned moon landing, then another for a manned\nmoon landing, then yet another for a system to extract consumables from\nlunar soil, another for a reusable earth/moon shuttle, and so forth.  Find\nsome way to build civilian moonbase infrastructure...  Having a single goal\nmight result in a bunch of contestents giving up after one person appeared\nto win.  And for those that didn't give up, I find something a little scary\nabout a half dozen people huddling in rickety little moon shelters.  I'd\nlike to see as much a reward for co-operation as for competition.\n\nLastly, about ten or fifteen years back I seem to recall that there was an\nEnglish space magazine that had an on-going discussion about moonbases on\nthe cheap.  I recalled it discussed things like how much heat the human\nbody produced, how much lunar material it'd need for protection from solar\nflares, etc.  Unfortunately I don't remember the name of this magazine. \nDoes this ring a bell to anyone?\n\nCraig Keithley                    |\"I don't remember, I don't recall, \nApple Computer, Inc.              |I got no memory of anything at all\"\nkeithley@apple.com                |Peter Gabriel, Third Album (1980)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2657, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: While Armenians are massacring innocent Azeri women and children...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 180\n\nIn article <iacovou.734063606@gurney> iacovou@gurney.cs.umn.edu (Neophytos Iacovou) writes:\n\n>>>   Historically even the most uncivilized of peoples have exhibited \n>>>   signs of compassion by allowing humanitarian aid to reach civilian\n>>>   populations. Even the Nazis did this much.\n\n>>is the world community really so powerless? Where are all those human \n>>rights advocates? Where are all the decent people? Are we going to \n>>let this human tragedy go on and do nothing about it? The number\n>>of Azeris murdered by the terrorist Armenian army and its savage\n>>gangs is increasing. \n\n>   News reporters make their living by providing stories, and there is\n>   so way in hell that they are going to confuse the public with\n>   what is happening in Armenia (a country that few know of), and\n>   risk detracting people's interest from what is happening in Serbia.\n\nThen you must be living in an alternate universe. Where were they?\n\n                An Appeal to Mankind\n\nDuring the last three years Azerbaijan and its multinational\npopulation are vainly fighting for justice within the limits of\nthe Soviet Union. All humanitarian, constitutional human rights\nguaranteed by the UN Charter, Universal Declaration of Human\nRights, Helsinki Agreements, Human Problems International Forums,\ndocuments signed by the Soviet Union - all of them are violated.\n\nThe USSR's President, government bodies do not defend Azerbaijan\nthough they are all empowered to take necessary measures to\nguarantee life and peace.\n\nThe 140,000 strong army of Armenian terrorists with Moscow's\ntacit consent wages an undeclared war of annihilation against\nAzerbaijan. As a result, a part of Azerbaijan has been occupied\nand annexed, hundreds of people killed, thousands wounded.\n\nSome 200,000 Azerbaijanis have been brutally and inhumanly\ndeported from the Armenian SSR, their historical homeland.\nTogether with them 64,000 Russians and 22,000 Kurds have also\nbeen driven out, a part of them now settled in Azerbaijan.\nSome 40,000 Turkish-Meskhetians, Lezghins and representatives \nof other Caucasian nationalities who escaped from the Central\nAsia where the President and government bodies did not guarantee\nthem the life and peace also suffered from these deportations.\n\nOne of the scandalous vandalisms directed not only against\nAzerbaijan science but the world civilization as well is the\nArmenian extremists' destruction of the Karabakh scientific\nexperimental base of The Institute of Genetics and Selection \nof the Academy of Sciences of the Azerbaijan SSR.\n\nWe beg you for humanitarian help and political assistance,\nfor the honour and dignity of 7 million Azerbaijanis are\nviolated, its territory, culture  and history are trampled,\nits people are shot. There is persistent negative image of\nAzerbaijanians abroad, and this defamation is spread over \nthe whole world by Soviet mass media, Armenian lobby in the\nUSSR and the United States. \n\nOne of the myths is that all events allegedly involves and\ngenerated by interethnic collisions and religious intolerance\nwhile the truth is that all these shootings and recent \nevents stem from the territorial claims of Armenia on\nAzerbaijan.\n\nIt is a well documented fact that before the conflict there\nwere no frictions between Armenians and Azerbaijanis on the\nissue of Karabakh. Hundreds and thousands Armenians placidly\nand calmly lived and worked in Azerbaijan land, had their\nrepresentatives in all government bodies of the Azerbaijan\nSSR.\n\nWe are for a united, indivisible, sovereign Azerbaijan, we \nare for a common Caucasian home proclaimed in 1918 by one\nof the founding fathers of the Azerbaijan Democratic \nRepublic - Muhammed Emin Rasulzade.\n\nBut all these goals and expectations are trampled upon the\nSoviet leadership in favour of the Armenian expansionists\nencouraged by Moscow and intended to create a new '1,000\nYear Reich' - the 'Great Armenia' - by annexing the \nneighboring lands.\n\nThe world public opinion shed tears to save the whales,\nsuffers for penguins dying out in the Antarctic Continent.\n\nBut what about the lives of seven million human beings?\nIf these people are Muslims, does it mean that they are\nless valuable? Can people be discriminated by their \ncolour of skin or religion, by their residence or other\nattributes?\n\nAll people are brothers, and we appeal to our brothers\nfor help and understanding. This is not the first appeal\nof Azerbaijan to the world public opinion. Our previous\nappeals were unheard. However, we still carry the hope\nthat the truth beyond the Russian and Armenian propaganda\nwill one day reveal the extent of our suffering and\nstimulate at least as much help and compassion for\nAzerbaijan as tendered to whales and penguins.\n\n\t\tTHE COMMITTEE FOR PEOPLE'S HELP TO \n                KARABAKH (OF THE) ACADEMY OF SCIENCES \n                OF THE AZERBAIJAN SSR\n\n>   Everyone knows this, even the Turks know this, you know this. Give\n>   us a time period when the world is currently boring, and what is\n>   happening in Armenia would make front page headlines. Think I'm lying?\n>   Take a look at what happened in Somalia. When did the press report\n>   it to the world?\n\nBut perhaps Turkiye should intervene in the affairs of the Caucasus\nin the name of peace and democracy. The Armenians are Christians, the\nAzerbaijanis are Moslems, and Islam is a religion especially unloved\nby the democrat-westernizers. Besides, at the root of this conflict\nlie the territorial claims on Azerbaijan, a consequence of which\nwere the blood and suffering of innocent Azeri people, hundreds of\nthousands of refugees, and gross violations of human rights. \n\nRecently Armenians attacked the Azeri town of Khojaly and massacred\nthousands of Azeris. The Paris-based 'Association for Democracy and\nHuman Rights in Azerbaijan' puts the number of Khojali victims\nat 3,145. Some of the dead were scalped and mutilated. This whole\nthing has now gone entirely too far.\n\n>   Want to know what will bring the story in Armenia to the front\n>   page? If the Russians move into the area with a shit load of tanks\n>   THEN your human rights advocates will show up defending the Armenians.\n>   Of course we can also be sure that the Russians won't show up with \n>   any tanks, not with the problems they are having at home.\n\nThey already did. The scenario and genocide staged by the Armenians \n78 years ago in the Ottoman Empire is being reenacted again - this \ntime in Azerbaijan. There are remarkable similarities between the \nplots, the perpetrators, and the underdogs. \n\nReport taken from The New York Times, Tuesday, March 3, 1992\n\n                    MASSACRE BY ARMENIANS BEING REPORTED\n\n     Agdam,Azerbaijan,March 2 (Reuters) - Fresh evidence emerged today \nof a massacre of civilians by Armenian militants in Nagorno-Karabakh, \na predominantly Armenian enclave of Azerbaijan.\n     The republic of Armenia reiterated denials that its militants had killed\n1,000 people in the Azerbaijani populated town of Khojaly last week and \nmassacred men, women and children fleeing the carnage across snow-covered\nmountain passes.\n     But dozen of bodies scattered over the area lent credence to Azerbaijani\nreports of a massacre.\n\n                         Scalping Reported\n     Azerbaijani officials and journalists who flew briefly to the region\nby helicopter brought back three dead children with the back of their\nheads blown off. They said shooting by Armenians has prevented them \nfrom retrieving more bodies.\n     \"Women and children have been scalped,\" said Assad Faradshev, an aide\nto Nagorno-Karabakh's Azerbaijani Governor. \"When we began to pick up bodies,\nthey began firing at us.\"\n     The Azerbaijani militia chief in Agdam, Rashid Mamedov, said: \"The bodies\nare lying there like flocks of sheep. Even the fascists did nothing like this.\"\n                         \n                         Truckloads of Bodies\n     Near Agdam on the outskirts of Nagorno-Karabakh, a Reuters photographer,\nFrederique Lengaigne, said she had seen two trucks filled with Azerbaijani\nbodies.\n     \"In the first one I counted 35, and it looked as though there were as\nmany in the second,\" she said. \"Some had their head cut off, and many had\nbeen burned. They were all men, and a few had been wearing khaki uniforms.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2658, "properties": {"category": "rec.autos", "text": "From: wrat@unisql.UUCP (wharfie)\nSubject: Re: Too fast\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 22\n\nIn article <1qmcih$dhs@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>They light the highways in Texas?  Funny, everywhere else I've been\n>they only light 'em at junctions.\n\n\tAnd armadillo crossings.\n\n>Texas is pretty much an edge-case -- you can't assume that everywhere\n>has roads in such good condition, such flat terrain, and such\n>wide-open spaces.  It just ain't so.\n\n\tWell, let's see, in just my own _personal_ experience there's\nNevada, New Mexico, Texas, Wyoming, Utah, South Dakota, Nebraska, \nMinnesota, Montana, Florida, and parts of Louisianna.\n\n\tNobody said \"Let's go into town and drive 130 on Main St.\"\nAnd you couldn't go that fast on the graveled washboard that passes\nfor highway in some parts.  But that \"only really expensive cars should\nbe driven fast\" crap, is, well, crap...\n\n\t\t\t\t\t\t\t\twr\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2659, "properties": {"category": "rec.sport.hockey", "text": "From: hammerl@acsu.buffalo.edu (Valerie S. Hammerl)\nSubject: Re: Octopus in Detroit?\nOrganization: UB\nLines: 16\nNntp-Posting-Host: autarch.acsu.buffalo.edu\n\nIn article <1993Apr17.062622.25380@news.clarkson.edu> farenebt@logic.camp.clarkson.edu (Droopy) writes:\n\n>In fact, the tradition has been passed down to their affiliate\n>in Adirondack. In Gm 6 of last yr's finals, an 8 legged creature was\n>hurled onto the frozen pond and landed right at the feet of ref\n>Lance Roberts.\n\nIt may have been passed to Toronto, but I've even seen an octopus at\nthe Aud -- last year's Bruins-Sabres game.  I knew all about the\nDetroit version, but seeing at the Aud was a bit puzzling.  :-)\n\n-- \nValerie Hammerl\t\t\tBirtday -(n)- An event when friends get \nhammerl@acsu.buffalo.edu\ttogether, set your dessert on fire, then\nacscvjh@ubms.cc.buffalo.edu\tlaugh and sing while you frantically try \nv085pwwpz@ubvms.cc.buffalo.edu  to blow it out.  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2660, "properties": {"category": "comp.sys.mac.hardware", "text": "From: HK.MLR@forsythe.stanford.edu (Mark Rogowsky)\nSubject: Re: IINTX Upgrade?\nOrganization: Stanford University\nLines: 27\nNNTP-Posting-Host: morrow.stanford.edu\n\nIn article <1pqprtINNf2@escargot.xx.rmit.OZ.AU>,\ns912013@minyos.xx.rmit.OZ.AU (Douglas Barry Mcpherson) writes:\n>Could someone please tell me what a\n>\n>LaserWriter IINTX upgrade kit is.\n>\n>Its a small box, which has a bag inn it , seemingly\n>containing 6 chips (look like ROMS) and a IINTX manual.\n>The installation instructions are most informative and say, in full,\n>\"This product must be installed by an Apple .........\"\n>\n>SO what does this do ? At first I thought it might be a NT to NTX\n>upgrade, but I thought that required an entirely new board.\n>\n>Any info appreciated.\n>\n>Doug.\n\nThe kit is for an already existing Laserwriter IINTX. It is a ROM\nupgrade that replaces the font rasterizer code with the more\nefficient, speedier code that first became available in Adobe Type\nManager 1.0.\n\nThat software came out after the original NTXes and the so-called\nATM rasterizer is now standard on Postscript printers.\n\nMark\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2661, "properties": {"category": "soc.religion.christian", "text": "From: bruce@liv.ac.uk (Bruce Stephens)\nSubject: Re: sex education\nOrganization: The University of Liverpool\nLines: 22\n\nJoe Kellett (jkellett@netcom.com) wrote:\n[bits deleted]\n> I am told that Planned Parenthood/SIECUS-style \"values-free\" methods, that\n> teach contraceptive technology and advise kids how to make \"choices\",\n> actually _increase_ pregnancy rates. I posted a long article on this a while\n> back and will be happy to email a copy to any who are interested. [...] \n\n> The same research produced the results that abstinence-related curricula\n> were found to _decrease_ pregnancy rates in teens.  I assume that it is\n> reasonable to assume that the AIDS rate will fluctuate with the pregnancy\n> rate.\n\nI'd be fascinated to see such evidence, please send me your article!\nOn the negative side however, I suspect that any such simplistic link\n    abstinence-education => decreased pregnancy,\n    contraceptive-education => increased pregnancy\nis false.  The US, which I'd guess has one of the largest proportion of \n\"non-liberal\" sex education in the western world also has one of the highest\nteenage pregnancy rates.  (Please correct me if my guess is wrong.)\n\n--\nBruce Stephens     bruce@liverpool.ac.uk\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2662, "properties": {"category": "sci.space", "text": "From: nether@bigwpi.WPI.EDU (Joel C Belog)\nSubject: Space Shuttle information wanted\nOrganization: Worcester Polytechnic Institute\nLines: 15\nNNTP-Posting-Host: bigwpi.wpi.edu\n\n\n\nHello everyone,\n\n\tI was hoping someone could help me out.  I'm writing a program\n\tfor my astronautics class for assent of the shuttle into a low\n\torbit.  There are two things I'd like to know, First, how much \n\ttime elapses between launch and the pitch over. Second, what is\n\tthe cross-sectional area of the shuttle, srb's, and ext. tank.\n\n\tThanks for any information, post or e-mail.\n\n\tJoel Belog\n\tnether@wpi.wpi.edu\n\t\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2663, "properties": {"category": "rec.autos", "text": "From: aas7@po.CWRU.Edu (Andrew A. Spencer)\nSubject: Re: It's a rush... (was Re: Too fast)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 34\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, gwm@spl1.spl.loral.com (Gary W. Mahan) says:\n\n>>Why should a good driver be terrified at 130mph? The only thing I fear\n>>going at 130 are drivers, who switch to the left lane without using\n>>either rear-view-mirror or flashers. Doing 130 to 150 ain't a rush\n>>for me, but it's fun and I get where I want to go much faster.\n>\n>In defense of the drivers, who are in the right lane.  Here in the states, people simply do not expect when they are driving to be overtaken at a speed differential of 50+mph.  I don't think this is because they are stupid (of course, there are exceptions), they are just programmed because of the 55mph limit. Do you (in the states) when you look in the rear-view ALWAYS calculate future  positions of cars based on a 50+ speed differential.  \n>Dont get me wrong, I love to drive in the left lane fast but when I overtake\n>cars who are on the right, I slow down a tad bit. If I were to rely on the judgement of the other car, to recognize the speed differential, I would be the stupid one.  \n\njust to satiate my curiosity, why would this make you the stupid one?  It seems\nto me, everybody SHOULD be aware enough of what is going on.  You do not need\nto calculate the future position.  You need to look at your mirrors a little\nmore.  If you glance around, you will be able to tell how much faster than you\nthe car is going.  Maybe not precisely, but well enough to know if you should\nlet him around before you try to pass.  I know what you are talking about,\nabout the other driver being startled, because i myself have been startled\nby drivers cruising by at around 90-100mph when i'm doin 55-65.  The problem,\nthough, as i saw it, was not their fault for barreling around me, but my fault\nfor not paying the attention to my task-at-hand that i should have been.\nOddly enough, since the 2nd time(happened 2x in around 4 mo. when i'd had my\nliscence for around 6 mo), i haven't been startled..and i've been passed by\ncars doing roughly twice the speed of my car.  Another odd occurance is the\nfact that this only seems to happen on LONG trips...and if i drive along with\nthem, it doesn't happen at all :-) even on the long trips! :-)  (adrenaline\nwill do that to you...i've had bad cop experiences with speeding, so anything\nover the limit is adrenalizing for me...scared i'll get caught :-)  Maybe\nthey should raise the limit, so we can pay better attention.....\n\njust curious, and my .otwo\n\nDREW\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2664, "properties": {"category": "sci.electronics", "text": "From: et@teal.csn.org (Eric H. Taylor)\nSubject: Re: Electronic Tesla Coils\nSummary: Real World Applications\nKeywords: tesla, coil, osc, flyback, transformers, wireless, emi, ac, ignition\nNntp-Posting-Host: teal.csn.org\nOrganization: 4-L Laboratories\nDistribution: World\nExpires: Fri, 30 Apr 1993 06:00:00 GMT\nLines: 48\n\nIn article <1993Mar25.161909.8110@wuecl.wustl.edu> dp@cec1.wustl.edu (David Prutchi) writes:\n>In article <C4CntG.Jv4@spk.hp.com> long@spk.hp.com (Jerry Long) writes:\n>>Fred W. Culpepper (fculpepp@norfolk.vak12ed.edu) wrote:\n>>[...]\n>>A couple of years ago I put together a Tesla circuit which\n>>was published in an electronics magazine and could have been\n>>the circuit which is referred to here. This one used a\n>>flyback transformer from a tv onto which you wound your own\n>>primary windings. It also used 2 power transistors in a TO 3\n>[...]\n>10 years ago I built a 1'000,000 volt Tesla, and the thing was VERY\n>spectacular, but besides scaring/amazing friends (depending on their\n>knowledge of Science), and generating strong EMI, I never found anything\n>useful that could be done with it ...  Is there any real-world application\n>for Tesla coils today ?\n>\n>David Prutchi\n\nFirst of all, realize that Tesla invented AC power generators, motors,\ntransformers, conductors, etc. Technically, *ALL* transformers are Tesla\ncoils.  In general though when someone refers to a Tesla coil, they mean\nan \"air core resonant transformer\". The TV flyback version Tesla\ncoil (see the _Encyclopedia_of_Electronic_Circuits_ V3, 106-1 for\ndiagram) has NOT an air core. It is of a class of circuit called\n\"Oscillating Shuttle Circuit\" (OSC). Generally OSC's are highly\nefficient, but this version uses transistors and resistors,\nwhich are very lossy devices. Typically Tesla used active\nreactances instead of passive resistors, so that he could achieve\nefficiencies of 99.5%, and better. The usual application of an air-core\nresonant transformer, or of an OSC, is to produce strong EMI\nfor wireless broadcasts. How well do you think your computer\nscreen would work if we removed the HF HV Tesla (flyback) coil\nfrom it? If we were to remove from our homes and industries all\nTesla coils, our lights would go dark, our cars would sputter\nand die, our radios would go silent, our industries would grind\nto a halt, and we would have to go back to using coal for heat,\ngas for lamps, horses for transportation, steam for power, and\ntelegraph for communication. Is that real world enough for you???????\n\nGET THE MESSAGE! WE WOULD NOT HAVE 1/100 THE CONVIENIENCES WE HAVE\nTODAY IF NOT FOR TESLA. GIVE CREDIT WHERE CREDIT IS DUE!\n\nIf it had been up to Edison, we'd still be in the 19th century.\n(flame me at your own peril. I'm very good at putting edison down).\n\n----\n ET   \"Tesla was 100 years ahead of his time. Perhaps now his time comes\".\n----\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2665, "properties": {"category": "comp.sys.mac.hardware", "text": "From: pilon@aix02.ecs.rpi.edu (T.J. Pilon)\nSubject: My IIcx won't turn on...\nNntp-Posting-Host: aix02.ecs.rpi.edu\nLines: 14\n\nAnyone know what would cause my IIcx to not turn on when I hit the keyboard\nswitch?  The one in the back of the machine doesn't work either...\nThe only way I can turn it on is to unplug the machine for a few minutes,\nthen plug it back in and hit the power switch in the back immediately...\nSometimes this doesn't even work for a long time...\n\nI remember hearing about this problem a long time ago, and that a logic \nboard failure was mentioned as the source of the problem...is this true?\n\n\n\t\tThanks,\n\t\tT.J. Pilon\n\t\tpilon@rpi.edu\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2666, "properties": {"category": "rec.motorcycles", "text": "From: jld@hpfcso.FC.HP.COM (Jeff Deeney)\nSubject: Re: Re: Inverted Fork needed\nOrganization: Hewlett-Packard, Fort Collins, CO, USA\nLines: 18\n\nIn rec.motorcycles, Matthew Mark Mueller <mm7k+@andrew.cmu.edu> writes:\n> Help!\n> \n> I need the left side inverted fork for a 92' GSX-R 750 so I can go to\n> track practice at Nelson Ledges next weekend.  \n\nHey, what do we look like, a parts store?  Has it ever occurred to you to\nvisit your dealer and fork out the bucks for a new one?  What are the\nchances of someone happening to have a '92 part laying around, much less\none in working condition?  Sheesh, some edu's.  \n\nBesides, I only have the right side inverted GSX-R fork.  It's already been\nconverted into a floor lamp. \n\n-Jeff Deeney-  DoD#0498    NCTR                '88 XR600-Shamu \njld@hpfcla.fc.hp.com       AMA#540813  COHVCO  '81 CB750F-Llamaha \nIt's too bad that whole families have to be torn apart by something as\nsimple as wild dogs.          -Jack Handey\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2667, "properties": {"category": "sci.electronics", "text": "From: johnh@macadam.mpce.mq.edu.au (John Haddy)\nSubject: Re: Help with ultra-long timing\nOrganization: Macquarie University\nLines: 60\nDistribution: world\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\n\nIn article <1993Apr5.083324.48826@kuhub.cc.ukans.edu>, wellison@kuhub.cc.ukans.edu writes:\n|> I have a project that was drooped in my lap that is somewhat a pain to design.\n|> What I am looking for is a stable ultra-long solid state timer. What they want\n|> to do is to place this thing on the Antartic ice shelf and measure the amount\n|> of snow fall over a period of six weeks. Every two weeks, they want to trip a\n|> selonoid to discharge different colored pellets by gas pressure out across the\n|> snow. Then by digging down into the snow, the snow fall amount can be measured\n|> as they come to the different color pellets.\n|> \n|> The problem is trying to build a timer that would stand the cold (-40 degrees)\n|> and a power source that wouldn't drain. I have looked at the XR-2204 timers and\n|> the standard NE556 dual timers, but thier temp specs won't go that low. Also,\n|> two weeks equates to 1,209,600 seconds per firing, which means one big timing\n|> cap ! I have found 2.2 farad (yes, Farad !) caps that have a working voltage of\n|> 5 volts and are small in size. But again, the time of discharge at -40 or lower\n|> degrees isn't linear. I was thinking of using several timers chained together \n|> to fire the selonid at the end of the timing period, but that blasted cold and\n|> the drain on a battery over six weeks is the pain. One possibility would be to\n|> use solar panels, but this is during the six month twilight. Anyone have any\n|> good ideas ?\n|> \n|> Thanks in advance...\n|> \n|> -=-= Wes =-=-\n\nFirstly, I would never consider trying to make a one-shot timer. Your 2F2 cap\nwill have been designed as a RAM battery substitute, rather than for use in\napplications where you wish to drain the cap with a constant current. Their\nperformance, in some respects, is more akin to batteries than to a normal cap.\nThe other point is that big electro's are usually rated with -5%+20% tolerances,\nso calculating exactly what capacitance you have (particularly when considering\nthe cold).\n\nYou should be looking at designing a micropower oscillator and divider chain,\nthat \"rolls over\" (from zero to maximum count, or vice-versa) once every\n1,209,600 seconds. If you were to use something like a 110Hz clock, you would\nneed a divider chain of 2^27, to give an error of less than one percent in the\nfiring times over the six week period. Of course, you could trim the 110Hz\noscillator to give you exact time, but the likelyhood of the oscillator\nremaining exactly constant at -40 is low anyway.\n\nI would suspect that there would be far more battrey drain in firing the\nsolenoid than there would be in the timer circuit.\n\nCaveat - I'm not experienced in low temperature electronics, so I can't\nguarantee that this (or any other) approach is the best for inhospitable\nconditions.\n\nJohnH\n\n----------------------------------------------------------------------------\n\n      |  _  |_   _   |_|  _   _|  _|              Electronics Department\n    |_| (_) | | | |  | | (_| (_| (_| \\/           School of MPCE\n    ---------------------------------/-           Macquarie University\n                                                  Sydney, AUSTRALIA 2109\n\n    Email: johnh@mpce.mq.edu.au, Ph: +61 2 805 8959, Fax: +61 2 805 8983\n\n----------------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2668, "properties": {"category": "comp.graphics", "text": "From: hwstock@snll-arpagw.llnl.gov (stockman harlan w)\nSubject: hp2xx for DOS\nOrganization: Sandia National Laboratories\nLines: 3\n\n\nIs there a precompiled version of hp2xx for DOS out there - prefereably\nfor 386/486?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2669, "properties": {"category": "comp.sys.mac.hardware", "text": "From: peterco@eff.org (Peter Cohen)\nSubject: Re: Asante EN/SC PB adaptor won't work with duo 230\nOriginator: peterco@eff.org\nNntp-Posting-Host: eff.org\nOrganization: The Electronic Frontier Foundation\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 23\n\nBill Kurland (bill@panix.com) wrote:\n\n: I guess this changes my opinion of them and I thought I would warn\n: any prospective customers for the EN/SC PB.\n\nFWIW, I work for FOCUS Enhancements, and a lot of the people we sell our\nEtherLAN SC/SC-T (our SCSI Ethernet interface) are disgruntled EN/SC\nusers.\n\n: I also now need to know if anyone has been successful with the\n: comparable product from Dayna or Focus. I really don't want to use up\n: that NuBus slot.\n\n*Sigh*.  I wish I had better news.  The FOCUS EtherLAN SC is currently\nincompatible with the Duos.  This may change in the future.  We do have\nApple Register Compatible cards that are 100% compatible with the\nDuoDocks, though.\n\nSend questions to focus@applelink.apple.com.\n-- \n+-----------------+------------------------------------------------+\n| Peter A. Cohen  |         I'd rather be telecommuting.           |\n+-----------------+------------------------------------------------+\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2670, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: Clinton's immunization program\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 33\n\nIn article <C5JoBH.7zt@apollo.hp.com> goykhman@apollo.hp.com (Red Herring) writ\nes:\n>In article <1993Apr14.122758.11467@magnus.acs.ohio-state.edu> jlinder@magnus.a\ncs.ohio-state.edu (Jeffrey S Linder) writes:\n>>In article <C5FJsL.6Is@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR\n.C\n>>OM (Mark Wilson) writes:\n>>>On the news last night Clinton was bashing the republicans for stonewalling\n>>>his so called stimulus package.\n>>>It seems that one small item within this package was going to pay for free\n>>>immunizations for poor kids.\n>>\n>>Immunizations for children in this country are already free if you care to\n>>go have it done.  The problem is not the cost, it is the irresponible parents\n>>who are to stupid or to lazy to have it done.\n>\n>    In case you haven't noticed, Clintonites are pushing a universal health\n>    care ACCESS program.  \"Access\" here means that folks who do not give\n>    a damn about immunizing their children will have health care services\n>    delivered to their doorsteps.\n>\n>\n\nExcuse me for sticking my nose in, but any parent/parents who do not allready \nimmunize their children (especially if it is already free), don't deserve one \nfrigging dime of tax money for health care for themselves, or public health \ncare service.\n\n(I know the immunization program and the coming national health care issue are \nslightly seperate issues, but anybody who wouldn't help their kids, don't \ndeserve my tax help).\n\nryan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2671, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: csyphers@uafhp..uark.edu (Chris Syphers)\nSubject: Re: ?? DOS font size in windows??\nOrganization: Kansas State University\nLines: 20\nNNTP-Posting-Host: uafhp.uark.edu\n\nssa@unity.ncsu.edu (S. Alavi) writes:\n\n\n>\tI have an 8514/A card, and I am using windows in 1024x768 mode \n>\t(normal 8514/A font, not small).  In the 386 enhanced mode\n>\tthe DOS window font is too small for my 14\" monitor. Is there a \n>\tway to spacify the font size for the DOS window? You'll have to \n>\texcuse me if there is a trivial answer, since I am fairly new to\n>\tMS Windows world.\n\n>\tThanks.\n\n>\t(Please include this message for reference)\n>\t======  S. Alavi    [ssa@unity.ncsu.edu]  (919)467-7909 (H)  ========\n>\t\t\t\t\t\t  (919)515-8063 (W)\nThe control box of the Window itself (upper left corner of the window, single\nclick, am I being too simplistic?) has a font option. The 8 X 12 is about the\nbiggest one I can use without the characters turning funky. \n\nHpoe this helps.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.123+0000", "event": "documents", "entityId": 2672, "properties": {"category": "talk.politics.mideast", "text": "From: DSHAL@vmd.cso.uiuc.edu\nSubject: Re: Clintons views on Jerusalem\nOrganization: C.C.S.O.\nLines: 10\n\nIt seems that President Clinton can recognize Jerusalem as Israels capitol\nwhile still keeping his diplomatic rear door open by stating that the Parties\nconcerned should decide the city's final status. Even as I endorse Clintons vie\nw (of course), it is definitely a matter to be decided upon by Israel (and\nother participating neighboring contries).\nI see no real conflict in stating both views, nor expect any better from\npoliticians.\n-----\nDavid Shalhevet / dshal@vmd.cso.uiuc.edu / University of Illinois\nDept Anim Sci / 220 PABL / 1201 W. Gregory Dr. / Urbana, IL 61801\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2673, "properties": {"category": "sci.med", "text": "From: turpin@cs.utexas.edu (Russell Turpin)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: CS Dept, University of Texas at Austin\nLines: 123\nDistribution: inet\nNNTP-Posting-Host: im4u.cs.utexas.edu\nSummary: More in response to Lee Lady.\nKeywords: science   errors   Turpin   NLP\n\n-*----\nI think that part of the problem is that I have proposed a\ndefinition of science that I intended to be interpreted broadly\nand that Lee Lady has interpreted fairly narrowly.  My definition\nis this: Science is the investigation of the empirical that avoids\nmistakes in reasoning and methodology discovered from previous\nwork.  Lee Lady writes:\n\n> I don't think that science should be defined in a way that some \n> of the activities that lead to really important science --- namely\n> thinking and informal exploration --- are not recognized as\n> scientific work.  \n\nUnless one classifies \"thinking and informal exploration\" as a\nmistake, they fall under my definition.  I hope no one would\nconsider speculation, thinking, and informal exploration as\nunscientific.  \n\nIn article <C5nAsF.MH7@news.Hawaii.Edu> lady@uhunix.uhcc.Hawaii.Edu (Lee Lady) writes:\n> Seriously, I'm not sure whether I misjudged you or not, in one respect.  \n> I still have a major problem, though, with your insistence that science \n> is mainly about avoiding mistakes. ...\n\nHere is where I think we are talking at cross-purposes.  It is not\nclear to me that the kind of definition I have proposed should be\ntaken as describing what \"science is mainly about.\"  Consider,\nfor example, a definition of invertebrates as all animals lacking\na backbone.  This fairly tells what is an invertebrate and\nwhat is not an invertebrate, but it hardly tells you what\ninvertebrates are all about.  One can read this definition and\nstill not know that 95% of all animal species are invertebrates,\nthat invertebrates possess a remarkably broad range of form, that\nsome invertebrate groups -- such as insects and nematodes -- are\nubiquitous in all ecosystems, etc.  In short, knowing the\ndefinition of invertebrates does *not* tell one what they are\n\"mainly about.\"\n\nThe misunderstanding here is my fault.  I did not give sufficient\ncontext for people to understand my proposed definition.\n\n> Okay, so let's see if we agree on this: FIRST of all, there are degrees \n> of certainty.  It might be appropriate, for instance, to demand carefully \n> controlled trials before we accept as absolute scientific truth (to the \n> extent that there is any such thing) the effectiveness of a certain \n> treatment. On the other hand, highly favorable clinical experience, even \n> if uncontrolled, can be adequate to justify a *preliminary* judgement that\n> a treatment is useful. ...\n>\n> SECONDLY, it makes sense to be more tolerant in our standards of \n> evidence for a pronounced effect than for one that is marginal.  \n\nI agree on both counts.  As an example of the second, it would only\ntake a few cases of curing rabies to convince most veterinarians\nthat a treatment was effective, despite a lack of controls.  \n\nAs to the first, I do not think it is useful to talk about\n\"absolute scientific truth.\"  I think it is more useful to talk\nabout the kinds of evidence that various claims have and the\nkinds of evidence IN PARTICULAR FIELDS that in the past have\nproven faulty or reliable.  The latter is obviously a matter of\ndegree, and in each field, practitioners try to discover the\nrelevance of different kinds of evidence.  \n\nOne of the primary mistakes that marks the advocacy of an idea as\npsuedo-science is that the advocacy lacks any sense of proportion\nregarding the kinds of evidence related to the proposed claim,\nthe kinds of evidence that are actually relevant to it, and the\nhistorical reasons in the field that certain kinds of evidence\nare given more weight than others.  It is perfectly alright to\nspeculate.  I have read quite a few refereed papers that\nspeculated left and right.  But the authors were careful to\nidentify the notions as speculative, to list what little evidence\nwas presently available for them, and to describe how research\ncould proceed to either put the notion on more firm footing or to\nuncover its problems.  Often what distinguishes whether a paper\nof this sort passes muster is the thoughtfulness with which the\nauthor sets the context and paves the way for future work.  (It\nis in this area that many proponents of speculative ideas fail.)\n\n> The folks over in sci.psychology have a hundred and one excuses not to\n> make this simple test.  They claim that only an elaborate outcome study\n> will be satisfactory --- a study of the sort that NLP practitioners, \n> many of whom make a barely marginal living from their practice, can ill \n> afford to do.  (Most of them are also just plain not interested, because \n> the whole idea seems frivolous.  And since they're not part of the\n> scientific establishment, they have no tangible rewards to gain \n> from scientific acceptance.) \n\nI think a lot of scientists steer away from things that --\ndeserving or not -- garner a patina of kookiness.  When\nproponents of some practice see no value in more careful\ninvestigation of that practice, that sets alarms ringing in many\nresearchers' minds.  \n\nThis is unfortunate, because there is undoubtedly some\nintersection between things that are worth investigating and\nthings that are advocated by those who seem careless or\nunreasonable in their advocacy.  On the other hand, I can\nunderstand why many scientists would just as soon select other\ndirections for research.  As Gordon Banks has pointed out, no one\nwants to become this generation's Rhine.\n\n> One academic in sci.psychology said that it would be completely \n> unscientific for him to test the phobia cure since it hasn't \n> been described in a scientific journal. ...\n\nI think this is absurd.  \n\n> Actually, at least one fairly careful academic study has been done \n> (with favorable results), but it's apparently not acceptable because\n> it's a doctoral dissertation and not published in a refereed journal.\n\nI wonder why the results were not published.  In my field,\ndissertation results are typically summarized in papers that are\nsubmitted to journals.  Often the papers are accepted for\npublication before the dissertation is finished.  (This certainly\neases one's defense.)\n\nFinally, I hope Lee Lady will forgive me from commenting either\non NLP or the discussion of it in sci.psychology.  I know little\nabout either and so have nothing to offer.\n\nRussell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2674, "properties": {"category": "talk.politics.guns", "text": "From: whughes@lonestar.utsa.edu (William W. Hughes)\nSubject: Re: BATF/FBI revenge\nKeywords: BATF FBI Korash \"child abuse\"  guns murder CONTROL\nNntp-Posting-Host: lonestar.utsa.edu\nOrganization: University of Texas at San Antonio\nLines: 20\n\nIn article <2077@rwing.UUCP> pat@rwing.UUCP (Pat Myrto) writes:\n>I am sick, dismayed, discouraged.  And ASHAMED of our Administration.\n>\n>Anybody for impeachment?\n\nI have already called senators, legislators and the Governor demanding\nthat the warrants be unsealed, and that all involved in this atrocity\n(including the President, Attorney General and Governor) be suspended\npending an investigation.\n\nI seriously doubt, however, that anything will ever be done.\n\n\nWelcome to Amerika!\n\n\n-- \n                            REMEMBER WACO!\n     Who will the government decide to murder next? Maybe you?\n[Opinions are mine; I don't care if you blame the University or the State.]\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2675, "properties": {"category": "sci.electronics", "text": "From: cam@castle.ed.ac.uk (Chris Malcolm)\nSubject: CASIO SF7500 SERIAL LINK\nOrganization: Edinburgh University\nLines: 8\n\nThe Casio 7500 lectric diary has a 3-wire serial interface with param\nsetting like RS232, for which one get a magic but expensive cable to\nconnect to a PC. Does anyone know the spec of this interface, e.g., it\nneeds inverting and boosting from CMOS signals to match RS232 lines?\n-- \nChris Malcolm    cam@uk.ac.ed.aifh          +44 (0)31 650 3085\nDepartment of Artificial Intelligence,    Edinburgh University\n5 Forrest Hill, Edinburgh, EH1 2QL, UK                DoD #205\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2676, "properties": {"category": "comp.graphics", "text": "From: osprey@ux4.cso.uiuc.edu (Lucas Adamski)\nSubject: Fast polygon routine needed\nKeywords: polygon, needed\nOrganization: University of Illinois at Urbana-Champaign\nLines: 6\n\nThis may be a fairly routine request on here, but I'm looking for a fast\npolygon routine to be used in a 3D game.  I have one that works right now, but\nits very slow.  Could anyone point me to one, pref in ASM that is fairly well\ndocumented and flexible?\n\tThanx,\n            //Lucas.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2677, "properties": {"category": "talk.politics.misc", "text": "From: bob@hobbes.dtcc.edu (Bob Rahe)\nSubject: Re: Top Ten Comments Overheard in the Secret Service Lounge\nOrganization: Delaware Technical & Community College\nLines: 18\nNNTP-Posting-Host: hobbes.dtcc.edu\n\nIn article <C52CLI.G09@dscomsa.desy.de> hallam@zeus02.desy.de writes:\n>\n>In article <1phgakINN9pb@apache.dtcc.edu>, bob@hobbes.dtcc.edu (Bob Rahe) writes:\n\n\n>In the UK there is a tradition of old retired Colnels who bore the dinner\n>guests rigid with their descriptions of old campagns. Ed is clearly one\n>of this type of people who fails to see when a joke is spent.\n\n  You are hereby authorized not to laugh.  By special dispensation of\nher Hillariness.  This offer void where prohibited by law, consumer must\npay applicable sales tax.....\n-- \n-------------------------------------------------------------------------\n|Bob Rahe, Delaware Tech&Comm College | AIDS, Drugs, Abortion: -        |\n|Internet: bob@hobbes.dtcc.edu        |  - Don't liberals just kill you?|\n|CI$: 72406,525 Genie:BOB.RAHE        |Save whales; and kill babies?    |\n-------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2678, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rpao@mts.mivj.ca.us (Roger C. Pao)\nSubject: Re: Booting from B drive\nOrganization: MicroTech Software\nLines: 34\n\nglang@slee01.srl.ford.com (Gordon Lang) writes:\n\n>David Weisberger (djweisbe@unix.amherst.edu) wrote:\n>: I have a 5 1/4\" drive as drive A.  How can I make the system boot from\n>: my 3 1/2\" B drive?  (Optimally, the computer would be able to boot\n>: from either A or B, checking them in order for a bootable disk.  But\n>: if I have to switch cables around and simply switch the drives so that\n>: it can't boot 5 1/4\" disks, that's OK.  Also, boot_b won't do the trick\n>: for me.)\n>: \n>: Thanks,\n>:   Davebo\n>We had the same issue plague us for months on our Gateway.  I finally\n>got tired of it so I permanently interchanged the drives.  The only\n>reason I didn't do it in the first place was because I had several\n>bootable 5-1/4's and some 5-1/4 based install disks which expected\n>the A drive.  I order all new software (and upgrades) to be 3-1/2 and\n>the number of \"stupid\" install programs that can't handle an alternate\n>drive are declining with time - the ones I had are now upgraded.  And\n>as for the bootable 5-1/4's I just cut 3-1/2 replacements.\n\n>If switching the drives is not an option, you might be able to wire up\n>a drive switch to your computer chasis.  I haven't tried it but I think\n>it would work as long as it is wired carefully.\n\nI did this.  I use a relay (Radio Shack 4PDT) instead of a huge\nswitch.  This way, if the relay breaks, my drives will still work.\n\nIt works fine, but you may still need to change the CMOS before the\ndrive switch will work correctly for some programs.\n\nrp93\n-- \nRoger C. Pao  {gordius,bagdad}!mts!rpao, rpao@mts.mivj.ca.us\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2679, "properties": {"category": "sci.electronics", "text": "From: kn1@cunixa.cc.columbia.edu (Kimball Ng)\nSubject: Re: Laser vs Bubblejet?\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: kn1@cunixa.cc.columbia.edu (Kimball Ng)\nOrganization: Columbia University\nLines: 44\n\nkolstad@cae.wisc.edu (Joel Kolstad) writes:\n\n>One other thing... there are bubblejets, and then there are BubbleJets.\n>There are a few bubblejets out there that produce rather mediocre output\n>(such as HP's dinky little BubbleJet), whereas most produce really good\n>looking output (such as HP's DeskJets).  IBM and Canon both produce some of\n>the really good style bubblejets.\n\n>P.S. -- If you're in the market for a portable bubblejet printer, I can\n>highly recommend the HP Portable DeskJet, although I've heard the portable\n>Canons are good too (I needed PCL support, myself).  With the DeskJet\n>Portable, you even get an undocumented PCMCIA card slot!\n\nI second that suggestion.  Although I don't own the HP Portable Deskjet,\nI *do* own the HP Deskjet 500.  It gives the nicest outputs, with only\na minor loss of quality.   For all intensive purposes (papers, letters,\nresumes), I treat my Deskjet like a laser printer (You *do* have to\nlook a bit closely to see the blurs in the characters).  Only one\ngrudge, the ink that HP gives you does smudge rather quickly in the\npresence of moisture (Even though the ink is waterproof).  However,\nyou would have to spend about $500 more for laser quality.\n\nThe cannon bubblejets are nice, however they don't seem to have as\nmuch support (eg: drivers for popular programs) as the HP ink-jets.\nAlso HP Deskjet (regular,plus,500,500c) accepts xerox paper (I believe\nthat the cut-sheet feeder is an option for the cannon bubblejet).\n\nIf you don't mind refilling your printer with cheap ink (say\nfountain-pen ink), then the HP deskjets are *very* cheap to maintain\n(I paid $3.50 for my last bottle of ink and I expect it to last 9\nmonths). \n\n\t-Kimball (who doesn't work for HP, but just loves his printer\n\t\t  very much!)\n\nPS: I have a question for you netters, I'm too afraid to refill with\nthe waterproof inks they sell in art-supply houses because I had brought\na bottle of waterproof ink and it clogged up my cartridge. I\nwonder what is a 'good' waterproof ink (aside from buying refill-kits)\nto refill my cartridge?\n\n\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2680, "properties": {"category": "talk.politics.guns", "text": "From: gress@ucsu.Colorado.EDU (GRESS  JOSEPH JOHN  )\nSubject: Re: With Friends Like These -- L. Neil Smith\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 33\n\nIn article <C5D05G.6xw@undergrad.math.uwaterloo.ca> papresco@undergrad.math.uwaterloo.ca (Paul Prescod) writes:\n>In article <1993Apr10.155819.18237@sco.com> allanh@sco.COM (Allan J. Heim) writes:\n>>Look, if you can figure out a reliable means of keeping guns away from\n>>bad people, while not interfering with good people, I think we'd all be\n>>for it.  The problem is, the methods we're using now don't do the trick.\n>\n>Don't manufacture them.  Don't sell them.  Don't import them.\n>\n>Some guns will get through, but far fewer, and far less people will\n>die because of them.  Hunting weapons could be allowed, of course, as\n>long as they are big, and bulky, and require reloading after a few\n>shots (how many times can you shoot at the same animal, anyways One\n>assumes they are moving!)\n>\n>\nFirst of all let's assume that you are right that fewer guns would make it \nin to the country, that sounds great (to those that see guns as inherently\nevil) except then every one  of those guns would be in the hands  of someone\nwho obviously couldn't care less about following the law, after all they \ngot the gun illegally, so is more likely to commit a crime with that gun.\nGreat then everyone with a gun is likely to use it in a crime, nice system.\n\nNow  as to reducing the number of guns  coming into society by making it \nillegal to manufacture, sell, or import them in this coutry,  let me use\na parallel for empiric evidence.  The amount of cocaine in this country is\nfar less since its manufacture, sale, and importation was out lawwed.    If\nthat last statement is true then perhaps we should consider your plan.  This \ncould also apply to drugs in general.\n\nPLAIN OLD  JOE\n>\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2681, "properties": {"category": "comp.windows.x", "text": "From: cheong@solomon.technet.sg (SCSTECH admin)\nSubject: Getting Pseudo TTY in X/Motif\nNntp-Posting-Host: solomon.technet.sg\nOrganization: TECHNET, Singapore\nLines: 16\n\nHi,\n\nI am about to write an application in X/Motif that will require the\nembedding of a pseudo tty. So, before I re-invent the wheel, has anyone\nwritten/gotten a motif widget that does the job ? Otherwise, I would\nappreciate any pointers to make such a beast.\n\nMy environment is X11R4/Motif 1.1 and X11R5/Motif 1.2 (if this helps).\n\n\nThanks in advance.\n\n\nArthur Lim\nEmail : arthur@mailhost.scs.com.sg\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2682, "properties": {"category": "alt.atheism", "text": "From: yohan@citation.ksu.ksu.edu (Jonathan W Newton)\nSubject: Re: Societally acceptable behavior\nOrganization: Kansas State University\nLines: 35\nDistribution: world\nNNTP-Posting-Host: citation.ksu.ksu.edu\n\n\nIn article <C5qGM3.DL8@news.cso.uiuc.edu>, cobb@alexia.lis.uiuc.edu (Mike Cobb) writes:\n>Merely a question for the basis of morality\n>\n>Moral/Ethical behavior = _Societally_ _acceptable_ _behavior_.\n\nI disagree with these.  What society thinks should be irrelevant.  What the\nindividual decides is all that is important.\n\n>\n>1)Who is society\n\nI think this is fairly obvious\n\n>\n>2)How do \"they\" define what is acceptable?\n\nGenerally by what they \"feel\" is right, which is the most idiotic policy I can\nthink of.\n\n>\n>3)How do we keep from a \"whatever is legal is what is \"moral\" \"position?\n\nBy thinking for ourselves.\n\n>\n>MAC\n>--\n>****************************************************************\n>                                                    Michael A. Cobb\n> \"...and I won't raise taxes on the middle     University of Illinois\n>    class to pay for my programs.\"                 Champaign-Urbana\n>          -Bill Clinton 3rd Debate             cobb@alexia.lis.uiuc.edu\n>                                              \n>With new taxes and spending cuts we'll still have 310 billion dollar deficits.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2683, "properties": {"category": "talk.politics.mideast", "text": "From: oz@ursa.sis.yorku.ca (Ozan S. Yigit)\nSubject: Re: Turkish Government Agents on UseNet Lie Through Their Teeth! \nIn-Reply-To: dbd@urartu.sdpa.org's message of Thu, 15 Apr 1993 20: 45:12 GMT\nOrganization: York U. Student Information Systems Project\nLines: 15\n\nDavidian-babble:\n\n>The Turkish government feels it can funnel a heightened state of ultra-\n>nationalism existing in Turkey today onto UseNet and convince people via its \n>revisionist, myopic, and incidental view of themselves and their place in the \n>world. \n\nTurkish government on usenet? How long are you going to keep repeating\nthis utterly idiotic [and increasingly saddening] drivel?\n\noz\n---\n   life of a people is a sea, and those that look at it from the shore  \n   cannot know its depths.\t\t\t     -Armenian proverb \n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2684, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: Post Polio Syndrome Information Needed Please !!!\nOrganization: University of Wisconsin Eau Claire\nLines: 21\n\n[reply to keith@actrix.gen.nz (Keith Stewart)]\n \n>My wife has become interested through an acquaintance in Post-Polio\n>Syndrome This apparently is not recognised in New Zealand and different\n>symptons ( eg chest complaints) are treated separately. Does anone have\n>any information on it\n \nIt would help if you (and anyone else asking for medical information on\nsome subject) could ask specific questions, as no one is likely to type\nin a textbook chapter covering all aspects of the subject.  If you are\nlooking for a comprehensive review, ask your local hospital librarian.\nMost are happy to help with a request of this sort.\n \nBriefly, this is a condition in which patients who have significant\nresidual weakness from childhood polio notice progression of the\nweakness as they get older.  One theory is that the remaining motor\nneurons have to work harder and so die sooner.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2685, "properties": {"category": "comp.windows.x", "text": "From: bryan@alex.com (Bryan Boreham)\nReturn-Path: <news>\nSubject: Re: Xt intrinsics: slow popups\nNntp-Posting-Host: tweety\nReply-To: bryan@alex.com\nOrganization: Alex Technologies Ltd, London, England\nLines: 15\n\nIn article <735259869.13021@minster.york.ac.uk>, cjhs@minster.york.ac.uk writes:\n> The application creates window with a button \"Quit\" and \"Press me\".\n> The button \"Press me\" pops up a dialog box. The strange feature of\n> this program is that it always pops up the dialog box much faster the\n> first time. If I try to pop it up a 2nd time (3rd, 4th .... time), \n> it is *much* slower.\n\nThe shell is waiting for the window-manager to respond to its\npositioning request.  The window-manager is not responding because\nit thinks the window is already in the right place.\n\nExactly *why* the two components get into this sulk is unclear to\nme; all information greatly received.\n\nBryan.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2686, "properties": {"category": "sci.electronics", "text": "From: blakey@ug.cs.dal.ca (Jason Blakey)\nSubject: FTP sites anyone?\nNntp-Posting-Host: ug.cs.dal.ca\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nLines: 7\n\n    Hello netters:)  Does anyone out there know any FTP sites for projects,\nplans, etc of an electrical nature?  \n\n-Jason\n-- \n ............................................................................ \n                      Jason Blakey -> blakey@ug.cs.dal.ca \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2687, "properties": {"category": "comp.sys.mac.hardware", "text": "From: fhoward@hqsun7.us.oracle.com (Forrest Howard)\nSubject: Re: Duo 230 crashes aftersleep \nNntp-Posting-Host: hqsun7.us.oracle.com\nOrganization: Oracle Corp\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\nLines: 33\n\nAdd me to the list of bugged 230 owners.\n\nI had a bunch of problems regarding sleep/wakeup/restart with the 230 when\nI first got it, both with and without the techworks ram.  Finally it \"died\",\nwouldn't start, until I  opened the docking door (which snaps open) and \nthe machine came up fine, but with the clock a few decades off.  Apple \nreplaced the processor board.\n\nNow,\n  twice the machine has frozen (no mouse action)\n  twice the machine has refused to wake up.  Acutally, the backlighting\n    came on, and the disk spins when the power adaptor is plugged in\n    (but not with a good battery).\n    The first time this happened removing both power adaptor and battery\n      for ~1 minute brought the machine back.\n    The second time this happened the machine wouldn't wake up until\n      powered down for about 30 minutes.  The screen had what looked\n      like red horizontal lines accross it.\n    Both timse the file \"fax modem preferences\" has been corrupted\n      according to disinfectent).\n\nI have removed all the fax and modem software, and the third party memory,\nand am waiting to see if it happens again.\n\nforrest\n\n\n-- \nForrest Howard\nOracle Corporation\n500 Oracle Parkway\nBox 65414\nRedwood Shores, CA 94065\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2688, "properties": {"category": "talk.politics.misc", "text": "From: Will Steeves <goid@zooid.guild.org>\nSubject: Re: Anita Hill...giving out pubic hairs?!  Oh please!  PROVE IT!!\nX-To: THEODORE A. KALDIS\nOrganization: The Zoo of Ids\nLines: 100\n\nkaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes...\n>In article <1993Mar20.161551.4638@zooid.guild.org> goid@zooid.guild.org (Will S\n>eeves) writes:\n\n>[J. Lani Herrmann:]\n\n>>>> We are wondering why the Clinton administration is having so much\n>>>> trouble finding a suitable nominee for the post of Attorney General,\n>>>> when there is an obviously superior candidate:...\n\n>>>> We refer, of course, to Prof. Anita Hill.\n\n>[Michael Friedman:]\n\n>>> Probably because if they pick her the Republicans will investigate\n>>> the rumors that she sometimes returned papers to her students with\n>>> a couple of pubic hairs inserted between the pages.\n\n>> While I'm hardly one of Prof. Hill's biggest fans, I find *this* hard\n>> to believe.\n\n>> Could you please supply (with a post, preferably) some proof of this,\n>> ie., newspaper articles documenting such allegations, etc.?\n\n>Well, your ignorance about this is unsurprising, given you're a\n>Canadian.  And I'm at a complete loss at to why you should be so\n>interested in this, given that it is an American issue which should\n>properly be of absolutely no concern to you at all.\n\nActually, my interest in gender issues is not limited to international\nboundaries.  Indeed, I often exchange information with Americans about\nissues which concern us, in both countries.\n\n\n>In any event, in\n>answer to your question, the following is taken from David Brock's\n>article, \"The Real Anita Hill\", published in the March 1992 issue of\n>_The_American_Spectator_.  [This is taken from page 27.]\n ^^^^^^^^^^^^^^^^^^^^^^^^^\n\nAh...someone had mentioned this journal, but gave no further information.\n\n\n>     But the most bizarre incident is alleged to have happened in the\n>   school year 1983-84 at Oral Roberts [University], according to a\n>   sworn affidavit, dated October 13, 1991, and filed with the Senate\n>   Judiciary Committee, in which Lawrence Shiles, now a lawyer in\n>   Tulsa, recounted the following:\n\n>     Shortly after the class had begun, Professor Hill gave us a\n>     written assignment which I completed and duly turned in.  When\n>     this assignment was passed out to the class after having been\n>     marked by [the] professor, sitting next to me were fellow\n>     students Jeffrey Londoff and Mark Stewart.  Upon opening the\n>     assignments and reviewing our grades and comments made by Anita\n>     Hill, I found ten to twelve short black pubic hairs in the pages\n>     of my assignment.  I glanced over at Jeff Londoff's assignment\n>     and saw similar pubic hairs in his work.  At the time I made the\n>     statement to Londoff that either she had a low opinion of our\n>     work or she had graded our assignment in the bathroom.  Mark\n>     Stewart overheard the conversation and said that he had similar\n>     pubic hairs in his assignment also.  This became the standing\n>     joke among many students for the remainder of the year in\n>     classes.\n\n>     Other students in that class confirmed the story.  Londoff says\n>   he couldn't be certain that the hairs were pubic, but he said he\n>   thought it was unlikely that they could have come from Hill's head,\n>   since they were short, coarse, and curly, and Hill had had the hair\n>   on her head straightened.  Another student who saw the hair, but\n>   did not want to be identified, said of its origins: \"You just know\n>   when you see it.\"\n\n>Does this satisfy you,\n\nYes, thank you, though I am really curious as to why this never came out\n(at least not in what I saw, up here in Canada, or on CNN, which is sent\nup here) during the Thomas nomination hearings.  Surely, one would think\nthat her claim to having been sexually harassed, would have a great deal\nless credibility if it could be shown that she had herself been guilty of it.\n\n\n>or do you regard sworn statements given to a\n>U.S. Senate committee as equivalent to toilet paper?\n\nAhemmm....  It depends.  :-)\n\n(For instance, if it were the \"sworn statements\" at the Warren Commission,\nthen yes, I _would_ say that the statements were no better than toilet\npaper, used at that :-), but in most cases, the answer would be \"no\").\n\n---\nWill Steeves, goid@zooid.guild.org                      \"Neil Hull is GOiD\"\nZOOiD BBS, Toronto, Ontario - The Zoo Of Ids            \"GOiDS Rule\"\n(416) 322-7876\n\n\"Solve Patriarchy, Install Peterarchy\"\n   - Peter J. Hanus, B.A. (UPEI)\n\n * SLMR 2.1a * Scott me up, Beamy.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2689, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: singlis@waikato.ac.nz\nSubject: Win3.1 font with MACRONS\nOrganization: University of Waikato, Hamilton, New Zealand\nLines: 11\n\nGreetings from green New Zealand...\n\nWe are looking for a Windows 3.1 Font that will allow \"macrons\" (a hypen)\nover vowels -- in both UPPER and lower cases. This is so we can use Maori\ncharacters in Windows applications.\n\nThanks in advance\n-Stuart Inglis\n\n(Email directly to tetaka@waikato.ac.nz would be the prefered method of\ncontact)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2690, "properties": {"category": "comp.graphics", "text": "From: apd2c@Virginia.EDU (\"Andrew Paul Dickens\")\nSubject: Re: computer graphics to vcr?\nOrganization: University of Virginia\nLines: 16\n\n\n\tGetting an image from a computer monitor to a videotape\nis harder than it looks.  The standard VGA and EGA outputs are \nvery different than the NTSC format used by televisions.  While\nthere is equipment that will do the conversion, it is hard to\nget your hands on and costs quite a bit.\n\n\tIf you have access to an Amiga computer, that has an\nNTSC output, you can transfer certain types of graphic files by\nmodem and tape them from the NTSC output.  Unfortunately, this\nwould be frame-by-frame and would lead to unbelievably scratchy\nanimation unless you had a good Amiga animation program.\n\n\tOtherwise, see if your local public access cable\nstation has equipment that you can use.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2691, "properties": {"category": "rec.sport.baseball", "text": "From: boell@hpcc01.corp.hp.com (Donald P Boell)\nSubject: Rockies opening day cast\nOrganization: the HP Corporate notes server\nLines: 34\n\nHere is the Colorado Rockies openning day cast:\n\nPitchers\n--------\nScott Aldred (L)  MLB Totals  31 games, 6-14, 5.08 ERA, 0 saves\nAndy Ashby (R)                18 games, 2-8,  6.72 ERA, 0 saves\nWillie Blair (R)              67 games, 10-15,4.57 ERA, 0 saves\nButch Henry (L)               28 games, 6-9,  4.02 ERA, 0 saves\nDarren Holmes (R)             95 games, 5-9,  4.10 ERA, 9 saves\nDavid Neid (R)                 6 games, 3-0,  1.17 ERA, 0 saves\nJeff Parrett (R)             341 games, 46-30,3.65 ERA,21 saves\nSteve Reed (R)                18 games, 1-0,  2.30 ERA, 0 saves\nBruce Ruffin (L)             223 games, 43-64,4.31 ERA, 3 saves\nBryn Smith (R)               354 games,106-90,3.44 ERA, 6 saves\nGary Wayne (L)               147 games, 8-8,  3.44 ERA, 3 saves\n\nThe rest\n--------\nJoe Girardi (C)              304 games, .262, 3 HR, 70 RBI, 10 SB\nDanny Sheaffer (C)            32 games, .110, 1 HR,  5 RBI,  0 SB\nFreddie Benavides (SS)        98 games, .246, 1 HR, 20 RBI,  1 SB\nVinny Castilla (SS)           21 games, .238, 0 HR,  1 RBI,  0 SB\nAndres Galarraga (1B)        942 games, .267,116HR,472 RBI, 59 SB\nCharlie Hayes (3B)           530 games, .250,48 HR,219 RBI, 13 SB\nJim Tatum (3B)                 5 games, .125, 0 HR,  0 RBI,  0 SB\nEric Young (2B)               49 games, .258, 1 HR, 11 RBI,  6 SB\nDante Bichette (OF)          424 games, .254,38 HR,176 RBI, 40 SB\nDaryl Boston (OF)            882 games, .250,65 HR,224 RBI, 97 SB\nJerald Clark (OF)            339 games, .237,28 HR,126 RBI,  5 SB\nAlex Cole (OF)               290 games, .283, 0 HR, 49 RBI, 83 SB\nGerald Young (OF)            605 games, .246, 3 HR,109 RBI,153 SB\nDale Murphy (OF)            15 seasons, .266, 398 HR, 1259 RBI\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2692, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mlevis@lonestar.utsa.edu (Mike Levis)\nSubject: 3rd CFV and VOTE ACK: comp.os.os2.{programmer.porting,setup,multimedia,bugs}\nOrganization: University of Texas at San Antonio\nLines: 476\nNNTP-Posting-Host: rodan.uu.net\n\n* Attention voters:\n*\n* I had a problem with my mailbox on the first day of voting.\n* Please check the Vote Acknowlegement (ACK) at the end of this CFV.\n* If your name/address is not there, please send your vote again.\n* (Actually, check even if you voted after the first day)\n\n\nIntroduction:\n\n\tThis is the third (and final) Call For Votes (CFV) for the creation\n\tof four OS/2 newsgroups and the renaming of one:\n\t(a)  create comp.os.os2.programmer.porting     (unmoderated)\n\t(b)  renaming of comp.os.os2.programmer to\n\t     comp.os.os2.programmer.misc               (unmoderated)\n\t(c)  comp.os.os2.setup                         (unmoderated)\n\t(d)  comp.os.os2.multimedia                    (unmoderated)\n\t(e)  comp.os.os2.bugs                          (unmoderated)\n\n\tThis is the second attempt at creating comp.os.os2.programmer.porting\n\tand comp.os.os2.setup, and renaming comp.os.os2.programmer to\n\tcomp.os.os2.programmer.misc.  The first attempt failed in the summer\n\tof 1992 (the voting deadline was August 31, 1992).  The voting rules\n\tstate that another attempt for creating newsgroups can be started\n\tafter a six month waiting period (in this case, it is March 1, 1993).\n\tThis is the first attempt at creating comp.os.os2.multimedia and\n\tcomp.os.os2.bugs.\n\n\tThis document contains:\n\t*  the background showing the need for these proposals\n\t*  the proposed charters for these proposals\n\t*  voting instructions\n\t*  a voting ballot\n\t*  some example ballots\n\t*  the voting rules\n\t*  the voting schedule\n\t*  the Mass Acknowledgement\n\n\nBackground:\n\n\tThe creation of two, free, 32-bit compilers for OS/2 2.x (gcc/2\n\tand emx/gcc; read comp.os.os2.programmer for details) has spurred\n\ta continuing deluge of software ported from UNIX platforms, such\n\tas emacs, less, awk, grep, sed, xscheme, ispell, flex, yacc, and\n\tmuch more.  Borland has released its C/C++ compiler for OS/2 2.x,\n\tallowing for easier porting of DOS and Windows software.\n\n\tMuch of the PC hardware and drivers were written for DOS, and\n\tlater, Windows.  As more people are discovering OS/2 2.x, the\n\tnumber of people asking questions about OS/2's compatibility\n\twith their hardware increases, as does the questions on the\n\tavailability of drivers for their hardware, installation\n\tprocedures, etc.\n\n\tMultimedia is becoming popular.  OS/2 2.0 supports Windows\n\tMultimedia Extensions using Win-OS/2 3.0.  Furthermore, IBM is\n\tincluding direct multimedia support in OS/2 starting with version\n\t2.1 (in addition to using Win-OS/2 3.1).\n\n\tAny non-trivial software will have bugs -- OS/2 is not exempt,\n\tespecially since IBM is constantly adding new features to OS/2.\n\tSo far, IBM has issued system patches and corrective service disks\n\t(e.g.  the Service Pak) for free (free from BBSs and ftp sites, or\n\tfor free plus a small media charge for diskettes -- read\n\tcomp.os.os2.misc for details).\n\n\nProposed Charters:\n\n\t(a)  create comp.os.os2.programmer.porting (unmoderated)\n\n\t\tIt will provide a forum for developers of ported software so\n\t\tas to coordinate efforts, avoid duplication of effort, and\n\t\tspur additional development.  The group will also cover\n\t\ttopics such as porting from other platforms (such as DOS,\n\t\tWindows, UNIX, etc), toolkits which aid in program\n\t\tportability (including porting tools such as Mirrors), and\n\t\tso forth.\n\n\t(b)  rename: comp.os.os2.programmer.misc (unmoderated)\n\n\t\tTo keep the structure of the OS/2 newsgroup heirarchy\n\t\torthogonal, comp.os.os2.programmer should be renamed to\n\t\tcomp.os.os2.programmer.misc.\n\n\t\tcomp.os.os2.programmer.misc will still be the newsgroup\n\t\tfor OS/2 programmers to discuss programming issues and\n\t\ttechnical aspects of OS/2 in an unmoderated setting.\n\n\t(c)  create comp.os.os2.setup (unmoderated)\n\n\t\tIt will be devoted to OS/2 system setup topics, including the\n\t\tavailability of device drivers, compatibility information,\n\t\tinstallation procedures, system requirements, and overall\n\t\tperformance optimization.\n\n\t(d)  create comp.os.os2.multimedia (unmoderated)\n\n\t\tIt will provide a forum for discussion of multi-media issues.\n\n\t(e)  create comp.os.os2.bugs (unmoderated)\n\n\t\tIt will provide a forum for OS/2 system bug reports, bug\n\t\tdiagnosis and work arounds, the availability of system\n\t\tpatches and corrective service disks, and so forth.\n\n\t\t[Note that discussion of bugs in applications belong in other\n\t\tnewsgroups, and discussion of bugs in OS/2 betas belong in\n\t\tcomp.os.os2.beta]\n\n\nHow to Vote:\n\n\tTo cast your vote, fill out the ballot below and e-mail it to me.\n\tMany newsreaders will allow e-mail to be sent by replying to this\n\tpost.  Be sure to send only the ballot, and edit out the rest of\n\tthis post.\n\n\t1)  Type in your vote for each proposal:\n\n\t    If you favor the charter as proposed, put a \"yes\" after its name.\n\t    If you oppose the charter as proposed, put a \"no\" after its name.\n\t    To abstain, leave a blank after its name.\n\n\t2)  Type in your last name (i.e. your family name), a comma, and\n\t    your first name (i.e. your personal name).\n\n\t3)  Cut out the ballot,  Please do not delete any lines of the\n\t    ballot.\n\n\t4)  E-mail your ballot to mlevis@lonestar.utsa.edu before 11:59:59 pm\n\t    (Central Time), April 24, 1993.\n\n\nBallot:\n\n----------------cut here----------------cut here----------------cut here----\n\n        (a) comp.os.os2.programmer.porting:\n        (b)    comp.os.os2.programmer.misc:\n        (c)              comp.os.os2.setup:\n        (d)         comp.os.os2.multimedia:\n        (e)               comp.os.os2.bugs:\n\n        (f)       voter's last, first name:\n\n        e-mail ballot to mlevis@lonestar.utsa.edu by April 24\n\n----cut here----------------cut here----------------cut here----------------\n\n\nExample Ballot #1:\n\n\t(a) comp.os.os2.programmer.porting: yes\n\t(b)    comp.os.os2.programmer.misc: yes\n\t(c)              comp.os.os2.setup: no\n\t(d)         comp.os.os2.multimedia:\n\t(e)               comp.os.os2.bugs: no\n\n\t(f)       voter's last, first name: Smith, John\n\n\tIn this example, John Smith favors comp.os.os2.programmer.porting\n\tto be created, and comp.os.os2.programmer to be renamed to\n\tcomp.os.os2.programmer.misc.  He also opposes the creation of\n\tcomp.os.os2.setup and comp.os.os2.bugs.  He does not have a view\n\ton the creation of comp.os.os2.multimedia. \n\n\nExample Ballot #2:\n\n\t(a) comp.os.os2.programmer.porting: yes\n\t(b)    comp.os.os2.programmer.misc: yes\n\t(c)              comp.os.os2.setup: yes\n\t(d)         comp.os.os2.multimedia: yes\n\t(e)               comp.os.os2.bugs: yes\n\n\t(f)       voter's last, first name: Doe, Jane\n\n\tIn this example, Jane Doe favors the creation or rename of all\n\tthe proposals.\n\n\nVoting Rules:\n\n\t* One vote per person.  If you vote more than once, only the most\n\t  recent vote will be counted.\n\n\t* Votes must be mailed to me by the person voting.  Proxy voting,\n\t  forwarding, posting votes to a newsgroup, etc. will not be counted.\n\n\t* Do not ask how the votes are going.  The status of the votings\n\t  will be revealed only after the poll closes.\n\n\t* I will acknowledge votes by Mass Acknowledgement (ACK).  I will\n\t  post the ACK twice (see Schedule below).\n\n\t* If you need help for using your editor, using e-mail, how\n\t  voting works in general, etc. then ask an expert at your site.\n\t  Also see the ``How To Create a New Newsgroup'' article which is\n\t  posted to news.answers on a regular basis.\n\n\t* If you need any clarifications on voting procedures for this\n\t  CFV, send me e-mail at mlevis@ringer.cs.utsa.edu.\n\n\t* When the voting period is over (see Schedule below), a proposal\n\t  passes if both of the following formulas are true:\n\t  1)  the number of YES votes exceeds the number of NO votes\n\t      by at least 100 (i.e. YES >= NO + 100, or YES - NO >= 100).\n\t  2)  the number of YES votes exceeds at least twice the\n\t      number of NO votes (i.e. YES >= 2 * NO, or YES - NO >= NO).\n\t  In other words, a proposal passes if:\n\t      YES - NO >= max (100, NO)\n\t  where max() returns the highest number given to it.\n\n\nSchedule:\n\n\tThe voting period started on March 29 when the first CFV was posted\n\tby David Lawrence (the news.announce.newgroups moderator).\n\n\tThis third CFV is a repeat of the first CFV, but it also has the\n\tMass Acknowledgement (ACK) of names and e-mail addresses of those who\n\thave already voted -- re-send your vote if it is not there.  If you\n\thave not voted yet, vote now!\n\n\tThe voting period will end at 11:59:59 pm (Central Time), on\n\tApril 24, 1993.  Votes received after that time will not count.\n\tThe voting results and tally will be posted shortly after that\n\tdate.\n\n\nMass Acknowledgement:\n\n\tHere is the list of people who have already sent in their ballots\n\tas of 12:01 am (Central Time) on April 15, 1993:\n\n                          bdubbs@cs.tamu.edu\nAiyagari, Sanjay          ska1@crux3.cit.cornell.edu\nAlcorn, Justin            alcorn@alpha.ces.cwru.edu\nArien, Peter              LAAAA43%BLEKUL11.BITNET@FRMOP11.CNUSC.FR\nAsselin, Andre            assela@rpi.edu\nAurand, Tom               tom@longs.lance.colostate.edu\nBaechler, Cedric          cbaechle@iiic.ethz.ch\nBartlett, Warren          bart@pdn.paradyne.com\nBates, John               johnb@up.edu\nBeadles, J.               jeff@neon.rain.com\nBeal, Kenneth             kbeal@amber.ssd.csd.harris.com\nBedersdorfer, Jochen      beders@dfki.uni-sb.de\nBell, Douglas             dab6@SCL.CWRU.Edu\nBenningfield, Robert      concert.net!aurs01!aurw7a!benningf\nBiegel, Bryan             biegel@tigris.stanford.edu\nBlackman, Ed              EBB7683@VENUS.TAMU.EDU\nBodnar, John              jbodnar@ccwf.cc.utexas.edu\nBoisvert, Wesley          wesb@dermit.isis.org\nboneham, kevin            boneham@suntan.eng.usf.edu\nBoresch, Stefan           boresch@tammy.harvard.edu\nBoschma, Wilfried         v911071@si.hhs.nl\nBotha, David              BOTH-DD@mella.ee.up.ac.za\nBowe, Nathaniel           woody@vnet.IBM.COM\nBowers, Neil              neilb@borris.eece.unm.edu\nBraun,David               roland@roll.choate.edu\nBronner, Geoffrey         geoffb@coos.dartmouth.edu\nBrors, Dieter             db@ix.de\nBrown, Bill               brown@chinchilla.ir.ucf.edu\nCambria, Michael          cambria@smaug.enet.dec.com\nCarlson, Bill             woc8r@poplar.cs.virginia.edu\nChampion, Evan            evanc@carbon.isis.org\nChandonia, John           chandoni@husc.harvard.edu\nChen, Ted                 tedc@cs.ubc.ca\nChua, Hak                 c164-ez@po.berkeley.edu\nCiesielski, Boleslaw      bolek@viewlogic.com\nClement, Bruce            frey@alfheim.actrix.gen.nz\nClemente, Marc F.         mfclemente@ucdavis.edu\nCline, Ernest             cline@usceast.cs.scarolina.edu\nCocking , Simon           simonc@monu6.cc.monash.edu.au\nCompton, Curtis           compton@plains.NoDak.edu\nCostello, Robert          rcc9885@ultb.isc.rit.edu\nCoulman, Randy            coulman@skdad.usask.ca\nCox, Anthony              AECOX@waikato.ac.nz\nCox, Robert               rcox@qvack.EE.McGill.CA\nCulliton, Tom             culliton@srg.af.mil\ndaigle, Joe               daigle@apollo.hp.com\nDeCarlo, John             jdecarlo@mitre.org\nDippold, Ron              rdippold@qualcomm.com\nDonaldson, Ian            icd@ecr.mu.oz.au\nDrye, Stephen             scdrye@undergrad.math.uwaterloo.ca\nDuffy, Patrick            duffy@theory.chem.ubc.ca\nDusitsin, Krid            dusitsin@ee.umr.edu\nErzberger, Martin         erzberg@ifi.unizh.ch\nFeldtmann, Marten         marten@feki.toppoint.de\nFeustel, Edward           efeustel@ida.org\nfilippini,luigi           luigi@berlioz.crs4.it\nFischer, Stefan           fischer@tammy.harvard.edu\nFleuren, Rik              rik@sci.kun.nl\nFrancis, Tim              francis@vnet.IBM.COM\nFrancois Menard           menaf00@dmi.usherb.ca\nFranks, Derek             franks@hercules.cs.uregina.ca\nFranzki, Wolfgang         wfranzki@hlrserv.hlrz.kfa-juelich.de\nFriedrich, Jochen         jofried@fzi.de\nFriis, Torben             tfriis@imada.ou.dk\nG\"unther, Stefan          stefan@med-informatik.uni-hildesheim.de\nGalarza, Edward           LENBC@CUNYVM.CUNY.EDU\nGammon, Robert            rgammon@rgam.sc.ti.com\nGartler, Hermann          herm@owlnet.rice.edu\nGarzik, Jeff              gtd543a@prism.gatech.edu\nGershman, Mark            gershman@bach.udel.edu\nGiller, David R.          rafetmad@cheshire.oxy.edu\nGnassi, John              jgnassi@hstbme.mit.edu\nGoyal, Mohit              goyal@utdallas.edu\nGreen, Anthony            green@roboco.uucp\nGrupenhoff, Mike          kashmir@wam.umd.edu\nGuo, Youren               yguo@sparc0a.cs.uiuc.edu\nHacker;Jonathan           hacker@cco.caltech.edu\nHaggerty, Michael         mrhagger@Athena.MIT.EDU\nHargrave, BJ              fattire@vnet.IBM.COM\nHartman, Shane            shane@spr.com\nHartzman, Les             hartzman@kilroy.Jpl.Nasa.Gov\nHassa, George             hassag@rpi.edu\nHed, Nevo                 nyh@wpi.WPI.EDU\nHeederik, Robbert         heederik@fwi.uva.nl\nHellerhoff, Torsten       Torsten_Hellerhoff@ac2.maus.de\nHendel, Bernd             BHENDEL@estec.estec.esa.nl\nHenriksen, Gerald         rn.1035@rose.com\nHenry, Andrew             A.H.Henry@gdr.bath.ac.uk\nHerbison, B.J.            herbison@lassie.ucx.lkg.dec.com\nHerron, Kenneth           kherron@ms.uky.edu\nHilmer, Andrew            hilmera@mist.CS.ORST.EDU\nHoang, Long               lhoang@orion.oac.uci.edu\nHodge, Bob                HODGE@iccgcc.cs.hh.ab.com\nHodges, Matthew           modester@iastate.edu\nHollebone, Bruce          lermer@theory.chem.ubc.ca\nholsman, Ian              IHolsman@cmutual.com.au\nHopkins, John             john@uhs1.uhs.uga.edu\nHoppenbrouwers, Jeroen    hoppie@kub.nl\nHoward, Robert            robert.howard@matd.gatech.edu\nHuang, Ping               pshuang@Athena.MIT.EDU\nJackson, Dave             D.Jackson@axion.bt.co.uk\nJensen, Colin             ljensen@netcom.com\nKassarjian, Steven        kassarji@spot.Colorado.EDU\nKiehl, Horst              kiehl@ibt013.ibt.kfa-juelich.de\nKitchin, Bruce            kitchin@lf.hp.com\nKone, Bob                 bkone@rflab.ee.ubc.ca\nKovarski, Mark            kovarski@zooid.guild.org\nKretzer, Myke             tanith@csd4.csd.uwm.edu\nLacy, Stephen             sl31+@andrew.cmu.edu\nlai, william              lai@seas.gwu.edu\nLandy, Brian              landy@cco.caltech.edu\nlau, frankie              lau@tammy.harvard.edu\nLau, Stephen              lau@ai.sri.com\nLawton, Gef               glawton@cs.uah.edu\nLe Glasse, Franck         Franck.Leglasse@irisa.fr\nLebius, Henning           lebius@utkux1.utk.edu\nlee, james                jelee@ucdavis.edu\nLehtonen, Jari            jarlehto@utu.fi\nLeitner, Thomas           tom@finwds01.tu-graz.ac.at\nLempriere, Mike           mikel@networx.com\nLentin, Kevin             kevinl@bruce.cs.monash.edu.au\nLeung, Johnnie            k7z092@rick.cs.ubc.ca\nLim, Pean                 plim@claircom.com\nLin, Steven               slin@cisco.com\nLindholm, George          lindholm@ucs.ubc.ca\nLiukkonen, Juha           jliukkon@cc.helsinki.fi\nLogan, Stan               logan@lexmark.com\nLu, Kevin                 kevinlu@yoyo.cc.monash.edu.au\nMartin, Johannes          jmartin@mogli.zdv.uni-mainz.de\nMashao, Daniel            djm@lems.Brown.EDU\nMaturo, Larry             larry@titan.tsd.arlut.utexas.edu\nMaxwell, Scott            scott.maxwell@channel1.com\nMayer, Gunther H.         gmayer@physik.uni-kl.de\nMaynard, Jay              jmaynard@nyx.cs.du.edu\nMcCarthy, Christopher     mccarthy@gollum.ttd.teradyne.com\nMcgehrin, Matthew         matthew@dabeef@des.edu\nMcGing, John              jmcging@access.digex.com\nMcGuire, Ed               emcguire@intellection.com\nMcMillan, Andrew          Andrew.McMillan@folly.welly.gen.nz\nmeyer, jeff               moriarty@tc.fluke.COM\nMiller, Richard           rick@crick.ssctr.bcm.tmc.edu\nMittelstaedt, Olaf H.-P.  mittelst@felix.rz.fh-ulm.de\nmoorcroft, marc           smarry@zooid.guild.org\nMorrison, John Paul       jmorriso@ee.ubc.ca\nMosher, David             dmosher@nyx.cs.du.edu\nMouawad, Naji.            nmouawad@math.uwaterloo.ca\nMullins, Don              mullins@magnum.convex.com\nNadler, Cliff             cnadler@vnet.IBM.COM\nNareid, Helge             Helge.Nareid@due.unit.no\nNarinian, Vartan          v.narinian@ic.ac.uk\nNorton, Charles M.        cmn@ftp.com\no'neel, bruce             oneel@aplcenmp.apl.jhu.edu\nO'Rourke, Sean            sorourke@lonestar.utsa.edu\nOldham, C. R.             cro@socrates.ed.asu.edu\nOlson, Eric               ejo@kaja.gi.alaska.edu\nOussoren, Ronald          roussor@cs.vu.nl\nowens, bill               owens@cookiemonster.cc.buffalo.edu\nParks, Dwayne             dcp@engr.uark.edu\nParry, Tom                parry@yoyo.cc.monash.edu.au\nPebly, Bob                pebly@vnet.IBM.COM\nPerdue, Alicia            arperd00@mik.uky.edu\nPetro, Herbert            hmpetro@mosaic.uncc.edu\nPietilainen, Pekka        ppi@eero.oulu.fi\nPoole, David              dpoole@hydrogen.oscs.montana.edu\nPowell, Stephen           stevep@kralizec.zeta.org.au\nPrescod, Paul             papresco@undergrad.math.uwaterloo.ca\nProvensal, jerome         uunet.UU.NET!iac!jerome\nQuinn, Michael            quinn@phoenix.Princeton.EDU\nRao, Venkat               rao@cactus.org\nReisert, Jim              reisert@mast.enet.dec.com\nReynolds, Robert          easyrob@cs.utexas.edu\nRobertson, James          ROBERTSON@PHYSC3.BYU.EDU\nRoelofs, Greg             roe2@midway.uchicago.edu\nRosenvold, Johan Kristian jkr@ifi.uio.no\nRuppel, Markus            m.ruppel@imperial.ac.uk\nRyan, Sean                FSSPR@acad3.alaska.edu\nSalomon, Larry            os2man@Panix.Com\nSchimke, Nathan           schimken@cs.rpi.edu\nSchipper, Haijo           haijo@cs.rug.nl\nSeymour, Jim              qintar@agora.rain.com\nShankar, Gess             gess@knex.via.mind.ORG\nShaw, Jeremy              jeremy@plxsun.plx.com\nSierwald, Joern           Sierwald@tu-harburg.dbp.de\nSIPPLES, TIMOTHY          sip1@midway.uchicago.edu\nSkogstad, Oddbjorn        odskog@siri.unit.no\nSmith, Donald             djs6015@ultb.isc.rit.edu\nSmith, Eliot              esmith@psych.purdue.edu\nSneath, Tim               psyhtjs@mips.ccc.nottingham.ac.uk\nSorensen, Tom             gt0040a@prism.gatech.edu\nSriram, N                 swknasri@nuscc.nus.sg\nSteele, Alan              steele@nrcphy1.phy.nrc.ca\nSteinkopf, Dirk           dirk@km21.zfe.siemens.de\nStirling, Ian T.          ian@vnet.IBM.COM\nStrazdus, Stephen         sstrazdu@sedona.intel.com\nstreeter, carl            cstreete@nyx.cs.du.edu\nSum, Eva                  eesum00@mik.uky.edu\nSum, Joey                 jpsum00@mik.uky.edu\nSuttor, Jeff              jsuttor@netcom.com\nSwallow, Doug             doug@montage.oau.org\nSward, David              sward+@cmu.edu\nThomas, Stephen           swt@therson.affinity.mn.org\nThompson, Michael         tommy@msc.cornell.edu\nTiffany, Bernard          lbt@umich.edu\ntorremans, engelbert      etorrem%hvlpa@att.att.com\nTremain, Jim              JIM@BIOLOGY.watstar.uwaterloo.ca\nTsen, Maoee               tsen0001@student.tc.umn.edu\nvan der Lek, Petja        P.vanderLek@research.ptt.nl\nVan Iwaarden, Ronald      rvaniwaa@copper.Denver.Colorado.EDU\nvan Woerkom, Marc E.E.    Marc_Van-Woerkom@ac3.maus.de\nVeeraraghavan, Venkatesh  venky@owlnet.rice.edu\nVeldhuyzen, Eric          v912182@si.hhs.nl\nVigor, Kevin              kevin@wicat.COM\nVillumsen, Ole            ovillumsen@daimi.aau.dk\nWald, David               wald@theory.lcs.mit.edu\nWallace, Jack             grey@vnet.IBM.COM\nWantosch, Rainer          RAINER@sasowa.han.de\nWatson, Brett             watson@s1.elec.uq.oz.au\nWeber-Fahr, Christoph     weber@rhrk.uni-kl.de\nWeeks, Larry              dev@ecn.purdue.edu\nWerner, John              werner@SOE.Berkeley.Edu\nWest, Mike                west@esd.dl.nec.com\nweyrich, orville          uunet.uu.net!weyrich!orville\nWhite, Andrew             apwhite@csugrad.cs.vt.edu\nWiersema, Brian           brianw@umd5.umd.edu\nWimmer, Carsten           Carsten_Wimmer@train.fido.de\nWittenauer, Allen         Allen_Wittenauer@crispy.carb.il.us\nWoodbury, Gregory         ggw@wolves.Durham.NC.US\nWorthington, Stephen      stephen@actrix.gen.nz\nWright, Gregory           gregory@bcstec.ca.boeing.com\nWyble, Richard            transfer.stratus.com!schunix!rwyble\nYOUNG, DAVID M.           dyoung@netcom.com\nZabbal, Christian         kris@binkley.cs.mcgill.ca\nzawodny, jeremy           jzawodn@andy.bgsu.edu\nZou, Nan                  nan@matt.ksu.ksu.edu\n-- \n--:--~  (OS|  Mike Levis       Unofficial OS/2 Spokesmodel\nS/2)  .--:-|\n--:--(OS/2)|  mlevis@lonestar.utsa.edu   ->          votes\n (OS/2)--~ |  mlevis@ringer.cs.utsa.edu  -> clarifications\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.124+0000", "event": "documents", "entityId": 2693, "properties": {"category": "misc.forsale", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: Metal powder,steel,iron.\nOrganization: The Portal System (TM)\nLines: 4\n\nI just love these posts from the ex-Soviet Union.  Among the cars, dinette\nsets, video cameras, etc. every now and then an ad pops up for bee venom,\nRED OXIDE OF MERCURY, cobalt (100 tons minimum order), etc.  Don't they\nhave garage sales in Russia?   :-)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2694, "properties": {"category": "comp.windows.x", "text": "From: rvloon@cv.ruu.nl (Ronald van Loon)\nSubject: Motif++ mailing list - is there any interest ?\nOriginator: rvloon@midas.cv.ruu.nl\nNntp-Posting-Host: midas.cv.ruu.nl\nOrganization: University of Utrecht, 3D Computer Vision Research Group\nLines: 26\n\nHello Motif World,\n\na few days ago I posted my announcement for an update of Motif++. I got\nseveral requests to send the bindings per e-mail, and I know of several people\nwho have been using Motif++, and there are probably a number of people I am\nnot aware of who are also using Motif++.\n\nMy question is:\n\nHow many people 'out there' would be interested to join a mailing-list, where\npeople can ask questions about Motif++, swap stories, and give new ideas about\nnew directions and improvements for the bindings. This would benefit the\nuser-community, as well as give me more insight in what people would like to\nsee added to Motif++. Motif++ is still very much a voluntary project, and this\nway I can make a list of priorities, in what order things should be added, or\nchanged.\n\nIf you're interested in joining such a mailing-list, please take the time to\nreply to this message, and tell me so. When there is sufficient interest, say\nabout 20 people or more, a mailing-list will be set up at my site, and I will\npost the announcement of the newly-created list to this and other newsgroups.\n-- \nRonald van Loon     | In theory, there is no difference \n(rvloon@cv.ruu.nl)  | between theory and practice.\n3DCV Group, Utrecht |   \nThe Netherlands     | In practice however, there is.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2695, "properties": {"category": "sci.space", "text": "From: tffreeba@indyvax.iupui.edu\nSubject: Re: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nLines: 3\n\nThey must be shipping that good Eau Clair acid to California now.\n\nTom Freebairn \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2696, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rmohns@vax.clarku.edu\nSubject: RE: Win NT - what is it???\nOrganization: Clark University\nLines: 52\n\nIn a previous article, alanchem@csd4.csd.uwm.edu (Alan Scott Olson) wrote:\n>Two-part question:\n> \n>1)  What is Windows NT - a 'real' windows OS?\n> \n>2)  This past weekend, a local 'hacker' radio show metioned a new product\n>    from Microsoft called 'Chicago' if I recall.  Anyone know what this is?\n> \n>That is it -\n> \n>Thanks a heap.\n> \n>- Alan\n\nWindows NT is a giant Windows Operating System.  Unline Win3.1, it does not \nrun on top of DOS.  It is its own OS, with (Billy Gates assures us) true \nmulti-tasking/multithreading, meets DOD security specs, will run win3.1 \nprograms as well as DOS programs, has multi-processor support, and is\nprimarily a Server program.  It's overhead is too high for it to be\neconomical for most users.\n\tSpeaking of overhead, it requires at least a 386 with 16 megs of RAM.  \nIt iwll run with 12, but that's like running OS/2 2.0 with 4 megs.  And that's \njust to run it.  Also, I have heard that the system files take up 30-50 Megs, \nand it is recommended that your drive be a half gig!  The SKD is distributed \non CD-ROM.\n\nChicogo is what I want to use.  It is, like NT, a true OS with thrue \nmultitasking and multithreading, but has much smaller hardware requirements, \nand does not meet DOD security specs (but that's okay since it will probably \nbe more of a client OS).  there are a few otehr differences, but those are the \nmain ones.  There was an article about Chicogo in PC Week last August.\n\tThe Chicogo and NT development groups at Micro$oft are in intense \ncompetition, so it is said.  However, I think a different relationship will \narise: NT will be the server (*N*etowrk *T*echonology), Chicogo will be the \nclient machine.  It is entirely possible for different OS's to work together, \npartly because Chicogo is just a small NT (think of it that way, anyway).  \n(Novell Netware creates an OS on the server that is truly not DOS, so don't\nscorn the concept.)\n\tAnyway, don't expect it soon.  Windows 4 and DOS 7 are supposed to be \nreleased next year (read: see it in 95), so I expect that Chicogo won't be out \ntil '96.\n\tWith luck, I'll be proven wrong! =)\n\nRob\n\n         |------------------------------------------------------------|\n                      \\       rmohns@vax.clarku.edu       /\n               _________\\                               /________\n                          \\         Rob Mohns         /\n               ==================================================\n                    Annoy Rush Limbaugh.  Think for yourself.\n               ==================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2697, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: aew@eosvcr.wimsey.bc.ca (Alan Walford)\nSubject: ATI Ultra Pro Confirmation\nReply-To: aew@eosvcr.wimsey.bc.ca\nOrganization: Eos Systems Inc, Vancouver, B.C., Canada\nLines: 25\n\nI have heard many things about the ATI Ultra Pro card. Some have\nbeen positive but most are negative. Could people please confirm\nthese?  (I am interested in the EISA version in particular).\n\n1) The card does not work in a system with 32M RAM.\n\n2) The card works in a 32M system with some switches\n   set but it is much slower.\n\n3) The card is _interlaced_ in its 24bit (true-colour) modes.\n\n4) The latest build 59 drivers still do not work in many\n   cases.\n\n5) This card is the fastest full colour card for the money.\n\n6) This card is the greatest thing since sliced bread. ;-)\n\nThanks for your feedback. I will summarize.\n\nAl\n\n-- \nAlan Walford     Eos Systems Inc., Vancouver,B.C., Canada  Tel: 604-734-8655\naew@eosvcr.wimsey.bc.ca           OR        ...uunet!wimsey.bc.ca!eosvcr!aew  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2698, "properties": {"category": "comp.graphics", "text": "From: steve@hcrlgw (Steven Collins)\nSubject: Re: Sphere from 4 points?\nOrganization: Central Research Lab. Hitachi, Ltd.\nLines: 27\nNntp-Posting-Host: hcrlgw\n\nIn article <1qkgbuINNs9n@shelley.u.washington.edu> bolson@carson.u.washington.edu (Edward Bolson) writes:\n>Boy, this will be embarassing if it is trivial or an FAQ:\n>\n>Given 4 points (non coplanar), how does one find the sphere, that is,\n>center and radius, exactly fitting those points?  I know how to do it\n>for a circle (from 3 points), but do not immediately see a \n>straightforward way to do it in 3-D.  I have checked some\n>geometry books, Graphics Gems, and Farin, but am still at a loss?\n>Please have mercy on me and provide the solution?  \n\nWouldn't this require a hyper-sphere.  In 3-space, 4 points over specifies\na sphere as far as I can see.  Unless that is you can prove that a point\nexists in 3-space that is equi-distant from the 4 points, and this may not\nnecessarily happen.\n\nCorrect me if I'm wrong (which I quite possibly am!)\n\nsteve\n---\n\n\n\n-- \n+---------------------------------------+--------------------------------+\n| Steven Collins\t\t\t| email: steve@crl.hitachi.co.jp |\n| Visiting Computer Graphics Researcher\t| phone: (0423)-23-1111 \t |\n| Hitachi Central Research Lab. Tokyo.\t| fax:   (0423)-27-7742\t\t |\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2699, "properties": {"category": "rec.sport.baseball", "text": "From: genetic+@pitt.edu (David M. Tate)\nSubject: Re: Pinch Hitters (WAS Re: Denny Walling)\nArticle-I.D.: blue.7960\nOrganization: Department of Industrial Engineering\nLines: 20\n\nrickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert) said:\n>\n>(And I thought Mota didn't really start pinch-hitting for a \n>living until after 1973)\n\nDepends on what you mean by \"for a living\".  1974 was the year he led the\nleague in pinch-hit at bats with 50, but he'd been getting a lot of PH ABs\nearlier than that, and was never a full-time player.  20-35 PH ABs early in\nhis career, 15-20 a year just before going to the Dodgers, and 30-50 in the\npeak years.\n\nWe're talking about a guy with a 20-year career as an outfielder, a .300+\ncareer batting average, and 1130 or so career hits.  \n\n\n-- \n  David M. Tate   |  (i do not know what it is about you that closes\n  posing as:      |  and opens; only something in me understands\n   e e (can       |  the pocket of your glove is deeper than Pete Rose's)\n     dy) cummings |  nobody, not even Tim Raines, has such soft hands\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2700, "properties": {"category": "misc.forsale", "text": "From: ychen@hubcap.clemson.edu (Eric Chen)\nSubject: NEC Multisync Plus for MAC & PC $250\nOrganization: Clemson University, Clemson SC\nLines: 8\n\nNEC Multisync Plus, model # JC-1501VMA, 15\", 960x720, $250 + shipping.\n\nPrice is frim.  Do not send me an emai if your offer is less than my\nasking.\n\nThank you.\n\nYuesea\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2701, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cgd@eden.CS.Berkeley.EDU (Chris G. Demetriou)\nSubject: Re: PC/Geos, Windows, OS/2, and Unix/X11\nOrganization: Kernel Hackers 'r' Us\nLines: 22\nNNTP-Posting-Host: eden.cs.berkeley.edu\nIn-reply-to: rcampbel@weejordy.physics.mun.ca's message of Tue, 6 Apr 1993 11:41:36 GMT\n\nIn article <C528HE.I1q@news.ucs.mun.ca> rcampbel@weejordy.physics.mun.ca (Roderick Campbell) writes:\n=>There is a free unix, linux, that has cc, ~c++, fortran ( f2c ),\n=>Xwindows and many other features besides, with a large number of utilities\n=>that can be optionally added. And there is also a free 386BSD I believe.\n=>Both these unix's are quite robust. You can check out comp.os.linux\n\ni dunno about linux, but for 386bsd, don't forget networking\n(well tested, at that), NFS, a fast, incredibly stable filesystem,\nand the list goes on...  8-)\n\nfor us 386bsd folk, look in comp.os.386bsd.*.\n\n\n\n\nchris\nmoderator of comp.os.386bsd.announce, anti-politician, and sometime evangelist\n--\nChris G. Demetriou                                    cgd@cs.berkeley.edu\n\n   \"386bsd as depth first search: whenever you go to fix something you\n       find that 3 more things are actually broken.\" -- Adam Glass\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2702, "properties": {"category": "sci.electronics", "text": "From: long@spk.hp.com (Jerry Long)\nSubject: Re: Principle_of_the_Breathalyzer\nArticle-I.D.: spk.C52I89.GEq\nDistribution: na\nOrganization: Hewlett-Packard\nLines: 31\nX-Newsreader: TIN [version 1.1.4 PL6]\n\nwilliam burchill (williamb@ee.ubc.ca) wrote:\n: \tDoes anybody out there know how the hand held breathalyzer used\n: by our police works?  I would like to hear about this and the more\n: general problem of detecting smells by machine.\n: \n: Thanks, William.\n: \n: williamb@ee.ubc.ca\n: \n\nFrom what I have read about these little gadgets, it works on\na electrochemical galvanic principle. The sensing unit has a\nchemical matrix which produces an electrical voltage proportional\nto the amount of chemical compound it is designed for ... in this case\nI believe it is the Hydroxyl group???  \n\nI have also heard -  not tested :-)  - since common gasoline is also\na member of this Hydroxyl group, it will also cause a failing breathalizer\nfailure! Next time you get stopped for DUI, say you just siphoned gas from\nyour neighbors car (you know..... the Oklahoma credit card) and chances\nare you won't get a DUI ticket!!!!\n\n\n \nJerry Long\n\nlong@spk.hp.com\n****************************************\nDisclaimer.... Opinions are my own and\ndo NOT reflect those of my employer.  \n**************************************** \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2703, "properties": {"category": "talk.politics.guns", "text": "From: bressler@iftccu.ca.boeing.com (Rick Bressler)\nSubject: Re: Armed Citizen - April '93\nOrganization: Boeing Commercial Airplane Group\nLines: 22\n\n/ iftccu:talk.politics.guns / kendall@lds.loral.com (Colin Kendall 6842) /  9:23 am  Apr 13, 1993 /\n\nIn article <1993Apr5.164728.10847@dazixco.ingr.com> crphilli@hound.dazixca.ingr.com writes:\n>>\n>>THE ARMED CITIZEN\n>>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n>>Mere presence of a firearm, without a shot being fired, prevents\n>>crime in many instances, as shown by news reports sent to The\n>>Armed Citizen.  \n>\n>Perhaps so, but note that of the accounts cited, there was only\n>one in which no shot was fired. Of the other twelve, five\n>described cases in which the assailant was wounded by a shot,\n>and six described cases in which the assailant was killed by a\n>shot.\n\nFollow more than one months posting.  As more than one reader has noted, \nthere IS some reporting bias here.  I have seen months where these \nnumbers were reversed.  I don't keep a constant tally, but it seems \nthis particular issue had more shots fired than any other I can remember.\n\nRick.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2704, "properties": {"category": "sci.electronics", "text": "From: ski@wpi.WPI.EDU (Joseph Mich Krzeszewski)\nSubject: Re: Need to find out number to a phone line\nOrganization: Worcester Polytechnic Institute\nLines: 4\nNNTP-Posting-Host: wpi.wpi.edu\n\nIn Texas (Well, Corpus Christi anyway) if you pick up the phone and dial\n890 the phone company will read back the number to you.\nTry it. It might work.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2705, "properties": {"category": "rec.motorcycles", "text": "From: ivan@erich.triumf.ca (Ivan D. Reid)\nSubject: Re: This just in . . . .\nOrganization: TRIUMF: Tri-University Meson Facility\nLines: 29\nDistribution: world\nNNTP-Posting-Host: erich.triumf.ca\nKeywords: C-sharp\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr2.144102.7445@rd.hydro.on.ca>,\n\t jlevine@rd.hydro.on.ca (Jody Levine) writes...\n>In article <1993Apr01.155407.11314@i88.isc.com> \n>\tjeq@lachman.com (Jonathan E. Quist) writes:\n>>In article <1993Mar31.175023.18928@rchland.ibm.com>\n>>\t pooder@msus1.msus.edu\t writes:\n\n>>>>sampled recently were using unauthorized software, the Inspector General\n>>>>said in a new report.\n\n>>The Inspector General?\n\n>>Make way, for His Excellency, The Inspector General!\n\n\n>>(...Hail, hail to Brodney, to the sky...)\n\n>Behold the Lord High Executioner...\n\n>no, that's something else.\n\n\tI've already discussed this in e-mail with Jonathan.  It's the film\n\"The Inspector General\"  [:-)], with Danny Kaye, although I can't quote the\nname of the leading lady (Because Maltin doesn't :-().  Jonathan thinks there\nwas an earlier Russian film; \"Movies on TV\" just says it was based on a Gogol\n(Yes, Jonathan, I looked it up again -- only two o's) story.\n\nIvan Reid, Paul Scherrer Institute, CH.     \t\t\tivan@cvax.psi.ch\nGSX600F, RG250WD.\tSI=2.66     \"You Porsche. Me pass!\"\tDoD #484\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2706, "properties": {"category": "rec.sport.hockey", "text": "From: Anna Matyas <am2x+@andrew.cmu.edu>\nSubject: Re: Ron Francis\nOrganization: H&SS Dean's Office, Carnegie Mellon, Pittsburgh, PA\nLines: 44\nNNTP-Posting-Host: po2.andrew.cmu.edu\nIn-Reply-To: <1993Apr19.170938.11226@Virginia.EDU>\n\n\nMatthew Rush writes:\n\n>Is there an award for \"best back-up behind a hockey great\"?\n>Underneath all the hype about Lemieux, Stevens, Jagr, Ulf,\n>etc., Ron Francis has quietly put together a 100 point season\n>(24 goals and 76 assists in 84 games).  That was probably the\n>best acquisition the Penguins have made since getting Lemieux\n>(apologies to Rick Tocchet, who has had a hell of a year\n>himself).  The Pens got just the right person at just the right\n>time when they got Francis before the playoffs two years ago to\n>back-up Mario.  Who was the second-line center before they got\n>Francis?  I remember Randy Gilhen (who really plays tough, an\n>ace in the face-off circle), but nobody with all the skills\n>Francis has: scoring, passing, winning face-offs, and putting\n>100% into every game, every night.  Just wanted to glow a\nlittle.\n\nI know what you mean!  I glow everytime Ronnie's out on the ice.\nIn fact, one of the neatest things about seeing the Pens in person\nis that I can key in on him instead of watching what I'd probably\nbe seeing on tv.  He does so many subtle things behind the play.\n\nHe said in an interview recently that when he was a kid his dad\nstressed the importance of playing two-way hockey; that you have to\nlearn how to play defense as well as offense and he obviously took\nthat advice to heart.  He was a breath of fresh air when he arrived\nin Pittsburgh to the team whose forwards, for the most part, couldn't\nand wouldn't play a lick of defense.\n\nIt's really difficult to assess what the key trades were that brought\nall of this success to the Pens.  You mention Rick Tocchet and he has\ncertainly helped, and even ol' Kjell has been steady.  But looking at\nthis team you could almost take any one of them out of the line-up\npermanently and replace them with an extremely mediocre player and it\nwouldn't matter.\n\nIf I had to pick the top three acquisitions in recent years they would\nbe 1) Tom Barrasso; 2) Ron Francis; 3) Larry Murphy.  (I'd love to put\nFrancis first but I do think the only thing that could really damage\nthe Pens right now would be to lose Barrasso.)\n\nMom.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2707, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: receiver system\nKeywords: telemetry, receiver system\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 22\n\nOne thing to consider is time division multiplexing the EMG\nchannels to reduce the number of RF carriers you have to generate.\nIf you multiplexed the EMG inputs at 10KHz, that would probably be\nsufficient for most physiology studies (you'd have ~ 330 Hz per\nchannel sampling rate.)  That level of analog multiplexing should\nbe rather easy to accomplish.\n\nCombining a lot of RF carriers is pretty tricky to do without\ngenerating intermodulation.  A system to be carried by a runner is\nin a fairly harsh environment and would probably be difficult to\nkeep balanced.\n\nA commercial hand-held transciever could probably be employed with\na little modification to accomodate widening the bandwidth.\nObviously, this has to be done in accordance with whatever laws\ngovern the use of transeivers in your location.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2708, "properties": {"category": "talk.politics.misc", "text": "From: donb@igor.tamri.com (Don Baldwin)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: TOSHIBA America MRI, South San Francisco, CA\nLines: 24\n\nIn article <C5HuH1.241@news.iastate.edu> jrbeach@iastate.edu (Jeffry R Beach)\nwrites:\n>>I would be upset that, although abortions would continue, they would be\n>>a lot more expensive for the rich, and a lot less safe for the poor.\n>\n>So now things are supposed to be legal just to keep their cost down\n>and the safety factor high??  \n\nIn the case of victimless crimes yes, I think so.\n\nThink about it.  If I rob or beat up or rape or kill someone, it's very\nclear to anyone not a sociopath that I've done something immoral.  On the\nother hand, if I smoke grass or have sex with a consenting adult in a\nmanner illegal in that state, the morality or immorality of that act is\nmerely a lifestyle choice; it doesn;t clearly hurt anyone else.  IMO, if\nsuch an act doesn;t hurt another person it should not be interfered with.\n\n>Think about it -- shouldn't all drugs then be legalized, it would lower\n>the cost and definitely make them safer to use.\n\nI think so.  And I don't use drugs, outside of the legal ones (alcohol\nand coffee).\n\n   don\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2709, "properties": {"category": "sci.electronics", "text": "From: whit@carson.u.washington.edu (John Whitmore)\nSubject: Re: Help with ultra-long timing\nArticle-I.D.: shelley.1pr91aINNikg\nDistribution: world\nOrganization: University of Washington, Seattle\nLines: 25\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <1pqu12$pmu@sunb.ocs.mq.edu.au> johnh@macadam.mpce.mq.edu.au (John Haddy) writes:\n>In article <C513wI.G5A@athena.cs.uga.edu>, mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>|> (1) Don't use big capacitors.  They are unreliable for timing due to\n>|> leakage. \n\n\tTrue (especially for electrolytic capacitors at high temperature).\n\n>|> Instead, use a quartz crystal and divide its frequency by 2 40 times\n>|> or something like that.\n\n>... Wouldn't a crystal be affected by cold? My gut feeling is that, as a\n>mechanically resonating device, extreme cold is likely to affect the\n>compliance (?terminology?) of the quartz, and hence its resonant frequency.\n\n\tLow power quartz oscillators are usually 32 kHz (and THESE\nhave significant temperature drifts, which one doesn't often notice\nwhile wearing the watch on one's wrist).  Low temperature sensitivity\nis available in other crystal types, which unfortunately\nare larger and higher frequency (1 MHz or so) and take more\nbattery power.  \n\n\tProgrammable timers might be less accurate, but they\nare more power-stingy than suitable crystal oscillators.\n\n\tJohn Whitmore\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2710, "properties": {"category": "sci.electronics", "text": "From: mg@cs.princeton.edu (Michael Golan)\nSubject: how can 0.022 uF be different from two 0.047 in series?!\nOriginator: news@nimaster\nNntp-Posting-Host: elan.princeton.edu\nOrganization: Princeton University\nLines: 29\n\nI was looking at the amps diagram for Sony 1090/2090 receivers, and I\nwas amazed to find a difference between the US and Canadian model\non the capacitor(s) that hangs off the output to the speakers:\n\n                         ------\\/\\/\\----- to speaker (identical both models\nfrom amp ---------------|\n(idnetical both models) >\n                        <  10 \n                        >\n                        |\n                       -----                        \n                      |     |                        \n        0.022        ---   ---        Canadian model only!\n     US model        ---   --- 0.047 \n     and world-wide   |     |\n     model only.      |    ---        Candian model only!\n                      |    ---  0.047\n                      |     |\n                       ----------- gound\n\nThe board itself is also identical, with room for all three caps. The\nUS/Can versions is clearly indicated in both places.\n\nHow does that make sense? 0.047/2 is 0.0235, essentially 0.022 for caps\n(there are just standard caps, no special W/type/precision). \n\nPlease explain this\n Michael Golan\n mg@cs.princeton.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2711, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Protective gear\nFrom: bclarke@galaxy.gov.bc.ca\nOrganization: BC Systems Corporation\nLines: 14\n\nIn article <734055654snz@morgan.demon.co.uk>, tony@morgan.demon.co.uk (Tony Kidson) writes:\n> In article <1993Apr5.151323.7183@rd.hydro.on.ca> jlevine@rd.hydro.on.ca writes:\n>>In article <C4wKFs.BC1@eskimo.com> maven@eskimo.com (Norman Hamer) writes:\n>>>What protective gear is the most important?\n>>\n>>I would go for the gloves. There's not a whole lot that you can do in life if\n>>you have no skin on your hands. \n> \n> Yup! Ruins your sex life!\n\nYOUR sex life, maybe....\n-- \nBruce Clarke       B.C. Environment\n                   e-mail: bclarke@galaxy.gov.bc.ca\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2712, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Stan Fischler, 4/4\nSummary: From the Devils pregame show, prior to hosting the Penguins\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 32\n\n\nAt the Lester Patrick Awards lunch, Bill Torrey mentioned that one of his\noptions next season is to be president of the Miami team, with Bob Clarke\nworking for him.  At the same dinner, Clarke said that his worst mistake\nin Philadelphia was letting Mike Keenan go -- in retrospect, almost all\nplayers came realize that Keenan knew what it took to win.  Rumours are\nnow circulating that Keenan will be back with the Flyers.\n\nNick Polano is sick of being a scapegoat for the schedule made for the\nRed Wings; After all, Bryan Murray approved it.\n\nGerry Meehan and John Muckler are worried over the Sabres' prospects;\nAssistant Don Lever says that the Sabres have to get their share now,\nbecause a Quebec dynasty is emerging ...\n\nThe Mighty Ducks have declared that they will not throw money around\nloosely to buy a team.\n\nOilers coach Ted Green remarked that \"There some guys around who can\nfill Tie Domi's skates, but none who can fill his helmet.\"\n\nSenators' Andrew McBain told off a security guard at Chicago Stadium\nwho warned him of the stairs leading down to the locker room; McBain\nmouthed off at him, after all being a seasoned professional ... and\ntumbled down the entire steep flight.\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2713, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Sin\nOrganization: Indiana University\nLines: 22\n\nSorry for taking this off of Sharon's resp, but I'd also like to add\nsome more verses to that and perhaps answer the second Q.\n\nVerses:\n   1 Corinthians 6:9-10\n   Colossians 3:5-10\n\nAs for knowing when, that's a bit tricky.  People normally have\nconsciences which warn them about it.  However, as in my case, a\nconscience can be hardened by sin's deceitfulness (Hebrews 3:12:13) so\nthat the person has no idea (or doesn't care about it) that they are\nsinning.  Of course, there are those sins which we do when we don't know\nthat they're sinful to begin with.  Those take searching and examining\nof Scripture to find out that they are sinful and then repent and\nchange.  The best question to ask in every circumstance to judge sinful\npossibilities is:  \"Would Jesus wholeheartedly do this at this point in\ntime?\"  I know, it sounds like a cop-out, but it truly is a stifling\nquestion.\n\nJoe Fisher\n\nOh, I missed one.  1 John 1:8-2:11,15-23.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2714, "properties": {"category": "alt.atheism", "text": "From: decay@cbnewsj.cb.att.com (dean.kaflowitz)\nSubject: Re: some thoughts.\nOrganization: AT&T\nDistribution: na\nLines: 13\n\nIn article <EDM.93Apr15104322@gocart.twisto.compaq.com>, edm@twisto.compaq.com (Ed McCreary) writes:\n> >>>>> On Thu, 15 Apr 1993 04:54:38 GMT, bissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) said:\n> \n> DLB> \tFirst I want to start right out and say that I'm a Christian.  It \n> DLB> makes sense to be one.  Have any of you read Tony Campollo's book- liar, \n> DLB>lunatic, or the real thing?  (I might be a little off on the title, but he \n> DLB>writes the book.  Anyway he was part of an effort to destroy Christianity, \n> DLB> in the process he became a Christian himself.\n> \n> Here we go again...\n\nJust the friendly folks at Christian Central, come to save you.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2715, "properties": {"category": "rec.autos", "text": "From: adn6285@ritvax.isc.rit.edu\nSubject: MR2 parts\nNntp-Posting-Host: vaxa.isc.rit.edu\nReply-To: adn6285@ritvax.isc.rit.edu\nOrganization: Rochester Institute of Technology\nLines: 4\n\nDoes anyone know of a dead first generation MR2? I need body parts, steering\nrack, and a few minor pieces. I was about to buy a parts car, but the owner \nbacked out after 3 month of pulling my leg. ARRRRgh.\nMike.S\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2716, "properties": {"category": "sci.crypt", "text": "From: karl@genesis.MCS.COM (Karl Denninger)\nSubject: Re: Do we need the clipper for cheap security?\nOrganization: MCSNet, Chicago, IL\nLines: 39\nNNTP-Posting-Host: localhost.mcs.com\n\nIn article <9304201003.AA05465@pizzabox.demon.co.uk> gtoal@gtoal.com (Graham Toal) writes:\n>\tgtoal@gtoal.com (Graham Toal) writes:\n>\t>\n>\t>In the UK, it's impossible to get approval to attach any crypto device\n>\t>to the phone network.  (Anything that plugs in to our BT phone sockets\n>\t>must be approved - for some reason crypto devices just never are...)\n>\t>\n>\n>\tWhats the difference between a V.32bis modem and a V.32bis modem?\n>\n>\tI'm not being entirely silly here: what I'm pointing out is that the\n>\tmodems that they have already approved for data transmission will work\n>\tjust fine to transmit scrambled vocoded voice.\n>\n>Absolutely.  I just meant that no secure *dedicated* crypto device has\n>ever been given approval.  Guerrilla underground devices should be well\n>possible with today's high-speed modems (not that I can think of many v32bis\n>modems that are approved either mind you - just the overpriced Couriers)\n>\n>Can someone tell me if hardware compression is or is not needed to run\n>digital speech down 14.4K?  I think it is; I've heard it's not.  Lets\n>say 8 bit samples.  Would *raw* data at the corresponding sampling rate\n>be usable?  If not, how fancy does the compression need to be?\n\nReasonably fancy.\n\nStandard \"voice\" circuits run at 56kbps inter-exchange in the US.\nTherefore, you need to achieve 4:1 to get standard voice quality.\n\nIf you're willing to give up some quality, you need only 2:1.  This is still\nacceptable from a speech standpoint; it will be a little less faithful to\nthe original, but certainly intelligable.  That's all you really need for\nthis application.\n\n--\nKarl Denninger (karl@genesis.MCS.COM) \t| You can never please everyone except\nData Line: [+1 312 248-0900]\t\t| by bankrupting yourself.\n         \t   LIVE Internet in Chicago; an MCSNET first!\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2717, "properties": {"category": "talk.politics.guns", "text": "From: bjones@convex.com (Brad Jones)\nSubject: Re: Letter to the President\nNntp-Posting-Host: neptune.convex.com\nOrganization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 8\n\nkdw@icd.ab.com (Kenneth D. Whitehead) writes:\n\n>the dismissal or resignation of Lloyd Bensen, Secretary of the Treasury,\n\n\nIn case you haven't sent it yet, it's \"Bentsen\", not \"Bensen\".\n\nBrad\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.125+0000", "event": "documents", "entityId": 2718, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Serbian genocide Work of God?\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 57\n\nD. Andrew Kille writes:\n\n>Are you suggesting that God supports genocide?\n>Perhaps the Germans were \"punishing\" Jews on God's behalf?\n> \n>Any God who works that way is indescribably evil, and unworthy of\n>my worship or faith.\n\nThe Bible does tell us that governments are ordained by God (Romans 13).\n And furthermore, God foreknows everything that would happen.  It is\njust to difficult for humans to graps with our limited minds, the\ninevitablity of the sucess of God's plan, and this is especially hard to\ngrasp when we see governemnts doing evil.  However, though they are\ndoing evil (and we should not cooperate with them when they do such), it\nmust be understood that what happens is what God wanted so as to lead to\nthe final sucess of His plan to save as many souls from hell as is\npossible.  In short, the slaughter in Bosnia, though deplorable in the\neyes of God (maybe, then again, they might be getting their just deserts\nnow rather than later; there are plenty of examples of God killing\npeople for their sins - Onan in the Old Testmament for example, and\nAnnias and Spahira in the New) is what he willed to happen so that His\nplan might be accomplished.\n    But don't forget, it is not unbiblical for God to use one nation to\nexecute His just judgement upon another.  The Romans were used to\nfulfill the chorus of \"Let his blood be upon our hands\" of the crowd in\nJersualem.  And Chaldea was chastised by Babylon, which got Israel,\nwhich was inturn gotten by Persia, etc.  God does use nations to punish\nother nations, as the Bible very clearly shows in the Old Testament. \nDon't you remember the words of God recorded in Daniel, \"Mene, mene,\ntekel, peres?\"  Babylon had been weighed in the balance scales of God's\njustice, found severly wanting, and was thus given over to the Persians\nas their due punishment for their rebellion.  Another exammple is the\nextirmination of the Cannanites, ordered by God as the task of Israel. \nThe Cannanites had been given their chance, found severly wanting, and\nthe Great Judge, carried out His just sentence accrodingly.  I could go\non with more examples, but I see little need to do so, as my point is\nquite clear.\nTwo things need to be remembered at all times. 1) It is not up to us to\nquestion why God has ordered the world as He has.  In His divine Wisdom,\nHe made the world as was best in His eyes, and like Paul says in Romans\n9, the clay is not one to tlak back to the potter.  2) The message of\nJesus Christ is as follows: \"Repent now, for the Kingdom of Heaven is at\nhand.\"  Jesus Christ did not allow any time for dilly-dallying - \"Let\nthe dead bury the dead, come, follow me.\"  There is not an infinite\namount of time, rather Christ is passing by right now, calling people to\nfollow Him and become fishers of men.  He does not say, \"well, alright,\nyou can call me back in a week and see if my Kingdom fits in with your\nplans.\"  He said \"Follow me.\"  His message is NOT \"I'm just a sweety-pie\nwho would never hurt a fly, you've got all the time in the world, and\nDivine Judgement, that's only a fairy tale.\"  \"Our great God and Savior\"\nJesus Christ (Titus 2.5) is also the just and righteous Judge of the\nworld.  And it is not up to the defendants in the trial to be\nquestioning his entirely just sentences of either chastisement or mercy.\n\nD. Andrew Byler\n\"Does not He who ways the heart perceive [sin], and will He not judge\nmen according to their works?\" - Proverbs 24.12\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2719, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dleonard@wixer.cactus.org (Dale Leonard)\nSubject: Re: wise to remove fan in Classic?\nOrganization: Real/Time Communications\nLines: 22\n\nIn article <hansg.733929100@risken> hansg@risken.vd.volvo.se (Hans Granqvist) writes:\n>Is it wise to even think about removing the annoying fan from my\n>Classic? I have no warranty to void.\n>\n>And where do I get a screwdriver to fit in those funny screws?\n>--\n>Hans Granqvist, Volvo Data Corp., Gothenburg, Sweden  ---  my opinions only\n>\"To every complex problem there exists an easy solution that's not correct.\"\n\nThe screws are Torx screws and the tool isn't to hard to find. It's a\nmatter of finding one with a long enough shaft to do the trick. \n \nNo it is not a good idea to take that fan out.  Why because it will\ncause stuff to over heat.  Internal hard drives, motherboard...You name\nit and this can cause damage.  I've known people to have hard drive\nfailures because of fans that didn't work right....\n\n-- \n| Dale Leonard             | Judy's Stamps (Misc. topical stamps. From Dogs..|\n| dleonard@wixer.cactus.org| to cats to baseball and many many other subjects|\n| Austin, Tx 78727         | For stamp information call Tony Leonard at......|\n| (512)834-8770 (my number)| (512) 837-0022 This is a business only number!!!| \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2720, "properties": {"category": "rec.sport.baseball", "text": "From: gaf5@ns1.cc.lehigh.edu (Gail A. Fullman)\nSubject: Re: FLORIDA SUCKS!\nOrganization: Lehigh University\nLines: 12\n\nIn article <1993Apr13.232537.20672@cabell.vcu.edu>, csc2imd@cabell.vcu.edu (Ian\nM. Derby) writes:\n>\n>This talk about the Phillies winning the NL East is scary.  VERY\n>scary!  Don't get me wrong, Im a Phillies fan but as late as last\n>year they looked helpless.  The funny thing was they did have a lot\n>of injuries in '92 spring training that basically killed their\n>chances.  Of course, don't forget the Dykstra wrist injury in the\n>first or second game?\n>\nFirst game, first at bat.\n-- \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2721, "properties": {"category": "soc.religion.christian", "text": "From:  (Phil Bowermaster)\nSubject: Re: The arrogance of Christians\nOrganization: U S WEST Advanced Technologies\nLines: 36\n\nIn article <Apr.10.05.32.15.1993.14385@athos.rutgers.edu>,\ndleonar@andy.bgsu.edu (Pixie) wrote:\n> \n> In article <Apr.7.01.55.50.1993.22771@athos.rutgers.edu>,\n> vbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) wrote:\n> \n> > \n> > \t\"We affirm the absolutes of Scripture, not because we are arrogant\n> > moralists, but because we believe in God who is truth, who has revealed His\n> > truth in His Word, and therefore we hold as precious the strategic importance\n> > of those absolutes.\"\n> \n> \n> \t\t\t\t\tPardon me, a humble atheist, but exactly what is the difference\n> between holding a revealed truth with blind faith as its basis (i.e.\n> regardless of any evidence that you may find to the contrary) as an\n> absolute truth, fully expecting people to believe you and arrogance?\n\nIf you would bother to check in any good dictioanry or thesaurus, I think\nyou will find that \"arrogance\" has to do with an offensive exhibition of\npresumed or real superiority (a paraphrase from my own Webster's).\nArrognace is about pride and haughtiness. A person can believe in absolute\ntruth, even blindly (whatever that means) without being obnoxious about it.\nJust as a person can be a \"humble,\" authority-questioning,\ndefying-any-theist-to-reply athiest and be quite arrogant. Arrogance is not\nabout what you believe, it is about how you relate to what you believe and\nhow you present it to others. If your overwhelming experience of Christians\nhas been that they are arrogant, I apologozing both for myself and on the\nbehalf of those who have offfended you. But my own experience, at least in\nforums like Usenet where you see a good mix of people, is that arrogant\nChristians and athiests seems to occur in about equal numbers.\n\n- Phil -\n\nHey, we're talking about the PHONE COMPANY, here. The Phone Company doesn't\nhave opinions on this kind of stuff. This is all me.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2722, "properties": {"category": "comp.windows.x", "text": "From: kk@unisql.UUCP (Kerry Kimbrough)\nSubject: GUI Study -- do users want to build solutions?\nOrganization: The Internet\nLines: 30\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: visual.com!dbl@cs.utexas.edu\nCc: expo.lcs.mit.edu!xpert@cs.utexas.edu\n\n\n\n   ...let me point out that both GUI-based word-processors and text-based\n   formatters both have a language; one happens to be mouse- and\n   action-based, and the other symbol-based.\n\nTrue, but that's beside the point. This is a fact about an abstract model\nof what the GUI users are doing, not about what they actually *are* doing.\nThis abstract model is only apparent from the perpective of a *programmer*\nof the system. (NB: some users may see it, too, but only when they put\naside the work at hand and start thinking like a programmer.)\n\nI'm not saying that the programmer's perspective is evil or stunted. After\nall, that's what I do, too! I am saying that UI designers must carefully\ndistinguish between the user/programmer conceptual models, and they must\nultimately serve the user of the system, not the builder of the system. \n\n\n   I don't recall the actual stats, but something like 1 in 5 people can be\n   categorized as a \"symbol manipulator\".\n\nIt would be interesting to know more about the meaning and basis for this\nclaim. At any rate, I don't think this is evidence that 20% of users think\nlike programmers. Bankers, financial analysts, structural engineers ---\nthese are all people whose work you could characterize as primarily symbol\nmanipulation. But what they do is not programming, and programming is not\nrequired to do what they do. \n\nTo restate my previous point: yes, users want to build their own solutions;\nno, they do not want to do programming to accomplish this.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2723, "properties": {"category": "soc.religion.christian", "text": "From: trajan@cwis.unomaha.edu (Stephen McIntyre)\nSubject: Theists And Objectivity\nOrganization: University of Nebraska at Omaha\nLines: 90\n\nCan a theist be truly objective?  Can he be impartial\n     when questioning the truth of his scriptures, or\n     will he assume the superstition of his parents\n     when questioning? \n\nI've often found it to be the case that the theist\n     will stick to some kind of superstition when\n     wondering about God and his scriptures.  I've\n     seen it in the Christian, the Jew, the Muslim,\n     and the other theists alike.  All assume that\n     their mothers and fathers were right in the\n     aspect that a god exists, and with that belief\n     search for their god.\n     \nOccasionally, the theist may switch religions or\n     aspects of the same religion, but overall the\n     majority keep to the belief that some \"Creator\"\n     was behind the universe's existence.  I've\n     known Muslims who were once Christians and vice\n     versa, I've known Christians who were once\n     Jewish and vice versa, and I've even known\n     Christians who become Hindu.  Yet, throughout\n     their transition from one faith to another,\n     they've kept this belief in some form of higher\n     \"being.\"  Why?\n     \nIt usually all has to do with how the child is\n     brought up.  From the time he is born, the\n     theist is brought up with the notion of the\n     \"truth\" of some kind of scripture-- the Bible,\n     the Torah, the Qur'an, & etc.  He is told\n     of this wondrous God who wrote (or inspired)\n     the scripture, of the prophets talked about in\n     the scripture, of the miracles performed, & etc.\n     He is also told that to question this (as\n     children are apt to do) is a sin, a crime\n     against God, and to lose belief in the scrip-\n     ture's truth is to damn one's soul to Hell.\n     Thus, by the time he is able to read the\n     scripture for himself, the belief in its \"truth\"\n     is so ingrained in his mind it all seems a\n     matter of course.\n     \nBut it doesn't stop there.  Once the child is able\n     to read for himself, there is an endeavor to\n     inculcate the child the \"right\" readings of\n     scripture, to concentrate more on the pleasant\n     readings, to gloss over the worse ones, and to\n     explain away the unexplainable with \"mystery.\"\n     Circular arguments, \"self-evdent\" facts and\n     \"truths,\" unreasoning belief, and fear of\n     hell is the meat of religion the child must eat\n     of every day.  To doubt, of course, means wrath\n     of some sort, and the child must learn to put\n     away his brain when the matter concerns God.\n     All of this has some considerable effect on the\n     child, so that when he becomes an adult, the \n     superstitions he's been taught are nearly\n     impossible to remove.\n     \nAll of this leads me to ask whether the theist can\n     truly be objective when questioning God, Hell,\n     Heaven, the angels, souls, and all of the rest.\n     Can he, for a moment, put aside this notion that\n     God *does* exist and look at everything from\n     a unbiased point of view?  Obviously, most\n     theists can somewhat, especially when presented\n     with \"mythical gods\" (Homeric, Roman, Egyptian,\n     & etc.).  But can they put aside the assumption\n     of God's existence and question it impartially?\n     \nStephen\n\n    _/_/_/_/  _/_/_/_/   _/       _/    * Atheist\n   _/        _/    _/   _/ _/ _/ _/     * Libertarian\n  _/_/_/_/  _/_/_/_/   _/   _/  _/      * Pro-individuality\n       _/  _/     _/  _/       _/       * Pro-responsibility\n_/_/_/_/  _/      _/ _/       _/ Jr.    * and all that jazz...\n\n-- \n\n[This is ad hominem attack of the most basic kind.  None of their\nstatements matter -- they believe the way they do because they were\nbrought up that way.  Of course there are atheists who have become\ntheists and theists who have become atheists.  Rather more of the\nlatter, which is not surprising given the statistics.  It's hard to\nsee how one could possibly answer a posting of this sort, since any\nanswer could immediately be assumed to be just part of the\nbrainwashing.  That is, how can anyone possibly show that they aren't\nbiased?  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2724, "properties": {"category": "sci.crypt", "text": "From: cepek@vixvax.mgi.com\nSubject: Tempest vs LCD (was: Re: Once tapped...)\nOrganization: Management Graphics, Inc.\nLines: 19\n\ndouglas craig holland (holland@CS.ColoState.EDU) writes:\n>\n> With E-Mail, if they can't break your PGP encryption, they'll just\n> call up one of their TEMPEST trucks and read the electromagnetic \n> emmisions from your computer or terminal.  Note that measures to \n> protect yourself from TEMPEST surveillance are still classified, as \n> far as I know.\n\nsteiner@jupiter.cse.utoledo.edu (Jason 'Think!' Steiner) writes:\n\n> are LCD displays vulnerable to tempest?\n\nI can see high-voltage type display devices being vulnerable (CRTs,\nplasma displays, etc.)  But Jason beat me to this question.  What\nabout EM radiation from low-voltage items like LCD displays?\n\nPerhaps the critical element is the driver circuitry?  The cabling?\nWhat about a portable PC/Mac/etc., where all the \"noise\" is bunched\ninto one tiny area?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2725, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: m88max@tdb.uu.se (Max Brante)\nSubject: VGA on atari monoitor ??\nOrganization: Dept. of Scientific Computing, Uppsala Univ.\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 11\n\nIs it possible to connect a atari monochrome monitor to some kind of VGA card?\n\nIf someone have done this please let me know how.\n\n\tThanx\n\n      __   __         _  _               \n     l  \\ /  l  ___  ( \\/ )          Max Brante   m88max@tdb.uu.se\n     l l l l l / _ \\  \\  /         \n     l l\\_/l l( (_) l /  \\\tInstitutionen f|r teknisk databehandling\n     l_l   l_l \\__l_l(_/\\_)               Uppsala Universitet  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2726, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sdoran@matt.ksu.ksu.edu (Steven D Marcotte)\nSubject: Data corruption\nOrganization: Kansas State University\nLines: 31\nNNTP-Posting-Host: matt.ksu.ksu.edu\n\n\nI quit windows normally to run a special DOS app, got done with it\nand tried to start windows.  Ok got the title screen, Windows\nbackground, DOS with an error about loading PROGMAN.EXE.  Hum, yep\nPROGMAN.EXE is still there.  Must be bad, ok pull off PROGMAN.EXE\nfrom a backup tape, start windows, get the windows title screen,\nwindows background, DOS with the same error.  HUM!  Fire up the\ngood ol' Norton Disk Doctor, test, 500 lost clusters!  Ok, fix them,\nand look through them, doesn't look important.  Remove the Windows\ndirectory, and reinstall from disks.  Fire up windows, title screen,\nbackground, Program Manager, Success!  \n\nI have a 486/50 (Amy) with 4 meg of RAM, 120 meg HD, SVGA, running under\nDOS 5.0, no special memory managers or stuff, just the basic Windows 3.1\nA 12 meg permanent swap file using 32-bit Access.  I mainly use Windows\nto run more that one DOS app at a time.  (ie downloading with Qmodem\nwith a DOS window open, and possibly POV running in the background.)  \n\nI've noticed that since I started using Windows a few months ago, lost\nclusters have gotten more and more common.  Although I don't like\nhaving data just disappear, it really haven't been a problem except\nfor today.  Has anyone else had any problems with lost clusters while\nrunning windows?  And what could I do to fix the problem, I'd sleep\nbetter knowing Amy wasn't loosing her marbles. :)\n\nSteven\n--\nSteven Marcotte\t\t\tsdoran@matt.ksu.ksu.edu\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2727, "properties": {"category": "sci.space", "text": "From: ralph.buttigieg@f635.n713.z3.fido.zeta.org.au (Ralph Buttigieg)\nSubject: Commercial point of view\nOrganization: Fidonet. Gate admin is fido@socs.uts.edu.au\nLines: 29\n\nOriginal to: szabo@techbook.com\nG'day szabo@techbook.com\n\n29 Mar 93 07:28, szabo@techbook.com wrote to All:\n\n sc> szabo@techbook.com (Nick Szabo), via Kralizec 3:713/602\n\n sc> Here are some longer-term markets to consider:\n\nHere are some more:\n\n* Terrestrial illumination from orbiting mirrors.\n\n* World enviroment and disaster monitering system. (the Japanese have\nalready developed a plan for this, called WEDOS) Although this may be more\nof a \"public good\".\n\n* Space tourism.\n\n* Energy relay satellites\n\nta\n\nRalph\n\n--- GoldED 2.41\n * Origin: VULCAN'S WORLD - Sydney Australia (02) 635-6797  3:713/6\n(3:713/635)\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2728, "properties": {"category": "comp.windows.x", "text": "From: bgendler@opus.starlab.CSc.COM (Bruce Gendler)\nSubject: X/GL widget translation problem\nArticle-I.D.: opus.9304221524.AA05029\nOrganization: The Internet\nLines: 14\nTo: xpert@expo.lcs.mit.edu\n\nI am writing a custom widget to support the display of graphics\nand imagery.  The user of the widget will be able to specify,\nwhen creating it, whether it is to operate in X or GL mode.\n\nI have set up translations and actions to handle mouse button\npresses.  They work fine when the widget is in X mode.  In GL \nmode they only work when the widget (my GL/X widget) is a child\nof a manager.  Put another way, the translations do not work \nwhen the widget is configured in GL mode and is a child of a \nshell.  Does anyone know why this is happening?\n\nThanks in advance.\nBruce Gendler\nbgendler@csc.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2729, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: When are two people married in God's eyes?\nOrganization: AI Programs, University of Georgia, Athens\nLines: 39\n\nTo recapitulate a bit:\n\n- The essence of marriage is two people's commitment to each other.\n\n- If two people claim to be married \"in their hearts\" but are not\n  willing to have the marriage recognized by church and state, that's\n  prima facie evidence that the commitment isn't really there.\n\n- There are obvious situations in which Christian marriage is possible\n  without a civil or church wedding: if you're stranded on a desert\n  island, or if your state forbids the marriage for an unjust reason\n  (e.g., laws against interracial marriage).\n\n- The legal concept of \"common-law marriage\" is meant to ensure that\n  the state will recognize marriages that did not start out with the\n  usual ceremony and record-keeping.\n\n- Pastorally, I'm concerned that people should not use \"being married\n  in God's eyes\" as an excuse for living together without a formal wedding.\n  One has a duty to have one's marriage properly recorded and witnessed.\n  \n- But there are also people who have been through a wedding ceremony\n  without making a genuine commitment, and therefore are not married\n  in God's eyes.  Right?\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n\n[I think the last statement is dangerous.  I believe as long as\nsomeone has formally undertaken the responsibility of marriage, they\nhave a moral obligation, even if their intention was not right.  Other\npeople are involved in the marriage covenant.  If they believed in\ngood faith that a marriage occurred, then I think there are\nobligations created to them.  Of course there are situations where\nintent can cause a marriage not to exist.  The classic example is when\nit's done as part of a play.  But these are exceptions, and should be\nclear to all parties.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2730, "properties": {"category": "sci.electronics", "text": "From: kolstad@cae.wisc.edu (Joel Kolstad)\nSubject: Re: Dumb Question: Function Generator\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 35\n\nIn article <C5J845.3B8@murdoch.acc.Virginia.EDU> dgj2y@kelvin.seas.Virginia.EDU (David Glen Jacobowitz) writes:\n>\n>\tI have a new scope and I thought I'd save a few bucks by\n>buying one with a function generator built in.\n\nHmm... now where was that ad for the combination radio/hand cranked\ngenerator/flashlight/siren I saw? :-)\n\n[function generator has a 50mV offset, and the amplitude's too high]\n\n>\tIs there any way I could make myself a little box that could\n>solve this little problem. The box would tkae the function generator\n>input, lower the voltage and give an output impedance that is some\n>low, unchanging number. I would want to lower the voltage by a factor\n>of one hundred or so. I could just build a little buffer amp, but I'd\n>like to have this box not be active.\n\nSure, you've already got the right idea.\n\nIgnoring the 50 ohm internal resistance of the generator for a second, just\nrun it into, say, a voltage divider made of 990 ohms in series with 10\nohms.  This new circuit is the Thevenin equivalent of one that puts out\n1/100 of the original voltage, and has an output impedence of negligibly\nless than 10 ohms.  You may want to monkey with the values a little\ndepending on whether you care more about the _exact_ dividing ratio or\nthe availability of parts.\n\nHows that sound?\n\n\t\t\t\t\t---Joel Kolstad\n\nP.S. -- This is why those 1000:1 high voltage probes for multimeters can be\naccurate but still cheap.  They have something like 100 megs in series with\n100k, which doesn't load the (often high impedence) source much, as well as\nkeeping the (probably 10 meg impedance) multimeter happy.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2731, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: MLB = NBA?\nLines: 15\n\nIn article <1993Apr17.052025.10610@news.yale.edu>, (Sean Garrison) says:\n>\n>I think that\n>players' salaries are getting way out of hand to the point that they're on\n>a pace to become severely detrimental to baseball's future.\n>\n\nso you want to decrease players' salaries?\n\nso you want to increase owners' salaries?\n\nthe two are equivalent.\n\nbob vesterman.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2732, "properties": {"category": "sci.electronics", "text": "From: cab@col.hp.com (Chris Best)\nSubject: Re: Illusion\nOrganization: your service\nLines: 15\nNNTP-Posting-Host: hpctdkz.col.hp.com\n\n> This is not a new idea.  At least 10 years ago I got this little gadget with\n> a keyboard on the back and 8 LED's in a vertical row on the front.  It has a\n> long handle and when you wave it in the air it \"writes\" the message you typed\n> on the keyboard in the air. \n\n----------\n\nThis is not news.  In fact it's where I got the idea from, since it was\nsuch a neat item.  Mattell made it, I believe, modeled after a \"space \nsaber\" or \"light sword\" or something likewise theme-y.  My addition was \nusing a motor for continuous display, and polar effects in addition to \ncharacter graphics.  I should have protected it when I had the chance.  \nNo one to kick but myself...\n\nTen years ago is about right, since I built mine in '84 or '85.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2733, "properties": {"category": "rec.motorcycles", "text": "From: pashdown@slack.sim.es.com (Pete Ashdown)\nSubject: Need parts/info for 1963 Maicoletta scooter\nOrganization: Evans & Sutherland Computer Corporation\nLines: 15\nNNTP-Posting-Host: slack\n\n\nPosted for a friend:\n\nLooking for tires, dimensions 14\" x 3.25\" or 3.35\"\n\nAlso looking for brakes or info on relining existing shoes.\n\nAlso any other Maicoletta owners anywhere to have contact with.\n\nCall Scott at 801-583-1354 or email me.\n-- \n I saw fops by the thousand sew themselves together round the Lloyds building.\n\nDISCLAIMER: My writings have NOTHING to do with my employer.  Keep it that way.\nPete Ashdown          pashdown@slack.sim.es.com            Salt Lake City, Utah\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2734, "properties": {"category": "talk.politics.guns", "text": "From: dbernard@clesun.Central.Sun.COM (Dave Bernard)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: Sun Microsystems\nLines: 32\nDistribution: world\nReply-To: dbernard@clesun.Central.Sun.COM\nNNTP-Posting-Host: clesun.central.sun.com\n\n>>This is a stretch.  In fact, a great many of the persecuted Indians were\n>>Christian, a great many.  It would be simpler to state the obvious, that\n>>white people wanted land the Indians dominated or threatened.  I really\n>>don't think the government cared a hill of beans about the Indians' religion.\n\n>My Native American Girlfriend asks: \"If the government really doesn't\n>'care a hill of beans' about our religion, how come they're still\n>busting us for it in Oregon, Washington, and a few other places?\n>You'd be a Christian, too, if the U.S. Army marched you into church\n>at gunpoint.\"\n\nAre you saying that the Indians who became Christians did so because the\nUS Army marched them into church at gunpoint?\n\nThis will be news to the Indians of the Great Lakes and upper Mississippi\nbasin-- of the Southwest-- of Mexico and South America-- who converted even\nbefore there was such a thing as the US.  Are you saying that Indians are\nincapable of coming to a decision themselves about their religion without\nbeing forced to at gunpoint?  What about the Christian Cherokees who were\ngiven the boot by the US government after the Civil War... because the\nCherokee nation gave mild support to the Confederacy, since they themselves\nowned black slaves.  No, reducing it all to a matter of religion is to\nsupport a much too narrow view of history.\n\nI've never heard of a single treaty, whether broken by the US government or\nnot (were any NOT????), that said, if you guys convert to Christianity, you\nget to keep all the land you claim.  No, treaties were invariably about land...\nit meant ceding Indian claims to the government.  Sometimes in return the\nUS government promised the hunter-gatherer tribes (and plenty of tribes were\nalready farming for centuries, but we don't hear about non-Plains Indians\nin movies) food and training in return for taking up a non-nomadic existence.\nPromises, of course, which all to often proved empty. \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2735, "properties": {"category": "alt.atheism", "text": "From: acooper@mac.cc.macalstr.edu\nSubject: Re: some thoughts.\nOrganization: Macalester College\nLines: 100\n\nIn article <bissda.4.734849678@saturn.wwc.edu>, bissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n> \tFirst I want to start right out and say that I'm a Christian.  It \n\nThat's okay:  it's what all the rest of them who come on here say...\n\n> makes sense to be one.  Have any of you read Tony Campollo's book- liar, \n> lunatic, or the real thing?  (I might be a little off on the title, but he \n> writes the book.  Anyway he was part of an effort to destroy Christianity, \n> in the process he became a Christian himself.\n\nThis isn't the guy who was a lawyer was he?  Could you give more info on this\nguy (never mind- I'm sure there will be PLENTY of responses to this post, and\nit will appear there)\n\n> \tThe arguements he uses I am summing up.  The book is about whether \n> Jesus was God or not.  I know many of you don't believe, but listen to a \n> different perspective for we all have something to gain by listening to what \n> others have to say.\n\nThis is true.  Make sure it is true for ALL cases.\n  \n> \tThe book says that Jesus was either a liar, or he was crazy ( a\n\nWhy not both?  ;)\n \n> modern day Koresh) or he was actually who he said he was.\n> \tSome reasons why he wouldn't be a liar are as follows.  Who would \n> die for a lie?  Wouldn't people be able to tell if he was a liar?  \n\nWhy not die for a lie?  If you were poverty stricken and alunatic, sounds\nperfecetly reasoable to me.  As to whether the societal dregs he had for\nfollowers would be able to tell if he was a liar or not, not necessarily.\nEven if he died for what he believed in, this still makes him completely\nselfish.  Like us all.  So what's the difference.\n\n\nPeople \n> gathered around him and kept doing it, many gathered from hearing or seeing \n> someone who was or had been healed.  Call me a fool, but I believe he did \n> heal people.  \n\nThere is no historical proof of this (see earlier threads).  Besides, he (or at\nleast his name), have been the cause of enough deaths to make up for whatever\nhealing he gave.\n\n\n> \tNiether was he a lunatic.  Would more than an entire nation be drawn \n> to someone who was crazy.  \n\nSIEG HEIL!!\n\n\n>Very doubtful, in fact rediculous.  For example \n> anyone who is drawn to David Koresh is obviously a fool, logical people see \n> this right away.\n>\n\nWho is David Koresh?  I am curious.\n\n \tTherefore since he wasn't a liar or a lunatic, he must have been the \n> real thing.  \n\nHow does this follow?  Your definition of lunatic (and \"disproof\" thereof seem\nrather... uhhh.. SHAKY)\n\n> \tSome other things to note.  He fulfilled loads of prophecies in \n> the psalms, Isaiah and elsewhere in 24 hrs alone.  This in his betrayal \n> and Crucifixion.  I don't have my Bible with me at this moment, next time I \n> write I will use it.\n\nGood idea.\n\n> \tI don't think most people understand what a Christian is.  It \n> is certainly not what I see a lot in churches. \n\nNaturally, those or not TRUE Christians, right?  ;)\n\n> Rather I think it \n> should be a way of life, and a total sacrafice of everything for God's \n> sake.  He loved us enough to die and save us so we should do the \n> same.  Hey we can't do it, God himself inspires us to turn our lives \n> over to him.  That's tuff and most people don't want to do it, to be a \n> real Christian would be something for the strong to persevere at.  But \n> just like weight lifting or guitar playing, drums, whatever it takes \n> time.  We don't rush it in one day, Christianity is your whole life.  \n> It is not going to church once a week, or helping poor people once in \n> a while.  We box everything into time units.  Such as work at this \n> time, sports, Tv, social life.  God is above these boxes and should be \n> carried with us into all these boxes that we have created for \n> ourselves.  \t  \n\n\nSomeone else handle this, I don't know if it's worth it... *sigh*\n\n\n********************************************************************************\n* Adam John Cooper\t\t\"Verily, often have I laughed at the weaklings *\n*\t\t\t\t   who thought themselves good simply because  *\n* acooper@macalstr.edu\t\t\t\tthey had no claws.\"\t       *\n********************************************************************************\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2736, "properties": {"category": "comp.graphics", "text": "From: saz@hook.corp.mot.com (Scott Zabolotzky)\nSubject: .GIF to .BMP\nOrganization: Motorola, Inc.\nDistribution: usa\nNntp-Posting-Host: 129.188.122.160\nLines: 11\n\nI'm not sure if this is the correct place to ask this question.  If not,\nplease forgive me and point me in the right direction.\n\nDoes anybody know of a program that converts .GIF files to .BMP files\nand if so, where can I ftp it from?  Any help would be greatly \nappreciated.\n\nPlease respond via e-mail as I do not read this group very often.\n\nThanks...Scott\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2737, "properties": {"category": "comp.windows.x", "text": "From: gpatapis@boyd.tansu.com.au (George Patapis)\nSubject: Re: DESQview/X on a PC and network Traffic\nOrganization: AOTC - CSSC\nLines: 71\nDistribution: world\nReply-To: gpatapis@boyd.tansu.com.au\nNNTP-Posting-Host: boyd.cssc-syd.tansu.com.au\n\n\nIn article 1369@qdeck.com, support@qdeck.com (Technical Support) writes:\n>In article <1qtk84$rn5@picasso.cssc-syd.tansu.com.au> gpatapis@boyd.tansu.com.au writes:\n>\n>>What sort of traffic is generated with the X-calls?  I am curious to find\n>>out the required bandwidth that a link must have  if one machine running\n>>DV/X is supporting multiple users (clients) and we require adequate response\n>>time.  Anyone have any ideas ??  \n>\n>I expect the limiting factor will be your server machine, not the network\n>itself. To give you a real-world example, here at Quarterdeck we have\n>roughly 100 people using DVX to talk to a bunch of unix boxes, novell\n>file servers, and each other. It's not _too_ much of a load on our\n>Ethernet (with maybe 4 concentrators, so you have 20-30 people on each\n>segment). If you had a badly loaded net, or the apps you wanted to run\n>were very network intensive, you could run into some slowdowns.\n>\n>But the biggest problem would be the machine itself. Say you have a 486\n>33 with plenty of ram and a fast hard disk and network card. If you have\n>10 people running programs off it, you're going to see some slowdowns\n>because you're now on (effectively) a 3.3 MHz 486. Of course, DVX will\n>attempt to see if tasks are idle and make sure they give up their time\n>slice, but if you have 10 working programs running, you'll know it.\n>\n\nWell I can buy a bigger and more powerful server machine because of the \nsignificant drop in price year after year.  The link I want to use \nthough (ISDN 64K) is costly and the bandwidth limited.  That's why my\ninterest lies in seeing if such a link can be used and see what traffic \ngoes through it.\n\n\n>Having said that, if you can tweak the programs being run (by adding\n>in calls to give up time slices when idle and that sort of\n>thing), you could probably run 15-20 people on a given machine before\n>you started seeing slowdowns again (this time from network bandwidth).\n\nHmmm.  Has anyone at your centre monitored the traffic at all?  Are you\nrunning any standard MS-Windows programs like Word ?  What sort of \npackets go blazing through? What size link do you have (2Mb or 10Mb ?).\nWhat is the average traffic flow going through your network or do you\nhave few high peaks and then many low points?\n\n\n>It all really depends on what the programs are doing (ie. you're going\n>to see a slowdown from X-bandwidth a lot sooner if your apps are all\n>doing network things also...)\n>-- \n\nWhat do you mean by network things?  I vision using MS Windows and other\nWindows applications over the network were the processes are running on\nthe server and all I am getting are the displays.  I am wondering how \ngood is the X and subsequently DV/X protocol in transferring these \nimages with X-calls and displaying them on a client's machine.\n\n\n>       Quarterdeck Office Systems - Internet Support - Tom Bortels\n> Pricing/Ordering : info@qdeck.com  |  Tech Questions : support@qdeck.com\n>  BBS: (310) 314-3227 * FAX: (310) 314-3217 * Compuserve: GO QUARTERDECK\n>   Q/Fax: (310) 314-3214 from touch-tone phone for Technotes On Demand!\n\n\n\n\n---\n__/ __/ George Patapis ---------------------PAN METRON ARISTON---------- __/ __/\n__/ __/ Telecom C.S.S.C Lane Cove---email:gpatapis@cssc-syd.tansu.com.au __/ __/\n__/ __/ P.O.Box A792 Sydney South --fax  :(02) 911 3 199---------------- __/ __/\n__/ __/ NSW, 2000, Australia.-------voice:(02) 911 3 121---------------- __/ __/\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2738, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 32\n\nIn article <1993Apr20.142131.27347@rti.rti.org> jbs@rti.rti.org writes:\n>In article <C5rpoJ.IJv@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>>\n>>Well they had over 40 days to come out with their hands up on national tv \n>>to get the trial they deserved.  Instead they chose to set fire to their \n>>compund hours after the tanks dropped off the tear gas.\n>\n>This is about the third person who's parroted the FBI's line about the\n>fires being set \"six hours after the tear gas was injected.\"  Suppose you\n>want to explain to us the videotape footage shown on national TV last night\n>in which a tank with the gas-injecting tubes is pulling its injection tubes\n>out of the second story of a building as the building begins to belch smoke\n>and then fire?\n\nI've already corrected my mistake earlier in this thread.  I saw a brief \nnews report which led to the above inaccuracy.  I have since seen detailed \nsummaries that show the tanks returned in the late morning.\n\nSo, why didn't the BD's leave when the gas was first introduced much \nearlier in the morning?  Didn't they care about the children?\n\nWhy didn't they release the children weeks ago?\n\n>\n>Do tell.\n>\n>  -joe\n\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2739, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Entry form for playoff pool\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 43\nNntp-Posting-Host: mail.sas.upenn.edu\n\nOkay, here's the entry sheet.  Keep in mind that not all spots are\ndecided, so it may change.\n\n     Series  \t\t\tYour Pick\t\tGames\n\n  Division Semis\n\nNY Islanders-Pittsburgh\nNew Jersey-Washington\n\nBuffalo-Boston\nMontreal-Quebec\n\nSt. Louis-Chicago\nToronto-Detroit\n\nWinnipeg-Vancouver\nLos Angeles-Calgary\n\n  Division Finals\n\nPatrick\nAdams\nNorris\nSmythe\n\n  Conference Finals\n\nWales\nCampbell\n\n\nStanley Cup winner\n\n\nSee previous post for scoring.  Good luck!\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2740, "properties": {"category": "talk.religion.misc", "text": "From: jmk@cbnews.cb.att.com (joseph.m.knapp)\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nOrganization: AT&T\nLines: 9\n\ncotera@woods.ulowell.edu writes:\n>           David Thibedeau (sp?), one of the cult members, said that the fire\n>was started when one of the tanks spraying the tear gas into the facilities\n>knocked over a lantern.\n\nSort of a \"Mrs. O'Leary's\" tank theory? Moooo.\n\n---\nJoe Knapp   jmk@cbvox.att.com\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.126+0000", "event": "documents", "entityId": 2741, "properties": {"category": "rec.motorcycles", "text": "From: s851708@minyos.xx.rmit.OZ.AU (John Edmond Auckett)\nSubject: Re: Dogs vs. Bikes\nArticle-I.D.: escargot.1qogjaINN41f\nOrganization: Royal Melbourne Institute of Technology\nLines: 10\nNNTP-Posting-Host: minyos.xx.rmit.oz.au\n\nDogs will chase anything that moves. I have two dogs and they love\nchasing me when I ride off. They will also chase any car that passes\n, running along the footpath/sidewalk at up to 60kph. They don't\nseem to go after trucks though, the size difference must be a factor.\n\nIt also works in my favour though, I can exercise them quite easily\nby riding 1/2 mile up the road and back a few times. \n\n\nJA (s851708@minyos.rmit.oz.au)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2742, "properties": {"category": "rec.sport.baseball", "text": "From: dxf12@po.CWRU.Edu (Douglas Fowler)\nSubject: (ATAS) N.L. games 8/2-8/5 & standings of all\nArticle-I.D.: usenet.1pqf84$caf\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 237\nNNTP-Posting-Host: slc12.ins.cwru.edu\n\n\n     Philadelphia at Chicago:  Teams tied for 1st after Sunday\n     Dick Redding battled Chet Brewer in the first game of a dramatic four\ngame series.  One Friday, one Saturday, and a good-old Sunday doubleheader.\n\"What could be better,\" declared Ernie Banks.  Perhaps the fact that the Cubs\nare challenging?\n     \"It's pitching, it's always been pitching that we've lacked,\" announced\nRyne Sandberg.  \"If we can get by Brewer, then beat Carlton, Alexander, or\nBunning - preferrably 2 of the last three - we'll know we might be able to\nwin.\n     \"Lord, I hope we pull it off.\"\n     The Phils scored once in the top of the first; Richie Ashburn singled, Pete\nRose followed with a hit, sending Ashburn around second.  Kiki Cuyler cut\nthe ball off in left center, and threw a bullet in to Ernie Banks, who threw\nto Ron Santo to get Ashburn at third.  Rose went to second on the play.\n     Christobel Torrienti lifted a long fly to center, moving Pete Rose to\nthird.  Schmidt was walked - the Cubs were absolutely refusing to let him\nbeat them.  Both Torrienti and Schmidt will likely draw 130-150 walks this\nyear.  Chuck Klein is starting to hit very well, and he lashed a double into a\ngap in right-center.  \"Cool Papa\" Bell's speed allowed him to cut the ball off\nand prevent Schmidt from scoring.  Nellie Fox was walked, and Bob Boone\ngrounded out to second, ending the threat.  \n     \"Teams are starting to realize that you don't have to pitch to Schmidt or\nTorrienti, and that is lowering their run total.  It puts a lot of pressure on\nKlein and Dick Allen (who platoons with Chuck Klein and occasionally spells\nRose at first), and it's a credit to the Phillies that they've been able to\nsustain their pace.  The picthers have slumped at times.\"  So came the\nanalysis from Frank Chance.\n     The Cubs got that run back when Bell bunted for a hit, Thomas' grounder\nmoved him to second, and - after Sandberg made out - Billy Williams singled\nhome a run.  In the sixth, Ron Santo launched a two-run homer to make it\n3-1.  Dick Redding got in trouble in the eighth, as Schmidt singled and Klein\nsingled him to third.  Ed Reulbach entered to face Fox, but Dick Allen popped\nout of the dugout to hit.  Allen doubled to right, but luckily for the Cubs,\nWilliams had moved to left and Andre Dawson had been inserted for defense.\nHe fired a bullet to home plate to keep Klein at third.  Lance Parrish, hitting\nfor Boone, was walked, and Bruce Sutter entered.  Larry Bowa grounded into\na 1-2-3 double play, but Ed Delahanty walked as a pinch-hitter.  Desiring a\nstrikeout, since Ashburn was likely to attempt a bunt hit with the quick\nTrillo pinch-running at third, Chance brought in Lee Smith, who induced a\npop-up to the catcher from the speedy centerfielder, ending the inning.  The\nCubs took the win, 3-2, moving a game behind the Phillies.\n     Steve Carlton was called upon to battle 3-Finger Brown Saturday.  To get\nanother righthander in the lineup, Ron Santo moved to first and Bill Madlock\nplayed third.  Unfortunately, Brown allowed six doubles, and the Cub bullpen\nwas worn down even more, as the Cubs tried to maintain a lead against\nLefty.  Madlock, batting sixth, had knocked two doubles of his own, driving\nhome four runs.  Gabby Hartnett hit two home runs, and Cuyler added\nanother, and the score was 8-6, Cubs after six innings.  The Phillie bullpen\nhad more troubles in the bottom of the eighth, as the Cubs grabbed 3 more\nruns to ice an 11-7 triumph.\n     Sunday's twin bill saw Cool Papa Bell gather seven straight hits at one\npoint, including a rare outside-the-park home run in the second game, off\nRobin Roberts.  Grover Alexander of the Phils took the first contest, 4-2, but\nthe Cubs captured the second one 5-4, with Waddell gaining the win.  Bruce\nSutter tossed two innings for the save, though he allowed one run in the\neighth.  The Cardinals stood half a game behind these co-leaders, and would\nconclude their series with the Expos on Monday.\n-------------------------------------------------------------------\n     Montreal at St. Louis(August 3-6): 3-way tie for 1st\n     Dennis Martinez is on a roll, and he continued it versus John Tudor Friday.\nThe Expos have a wide variety of hitters, and - while they aren't among the\nall-time greats, they are getting the job done.  After winning their first\nfirst two games, they suddenly found themselves only 2 1/2 games out of\nfirst in this wacky season.\n     Martinez triumphed 5-3 on Friday, and WIlliams outdueled Dizzy Dean 3-2\nSaturday.  However, the Cardinals refused to give up, winning 6-2 on Sunday.\nThe Cards captured Monday's game, too, as Steve Carlton outdueled Steve\nRogers 3-2.  \"We're really good against ground ball pitchers because of our\nteam speed,\" remarked Lou Brock.  \"I don't see why we can't win this\ndivision.\"\n     The Phillies and Cubs may have some reasons for them.  Two-thirds of\nthe way through the season, there is a 3-way tie for first.\n-------------------------------------------------------------------\n     New York at Pittsburgh(August 3-6): 3 straight 3-2 wins for Bucs,\nnow 2 back - but in 4th!\n    \"When your team is in a slump like we are, the worst thing is to play in a\npitcher's park like this,\" spoke Gil Hodges before the series.  Keith\nHernandez added that \"their defense takes away quite a few runs per year,\nand it must be giving them an extra 6-7 wins.\"  The Pirates have made only\n26 errors all season, 6 ahead of the second place Dodgers.  Error totals tend\nto be around 50 for the best defensive All-Time teams.\n     Rube Foster defeated Sid Fernandez 5-2 Friday, and Candelaria outshone\nSeaver 3-2 Saturday, in a game featuring some outstanding defense.  When\nNolan Ryan and two relivers 6-hit the Mets in another 3-2 win Sunday, the\nPirates could once again look forward to a victory getting them back to the\n.500 mark.  They had been unable to several times in the past month.  Bert\nBlyleven met Dwight Gooden in the afternoon game.  Both pitchers possessed\nfantastic stuff, and the only runs scored through eight innings were on home\nruns - a solo shot by Rusty Staub of the Mets and a two-run blast by Ralph\nKiner for the Pirates.  The Mets' Darryl Strawberry singled home a run in the\ntop of the ninth off Jesse Orosco, working his second inning, after Mookie\nWilson pinch-ran for Gary Carter at second.  With one out and a runner on\nfirst, Lee Mazilli was sent in to pinch-hit.  The Pirates countered with Kent\nTekulve, placing him in the fifth spot in the order and putting Barry Bonds in\nleft field as the ninth place hitter.  Tekulve induced a groundout forcing\nStrawberry at second.  He slid hard into Honus Wagner, preventing the\nPirates from turning their fifth double play of the afternoon.  Tekulve\nallowed a hit, but Clemente threw Mazilli out at third from near the right\nfield line, ending the inning.  Tug McGraw relieved Randy Myers, who entered\nto pitch the eighth, and got one out before Bonds launched a rocket to deep\ncenter, running through the stop sign at third to score an inside-the-park\nhomer to win.  The Pirates had scored an improbable 3 straight 3-2 wins,\nand had moved to within 2 games of first place, with seven weeks to go.\n------------------------------------------------------------------\n     San Francisco at Boswaukta(August 3-5): \n    Another Sunday doubleheader appeared on the schedule, as the Giants\nmanaged to close the gap on the other teams thanks to some starting\npitching that just wouldn't tire.  In fact, reported manager John McGraw,\n\"once this rough part of the schedule is over, maybe as early as this coming\nweek, we may shift to a 4-man rotation again for a little while.\"\n     Juan Marichal continued his hot pitching Friday, beating Lew Burdette and\nthe Braves 4-1.  Willie Mays had all four r.b.i.s on 3 hits.  Rick Reuschel\nfaced Joe Niekro Saturday in a slugfest.  The Braves' park had been a homer\nhaven, but this took the cake, as the Giants won a seesaw affair 16-13.\nWillie Mays had three homers, Willie McCovey, Eddie Matthews, and Don\nBaylor had two, and Hank Aaron, Ernie Lombardi, Biz Mackey, and Mel Ott had\none each.  The Braves had collected 149 home runs going into Sunday's\ndoubleheader, putting them on a pace for 223, which would be 4 short of the\nNational League record.  They were still a tad behind the '61 Yankees' pace.\nThey had allowed over 120, though.  Vida Blue actually got the win after\nretiring 2 batters in the fifth.  He allowed only a run in the sixth, but\nfaltered in the seventh.  Joe McGinnity earned the save.\n     In the doubleheader, the Braves' Hoyt Wilhelm failed to hold a lead in the\nfirst game, but Hank Aaron homered off Bill Foster in the eighth as the\nBraves won, 4-3.  The Giants took the second game, however, by a 6-2 score.\nThe homer by Aaron was a magical #150 by the Braves; however, they fell to\nthree game below .500, making a comeback extremely unlikely.\n-------------------------------------------------------------------\n     San Diego at Cincinnati(Aug. 3-5):  Randy Jones faced Ewell\nBlackwell in the first of this 3-game series, and the Padres felt rather\ngood.  With Don Mattingly straining his back in the last Cleveland game, the\ntrade looked even better.  McGriff's batting average was even rising.  Of\ncourse, the bench was very poor, and Joe Gordon was only adequate in the\noutfield, but these were minor problems, since the pitching was holding up.\n     Jones pitched a good game Friday, and won 6-3.  McGriff launched two\nhome runs.  Mel Harder earned a win with the help of Mark Davis and Ray\nNarleski Saturday; 5-4 was the final score.  Tom Candiotti battled Satchel\nPaige to a 3-3 tie through eight innings before departing.  The game was\nscoreless for 4 more innings until the thirteenth.  Paige had departed after\n10, and John Franco hurled a scoreless inning.  Tom Browning was working\nhis second scoreless inning, when Dave Winfield doubled with one out and\nJoe Gordon was pitched around.  Thurm Munson doubled both runners home,\nand the Padres gamed a 5-3 win.  The three-game sweep had pulled the\nGiants into a tie with the Reds.  Though the Reds denied it, the highly\nemotional series with the Dodgers may have taken too much out of them.\n-------------------------------------------------------------------\n     Brookangeles at Houston(August 3-5):\n     Another series capped off by a weekend doubleheader took place in the\nwide open plains of the Astrodome.  The Astros sent Joe Niekro to the hill in\nthe first game, opposite Don Drysdale.  \"Normally,\" Drysdale remarked, \"I\nwould be challenging hitter by being ready to throw at them.  I can't afford\nto with this team, though; we have to get our own runners going; we can't\nafford to let the Astros beat us.\"  He then winked and said: \"Well, maybe\nDavis will get decked once.\"\n     The fact that Glenn Davis leads the team in homers with six (!) is\nprimarily why he would be decked, but it should be understood that his\ncurrent pace would give him nine for the season.  The hitting on this team is\na little better, but the power is all doubles and triples.  Still, Carl Furillo is\nthe main reason no Astro home runs were hit over the weekend, as he threw\ntwo runners out trying for inside-the-park homers.  For those unaware of\nthe nastness of the Astros' park, they have a 23-foot high gray wall all\naround the outfield; balls must be hit into the seats to be home runs.  The\nfoul poles are 355 feet from home plate, but the alleys are 400 feet away,\nwith center field at 420 feet.  \"It's as if some three-year-old threw a\ntantrum and told his playmates: 'If I can't hit home runs, nobody will hit\nhome runs',\" remarked Roy Campanella.\n     The Dodgers stole five bases Friday, but the Astros decided to revitalize\nthe Baltimore chopping that had failed 6 weeks before; for tonight, anyway,\nDavis, Jim Wynn, and Jose Cruz did not have to mess with their swings,\naccording to the manager.  After Poles and Willie Wells reached base via the\nBaltimore chop, Drysdale decked Jose Cruz with a pitch.  He responded with\na two-run double, but Wynn - playing first for Davis - popped up, and the\nAstros didn't score any more in that inning.  They did score 3 in the fourth to\nerase a 3-2 deficit, and the Astros wound up winning 6-4.  They threatened\nto do even better the next game, as Tommy John would be their opponent.\nWalt Alston met privately with the starters at 6 A.M. before the game.\n     \"I think I know how we can beat the Baltimore Chop,\" he explained.\n     \"How can we do that,\" Pee Wee Reese wondered.\n     \"They're going to be beating the ball down, so we've got to be ready to\nthrow on the run.  Steve will start at first to dig balls out of the dirt, but I\nwant all of you to practice your barehanded picks and throws.  We'll go with\na shallow infield almost the whole time.\"\n     The plan almost worked.  Mike Scott allowed only two runs through eight\ninnings, but the Astros got three; two of them scored when Bill Doran\npushed a bunt into the outfield in the fourth with runners on second and\nthird.  3-2 Astros was the final, with Dave Smith earning another save.  The\nDodgers scored a victory in the first game of the twin bill Sunday, as Nolan\nRyan walked five, three of whom scored in a 4-1 Dodger win.  Fernando\nValenzuela lost the second game 4-2 to Don Sutton, however, as the Dodgers'\nthirteen stolen bases in the series proved to not be enough.\n     \"We're mostly a power team,\" remarked Ron Cey.  \"Jackie and, when he\nplays, Maury Wills are our only real speed demons, though a couple other\nplays can do it now and then.  We're sunk in a place like the Astrodome.  I\nguess that's why they're so successful there.\"  Indeed, it seems that\nbasestealing teams give them the most trouble in the dome.  The 'Stros\nswiped 12 bases in 16 attempts, giving them 230 on the season.\n     Standings after these weekend series:\nA.L.East\nTeam                     W           L           GB\nNew York                68        42          --\nCleveland               65        46          3.5\nDetroit                 64        46           4\nBoston                  64        47          4.5\nBaltimore               59        52         9.5\nToronto                 43         69        25.5\nWashington              39         73          28\n\nA.L.West\nOaksaselphia            63         48          --\nMinnesota               61         48            1\nChicago                 59         53          4.5\nKansas City             57         54          6.5\nCalifornia              57         56            8\nMilwaukee               45         66           17\nSeattle                 32         78         31.5\n\nN.L.East\nChicago          57         53                --\nPhiladelphia     58         54                --\nSt. Louis        58         54                --\nPittsburgh       56         56                2\nMontreal         53         56               3.5\nNew York         48         64               10\n\nN.L.West\nBrookangeles     66          46               --\nCincinnati       66           47              0.5\nSan Francisco    65          46               0.5\nBoswaukta        54           56               11\nHouston          50          61               17.5\nSan Diego        36          75                29.5\n-- \nDoug Fowler: dxf12@po.CWRU.edu  : Me, age 4 & now: \"Mommys and Daddys & other\n    Ever wonder if, after Casey : relatives have to give lots of hugs & love\nmissed the 3rd strike in the poem: & support, 'cause Heaven is just a great\nhe ran to first and made it?     : big hug that lasts forever and ever!!!\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2743, "properties": {"category": "comp.windows.x", "text": "From: steerr@h01.UUCP (R. William Steer)\nSubject: X server for NT?\nOrganization: The Internet\nLines: 5\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: cognac!sunpitt!expo.lcs.mit.edu!xpert@sunpitt.East.Sun.COM\n\nDoes anybody have an X server for NT that they're willing to share files\nor experiences?\n\nBill Steer\nWestinghouse\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2744, "properties": {"category": "comp.windows.x", "text": "From: boote@eureka.scd.ucar.edu (Jeff W. Boote)\nSubject: Re: Mwm title-drag crashes X server (SIGPIPE)\nOrganization: NCAR/UCAR\nLines: 24\n\nIn article <4378@creatures.cs.vt.edu>, ramakris@csgrad.cs.vt.edu (S.Ramakrishnan) writes:\n> \n>    Environment:\n>       mach/arch : sparc/sun4  (IPX)\n>       OS\t: SunOS 4.1.3\n>       X11\t: X11R5 (patchlevel 22)\n>       Motif\t: 1.2.2\n> \n> I bring up X server using 'startx' and /usr/bin/X11/Xsun. The following sequence\n> of actions crashes the X server (SIGPIPE, errno=32, 'xinit' reports that connexion \n> to X server lost):\n\nI had this problem as well - It had to do with the CG6 graphics card that\ncomes with the IPX.  What fixed the problem for me was to apply the \"sunGX.uu\"\nthat was part of Patch #7.  Patch #1 also used this file so perhaps you\ndidn't apply the one that came with Patch #7.\n\njeff\n-\nJeff W. Boote  <boote@ncar.ucar.edu>      *********************************\nScientific Computing Division             * There is nothing good or bad  *\nNational Center for Atmospheric Research  * but thinking makes it so.     *\nBoulder                                   *                   Hamlet      *\n                                          *********************************\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2745, "properties": {"category": "misc.forsale", "text": "From: dwilson@csugrad.cs.vt.edu (David Wilson)\nSubject: VIDEO CAMERA, AMIGA 3000 For Sale as of 4/16\nLines: 46\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 46\n\nIf you are interested in (any of) the following, please contact me:\n        EMail           mbeck@vtssi.vt.edu\n        Phone           (703)552-4381\n        USMail          Michael Beck\n                        1200 Progress Street #5500E\n                        Blacksburg, Virginia 24060\n~~~~~~~~~~FOR SALE as of 12AM 4/16/93~~~~~~~~~~\n \n1       PANASONIC AF X8 CCD OmniMovie Camcorder\n                VHS HQ\n                High Speed Shutter\n                Flying Erase Head\n                ca. 3 years old, but only used VERY lightly\n                Date/Time stamp\n                Counter/Memory\n                Rec Review\n                Fade\n                Back Light\n                Auto/Manual Focus\n                Built in microphone/Jack for external microphone\n                Comes with:\n                        Sturdy aluminum/hardplastic carrying case\n                                (20\" long X 13\" wide X 6\" high)\n                        Shoulder strap\n                        Power adaptor/battery charger\n                        Battery pack\n                        Remote recording controller\n                        UHF/VHF ---> cable adaptor\n                        Audio/Video cables and adaptor\n                Aproximate dimensions (measured around outmost features)\n                        15\" long X 4\" wide X 8\" high (w/ handle)\n                ASKING PRICE:  $BEST OFFER  ($700 new price)\n \n1       AMIGA 3000UX    25mhz, unix compatible machine w/100 meg Hard\n                Drive, 4 meg RAM, no monitor, keyboard (ESC and ~ keys \n                broken)\n                ASKING PRICE:   $1500 OBO.\n \nmult.   PROTEON P1390 token ring cards          \n \nSOLD!!     AT&T Portable Cellular Phone, Model 3730\n                ASKING PRICE:   $SOLD FOR $350 (Listed at $600 new)\n \nSOLD!!  COMPAQ LTE/286 laptop - contact for details\n                BEST OFFER SO FAR $SOLD FOR $475\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2746, "properties": {"category": "rec.sport.hockey", "text": "From: sclark@epas.utoronto.ca (Susan Clark)\nSubject: Re: Bay area media (Wings-Leafs coverage)\nOrganization: University of Toronto - EPAS\nNntp-Posting-Host: epas.utoronto.ca\nLines: 11\n\n\tYeah, the news is true...the Leafs lost to the Wings 6-3.\nWish I could say I'd seen the whole game but my husband wanted\nto watch \"Young Guns II\" on another channel. Sometime between\nthe first time I tuned in and d saw the Leafs tie and the next time\nI tuned in and heard the score was 5-1, something happened.\n\tPlease no woofing from Red Wings fans.  They're my third\nfavourite team, and if they make it past the Leafs I'll wish them\nluck.  As for Potvin...well, it WAS his fist playoff game.\n\nSusan Carroll-Clark\nWho likes ANYONE Doug Gilmour plays for\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2747, "properties": {"category": "rec.motorcycles", "text": "From: asper@calvin.uucp (Alan E. Asper)\nSubject: Re: V-max handling request\nOrganization: /usr/lib/news/organization\nLines: 12\nNNTP-Posting-Host: calvin.sbc.com\n\nIn article <1993Apr15.222224.1@ntuvax.ntu.ac.sg> ba7116326@ntuvax.ntu.ac.sg writes:\n>hello there\n>ican anyone who has handson experience on riding the Yamaha v-max, pls kindly\n>comment on its handling .\n\nI've ridden one twice. It was designed to be a monster in a straight line,\nwhich it is. It has nothing on an FZR400 in the corners. In fact, it just\ndidn't handle that well at all in curves. But hey, that's not what it\nwas designed to do.\nMy two cents,\nAlan\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2748, "properties": {"category": "rec.motorcycles", "text": "From: frank@marvin.contex.com (Frank Perdicaro)\nSubject: ST1100 ride\nKeywords: heavy\nLines: 95\n\nSixteen days I had put off test driving the Honda ST1100.  Finally,\nthe 17th was a Saturday without much rain.  In fact it cleared up, \nbecame warm and sunny, and the wind died.  About three weeks ago, I\ntook a long cool ride on the Hawk down to Cycles! 128 for a test ride.\nThey had sold, and delivered, the demo ST1100 about fifteen hours\nbefore I arrived.  And the demo VFR was bike-locked in the showroom --\nsurrounded by 150 other bikes, and not likely to move soon.\n\nToday was different.  There were even more bikes.  50 used dirt bikes,\n50 used street bikes, 35 cars, and a big tent full of Outlandishly Fat\nTouring Bikes With Trailers were all squeezed in the parking lot.\nSome sort of fat bike convention.  Shelly and Dave were running one\nMSF course each, at the same time.  One in the classroom and one on\nthe back lot.  Plus, there was the usuall free cookout food that\nCycles! gives away every weekend in the summer.  Hmmm, it seemed like\na big moto party.\n\nAfter about ten minutes of looking for Rob C, cheif of sales slime,\nand another 5 minutes reading and signing a long disclosure/libility/\npray-to-god form I helped JT push the ST out into the mess in the\nparking lot.  We went over the the controls, I put the tank bag from \nthe Hawk into the right saddlebag, and my wife put everything else\ninto the left saddlebag.  ( Thats nice.... )  Having helped push the \nST out to the lot, I thought it best to have JT move it to the edge of\nthe road, away from the 100+ bikes and 100+ people.  He rode it like a\nbicycle!  'It cant be that heavy' I thought.\n\nWell I was wrong.  As I sat on the ST, both feet down, all I could \nthink was \"big\".  Then I put one foot up.  \"Heavy\" came to mind very\nquickly.  With Cindy on the back -- was she on the back?  Hard to \ntell with seat three times as large as a Hawk seat -- the bike seemed\nnearly out of control just idling on the side of the road.\n\nBy 3000 rpm in second gear, all the weight seemed to dissappear.  Even\non bike with 4.1 miles on the odometer, slippery new tires, and pads that \ndid not yet bite the disks, things seems smooth and sure.  Cycles! is\non a section of 128 that few folks ever ride.  About 30 miles north\nof the computer concentration, about five miles north of where I95\nsplits away, 128 is a lighly travelled, two lane limited access\nhighway.  It goes through heavily forested sections of Hamilton, \nManchester-by-the-Sea and Newbury on its way to Gloucester.\nOn its way there, it meets 133, a road that winds from the sea about\n30 miles inland to Andover.  On its way it goes through many\nthoroughly New England spots.  Perfect, if slow, sport touring sections.\n\nCindy has no difficulty with speed.  3rd gear, 4th gear, purring along\nin top gear.  This thing has less low rpm grunt that my Hawk.  Lane \nchanges were a new experience.  A big heft is required to move this \nthing.  Responds well though.   No wallowing or complaint.  Behind the\nfairing it was fairly quiet, but the helmet buffeting was\nnon-trivial.  Top gear car passing at 85mph was nearly effortless.\nSmooth, smooth, smooth.   Not sure what the v4 sound reminds me of,\nbut it is pleasant.  If only the bars were not transmitting an endless\nbuzz.\n\nThe jump on to 133 caused me to be less than impressed with the\nbrakes.  Its a down hill, reversing camber, twice-reversing radius,\ndecreasing radius turn.  A real squeeze is needed on the front binder.  \nThe section of 133 we were on was tight, but too urban.  The ST works ok\nin this section, but it shows its weight.  We went by the clam shack\noft featured in \"Spencer for Hire\" -- a place where you could really \nfind \"Spencer\", his house was about 15 miles down 133.  After putting\nthrough traffic for a while, we turned and went back to 128.\n\nAbout half way through the onramp, I yanked Cindy's wrist, our singal\nfor \"hold on tight\".  Head check left,  time to find redline.  Second\ngear gives a good shove.  Third too.  Fourth sees DoD speed with a \nshort shift into top.  On the way to 133 we saw no cops and very light\ntraffic.  Did not cross into DoD zone because the bike was too new.\nWell, now it had 25 miles on it, so it was ok.  Tried some high effort\nlane changes, some wide sweeping turns.  Time to wick it up?  I went \nuntil the buffeting was threating to pull us off the seat.  And stayed\nthere.  When I was comfortable with the wind and the steering, \nI looked down to find an indicated 135mph.  Not bad for 2-up touring.\n\nBeverly comes fast at more than twice the posted limit.  At the \"get\noff in a mile\" sign, I rolled off the throttle and coasted.  I wanted\nto re-adjust to the coming slowness.  It was a good idea:  there were\nseveral manhole-sized patches of sand on the exit ramp.  Back to the \nslow and heavy behavior.  Cycles! is about a mile from 128.  I could \nsee even more cars stacked up outside right when I got off.  I managed\nto thread the ST through the cars to the edge of the concrete pad\nout front.  Heavy.  It took way too much effort for Cindy and I to put\nthe thing on the center stand.  I am sure that if I used the side\nstand the ST would have been on its side within a minute.\n\n\nMy demo opinion?  Heavy.  Put it on a diet.  Smooth, comfortable,\nhardly notices the DoD speed.   I'd buy on for about $3000 less than \nlist, just like it is.  Too much $ for the bike as it is.\n-- \n\t Frank Evan Perdicaro \t\t\t\tXyvision Color Systems\n      Legalize guns, drugs and cash...today.\t\t101 Edgewater Drive\n   inhouse: frank@marvin, x5572\t\t\t\tWakefield MA\nouthouse: frank@contex.com, 617-245-4100x5572\t\t018801285\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2749, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Re: was: Go Hezbollah!!\nOrganization: University of Illinois at Urbana\nLines: 45\n\namehdi@src.honeywell.com (Hossien Amehdi) writes:\n\n>In article <C5IFH7.3q4@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n>>\n>>What the hell do you know about Israeli policy?  What gives you the fiat\n>>to look into the minds of Israeli generals?  Has this 'policy of intimidation'\n>>been published somewhere?  For your information, the actions taken by Arabs,\n>>specifically the PLO, were not uncommon in the Lebanon Campaign of 1982.  My\n>>brain is full of shit?  At least I don't look into the minds of others and \n>>make Israeli policy for them!\n>>\n>... deleted\n\n>I am not in the business of reading minds, however in this case it would not\n>be necessary.  Israelis top leaders in the past and present, always come across\n>as arrogant with their tough talks trying to intimidate the Arabs.  \n\nHow would you deal with Arabs who ALWAYS threaten to drive you into the sea or\nburn half your conuntry?  Would you talk nicely?  Would you say please?  You\nwouldn't.  The language of the middle east is power and force.  Sorry - that\nis the way it is now.  If you aren't strong, you go down.  Israel has to talk \nand act tough.  Notice, Israel talks and acts tough in battle, but is willing\nto talk peace.\n\n>The way I see it, Israelis and Arabs have not been able to achieve peace\n>after almost 50 years of fighting because of the following two major reasons:\n\n> 1) Arab governments are not really representative of their people, currently\n>    most of their leaders are stupid, and/or not independent, and/or\n>    dictators.\n\nTrue - and they have brainwashed their people into thinking Jews are some sort\nof monsters.  Arab non-recognition of Israel and support of war and terror\nis also an important factor, wouldn't you say?\n\n> 2) Israeli government is arrogant and none comprising.\n\nWhat do you want Israel to do?  They are negotating? I'm sick of people calling\nfor Israel to withdraw from the territories now.  That's not realistic, don't\nyou realize that?  A solution must be negotiated.  It is on the table.  Have\npatience.  \n\nEd.\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2750, "properties": {"category": "misc.forsale", "text": "From: thssgkg@iitmax.iit.edu (Gulshan K Garg)\nSubject: Fax Modem Card Wanted\nKeywords: Fax, Modem Card\nOrganization: Illinois Institute of Technology / Academic Computing Center\nDistribution: chi\nLines: 8\n\n I am looking out for an inexpensive fax modem card for PC. If you have one to sell, please e-mail \n\n\nGulshan Garg\nthssgkg@iitmax.iit.edu\n312/942-1977 (H)\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2751, "properties": {"category": "soc.religion.christian", "text": "From: abigail@ramsey.cs.laurentian.ca (Shawn Abigail)\nSubject: Re: ONLINE BIBLE as bible study\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 54\n\nIn <Apr.15.00.58.10.1993.28876@athos.rutgers.edu> eng10205@nusunix1.nus.sg (LING SIEW WEE) writes:\n\n>Hello, I am about to embark on a bible study on ACTS. I have online\n>bible software with me. I would like to know the the background of the\n>authors of its various topics articles and about the author of the\n>People's New Testament. I need to know how realible is the articles in\n>the Online Bible software. Specifically (for your convenience) I want to\n>know about the :\n\n\n>               1. Darby Translation ( I have never heard of this one)\n\nJ.N. Darby was one of the founders of the \"Plymouth Brethren\" and an\nearly supporter of dispensationalism.  F.F. Bruce highly approved\nof his translation.  He also translated the Bible into several other\nlanguages.\n\n>               2. Young's Literal Translation (I have also never heard\n>of)\n\nThis was from the same fellow who did Young's Concordance, which was\na standard reference work, similar to Strong's concordance.\n\n>               3. The realiability of the Hebrew/Greek Lexicon\n\nI believe that these just follow standard reference works.\n\n>               4. The authors (from which denomination etc) of the\n>articles in the TOPICS modules.\n\nSome are by Larry Pierce (\"Brethren\"), some are by Baptists, and I\nthink that Thompson (of chain reference fame) was Presbyterian)\n\n>               5. The realiability of the Treasury of Scripture\n>Knowlege ( as I have never heard of too) \n\nAnother standard reference work that has been around for decades.\nA new version was just released and is available through Christian\nBook Distributers.\n\n>               6. Who are the commentators, Scofield and B.W. Johnson\n>who wrote the Scofield Reference Bible and the People's New Testament respectively \n\nC.I. Scofield was the creator of the Scofield Reference Bible.  For many\npeople (but not me), this is THE STUDY BIBLE.  The notes are strongly\ndispensational.\n\n>               7. The realiability of the Strong numbers.\n\nThese are probably the most accurate Strong's numbers available.\n\n\nShawn Abigail\nabigail@ramsey.cs.laurentian.ca\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2752, "properties": {"category": "comp.windows.x", "text": "From: kobet@xsun2a.ct.picker.com (Harry J Kobetitsch)\nSubject: xwd\nNntp-Posting-Host: 144.54.64.38\nOrganization: Picker International, Inc.\nDistribution: na\nLines: 13\n\nI am trying to run xwd on a Sun SPARCstation IPX\nwith SunOS 4.1.2 and Openwindows 3.0. I am using\nthe Motif window manager. I have been unsuccessful\nin using xwd under Motif. I get the following when\ndoing xwd -out xwd.dmp\n\nX Error of failed request:  BadDrawable (invalid Pixmap or Window parameter)\n  Major opcode of failed request:  73 (X_GetImage)\n  Resource id in failed request:  0x500043\n  Serial number of failed request:  213\n  Current serial number in output stream:  213\n\nDoes anyone have any insight to this ?\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2753, "properties": {"category": "rec.motorcycles", "text": "From: davet@interceptor.cds.tek.com (Dave Tharp CDS)\nSubject: Re: Happy Easter!\nOrganization: Tektronix - Colorado Data Systems, Englewood, CO\nLines: 17\n\nIn article <1993Apr15.171757.10890@i88.isc.com> jeq@lachman.com (Jonathan E. Quist) writes:\n>Rolls-Royce owned by a non-British firm?\n>\n>Ye Gods, that would be the end of civilization as we know it.\n\n  Why not?  Ford owns Aston-Martin and Jaguar, General Motors owns Lotus\nand Vauxhall.  Rover is only owned 20% by Honda.\n\n-----------------------------------------------------------------------------\n| Dave Tharp                      | DoD #0751   | \"You can't wear out       |\n| davet@interceptor.CDS.TEK.COM   | MRA #151    |   an Indian Scout,        |\n| '88 K75S  '48 Indian Chief      | AHRMA #751  |  Or its brother the Chief.|\n| '75 R90S(#151) '72 TR-2B(#751)  | AMA #524737 |  They're built like rocks |\n| '65 R50/2/Velorex  '57 NSU Max  |             |   to take the knocks,     |\n|       1936 BMW R12              | (Compulsive | It's the Harleys that     |\n| My employer has no idea.        |   Joiner)   |   give you grief.\"        |\n-----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2754, "properties": {"category": "sci.electronics", "text": "From: johnh@macadam.mpce.mq.edu.au (John Haddy)\nSubject: Re: HC11 blues -> no can find\nOrganization: Macquarie University\nLines: 38\nDistribution: world\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\n\nIn article <pat.734048757@fegmania.wustl.edu>, pat@fegmania (Patrick Niemeyer) writes:\n|> ree88132@zach.fit.edu (Keith Ledig) writes:\n|> \n|> >was told by other people that it just takes a long time.  I heard\n|> >rumors that the HC11 is very hard to get these days and is being\n|> >replaced by the 711 series.  The sales person is trying to push\n|> >the 711.  Can someone please tell me what is going on with these\n|> >microcontrollers.  I can't seem to get a straight answer.\n|> \n|> I too had trouble finding hc11's when I looked for them a while back.\n|> I'd be interesting in hearing if anyone knows about their availability now...\n|> \n|> Thanks,\n|> Pat\n\n\nThe HC711 is an EPROM version of the HC11. Raw HC11 parts have factory set\nROM images, and as such are useless to the hobbyist. HC811 parts have\nEEPROM, allowing for electrical erasure and reprogramming.\n\nSome Motorola parts (such as the HC705K1) have EPROM, making them user\nprogrammable, but come with options of either windowed or sealed. The\nmore expensive windowed packages allow multiple use, the plastic dip\nvarieties are one-time programmable, since there is no way of exposing\nthe EPROM array to light.\n\nJohnH\n\n----------------------------------------------------------------------------\n\n      |  _  |_   _   |_|  _   _|  _|              Electronics Department\n    |_| (_) | | | |  | | (_| (_| (_| \\/           School of MPCE\n    ---------------------------------/-           Macquarie University\n                                                  Sydney, AUSTRALIA 2109\n\n    Email: johnh@mpce.mq.edu.au, Ph: +61 2 805 8959, Fax: +61 2 805 8983\n\n----------------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2755, "properties": {"category": "talk.politics.guns", "text": "From: earlw@apple.com (Earl Wallace)\nSubject: Re: 2ND AMENDMENT DEAD - GOOD !\nOrganization: .\nLines: 22\nNNTP-Posting-Host: apple.com\n\nIn article <1993Apr18.001319.2340@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n  >...\n  >In the near future, federal martials will come for your arms.\n  >No one will help you. You are more dangerous, to their thinking,\n  >than the 'criminal'. This is your own fault. \n  >\n  >The 2nd amendment is dead. Accept this. Find another way.\n\nYou know, in many ways this might be just the kick we need to straighten\nthings out in this country.  Also, people would have a need to replace\nguns with something else, perhaps deadly sprays that would make Mace and OC\nseem like water.  They would be lighter and easier to conceal.\n\nGuns are really \"old\" in design and as long as we have tons of them, no one\nis motivated to design something better.  I'm sure we could come up with\nsome real nasty stuff if we tried and getting rid of these guns would get\nus moving on this track asap.  This is what we really want, right?  Stuff\nthat's smaller, lighter and far more deadly.\n\nRemember, in this country we'll really scramble to accomplish impossible\nfeats if we are motivated enough and I think \"self-defense\" is high on our\nlist of motivators.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2756, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Thomas Kephart <kephart@snowhite.eeap.cwru.edu>\nSubject: Re: Why does Apple give us a confusing message?\nOrganization: Case School of Engineering\nLines: 17\nDistribution: world\nNNTP-Posting-Host: b62182.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7F766054B01F2E6@b62182.student.cwru.edu>\nX-XXDate: Sun, 18 Apr 93 20:09:41 GMT\n\nIn article <ferch.735165123@swiss.ucs.ubc.ca> Les Ferch, ferch@ucs.ubc.ca\nwrites:\n> Afterall, Apple's literature is not always 100% correct. A funny one I\n> noticed recently is that some of the brochures on the Macs with CD\n> capability refer to the \"auto inkjet\" feature. This should have read\n\"auto\n> inject\" feature (as it does on some other correct brochures I've seen\nfrom\n> Apple). Since it was correct on some older brochures, I can only guess\n> that someone edited the copy, saw \"inject\" and thought it was a typo and\n> changed it to the more familiar word \"inkjet\".\n> \n> Hmmm, what would that be? A printer built into the CD player? A way of\n> *writing* information to a CD? :-) :-)\n\nHow do you think they get the cool images on the top serface of CD's \nanyway?  They gotta have something to do the top surface artwork...\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2757, "properties": {"category": "sci.space", "text": "From: arthurc@sfsuvax1.sfsu.edu (Arthur Chandler)\nSubject: Stereo Pix of planets?\nOrganization: California State University, Sacramento\nLines: 5\n\nCan anyone tell me where I might find stereo images of planetary and\nplanetary satellite surfaces?  GIFs preferred, but any will do.  I'm\nespecially interested in stereos of the surfaces of Phobos, Deimos, Mars\nand the Moon (in that order).\n  Thanks. \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2758, "properties": {"category": "sci.crypt", "text": "From: langford@gems.vcu.edu\nSubject: Re: Organized Lobbying for Cryptography\nOrganization: Medical College of Virginia\nLines: 29\n\nIn article <1993Apr20.213718.23129@husc3.harvard.edu>, kubo@zariski.harvard.edu (Tal Kubo) writes:\n \n> Having mentioned the possible dangers of unwelcome political associations,\n> I would be remiss not to suggest something in the opposite direction:\n> gathering the support of the NRA by emphasizing the RKBA side of the\n> issue as well as the First-Amendment side.\n> \n> Tal  kubo@math.harvard.edu\n> \n> \nHmmm, this gave me an interesting idea.  How about this argument:\n\n1)  Second Amendment gives us the right to keep and bear arms.\n\n2)  Strong cryptography is \"arms\", according to the U.S. government (that's\n    why it's so hard to export).\n\nTherefore, we have a constituitional right to strong cryptography!  \nQ.E.D.\n\nHowever, it's likely to be as hard or harder to exercise this right as it\nis getting to exercise the other rights that the government is slowly\nrestricting.  Maybe the NRA _would_ be the best existing organization?\n(Although I think a new one might be better, but perhaps would take too long\nto start up.  I would certainly join.)\n-- \n| From the electronic desk of Bob Langford          Health Sciences Computing\n| 804-786-9843   (fax: 804-786-9807)         Virginia Commonwealth University\n| e-mail:  langford@gems.vcu.edu     [or]     langford@vcuvax  (for BITNET)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2759, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: kenny@castle.ed.ac.uk (K J MacDonald)\nSubject: Upgrade 386SX-25 to 386DX-40 ?\nOrganization: Edinburgh University\nLines: 41\n\nI'm thinking of splashing out on a new motherboard for my PC. I am\nrunning Linux as my main OS, with a small DOS partition left for my\nflatmates' games.\n\nMy current setup is a 386SX-25 (AMD) with 387SX-25 (ITT - I think) and 9\nMbytes of 70ns SIMMS, and (120+100)Mbyte IDE.\n\nBasically I have two choices\n\n1) Get a 386DX-40 + 387DX-40  or\n2) Get some sort of 486.\n\nUnfortunately I live in the UK where computer prices are far too high.\nThe first option works out at about \\pounds 200. 486 m/boards start at\nthis price for a SX-25.\n\nI have a couple of questions.\n\n1) How much of an improvement in speed should I notice if I get a\n386DX+copro. Remember I'm using a 32 bit OS, and alot of Floating Point\noperations.\n\n2) How much faster would a 486DX-33 be than the 386DX-40+copro ?\n\nShould I get an upgradeable m/board with a 386DX-40 and wait for\nAMD/Pentium price pressure to reduce the costs of the 486 ?\n\n\tAny experiences will be most helpful ...\n\n\t\tKenny.\n\nPS. Example prices:\n\n\t386DX-40+copro M/board\t~$270\n\t486DX33\tM/board\t\t~$580\n\n-----------------------------------------------------------\nKenneth MacDonald\t\tE-mail kenny@castle.ed.ac.uk\nDept. of Geology & Geophysics\nUniversity of Edinburgh\t\tScotland\n-----------------------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2760, "properties": {"category": "soc.religion.christian", "text": "From: vbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.)\nSubject: Re: The arrogance of Christians\nOrganization: Case Western Reserve Univ. Cleveland, Ohio (USA)\nLines: 56\n\nIn article <Apr.10.05.32.29.1993.14388@athos.rutgers.edu> caralv@caralv.auto-trol.com (Carol Alvin) writes:\n>vbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) writes:\n>\n>No, IMO, Mr. Stowell missed the point.\n>\n>> \t\"We affirm the absolutes of Scripture, not because we are arrogant\n>> moralists, but because we believe in God who is truth, who has revealed His\n>> truth in His Word, and therefore we hold as precious the strategic importance\n>> of those absolutes.\"\n>\n>Mr. Stowell seems to have jumped rather strangely from truth to absolutes.\n>I don't see how that necessarily follows.  \n>\n>Are all truths also absolutes?\n>Is all of scripture truths (and therefore absolutes)?\n>\n>If the answer to either of these questions is no, then perhaps you can \n>explain to me how you determine which parts of Scripture are truths, and\n>which truths are absolutes.  \n\nThe answer to both questions is yes.\n\nAll Scripture is true, being inspired by God.  The evidence for this\nclaim has been discussed ad nauseum in this group.\n\nSimilarly, all truth is absolute.  Indeed, a non-absolute truth is a \ncontradiction in terms.  When is something absolute?  When it is always\ntrue.  Obviously, if a \"truth\" is not always \"true\" then we have a\ncontradiction in terms.  \n\nMany people claim that there are no absolutes in the world.  Such a\nstatement is terribly self-contradictory.  Let me put it to you this\nway.  If there are no absolutes, shouldn't we conclude that the statement,\n\"There are no absolutes\" is not absolutely true?  Obviously, we have a\ncontradiction here.\n\nThis is just one of the reasons why Christians defy the world by claiming\nthat there are indeed absolutes in the universe.\n\n>There is hardly consensus, even in evangelical \n>Christianity (not to mention the rest of Christianity) regarding \n>Biblical interpretation.\n\nSo?  People sometimes disagree about what is true.  This does not negate\nthe fact, however, that there are still absolutes in the universe.  Moreover,\nevangelical Christianity, at least, still professes to believe in certain\ntruths.  Man is sinful, man needs salvation, and Jesus is the propitiation\nfor mankind's sins, to name a few.  Any group that does not profess to\nbelieve these statements cannot be accurately called evangelical.\n\n\n-- \nVirgilio \"Dean\" Velasco Jr, Department of Electrical Eng'g and Applied Physics \n\t CWRU graduate student, roboticist-in-training and Q wannabee\n    \"Bullwinkle, that man's intimidating a referee!\"   |    My boss is a \n   \"Not very well.  He doesn't look like one at all!\"  |  Jewish carpenter.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2761, "properties": {"category": "rec.motorcycles", "text": "From: robinson@cogsci.Berkeley.EDU (Michael Robinson)\nSubject: Krypto cables (was Re: Cobra Locks)\nOrganization: Institute of Cognitive Studies, U.C. Berkeley\nLines: 51\nDistribution: usa\nNNTP-Posting-Host: cogsci.berkeley.edu\n\nIn article <1993Apr20.184432.21485@research.nj.nec.com> behanna@syl.nj.nec.com (Chris BeHanna) writes:\n>\tFor the same money, you can get a Kryptonite cable lock, which is\n>anywhere from 1/2\" to 7/8\" thick steel cable (looks like steel rope), shielded\n>in a flexible covering to protect your bike's finish, and has a barrel-type\n>locking mechanism.  I don't know if it's adjustable, but my source says it's\n>more difficult to pick than most locks, and the cable tends to squish flat\n>in bolt-cutter jaws rather than shear (5/8\" model).\n>\n>\tFYI, I'll be getting a Krypto cable next paycheck.\n\nA word of warning, though:  Kryptonite also sells almost useless cable\nlocks under the Kryptonite name.\n\nWhen I obtained my second motorcycle, I migrated one of my Kryptonite \nU-locks from my bicycle to the new bike.  I then went out shopping for\na new lock for the bicycle.\n\nFor about the same money ($20) I had the choice of a Kryptonite cable lock\n(advantages: lock front and back wheels on bicycle and keep them both,\nKryptonite name) or a cheesy no-name U-lock (advantages: real steel).\nI chose the Kryptonite cable.  After less than a week, I took it back in\ndisgust and exchanged it for the cheesy no-name U-lock.\n\nFirst, the Krypto cable I bought is not made by Kryptonite, is not covered by\nthe Kryptonite guarantee, and doesn't even approach Kryptonite standards of\nquality and quality assurance.  It is just some generic made-in-Taiwan cable\nlock with the Kryptonite name on it.\n\nSecondly, the latch engagement mechanism is something of a joke.  I\ndon't know if mine was a particularly poor example, but it was often\nquite frustrating to get the latch to positively engage, and sometimes\nit would seem to engage, only to fall open when I went to unlock it.\n\nThirdly, the lock has a little plastic door on the keyway which serves\nthe sole purpose of frustrating any attempt to insert the key in the \ndark.  I didn't try it (obviously), but I have my doubts that the \nlock mechanism would stand up to an \"insert screwdriver and TORQUE\"\nattack.\n\nFourthly, the cable was not, in my opinion, of sufficient thickness to \ndeter theft (for my piece of crap bicycle, that is).  All cables suffer the\nweakness that they can be cut a few strands at a time.  If you are patient\nyou can cut cables with fingernail clippers.  Aviation snips would go \nthrough the cable in well under a minute.\n\n\n\n-- \n  ----------------------------------------------------------------------------\n  Michael Robinson                          UUCP:   ucbvax!cogsci!robinson\n                                        INTERNET: robinson@cogsci.berkeley.edu\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2762, "properties": {"category": "rec.motorcycles", "text": "From: jeq@lachman.com (Jonathan E. Quist)\nSubject: Re: Happy Easter!\nNntp-Posting-Host: birdie.i88.isc.com\nOrganization: Lachman Technology, Incorporated, Naperville, IL\nLines: 13\n\nIn article <1993Apr15.071740.17850@hasler.ascom.ch> kevinh@hasler.ascom.ch writes:\n>BA were trying to sell RR to BMW - even tested a BMW V16 in a Corniche!! I\n>think it will remain British for the time being - until BA get hard up \n>anyway!\n\nRolls-Royce owned by a non-British firm?\n\nYe Gods, that would be the end of civilization as we know it.\n-- \nJonathan E. Quist        jeq@lachman.com       Lachman Technology, Incorporated\nDoD #094, KotPP, KotCF '71 CL450-K4 \"Gleep\"                 Naperville, IL\n __       There's nothing quite like the pitter-patter of little feet,\n \\/                   followed by the words \"Daddy!  Yay!\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.127+0000", "event": "documents", "entityId": 2763, "properties": {"category": "comp.sys.mac.hardware", "text": "From: aa341@Freenet.carleton.ca (David A. Hughes)\nSubject: Sound Recording for Mac Portable?\nReply-To: aa341@Freenet.carleton.ca (David A. Hughes)\nOrganization: The National Capital Freenet\nLines: 14\n\n\nDoes anyone know what hardware is required and where I could find it for\nsound recording on the  Mac Portable.\n\nThanks\n-- \nDavid Hughes                    |aa341@Freenet.carleton.ca\nSecretary                       |\nNational Capital FreeNet        |VE3 TKP\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2764, "properties": {"category": "talk.politics.guns", "text": "Subject: Re: \"Proper gun control?\" What is proper gun cont\nFrom: kim39@scws8.harvard.edu (John Kim)\nOrganization: Harvard University Science Center\nNntp-Posting-Host: scws8.harvard.edu\nLines: 17\n\nIn article <C5JGz5.34J@SSD.intel.com> hays@ssd.intel.com (Kirk Hays) writes:\n>I'd like to point out that I was in error - \"Terminator\" began posting only \n>six months before he purchased his first firearm, according to private email\n>from him.\n>I can't produce an archived posting of his earlier than January 1992,\n>and he purchased his first firearm in March 1992.\n>I guess it only seemed like years.\n>Kirk Hays - NRA Life, seventh generation.\n\nI first read and consulted rec.guns in the summer of 1991.  I\njust purchased my first firearm in early March of this year.\n\n NOt for lack of desire for a firearm, you understand.  I could \nhave purchased a rifle or shotgun but didn't want one.\n-Case Kim\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2765, "properties": {"category": "talk.politics.guns", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Don't knock the Glock (was Re: My Gun is like my Am Ex Card)\nLines: 36\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\nDistribution: usa\n\n\nIn article <93104.231049U28037@uicvm.uic.edu>, Jason Kratz <U28037@uicvm.uic.edu> writes:\n>In article <1qie2rINN1b9@cae.cad.gatech.edu>, vincent@cad.gatech.edu (Vincent\n>Fox) says:\n>>\n>All your points are very well taken and things that I haven't considered as\n>I am not really familiar enough with handguns.\n>\n>>Some police departments switched to Glocks, and then started quietly\n>>switching many officers back to the old revolvers. Too many were having\n>>accidents, partly due to the poor training they received. Not that Glocks\n>>require rocket scientists, but some cops are baffled by something as complex\n>>as the timer on a VCR.\n>\n>Hell, a Glock is the last thing that should be switched to.  The only thing\n>that I know about a Glock is the lack of a real safety on it.  Sure there is\n>that little thing in the trigger but that isn't too great of a safety.\n\nAhem!!!  Hrumph!!!!  You have encurred the wrath of Glock owners.  We will beat\nyou with our hammers.  Oooops, don't have any  :-)\n\nSeriously.  There is no difference in the safeties betweena Glock and any DA\nrevolver.  Intellectually, think of the Glock as a very high cap revolver. \nIgnoring stove pipes, misfeeds and all the other bonus exercises that\nautoloaders give you, that is.\n\nEvery gun has its safe moment and its dangerous moment.  If you just learn how\nto handle it, it becomes a lot less dangerous (to you).\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\npyron@skndiv.dseg.ti.com          |solutions, not gestures.\nPADI DM-54909                     |\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2766, "properties": {"category": "rec.autos", "text": "From: mwbg9715@uxa.cso.uiuc.edu (Mark Wayne Blunier)\nSubject: Re: male/female mystery [ Re: Dumbest automotive concepts of all time ]\nArticle-I.D.: news.C52M5t.n55\nOrganization: University of Illinois at Urbana\nLines: 30\n\nbets@chester.ksu.ksu.edu (Beth Schwindt) writes:\n\n>>This has me thinking.  Is there a biological reason why women can't put\n>>their keys in their pants pockets like men do?  I have two pockets on the\n>>back of each of my pants.  I put my keys in one and wallent in another.\n>>Many of the pockets even have a botton on them so I can close them securely.\n>>Everything is that much simpler for me.  Why can't women do the same?\n>>Is is biological (ie, not enough room for a bigger bottom plus keys and\n>>a wallet) or is it the way they are raised by the parents? \n\n>I've found that it has to do with the way women's clothes are made.\n>If you put keys in the front pocket of women's jeans or slacks, you\n>get a bulge that also tends to make it impossible to sit down because\n>they stick you constantly.  ditto in the back pocket.\n\n>Also, try *looking* at the back pockets of women's jeans and compare\n>them to the back pockets on men's jeans.  They are usually (if you buy\n>jeans that you expect to last for any length of time) about half the\n>size.  There flat out isn't *room* for a wallet or a bunch of keys.\n\n>Besides which, where would men put all their crap if their wives\n>didn't carry purses? :-)\n\nThe same place single men do, wallet in back pocket, comb in other\nback pocket, keys in front pocket, knive in other from pocket, pen\nin shirt pocket, or front pants pocket.  Or do married men start\ncarrying around a bunch of stuff to keep there women happy?\n\n>Beth\nMark B.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2767, "properties": {"category": "alt.atheism", "text": "Subject: Re: Speculations\nFrom: dgraham@bmers30.bnr.ca (Douglas Graham)\nOrganization: Bell-Northern Research, Ottawa, Canada\nLines: 17\n\nIn article <930405.172903.4w6.rusnews.w165w@mantis.co.uk> mathew <mathew@mantis.co.uk> writes:\n>Nanci Ann Miller <nm0w+@andrew.cmu.edu> writes:\n>> If this god is truly omnipotent as you folks like to claim, then why can't\n>> he terminate eternity?\n>\n>For the same reason he can't flibble glop ork groink.\n>\n>The thing you are demanding that he must be able to do, has no meaning in its\n>own terms.\n\nThis is a classic example of excessive faith in reason.  The fact that we\nhave trouble talking about something doesn't imply that it is impossible; it\nsimply implies that it is hard to talk about.  There is a very good chance\nthat God *can* flibble glop ork groink.  Charlie Wingate can flibble glop\nork groink, and he isn't even God.\n--\nDoug Graham         dgraham@bnr.ca         My opinions are my own.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2768, "properties": {"category": "sci.med", "text": "From: aliceb@tea4two.Eng.Sun.COM (Alice Taylor)\nSubject: accupuncture and AIDS\nOrganization: Sun Microsystems, Inc.\nLines: 8\nDistribution: world\nReply-To: aliceb@tea4two.Eng.Sun.COM\nNNTP-Posting-Host: tea4two\n\nA friend of mine is seeing an acupuncturist and\nwants to know if there is any danger of getting\nAIDS from the needles.\n\nThanks,\n\n\t-alice\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2769, "properties": {"category": "talk.politics.misc", "text": "From: miner@kuhub.cc.ukans.edu\nSubject: <None>\nDistribution: usa\nOrganization: University of Kansas Academic Computing Services\nLines: 22\n\nIn article <1993Apr12.183349.23115@kadsma.kodak.com>, pajerek@telstar.kodak.com (Don Pajerek) writes:\n\n[...]\n\n> What I see is that the media is reasonably fair, but is seen as\n> 'liberal' by conservatives, and 'conservative' by liberals.\n\nNot that I think anyone cares, but this pattern (using other examples\nof course) was discussed 2,000 years ago by Aristotle in\n_Nicomachean_Ethics_.   Note that you can't use this insight to reason\nbackwards; e.g.:  Since the conservatives see the media as liberal and\nthe liberals see the media as conservative, the media are fair!  (though\nI've seen this \"reasoning\" implied)  \n\n> Don Pajerek\n> \n> Standard disclaimers apply.\n\nKen\n-- \nminer@kuhub.cc.ukans.edu | Nobody can explain everything to everybody.\nopinions are my own      | G. K. Chesterton\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2770, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ccw@lancelot.NoSubdomain.NoDomain (Christopher Wood)\nSubject: Re: How long do RAM SIMM's last?\nOrganization: Bellcore, Livingston, NJ\nDistribution: usa\nLines: 21\n\nIn article <noah-160493095418@noah.apple.com>, noah@apple.com (Noah Price) writes:\n|> In article <1993Apr11.234818.1755@ultb.isc.rit.edu>,\n|> jek5036@ultb.isc.rit.edu (J.E. King) wrote:\n\n|> > Doesn't a 1 MB SIMM have about 1024 * 1024 * 8 moving flip-flops?\n\n|> They don't move, to anybody much bigger than an electron :-)\n\nDynamic RAM is not based on flip-flops; there's basically a single\ntransistor and capacitor to store each bit!  Static RAM is based on\nflip-flops, and is much more expensive and much less dense.  And\nneither has any parts that \"move\", if electrons and thermal expansion\nare ignored...\n\n|> noah\n\nChris\n\n-- \nChris Wood     Bellcore   ccw@ctt.bellcore.com\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2771, "properties": {"category": "sci.med", "text": "From: Nigel@dataman.demon.co.uk (Nigel Ballard)\nSubject: Re: Sarchoidosis \nDistribution: world\nOrganization: Infamy Inc.\nReply-To: Nigel@dataman.demon.co.uk\nX-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)\nLines: 34\n\n>>       Hello,\n>>Does anybody know if sarchoidosis is a mortem desease ?\n>>(i.e if someone who tooke this desease can be kill\n>>bye this one ?)\n>\n>People have died from sarcoid, but usually it is not\n>fatal and is treatable.\n>----------------------------------------------------------------------------\n>Gordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\n>geb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n>----------------------------------------------------------------------------\n\nHi there\nI'm suffering from Sarcoidosis at present.  Although it's shown as a\nchronic & rare tissue disorder, it is thankfully NOT life threatening.\n\nThe very worsed thing that can happen to a non-treated sufferer is\nglaucoma.  My specialists are bombarding me with Prednisolone E.C. (a\ncortico-steriod) and after four months at 20mg a day, it's totally done\naway with my enlarged lymph glands, so somethings happening for the\ngood!\n\nCheers Nigel\n\n   ************************************************************************\n   * NIGEL BALLARD  | INT: nigel@dataman.demon.co.uk  | MEXICAN FOOD      *\n   * BOURNEMOUTH    | CIS: 100015.2644   RADIO-G1HOI  | GUINNESS ON TAP   *\n   * UNITED KINGDOM | AMAZING! and all down two wires | TALL SKINNY WOMEN *\n   ************************************************************************\n    Two penguins are walking along an iceberg. The first penguin turns to\n    the second penguin and says \"it looks like you are wearing a tuxedo.\"\n    The second penguin turns to the first penguin and says, \"maybe I am.\"\n   ************************************************************************\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2772, "properties": {"category": "talk.politics.misc", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: Re: Foreign Media Reaction April 1-12, part 1 of 3\nLines: 84\nReply-To: hallam@zeus02.desy.de\nOrganization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n\n\nIn article <1993Apr13.234600.14061@r-node.hub.org>, ndallen@r-node.hub.org (Nigel Allen) writes:\n\n|>Here is a press release from the United States Information Agency.\n|>\n|> Digest of Foreign Media Reaction from the United States Information\n|>Agency April 12 (1 of 3)\n|> To: National Desk\n|> Contact: Anne Chermak of the United States Information Agency,\n|>          202-619-6511\n|>\n|>   WASHINGTON, April 13  -- Following is part one\n|>of a digest of foreign media reaction from April 1-12, compiled\n|>by the United States Information Agency:\n|>\n|>                   TERRORISM AND WORLD INSECURITY\n|>\n|>   In recent editorials, Iran was universally recognized as\n|>te source of the double threat of state-sponsored terrorism\n|>and Islamic extremism.  But beyond this fear and condemnation,\n|>journalists found little common ground that would compel both\n|>North and South, and Arab and non-Arab nations to work together\n|>to combat the global threat of terrorism.  For example, Egyptian\n|>and Algerian papers were in the forefront in charging U.S. complicity\n|>in the current instability in the Middle East.  Those commentators\n|>asserted that the United States had promoted Islamic fundamentalism\n|>during the Afghanistan War and had further added to regional\n|>instability by alternately encouraging Iraq and Iran.\n\nThe cads! The fact that this is precisely what the US was up to of\ncourse is not mentioned. It is a fact that Regan and Bush sold arms\nto Iran, it is also a fact that they supported and armed Iraq.\n\nStill this is state dept propaganda so none too surprizing.\n\n|>   India's papers weighed the pros and cons of helping the West to\n|>identify Pakistan's role in promoting terrorism, noting on the one\n|>hand that doing so could \"bring ruination to Islamabad's Kashmir\n|>cause\" but, on the other, could also bring India's security apparatus\n|>uncomfortably close to the CIA and the Mossad.  Arab papers continued\n|>to portray Iraq and Libya as being unfairly treated by the UN while\n|>Israel remains unpunished for resolutions which it has violated.\n\nIn the case of Lybia there is the problem that the US only decided\nthat Gadffii ordered the bombing after it needed to make peace with\ndamascus during the gulf war. One day the US is certain that its Syria,\nthe next Lybia. For a strange reason the US will not provide evidence to\nLybian courts for extradition proceedings. Faced with similar demands the\nUSA would reject them as would any other country.\n\n\n|>   Concerning Northern Ireland, President Clinton's message of\n|>consolation to the victims of the Warrington bombing was seen in\n|>British tabloids as signalling a tougher stance by the American\n|>government against violence by the IRA.\n\nThe word is \"terrorism\".\n\n\nThe problem is that after the behaviour of George Bush the USA has an\nimage abroad as doing precisely what it likes and is in its own interests\nthen comming out with a Dysney scripted sugary justification repeating a\nfitting combination of the words \"freedom\" \"dignity\" \"democaracy\" or\nof \"terrorism\" \"dictatorship\" etc as appropriate.\n\nThe USA could go quite far to mend the bridges with  Iran. The people there are\nrather pissed off because the USA first supported the Shah who they\nloathed and then supported Saddam when he mounted an unprovoked attack. \nHardly surprizing after the embassy hostage crisis but Iran is meant to be\nthe country run by unreasonable bigots not the USA so if there is to be\nmovement it would be easier for the USA to move.\n\nFirst off they could recognise Iraqu's responsibility in initiating the\nIran/Iraq war. Providing technical assistance to Iran to get it's oil\nproduction back up to capacity would also be a smart move, at the moment \nIran is above it's OPEC ceiling. If they had extra capacity they would\nuse it and bring down the oild price further which is in our interests.\n\nThe Iranian clerics would have an interest in seeking a raprochment \nsimply because a permanent war footing is debilitating. They also need\nwestern technology. \n\n\nPhill Hallam-Baker\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2773, "properties": {"category": "rec.motorcycles", "text": "From: groh@nu.cs.fsu.edu (Jim Groh)\nSubject: Re: KREME\nOrganization: Florida State University Computer Science Department\nReply-To: groh@nu.cs.fsu.edu\nDistribution: rec\nLines: 18\n\nIn article <1993Apr14.143716.18174@vax5.cit.cornell.edu> na4@vax5.cit.cornell.edu writes:\n>Hi folks!\t\t\n>\n>Recently saw one post about KREME being a *bad idea*, but that was only\t\n>one man's opinion.  \t\n>\n>Any one else have any experience with the stuff?\t\n>\n>\n\nOn my 59 sporty I had some pinhole leaks open up on the back seam.  I kreme\nit about a year ago and have had no problems at all.  Be real careful as\nthe cleaning part of the solution is hell on paint.\n  -Jim\n\n-- \nJim Groh     groh@sig.cs.fsu.edu  | DoD #0356  |   Hog# 0437643 |new  improved\n1959 XLH 900  **  1982 FXR  **  1989 XLH 883  **  1990 XLH 1200 | smaller sig\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2774, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 38\n\n\nIn article <9304141620.AA01443@dangermouse.mitre.org>, jmeritt@mental.mitre.org writes:\n|> Leviticus 21:9\n|> And the daughter of any priest, if she profane herself by playing the\n|> whore, she profaneth her father: she shall be burnt with fire.\n|> \n|> Deuteronomy 22:20-21\n|> ...and the tokens of virginity be not found for the damsel: then they shall\n|> bring out the damsel to the door of her father's house, and the men of the\n|> city shall stone her with stones that she die...\n|> \n|> Deuteronomy  22:22\n|> If a man be found lying with a woman married to a husband, then they shall\n|> both of them die...\n|> \n|> Deuteronomy 22:23-24\n|> If a damsel that is a virgin be betrothed unto a husband, and a man find her\n|> in the city, and lie with her; then ye shall bring them both out unto the\n|> gate of that city, and ye shall stone them with stones that they die...\n|> \n|> Deuteronomy 22:25\n|> BUT if a man find a betrothed damsel in the field, and the man force her,\n|> and lie with her: then the man only that lay with her shall die.\n\nThese laws written for the Israelites, God's chosen people whom God had\nexpressly set apart from the rest of the world.  The Israelites were a\ndirect witness to God's existence.  To disobey God after KNOWing that God\nis real would be an outright denial of God and therefore immediately punishable.\nRemember, these laws were written for a different time and applied only to \nGod's chosen people.  But Jesus has changed all of that.  We are living in the\nage of grace.  Sin is no longer immediately punishable by death.  There is\nrepentance and there is salvation through our Lord Jesus Christ.  And not just\nfor a few chosen people.  Salvation is available to everyone, Jew and Gentile\nalike.\n\nGod be with you,\n\nMalcolm Lee  :)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2775, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: [soc.motss, et al.] \"Princeton axes matching funds for Boy Scouts\"\nArticle-I.D.: po.kmr4.1447.734101641\nOrganization: Case Western Reserve University\nLines: 28\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1993Apr6.041343.24997@cbnewsl.cb.att.com> stank@cbnewsl.cb.att.com (Stan Krieger) writes:\n\n>The point has been raised and has been answered.  Roger and I have\n>clearly stated our support of the BSA position on the issue;\n>specifically, that homosexual behavior constitutes a violation of\n>the Scout Oath (specifically, the promise to live \"morally straight\").\n\n\tPlease define \"morally straight\". \n\n\t\n\t\n\tAnd, don't even try saying that \"straight\", as it is used here, \nimplies only hetersexual behavior. [ eg: \"straight\" as in the slang word \nopposite to \"gay\" ]\n\n\n\tThis is alot like \"family values\". Everyone is talking about them, \nbut misteriously, no one knows what they are.\n---\n\n        \"One thing that relates is among Navy men that get tatoos that \n        say \"Mom\", because of the love of their mom.  It makes for more \n        virile men.\"\n\n        Bobby Mozumder  ( snm6394@ultb.isc.rit.edu )\n        April 4, 1993\n\n        The one TRUE Muslim left in the world. \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2776, "properties": {"category": "comp.windows.x", "text": "From: abarden@tybse1.uucp (Ann Marie Barden)\nSubject: X-Terminal Config. file question\nOrganization: Tybrin Corporation, Shalimar, FL\nDistribution: usa\nLines: 19\n\n  QUESTION:\n  What is the EXACT entry (parameter and syntax please), in the X-Terminal\nconfiguration file (loaded when the X-Terminal boots), to add another system \nto the TCP/IP access control list?   \n\n  BACKGROUND:\n  I have two unix systems, 1. an AT&T 3B2 running X11R3 and MIT's X11R4 and \n2. a Sun SS10 without any X.  \n  I want to have a window to the Sun and the 3B2 on the NCD X-Terminal at the\nsame time.  I can do this if I manually set the Network Parameter TCP/IP\nAccess Control List to off, then login to my telnet session. Not Great!  \n  I've tried to get \"xhost\" to work and failed.  Either my syntax is wrong\nor the X11R3 implementation is bogus.  \n  I am trying to edit the NCD configuration file that is loaded when the \nNCD boots.  No matter what entry I add or edit, the NCD still boots with\nthe TCP/IP Access Control list containing only the 3B2.\n  My manuals are worthless so any help would be most appreciated!!  Thanks!\n\nAnn Marie Barden  \tabarden@afseo.eglin.af.mil\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2777, "properties": {"category": "talk.politics.mideast", "text": "From: arf@genesis.MCS.COM (Jack Schmidling)\nSubject: Re: NEWS YOU MAY HAVE MISSED, Apr 20\nOrganization: MCSNet Contributor, Chicago, IL\nLines: 65\nNNTP-Posting-Host: localhost.mcs.com\n\nIn article <1993Apr19.165514.17138@porthos.cc.bellcore.com> bf3833@pyuxe.cc.bellcore.com (feigenbaum,benjamin) writes:\n>In article <1qu7op$456@genesis.MCS.COM>, arf@genesis.MCS.COM (Jack Schmidling) writes:\n>>  \n>>             NEWS YOU MAY HAVE MISSED, APR 19, 1993\n>>  \n>>           Not because you were too busy but because\n>>             Israelists in the US media spiked it.\n>>  \n>>                      ................\n>>  \n>>  \n>>                   THOSE INTREPID ISRAELI SOLDIERS\n>>   \n>>  \n>>  Israeli soldiers have sexually taunted Arab women in the occupied Gaza Strip \n>>  during the three-week-long closure that has sealed Palestinians off from the \n>>  Jewish state, Palestinian sources said on Sunday.\n>>  \n>>  The incidents occurred in the town of Khan Younis and involved soldiers of\n>>  the Golani Brigade who have been at the centre of house-to-house raids for\n>>  Palestinian activists during the closure, which was imposed on the strip and\n>>  occupied West Bank.\n>>  If you are as revolted at this as I am, drop Israel's best friend email and \n>>  let him know what you think.\n>>  \n>>  \n>>            75300.3115@compuserve.com (via CompuServe)\n>>            clintonpz@aol.com         (via America Online)\n>>            clinton-hq@campaign92.org (via MCI Mail)\n>>  \n>>  \n>>  Tell 'em ARF sent ya.\n>>  \n>>                   ..................................\n>>  \n>>  If you are tired of \"learning\" about American foreign policy from what is \n>>  effectively, Israeli controlled media, I highly recommend checking out the \n>>  Washington Report.  A free sample copy is available by calling the American \n>>  Education Trust at:\n>>                       (800) 368 5788\n>>  \n>>                   Tell 'em arf sent you.\n>>  \n>>  js\n>>  \n>>  \n>> \n>\n>I took your advice and ordered a copy of the Washinton Report.  I\n>heartily recommend it to all pro-Israel types for the following \n>reasons:\n>\n>1.  It is an excellent absorber of excrement.  I use it to line\n>    the bottom of my parakeet's  cage.  A negative side effect is\n>    that my bird now has a somewhat warped view of the mideast.\n>\n>2.  It makes a great April Fool's joke, i.e., give it to someone\n>    who knows nothing about the middle east and then say \"April\n>    Fools\".\n>\n\nClearly, if a Chutzpa reacts this way, it must be worth reading by \nmore objective types.  You are so wrapped up in your hate that you\ncan't even take the time to edit out my long posting.  Thanks for\nthe extra milege by reposting it.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2778, "properties": {"category": "sci.electronics", "text": "From: levy@levy.fnal.gov (Mark E. Levy, ext. 8056)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nNntp-Posting-Host: levy.fnal.gov\nOrganization: Fermilab Computing Division\nLines: 22\n\nIn article <1qngqlINNnp8@shelley.u.washington.edu>, whit@carson.u.washington.edu (John Whitmore) writes:\n> In article <C5L5x0.KJ7@vcd.hp.com> johne@vcd.hp.com (John Eaton) writes:\n>>-s87271077-s.walker-man-50- (swalker@uts.EDU.AU) wrote:\n> \n>>During the nuclear fission reaction the uranium fuel can get hot enough\n>>to melt. When this happens the liquid uranium is pumped to the cooling\n>>tower where it is sprayed into the air. \n...\n>>Contact with the cool outside air\n>>will condense the mist and it will fall back to the cooling tower floor.\n>>There it is collected by a cleaning crew using shop vacs and is then\n>>reformed into pellets for reactor use the next day.\n\nAnother April 1 posting.  Ahhh.\n\n================================================================================\n[ Mark E. Levy, Fermilab          |                                            ]\n[ BitNet:   LEVY@FNAL             | Unix is to computing                       ]\n[ Internet: LEVY@FNALD.FNAL.GOV   |       as an Etch-a-Sketch is to art.       ]\n[ HEPnet/SPAN: FNALD::LEVY (VMS!) |                                            ]\n================================================================================\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2779, "properties": {"category": "sci.space", "text": "From: Wales.Larrison@ofa123.fidonet.org\nSubject: Space Advertising (1 of 2)\nX-Sender: newtout 0.08 Feb 23 1993\nLines: 81\n\nBrian Yamauchi asks: [Regarding orbital billboards...]\n>And does anyone have any more details other than what was in the WN\n>news blip?  How serious is this project?  Is this just in the \"wild\n>idea\" stage or does it have real funding?\n  \n    Well, I had been collecting data for next edition of the\nCommercial Space News/Space Technology Investor... To summarize:\n  \nSPACE ADVERTISING\n    First, advertising on space vehicles is not new -- it is very\ncommon practice to put the cooperating organization's logos on the\nspace launch vehicle.  For example, the latest GPS launcher had the\n(very prominent) logos on its side of\n   - McDonnell Douglas (the Delta launcher)\n   - Rockwell International (who built the GPS satellite)\n   - USAF (who paid for the satellite and launch), and\n   - the GPS/Navstar program office\n   This has not been considered \"paid advertising\" but rather\n\"public relations\", since the restrictions have been such that only\norganizations involved in the launch could put their logos on the\nside, and there was no money exchanged for this.  [However, putting\na 10' high logo on the side of the launch vehicle facing the cameras\nis \"advertising\" as much as it is \"public relations\", in my\nopinion.]  [And by the way, I note that the DC-X test vehicle has\nrather prominent McDonnell-Douglas and SDIO logos on the side...]\n   There have been several studies looking at the revenue potentials\nfor use of space vehicles for advertising, or placing large\nadvertising signs in orbit.  On the shuttle, for example, I know of\nseveral serious studies in the early and mid 1980's which looked at\nputting logos on the external tank, or on the sides of the payload\nbay.  These ventures would be different than \"public relations\", in\nthat the logos or displays would not be restricted to the firms\nparticipating on that flight, and would involve payment of sums for\nthe right to fly the logos in a prominent organization.  (For\nexample, painting the ET to look like a Pepsi can, or putting a\nDisneyworld logo on the inside of the payload bay where the cameras\nwould scan past it.)\n  \nADVERTS ON LAUNCH VEHICLES\n   The first paid advertising was done on a Soviet launcher in about\n1990, when several non-involved foreign organizations were allowed\nto pay to put their logos on a Proton launch.  (An Italian shoe\ncompany was one of the first advertisers, I remember.)  Similarly,\nSoviet cosmonauts on Mir made a paid advertisement for the last\nOlympic games, and have gleefully shown banners and other items from\nparticipating firms and organizations.  Mars candy bars, for\nexample, got a plug from orbit as a sponsor of the launch of the\nBritish visiting cosmonaut to Mir.\n   Now US firms are starting to put paid advertisements on launch\nvehicles.  The upcoming Conestoga launch (in June) putting the COMET\nrecoverable payload capsule into orbit will have paid advertisements\non the side, for Arnold Schwarzenegger's upcoming movie \"The Last\nAction Hero\".  Besides the usual logos of the participating\norganizations, Columbia pictures has paid $500,000 to put ads on the\nmain fuselage of the mission's Conestoga rocket, its booster\nrockets, and on the COMET payload, which will orbit the Earth for\none month.  A concept for this advertising display was published in\nSpace News magazine a couple of months ago.\n   (As a side note: Robert Lorsch, an advertising executive, is\ntalking about suing NASA.  He charges NASA with appropriating an idea he\ncreated with the space agency in 1981 to form corporate advertising\nsponsorships on NASA spacecraft as a way to get funding for the\nspace program.  Lorsch contends that in selling advertising space on\nthe upcoming COMET, NASA violated an agreement that it \"would not use\nhis idea without him being the exclusive representative for NASA and\nreceiving compensation.\"   This is being disputed, since the launch\nis a \"commercial launch\" and NASA is receiving none of the\nadvertising revenues, but the funding for the COMET program is\ncoming from NASA.)\n  \nORBITAL \"BILLBOARDS\"\n   Orbital \"billboards\" have been the staple of science fiction for\nsome time.  Arthur C. Clarke wrote about one example, and Robert\nHeinlein described another in \"The Man Who Sold the Moon\".  Several\ndifferent potential projects have been developed, although none have\nbeen implemented, but the most real prior to 1993 being the \"Eiffel\nII\" project, which would have placed a large inflatable sculpture in\norbit to celebrate the French Republic's Bi-centennial.\n                                                (cont)\n\n--- Maximus 2.01wb\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2780, "properties": {"category": "sci.electronics", "text": "From: rbn@apple.com (Robert B. Neville)\nSubject: Oscilliscopes for sale\nOrganization: Apple Computer, Inc., Cupertino, California\nLines: 37\nNNTP-Posting-Host: apple.com\n\nRecently I posted two oscilliscopes for sale. One has sold, the other is\nstill available:\n Used, good condition:\n Hitachi V-422 40MHz Dual-Channel Portable Analog Oscilliscope\n   o 1mV/div\n   o DC offset\n   o alternate magnification (10x magnified & non-magnified\n     waveform)\n   o VERT mode trigger\n   o TV sync separation circuit\n List price      $910.00 (...and the price Fry's electronics just\n                         quoted!) :-(\n Sells for       $699.99 (JDR MicroDevices current price)\n                 $745.95 (Products International)\n Your price used $425.00 obo\n...I haven't gotten an offer at the asking price, so 'obo' applies...\n\nI also have a 'broken' version of the scope which sold:\n JDR 2000 20MHz Dual-Channel Portable Analog Oscilliscope\n   o 5mV/div\n   o Component Tester (resistors/caps/diodes/coils)\n   o TV video sync filter\n   o z-axis input (intensity modulation)\n\n'Broken' means: The CRT produces a nice, bright trace, but the trace does\nnot correspond to the input signal. My guess is it's repairable but more\nthan a simple calibration problem...but I honestly have not tried to\ncalibrate the scope or otherwise fix it. It's 'as-is'.\nI paid $60 for it in its current state (I bought it thinking I'd repair it,\nusing the 'good' scope for side-by-side comparison...since I've sold the\n'good' scope, the 'bad' one doesn't do me much good) and I'd like to recoup\nthat amount. As above, I'll accept offers and take the best one.\n\nI'd prefer a local (Bay Area, California) buyer, so (a) I don't have to\nship it and (b) she or he can examine the scope prior to purchase.\n\nrbn@apple.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2781, "properties": {"category": "talk.politics.guns", "text": "From: shaffer@achilles.ctd.anl.gov (Michael A. Shaffer)\nSubject: Re: BATF/FBI revenge\nOrganization: Argonne National Laboratory\nLines: 29\n\nHmmm... I hadn't heard about rockets. ATF must be escalating their\ntall tails... anyway\n>If they had rocket launchers and such (as the press and gov claims) why\n>shouldn't they have done something?\n\nWhy should they have \"done something\"? The Davidians had not attacked\nor even threatened anyone.\n\n>What possible use would a religious cult have for a rocket launcher?\n\nIt is not yours nor the governments right to tell others what they have\na legitimate right to own.\n\n>Also, is child abuse covered by the Bill of Rights?\n\nIs child abuse now within the jurisdiction of the department of the\ntreasury? Attacking citizens without due process on the strength of\nunsubstantiated rumors about a violation of a law which does not\nfall under your jurisdiction is a pretty serious breech of rights.\n\n>Shit, if people dont get what they want right away there is an instant >problem.\n>Clinton has only been in office for a few months.  Give him a chance to get\n>something done.  The guy had a lot of shit thrown in his lap in the beginning.\n>Give him a chance to work on things a little.  As they say - Rome wasn't built\n>in a day.\n\nIf he gets any more done we will really be in trouble!\n\n\t\t\t\tmike\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2782, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rwag@gwl.com (Rodger Wagner)\nSubject: Running C++ EXE under Windows 3.1\nReply-To: rwag@gwl.com\nOrganization: The Great-West Life Assurance Company.\nX-Disclaimer:  The views expressed in this message are those of an\n\tindividual at The Great-West Life Assurance Company and do\n\tnot necessarily reflect those of the company.\nLines: 17\n\nPreface: I am a novice user at best to the Windows environment.\n\nI am trying to execute a MS C++ 7.0 executable program which accesses a Btrieve\ndatabase to build an ASCII file.  \n\nWhen I execute it under windows the screen goes blank and my PC locks up.  The only\nway for me to return is to reset the machine.\n\nDoes anyone have any insight on what I may have to do in order for the program to\ncorrectly under windows?  (By the way it runs fine in DOS 5.0)\n\nSystem:  Gateway 486/DX250 \n\t ATI Graphics Ultra Card 640x480\n\nAny help would be greatly appreciated.\n\nRodger  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2783, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: plus minus stat\nOrganization: University of Toronto Chemistry Department\nLines: 8\n\nIt is meaningless to compare one player's plus/minus statistic with\nanother players' out of the context of the role and the playing time\nof the players involved.    \n\nTo compare Jagr's and Francis's plus/minus is ridiculous and absurd...\n\nGerald\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2784, "properties": {"category": "rec.autos", "text": "From: behanna@phoenix.syl.nj.nec.com (Chris BeHanna)\nSubject: Re: CAR INSURANCE !!! HELP\nArticle-I.D.: research.1993Apr6.193221.27234\nOrganization: NEC Systems Laboratory, Inc.\nLines: 32\n\nIn article <C4x6yq.5L4@news.claremont.edu> ochaine@jarthur.claremont.edu (Ollie 'North' Chaine) writes:\n>\n>HELP! my car insurance has been cancelled for the second time in a row!\n>I still haven't gotten in touch with my agent from AAA because \"she's\n>out for the week\" but my mom said that I got a call saying that my insurance\n>was going to be cancelled because of an accident ( not even a fender-bender) \n>that was never declared or anything. Besides the fact that i have no idea how they found out about this, the only\n>other thing that could bug them is that I have 1 ticket but I told them\n>about it and they said that it wasn't a problem.\n>If I go to another insurance, I know I will end up paying more (b/c I already\n>shopped around for this one) and I can't afford to pay for the insurance\n>especially since I still haven't gotten the $3000 the two insuance companies\n>are supposed to refund me. I just got a new Saturn SL2 and can't afford the\n>car payments and the insurance, but I bought the car having gotten a QUOTE\n>from State Farm which they later went back on. \n>PLEASE HELP ME! what legal rights do I have? Can I make State Farm who originally \n>gave me the quote give me that rate (they made a mistake after I signed all\n>the papers, I did not give any false evidence)? How can I get my money back\n>for the car if I can't pay for the insurance? I'm deperate!!!\n>\t\t\t\t\t\tOllie\n\n\tI just went through this mess in New Jersey (I'm still waiting for a\nrefund as well), namely, that the original company made a mistake and left me\nin the lurch.  My recourse was through NJ's insurance dept. Office of Consumer\nProtection.  You should have a similar office in your state.  Make use of it.\n\nGood luck,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - pending delivery\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2785, "properties": {"category": "soc.religion.christian", "text": "From: mayne@ds3.scri.fsu.edu (Bill Mayne)\nSubject: Re: Ancient Books\nOrganization: Supercomputer Computations Research Institute\nLines: 25\n\nIn article <Apr.13.00.09.02.1993.28445@athos.rutgers.edu> miner@kuhub.cc.ukans.edu writes:\n>[Any former atheists converted by argument?}\n>This is an excellent question and I'll be anxious to see if there are\n>any such cases.  I doubt it.  In the medieval period (esp. 10th-cent.\n>when Aquinas flourished) argument was a useful tool because everyone\n>\"knew the rules.\"  Today, when you can't count on people knowing even\n>the basics of logic or seeing through rhetoric, a good argument is\n>often indistinguishable from a poor one.\n\nThe last sentence is ironic, since so many readers of\nsoc.religion.christian seem to not be embarrassed by apologists such as\nJosh McDowell and C.S. Lewis. The above also expresses a rather odd sense\nof history. What makes you think the masses in Aquinas' day, who were\nmostly illiterate, knew any more about rhetoric and logic than most people\ntoday? If writings from the period seem elevated consider that only the\ncream of the crop, so to speak, could read and write. If everyone in\nthe medieval period \"knew the rules\" it was a matter of uncritically\naccepting what they were told.\n\nBill Mayne\n\n[This may be unfair to Lewis.  The most prominent fallacy attributed\nto him is the \"liar, lunatic, and lord\".  As quoted by many\nChristians, this is a logical fallacy.  In its original context, it\nwas not.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2786, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Murray as GM  (was: Wings will win\nOrganization: University of Toronto Chemistry Department\nLines: 18\n\nIn article <20APR199312512640@venus.lerc.nasa.gov> smorris@venus.lerc.nasa.gov (Ron Morris ) writes:\n>\n>Gerald, Murray wasn't responsible for Primeau (although I'm not\n>ready to admit that's a horrible pick).  They hired him after the\n>draft (which has never made sense to me).  His first pick was\n>Lapointe.\n>\n\nI don't think Primeau is necessarily a bad pick...I'm was just trying\nto locate the beginning of Murray's decisions...he slowness in trading\nCarson has delayed Primeau's development...and you have to wait longer\nfor big players often...and Primeau can be a very good player without\nbeing a point-a-game-player, especially on a team that has Yzerman and\nFedorov...if Primeau becomes Joel Otto, and gets 20 goals a season,\nand plays mean...it will have been an extremely good pick.\n\nGerald\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.128+0000", "event": "documents", "entityId": 2787, "properties": {"category": "talk.politics.misc", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: Tieing Abortion to Health Reform -- Is Clinton Nuts?\nOrganization: Corporation for Open Systems\nDistribution: na\nLines: 44\n\nIn <1993Apr5.172920.11779@ringer.cs.utsa.edu> sbooth@lonestar.utsa.edu (Simon E. Booth) writes:\n\n>In article <bob1.734020014@cos> bob1@cos.com (Bob Blackshaw) writes:\n>>In <1993Apr2.230831.18332@wdl.loral.com> bard@cutter.ssd.loral.com (J H Woodyatt) writes:\n>>\n>>>sbooth@lonestar.utsa.edu (Simon E. Booth) writes:\n>>># sandvik@newton.apple.com (Kent Sandvik) writes:\n>>># >We already kill people (death penalty), and that costs even more\n>>># >money, so you could as well complain about this extremely barbaric\n>>># >way of justice.\n>>>#\n>>># But the death penalty is right.\n>>>#\n>>># And how expensive can an execution be? I mean, I think rope, cyanide\n>>># (for the gas), or the rifles and ammunition to arm firing squads are\n>>># affordable.\n>>>#\n>>># Now, perhaps lethal injection might be expensive, in that case, let's\n>>># return to the more efficient methods employed in the past.\n>>\n>>>Oh, sure, the death *penalty* is fairly inexpensive, but the trial and\n>>>sentencing can run millions.\n>>\n>>That's assuming our attack puppy is willing to grant people trials in\n>>his new order.\n\n>And why the hell would I waste my time doing that??\n\n>(to a convicted criminal getting a death sentence)\n\n>'Go directly to Hell, do not pass go, do not collect $200'\n>(judge laughing)\n\nHey puppy, you are getting further around the bend every day. But\nI wouldn't miss your adolescent ravings for the world, everyone\nneeds a good laugh now and then. :-)\n\n>Simon\n\n TOG\n\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2788, "properties": {"category": "soc.religion.christian", "text": "From: HOLFELTZ@LSTC2VM.stortek.com\nSubject: Re: Need a book\nOrganization: StorageTek SW Engineering\nLines: 37\n\nIn article <Apr.14.03.08.18.1993.5458@athos.rutgers.edu>\nbassili@cs.arizona.edu (Amgad Z. Bassili) writes:\n \n>\n>I appreciate if anyone can point out some good books about the dead sea\n>scrolls of Qumran. Thanks in advance.\n>\n>Please reply by e-mail at <bassili@cs.arizona.edu>\n \nOk boys & girls, hang on; here we go!\n \n   Christ's Eternal Gospel               Robinson & Robinson\n   The Dead Sea Scrolls & the NT         WS LaSor\n   James the Just in Habakkuk Pesher     RH Eisenman\n   Maccabees ... Quamran                 RH Eisenman\n   Dead Sea Scrolls Uncovered            Eisenman & Wise\n   Dead Sea Scrolls Deception            Baigent & Leigh\n   Jesus & Riddle of Dead Sea Scrolls    B Thiering\n   Jesus Scroll                          D Joyce\n \nHappy Reading & welcome aboard\n \n \nA poor Wayfaring Stranger [some say, a Strange One] in a strange land,\n \n +---------------------------------------------------------------------+\n | Disclaimer: Not my employer's opinion; probably                     |\n |             not your's either; and                                  |\n |             only mine, when authorized!                             |\n |                                                                     |\n |                                   Try: Roger_Holfeltz@stortek.com   |\n +---------------------------------------------------------------------+\n \n[Note that this list covers quite a variety of views.  As such it's\nprobably a good one.  But if you want to read just one book, beware\nthat a couple of the books on that list represent views that are,\nshall we say, unusual.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2789, "properties": {"category": "soc.religion.christian", "text": "From: bruce@liv.ac.uk (Bruce Stephens)\nSubject: Re: Question from an agnostic\nOrganization: Centre for Mathematical Software Research, Univ. Liverpool\nLines: 16\n\n>>>>> On 2 May 93 13:53:23 GMT, damon@math.okstate.edu (HASTINGS DAMON TOD) said:\n\n> A Christian friend of mine once reasoned that if we were never created, then\n> we could not exist.  Therefore we were created, and therefore there exists a\n> Creator.\n\n> Is this statement considered to be a valid proof by many Christians (and\n> followers of other religions, I suppose)?  [rest deleted]\n\nSome variant is quite popular.  This, and other arguments, are\ndiscussed in John Leslie Mackie's \"The Miracle of Theism: arguments\nfor and against the existence of God\".  Although Mackie ultimately\nsides with \"against\", his arguments are, I think, quite fair to both\nsides.  Brief discussions can be found in the alt.atheism FAQs.\n--\nBruce              CMSR, University of Liverpool\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2790, "properties": {"category": "rec.motorcycles", "text": "From: sanjay@kin.lap.upenn.edu (Sanjay Sinha)\nSubject: Help with backpack\nKeywords: backpack, rucksack, knee protection\nOrganization: University of Pennsylvania, Language Analysis Center\nLines: 33\nNntp-Posting-Host: kin.lap.upenn.edu\n\n\n\nAs summer approaches, the usual preparations are being made...\n\nMe was thinking of going for some overnite camping trips in the local\nstate forests. For that I was planning to get a backpack/rucksack. \nThe next question is how shall I carry the thing on the bike, given\nthe metal frame and all. I have a big backrest (approx 12\" high) and\nwas hoping that I would be able to bungee cord the backpack to the backrest.\n\nAny one have any experiences on such experimentation?\n\nTaking the idea further, what would happen if the backpack was fully\nloaded with a full load (40lbs). Is the load distribution going to \nbe very severly affected? How will the bike perform with such a load \nclinging to the back rest. If I really secure it, with no shifting, \ndo I still increase my chances of surfing?\n\n\nCollective r.m. wisdom requested.  \n\n\np.s. I really can't afford leather pants. Boots and jeans are\nall I can make do with. What you think of the knee protectors\nwhich rollerbladers use - the one L.L.Bean and like sells. Is \nthat a Bad Idea (tm). Are there any equivalents?\n\n\n\n-- \n   '81 CB650 \t\t\t\t\t\tDoD #1224\n\n\t   I would give my right arm to be ambidextrous!\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2791, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: GMILLS@CHEMICAL.watstar.uwaterloo.ca (Phil Trodwell)\nSubject: VB Decompiler?\nLines: 9\nOrganization: University of Waterloo\n\n\nSubject says it all.  Do any exist?  Are they shareware?  Where?\n  \n\nPhil Trodwell \n\n***   This space   ***|   \"I'd be happy to ram a goddam 440-volt cattle\n***    for rent.   ***|   prod into that tub with you right now, but not\n***     (cheap)    ***|   this radio!\"       -Hunter S. Thompson\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2792, "properties": {"category": "rec.motorcycles", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Hard Copy --- Hot Pursuit!!!!\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 22\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, wcd82671@uxa.cso.uiuc.edu (daniel warren c) says:\n\n>\n>Yo, did anybody see this run of HARD COPY?\n\nNo, I don't watch that Bu**Sh*t.\n\n>The Kat, although not the latest machine, is still a high performance\n>machine and he slams on the brakes.  Of couse, we all know that cages,\n>especially the ones with the disco lights, can't stop as fast as our\n>high performance machines.  So what happens?...  The cage plows into the\n>Kat.\n\nSo, does this mean the cop is at fault for rear-ending the bike?  You know,\nfollowing too closely and reckless driving?\n\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2793, "properties": {"category": "rec.autos", "text": "From: qazi@csd4.csd.uwm.edu (Aamir Hafeez Qazi)\nSubject: Re: Difference between Lexus 300 series?\nArticle-I.D.: uwm.1pr5f8INN4om\nReply-To: qazi@csd4.csd.uwm.edu\nOrganization: University of Wisconsin - Milwaukee\nLines: 18\nNNTP-Posting-Host: 129.89.7.4\nOriginator: qazi@csd4.csd.uwm.edu\n\nFrom article <1993Apr5.200048.23421@ucsu.Colorado.EDU>, by lorenzo@rintintin.Colorado.EDU (Eric Lorenzo):\n> \tWhat is the difference between the LS300, ES300 and GS300?  Seems\n> Lexus can't stop popping out new models.\n\n--Let me put it like this.  The only similarity between the three models\n  is the \"300\", or 3-liter engine displacement.  Actually, the SC300 (the\n  coupe) and the GS300 (the funky-looking new sedan) share the same 3.0\n  liter inline-six, and the ES300 (popular small sedan) uses 3.0 V6 shared\n  with the Camry.  The SC300 is a luxury/sports coupe, the GS300 is the new\n  luxury sedan, and the ES300 is the base executive sedan.  All three look\n  completely different.\n\n--Aamir Qazi\n-- \n\nAamir Qazi\nqazi@csd4.csd.uwm.edu\n--Why should I care?  I'd rather watch drying paint.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2794, "properties": {"category": "soc.religion.christian", "text": "From: dmn@kepler.unh.edu (There's a seeker born every minute.)\nSubject: -= Hell =-\nOrganization: UTexas Mail-to-News Gateway\nLines: 98\n\n\n atterlep@vela.acs.oakland.edu (Cardinal Ximenez)  wrote:\n\n>  Here's how I talk to non-Christians who are complaining about Hell.\n\n>ME:\t\"Do you believe you're going to Heaven?\"\n>HIM:\t\"I don't believe in Heaven.\"\n>ME:\t\"So are you going there?\"\n>HIM:\t\"If there was a heaven, I would.\"\n>ME:\t\"But since there isn't a Heaven, you're not going there, are you?\"\n>HIM:\t\"No.\"\n\n>  The point is that Heaven is based on faith--if you don't believe in heaven,\n>there's no way you're going to be in it.\n\n    Hmmm... people in the americas before the time of Christ, children who\ndie young, etc. ?\n\n\n>  Of course, the next step is, \"I don't believe in Hell either, so why will I\n>be there?\"  It seems to me that Hell is eternal death and seperation from God.\n\n\n   But of course, the popular conception of hell (correct or incorrect) is\nsomething akin to eternal perpetuation of consciousness, at the very least.\n\n\n>Most atheists do believe that when they die they will die forever, and never\n>see God--so they do, in fact, believe that they're going to Hell.\n\n   I think a good number of atheists believe there is nothing beyond \nbodily death, but it is simply an abuse of language to say they believe\nthey're going to hell. They believe they're going to _die_. Understand\nthat you've turned Hell into a verb. Using the same logic, it also follows\nthat all animals are 'going to Hell.' Are you sure this is what you want\nto say? (presumably animals don't have the opportunity to get to heaven,\nbut this still doesn't change the fact that they're going to Hell (die\na final death))\n\n   I don't claim to know whether or not there is an afterlife of _some_\nsort, but if Hell is as you described (final death, and\nnot eternal perpetuation of consciousness) it will be true that\nthere will never be a moment when I am aware of my non-existence. \n(assuming I 'go to Hell' and not to Heaven) In other words, I'll\nnever know I'm dead. Hmmm... \n\n\n>  Hell doesn't have to be worse than earth to be Hell--because it's eternal,\n\n    Ever hear people say of a loved one who was ill, and has died:\n \"At least she's not suffering any more; She's in Heaven now.\" ?\n\n    Consider the following statement:\n \"At least she's not suffering any more; She's in Hell now.\"\n\n    The above statement sounds odd, but according to your definition of Hell, \nit would be a true statement. The person in Hell would not be suffering. \nGranted, they wouldn't be *anything* (wouldn't be having any\nconscious experience whatsoever). \n\n    You say Hell (death) is eternal. However, this loses its meaning \nto a dead person. And to me, it seems that the threat of some sort \nof eternal punishment only makes sense/has force if one expects to\nbe conscious throughout this eternity. \n\n    Many atheists believe that the thirst for an afterlife is simply the\nproduct of propaganda (\"Friend, do you want the FREE gift of e-ternal life?\"\nIt's my understanding that the early jews did not believe in an afterlife.\nCan anyone back me up on this?) combined with the survival instinct all\nanimals share. The difference is we have consciousness, and once we get the\nidea of eternal life drilled into our brains, we then desire a sort of\nsuper-survival. \n\n \n>and it's a lot worse than Heaven.  That's the only comparison that matters.\n\n    That would depend on what Heaven is like. If God is a King, and \nan eternity in heaven consists of giving thanks and praise to the King,\nI might opt for Hell. I read a lovely account of a missionary trying to\nconvert Eskimos to Christianity in the book _The Illusion of Immortality_\nby Corliss Lamont. The missionary started to speak about Heaven. \n\"Are there seals in heaven? Will we be able to go hunting?\" asked an\nEskimo. The missionary said no. The group of Eskimos then said something\nto the effect of, \"Well what good is your Heaven if there's no hunting?\nScram.\" I highly recommend the above book (IOI) to anyone who wants an\naccount of the other side of the immortality coin (that there is no \nimmortality). \n\n\n>Alan Terlep\t\t\t\t    \"Incestuous vituperousness\"\n>Oakland University, Rochester, MI\t\t\t\n>atterlep@vela.acs.oakland.edu\t\t\t\t   --Melissa Eggertsen\n>Rushing in where angels fear to tread.\t\t\n\n\n   Pax,\n\n    Dana\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2795, "properties": {"category": "comp.sys.mac.hardware", "text": "From: wcaw@juliet.caltech.edu (Wilisch, Wolf C. A.)\nSubject: ImageWriter II at 50 Hz\nOrganization: California Institute of Technology\nLines: 12\nDistribution: world\nNNTP-Posting-Host: juliet.caltech.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nHi!\nA while back, there was a thread in this group about the use of the IWII\nin Europe (in countries with 50 Hz AC current).  The consensus at the time\nwas that the IWII would not work there.  As I will be moving there this summer,\nI called Apple to make sure and they told me (today) that the IWII (as bought\nin the U.S.) will definitely run on 50 Hz AC current (as long as a step-down\nconverter is employed if 240 V current is used).  The same info, turns out, can\nbe found in the IWII manual (p. 127 in the 1989 version), but I didn't really\ntrust that.  Does anyone have any direct experience to the contrary?  Just \nwondering.\n\nChris W.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2796, "properties": {"category": "alt.atheism", "text": "From: bdunn@cco.caltech.edu (Brendan Dunn)\nSubject: Re: Amusing atheists and agnostics\nOrganization: California Institute of Technology, Pasadena\nLines: 8\nNNTP-Posting-Host: punisher.caltech.edu\n\nThanks to whoever posted this wonderful parody of people who post without \nreading the FAQ!  I was laughing for a good 5 minutes.  Were there any \nparts of the FAQ that weren't mentioned?  I think there might have been one\nor two...\n\nPlease don't tell me this wasn't a joke.  I'm not ready to hear that yet...\n\nBrendan\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2797, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Thomas Kephart <kephart@snowhite.eeap.cwru.edu>\nSubject: Mac 800 numbers\nOrganization: Case School of Engineering\nLines: 90\nDistribution: world\nNNTP-Posting-Host: b62182.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7F8C6F92D02F2E6@b62182.student.cwru.edu>\nX-XXDate: Mon, 19 Apr 93 21:15:37 GMT\n\nHere's a list of 800 numbers I have compiled from other sources... \nanybody got anything to add?\n\nIt's formatted for Alpha, and looks fine for me, so don't complain if it \ndoesn't look good to you.\n\n\n\n  * Adobe\t\t\t\t\t1-415-961-0911\n\tFAX info\t\t\t\t1-800-235-0078\n  * Aldus\t\t\t\t\t1-206-622-5500\n  * Alladin\t\t\t\t\t1-408-685-9175\n  * Altsys\t\t\t\t\t1-214-680-2060\n  * APDA \t\t\t\t\t1-800-282-2732\n    (Apple Prog Dev Assoc)\n  * Apple Computer\t\t\t1-408-996-1010\n  * Apple Customer \t\t\t1-800-776-2333\n    Non-Tech assistance\n  * APS\t\t\t\t\t\t1-800-233-7550\n    (Alliance Peripheral Sys)\n  * ASD Softwae\t\t\t\t1-714-624-2594\n\tFAX\t\t\t\t\t\t1-714-624-9574\n  * Berkeley Systems\t\t1-415-540-5535\n  * Cayman Systems\t\t\t1-800-473-4776\n  * CE Software\t\t\t\t1-515-224-1953\n  * Claris\t\t\t\t\t1-408-727-8227\n\t\t\t\t\t\t\t1-408-727-9054\n  \tClaris Software\t\t\t1-800-3CL-ARIS\n  * Compatible Systems\t\t1-800-356-0283\n  * Computer Associates C.A\t1-408-648-4000\n  * Connectix\t\t\t\t1-800-950-5880\n  * DataViz\t\t\t\t\t1-203-268-0300\n  * Dayna\t\t\t\t\t1-801-972-2000\n  * DeltaPoint\t\t\t\t1-800-367-4334\n  * Deneba\t\t\t\t\t1-305-594-6965\n  * Dr.Mac:       \t \t\t1-800-825-6227\n  * Fifth Generation\t\t1-800-873-4384\n  * GreatWave\t\t\t\t1-408-438-1990\n  * ICOM Simulations\t\t1-708-520-4440\n  * MacAvenue:    \t\t\t1-800-926-6221\n  * MacConnection: \t\t\t1-800-334-4444\n  * MacLand:    \t   \t\t1-800-888-8779\n  * MacroMind\t\t\t\t1-415-442-0200\n  * Mac's Place:   \t\t\t1-800-367-4222\n  * MacWarehouse:\t  \t\t1-800-255-6227\n  * Microcom\t\t\t\t1-919-490-1277\n  * Microsoft\t\t\t\t1-800-426-9400\n      Educational:\t\t\t1-800-227-4679\n      General:\t\t\t\t1-206-882-8088\n      Sales and Services:  \t1-800-426-9400\n\t\tThen punch:\n\t\t    1 Technical Assistance\n\t\t    2 University\n  * Shiva\t\t\t\t\t1-617-864-8100\n  * Silicon Beach\t\t\t1-619-695-6956\n  * Symantec\t\t\t\t1-800-441-7234\n  * The Mac Zone:\t  \t\t1-800-248-0800\n  * Chip Merchant\t\t\t1-800-426-6375\n  * ClearPoint Computers\t1-800-253-2778\n  * ClubMac\t\t\t\t\t1-800-CLU-BMAC\n  * Delta Research Labs\t\t1-800-999-1593\n  * Diamond\t\t\t\t\t1-800-541-7126\n  * Dynamic Electronics\t\t1-800-845-8228\n  * ETC\t\t\t\t\t\t1-800-882-2863\n  * Global Village Telecom.\t1-800-736-4821\n    Mac ADB modems\n  * Lifetime Memory\t\t\t1-800-233-6233\n  * LLB\t\t\t\t\t\t1-800-848-8967\n  * Macproducts USA\t\t\t1-800 MAC DISK\n  * MacProducts:   \t\t\t1-800-MAC-USA1\n  * Megabyte Memory\t\t\t1-800-748-5766\n    Products\n  * Memory International\t1-800-266-0488\n  * Memory Plus\t\t\t\t1-800-388-PLUS\n  * Micro Electronic Tech\t1-800-766-7466\n  * Newer Technology\t\t1-800-678-3726\n  * Peripheral Outlet\t\t1-800-332-6581\n  * PSI\t\t\t\t\t\t1-800-622-1722\n  * Quadmation\t\t\t\t1-800-733-7887\n  * Shecom Computers\t\t1-800-366-4433\n  * SII Micros\t\t\t\t1-800-424-1126\n  * South Coast Electronics\t1-800-289-8801\n  * Stratum Technologies\t1-800-533-1744\n  * Technology Works\t\t1-800-688-7466\n  * Texas Macstuf\t\t\t1-800-MAC-STUF\n  * Third Wave Computing\t1-800-284-0486\n  * Third Wave\t\t\t\t1-800-284-0846\n  * Turbo Technologies\t\t1-800-542-7466\n\n1-800-555-1212 directory assistance for 1-800 numbers\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2798, "properties": {"category": "sci.electronics", "text": "From: urbina@novax.llnl.gov\nSubject: Telcom wiring question...need help\nOrganization: Lawrence Livermore National Laboratory, NCD\nLines: 26\nNNTP-Posting-Host: novax.llnl.gov\n\n\nI've got two lines coming into my apartment. Two different telephone numbers.\nWhen I ordered the second line installed, instead of bringing out another 4\nwire bundle, the telco just connected up to my yellow and black wires. So I\nhave one line on red & green and the other on yellow & black.\n\nToday I was monitoring the voltage on both lines. I had a voltmeter across\nthe red and green and read back 52 volts. I then lifted up the receiver on my\nsecond line.(black & yellow wires) The voltage dropped to 31 volts on the first\nline. (red & green wires) I repeated this experiment with the second\nline(monitoring black & yellow and lifting the handset off the cradle on the\nred and green line.) It also dropped to 31 volts. \n\nWhy is this ? I thought these were separate lines.\n\nNext I went to the 66 block and disconnected the blue and white lines coming in\nfrom the telco cable. I then disconnected all the phones in my apartment and\nwent back to the 66 block and did some resistance measurements. Both lines read\nopen.\n\nI'll appreciate any help on this. Is this considered normal ?\n\nGuy Urbina\n\nUrbina@novax.llnl.gov\n \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2799, "properties": {"category": "misc.forsale", "text": "From: martimer@bigwpi.WPI.EDU (jonathan Sawitsky)\nSubject: Re: What's wrong with this picture?\nOrganization: Worcester Polytechnic Institute\nLines: 25\nNNTP-Posting-Host: bigwpi.wpi.edu\n\nIn article <1993Apr5.203212.28284@erenj.com> srfergu@rufus.erenj.com (Scott Ferguson) writes:\n>In article <1993Apr3.152922.12050@iscsvax.uni.edu>, harter5255@iscsvax.uni.edu writes:\n>|> Fellow netters,\n>|> \n>|> Is anybody awake out there?  When someone posted a message telling people to\n>|> stop posting computer ads to the misc.forsale group, he got about thirty\n>|> response here, not to mention the rash of E-Mail I'm sure he received.  Yet,\n>|> another person posts a message with the subject line \"blow me\" and an even \n>|> worse text, and only 3 or 4 people have the guts to say anything.  The majority\n>\n>Not to mention the thread about selling someone's wife. I am a guy, therefore\n>not overly bummed by it, but a little common sense would dictate that this\n>is offensive to many women, and not really necessary.\n>\n\tGood point, but I was just thinking.. I wanted to sell my HP28sx\ncalculator here in this newsgroup... It is called a calculator, but really\nit is a computer, albeit a small one, but it does function as one... How\ncome car adds are acceptable? They cant run without computers nowadays....\nWhere does one draw the line? Accept it, live with it, and if you care to,\navoid it.... \njonathan\n-- \n          I have lots of common sense...                 \n                     I just choose to ignore it....     Calvin\n..jonathan Sawitsky       'some random wierdo'         martimer@wpi.wpi.edu...\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2800, "properties": {"category": "rec.sport.hockey", "text": "From: hammerl@acsu.buffalo.edu (Valerie S. Hammerl)\nSubject: Re: David Polie's future\nOrganization: UB\nLines: 18\nNntp-Posting-Host: lictor.acsu.buffalo.edu\n\nIn article <92821@hydra.gatech.EDU> gtd597a@prism.gatech.EDU (Hrivnak) writes:\n>In article <gfmoD2e00iV1892owC@andrew.cmu.edu> gp2f+@andrew.cmu.edu (Gary James Patalsky) writes:\n>>Bad news for the Patrick division next year.  Caps GM David Polie is\n>>reportedly trying to get a front office job with the NHL.  I can't\n>>believe Polie has not been fired despite 10 years of mediocrity.\n>\n>\tYES! YES! THE IDIOT'S GONE! THE IDIOT'S GONE!!!!!!! I wish\n>this happened before he traded Hrivnak. Anyway, THE IDIOT'S GONE!!!\n>\n\nHe's not gone yet.  The position opening is down to Polie and the\nSabres' GM Gerry Meehan.  I think I'd like to see Meehan gone...\n\n-- \nValerie Hammerl\t\t\t\"Some days I have to remind him he's not \nhammerl@acsu.buffalo.edu\tMario Lemieux.\"  Herb Brooks on Claude\nacscvjh@ubms.cc.buffalo.edu\tLemieux, top scorer for the Devils, but \nv085pwwpz@ubvms.cc.buffalo.edu  known for taking dumb penalties.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2801, "properties": {"category": "sci.med", "text": "From: lundby@rtsg.mot.com (Walter F. Lundby)\nSubject: Re: Is MSG sensitivity superstition?\nNntp-Posting-Host: accord2\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 23\n\nIn article <1993Apr20.173019.11903@llyene.jpl.nasa.gov> julie@eddie.jpl.nasa.gov (Julie Kangas) writes:\n>\n>As for how foods taste:  If I'm not allergic to MSG and I like\n>the taste of it, why shouldn't I use it?  Saying I shouldn't use\n>it is like saying I shouldn't eat spicy food because my neighbor\n>has an ulcer.\n>\n Nobody is saying that you shouldn't be allowed to use msg.  Just\ndon't force it on others. If you have food that you want to \nenhance with msg just put the MSG on the table like salt.  It is\nthen the option of the eater to use it.  If you make a commerical\nproduct, just leave it out. You can include a packet (like some\nsalt packets) if you desire.\n\nSalt, pepper, mustard, ketchup, pickles ..... are table options.\nTreat MSG the same way.  I wouldn't shove my condiments down your\nthroat, don't shove yours down mine.\n\nWFL\n\n-- \nWalter Lundby\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2802, "properties": {"category": "talk.politics.guns", "text": "From: mpetro@brtph126.bnr.ca (Myron Petro P030)\nSubject: Re: Boston Gun Buy Back\nOrganization: BNR Inc. RTP, NC\nLines: 17\n\n>Ron Miller wrote:\n>When you ask the question of the \"authorities\" or sponsors of buyback\n>programs whether they will check for stolen weapons and they answer\n>\"no, it's total amnesty\".\n (good point about registration schemes being used only for harassment deleted)\n\n I would also like to point out that this is receiving stolen property and is \nno different than a pawn shop owner doing the same thing. \n \n  \n\tMyron Petro\n\tNRA, USPSA\n        DVC y'all\n\t**************************************************************************\n\t The opinions included in this post are my sole responsibility.\n\t And are protected by the First Amendment and guarnteed by the \n\t Second Amendment.   \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2803, "properties": {"category": "soc.religion.christian", "text": "From: jasons@atlastele.com (Jason Smith)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nOrganization: Atlas Telecom Inc.\nLines: 169\n\nIn article <Apr.19.05.13.48.1993.29266@athos.rutgers.edu> kempmp@phoenix.oulu.fi (Petri Pihko) writes:\n= Jason Smith (jasons@atlastele.com) wrote:\n=  \n= : [ The discussion begins: why does the universe exist at all?  ]\n=  \n= : One of the Laws of Nature, specifying cause and effect seems to dictate \n= : (at least to this layman's mind) there must be a causal event.  No\n= : reasonable alternative exists.\n= \n= I would argue that causality is actually a property of spacetime; \n= causes precede their effects. \n\nAnd I must concede here.  Cause *before* effect, implies time, time is part\nof spacetime.  Hense, the argument would be valid.  I could return and say \nthat this does not infer the cause and effect relationship being *unique*\nto *this* spacetime, but I won't 8^), because the point is moot.  Doesn't\naddress why (which Petri Pikho addresses below).  \n\nI also concede that I was doubly remiss, as I asserted \"No reasonable\nalternative exists\", an entirely subjective statement on my part (and one\nthat could  be invalidated, given time and further discovery by the\nscientist).  I also understand that a proving a theory does not necessarily\nspecify that \"this is how it happened\", but proposes a likely description of\nthe phenomena in question.  Am I mistaken with this understanding?\n\n= But if you claim that there must be\n= an answer to \"how\" did the universe (our spacetime)  emerge from \n= \"nothing\", science has some good candidates for an answer.\n\nAll of which require something we Christians readily admit to: ``Faith''.\n\nThe fact that there are several candidates belies that *none* are conclusive.  \nWith out conclusive evidence, we are left with faith.\n\nIt could even be argued that one of these hypotheses may one day be proven (as\nbest as a non-repeatable event can be \"proven\").  But I ask, what holds  \nsomeone *today* to the belief that any or all of them are correct, except by \nfaith?\n\n[ a couple of paragraphs deleted.  Summary: we ask \"Why does the\nuniverse exist\" ]\n\n= I think this question should actually be split into two parts, namely\n= \n= 1) Why is there existence? Why anything exists?\n= \n= and\n= \n= 2) How did the universe emerge from nothing?\n= \n= It is clear science has nothing to say about the first question. However,\n= is it a meaningful question, after all?\n=\n= I would say it isn't. Consider the following:\n\nApparently it *is* for many persons.  Hence, we *have* religions.\n\n= The question \"why anything exists\" can be countered by\n= demanding answer to a question \"why there is nothing in nothingness,\n= or in non-existence\".  Actually, both questions turn out to be\n= devoid of meaning. Things that exist do, and things that don't exist\n= don't exist. Tautology at its best.\n\nCarefully examine the original question, and then the \"counter-question\". \nThe first asks \"Why\", while the second is a request for definition.  It \ndoesn't address why something does or does not exist, but asks to define \nthe lack of existence.  The second question is unanswerable indeed, for\nhow do we identify something as \"nothing\" (aren't they mutually exclusive\nterms)?.  How do we identify a state of non-existence (again, this is\nnearing the limits of this simple layman's ability to comprehend, and I\nwould appreciate an explanation). \n\nI might add, the worldview of \"Things that exist do, and things that\ndon't...don't\" is as grounded in the realm of the non-falsifiable,\nas does the theist's belief in God.  It is based on the assumption\nthat there is *not* a reason for being, something as ultimately\n(un)supportable as the position of there being a reason.  Its very\nfoundation exists in the same soil as that of one who claims there *is* a\nreason.\n\nWe come to this. Either \"I am, therefore I am.\", or \"I am for a reason.\"\nIf the former is a satisfactory answer, then you are done, for you are\nsatisfied, and need not a doctor.  If the latter, your search is just\nbeginning.  \n\n= I seriously doubt God could have an answer to this question.\n\nTime will tell. 8^)\n\n= \n= Some Christians I have talked to have said that actually, God is\n= Himself the existence. However, I see several problems with this\n= answer. First, it inevitably leads to the conclusion that God is\n= actually _all_ existence, good and evil, devils and angels, us and\n= them. This is pantheism, not Christianity.\n\nAgreed.  It would lead me to question their definition of Christianity as\nwell.\n\n= Another answer is that God is the _source_ of all existence.\n= This sounds much better, but I am tempted to ask: Does God\n= Himself exist, then? If God is the source of His own existence,\n= it can only mean that He has, in terms of human time, always\n= existed. But this is not the same as the source of all existence.\n\nThis does not preclude His existence.  It only seeks to identify His\n*qualities* (implying He exists to *have* qualities, BTW).\n\n= The best answer I have heard is that human reasoning is incapable\n= of understanding such questions. Being an atheist myself, I do not\n= accept such answers, since I do not have any other methods.\n\nLike the theist, we come to a statement of faith, for this position assumes \nthat the evidence at hand is conclusive.  Note, I am not arguing against \nscientific endeavor, for science is useful for understanding the universe in\nwhich we exist. But I differ from the atheist in a matter of perspective.  I\nseek to understand what exists to understand and appreciate the art of the\nCreator.\n\nI also have discovered science is an inadequate tool to answer \"why\".   It\nappears that M. Pihko agrees (as we shall see).  But because a tool is\ninadequate to answer a question does not preclude the question.  Asserting\nthat 'why' is an invalid question does not provide an answer.  \n\n= : As far as I can tell, the very laws of nature demand a \"why\".  That isn't\n= : true of something outside of nature (i.e., *super*natural).\n= \n= This is not true. Science is a collection of models telling us \"how\",\n= not why, something happens. I cannot see any good reason why the \"why\"\n= questions would be bound only to natural things, assuming that the\n= supernatural domain exists. If supernatural beings exist, it is\n= as appropriate to ask why they do so as it is to ask why we exist.\n\nMy apologies.  I was using why as \"why did this come to be\".  Why did\npre-existence become existence.  Why did pre-spacetime become spacetime.\n\nBut we come to the admission that science fails to answer \"Why?\".  Because\nit can't be answered in the realm of modern science, does that make the\nquestion invalid?\n= : I don't believe *any*\n= : technology would be able to produce that necessary *spark* of life, despite\n= : having all of the parts available. Just my opinion.\n= \n= This opinion is also called vitalism; namely, that living systems are\n= somehow _fundamentally_ different from inanimate systems. Do Christians\n= in general adopt this position? What would happen when scientists announce\n= they have created primitive life (say, small bacteria) in a lab?\n\nI suppose we would do the same thing as when Galileo or Capernicus was \n*vindicated*  (before someone starts jumping up and down screaming\n\"Inquisition!\", note I said *vindicated*.  I certainly hope we've gotten\nbeyond the \"shooting the messenger\" stage).\n\nM. Pihko does present a good point though.  We may need to ask \"What do I \nas an individual Christian base my faith on?\"  Will it be shaken by the\nproduction of evidence that shatters our \"sacred cows\" or will we seek to\nunderstand if a new discovery truly disagrees with what God *said* (and\ncontinues to say) in his Word?\n\n\"Why do I ask why?\" (apologies to Budweiser and company 8^]).\n\nJason.\n\n\n\n-- \nJason D. Smith  \t|\njasons@atlastele.com\t|    I'm not young enough to know everything.\n     1x1        \t| \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2804, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: david@c-cat.UUCP (Dave)\nSubject: cents keystroke ? where is it\nOrganization: Intergalactic Rest Area For Weary Travellers\nLines: 14\n\nwhy does my keyboard not have a cents key ?\n|\nC\n|\n\nlike to have my 2 cents worth or $ 0.02 (boaring)\n\n                                                       -David\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\nChina Cat BBS                               c-cat!david@sed.csc.com\n(301)604-5976 1200-14,400 8N1               ...uunet!mimsy!anagld!c-cat!david \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2805, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Legality of the jewish purchase\nOrganization: The Department of Redundancy Department\nLines: 46\n\nIn article <1993Apr21.181628.23279@news.columbia.edu> ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt) writes:\n>In article <1993Apr19.214951.19180@bnr.ca> zbib@bnr.ca writes:\n\n>It was shafting on the part of the Arab land owners for doing it \n>without notifying their tenant farmers and for not being responsible \n>enough to make provisions for them, but rather just leaving\n>them to their fate.\n\nIf a landlord sells an apartment building \"vacant\" to another landlord\nand fails to notify his tenants, they just might find themselves out\non the street all of a sudden.  The seller may be a scoundrel and a\ncrook but this doesn't make the buyer a \"thief\", as Israelis are so\noften called here on tpm.\n\n>>It is interesting though that you acknowledge that the\n>>palestinians were shafted. Do many Israelis or Jews share\n>>your opinion ?  Do you  absolve the purchaser from\n>>any ethical commitments just because it wasn't written down? \n>\n>I don't know if others share this opinion.  It is mine,\n>and I'm sure there are some who agree and some who don't\n>The way I see it, the fallahin were caught in circumstances \n>beyond their control, in that since they didn't own the land,\n>they didn't have a say. Of course, now for the sake of the \"greater \n>Arab unity\" the Arabs are angry that the land was sold to the Jews\n>(an act that is illegal in Jordan), but when it happened, it was just \n>business.   \n\nThe Arabs that lived along the coast in Western Palestine, later to be\ncalled Israel, were shafted by their brother Arabs just as they've\nbeen shafted for decades since then by their Arab bretheren.  Somehow,\nthough, the Arab call has continued to blame Israel, not only for the\nSyrian landowner sell-out in Western Palestine (Israel) but even for\nthe occupation of Eastern Palestine (Jordan) by the Hashemites.  This\nis just more of refusing to take blame for one's own actions.\n\n>>infra-structure etc...). IMHO the Palestinians have grounds\n>>to contest the legality of the purchase, say in world court.\n\nIf your job was eliminated in a corporate takeover, you could probably\ngo to court, too.  You'd probably lose, though.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2806, "properties": {"category": "comp.sys.mac.hardware", "text": "From: folta@zen.holonet.net (Steve Folta)\nSubject: Re: Using SetWUTime() with a PB170\nNntp-Posting-Host: zen.holonet.net\nOrganization: HoloNet National Internet Access System: 510-704-1058/modem\nLines: 13\n\naep@world.std.com (Andrew E Page) writes:\n>   I can get the mac to go to sleep, but I can't make seem to \n>make it wake up with SetWUTime().\n\nThe PowerBook 170 hardware doesn't have a wakeup timer.  Nor does the 140.\nThe Mac Portable had one, and I think the PowerBook 100 had one.  I don't\nknow about the newer PowerBooks, but I kind of doubt it.  I got bit by\nthis too, and it took my a while rooting around on the developer CD\nbefore I found this out.\n\nSteve Folta\nfolta@well.sf.ca.us\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2807, "properties": {"category": "misc.forsale", "text": "From: der@anomaly.sbs.com (Admiral David E. Ryan)\nSubject: 144mhz/440mhz amps, 2mtr HT for sale\nOrganization: Small Business Systems, Incorporated, Smithfield, RI 02917\nLines: 18\n\nI have the following equipment for sale:\n\n1. Kenwood TH-28A 2mtr HT\t\t\t$250.00\n\n2. RF Concepts 2mtr Amp (45in->170out)\t\t$275.00\n\n3. Hamtronics Class C Continuous Duty\n\t440mhz 10watt-in ~40watt-out amp\t$250.00\n\nAll prices include shipping/insurance.\n\nFor additional information, contact me at the address below.\n\nDave\n-- \n| Admiral David E. Ryan        \t     |\n| der@anomaly.sbs.com                | \n| ...!uunet!rayssd!anomaly!der       |\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2808, "properties": {"category": "comp.windows.x", "text": "From: buzz@bear.com (Buzz Moschetti)\nSubject: Re: XCopyPlane Question\n\t<BUZZ.93Apr19101538@lion.bear.com> <WHALEY.93Apr19171228@sigma.kpc.com>\nReply-To: buzz@bear.com (Buzz Moschetti)\nOrganization: Bear, Stearns & Co. - FAST\nLines: 10\nIn-reply-to: whaley@sigma.kpc.com's message of 20 Apr 93 01:12:28 GMT\n\nIn article <WHALEY.93Apr19171228@sigma.kpc.com> whaley@sigma.kpc.com (Ken Whaley) writes:\n>   As per your question: why not have the button handler add the object, and\n>   then call the \"window_redraw()\" (or whatever) directly?  Although, depending\n\nThis design will work but I don't think it can take easily take advantage\nof expose event redraw optimization; that is, the whole window will be\nredrawn, not just the area with the new item.\n\nP.S.  I'm replying here because my/your mailer didn't agree with the\n      return address whaley@sigma.kpc.com.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2809, "properties": {"category": "comp.graphics", "text": "From: rcomg@melomys.co.rmit.oz.AU (Mark Gregory)\nSubject: AVI file format?\nSummary: AVI file format?\nKeywords: AVI file format?\nOrganization: Royal Melbourne Institute of Technology\nLines: 18\nNNTP-Posting-Host: melomys.cse.rmit.edu.au\n\n\nHi,\n\twould someone please email the new AVI file\n\tformat.  I'm sure that many people would \nlike to know what it is exactly.\n\nThank you\n\n\nMark Gregory Lecturer m.gregory@rmit.edu.au PH(03)6603243 FAX(03)6621060\nRoyal Melbourne Institute of Technology,\nDepartment of Communication and Electronic Engineering,\nP.O. Box 2476V, Melbourne, Victoria, 3001. AUSTRALIA.\n--\nMark Gregory Lecturer m.gregory@rmit.edu.au PH(03)6603243 FAX(03)6621060\nRoyal Melbourne Institute of Technology,\nDepartment of Communication and Electronic Engineering,\nP.O. Box 2476V, Melbourne, Victoria, 3001. AUSTRALIA.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.129+0000", "event": "documents", "entityId": 2810, "properties": {"category": "comp.windows.x", "text": "From: chudel@watarts.uwaterloo.ca (Chris Hudel)\nSubject: 4-plane Xterminal (Do I want one?)\nKeywords: plane, Xterminal\nOrganization: University of Waterloo\nLines: 12\n\nI've been offerred an old 4-bits/pixel greyscale Xterminal.  Aside from the\n\"real people have already upgraded to RISC architecture R5 servers\", do I want\nthis Xterminal? \n\nI'm concerned about the 4-planes...I've only ever heard of 1 (mono) and 8\n(colour) planes -- will I have any concerns with this 4-plane unit? \n[Specifically related to 4-planes vs 1 or 8]\n\nThanks!\n-C-\n\nPS: all R5 apps run on R4/R3 servers,right?\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2811, "properties": {"category": "sci.electronics", "text": "From: babb@sciences.sdsu.edu (J. Babb)\nSubject: Re: Electric power line \"balls\"\nArticle-I.D.: larc.babb-060493164354\nDistribution: usa\nOrganization: SDSU - LARC\nLines: 16\nNNTP-Posting-Host: larc.sdsu.edu\n\nIn article <1993Apr6.203237.20841@eagle.lerc.nasa.gov>,\nfsset@bach.lerc.nasa.gov (Scott Townsend) wrote:\n> \n> I got a question from my dad which I really can't answer and I'd appreciate\n> some net.wisdom.\n> \n> His question is about some 18-24\" diameter balls which are attached to\n> electric power lines in his area.  He's seen up to a half dozen between\n> two poles.  Neither of us have any experience with electric power distribution.\n> My only guess was that they may be a capacitive device to equalize the\n> inductance of the grid, but why so many between two poles?.\nI'll bet there's a runway nearby.\n\nJeff Babb\nbabb@sciences.sdsu.edu   babb@ucssun1.sdsu.edu\nProgrammer, SDSU - LARC\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2812, "properties": {"category": "talk.politics.guns", "text": "From: loki@acca.nmsu.edu (Entropic Destroyer)\nSubject: Need info on 43:1 and suicide for refutation\nOrganization: New Mexico State University\nLines: 35\nDistribution: usa\nNNTP-Posting-Host: kazak.nmsu.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nThe following is quoted from the tail end of a (rather condescending)\narticle about Paxton Quigley, that appeared in US Snooze and World Lies,\n(sorry... i think it was in the wall street journal...)\nand was repeated in the Colorado (people's) Daily, a student newspaper\nat the University of Colorado at Boulder.\n\n\"A study of residential gunsot deaths in King County, Wash., found that\na gun in the home was 43 times more likely to be used to kill its owner,\nspouse, a friend, or child than to kill an intruder.  Studies by the \nWestern Psychiatric Institute, in Pittsburgh, found that the mere presence\nof a gun in the home sharply incresases the likelihood a family member\nwill commit suicide, even in the absence of psychiatric illness.\"\n\nI have seen these numbers quoted before, and I have seen very specific\nrefutation of them quoted as well.  If someone will be so kind as to\nemail the relevant information, I will write a letter to the editor of\nthe Co. Daily (which might get published) and send a copy to USN&WR as\nwell.\n\nThanx...\n\n--Dan\n\n--\n  DoD #202 / loki@acca.nmsu.edu / liberty or death / taylordf@ucsu.colorado.edu \n                 Send me something even YOU can't read...\n-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: 2.1\n\nmQCNAitfksQAAAEEAKceEjWI9f5KMJyKP0LOgC5dGHRpbMY2xhOo8kpEHMDyuf8a\n1BfDQSj53kosTz6HRoshSDzLVuL1/40vPjmMNtFR+vyZ4jvd3rL4iuq2umMmex3M\nitf3uLt8Xn/v/QAbsvhcFSHVJVK4Lf6wosuCMO03m2TiX31AI7VB0Uzo4yXjAAUX\ntCREYW5pZWwgRiBUYXlsb3IgPExva2lAYWNjYS5ubXN1LmVkdT4=\n=S5ib\n-----END PGP PUBLIC KEY BLOCK-----\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2813, "properties": {"category": "sci.med", "text": "From: jeffp@vetmed.wsu.edu (Jeff Parke)\nSubject: Re: Lyme vaccine\nOrganization: College of Veterinary Medicine WSU\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 45\n\nkathleen richards (kilty@ucrengr) wrote:\n> My nearly-13 year old Pomeranian had a nasty reaction to this vaccination.\n> ...  Suffice it to say, we will not\n> vaccinate her for Lyme disease again.  She's been camping through some 6\n> states and has backpacked with us as well and we are used to watching for ticks\n> and dealing with them and we simply won't take her to really active Lyme\n> disease areas....\n\nNot to drag this out anymore, but....\n\nMany veterinarians feel that Lyme Disease in dogs is so easy to treat that\nin an endemic area, they often just give the appropriate antibiotics to dogs\npresenting with lameness, swollen joints, +/- fever.\n\nA recent paper (March 1993) has finally established that Lyme disease in dogs\ncan be reproduced in a controlled experimentaly setting.  This has been\nan ellusive matter for researchers, and is one of the fundamental requirements\nfor many to acknowledge an agent as being causitive of a particular disease.\nUp to now, only the vaccine manufacturer has been able to \"prove\" that\nthe disease exists.\n\nThis paper is noteworthy in two other regards:\n\n1) None of the animals they infected were treated in any way.  The dogs\nhad episodes of lameness during a 6-8 week period which occurred 2-5\nmonths after exposure.  After this period, none showed any further\nclinical signs up to the 17 month observation period of the study.  So\nthese are proven, clinically sick Lyme patients showing spontaneous\nrecovery without the benefit of drug treatment. Of course, observations\nlonger than 17 months will be necessary to be sure the disease doesn't\nhave the same chronicity that some see in humans.\n\n2)  The addendum to the paper calls into question the techniques used by the\nvaccine manufacturer to validate the vaccine.  Of course, they want\nthe world to use the model they developed in order to test vaccine\nefficacy.\n\nAnyway, maybe we will see some independent, scientifically sound evaluations\nof this vaccine in the next year or so.\n\n--\nJeff Parke <jeffp@pgavin1.vetmed.wsu.edu>\nalso:   jeffp@WSUVM1.bitnet    AOL: JeffParke\nWashington State University College of Veterinary Medicine class of 1994\nPullman, WA  99164-7012\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2814, "properties": {"category": "sci.med", "text": "From: wcsbeau@alfred.carleton.ca (OPIRG)\nSubject: Re: Is MSG sensitivity superstition?\nKeywords: MSG, Glu\nOrganization: Carleton University, Ottawa, Canada\nLines: 143\n\nIn article <1993Apr17.202011.21443@spdcc.com> dyer@spdcc.com (Steve Dyer) writes:\n>In article <1993Apr17.184435.19725@cunews.carleton.ca> wcsbeau@alfred.carleton.ca (OPIRG) writes:\n>\n>There has been NO hard info provided about MSG making people ill.\n>That's the point, after all.\n\nWhy don't you just look it up in the Merk? Or check out the medical dictionary\ncite which a doctor mentioned earlier in this thread?\n\n\n>\n>That's because these \"peer-reviewed\" studies are not addressing\n>the effects of MSG in people, they're looking at animal models.\n>You can't walk away from this and start ranting about gloom and\n>doom as if there were any documented deleterious health effects\n>demonstrated in humans.  Note that I wouldn't have any argument\n>with a statement like \"noting that animal administration has pro-\n>duced the following [blah, blah], we must be careful about its\n>use in humans.\"  This is precisely NOT what you said.\n\nAmong others, see Olney's  \"Excitotoxic Food Aditives - Relevance of\nAnimal Studies to Human Safety\" (1982) Neurobehav. Toxicol. Teratol.\nvol 6: 455-462.\n\nI'm sure PETA would love to hear your arguments.\n\n>>Tests have been done on Rhesus monkeys, as well. I have never seen a\n>>study where the mode of administration was intra-ventricular.  The Glu\n>>and Asp were administered orally. Some studies used IV and SC.\n>>Intra-ventricular is not a normal admin. method for food tox. studies,\n>>for obvious reasons. You must not have read the peer-reviewed works\n>>that I referred to or you would never have come up with this brain\n>>injection bunk.\n>\n>It most certainly is for neurotoxicology.  You know, studies of\n>glutamate involve more than \"food science\".\n\nWhose talking about \"food science\"? What is this comment supposed to\nmean? *Neurotoxicology and Tratology*, *Brain Research*, *Nature*,\n*Progress in Brain Research*: all fine food science journals. ;-)\n\n>>Pardon me, but where are you getting this from? Have you read the\n>>journals? Have you done a thorough literature search?\n>\n>So, point us to the studies in humans, please.  I'm familiar with\n>the literature, and I've never seen any which relate at all to\n>Olney's work in animals and the effects of glutamate on neurons.\n\nThen you would know that Olney himself has casually  referred to\n\"Chinese Restaurant Syndrome\" in a few articles. Why don't *you* point\nus to some studies? Maybe then this exchange could be productive.\n\n>>The point is exceeding the window. Of course, they're amino acids.\n>>Note that people with PKU cannot tolerate any phenylalanine.\n>\n>Well, actually, they HAVE to tolerate some phenylalanine; it's a\n>essential amino acid.  They just try to get as little as is healthy\n>without producing dangerous levels of phenylalanine and its metabolites\n>in the blood.\n\nThey're unable to metabolise it.\n\n>>Olney's research compared infant human diets. Specifically, the amount\n>>of freely available Glu in mother's milk versus commercial baby foods,\n>>vs. typical lunch items from the Standard American Diet such as packaged\n>>soup mixes. He found that one could exceed the projected safety margin\n>>for infant humans by at least four-fold in a single meal of processed\n>>foods. Mother's milk was well below the effective dose.\n>\n>Goodness, I'm not saying that it's good to feed infants a lot of\n>glutamate-supplemented foods.  It's just that this \"projected safety\n>margin\" is a construct derived from animal models and given that,\n>you can \"prove\" anything you like.  We're talking prudent policy in\n>infant nutrition here, yet you're misrepresenting it as received wisdom.\n\nWho said anything about 'received wisdom'? There is no question that\norally administered doses of MSG are capable of destroying nearly all\nneurons in the arcuate nucleus of the hypothalamus and the median\neminence. These areas are responsible for the production of\nhormones critical to normal neuroendocrine function and the normal\ndevelopment of the vertabrate organism. Humans are vertebrates. Now\nwhat, pray tell, do you think will happen when the area of the brain\nnecessary for the normal rhythm of gonadotropin release is missing?\nAre you trying to say that humans have no need of their pituitary,\nANH, and ME, of that part of the brain that is responsible for\ncontrolling the realease (albeit indirectly) of estradiol and testosterone? \n\nHow do you expect anyone to do the studies on this? It's unethical to\n\"sacrifice\" humans to check out what effects chronic, acute, etc doses\nof these compounds are having on the brain tissue in humans.  The food\nindustry knows this. That's why the animal model is used in medicine\nand psych.  If you're talking about straight sensitivity, it would be\nuseful to define the term.  There are plenty of studies on\npsychoneuroimmunology showing the link between attitude and\nphysiology.\n\nI suspect we may be arguing about separate things; *only* adult sensitivities\n(You), and late-occuring sequelae of childhood ingestion and its\nimplication for adults (me).  Certainly\nthe doses for excitotoxicity in adults are considerably larger than\nfor the young, but the additivity of Glu and Asp, and their copious\nand increased presence in modern processed foods (jointly), and their\nhidden presence in HVP, necessitates extreme caution. Why would anyone\nwant to eat compounds which have been shown to markedly perturb the\nendocrine system in adults?  The main point is *blood levels*\nattained, and oral doses would likely have to be greater than SC. \n\n>>Between who? Over what? I would be most interested in seeing you\n>>provide peer-reviewed non-food-industry-funded citations to articles\n>>disputing that MSG has no effects whatsoever. \n>\n>You mean \"asserting\".  You're being intellectually dishonest (or just\n>plain confused), because you're conflating reports which do not necessarily\n>have anything to do with each other.  Olney's reports would argue a potential\n>for problems in human infants, but that's not to say that this says anything\n>whatsoever about the use of MSG in most foods, nor does he provide any\n>studies in humans which indicate any deleterious effects (for obvious\n>reasons.)  It says nothing about MSG's contribtion to the phenomenon\n>of the \"Chinese Restaurant Syndrome\".  It says nothing about the frequent\n>inability to replicate anecdotal reports of MSG sensitivity in the lab.\n\nOlney's work provides a putative causal mechanism for some\nsensitivities. Terry, Epelbaum and Martin have shown that orally\nadministered MSG causes changes in normal gonadotropic hormone\nfluctutations in adults. Glu also was found to induce immediate and persistant\nsupression of rhythmic GH secretion, and to induce rapid and transient\nrelease of prolactin in adults chronically exposed to MSG. GH is\nresponsible not only for control of growth during development, but\nalso converts glycogen into glucose. Could this be the cause of\nheadaches? I don't know.\n\n>>>dyer@ursa-major.spdcc.com \n>>Hmm. \".com\". Why am I not surprised?\n>>- Dianne Murray   wcsbeau@ccs.carleton.ca\n>\n>Probably one of the dumber remarks you've made.\n\nIf you had read Olney's review article, especially the remarks I\nalready quoted in an earlier post, you would know to what I was\nalluding. May I ask exactly for whom you do computer consulting? :-)\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2815, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: randy@msc.cornell.edu\nSubject: SCSI vs. IDE\nOrganization: Cornell University\nLines: 8\n\nDo all SCSI cards for DOS systems require a separate device driver to be loaded\ninto memory for each SCSI device hooked up?  Will this also be true of the 32-bit\nOS's?\n\nThanks.\n\nRandy\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2816, "properties": {"category": "rec.sport.baseball", "text": "From: scott@asd.com (Scott Barman)\nSubject: Re: Jewish Baseball Players?\nOrganization: American Software Development Corp., West Babylon, NY\nLines: 18\n\nIn article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>Just wondering.  A friend and I were talking the other day, and\n>we were (for some reason) trying to come up with names of Jewish\n>baseball players, past and present.  We weren't able to come up\n>with much, except for Sandy Koufax, (somebody) Stankowitz, and\n>maybe John Lowenstein.  Can anyone come up with any more.  I know\n>it sounds pretty lame to be racking our brains over this, but\n>humor us.  Thanks for your help.\n>\n\nOh... I forgot... Art Shamsky, former Red and Mets player.  Batted .301\nbetween injuries in 1969 (fell short of qualifying for Top 10 because of\ninjuries and platoon with Ron Swoboda; no Swobo wasn't Jewish).\n-- \nscott barman    | Mets Mailing List (feed the following into your shell):\nscott@asd.com   |            mail mets-request@asd.com <<!\n                |            subscribe\n Let's Go Mets! |            !\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2817, "properties": {"category": "rec.motorcycles", "text": "From: blaisec@sr.hp.com (Blaise Cirelli)\nSubject: Re: New to Motorcycles...\nOrganization: HP Sonoma County (SRSD/MWTD/MID)\nX-Newsreader: TIN [version 1.1 PL8.8]\nLines: 15\n\nGregory Humphreys (gregh@niagara.dcrt.nih.gov) wrote:\n\n\n\nGreg,\n\nI'm very new to motorcycles. Haven't even bought one yet. I was in the same\nposition about you. How do you learn if you've never ridden.\n\nI took a class put on by a group called the Motorcycle Safety Foundation\nin California. They might have something similar in Washington.\n\nTry calling a motorcycle dealer in your area and asking. It's a good first \nstart on how to ride a motorcycle correctly.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2818, "properties": {"category": "rec.autos", "text": "From: mart@csri.toronto.edu (Mart Molle)\nSubject: Re: Dumbest automotive concepts of all time\nLines: 36\n\nparr@acs.ucalgary.ca (Charles Parr) writes:\n\n>>>My TOP 10 list of dumbest automotive concepts ever\n>>>\n>>>9. Back-up lights on Corvette - they're on the sides of the car!\n>>              ^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^\n>>Sure would be interested to know what year(s) this was!\n>>I don't seem to recall ANY car with back-up lights on the sides, much\n>>less any Corvette.  I suppose I could be mis-interpreting what you are\n>>trying to say here.....\n\n>Just a quick comment. Backup lights mounted on the side\n>would actually be *extremely* useful for people backing out of\n>parking stalls...\n\nWhile I can't think of any Corvettes with side mounted backup lights,\nI know that Saab started using them about 15 years ago.  My 1975 Saab 99\ndidn't have them, but a friend's 1978 Saab 99 certainly did.  In addition\nto the confentional tail-light mounted backup lights, they had another\nset integrated into the front turn signal assembly.  For those of you who\ndon't remember, Saabs of that vintage had an enormous multicoloured plastic\ngrowth, about the size of a _National Geographic_ magazine, sticking out\nof the front fender, which incorporated amber \"parking lights\", amber side\nmarker lights/reflectors, white \"cornering lamps\" (like American luxury\ncars) aimed towards the side of the road when you have your turn indicators\non, and white \"backup lights\" aimed towards the back of the car when you\nhave selected reverse gear.  The glossy brochure showed how these front\nmounted backup lights were useful for illuminating hazards (pot holes, kid's\ntoys, etc) that would be run over by the front of the car if you had the\nwheels turned while backing up.\n\nMart L. Molle\nComputer Systems Research Institute\nUniversity of Toronto\nToronto, Canada M5S 1A4\n(416)978-4928\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2819, "properties": {"category": "rec.motorcycles", "text": "From: nelson@seahunt.imat.com (Michael Nelson)\nSubject: Re: Protective gear\nNntp-Posting-Host: seahunt.imat.com\nOrganization: SeaHunt, San Francisco CA\nLines: 15\n\nIn article <1993Apr5.151323.7183@rd.hydro.on.ca> jlevine@rd.hydro.on.ca (Jody Levine) writes:\n>\n>I'm still looking for good gloves, myself,\n>as the ones I have now are too loose.\n\n\tWhen you find some new ones, I suggest donating the ones\n\tyou have now to the Lautrec family in France... <grin>\n\n\t\t\t\tMichael\n\n-- \n+-------------------------------------------------------------+\n| Michael Nelson                                1993 CBR900RR |\n| Internet: nelson@seahunt.imat.com                 Dod #0735 |\n+-------------------------------------------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2820, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Jemison on Star Trek (Better Ideas)\nArticle-I.D.: aurora.1993Apr25.154449.1\nOrganization: University of Alaska Fairbanks\nLines: 31\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <1rbp6q$oai@access.digex.net>, prb@access.digex.com (Pat) writes:\n> In article <1993Apr22.214735.22733@Princeton.EDU> phoenix.Princeton.EDU!carlosn (Carlos G. Niederstrasser) writes:\n>>A transporter operator!?!?  That better be one important transport.  Usually  \n>>it is a nameless ensign who does the job.  For such a guest appearance I would  \n>>have expected a more visible/meaningful role.\n> \n> \n> Christian  Slater, only gota  cameo on ST6,  \n> \n> and besides.\n> \n> Maybe she can't act:-)\n> \n> pat\n> \n\nBetter idea for use of NASA Shuttle Astronauts and Crew is have them be found\nlost in space after a accident with a worm hole or other space/time glitch..\n\nMaybe age Jemison a few years (makeup and such) and have her as the only\nsurvivour of a failed shuttle mission that got lost.. \n\nHeh of late, they way they have been having shuttle problems in the media,\nanything can happen.. \n\nImagine a Astronaut/Crew member to find themselves in the 24th Century as the\nobject of interest of an alien civilization, maybe rescued or helped by the ST\nEnterprise...  I know Vegr and such was okay, but this could be better..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2821, "properties": {"category": "comp.windows.x", "text": "From: andre@bae.bellcore.com (Andre Cosma)\nSubject: Is authentication a planned feature for X11R6?\nNntp-Posting-Host: broccoli.bae.bellcore.com\nOrganization: Bellcore\nDistribution: na\nLines: 15\n\nGreetings,\n\nMy question is whether the upcoming release of X11R6 will provide\n(strong) authentication between the X clients and server(s). If so,\nwill this feature be based on the Kerberos authentication mechanism\n(and, if so, will Kerberos Version 5 be used)? Please reply via email.\n\nThanks,\n\n--Andre\n-- \nAndre S. Cosma         | RRC 1N-215          |  Bellcore - Security and\nandre@bae.bellcore.com | 444 Hoes Lane       |       Data Services\n(908) 699-8441         | Piscataway, NJ 08854|\n----------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2822, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Wholly Babble (Was Re: free moral agency)\nOrganization: Technical University Braunschweig, Germany\nLines: 10\n\nIn article <2944159064.5.p00261@psilink.com>\n\"Robert Knowles\" <p00261@psilink.com> writes:\n \n(Deletion)\n>Of course, there is also the\n>Book of the SubGenius and that whole collection of writings as well.\n \n \nDoes someone know a FTP site with it?\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2823, "properties": {"category": "soc.religion.christian", "text": "From: ruthless@panix.com (Ruth Ditucci)\nSubject: Losing your temper is not a Christian trait\nOrganization: PANIX Public Access Unix, NYC\nLines: 13\n\nComing from a long line of \"hot tempered\" people, I know temper when I see\nit.  One of the tell tale signs/fruits that give non-christians away - is\nwhen their net replies are acrid, angry and sarcastic.  \n\nWe in the net village do have a laugh or two when professed, born again\nchristians verbally attack people who might otherwise have been won to\nchristianity and had originally joined the discussions because they were\n\"spiritually hungry.\"  Instead of answering questions with sweetness and\nsincerity, these chrisitan net-warriors, \"flame\" the queries. \n\nYou don't need any enemies.  You already do yourselves the greatest harm.\n\nAgain I say, foolish, foolish, foolish.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2824, "properties": {"category": "soc.religion.christian", "text": "From: harwood@umiacs.umd.edu (David Harwood)\nSubject: Re: Essene New Testament\nOrganization: UMIACS, University of Maryland, College Park, MD 20742\nLines: 11\n\n[William Christie asked about the Essene NT.\nAndrew Kille reponded\n>There is a collection of gospels which usually goes under the name of the\n>\"Essene Gospel of Peace.\"  These are derived from the gnostics, not the\n>essenes, and are ostensibly translations from syriac texts of the fourth \n>and fifth centuries (I vaguely recall; I can't find my copy right now).\n--clh]\n\nThere had been recent criticism of this in a listserv for academic\nBiblical scholars: they all say the book(s) are modern fakes.\nD.H.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2825, "properties": {"category": "talk.religion.misc", "text": "From: clavazzi@nyx.cs.du.edu (The_Doge)\nSubject: What we learned from the Waco wackos\nKeywords: prophet profit\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nDistribution: usa\nLines: 32\n\n\n\tThere are actually a few important things we can glean from this mess:\n1)\tWhen they start getting desperate for an answer to the question: \"What's\nit all about. Mr. Natural?\", pinkboys will buy darn near *anything*, which\nmeans:\n2)\tThere's still plenty of $$$$ to be made in the False Jesus business\nby enterprising SubGenii.  Just remember that:\n3)\tOnce you've separated the pinks from their green, don't blow it all\non automatic weapons from Mexico.  Put it in a Swiss bank account.  Smile a\nlot.  Have your flunkies hand out flowers in airports.  The Con will just\nshrug you off as long as:\n4)\tYou never, never, NEVER start to believe your own bulldada!  If\n\"David Koresh\" hand't started swallowing his own \"apocalypso now\" crap, he'd\nbe working crossword puzzles in the Bahamas today instead of contributing to\nthe mulch layer in Waco.  This is because:\n5)\tWhen you start shooting at cops, they're likely to shoot back.  And \nmost of 'em are better shots than you are.\n\n\tIn short:\n\t- P.T. Barnum was right \n\t\tand\n\t- Stupidity is self-correcting\nThus endeth the lesson.\n\n\t************************************************************\n\t*  \tThe_Doge of South St. Louis\t\t\t   *\n\t*\t\tDobbs-Approved Media Conspirator(tm)\t   *\n\t*\t\"One Step Beyond\"  -- Sundays, 3 to 5 pm\t   *\n\t*\t\t88.1 FM\t\tSt. Louis Community Radio  *\n\t*  \"You'll pay to know what you *really* think!\"           *\n\t*\t\t\t-- J.R. \"Bob\" Dobbs\"\t\t   *\n\t************************************************************\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2826, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gking@cymbal.calpoly.edu (Gregory S King)\nSubject: SS 24X Questions\nOrganization: California Polytechnic State University, San Luis Obispo\nDistribution: usa\nLines: 17\n\n\tJust got a ss24X based on its good ratings, but am a little\nunder-impressed.  First, is it's performance in 16.7 mill. supposed\nto be comparable to a Trident 8900 (or other unaccelerated VGA)?  I \ncame up with only OK performance on WinSpeed.  In 256, it was between\ngood and great.  Second, does anyone know where to get that JPG viewer\n\"for the SS24X\".  I saw it on cica or something.  Does it work better.\n\nThanks for any help.\n\nGreg\n\n\n-- \nI--------------------------------------------------------------------I\nI  Gregory S. King                 I    \"The Quality of Life is      I\nI  Aeronautical Engineering        I     Directly Proportional to    I\nI  Cal Poly SLO                    I     How Fast You Drive\"         I\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2827, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Eco-Freaks forcing Space Mining.\nOrganization: U of Toronto Zoology\nLines: 22\n\nIn article <1993Apr21.212202.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>Here is a way to get the commericial companies into space and mineral\n>exploration.\n>\n>Basically get the eco-freaks to make it so hard to get the minerals on earth.\n\nThey aren't going to leave a loophole as glaring as space mining.  Quite a\nfew of those people are, when you come right down to it, basically against\nindustrial civilization.  They won't stop with shutting down the mines here;\nthat is only a means to an end for them now.\n\nThe worst thing you can say to a true revolutionary is that his revolution\nis unnecessary, that the problems can be corrected without radical change.\nTelling people that paradise can be attained without the revolution is\ntreason of the vilest kind.\n\nTrying to harness these people to support spaceflight is like trying to\nharness a buffalo to pull your plough.  He's got plenty of muscle, all\nright, but the furrow will go where he wants, not where you want.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2828, "properties": {"category": "rec.autos", "text": "From: danmg@grok85.ColumbiaSC.NCR.COM (Daniel Adams)\nSubject: Re: BMW 3 series for 94?\nNntp-Posting-Host: grok85.columbiasc.ncr.com\nReply-To: dan@Grok85.ColumbiaSC.NCR.COM\nOrganization: NCR Corporation\nLines: 19\n\nIn article <1qll56INNp9r@uwm.edu>, qazi@csd4.csd.uwm.edu (Aamir Hafeez Qazi) writes:\n|> From article <eabu288-140493210752@dialin33635.slip.nts.uci.edu>, by eabu288@orion.oac.uci.edu (Alvin):\n|> >\n|> > Is there going to be a BMW 328 in 1994?\n|> \n|> --Could be.  Isn't the 2.5 liter six supposed to be enlarged to 2.8 liters\n|>   in the not-too-distant future?\n|> \n\nMakes sense, since the new Mercedes Benz engines go from 2.2L-4 to a 2.8L-6.\nNothing in between.  BTW, I beleive the numbers on those MB engines are\n156 and 225 hp respectively.  The one-upmanship in hp might induce BMW\nto create a larger six.  Also, the 2.6 190E has lagged behind the 3-er\n2.5 for some time wrt hp.   I am sure the Bavarians wouldn't want to be\n\"shown-up\" by the Schwabians.\n\nPS- those MB engines haven't been released over here yet.\n\ndaniel\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2829, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: chrstie@ccu.umanitoba.ca (William John M. Christie)\nSubject: Re: Joystick suggestions?\nNntp-Posting-Host: varley.cc.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Canada\nLines: 31\n\n\nIt depends on what you'd like your joystick for.  I've seen Gravis\njoysticks at Radio Shack.  They seemed flimsy and didn't fit well in my\nhand.  I have heard on c.s.i.p.games that they don't last well (less than\na year) on flightsims.  One redeeming feature does seem to be the ability\nto adjust the tension of the stick.\n\nI recently purchased a CH Flightstick.  There aren't any suction cups and\nno tension adjusters but otherwise it seems to be an excellent joystick. \nI'm currently using it for the Wing Commander series and Red Baron.  Works\nquite well.  The large base does not require a steadying hand and so\nleaves it free.  The buttons provide good tactile response (you can hear\nand feel them well).  There are other models made by CH that can go up or\ndown in features.\n\nFor price comparison Gravis analogue joysticks sell for ~$35.00 here\ncompared to the $45.00 I paid for a CH Flightstick.  I think the extra\n$10.00 is worth it just in feel.  Best thing to do is to ask a salesperson\nto let you try them out or at least feel it before you buy.\n\nJust another note, analogue joysticks are best for flightsims or something\nthat needs sensitive touch.  If you're only playing games such as Castle\nWolfenstein or some other game that only uses digital input (ie. only up,\ndown, left, etc. instead of 'how much right') you might want to look into\na Gravis gamepad.  They look like a Nintendo control pad but I don't know\nmuch beyond that.\n-- \n     Will Christie       |    AATCHOO!      | PHILOSOPHY: the principles and \n University of Manitoba  |    Uh-oh...      |  science of thought and reality\n  Winnipeg, MB, Canada   |   I'm leaking    | PHILOSOPHER: someone who thinks\nchrstie@ccu.UManitoba.CA | brain lubricant. |  they're useful to society\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2830, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 31\n\nIn article <1993Apr16.164638.27218@galileo.cc.rochester.edu>, as010b@uhura.cc.rochester.edu (Tree of Schnopia) writes:\n> In <15378@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n# #The article also contains numbers on the number of sexual partners.\n# #The median number of sexual partners for all men 20-39 was 7.3.\n# #Compared to the table I have already posted from Masters, Johnson,\n# #and Kolodny showing male homosexual partners, it is apparent that\n# #homosexual men are dramatically more promiscuous than the general\n# #male population.  It's a shame that we don't have a breakdown for\n# #straight men vs. gay/bi men -- that would show even more dramatically\n# #how much more promiscuous gay/bi men are.\n# \n# Possibly because gay/bi men are less likely to get married?\n\nMarriage isn't a requirement for a couple staying together.\n\n# What was the purpose of this post?  If it was to show a mindless obsession\n# with statistics, an incredibly flawed system of reasoning, and a repellent\n# hatemonger agenda, then the purpose was accomplished with panache.\n# \n# (a) Get a clue.  (b) Get a life.  (c) Get out of my face.  I'm not in yours.\n# \n# ----bi    Andrew D. Simchik\t\t\t\t\tSCHNOPIA!\n\nYes you are.  When you and the rest of the homosexual community\npass laws to impose your moral codes on me, by requiring me to\nhire, rent to, or otherwise associate with a homosexual against\nmy will, yes, you are in my face.  Until homosexuals stop trying\nto impose their morals on me, I will be in your face about this.\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2831, "properties": {"category": "comp.sys.mac.hardware", "text": "From: andy@ie.utoronto.ca (Andy Sun)\nSubject: Re: Centris 650 to Decstation E-net adapter\nOrganization: University of Toronto, Department of Industrial Engineering\nLines: 86\n\n>pnsf01dw@smucs1.umassd.edu (Dennis J. Wilkinson) writes:\n>Not necessarily a thrid-party adapter; Apple does manufacture transceivers\n>for thinWire and 10BaseT (twisted pair) cable media, as well as an AUI\n>(Attachment Unit Interface) transciever. They run at ~$100 each. If you use\n>thinWire or 10BaseT, you'll probably also need terminators (Apple's\n>transceivers are self-terminated, if I remember correctly, but I have no\n>idea about DECs). \n\nThe third-party media adapters are usually cheaper (at least in Toronto) than\nApple's. I bought the adapters from Asante instead of Apple.\n\ngurman@umbra.gsfc.nasa.gov (Joseph B. Gurman) writes:\n>    The DECstation 5000 Models 200 and 240 come with ThinWire only\n>(can't say for certain about the Models 125 and 133), so your best bet\n\nThat's not true. Only the DECstation 5000/200 comes with a Thinwire\n(BNC, coaxial) Ethernet connector. The 5000/25, 5000/133 and 5000/240\nall have a single 15-pin AUI Ethernet connector only. I distinctly\nremembered this because when got the 5000/200 first and I thought all\nof them are going to be Thinwire. I eventually had to go back and ordered\nDESTAs (DEC's oversized version of an AUI-to-BNC adapter that MUST be used\nwith a transciever cable) for the rest of the stations.\n\nMy advise to the very original poster (Beverly?) is:\n\n(1) If all you want is to create a LAN with two workstations and won't add\n    machines to it EVER, go for Thinwire regardless of the media type. Going\n    for UTP (unshielded twisted pair) wiring requires a concentrator which\n    means extra money and I believe these units come with at least 6 ports.\n    As for Thicknet, it's a nightmare and cabling is expensive. Avoid it\n    unless you have no choice (e.g. the two machines are two floors parts).\n\n(2) On the Mac side, you will need:\n    - one Thinwire media adapter (from Apple or third-party).\n    - MacX (make sure you get version 1.2; 1.1.7 won't run on System 7.1).\n    - MacTCP (which comes with MacX; if you get MacX v1.2, you should be\n      getting MacTCP v1.1.1 with it. Don't use earlier versions on a Centris).\n    - you may or may not need a 25ohm terminator depending on the\n      Thinwire media adapter. So just ask the sales if the adapter is\n      self-terminated or not.\n    - configure MacTCP to use \"Ethernet\".\n\n(3) On the DECstation side, you will need:\n    - for a Model 200, you will only need a T-connector.\n    - for Models 25, 125, 133, 240, you will need an AUI-to-BNC adapter.\n      Get one that can be plugged in directly to the AUI port of the\n      DECstation. This way you save the cost of a transciever cable\n      (a 15-pin AUI male to a 15-pin AUI female cable).\n    - get a 25ohm terminator.\n\nYour two-machine network will look like this:\n\n\n       ##T----------------------------------------------[]\n      +-----+                                           |\n      |     |                                           |\n      +-----+                                         +-----+\n                                                      |     |\n                                                      +-----+\n    DECstation                                        Centris\n     5000/200                                           650\n                              OR\n\n       ##T----------------------------------------------[]\n        {=}                                             |\n      +-----+                                           |\n      |     |                                         +-----+\n      +-----+                                         |     |\n                                                      +-----+\n    DECstation                                        Centris\n5000/25,125,133,240                                     650\n         \n   ##    -> 25ohm terminator\n   T     -> T connector\n   ---   -> Thinwire (RG58 coaxial cable)\n   {=}   -> AUI-to-BNC (i.e. Thick-to-Thin) adapter\n   []    -> Thickwire media adapter (assuming self-terminated)\n   |\n   |\n\nAndy\n-- \nAndy Sun (andy@ie.utoronto.ca)          4 Taddle Creek Road, Toronto\nComputing Coordinator                   Ontario, Canada. M5S 1A4\nDepartment of Industrial Engineering    Phone: (416) 978-8830\nUniversity of Toronto                   Fax:   (416) 978-3453\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2832, "properties": {"category": "sci.electronics", "text": "From: hcb@netcom.com (H. C. Bowman)\nSubject: 8x oversampling CD player\nKeywords: oversampling, CD, digitized audio\nOrganization: Box of Rain Productions\nLines: 27\n\n\nHello--\n\nI just bought a new portable CD player for the office, and I notice that\nit proudly proclaims \"8 TIMES OVERSAMPLING\" on the box.  Now while I think\nI understand what oversampling is (the rate of discrete \"samples\"\nexceeds the highest frequency component of interest by some factor),\nI don't understand this \"8 TIMES\" business...  It seems to me that when\nI bought my first CD player (was it REALLY 10 years ago?!), the specs\nsaid \"4 TIMES\" ...  Could someone please tell me whether I'm getting\nsenile?  If I'm not, then what good does it do for the player to take\nsamples at a higher rate?  If I really wanted better fidelity, wouldn't\nI have to have the same higher rate of sampling during the recording\nprocess?  Furthermore, am I wrong in interpreting the sampling rate\n(from the player's point of view) as being the same thing as the data\nrate for the bit stream coming off the optical medium?  Does this mean\nthat the data rate (related to the rotational speed of the disk) has \nchanged since 1983?\n\nI'm so confused...  \n\n--Cliff\n\n-- \n| Clifford Bowman, Box 1890, Russellville, AR  72811 | hcb@netcom.com |\n| I'm pretty sure the world *isn't* fair...  If it   | (501) 968-2232 |\n| were, I'd be a lot worse off!                      |      N5TJU     |\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.130+0000", "event": "documents", "entityId": 2833, "properties": {"category": "rec.autos", "text": "From: pminocha@frx400.intel.com (Punit Minocha - QRE)\nSubject: SAAB Mailing list\nOrganization: Intel Corporation\nLines: 9\nDistribution: usa\nNNTP-Posting-Host: frx400.intel.com\nKeywords: Saab\n\nCould someone out there please tell me how I could get onto\nthe Saab mailing list. Specifically I need the address and\ninstructions on what to do.\n\nThanks in advance\n\nPete\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2834, "properties": {"category": "rec.autos", "text": "From: kking@cs.uah.edu (Ken King)\nSubject: Re: The Kuebelwagen??!!          \nReply-To: kking@uahcs2.uah.edu (Ken King)\nOrganization: Computer Science Dept. - Univ. of Alabama in Huntsville\nLines: 36\n\nIn article <C5K5Co.F09@mentor.cc.purdue.edu> thwang@mentor.cc.purdue.edu (Tommy Hwang) writes:\n>\tSorry for the mis-spelling, but I forgot how to spell it after \n>my series of exams and NO-on hand reference here.\n>\n>\tIs it still possible to get those cute WWII VW Jeep-wanna-be's?\n>A replica would be great I think.  \n\n  greetings:\n  you may be in luck.  i seem to recall seeing a blurb in one of\nthe kit car magazines about a company in norway who pulled a\nmould (sp?) off a real kubel, and has adapted it to the beetle\nfloorpan.  as for the suspension, all i can remember about the\nvw thing i used to own is that it had about 3\" more suspension\ntravel than a stock beetle, but i'd heard that there were after-\nmarket parts for off-road use that were as good or better.  note\nthat the major difference (looks wise) between a kubel & a thing\nare the hood and the fenders.  the kubel had an external spare\nmounted *on* the hood, and the hood sloped down (for visibility?)\nsharply, and had rounded fenders.  the thing has a lightly sloped \nhood with the spare mounted inside (unless moved to make for more\nluggage space...) and has half-hexagon shaped fenders (imagine a\nnut large enough to put a tire *in*, and cut off the bottom half\nof it...).\n  unfortunately, i don't have that info anymore.  try stopping\nat a local bookstore and copying down the phone numbers for the\ntwo big mag's and calling them.  they might be able to get the\nnumber for you (don't forget to calculate the time difference to\nnorway before calling...).\n\nlater,\nkc\n-- \n          ___==A==___          | Quick Bones, help me get | #include \n  .---====   ( o )   ====---.  | this Klingon off my *ss! |  <std/disclaimer.h>\n /        ~~~~~~~~~~~        \\ | Damn it, Jim, I'm a      | \n ()     kking@cs.uah.edu    () | doctor, not a bidet!  :) | \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2835, "properties": {"category": "talk.politics.misc", "text": "From: gal2@kimbark.uchicago.edu (Jacob Galley)\nSubject: Clinton's sister, Shalala\nReply-To: gal2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 22\n\n\nLast night I heard something about Bill Clinton's sister being\ninvolved in a marijuana bust, and the news being suppressed. I also\nheard something about her being an \"ex-con\". This source is not\nreliable, though. (It was a collage/booklet advertising a local band.)\n\nCan anyone on the net verify this or provide more details? I'm\nsurprised I haven't seen anything about this in this newsgroup.\n\nAlso, does anyone know what happened to the charges that Shalala was a\nregular pot smoker when she was in college? This ghastly accusation\nwas reported on CNN Streamline News the day she was nominated, then I\nnever heard anything about it again.\n\nIt's almost enough to make me want to start an Act-Up type campaign\nto invade the privacy of closet smokers! (If only this type of\npublicity didn't violate people's rights. . . .)\n\nJake.\n-- \n* What's so interdisciplinary about studying lower levels of thought process?\n\t\t\t\t  <-- Jacob Galley * gal2@midway.uchicago.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2836, "properties": {"category": "rec.sport.baseball", "text": "From: kmelcher@rafael.Arco.COM (Kenneth Melcher)\nSubject: Re: The 1964 Phillies: deja vu?\nReply-To: kmelcher@rafael.Arco.COM\nOrganization: ARCO Exploration and Production Technology\nLines: 3\n\nMy dad has always blamed the Phillies collapse in '64 on me...  On Sept 21,  1964,  the Phillies had something like a 9 game lead with 12 to play.  I was born on Sept 21,  1964.  The Phils proceeded to lose something like 10 straight while the Cards won 10 straight (does anyone know hte exact numbers?),  and a pennant was blown.  To this day my dad likes to remind me that it all began when I was born!\n\nKRM\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2837, "properties": {"category": "rec.sport.hockey", "text": "From: hamlet@stein.u.washington.edu (Mitch McGowan)\nSubject: Minnesota recalls McGowan (HELP!!!)\nOrganization: University of Washington\nLines: 24\nNNTP-Posting-Host: stein.u.washington.edu\n\n  Derian Hatcher's game-misconduct penalty was rescinded by the NHL, \nallowing the Minnesota defenseman to play in the North Stars' last two \nregular-season games.  Hatcher was given the penalty during a fight at \nthe end of a loss at St. Louis on Sunday, April 11.  But the league \ndidn't rescind the game-misconduct penalty Shane Churla received.  The \nStars recalled center Cal McGowan from their top minor league club in \nKalamazoo, Mich., to replace Churla.\n\nThe above is courtesy of The Washington Times on-line service.\n\nNow, here's where I need help.  If anyone out there has a tape of Tuesday's\nChicago-Minnesota game, please contact me.  Terms will be favorable.\n\nAlso, if anyone can tape tonight's Minnesota-Detroit game, please contact\nme.  This could be quite important.  Once again, I will make it worth\nyour trouble.\n\nThanks to all.\n\n--\nrec.sport.hockey contact for Minnesota North Stars\nand maintainer of the r.s.h FAQ file\nMitch McGowan a.k.a.    | KALAMAZOO WINGS  | MINNESOTA NORTH STARS |\nhamlet@u.washington.edu | ST. KILDA SAINTS | TORONTO BLUE JAYS     |\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2838, "properties": {"category": "sci.crypt", "text": "From: pdc@dcs.ed.ac.uk (Paul Crowley)\nSubject: Re: Do we need the clipper for cheap security?\nReply-To: pdc@dcs.ed.ac.uk (Paul Crowley)\nOrganization: Edinburgh University\nLines: 12\n\nQuoting pmetzger@snark.shearson.com (Perry E. Metzger) in article <1993Apr21.012011.27470@shearson.com>:\n>Whats the difference between a V.32bis modem and a V.32bis modem?\n\nHow fast do the fastest modems go?\n\nHow far can voice be compressed?\n\nI've seen various assertions about this, but anyone with the\nstraightforward bits-per-second figures will be my friend forever...\n  __                                  _____\n\\/ o\\ Paul Crowley   pdc@dcs.ed.ac.uk \\\\ //\n/\\__/ Trust me. I know what I'm doing. \\X/  Fold a fish for Jesus!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2839, "properties": {"category": "rec.autos", "text": "From: keys@starchild.ncsl.nist.gov (Lawrence B. Keys)\nSubject: Re: Necessity of fuel injector cleaning by dealership\nOrganization: National Institute of Standards & Technology\nLines: 58\n\nIn article <1993Apr6.131018.12873@acd4.acd.com> jwg@sedv1.acd.com ( Jim Grey) writes:\n>In article <1993Apr2.174850.6289@cbnewsl.cb.att.com> prm@cbnewsl.cb.att.com (paul.r.mount) writes:\n>>\n>>In your experience, how true is it that a fuel injector cleaning\n>>will do much more good than just using detergent gas.   While I\n>>agree that a clogged fuel injector would darken my day, how clogged\n>>do they get, and is $59 a good price (or can I do it myself by buying\n>>a can of ____ (what?) and doing ___ what?\n>\n>\n>A \"fuel injector cleaning\" at the dealer is probably little more than\n>them opening your gas tank, dumping in a bottle of fuel injector cleaner,\n>and sending you on your merry way $59 poorer.  Go to KMart and buy the\n>cleaner yourself for $1.29.\n\nPersonally, i wouldn't use the $1.29 product from KMart. I knew about\nthis previously, but this past weekend on PBS's MotorWeek Pat Goss \n(their resident tech type) discussed these products, and recommends\nnot using them (i.e, the non-isopropyl alcohlo based injector cleaners).\n\nSupposedly only the isopropyl based cleaners actually remove moisture\nfrom your fuel tank as they clean your injectors.  And although the \nothers (ethyl based) do clean injectors they also cause rubber \ncomponents in the fuel system to deteriorate, and they don't mix well\nwith water to help remove it from the fuel system.\n\nI use a product recommended by VW called 44K (by BG Products, Inc.).\nIt cost more about $14.00, but it is supposed to do the job without\nthe potential harmful side effects, and its results are supposed to \nlast from 2k to 4k miles. I have also used Chevron's Techtrolene (sp?).\n\nI can't say that i have noticed any difference using either, since i \nonly use these product as a preventative maintenance item.\n\n> \n>Just because you dealer sez you need it, don't mean it's necessarily so.\n>Be suspicious.\n> \n>jim grey\n>jwg@acd4.acd.com\n\n                                                  .  \n                                                 /                \nLarry                            __/    _______/_                 \nkeys@csmes.ncsl.nist.gov       /                  \\               \n                          _____     __     _____    \\------- ===\n            ----------- / ____/   /  /   /__  __/              \\\n         /     ___    /  / ___   /  /      / /    ____          |\n        |    /      \\/ /__ /  | /  /__  __/ /__ /       \\      / \n        /___         \\_______/ /_____/ /______/            ====OO\n            \\       /                           \\       /         \n                -            1990 2.0 16v           -\n\n\n       ---------------- FAHRVERGNUGEN FOREVER! --------------------            \n            The fact that I need to explain it to you indicates\n            that you probably wouldn't understand anyway!\n       ------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2840, "properties": {"category": "rec.motorcycles", "text": "From: fields@cis.ohio-state.edu (jonathan david fields)\nSubject: Question????\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 8\nDistribution: usa\nNNTP-Posting-Host: frigate.cis.ohio-state.edu\n\nThis is probably a stupid question but as I am new to the motorcycle scene\nI don't really know anything about it. What is DoD? \n\n\t\t\t\t\tThanks,\n\n\t\t\t\t\tJonathan D. Fields\n\t\t\t\t\tfields@cis.ohio-state.edu\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2841, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: $6700 for hail damage - a record?\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nDistribution: usa\nLines: 30\n\nIn article <1993Apr20.203219.7724@pencom.com> stecz@pencom.com writes:\n>In article <1993Apr19.235711.7285@cactus.org> boyle@cactus.org (Craig Boyle)  \n>writes:\n>> \n>> \n>> My 90 Integra was hit hard in the 3/25 hailstorm in Austin, TX. \n>> The insurance company cut me a check for $6600 ($100 deductible)\n>> last week.  Is this a record? Anybody else had settlements from\n>> the same hailstorm yet?\n>> \n>> Craig\n>\n>\n>Rumor has it that a guy at Dell Computer had his Miata totalled, so that would  \n>be about $10k.\n\nI guess it either had the top down, or the hail ripped through the top, as\nyou could not do $10k worth of hail damage to a Miata body. \n\nCraig\n>\n>\n>--\n>--\n>  John Steczkowski                        stecz@pencom.com\n>    The Constitution grants you the right to life, liberty, and the\n>    *pursuit* of happiness.  It does not attempt to guarantee that\n>    everyone *will* be happy.\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2842, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gay@venice.sedd.trw.com (Lance Gay)\nSubject: Out of environment space running BAT files from Windows\nArticle-I.D.: venice.1993Apr23.005117.21582\nOrganization: TRW Systems Engineering & Development Division, Carson, CA\nLines: 17\n\nI have a .BAT file that I run under a Windows Icon.  I have set up a PIF\nfile to run the BAT file in exclusive mode and to use the entire screen.\nThe first line of the BAT file sets an environment variable.\n\nMy problem is that on some of our machines (running MS-DOS 5.0 and Windows\n3.1 in enhanced mode), the SET command in the BAT file fails with the\nOUT OF ENVIRONMENT SPACE error.  I have raised the amount of environment \nspace to 2048 bytes using the SHELL command in CONFIG.SYS so I know that\nI am nowhere near to running out.  If I just click on the MS-DOS icon,\nI can create a bunch of environment varibles from the DOS shell.  The problem\nis that on some machines, setting the value of an environment variable in\na BAT file fails.  Has anyone seen such behavior before?  I see no place in the\nPIF fail to configure environment space.\n \nLance J. Gay                                 Internet: gay@venice.sedd.trw.com\nTRW Systems Engineering & Development Div.   Phone: 310-764-3988\nCarson, CA  90746\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2843, "properties": {"category": "sci.electronics", "text": "From: lihan@ccwf.cc.utexas.edu (Bruce G. Bostwick)\nSubject: Re: Membrane keypad with custom legend.\nOrganization: The University of Texas at Austin, Austin TX\nLines: 21\nDistribution: usa\nNNTP-Posting-Host: doc.cc.utexas.edu\n\nIn article <1993Apr21.125530.18387@texhrc.uucp> pyeatt@Texaco.com (Larry D. Pyeatt) writes:\n>I had a catalog with membrane keypads, but I dunno what\n>happened to it, and it was so long ago that I forget the\n>name of the company.  Anyway, you could make your own\n>legend and slip it behind the bezel.  Really nice and \n>reasonably priced.  Can anyone tell me where to get some\n>more of these critters?\n\nFor some reason the name Grayhill springs to mind -- saw something\nlike that in a Grayhill catalog, along with options for custom printed\noverlays and a neat little electroluuminescent backing that would make\nthe whole shebang glow a nice shade of green ..\n\nmighty handy if you're trying to key a door combination in the dark\nand don't want to TURN ON THE &%#$!! LIGHT ..\n\n-- \n<BGB>\nlihan@ccwf.cc.utexas.edu        /   The only reason the world hasn't\n(really Bruce Bostwick)        /   dissolved into total chaos is that\nfrom the great state of TEXAS /   Murphy's Law also applies to Murphy.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2844, "properties": {"category": "rec.autos", "text": "From: wrat@unisql.UUCP (wharfie)\nSubject: Re: Too fast\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 7\n\nIn article <3090@shaman.wv.tek.com> andrew@frip.wv.tek.com writes:\n>So is cocaine.  What's your point?\n\n\tThat neither is harmful when used carefully?\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2845, "properties": {"category": "comp.windows.x", "text": "From: dla@se05.wg2.waii.com (Doug Acker)\nSubject: Re: Problem with libXmu on SUNOS5.1 and gcc\nReply-To: acker@se01.wg2.waii.com\nOrganization: Western Geophysical Exploration Products\nLines: 23\nNNTP-Posting-Host: se05.wg2.waii.com\n\nIn article <1qmt3i$66io@ep130.wg2.waii.com>, dla@se05.wg2.waii.com (Doug Acker) writes:\n|> I am using X11R5patch23 with the R5-SUNOS5 patch posted on export.\n|> I did optionally apply the patch.olit.\n|>\n|> libXmu compiles fine .. when I try to use it with clients (i.e. bmtoa and\n|> twm), I get errors ... I can not figure out what is wrong:\n|>\n|> gcc -fpcc-struct-return -o twm gram.o lex.o deftwmrc.o add_window.o gc.o list.o twm.o  parse.o menus.o events.o resize.o util.o version.o iconmgr.o  cursor.o icons.o -O2   -R/usr/wgep/X11R5.sos5/lib${LD_RUN_PATH+\\:$LD_RUN_PATH} -L../.././lib/Xmu -lXmu -L.|> ./.././lib/Xt -L../.././extensions/lib -L../.././lib/X -L../.././extensions/lib -lXext -L../.././extensions/lib -lXext -L../.././lib/X -lX11 -L/usr/wgep/X11R5.sos5/lib  -lsocket -lnsl\n|> ld: warning: file ../.././extensions/lib/libXext.so: attempted multiple inclusion of file libXext.so\n|> Undefined                       first referenced\n|>  symbol                             in file\n|> XtWindowOfObject                    ../.././lib/Xmu/libXmu.so\n|> ld: fatal: Symbol referencing errors. No output written to twm\n|> *** Error code 1\n\nThe problem was that SunPost411Ld was not defined.\n\nDouglas L.Acker                Western Geophysical Exploration Products\n____    ____     ____          a division of Western Atlas International Inc.\n\\   \\  /   /\\   /   /\\         A Litton / Dresser Company\n \\   \\/   /  \\ /   /  \\        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n  \\  /   / \\  /   /\\   \\       Internet  :  acker@wg2.waii.com\n   \\/___/   \\/___/  \\___\\      Voice     :  (713) 964-6128\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2846, "properties": {"category": "rec.autos", "text": "From: dye@lachman.com (Ken R. Dye )\nSubject: Re: Feedback requested on lowering '66 Mustang\nNntp-Posting-Host: london.i88.isc.com\nOrganization: Lachman Technology, Inc., Naperville, IL\nLines: 28\n\nIn article <X3XZ2B2w165w@vllyoak.resun.com> jp@vllyoak.resun.com (Jeff Perry) writes:\n>I have found a kit advertised for lowering the front end of an early \n>mustang.  Installation envolves moving the upper A-arm and installation \n>of a wedge shaped spacer between the A-arm and ball joint.  Apparently, \n>Shelby Mustangs did a similair modification, but left out the spacer.\n>\n>I would be interested in feedback, pro or con, on such a modification.\n\n\tI'm no mustang head, but don't the early ones have a simple\nstrut suspension (that is, with no upper A-arm)?  Just a strut\ngoing down to a lower control arm (single bushing: not an A-arm), with a\ntension/compression rod locating it in the forward/backward direction?\n\n\tAnyway, simple strut suspensions like this can be lowered just by using\nshorter springs, cutting the springs, lowering the spring perch or shortening\nthe strut below the perch.  In each of these cases, the suspension geometry\nwill suffer because the lower control arms will not be at the\nintended angle.  A spacer placed between control arm and the bottom\nof the strut (roughly the height of the reduction) will restore\nthe suspension geometry.  IMHO, the kit that includes the spacer\nis the only way to go...\n\n--Ken\n-- \nKen R. Dye\t\t\t\tan optimist is a guy\t\t |\nLachman Technology, Inc., Chicago\tthat has never had\t\t | \n(708) 505-9555 x341\t\t\tmuch experience\t\t\t |\ndye@lachman.com\t\t\t\t\t\t\tarchy\t |\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2847, "properties": {"category": "comp.graphics", "text": "From: george@ccmail.larc.nasa.gov (George M. Brown)\nSubject: QC/MSC code to view/save images\nOrganization: Client Specific Systems, Inc.\nLines: 12\nNNTP-Posting-Host: thrasher.larc.nasa.gov\n\nDear Binary Newsers,\n\nI am looking for Quick C or Microsoft C code for image decoding from file for\nVGA viewing and saving images from/to GIF, TIFF, PCX, or JPEG format. I have\nscoured the Internet, but its like trying to find a Dr. Seuss spell checker \nTSR. It must be out there, and there's no need to reinvent the wheel.\n\nThanx in advance.\n\n//////////////\n\n The Internet is like a Black Hole....\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2848, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: goyal@utdallas.edu (MOHIT K GOYAL)\nSubject: Refresh rates of NEC 5fgx?\nNntp-Posting-Host: csclass.utdallas.edu\nOrganization: Univ. of Texas at Dallas\nLines: 5\n\nCan someone tell me the maximum horizontal and vertical refresh rates of the\nNEC 5fgx.(not the 5fge)\n\nThanks.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2849, "properties": {"category": "comp.sys.mac.hardware", "text": "From: da228@cleveland.Freenet.Edu (Charles G. Williams)\nSubject: Has anyone had problems with IBM drives in their machines?\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 24\nReply-To: da228@cleveland.Freenet.Edu (Charles G. Williams)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nHi,\n\nThe subject line says it all.  My system acts weird at times.  All of a\nsudden the system will be corrupt, boot blocks will get chewed, etc.\n\nThis was a really big problem for a while.  I couldn't even format my\ndrive properly.  I installed HDT's driver and things got better.  Now\nall I have to do is reinstall the system.  Could an incompatibility \nexist between it and a Quantum external drive.\n\nI'm looking for a pure hardware solution.  It's not a virus, bad\nsoftware, etc.  Could I have a bad SCSI cable?  Or is the IBM (WDS-80)\njust a screwey drive?\n\nThanks,\n\nChuck\n\n-- \nChuck Williams ==> CS Intern ==> Pacific Northwest Laboratories\n\nda228@cleveland.freenet.edu\ncg_williams@ccmail.pnl.gov\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2850, "properties": {"category": "alt.atheism", "text": "From: madhaus@netcom.com (Maddi Hausmann)\nSubject: Re: Amusing atheists and agnostics\nOrganization: Society for Putting Things on Top of Other Things\nLines: 40\n\ntimmbake@mcl.ucsb.edu (Bake Timmons) writes: >\n\n>OK, you have disproved one thing, but you failed to \"nail\" me.\n>\n>See, nowhere in my post did I claim that something _must_ be believed in.  Here\n>are the three possibilities:\n>\n>\t1) God exists. \n>\t2) God does not exist.\n>\t3) I don't know.\n>\n>My attack was on strong atheism, (2).  Since I am (3), I guess by what you said\n>below that makes me a weak atheist.\n  [snip]\n>First of all, you seem to be a reasonable guy.  Why not try to be more honest\n>and include my sentence afterwards that \n\nHonest, it just ended like that, I swear!  \n\nHmmmm...I recognize the warning signs...alternating polite and\nrude...coming into newsgroup with huge chip on shoulder...calls\npeople names and then makes nice...whirrr...click...whirrr\n\n\"Clam\" Bake Timmons = Bill \"Shit Stirrer Connor\"\n\nQ.E.D.\n\nWhirr click whirr...Frank O'Dwyer might also be contained\nin that shell...pop stack to determine...whirr...click..whirr\n\n\"Killfile\" Keith Allen Schneider = Frank \"Closet Theist\" O'Dwyer =\n\nthe mind reels.  Maybe they're all Bobby Mozumder.\n\n-- \nMaddi Hausmann                       madhaus@netcom.com\nCentigram Communications Corp        San Jose California  408/428-3553\n\nKids, please don't try this at home.  Remember, I post professionally.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2851, "properties": {"category": "comp.windows.x", "text": "From: gerard@netlabs.com (Gerard Horan)\nSubject: Running X on a PC at home talking to a host over Serial Line\nOriginator: gerard@vaccine.netlabs.com\nNntp-Posting-Host: vaccine.netlabs.com\nOrganization: NetLabs, Inc.\nLines: 41\n\nSome time back I asked for software recommendations to  allow me to\nrun X from my PC at home to my Sparc at the office.\n\nMany thanks for all replies, the majority of people  recommended\nPCXremote from NCD. I received it yesterday  and installed it on\nmy Sparc and PC with only one hitch. \nThe UNIX install consists of copying 2 files into some local bin directory. \nOn the PC side, I ordered the WINDOWS version  which  came with a slick windows\ninstallation.\n\n\nThe only problem I had was that  my .xinitrc  in my home directory\nhad the line\nDISPLAY=`hostname`:0.0; export DISPLAY\n\ns.t the clients I kicked off connected to my Xserver on the Sparc console.\nBy removing this line from the .xinitrc everything worked as planned\nand the clients connected to the server at\n\n`hostname`:1.0\n\nSome comments on performance, I was connected to a Sparc 2 thru\na NetBlazer Terminal Server over a 9600 baud line.\nMy PC is a 486-DX2 ATI Ultra, 16 MB\n\nBitmap Stuff Sucked.\nBasic Editing and compilation stuff definitely usable.\nXmail was very usable.\n\nAt times the first time U typed in an Xclient window there was\na very noticable delay, I put this down to brain damaged \"WINDOWS\nshould not be called a SCHEDULER\", besides that this will become\nmy remote work environment for a while.\n\nHas anybody tried the NON Windows version of the product, the sales\nperson said they performed about the same, given the over head of\nWINDOWS I question this?\n\nmany thanks for help to all who responded\n\ngerard\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2852, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: The Magi of Matthew was The Jewish Discomfort With Jesus\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 238\n\nIn article <1746.2BD37A66@paranet.FIDONET.ORG> \nBill.Carlson@p0.f18.n104.z1.FIDONET.ORG (Bill Carlson) writes:\n> Since everywhere I look, Zoroaster is suggested as being a probable\n> descendant of Daniel; suppose you prove he wasn't.\n\nRef: Encyclopedia of Religion, Mircea Eliade\n\nMAGI: \n\n[Sneak Preview: Later still, eschatology and apocalyptics were a fertile meeting\n ground for Iranian and Judeo-Christian religions, as can be seen in the famous\n _Oracles of Hystaspes_, a work whose Iranian roots are undeniable and which\n most likely dates from the beginning of the Christian era, probably the\n second century CE (Widengren, 1968). The Zoroastrian doctrine of the Savior of\n the Future (Saoshyant) was the basis for the story of the coming of the Magi\n to Bethlehem in the _Gospel of Matthew_ (2:1-12).]\n\n  The Old Persian word magu, rendered in Greek by magos, is of uncertain \netymology. It may originally have meant \"member of the tribe,\" as in the\nAvestan compound mogu-tbish (\"hostile to a member of the tribe\"). This meaning\nwould have been further resticted, among the Medes, to \"member of the priestly\ntribe\" and perhaps to \"priest\" (Benveniste, 1938; Boyce, 1982). The term is\nprobably of Median origin, given that Herodotus mentions the \"Magoi\" as one of\nthe six tribes of the Medes.\n  For a variety of reasons we can consider the Magi to have been members of a\npriestly tribe of Median origin in western Iran. Among the Persians, they were\nresponsible for liturgical functions, as well as for maintaining their\nknowledge of the holy and the occult. Most likely, the supremacy of the Median\npriesthood in western Iran became established during the time of the Median\nmonarchy that dominated the Persians from the end of the eighth century\nthrough the first half of the sixth century BCE until the revolt of Cyrus the\nGreat (550 BCE). The Persians were indebted to the Medes for their political\nand civil institutions as well. Even if hypotheses have been advanced\nconcerning the existence of Magi of Persian origin in the Achaemenid period\n(Boyce, 1982), we must still maintain that they were of Median origin. This is\ndemonstrated by the eposide of the revolt of Gaumata the Magian, mentioned by\nDarius I (522-486 BCE) in the inscription at Bisutun (Iran), as well as by\nGreek sources. Indeed, Herodotus insists on the idea of the usurpatory power of\nthe Medes against the Persians through the conspiracy of the Magi.\n  The fact that the Magi may have been members of a tribe that handed down the\nsacerdotal arts in a hereditary fashion naturally did not exclude the\npossibility that some of them undertook secular prefessions. This seems to be\nattested by the Elamite tablets at Persepolis.\n  There is a theses, put forth by Giuseppe Messina, that denies that the Magi\nare members of an ethnic group by suggesting that they are simply members of\nthe priesthood - a priesthood of purely Zoroastrian origin. This thesis is\nuntenable; on the other hand, the hypothesis that their name is related to the\nAvestan term magavan, derived from the Gathic maga (Vedic, magha, \"gift\"), is\nnot without foundation (Mole, 1963). The meaning of maga can probably be found,\nin conformity with the Pahlavi tradition, within the context of the concept of\npurity, or separation of the \"mixture\" of the two opposed principles of spirit\nand matter. The maga, which has been erroneously interpreted as \"chorus,\" from\nthe root mangh, which is said to mean \"sing the magic song\" (Nyberg, 1966) and\nhas been rendered simply by an expression like unio mystica, seems to be an\necstatic condition that opens the mind to spiritual vision. In any case, though\nthere may be a relation between the Old Persian term magu and the Avestan terms\nmagavan and maga, we must maintain a clear distinction between the Magi and the\nAvestan priesthood. The Avesta ignores the Median or Old Persian term, despite\na recent hypothesis proposed by H.W. Bailey; Old Persian inscriptions ignore\nthe Avestan term for \"priest,\" athravan (Vedic, athravan), even if this is \nperhaps present in an Achaeminid setting in the Elamite tablets of Persepolis \n(Gershevitch, 1964).\n  The term magu has been present in Zoroastrianism throughout its history; the\nPahlavi terms mogh-mard and mobad represent its continuation. The latter in\nparticular derives from an older form, magupati (\"head of the Magi\"). During\nthe Sasanid period (third to seventh centuries CE), which saw the formation of\na hierarchically organized church, the title mobadan mobad (\"the high priest of\nhigh priests\") came to be used to designate the summit of the ecclesiastical\nhierarchy.\n  The Magi practiced consanguineous marriage, or khvaetvadatha (Av.; Pahl.,\nkhwedodah). They also performed a characteristic funeral rite: the exposure of\nthe corpse to animals and vultures to remove the flesh and thereby cleanse it.\nThe corpse was not supposed to decompose, lest it be contaminated by the demons\nof putrefaction. This practice later became typical of the entire Zoroastrian\ncommunity and led to the rise of a complex funeral ritual in Iran and among the\nParsis in India. Stone towers, known as dakhmas, were built especially for this\nrite. During the time of Herodotus the practice of exposure of the corpse was\nin vogue only among the Magi; the Persians generally sprinkled the corpse with\nwax, then buried it. The practice was widespread, however, among the peoples\nof Central Asia.\n  The Magi were the technicians of and experts on worship: it was impossible to\noffer sacrifices without the presence of a Magus. During the performance of a\nritual sacrifice, the Magus sang of the theogony (the Magi were possibly the\ncustodians of a tradition of sacred poetry, but we know nothing about the\nrelationship of this tradition to the various parts of the Avesta) and was\ncalled upon to interpret dreams and to divine the future. The Magi were also\nknown for the practice of killing harmful, or \"Ahrimanical,\" animals (khrafstra)\nsuch as snakes and ants. They dressed in the Median style, wearing pants,\ntunics, and coats with sleeves. They wore a characteristic head covering of\nfelt (Gr. tiara) with strips on the sides that could be used to cover the nose\nand mouth during rituals to avoid contaminating consecrated objects with their\nbreath (Boyce, 1982). The color of these caps, in conformity with a tradition\nthat is probably of Indo-European origin, according to Georges Dumezil, was\nthat of the priesthood: white.\n  In all likelihood, during the Achaemenid period the Magi were not in\npossession of a well-defined body of doctrine, and it is probable that they\ngradually adopted Zoroastrianism; they were most likely a clergy consisting of\nprofessional priests who were not tied to a rigid orthodoxy but were naturally\ninclined to eclecticism and syncretism. Nonetheless, they must have been\njealous guardians of the patrimony of Zorastrian traditions. By virtue of this\nthey were the educators of the royal princes. The wisest of them was responsible\nfor teaching the prince the \"magic of Zarathushtra, son of Horomazes\" and thus\nthe \"cult of the gods.\" Magi who excelled in other virtues were entrusted with\nthe education of the prince so that he would learn to be just, courageous, and\nmaster of himself.\n  During the Achaemenid period the Magi maintained a position of great\ninfluence, although they were certainly subordinate to the emperor. Despite\nseveral dramatic events such as the massacre they suffered after the death of\nGaumata the Magian - in which, according to Herodotus (who calls himself\nSmerdis), the Persians killed a large number of Magi to avenge the usurpation -\nthe Magi nevertheless managed to maintain their influence at court in Media,\nin Persia, and in the various regions of the empire where they were stationed\nas a consequence of the Persian civilian and military administration.\n  No priesthood of antiquity was more famous than that of the Magi. They were\nrenowned as followers of Zarathushtra (Zoroaster); as the teachers of some of\nthe greatest Greek thinkers (Pythagoras, Democritus, Plato); as the wise men\nwho arrived, guided by a star, at the manger of the newborn savior in\nBethlehem; and as the propagators of a cult of the sun in India. But they were\nalso known as the Chaldeans, the priesthood of Babylon, known for its occultism;\nthis was perhaps the reason that the term magos had a pejorative sense in Greek,\nlike \"goes,\" \"expert in the magic arts\" (Bidez and Cumont, 1938). Indeed, the\nChaldeans were experts in all types of magical arts, especially astrology, and\nhad a reputation for wisdom as well as knowledge.\n  To understand the reasons for such various and sometimes discordant views, it\nis necessary to distinguish between the Magi of Iran proper and the so-called\nwestern Magi, who were later hellenized. In the Achaemenid period both must\nhave been at least in part Zoroastrian, but the western Magi (those of the\nIranian diaspora in Asia Minor, Syria, Mesopotamia, and Armenia), who came in\ncontact with diverse religious traditions, must have, sooner or later and in\nvarying degrees, been influenced by syncretic concepts.\n  The Greeks were familiar with both kinds of Magi and, depending on their\nvarying concerns, would emphasize one or the other aspect of them. Classical\nhistorians and geographers, including Herodotus and Strabo, document their\ncustoms, while the philosophers dwell above all on their doctrines: dualism,\nbelief in the hereafter, Magian cosmology and cosmogony, and their theology\nand eschatology. Those sources most interested in the doctrines of the Magi\neven speak of Zarathushtra as a Magus. In doing so they are repeating what the\nMagi themselves said from the Median and Achaemenid periods, when they adopted\nZoroastrianism. At that time they embraced Zarathushtra as one of their own and\nplaced themselves under his venerable name.\n  Zoroastrianism had already undergone several profound transformations in the\neastern community by the time of the Acheamenids and was already adapting those\nelements of the archaic religion that refused to die. It has been said quite\noften, in an attempt to characterize the precise role of the Magi in the\nZoroastrian tradition, that the Vendidad (from vi-daevo-data, \"the law-abjuring\ndaivas\"), part of the Avesta, should be attributed to them. (This collection of\ntexts from various periods is primarily concerned with purificatory rules and\npractices.) Nonetheless, the hypothesis is hardly plausible, since the first\nchapter of the Vendidad - a list of sixteen lands created by Ahura Mazda, the\nsupreme god of Zoroastrianism, but contaminated by an attack by Ahriman (Pahl.;\nGathic-Avestan, Angra Mainyu), the other supreme god and the ultimate source of\nall evil and suffering - does not mention western Iran, Persia, or Media (the\nland of Ragha mentioned in the text cannot be Median Raghiana). Furthermore, it\nhas been noted (Gershevitch, 1964) that if the authors had been Magi the\nabsence of any reference to western Iranian institutions, including their own\npriesthood, would be very strange.\n  The Magi were above all the means by which the Zoroastrian tradition and the\ncorpus of the Avesta have been transmitted to us, from the second half of the\nfirst millennium BCE on. This has been their principal merit. We can attribute\ndirectly to the Magi the new formulation that Iranian dualism assumed, known to\nus especially from Greek sources and, in part, from the Pahlavi literature of\nthe ninth and tenth centuries CE. According to this formulation, the two poles\nof the dualism are no longer, as in the Gathas, Spenta Mainyu (\"beneficent\nspirit\") and Angra Mainyu (\"hostile spirit\") but Ahura Mazda himself and Angra\nMainyu (Gershevitch, 1964). [See Ahura Mazda and Angra Mainyu.] This trans-\nformation was of immense consequence for the historical development of Zoro-\nastrianism and was most likely determined by the contact of the Magi with the\nMesopotamian religious world. In this new dualism - which was that later known\nto the Greeks (Aristotle, Eudemus of Rhodes, Theopompus, and others) - we can\nsee the affirmation of a new current of thought within Zoroastrianism, to which\nwe give the name Zurvanism. [See Zurvanism.]\n  Thanks to their adherence to Zoroastrianism, the Magi played an enormously\nimportant role in the transmission of Zarathushtra's treachings, as well as in\nthe definition of the new forms that these would assume historically. Their\nnatural propensity to eclecticism and syncretism also helped the diffusion of\nZoroastrian ideas in the communities of the Iranian diaspora. The Greeks began\nto study their doctrines and to take an interest in them (Xanthus of Lydia,\nHermodorus, Aristotle, Theopompus, Hermippus, Dinon), even writing treatises\non the Persian religion, of which only the titles and a few fragments have\nsurvived. In the Hellenistic period, the Magi were seen as a secular school of\nwisdom, and writings on magic, astrology, and alchemy were lent the authority\nof such prestigious names as Zarathushtra, Ostanes, and Hystaspes, forming an\nabundant apocryphal literature. (Bidez and Cumont, 1938).\n  Later still, eschatology and apocalyptics were a fertile meeting\nground for Iranian and Judeo-Christian religions, as can be seen in the famous\n_Oracles of Hystaspes_, a work whose Iranian roots are undeniable and which\nmost likely dates from the beginning of the Christian era, probably the\nsecond century CE (Widengren, 1968). The Zoroastrian doctrine of the Savior of\nthe Future (Saoshyant) was the basis for the story of the coming of the Magi\nto Bethlehem in the _Gospel of Matthew_ (2:1-12). [See Saoshyant.]\n  The Sasanid period saw the Magi once again play a determining role in the\nreligious history of Iran. Concerned to win back the western Magi (de Menasce,\n1956), and eager to consolidate Zoroastrianism as the national religion of\nIran, the priests of Iranian sanctuaries in Media and Persia were able to\nestablish a true state church, strongly hierarchical and endowed with an\northodoxy based on the formation of a canon of scriptures. The leading figures\nin the development of a state religion and of Zoroastrian orthodoxy were Tosar\nand Kerder, the persecutors of Mani in the third century.\n\nSAOSHYANT:\n  The Avestan term saoshyant (\"future benefactor\"; MPers., soshans) designates\nthe savior of the world, who will arrive at a future time to redeem humankind.\nThe concept of the future savior is one of the fundamental notions of Zoro-\nastrianism, together with that of dualism; it appears as early as in the Gathas.\nZarathushtra (Zoroaster), as the prophet of the religion, is himself a Sao-\nshyant, one who performs his works for the Frashokereti, the end of the present\nstate of the world, when existence will be \"rehabilitated\" and \"made splendid.\"\n[See Frashokereti]\n  Later Zoroastrian doctrine developed this notion into a true eschatological\nmyth and expanded the number of Saoshyants from one to three. All the saviors\nare born from the seed of Zarathushtra, which is preserved through the ages in\nLake Kansaoya (identified with present-day Lake Helmand, in Seistan, Iran),\nprotected by 99,999 fravashis, or guardian spirits. The greatest of the awaited\nSaoshyants, the victorious Astvatereta (\"he who embodies truth\"), the son of\nthe Vispataurvairi (\"she who conquers all\"), is the third, who will make\nexistence splendid; he appears in Yashts 19. Upon his arrival humankind will\nno longer be subject to old age, death, or corruption, and will be granted\nunlimited power. At that time the dead will be resurrected, and the living will\nbe immortal and indestructable. Brandishing the weapon with which he kills the\npowerful enemies of the world of truth (that is, the world of the spirit, and\nof asha), Astvatereta will look upon the whole of corporeal existence and\nrender it imperishable. He and his comrades will engage in a great battle with\nthe forces of evil, which will be destroyed.\n  The name Astvatereta is clearly the result of theological speculation\n(Kellens, 1974), as are those of his two brothers, Ukhshyatereta, \"he who makes\ntruth grow,\" and Ukhshyatnemah, \"he who makes reverence grow\"; the names of the\nthree virgins (Yashts 13) who are impregnated with the seed of Zarathushtra\nwhen they bathe in Lake Kansaoya and give birth to the Saoshyants, are equally\nspeculative. Each of these Saoshyants will arrive at the beginning of a\nmillennium, initiating a new age and a new cycle of existence; Astvatereta will\nappear in the third and final millennium to save mankind.\n  The doctrine of the future savior had already taken shape in the Archaemenid\nperiod (sixth to fourth century BCE). It was not, perhaps the principal element\nin the formation of the messianic idea, but it was certainly a determining\nfactor, one that enjoyed great success in the Hellenistic period beyond the\nconfines of the Iranian world. A similar concept, that of the future Buddha,\nMaitreya, was most likely indebted to it, and Christian messianism can trace\nits roots to the same source.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2853, "properties": {"category": "comp.graphics", "text": "From: hans@cs.kuleuven.ac.be (Hans Baele)\nSubject: conversion of pic format files to HPGL files\nNntp-Posting-Host: glasnost.cs.kuleuven.ac.be\nOrganization: Dept. Computerwetenschappen\nLines: 20\n\nHello,\n\nCan anybody help me with the conversion of pic format files\nto HPGL files. The question is as follows:\n\nIs it possible to convert files that have been generated in the\npic preprocessor format into HPGL format, suitable for sending\nto a plotter. The hardware involved is IBM RISC/6000 running AIX\n3.2.3. How should this be done and what software is involved,\nwhere is it available, what does it cost, what are the problems?\n\nRegards,\n\nDani\n\n--------------------------------\nCimad Consultants\nAntwerp, Belgium\ndani@cimad.be\n--------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2854, "properties": {"category": "rec.sport.hockey", "text": "From: gomer+@pitt.edu (Richard J Coyle)\nSubject: Re: How difficult is it to get Penguin tickets?\nOrganization: University of Pittsburgh\nLines: 14\n\nIn article <1993Apr18.201811.28965@magnus.acs.ohio-state.edu> dmoney@magnus.acs.ohio-state.edu (Dean R Money) writes:\n>The subject line says it all.  Is it terribly difficult to get tickets\n>to Penguins games, especially now that they are in the playoffs?  Would\n>it be easy to find scalpers outside of the Igloo selling tickets?\n\nThere are ALWAYS scalpers with tickets outside the Arena.  You might have\nto pay a few bucks extra, but you can always find them.  Look on the\nstreet under the message board, or out on the street in front of the Hyatt,\nor even around Gate 1.  The later you buy them, the less money you'll pay,\nand during the regular season you could usually find some for near face\nvalue or below if you wait until game time.  Might be better to pick them\nup earlier now, though.\n\nrick\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2855, "properties": {"category": "soc.religion.christian", "text": "From: wjhovi01@ulkyvx.louisville.edu\nSubject: Re: Why do people become atheists?\nOrganization: University of Louisville\nLines: 13\n\nUndoubtedly people adopt atheism for many reasons, but I suspect that a biggie\nis that the God they've believed in is (in J.B. Phillips's words) \"too small\". \nIf a person's understanding of God is not allowed to grow and develop, it will\neventually become inadequate.  The grey-haired gentleman on a throne who was a\ncomforting image in childhood becomes a joke.\n\nA therapist friend of mine sometimes suggests to her clients that they \"fire\nGod\".  What she means by that is letting go of an inadequate understanding of\nGod to make room for a fuller one.  But she follows up by encouraging them to\n\"hire a new one\".  My guess is that a lot of folks go through the firing\nprocess, but are not adequately supported in the subsequent re-hire.\n\nbillh\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.131+0000", "event": "documents", "entityId": 2856, "properties": {"category": "rec.sport.baseball", "text": "From: cmk@athena.mit.edu (Charles M Kozierok)\nSubject: Re: WHAT'S WITH ALL THESE SCORES?\nOrganization: Massachusetts Institute of Technology\nLines: 42\nNNTP-Posting-Host: electric-monk.mit.edu\n\nIn article <1qplh7$e2g@agate.berkeley.edu> jtchern@ocf.berkeley.edu (Joseph Hernandez) writes:\n} In article <1qp1m9INNfjg@senator-bedfellow.MIT.EDU> cmk@athena.mit.edu (Charles M Kozierok) writes:\n} >In article <1993Apr17.050311.10098@news.yale.edu> (Sean Garrison) writes:\n} >} [Stuff about upated inning scores deleted.]\n} >at just that exact time to see the message. even results after the game\n} >is over are not necessary, thanks to Mr. Hernandez who posts daily\n} >standings and results here every day.\n} \n} Am I supposed to take that as a compliment or a put down? Just wondering.\n\nit was meant entirely, 100%, as a compliment.\n\n} I do this as a service to the entire baseball world on USENET, especially\n} for those in the East Coast who can't get final scores for West Coast games\n} in their newspapers or late TV newscasts. This is helpful to fans in other\n} countries who either receive only weekly scores or updates by the week. Also,\n} many have requested for this kind of service previously but it was only\n} available through BBS's or some pay news services. By the way, mine is free\n} of charge and has no copyright restrictions.\n\ni was not trying to criticize your service at all.\nin fact, i was trying to encourage others to use it.\ni don't personally use it, but i'm sure others do, and that was my point in\nposting--there is no need for individuals to duplicate, in an ad hoc fashion,\nwhat you have already organized.\n \n} >if you want to send updates and scores, set up a private mailing list\n} >and use that.\n} \n} Remember I only post final scores and the updated standings once a day to the\n} rec.sport.baseball newsgroup. Other than that, everything is done through\n} private e-mail. Currently, there are 986 people on my mailing list that\n} branches off into other mailing lists available for many others. And the list\n} grows by an average of 35 people a day.\n\nhaving one person, such as yourself, who does it, is a great idea.\nhaving 100 do it is not. that's all.\n\nkeep up the good work, Joseph.\n\n-*-\ncharles\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2857, "properties": {"category": "rec.sport.hockey", "text": "From: wangr@rs6410.ecs.rpi.edu ( Isles' Fan!! )\nSubject: Islanders sux!!!!\nNntp-Posting-Host: rs6410.ecs.rpi.edu\nReply-To: wangr@rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY.\nLines: 2\n\n\tNeed I say more???????\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2858, "properties": {"category": "sci.electronics", "text": "From: elr@trintex.uucp (Ed Ravin)\nSubject: Re: electronic parts in NYC?\nOrganization: Why me?\nLines: 19\n\nTaft Electronics, 45th Street between 5th & 6th -- the only one left in\nwhat was once an entire district of electronics stores.  A little expensive.\n\nTrans-Am Electronics, Canal Street near 7th Ave -- lots of surplus type\nstuff.\n\nSeveral other electronics or \"surplus\" type places are still on Canal\nStreet.\n\nI think Bronx Wholesale Radio is still in business -- Fordham Road not\ntoo far from Arthur Avenue in the Bronx.  Also in the Bronx is NorthEastern\n(or was it Northwestern?  Northeast Electronics?) on Jerome Avenue near\nBedford Park Boulevard.  They're mostly a TV parts supply house, but when\nI was building CB radio projects, they were quite handy..\n-- \nEd Ravin               | \"A TV cop fires a gun three times an hour.  A real cop\nProdigy Services Co.   |  fires a gun only once every five years.\"\nWhite Plains, NY 10601 |------------d i s c l a i m e r - w a s - h e r e -----\n+1-914-993-4737        | elr@trintex.uucp or elr%trintex@uunet.uu.net\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2859, "properties": {"category": "rec.sport.baseball", "text": "From: scott@asd.com (Scott Barman)\nSubject: Re: Sid Fernandez?\nOrganization: American Software Development Corp., West Babylon, NY\nDistribution: usa\nLines: 18\n\nIn article <1993Apr15.145914.1575@csi.jpl.nasa.gov> cub@csi.jpl.nasa.gov (Ray Miller) writes:\n>I read this morning that Sid Fernandez left last nights' game with stiffness\n>in his shoulder. Does anyone have any information as to the extent of the\n>injury (if indeed there is one), or weather the cold air in Colorado just got\n>his joints a little stiff?\n>\n>Thanks for the help...\n\nAll they said on the radio that he developed stiffness in the shoulder\nafter throwing a curveball that didn't loosen.  Because of the cold\nnight in Denver they decided to remove him from the game rather than\nlet him pitch.  He is expected to pitch his next turn in the rotation\n(expected to be April 20, at Shea vs the Giants).\n-- \nscott barman    | Mets Mailing List (feed the following into your shell):\nscott@asd.com   |            mail mets-request@asd.com <<!\n                |            subscribe\n Let's Go Mets! |            !\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2860, "properties": {"category": "misc.forsale", "text": "From: cychong@magnus.acs.ohio-state.edu (Robert Chong)\nSubject: BOOKS FOR SALE (CHEAP!)\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 50\n\nHi, everyone,\n\n\tHere are some books for sale, all prices are negotiable!!\n\t(****Shipping fee is not included!!)\n\n\t1. Signals and Systems, Alexander P. Poularik and Samuel Seely\n\t   PWS-KENT Publisher,\tOld price: $10\n\t\t\t\tNew Price: $8.50!!!!\n\n\t2. Probability: an introduction, Samuel Goldberg\n\t   Dover Publisher, \tOld price: $4\n\t\t\t\tNew Price: $2!!!!!!!\n\n\t3. Digital Image Processing and Computer Vision, R. Schalkoff\n\t   Wiley Publisher, \tOld price: $30 \n\t\t\t\tNew Price: $26!!!!!!\n\n\t4. Digital Image Processing, R. Gonzalz and P. Wintz,\n\t   Addison Wesley Publisher, Old price: $25\n\t\t\t\tNew Price: $22.50!!!\n\nSOLD!!..5. X Window System User Guide (for X11R4), O'Reilly Associate\n\t \n\t6. The Best Book of MS-DOS 5, Alan Simpson\n\t   SAMS, \t\tOld price: $12\n\t\t\t\tNew price: $8.50!!!!\n\n\t7. Elements of Modern Algebra, Hu\n\t   Holden Day Publisher, Old price: $8\n\t\t\t\tNew price: $3.00!!!!\n\n\t8. Symmetries, Asymmetries and the World of Particles, T.D. Lee\n\t   Washington Publisher, Old price: $12\n\t\t\t\tNew price: $9.50!!!!\n\n\t9. Elementary Particles and the Laws of Physics - the 1986 Dirac\t\t  Memorial Lectures, Cambridge Publisher, Old price: $8\n\t\t\t\tNew price: $6.00!!!!\n\n\t10. A Brief History of Time, Stephen W. Hawking\n\t    Bantam books (Paperback), Old price: $8 \n\t\t\t\tNew price: $4.00!!!!\n\n\n\t\n\n-- \nRobert Chong\nDepartment of Mechanical Engineering\nThe Ohio State University\nEmail: cychong@magnus.acs.ohio-state.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2861, "properties": {"category": "talk.religion.misc", "text": "From: caldwell@facman.ohsu.edu (Larry Caldwell)\nSubject: Re: Merlin, Mithras and Magick\nOrganization: Oregon Health Sciences University\nLines: 29\nNntp-Posting-Host: facman\n\nkosinski@us.oracle.com (Kevin Osinski) writes:\n\n>I recall reading in Michael (?) Rutherford's novel \"Sarum\" a scene in\n>which the son of a Roman nobleman living in Britain takes part in a\n>secret ceremony involving a bull.  He stands naked in a pit covered\n>with some sort of scaffolding while assistants coax a bull to stand on\n>the scaffolding.  They then fatally stab the bull, which douses the\n>worshipper in the pit with blood.  This is supposedly some sort of\n>rite of passage for members of the bull cult.  I wonder if this is\n>related to the Mithras cult?\n>\n>I don't know where Rutherford got his information for this chapter.\n>The book is historical fiction, and most of the general events which\n>take place are largely based on historical accounts.\n\nThere is a rite like this described in Joseph Campbell's\n_Occidental_Mythology_.  He also described levels of initiation, I think\n6?  I don't know where Campbell got his info, but I remember thinking he\nwas being a little eclectic.\n\n>I also wonder what if any connection there is between the ancient bull\n>cults and the current practice of bullfighting popular in some\n>Mediterranean cultures.\n\nQuite a bit.  If you haven't read Campbell, give him a try.  \n\n-- \n-- Larry Caldwell  caldwell@ohsu.edu  CompuServe 72210,2273\nOregon Health Sciences University.  (503) 494-2232\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2862, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Re: Final Solution for Gaza ?\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 227\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n \n\nCenter for Policy Research writes...\n\n\n>Subject: Final Solution for Gaza ?\n>\n>\n>Final Solution for the Gaza ghetto ?\n>------------------------------------\n>\n>While Israeli Jews fete the uprising of the Warsaw ghetto, they\n>repress by violent means the uprising of the Gaza ghetto and\n>attempt to starve the Gazans.\n\n    Your comparison with the Warsaw Ghetto uprising is insulting,\n    and racist beyond belief.  The attempts to quiet any violence\n    in the Gaza Strip are just that.  The efforts to quell murder\n    and mayhem in the Gaza strip were the resluts of violence and\n    came AFTER the violence.  It was not an arbitrary racial move\n    like the nazi treatment of Jews.  Jews had NOT committed acts\n    of violence and murder as have the residents of Gaza.  I find \n    your eagerness to ignore the acts of murder nothing more than\n    anti-Israel bigotry.\n\n\n>The Gaza strip, this tiny area of land with the highest population\n>density in the world, has been cut off from the world for weeks.\n>The Israeli occupier has decided to punish the whole population of\n>Gaza, some 700.000 people, by denying them the right to leave the\n>strip and seek work in Israel.\n\n    It is NOT punishment, but protection from repeated attacks by\n    residents of Gaza.  You self-servingly omit any references to\n    WHY Israel has had to take action.  Apparaently the deaths of\n    innocent Israeli civilians do not enter into your equation, a\n    racist ommission on your part.\n\n\n>While Polish non-Jews risked their lives to save Jews from the\n>Ghetto, no Israeli Jew is known to have risked his life to help\n>the Gazan resistance. The only help given to Gazans by Israeli\n>Jews, only dozens of people, is humanitarian assistance.\n>\n>The right of the Gazan population to resist occupation is\n>recognized in international law and by any person with a sense of\n>justice. A population denied basic human rights is entitled to\n>rise up against its tormentors.\n\n    The right of Israel to protect its citizens from murderers is\n    also recognized by international law.  Israeli civilians have\n    been getting stabbed to death on a daily basis.  If this wave\n    of murder does not matter to you, then your posturing for the\n    basic human rights you claim matter so much to you is nothing\n    but an anti-Israel charade.\n\n\n>As is known, the Israeli regime is considering Gazans unworthy of\n>Israeli citizenship and equal rights in Israel, although they are\n>considered worthy to do the dirty work in Israeli hotels, shops\n>and fields. \n\n    Do you know of residents of Gaza who have applied for Israeli\n    citizenship and were denied?  I have heard of no such denials\n    taking place.  Can you document this, or is this more of your\n    stupid and innacurate propaganda?  The truth is that if Gazan\n    residents applied for citizenship, HAMAS would murder them as\n    collaborators.\n\n\n\t     Many Gazans are born in towns and villages located in\n>Israel. They may not live there, for these areas are reserved for\n>the Master Race.\n\n    How dare you use such a disgusting phrase.  How very easy you\n    attack a people, when you omit facts which fly in the face of\n    your pure racism.  Perhaps you are judging a people to be the\n    racists that you are.  Do you believe that all Jews must have   \n    the same bigoted makeup as you?  \n    \n    Here's another little fly in your ointment, about the 'master \n    race,' for you to avoid...\n\n    Two months ago a plane with 86 Bosnian Muslims left Bosnia to\n    seek asylum in the middle east.  Four Arab nations refused to\n    grant them asylum.  Then when Israli Arabs agreed to take the\n    responsibility for them, they were allowed into Israel.  Yes,\n    Israel.  But when the plane landed, the Israeli Arabs who had\n    previously agreed to take care of them refused to be involved\n    with the rescue project, because they felt that it would make\n    Israel look good.  It was more important to avoid any good PR\n    for Israel than to take care of fellow Muslims.  Israel moved\n    them to a kibbutz, where they are safe and secure.  The truth\n    is that time after time the Islamic world has turned its back\n    on Muslims in need more than Israel has.  Even in the case of\n    the 400 deportees, Lebanon was willing to let their so-called\n    Arab brothers freeze to death rather than give them sanctuary\n    in Lebanon.  \n\n    Nearly twice as many Palestinians have been murdered by other\n    Palestinians than in confrontations with Israel.  Hundreds of\n    thousands of Palestinians had been deported from Kuwait, just\n    because they were Palestinian.  The truth is that your phoney\n    concern for the welfare of the Palestinians is nothing but an\n    excuse to attack Israel.  You are part of the ignorant effort\n    to confine all concern for the welfare of the Palestinians to\n    attacking Israel.  But the truth is there are greater reasons\n    than Israel for the plight of the Palestinians.  To disregard\n    Jordan or Kuwait or Saudi Arabia or any of the other oil-rich \n    nations who do nothing for these people, is to use the plight \n    of these poor people as a vehicle for your hatred of Jews, or\n    your hatred of Israel.  Anti-semitism and anti-Zionism is NOT\n    the same as pro-Palestinian and anyone who insists that it is\n    the same really does not give two hoots for their welfare.\n\n\n>The Nazi regime accorded to the residents of the Warsaw ghetto the\n>right to self- administration.  They selected Jews to pacify the\n>occupied population and preventing any form of resistance. Some\n>Jewish collaborators were killed. Israel also wishes to rule over\n>Gaza through Arab collaborators.\n\n    Your pathetic analogy is so absent of relevant fact that your\n    racism cannot be disguised.  Jews had never declared war on a\n    Polish people.  Jews had never attacked Poles with knives, or\n    had used the Ghetto as a staging ground for attacks.  To take\n    something like the Warsaw Ghetto(the creation of which you do\n    not even bother to discuss!)and the uprising that followed is\n    to degrade the dead, and to show that intelligent debate on a \n    difficult situation is beyond your intellectual purview.  You\n    clearly have never even read a single word of the Covenant of \n    the Islamic Resistance Movement.  Here is arguably the single\n    most anti-semitic genocidal document since Mein Kampf, yet it\n    is totally disregarded in your rantings.  Your racism is most\n    evident in your eagerness to avoid such documentation.  If it\n    were considered, you might actually have to deal with mideast\n    problems in a balanced manner, rather than in an anti-semitic\n    manner.\n\n\n>As Israel denies Gazans the only two options which are compatible\n>with basic human rights and international law, that of becoming\n>Israeli citizens with full rights or respecting their right for\n>self-determination, it must be concluded that the Israeli Jewish\n>society does not consider Gazans full human beings. \n\n    And just how was Gaza obtained?  Do you forget that Israel is\n    not in the habit of grabbing land for the hell of it, but had\n    taken Gaza in a war that it did not start?  Did you know land\n    Israel captures in wars, wars which other nations have ALWAYS\n    started, aren't the same as Israel, and they are subject to a \n    completely different set of international laws?  Since you do\n    continuously refer to international law, would you please say\n    what specific international laws Israel is violating?  \n    \n\n\t\t\t\t\t\t   This attitude\n>is consistent with the attitude of the Nazis towards Jews. \n\n    I can cite 6,000,000 reasons why it is not.\n\n\n>                                                             The\n>current policies by the Israeli government of cutting off Gaza are\n>consistent with the wish publicly expressed by Prime Mininister\n>Yitzhak Rabin that 'Gaza sink into the sea'. \n\n    Where is this quote?  I have never heard Rabin assert that he\n    wished such a thing.  Since you are in general a liar, you'll\n    have to provide the entire quote, with source, or this effort\n    will be regarded as just another one of your fabrications.\n\n\n>                                           One is led to ask\n>oneself whether Israeli leaders entertain still more sinister\n>goals towards the Gazans ? Whether they have some Final Solution\n>up their sleeve ?\n\n    Only you are led to ask such a loaded, racist, intellectually\n    dishonest question.  You inability to come to terms with what\n    you are has turned you into a racist of the highest order.\n\n\n>I urge all those who have slight human compassion to do whatever\n>they can to help the Gazans regain their full human, civil and\n>political rights, to which they are entitled as human beings.\n\n    Why do you not feel the same compassion for the Jews of Iran,\n    or Iraq, or Yemen, or Saudi Arabia, or Syria?  Do you have an\n    inkling of what they have endured over the past decades?  Or,\n    what about the plight of the Palestinians in Kuwait?  Or what\n    about the treatment of the Bosnian Muslims?  Do you think the\n    residents of Gaza are being subjected to what all the Muslims \n    in Bosnia are enduring?  Why are you indifferent to the death\n    and suffering of people?  Why do you not care that these folk\n    are being exterminated?  Why do you not care that only Israel\n    has given any of these people safe haven?  Could it be due to \n    the fact that it is not Israel who is doing the killing?  The\n    people in Gaza are not being exterminated.  They aren't being\n    killed.  They aren't being raped.  They aren't being starved.\n    They aren't being driven from their lands.  They are not kept\n    from receiving food or other supplies.  But the Bosnians are.\n    And the ONLY country which has provided some sanctuary to the\n    Bosnian Muslims is the same nation that you have devoted your \n    life to attacking, in the guise of compassion.    \n\n    Your rantings are so unfettered by the burden of intellectual\n    honesty that you ought to take a deep breath and ask yourself\n    what your real motives are.  Do not flatter yourself into the\n    belief that truth or compassion are what drives you.  In your\n    case, it is clear that hate beats out love every time.  Maybe\n    you are burdened with some kind of guilt for having been born\n    a Jew.  It is obvious that your hatred of your own Judaism is\n    being dumped on all other Jews.  Why else would you suggest a\n    racist idea like breeding Jews out of existence?  Maybe these\n    fits of anti-semitism are a result of being cut off from your \n    own people for an extended period.  Whatever the case may be, \n    it is clear that you are not what you have labored so hard to \n    appear to be.  When you realize that you can't care for other \n    people while you hate yourself you might actually begin to do \n    some good.\n \n    But for now, you are a fruad.\n\n\n \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2863, "properties": {"category": "rec.sport.hockey", "text": "Organization: Penn State University\nFrom: Robbie Po <RAP115@psuvm.psu.edu>\nSubject: Re: @#$%! I was right in the first place!!!\nLines: 53\n\nIn article <vzhivov.735059801@cunews>, vzhivov@superior.carleton.ca (Vladimir\nZhivov) says:\n>\n>In <93107.091503RAP115@psuvm.psu.edu> Robbie Po <RAP115@psuvm.psu.edu> writes:\n>\n>>2-Red Wings vs. 3-Maple Leafs               Maple Leafs in 6\n>\n>>  Comment : It's kind of tough to rely on Yzerman as the team's main weapon.\n>>            He's a great palyer, but Dino knows all about choking, which\n>>            puts the burden on Steve even more.  Potvin's had a hell of a\n>>            season and goaltending is what you need in the playoffs.\n>\n>For a great prognosticator:), you seem to remember very little playoff\n>history. Dino always shows up in the playoffs, which is why he is a\n>great \"sleeper\" pick in pools. Don't forget about Fedorov, one of the\n>top players in the NHL, IMHO, and Coffey who has the most Stanley Cup\n>rings of any active players (correct me if I'm wrong). Wings in a\n>cakewalk.\n\nOh yeah, how come Dino could never take the Caps out of the Patrick\nDivision?  He choked up 3 games to 1 last year and got swept away in\nthe second round two years ago.  He rarely, if ever, makes it out of the\ndivision.\n\n>>1-Canucks vs. 4-Jets                        Canucks in 5\n>\n>>  Comment : It's more like Vancouver vs. Selanne.  King and Domi (for\n>>            enforcing) help Winnipeg out a little, maybe a game.  Canucks\n>>            have their number.\n>\n>Except that the Canuck are playing like shit. Winnipeg can win this\n>one, though I think Vancouver will manage to slip by.\n\nSo are the Islanders, but they can still pull it out.  Vancouver has Winnipeg's\n number, so it really doesn't matter.\n\n>>2-Flames vs. 3-Kings                        Flames in 7\n>\n>>  Comment : 7 games looks good as the Kings always seem to battle it out.\n>>            Flames are back in running and won't know memories of last year's\n>>            season.  Gretzky is on a tear, but there are too many ?????\n>>            surrounding the Kings.\n\n>Kings \"always seem to battle it out\"? When? Where?\n\n Kings always seem to go at least 6 or 7, they never play a four or five\ngame serious.  There's a difference between battling it out and pulling it\nout, as I take Calgary to pull it out in 7.\n-------------------------------------------------------------------------\n** Robbie Po **          PGH PENGUINS!!!    \"We do what comes naturally!\nPatrick Division Semi's  '91 STANLEY CUP    You see now, wait for the\nPENGUINS 6, Devils 3     '92 CHAMPIONS      possibility, don't you see a\nPenguins lead, 1-0       12 STRAIGHT WINS!  strong resemblance...\"-DG '89\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2864, "properties": {"category": "sci.space", "text": "From: arthurc@sfsuvax1.sfsu.edu (Arthur Chandler)\nSubject: Russian Phobos Mission\nOrganization: California State University, Sacramento\nLines: 6\n\n\n  Did the Russian spacecraft(s) on the ill-fated Phobos mission a few\nyears ago send back any images of the Martian moon?  If so, does anyone know if\nthey're housed at an ftp site?\n  Thanks.\n \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2865, "properties": {"category": "comp.windows.x", "text": "From: aff209@tijc02.uucp (Ann Freeman    )\nSubject: Seeking user experience with X-based test tools\nOrganization: Siemens Industrial Automation, Johnson City TN\nDistribution: net\nLines: 10\n\nDoes anyone have any experience using XRunner, CAPBAK/X, or PreVueX\nas an automated test tool for X?  Please email me directly with\nopinions (both positive and negative).\n\nAnn Freeman\nSiemens Industrial Automation, Inc.\nJohnson City, TN\n\naff209%tijc02@uunet.uu.net\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2866, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jmg14@po.CWRU.Edu (John M. Graham)\nSubject: Re: 14\" monitors\nArticle-I.D.: usenet.1pt447$n3r\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 23\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nJoseph M. Kasanic <jmk13@po.cwru.edu> writes:\n\n>Just thought I would mention that Sony no longer manufactures the CPD-\n>1304 because of several manufacturing flaws.  The new model is now the\n>1430, which just like Apple's new Sony Trinitrom CLAIMS to be 14 inches.\n>I'm not sure of the details on the defects, but I work at our schools\n>bookstore\n>and can tell you that nearly half of them were returned with some kind of \n>defect or another.\n\nI'm assuming that you are referring to the 1304S, correct?  What kind of flaws\nhave been reported?  I've been using mine for about 6-7 months now, and I\nhaven't noticed any problems.  Might they develop later, or did I get lucky\nand snag a good monitor?\n\nJust Curious,\njohn\n-- \n******John M. Graham***********************\n******The Cleveland Institute of Music*****\n******jmg14@po.cwru.edu********************\nBrought to you by the letters J, M, and G, and the number 14.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2867, "properties": {"category": "rec.autos", "text": "From: marshatt@feserve.cc.purdue.edu (Zauberer)\nSubject: Re: WARNING.....(please read)...\nOrganization: Purdue University\nDistribution: usa\nLines: 5\n\n sorry about that last post, my server neglected to send the message:\n\n Can we please keep this group to AUTOMOTIVE topics. Thank you.\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2868, "properties": {"category": "comp.graphics", "text": "Subject: newss\nFrom: pollarda@physc1.byu.edu\nDistribution: world\nOrganization: Brigham Young University\nLines: 24\n\n\n\nI am working on a project where we are going to be including\nboth still and moving grapics within a database.  Of course\nJPEG and MPEG come to mind as the formats of choice for the\nvarious files.  However, from what I read on the Net, it seems\nas if there are several different forms of each of these.\n\nWhat I want to do, is settle on a file format which I can count\non as being a standard format 10 years from now.  I know Apple is going\nto support Quicktime on the new Power PC's and, so this\nmay be the format of choice.\n\nWhat format does Apple's Quicktime use for their products?  I guess\nit is some kind of MPEG for their motion picture. Is it any different\nthan standard MPEG files?\n\nThanx for any info!\n\nArt.\nPollarda@xray.byu.edu\n\n\n  \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2869, "properties": {"category": "sci.electronics", "text": "From: sundar@fiber-one.ai.mit.edu (Sundar Narasimhan)\nSubject: how much would a Tektronix 2465A oscilloscope fetch\nReply-To: sundar@ai.mit.edu\nOrganization: MIT Artificial Intelligence Laboratory\nLines: 7\nNNTP-Posting-Host: fiber-one.ai.mit.edu\n\nHi: I'd like to know how much the foll. equipment will fetch in the used\nequipment market (without manuals or other accessories):\n\t1. Tektronix 2465 scope\n\t2. Tektronix 2465A scope\n\t3. Tektronix 1240 logic analyser\n\nThanks much for your help.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2870, "properties": {"category": "sci.space", "text": "From: higgins@fnala.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: NASA Ames server (was Re: Space Station Redesign, JSC Alternative #4)\nOrganization: Fermi National Accelerator Laboratory\nLines: 14\nNNTP-Posting-Host: fnala.fnal.gov\n\nIn article <1993Apr26.152722.19887@aio.jsc.nasa.gov>, kjenks@jsc.nasa.gov (Ken Jenks [NASA]) writes:\n> I just posted the GIF files out for anonymous FTP on server ics.uci.edu.\n[...]\n> Sorry it took\n> me so long to get these out, but I was trying for the Ames server,\n> but it's out of space.\n\nHow ironic.\n\nBill Higgins, Beam Jockey              | \"Treat your password like\nFermi National Accelerator Laboratory  | your toothbrush.  Don't let\nBitnet:           HIGGINS@FNAL.BITNET  | anybody else use it--\nInternet:       HIGGINS@FNAL.FNAL.GOV  | and get a new one every\nSPAN/Hepnet:           43011::HIGGINS  | six months.\"  --Cliff Stoll\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2871, "properties": {"category": "rec.autos", "text": "Subject: insurance question\nFrom: <LIBEMC@BYUVM.BITNET>\nOrganization: Brigham Young University\nLines: 18\n\nI'm about to buy a new car and finance some of it.  Since I paid\ncash for the last car I bought I did not have to worry about\nwhether or not I had a good amount of insurance on it because\nof a bank loan.  I just put the amount that I wanted (not what\na bank would have wanted).  Friends are telling me that banks\nrequire some kind of insurance on the car to protect it since it\nis collateral on loans.  Is this true?  Can that insurance be\ngotten as part of my other insurance?  I assume I don't have to\npay a dealer for extra insurance over my regular car insurance.\nAm I correct?  I hear about accident/health type insurance at\nthe dealers and I am pretty sure these are just money makers\nfor them.  I just want to verify that I don't _have_ to buy\nthese at all.  Or any other types of extras.\n\nWhat do I have to pay for?  Car, tax, license.  Anything else?\n\nEllen\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2872, "properties": {"category": "rec.sport.hockey", "text": "From: mre@teal.Eng.Sun.COM (Mike Eisler)\nSubject: Re: Panther's President\nOrganization: Sun Microsystems, Mountain View, CA  USA\nLines: 27\nNNTP-Posting-Host: teal\n\nIn article <1993Apr20.180241.10263@alchemy.chem.utoronto.ca> golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n>The San Jose Sharks and Ottawa Senators are each on their second GM\n>already...I'd be willing to wager that both the Sharks and Senators\n>will probably see their 3rd GM's and perhaps their 4th, before we\n>see the Panthers second.\n\nActually, fired-coach George Kingston was a third of the GM\ntriumvirate.  Now that the trio is now duo (Dean Lombardi and Chuck\nGrillo), the Sharks are already on their 3rd \"office of the GM\". And a\n4th is likely to happen before September; they'll either add the new\ncoach to the OofGM, or name a single GM. So your wager should be\namended to read that Sharks are likely to have their 5th GM before the\nPanther's get their 2nd. Can't wait to see how the next season's NHL\nGuide and Record Book lists the GM history of the Sharks.\n\nGiven the depth of next year's draft, the expansion draft rules, and\nthe reputation of their GMs, Anaheim and Miami look pretty good as the\nfirst 90s expansion teams to win a Cup.  San Jose and Ottawa have\ninstability at the GM position, something that Philly, NYI, Edmonton,\nand Calgary did not have when they won their first Cups. Pittsburgh\ndid, but they needed a quarter century.\n-- \nMike Eisler, mre@Eng.Sun.Com  ``Not only are they [Leafs] the best team, but\n their fans are even more intelligent and insightful than Pittsburgh's.  Their\n players are mighty bright, too.  I mean, he really *was* going to get his\n wallet back, right?'' Jan Brittenson 3/93, on Leaf/Pen woofers in\n rec.sport.hockey\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2873, "properties": {"category": "comp.windows.x", "text": "From: epstein@trwacs.fp.trw.com (Jeremy Epstein)\nSubject: WANTED: X & security posting\nOrganization: TRW Systems Division, Fairfax VA\nLines: 20\n\nA few days ago there was a posting in this group by Andrea Winkler\ntitled \"X and Security / X Technical Conference\".  I was one of the\ninstructors of that tutorial.  Unfortunately, my system purged\nthe message before I had a chance to see it, and I don't have\nAndrea's email address.  If someone has Andrea's address and/or\nthe posting, I would really appreciate it if you'd forward it to\nme!\n\nThanks\n--Jeremy\n\nJeremy Epstein\t\t\tInternet: epstein@trwacs.fp.trw.com\nTrusted X Research Group\tVoice: +1 703/803-4947\nTRW Systems Division\nFairfax Virginia\n-- \nJeremy Epstein\t\t\tInternet: epstein@trwacs.fp.trw.com\nTrusted X Research Group\tVoice: +1 703/803-4947\nTRW Systems Division\nFairfax Virginia\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2874, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Stratus Computer, Inc.\nLines: 122\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <CMM.0.90.2.734911642.thomasp@surt.ifi.uio.no>, Thomas Parsli <thomasp@ifi.uio.no> writes:\n\n> If I would like to have a handgun, i would have to get an gun-licence from \n> the police and to be a member of a gun-club.\n> The police would check my criminal records for any SERIOUS crimes and/or\n> records of SERIOUS mental diseases.\n> Now, if a got my licence, I would have to be an active member of the gun\n> -club for 6 months BEFORE I could collect my gun.\n\nSo, like, what do you do during those six months to be \"active?\"\nMy town has a similar requirement, and it's rather stupid.  Before\nyou can buy a handgun, you have to be an active member of a gun club.\nWell, how active can you be without a gun, chief?\n\nMost gun owners feel a check of criminal records for crimes and mental\ndisorders would be a very good thing -- IF it couldn't be abused by the\ngovernment.  But every time this is proposed, there is always some\ntrapdoor by which the government can deny your purchase EVEN IF you\nare perfectly qualified to own a gun.  And we oppose this.\n\n> It's a little like getting a drivers licence isn't it ???\n> You have to prove that you CAN drive before you are allowed to...\n\nSince the fatal accident rate for licensed automobile drivers in the US \nis around 50 times the fatal accident rate of largely unlicensed gun\nowners, I'd think twice before using this analogy.\n\nBesides, the problem is criminal use of guns, not accidents.  (There\nare about 500,000 criminal uses of guns in the US every year -- but\nonly 1,400 accidents.)  I don't think it's necessary to spend a lot\nof energy making sure a criminal CAN shoot a gun before he gets one.\n\nJust like the check, most gun owners feel positively about requiring\nsafety courses -- IF they couldn't be abused by the government.  But \nthey already have!  One state doesn't hold the courses, another doesn't \nfund them, a third holds them only once a year with limited attendence \nto those with political connections.  Is this fair?\n\n> Most criminals accuire guns to use them in crimes, and mostly short \n> time befor the crime.\n\nAnd how many of them acquire these guns from legal retail outlets?\nHow many are borrowed, stolen, smuggled, bought on the black market?\n\n> Use of knives:\n> It IS allowed to cary knifes in public, but not in your belt or 'open'.\n> You (Americans) think it's ok to have a gun, but not to carry it open\n> in public -rigth ??\n\nSome states allow ONLY open carry.  Some allow ONLY concealed carry.\nSome allow both.  Some allow both, but require licenses for concealed \ncarry.  All you can say is if one of these modes has a clear advantage\nover another in terms of reducing crime or any other public good,\nthen state legislators SOMEPLACE are doing exactly the wrong thing.\nWhich means that they really don't have any objective reasons for \nthese laws other than their preferences -- a bad way to govern.\n\n> Scandinavians ARE 'aggressive':\n> We northeners are not as hot-livered as southeners, but when we decide\n> to take action we DO.\n\n(\"Hot-livered.\"  I LOVE that expression.  Here, we say \"hot-headed.\")\n\n> Individual vs masses:\n> Yes the individual is more important than the masses, but only to some\n> extent....\n> Your criminal laws are to protect the individuals who makes the masses ??\n> What happens when the rigths of some individuals affects the rights of \n> all the others ??\n\nTypically, the only criminals who can affect the rights of ALL the other\npeople are criminals in government offices.  The rest of our criminals\naffect the rights of only one or a few people at a time, and they do this\nduring the commission of a crime.  POSSESSION of a gun by someone hurts\nNO ONE else.  It is when they do something violent with that gun that\nthe crime occurs.  Of course, it is a crime for a felon or ex-felon to\npossess a gun, but we don't feel it is right to treat common citizens\nwho have lived good lives as if they were just \"pre-felons\" waiting to\ncommit crimes.\n\n> We shouldn't mix weapons and items that can serve as one....\n\nI don't understand this sentence.\n\n> IF i lived in Amerika I would probably have a gun to defend myselfe in HOME.\n> But should it have to be like that ??\n\nLife isn't fair.  I shouldn't need a fire extinguisher either, or\nflood and theft insurance, or to lock the doors of my house and car.\nBut pining for a better world won't do anything to address what I have\nto do to live in this one.\n\n> Do you think it's wise to sell guns like candy (some states do...) ??\n\nNone of ours, I'm sure.\n\n> If you believe it's smart/neccacery to have drivers-licence WHY do you think\n> it should be free to buy guns ??\n\nFrankly, I'm not sure I know what good a driver's license does anyone,\neither.  The people who drive safely never use it, and the people who \ndrive drunk, drive without it!\n\nHowever, a car is a good tool, but not one that protects my right to life.\nI rank the right to life somewhere north of the right to travel freely.\n\n> I'm not a pacifist or anti gun. \n> I would defend my home, loved ones and country, but I don't view guns as\n> neccities or toys.\n> I HAVE done army service, and HAVE used a variaty of weapons, but wouldn't\n> want to have one for self defence or because they 'feel good'....\n\nThe question is not whether or not you want to own guns personally.  It's\nwhether or not you think that ALL people should be forced to do as you do.\nI don't have any problem with someone who says they would never own a gun.\nI do have a problem with someone who says I should be prevented from owning\none, too.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2875, "properties": {"category": "comp.sys.mac.hardware", "text": "From: patrickd@wpi.WPI.EDU (Lazer)\nSubject: 68040 Specs.\nOrganization: Worcester Polytechnic Institute\nLines: 18\nDistribution: world\nNNTP-Posting-Host: wpi.wpi.edu\n\nI'd appreciate it greatly if someone could E-mail me the following:\n(if you only know one, that's fine)\n1) Specs for the 68040 (esp. how it compares to the Pentium)\n2) Specs for the 68060 with estimated cost, release date, etc...\n\nI'm interested in speeds, systems it can run (Windows NT, RISC, or whatever),\ncosts, bus info, register info.  All the technical info.\n\nI am hoping that the 68040 can win yet another battle against the intel people.\n \n:)  Thanks for any info you can give.\n\nThanks.\n-- \n-Lazer (Patrick Delahanty)    |WARNING!: MST3K & Star Trek fan, Macintosh user,\nInterNet: patrickd@wpi.wpi.edu|          and Co-sysop of L/A Blues BBS!\n          lazer@lablues.UUCP  | Call L/A Blues BBS (207-777-3465 or 777-7782)\n    * MACINTOSH USER *        | for Macintosh & MS-DOS files & *FREE USENET*!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2876, "properties": {"category": "talk.politics.guns", "text": "From: feustel@netcom.com (David Feustel)\nSubject: BATF's Prime Directive\nOrganization: DAFCO: OS/2 Software Support & Consulting\nLines: 7\n\nBully, Them; Bludgeon Them, Bury Them.\n-- \nDave Feustel N9MYI <feustel@netcom.com>\n\nI'm beginning to look forward to reaching the %100 allocation of taxes\nto pay for the interest on the national debt. At that point the\nfederal government will be will go out of business for lack of funds.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2877, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cannon@mksol.dseg.ti.com (Christopher Cannon)\nSubject: Re: Help with 24bit mode for ATI\nOrganization: Texas Instruments, Inc\nLines: 26\n\nIn article <WONG.93Apr15111623@ws13.webo.dg.com> wong@ws13.webo.dg.com (E. Wong) writes:\n>I finally got the vesa driver for my ATI graphics ultra plus (2M).  However,\n\n\tWhere did you get this driver.  Please, please, please !!!!\n\tI've been waiting months for this.\n\n>when I tried to use this to view under 24bit mode, I get lines on the picture.\n>With 16bit or below, the picture is fine.  Can someone tell me what was wrong?\n>Is it the card, or is it the software?\n>--\n>Thanks\n>8)\n>    _/_/_/_/  _/_/_/    _/    _/    _/_/    _/_/_/    _/_/_/  \n>   _/\t     _/    _/  _/    _/  _/    _/  _/    _/  _/    _/ \n>  _/_/_/_/  _/    _/  _/ _/ _/  _/_/_/_/  _/_/_/    _/    _/\n> _/        _/    _/  _/ _/ _/  _/    _/  _/  _/    _/    _/ \n>_/_/_/_/  _/_/_/      _/ _/   _/    _/  _/    _/  _/_/_/    \n>                                                            \n>user's name:\tEdward Wong \t\t\t\t    \n>Internet:     \twong@ws13.webo.dg.com\t\t \n>telephone:\t(508) 870-9352\n\n\n-- \n===================\ncannon@lobby.ti.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2878, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: brad@ravel.udel.edu (Brad Cain)\nSubject: Actix GRAPHICSengine 32plus\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nLines: 18\n\nI just bought an actix graphics engine 32 plus with 2 megs.  \n\nI am not impressed...\n\nI have been having all sorts of problems with the board.  Various lock-ups\nin windows, problems with the screen not centering, no flexibilty in choosing\nsynch rates for a monitor, buggy windows drivers, lack of 1024x768x64k driver,\n\nIf anyone else has one of these cards, please e-mail me...\n\nLooks like i'm going to try the ati ultra plus...\n\n\n-- \n****************************************************************************\nbrad@bach.udel.edu             Brad Cain \t\t\t       N3NAF\ncain@snow-white.ee.udel.edu    University of Delaware Electrical Engineering\ncain@freezer.cns.udel.edu      \"Blah, blah, blah\"                   alt.blah \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2879, "properties": {"category": "talk.politics.mideast", "text": "From: ohayon@jcpltyo.JCPL.CO.JP (Tsiel Ohayon)\nSubject: How many israeli soldiers does it take to kill a 5 yr old child?\nOrganization: James Capel Pacific Limited, Tokyo Japan\nLines: 63\n\nJLE the Great writes:\n\n[JLE] Q: How many occupying israeli soldiers (terrorists) does it\n[JLE] take to kill a 5 year old native child?\n[JLE] A: Four\n[JLE] Two fasten his arms, one shoots in the face,\n[JLE] and one writes up a false report.\n\nA couple of months ago JLE wrote a terrible C program (it would never have \npassed compilation). This is one describes JLE the Great.\n\n---- 8< Cut Here and save to jle.c ----------- >8 ----------\n\n#include <stdio.h>\n#include <signal.h>\n\n#define\tLOSER\t\t0x01\n#define\tCHILDISH\t0x01\n#define\tUNHUMORISTIC\t0x01\n#define VULGAR\t\t0x01\n#define MOSSAD_AGENT\t0x01\n\n#define J_L_E\t\tLOSER | CHILDISH | UNHUMORISTIC | VULGAR | MOSSAD_AGENT\n\nstatic void\nabort()\n{\n\tprintf(\"Even if she wanted, JLE's mother couldn't abort this program\");\n\tprintf(\"\\n\\n\\n\\n\");\n}\n\nvoid\nmain()\n{\n\tsignal(SIGINT,abort);\n\tprintf(\"This program does not help Jewish-Arab relations  :-( \\n\");\n\n\tprintf(\"Hit ^C to abort \\n\");\n\n/* Infinite loop, JLE never comes out of his world \t*/\n\n\twhile(J_L_E);\n}\n\n---- 8< Cut Here ----------- >8 ----------\n\n\nTo compile this \"wonderfool\" program on a unix machine try.\ncc -o jle jle.c\nor \nmake jle\n\nthen type jle at your prompt.\n\nI tried it, it works great ...\n\n\nTsiel\n-- \n----8<--------------------------------------------------------------->8------\nTsiel:ohayon@jcpl.co.jp\t   | If you do not receive this E-mail, please let me\nEmployer may not have same | know as soon as possible, if possible.\nopinions, if any !         | Two percent of zero is almost nothing.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.132+0000", "event": "documents", "entityId": 2880, "properties": {"category": "sci.electronics", "text": "From: rsf@cbnewsb.cb.att.com (roberto.s.freire)\nSubject: Fluke Scopemeter\nOrganization: AT&T\nLines: 14\n\nHas anybody out there used/tested these new Fluke Scopemeters?\nHow do they compare to a low-end Tectronix oscilloscope? Are\nthere any big drawbacks about these handheld scopes when\ncompared to the benchtop scopes of the same price range\n($1000-$2000)?\n\nAny info on the Fluke Scopemeters would be greatly appreciated.\n\nThanks,\n\nBob Freire\nrsf@houxa.att.com\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2881, "properties": {"category": "sci.crypt", "text": "From: Markowitz@DOCKMASTER.NCSC.MIL\nSubject: exportability of PKZIP (was: RE: RC2)\nOrganization: Yale CS Mail/News Gateway\nLines: 36\n\nVesselin Bontchev (bontchev@fbihh.informatik.uni-hamburg.de) writes:\n\n>>Markowitz@DOCKMASTER.NCSC.MIL writes:  >>> It is interesting to note\nin this regard that permission to export >>> PKZIP's encryption scheme\nhas twice been denied by NSA.  Draw you own >>> conclusions.\n\n>>Uh, I'm afraid that your information is slightly out of date...\nPKWare >>has obtained a license to export their program to the whole\nworld, >>except a very limited list of countries...  Draw your own\nconclusions >>about the strength of the algorithm...  :-)\n\nSorry if I was less than clear.  :-) I was referring to our own efforts\nto receive export permission from NSA for the PKZIP encryption\nalgorithm, not to any effort on the part of Phil Katz or PKWare.\n\nI should point out that the original version of this algorithm was\ndesigned by Roger Schlafly and that WE (meaning Roger and myself) were\ntwice denied an export license for it.  The second go 'round was just\nthis past fall.\n\nI had no knowledge of Phil's attempts in this.  I do not even *know* for\nsure if he choose to implement the algorithm as it was designed by\nRoger, though I *believe* that was at least the case for versions prior\nto 2.0.  And then there's the question of key management.  :-)\n\nAnd even if our applications were identical, there is no reason to\nassume the NSA would treat them that way.  :-)\n\n-mjm\n\n----------\n  Michael J. Markowitz, VP R&D      markowitz@dockmaster.ncsc.mil\n  Information Security Corp.        708 405-0500, fax: 708 405-0506\n  1141 Lake Cook Rd., Suite D       MCI:  363-1959\n  Deerfield, IL  60302              CIS: 76206,2617\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2882, "properties": {"category": "rec.motorcycles", "text": "From: robert@Xenon.Stanford.EDU (Robert Kennedy)\nSubject: Solar battery chargers -- any good?\nOrganization: Computer Science Department, Stanford University.\nLines: 12\n\nI've seen solar battery boosters, and they seem to come without any\nguarantee. On the other hand, I've heard that some people use them\nwith success, although I have yet to communicate directly with such a\nperson. Have you tried one? What was your experience? How did you use\nit (occasional charging, long-term leave-it-for-weeks, etc.)?\n\n\t-- Robert Kennedy\n\nRobert Kennedy\t\t\t\t\t(415) 723-4532 (office)\nrobert@cs.stanford.edu\t\t\t\t(415) 322-7367 (home voice)\nComputer Science Dept., Stanford University\t(415) 322-7329 (home tty)\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2883, "properties": {"category": "talk.politics.misc", "text": "From: ckincy@cs.umr.edu (Charles Kincy)\nSubject: Re: How many homosexuals are there?\nNntp-Posting-Host: next4.cs.umr.edu\nDistribution: usa\nOrganization: University of Missouri - Rolla, Rolla, MO\nLines: 13\n\nIn article <Apr.15.21.39.43.1993.8726@romulus.rutgers.edu> kaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n>Perhaps 1%, but most likely not more than 2%.  A new study\n>(discrediting Kinsey) says so.\n\nWow, does this mean 2 out of 5 homosexuals will be at the March\non Washington?  How *very* interesting.\n\ncpk\n-- \nIt's been 80 days.  Do you know where your wallet is?\n\nSlick Willy's already got his hand in my pocket.  I'm just afraid\nof what he might grab hold of.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2884, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: Gun Control: proud to be a Canuck\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nLines: 28\n\nIn article <1pqsruINNiae@hp-col.col.hp.com>, dduff@col.hp.com (Dave Duff) writes:\n>Does anyone really believe the Swiss have had no war within their borders\n>because every adult male owns a rifle? I'm a great admirer of the Swiss, but\n>500 years of peace on their turf has zilch to do with gun ownership. Can you\n>picture Hitler, with Panzers and Focke-Wulfs poised on the border, losing\n>sleep over a few thousand expert rifleman? \n\nNot just because of the riflemen.  They also have many hard bunkers in\nthe mountains that would be nearly impossible to penetrate. As for\ntanks, they would be rather useless in such mountainous terrain.  \n\n>Hitler stayed out of Switzerland because the Swiss run the money in this\n>world. \n\nGee, that's a new one.  He thought it was a different ethnic group.  \nSince Hitler was determined to control, at the least, all of Europe,\ndo you think he gave a damn about international monetary concerns?  \nAlso, there's a LOT of gold in Swiss vaults.  Don't you think he new\nthat?  If he could have, he would have taken Switzerland.  However,\ncrazy as he was, he wasn't totally stupid.  It would have cost him a\nhell of a lot to take Switzerland, with no guarantee that an invasion\nwould be successful.  He probably figured (or his generals did, when\nhe was listening to them) that it wasn't worth the cost.\n\nAl\n[standard disclaimer]\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2885, "properties": {"category": "rec.sport.baseball", "text": "From: cmk@athena.mit.edu (Charles M Kozierok)\nSubject: Re: Detroit Tigers\nOrganization: Massachusetts Institute of Technology\nLines: 20\nNNTP-Posting-Host: marinara.mit.edu\nKeywords: Detroit is the top offensive team in the league\n\nIn article <1qt1f3$o7o@msuinfo.cl.msu.edu> vergolin@euler.lbs.msu.edu (David Vergolini) writes:\n} The roar at Michigan and Trumbull should be loader than ever this year.  With\n} Mike Illitch at the head and Ernie Harwell back at the booth, the tiger bats\n} will bang this summer.  Already they have scored 20 runs in two games and with\n} Fielder, Tettleton, and Deer I think they can win the division.  No pitching!\n} Bull!  Gully, Moore, Wells, and Krueger make up a decent staff that will keep\n} the team into many games.  Then there is Henneman to close it out.  Watch out\n} Boston, Toronto, and Baltimore - the Motor City Kittys are back.\n\nnice woofing (or should i say meowing?).\nand yes, the Tiggers are a fun, exciting team that i would pay to see.\nbut last year, they went 75-87. this year, their offense is essentially\nthe same, and their pitching is, at best, essentially the same. so why\ndo you think they will suddenly improve to win the 92 or so games which will\nbe required to win the A.L. East? what has changed that i don't see?\n\nremember, a 20-4 win is worth as much in the standings as a 3-2 win...\n\n-*-\ncharles\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2886, "properties": {"category": "talk.politics.mideast", "text": "From: astein@nysernet.org (Alan Stein)\nSubject: Re: Water on the brain (was Re: Israeli Expansion-lust)\nOrganization: NYSERNet, Inc.\nLines: 4\n\nI guess Hasan finally revealed the source of his claim that Israel\ndiverted water from Lebanon--his imagination.\n-- \nAlan H. Stein                     astein@israel.nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2887, "properties": {"category": "talk.politics.guns", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Re: guns in backcountry? no thanks\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nLines: 27\n\n>>Hmm, wouldn't manditory saftey classes, registration\n>>of both the owner and gun, and manditory liability insurance be nice for\n>>gun owners.\n>\n>       The two are not the same, as I pointed out above.  There are\n>significant difference between making rules for *use on public property*\n>and *making rules for ownership*.\n>\n>       The other half of the objection is trust.  Similar things to this\n>have been tried in many local jurisdications across the country, and\n>have been abused in far too many cases.   Safety classes which are\n>never sheduled, never funded, or only one or two is held a year for\n>a limited number of participants.  Registration lists in New York,\n>Chicago, and California have been used for confiscation.  *Many* gun\n>owners would, in theory, support these planes.  (Although the\n>numbers overwhelmingly show that competence is not the problem, that\n>intentional misuse is).  They've simply seen it abused and are leery of\n>the next person who comes down the pike with a \"reasonable\" suggestion\n>they've already seen abused.\n\nGun safety classes sound good in theory, but they kind of remind me of\nthe \"literacy tests\" used in the bad old days to keep blacks from voting.\nThey came with the \"grandfather clause\": if your grandfather could vote,\nyou could vote.  Sort of like the gun safety laws that only let the\npolitical ass-kissers have guns.\n\t\t\t\t\t\tDoug Holland\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2888, "properties": {"category": "comp.graphics", "text": "From: doug@hparc0.aus.hp.com (Doug Parsons)\nSubject: Re: 3d-Studio V2.01 : Any differences with previous version\nOrganization: HP Australasian Response Centre (Melbourne)\nX-Newsreader: TIN [version 1.1 PL8.5]\nLines: 10\n\nFOMBARON marc (fombaron@ufrima.imag.fr) wrote:\n: Are there significant differences between V2.01 and V2.00 ?\n: Thank you for helping\n\n\nNo.  As I recall, the only differences are in the 3ds.set parameters - some\nof the defaults have changed slightly.  I'll look when I get home and let\nyou know, but there isn't enough to actually warrant upgrading.\n\ndouginoz\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2889, "properties": {"category": "rec.sport.baseball", "text": "From: kkerr@MK (Kevin Kerr)\nSubject: Re: WFAN\nLines: 41\nNntp-Posting-Host: kerr.dseg.ti.com\nOrganization: ENGINEERING AUTOMATION\n\nIn article <C5JC3z.KnD@news.udel.edu> philly@ravel.udel.edu (Robert C Hite) writes:\n>From: philly@ravel.udel.edu (Robert C Hite)\n>Subject: Re: WFAN\n>Date: Thu, 15 Apr 1993 17:19:09 GMT\n\n>In article <1993Apr15.151202.3551@Virginia.EDU> jja2h@Virginia.EDU (\"\") writes:\n>>Does any one out there listen to WFAN?  For those of you who do\n>>not know what I am talking about, it is an all sports radio\n>>staion in New York.  On a clear night the signal reaches up and\n>>down the East coast.  In particular, I want to know how Len\n>>Berman and Mike Lupica's show is.  I go to school in Virginia\n>>so I can't listen when there are on during the day.  Just\n>>wondering.\n\n>The FAN is an okay Sports Radio station, but doesn't come close to\n>the ULTIMATE in Sports Radio, 610 WIP in Philadelphia.  The signal\n>might not be as powerful, but then again only stations in New York\n>feel \"obligated\" to pollute everyone else's airwaves with a bunch of\n>hoodlum Mets fans complaining 24 hours a day.  WIP took two of your\n>best sports jockeys too, Jody MacDonald and Steve Fredericks.  610\n>WIP is rockin with sports talk from 5:30 AM till midnight, check it\n>out anytime your within a few hours of Philadelphia.  If I'm not\n>mistaken, WIP has the highest sports talk ratings in the nation?\n\nI'm from Dallas, and you have alot of nerve saying that WFAN has a bunch of \nHoodlum Mets fans.  During the football season, the local cowboy station here \nhad the WIP on several times for simultanious broadcasts.  I have never heard  \na bigger bunch of low intellect, bed wetting ,obnoxious, woofing, cranial \ndeformed, assholes in my entire life!  The IQ of the average eagles fan must \nbe in the 10-15 range at best, and they have been known to be big droolers.\n\n(Please no flames) ... <let's see if it works for me Bob>  ;-)\n\n\n=========================================================================\n|   Kevin P. Kerr                            kkerr@mkcase1.dseg.ti.com  |                                                                       #\n|                                                                       |\n|   S.A.B.R member since '92            GO YANKEES !!!  GO DOLPHINS !!! |\n|                                                                       |\n|  \"Strolling through cyberspace, sniffing the electric wind....\"       |\n=========================================================================\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2890, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: O.T.O clarification\nOrganization: Cookamunga Tourist Bureau\nLines: 14\n\nSorry, the San Jose based Rosicrucian order is called A.M.O.R.C, \nI don't remember for the time being what the A.M. stand for\nbut O.R.C is Ordo Rosae Crucis, in other words latin for\nOrder of the Rose Cross. Sigh, seems l'm loosing more and more\nof my long term memory.\n\nOtherwise their headquarters in San Jose has a pretty decent\nmetaphysical bookstore, if any of you are interested in such books.\nAnd my son loves to run around in their Egyptian museum.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2891, "properties": {"category": "comp.graphics", "text": "From: bprofane@netcom.com (Gert Niewahr)\nSubject: Re: Rumours about 3DO ???\nArticle-I.D.: netcom.bprofaneC51wHz.HIo\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 39\n\nIn article <C51Eyz.4Ix@optimla.aimla.com> lex@optimla.aimla.com (Lex van Sonderen) writes:\n>In article <h1p4s4g@zola.esd.sgi.com> erik@westworld.esd.sgi.com (Erik Fortune) writes:\n>>> better than CDI\n>>*Much* better than CDI.\n>Of course, I do not agree.  It does have more horsepower.  Horsepower is not\n>the only measurement for 'better'.  It does not have full motion, full screen\n>video yet.  Does it have CD-ROM XA?\n>\n>>> starting in the 4 quarter of 1993\n>>The first 3DO \"multiplayer\" will be manufactured by panasonic and will be \n>>available late this year.   A number of other manufacturers are reported to \n>>have 3DO compatible boxes in the works.\n>Which other manufacturers?\n>We shall see about the date.\n\nA 3DO marketing rep. recently offered a Phillips marketing rep. a $100\nbet that 3DO would have boxes on the market on schedule.  The Phillips\nrep. declined the bet, probably because he knew that 3DO players are\nalready in pre-production manufacturing runs, 6 months before the\ncommercial release date.\n\nBy the time of commercial release, there will be other manufacturers of\n3DO players announced and possibly already tooling up production.  Chip\nsets will be in full production.  The number of software companies\ndesigning titles for the box will be over 300.\n\nHow do I know this?  I was at a bar down the road from 3DO headquarters\nlast week.  Some folks were bullshitting a little too loudly about\ncompany business.\n\n>>All this information is third hand or so and worth what you paid for it:-).\n>This is second hand, but it still hard to look to the future ;-).\n>\n>Lex van Sonderen\n>lex@aimla.com\n>Philips Interactive Media\n ^^^^^^^^^^^^^^^^^^^^^^^^^\n\n What an impartial source!\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2892, "properties": {"category": "soc.religion.christian", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: SATANIC TOUNGES\nOrganization: University of Georgia, Athens\nLines: 34\n\nIn article <May.6.00.34.49.1993.15418@geneva.rutgers.edu> marka@hcx1.ssd.csd.harris.com (Mark Ashley) writes:\n>I have a simple test. I take several people who can speak\n>only one language (e.g. chinese, russian, german, english).\n>Then I let the \"gifted one\" start \"speaking in toungues\".\n>The audience should understand the \"gifted one\" clearly\n>in their native language. However, the \"gifted one\" can\n>only hear himself speaking in his own language.\n\nThat would be neat, but nowhere in the Bible does it say\nthat one who has the gift of tounges can do this.  If the gift\nof tounges were the ability to be understood by everyone,\nno matter what languages they know, there would be no need for the\ngift of interpretation, and I Corinthians 14 would not have had to\nhave been written. \n\n\n>Perhaps I would believe the \"gifted ones\" more if they were\n>glorifying God rather than themselves. Then perhaps we'd\n>witness a real miracle.\n\nThat's a pretty harsh assumption to make about a several million\nChristians world wide.  Sure, there are some who want glory\nfor themselves who speak in tounges, just as there are among those\nwho do not have this gift.  There were people like this in the Corinthian\nchurch also.  that does not mean that there is no true gift or that all\nwho speak in tounges do it for their own glory in the sight of men.  \nI would venture to say that a large percentage of those who do speak in tounges \ndo so more often in private prayer than in public.\n\nLink Hudson\n\n[There were apparently those in the early church who claimed that\nat Pentecost the miracle was that the crowd were all given the\nability to understand the Apostles speaking in Greek.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2893, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gt5735a@prism.gatech.EDU (Mark Devaney)\nSubject: Sorry, another Gateway posting\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 42\n\n\nI never thought I'd contribute to a Gateway thread, either pro or con, but\nmy spleen could use a little venting.  The scenario:\n\n\t1 - Ordered a DX2/50 w/ Ultrastor 34F Local Bus HD controller\n\t2 - Receive system 10 days after ordering (Happy)\n\t3 - Discover Ultrastor 14F ISA HD Controller inside (unhappy)\n\t4 - Call Gateway, receive the correct controller in 5 days \n\t\t(getting happier)\n\t5 - New controller doesn't work (unhappy again)\n\t6 - Call Gateway again, get another controller in 5 more days\n\t\t\t(cooling off, the end is in sight)\n\t7 - This controller doesn't work either, motherboard is bad\n\t\t(VERY unhappy)\n\nGateway's solution:  They will order me a new motherboard (5 more days)\n\tand have on-site service install it for me.\nBUT, I have to take a day off of work because the service people\nonly work 9-5 M-f.  I say, no way I've already blown about 20 hours\nwith this, about 10 of them on hold and I don't have the time or $$\nto take a day off work.  Also, my 30 day return period is almost over and\nI've only been able to use the thin for about 10 minutes.  So, the whole \nthing is going back.  \n  I was extremely upset when I began this post because the support rep told me\nthat I would have to pay shipping not only for the returned system, but also\nthe two hard drive controllers they had sent me.  Fortunately, I just spoke\nto customer service and they are going to have UPS come and pick everything\nup gratis. The only downside is that now I have to order another computer.\n\nI would really like to try Gateway again, I'm just very turned off by the\nprospect of having to try and get through to Customer Service or Tech Support\nagain...  I think their products are great for the most part, but I'm\nbeginning to wonder if the savings are worth the potential aggravation.\nAre other mail order companies as difficult to contact?  I know Gateway is\nbooming, and for good reason, but I don't know if I can take it again.\nOh well, I feel better now...\n\n-- \n-----_____-----_____-----_____-----_____-----_____-----_____-----_____-----\n| Mark Devaney                     - Hear me now and believe me later     |\n| Georgia Institute of Technology, Atlanta Georgia, 30332\t\t  |\n| Internet: markd@cc.gatech.edu   \t\t\t\t\t  |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2894, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Insane Gun-toting Wackos Unite!!!\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: na\nLines: 40\n\n>> Do you know how many deaths each year are caused by self-inflicted gun-\n>> shot wounds by people wearing thigh holsters?\n\nThere are roughly 1200 fatal, firearms-related accidents each year.\nThe large majority involve rifles and shotgun; there are under 500\nfatal handgun accidents each year. I really doubt all of those\noccur while the pistol is holstered, so the number of \"self-inflicted\ngunshot wounds by people wearing thigh holsters\" is probably\nwell under 250 per year.\n\n>>If you fall, for example,\n>> and land on the handgun or cause a sudden blow, the gun will discharge.\n\nHandguns designs have included a \"hammer block\" since around 1960\nor earlier. This is a metal part which physically seperates\nthe cartridge and the firing pin: Even under impact, the gun\ncannot fire. The hammer block is connected to the trigger and\nis pulled out of the way as the trigger is pulled. As a result,\nmodern pistols can fire _only_ if the trigger is pulled (or \nin some cases, if they are cocked by hand and then dropped.) \n\n>> The number of people killed in this manner far outweighs the number of\n>> deaths caused by animal attacks or \"wacko\" attacks combined.\n\nI don't know about animal attacks, but there are 23,500 murders \neach year and under 500 die in the manner you suggest. If only\n2.1% of the murders were killings by \"wacko\"s, you would be\nwrong. Worse, there are also 102,500 rapes and 1,055,000 aggravated\nassaults each year. These numbers make violent attacks, and \npreventing them, thousands of times more significant than the\naccidents you are worried about.\n\n(These figures, by the way, are from the FBI's \"Uniform Crime\nReport\" for 1990. I'll stop by a library tomorrow and look at\nthe \"National Crime Victimization Survey\", which is more\nspecific about where and when the crimes occured.)\n\n                                              Frank Crary\n                                              CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2895, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: Converting contents of X-window to color postscript\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 33\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nIn article <1993Apr8.200441.9423@jwminhh.hanse.de>, wieck@jwminhh.hanse.de (Jan Wieck) writes:\n|> mbheprg@PROBLEM_WITH_INEWS_GATEWAY_FILE (Raju Gurung) writes:\n|> : Jeff Haferman (haferman@icaen.uiowa.edu) wrote:\n|> : > Can somebody point me to source code for dumping the contents of\n|> : > an X-window into a color postscript file?  I have written\n|> : > an app which brings up an X-window, and I want (at the click\n|> : > of the mouse) to dump the window into a postscript file.\n|> :\n|> :\n|> :\n|> : I use xwd and xwd2ps. To do it from within a program I use\n|> : xwd -id xxxxx where xxxxx is the window id obtained from XtWindow(widget).\n|> \n|>     He asked for sources.\n|> \n|>     The   portable    bitmap    tools    from    Jef    Poskanzer\n|>     <jef@well.sf.ca.us>  include  filters  to  do  that (and much\n|>     more).\n|> \n\nBTW, the X11 tools come as sources. The sillyness of most vendors lets you\nstuck with binaries.\n\nAnyway, have a look onto xgrab/xgrabsc. It does the IMHO best job for\nthis, including compression.\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2896, "properties": {"category": "talk.politics.mideast", "text": "From: cza@troy.cc.bellcore.com (C. Akgun)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nNntp-Posting-Host: troy.cc.bellcore.com\nOrganization: BCR, NJ-USA\nLines: 126\n\nIn article <C5I6rK.L9I@news.cso.uiuc.edu> msg7038@uxa.cso.uiuc.edu (Michalis  Syrimis) writes:\n[...}\n>>any concentration/labor camp in Turkey (around 1974 or\n>>later) for Cypriot Greeks (or any Greeks) rather than talking\n>>nonsense like above, I will be glad to read what they got.\n>\n>How can you be in a position to know about any kind of concentration camps\n>Akgun?\n\nLiving through those days at the age of 20 and following\nthe internal and external news gives me that knowledge\nand position.  In 1974, Turkey had a democratic goverment and free\npress at that time.  Forget about internal news agencies, I haven't\nheard anything from any international source about any\nconcentration camps with Greek Cypriot prisoners in Turkey.\nHowever, I heard Adana POW camp.  It was not secret and well \nrecognized POW camp.  \n>\n>As for all the registered prisoners to the Red Cross having returned to \n>their homes, this is your version of the story.  There are cases in which\n>prisoners who were registered, some of them even sent messages to their \n>relatives, were not released.  These are undeniable facts. \n\nI see,  They vanished in Turkish labor camps.  Turks have\ndecided to acknowledge their existence first but later\nchanged their minds releasing them.  Is that it?  What do\nyou think happened to them?  I thought that MIA's are only the subject \nof Rambo and Chuck Noris movies.  Seems that I am wrong.\n\n>\n>As for their treatment being according to what convention...?\n>Okay we believe you.\n\nYou don't need to belive me.  Turkiye was never a clandestine state\nin its history,  It has been a respected and continuous member of UN \nsince the inception of UN.  No body ever questioned the UN membership of\nTurkey because of what had happened in 1974a and after.  Only a short \nlived arms embargo was imposed unilaterally by USA to satisfy the \ninternal Greek loby.  I know what you would say next.  Let me answer it\nbefore wasting anytime.  Yes!  UN had a few condemning resolutions \nagainst Turkey because of handling the Cyprus problem, especially after\nthe 1980 coup.  Well, US and Israel had a few too.  What can I say?\nI am sure during Athens Junta duruing 1960-74, Greeks had\ntheir own share too.\n\n>>closed matter today between Turkish Cypriots/Turks/Greeks/Greek \n>>Cypriots.  There is no more any official demand from Greek\n>>Cypriots about any missing Greek Cypriots.\n>\n>Where have you heard that there is no official demand regarding the\n>missing persons? \n\nHave you looked at the latest UN agenda for Cyprus talks\nmediated by Gali?  There was no issue whatsoever about any\nmissing people among the negotiating parties.  was there?\nI heard many times from Denktas interviews by Turkish and\nInternational press.  He keeps saying that \"This was no\nlonger an issue for peace talks.\"  Also, you don't want\nme fish for the Greek Cypriot politician's words (that Argic\nhad posted zillion times) describing missing peoples as \na Greek-Cypriot myth.  Seems that there is a different opinions \namong Greek-Cypriots as well about missing people in Turkish \ncustody.\n\n[..]\n\n>Your claim that the majority of the missing persons were infact killed\n>in the period between the coup d'eta and the invasion, 5 days, is simply\n>not true.  All the cases of missing persons I know, and I know quite a\n>few, are cases of people who were  either in the reserve forces and were lost\n>somewhere in the battlefield, or were civilians who were taken prisoners\n>in their villages by the turkish army. \n\nI am not claiming anything.  I just told you what was\ngiven to Greek Cypriots as an answer by Turkish\nGoverment/Turkish Cypriots when they wanted to locate some\nof their own between July 15 and the final cease-fire in\nlate August, 1974.  This answer seems to satisfy the international \ncommunity, the UN, and the Vasilu Goverment (since he did not make it\nan issue for the peace talks).  Also, I am not aware of any UN\ncondemnation against Turkey about any missing Greek-Cypriot.  Are you?  \n\nBTW, do you mean that Nicos Sampson had a bloodless coup d'eta\nand nobody got hurt in those events?  \n\n>\n>As of the few photos which you refer to, there are more than a few. There are\n>photos not only of greek cypriot soldiers being \"rounded up\", but also others\n>in the prison camp in Turkey.\n\nLike I said before.  There is even a different opinion among\nGreek-Cypriots for this myth.   The officers in Turkish Army who\ngoverned the Adana POW camp must be hell of clever dudes\nto cover up their tracks 8-).  I hope Turkish Army does't have \nsame type of morons for the security of Turkiye.  However, this must \na good subject for a movie script.  One should inform Oliver Stone     \nabout this.\n\n>\n>> Of course, not.  The justice was served well.  If and when the Bosnian \n>>pleas are answered, who's going to dare to ask what happens to those \n>>masterminds behind the ethnic cleansing idea.  They are known today \n>>(as EOKA-B masterminds were known in 1974) to everybody and are doing \n>>it openly even giving TV interviews.  It may take same time as it was \n>>for the EOKA-B case, however, the justice will be served again.\n>\n>Akgun, comparing the actions of the Serbians in Bosnian with the \n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>actions of\n^^^^^^^^^^^\n>Turkey in Cyprus is not something I would do if I were a Turk.  \n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>I thought\n>that the Serbians were the savages, the inhumane beasts etc etc.\n>\n>>C. Akgun\n>\n>Michalis Syrimis\n>\n\nIf this is what you understood from the paragraph above,\nyou better let your computer system administrator check\nthe character conversion tables in your system.  If yours are\nOK, I should inform mine 8-).\n\nC. Akgun\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2897, "properties": {"category": "comp.graphics", "text": "From: channui@austin.ibm.com (Christopher Chan-Nui)\nSubject: Re: Two pointing devices in one COM-port?\nReply-To: channui@austin.ibm.com\nOrganization: IBM Austin\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 22\n\nBob Davis (sonny@trantor.harris-atd.com) wrote:\n: In article <C4tKGM.1v6@unix.portal.com>, wil@shell.portal.com (Ville V Walveranta) writes:\n: |> \n: |>         Is there any way to connect two pointing devices to one serial\n: |>         port? I haven't tried this but I believe they would interfere\n: |>         with each other (?) even if only one at a time would be used.\n\n: \tJust get an A-B switch for RS232. Look in Computer Shopper.\n: They are available fairly cheap. They allow switching between two\n: serial devices on a single port.\n\nUnfortunately the poster wants to use an internal and an external modem so a\nswitch isn't going to help them.  If you aren't using your com ports for\nanything else, just define them on different com ports.  Define your internal\nmodem to be say, com1, and your external modem to be com3.  You really\nshouldn't have to worry about interrupt conflicts since you won't be using\nboth modems at the same time :).\n\n---\nChristopher Chan-Nui    | Investment in reliability will increase until it\nchannui@austin.ibm.com  | exceeds the probable cost of errors, or until someone\n#include <disclaimer.h> | insists on getting some useful work done.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2898, "properties": {"category": "talk.politics.guns", "text": "From: jbs@rti.rti.org\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Joe's Bar and Grill\nDistribution: na\nLines: 24\n\nIn article <strnlghtC5tr6D.n3n@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>\n>Though I agree this is not the place to discuss guns, I note in passing that\n>a number of gun apologists seem to have ignored the words \"well regulated\"\n>in their distorted interpretations of the Second Amendment.\n\nWhat interpretations?  Just read it as it's written.\n   \"A well-regulated militia, being necessary to the security of a free\nstate, the right of the people, to keep and bear arms, shall not be\ninfringed.\"\n\nWhere does it say \"The right of the people to be members of a militia shall\nnot be infringed\" or \"The right of the militia to keep and bear arms shall\nnot be infringed?\"  NOWHERE.\n\n\n\"Well-educated businessmen being necessary to the ability of the nation to\ncompete in the international marketplace, the right of the people to attend\nschools shall not be infringed.\"\n\nWould you \"interpret\" this to mean that only businessmen should have a\nprotected right to attend schools?  Why or why not?\n\n  -joe\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2899, "properties": {"category": "comp.graphics", "text": "From: mz@moscom.com (Matthew Zenkar)\nSubject: Re: CView answers\nOrganization: Moscom Corp., E. Rochester, NY\nLines: 15\nX-Newsreader: TIN [version 1.1 PL9]\n\nCyberspace Buddha (cb@wixer.bga.com) wrote:\n: renew@blade.stack.urc.tue.nl (Rene Walter) writes:\n: >over where it places its temp files: it just places them in its\n: >\"current directory\".\n\n: I have to beg to differ on this point, as the batch file I use\n: to launch cview cd's to the dir where cview resides and then\n: invokes it.  every time I crash cview, the 0-byte temp file\n: is found in the root dir of the drive cview is on.\n\nI posted this as well before the cview \"expert\".  Apparently, he thought he\nknew better.\n\nMatthew Zenkar\nmz@moscom.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2900, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: nmp@mfltd.co.uk (Nic Percival (x5336))\nSubject: Non-turbo speed\nReply-To: nmp@mfltd.co.uk\nOrganization: Micro Focus Ltd, Newbury, England\nLines: 18\n\n\nJust taken delivery of a 66MHz 486 DX2 machine, and very nice it is too.\nOne query - the landmark speed when turbo is on is 230 or something MHz\n- thats not the problem. The problem is the speed when turbo is off. Its\n7 MHz. The equivalent in car terms is having a nice Porsche with a button\nthat turns it into a skateboard.\n\nDoes anyone have a clue as to what determines the relative performance of\nturbo vs non-turbo?? I would like to set it to give a landmark speed of\nabout 30 or 40 MHz with turbo off.\n\nCheers,\n\n-- \n +-- Nic Percival ----------+- \"Well that was a piece of cake, eh K-9?\" -----+\n |   Micro Focus, Newbury.  |  \"Piece of cake master? Radial slice of baked  |\n |   (0635) 32646 Ext 5336. |   confection... - coefficient of relevance to  |\n +-- nmp@mfltd.co.uk -------+-  Key to Time: zero.\" - Dr. Who ---------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2901, "properties": {"category": "rec.sport.baseball", "text": "From: Eastgate@world.std.com (Mark Bernstein)\nSubject: Jewish Broadcasters (was Jewish Baseball Players?)\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 8\n\nFor that matter, how many Gentleman of The Press Box have been Jewish? The\nonly Jewish sportscaster that comes to mind is Steve Williams (?), who had\na Phillies show on KYW in Philadelphia in the 80s.\n-- \nMark Bernstein\nEastgate Systems, Inc.   134 Main Street   Watertown MA 02172 USA\nvoice: (800) 562-1638 in USA   +1(617) 924-9044\nEastgate@world.std.com    Compuserve: 76146,262    AppleLink:Eastgate \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.133+0000", "event": "documents", "entityId": 2902, "properties": {"category": "sci.crypt", "text": "From: denning@guvax.acc.georgetown.edu\nSubject: THE CLIPPER CHIP: A TECHNICAL SUMMARY\nDistribution: world\nOrganization: Georgetown University\nLines: 139\n\nThe following document summarizes the Clipper Chip, how it is used,\nhow programming of the chip is coupled to key generation and the\nescrow process, and how law enforcement decrypts communications.\nSince there has been some speculation on this news group about my\nown involvement in this project, I'd like to add that I was not in\nany way involved.  I found out about it when the FBI briefed me on\nThursday evening, April 15.  Since then I have spent considerable\ntime talking with the NSA and FBI to learn more about this, and I\nattended the NIST briefing at the Department of Commerce on April 16.  \nThe document below is the result of that effort. \n\nDorothy Denning\n---------------\n\n                     THE CLIPPER CHIP: A TECHNICAL SUMMARY\n\n                               Dorothy Denning\n\n                                April 19, 1993\n\n\nINTRODUCTION\n\nOn April 16, the President announced a new initiative that will bring\ntogether the Federal Government and industry in a voluntary program\nto provide secure communications while meeting the legitimate needs of\nlaw enforcement.  At the heart of the plan is a new tamper-proof encryption\nchip called the \"Clipper Chip\" together with a split-key approach to\nescrowing keys.  Two escrow agencies are used, and the key parts from\nboth are needed to reconstruct a key.\n\n\nCHIP STRUCTURE\n\nThe Clipper Chip contains a classified 64-bit block encryption\nalgorithm called \"Skipjack.\"  The algorithm uses 80 bit keys (compared\nwith 56 for the DES) and has 32 rounds of scrambling (compared with 16\nfor the DES).  It supports all 4 DES modes of operation.  Throughput is\n16 Mbits a second.\n\nEach chip includes the following components:\n\n   the Skipjack encryption algorithm\n   F, an 80-bit family key that is common to all chips\n   N, a 30-bit serial number\n   U, an 80-bit secret key that unlocks all messages encrypted with the chip\n\n\nENCRYPTING WITH THE CHIP\n\nTo see how the chip is used, imagine that it is embedded in the AT&T\ntelephone security device (as it will be).  Suppose I call someone and\nwe both have such a device.  After pushing a button to start a secure\nconversation, my security device will negotiate a session key K with\nthe device at the other end (in general, any method of key exchange can\nbe used).  The key K and message stream M (i.e., digitized voice) are then\nfed into the Clipper Chip to produce two values:\n\n   E[M; K], the encrypted message stream, and \n   E[E[K; U] + N; F], a law enforcement block.  \n\nThe law enforcement block thus contains the session key K encrypted\nunder the unit key U concatenated with the serial number N, all\nencrypted under the family key F.\n\n\nCHIP PROGRAMMING AND ESCROW\n\nAll Clipper Chips are programmed inside a SCIF (secure computer\ninformation facility), which is essentially a vault.  The SCIF contains\na laptop computer and equipment to program the chips.  About 300 chips\nare programmed during a single session.  The SCIF is located at\nMikotronx.\n\nAt the beginning of a session, a trusted agent from each of the two key\nescrow agencies enters the vault.  Agent 1 enters an 80-bit value S1\ninto the laptop and agent 2 enters an 80-bit value S2. These values\nserve as seeds to generate keys for a sequence of serial numbers.\n\nTo generate the unit key for a serial number N, the 30-bit value N is\nfirst padded with a fixed 34-bit block to produce a 64-bit block N1.\nS1 and S2 are then used as keys to triple-encrypt N1, producing a\n64-bit block R1:\n\n        R1 = E[D[E[N1; S1]; S2]; S1] .\n\nSimilarly, N is padded with two other 34-bit blocks to produce N2 and\nN3, and two additional 64-bit blocks R2 and R3 are computed:  \n\n        R2 = E[D[E[N2; S1]; S2]; S1] \n        R3 = E[D[E[N3; S1]; S2]; S1] .\n\nR1, R2, and R3 are then concatenated together, giving 192 bits. The\nfirst 80 bits are assigned to U1 and the second 80 bits to U2.  The\nrest are discarded.  The unit key U is the XOR of U1 and U2.  U1 and U2\nare the key parts that are separately escrowed with the two escrow\nagencies.\n\nAs a sequence of values for U1, U2, and U are generated, they are\nwritten onto three separate floppy disks.  The first disk contains a\nfile for each serial number that contains the corresponding key part\nU1.  The second disk is similar but contains the U2 values.  The third\ndisk contains the unit keys U.  Agent 1 takes the first disk and agent\n2 takes the second disk.  The third disk is used to program the chips.\nAfter the chips are programmed, all information is discarded from the\nvault and the agents leave.  The laptop may be destroyed for additional\nassurance that no information is left behind.\n \nThe protocol may be changed slightly so that four people are in the\nroom instead of two.  The first two would provide the seeds S1 and S2,\nand the second two (the escrow agents) would take the disks back to\nthe escrow agencies.\n\nThe escrow agencies have as yet to be determined, but they will not\nbe the NSA, CIA, FBI, or any other law enforcement agency.  One or\nboth may be independent from the government.\n\n\nLAW ENFORCEMENT USE\n\nWhen law enforcement has been authorized to tap an encrypted line, they\nwill first take the warrant to the service provider in order to get\naccess to the communications line.  Let us assume that the tap is in\nplace and that they have determined that the line is encrypted with\nClipper.  They will first decrypt the law enforcement block with the\nfamily key F.  This gives them E[K; U] + N.  They will then take a\nwarrant identifying the chip serial number N to each of the key escrow\nagents and get back U1 and U2.  U1 and U2 are XORed together to produce\nthe unit key U, and E[K; U] is decrypted to get the session key K.\nFinally the message stream is decrypted.  All this will be accomplished\nthrough a special black box decoder operated by the FBI.\n\n\nACKNOWLEDGMENT AND DISTRIBUTION NOTICE.  All information is based on\ninformation provided by NSA, NIST, and the FBI.  Permission to\ndistribute this document is granted.\n\n\n    \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2903, "properties": {"category": "comp.graphics", "text": "From: kruzifix@netcom.com (Living On The Edge......)\nSubject: IMAGINE for PC??\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 8\n\nIs Impulse shipping IMAGINE for the PC386/486?  How close is it to the\nAmiga's IMAGINE 2.0, in terms of features?\n\n=============================================================================\n  Roland Chia                   |    >>> Air-Cooled >>>                     \n  EMAIL:kruzifix@netcom.com     |             >>> Free-Falling >>>           \n  VOICE:(209)447-9403           |                      >>> Carbon Unit >>>  \n=============================================================================\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2904, "properties": {"category": "sci.electronics", "text": "From: iisakkil@gamma.hut.fi (Mika Iisakkila)\nSubject: Re: what to do with old 256k SIMMs?\nIn-Reply-To: rubin@cis.ohio-state.edu's message of 17 Apr 1993 14:05:06 -0400\nNntp-Posting-Host: gamma.hut.fi\nOrganization: Helsinki University of Technology, Finland\n\t<1qpgsiINN31p@diplodocus.cis.ohio-state.edu>\nLines: 15\n\nrubin@cis.ohio-state.edu (Daniel J Rubin) writes:\n>How hard would it be to somehow interface them to some of the popular \n>Motorola microcontrollers.\n\nNot hard, you can do the refreshing and access cycles by software, but\nthis hogs most of the available CPU cycles on a low-end controller.\nI've seen some application note from Philips that used one of their\n8051 derivatives as a printer buffer, with up to 1MB of dynamic ram\nthat was accessed and refreshed with software bit-banging.\n\nAnother alternative would be to use one of those nice DRAM controller\nchips that \"create static RAM appearance\" and all that, but they may\nbe too expensive to make it worthwhile.\n--\nSegmented Memory Helps Structure Software\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2905, "properties": {"category": "rec.autos", "text": "From: colombo@bronco.fnal.gov (Rick 'Open VMS 4ever' Colombo)\nSubject: Re: Do trains/busses have radar?\nNntp-Posting-Host: bronco.fnal.gov\nOrganization: Fermilab Computing Division\nLines: 27\n\nIn article <C5FqFy.Fpq@usenet.ucs.indiana.edu>, mliggett@silver.ucs.indiana.edu (matthew liggett) writes:\n> In <1993Apr13.111652@usho72.hou281.chevron.com> hhtra@usho72.hou281.chevron.com (T.M.Haddock) writes:\n> \n> \n>> While taking an extended Easter vacation, I was going north on I-45\n>> somewhere between Centerville, TX and Dallas, TX and I came upon a \n>> train parked on a trestle with its locomotive sitting directly over\n>> the northbound lanes.  There appeared to be movement within the cab \n>> and out of curiosity I slowed to 85 to get a better look.  Just as I\n>> passed from underneath the trestle, my radar detector went into full \n>> alert - all lights lit and all chirps, beeps, and buzzes going strong.\n>> I thought I had been nailed good but no police materialized.\n> \n>> Could this have been caused by the train's radio or what?\n> \n>\n\nI don't know about trains, but I've saw a sign on the back of a\nGreyhound bus that warns you that your radar detector may be set off.\nIt doesn't explain why, but it does set off my radar detector.\n\n___________________________________________________________________________\n*****  *   *  From the e-net desk of: Rick Colombo CD/DCD/DSG    *    *\n*      **  *  Fermi Nat'l Acc'l Lab   708-840-8225 Fermilab     * *   *\n***    * * *  P.O. Box 500   MS 369   Feynman Computer Center  *****  *\n*      *  **  Batavia, Ill. USA 60510 Colombo@fnal.fnal.gov    *   *  *****\n*    Of course I speak for: Fermilab, Congress and the President... NOT!!!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2906, "properties": {"category": "rec.motorcycles", "text": "From: C70A000 <C70A@UNB.CA>\nSubject: RE: Recommendation for a front tire.\nLines: 15\nOrganization: The University of New Brunswick\n\nIn article <1qfkqhINN1s7@rodan.UU.NET> smm@rodan.UU.NET (Steve Mansfield) writes:\n>Yes, my front tire is all but dead.  It has minimal tread left, so it's\n>time for a new one.  Any recommendations on a good tire in front?  I'm\n>riding on an almost brand new ME55A in back.\n\n Stick an ME33 on the front.  I've got a Laser on the front of my GPz,\nand it has been a fantastic tire.  Best front tire I've ever had.\n\n +------------------------------------------------------------------+\n |      Graeme Weir   DoD #9191   Fido 1:255/14.4  C70A@UNB.CA      |\n |       University of New Brunswick, Fredericton, NB, Canada       |\n |             Damn the box jockeys!  FULL SPEED AHEAD!             |\n |                  Live to Flame -- Flame to Live                  |\n |      '84 GPz 1100, '76 KZ900, '76 KZ750, '91 Trek 8000 MTB       |\n +------------------------------------------------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2907, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: alee@mnemosyne.cs.du.edu (Alec Lee)\nSubject: Windows Speaker Sound Driver\nSummary: Where can I ftp it?\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 7\n\nIs there an ftp site where I can get the MS speaker sound driver?  There's\na \"sound.exe\" file that claims to be the driver but I'm suspicious since\nit's not a .drv file.  \n\nThanks\n\nAlec Lee\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2908, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: How many read sci.space?\nOrganization: Express Access Online Communications USA\nLines: 52\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr16.014506.27923@sol.UVic.CA> rborden@ugly.UVic.CA (Ross  Borden) writes:\n|In article <1qjs1j$306@access.digex.net> prb@access.digex.com (Pat) writes:\n|>\n|>\n|>In the old days,  their used to be Arbitron stats'  that analyzed\n|>the readership and posting volumes  by group  and user.\n|>\n|>They were available from UUNET.   That's how you check the\n|>readership of Sci.space,  not some stupid  unscientific attempt\n|>to  flood the newsgroup.\n|>\n|>I have abetter idea.  WHy don't we all reply directly to the\n|>origanator  of this post,  and tell him we read sci.space ;-)\n|>\n|>\n|>pat\n|\n|\tSigh.\n|\tI try to make a little joke, I try to inject some humour here\n|and what happens?  In the immortal words of Foghorn Leghorn:\n|\n|\t\"I say, that was a _joke_, son.\"\n|\n|\tI thought that the bit about McElwaine, not to mention the two\n|smileys, would indicate to even the most humour impaired that I was\n|JOKING.\n>\tSigh.\n>\t(And will everyone who pat's suggestion (thanks bunches, pat)\n>*please* stop sending me email.)\n>\n>-------------------------------------------------------------------------------\n>|  I shot a man just to watch him die;    |     Ross Borden                   |\n>|  I'm going to Disneyland!               |     rborden@ra.uvic.ca            |\n>-------------------------------------------------------------------------------\n\n\nNow, I had put a Wink at the end of my suggestion indicating it was\nintensely sarcastic.  I can't help it if everyone got all serious.\n\nRoss.\n\n\tI never saw your original posting.  it dropped on the floor\nsomewhere.  I just saw the trickle down, thought it was intensely\nstupid,  not knowing anything about the joke, mentioned arbitron\nand left it with an equally stupid joke.  Bill in his ever increasing\ndevotion to thoroughness dug up  several  arbitron stats.\n\nI myself think the arbitron stats are  severely methodologically impaired,\nbut are a good measure of proportion.  I don't think anyone\nknows how many people read news anymore.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2909, "properties": {"category": "sci.electronics", "text": "From: kng@pt.com (Ken Gravenstede)\nSubject: Decent, CHEAP 20+MHZ Scopes?\nOrganization: Performance Technologies, Incorporated\nLines: 12\n\nAny info on modern 20MHZ or better dual trace scopes would be appreciated.\nShould I buy a used one or a new one?  And where?\n\nPlease E-Mail.\n\nThanks in advance.\n\nKen\n-- \n__\nKen Gravenstede, Performance Technologies Incorporated\tkng@pt.com\n315 Science Parkway, Rochester, New York 14620            uupsi!ptsys1!kng\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2910, "properties": {"category": "soc.religion.christian", "text": "From: stovall@ficus.cs.ucla.edu (Steven Stovall)\nSubject: Re: Rebuilding the Temple (was Re: Anybody out there?)\nOrganization: UCLA, Computer Science Department\nLines: 25\n\ntcsteven@iaserv.b1.ingr.com (Todd Stevens) writes:\n\n>Chuck Petch writes:\n\n>>Now it appears that nothing stands in the way of rebuilding and resuming\n>>sacrifices, as the Scriptures indicate will happen in the last days.\n>>Although the Israeli government will give the permission to start, I think\n>>it is the hand of God holding the project until He is ready to let it\n>>happen. Brothers and sisters, the time is at hand. Our redemption is\n>>drawing near. Look up!\n\n>How is a scriptural Levitical priesthood resumed?  Are there any Jews who \n>can legitimately prove their Levite bloodline?\n\nIf I am not mistaken, the Jewish family names Cohen, Kahn, etc.\nare considered to be legitimate indicators of descent from Aaron.\nThe family names Levi, Levene, etc. are considered to be legitimate\nindicators of descent from Levi. The main legal issue is the purification\nof the priesthood, which is supposed to involve finding the ashes of\nof the red heifer last used for this purpose 2000 years ago.\n_______________________________________________________________________________\n\nsteven stovall\nstovall@exeter.cs.ucla.edu\n(310) 825-7307\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2911, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: catone@compstat.wharton.upenn.edu (Tony Catone)\nSubject: Re: 80486DX-50 vs 80486DX2-50\nOrganization: University of Pennsylvania\nLines: 17\nNntp-Posting-Host: compstat.wharton.upenn.edu\nIn-reply-to: hamilton@golem.wcc.govt.nz's message of 13 Apr 93 01:34:36 GMT\n\nIn article <1qd5bcINNmep@golem.wcc.govt.nz> hamilton@golem.wcc.govt.nz (Michael Hamilton) writes:\n\n   Do you really need to switch to a DX2/66 instead of a DX50?  As I\n   understand it, DX50's can have local bus devices (on the mother-board?)\n   but not local bus slots.  And according to what I been told, many\n   systems go beyond the VESA local bus standard in order to provide DX50\n   systems with a local bus slot capability.  I have definitly seen a\n   mother board with 2 local bus slots which claimed to be able to\n   support any CPU, including the DX2/66 and DX50.  Can someone throw\n   some more informed light on this issue?\n\nYou will need to check with peripheral makers to see if their boards\nwill work at 50 MHz.  Some will with some motherboards.\n\n\n- Tony\n  catone@compstat.wharton.upenn.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2912, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: QUESTION: 1024 x 768 on Quadra 800\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 15\n\nlecates@bach.udel.edu (Roy LeCates) writes:\n\n>In article <1993Apr5.015844.9491@pcnntp.apple.com> Dale_Adams@gateway.qm.apple.com (Dale Adams) writes:\n>>> Does anyone have information on acheiving 1024 x 768 resolution on a Q800\n>>> using interanl video? Is this even possible? \n>>\n>>It's most certainly possible.\n\n>Is it possible to use this resolution on the Apple 16\" monitor?\n>If so, I could probably rig a connector with the proper pins.\n\n    Nope. The Apple 16\" monitor does not support multiple resolutions.\nIt is not a multi-synching monitor.\n\n-Hades\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2913, "properties": {"category": "comp.sys.mac.hardware", "text": "From: pmontan@nswc-wo.navy.mil (Paul Montanaro)\nSubject: Re: TCP/IP routing LocalTalk-Ethernet.\nOrganization: NSWC\nLines: 32\n\nIn article <1qpn8uINNjs8@stimpy.css.itd.umich.edu>,\nbchuang@css.itd.umich.edu (Ben Chuang) wrote:\n> \n> Here is the story:\n> I have a network with 4 Macs on Localtalk. One of them has an\n> Ethernet Card, and is currently connected to a NeXT (don't laugh\n> I got it for the price of a Mac IIsi). The NeXT is connected\n> to the internet over SLIP running on a 9600 baud modem.\n> \n> Currently, we can telnet from the Mac w/ Ethernet to the NeXT,\n> and then telnet out again to the rest of the world.\n> \n> What we want to know is if there is some sort of hardware that\n> will route telnet sessions from the Localtalk Macs to the NeXT\n> via the Ethernet Mac. From what we have heard, AIR doesn't do\n> the trick.\n> \n> Software solutions would be good too, but my impression is that\n> there aren't going to be any.\n> \n> Our immediate interest is to be able to get to the NeXT and telnet\n> out again. The SLIP connection doesn't allow us to assign IP numbers\n> to machines, so everyone shares that 1 number...oh well...\n> \n\n  What you need is a hardware router such as EtherRoute/TCP made by\nCompatable Systems ($1400).  This will allow you to connect your Localtalk\nnetwork (4 Macs) to your Ethernet network (NeXT and Ethernet Mac).  It will\nroute TCP/IP protocol between the two networks.  Software routers are also\navailable for less money, but I'm not sure if they work with TCP/IP.\n\nPaul\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2914, "properties": {"category": "talk.politics.mideast", "text": "From: mrizvi@gfx.engga.uwo.ca (Mr. Mubashir Rizvi)\nSubject: Re: No humanity in Bosnia\nOrganization: Univ. Western Ontario, London Ont. CA\nKeywords: Barbarism\nNntp-Posting-Host: cad8.gfx.engga.uwo.ca\nLines: 11\n\nIt is very encouraging that a number of people took so interest in my posting.I recieved a couple of letters too,some has debated the statement that events in Bosnia are unprecedented in the history of the modern world.Those who contest this statement present the figures of the World War II.However we must keep in mind that it was a World War and no country had the POWER to stop it,today is the matter not of the POWER but of the WILL.It\nseems to be that what we lack is the will.\nSecond point of difference (which makes it different from the holocast(sp?) ) is that at that time international community\ndidnot have enough muscle to prevent the unfortunate event,\ntoday inspite of all the might,the international community is not just standing neutral but has placed an arms embargo which\nis to the obvious disadvantage of the weeker side and therefore to the advantage of the bully.Hence indirecltly and possibly\nunintentionally, mankind has sided with the killers.And this,I think is unprecedented in the history of the modern world.\n\nM.Rizvi\n   \n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2915, "properties": {"category": "comp.graphics", "text": "Subject: Marching Cubs\nFrom: abild@bert.cs.byu.edu\nDistribution: world\nOrganization: BYU\nKeywords: Cube,Program,C\nNntp-Posting-Host: bigler-quadra.byu.edu\nLines: 24\n\n Hello,\n\nHello,\n\n     I was wondering if anyone knew of a PC or MAC\nimplementation of the marching cubes algorithm that will output\nthe individual faces.  If there is no such application, might there\nbe some C source code that I could modify to implement the\nalgorithm and get to the individual faces.\n\nThanks in advance\nSincerly\n\nTracy\n\n+------------------------------------+-------------------------------+\n| Tracy J. Abildskov                 | Phone:  (801) 378-3407        |\n|                                    | FAX:    (801) 378-7862        |\n| Address : Brigham Young University |                               |\n|           Department of Psychology | E-mail: abild@bert.cs.byu.edu |\n|           Provo, UT 84602          |                               |\n|           USA                      |                               |\n+------------------------------------+-------------------------------+\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2916, "properties": {"category": "comp.windows.x", "text": "From: brown@ftms.UUCP (Vidiot)\nSubject: Re: problem with xvertext package\nReply-To: brown@ftms.UUCP (Vidiot)\nOrganization: Vidiot's Other Hangout\nLines: 22\n\nIn article <1993Mar31.181357.28381@sierra.com> dkarr@sierra.com (David Karr) writes:\n<I might have a need in the future to display rotated text.  I noticed the\n<\"xvertext\" package on the net.  It looks very good, but it has one slight\n<problem.  The API to it assumes you have a font name, not an already loaded\n<font.  It shouldn't be too difficult to split up the function into two\n<interface routines, one with a font name, and one with an XFontStruct, but\n<I thought I would ask the author (Alan Richardson\n<(mppa3@uk.ac.sussex.syma)) first in case he was planning this already.\n<Unfortunately, his email address bounced.  Does Alan R. or the current\n<maintainer of \"xvertext\" see this?\n\nThe e-mail address you mentioned above is for use with the U.K.  As you know,\nthe Brits do everything backwards :-)  So, the real address from the states is:\n\n\tmppa3@syma.sussex.ac.uk\n\nGive it a try.\n-- \nharvard\\\n  ucbvax!uwvax!astroatc!ftms!brown  or  uu2.psi.com!ftms!brown\nrutgers/\nINTERNET: brown@wi.extrel.com  or  ftms!brown%astroatc.UUCP@cs.wisc.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2917, "properties": {"category": "comp.graphics", "text": "From: h8902939@hkuxa.hku.hk (Abel)\nSubject: Developable Surface\nNntp-Posting-Host: hkuxa.hku.hk\nOrganization: The University of Hong Kong\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 9\n\nHi netters,\n\n\tI am currently doing some investigations on \"Developable Surface\".\nCan anyone familiar with this topic give me some information or sources\nwhich can allow me to find some infomation of developable surface?\n\tThanks for your help!\n\nAbel\nh8902939@hkuxa.hku.hk\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2918, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dcoleman@utxvms.cc.utexas.edu (Daniel M. Coleman)\nSubject: Re: MathCad 4.0 swap file\nLines: 28\nNntp-Posting-Host: blonde.cc.utexas.edu\nOrganization: The University of Texas at Austin\nLines: 28\n\nIn article <1993Apr20.175608.23949@ncar.ucar.edu>, baseball@catch-the-fever.scd.ucar.edu (Gregg Walters) writes:\n> I have 16MB of memory on my 386SX.  I have been running Windows\n> without a swap file for several months.  Will Mathcad 4.0 be\n> happy with this, or insist on a swap file?\n\nI just got Mathcad 4.0, and the manual is not clear on the matter.  On page 8:\n\n\t:\n\t:\n\n* At least 4 megabytes of memory.  All memory about 640K should be configured\n  as XMS.\n\n\t:\n\t:\n* At least 8 megabytes of virtual memory....\n\nCommon sense suggests that you should be able to run it (4+8=12 < 16) but the\nnew Mathcad is kinda kooky, and thus is not subject to the laws of common\nsense...\n\nDan\n\n-- \nDaniel Matthew Coleman\t\t   |   Internet: dcoleman@utxvms.cc.utexas.edu\n-----------------------------------+---------- : dcoleman@ccwf.cc.utexas.edu\nThe University of Texas at Austin  |\t DECnet: UTXVMS::DCOLEMAN\nElectrical/Computer Engineering\t   |\t BITNET: DCOLEMAN@UTXVMS [.BITNET]\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2919, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Death and Taxes (was Why not give $1 billion to...\nArticle-I.D.: aurora.1993Apr23.000021.1\nOrganization: University of Alaska Fairbanks\nLines: 55\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <1993Apr22.162501.747@indyvax.iupui.edu>, tffreeba@indyvax.iupui.edu writes:\n> In my first posting on this subject I threw out an idea of how to fund\n> such a contest without delving to deep into the budget.  I mentioned\n> granting mineral rights to the winner (my actual wording was, \"mining\n> rights.)  Somebody pointed out, quite correctly, that such rights are\n> not anybody's to grant (although I imagine it would be a fait accompli\n> situation for the winner.)  So how about this?  Give the winning group\n> (I can't see one company or corp doing it) a 10, 20, or 50 year\n> moratorium on taxes.\n> \n> Tom Freebairn \n\n\nWho says there is no mineral rights to be given? Who says? The UN or the US\nGovernment? \nMajor question is if you decide to mine the moon or Mars, who will stop you?\nThe UN can't other than legal tom foolerie.. Can the truly inforce it?\n\nIf you go to the moon as declare that you are now a soverign nation, who will\nstop you from doing it. Maybe not acknowledge you? \n\nWhy can't a small company or corp or organization go an explore the great\nbeyond of space? what right does earth have to say what is legal and what is\nnot.. Maybe I am a few years ahead on this.. It is liek the old Catholic Church \nstating which was Portugals and what was Spains, and along came the Reformation\nand made it all null and void.. \n\nWhat can happen is to find a nation which is acknowledged, and offer your\nservices as a space miner and then go mine the asteroids/mars/moon or what\never.. As long as yur sponsor does not get in trouble..\nBasically find a country who wants to go into space, but can't for soem reason\nor another, but who will give you a \"home\".. Such as Saudia Arabia or\nwhatever..\nThere are nations in the World who are not part of the UN, got to them and\noffer your services and such.. I know that sound crazy, but. is it..\nAlso once you have the means to mine the moon (or whatever) then just do it.\nThe UN if done right can be made to be so busy with something else, they will\nnot care.. \nIf your worried about the US, do the same thing..\n\nWhy be limited by the short sighted people of earth.. After all they have many\nother things to worry about that if someone is mining the Moon or MArs or what\never..\nBasically what I am saying is where is that drive of yeasteryears to go a\nlittle bit farther out, to do jus ta  little bit more, and to tell the crown to\npiss off.. If my ancestors thought the way many today think, Id have been born\nin Central Europe just north of the Black Sea..\n\nI just read a good book, \"Tower of the Gods\" Interesting..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\n\n \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2920, "properties": {"category": "rec.motorcycles", "text": "From: craig@cellar.org (Saint Craig)\nSubject: Re: Changing sprocket ratios (79 Honda CB750)\nOrganization: The Cellar BBS and public access system\nLines: 24\n\ncbrooks@ms.uky.edu (Clayton Brooks) writes:\n\n> Do any Honda gurus know if I can replace the \n> the front sprocket on my 1979 Honda CB750K with a slightly larger one?\n> (I see this as being preferable to reducing the size of the rear one)\n> \n> Just wanting ride at a more relaxed RPM.\n\n\tIt can be done, contact Chaparell cycle supply, they ought to have\nthe sprocket you need/want for cheap, well much cheaper than your average\ndealership. Hey they even had sprockets for my VF1000R which is hard to find\naccesssories for. \n\n\t\t\t\t\t-Craig. \n\n\n----------------------------------------------------------------------------\n| VF1000R Intecptor Pilot      | craig@cellar.org | The Institute          |\n| DoD #13013                   |------------------| (215)-356-2543         |\n| KotK (Keeper of the Keepers) |                  | 3/12/24/9600 Bauds     |\n----------------------------------------------------------------------------\n    /\\     FUSCHAL: THE PROMISED LAND. Where those who have faith shall wear\n>==/  \\==> hats of great majesty, yea, though they be made of cardboard and\n  /____\\   have humourous arrows through them. (Red Dwarf)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2921, "properties": {"category": "rec.autos", "text": "From: jimf@centerline.com (Jim Frost)\nSubject: Re: Dumbest automotive concepts of all time\nArticle-I.D.: armory.1prve9$1aa\nOrganization: CenterLine Software, Inc.\nLines: 14\nNNTP-Posting-Host: 140.239.3.202\n\ndunnjj@ucsu.Colorado.EDU (DUNN  JONATHAN JAMES) writes:\n>ak296@yfn.ysu.edu (John R. Daker) writes:\n>>Cup holders (driving is an importantant enough undertaking)\n\n>This is a good idea - so you can carry your (non-alcoholic) drinks without\n>spilling or having someone hold on to them.\n\nI agree.  Six hour long stretches behind the wheel really make me\nthirsty, especially for something with caffeine.  I consider it a\nfailing of my car that it has no cup holder nor anywhere to put a cup\nholder.\n\njim frost\njimf@centerline.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2922, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Pleasant Yankee Surprises\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 33\n\nIn article <1993Apr15.175302.25180@sarah.albany.edu> js8484@albnyvms.bitnet writes:\n>In article <120399@netnews.upenn.edu>, sepinwal@mail.sas.upenn.edu (Alan Sepinwall) writes:\n>>\n>>\t1)Spike Owen. Sure, he's hitting like crazy, but the guy *cannot*\n>>\t  field to save his life! And they said he was brought in to\n>>\t  provide defense? Velarde, Stankiewicz, and even Silvestri\n>>\t  are better defensively than Owen.\n>\n>Remember - it's still early. Look for his offense to tail off, and\n>his defense to improve (hopefully). He has that rep because I heard\n>that either last year, or over the last 5 years, or something like\n>that - he has the third highest fielding percentage among major league\n>shortstops - behind C.R. and Tony (I'm not gonna help this sorry Mets\n>team at all) Fernandez. I do agree though that he has not looked all\n>that impressive in the field thus far.\n\nOwen only has one error so far, I believe.  That seriously\nunderrepresents the harm he has done in the field.\n\nOwen will cleanly play any ball he reaches.  He will have a fine\nfielding percentage, like always.  The problem is that he doesn't\nreach anything that isn't hit straight at him!\n\nThis wouldn't be quite as obvious a problem if he were playing next to\nKelly Gruber or Robin Ventura.  But the third baseman for the Yankees\nis Wade Boggs (who should have moved across the diamond *last* year)!\n\nI've only seen one game, Abbott's first start, but there were three\nballs hit to the left side which would have been stopped by quality\ndefensive players.  Instead they were charged as hits against Abbott.\n\nCheers,\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2923, "properties": {"category": "misc.forsale", "text": "From: caldwell@epcot.spdc.ti.com (Wayne Caldwell)\nSubject: Printer and game for sale\nNntp-Posting-Host: epcot\nOrganization: TI Semiconductor Process and Design Center\nLines: 14\n\nI have the following for sale:\n\nTI 855 Printer in excellect working condition\n $100 + postage\n\nGame = The Lost Files of Sherlock Holmes \n  Original box and contents used 1 time and\n  unregistered  $30 + postage\n\nIf iterested EMAIL me at:\n\nEMAIL = caldwell@epcot.spdc.ti.com\n\nand I will hold it for you.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2924, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Israel's Expansion II\nOrganization: Division of Applied Sciences, Harvard University\nLines: 35\n\nOrganization: Aiken Computation Lab, Harvard University\nKeywords: \n\nIn article <93111.225707PP3903A@auvm.american.edu> Paul H. Pimentel <PP3903A@auvm.american.edu> writes:\n>What gives Isreal the right to keep Jeruseleum?  It is the home of\n>the muslim a s well as jewish religion, among others.\n\n\tIsrael has a right to keep Jerusalem for many reasons.  They\ninclude the fact that the majority of the citizens are Israeli, the\nfact that Israel maintains religious freedom for all people, and the\nhistorical connection of Judaism to Jerusalem.\n\n\tWhen Jerusalem was devided by a Jordanian invasion in 1948,\nthe cease fire agreement included the right of individuals to visit\nreligious shrines.  This cease fire agreement was violated by Jordan,\nwho did not allow Jews to visit holy sites under their control.  The\nJordanians also bulldozed every synagoge in the city.  They turned a\nJewish cemetary into a hotel, and used the gravestones in their\nlatrines.\n\n\tIsrael has allowed individuals of all religions into\nJerusalem, protected holy sites, and demonstrated its fitness to\ncontrol the city.\n\n\tAlso, I should point out that Islam is not centered in\nJerusalem, but has holy sites there.  The home of Islam is Mecca,\nwhere all Muslims should make a pilgramage (the hajj).  Unlike Israeli\nJerusalem, Jews and Christians are not allowed in Saudi Mecca.\n\nAdam\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2925, "properties": {"category": "comp.graphics", "text": "From: peterbak@microsoft.com (Peter Bako)\nSubject: JPEG file format?\nOrganization: Microsoft Corp.\nLines: 11\n\n\nWhere could I find a description of the JPG file format?  Specifically\nI need to know where in a JPG file I can find the height and width of \nthe image, and perhaps even the number of colors being used.\n\nAny suggestions?\n\nPeter\n\n-- \n(*)-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\\/-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+(*)\n(   UUCP:         peterbak@microsoft  ||   Is this all that I am?  Is there   )\n(   CompuServe:   71170,1426          ||   nothing more?    - V'ger           )\n(*)-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-/\\-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+(*)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2926, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Stratus Computer, Inc.\nLines: 16\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <C5sv88.HJy@news.cso.uiuc.edu>, irvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n\n> >> As someone else has pointed out, why would the stove be in use on a warm day  \n> >> in Texas. \n\n> >Do YOU eat all your food cold?\n\n> Ever hear of electric ovens or microwaves?  Very popular.\n> Electric stoves outside metro-areas especially.\n\nAnd they work especially well when the Feds have cut off your utilities.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.134+0000", "event": "documents", "entityId": 2927, "properties": {"category": "soc.religion.christian", "text": "From: ide!twelker@uunet.uu.net (Steve Twelker)\nSubject: Re: The arrogance of Christians\nOrganization: Interactive Development Environmenmts, SF\nLines: 63\n\n>\tWhy do we follow God so blindly?  Have you ever asked a\n>physically blind person why he or she follows a seeing eye dog?\n>The answer is quite simple--the dog can see, and the blind person\n>cannot.\n...\n>\tOf course, you may ask, if I cannot trust my own senses,\n>how do I know whether what I see and hear about God is truth or\n>a lie.  That is why we need faith to be saved.  We must force\n>ourselves to believe that God knows the truth, and loves us\n>enough to share it with us, even when it defies what we think\n>we know.  Why would He have created us if He did not love us \n>enough to help us through this world?\n\n\nSeems to me if you learned to differentiate between illusion and\nreality on your own you wouldn't need to rely on doctrines that\nneed to be updated.  My experience of Christianity (25+ years) is\nthat most Christians seek answers from clergymen who have little\nor no direct experience of spiritual matters, and that most of\nthese questions can be answered by simple introspection.  Most\npeople suspect that they cannot trust their senses, but few take\nthe next step to figure out that they can trust themselves.  Not to\nget too esoteric, but it seems that most religions, Christianity\nincluded, are founded by particularly intuitive people who understand\nthis.\n\n(stuff deleted)\n\n>\tAs for you, no one can \"convert\" you.  You must\n>choose to follow God of your own will, if you are ever to\n>follow Him.  All we as Christians wish to do is share with\n>you the love we have received from God.  If you reject that,\n>we have to accept your decision, although we always keep\n>the offer open to you.  If you really want to find out\n>why we believe what we believe, I can only suggest you try\n>praying for faith, reading the Bible, and asking Christians\n>about their experiences personally....\n\nAnd what if the original poster, Pixie, is never \"converted?\"\nDoes it make sense that she (or I, or the majority of humanity\nfor that matter) would go to hell for eternity, as many \nChristians believe?  It makes more sense to me that rather\nthan be converted to a centuries-old doctrine that holds no\nlife for her, that she simply continue to decide for herself\nwhat is best.  \n\n--------------------------------------------\n\n[You may be right about Christians relying on clergy, but I have some\nreason to hope you're not.  Protestants emphasize conversion,\nexperience of the Holy Spirit, and use of the Bible.  This is intended\nto make sure that Christians have religious experience of their own,\nand that they have some basis on which to judge claims of clergy and\nother Christians.  I can't speak for Catholics and Orthodox, but I\nbelieve they also attempt to avoid having members who simply repeat\nwhat they are told.  I admit that this isn't always successful -- we\ncertainly see young people join our church because at that age parents\nexpect it.  But most of our members do seem quite able and willing to\nmake judgements for themselves, and have a commitment that comes out\nof their own experience.  Unfortunately, it's the nature of Usenet\nthat doctrinal disagreements get emphasized, so it looks like we spend\nmost of our time dealing with doctrine.  That's certainly not my\nexperience of the way Christians really live.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2928, "properties": {"category": "rec.autos", "text": "From: lofaso@tsd.arlut.utexas.edu (Bernie Lofaso)\nSubject: Re: Fast idle on 88 Ford Ranger\nNntp-Posting-Host: zruty\nOrganization: Applied Research Labs, University of Texas at Austin\nLines: 22\n\nljbartel@naomi.b23b.ingr.com (Les Bartel) writes:\n\n>It did it again.  This morning, my 88 Ford Ranger was idling at 10,000 RPM.\n>Ok, so I exaggerated a little, but it was idling very fast.  It has a 2\n>liter carburated engine in it, and no blipping of the throttle would\n>cause the idle to drop back to normal (I don't think the linkage is stuck).\n>What can I do to fix this problem?  This has been a problem from time to\n>time, but has straightened itself out - until now.  I don't have a tach,\n>but by gauging by the sound of the engine, it is idling about twice as fast\n>as it should be.  This is down from what it was idling at when I pulled up\n>at a stop light.\n\nSometimes a bad choke pull-off diaphram will cause a car to fast idle. The\npull-off, which is vacuum actuated, provides a necessary pull in non-cold\nweather conditions to get the idle off the the fast idle cam. Locate the\nfast idle cam on your vehicle and see if you can rotate it to produce a\nnormal idle. If so, locate the diaphram and test it. If you can't apply\nsuction (via a good piece of rubber vacuum hose) with your mouth that will\ncause the diaphram to retract, then it's bad and should be replaced.\n\nBernie Lofaso\nApplied Research Labs\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2929, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: luoma@binah.cc.brandeis.edu\nSubject: (Q) SCSI&IDE (i.e. 2 or more hard drives)\nReply-To: luoma@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 20\n\nPLEASE: response directly to me (luoma@binah.cc.brandeis.edu)\n        by email.  IF there are a sufficient number of interesting\n        responses, I will post a summary (on April 24 or 25).\n\nI have waded through the mass of SCSI-IDE posting, but\nI missed any answers to a question posted early on --\n\nHas anyone (successfully) put both SCSI and IDE hard drives\non the same system?\n\nI am particularly interested in having the SCSI as the _boot_ drive.\n\nFor those who have managed this feat, I would appreciate\na bit more information, such as what drives, which SCSI controller,\nand (if possible) what motherboard & BIOS\n(plus any other relevant info.).\n\nThanks in advance,\nRobert Luoma      (luoma@binah.cc.brandeis)\n   --> all flames will be stored on my WORN drive <--\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2930, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Kol Israel Broacasts\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 9\n\nIn article <1993Apr16.174056.13368@jarvis.csri.toronto.edu> gfeygin@unicorn.eecg.toronto.edu (Gennady Feygin) writes:\n>Does anyone have a schedule of Kol Israel broadcasts in different\n>languages that could be posted or e-mailed to me. Your\n>assistance would be greatly appreciated\n>\n>GF\n\n\nTry thr rec.radio.shortwave newsgroup.\u0018\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2931, "properties": {"category": "comp.graphics", "text": "From: clldomps@cs.ruu.nl (Louis van Dompselaar)\nSubject: Re: images of earth\nOrganization: Utrecht University, Dept. of Computer Science\nLines: 17\n\nIn <C5q0HK.KoD@hawnews.watson.ibm.com> ricky@watson.ibm.com (Rick Turner) writes:\n\n>Look in the /pub/SPACE directory on ames.arc.nasa.gov - there are a number\n>of earth images there. You may have to hunt around the subdirectories as\n>things tend to be filed under the mission (ie, \"APOLLO\") rather than under\t\n>the image subject.\t\n>\nFor those of you who don't need 24 bit, I got a 32 colour Amiga IFF\nof a cloudless Earth (scanned). Looks okay when mapped on a sphere.\nE-mail me and I'll send it you...\n\nLouis\n\n-- \nI'm hanging on your words, Living on your breath, Feeling with your skin,\nWill I always be here?  -- In Your Room [ DM ]\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2932, "properties": {"category": "sci.med", "text": "From: leisner@wrc.xerox.com (Marty Leisner 71348 )\nSubject: Intravenous antibiotics\nReply-To: leisner@eso.mc.xerox.com\nOrganization: Xerox\nX-Newsreader: TIN [version 1.1 PL9]\n\nI recently had a case of shingles and my doctors wanted to give me\nintravenous Acyclovir.\n\nIt was a pain finding IV sites in my arms...can I have some facts about\nhow advantageous it is to give intravenous antibiotics rather than oral?\n\nmarty\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2933, "properties": {"category": "sci.med", "text": "From: sbrun@oregon.uoregon.edu (Sarah Anne Brundage)\nSubject: Re: Krillean Photography\nArticle-I.D.: oregon.21APR199316170714\nDistribution: world\nOrganization: University of Oregon\nLines: 14\nNNTP-Posting-Host: oregon.uoregon.edu\nNews-Software: VAX/VMS VNEWS 1.41\n\n>I did a science project on Kirlian photography when I was in high school.\n>I was able to obtain wonderful auras from rocks and pebbles and the like by\n>first dunking them in water.\n> \n I know this is a little weird, but I know that World magazine (you know,\nNational Geo. for children) did a very simple and concise article on Kirlian\nphotography.  They had some neat pictures, too.  A friend of mine's mother had\na book on Kirlian photography, only it's photographs took a radiologist to \ninterpret.  They (World magazine) warned us all that it was very dangerous,\nprobably to stop curious children from experimenting with it.  Mind you, this\nwas 10 years ago, at least.  (And boy, does that say something about my age)\n\nSarah Brundage\nsbrun@oregon.uoregon.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2934, "properties": {"category": "rec.motorcycles", "text": "From: manes@magpie.linknet.com (Steve Manes)\nSubject: 1988 BMW K75S For Sale\nOrganization: Manes and Associates, NYC\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 10\n\n3500 miles, black leather tank bra, tank bag, Corbin seat, Metzler 'B'\ntires.  Garaged and pampered.  I can't afford to continue paying NYC garage\nfees for two bikes so one of 'em has to go.\n\nBest offer above $4500 takes it.\n\n-- \nStephen Manes\t\t\t\t\t   manes@magpie.linknet.com\nManes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2935, "properties": {"category": "misc.forsale", "text": "From: hungjenc@phakt.usc.edu (Hung-Jen Chen)\nSubject: Forsale: Sony D-22 diskman\nArticle-I.D.: phakt.1pqm89INNja1\nDistribution: na\nOrganization: University of Southern California, Los Angeles, CA\nLines: 4\nNNTP-Posting-Host: phakt.usc.edu\n\n\nNewsgroups: rec.audio,misc.forsale\nDistribution: na\nSubject: Forsale: Sony D-22 diskman\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2936, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cctr132@csc.canterbury.ac.nz (Nick FitzGerald, PC Software Consultant, CSC, UoC, NZ)\nSubject: Re: 3.5 floppy only reads what IT wrote\nNntp-Posting-Host: cantva.canterbury.ac.nz\nReply-To: Nick FitzGerald <n.fitzgerald@csc.canterbury.ac.nz>\nOrganization: University of Canterbury, Christchurch, New Zealand\nLines: 31\n\nIn article <1434@netxcom.netx.com>, pdressne@netxcom.netx.com (Peter\nDressner) writes:\n\n> I have a Gateway with a 3.5 floppy. The drive only reads files it\n> wrote to the floppy. Floppies that have been formatted and \n> contain files from other machines are unreadable. Also, 3.5 floppies\n> that were written by this defective floppy drive a long time ago are\n> also unreadable.\n> \n> This sounds like a head alignment problem.\n\nToo right it does!\n\n> ... How does one go about\n> fixing it? Are there alignment screws that you can adjust?\n\nThe --VERY VERY FIRST-- thing you do is make sure that --ALL-- files on\nthe floppies that you can currently read in the drive, which aren't\nalready on your HD or another floppy (if you have -two- floppy drives)\nget copied to your HD (and/or to a floppy in your other drive).\n\nIf you don't do this before fixing the alignment problem you have kissd\nthose files goodbye.  (Well, you can -try- to re-misalign the drive back\nto read your floppies, but don't count on be able to do so!)\n\nGenerally, head alignment is something I'd only trust to a good repair\nshop (though there are/have been DIY guides).\n\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n Nick FitzGerald, PC Applications Consultant, CSC, Uni of Canterbury, N.Z.\n n.fitzgerald@csc.canterbury.ac.nz  TEL:+64(3)364 2337, FAX:+64(3)364 2332\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2937, "properties": {"category": "rec.autos", "text": "From: pp@cbnewsl.cb.att.com (peter.peng)\nSubject: 1990 Integra LS for sale\nOrganization: AT&T Bell Laboratories\nDistribution: nj\nKeywords: for sale integra\nLines: 15\n\n\n\n********* 1990 Integra LS for Sale *********\n\n5 speed, sunroof, rear spoiler, new tires\n59.7K miles\n\n$ 7950 or best offer.\n\ncall 908-949-0878\n     908-938-4101\n\nemail att!hotsoup!peng\n\n*********************************************\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2938, "properties": {"category": "sci.med", "text": "From: banschbach@vms.ocom.okstate.edu\nSubject: Candida(yeast) Bloom, Fact or Fiction\nLines: 187\nNntp-Posting-Host: vms.ocom.okstate.edu\nOrganization: OSU College of Osteopathic Medicine\n\nI can not believe the way this thread on candida(yeast) has progressed.\nSteve Dyer and I have been exchanging words over the same topic in Sci. \nMed. Nutrition when he displayed his typical reserve and attacked a women \nposter for being treated by a liscenced physician for a disease that did \nnot exist.  Calling this physician a quack was reprehensible Steve and I \nsee that you and some of the others are doing it here as well.  \n\nLet me tell you who the quacks really are, these are the physicans who have \nno idea how the human body interacts with it's environment and how that \nbalance can be altered by diet and antibiotics.  These are the physicians \nwho dismiss their patients with difficult symptomatology and make them go \nfrom doctor to doctor to find relief(like Elaine in Sci. Med. Nutrition) and \nthen when they find one that solves their problem, the rest start yelling \nquack.  Could it just be professional jealousy?  I couldn't help Elaine or Jon\nbut somebody else did.  Could they know more than Me?  No way, they must be a \nquack.  \n\nI've been teaching a human nutrition course for Medical students for over ten \nyears now and guess who the most receptive students are?  Those that were \nraised on farms and saw first-hand the effect of diet on the health of their \nfarm animals and those students who had made a dramatic diet change prior to \nentering medical school(switched to the vegan diet).  Typically, this is \nabout 1/3 of my class of 90 students.  Those not interested in nutrition \neither tune me out or just stop coming to class.  That's okay because I \nknow that some of what I'm teaching is going to stick and there will be at \nleast a few \"enlightened\" physicians practicing in the U.S.  It's really \ntoo bad that most U.S. medical schools don't cover nutrition because if \nthey did, candida would not be viewed as a non-disease by so many in the \nmedical profession.\n\nIn animal husbandry, an animal is reinnoculated with \"good\" bacteria after \nantibiotics are stopped.  Medicine has decided that since humans do not \nhave a ruminant stomach, no such reinnoculation with \"good\" bacteria is \nneeded after coming off a braod spectrum antibiotic.  Humans have all \nkinds of different organisms living in the GI system(mouth, stomach, small \nand large intestine), sinuses, vagina and on the skin.  These are \nnonpathogenic because they do not cause disease in people unless the immune \nsystem is compromised.  They are also called nonpathogens because unlike \nthe pathogenic organisms that cause human disease, they do not produce \ntoxins as they live out their merry existence in and on our body.  But any of \nthese organisms will be considered pathogenic if it manages to take up \nresidence within the body.  A poor mucus membrane barrier can let this \nhappen and vitamin A is mainly responsible for setting up this barrier.\nSteve got real upset with Elaine's doctor because he was using anti-fungals \nand vitamin A for her GI problems.  If Steve really understoood what \nvitamin A does in the body, he would not(or at least should not) be calling \nElaine's doctor a quack.\n\nHere is a brief primer on yeast.  Yeast infections, as they are commonly \ncalled, are not truely caused by yeasts.  The most common organism responsible\nfor this type of infection is Candida albicans or Monilia which is actually a \nyeast-like fungus.  An infection caused by this organism is called candidiasis.\nCandidiasis is a very rare occurance because, like an E. Coli infection, it \nrequires that the host immune system be severly depressed.  \n\nCandida is frequently found on the skin and all of the mucous membranes of \nnormal healthy people and it rarely becomes a problem unless some predisposing\nfactor is present such as a high blood glucose level(diabetes) or an oral \ncourse of antibiotics has been used.  In diabetics, their secretions contain \nmuch higher amounts of glucose.  Candida, unlike bacteria, is very limited in \nit's food(fuel) selection.  Without glucose, it can not grow, it just barely \nsurvives.  If it gets access to a lot of glucose, it blooms and over rides \nthe other organisms living with it in the sinuses, GI tract or vagina.  In \ndiabetics, skin lesions can also foster a good bloom site for these little \nbuggers.  The bloom is usually just a minor irritant in most people but \nsome people do really develop a bad inflammatory process at the mucus \nmembrane or skin bloom site.  Whether this is an allergic like reaction to \nthe candida or not isn't certain.  When the bloom is in the vagina or on \nthe skin, it can be easliy seen and some doctors do then try to \"treat\" it.\nIf it's internal, only symptoms can be used and these symptoms are pretty \nnondiscript.  \n\n\nCandida is kept in check in most people by the normal bacterial flora in \nthe sinuses, the GI tract(mouth, stomach and intestines) and in the \nvaginal tract which compete with it for food.  The human immune system \nususally does not bother itself with these(nonpathogenic organisms) unless \nthey broach the mucus membrane \"barrier\".  If they do, an inflammatory \nresponse will be set up.  Most Americans are not getting enough vitamin A \nfrom their diets.  About 30% of all American's die with less Vitamin A than \nthey were born with(U.S. autopsy studies).  While this low level of vitamin \nA does not cause pathology(blindness) it does impair the mucus membrane \nbarrier system.  This would then be a predisposing factor for a strong \ninflammatory response after a candida bloom.  \n\nWhile diabetics can suffer from a candida \"bloom\" the  most common cause of \nthis type of bloom is the use of broad spectrum antibiotics which \nknock down many different kinds of bacteria in the body and remove the main \ncompetition for candida as far as food is concerned.  While drugs are \navailable to handle candida, many patients find that their doctor will not \nuse them unless there is evidence of a systemic infection.  The toxicity of \nthe anti-fungal drugs does warrant some caution.  But if the GI or sinus \ninflammation is suspected to be candida(and recent use of a broad spectrum \nantibiotic is the smoking gun), then anti-fungal use should be approrpriate \njust as the anti-fungal creams are an appropriate treatment for recurring \nvaginal yeast infections, in spite of what Mr. Steve Dyer says.\n\nBut even in patients being given the anti-fungals, the irritation caused by \nthe excessive candida bloom in the sinus, GI tract or the vagina tends to \nreturn after drug treatment is discontinued unless the underlying cause of \nthe problem is addressed(lack of a \"good\" bacterial flora in the body and/or \npoor mucus membrane barrier).  Lactobacillus acidophilus is the most effective \ntherapy for candida overgrowth.  From it's name, it is an acid loving \norganism and it sets up an acidic condition were it grows.  Candida can not \ngrow very well in an acidic environment.  In the vagina, L. acidophilius is \nthe predominate bacteria(unless you are hit with broad spectrum \nantibiotics).  \n\nIn the GI system, the ano-rectal region seems to be a particularly good \nreservoir for candida and the use of pantyhose by many women creates a very \nfavorable environment around the rectum for transfer(through moisture and \nhumidity) of candida to the vaginal tract.  One of the most effctive ways to \nminimmize this transfer is to wear undyed cotton underwear.  \n\nIf the bloom occurs in the anal area, the burning, swelling, pain and even \nblood discharge make many patients think that they have hemorroids.  If the \nbloom manages to move further up the GI tract, very diffuse symptomatology \noccurs(abdominal discomfort and blood in the stool).  This positive stool \nfor occult blood is what sent Elaine to her family doctor in the first \nplace.  After extensive testing, he told her that there was nothing wrong \nbut her gut still hurt.  On to another doctor, and so on.  Richard Kaplan \nhas told me throiugh e-mail that he considers occult blood tests in stool \nspecimens to be a waste of time and money because of the very large number of \nfalse positives(candida blooms guys?).  If my gut hurt me on a constant \nbasis, I would want it fixed.  Yes it's nice to know that I don't have \ncolon cancer but what then is causing my distress?  When I finally find a \ndoctor who treats me and gets me 90% better, Steve Dyer calls him a quack.\n\nCandida prefers a slightly alkaline environment while bacteria \ntend to prefer a slightly acidic environment.  The vagina becomes alkaline \nduring a woman's period and this is often when candida blooms in the vagina. \nVinegar and water douches are the best way of dealing with vaginal \nproblems.  Many women have also gotten relief from the introduction of \nLactobacillus directly into the vaginal tract(I would want to be sure of \nthe purity of the product before trying this).  My wife had this vagina \nproblem after going on birth control pills and searched for over a year \nuntil she found a gynocologist who solved the problem rather than just writting \nscripts for anti-fungal creams.  This was a woman gynocologist who had had \nthe same problem(recurring vaginal yeast infections).  This M.D. did some \ndigging and came up with an acetic acid and L. Acidophilis douche which she \nused in your office to keep it sterile.  After three treatments, sex \nreturned to our marraige.  I have often wondered what an M.D. with chronic \nGI distress or sinus problems would do about the problem that he tells his \npatients is a non-existent syndrome.\n\nThe nonpathogenic bacteria L. acidophilus is an acid producing bacteria \nwhich is the most common bacteria found in the vaginal tract of healthy women.  \nIf taken orally, it can also become a major bacteria in the gut.  Through \naresol sprays, it has also been used to innoculate the sinus membranes.\nBut before this innoculation occurs, the mucus membrane barrier system \nneeds to be strengthened.  This is accomplished by vitamin A, vitamin C and \nsome of the B-complex vitamins.  Diet surveys repeatedly show that Americans \nare not getting enough B6 and folate.  These are probably the segement of \nthe population that will have the greatest problem with this non-existent \ndisorder(candida blooms after antibiotic therapy).\n \nSome of the above material was obtained from \"Natural Healing\" by Mark \nBricklin, Published by Rodale press, as well as notes from my human \nnutrition course.  I will be posting a discussion of vitamin A  sometime in \nthe future, along with reference citings to point out the extremely \nimportant role that vitamin A plays in the mucus membrane defense system in \nthe body and why vitamin A should be effective in dealing with candida \nblooms.  Another effective dietary treatment is to restrict carbohydrate \nintake during the treatment phase, this is especially important if the GI \nsystem is involved.  If candida can not get glucose, it's not going to out \ngrow the bacteria and you then give bacteria, which can use amino acids and \nfatty acids for energy, a chance to take over and keep the candida in check \nonce carbohydrate is returned to the gut.\n\nIf Steve and some of the other nay-sayers want to jump all over this post, \nfine.  I jumped all over Steve in Sci. Med. Nutrition because he verbably \naccosted a poster who was seeking advice about her doctor's use of vitamin \nA and anti-fungals for a candida bloom in her gut.  People seeking advice \nfrom newsnet should not be treated this way.  Those of us giving of our \ntime and knowledge can slug it out to our heart's content.  If you saved \nyour venom for me Steve and left the helpless posters who are timidly \nseeking help alone, I wouldn't have a problem with your behavior. \n \nMartin Banschbach, Ph.D.\nProfessor of Biochemistry and Chairman\nDepartment of Biochemistry and Microbiology\nOSU College of Osteopathic Medicine\n1111 West 17th St.\nTulsa, Ok. 74107\n\n\"Without discourse, there is no remembering, without remembering, there is \nno learning, without learning, there is only ignorance\".\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2939, "properties": {"category": "rec.sport.hockey", "text": "From: darling@cellar.org (Thomas Darling)\nSubject: Re: Good for hockey/Bad for hockey\nOrganization: The Cellar BBS and public access system\nLines: 17\n\njmd@cbnewsm.cb.att.com (joseph.m.dakes) writes:\n\n> In article <1ppdccINNbe1@dev-null.phys.psu.edu>, stimpy@dev-null.phys.psu.edu\n> > In article <C4wxnF.Bx1@constellation.ecn.uoknor.edu> mfoster@alliant.backbo\n> > >I prefer the Miami Colons myself.  Headline: FLAMES BLOW OUT COLONS, 9-1\n> > \n> > Would Kevin Dineen play for the Miami Colons???\n> \n> As a Flyers fan, I resent you making Kevin Dineen the butt of your\n> jokes:-)!\n\nAw, just take a moment to digest it and I'm sure you'll see the humour...\n\n^~^~^~^~^~^~^~^~^\\\\\\^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^\nThomas A. Darling \\\\\\ The Cellar BBS & Public Access System: 215.539.3043\ndarling@cellar.org \\\\\\ GEnie: T.DARLING \\\\ FactHQ \"Truth Thru Technology\"\nv~v~v~v~v~v~v~v~v~v~\\\\\\~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2940, "properties": {"category": "comp.graphics", "text": "From: yoo@engr.ucf.edu (Hoi Yoo)\nSubject: looking for USA map\nOrganization: engineering, University of Central Florida, Orlando\nLines: 11\n\n\n\nDoes anyone out there have or know of,  line drawing USA map?\n\n\nThanks very much in advance,\nHoi\n\n\nyoo@engr.ucf.edu\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2941, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss)\nSubject: Re: Disillusioned Protestant Finds Christ\nOrganization: University at Buffalo\nLines: 26\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\nIn article <1qmhp7$33t@usenet.INS.CWRU.Edu>, cj195@cleveland.Freenet.Edu (John W. Redelfs) writes...\n> \n>In a previous article, tom@tredysvr.Tredydev.Unisys.COM (Tom Albrecht) says:\n> \n>>In article <1qb726$j9d@usenet.INS.CWRU.Edu< cj195@cleveland.Freenet.Edu (John W. Redelfs) writes:\n>><\n>><I learned that God loves his children who have never heard of him and has a\n>><plan for redeeming them too, even those who have died without a knowledge\n>><of Christ.  I learned that a man cannot frustrate justice by repenting on\n>><his death bed because repentance is more than a feeling of remorse.  It\n>><requires faith in Christ proven by following him, by keeping his\n>><commandments.  Such cannot be accomplished on ones deathbed.\n>>\n>>So Jesus must have lied to the thief on the cross.\n> \n>Paradise and salvation are not the same thing.  Salvation is better.  Refer\n>to John 14:2.\n\n\tI don't see the effort to equate salvation with paradise. \n\n\tRather, I see implied the fact that only those who are saved \nmay enter paradise.\n\n=============================\nRobert Weiss\npsyrobtw@ubvms.cc.buffalo.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2942, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: An Open Letter to Mr. Clinton\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 26\n\nstrnlght@netcom.com (David Sternlight) writes:\n\n> Here's a simple way to convert the Clipper proposal to an unexceptionable\n> one: Make it voluntary.\n\nAs usually, you are not reading. The proposal -does- say that it is a\n\"voluntary program\". This doesn't make it more desirable, though...\n\n> That is--you get high quality secure NSA classified technology if you agree\n> to escrow your key. Otherwise you are on your own.\n\n\"Secure\"? How do you know? Because NSA is trying to make you believe it?\n\"Trust us.\" Yeah, right.\n\n\"Otherwise you are on your own\"? How do you know that tomorrow they\nwill not outlaw encrypring devices that don't use \"their\" technology?\nBecause they are promising you? Gee, they are not doing even that -\nread the proposal again.\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2943, "properties": {"category": "rec.sport.baseball", "text": "From: jtchern@ocf.berkeley.edu (Joseph Hernandez)\nSubject: MLB Standings and Scores for Thu., Apr. 15th, 1993\nOrganization: JTC Enterprises Sports Division (Major League Baseball Dept.)\nLines: 73\nDistribution: world\nNNTP-Posting-Host: monsoon.berkeley.edu\n\n\n\t     MLB Standings and Scores for Thursday, April 15th, 1993\n\t                   (including yesterday's games)\n\nNATIONAL WEST\t      Won  Lost   Pct.    GB   Last 10  Streak    Home   Road\nHouston Astros         05   03    .625    --     5-3     Won 5   00-03  05-00\nAtlanta Braves         06   04    .600    --     6-4    Lost 1   03-03  03-01\nSan Francisco Giants   05   04    .556   0.5     5-4    Lost 1   02-01  03-03\nLos Angeles Dodgers    03   06    .333   2.5     3-6    Lost 3   00-02  03-04\nColorado Rockies       02   05    .286   2.5     2-5    Lost 3   02-03  00-02\nSan Diego Padres       02   06    .250   3.0     2-6    Lost 3   00-03  02-03\nCincinnati Reds        02   07    .222   3.5     2-7    Lost 3   01-02  01-05\n\nNATIONAL EAST\nPhiladelphia Phillies  08   01    .889    --     8-1     Won 5   05-01  03-00\nPittsburgh Pirates     06   02    .750   1.5     6-2     Won 3   03-02  03-00\nSt. Louis Cardinals    06   02    .750   1.5     6-2     Won 2   04-02  02-00\nNew York Mets          04   03    .571   3.0     4-3     Won 2   02-03  02-00\nChicago Cubs           04   05    .444   4.0     4-5     Won 1   01-02  03-03\nMontreal Expos         03   05    .375   4.5     3-5    Lost 2   00-02  03-03\nFlorida Marlins        03   06    .333   5.0     3-6     Won 2   02-04  01-02\n\n\nAMERICAN WEST         Won  Lost   Pct.    GB   Last 10  Streak    Home   Road\nTexas Rangers          06   02    .750    --     6-2    Lost 1   04-02  02-00\nCalifornia Angels      05   02    .714   0.5     5-2     Won 3   03-02  02-00\nOakland Athletics      04   03    .571   1.5     4-3    Lost 1   04-02  00-01\nSeattle Mariners       04   03    .571   1.5     4-3     Won 1   03-02  01-01\nChicago White Sox      04   04    .500   2.0     4-4     Won 1   02-03  02-01\nMinnesota Twins        04   04    .500   2.0     4-4    Lost 1   01-02  03-02\nKansas City Royals     01   07    .125   5.0     1-7    Lost 2   01-05  00-02\n\nAMERICAN EAST\nBoston Red Sox         06   02    .750    --     6-2     Won 2   02-00  04-02\nNew York Yankees       05   03    .625   1.0     5-3     Won 2   02-00  03-03\nToronto Blue Jays      04   03    .571   1.5     4-3    Lost 1   03-02  01-01\nDetroit Tigers         03   04    .429   2.5     3-4     Won 1   01-00  02-04\nCleveland Indians      03   05    .375   3.0     3-5    Lost 2   02-01  01-04\nMilwaukee Brewers      02   05    .286   3.5     2-5    Lost 4   00-02  02-03\nBaltimore Orioles      02   06    .250   4.0     2-6     Won 1   00-02  02-04\n\n\n\t\t\t     YESTERDAY'S SCORES\n                  (IDLE teams listed in alphabetical order)\n\nNATIONAL LEAGUE\t\t\t\tAMERICAN LEAGUE\n\nHouston\t\t9\t\t\tBaltimore\t6\nMontreal\t5\t\t\tTexas\t\t5\n\nPittsburgh     11\t\t\tSeattle\t       10\nSan Diego\t7\t\t\tToronto\t\t9 (10)\n\nChicago\t\t6\t\t\tCleveland\t7\nAtlanta\t\t0\t\t\tBoston\t       12\n\nCincinnati\t2\t\t\tCalifornia     12\nPhiladelphia\t9\t\t\tMilwaukee       2\n\nNew York\t6\t\t\tKansas City\t5\nColorado\t3\t\t\tNew York\t6\n\nFlorida\t\t6\t\t\tMinnesota     PPD\nSan Francisco\t4\t\t\tChicago      RAIN\n\nSt. Louis\t2\t\t\tDetroit      IDLE\nLos Angeles\t1 (15)\t\t\tOakland      IDLE\n-- \n-------------------------------------------------------------------------------\nJoseph Hernandez          |    RAMS  | |    /.\\  ******* _|_|_  / |   LAKERS\njtchern@ocf.Berkeley.EDU  |   KINGS  | |__ |   | DODGERS _|_|_  | |   RAIDERS\njtcent@soda.Berkeley.EDU  |  ANGELS  |____||_|_| *******  | |  |___|  CLIPPERS\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2944, "properties": {"category": "comp.graphics", "text": "From: besmith@uncc.edu (Brian E Smith)\nSubject: Re: Rayshade query\nNntp-Posting-Host: ws27.uncc.edu\nReply-To: besmith@uncc.edu\nOrganization: University of NC at Charlotte\nLines: 22\n\nIn article 5742@sunvax.sun.ac.za, 8910782@sunvax.sun.ac.za () writes:\n>I am also looking for a surface for the chesspieces. The board is marble.\n>Unfortunately black won't work very well for the one side. Anybody with ideas\n>for nice surfaces?\n\nHow about brass or silver?  I've seen real chessboards that use that material.\n\n>\n>Where should I post the finished chessboard?\n>\n\nRight here is as good a place as any.  Can't wait to see it.  I use the POV\nraytracer - is it compatible enough for your chessboard?\n\n-------------------------------------------------------------------------------\n     \"I don't know if you've got the whole picture or not, but it doesn't \n      seem like he's running on all thrusters!\" -- Leonard McCoy\n\n     \"A guess?  You, Spock?  That's extraordinary!\" -- James T. Kirk\n-------------------------------------------------------------------------------\n   Brian Smith  (besmith@mosaic.uncc.edu)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2945, "properties": {"category": "sci.crypt", "text": "From: psionic@wam.umd.edu (Haywood J. Blowme)\nSubject: new encryption\nNntp-Posting-Host: rac3.wam.umd.edu\nOrganization: University of Maryland, College Park\nLines: 120\n\n   As promised, I spoke today with the company mentioned in a Washington\nTimes article about the Clipper chip announcement. The name of the company\nis Secure Communicatiions Technology (Information will be given at the end\nof this message on how to contact them).\n\n   Basically they are disturbed about the announcement for many reasons that\nwe are. More specifically however, Mr. Bryen of Secure Communications\nbrought to light many points that might interest most of the readers.\n\n   His belief is that AT&T was made known of the clipper well before the\nrest of the industry. This is for several reasons, several of which are:\n\n - A company of AT&T's size could never be able to make a decision to use\n   the new chip on the SAME DAY it was announced.\n\n - Months ago they proposed using their own chip for AT&T's secure telephone\n   devices. AT&T basically blew them off as being not interested at all.\n   This stuck them as strange, until now...\n\n\n   Also I spoke with Art Melnick, their cryptographer, he expressed several\nconcerns over the new Clipper Chip:\n\n  - The obvious backdoor will be able to let many people decrypt the code.\n\n  - Once the key is released to authorities the security of the crypto\n    system is lost forever. These keys can end up in the hands of any agency\n    of the government.\n\n  - The fact that the escrowed keys never change means that the algorithm\n    is vulnerable over time to an attacker.\n\n  - The classified algorithm may hide another backdoor. But he feels that\n    it is probably to keep people from forging fake serial numbers, or\n    changing the keys themselves.\n\n  - Additionally he feels that the NSA has probably spent enough time and\n    money in working on a way to keep this chip from being reversed\n    engineered, that he feels that reverse engineering it will be very\n    difficult to do. He feels that they have developed a suitable technique\n    to protect the chip from this attack. Also he feels that the chip is\n    hardware encoded with the algorithm and not microcoded onto the chip.\n\nAdditonally I spoke with Mr. Melnick about their algorithm. He couldn't tell\nme much about their new agorithm because it hasn't been patented yet.\nHowever he told me a little:\n\n - The algorithm will be released for public review after patents have been\n   granted for it. This is so the crypto community can see that it is\n   secure.\n\n - The algorithm is called NEA for New Encryption Algorithm.\n   The details were sketchy because now it is held as a trade secret\n   until the patent was issued, but I was told that it will incorporate\n   the following:\n\n    - It will have fast encryption of data (Exact specs not given, but\n      Mr. Melnick stated \"Much faster than what an RS-232 can put out.\")\n\n    - It is a symmetric cipher, just like IDEA and DES.\n\n    - It will use 64 bit data blocks for encryption (like DES and IDEA).\n\n    - The key length was not given to me, but Mr. Melnick states that\n      it is _adujustable_ and is \"More than adequate for security.\"\n\n    - The algorithm is written in C and Assembler in software form, and\n      can be ported to many platforms (Unlike the the Clipper Chip which\n      is hardware ONLY and cannot be made into software) This I\n      consider a definite plus for the NEA for widespread use.\n\n    - The algorithm will accomodate public key distribution techniques\n      such as RSA or Diffie-Hellman. This will also be supported in the\n      hardware chip.\n\n    - Right now the projected cost of the NEA chip will be about 10 dollars\n      for each!! (Clipper will run 25 each chip [that is if it is produced\n      enough, which probably won't happen]).\n\n    - They currently sell a program called C-COM that uses the algorithm\n      and a special streaming protocol that does not divide the encrypted\n      data into \"blocks.\" This could prevent plaintext attacks if you know\n      what the block header is. This program operates at all supported\n      RS-232 speeds and uses the software implementation of the algorithm.\n\n    - Most importantly: IT DOES NOT HAVE A BACKDOOR!!\n\n\n\nRight now the company is afraid that the new clipper chip will put them out\nof business. This is a very real possibility. So they really need help in\nstopping the clipper chip from becoming a standard. If you want to contact\nthem, they can be reached at..\n\nSecure Communications Technology\n8700 Georgia Ave. Suite 302\nSilver Spring, MD\n\n(301) 588-2200\n\nI talked to Mr. Bryen who represents the company. He can answer any\nquestions you have.\n\n\n\n\nAny factual errors occurring in this write up are my own and I apologize for\nthem ahead of time.\n\n \n\n=============================================================================\n      ///    | psionic@wam.umd.edu | Fight the WIRETAP CHIP!! Ask me how!\n __  /// C=  | -Craig H. Rowland-  |\n \\\\\\/// Amiga| PGP Key Available   | \"Those who would give up liberty for\n  \\///  1200 | by request.         |  security deserve neither.\"\n=============================================================================\nA\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2946, "properties": {"category": "comp.graphics", "text": "From: zeno@phylo.genetics.washington.edu (Sean Lamont)\nSubject: Closed-curve intersection\nArticle-I.D.: shelley.1ra2paINN68s\nOrganization: Abstract Software\nLines: 10\nNNTP-Posting-Host: phylo.genetics.washington.edu\n\nI would like a reference to an algorithm that can detect whether \none closed curve bounded by some number of bezier curves lies completely\nwithin another closed curve bounded by bezier curves.\n\nThanks.\n-- \nSean T. Lamont                           |   Ask me about the WSI-Fonts\nzeno@genetics.washington.edu             |   Professional collection for NeXT \nlamont@abstractsoft.com                  |____________________________________\nAbstract Software                                                         \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2947, "properties": {"category": "sci.med", "text": "From: rousseaua@immunex.com\nSubject: Re: Lactose intolerance\nOrganization: Immunex Corporation, Seattle, WA\nLines: 27\n\nIn article <1993Apr5.165716.59@immunex.com>, rousseaua@immunex.com writes:\n> In article <ng4.733990422@husc.harvard.edu>, ng4@husc11.harvard.edu (Ho Leung Ng) writes:\n>> \n>>    When I was a kid in primary school, I used to drink tons of milk without\n>> any problems.  However, nowadays, I can hardly drink any at all without\n>> experiencing some discomfort.  What could be responsible for the change?\n>> \n>> Ho Leung Ng\n>> ng4@husc.harvard.edu\n\n\nOOPS. My original message died. I'll try again...\nI always understood (perhaps wrongly...:)) that the bacteria in our digestive\ntracts help us break down the components of milk. Perhaps the normal flora of \nthe intestine changes as one passes from childhood.\nIs there a pathologist or microbiologist in the house?\n\nAnne-Marie Rousseau\ne-mail: rousseaua@immunex.com\n(Please note that these opinions are mine, and only mine.)\n\n         \n            \n           \n           \n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2948, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Davidians and compassion\nOrganization: Cookamunga Tourist Bureau\nLines: 27\n\nIn article <C5sLAs.B68@blaze.cs.jhu.edu>, arromdee@jyusenkyou.cs.jhu.edu\n(Ken Arromdee) wrote:\n> \n> In article <sandvik-190493200420@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n> >So we have this highly Christian religious order that put fire\n> >on their house, killing most of the people inside.\n> \n> We have no way to know that the cultists burned the house; it could have been\n> the BATF and FBI.  We only have the government's word for it, after all, and\n> people who started it by a no-knock search with concussion grenades are hardly\n> disinterested observers.\n\nWell, looking at the videos it seems that this fire started in various\nplaces at the same time, which would indicate that this was a planned\naction. I'm sure FBI and BATF didn't *deliberately* start a possible\nfire, having a sniper kill Korresh would have been a far easier \nmethod. Looking at the careful operation, and use of tear gas\nthat as I know don't start fires, it is less likely that this \nwas the case.\n\nSorry, but my bets are on fanatical people keen to start\nArmageddon -- theirs.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.135+0000", "event": "documents", "entityId": 2949, "properties": {"category": "talk.religion.misc", "text": "From: bobsarv@microsoft.com (Bob Sarver)\nSubject: Re: DID HE REALLY RISE???\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 85\n\n\n/(emery)\n/The one single historic event that has had the biggest impact on the\n/world over the centuries is the resurrection of Jesus.  \n\nThis is hardly possible, as the majority of people in the world were\nborn, lived their life, and died, without ever knowing anything about\nChrist.  The majority of the rest of the world have decided that he \nis not who Emery thinks he is.\n\n\n\n/(emery)\n/Why were the writers of the New Testament documents so convinced that\n/Jesus really did rise from the dead?\n/We have four gospel accounts.  \n\nI am leaving out all \"proofs\" of Emery's which rely on quoting the\nbible as proof.  Circular reasoning, etc.  There have been occasions\nalready stated many times for later generations of Xtians to change,\nedit, or otherwise alter the bible to fit their political gospel.\nAnd if we accept the bible as true just because the bible says it\nis true, then (to be fair) we have to do the same to the Bhagavad-Gita\nand the Koran, both of which contradict the bible.\n\nEnough said.\n\n\n\n/(emery)\n/Yet we have no reason to believe these disciples to be immoral and dishonest.\n/We have no historic information that would lead us to the conclusion that\n/these people were not God-fearing people who sincerely and whole-heartedly\n/believed that the resurrection of their Lord Jesus was a real event.\n/And for what gain would they lie?  To make a stand at that time meant \n/persecution, imprisonment, and perhaps even death.\n\nAgain, this is only the biblical account and there is no independent proof\nof any of this happening.  It just isn't there.\n\nBesides, simply being sincere or willing to die for your faith does not\nmake your faith correct.  There are Muslims dying in Bosnia right now;\ndoes the fact that they are willing to die for Islam mean that Islam is\nthe correct religion?\n\n\n\n\n(emery)\n/History bears out the persecution of Christians.  Roman historian, Cornelius \n/Tacitus, Govenor of Asia, in A.D. 112, writing of Nero's reign, alluded to \n/the torture of Christians in Rome:\n\n\nAll you have proven is that these people were tortured for their faith.  That\ndoes not prove that their faith is true or correct; it just means that they\nwere sincere in their beliefs. \n\nBeing willing to die for what you believe doesn't make your belief the truth.\nIt's not that easy.  And minority religions have always suffered torture;\nMuslims suffer torture and harassment in India and Bosnia today.  All religions\nare harassed in China today.  You haven't proven anything so far.\n\n\n\n/(emery)\n/With all the suffering and persecution that it meant to be a believer, it\n/would be quite probable that at least one of those in the supposed conspiracy\n/would come forward and confess that the whole thing was a big hoax.  \n\nNot if they didn't believe that it was a hoax.  \n\n\n/(emery)\n/Yet not one did.  It seems rather reasonable that the disciples did not make\n/up the resurrection but sincerely believed that Jesus had actually risen\n/from the dead; especially in light of the sufferings that came upon those\n/who believed.\n\nThe followers of Muhammad firmly believed in the miracles that the Koran\nsays Muhammad performed.  They were attacked and slaughtered for their\nbeliefs.  They didn't denounce Muhammad or Islam.  If you are correct,\nthen that means Islam is the true faith.\n\nYou see how stupid your proofs are?  \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2950, "properties": {"category": "sci.med", "text": "From: nash@biologysx.lan.nrc.ca (John Nash)\nSubject: Re: Is MSG sensitivity superstition?\nNntp-Posting-Host: 132.246.164.10\nOrganization: National Research Council of Canada\nLines: 39\n\nIn article <1993Apr15.135941.16105@lmpsbbs.comm.mot.com> dougb@comm.mot.com (Doug Bank) writes:\n>From: dougb@comm.mot.com (Doug Bank)\n>Subject: Re: Is MSG sensitivity superstition?\n>Date: Thu, 15 Apr 1993 13:59:41 GMT\n\n>In article <1993Apr14.122647.16364@tms390.micro.ti.com>, david@tms390.micro.ti.com (David Thomas) writes:\n[lots of editing out of previuos posts]\n\n>Here is another anecdotal story.  I am a picky eater and never wanted to \n>try chinese food, however, I finally tried some in order to please a\n>girl I was seeing at the time.  I had never heard of Chinese restaurant\n>syndrome.  A group of us went to the restaurant and all shared 6 different\n>dishes.  It didn't taste great, but I decided it wasn't so bad.  We went\n>home and went to bed early.  I woke up at 2 AM and puked my guts outs.\n>I threw up for so long that (I'm not kidding) I pulled a muscle in\n>my tongue.  Dry heaves and everything.  No one else got sick, and I'm\n>not allergic to anything that I know of.  \n\n>Suffice to say that I wont go into a chinese restaurant unless I am \n>physically threatened.  The smell of the food makes me ill (and that *is*\n>a psycholgical reaction).  When I have been dragged in to suffer\n>through beef and broccoli without any sauces, I insist on no MSG.  \n>I haven't gotten sick yet.\n\nFunny about that... my wife (my girlfriend at the time) used to get sick \nafter eating certain foods at various Asian restaurants, and never knew \nwhy.  She'd go pale, and sweaty and then vomit copiously.  A couple of us \nventured a connection with MSG, and her response was: \"MSG?  What's that?\".  \nIt also happened when she pigged out on some brands of savoury crackers and \nchips... which I noticed (later) had MSG on the label.  Don't know about \ndouble blinds, but avoiding MSG has stopped her being sick at restaurants.\n\n\ncheers, John\n\nJohn Nash                           | Email: Nash@biologysx.lan.nrc.ca.\nInstitute for Biological Sciences,  | National Research Council of Canada,\nCell Physiology Group.              | Ottawa, Ontario, Canada.\n             *** Disclaimer:  All opinions are mine, not NRC's! ***\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2951, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jschief@finbol.toppoint.de (Joerg Schlaeger)\nSubject: Re: difference between VLB and ISA/EISA\nDistribution: world\nOrganization: myself\nLines: 24\n\nhurley@epcot.spdc.ti.com writes in article <1993Apr14.090534.6892@spdc.ti.com>:\n> \n> What about VLB and a 486dx50.   Does the local bus still run at 33Mhz or does\n> it try to run at 50Mhz???\n> \n> \n> Brian\n> \n> \nHi,\nVLB is defined for 3 cards by 33MHz\nand 2 cards by 40MHz\n\nthere are designs with 50MHz and 2 VLB-Slots.\n(s. C't 9.92, 10.92, 11.92)\n\n50MHz and 2 Slots are realy difficult to design.\n\nBetter OSs (OS/2 & iX) are able to handle more than 16MB of DRAM,\nif you use EISA-Bus.\nHas someone experience with VLB ??\nI think of SCSI-VLB-Busmaster. The problem is the 16bit Floppy DMA\ncontroller, which is unable to reach more than 16MB.\nJoerg\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2952, "properties": {"category": "comp.graphics", "text": "From: jr0930@eve.albany.edu (REGAN JAMES P)\nSubject: Pascal-Fractals\nOrganization: State University of New York at Albany\n  Thanks in advance\nLines: 5\n\n-- \n |||||||||||   \t\t \t   ||||||||||| \n_|||||||||||_______________________|||||||||||_      jr0930@eve.albany.edu\n-|||||||||||-----------------------|||||||||||-     jr0930@Albnyvms.bitnet\n |||||||||||  GO HEAVY OR GO HOME  |||||||||||\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2953, "properties": {"category": "sci.med", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: What are the problems with Nutrasweet (Aspartame)?\nOrganization: The Portal System (TM)\nLines: 11\n\nPhenylketonuria is a disease in which the body cannot process phenylalanine.\nIt can build up in the blood and cause seizures and neurological damage.\nAn odd side effect is that the urine can be deeply colored, like red wine.\nPeople with the condition must avoid Nutrasweet, chocolate, and anything\nelse rich in phenylalanine.\n\nAspartame is accused of having caused various vague neurological symptoms.\nPat Robertson's program _The_700_Club_ was beating the drum against\naspartame rather vigorously for about a year, but that issue seems to\nhave been pushed to the back burner for the last year or so.  Apparently,\nthe evidence is not very strong, or Pat would still be flailing away.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2954, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Peter Hansen <pgmoffc@BNR.ca>\nSubject: Re: Help: 2 internal HDs in Mac II?\nX-Xxdate: Tue, 6 Apr 93 11:17:54 GMT\nNntp-Posting-Host: bcarm382\nOrganization: BNR\nX-Useragent: Nuntius v1.1.1d17\nLines: 54\n\nIn article <1993Apr1.054820.3942@siemens.co.at> Kurt Netzer,\nkurt@siemens.co.at writes:\n>Is it possible to install a 2nd 3 1/2\" 100 MB HD in a Mac II with a\n>5 1/4\" 40 MB Qunatum HD?\n>Can i us a 50 pin cable with 3 connectors for the internal motherboard\n>SCSI-Connector and the 2 SCSI-HD Connectors. The first HD is'nt\nterminated\n>the second will be.\n>Whats about the power supply. Where can i connect a 3 1/2\" AMP-Connector\n>to supply my 3 1/2\" HD?\n\nIt is very possible to connect another internal hard disk in any\nmacintosh if you can find the space to put it. I have a IIsi that came\nwith a Quantum 80 meg drive. When I ran into space problems, I slapped in\nanother 40 meg quantum that I had sitting on a shelf. Here is what I did.\n \nFirst off, I was concerned about space. Since both drives are Quantum\nquarter height drives, I finally decided that the logical place for them\nwas stacked one upon the other. Fine, they fit snugly. (I have not had a\nproblem with heat yet, and these drives have been running together for\nover two months.\n\nThe next problem was connecting the drive. If you have a spare internal\nhard disk power cable as I did, then half of your troubles are over. just\nsplice in the extra cable so that you get one square motherboard\nconnector and two hard disk power connectors. If you don't have a spare\ncable, you will have to buy the wires and connectors which can be found\nin any good electronics store for about $10. I would suggest properly\nsoldering/heatshrinking the connections to reduce the possibility of\nshorts or bad connections.\n\nNext, you need a ribbon cable connection. Again, I had a spare hard disk\nribbon cable, and I wanted to be careful in case this didn't word so what\nI did was purchase a crimp on 50 pin cable connector that gave me another\nmale connector in the middle of my spare cable. The part cost $10 again,\nand is easily attached with any good wood vice. The theory behind using a\ncrimp on connector is that if this doesn't work, my original cable is not\ndamaged, and I can go back to the original setup.\n\nHaving done all that, I couldn't be bothered to check the dev notes for\npower consumption so I plugged it in and it works like a charm to this\nday. \n\nIn a mac II, everything should work the same. Be careful with the ID's of\nthe drive, and ensure that the terminating resistors on both drives are\nintact. I did not try this without the terminating resistors but it\nseemed logical that if I am splitting the SCSI chain, that the signal\nshould be terminated at all the ends.\n\nLet me know if you have any more questions.\n\nPeter Hansen\nBell Northern Research\npgmoffc@BNR.ca\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2955, "properties": {"category": "sci.space", "text": "From: abdkw@stdvax (David Ward)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nOrganization: Goddard Space Flight Center - Robotics Lab\nLines: 34\n\nIn article <20APR199321040621@kelvin.jpl.nasa.gov>, baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes...\n>In article <1993Apr20.204335.157595@zeus.calpoly.edu>, jgreen@trumpet.calpoly.edu (James Thomas Green) writes...\n>>Why do spacecraft have to be shut off after funding cuts.  For\n>>example, Why couldn't Magellan just be told to go into a \"safe\"\n>>mode and stay bobbing about Venus in a low-power-use mode and if\n>>maybe in a few years if funding gets restored after the economy\n>>gets better (hopefully), it could be turned on again.  \n> \n>It can be, but the problem is a political one, not a technical one.\n\nAlso remember that every dollar spent keeping one spacecraft in safe mode\n(probably a spin-stabilized sun-pointing orientation) is a dollar not\nspent on mission analysis for a newer spacecraft.  In order to turn the\nspacecraft back on, you either need to insure that the Ops guys will be\navailable, or you need to retrain a new team.\n\nHaving said that, there are some spacecraft that do what you have proposed.\nMany of the operational satellites Goddard flies (like the Tiros NOAA \nseries) require more than one satellite in orbit for an operational set.\nExtras which get replaced on-orbit are powered into a \"standby\" mode for\nuse in an emergency.  In that case, however, the same ops team is still\nrequired to fly the operational birds; so the standby maintenance is\nrelatively cheap.\n\nFinally, Pat's explanation (some spacecraft require continuous maintenance\nto stay under control) is also right on the mark.  I suggested a spin-\nstabilized control mode because it would require little power or \nmaintenance, but it still might require some momentum dumping from time\nto time.\n\nIn the end, it *is* a political decision (since the difference is money),\nbut there is some technical rationale behind the decision.\n\nDavid W. @ GSFC  \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2956, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ajacobs@nyx.cs.du.edu (Andrew Jacobs)\nSubject: Re: Using Microsoft Foundation Classes with Borland C++ 3.1\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nDistribution: usa\nLines: 7\n\nThanks for the info.  I assume that this is for MFC 1.0.  Does anyone\nknow if this will work with MFC 2.0, or what else needs to be done?\nThanks.\n--\n                                  *     *\n - Andy Jacobs                       *\n                                  \\_____/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2957, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Lincoln & slavery (Was Re: Top Ten Tricks...)\nArticle-I.D.: optilink.15232\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 37\n\nIn article <1993Apr4.005634.24695@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes:\n> In article <1993Apr3.002339.22888@rigel.econ.uga.edu> depken@rigel.econ.uga.edu (Craig Depken) writes:\n> >In article <1993Apr2.154232.29527@Princeton.EDU> glhewitt@phoenix.Princeton.EDU (Gary Livingston Hewitt) writes:\n# # \"labor\" is a tough one. Labor is defined, economically, as the efforts,\n# # both mental and physical, of humans. Capital is defined as intermediate\n# # goods used to create other goods and services. Now, if a slave is considered\n# # an intermediate good, then the slave has now been dehumanized and is \n# # simply a machine. Not good for the anti-slave (i.e. pro-human rights) \n# # argument. So, slaves are humans, and they produce labor. \n# \n# Sorry.  The question of defining slave \"labor\" is no \"tough(er)\" than \n# defining the \"labor\" of a horse, an ox, or any other livestock.  Both\n# legally and economically in a slave-economy, \"slaves are (NOT) humans,\"  \n# they are livestock.\n\nCan you provide some evidence that the slave states regarded slaves as\nnot humans?  They were \"outside our society\" and similar phrases that\nbasically meant that they didn't have to recognized as having the same\nrights as a free person, but they were never considered \"not human\" to\nmy knowledge.\n\n# Like a horse that pulls a plow, a slave's \"labor\" is the return on the\n# capital required to purchase and feed him.  The parallel is so obvious\n# I'm not sure how you missed it.  After all, its was the \"liberty\" to \n# use their \"property\" as they saw fit that motivated Southern planters\n# to emphasize the importance of \"states' rights.\"\n\nIf that were the case, the slave states would not have passed so many\nlaws that restricted the freedom of slave owners to do as they wished\nwith their property.  Examples: laws prohibiting manumission without\nlegislative grant; laws prohibiting teaching slaves to read & write.\n\n# #Craig.\n# Steve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2958, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Nicknames\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 36\n\nMaddi Hausmann (madhaus@netcom.com) wrote:\n: jcopelan@nyx.cs.du.edu (The One and Only) writes: >\n\n: >We could start with those posters who annoy us the most, like Bobby or\n: >Bill.\n\n: Your wish is my command.\n\n: Bill \"Shit-stirrer\" Connor\n: Bobby \"Circular\" Mozumder\n\nI'm not sure my new nom d'net is exactly appropriate, but it comes\nvery close. Considering what I have to wade through before I make one\nof my insightful, dead-on-the-money repsonses, I have to agree that\nsomething's getting stirred up. I would like to believe my\ncharacterization of what I respond to would be kinder though, but if\nyou insist ...\n\nI am also surprised to find that I have offended anyone, but in some\ncases it's unavoidable if I am to say anything at all. For those to\nwhom fairness is important, check out my contributions, haven't I been\nmost generous and patient, a veritable paragon of gentility?\n\nOh, BTW, I don't mind being paired with Bobby; I admire his tenacity.\nHow many of you would do as well in this hostile environment - you\nthink -I'm- offensive ?! read your own posts ...\n\nLove and kisses,\n\nBill\n\nP.S.\n\nMy name is Conner, not Connor. No point in humiliating the innocents.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2959, "properties": {"category": "talk.politics.misc", "text": "From: jrbeach@iastate.edu (Jeffry R Beach)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: Iowa State University, Ames, IA\nLines: 25\n\nIn article <stevethC5Js6F.Fn5@netcom.com> steveth@netcom.com (Steve Thomas) writes:\n>\tBoy, it looks like the WOD is WORKING REALLY GOOD to stop people from\n>\tbeing screwed up in the head, given that example!\n>\n>(Issue: your friend _got_ his drugs--legal or not legal, he'll continue to\n>get them.  Issue #2: why should _I_, as somebody who does NOT use illegal\n>drugs and who IS NOT \"screwed up\" have to PAY for this idiot's problems?  He's\n>not doing anybody any harm except himself.  The WOD, on the other hand, is an\n>immediate THREAT to MY life and livelyhood.  Tell me why I should sacrafice\n>THIS to THAT!).\n\nHello, is there anybody in there?  You think you have to pay for this idiot's\nproblem now, who's going to pay for the ballooning number of addicts and \nall of the associated problems with them.  I don't even want to think about\nit with Hillary in the White House and an administration that \"feels our\npain\".\n\nNo harm but to himself?  What about when he drives his school bus full\nof kids into a train.  When he gets stoned and drives up on a sidewalk\nand kills 5 people.  When he lives off me on Welfare for the rest of his\nlife.\n\nThe problem with the WOD is that it has no bite.  Sending the slimy \nbastards to the chair for selling drugs to kids, now there's some bit.\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2960, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ashok@biochemistry.cwru.edu (Ashok Aiyar)\nSubject: Re: Trumpet for Windows & other news readers\nOrganization: CWRU School of Medicine\nLines: 22\nDistribution: world\nNNTP-Posting-Host: axa12-slip.dialin.cwru.edu\n\nIn article <1993Apr21.082430@liris.tew.kuleuven.ac.be> wimvh@liris.tew.kuleuven.ac.be (Wim Van Holder) writes:\n\n>What the status of Trumpet for Windows? Will it use the Windows sockets ?\n>I liked it in DOS but had to abandon it since I started using NDIS to access\n>our token ring (results in invalid class error :(\n\nWhile I do not speak for Peter Tattam, I am fairly sure he is planning a \nWinsock compliant version.  While this will definitely not make the initial\npublic release of WinTrumpet, it will follow on shortly thereafter.\n\nCurrently WinTrumpet is in very late beta.  It looks like an excellent \nproduct, with several features beyond the DOS version.\n\nWinTrumpet supports the Trumpet TCP, Novell LWP, and there is also a direct to \npacket driver version that some people are using with the dis_pkt shim.\n\nAshok \n\n--\nAshok Aiyar                        Mail: ashok@biochemistry.cwru.edu\nDepartment of Biochemistry                       Tel: (216) 368-3300\nCWRU School of Medicine, Cleveland, Ohio         Fax: (216) 368-4544\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2961, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: New Study Out On Gay Percentage\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 43\n\nIn article <1993Apr16.121720.13017@hemlock.cray.com> rja@mahogany126.cray.com (\nRuss Anderson) writes:\n>\n>In article <15378@optilink.COM>, cramer@optilink.COM (Clayton Cramer) writes:\n>>\n>> From the Santa Rosa (Cal.) Press-Democrat, April 15, 1993, p. B2:\n>>\n>>     Male sex survey: Gay activity low\n>>\n>>     A new natonal study on male sexual behavior, the most thorough\n>>     examination of American men's sexual practices published since\n>>     the Kinsey report more than four decades ago, shows about 2\n>>     percent of the men surveyed had engaged in homosexual sex and\n>>     1 percent considered themselves exclusively homosexual.\n>\n>Actually, what the study shows is that 2 percent of the men surveyed\n>*said* they engaged in homosexual sex and 1 percent *said* they\n>considered themselves exclusively homosexual.\n>\n\nYes, and of course the Kinsey Report taken 50 years ago in much more liberal \ntimes regarding homosexuality.........\n\n>The point being that what people say and what they acutally do\n>may be different.\n>\n>It is interesting that this clip from the newspaper did not\n>mention that difference.  Maybe it is conservative media bias.  :-)\n>\n\nOr smart enough to realize that that argument would have to apply to every \nsurvey regarding homosexuality.  Therefore, they would look stupid. (Actually, \nIdid see Bryant Gumble bring that point up.  Hee, hee).\n\n\n\n>     The figures on homosexuality in the study released Wednesday\n>>     by the Alan Guttmacher Institute are significantly lower than\n>>     the 10 percent figure that has been part of the conventional\n>>     wisdom since it was published in the Kinsey report.\n>\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2962, "properties": {"category": "talk.politics.misc", "text": "From: as010b@uhura.cc.rochester.edu (Tree of Schnopia)\nSubject: Re: New Study Out On Gay Percentage\nNntp-Posting-Host: uhura.cc.rochester.edu\nOrganization: University of Rochester - Rochester, New York\nLines: 51\n\nIn <C5L0v1.JCv@news.cso.uiuc.edu> dans@uxa.cso.uiuc.edu (Dan S.) writes:\n\n>brian@gab.unt.edu (Brian \"Drakula\" Stone) writes:\n\n>(No axe to grind here I'm just a scientist and I hate to see statistics abused.)\n\nPity you didn't say something about the use of statistics to justify\ntargeting and persecuting a minority, then.\n\n>>Men are men and they all like sex.  I am a gay male.  I have had sex three \n>>times in my life, all with the same man.  Before that, I was a virgin.\n\n>I am a hetero man and have had sex with one woman in my life (my wife).  It is \n>very pleasing to me to be able to say that.  I hope you have the same feeling\n>as I do.  I also wish that you could (if you wanted) experience the joys and\n>trials of being committed to someone for life (there is something about marriage\n>that makes the commitment much greater than one might expect).\n\nWhat in the Tree makes you think we queers CAN'T experience that commitment? \nWhat's stopping us from committing to one partner for the rest of our lives? \nI have every intention of doing so, once I find the right person...and\nwhether that person is male or female, I seriously doubt that a church\nceremony/public vow/licence will make any difference whatsoever in the sort\nof commitment I experience with that person.  You have no conception of the\ndifference marriage makes since you have never known any other way.\n\n\n>>Statistics alone prove that most criminals are by default hetero...\n\n>Don't forget about the culture.  Sadly, we don't (as a society) look upon\n>homosexuality as normal (and as we are all too well aware, there are alot\n>of people who condemn it).  As a result, the gay population is not encouraged\n>to develop \"non-promiscuous\" relationships.  In fact there are many roadblocks\n>put in the way of such committed relationships.  It is as if the heterosexual\n>community puts these blocks there so as to perpetuate the claim that gays \n>are immoral.  \"My, if we allowed gays to marry, raise children ... we might\n>just find out they're as moral as we are, can't have that can we?\" \n\nYou're getting to the right idea here...just be careful of making statements\nlike the above, and you'll be part of the solution and not the problem.\n\n>Just some thoughts.  Flame away. :)\n\nNo flames necessary. :)\n\nDrywid\n-- \n----bi    Andrew D. Simchik\t\t\t\t\tSCHNOPIA!\n\\ ----    as010b@uhura.cc.rochester.edu\t\t\t\tTreeWater\n \\\\  /    \n   \\/     \"Words Weren't Made For Cowards\"--Happy Rhodes\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2963, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ktiedtke@jarthur.claremont.edu (Kurt Tiedtke)\nSubject: comparative SCSI performance\nArticle-I.D.: news.C51zDM.BF5\nOrganization: Harvey Mudd College, Claremont CA 91711\nLines: 8\n\nCould someone direct me to information on SCSI performance for each Mac?\n(Max throughput, etc.)\n\n\nKurt Tiedtke\nktiedtke@jarthur.claremont.edu\n\nPlease email.  Thanks!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2964, "properties": {"category": "alt.atheism", "text": "From: timmbake@mcl.ucsb.edu (Bake Timmons)\nSubject: Re: Amusing atheists and agnostics\nLines: 76\n\n\nChris Faehl writes:\n\n> >Many atheists do not mock the concept of a god, they are shocked that\n> >so many theists have fallen to such a low level that they actually\n> >believe in a god.  You accuse all atheists of being part of a conspiracy,\n> >again without evidence.\n>\n>> Rule *2:  Condescending to the population at large (i.e., theists) will >not\n>> win many people to your faith anytime soon.  It only ruins your credibility.\n\n>Fallacy #1: Atheism is a faith. Lo! I hear the FAQ beckoning once again...\n>[wonderful Rule #3 deleted - you're correct, you didn't say anything >about\n>a conspiracy]\n\nCorrection: _hard_ atheism is a faith.\n\n>> Rule #4:  Don't mix apples with oranges.  How can you say that the\n>> extermination by the Mongols was worse than Stalin?  Khan conquered people\n>> unsympathetic to his cause. That was atrocious. But Stalin killed millions of\n>> his own people who loved and worshipped _him_ and his atheist state!!  How can\n>> anyone be worse than that?\n\n>I will not explain this to you again: Stalin did nothing in the name of\n>atheism. Whethe he was or was not an atheist is irrelevant.\n\nGet a grip, man.  The Stalin example was brought up not as an\nindictment of atheism, but merely as another example of how people will\nkill others under any name that's fit for the occasion.\n\n>> Rule #6:  If you rely on evidence, state it.  We're waiting.\n\n>As opposed to relying on a bunch of black ink on some crumbling old paper...\n>Atheism has to prove nothing to you or anyone else. It is the burden of\n>dogmatic religious bullshit to provide their 'evidence'. Which 'we'\n>might you be referring to, and how long are you going to wait?\n\nSo hard atheism has nothing to prove?  Then how does it justify that\nGod does not exist?  I know, there's the FAQ, etc.  But guess what -- if\nthose justifications were so compelling why aren't people flocking to\n_hard_ atheism?  They're not, and they won't.  I for one will discourage\npeople from hard atheism by pointing out those very sources as reliable\nstatements on hard atheism.\n\nSecond, what makes you think I'm defending any given religion?  I'm merely\nrecognizing hard atheism for what it is, a faith.\n\nAnd yes, by \"we\" I am referring to every reader of the post.  Where is the\nevidence that the poster stated that he relied upon?\n>\n>> Oh yes, though I'm not a theist, I can say safely that *by definition* many\n>> theists are not arrogant, since they boast about something _outside_\n>> themselves, namely, a god or gods.  So in principle it's hard to see how\n>> theists are necessarily arrogant.\n\n>Because they say, \"Such-and-such is absolutely unalterably True, because\n         ^^^^\n>my dogma says it is True.\" I am not prepared to issue blanket statements\n>indicting all theists of arrogance as you are wont to do with atheists.\n\nBzzt!  By virtue of your innocent little pronoun, \"they\", you've just issued\na blanket statement.  At least I will apologize by qualifying my original\nstatement with \"hard atheist\" in place of atheist.  Would you call John the\nBaptist arrogant, who boasted of one greater than he?  That's what many\nChristians do today.  How is that _in itself_ arrogant?\n>\n>> I'm not worthy!\n>Only seriously misinformed.\nWith your sophisticated put-down of \"they\", the theists, _your_ serious\nmisinformation shines through.\n\n--\nBake Timmons, III\n\n-- \"...there's nothing higher, stronger, more wholesome and more useful in life\nthan some good memory...\" -- Alyosha in Brothers Karamazov (Dostoevsky)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2965, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Sven Guckes <guckes@math.fu-berlin.de>\nSubject: Re: Looking for free/share wares\nOriginator: guckes@medusa\nX-Mail-Reader: Elm 2.4 PL21\nOrganization: Free University of Berlin, Germany\nDistribution: comp\nX-News-Reader: NN 6.4.13 #13\nLines: 14\n\nyoung@is.s.u-tokyo.ac.jp (YOUNG Shio Hong) writes:\n\n>I am looking for ftp sites (where there are freewares or sharewares) for Mac.\n>It will help a lot if there are driver source codes in those ftp sites.\n>Any information is appreciated. \n\nF A Q !\n\nReference:\nNewsgroups: comp.sys.mac.apps,comp.sys.mac.misc,comp.sys.mac.system,\n\tcomp.sys.mac.wanted,comp.sys.mac.hardware,comp.answers,news.answers\nSubject: Introductory Macintosh frequently asked questions (FAQ)\n\nSven :)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2966, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 17\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\ntcmay@netcom.com (Timothy C. May) writes:\n> But is it any worse than the current unsecure system? It becomes much \n> worse, of course, if the government then uses this \"Clinton Clipper\" to \n> argue for restrictions on unapproved encryption. (This is the main \n> concern of most of us, I think. The camel's nose in the tent, etc.) \n\nI agree.  This is the danger I see, not the system itself.  That is to say, \nthis is a political issue, not a technical one.\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2967, "properties": {"category": "misc.forsale", "text": "From: jb@access.digex.com (John Baker)\nSubject: FOR SALE: U.S. Robotics 2400 baud modem  $25/OBO\nArticle-I.D.: access.1prf3a$kn3\nDistribution: na\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 12\nNNTP-Posting-Host: access.digex.net\n\nI am upgrading my computer systems to FAX modems, and am selling my\n2 2400/1200/300 baud USR modems without FAX or error correction.\n\nOne is internal ($25), the other is external ($30). \n\nBoth are U.S. Robotics (the highest rated modem manufacturer).\n\nAdd $4 shipping or pick up in the Washington DC area.\n\nOffers welcome.  (I would trade either for a 1x3x70ns SIMM.)\n\nJohn Baker\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2968, "properties": {"category": "soc.religion.christian", "text": "From: llcoolj@athena.mit.edu (Alfred Eaton)\nSubject: Re: Mormon temples\nOrganization: Massachusetts Institute of Technology\nLines: 16\n\nI was wondering if anyone knew any changes to the temple\nceremony within the last fifty years....\nAlso, why do you think they were made (revelation, \nassimilation to mainstream Christianity, etc.)?\nI know that the God Makers was published quite a while\nago.  Could rituals have been changed since then?\n\nI am also very interested in the influence of Freemasonry\non early Mormonism, especially in the Smith family and \nin the Nauvoo settlement.  Info on any new studies would \nbe appreciated.\n\nThanks, \n\nFreddie Eaton\nllcoolj@athena.mit.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2969, "properties": {"category": "sci.crypt", "text": "From: marc@tanda.isis.org (Marc Thibault)\nSubject: Re: Don't fight Clipper Chip, subvert or replace it !\nReply-To: marc@tanda.isis.org\nDistribution: na\nOrganization: Thibault & Friends\nLines: 10\n\nIn article <ygoland.735123994@wright> \n(The Jester) writes: \n\n> Proof Windows is a Virus:It is very widespread, It eats up your disk\n> space, It slows down your computer, It takes control over your\n> computer, It performs disk access at random times, It displays silly\n> messages on your screen, It randomly crashes the computer-Vesselin\n\n        This sounds like a version Unix. Solaris?\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2970, "properties": {"category": "sci.med", "text": "From: tony@nexus.yorku.ca (Anthony Wallis)\nSubject: \"Choleric\" and The Great NT/NF Semantic War.\nOrganization: York University\nLines: 64\n\n[Cross-posted from alt.psychology.personality since it talks about\n physician's personalities.  Apologies to sci.med readers not\n familiar with the Myers-Briggs \"NT/NF\" personality terms.  But,\n in a word or two, the NTs (iNtuitive->Thinkers) are approximately your\n philosophy/science/tech pragmatic types, and the NFs (iNtuitive-Feelers)\n are your humanities/social-\"science\"/theology idealistic types.  They\n hate each others' guts (:-)) but tend to inter-marry.\n The letter \"J\" is a reference to conscienciousness/decisiveness.]\n\nJon Noring emits typical NF-type stuff \n> [Physicians] are just responding in their natural way:\n> Hyper-Choleric Syndrome (HCS).  ..\n> ..it is fascinating that a disproportionate number of\n> physicians will type out as NT ..\n> One driving characteristic of an NT, especially an NTJ, is their obvious\n> choleric behavior (driver, type A, etc.) - the extreme emotional need to\n> control, to lead, and/or to be the best or the most competent. ..\n\nPlease get it right, Jon.\n(This NTJ has a strong desire to correct semantic mistakes,\n because the NFs of this world are fouling the once-pristine NT\n intellectual nest with their verbal poop.)\n\nThe dominant correlation is NT <-> Phlegmatic (and _not_ NT <-> Choleric).\nOne of the semantic roots of \"choleric\" is the idea of \"hot\" (emotional)\nand one of the semantic roots of \"phlegmatic\" is \"cold\" (unemotional).\n\nHere is a thumbnail sketch (taken from Hans Eysenck, refering to Wundt)\nrelating the Ancient Greek quadratic typology with modern terms:\n------------------------------------------------------------------------------\n                                 Emotional   \n                                     ^\n     (\"Melancholic\")                 |                     (\"Choleric\")\n                                     |              \n           Thoughtful Suspicious     |    Quickly-aroused Hotheaded\n                  Unhappy Worried    |   Egocentric Histrionic\n                           Anxious   |  Exhibitonist \n                             Serious | Active           \n Unchangeable < ------------------------------------------------> Changeable\n                                Calm | Playful          \n                         Reasonable  |  Carefree\n              Steadfast Persistent   |   Hopeful Sociable\n     Highly-principled Controlled    |    Controlled Easy-going\n                                     |              \n    (\"Phlegmatic\")                   |                     (\"Sanguine\")\n                                     |\n                                     v\n                               Non-emotional\n------------------------------------------------------------------------------\n\nI suspect that your characterisation of NTs as \"choleric\" is what\nyou psych-types call a \"projection\" of your own NF-ness onto us.\n\n> Maybe we need more NF doctor's.  :^)\n\nPerhaps in serious pediatics and \"my little boy's got a runny\nnose, doctor\" general practice, but, please God, not in neurology,\nopthamology, urology, etc. etc.  And NF-psychiatry should seperate\nfrom NT-(i.e. real) psychiatry and be given a new name .. something \nlike \"channeling\"  :-).\n\n--\ntony@nexus.yorku.ca = Tony Wallis, York University, Toronto, Canada\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2971, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: CAN'T BREATHE\nArticle-I.D.: pitt.19438\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 33\n\nIn article <1p8t1p$mvv@agate.berkeley.edu> romdas@uclink.berkeley.edu (Ella I Baff) writes:\n\n>\n>Re: the prostate treatment is worse than the disease...In medicine there \n>really is something histologically identified as prostate tissue and \n>there are observable changes which take place, that whenever they occur, \n>can be identified as prostate cancer. What if I told you that most chiropractorstreat Subluxation (Spinal Demons), which don't exist at all. Therefore any \n>tissue damage incurred in a chiropractic treatment performed \n>in an effort to exorcise this elusive Silent Killer, such as ligamentous\n>damage and laxity, microfracture of the joint surfaces, rib fractures, \n>strokes, paralysis,etc., is by definition worse than non-treatment.\n>\n>John Badanes, DC, CA\n>email: romdas@uclink.berkeley.edu\n\nWhat does \"DC\" stand for?  Couldn't be an antichiropractic posting\nfrom a chiropractor, could it?  My curiosity is piqued.\n\nProstate CA is an especially troublesome entity for chiropractors.\nIt so typically causes bone pain due to spinal metastases that it\ngets manipulated frequently.  Manipulating a cancer riddled bone\nis highly dangerous, since it can then fracture.  I've seen at\nleast three cases where this happened with resulting neurologic\ndamage, including paraplegia.  This is one instance where knowing\nhow to read x-rays can really help a chiropractor stay out of trouble.\nDO chiropractors know what bony mets from prostate look like?\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.136+0000", "event": "documents", "entityId": 2972, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: eyal@fir.canberra.edu.au (Eyal Lebedinsky)\nSubject: Re: int15h for joysticks is slow....\nOrganization: Info Sci & Eng, University of Canberra, AUSTRALIA\nLines: 89\n\nIn <1ql6i3INN8uh@no-names.nerdc.ufl.edu> lioness@oak.circa.ufl.edu writes:\n\n>I'm using int15h to read my joystick, and it is hideously slow.  Something\n>like 90% of my CPU time is being spent reading the joystick, and this\n>is in a program that does nothing but printf() and JoyRead().\n\nIf you only do read/print then there is no reason for the joystick stuff\nnot to take 90% of the time even if it is efficient.\n\n>The problem is that a lot of programs trap int15h ( like SMARTDRV ) and\n>so it is a slow as hell interface.  Can I read the joystick port in\n>a reasonably safe fashion via polling?  And that isn't platform or\n>clockspeed specific?\n\nThe truth is that int 15H joystick reading IS slow. I read it directly\nfrom the hardware port. Note that doing so exposes you to intermittent\ndisturbance from interrupts, so you may want to read (say) twice in a\nrow and keep the lower results. Don't just turn interrupts off, it may\nprove detrimental to the health of any high speed comms and other\ndevices.\n\nHere is an example of how to do this:\n\n/* ------------------------------ joy.c ------------------------------------- */\n\n/* An example of how to read PC joystick port by polling the hardware port\n * directly.\n * Uses inp()/outp() for byte port access.\n * Will timeout when 'int count=0' counts up to zero.\n * This sample reads one port (A is presented and B is in the comments).\n * You can read both at once by merging the two, but it will time out\n * when either joystick is not connected.\n *\n * There is no need to optimize this routine since it runs for as long as\n * the joystick circuitry needs.\n *\n * Written by Eyal Lebedinsky (eyal@ise.canberra.edu.au).\n*/\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <conio.h>\n\nextern int readjoy (int *x, int *y, int *b1, int *b2);\n\n#define JOYPORT\t0x201\n\n#define\tXJOY\t0x01\t/* for joystick B use 0x04 */\n#define\tYJOY\t0x02\t/* for joystick B use 0x08 */\n#define XYMASK\t(XJOY|YJOY)\n#define\tBUT1\t0x10\t/* for joystick B use 0x40 */\n#define\tBUT2\t0x20\t/* for joystick B use 0x80 */\n\nint\t\t\t\t\t/* returns 0 if ok */\nreadjoy (int *x, int *y, int *b1, int *b2)\n{\n\tregister int\tcount;\n\tregister char\ttemp, joy;\n\n\ttemp = (char)XYMASK;\n\tcount = 0;\n\toutp (JOYPORT, 0);\t\t/* set trigger */\n\tdo {\n\t\ttemp ^= (joy = (char)inp (JOYPORT));\n\t\tif (temp & XJOY)\n\t\t\t*x = count;\n\t\tif (temp & YJOY)\n\t\t\t*y = count;\n\t} while (++count && ((temp = joy) & XYMASK));\n\t*b1 = !(joy & BUT1);\n\t*b2 = !(joy & BUT2);\n\n\treturn (!count);\n}\n\n/* This main() is for demonstration.\n*/\n\nint\nmain ()\n{\n\tint\trc, x, y, b1, b2;\n\n\tprintf (\"Hit any key to exit\\n\");\n\twhile (!kbhit ()) {\n\t\trc = readjoy (&x, &y, &b1, &b2);\n\t\tprintf (\"\\r%d %3d %3d %d %d\", rc, x, y, b1, b2);\n\t}\n}\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2973, "properties": {"category": "comp.sys.mac.hardware", "text": "From: an780@cleveland.Freenet.Edu (Travis Grundke)\nSubject: New Duo Dock With Processor: Here's Why\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 22\nReply-To: an780@cleveland.Freenet.Edu (Travis Grundke)\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nWell folks, after some thought the answer struck me flat in the face:\n\n\"Why would Apple release a Duo Dock with a processor of its own?\"\n\nHere's why- People have hounded Apple for a notebook with a 68040 processor\nin it. Apple can't deliver that right now because the 040 saps too much\npower, radiates far too much heat, and is too large for a notebook. How\ndoes one get around that without designing a new chipset? Use existing\nPowerBook technology to your best advantage. The Duo Dock gives Apple a\nunique ability to give users that 040 power in a \"Semi-Portable\" fashion.\nBy plunking the 040 into the Dock, you've got \"quadra\" power at your desk.\nOn the road, that 33mhz 68030 should be able to handle most of your needs.\nOkay, not the BEST solution, but its an answer to a no-win situation. :-)\nSo, does this mean one will be able to use the PowerBook's processor in\nparallel to the dock's processor? Okay, we're getting REALLY hypothetical\nnow... \n-- \nTravis Grundke\t\t    | MacGames Digest- Your #1 Source for Information,\nContributing Editor,\t    | News & Reviews of Gaming Software and the Gaming \nMacGames Digest\t \t    | Industry in the Macintosh Community. Reply  \nan780@cleveland.freenet.Edu | For More Information on MacGames Digest.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2974, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: free moral agency and Jeff Clark\nOrganization: Technical University Braunschweig, Germany\nLines: 30\n\nIn article <healta.136.734813153@saturn.wwc.edu>\nhealta@saturn.wwc.edu (TAMMY R HEALY) writes:\n \n(Deletion)\n>You also said,\"Why did millions suffer for what Adam and Ee did?  Seems a\n>pretty sick way of going about creating a universe...\"\n>\n>I'm gonna respond by giving a small theology lesson--forgive me, I used\n>to be a theology major.\n>First of all, I believe that this planet is involved in a cosmic struggle--\n>\"the Great Controversy betweed Christ and Satan\" (i borrowed a book title).\n>God has to consider the interests of the entire universe when making\n>decisions.\n(Deletion)\n \nAn universe it has created. By the way, can you tell me why it is less\ntyrannic to let one of one's own creatures do what it likes to others?\nBy your definitions, your god has created Satan with full knowledge what\nwould happen - including every choice of Satan.\n \nCan you explain us what Free Will is, and how it goes along with omniscience?\nDidn't your god know everything that would happen even before it created the\nworld? Why is it concerned about being a tyrant when noone would care if\neverything was fine for them? That the whole idea comes from the possibility\nto abuse power, something your god introduced according to your description?\n \n \nBy the way, are you sure that you have read the FAQ? Especially the part\nabout preaching?\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2975, "properties": {"category": "rec.autos", "text": "From: etxmst@sta.ericsson.se (Markus Strobl 98121)\nSubject: Re: Photo radar (was Re: rec.autos: Frequently\nNntp-Posting-Host: st83.ericsson.se\nReply-To: etxmst@sta.ericsson.se\nOrganization: Ericsson Telecom AB\nLines: 50\n\nIn article 2211@viewlogic.com, brad@buck.viewlogic.com (Bradford Kellogg) writes:\n>\n>In article <1993Mar20.050303.8401@cabot.balltown.cma.COM>, welty@cabot.balltown.cma.COM (richard welty) writes:\n>\n>|> Q:  What is Ka band radar?  Where is it used?  Should a radar detector be\n>|>     able to handle it? \n>|> \n>|> A:  Ka band has recently been made available by the FCC for use in the US\n>|>     in so-called photo-radar installations.  In these installations, a\n>|>     low-powered beam is aimed across the road at a 45 degree angle to the\n>|>     direction of traffic, and a picture is taken of vehicles which the\n>|>     radar unit determines to have been in violation of the speed limit.\n>|>     Tickets are mailed to the owner of the vehicle.  Because of the low\n>|>     power and the 45 degree angle, many people believe that a radar\n>|>     detector cannot give reasonable warning of a Ka band radar unit,\n>|>     although some manufacturers of radar detectors have added such\n>|>     capability anyway.  The number of locales where photo-radar is in use\n>|>     is limited, and some question the legality of such units.  Best advice:\n>|>     learn what photo radar units look like, and keep track of where they\n>|>     are used (or else, don't speed.)\n>\n>Photo radar and mailed tickets make no sense at all. Speeding is a moving \n>violation, committed by the operator, not the owner. The owner may be a \n>rental agency, a dealer, a private party, or a government agency. As long\n>as the owner has no reason to expect the operator will be driving illegally\n>or unsafely, the owner cannot be held responsible for what the operator does.\n>The car may even have been driven without the owner's knowledge or consent. \n>I can't believe a mailed ticket, where the driver is not identified, would \n>stand up in court. This is obviously a lazy, cynical, boneheaded, fascist \n>way to extort revenue, and has nothing to do with public safety.\n>\n>- BK\n>\n\n\nWe had those f*****g photo-radar things here in Sweden a while ago.\nThere was a lot of fuzz about them, and a lot of sabotage too (a spray-can\nwith touch-up paint can do a lot of good...).\n\nEventually they had to drop the idea as there were a lot of court-cases\nwhere the owner of the car could prove he didn't drive it at the time\nof speeding.\n\nI especially recall a case where it eventually proved to be a car-thief that\nhad stolen a car and made false plates. He, ofcourse, chose a license number\nof a identical car, so the photo seemed correct...\n\nIn conclosion: Photo-radar sucks, every way you look at it!\n\n/ Markus \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2976, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss)\nSubject: [lds] Thief goes to Paradise; Kermit goes off tangent\nOrganization: University at Buffalo\nLines: 65\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\n\nKermit Tensmeyer quoted from a few sources and then wrote something.\nI will attempt to construct a facsimile of what was previously said, and \nthen address Kermit's offering.\n\nJohn Redelfs originally wrote...\n\n  jr> I learned that a man cannot frustrate justice by repenting on his\n  jr> death bed because repentance is more than a feeling of remorse.  It\n  jr> requires faith in Christ proven by following him, by keeping his\n  jr> commandments.  Such cannot be accomplished on ones deathbed.\n\nTom Albrecht responded...\n\n  ta> So Jesus must have lied to the thief on the cross.\n\nJohn Redelfs wrote back that...\n\n  jr> Paradise and salvation are not the same thing.  Salvation is better.\n  jr> Refer to John 14:2.\n\nI responded to John that...\n\n  rw>    I don't see the effort to equate salvation with paradise.\n  rw>\n  rw>    Rather, I see implied the fact that only those who are saved\n  rw> may enter paradise.\n\nTo which Kermit wrote...\n\nkt> Incomplete reference:\nkt>\nkt> See also the discussion: Did Jesus go into Hell in the BibleStudy group\nkt> for the arguments that Paradise and Hell(sheol) are places after death\nkt> The discussion (no LDS were involved as far as I could see) argued using\nkt> standard Christian argument from the Bible that pretty much support the\nkt> LDS position.\nkt>\nkt>    Christ went to paridise after his death and burial.\nkt>\nkt>    He taught the prisoners and freed them from Darkness.\nkt>\nkt>    When he was resurrected, he had not yet ascended to his father.\nkt>\nkt> The arguement centered around what was or wasn't the proper biblical\nkt> terms for those places.\n\n     I respond.\n\n     The question that was raised was not if Jesus went to infernal Paradise\n     before entering into heaven. No one has made a point for or against \n     that issue, nor have they compared the LDS position against orthodox\n     belief. The infernal paradise is held to be Abraham's bosom (Luke 16), \n     the place of the righteous dead in sheol (equivalent to hades).\n\n     The point that was raised by John was that someone could not repent\n     on their death bed. Tom Albrecht pointed to a Biblical example that was\n     contradictory to what John's position put forward. The thief on the \n     cross was promised by Christ to be with Him in Paradise, the abode of \n     the righteous dead. John's position possibly needs to be reworked.\n     Kermit needs to address the topic at hand.\n\n=============================\nRobert Weiss\npsyrobtw@ubvms.cc.buffalo.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2977, "properties": {"category": "talk.politics.guns", "text": "From: rats@cbnewsc.cb.att.com (Morris the Cat)\nSubject: Re: My Gun is like my American Express Card\nOrganization: AT&T\nDistribution: usa\nLines: 43\n\n\n|What seems to be happening here is the situation getting totally blown out of\n|proportion.  In my post I was referring to your regular patrolman in a car\n|cruising around the city vs. gang members.  Of course the police have access\n|to the things that you mentioned but do they use tanks and such all of the\n|time?  Of course they don't and that's the point I was trying to make.  Every\n|day when I go out to lunch I always see cops coming in.  The majority that I\n|see are still carrying revolvers.  Not that there is anything wrong with a\n|revolver but if you're a cop that is up against some gang member with a couple\n|of automatics in his coat (I mean semi-auto handguns) you're going to be at a\n|disadvantage even with training.  I have been at a shooting range where gang\n|gang members were \"practicing\" shooting.  They were actually practicing\n|taking out their guns as quick as possible and shooting at the target\n|and they weren't doing too badly either.   The University cops here (who are\n|are state cops) are armed better than the Chicago police.  It seems most\n|state cops are.  I don't know where you are originally from David but you live\n|in Tennesse and I live in Chicago and see this crap everyday on the news\n|and in the papers.  I think the situation is just a tad different here\n|than there.\n\nHowever, don't forget that the police in Chicago can carry just about\nanything they want except for the Glock, which is not approved for\ncarry (Guess they figure all cops are like the Police Chief of Winnetka,\nwho happened to let off a stray round of 9mm. This is the same anti-gun\npolice chief that wanted full-auto Uzis for his patrol cars...).\n\nPerhaps in the judgement of the majority of Chicago's finest, a close-to-\n100% reliable weapon like a revolver is preferable to a 99.99% reliable\nautomatic. I note that in Germany, where certainly the 9mm semi-auto\nhandgun is king, some of the more elite police types want revolvers.\n\nI don't think the issue is cost, because Chicago police certainly make\non the order of at least $40K/year. \n\nYour presumption of \"disadvantage\" I think is not borne out by the\nexperiences of New York City's cops; there the cops usually come out\non top with their standard .38 Spl revolvers.\n\nI've seen S&Ws, Rugers and Beretta 9mms in addition to the revolvers\ncarried by Chicago cops.... in the past, I've seen .45 M1911s; others\nhave seen Browning Hi-Powers...\n\n|Jason\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2978, "properties": {"category": "rec.sport.hockey", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Re: Good for hockey/Bad for hockey\nOrganization: Georgia Institute of Technology\nLines: 20\n\n>>> > >I prefer the Miami Colons myself.  Headline: FLAMES BLOW OUT COLONS, 9-1\n>>> > Would Kevin Dineen play for the Miami Colons???\n>>> As a Flyers fan, I resent you making Kevin Dineen the butt of your\n>>> jokes:-)!\n>> Aw, just take a moment to digest it and I'm sure you'll see the humour...\n>If anybody is having problems following the thread be sure to ask the\n>origonal poster to rectify your misunderstanding.\n\n\tWhat about his rectum?\n\n\n\n\n\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2979, "properties": {"category": "talk.politics.guns", "text": "From: syck5280@miller.cs.uwm.edu (Steven B Syck)\nSubject: Re: Don't knock the Glock (was Re: My Gun is like my Am Ex Card)\nOrganization: University of Wisconsin, Milwaukee\nLines: 61\nDistribution: usa\nNNTP-Posting-Host: 129.89.9.13\n\nIn article <93105.164406U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>\n>All very true.  I'm going on what I have read and heard from friends.\n>Basically the Glock is great but I have heard/read that it is a lot harder to\n>learn proper handling because of the type of safety that it has.  I was\n>looking at a Glock .40S&W and the S&W 4006 a couple of weeks ago and the\n>safties on the guns were very different.  The saftey on the 4006 seemed a lot\n>more \"safe\"  (for lack of a better word) than the one on the Glock.  Of course\n>this could also be a bad thing if you were to pull the gun on somebody.  You\n>would spend more time fiddling around turning the safety off.  Personally I\n>like the Glocks because they are very light and I think they look really cool\n>(guess that's why they use them in so many movies) but I wouldn't get one as\n>my first semi-auto because of the safety.  I would prefer more training with\n>a \"traditional\" semi-auto (ala Colt .45) but of course that's just my opinion.\n>\n>Jason\n\n\tAt the risk of starting the 'my gun is better than yours' flame\nwar, I must disagree.\n\t\n\tThere is no secret in handling a Glock.  In fact, it is often\nchosen (besides its other merits) because it shoots like a revolver does\nbasically.  It can limit the training time (read budget $$$) due to the\nfact there are no 'external' safties other than the trigger, hence less\ntraining time required. \n\n\tSmith & Wesson (among other types) are chosen due to the fact taht\nthey do have the external safties (hammer drop,as well as mag drop) which\nif properly used have saved many lives when 'Mr. Bad' snatched the gun\nfrom the officer and tried to shoot said officer the gun was on safe and\nwould not fire.  This point had been made in many articles in various \ngun magazines.  If fact, one author (can't remember who) staged a little\ntest where he had a revolver and a S&W on safe laying on a table and asked\npeople with little firearms experience to on his signal, grab the gun and\nshoot a target.  He timed the people using each gun.  The revolver times\nwere pretty close, but some of the times with the S&W were in minutes, or\nthe person just gave up because they could not figure out the saftey.\n\n\tYou don't often see Colt 45 autos issued due to the light trigger\nwhich can be accidentally fired in a stress situation, opening the issuing\ncity,county, etc.. to lawsuits, bad press, etc..\n\n\tOf course any problem can be overcome with enough training, but\nsuch training is not always available to budget crunched departments.  I\nknow if I were a Cop I would want something like a S&W just for the off\nchance of the gun getting taken away.  The safety doesn't guarantee that\n'Mr. Bad' won't figure it out and shoot me, but it could buy enough time\nto draw a second gun and shoot 'Mr. Bad' before it's too late.\n\n\tDon't think I am too biassed here just because I have had 3 Glocks\nin my possession at one time, because I have had a .45 as well.  In fact,\nit was my first handgun.  Remember, the ultimate 'safety' is YOU the\noperator, and no safety is going to stop an negligent discharge (note I\ndon't say accidental) if you break the rules of gun handling.\n\n\tAs per the part of being light weight and looking cool, I agree\n100%.  I wouldn't rule it out as a first purchase.  \n\n-Just my $.02 + tax\n-------   Steve Syck        syck5280@miller.cs.uwm.edu        --------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2980, "properties": {"category": "talk.politics.guns", "text": "From: William_Mosco@vos.stratus.com\nSubject: RE: Blast them next time\nOrganization: Stratus Computer, Marlboro Ma.\nLines: 29\nDistribution: usa\nNNTP-Posting-Host: hudm4-enet.mfg.stratus.com\n\n\n>        #DELETED BECAUSE IT SOUNDS TWISTED\" \n>With the WoD and the increased crime in the streets the BATF is needed \n>more now then ever. If they blast away a few good fokes then that is \n>the price we all have to pay for law and order in this country. Look \n>at all the good people that died in wars to protect this great country \n>of ours. \n\n ##flame thrower on## \n Well I don't want my tax dollars going to that kind of philosophy. \n maybe if the good folks you are talking about are people like you \n than I might be inclined to accept it. What does the batf do anyway? \n Why don't we have a bureau for militant, paranoid, freedom killers \n like yourself. People like you are more dangerous than alcohol, \n tobacco and firearms. \n>With the arms build up in Waco they needed to hit that compound with \n>mega fire power. They could of gone in there blasting and killed a few \n>women and kids but it would of been better then letting them all burn \n>to death 51 days later. \n Maybe we should just have nuked the whole city, I mean, what's a \n 100,000 good souls anyway? \n Get real, you sound like a racist.  I guess life isn't so precious \n to you, do you realize that there were  24 children KILLED!!! \n They will never get to fall in love, they won't see another sunrise, \n no prom, no first date, no football, baseball no NOTHING.  Why doesn't \n some people think first before they let everyone know how narrow they \n are. \n\n \"Flame thrower off\" \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2981, "properties": {"category": "comp.sys.mac.hardware", "text": "From: U56149@uicvm.uic.edu\nSubject: LCIII & MIDI\nArticle-I.D.: uicvm.93096.135945U56149\nOrganization: University of Illinois at Chicago, academic Computer Center\nLines: 11\n\nDoes anyone have any experience using LCIII with MIDI?  Do they get along OK?\nI have heard that the IIvx is not suitable for MIDI, but I have not heard anyon\ne say anything definitive about LCIII and MIDI?  If you have had experience, wh\nat MIDI interface have you used?  Anyone used Finale software in this setting?\n Please e-mail.  I will summarize.\n\nThanks,\n\nJerry Bartlett\nPeoria, Illinios\nu56149@uicvm.cc.uic.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2982, "properties": {"category": "alt.atheism", "text": "From: a137490@lehtori.cc.tut.fi (Aario Sami)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Tampere University of Technology, Computing Centre\nLines: 16\nDistribution: sfnet\nNNTP-Posting-Host: cc.tut.fi\n\nIn <kmr4.1466.734160929@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n     \n>     \"Wait. You just said that humans are rarely reasonable. Doesn't that\n>      contradict atheism, where everything is explained through logic and\n>      reason? This is THE contradiction in atheism that proves it false.\"\n>           --- Bobby Mozumder proving the existence of Allah, #2\n\nDoes anybody have Bobby's post in which he said something like \"I don't\nknow why there are more men than women in islamic countries. Maybe it's\natheists killing the female children\"? It's my personal favorite!\n\n-- \nSami Aario         |  \"Can you see or measure an atom? Yet you can explode\na137490@cc.tut.fi  |   one. Sunlight is comprised of many atoms.\"\n-------------------'  \"Your stupid minds! Stupid, stupid!\"\nEros in \"Plan 9 From Outer Space\"     DISCLAIMER: I don't agree with Eros.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2983, "properties": {"category": "rec.motorcycles", "text": "From: cjackson@adobe.com (Curtis Jackson)\nSubject: Re: Countersteering_FAQ please post\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 21\n\nIn article <1qjn7i$d0i@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n}>On a\n}>waterski bike, you turn the handlebars left to lean right, just like on\n}>a motorcycle, so this supports the move-the-contact-patch-from-beneath-the\n}>centre-of-mass theory on how to *lean*. This contradicts the need for\n}>gyroscopic precession to have a countersteering induced *lean*.\n}\n}...FOR A WATERSKI BIKE.  It contradicts nothing for a motorcycle.\n\nNot only that, but this morning I saw a TV ad for a waterski bike\n(a Sea Doo, for those who care). I watched the lengthy ad very\ncarefully, and in every case and at every speed the riders turned\nthe handlebars left to go left, and right to go right. In other\nwords, they were *NOT* countersteering.\n\nSo perhaps it is only *some* waterski bikes on which one countersteers...\n-- \nCurtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\nDoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\"\n\"There is no justification for taking away individuals' freedom\n in the guise of public safety.\" -- Thomas Jefferson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2984, "properties": {"category": "soc.religion.christian", "text": "From: HOLFELTZ@LSTC2VM.stortek.com\nSubject: Re: Deification\nOrganization: StorageTek SW Engineering\nLines: 19\n\nAaron Bryce Cardenas writes:\n\n>Basically the prophet's writings make up the Old Testament, the apostles' \n>writings make up the New Testament.  These writings, recorded in the Bible, \n>are the foundation of the church.\n\nhayesstw@risc1.unisa.ac.za (Steve Hayes) writes:\n\n>That seems a most peculiar interpretation of the text. The \"apostles and\n>prophets\" were PEOPLE, rather than writings. And there were new testament\n>prophets as well, who built up the churches.\n\nRemember the OT doctrine of 2 witnesses?  Perhaps the prophets\ntestified He is coming.  The Apostles, testified He came.\n \nAfter all, what does prophesy mean?  Secondly, what is an Apostle?  Answer:\nan especial witness--one who is suppose to be a personal witness.  That means\nto be a true apostle, one must have Christ appear to them.  Now lets see\nwhen did the church quit claiming ......?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2985, "properties": {"category": "alt.atheism", "text": "From: mayne@pipe.cs.fsu.edu (William Mayne)\nSubject: Re: [soc.motss, et al.] \"Princeton axes matching funds for Boy Scouts\"\nOrganization: Florida State University Computer Science Department\nReply-To: mayne@cs.fsu.edu\nLines: 21\n\nIn article <JVIGNEAU.93Apr5182106@cs.ulowell.edu> jvigneau@cs.ulowell.edu (Joe Vigneau) writes:\n>\n>If anything, the BSA has taught me, I don't know, tolerance or something.\n>Before I met this guy, I thought all gays were 'faries'.  So, the BSA HAS\n>taught me to be an antibigot.\n\nI could give much the same testimonial about my experience as a scout\nback in the 1960s. The issue wasn't gays, but the principles were the\nsame. Thanks for a well put testimonial. Stan Krieger and his kind who\nthink this discussion doesn't belong here and his intolerance is the\nonly acceptable position in scouting should take notice. The BSA has\nbeen hijacked by the religious right, but some of the core values have\nsurvived in spite of the leadership and some scouts and former scouts\nhaven't given up. Seeing a testimonial like this reminds me that\nscouting is still worth fighting for.\n\nOn a cautionary note, you must realize that if your experience with this\ncamp leader was in the BSA you may be putting him at risk by publicizing\nit. Word could leak out to the BSA gestapo.\n\nBill Mayne\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2986, "properties": {"category": "rec.sport.baseball", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: My Predictions For 1993\nArticle-I.D.: netnews.118466\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 17\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <1993Apr5.183304.29191@oswego.Oswego.EDU> iacs3650@oswego.Oswego.EDU (Kevin Mundstock) writes:\n>Since everyone else seems to be running wild with predictions, I've\n>decided to add my own fuel to the fire:\n>They might seem a bit normal, but there are a few (albeit, small) surprises.\n\n>AL Manager of the Year-Buck Showalter\n\nWhat makes you think Buck will still be in New York at year's end with\nGeorge back?  :-)\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n\"Next time you go over my head, I'll have yours on a platter.\"\n\t\t\t\t\t\t-- Cmdr. Benjamin Sisko, 1993\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2987, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 26\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr21.150545.24058@iti.org> aws@iti.org (Allen W. Sherzer) writes:\n|In article <C5sJDp.F23@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:\n|\n|\n|In spite of my great respect for the people you speak of, I think their\n|cost estimates are a bit over-optimistic. If nothing else, a working SSTO\n|is at least as complex as a large airliner and has a smaller experience\n|base. It therefore seems that SSTO development should cost at least as\n|much as a typical airliner development. That puts it in the $3G to $5G\n|range.\n>\n\nAlan,\n\n\tdon't forget,  a HUGE  cost for airliner developement is FAA\ncertification.  the joke is when the paperwork  exceeds teh weight\nof the airplane,  it will fly.\n\nThe SR-71, and teh X-15  both highly ambitious  aero-space projects were done\non very narrow engineering budgets.   Partly because they didn't spend much\non paper  pushing.   There is some company in missouri  trying to\nget funding to build light commercial transporters  on a low cost basis,\nmostly by reducing FAA  certification costs.\n\npat\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2988, "properties": {"category": "talk.politics.mideast", "text": "From: msilverm@nyx.cs.du.edu (Mike Silverman)\nSubject: Re: Clinton's views on Jerusalem\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 23\n\nbf3833@pyuxe.cc.bellcore.com (feigenbaum,benjamin) writes:\n\n>I recently read that during Bill Clinton's campaign, he stated\n>that if elected he would immediately recognize Jerusalem as\n>Israel's capital.  According to the article, Mr. Clinton\n>reaffirmed this after winning the presidency.  However,\n>during recent talks with President Mubarak, Secretary of\n>State Christopher stated that \"the status of Jerusalem\n>will be a final matter of discussion between the parties\".\n\n>Now I don't want to start a big discussion over the status\n>of Jerusalem.  All I want to know is if anyone can \n>authenticate Mr. Clinton's statements with dates, places, etc.\n\nFrom a recent interview in Middle East Insight magazine,\nClinton said that he supports moving the US Embassy to\nJerusalem, but would not do so at this time because it\nwould interrupt the peace talks. \n\n--\nmsilverm@nyx.cs.du.edu\t\t\t\tGO CUBS!!!\n\n\"One likes to believe in the freedom of baseball\" - Geddy Lee\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2989, "properties": {"category": "talk.politics.guns", "text": "From: atfurman@cup.portal.com (A T Furman)\nSubject: Re: The Cold War: Who REALLY Won?\nOrganization: The Portal System (TM)\nLines: 51\n\n>If one reasons that the United States of America at one time represented \n>and protected freedom << individual liberty and personal responsibility >> \n>(and I do, in fact, think that this is true) and that totalitarianism << \n>absolute government control and tyranny >> represents freedom's opposite \n>(which it does), did the USA really win the cold war?\n>\n>Standard disclaimers ALWAYS apply!\n>\n>----------------\n>Graham K. Glover\n>----------------\n\nThe Cold War has not ended.  The only thing that has happened is that \nthe two sides have exchanged roles.\n\nThe USA has a higher imprisonment rate (400 per 100,000 population)\nthan any country in Europe by a factor of 10 or so.  In California,\nit is over 600 per 100,000 population.  The prison population in\nCalifornia is now over 100,000, a quadrupling since 1980.  Most of\nthese inmates were convicted under the drug prohibition laws.  Police\nnow confiscate property, without trial, under a \"good faith probable\ncause\" standard, in the name of depriving the horrible ghastly drug\ndealers of their ill-gotten gains.  Conduct an opinion poll, and a\nmajority will answer \"yes\" if you ask them whether civil liberties and\ndue process should be diluted in order to Send Our Young People The\nMessage That We Are Serious About Winning The War On Drugs.  I don't\nknow whether anyone has measured such a figure among gun owners, but\nI would expect the same result.  They certainly seem to vote that way.\n\nAccording to Jack Herer's book _The Emperor Wears No Clothes_, over\nTWELVE MILLION YEARS of prison time have been served under the\nmarijuana prohibition laws, by people who were minding their own\nbusiness and causing no harm to others (and less harm to themselves\nthan users of tobacco, with 400,000 confirmed kills/year).  Under\nthe \"War on Drugs\" campaign of \"zero tolerance\" due process protections\nhave eroded, and mandatory sentences of ten years without parole have\nproliferated.  By and large, gun owners have voted for the politicians\nwho favor such measures.  And now, all the precedents--not only\nlegal, but political:  \"My fellow Americans, we must send our young\npeople the message that we are serious about winning the War On\nMurder\"--are going to be applied to the oncoming wave of gun\nprohibition laws.  Gun owners are about to get a taste of the medicine\nthey voted for believing it would be used only on those with different\ntastes in recreational drugs.\n\nWhat goes around comes around.\n\n\n    Alan T. Furman         | Don't blame me -- I voted Libertarian\n---------------------------+----------------------------------------\n  atfurman@cup.portal.com  |   (800)682-1776 for more information\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2990, "properties": {"category": "soc.religion.christian", "text": "From: mls@panix.com (Michael Siemon)\nSubject: Re: Weirdness of Early Christians\nOrganization: PANIX Public Access Unix, NYC\nLines: 58\n\nWere the early Christians weird?  Yes!  So were their non-Christian\ncontemporaries (the more familiar you are with late Republican Rome\nor the Pricipate, the weirder those people will seem -- forget the\ncreative filtering done by Renaissance and Eighteenth Century hero\nworship.)  So are modern non-Christians.  And Christians.\n\nYou are pretty weird, yourself, with your rather acid dismissal of\nLuther and of Protestantism -- and in apparently buying into a\nsimplistic propaganda model about Catholicism *not* being faddish.  \nSure, it's so large that global fads take longer cycles than they\ndo in smaller denominations (and local ones are not usually visible\nunless you do a lot of traveling to exotic lands :-)).  May I recom-\nmend, as a salutary antidote to this nonsense Philippe Aries' book\n_The Hour of our Death_, a longitudinal study of death customs in \nWestern [specifically Catholic] Christendom?\n\nAnd it won't help to escape into the obscurity of the first Christian\ncentury.  Paul was pretty weird, too; as were Peter and the others in\nthe (apparently quite weird) circle around Jesus.\n\nWhat I think you might find helpful is a bit more charity -- try to\nunderstand these weirdos and nutcases with the same respect and love\nyou would expect others to show YOUR notions.  We *are* commanded to\nlove one another, after all.  And Brown's book is, in fact, a heroic\nattempt to SEE the groupings he talks about as motivated in love and\nthe gospel and their social contexts.  (If anything, Brown is *too*\nheroic here -- he manages to overstrain himself at times :-))\n\nI don't suggest that we *follow* any of these old cult paths -- and\nit raises hard questions from the skeptic inside me that so much of\nearly Christianity *was* like the weird (Christian and non-Christian)\ncults we see today.  To that extent, I think you raise a serious\nproblem (and perhaps your phrasing is implicitly self-deprecatory\nand ironic.)\n\nBut the first principle for *answering* these questions is respect and\nlove for those we do not understand.  And it helps to *work* at under-\nstanding (as long as we do not get overwhelmed by revulsion and begin\nto withdraw our respect for them as people.)  I would advise, in other\nwords, MORE historical reading (Brown's other books are also good, most\nespecially his bio. of Augustine; also try Robin Lane Fox's _Christians\nand Pagans_, maybe the Paul Veyne ed. _History of Private Life_, some\nof Foucault's books on sexuality in the ancient world ...)\n\nHumanity *is* weird -- we have known ONE sane person, and we killed Him.\nFortunately for us, this has proved a Comedy rather than a Tragedy.\n\nEaster, 1993.\n\n(yes; this is a tad early -- our Vigil service here has been moved forward\nbecause so many churches in the area have taken to doing their own Vigils,\nand the seminarians must therefore worship-and-run if they are to do it\nhere and there as well.  Think of this as an Anglican fad.  :-))\n-- \nMichael L. Siemon\t\tWe must know the truth, and we must\nmls@ulysses.att.com\t\tlove the truth we know, and we must\n     - or -\t\t\tact according to the measure of our love.\nmls@panix.com\t\t  \t\t\t\t-- Thomas Merton\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2991, "properties": {"category": "sci.crypt", "text": "From: tuinstra@sunspot.ece.clarkson.edu.soe (Dwight Tuinstra)\nSubject: re: WH announcement\nReply-To: tuinstra@sunspot.ece.clarkson.edu.soe\nOrganization: Sun Microsystems, Inc.\nLines: 70\nNntp-Posting-Host: sunspot.ece.clarkson.edu\nCc: tuinstra\n\n\nQ:   Who was consulted?  The Congress?  Industry?\n\nA:   We have on-going discussions with Congress and industry on\n     encryption issues, and expect those discussions to intensify\n     as we carry out our review of encryption policy.  We have\n     briefed members of Congress and industry leaders on the\n     decisions related to this initiative.\n\nCongress??  So we're playing politics before we talk to CPSR, academia,\nthe public, internet users?  I`ve heard of top-down design, but top-down \ndemocracy?? [Just whose state/district are the chip manufacturers in?]\n\nQ:   If the Administration were unable to find a technological\n     solution like the one proposed, would the Administration be\n     willing to use legal remedies to restrict access to more\n     powerful encryption devices?\n\nA:   This is a fundamental policy question which will be\n     considered during the broad policy review. [...bs about\n     the wonderfulness of the key escrow system...]\n\n     The Administration is not saying, \"since encryption\n     threatens the public safety and effective law enforcement,\n     we will prohibit it outright\" (as some countries have\n     effectively done); \n\nThey'll just provide an easily-compromised version to JQ Public.\n\n                         nor is the U.S. saying that \"every\n     American, as a matter of right, is entitled to an\n     unbreakable commercial encryption product.\"  \n\nMaybe we need a CRA -- Cryptographic Rights Amendment.\n\n                                                  There is a\n     false \"tension\" created in the assessment that this issue is\n     an \"either-or\" proposition.  Rather, both concerns can be,\n     and in fact are, harmoniously balanced through a reasoned,\n     balanced approach such as is proposed with the \"Clipper\n     Chip\" and similar encryption techniques.\n\nNice lullaby.  But why am I not soothed?\n\n----------------\nAlso, \n\nIn article 15472@leland.Stanford.EDU, arc@leland.Stanford.EDU (Andrew Richard Conway) writes:\n>P.S. I can't work out why the US government doesn't want to sell\n>them overseas. After all, they are rather easy for US interests to decode,\n>so make a perfect tool for industrial/military espionage...lulling \n>anyone stupid enough to buy it into a false sense of security. You will\n>notice that there is NO mention anywhere about safety for non-Americans.\n>\n\nWhy repeat themselves?  It appears to some (and the story looks pretty\nconvincing to me, too) that the Justice Department stole a case-tracking\nsystem, modified it, and distributed it to \"friendly\" police and suchlike\nagencies around the world, eg. the Canadian Mounties.  Of course, I have \nno doubt they swore Scout's Honor that there were no backdoors.\n\nWith that kind of intelligence, who'd want to be swamped with terabytes\nof commercial traffic?\n\n+========================================================================+\n|  dwight tuinstra             best:  tuinstra@sandman.ece.clarkson.edu  |\n|                         tolerable:  tuinstrd@craft.camp.clarkson.edu   |\n|                                                                        |\n|        \"Homo sapiens: planetary cancer??  ...  News at six\"            |\n+========================================================================+\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2992, "properties": {"category": "rec.sport.hockey", "text": "From: hse31913@vax1.utulsa.edu (hse31913@vax1.utulsa.edu(Scott H.), U of Tulsa)\nSubject: Re: WHERE ARE THE DOUBTERS NOW?  HMM?\nOrganization: The University of Tulsa\nLines: 28\n\nIn article <1993Apr4.051942.27095@ramsey.cs.laurentian.ca>,\n maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n \n> And after the Leafs make cream cheese of the Philadelphia side tomorrow\n> night the Leafs will be without equal.\n> \n> The Leafs are the best team in the Campbell Conference.\n> \n> cordially, as always,\n> \n> rm\n>  \n> -- \n> Roger Maynard \n> maynard@ramsey.cs.laurentian.ca \n\nMore like Philadelphia making dust out of dead Leafs.\nRoger why do you continue to embarass yourself with your brash predictions?\n\nThey got whitewashed by a last place team.  Granted Philly is pretty decent\nbut the \"best team in the Cambell Conference\" would have beaten a last\nplace team.\n\n-- \nScott E. Humphrey,  Chemical Engineering, University of Tulsa\nhse31913@vax1.utulsa.edu\nBruins for The Cup!!!\nOpinions expressed are those of the individual, not of the U of Tulsa.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2993, "properties": {"category": "talk.politics.mideast", "text": "From: adams@bellini.berkeley.edu (Adam L. Schwartz)\nSubject: Re: Seventh Century A.D. Armenian Math Problems\nNntp-Posting-Host: bellini.berkeley.edu\nOrganization: U.C. Berkeley -- ERL\nLines: 24\n\nIn article <1r6qn1INNd0n@flop.ENGR.ORST.EDU> koc@rize.ECE.ORST.EDU (Cetin Kaya Koc) writes:\n>> Problem 1\n>> \n>> My father told me the following story. During the famous wars between the \n>> Armenians and the Persians, prince Zaurak Kamsarakan performed extraordinary \n>> heroic deeds. Three times in a single month he attacked the Persian troops. \n>> The first time, he struck down half of the Persian army. The second time, \n>> pursuing the Persians, he slaughtered one fourth of the soldiers. The third \n>> time, he destroyed one eleventh of the Persian army. The Persians who were \n>> still alive, numbering two hundred eighty, fled to Nakhichevan. And so, from \n>> this remainder, find how many Persian soldiers there were before the  \n>massacre.\n>> \n>\n>Answer: a(1-1/2-1/4-1/11)=280 -> a = 1760\n>\n\nI thought the implication was that the prince destroyed one fourth of the\nremaining Persian troops on the second round, and then 1/11 of those remaining\non the third round.  This would mean\n\nAnswer: a*(1 - 1/2)*(1 - 1/4)*(1 - 1/11) = 280  -->  a = 821.333\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2994, "properties": {"category": "soc.religion.christian", "text": "From: jcj@tellabs.com (jcj)\nSubject: Re: When are two people married\nOrganization: Huh?  Whuzzat?\nLines: 14\n\nJEK@cu.nih.gov writes:\n\n>...\n>The essential ingredient of a marriage is mutual commitment. Two\n>persons are considered to be married if and only if they have bound\n>themselves by mutual promises to live together as husband and wife,\n>forsaking all others, till death do them part.\n>\n\nDoes that imply that people who take marriage vows but aren't sincere\nare not married?\n\nJeff Johnson\njcj@tellabs.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2995, "properties": {"category": "misc.forsale", "text": "From: tedm@tsoft.net (Ted Matsumura)\nSubject: Re: Catalog of Hard-to-Find PC Enhancements (Repost)\nArticle-I.D.: tsoft.C5JCCG.3Bn\nDistribution: usa\nOrganization: TSoft BBS and Public Access Unix, +1 415 969 8238\nLines: 34\n\n[stuff deleted]\n>\n>For example, I subscribe to 2 magazines, \"ABC news\" and \"XYZ products\".\n>I give my name as \"Joseph X. Cool\" for the first, and \"Joe Q. Cool\" for\n>the 2nd. When I get junk mail addressed to \"Joseph X.  Cool\", I know\n>where they bought my name.\n>\n>This doesn't help NOT getting junk mail, but you at least know who's\n>selling your name. And if you ask companies to NOT sell your name to\n>mailing lists/tele-marketeers, they are not supposed to (as in, it's\n>illegal.)\n>\n>And in case you haven't guessed, I don't really use Joe Cool.\n>\n>--\n\nMy company maintains a 20,000+ mailing list which is regularly rented for\none time use by the major software companies.  The method you are using to\n\"seed\" your junk mail, isn't really effective.  Bulk mailers regulary \neither send their databases to be \"cleaned\" by the NCOA, which if you've\nmoved recently, will revert back to the original \"xxx Cool\", and in large\nmailings, there will likely be a dupe of you, and they'll pick the first, and use the\nothers for future mailings.\n \nBTW, our list is currently one of the hottest lists for actual buyers of\na MS Windows utility product in the $100 range, and is available through\nDirect Media in CT., at $0.10 per name.  Please let your direct mail\nmarketing rep. know about this..  Thanks.\n \nTEd\n>\n>  --- Matthew Caprile    || Hey, I only speak for myself ! Even I  ---\n>  ---                    || won't admit to the opinions expressed  ---\n>  --- caprile@apple.com  || here, so don't expect my employer to.  ---\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.137+0000", "event": "documents", "entityId": 2996, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsd.cc.buffalo.edu (Robert Weiss)\nSubject: 16 Apr 93   God's Promise in Psalm 32:8\nOrganization: University at Buffalo\nLines: 6\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsd.cc.buffalo.edu\n\n\n\tI will instruct thee and teach thee\n\tin the way which thou shalt go:\n\tI will guide thee with mine eye.\n\n\tPsalm 32:8\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 2997, "properties": {"category": "rec.sport.hockey", "text": "From: John Michael Santore <jsbh+@andrew.cmu.edu>\nSubject: Re: NHL Team Captains\nOrganization: Sophomore, Mathematics, Carnegie Mellon, Pittsburgh, PA\nLines: 31\n\t<1993Apr19.022113.12134@ann-arbor.applicon.slb.com>\n\t<wfohu=K00WBM850Z5v@andrew.cmu.edu>\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <wfohu=K00WBM850Z5v@andrew.cmu.edu>\n\n>Michael Collingridge writes:\n> \n>>And, while we are on the subject, has a captain ever been traded, \n>>resigned, or been striped of his title during the season? Any other \n>>team captain trivia would be appreciated.\n> \n>Wasn't Ron Francis captain of the Whalers when he was traded to\n>Pittsburgh?\n>\n>Mom.\n\nRick Tocchet was captain of the Flyers for several years before he was\ntraded to the Pens...\n\n                                    -John Santore\n\n\n=============================================================================\n ____________________                                \n/                    \\                   \"We break the surface tension \n\\_________     ____   \\                   with our wild kinetic dreams\"\n/             /    \\   \\                        -Rush, Grand Designs\n\\_______     /  (*) )   )\n/           / /\\___/   /                 Go Philadelphia Flyers!\n\\_____     / /        /\n/         /  \\_______/                   John Santore (jsbh@andrew.cmu.edu)\n\\________/   \n          \nRush-Yes-King Crimson-Emerson, Lake and Palmer-Marillion-Genesis (w/ Gabriel)\n=============================================================================\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 2998, "properties": {"category": "talk.religion.misc", "text": "From: mikec@sail.LABS.TEK.COM (Micheal Cranford)\nSubject: Re: *** The list of Biblical contradictions\nDistribution: usa\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 37\n\nJim Brown wrote :\n\n[ deleted ]\n>I feel that those who use the KJV as a basis for arguing Biblical \n>contradictions are either being intellectually dishonest (purposefully\n>wanting to show the Bible in the worst light possible), or they are\n>being mentally lazy and are taking the easy way out.  Either way, they\n>leave the theist the option of countering with, \"Well, that's just the\n>KJV, that's not what my XXX version says.\"\n[ deleted ]\n\n  Unfortunately, it's not that simple.  The KJV is preferred by the majority\nof fundamentalists (at least here).  The second part of your argument fails\nas well, since that statement can be used against any version (not just the\nKJV).\n\n[ deleted ]\n>I've based my argument on one of the best modern translations\n>available which is based on the work of the leading Biblical scholars.\"\n[ deleted ]\n\n  I would not find this statement to be very useful since it is an appeal\nto authority and the opposition will just claim that their authorities are\n\"better\".  A second tact that local creationists have used is to reply \"but\nthose scholars are atheists and cannot be believed\" (they will also use this\nphrase to describe any theologians that they don't agree with).\n\n[ deleted ]\n>>>/GEN 30:39 And the flocks conceived before the rods, and brought forth\n>>>/cattle ringstraked, speckled, and spotted.\n[ deleted ]\n\n  The verse being discussed clearly claims that sympathetic magic works (i.e.\nplacing stripped sticks in the cattle breeding grounds causes stripped and\nspotted calves to be born) and should be attacked on that basis (no biologist\nhas ever observed this claimed correlation).\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 2999, "properties": {"category": "sci.med", "text": "From: jmetz@austin.ibm.com ()\nSubject: Re: Twitching eye?\nOriginator: jmetz@jmetz.austin.ibm.com\nOrganization: IBM Austin\nLines: 4\n\n\n  I had this one time.  I attributed it to a lack of sleep since it disappeared\nafter a few nights of good zzz's.\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3000, "properties": {"category": "soc.religion.christian", "text": "From: vbv@lor.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.)\nSubject: Re: The arrogance of Christians\nOrganization: Case Western Reserve Univ. Cleveland, Ohio (USA)\nLines: 28\n\nIn article <Apr.22.00.56.15.1993.2073@geneva.rutgers.edu> hayesstw@risc1.unisa.ac.za (Steve Hayes) writes:\n\n>A similar analogy might be a medical doctor who believes that a blood \n>transfusion is necessary to save the life of a child whose parents are \n>Jehovah's Witnesses and so have conscientious objections to blood \n>transfusion. The doctor's efforts to persuade them to agree to a blood \n>transfusion could be perceived to be arrogant in precisely the same way as \n>Christians could be perceived to be arrogant.\n\n>The truth or otherwise of the belief that a blood transfusion is necessary \n>to save the life of the child is irrelevant here. What matters is that the \n>doctor BELIEVES it to be true, and could be seen to be trying to foce his \n>beliefs on the parents, and this could well be perceived as arrogance.\n\nLet me carry that a step further.  Most doctors would not claim to be \ninfallible.  Indeed, they would generally admit that they could conceivably\nbe wrong, e.g. that in this case, a blood tranfusion might not turn out to \nbe necessary after all.  However, the doctors would have enough confidence\nand conviction to claim, out of genuine concern, that is IS necessary.  As\nfallible human beings, they must acknowledge the possibility that they are\nwrong.  However, they would also say that such doubts are not reasonable,\nand stand by their convictions.\n\n-- \nVirgilio \"Dean\" Velasco Jr, Department of Electrical Eng'g and Applied Physics \n\t CWRU graduate student, roboticist-in-training and Q wannabee\n    \"Bullwinkle, that man's intimidating a referee!\"   |    My boss is a \n   \"Not very well.  He doesn't look like one at all!\"  |  Jewish carpenter.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3001, "properties": {"category": "talk.politics.mideast", "text": "From: stssdxb@st.unocal.com (Dorin Baru)\nSubject: Re: Deriving Pleasure from Death\nOrganization: Unocal Corporation\nLines: 26\n\n\nPeter Garfiel Freeman writes:\n\n\n>>them. (By the way, I do not applaud the killing of _any_ human being,\n>>including prisoners sentenced to death by our illustrious justice department)\n>>\n>>Peace.\n>>-marc\n\n\n>Boy, you really are a stupid person.  Our justice department does\n>not sentence people to death.  That's up to state courts.  Again,\n>get a brain.\n\n\nPeter, I think you are ridiculous here. Stupidity is not a measure of how\nwell someone knows our judicial system. I guess Marc meant that he is \nagainst death penalty. But no matter what he meant, your statement not \njustified.\n\n\nRegards, \n\nDorin\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3002, "properties": {"category": "rec.motorcycles", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Shipping a bike\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 14\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, manish@uclink.berkeley.edu (Manish Vij) says:\n\n>\n>Can someone recommend how to ship a motorcycle from San Francisco\n>to Seattle?  And how much might it cost?\n\nHmmmmmm....put your butt in the seat and follow the road signs?\n\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3003, "properties": {"category": "sci.electronics", "text": "From: moffatt@bnr.ca (John Thomson)\nSubject: Re: What is Zero dB????\nNntp-Posting-Host: bcarhdd\nOrganization: Bell-Northern Research, Ottawa, Canada\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 33\n\nmarrevola@rediris.es wrote:\n: In article <1993Apr6.132429.16154@bnr.ca>, moffatt@bnr.ca (John Thomson) writes:\n: > Joseph Chiu (josephc@cco.caltech.edu) wrote:\n: > \n: > : And the measure of current, Amp, is actually named after both the AMP company\n: > : and the Amphenol company.  Both companies revolutionized electronics by\n: > : simulatenously realizing that the performance of connectors and sockets \n: > : were affected by the amount of current running through the wires.\n: > \n: > Sorry.  The unit for current is the AMPERE which is the name of a french-man\n: > named AMPERE who studied electrical current.  The term AMP is just an abbreviation\n: > of it.  The company AMP came after the AMPERE unit was already in use.\n: >   \n: > : The Ohmite company was the first to characterize resistances by numbers, thus\n: > : our use of the Ohms...\n: > \n: > I don't know about this one, but it doesn't sound right.\n: Are you (two) joking?\n: Is the entire Internet flaming you (two)?\n: Ahh!, now I remember that Ohmite company was the first introducing \"the pink\n: colored resistor\", only for electronics working females ;-)\n: -- \n: Manuel Arrevola Velasco   ||||| True e-mail: manolo@taf.fundesco.es |||||\n: DoD #1033\n: \nYes, I have taken a bit of flame on this one.  I must've been half asleep when\nI posted a response to Joseph.\n\nGreggo.\n-----\nGreg Moffatt  moffatt@bnr.ca\nBell-Northern Research Inc., Ottawa Canada\n\"My opinions; not BNR's\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3004, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jsm1@crux1.cit.cornell.edu (Jason S. MacDonald)\nSubject: Re: LC Ram Upgrade will be SLOW!\nNntp-Posting-Host: crux1.cit.cornell.edu\nReply-To: jsm1@cornell.edu\nOrganization: Ono-Sendai Corporation\nLines: 35\n\ndouce@tfsquad.mn.org (Andrew Geweke) writes:\n>        I cannot speak for Dale. But I am quite sure that the Macintosh \n>uses the full 16-bit or 32-bit data path to its full advantage. That is, \n>it is running as fast with two or four 30-pin SIMMs as it would with one \n>72-pin SIMM. Now, it may be that longword accesses (assuming a 32-bit \n>data path here) get the first byte from the first SIMM, the second byte \n>from the second, and so on. This would mean that each longword of memory \n>is actually split among four SIMMs, one for each byte. On the other hand, \n>it could be that the SIMMs are interleaved by word or longword (not just \n>by byte), or they could be successive in memory, and the memory \n>controller deals with the eight-bit data path that each one has. I \n>suspect, though, that they are interleaved to some extent so that 32 bits \n>can be read or written at once. This would indicate a byte-level \n>interleave.\n>        I am NOT confusing this with the new machines' longword \n>interleave with two 72-pin SIMMs of the same sort, although that seems to \n>be the same sort of idea. There, you get an essential 64-bit data path ro \n>(excuse me, to) RAM instead of just a 32-bit one. Yes, the CPU can't \n>handle it, but when writing to successive addresses it speeds something \n>up.\n>        So, Dale, am I right? 30-pin SIMMs are interleaved by bytes, \n>allowing the full data bus? Or, as is common with Usenet and me in \n>particular, am I as clueless as everyone else?\n\nWhat conclusion can be drawn from this?  I'm trying to figure out what kind\nof memory configuration for the LC III (32-bit datapath) would be fastest.  Any\nideas?\n\nThanks,\nJason MacDonald\n--\n- Jason Scott MacDonald -      jsm1@cornell.edu - jsm1@crux3.cit.cornell.edu\n\"Technology sufficiently advanced is        ____\n indistinguishable from magic.\"             \\  /      \"Cats exist so that we\n                 -- Arthur C. Clarke         \\/        may caress the lion.\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3005, "properties": {"category": "comp.windows.x", "text": "From: Rob Earhart <earhart+@CMU.EDU>\nSubject: Re: Q: How to avoid XOpenDisplay hang?\nOrganization: Sophomore, Physics, Carnegie Mellon, Pittsburgh, PA\nLines: 4\nNNTP-Posting-Host: po4.andrew.cmu.edu\nIn-Reply-To: <C512xr.3oy@skates.gsfc.nasa.gov>\n\n  Don't know how to avoid the XOpenDisplay hang... but perhaps you could\nuse something else (such as zephyr, perhaps)?\n\n  )Rob\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3006, "properties": {"category": "sci.crypt", "text": "From: ameline@vnet.IBM.COM (Ian Ameline)\nSubject: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: C-Set/2 Development, IBM Canada Lab.\nDisclaimer: This posting represents the poster's views, not those of IBM\nLines: 33\n\n   I suspect that this clipper thing could backfire on the Gov in a\nbig hurry. I expect that products using these chips will socket them\nrather than soldering them, since once the keys are handed over by the\nescrow agencies, the chip is so much garbage, and will need to be\nreplaced. I expect that someone will come along with a pin compatible\nchip that uses secure encryption -- possibly even disguised so that it's\nnot possible to tell it from the clipper chip until you try to use the\n2 backdoor keys.\n\n   If I were to manufacture such a chip, as part of my marketing\nstrategy, I would try to subvert one or both escrow agencies either\nthrough bribes or industrial espionage -- and then publicize the fact.\n(doing my best not to be connected with such activities -- which would\nlikely not be legal :-) Publicly discrediting the escrow agencies would\ngo quite far towards creating a market for a secure alternative.\n\n  I also believe that someone will reverse engineer the clipper chip,\nand knowlege of the algorithm will likely be fairly widespread. Any back-\ndoors or weaknesses would further discredit the scheme, and help grow\nthe market demand for a secure alternative.\n\n I believe that the company that provides such an alternative will make\nfew friends in the LE community, but lots of money. I also believe that\nthe government will do it's best to make such plug replacements illegal.\nI expect that they will see the same success in limiting the availability\nof such alternatives as they have seen in limiting the availability of\ncertain illicit drugs -- ie. little to none.\n\nRegards,\nIan Ameline.\n(Of course the ramblings above have nothing to do with my employer, nor\ndo I necessarily advocate doing any of the things described here -- I\njust believe that the events above are likely to take place)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3007, "properties": {"category": "talk.politics.mideast", "text": "From: farzin@apollo3.ntt.jp (Farzin Mokhtarian)\nSubject: News briefs from KH # 1026\nOriginator: sehari@vincent1.iastate.edu\nOrganization: NTT Corp. Japan\nLines: 31\n\n\nFrom:  Kayhan Havai # 1026\n--------------------------\n                    \n                         \no Dr. Namaki,  deputy minister of health stated that infant\n  mortality (under one year old) in Iran went down from 120 \n  per  thousand before the revolution to 33 per thousand at\n  the end of 1371 (last month).\n    \no Dr Namaki also stated that before the revolution only\n  254f children received vaccinations to protect them\n  from various deseases but this figure reached 93at\n  the end of 1371.\n    \no Dr. Malekzadeh, the minister of health mentioned that\n  the population growth rate in Iran at the end of 1371\n  went below 2.7\n   \no During the visit of Mahathir Mohammad, the prime minister\n  of Malaysia, to Iran, agreements for cooperation in the\n  areas of industry, trade, education and tourism were\n  signed. According to one agreement, Iran will be in\n  charge of building Malaysia's natural gas network.\n                          \n----------------------------------------------------------\n                 \n - Farzin Mokhtarian\n                       \n\n-- \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3008, "properties": {"category": "rec.sport.hockey", "text": "From: saross01@starbase.spd.louisville.edu (Stacey A. Ross)\nSubject: Re: Hockey and the Hispanic community\nNntp-Posting-Host: starbase.spd.louisville.edu\nOrganization: University of Louisville\nLines: 26\n\nIn <C5I2s2.3Bt@odin.corp.sgi.com> rickc@wrigley.corp.sgi.com (Richard Casares) writes:\n>You'll have a hard time selling any sport to a community that\n>can't play it on account of availability or financial reasons.\n>Hockey is pretty much a sport for the white and well off.\n\nWhat?! White, yes. Well off, definitely not. Hockey season ticket owners have\nthe lowest average income of any of the four major North American sports.\n\nAnd think of where the majority of hockey players come from. From a farm out\nin Boondock, Saskatchewan or Weedville, Alberta.\n\n>When was the last time you saw a hockey league in the inner city.\n>The insurance alone is a big enough barrier.\n\nThe inner city isn't the only place that is poor.\nI think the biggest barrier to hockey in the inner city is... no ICE to play on.\n\n\t\t\t\t\t\t  Stace\n\n\n>-- \n>+===================================================================+\n>| Rick Casares\t\t\t            Silicon Graphics        |\t\n>| cubfan@wrigley.corp.sgi.com\t\t    2011 N. Shoreline Blvd  |\n>| \"Just wait till next year.\"               Mountain View, CA 94039 |\n>+===================================================================+\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3009, "properties": {"category": "sci.electronics", "text": "From: krouth@slee01.srl.ford.com (Kevin Routh)\nSubject: F.Y.I.: ImageWriter to Windows...\nOrganization: Ford Motor Company Research Laboratory\nLines: 53\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\n[ Article crossposted from comp.windows.ms ]\n[ Author was Kevin Routh ]\n[ Posted on 19 Apr 1993 12:35:55 GMT ]\n\nFor your information:\n\nI hooked up my ImageWriter I to my COM1 serial port and used the C-Itoh\n8510 driver in Windows 3.1.  The cable I am using is a straight-thru\ncable connected to a Null Modem Adapter I got at Radio Shack (catalog\n#26-1496a) for $4.95.  It seems to work fine with both DOS and Windows.\nI used the following command in DOS\n\n\tC:\\DOS\\mode COM1:9600,n,8,1,p\n\nand set up the port the same way in the Windows Ports setup.\n\nthe Null Modem connections are as follows:\n\n\t1\tto\t1\n\t2\tto\t3\n\t3\tto\t2\n\t4\tto\t5\n\t5\tto\t4\n\t6+8\tto\t20\n\t20\tto\t6+8\n\t7\tto\t7\n\nI printed from several applications and all seems OK.  \n\n-- \nKevin C. Routh                     Internet:    krouth@slee01.srl.ford.com\nFord Electronics                   IBMmail (PROFS):               USFMCTMF\nELD IC Engineering\n17000 Rotunda Drive, B-121         Voice mail:              (313) 337-5136\nDearborn, MI  48121-6010           Facsimile:               (313) 248-6244\n\n\n\n--\nKevin C. Routh                     Internet:    krouth@slee01.srl.ford.com\nFord Electronics                   IBMmail (PROFS):               USFMCTMF\nELD IC Engineering\n17000 Rotunda Drive, B-121         Voice mail:              (313) 337-5136\nDearborn, MI  48121-6010           Facsimile:               (313) 248-6244\n\n\n--\nKevin C. Routh                     Internet:    krouth@slee01.srl.ford.com\nFord Electronics                   IBMmail (PROFS):               USFMCTMF\nELD IC Engineering\n17000 Rotunda Drive, B-121         Voice mail:              (313) 337-5136\nDearborn, MI  48121-6010           Facsimile:               (313) 248-6244\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3010, "properties": {"category": "rec.sport.hockey", "text": "From: mtjensen@nbivax.nbi.dk\nSubject: Re: This year's biggest and worst (opinion)...\nReply-To: mtjensen\nOrganization: Niels Bohr Institute and Nordita, Copenhagen\nLines: 56\n\nIn article <C4zCII.Ftn@watserv1.uwaterloo.ca>, smale@healthy.uwaterloo.ca (Bryan Smale) writes:\n> \n> I was thinking about who on each of the teams were the MVPs, biggest\n> surprises, and biggest disappointments this year. Now, these are just\n> my observations and are admittedly lacking because I have not had an\n> opportunity to see all the teams the same amount. Anyway....\n>   \n> MVP = most valuable player to his team both in terms of points and\n>       in terms of leadership (\"can't win without him\")\n>   \n> Biggest surprise = the player who rose above expectation -- the player\n>       that may have raised the level of his game to a new height, even\n>       if that new level doesn't necessarily warrant an allstar berth\n>       (includes those players who at the outset of the season, may not\n>       even have been in the team's plans).\n>    \n> Biggest disappointment = the player from whom we expected more (e.g., I\n>       picked Denis Savard in Montreal because with the new emphasis on\n>       offence brought by Demers, shouldn't Savard have done better?)\n>    \n> -----------------------------------------------------------------------\n>   \n>                         Team           Biggest       Biggest\n> Team:                   MVP:          Surprise:    Disappointment:\n> -----------------------------------------------------------------------\n> Boston Bruins           Oates          D.Sweeney     Wesley\n> Buffalo Sabres          Lafontaine     Mogilny       Audette (jinx?)\n> Calgary Flames          Roberts        Reichel       Petit\n> Chicago Blackhawks      Roenick        Ruuttu        Goulet\n> Detroit Red Wings       Yzerman        Chaisson      Kozlov\n> Edmonton Oilers         Manson         Buchberger    Mellanby\n> Hartford Whalers        Sanderson      Cassells      Corriveau\n> Los Angeles Kings       Robitaille     Donnelly      Hrudey\n> Minnesota North Stars   Modano      Tinordi(not expected back)  Broten\n> Montreal Canadiens      Muller         Lebeau        Savard\n> New Jersey Devils       Stevens        Semak         MacLean\n> New York Islanders      Turgeon        King(finally) Marois\n> New York Rangers        Messier        Kovalev       Bourque\n> Ottawa Senators         MacIver        Baker         Jelinek\n> Philadelphia Flyers     Lindros/Recchi Fedyk/Galley  Eklund\n> Pittsburgh Penguins     Lemieux        Tocchet(even for him)  Jagr\n> Quebec Nordiques        Sakic/Ricci    Kovalenko     Pearson\n> San Jose Sharks         Kisio          Gaudreau      Maley\n> St Louis Blues          Shanahan       C.Joseph      Ron Sutter\n> Tampa Bay Lightening    Bradley        Bradley       Creighton/Kasper\n> Toronto Maple Leafs     Gilmour        Potvin        Ellett/Anderson\n> Vancouver Canucks       Bure           Nedved(finally)    Momesso\n> Washington Capitals     Hatcher        Bondra/Cote   Elynuik\n> Winnipeg Jets           Selanne        Selanne       Druce\n> ----------------------------------------------------------------------\n>   \n> As I mentioned up top, these are my *impressions* from where I sit. I\n> would welcome any opinions from those fans nearer their teams (in other\n> words, *anywhere* away from a Toronto newspaper!)\n>    \n> Bryan\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3011, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mpretzel@cs.utexas.edu (Benjamin W. Allums)\nSubject: Re: Mac II SCSI & PMMU socket question\nOrganization: CS Dept, University of Texas at Austin\nLines: 29\nDistribution: world\nNNTP-Posting-Host: tokio.cs.utexas.edu\n\nIn article <1qkmb2$n0d@jethro.Corp.Sun.COM> khc@marantz.Corp.Sun.COM writes:\n\n>1. The Mac II is supposed to have a socket for the MC68851 PMMU chip. Could\n>anyone let me know where that socket is on the motherboard. I have obtained\n>a PMMU chip (16 Mhz) from a surplus store, and would like to install it onto\n>my Mac II (circa 1987). But I cannot see the socket myself when I tried to\n>install it.\n\nThe original Mac II had an Apple MMU chip installed which performs a subset\nof the 68851's functions.  If you look underneath your front left floppy\nbay you will find three chips, all approximately the same size.  One will\nbe the 68020, the next the 68881, and the third, approximately the same\nsize, will be the Apple chip.  It is easy to spot because it has a 'hump'\nin the middle of it.\n\n\nExample:\n\n\n                         -----------\n                        /           \\\n         ---------------             ---------------\n         |                                         |\n         |                                         |\n\nThat and the Apple logo should make it easy to find.\n\nBen\nmpretzel@cs.utexas.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3012, "properties": {"category": "comp.windows.x", "text": "From: dev@hollywood.acsc.com ()\nSubject: Circular Motif Widgets\nOrganization: ACSC, Inc.\nLines: 7\nDistribution: world\nNNTP-Posting-Host: hollywood.acsc.com\n\n\nWill there be any support for round or circular widgets in Motif's next\nrelease?. I'd love to have a circular knob widget which could be used\ninstead of a slider.\n\nCheers!\nDM\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3013, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Tie Breaker....(Isles and Devils)\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 18\n\nIn <lrw509f@rpi.edu> wangr@vccsouth22.its.rpi.edu ( Rex Wang ) writes:\n\n>I might not be great in Math, but tell me how can two teams ahve the same points\n>with different record??? Man...retard!!!!!! Can't believe people actually put\n>win as first in a tie breaker......\n\nWell I don't see any smileys here.  I am trying to figure out if the poster\nis a dog or a wordprocessor.  Couldn't be neither.  Both are smarter than\nthis.\n\n\"I might not be great in Math\"\n\n\n-- \n\ncordially, as always,                      maynard@ramsey.cs.laurentian.ca \n                                           \"So many morons...\nrm                                                   ...and so little time.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3014, "properties": {"category": "comp.graphics", "text": "From: ab@nova.cc.purdue.edu (Allen B)\nSubject: Re: TIFF: philosophical significance of 42\nOrganization: Purdue University\nLines: 39\n\nIn article <prestonm.735400848@cs.man.ac.uk> prestonm@cs.man.ac.uk (Martin  \nPreston) writes:\n> Why not use the PD C library for reading/writing TIFF files? It took me a\n> good 20 minutes to start using them in your own app.\n\nI certainly do use it whenever I have to do TIFF, and it usually works\nvery well.  That's not my point.  I'm >philosophically< opposed to it\nbecause of its complexity.\n\nThis complexity has led to some programs' poor TIFF writers making\nsome very bizarre files, other programs' inability to load TIFF\nimages (though they'll save them, of course), and a general\ninability to interchange images between different environments\ndespite the fact they all think they understand TIFF.\n\nAs the saying goes, \"It's not me I'm worried about- it's all the\n>other<  assholes out there!\"  I've had big trouble with misuse and\nabuse of TIFF over the years, and I chalk it all up to the immense (and\nunnecessary) complexity of the format.\n\nIn the words of the TIFF 5.0 spec, Appendix G, page G-1 (capitalized\nemphasis mine):\n\n\"The only problem with this sort of success is that TIFF was designed\nto be powerful and flexible, at the expense of simplicity.  It takes a\nfair amount of effort to handle all the options currently defined in\nthis specification (PROBABLY NO APPLICATION DOES A COMPLETE JOB),\nand that is currently the only way you can be >sure< that you will be\nable to import any TIFF image, since there are so many\nimage-generating applications out there now.\"\n\n\nIf a program (or worse all applications) can't read >every< TIFF\nimage, that means there are some it won't- some that I might have to\ndeal with.  Why would I want my images to be trapped in that format?  I\ndon't and neither should anyone who agrees with my reasoning- not\nthat anyone does, of course! :-)\n\nab\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3015, "properties": {"category": "misc.forsale", "text": "From: mmchugh@andy.bgsu.edu (michael mchugh)\nSubject: SAM Virus Clinic (Mac) Software for Sale\nKeywords: SAM Virus Clinic Software Macintosh\nOrganization: Bowling Green State University B.G., Oh.\nDistribution: usa\nLines: 12\n\n\nI have one original SAM (Symantec AntiVirus for Macintosh) V3.0 for sale.\n\nIt comes with three program discs and one user manual. Will work with 800K and 1.4MB disc drives.\n\nSelling for $17.90 (make an offer) which includes postage.\n\nRespond to:\n\nMichael McHugh\nmmchugh@andy.bgsu.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3016, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: islamic genocide\nOrganization: Cookamunga Tourist Bureau\nLines: 21\n\n> O.K., so pick former Yugoslavia instead and say their problems are caused\n> by communism, it doesn't really matter.  But I guess religious leaders are\n> calling for an end to that, too, so it can't be religiously motivated.  This\n> despite the fact that the Christians carve crosses in dead Muslims chests.\n> Maybe they just want land.  Maybe its something else they want.  Maybe the\n> cross carvings are just accidental.  I don't know.  Just looks suspicious.\n\nMost likely the tragic situation in Bosnia is a combination of ethnical\nand religious motives, where religion is just one attribute that separates\nthe groups from each other.\n\nBut I must agree that the sad saga in Bosnia is a terrible example\nof a case where religion is not helping, instead it is used as a weapon\nagainst other humans. And my sympathies are mostly on the Bosnian side,\nit looks like the Serbs are the oppressors, willing to use even\nChristianity as a weapon against their former friends.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3017, "properties": {"category": "rec.autos", "text": "From: jsmith@cs.dal.ca (Jeff Smith)\nSubject: Header for 89' Honda Civic Si\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nLines: 22\nNntp-Posting-Host: cs.dal.ca\n\nHello,\n\tI am looking to slightly increase the performance of my 89 Honda\nCivic Si.  I was wondering if anyone could suggest upgrades that were not\ntoo drastic.  I thought that one of the easiest upgrades would be a new\nheader.  Does anyone know what kind of increase that the header would give\nme?  I think I would check with Jackson Racing for the part.  Are there\nany other comparines would make Honda parts.  \n\n\tAre there any other small changes that can be easily made and won't\nscrew up the car.  Things like new injectors?, new fuel injection chip etc?\nI would welcome any suggestions of small changes that would make a\ndifference.\n\n\tI don't really want to change the cam etc because I have heard that it\nwould be much harder on the engine.\n\nE-Mail relpies prefered please and I will post a summary of all the replies.\nThanks for any help you may have to offer!\n\n--\nJeff Smith\t\t\tjsmith@cs.dal.ca\nDalhousie University\t\tHalifax, NS\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3018, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: Adding VRAM to Quadra 800 ?\nKeywords: VRAM Quadra 800\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 15\n\nwstuartj@lucky.ecn.purdue.edu (W Stuart Jones) writes:\n\n>I want to go from 512K to 1M VRAM on my Quadra 800.  How many 512K SIMMS do I\n>need to buy?\n\n    None. You need to buy 2 80ns 256k VRAM SIMMs. They cost about $30\neach from your favorite memory distributor.\n\n>Is the current 512K soldered on the board or do I need to take out the\n>current VRAM before I add more?\n\n    The 512k is soldered to the logic board. There are 2 SIMM slots for\nexpansion.\n\n-Hades\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3019, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Too Many Europeans in NHL\nArticle-I.D.: alchemy.1993Apr6.195022.6362\nOrganization: University of Toronto Chemistry Department\nLines: 24\n\nIn article <1993Apr6.155743.18798@adobe.com> snichols@adobe.com (Sherri Nichols) writes:\n>In article <1993Apr6.141557.8864@alchemy.chem.utoronto.ca> golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n>>Anyways, crawl back into the hole you crawled out of...the NBA doesn't\n>>care where they get basketball players from, major league baseball\n>>doesn't give a damn where they get baseball players from (except Cuba,\n>>that is).\n>\n>MLB is perfectly willing to take players from Cuba.  They just have to\n>defect first.  \n>\n>Sort of like the situation used to be with Russian/Czech/etc hockey\n>players, until the political situation in those countries changed.\n>\n\nMajor league baseball has told the Blue Jays and the Expos not to\nsign Oscar Linares (I think that is his name)\n...Canada does not have the restrictions against\nCubans that the US has and other major league teams have told the\nCanadian teams that they would be very unhappy if the Expos or the\nBlue Jays would do this.  Cubans players would not have to defect\nto play in Canada and could play the 81 home games for the Expos\nand Blue Jays without any trouble.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.138+0000", "event": "documents", "entityId": 3020, "properties": {"category": "sci.med", "text": "From: paulson@tab00.larc.nasa.gov (Sharon Paulson)\nSubject: Re: food-related seizures?\nOrganization: NASA Langley Research Center, Hampton VA, USA\nLines: 48\n\t<C5uq9B.LrJ@toads.pgh.pa.us> <C5x3L0.3r8@athena.cs.uga.edu>\nNNTP-Posting-Host: cmb00.larc.nasa.gov\nIn-reply-to: mcovingt@aisun3.ai.uga.edu's message of Fri, 23 Apr 1993 03:41:24 GMT\n\nIn article <C5x3L0.3r8@athena.cs.uga.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n\n   Newsgroups: sci.med\n   Path: news.larc.nasa.gov!saimiri.primate.wisc.edu!sdd.hp.com!elroy.jpl.nasa.gov!swrinde!zaphod.mps.ohio-state.edu!howland.reston.ans.net!europa.eng.gtefsd.com!emory!athena!aisun3.ai.uga.edu!mcovingt\n   From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\n   Sender: usenet@athena.cs.uga.edu\n   Nntp-Posting-Host: aisun3.ai.uga.edu\n   Organization: AI Programs, University of Georgia, Athens\n   References: <PAULSON.93Apr19081647@cmb00.larc.nasa.gov> <116305@bu.edu> <C5uq9B.LrJ@toads.pgh.pa.us>\n   Date: Fri, 23 Apr 1993 03:41:24 GMT\n   Lines: 27\n\n   In article <C5uq9B.LrJ@toads.pgh.pa.us> geb@cs.pitt.edu (Gordon Banks) writes:\n   >In article <116305@bu.edu> dozonoff@bu.edu (david ozonoff) writes:\n   >>\n   >>Many of these cereals are corn-based. After your post I looked in the\n   >>literature and located two articles that implicated corn (contains\n   >>tryptophan) and seizures. The idea is that corn in the diet might\n   >>potentiate an already existing or latent seizure disorder, not cause it.\n   >>Check to see if the two Kellog cereals are corn based. I'd be interested.\n   >\n   >Years ago when I was an intern, an obese young woman was brought into\n   >the ER comatose after having been reported to have grand mal seizures\n   >why attending a \"corn festival\".  We pumped her stomach and obtained\n   >what seemed like a couple of liters of corn, much of it intact kernals.  \n   >After a few hours she woke up and was fine.  I was tempted to sign her out as\n   >\"acute corn intoxication.\"\n   >----------------------------------------------------------------------------\n   >Gordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\n\n   How about contaminants on the corn, e.g. aflatoxin???\n\n\n\n   -- \n   :-  Michael A. Covington, Associate Research Scientist        :    *****\n   :-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n   :-  The University of Georgia              phone 706 542-0358 :   *  *  *\n   :-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n\nWhat is aflatoxin?\n\nSharon\n--\nSharon Paulson                      s.s.paulson@larc.nasa.gov\nNASA Langley Research Center\nBldg. 1192D, Mailstop 156           Work: (804) 864-2241\nHampton, Virginia.  23681           Home: (804) 596-2362\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3021, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Accounts of Anti-Armenian Human Right Violatins in Azerbaijan #009\nSummary: Prelude to Current Events in Nagorno-Karabakh\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 262\n\n     Accounts of Anti-Armenian Human Right Violatins in Azerbaijan #009\n                 Prelude to Current Events in Nagorno-Karabakh\n\n      +-----------------------------------------------------------------+\n      |                                                                 |\n      | There were about six burned people in there, and the small      |\n      | corpse of a burned child. It was gruesome. I suffered a         |\n      | tremendous shock. There were about ten people there, but the    |\n      | doctor on duty said that because of the numbers they were being |\n      | taken to Baku. There was a woman's corpse there too, she had    |\n      | been . . . well, there was part of a body there . . . a         |\n      | hacked-off part of a woman's body. It was something terrible.   |\n      |                                                                 |\n      +-----------------------------------------------------------------+\n\nDEPOSITION OF ROMAN ALEKSANDROVICH GAMBARIAN\n\n   Born 1954\n   Senior Engineer\n   Sumgait Automotive Transport Production Association\n\n   Resident at Building 17/33B, Apartment 40\n   Microdistrict No. 3\n   Sumgait [Azerbaijan]\n\n\nWhat happened in Sumgait was a great tragedy, an awful tragedy for us, the \nArmenian people, and for all of mankind. A genocide of Armenians took place\nduring peacetime.\n\nAnd it was a great tragedy for me personally, because I lost my father in\nthose days. He was still young. Born in 1926.\n\nOn that day, February 28, we were at home. Of course we had heard that there \nwas unrest in town, my younger brother Aleksandr had told us about it. But we \ndidn't think . . . we thought that everything would happen outdoors, that they\nwouldn't go into people's apartments. About five o'clock we saw a large crowd \nnear the Kosmos movie theater in our microdistrict. We were sitting at home \nwatching television. We go out on the balcony and see the crowd pour into Mir \nStreet. This is right near downtown, next to the airline ticket office, our \nhouse is right nearby. That day there was a group of policeman with shields\nthere. They threw rocks at those policemen. Then they moved off in the \ndirection of our building. They burned a motorcycle in our courtyard and \nstarted shouting for Armenians to come out of the building. We switched off \nthe light. As it turns out, their signal was just the opposite: to turn on the\nlight. That meant that it was an Azerbaijani home. We, of course, didn't know \nand thought that if they saw lights on they would come to our apartment.\n\nSuddenly there's pounding on the door. We go to the door, all four of us:\nthere were four of us in the apartment. Father, Mother, my younger brother\nAleksandr, and I. He was born in 1959. My father was a veteran of World War \nII and had fought in China and in the Soviet Far East; he was a pilot.\n\nWe went to the door and they started pounding on it harder, breaking it down \nwith axes. We start to talk to them in Azerbaijani, \"What's going on? What's \nhappened?\" They say, \"Armenians, get out of here!\" We don't open the door, we \nsay, \"If we have to leave, we'll leave, we'll leave tomorrow.\" They say, \"No, \nleave now, get out of here, Armenian dogs, get out of here!\" By now they've \nbroken the door both on the lock and the hinge sides. We hold them off as best\nwe can, my father and I on one side, and my mother and brother on the other. \nWe had prepared ourselves: we had several hammers and an axe in the apartment,\nand grabbed what we could find to defend ourselves. They broke in the door and\nwhen the door gave way, we held it for another half-hour. No neighbors, no\npolice and no one from the city government came to our aid the whole time. We \nheld the door. They started to smash the door on the lock side, first with an \naxe, and then with a crowbar.\n\nWhen the door gave way--they tore it off its hinges--Sasha hit one of them \nwith the axe. The axe flew out of his hands. They also had axes, crowbars, \npipes, and special rods made from armature shafts. One of them hit my father \nin the head. The pressure from the mob was immense. When we retreated into the\nroom, one of them hit my mother, too, in the left part of her face. My brother\nSasha and I fought back, of course. Sasha is quite strong and hot-tempered, he\nwas the judo champion of Sumgait. We had hammers in our hands, and we injured \nseveral of the bandits--in the heads and in the eyes, all that went on. But \nthey, the injured ones, fell back, and others came to take their places, there\nwere many of them.\n\nThe door fell down at an angle. The mob tried to remove the door, so as to go \ninto the second room and to continue . . . to finish us off. Father brought \nskewers and gave them to Sasha and me--we flew at them when we saw Father \nbleeding: his face was covered with blood, he had been wounded in the head, \nand his whole face was bloody. We just threw ourselves on them when we saw \nthat. We threw ourselves at the mob and drove back the ones in the hall, drove\nthem down to the third floor. We came out on the landing, but a group of the \nbandits remained in one of the rooms they were smashing all the furniture in \nthere, having closed the door behind them. We started tearing the door off to \nchase away the remaining ones or finish them. Then a man, an imposing man of \nabout 40, an Azerbaijani, came in. When he was coming in, Father fell down and\nMother flew to him, and started to cry out. I jumped out onto the balcony and \nstarted calling an ambulance, but then the mob started throwing stones through\nthe windows of our veranda and kitchen. We live on the fourth floor. And no \none came. I went into the room. It seemed to me that this man was the leader \nof the group. He was respectably dressed in a hat and a trench coat with a \nfur collar. And he addressed my mother in Azerbaijani: \"What's with you, \nwoman, why are you shouting? What happened? Why are you shouting like that?\"\nShe says, \"What do you mean, what happened? You killed somebody!\" My father \nwas a musician, he played the clarinet, he played at many weddings, Armenian \nand Azerbaijani, he played for many years. Everyone knew him. Mother says, \n\"The person who you killed played at thousands of Azerbaijani weddings, he \nbrought so much joy to people, and you killed that person.\" He says, \"You \ndon't need to shout, stop shouting.\" And when they heard the voice of this \nman, the 15 to 18 people who were in the other room opened the door and \nstarted running out. We chased after them, but they ran away. That man left, \ntoo. As we were later told, downstairs one of them told the others, I don't \nknow if it was from fright or what, told them that we had firearms, even\nthough we only fought with hammers and an axe. We raced to Father and started \nto massage his heart, but it was already too late. We asked the neighbors to \ncall an ambulance. The ambulance never came, although we waited for it all \nevening and all through the night.\n\nSomewhere around midnight about 15 policemen came. They informed us they were \nfrom Khachmas. They said, \"We heard that a group was here at your place, you \nhave our condolences.\" They told us not to touch anything and left. Father lay\nin the room.\n\nSo we stayed home. Each of us took a hammer and a knife. We sat at home. Well,\nwe say, if they descend on us again we'll defend ourselves. Somewhere around \none o'clock in the morning two people came from the Sumgait Procuracy, \ninvestigators. They say, \"Leave everything just how it is, we're coming back \nhere soon and will bring an expert who will record and photograph everything.\"\nThen people came from the Republic Procuracy too, but no one helped us take \nFather away. The morning came and the neighbors arrived. We wanted to take \nFather away somehow. We called the Procuracy and the police a couple of times,\nbut no one came. We called an ambulance, and nobody came. Then one of the \nneighbors said that the bandits were coming to our place again and we should \nhide. We secured the door somehow or other. We left Father in the room and \nwent up to the neighbor's.\n\nThe excesses began again in the morning. The bandits came in several vehicles,\nZIL panel trucks, and threw themselves out of the vehicles like . . . a \nlanding force near the center of town. Our building was located right there. A\ncrowd formed. Then they started fighting with the soldiers. Then, in Buildings\n19 and 20, that's next to the airline ticket office, they started breaking \ninto Armenian apartments, destroying property, and stealing. The Armenians \nweren't at home, they had managed to flee and hide somewhere. And again they \npoured in the direction of our building. They were shouting that there were \nsome Armenians left on the fourth floor, meaning us. \"They're up there, still,\nup there. Let's go kill them!\" They broke up all the furniture remaining in \nthe two rooms, threw it outside, and burned it in large fires. We were hiding \none floor up. Something heavy fell. Sasha threw himself toward the door \nshouting that it was probably Father, they had thrown Father, were defiling \nthe corpse, probably throwing it in the fire, going to burn it. I heard it, \nand the sound was kind of hollow, and I said, \"No, that's from some of the \nfurniture.\" Mother and I pounced on Sasha and stopped him somehow, and calmed \nhim down.\n\nThe mob left somewhere around eight o'clock. They smashed open the door and \nwent into the apartment of the neighbors across from us. They were also\nArmenians, they had left for another city.\n\nThe father of the neighbor who was concealing us came and said, \"Are you \ncrazy? Why are you hiding Armenians? Don't you now they're checking all the \napartments? They could kill you and them!\" And to us :\" . . . Come on, leave \nthis apartment!\" We went down to the third floor, to some other neighbors'. At\nfirst the man didn't want to let us in, but then one of his sons asked him and\nhe relented. We stayed there until eleven o'clock at night. We heard the sound\nof motors. The neighbors said that it was armored personnel carriers. We went \ndownstairs. There was a light on in the room where we left Father. In the \nother rooms, as we found out later, all the chandeliers had been torn down. \nThey left only one bulb. The bulb was burning, which probably was a signal \nthey had agreed on because there was a light burning in every apartment in our\nMicrodistrict 3 where there had been a pogrom.\n\nWith the help of the soldiers we made it to the City Party Committee and were \nsaved. Our salvation--my mother's, my brother's, and mine,--was purely \naccidental, because, as we later found out from the neighbors, someone in the \ncrowd shouted that we had firearms up there. Well, we fought, but we were only\nable to save Mother. We couldn't save Father. We inflicted many injuries on \nthe bandits, some of them serious. But others came to take their places. We \nwere also wounded, there was blood, and we were scratched all over--we got our\nshare. It was a miracle we survived. We were saved by a miracle and the \ntroops. And if troops hadn't come to Sumgait, the slaughter would have been \neven greater: probably all the Armenians would have been victims of the \ngenocide.\n\nThrough an acquaintance at the City Party Committee I was able to contact the \nleadership of the military unit that was brought into the city, and at their \norders we were assigned special people to accompany us, experts. We went to '\npick up Father's corpse. We took it to the morgue. This was about two o'clock \nin the morning, it was already March 1, it was raining very hard and it was \nquite cold, and we were wearing only our suits. When my brother and I carried \nFather into the morgue we saw the burned and disfigured corpses. There were \nabout six burned people in there, and the small corpse of a burned child. It \nwas gruesome. I suffered a tremendous shock. There were about ten people \nthere, but the doctor on duty said that because of the numbers they were being\ntaken to Baku. There was a woman's corpse there too, she had been . . . well, \nthere was part of a body there . . . a hacked-off part of a woman's body. It \nwas something terrible. The morgue was guarded by the landing force . . . The \nchild that had been killed was only ten or twelve years old. It was impossible\nto tell if it was a boy or a girl because the corpse was burned. There was a \nman there, too, several men. You couldn't tell anything because their faces \nwere disfigured, they were in such awful condition...\n\nNow two and a half months have passed. Every day I recall with horror what \nhappened in the city of Sumgait. Every day: my father, and the death of my \nfather, and how we fought, and the people's sorrow, and especially the morgue.\n\nI still want to say that 70 years have passed since Soviet power was\nestablished, and up to the very last minute we could not conceive of what \nhappened  in Sumgait. It will go down in history.\n\nI'm particularly surprised that the mob wasn't even afraid of the troops. They\neven fought the soldiers. Many soldiers were wounded. The mob threw fuel \nmixtures onto the armored personnel carriers, setting them on fire. They \nweren't afraid. They were so sure of their impunity that they attacked our \ntroops. I saw the clashes on February 29 near the airline ticket office, right\nacross from our building. And that mob was fighting with the soldiers. The \ninhabitants of some of the buildings, also Azerbaijanis, threw rocks at the \nsoldiers from windows, balconies, even cinder blocks and glass tanks. They \nweren't afraid of them. I say they were sure of their impunity. When we were \nat the neighbors' and when they were robbing homes near the airline ticket \noffice I called the police at number 3-20-02 and said that they were robbing \nArmenian apartments and burning homes. And they told me that they knew that \nthey were being burned. During those days no one from the police department \ncame to anyone's aid. No one came to help us, either, to our home, even though\nperhaps they could have come and saved us.\n\nAs we later found out the mob was given free vodka and drugs, near the bus \nstation. Rocks were distributed in all parts of town to be thrown and used in \nfighting. So I think all of it was arranged in advance. They even knew in \nwhich buildings and apartments the Armenians lived, on which floors--they had\nlists, the bandits. You can tell that the \"operation\" was  planned in advance.\n\nThanks, of course, to our troops, to the country's leadership, and to the\nleadership of the Ministry of Defense for helping us, thanks to the Russian\npeople, because the majority of the troops were Russians, and the troops \nsuffered losses, too. I want to express this gratitude in the name of my \nfamily and in the name of all Armenians, and in the name of all Sumgait\nArmenians. For coming in time and averting terrible things: worse would\nhave happened if that mob had not been stopped on time.\n\nAt present an investigation is being conducted on the part of the USSR\nProcuracy. I want to say that those bandits should receive the severest\npossible punishment, because if they don't, the tragedy, the genocide, could \nhappen again. Everyone should see that the most severe punishment is meted\nout for such deeds.\n\nVery many bandits and hardened hooligans took part in the unrest, in the mass \ndisturbances. The mobs were huge. At present not all of them have been caught,\nvery few of them have been, I think, judging by the newspaper reports. There \nwere around 80 people near our building alone, that's how many people took \npart in the pogrom of our building all in all.\n\nThey should all receive the most severe punishment so that others see that \nretribution awaits those who perform such acts.\n\n   May 18, 1988\n   Yerevan\n\n\t\t     - - - reference - - -\n\n[1] _The Sumgait Tragedy; Pogroms against Armenians in Soviet Azerbaijan,\n    Volume I, Eyewitness Accounts_, edited by Samuel Shahmuradian, forward by\n    Yelena Bonner, 1990, published by Aristide D. Caratzas, NY, pages 153-157\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3022, "properties": {"category": "comp.sys.mac.hardware", "text": "From: firenza@vlsi2.WPI.EDU (Timothy Mark Collins)\nSubject: Performa 450 bundle-- here's what's in it.\nOrganization: Worcester Polytechnic Institute, Worcester, MA\nLines: 42\nDistribution: na\nNNTP-Posting-Host: vlsi2.wpi.edu\n\n  I went to Staples in Framingham, MA, today, and grabbed the info-sheet on the\n450 bundle.  \n  For a mere $1897.00, you get:\n\n-25 megahertz 68030 microprocessor\n-4M of RAM\n-120M hard disk\n-1.4M floppy disk drive\n-built in support for 256 colors, expandable to 32,000 colors\n-1 expansion slot\n-keyboard and mouse\n-14\" display\n-0.29 mm dot pitch for extra-sharp text and graphics\n-640 x 480 pixels\n-microphone and speaker\n-Macintosh System 7 software for Performa computers version 7.1P\n-At Ease, Macintosh PC Exchange, and Quicktime software\n-Global Village Teleport fax/modem , send fax only\n\n_Service and support\n\t-1 year limited warranty\n\t-1 year of in-home service\n\t-toll free help line support\n\n-Pre-installed software:\n\t-WordPerfect Works\n\t-Best of ClickArt Collection\n\t-Touchbase\n\t-Datebook\n\t-Bestbooks\n\t-The Amereican Heritage Dictionary\n\t-Correct Grammar\n\t-Apple Special Edition of American Online with free trial membership\n\t-CheckFree electronic bill-payment software\n\t-Spectre Challenger\n\t-Scrabble\n\nEditor's Note:  The spec sheet I have list's the microprocessor as a \"38030\",\n                but I corrected that.  Didn't want to confuse anybody...\n\n  Tim\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3023, "properties": {"category": "rec.sport.baseball", "text": "From: derich@netcom.com (Scotty*Tissue)\nSubject: 15-day, 30-day, 60-day disabled list questions\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 20\n\n\n I've a curiousity --\n\n  Whenever a person is put on the 15-day, 30-day or 60-day, \n the person is on the list longer than the specificed time\n\n  I've seen a person on the 15-day for maybe 4 months last year, I don't\n remember what...\n\n I just need a little clarification on the disabled list specifications.\n\n- Scotyy\n\n-- \nScott Allen Steinbrink        ************************************************\n                              * GO CLEVELAND CAVALIERS!! NBA FINALS '93!!!!!!* \nNetCom: Derich@netcom.com     * GO CLEVELAND INDIANS!!!! WORLD SERIES '93!!!!*\nDigex:  derich@digex.com      * GO CLEVELAND BROWNS!!!!! SUPER BOWL '94!!!!!!*\n                              ************************************************\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3024, "properties": {"category": "comp.graphics", "text": "From: nfotis@ntua.gr (Nick C. Fotis)\nSubject: Re: more on radiosity\nOrganization: National Technical University of Athens\nLines: 34\n\namann@iam.unibe.ch (Stephan Amann) writes:\n\n>In article 66319@yuma.ACNS.ColoState.EDU, xz775327@longs.LANCE.ColoState.Edu (Xia Zhao) writes:\n>>\n>>\n>>In article <1993Apr19.131239.11670@aragorn.unibe.ch>, you write:\n>>|>\n>>|>\n>>|> Let's be serious... I'm working on a radiosity package, written in C++.\n>>|> I would like to make it public domain.  I'll announce it in c.g. the minute\n>>|> I finished it.\n>>|>\n>>|> That were the good news. The bad news: It'll take another 2 months (at least)\n>>|> to finish it.\n\nPlease note that there are some radiosity packages in my Resource Listing\n(under the Subject 3: FTP list)\n\nGreetings,\nNick.\n--\nNick (Nikolaos) Fotis         National Technical Univ. of Athens, Greece\nHOME: 16 Esperidon St.,       InterNet : nfotis@theseas.ntua.gr\n      Halandri, GR - 152 32   UUCP:    mcsun!ariadne!theseas!nfotis\n      Athens, GREECE          FAX: (+30 1) 77 84 578\n\nUSENET Editor of comp.graphics Resource Listing and soc.culture.greece FAQ\nNTUA/UA ACM Student Chapter Chair - we're organizing a small conference\n        in Comp. Graphics, call if you're interested to participate.\n-- \nNick (Nikolaos) Fotis         National Technical Univ. of Athens, Greece\nHOME: 16 Esperidon St.,       InterNet : nfotis@theseas.ntua.gr\n      Halandri, GR - 152 32   UUCP:    mcsun!ariadne!theseas!nfotis\n      Athens, GREECE          FAX: (+30 1) 77 84 578\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3025, "properties": {"category": "rec.motorcycles", "text": "From: pstone@well.sf.ca.us (Philip K. Stone)\nSubject: Re: Countersteering_FAQ please post\nNntp-Posting-Host: well.sf.ca.us\nOrganization: Whole Earth 'Lectronic Link\nLines: 24\n\nIn article <1993Apr14.175856.26051@rd.hydro.on.ca> jlevine@rd.hydro.on.ca (Jody Levine) writes:\n>[...] On a\n>waterski bike, you turn the handlebars left to lean right, just like on\n>a motorcycle,\n\nI don't think this is the case, at least not on all jetskis.  On my\nfriend's jetski, bars turn left to go left.  Anyway, all you're doing\nthere is changing the yaw of the jets, so the relationship between\nthe handlbars and the rear-mounted jets is completely arbitrary\n(simple linkage could make it work either way).\n\n>so this supports the move-the-contact-patch-from-beneath-the\n>centre-of-mass theory on how to *lean*. This contradicts the need for\n>gyroscopic precession to have a countersteering induced *lean*.\n\nIt seems to me that jetskis are even more irrelevant to this discussion\nthan snow skis.  But it *has* been an amusing digression.\n\nHey Ed, how do you explain the fact that you pull on a horse's reins\nleft to go left?  :-)  Or am I confusing two threads here?\n\n\nPhil Stone            NEW ADDRESS----------> pstone@well.sf.ca.us\n'83 R80ST                                      \"Motorcycles OK\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3026, "properties": {"category": "rec.sport.baseball", "text": "From: traven@pitt.edu (Neal Traven)\nSubject: Re: Braves Pitching UpdateDIR\nLines: 22\nX-Newsreader: TIN [version 1.1 PL8]\n\nDave Naehring X2079 P7630 (ep502dn@pts.mot.com) wrote:\n: In article 2482@adobe.com, snichols@adobe.com (Sherri Nichols) writes:\n: >Every single piece of evidence we can find points to Major League Baseball\n: >being 50% offense, 50% defense.  A run scored is just as important as a run\n: >prevented.  \n: >\n: This certainly passes the \"common sense test\" for me, but is there any\n: statistical evidence to say what percent of defense is pitching and what\n: percent is fielding?  I'd really like to know.  BTW, Sherri, thanks for \n: the DA data I find it fascinating.\n\nOne of the chapters in Palmer and Thorn's 'Hidden Game' is titled\n'Pitching is 44% of Baseball,' implying that fielding is 6%.  How do\nthey determine that?  Beats me -- it's been a long, long time since I\nread it.\n\nOne also has to separate offense into batting and baserunning, with the\nsplit probably somewhere around 49.5% and 0.5%.\n--\n-----------------------------------------------------------------------------\nneal\ttraven+@pitt.edu\t      You're only young once, but you can be\n\ttraven@vms.cis.pitt.edu\t       immature forever.   -- Larry Andersen\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3027, "properties": {"category": "comp.windows.x", "text": "From: neuralog@NeoSoft.com (Neuralog)\nSubject: Re: compiling on sun4_411\nOrganization: NeoSoft Communications Services -- (713) 684-5900\nLines: 27\n\nIn article <1993Apr20.132914.907@aio.jsc.nasa.gov> mccoy@gothamcity.jsc.nasa.gov writes:\n>In article qfe00WB2QzZ7EZ@andrew.cmu.edu, Wilson Swee <ws8n+@andrew.cmu.edu> () writes:\n>|>    I have a piece of X code that compiles fine on pmax-ul4, pmax_mach, as\n>|>well as sun4_mach, but whenever it compiles on sun4_411, it gives me \n>|>undefined ld errors:\n>|>_sin\n>|>_cos\n>|>_pow\n>|>_floor\n>|>_get_wmShellWidgetClass\n>|>_get_applicationShellWidgetClass\n>|>\n>|>The following libraries that I linked it to are:\n>|>-lXaw -lXmu -lXt -lXext -lX11\n>|>\n>|>The makefile is generated off an imake template.\n>|>Can anyone give me pointers as to what I'm missing out to compile on\n>|>a sun4_411?\n>\n>Well, the first 2 are easy.  You need the math library.  Try adding -lm after\n>-lX11.  Don't know if that's the whole problem but it's a start.\n>\n>---\nI \"think\" you should try linking to /usr/lib/libXmu.a instead of \n-lXmu. At least that solved the problem for me!\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3028, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: GERTHD@mvs.sas.com (Thomas Dachsel)\nSubject: Quantum ProDrive 80AT drive parameters needed\nArticle-I.D.: mvs.19930406091020GERTHD\nOrganization: SAS Institute Inc.\nLines: 25\nNntp-Posting-Host: sdcmvs.mvs.sas.com\n\nHi,\nI have got a Quantum ProDrive 80AT IDE harddisk and would\nlike to format it. When trying to format it (*no* low-level\nformat, just FDISK and DOS FORMAT), I somehow messed up the\nparameters... I had entered FDISK /MBR not exactly knowing\nwhat this does.\nThe suggested drive type 38 formats the drive only to 21MB.\nI tried type 25, but this gives only around 70MB and not\nthe nominal 80MB.\nCould I use user type 47? However, I don't know the actual\nparameters (cylinders, heads,...) Could someone give me them?\nAnd how does FDISK work together with user type 47?\nPlease reply by email to GERTHD@MVS.SAS.COM\nThank you,\nThomas\n+-------------------------------------------------------------------+\n| Thomas Dachsel                                                    |\n| Internet: GERTHD@MVS.SAS.COM                                      |\n| Fidonet:  Thomas_Dachsel@camel.fido.de (2:247/40)                 |\n| Subnet:   dachsel@rnivh.rni.sub.org (UUCP in Germany, now active) |\n| Phone:    +49 6221 4150 (work), +49 6203 12274 (home)             |\n| Fax:      +49 6221 415101                                         |\n| Snail:    SAS Institute GmbH, P.O.Box 105307, D-W-6900 Heidelberg |\n| Tagline:  One bad sector can ruin a whole day...                  |\n+-------------------------------------------------------------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3029, "properties": {"category": "rec.sport.hockey", "text": "From: boora@kits.sfu.ca (The GodFather)\nSubject: RANGERS ARE AN EMBARRASSMENT\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 14\n\n\tI can't believe that the NY Rangers would force its \nplayers to go to Binghamtom to play in the AHL playoffs instead\nof letting them represent their countries in the World Championships.\n\nAnderrson and Zubov are waiting for the NHL to make a decision to this,\nwhile Kovalev has given in and gone down to the minors.\n\nThe Rangers are a disgrace.\n\nps. it has been reported that Neil Smith was very much against\nthe hiring of Mike Keenan. How long will Smith be in NY for?\n\n\t\tthe GodFather.\n`\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3030, "properties": {"category": "misc.forsale", "text": "From: harter5255@iscsvax.uni.edu\nSubject: Okidata printer for sale\nOrganization: University of Northern Iowa\nLines: 20\n\nFellow netters,\n\nI have an Okidata printer I would like to sell.  A description follows:\n\nOkidata 180 printer including cables for both IBM compatibles (Centronics\nparallel) and Commodore (RS-232 - round).  Also includes power cable, manual,\nand a handful of computer paper to get you started.  This is a 9-pin printer. \nI recently cleaned the printhead and installed a new ribbon.  A print sample \ncan be provided upon request.  This is a very dependable printer - it never\njams or does \"weird\" things.  I have used it with a Commodore for about 3 years\nand am now using it with my 486sx.  I use mainly WordPerfect 5.1 (see next\npost) for which I got a driver (at no charge) that directly supports the \nOkidata 180 in Epson FX mode. \n\nWhen I got the printer, it was selling for around $200-220 new (I got mine\nfrom Tenex brand new - for a Christmas present).  I would like to get about\n$100 or so for it.  If you are interested at all in it, please give me a ring\n(E-Mail) and make an offer.\n\n- Kevin Harter\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3031, "properties": {"category": "soc.religion.christian", "text": "From: armstrng@cs.dal.ca (Stan Armstrong)\nSubject: Immaterial afterlife (was Is Hell Real)\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nLines: 21\n\nIn article <C4zAyM.M9u@spss.com> goer@midway.uchicago.edu writes:\n>\n>I thought everyone who died simply went to Sheol.  The notion of going to\n>heaven is a Christianization based on those parts of the NT that speak of\n>an immaterial afterlife.\n>\n>   -Richard L. Goerwitz              goer%midway@uchicago.bitnet\n>   goer@midway.uchicago.edu          rutgers!oddjob!ellis!goer\n>\nWhere in the Bible is there *any* teaching about an immaterial afterlife?\nI was always taught that both the O.T. Jews and the N.T. Christians would\nhave found the notion incomprehensible--as do I.\n\nDon't we christians believe in the resurrection of the body?\n\nOr do you mean by material simply the stuff made of the 100+ elements\nthat we know and love too much?\n\n-- \nStan Armstrong. Religious Studies Dept, Saint Mary's University, Halifax, N.S.\nArmstrong@husky1.stmarys.ca | att!clyde!watmath!water!dalcs!armstrng\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3032, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Gospel Dating\nOrganization: Technical University Braunschweig, Germany\nLines: 93\n\nIn article <65974@mimsy.umd.edu>\nmangoe@cs.umd.edu (Charley Wingate) writes:\n \n>>Well, John has a quite different, not necessarily more elaborated theology.\n>>There is some evidence that he must have known Luke, and that the content\n>>of Q was known to him, but not in a 'canonized' form.\n>\n>This is a new argument to me.  Could you elaborate a little?\n>\n \nThe argument goes as follows: Q-oid quotes appear in John, but not in\nthe almost codified way they were in Matthew or Luke. However, they are\nconsidered to be similar enough to point to knowledge of Q as such, and\nnot an entirely different source.\n \n \n>>Assuming that he knew Luke would obviously put him after Luke, and would\n>>give evidence for the latter assumption.\n>\n>I don't think this follows.  If you take the most traditional attributions,\n>then Luke might have known John, but John is an elder figure in either case.\n>We're talking spans of time here which are well within the range of\n>lifetimes.\n \nWe are talking date of texts here, not the age of the authors. The usual\nexplanation for the time order of Mark, Matthew and Luke does not consider\ntheir respective ages. It says Matthew has read the text of Mark, and Luke\nthat of Matthew (and probably that of Mark).\n \nAs it is assumed that John knew the content of Luke's text. The evidence\nfor that is not overwhelming, admittedly.\n \n \n>>>(1)  Earlier manuscripts of John have been discovered.\n>\n>>Interesting, where and which? How are they dated? How old are they?\n>\n>Unfortunately, I haven't got the info at hand.  It was (I think) in the late\n>'70s or early '80s, and it was possibly as old as CE 200.\n>\n \nWhen they are from about 200, why do they shed doubt on the order on\nputting John after the rest of the three?\n \n \n>>I don't see your point, it is exactly what James Felder said.  They had no\n>>first hand knowledge of the events, and it obvious that at least two of them\n>>used older texts as the base of their account.  And even the association of\n>>Luke to Paul or Mark to Peter are not generally accepted.\n>\n>Well, a genuine letter of Peter would be close enough, wouldn't it?\n>\n \nSure, an original together with Id card of sender and receiver would be\nfine. So what's that supposed to say? Am I missing something?\n \n \n>And I don't think a \"one step removed\" source is that bad.  If Luke and Mark\n>and Matthew learned their stories directly from diciples, then I really\n>cannot believe in the sort of \"big transformation from Jesus to gospel\" that\n>some people posit.  In news reports, one generally gets no better\n>information than this.\n>\n>And if John IS a diciple, then there's nothing more to be said.\n>\n \nThat John was a disciple is not generally accepted. The style and language\ntogether with the theology are usually used as counterargument.\n \nThe argument that John was a disciple relies on the claim in the gospel\nof John itself. Is there any other evidence for it?\n \nOne step and one generation removed is bad even in our times. Compare that\nto reports of similar events in our century in almost illiterate societies.\nNot even to speak off that believers are not necessarily the best sources.\n \n \n>>It is also obvious that Mark has been edited. How old are the oldest\n>>manuscripts? To my knowledge (which can be antiquated) the oldest is\n>>quite after any of these estimates, and it is not even complete.\n>\n>The only clear \"editing\" is problem of the ending, and it's basically a\n>hopeless mess.  The oldest versions give a strong sense of incompleteness,\n>to the point where the shortest versions seem to break off in midsentence.\n>The most obvious solution is that at some point part of the text was lost.\n>The material from verse 9 on is pretty clearly later and seems to represent\n>a synopsys of the end of Luke.\n>\nIn other words, one does not know what the original of Mark did look like\nand arguments based on Mark are pretty weak.\n \nBut how is that connected to a redating of John?\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3033, "properties": {"category": "sci.med", "text": "From: koreth@spud.Hyperion.COM (Steven Grimm)\nSubject: Re: Opinions on Allergy (Hay Fever) shots?\nOrganization: Hyperion, Mountain View, CA, USA\nLines: 7\nNNTP-Posting-Host: spud.hyperion.com\n\nI had allergy shots for about four years starting as a sophomore in high\nschool.  Before that, I used to get bloody noses, nighttime asthma attacks,\nand eyes so itchy I couldn't get to sleep.  After about 6 months on the\nshots, most of those symptoms were gone, and they haven't come back.  I\nstopped getting the shots (due more to laziness than planning) in college.\nMy allergies got a little worse after that, but are still nowhere near as\nbad as they used to be.  So yes, the shots do work.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3034, "properties": {"category": "alt.atheism", "text": "From: sieferme@stein.u.washington.edu (Eric Sieferman)\nSubject: Re: some thoughts.\nOrganization: University of Washington, Seattle\nLines: 75\nNNTP-Posting-Host: stein.u.washington.edu\nKeywords: Dan Bissell\n\nIn article <bissda.4.734849678@saturn.wwc.edu> bissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n\nIt appears that Walla Walla College will fill the same role in alt.atheist\nthat Allegheny College fills in alt.fan.dan-quayle.\n\n>\tFirst I want to start right out and say that I'm a Christian.  It \n>makes sense to be one.  Have any of you read Tony Campollo's book- liar, \n>lunatic, or the real thing?  (I might be a little off on the title, but he \n>writes the book.  Anyway he was part of an effort to destroy Christianity, \n>in the process he became a Christian himself.\n\nConverts to xtianity have this tendency to excessively darken their\npre-xtian past, frequently falsely.  Anyone who embarks on an\neffort to \"destroy\" xtianity is suffering from deep megalomania, a\ndefect which is not cured by religious conversion.\n\n>\tThe arguements he uses I am summing up.  The book is about whether \n>Jesus was God or not.  I know many of you don't believe, but listen to a \n>different perspective for we all have something to gain by listening to what \n>others have to say.  \n\nDifferent perspective?  DIFFERENT PERSPECTIVE??  BWAHAHAHAHAHAHAHAH!!!\n\n>\tThe book says that Jesus was either a liar, or he was crazy ( a \n>modern day Koresh) or he was actually who he said he was.\n\n(sigh!)  Perhaps Big J was just mistaken about some of his claims.\nPerhaps he was normally insightful, but had a few off days.  Perhaps\nmany (most?) of the statements attributed to Jesus were not made by\nhim, but were put into his mouth by later authors.  Other possibilities\nabound.  Surely, someone seriously examining this question could\ncome up with a decent list of possible alternatives, unless the task\nis not serious examination of the question (much less \"destroying\"\nxtianity) but rather religious salesmanship.\n\n>\tSome reasons why he wouldn't be a liar are as follows.  Who would \n>die for a lie?\n\nHow many Germans died for Nazism?  How many Russians died in the name\nof the proletarian dictatorship?  How many Americans died to make the\nworld safe for \"democracy\".  What a silly question!\n\n>Wouldn't people be able to tell if he was a liar?  People \n>gathered around him and kept doing it, many gathered from hearing or seeing \n>someone who was or had been healed.  Call me a fool, but I believe he did \n>heal people.  \n\nIs everyone who performs a healing = God?\n\n>\tNiether was he a lunatic.  Would more than an entire nation be drawn \n>to someone who was crazy.\n\nIt's probably hard to \"draw\" an entire nation to you unless you \nare crazy.\n\n>Very doubtful, in fact rediculous.  For example \n>anyone who is drawn to David Koresh is obviously a fool, logical people see \n>this right away.\n>\tTherefore since he wasn't a liar or a lunatic, he must have been the \n>real thing.  \n\nAnyone who is convinced by this laughable logic deserves\nto be a xtian.\n\n>\tSome other things to note.  He fulfilled loads of prophecies in \n>the psalms, Isaiah and elsewhere in 24 hrs alone.  This in his betrayal \n>and Crucifixion.  I don't have my Bible with me at this moment, next time I \n>write I will use it.\n\nDon't bother.  Many of the \"prophecies\" were \"fulfilled\" only in the\neyes of xtian apologists, who distort the meaning of Isaiah and\nother OT books.\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3035, "properties": {"category": "comp.graphics", "text": "From: jack@robotics.jpl.nasa.gov (Jack Morrison)\nSubject: Fixed-point math library\nOrganization: Jet Propulsion Laboratory\nLines: 11\nDistribution: usa\nReply-To: jack@robotics.jpl.nasa.gov\nNNTP-Posting-Host: medusa.jpl.nasa.gov\n\nHas anyone written or seen a C library or C++ class for fixed-point math,\nor good articles about same?\n\nI pretty much know how to do this, but I have a few other wheels to invent\nat the moment...\n\nThanks!\n---\n\"How am I typing? Call 1-818-354-7782\"               jack@robotics.jpl.nasa.gov\nJack Morrison/Jet Propulsion Lab/MS107-102 4800 Oak Grove Dr, Pasadena CA 91109\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3036, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: God, morality, and massacres\nLines: 258\n\nA listmember (D Andrew Killie, I think) wrote, in response to the\nsuggestion that genocide may sometimes be the will of God:\n\n > Any God who works that way is indescribably evil,\n > and unworthy of my worship or faith.\n\nNobuya \"Higgy\" Higashiyama replied (as, in substance, did others):\n\n > Where is your source of moral standards by which you judge God's\n > behavior?\n\nIt is often argued that we have no standing by which to judge God's\nactions.  Who is the clay to talk back to the potter? But we find a\ncontrary view in Scripture. When God proposes to destroy the city of\nSodom (Genesis 18), Abraham says:\n\n + Suppose that there are some good men in the city.\n + Will you destroy the righteous along with the wicked?\n + Far be it from you, Lord, to do such a thing!\n + Shall not the Judge of all the earth do right?\n\nI am told that the Hebrew is actually a bit stronger than this, and\ncan perhaps be better rendered (dynamic equivalence) as\n\n + Shame on you, Lord, if you do such a thing!\n\nThere are those who say that the definition of \"good\" is \"whatever\nGod happens to want.\" But if that is so, then the statement that God\nis good has no meaning.  It simply says that God does what He wants.\nThat being the case, no one can either love or obey God because He\nis good. The only motive left for obeying Him is that He is\npowerful. Just as it makes sense to obey a dictator, even when he\ntells you to round up all Jews and exterminate them, because if you\ndefy him you might end up in the gas chamber yourself, so it makes\nsense to obey God, because He has the power to punish you if you\ndon't. This ethical theory I take to be in radical contradiction to\nGenesis 18 and to Christianity in general.\n\nAny theory that makes our moral judgements worthless makes any\nfurther discussion of morality (or of the goodness of God)\nmeaningless. However, it does not follow that our moral judgements\nare always infallible in particular cases, still less our judgements\nin particular cases about the course of action most likely to\nachieve a good result.\n\nWhen I read the Scriptural accounts of the actions of God in\nhistory, those actions often seem to me very different from what I\nmight expect of a God who loves us and desires what is best for us.\nMoreover, leaving the Scriptures aside, and considering the natural\nworld, I find that Nature is often very different from what I might\nexpect if it were the work of a benevolent deity.  (Origen said:\n\"Those who believe that the Author of Nature is also the Author of\nthe Scriptures must expect to find in the Scriptures the same sort\nof difficulties that they find in Nature.\")\n\nNow, that some such difficulties should exist is not in itself an\nargument against the existence, power, wisdom, and goodness of God.\nOn the contrary, their ABSENCE would be such an argument. Suppose\nthat I am watching Bobby Fisher play chess, and suppose that every\ntime he makes a move, I find myself nodding and saying: \"Good move!\nJust what I was expecting him to do.  Same move I would have made if\nI were playing.\" That would be a sign that Fisher is no better a\nchess player than myself. Given that he is better, I expect that at\nleast some of his moves will have me thinking, \"Now, what do suppose\ninduced him to do that?\" or even, \"Boy, that was a real slip -- he's\njust thrown the game away!\" Similarly, if God understands the\nworkings of the universe better than I do, it is to be expected that\nsometimes it will look to me as if He has made a mistake.\n\nOne difference between Fisher at the chessboard and God at the\ncontrols of the universe is that I can see the end of the chess\ngame. If Fisher wins, I revise my earlier inference that it was\ncarelessness that made him lose his queen 23 moves earlier.\nHowever, if he loses, and particularly if I can see that there was a\ntime when he had an opportunity for a checkmate in two moves and did\nnot take it, then I know that he is not as good a player as I had\nthought.\n\nWith God, on the other hand, I shall not in this life see the total\nresult of some of His actions. Therefore, my grounds for judging\nthat I have seen a bad move on His part must always be far shakier\nthan my grounds for making a similar judgement about Fisher.\n\n     *****     *****     *****     *****     *****\n\nIn the book of Genesis, we read that Joseph's ten older brothers,\nwho (with good reason) found  him insufferable, conspired to sell\nhim into slavery in Egypt. There he eventually became Viceroy, and\nwhen there was a famine in Canaan, he was able to provide for his\nfamily. When his brothers nervously apologized, he told them: \"Do\nnot worry. You meant to do me evil, but God turned it into good.\"\n\nI once heard a rabbi speak on this text. He said:\n\n        The history of the Jews is largely a history of events\n   that look like catastrophes that threaten the continued\n   survival of the religion, or the people, or both. But,\n   amazingly, those events turn out to be the saving of the Jews\n   and of Judaism.\n        The sale of Joseph by his brothers looked like the breakup\n   of the family.  But in fact, it ended with a reconciliation of\n   the quarrel between them. The famine that drove the family out\n   of Canaan looked like a misfortune for them.  But in fact, if\n   they had stayed in Canaan, they would almost certainly have\n   intermarried with the Canaanites and been assimilated into\n   their culture.  Their oppression by the Egyptians a few\n   generations after their arrival in Egypt again looked like a\n   disaster. But God used it to bring them out of Egypt, and into\n   the Promised Land.\n        Here the people built a Temple, and regularly offered\n   sacrifices. But the Babylonians captured Jerusalem and Judea,\n   destroyed Temple and city and countryside, and deported most of\n   the people to Babylon. You might have thought that that would\n   be the end of the people and the religion. But it was not.\n   Living in Canaan, the people had been under constant danger of\n   assimilation.  Again and again, they had turned from the\n   worship of the LORD to the worship of the Canaanite fertility\n   cults, with their ritual prostitution and ritual human\n   sacrifice. The Babylonian captivity put a stop to that. Never\n   again did the Jews show any interest in polytheism or idolatry.\n   Neither the worship of the Canaanites mor that of the\n   Babylonians ever again had a foothold among them.\n        Nor is that all. Judaism had been in danger of becoming\n   simply a system of sacrifices and Temple observances. The only\n   prescribed acts of worship consisted of coming to Jerusalem\n   every so often and offering a sacrifice. During the Captivity,\n   with the Temple gone, the Jews invented the synagogue, a place\n   of meeting for reading and study and discussion of the\n   Scriptures. They came to realize clearly, what they were in\n   danger of forgetting while they continued to live in Judea,\n   that God is not simply a local or tribal deity, not just the\n   controller of the land of Canaan, or the patron of the Jewish\n   people, but the Creator of the world, and the Ruler and Judge\n   of all humans everywhere.\n        Time passed, and the Babylonian Empire was replaced by\n   that of the Persians, and then that of the Greeks, or rather\n   the Macedonians. The ruler, Antiochus Epiphanes, was determined\n   to stamp out Judaism, and to this end he made the reading and\n   the study of the Torah punishable by death. Again, one might\n   think that this would be the end of Judaism. But it was not.\n   The people met for worship, and instead of reading the Torah\n   portion appointed for the day, they would read some passage\n   from the prophets that had a similar theme, and then discuss\n   that.  Before this time, the Torah, the so-called Five Books of\n   Moses (Genesis, Exodus, Leviticus, Numbers, and Deuteronomy)\n   were the only books read and studied in the synagogue.  If it\n   had not been for Antiochus, the books of the prophets would\n   probably have been forgotten altogether. His hatred for Judaism\n   saved them.\n\n        [Other examples here omitted for brevity's sake.]\n\n        Some of you may remember that Julie Andrews first became\n   famous as Eliza Doolittle in the stage production of MY FAIR\n   LADY. When Warner Brothers undertook to make a movie of it,\n   everyone expected that Julie, who had been so magnificent on\n   stage, would play the same role in the movie. Instead, the\n   studio decided to go with an established screen star, and cast\n   Audrey Hepburn.  Julie Andrews was naturally crushed. But she\n   later realized that if she had played the screen role, she\n   would have been type-cast for life as an Elize Doolittle type.\n   It would have been a disaster for her. As it was, Walt Disney\n   offered her the role of Mary Poppins, and she won an Oscar for\n   it.  At the presentation, she stood there, smiling, and looking\n   at Walt Disney, she said, \"And now, my special thanks to the\n   man who made all this possible -- JACK WARNER!\" It was the most\n   memorable line of the evening.\n        In a similar spirit, we Jews might thank the men who in\n   the providence of God have preserved Judaism, and kept it alive\n   to this day, beginning with Joseph's brothers, and continuing\n   with two Pharaohs, with Nebuchadnezzar, with Antiochus\n   Epiphanes....\n\nAfter the formal meeting had broken up, one woman came up to him\nprivately and said, \"You were talking about the Holocaust, weren't\nyou?\" He answered, \"If that is an example that came to your mind,\nthen you are right, I was talking about it to you. But I would not\ntalk about it to everyone, for not everyone can bear it.\" I assume\nthat he meant that, without the Holocaust, there would have been no\nstate of Israel.\n\nSomeone hearing the rabbi's lecture might leap to the conclusion\nthat God is dependent on the wickedness of men to accomplish His\npurposes -- or at least that the rabbi thought so. He might then  go\non to suppose that the wickedness is in fact God's doing -- that He\nstirred up Joseph's brothers to a murderous hate against him, and\nthat when the Israelites were in Egypt, God hardened Pharaoh's\nheart, so that he oppressed the people, and would not let them go.\nAnd this raises questions about how an action can be considered\nwicked and at the same time be considered something that God has\nbrought about.\n\nI suggest another way of looking at it. Consider a sculptor who has\na log of wood from which he proposes to carve a statue. But the log,\ninstead of having a smooth even grain throughout, has a large knot\nthat spoils the appearance of the surface. The sculptor considers\nthe wood for a while, and then carves a statue that features the\nknot, that makes that particular interruption in the grain and color\nof the wood correspond to some feature of the statue, so that\nobservers will say: \"How fortunate the sculptor was in finding a\npiece of wood with a knot like that in just the right place. Its\npresence is the crowning touch, the thing that makes the statue a\ngreat work of art.\" In reality, the knot, far from being what the sculptor was\nlooking for, was a challenge to his skill. If the wood had not\ncontained that flaw, he would still have made a great work of art,\nbut a different one. So, if Joseph's brothers had not sold him, God\nwould still have brought about His purposes for the Jewish people,\nbut He would have done so in another manner. If Judas had not\nbetrayed Jesus, if Caiaphas and his fellow leaders had not rejected\nJesus, but had rather acknowledged Him as the Annointed of God, if\nPilate had followed his conscience rather than his fears and had set\nJesus free, it might appear that there would have been no\nCrucifixion, and therefore no Redemption, and therefore no\nSalvation. Not so. God did not need Judas' sin to redeem us. If\nJudas had done right, then God in Christ would still have reconciled\nthe world to Himself.  We do not know how, just as we do not know\nhow Michelangelo would have painted the Sistine Chapel if its\ninterior had instead been shaped like Grand Central Station, and\njust as we do not know how Bobby Fisher would have won his fourth\ngame agianst Spassky if Spassky had refused the exchange of bishops\nand had attacked Fisher's knight instead (don't bother to look up\nthe game in question--I am making up this example, but the point is\nnone the less valid).\n\nThus, we may say both (1) that God used, say, the cowardice of\nPilate to accomplish His purposes, and (2) that the said cowardice\nwas not God's doing, and that Pilate would not have thwarted God's\nplans by behaving justly and courageously.\n\nWhat, then, are we to make of the place where God says to Moses, \"I\nwill harden Pharaoh's heart, so that he will not let the people go\"?\nSome Christians have taken this to mean that Pharaoh was a puppet\nwith God pulling the strings, and that his stubbornness and cruelty\nwere not his own work, but the work of God in him. I suppose rather\nthat what God was telling Moses was something like this: \"If you see\nthat Pharaoh is not willing to let the people go, do not be\ndiscouraged, or suppose that the situation is out of my control. My\npurposes will not be thwarted. If Pharaoh chooses to hear you and\nlet the people go, well and good. If he does not, I will fit his\nresistance into my plans, and fit it so perfectly that future\nhistorians and theologians will suppose that I would have been\nthrown for a loss if Pharaoh had obeyed me.\"\n\nTo return to the question that started this all off. Is it possible\nthat the Serbs, in slaughtering the Moslems of Bosnia, are\ninstruments of God's will?\n     First point. What they are doing is wrong, just as what\nJoseph's brothers did was wrong, just as what Judas did was wrong.\nThey intend it for evil. If God somehow brings good out of it, that\ndoes not make them any less subject to just condemnation and\npunishment.\n     Second point. Of course, God will bring good out of it. But not\nthe same good that He would have brought if the Serbians had\nrefrained from the sins of robbery and rape and murder. Nor does the\ngood He purposes excuse us from the duty of doing what is right.\n\n Yours,\n James Kiefer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3037, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: Boston Gun Buy Back\nLines: 40\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <8110356@hpfcso.FC.HP.COM> ron@hpfcso.FC.HP.COM (Ron Miller) writes:\n\n>> From: urbin@interlan.interlan.com (Mark Urbin)\n>> \n>> >RM:Just a short thought: \n>> >When you ask the question of the \"authorities\" or sponsors of buyback\n>> >programs whether they will check for stolen weapons and they answer\n>> >\"no, it's total amnesty\".\n>\n>>     Please note that the $50 given for each firearm, in the Boston `buy \n>> back' will not be in cash, but money orders.  How much `total amnesty\" can \n>> you get if you leave paper trail behind?\n>\n>In the latest case in Denver, they were giving away tickets to a Denver\n>Nuggets basketball game. \n>\n>How traceable is a money order?  (I don't know. Haven't used one in 20 years)\n\n       Money orders operate pretty much like checks, with both parties being\nsupposed to sign them.  I assume you'd have to show the buy-back people\nan ID, and you'd then have a money order made out to that ID.  \n\n       As far as traceable as a practical matter, I don't know, it would\ndepend on whether they bother to computerize who the recipient's name is\non the money order and bother keying that sort of thing in.  I'd say\ncertainly the police and the buyback people would keep a record of who\nthey gave money orders out to.\n\n>Is that even an issue if the weapons aren't checked for being stolen?\n\n       There might be some questions asked, I suppose, if somebody \nbrought in a number of weapons each time over a series of \"buy back\"\nprograms.\n\n        \n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3038, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: <Political Atheists?\nOrganization: sgi\nLines: 15\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <930404.112127.2h6.rusnews.w165w@mantis.co.uk>, mathew@mantis.co.uk (mathew) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> >                                      And we, meaning people who drive,\n|> > accept the risks of doing so, and contribute tax money to design systems\n|> > to minimize those risks.\n|> \n|> Eh?  We already have systems to minimize those risks.  It's just that you car\n|> drivers don't want to use them.\n|> \n|> They're called bicycles, trains and buses.\n\nPoor Matthew.   A million posters to call \"you car drivers\" and he\nchooses me, a non car owner.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3039, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: goudswaa@fraser.sfu.ca (Peter Goudswaard)\nSubject: Re: Why is my mouse so JUMPY? (MS MOUSE)\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 40\n\necktons@ucs.byu.edu (Sean Eckton) writes:\n\n>I have a Microsoft Serial Mouse and am using mouse.com 8.00 (was using 8.20 \n>I think, but switched to 8.00 to see if it was any better).  Vertical motion \n>is nice and smooth, but horizontal motion is so bad I sometimes can't click \n>on something because my mouse jumps around.  I can be moving the mouse to \n>the right with relatively uniform motion and the mouse will move smoothly \n>for a bit, then jump to the right, then move smoothly for a bit then jump \n>again (maybe this time to the left about .5 inch!).  This is crazy!  I have \n>never had so much trouble with a mouse before.  Anyone have any solutions?  \n\nTry this:  flip your mouse over, and open up the cover that holds the\nmouse ball in place.  Remove the ball, and inside you should see\n(probably) 3 rollers.  If any of the rollers have a tiny layer of\ncaked-on dirt, dust, or otherwise unidentifiable scum on them, carefully\nscrape it off with a small knife (Xacto works great).  *Be Careful*\nYou do not want to gauge the rollers, just clean off the dirt.\nPut the ball back in, put the cover on, and there you are.  \n\nI clean a couple of dozen of these every month here.  Another symptom\nis that when you move the mouse, it seems to \"click\" along.  If this\ndoesn't solve your problem, at least you have a clean mouse.  I highly\nrecommend using a proper _soft_ mouse pad, and if you are a clean freak,\nplace it in your drawer every night or when you don't use it to keep\nthe dust off.\n\nPersonally I prefer track balls.  Oh, which brings me to another point:\nif your mouse or trackball tracks optically, and the sunlight is \nstreaming through the window onto your mouse/trackball, you may notice\nthat it will stop working.  If this happens to you, close the curtains\nor blinds, or simply shade your pointing device, and see if that helps.\n\n-- \n Peter Goudswaard                  _________                     _________\n goudswaa@sfu.ca (preferred)      |         |      __/^\\__      |         |\n pgoudswa@cln.etc.bc.ca           |         |      \\     /      |         |\n pgoudswa@cue.bc.ca               |         |   _/\\_\\   /_/\\_   |         |\n                                  |         |   >           <   |         |\n \"There's no gift like the present\"         |    >_________<    |         |\n    - Goudswaard's observation    |_________|         |         |_________|\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3040, "properties": {"category": "rec.sport.hockey", "text": "From: nhmas@gauss.med.harvard.edu (Mark Shneyder 432-4219)\nSubject: Re: TV Schedule for Next Week\nDistribution: na\nOrganization: HMS\nLines: 54\nNNTP-Posting-Host: gauss.med.harvard.edu\n\nIn article <Apr16.043426.69352@yuma.ACNS.ColoState.EDU> mmb@lamar.ColoState.EDU (Michael Burger) writes:\n>United States TV Schedule:\n\n>April 18   Devils/Islanders at Pittsburgh   1 EST  ABC  (to Eastern time zone)\n>April 18   St. Louis at Chicago             12 CDT ABC  (to Cent/Mou time zones)\n>April 18   Los Angeles at Calgary           12 PDT ABC  (to Pacific time zone)\n>April 20   Devils/Islanders at Pittsburgh   7:30   ESPN\n>April 22   TBA                              7:30   ESPN\n>April 24   TBA                              7:30   ESPN\n>\n\nA little supplement Basic Mike's info  :\n\nFor Sundday's opener on ABC, these are the announcing crews :\n\nDevils/Isles at Pittsburgh - Gary Thorne(play-by-play),Bill Clement(color)\nand Al Morganti roaming the halls outside the dressing rooms.\nThis telecast will primarily seen on the East Coast.\n\nSt.Louis at Chicago - Mike Emrick(play - by play),Jim Schoendfeld(color)\nand Tom Mees roaming the halls.\nThis telecast will primarily be seen in the Midwest and parts of the South.\n\nLA at Calgary - Al \"Do You Believe in Mircales?\" Michaels(play by play),\nJohn Davidson(color) and Mark Jones as a roaming reporter.\nThis telecast will be seen in the Western USA.\n\nMontreal's naitive,Jon Saunders will be hosting in the studio.\n\nABC will do \"Up and Close and Personal\" with Mario during Saturday's\nWide World of Sports(4:30EDT).\n\nSunday will be the first NHL playoff or regular network telecast in 13 years...\nnot counting those silly All-Star games on NBC for the last few years...\n\nFor Sunday's games,ABC will use 8 mikes(2 behind on the goal),super-super-slo-mo,\nclose-ups of player's faces at face-offs. ESPN/ABC will not be able to\nuse its new favorite toy,the ice-level shot, in Pittsburgh where too many\nseats would have to removed to employ it...\n\n\nIn case of a blowout in progress in Pittsburgh,ABC will switch to Chicago\ngame but will come back to the Pittsburgh game for updates or if the game\ngets closer(Ha!)..\n\nABC expects huge ratings(by hockey standards) since all 3 Top US TV-markets\nare involved - NY metro area(NY Islanders/NJ Devils),Chicago(BlackHawks),\nand LA(Kings).\n\nStay tuned,\n\nThanks Mike,\n\n-PPV Mark\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.139+0000", "event": "documents", "entityId": 3041, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Christian Daemons? [Biblical Demons, the u\nFrom: stigaard@mhd.moorhead.msus.edu\nReply-To: stigaard@mhd.moorhead.msus.edu\nOrganization: Moorhead State University, Moorhead, MN\nNntp-Posting-Host: 134.29.97.2\nLines: 23\n\n>>>667\n>>>the neighbor of the beast\n>>\n>>No, 667 is across the street from the beast.  664 and 668 are the\n>>neighbors of the beast.\n>\n>I think some people are still not clear on this:\n>667 is *not* the neighbor of the beast, but, rather, across the\n>street. It is, in fact, 668 which is the neighbor of the beast.\n\nno, sheesh, didn't you know 666 is the beast's apartment?  667 is across the\nhall from the beast, and is his neighbor along with the rest of the 6th floor.\n\n>Justin (still trying to figure out what this has to do with alt.discordia)\n\nThis doesn't seem discordant to you?\n\n-----------------------     ----------------------     -----------------------\n\t-Paul W. Stigaard, Lokean Discordian Libertarian\n  !XOA!\t\tinternet:  stigaard@mhd1.moorhead.msus.edu\n (fnord)       Episkopos and Chair, Moorhead State University Campus Discordians\n\t\tRectal neufotomist at large\n     \"If I left a quote here, someone would think it meant something.\"\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3042, "properties": {"category": "sci.electronics", "text": "From: CONRADIE@firga.sun.ac.za (Gerrit Conradie)\nSubject: Re: arcade style buttons and joysticks\nOrganization: University of Stellenbosch, SA\nLines: 8\n\nIn article <1993Apr21.024036.7394@lynx.dac.northeastern.edu> dnewman@lynx.dac.northeastern.edu (David F. Newman) writes:\n>Subject: arcade style buttons and joysticks\n>Can anyone tell me where it is possible to purchase controls found\n>on most arcade style games.  Many projects I am working on would\n\nWhat about the common joystick found in all computer shops?\n\n- gerrit\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3043, "properties": {"category": "rec.sport.baseball", "text": "From: dwarner@journalism.indiana.edu (David J.)\nSubject: Re: THE METS ARE RAPISTS!!\nNntp-Posting-Host: mozzarella.journalism.indiana.edu\nReply-To: dwarner@journalism.indiana.edu\nOrganization: Indiana University\nLines: 19\n\n\"Todd Karlin\" writes\n> I do not read Klapisch's news columns regularly, but I\n> do know that he has been accused before as being an instigator\n> that enjoys (hopefully for only professional reasons) to drumb\n> up a news story, even if there isn't one there.  Now as far as\n> the confrontation with Bobby Bonilla a few days ago, I almost\n> totally blame Bonilla.  No matter what a member of the press\n> does, and no matter how much of a putrid individual he might\n> be, that does not give a ballplayer the right to threaten a\n> journalist.  \n\nBonilla wasn't threatening anyone.  He just wanted to give him the dollar \ntour.  =^)\n\n--\nDavid J.(dwarner@journalism.indiana.edu)*****Blue Riddle Productions 1993\n*-------------------------------It's on.--------------------------------*\n***\"THE RAP IS AN ART EP\" is coming out on tape -- this time for real.***\n*------------------------E-mail me for the 411.-------------------------*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3044, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: army in space\nLines: 13\nNntp-Posting-Host: acad3.alaska.edu\nOrganization: University of Alaska Fairbanks\n\nLast I had heard because of budget and such the Air Farce is the only \"Space\nCommand\" left.. The rest missions were generally given to the Air Farce..\n\nProbably a good reason for me to transfer from the Army Guard to the Air\nGuard..\n\nI hate walking with a pack on my back, and how do you put on your application\nfor a job as a kitchen worker, that you have done a lot of KP (Kitchen\nPolice)..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3045, "properties": {"category": "rec.autos", "text": "From: tommy@boole.att.com (Tommy Reingold)\nSubject: Re: Improvements in Automatic Transmissions\nReply-To: tommy@boole.att.com\nOrganization: AT&T Bell Labs, Holmdel, NJ, USA\nOriginator: tommy@hoodlum\nKeywords: Saturn, Subaru, manual, automatic\nNntp-Posting-Host: hoodlum.l1135.att.com\nLines: 24\n\nhagenjd@wfu.edu (Jeff Hagen) writes:\n\n\n$ The biggest hurdle for automatics (IMHO) is not shifting speed\n$ per se, but rather the transmission's reaction speed when you\n$ try to force it to shift manually.  \n$ [...]\n\nI rented an Oldsmobile Achieva (is that a yuppie name or what?) and a\nNissan Stanza.  They both had automatics.  I'm a manual transmission\nbigot but I have to admit that the transmissions on these cars were\nbetter shifters than I am.  And yes, they responded very quickly to\nkickdown requests.  The Nissan had a tachometer so I was able to figure\nout which gear I was in.  (The Olds may have also, but I don't\nremember.)  I believe it shifted all the way down to second at about 50\nmph when my foot told it, \"No I really want to accelerate quickly.\"\n\nI would still prefer a manual, but I won't delude myself into thinking\nthat I can out-accelerate a modern automatic.  And I'm very smooth at\nshifting but certainly not as good as an automatic.\n-- \nTommy Reingold\nAT&T Bell Labs, Holmdel, NJ\ntommy@boole.att.com or att!boole!tommy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3046, "properties": {"category": "comp.graphics", "text": "From: sd345@city.ac.uk (Michael Collier)\nSubject: Converting images to HP LaserJet III?\nNntp-Posting-Host: hampton\nOrganization: The City University\nLines: 14\n\nDoes anyone know of a good way (standard PC application/PD utility) to\nconvert tif/img/tga files into LaserJet III format.  We would also like to\ndo the same, converting to HPGL (HP plotter) files.\n\nPlease email any response.\n\nIs this the correct group?\n\nThanks in advance.  Michael.\n-- \nMichael Collier (Programmer)                 The Computer Unit,\nEmail: M.P.Collier@uk.ac.city                The City University,\nTel: 071 477-8000 x3769                      London,\nFax: 071 477-8565                            EC1V 0HB.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3047, "properties": {"category": "talk.politics.mideast", "text": "From: cpr@igc.apc.org (Center for Policy Research)\nSubject: Re: From Israeli press. Madness.\nLines: 8\nNf-ID: #R:cdp:1483500342:cdp:1483500347:000:151\nNf-From: cdp.UUCP!cpr    Apr 17 15:37:00 1993\n\n\nBefore getting excited and implying that I am posting\nfabrications, I would suggest the readers to consult the\nnewspaper in question. \n\nTahnks,\n\nElias\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3048, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: s913579@minyos.xx.rmit.OZ.AU (Lost Cause)\nSubject: Connection Machine\nOrganization: Royal Melbourne Institute of Technology\nLines: 19\nNNTP-Posting-Host: minyos.xx.rmit.oz.au\n\nHiya all,\n\t\n\tI realise this has little to do with pc's but it does have a lot to do\n\twith hardware....\n\n\tSo, has nay of you heard of a computer called the Connection Machine.\n\tIf so, could you e-mail me any and all info you have,\n\teg- references, ideas etc.\n\n\tAll help is appreciated.  \n\n\tCaviar Dreams\n\tL.Cause\n\n-- \n+----s913579@minyos.xx.rmit.OZ.AU---Royal Melbourne Institute of Technology---+\n|    _/   \"Music is like directing sounds theatrically, moulding them into    |\n|   _/_/   landscapes.. I wanted to link my music to places, architectural    |\n|  _/_/_/  environments and visual techniques.\"                - J.M.Jarre    | \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3049, "properties": {"category": "rec.autos", "text": "From: rmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen)\nSubject: VIPER\nOrganization: University of Virginia\nLines: 8\n\n\nLast night I had a dream that my dad bought a Viper.\nI took it out for a test drive, without his knowledge,\nand had to push it all the way home just to avoid a ticket.\nWierd dream, I wonder what it means....\n\nRoy.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3050, "properties": {"category": "sci.electronics", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Where to buy parts 1 or 2 at a time?\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 15\n\nThe pricing of parts reminds me of something a chemist once said to me:\n\n\"A gram of this dye costs a dollar.\nIt comes out of a liter jar which also costs a dollar.\nAnd if you want a whole barrel of it, that also costs a dollar.\"\n\nI.e., they charge you almost exclusively for packaging it and delivering\nit to you -- the chemical itself (in that particular case) was a byproduct\nthat cost almost nothing intrinsically.\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3051, "properties": {"category": "sci.electronics", "text": "From: khairon@usc.edu (Rosli Bin Khairon)\nSubject: Looking for Address of Noise Cancellation Tech.\nOrganization: University of Southern California, Los Angeles, CA\nLines: 14\nDistribution: na\nNNTP-Posting-Host: sal-sun130.usc.edu\n\n      I am new to this newsgroup so I apologise if this is not the appropriate\nforum to ask this question. I am looking for the address of Noise Cancellation\nTechnologies. It is rather important. So if you can help me in this regard,\nplease do. Thank you.\n\n\n\n    \n\n\n\n\n-- Rosli\nKhairon@aludra.usc.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3052, "properties": {"category": "talk.politics.misc", "text": "From: phil@netcom.com (Phil Ronzone)\nSubject: Re: Mr. Cramer's 'Evidence'\nOrganization: Generally in favor of, but mostly random.\nLines: 43\n\nIn article <1993Apr17.111713.4063@sun0.urz.uni-heidelberg.de> gsmith@lauren.iwr.uni-heidelberg.de (Gene W. Smith) writes:\n    >In article <philC5LsD9.Ms3@netcom.com> phil@netcom.com (Phil\n    >Ronzone) writes:\n    >\n    >>Libertarians want the State out of our lives.\n    >>\n    >>NAMBLA members want to fuck little boys.\n    >>\n    >>NOW do you get it?\n    >>\n    >I see! Libertarians want to have the right to fuck little\n    >children of either sex, and want to make sure everyone else\n    >has this right too. NAMBLA just wants to have the right to\n    >fuck little boys.\n    >\n    >>Or are you just a secret member of NAMBLA?\n    >>\n    >You're the one who suddenly seems to be defending the right\n    >to fuck children. How many little girls have you raped today,\n    >Phil?\n    >\n    >If wanting to abolish the age of consent is not repectable,\n    >it is not respectable for anyone.\n\nHmm, you still don't get it. Then again, I'm not posting from a  University\nwhere the hue and cry was raised against \"Jewish physics\".\n\nTell me, committed any anti-semitic acts today? What kind of boots do you\nwear?\n\nAnd still -- Libertarians want the State out of their lives. Parents are very\ncapable of protecting their children against the predations of pedophiles,\nwhich, BTW, you still haven't disassociated yourself from.\n\nAre you, or are you not, a member of NAMBLA?\n\n\n\n-- \nThere are actually people that STILL believe Love Canal was some kind of\nenvironmental disaster. Weird, eh?\n\nThese opinions are MINE, and you can't have 'em! (But I'll rent 'em cheap ...)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3053, "properties": {"category": "alt.atheism", "text": "Subject: Re: The Inimitable Rushdie\nFrom: kmagnacca@eagle.wesleyan.edu\nOrganization: Wesleyan University\nNntp-Posting-Host: wesleyan.edu\nLines: 28\n\nIn article <115621@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n> In article <1993Apr15.135650.28926@st-andrews.ac.uk> nrp@st-andrews.ac.uk (Norman R. Paterson) writes:\n> \n>>I don't think you're right about Germany.  My daughter was born there and\n>>I don't think she has any German rights eg to vote or live there (beyond the\n>>rights of all EC citizens).  She is a British citizen by virtue of\n>>her parentage, but that's not \"full\" citizenship.  For example, I don't think\n>>her children could be British by virtue of her in the same way.\n> \n> I am fairly sure that she could obtain citizenship by making an\n> application for it. It might require immigration to Germany, but\n> I am almost certain that once applied for citizenship is inevitable\n> in this case.\n\nNope, Germany has extremely restrictive citizenship laws.  The \nethnic Germans who have lived in Russia for over 100 years \nautomatically become citizens if they move to Germany, but the\nTurks who are now in their third generation in Germany can't.\nIt's not a very good example to show citizenship without descent.\n\nKarl\n -----------------------------------------------------------------------------\n| \"Lastly, I come to China in the hope      | \"All you touch and all you see  |\n| of fulfilling a lifelong ambition -       | Is all your life will ever be.\" |\n| dropping acid on the Great Wall.\"  --Duke |                 --Pink Floyd    |\n|-----------------------------------------------------------------------------|\n|         A Lie is still a Lie even if 3.8 billion people believe it.         |\n -----------------------------------------------------------------------------\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3054, "properties": {"category": "rec.sport.baseball", "text": "From: jtchern@ocf.berkeley.edu (Joseph Hernandez)\nSubject: Re: WHAT'S WITH ALL THESE SCORES?\nOrganization: JTC Enterprises Sports Division (Major League Baseball Dept.)\nLines: 38\nNNTP-Posting-Host: monsoon.berkeley.edu\n\nIn article <1qp1m9INNfjg@senator-bedfellow.MIT.EDU> cmk@athena.mit.edu (Charles M Kozierok) writes:\n>In article <1993Apr17.050311.10098@news.yale.edu> (Sean Garrison) writes:\n>} [Stuff about upated inning scores deleted.]\n>at just that exact time to see the message. even results after the game\n>is over are not necessary, thanks to Mr. Hernandez who posts daily\n>standings and results here every day.\n\nAm I supposed to take that as a compliment or a put down? Just wondering.\nI do this as a service to the entire baseball world on USENET, especially\nfor those in the East Coast who can't get final scores for West Coast games\nin their newspapers or late TV newscasts. This is helpful to fans in other\ncountries who either receive only weekly scores or updates by the week. Also,\nmany have requested for this kind of service previously but it was only\navailable through BBS's or some pay news services. By the way, mine is free\nof charge and has no copyright restrictions.\n\n>if you want to send updates and scores, set up a private mailing list\n>and use that.\n\nRemember I only post final scores and the updated standings once a day to the\nrec.sport.baseball newsgroup. Other than that, everything is done through\nprivate e-mail. Currently, there are 986 people on my mailing list that\nbranches off into other mailing lists available for many others. And the list\ngrows by an average of 35 people a day.\n\nIf people on USENET really don't want to see the postings I do to\nrec.sport.baseball on a daily basis, please just let me know. If the response\nis overwhelming against the posts, I won't do it anymore. \n\nThanks for your time.\n\nJoseph Hernandez\n-- \n-------------------------------------------------------------------------------\nJoseph Hernandez          |    RAMS  | |    /.\\  ******* _|_|_  / |   LAKERS\njtchern@ocf.Berkeley.EDU  |   KINGS  | |__ |   | DODGERS _|_|_  | |   RAIDERS\njtcent@soda.Berkeley.EDU  |  ANGELS  |____||_|_| *******  | |  |___|  CLIPPERS\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3055, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Re: DC-X: Vehicle Nears Flight Test\nArticle-I.D.: news.C51rzx.AC3\nOrganization: University of Illinois at Urbana\nLines: 34\n\nnsmca@aurora.alaska.edu writes:\n\n[Excellent discussion of DC-X landing techniques by Henry deleted]\n\n>Since the DC-X is to take off horizontal, why not land that way??\n\nThe DC-X will not take of horizontally.  It takes of vertically. \n\n>Why do the Martian Landing thing.. \n\nFor several reasons.  Vertical landings don't require miles of runway and limit\nnoise pollution.  They don't require wheels or wings.  Just turn on the engines\nand touch down.  Of course, as Henry pointed out, vetical landings aren't quite\nthat simple.\n\n>Or am I missing something.. Don't know to\n>much about DC-X and such.. (overly obvious?).\n\nWell, to be blunt, yes.  But at least you're learning.\n\n>Why not just fall to earth like the russian crafts?? Parachute in then...\n\nThe Soyuz vehicles use parachutes for the descent and then fire small rockets\njust before they hit the ground.  Parachutes are, however, not especially\npractical if you want to reuse something without much effort.  The landings\nare also not very comfortable.  However, in the words of Georgy Grechko,\n\"I prefer to have bruises, not to sink.\"\n\n\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n          \"Tout ce qu'un homme est capable d'imaginer, d'autres hommes\n            \t     seront capable de la realiser\"\n\t\t\t -Jules Verne\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3056, "properties": {"category": "sci.space", "text": "From: aa429@freenet.carleton.ca (Terry Ford)\nSubject: NASP\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 15\n\n\n\nCould someone please send me the basics of the NASP project:\n1. The proposal/objectives\n2. The current status of the project/obstacles encountered\n3. Chance that the project shall ever be completed\nor any other interesting information about this project.\n\nAny help will be much appreciated\n\n--\nTerry Ford [aa429@freenet.carleton.ca]\n>House, Nepean, Ontario, Canada, Earth, Solar System, Milky Way, Cluster A21<\nDISCALIMER: Any injuries occuring as a direct result from the reading of this\nmessage INCLUDING HEART PALPITATIONS is not my fault in any shape or form.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3057, "properties": {"category": "soc.religion.christian", "text": "From: noye@midway.uchicago.edu (vera shanti noyes)\nSubject: Re: Easter: what's in a name? (was Re: New Testament Double Standard?\nReply-To: noye@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 26\n\nIn article <Apr.10.05.33.25.1993.14413@athos.rutgers.edu> jayne@mmalt.guild.org (Jayne Kulikauskas) writes:\n>seanna@bnr.ca (Seanna (S.M.) Watson) writes:\n>\n>> In Quebec French, the word for the celebration of the resurrection is\n>> \"Pa^ques\"--this is etymologically related to Pesach (Passover) and the\n>> pascal lamb.  So is the French Canadian (mostly Roman Catholic) celebration\n>> better because it uses the right name?\n>\n>I was at my parents' Seder and noticed the labelling on one of the \n>packages was English, Hebrew and French.  In the phrase \"kosher for \n>passover\" the French word used was \"Pa^ques.\"   We've deliberately \n>mistranslated this at the Kulikauskas home and keep referring to foods \n>being kosher for Easter. :-)\n\nhowever, the word \"pa^ques\" in french _is_ the word for easter.  ask\nany francophone, whether from quebec or from paris.  besides, haven't\nyou heard of the phrase \"the paschal lamb\" (meaning jesus)?\n\nsorry to nitpick on the more trivial part of this thread....\n\n:) vera\n*******************************************************************************\nI am your CLOCK!     |  I bind unto myself today    | Vera Noyes\nI am your religion!  |  the strong name of the\t    | noye@midway.uchicago.edu\nI own you!\t     |  Trinity....\t\t    | no disclaimer -- what\n\t- Lard\t     |\t- St. Patrick's Breastplate | is there to disclaim?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3058, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 22\n\nIn article <1993Apr20.124518.886@batman.bmd.trw.com> auerbach@batman.bmd.trw.com writes:\n>Women stand up for your right to be just as stupid as men.\n\nOur new Attorney General seems determined to do so. In the past\nfew days she has said:\n\n\tShe hopes the King beating will not reduce public confidince\n\tin law enforcement.\n\n\tThe tactics of using tear gas and driving tanks through\n\twalls in Waco were intended to further a \"peacefull solution\"\n\tto the crisis.\n\n\tThose same tactics were intended to prevent a mass suicide,\n\tbut she never expected the sect to react by killing themselves.\n\nIt's comforting to know, at least, that she wasn't Clinton's first\nchoice...\n\n                                                   Frank Crary\n                                                   CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3059, "properties": {"category": "alt.atheism", "text": "Subject: Re: The nonexistance of Atheists?!\nFrom: kmagnacca@eagle.wesleyan.edu\nOrganization: Wesleyan University\nNntp-Posting-Host: wesleyan.edu\nLines: 22\n\nIn article <bskendigC5JCwx.Jzn@netcom.com>, bskendig@netcom.com (Brian Kendig) writes:\n>\n> [s.c.a quotes deleted]\n> \n> It really looks like these people have no idea at all of what it means\n> to be atheist.  There are more Bobby Mozumder clones in the world than\n> I thought...\n\nWell, that explains some things; I posted on soc.religion.islam\nwith an attached quote by Bobby to the effect that all atheists\nare lying evil scum, and asked if it was a commonly-held idea\namong muslims.  I got no response.  Asking about the unknown,\nI guess...\n\nKarl\n -----------------------------------------------------------------------------\n| \"Lastly, I come to China in the hope      | \"All you touch and all you see  |\n| of fulfilling a lifelong ambition -       | Is all your life will ever be.\" |\n| dropping acid on the Great Wall.\"  --Duke |                 --Pink Floyd    |\n|-----------------------------------------------------------------------------|\n|         A Lie is still a Lie even if 3.8 billion people believe it.         |\n -----------------------------------------------------------------------------\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3060, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: Seeking Moe Berg reference/info\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nDistribution: na \nLines: 29\n\nIn article <C5HvFs.4Dw@news.cis.umn.edu> lsmith@deci.cs.umn.edu (Lance \"Squiddie\" Smith) writes:\n>In article <14APR93.19061416@vax.clarku.edu> hhenderson@vax.clarku.edu writes:\n>>David Tate writes:\n\n>>>Also, in particular, a colleague of mine is looking for any information he\n>>>can find on Moe Berg, catcher/linguist/espion of WW2.  Any references (or\n>>>anecdotes, for that matter) would be appreciated.\n\n>>Moe Berg, my hero!  We were just talking about him on Monday at the\n>>Yankee game.  Well, there's a book about him that's just been reissued:\n>>I think the title is _Moe Berg: Athlete, Scholar, Spy_, by Tom Sewell\n>>and two other people whose names I forget.  Sewell wrote the chapter\n>>on Berg in Danny Peary's book _Cult Baseball Players_; this is a good\n>>source for some of the more famous anecdotes about Berg.  Also excellent\n>>is the section on him in Bill Gilbert's book _They Also Served_, about\n>>baseball during WWII.  I'm told Berg's spy activities are mentioned in\n>>the recent book _Heisenberg's War_.\n\n>His sister also \"wrote\" a book about Moe that she self-published. The \n>title is something like _My Brother, Morris Berg_. It's mainly some of\n>her memories and page after page of Xerox copies of pictures and letters\n>that Moe had saved. Copies are kinda hard to find, but the Smith Baseball\n>Library has one for those in Minneapolis...\n\nWe have one here, at Berg's alma mater (class of 1923).  It's kind of \na sour thing; she disapproved of the job that Sewell et al had done.\n\n\nRoger\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3061, "properties": {"category": "talk.politics.misc", "text": "From: phil@netcom.com (Phil Ronzone)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: Generally in favor of, but mostly random.\nLines: 20\n\nIn article <1993Apr17.022222.28105@news.cs.brandeis.edu> st923336@pip.cc.brandeis.edu writes:\n    >It seems that conservatives are putting a lot of effort into\n    >showing up the 10% figure, but that really doesn't make a\n    >difference. Like I said, who cares how many there are? Would\n    >the fact that they're only 1% of the population justify\n    >discrimination against them? I don't think so.\n    \nUh, well, Golly Gee Whiz. Let me see, when the new President, as his first\nbig \"policy act\" tries to force homosexuals (acceptance thereof) on the\nmilitary, despite polls showing a consistent 75%+ against it, and the\nminority is only 1%, well, gee, I sure think that is newsworthy.\n\nTells you something about the fascist politics being practiced ....\n\n\n-- \nThere are actually people that STILL believe Love Canal was some kind of\nenvironmental disaster. Weird, eh?\n\nThese opinions are MINE, and you can't have 'em! (But I'll rent 'em cheap ...)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3062, "properties": {"category": "sci.electronics", "text": "From: tg@cs.toronto.edu (Tom Glinos)\nSubject: 12V to 3V and 48V at 3A\nOrganization: Department of Computer Science, University of Toronto\nDistribution: na\nLines: 11\n\nThe subject line says it all. I'm working on a project\nthat will use a car battery. I need to pull off 3V and possibly\n48V at 3A.\n\nI have several ideas, but I'd prefer to benefit from all you\nbrilliant people :-)\n-- \n=================\n\"Conquest is easy, control is not\"\t| Tom Glinos @ U of Toronto Statistics\n[Star Trek TOS]   \t\t\t| tg@utstat.toronto.edu\nUSL forgot this simple history lesson\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3063, "properties": {"category": "rec.motorcycles", "text": "From: mbeaving@bnr.ca (M Beavington)\nSubject: Re: Insurance and lotsa points...\nNntp-Posting-Host: bmerh824\nReply-To: MBEAVING@BNR.CA\nOrganization: BNR Ottawa, DMS Software Design\nLines: 15\n\nIn article <13386@news.duke.edu>, infante@acpub.duke.edu (Andrew  Infante) writes:\n|> Well, it looks like I'm F*cked for insurance.\n|> \n|> I had a DWI in 91 and for the beemer, as a rec.\n|> vehicle, it'll cost me almost $1200 bucks to insure/year.\n|> \n|> Now what do I do?\n|> \n\nGo bikeless.  You drink and drive, you pay. No smiley.\n\n\nMike Beavington\nmbeaving@bnr.ca\n*opinions are my own and not my companies'.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3064, "properties": {"category": "rec.sport.baseball", "text": "From: ma_ind25@blurt.oswego.edu\nSubject: Re:Jewish Baseball Players?\nOrganization: SUNY College at Oswego, Oswego, NY\nLines: 3\n\nI believe that Rusty Staub was also a jewish ball-player\nAlso, Mordaci Brown back in the early 20th century.  He was a pitcher whose\nnickname was \"3 fingers\" Brown....for obvious reasons....he had 3 fingers.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3065, "properties": {"category": "sci.electronics", "text": "From: v064mb9k@ubvmsd.cc.buffalo.edu (NEIL B. GANDLER)\nSubject: Need diode model for PSpice\nOrganization: University at Buffalo\nLines: 15\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsd.cc.buffalo.edu\n\n\n\tIm designing a circuit with just a silicon diode. I dont need\nto modify any of the parameters. But the problem will not accept the following\nstatement\n\t\t\n\t\t.model diode D\n\n        The pspice book I have is terrible. I would appreciate any help.\n\n\n                                  Neil Gandler\n _____________________________________________________________________________\n       Gandler Electronics\n                            Home Automation & electronic design technology\n _____________________________________________________________________________\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.140+0000", "event": "documents", "entityId": 3066, "properties": {"category": "talk.politics.misc", "text": "From: mike@gordian.com (Michael A. Thomas)\nSubject: The verdict is in (Rodney King)\nOrganization: Gordian; Costa Mesa, CA\nLines: 19\n\n  The federal civil rights trial against the four LA police\nofficers accused of violating Rodney King's civil rights is\nnow history:\n\n  Lawrence Powell:\tguilty\n  Stacey Coons:\t\tguilty\n  Theodore Brazenio:\tinnocent\n  Timothy Wind:\t\tinnocent\n\n  Sentencing slated for mid August, appeals expected.\n\n  So far, all is calm in LA...\n-- \n\n\t\tMichael Thomas\t(mike@gordian.com)\n\t\"I don't think Bambi Eyes will get you that flame thrower...\"  \n\t\t-- Hobbes to Calvin\n\t\tUSnail: 20361 Irvine Ave Santa Ana Heights, Ca,\t92707-5637\n\t\tPaBell: (714) 850-0205 (714) 850-0533 (fax)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3067, "properties": {"category": "rec.sport.hockey", "text": "From: etxonss@ufsa.ericsson.se (Staffan Axelsson)\nSubject: Re: Bruins-Pens: the Ulf-Neeley fight\nNntp-Posting-Host: uipc104.ericsson.se\nOrganization: Ericsson Telecom, Stockholm, Sweden\nLines: 38\n\nmattb@hawk.samsung.com (Matt Brown) writes:\n[more about the Messier-Samuelsson incident]\n>While this is true, strictly speaking, it was the Rocksteady replicant who\n>initially used his stick illegally to measure Messier's ribcage. There is no\n>question in my mind, from seeing the replay in slo-mo, that Ulf-2000 was\n>coming at Messier with intent-to-\"hasta la vista\" in mind, and should have\n>been gone for that. \n>\n I agree with Rick that Ulf's cross check wasn't illegal. It was the kind\n of check you see a dozen times during a game without being called. Slo-mos\n sometimes have a tendency to make things look worse than they really are.\n Besides, if Messier can't take the heat, he should stay out of the kitchen.\n\n>So Staffan, how is Mattias Timmander doing this year? And any impression\n>on Markus Czeriew??? (lost my roster list) on Hammerby? Does it look like\n>they will make it to the Eliteserien for next year? And then get stomped\n>if Markus goes to Boston?\n>\n Well Matt, Mattias Timmander hasn't been playing with the MoDo elite league\n team yet (just the MoDo junior team), so I predict he needs a few more years\n here before he can join the B's. I saw him play in the Swedish championship\n game for junior players this year, and he played very well, a physical game,\n but not the kind of rough stuff that Ulfie does (I suspect you would like to\n have a Ulf type-of-player on the B's team too? :)\n As for Mariusz Czerkawski, he has had a *great* season for Hammarby in\n division 1. He scored -if I remember correctly- 93 points this season,\n and then we have to keep in mind that a 50+ point season in Sweden is\n considered *very good* due to the limited number of games. Mariusz is\n Djurgarden property (he was just on loan to Hammarby), so he will play\n in Elitserien next season, unless the B's can get him of course.\n I would say that Mariusz has to be one of the most exciting player to\n watch in Swedish hockey this season.\n\n Staffan\n--\n ((\\\\  //| Staffan Axelsson            \n  \\\\  //|| etxonss@ufsa.ericsson.se    \n\\\\_))//-|| r.s.h. contact for Swedish hockey  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3068, "properties": {"category": "talk.religion.misc", "text": "From: mls@panix.com (Michael Siemon)\nSubject: hating the sin but not the sinner?\nOrganization: PANIX Public Access Unix, NYC\nDistribution: usa\nLines: 26\n\nWhat are the consequences of the homophobic ranting of the\nself-righteous?  Well, I just noted this on another group,\nand thought I'd pass it along.  The context is talk.origins,\nand a report of yet another \"debate\" that was nothing but an\nattempt at mindless bullying and factless assertion by a\nstandard-issue Creationist.  The writer reflects that the\nbehavior reported reminds him of some Christian groups he has\nknown.  I believe that the writer is a (non-homosexual) Christian:\n\n+\tThere is a very effective technique used to promote\n+\tunit cohesion among the Soldiers of the Lord.  It is\n+\tcalled \"witnessing\"...  I've seen this process used well\n+\tand poorly; the near devil worship I mention was a group \n+\t... that was using the witnessing to get people lathered\n+\tup to go kill homosexuals or at least terrorize them off \n+\tcampus as it was clearly God's will that they do so.\n\nI have deleted the specifics of the location, as I do not\nbelieve it characteristic of the place (a state in which I\nspent my formative first 10 years), though it *does* have,\nunfortunately, a subpopulation that this remark fits to a tee.\n-- \nMichael L. Siemon\t\tI say \"You are gods, sons of the\nmls@panix.com\t\t\tMost High, all of you; nevertheless\n    - or -\t\t\tyou shall die like men, and fall\nmls@ulysses.att..com\t\tlike any prince.\"   Psalm 82:6-7\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3069, "properties": {"category": "soc.religion.christian", "text": "From: rcfec@westminster.ac.uk (James Holland)\nSubject: Re: Help\nOrganization: University of Westminster\nLines: 41\n\nIn article <Apr.21.03.26.51.1993.1379@geneva.rutgers.edu> lmvec@westminster.ac.uk (William Hargreaves) writes:\n>Hi everyone, \n>\t   I'm a commited Christian that is battling with a problem.  I know\n>that romans talks about how we are saved by our faith not our deeds, yet\n>hebrews and james say that faith without deeds is useless, saying' You fools,\n>do you still think that just believing is enough?'\n\nsome deleted\n\n>Now I am of the opinion that you a saved through faith alone (not what you do)\n>as taught in Romans, but how can I square up in my mind the teachings of James\n>in conjunction with the lukewarm Christian being 'spat-out'\n>\n>Can anyone help me, this really bothers me.\n\nDear Will,\n\nI've never replied on this thing before so I hope it gets thru ok.\nI had a few thoughts!:\n\n\"Faith on its own, if not accompanied by action is dead\" - James 2:17\n\nFaith is both belief and action.\nIf I say that I am a great swimmer but I never go swimming, am I really a\nswimmer? and will people believe that I am?\nLikewise if I say I'm a Christian but I never talk to God, am I really a\nChristian? My faith is demonstrated by my action. The fact that we talk to\nGod proves we have faith. Satan believes in God but does not follow Him!\n\nIn a similar vein, I have recently been challenged by 1John2:3-6\nv3 says \"We know that we have come to know Him if we obey His commands\"\nI find this verse quite encouraging as it could imply that 'if we have\ncome to know Him, then we'll obey His commands' cos He lives within us and\nwe cannot help but obey what He says.\nI tend to feel that as we daily submit ourself to God He will keep changing\nus into the likeness of Jesus and His fruit and works will be automatically\nproduced in our lives.\n\nHope this helps.\n\nJames Holland (rcfec@westminster.ac.uk)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3070, "properties": {"category": "comp.windows.x", "text": "From: dla@se05.wg2.waii.com (Doug Acker)\nSubject: Re: xterm build problem in Solaris2.1\nOrganization: western geophysical exploration products\nLines: 22\nNNTP-Posting-Host: se05.wg2.waii.com\nIn-reply-to: dla@se05.wg2.waii.com's message of 16 Apr 1993 23:58:27 GMT\n\n>>>>> On 16 Apr 1993 23:58:27 GMT, dla@se05.wg2.waii.com (Doug Acker) said:\n\tDoug> NNTP-Posting-Host: se05.wg2.waii.com\n\n\tDoug> ..continuing on my build problems, I got stuck here build xterm...\n\n\n\tDoug> Undefined                       first referenced\n\tDoug>  symbol                             in file\n\tDoug> index                               /usr/ucblib/libtermcap.a(termcap.o)\n\tDoug> rindex                              /usr/ucblib/libtermcap.a(termcap.o)\n\tDoug> ld: fatal: Symbol referencing errors. No output written to xterm\n\n\nActually .. the problem is that you have to build with LD_LIBRARY_PATH\nunset as well as LD_RUN_PATH.\n--\nDouglas L.Acker                Western Geophysical Exploration Products\n____    ____     ____          a division of Western Atlas International Inc.\n\\   \\  /   /\\   /   /\\         A Litton / Dresser Company\n \\   \\/   /  \\ /   /  \\        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n  \\  /   / \\  /   /\\   \\       Internet  :  acker@wg2.waii.com\n   \\/___/   \\/___/  \\___\\      Voice     :  (713) 964-6128\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3071, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: Once tapped, your code is no good any more.\nArticle-I.D.: rwing.2091\nDistribution: na\nOrganization: Totally Unorganized\nLines: 17\n\nIn article <1r21t1$4mc@access.digex.net> steve-b@access.digex.com (Steve Brinich) writes:\n<\n< > I wonder if she landed such a fat fee from cooperation with the NSA in\n< >the design and propoganda stages that she doesn't care any more? \n<\n<  Which is to say: is the NSA -totally- perfidious, or does it at least\n<have the redeeming virtue of taking care of its own? <g>\n\nOf course they take care of their own ... very well ... until the person\nhas 'outlived his/her/undefined usefulness'... then 'elimination' becomes\na consideration...  :-)\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3072, "properties": {"category": "sci.med", "text": "From: mcg2@ns1.cc.lehigh.edu (Marc Gabriel)\nSubject: Re: How to Diagnose Lyme... really\nOrganization: Lehigh University\nLines: 44\nX-Newsreader: TIN [version 1.1 PL9]\n\nGordon Banks (geb@cs.pitt.edu) wrote:\n: In article <1993Apr12.201056.20753@ns1.cc.lehigh.edu> mcg2@ns1.cc.lehigh.edu (\nMarc Gabriel) writes:\n\n: >Now, I'm not saying that culturing is the best way to diagnose; it's very\n: >hard to culture Bb in most cases.  The point is that Dr. N has developed a\n: >\"feel\" for what is and what isn't LD.  This comes from years of experience.\n: >No serology can match that.  Unfortunately, some would call Dr. N a \"quack\"\n: >and accuse him of trying to make a quick buck.\n: >\n: Why do you think he would be called a quack?  The quacks don't do cultures.\n: They poo-poo doing more lab tests:  \"this is Lyme, believe me, I've\n: seen it many times.  The lab tests aren't accurate.  We'll treat it\n: now.\"  Also, is Dr. N's practice almost exclusively devoted to treating\n: Lyme patients?  I don't know *any* orthopedic surgeons who fit this\n: pattern.  They are usually GPs.\n\nNo, he does not exclusively treat LD patients.  However, in some parts of the\ncountry, you don't need to be known as an LD \"specialist\" to see a large\nnumber of LD patients walk through your office.  Given the huge problem of\nunderdiagnosis, orthopedists encounter late manifestations of the disease just\nabout every day in their regular practices.  Dr. N. told me that last year,\nhe sent between 2 and 5 patients a week to the LD specialists... and he is not\nthe only orthopedists in the town.\n\nLet's say that only 2 people per week actually have LD.  That means at the\n*very minimum* 104 people in our town (and immediate area) develop late stage\nmanifestations of LD *every year*.  Add in the folks who were diagnosed by\nneurologists, rheumatologists, GPs, etc, and you can see what kind of problem\nwe have.  No wonder just about everybody in town personally knows an LD\npatient.\n\nHe refers most patients to LD specialists, but in extreme cases he puts the\npatient on medication immediately to minimize the damage (in most cases, to\nthe knees).\n\nGordon is correct when he states that most LD specialists are GPs.\n\n-Marc.\n-- \n--\n---------------------------------------------------------------------\n              Marc C. Gabriel        -  U.C. Box 545  -\n              (215) 882-0138         Lehigh University\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3073, "properties": {"category": "soc.religion.christian", "text": "From: reid@cs.uiuc.edu (Jon Reid)\nSubject: Re: Cell Church discussion group\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 18\n\njodfishe@silver.ucs.indiana.edu (joseph dale fisher) writes:\n\n>Please, define cell church.  I missed it somewhere in the past when this\n>was brought up before.\n\nIn a cell church, the fundamental building block is the \"cell group\" -- a\nsmall group of no more than 15 believers.  The small groups are responsible\nfor the ministry of the church: evangelism and discipleship.  The emphasis\nis on relationships, not on programs, and both the evangelism and the\ndiscipling are relationship-based.\n\nThis will probably raise more questions than it answered, but that's it in\na nutshell.\n-- \n******************************************************************\n*     Jon Reid     * He is no fool who gives what he cannot keep *\n* reid@cs.uiuc.edu * to gain what he cannot lose.   - Jim Elliot *\n******************************************************************\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3074, "properties": {"category": "rec.sport.hockey", "text": "From: mjr4u@Virginia.EDU (\"Matthew J. Rush\")\nSubject: Re: NCAA finals...Winner????\nOrganization: University of Virginia\nLines: 4\n\nktgeiss@miavx1.acs.muohio.edu writes:\n> Lake State/Maine in finals...WHO WON?   Please post.\n\nMaine 5-4. \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3075, "properties": {"category": "comp.windows.x", "text": "From: tom@CapMgtSci.COM (Thomas Tulinsky)\nSubject: MANUAL unsubscribe REQUEST\nOrganization: The Internet\nLines: 13\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nI am on the list under two addresses, I think:\n\ttom@capmgtsci.com\nand\n\tzuma!tom@netcomsv.netcom.com\n\nPlease delete the second one, \n\tzuma!tom@netcomsv.netcom.com\n\nThanks. Sorry for the screw up.\n\n----------------------------------------------------------------------------\nTom Tulinsky\t\tCapital Management Sciences\t    West Los Angeles\ntom@CapMgtSci.com\t        310 479 9715\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3076, "properties": {"category": "sci.med", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: Eumemics (was: Eugenics)\nOrganization: The Portal System (TM)\n  <79700@cup.portal.com> <lt03anINNm6n@saltillo.cs.utexas.edu>\nLines: 41\n\nA person posted certain stuff to this newsgroup, which were highly\nselected quotes stripped of their context.  Here is the complete\nposting which was quoted (lacking the context of other postings in \nwhich it was made):\n\n> Probably within 50 years, a new type of eugenics will be possible.\n> Maybe even sooner.  We are now mapping the human genome.  We will\n> then start to work on manipulation of that genome.  Using genetic\n> engineering, we will be able to insert whatever genes we want.\n> No breeding, no \"hybrids\", etc.  The ethical question is, should\n> we do this?  Should we make a race of disease-free, long-lived,\n> Arnold Schwartzenegger-muscled, supermen?  Even if we can.\n\nProbably within 50 years, it will be possible to disassemble and\nre-assemble our bodies at the molecular level.  Not only will flawless\ncosmetic surgery be possible, but flawless cosmetic PSYCHOSURGERY.\n\nWhat will it be like to store all the prices of shelf-priced bar-coded\ngoods in your head, and catch all the errors they make in the store's\nfavor at SAFEWAY?  What will it be like to mentally edit and spell-\ncheck your responses to the questions posed by a phone caller selling\nVACATION TIME-SHARE OPTIONS?\n\nIndeed, we are today a nation at risk!  The threat is not from bad genes,\nbut bad memes!  Memes are the basic units of culture, as opposed to genes\nwhich are the units of genetics.\n\nWe stand on the brink of new meme-amplification technologies!  Harmful\nmemes which formerly were restricted in their destructive power will\nrun rampant over the countryside, laying waste to the real benefits that\nfuture technology has to offer.\n\nFor example, Jeremy Rifkin has been busy trying to whip up emotions\nagainst the new genetically engineered tomatoes under development at\nCALGENE.  This guy is inventing harmful memes, a virtual memetic Typhoid\nMary.\n\nWe must expand the public-health laws to include quarantine of people\nwith harmful memes.  They should not be allowed to infect other people\nwith their memes against genetically-engineered food, electromagnetic\nfields, and the Space Shuttle solid rocket boosters.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3077, "properties": {"category": "sci.crypt", "text": "From: ptrei@bistromath.mitre.org (Peter Trei)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nNntp-Posting-Host: bistromath.mitre.org\nOrganization: The MITRE Corporation\nLines: 41\n\nIn article <strnlghtC5t4o3.K5p@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>Actually the govrnment is telling you that if you want to use their\n>\"product\" the manufacturer (actually better yet, some \"trusted\" pair\n>of escrow agencies) has to have the key.\n>\n>Most of us already are in this situation--our car makers have keys to our\n>cars (or can get them quickly from the VIN  number), and I have no doubt\n>that if presented with a court order, they'd surrender copies to the\n>government.\n\n>Chances are that many locksmiths have the code numbers for house locks\n>they've installed, and in an emergency can cut keys; thus they'd also\n>provide such keys to the government pursuant to a court order.\n\n    Of course, nothing prevents you from buying a new lock with cash\nand installing it yourself. Even modifying the core to match some\narbitrary key is not difficult to do at home. I once knew someone who\nhad fixed his locks in this way - his house, office and cars all took\nthe same key (which he took GOOD care of :-)\n\n>The state has no difficulty gaining access to your safe deposit box if they\n>have a court order.\n\n>Bad analogy.\n\n    Very bad (yours, that is). Have you ever had a safety deposit box?\nThey work on a two-key system. The bank clerk has one, and you have\nthe other (they are different keys). The bank does NOT keep a copy of\nyour key. If you lose it, they have to drill out the lock, and replace\nthe door. This is a time consuming and expensive process (which they\nwill be happy to charge to your account :-).\n\n     This process is exactly analogous to having a private key which\nis NOT in a escrow system, and the state having to crack your cipher\nto get the data.\n\n     Please do not use false analogies.\n\n\t\t\t\t\t\t\tPeter Trei\n\t\t\t\t\t\t\tptrei@mitre.org\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3078, "properties": {"category": "comp.graphics", "text": "From: edb9140@tamsun.tamu.edu (E.B.)\nSubject: POV problems with tga outputs\nOrganization: Texas A&M University, College Station, TX\nLines: 9\nDistribution: world\nNNTP-Posting-Host: tamsun.tamu.edu\n\nI can't fiqure this out.  I have properly compiled pov on a unix machine\nrunning SunOS 4.1.3  The problem is that when I run the sample .pov files and\nuse the EXACT same parameters when compiling different .tga outputs.  Some\nof the .tga's are okay, and other's are unrecognizable by any software.\n\nHelp!\ned\nedb9140@tamsun.tamu.edu\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3079, "properties": {"category": "sci.med", "text": "From: ron.roth@rose.com (ron roth)\nSubject: Selective Placebo\nX-Gated-By: Usenet <==> RoseMail Gateway (v1.70)\nOrganization: Rose Media Inc, Toronto, Ontario.\nLines: 34\n\n From: romdas@uclink.berkeley.edu (Ella I Baff) writes:\n\nJB>    RR> \"I don't doubt that the placebo effect is alive and well with\nJB>    RR>  EVERY medical modality - estimated by some to be around 20+%,\nJB>    RR>  but why would it be higher with alternative versus conventional\nJB>    RR>  medicine?\"\nJB>  \nJB>  Because most the the time, closer to 90% in my experience, there is no\nJB>  substance to the 'alternative' intervention beyond the good intentions of the\nJB>  practitioner, which in itself is quite therapeutic. [.......]\nJB>\nJB>  John Badanes, DC, CA\nJB>  romdas@uclink.berkeley.edu\n\n   Well, if that's the case in YOUR practice, I have a hard time \n   figuring out how you even managed to make it into the bottom half\n   of your class, or did you create your diplomas with crayons?\n \n   If someone runs a medical practice with only a 10% success rate,\n   they either tackle problems for which they are not qualified to\n   treat, or they have no conscience and are only in business for\n   fraudulent purposes.\n\n   OTOH, who are we kidding, the New England Medical Journal in 1984\n   ran the heading: \"Ninety Percent of Diseases are not Treatable by\n   Drugs or Surgery,\" which has been echoed by several other reports.\n   No wonder MDs are not amused with alternative medicine, since\n   the 20% magic of the \"placebo effect\" would award alternative \n   practitioners twice the success rate of conventional medicine...\n\n   --Ron--\n---\n   RoseReader 2.00  P003228: Purranoia: the fear your cat is up to something\n   RoseMail 2.10 : Usenet: Rose Media - Hamilton (416) 575-5363\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3080, "properties": {"category": "misc.forsale", "text": "From: suraj@apollo.cs.jhu.edu (Suraj Surendrakumar)\nSubject: !!!!!!!>> NEW STEREO SYSTEM FOR SALE <<!!!!!!!!\nOrganization: The Johns Hopkins University CS Department\nDistribution: usa\nLines: 29\n\n\n\n10 month old stereo system for sale. Luxman R-351 receiver, Onkyo TA-RW404\ntape deck, and Polk Monitor M4.6 book shelf speakers are for sale. Receiver\nhas 5 year warranty, and all equipment is in excellent condition. Paid $950\nfor the system and willing to consider the best offer. Will sell seperate\npieces also if desired. Please send best offer to suraj@cs.jhu.edu.\n\nSpeakers: Polk Monitor M4.6 bookshelf speakers\n\t  Paid $250 pair. Willing to consider best offer.\n\nReceiver: Luxman R-351 receiver with 5 year (yes 5 years) warranty.\n\t  Paid $475. Willing to consider best offer.\n\t  Full remote, 2 pairs of speaker connections,\n\t  60 watts per channel, but drives like a 150 watts per channel\n\t  Has all the standard features, and more.\n\nTape Deck: Onkyo TA-RW404 tape deck\n\t   Paid $275. Willing to consider best offer.\n\t   Dual cassette, Dolby B, C, and HX Pro.\n\t   Input level control for recording, auto reverse both sides.\n           Has all standard features.\n\nSend E-mail with best offer to suraj@cs.jhu.edu\n\n-Suraj\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3081, "properties": {"category": "misc.forsale", "text": "From: craigb@vccsouth03.its.rpi.edu (Brian Craig)\nSubject: speakers for sale\nNntp-Posting-Host: vccsouth03.its.rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY\nLines: 22\n\n\nFor sale :\n\n\n\n\n\tBose A5 subwoofer 1 month old\n\n\t2 Advent minis    4 months old\n\n\n\n\n\n\n\nemail offers to               \n\ncraigb@rpi.edu\n\n \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3082, "properties": {"category": "rec.autos", "text": "From: ip02@ns1.cc.lehigh.edu (Danny Phornprapha)\nSubject: I'm getting a car, I need opinions.\nOrganization: Lehigh University\nLines: 14\n\nI have $30,000 as my budget.  I'm looking for a sports or GT car.\n\nWhat do you think would be the best buy?  (I'm looking for specific models)\n\nThanks,\nDanny\n-- \n\n===============================================================================\n=    \"Hey! You programmers out there!     |    Danny Phornprapha              =\n=     Please consider this:               |    ip02@lehigh.edu                =\n=                                         |                                   =\n=     Bugs are another endangered earth   |    LUCC Student Konsultant        =\n=     Species needing your protection.    |    Work: (215) 758-4141           =\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3083, "properties": {"category": "comp.graphics", "text": "From: fombaron@ufrima.imag.fr (FOMBARON marc)\nSubject: 3d-Studio V2.01 : Any differences with previous version\nKeywords: 3d studio 2.01\nNntp-Posting-Host: boole-imag\nOrganization: University of Grenoble (France)\nLines: 9\n\nAre there significant differences between V2.01 and V2.00 ?\nThank you for helping\n\nMarc.\n-- \n      _/_/  _/_/   e-mail : Marc.Fombaron@ufrima.imag.fr\n     _/ _/_/ _/\n    _/  _/  _/  _/     _/    _/_/_/   _/_/_/_/   _/  _/_/_/_/  Marc Fombaron.\n   _/      _/  _/     _/  _/      _/ _/     _/  _/  _/     _/  Grenoble.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3084, "properties": {"category": "alt.atheism", "text": "From: edm@twisto.compaq.com (Ed McCreary)\nSubject: Re: KORESH IS GOD!\nIn-Reply-To: mathew's message of Fri, 16 Apr 1993 14: 15:20 +0100\nOrganization: Compaq Computer Corp\n\t<930416.141520.7h1.rusnews.w165w@mantis.co.uk>\nLines: 12\n\n>>>>> On Fri, 16 Apr 1993 14:15:20 +0100, mathew <mathew@mantis.co.uk> said:\n\nm> The latest news seems to be that Koresh will give himself up once he's\nm> finished writing a sequel to the Bible.\n\nAlso, it's the 16th now.  Can the Feds get him on tax evasion?  I don't\nremember hearing about him running to the Post Office last night.\n\n--\nEd McCreary                                               ,__o\nedm@twisto.compaq.com                                   _-\\_<, \n\"If it were not for laughter, there would be no Tao.\"  (*)/'(*)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3085, "properties": {"category": "talk.religion.misc", "text": "From: rich.bellacera@amail.amdahl.com\nSubject: \"Ex-Gay\"? (was: HOMOSEXUALITY Fact & Fiction)\nLines: 152\nReturn-Path: <amail.amdahl.com!rich.bellacera@juts.ccc.amdahl.com>\n\nTony-\n\nWhile I honestly believe you believe you are doing a \"good thing\" by posting\nthat piece of propaganda, I believe the more people believe that the more they\nwill feel justified in their blatant persecution of gay oriented people.  I\nhave seen the film called \"The Gay Agenda\" and along with my church we found\nit to be horrifying.  Not because of what was actually shown (cleaver use of\neditting can create any image one wants to portray), rather becaseu we are familia\nfamiliar with how widely it was actively distributed and how many naive people\nare actually believing the garbage found within it.  The truth is that neither\nyou nor I can fully speak for anyone who calls themself gay, but knowing as\nmany as I do and knowing their testimonies and witnessing thier faith and life\nI have to say that the report you posted is a very biased report, something\nobviously claimed against gays as well.  The truth is that unless YOU are\ninnately gay you cannot know what harm you are causing.  I speak as an\nabolitionist who supports affirming gay rights in our society.  I do not\nsupport wild sex or any other misrepresentations perpetrated by Christian\nFundamentalist extremists, but I know people who are not the sexual deviants\nyour report paints them to be.  It is no mistake that the APA removed\nhomosexuality from it's list of mental illnesses, it is also no mistake that\nthere are many Christians and homophobes who long to bring it back to the list.\nI do not feel threatened by gays, I don't understand why others are.\n\nThe following is an article concerning two of the more popular ex-gay min-\nistries:  Exodus International & Homosexuals Anonymous.\n\nTHE FOUNDER OF AN \"EX-GAY\" SUPPORT GROUP CHOOSES HOMO OVER HETERO\n\nby Robert Pela (from Gay oriented magazine ADVOCATE)\n\nIn December 1985, David Caligiuri received one of The Advocate's homophobia rewaa\nawards: the A Prayer A Day Keeps the Lust Away citation.  As director of FREE\nINDEED, a national ex-gay ministry, Caligiuri was singled out for offering\ndiscontented gays and lesbians \"a way out of the homosexual death-style\"\nthrough prayer.  \"I'd like to give the award back,\" Caligiuri now laughs, \"I'm\nno longer deserve it.\"\n  Caligiuri's eight year involvement with the national \"ex-gay\" movement peaked\nwith his founding of the Phoenix chapter of Homosexuals Anonymous (HA) as well\nas Free Indeed.  He has since abandoned his pulpit and now says that the ex-\ngay movement is a fruitless effort based on deception.  \"There's no reality\nin it,\" he says, \"I was selling a product, and my product was a lie.\"\n  Headed up by national ministries like Exodus International and Courage, the\norganizations of the ex-gay movement rely on the tenents of born-again\nChristianity to convince disatisfied homosexuals -- usually young gay men who\nare just coming out -- that they can shed their sexuality by suppressing their\nsexual urges and embracing Christianity.  \"We offer support to people who are\nseeking to leave the sin of homosexuality,\" explains Bob Davies, director of\nExodus.  He ventures that \"about 80% of those seeking to abandon their homo-\nsexuality are men.\"\n  \"Anybody who is involved in the ex-gay ministry is misguided and is wasting\ntheir time,\" says Lisa Seeley, a former \"redeemed lesbian\" who worked with\nCaligiuri as HA and appeared with him on the Sally Jessy Raphael show.  \"These\norganizations are for people who are spiritually and emotionally wounded.\"\n  \"It's possible to change your identity or your behavior,\" says sex educator\nBrian McNaught, author of _On Being Gay_. \"But it's really impossible to\nchange your orientation.  These people are no longer calling themselves gay,\nbut they continue to have same-sex erotic feelings.\"\n  Caligiuri says he founded Free Indeed after an ominous week in 1981 when all\nhell broke loose in his personal life.  A few days after his lover ended both\ntheir romance and their business partnership, Caligiuri was sexually assaulted\nby a man he picked up in a bar.  \"I was really drunk,\" he recalls, \"and I\nwent home with this guy.  He tied me up and raped me.  He left me tied up all\nnight, and the next morning he raped me again.\"\n  When Caligiuri was eventually freed by the attacker, he returned home to the\nhome he shared with his ex-lover.  \"He had another man there with him,\"\nCaligiuri recalls.  \"I thought at this time, 'If this is what being gay is\nabout, I don't want to be this way anymore.\"\n  Caligiuri vowed that if he could find a way out, he would share his discovery\nwith others.  He organized an antigay contingent to demonstrate at Phoenix's\ngay pride parade in June 1985, and a few months later Free Indeed held its\nfirst public protest.  At a meeting to promote a gay civil rights ordinance,\nFree Indeed members loudly blasted gays, telling them ther were sinners headed\nfor hell.\n  Free Indeed began receiving about a hundred telephone calls a week, thanks\nin part to a deceptive listing in the local yellow pages.  \"We were listed\nunder Lesbian and Gay Alternative Services,\" Caligiuri says, \"so people\nthought we were a gay information switchboard.  People would call to find out\nwhere the local bars were, and we'd preach to them about the sins of homo-\nsexuality.\"  Ruses like this are typical of the movement, Caligiuri says,\nadding, \"They'll do anything to reach these people.\"\n  \"David used to go on radio and say really stupid things,\" recalls Peter\nKelly, a counselor at Phoenix's Catholic diocese AIDS program, \"like that\nhe knew he was gay when he started wearing pastel colors.\"\n  Caligiuri's family first found out about his ministry when they saw him on\nRaphael's syndicated talk show in 1985.  \"They were relieved,\" he recalls.\n\"They figured that if they had to have a gay person in the family, better\nthat I should be a 'reformed' gay person.\"\n  But Caligiuri was hardly reformed.  \"By the time I appeared on Sally's\nshow,\" \"I'd started having sex with men again.  Men would call our hotline\nand tell me about thier latest sin: sex with their pastor, sex with their\nfather.  I was horny all the time.\"\n  Unable to risk going to gay bars, where he might be recognized from his\nnumerous television appearances, Caligiuri says he \"used to go to bookstores\nand get blowjobs.\"  When he wasn't working the bookstores, he was sleeping\nwith other \"reformed\" homosexuals.\n  \"I didn't realize it at first, but a lot of the HA leaders were having sex\nwith one another,\" Caligiuri says.  \"We'd go to conferences in other cities,\nand we'd be paired up in hotel rooms.  Everybody was sleeping with everybody\nelse.\"\n  By the time he appeared on 'AM Philadelphia' television show in May 1988,\nCaligiuri was having anonymous sex a couple times a week.  When the show's\nhost asked him if he ever \"acted on temptation,\" his answer was a lie.\n  Caligiuri's duplicity began to take it's toll on him, however.  He was\nsuffering from chrinic fatigue syndrome and candidiasis, a dibilitating\nyeast infection, and this led to his escape from the sect.  \"I was too sick\nto go to church,\" he explains.  \"The more time I spent away from those people\nthe more I began to feel like myself.  I began to remember who I used to be.\"\n  Late in 1991, Caligiuri turned Free Indeed phone lines over to a local\nchurch and closed the ministry's doors.  \"I'd convinced myself that there\nis no need in the world for ex-gay people,\" he says.\n  Today, Caligiuri, 31, is studying alternative spiritualities (\"I'm interest-\ned in belief systems that aren't judgemental.\"), considering romance (\"But\nnot with a CHristian!\"), and searching for a new project to devote himself to.\n\"I feel compelled to commit myself to gay causes,\" he says.  \"I want to\neventually stop feeling guilty about what I did and make up for the damage I\nmay have brought to our community.\"\n\n---end article---\n\nCaligiuri's tory is by no means unique and I have read several other articles\nof former leaders and founders of 'ex-gay' ministries who have said very similar th\nsimilar things.  Fortuantely not all of them have left Christianity, but have\ncome to realize that God loves them despite the attitudes of others.  Some,\nlike Chris Glaser, director of the Presbyterian \"Lazarus Project\" of West\nHollywood Presbyterian Church have actually been working with the gay community\nto bring them into the sheepfold of Christ and encouraging real ethical values\nof sexuality within the sphere of being gay.  I have also, as I said talked and become\nand become close friends with many who once attended such groups as \"Love In\nAction\" and others, who either once claimed to have been \"reformed\" or who\nwere too honest with themselves to live a lie, no matter who was disappointed\nin them.  Some were even encouraged to marry as a way of \"sealing\" their\nnew heterosexuality, only to eventually start hitting the bars, bathhouses\nand bookstores, since these were usually activities under the concealment of\nnight and one-night-stands of promiscuous behavior meant no continuous \"sin\"\nthrough a committed relationship.  This is a horrible trap which the CHurch\nhas dumped on the backs of the truly gay oriented people, and the very inno-\ncent victims in these cases are the wives and children of such marriages.  Yet\nthe church insists that there are only two options they are willing to allow\ngay people: 1) heterosexuality or 2) celebacy.  This is sad.  What is also\nmrtifying, is in the cases of those who cannot suppress their desires and\nfear for thier sanity in such a mixed up confusion that the church forces on\nthem, they may even opt for 'suicide' or surgical dampering of the brain\nfunctions.  In the past lobotomies and heavey drug suppressants were common-\nplace.  There are now becoming available more and more literature on the\nthreat of coercive Christianity toward gays, such as Sylvia Pennington's\n_\"Ex-Gays?  There Are None_. and others.  There are also a great many fact\nbased books being written to help people trapped in this confusion such as\nMaury Johnston's _Gays Under Grace_, and Chris Glaser's _Come Hom!_.  I\nseriously recommend those for people seeking help for this persecution and\nself-acceptance.\n\nThank you.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3086, "properties": {"category": "rec.motorcycles", "text": "From: asphaug@lpl.arizona.edu (Erik Asphaug x2773)\nSubject: FOR SALE: 550 ZEPHYR\nSummary: Tucson Area, moving to Bay Area\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 24\n\nHi boys and girls.  I just bought a Beemer R80GS and realized abruptly that \nI am a grad student.  I first sold my truck yesterday but I need to sell my \nZephyr too.\n\nIf I can sell it this month, great ... insurance and tags both run out in\na couple of weeks.  Otherwise I'll tag and insure it and see what happens.\n\nIt's a very sweet bike.  6100 miles, almost all highway (AZ-WY-CO last summer,\nplus some great rides between here and the Border.  Purchased new exactly\none year ago (Apr '92), it's a '90 model.  It has a good fairing and a\nluggage rack.  Red; very clean.  Perfect maintenance, no bullshit.   I'll spare\nany further details other than to say (1) I want to keep it, and (2) somebody\n5'7\" +/- 5\" will fit it like a charm.  Not a bike for big people, but not a\nsmall bike.  Standard, upright positioning and good-looking.  Smooth power,\ngreat brakes, good Karma.\n\n\t\t\t\t- Erik\n\n/-----b-o-d-y---i-s---t-h-e---b-i-k-e----------------------------\\\n|                                                                |\n|     DoD# 88888           asphaug@hindmost.lpl.arizona.edu      |\n| '90 Kawi 550 Zephyr               (Erik Asphaug)               |\n| '86 BMW R80GS                                                  |\n\\-----------------------s-o-u-l---i-s---t-h-e---r-i-d-e-r--------/\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3087, "properties": {"category": "sci.med", "text": "From: mossman@cea.Berkeley.EDU (Amy Mossman)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: CEA\nLines: 31\nDistribution: world\nNNTP-Posting-Host: mania.cea.berkeley.edu\n\nIn article <1993Apr15.135941.16105@lmpsbbs.comm.mot.com>, dougb@comm.mot.com (Doug Bank) writes:\n|> \n|> Here is another anecdotal story.  I am a picky eater and never wanted to \n|> try chinese food, however, I finally tried some in order to please a\n|> girl I was seeing at the time.  I had never heard of Chinese restaurant\n|> syndrome.  A group of us went to the restaurant and all shared 6 different\n|> dishes.  It didn't taste great, but I decided it wasn't so bad.  We went\n|> home and went to bed early.  I woke up at 2 AM and puked my guts outs.\n|> I threw up for so long that (I'm not kidding) I pulled a muscle in\n|> my tongue.  Dry heaves and everything.  No one else got sick, and I'm\n|> not allergic to anything that I know of.  \n|> \n|> Suffice to say that I wont go into a chinese restaurant unless I am \n|> physically threatened.  The smell of the food makes me ill (and that *is*\n|> a psycholgical reaction).  When I have been dragged in to suffer\n|> through beef and broccoli without any sauces, I insist on no MSG.  \n|> I haven't gotten sick yet.\n|> \n|> -- \n\nI had a similar reaction to Chinese food but came to a completly different\nconclusion. I've eaten Chinese food for ages and never had problems. I went\nwith some Chinese Malaysian friends to a swanky Chinses rest. and they ordered\nlots of stuff I had never seen before. The only thing I can remember of that\nmeal was the first course, scallops served in the shell with a soy-type sauce.\nI thought, \"Well, I've only had scallops once and I was sick after but that\ncould have been a coincidence\". That night as I sat on the bathroom floor,\nsweating and emptying my stomach the hard way, I decided I would never touch\nanother scallop. I may not be allergic but I don't want to take the chance.\n\nAmy Mossman\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3088, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith)\nSubject: Re: IDE vs SCSI\nOrganization: The John P. Robarts Research Institute, London, Ontario\nNntp-Posting-Host: valve.heart.rri.uwo.ca\nLines: 35\n\nIn article <RICHK.93Apr15075248@gozer.grebyn.com> richk@grebyn.com (Richard Krehbiel) writes:\n>>     Can anyone explain in fairly simple terms why, if I get OS/2, I might \n>>   need an SCSI controler rather than an IDE.  Will performance suffer that\n>>   much?  For a 200MB or so drive?  If I don't have a tape drive or CD-ROM?\n>>   Any help would be appreciated.\n\n>So, when you've got multi-tasking, you want to increase performance by\n>increasing the amount of overlapping you do.\n>\n>One way is with DMA or bus mastering.  Either of these make it\n>possible for I/O devices to move their data into and out of memory\n>without interrupting the CPU.  The alternative is for the CPU to move\n>the data.  There are several SCSI interface cards that allow DMA and\n>bus mastering.\n ^^^^^^^^^^^^\nHow do you do bus-mastering on the ISA bus?\n\n>IDE, however, is defined by the standard AT interface\n>created for the IBM PC AT, which requires the CPU to move all the data\n>bytes, with no DMA.\n\nIf we're talking ISA (AT) bus here, then you can only have 1 DMA channel\nactive at any one time, presumably transferring data from a single device.\nSo even though you can have at least 7 devices on a SCSI bus, explain how\nall 7 of those devices can to DMA transfers through a single SCSI card\nto the ISA-AT bus at the same time.\n\nAlso, I'm still trying to track down a copy of IBM's AT reference book,\nbut from their PC technical manual (page 2-93):\n\n\"The (FDD) adapter is buffered on the I.O bus and uses the System Board\ndirect memory access (DMA) for record data transfers.\"\nI expect to see something similar for the PC-AT HDD adapter.  \nSo the lowly low-density original PC FDD card used DMA and the PC-AT\nHDD controller doesn't!?!?  That makes real sense.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.141+0000", "event": "documents", "entityId": 3089, "properties": {"category": "soc.religion.christian", "text": "From: REXLEX@fnal.fnal.gov\nSubject: Re: Athiests and Hell\nOrganization: FNAL/AD/Net\nLines: 157\n\nIn article <May.6.00.35.31.1993.15453@geneva.rutgers.edu>\nsun075!Gerry.Palo@uunet.uu.net (Gerry Palo) writes:>Between Adam and Eve and\nGolgotha the whole process of the fall of man\n>occurred.  This involved a gradual dimming of consciousness of the spiritual\n>world.  \n\nThis was precisely my point.  From a theological bent, those who lived\nimmediately after the flood, such as Noah, Ham, his son Cush, and his son\nNimrod had a much stronger appreciation of Divine wrath.  They also had a\nstronger understanding of the True God.  In fact, this immediacy was a cause of\nhardship for some, so much so that Atlas, who is seen with heavens resting on\nhis shoulders.  But this is not merely the physical heavens that he is lifting.\n It is to put God and the strict spirituality of His law at a distance, and\nthus he became the \"Elevator of the heavens.\"  This \"god\" made men able to\n\"feel\" as if heaven were afar off and \"as if either the God of Heaven could not\nsee through the dark cloud, or did not regard with displeasure the breakers of\nHis laws.\"  It is interesting to see that it was that was titled \"Emancipator\"\nor \"Deliverer\"  or Phoroneus. It was Nimrod who invaded the patriarchal system\nand abridged the liberties of mankind, yet was worship for having given many\nbenefits.  He was a deliverer all right but not as we think of Christ as a\nDeliverer.  One delivered from a conscious feeling of God's wrath, the other\nactually performed a delivery from Gods wrath and it is up to us to accept it\nas true.\n\n>The question of what happens to human beings who died before Christ is\n>an ever present one with Christians.  I am not ready to consign Adam\n>or Abraham, or even Cain to eternal damnation.\n\nI don't see the problem.  From the time of Adam, those who looked forward to\nthe coming \"Anointed One\" and put their faith in the fact that it was God who\nwas to do the provision, were accounted as righteous.  But up to the\nCrucifixion, their sins were only covered, not taken away.  Therefore, the\ndispensation of the Church views the accountability of sin the same, but see it\nas a completed action.  Rom's makes it clear that it has always been salvation\nvia faith and nothing else.\n\n>It is possible to experience eternity in a passing moment.  The\n>relationship of eternity to duration is not simply one of indefinitely\n>extended conditions of Greenwich mean time. \n\nI understand what you're trying to convey, but I don't think I'd lay hold of it\nbecause the scriptures do equate the eternality of the second death with the\neternality of, say the Church ruling with Christ.  Jn 17 tells us what eternal\nlife is exactly, as you are correct that it is much more than non-cessation of\nconsciousness.  \n\n>It was also a standard belief among many peoples that even the righteous\n>were lost. \n\nIt depends upon your def of \"lost.\"  The elect were lost only in time as\noutside of time they had been chosen from the foundation of the world. \nExistentially we were all born \"lost\", but the \"righteous\" were \"in Christ\" and\ntherefore never *assuredly* lost.  \n>\n>It would be interesting to share in the results of your studies of ancient\n>people's ideas of life after death.\n\nMaybe this summer I could find time to put together a paper on it.  I simply\nhave to buy more books for myself, and these older books are very expensive. \nEither that or countless trips to the oriental museum.\n>\n>Mankind fell into mist and darkness, and at \"the turning point of\n>time\" a new light entered into the world.  The light still grows, and\n>we are developing the eyes with which to see by it.  Much new\n>revelation and growth in under- standing lies before us.  Our new\n>vision and understanding is still very feeble, but it contains\n>something new that will grow in time to embrace that which is old and\n>much more as well.\n\n\nCouldn't agree with you more.  Our understanding, of say eschatology, is\nclearly clearer than that of, say Isaiah.  But that is not what I was referring\nto.\n\n>(At this point I should acknowledge openly my debt to the work of Rudolf\n>Steiner, founder of Anthroposophy, for  many insights that have led me to my\n>views on this subject).\n\n>The way you refer to it as \"doctrine\" puts a modern intellectual coloring\n>on it. I think it was much less abstract and much more real and spiritually\n>concrete, a teaching that struck much closer to home than our doctrines or\n>teachings today can be received.\n\nNo, I understand it as you have said. This was my point.\n\n>\n>I am not so ready to attribute widespread notions in antiquity to\n>simple dispersion from an original source.  Even if they were passed\n>on, the question is, to what extent did they reflect real perception\n>and experience? \n\nAh!  This is it.  This is the big question.  However, I would say, again I\nthink, that the best lie is one that has an appreciable amount of truth to it. \nLook at Satan's twist of God's Word when he coerced Eve.  That is a very\ninteresting study.\n\n >The similarity in the midst of great variety of\n>expression of the different people's ideas of the time immediately\n>after death testifies to the presence of an underlying reality.\n\nYes, that is my point.  But it is a two edged sword. For some do not want the\nunderlying reality to be revealed.  They were not known as \"mystery\" religions\nfor no reason.  There was the public side of them and there was the private\nside, that was so protected that the initiates to an oath of death if they\nrevealed that private side.  That is why it is so hard to bring their teachings\nto light. The \"Mystery of Iniquity\" that we find in the Bible, correlates to\nthis I think.  The primary object of the mysteries was to introduce privately,\nlittle by little, under the seal of secrecy and sanction of oath, what it would\nnot have been safe to openly profess was the true religion.  Case in point\ntoday might be the Masons.  (Just a note, that they too worshipped Osiris in\nEgypt, who can be traced to Nimrod, the \"husband son.\")\n\n>On the other hand, there is one notion firmly embedded in Christianity\n>that originated most definitely in a pagan source.  The idea that the\n>human being consists essentially of soul only, and that the soul is\n>created at birth, was consciously adopted from Aristotle, whose ideas\n>dominated Christian thought for fifteen hundred years and still does\n>today.\n\nNo, I disagree with you here Gerry.  I know what you're alluding to in that the\nchurch, primarily the RCC, did endorse Aristotelian philosophy into their\nworldview, but I would disagree with you that it originated in Greece.  If you\nare a student of history, you will come to see that much of what Greece came to\nexpound to the world as their original, was just an adulteration of that which\nthey had taken from conquered countries.  The soul is clearly mentioned and\ndiscussed at length in the Egyptian religions. As was the unity of God and also\nthe trinity of God.  See if you can find Wilkinson's \"Egyptians.\"  He really\ndoes a number on what the Greeks did to what they \"pilfered\" from the\nEgyptians. \n\n> He was at once the father of modern thought and at the same\n>time lived during that darkened time when the perception of our\n>eternal spiritual being had grown dim.\n\nI'm not knocking Aristotle or Plato or any other Greek thinker.  Its just that\n\"there is nothing new under the sun.\"\n\n\n>Indeed. I should also clarify that I do not deny that eternal\n>irrevocable damnation is a real possibility.  But the narrow range in\n>which we conceive of the decisive moment, i.e. after the end of a\n>single earthly life, is not in my mind sufficient to embrace the\n>reality, and I think that is why the early creeds were couched in\n>terms that did not try to spell it out.\n\nEach age has its own focus of theology.  The early church struggled with the\nTrinitarian formulation.  The reformation dealt with authority.  Today,\neschatology has had much study.  The early creeds do not spell these things out\nin detail because, 1) they weren't the topic of concern, 2) there was\ninsufficient wisdom accumulated, 3) they didn't have the exegetical tools that\nwe have today.  Also, each age seems to have an air of revelation to it.  One\nage has a well tended and cultivated garden in which a particular doctrine is\ngiven growth.  It would be natural for the end of times to have the garden\nappropriate for the growth of eschatology, wouldn't it?\n>\ntangents, never ending tangents,\nRex\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3090, "properties": {"category": "talk.politics.guns", "text": "From: clochmul@nrambr.chem.duke.edu (C. H. Lochmuller)\nSubject: Re: Dillon puts foot in mouth...\nLines: 21\n\n# So the Blue PRess suggests that we bankrupt HCI by requesting information\n# and the concern by list members is that HCI will claim everyone that calls\n# as a new member.  I think they will. I also think they will claim a new\n# MANDATE to ban all firearms from the solar system wheter we call and ask for\n# information or not!\n# \n# On the other hand, with due respect to the Editor of the Blue PRess, just\n# becaue Mike makes damned good presses, dies, powder scales, and got tired of\n# Lee's atacks DOES NOT MEAN THAT EVERY DILLON FAN FOLLOWS WHAT MIKE CALLS FOR\n# LIKE HE WAS KARESH AND WE WERE TRANSDILLIDIANS! \n# \n# Our local State Assemblyman has called for a complete ban on all non-bolt\n# action military rifles and all assault weapons, a 7 day wait for purchase\n# permits { it currently takes 10 to 14 working days here in NC } and one\n# permit/year. The flood of calls he got was 7 for and 3 against. Guess who\n# called supporting his move? Guess what ILA is doing? Right?\n# \n# CHL\n# \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3091, "properties": {"category": "soc.religion.christian", "text": "From: cpage@two-step.seas.upenn.edu (Carter C. Page)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nOrganization: University of Pennsylvania\nLines: 34\n\nIn article <Apr.10.05.32.36.1993.14391@athos.rutgers.edu> gsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n>Firstly, I am an atheist. . . .\n\n(Atheist drivel deleted . . .)\n\n\t\t\tUntitled\n\t\t\t========\n\n\tA seed is such a miraculous thing,\n\tIt can sit on a shelf forever.\n\tBut how it knows what to do, when it's stuck in the ground,\n\tIs what makes it so clever.\n\tIt draws nutrients from the soil through it's roots,\n\tAnd gathers its force from the sun\n\tIt puts forth a whole lot of blossoms and fruit,\n\tThen recedes itself when it is done.\n\tWho programmed the seed to know just what to do?\n\tAnd who put the sun in the sky?\n\tAnd who put the food in the dirt for the roots?\n\tAnd who told the bees to come by?\n\tAnd who makes the water to fall from above,\n\tTo refresh and make everything pure?\n\tPerhaps all of this is a product of love,\n\tAnd perhaps it happened by chance.\n\t\t\t\tYeah, sure.\n\n\t\t\t-Johnny Hart, cartoonist for _B.C._\n\n+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=\nCarter C. Page           | Of happiness the crown and chiefest part is wisdom,\nA Carpenter's Apprentice | and to hold God in awe.  This is the law that,\ncpage@seas.upenn.edu     | seeing the stricken heart of pride brought down,\n                         | we learn when we are old.  -Adapted from Sophocles\n+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=+-=-+-=+-=-+=-+-=-+-=-+=-+-=\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3092, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: grantk@nosc.mil (Kelly J. Grant)\nSubject: Strange 386 enhanced behavior...\nKeywords: 386 enhanced, Paradox\nOrganization: Computer Sciences Corporation\nLines: 45\n\nHowdy\n\nWe have been having a real problem with an AST 386sx/16 machine with\n4mb of RAM.  We installed Paradox for Windows, (but I don't think \nParadox is the real problem here), and the installation went ok\n(windows is installed on a local drive, paradox installed on a novell\nnetwork (netware 386 v3.26 or greater), DOS 5, Win 3.1) but the program\nwill not load in 386 enchanted mode.  The thermometer bar goes to 60%\nand we then either get a 'invalid command.com' or a windows nastygram\ntalking about an illegal instruction.  I've checked out the command.com\nthing, but as a long-time C programmer, I've crashed my share of machines\nwith pointer problems and this is a standard behavior :-)\n\nAnyway, paradox will run in standard mode, but not enhanced.  We also have\nquattro pro windows, exhibiting the same behavior.  Spent about 2 hours\nwith Borland's tech people, with no avail.  The guy I talked to a microsoft\ndidn't want to really dig in and help, as he gave up pretty quickly.\nSomewhat disappointing, really.  I expected more from Microsoft.  You'd think\nwith all the millions of windows installations that they would have seen all\nthe possible problems, but I guess not...\n\nMicrosoft had sent us a 13 page fax on fixing UAE and General\nProtection faults (sorry, I can't fax anything out of here so please\ndon't ask, try Microsoft), which we tried.  We did *everything* they\nsaid, and still no luck.\n\nSo.  If you can help, please mail me.  This problem is driving us nuts.\nI will greatly appreciate any information anyone can pass on.\n\nThanks\n\nKelly\n--------------------------------------------------------------------------\nTHIS IS THE REAL SIGNATURE...Please ignore the following demon signature..\n\nKelly J. Grant     grantk@nosc.mil\n4045 Hancock St    (619) 225-2562  \"The next time someone asks you if you\nSan Diego, CA 92110                 are a god, you say YES!\"  :-)\n--------------------------------------------------------------------------\n\n-- \nKelly Grant        grantk@manta.nosc.mil   (619) 553-0850\nComputer Sciences Corp          ^^^^^^^^ Important: manta.UUCP won't get to me\n4045 Hancock Street      \"If you are given lemons.....see if you can trade for\nSan Diego, CA 92110       chocolate\" - me\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3093, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Clipper considered harmful\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 14\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\nshirriff@sprite.berkeley.edu (Ken Shirriff) writes:\n> Since archiving would be such a powerful tool and so easy to do, why \n> wouldn't it happen? \n\nNot enough magtape.\n\nSeriously, do you have any idea how much traffic flows through the US phone \nsystem in a single day?\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3094, "properties": {"category": "sci.electronics", "text": "From: Sean_Oliver@mindlink.bc.ca (Sean Oliver)\nSubject: Re: Need to find out number to a phone line\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 28\n\n> Joseph Mich Krzeszewsk writes:\n>\n> Msg-ID: <1quomg$f6m@bigboote.WPI.EDU>\n> Posted: 19 Apr 1993 17:49:04 GMT\n>\n> Org.  : Worcester Polytechnic Institute\n>\n> Well, this is my second try at posting on this subject. Here goes...\n>         In Texas (Corpus Christi at least) if you pick up the phone and\n> dial\n>         890 the phone company will read the number of the phone you are on\n>         back to you. I believe the service department uses this to make\n>         certain they are repairing the correct lines when they open the BIG\n>         junction boxes. I don't know if it will work but you can give it a\n>         try. Good luck.\n>\n>\n\nWhere I live, I use BCTEL. The number to dial is 211 for the same result.\n\n--\n+--------------------------------------------+\n| Sean Oliver                                |\n| Internet Address: a8647@MINDLINK.BC.CA     |\n|                                            |\n| Mindlink! BBS (604)576-1412                |\n+--------------------------------------------+\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3095, "properties": {"category": "rec.sport.baseball", "text": "From: admiral@jhunix.hcf.jhu.edu (Steve C Liu)\nSubject: Opening Day of 1990?\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 30\nDistribution: usa\nExpires: 5/9/93\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\nSummary: Baltimore O's not looking stellar\n\nThe O's just lost to the Rangers a few minutes ago I was not too happy about\nthe pitching of Rick Sutcliffe (6 runs in 6 innings, 5 in the 3?) This puts\nme in remembering the 1990 O's season. After '89 we didn't do much over\nwinter and we wound up in 5th. Now I know that Mussina, McDonald, and Rhodes\nare better pitching prospects than Ballard and Milacki but are any other\nOriole fans scared out there?\n\nAdmiral Steve C. Liu\n\nP.S. Other scores as of now.\nCincy over Montreal, 2-1 I think\nFLORIDA IS LEADING LA 6-3 IN THE 8TH!\nBraves vs. Cubs, 1-0 in the 8th. Futility of Cubs batting haunting them.\nYanks beat the Tribe I believe.\n____________________________________________________________________________\n|Admiral Steve C. Liu          Internet Address: admiral@jhunix.hcf.jhu.edu|\n|Commander-In-Chief of the Security Division of the Pi Club - Earth Chapter|\n|    President of the Earth Chapter of the Pi Club - Founded April 1990    |\n|1993 World Champions  - Baltimore Orioles - Why Not? - Series in the Yards|\n|         1992-1993 Stanley Cup Champions -  Washington Capitals           |\n| \"Committee for the Liberation and Intergration of Terrifying Organisms   |\n|   and their Rehabilitation Into Society, the only problem is that the    |\n|   abbreviation is CLITORIS.\" from the \"Polymorph\" episode of Red Dwarf   |\n|*****The Bangles are the greatest female rock band that ever existed!*****|\n|   This sig has been brought to you by... Frungy! The Sport of Kings!     |\n|\"My God man, drilling holes through his head is not the answer!\" Dr. McCoy|\n|\"You know, Susanna Hoffs has a really nice ass.\" - comment by M. Flanagan |\n|  The Pi Club - Creating the largest .signatures for the past nine months | \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3096, "properties": {"category": "rec.sport.hockey", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Re: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nArticle-I.D.: hydra.91528\nOrganization: Georgia Institute of Technology\nLines: 19\n\nIn article <C51CJB.L5z@ccu.umanitoba.ca> umturne4@ccu.umanitoba.ca (Daryl Turner) writes:\n>They were, and even if Washington might consider Patty a bust, I'd rework\n>that trade in a minute.  Druce has been a complete and utter bust here,\n>only 5 goals.\n\n\tWell, Druce pretty much sucked when he was with the Caps. He had one\ngood **playoffs** (not season). oh well. The Caps are notorious for making\nstupid trades anyway, as can be seen with the Cicarelli and Hrivnak trades.\nSigh.\n\tIn another note... I'd have to say the Caps biggest surprise was \nCote, as many Caps fans had been expecting a lot from Bondra already.\n \n\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3097, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: Once tapped, your code is no good any more.\nOriginator: rdippold@qualcom.qualcomm.com\nNntp-Posting-Host: qualcom.qualcomm.com\nOrganization: Qualcomm, Inc., San Diego, CA\nDistribution: na\nLines: 8\n\nrandom@presto.UUCP (Jeff W. Hyche) writes:\n>Yes, \"Clipper\" is a trademark of Intergraph.  Its the RISC chip used\n>in some of thier workstations.  I wonder what Intergraph is going to\n>do to this infringement on thier name sake?\n\nProbably keep quiet and take it, lest they get their kneecaps busted.\n-- \nGood news.  Ten weeks from Friday will be a good day.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3098, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: WKWINKEL@ibm.rz.uni-passau.de\nSubject: Re:color or Monochrome?\nOrganization: University of Passau - Germany\nLines: 14\nNNTP-Posting-Host: ibm.rz.uni-passau.de\n\nWalther,\nI'd have a look at the maximum resolution the combination of the video card\nand screen would have without flickering. I'd only suggest using the color\nscreen if it does 800*600 without flickering. If this is not too small for\nyour tastes at a 14\"....\nPersonally I'd prefer the mono-screen as I always have quite a few windows\nopen. If you only run one program at a time or rarely switch maybe the\ncolor 'surplus' is worth trading in  the smaller size. If you want to\ndevelop programs you will always have to check the colors. I used a\n14\" mono screen (worst of both worlds) and was surprised how the colors looked\nI choose on a color screen.\n \nRegards,\nOlaf Winkelhake\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3099, "properties": {"category": "rec.sport.baseball", "text": "From: fls@keynes.econ.duke.edu (Forrest Smith)\nSubject: Re: Braves Pitching UpdateDIR\nOrganization: Duke University; Durham, N.C.\nLines: 19\nNntp-Posting-Host: keynes.econ.duke.edu\n\n\n\tAmazingly, pitchers, no matter how good their mechanics, are\nnot machines.  Cy Young winners don't pitch in a vaccuum, unaware\nof how their offenses are doing.\n\n\tThe Braves' pitching staff is already showing signs of\ncracking under the strain of knowing they're not going to get many\n(if any) runs.  Unfortunately, the Braves' pitchers were so bad for so\nlong that the organization put so much stress (and I mean *stress*)\non pitching that they completely ignored hitting.\n\n\tThe Braves right now are looking woefully similar to the Braves of\nthe mid-seventies.  Heaven help us.\n \n-- \n@econ.duke.edu     fls@econ.duke.edu     fls@econ.duke.edu    fls@econ.duke.\ns  To my correspondents:  My email has been changed.                       e\nl                         My new address is:  fls@econ.duke.edu            d\nf            If mail bounces, try fls@raphael.acpub.duke.edu               u\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3100, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Peter Hansen <pgmoffc@BNR.ca>\nSubject: Re: 72-pin SIMMS, where?\nX-Xxdate: Tue, 20 Apr 93 08:41:49 GMT\nNntp-Posting-Host: bcarm382\nOrganization: BNR\nX-Useragent: Nuntius v1.1.1d17\nLines: 13\n\nIn article <1qulhsINNm22@charnel.ecst.csuchico.edu> Steven Medley,\nsmedley@ecst.csuchico.edu writes:\n>I am looking for a 8 meg 72-pin SIMM for my Centris 610.  Where is the\n>best place to purchase one (stock, shipping, warrenty), and if\n>possible, phone numbers so that I can order one as soon as possible.\n\n  Try Goldstar. They make them, and they are available immediately in Mac\nconfigurations. I ordered a pair from Computerland (8 meg variety) and\nthey work like a charm. I've had them for two weeks.\n\nPeter Hansen\nBell Northern Research\npgmoffc@BNR.ca\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3101, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Final Solution for Gaza ?\nOrganization: Aiken Computation Lab, Harvard University\nLines: 31\n\nIn article <1483500354@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n\n\tOther people have commented on most of this swill, I figured\nI'd add a few comments of my own.\n\n>The Gaza strip, this tiny area of land with the highest population\n>density in the world, has been cut off from the world for weeks.\n\n\tHong Kong, and Cairo both have higher population densities.\n\n>The Israeli occupier has decided to punish the whole population of\n>Gaza, some 700.000 people, by denying them the right to leave the\n>strip and seek work in Israel.\n\n\tThere is no fundamental right to work in another country.  And\nthe closing of the strip is not a punishment, it is a security measure\nto stop people from stabbing Israelis.\n\n\n>The only help given to Gazans by Israeli\n>Jews, only dozens of people, is humanitarian assistance.\n\n\tDozens minus one, since one of them was stabbed to death a few\ndays ago.\n\n\tAdam\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3102, "properties": {"category": "sci.med", "text": "From: kxgst1@pitt.edu (Kenneth Gilbert)\nSubject: Re: Can't Breathe\nArticle-I.D.: blue.7936\nLines: 23\nX-Newsreader: TIN [version 1.1 PL8]\n\nDavid Nye (nyeda@cnsvax.uwec.edu) wrote:\n: [reply to ron.roth@rose.com (ron roth)]\n:  \n: >While you're right that the S vertebrae are attached to each other,\n: >the sacrum, to my knowledge, *can* be adjusted either directly, or\n: >by applying pressure on the pubic bone...\n:  \n: Ron, you're an endless source of misinformation!  There ARE no sacral\n: vertebrae.  There is a bone called the sacrum at the end of the spine.\n: It is a single, solid bone except in a few patients who have a\n: lumbarized S1 as a normal variant.  How do you adjust a solid bone,\n: break it?  No, don't tell me, I don't want to know.\n:  \nOh come now, surely you know he only meant to measure the flow of\nelectromagnetic energy about the sacrum and then adjust these flows\nwith a crystal of chromium applied to the right great toe.  Don't\nyou know anything?\n\n--\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!  =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3103, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ray@netcom.com (Ray Fischer)\nSubject: Re: Can you share one monitor w/ 2 cpus?\nOrganization: Netcom. San Jose, California\nLines: 13\n\nbm967@cleveland.Freenet.Edu (David Kantrowitz) writes ...\n>\n>I have a Centris 610 & want to get an IBM machine as well.\n>To save space on my desk, I would like to use one monitor\n>for both, with a switch-box. Does anyone know of a way to do\n>this?\n\nSure.  Buy a switch box and a multisync monitor.  I have just that\narrangement on my desk and it works fine.\n\n-- \nRay Fischer                   \"Convictions are more dangerous enemies of truth\nray@netcom.com                 than lies.\"  -- Friedrich Nietzsche\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3104, "properties": {"category": "comp.graphics", "text": "From: tychay@cco.caltech.edu (Terrence Y. Chay)\nSubject: TIFF (NeXT Appsoft draw) -> GIF conversion?\nOrganization: California Institute of Technology, Pasadena\nLines: 27\nNNTP-Posting-Host: punisher.caltech.edu\nSummary: Help!\nKeywords: TIFF GIF graphics conversion NeXT Appsoft\n\nOkay all my friends are bitching at me that the map I made in Appsoft Draw\ncan't be displayed in \"xv\"... I checked... It's true, at least with version\n1.0.  My readers on the NeXT have very little trouble on it (Preview messes\nup the .eps, but does fine with the TIFF and ImageViewer0.9a behaves with\nflying colors except it doesn't convert worth *&^^% ;-) )\n\n  Please is there any way I can convert this .drw from Appsoft 1.0 on the NeXT\nto something more reasonable like .gif?  I have access to a sun4 and NeXTstep\n3.0 systems.  any good reliable conversion programs would be helpful... please\nemail, I'll post responses if anyone wants me to... please email that to.\n\nYes I used alphachannel... (god i could choke steve jobs right now ;-) )\n\nYes i know how to archie, but tell me what to archie for ;-)\n\nAlso is there a way to convert to .ps plain format? ImageViiewer0.9 turns\nout nothing recognizable....\n\n     terrychay\n\n---\nsmall editorial\n\n-rw-r--r--  1 tychay   2908404 Apr 18 08:03 Undernet.tiff\n-rw-r--r--  1 tychay     73525 Apr 18 08:03 Undernet.tiff.Z\n\nand not using gzip! is it me or is there something wrong with this format?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3105, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: shiva@leland.Stanford.EDU (Matt Jacobson)\nSubject: Windows Errors and a bad memory\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 18\n\nHi.  My last question for the year.  I have a mail-order no-name notebook\nwith 4 meg ram.  I never have problems with my huge ramdisk or when\nrunning desqview, but Win3.1 and W4W2.0 constantly crash on me, most\ncommonly citing a \"memory parity error.\"  The only thing I can do is TURN\nOFF and re-boot.  My CMOS ticks off & counts all the memory every startup,\nand there is never a problem with this either.\n\nCould it be a bug in my Windows copy instead of the hardware?  I remember\nhaving some disk error problems when installing it.\n\n\nIs there any change I could make to lessen the frequency or likelyhood of\nthis happening (I think win vs win /s produce different crashes, but both\ncrash frequently nonetheless)\n\nI know this is a pain, but PLEASE answer by EMAIL because my home account\ndoesn't have rn.  And I will stop asking questions now.  Thank you.\nChet Pager = chetter@ucthpx.uct.ac.za\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3106, "properties": {"category": "comp.sys.mac.hardware", "text": "From: twillis@ec.ecn.purdue.edu (Thomas E Willis)\nSubject: PB questions...\nOrganization: Purdue University Engineering Computer Network\nDistribution: usa\nLines: 36\n\nwell folks, my mac plus finally gave up the ghost this weekend after\nstarting life as a 512k way back in 1985.  sooo, i'm in the market for a\nnew machine a bit sooner than i intended to be...\n\ni'm looking into picking up a powerbook 160 or maybe 180 and have a bunch\nof questions that (hopefully) somebody can answer:\n\n* does anybody know any dirt on when the next round of powerbook\nintroductions are expected?  i'd heard the 185c was supposed to make an\nappearence \"this summer\" but haven't heard anymore on it - and since i\ndon't have access to macleak, i was wondering if anybody out there had\nmore info...\n\n* has anybody heard rumors about price drops to the powerbook line like the\nones the duo's just went through recently?\n\n* what's the impression of the display on the 180?  i could probably swing\na 180 if i got the 80Mb disk rather than the 120, but i don't really have\na feel for how much \"better\" the display is (yea, it looks great in the\nstore, but is that all \"wow\" or is it really that good?).  could i solicit\nsome opinions of people who use the 160 and 180 day-to-day on if its worth\ntaking the disk size and money hit to get the active display?  (i realize\nthis is a real subjective question, but i've only played around with the\nmachines in a computer store breifly and figured the opinions of somebody\nwho actually uses the machine daily might prove helpful).\n\n* how well does hellcats perform?  ;)\n\nthanks a bunch in advance for any info - if you could email, i'll post a\nsummary (news reading time is at a premium with finals just around the\ncorner... :( )\n--\nTom Willis  \\  twillis@ecn.purdue.edu    \\    Purdue Electrical Engineering\n---------------------------------------------------------------------------\n\"Convictions are more dangerous enemies of truth than lies.\"  - F. W.\nNietzsche\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3107, "properties": {"category": "rec.motorcycles", "text": "From: rdc8@cunixf.cc.columbia.edu (Robert D Castro)\nSubject: Contact person for boots\nKeywords: combat\nNntp-Posting-Host: cunixf.cc.columbia.edu\nReply-To: rdc8@cunixf.cc.columbia.edu (Robert D Castro)\nOrganization: Columbia University\nLines: 16\n\nWould anyone out there in DoDland be able to help me out in giving me\na contact to purchase a pair of military air-borne combat boots (9 1/2\nD in size).  These boots (so I have read here on rec.moto) are calf\nheight boots that use only velcro for enclosure.  I have phoned around\nand nobody seems to carry such an item.  I admit I have not gone into\nthe deepest bowels of NYC yet for the search but I have made some\ncalls to several of the bigger army/navy type stores with no luck.\n\nAnyone out there know of a place that does carry such an item as well\nas does mail order?  Any help would be appreciated.\n\no&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>\n    Rob Castro     | email - rdc8@cunixf.cc.columbia.edu | Live for today\n    1983 KZ550LTD  | phone - (212) 854-7617              | For today you live!\n    DoD# NYC-1     | New York, New York, USA             |        RC (tm)\n<o&o  <o&o  <o&o  <o&o  <o&o  <o&o  <o&o  <o&o  <o&o  <o&o  <o&o  <o&o  <o&o\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3108, "properties": {"category": "misc.forsale", "text": "From: mlf@unl.edu (mary flaglelee)\nSubject: Wanted:Singer Featherweight 221\nOrganization: University of Nebraska--Lincoln\t\nLines: 7\nDistribution: world\nNNTP-Posting-Host: unlinfo.unl.edu\nKeywords: Singer sewing machine\n\nI'm looking for a Singer Featherweight 221 sewing machine (old, black \nsewing machine in black case).\n\nPlease contact:\n\nMary Flagle-Lee\nmlf@unlinfo.unl.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3109, "properties": {"category": "talk.politics.mideast", "text": "From: alaa@peewee.unx.dec.com (Alaa Zeineldine)\nSubject: Re: THE HAMAS WAY of DEATH\nOrganization: Digital Equipment Corp.\nX-Newsreader: Tin 1.1 PL3\nLines: 28\n\nnstramer@supergas.dazixco.ingr.com (Naftaly Stramer) writes:\n: \n:                      THE HAMAS WAY of DEATH\n:  \n:      (Following is a transcript of a recruitment and training\n: videotape made last summer by the Qassam Battalions, the military\n\nAs opposed to Israel's many ways of death. Using bombers and artillery\nagainst Lebanese towns and villages. Using fire arms and lethal\nvariants of tear gas and *rubber coated* bullets against stone\nthrowers. Using tanks and anti-tank missiles against homes after a 5\nminute evacuation warning.  Using Shin Bit's \"reasonable\" physical\npressure in interrogation. And more. Not counting of course past \npractices such as the bombardment of Beirut in 1982, the bombing of the \nEgyptian school of Bahr-El-Bakar and the Abu-Za'bal factory in 1978,\nthe downing of the Libyan airliner full of Egyptian passengers near\nthe same time. Overseeing the Maronite massacre in Sabra and Shatilla.\nThat is of course besides numerous massacres by Irgun and other gangs\nduring the British mandate period.\n\nIronically the same Op-Ed page in the NYT times from which the Naftaly\ncopied this article was running another article next to it by A.M.\nRosenthall blaming Bosnian Muslims for their own genocide by effectively\nsaying that it is stupid to seek independence if independence will bring\nyour people slaughter. But what else would one expect from Mr. Rosenthall\nwho never wasted a chance to bash Arabs or Muslims.\n\nAlaa Zeineldine\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3110, "properties": {"category": "soc.religion.christian", "text": "From: mtf@vipunen.hut.fi (Antti Lahelma)\nSubject: Re: Atheists and Hell\nOrganization: Helsinki University of Technology, Finland\nLines: 40\n\nIn <Apr.19.05.14.08.1993.29279@athos.rutgers.edu> atterlep@vela.acs.oakland.edu (Cardinal Ximenez) writes:\n\n>  Hello,\n\n>  I have seen two common threads running through postings by atheists on the \n>newsgroup, and I think that they can be used to explain each other.  \n>Unfortunately I don't have direct quotes handy...\n\n>1) Atheists believe that when they die, they die forever.\n\n More correctly: when people die, they cease to exist.\n\n>2) A god who would condemn those who fail to believe in him to eternal death\n>   is unfair.\n\n>  I don't see what the problem is!  To Christians, Hell is, by definition, \n>eternal death--exactly what atheists are expecting when they die.\n\n The idea I've gotten is that to christians, Hell is -- like Heaven --\n afterlife; i.e, you don't cease to exist, but are subjected to eternal \n torture (well, that's the orthodox idea anyway; \"eternal death\" if you\n prefer that). Atheists don't believe in any sort of afterlife.\n\n>  Literal interpreters of the Bible will have a problem with this view, since\n>the Bible talks about the fires of Hell and such.  Personally, I don't think\n>that people in Hell will be thrust into flame any more than I expect to Jesus\n>with a double-edged sword issuing from his mouth--I treat both these state-\n>ments as metaphorical.\n\n I think it's safe to say that Hell was never intended metaphorical. Certainly\n not the equivalent of ceasing to exist. Some christian concepts are indeed\n metaphors, but your idea of Hell is a 20th century interpretation. It is, of\n course, nice to see that even christianity might evolve to fit the worldview \n of modern age, but I fear the church will not accept it. Understandably, per-\n haps, because if you accept that Hell is a metaphor, then you're one step\n closer to turning God into a metaphor as well.\n-- \nAntti Lahelma   |\t      mtf@saha.hut.fi \t           |   GNOTHI SEAUTON \nLehtotie 3     -O-\t      stel@purkki.apu.fi          -*-  ====== ======= \n00630 HELSINKI  | <<Jumalat ovat pakanoille suosiollisia>> |    TUNNE ITSESI   \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3111, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Trade rumor: Montreal/Ottawa/Phillie\nOrganization: University of Toronto Chemistry Department\nLines: 42\n\nIn article <1993Apr5.203552.1@kean.ucs.mun.ca> slegge@kean.ucs.mun.ca writes:\n>TSN Sportsdesk just reported that the OTTAWA SUN has reported that\n>Montreal will send 4 players + $15 million including Vin Damphousse \n>and Brian Bellows to Phillidelphia, Phillie will send Eric Lindros\n>to Ottawa, and Ottawa will give it's first round pick to Montreal.\n>\n\nObviously some reporter for the Ottawa Sun got taken by an April\nFools joke...probably started by someone with the Nordiques or the\nBruins.  \n\nLike for example...who is going to reimburse the Flyers for the\n$15 million they paid to the Nordiques...like the Senators are\ngoing to get Lindros and $15 million.  The Flyers sent the\nequivalent of 6 or 7 players (when you include the draft choices)\nto Quebec, and they are going to get only four back.\n\nSome reporter was had real badly and someone must be having a\nreal good laugh seeing as how the so much of the sports media\nhas chosen to publicize this utter nonsense.\n\n>If this is true, it will most likely depend on whether or not Ottawa\n>gets to choose 1st overall.  Can Ottawa afford Lindros' salary?\n>\n\nCan you think...it cannot possibly be true...no need for the \"if\"!\n\n>Personally, I can't see Philli giving up Lindros -- for anything.  \n>They didn't give away that much to Quebec just to trade him away \n>again.  Not to mention that Lindros seems to be a *huge* draw in\n>Phillie -- and that he represents a successful future for the \n>franchise.\n> \n>Ottawa may be better off taking the 4 players +$15 from Montreal\n>for the pick.\n> \n\nI can't believe that anyone would consider giving such crap even\nthe remotest consideration.\n\nGerald       \n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3112, "properties": {"category": "sci.med", "text": "From: uabdpo.dpo.uab.edu!gila005 (Stephen Holland)\nSubject: Re: Prednisone...what are the significant long term side effects?\nOrganization: Gastroenterology - Univ of Alabama\nLines: 30\n\n> >I have been taking prednisone 5mg twice a day for a while to control\n> >Ulcerative Colitis. It seems like if I reduce the dosage, the problem\n> >becomes worse. At this point, i see myself taking prednisone for a long\n> >long time, perhaps for ever. I was wondering about long term major side\n> >effects, things like potential birth defects, arthritis etc. I have been\n> >putting on weight, my face looks puffed and round, experience sudden mood\n> >swings. As I understand, these are all short term.\n\nI second what Spenser Aden said in reply.  Additionally, it is hard to say\nwhat type of response you ar3e having to prednisone since you did not say\nhow long you have been on it.  Patients are generally kept on steroids for\nmonths before thinking about tapering.  Alternatives to daily dosing are \nevery other day dosing, in your case 20mg every other day would be a start.\nAnother option if it is not possible to get you off prednisone is to start\nazathioprine.  Like Spenser said, you should generally be on another drug\nin addition to your prednisone, like asulfidine.  A lot of the specifics\nabout options, though, depends on severity, location, and duration of \ndisease, as well as histology, so take advice off the net for what it\nis worth.  \n\nI treat patients with UC and Crohn's.  An educated patient is a good \npatient, but let your doctor know where the advice came from so things\ncan be put in context.  You should also be a member of the Crohn's and\nColitis Foundation of America.  1-800-932-2423 office / 1-800-343-3637\ninfo hotline.\n\nBest of Luck to you.\n\nSteve Holland.\ngila005@uabdpo.dpo.uab.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.142+0000", "event": "documents", "entityId": 3113, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 26\n\n\nIn article <C5sL3z.2B2@murdoch.acc.Virginia.EDU>, pmy@vivaldi.acc.virginia.edu (Pete Yadlowsky) writes:\n|> \n|> Anyway, I've often wondered what business followers of Christ would have\n|> with weapons.\n|> \n|> --\n|> Peter M. Yadlowsky              |  Wake! The sky is light!\n|> Academic Computing Center       | Let us to the Net again...\n|> University of Virginia          |    Companion keyboard.\n|> pmy@Virginia.EDU                |                      - after Basho\n\nIMO, a Christian has no need of weapons.  I know it is very contrary to the\nAmerican NRA ethos of the right to bear arms, but Christians should rely on\nthe strength of God to protect them.  Note that I say *should*.  We are\ninherently insecure but I feel that that is not proper justification to be\narmed to the teeth.  A Christian should not have to rely on physical weapons\nto defend himself.  A Christian should rely on his faith and intelligence.\nFor instance, I have the faith that God will protect me but God also gave\nme the intelligence to know not to go walking down that dark alley at night.\nTo jump off a cliff and say that God will save me would be putting God to the\ntest.  And who are we to test God?\n\nGod be with you,\n\nMalcolm Lee  :)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3114, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Islam & Dress Code for women\nOrganization: sgi\nLines: 12\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1993Apr6.030734.28563@ennews.eas.asu.edu>, guncer@enuxha.eas.asu.edu (Selim Guncer ) writes:\n>\n> I wouldn't consider this quote as being exemplary of the Islamic \n> (TM) viewpoint though.  For all we know, the prophet's cousin and\n> the Fourth Khalif Hazret-i Ali may have said this after a \n> frustrating night with a woman.\n\nThat's very interesting.    I wonder, are women's reactions\nrecorded after a frustrating night with a man?   Is that\nconsidered to be important?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3115, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dsiegel@optima.cs.arizona.edu (Seagull)\nSubject: Re: WP-PCF, Linux, RISC?\nLines: 54\n\n\n>>  The RISC means \"reduced instruction set computer\". The RISC usually has \n>>small instruction set so as to reduce the circuit complex and can increase \n>>the clock rate to have a high performance. You can read some books about\n>>computer architecture for more information about RISC.\n> hmm... not that I am an authority on RISC ;-) but I clearly remember\n> reading that the instruction set on RISC CPUs is rather large.\n> The difference is in addressing modes - RISC instruction sets are not\n> as orthogonal is CISC.\n\nThere are some things you might be interested to know about today's RISC\nprocessors.  It is true that there are fewer instructions, but what is \nnot commonly known is that this causes the size of your executables to\nswell, so that in some cases performance is similar for larger applications.\nAs a compromise, many RISC processors today are actually a cross between\na Reduced Instructions Set, and a Complex one.\n\nThis is not to say that there is no future in CISC processors, Intel has \ncertainly proved that.\n\nWhat I want to know, is what does this have to do with this group?\n\n-dave\n\n\n\nSubject: Re: WP-PCF, Linux, RISC?\nNewsgroups: comp.unix.dos-under-unix,comp.sys.ibm.pc.misc,comp.sys.ibm.pc.net,comp.os.ms-windows.apps,comp.os.ms-windows.misc,alt.uu.comp.os.linux.questions,comp.apps.spreadsheets,comp.misc,alt.os.linux,comp.os.linux,man.linux\nReferences: <1qu8ud$2hd@sunb.ocs.mq.edu.au>\n\nFrom article <1qu8ud$2hd@sunb.ocs.mq.edu.au>, by eugene@mpce.mq.edu.au:\n> In article <C5o1yq.M34@csie.nctu.edu.tw> ghhwang@csie.nctu.edu.tw (ghhwang) writes:\n>>\n>>Dear friend,\n>>  The RISC means \"reduced instruction set computer\". The RISC usually has \n>>small instruction set so as to reduce the circuit complex and can increase \n>>the clock rate to have a high performance. You can read some books about\n>>computer architecture for more information about RISC.\n> \n> hmm... not that I am an authority on RISC ;-) but I clearly remember\n> reading that the instruction set on RISC CPUs is rather large.\n> The difference is in addressing modes - RISC instruction sets are not\n> as orthogonal is CISC.\n> \n> -- \n> +-----------------------------------------------------------------------------+\n> |            Some people say it's fun, but I think it's very serious.         |\n> |                         eugene@macadam.mpce.mq.edu.au                       |\n> +-----------------------------------------------------------------------------+\n--\nDave Siegel         (DS4)\nPresident, RTD Systems and Networking, Inc.\nPresident, UofAz Hardware And Computing Knowledge Society (HACKS)\ndsiegel@cs.arizona.edu **** dsiegel@hacks.arizona.edu **** dsiegel@rtd.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3116, "properties": {"category": "talk.politics.guns", "text": "From: gardner@convex.com (Steve Gardner)\nSubject: Re: Ban All Firearms !\nNntp-Posting-Host: imagine.convex.com\nOrganization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 20\n\nIn article <1993Apr14.184448.2331@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>Firearms tend to fall into this low dollar/pound area.\n\tWhy?  Either the numerator or the denominator could fluctuate.\n\tThe dollar value of a gun would (of course)\n\tgo up if supply were restricted.  The weight of a gun might\n\tgo down significantly as technology improved.   I don't\n\tthink you have a basis to assert this.  \n\t\n>It would not be economic to smuggle them in. All production\n>would have to be local. There are not all that many people\n>who have both the skill AND motivation to assemble worthwhile\n>firearms from scratch. \n\tThe skill is easily taught to anyone with a modicum of\n\tmechanical aptitude and the ONLY motivator needed is \n\tmoney.  If guns were banned then this motivator would kick\n\tin big time.  Now, of course, it is not a moneymaking\n\tproposition for every machine shop to make guns on the\n\tside when it ain't rebuilding engines.  Ban guns and \n\twatch what happens.  You'll have to schedule a year in advance\n\tto get your brakes resurfaced. ;-)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3117, "properties": {"category": "rec.sport.baseball", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: harry and candy\nArticle-I.D.: netcom.ericsC52qLD.6L2\nDistribution: world,local\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 24\n\nf67709907@violet.ccit.arizona.edu (Greg Franklin) writes:\n\n>RVESTERM@vma.cc.nd.edu writes:\n\n>> i'm watching a cubs-rockies spring training game, and i thought you'd\n>> all like to know the particular way that harry caray butchers \"maldonado\".\n \n>> it seems to be \"mal-n-dal-nado\".\n\n>But I like the way he butchers Andres Galarraga's name.\n\n>It comes out like \"gahlah rrrraggggah\".\n\n>And don't forget his frequent references to the great SF Giant star\n>Bobby Bonds!\n\nWhat about Thaaammy Thotha? I for one was really sorry to hear that the\nCubs had sent Heathcliff Slocumb to the minors!  :-)\n\n-----\nEric Smith\nerics@netcom.com\nerics@infoserv.com\nCI$: 70262,3610\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3118, "properties": {"category": "rec.autos", "text": "From: mad9a@fermi.clas.Virginia.EDU (Michael A. Davis)\nSubject: Slick 50, any good?\nOrganization: University of Virginia\nLines: 9\n\n\n     Chances are that this has been discussed to death already, and\nif so could someone who has kept the discussion mail me or direct me \nto an archive site. Basically,\nI am just wondering if Slick 50 really does all it says that it does.\nAnd also, is there any data to support the claim.  Thanks for any info.\n\nMike Davis\nmad9a@fermi.clas.virginia.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3119, "properties": {"category": "sci.crypt", "text": "From: mvanheyn@cs.indiana.edu (Marc VanHeyningen)\nSubject: RIPEM Frequently Asked Questions\nArticle-I.D.: usenet.C4qoA0.CA6\nExpires: Thu, 20 May 1993 00:00:00 GMT\nOrganization: Computer Science, Indiana University\nLines: 360\nContent-Type: text/x-usenet-FAQ; version=1.0; title=\"RIPEM FAQ\"\nOriginator: mvanheyn@silver.ucs.indiana.edu\nNntp-Posting-Host: silver.ucs.indiana.edu\nMime-Version: 1.0\n\nArchive-name: ripem/faq\nLast-update: 31 Mar 93 22:00:00 -0500\n\nABOUT THIS POSTING\n------------------\nThis is a listing of likely questions and information about RIPEM, a\nprogram for public key mail encryption.  It (this FAQ, not RIPEM) was\nwritten and will be maintained by Marc VanHeyningen\n<mvanheyn@cs.indiana.edu>.  It will be posted to a variety of\nnewsgroups on a monthly basis; follow-up discussion specific to RIPEM\nis redirected to the group alt.security.ripem.\n\nWHAT'S NEW\n----------\nI am now running a World Wide Web archive of RIPEM information.  It\ndoes not contain much of anything that isn't available elsewhere, but\nit has convenient pointers to the most current version of this FAQ and\nsome other stuff.  The URL is \"http://cs.indiana.edu/ripem/dir.html\".\n\nThis month's version has a fair amount of new pointers to information\non patents and stuff like that.  I've also reordered a few things to\nhave a more sensible ordering.  I hope I don't have to edit this again\nsoon. :-)\n\nDISCLAIMER\n----------\nNothing in this FAQ should be considered legal advice, or anything\nother than one layperson's opinion.  If you want real legal advice,\ntalk to a real lawyer, preferably one with experience in patent law,\nexport regulations, or whatever area of law is in question.\n\nLIST OF QUESTIONS\n-----------------\n1)  What is RIPEM?\n2)  How can I get RIPEM?\n3)  Will RIPEM run on my machine?\n4)  Will RIPEM work with my mailer?\n5)  What is RSA?\n6)  What is DES?\n7)  What is a fingerprint, like MD5?\n8)  What is PEM?\n9)  What's this about distributing and authenticating keys?\n10)  Isn't it a bad idea to use patented algorithms in standards like PEM?\n11)  What about RSADSI/PKP?\n12)  Why do all RIPEM public keys look very similar?\n13)  What is PGP?\n14)  What about RPEM?\n15)  What is MIME?\n16)  What is TIS/PEM?\n17)  I have this simple way to defeat the security of RIPEM...\n\nQUESTIONS AND ANSWERS\n---------------------\n\n1)  What is RIPEM?\n\n RIPEM is a (not yet complete, but useful) implementation of Privacy\n Enhanced Mail (PEM).  RIPEM allows your electronic mail to have the\n four security facilities provided by PEM: disclosure protection\n (optional), originator authenticity, message integrity measures, and\n non-repudiation of origin (always).  (See: \"What is PEM?\")\n\n RIPEM was written primarily by Mark Riordan <mrr@scss3.cl.msu.edu>.\n Most of the code is in the public domain, except for the RSA routines,\n which are a library called RSAREF licensed from RSA Data Security Inc.\n\n The current version of RIPEM is 1.0.5; the current version of the\n Macintosh port of RIPEM is 0.7.\n\n2)  How can I get RIPEM?\n\n RIPEM uses the library of cryptographic routines RSAREF, which is\n considered munitions and thus is export-restricted from distribution\n to persons who are not citizens or permanent residents in the U.S or\n Canada without an export license.  No such license has been obtained\n (nor would one likely be granted unless the RSA key exchange were\n shortened to 512 bits and the symmetric cipher changed to something\n weaker than DES.  There are some suggestions that this situation may\n change now that Clinton is in office.)  The author requests in the\n README file that this law not be violated:\n\n #Please do not export the cryptographic code in this distribution\n #outside of the USA or Canada.  This is a personal request from me,\n #the author of RIPEM, and a condition of your use of RIPEM.\n\n Note that RSAREF is not in the public domain, and a license for it is\n included with the distribution.  You should read it before using\n RIPEM.\n\n RIPEM is available via anonymous FTP to citizens and permanent\n residents in the U.S. from rsa.com; cd to rsaref/ and read the README\n file for info.  Note that the non-RSAREF portion of RIPEM is not a\n product of RSA Data Security, Incorporated; they merely are helping\n distribute it.\n\n RIPEM, as well as some other crypt stuff, has its \"home site\" on\n ripem.msu.edu, which is open to non-anonymous FTP for users in the\n U.S. and Canada who are citizens or permanent residents.  To find out\n how to obtain access, FTP there, cd to pub/crypt/, and read the file\n GETTING_ACCESS.  For convenience, binaries for many architectures are\n available here in addition to the full source tree.\n\n3)  Will RIPEM run on my machine?\n\n Probably.  It has already been ported to MS-DOS and most flavors of\n Unix (SunOS, NeXT, Linux, AIX, ULTRIX, Solaris, etc.)  Ports to\n Macintosh include a standard UNIX-style port and a rather nice\n Mac-like port written by Raymond Lau, author of StuffIt.  More ports\n are expected, and help of users is invited.\n\n4)  Will RIPEM work with my mailer?\n\n Probably.  How easy and clean the effective interface is will depend\n on the sophistication and modularity of the mailer, though.  The users\n guide, included with the distribution, discusses ways to use RIPEM\n with many popular mailers, including Berkeley, mush, Elm, and MH.\n Code is also included in elisp to allow easy use of RIPEM inside GNU\n Emacs.\n\n If you make a new interface for RIPEM or create an improvement on one\n in the distribution which you believe is convenient to use, secure,\n and may be useful to others, feel free to post it to alt.security.ripem.\n\n5)  What is RSA?\n\n RSA is a crypto system which is asymmetric, or public-key.  This means\n that there are two different, related keys: one to encrypt and one to\n decrypt.  Because one cannot (reasonably) be derived from the other,\n you may publish your encryption, or public, key widely and keep your\n decryption, or private, key to yourself.  Anyone can use your public\n key to encrypt a message, but only you hold the private key needed to\n decrypt it.  Note that the \"message\" sent with RSA is normally just\n the DES key to the real plaintext. (See \"What is DES?\")\n\n Note that the above only provides for disclosure protection.  For\n originator authenticity, message integrity, and non-repudiation of\n origin services to be implemented, the fingerprint of the message\n (See \"What is a fingerprint, like MD5?\") is encrypted with the\n sender's private key.  The recipient, or a dispute-resolving\n authority, can use the sender's public key to decrypt it and confirm\n that the message must have come from the sender and was not altered.\n\n RSA was named for the three men (Rivest, Shamir and Adleman) who\n invented it.  To find out lots more about RSA and modern cryptography\n in general, ftp to rsa.com and look in pub/faq/.  Some information\n also may be in sci.crypt.\n\n6)  What is DES?\n\n DES is the Data Encryption Standard, a widely used symmetric, or\n secret-key, crypto system.  Unlike RSA, DES uses the same key to\n encrypt and decrypt messages.  However, DES is much faster than RSA.\n\n RIPEM uses both DES and RSA; it generates a random key and encrypts\n your mail with DES using that key.  It then encrypts that key with the\n recipient's public RSA key and includes the result in the letter,\n allowing the recipient to recover the DES key.\n\n DES is sometimes considered weak because it is somewhat old and uses a\n key length considered too short by modern standards.  However, it\n should be reasonably safe against an opponent smaller than a large\n corporation or government agency.  It is not likely that the PEM\n standard will incorporate support for other symmetric ciphers in the\n near future, because there is a strong feeling that PEM should be\n stable so it can become utilized widely without early problems with\n interoperability.\n\n7)  What is a fingerprint, like MD5?\n\n MD5 is a message digest algorithm produced by RSA Data Security Inc.\n It provides a 128-bit fingerprint, or cryptographically secure hash,\n of the plaintext.  It is cryptographically secure because it is not\n possible (in a reasonable amount of computation) to produce a\n different plaintext which produces the same fingerprint.  Thus,\n instead of signing the entire message with the sender's private key,\n only the MD5 of the message needs to be signed for authentication.\n\n MD5s can also be exchanged directly for authentication; for example,\n RIPEM public keys include an MD5 of the public key in the file, so\n parties wishing to confirm their keys are authentic via a separate\n channel merely need exchange MD5s of keys and verify their accuracy.\n\n MD5 is sometimes used for other purposes; for example, it is often\n used to map an input of arbitrary length to 128 bits of data, as a\n passphrase interpreter or cookie generator.\n\n MD5 is described in its entirety (including an implementation in C) in\n RFC 1321.\n\n There have been some recent suggestions that MD5 may not be as strong\n a hash as was originally believed; presumably some other hash\n function will be used if this is accepted as true.\n\n8)  What is PEM?\n\n PEM is Privacy Enhanced Mail, a standard for allowing transfer of\n encrypted electronic mail generated over a long period of time by a\n working group of experts.  It is described in RFCs 1421-1424; these\n documents have been approved and obsolete the old RFCs 1113-1115.\n\n RIPEM is not really a complete implementation of PEM, because PEM\n specifies certificates for authenticating keys, which RIPEM does not\n handle at this time.  Their addition is planned.\n\n9)  What's this about distributing and authenticating keys?\n\n For a remote user to be able to send secure mail to you, she must know\n your public key.  For you to be able to confirm that the message\n received came from her, you must know her public key.  It is important\n that this information be accurate; if a \"bad guy\" convinces her that\n his key is in fact yours, she will send messages which he can read.\n\n RIPEM allows for three methods of key management: a central server,\n the distributed finger servers, and a flat file.  All three are\n described in the RIPEM users guide which is part of the distribution.\n None of them provide perfect security.  The PEM standard calls for\n key management by certificates; the addition of this feature to RIPEM\n is planned, but chicken-egg issues still exist.\n\n10)  Isn't it a bad idea to use patented algorithms in standards like PEM?\n\n This issue has been considered in the standards process.  RFC 1310,\n the specification for Internet standards, has a discussion (section\n 6) on what specifications for nondiscriminatory availability must be\n met for a patented method to be included in a standard.  RFC 1421\n addresses this issue with regard to the patents covering public-key\n cryptography.\n\n This does not, of course, mean that all questions are settled or that\n everyone is in agreement.  An interesting exchange on the use of\n patented algorithms in standards with regard to public-key\n cryptography is in the League for Programming Freedom archive\n (available via FTP: ftp.uu.net:/doc/lpf) in the files bidzos.letter\n and bidzos.response.  (Amusingly, the LPF files on ftp.uu.net are\n compressed with a patented algorithm.)\n\n11)  What about RSADSI/PKP?\n\n RSA Data Security, Inc. (RSADSI) is a California-based company\n specializing in cryptographic technologies.  Public Key Partners is a\n firm which holds exclusive sub-licensing rights of the following U.S.\n patents and all of their corresponding foreign patents:\n\n      Cryptographic Apparatus and Method\n      (\"Diffie-Hellman\")............................... No. 4,200,770\n\n      Public Key Cryptographic Apparatus\n      and Method (\"Hellman-Merkle\").................... No. 4,218,582\n\n      Cryptographic Communications System and\n      Method (\"RSA\")................................... No. 4,405,829\n\n      Exponential Cryptographic Apparatus\n      and Method (\"Hellman-Pohlig\").................... No. 4,424,414\n\n PKP claims these four patents cover all known methods of public key\n cryptography.  The two businesses are rather closely related (for\n example, the same person, Jim Bidzos, is president of both of them.)\n PKP has licensed this technology to a considerable number of\n companies (IBM, DEC, Motorola, AT&T, Lotus...) for use in their\n products.  PKP has also threatened and filed lawsuits defending their\n patents.\n\n RIPEM was originally created with no connection to RSADSI other than\n its use of the RSAREF library, and for no reason other than its\n author's desire to see widespread use of public-key cryptography.\n However, after the ball started rolling, people at RSADSI got\n interested.  RSADSI decided to carry RIPEM on its FTP site, and some\n people there started making their own RIPEM keys and contributing\n code.  RIPEM even won the \"Best Application Built on RSAREF in 1992\"\n award.\n\n12)  Why do all RIPEM public keys look very similar?\n\n RIPEM public keys begin with a PKCS (Public-Key Cryptography\n Standards) identifier describing various characteristics about the\n key, so the first bunch of characters in your key may be the same as\n those of lots of other people's keys.  This does not mean your keys\n are similar, but only that they are the same class of key, were\n generated with the same program, are of the same length, etc.\n\n13)  What is PGP?\n\n PGP is another cryptographic mail program called Pretty Good Privacy.\n PGP has been around longer than RIPEM, and works somewhat differently.\n PGP is not compatible with RIPEM in any way, though PGP does also use RSA.\n\n A few major differences between PGP and RIPEM:\n\n - PGP has more key management features, particularly for users without\n   a direct network connection.\n\n - RIPEM conforms to the PEM RFCs and thus has a greater probability\n   of working with other PEM software.  PGP makes no attempt to be\n   compatible with anything other than itself.\n\n - RIPEM uses RSAREF, a library of RSA routines from RSADSI which\n   comes with a license allowing noncommercial use.  PGP uses its own\n   implementation of RSA.  PKP claims that it is a violation of its\n   patents to \"make, use or sell\" PGP in the U.S. or Canada without\n   either a license or written permission.  (See: \"DISCLAIMER\")\n   (See: \"What about RSADSI/PKP?\")  Phil Zimmermann, the author of\n   PGP, stopped distributing it after being threatened with legal\n   action; he believed that a licensing scheme could be arranged, but\n   it hasn't happened and there seems little prospect of it happening\n   in the future.  He acknowledges in the PGP User's Guide:\n\n   #In fact, if you live in the USA, and you are not a Federal agency, \n   #you shouldn't actually run PGP on your computer, because Public\n   #Key Partners wants to forbid you from running my software.  PGP is\n   #contraband.\n\n - Both PGP and RIPEM are export-restricted, and cannot be sent outside\n   the U.S. and Canada without an export license.  However, PGP\n   already exists on many ftp sites in Europe and other places.\n\n Whether you use PGP or RIPEM or whatever, the documentation to PGP is\n recommended reading to anyone interested in such issues.\n Unfortunately, it's not distributed separately from the program,\n which can be difficult to find in the U.S. on FTP sites due to\n liability concerns.\n\n14)  What about RPEM?\n\n RPEM stands for Rabin Privacy Enhanced Mail.  It was similar to RIPEM,\n but used a public-key cipher invented by Rabin (which is not RSA) in\n an attempt to avoid the patents on public-key systems.  It was\n written by Mark Riordan, who later wrote RIPEM.\n\n Its distribution was halted when, contrary to the beliefs of many\n (including Rabin), PKP claimed that their patents were broad enough\n to cover the cipher employed.  This claim is not universally\n accepted, but was not challenged for pragmatic reasons.\n\n RPEM is not really used anymore.  It is not compatible with RIPEM or PGP.\n\n15)  What is MIME?\n\n MIME stands for Multipurpose Internet Mail Extensions, and is\n described in RFC 1341.  You can find out about it in the newsgroup\n comp.mail.mime; a FAQ exists on it.  How PEM should interact with\n MIME is not yet entirely clear; some people use the stopgap solution\n of having a MIME type application/x-ripem in order to send RIPEM\n messages as MIME ones.  I hope some standards will emerge.  Draft\n Internet documents exist on the matter.\n\n16)  What is TIS/PEM?\n\n Trusted Information Systems is working on a version of Privacy\n Enhanced Mail for general availability.  Last I heard, it was\n rumored to be integrated into an existing mail user agent (MH)\n rather than a stand-alone system, and in beta test.  I don't know\n much more than that.\n\n17)  I have this simple way to defeat the security of RIPEM...\n\n You may wish to check the companion post \"ripem-attacks\" which\n discusses some of the more obvious attacks on RIPEM's security and\n what procedures will minimize the risk.  RIPEM's main \"weak area\" is\n probably key distribution.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3120, "properties": {"category": "comp.graphics", "text": "From: tw2@irz.inf.tu-dresden.de (Thomas Wolf)\nSubject: Q: TIFF description\nOrganization: Dept. of Computer Science, TU Dresden, Germany\nLines: 13\nDistribution: world\nNNTP-Posting-Host: irz205.inf.tu-dresden.de\nKeywords: TIFF\n\nSorry for wasting your time with a probably simple question, but I'm not\nan computer graphic expert. I want to read TIFF-Files with a PASCAL-program.\nThe problem is, that the files I want to read are in compressed form \n( code 1, e.g. Huffman ). All books & articles I found describe only the\nplain (uncompressed) format. I don't know where to get the original\nTIFF specification, furthermore I haven't any access to a realy complete\nlibrary. Can anybody direct me to a good book or (even better) to an \nspecification available via ftp ?\n\nThanks in advance - Thomas Wolf\n\nps: direct mail would be prefered\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3121, "properties": {"category": "comp.windows.x", "text": "From: gregg@netcom.com (gregg weber)\nSubject: What inexpensive monochrome X station can you recommend?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 10\n\nCan someone recommend an inexpensive 19\" monochrome X station, that\nis not PC software emulation based? Please tell me manufacturer,\nmodel, price and any other significant specs. Thanks.\n\n-- \n================================================================\nGregg Weber\t\tLet it be, open and bright like the sky,\ngregg@netcom.com\tWithout taking sides, with no clouds of concepts.\n(510) 283-6264\t\t- kun-mkhyen klong-chen-pa\n================================================================\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3122, "properties": {"category": "sci.electronics", "text": "From: ah499@cleveland.Freenet.Edu (John Daniels)\nSubject: HELP!: Apple II Expansion Chassis by Mountain Computer\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 25\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nI recently bought an apparantly complete Expansion Chassis by Mountain\nComputer Inc.  It consists of a box with 8 Apple ][+ compatible slots,\npowersupply brick, interface card and ribbon cable to attach it to the computer\nto be expanded.  There was also included a small card with empty sockets on top\nand pins on the bottom that looks like it would plug into the ][+ motherboard\nsomewhere after pulling a chip.  There's an empty socket also on the interface\ncard and a short 16-pin DIP jumper like the ones used with ][+ language cards.\n \nThis technological marvel came with no docs and I haven't a clue as how to hook\nthis thing up.  If anyone has docs and/or users disk of any sort for this I\ncould really use copies of them or at least some help.\n \nI need to know:\n \no How to orient the ribbon cable between the card and the chassis.\no How to attach the short cable from the motherboard to the card\n  and if the small card is used.\no The purposes of the various jumper-pins on the card (it has more\n  of those than my CMS SCSI card!)\n \n \nthanks                                          John Daniels\n                                                ah499@cleveland.freenet.edu\n \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3123, "properties": {"category": "alt.atheism", "text": "Subject: Fluids vs Liquids\nFrom: mikec@sail.LABS.TEK.COM (Micheal Cranford)\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 18\n\nwest@next02.wam.umd.edu (Brian West) writes:\n[ deleted ]\n>A similar analogy can be made with glass. For those of you who don't \n>know, glass is a liquid (go ask your science teacher) and DOES flow.\n[ deleted ]\n\n  If your science teacher tells you glass is a liquid, try to get a different\nscience teacher B^).  Glass is a supercooled fluid, it is not a liquid (except\nat very high temperatures).  The definition of liquid includes \"readily takes\nthe form of its container\".  Let's try to be more accurate here.  We don't want\npeople to think we're creationists now do we?\n\n\n  UUCP:  uunet!tektronix!sail!mikec  or                  M.Cranford\n         uunet!tektronix!sail.labs.tek.com!mikec         Principal Troll\n  ARPA:  mikec%sail.LABS.TEK.COM@RELAY.CS.NET            Resident Skeptic\n  CSNet: mikec@sail.LABS.TEK.COM                         TekLabs, Tektronix\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3124, "properties": {"category": "rec.sport.hockey", "text": "From: ferguson@cs.rochester.edu (George Ferguson)\nSubject: Re: ABC coverage\nReply-To: ferguson@cs.rochester.edu (George Ferguson)\nOrganization: University of Rochester Hockey Science Dept.\nDistribution: usa\n\n\nIn article <cfoy0MW00Uh_41JndV@andrew.cmu.edu> Anna Matyas <am2x+@andrew.cmu.edu> writes:\n>Thorne is good and I've always been a fan of Clement (but I miss\n>Mike Emrick!).  My boyfriend, who is not a hockey fan, even looked up\n>at one point and said, \"These guys are pretty good announcers.\"  (This\n>is the same guy who said that Rick Tocchet looks like Charles Bronson...:)\n\nDid your boyfriend comment on the fact that Clement looks like a\nwalking ad for Brillo pad hair replacement therapy? The guy's just a\nstuffed shirt who thinks he's the greatest hockey analyst since Howie\nMeeker (for gosh sakes). I'll take Schoenie any day.\n\nGeorge\n\n-- \nGeorge Ferguson                 ARPA: ferguson@cs.rochester.edu\nDept. of Computer Science       UUCP: rutgers!rochester!ferguson\nUniversity of Rochester         VOX:  (716) 275-2527\nRochester  NY  14627-0226       FAX:  (716) 461-2018\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3125, "properties": {"category": "sci.space", "text": "From: Bruce_Dunn@mindlink.bc.ca (Bruce Dunn)\nSubject: Re: Clementine mission name\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 22\n\n> Wales.Larrison@ofa123.fidonet.org writes:\n>\n> Old pioneer song from the 1850's or so goes as follows:\n>\n>   \"In a cavern, in a canyon,\n>    Excavating for a mine,\n>    Dwelt a miner, forty-niner,\n>    And his daughter, CLEMENTINE\"\n>\n> Chorus:\n>   \"Oh my darling, Oh my darling,\n>    Oh my darling Clementine.\n>    You are lost and gone forever,\n>    Oh my darling Clementine.\"\n\n\n        Let us hope that the performance of the spacecraft follows the\nsentiments of the first verse (miner) rather than the second (lost and gone\nforever).\n\n--\nBruce Dunn    Vancouver, Canada   Bruce_Dunn@mindlink.bc.ca\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3126, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: Motherboards & Hard Drives\nFrom: vacsc0qe@VAX.CSUN.EDU\nReply-To: vacsc0qe@VAX.CSUN.EDU\nOrganization: Cal State Northridge\nLines: 12\n\nI have just a few quick questions.  Does anyone here have a 486 DLC\nsystem? (a Cyrix 486 DX)  Any problems with it?  \nSecond, how much should a Cyric 486DLC-33 motherboard (with\nno RAM) run me?  \n3rd...Should a total amatuer (like myslef) be able to perform\na motherboard swap without the aid of a technician, or is it\nbeyond hope?\n4th...I hear that some (if not all) hard drives may require reformatting\nif you switch them to another computer (or motherboard as the case may\nbe).  Is there any truth to this?\n\nAny replies would be greatly appreciated.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3127, "properties": {"category": "rec.autos", "text": "From: dwjz@bnr.ca (Doug Zolmer)\nSubject: Re: $ 80 SVX OIL CHANGE\nNntp-Posting-Host: bcarh28f\nReply-To: dwjz@bnr.ca (Doug Zolmer)\nOrganization: Bell-Northern Research Ltd.\nDistribution: na\nLines: 24\n\nIn article <C518F0.9I7@undergrad.math.uwaterloo.ca>, swdwan@napier.uwaterloo.ca (Donald Wan) writes:\n|>  My friend brought a subaru SVX recently.  I had drove it for couples times and I\n|> think its a great car, esp on snow.  However when she took it to a local Subaru\n|> dealer for a oil change, the bill came out to be about 80 dollars.  The dealer\n|> told us it is because to change the oil filter on a SVX it is necessary to\n|> disassemble a metal cover under the engine and that took an hour of labour.\n|> At first, we think we are being ripped off so she phone to a dealer in Toronto\n|> but found out the they are charging roughly the same price.  So is there any\n|> SVX owner out there that has the same problem ?  And if the oil change story is\n|> true, then the engineer of Subaru looks pretty stubid to me. By the way, the car\n|> looks great.\n|> \n\nLabour prices for car service are very expensive in Toronto compared to other\nparts of Ontario.  For example, there are places in Ottawa that still charge\n\"only\" $40/hour.  I've seen a couple of places charging $60/hour.  The cheapest\nI've heard in Toronto is $70/hour.\n\n|> SWD Wan.\n|> \n\n-- \nDoug Zolmer           Internet: dwjz@bnr.ca         Disclaimer: My opinions only\nBell-Northern Research Ltd.  Ottawa, Ontario, Canada         | Conform:- Moooo!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3128, "properties": {"category": "talk.politics.mideast", "text": "From: tsif@ellis.uchicago.edu (Michael Tsifansky)\nSubject: Re: How many israeli soldiers does it take to kill a 5 yr old child?\nReply-To: tsif@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 30\n\nIn article <HM.93Apr12204254@dooley.cs.brown.edu> hm@cs.brown.edu (Harry Mamaysky) writes:\n>\n>   steel@hal.gnu.ai.mit.edu (Nick Steel) writes:\n>   |> Q: How many occupying israeli soldiers (terrorists) does it\n>   |>    take to kill a 5 year old native child?\n>   |>\n>   |> A: Four\n>   |>\n>   |> Two fasten his arms, one shoots in the face,\n>   |> and one writes up a false report.\n>   |>\n>   |> --\n>\n>Can Nick Steel provide documentation for this alleged incident ?\n\nProbably not--he's just singing someone else's opera. He's good, too; perhaps he should get \"The Best Supporting Singer...\"\n\nI can give you a Q/A account that is well documented (just go back and reread some of the articles that appeared after this \"joke\"):\n\nQ: How many antisemites does it take to come up with another anti-Israeli\n   provocation on the net?\n\nA: Just one. He'll fabricate a lie, and many more will applaud\n\nI would much prefer if Mr. Steel would refrain from this kind of jokes in the \nfuture. They're not just offensive. They also have a very negative effect on \nthe state of things between Jews and Arabs. So thanks for nothing, clown!\n\nMike.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3129, "properties": {"category": "talk.politics.guns", "text": "From: yoony@aix.rpi.edu (Young-Hoon Yoon)\nSubject: Re: Boston Gun Buy Back\nNntp-Posting-Host: aix.rpi.edu\nLines: 27\n\nmpetro@brtph126.bnr.ca (Myron Petro P030) writes:\n\n>>Ron Miller wrote:\n>>When you ask the question of the \"authorities\" or sponsors of buyback\n>>programs whether they will check for stolen weapons and they answer\n>>\"no, it's total amnesty\".\n> (good point about registration schemes being used only for harassment deleted)\n\n> I would also like to point out that this is receiving stolen property and is \n>no different than a pawn shop owner doing the same thing. \n> \n>  \n>\tMyron Petro\n>\tNRA, USPSA\n>        DVC y'all\n>\t**************************************************************************\n>\t The opinions included in this post are my sole responsibility.\n>\t And are protected by the First Amendment and guarnteed by the \n>\t Second Amendment.  \n\nAn interesting idea consider:   \n   At any locality where a buy-back program is being instituted, get a list\nof guns they received and compare serial numbers with a list of stolen guns\nand sue the people responsible for the program if those guns were destroyed.\nCriminal charges can also be made.( Receiving stolen property, destruction of\nprivate property etc.)\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3130, "properties": {"category": "talk.politics.misc", "text": "From: eck@panix.com (Mark Eckenwiler)\nSubject: Re: The state of justice\nOrganization: NWO Steering Committee\nLines: 52\n\nIn <1993Apr15.143320.8618@desire.wright.edu>, demon@desire.wright.edu sez:\n>\tA judge denied GM's new trial motion, even though GM says it has two\n>new witnesses that said the occupant of the truck was dead from the\n>impact, not from the fire.\n>\n>\tThoughts?\n>\n>\tIt's kind of scary when you realize that judges are going to start\n>denying new trials even when new evidence that contradicts the facts that led\n>to the previous ruling appear.\n\nThere's this minor thing called \"interest of finality/repose\".  What\nit means is that parties aren't dragged into court over and over again\nbecause the losing side \"discovers\" some \"new\" evidence.  I don't know\nabout you, Brett, but I suspect GM had the resources to find just\nabout as many expert and fact witnesses as it wanted before the trial\nstarted.  Letting them re-open the case now is practically an\ninvitation to every civil litigant on earth to keep an ace in the hole\nin case the verdict goes against him.\n\nBTW, in federal criminal cases, Rule 33 does permit a motion for a new\ntrial \"based on . . . *newly discovered* evidence\" if made within 2\nyears of the verdict.  (Emphasis mine.)  If you're trying to make a\nbackhanded point about criminal justice in a discussion that has\nlittle to do with criminal trials -- as the estimable David Brock did\nin his amusing WSJ piece last week -- save your breath.\n\n\n\n>\tOr has the judge decided that the new witnesses are not to be \n>believed? \n>Shouldn't that be up to a jury?\n\nYup.  Which is why they shoulda been brought around the first time\nthrough. \n\n\n>\tAnd what about members of the previous jury parading through the talk\n>shows proclaiming their obvious bias against GM?  Shouldn't that be enough for\n>a judge to through out the old verdict and call for a new trial?\n>\tWhatever happened to jurors having to be objective?\n\nUnless there's some reason to believe that this supposed bias predated\nthe trial (as opposed to being a product of it), and that GM was\nunfairly prevented from discovering it (by venireman concealment or\notherwise), why should GM be allowed to complain?\n\n-- \nMORAL: Always Choose the Right Sort of Parents \n       Before You Start in to be Rough\n                                        - George Ade\n\tMark Eckenwiler    eck@panix.com    ...!cmcl2!panix!eck\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3131, "properties": {"category": "talk.politics.misc", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: National Sales Tax, The Movie\nLines: 66\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <1993Apr16.164750.21913@alchemy.chem.utoronto.ca> golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n\n>In article <9304151442.AA05233@inet-gw-2.pa.dec.com> blh@uiboise.idbsu.edu (Broward L. Horne) writes:\n>>      Well, it seems the \"National Sales Tax\" has gotten its very\n>\n>>      own CNN news LOGO!\n>>\n>>      Cool.  That means we'll be seeing it often.\n>>\n>>      Man, I sure am GLAD that I quit working ( or taking this \n>>      seriously ) in 1990.  If I kept busting my ass, watching \n>>      time go by, being frustrated, I'd be pretty DAMN MAD by \n>>      now.\n>>      \n>>      I just wish I had the e-mail address of total gumby who\n>>      was saying that \" Clinton didn't propose a NST \".\n>>\n>\n>Actually, Jerry Brown essentially did...and Clinton, in his demagogue\n>persona, condemned Brown for it in the crucial NY primary last year.\n>\n>However....\n>\n>Why don't the Republicans get their act together, and say they\n>will support a broad-based VAT that would have to be visible\n>(the VAT in Canada is visible unlike the invisible VATS they\n>have in Europe)\n>and suggest a rate sufficient to halve income and corporate\n>and capital gains tax rates and at a rate sufficient to give\n>the Clintons enough revenue for their health care reform, \n\n       The Republicans are, in general, fighting any tax increase.\nThere is also worry that a VAT would be far too easy to increase\nincrementally.\n\n       (BTW, what is different between Canada's tax and most of\nEurope's that makes it \"visible?\")\n\n>and\n>force an agreement with the Democrats that the top income tax\n>rate would then be frozen for the forseeable future and could\n>be increased only via a national referendum.\n\n       This would require a constitutional amendment, and Congress\nenjoys raising taxes too much to restrict themselves like that.\n(Besides, with the 2/3 majority necessary to pull that off you'd \nhave a difficult time \"forcing\" anything like that.)\n\n>Why not make use of the Clintons to do something worthwhile...\n>shift the tax burden from investment to consumption, and get\n>health care reform, and a frozen low top marginal tax rate\n>all in one fell swoop.\n\n       Primarily because it's a practical impossibility to \"freeze\"\ntax rates.\n\n       However, this is something that bothers me.  We're always talking\nabout \"consumer confidence\" and \"consumer spending\" as gauges for the\neconomy.  If they really are important, wouldn't shifting taxes to\nconsumption provide a disincentive to spend money?\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3132, "properties": {"category": "rec.motorcycles", "text": "From: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nSubject: Re: more DoD paraphernali\nReply-To: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nDistribution: world\nOrganization: Computer Dynamics-Vancouver B.C.-(604)986-9937 (604)255-9937\nLines: 46\n\n\n\n\nJS>From: Stafford@Vax2.Winona.MSUS.Edu (John Stafford)\n\nJS>In article <1pppnrINNitg@cronkite.Central.Sun.COM>,\nJS>doc@webrider.central.sun.com (Steve Bunis) wrote:\nJS>>\nJS>> How about a decal of thicker vinyl?\n\nJS>  How about a Geeky temporary tatoo?  I mean, why should the\nJS>  RUBs be exempt from a little razzing.\n\nThat's sick! I want!\n\nYou make 'em up, I promise to order. I wannabe Badtothebone!\n\nThe cheesy \"Live to Ride\" eagles are sitting on my shelf, waiting for\nthe big ride down the coast. (It now looks like we may hit points\nfarther south than expected. How do I get in contact with Bay Area\nDenizens? Replies to address below. Me n' Charlie will be along in early\nor mid May.)\n\nSeriously. I like the idea of temporary Geekys (Geekies? Geekae?\nGeekii?). It fits the whole DoD image: it sounds bad, but it's really\nworse.\n\nRyan Cousinetc.|1982 Yamaha Vision XZ550 -Black Pig of Inverness|Live to Ride\nKotRB          |1958 AJS 500 C/S -King Rat                      |to Work to\nDoD# 0863      |I'd be a squid if I could afford the bike...    |Flame to\nryan.cousineau@compdyn.questor.org  |   Vancouver, BC, Canada   |Live . . .\n\n\n\n\nJS>====================================================\nJS>John Stafford   Minnesota State University @ Winona\nJS>                    All standard disclaimers apply.\n\n * SLMR 2.1a * If Lucas built weapons, wars wouldn't start, either.\n                          \n----\n+===============================================================+\n|COMPUTER DYNAMICS BBS    604-255-9937(HST)    604-986-9937(V32)|\n|Vancouver, BC, Canada -  Easy Access, Low Rates, Friendly Sysop|\n+===============================================================+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3133, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Re: Origins of the bible.\nOrganization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742\nLines: 14\n\nAdda Wainwright writes:\n\n>He stated that thousands of bibles were discovered at a certain point in\n>time which were syllable-perfect.  This therefore meant that there must have\n>been one copy at a certain time; the time quoted by my acquaintance was\n>approximately 50 years after the death of Jesus.\n\nThis is, as far as I know, complete nonsense.  The codification of the bible\nas we have it now came very much later.\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3134, "properties": {"category": "sci.electronics", "text": "From: baden@sys6626.bison.mb.ca (baden de bari)\nSubject: _Exhausted student needing HELP!\nOrganization: System 6626 BBS, Winnipeg Manitoba Canada\nLines: 40\n\n \n      Well, I've now been working on this DAMNED stepper controller board\n since 9pm.  It's now 6am... I'm pissed off.  Period.  Alright, I can\n drive the steppers through the 3479P's; no problem (that's with the\n 6-wire steppers, 2 to +, and the other 4 are the phase lines).  Problem\n 1:  I've got some 4 wire steppers.  I put the darkest line to + and the\n other 3 to the 3479P... worked, kinda.  Tried it with a printer stepper\n (moves the head back and forth, 4 wires), didn't work too well.  It \nwould\n shift back and forth (use something like a 4017 instead?)  Also I've \nbeen\n trying to get a bunch of NPN's to work with it... NO LUCK... tried \nPNP's,\n still NO LUCK!!!  I don't know if I'm cursed on this or what, but I feel\n my brain slowly frying with the thought of STEPPER ... ARGGG!!!\n         I don't know what's wrong with the transistor hook-up (to-220 \npkg\n type), also tryed the 2n2222-pkg type... no luck.\n\n                         I'm going to try getting some z's, and I hope \nyou\n can help me with this problem.\n   If someone can please help me with this soon, it would be greatly\n   appreciated...\n\n                 Thanks.\n\n\n\n\n \n  _________________________________________________\n  Inspiration  |   ___                             |\n  comes to     |  \\   o  baden@sys6626.bison.mb.ca |\n  those who    | (  ^  ) baden@inqmind.bison.mb.ca |\n  seek the     |   /-\\      =] Baden de Bari [=    |\n  unknown.     |                                   |\n  ------------------------------------------------- \n \nl\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3135, "properties": {"category": "comp.windows.x", "text": "From: dev@hollywood.acsc.com ()\nSubject: Keyboard Focussing\nOrganization: ACSC, Inc.\nLines: 11\nDistribution: world\nNNTP-Posting-Host: hollywood.acsc.com\n\nI have two Motif Widgets. I would like to control one of them via the\nkeyboard and the other with the mouse. I set the keyboard focus on the first\nwidget, but as soon as I click the mouse on the second one, I lose the\nkeyboard focus on the first one. \n\nCould some kind soul show me how to do this?\n\nThanks\n\nDM\ndev@hollywood.acsc.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.143+0000", "event": "documents", "entityId": 3136, "properties": {"category": "rec.motorcycles", "text": "From: paulb@harley.tti.com (Paul Blumstein)\nSubject: Re: A Point for Helmet Law is a Point for MC B\nNntp-Posting-Host: harley.tti.com\nOrganization: Black Belt Motorcyclists Association\nLines: 22\n\nIn article <5967@prcrs.prc.com> terry@prcrs.prc.com (Terry Cunningham) writes:\n+\n+I know of no law, either on the books or proposed, that bans motorcycles\n+from any place that i want to go to.\n\nMany private places ban bikes.  For example, the famous 17 mile\ndrive at the Monterrey Peninsula.  And I have stayed at resorts\nthat sported a \"No motorcycles allowed\" sign at the entrance.\n\nAnd there have been public places.  Call the AMA and ask for\nJim Bensberg (sp?) or any one else in their Legislative Office.\nThey will recound the many public places that they had to bring\nto court to reverse their ban on bikes.  That includes everything\nfrom public parks to full cities.  There are probably a few fights\non their books as we now speak.  That is another good reason to\ndonate to their legislative fund.\n____________________________________________________________________________\n   Death is life's way of telling you you've been fired  -- R. Geis\n----------------------------------------------------------------------------\n   Paul Blumstein, paulb@harley.tti.com, DoD #36, ABATE, AMA, HOG, doh #2\n  KD6LAA, MARC, ARRL, Platypus #240, QRP-ARPCI, NASWA, LWCA, RCMA (CALA905)\n            Transaction Technology, Inc., Santa Monica, CA\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3137, "properties": {"category": "rec.sport.hockey", "text": "From: jmd@cbnewsm.cb.att.com (joseph.m.dakes)\nSubject: Re: Flyers [Re: This year's biggest and worst (opinion)...]\nOrganization: AT&T\nDistribution: na\nKeywords: NHL, awards\nLines: 67\n\nIn article <1993Apr15.190132.29787@cbnewsh.cb.att.com>, seth@cbnewsh.cb.att.com (peter.r.clark..jr) writes:\n> So in other words, if Roussel shuts out the Sharks and Soderstrom shuts out\n> the Penguins, that's immaterial because it was the coaches decision? Come on,\n> Joe, think about what you're saying! Who they played is VERY significant.\n> Why they played them is what's irrelevent. A low GAA against good teams\n> is better than a low GAA against bad teams in the context of comparing two\n> goaltenders. A low GAA is better then a higher GAA. A low GAA against good\n> teams is much, much better than a higher GAA against bad teams in the context\n> of comparing two goaltenders.\n\nLet's start over.  I'm not arguing about who is the better goaltender.  I'd\ntake Soderstrom right now.  What I am saying is that Roussel can be a #1\nnetminder.  The GAA difference is less than half a goal per game (less than\nthat after last night), their save percentages are close, and their records\nare similar.  And with that, I just don't see how you can label Roussel as\nthe most disappointing player on the Flyers this season.\n\nYou say Soderstrom played against better competition.  That may very well\nbe, but there is no way of knowing how Roussel would have performed in\nthose games.  Besides, against the better scoring teams like Pittsburgh,\nthe defense is more keyed up than they are against San Jose.\n\n> The same\n> for Roussel in the Ranger game. Two real scoring chances, one he made a\n> great play, the other he was saved by a mistake from the other player. If\n> you were judging Roussel on that game alone, you have very little to go by.\n\nBut I'm not just judging Roussel on that game alone.  I've seen him play\nfor the past two seasons in Philly and before that in Hershey.  It's just\nmy opinion, but I think he's got what it takes.  Of course, I thought that\nabout Mark LaForest, too.  But I never did about Wendell Young.  So I'm\nbatting .500 in judging Hershey talent since the Hextall-era.\n\nAs for the Rangers game, you can say he was saved by a mistake by the\noffensive player if you like.  But Rou had his leg in position to make the\nsave.  If he didn't, it wouldn't have mattered if the Rangers player didn't\nget the puck up or not.  It would have been a goal.  On a breakaway that's\nwhat the goalie wants to do, take away as much as possible and force the\nshooter to beat him.\n\n> But if you were to look at the 0-0 tie against the Habs, you saw a goalie\n> stand on his head to get that shutout. THAT was a #1 goalie in action. Roussel\n> doesn't have a game like that in him.\n\nI seem to remember Roussel doing an excellent job against Pittsurgh on\nopening night to give the Flyers a tie against the two-time defending\nchamps.  And not to take anything away from Soderstrom because he was\nsenational in that game agains the Habs.  But you can't tell me that a\nMontreal player had an open net to shoot at some point during that game\nand just flat out missed it.  Mistakes, both on offense and defense are\npart of the game.  Or there'd never be shutouts.\n\nAnyway, I'm happy the Flyers have both Soderstrom and Roussel and\nI'm not going to argue about it anymore.  Besides, with the current\n7-game winning streak and expectations soaring for next year, I\ndon't want to piss you off to the point that you don't sell me any\ntickets next season:-).\n\n                                         \\ \\\nJoe Dakes                                 \\/\\\nAT&T Microelectronics                      \\/\\\n555 Union Boulevard                         \\ \\\nAllentown, PA  18103                     LET'S GO FLYERS! \nalux1!jmd                                     \\ \\\njmd@aluxpo.att.com                             \\ \\__________\n                                                \\____/_//__/\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3138, "properties": {"category": "comp.windows.x", "text": "From: christy@cs.concordia.ca (Christy)\nSubject: X11R5 and Gateway2000\nOrganization: Computer Science, Concordia University, Montreal, Quebec\nLines: 15\n\nHi,\n     I just got myself a Gateway 4DX-33V and trying to configure\nX11R5 for it.  Has anyone done this before ?  More specifically,\nI need a correct Xconfig file entry that is set up for my \ngraphics card and monitor.  I have a 15\" Color CrystalScan 1572FS monitor\nand a VESA LOCAL BUS ATI Ultra Pro with 1MB VRAM video card.\n\nAny help will be extremely appreciated.\n\nThanks in advance.\n\nPlease send replies to christy@alex.qc.ca\n\n\nChristy\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3139, "properties": {"category": "talk.politics.misc", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Getting Off to an Early Start!\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 61\n\nPatrick Townson <ptownson@eecs.nwu.edu> writes:\n>So ... the Jury will be making its announcement at 7:00 AM Saturday\n>morning Pacific Time .... 10:00 AM Eastern Time. Why such an ungodly\n>hour?\n>\n>Maybe by making the announcement at 7:00 AM on the west coast,\n>they figure all the rioters will be asleep, giving the troops\n>time to move into place. \n\nSince the actual verdicts were not known by the authorities, it was\nsmart not to allow \"Friday night for fighting\" (sorry, Elton) and to\nseal them for this morning.  Also, it allows for maximum daylight to\nwear down and frustrate any potential troublemakers, as well as give\nmore preparation time.\n\n>I guess we can look forward to a weekend of rioting, eh? \n\nAre you a local news intern? (-;\n\n>The Mayor of Los Angeles, in a press conference about 3:00 AM\n>Saturday morning, ...\n\nActually, that was 8 PM 'cos it was shown live on our 11 PM news\nand cut into CNN's 11 O'clock Sports (sorry, but I didn't watch\nthe Devils-Islanders game!  No SportsChannel ...).\n\n>Meanwhile, following the announcement of the jury's verdict, the\n>judge, jury and assorted court personnel will be evacuated from the\n>building via helicopters landing on the roof of the courthouse. They\n>can't  even walk out through the front door with their heads held\n>high. \n\nWe had cutovers to LA's KNBC on our WNBC, and I didn't recall this\ndetail.  But I'll not comment further on that ...\n\n>Won't the rioters have a surprise waiting for them when they wake\n>up later today!\n\nA net-contact in L.A. tells me that the alert will remain over this\nweekend, as some elements may find excuse over the not-guilty verdicts\non three of five charges (the aiding-and-abetting).  Those acquittals\nseem to balance out the fact that Rodney King himself was not any kind\nof angel that night, speeding and fleeing et al.  However ...  Another\nconsideration is any street celebrations over the two convictions on\nthe excessive force charges (Koons for incompetance, and Powell for\noverreacting --- both guilty as heck even from the view of NYPD cops\ninterviewed) that might get out of hand. )-;  Also, some elements\nmay take the acquittals as an excuse to challenge the cops (a dumb\nmove, obviously).  And, Koreans are still scared and certain people\nare really mad over how they have armed themselves in the last year.\n\nA Commander from Nassau, Long Island was questioned about how his\npeople would have handled Rodney King, and he said \"We'd have let\nhim roll around in the dirt 'til he got tired, then handcuff him\".\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3140, "properties": {"category": "soc.religion.christian", "text": "From: darndt@nic.gac.edu (David Arndt)\nSubject: Johnny Hart's (B.C. comic strip) mailing address?\nOrganization: Gustavus Adolphus College\nLines: 17\n\nSubject pretty much says it all - I'm looking for Johnny Hart's (creator\nof the B.C. comic stip) mailing address.\n\nFor those of you who haven't seen them, take a look at his strips for Good\nFriday and Easter Sunday.  Remarkable witness!\n\nIf anyone can help me get in touch with him, I'd really appreciate it! \nI've contacted the paper that carries his strip and -- they'll get back to\nme with it!\n\nThanks for your help,\n\nDave Arndt\nSt. Peter's Evangelical Lutheran Church\nSt. Peter, MN 56082\n\ndarndt@nic.gac.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3141, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Symbiotics: Zionism-Antisemitism\nOrganization: The Department of Redundancy Department\nLines: 21\n\nIn article <1483500355@igc.apc.org> cpr@igc.apc.org (Center for Policy Research) writes:\n\n>The first point to note regarding the appropriation of the history\n>of the Holocaust by Zionist propaganda is that Zionism without\n>anti-semitism is impossible. Zionism agrees with the basic tenet\n>of anti-Semitism, namely that Jews cannot live with non- Jews.\n\nThat's why the Zionists decided that Zion must be Gentile-rein.\nWhat?!  They didn't?!  You mean to tell me that the early Zionists\nactually granted CITIZENSHIP in the Jewish state to Christian and\nMuslim people, too?  \n\nIt seems, Elias, that your \"first point to note\" is wrong, so the rest\nof your posting isn't worth much, either.\n\nTa ta...\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3142, "properties": {"category": "alt.atheism", "text": "From: agrino@enkidu.mic.cl (Andres Grino Brandt)\nSubject: Studies on Book of Mormon\nDistribution: world\nOrganization: Orden del Lobo Estepario\nReply-To: agrino@enkidu.mic.cl\nLines: 20\n\nHi!\n\nI don't know much about Mormons, and I want to know about serious independent\nstudies about the Book of Mormon.\n\nI don't buy the 'official' story about the gold original taken to heaven,\nbut haven't read the Book of Mormon by myself (I have to much work learning\nBiblical Hebrew), I will appreciate any comment about the results of study\nin style, vocabulary, place-names, internal consistency, and so on.\n\nFor example: There is evidence for one-writer or multiple writers?\nThere are some mention about events, places, or historical persons later\ndiscovered by archeologist?\n\nYours in Collen\n\nAndres Grino Brandt               Casilla 14801 - Santiago 21\nagrino@enkidu.mic.cl                        Chile\n\nNo hay mas realidad que la realidad, y la razon es su profeta\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3143, "properties": {"category": "rec.sport.hockey", "text": "Organization: University of Maine System\nFrom: The Always Fanatical: Patrick Ellis <IO11330@MAINE.MAINE.EDU>\nSubject: Keenan signs, Plus WALSH????????\n <1993Apr16.235100.18268@pasteur.Berkeley.EDU>\n <93108.121926IO11330@MAINE.MAINE.EDU>\nLines: 25\n\n\nWell I just read in the Boston Globe that while not confirming\n(or denying) anything, Walsh may end up with the Rangers organizations\nas an (assistant Coach?).  Keenan has talked with Walsh in the past\n(he came up to see Kariya as he will be coaching him in the worlds,\nfunny I guess he got to watch the Ferraro brothers as well.....) I'm\nnot sure if walsh will go, but if Keenan is getting 700,000 and walsh\neven gets 100,000 that's a 30% pay raise for walsh (not to mention\na nice career move....) Anyone from New York Hear anything about\nthis????????\n\n               Pat Ellis\n\n\n\n\nP.S.  GO BRUINS    GO UMAINE BLACK BEARS    42-1-2       NUMBER 1......\n\n                   HOCKEY EAST REGULARS SEASON CHAMPIONS.....\n                   HOCKEY EAST TOURNAMENT CHAMPIONS>......\n                   PAUL KARIYA, HOBEY BAKER AWARD WINNER.......\n         NCAA DIV. 1 HOCKEY TOURNAMENT CHAMPIONS!!!!!!!!!!!!!!!!!!!\n\n\n                    M-A-I-N-E      GGGGOOOOOOO    BBBLLLUUEEEE!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3144, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jgarven@mcl.cc.utexas.edu\nSubject: Re: Trumpet for Windows & other news readers\nLines: 34\n\n\nIn article <ashok.653.0@biochemistry.cwru.edu> ashok@biochemistry.cwru.edu (Ashok Aiyar) writes:\n>In article <1993Apr21.082430@liris.tew.kuleuven.ac.be> wimvh@liris.tew.kuleuven.ac.be (Wim Van Holder) writes:\n>\n>>What the status of Trumpet for Windows? Will it use the Windows sockets ?\n>>I liked it in DOS but had to abandon it since I started using NDIS to access\n>>our token ring (results in invalid class error :(\n>\n>While I do not speak for Peter Tattam, I am fairly sure he is planning a \n>Winsock compliant version.  While this will definitely not make the initial\n>public release of WinTrumpet, it will follow on shortly thereafter.\n>\n>Currently WinTrumpet is in very late beta.  It looks like an excellent \n>product, with several features beyond the DOS version.\n>\n>WinTrumpet supports the Trumpet TCP, Novell LWP, and there is also a direct to \n>packet driver version that some people are using with the dis_pkt shim.\n>\n>Ashok \n\nAshok,\n\nIs WinTrumpet available anywhere via anonymous ftp?\n\n*=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=*\n| James R. Garven                                                         |\n| ----------------------------------------------------------------------  |\n| Dept. of Finance, CBA 3.250   Voice:    (512) 471-6557                  |\n| Graduate School of Business   Fax:      (512) 471-5073                  |\n| University of Texas           Internet: jgarven@mcl.cc.utexas.edu       |\n| Austin, TX  78712, U.S.A.     BITNET:   Garven@UTXVM.BITNET             |\n| ----------------------------------------------------------------------  |\n| \"Education is ... hanging on until you've caught on\" - Robert Frost     |\n*=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=*\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3145, "properties": {"category": "comp.windows.x", "text": "From: maf@dtek.chalmers.se (Martin Forssen)\nSubject: Re: german keyboard, X11R5 and Sparc\nNntp-Posting-Host: hacket.dtek.chalmers.se\nOrganization: Chalmers University of Technology, Gothenburg Sweden\nLines: 11\n\nclaes@polaris (Heinz-Josef Claes) writes:\n>I have a Sparc[12] with a german type 4 keyboard.\n>Has anybody a Patch for X11R5?\n\n export.lcs.mit.edu:/pub/sunkbd..930314.tar.Z\n\n\t/MaF\n\n--\nMartin Forssen: maf@dtek.chalmers.se or maf@math.chalmers.se\nSystem administrator at math and dtek at Chalmers univ. of technology \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3146, "properties": {"category": "sci.med", "text": "From: tron@fafnir.la.locus.com (Michael Trofimoff)\nSubject: REQUEST: Gyro (souvlaki) sauce\nOrganization: Locus Computing Corporation, Los Angeles, California\nDistribution: usa\nLines: 12\n\n\nHi All,\n\nWould anyone out there in 'net-land' happen to have an\nauthentic, sure-fire way of making this great sauce that\nis used to adorn Gyro's and Souvlaki?\n\nThanks,\n\n-=< tron >=-\ne-mail: tron@locus.com\t\t*Vidi, vici, veni*\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3147, "properties": {"category": "rec.sport.hockey", "text": "From: mjr4u@Virginia.EDU (\"Matthew J. Rush\")\nSubject: Re: Sad day for hockey\nArticle-I.D.: Virginia.1993Apr6.172016.212\nOrganization: University of Virginia\nLines: 50\n\ndvb@ick  writes:\n> \n> 1. Foul (Any illegal contact with the other player or his stick with your\n>    body or stick). If you get 5 you are out for the game.\n\nI've never seen a game where one player has committed 5\npenalties.  Something like this would require more attention by\nthe referee.\n\n> \n> 2. Unsportsmanlike contact. (An intentional foul). This inlcludes all the\n>    current flavours of roughing, fighting and boarding. If you get two you\n>    are thrown out of the game, and fined.\n> \n> 3. Technical foul. Bad mouthing the ref, by player or coach. Penalty shot\n>    is awarded. Two and you are thrown out of the game.\n> \n> Besides the penalty shot for one technical, if the team gets 5 penalties\n> in a period, the opposing team gets a penalty shot for every additional one,\n> until the end of the period. The victim gets two shots if he/she was in\n> the act of shooting when the foul ocured.\n> \n> This works well for several reasons. First, penalty shots are the most\n> exciting thing in hockey, right? So, it follows that the more the better.\n> Next, when the player is setting up for a penalty shot, the network can\n> take a commercial. Finally, with only three penalties, the network\n> announcers (Don Meredith, Dick Vitale, John Madden, Pat Summerall, and\n> Marv Levy, among others) will be able to tell the viewers what happened before\n> the PA announcer says it.\n> \n\nBut you're creating a scoring opportunity where there might not\nhave been one before.  I can see the relationship between free\nthrows awarded after a certain number of fouls, but it's\nobviously easier to score in basketball, there are more\nopportunities.  If a basketball team scores 100 points, that's\nat least fifty chances made.  The average number of shots taken\nby each team in a hockey game (and this is a total guess) is\nprobably around 40, and a team is lucky to capitalize on maybe\n5 of them.  You have some good ideas concerning the other\npenalties, but I think that a player should be awarded a\npenalty shot only when they had a chance to score and was\ninterfered with.\n\nAlso, later in the post, you talked about how boring the NBA\ngame you attended was, that play was stopped too often.\nWouldn't your penalty shot rule take up more time during a\nhockey game?\n\nMatt att UVA\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3148, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: leo@cae.wisc.edu (Leo Lim)\nSubject: DOS6 - doublespace + stacker 3.0, is it okay?\nArticle-I.D.: doug.1993Apr6.133257.14570\nOrganization: College of Engineering, Univ. of Wisconsin--Madison\nLines: 7\n\nJust as the title suggest, is it okay to do that?\nI havne't got DOS6 yet, but I heart DoubleSpace is less tight than stacker 3.0.\nWhat are disadvantage/advantages by doing that?\n\nAny comments will be appreciated.\n\n===Martin\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3149, "properties": {"category": "sci.med", "text": "From: johnf@HQ.Ileaf.COM (John Finlayson)\nSubject: Re: Exercise and Migraine\nNntp-Posting-Host: findog\nOrganization: Interleaf, Inc.\nLines: 49\n\nIn article <1993Apr15.163133.25634@ntmtv> janet@ntmtv.com (Janet Jakstys) writes:\n>               ... the other day I played tennis during my lunch\n>hour.  I'm out of tennis shape so it was very intense exercise.  I\n>got overheated, and dehydrated.  Afterwards, I noticed a tingling\n>sensation all over my head then about 2 hours later, I could feel\n>a migraine start.  (I continued to drink water in the afternoon.)\n>I took cafergot, but it didn't help and the pain started although\n>it wasn't as intense as it usually is and about 9pm that night, the\n>pain subsided.\n>\n>This isn't the first time that I've had a migraine occur after exercise.\n>I'm wondering if anyone else has had the same experience and I wonder\n>what triggers the migraine in this situation (heat buildup? dehydration?).\n>I'm not giving up tennis so is there anything I can do (besides get into \n>shape and don't play at high noon) to prevent this?\n\nHi Janet,\n\nSounds exactly like mine.  Same circumstance, same onset symptoms, \nsame cafergot uselessness, same duration.  In fact, of all the people\nI know who have migraines, none have been so similar.  There is such\na wide variation between people with respect to what causes their\nheadaches, that I generally don't bother sharing what I've learned\nabout mine, but since ours seem to be alike, here are my observations.\n\nI don't think it's heat, per se (I've had more in winter than summer).\nDehydration could conceivably figure, though.  Try tanking up before\nplaying rather than after.\n\nBeing in shape doesn't seem to help me much, either.\n\nI've identified four factors that do make a difference (listed in \ndescending order of importance):\n\n1) Heavy exercise\n2) Sleep deprivation\n3) Fasting\t\t(e.g., skipped breakfast)\n4) Physical trauma\t(e.g., head bonk)\n\nHeavy exercise has preceded all of my post-adolescent migraines, but I \ndon't get migraines after every heavy exercise session.  One or more of \nthe other factors *must* be present (usually #2).  Since I discovered \nthis, I've been nearly migraine-free -- relapsing only once every two \nor three years when I get cocky (\"It's been so long, maybe I just don't \nget them anymore\") and stop being careful.\n\nHope this is helpful.\n\nJohn.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3150, "properties": {"category": "talk.religion.misc", "text": "From: jburrill@boi.hp.com (Jim Burrill)\nSubject: Re: Is it good that Jesus died?\nOrganization: Idaho River Country, The Salmon, Payette, Clearwater, Boise, Selway, Priest\nX-Newsreader: TIN [version 1.1.8 PL6]\nLines: 35\n\nBrian Kendig (bskendig@netcom.com) wrote:\n: \n: Can you please point to something, anything, that proves to me that\n: the universe cannot possibly be explained without accepting as a fact\n: the existence of a god in precisely the way your holy book describes?\n: \n: Can you please convince me that your religion is more than a very\n: cleverly-constructed fable, and that it does indeed have some bearing\n: on my own personal day-to-day life?\n\nWould you consider the word of an eye-witness (Peter) to testify to the\nevents surrounding Jesus' life?\n\n\n 2Pe 1 16 \u00b6 We did not follow cleverly invented stories when we told you\n about the power and coming of our Lord Jesus Christ, but we were \n eyewitnesses of his majesty.\n\n 2Pe 1 17 For he received honor and glory from God the Father when the\n voice came to him from the Majestic Glory, saying, \"This is my Son, whom \n I love; with him I am well pleased.\"\u00b9\n\n 2Pe 1 18 We ourselves heard this voice that came from heaven when we\n were with him on the sacred mountain.\n\n 2Pe 1 19 \u00b6 And we have the word of the prophets made more certain, and\n you will do well to pay attention to it, as to a light shining in a dark\n place, until the day dawns and the morning star rises in your hearts.\n\nThis is a documented testimony. Perhaps further research on your part is\nwarranted before making more statements. There is considerably more to study\nin Peters' two books of testimony regarding the Messiah. It is well worth \nyour time, Mr. Brian.\n\nJim Burrill\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3151, "properties": {"category": "rec.motorcycles", "text": "From: egreen@east.sun.com (Ed Green - Pixel Cruncher)\nSubject: Re: Live Free, but Quietly, or Die\nOrganization: Sun Microsystems, RTP, NC\nLines: 30\nDistribution: world\nReply-To: egreen@east.sun.com\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article 5049@cvbnetPrime.COM, tjohnson@tazmanian.prime.com (Tod Johnson (617) 275-1800 x2317) writes:\n>\n>I was able to avoid an accident by revving my engine and having my\n>*stock* Harley pipes make enough noise to draw someones attention.\n>\n>Sure there are horns but my hand is already on the throttle. Should we\n>get into how many feet a bike going 55mph goes in .30 seconds; or\n>how long it would take me to push my horn button??\n\nIf we do, I think you'd loose.  Sure, you're hand's already on the\nthrottle.  And your thumb is already near the horn button.  Pushing the\nhorn button is one simple move.  Revving the throttle requires either\nengaging the clutch, or accelerating.  The first is a more complex\nmanuver than a simple horn button push, and the second ain't too bright\nwhen there is a potential hazard ahead.  Besides, the unique sound of a\nhorn is more effective in attracting the attention of BDI cagers than\nis the sound of an engine, which is what they expect to hear (you are\non the road!).\n\nAs is usually the case, a single anecdote hardly constitutes sound\nsafety procedure.\n\nThe answer is 161.33 feet.\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3152, "properties": {"category": "sci.med", "text": "From: jkjec@westminster.ac.uk (Shazad Barlas)\nSubject: NEED HELP ON SCARING PLEASE\nOrganization: University of Westminster\nDistribution: sci.med\nLines: 18\n\nHi...\n\nI need information on scaring. Particularly as a result of grazing the skin\nI really wanted to know of \n\n\t1. would a scar occur as a result of grazing\n\t2. if yes, then would it disappear?\n\t3. how long does a graze take to heal?\n\t4. will hair grow on it once it has healed?\n\t5. what is 'scar tissue'?\n\t6. should antiseptic cream be applied to it regularly?\n\t7. is it better to keep it exposed and let fresh air at it?\n\nPlease help - any info - no matter how small will be appreciated greatly. \n\nBUT PLEASE E-MAIL ME DIRECTLY because I dont read this newsgroup often (this\nis my first time).  \n  \t\t\t\t\t\t....Shaz....\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3153, "properties": {"category": "rec.autos", "text": "From: jtchew@csa3.lbl.gov (Ad absurdum per aspera)\nSubject: Re: It's a rush... (was Re: Too fast)\nOrganization: Lawrence Berkeley Laboratory - Berkeley, CA, USA\nLines: 40\nDistribution: usa\nNNTP-Posting-Host: 128.3.254.198\nNews-Software: VAX/VMS VNEWS 1.41    \n\nWharf Wrat rites:\n\n>They were designed for speeds of upwards of 80 - I forget the\n>exact spec - but for military vehicles.  That's 80 in a 1958 Dodge \n>Powerwagon.  Not 80 in a 1993 Ford Taurus.\n\nEver' once in a while, you still see a reference to the super-\nslab system as \"Interstate and Defense Highways.\"  But whether\nthe military has much of anything that goes 80 on the road is\nanother matter.  A few of their most whomped-up diesel trucks,\nmaybe, load permitting.  The military surplus stuff I've\ndriven -- \"Jeep Classic\" (Willys/Kaiser/AMC, pre-independent\nsuspension) and Power Wagons (Slant 6 in a crew-cab pickup)\nweren't exactly congenial at highway speeds, and I wouldn't\nswear any of them would do 80 except as a bedload on a semi.\n\nYou just gotta love the standard military tire, too, or at\nleast the one they used to use.  Designed circa WW II as a\ncompromise between traction in icky sticky goo and longevity\non sharp rocks and so forth, it's quite ill-adapted to high\nspeeds on civilian roadways.  For those who can't remember\nwhat they look like, imagine a mountain-bike tire with a\nroad rib in the middle, scaled up to car size. Oh, yeah, and\nnarrow too. One of the standard mods for civilizing a surplus \nJeep was to install tires and wheels that reflected some of\nthe advancements made in ride and handling since D-Day.\n\nBut the point made by Wharfie and others still stands:  if\nyou're going to do 80 in a mil-spec '58 Power Wagon (or a\nJeep or a tank transporter or other unwieldy rubber-tired\nvehicle) anywhere, I'd suggest the American interstate.  \nYour safe speed there tends to be limited more by your car\nand skills, road maintenance, and the swarms of fools around\nyou; the roads were designed for going like the devil.\n\nNaturally, neither I nor my employer advocates unsafe or\nunlawful driving.\n\n--Joe\n\"Just another personal opinion from the People's Republic of Berkeley\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3154, "properties": {"category": "sci.electronics", "text": "From: whit@carson.u.washington.edu (John Whitmore)\nSubject: Re: A question about 120VAC outlet wiring..\nKeywords: outlet\nArticle-I.D.: shelley.1qkm8iINN92t\nDistribution: world\nOrganization: University of Washington, Seattle\nLines: 34\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <1qids1INNebl@chnews.intel.com> crichmon@sedona.intel.com (Chris Richmond) writes:\n>\n>In article <1993Apr14.193122.20818@mprgate.mpr.ca>, vanderby@mprgate.mpr.ca (David Vanderbyl) writes:\n>> In article <1993Apr14.172145.27458@ecsvax.uncecs.edu>, crisp@ecsvax.uncecs.edu (Russ Crisp) writes:\n\n>> |> I'm considering modernizing some old wiring in my home, and\n>> |> I need a little advice on outlet wiring.  Several outlets\n>> |> are the old 'two prong' type, without the ground.  Naturally,\n>> |> the wire feeding these outlets is 12/2, WITHOUT the ground\n>> |> wire.  I noticed at the fusebox that some circuits have the\n>> |> 12/2 with ground, and that on these circuits, the ground\n>> |> wire was tied to the same bus as the neutral (white) wire.\n\n>> This is contrary to the electrical code and should be fixed.\n\n>Well, my house was built just last year, and the breaker box is wired the\n>same way.  \n\n\tThere SHOULD be a connection of the GROUND wire to a ground\nin the breaker box.  There also should be a connection of the NEUTRAL\nwire to a ground in the breaker box.  There should be no other \nplace in the building where such a connection occurs (i.e. not in\nany of the outlet boxes).\n\n\tThe NEUTRAL (white) wire is a 'grounding conductor' for\nthe plug, and is NOT safe to touch, while the GROUND (green)\nwire is a 'protective ground' and carries no current unless\nsome kind of electrical fault has occurred.  It's safe\nto touch the protective ground, but not to touch the \ngrounding conductor (because there is current in the grounding\nconductor, its outlet-box end will not be at the same ground\npotential as its breaker-box end).\n\n\tJohn Whitmore\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3155, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gmich@is.morgan.com (George Michaels)\nSubject: NTSC and th\nNntp-Posting-Host: idt114\nOrganization: Morgan Stanley & Company\nDistribution: comp\nLines: 0\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3156, "properties": {"category": "sci.space", "text": "From: lochem@fys.ruu.nl (Gert-Jan van Lochem)\nSubject: Dutch: symposium compacte objecten\nSummary: U wordt uitgenodigd voor het symposium compacte objecten 26-4-93\nKeywords: compacte objecten, symposium\nOrganization: Physics Department, University of Utrecht, The Netherlands\nLines: 122\n\nSterrenkundig symposium 'Compacte Objecten'\n                                             op 26 april 1993\n\n\nIn het jaar 1643, zeven jaar na de oprichting van de\nUniversiteit van Utrecht, benoemde de universiteit haar\neerste sterrenkundige waarnemer. Hiermee ontstond de tweede\nuniversiteitssterrenwacht ter wereld. Aert Jansz, de eerste\nwaarnemer, en zijn opvolgers voerden de Utrechtse sterrenkunde\nin de daaropvolgende jaren, decennia en eeuwen naar de\nvoorhoede van het astronomisch onderzoek. Dit jaar is het 350\njaar geleden dat deze historische benoeming plaatsvond.\n\nDe huidige generatie Utrechtse sterrenkundigen en studenten\nsterrenkunde, verenigd in het Sterrekundig Instituut Utrecht,\nvieren de benoeming van hun 'oervader' middels een breed scala\naan feestelijke activiteiten. Zo is er voor scholieren een\nplanetenproject, programmeert de Studium Generale een aantal\nvoordrachten met een sterrenkundig thema en wordt op de Dies\nNatalis aan een astronoom een eredoctoraat uitgereikt. Er\nstaat echter meer op stapel.\n\nStudenten natuur- en sterrenkunde kunnen op 26 april aan een\nsterrenkundesymposium deelnemen. De onderwerpen van het\nsymposium zijn opgebouwd rond een van de zwaartepunten van het\nhuidige Utrechtse onderzoek: het onderzoek aan de zogeheten\n'compacte objecten', de eindstadia in de evolutie van sterren.\nBij de samenstelling van het programma is getracht de\ndeelnemer een zo aktueel en breed mogelijk beeld te geven van\nde stand van zaken in het onderzoek aan deze eindstadia. In de\neerste, inleidende lezing zal dagvoorzitter prof. Lamers een\nbeknopt overzicht geven van de evolutie van zware sterren,\nwaarna de zeven overige sprekers in lezingen van telkens een\nhalf uur nader op de specifieke evolutionaire eindprodukten\nzullen ingaan. Na afloop van elke lezing is er gelegenheid tot\nhet stellen van vragen. Het dagprogramma staat afgedrukt op\neen apart vel.\nHet niveau van de lezingen is afgestemd op tweedejaars\nstudenten natuur- en sterrenkunde. OOK ANDERE BELANGSTELLENDEN\nZIJN VAN HARTE WELKOM!\n\nTijdens de lezing van prof. Kuijpers zullen, als alles goed\ngaat, de veertien radioteleskopen van de Radiosterrenwacht\nWesterbork worden ingezet om via een directe verbinding tussen\nhet heelal, Westerbork en Utrecht het zwakke radiosignaal van\neen snel roterende kosmische vuurtoren, een zogeheten pulsar,\nin de symposiumzaal door te geven en te audiovisualiseren.\nProf. Kuijpers zal de binnenkomende signalen (elkaar snel\nopvolgende scherp gepiekte pulsen radiostraling) bespreken en\ntrachten te verklaren.\nHet slagen van dit unieke experiment staat en valt met de\ntechnische haalbaarheid ervan. De op te vangen signalen zijn\nnamelijk zo zwak, dat pas na een waarnemingsperiode van 10\nmiljoen jaar genoeg energie is opgevangen om een lamp van 30\nWatt een seconde te laten branden! Tijdens het symposium zal\ner niet zo lang gewacht hoeven te worden: de hedendaagse\ntechnologie stelt ons in staat live het heelal te beluisteren.\n\nDeelname aan het symposium kost f 4,- (exclusief lunch) en\nf 16,- (inclusief lunch). Inschrijving geschiedt door het\nverschuldigde bedrag over te maken op ABN-AMRO rekening\n44.46.97.713 t.n.v. stichting 350 JUS. Het gironummer van de\nABN-AMRO bank Utrecht is 2900. Bij de inschrijving dient te\nworden aangegeven of men lid is van de NNV. Na inschrijving\nwordt de symposiummap toegestuurd. Bij inschrijving na\n31 maart vervalt de mogelijkheid een lunch te reserveren.\n\nHet symposium vindt plaats in Transitorium I,\nUniversiteit Utrecht.\n\nVoor meer informatie over het symposium kan men terecht bij\nHenrik Spoon, p/a S.R.O.N., Sorbonnelaan 2, 3584 CA Utrecht.\nTel.: 030-535722. E-mail: henriks@sron.ruu.nl.\n\n\n\n******* DAGPROGRAMMA **************************************\n\n\n 9:30   ONTVANGST MET KOFFIE & THEE\n\n10:00   Opening\n           Prof. dr. H.J.G.L.M. Lamers (Utrecht)\n\n10:10   Dubbelster evolutie\n           Prof. dr. H.J.G.L.M. Lamers\n\n10:25   Radiopulsars\n           Prof. dr. J.M.E. Kuijpers (Utrecht)\n\n11:00   Pulsars in dubbelster systemen\n           Prof. dr. F. Verbunt (Utrecht)\n\n11:50   Massa & straal van neutronensterren\n           Prof. dr. J. van Paradijs (Amsterdam)\n\n12:25   Theorie van accretieschijven\n           Drs. R.F. van Oss (Utrecht)\n\n13:00   LUNCH\n\n14:00   Hoe zien accretieschijven er werkelijk uit?\n           Dr. R.G.M. Rutten (Amsterdam)\n\n14:35   Snelle fluktuaties bij accretie op neutronensterren\n        en zwarte gaten\n           Dr. M. van der Klis (Amsterdam)\n\n15:10   THEE & KOFFIE\n\n15:30   Zwarte gaten: knippen en plakken met ruimte en tijd\n           Prof. dr. V. Icke (leiden)\n\n16:05   afsluiting\n\n16:25   BORREL\n\n-- \nGert-Jan van Lochem\t     \\\\\t\t\"What is it?\"\nFysische informatica\t      \\\\\t\"Something blue\"\nUniversiteit Utrecht           \\\\\t\"Shapes, I need shapes!\"\n030-532803\t\t\t\\\\\t\t\t- HHGG -\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3157, "properties": {"category": "talk.politics.guns", "text": "From: hrubin@pop.stat.purdue.edu (Herman Rubin)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: Purdue University Statistics Department\nLines: 18\n\nIn article <1993Apr20.003522.22480@midway.uchicago.edu> thf2@midway.uchicago.edu writes:\n>In article <1qvfik$6rf@usenet.INS.CWRU.Edu> cj195@cleveland.Freenet.Edu (John W. Redelfs) writes:\n>>Now that Big Brother has rubbed out one minority religion in Waco, who is\n>>next?  The Mormons or Jews?\n\n>The Koreshians rubbed themselves out.  Neither Mormons nor Jews have a\n>propensity for dousing themselves with kerosene, so I'm not particularly\n>concerned.  (Or shall we blame Jim Jones on the government also?)\n\nI believe we still remember Masada, where Jews killed themselves rather\nthan being captured by the Romans.  While I do not agree with the\nDavidians, I must admire their willingness to die for what they \nbelieved, which Jews have had to do often.\n-- \nHerman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907-1399\nPhone: (317)494-6054\nhrubin@snap.stat.purdue.edu (Internet, bitnet)  \n{purdue,pur-ee}!snap.stat!hrubin(UUCP)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3158, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nOrganization: U of Toronto Zoology\nLines: 15\n\nIn article <1993Apr20.101044.2291@iti.org> aws@iti.org (Allen W. Sherzer) writes:\n>This prize isn't big enough to warrent developing a SSTO, but it is\n>enough to do it if the vehicle exists.\n\nActually, there are people who will tell you that it *would* be enough\nto do SSTO development, if done privately as a cut-rate operation.  Of\ncourse, they may be over-optimistic.\n\nYou can also assume that a working SSTO would have other applications\nthat would help pay for its development costs.\n\nI'd be inclined to make the prize somewhat larger, but $1G might be enough.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.144+0000", "event": "documents", "entityId": 3159, "properties": {"category": "talk.politics.guns", "text": "From: rats@cbnewsc.cb.att.com (Morris the Cat)\nSubject: Vancouver/Seattle Study Critiques\nOrganization: AT&T\nDistribution: usa\nLines: 360\n\n\n----------------------------------------------------------------------\nOpen letter by Dr. Paul H. Blackman, Research Coordinator for\nNRA-ILA. NRA Official Journal 1/89.\n-----------------------------------------------------------------------\n\nDear sir:\n\nBy now, we are used to the New England Journal of Medicine's publication\nof small-scale studies related to firearms from which conclusions are\ndrawn which are quantum leaps from the data, followed by announcements of \nmomentus \"scientific\" findings. These are regularly released to the press\nwithout the caveats which riddle the conclusory paragraphs, and\noften accompanied by an editorial calling attention to the findings.\nGenerally, while they at least present a few interesting data, however\nmeaningless, the studies misinterpret statistics, and ignore or belittle\nserious studies by criminologists.\n\nThe latest effort -- \"Handgun Regulations, Crime, Assaults, and Homicide:\nA Tale of Two Cities,\" by J.H. Sloan, et al., with the accompanying \neditorial, \"Firearms Injuries: A Call for Science,\" by two employees\nof the Centers for Disease Control (November 10), however, is an insult\nto the intelligence of any serious scholar in any field and have so few\ndata and so many flaws that I feel compelled to write at some length\nto call attention to various major and minor failings, in no particular\norder.\n\n\t1. The authors misleadingly cite Wright, et al. (Ref. 1) to \n\tsupport the statement that \"some have argued that restricting\n\taccess to handguns could substantially reduce our annual rate\n\tof homicide.\" Wright, et al., in fact studied and rejected that\n\tcontention.\n\t\n\t2. The authors pretended that Vancouver and Seattle are very\n\tsimilar cities with similar economic circumstances, histories,\n\tdemographic characteristics, and the like. In fact, the cities\n\tare very different with very different demographic characteristics\n\twhich appear to explain completely the higher homicide rate in\n\tSeattle. Both cities are over three-forths non-Hispanic white\n\tand *the non-Hispanic white homicide rates are reported to be\n\tthe same in Seattle and Vancouver*. It is the different back-\n\tgrounds, problems, circumstances, and behaviors of the various\n\tethnic minorities which explain the difference in homicide.\n\t\n\t3. The authors pretend they are evaluating Canada's gun law,\n\tcompared to Washington State's. But they do not examine at all\n\tthe situation in Vancouver prior to the gun law taking effect\n\tin 1978. As it happens, in the three years prior to that (1975-\n\t1977), Vancouver averaged 23 homicides per year, one-eighth\n\tinvolving handguns, (Ref. 2) and in the seven years of the NEJM\n\tarticle there were 29 homicides per year, one-eigth involving\n\thandguns. Surely even the medical profession recognizes that\n\tone must look to see the prior situation was before concluding\n\tthat a change made a difference? Would a physician conclude that\n\ta patient was benefiting from eating oat bran muffin each day\n\tfor seven years because his cholesterol level was 200 without\n\tat least seeing if it was 180 before he started the regimen?\n\t\n\t4. The authors pick two medium-sized cities to evaluate a national\n\tgun law. Nothing can be learned from such a tiny and arbitrarily\n\tselected sample. Seattle appears to have been selected because\n\tit was convienient for the authors rather than for any scientific\n\treason. Would physicians call something a scientific study which\n\tinvolved one experimental subject and one dissimilar \"control\"?\n\tHad different arbitrarily selected cities been chosen, opposite\n\t\"scientific\" conclusions would follow: Vancouver's homicide\n\trate *exceeds* that of such \"wild west\" cities in Texas as\n\tEl Paso, Corpus Christi, Austen, and, in Colorado, Colorado\n\tSprings. (Ref. 3)\n\t\n\t5. The authors fail to clearly demonstrate that firearms or\n\thandguns \"are far more commonly owned in Seattle than in\n\tVancouver.\" They use two surrogate approaches in pretending\n\tto study the availability of firearms/handguns. The first is\n\tan apples-and-oranges effort to compare the number of carry\n\tpermits in Seattle to the number of registered handguns in\n\tVancouver. But the number clearly understates the number of\n\thandguns in Seattle, and counts primarily *protective* handgun\n\towners. The second, however, tells nothing about the number\n\tof handguns in Vancouver, and counts *non-protective* handguns\n\tfor the most part. Where is it difficult to obtain handguns\n\tlegally for protection, registration figures are\n\tmeaningless. There are 66,000 registered handguns in New York\n\tCity (New York Daily News, Sept. 27, 1987). Comparing the two,\n\tthat method suggests about 930 handguns per 100,000 population\n\tin New York City compared to 960 in Vancouver, meaning Vancouver\n\thas a greater \"prevalence of weapons\" than New York City.\n\t\n\tThe second method of measuring gun density is \"Cook's gun\n\tprevalence index, a previously validated measure of intercity\n\tdifferences.\" But the validation was by Cook of his own\n\ttheory. (Ref. 4) Normally, second opinions are sought from a\n\tdifferent doctor. More significantly, the Cook index is\n\tbased on the average of the percentage of firearms involvement\n\tin suicide and homicide. So the authors are basically taking\n\ta measure of misuse. Unsurprisingly, gun misuse in homicide\n\t(42% in Seattle, 14% in Vancouver) is related to gun misuse in\n\thomicide plus suicide, divided by two (41% in Seattle, 12% in\n\tVancouver). The authors are not measuring the relative avail-\n\tability of firearms, or of handguns, in Seattle and\n\tVancouver.\n\t\n\t6. The authors misstate the laws of both Washington and\n\tCanada. They neglect to mention the significant fact that\n\tWashington has a waiting period and background check prior to\n\tthe purchase of a handgun, and that provisions exist in Canadian\n\tlaw for owning and carrying handguns for personal\n\tprotection. The authors also make it appear that it is more\n\tdifficult to get a handgun legally in Canada than is actually\n\tthe case.\n\t\n\t7. The authors ignore all other factors which might explain\n\tthe differences in crime rate, beyond some vague mention of the\n\tpenalities provided by law and the roughest of estimates of \n\tclearence for one particular offense -- homicide involving a\n\tfirearm. There is no measure of: the differences in the number\n\tof law enforcement officers; their aggressiveness in making\n\tarrests for gun law violations in the two jurisdictions; arrest\n\trates for other offenses; conviction rates; actual sentences\n\timposed for gun-related crimes, violent crimes without guns,\n\tor gun law violations; or incarceration rates. Whereas social\n\tscientists would attempt to measure and hold for such differences,\n\tthe authors of the NEJM \"tale of two cities\" fail even to mention\n\tmost factors related to crime control.\n\t\n\t8. The authors dismiss claims that handguns are an effective\n\tmeans for protection unless the criminal is killed. Such is not\n\tthe case. Criminologists (Ref. 5-8) have found that almost\n\t650,000 Americans annually use handguns for protection from\n\tcriminals, and that using a gun for protection reduces the\n\tliklihood that a crime -- rape, robbery, assault -- will be\n\tcompleted by the criminal and reduces the likelihood of injury\n\tto the victim. It is interesting, nonetheless, that the authors\n\treported the same number (four) of civilian justifiable homicides\n\twithout firearms in each city but that less restrictive Seattle\n\taccounted for 100% of the reported civilian justifiable homicides\n\tinvolving firearms.\n\t\n\t9. The Centers for Disease Control, which funded the \"study,\"\n\teditorially praised the paper, (Ref. 9) saying it \"applied\n\tscientific methods to examine a focus of contention betweeb\n\tadvocates of stricter regulation of firearms, particularly\n\thandguns.\" There is nothing in the paper which could possibly\n\tbe mistaken for \"scientific methods\" by a sociologists or\n\tcriminologists. The Vancouver-Seattle \"study\" is the equivolent\n\tof testing an experimental drug to control hypertension by finding\n\ttwo ordinary-looking middle-class white males, one aged 25\n\tand the other 40, and without first taking their vital signs,\n\tadministering the experimental drug to the 25-year-old while\n\tgiving the 40-year-old a placebo, then taking their blood pressure\n\tand, on finding the younger man had a lower blood pressure, \n\tannouncing in a \"special article\" a new medical breakthrough.\n\tIt would be nice to think that such a \"study\" would neither be\n\tfunded by the CDC or printed by the NEJM.\n\t\n\tSince the longstanding anti-gun biases of the NEJM and the CDC\n\tmake them willing to present shoddy research as \"scientific\n\tbreakthroughs\" in \"special articles\" and editorials relating\n\tto firearms, we are obligated to correct the record by notifying\n\tthe news media and those with congressional and executive oversight\n\tover the activities of the Centers for Disease Control about\n\tthe distortions contained in \"Handgun Regulations, Crime, Assaults,\n\tand Homicides: A Tale of Two Cities\" and \"Firearm Injuries: A Call\n\tfor Science.\" Clearly, all scientific standards go by the wayside\n\twhenever the CDC and the New England Journal of Medicine seize\n\tan opportunity to attack firearms ownership in America.\n\t\n\t\t\t\tREFERENCES\n\n1. Wright JD, et al, *Weapons, crime and violence in America*: a literature\nreview and research agenda, Washington, D.C.: Department of Justice,\n1981.\n\n2. Scarff E. *Evaluation of the Canadian gun control legislation*: final\nreport. Ottawa: Ministry of the Solicitor General of Canada, 1983,\np. 87.\n\n3. Department of Justice, Federal Bureau of Investigation, *Crime in\nthe United States*, 1987 (Uniform Crime Reports). Washington, D.C.:\nGovernment Printing Office, 1988\n\n4. Cook PJ. *The role of firearms in violent crime*. In: Wolfgang M.\nWeiner NA, eds. *Criminal violence*, Beverly Hills, Calif.: Sage, 1982:\n236-90, pp. 270-271.\n\n5. Kleck G. *Crime control through the private use of armed force*.\nSocial Problems 1988: 35:1-21.\n\n6. Ziegenhagen EA, Brosnan D. *Victim responses to robbery and crime\ncontrol policy*. Criminology. 1985: 23:675-695.\n\n7. Lizotte AJ. *Determinants of completeing rape and assault*. Journal\nof Quantitative Criminology. 1986: 2:203-217.\n\n8. Sayles SL, Kleck G. *Rape and resistance*. Paper at the American Society\nof Criminology convention, Chicago, 1988.\n\n9. Mercy JA, Houk VN. *Firearm injuries: a call for science*. \nNEJM: 319:1283-1285.\n==========================================================================\n\n                             GUNS AND SPUTTER\n                            by James D. Wright\n          (from July 1989 issue of REASON, Free Minds & Free Markets)\n\n      Someone once wrote: \"Statistics are like a bikini.  What they real is\n   suggestive, but what they conceal is vital.\"  The problem is demonstrated\n   by the most recent entry in a long line of scientific research purporting\n   to show a causal link between gun availability and homicide.  Funded by\n   the federal government and published last year in the New England Journal\n   of Medicine, the study compared homicide rates in Seattle and Vancouver and\n   suggested that a handgun ban \"may reduce the rate of homicide in a \n   community.\"\n      The nine medical doctors who published \"Handgun Regulations, Crime,\n   Assaults, and Homicide\" essentially reasoned in three steps: (1) Despite\n   many historical, social, and demographic similarities, (2) Vancouver\n   has a markedly lower homicide rate (3) because its stricter gun regulations\n   make guns less available.  The second step in their reasoning seems\n   indisputable.  The overall homicide rate in Seattle (for the period\n   1980-86) was 11.3 per 100,000 popuation, compared with 6.9 in Vancouver.\n   Homicide is definitely more common in Seattle.  The question then becomes,\n   Why?\n      The authors present a believable although not entirely accurate case\n   to support the notion, as claimed in the third step of their reasoning,\n   that Vancouver's handgun regulations are much more stringent.  But their\n   evidence on the difference in gun *availabilty* is indirect and \n   unpersuasive; indeed, they acknowledge that direct evidence on the point\n   does not exist.  They offer two fragments of inferential data in support\n   of the claim that guns are more available in Seattle; but for all anybody\n   knows as a matter of empirical fact, the opposite could be true.  We\n   are therefore being asked, at the conclusion of the study, to believe that\n   a difference in gun availability explains the difference in homicide rates\n   when a difference in gun availability has not itself been established.\n      Indeed, the situation is even more troublesome.  The first of the two\n   indirect bits of evidence is a difference between the number of concealed-\n   weapons permits issued in Seattle and the number of restricted-weapons\n   permits issued in Vancouver.  Differences between the two cities in the\n   permit regulations render these two numbers strictly noncomparable.\n*     The second bit of evidence is \"Cook's gun prevalence index,\" which stands\n*  at 41 percent for Seattle but only 12 percent for Vancouver.  Cook's index\n*  however, does not measure the relative prevalence of gun ownership in \n*  various cities.  It measures gun misuse--it is an average of the percentage\n*  of homicides and suicides involving firearms.\n*     In the present case, the index shows only that in homicides and suicides,\n*  firearms are more likely to be used in Seatte than in Vancouver.  To take\n*  Cook's index as a measure of general firearms availability, it must be\n*  assumed that the proportional involvement of guns in homicides and suicides\n*  is directly related to their relative availability in the general \n*  population.  But this is exactly what the authors are seeking to prove. To\n*  assume what one is seeking to prove, then to \"prove\" it on the basis of\n*  that assumption does ot constitute scientific evidence for anything.\n      Even if we were to grant, on the basis of no compelling evidence, that\n   guns are less common in Vancouver, we might still question what causes what.\n   The authors attribute Seattle's higher crime rate to a higher rate of gun\n   ownership.  But it might well be argued that low crime or homicide rates\n   reduce the motivation for average citizens to obtain guns--in other words,\n   that crime rates explain the variation in gun ownership, not vice versa.\n      In fact, it was once commonly argued that Great Britain's low rate of\n   violent crime was a function of that nation's strict gun laws and the \n   consequent low rate of gun ownership--until British researcher Colin \n   Greenwood found that Great Britain had enjoyed low rates of violent crime\n   for many decades before strict firearms controls were enacted.  To invoke\n   an ancient methodological saw, correlation is not cause.\n      Nor do the problems with this study end with its lack of direct data\n   on gun ownership.  The authors say Seattle and Vancouver are \"similar in\n   many ways,\" implying that they differ mainly in gun availability, gun-law\n   stringency, and crime rates.  This is an evident attempt to establish\n   the ceteris paribus condition of a sound scientific analysis--that \"all\n   else is equal\" among things being compared.\n*     Clearly the two cities are similar in some ways, but a closer look \n*  reveals differences in ways that are relevant to their respective crime\n*  or homicide rates.  The cities are closely matched in what percentage\n*  of their population is white (79 percent and 76 percent).  But Seattle\n*  is about 10 percent black, while Vancouver is less than 0.5 percent.\n*  Vancouver's minority population is overwhelmingly Asian.  So although the\n*  authors show that th two cities are approximately comparable on a half-\n*  dozen readily available demographic indicators, they have not shown\n*  that all potentially relevant sources of variation have been ruled out.\n*     In fact, the differences in racial compositions of the two cities is\n*  particularly relevant in light of the study's breakdown of homicide rates\n*  according to the race of the victim.  For the white majority, the homicide\n*  rates are nearly identical--6.2 per 100,000 in Seattle, 6.4 in Vancouver.\n*  The differing overall homicide rates in the two cities are therefore due\n*  entirely to vastly different rates among racial minorities.  For blacks,\n*  the observed difference in homicide rate is 36.6 to 9.5 and for Hispanics\n*  26.9 to 7.9.  (Methodoligical complexities render the Asian comparison\n*  problematic, but it too is higher in Seattle than in Vancouver.)  Racial\n*  minorities are much more likely to be the victims of homicide in Seattle\n*  than in Vancouver; the white majority is equally likely to be slain\n*  in either city.\n      Since the nearly 2:1 initial difference in homicide reates between the\n   cities is due exclusively to 3:1 or 4:1 differences between minority \n   groups, it is fair to ask why postulated difference in \"gun availability\"\n   (or gun-law strigency) would matter so dramatically to minorities but not\n   matter at all to whites.  Can differential gun availability explain why\n   blacks and Hispanics--but not whites--are so much more likely to be killed\n   in Seattle than in Vancouver?  (Studies in the United States, incidentally,\n   do not show large or consistent racial differences in gun ownership.)\n      Or are other explanations more plausible?  Could the disparity between\n   Canadian and American rates of poverty among racial minorities have \n   anything to do with it?  What are the relative rates of drug or alcohol \n   abuse?  Of homelessness among each cty's minority population?  (The city\n   of Seattle runs the largest shelter for homeless men west of the \n   Mississippi.)  Unemployment among young, central-city, nonwhite men in the\n   United States usually exceeds 40 percent.  What is the comparable Canadian\n   percentage?\n      The crucial point is that Canada and the United States differ in many\n   ways, as do cities and population subgroups with the two countries.  Absent\n   more detailed analysis, nearly any of these \"many ways\" might explain part\n   or all of the difference in homicide rates.  In gross comparisons such\n   as those between Seattle and Vancouver, all else is *not* equal.\n*     The authors of this study acknowledge that racial patterns in homicide\n*  result in a \"complex picture.\"  They do not acknowledge that the ensuing\n*  complexities seriously undercut the main thrust of their argument.  They\n*  also acknowledge that \"socio-economic status is probably an important\n*  confounding factor in our comparison,\" remarking further that \"blacks   \n*  in Vancouver had a slightly higher mean income in 1981 than the rest of\n*  Vancouver's population.\"  Given the evidence presented in the article,\n*  it is possible that all of the difference in homicide rates between Seattle\n*  and Vancouver results from greater proverty among Seattle's racial\n*  minorities.  But the authors pay no further attention to this possibility,\n*  since \"detailed information about household incomes according to race\n*  is not available for Vancouver.\"\n      The largely insurmountable methodological difficulties confronted in \n   gross comparative studies of this sort can be illustrated with as simple\n   example.  If one were to take all U.S. couties and compare them in terms\n   of (1) pervalence of gun ownership and (2) crime or homicide rates, one \n   would find an astonishing pattern: Counties with more guns have less crime.\n   Would one conclude from this evidence alone that guns actually reduce \n   crime?  Or would one insist that other variables also be taken into\n   account?  In this example, the \"hidden variable\" is city size: Guns are\n   more common in small towns and rural areas, whereas crime is a big-city\n   problem.  If researchers failed to anticipate this variable, or lacked the\n   appropriate data to examine its possible consequences, they coud be very\n   seriously misled.  In the study at hand, the authors matched two cities\n   for size but not for minority poverty rates or other hidden variables,\n   and their results are impossible to interpret.\n      In the editorial \"Firearm Injuries: A Call for Science\" accompanying\n   the study, two officials from the Centers for Disease Control lauded the\n   authors for applying \"scientific methods\" to a problem of grave public\n   heath significance.  But in attempting to draw causal conclusions from\n   nonexperimental research, the essence of scientific method is to anticipate\n   plausible alternative explanations for the results and try to rule them\n   out.  Absent such effort, the results may well seem scientific but are\n   little more than polemics masquerading as serious research.  That this\n   study is but one of a number of recent efforts--all employing practical\n   identical research designs and published in leading scientific journals--\n   is cause for further concern.\n\n   [James D. Wright is professor of sociology at Tulane University.  He has\n   researched extensively on the relationship of firearms and crime.]\n\nReason published monthly except combined August-September issue by the Reason\nFoundation, a nonprofit, tax-exempt organization.  Subscription rate: $24.00 \nper year.\n\nReason Foundation\n2716 Ocean Park Blvd.\nSuite 1062\nSanta Monica, CA  90405\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3160, "properties": {"category": "comp.os.ms-windows.misc", "text": "Organization: Arizona State University\nFrom: James Cassidy <IFJXC@ASUACAD.BITNET>\nSubject:    Norton Desktop Smartcan vs. Norton Util's EP\nLines: 22\n\nI just purchased The Norton Desktop for windows, and I also have\nNorton Utilities.  When I installed NDW, it wanted to rem out the line\nthat installed EP (EP /ON) and the command to invoke the Image utility.\nIt replaced the Image command with a new image command that invokes the\nversion of Image that came with NDW.  This makes sense, as presumably the\nImage version with NDW is newer than the one with NU.  It did not, however,\ninstall smartcan in the autoexec.  Now two questions:\n   1:  Will NU use the image data saved by the newer version of image invoked.\n       i.e. Are the two version of Image compatable?\n   2:  Will erase protect use the info from smartcan, and vice versa?\n       I use both dos and windows, and I want to make sure that when I\n       erase files in either environment, they are going to be protected.\n\nFrom the experiments I have run, The two programs (Erase Protect and\nsmart Erase) don't use each others info.\nI currently have both EP and smartcan loading within my autoexec, and\nI don't see any conflicts;\n\nFYI :  Norton Desktop for Windows version 2.2\n       Norton Util's version 6\n\nThanks for any help.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3161, "properties": {"category": "sci.crypt", "text": "From: gthomas@fraser.sfu.ca (Guy Thomas)\nSubject: Re: What is going on?...\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nDistribution: inet\nLines: 13\n\nzrepachol@cc.curtin.edu.au (Paul Repacholi) writes:\n\n>In article <1993Apr16.055100.1@cc.curtin.edu.au>, zrepachol@cc.curtin.edu.au (Paul Repacholi) writes:\n>...\n>> If you can't be bothered reading, get the video \"Manufacturing Consent\".\n>> \n\n>In reply to mail queries; I don't know if a video is available yet. I asked\n>about a month ao and was told RSN.\n\nYes it is. From the National Film Board of Canada.\nGuy\ngthomas@native-ed.bc.ca\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3162, "properties": {"category": "misc.forsale", "text": "Subject: WIN/DOS Misc. Software\nFrom: michael.leonard@exchange.wyvern.com (Michael Leonard)\nDistribution: world\nOrganization: EXCHANGE BBS *21 Nodes*  Tidewaters \"Window to the World\" 14.4bis (804)552-1010\nLines: 75\n\n                  Help me make money for a new modem\n                         $180.00 takes it ALL\n\n              ***** SHIPPING NOT INCLUDED IN PRICE *****\n\n  *   All original documentation & disks are include.\n      Some software unregistered, others will have letter for transfer\n      of ownership.\n\n  *   Will sell software seperately, purchase must be greater than\n      $30.00.\n\n  *   Purchases over $60.00 get choice of two (2) software selections\n      with \"*\" footnote\n\n  W - Windows 3.x version\n  D - DOS version\n  R - Registered (letter of transfer)\n  U - Unregistered\n  * - Special offer\n\nMS Windows 3.0\nMS Windows 3.0 Resource Kit (bound ed.). . . . . . . . . . $ 15.00 WR\n\nNorton Desktop for Windows 1.0. . . . . . . . . . . . . . .$ 15.00 WR\n\nMS Excel 4.0. . . . . . . . . . . . . . . . . . . . . . . .$ 70.00 WR\n   Gateway 2000 version (all docs & disks MS)\n   This is the real thing, it only shipped\n   with my computer!!\n\nMicroCourier 1.0. . . . . . . . . . . . . . . . . . . . . .$ 15.00 WU\n   Communucations software\n\nMS Entertainment Pack I. . . . . . . . . . . . . . . . . . $ 10.00*WR\n\nMicroProse's Gunship 2000 (VGA only). . . . . . . . . . . .$ 20.00 DU\n\nLinks 386-PRO. . . . . . . . . . . . . . . . . . . . . . . $ 25.00 DR\n   Includes Bountiful Golf Course\n\nWing Commander II\n(Vengeance of the Kilrathi!). . . . . . . . . . . . . . . .$ 20.00 DR\n\nF-15 Strike Eagle II. . . . . . . . . . . . . . . . . . . .$ 10.00*DR\n\nRisk (EGA). . . . . . . . . . . . . . . . . . . . . . . . .$  8.00*DU\n\nEasyFlow 6.0. . . . . . . . . . . . . . . . . . . . . . . .$ 35.00 DU\n   Brand new - Never used\n\nQuicken 4.0. . . . . . . . . . . . . . . . . . . . . . . . $ 15.00 DR\n\nFranklin Language Master. . . . . . . . . . . . . . . . . .$ 10.00*DR\n    Not a spell checker, but a dictionary\n    TSR that pops up for any DOS app.\n    Each word has direct link to the thesaurus\n\nIBM DOS 4.00. . . . . . . . . . . . . . . . . . . . . . . .$ 10.00*DR\n\n                                            TOTAL. . . . . $313.00\n                                          - DISCOUNT. . . .$133.00\n                                                           -------\n                                            YOUR COST. . . $180.00\n\n\n\n\n\nCall Michael @ (804) 486-7018 any day between 10a & 10p est. or leave\nE-mail.  Thanks!\n\n                                                                                                                    \n---\n\u00fe VbReader V1.4 \u00fe*** BUSH Presidency ABORTED - RECOVERY Hopeful!!! ***\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3163, "properties": {"category": "talk.politics.guns", "text": "From: robs@bcstec.ca.boeing.com (Robert Sipe)\nSubject: Senator Patty Murrey's tax proposal\nOrganization: Boeing\nLines: 19\n\n   If you haven't heard yet, US Senator Patty Murrey, a Mom in\ntennis shoes, is planning to introduce legislation to tax\nall handgun transactions and increase dealer licnese costs in\norder to raise money to cover the costs of un-insured shooting\nvictums.  She plans to start with $2500.00 per year dealer fees\nand $40.00 or so, depending on the type of firearm, per gun\ntransaction.  She plans to make it federal.\n   She was elected in Washington state under the trade mark as\njust a mom in tennis shoes.  She can be written to via the\nUnited States Senate, Washinton DC.  She is looking for your\ntennis shoes.  So if you have a pair please send them to her\nwith your feelings regarding this tax.  \n   She claims she has heard little from the opposition.\n\nLets inundate her!\n\n\n-- \nBIGOT!  The definition of a bigot is a conservative winning an argument!\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3164, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: islamic authority over women\nOrganization: Cookamunga Tourist Bureau\nLines: 21\n\nIn article <1993Apr19.120352.1574@monu6.cc.monash.edu.au>,\ndarice@yoyo.cc.monash.edu.au (Fred Rice) wrote:\n>> The problem with your argument is that you do not _know_ who is a _real_\n> believer and who may be \"faking it\".  This is something known only by\n> the person him/herself (and God).  Your assumption that anyone who\n> _claims_ to be a \"believer\" _is_ a \"believer\" is not necessarily true.\n\nSo that still leaves the door totally open for Khomeini, Hussein\net rest. They could still be considered true Muslims, and you can't\njudge them, because this is something between God and the person.\n\nYou have to apply your rule as well with atheists/agnostics, you\ndon't know their belief, this is something between them and God.\n\nSo why the hoopla about Khomeini not being a real Muslim, and the\nhoopla about atheists being not real human beings?\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3165, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon Wtte)\nSubject: Re: Increasing the number of Serial ports\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 29\nNntp-Posting-Host: hemul.nada.kth.se\n\nIn <1993Apr18.134943.16479@bmers95.bnr.ca> slang@bnr.ca (Steven Langlois) writes:\n\n>If such a device exists, are there are any limits to the number of\n>serial devices I can use?\n\nHow many NuBus slots do you have?\n\nApplied Engineering has something called the QuadraLink, which is\na card with 4 serial ports that you get at through the comms\ntoolbox (in addition to the built-in ones) It also comes with\nsoftware for fooling applications to open an AE port when they\nthink they open a built-in port.\n\nThey also have a more expensive card with DMA (better performance)\nand I _think_ they, or someone else, have a card that handles\n8 ports simultaneously.\n\nAs I said, with NuBus, you're green. Learn how to use the Comms\nResource Manager to get at the various installed cards.\n\nCheers,\n\n\t\t\t\t\t/ h+\n \n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n  \"You NEVER hide the menu bar. You might go about and change the color\n  of it to the color of the BACKGROUND, but you never HIDE the menu bar.\"\n                      -- Tog\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3166, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: IDE & MFM in same machine?  HOW?\nFrom: lynn@vax1.mankato.msus.edu\nOrganization: Mankato State University\nLines: 16\n\nIf anyone out there can help, I would greatly appreciate it.\n\nThis christmas, I built a computer out of used parts for my Father-in-law.\nThe disk drive that I installed was a Seagate 251-1 MFM.  Anyway, he now he\nwould like to put another HD into this system.  I DON'T want to buy another\nMFM, the only reason why I used an MFM in the first place is that it was\nFREE.  Would I need a special IDE HD controller?  Also, if I do need a \nspecial IDE controller, where can I purchase one, & how much are they?\n\nPlease send any responses to:\nlynn@vax1.mankato.msus.edu\n\n\n\t\t\t\t\tThanks in advance,\n\n\t\t\t\t\tStan Tyree\t\t\t\t\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3167, "properties": {"category": "soc.religion.christian", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Some questions from a new Christian\nOrganization: Florida State University\nLines: 27\n\n18669@bach.udel.edu (Steven R Hoskins) writes:\n\n> ... I realize I am very ignorant about much of the Bible and\n> quite possibly about what Christians should hold as true. This I am trying\n> to rectify (by reading the Bible of course), but it would be helpful\n> to also read a good interpretation/commentary on the Bible or other\n> relevant aspects of the Christian faith. One of my questions I would\n> like to ask is - Can anyone recommend a good reading list of theological\n> works intended for a lay person?\n\nI won't even recommend books from my congregation.  What you ask sounds\nattractive but it is dangerous.  As a new Christian you don't want to be\ncontaminated with other people's interpretation.  Steep your self in\nscripture, and discuss with other christians.  Read if your must but\nremember that what other people write is their interpretation.  God has\npromised to give you light, so ask for it.\n\n> I have another question I would like to ask. I am not yet affiliated\n> with any one congregation. Aside from matters of taste, what criteria\n> should one use in choosing a church? I don't really know the difference\n> between the various Protestant denominations.\n\n\nDon't wait too long before attaching yourself to church.  Just remember to\nalways compare what they teach you with scripture like the Bereans did.\n\nDarius\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3168, "properties": {"category": "rec.motorcycles", "text": "From: rbemben@timewarp.prime.com (Rich Bemben)\nSubject: Re: Riceburner Respect\nExpires: 15 May 93 05:00:00 GMT\nOrganization: Computervision Corp., Bedford, Ma.\nLines: 19\n\nIn article <1993Apr9.172953.12408@cbnewsm.cb.att.com> shz@mare.att.com (Keeper of the 'Tude) writes:\n>The rider (pilot?) of practically every riceburner I've passed recently\n>has waved to me and I'm wondering if it will last.  Could they simply be \n>overexuberant that their 'burners have been removed from winter moth-balls \n>and the novelty will soon dissipate?  Perhaps the gray beard that sprouted\n>since the last rice season makes them think I'm a friendly old fart that\n>deserves a wave...\n\nMaybe...then again did you get rid of that H/D of yorn and buy a rice rocket \nof your own?  That would certainly explain the friendliness...unless you \nmaybe had a piece of toilet paper stuck on the bottom of your boot...8-).\n\nRich\n\n\nRich Bemben - DoD #0044                     rbemben@timewarp.prime.com\n1977 750 Triumph Bonneville                 (617) 275-1800 x 4173\n\"Fear not the evil men do in the name of evil, but heaven protect\n us from the evil men do in the name of good\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3169, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bchuang@css.itd.umich.edu (Ben Chuang)\nSubject: TCP/IP routing LocalTalk-Ethernet.\nOrganization: University of Michigan ITD Consulting and Support Services\nLines: 27\nNNTP-Posting-Host: stimpy.css.itd.umich.edu\n\nHere is the story:\nI have a network with 4 Macs on Localtalk. One of them has an\nEthernet Card, and is currently connected to a NeXT (don't laugh\nI got it for the price of a Mac IIsi). The NeXT is connected\nto the internet over SLIP running on a 9600 baud modem.\n\nCurrently, we can telnet from the Mac w/ Ethernet to the NeXT,\nand then telnet out again to the rest of the world.\n\nWhat we want to know is if there is some sort of hardware that\nwill route telnet sessions from the Localtalk Macs to the NeXT\nvia the Ethernet Mac. From what we have heard, AIR doesn't do\nthe trick.\n\nSoftware solutions would be good too, but my impression is that\nthere aren't going to be any.\n\nOur immediate interest is to be able to get to the NeXT and telnet\nout again. The SLIP connection doesn't allow us to assign IP numbers\nto machines, so everyone shares that 1 number...oh well...\n\nthanks in advance.\n-- \n_______________________________________________________________\nBenjamin S. Chuang/ITD-CSS Consultant/University of Michigan:A2\nBenjamin.Chuang@um.cc.umich.edu    (consulting & referals here) \nbchuang@css.itd.umich.edu         (Unix and long messages here)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3170, "properties": {"category": "rec.sport.baseball", "text": "From: gspira@nyx.cs.du.edu (Greg Spira)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 79\n\n(Steve Tomassi) writes:\n\n\n>     Hi, baseball fans! So what do you say? Don't you think he deserves it?\n>I\n>mean, heck, if Dave Winfield (ho-hum) is seriously being considered for it,\n>as\n>is Lee Smith (ha), then why don't we give Dave Kingman a chance? Or Darrell\n>Evans! Yeah, yeah! After the Hall of Fame takes in them, it can take in\n>Eddie\n>Murray and Jeff Reardon.\n\nUnfortunately, you seem to lack the ability to rate players.  Dave\nWinfield has had a better career than half the people in the Hall of\nFame.  Eddie Murray and Darrel Evans are both one of the top 100 players\nof all time.  Lee Smith has had probably the greatest long career\nof any relief pitcher since 1960, with the possible exception of Gossage.\n\nOn the other hand, Kingman probably isn't one of the best 750 players\nof all time.\n\nAnd Reardon, though a good pitcher, isn't in Smith's class career wise.\n\n>     Well, in any case, I am sick and tired (mostly sick) of everybody\n>giving\n>Hall of Fame consideration to players that are by today's standards,\n>marginal.\n\n>Honestly, Ozzie Smith and Robin Yount don't belong there. They're both\n>shortstops that just hung around for a long time. Big deal.\n\nWe're talking 2 of the top 50 players of all time here.  There probably\naren't 5 shortstops in history who were better than these two.\n\n>     Let's be a little more selective, huh? Stop handing out these honors\n>so\n>liberally. Save them for the guys who really deserve it. Face it, if\n>something\n>isn't done, there will be little prestige in the Hall of Fame anymore. When\n>certain individuals believe that Steve Garvey or Jack Morris are potential\n>candidates, the absurdity is apparent.\n\nGarvey sucked.  Morris, while a very good pitcher, simply doesn't\nbelong near Cooperstown.\n\n Gee, can these guys even compare to\n>the more likely future Hall of Famers like Kirby Puckett or Nolan Ryan?\n\nIf Puckett and Ryan (okay, no if there) get into to the Hall, they will be \nmarginal Hall of Famers (unless Puckett keeps hitting like he did last year for\na while longer)\n\nTo put this in perspective, here's a listing of the linear weights\nvalues of the careers of the players you mention.  In parenthesis\nis how high they are up on the greatest ever list if they make it.\nWhile no one would claim these are perfect rankings, they should give\nyou a good value of these guys' careers as compared to average players.\n\nRobin Yount 43.0 (41)\nOzzie Smith 42.1 (45)\nDave Winfield 40.3 (53)\nEddie Murray 37.5 (68)\nDarrel Evans 35.2 (80)\nKirby Puckett 24.3 (180)\nNolan Ryan 21.6 (219)\nJack Morris 11.8 (478)\nDave Kingman 0.4 \nSteve Garvey -5.8\n\nTo give you an idea of how these numbers compare to those in the Hall:\nOf the 71 eligible players whose career stats equaled 35.0, 64 are in the Hall\nof Fame. The ones who aren't include 4 19th century players, Ron Santo, Bobby\nGrich, and Bob Johnson.\n\nOf those eligible who score between 30.0 and 34.9, 15 of 25 are in.  Of\nthose eligible who score between 25.0 and 29.9, 24 of 44 are in.\n\n \nGreg \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3171, "properties": {"category": "comp.graphics", "text": "From: jr0930@eve.albany.edu (REGAN JAMES P)\nSubject: Re: Pascal-Fractals\nOrganization: State University of New York at Albany\nLines: 10\n\nApparently, my editor didn't do what I wanted it to do, so I'll try again.\n\ni'm looking for any programs or code to do simple animation and/or\ndrawing using fractals in TurboPascal for an IBM\n              Thanks in advance\n-- \n |||||||||||   \t\t \t   ||||||||||| \n_|||||||||||_______________________|||||||||||_      jr0930@eve.albany.edu\n-|||||||||||-----------------------|||||||||||-     jr0930@Albnyvms.bitnet\n |||||||||||  GO HEAVY OR GO HOME  |||||||||||\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3172, "properties": {"category": "rec.sport.baseball", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: Braves Pitching UpdateDIR\nOrganization: Adobe Systems Incorporated\nLines: 13\n\nIn article <1993Apr15.010745.1@acad.drake.edu> sbp002@acad.drake.edu writes:\n>or second starter.  It seems to me that when quality pitchers take the\n>mound, the other teams score less runs.  The team that scores the most \n>runs wins.  This puts the team with the better pitching at the advantage\n>(providing they can stop the opposing team from scoring runs).  A low \n>scoring game would clearly benefit the Braves. \n\nNot clear to me at all.  I'd certainly rather have a team who was winning\n4-1 games than 2-1 games.  In the 2-1 game, luck is going to play a much\nbigger role than in the 4-1 game. \n\nSherri Nichols\nsnichols@adobe.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3173, "properties": {"category": "rec.motorcycles", "text": "From: declrckd@rtsg.mot.com (Dan J. Declerck)\nSubject: Re: edu breaths\nNntp-Posting-Host: corolla17\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 53\n\nIn article <1993Apr15.221024.5926@rtsg.mot.com> svoboda@rtsg.mot.com (David Svoboda) writes:\n>In article <1993Apr15.214910.5676@rtsg.mot.com> declrckd@rtsg.mot.com (Dan J. Declerck) writes:\n>|In article <1993Apr15.003749.15710@rtsg.mot.com> svoboda@rtsg.mot.com (David Svoboda) writes:\n>|>In article <1993Apr14.220252.14731@rtsg.mot.com> declrckd@rtsg.mot.com (Dan J. Declerck) writes:\n>|>|\n>|>|The difference of opinion, and difference in motorcycling between the sport-bike\n>|>|riders and the cruiser-bike riders. \n>|>\n>|>That difference is only in the minds of certain closed-minded individuals.  I\n>|>have had the very best motorcycling times with riders of \"cruiser\" \n>|>bikes (hi Don, Eddie!), yet I ride anything but.\n>|\n>|Continuously, on this forum, and on the street, you find quite a difference\n>|between the opinions of what motorcycling is to different individuals.\n>\n>Yes, yes, yes.  Motorcycling is slightly different to each and every one of us.  This\n>is the nature of people, and one of the beauties of the sport.  \n>\n>|Cruiser-bike riders have a different view of motorcycling than those of sport bike riders\n>|(what they like and dislike about motorcycling). This is not closed-minded. \n>\n>And what view exactly is it that every single rider of cruiser bikes holds, a veiw\n>that, of course, no sport-bike rider could possibly hold?  Please quantify your\n>generalization for us.  Careful, now, you're trying to pigeonhole a WHOLE bunch\n>of people.\n>\nThat plastic bodywork is useless. That torque, and an upright riding position is\nbetter than a slightly or radically forward riding position combined with a high-rpm\nlow torque motor.\n\nTo a cruiser-motorcyclist, chrome has some importance. To sport-bike motorcyclists\nchrome has very little impact on buying choice.\n\nUnless motivated solely by price, these are the criteria each rider uses to select\nthe vehicle of choice. \n\nTo ignore these, as well as other criteria, would be insensitive. In other words,\nno one motorcycle can fufill the requirements that a sport-bike rider and a cruiser\nrider may have.(sometimes it's hard for *any* motorcycle to fufill a person's requirements)\n  \nYou're fishing for flames, Dave.\n\nThis difference of opinion is analogous to the difference\nbetween Sports-car owners, and luxury-car owners. \n\nThis is a moot conversation.\n\n\n-- \n=> Dan DeClerck                        | EMAIL: declrckd@rtsg.mot.com     <=\n=> Motorola Cellular APD               |                                  <=\n=>\"Friends don't let friends wear neon\"| Phone: (708) 632-4596            <=\n----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3174, "properties": {"category": "talk.politics.mideast", "text": "From: ohayon@jcpltyo.JCPL.CO.JP (Tsiel Ohayon)\nSubject: Re: Israeli Terrorism\nOrganization: James Capel Pacific Limited, Tokyo Japan\nLines: 31\n\nIn article <1rd7eo$1a4@usenet.INS.CWRU.Edu> Anas Omran writes:\n\n[ANAS] There are many neutral human rights organizations which always report\n[ANAS] on the situation in the O.T.  But, as most people used to see on TV, the\n[ANAS] Israelis do not allow them to go deep there in the O.T.  The Israelis \n[ANAS] used to arrest and sometimes to kill some of these neutral reporters.  \n[ANAS] So, this is another kind of terrorism committed by the Jews in Palestine.\n[ANAS] They do not allow fair and neutral coverage of the situation in \n[ANAS] Palestine.\n\nBring me one case where Israeli Soldiers deliberately killed a \"neutral \nreporter\".  This is another one of your wet dreams.\n\nUnlike many countries, Israel does allow reporters in and out of the O.T. \nThat is what the problem is. If Israel were a country like China, then \nnothing would transpire from what is happening in the O.T. But there\nseems to be a proliferation of journalists in Israel always trying to show\nhow evil the Israeli monster is. Arab countries don't allow journalists \nanywhere, we have yet to hear about the massacres of Kurds, the destruction\nand annihilation of Hama, the killings of moslem fundamentalists in mosques\nin Egypt and Algeria etc... Why is it we only get state reports? How accurate\nare they?\nAnas, go give a lesson of freedom of speech to your Arab bretheren before\ntelling us what to do.\n\nTsiel\n-- \n----8<--------------------------------------------------------------->8------\nTsiel:ohayon@jcpl.co.jp\t   | If you do not receive this E-mail, please let me\nEmployer may not have same | know as soon as possible, if possible.\nopinions, if any !         | Two percent of zero is almost nothing.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3175, "properties": {"category": "rec.sport.baseball", "text": "From: Brian Austin Fraze <bf25+@andrew.cmu.edu>\nSubject: Re: TIGERS\nOrganization: Freshman, H&SS general, Carnegie Mellon, Pittsburgh, PA\nLines: 4\nNNTP-Posting-Host: po4.andrew.cmu.edu\nIn-Reply-To: <93104.100921RK0VSANU@MIAMIU.BITNET>\n\nI basically agree, the Tigers are my favorite team.  Actually, their\npitching might actually be better this year than last (not that htat's\nsaying a hole lot). How 'bout that home opener on Tuesday!! By the way,\nSparky goes for win 2,000 today. \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3176, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: erzberg@ifi.unizh.ch (Martin Erzberger)\nSubject: Re: Monitor for XGA\nNews-Software: IBM OS/2 PM RN (NR/2) v0.16 by O. Vishnepolsky and R. Rogers\nLines: 12\nNntp-Posting-Host: sangria\nReply-To: erzberg@ifi.unizh.ch (Martin Erzberger)\nOrganization: University of Zurich, Department of Computer Science\n\nIn <1993Apr15.211053.35792@watson.ibm.com> kaul@vnet.ibm.com writes:\n>my home Viewsonic 6.  I like the Multisyncs because it's easy to run them\n>in modes like 800x600x64k colors noninterlaced, or at higher modes like\n>1360x1024x16.\nOh yeah! I just got my new Eizo Flexscan yesterday (to replace my old 8515), and\nI tried it with 1360x1024. This mode is just great! I can get four perfectly readable\ncommand windows on the screen! And if I need more colors, I can go back to 1024x768\nor even 800x600.\nOne thing I am wondering though: Why isn't there a MONxxxx.DGS file which contains\nALL the resolutions up to 1360x1024? Now I have to change the XGASETUP.PRO every\ntime I want to switch, instead of simply going through the system settings of OS/2.\nRegards, Martin Erzberger\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3177, "properties": {"category": "rec.motorcycles", "text": "From: Clarke@bdrc.bd.com (Richard Clarke)\nSubject: Re: Boom! Dog attack!\nOrganization: Becton Dickinson Research Center R.T.P. NC USA\nLines: 27\nNntp-Posting-Host: polymr4.bdrc.bd.com\n\n>I eagerly await comment.\n\nThe ice princess next door makes a habit of flooring her cage out of the \ndriveway when she sees me coming. Probably only hits 25mph, or so. (I made \nthe mistake of waving to a neighbor. She has some sort of grudge, now.)\n\nI was riding downhill at ~60mph on a local backroad when a brown dobie came \nflashing through the brush at well over 30mph, on an intercept course with \nmy front wheel. The dog had started out at the top of the hill when it heard \nme and still had a lead when it hit the road. The dog was approaching from \nmy left, and was running full tilt to get to my bike on the other side of \nthe road before I went by. Rover was looking back at me to calculate the \nfinal trajectory. Too bad it didn't notice the car approaching at 50+mph \nfrom the other direction.\n\nI got a closeup view of the our poor canine friend's noggin careening off \nthe front bumper, smacking the asphalt, and getting runover by the front \ntire. It managed a pretty good yelp, just before impact. (peripheral \nimminent doom?) I guess the driver didn't see me or they probably would have \nswerved into my lane. The squeegeed pup actually got up and headed back \nhome, but I haven't seen it since. \n\nSniff. \n\nSometimes Fate sees you and smiles.\n\n-Rick\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3178, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ytwu@magnus.acs.ohio-state.edu (Yih-Tyng Wu)\nSubject: Help! How to test SIMMs?\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 10\n\n\nHello,\n  I just got some SIMMs,  at least one of which does not work. I don't know if \nthere is a software that can test SIMMs thoroughly or I could just rely on the \nRAM test performed by my computer during the start up. When I installed a dead \nSIMM into an LC or  an LC II, there would be a strange music and no display on \nthe screen. Why? I need your help! Thanks in advance\n\nYih-Tyng\nytwu@magnus.acs.ohio-state.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3179, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jr0930@eve.albany.edu (DIAMOND)\nSubject: Simple Windows question\nOrganization: State University of New York at Albany\nLines: 15\n\nOk, here's a nice easy question for all you out there.\n\nWhen running DOS 5.0 under Windows 3.0, I lose the ability to do a\nprint-screen.\nI have no problem with this when I'm running DOS not under Windows.\nIf it's relavant, I'm using 'Quarterdeck 6.0' expanded memory manager for\nmy 386.\n  Please e-mail any responses, since I don't get to read the news too often.\n    Thanks in advance.\n\n-- \n |||||||||||   \t\t \t   ||||||||||| \n_|||||||||||_______________________|||||||||||_      jr0930@eve.albany.edu\n-|||||||||||-----------------------|||||||||||-     jr0930@Albnyvms.bitnet\n |||||||||||  GO HEAVY OR GO HOME  |||||||||||\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3180, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: Morality? (was Re: <Political Atheists?)\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 15\n\nIn article <1ql667INN54a@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n>\n>What I've been saying is that moral behavior is likely the null behavior.\n\n  Do I smell .sig material here?\n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3181, "properties": {"category": "talk.politics.guns", "text": "From: rats@cbnewsc.cb.att.com (Morris the Cat)\nSubject: Re: WI and IL firearms law Questions\nOrganization: AT&T\nDistribution: usa\nLines: 56\n\n\n|Question #2\n\n|As I understand it, in Evanston, IL, they have a ordinance banning handguns.\n|Is there any way to get around this provision?\n\nWhy don't you call the City and ask? Oak Park also has an illegal handgun\nban as well, but does allow those with a \"collectors FFL\" to possess\n(\"collectible?\") handguns.\n\n|What would the penalty if you were found out be?\n\nProbably a fine in practical terms.\n\n|What if you used said handgun in a defensive shooting in your apartment \n|there?  How would the city law apply to your impending \n|trial for the shooting?\n\nIt wouldn't impede your defense at all. There was an actual incident\nin Oak Park where a gas station owner engaged in a shootout with a\nhandgun; the grand jury decided not to presecute. On the other hand,\na black man used an illegally owned handgun in Oak Park to defend\nhimself, and the Village tried to make an example out of him. An NRA\nDirector who lived there made a stink about this, and it was decided\nnot to charge the guy. Of course, pissing off anti-gun police thugs\nhas it's own drawbacks, like when the Oak Park Police Chief came to his\nhouse, and told him: \"this is stepping over the line; this could get\ndangerous for you.\" Whereupon the few black Oak Park police officers\nwatched over his house to ensure that the white anti-gun police chief\nand his anti-gun cronies wouldn't f*ck with him, his home or family.\n\n|Also, what is IL state law concerning short barreled weapons?  Short barreled\n|shotgun is what I would be interested in if a handgun were not available, \n|either that or a shortened 9mm carbine (ie Colt, Marlin).  \n\nL.V. Cipriani states that the \"Any other weapon\" category is allowed,\nbut the exact relationship between an Ithaca Auto-burgular, which I\nbelieve is in the \"Any other weapon\" category and a chopped barrel\nH&K HK-94 (Class 3 for sure) is not clear to me...\n\n|One more thing, what is the chance of getting a CCW permit in IL without being\n|rich or famous or related to the mayor?\n\nIn your dreams, buddy. As long as Democrats reign in Chicago, Illinois\nresidents will always be disarmed and helpless in the streets. Politicians\nget around this by provisions in the law that allow them to carry\nconcealed weapons. Voters in Chicago are too stupid to vote these a**holes\nout of office; because the Dems are always in power, the Illinois \nSupreme Court is always tilted to the Democratic Party's views on guns.\n[All candidates supported by political consultant David Axelrod are\nanti-gun, which explains anti-RKBA Crook County States Attorney \nJack(ass) O'Malley being a so-called \"Republican.\"]\n\nGet rid of the Chicago Democrats, get rid of their members on the IL\nJudiciary, and you got a fighting chance of a preemption law and a CCW\nlaw...\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.145+0000", "event": "documents", "entityId": 3182, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: griffith@egr.msu.edu (Terry Griffith)\nSubject: orchid fahrenheit sparkel...the answers......\nOrganization: Michigan State University, College of Engineering\nLines: 21\nDistribution: na\nNNTP-Posting-Host: elvira.egr.msu.edu\n\n\n\nOK..... thanks to all of you who responded to my post.\nhere's the \"official\" response from orchid..\nOrchid is aware of the problem, the new rev of the board (rev d) SHOULD         (not would) take care of the problem. production was scheduled to start\non april 15, I have no confirmation that production did start on this day\njust the word of the tech on the other line.\n\nnow the flame......\nyou would think a company like Orchid who has produced good quality products in the past would be more helpfull and willing to make right on a screwup of theirs. \nvery poor tech support (the first 2 times I called I must have spoke with the\njanitor because they where talking craziness) the last time I talked to a tech  named \"paul\" and he seemed to have a pretty good idea what was going on.\nuntil these problems are resovled neither myself nor my department will buy\nor recommend orchid products.\n\nflame off.....\n\nagain thanks to all of you who answered my post.\n\nTerry\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3183, "properties": {"category": "rec.motorcycles", "text": "From: revco@sfsuvax1.sfsu.edu (John Boockholdt)\nSubject: Re: Lane Sharing in CA\nOrganization: California State University, Sacramento\nLines: 11\n\nIn three years of riding in the cities of San Jose,\nSanta Clara, and Sunnyvale I never came into any\nconflict with the local police over my lane splitting\nhabits (all three of these cities were listed earlier\nas being anti-splitting in one way or another).  I\ncan't say whether this was due to luck, police\nkindness, or there not actually being any ordinances\nagainst it in these cities, so I continue.....\n\nRevCo\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3184, "properties": {"category": "talk.religion.misc", "text": "From: dickeney@access.digex.com (Dick Eney)\nSubject: Re: Swastika (was: Hitler - pagan or Christian?)\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 6\nNNTP-Posting-Host: access.digex.net\n\nRE: Red, wwhite, and black, the colors of the Imperial German war-flag --\n\nGo further back still.  There are +XVIII Prussian drinking songs\ncelebrating the red, the white and the black -- the colors, as Fletcher\nPratt points out, of blood and iron.\n-- Diccon Frankborn\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3185, "properties": {"category": "soc.religion.christian", "text": "From: heath@athena.cs.uga.edu (Terrance Heath)\nSubject: Nature of God (Re: Environmentalism and paganism)\nOrganization: University of Georgia, Athens\nLines: 26\n\nIn article <Apr.12.03.42.49.1993.18778@athos.rutgers.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>I would like to see Christians devote a bit less effort to _bashing_\n>paganism and more to figuring out how to present the Gospel to pagans.\n>\n>Christ is the answer; the pagans have a lot of the right questions.\n>Unlike materialists, who deny the need for any spirituality.\n>\n>\n\n\tOne of the things I find intersting about pagan beliefs is\ntheir belief in a feminine deity as well as a masculine deity. Being\nbrought up in a Christian household, I often wondered if there was God\nthe Father, where was the mother? Everyone I know who has a father\nusually as a mother. It just seemed rather unbalanced to me. \n\tFortunately, my own personal theology, which will probably not\nfall into line with a lot others, recognized God as a being both\nwithout gender and posessing qualities of both genders, as being both\na masculine and feminine force. It provides a sense of balance I find\nsorely lacking in most theologies, a lack which I think is responsible\nfor a lot of the unbalanced ways in which we see the world and treat\neach other.\n-- \nTerrance Heath\t\t\t\theath@athena.cs.uga.edu\n******************************************************************\nYOUR COMFORT IS MY SILENCE!!!!! ACT-UP! FIGHT BACK! TALK BACK!\n******************************************************************\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3186, "properties": {"category": "rec.sport.hockey", "text": "From: stamber@rainbow.ecn.purdue.edu (Kevin L. Stamber)\nSubject: LIST OF TEE TIMES AT METROPOLITAN TORONTO GOLF COURSES FOR MONDAY\nOrganization: Purdue University Engineering Computer Network\nLines: 6\n\n;^)\n\nKevin L. Stamber\nPurdue University\n...and Phil Kirzyc (The Kielbasa Kid) will roam the Arena for interviews.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3187, "properties": {"category": "rec.motorcycles", "text": "From: leavitt@cs.umd.edu (Mr. Bill)\nSubject: Re: Countersteering_FAQ please post\nOrganization: The Cafe at the Edge of the Universe\nLines: 13\n\nmjs@sys.uea.ac.uk (Mike Sixsmith) writes:\nmjs>Well, there are just as many courses here and elsewhere that do *not*\nmjs>teach the technique, yet seem to be rather successful...\n\nSure.  You don't miss what you never had.  Those poor sods don't know\nwhat they're missing.  I guess ignorance is bliss, eh Mike?\n\nMr. Bill\n-- \n+ Bill Leavitt, #224 +   '82 CBX \"White Lightning\", '82 GS850G \"Suzibago\"   +\n+ leavitt@cs.umd.edu + '76 CJ360 \"Little Honda\", '68 Lone Star \"Sick Leave\" +\n+  DoD AMA ICOA NIA  + '69 Impala convertible \"The Incredible Hulk\", others +\n+ \"Hmmm, I thought bore and stroke *was* the technique!\" Michael Bain, #757 +\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3188, "properties": {"category": "talk.politics.guns", "text": "From: fiddler@concertina.Eng.Sun.COM (steve hix)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Sun\nLines: 33\nNNTP-Posting-Host: concertina\n\nIn article <C5sv88.HJy@news.cso.uiuc.edu> irvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n>In article <1r1j3n$4t@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>>In article <1r19tp$5em@bigboote.WPI.EDU>, mfrhein@wpi.WPI.EDU (Michael Frederick Rhein) writes:\n>>\n>>> >napalm, then let the wood stove inside ignite it.\n>>>                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>>> As someone else has pointed out, why would the stove be in use on a warm day\n>>> in Texas.\n>>\n>>Do YOU eat all your food cold?\n>\n>Ever hear of electric ovens or microwaves?  Very popular.\n>Electric stoves outside metro-areas especially.\n \nBrent, the Feds turned off the BD's electricity a couple of weeks ago... \n \nPerhaps you haven't been paying attention to the radio, TV, or newspapers, \nthough. \n \n \n \n \n \n \n \n \n\n\n-- \n-------------------------------------------------------\n| Some things are too important not to give away      |\n| to everybody else and have none left for yourself.  |\n|------------------------ Dieter the car salesman-----|\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3189, "properties": {"category": "rec.motorcycles", "text": "From: mdennie@xerox.com (Matt Dennie)\nSubject: Re: Flashing anyone?\nKeywords: flashing\nOrganization: Xerox\n\nIn <1993Apr15.123539.2228@news.columbia.edu> rdc8@cunixf.cc.columbia.edu (Robert D Castro) writes:\n\n>Hello all,\n\n>On my bike I have hazard lights (both front and back turn signals\n>flash).  Since I live in NJ and commute to NYC there are a number of\n>tolls one must pay on route.  Just before arriving at a toll booth I\n>switch the hazards on.  I do thisto warn other motorists that I will\n>be taking longer than the 2 1/2 seconds to make the transaction.\n>Taking gloves off, getting money out of coin changer/pocket, making\n>transaction, putting gloves back on takes a little more time than the\n>average cager takes to make the same transaction of paying the toll.\n>I also notice that when I do this cagers tend to get the message and\n>usually go to another booth.\n\n>My question, is this a good/bad thing to do?\n\n>Any others tend to do the same?\n\n>Just curious\n\n>o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>\n>    Rob Castro     | email - rdc8@cunixf.cc.columbia.edu | Live for today\n>    1983 KZ550LTD  | phone - (212) 854-7617              | For today you live!\n>    DoD# NYC-1     | New York, New York, USA             |        RC (tm)\n\nBeleive it or not:  NY state once considered eliminating tolls for motor-\ncycles based simply on the fact that motos clog up toll booths.  But then\nMario realized the foolishness of trading a few hundred K $`s a year for\nsome relief in traffic congestion.\n\nToo bad he won`t take that Sumpreme Court Justice job - I thought we might\nbe rid of him forever.\n--\n--Matt Dennie                              Internet: mmd.wbst207v@xerox.com\nXerox Corporation, Rochester, NY (USA)\n\"Reaching consensus in a group often\n is confused with finding the right answer.\"  -- Norman Maier\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3190, "properties": {"category": "rec.sport.baseball", "text": "From: timlin@spot.Colorado.EDU (Michael Timlin)\nSubject: Re: Best Homeruns\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 17\n\ndswartz@osf.org (Dan Swartzendruber) writes:\n\n>In article <4200419@hpcc01.corp.hp.com> boell@hpcc01.corp.hp.com (Donald P Boell) writes:\n>>I'd have to say the most impressive HRs I've ever see came from Dave Kingman\n>>and his infamous moon-raker drives...\n\n>I remember one he hit circa 1976 at Wrigley Field that went across\n>the street (in dead center field) and hit a house on the roof.  He\n>whiffed a lot, but when he *did* connect, watch out!\n\nMy favorite was the Barry Foote homer that bounced on Waveland and through\na second floor window across the street.  Second though, would be the Kong\ndrive that was last seen bouncing down the street that dead ends to the \npark at Waveland.\n\nMike Timlin\ntimlin@spot.colorado.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3191, "properties": {"category": "rec.motorcycles", "text": "From: jburnside@ll.mit.edu (jamie w burnside)\nSubject: Re: GOT MY BIKE! (was Wanted: Advice on CB900C Purchase)\nKeywords: CB900C, purchase, advice\nReply-To: jburnside@ll.mit.edu (jamie w burnside)\nOrganization: MIT Lincoln Laboratory\nLines: 29\n\n--\nIn article <1993Apr16.005131.29830@ncsu.edu>, jrwaters@eos.ncsu.edu \n(JACK ROGERS WATERS) writes:\n|>>\n|>>>Being a reletively new reader, I am quite impressed with all the usefull\n|>>>info available on this newsgroup.  I would ask how to get my own DoD number,\n|>>>but I'll probably be too busy riding ;-).\n|>>\n|>>\tDoes this count?\n|>\n|>Yes.  He thought about it.\n|>>\n|>>$ cat dod.faq | mailx -s \"HAHAHHA\" jburnside@ll.mit.edu (waiting to press\n|>>\t\t\t\t\t\t\t return...)\n\nHey, c'mon guys (and gals), I chose my words very carefully and even \ntried to get my FAQ's straight.  Don't holler BOHICA at me!\n \n----------------------------------------------------------------------\n|     |\\/\\/\\/|      ___________________                              |\n|     |      |     /                   \\                             |\n|     |      |    /  Jamie W. Burnside  \\     1980 CB900 Custom      |\n|     | (o)(o)   (  jburnside@ll.mit.edu )    1985 KDX200 (SOLD!)    |\n|     C      _) / \\_____________________/     1978 CB400 (for sale)  |\n|      | ,___| /                                                     |\n|      |    /                                                        |\n|      / __\\                                                         |\n|     /     \\                                                        |\n----------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3192, "properties": {"category": "comp.graphics", "text": "From: jian@coos.dartmouth.edu (Jian Lu)\nSubject: Grayscale Printer\nSummary: image printer under $5000\nDistribution: na\nOrganization: Dartmouth College, Hanover, NH\nLines: 6\n\nWe are interested in purchasing a grayscale printer that offers a good\nresoltuion for grayscale medical images.  Can anybody give me some\nrecommendations on these products in the market, in particular, those\nunder $5000?\n\nThank for the advice.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3193, "properties": {"category": "talk.politics.mideast", "text": "From: tichauer@valpso.hanse.de (Manfredo Tichauer)\nSubject: Re: Israeli Terrorism\nOrganization: \"The Private Site of Manfredo Tichauer\"\nLines: 16\n\nbackon@vms.huji.ac.il writes:\n\n> In article <1rd7eo$1a4@usenet.INS.CWRU.Edu>, cy779@cleveland.Freenet.Edu (Ana\n\n> Anas, of course ! The YAHUD needed blood for the matza. After all, Passover\n> *was* last month :-)\n        ^^^^^^^^^^\n  Josh, were you in such a hurry? WE celebrated Pesach THIS month, but only\n  with Xtian blood! Muslim blood hasn't been declared \"Kosher le Pesach\" by\n  our Hechscher (not yet) :-) :-)\n\n -----------------------------------------------------------------------------\n  Manfredo Tichauer M.                       EMAIL : tichauer@valpso.hanse.de\n  Opitzstrasse 14                            VOICE :     (++ 49 40)  27.42.27\n  2000 Hamburg 60 - GERMANY                  FAX   :     (++ 49 40) 270.53.09\n -----------------------------------------------------------------------------\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3194, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: AM Press Briefing by Dee Dee Myers -- 4.15.93\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 844\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\n\n                           THE WHITE HOUSE\n\n                    Office of the Press Secretary\n_____________________________________________________________________\nFor Immediate Release                                  April 15, 1993\n\n\n                            PRESS BRIEFING\n                           BY DEE DEE MYERS\n\n\t     \n                          The Briefing Room\n\n\n9:45 A.M. EDT\n\n\t     \t  \n\t     Q\t  Why was the 10:00 a.m. postponed? \n\t     \t  \n\t     MS. MYERS:  Just due to scheduling conflicts.  So as we \nput out, the President will meet with the leaders of the national \npolice organizations at 2:00 p.m. in the Rose Garden, as opposed to \n10:00 a.m.  The only other things on his schedule today are:  At \n11:00 a.m. he'll meet with General Vessey, who, as you know, is on \nhis way to Vietnam to continue working on the MIA-POW issue.  At \n12:30 p.m. he'll have lunch with the Vice President in the Oval \nOffice.  And at 2:00 p.m. he'll meet with the police organizations.\nThen from 3:00 p.m. to 4:00 p.m. he'll do his weekly photos with the \nvarious groups.\n\t     \n\t     Q\t  A photo op with Vessey?\n\t     \n\t     MS. MYERS:  There's no coverage on the Vessey meeting.\n\t     \n\t     Q\t  Why?\n\t     \n\t     MS. MYERS:  Why?  It's a closed meeting.  \n\t     \n\t     Q\t  What about the lunch?\n\t     \n\t     MS. MYERS:  The lunch?  No, there's no coverage.\n\t     \n\t     Q\t  Is he meeting with any congress people today?\n\t     \n\t     MS. MYERS:  Nothing scheduled.\n\t     \n\t     Q\t  There are no meetings --\n\t     \n\t     MS. MYERS:  There are no congressional meetings today, \nno.\n\t     \n\t     Q\t  Has the President been given any information by the \nPentagon or reached any conclusion about the validity of this report \nfrom Hanoi?  Any instructions to Vessey on how to deal with the \nVietnamese on that subject?\n\t     \n\t     MS. MYERS:  Well, clearly, the report is the first order \nof business.  It's high on the agenda on something that they'll \ndiscuss.  I think the President and General Vessey will discuss the \nparameters of his visit to Vietnam today, but the President hasn't \ndrawn any conclusions about the report yet.  Certainly, it's \nsomething that he wants General Vessey to talk with the Vietnamese \nabout first.\n\t     \n\t     Q\t  Did the President talk with any Republican senators \nyesterday about the stimulus package?\n\t     \n\t     MS. MYERS:  He spoke with Senator Dole.\n\t     \n\t     Q\t  How many times?\n\t     \n\t     MS. MYERS:  I believe once during the day and once last \nnight.\n\t     \n\t     Q\t  What was the outcome of that?\n\t     \n\t     MS. MYERS:  They're continuing to work toward some kind \nof an agreement on a jobs package.\n\t     \n\t     Q\t  Is it your impression that Senator Dole is in any \nway flexible on this?\n\t     \n\t     MS. MYERS:  Well, I think we're hopeful that we're going \nto get some kind of jobs package through the Senate, and we'll \ncontinue to work with Senator Dole and others until we reach some \nkind of an agreement.\n\t     \n\t     Q\t  Did they discuss the VAT tax?\n\t     \n\t     MS. MYERS:  I don't know if that came up.\n\t     \n\t     Q\t  Can you check that?\n\t     \n\t     MS. MYERS:  Sure.\n\n\t     Q\t  So what are they -- is the President offering to \nscale down his program -- is that what he's trying to do, buy it down \nto where Dole will sign on?\n\t     \n\t     MS. MYERS:  Well, he's trying to protect as much of it \nas he can.  But it's important to him to get some kind of a jobs \npackage through the Senate and through Congress now.  And as soon as \nwe reach some conclusions on that, we'll let you know.  But at the \nmoment, he's continuing to consult with members of Congress \nincluding, obviously, Senator Dole.\n\t     \n\t     Q\t  Is he talking to anybody else?\n\t     \n\t     MS. MYERS:  I don't believe he talked to any other \nRepublicans yesterday.\n\t     \n\t     Q\t  Is he talking to anybody today?\n\t     \n\t     MS. MYERS:  I don't think anything is scheduled, but I \nwouldn't rule it out.\n\t     \n\t     Q\t  We were led to believe that the President called \nMr. Dole on the subject of Russian aid and that Bob Dole brought the \nconversation around to stimulus package.  Is that correct?\n\t     \n\t     MS. MYERS:  I think the President has contacted several \npeople on Russian aid.  I think that it was always expected that the \nstimulus package or the jobs package will be part of any conversation \nhe would have with Senator Dole.  The primary objective of the \nconversation was Russian aid.  That was the first order of business, \nbut it was both.\n\t     \n\t     Q\t  In the President's mind, are they linked \npolitically in that if the Republicans continue to reject the \nstimulus package, he thinks it will be harder to sell Russian aid to \nthe American people?  Has he made that argument?\n\t     \n\t     MS. MYERS:  I can't talk about specifically what \narguments he might have made.  The President is obviously committed \nto both.  He liked to see a jobs package to the American people \nfirst.  But as you know, we outlined the details of additional \nRussian aid last night in Tokyo.\n\t     \n\t     Q\t  But does the President believe that the stimulus \npackage will make it more difficult to persuade Americans to vote for \nRussian -- to accept a vote for Russian aid?\n\t     \n\t     MS. MYERS:  I think that the President is going to \ncontinue to work to pass the stimulus package, to pass a jobs \npackage, and we're still hopeful that we'll get some kind of jobs \npackage through the Congress.\n\t     \n\t     Q\t  Is it fair to say that the President is negotiating \nnow with Dole?\n\t     \n\t     MS. MYERS:  He's discussing options with him.\n\t     \n\t     Q\t  On the stimulus, is it your understanding that over \nthe break some Democrats, themselves, have left the support that they \nhad earlier for the package, the stimulus package?\n\t     \n\t     MS. MYERS:  I think we still have wide support in the \nSenate for the jobs package.\n\t     \n\t     Q\t  But specifically, that you've lost Democrats other \nthan Shelby?\n\t     \n\t     MS. MYERS:  I don't believe so.  There hasn't been a \nvote.\n\t     \n\t     Q\t  What about Kohl?\n\t     \n\t     Q\t  Kohl and Feingold?\n\t     \n\t     MS. MYERS:  There hasn't been a vote yet.  And we'll \ncontinue to work with senators to try to get a majority to try to \nbring the package to a vote, because we believe that a majority of \nthe members of the United States Senate support the package.\n\t     \n\t     Q\t  If you're weren't worried about Kohl and Feingold, \nwhy did George mention Milwaukee projects the other day?\n\t     \n\t     MS. MYERS:  I think George pointed out a number of \nprojects in a number of states that stand to be funded, or to lose \nfunding if this jobs package doesn't pass.\n\t     \n\t     Q\t  No Democrats.  (Laughter.)\n\t     \n\t     MS. MYERS:  I'll let you draw your own conclusions.\n\t     \n\t     Q\t  Does he plan to talk to Dole again today or any \nother Republicans again today?\n\t     \n\t     MS. MYERS:  There's nothing specifically scheduled, but \nagain, I wouldn't rule it out.\n\t     \n\t     Q\t  Does he plan to put out any more press releases to \nany other states today?\n\t     \n\t     MS. MYERS:  What we've done is we're in the process of \nbreaking down the benefits of the jobs package state by state.  I \nthink it's entirely feasible that as we sort of are able to sum those \nup, we'll send out press releases to the various states that suggest \nhow their states would benefit from this package.\n\t     \n\t     Q\t  Will you share those with us?\n\t     \n\t     MS. MYERS:  Sure.  As we did yesterday.\n\t     \n\t     Q\t  Do you have copies of the ones you sent --\n\t     \n\t     MS. MYERS:  Yes, we made those available yesterday.  And \nwe certainly can continue to provide them today.\n\t     \n\t     Q\t  Dee Dee, since yesterday's questions and subsequent \nstories about the VAT, what further consideration of this issue has \nbeen given?\n\t     \n\t     MS. MYERS:  Nothing's changed since yesterday.  I think \nthe President commented on it this morning to say only that it was \nsomething he knew was being considered by the task force and that he \nhas not made a decision on, and I don't think we have anything to add \nto that.\n\t     \n\t     Q\t  But he also said that business and labor groups are \ntelling him they support it.  Can you tell us --\n\t     \n\t     MS. MYERS:  I think that there has been -- I'm not going \nto speculate on who supports it.  I think the President said that \nthere has been some support among business and labor groups.  I don't \nthink he said he was directly contacted by them.\n\t     \n\t     Q\t  Are we to take that to mean that the administration \nhas sounded out business and labor groups on this --\n\t     \n\t     MS. MYERS:  I think there's been plenty of public \ndiscourse on this over the years and even recently, but I don't think \nI want to add to that.\n\t     \n\t     Q\t  In February, though, the President said that this \nwas something to be considered 10 or 15 years down the road.  What \nhas happened between then and now to cause this administration to \nchange its mind?\n\t     \n\t     MS. MYERS:  I think as we said yesterday, it is \nsomething that the working groups are looking at.  They're \nconsidering a wide variety of options on everything from funding to \nspecific options that will be covered by the President's health care \nplan.  The President has not taken it up yet, has not made a decision \non it.  And beyond that, I don't have anything to add.\n\t     \n\t     Q\t  You haven't answered the question.  It wasn't being \nconsidered by anyone in the White House after the President's \ncomments in February, and George reaffirmed that in a briefing.\n\t     \n\t     Q\t  And then suddenly --\n\t     \n\t     Q\t  What happened?\n\n\t     MS. MYERS:  The working groups, as we have said \nthroughout, we instructed to consider a wide variety of options \nacross-the-board.  And one of the things that has been talked about \nand that they are clearly considering is some kind of a value-added \ntax.\n\n\t     Q\t  But the President himself took this off the table, \nDee Dee, and suddenly it reappears.  And this goes to the credibility \nof this administration in a way.  What has happened in the meantime?\n\n\t     MS. MYERS:  The President has not looked at this, it \nhasn't been presented to him, again, yet.  The working groups are \nlooking at it, as they're looking at a wide variety of options, and \nno decisions have been made.\n\n\t     Q\t  And it raises the question of how independently the \ntask force is working.\n\n\t     MS. MYERS:  The task force was instructed to consider \nall options, and they've taken that mandate seriously and they're \nconsidering all options.\n\n\t     Q\t  But that's not the impression that the President \nleft in February.  The impression he left was that this was something \nthat was long-range, to be looked at 10, 15 years down the road.  The \nclear implication of his remarks was that this was something that was \nnot on the table, not an option. \n\n\t     Q\t  \"If it changes I'll tell you.\"\n\t     \n\t     Q\t  Bring him on.\n\n\t     Q\t  And you repeatedly referred to the President's \nremarks, telling us that those were still in operation.\n\t     \n\t     MS. MYERS:  It's changed, and we told you.  (Laughter.)\n\t     \n\t     Q\t  But that's what Alice Rivlin's comments and Donna \nShalala comments were about.  I mean, that seemed like an \norchestrated effort because you have two independent Cabinet officers \n--\n\n\t     MS. MYERS:  I wouldn't -- no, Alice Rivlin's not a \nCabinet member, first of all.  Second of all, it was not \norchestrated, but clearly, they both said yesterday and in the last \ncouple of days that it's something that's being looked at.  We \nconfirmed that yesterday.  And I don't have anything to add to that.\n\n\t     Q\t  Is it because he has very few options?\n\n\t     Q\t  Is this something that it will be incumbent upon \nthe task force to convince the President about?  In other words, has \nthe President himself personally ruled it out and it's now up to the \ntask force to convince him to put it back on the table?  Or is it, in \nfact, back on the table, having been placed there by discussions with \nthe President?  \n\n\t     MS. MYERS:  It is not the working group's mission at \nthis point to convince the President of anything.  It is their \nmission to put before him his options and to explain the benefits and \nthe costs and the basic pros and cons of each of those options.  I \nthink that they will certainly present the VAT to him in that \ncontext, and at this point he's not -- that presentation has not been \nmade, but it's something that he will hear and he has not made a \ndecision on.\n\n\t     Q\t  They will present it to him as one of his options, \nthough he specifically ruled it out?\n\n\t     MS. MYERS:  Correct.\n\n\t     Q\t  Dee Dee, is this more than a trial balloon?  Is \nthis a serious consideration that the working groups are giving to \nthis form of taxation?\n\n\t     MS. MYERS:  It's simply a statement of fact.  The \nworking groups are considering a wide variety of options on a number \nof issues relating to health care reform.  One of the options that \nthey're looking at is the VAT. \n\n\t     Q\t  Dee Dee, when the working groups were examining \nthis possibility, was this on the table during the same time period \nthat you were telling us that it was not?\n\n\t     MS. MYERS:  I don't know what the specific timing of \ntheir drafting of options is.  I don't know.\n\n\t     Q\t  Who was telling you that it was not under \nconsideration?\n\n\t     MS. MYERS:  I was referring back to the President's \ncomments.\n\n\t     Q\t  Have they discovered that the sin taxes won't raise \nenough money to fund the core benefit package?\n\n\t     MS. MYERS:  No, there's no decisions that have been made \non how to pay for the health care plan.\n\t     \n\t     Q\t  I'm asking whether the projections --\n\t     \n\t     MS. MYERS:  There's a number of options depending on how \nthe plan is structured.  You can't decide how much the plan is going \nto cost until you decide what the plan is going to look like.  And so \nyou can't discuss what financing options have been ruled in our out \nuntil you know.\n\n\t     Q\t  Dee Dee, we've been told that they have a computer \nmodels on a number of possible packages.\n\n\t     MS. MYERS:  Correct.  \n\n\t     Q\t  The question is whether they have now determined \nwhether sin taxes would not produce enough money for even the barest \nminimum package.  That is not a very difficult computation.\n\n\t     MS. MYERS:  It is a question that you know that we're \nnot going to answer until -- there's a number of options being \nconsidered.  It depends on how the package is structured.  The exact \ndetails of the package and the financing mechanisms used to pay for \nthem are all among the decisions that have yet to be made.  \n\t     \n\t     Q\t  And when the President has been meeting with health \ncare -- his health care advisors, which we are told he has been doing \n--\n\t     \n\t     MS. MYERS:  Correct.\n\t     \n\t     Q\t     they have never once said to him, these are your \nfunding options, including the VAT?  He has never heard the word VAT \nin his --\n\t     \n\t     MS. MYERS:    I am not going to comment on the specific \nnature of the daily -- they're not daily, but the quasi-regular \nbriefings.\n\t     \n\t     Q\t  Well, you have.\n\t     \n\t     MS. MYERS:  I have not, other than to say that he's not \nconsidered the VAT.  And I think that is a true statement.\n\t     \n\t     Q\t  No, but you said that it has not been presented to \nhim as an option.\n\t     \n\t     MS. MYERS:  Correct.\n\t     \n\t     Q\t  That doesn't mean he hasn't heard about it.\n\t     \n\t     MS. MYERS:  I'm not going to get into the details of \nwhat's discussed.  I think that statement stands for itself.\n\t     \n\t     Q\t     specific, Dee Dee.  When you say he hasn't \nlooked at it, do you mean that he hasn't looked at it in terms of \npaying for medical coverage, or hasn't looked at it in general?  \nBecause back in Chilicothe he was very specific in defining how it \nworks, what the advantages are, the whole thing.  It sounds like --\n\t     \n\t     MS. MYERS:  But that was -- I think in Chilicothe, if \nyou go back to his remarks there, it was a broader philosophical \ndiscussion of the tax structure.  And I think the comments were \ngenerally in reference to the overall economic plan.  But clearly, \nit's something that he's thought about in the broad context.  I mean, \nthat was clear in Chilicothe.  What I'm saying is that in the process \nof the working groups it's something that he hasn't considered yet.  \nIt's something that the working groups will present to him among the \nnumber of options, and that no decisions have been made.  And I'm not \ngoing to comment any further on the details of the meetings where \nhealth care issues are being discussed.\n\t     \n\t     Q\t  It's your statement from this podium that no \ndiscussion of this has taken place.  You say that no option -- that \nthe option has not been presented to him.\n\t     \n\t     MS. MYERS:  That is correct.\n\t     \n\t     Q\t  Do you stand by -- does the White House still stand \nby George's statement in March that this will not be in the proposal?\n\t     \n\t     MS. MYERS:  No decisions have been made.  We have \nnothing to add to what's already been said.\n\t     \n\t     Q\t  Let me follow up here.  Do you stand by what Rivlin \nsaid yesterday, that if any kind of VAT were to be used or \nconsidered, that other changes to the tax code would have to be made \nso that it would be less regressive?\n\t     \n\t     MS. MYERS:  I'm not going to comment any further on what \nmight happen if.\n\t     \n\t     Q\t  But do you stand by the previous conversations in \nFebruary that if there were to be a VAT, I think the President said \nyou'd exclude food and energy --\n\t     \n\t     MS. MYERS:  I'm not going to comment on the specific \nstructure of a decision that hasn't been made.\n\t     \n\t     Q\t  Was the President aware prior to Donna Shalala's \ncomments yesterday that this was under consideration by the working \ngroups?\n\t     \n\t     MS. MYERS:  I don't know specifically what --\n\t     \n\t     Q\t  Could you check for us, because that's a real \nimportant credibility question?\n\t     \n\t     MS. MYERS:  Sure.\n\t     \n\t     Q\t  Since the task force was brought together this \nissue has been discussed, at the beginning and throughout, as one \nfairly painless way to raise a lot of money.  Were you all kept in \nthe dark?  Was the Press Office kept in the dark over the past month \nand a half when you've been denying that a VAT tax would be \nconsidered that it was actually on the table over there as an option?\n\t     \n\t     MS. MYERS:  I think we've said all that we have to say.  \nIt is something the working groups are looking at.  The President has \nnot made a decision about it yet.  And beyond that, I have nothing to \nadd.\n\t     \n\t     Q\t  Well, sorry, Dee Dee, there are still a couple of \nquestions that we are going to have to ask because we have a problem \nwith credibility here -- yours primarily.  What we're asking is, if \nyou all were not told at all that this thing was being considered \nwhile you were coming out here and telling us that it was not, or if \nit's a case that you were coming out here and deliberately misleading \nus.\n\t     \n\t     MS. MYERS:  I don't believe that anyone has ever come \nout here and deliberately misled you from this podium -- ever --ever.\n\t     \n\t     Q\t  Has anyone tried to shade it a little bit to \nindicate something -- has anybody told anybody to come out --\n\t     \n\t     MS. MYERS:  We're not trying to shade answers or \ndeliberately mislead anybody.  I've said what I have to say about \nthis issue.\n\t     \n\t     Q\t  All we were trying to find out --\n\t     \n\t     MS. MYERS:  I understand what you're trying to find out \nand I've given you the answers, Helen.\n\t     \n\t     Q\t  We're trying to find out what changed -- what made \nit an option again.  That's the --\n\t     \n\t     MS. MYERS:  The working groups were given a broad \nmandate to investigate all options, and they are doing that.  \n\t     \n\t     Q\t  Yes, but it wasn't an option before.  How can you \ninvestigate it if the President has taken it off the table?\n\t     \n\t     MS. MYERS:  It is something that they're obviously \nconsidering and the President has not made a decision on.\n\t     \n\t     Q\t  Yes, but he took it off the table in February.\n\t     \n\t     MS. MYERS:  Working groups are considering it.  They'll \npresent it to the President at some point and he'll make a decision.\n\t     \n\t     Q\t  Why would they consider it if he has taken it off \nthe table?\n\t     \n\t     MS. MYERS:  It's clearly on the table. \n\t     \n\t     Q\t  Yes, but he took it off the table.  Did he change \nhis mind?\n\t     \n\t     MS. MYERS:  It's back on the table, Bill.\n\t     \n\t     Q\t  Did he change his mind?\n\t     \n\t     MS. MYERS:  He said this morning that he hasn't made a \ndecision about it.  He obviously knows that it's on the table.  It's \nsomething that he will look at at some and when we have a decision on \nthis we'll let you know.\n\t     \n\t     Q\t  So he must have changed his mind, right?\n\t     \n\t     MS. MYERS:  At some point it will be looked at.  I mean, \n--\n\t     \n\t     Q\t  Dee Dee, there's like two options -- either he \nchanged his mind or the working groups think they're authority \nexceeds the President's.\n\t     \n\t     MS. MYERS:  The working groups were given a broad \nmandate to look at all options; they've done that.\n\t     \n\t     Q\t  Are you going to put out his income tax?\n\t     \n\t     MS. MYERS:  Yes, there will be something available on \nhis income tax probably later this afternoon.  His return will be \navailable. \n\t     \n\t     Q\t  Will there be any kind of briefing to go through \nit?\n\t     \n\t     MS. MYERS:  No, nothing's planned.  I think someone will \nbe available, probably not in a briefing setting, but to walk you \nthrough the questions.\n\t     \n\t     Q\t  We're used to be walked line-by-line through the \npresidential tax forms.\n\t     \n\t     MS. MYERS:  I've seen those briefings.  (Laughter.)\n\t     \n\t     Q\t  Could we have one?\n\t     \n\t     MS. MYERS:   No, I don't think there will be any kind of \na formal briefing, but there will be somebody available to answer \nyour questions about it.\n\t     \n\t     Q\t  Did they file a joint form?\n\t     \n\t     MS. MYERS:  Yes.\n\t     \n\t     Q\t  When did he file it?\n\t     \n\t     MS. MYERS:  I believe it's being filed today.\n\t     \n\t     Q\t  Dee Dee, is there going to be a backgrounder for \nMiyazawa?\n\t     \n\t     MS. MYERS:  No, there will be a readout after the \nmeeting.\n\t     \n\t     Q\t  No backgrounder today?\n\t     \n\t     MS. MYERS:  No backgrounder today.\n\t     \n\t     Q\t  This is complicated stuff.  We need help.  \n(Laughter.)\n\t     \n\t     MS. MYERS:  We can't give you taxes and Miyazawa all in \none day, it's too confusing.  (Laughter.)\n\t     \n\t     Q\t  Vance and Owen have opened the doors on the use of \nforce in Bosnia.   They've both said that, A, they never ruled it \nout, and B, it might be necessary now.  Does that influence your \nthinking on whether or not to change your approach?\n\t     \n\t     MS. MYERS:  There's been no change in our policy towards \nBosnia.  We have always said that we'd consider --\n\t     \n\t     Q\t  But does that impact upon your decision?  Are they \npeople whose opinions would carry weight with you?\n\t     \n\t     MS. MYERS:  They're people whose opinions carry weight \ncertainly.  I mean, the President supports the process that they've \ninitiated.  But there's been no change in our policy for Bosnia, \nalthough we're considering a number of options right now.  If the \nSerbs don't come back to the negotiating table, if they don't sign on \nto some kind of an agreement, we will consider additional options, \nwhich we've been saying regularly.\n\t     \n\t     Q\t  One follow-up question then?  We cannot get a \nstraight answer from anyone in the administration.  Why do you not \nset a deadline for the Serbs?  Can you tell us the strategic or \ntactical reasons for not giving them a deadline to come to the table?\n\t     \n\t     MS. MYERS:  We're continuing to put pressure on them \nevery day.\n\t     \n\t     Q\t  Which doesn't work so --\n\t     \n\t     MS. MYERS:  Well, we think it is having some effect.  \nWe're going to continue to tighten sanctions.  As you know, we \nsupport the omnibus resolution.  We expect that to come to a vote on \nthe 26th.  \n\t     \n\t     Q\t  You say it's having an effect -- can you give us \nany documentation?\n\t     \n\t     MS. MYERS:  I'd be happy to provide somebody to talk to \nyou about the impact of the sanctions and things like that.\n\t     \n\t     Q\t  There's been no -- you have not been able to \nprovide anybody who can tell us that the sanctions have had any \neffect in Bosnia.  Serbia, yes; in Bosnia, no.\n\t     \n\t     MS. MYERS:  I think that they've had effect in Serbia \nand we think they've had some effect in Bosnia.  And again, I'll be \nhappy to provide somebody to walk you through the details of that, if \nyou'd like.\n\t     \n\t     Q\t  We would like to hear from someone who can show us \nwhat the effect has been in Bosnia.  We had the briefing on all of \nthe terrible things that are happening in Belgrade, but we haven't \nseen anything that indicates an impact on the fighting.  Can you \nprovide something along those lines?\n\t     \n\t     MS. MYERS:  I will see what I can get you.\n\t     \n\t     Q\t  On the extra Russian aid that Christopher announced \nthis morning -- where is that money coming from?\n\t     \n\t     MS. MYERS:  We'll have to work with Congress on the \ndetails of that package.\n\t     \n\t     Q\t  So that would be new money that you would hope to \nget?\n\t     \n\t     MS. MYERS:    Yes, that's new money, in addition to the \n$1.6 billion announced in Vancouver.  So I assume that you all have \nseen the $1.8-billion package that was announced this morning in \nTokyo by Secretary Christopher.\n\t     \n\t     Q\t  Isn't there a concern, though, about offering \nsomething which you have to get in Congress?  I mean, that was the \nconcern with Vancouver; you didn't want to do that.\n\t     \n\t     MS. MYERS:  The concern with Vancouver was to do \nsomething immediately, which required money that was already approved \nin the Fiscal '93 budget.  What we're looking at now is a little bit \nlonger-term plan to build on top of the $1.6 billion that we \nannounced in Vancouver.  This clearly will require congressional \napproval, or some of it will anyway, and we're going to continue to \nwork with Congress to make that happen.\n\t     \n\t     Q\t  To what extent has that been vetted or agreed to by \nCongress?\n\t     \n\t     MS. MYERS:  The President has had a number of \nconversations with members and will continue to work with them as \nthis process moves forward.\n\t     \n\t     Q\t  Was Christopher able to put this package out with a \nfair degree of understanding that you will be able to get it through \nCongress?\n\t     \n\t     MS. MYERS:  It was created in consultation with \nCongress.\n\t     \n\t     Q\t  In meeting with the law enforcement officials, is \nthat -- does that have a set speech and a goal?  A direction?\n\t     \n\t     MS. MYERS:  Yes, the President will talk about -- and \nthe law enforcement organizations are endorsing the President's jobs \npackage.  They believe particularly the summer jobs package will help \ngive kids something to do.\n\t     \n\t     Q\t  Who are they?\n\t     \n\t     MS. MYERS:  It's members or leadership from three \norganizations:  NAPO, which is the National Association of Police \nOrganizations; IBPO, which is the International Brotherhood of Police \nOrganizations, I believe; and IUPA, which is the International Union \nof Police Associations.\n\t     \n\t     Q\t  Will the FBI chief be there?\n\t     \n\t     MS. MYERS:  The FBI chief?  No.\n\t     \n\t     Q\t  Or any other federal law enforcement officials?\n\t     \n\t     MS. MYERS:  No, it will be the President and these \nnational law enforcement organization leaders.\n\t     \n\t     Q\t  Does the $1.8 billion announced today include the \n$400 million that's in the FY '94 budget for disarmament?\n\t     \n\t     MS. MYERS:  No.  The Nunn-Lugar money is separate.\n\t     \n\t     Q\t  So this would be the $700 million that's in the \nbudget already, plus another $1.1 billion?\n\t     \n\t     MS. MYERS:  I believe all of this is on top of the $700 \nmillion already in the budget.\n\t     \n\t     Q\t  Is this going to be part of the supplemental or \nFiscal '94 --\n\t     \n\t     MS. MYERS:  We'll work with Congress on the exact \nfunding mechanism -- on exactly how this will be paid for.\n\t     \n\t     Q\t  This $1.8 billion on top of --\n\t     \n\t     MS. MYERS:  On top of $700 million -- on top of the $400 \nmillion Nunn-Lugar money we announced earlier.\n\t     \n\t     Q\t  And this is what prompted the President to call Bob \nDole -- it was on this tranche, not on the previous money he was \ncalling Bob Dole?\n\t     \n\t     MS. MYERS:  Correct.\n\t     \n\t     Q\t  Is there a briefing on Miyazawa?\n\t     \n\t     MS. MYERS:  There will be a readout after the meeting \nwith Miyazawa.  Tomorrow.\n\t     \n\t     Q\t  Dee Dee, on a totally unrelated matter, some \nRepublicans who are active in the U.S. Chamber of Commerce are \ncomplaining about this new cozy relationship between the White House \nand the Chamber of Commerce.  There are -- the town hall meeting the \nother night, the satellite and all of this relationship.\nDoes the White House feel that you're getting too close to these \nChambers of Commerce?\n\t     \n\t     MS. MYERS:  That's an interesting charge.  (Laughter.)  \nAfter how many years of Democrats being accused of not paying any \nattention to the Chambers, now there are those who would accuse us of \nbeing too close.  I think that's interesting.  But no, we're thrilled \nby the support we've received from the national Chamber and local \nChambers across the country and we'll continue to work with them on \nthis and other initiatives.\n\t     \n\t     Q\t  What's the status of the President thinking about \ngoing to this Democratic retreat?\n\t     \n\t     MS. MYERS:  It's on his calendar.  I think he'll almost \ncertainly go.\n\t     \n\t     Q\t  All three days?\n\t     \n\t     MS. MYERS:  We haven't figured out exactly when he'll be \nthere yet.  \n\t     \n\t     Q\t  Is it open to coverage?\n\t     \n\t     MS. MYERS:  No, I believe the whole thing is closed.\n\t     \n\t     Q\t  Is he going to have any kind of address, statement, \nanything at all on the gay rights march on the 25th?\n\t     \n\t     MS. MYERS:  We're still looking at that.  We haven't \nmade a final decision about how we'll -- who will make a statement or \nwhat --\n\t     \n\t     Q\t  Any meetings scheduled with any of the leaders?\n\t     \n\t     MS. MYERS:  Nothing is scheduled, but I wouldn't rule it \nout.\n\t     \n\t     Q\t  What about an AIDS czar?\n\t     \n\t     MS. MYERS:  It's coming.\n\t     \n\t     Q\t  Anything on the weekend?\n\t     \n\t     Q\t  There's been a suggestion that he's going to this \nretreat to avoid having to participate in the gay rights -- or appear \nor have any involvement in the gay rights march.\n\t     \n\t     MS. MYERS:  No, I think this is something he's been \ndiscussing for a long time -- appearing at the Senate Democratic \nretreat.\n\t     \n\t     Q\t  The weekend?\n\t     \n\t     MS. MYERS:  Weekend?  Don't know -- the only thing on \nright now is the radio address on Saturday.\n\t     \n\t     Q\t  Any travel plans?\n\t     \n\t     MS. MYERS:  If it changes -- none right now.\n\t     \n\t     Q\t  He's not going to be off campaigning for his \nstimulus package?\n\t     \n\t     MS. MYERS:  No specific plans right now.\n\t     \n\t     Q\t  What about mid-week?  Anything likely?\n\t     \n\t     MS. MYERS:  It's possible.  Yes, I think it's likely \nthat we'll travel next week -- certainly the weekend.\n\t     \n\t     Q\t  Has he called Thurmond about his daughter?\n\t     \n\t     MS. MYERS:  I don't know.  I'll check.\n\t     \n\t     Q\t  Going to name a drug czar this weekend?\n\t     \n\t     MS. MYERS:  This weekend?  I don't believe so.\n\t     \n\t     Q\t  And the radio address on Saturday -- is that going \nto be focused on the stimulus package?\n\t     \n\t     MS. MYERS:  I'm sure it will.\n\t     \n\t     THE PRESS:  Thank you.\n\n                                 END10:10 A.M. EDT\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3195, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Re: Solar Sail Data\nOrganization: University of Illinois at Urbana\nLines: 24\n\nhiggins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey) writes:\n\n>snydefj@eng.auburn.edu (Frank J. Snyder) writes:\n\n>> I am looking for any information concerning projects involving Solar\n>>  Sails. [...]\n>> Are there any groups out there currently involved in such a project ?\n\nBill says ...\n\n>Also there is a nontechnical book on solar sailing by Louis Friedman,\n>a technical one by a guy whose name escapes me (help me out, Josh),\n\nI presume the one you refer to is \"Space Sailing\" by Jerome L. Wright.  He \nworked on solar sails while at JPL and as CEO of General Astronautics.  I'll\nfurnish ordering info upon request.\n\nThe Friedman book is called \"Starsailing: Solar Sails and Interstellar Travel.\"\nIt was available from the Planetary Society a few years ago, I don't know if\nit still is.\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n\t\t    \"Find a way or make one.\"\n\t             -attributed to Hannibal\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3196, "properties": {"category": "rec.sport.baseball", "text": "From: mss@netcom.com (Mark Singer)\nSubject: Darrrrrrrrryl\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 64\n\n\n\nThe media is beating the incident at Dodger Stadium on Wednesday to\ndeath, but I haven't seen anything in rsb yet.\n\nGerald Perry of the Cardinals pinch hit in the eighth inning with two\non and his club down by a run.  He stroked a line drive into the\nright field corner.  The ball cleared the three-foot high fence and\nwent into the crowd.  Darryl, racing over from right center, got to\nthe spot in time to reach his glove up over the short fence, but he\nmissed the ball.  A fan sitting in the front row, wearing a mitt,\nreached up and caught the ball.  Home run.\n\nNow I've seen the replay several times and I have concluded that\nDarryl missed the ball, and that the fan's glove was essentially\nbehind Darryl's.  Several Dodger fans with seats in the immediate\nvicinity have claimed that the fan unquestionably interfered with\nStrawberry.  What cannot be disputed, however, is that the fan\nwho caught the ball never took his eye off it;  he was oblivious\nto where the fielder was playing.  He was also quite exuberant as\nsoon as he realized he had made the catch.\n\nThat exuberance disappeared immediately, however, when Strawberry\nwent into a tirade at the man.  All reports indicate he used a lot\nof profanity and accused the man of interference, and therefore of\ncosting the Dodgers a game.  Shortly afterwards other fans hurled\nfood and beverages toward the man who made the catch.  Dodger Stadium\nofficials started to remove him from the park, but then relented and\njust relocated him to another area.  In an interview after the game,\nLasorda blamed the fan for the loss.  Strawberry also went into a\ntirade about how the fans are stupid and they don't care about \nwinning.  L.A. Times columnists similarly blasted the man who made\nthe catch.\n\nBefore each Dodger game the public address announcer makes a speech\nwherein he says that fans are welcome to the souvenirs of balls that\nare hit into the stands as long as they do not interfere with any \nthat are in the field of play.  Was the fan wrong?  Should he have\nbeen more aware of the situation and acted to avoid any possibility\nof interference?  Or was he human and just reacting?  By the way, he\nis a season ticket holder and on his request the Dodgers have relocated\nhis seats to another area of the Stadium where future interference is\nimpossible.\n\nOthers have questioned why Darryl should be so concerned with what\nthe fan did when he has a grand total of 1 rbi through the first\nnine games.\n\nI question what he was doing in right center with a left-handed pull\nhitter up and the game on the line.  Had he been closer to the play,\nhe certainly would have had a much better chance of catching the ball.\n\nBut I guess the big debate continues as to what are the responsibilities\nof the fan.\n\n\n\n--\tThe Beastmaster\n\n\n\n-- \nMark Singer    \nmss@netcom.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3197, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mfraser@wimsey.bc.ca (Mark Fraser)\nSubject: IRQ Limits - Help\nOrganization: Wimsey Information Services\nDistribution: na\nLines: 23\n\nI would like advice on how to configure my 486 to accept:\n- Com1 + Com2  (currently on IRQ 4 and 3)\n- LPT1 (IRQ7)\n- Bus Mouse (IRQ5)\n- Sound Card (no idea what to do - can be set to any)\n- \nusing IRQ2 for Bus MOuse gobbled up too many cycles, and caused\nloss of communications with floppy disks, and a few other \nproblems.\n\nI could, I suppose, switch the 2 com devices externally, and disable\nthe second port on the Super IO card, but I really want to \nhave them both available.\n\nCOuld the sound card use IRQ2 without horsing up the works?\n\nAll replies apppreciated - and I only just subscribed to this\nnewsgroup - I assume there is an FAQ somewhere (rather, I'm\nsure someone will tell me about it....)\n\nthanks\nMark Fraser\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3198, "properties": {"category": "sci.electronics", "text": "From: kludge@grissom.larc.nasa.gov (Scott Dorsey)\nSubject: Re: What is Zero dB????\nArticle-I.D.: rave.1pseebINNhn6\nOrganization: NASA Langley Research Center and Reptile Farm\nLines: 14\nNNTP-Posting-Host: grissom.larc.nasa.gov\n\nIn article <1993Apr6.092913.18724@sei.cmu.edu> rsd@sei.cmu.edu (Richard S D'Ippolito) writes:\n>\n>In article <1pkveuINNduk@gap.caltech.edu>, Joseph Chiu writes:\n>\n>> The Ohmite company was the first to characterize resistances by numbers, thus\n>> our use of the Ohms...\n>\n>\n>Yeah, right.  And the company was started by George Simon Ohmite.\n\nThat's completely inaccurate.  The ohm was an original standard made equal\nto a the resistance of a standardized electric stove heating element.  That's\nwhere the song \"Ohm on the Range\" came from, of course.\n--scott\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3199, "properties": {"category": "alt.atheism", "text": "From: frank@D012S658.uucp (Frank O'Dwyer)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Siemens-Nixdorf AG\nLines: 28\nNNTP-Posting-Host: d012s658.ap.mchp.sni.de\n\nIn article <1993Apr15.125245.12872@abo.fi> MANDTBACKA@FINABO.ABO.FI (Mats Andtbacka) writes:\n|In <1qie61$fkt@horus.ap.mchp.sni.de> frank@D012S658.uucp writes:\n|> In article <30114@ursa.bear.com> halat@pooh.bears (Jim Halat) writes:\n|\n|> #I'm one of those people who does not know what the word objective means \n|> #when put next to the word morality.  I assume its an idiom and cannot\n|> #be defined by its separate terms.\n|> #\n|> #Give it a try.\n|> \n|> Objective morality is morality built from objective values.\n|\n|      \"And these objective values are ... ?\"\n|Please be specific, and more importantly, motivate.\n\nI'll take a wild guess and say Freedom is objectively valuable.  I base\nthis on the assumption that if everyone in the world were deprived utterly\nof their freedom (so that their every act was contrary to their volition),\nalmost all would want to complain.  Therefore I take it that to assert or\nbelieve that \"Freedom is not very valuable\", when almost everyone can see\nthat it is, is every bit as absurd as to assert \"it is not raining\" on\na rainy day.  I take this to be a candidate for an objective value, and it\nit is a necessary condition for objective morality that objective values\nsuch as this exist.\n\n-- \nFrank O'Dwyer                                  'I'm not hatching That'\nodwyer@sse.ie                                  from \"Hens\",  by Evelyn Conlon\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3200, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: Orbital RepairStation\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 20\n\nIn article <C5HCBo.Joy@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:\n\n>The biggest problem with this is that all orbits are not alike.  It can\n>actually be more expensive to reach a satellite from another orbit than\n>from the ground.  \n\nBut with cheaper fuel from space based sources it will be cheaper to \nreach more orbits than from the ground.\n\nAlso remember, that the presence of a repair/supply facility adds value\nto the space around it. If you can put your satellite in an orbit where it\ncan be reached by a ready source of supply you can make it cheaper and gain\nbenefit from economies of scale.\n\n  Allen\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------58 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3201, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: Israeli Terrorism\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 28\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <1rd7eo$1a4@usenet.INS.CWRU.Edu>, cy779@cleveland.Freenet.Edu (Anas Omran) writes:\n|> \n|> There are many neutral human rights organizations which always report\n|> on the situation in the O.T.  But, as most people used to see on TV, the\n|> Israelis do not allow them to go deep there in the O.T.  The Israelis \n|> used to arrest and sometimes to kill some of these neutral reporters.  \n|> So, this is another kind of terrorism committed by the Jews in Palestine.\n|> They do not allow fair and neutral coverage of the situation in Palestine.\n\nPlease list the names of some of those neutral reporters that were killed\nin the \"O.T.\".  It is also interesting to note that at the outbreak of\nthe intifada, palestinian parties quickly began orchestrating their\ndemonstrations for the benefit of the media.  Having spoken to a Danish\nreporter who covered the initfada, I know of at least one case where\nhe found out that a \"mass demonstration\" on the outskirts of Gaza was\nsetup for himself and his colleagues.  When I asked whether the footage\nshot was sent he replied affirmatively, \"after all, it did happen.\"\nWhen this became the case, the IDF began closing sensitive trouble\nspots to reporters.\n\n|> Anas Omran\n|> \n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninja of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3202, "properties": {"category": "sci.electronics", "text": "From: babb@sciences.sdsu.edu (J. Babb)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: SDSU - LARC\nLines: 8\nDistribution: world\nNNTP-Posting-Host: larc.sdsu.edu\n\n> I really don't know where to post this question so I figured that\n> this board would be most appropriate.\n\ntry sci.energy\n\nJeff Babb\nbabb@sciences.sdsu.edu   babb@ucssun1.sdsu.edu\nProgrammer, SDSU - LARC\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3203, "properties": {"category": "rec.autos", "text": "From: mcostell@oasys.dt.navy.mil (Malcolm G. Costello)\nSubject: Re: Changing oil by self.\nReply-To: mcostell@oasys.dt.navy.mil (Malcolm G. Costello)\nDistribution: usa\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 35\n\nIn rec.autos, boyle@cactus.org (Craig Boyle) writes:\nxIn article <1qgi8eINNhs5@skeena.ucs.ubc.ca> yiklam@unixg.ubc.ca (Yik Chong Lam)\nx writes:\nx>Hello,\nx>\nx>       Does anyone know how to take out the bolt under the engine\nx>compartment?  Should I turn clockwise or counter?  I tried any kind\nx>of lubricants, WD-40,etc, but I still failed!\nx>       Do you think I can use a electric drill( change to a suitable\nx>bit ) to turn it out?  If I can succeed, can I re-tighten it not too\nx>tight, is it safe without oil leak?\nx\nxAssuming you don't have a Russian car with opposite threads, then\nxyou turn counterclockwise. I would get some professional\nxhelp here, you may not have located the draing plug and\nxactually be trying to loosen something else.\nx\nxCraig\nx>\nx>\nx>Thank you very much in advance------  Winson\nx>\n This reminds me of the first time my cousin did an oil change on his\ncar. He crawled under, removed a bolt, drained the fluid, replaced the\nbolt, then carefully poured in 5 quarts of oil. Didn't bother to\ncheck the dip stick, just drove off. Didn't get too far till me found\nout that he'd drained the 4-speed trans and dumped an extra 5 quarts\ninto the engine.:( MORAL: As Craig said don't be ashamed to get some\n*in person* help the first time.\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nMack Costello <mcostell@oasys.dt.navy.mil> Code 65.1 (formerly 1720.1)\nDavid Taylor Model Basin, Carderock Division Hq. NSWC    ___/-\\____\nBethesda, MD 20084-5000   Phone (301) 227-2431          (__________>|\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.146+0000", "event": "documents", "entityId": 3204, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mty015@cck.coventry.ac.uk (Colin Paterson)\nSubject: Sound Blaster MIDI\nNntp-Posting-Host: cc_sysk\nOrganization: The society for the terminally hard of thinking\nLines: 30\n\nHi,\n   I'm currently in the process of writing a number of PD programs\nfor the sound blaster. The first of which is a CMF voice editor which\nis hopefully going to be available soon (as soon as I can get it to \nan FTP site).\n\nAnyway the next stage is to use the midi port to enter music and play\nthe FM synth remotely. The problem is that I have little or no info\non the SB midi port.\n\nI have tried using the Sound blaster freedom project routines, however\nthis just results in the port locking after a couple of accesses and\nloss the of note velocity data byte.\n\nI am using Turbo C and would be grateful for any info or source fragments\nmay help. When I was in Berlin this summer I saw a book which seemed to\nhave all this information, but my German is poor to say the least, if anyone\nhas this book could they please mail me.\n\nMy second request for help concerns standard file formats (how can a file \nformat be standard if you keep it secret ?) I need to know the file format \nfor instrument bank files *.BNK and Roland music files *.ROL.\n\nFinally does anyone have a source for displaying PCX or GIF files to EGA\nor VGA monitors.\n\nPlease Help, You know it makes sense.\n\nColin\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3205, "properties": {"category": "rec.sport.baseball", "text": "From:  (Sean Garrison)\nSubject: Re: Bonilla\nNntp-Posting-Host: berkeley-kstar-node.net.yale.edu\nOrganization: Yale Univeristy\nLines: 37\n\nIn article <1993Apr17.213553.2181@organpipe.uug.arizona.edu>,\nkrueger@helium.gas.uug.arizona.edu (theodore r krueger) wrote:\n \n> Isn't it funny that  a white person calls comeone a \"nigger\" and gets banned \n> for a year, but a black person calls someone a \"faggot\" and there is no \n> consequence?\n\n> Ted\n\n\nTed, you're missing a vital point.  As Roger Lustig pointed out in a\nprevious response, the reason why Schott was banned from baseball was\nbecause she had been known to call and think in a racially biased manner on\na constant basis.  Such thoughts affected her hiring practices.  Bonilla,\non the other hand, was found to have mentioned this one word a single time.\n If he had been known to go around, criticizing homosexuals, it would be a\ndifferent story.  Furthermore, he is merely an athlete.  He doesn't have to\nhire anyone as Schott had to do.  Dave Pallone, the former NL umpire who is\nan admitted homosexual, has decided to assist in a protest before a Mets\ngame at Shea.  He, like you, thinks that Bonilla should be suspended from\nbaseball.  Pallone is hoping for a year's suspension.  In my opinion,\nthat's downright ludicrous.  As Howie Rose on WFAN said, if you start\nsuspending athletes who have mentioned a derogatory word even a single time\nunder whatever conditions, then you'd probably have enough people remaining\nto play a three-on-three game.  Now, honestly, if you truly analyze the\ndifferences between the two cases that you bring up in your article, I\nwould think that you'd reconsider your thoughts.\n\n\n                                    -Sean\n\n\n\n*******************************************************************************\n  \"Behind the bag!\"\n            - Vin Scully\n*******************************************************************************\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3206, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: AT&T Bell Laboratories\nLines: 66\n\nIn article <C5sy1z.4tD@demon.co.uk>, Graham Toal <gtoal@gtoal.com> writes:\n> In article <1993Apr20.192105.11751@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n> :Thousands?  Tens of thousands?  Do some arithmetic, please...  Skipjack\n> :has 2^80 possible keys.\n> \n> We don't yet know if all 80 bits count.\n\nThat doesn't worry me at all; they're not going to cheat at something\nthey can get caught at.  And key size is one of the things that can be\nverified externally.  Feed lots of random key/input pairs into the\nchip, then try flipping random key bits, and see what happens to the\noutput.  We already know what *should* happen -- about half the output\nbits should vary, on average, from a 1-bit key change or input change.\n\nIf they were out to build a weak cryptosystem, it might be the case that\nsome of the bits are much less powerful than others, in the sense that\nthey only enter into the encryption very late in the game.  By contrast,\nDES was designed to use each key bit as early as possible; the 50% output\nchange rate appears as early as round 5.  Again, though, I don't think\nNSA is going to cheat that crudely; they're likely to get caught.\n\nRemember that they've promised to let a committee of outside experts see\nthe cryptosystem design.  If you assume something DES-like, a biased\nsubkey generation schedule will stick out like a sore thumb.  The committee\ncan and should run lots of tests, and retain the output.  This can be verified\nlater against the chip.  And yes, the civilian community has at least some\nsecure storage facilities that I don't think even NSA can get into without\nit being noticed, until Fort Meade gets its transporter working again.\n(Oops -- I don't think I was supposed to talk about that...)  The committee\nmembers can even retain secure copies of the code -- in two halves, which\nyou have to XOR together to recover the program...\n\nSeriously, there are, I think, problems with this whole scheme.  But the\npeople who invented it aren't stupid, and they've been in the crypto game\nand the smoke-and-mirrors game far longer than most of us.  They're not\ngoing to lie in ways that can be detected easily, since their credibility\nis the *only* thing they can use to sell this system.  If they've lied\nabout the civilian committee, no one will believe them about the absence\nof other back doors.  If they've lied about the key size, no one will\nbelieve that they haven't copied the programming disk with the U keys.\nIf they've lied about obvious aspects of the strength of the cryptosystem,\nno one will believe the escrow agencies aren't in cahoots with them.\n\nThat isn't to say that they aren't lying about all those other things\nanyway.  And I'm certainly not claiming that NSA can't build a cryptosystem\nwith a back door that the committee can't find -- look how long it took\nfor folks to believe that the S-boxes weren't sabotaged.  It's entirely\npossible that the committee will release an ambiguous report, for just\nsuch reasons.  But that's a subtle point (i.e., one you can't explain to\na Senator...).\n\n> Anyway, its looking like the\n> keys and escrow arrangements are smoke and mirrors to cover the way the NSA\n> can regenerate the key from the transmitted serial number.\n\nI don't like the unit key generation process any better than you do.\nHowever -- S1 and S2 are supposed to be under control of the same\nescrow agents.  If they can't be trusted to keep the seed values secure,\nthey can't be trusted to keep the half-keys secure.\n\nI still don't know if or when S1 and S2 change.  I thought I had seen\nsomething about them being constant, but I just reread Denning's technical\ninformation post, and it doesn't say anything, one way or the other.\n\n\n\t\t--Steve Bellovin\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3207, "properties": {"category": "soc.religion.christian", "text": "From: bluelobster+@cmu.edu (David O Hunt)\nSubject: Re: Serbian genocide Work of God?\nOrganization: Carnegie Mellon, Pittsburgh, PA\nLines: 24\n\nOn 23-Apr-93 in Serbian genocide Work of God?\nuser James Sledd@ssdc.sas.upe writes:\n>Are the governments of the United States and Europe not moving\n>to end the ethnic cleansing by the Serbs because the targets are\n>muslims?\n\nBingo - that and there's no oil there.\n\nOn 23-Apr-93 in Serbian genocide Work of God?\nuser James Sledd@ssdc.sas.upe writes:\n>Are the Serbs doing the work of God?  Hmm...\n\nIf this is the \"work of god\" then I'm doubly glad that I don't worship him.\n\n\n\nDavid Hunt - Graduate Slave |     My mind is my own.      | Towards both a\nMechanical Engineering      | So are my ideas & opinions. | Palestinian and\nCarnegie Mellon University  | <<<Use Golden Rule v2.0>>>  | Jewish homeland!\n====T=H=E=R=E===I=S===N=O===G=O=D=========T=H=E=R=E===I=S===N=O===G=O=D=====\nEmail:  bluelobster+@cmu.edu    Working towards my \"Piled Higher and Deeper\"\n\nIt will be a great day when scientists and engineers have all the R&D money\nthey need and religions have to beg for money to pay the priest.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3208, "properties": {"category": "sci.med", "text": "From: cash@convex.com (Peter Cash)\nSubject: Re: Need advice with doctor-patient relationship problem\nNntp-Posting-Host: zeppelin.convex.com\nOrganization: The Instrumentality\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 16\n\nIn article <C5L9qB.4y5@athena.cs.uga.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>Sounds as though his heart's in the right place, but he is not adept at\n>expressing it.  What you received was _meant_ to be a profound apology.\n>Apologies delivered by overworked shy people often come out like that...\n\nHis _heart_? This jerk doesn't have a heart, and it beats me why you're\napologizing for him. In my book, behavior like this is unprofessional,\ninexcusable, and beyond the pale. If he's overworked, it's because he's too\nbusy raking in the bucks. More likely, he just likes to push women around.\nI'd fire the s.o.b., and get myself another doctor.\n\n-- \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n             |      Die Welt ist alles, was Zerfall ist.     |\nPeter Cash   |       (apologies to Ludwig Wittgenstein)      |cash@convex.com\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3209, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Earl D. Fife <fife@calvin.edu>\nSubject: Re: printer, blp elite\nX-Xxdate: Thu, 15 Apr 93 01:02:42 GMT\nNntp-Posting-Host: 153.106.4.42\nOrganization: Calvin College\nX-Useragent: Nuntius v1.1.1d20\nLines: 42\n\nIn article <ghoetker.734703475@nova> Glen Hoetker,\nghoetker@nova.sti.nasa.gov writes:\n> I'm in the market for a Post-script compatible laser writer.  My needs\n> are pretty modest so 300 dpi, 4 pages a minute would be just fine.\n> My budget is also pretty modest, so inexpensive would also be good.\n> It will be working from a single mac, but networkability would \n> probably be a good investment for the future.\n>\n >With that in mind...\n>\n> 1) Anyone have comments about the suitability/quality/value of a GCC\n> BLP Elite printer?\n\nI just recently purchased the GCC BLP Elite and I really like it.  My\nneeds\nare much the same as what you describe.  In addition, I wanted to get one\nthat\nI could access via AppleTalk, so that eliminated the new line of\ninexpensive \nprinters from Apple.  The print quality is good to excellent based on\nwhat \nfont you're using and what paper you use.  I'm still experimenting with \ndifferent papers, but a medium grade laser printer paper seems to work\nfine.\n\nPrinting envelopes, transpariencies, letter head, or other single feed\njobs is\nvery easy.  There is an adjustable, automatic centering, guide on top of\nthe\nsheet feeder which aligns the paper properly (and doesn't feed a sheet\nfrom\nthe sheet feeder, as some do).\n\n(I have no affiliation with GCC, just a satisfied customer.)\n\n-------------------------------------------------------------------------\n\nEarl D. Fife          |          Department of Mathematics\nfife@calvin.edu       |          Calvin College\n(616)957-6403         |          Grand Rapids, MI 49546\n\n=========================================================================\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3210, "properties": {"category": "comp.windows.x", "text": "Organization: Ministry of Education, Computer Center NETNEWS system V2.3\nFrom: <CHLBS079@TWNMOE10.BITNET>\nSubject: change default visual\nLines: 5\n\nMy HP720 workstation uses PseudoColor (id 0x21, 255 colors) as the\n\ndefault visual.  How can I start X with different visual as default?\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3211, "properties": {"category": "comp.graphics", "text": "From: emarciniak@email.bony.com\nSubject: Image of pictures...\nLines: 8\nOrganization: ***\n\nHi there,\n  I am looking for advice on software/hardware package for making, \nstoring and processing of pictures. The ideal software would allow me to\ncahnge size of the picture, edit it ( it means add text below, above...) \nand the most important is it would have DOS command interface...\nThank you in advance...\nemanuel marciniak\nthe bank of new york.. \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3212, "properties": {"category": "sci.electronics", "text": "From: mhald@lynx.dac.northeastern.edu (Mark Hald)\nSubject: Re: Dayton Hamfest\nOrganization: Northeastern University, Boston, MA. 02115, USA\nDistribution: usa\nLines: 13\n\nI booked a hotel (Red Roof Inn) last week in Cincinnati (Blue Ash, which\nis at the northern tip of the metro. Cincy area).  I chose it for a few\nreasons.\n  1.  All hotels in and near Dayton were booked solid.\n  2.  This hotel is only costing $28/night.\n  3.  It was one of about 4 rooms left on the night I reserved.\n  4.  Cincinnati probably has more to to at night than Dayton.  I intend\n      to hit the riverboat entertainment at dusk!\n\nIf anyone has other suggestions for nightlife, please let me know of\nother hot spots.  Thanks!\n\nMark\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3213, "properties": {"category": "sci.electronics", "text": "From: alee@ecs.umass.edu\nSubject: Need to find out number to a phone line\nLines: 13\n\n\nGreetings!\n      \n        Situation:  I have a phone jack mounted on a wall.  I don't\n                    know the number of the line.  And I don't want\n                    to call up the operator to place a trace on it.\n\n        Question:   Is there a certain device out there that I can\n                    use to find out the number to the line?\n        Thanks for any response.\n                                                    Al\n\n  \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3214, "properties": {"category": "talk.religion.misc", "text": "From: af664@yfn.ysu.edu (Frank DeCenso, Jr.)\nSubject: BIBLICAL CONTRADICTIONS ANSWERED (Judas)\nOrganization: Youngstown State/Youngstown Free-Net\nLines: 591\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nI posted this several days ago for Dave Butler.  He may have missed it - my\nUsenet board has changed a little.  Just in case he missed it, here it is again.\n\n\nDave Butler writes...\n \nFrom: daveb@pogo.wv.tek.com (Dave Butler)\n>Newsgroups: talk.religion.misc\nSubject: Re: NEW BIBLICAL CONTRADICTIONS [Fallaciously] ANSWERED (Judas)\nDate: Thu Apr  1 20:52:11 1993\n \n\"I can basically restrict this post to showing the type of evidence Mr DeCenso\nhas presented, and answering his two questions (and a couple of his spurious\ninsults and false claims).\"\n \nMY REPLY...\nO.K.\n \nDB...\n[By the way Mr DeCenso, you really should have looked in the index of your\nBauer-Arndt-Gingrich Greek lexicon.  You would have found that the word in\nActs for \"lot\" is \"kleros,\" not \"CHORION\" as stated by Mr Archer, and nowhere\nin the very large discussion of kleros in done the to \"Theological Dictionary\nof the New Testament\" by Bromley, is the meaning \"burial plot\" discussed.  It\ndiscusses the forms of \"kleros\" (eg: kleros, kleroo, etc), and the various\nmeanings of \"kleros\" (eg: \"plot of land,\" and \"inheritance\"), but mentions\nnothing about CHORION or \"burial plot.\" (Why does this not surprise me?) Thus\nit would seem to be a very good thing you dumped Archer as a reference.]\n \nDB later corrected himself...\n_____________________________________________________________________\nFrom: daveb@pogo.wv.tek.com (Dave Butler)\n>Newsgroups: talk.religion.misc\nSubject: Re: NEW BIBLICAL CONTRADICTIONS [Fallaciously] ANSWERED (Judas)\nDate: Fri Apr  2 02:32:11 1993\n \nI owe the group an apology.  It is my habit to check my articles before and\nafter their submission for errors.  In my last article I stated:\n \n> (By the way Mr DeCenso, you really should have looked in the index of your\n> Bauer-Arndt-Gingrich Greek lexicon.  You would have found that the word in\n> Acts for \"lot\" is \"kleros,\" not \"CHORION\" as stated by Mr Archer, and nowhere\n> in the very large discussion of kleros in done the to \"Theological Dictionary\n> of the New Testament\" by Bromley, is the meaning \"burial plot\" discussed.  It\n> discusses the forms of \"kleros\" (eg: kleros, kleroo, etc), and the various\n> meanings of \"kleros\" (eg: \"plot of land,\" and \"inheritance\"), but mentions\n> nothing about CHORION or \"burial plot.\" (Why does this not surprise me?) Thus\n> it would seem to be a very good thing you dumped Archer as a reference).\n \nI was wrong. I admit that I do not have a handle on Greek grammar, and thus\nconfused \"kleros\", the second to last word in Acts 1:17 as being the plot of\nland discussed.  In actuality it is \"chorion\", which is the last word Acts\n1:18.  Unfortunately my Greek dictionary does not discuss \"chorion\" so I\ncannot report as to the nuances of the word.\n \nI don't know if someone else would have caught this, though I am sure that\nsomeone would be able to do so, but I have an aversion to disseminating\nmistakes, especially when someone else might use that mistake to prove a point\"\n \n_____________________________________________________________________\n \nMY REPLY...\nVary noble of you Dave.  I didn't want to have to go to x number of sources to\nshow you wrong.  (Although I am researching CHORION a little).\n \nDB...\n\"Of course the only other reference Mr DeCenso has given is Bullinger.  And\nBullinger uses such ridiculous exegisis that when I accused Mr DeCenso of\nactually believing Bullinger, he replied that I misquoted him:\n \n>> \"And you maintain that you find such exegesis convincing?  Oh dear.\"\n>\n> My Reply...\n> Your misquotes of me are astounding, Dave.  Read the beginning of this part\nof > my response to see what I REALLY said in my posting of this article.\n \n [Actually Mr DeCenso, you said that there was \"benefit\" to our argument, in\n  that it caused to to rediscover Bullinger's exegisis.  I did not realize\n  that you would find such garbage beneficial, unless you were convinced by\n  it].\"\n \nMY REPLY...\nThank you for correcting your restating of my points.\n \nDB...\n\"and Mr DeCenso also replied:\n \n> Dave, these are not necessarily my views; they are Bullinger's.  WE will\n> discuss the land issue in later posts, I'm sure.  I'm only responding to\n>this one you have directed re: Bullinger's views because it's enjoyable.\n \nThus I apologize for thinking that even Mr DeCenso could find such \"drek\"\nconvincing....he should specify which parts of Bullinger he finds convincing\nand quit hiding behind a disingenuous mask of \"This is what Bullinger\nbelieved, not necessarily what I believe.\" So which is it Mr DeCenso? Do you\nfind the exegisis convincing or not?)\"\n \nMY REPLY...\nOne of my purposes in debating these alleged contradictions with you and\nothers is to diseminate many different views of possible reconciliations\nraised by various Bible scholars and students alike.  When I present MY VIEWS,\nI will clearly distinguish them from now on.\n \nDB...\n\"Of course without Archer and Bullinger we find that Mr DeCenso has presented\nno Greek exegisis at all, and Mr DeCenso has made a big thing about my not\nreferring back to the actual Greek.  Thus we find this demand on his part for\nquality Greek exegisis to be a hypocritical requirement.\"\n \nMY REPLY...\nGood point.  But in your declaring that these passages are contradictory, you\nhave produced only superficial reasonings and observations. Nor have you dug\ndeeper.  I'm glad you have begun in this post.  I will begin Greek studies on\nthese passages in more depth than I thought necessary, as well.\n \nDB...\n\"It would be appropriate to look at what Mr DeCenso has actually USED as\nevidence.  Now we know what he claims for a standard, as he has stated it\noften enough:\n \n> (a) the text itself\n> (b) parallel passages\n> (c) other pertinent Scriptures\n> (d) historical context\n> (e) historical content\n> (f) other pertinent historical info\n> (g) cultural context\n> (h) cultural content\n> (i) other pertinent cultural info\n> (j) grammatical construction\n> (k) Hebrew and Greek word studies\n> (l) etc.\n \nBut are these actual standards he has used, or simply empty hyperbole.  Let's\nsee, he has used (a), and since he is trying to reconcile it to other\npassages, we see that he has also used (b).  On the other hand he has\npresented no use of:\n \n(d) historical context                or\n(e) historical content                or\n(f) other pertinent historical info   or\n(g) cultural context                  or\n(h) cultural content                  or\n(i) other pertinent cultural info     or\n(j) grammatical construction          or even\n(k) Hebrew and Greek word studies [remember, Archer and Bullinger don't count]\n \nThus we find his vaunted criteria for exegisis is just empty mouthings.\"\n \nMY REPLY...\nQuestion:  Do you find such criteria important?  If so, do you plan on starting\nto use them to the best of your ability, or will you continue to present\nshallow observations (I don't mean this in a bad way).\nAt this point in our _debates_, I have not found it necessary to present a\ntotal exegetical analysis of these passages, since we seem to keep beating\naround the bush and not getting into the core of the verses.  I do not believe\nit necessary to use many of the above criteria to refute your arguments re:\nJudas in Acts and Matthew, but I will do my best from this point on to use\nseveral of the above criteria, since you desire me to.  I hope you will also.\nIt will greatly enhance our study of these passages.\n \nDB...\n\"The only thing he has actually used, beyond the passage itself, is any other\npassage.  Thus Mr DeCenso should be honest and note that most of his list is\nred herring and his only real criteria seems to be:\n \n> (a) the text itself\n> (b) parallel passages\n \nMY REPLY...\nThe reason is simple...you are mistating the passages.  You claim that the\nPASSAGES contradict one another; I do not see the PASSAGES contradicting one\nanother.\n(1) They may very well be complimentary, as many scholarly sources mention;\n(2) Matthew may not be presenting Judas' death, as you claim.  But we'll look\nat your defense of this later.\n \nAlso, the \"reward of iniquity\" in the Acts PASSAGE may not be the 30 pieces of\nsilver in Matthew's PASSAGES.  (Although you have a valiant attempt later at\nstating why you believe it is).\n \nAt this beginning stages in our debates, we are laying some Scriptural\ngroundwork, which will be expanded upon through deeper exegesis.\n \nDB...\n\"Of course the only reason I can see to so drastically reinterpret a passage\nas he has done with Judas' death, is to make it agree with another passage so\nthat both could be considered correct.\"\n \nMY REPLY...\nOne of the reasons I have given a different exegetical view of the passages is\nthat you seem to think the majority of scholarship is wrong in concluding these\npassages are complimentary.  However, I see no problem in Tony Rose's\nexplanation of Judas' death...\n \n_____________________________________________________________________\n \nHOW WOULD YOU EXPLAIN THE INACCURACY BETWEEN JUDAS HANGING\nHIMSELF IN MATTHEW 27:5 AND \"FALLING HEADLONG HE BURST OPEN\"\n=============================================================\n \nThis question of the manner in which Judas died is one with which we are\nconstantly confronted in our travels. Many people point to the apparent\ndiscrepancy in the two accounts as an obvious, irreconcilable error.\nSome have gone so far as to say that the idea of an inerrant Bible is\ndestroyed by these contradictory accounts. However, this is not the case at\nall.\nMatthew relates that Judas hanged himself, while Peter tells us he fell and\nwas crushed by the impact. The two statements are indeed different, but do\nthey necessarily contradict each other?\nMatthew does not say that Judas did not fall; neither does Peter say that\nJudas did not hang himself. This is not a matter of one person calling\nsomething black and the other person calling it white. Both accounts can be\ntrue and supplementary.\nA possible reconstruction would be this: Judas hanged himself on a tree on the\nedge of a precipice that overlooked the valley of Hinnom. After he hung there\nfor some time, the limb of the tree snapped or the rope gave way and Judas\nfell down the ledge, mangling his body in the process.\nThe fall could have been before *or* after death as either would fit this\nexplanation. This possibility is entirely natural when the terrain of the\nvalley of Hinnom is examined.  From the bottom of the valley, you can see\nrocky terraces 25 to 40 feet in height and almost perpendicular.\nThere are still trees around the ledges and a rocky pavement at the bottom.\nTherefore, it is easy to conclude that Judas struck one of the jagged rocks on\nthis way down, tearing his body open. It is important to remember that we are\nnot told how long Judas remained hanging from the tree or how advanced\nwas the decomposition of his body before his fall.\nLouis Gaussen relates a story of a man who was determined to kill himself.\nThis individual placed himself on the sill of a high window and pointed a\npistol at his head. He then pulled the trigger and leaped from the window at\nthe same time.\nOn the other hand, a person could say that this man took his life by shooting\nhimself, while another could rightly contend he committed suicide by jumping\nform the tall building. In this case, both are true, as both are true in the\ncase of Matthew's and Peter's accounts of the death of Judas. It is merely a\nsituation of different perspectives of the same event.\n \n_____________________________________________________________________\n \nYour only reason for rejecting this is, I believe, your attempt to discredit\ninerrancy.  You haven't related how this is IMPOSSIBLE or highly unlikely.\nHere's what you said in an earlier post...\n \n_____________________________________________________________________\nDB [quoting Tony Rose]...\n> There are still trees around the ledges and a rocky pavement at the bottom.\n> Therefore, it is easy to conclude that Judas struck one of the jagged rocks\n> on this way down, tearing his body open. It is important to remember that we\n>                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> are not told how long Judas remained hanging from the tree or how advanced\n> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> was the decomposition of his body before his fall.\n \n\"The added text in this version is so heavy that, assuming you are truly so\nopposed to such tactics, you should find it not credible.  But you seem to\nfind Tony Rose's eisegesis satisfactory, while clearly rejecting David\nJoslin's.\"\n \n_____________________________________________________________________\n \nHere, you discredit Tony's explanation based on what you deem too \"heavy\" for\nthe passages.  But you haven't addressed why you feel that way.  You can say\nit's a vain attempt to reconcile the contradiction, but that doesn't tell me it\ndidn't happen, nor have you shown why you reject that possibility.\n \nQuestions:  Is Matthew lying or is Luke lying?  Or are they both lying?  Or\nare either or both of them misinformed?  Why do you think there is such an\nalleged contradiction?  I do not think you have ever told us what you believe\nin this respect.\n \nDB...\n\"At present though, Mr DeCenso only asks two questions of me:\n \n> (1) You claim Acts and Matthew contradict one another in representing Judas'\n>     death.  I ask you again to provide evidence that Matthew stated Judas\n>     died in the hanging.\n> (2) You claim that the 30 pieces of silver in Matthew that Judas threw down\n>     in the temple and the chief priests used, is the \"reward of iniquity\"\n>     in Acts that pictures Judas in some way purchasing a field with;\n>     therefore there is a contradiction.  Prove that the 30 pieces of silver\n>     and the \"reward of iniquity\" are one and the same.\n \nActually I find question (1) to be a rather stupid request, but I will answer\nit because he now restricts himself to two points.  First I would point out\nthat hanging is a very efficient manner for ending a life.  In fact it is a\nbit of a fluke when someone survives hanging (except in fantasy cowboy\nmovies), and even then it usually referred to as an attempted hanging.\"\n \nMY REPLY...\nI work at an agency that investigates child abuse and neglect.  Today, I got a\ncall re: a child that attempted suicide by hanging himself because his mother\nis on crack.  He failed in his attempt and is in a child's psych ward at a\nlocal hospital.  Hanging attempts are not always successful.\n \nTo assume that because most hangings are successful, this one was also is\n\"begging the question\", if I may quote you.\n \n[Last night, listening to _The Bible Answer Man_ broadcast, The Christian\nResearch Institute's show, one of the scholars on there used several of these\nterms that you use.  I am not all that familiar with them.  The man on the BAM\nshow teaches Comparative Religion and Logic.  It was interesting]\n \nDB...\n\"This is so prevalent that, so that to say a man hung himself with no other\nqualifiers is synonymous with stating that he killed himself.\"\n \nMY REPLY...\nQualifiers are important at times, as we'll see in an OT passage I'll mention\nbelow.\nDoes hanging ALWAYS have this outcome?  Did Matthew, who is the only source we\nhave re: Judas hanging himself, state that Judas died as a result?  To say it's\nsynonymous means it has the same meaning as.  A boy (age 14) hung himself.  But\nhe lived.  This is only one of probably thousands of documented cases we can\ndiscover.\n \nDB...\n\"Now I am not alone in this thought; in fact, since Mr DeCenso so respects\nChristian scholarly (including Greek scholars) opinion, I did some research.\"\n \nMY REPLY...\nThank you, Dave.\n \nDB...\n\"Interestingly, not one of the Christian references I read, interpreted the\nhanging as being anything but a fatal suicide.              ^^^^^^^^^^^\n \nMY REPLY...\n[^^^ above, mine]\nSo it's OK to use Christian sources to back your points?  What about Tony's\nposition.  Do you value it or even consider it as a valid possibility?\n \nAlso, is it possible that the sources you read may be wrong, or lying, or\ndeceived in other parts of their books?  If so, should we do, as we have done\nwith Archer, toss them to the side and not value anything they say, including\ntheir \"interpretation\" of the hanging of Judas?  I am sure _you_ would find\nsome errors and maybe even some deception in those sources.\n \nYou also noted they \"interpreted\" the hanging as meaning he died.  Although\nthat is very possibly true, do you find that in the text itself?  Remember,\nthat's the first criteria we must examine.\n \nDB...\n\"This included:\n \n    \"The Biblical Knowledge Commentary\" by Woodward and Zuck\"\n \nMY REPLY...\nWhich I own.  It's a good source of commentary info.  But not inerrant.\n \nDB...\n    \"The Interpreters on Volume Commentary on the Bible\" by Laydon\n    \"The one volume Bible Commentary\" by J R Dunelow\n    \"Word meanings of the Testament\" Ralph Earl\n    \"The Abingdon Bible Commentary\" published by Abingdon\n    \"Harpers Bible Commentary\" by William Neal\n     (Actually I could have presented many more as well)\n \nMY REPLY...\nI appreciate your doing this research, Dave.  Maybe we are getting somewhere\nin how we both should approach these alleged contradictions - more in depth\nstudy.\n \nDB...\n\"In each case, these references specifically describe that the interpretation\nof Matt 27:5 as successful, suicide and thus I can only conclude that the\n                                        ^^^^^^^^^^^^^^^^^^^^^^^^\nGreek word \"apagchw\"(ie: hang oneself) is translated as a successful hanging.\"\n \nMY REPLY...\n[^^^ above, mine]\nNo you can't only conclude this, although, as Tony says, this was a highly\nprobable outcome.  But Matthew does not state death as being a result.\n \nThe Greek word is APAGCHO.  Matthew 27:5 is it's only occurrence in the New\nTestament.\n \nIn the Septuagint (the Greek translation of the OT used at the time of Jesus),\nit's only used in 2 Samuel 17:23 : \"Now when Ahithophel saw that his advice was\nnot followed, he saddled a donkey, and arose and went home to his house, to his\ncity. Then he put his household in order, and hanged himself, and died; and he\nwas buried in his father's tomb.\"             ^^^^^^^^^^^^^^^^^^^^^^^^\n \nNotice that not only is it stated that Ahithophel \"hanged himself\" [Gr. Sept.,\nAPAGCHO], but it explicitly adds, \"and died\".  Here we have no doubt of the\nresult.\nIn Matthew, we are not explicitly told Judas died.\n \nAlso, there is nothing in the Greek to suggest success or failure.  It simply\nmeans \"hang oneself\".\n \nDB...\n\"But Mr DeCenso, you are more than welcome to disagree and show more reputable\n                                                                     ^^^^^^^^^\nChristian scholars that insist that the hanging was not successful.\"\n \nMY REPLY...\n[^^^above, mine]\n\"Reputable\"?  You mean ones that have never erred?\nAs far as   insisting that the hanging was unsuccessful, that can't be done,\neven by me. ^^^^^^^^^\n \nAs I said in an earlier post...\n \n_____________________________________________________________________\nAlthough I still agree with Tony's exegesis as being the most probable\nexplanation regarding Judas' death (taking into account several criteria),\nI've recently noticed some new things in Matthew.\n \nMAT 27:5-8 Then he threw down the pieces of silver in the temple and departed,\nand went and hanged himself. But the chief priests took the silver pieces and\nsaid, \"It is not lawful to put them into the treasury, because they are the\nprice of blood.\" And they consulted together and bought with them the potter's\nfield, to bury strangers in. Therefore that field has been called the Field of\nBlood to this day.\n \nFirst of all, notice that the text does not say that Judas died as a result of\nhanging. All it says is that he \"went and hanged himself.\" Luke however, in\nActs, tells us that \"and falling headlong, he burst open in the middle and all\nhis entrails gushed out.\" This is a pretty clear indication (along with the\nother details given in Acts - Peter's speech, the need to pick a new apostle,\netc.) that at least after Judas' fall, he was dead. So the whole concept that\n                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^\nMatthew and Luke both recount Judas' death is highly probable, but not clear\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ncut.\n^^^\n_____________________________________________________________________\n \nI also wrote...\n \n_____________________________________________________________________\nMY REPLY...\n \nHere we have a stickler, Dave, that I have to say I just recently noticed.\nLet's look at the passage in Matthew:\n \nMAT 27:4 saying, \"I have sinned by betraying innocent blood.\" And they said,\n\"What is that to us? You see to it!\"\n \nMAT 27:5 Then he threw down the pieces of silver in the temple and departed,\nand went and hanged himself.\n \nMAT 27:6 But the chief priests took the silver pieces and said, \"It is not\nlawful to put them into the treasury, because they are the price of blood.\"\n \nMAT 27:7 And they consulted together and bought with them the potter's field,\nto bury strangers in.\n \nMAT 27:8 Therefore that field has been called the Field of Blood to this day.\n \nNotice verse 5...\"Then he...went and hanged himself.\"\nMatthew does not say Judas died, does it?  Should we assume he died as a\nresult of the hanging?                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n^^^^^^^^^^^^^^^^^^^^^\nWhat does Acts say?\nACT 1:18 (Now this man purchased a field with the wages of iniquity; and\nfalling headlong, he burst open in the middle and all his entrails gushed out.\n \nACT 1:20 \"For it is written in the book of Psalms: 'Let his dwelling place be\ndesolate, And let no one live in it'; and, 'Let another take his office.'\n \nHere we may have a graphic explanation of Judas' death....So, my line of\nreasoning to dispel your contradiction myth re:the \"two\" accounts of Judas'\ndeath is this...Matthew doesn't necessarily explain how Judas died; he does\n                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nsay Judas \"hanged himself\", but he didn't specifically say Judas died in the\nhanging incident.               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n^^^^^^^^^^^^^^^^\nHowever, Acts seems to show us his graphic demise.  Therefore, there is no\ncontradiction between Matthew and Acts re: Judas' `death'.\n \n.......\n \nMY REPLY...\n...we do know from Matthew that he did hang himself and Acts probably records\nhis death.  Although it's possible and plausible that he fell from the hanging\nand hit some rocks, thereby bursting open, I can no longer assume that to be\nthe case.  Therefore, no contradiction.  Matthew did not say Judas died as a\n                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nresult of the hanging, did he?  Most scholars believe he probably did, but...?\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n______________________________________________________________________\n \nI quoted all that to show that I highly regard the scholars' explanations, but\nin looking at the texts initially, we can't assume Judas died.  It is, however,\nhighly probable.                            ^^^^^^\n \nDB...\n\"By the way, while all agree that Judas died from the hanging, the books had\ndifferent ways of dealing with the contradiction we are discussing.  One\nsimply ignored it entirely and simply referred back to Matthew's version as\nthe correct version in both Matt and Acts.  \"The Biblical Knowledge Commentary\"\nsuggested the hypotheses that Judas hung and then when he rotted, his belly\nexploded (which doesn't explain his headlong fall), or that his branch or rope\nbroke, and he fell to his death and his gut gushed out (which doesn't explain\nhow a hanging man, would fall headlong rather than feet first).\"\n \nMY REPLY...\nThe outcome of any fall is dependent upon many factors...how high the person\nwas suspended before the fall, any obstructions such as tree branches that may\nhave deviated the fall, how steep an incline of rocky surfaces the victim fell\nupon, thus possibly rolling or bouncing of several rocks, etc.  In a\nsuperficial examination of the Acts passage and the Matthew passage, we are not\ngiven a lot of info on the geographical specifics, but Tony in the above quoted\npost gave us some...\n \n_____________________________________________________________________\nA possible reconstruction would be this: Judas hanged himself on a tree on the\nedge of a precipice that overlooked the valley of Hinnom. After he hung there\nfor some time, the limb of the tree snapped or the rope gave way and Judas\nfell down the ledge, mangling his body in the process.\nThe fall could have been before *or* after death as either would fit this\nexplanation. This possibility is entirely natural when the terrain of the\nvalley of Hinnom is examined.  From the bottom of the valley, you can see\nrocky terraces 25 to 40 feet in height and almost perpendicular.\nThere are still trees around the ledges and a rocky pavement at the bottom.\nTherefore, it is easy to conclude that Judas struck one of the jagged rocks on\nthis way down, tearing his body open.\n_____________________________________________________________________\n \nDB...\nNow truthfully, I do not see what is comforting about Matthew confusing the\nsource of the Potter's field prophesy, but on the other hand the author is\ncorrect: Matthew does make that confusion.  Of course a Biblical inerrantist\nwho claim that every word of the Bible is guaranteed true by God, will have to\nthereby add one more contradiction to the death of Judas (ie: where the\nprophesy of the Potter's field came from).\"\n \nMY REPLY...\nPlease, when we are done with this study on his death, remind me to discuss\nthis with you.\n \nDB...\nAs to your second question Mr DeCenso, you ask how we could be sure that the\nmoney with which Judas purchased the land, was indeed for the betrayal, rather\nthan some other source.  I would point out that in Acts, where it specifically\nmention \"the reward of iniquity\" [Acts 1:18], it also specifically mentions\nwhat act of iniquity they were talking about (ie: Acts 1:16 \"...concerning\nJudas who was guide to those who arrested Jesus.\").  Now I would point out\nthat when the Bible describes an act of \"iniquity,\" and then immediately\ndiscusses \"*the* reward of iniquity,\" it would be rather inane to suggest that\nit was an action of iniquity other than the one discussed.\"\n \nMY REPLY...\nDave, we are getting somewhere, aren't we!\n \nACT 1:15 And in those days Peter stood up in the midst of the disciples\n(altogether the number of names was about a hundred and twenty), and said,\nACT 1:16 \"Men and brethren, this Scripture had to be fulfilled, which the Holy\nSpirit spoke before by the mouth of David concerning Judas, who became a guide\nto those who arrested Jesus;\nACT 1:17 \"for he was numbered with us and obtained a part in this ministry.\"\nACT 1:18 (Now this man purchased a field with the wages of iniquity; and\nfalling headlong, he burst open in the middle and all his entrails gushed out.\nACT 1:19 And it became known to all those dwelling in Jerusalem; so that field\nis called in their own language, Akel Dama, that is, Field of Blood.)\nACT 1:20 \"For it is written in the book of Psalms: 'Let his dwelling place be\ndesolate, And let no one live in it'; and, 'Let another take his office.'\n \nNotice that in verse 16, the word \"iniquity\" is not used.  Rather, it states\nthat Judas \"became a guide to those who arrested Jesus\".\nBut the writer DID NOT stop there...vs. 17, \"for he was numbered with us and\nobtained a part in this ministry.\"  What part did Judas play in their ministry?\n         ^^^^^^\nJOH 12:6 This he said, not that he cared for the poor, but because he was a\nthief, and had the money box; and he used to take what was put in it.\nJOH 13:29 For some thought, because Judas had the money box, that Jesus had\nsaid to him, \"Buy those things we need for the feast,\" or that he should give\nsomething to the poor.\n \nSo, now we know what part Judas played - he was a treasurer, per se.\nRight after Peter stated that Judas played a part in this ministry (treasurer,\naccording to John), THEN Luke adds the parenthetical explanation of \"wages of\niniquity\" - money that should have been put into the ministry, but was stolen\nby Judas to purchase a field.  I believe this is a better exegetical\nexplanation of what the \"wages of iniquity\" are.  What do you think, Dave?\n \nDB...\n\"Now since I have given you clear answers (and even references), perhaps you\ncould unequivocally state what type of inerrantist you are (instead of asking\nme what type I think you are, as you did to Mr Joslin).\"\n \nMY REPLY...\nI will gladly admit that I am a Complete Inerrantist, although I do not have\nthat big a problem with the Limited Inerrancy view.\n\nFrank\n-- \n\"If one wished to contend with Him, he could not answer Him one time out\n of a thousand.\"  JOB 9:3\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3215, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Some Recent Observations by Hubble\nOrganization: Jet Propulsion Laboratory\nLines: 23\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: HST, Pluto, Uranus\nNews-Software: VAX/VMS VNEWS 1.41    \n\nHere are some recent observations taken by the Hubble Space Telescope:\n\n     o The Faint Object Spectrograph (FOS) was used to make ultraviolet\n       observations of both the planet Pluto, and its moon Charon. The\n       peakups were successful. The observations were executed as\n       scheduled, and no problems were reported.\n\n     o Observations were made using the High Speed Photometer of the Planet\n       Uranus during an occultation by a faint star in Capricornus. These\n       observations will help in our understanding of the planet's\n       atmospheric radiative and dynamical processes. This event occurred\n       close to the last quarter moon, and special arrangements had to be\n       made to modify the lunar limit tests to allow these observations.\n       The observations are currently being reviewed, and all the\n       observations looked okay.\n\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | Being cynical never helps \n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | to correct the situation \n|_____|/  |_|/       |_____|/                     | and causes more aggravation\n                                                  | instead.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3216, "properties": {"category": "misc.forsale", "text": "From: tligman@bgsu.edu (Simurgh)\nSubject: Nintendo games forsale (and a dead nintendo)\nOrganization: Bowling Green State Univ.\nLines: 27\n\nForsale:\nNintendo control Deck with two controllers and gun, one controller has\ngrips attached. \nthe NES will only connect to a composite monitor or TV with audio and\nvideo RCA Input jacks and needs some repairs. \n25$ or best offer\n\ngames for sale \n15$  Tecmo Baseball\n15$  Techmo Bowl\n15$  Double Dribble\n15$  Wayne Gretzky Hockey\n15$  Golf\n10$  Super Mario/Duck Hunt\n10$  Toobin'\n10$  Spelunker\n25$  Tecmo Super Bowl\n============\n130$ total, I'll give all of them to you for 100$ or best offer and throw\nin the control deck...\n\nI'll also accept the best offer for each of the games\n\nthe oldest of these is two years old, most of them are less than a year old.\n-- \n-Tom\n<<<>>>Warning, signature under construction, ENTER at your own RISC<<<>>>\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3217, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Israel's Expansion II\nOrganization: Aiken Computation Lab, Harvard University\nLines: 25\n\nIn article <22APR93.23368145.0079@VM1.MCGILL.CA> B8HA <B8HA@MUSICB.MCGILL.CA> writes:\n>In article <1993Apr22.093527.15720@donau.et.tudelft.nl> avi@duteinh.et.tudelft.nl (Avi Cohen Stuart) writes:\n>>From article <93111.225707PP3903A@auvm.american.edu>, by Paul H. Pimentel <PP3903A@auvm.american.edu>:\n\n>>There is one big difference between Israel and the Arabs, Christians in this\n>>respect.\n>>\n>>Israel allows freedom of religion.\n\n>Avi,\n>   For your information, Islam permits freedom of religion - there is\n>no compulsion in religion.  Does Judaism permit freedom of religion\n>(i.e. are non-Jews recognized in Judaism).  Just wondering.\n\n\tIn Islam, there is no compulsion, just a tax on dhimini.  In\nJudaism, non-Jews are allowed to do as they wish, and there is no\neffort made to convert them.\n\n\n\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3218, "properties": {"category": "rec.motorcycles", "text": "From: jeq@lachman.com (Jonathan E. Quist)\nSubject: Re: Please Gentlemen\nNntp-Posting-Host: birdie.i88.isc.com\nOrganization: Lachman Technology, Incorporated, Naperville, IL\nLines: 21\n\nIn article <5036@cvbnetPrime.COM> tjohnson@tazmanian.prime.com (Tod Johnson (617) 275-1800 x2317) writes:\n>In article <18843.1076.uupcb@freddy.ersys.edmonton.ab.ca> grant.barkwell@freddy.ersys.edmonton.ab.ca (Grant Barkwell) writes:\n>>\n>>CP>Too my certain knowledge, simply posessing a motorcycle\n>>CP>can get you \"laid\".\n>>\n>>True! Oh so very thankfully true!\n>\n>Gentlemen;\n>\n>\tPlease do us all a rather appropriate favor and excuse the\n>comments about your sexual fortunes on the net. It is hardly an\n\nTod, I think you've misspoke.  If they're banking on owning a motorcycle\nto get them laid, then I doubt they have sexual fortunes.  Quite the\nreverse...\n-- \nJonathan E. Quist        jeq@lachman.com       Lachman Technology, Incorporated\nDoD #094, KotPP, KotCF '71 CL450-K4 \"Gleep\"                 Naperville, IL\n __       There's nothing quite like the pitter-patter of little feet,\n \\/                   followed by the words \"Daddy!  Yay!\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3219, "properties": {"category": "sci.electronics", "text": "From: glenne@sr.hp.com (Glenn Elmore)\nSubject: Re: Single chip receiver for FSK?\nOrganization: HP Sonoma County (SRSD/MWTD/MID)\nX-Newsreader: TIN [version 1.1 PL9.2]\nLines: 78\n\nJohn Ackermann x 2966 (jra@law7.DaytonOH.NCR.COM) wrote:\n: My next project is to come up with an IF/detector module for fast -- 112\n: to 250 kB/sec -- packet radio use.  No fancy modulation scheme, just\n: wide FSK for use at 902 or 1296 MHz.\n\n: I'm a bit familiar with the Motorola 3362 chip, but I wonder if there\n: are newer designs that might work at higher input frequencies.\n\n: My goal is to come up with an inexpensive design for a receiver \"back\n: end\" with IF input on one end and an FSK demondulator on the other.  I'm\n: particularly interested in ways to use a higher IF than 10.7 -- do any\n: current chips work up to, say 150MHz with internal downconversion so a\n: normal IF filter can be used?\n\n: Any suggestions?\n\n: John\n\n  What you describe is very close to what I built and described in the\n10th ARRL Computer Network Conference proceedings.\n\n  I built 10 watt FSK transceivers at 904 MHz.  They are essentially\ndouble conversion transverters with digital mod and demod at 29 MHz.\nThe receiver uses the MC13055 which is the same FSK receiver chip I used\npreviouslyu in the 2 Mbps 10 GHz data link I first published in Ham\nRadio and which is now also in the ARRL handbook.\n\n  The MC3356, which includes a VHF converter section, could also be used\nat these speeds.  There is a newer and perhaps slightly improved design\nof this (the MC13056 if I remember rightly).\n\n  While using this would have let me reduce the \"external\" IF count on\nreceive, it didn't really offer all that much help on transmit so I\ndidn't bother with it.\n\n  The radios I built were first designed and built for 512 kbps in a 2\nMHz channel but later reduced to half that.  These 256 kbps radios\nactually have done quite well in across-the-bench tests at 384 kbps and\nspeed is pretty much a function of filter design.  Handling the data\nstream is another matter entirely.\n\n  Some of the existing radios are currently deployed on hilltops in a\n\"beacon\" test mode.  While there is not yet end-end two-way data flow\ndue to lack of resources to debug software for the digital hardware (MIO\nalso shown in the CNC proceedings), data is perfect copy at n6gn.  Even\nthough the data clock is currently at about half speed, the a 2+ kbytes\nof the test text (chapter 55 of Isaiah) takes only a little over 1/8 of\na second.\n\n  I've been hoping that someone would get interested enough to step in\nand get involved in writing code to make the whole thing usable (Borland\nIDE environment with remote debugging possible as mentioned in the\nproceedings) but to date a couple of us have been on our own and running\nlow on resources of time, money and energy.\n\n  If anyone in the SF bay area wants to check it out there is also a CW\nID after the text on the mark side at 904.740 MHz from beacons on Sonoma\nMtn and Black Mtn (overlooking Si valley).  The antenna is horizontally\npolarized.\n\n  I guess in retrospect my suggestions are that this is a fairly costly\napproach if the radios are intended for users rather than backbones and\nyou might want to carefully consider your \"target\".  If you can't\narrange your paths such that you have complete line-of-sight I think\nyou'll want to address the inter-symbol-interference caused by\nmultipath and probably link C/N budgets if paths are very far from LOS.\nFor more details, see the 10th CNC.  I'm currently working on a spread\nspectrum, direct conversion design to address some of these problems.\nI'd be glad to help as I can with any design problems.\n\n73\nGlenn Elmore n6gn\n\nN6GN @ K3MC      \namateur IP:\tglenn@SantaRosa.ampr.org\nInternet:\tglenne@sr.hp.com \n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3220, "properties": {"category": "rec.sport.hockey", "text": "From: v103r4g8@ubvmsb.cc.buffalo.edu (We will NOT cave in....GODS OF WAR, Def Leppard)\nSubject: HELP HELP HELP\nOrganization: University at Buffalo\nLines: 11\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\n\nDoes anyone have the NHL STANDINGS for March 28th? I need them IMMEDIATELY\nfor a project. Please post or email. THANKS.\n\n\n\n\n*************************************************************************\n                Andy Hillery --- School Of Architecture\t  \t\n                State University of New York at Buffalo \n*************************************************************************\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3221, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: absgh@gdr.bath.ac.uk (G Hunt)\nSubject: Windows for WorkGroups and LAN Workplace\nOrganization: School of Architecture, University of Bath, UK\nLines: 19\n\nThis may be a simple question but:\n\nWe have a number of PC's which we use to link to a mainframe using \nNovell LAN WorkPlace for DOS (via WIndows 3.1). \nNow, to make life easier for us we are thinking of using Windows for\nWorkgroups to allow file sharing across our PC network. \n\nNow does anyone know if it is possible to use W4WG and Lan Workplace\nfor DOS at the same time. \n\nie Can I access a file on another PC while being logged on to the\nmainframe at the same time, simultaneously.\n\nAny help well appreciated.\n\nGary Hunt.\nCentre for Advanced Studies in Architecture\nUniversity of Bath\nabsgh@gdr.bath.ac.uk\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3222, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hayesj@rintintin.Colorado.EDU (HAYES JAMES MICHAEL JR)\nSubject: Window start up position for app, how?\nKeywords: app window, startup position\nNntp-Posting-Host: rintintin.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 8\n\n\nHow do you set up an app to give its window a default start up\nposition and size?\n-- \n  Mike Hayes             |\"Knowledge is good.\"  - Faber College Motto\n  WWW                    |\"Knowledge and Thoroughness\" -Rensselear Poly Motto\n  Unemployed Tech,       |\"No, thank YOU!\"  -Groucho Marx, 'A Day at the Races'\n  Driven to banging my head against engineering physics for 4 years.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3223, "properties": {"category": "misc.forsale", "text": "From: jonathan@comp.lancs.ac.uk (Mr J J Trevor)\nSubject: [Genesis/MegaDrive] Games for sale/trade\nOrganization: Department of Computing at Lancaster University, UK.\nLines: 23\n\nI have the following Genesis/Megadrive games for sale or trade for other\nGenesis/MD (or SNES games). All games will work with both US and UK\nmachines (50 or 60Hz) except where stated and all are boxed with\ninstructions\n\nD&D Warriors of the Eternal Sun\nOutlander\nDeath Duel\nChakan the Forever man\nWonder Boy in Monster Land\nA.Sennas Super Monaco GP 2 (50Hz only)\n\nIll accept US$ or UK sterling.\nMake me an offer!\n\nCheers\nJonathan\n\n-- \n___________\n  |onathan   Phone: +44 524 65201 x3793 Address:Department of Computing\n'-'________    Fax: +44 524 381707              Lancaster University\n            E-mail: jonathan@comp.lancs.ac.uk   Lancaster, Lancs., U.K.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3224, "properties": {"category": "talk.religion.misc", "text": "From: pmy@vivaldi.acc.virginia.edu (Pete Yadlowsky)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: University of Virginia\nLines: 19\n\nCOCHRANE,JAMES SHAPLEIGH writes\n\n>it wouldn't be the first time a group has committed suicide to avoid the \n>shame of capture and persecution.\n\nThis group killed itself to fulfill its interpretation of prophecy\nand to book a suite in Paradise, taking innocent kids along for the\nride. I hardly think the feds were motivated by persecution. If they\nwere, all Koresh would have had to do was surrender quietly to the\nauthorities, without firing a shot, to get the American people behind\nhim and put the feds in the hot seat. But no, God told him to play\nthe tough guy. There's great strength in yielding, but few appreciate\nthis. \n\n--\nPeter M. Yadlowsky              |  Wake! The sky is light!\nAcademic Computing Center       | Let us to the Net again...\nUniversity of Virginia          |    Companion keyboard.\npmy@Virginia.EDU                |                      - after Basho\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.147+0000", "event": "documents", "entityId": 3225, "properties": {"category": "sci.electronics", "text": "From: rky57514@uxa.cso.uiuc.edu (Tall Cool One )\nSubject: PADS Question - How do I go from a schematic -> PCB?\nOrganization: University of Illinois at Urbana\nLines: 17\n\nAfter I have produced a schematic with PADS-LOGIC, how do I import it into \nPADS-PCB to create a PCB pattern?  The only way I've gotten it to work is\nto output a FutureNet netlist, and then import this into PADS-PCB.  Is there\nanother way of doing this?  I didn't see any information in the instructions\nprovided, but I might have missed something.  Any suggestions would be \ngreatly appreciated.  Thanks!\n\n\n _I_______________________________________________________________________I_\n(_@_)                                                                   (_@_)\n|   |   Raymond Yeung               Internet: Nimbus@uiuc.edu           |   |\n|   |                                         rky57514@uxa.cso.uiuc.edu |   |\n|   |   EE student at the                                               |   |\n|   |   University of Illinois    CompuServe: 70700,1011                |   |\n|   |   at Urbana-Champaign                                             |   |\n(___)-------------------------------------------------------------------(___)\n  I                                                                       I\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3226, "properties": {"category": "misc.forsale", "text": "From: dlneal@apgea.army.mil (Dennis L. Neal <dlneal>)\nSubject: 24-pin Printer For Sale\nOrganization: Edgewood\nLines: 10\nNntp-Posting-Host: cbda9.apgea.army.mil\n\nI have the Star Micronics SG 24, 24 pin printer for sale.  I have used\nwith the AMIGA and IBM computers and it works great.  I will throw in\na cable and vinyl cover for $150 plus shipping.\n\nFirst email gets it...\n\nthanx,\n-Dennis L. Neal        dlneal@cbda9.apgea.army.mil\n\n(I have gone to a laser printer is the only reason I am selling)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3227, "properties": {"category": "sci.electronics", "text": "From: whit@carson.u.washington.edu (John Whitmore)\nSubject: Re: minimal boolean circuit\nArticle-I.D.: shelley.1r2717INNdjh\nDistribution: usa\nOrganization: University of Washington, Seattle\nLines: 41\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <1993Apr9.041505.8593@ringer.cs.utsa.edu> djimenez@ringer.cs.utsa.edu (Daniel Jimenez) writes:\n>Suppose we have a boolean function which is a minimal sum-of-products\n>(derived from a K-map or something), like this:\n\n>f(a,b,c,d) = bc'd' + acd' + abc' + ab'c\n>\n>The books on logic design I have consulted all seem to imply that this\n>is where the analysis ends  ...  But by factoring out the\n>`a' term in the function, we can get fewer gates:\n\n>f(a,b,c,d) = bc'd' + a(cd' + bc' + b'c),\n\n>which yields 9 gates. \n\n\tYes, but... the minimization of gates is important in part\nbecause of TIMING considerations.  A TTL gate has the basic structure\nof AND/OR/INVERT, and an inversion of a sum of a product is just\nexactly ONE gate delay.  The reason to find a minimal sum of products\nis that this matches a hardware optimization.\n\n\tA positive-OR gate (such as the 9-gate solution uses) has\nTWO gate delays (and there's another gate delay in the second term)\nso that the second solution, while simpler in logic symbols, can \nbe expected to be something less than optimal in the real world.\nECL is similar to TTL, in that it can support an OR/AND\ngate with the minimum delay (unlike TTL, you get both true and\ninverse outputs for 'free' when using ECL).\n\n\tPALs are basically large programmable AND/OR/INVERT\ngates (with your choice of internal connections between the\nvarious sections, and perhaps some latches), so a minimum sum\nof products ALSO is a way to shoehorn a logic design into \na few PALs.  It's not comparably easy to design with a minimization\nof logic gates, but some software packages claim to allow you to\ndo so, and will take just about any mess of gates (as a nodelist\nwith 74xxx series logic ICs) and produce a description of\na logic cell array to do the same job.  Xilinx's XACT software\ndoes this by treating each logic block as a macro, and expanding\nit all out, then simplifying.\n\n\tJohn Whitmore\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3228, "properties": {"category": "sci.crypt", "text": "From: pdc@dcs.ed.ac.uk (Paul Crowley)\nSubject: Re: Hard drive security for FBI targets\nReply-To: pdc@dcs.ed.ac.uk (Paul Crowley)\nOrganization: Edinburgh University\nLines: 14\n\nIf \"I forgot\" doesn't have as much credibility as you'd like, consider\nthis alternative.  Somewhere on the hard disk, duplicated a few times,\nkeep a 128-bit random number.  When the 128-bit digest of your\npassphrase is computed, it is XORred with the random number before being\nused as the key for your hard disk.  Writing random junk over the random\nnumbers makes the hard disk unreadable by anyone.\n\nNow, if you were merely to *claim* that you have written random junk\nover the XOR key, no-one would be able to tell whether or not you were\ntelling the truth.  This is (a) perjury, and (b) vunerable to\nrubber-hose cryptography, but otherwise effective.\n  __                                  _____\n\\/ o\\ Paul Crowley   pdc@dcs.ed.ac.uk \\\\ //\n/\\__/ Trust me. I know what I'm doing. \\X/  Fold a fish for Jesus!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3229, "properties": {"category": "misc.forsale", "text": "From: smj@sdf.lonestar.org (Stephen M. Jones)\nSubject: Forsale: Drum things.. CHEAP!\nOrganization: Super Dimension Fortress - Public Access Unix - Dallas, Tx.. \nLines: 22\n\n\nNorth heavy Duty hi hat stand $45  \n\tolder stand... but definately in working shape.. could\n\tuse a little clean up.  comes with clutch and felts, etc..\n\nPearl bass drum pedal with felt beater $20 \n\nhoner cymbal stand $15 (needs some work on cymbal stem)\n\nZildjian 20\" Ride cymbal  $55 \n\tmain line zildjian... older ride cymbal\n\nLudwig snare stand $10\n\tokay snare stand.. NOT like a remo though ;) \n\n\n\nshipping extra.. please email\n\n-- \nStephen M. Jones <=> sdf.system.administrator  \nsmj@sdf.lonestar.org  <Cs&E>\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3230, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only \nOrganization: DSI/USCRPAC\nLines: 25\n\nIn article <C5rrtD.1Gz@agora.rain.com> jhart@agora.rain.com (Jim Hart) writes:\n\n>\n>What we need is a true *privacy chip*.  For example, a real-time \n>voice-encryption RSA, silicon compile it and spit out ASIC.  \n>Put this chip on the market as a de facto standard for international \n>business, diplomats, and private communications.  If the U.S. bans \n>it, we make it somewhere else and import it.  The Japanese, German,\n>Dutch, Taiwanese, Korean, etc. electronics companies don't want the \n>NSA spying on them.  U.S. workers lose more jobs to government fascist\n>stupidity.\n>\n\nSome countries have laws about importing crypto gear--I believe the U.S.\ndoes. Without a license the above scheme won't work (at least not legally)\nin such countries, including at least France and the U.S.\n\nDavid\n\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3231, "properties": {"category": "comp.windows.x", "text": "From: dealy@narya.gsfc.nasa.gov (Brian Dealy - CSC)\nSubject: How 2 Get Fontname from Fonstruct ???\nOrganization: NASA/Goddard Space Flight Center\nLines: 11\nDistribution: world\nNNTP-Posting-Host: narya.gsfc.nasa.gov\nOriginator: dealy@narya.gsfc.nasa.gov\n\n\nAnyone know how an application can retrieve the name of the font from\nan application given an XFontStruct *? \nWould XGetFontProperty work if I passed XA_FONT_NAME? \nanyone know details of this?  Thanks in advance.\nBrian\n\n-- \nBrian Dealy                |301-572-8267| It not knowing where it's at  \ndealy@kong.gsfc.nasa.gov   |            | that's important,it's knowing\n!uunet!dftsrv!kong!dealy   |            | where it's not at...  B.Dylan\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3232, "properties": {"category": "comp.sys.mac.hardware", "text": "From: xor@clotho.acm.rpi.edu (Joe Schwartz)\nSubject: Re: NUTEK FACES APPLE'S WRATH (article!!!!!!) READ\nArticle-I.D.: rpi.j3g5bwq\nOrganization: MapInfo Corporation, Troy, NY\nLines: 28\nNntp-Posting-Host: acm.rpi.edu\n\nIn article <davea-120493231310@129.228.20.182> davea@xetron.com (David P. Alverson) writes:\n>I believe Apple has a patent on the region features of QuickDraw.  A mac\n>clone would have to implement regions.  This is why Apple's comment was\n>that\n>they believe it is not possible to make a Mac clone without infringing\n>on their patents.  They may have other patents like this.\n\nApple has patented their implementation of regions, which presumably\nincludes the internal data structure (which has never been officially\ndocumented by Apple).  Apple cannot patent the concept of a region.\n\nI'm guessing that either NuTek reverse-engineered Apple's internal data\nstructure for regions (I dunno if this would hold up in court), or they\ncame up with their own data structure.  If it's the latter, then they\nwon't be able to draw PICT files containing regions.  Besides PICT files,\nthere aren't many places where regions are stored on disk.  (QuickTime\nmovies, perhaps?)  As long as the region isn't being stored on disk and\ntransferred from a Mac to a NuTek clone (or vice versa), it doesn't\nmatter if NuTek uses a completely different internal data structure.\n\nI remember reading that Apple also has a patent on their ADB hardware,\nand that the NuTek clones would therefore be lacking an ADB port.  What\nother patents does Apple have on the Mac?\n-- \nJoe Schwartz       E-mail: xor@acm.rpi.edu  or  xor@clotho.acm.rpi.edu\nMapInfo Corp.\n200 Broadway       These are my own opinions.  Any similarity to the\nTroy, NY 12180     opinions of MapInfo Corporation is purely coincidental.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3233, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gloege@Informatik.TU-Muenchen.DE (Andreas Gloege)\nSubject: OTTOMENU ... Where Can I Get it ?\nOriginator: gloege@hphalle0a.informatik.tu-muenchen.de\nOrganization: Technische Universitaet Muenchen, Germany\nLines: 22\n\n\n\nI've heard about Ottomenu which should be a good desktop\non Windows 3.0/3.1 . \nCan anybody tell me where I can get it ?\nIt should be on CICA in /pub/pc/win3/util but it is not.\n\nIt is also not an WUSTL,SIMTEL and a great number of other\nsites.\n\nJust post it or mail me.\n\n------------------------------------------------------------------------\n\t\t\t\tAndreas Gloege\n\t\t\tKazmaierstr.48 (bei Klarmann)\n\t\t\t\t8000 Muenchen 2\n\t\t\t\t  089/508336\n\t\t  email : gloege@Informatik.TU-Muenchen.DE\n------------------------------------------------------------------------\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3234, "properties": {"category": "talk.religion.misc", "text": "From: david@terminus.ericsson.se (David Bold)\nSubject: Re: Question for those with popular morality\nReply-To: david@terminus.ericsson.se\nDistribution: world\nOrganization: Camtec Electronics (Ericsson), Leicester, England\nLines: 77\nNntp-Posting-Host: bangkok\n\nIn article 17570@freenet.carleton.ca, ad354@Freenet.carleton.ca (James Owens) writes:\n>\n>In a previous article, david@terminus.ericsson.se (David Bold) says:\n>\n>>\n>>I don't mean to be rude, but I think that you've got hold of the wrong\n>>end of a different stick...\n>>\n>>David\n>\n>I had a look at your posting again and I see what you mean!  I was so\n>intent on explaining how Jung thought we could be more moral than God that\n>I overlooked your main line of thought.\n>\n>You seem to be saying that, God being unknowable, His morality is unknowable.\n\nYep, that's pretty much it. I'm not a Jew but I understand that this is the\nJewish way of thinking. However, the Jews believe that the Covenant between\nYHWH and the Patriarchs (Abraham and Moses, in this case) establishes a Moral\nCode to follow for mankind. Even the Jews could not decide where the boundaries\nfall, though.\n\nAs I understand it, the Sadducees believed that the Torah was all that was\nrequired, whereas the Pharisees (the ancestors of modern Judaism) believed that\nthe Torah was available for interpretation to lead to an understanding of\nthe required Morality in all its nuances (->Talmud).\n\nThe essence of all of this is that Biblical Morality is an interface between\nMan and YHWH (for a Jew or Christian) and does not necessarily indicate\nanything about YHWH outside of that relationship (although one can speculate).\n\n>\n>The first thing that comes to mind is that man is supposed to be created\n>in His image, so there is an argument that we are committed to whatever\n>moral code He follows as part of trying to live up to that image.  If we\n>are supposed to live by Christ's example, you would be hard pressed to\n>argue that God is a \"do what I say, not what I do\" kind of guy.\n\nThe trouble with all of this is that we don't really know what the \"created\nin His image\" means. I've heard a number of different opinions on this and\nhave still not come to any conclusion. This rather upsets the Apple Cart if\none wants to base a Life Script on this shaky foundation (to mix metaphors\nunashamedly!) As to living by Christ's example, we know very little about\nJesus as a person. We only have his recorded utterances in a set of narratives\nby his followers, and some very small references from comtemporary historians.\nRevelation aside, one can only \"know\" Christ second-hand or worse.\n\nThis is not an attempt to debunk Christianity (although it may seem that way\ninitially), the point I`m trying to make is that we only really have the Bible\nto interpret, and that interpretation is by humanity. I guess this is where\nFaith or Relevation comes in with all its inherent subjectiveness.\n\n>\n>Metaphysically, if there are multiple moral codes then there is no\n>Absolute moral code, and I think this is theologically questionable.\n\nNo. There may be an absolute moral code. There are undoubtably multiple\nmoral codes. The multiple moral codes may be founded in the absolute moral\ncode. As an example, a parent may tell a child never to swear, and the child\nmay assume that the parent never swears simply because the parent has told\nthe child that it is \"wrong\". Now, the parent may swear like a trooper in\nthe pub or bar (where there are no children). The \"wrongness\" here is if\nthe child disobeys the parent. The parent may feel that it is \"inappropriate\"\nto swear in front of children but may be quite happy to swear in front of\nanimals. The analogy does not quite hold water because the child knows that\nhe is of the same type as the parent (and may be a parent later in life) but\nyou get the gist of it? Incidentally, the young child considers the directive\nas absolute until he gets older (see Piaget) and learns a morality of his own.\n\nDavid.\n\n---\nOn religion:\n\n\"Oh, where is the sea?\", the fishes cried,\nAs they swam its clearness through.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3235, "properties": {"category": "rec.sport.hockey", "text": "From: daniell@cory.Berkeley.EDU (Daniel Lyddy)\nSubject: Re: Bruins vs Canadiens:\nNntp-Posting-Host: cory.berkeley.edu\nOrganization: University of California, at Berkeley\nLines: 73\n\nIn article <1993Apr16.213513.7683@rose.com> jack.petrilli@rose.com (jack petrilli) writes:\n>So I don't know what you mean by parity; Boston never was, is not now, \n>and never will be as good an organization as the Montreal Canadiens.\n>\n\nNever was?  Probably.  Is not now?  Debatable.  What other valid test can\nyou think of besides the final standings or divisional playoff winner?  What\ndo you propose, a worthless vote like they do in college football?  What a\njoke!\n\n>You Boston fans make me laugh: you're going crazy based on a very \n>recent Boston domination over Montreal in the playoffs. I mean how \n>many cups has Boston won compared to Montreal's 23? And who do you \n>think is going to win the **next** cup between the 2 teams? Montreal \n>or Boston? You know Sinden's going to find some way of screwing up \n>even this good Boston team. He'll fire Suter or trade away a vital \n>star. (Admittedly, his last few trades have been good ones but how \n>long before his luck runs out and he starts making Esposito-for-\n>Ratelle type trades again?) \n>\n\nIf I remember right, Brad Park was also involved in that trade.  He wasn't\nall that bad a hockey player.\n\nBut let's look at some of Sinden's trades over the years:\n\n??? for Rick Middleton (Rangers).  I don't know who Sinden gave up for Middle-\nton, so I'll call this one a +.\n\nBarry Pederson for Cam Neely (Canucks).  +++.  Any questions?\n\nGreg Hawgood for Vladimir Ruzicka (Oilers). ++.  Didja see that one Rosie\nroofed against Roy in last year's playoffs?\n\nCourtnall/Ranford for Andy Moog (Oilers).  A wash.  Moog is a good goaltender,\nRanford burned Boston in the Finals in his first year, and Courtnall always\nseems to get his points.  Anyone in Vancouver care to comment on Courtnall\nas a defensive liability?\n\nKen Linseman for Dave Poulin (Flyers) ++.  Any more questions?\n\nJanney/Quintal for Adam Oates (Blues).  ++.  Janney is an enormous talent and\na personable guy, the the Bruins play in Adam's Division.  Enough said?\n\nSo,even if you count the Esposito/Vadnais/Ratelle/Park/I don't remember who \nelse (Joe Zanussi?) trade as a double minus, Harry the Horse trader comes\nout on top.  I submit that the Bruins are always good because of Harry, not\nin spite of him.\n\nBTW, do you really think the Habs will bounce back next season.  I'll bet \nthey finish fourth or fifth in the Conference, behind any of the following:\nPittsburgh, Quebec, Boston, Washington, Islanders.  Someone correct me if\nthese five teams will not be in Montreal's conference.\n\nIn summary, things look bleak for the Habs, at least in the near future.  I\nsuspect that the next team from La Belle Province to win the Cup will be\nthat team that Lindros didn't want to play for.\n\n>I admit that I've been suffering lately with the Boston gets hot while \n>Montreal swans in the playoffs type years. But I **do** have the sure \n>knowledge that the Montreal braintrust will keep plugging away until \n>they hit the right formula for yet another cup. Whereas if I were a \n>Boston fan, I'd have this kind of despair that as long as Harry Sinden \n>is running the show, the Bruins will always be good but **never** \n>good enough.\n>\n>- Jack\n\n-- \nDan Lyddy    daniell@cory.berkeley.edu    University of California at Berkeley\n\nMy Two Favorite Hockey Teams:  1) The Boston Bruins\n                               2) Whoever's playing Pittsburgh\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3236, "properties": {"category": "rec.sport.hockey", "text": "From: galvint@cs.nps.navy.mil (thomas galvin)\nSubject: Re: Bay area media (Wings-Leafs coverage)\nOrganization: Naval Postgraduate School, Monterey CA\nLines: 30\n\nIn article <DREIER.93Apr19195132@durban.berkeley.edu> dreier@durban.berkeley.edu (Roland Dreier) writes:\n>The San Francisco Bay area media is reporting tonight that the Detroit\n>Red Wings beat the Toronto Maple Leafs 6-3.  Can someone who is not\n>part of the media conspiracy against the Leafs tell me how the game\n>really went (I am expecting a 4-0 win for the Leafs, shutout for\n>Potvin, hat trick for Andreychuk and a goal and 3 assists for\n>Gilmour).  If the Leafs really lost, how many penalties did whichever\n>biased ref was at the game have to call against the Leafs to let the\n>Red Wings win?\n>\n>Thank you very much.\n>--\n>Roland Dreier                                        dreier@math.berkeley.edu\n\n\nSorry to disappoint you but the Red Wings earned the victory...easily.\n\nI watched most of the game on ESPN (as soon as I realized that they\nwere televising the game which was at the beginning of the second).\nThe Maple Leafs were flat.  Very flat.  Meanwhile, the Red Wings were\nskating very freely and dictating the pace of the game.  I didn't\ndetect any bad penalty calls (Van Hellemond did his usual good job).\nToronto looked like how I expected them to for their first playoff\ngame in a few years -- nervous.\n\nFor the Leafs sake, I hope they can rid themselves of the butterflies\nfor game 2.  If game 1 is indicative of the series, it's gonna go\nquick.\n\n-Tom Galvin       galvint@taurus.cs.nps.navy.mil\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3237, "properties": {"category": "sci.crypt", "text": "From: jpb@calmasd.Prime.COM (Jan Bielawski)\nSubject: Re: Clipper Chip. LONG follow up.\nOrganization: Computervision, San Diego, CA\nLines: 34\n\nIn article <1993Apr20.030538.1@cc.curtin.edu.au> zrepachol@cc.curtin.edu.au (Paul Repacholi) writes:\n<> \n<> QUESTIONS AND ANSWERS ABOUT THE CLINTON ADMINISTRATION'S\n<> TELECOMMUNICATIONS INITIATIVE\n<> \n<> Q:   Suppose a law enforcement agency is conducting a wiretap on\n<>      a drug smuggling ring and intercepts a conversation\n<>      encrypted using the device.  What would they have to do to\n<>      decipher the message?\n<> \n<> A:   They would have to obtain legal authorization, normally a\n<>      court order, to do the wiretap in the first place.  They\n<>      would then present documentation of this authorization to\n<>      the two entities responsible for safeguarding the keys and\n<>      obtain the keys for the device being used by the drug\n<>      smugglers.  The key is split into two parts, which are\n<>      stored separately in order to ensure the security of the key\n<>      escrow system.\n\nI apologize for being so dense but this sentence reads as if it\nwas lifted from a Luis Bunuel screenplay.  Am I missing something?\nWhy on earth would drug smugglers even _use_ the device then?\nObviously, they'll be using something like triple encryption DES instead.\nAs long as alternatives to Clipper remain legal, Clipper accomplishes\nabsolutely nothing, ZERO, as far as law enforcement is concerned.\nThe whole scheme is an absolute, total, incredible, waste of government\ntime and money AS LONG AS other encryption schemes that are any good \nremain legal.  In order for Clipper to work as intended all strong\ncryptosystems have to be outlawed.\n\n\tJan Bielawski\n\tComputervision, San Diego\n\tjpb@calmasd.prime.com\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3238, "properties": {"category": "sci.space", "text": "From: pgf@srl03.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: Vandalizing the sky.\nOrganization: Univ. of Southwestern Louisiana\nLines: 49\n\nhoover@mathematik.uni-bielefeld.de (Uwe Schuerkamp) writes:\n\n>In article <C5t05K.DB6@research.canon.oz.au> enzo@research.canon.oz.au \n>(Enzo Liguori) writes:\n\n>> hideous vision of the future.  Observers were\n>>startled this spring when a NASA launch vehicle arrived at the\n>>pad with \"SCHWARZENEGGER\" painted in huge block letters on the\n\n>This is ok in my opinion as long as the stuff *returns to earth*.\n\n>>What do you think of this revolting and hideous attempt to vandalize\n>>the night sky? It is not even April 1 anymore.\n\n>If this turns out to be true, it's time to get seriously active in\n>terrorism. This is unbelievable! Who do those people think they are,\n>selling every bit that promises to make money? I guess we really\n>deserve being wiped out by uv radiation, folks. \"Stupidity wins\". I\n>guess that's true, and if only by pure numbers.\n\n>\tAnother depressed planetary citizen,\n>\thoover\n\n\nThis isn't inherently bad.\n\nThis isn't really light pollution since it will only\nbe visible shortly before or after dusk (or during the\nday).\n\n(Of course, if night only lasts 2 hours for you, you're probably going\nto be inconvienenced. But you're inconvienenced anyway in that case).\n\nFinally: this isn't the Bronze Age, and most of us aren't Indo\nEuropean; those people speaking Indo-Eurpoean languages often have\nmuch non-indo-european ancestry and cultural background. So:\nplease try to remember that there are more human activities than\nthose practiced by the Warrior Caste, the Farming Caste, and the\nPriesthood.\n\nAnd why act distressed that someone's found a way to do research\nthat doesn't involve socialism?\n\nIt certianly doesn't mean we deserve to die.\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3239, "properties": {"category": "rec.sport.hockey", "text": "From: joe13+@pitt.edu (Joseph B Stiehm)\nSubject: Re: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nArticle-I.D.: blue.7995\nOrganization: University of Pittsburgh\nLines: 93\n\nIn article <1993Apr6.170330.12314@is.morgan.com> scairns@fsg.com writes:\n>\n>\t\t\t   MVP\t\t  Surprise\t  Disappointment\n>\t\t\t   ---------------------------------------------\n>|> New York Rangers        Messier        Kovalev         Bourque\n>\t\t           Gartner\t  Zubov\t\t  Bourque\n>\n...\n>Bourque - the Penguin's GM must laugh his head off every time he thinks\n>of the Rangers and this loser.\n>\n>+------------------------------------------------------------------+\n>| Scott Cairns           \t|   email: scairns@fsg.com         |\n>| Fusion Systems Group\t\t|  usmail: 225 Broadway, 24th Fl   |\n>| New York, New York, USA   \t|          New York, NY  10007     |\n>+------------------------------------------------------------------+\n>| Standard disclaimers apply.   \t\t\t\t   | \n>+------------------------------------------------------------------+\n>| I hope in the future Americans are thought of as a warlike,      |\n>| vicious people, because then I bet a lot of high schools would   |\n>| pick 'Americans' as their mascot.\t\t\t\t   |\n>|    \t\t\t\t\t- Jack Handey\t\t   |\n>+------------------------------------------------------------------+\n\nPlease.  Have a care with Phil.  We liked him a lot in Pittsburgh.  He\ndidn't score a lot if you look at his stats last year but he worked his\nbutt off.  It was his speed that created opportunities in the offensive\nzone that allowed the Pens to utilize his potential.  I haven't been\npaying attention to him this year so I can't say I know what you're \nobjecting to.  He has been out with injuries though, hasn't he?  And\nif the offense isn't there, there's not much his speed will do for you.\nLike I said, he created opportunities but he didn't score much.  I thought\nthe money offered from the Rangers was a little high, and so did the Pens,\nI guess.\n\nJoseph Stiehm\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nIn article <1993Apr6.170330.12314@is.morgan.com> scairns@fsg.com writes:\n>\n>\t\t\t   MVP\t\t  Surprise\t  Disappointment\n>\t\t\t   ---------------------------------------------\n>|> New York Rangers        Messier        Kovalev         Bourque\n>\t\t           Gartner\t  Zubov\t\t  Bourque\n>\n...\n>Bourque - the Penguin's GM must laugh his head off every time he thinks\n>of the Rangers and this loser.\n>\n>+------------------------------------------------------------------+\n>| Scott Cairns           \t|   email: scairns@fsg.com         |\n>| Fusion Systems Group\t\t|  usmail: 225 Broadway, 24th Fl   |\n>| New York, New York, USA   \t|          New York, NY  10007     |\n>+------------------------------------------------------------------+\n>| Standard disclaimers apply.   \t\t\t\t   | \n>+------------------------------------------------------------------+\n>| I hope in the future Americans are thought of as a warlike,      |\n>| vicious people, because then I bet a lot of high schools would   |\n>| pick 'Americans' as their mascot.\t\t\t\t   |\n>|    \t\t\t\t\t- Jack Handey\t\t   |\n>+------------------------------------------------------------------+\n\nPlease.  Have a care with Phil.  We liked him a lot in Pittsburgh.  He\ndidn't score a lot if you look at his stats last year but he worked his\nbutt off.  It was his speed that created opportunities in the offensive\nzone that allowed the Pens to utilize his potential.  I haven't been\npaying attention to him this year so I can't say I know what you're \nobjecting to.  He has been out with injuries though, hasn't he?  And\nif the offense isn't there, there's not much his speed will do for you.\nLike I said, he created opportunities but he didn't score much.  I thought\nthe money offered from the Rangers was a little high, and so did the Pens,\nI guess.\n\nJoseph Stiehm\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3240, "properties": {"category": "rec.autos", "text": "From: jcorry@erasure_sl.cc.emory.edu (Jeremy Corry)\nSubject: MBenz 300 series, VW Passat\nLines: 31\nNntp-Posting-Host: erasure_sl.cc.emory.edu\n\n--\nMy boss is interested in a new 300 series Mercedes Benz wagon.\nDoes anyone have any testimonial evidence and/or strong opinions\non this car (or line)?\n\nParticularly, I would like to hear about power (manual t. only)\nreliability, feel, and any unusually good or bad features of the\nline.\n\nShe currently drives a VW Passat, and is being plagued by its\nelectrical problems.  The dealer claims there is nothing wrong,\neven though the doors have a habit of locking and unlocking them-\nselves while you are driving down the road.  The automatic shoulder\nrestraints also like to move back and forth as you move along.\nShe does not have the new, larger engine and is quite\ndissatisfied with its lack of power.\n\nThe MB wagon would have to have more power and no peculiar problems\nsuch as the Passat's electrical system.  She is also considering\na Saab 9000 (add some letters).  Any comparisons between the 9000\nline and the Mercedes would be helpful.\n\nPrice is not an impediment.\n\n--------------------------------------------------------------------------\nJeremy J. Corry                    | Churchill claimed the traditions  \njcorry@erasure_sl.cc.emory.edu     | of the navy are rum, mutiny, and\n                          __       | sodomy.\n                          \\/                                             \n     My opinions are my own, but I probably got them from someone else. \n--------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3241, "properties": {"category": "comp.graphics", "text": "From: rjs002c@parsec.paradyne.com (Robert Synoski)\nSubject: 24 bit Graphics cards\nNntp-Posting-Host: parsec\nReply-To: rjs002c@parsec.paradyne.com\nOrganization: AT&T Paradyne, Largo Florida\nLines: 10\n\nI am looking for EISA or VESA local bus graphic cards that support at least \n1024x786x24 resolution.  I know Matrox has one, but it is very expensive.  All the\nother cards I know of, that support that resoultion, are striaght ISA. \n\nAlso are there any X servers for a unix PC that support 24 bits?\n\nthanks\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3242, "properties": {"category": "rec.sport.hockey", "text": "From: cubrj@uxa.ecn.bgu.edu (Brian Johnson)\nSubject: the hawks WILL return to the finals!!!!!\nOrganization: Educational Computing Network\nLines: 11\nDistribution: world\nNNTP-Posting-Host: uxa.ecn.bgu.edu\n\nWell now that the hawks have won the division the road is a little\neasier for the playoffs. Let toronto and detroit beat the hell out of\neach other while Chicago sweeps st.louis. That just makes it easier in\nthe second round with all the rest they will get and tor/det getting\nnone. For the conf. champ they will have a hard time versus the division\nbut that div. will be pretty battered also so the advantage goes to the\nHawks again. Then bring pitt. and sure the Hawks will probably lose but\nits better to get that far and lose than to not go.\n\nbrian\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3243, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: The Inimitable Rushdie\nOrganization: Boston University Physics Department\nLines: 27\n\nIn article <1qlb7oINN684@shelley.u.washington.edu> \njimh@carson.u.washington.edu (James Hogan) writes:\n\n\n>20:52 P.S.T.  I come to my senses and accept the all-knowing\n>wisdom and power of the Quran and Allah.  Not only that, but Allah \n>himself drops by to congratulate me on my wise choice. Allah rolls a\n>few bones and we get down.  Then Allah gets out the Crisco, bends \n>over, and invites me to take a spin around the block.  Wow.\n\n\n>20:56 P.S.T.  I realize that maybe Allah is looking for more of a \n>commitment than I'm ready for, so I say \"Man, I've got some\n>programming to do.  Gotta go.  I'll call you.\"\n\n\n>20:59 P.S.T   Thinking it over, I renounce Islam.\n\nWhat loyalty!\n\nJim, it seems you've been reading a little too much Russell Hoban\nlately. As Hemingway said, my imitators always imitate the _bad_\naspects of my writing. Hoban would, no doubt, say the same here.\n\n\n\nGregg\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3244, "properties": {"category": "comp.windows.x", "text": "From: pjaques@camborne-school-of-mines.ac.UK (Paul Jaques)\nSubject: Problem with dni and OW 3.0\nOrganization: The Internet\nLines: 44\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nCan anybody help me?\n\nI am having a problem displaying images greater than 32768 bytes on a Sparc\nIPC running Openwindows 3.0 and dni. My program runs on a Vax and displays\nimages on the IPC with no problems if I use Openwindows 2.0. The program uses\nthe following lines to display the image - it is the XPutImage() routine\nthat crashes.\n\n\tXImage          *ximage;\n\tximage = XCreateImage(myDisplay, DefaultVisual(myDisplay, myScreen),\n\t\t\t      ddepth, ZPixmap, 0, image,\n\t\t\t      xwid, ywid, 8, 0);\n\tXPutImage(myDisplay, myWindow, myGC, ximage, 0, 0,\n\t\t  xpos, ypos, xwid, ywid);\n\nThe error I get is:-\n\nXIO:  fatal IO error 65535  on X server \"galaxy::0.0\"\n      after 30 requests (18 known processed) with 0 events remaining.\n%XLIB-F-IOERROR, xlib io error\n-SYSTEM-F-LINKDISCON, network partner disconnected logical link\n%TRACE-F-TRACEBACK, symbolic stack dump follows\nmodule name     routine name                     line       rel PC    abs PC\n\n                                                           000773B9  000773B9\n                                                           00077BBE  00077BBE\n                                                           0007259D  0007259D\n                                                           00072741  00072741\n                                                           00072840  00072840\n                                                           00072A27  00072A27\nMYXSUBS         my_imtoiks                       3184      00000093  000010AF\nTEST            main                              293      000000E5  00000EE5\n\nI have a simple test program if anyone would like to test it !!\n\nThanks Paul.\n\n-- \n-----------------------------------------------------------------------------\n| Paul Jaques                                                               |\n| Systems Engineer, Camborne School of Mines,                               |\n|                   Rosemanowes, Herniss, Penryn, Cornwall.                 |\n| E-Mail: pjaques@csm.ac.uk Tel: Stithians (0209) 860141 Fax: (0209) 861013 |\n-----------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3245, "properties": {"category": "sci.med", "text": "From: HOLFELTZ@LSTC2VM.stortek.com\nSubject: Re: Krillean Photography\nNntp-Posting-Host: lstc2vm.stortek.com\nOrganization: StorageTek SW Engineering\nX-Newsreader: NNR/VM S_1.3.2\nLines: 53\n\nIn article <1993Apr19.205615.1013@unlv.edu>\ntodamhyp@charles.unlv.edu (Brian M. Huey) writes:\n \n>In article <1993Apr19.205615.1013@unlv.edu>, todamhyp@charles.unlv.edu (Brian M. Huey) writes:\n>> I think that's the correct spelling..\n>\n>The proper spelling is Kirlian. It was an effect discoverd by\n>S. Kirlian, a soviet film developer in 1939.\n>\n>As I recall, the coronas visible are ascribed to static discharges\n>and chemical reactions between the organic material and the silver\n>halides in the films.\n>\n>--\n>         Tarl Neustaedter       Stratus Computer\n>         tarl@sw.stratus.com    Marlboro, Mass.\n>Disclaimer: My employer is not responsible for my opinions.\n>\n>I think that's the correct spelling..\n>        I am looking for any information/supplies that will allow\n>do-it-yourselfers to take Krillean Pictures. I'm thinking\n>that education suppliers for schools might have a appartus for\n>sale, but I don't know any of the companies. Any info is greatly\n>appreciated.\n>        In case you don't know, Krillean Photography, to the best of my\n>knowledge, involves taking pictures of an (most of the time) organic\n>object between charged plates. The picture will show energy patterns\n>or spikes around the object photographed, and depending on what type\n>of object it is, the spikes or energy patterns will vary. One might\n>extrapolate here and say that this proves that every object within\n>the universe (as we know it) has its own energy signature.\n>\n>\nTo construct a Kirlian device find a copy of _Handbook of Psychic\nDiscoveries_ by Sheila Ostrander and Lynn Schroeder 1975 Library of\nCongress 73-88532.  It describes the necessary equipment and\n suppliers for the Tesla coil or alternatives, the copper plate and\nsetup. I used a pack of SX-70 film and removed a single pack in a\ndark room, then made the exposure, put it back in the film pack and\nran it out through the rollers of the camera forinstant developing\nand very high quality.  It is a good way to experience what Kirlian\nPhotography is really and what it is not.  As you know all ready,\nit is the pattern in the bioplasmic energy fieldthat is significant.\nVariations caused by exposure time, distance from the plate, or\npressure on the plate, or variations in the photo materials are not\nimportant.\n \nHard copy mail; Mark C. High\n                P O Box  882\n                Parowan,  UT\n                       84761\n \n \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3246, "properties": {"category": "sci.electronics", "text": "From: wex@cs.ulowell.edu (Paul M. Wexelblat)\nSubject: Re: A question about 120VAC outlet wiring.. (the truth)\nKeywords: outlet\nReply-To: wex@cs.ulowell.edu\nOrganization: Univ. of Lowell CS Dept.\nLines: 6\n\nI suggest that misc.consumer.house is a better forum for this, several\nelectricians, a huge FAQ that adresses ALL the issues raised here.\n\n-- \n\n\t...Wex\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.148+0000", "event": "documents", "entityId": 3247, "properties": {"category": "sci.space", "text": "From: bradfrd2@ncar.ucar.edu (Mark Bradford)\nSubject: Astro/Space Frequently Seen Acronyms\nSupersedes: <space/acronyms_731394007@GZA.COM>\nOrganization: LifeForms Unlimited, Cephalopods\nLines: 509\nExpires: 19 May 1993 04:00:04 GMT\nNNTP-Posting-Host: pad-thai.aktis.com\nKeywords: long space astro tla acronyms\nX-Last-Updated: 1992/12/07\n\nArchive-name: space/acronyms\nEdition: 8\n\nAcronym List for sci.astro, sci.space, and sci.space.shuttle:\nEdition 8, 1992 Dec 7\nLast posted: 1992 Aug 27\n\nThis list is offered as a reference for translating commonly appearing\nacronyms in the space-related newsgroups.  If I forgot or botched your\nfavorite acronym, please let me know!  Also, if there's an acronym *not*\non this list that confuses you, drop me a line, and if I can figure\nit out, I'll add it to the list.\n\nNote that this is intended to be a reference for *frequently seen*\nacronyms, and is most emphatically *not* encyclopedic.  If I incorporated\nevery acronym I ever saw, I'd soon run out of disk space!  :-)\n\nThe list will be posted at regular intervals, every 30 days.  All\ncomments regarding it are welcome; I'm reachable as bradfrd2@ncar.ucar.edu.\n\nNote that this just tells what the acronyms stand for -- you're on your\nown for figuring out what they *mean*!  Note also that the total number of\nacronyms in use far exceeds what I can list; special-purpose acronyms that\nare essentially always explained as they're introduced are omitted.\nFurther, some acronyms stand for more than one thing; as of Edition 3 of\nthe list, these acronyms appear on multiple lines, unless they're simply\ndifferent ways of referring to the same thing.\n\nThanks to everybody who's sent suggestions since the first version of\nthe list, and especially to Garrett A. Wollman (wollman@griffin.uvm.edu),\nwho is maintaining an independent list, somewhat more verbose in\ncharacter than mine, and to Daniel Fischer (dfi@specklec.mpifr-bonn.mpg.de),\nwho is maintaining a truly HUGE list (535 at last count) of acronyms and\nterms, mostly in German (which I read, fortunately).\n\nSpecial thanks this time to Ken Hollis at NASA, who sent me a copy of NASA\nReference Publication 1059 Revised: _Space Transportation System and\nAssociated Payloads: Glossary, Acronyms, and Abbreviations_, a truly\nmammoth tome -- almost 300 pages of TLAs.\n\nSpecial Bonus!  At the end of this posting, you will find a perl program\nwritten by none other than Larry Wall, whose purpose is to scramble the\nacronym list in an entertaining fashion.  Thanks, Larry!\n\nA&A: Astronomy and Astrophysics\nAAO: Anglo-Australian Observatory\nAAS: American Astronomical Society\nAAS: American Astronautical Society\nAAVSO: American Association of Variable Star Observers\nACE: Advanced Composition Explorer\nACRV: Assured Crew Return Vehicle (or) Astronaut Crew Rescue Vehicle\nADFRF: Ames-Dryden Flight Research Facility (was DFRF) (NASA)\nAGN: Active Galactic Nucleus\nAGU: American Geophysical Union\nAIAA: American Institute of Aeronautics and Astronautics\nAIPS: Astronomical Image Processing System\nAJ: Astronomical Journal\nALEXIS: Array of Low Energy X-ray Imaging Sensors\nALPO: Association of Lunar and Planetary Observers\nALS: Advanced Launch System\nANSI: American National Standards Institute\nAOA: Abort Once Around (Shuttle abort plan)\nAOCS: Attitude and Orbit Control System\nAp.J: Astrophysical Journal\nAPM: Attached Pressurized Module (a.k.a. Columbus)\nAPU: Auxiliary Power Unit\nARC: Ames Research Center (NASA)\nARTEMIS: Advanced Relay TEchnology MISsion\nASA: Astronomical Society of the Atlantic\nASI: Agenzia Spaziale Italiano\nASRM: Advanced Solid Rocket Motor\nATDRS: Advanced Tracking and Data Relay Satellite\nATLAS: Atmospheric Laboratory for Applications and Science\nATM: Amateur Telescope Maker\nATO: Abort To Orbit (Shuttle abort plan)\nAU: Astronomical Unit\nAURA: Association of Universities for Research in Astronomy\nAW&ST: Aviation Week and Space Technology (a.k.a. AvLeak)\nAXAF: Advanced X-ray Astrophysics Facility\nBATSE: Burst And Transient Source Experiment (on CGRO)\nBBXRT: Broad-Band X-Ray Telescope (ASTRO package)\nBEM: Bug-Eyed Monster\nBH: Black Hole\nBIMA: Berkeley Illinois Maryland Array\nBNSC: British National Space Centre\nBTW: By The Way\nC&T: Communications & Tracking\nCCAFS: Cape Canaveral Air Force Station\nCCD: Charge-Coupled Device\nCCDS: Centers for the Commercial Development of Space\nCD-ROM: Compact Disk Read-Only Memory\nCFA: Center For Astrophysics\nCFC: ChloroFluoroCarbon\nCFF: Columbus Free Flyer\nCFHT: Canada-France-Hawaii Telescope\nCGRO: (Arthur Holley) Compton Gamma Ray Observatory (was GRO)\nCHARA: Center for High Angular Resolution Astronomy\nCIRRIS: Cryogenic InfraRed Radiance Instrument for Shuttle\nCIT: Circumstellar Imaging Telescope\nCM: Command Module (Apollo spacecraft)\nCMCC: Central Mission Control Centre (ESA)\nCNES: Centre National d'Etude Spatiales\nCNO: Carbon-Nitrogen-Oxygen\nCNSR: Comet Nucleus Sample Return\nCOBE: COsmic Background Explorer\nCOMPTEL: COMPton TELescope (on CGRO)\nCOSTAR: Corrective Optics Space Telescope Axial Replacement\nCRAF: Comet Rendezvous / Asteroid Flyby\nCRRES: Combined Release / Radiation Effects Satellite\nCSM: Command and Service Module (Apollo spacecraft)\nCSTC: Consolidated Satellite Test Center (USAF)\nCTIO: Cerro Tololo Interamerican Observatory\nDCX: Delta Clipper eXperimental\nDDCU: DC-to-DC Converter Unit\nDFRF: Dryden Flight Research Facility (now ADFRF)\nDMSP: Defense Meteorological Satellite Program\nDOD: Department Of Defense (sometimes DoD)\nDOE: Department Of Energy\nDOT: Department Of Transportation\nDSCS: Defense Satellite Communications System\nDSN: Deep Space Network\nDSP: Defense Support Program (USAF/NRO)\nEAFB: Edwards Air Force Base\nECS: Environmental Control System\nEDO: Extended Duration Orbiter\nEGRET: Energetic Gamma Ray Experiment Telescope (on CGRO)\nEJASA: Electronic Journal of the Astronomical Society of the Atlantic\nELV: Expendable Launch Vehicle\nEMU: Extravehicular Mobility Unit\nEOS: Earth Observing System\nERS: Earth Resources Satellite (as in ERS-1)\nESA: European Space Agency\nESO: European Southern Observatory\nET: (Shuttle) External Tank\nETLA: Extended Three Letter Acronym\nETR: Eastern Test Range\nEUV: Extreme UltraViolet\nEUVE: Extreme UltraViolet Explorer\nEVA: ExtraVehicular Activity\nFAQ: Frequently Asked Questions\nFAST: Fast Auroral SnapshoT explorer\nFFT: Fast Fourier Transform\nFGS: Fine Guidance Sensors (on HST)\nFHST: Fixed Head Star Trackers (on HST)\nFIR: Far InfraRed\nFITS: Flexible Image Transport System\nFOC: Faint Object Camera (on HST)\nFOS: Faint Object Spectrograph (on HST)\nFRR: Flight-Readiness Review\nFTP: File Transfer Protocol\nFTS: Flight Telerobotic Servicer\nFUSE: Far Ultraviolet Spectroscopic Explorer\nFWHM: Full Width at Half Maximum\nFYI: For Your Information\nGAS: Get-Away Special\nGBT: Green Bank Telescope\nGCVS: General Catalog of Variable Stars\nGEM: Giotto Extended Mission\nGEO: Geosynchronous Earth Orbit\nGDS: Great Dark Spot\nGHRS: Goddard High Resolution Spectrograph (on HST)\nGIF: Graphics Interchange Format\nGLOMR: Global Low-Orbiting Message Relay\nGMC: Giant Molecular Cloud\nGMRT: Giant Meter-wave Radio Telescope\nGMT: Greenwich Mean Time (also called UT)\nGOES: Geostationary Orbiting Environmental Satellite\nGOX: Gaseous OXygen\nGPC: General Purpose Computer\nGPS: Global Positioning System\nGRO: Gamma Ray Observatory (now CGRO)\nGRS: Gamma Ray Spectrometer (on Mars Observer)\nGRS: Great Red Spot\nGSC: Guide Star Catalog (for HST)\nGSFC: Goddard Space Flight Center (NASA)\nGTO: Geostationary Transfer Orbit\nHAO: High Altitude Observatory\nHD: Henry Draper catalog entry\nHEAO: High Energy Astronomical Observatory\nHeRA: Hermes Robotic Arm\nHF: High Frequency\nHGA: High Gain Antenna\nHLC: Heavy Lift Capability\nHLV: Heavy Lift Vehicle\nHMC: Halley Multicolor Camera (on Giotto)\nHR: Hertzsprung-Russell (diagram)\nHRI: High Resolution Imager (on ROSAT)\nHSP: High Speed Photometer (on HST)\nHST: Hubble Space Telescope\nHUT: Hopkins Ultraviolet Telescope (ASTRO package)\nHV: High Voltage\nIAPPP: International Amateur/Professional Photoelectric Photometry\nIAU: International Astronomical Union\nIAUC: IAU Circular\nICE: International Cometary Explorer\nIDA: International Dark-sky Association\nIDL: Interactive Data Language\nIGM: InterGalactic Medium\nIGY: International Geophysical Year\nIMHO: In My Humble Opinion\nIOTA: Infrared-Optical Telescope Array\nIOTA: International Occultation Timing Association\nIPS: Inertial Pointing System\nIR: InfraRed\nIRAF: Image Reduction and Analysis Facility\nIRAS: InfraRed Astronomical Satellite\nISAS: Institute of Space and Astronautical Science (Japan)\nISM: InterStellar Medium\nISO: Infrared Space Observatory\nISO: International Standards Organization\nISPM: International Solar Polar Mission (now Ulysses)\nISY: International Space Year\nIUE: International Ultraviolet Explorer\nIUS: Inertial Upper Stage\nJEM: Japanese Experiment Module (for SSF)\nJGR: Journal of Geophysical Research\nJILA: Joint Institute for Laboratory Astrophysics\nJPL: Jet Propulsion Laboratory\nJSC: Johnson Space Center (NASA)\nKAO: Kuiper Airborne Observatory\nKPNO: Kitt Peak National Observatory\nKSC: Kennedy Space Center (NASA)\nKTB: Cretaceous-Tertiary Boundary (from German)\nLANL: Los Alamos National Laboratory\nLaRC: Langley Research Center (NASA)\nLDEF: Long Duration Exposure Facility\nLEM: Lunar Excursion Module (a.k.a. LM) (Apollo spacecraft)\nLEO: Low Earth Orbit\nLeRC: Lewis Research Center (NASA)\nLEST: Large Earth-based Solar Telescope\nLFSA: List of Frequently Seen Acronyms (!)\nLGA: Low Gain Antenna\nLGM: Little Green Men\nLH: Liquid Hydrogen (also LH2 or LHX)\nLLNL: Lawrence-Livermore National Laboratory\nLM: Lunar Module (a.k.a. LEM) (Apollo spacecraft)\nLMC: Large Magellanic Cloud\nLN2: Liquid N2 (Nitrogen)\nLOX: Liquid OXygen\nLRB: Liquid Rocket Booster\nLSR: Local Standard of Rest\nLTP: Lunar Transient Phenomenon\nMB: Manned Base\nMCC: Mission Control Center\nMECO: Main Engine CutOff\nMMH: MonoMethyl Hydrazine\nMMT: Multiple Mirror Telescope\nMMU: Manned Maneuvering Unit\nMNRAS: Monthly Notices of the Royal Astronomical Society\nMOC: Mars Observer Camera (on Mars Observer)\nMOL: Manned Orbiting Laboratory\nMOLA: Mars Observer Laser Altimeter (on Mars Observer)\nMOMV: Manned Orbital Maneuvering Vehicle\nMOTV: Manned Orbital Transfer Vehicle\nMPC: Minor Planets Circular\nMRSR: Mars Rover and Sample Return\nMRSRM: Mars Rover and Sample Return Mission\nMSFC: (George C.) Marshall Space Flight Center (NASA)\nMTC: Man Tended Capability\nNACA: National Advisory Committee on Aeronautics (became NASA)\nNASA: National Aeronautics and Space Administration\nNASDA: NAtional Space Development Agency (Japan)\nNASM: National Air and Space Museum\nNASP: National AeroSpace Plane\nNBS: National Bureau of Standards (now NIST)\nNDV: NASP Derived Vehicle\nNERVA: Nuclear Engine for Rocket Vehicle Application\nNGC: New General Catalog\nNICMOS: Near Infrared Camera / Multi Object Spectrometer (HST upgrade)\nNIMS: Near-Infrared Mapping Spectrometer (on Galileo)\nNIR: Near InfraRed\nNIST: National Institute for Standards and Technology (was NBS)\nNLDP: National Launch Development Program\nNOAA: National Oceanic and Atmospheric Administration\nNOAO: National Optical Astronomy Observatories\nNRAO: National Radio Astronomy Observatory\nNRO: National Reconnaissance Office\nNS: Neutron Star\nNSA: National Security Agency\nNSF: National Science Foundation\nNSO: National Solar Observatory\nNSSDC: National Space Science Data Center\nNTR: Nuclear Thermal Rocket(ry)\nNTT: New Technology Telescope\nOAO: Orbiting Astronomical Observatory\nOCST: Office of Commercial Space Transportation\nOMB: Office of Management and Budget\nOMS: Orbital Maneuvering System\nOPF: Orbiter Processing Facility\nORFEUS: Orbiting and Retrievable Far and Extreme Ultraviolet Spectrometer\nOSC: Orbital Sciences Corporation\nOSCAR: Orbiting Satellite Carrying Amateur Radio\nOSSA: Office of Space Science and Applications\nOSSE: Oriented Scintillation Spectrometer Experiment (on CGRO)\nOTA: Optical Telescope Assembly (on HST)\nOTHB: Over The Horizon Backscatter\nOTV: Orbital Transfer Vehicle\nOV: Orbital Vehicle\nPAM: Payload Assist Module\nPAM-D: Payload Assist Module, Delta-class\nPI: Principal Investigator\nPLSS: Portable Life Support System\nPM: Pressurized Module\nPMC: Permanently Manned Capability\nPMIRR: Pressure Modulated InfraRed Radiometer (on Mars Observer)\nPMT: PhotoMultiplier Tube\nPSF: Point Spread Function\nPSR: PulSaR\nPV: Photovoltaic\nPVO: Pioneer Venus Orbiter\nQSO: Quasi-Stellar Object\nRCI: Rodent Cage Interface (for SLS mission)\nRCS: Reaction Control System\nREM: Rat Enclosure Module (for SLS mission)\nRF: Radio Frequency\nRFI: Radio Frequency Interference\nRIACS: Research Institute for Advanced Computer Science\nRMS: Remote Manipulator System\nRNGC: Revised New General Catalog\nROSAT: ROentgen SATellite\nROUS: Rodents Of Unusual Size (I don't believe they exist)\nRSN: Real Soon Now\nRTG: Radioisotope Thermoelectric Generator\nRTLS: Return To Launch Site (Shuttle abort plan)\nSAA: South Atlantic Anomaly\nSAGA: Solar Array Gain Augmentation (for HST)\nSAMPEX: Solar Anomalous and Magnetospheric Particle EXplorer\nSAO: Smithsonian Astrophysical Observatory\nSAR: Search And Rescue\nSAR: Synthetic Aperture Radar\nSARA: Satellite pour Astronomie Radio Amateur\nSAREX: Search and Rescue Exercise\nSAREX: Shuttle Amateur Radio Experiment\nSAS: Space Activity Suit\nSAS: Space Adaptation Syndrome\nSAT: Synthetic Aperture Telescope\nS/C: SpaceCraft\nSCA: Shuttle Carrier Aircraft\nSCT: Schmidt-Cassegrain Telescope\nSDI: Strategic Defense Initiative\nSDIO: Strategic Defense Initiative Organization\nSEI: Space Exploration Initiative\nSEST: Swedish ESO Submillimeter Telescope\nSETI: Search for ExtraTerrestrial Intelligence\nSID: Sudden Ionospheric Disturbance\nSIR: Shuttle Imaging Radar\nSIRTF: Space (formerly Shuttle) InfraRed Telescope Facility\nSL: SpaceLab\nSLAR: Side-Looking Airborne Radar\nSLC: Space Launch Complex\nSLS: Space(lab) Life Sciences\nSMC: Small Magellanic Cloud\nSME: Solar Mesosphere Explorer\nSMEX: SMall EXplorers\nSMM: Solar Maximum Mission\nSN: SuperNova (e.g., SN1987A)\nSNR: Signal to Noise Ratio\nSNR: SuperNova Remnant\nSNU: Solar Neutrino Units\nSOFIA: Stratospheric Observatory For Infrared Astronomy\nSOHO: SOlar Heliospheric Observatory\nSPAN: Space Physics and Analysis Network\nSPDM: Special Purpose Dextrous Manipulator\nSPOT: Systeme Probatoire pour l'Observation de la Terre\nSPS: Solar Power Satellite\nSRB: Solid Rocket Booster\nSRM: Solid Rocket Motor\nSSF: Space Station Fred (er, Freedom)\nSSI: Solid-State Imager (on Galileo)\nSSI: Space Studies Institut\nSSME: Space Shuttle Main Engine\nSSPF: Space Station Processing Facility\nSSRMS: Space Station Remote Manipulator System\nSST: Spectroscopic Survey Telescope\nSST: SuperSonic Transport\nSSTO: Single Stage To Orbit\nSTIS: Space Telescope Imaging Spectrometer (to replace FOC and GHRS)\nSTS: Shuttle Transport System (or) Space Transportation System\nSTScI: Space Telescope Science Institute\nSWAS: Submillimeter Wave Astronomy Satellite\nSWF: ShortWave Fading\nTAL: Transatlantic Abort Landing (Shuttle abort plan)\nTAU: Thousand Astronomical Unit (mission)\nTCS: Thermal Control System\nTDRS: Tracking and Data Relay Satellite\nTDRSS: Tracking and Data Relay Satellite System\nTES: Thermal Emission Spectrometer (on Mars Observer)\nTIROS: Television InfraRed Observation Satellite\nTLA: Three Letter Acronym\nTOMS: Total Ozone Mapping Spectrometer\nTPS: Thermal Protection System\nTSS: Tethered Satellite System\nUARS: Upper Atmosphere Research Satellite\nUBM: Unpressurized Berthing Mechanism\nUDMH: Unsymmetrical DiMethyl Hydrazine\nUFO: Unidentified Flying Object\nUGC: Uppsala General Catalog\nUHF: Ultra High Frequency\nUIT: Ultraviolet Imaging Telescope (Astro package)\nUKST: United Kingdom Schmidt Telescope\nUSAF: United States Air Force\nUSMP: United States Microgravity Payload\nUT: Universal Time (a.k.a. GMT, UTC, or Zulu Time)\nUTC: Coordinated Universal Time (a.k.a. UT)\nUV: UltraViolet\nUVS: UltraViolet Spectrometer\nVAB: Vehicle Assembly Building (formerly Vertical Assembly Building)\nVAFB: Vandenberg Air Force Base\nVEEGA: Venus-Earth-Earth Gravity Assist (Galileo flight path)\nVHF: Very High Frequency\nVLA: Very Large Array\nVLBA: Very Long Baseline Array\nVLBI: Very Long Baseline Interferometry\nVLF: Very Low Frequency\nVLT: Very Large Telescope\nVMS: Vertical Motion Simulator\nVOIR: Venus Orbiting Imaging Radar (superseded by VRM)\nVPF: Vertical Processing Facility\nVRM: Venus Radar Mapper (now called Magellan)\nWD: White Dwarf\nWFPC: Wide Field / Planetary Camera (on HST)\nWFPCII: Replacement for WFPC\nWIYN: Wisconsin / Indiana / Yale / NOAO telescope\nWSMR: White Sands Missile Range\nWTR: Western Test Range\nWUPPE: Wisconsin Ultraviolet PhotoPolarimter Experiment (Astro package)\nXMM: X-ray Multi Mirror\nXUV: eXtreme UltraViolet\nYSO: Young Stellar Object\n\n\n#!/usr/bin/perl\n# 'alt', An Acronym Scrambling Program, by Larry Wall\n\n$THRESHOLD = 2;\n\nsrand;\nwhile (<>) {\n    next unless /^([A-Z]\\S+): */;\n    $key = $1;\n    $acro{$key} = $';\n    @words = split(/\\W+/,$');\n    unshift(@words,$key);\n    $off = 0;\n    foreach $word (@words) {\n        next unless $word =~ /^[A-Z]/;\n        *w = $&;\n        vec($w{$word}, $off++ % 6, 1) = 1;\n    }\n}\n\nforeach $letter (A .. Z) {\n    *w = $letter;\n    @w = keys %w;\n    if (@w < $THRESHOLD) {\n        @d = `egrep '^$letter' /usr/dict/words`;\n        chop @d;\n        push(@w, @d);\n    }\n}\n\nforeach $key (sort keys %acro) {\n    $off = 0;\n    $acro = $acro{$key};\n    $acro =~ s/((([A-Z])[A-Z]*)[a-z]*)/ &pick($3, $2, $1, ++$off) || $& /eg;\n    print \"$key: $acro\";\n}\n\nsub pick {\n    local($letter, $prefix, $oldword, $off) = @_;\n    $i = 0;\n    if (length($prefix) > 1 && index($key,$prefix) < 0) {\n        if ($prefix eq $oldword) {\n            $prefix = '';\n        }\n        else {\n            $prefix = $letter;\n        }\n    }\n    if (length($prefix) > 1) {\n        local(*w) = substr($prefix,0,1);\n        do {\n            $word = $w[rand @w];\n        } until $word ne $oldword && $word =~ /^$prefix/i || ++$i > 30;\n        $word =~ s/^$prefix/$prefix/i;\n        $word;\n    }\n    elsif (length($prefix) == 1) {\n        local(*w) = $prefix;\n        do {\n            $word = $w[rand @w];\n        } until $word ne $oldword && vec($w{$word}, $off, 1) || ++$i > 10;\n        $word = \"\\u\\L$word\" if $word =~ tr/a-z/A-Z/;\n        $word;\n    }\n    else {\n        local(*w) = substr($oldword,0,1);\n        do {\n            $word = $w[rand @w];\n        } until $word ne $oldword && $word =~ tr/a-z/A-Z/ == 0 || ++$i > 30;\n        $word;\n    }\n}\n\n\n-- Mark Bradford (bradfrd2@ncar.ucar.edu) <> To err is human, to moo bovine.\n                  \"It's an ill wind that gathers no moss.\"\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3248, "properties": {"category": "sci.med", "text": "From: dfield@flute.calpoly.edu (InfoSpunj (Dan Field))\nSubject: Can't wear contacts after RK/PRK?\nKeywords: radial,keratotomy,contact,lenses\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 28\n\nI love the FAQ.       \n\nThe comment about contact lenses not being an option for any remaining\ncorrection after RK and possibly after PRK is interresting.  Why is\nthis?  Does anyone know for sure whether this applies to PRK as well?\n\nAlso, why is it possible to get a correction in PRK with involvement of\nonly about 5% of the corneal depth, while RK is done to a depth of up to\n95%?  Why such a difference?  I thought the proceedures were simmilar\nwith the exception of a laser being the cutting tool in PRK.  I must not\nbe understanding all of the differences.\n\nIn the FAQ, the vision was considered less clear after the surgery than\nwith glasses alone.  If this is completly attributable to the\nintentional slight undercorrection, then it can be compensated for when\nnecessary with glasses (or contacts, if they CAN be worn afterall!).  It\nis important to know if that is not the case, however, and some other\nconsequence of the surgery would often interfere with clear vision.  The\nfirst thing that came to my mind was a fogging of the lense, which\nglasses couldn't help. \n\nwould not help.\n\n-- \n| Daniel R. Field, AKA InfoSpunj | I'm just a lowly phlebe.              |\n| dfield@oboe.calpoly.edu        |                                       |\n| Biochemistry, Biotechnology    | I'm at the phlebottom                 |\n| California Polytechnic State U | of the medical totem pole.            | \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3249, "properties": {"category": "soc.religion.christian", "text": "From: tedr@athena.cs.uga.edu (Ted Kalivoda)\nSubject: Rom 9-11 article ready..requests\nOrganization: University of Georgia, Athens\nLines: 14\n\nA section of Richard Badenas' book, \"Christ The End of the Law, Romans 10.14 \nin Pauline Perspective.\"  The section I have is on the Contextual setting and \nmeaning of Romans 9-11.  In addition, there are 111 endnotes.\n\nSince the file is so long, and because of other reasons, I will take requests\nfor the article personally.\n\nOf course, I believe Badenas' insights to be true, and, quite damaging to the\ntraditional Augustinian/Calvinist view.\n\n====================================          \nTed Kalivoda (tedr@athena.cs.uga.edu)\nUniversity of Georgia, Athens\nUCNS/Institute of Higher Ed. \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3250, "properties": {"category": "talk.politics.mideast", "text": "From: ifaz706@utxvms.cc.utexas.edu (Noam Tractinsky)\nSubject: Re: Ten questions about Israel\nLines: 66\nNntp-Posting-Host: taupe.cc.utexas.edu\nOrganization: University of Texas @ Austin\nLines: 66\n\nIn article <1483500349@igc.apc.org>, cpr@igc.apc.org (Center for Policy Research) writes:\n> \n> From: Center for Policy Research <cpr>\n> Subject: Ten questions about Israel\n> \n> \n> Ten questions to Israelis\n> -------------------------\n> \n> I would be thankful if any of you who live in Israel could help to\n> provide\n>  accurate answers to the following specific questions. These are\n> indeed provocative questions but they are asked time and again by\n> people around me.                                      \n> \n> 1.      Is it true that the Israeli authorities don't recognize\n> Israeli nationality ? And that ID cards, which Israeli citizens\n> must carry at all times, identify people as Jews or Arabs, not as\n> Israelis ?\n\n\n\tThat's true. Israeli ID cards do not identify people\n\tas Israelies. Smart huh?\n\n\n> 3.      Is it true that Israeli stocks nuclear weapons ? If so,\n> could you provide any evidence ?\n\n\tYes. There's one warhead in my parent's backyard in\n\tBeer Sheva (that's only some 20 miles from Dimona,\n\tyou know). Evidence? I saw it!\n\n \n> 4.      Is it true that in Israeli prisons there are a number of\n> individuals which were tried in secret and for which their\n> identities, the date of their trial and their imprisonment are\n> state secrets ?\n\n\tYes. But unfortunately I can't give you more details.\n\tThat's _secret_, you see.\n\n\n\t\t\t[...]\n\n> \n> Thanks,\n> \n> Elias Davidsson Iceland email:   elias@ismennt.is\n\n\n\tYou're welcome. Now, let me ask you a few questions, if you\n\tdon't mind:\n\n\t1. Is it true that the Center for Policy Research is a \n\t   one-man enterprise?\n\n\t2. Is it true that your questions are not being asked\n\t   bona fide?\n\n\t3. Is it true that your statement above, \"These are indeed \n\t   provocative questions but they are asked time and again by\n\t   people around me\" is not true?\n\n\nNoam\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3251, "properties": {"category": "sci.space", "text": "From: Leigh Palmer <palmer@sfu.ca>\nSubject: Re: Orion drive in vacuum -- how?\nX-Xxmessage-Id: <A7F6002BF6011C1D@rs14-annex3.sfu.ca>\nX-Xxdate: Sat, 17 Apr 93 02:42:51 GMT\nOrganization: Simon Fraser University\nX-Useragent: Nuntius v1.1.1d17\nLines: 11\n\nIn article <C5nGxq.663@zoo.toronto.edu> Henry Spencer,\nhenry@zoo.toronto.edu writes:\n>The National Air & Space Museum has both the prototype and the film.\n>When I was there, some years ago, they had the prototype on display and\n>the film continuously repeating.\n\nGreat! I'll visit the National Air and Space Museum at the end of the\nmonth with my wife, who was also working at General Atomic at the time.\nOnce again netnews has enriched my life.\n\nLeigh\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3252, "properties": {"category": "rec.sport.hockey", "text": "From: willis@oracle.SCG.HAC.COM (Stan Willis)\nSubject: Re: Schedule...\nReply-To: willis@empire.dnet.hac.com (Stan Willis)\nOrganization: none\nLines: 18\n\nIn article <121411@netnews.upenn.edu> kkeller@mail.sas.upenn.edu (Keith Keller) writes:\n>In article <1qup1lINNotb@master.cs.rose-hulman.edu> swartzjh@RoseVC.Rose-Hulman.Edu writes:\n>F**king *NO* hockey games televised nationally tonight!  What the hell is\n>this???  Why the hell is ESPN showing some stupid baseball game, when\n>baseball is not even three weeks into the season and hockey is in the\n>playoffs???  No, wait, I know the answer: $$$$$$  But still!  It really\n.\n.\n.\n\nESPN had the Houston Astros @ Chicago Cubs game scheduled for last night on the\nwest coast. \n\nSince the game was rained out, they showed the Toronto Maple Leafs at the\nDetroit Red Wings game instead.\n\nStan Willis\nnet contact: LA Kings\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3253, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: New Home for the Bosox!!!\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 30\n\nIn article <1993Apr15.132741.11322@scott.skidmore.edu> jrogoff@scott.skidmore.edu (jay rogoff) writes:\n\n>> I agree, though I'd also be happy with a stadium that looks\n>> like new Comiskey. The new park was also made for baseball.\n>> Unlike Three Rivers, the Vet, Riverfront, etc., it's not a\n>> football park in which they also play baseball.\n\n>While we're on the multipurpose subject, let's not forget Shea, which\n>was designed to accommodate both the Mets & Jets.  It was the first\n>stadium (I think) to have the box seats on rollers so they could be\n>oriented at right angles for baseball & in parallel for football.\n\nNot the first.  RFK, olim DC Stadium, was built 2 years earlier.\nNowadays they don't move the seats back for the few exhibition\ngames; but the 3rd-base/LF lower deck used to move.  It was all \nmetal, which was pretty noisy on Bat Day.\n\n>Of course, with the Jets gone to Jersey (and a truly good football\n>stadium), the Mets are saddled with a multipurpose stadium where,\n>because it's circular, the seats are almost always too far from the\n>action.  The Mets announcers--Kiner & Murphy in particular--have\n>always hyped it as \"beautiful Shea\n>Stadium,\" a tipoff to how unbeautiful it truly is.\n\nIt's vastly better than it was before they fixed it, though.  Back in\nthe late 70's it was a *dump*.\n\nRoger (don't you*like* jet noise?)\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3254, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: ALL-TIME BEST PLAYERS\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 40\n\nIn article <1993Apr15.125205.29853@aplcen.apl.jhu.edu> (jmhodapp@aplcomm.jhuapl.edu) writes:\n>In article <1993Apr14.173428.12056@Princeton.EDU>, roger@crux.Princeton.EDU (Roger Lustig) writes:\n\n>> >In article <1993Apr13.115313.17986@bsu-ucs>, 00mbstultz@leo.bsuvc.bsu.edu \n>> >     writes...\n\n>> >>I've recently been working on project to determine the greatest\n>> >>players at their respective postions.  \n\n>> >>2B  Career                         \n\n>What about U. Johnny Hodapp, the greatest 2nd baseman in Cleveland Indians\n>history?  225 hits in 1930, consistantly over .300.  A great, great second baseman.\n\nUm, the header said *career.*  Hodapp managed about 3000 PA in his\nnine years in the majors.\n\nAs for his \"consistently over .300,\" make that \"three years in a row, \npreceded by a part-time year, plus his last year, with Boston.\"  Hodapp\nonly qualified for the batting title five times.  \n\nWas he injured?  He retired right around his 28th birthday.\n\nAnyway, Hodapp put up flashy numbers the year *everybody* put up\nflashy numbers.  That was his only really good year with a bat; \nhis other .300 years were marred by a lack of power and an inability\nto draw walks.  Only 163 of those 3000 PA were bases on balls, which\ndoes not describe a feared hitter.  \n\nOn the other hand, he was part of the long line of famous Cleveland 2B:\nWambsganss, Riggs Stephenson, etc.\n\nRoger\n>\n>Jon \"Johnny\" Hodapp\n>jmhodapp@aplcomm.jhuapl.edu\n>=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n>\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3255, "properties": {"category": "alt.atheism", "text": "From: naren@tekig1.PEN.TEK.COM (Naren Bala)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 19\n\n>snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n> More horrible deaths resulted from atheism than anything else.\n>\n\nLIST OF KILLINGS IN THE NAME OF RELIGION \n1. Iran-Iraq War: 1,000,000\n2. Civil War in Sudan: 1,000,000\n3, Riots in India-Pakistan in 1947: 1,000,000\n4. Massacares in Bangladesh in 1971: 1,000,000\n5. Inquistions in America in 1500s: x million (x=??)\n6. Crusades: ??\n\nI am sure that people can add a lot more to the list.\nI wonder what Bobby has to say about the above. \nStandard Excuses will not be accepted.\n-- Naren\n\nAll standard disclaimers apply\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3256, "properties": {"category": "comp.sys.mac.hardware", "text": "From: f_tawb@va.nkw.ac.uk\nSubject: US SIMM prices please\nOrganization: Natural Environment Research Council\nLines: 15\n\n\nPlease could someone in the US give me the current street \nprices on the following, with and without any relevant taxes:\n\n 8 Mb 72 pin SIMM\n16 Mb 72 pin SIMM (both for Mac LC III)\n\nAre any tax refunds possible if they are to be exported\nto the UK? Can you recommend a reliable supplier?\n\nAs I am posting this from a friend's account, please\nreply direct to me at:\n        s.fraser@ic.ac.uk\nThanks in advance for any help  :^)\nSimon\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3257, "properties": {"category": "comp.windows.x", "text": "From: rgooch@rp.CSIRO.AU (Richard Gooch)\nSubject: Re: Animation with XPutImage()?\nOrganization: CSIRO Division of Radiophysics/Australia Telescope National Facility\nLines: 41\n\nIn article <1993Apr21.165310.14544@dsd.es.com>, pmartz@dsd.es.com (Paul Martz) writes:\n> In article <1993Apr21.154620.16330@infodev.cam.ac.uk>, dcr@mail.ast.cam.ac.uk (Derek C. Richardson) writes:\n> > Hi, I'm new to this group so please bear with me!\n> > \n> > Two years ago I wrote a Sunview application for fast animation\n> > of raster files. With Sunview becoming rapidly obselete, I've\n> > finally decided to rewrite everything from scratch in XView.\n> > I put together a quick test, and I've found that XPutImage()\n> > is considerably slower (factor of 2 on average?) than the\n> > Sunview command pw_rop() which moves image data from memory\n> > pixrects to a canvas. This was on a Sparc IPX. It seems that:\n> > (1) the X protocol communication is slowing things down; or\n> > (2) XPutImage is inefficient...or both!\n> \n> Using XPutImage, your source is maintained by the client and the\n> destination is maintained by the server, thus you incur the overhead\n> of transporting through whatever client-server communications\n> mechanism you are using.\n> \n> Is it possible for you to maintain your source images in pixmaps?\n> These are maintained by the server, so copying them into a window is\n> much cheaper.\n> \n> Also make sure you are not sending any unnecessary XSyncs, or running\n> in XSynchonize mode.\n\n  If you need speed, and your client can run on the same host as the X server,\n  you should use the shared memory extension to the sample X server (MIT-SHM).\n  xdpyinfo  will tell you if your server has this extension. This is certainly\n  available with the sample MIT X server running under SunOS.\n  A word of warning: make sure your kernel is configured to support shared\n  memory. And another word of warning: OpenWindows is slower than the MIT\n  server.\n  I have written an imaging tool (using XView for the GUI, by the way) which\n  yields over 10 frames per second for 512*512*8 bit images, running on a Sparc\n  IPC (half the cpu grunt of an IPX). This has proved quite sufficient for\n  animations.\n\n\t\t\t\tRegards,\n\n\t\t\t\t\tRichard Gooch....\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3258, "properties": {"category": "comp.windows.x", "text": "From: rei@tsl.cl.nec.co.jp (Rei Hamakawa)\nSubject: Xavier (AV Extension to InterViews)\nArticle-I.D.: tsl.1993Apr27.043112.25052\nOrganization: C&C Systems Research Labs, NEC Corporation, Kawasaki, Japan\nLines: 58\nNntp-Posting-Host: hyperion.tsl.cl.nec.co.jp\n\nDear Folks:\n\nIt's a pleasure to be able to announce the release of a new freeware program, \nXavier, an audio and video  extension to InterViews.\n\nXavier(eXtension AV class for IntERviews) is a C++ class library\nthat adds multimedia capability to InterViews. It allows composite\nmultimedia objects to be built from media objects.\n\nSpecifically, it adds audio and video objects to the classes available\nin InterViews 3.0.1/3.1, and it does so without changing the\nsource code for the original classes (though several configuration\nfiles for InterViews need to be changed via a patch file). \n \nCurrently, the Xavier audio classes are only supported on SUN\nworkstations with an audio interface, such as the SPARCstation2.\n\nXavier has been tested in the following environments:\n\nSUN:\n  Machine : SPARCserver470 SPARCstation-IPC\n  OS      : SUN-OS4.1.1 or later\n  C++     : SUN C++ ver2.1\n\nNEC(EWS):\n  Machine : EWS4800/210,230\n  OS      : EWS-UX/V(Rel4.0) WSOS41 Release5.1,Release5.2\n  C++     : C++ Release3.1\n\nIt can be obtained via anonymous ftp from \n\n         interviews.stanford.edu in /pub/contrib/\n          (Xavier.large-demo.tar, and Xavier.tar)\n\nWe are preparing a mailing-list for information regarding Xavier.\nIf you are interested, please contact\n               \n                   xavier@tsl.cl.nec.co.jp. \n\nI will add your e-mail address to our list.\n\n[Reference]\no Rei Hamakawa, Hizekazu Sakagami, Jun Rekimoto:\n  Audio and Video Extension to Graphical Interface Toolkits,\n  The Third International Workshop on Network and Operating\n  System Support for Digital Audio and Video, San Diego, 1992\n\n***********************************************************************\n* _                                                                   *\n*  \\ \\      Rei Hamakawa (e-mail: rei@tsl.cl.nec.co.jp)               *\n*   |o|                                                               *\n*   |o|     C & C Systems Research Laboratories                       *\n*   |o| __  NEC Corporation                                           *\n*  O| || /  1-1, Miyazaki 4-Chome,      TEL : +81-44-856-2271         *\n*  O| || |  Miyamae-ku, Kawasaki,       FAX : +81-44-856-2232         *\n*  O| \\/ |  Kanagawa 216 JAPAN                                        *\n*    \\__/                                                             *\n***********************************************************************\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3259, "properties": {"category": "comp.graphics", "text": "From: rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter)\nSubject: Re: Please Recommend 3D Graphics Library For Mac.\nOrganization: Boeing\nLines: 35\n\nIn article <1qnm6fINN8tr@tamsun.tamu.edu> brentb@tamsun.tamu.edu (Brent) writes:\n>tsa@cellar.org (The Silent Assassin) writes:\n>>rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter) writes:\n>>\n>>> Can you please offer some recommendations?\n>>\n>>It's really not that hard to do.  There are books out there which explain\n>>everything, and the basic 3D functions, translation, rotation, shading, and\n>>hidden line removal are pretty easy.  I wrote a program in a few weeks witht\n>>he help of a book, and would be happy to give you my source.\n>\n>I think he wanted to avoid reinventing the wheel.\n\n Yes, I want to concentrate on other development issues - I've created graphics\n libraries before, it's too time consuming... life's too short!\n\n>>\tAlso, Quickdraw has a lot of 3D functions built in, and Think pascal\n>>can access them, and I would expect that THINK C could as well.  If you can\n>>find out how to use the Quickdraw graphics library, it would be an excellent\n>>choice, since it has a lot of stuff, and is built into the Mac, so should be\n>>fast.\n>\n>Just to clarify, the 3D routines that are mentioned in various places\n>on the mac are in a libray, not the ROM of the mac.  A few years ago before\n>I knew anything about implementing graphics, I came across a demo of the\n>Apple GrafSys3D library and it actually did a lot.  However, it is quite\n>limited in the sense that it's a low-level 3D library; your code still has\n>to plot individual points, draw each line, etc ad nauseum.  It has nothing\n>on GL, for example, where you can handle objects.\n\n Thanks for the clarification... Before posting my original request I had looked\n into the Mac's 3D capabilities and dismissed them as low grade.\n\nBobC\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3260, "properties": {"category": "soc.religion.christian", "text": "From: aaron@binah.cc.brandeis.edu (Scott Aaron)\nSubject: Re: Latest on Branch Davidians\nReply-To: aaron@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 36\n\nIn article <Apr.20.03.02.42.1993.3815@geneva.rutgers.edu>,\nconditt@tsd.arlut.utexas.edu (Paul Conditt) wrote:\n>\n>\n> I think it's really sad that so many people put their faith in a mere\n> man, even if he did claim to be the son of God, and/or a prophet.\n\nI'll pose a question here that's got me thinking:  what distinguishes\n\"true\" religion from cults (I'm speaking generally here, not specifially\nabout Christianity)?  Jerry Falwell was on Good Morning America on \nTuesday ostensibly to answer this question.  Basically, he said that\ntrue religion follows a message whereas a cult follows a person.\nBut, then, Christianity is a cult because the message of Christianity\nIS the person of Jesus.  So what distinguishes, for example, the\nBranch Davidian \"cult\" from the Presbyterian \"church\"?  Doctrinal\ndifferences don't answer the question, IMHO, so don't use them as\nan answer.\n\n  -- Scott at Brandeis\n\n\t\"But God demonstrates His     \"The Lord bless you, and keep you;\n\t own love for us, in that      the Lord make His face shine on you,\n\t while we were yet sinners,    and be gracious to you;\n\t Christ died for us.\"\t       the Lord lift up His countenance on you,\n\t\t\t\t       and give you peace.\"\n\t\t-- Romans 5:8 [NASB]\t\t-- Numbers 6:24-26 [NASB]\n\n[There have been some attempts to characterize \"cult\".  Most commonly\nit uses characteristics involving high pressure, brainwashing\ntechniques, etc.  But some people characterize it by doctrinal\nerror.  In the end I'm afraid it becomes a term with no precise\nmeaning that's used primarily to dismiss groups as not worthy\nof serious consideration.  That doesn't mean that there aren't\ngroups that do highly irresponsible things and have serious\ndoctrinal errors.  But past discussions have not suggested to me\nthat \"cult\" is a very helpful term.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3261, "properties": {"category": "rec.sport.baseball", "text": "From: kime@mongoose.torolab.ibm.com (Edward Kim)\nSubject: Re: Ind. Source Picks Baerga Over Alomar: Case Closed \nIn-Reply-To: tedward@cs.cornell.edu's message of Fri, 16 Apr 1993 19:07:35 GMT\nDistribution: na\nLines: 8\n\t<1993Apr16.190735.13322@cs.cornell.edu>\nOrganization: IBM Toronto Lab\n\n> That's a joke!  (Alomar might not be a gold-glover, but he's certainly\n> no worse than Baerga defensively.)\nActually Alomar is a two-time gold-glover (91-92).\n\n> \n> -Valentine\n\nEdk\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3262, "properties": {"category": "talk.politics.mideast", "text": "From: jaa12@cunixa.cc.columbia.edu (John A Absood)\nSubject: Re: Freedom In U.S.A.\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: jaa12@cunixa.cc.columbia.edu (John A Absood)\nOrganization: Columbia University\nLines: 14\n\nMr. Freeman:\n\nPlease find something more constructive to do with your time rather\nthan engaging in fantasy..... Not that I have a particular affinty\nto Arafat or anything.\n\nJohn\n\n\n\n\"Marlow ceased, and sat apart, indistinct and silent, in the pose of a\n meditating Buddha. Nobody moved for a time...The offing was barred by\n a black bank of clouds, and the tranquil waterway leading to the utter-\n most ends of the earth flowed sombre under an overcast sky - seemed to\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3263, "properties": {"category": "talk.religion.misc", "text": "From: system@kalki33.lakes.trenton.sc.us (Kalki Dasa)\nSubject: Bhagavad-Gita 2.45\nOrganization: Kalki's Infoline BBS, Aiken, SC, USA\nLines: 62\n\n                                TEXT 45\n\n                        trai-gunya-visaya veda\n                        nistrai-gunyo bhavarjuna\n                     nirdvandvo nitya-sattva-stho\n                          niryoga-ksema atmavan\n  \ntrai-gunya--pertaining to the three modes of material nature;\nvisayah--on the subject matter; vedah--Vedic literatures;\nnistrai-gunyah--transcendental to the three modes of material nature;\nbhava--be; arjuna--O Arjuna; nirdvandvah--without duality;\nnitya-sattva-sthah--in a pure state of spiritual existence;\nniryoga-ksemah--free from ideas of gain and protection;\natma-van--established in the self.\n    \n                              TRANSLATION\n\n The Vedas deal mainly with the subject of the three modes of material\nnature. O Arjuna, become transcendental to these three modes. Be free\nfrom all dualities and from all anxieties for gain and safety, and be\nestablished in the self.\n  \n                                PURPORT\n\n All material activities involve actions and reactions in the three\nmodes of material nature. They are meant for fruitive results, which\ncause bondage in the material world. The Vedas deal mostly with fruitive\nactivities to gradually elevate the general public from the field of\nsense gratification to a position on the transcendental plane. Arjuna,\nas a student and friend of Lord Krsna, is advised to raise himself to\nthe transcendental position of Vedanta philosophy where, in the\nbeginning, there is brahma-jijnasa, or questions on the supreme\ntranscendence. All the living entities who are in the material world are\nstruggling very hard for existence. For them the Lord, after creation of\nthe material world, gave the Vedic wisdom advising how to live and get\nrid of the material entanglement. When the activities for sense\ngratification, namely the karma-kanda chapter, are finished, then the\nchance for spiritual realization is offered in the form of the\nUpanisads, which are part of different Vedas, as the Bhagavad-gita is a\npart of the fifth Veda, namely the Mahabharata. The Upanisads mark the\nbeginning of transcendental life.\n\n As long as the material body exists, there are actions and reactions in\nthe material modes. One has to learn tolerance in the face of dualities\nsuch as happiness and distress, or cold and warmth, and by tolerating\nsuch dualities become free from anxieties regarding gain and loss. This\ntranscendental position is achieved in full Krsna consciousness when one\nis fully dependent on the good will of Krsna.\n\nBhagavad-Gita As It is\nBooks of A.C. Bhaktivedanta Swami\n\n\n       ---------------------------------------------------------\n      |                Don't forget to chant:                   |\n      |                                                         |\n      |  Hare Krishna Hare Krishna, Krishna Krishna Hare Hare   |\n      |       Hare Rama Hare Rama, Rama Rama Hare Hare          |\n      |                                                         |\n      |    Kalki's Infoline BBS Aiken, South Carolina, USA      |\n      |          (system@kalki33.lakes.trenton.sc.us)           |\n       ---------------------------------------------------------\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3264, "properties": {"category": "soc.religion.christian", "text": "From: jhpb@sarto.budd-lake.nj.us (Joseph H. Buehler)\nSubject: Re: SSPX schism ?\nOrganization: none\nLines: 240\n\nLarry L. Overacker writes, responding to Simon:\n\n   I may be interesting to see some brief selections posted to the\n   net.  My understanding is that SSPX does not consider ITSELF in\n   schism or legitimately excommunicated.  But that's really beside\n   the point.  What does the Roman Catholic church say?\n   Excommunication can be real apart from formal excommunication, as\n   provided for in canon law.\n\nHere's some of the theology involved for the interested.\n\nThere is confusion over this issue of the SSPX's \"schism\"; often the\nbasic problem is lack of an ability to distinguish between:\n\n- true obedience\n- false obedience\n- disobedience\n- schism\n\nTake the various classifications of obedience first.  There are 2\nimportant elements involved here for my purposes:\n\n1) a command\n2) the response made to the command\n\nAs far as the command goes, commands can be LEGITIMATE, such as the\nPope ordering Catholics to not eat meat on Fridays.  Or they can be\nILLEGITIMATE, such as the Pope ordering Catholics to worship the god\nDagon when every other full moon comes around.\n\nAs far as the response to a command goes, it can be to REFUSE to do\nwhat is commanded, or to COMPLY.\n\nMaking a table, there are thus 4 possibilites:\n\ncommand         response            name\n-----------------------------------------------------\nLEGITIMATE      COMPLY              true obedience\nILLEGITIMATE    REFUSE              true obedience\nLEGITIMATE      REFUSE              disobedience\nILLEGITIMATE    COMPLY              false obedience\n\nSo now you see where my 3 classifications of obedience come from.\n\nObedience is not solely a matter of compliance/refusal.  The nature of\nthe commands must also be taken into account; it is not enough to\nconsider someone's compliance or refusal and then say whether they are\n\"obedient\" or \"disobedient\".  You also have to take into consideration\nwhether the commands are good or bad.\n\nIn my example, if the Pope commands all Catholics to worship the god\nDagon, and they all refuse, they aren't being disobedient at all!\n\nAs far as the Society of Saint Pius X goes, they are certainly\nrefusing to comply with certain things the Pope desires.  But that\nalone is insufficient to allow one to label them \"disobedient\".  You\nalso have to consider the nature of the Papal desires.\n\nAnd there's the rub: SSPX says the Popes since Vatican II have been\ncommanding certain very bad things for the Church.  The Popes have of\ncourse disagreed.\n\nSo where are we?  Are we in another Arian heresy, complete with weak\nPopes?  Or are the SSPX priests modern Martin Luthers?  Well, the only\nway to answer that is to examine who is saying what, and what the\ntraditional teaching of the Church is.\n\nThe problem here is that very few Catholics have much of an idea of\nwhat is really going on, and what the issues are.  The religion of\nAmerican Catholics is especially defective in intellectual depth.  You\nwill never read about the issues being discussed in the Catholic press\nin this country.  (On the other hand, one Italian Catholic magazine I\nget -- 30 Days -- has had interviews with the Superior General of the\nSociety of Saint Pius X.)\n\nMany Catholics will decide to side with the Pope.  There is some\nsoundness in this, because the Papacy is infallible, so eventually\nsome Pope *will* straighten all this out.  But, on the other hand,\nthere is also unsoundness in this, in that, in the short term, the\nPopes may indeed be wrong, and such Catholics are doing nothing to\nhelp the situation by obeying them where they're wrong.  In fact, if\nthe situation is grave enough, they sin in obeying him.  At the very\nleast, they're wasting a great opportunity, because they are failing\nto love Christ in a heroic way at the very time that He needs this\nbadly.\n\nSchism... let's move on to schism.  What is it?\n\nSchism is a superset of disobedience (refusal to obey a legitimate\ncommand).  All schismatics are disobedient.  But it's a superset, so\nit doesn't work the other way around: not all disobeyers are\nschismatics.  The mere fact that the SSPX priests don't comply with\nthe Holy Father's desires doesn't make them schismatics.\n\nSo what is it that must be added to disobedience to constitute a\nschism?  Maybe this something else makes the SSPX priests schismatics.\n\nYou must add this: the rejection of the right to command.  Look in any\ndecent reference on Catholic theology, and that's what you'll find:\nthe distinguishing criterion of schism is rejection of the right to\ncommand.\n\nHere's what the Catholic Encyclopedia says, for example:\n\n    ... not every disobedience is a schism; in order to possess this\n    character it must include besides the trangression of the commands\n    of superiors, denial of their Divine right to command.\n    (from the CE article \"Schism\")\n\nIs the Society of Saint Pius X then schismatic?  The answer is a clear\nno: they say that the Pope is their boss.  They pray for him every\nday.  And that's all that matters as far as schism goes.\n\nWhat all this boils down to is this: if we leave aside the\nconsideration of the exact nature of their objections, their position\nis a legitimate one, as far as the Catholic theology of obedience and\nschism goes.  They are resisting certain Papal policies because they\nthink that they are clearly contrary to the traditional teaching of\nthe Papacy, and the best interests of the Church.  (In fact, someone\nwho finds himself in this situation has a *duty* to resist.)\n\nNow, what is the stance of Rome on all this?  Well, if you read the\nHoly Father's motu proprio \"Ecclesia Dei\", you can find out.  It's the\ndefinitive document on the subject.  A motu proprio is a specifically\nPapal act.  It's not the product of a Roman congregation, a letter\nthat the Pope has possibly never even read.  It's from the Pope\nhimself.  His boss is God... there's no one else to complain to.\n\nIn this document, the Holy Father says, among other things:\n\n1) The episcopal consecrations performed by Archbishop Lefebvre\nconstituted a schismatic act.\n\n2) Archbishop Lefebvre's problem was a misunderstanding of the nature\nof Tradtion.\n\nBoth are confusing: I fail to see the logic of the Pope's points.\n\nAs far as the episcopal consecrations go, I read an interesting\narticle in a translation of the Italian magazine \"Si Si No No\".  It\nall gets back to the question of jurisdiction.  If episcopal\nconsecrations imply rejection of the Pope's jurisdiction, then they\nwould truly constitute a schismatic act, justifying excommunication\nunder the current code of canon law.  But my problem with this is\nthis: according to the traditional theology of Holy Orders, episcopal\nconsecration does not confer jurisdiction.  It only confers the power\nof Order: the ability to confect the Sacraments.  Jurisdiction must be\nconferred by someone else with the power to confer it (such as the\nPope).  The Society bishops, knowing the traditional theology quite\nwell, take great pains to avoid any pretence of jurisdiction over\nanyone.  They simply confer those Sacraments that require a bishop.\n\nThe \"Si Si No No\" article was interesting in that it posited that the\nreason that the Pope said what he did is that he has a novel,\npost-Vatican II idea of Holy Orders.  According to this idea,\nepiscopal consecration *does* confer jurisdiction.  I lent the article\nto a friend, unfortunately, so can't tell you more.  I believe they\nquoted the new code of canon law in support of this idea.\n\nThe Pope's thinking on this point remains a great puzzle to me.\nThere's no way there is a schism, according to traditional Catholic\ntheology.  So why does the Pope think this?\n\nAs far as the points regarding the nature of Tradition goes, here's\nthe passage in question:\n\n    The root of this schismatic act can be discerned in an incomplete\n    and contradictory notion of Tradtion.  Incomplete, because it does\n    not take sufficiently into the account the living character of\n    Tradition, which, as the Second Vatican Council clearly taught,\n\n        comes from the apostles and progresses in the Church with the\n        help of the Holy Spirit.  There is a growth in insight into\n        the realities and words that are being passed on.  This comes\n        about in various ways.  It comes through the contemplation and\n        study of believers who ponder these things in their hearts.\n        It comes from the intimate sense of spiritual realities which\n        they experience.  And it comes from the preaching of those who\n        have received, along with their right of succession in the\n        espiscopate, the sure charism of truth.\n\n    But especially contradictory is a notion of Tradition which\n    opposes the universal Magisterium of the Church possessed by the\n    Bishop of Rome and the body of bishops.  It is impossible to\n    remain faithful to the Tradition while breaking the ecclesial bond\n    with him to whom, in the person of the Apostle Peter, Christ\n    himself entrusted the ministry of unity in His Church.\n\n    (Papal motu proprio \"Ecclesia Dei\", 2 July 1988)\n\nIt seems to me that the Holy Father is making two points here that can\nbe simplified to the following:\n\n- Vatican Council II has happened.\n- I am the Pope.\n\nThe argument being that either case is sufficient to prove that\nArchbishop Lefebvre must be wrong, because he disagrees with them.\nThis is weak, to say the least!\n\nIt would have helped clarify things more if the Pope had addressed\nArchbishop Lefebvre's concerns in detail.  What is John Paul II's\nstand on the social Kingship of Christ, as taught by Gregory XVI, Pius\nIX, Leo XIII, Pius XI and Pius XII, for example?  Are we supposed to\nignore what all these Popes said on the subject?\n\nI don't know what the future will hold, but the powers that be in the\nSSPX are still talking with Rome and trying to straighten things out.\n\n--------------------------------------------------------------\n\n[Many people would prefer to call a justified refusal to obey\n\"justified disobedience\" or even \"obeying God rather than man\".\nCalling a refusal to obey obedience puts us into a sort of Alice in\nWonderland world where words mean whatever we want them to mean.\n\nSimilarly, schism indicates a formal break in the church.  If the Pope\nsays that a schism exists, it seems to me that by definition it\nexists.  It may be that the Pope is on the wrong side of the break,\nthat there is no good reason for the break to exist, and that it will\nshortly be healed.  But how can one deny that it does in fact exist?\n\nIt seems to me that you are in grave danger of destroying the thing\nyou are trying to reform: the power of the papacy.  What good will it\ndo you if you become reconciled to the the Pope in the future, but in\nthe process, you have destroyed his ability to use the tools of church\ndiscipline?  It's one thing to hold that the Pope has misused his\npowers, and excommunicated someone wrongly.  It's something else to\nsay that his excommunication did not take effect, and the schism is\nall in his imagination.  That means that acts of church discipline are\nnot legal tools, but acts whose validity is open to debate.  Generally\nit has been liberal Catholics who have had problems with the Pope.\nWhile they have often objected to church sanctions, generally they\nhave admitted that the sanctions exist.  You are now opening the door\nto people simply ignoring papal decisions, claiming to be truly\nobeying by disobeying, and to be in communion while excommunicated.\nThis would seem to be precisely the denial of Divine right to command\nthat you say defines schism.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3265, "properties": {"category": "talk.politics.misc", "text": "From: demon@desire.wright.edu (Not a Boomer)\nSubject: Re: Supply Side Economic Policy\nArticle-I.D.: desire.1993Apr6.130430.8264\nOrganization: ACME Products\nLines: 65\n\nIn article <186042@pyramid.pyramid.com>, pcollac@pyrnova.mis.pyramid.com (Paul Collacchi) writes:\n> In article <Ufk_Gqu00WBKE7cX5V@andrew.cmu.edu>, ashish+@andrew.cmu.edu\n> (Ashish Arora) writes:\n> |> Excerpts from netnews.sci.econ: 5-Apr-93 Re: Supply Side Economic Po..\n> |> by Not a Boomer@desire.wrig \n> |> [...]\n> |> \n> |> >    The deficits declined from 84-9, reaching a low of 2.9% of GNP before  \n> |> > the tax and spending hike of 1990 reversed the trend.\n> |> >  \n> |> > Brett\n> |> Is this true ?  Some more details would be appreciated.\n> |> \n> |> cheers\n> \n> Actually not.  Brett himself has actually posted the data previously.\n> What declined from 84 to 89, as I remember it, was _percent\n> increase_in_deficit_growth, i.e. the rate of growth of the deficit \n> (2nd derivative of total deficit with respect of to time) decreased.\n\n\tWould you please define \"nth derivative of debt\"?  Last time I asked\nyou seem to have disappeared....\n\n\tAnd it's the deficits themselves that came down to 2.9% of GNP.  The\nnumbers are posted in the previous posting.\n\n> Brett apparently has numbed himself into thinking that the deficit\n> declined.  \n\n\tCute, Paul, but with no numbers you still look foolish.\n\n> If you keep spending more than you earn, the deficit keeps\n> growing.  \n\n\tPaul, like many others, is confusing the deficit with the debt.\n\n> If you keep _borrowing_ at a lesser rate than you borrowed\n> previously, the deficit increases.  You only decrease deficits when your\n> income exceeds spending and you use the difference to pay off debts.\n\n\tNot in terms of GNP, the one universally accepted measure of deficits\n(at least among rigorous economists :)\n\n...\n> arguments were brilliant.  He confirmed, with data, what many of us know\n> with common sense -- the boom of the 80's has nothing to do with government\n> policy, particularly \"supply side\" policy, since taxes do not \"cause\" \n> economic activities.  People cause economic activity.  More can be \n\n\tSemantics.  Lindsey proves otherwise.  Taxes make people change their\neconomic activities.\n\tOr shall we debate whether it is the gun, the bullet, or the person who\ndoes the killing?\n\n> explained by watching population waves roll through the years and \n> create cycles.  He has made models and predictions for years well into\n> the middle of next century.  It will be neat to see how accurate he\n> is.\n\n\tOr whether this gentleman can win the same praise as Lindsey. :)\n\nBrett\n________________________________________________________________________________\n\t\"There's nothing so passionate as a vested interest disguised as an\nintellectual conviction.\"  Sean O'Casey in _The White Plague_ by Frank Herbert.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3266, "properties": {"category": "alt.atheism", "text": "Subject: Re: Request for Support\nFrom: kmr4@po.CWRU.edu (Keith M. Ryan)\nOrganization: Case Western Reserve University\nNNTP-Posting-Host: b64635.student.cwru.edu\nLines: 16\n\nIn article <1993Apr5.095148.5730@sei.cmu.edu> dpw@sei.cmu.edu (David Wood) writes:\n\n>2. If you must respond to one of his articles, include within it\n>something similar to the following:\n>\n>    \"Please answer the questions posed to you in the Charley Challenges.\"\n\n\tAgreed.\n\n--\n\n\n       \"Satan and the Angels do not have freewill.  \n        They do what god tells them to do. \"\n\n        S.N. Mozumder (snm6394@ultb.isc.rit.edu) \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3267, "properties": {"category": "rec.sport.baseball", "text": "From: gt0523e@prism.gatech.EDU (Michael Andre Mule)\nSubject: Braves offensive offense\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 16\n\nDeion Sanders hit a home run in his only AB today.  Nixon was 1 for 4.  Infield\nsingle.  Deion's batting over .400 Nixon: around .200.   Whom would YOU start?\nWise up, Bobby. \n\n\nSee y'all at the ballyard\nGo Braves\nChop Chop\n\nMichael Mule'\n\n-- \nMichael Andre Mule\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0523e\nInternet: gt0523e@prism.gatech.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3268, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Israeli Expansion-lust\nOrganization: Aiken Computation Lab, Harvard University\nLines: 83\n\nIn article <1993Apr13.182614.2634@bnr.ca> zbib@bnr.ca writes:\n>In article  <1993Apr13.002118.24102@das.harvard.edu> \n> adam@endor.uucp (Adam Shostack) writes:\n\n>> In article <1993Apr12.184034.1370@bnr.ca> zbib@bnr.ca writes:\n\n>>>IMHO, it does not really matter who started any individual battle within \n>>>the Arabs/Isreal war context. The real question is who/what  started the \n>>>War. Does anyone have any doubts it was the creation of Israel on Arab \n>>>land ? \n>>\tHuh?  A war was started when several armies invaded Israel,\n>>vowing to drive the Jews into the sea.  Most Jews wanted to live in\n>>peace, and the Arabs who stayed in Israel were granted citizenship.\n\n> I am\n>surprised that you don't consider the acquisition of land by\n>the Jews from arabs, for the purpose of establishing an exclusive\n>state, as a hostile action leading to war.\n\n\tIt was for the purpose of establishing a state, not an\nexclusive state.  If the state was to be exclusive, it would not have\n400 000 arab citizens.\n\n\tAnd no, I do not consider the purchase of land a hostile\naction.  When someone wants to buy land, and someone else is willing\nto sell it, at a mutually agreeable price, then that is commerce.  It\nis not a hostile action leading to war.\n\n>As to whether the Jews wanted to live in peace, maybe.\n>However they wanted and still want an exclusively Jewish\n>state, where Jews are in control and Jews are the masters of\n>the land.  Living in peace is meaningless unless it means\n>living *WITH* someone else, as equal. For a native arab, this \n>does not leave many options.\n\n\tOh, you mean like both Jews and Arabs being citizens?  The\narabs who stayed are now citizens, with as much right to choose who\nthey vote for as the Jews.\n\n>Those palestinians who stayed, actually stayed despite of what \n>happened, and their number was somewhat tolerated as a defenseless\n>and ineffective minority.\n>If I were wrong, you'd have Israel recall all the\n>palestinian refugees (we're talking millions). After all,\n>they are civilians. \n\n\tHuh?  The people who left, did so voluntarily.  There is no\nreason for Israel to let them in.\n\n>Israel gave citizenship to the remaining arabs because it\n>had to maintain a democratic facade (to keep the western aid\n>flowing).\n\n\tIsrael got no western aid in 1948, nor in 1949 or 50...It\nstill granted citizenship to those arabs who remained.  And how\nis granting citizenship a facade?\n\n>>\tTell me something, Sam.  What makes land \"arab?\"\n\n>How shall I explain, Its a contract between the man and the\n>land.  Control isn't it. The Ottomans ruled 400 years, and\n>then left with barely a trace.  The concept of Land identity\n>is somewhat foreign to the mobile and pragmatic West.  It is\n>partly the concept of 'le sol natal', native soil.  I know\n>that jews had previous history in the region, but none in\n>recent memory.  I'm talking everyday life not archeology.\n\n\tTry again, you tell me what its isn't, but you fail to\nestablish what it is.\n\n\tAlso, Jews did have history in Israel for over a thousand\nyears.  There were lots of Jews slaughtered by Crusaders in Israel.\nThere was a thriving community in Gaza city from roughly 1200-1500.\nJews were a majority in Jerusalem from 1870 or so onwards.  Does that\nmake the land Jewish?\n\nAdam\n\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.149+0000", "event": "documents", "entityId": 3269, "properties": {"category": "rec.autos", "text": "From: tomh@metrics.com (Tom Haapanen)\nSubject: Re: top 10 reasons why i love CR (not for the humor impaired)\nOrganization: Software Metrics Inc.\nDistribution: na\nLines: 19\n\nCHINTS@ISCS.NUS.SG writes:\n> Here are \"another\" ten reasons why we should all love CR\n> 10. Car salesmen love their new car buying service\n> [...]\n> 7. Car Salesmen/rec.auto readers turned into \"expert\" statistics critics\n> [...]\n> 5. Lucky owners of CR unreliable cars who say \"Mine never had a problem\"\n> 4. Those same owners joining the sceptics a few months later\n> 3. And later subscribing to CR and taking it soooo seriously\n> 2. And later on buying a CR \"idealized family sedan\"\n\nAnd my number 1:\n\n1. The spectacle of the religious fervour of the CR \"true believers\".\n\n-- \n[ /tom haapanen -- tomh@metrics.com -- software metrics inc -- waterloo, ont ]\n[       \"stick your index fingers into both corners of your mouth.  now pull ]\n[          up.  that's how the corrado makes you feel.\"  -- car, january '93 ]\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3270, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Re: What is Zero dB????\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 81\n\nIn article <sehari.733764410@vincent1.iastate.edu>, sehari@iastate.edu (Babak Sehari) writes:\n|> In <C4truE.6AA@ms.uky.edu> msunde01@mik.uky.edu (Mark  Underwood) writes:\n|> \n|> >I am somewhat familiar with the dB measurements as they apply to  \n|> >electrical circuits - i.e. it is the gain of (for example) an amplifier  \n|> >measured on a logarithmic scale.  However, this requires that you have a  \n|> >reference value:  i.e the ouput is +20dB (e.g.) with respect to the input  \n|> >signal.\n\n<stuff deleted>\n\n|> What you actually talking about here is dBm and not dB.  However, the terms\n|> are used loosely by most people.  ``dBm'' is power with respact to 1mW, whereas\n|> dB is a ratio.  Now, like these two English statement:\n|>\n|> 1.  I am doing well.\n|> 2.  I am doing good.\n|> \n|> Similarly, people usually use dB for dBm. Another common mistake is spelling\n|> ``db'' instead of ``dB'' as you did in your article. See the ``B'' is for \n|> ``Bell'' company, the mother of AT&T and should be capitalized.\n|> \n|>                           With highest regards,\n|>                                Babak   Sehari.\n\nGood gravy! Decibels are all *ratios.* The question that remains in\nany ratio is the reference unit used. Sometimes, this will be a reference\npower, such as 1 milliwatt (given a certain circuit impedance which\nshould also be included in the fine print or known, like 50 ohms\nin an RF circuit of that impedance), leading to an accepted\nnotation of dBm. Maybe it might be dBV, disregarding the impedance of\nthe circuit and power developed, using 1 volt as reference *amplitude*\n(rather than reference power). Or, it might have an arbitrary or omitted\nreference that is not included in the notation, leading to just plain dB.\nSo. look at it this way--'dB' has an implied reference while notation\nsuch as 'dBm' has an explicit reference.\n\nFor power:\n\n  dB = 10*log( P(measured)/P(reference) )\n\nFor amplitude\n\n  dB = 20*log( A(measured)/A(reference) )\n\n'B' is for bel, which is a standard term for a log ratio to the base\n10, named after Alexander Graham Bell. A 'deci' Bel is 1/10 of a bel.\nIt has nothing to do with the Bell Telephone company except for\nthe common founder's name. The small 'd'/large 'B' is per SI notation\nconvention. I don't know anyone that's been crucified for messing it up.\n\nCommon references for audio are:\n\n\t0 dBm = 1 milliwatt across 600 ohms\n\t0 dBV = 1 volt\n\n\t0 VU (a zero on the VU meter) = +4 dBm  (pro gear line level)\n\t0 VU = -10dBV\t(consumer gear line level)\n\n\nOften times, a power amp VU meter will be aligned using\nthe rated power of the amp as the 0 dB point. It is all\ndone to whatever reference is reasonable for the application\nor moment.\n\nNote that in a circuit with a given (and maybe unknown) linear\nimpedance, if the amplitude goes up so many decibels, the\npower will also increase the same amount. This proof can be done\nwith the above two identities and ohm's law.\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3271, "properties": {"category": "sci.med", "text": "From: wsun@jeeves.ucsd.edu (Fiberman)\nSubject: Re: Is MSG sensitivity superstition?\nKeywords: MSG, Glu\nOrganization: University of California, San Diego\nLines: 5\nNntp-Posting-Host: jeeves.ucsd.edu\n\nI have heard that epileptic patients go into seizures if they\neat anything with MSG added.  This may have something to do with\nthe excitotoxicity of neurons.\n\n-fm\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3272, "properties": {"category": "talk.politics.mideast", "text": "From: koc@rize.ECE.ORST.EDU (Cetin Kaya Koc)\nSubject: Re: Seventh Century A.D. Armenian Math Problems\nOrganization: College of Engineering, Oregon State University\nLines: 32\nNNTP-Posting-Host: rize.ece.orst.edu\n\n> Problem 1\n> \n> My father told me the following story. During the famous wars between the \n> Armenians and the Persians, prince Zaurak Kamsarakan performed extraordinary \n> heroic deeds. Three times in a single month he attacked the Persian troops. \n> The first time, he struck down half of the Persian army. The second time, \n> pursuing the Persians, he slaughtered one fourth of the soldiers. The third \n> time, he destroyed one eleventh of the Persian army. The Persians who were \n> still alive, numbering two hundred eighty, fled to Nakhichevan. And so, from \n> this remainder, find how many Persian soldiers there were before the  \nmassacre.\n> \n\nAnswer: a(1-1/2-1/4-1/11)=280 -> a = 1760\n\nCorollary: Armenians strike, slaughter, destroy, and massacre. After all,\n           they are not as innocent as the asala network claims.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3273, "properties": {"category": "talk.politics.misc", "text": "From: kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm)\nSubject: Re: Kyle K. on Rodney King\nDistribution: usa\nOrganization: University of Illinois at Urbana\nLines: 54\n\nthf2@kimbark.uchicago.edu (Ted Frank) writes:\n\n>In article <C5nH58.Hp4@news.cso.uiuc.edu> kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n>>thf2@kimbark.uchicago.edu (Ted Frank) writes:\n>>>In article <C5Lp0y.FDK@news.cso.uiuc.edu> kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n>>>>How about the fact that you have a bunch of cops putting their lives on\n>>>>the line day in and day out who are afraid as hell of a large black guy that\n>>>                                                               ^^^^^\n>>>>took a large amount of punishment and refused submit?  \n>>\n>>>I'm curious why you think that particular adjective is important.\n>>\n>>I'm curious why you took a beign statement and cross-posted it to several\n>>different news groups, including something along the lines of \n>>alt.discrimination.  \n\n>Exsqueeze me?  I saw *your* original post in alt.discrimination.\n>Your post was cross-posted to three groups.  My followup was cross-posted\n>to two of those three (omitting soc.motss).\n\n>Now, instead of engaging in meta-discussion off the topic, could you answer \n>the question posed?  If your statement is so \"beign\"(!?), you should have no\n>trouble politely responding to a polite query.\n\n       Well, I don't think your query was exactly polite, but I will TRY to\ngive you a polite responce.  Something atypical of the net, but here it goes.\n\n       Black is a descriptive adjective that describes Mr. King.  From many\nof the newspaper, radio, and tv news reports I have seen, this adjective      \nis commonly in front of his name.  I have NEVER seen anyone complain about\nthe use of this adjective when used in a benign manner.  I did not say that\nMr. King was a no good black!  I do not know Mr. King and would not make this\nascertian without some evidence to this effect.  I used it PURELY as a \ndescriptive adjective in the same manner than many ( most ) news people have\nused it in the past.\n\n\n      The entire second trial was about race, Ted.  I don't feel compelled to\ndiscuss Mr. King's racial background, but had Mr. King been white there would\nnot have been a second trial.  You probably are saying that the beating would\nnot have occurred if he were white, but that is an extremely difficult call\nto make.  It is possible the case, but not definately.  \n\n      I still think your actions are crap, Ted.  They are far more divisive than\nme using the adjective 'black' in a non-derogenory manner.  Would you have\nbeen happier if I had used 'African-american' ?  If so, then you really are\nlost in the world of PC.  You have already been instrumental in getting one\npersons net access revoked, and I wonder if you have sent a copy of my \nmessage to my sys admin with a plea that I am not worthy of posting.\n\n     The way you went about this 'polite' inquiry makes me believe it was \nanything but.\n \n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3274, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 8\nNNTP-Posting-Host: punisher.caltech.edu\n\nmathew <mathew@mantis.co.uk> writes:\n\n>As for rape, surely there the burden of guilt is solely on the rapist?\n\nNot so.  If you are thrown into a cage with a tiger and get mauled, do you\nblame the tiger?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3275, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: NL vs. AL?\n <93102.164224RVESTERM@vma.cc.nd.edu> <1993Apr13.184311.16351@news.yale.edu>\nLines: 23\n\nIn article <1993Apr13.184311.16351@news.yale.edu>, (Sean Garrison) says:\n>\n>In article <93102.164224RVESTERM@vma.cc.nd.edu>, RVESTERM@vma.cc.nd.edu\n>wrote:\n>\n>> pitchers who are doing well are\n>> more likely to be taken out of the game in the nl than they are in the al,\n>> so it seems to me that the al, not the nl, promotes pitchers' duels.\n>>\n>> bob vesterman.\n>\n>\n>On what basis do you make this statement?\n>\n>                                Q Sean\n\nare you serious? pitchers are pinch-hit for in the nl.  they are not in the\nnl.  if a pitcher is cranking in the al, he will stay in the game.  if he\nis cranking in the nl, he may not - ESPECIALLY if it's a pitchers' duel,\nand his team needs an extra run.\n\nbob vesterman.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3276, "properties": {"category": "comp.sys.mac.hardware", "text": "From: pritchet@cs.scarolina.edu (Ronald W. Pritchett)\nSubject: CD-ROM for a quadra...\nOrganization: USC  Department of Computer Science\nDistribution: comp\nLines: 17\n\nwould there be any problems with hooking up a Toshiba 3401 external CD-ROM\ndrive to a 700?\n\n\nRon\n\n\n\n==============================================================================\n|       'Hey Jack the Ripper,                                                |\n|        won't you come on over and                                          |\n|        hook me up to the power lines of your love.'     - Jethro Tull      |\n|----------------------------------------------------------------------------|\n|  Ron Pritchett                 Internet: pritchet@ash.cs.scarolina.edu     |\n|                                 FidoNet: Ron Pritchett @ 1:376/74.0        |\n==============================================================================\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3277, "properties": {"category": "comp.windows.x", "text": "From: suresh@iss.nus.sg (Suresh Thennarangam - Research Scholar)\nSubject: X Device Driver for Bird\nNntp-Posting-Host: raccoon.iss.nus.sg\nOrganization: Institute Of Systems Science, NUS\nX-Newsreader: Tin 1.1 PL4\nLines: 16\n\nHas anyone written a device driver to use the Ascension bird with XWindows ? \n\n\n      __                  \n     (_   / /  o_   o  o |_\n     __)/(_( __) (_(_ /_)| )_\n\n\n***************************************************************************\n* Suresh Thennarangam               *  EMail: suresh@iss.nus.sg(Internet) *\n* Research Scholar                  *         ISSST@NUSVM.BITNET          *\n* Institute Of Systems Science      *  Tel:  (065) 772 2588.              *\n* National University Of Singapore  *  Facs.: (065) 778 2571              *\n* Heng Mui Keng Terrace             *  Telex: ISSNUS RS 39988             *\n* Singapore 0511.                   *                                     *\n***************************************************************************\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3278, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Constitutionality of 18 U.S.C 922(o)\nOrganization: Stratus Computer, Inc.\nLines: 53\nDistribution: usa\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1993Apr15.142322.1318@atlastele.com>, brians@atlastele.com (Brian Sheets) writes:\n> You know, I was reading 18 U.S.C. 922 and something just did not make \n> sence and I was wondering if someone could help me out.\n> \n> Say U.S.C. 922 :\n> \n> (1) Except as provided in paragraph (2), it shall be unlawful for\n> any person to transfer or possess a machinegun.\n> \n>  Well I got to looking in my law dictionary and I found that a \"person\" \n> might also be an artificial entity that is created by government \n  ^^^^^\n> and has no rights under the federal constitution. So, what I \n> don't understand is how a statute like 922 can be enforced on \n> an individual. So someone tell me how my government can tell\n> me what I can or cannot possess. Just passing a law \n                                   ^^^^^^^^^^^^^^^^^^\n> does not make it LAW. \n  ^^^^^^^^^^^^^^^^^^^^\nSorry, but I really can't figure out what you're trying to say, above.\n\n> Everyone knows that laws are constitional\n> until it goes to court.\n\nNot exactly:\n\n\"An unconstitutional act is not law; it confers no rights; it imposes\n no duties; affords no protection; it creates no office; it is in legal\n contemplation, as inoperative as though it had never been passed.\"\n Norton vs. Shelby County, 118 US 425 p.442\n\n\"The general rule is that an unconstitutional statute, though having the\n form and name of law, is in reality no law, but is wholly void, and\n ineffective for any purpose; since unconstitutionality dates from the\n time of it's enactment, and not merely from the date of the decision so\n branding it.\"\n\n\"No on is bound to obey an uncontitutional law, and no courts are\n bound to enforce it.\"\n 16 Am Jur 2d, Sec 177\n      late 2d, Sec 256\n\n> So, has it ever gone to court, not\n> just your run of the mill \"Ok I had it I am guilty, put me in jail\"\n> Has anyone ever claimed that they had a right to possess and was told\n> by the Supreme Court that they didn't have that right?\n\nAutomatic weapons?  No.  The Supreme Court has never heard such a case.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3279, "properties": {"category": "alt.atheism", "text": "From: nrp@st-andrews.ac.uk (Norman R. Paterson)\nSubject: Re: Had to share this\nOrganization: St. Andrews University, Scotland.\nLines: 66\n\nIn article <1993Apr03.232325.23178@acme.gen.nz> kilroy@acme.gen.nz (earthbound misfit, I) writes:\n>bena@dec07.cs.monash.edu.au (Ben Aveling) writes:\n>\n>> Warning - if you are anything like a devout Christian this post is\n>> really going to offend and/or upset you.\n>\n>[...numerous Ctrl-Ls deleted...hehehe...]\n>\n>> I assume everyone here is familiar with the Christian `fish' symbol.\n>> The one on the back of all those Volvos.\n>> The one that looks (something) like\n>>                __\n>>               /  \\/\n>>               \\__/\\\n>> \n>> Or perhaps more like () ?\n>>                      '`\n>> \n>> Well, I found out this morning where it comes from ...\n>> \n>> It's been stolen from the pagans, like so much else ...\n>> \n>> (Last last chance to be blisfully ignorant ;-]\n>> \f\n>> Hmm, how can I put it.\n>> \n>> Well, it comes from, this ...\n>> \n>> \n>> \n>>                  __\n>>                  \\/\n>>                  ()\n>>              `__-'`-__'\n>> \n>> \n>> \n>> Sigh, I hate drawing with ascii chars.\n>> Still, I think you can work it out from there ...\n>\n>If you haven't, go read \"Skinny Legs and All\" by Tom Robbins. If he's even\n>50% accurate then most of the modern religions have been \"appropriated\".\n>It's also a great book.\n>\n>Followups to alt.atheism, whose readers are probably slightly more authorative\n>on this.\n>\n>\t\t\t\t\t\t- k\n>-- \n>Craig Harding            kilroy@acme.gen.nz             ACME BBS +64 6 3551342\n>\"Jub'er lbh pnyyvat n obmb?\"\n\nCraig-\n\nI thought it was derived from a Greek acronym.  My Greek isn't up to much, but\nit goes something like this:\n\n\tJesus Christ, God => Iesus CHristos, THeos => Ichthos\n\nwhich is the Greek for \"fish\" (as in, eg \"ichthysaurus\").\n\nApologies for my dreadful Greek!  Perhaps someone will correct it.\n\nBy the way, what does your sig mean?\n\n-Norman\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3280, "properties": {"category": "alt.atheism", "text": "From:  (Rashid)\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nNntp-Posting-Host: 47.252.4.179\nOrganization: NH\nLines: 31\n\nIn article <1993Apr14.121134.12187@monu6.cc.monash.edu.au>,\ndarice@yoyo.cc.monash.edu.au (Fred Rice) wrote:\n> \n> >In article <C5C7Cn.5GB@ra.nrl.navy.mil> khan@itd.itd.nrl.navy.mil (Umar Khan) writes:\nStuff deleted\n> >>What we should be demanding, is for Khomeini and his ilk to publicly\n> >>come clean and to show their proof that Islamic Law punishes\n> >>apostacy with death or that it tolerates any similar form of\n> >>coversion of freedom of conscience.\n\nAll five schools of law (to the best of my knowledge) support the\ndeath sentence for apostasy WHEN it is accompanied by open, persistent,\nand aggravated hostility to Islam. Otherwise\nI agree, there is no legal support for punishment of disbelief.\nThe Qur'an makes it clear that belief is a matter of conscience. Public\nor private disavowal of Islam or conversion to another faith is not\npunishable (there are some jurists who have gone against this\ntrend and insisted that apostasy is punishable (even by death) - but\nhistorically they are the exception.\n\nCursing and Insulting the Prophets falls under the category of \"Shatim\".\n\n> \n> I just borrowed a book from the library on Khomeini's fatwa etc.\n>Lots of stuff deleted<\n> \n> And, according to the above analysis, it looks like Khomeini's offering\n> of a reward for Rushdie's death in fact constitutes a criminal act\n> according to Islamic law.\n\nPlease see my post under \"Re: Yet more Rushdie (ISLAMIC LAW)\".\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3281, "properties": {"category": "sci.space", "text": "From: Lawrence Curcio <lc2b+@andrew.cmu.edu>\nSubject: Re: Big amateur rockets\nOrganization: Doctoral student, Public Policy and Management, Carnegie Mellon, Pittsburgh, PA\nLines: 26\nNNTP-Posting-Host: po3.andrew.cmu.edu\nIn-Reply-To: <C5Ky9y.MKK@raistlin.udev.cdc.com>\n\nLet's see. These aren't, in a strict sense, amateur rockets. That term\ndenotes rockets, the engines of which are constructed by the user. The\nrockets you describe are called HPR, or high power rockets, to\ndistinguish them from (smaller) model rockets. They use factory-made\nammonium perchlorate composite propellants in phenolic plastic engines\nwith graphite nozzles. The engines are classified by impulse. A \"D\"\nengine, for example, can have no more than 20 newton-seconds of impulse.\nAn \"F\" engine can have no more than 40 ns. Each letter corresponds to a\ndoubling of the maximum impulse. So far, engines up to size \"O\" are\navailable pretty much off the shelf. Engines of size H and above are\nshipped as Class B explosives, and as such are controlled. Engines of\nsize F and below are shipped as Class C explosives, and are not as\ncontrolled. Class F engines, BTW, are not HPR engines, but model rocket\nengines. (Class G engines go in and out of legal limbo.)\n\nThere is an HPR Society, The Tripoli Rocket Society, I believe, which\nholds events at various sites throughout the year, with all legalities\n(FAA waiver included) taken care of. The National Association of\nRocketry is more concerned with engines below H, though it is involved\nin HPR as well. These societies certify users of HPR rockets, and\ncompanies will not sell to uncertified individuals.\n\nBottom Line: It's legit. I suggest you send for a catalog - but forget\nthe dynamite, will ya?\n\n-Larry C.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3282, "properties": {"category": "rec.sport.baseball", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: Best Second Baseman?\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nDistribution: usa\nLines: 22\n\nIn article <1pqvusINNmjm@crcnis1.unl.edu> horan@cse.unl.edu (Mark Horan) writes:\n>Sandberg is not particulary known for his stolen bases.  What competition did \n>Alomar have?  Sandberg came in a year after Ripken, and the same year as Boggs,\n>Gwynn, and the other magicians.  So less attention was given to Sandberg. \n>Alomar is the only one in his class to be worth a mediocre.  Besides the \n>numbers don't count.  National league pitchers are much better pitchers. \n\nYou're right: Thomas, Gonzalez, Sheffield, and Griffey don't even begin\nto compare with Ripken, Boggs, and Gwynn, so no wonder Alomar gets so\nmuch attention.\n\nSandberg got no attention his rookie year because his rookie year was\nterrible.  So was his sophomore year.\n\nNational League pitchers are \"much better pitchers\"?  That certainly explains\nSheffield's 1993, hm?  Are you confusing \"have ERA's that are 0.40 lower\nbecause they don't face DH's\" with \"much better\"?\n-- \nted frank                 | \"However Teel should have mentioned that though \nthf2@kimbark.uchicago.edu |  his advice is legally sound, if you follow it \nthe u of c law school     |  you will probably wind up in jail.\"\nstandard disclaimers      |                    -- James Donald, in misc.legal\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3283, "properties": {"category": "comp.sys.mac.hardware", "text": "From: KSLOAN@UCSVAX.UCS.UMASS.EDU (DUNCAN M CHESLEY)\nSubject: Don't \"repair\" that sticky mouse button--CALL APPLE!!!\nOrganization: UNIVERSITY OF MASSACHUSETTS - AMHERST\nLines: 52\nDistribution: world\nNNTP-Posting-Host: deimos.ucs.umass.edu\nX-News-Reader: VMS NEWS 1.24\n\n\n------ X-posted to comp.sys.mac.hardware and misc.consumers -------\n\nYou've heard about Apple's great new customer \"support\" program.  Well,\nthink again.  Sometimes the only real support out there is what Apple\ncomputer users can give to each other.  For another example, read on:\n\nIn the March 15th issue of _MacWeek_, Ric Ford described a two-year effort\nby Liam Breck to document and bring to Apple's attention a problem with\ncertain defective mice.  At random, the switches on these mice \"stick\" in\nthe down position until clicked a second time, apparently regardless of the\nmachine they are used with or the system software involved. Most of the\nreported problem mice were manufactured in Malaysia and have an FCC ID of\nBCGA65431. You'll recognize this \"sticky button\" symptom immediately if you\nhave such a mouse: the problem is intermittent, but it's not subtle.\n\nLiam Breck recently gave up trying to document this problem, and instead \nsuggested that people contact Apple's Customer Assistance Center directly\n(_MacWeek_ 4/5/93 p. 64). When I called Apple on March 23rd and described\nmy defective mouse, I was eventually given a case number (F83Y) and told\nApple would replace this mouse even though it is a few months out of\nwarranty.  After waiting for three weeks, I called back today wondering\nwhere my new mouse was. This time, I was told that Apple had decided the\nserial number on my mouse (MB13831FC25) is not within the (undisclosed)\nrange Apple is willing to replace, and there is nothing I can do about it.\n\nNothing, that is, unless enough people complain about this problem to make\nit worth Apple's while to fix or replace the entire lot of defective mice.\nPlease, if you have one of these mice, I NEED YOUR HELP! Don't assume you\nknow what causes the problem (there are _lots_ of theories) and start\nhacking around inside your hundred-dollar mouse. Instead, let Apple do it.\nPlease take five minutes to CALL APPLE RIGHT NOW at:\n\n                  United States      1-800-776-2333\n                  Canada             800-665-2775\n                  UK and Europe      33-1-49-01-49-01\n                  Australia          61-2-452-8000\n                  Japan and Pacific  81-3-5411-8500\n\nIf the number isn't toll-free, call collect.  Describe the problem and ask\nfor a replacement mouse.  Even if they refuse, insist that they register\nthe details of your case, including your mouse's serial number.  Be firm.\n\nNetwork managers and user-group leaders especially, please query your user\nbases. Everyone ask your friends and colleagues.  Please don't send mail to\nme or post yet another \"sticky-button\" report, CALL APPLE DIRECTLY!  If\nenough victims take the trouble to report this well-known problem, Apple\nwill eventually be forced to respond.  If Apple continues to find it easy\nto stone-wall on this issue, don't expect them to offer support when the\nnext, potentially more serious Mac defect is uncovered.\n\n-- Bill Sloan\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3284, "properties": {"category": "rec.sport.hockey", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Re: Miami's name?\nArticle-I.D.: hydra.91678\nOrganization: Georgia Institute of Technology\nLines: 13\n\nIn article <1993Apr6.160042.4953@vax.cns.muskingum.edu> da_tinker1@vax.cns.muskingum.edu writes:\n>When will the new Miami franchise team announce it's name?\n>Just curious.\n\n\tThe South Florida Colons.\n\n\t:)\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3285, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: food-related seizures?\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\nLines: 18\n\nIn article <79727@cup.portal.com> mmm@cup.portal.com (Mark Robert Thorson) writes:\n>I remember hearing a few years back about a new therapy for hyperactivity\n>which involved aggressively eliminating artificial coloring and flavoring\n>from the diet.  The theory -- which was backed up by interesting anecdotal\n>results -- is that certain people are just way more sensitive to these\n>chemicals than other people.  I don't remember any connection being made\n>with seizures, but it certainly couldn't hurt to try an all-natural diet.\n\nYeah, the \"Feingold Diet\" is a load of crap.  Children diagnosed with ADD\nwho are placed on this diet show no improvement in their intellectual and\nsocial skills, which in fact continue to decline.  Of course, the parents\nwho are enthusiastic about this approach lap it up at the expense of their\nchildren's development.  So much for the value of \"interesting anecdotal\nresults\".  People will believe anything if they want to.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3286, "properties": {"category": "talk.politics.mideast", "text": "From: pmm7@ellis.uchicago.edu (peggy boucher murphy (you had to ask?))\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nReply-To: pmm7@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 21\n\nIn article <SMITH.93Apr21183049@minerva.harvard.edu> Steven Smith writes:\n>dgannon@techbook.techbook.com (Dan Gannon) writes:\n>>     THE U.S. HOLOCAUST MEMORIAL MUSEUM: A COSTLY AND DANGEROUS MISTAKE\n>>\n>>                         by Theodore J. O'Keefe\n>>\n>> [Holocaust revisionism]\n>> \n>> Theodore J. O'Keefe is an editor with the Institute for Historical\n>> Review.  Educated at Harvard University . . .\n>\n>According to the 1990 Harvard Alumni Directory, Mr. O'Keefe failed to\n>graduate.  You may decide for yourselves if he was indeed educated\n>anywhere.\n\n(forgive any inaccuracies, i deleted the original post)\nisn't this the same person who wrote the book, and was censured\nin canada a few years back?  \n\npeg\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3287, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ac940@Freenet.carleton.ca (Lau Hon-Wah)\nSubject: Re: Choosing an appropriate Power Supply--PLEASE HELP!\nReply-To: ac940@Freenet.carleton.ca (Lau Hon-Wah)\nOrganization: The National Capital Freenet\nLines: 24\n\n\nIn a previous article, lopes@cogsci.ucsd.edu (alann lopes) says:\n[...]\n>\n>The problem is that I recently had an HD go bad and\n>someone suggested that it may have been because of\n>an inadequate Power Supply -- How does one know\n>what kind of wattage is necessary to run two large\n>Maxtors (1.2 and 660).\n\nI am not an expert. My understanding is the watts output of the power \nsupply must exceed the sum of the hard disk watts requirement.\n\nTypically, a 200W power supply is sufficient to power a PC.\n\nHope this help.\n\nLau Hon-Wah\n-- \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3288, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Integra GSR\nArticle-I.D.: cactus.1993Apr6.035020.16730\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 57\n\nIn article <1993Apr5.234729.100387@ns1.cc.lehigh.edu> daz1@ns1.cc.lehigh.edu (DEMOSTHENIS A. ZEPPOS) writes:\n>In article <3mwF2B1w165w@njcc.wisdom.bubble.org>, jonc@njcc.wisdom.bubble.org (J\n>on Cochran) writes:\n>>> >     I'd like to add the Beretta GTZ as a car which will kick GS-R butt\n>>> >anyday, and it's a lot cheaper to boot\n\nComparing the GTZ and GSR is apples to oranges, somewhat like a Mustang 5.0\nand a CRX, both have very different ways of doing things and ought to\nappeal to different buyers, i.e., I don't think an Acura owner would\nbe seen dead in a Chevy dealership or vice versa.\n\n[stuff deleted]\n\n>are all -weather XGTV4, not to mention that the Integra rides alot better than\n\nNo Integra I have seen comes with all-season tires. \nThe GTZ does come with much bigger 16\" wheels.\n\n>along with the Integra, and the car does that with small 14 inch tires that\n>Your acceleartion times also vary, magazine to magazine\n>Road & Track and Car& Driver have the GS-R at 6.8 to 8.0 for Road and Track.\n\nThe C+D figures are almost certainly bogus and based on a hot prototype\nsupplied by Acura. The MT figures are more plausible.\n\n>Also Quarter mile times vary from 15.4 to 16.1\n16.1 sounds reasonable, probably faster than regular Integras.\n\n>>     So, the Beretta can out handle the Integra and it can certainly keep\n>>up with it in acceleration.  And the Beretta probably has a higher top\n>>speed due to the horsepower advantage (160/117 (hp/torque) for the\n>>Integra vs. 180/160 for the Beretta).\n>***You always believe those exact numbers, why don't you drive a GS-R, and see\n>for your self, while the GS-R has a low 117 torqye, its high gearing over a 8000\n\nThe GSR gearing is horrible for day to day driving. It needs a 6 speed\nbox more than any other modern car. Essentially 5th in a regualr Integra\nequals 4th in the GSR, and the regular Integras are very buzzy at speed.\n\n>rpm make up for the difference (still wouldn't call it a torque moster though!)\n>\n>>Considering you save almost $3,000 dollars for the Beretta, and the Quad4\n>>is a reliable engine, it doesn't make sense to get the Integra as a\n\nThe only person I knew with a GTZ had it bought back by GM as a lemon. It\nwas a piecve of junk, but very quick for FWD.\n\n>Quad 4 reliable, yeah, what's your definition of reliable- if that's reliable,\n>then its safe to say that integra engines in general are near perfect\n\nThe only GSR owner I know had the engine throw a rod with less than 5k\nmiles, a rare screw up by Honda.\nBoth the GTZ and GSR are flawed cars. The performance enthusiasts would take\nthe GTZ and the CR purchase would be the GSR.\n\n\nCraig\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3289, "properties": {"category": "misc.forsale", "text": "From: dietrijj@mentor.cc.purdue.edu (dietrijj)\nSubject: delay/sampler\nOrganization: Purdue University Computing Center\nLines: 8\n\nHey!  I am interested in buying a digital delay pedal, preferably\ncapable of sampling and infinite repeat.  (If you're familiar\nwith Phil Keaggy, I want to mimic, or at least as close as possible,\nwhat he does in concert, i.e., click the pedal, play something, click\nit again, and what he played between clicks repeats infinitely while\nhe playes leads over it)  Anyway, let me know.....\n\n-Jason\t\t\tdietrijj@mentor.cc.purdue.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3290, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 5\nDistribution: na\nNNTP-Posting-Host: access.digex.net\n\n  Agreed.  This is like the Bay of Pigs fiasco (planned by the Eisenhower\nAdministration but given the final green light by Kennedy).\n  To be sure, hen it all went down, Kennedy was at least man enough to take\nfull responsibility, which is not what I expect from Slick Willie Clinton....\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3291, "properties": {"category": "soc.religion.christian", "text": "From: noye@midway.uchicago.edu (vera shanti noyes)\nSubject: Re: harrassed at work, could use some prayers\nReply-To: noye@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 22\n\ni'd just like to repeat and emphasize that because someone else is\ntrying to make you feel horrible and worthless does not mean that you\nshould feel that way, although that's easier to say than believe\nsometimes.  remember, God made you and loves you, so he must think\nyou're something special.  (excuse the trite language here.)  also,\nthe bully may just be someone who is mean for no reason -- not out of\nintentional mental torture.  has anyone else been harassed?  maybe\nthey're just not talking about it.  \n\ni would have emailed but my reactions weren't fast enough and the post\ni'm responding to didn't include your address.  just take courage and\nremember that all of us on the net are rooting for you.\n\ntake care!\nvera\n_______________________________________________________________________________\nHand over hand\t\t\t\tnoye@midway.uchicago.edu\nDoesn't seem so much\t\t\t(Vera Noyes)\nHand over hand\t\t\t\t\nIs the strength of the common touch\tdrop me a line if you're in the mood\n\t- Rush, \"Hand Over Fist\"\n_______________________________________________________________________________\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.150+0000", "event": "documents", "entityId": 3292, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: No Muslim left alive - not a single one: Historical Armenian Barbarism.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 326\n\nIn article <1993Apr10.025031.24352@sol.ctr.columbia.edu> halsall@MURRAY.FORDHAM.EDU (Paul Halsall) writes:\n\n>\tSimple question Serdar?\n\nAnytime.\n\n>\tIf the Armenians killed so many Turks in Eastern Anatolia,\n>how come the area today is full of Turks [and Muslim Kurds] and\n>not full of Armenians?\n\nSuffering from a severe case of myopia? No Muslim left alive - not a \nsingle one. Leading the first Armenian units who crossed the Ottoman \nborder in the company of the Russian invaders was the former Ottoman \nParliamentary representative for Erzurum, Karekin Pastirmaciyan, who \nassumed the revolutionary name Armen Garo. Another former Ottoman \nparliamentarian, Hamparsum Boyaciyan, led the Armenian guerrilla forces \nwho ravaged Turkish villages behind the lines under the nickname \"Murad\", \nespecially ordering that \n\n         'Kill Turks and Kurds wherever you find them and in \n          whatever circumstances you find them. Turkish children \n          also should be killed as they form a danger to the \n          Armenian nation.' (Hamparsum Boyadjian - 1914)[1]\n\n [1] M. Varandian, \"History of the Dashnaktsutiun,\" p. 85.\n\nAnother former Member of Parliament, Papazyan, led the Armenian \nguerrilla forces that ravaged the areas of Van, Bitlis and Mush.\n\nIn March 1915, the Russian forces began to move toward Van. Immediately,\nin April 11, 1915 the Armenians of Van began a revolt, massacring all \nthe Turks in the vicinity so as to make possible its quick and easy \nconquest by Russians. Little wonder that Czar Nicholas II sent a \ntelegram of thanks to the Armenian Revolutionary Committee of Van in \nApril 21, 1915, \"thanking it for its services to Russia.\" The Armenian \nnewspaper Gochnak, published in the United States, also proudly \nreported in May 24, 1915 that \n\n\"only 1,500 Turks remained in Van the rest having been slaughtered.\"\n\nSource: Hovannisian, Richard G.: Armenia on the Road to Independence, 1918.\nUniversity of California Press (Berkeley and Los Angeles), 1967, p. 13.\n\n\"The addition of the Kars and Batum oblasts to the Empire increased the\n area of Transcaucasia to over 130,000 square miles. The estimated population\n of the entire region in 1886 was 4,700,000, of whom 940,000 (20 percent) were\n Armenian, 1,200,000 (25 percent) Georgian, and 2,220,000 (45 percent) Moslem.\n Of the latter group, 1,140,000 were Tatars. Paradoxically, barely one-third\n of Transcaucasia's Armenians lived in the Erevan guberniia, where the \n Christians constituted a majority in only three of the seven uezds. Erevan\n uezd, the administrative center of the province, had only 44,000 Armenians\n as compared to 68,000 Moslems. By the time of the Russian Census of 1897,\n however, the Armenians had established a scant majority, 53 percent, in the\n guberniia; it had risen by 1916 to 60 percent, or 670,000 of the 1,120,000\n inhabitants. This impressive change in the province's ethnic character \n notwithstanding, there was, on the eve of the creation of the Armenian \n Republic, a solid block of 370,000 Tartars who continued to dominate the \n southern districts, from the outskirts of Ereven to the border of Persia.\" \n (See also Map 1. Historic Armenia and Map 4. Administrative subdivisions of \n Transcaucasia).\n\nIn 1920, '0' percent Turk. \n\n\"We closed the roads and mountain passes that might serve as \n ways of escape for the Tartars and then proceeded in the work \n of extermination. Our troops surrounded village after village. \n Little resistance was offered. Our artillery knocked the huts \n into heaps of stone and dust and when the villages became untenable \n and inhabitants fled from them into fields, bullets and bayonets \n completed the work. Some of the Tartars escaped of course. They \n found refuge in the mountains or succeeded in crossing the border \n into Turkey. The rest were killed. And so it is that the whole \n length of the borderland of Russian Armenia from Nakhitchevan to \n Akhalkalaki from the hot plains of Ararat to the cold mountain \n plateau of the North were dotted with mute mournful ruins of \n Tartar villages. They are quiet now, those villages, except for \n howling of wolves and jackals that visit them to paw over the \n scattered bones of the dead.\" \n\n                             Ohanus Appressian\n                            \"Men Are Like That\"\n                                   p. 202.\n\nSource: Stanford J. Shaw, on Armenian collaboration with invading Russian\narmies in 1914, \"History of the Ottoman Empire and Modern Turkey (Volume\nII: Reform, Revolution & Republic: The Rise of Modern Turkey, 1808-1975).\"\n(London, Cambridge University Press 1977). pp. 315-316.\n\n\"In April 1915 Dashnaks from Russian Armenia organized a revolt in the city \n of Van, whose 33,789 Armenians comprised 42.3 percent of the population, \n closest to an Armenian majority of any city in the Empire...Leaving Erivan \n on April 28, 1915, Armenian volunteers reached Van on May 14 and organized \n and carried out a general slaughter of the local Muslim population during \n the next two days while the small Ottoman garrison had to retreat to the\n southern side of the lake.\"\n\n\"Knowing their numbers would never justify their territorial ambitions,\n Armenians looked to Russia and Europe for the fulfillment of their aims.\n Armenian treachery in this regard culminated at the beginning of the First\n World War with the decision of the revolutionary organizations to refuse\n to serve their state, the Ottoman Empire, and to assist instead other\n invading Russian armies. Their hope was their participation in the Russian\n success would be rewarded with an independent Armenian state carved out of\n Ottoman territories. Armenian political leaders, army officers, and common\n soldiers began deserting in droves.\"\n\n\"With the Russian invasion of eastern Anatolia in 1914 at the beginning of\n World War I, the degree of Armenian collaboration with the Ottoman's enemy\n increased drastically. Ottoman supply lines were cut by guerilla attacks,\n Armenian revolutionaries armed Armenian civil populations, who in turn\n massacred the Muslim population of the province of Van in anticipation of\n expected arrival of the invading Russian armies.\"\n\n\nSource: Stanford J. Shaw, \"History of the Ottoman Empire and Modern Turkey,\"\n        Vol II. Cambridge University Press, London, 1979, pp. 314-317.\n\n\"...Meanwhile, Czar Nicholas II himself came to the Caucasus to make final\n plans for cooperation with the Armenians against the Ottomans, with the \n president of the Armenian National Bureau in Tiflis declaring in response:\n\n 'From all countries Armenians are hurrying to enter the ranks of the \n  glorious Russian Army, with their blood to serve the victory of Russian\n  arms...Let the Russian flag wave freely over the Dardanelles and the\n  Bosporus. Let, with Your will, great Majesty, the peoples remaining\n  under the Turkish yoke receive freedom. Let the Armenian people of Turkey\n  who have suffered for the faith of Christ receive resurrection for a new\n  free life under the protection of Russia.'[155]\n\nArmenians again flooded into the czarist armies. Preparations were made\nto strike the Ottomans from the rear, and the czar returned to St. Petersburg\nconfident that the day finally had come for him to reach Istanbul.\"\n\n[155] Horizon, Tiflis, November 30, 1914, quoted by Hovannisian, \"Road to\nIndependence,\" p. 45; FO 2485, 2484/46942, 22083.\n\n\"Ottoman morale and military position in the east were seriously hurt, and\n the way was prepared for a new Russian push into eastern Anatolia, to be\n accompanied by an open Armenian revolt against the sultan.[156]\"\n\n[156] Hovannisian, \"Road to Independence,\" pp. 45-47; Bayur, III/1, \npp. 349-380; W.E.D. Allen and P. Muratoff, \"Caucasian Battlefields,\"\nCambridge, 1953, pp. 251-277; Ali Ihsan Sabis, \"Harb Hahralaram,\" 2 vols.,\nAnkara, 1951, II, 41-160; FO 2146 no. 70404; FO 2485; FO 2484, nos.\n46942 and 22083.\n\n\"An Armenian state was organized at Van under Russian protection, and it \n appeared that with the Muslim natives dead or driven away, it might be\n able to maintain itself at one of the oldest centers of ancient Armenian\n civilization. An Armenian legion was organized 'to expel the Turks from\n the entire southern shore of the lake in preparation for a concerted\n Russian drive into the Bitlis vilayet.'[162] Thousands of Armenians from\n Mus and other major centers in the east began to flood into the new \n Armenian state...By mid-July there were as many as 250,000 Armenians\n crowded into the Van area, which before the crisis had housed and fed\n no more than 50,000 people, Muslim and non-Muslim alike.[163]\"\n\n[162] Hovannisian, \"Road to Independence,\" p. 56; FOP 2488, nos. 127223 and\n58350.\n\n[163] BVA, Meclis-i Vukela Mazbatalari, debates of August 15-17, 1915; \nBabi-i Ali Evrak Odasi, no. 175, 321, \"Van Ihtilali ve Katl-i Ami,\"\nZilkade 1333/10 September 1915.\n\nNow wait, there is more.\n\nFrom \"The Diplomacy of Imperialism,\" William L. Langer, New York (Alfred A.\nKnopf), 1960, pp. 157-160.\n\n   \"Armenians watch their opportunity to kill Turks and Kurds, set fire \n    to their villages, and then make their escape into the mountains.\"\n\n>\tAlso, since the Ottomans were such great tolerators, how come\n>the Armenians were counted as part of the RUM millet, i.e. forced\n>under the control of the GREEK Orthodox patriarchate?\n\nAre you people for real? The main legal principles of the Turkish State \nare summarized in Article 2 of the Constitution:\n\n\t\"The Republic of Turkey is a democratic, secular and social State\n\tgoverned by the rule of law; bearing in mind the concepts of public\n\tpeace, national solidarity and justice; respecting human rights;\n\tloyal to the nationalism of Ataturk, and based on the fundamental\n\ttenets set forth in the Preamble of the Constitution.\"\n\nFreedom of culture and religion prevailed during the Ottoman Empire, allowing\nthe many nations and races within its boundaries to remain autonomous. The\nfact that the Ottoman Empire was the longest lived in recent history may be\nattributed to these freedoms, despite the lack of any written Constitution.\nThe first attempts to create a written Constitution occurred in 1839 and 1856.\nAlthough the documents adopted during these two attempts remained in force\nonly temporarily, they provided the basic elements of a Constitution.\n\nThe 1876 Constitution was the first legal document to force a Parliament and\nthe right of election to share the sovereignty of the Emperor. The Constitution\nof 1906 placed some additional limitations on the Emperor, while increasing\nthe power of the Parliament and the government.\n\nThe First World War (1914-1918) brought the Ottoman Empire to an end. By the\noccupation of Istanbul, the Parliament was dissolved and the Constitution was\nabolished. The members of Parliament were sent to exile to an island by the\noccupying forces.\n\nDuring the Independence War, the \"Turkish Grand National Assembly\" held their\nfirst meeting on April 23, 1920 to serve as the legislative body of the new\nTurkish state. This assembly prepared the new legal structure of the Turkish\nRepublic. The new Republic was proclaimed on October 29, 1923 and the new\nConstitution was adopted in 1924. That Constitution served as the legal \nbackbone of today's modern Turkish Republic. In 1945, Turkey adopted a \nmulti-party political system. The Constitution of 1924 was replaced by\nothers in 1961 and 1982. All three Constitutions of the Republic have been\nbased on the principles of parliamentary democracy, human rights, national\nsovereignty, division of powers, private ownership and secularization.\n\n\"Major Principles of the Constitution\"\n\nThe constitution (with 177 Articles) establishes the structure of the Republic\nwithin the following principles:\n\n- The Turkish Republic is a democratic, secular and social state governed by \n  law;\n- It should be governed to maintain public peace, national solidarity, justice,\n  human rights and the objectives of Ataturk;\n- The language of the State is Turkish;\n- Sovereignty is vested in the nation without any conditions or restrictions.\n  Sovereignty is exercised by organizations authorized by the nation;\n- Legislative power is carried by the Parliament elected by the nation. This\n  power cannot be delegated (transferred) to any one else;\n- Executive power is exercised by the President, and Council of Ministers;\n- Judicial power is exercised by the independent courts on behalf of the\n  Turkish nation;\n- All individuals are equal, irrespective of language, race, religion, color,\n  sex, or political beliefs;\n- Laws cannot be contradict those principles stated in the Constitution.\n\n\"Structure of the State\"\n\nIn accordance with the Constitution, the structure of the state is based on the\nprinciple of \"division of power\" to create a balanced and self-controlled\nsystem. The power is divided into \"legislative power,\" \"executive power,\" and\n\"judicial power,\" balanced to secure freedoms and powers to control each\nother (self-control).\n\n A. Legislative Power:\n\n The \"Turkish Grand National Assembly\" is a parliament with one House, elected\n by the nation for a term of five years to exercise legislative power on\n behalf of the nation. The basic functions of this Assembly are:\n\n - to adopt, to amend, or to repeal laws;\n - to approve or to dismiss the Council of Ministers;\n - to supervise and to question Ministers or the Council of Ministers;\n - to debate, to amend and to approve annual budgets;\n - to ratify international agreements;\n - to grant amnesty or pardons.\n\n Members of Parliament do not have any liability for their words (either oral\n or written) during the course of their legislative duties. The country is\n divided into constituencies. The number of representatives of each is\n calculated according to its population. Every Turkish citizen over the age\n of twenty-one can vote.\n\n Elections are supervised by the \"Supreme Council of Elections,\" which solves\n all disputes or appeals. In each province, the local \"Board of Election\"\n runs and controls the election under the supervision and guidelines of the\n Supreme Council. Members of the Council and Boards are elected among \n independent judges.\n\n B. Executive Power:\n\n The President of the Republic is the Head of State (not the head of government\n as in the Unites States). The main functions of the President are:\n\n - to represent the State and the Country;\n - to insure the implementation of the Constitution;\n - to coordinate legislative, judicial and executive functions;\n - act as the Supreme Commander of the Armed Forces;\n - to ratify laws and government decrees.\n \n The President is elected by the Grand National Assembly for a period of seven\n years. The President may ratify or return the laws for a second debate, may \n call for a referendum.\n\n Executive power is exercised by the \"Council of Ministers,\" headed by the\n Prime Minister. The Prime Minister is appointed by the President from the\n members of Parliament. The Prime Minister names the Ministers for approval\n by the President. The new Government (Council of Ministers) reads their\n program at the Parliament and the vote of confidence follows. There are 21 (?)\n Ministers in the Council.\n\n Ministers and other members of the administration can be sued in independent\n \"administrative\" courts for their misuse of power, administrative errors or\n functions against any law.\n\n C. Judicial Power:\n\n Judicial power is exercised by independent courts. No authority or power can\n instruct the judges or public prosecutors of the courts. These cannot be \n discharged, replaced or retired by executive authorities except for the\n reasons clearly stated by the appropriate laws. There are three categories\n of courts in the Turkish judiciary system:\n\n - Courts of justice deal with legal, commercial and criminal cases. The \n   decisions of these courts may be reviewed by the supreme court of justice\n   upon the appeal of the parties involved.\n - The decisions or functions of the executive power (including the Prime\n   Minister and Ministers or any governmental department) can be appealed in\n   administrative courts if these functions or decisions are against the law.\n   The decisions of these administrative courts may also be reviewed by the\n   high administrative court.\n\n The laws and decisions of the Grand National Assembly can be examined by the\n \"Constitutional Court\" if they contradict the Constitution. If found\n contradictory, this court may cancel the decisions or laws of the Parliament.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3293, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: Migraines and scans\nOrganization: University of Wisconsin Eau Claire\nLines: 16\n\n[reply to geb@cs.pitt.edu (Gordon Banks)]\n \n>>If you can get away without ever ordering imaging for a patient with\n>>an obviously benign headache syndrome, I'd like to hear what your magic\n>>is.\n \n>I certainly can't always avoid it (unless I want to be rude, I suppose).\n \nI made a decision a while back that I will not be bullied into getting\nstudies like a CT or MRI when I don't think they are indicated.  If the\npatient won't accept my explanation of why I think the study would be a\nwaste of time and money, I suggest a second opinion.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3294, "properties": {"category": "soc.religion.christian", "text": "From: mchamberland@violet.uwaterloo.ca (Marc Chamberland)\nSubject: Re: God-shaped hole (was Re: \"Accepting Jeesus in your heart...\")\nOrganization: University of Waterloo\nLines: 17\n\nIn article <Apr.20.03.03.15.1993.3845@geneva.rutgers.edu>, fraseraj@dcs.glasgow.ac.uk (Andrew J Fraser) writes:\n> [Several people were involved in trying to figure out who first used\n> the phrase \"God-shaped hole\".  --clh]\n> \n> \"There is a God shaped vacuum in all of us\" (or something to that effect) is\n> generally attributed to Blaise Pascal.\n\nI believe this is a just another of way of expressing the basic truth\n\"All things were created by him and FOR him.\" (emphasis mine) \nCol. 1:16 , Rev. 4:11. If you and I have been created for God, naturally\nthere will be a vacuum if God is not our all and all. In fact,\nthe first chapter of Collosians brings out this status of Christ, that\nHe should have the preeminence. When you life is alligned with Him,\nand you do His will, then the vacuum is filled.\n\nMarc Chamberland\nmchamberland@violet.uwaterloo.ca\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3295, "properties": {"category": "comp.windows.x", "text": "From: ndd@sunbar.mc.duke.edu (Ned Danieley)\nSubject: compiling clients on a Sun IPX\nOrganization: Basic Arrhythmia Laboratory, Duke Univ. Med. Center, Durham, N.C.\nLines: 19\nNntp-Posting-Host: bal1.mc.duke.edu\nOriginator: ndd@bal1\n\nI'm trying to set up an IPX for another group. I copied all the\nX stuff that I compiled on my 4/280 (which runs SunOS 4.1.1) using\ngcc 2.1, and most things run just fine. however, I did find a\ncouple of bugs, and when I try to recompile those clients on the IPX\n(which runs 4.1.3), I get\n\nld: Undefined symbol\n   _XShapeQueryExtension\n   _XShapeCombineMask\n\nI know that I can include libXext and get rid of those messages,\nbut I can't figure out why I get them on the IPX and not on the\n4/280. any ideas?\n\n-- \nNed Danieley (ndd@sunbar.mc.duke.edu)\nBasic Arrhythmia Laboratory\nBox 3140, Duke University Medical Center\nDurham, NC  27710   (919) 660-5111 or 660-5100\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3296, "properties": {"category": "sci.space", "text": "From: zowie@daedalus.stanford.edu (Craig \"Powderkeg\" DeForest)\nSubject: Re: Cold Gas tanks for Sounding Rockets\nOrganization: Stanford Center for Space Science and Astrophysics\nLines: 29\nNNTP-Posting-Host: daedalus.stanford.edu\nIn-reply-to: rdl1@ukc.ac.uk's message of 16 Apr 93 14:28:07 GMT\n\nIn article <3918@eagle.ukc.ac.uk> rdl1@ukc.ac.uk (R.D.Lorenz) writes:\n   >Does anyone know how to size cold gas roll control thruster tanks\n   >for sounding rockets?\n\n   Well, first you work out how much cold gas you need, then make the\n   tanks big enough.\n\nOur sounding rocket payload, with telemetry, guidance, etc. etc. and a\ntelescope cluster, weighs around 1100 pounds.  It uses freon jets for\nsteering and a pulse-width-modulated controller for alignment (ie\nduring our eight minutes in space, the jets are pretty much\ncontinuously firing on a ~10% duty cycle or so...).  The jets also\nneed to kill residual angular momentum from the spin stabilization, and\nflip the payload around to look at the Sun.\n\nWe have two freon tanks, each holding ~5 liters of freon (I'm speaking\nonly from memory of the last flight).  The ground crew at WSMR choose how\nmuch freon to use based on some black-magic algorithm.  They have\nextra tank modules that just bolt into the payload stack.\n\nThis should give you an idea of the order of magnitude for cold gas \nquantity.  If you really need to know, send me email and I'll try to get you\nin touch with our ground crew people.\n\nCheers,\nCraig\n\n--\nDON'T DRINK SOAP! DILUTE DILUTE! OK!\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3297, "properties": {"category": "soc.religion.christian", "text": "From: HOLFELTZ@LSTC2VM.stortek.com\nSubject: Re: What did Lazarus smell like?\nOrganization: StorageTek SW Engineering\nLines: 20\n\nIn article <Apr.10.05.31.34.1993.14365@athos.rutgers.edu>\nrolfe@dsuvax.dsu.edu (Tim Rolfe) writes:\n \n>\n>My guess is that the \"Lazarus, come out!\" was also for the sake of the\n>crowd.\n \nI read somewhere, I think in Morton Smith's _Jesus the Magician_, that\nold Lazarus wasn't dead, but going in the tomb was part of an initiation\nrite for a magi-cult, of which Jesus was also a part.   It appears that\na 3-day stay was normal.   I wonder .... ?\n\n[I haven't read that book, but another one by Smith in which similar\nclaims were made about Jesus.  While I'm sure Smith knows more about\nearly Chrisitanity than I do, I found his arguments similar to those\nof books like \"Holy Blood, Holy Grail\" -- building conjectures on top\nof other conjectures.  There was no direct evidence.  If you'd like\nto summarize the argument for us, I'd be happy to see it.  But in\ndoing so, I'd like you to pay careful attention to the nature of\nthe evidence.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3298, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Command Loss Timer (Re: Galileo Update - 04/22/93)\nOrganization: U of Toronto Zoology\nLines: 17\n\nIn article <1993Apr23.103038.27467@bnr.ca> agc@bmdhh286.bnr.ca (Alan Carter) writes:\n>|> ... a NO-OP command was sent to reset the command loss timer ...\n>\n>This activity is regularly reported in Ron's interesting posts. Could\n>someone explain what the Command Loss Timer is?\n\nIf I'm not mistaken, this is the usual sort of precaution against loss of\ncommunications.  That timer is counting down continuously; if it ever hits\nzero, that means Galileo hasn't heard from Earth in a suspiciously long\ntime and it may be Galileo's fault... so it's time to go into a fallback\nmode that minimizes chances of spacecraft damage and maximizes chances\nof restoring contact.  I don't know exactly what-all Galileo does in such\na situation, but a common example is to switch receivers, on the theory\nthat maybe the one you're listening with has died.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3299, "properties": {"category": "sci.space", "text": "From: cook@varmit.mdc.com (Layne Cook)\nSubject: Lindbergh and the moon (was:Why not give $1G)\nOrganization: University of New Mexico, Albuquerque, NM\nLines: 19\nDistribution: world\nReply-To: cook@varmit.mdc.com (Layne Cook)\nNNTP-Posting-Host: cook.mdc.com\n\nAll of this talk about a COMMERCIAL space race (i.e. $1G to the first 1-year \nmoon base) is intriguing. Similar prizes have influenced aerospace \ndevelopment before. The $25k Orteig prize helped Lindbergh sell his Spirit of \nSaint Louis venture to his financial backers.\n\nIf memory serves, the $25k prize would not have been enough to totally \nreimburse some of the more expensive transatlantic projects (such as \nFokker's, Nungesser and other multi-engine projects). However Lindbergh \nultimately kept his total costs below that amount.\n\nBut I strongly suspect that his Saint Louis backers had the foresight to \nrealize that much more was at stake than $25,000.\n\nCould it work with the moon? Who are the far-sighted financial backers of \ntoday?\n\nLayne Cook\ncook@apt.mdc.com                                             \nMcDonnell Douglas Space Systems Co.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3300, "properties": {"category": "sci.med", "text": "From: turpin@cs.utexas.edu (Russell Turpin)\nSubject: Re: Placebo effects\nOrganization: CS Dept, University of Texas at Austin\nLines: 39\nNNTP-Posting-Host: im4u.cs.utexas.edu\nSummary: Yes, researcher bias is a great problem.\n\n-*-----\nIn article <735157066.AA00449@calcom.socal.com> Daniel.Prince@f129.n102.z1.calcom.socal.com (Daniel Prince) writes:\n> Is there an effect where the doctor believes so strongly in a \n> medicine that he/she sees improvement where the is none or sees \n> more improvement than there is?  If so, what is this effect \n> called?  Is there a reverse of the above effect where the doctor \n> doesn't believe in a medicine and then sees less improvement than \n> there is?  What would this effect be called?  Have these effects \n> ever been studied?  How common are these effects?  Thank you in \n> advance for all replies. \n\nThese effects are a very real concern in conducting studies of new\ntreatments.  Researchers try to limit this kind of effect by \nperforming studies that are \"blind\" in various ways.  Some of these\nare:\n\n  o  The subjects of the study do not know whether they receive a \n     placebo or the test treatment, i.e., whether they are in the\n     control group or the test group.\n\n  o  Those administering the treatment do not know which subjects \n     receive a placebo or the test treatment.\n\n  o  Those evaluating individual results do not know which subjects\n     receive a placebo or the test treatment.\n\nObviously, at the point at which the data is analyzed, one has to \ndifferentiate the test group from the control group.  But the analysis\nis quasi-public: the researcher describes it and presents the data on\nwhich it is based so that others can verify it.  \n\nIt is worth noting that in biological studies where the subjects are\nanimals, such as mice, there were many cases of skewed results because\nthose who performed the study did not \"blind\" themselves.  It is not\nconsidered so important to make mice more ignorant than they already\nare, though it is important that in all respects except the one tested,\nthe control and test groups are treated alike.\n\nRussell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3301, "properties": {"category": "alt.atheism", "text": "From: JDB1145@tamvm1.tamu.edu\nSubject: Re: A Little Too Satanic\nOrganization: Texas A&M University\nLines: 21\nNNTP-Posting-Host: tamvm1.tamu.edu\n\nIn article <65934@mimsy.umd.edu>\nmangoe@cs.umd.edu (Charley Wingate) writes:\n \n>\n>Nanci Ann Miller writes:\n>\n]The \"corrupted over and over\" theory is pretty weak.  Comparison of the\n]current hebrew text with old versions and translations shows that the text\n]has in fact changed very little over a space of some two millennia.  This\n]shouldn't be all that suprising; people who believe in a text in this manner\n]are likely to makes some pains to make good copies.\n \nTell it to King James, mate.\n \n]C. Wingate        + \"The peace of God, it is no peace,\n]                  +    but strife closed in the sod.\n]mangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\n]tove!mangoe       +    the marv'lous peace of God.\"\n \n \nJohn Burke, jdb1145@summa.tamu.edu\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3302, "properties": {"category": "rec.motorcycles", "text": "From: car377@cbnewsj.cb.att.com (charles.a.rogers)\nSubject: Re: Chain Lube (was: Re: RM consensus on chain cleaning.)\nSummary: Application details\nArticle-I.D.: cbnewsj.1993Apr5.223054.27874\nOrganization: AT&T\nLines: 17\n\nIn article <1993Apr3.044405.16947@elektro.cmhnet.org>, charlie@elektro.cmhnet.org (Charlie Smith) writes:\n> In article <1993Mar24.011823.7887@linus.mitre.org> cookson@mbunix.mitre.org (Cookson) writes:\n> >Anyone try the spray on chain wax that was reviewed in one of the moto\n> >rags last month?\n> \n> \n> Yeah.    I sprayed it all over my rear drive shaft housing, and it didn't\n> seem to make it any quieter at all <!!>\n\nDidn't you read the instructions first??\nYou're supposed to spray it in your ears so you won't be\ndistracted by the chain-noise of the *other* bikes around you.\nThat's why it's called \"Chain *Wax*\".\n\nChuck Rogers\ncar377@torreys.att.com\ncar377@cbnewsj.att.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3303, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: If You Were Pat Burns ...\nKeywords: Leaf Wings\nOrganization: University of Toronto Chemistry Department\nLines: 20\n\nIn article <1r1chb$5l2@jethro.Corp.Sun.COM> jake@rambler.Eng.Sun.COM writes:\n>\n>\n>What are the Leafs to do?  I am a Leaf supporter and\n>I say the Leafs are going down in four unless there\n>is nothing short of a miracle or a stroke of genenius hits\n>Pat Burns.\n>\n>If you were Pat Burns what would you do?\n>\n\nPray for the Wings to become lazy and overconfident...the Wings\ncan only lose the series...Toronto cannot win it.  Take away\nDoug Gilmour and the Leafs are an old Tampa Bay.\n\nThe Leafs deserve a lot of credit for their diligent effort\nduring the regular season...but if Detroit puts in a reasonable\neffort, this is not a contest.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3304, "properties": {"category": "rec.sport.baseball", "text": "From: klopfens@andy.bgsu.edu (Bruce Klopfenstein)\nSubject: Ind. Source Picks Baerga Over Alomar: Case Closed \nOrganization: Bowling Green State University B.G., Oh.\nDistribution: na\nLines: 13\n\nfester@island.COM (Mike Fester) writes:\n> \n> I'd say you could make a good for them being about equal right now. T&P\n> rated Baerga higher, actually.\n> \n> Mike\n> -- \nFinally, an objective source.  Alomar's a great player, but so is Baerga.\nNice to see the objective source cited rather than \"my dad's bigger than\nyour dad\" posts.\n\nBK\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3305, "properties": {"category": "sci.med", "text": "From: lindae@netcom.com\nSubject: Re: MORBUS MENIERE - is there a real remedy?\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 87\n\nIn article <19392@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>In article <lindaeC4JGLK.FxM@netcom.com> lindae@netcom.com writes:\n>\n>>\n>>My biggest resentment is the doctor who makes it seem like most\n>>people with dizziness can be cured.  That's definitely not the\n>>case.  In most cases, like I said above, it is a long, tedious\n>>process that may or may not end up in a partial cure.  \n>>\n>\n>Be sure to say \"chronic\" dizziness, not just dizziness.  Most\n>patients with acute or subacute dizziness will get better.\n>The vertiginous spells of Meniere's will also eventually go\n>away, however, the patient is left with a deaf ear.\n\nAll true.  And all good points.\n\n>\n>>To anyone suffering with vertigo, dizziness, or any variation\n>>thereof, my best advice to you (as a fellow-sufferer) is this...\n>>just keep searching...don't let the doctors tell you there's\n>>nothing that can be done...do your own research...and let your\n>\n>This may have helped you, but I'm not sure it is good general\n>advice.  The odds that you are going to find some miracle with\n>your own research that is secret or hidden from general knowledge\n>for this or any other disease are slim.  When good answers to these\n\n>then, spending a great deal of time and energy on the medical\n>problem may divert that energy from more productive things\n>in life.  A limited amount should be spent to assure yourself\n>that your doctor gave you the correct story, but after it becomes\n>clear that you are dealing with a problem for which medicine\n>has no good solution, perhaps the best strategy is to join\n>the support group and keep abreast of new findings but not to\n>make a career out of it.\n\nWell, making a career out of it is a bit strong.  I still believe\nthat doing your own research is very, very necessary.  I would\nnot have progressed as much as I have today, unless I had spent\nthe many hours in Stanford's Med Library as I have done.\nAnd 5 years ago, it was clear that there was no medicine that \nwould help me.  So should I have stopped searching.  Thank\ngoodness I didn't.  Now I found that there is indeed medicine\nthat helps me.  \n\nI think that what you've said is kind of idealistic.  That you\nwould go to one doctor, get a diagnosis, maybe get a second\nopinion, and then move on with your life.\nJust as an example... having seen 6 of the top specialists in \nthis field in the country, I have received 6 different diagnoses.\nThese are the top names, the ones that people come to from all over\nthe country.  I have HAD to sort all of this out myself.  Going\nto a support group (and in fact, HEADING that support group) was \nhelpful for a while, but after a point, I found it very\nunproductive.  It was much more productive to do library research,\nmake phone calls and put together the pieces of the puzzle myself.\n\nA recent movie, Lorenzo's Oil, offers a perfect example of what\nI'm talking about.  If you haven't seen it, you should.  It's not\na put down of doctor's and neither is what I'm saying.  Doctors are\nonly human and can only do so much.  But there are those of us\nout here who are intelligent and able to sometimes find a missing\npiece of the puzzle that might have otherwise gone unnoticed.\n\nI guess I'm biased because dizziness is one of those weird things\nthat is still so unknown.  If I had a broken arm, or a weak heart,\nor failing kidneys, I might not have the same opinion.  That's because \nthose things are much more tangible and have much more concise \ndefinitions and treatments.  With dizziness, you just have to\ndecide to live with it or decide to live with it while trying to\nfind your way out of it.\n\n\nI have chosen the latter.\n\n\nLinda\nlindae@netcom.netcom.com\n\n\n>\n>-- \n>----------------------------------------------------------------------------\n>Gordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\n>geb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n>----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3306, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hamish@cloud.apana.org.au (Hamish Moffatt)\nSubject: Re: Mouse on Com3\b\b\bOM3 or COM4 in Windows\nOrganization: Cloud Nine BBS, Melbourne, Australia.\nLines: 53\n\njpaparel@cs.ulowell.edu (Joseph Paparella) writes:\n\n> I am having a problem configuring the mouse in windows to use COM3\n> with IRQ5.\n\nI don't believe IRQ5 is the problem. I tried a mouse on COM3, IRQ4 (the\nusual place) and it still did not like it. Simply, Windows seems to only\nsupport mice on COM1 or COM2. The funny part is, though, that\nMicrosoft's own mouse driver (8.xx) was quite happy with my mouse\nsitting on COM3. Why can't Windows use the mouse driver, or at least\nsupport COM3? :-)\n\n> COM2Irq=3\n> COM3Irq=5\n> COM4Irq=7\n> MaxComPort=4\n\nI've tried this too. Actually, I wanted to be able to use my second\nmodem (COM3/IRQ5) from Windows. It still will not talk to that modem. I\ncreated two profiles, AMSTRAD (for my Amstrad modem on COM1/IRQ4) and\nMAESTRO (for my Maestro on COM3/IRQ5). It will not talk to the Maestro\nat all.\n\n> (1,5106830617) that their driver does not support COM3 and COM4 in windows.\n> Their suggestion was that the 'MicroSoft or PS/2' setting in windows\n> setup would work. It does not.\n\nNor here. (Windows 3.0).\n\n> I can not believe that it is not possible. At worst, you would need a special\n> version of 'a' mouse driver that looked at COM3 and COM4 instead of COM1\n> and COM2. I know that IRQ5 and IRQ7 are normally printer port IRQs, but I\n\nI've seen nothing like that. I've experimented with Logitech's mouse\ndriver too, with no sucess.\n\n> have no printers attached. A side note is that I would really like to assign\n> COM4 to some higher IRQ, because my SoundBlaster board uses IRQ7 (right now,\n> I'm not using COM4), but no modem that I know of allows settings other than\n> IRQs 2,3,4,5, and 7.\n\nIf you have a SoundBlaster Pro, it should support IRQ10 as well.\nFinally, a board that supports IRQs >9. The only one I have (except my\nIDE controller).\n\nhamish\n\n\nHamish Moffatt,      hamish@cloud.apana.org.au  APANA: The Australian Public\nCloud Nine BBS,      3:635/552@fidonet          Access Network Association.\nMelbourne Australia  58:4100/43@intlnet         Mail info@apana.org.au\nTitanic Software.    Voice: +61-3-803-1326      for information.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3307, "properties": {"category": "rec.autos", "text": "From: aas7@po.CWRU.Edu (Andrew A. Spencer)\nSubject: Re: It's a rush... (was Re: Too fast)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 38\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, crh@regent.e-technik.tu-muenchen.dbp.de (Christian Huebner) says:\n\n>brad@buck.viewlogic.com (Bradford Kellogg) writes:\n>\n>>I think he's talking about a different form of rush. Evidently, it's fun to be\n>>terrified. But hey, if you want that kind of rush, try bobsledding. You may\n>>only get up to 80 or so, but it makes 130 in a car feel like a stroll in the\n>>park.\n>\n>Why should a good driver be terrified at 130mph? The only thing I fear\n>going at 130 are drivers, who switch to the left lane without using\n>either rear-view-mirror or flashers. Doing 130 to 150 ain't a rush\n>for me, but it's fun and I get where I want to go much faster.\n>\n>But in one point You are quite right. If You are terrified at 130 You\n>should better not drive that fast, or You'll be a hazard to others.\n>\n>BTW, before You flame me, read my E-Mail address. I know what I'm \n>talking about, as I live in Germany.\n>\n>>- BK\n>\n>Chris    crh@regent.e-technik.tu-muenchen.de\n\nnot a flame, just a point:  I'd be scared at 130 here, not because i feel\n_I_  or my car couldn't handle it, but because of exactly what you said:\ndrivers who are STUPID.  Like the ones who are doing 130 also, and so\nthey pull in right behind you at maybe 1-2 car lengths....oh yeah, real\nsmart...  This scares me in cities at 50.  When i can't see enough of\nthe car to make it recognizable, they are following TOO CLOSE.  And \nwhen i see them doing this AND reading a newspaper.....*sigh*...this\nis why America has 55-65 speed limits: our drivers are TOO DUMB to realise\nthat reading the paper should be done at breakfast, or work, not in their\ncar.  \n\nmy thoughts..\nDREW\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3308, "properties": {"category": "rec.autos", "text": "From: wiggs@stsci.edu (Michael S. Wiggs)\nSubject: Kubelwagen\nOrganization: Space Telescope Science Institute\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 7\n\n\nThe answer to your question is...sort of. Volkswagen had a\nmuch less robust version of this army vehicle out in the\nearly '70's (or thereabouts). It was called the Volskwagen\nThing, and was, of course, a convertible. I havent seen\nmany around then or now. Good luck...\n-Mik\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3309, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jas@ISI.EDU (Jeff Sullivan)\nSubject: ADB Mouse II (ergo) -- when?\nOrganization: USC-ISI\nLines: 11\nDistribution: comp\nNNTP-Posting-Host: tigger.isi.edu\n\n\nWhen is Apple supposed to start bundlign the new ergonomic ADB Mouse\nII with all CPUs sold?\n\njas\n\n--\n--------------------------------------------------------------------------\nJeffrey A. Sullivan             | Research Scientist et al.\njas@isi.edu (Internet)          | Information Sciences Institute\n72511,402    (Compuserve)       | University of Southern California\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3310, "properties": {"category": "comp.windows.x", "text": "From: aafc6@syma.sussex.ac.uk (Nightline)\nSubject: Editres under Pie(TVT)wm\nKeywords: editres twm failure\nOrganization: University of Sussex at Brighton\nLines: 14\n\nHi, looking for any advice or suggestions about a problem I'm\nhaving with MIT X11R5's editres, in particular under twm variants.\n\nFor a start, 9 times out of 10 (but NOT always) editres won't\ngrab a widget tree when running on our NCD (Decwindows) Xterms,\nwhich I'm told will be fixed when the R5 (not R4) XDm is installed.\nOK, so I tried running it on a Sun, running real R5, on the same\nnetwork - I get a widget tree, but it's ALWAYS for 'TWM Icon Manager'\n\nAnybody know of any patches for (a) twm or (b) editres that I should\nlook at?\n\nThanks,\nK\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3311, "properties": {"category": "comp.windows.x", "text": "From: cudep@csv.warwick.ac.uk (Ian Dickinson)\nSubject: Re: SVR4.x binary dists (was Re: RFD: to create comp.unix.sys5.univel)\nOrganization: Team Limpid's Meathead With Aptitude - Kunst und Wahnsinn\nLines: 21\nNNTP-Posting-Host: spatula.csv.warwick.ac.uk\n\nIn article <rick.734610425@digibd> rick@digibd.digibd.com (Rick Richardson) writes:\n>The other scary thing is that I ship libxcl.so with the 6 functions\n>in it;  how many other libxcl.so type libraries will be shipped by\n>other vendors?  Should I trademark the name libxcl.a? What if\n>some clown uses that name and only puts 4 of the troublesome\n>functions in it?\n\nDoes USL SVR4 support LD_RUN_PATH a la Solaris 2?\nOr an equivalent?\n\nIf so, you can put the library in a package specific lib directory,\ncompile the app with LD_RUN_PATH defined, and all should work.\n\nBesides, I'd say name it libPACKAGExcl.a if possible.\n\nCheers,\n-- \n\\/ato - Ian Dickinson - NIC handle: ID17          This article is dedicated to\nvato@csv.warwick.ac.uk  ...!uknet!warwick!vato        those who disapprove but\n/I=I/S=Dickinson/OU=CSV/O=Warwick/PRMD=UK.AC/ADMD= /C=GB/          continue to\n@c=GB@o=University of Warwick@ou=Computing Services@cn=Ian Dickinson      read\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3312, "properties": {"category": "sci.crypt", "text": "From: rboudrie@chpc.org (Rob Boudrie)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Center For High Perf. Computing of WPI; Marlboro Ma\nDistribution: na\nLines: 26\n\nIn article <C5so84.Hxv@demon.co.uk> Graham Toal <gtoal@gtoal.com> writes:\n>In article <2073@rwing.UUCP> pat@rwing.UUCP (Pat Myrto) writes:\n>:If the Clinton Clipper is so very good, why not make its algrithm public\n>:so many people can exchange ideas and examine it, rather than a few\n>:isolated 'respected experts' (respected by whom?  for what?  Perhaps a\n\nOne more time...\n\n    If they released the algorithm, it would be possible for someone\n    to come up with an implementation which was identical, but\n    lacking an escrowed key.\n\n    Note that the press announcement mentioned that the algorithm was\n    being kept secret for security of the key escrow system.  In this\n    case security means \"an escrowed key for EVERY clipper chip\".\n\n\n    Assuming you believed all that is said about the effective of\n    the algorithm, and the escrow system, which would you buy :\n\n     (a)  Chip from firm A with the escrowed key\n     (b)  Second source chip from reputable firm B with no key\n          in government escrow.\n\n    There would obviously be powerful economic incentives for a second\n    source, non escrowed, vendor.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3313, "properties": {"category": "sci.med", "text": "From: mhollowa@ic.sunysb.edu (Michael Holloway)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nKeywords: science   errors   Turpin  \nNntp-Posting-Host: engws5.ic.sunysb.edu\nOrganization: State University of New York at Stony Brook\nLines: 16\n\nIn article <C5JoDH.9IG@news.Hawaii.Edu> lady@uhunix.uhcc.Hawaii.Edu (Lee Lady) writes:\n>\n>Furthermore, the big bucks approach to science promotes what I think is\n>one of the most significant errors in science:  choosing to investigate\n>questions because they can be readily handled by the currently\n>fashionable methodology (or because one can readily get institutional\n>or corporate sponsorship for them) instead of directing attention to\n>those questions which seem to have fundamental significance.\n\nShades of James Watson!  That's exactly the way many workers have described\ntheir misgivings about the Human Genome Project.  If you take a rigid \ndefinition of scientific research, the mere accumulation of data is not \ndoing science.  One of the early arguments against the project were that the \nresources would be better used to focus on specific genetics-related \nproblems rather than just going off and collecting maps and sequence.  \nThe project can't be so narrowly defined or easily described now though.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3314, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Re: IDE vs SCSI\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 60\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\nwlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>This doesn't answer the original question.  IS OS/2 a multi-user OS?\n>And no mention was made of an ether card either.  But from a disk/data\n>point of view, why does SCSI have an advantage when it comes to multi-\n>tasking?  Data is data, and it could be anywhere on the drive.  Can\n>SCSI find it faster?  can it get it off the drive and into the computer\n>faster?  Does it have a better cache system?  I thought SCSI was good at\n>managing a data bus when multiple devices are attached.  If we are\n>only talking about a single drive, explain why SCSI is inherently\n>faster at managing data from a hard drive.\nYou are making the same mistake I did: you are confusing the DRIVE\ninterface to the DATA THROUGHPUT interface.  Again from my Mac & IBM info\nsheet {available by FTP on sumex-aim.stanford.edu (36.44.0.6) in the\ninfo-mac/report as mac-ibm-compare173.txt}:\nExpansion\nBoth Mac & IBM\nSCSI: only external device expansion interface common to both Mac and IBM.\n Allows the use of any device: hard drive, printer, scanner, Nubus card \n expansion {Mac Plus only}, some monitors, and CD-ROM.  Apple developed some \n specifications for SCSI controlers while IBM has no exact controller \n specifications {which results in added incompatibilities on IBM machines}.  \n Main problem:  there are a lot of external devices which are internal \n terminated which causes problems for more then two devises off the SCSI port \n {A SCSI chain is supposed to be terminated ONLY at the begining and at the \n end.  Any other set up causes problems for either Mac or IBM}. \nSCSI-1:  7 devices per SCSI controller.  8-bit asynchronous {~1.5MB/s ave}\n and synchronous {5MB/s max} transfer base.  16-bit SCSI-1 requires a\n SCSI-2 controler chip and can provide only fast SCSI-2 not wide SCSI-2\n which are both 16-bit interfaces {see SCSI-2}.\nSCSI-2: 10 devices per SCSI controller in SCSI-2 mode.  SCSI-2 is fully\n SCSI-1 complient and tends to be implimented as a very fast SCSI-1 since it \n needs a different controller interface in both hardware {which tends to be \n very expendsive} and software.  Transfer speeds are 4-6MB/s with 10MB/s burst \n {8-bit}, 8-12MB/s with 20MB/s burst {16-bit}, and 15-20MB/s with 40MB/s burst\n {32-bit/wide and fast}.  SCSI-2 in SCSI-1 mode is limited to 7 devices and\n reduced 8-bit or 16-bit {fast only} throughput due to the difference between\n SCSI-1 and wide SCSI-2 ports.\n\nIBM\nHD Interfaces {limited to hard drives by design or lack of development}:\n[...]\nIDE:  Integrated Device Electronics \n currently the most common standard, and is mainly used for medium sized \n drives. Can have more than one hard drive. Asynchronous Transfer: ~5MB/s max.\n\nSo at its LOWEST setting SCSI-2 interface in Asynchronous SCSI-1 mode AVERAGES \nthe through put MAXIMUM of IDE in asynchronous mode.  In full SCSI-2 mode\nit blows poor IDE out the window, down the street, and into the garbage can.\nThe problem becomes can the drive mechanisim keep up with those through put\nrates and THAT is where the bottleneck and cost of SCSI-2 comes from.  NOT\nthe interface itself but more and more from drive mechanisims to use the\nSCSI-2 through put.  The cost of SCSI interface is a self fulliling\nprophisy: few people buy SCSI because it is so expencive for the PC, which\nin turn convices makes that mass producing SCSI {which would reduce its\ncost} is unwarented, and so SCSI is expencive. {That is the effect of the\nRule of Scale: the more items sold the less EACH item has to bare the brunt\nthe cost of manufacture and so the less each item has to cost}\n\nSCSI-2 allows a drive mechanisims through put to be limited by the DRIVE while\nIDE itself limits the through put.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3315, "properties": {"category": "comp.graphics", "text": "From: SITUNAYA@IBM3090.BHAM.AC.UK\nSubject: Any good Morphing Anims...\nOrganization: The University of Birmingham, United Kingdom\nLines: 8\nNNTP-Posting-Host: ibm3090.bham.ac.uk\n\n==============================================================================\nHas anyone created any interesting animations using Dmorph\nI seem to be unable to create anything that looks remotely\nrealistic although this is probably due to the crappy GIF's\nat I am using (One of Captain Kirk and One of Spock), i'm a\nbit of a 'Trekker'.  What are the best type of pictures to use.\nthanks........\n            A.Situnayake\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.151+0000", "event": "documents", "entityId": 3316, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: chau@hao.ucar.edu (National Center for Atmospheric Research)\nSubject: Looking for books\nDistribution: na\nOrganization: High Altitude Observatory, Boulder CO 80303\nLines: 3\n\nHi netters!\n\tI'm looking for books that showing how to fix your own hardware problem.\n\tPlease let me know if you have any books in mind.  Thanks.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3317, "properties": {"category": "sci.med", "text": "From: jnielsen@magnus.acs.ohio-state.edu (John F Nielsen)\nSubject: Re: Good Grief!  (was Re: Candida Albicans: what is it?)\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 45\n\nIn article <noringC5u638.Bvy@netcom.com> noring@netcom.com (Jon Noring) writes:\n>In article dyer@spdcc.com (Steve Dyer) writes:\n>>In article noring@netcom.com (Jon Noring) writes:\n>\n>Good grief again.\n>\n>Why the anger?  I must have really touched a raw nerve.\n>\n>Let's see:  I had symptoms that resisted all other treatments.  Sporanox\n>totally alleviated them within one week.  Hmmm, I must be psychotic.  Yesss!\n>That's it - my illness was all in my mind.  Thanks Steve for your correct\n>diagnosis - you must have a lot of experience being out there in trenches,\n>treating hundreds of patients a week.  Thank you.  I'm forever in your\n>debt.\n>\n>Jon\n>\n>(oops, gotta run, the men in white coats are ready to take me away, haha,\n>to the happy home, where I can go twiddle my thumbs, basket weave, and\n>moan about my sinuses.)\n\nEver heard of something called the placebo effect? I think Dyer is\nreacting because it looks to be yet another case of the same old\nquackery over and over again.\n\nIt true that current medical knowledge is limited, but do you realize\njust HOW MANY quacks exist eager to suck your $$$$. It's playing the\nlottery at best.\n\nIf the results you got were so clear and obvious, would you mind\ntrying a little experiment to see if it is true? It would be quite\nsimple. Have sugar pills and have real pills.  Take one set for one\nweek and the other set for another week without knowing which ones are\nthe real pills. Then at the end of the 2 weeks compare the results.\nLet's say you're wife would know which are the real ones. If what you\nare experiencing is true there should be a marked difference between\neach week. \n \njohn\n\n-- \nJohn Nielsen   MAGNUS Consultant            ______   ______   __  __\t\n\"To you Baldrick, the Renaissance was just /\\  __ \\ /\\  ___\\ /\\ \\/\\ \\\nsomething that happened to other people,   \\ \\ \\/\\ \\\\ \\___  \\\\ \\ \\_\\ \\\nwasn't it?\" - The Black Adder               \\ \\_____\\\\/\\_____\\\\ \\_____\\\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3318, "properties": {"category": "rec.autos", "text": "From: ajg1678@ritvax.isc.rit.edu\nSubject: Re: Buick heater controls\nNntp-Posting-Host: vaxa.isc.rit.edu\nReply-To: ajg1678@ritvax.isc.rit.edu\nOrganization: Rochester Institute of Technology\nDistribution: usa\nLines: 1\n\nI had the exactly same problem with my '70 Lesabre. It was also from Cal.     What I did was go to the local junkyard and pick up a diaphragm from a '68      Lesabre with the same heater set up.  It worked for me, but a little bit slow   to change from vents to defogger.  Better than nothing!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3319, "properties": {"category": "sci.crypt", "text": "From: rja14@cl.cam.ac.uk (Ross Anderson)\nSubject: Re: Tempest\nNntp-Posting-Host: ely.cl.cam.ac.uk\nOrganization: U of Cambridge Computer Lab, UK\nDistribution: na\nLines: 19\n\n\nres@colnet.cmhnet.org (Rob Stampfli) writes:\n\n> Wouldn't a a second monitor of similar type scrolling gibberish and adjacent\n> to the one being used provide reasonable resistance to tempest attacks?\n\nWe've got a tempest receiver in the lab here, and there's no difficulty in\npicking up individual monitors. Their engineering tolerances are slack enough\nthat they tend to radiate on different frequencies. Even where they overlap, you\ncan discriminate because they have different line synch frequencies - you can\nlock in on one and average the others out.\n\nThe signals are weird in any case, with varying polarisations and all sorts\nof interactions with the building. Just moving a folded dipole around is also\nhighly effective as a (randomised) means of switching from one monitor to\nanother,\n\nRoss\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3320, "properties": {"category": "talk.politics.misc", "text": "From: vlad@netcom.com (Vladimir Kuznetsov)\nSubject: Re: How many homosexuals are there?\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nDistribution: usa\nLines: 22\n\nIn article <Apr.15.21.39.43.1993.8726@romulus.rutgers.edu> kaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n>Perhaps 1%, but most likely not more than 2%.  A new study\n>(discrediting Kinsey) says so.\n>-- \n\nYes, I saw today in 6 o'clock news on KCBS here in San Francisco\nthis statistic quoted. \n\n2.2% men had sex with another man.\n1.3% cinsider themself homosexual.\n\nI understand of course that because this statistic goes against\ncommon believe and not PC-correct it must be complete BS.\n\nThx\n\nvlad\n-- \nVladimir Kuznetsov                         (408)252-5455\nNatural Intelligence Consulting            vlad@netcom.COM\n                                           73437,3344@compuserve.com\n                                           vkuznetsov@mci.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3321, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: Re: Reseting LW IIg to factory defaults\nFrom: Robert Grapes <R.Grapes@massey.ac.nz>\nOrganization: Massey University\nX-Xxdate: Mon, 19 Apr 93 08:03:45 GMT\nX-Useragent: Nuntius v1.1.1d17\nLines: 21\n\nIn article <1qpir1$762@slab.mtholyoke.edu> Jurgen Botz,\njbotz@mtholyoke.edu writes:\n> I have a Laserwriter IIg that has disappeared completely from the\n> Network, i.e. it's name doesn't show up in any zone.  (You can print\n> to it from it's serial interface, tho!)  I have seen some discussion\n> here about changing the zone a IIg is in... including some PS code\n> that lets you change the zone.  Is there maybe some PS code you can\n> use to have it go back to all its factory default settings?  I have\n> a feeling that's what needed to heal ours.\n\nThe following postscript works for LaserWriter IIg's with version 2 roms\n\n%!\n0 serverdict begin exitserver\n<< /FactoryDefaults true >> setsystemparams\nsystemdict begin\nrealtime 10000 add\n{ dup realtime le { pop exit } if } loop\nquit\n\nRob.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3322, "properties": {"category": "comp.graphics", "text": "From: rschmitt@shearson.com (Robert Schmitt)\nSubject: Re: Please Recommend 3D Graphics Library F\nReply-To: rschmitt@shearson.com\nOrganization: Lehman Brothers, Inc.\nLines: 9\n\nWhat hardware do plan to run on?  Workstation or PC?  Cost level?\nRun-time licensing needs?\n\nBob\n------------------------------------------------------------------\nRobert A. Schmitt | Applied Derivatives Technology | Lehman Brothers\nrschmitt@shearson.com\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3323, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: BDI Experience\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 29\n\nSebastian C Sears, on the Tue, 13 Apr 1993 02:32:13 GMT wibbled:\n\n:                  ... Came around a right hand sweeper (going around\n: \t45 mph) only to find a cager going around 30 mph, calmly driving \n:       along, with no other traffic around, in *my* lane. Not crossing \n:       the line, not swerving, fully and totally within the south-bound \n:       lane of 9W (one lane each direction). \n\n\nAnd I haven't even got there yet.  Must have been some other Brit...\n--\n\nNick (the English Biker)   DoD 1069   Concise Oxford   Left is Right\n\nM'Lud.\n\n  ___\t___   ___   ___\n {\"_\"} {\"_\"} {\"_\"} {\"_\"}\t  Nick Pettefar, Contractor@Large.\n  ' `\t` '   ' `   ` '\t\t  Currently incarcerated at BNR,\n  ___\t___   ___   ___\t\t  Maidenhead, The United Kingdom.\n |\"_\"| |\"_\"| |\"_\"| |\"_\"|\t  npet@bnr.ca  '86 BMW K100RS \"Kay\"\n  ` '\t' `   ` '   ' `\t\t  Pres. PBWASOH(UK),  BS 0002\n\t    .\n   _ _\t\t_  __ .\n  / ~ ~~\\   |  / ~~  \\\n |_______|    [_______|\n\t   _:_\n\t  |___|\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3324, "properties": {"category": "talk.politics.mideast", "text": "From: bf3833@pyuxe.cc.bellcore.com (feigenbaum,benjamin)\nSubject: Re: NEWS YOU MAY HAVE MISSED, Apr 20\nOrganization: Bellcore, Livingston, NJ\nSummary: Totally Unbiased Magazine\nLines: 134\n\nIn article <1qu7op$456@genesis.MCS.COM>, arf@genesis.MCS.COM (Jack Schmidling) writes:\n>  \n>             NEWS YOU MAY HAVE MISSED, APR 19, 1993\n>  \n>           Not because you were too busy but because\n>             Israelists in the US media spiked it.\n>  \n>                      ................\n>  \n>  \n>                   THOSE INTREPID ISRAELI SOLDIERS\n>   \n>  \n>  Israeli soldiers have sexually taunted Arab women in the occupied Gaza Strip \n>  during the three-week-long closure that has sealed Palestinians off from the \n>  Jewish state, Palestinian sources said on Sunday.\n>  \n>  The incidents occurred in the town of Khan Younis and involved soldiers of\n>  the Golani Brigade who have been at the centre of house-to-house raids for\n>  Palestinian activists during the closure, which was imposed on the strip and\n>  occupied West Bank.\n>  \n>  Five days ago girls at the Al-Khansaa secondary said a group of naked\n>  soldiers taunted them, yelling: ``Come and kiss me.'' When the girls fled, \n>  the soldiers threw empty bottles at them.\n>      \n>  On Saturday, a group of soldiers opened their shirts and pulled down their\n>  pants when they saw girls from Al-Khansaa walking home from school. Parents \n>  are considering keeping their daughters home from the all-girls school.\n>      \n>  The same day, soldiers harassed two passing schoolgirls after a youth\n>  escaped from them at a boys' secondary school. Deputy Principal Srur \n>  Abu-Jamea said they shouted abusive language at the girls, backed them \n>  against a wall, and put their arms around them.\n>  \n>  When teacher Hamdan Abu-Hajras intervened the soldiers kicked him and beat\n>  him with the butts of their rifles.\n>  \n>  On Tuesday, troops stopped a car driven by Abdel Azzim Qdieh, a practising\n>  Moslem, and demanded he kiss his female passenger. Qdieh refused, the \n>  soldiers hit him and the 18-year-old passenger kissed him to stop the \n>  beating.\n>  \n>  On Friday, soldiers entered the home of Zamno Abu-Ealyan, 60, blindfolded\n>  him and his wife, put a music tape on a recorder and demanded they dance. As\n>  the elderly couple danced, the soldiers slipped away. The coupled continued\n>  dancing until their grandson came in and asked what was happening.\n>  \n>      The army said it was checking the reports.\n>  \n>                 ....................\n>  \n>  \n>       ISRAELI TROOPS BAR CHRISTIANS FROM JERUSALEM\n>  \n>  Israeli troops prevented Christian Arabs from entering Jerusalem on Thursday \n>  to celebrate the traditional mass of the Last Supper.\n>      \n>  Two Arab priests from the Greek Orthodox church led some 30 worshippers in\n>  prayer at a checkpoint separating the occupied West Bank from Jerusalem after\n>  soldiers told them only people with army-issued permits could enter.\n>  \n>      ``Right now, our brothers are celebrating mass in the Church of the Holy\n>  Sepulchre and we were hoping to be able to join them in prayer,'' said Father\n>  George Makhlouf of the Ramallah Parish.\n>  \n>      Israel sealed off the occupied lands two weeks ago after a spate of\n>  Palestinian attacks against Jews. The closure cut off Arabs in the West Bank\n>  and Gaza Strip from Jerusalem, their economic, spiritual and cultural centre.\n>  \n>     Father Nicola Akel said Christians did not want to suffer the humiliation\n>  of requesting permits to reach holy sites.\n>  \n>      Makhlouf said the closure was discriminatory, allowing Jews free movement\n>  to take part in recent Passover celebrations while restricting Christian\n>  celebrations.\n>  \n>      ``Yesterday, we saw the Jews celebrate Passover without any interruption.\n>  But we cannot reach our holiest sites,'' he said.\n>  \n>      An Israeli officer interrupted Makhlouf's speech, demanding to see his\n>  identity card before ordering the crowd to leave.\n>  \n>                    ...................\n>  \n>               \n>  \n>  If you are as revolted at this as I am, drop Israel's best friend email and \n>  let him know what you think.\n>  \n>  \n>            75300.3115@compuserve.com (via CompuServe)\n>            clintonpz@aol.com         (via America Online)\n>            clinton-hq@campaign92.org (via MCI Mail)\n>  \n>  \n>  Tell 'em ARF sent ya.\n>  \n>                   ..................................\n>  \n>  If you are tired of \"learning\" about American foreign policy from what is \n>  effectively, Israeli controlled media, I highly recommend checking out the \n>  Washington Report.  A free sample copy is available by calling the American \n>  Education Trust at:\n>                       (800) 368 5788\n>  \n>                   Tell 'em arf sent you.\n>  \n>  js\n>  \n>  \n> \n\nI took your advice and ordered a copy of the Washinton Report.  I\nheartily recommend it to all pro-Israel types for the following \nreasons:\n\n1.  It is an excellent absorber of excrement.  I use it to line\n    the bottom of my parakeet's  cage.  A negative side effect is\n    that my bird now has a somewhat warped view of the mideast.\n\n2.  It makes a great April Fool's joke, i.e., give it to someone\n    who knows nothing about the middle east and then say \"April\n    Fools\".\n\nAnyway, I plan to call them up every month just to keep getting\nthose free sample magazines (you know how cheap we Jews are).\n\nBTW, when you call them, tell 'em barf sent you.\n\nJust Kidding,\n\nBen.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3325, "properties": {"category": "talk.politics.misc", "text": "From: batwood@SU1AB.Harris-ATD.com (Brett Atwood)\nSubject: Re: I thought commercial Advertising was Not allowed\nNntp-Posting-Host: su1ab.ess.harris.com\nDistribution: world \nReply-To: batwood@su1b.ess.harris.com\nOrganization: Harris (Government Communications System Division)\nLines: 4\n\n|> [ debate deleted ]\n\n\t\tI guess it is allowed.\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3326, "properties": {"category": "rec.sport.baseball", "text": "From: djs9683@ritvax.isc.rit.edu\nSubject: Re: Finnally, the Phils have support\nNntp-Posting-Host: vaxc.isc.rit.edu\nReply-To: djs9683@ritvax.isc.rit.edu\nOrganization: Rochester Institute of Technology\n\nThe Phillies were picked to be in first.\nSomeone replied that the people who picked them were the same people who\npicked the Mets last year.\n\nMy reply:  Yeah, that may be true, but this IS the Phillies.\n\nFritz\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3327, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: getting to the point!\nLines: 12\nOrganization: Walla Walla College\nLines: 12\n\nTo all a.a readers:\n     I have been asked be several of you to post a list of the SDA Church's \n27 Fundamental beliefs.  I warn you now, it's a long list.  However, I'll \npost it on Sunday.  Sabbath is coming up soon so I won't be reading on \nSaturday.  And I don't have time to do it now.\n     I would GREATLY appreciate it if you would keep me in touch with what's \ngoing on.\n     I hope all of you have a reastful and relaxing weekend.  I hope it's \nthe best one so far!!\n\nTammy\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3328, "properties": {"category": "misc.forsale", "text": "From: cbray@uafhp..uark.edu (Chris Bray)\nSubject: Cassettes for Sale!!! (Update)\nOrganization: Kansas State University\nLines: 23\nNNTP-Posting-Host: uafhp.uark.edu\nSummary: Tapes for sale...\nKeywords: tapes, sale, sell\n\nHi there again...\nI still have a few tapes left...\n\nAs before they are $2.50 each (postage paid).\nMultiple orders appreciated, but not necessary...\nPackage deals welcome...\n\nThanks...\nChris Bray\n\nLewis, Huey|Sports\nHooters|Nervous Night\nPoison|Look What the Cat Dragged In\nHall & Oates|Big Bam Boom\nRatt|Out of the Cellar\nQuiet Riot|Condition Critical\nSeger, Bob|Like a Rock\nOutfield|Play Deep\nPlant, Robert|Shaken n' Stirred\nJourney|Raised on Radio\nDuran Duran|Duran Duran\nDuran Duran|Arena\nDuran Duran|Rio\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3329, "properties": {"category": "talk.religion.misc", "text": "From: dlphknob@camelot.bradley.edu (Jemaleddin Cole)\nSubject: Re: Catholic Lit-Crit of a.s.s.\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: The Society for the Preservation of Cruelty to Homophobes.\nLines: 37\n\nIn <1993Apr14.101241.476@mtechca.maintech.com> foster@mtechca.maintech.com writes:\n\n>I am surprised and saddened. I would expect this kind of behavior\n>from the Evangelical Born-Again Gospel-Thumping In-Your-Face We're-\n>The-Only-True-Christian Protestants, but I have always thought \n>that Catholics behaved better than this.\n>                                   Please do not stoop to the\n>level of the E B-A G-T I-Y-F W-T-O-T-C Protestants, who think\n>that the best way to witness is to be strident, intrusive, loud,\n>insulting and overbearingly self-righteous.\n\n(Pleading mode on)\n\nPlease!  I'm begging you!  Quit confusing religious groups, and stop\nmaking generalizations!  I'm a Protestant!  I'm an evangelical!  I don't\nbelieve that my way is the only way!  I'm not a \"creation scientist\"!  I\ndon't think that homosexuals should be hung by their toenails!  \n\nIf you want to discuss bible thumpers, you would be better off singling\nout (and making obtuse generalizations about) Fundamentalists.  If you\ncompared the actions of Presbyterians or Methodists with those of Southern \nBaptists, you would think that they were different religions!\n\nPlease, prejudice is about thinking that all people of a group are the\nsame, so please don't write off all Protestants or all evangelicals!\n\n(Pleading mode off.)\n\nGod.......I wish I could get ahold of all the Thomas Stories......\n--\n\t\"Fbzr enval jvagre Fhaqnlf jura gurer'f n yvggyr oberqbz, lbh fubhyq\nnyjnlf pneel n tha.  Abg gb fubbg lbhefrys, ohg gb xabj rknpgyl gung lbh'er \nnyjnlf znxvat n pubvpr.\"\n\t\t\t--Yvan Jregzhyyre\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n        Jemaleddin Sasha David Cole IV - Chief of Knobbery Research\n                        dlphknob@camelot.bradley.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3330, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Hand Held Products, Inc.\nLines: 138\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <C5tLxr.1xq@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \nwrites:\n> In article <1r21g2INNeah@clem.handheld.com> jmd@cube.handheld.com (Jim De  \nArras) writes:\n> >In article <C5sou8.LnB@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n> >writes:\n> >> In article <1993Apr20.163730.16128@guinness.idbsu.edu>  \nbetz@gozer.idbsu.edu  \n> >(Andrew Betz) writes:\n> >> >In article <C5rynw.Iz8@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n> >writes:\n> >> >>And I suppose the FBI also prevented them from coming out with their \n> >> >>hands up while national tv cameras watch.\n> >> >>\n> >> >Watch from where?  Two miles away?  Far enough away that whatever\n> >> >really happenned must be explained through the vengeful filter of\n> >> >a humiliated agency that said (quote!) \"Enough is enough.\"\n> >> \n> >> Please tell me what you think would have happened had the people \n> >> come out with their hands up several weeks ago.\n> >> \n> >It didn't happen.\n> \n> And who is responsible for it not happening?\n> Certainly not the children.  Koresh was calling the shots.  He was \n> talking with his lawyer and the FBI.  Since others were released safely, \n> there is no sane reason for keeping the children inside the compound.\n> \n\nThe FBI and Koresh were calling the shots.  And there were very sane reasons  \nfor keeping the children, if they let them go, the parents would NEVER see them  \nagain.  That is not an easy choice, in spite of you cold attitude about it.\n\n> >> >>scenario that is simplest and most plausible.  I do not generally \n> >> >>believe in conspiracy theories that involve complicated and unlikely \n> >> >>scenarios.\n> >> >\n> >> >The FBI sent letters to Martin Luther King's wife insinuating\n> >> >that MLK was having an affair!  Again, please tell us exactly\n> >> >how much you trust our supposedly benevolent government.\n> >> \n> >> More than someone who would not release children from the compound.\n> >> \n> >Obviously.  You are an authority worshiper.\n> \n> Not at all.  Are you a Koresh worshiper?\n\nI am a constitution worshiper.  You quite obviously eat anything the  \nauthorities feed you, without doubt, which makes you no different that a Koresh  \nworshiper\n\n> \n> >> I.e., more than David Koresh/Vernon Howell/\"Jesus Christ\".\n> >> I saw lengthy excerpts from an Australian documentary made in \n> >> 1992 that clearly showed that this was a cult.\n> >\n> >Give me a camera, and time with you, and I can present excerpts that show  \nyou  \n> >to be a cult leader.  Guarenteed. \n> \n> Thanks for my laugh of the day!  Definitely a very silly supposition.\n> \nIf you do not believe this, you are truly naive.  It is not only possible, it  \nis easy.  I worked in the broadcast profession, at a network station, in the  \nlate 70s, I know what I'm saying here.  Embarrasing footage is easy to get, add  \na little sinister music, and the right voice-over, and I'll have you mother  \nagreeing to commit you.\n\n> >You should at least view the whole  \n> >documentary before you claim it as a source.\n> \n> I would if I could.  The news show that showed the lengthy excerpts also \n> had interviews with the filmmaker who made the documentary who basically \n> confirmed what was shown in the excerpts from the time he spent at the \n> compound in 1992.\n> \nThe news shows were looking for excerpts which backed their position.  Do you  \nthink they would show excerpts which disproved their points?\n\n> >> I am not pleased with the BATF handling of the affair.  I think they \n> >> bungled it badly from the start.  But I don't think they are \n> >> responsible for the fire, which started in two different places.\n> >\n> >Two places, eh?  You saw this?  Or did the wonderful FBI tell you this?  \n> >I saw one place.\n> \n> I believe that this was reported by local radio reporters on site.\n> A fire started in a three story tower at the same time as the two \n> story window shown on the tv coverage.\n> \nThe reports of multi-starts came solely from the FBI.  Anyone observing the  \nfire from the available video would be hard pressed to see more than one point  \nof fire.  Which spread across the compound as a uniform rate.\n\n> >> >>The BATF is by no means devoid of fault in the handling of this affair.\n> >> >>But to suggest that they may have intentionally started the fire is \n> >> >>ludicrous.\n> >> >\n> >> >I suspect that there were plenty of camerapeople willing to\n> >> >risk small arms fire to get some good footage.  These people\n> >> >were told to get the hell out of camera range.  Why?\n> >\n> >Couldn't answer this one, eh?  This is the most important question of all,  \nit  \n> >is the root cause of all the other suspicion.\n> \n> I thought about mentioning how Reagan and the military treated the press \n> in Grenada and how that set the precedent, but decided it wasn't worthy \n> of discussion.  If the news reporter got shot, you can bet his family \n> would sue the government for letting him into the danger area.\n\nNo reported has ever sued the government for such a situation.  They know the  \ndangers.  Remember, the BATF invited the initial coverage. And how about a  \nsimple, remote-controlled, camera or two?  There were ways to provide media  \naccess.  The FBI obviously just didn't want any.\n\n> \n> The root cause of suspicion in my mind is why 100 people wouldn't flee \n> a building that had numerous exits during the 30 minutes time it took \n> to burn down.  Or why didn't they flee hours earlier when the tear gas was \n> first introduced?  I can find no rational explanation for their behavior.\n> \nI can find several.  Tear gas and smoke making it impossible to remove the  \nbarricades.  Flames blocking exits to the saferooms. Perhaps the gun shots were  \nfrom the FBI, keeping them pinned in?  Who knows?\n\n> -- \n> \n\nJim\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3331, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nOrganization: DSI/USCRPAC\nLines: 57\n\n\nThough some may argue about the nose of the camel, it's worth noting that\nthe government proposal is limited to scrambled telephony. If it is only\nused for that purpose, and does not extend to electronic mail or file\nencryption, then it IS an improvement over the current mass-produced\nstandard civilian technology which, with a few exceptions, is limited to\neasy-to-break inverters.\n\nNote that the big issue for the feds is the continued ability to wiretap.\nBefore we go off the deep end with long discusions about secure crypto for\ne-mail and files, let's focus on this.\n\nOne question that was not asked in the release is whether this proposal is\nlimited to telephony, or if the government intends to expand it.\n\nThough I share many of the concerns expressed by some, I find the proposal\nless threatening than many others, since right now most Americans have no\nsecure telephony, and any jerk with a pair of clip leads and a \"goat\" can\neavesdrop. This would also plug up the security hole in cellular and\ncordless phones.\n\n-------\n\nReading between the lines, I infer that the system is highly secure\nwithout access to the keys. This would meet the needs of U.S. businesses\nconfronted by rich and powerful adversaries, including French and Japanese\nsecurity services and rich Japanese companies. It allows the NSA to make\navailable some of its better stuff while protecting law enforcement needs.\n\nMost legitimate U.S. corporations trust the NSA, and would be delighted to\nhave a high-security system certified by them, even at the price of\ndepositing keys in escrow. I see no difficulty in creating a reliable\nescrow. Corporations entrust their secrets to attorneys every day of the\nweek, and that system has worked pretty well.\n\nFrom my point of view this is a fair starting point. There are concerns that\nneed to be addressed, including the reliability of the escrows. But in\nreturn we get access to high-security crypto. Many have suggested that DES\nand other systems may be breakable by the NSA and hence others similarly\nskilled and endowed. There is at least a good possibility (which should be\nchecked) that the proposed system is not so breakable. It doesn't have to\nbe, nor does it have to have trapdoors, if the government can get the keys\npursuant to a legitimate court order. Thus they can protect legitimate\ncommunications against economic adversaries, while still being able to\neavesdrop on crooks pursuant to a court order.\n\n------\n\nIn discussing this, let's try to avoid the nastiness, personal attacks and\nnoise of some previous threads. This is a substantive and technical issue,\nand personal remarks have no place in such a discussion.\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3332, "properties": {"category": "sci.med", "text": "From: jil@donuts0.uucp (Jamie Lubin)\nSubject: Re: eye dominance\nOrganization: Bellcore, Piscataway, NJ\nLines: 14\n\nIn article <19671@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>In article <C5E2G7.877@world.std.com> rsilver@world.std.com (Richard Silver) writes:\n>>\n>>Is there a right-eye dominance (eyedness?) as there is an\n>>overall right-handedness in the population? I mean do most\n>>people require less lens corrections for the one eye than the\n>>other? If so, what kinds of percentages can be attached to this?\n>\n>There is eye dominance same as handedness (and usually for the\n>same side).  It has nothing to do with refractive error, however.\n\nI recall reading/seeing that former baseball star Chris Chambliss' hitting\nabilities were (in part) attributed to a combination of left-handedness &\nright-eye dominance.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3333, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: This year the Turkish Nation is mourning and praying again for...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 207\n\nReferring to notes from the personal diary of Russian General L. \nOdishe Liyetze on the Turkish front, he wrote,\n\n\"On the nights 11-12 March, 1918 alone Armenian butchers \n bayoneted and axed to death 3000 Muslims in areas surrounding\n Erzincan. These barbars threw their victims into pits, most\n likely dug according to their sinister plans to extinguish \n Muslims, in groups of 80. My adjutant counted and unearthed\n 200 such pits. This is an act against our world of civilization.\"\n\nOn March 12, 1918 Lieut-colonel Griyaznof wrote (from an official\nRussian account of the Turkish genocide),\n\n\"Roads leading to villages were littered with bayoneted torsos,\n dismembered joints and carved out organs of Muslim peasants...\n alas! mainly of women and children.\"\n\nSource: Doc. Dr. Azmi Suslu, \"Russian View on the Atrocities Committed\n        by the Armenians Against the Turks,\" Ankara Universitesi, Ankara,\n        1987, pp. 45-53.\n        \"Document No: 77,\" Archive No: 1-2, Cabin No: 10, Drawer \n        No: 4, File No: 410, Section No: 1578, Contents No: 1-12, 1-18.\n        (Acting Commander of Erzurum and Deveboynu regions and Commander\n        of the Second Erzurum Artillery Regiment Prisoner of War,\n        Lieutenant Colonel Toverdodleyov)\n\n\"The things I have heard and seen during the two months, until the\n liberation of Erzurum by the Turks, have surpassed all the\n allegations concerning the vicious, degenerate characteristic of\n the Armenians. During the Russian occupation of Erzurum, no Armenian\n was permitted to approach the city and its environs.\n\n While the Commander of the First Army Corps, General Kaltiyin remained\n in power, troops including Armenian enlisted men, were not sent to the\n area. When the security measures were lifted, the Armenians began to \n attack Erzurum and its surroundings. Following the attacks came the\n plundering of the houses in the city and the villages and the murder\n of the owners of these houses...Plundering was widely committed by\n the soldiers. This plunder was mainly committed by Armenian soldiers\n who had remained in the rear during the war.\n\n One day, while passing through the streets on horseback, a group of\n soldiers including an Armenian soldier began to drag two old men of\n seventy years in a certain direction. The roads were covered with mud,\n and these people were dragging the two helpless Turks through the mud\n and dirt...\n\n It was understood later that all these were nothing but tricks and\n traps. The Turks who joined the gendarmarie soon changed their minds\n and withdrew. The reason was that most of the Turks who were on night\n patrol did not return, and no one knew what had happened to them. The \n Turks who had been sent outside the city for labour began to disappear\n also. Finally, the Court Martial which had been established for the\n trials of murderers and plunderers, began to liquidate itself for\n fear that they themselves would be punished. The incidents of murder\n and rape, which had decreased, began to occur more frequently.\n\n Sometime in January and February, a leading Turkish citizen Haci Bekir\n Efendi from Erzurum, was killed one night at his home. The Commander\n in Chief (Odiselidge) gave orders to find murderers within three days.\n The Commander in Chief has bitterly reminded the Armenian intellectuals\n that disobedience among the Armenian enlisted men had reached its\n highest point, that they had insulted and robbed the people and half\n of the Turks sent outside the city had not returned.\n\n ...We learnt the details this incident from the Commander-in-Chief,\n Odishelidge. They were as follows:\n\n The killings were organized by the doctors and the employers, and the\n act of killing was committed solely by the Armenian renegades...\n More than eight hundred unarmed and defenceless Turks have been\n killed in Erzincan. Large holes were dug and the defenceless \n Turks were slaughtered like animals next to the holes. Later, the\n murdered Turks were thrown into the holes. The Armenian who stood \n near the hole would say when the hole was filled with the corpses:\n 'Seventy dead bodies, well, this hole can take ten more.' Thus ten\n more Turks would be cut into pieces, thrown into the hole, and when\n the hole was full it would be covered over with soil.\n\n The Armenians responsible for the act of murdering would frequently\n fill a house with eighty Turks, and cut their heads off one by one.\n Following the Erzincan massacre, the Armenians began to withdraw\n towards Erzurum... The Armenian renegades among those who withdrew\n to Erzurum from Erzincan raided the Moslem villages on the road, and\n destroyed the entire population, together with the villages.\n\n During the transportation of the cannons, ammunition and the carriages\n that were outside the war area, certain people were hired among the \n Kurdish population to conduct the horse carriages. While the travellers\n were passing through Erzurum, the Armenians took advantage of the time\n when the Russian soldiers were in their dwellings and began to kill\n the Kurds they had hired. When the Russian soldiers heard the cries\n of the dying Kurds, they attempted to help them. However, the \n Armenians threatened the Russian soldiers by vowing that they would\n have the same fate if they intervened, and thus prevented them from\n acting. All these terrifying acts of slaughter were committed with\n hatred and loathing.\n\n Lieutenant Medivani from the Russian Army described an incident that\n he witnessed in Erzurum as follows: An Armenian had shot a Kurd. The\n Kurd fell down but did not die. The Armenian attempted to force the\n stick in his hand into the mouth of the dying Kurd. However, since\n the Kurd had firmly closed his jaws in his agony, the Armenian failed\n in his attempt. Having seen this, the Armenian ripped open the abdomen\n of the Kurd, disembowelled him, and finally killed him by stamping\n him with the iron heel of his boot.\n\n Odishelidge himself told us that all the Turks who could not escape\n from the village of Ilica were killed. Their heads had been cut off\n by axes. He also told us that he had seen thousands of murdered\n children. Lieutenant Colonel Gryaznov, who passed through the village\n of Ilica, three weeks after the massacre told us the following:\n\n There were thousands of dead bodies hacked to pieces, on the roads.\n Every Armenian who happened to pass through these roads, cursed and\n spat on the corpses. In the courtyard of a mosque which was about\n 25x30 meter square, dead bodies were piled to a height of 140 \n centimeters. Among these corpses were men and women of every age,\n children and old people. The women's bodies had obvious marks of\n rape. The genitals of many girls were filled with gun-powder.\n\n A few educated Armenian girls, who worked as telephone operators\n for the Armenian troops were called by Lieutenant Colonel Gryaznov\n to the courtyard of the mosque and he bitterly told them to be \n proud of what the Armenians had done. To the lieutenant colonel's\n disgusted amazement, the Armenian girls started to laugh and giggle,\n instead of being horrified. The lieutenant colonel had severely\n reprimanded those girls for their indecent behaviour. When he told\n the girls that the Armenians, including women, were generally more\n licentious than even the wildest animals, and that their indecent\n and shameful laughter was the most obvious evidence of their inhumanity\n and barbarity, before a scene that appalled even veteran soldiers,\n the Armenian girls finally remembered their sense of shame and\n claimed they had laughed because they were nervous.\n\n An Armenian contractor at the Alaca Communication zone command\n narrated the following incident which took place on February 20:\n\n The Armenians had nailed a Turkish women to the wall. They had cut\n out the women's heart and placed the heart on top of her head.\n The great massacre in Erzurum began on February 7... The enlisted men \n of the artillery division caught and stripped 270 people. Then they\n took these people into the bath to satisfy their lusts. 100 people\n among this group were able to save their lives as the result of\n my decisive attempts. The others, the Armenians claimed, were \n released when they learnt that I understood what was going on. \n Among those who organized this treacherous act was the envoy to the\n Armenian officers, Karagodaviev. Today, some Turks were murdered\n on the streets.\n\n On February 12, some Armenians have shot more than ten innocent\n Moslems. The Russian soldiers who attempted to save these people were\n threatened with death. Meanwhile I imprisoned an Armenian for\n murdering an innocent Turk. \n\n When an Armenian officer told an Armenian murderer that he would \n be hanged for his crime, the killer shouted furiously: 'How dare\n you hang an Armenian for killing a Turk?' In Erzurum, the \n Armenians burned down the Turkish market. On February 17, I heard\n that the entire population of Tepekoy village, situated within\n the artillery area, had been totally annihilated. On the same \n day when Antranik entered Erzurum, I reported the massacre to\n him, and asked him to track down the perpetrators of this horrible\n act. However no result was achieved.\n\n In the villages whose inhabitants had been massacred, there was a\n natural silence. On the night of 26/27 February, the Armenians deceived\n the Russians, perpetrated a massacre and escaped for fear of the \n Turkish soldiers. Later, it was understood that this massacre had\n been based upon a method organized and planned in a circular. \n The population had been herded in a certain place and then killed\n one by one. The number of murders committed on that night reached\n three thousand. It was the Armenians who bragged to about the details\n of the massacre. The Armenians fighting against the Turkish soldiers\n were so few in number and so cowardly that they could not even\n withstand the Turkish soldiers who consisted of only five hundred\n people and two cannons, for one night, and ran away. The leading\n Armenians of the community could have prevented this massacre.\n However, the Armenian intellectuals had shared the same ideas with\n the renegades in this massacre, just as in all the others. The lower\n classes within the Armenian community have always obeyed the orders\n of the leading Armenian figures and commanders. \n\n I do not like to give the impression that all Armenian intellectuals\n were accessories to these murders. No, for there were people who\n opposed the Armenians for such actions, since they understood that\n it would yield no result. However, such people were only a minority.\n Furthermore, such people were considered as traitors to the Armenian\n cause. Some have seemingly opposed the Armenian murders but have\n supported the massacres secretly. Some, on the other hand, preferred\n to remain silent. There were certain others, who, when accused by\n the Russians of infamy, would say the following: 'You are Russians.\n You can never understand the Armenian cause.' The Armenians had a\n conscience. They would commit massacres and then would flee in fear\n of the Turkish soldiers.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3334, "properties": {"category": "comp.graphics", "text": "From: lm001@rrz.Uni-Koeln.DE (Erwin H. Keeve)\nSubject: Polygon Reduction for Marching Cubes\nOrganization: Regional Computing Center, University of Cologne\nLines: 36\nDistribution: world\nNNTP-Posting-Host: rs1.rrz.uni-koeln.de\nKeywords: Polygon Reduction, Marching Cubes, Surfaces, Midical Visualisation\n\n\nDear Reader,\n\n\nI'am searching for an implementation of a polygon reduction algorithm\nfor marching cubes surfaces. I think the best one is the reduction algorithm\nfrom Schroeder et al., SIGGRAPH '92. So, is there any implementation of this \nalgorithm, it would be very nice if you could leave it to me.\n\nAlso I'am looking for a fast !!! connectivity\ntest for marching cubes surfaces.\n\nAny help or hints will be very useful.\nThanks a lot\n\n\n                                                 ,,,\n                                                (o o)\n ___________________________________________oOO__(-)__OOo_____________\n|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|_|\n|_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|\n|                               |                                     |\n| Erwin Keeve                   | adress:  Peter-Welter-Platz 2       |\n|                               |          W-5000 Cologne 1, Germany  |\n|                               |                                     |\n| Dept. of Computergraphics &   | phone:   +49-221-20189-132 (-192)   |\n|          Computeranimation    | FAX:     +49-221-20189-17           |\n|                               |                                     |\n| Academy of Media Arts Cologne | Email:   keeve@khm.uni-koeln.de     |\n|_______________________________|_____________________________________|\n\n\n\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3335, "properties": {"category": "sci.electronics", "text": "From: surfer@world.std.com (Internet Surfer)\nSubject: New mailserver...soon...utopia-service\nOrganization: Boston Computer Society / ISIG\nLines: 9\n\nFor all those who are interested and would like to discuss the popular\nSecret Life..and/or other technical documentaries.. Please email me\nas i am starting a newsgroup\n\n\n-- \njolt@gnu.ai.mit.edu\t      |    Its not impossible, just improbable\njohnp@pro.angmar.uucp         |            (Zaphod Beeblbrox)\nbl298@cleveland.freenet.edu   |   N1NIG@amsat.org (Being a Ham is so grand)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3336, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: Unconventional peace proposal\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 41\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <1483500348@igc.apc.org>, Center for Policy Research <cpr@igc.apc.org> writes:\n|> \n|> From: Center for Policy Research <cpr>\n|> Subject: Unconventional peace proposal\n|> \n|> \n|> A unconventional proposal for peace in the Middle-East.\n|> ---------------------------------------------------------- by\n|> \t\t\t  Elias Davidsson\n\nThis could be accomplished by other criteria.  One must remember\nthat children often bring stress into households. As an alternative,\none could consider financial incentives for every sexual act performed\nby two partners of different ethnic backgrounds.  The plan could\nbe entitled \"PEACE INCOME SEXUAL SECURITY\", or PISS for short.\n\nEvery time an Israeli gets screwed\nby a Palestinian or visa versa, they would be eligible for income.\nIn keeping with the spirit of the times, condoms would be a tax deductible\nexpense.  This policy does not discriminate on a gender basis nor\nwould it apply to domestic animals of either nationality.\n\nJoint Palestinan-Israeli teams would be obligated to ensure that all\nacts were voluntary and promptly rewarded. The teams of Palestinian-Israel\nMorals Patrols, or PIMPS, would receive a percentage of the financial\nincome in order to encourage their participation and add to their\nincentive in locating suitable candidates.\n\n|> I would be thankful for critical comments to the above proposal as\n|> well for any dissemination of this proposal for meaningful\n                ^^^^^^^^^^^^^\n\nShouldn't that be insemination?\n\n|> Elias Davidsson Post Box 1760 121 Reykjavik, ICELAND\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3337, "properties": {"category": "comp.windows.x", "text": "From: grape@suned1.Nswses.Navy.MIL (Mike Grapevine)\nSubject: Subscription\nOrganization: The Internet\nLines: 7\nTo: xpert@expo.lcs.mit.edu\n\nPlease subscribe me to this mailing list\n\n        Michael D. Grapevine          |  One of these days,\n        USN SWC                       |    One of these days,\n        Code 4G33                     |  POW!\n        grape@suned1.nswses.navy.mil  |   It's gonna happen,\n        Bus: (805) 982-7791           |     and I won't even realize it.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.152+0000", "event": "documents", "entityId": 3338, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rhc52134@uxa.cso.uiuc.edu (Richard)\nSubject: Re: does dos6 defragment??\nArticle-I.D.: news.C51H9M.46p\nOrganization: University of Illinois at Urbana\nLines: 12\n\nGeoffrey S. Elbo writes:\n\n>Yes, and it is the fastest defrag I've ever watched.  It did a 170MB \n>hard disk in 20 minutes.\n\n\tI found the MS defrag looks very much like Norton Speedisk.\nIs it just a strip-down version of the later?\n\n\tI have both Norton Speedisk and Backup, so I was wondering \nif I need to install MS Backup?\n\nRichard\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3339, "properties": {"category": "rec.motorcycles", "text": "From: bclarke@galaxy.gov.bc.ca\nSubject: Fortune-guzzler barred from bars!\nOrganization: BC Systems Corporation\nLines: 20\n\nSaw this in today's newspaper:\n------------------------------------------------------------------------\nFORTUNE-GUZZLER BARRED FROM BARS\n--------------------------------\nBarnstaple, England/Reuter\n\n\tA motorcyclist said to have drunk away a $290,000 insurance payment in\nless than 10 years was banned Wednesday from every pub in England and Wales.\n\n\tDavid Roberts, 29, had been awarded the cash in compensation for\nlosing a leg in a motorcycle accident. He spent virtually all of it on cider, a\ncourt in Barnstaple in southwest England was told.\n\n\tJudge Malcolm Coterill banned Roberts from all bars in England and\nWales for 12 months and put on two years' probation after he started a brawl in\na pub.\n\n-- \nBruce Clarke       B.C. Environment\n                   e-mail: bclarke@galaxy.gov.bc.ca\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3340, "properties": {"category": "sci.electronics", "text": "From: 2575brooksr@vms.csd.mu.edu\nSubject: NeXT cube board monitor cable ?\nOrganization: Marquette University - Computer Services\nLines: 8\nReply-To: 2575brooksr@vms.csd.mu.edu\nNNTP-Posting-Host: vmsf.csd.mu.edu\n\nHi all!\n\tQuick question.  Could someone please send me a pinout of\nthe cable that goes between a NeXT cube and the monitor?  Also,\nI am interested in the video signal (sync type, horz/vert rate)\nso any information on that would be greatly appreciated also.\n\nThanks!\nRyan Brooks\t\t\t\t\tryan@agnus.mcs.mu.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3341, "properties": {"category": "talk.politics.misc", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: re: fillibuster\nLines: 188\nOrganization: University of Tennessee Computing Center\n\nIn article <C5ovFr.C0u@dscomsa.desy.de> hallam@dscomsa.desy.de (Phill Hallam-Baker) writes:\n>\n>In article <VEAL.740.735074621@utkvm1.utk.edu>, VEAL@utkvm1.utk.edu (David Veal) writes:\n>\n>|>>|>       If the Senate was less powerful than the House of Lords, than\n>|>>|>we'd almost have to state that the House of Representatives was also.\n>|>>|>(In fact, they both were, because the British government had much\n>|>>|>greater power than did the American system).       \n>|>>\n>|>>In principle no, in practice yes. \n>|>\n>|>        In principle no?  That they had less power of that they should have\n>|>had less power?\n>\n>The British parliament in principle has absolute power. So does the Monarch.\n>Much of the stability of the system rests on what is not defined clearly.\n>In the case of a clear abuse by one side or the other the other side\n>can act to remedy the situation.\n\n      Two institutions with absolute power.  Cute.\n\n      Let's talk practicality, shall we?  If the Monarch tried to\ndo something, what would happen?\n  \n>|>>If they were to start from a social welfare model instead of the current \n>|>>\"no state subsidy motto\" they would be better placed. As it is there is\n>|>>plenty of state money being handed out. The problem is that it is\n>|>>distributed on the basis of power in congress and not on the basis of\n>|>>actual need. \n>|>\n>|>       Bingo.  The higher up the governmental ladder the less actual\n>|>need matters, because political power can be concentrated at higher\n>|>levels, while people with less cloud only find themselves reduced to\n>|>in effectiveness.\n>\n>That was not my point. \n\n       But you illustrated the problem very well.\n\n>|>>In order to set up a school project in New York state you have to pay off the\n>|>>other 49 states with pork - defense contracts, agricultural subsidies etc.\n>|>>Or to be precise 30 of the states since you need 60 to beat the filibuster.\n>|>\n>|>       Then why not simply leave New York's education to New York?  I\n>|>remain unconcinved that there is any state in the Union which is not capable\n>|>of educating its own children if that's what they want to do.  \n>\n>The point is of redistribution of cash from the poor areas of the ecconomy\n>to the rich ones. \n\n       I am contending that there is no state in the Union which does\nnot have ample wealth, if they choose to spend it, to run a perfectly\nacceptable Education system.  (I further contend that the amount of money\nbeing spent now is more then sufficient, but is being spent badly.)\n\n>Or vice versa if you aren't a Republican. \n\n       So, tell me Phill.  Were the Republicans also responsible for some\nof the *huge* increases in social programs?  Or were they *only* \nresponsible for what you don't like.  (I contend it is Congress which\nis to blame.  Democrat and Republican alike.)\n\n>If society\n>simply writes off any areas of the country that is ecconomically weak you\n>end up with a basket case ecconomy. There are inevitable cycles in any\n>business. Some of these act in phase to produce the \"business cycle\".\n>Others are countercyclic. Localities can experience boom to bust cycles\n>outside the national trend. To produce a strong ecconomy you need to\n>ensure that the bust areas do not fall bellow the level where they\n>cannot be ecconomically rebuilt. \n\n       Most of our worst areas are still better off than most of Europe.\nIn any case, we're talking about *education*.  \n\n>If the industry in an area collapses\n>the US as a whole still has a responsibility to ensure that the children\n>in that area get a good education. In some areas of the US schools are closing\n>halfway through the year for lack of money.\n\n       Yes, I live in once such area.  You're woefully ignorant of the\nsituation.\n\n       At the same time some of Tennessee's school districts are closing\ndown, the Governor asked for 7.5 million dollars for bicentenntial\ncelebration license plats.  In almost the same breath he wanted to raise\nunemployment compensation and reduce taxes which paid into it.\n \n       I don't know about the rest of the country, but *our* education\nproblems stem directly from two problems, neither of which are a lack\nof money in the state.  (BTW, Tennessee is considered a \"tax heaven\"\nand our economy is one of the strongest in the country.  *I* see\na correlation.)  1)  What money we spend goes primarly to administration.\nThe average administrator makes two and a half times what the average\nteacher makes, and sucks up an enormous amount of revenue.  And 2)\nthe Governor is making a concerted effort to create an \"Education crisis\"\nin order to push for his pet income tax.  Some of the most idiotic\nprograms get funded (like State funds for new art in the county seat)\nwhile schools are closing.  It's not a lack of funds.  It's an\nunwillingness to spend them on what is more appropriate.  Education\nis *the* parental hot-button.  Education is *always* the first to\nbut cut, because it's easier to get people to pay for their children\nthan ugly art.\n\n>|>       The U.S. Constitution is a nuts-and-bolts document.  The Delcaration\n>|>of Independence was the high-brow reasoning.  (There are a couple of other\n>|>examples, though, such as the reasoning for the power to tax, and the\n>|>reasoning for the power to grant permits, both in Article I, Section 8.)\n>\n>The Declaration on independence cam a decade earlier and has not a line\n>of justification for the US constitution. You could argue that it went\n>into the broad concepts but little more. \n\n      It spoke very eloquently on government being based on the\nconsent of the governed.  \n\n>In fact it is little more than\n>a protracted whinge. More to do with the price of tea than the design of \n>a government. It would be a pretty daft idea for a bunch of guys to\n>sit arround designing the structure of the new government while the little\n>matter of the British army remained to be settled. \n\n      They did it anyway.  The Continental Congress had its own set of\nbylaws.  It wasn't quite a government, but a means of making decisions\nhad to be created.  (However low George Washington's opinion of them were.)\n\n>|>       To a certain extend I do believe the veto has become something\n>|>it wasn't intended.  However, I also believe it is inevitable considering\n>|>the Congress' own abuse of their power to make bills say whatever they\n>|>want them to say.  Unlike most people I think we shouldn't be worrying\n>|>about the veto, which is fine, but of the problem in Congress which\n>|>almost necessitates its abuse.\n>\n>The Congress is the most democratic body in the whole system. \n\n      Allow me again to speak heresy against the Holy Democratic Orders.\nSo what?  The government was built with a very non-democratic Presidency\nwith fairly broad powers, including the veto.\n\n>It has not only\n>the fairest system of election but the two year term means that the\n>members have always got a recent mandate.\n\n      Yes, and the Senate was intended to act as a balance to this.\nToo much democracy was intentionally avoided.  It was considered a good\nthing to place non-democratic blocks to impulsive action.\n\n>On the other hand if the period of election were to be made 4 years in\n>antiphase to the Presidential cycle there would be much less dependence\n>on fund raising from special interests than there is at present.\n\n      So long as Congress has something to sell, people will pay for\nit.  Most congressmen rake in more money than they need.\n\n>|>       Why not?  What is inherently wrong with biasing the system\n>|>against action?  Historically governemnt action in the U.S. when\n>|>dealing with issues with a bare minority and a large minority have\n>|>not been successful.  When you're in a position of imposing federal\n>|>power on diverse people, why should the federal government not have to\n>|>got through something more than a bare majority\n>\n>In other words David thinks that the reactionaries should need only 41\n>votes while progressives should need 61.\n\n       No, if the \"progressives\" don't want the \"reactionaries\" to move\nbackward, they get the same benefit.  41% of the states is a *lot* of\npeople.  And historically laws with that sort of minority arent'\nvery effective, especially since it is usually geographically\nconcentrated.\n       When wielding the Federal Big Stick I don't see why they shouldn't\nhave to make a better argument than, \"more people than not,\" agree.\n       \n>Now we know why nobody calls the Republicans democrats.\n\n       I'm not a Republican.  I'm a republican.  :-)\n       \n       And no, I'm neither a Democrat nor a democrat.\n       \n       Now, I've asked several times, and all you've done is answer\n\"It isn't democratic,\" which I knew before I said it.  Why *should*\nit be democratic?  We don't have a true direct democracy, and few\npeople advocate one.  Why, then, is this other modification of\ndemocracy to bias it against action so much worse?\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3342, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: Life and Fall of Wlodowa: Do Not Forget\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 36\n\nIn article <1993Apr05.120108.6578@oneb.almanac.bc.ca> kmcvay@oneb.almanac.bc.ca (Ken Mcvay) writes:\n\n>                       REMEMBER AND DO NOT FORGET\n>                              Sisha Fuchs\n\nNever. I don't know whether anybody formulated and proposed such an \nindex or criteria to determine the magnitude of a genocide as mentioned \nand advised by Toynbee. If one ever does you will easily see the magnitude \nof the crime of genocide committed by the Armenians, by massacring an alien\npopulation under their rule which constituted about 40% of their total\npopulation and they did it only within a time period of a little over\ntwo years in which they enjoyed having full control over this population.\n\nNow I would like to ask you:\n\n  Is there any other genocide in the history of mankind similar to \n  this one?\n\nAnd again I would like to ask you:\n\n  Whether the silent and unmourned martyrdom of these hundreds of thousands\n  of Turks of the Republic of Armenia who were exterminated as a \"Final\n  Solution\" to Turco-Tartar problems in Armenia is similar or not\n  to the martyrdom of six million Jews in Europe as a final solution to\n  Jewish problems?\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3343, "properties": {"category": "sci.space", "text": "From: Jeff.Cook@FtCollinsCO.NCR.COM (Jeff Cook)\nSubject: Re: Vandalizing the sky.\nOrganization: none\nLines: 51\nIn-reply-to: enzo@research.canon.oz.au's message of 20 Apr 93 22:36:55 GMT\n\nIn article <C5t05K.DB6@research.canon.oz.au> enzo@research.canon.oz.au (Enzo Liguori) writes:\n\n>Now, Space Marketing\n>is working with University of Colorado and Livermore engineers on\n>a plan to place a mile-long inflatable billboard in low-earth\n>orbit.  NASA would provide contractual launch services. However,\n>since NASA bases its charge on seriously flawed cost estimates\n>(WN 26 Mar 93) the taxpayers would bear most of the expense. This\n>may look like environmental vandalism, but Mike Lawson, CEO of\n>Space Marketing, told us yesterday that the real purpose of the\n>project is to help the environment! The platform will carry ozone\n>monitors he explained--advertising is just to help defray costs.\n\nHow could this possibly be \"environmental vandalism\" when there is no\n\"environment\" to vandalize up there?\n\nSince the advertising \"is just to help defray costs\", it's certainly no\nsurprise that \"the taxpayers would bear most of the expense\".  Sounds\nlike a good idea to me, since the taxpayers would bear _all_ of the\nexpense if they didn't do the advertising.\n\n>What do you think of this revolting and hideous attempt to vandalize\n>the night sky?\n\nGreat idea, they should have done it long ago.\n\n>What about light pollution in observations? (I read somewhere else that\n>it might even be visible during the day, leave alone at night).\n\nI can't believe that a mile-long billboard would have any significant\neffect on the overall sky brightness.  Venus is visible during the day,\nbut nobody complains about that.  Besides, it's in LEO, so it would only\nbe visible during twilight when the sky is already bright, and even if\nit would have some miniscule impact, it would be only for a short time\nas it goes zipping across the sky.\n\n>Are protesting groups being organized in the States?\n\nNo doubt.  People are always looking for something to protest about, so\nit would be no surprise.\n\n>Really, really depressed.\n\nWell, look on the, er, bright side.  Imagine the looks on the faces of\npeople in primitive tribes out in the middle of nowhere as they look up\nand see a can of Budweiser flying across the sky... :-D\n\n--\n\nJeff Cook                                  Jeff.Cook@FtCollinsCO.NCR.com\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3344, "properties": {"category": "rec.motorcycles", "text": "From: mblock@reed.edu (Matt Block)\nSubject: Re: Fortune-guzzler barred from bars!\nArticle-I.D.: reed.1993Apr16.104158.27890\nOrganization: Reed College, Portland, Oregon\nLines: 37\n\nbclarke@galaxy.gov.bc.ca writes:\n>Saw this in today's newspaper:\n>------------------------------------------------------------------------\n>FORTUNE-GUZZLER BARRED FROM BARS\n>--------------------------------\n>Barnstaple, England/Reuter\n>\n>\tA motorcyclist said to have drunk away a $290,000 insurance payment in\n>less than 10 years was banned Wednesday from every pub in England and Wales.\n>\n>\tDavid Roberts, 29, had been awarded the cash in compensation for\n>losing a leg in a motorcycle accident. He spent virtually all of it on cider, a\n>court in Barnstaple in southwest England was told.\n>\n>\tJudge Malcolm Coterill banned Roberts from all bars in England and\n>Wales for 12 months and put on two years' probation after he started a brawl in\n>a pub.\n\n\tIs there no JUSTICE?!\n\n\tIf I lost my leg when I was 19, and had to give up motorcycling\n(assuming David didn't know that it can be done one-legged,) I too would want\nto get swamped.... maybe even for ten years!  I'll admit, I'd probably prefer\nhomebrew to pubbrew, but still...\n\n\tJudge Coterill is in some serious trouble, I can tell you that.  Any\nchance you can get to him and convince him his ruling was backward, Nick?\n\n\tPerhaps the lad deserved something for starting a brawl (bad form...\nhorribly bad form,) but for getting drunk?  That, I thought, was ones natural\nborn right!  And for spending his own money?  My goodness, who cares what one\ndoes with one's own moolah, even if one spends it recklessly?\n\n\tI'm ashamed of humanity.\n\n\tMatt Block                  &         Koch\n\tDoD#      #007\t\t\t1980 Honda CB650\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3345, "properties": {"category": "comp.os.ms-windows.misc", "text": "Nntp-Posting-Host: 134.58.96.14\nFrom: wimvh@liris.tew.kuleuven.ac.be (Wim Van Holder)\nDistribution: world\nOrganization: K.U.Leuven - Applied Economic Sciences Department\nSubject: Re: WINQVTNET with NDIS on Token Ring ?\nLines: 28\n\nIn article <1993APR21.210954.40516@DATAMARK.CO.NZ>, thomas@datamark.co.nz writes:\n|> In article <1993Apr21.082152@liris.tew.kuleuven.ac.be> wimvh@liris.tew.kuleuven.ac.be (Wim Van Holder) writes:\n|> >Is it possible to use WinQVT/Net on a machine that uses NDIS to connect to a\n|> >Token Ring ? I tried it with older versions (< 3.2) but got an invalid packet\n|> >class error or something the like...\n|>\n|> How are you attempting to do that?\n|>\n|> Are you using the DIS_PKT9 program? This provides a packet driver on\n|> top of the NDIS driver.\n|>\n\nI tried to do so, but people told me that even if I used DISPKT, the packets\nwould still be incompatible. Is this true ?\n\n\n|> --\n|>    Thomas Beagle | thomas@datamark.co.nz        Work: 64 4 233 8186    __o\n|> Technical Writer | thomas@cavebbs.welly.gen.nz  Home: 64 4 499 3832  _-\\<,\n|>   Wellington, NZ |    Hound for hire. Will work for dog biscuits.   (_)/(_)\n\nWim Van Holder\nKatholieke Universiteit Leuven          Tel: ++32 (0)16/28.57.16\nDepartement T.E.W.                      FAX: ++32 (0)16/28.57.99\nDekenstraat 2\nB-3000 Leuven                           E-mail: wimvh@liris.tew.kuleuven.ac.be\nBELGIUM                                         fdbaq03@cc1.kuleuven.ac.be\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3346, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Canadiens - another Stanley Cup???\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 35\n\nIn <rauser.734062534@sfu.ca> rauser@fraser.sfu.ca (Richard John Rauser) writes:\n\n>pereira@CAM.ORG (Dean Pereira) writes:\n\n\n>>\t\tWith the kind of team Montreal has now,  they can take the\n>>cup easily.  The only problem they have right now is that everyone is\n>>trying to steal the show and play alone.  They need some massive teamwork.\n\nThis is known as the Savard syndrome - and we are talking Denis, not Serge.\nNo team will ever win squat with the likes of Denis Savard in their lineup.\n\n>>\tThey are also in a little of a slump because long-time hockey\n>>Montreal Canadiens announcer Claude Mouton died last tuesday and it was\n>>rough on everybody because he has worked with the organization for 21\n>>years.  But I know that is no excuse.  But if the Habs manage to get some\n>>good teamwork and get into the spirit,  they should have no problem\n>>winning in May.\n\nThey could tell Savard to stay home and watch the games on TV.\n\n>   I agree. I also think Roy needs a good kick sometimes...that horrible\n>4-0 loss to the Capitals last week...yeeeech!\n\n>   Here's to Cup #23...this year!\n\nSounds like #12 to me.\n\ncordially, as always, \n\nrm\n\n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3347, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: RUMOUR - Keenan signs with Rangers?\nOrganization: University of Toronto Chemistry Department\nLines: 22\n\nIn article <1993Apr16.171347.784@news.columbia.edu> gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>\n>UPI Clarinet has just relayed a \"scoop\" from the Toronto Sun\n>(or was that Star?  I like the Star myself ...) that Iron Mike\n>Keenan has come to an agreement with the New York Rangers for\n>next season.  Interestingly, this comes the day after the Times\n>Sports had an editorial about how the Rangers need their own\n>Pat Riley ... who cares about what happens after next season?\n>\n\nThe rumour was basically everywhere in Toronto based on reports\nthat Keenan has told both San Jose and Philadelphia that he\nwas no longer interested in pursuing further negotiations with\neither team. \n\nThe Ranger announcement is supposed to happen tomorrow supposedly.\n\nThe Rangers have so many veterans that they had to get a coach\nwith \"weight\" and a proven record...and whom they know Messier respects.\n\nGerald\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3348, "properties": {"category": "comp.windows.x", "text": "From: fwr8bv@fin.af.MIL (Shash Chatterjee)\nSubject: xrolo/SPACRC/SunOS4.1.1/audio\nOrganization: The Internet\nLines: 21\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert%expo.lcs.mit.edu@fin.lcs.mit.edu\n\nCould some one please send me (or tell me where to ftp from) the patches required\n for xrolo so that  I can compile-in the SPARCStation phone-dialing feature?\n\nI am using SunOS  4.1.1, and therefore don't have \"multimedia/libaudio.h\" or \n\"multimedia/audio_device.h\" and associated functions.\n\nJust in case, our mail gateway only accepts msgs < 45Kb.\n\nThanks in advance,\nShash.\n\n\n+-----------------------------------------------------------------------------+\n+ Shash Chatterjee                           EMAIL:  fwr8bv@fin.af.mil        +\n+ EC Software                                PHONE:  (817) 763-1495           +\n+ Lockheed Fort Worth Company                FAX:    (817) 777-2115           +\n+ P.O. Box 748, MZ1719                                                        +\n+ Ft. Worth, TX 76101                                                         +\n+-----------------------------------------------------------------------------+\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3349, "properties": {"category": "alt.atheism", "text": "From: MANDTBACKA@FINABO.ABO.FI (Mats Andtbacka)\nSubject: Re: An Anecdote about Islam\nIn-Reply-To: jaeger@buphy.bu.edu's message of 5 Apr 93 16:49:14 GMT\nOrganization: Unorganized Usenet Postings UnInc.\nX-News-Reader: VMS NEWS 1.24\nLines: 24\n\nIn <114127@bu.edu> jaeger@buphy.bu.edu writes:\n\n[deletia]\n\n> I don't understand the point of this petty sarcasm. It is a basic \n> principle of Islam that if one is born muslim or one says \"I testify\n> that there is no god but God and Mohammad is a prophet of God\" that,\n> so long as one does not explicitly reject Islam by word then one _must_\n> be considered muslim by all muslims. So the phenomenon you're attempting\n> to make into a general rule or psychology is a direct odds with basic\n> Islamic principles. If you want to attack Islam you could do better than\n> than to argue against something that Islam explicitly contradicts.\n\n      In the deletions somewhere, it mentioned something about chopping\noff of hands being a punishment for theft in Saudi Arabia. Assuming this\nis so (I wouldn't know), and assuming it is done by people fitting your\nrequirement for \"muslim\" (which I find highly likely), then would you\nplease try to convince Bobby Mozumder that muslims chop people's hands\noff?\n\n      Come back when you've succeeded.\n\n-- \n  Disclaimer?   \"It's great to be young and insane!\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3350, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Biblical Rape\nOrganization: Technical University Braunschweig, Germany\nLines: 14\n\nIn article <1993Apr05.174537.14962@watson.ibm.com>\nstrom@Watson.Ibm.Com (Rob Strom) writes:\n \n>\n>In article <16BA7F16C.I3150101@dbstu1.rz.tu-bs.de>, I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n>\n>I didn't have time to read the rest of the posting, but\n>I had to respond to this.\n>\n>I am absolutely NOT a \"Messianic Jew\".\n>\n \nAnother mistake. Sorry, I should have read alt.,messianic more carefully.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3351, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: OB-GYN residency\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 30\n\nIn article <1r12bv$55e@terminator.rs.itd.umich.edu> Donald_Mackie@med.umich.edu (Donald Mackie) writes:\n>\n>FMGs who are not citizens are, like all aliens, in a difficult\n>situation. Only citizens get to vote here, so non-citizens are of\n>little or no interest to legislators. Also, the non-citizen may well\n>be in the middle of processing for resident alien status. There is a\n>stron sense that rocking the boat (eg. suing a residency program)\n>will delay the granting of that status, perhaps for ever.\n>\n\nOne should be aware that foreign doctors admitted for training\nare ineligible to apply for resident alien status.  In order\nto get the green card they have to return to their country and\napply at the embassy there.  Of course, many somehow get around\nthis problem.  Often it is by agreeing to practice in a town\nwith a need and then the congressman from that district tacks\na rider onto a bill saying \"Dr. X will be allowed to have permanent\nresidency in the US.\"  A lot of bills in congress have such riders\nattached to them.  Marrying a US citizen is the most common, although\nnow they are even cracking down on that and trying to tell US\ncitizens they must follow their spouse back to the Phillipines, or\nwhereever.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3352, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: disteli@inf.ethz.ch (Andreas Reto Disteli)\nSubject: S3\nNntp-Posting-Host: lillian-gw\nOrganization: Dept. Informatik, Swiss Federal Institute of Technology (ETH), Zurich, CH\nLines: 40\n\n\nRe: Problems with S3-initialization\n\nAs described the manual the following steps must be done for th initialization\nof the S3 card.\n\nInitDisplay;\n\t(*BIOS-Call\n\t\twith AX-Reg = 4F02H\n\t\twith BX-Reg = 105H for 1024 x 768 x 256 resolution\n\t\tInterrupt 10H *)\nUnlock Register Lock 1 (CR38)\n\t(* For access to S3 Register Set *)\nUnlock Register Lock 2 (CR39)\n\t(* For access to Syst. Control and Syst. Extension Register *)\nUnlock Graphic Command Group (CR40)\n\t(* Set Bit 0 to 1 in Syst. Configuration Register *)\nUnlock Advanced Display Functions\n\t(* Set Bit 0 to 1 in Function Control Register *)\n\nAfter these operations the FIFO-stack of the S3 should be empty.\nWhen we watch the status (Graph. Proc. Status), we always get\nthe value 0FH instead of 0H.\nFull would mean 0FFH (8 places occupied), empty would mean 0H\n(0 places occupied).\n\nIt is possible to read this register in two different ways. \nBoth times we get different results.\n\n\n\nOur machine is a 486 DX/2 with EISA bus and a S3 86C805 local bus. \n\n--> any ideas?\n\nAndreas Disteli\nInstitut fuer Computersysteme, ETH Zuerich\nemail: disteli@inf.ethz.ch\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3353, "properties": {"category": "talk.politics.misc", "text": "From: decay@cbnewsj.cb.att.com (dean.kaflowitz)\nSubject: Re: I thought commercial Advertising was Not allowed\nOrganization: AT&T\nDistribution: na\nLines: 254\n\nIn article <C50sKE.3Ft@voder.nsc.com>, matt@galaxy.nsc.com (Matt Freivald x8043) writes:\n> \n> In Article 164905 in talk.politics.misc,decay@cbnewsj.cb.att.com \n> (dean.kaflowitz)\n> \n> >In article <C4rt3t.Ewp@voder.nsc.com>, matt@galaxy.nsc.com \n> >(Matt Freivald x8043) writes:\n> >> \n> >>>    1) Is an unborn child a human being at ANY POINT during pregnency?\n> \n> > >In my opinion, at all points during the pregnancy it is human.\n> > >You'll have to define what you mean by \"human being\" for me to\n> > >answer the question as put.\n> \n> A parallel: Q: \"Is a person of color a human being?\"\n>             A: \"You'll have to define what you mean by `human being'.\"\n\nTo answer your irrelevant question, yes a person of color is human,\nbut I still don't know what you mean by human being and you have\nmerely begged the question without responding.  By trying to inject\nthe notion of race into the discussion, you muddy the waters without\nadding any insight whatever.  The same parallel question could\nbe \"Is a polydactyl person a human being?\"  You still have not\nanswered what you mean by human being.  Please do so.\n\n> >> I would suggest that legal precedent defines a human being (i.e., a person\n> >> whose rights are protected by the Constitution and the law) as someone with \n> >> a functioning brain.\n> >Could you cite some of those precedents for me, or the basis of this\n> >definition?  While the law does allow the removal of extraordinary\n> >means of sustaining life in cases of brain death, this in itself\n> >does not lead to your conclusion of how the law defines a human\n> >being.  However, at least you defined human being in a tenuous\n> >fashion.  That is, a \"person whose rights are protected by the\n> >Constitution and the law.\"\n> \n> >For my answer to your question, I refer you to Roe v Wade and\n> >subsequent Supreme Court decisions, which define to what\n> >extent a fetus is protected by the Constitution and the law.\n> \"Certain judges have concurred that slavery is not a violation of\n> human rights; therefore, it is not.\"\n\nYou won't answer the question and instead drag in irrelevancies.\nIf you want a definition of human being that does not depend on\nthe vagaries of law, but holds solid whatever the law may rule,\nprovide it for me.\n\n> I would suggest that your blind faith would not likely hold up if the\n> shoe were on the other foot.  The \"brain life/death\" paradigm is one that\n> I suggest as one consistent with other legal definitions.  It clearly\n> doesn't matter to you whether an unborn child has any rights or not,\n> however, so the point is lost on you. \n\nMore irrelevancies.  As Larry Margolis pointed out, the law\nhas made special exceptions in order to include fetuses, but does\nnot follow your version of human being.  And as he pointed out,\nbrain death is not a means of determining who has the rights\nof the living, but rather who has died.  There is a significant\ndifference.\n\nWhat I am wondering now is, has your argument so failed you that\nyou feel it necessary to drag out irrelevancies and leave the\nthread you started?  You got answers to your questions when\nyou began baiting me, if you recall, after you had made some\nridiculous remarks about Adrienne Regard and, having been corrected,\nchanged the subject with your remarks about having a discussion\nof substance.  If you really wanted a discussion of substance,\nwhy then do you disregard logic and substance in order to toss\nsilly accussations, e.g. \"It really doesn't matter to you...\"\nIf it matters to you, then why not define human being and seek\nsome substance?  You're not going to convince a logical person\nof the rightness of your position unless you apply some logic\nand show some meaning to your words.\n\n> >> >>         2) If she is, then why does the mother have the right to kill\n> >> >>            her when she is in the womb but not after she has passed\n> >> >>            through the birth canal?\n> >> \n> >> >Because a woman has a right to have any object which threatens her\n> >> >health and is within the confines of her body removed.  The other\n> >> >side of the argument would give rights to the fetus that would not\n> >> >be granted to an adult human.  If, for example, you were occupying\n> >> >the body of another, for whatever reason or through whatever means,\n> >> >the reason and means being irrelevant, that other would be able to\n> >> >remove or have you removed.  If that removal required your demise,\n> >> >I see no reason in law that such a removal could not be effected.\n> >> Rather than examining a hypothetical thought experiment, let us examine\n> >> a real, though rare, situation: siamese twins.  If one siamese twin has\n> >> the other surgically removed, knowing that it will cause death (and\n> >> barring some emergency where they will both die anyway), it is\n> >> murder.\n> >Is it?  Have you any support for this assertion?  Furthermore, your\n> >analogy is completely inapplicable.  Siamese twins have an equal\n> >claim to any body parts they have in common.  Try again.\n> What establishes this \"equal claim\" beyond your assertion?  If it\n> is merely a matter of \"which came first\", cannot one kill the other since\n> they both have equal claim?  What if one has more motor control than\n> the other?  Does that establish a \"superior claim\"?\n\nAs others point out, one is sacrificed for the other depending on\nwhich has the better chance at survival.  Again, your analogy\nfails.  Not precedence, but possession makes a difference here.\nA woman's womb is indisputably her own.  Also, I see you ignore\nmy statement that you would grant rights to a fetus that would\nnot be granted a born human being.  Was that due to its inconvenience?\n\n> >> You see, the right to life IS granted to adult humans in the\n> >> same sense as it should be to the foetus AT SOME POINT PRIOR TO BIRTH.\n> >Are Siamese twins ever separated in the womb?  Or is this\n> >right you assert for Siamese twins, which I don't even think is\n> >true as stated or valid as an analogy, one that exists after birth?\n> >Freivald, your entire argument here is a failure.\n> Interesting way of trying to combine two essentially orthogonal concepts.\n> The point is that it is murder for one siamese twin to kill the other,\n> regardless of their status of physiological dependence or interdependence.\n\nIs it?  Please cite a precedent and the basis of the ruling.\n\n> It would be difficult for one siamese twin to kill the other inside the\n> womb, and even if it were possible I doubt that a case could be made for\n> premeditation or neglegence.  Note the use of the phrase \"it should be\"\n> in my post.\n\nYou simply assert things without any support.  Your analogy is\nnot accurate and your assertions are unsupported.  Try this on\nfor size.  It is not murder for one Siamese twin to kill\nthe other in the womb.  There.  We now have equal arguments.\nBut the idea is illogical.  For one Siamese twin to kill the\nother in the womb would likely be to kill itself as well.  The\nsystems are dependent on each other for life.  I'm still struggling\nto see anything analagous here and failing to do so.\n\n> >> Of course, the situation is NOT a perfect comparison; it may well be that\n> >> one siamese twin deliberately initiates oppression or coersion against\n> >> the other.  This is clearly not the case with an unborn child.\n> >And this last statement from you is a total non sequitur.  The\n> >comparison is far worse than you give it credit for.\n> Are you going to let this assertion stand on its own also, or do you \n> plan on following up with a reasoned argument?\n\nYour argument is from Fantasy Island.  Your comparison is a total\nfailure, as I have demonstrated already, and has no basis in\nreality, neither legally nor medically.  And for you to assert\nthat it is not a perfect comparison because of the impossible,\nthat of coercion or oppression, is ridiculous.  As I said,\nyou give the analogy too little credit for failure.  On the one\nhand you start this by saying you want to take a real, rather than\na hypothetical, situation, then you fly off into Siamese twins\nmurdering one another in the womb or coercing or oppressing each\nother in the womb when the reality of the situation you describe\nin now way matches your version.  As I said before, decisions\nare made regarding which twin lives and dies in situations where\nthey cannot both survive.  And, furthermore, as I have already said,\nthere is a difference between an equal claim to organs and a claim\nthat is unequal.  You seem to be asserting that a fetus has a\nclaim on a woman's womb.  When the fetus is born, what happens to\nits claim?  And by what reason do you assert its claim?\n\n> >> >>         3) If a parent has the right to choose to not take responsibility\n> >> >>            for their own child, why are there laws and penalties against\n> >> >>            child abandonment?\n> >> >This last question is irrelevant and something of a non sequitur.\n> >> >Can you establish some relevance or even some sense for it?\n> >> If at some point an unborn child is a human being, the parents clearly\n> >> have the same responsibilities toward her as any other parents have toward\n> >> their children.\n> >Again, what is the relevance?  You have established no sense of when\n> >that point is, you ignore the significant difference between a fetus\n> >and a born child (the dependence of a born child can be transferred\n> >to another party, while that of a fetus cannot; a born child does\n> >not live within the body of another human being while a fetus does,\n> >thereby representing potential and often actual harm to that\n> >body, as in the case of one of our talk.abortion participants who\n> >suffers from epilepsy and to whom pregnancy represents a significant\n> >health risk, or as in the case of a woman I know, who chose to\n> >continue her pregnancy, but spent her entire pregnancy confined to\n> >a wheelchair and suffering great pain from constriction of some\n> >nerve), and your argument is not an argument against abortion\n> >generally, but at best an argument against abortion at \"some\n> >time during the course of pregnancy.\"\n> Again, a quest for common ground.  Most of the pro-choice people I\n> have spoken to in person (none of them pro-abortion activists) concede\n> that the child has a right to life at some point that supersedes all\n> of the mother's rights except that of her own life.  As is often the\n> case in emotionally charged issues, the activists have a very different\n> outlook from the mainstream.\n\nYou haven't answered the question.  The situations are not analagous.\n\n> The dependence of a born child is not transferred instantaneously; it\n> takes time and effort.  Incidentally, it is the pro-choice side, not\n> me, arguing that the government should make it easy for parents to \n> abandon their children to the State.\n\nAgain you avoid the question.  Dependence can be transferred, and\nit is not as slow as you seem to think.\n\n> As to the anecdotal evidence of real human tragedy, there is ample\n> on both sides.  I would hate to be in the position of the mother in\n> NYC who has to tell her daughter that she lost her arm in a botched\n> abortion attempt.\n\nYes, and I'd hate to have been the one to tell Dr Gunn's children that\nhe was murdered by a religious, \"pro-life\" fanatic.  Please do\ntry to stay relevant.\n\n> >The kindest thing I can say about these responses of yours is\n> >that I can see you are trying to say something, but the result\n> >is a mish-mash of negligible value.\n> Sez you.\n\nClever comeback.  I congratulate you on the readiness of your wit.\n> \n> In Article 164906 in talk.politics.misc,decay@cbnewsj.cb.att.com \n> (dean.kaflowitz) writes:\n> \n> [Ground covered in another post deleted]\n> \n> >> >If at some point an unborn child is a human being, the parents clearly\n> >> >have the same responsibilities toward her as any other parents have toward\n> >> >their children.\n> >> \n> >> And no parent can be forced to supply bodily resources toward their children,\n> >> even if necessary to save the child's life.\n> \n> >As was this.  To make it painfully clear, you are not\n> >obligated to donate a kidney to save your child's life\n> >under law.\n> \n> Again, the confusion between ACTION {deliberately taking away the life\n> of a child} and INACTION {refusing to run out in front of a bus to save\n> a child}.\n\nWhat happened to that claim to bodily organs where life is at stake?\nWhy does this parent now have an indisputable right to his or her\nkidney when previously the parent did not, by your standards?  What\nis different about the two situations?  I see I have to spell this\nout for you since the meaning was too subtle for you.  In the one\ncase you do not recognize a difference between a fetus and a born\nchild (you ask why a born child cannot be abandoned but a fetus\ncan), and in this case you recognize a significant difference\nbetween the fetus and born child where the lives of the two are at\nstake.  You can't have it both ways.  Action and inaction are\nirrelevant to the principle, but you are wrong about the inaction\nanyway.  Ask any of the numerous women who post here and have\nborne children how inactive their pregnancy was.  To have a\nhealthy, live child, a woman does more than hang out, eat as\nshe chooses, plays volleyball like she always did, drinks at\nparties with her friends, etc.  She behaves very differently, and\nthe provision of her resources to a fetus may be no more voluntary\nthan the beating of her heart, but it is far from inactive.\n\nDean Kaflowitz\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3354, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: thomas.d.fellrath.1@nd.edu@nd.edu\nSubject: Re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nKeywords: printer\nOrganization: University of Notre Dame\nLines: 64\n\nIn article <1993Apr18.041741.6051@CSD-NewsHost.Stanford.EDU> kayman@csd-d-3.Stanford.EDU (Robert Kayman) writes:\n>From: kayman@csd-d-3.Stanford.EDU (Robert Kayman)\n>Subject: Canon BJ200 (BubbleJet) and HP DeskJet 500...\n>Keywords: printer\n>Date: 18 Apr 93 04:17:41 GMT\n\n\n>Hello fellow 'netters.\n\n>I am asking for your collected wisdom to help me decide which printer I\n>should purchase, the Canon BJ200 (BubbleJet) vs. the HP DeskJet 500.  I\n>thought, rather than trust the salesperson, I would benefit more from\n>relying on those who use these printers daily and use them to their fullest\n>potential.  And, I figure all of you will know their benefits and pitfalls\n>better than any salesperson.\n\n>Now, I would greatly appreciate any information you could render on the 360\n>dpi of the Canon BubbleJet vs. the Hewlett-Packard DeskJet 500 (300 dpi).\n>Which is faster?  Is there a noticeable print quality difference,\n>particularly in graphics?  Which will handle large documents better (75\n>pages or more) -- any personal experience on either will be appreciated\n>here?  Which works better under Windows 3.1 (any driver problems, etc)?\n>Cost of memory, font packages, toner cartridges, etc?  Basically, your\n>personal experiences with either of these machines is highly desirable,\n>both good and bad.\n\n>Advance kudos and thanks for all your input.  E-mail or news posting is\n>readily acceptable, but e-mail is encouraged (limits bandwidth).\n\n>--\n>Sincerely,\n\n>Robert Kayman   ----    kayman@cs.stanford.edu  -or-  cpa@cs.stanford.edu\n\n>\"In theory, theory and practice are the same.  In practice, they are not.\"\n>\"You mean you want the revised revision of the original revised revision\n> revised?!?!\"\n\n\nAll right.  Not saying I know any more than the average salesguy, I'll give \nyour question a shot. \n\nThe key issue that I bought my BJ-200 on was ink drying speed.  You really \nhave to try awful hard to get the BJ-200 ink to smear.  The HP DeskJets need \n10-15 seconds to completely dry.  In both cases, however, do not get your \npages wet.  Unlike laser printers, the material on your pages is INK, not \ntoner.  But that should go without saying.\n\nMy PC has very little memory (only 2Meg RAM), so the BJ-200 takes a little \nwhile to print ----- but every application I use takes a while to run.  Once \nthe computer is solely printing, it purs like a kitten and puts pages out \nevery 15-30 seconds, depending on how detailed your graphics are.  \n\nThe BJ-200 can do Windows soft fonts.  I'm assuming that the DeskJet can, or \nHP wouldn't sell many......\n\nSize is another factor.  The BJ-200 is much smaller, but the HP is built \nlike a tank.  I bet the BJ-200 would get damaged first.\n\nFinally, the print quality.  I LOVE the BJ-200's resolution.  It looks like \na good laser quality print.  The HP's I've used.....they look like ink.  Not \nas impressive.  \n\nSo, I chose the Canon.  Any other opinions?\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3355, "properties": {"category": "rec.sport.hockey", "text": "From: Robert Angelo Pleshar <rp16+@andrew.cmu.edu>\nSubject: Wirtz is a weenie\nOrganization: University Libraries - E&S Library, Carnegie Mellon, Pittsburgh, PA\nLines: 12\nNNTP-Posting-Host: po5.andrew.cmu.edu\n\nSo what's the deal with Bill Wirtz? Apparently, the Blackhawks - St.\nLouis game was a standing room only sell out as usual, but the Hawks\nreported the attendace as 16,199. Gee, I wonder if Wirtz is planning to\nuse this as justification for continuing to keep home games off of TV?\nWhat a schmuck.\n\nIn other TV news, the Penguins announced yesterday that they will have 3\nfewer broadcast TV games, and will have 22(!) games on some sort of\nsubscription / pay-per-view system. Yuck.\n\nRalph\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3356, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mark.whalley@uk.co.gec-mrc (Mark Whalley)\nSubject: Windows Backgrounds\nReply-To: mark.whalley@uk.co.gec-mrc (Mark Whalley)\nOrganization: GEC-Marconi Research Centre, Great Baddow, Essex\nLines: 21\n\nHelp, I'm bored with the current Windows backgrounds we have here and am \nlooking for some nifty pictures to use instead.  I've seen from previous posts\nthat many sites exist that store pictures - available through anonymous ftp.\nExcept that I can't ftp to remote sites from my machine, what I CAN do is use\n'ftpmail' - mail a list of commands to a server and receive a mail of files, \nand/or data back.\nDoes anyone know of sites, with Windows compatible pictures, that can be \naccessed in such a way??? \nIf you do would you please post them.\nTIA\n   Mark.\n\nPS. Maybe this would make a useful FAQ\n\n|--------------------------------------|--------------------------------------|\n| mark.whalley@gec-mrc.co.uk           | 'Only in silence the word,           |\n| Phone  +44 245 473331 Exn. 3114      |  Only in darkness light,             |\n| The views expressed here are mine,   |  Only in dying life,                 |\n| all mine, and nothing whatsoever to  |  Bright the hawk's flight on the     |\n| do with GEC-MRC.                     |   empty sky'  - Ursula K. Le Guin    |\n|--------------------------------------|--------------------------------------|\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3357, "properties": {"category": "comp.sys.mac.hardware", "text": "From: seanmcd@ac.dal.ca\nSubject: Re: SE rom\nOrganization: Dalhousie University, Halifax, Nova Scotia, Canada\nLines: 23\n\nIn article <wgwC5pDL4.43y@netcom.com>, wgw@netcom.com (William G. Wright) writes:\n> \n> \tAnyway, I was hoping someone knowledgeable\n> about Mac internals could set me straight: is it simply\n> impossible for a mac SE to print grayscale, or could\n> someone armed with enough info and a little pro-\n> gramming experience cook something up that would\n> supplement the ROM's capabilities?\n> \tAlso, how does one know if one's mac can\n> support the grayscale and photograde that the Select 300\n> is supposedly capable of? ( Short of buying the printer\n> and trying it out like I did)\n> \tThanks for your help.\n>  \n> Bill Wright\n> wgw@netcom.com\n> \t\nTo use the grayscale features, I believe you need a Mac equipped\nwith colour quickdraw. I was told this somewhere or other, but it's\nnot mentioned in \"Apple Facts\" (guide for apple sellers), in the\npress release or in the technical specs.\n\nSean \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3358, "properties": {"category": "talk.politics.misc", "text": "Subject: Re: CBS NY Times Poll on Health Care Alternatives\nFrom: jwh@citi.umich.edu (Jim Howe)\nReply-To: jwh@citi.umich.edu\nOrganization: IFS Project, University of Michigan\nNNTP-Posting-Host: tarkus.citi.umich.edu\nLines: 31\n\nIn article <1993Apr6.175543.19590@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes:\n|> Thought others on the net might be interested in a selection of findings\n|> from the New York Times/CBS News poll on national health care.  I'll leave\n|> it to Doug Fierro to enter the entire article if he chooses.  What follows\n|> is a selection of the findings.  (Paraphrased without permission.  Any\n|> errors are mine, not the Times.  The NY Times doesn't make mistakes.)\n|> \n|> [poll results deleted]\n\nThe economic and political ignorance of most Americans can be truly scary.\nPrice controls and government intervention.  The surest route to\ndisaster.  It's amazing, people never seem to learn from history (or\ncommon sense).  Price controls do not, and cannot work.  I would have\nthought our last experiment in the 70's would have been enough to \ndampen the belief that price controls can actually work.  As for\ngovernment intervention, people never seem to get the irony of what\nthe are saying.  We are told that entitlements are the biggest portion\nof the budget and they must be 'controlled'.  We are presented with\nhorror stories of waste and fraud in almost all government agencies.\nWe are shown stories about the miserable treatment our veterans get\nin our government run hospitals.  We are just now seeing stories about\nhow Social Security isn't going to cut it in the future (as if that\nshould come as any surprise).  And yet, people choose to ignore all\nof that and believe in the fairy tale of the government coming to\nthe rescue.  Simply amazing.\n\n\n\nJames W. Howe                  internet: jwh@citi.umich.edu\nUniversity of Michigan             uucp: uunet!mailrus!citi.umich.edu!jwh\nAnn Arbor, MI   48103-4943         \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3359, "properties": {"category": "sci.med", "text": "From: levin@bbn.com (Joel B Levin)\nSubject: Re: Selective Placebo\nLines: 19\nNNTP-Posting-Host: fred.bbn.com\n\nron.roth@rose.com (ron roth) writes:\n\n|JB>  romdas@uclink.berkeley.edu (Ella I Baff) writes:\n|JB>  \n|JB>    Ron Roth recommends: \"Once you have your hypoglycemia CONFIRMED through the\n|JB>                          proper channels, you might consider the following:...\"\n|JB>                          [diet omitted]\n|JB>  \n|JB>  1) Ron...what do YOU consider to be \"proper channels\"...this sounds suspiciously\n\n|  I'm glad it caught your eye. That's the purpose of this forum to\n| educate those, eager to learn, about the facts of life. That phrase\n| is used to bridle the frenzy of all the would-be respondents, who\n| otherwise would feel being left out as the proper authorities to be\n| consulted on that topic. In short, it means absolutely nothing.\n\nAn apt description of the content of just about all ronroth's posts to\ndate.  At least there's entertainment value (though it is\ndiminishing).\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.153+0000", "event": "documents", "entityId": 3360, "properties": {"category": "rec.motorcycles", "text": "From: SRUHL@MECHANICAL.watstar.uwaterloo.ca (Stefan Ruhl)\nSubject: crappy Honda CX650\nLines: 24\nOrganization: University of Waterloo\n\nHi, I just have a small question about my bike. \nBeing a fairly experienced BMW and MZ-Mechanic, I just don't know what to \nthink about my Honda. \nShe was using too much oil for the last 5000 km (on my trip to Daytona bike \nweek this spring), and all of a sudden, she trailed smoke like hell and \nwas running only on one cylinder. \nI towed the bike home and took it apart, but everything looks in perfect \nworking order. No cracks in the heads or pistons, the cylinder walls look \nvery clean, and the wear of pistons and cylinders is not measurable. All \nstill within factory specs. The only thing I could find, however, was a \nslightly bigger ring gap on the right cylinder (the one with the problem), \nbut it is still way below the wear-limit given in the Clymer-manual for \nthis bike. \nAny syggestions??? What else could cause my problem??? Do I have to hone \nthe cylinder walls (make them a little rougher in a criss-cross-pattern) in \norder to get better breaking in of my new rings??? Won't that increase the \nwear of my pistons??\nPlease send comments to \n\tsruhl@mechanical.watstar.uwaterloo.ca\nThanks in advance. Stef. \n------------------------------------------------------------------------------ \nStefan Ruhl \ngerman exchange student. \nDon't poke into my privacy ! \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3361, "properties": {"category": "rec.sport.baseball", "text": "From: rudy@netcom.com (Rudy Wade)\nSubject: Re: Cubs game of April 6th\nArticle-I.D.: netcom.rudyC53145.IGD\nOrganization: Home of the Brave\nLines: 7\n\nIn article <1993Apr6.203330.4974@oucsace.cs.ohiou.edu> jclark@oucsace.cs.ohiou.edu (J. Michael Clark) writes:\n>Otis Nixion lined a single to left with two outs breaking up the no hitter.\n>Cubs win 1-0 on a 1 hitter by Jose Guzman.\n\nThat's might be what it takes to beat the Braves this year.  \n\nLook at Smoltz's pitching line: 6 hits, 2 walks, 1 ER, 7 SO and a loss.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3362, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: robink@hparc0.aus.hp.com (Robin Kenny)\nSubject: Re: CMOS memory loss..Any idea why?\nOrganization: HP Australasian Response Centre (Melbourne)\nX-Newsreader: TIN [version 1.1 PL8.5]\nLines: 14\n\nHow is the CMOS backed-up? Dry cell batteries or ni-cad cell?\n\nYour batteries may be dead.\n\nmwallack@kean.ucs.mun.ca (mwallack@kean.ucs.mun.ca) wrote:\n: A friend's computer recently failed to recognize its hard drive.\n: On examination it was discovered that the CMOS had lost all data.\n: No other problems were discovered.  When the CMOS was restored, \n: everything appeared to work as before.  This all happened after\n: a long period of stable operation.  The most recent change had \n: been the addition of a second hard drive as a slave.  Qemm had\n: been installed along with DeskView for quite a while.  Any ideas?\n: The computer is a 386dx with 8megs of ram, an ATI Wonder xl card, and is\n: about a year and a half old.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3363, "properties": {"category": "rec.autos", "text": "From: tspila@uxa.cso.uiuc.edu (Tim Spila {Romulan})\nSubject: Re: Auto air conditioning without Freon\nDistribution: usa\nOrganization: University of Illinois at Urbana\nLines: 9\n\nIn article <1993Apr21.034751.23512@ntuix.ntu.ac.sg> mgqlu@ntuix.ntu.ac.sg (Max Lu) writes:\n>We are working on gas-solid adsorption air-con system for auto applications.\n>In this kind of system, the energy for regenerating the adsorbent is from \n>the exhaust gas.  Anyone interested in this mail email me or follow up this\n>thread, we may have a discussion on prospects of this technology.\n\nOk, I'll bite.  How is this supposed to work?\n\nTim.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3364, "properties": {"category": "sci.crypt", "text": "From: wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Your typical phone company involved in your typical daydream\nDistribution: na\nIn-Reply-To: brad@clarinet.com's message of 17 Apr 93 06:13:26 GMT\n\t<1993Apr17.061326.16130@clarinet.com>\nNntp-Posting-Host: rainier.ho.att.com\nLines: 21\n\nIn article <1993Apr17.061326.16130@clarinet.com> brad@clarinet.com (Brad Templeton) writes:\n   Once it hits land you can record it if you have telco access.  The\n   telco isn't supposed to give that without a warrant.  That's the rule today.\n\n   But even so, the evidence would not be admissible, I think, unless the\n   judge so ordered.  I think that even interception of the crypttext\n   without a warrant would be illegal.   Cops can't record today's plain\n   cellular calls and then ask a judge, \"Hey, can we have permission to\n   listen to those tapes?\" can they?\n\nHow long do you think it will be before it becomes legal for the\npolice to record encrypted conversations \"It's not violating your\nprivacy because we can't read the encryption without a warrant\", with the usual\ngood-faith exception if they accidentally record a non-encrypted conversation.\n\nBesides, it's covered by the Drug Exception to the Fourth Amendment...\n--\n#\t\t\t\tPray for peace;      Bill\n# Bill Stewart 1-908-949-0705 wcs@anchor.att.com AT&T Bell Labs 4M312 Holmdel NJ\n#\t              No, I'm *from* New Jersey, I only *work* in cyberspace....\n# White House Commect Line 1-202-456-1111  fax 1-202-456-2461\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3365, "properties": {"category": "talk.politics.mideast", "text": "From: maler@vercors.imag.fr (Oded Maler)\nSubject: Re: Binyamin Netanyahu on CNN tonight.\nNntp-Posting-Host: pelvoux\nOrganization: IMAG, University of Grenoble, France\nLines: 16\n\nI have not seen but I guess would not liked it - to me he \nrepresents the worst of both American and Israeli politics\n- but this is a matter of taste.\n\nAs for the famous confession, it is currently believed (at\nleast by some people) that all this adultry affair was just\ninvented by him in order to impress the Likkud voters (and poor\njealous Hamazah) and appear as a \"real\" man. \n\n\n\n-- \n===============================================================\nOded Maler, LGI-IMAG, Bat D, B.P. 53x, 38041 Grenoble, France\nPhone:  76635846     Fax: 76446675      e-mail: maler@imag.fr\n===============================================================\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3366, "properties": {"category": "sci.crypt", "text": "From: res@colnet.cmhnet.org (Rob Stampfli)\nSubject: Re: Fifth Amendment and Passwords\nOrganization: Little to None\nLines: 20\n\n>>I am postive someone will correct me if I am wrong, but doesn't the Fifth\n>>also cover not being forced to do actions that are self-incriminating?\n>\n>[From Mike Godwin <mnemonic@eff.org>, posted with permission - Carl]\n>\n>Sadly, it does not. Suspects can be compelled to give handwriting and\n>voice exemplars, and to take blood and DNA tests.\n\nI am sure that Mike is correct on this point.  I am also pretty sure that\nadministering \"truth serum\" would be ruled a violation of your right\nnot to incriminate yourself.  But, what is the salient difference?\nBoth drawing blood and injecting \"truth serum\" incapacitate you for\na while, but do no permanent damage.  Is it simply that we have come to\nview one as acceptable, while the other is viewed as a fundamental\nviolation of one's rights?  If this is the case, how do we expand the\nprotections of the 5th amendment to incorporate new technologies without\nthe results being a hodgepodge of different judges personal opinions?\n-- \nRob Stampfli  rob@colnet.cmhnet.org      The neat thing about standards:\n614-864-9377  HAM RADIO: kd8wk@n8jyv.oh  There are so many to choose from.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3367, "properties": {"category": "soc.religion.christian", "text": "From: moy@acf2.nyu.edu (moy)\nSubject: Apology\nOrganization: New York University\nLines: 3\n\nI responded to a post last week and it carried somewhat of a hostile\ntone for which I am apologizing for. It is not my intent to  create\ncontriversy or to piss people  off. To those who I offend, I'm sorry\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3368, "properties": {"category": "comp.windows.x", "text": "From: jeremy@wildcat.npa.uiuc.edu (Jeremy Payne)\nSubject: Re: Xt intrinsics: slow popups\nOrganization: Neuronal Pattern Analysis, University of Illinois\nLines: 49\n\nIn article <735516045.1507@minster.york.ac.uk>, cjhs@minster.york.ac.uk writes:\n|> cjhs@minster.york.ac.uk wrote:\n|> : Help: I am running some sample problems from O'Reilly volume 4,\n|> : Xt Intrisics Programming Manual, chapter 3. popup\n|> : dialog boxes and so on.\n|> : \n|> : In example 3.5, page 76 : \"Creating a pop-up dialog box\"\n|> : \n|> : The application creates window with a button \"Quit\" and \"Press me\".\n|> : The button \"Press me\" pops up a dialog box. The strange feature of\n|> : this program is that it always pops up the dialog box much faster the\n|> : first time. If I try to pop it up a 2nd time (3rd, 4th .... time), \n|> : it is *much* slower.\n|> : \n|> : Has anyone any experience with these sample programs, or why I get\n|> : this behaviour - fast response time for the first time but slow response\n|> : time from 2nd time onwards ?\n|> : Anyone can give me some ideas on how to program popups so that each time\n|> : they popup in reasonable fast response time ?\n|> : \n|> : Thankyou - Shirley\n|> \n|> Thanks to those who responded.\n|> \n|> We were able to prevent this behaviour by two methods:\n|> \n|> 1) running twm rather than olwm\n|> 2) keeping olwm, but putting \"wmTimeout: 10\" in the resources\n|> \n|> It has been suggested that the difficuty was something to do with the\n|> window manager positioning the popup window. Any guru who can analyse\n|> what is going on from this information, please post and let us know.\n|> \n|> Thanks -- Shirley\n\nI ran in to this problem I while ago, and from what I remember you should use\nXtTranslateCoordinates etc. after realizing the main widget to calculate\nthe location of the popup, then use something like XtVaSetValues on the\npopup widgets before ever using them.  Calling SetValues repeatedly (e.g.\nevery time something pops up) seems to be what slows you down.  I never\ndelved deep enough to figure out exactly why though...\n\n---------------------------\nJeremy Payne\nUIUC Neuroscience program /\nCollege of Medicine\njrpayne@uiuc.edu\n(217)244-4478\n---------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3369, "properties": {"category": "comp.windows.x", "text": "From: bill@west.msi.com (Bill Poitras)\nSubject: Re: Regression Testing and X\nReply-To: bill@msi.com\nOrganization: Molecular Simulations, Inc.\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 17\n\nMegan Grenenger (megan@cs.uq.oz.au) wrote:\n: I'd appreciate any feedback on capture/playback tools for use with X clients.\n\n: Any comparisons/comments on regression testing tools would be great -\n: particularly XTM, XRunner, Autotester, and SRI's CAPBAK, SMARTS and EXDIFF.\n\nHow about starting where I could find ANY of these.  For the commercial\nones, at least a phone number would be appreciated.\n\n--\n+-------------------+----------------------------+------------------------+\n| Bill Poitras      | Molecular Simulations Inc. | Tel (617)229-9800      |\n| bill@msi.com      | Burlington, MA 01803-5297  | FAX (617)229-9899      |\n+-------------------+----------------------------+------------------------+\n|FTP Mail           |mail ftpmail@decwrl.dec.com | Offers:ftp via email   |\n|                   |Subject:<CR>help<CR>quit    |                        |\n+-------------------------------------------------------------------------+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3370, "properties": {"category": "sci.crypt", "text": "From: Graham Toal <gtoal@gtoal.com>\nSubject: Re: The battle is joined\nOriginator: gtoal@pizzabox.demon.co.uk\nNntp-Posting-Host: pizzabox.demon.co.uk\nReply-To: Graham Toal <gtoal@gtoal.com>\nOrganization: Cuddlehogs Anonymous\nLines: 27\n\nIn article <C5nn9I.D5q@news.claremont.edu> ebrandt@jarthur.claremont.edu (Eli Brandt) writes:\n:In article <1993Apr16.181040.9381@qualcomm.com> karn@servo.qualcomm.com (Phil Karn) writes:\n:>It looks like Dorothy Denning's wrong-headed ideas have gotten to the\n:>Administration even sooner than we feared.\n:\n:I'd lay long odds that it was the other way around.  Clinton didn't\n:just pull this plan out of any bodily orifices; the NSA has to have\n:been working on it for years.  While it's possible that Denning (and\n:other prominent people) just happened to start arguing for such a\n:system, it seems more likely that there was a suggestion involved.\n:If this guess is wrong, I apologize.\n\nI'm sure Dorothy Denning is an honest person and wouldn't lie to us.\nSimply think up a question to ask her about her involvement, but be\nvery careful to phrase it in such a way that there can be no Jesuitical\nevasion or a true but wholly misleading answer.\n\nIn this country, MI5 are *experts* at answering these questions; for\ninstance there was a British journalist (Jonathon Moyle) killed in South\nAmerica a couple of years ago.  Parliament asked \"Was he an MI5 employee\"\n\"No.\" - turns out afterwards he wasn't paid, therefore wasn't an employee.\nThey could equally have said he wasn't an agent - he went abroad on his\nprivate business with no brief from MI5, but was interviewed and debriefed\nat length only *on his return*.\n\nG\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3371, "properties": {"category": "rec.autos", "text": "From: cs012055@cs.brown.edu (Hok-Chung Tsang)\nSubject: Re: Saturn's Pricing Policy\nArticle-I.D.: cs.1993Apr5.230808.581\nOrganization: Brown Computer Science Dept.\nLines: 51\n\nIn article <C4vIr5.L3r@shuksan.ds.boeing.com>, fredd@shuksan (Fred Dickey) writes:\n|> CarolinaFan@uiuc (cka52397@uxa.cso.uiuc.edu) wrote:\n|> : \tI have been active in defending Saturn lately on the net and would\n|> : like to state my full opinion on the subject, rather than just reply to others'\n|> : points.\n|> : \t\n|> : \tThe biggest problem some people seem to be having is that Saturn\n|> : Dealers make ~$2K on a car.  I think most will agree with me that the car is\n|> : comparably priced with its competitors, that is, they aren't overpriced \n|> : compared to most cars in their class.  I don't understand the point of \n|> : arguing over whether the dealer makes the $2K or not?  \n|> \n|> I have never understood what the big deal over dealer profits is either.\n|> The only thing that I can figure out is that people believe that if\n|> they minimize the dealer profit they will minimize their total out-of-pocket\n|> expenses for the car. While this may be true in some cases, I do not\n|> believe that it is generally true. I bought a Saturn SL in January of '92.\n|> AT THAT TIME, based on studying car prices, I decided that there was\n|> no comparable car that was priced as cheaply as the Saturn. Sure, maybe I\n|> could have talked the price for some other car to the Saturn price, but\n|> my out-of-pocket expenses wouldn't have been any different. What's important\n|> to me is how much money I have left after I buy the car. REDUCING DEALER PROFIT\n|> IS NOT THE SAME THING AS SAVING MONEY! Show me how reducing dealer profit\n|> saves me money, and I'll believe that it's important. My experience has\n|> been that reducing dealer profit does not necessarily save me money.\n|> \n|> Fred\n\n\nSay, you bought your Saturn at $13k, with a dealer profit of $2k.\nIf the dealer profit is $1000, then you would only be paying $12k for\nthe same car.  So isn't that saving money?\n\nMoreover, if Saturn really does reduce the dealer profit margin by $1000, \nthen their cars will be even better deals.  Say, if the price of a Saturn was\nalready $1000 below market average for the class of cars, then after they\nreduce the dealer profit, it would be $2000 below market average.  It will:\n\n1) Attract even more people to buy Saturns because it would SAVE THEM MONEY.\n \n2) Force the competitors to lower their prices to survive.\n\nNow, not only will Saturn owners benefit from a lower dealer profit, even \nthe buyers for other cars will pay less.\n\nIsn't that saving money?\n\n\n\n$0.02,\ndoug.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3372, "properties": {"category": "talk.politics.mideast", "text": "From: stssdxb@st.unocal.com (Dorin Baru)\nSubject: Re: was:Go Hezbollah!\nOrganization: Unocal Corporation\nLines: 35\n\n\n(Brad Hernlem writes:\n\n\n>Well, you should have noted that I was cheering an attack on an Israeli \n>patrol INSIDE Lebanese territory while I was condemning the \"retaliatory\"\n>shelling of Lebanese villages by Israeli and Israeli-backed forces. My \"team\",\n>you see, was \"playing fair\" while the opposing team was rearranging the\n>faces of the spectators in my team's viewing stands, so to speak. \n\n>I think that you should try to find more sources of news about what goes on\n>in Lebanon and try to see through the propaganda. There are no a priori\n>black and white hats but one sure wonders how the IDF can bombard villages in \n>retaliation to pin-point attacks on its soldiers in Lebanon and then call the\n>Lebanese terrorists.\n\nIf the attack was justified or not is at least debatable. But this is not the\nissue. The issue is that you were cheering DEATH. Read again your original\narticle. You find Israeli government responsible for those dead soldiers, that's\na reasonable (debatable) point, but feel satisfaction from dead bodies is \nNOT REASONABLE  by any standards. No matter how you try to justify it.\nI may understand your frustration against israeli occupation in S Lebanon.\nBut no matter what you say, I can not understand your satisfaction for dead\nbodies.\n\nI have a question for you. Let's assume a bosnian village, inhabited by serbs\nuntill a few (10-20) years ago, and later taken over by bosnian muslims (the means\nare not very peaceful). Now, do you enjoy serbs coming and killing all (armed)\nbosnian muslims ? I would not enjoy, but I would not enjoy ANY dead bodies - \nisraelis, lebanese or bosnians.\n\n\nDorin\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3373, "properties": {"category": "soc.religion.christian", "text": "From: fernandeza@merrimack.edu\nSubject: Re: The arrogance of Christians\nOrganization: Merrimack College, No. Andover, MA, USA\nLines: 12\n\nIn article <Apr.19.05.11.41.1993.29112@athos.rutgers.edu>, aa888@freenet.carleton.ca (Mark Baker) writes:\n\n> I am asking you to believe in things not visible. I don't know if this is\n> believeing blindly or not. .... If you decide in advance that your reason \n> will act only on the evidence of the five physical senses, then you cut\n> reason off from any possibility of reaching a conclusion outside the\n> physical sphere\n\nSomeone said:\n\t\"Thinking if I could see, I would believe. Then someone said\n\n\tBELIEVE\t\tAND \tYOU\tWILL\tSEE!!\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3374, "properties": {"category": "rec.autos", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: Re: LH Workmanship\nNntp-Posting-Host: wind.bellcore.com\nOrganization: Bellcore\nLines: 28\n\nIn article <1ql178INN51q@tamsun.tamu.edu> dlb5404@tamuts.tamu.edu (Daryl Biberdorf) writes:\n>In article <1993Apr15.203750.25764@walter.bellcore.com> jchen@ctt.bellcore.com writes:\n>>I just visited the NY Auto Show, and saw two LH cars on the floor: Eagle \n>>Vision and Dodge Intrepid. \n>>at a competitive price.  ...\n>>\n>>Unfortunately, the workmanship is quite disappointing. On BOTH cars,\n>>the rubber seals around the window and door fell off. It turns out\n>>the seals are just big grooved rubber band. It goes on just by pressing\n>\n>\n>\"Through a single data point, you can draw any line you want.\"\n>-- Dr. S. Bart Childs, Professor, Texas A&M Dept. of Computer Science\n>\nWrong. I got two points, which were the 100% sample space on the show\nfloor. By the previous quote, I guess I may drow a determinstic line?\n>\n>Both my pastor's late model Corolla and my father's 1987 Stanza\n>have demonstrated the \"falling door seals\" problem.\n>\nAs unfair as it may seem, the difference between Chrysler and Toyota is\nthat Chrysler needs to prove that it can build quality cars. Toyota can\nafford make a few small mistakes without hurting the image.\n\nAfter all, door seal failing on a 6-year old Stanza is not comparable to \nthe same problem on a brand new Intreprid.\n\nJason Chen\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3375, "properties": {"category": "talk.politics.mideast", "text": "X-Mailer: TMail version 1.15R\nFrom: \"D. C. Sessions\" <dcs@witsend.tnet.com>\nOrganization: Nobody but me -- really\nSubject: Rules of Engagement (was: 18 Israelis murdered in March\nDistribution: world\nLines: 77\n\nIn <1993Apr8.212737.19245@thunder.mcrcim.mcgill.edu>, hasan@McRCIM.McGill.EDU wrote:\n# \n# In article <1993Apr8.143232@frej.teknikum.uu.se>, flax@frej.teknikum.uu.se (Jonas Flygare) writes:\n# |> In article <1993Apr6.150829.6425@thunder.mcrcim.mcgill.edu>, hasan@McRCIM.McGill.EDU  writes:\n# |> |> In article <FLAX.93Apr6125933@frej.teknikum.uu.se>, flax@frej.teknikum.uu.se (Jonas Flygare) writes:\n# |> \n# |> |> |>    First, my above statement doesnot say that \"the existence of israeli citizens\n# |> |> |>    in the WB revoke their right of life\" but it says \"the israeli occupation\n# |> |> |>    of the WB revoke the right of life for some/most its citizens - basically\n# |> |> |>    revokes the right of for its military men\". Clearly, occupation is an\n# |> |> |>    undeclared war; during war, attacks against military targets are fully legitimate. \n# |> \n# |> I'd like you to tell me, in your own words who the military are, wrt Israel then.\n# |> In uniform, or not? On duty, or off-duty? Soldier to be, or not?\n# |> (That is, since it's compulsory one might regard any Israeli as a\n# |> legit target using that definition)\n# \n# in uniform or not ? doesnot make a difference if the person is in army.\n# On duty, or off-duty? doesnot matter if the army man was on duty or on a\n# vacation week.\n# Soldier to be, or not? sure i meant only military men.\n\n  Just trying to get this clear, so please bear with me.  As far as\n  I can tell, you're proposing the following rules of engagement\n  between Israel and the Palestinean resistance.  Please feel\n  revise this preliminary draft as necessary:\n\n  1) Israeli military personnel are fair game at any time, in uniform\n     or out, on duty or off.  In practice, since any male or female\n     Israeli of military age (18-?) may be off-duty military, all but\n     young children are acceptable targets.  Since the existence of\n     Israel constitutes indication of hostile intent, no further\n     provocation is required.\n\n  2) To avoid inpermissable violations of the rights of non-combatant\n     Palestineans, Israeli forces must not engage Palestineans\n     without positive identification as military personnel, clear\n     indication of aggressive intent, and a clear field of fire.\n\n    a) Positive identification may be assured by either checking for\n       Palestinean military uniform, by posession of exclusively\n       military armament (ie, T78 MBTs or MiG-29 aircraft), or\n       self-identification (either verbal or documentary).  Note\n       that dual-use military/civilian weaponry such as hand grenades,\n       AK-47 rifles, and RPG launchers do not constitute positive\n       military identification and require closer inspection such\n       as document checks.\n\n    b) Aggressive intent (as distinct from merely 'hostile' intent,\n       which is the normal condition) may be assured by not less\n       than three rounds of incoming fire separated by intervals\n       of not less than ten seconds between rounds.  Note that a\n       single burst of automatic-weapon fire counds as one round,\n       as does a volley of rocket fire from more than one source.\n       As noted above, dual-use weaponry may NOT be assumed to\n       originate from military personnel, and thus do not justify\n       armed response.\n\n    c) A clear field of fire can be guaranteed by making a positive\n       military identification of all personnel in the target area of\n       the weapons to be used.  Note that aggressive intent need not\n       be proven for all possible targets.  Thus, if IAF aircraft\n       are attacked by a SAM crew it is not necessary to check the\n       papers of each crew member so long as none are obviously\n       civilians (as indicated, for instance, by the posession of\n       uniquely civilian weaponry such as stones, axes, and Molotov\n       coctails.)  Since it is often difficult for IAF elements to\n       land and make the necessary checks, ground forces should\n       first screen prospective strike areas before AGM fire.\n       For ACM purposes, a cockpit-to-cockpit pass within 5 meters\n       is usually sufficient for this purpose, but may be repeated\n       if necessary.\n\n--- D. C. Sessions                            Speaking for myself ---\n--- Note new network address:                dcs@witsend.tnet.com ---\n--- Author (and everything else!) of TMail  (DOS mail/news shell) ---\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3376, "properties": {"category": "sci.electronics", "text": "From: bell@hops.larc.nasa.gov (John Bell)\nSubject: Re: Adcom cheap products?\nOrganization: NASA Langley Research Center\nLines: 21\nNNTP-Posting-Host: hops.larc.nasa.gov\n\nIn article <mdonahue.15x9@amiganet.chi.il.us> mdonahue@amiganet.chi.il.us (Mike Donahue) writes:\n>\n>As for Adcoms Mobil, They are going with amps that canb use Balanced Inputs, a\n>VERY nice toy, but I'm afraid its goig to push their amps beyound resonable\n>price ranges.  especialy because taking advantage of those balanced inputs\n>requires a $120+ RCA to Balanced adapter...\n\nUmm, when I was doing sound reinforcement for a living, I used to get direct boxes (which convert\nunbalanced 1/4\" jacks to balanced XLRs) for about $25 each, or a little more for higher\nquality. You'll need two for a stereo signal, of course, and a little adapter thingy from \nRadio Sh#$&^t to convert from RCA to 1/4\". Total cost should be around $50. You can also buy\ntransformers for quite a bit less and wire them yourself. Total cost there should be under $30.\nYou can get all this stuff from any pro music shop that sells sound reinforcement gear.\nThe benefit? NO noise that you can hear will be generated in the cables going to the component\nwith the balanced inputs, even when you run them in bad places, like next to power lines.\n\n-----\nJohn Bell\nNASA Langley Research Center\nbell@hops.larc.nasa.gov\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3377, "properties": {"category": "soc.religion.christian", "text": "From: nichael@bbn.com (Nichael Cramer)\nSubject: Re: Dead Sea Scrolls\nReply-To: ncramer@bbn.com\nOrganization: BBN, Interzone Office\nLines: 24\n\ndhancock@teosinte.agron.missouri.edu (Denis Hancock) writes:\n   > [A very nice article on the DSS, which I thought answered\n   >  David Cruz-Uribe's original queries quite well]\n\n   Here are some books I have read recently that helped me not only\n   prepare for a 5 week series I taught in Sunday School, but greatly\n   increased my knowledge of the Qumran scrolls. [...]\n\nOne other recent book I would heartily recommend is Joseph Fitzmyer's\n_Response to 101 Questions about the Dead Sea Scrolls_ (Paulist,\n1992).\n\nFitzmyer is one of the preeminent modern NT scholars.  He was also one\nof the early workers on the DSS.  His book is written in a\nstraightforward Q&A that allows it to serve as a source for a great\nwealth of clearly presented basic, up-to-the-moment information about\nthe DSS.\n\n(This book is something of a companion volume to Raymond Brown's\n_Response to 101 Questions about the Dead Sea Scrolls_.)\n\nNichael\n\nPop Quiz: What's wrong with the cover of this book?     ;)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3378, "properties": {"category": "rec.sport.hockey", "text": "From: drbombay@netlink.cts.com (Walter Ladwig)\nSubject: Re: WHERE ARE THE DOUBTERS NOW?  HMM?\nArticle-I.D.: netlink.4iBk2B1w165w\nOrganization: NetLink Online Communications, San Diego CA\nLines: 7\n\nThe Blackhawks shall triumph.\n\nWalter Ladwig             @ \"This is the weather the cuckoo likes,\nNet Link                  @  armored division submissive to \nDrBombay@Netlink.cts.com  @  vernacular the world into a gambling\n                          @  birdhouse velocity.\"\n                                                -The Cut-Ups\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3379, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Daniel Salber <salber@imag.fr>\nSubject: Quadras VRAM Question\nX-Xxmessage-Id: <A7F4F033E3012026@planet.imag.fr>\nX-Xxdate: Fri, 16 Apr 93 23:22:27 GMT\nNntp-Posting-Host: planet\nOrganization: IMAG Institute, Grenoble, France\nX-Useragent: Nuntius v1.1.1d20\nLines: 28\n\n\nHi there,\n\n\nI have a question regarding Quadras VRAM. I have tried to find info on this\nbut I could not get precise answers.\n\nOn one hand, we have a Quadra 950 with a 16\" monitor, which is capable of\n32-bit color. How much VRAM does it have?\nOn the other hand, we have a Quadra 800 with a 16\" monitor, which is capable\nof 8-bit color only, so it must have 512 Ko of VRAM.\n\nI would like to take VRAM SIMMs for the 950 and put them in the 800 so that\nboth machines have 16-bit color capability.\nIs it possible, and if yes, how many VRAM SIMMs should I take from the 950?\nFrom the documentation I have, the Quadra 800 must get 1 Mo VRAM to have\n16-bit color, is that correct?\n\nBonus question: where do VRAM SIMMs hide? From the 950 documentation, they\nseem to be *behind* the power supply. Do I really have to take off the power\nsupply to access the VRAM SIMMs?\n\n\nThanks for your help!\n\n--\nDaniel Salber, User Interface Research Team, LGI-IMAG, Grenoble, France.\nsalber@imag.fr\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3380, "properties": {"category": "rec.sport.baseball", "text": "From: edd@gvlf4-a.gvl.unisys.com (Ed Dougherty)\nSubject: Re: Phills vs  Pirates\nSummary: Good Baseball\nKeywords: mlb, 04.16\nOrganization: Unisys Defense Systems, Great Valley Labs, Paoli, Pa\nLines: 9\nNntp-Posting-Host: gvlf4-a\n\n\nAs a Philly fan as as a Penna. baseball fan, I'm anxious to see the\nPenna. series.  Anyone know when it starts and where the first games\nwill be played?\n\nThis is (I think) always good baseball (to me); and the Pirates are\nalso off to a good start.\n\nEd Doc\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3381, "properties": {"category": "sci.space", "text": "From: loss@fs7.ECE.CMU.EDU (Doug Loss)\nSubject: Re: Death and Taxes (was Why not give $1 billion to...\nOrganization: Electrical and Computer Engineering, Carnegie Mellon\nLines: 7\n\nIn my last post I referred to Michael Adams as \"Nick.\"  Completely my\nerror; Nick Adams was a film and TV actor from the '50's and early '60's\n(remember Johnny Yuma, The Rebel?).  He was from my part of the country,\nand Michael's email address of \"nmsca[...]\" probably helped confuse things\nin my mind.  Purely user headspace error on my part.  Sorry.\n\nDoug Loss\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3382, "properties": {"category": "comp.windows.x", "text": "From: klute@tommy.informatik.uni-dortmund.de (Rainer Klute)\nSubject: Re: Is it just me, or is this newsgroup dead?\nOrganization: CS Department, Dortmund University, Germany\nLines: 21\nDistribution: world\nNNTP-Posting-Host: tommy.informatik.uni-dortmund.de\n\nIn article <930419000332.60e01d81@TGV.COM>, mahan@TGV.COM (Patrick L.\nMahan) writes:\n|> #\n|> # I've gotten very few posts on this group in the last couple days.  (I\n|> # recently added it to my feed list.)  Is it just me, or is this group\n|> # near death?\n|> #\n|> \n|> Seen from the mailing list side, I'm getting about the right amount of\n|> traffic.\n\nAnd seen from my point of view, I get far too much articles to keep up with\nthem. I am lucky if I can scan through the subjects from time to time.\n\n-- \n  Dipl.-Inform. Rainer Klute      I R B :  immer richtig beraten\n  Univ. Dortmund, IRB\n  Postfach 500500         |)|/    Tel.: +49 231 755-4663\nD-W4600 Dortmund 50       |\\|\\    Fax : +49 231 755-2386\n\n  new address after June 30th: Univ. Dortmund, D-44221 Dortmund\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3383, "properties": {"category": "comp.os.ms-windows.misc", "text": "From:  ()\nSubject: Re: Quicken 6 vs. Tobias' Managing Your Money\nOrganization: Purdue University\nLines: 27\n\nIn article <1993Apr20.040449.19649@twg.com>, q@twg.com (Michael Wiesenberg)\nwrote:\n> \n> I just got a copy of Tobias' Managing Your Money v9.0.  I have Quicken 6,\n> and it's wonderful for some things, but MYM seems to have some features\n> that Q6 doesn't.  For example, Q6 doesn't seem to be able to handle\n> monthly automatic deductions from a checking account (you know, a\n> monthly payment that gets electronically deducted every month from\n> my checking account).  Or is there something that I'm not doing right,\n> and Q6 can actually do that? \n\n\nHi\n     I have never used MYM so I can not help you with the comparison of the\ntwo products.  I am, however,  a devoted Quicken user, and I can tell you\nhow to set up the weekly, monthly, quarterly, yearly transactions.  First\nuse the Memorize feature (CTRL-M) to record the recurring transactions. \nNext, define a transaction group which uses these memorized transactions\nand specify the frequency that it should be used (i.e. monthly).  Quicken\nwill/can not automatically make the transactions for you, but now all you\ndo is recall the group and all of the individual transactions will be\nentered at once.  Additionally if you are using the Bill Minder, it will\nremind you when each transaction group is due.  For example, you could have\nthree transaction groups.  One for payments at the beginning of the month,\nmiddle of the month, and one for quarterly payments.  I hope this helps.\n\nMike\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.154+0000", "event": "documents", "entityId": 3384, "properties": {"category": "misc.forsale", "text": "From: microfsh@iastate.edu (Alex Fagundes)\nSubject: FOR SALE: CHEAP LOGIC BOARDS!!! (update)\nOrganization: Iowa State University, Ames IA\nLines: 67\n\nHere's the updated list of the stuff I still have for sale. Also, feel free to\nmake an offer.  I'm asking $15 per board.\n\nCurrently known Electronic mother boards from old arcade games:\n \nGame Name         Condition     \t      Manufacturer\n------------------------------------------------------------\n-1-\nTenYard Fight\t\t?\t\t\tIren\nTenYard Fight\t   Bad(internal short)          Iren\nKangaroo\t\t?       \t\tSun Electronics?\n-2-\nMr.Do                  Okay,but has interference      ?\nGuardian\nTip Top\t\t\t?\t\t\tSega\nBank Panic\t\t?\t\t\tSega\nSanritsu\t\t?\t\t\tSega\n*Radar Scope\t\tOkay\t\t\tNintendo?\n-3-\nPoseidon                 ?                      Taito\nNinjakun         Bad(needs capacitor&crystal)    ?\nJass Rack                ?                      Jamma\nDouble Dribble           ?\n-6-\nZoar\t\t\tOkay\t\t\t?\nSuper Trivia\t\tBad (got fried)\t \tGreyhound Electronics\n-9-\nSlither             Has error message           Century II Corp.\n-10-\nMusic Trivia\t\t?\t\t\tJALECO\nSamurai           Fore Groud char. disapear     Taito\nPoseidon                Okay                    Taito\n-11-\nAnt Eater\t\t?\t\t\tTago Electronics\nUp n Down\t    buzzing sound\t\t?\nTutankham\t\tBad\t\t\tKonami\n \nPro Wrestling\t\tOkay\nVideo Trivia\t\t?\t\t\tGrayHound\nAsteron Belt\t\t?\t\t\tSega\n \nUnknown boards\nSega (1)\nKonami (1)\nPacific Novelty Manufacturing Inc (9)\n  (if anyone has the rom numbers for these boards, please tell me)\n1 absolutely unknown board\n \n--Misc Stuff--\nSomekind of powersupply(similar to atary audio reg.)  ?\nRam Card\t\t?\t\t\tMidway\nMidway Patter Board\nZ-80 Sync Buss Controller-285 (2)\nPacman Filters (16)\t?\t\t\tMidway\n50pin scsi cable(2)\n  (both ends are female)\n \n-----------------------------------------------------------------------------\n|  Alex Fagundes -         Proud owner of a 76 Maverick :) and another      | \n|  microfsh@iastate.edu  -          believer that AMIGA rules               | \n-----------------------------------------------------------------------------\n\n\n\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3385, "properties": {"category": "talk.politics.guns", "text": "From: nagle@netcom.com (John Nagle)\nSubject: Re: FYI - BATF reply on Waco\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 8\n\n      The San Francisco Examiner reports that Clinton has issued instructions\nto federal law enforcement that they may not kill or injure anyone to \nresolve the Waco situation.  So they've built a fence around the compound,\nand are now seriously considering building up the fence to prison-camp\nlevels, pulling out most of the manpower, and waiting however many months\nit takes.\n\n\t\t\t\t\tJohn Nagle\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3386, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: Too fast\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 66\n\nIn article <1qqv7k$e5g@usenet.INS.CWRU.Edu> aas7@po.CWRU.Edu (Andrew A. Spencer) writes:\n>In a previous article, callison@uokmax.ecn.uoknor.edu (James P. Callison) says:\n>>In article <1qn4ev$3g2@usenet.INS.CWRU.Edu> aas7@po.CWRU.Edu (Andrew A. Spencer) writes:\n>>>In a previous article, wrat@unisql.UUCP (wharfie) says:\n>>>\n>>>>\tThat shows how much you know about anything.  The brakes on the\n>>>>SHO are very different - 9 inch (or 9.5? I forget) discs all around,\n>>>>vented in front.  The normal Taurus setup is (smaller) discs front, \n>>>>drums rear.\n>>>\n>>>one i saw had vented rears too...it was on a lot.\n>>>of course, the sales man was a fool...\"titanium wheels\"..yeah, right..\n>>>then later told me they were \"magnesium\"..more believable, but still\n>>>crap, since Al is so m uch cheaper, and just as good....\n>>>\n>>>i tend to agree, tho that this still doesn't take the SHO up to \"standard\"\n>>>for running 130 on a regular basis.  The brakes should be bigger, like\n>>>11\" or so...take a look at the  ones on the Corrados.(where they have\n>>>braking regulations).\n>>\n>>Well, let's see...my T-Bird SC has a computer-controlled adjustable\n>>suspension, 4-wheel ABS disks (11\" vented front, 10\" (?) rear), 3-point\n\t\t\t\t\t\t\t^^^^\n\t\t\t\t\t\tRears also vented\n\n>>belts, sturdy passenger compartment, aerodynamics good enough for \n>>NASCAR without too much change, 210 hp/310 ft-lb supercharged 3.8l V6,\n>>4-wheel independent suspension (plus limited-slip differential), with \n>>a top speed in excess of 130mph, and rides on V-rated tires (I have yet\n>>to find 225/60-R16s in any other speed rating). \n>>\n>>Is that \"up to standard\"? If not, why not?\n>\n>james, i really hate to do this, but try reading the damn posts!\n\nThen you shouldn't've done it. Try answering the damn question.\nI am well aware of the fact that there was no mention of the SC\nin there.\n\n>never was a t'bird mentioned.  The discussion was about SHO's and\n>'stangs not being up to spec.  I do not know about t'birds.  I\n>only know that the specs quoted for the SHO by previous poster sounded\n>a little anemic for me to say that it was up to snuff.  This does not\n>kn any way  disencourage* me from wishing to own one, nor does it make it\n>a bad car.  It merely means that i think Ford could have added that extra\n>bit of safety  and tossed in larger brakes, as the wheels are plenty large\n>enough for them to fit (if memory serves right, which it may very well not)\n>and the motor plenty powerful enough to need it.\n\nWell, my point was that the SC and the SHO both have very similar\ncharacteristics (front and rear disks (ABS on the SHO?), high output\nV6, 4-wheel independent suspension, very good aerodynamics, 3-point\nharness, fat rubber, and 130mph+ top speed). If one of them is \nup to standard (and I think the SC is), but the other isn't, then\nwhy is that? No flamage, just curiousity.\n\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3387, "properties": {"category": "sci.electronics", "text": "From: markz@ssc.com (Mark Zenier)\nSubject: Re: Illusion\nOrganization: SSC, Inc.,  Seattle, WA\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 22\n\nChris Best (cab@col.hp.com) wrote:\n: > This is not a new idea.  At least 10 years ago I got this little gadget with\n: > a keyboard on the back and 8 LED's in a vertical row on the front.  It has a\n: > long handle and when you wave it in the air it \"writes\" the message you typed\n: > on the keyboard in the air. \n: \n: This is not news.  In fact it's where I got the idea from, since it was\n: such a neat item.  Mattell made it, I believe, modeled after a \"space \n: saber\" or \"light sword\" or something likewise theme-y.  My addition was \n: using a motor for continuous display, and polar effects in addition to \n: character graphics.  I should have protected it when I had the chance.  \n: No one to kick but myself...\n: \n: Ten years ago is about right, since I built mine in '84 or '85.\n\nIt's even older than that.  I remember seeing a description of\na garage operation selling them at some of the early Computer Faires \nin San Francisco about 5 years before that.\n\n\nMark Zenier  markz@ssc.wa.com  markz@ssc.com  \n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3388, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: re:  Don Cherry's Coach's Corner Summary - April 3, 1993\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nDistribution: na\nLines: 53\n\n\nallan@cs.UAlberta.CA (Allan Sullivan) writes:\n\nBefore I begin lambasting Don Cherry, let me first say that I've been sort of\na Cherry fan for a while...admittedly stuff he says has to be taken lightly,\nbut he's more-or-less harmless.  On Saturday, however, he crossed the lines of\ngood taste:\n\n>According to Don, the entire article wasn't perfect, and there\n>were some 'shots' by Frank Musil and Alpo Suhonen. \n>Don noted that Musil wasn't much of a player (didn't\n>score many goals last year). He also made fun of their names...\n>One guy has a name like dog food, the other like a laxitive\n>(meta-Musil).\n\nThis is the best he can do?!!  Gee Don, tremendous amounts of professionalism\nhere.  The CBC looks just as bad as he looks foolish letting him get away with\nthis nonsense...making fun of names??  It's bad enough that he makes asinine\nblanket statements about European players, but he's now resorted to making fun\nof their names too?  He sounded like an idiot, much like he did last week\nwhen he said that Teemu would never make it to his 'Rock 'em, Sock 'em' video\nuntil he dropped the gloves...\n\n>On the subject of realignment, Don said that he liked the\n>new division names.\n\nWell, what he _said_ was that even though he's been around the league for quite\nsome time, he still doesn't know who's where w.r.t. conference and division\nnames.  HELLO??!! McFly??  The names have been around for a couple of decades\nor so....he also invited the audience to \"Name the teams in the Wales...quick,\nquick!\" Followed by \"Ah, you don't know, I don't know....\"  \n\nSorry Don.  Wrong on this one.\n\n>Ron (to Don): \"I don't know wy I like you on your show\n>for 30 minutes... I can hardly stand you on this show for 5.\"\n\nThis was absolutely hilarious.\n\nDon's argument about the basketball and baseball brawls was fairly\ngood...unfortunately he neglected to mention the fines that were levelled in\nthe NBA case.  Serious money...oh well, he's never been one for objectivity,\nhas he?\n\nDon's question to Gretzky:\n\n>Wouldn't it be better\n>for you to change your friends so that they like the game, than for\n>us to change the game for your friends?\"\n\nNow this I liked.\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3389, "properties": {"category": "talk.politics.guns", "text": "From: pngai@adobe.com (Phil Ngai)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Adobe Systems Incorporated\nLines: 12\n\nIn article <C5sv88.HJy@news.cso.uiuc.edu> irvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n>>Do YOU eat all your food cold?\n>\n>Ever hear of electric ovens or microwaves?  Very popular.\n>Electric stoves outside metro-areas especially.\n\nThe Dividians didn't have that option after the FBI cut off their\nelectricity.\n\n-- \n Flag burners don't bother me as much as seeing the American flag on\ntanks assaulting the church of Americans who had never bothered anyone.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3390, "properties": {"category": "alt.atheism", "text": "From: dfuller@portal.hq.videocart.com (Dave Fuller)\nSubject: Re: It's all Mary's fault!\nOrganization: VideOcart Inc.\nX-Newsreader: Tin 1.1 PL3\nLines: 23\n\npl1u+@andrew.cmu.edu (Patrick C Leger) writes:\n: You know, it just occurred to me today that this whole Christian thing\n: can be blamed solely on Mary.\n: \n: So, she's married to Joseph.  She gets knocked up.  What do you think\n: ol' Joe will do if he finds she's been getting around?  So Mary comes up\n: with this ridiculous story about God making her pregnant.  \n: \n\n  Nice attempt Chris . . . verrry close.\n\n  You missed the conspiracy by 1 step. Joseph knew who knocked her up.\nHe couldn't let it be known that somebody ELSE got ol' Mary prego. That\nwouldn't do well for his popularity in the local circles. So what \nhappened is that she was feeling guilty, he was feeling embarrassed, and\nTHEY decided to improve both of their images on what could have otherwise\nbeen the downfall for both. Clever indeed. Come to think of it . . . I\nhave gained a new respect for the couple. Maybe Joseph and Mary should\nreceive all of the praise being paid to jesus.\n\nDave \"Buckminster\" Fuller\nHow is that one 'o keeper of the nicknames ?\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3391, "properties": {"category": "misc.forsale", "text": "From: curry@doe.carleton.ca (Simon Curry)\nSubject: House for Sale, Mediterranean Coast Spain\nSummary: House for Sale in Javea, Alicante, Spain\nKeywords: House, seaside,Spain\nOrganization: Dept. of Electronics, Carleton University\nLines: 35\n\n\nMediterranean Investment property for Sale\n------------------------------------------\nJavea, Alicante Spain (Costa Blanca)\n\nVilla on a large lot in the wooded (pine) hills \"above the noise\".\n2 bedrooms, living-dining room + glassed-in sun-porch; kitchen &\nbathroom. Large lot surrounded by traditional white wall with\nwrought iron gates: room for an in-ground pool. 2 minutes from the\nsea and supermarket; 10 minutes from town and full amenities. Area\nhas specially favourable microclimate, mentioned in a WHO climate\nreport.\n\nSeat (Fiat) runabout Car, 3 years old may be included, in the deal.\n\nIdeal for retirement or as a family holiday resort.\n\nMust sell for family reasons.\n\nAsking $150,000.\n\nReply by EMAIL or call Canada (613)591-0507\n\n---------------------------------------------------------------------\nSimon Curry, Executive Director                   Tele: (613)991-9001\nThe Royal Society of Canada                       Fax:  (613)991-6996\nPO Box 9734, Ottawa K1G 5J4              Email: curry@doe.carleton.ca\n\n--\n---------------------------------------------------------------------\nSimon Curry                                       Tele: (613)991-9001\nThe Royal Society of Canada                       Fax:  (613)991-6996\nPO Box 9734, Ottawa K1G 5J4              Email: curry@doe.carleton.ca\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3392, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: was:Go Hezbollah!\nOrganization: The Department of Redundancy Department\nLines: 23\n\nIn article <1993Apr19.192207.413@ncsu.edu> hernlem@chess.ncsu.edu (Brad Hernlem) writes:\n\n>I think that you should try to find more sources of news about what goes on\n>in Lebanon and try to see through the propaganda. \n\nThank you, Brad/Ali, for warning us about the dangers of propaganda.\nIt's funny, though, coming from you.\n\n>There are no a priori\n>black and white hats but one sure wonders how the IDF can bombard villages in \n>retaliation to pin-point attacks on its soldiers in Lebanon and then call the\n>Lebanese terrorists.\n\nWho is it that executes these \"pin-point attacks\" on Israelis?  The\nguys in the white hats or the ones in the black hats?  Neither?  You\nmean that they are just civilians, farmers, teachers, school children?\nWell, maybe they ARE terrorists, after all?  And maybe that\n\"propaganda\" was correct, too?  Hmm?\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3393, "properties": {"category": "soc.religion.christian", "text": "From: qtm2w@virginia.edu (Quinn T. McCord)\nSubject: Questions from a newbie\nOrganization: University of Virginia\nLines: 56\n\n\n\tIs life a pass/fail course, and does God grade on a\ncurve?\n\tI'm new here, and only vaguely religious, but I want to\nknow what some of you people think.  Specifically, are there an\ninfinite number of Heavens, and a person goes to the one that\nhe/she deserves?  Or is it simply Heaven or nothing (Hell?)\nAlso, are we \"graded\" by those around us, or has there always\nbeen some unchanging method?  Is the person's childhood taken\ninto account?\n\tI'm sure these must sound like over-simplifications to\nmost of you, but I figure that you're the experts.\n\n\t\t\t\t\t\t-Quinn\n\n[Eschatology is an area on which Christians do not agree.  I suspect\nthat's because our primary source of information is prophets and\nvisionaries, and their writings tend to be highly symbolic.  However\nboth Jesus' teachings in the Gospels and books such as the Revelation\nto John talk primarily about the difference between eternal life and\neternal death.  On a number of occasions Jesus does say things that\nimply some sort of differentiation, e.g. Lk 10:14 and a number of\nsimilar passages where Jesus says things like \"even XXX will be better\noff than you in the judgement.\"  Also, I Cor 3 talks about someone who\ngets into heaven, but by the skin of his teeth, as it were.  But these\npassages are not normally interpreted as suggesting separate heavens,\nso much as differing levels of prestige or punishment in heaven or\nhell (and not all Christians would even go as far as that).  The only\nChristian group I know of that believes in multiple heavens is the\nMormons, and they are very far from mainstream Christianity (far\nenough that many of our readers would not call them Christian).  Their\nideas in this area involve specific Mormon revelations, in addition\nto the Bible and \"Holy Tradition\" of a more generic Christian sort.\n\nNote that many Christians will cringe at the very thought of\nassociating grading with God.  The whole point of Christ was to free\nus from the results of a test that we couldn't possibly pass.  If you\nlike test analogies, God grades on a very strict and unbending scale,\nbut he also cheats -- he replaces our test papers with an exam that\nwas prepared by the teacher, before actually doing the grading.\nBecause some people end up in heaven and others in hell, it's easy to\nsee why you'd be inclined to think of it as grading.  While there are\ndifferences among branches of Christianity on details, I think we all\nagree that in one way or another, God cheats.\n\nI am personally very sceptical about anyone who claims to know exactly\nhow far God's cheating extends.  Will he accept people who don't\nexplicitly acknowledge Christ, but somehow still follow him in their\nhearts?  Many Christians believe that this is possible, at least in\nprinciple, but certainly not all do.  Jesus provided us with a clear\ndescription of how to be saved, but it's not clear to me that he\nprovided an exact description of how he's going to place the dividing\nline.  Certainly he made it clear that we can't expect to know whether\nother individuals are saved or not.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3394, "properties": {"category": "rec.sport.hockey", "text": "From: J056600@LMSC5.IS.LMSC.LOCKHEED.COM\nSubject: Does the FAQ crash YOUR newsreader?\nOrganization: Lockheed Missiles & Space Company, Inc.\nLines: 9\n\n\n   The r.s.h FAQ sheet never fails to crash my newsreader.  The only way I\ncan avoid crashing (and restarting the machine) is to look at the headers and\navoid reading the FAQ.  Does anyone else have problems reading the FAQ?\n\n\nTim Irvin\n******************************************************************************\nThe season is near a merciful end...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3395, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Cookamunga Tourist Bureau\nLines: 29\n\nIn article <C5qt5p.Mvo@blaze.cs.jhu.edu>, arromdee@jyusenkyou.cs.jhu.edu\n(Ken Arromdee) wrote:\n> \n> In article <115694@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n> >I think many reading this group would also benefit by knowing how\n> >deviant the view _as I've articulated it above_ (which may not be\n> >the true view of Khomeini) is from the basic principles of Islam. \n> \n> From the point ov view of an atheist, I see you claim Khomeini wasn't\n> practicing true Islam.  But I'm sure that he would have said the same about\n> you.  How am I, a member of neither group, supposed to be able to tell which\n> one of you two is really a true Muslim?\n\nFred Rice answered this already in an early posting:\n\"The problem with your argument is that you do not _know_ who is a _real_\nbeliever and who may be \"faking it\".  This is something known only by\nthe person him/herself (and God).  Your assumption that anyone who\n_claims_ to be a \"believer\" _is_ a \"believer\" is not necessarily true.\"\n\nIn other words it seems that nobody could define who is a true and\nfalse Muslim. We are back to square one, Khomeini and Hussein are \nstill innocent and can't be defined as evil or good Islamic \nworshippers.\n\nCheers,\nKent\n\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3396, "properties": {"category": "sci.med", "text": "From: dfield@flute.calpoly.edu (InfoSpunj (Dan Field))\nSubject: Re: Too many MRIs?\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 19\n\nIn article <1993Apr19.043654.13068@informix.com> proberts@informix.com (Paul Roberts) writes:\n>In article <1993Apr12.165410.4206@kestrel.edu> king@reasoning.com (Dick King) writes:\n>>\n>>I recall reading somewhere, during my youth, in some science popularization\n>>book, that whyle isotope changes don't normally affect chemistry, a consumption\n>>of only heavy water would be fatal, and that seeds watered only with heavy\n>>water do not sprout.  Does anyone know about this?\n>>\n>\n>I also heard this. I always thought it might make a good eposide of\n>'Columbo' for someone to be poisoned with heavy water - it wouldn't\n>show up in any chemical test.\n\nThat would be a very expensive toxin indeed!\n-- \n| Daniel R. Field, AKA InfoSpunj | Joe: \"Are you late?\"                |\n| dfield@oboe.calpoly.edu        | Dan: \"No, but I'm working on it!\"   |\n| Biochemistry, Biotechnology    |                                     |\n| California Polytechnic State U |                                     | \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3397, "properties": {"category": "rec.autos", "text": "From: n8846069@henson.cc.wwu.edu (BarryB)\nSubject: Re: Plymouth Sundance/Dodge Shadow experiences?\nArticle-I.D.: henson.1993Apr18.083715.21366\nDistribution: usa\nOrganization: Western Washington University\nLines: 25\n\ndaubendr@NeXTwork.Rose-Hulman.Edu (Darren R Daubenspeck) writes:\n\n>> they are pretty much junk, stay away from them.  they will be replaced next\n>> year with all new models.  \n\n>Junk?They've made the C&D lists for years due to their excellent handling and \n>acceleration.They have been around since about, oh, 85 or 86, so they're not  \n>the newest on the lot, and mileage is about five to eight MPG under the class\n>leader. You can get into a 3.0 L v-6 (141 hp) Shadow for $10~11K (the I-4  \n>turbo a bit more), and a droptop for $14~15K.  \n\nHow can car be any good that has\n\n          S     N     A    C\n             U     D     N    E\n\nwritten on the back with crooked letters as if a 2-year-old had\nwritten it?  Hehhehehehahaha!\n\n(About as silly as Crysler's attemps to make the label on the back\nof some of their other cars appear like they are Mercedes.)\n\nSorry, I couldn't resist...\n\n-BarryB\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3398, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: note to Bobby M.\nLines: 52\nOrganization: Walla Walla College\nLines: 52\n\nIn article <1993Apr14.190904.21222@daffy.cs.wisc.edu> mccullou@snake2.cs.wisc.edu (Mark McCullough) writes:\n>From: mccullou@snake2.cs.wisc.edu (Mark McCullough)\n>Subject: Re: note to Bobby M.\n>Date: Wed, 14 Apr 1993 19:09:04 GMT\n>In article <1993Apr14.131548.15938@monu6.cc.monash.edu.au> darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n>>In <madhausC5CKIp.21H@netcom.com> madhaus@netcom.com (Maddi Hausmann) writes:\n>>\n>>>Mark, how much do you *REALLY* know about vegetarian diets?\n>>>The problem is not \"some\" B-vitamins, it's balancing proteins.  \n>>>There is also one vitamin that cannot be obtained from non-animal\n>>>products, and this is only of concern to VEGANS, who eat no\n>>>meat, dairy, or eggs.  I believe it is B12, and it is the only\n>>>problem.  Supplements are available for vegans; yes, the B12\n>>>does come from animal by-products.  If you are on an ovo-lacto\n>>>vegetarian diet (eat dairy and eggs) this is not an issue.\n>\n>I didn't see the original posting, but...\n>Yes, I do know about vegetarian diets, considering that several of my\n>close friends are devout vegetarians, and have to take vitamin supplements.\n>B12 was one of the ones I was thinking of, it has been a long time since\n>I read the article I once saw talking about the special dietary needs\n>of vegetarians so I didn't quote full numbers.  (Considering how nice\n>this place is. ;)\n>\n>>B12 can also come from whole-grain rice, I understand.  Some brands here\n>>in Australia (and other places too, I'm sure) get the B12 in the B12\n>>tablets from whole-grain rice.\n>\n>Are you sure those aren't an enriched type?  I know it is basically\n>rice and soybeans to get almost everything you need, but I hadn't heard\n>of any rice having B12.  \n>\n>>Just thought I'd contribute on a different issue from the norm :)\n>\n>You should have contributed to the programming thread earlier. :)\n>\n>> Fred Rice\n>> darice@yoyo.cc.monash.edu.au   \n>\n>M^2\n>\nIf one is a vegan (a vegetarian taht eats no animal products at at i.e eggs, \nmilk, cheese, etc., after about 3 years of a vegan diet, you need to start \ntaking B12 supplements because b12 is found only in animals.) Acutally our \nbodies make B12, I think, but our bodies use up our own B12 after 2 or 3 \nyears.  \nLacto-oveo vegetarians, like myself, still get B12 through milk products \nand eggs, so we don't need supplements.\nAnd If anyone knows more, PLEASE post it.  I'm nearly contridicting myself \nwith the mish-mash of knowledge I've gleaned.\n\nTammy\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3399, "properties": {"category": "comp.graphics", "text": "From: dutc0006@student.tc.umn.edu (David J Dutcher-1)\nSubject: Re: VGA 640x400 graphics mode\nNntp-Posting-Host: student.tc.umn.edu\nOrganization: University of Minnesota\nLines: 23\n\nIn article <734553308snx@rjck.UUCP> rob@rjck.UUCP (Robert J.C. Kyanko) writes:\n>gchen@essex.ecn.uoknor.edu writes in article <C55DoH.2AI@constellation.ecn.uoknor.edu>:\n>> \n>> Greetings!\n>> \n>> Does anybody know if it is possible to set VGA graphics mode to 640x400\n>> instead of 640x480?  Any info is appreciated!\n>\n>Some VESA bios's support this mode (0x100).  And *any* VGA should be able to\n>support this (640x480 by 256 colors) since it only requires 256,000 bytes.\n>My 8514/a VESA TSR supports this; it's the only VESA mode by card can support\n>due to 8514/a restrictions. (A WD/Paradise)\n>\n>--\n>I am not responsible for anything I do or say -- I'm just an opinion.\n>             Robert J.C. Kyanko (rob@rjck.UUCP)\n\n\tAhh no.  Possibly you punched in the wrong numbers on your\ncalculator.  256 color modes take a byte per pixel so 640 time 480 is\n307,200 which is 300k to be exact.  640x400x256 only takes 250k but I\ndon't think it is a BIOS mode.  I wouldn't bet that all VGA cards can do\nthat either.  If a VGA card has 512k I bet it can do both 640x400 and\n640x480.  That by definition is SVGA, though not very high SVGA.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3400, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: spring@diku.dk (Jesper Honig Spring)\nSubject: COMPAQ and standard SIMM RAM (HELP)\nOrganization: Department of Computer Science, U of Copenhagen\nLines: 19\n\n\nHello,\n\n\nCan anyone out there tell me if it is possible to put ordinary standard\nSIMM RAM chips (70 ns) in a COMPAQ PROLINEA 4/50 or do COMPAQ require \nspecial COMPAQ RAM chips. \n\nPlease (also) email me.\n\n\nThanks in advance.\n\nJesper\n-- \n-------------------------------------------------------------------------------\njesper honig spring, spring@diku.dk |        IF ANIMALS BELIEVED IN GOD       \nuniversity of copenhagen, denmark   |         THE DEVIL WOULD BE A MAN\n-------------------------------------------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3401, "properties": {"category": "rec.autos", "text": "From: rll@frieda.mitre.org (Roberto L. Landrau)\nSubject: Re: Eagle Talon TSi--LEMON?\nNntp-Posting-Host: frieda.mitre.org\nOrganization: Research Computer Facility, MITRE Corporation, Bedford, MA\nLines: 77\n\nIn rec.autos Jay Lorenzana <U40348@uicvm.uic.edu> wrote:\n>\n>Dear Netters:\n>\n>I am looking to buy a used Eagle Talon '91 or '91 TSi AWD.\n\nI would be concerned about how the car was driven and how well it was\nmaintained.  I own a turbocharged one, and I would never buy a\nturbocharged vehicle unless I knew the owner and his/her\ndriving/maintenance habits.\n\n>Question is that the '91 TSi AWD was mentioned in the\n>April Consumer Reports to a car to avoid!\n\nI have been wondering about that myself.  The '90 AWD models and the\n'91s were identical (except for the ABS option).  \n\n>In particular, the manual transmission,\n\nYes.  Some owners had problems with the transaxles.  Using\nsynthetic lubricants in the transaxles solved the problem in most\ncases.  The problem was not unique to the AWDs, however.  It was\ncommon to all models.  The Galant VR4 and GSX had the same transaxle,\nbut I didn't see those listed in CR.\n\n>electrical system,\n\nI don't know of any major complaints in this area, except that the\nbattery that was installed at the factory had a low current rating. \n\n>and brakes were below par (in both models).\n\nThe first FWD models (those built before May 1989) were recalled for\nbrake upgrades.  Some FWD and AWD owners had problems with warped\nrotors.  Those of us who insist on using manual torque wrenches every\ntime the lug nuts are tightened have never had a problem.\n\n>A friend of mine\n>ownes a '90 TSi AWD and he has had 2 brake jobs (pads),\n\nI can refer you to someone who has gone through a set of pads in one\nday!  It all depends on how you drive.  It seems that most owners have\nbeen getting between 40-70k on a set of pads.\n\n>one stuck valve,\n\nFirst time I hear about a problem with the valve train on these cars,\nother than timing belt failures.\n\n>and some clutch/transmission problem, something\n>about sticking/grinding into second gear.  This doesn't seem\n>too bad if one \"beats\" on his car.\n\nIf your friend \"beats\" on the car, then his unit is not a\nrepresentative sample of the car's reliability.\n\nMy suggestion is instead of listening to the useless Consumer Reports,\ntalk to several owners (the mailing list may be the best way to reach\na few of them).\n\n>I am willing to suffer reliability--for speed and looks.  Seems\n>you have to pay big buck if you want all three.  Anyway can\n>anyone please let me know how you like your Talon, and any\n>problems you may have had, and if the repairs are worth it.\n\n#if (humor_impaired) skip_to TheEnd\nNo matter how much you pay, you won't get all three.  Examples:\n\nNSX:       reliability and looks.\nFerrari:   reliability ^H^H^H^H^H^H (yeah, right!) speed and looks\n\nTheEnd\n--\nThe opinions stated above are not necessarily my employer's.\n----------------------------------------------------------------\nRoberto L. Landrau    KC1YP    landrau@mitre.org  rll@linus.mitre.org\nThe MITRE Corporation  Bedford, MA 01730          rll@linus.UUCP\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3402, "properties": {"category": "rec.autos", "text": "From: cf947@cleveland.Freenet.Edu (Chun-Hung Wan)\nSubject: Re: I'm getting a car, I need opinions.\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 32\nReply-To: cf947@cleveland.Freenet.Edu (Chun-Hung Wan)\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nIn a previous article, ip02@ns1.cc.lehigh.edu (Danny Phornprapha) says:\n\n>I have $30,000 as my budget.  I'm looking for a sports or GT car.\n>\n>What do you think would be the best buy?  (I'm looking for specific models)\n>\n>Thanks,\n>Danny\n>-- \n>\n>===============================================================================\n>=    \"Hey! You programmers out there!     |    Danny Phornprapha              =\n>=     Please consider this:               |    ip02@lehigh.edu                =\n>=                                         |                                   =\n>=     Bugs are another endangered earth   |    LUCC Student Konsultant        =\n>=     Species needing your protection.    |    Work: (215) 758-4141           =\n>\n\nFor an all out sports car, I'd go for the RX-7 without the sports\nsuspension (which is too stiff.)  For a little more practicality and more\ncomfort, the Nissan 300ZX Turbo is a good buy.  And for a good dose of\nluxury, the Lexus SC300 is perfect (with a manual transmission of course.) \nHowever, the Toyota Supra is coming out soon and if you like it's looks,\nthe performance is supposed to be great, almost race car like.  I don't\nparticulary like the Mitsubishi 3000GT's or the Dodge Stealths as they are\ntoo heavy and aren't very nimble handlers for a sports car.\n-- \nA motion picture major at the Brooks Institute of Photography, CA\nSanta Barbara and a foreign student from Kuala Lumpur, Malaysia.\n\n\"The mind is the forerunner of all states.\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3403, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: husak@ux1.cso.uiuc.edu (Stephen R. Husak )\nSubject: Re: Another happy Gateway owner\nOrganization: University of Illinois at Urbana\nLines: 20\n\npastor@vfl.paramax.com (Jon Pastor) writes:\n\n>Which they do in the vast majority of cases.  Remember that it's only the\n>people on the tails of the curve who are motivated to write -- the ones who\n>love it, and the ones who hate it.  You don't hear from the folks in the\n>middle very often...\n\n>They have rough edges, no doubt about it; but they give good value per dollar,\n>and use almost all top-quality components.  \n\nI am one of those middle-of-the-road GW2000 owners who is satisfied with\nmy system. I had my share of problems/corrections/phone conversations/etc. I'm\nsatisfied on what I got for my money.\n\nStephen R. Husak \n-- \n\"What am I trying to do, what am I trying to say, I'm not trying to tell you \n anything you didn't know when you woke up today...\"\n\t\t\t\t- Depeche Mode \"Nothing\" MUSIC FOR THE MASSES\n-= Stephen R. Husak - husak@ux1.cso.uiuc.edu - Univerisity of Illinois\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3404, "properties": {"category": "sci.med", "text": "From: libman@hsc.usc.edu (Marlena Libman)\nSubject: Need advice with doctor-patient relationship problem\nOrganization: University of Southern California, Los Angeles, CA\nLines: 64\nNNTP-Posting-Host: hsc.usc.edu\n\nI need advice with a situation which occurred between me and a physican\nwhich upset me.  I saw this doctor for a problem with recurring pain.\nHe suggested medication and a course of treatment, and told me that I\nneed to call him 7 days after I begin the medication so that he may\nmonitor its effectiveness, as well as my general health.\n\nI did exactly as he asked, and made the call (reaching his secretary).\nI explained to her that I was following up at the doctor's request,\nand that I was worried because the pain episodes were becoming more\nfrequent and the medication did not seem effective.\n\nThe doctor called me back, and his first words were, \"Whatever you want,\nyou'd better make it quick.  I'm very busy and don't have time to chit-\nchat with you!\"  I told him I was simply following his instructions to\ncall on the 7th day to status him, and that I was feeling worse.  I \nthen asked if perhaps there was a better time for us to talk when he\nhad more time.  He responded, \"Just spit it out now because no time is\na good time.\"  (Said in a raised voice.)  I started to feel upset and\ntried to explain quickly what was going on with my condition but my\nnervousness interfered with my choice of words and I kind of stuttered\nand then said \"well, never mind\" and he said he'll talk to various\ncolleagues about other medications and he'll call me some other time.\n\nThis doctor called me that evening and said because I didn't express\nmyself well, he was confused about what I wanted.  At this point I\nwas pretty upset and I told him (in an amazingly polite voice considering\nhow angry I felt) that his earlier manner had hurt my feelings.  He told\nme that he just doesn't have time to \"rap with patients\" and thought\nthat was what I wanted.  I told him that to assume I was calling to\n\"rap\" was insulting, and said again that I was just following through\non his orders.  He responded that he resented the implication that he \nfelt I was making that he was not interested in learning about what his\npatients have to say about their condition status.  He then gave me\nthis apology: \"I am sorry that there was a miscommunication and you\nmistakenly thought I was insulting.  I am not trying to insult you\nbut I am not that knowledgeable about pain, and I don't have a lot of\ntime to deal with that.\"  He then told me to call him the next day\nfor further instructions on how do deal with my pain and medication.\n\nI am still upset and have not yet called.\n\nMy questions: (1) Should I continue to have this doctor manage my care?\n(2) Since I am in pain off and on, I realize that this may cause me to\nbe more anxietous so am I perhaps over-reacting or overly sensitive?\nIf this doctor refers me to his colleague who knows more about the type\nof pain I have, he still wants me to status him on my condition but\nnow I am afraid to call him.\n\n\t\t\t--Marlena\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3405, "properties": {"category": "comp.windows.x", "text": "From: toml@blade.Boulder.ParcPlace.COM (Tom LaStrange)\nSubject: Re: Forcing a window manager to accept specific coordinates for a window\nReply-To: toml@boulder.ParcPlace.COM\nOrganization: ParcPlace Boulder\nLines: 45\n\nIn article <1r5l8g$bub@wsinfo03.win.tue.nl>, rcb5@wsinfo03.win.tue.nl (Richard Verhoeven) writes:\n|> bading@cs.tu-berlin.de (Tobias 'Doping' Bading) writes:\n|> > \n|> > try this after XCreateWindow:\n|> > -----------------------------\n|> > ...\n|> >\n|> >   xsizehints->flags = USPosition | USSize;\t/* or = PPosition | PSize */\n|> >   ...\n|> >   XSetWMNormalHints (display, window, xsizehints);\n|> >   ...\n|> >\n|> > These hints tell the window manager that the position and size of the window\n|> > are specified by the users and that the window manager should accept these\n|> > values. If you use xsizehints->flags = PPosition | PSize, this tells the window\n|> > manager that the values are prefered values of the program, not the user.\n|> > I don't know a window manager that doesn't place the window like you prefer\n|> > if you specify the position and size like above.\n|> \n|> Sorry, but olwm and tvtwm don't do it. They place the title at that position\n|> and the window at a position below it.\n\nThe reason they place their outside corner at the location you requested\nis because that's what the ICCCM says they should do.\n\n|> This becomes a problem when you want a program to be able to save its current\n|> configuration and restore is later.\n|> \n|> Currently, my solution is:\n|> \n|> \tXCreateWindow(...);\n|> \tXSetWMProperties(..);\n|> \tXMapWindow(...);\n|> \tXFlush(...);\n|> \tXMoveWindow(...);\n\nThis code will almost certainly break.  Calling XMapWindow and then\nXFlush does not guarantee that the window is visible and managed by the\nwindow manager.  Even if this did work, there isn't a reliable way to\nfind out how much decoration the window manager placed around your\nwindow, so you don't know how far to move it.  And what if the window\nmanager refuses to move your window?\n\n--\nTom LaStrange        toml@boulder.ParcPlace.COM\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3406, "properties": {"category": "talk.politics.misc", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: Re: Top Ten Comments Overheard in the Secret Service Lounge\nLines: 36\nReply-To: hallam@zeus02.desy.de\nOrganization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n\n\nIn article <1phgakINN9pb@apache.dtcc.edu>, bob@hobbes.dtcc.edu (Bob Rahe) writes:\n\n|>In article <1993Apr2.093952.1149@colorado.edu> ajteel@dendrite.cs.Colorado.EDU (A.J. Teel) writes:\n|>\n|>>\tEd, they are losing their humor. Please take a break until they\n|>>get funny again (?), if that is even possible. I liked a few of these,\n|>>but that list is not even sarcastic, just insulting and definitely not\n|>>one of your best. I look forward to some better lists after a sabatical?\n|>>ajteel@dendrite.cs.Colorado.EDU\n|>\n|>  No, they must be working, they are getting lots of these 'complaints'\n|>that they are not funny....  Keep 'em coming, it they weren't funny or\n|>bothering them they'd just ignore them....   \n\nIf a six year old child does a funny trick and you say well done he will\ndo it again and it may be funny. Then they may repeat it over and over\nagain bu you still have to pretend its funny even though it isn't any\nmore. Once they are older than six you expect them to realise that doing\nthe same thing over and over again isn't funny any more.\n\nBasicaly Ed fails to be amusing because he is merely crass. He does not\nmake jokes that have any political content beyond attempting to ridicule\ntheir target. Calling someone Slick Willie is not funny even if you put\non a red nose while you say it, it was a good debating point used on the\nspur of the moment 12 months ago but now its use merely demonstrates that the\nuser couldn't think of anything original to say.\n\n\nIn the UK there is a tradition of old retired Colnels who bore the dinner\nguests rigid with their descriptions of old campagns. Ed is clearly one\nof this type of people who fails to see when a joke is spent.\n\n\n\nPhill Hallam-Baker\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.155+0000", "event": "documents", "entityId": 3407, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: imj1@cunixa.cc.columbia.edu (Imad M Jureidini)\nSubject: Re: Problems with Toshiba 3401 CDROM\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: imj1@cunixa.cc.columbia.edu (Imad M Jureidini)\nOrganization: Columbia University\nLines: 22\n\nIn article <1r25nt$oa5@ratatosk.uninett.no> hktth@nho.hydro.com writes:\n>In article <1993Apr20.191255.10115@news.columbia.edu>, imj1@cunixa.cc.columbia.edu (Imad M Jureidini) writes:\n>|> Hi!\n>|> \tI recently purchased the Toshiba 3401 CDROM.  I own an Adaptec 1542B\n>|> SCSI card, and I have so far failed to get the CDROM to work under DOS.  It\n>\n>One of the ASPI-drivers (I think it's the ASPICD) supports a /NORST\n>paramter, which means to not reset the SCSI bus when it loads. This\n>fixed the problem a friend of mine was having with his adaptec+tosh \n>3401.\n>\n>Regards,\n>\n>  -Terje\nIt worked!!!\nThank you very much!\n\n\n*******************************************************************************\n* imj1@cunixa.cc.columbia.edu\t\t\t    Imad \"Hexabyte\" Jureidini *\n*     The Ultimate Knight, Grand Priest of the Secrets of the Undefined.      *\n*******************************************************************************\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3408, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kayman@csd-d-3.Stanford.EDU (Robert Kayman)\nSubject: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nOriginator: kayman@csd-d-3.Stanford.EDU\nKeywords: printer\nOrganization: Computer Science Department, Stanford University\nLines: 35\n\n\nHello fellow 'netters.\n\nI am asking for your collected wisdom to help me decide which printer I\nshould purchase, the Canon BJ200 (BubbleJet) vs. the HP DeskJet 500.  I\nthought, rather than trust the salesperson, I would benefit more from\nrelying on those who use these printers daily and use them to their fullest\npotential.  And, I figure all of you will know their benefits and pitfalls\nbetter than any salesperson.\n\nNow, I would greatly appreciate any information you could render on the 360\ndpi of the Canon BubbleJet vs. the Hewlett-Packard DeskJet 500 (300 dpi).\nWhich is faster?  Is there a noticeable print quality difference,\nparticularly in graphics?  Which will handle large documents better (75\npages or more) -- any personal experience on either will be appreciated\nhere?  Which works better under Windows 3.1 (any driver problems, etc)?\nCost of memory, font packages, toner cartridges, etc?  Basically, your\npersonal experiences with either of these machines is highly desirable,\nboth good and bad.\n\nAdvance kudos and thanks for all your input.  E-mail or news posting is\nreadily acceptable, but e-mail is encouraged (limits bandwidth).\n\n--\nSincerely,\n\nRobert Kayman\t----\tkayman@cs.stanford.edu  -or-  cpa@cs.stanford.edu\n\n\"In theory, theory and practice are the same.  In practice, they are not.\"\n\"You mean you want the revised revision of the original revised revision\n revised?!?!\"\n\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3409, "properties": {"category": "rec.autos", "text": "From: ciarlett@mizar.usc.edu (Joni Ciarletta)\nSubject: Master Cylinder\nOrganization: University of Southern California, Los Angeles, CA\nLines: 10\nDistribution: world\nNNTP-Posting-Host: mizar.usc.edu\n\n\nThanks to everyone who responded to my Honda Accord break question.\nIt does seem that the master cylinder is bad. I will have my\nmechanic double check and be sure it isn't something simpler\nand cheaper first, but from your responses it sounds like it\nis very likely to be the master cylinder.\n\nThanks everyone!!\n\nJoni\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3410, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: \"Cruel\" (was Re: <Political Atheists?)\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 20\n\nIn article <1ql8mdINN674@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n>\n>But we were discussing it in relation to the death penalty.  And, the\n>Constitution need not define each of the words within.  Anyone who doesn't\n>know what cruel is can look in the dictionary (and we did).\n>\n\n  Or, with no dictionary available, they could gain first hand\n  knowledge by suffering through one of your posts.\n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3411, "properties": {"category": "soc.religion.christian", "text": "From: randerso@acad1.sahs.uth.tmc.edu (Robert Anderson)\nSubject: When are two people married in God's eyes?\nOrganization: Univ. Texas-Houston Allied Health Sci\nLines: 18\n\nI would like to get your opinions on this: when exactly does an engaged\ncouple become \"married\" in God's eyes?  Some say that if the two have\npublically announced their plans to marry, have made their vows to God, and\nare unswervingly committed to one another (I realize this is a subjective\nqualifier) they are married/joined in God's sight.\n\nSuppose they are unable to get before the altar right at the current time\nbecause of purely logistical reasons beyond their control.  What do you\nthink about this?\n\nPost or e-mail me with general responses.  If you need clarification as to\nwhat I am asking, please e-mail.\n\nThanks and God bless!\n\n============================================\nRobert M. Anderson III\nranderso@acad1.sahs.uth.tmc.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3412, "properties": {"category": "talk.religion.misc", "text": "Organization: City University of New York\nFrom: <KEVXU@CUNYVM.BITNET>\nSubject:    Catholic Right & Pat Robertson\nLines: 49\n\nThe Roman Catholic conservatives are coming out in the open to line\nup with Pat Robertson and his ultra Right Wing Christian Coalition.\nFormer Secretary of Education William Bennet, a Roman Catholic, stood\nbeside the Christian Coalition's spokesman Ralph Reed at a March 3\nconference in Washington.  The purpose of the conference was to\npublish results of a Christian Coalition poll which was designed\nto prove that the Republican party would lose major support if it\nbacked away from the \"Family Values\" positons of the '92 convention.\n\nConservative Catholics have swung behind Robertson's organization\nwith political expertise, legal assistance and high tech communications\nsupport.\n\nThe Catholic Campaign for  American, designed as a Catholic version\nof the Moral Majority, was founded by Marlene Elwell and Tom Wykes.\nMs. Elwell has been with Robertson since the days of his Freedom\nCouncil in 1985 and worked for him in his presidential bid in 1988.\n\nMs. Elwell was hired by Domino's Pizza magnate, Tom Monaghan, in 1989\nto manage Legatus, a \"nonpolitical\", Catholic businessmen's group.\nMembership is limited to Catholics who head corporations with a least $4\nmillion in annual revenues.  Relying on a network of wealthy contacts\nat Legatus, Elwell and Wykes had little trouble forming and funding the\nCatholic Campaign.\n\nThe Campaign's list of national committee members includes U.S. Rep.\nRobert K. Dornan, Phyllis Schlafly of the Eagle Forum, the lovely\nPat Buchanan and Rev. Richard J. Neuhaus.   Also on the national\ncommittee is Keith Fournier, a Catholic who heads Pat Robertson's\nAmerican Center for Law and Justice.  Another Catholic, Thomas\nPatrick Monaghan, senior counsel of Robertson's ACLJ, is also an\nactive supporter of the Catholic Campaign.\n\nThe board of directors includes Frank Shakespeare, broadcasting exec\nand former U.S. ambassador to the Pope, Wall Street executive Frank\nLynch, former Reagan official Richard V. Allen, Bishop Rene Gracida\nof Corpus Christi and Mary Ellen Bork, wife of unsuccessful Supreme\nCourt nominee Robert Bork.\n\nIn the Winter 1992 issue of _Campaign Update_ the organization's\nquarterly newsletter, Rocco L. Martino, a Philadelphia business\nexecutive wrote: \"Separation of church and state is a false premise\nthat must finally be cast aside and replaced by the true meaning of\nour constitution.\"\n\nOh yes, the organization's \"national ecclesisatical advisor\" is\nCatholic politician Cardinal John J. O'Connor of New York.\n\nJack Carroll\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3413, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: How many Mutlus can dance on the head of a pin?\nArticle-I.D.: news.2BC0D53B.20378\nOrganization: University of California, Irvine\nLines: 28\nNntp-Posting-Host: orion.oac.uci.edu\n\nIn article <1993Apr5.211146.3662@mnemosyne.cs.du.edu> jfurr@nyx.cs.du.edu (Joel Furr) writes:\n>In article <3456@israel.nysernet.org> warren@nysernet.org writes:\n>>In <C4xKBx.53F@polaris.async.vt.edu> jfurr@polaris.async.vt.edu (Joel Furr) writes:\n>>>How many Mutlus can dance on the head of a pin?\n>>\n>>That reminds me of the Armenian massacre of the Turks.\n>>\n>>Joel, I took out SCT, are we sure we want to invoke the name of he who\n>>greps for Mason Kibo's last name lest he include AFU in his daily\n>>rounds?\n>\n>I dunno, Warren.  Just the other day I heard a rumor that \"Serdar Argic\"\n>(aka Hasan Mutlu and Ahmed Cosar and ZUMABOT) is not really a Turk at all,\n>but in fact is an Armenian who is attempting to make any discussion of the\n>massacres in Armenia of Turks so noise-laden as to make serious discussion\n>impossible, thereby cloaking the historical record with a tremendous cloud\n>of confusion.  \n\n\nDIs it possible to track down \"zuma\" and determine who/what/where \"seradr\" is?\nIf not, why not? I assu\\me his/her/its identity is not shielded by policies\nsimilar to those in place at \"anonymous\" services.\n\nTim\nD\nD\nD\nVery simpl\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3414, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Washington To Beat Pitt\nArticle-I.D.: netnews.120664\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 32\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <C5J59C.GED@taurus.cs.nps.navy.mil> galvint@cs.nps.navy.mil (thomas galvin) writes:\n>In article <93105.052120RAP115@psuvm.psu.edu> Robbie Po <RAP115@psuvm.psu.edu> writes:\n>>In article <1993Apr14.015415.10176@mprgate.mpr.ca>, tasallot@galaxy.mpr.ca\n>>(Mathew Tasalloti) says:\n>>>chances this year), but it seems to me like Washington is the ONLY\n>>>team that can stop the Penguins from winning their next Stanley Cup.\n>>\n>>  Really? I think both the Islanders and Devils would have a better chance\n>>at the Penguins than the Capitals, IMO.\n>\n>Really?  What makes you think the Islanders have a better shot?  They\n>couldn't even beat the Whalers in two games!\n\nYes, but as has been mentioned many times before, the Islanders play at\nthe talent level of their opponent.  Since Hartford is pitiful, the\nIslanders played pitiful.  Since Pittsburgh is great, the Isles will most\nlikely play great.  This is most likely due to inexperience and very poor\nshooting.  To Greg: yes, I have noticed that the Islanders couldn't hit\nthe broad side of a barn with the puck if they were two feet in front of\nit.  Does anyone have shooting percentages?  I don't know if that would\nhelp, since they often miss the net completely, but it might shed some\nlight on the subject.\n\nAnd, my playoff pool is running!!!  Exact rules to be posted tomorrow, but\ndon't hesitate to send in picks!!!\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3415, "properties": {"category": "rec.autos", "text": "From: rdb1@cbnewsj.cb.att.com (ronald.j.deblock..jr)\nSubject: Re: male/female mystery [ Re: Dumbest automotive concepts of all time ]\nArticle-I.D.: cbnewsj.1993Apr6.171209.13913\nDistribution: na\nOrganization: AT&T\nLines: 15\n\nIn article <1pq8tkINNbek@chester.ksu.ksu.edu> bets@chester.ksu.ksu.edu (Beth Schwindt) writes:\n>\n>Besides which, where would men put all their crap if their wives\n>didn't carry purses? :-)\n>\n>\n>Beth\n>\n\nMy wife rarely carries a purse, so all of her crap ends up in my pockets!\n\n\n-- \nRon DeBlock  rdb1@homxb.att.com  (that's a number 1 in rdb1, not letter l)\nAT&T Bell Labs   Somerset, NJ  USA\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3416, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hurh@fnal.fnal.gov (Patrick Hurh)\nSubject: Cache Card and Optimum Memory Settings?\nOrganization: fnal\nLines: 25\nDistribution: world\nNNTP-Posting-Host: phurh.fnal.gov\n\nHere's a question that may be simple enough to answer, but has stumped\nmyself and a few others:\n\nWhat does an external RAM cache card do for you if you already have a large\ncache set (through control panel) in your SIMMs?\n\nEX:  I have a Mac IIci with 20 meg RAM, an external video card (so I don't\nrob my SIMM's), and the default Apple cache card (I believe this is 32K?). \nSay I have my cache set at 2 MEG, what good does a measly 32K do me on the\ncache card?  Could it actually slow things down by dividing the cache\nbetween the card and the SIMM's?  Or does it still speed things up by\nproviding a 'secondary staging' area for data normally passed directly into\nthe SIMM RAM cache?\n\nI'm confused because it seems like cache cards are so low in memory to\nreally do any good compared to what you can set yourself.  Yet, Daystar\nFastCache has numbers which show around a 30% performance boost on some\noperations.  Are the chips on the cache card simply faster than most SIMM\naccesses?\n\nPlease help, I'm trying to find the optimum memory settings for the IIci\nsystem described in the EX above.\n\n--patrick\nhurh@fnal.fnal.gov\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3417, "properties": {"category": "sci.electronics", "text": "From: jra@law7.DaytonOH.NCR.COM (John Ackermann x 2966)\nSubject: Single chip receiver for FSK?\nReply-To: jra@law7.DaytonOH.NCR.COM (John Ackermann x 2966)\nOrganization: NCR Corporation -- Law Department\nLines: 21\n\nMy next project is to come up with an IF/detector module for fast -- 112\nto 250 kB/sec -- packet radio use.  No fancy modulation scheme, just\nwide FSK for use at 902 or 1296 MHz.\n\nI'm a bit familiar with the Motorola 3362 chip, but I wonder if there\nare newer designs that might work at higher input frequencies.\n\nMy goal is to come up with an inexpensive design for a receiver \"back\nend\" with IF input on one end and an FSK demondulator on the other.  I'm\nparticularly interested in ways to use a higher IF than 10.7 -- do any\ncurrent chips work up to, say 150MHz with internal downconversion so a\nnormal IF filter can be used?\n\nAny suggestions?\n\nJohn\n\n-- \nJohn R. Ackermann, Jr.         Law Department, NCR Corporation, Dayton, Ohio\n(513) 445-2966\t\t       John.Ackermann@daytonoh.ncr.com\nPacket Radio: ag9v@n8acv.oh    tcp/ip: ag9v@ag9v.ampr [44.70.12.232]\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3418, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: phil@howtek.MV.COM (Phil Hunt)\nSubject: Re: com ports /modem/ mouse conflict -REALLY?\nOrganization: Howtek, Inc.\nReply-To: phil@howtek.MV.COM (Phil Hunt)\nX-Mailer: uAccess - Macintosh Release: 1.6v2\nLines: 43\n\n\nIn article <1993Apr11.120848.493@wnbbs.nbg.sub.org> (comp.sys.ibm.pc.hardware,alt.msdos.programmer,comp.sys.ibm.pc.misc,uw.pc.general,uw.pc.ibm,misc.forsale.computers.d,comp.dcom.modems,), oli@wnbbs.nbg.sub.org (Oliver Duesel) writes:\n] Hi there,\n] \n] yuri@windy.Berkeley.EDU (Yuri Yulaev) writes:\n] \n] : \tI have 1s/1p/1g  I/O card in my 386/40 PC. \n] : When I plug in wang modem at com4,it works. If I change\n] : it to com1- it doesn't. \n] : Program \"chkport\" gives diagnostics like \"possible com /irq\n] : conflict at com1\" (with mouse driver in memory).\n] \n] Since your IO-card only has one serial port - this should default to COM1 ? \n] Under MS-DOS, you can't share IRQ's - so you'll have to set either your modem\n] or your mouse to COM2 ... using different adresses and IRQ's.\n] When you set two 'devices' onto the same IRQ - like COM1 and COM3 (or 2 and 4)\n] - the 'latter' one will always win, i.e. if you have your mouse on COM1 and\n] start using your modem on COM3, your modem should work - but your mouse will\n] stop doing so, until reboot.\n] \n] It should be no problem, setting your modem to COM2 ? (you didn't write \n] anything about other peripherals ...)\n] \n] I hope, it helped a bit ....\t\t\t\t\tBy(t)e, Oli.\n] \n] \n\nHi,\n\nI'm kind of new at the pc stuff.  My machine has 4 serial ports.  Com 1 and3\nand 2 &4 share same IRQs.  You mean I can't plug a mouse into Com1 and a modem\ninto com3 and expect both to work?\n\nIf Answer is NO, should I change IRQ's for com ports to be different?  And,\ndoes it really matter which IRQ I set the ports too?\n\nPhil\n\n--------------------------------------------------------------------\nPhil Hunt                          \"Wherever you go, there you are!\"\nHowtek, Inc.\t\t                   \n\nInternet: phil@howtek.MV.COM   uucp: {decvax|harvard}!mv!howtek!phil\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3419, "properties": {"category": "talk.politics.misc", "text": "From: c115184@cs.UAlberta.CA (Merth Eric William)\nSubject: Re: AF/ATS: Red Army Fraction (RAF) communique\nNntp-Posting-Host: assn119.cs.ualberta.ca\nOrganization: University Of Alberta, Edmonton Canada\nLines: 19\n\n\n>In article <C4vBM1.Gs0@NCoast.ORG>, cmort@NCoast.ORG (Christopher Morton) writes:\n\n>|>As quoted from <C4vCtB.J1H@dscomsa.desy.de> by hallam@dscomsa.desy.de (Phill Hallam-Baker):\n>|>\n>|>> Isn't it wonderfull the way people can make the sadistic and indescriminate\n>|>> murder of the Bader-Meinhof gang sound like altruism?\n>|>\n>|>Gee Phil, I'd remember where you are and that these people are monitoring the\n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>|>net.  I'd also remember that they have about as much sense of humor as Ed\n   ^^^\n\nDamn. It isn't Big Brother after all? And all this time I thought that all\nthose revolutionaries, while blowing things up and killing the odd\ninnocent person in the process, really did love all us proles. ('cause\n_everybody knows_ that dialectical materialism will save you [even\nif it has to get you killed first]).\nWhat a fool I've been. \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3420, "properties": {"category": "talk.politics.mideast", "text": "From: bh437292@longs.LANCE.ColoState.Edu (Basil Hamdan)\nSubject: Re: Go Hizbollah II!\nReply-To: bh437292@lance.colostate.edu\nNntp-Posting-Host: traver.lance.colostate.edu\nOrganization: Engineering College, Colorado State University\nLines: 15\n\nIn article <1993Apr24.202201.1@utxvms.cc.utexas.edu>, ifaz706@utxvms.cc.utexas.edu (Noam Tractinsky) writes:\n|>      Paraphrasing a bit, with every rocket that \n|> \tthe Hizbollah fires on the Galilee, they justify Israel's \n|> \tholding to the security zone. \n|> \n|> Noam\n\n\n\nI only want to say that I agree with Noam on this point\nand I hope that all sides stop targeting civilians.\n\nBasil \n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3421, "properties": {"category": "rec.autos", "text": "From: aas7@po.CWRU.Edu (Andrew A. Spencer)\nSubject: Re: Too fast\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 25\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, wrat@unisql.UUCP (wharfie) says:\n\n>In article <1qkon8$3re@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>>larger engine.  That's what the SHO is -- a slightly modified family\n>>sedan with a powerful engine.  They didn't even bother improving the\n>>*brakes.*\n>\n>\tThat shows how much you know about anything.  The brakes on the\n>SHO are very different - 9 inch (or 9.5? I forget) discs all around,\n>vented in front.  The normal Taurus setup is (smaller) discs front, \n>drums rear.\n\none i saw had vented rears too...it was on a lot.\nof course, the sales man was a fool...\"titanium wheels\"..yeah, right..\nthen later told me they were \"magnesium\"..more believable, but still\ncrap, since Al is so m uch cheaper, and just as good....\n\n\ni tend to agree, tho that this still doesn't take the SHO up to \"standard\"\nfor running 130 on a regular basis.  The brakes should be bigger, like\n11\" or so...take a look at the  ones on the Corrados.(where they have\nbraking regulations).\n\nDREW\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3422, "properties": {"category": "sci.space", "text": "From: clarke@acme.ucf.edu (Thomas Clarke)\nSubject: Re: pushing the envelope\nOrganization: University of Central Florida\nDistribution: na\nLines: 18\n\n> In <1993Apr3.233154.7045@Princeton.EDU> lije@cognito.Princeton.EDU (Elijah  \nMillgram) writes:\n> \n> \n> A friend of mine and I were wondering where the expression \"pushing\n> the envelope\" comes from.  Anyone out there know?\n> \nEverbody has been defining envelope.\nWhy was the world \"envelope\" chosen, rather than say \"shell\", \nor \"boundary\".  In analogy with the envelopes of airships perhaps?\n\nActually, \"shell\" might be good.  Push the shell too hard and\nit (the aircraft?) breaks. \n--\nThomas Clarke\nInstitute for Simulation and Training, University of Central FL\n12424 Research Parkway, Suite 300, Orlando, FL 32826\n(407)658-5030, FAX: (407)658-5059, clarke@acme.ucf.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3423, "properties": {"category": "sci.space", "text": "From: wdwells@nyx.cs.du.edu (David \"Fuzzy\" Wells)\nSubject: Re: Space Debris\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 6\n\n>There is a guy in NASA Johnson Space Center  that might answer \n>your question. I do not have his name right now but if you follow \n>up I can dig that out for you.\n\nKeesler, Loftus, Potter, Stansbery, Kubriek....?\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3424, "properties": {"category": "rec.sport.hockey", "text": "From: dwarf@bcarh601.bnr.ca (W. Jim Jordan)\nSubject: Re: Truly a sad day for hockey\nNntp-Posting-Host: bcarh601\nOrganization: Bell-Northern Research Ltd., Ottawa, Ontario, Canada\nLines: 19\n\nFarewell, Minnesota fans.  Get stuffed, Dallas Stars.\n\nAs the North Stars fade to black, I hope that Minneapolis/St. Paul are\nnot long without an NHL team.  It just seems \"right\" that the hotbed of\namateur hockey in the USA should have an NHL team as well.  The loss of\nthe team is certainly not the fault of the fans (though the start of the\n1989-90 season made it look real bad for a while).\n\nI wish now that I kept the North Stars cap I bought at Maple Leaf\nGardens the morning after they eliminated Montreal in 1980.  (I got it\nto spite the Montreal fans in the small town where I grew up.)  What a\nglorious season that was for the North Stars!\n\n     dwarf\n--\nW. Jim Jordan                           \"I don't mean to tell you how to live\ndwarf@x400gate.bnr.ca (Internet)         your life--that's what the TV's for--\nI work for BNR; I do not speak for it.   but if I didn't believe in Jesus, I'd\n                                         be going to hell.\"      - Peter Heath\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3425, "properties": {"category": "comp.graphics", "text": "From: jonas-y@isy.liu.se (Jonas Yngvesson)\nSubject: Re: Point within a polygon\nKeywords: point, polygon\nOrganization: Dept of EE, University of Linkoping\nLines: 129\n\nscrowe@hemel.bull.co.uk (Simon Crowe) writes:\n\n>I am looking for an algorithm to determine if a given point is bound by a \n>polygon. Does anyone have any such code or a reference to book containing\n>information on the subject ?\n\nWell, it's been a while since this was discussed so i take the liberty of\nreprinting (without permission, so sue me) Eric Haines reprint of the very\ninteresting discussion of this topic...\n\n                /Jonas\n\n                         O /         \\ O\n------------------------- X snip snip X ------------------------------\n                         O \\         / O\n\n\"Give a man a fish, and he'll eat one day.\nGive a man a fishing rod, and he'll laze around fishing and never do anything.\"\n\nWith that in mind, I reprint (without permission, so sue me) relevant\ninformation posted some years ago on this very problem.  Note the early use of\nPostScript technology, predating many of this year's papers listed in the\nApril 1st SIGGRAPH Program Announcement posted here a few days ago.\n\n-- Eric\n\n\nIntersection Between a Line and a Polygon (UNDECIDABLE??),\n\tby Dave Baraff, Tom Duff\n\n\tFrom: deb@charisma.graphics.cornell.edu\n\tNewsgroups: comp.graphics\n\tKeywords: P, NP, Jordan curve separation, Ursyhon Metrization Theorem\n\tOrganization: Program of Computer Graphics\n\nIn article [...] ncsmith@ndsuvax.UUCP (Timothy Lyle Smith) writes:\n>\n>  I need to find a formula/algorithm to determine if a line intersects\n>  a polygon.  I would prefer a method that would do this in as little\n>  time as possible.  I need this for use in a forward raytracing\n>  program.\n\nI think that this is a very difficult problem.  To start with, lines and\npolygons are semi-algebraic sets which both contain uncountable number of\npoints.  Here are a few off-the-cuff ideas.\n\nFirst, we need to check if the line and the polygon are separated.  Now, the\nJordan curve separation theorem says that the polygon divides the plane into\nexactly two open (and thus non-compact) regions.  Thus, the line lies\ncompletely inside the polygon, the line lies completely outside the polygon,\nor possibly (but this will rarely happen) the line intersects the polyon.\n\nNow, the phrasing of this question says \"if a line intersects a polygon\", so\nthis is a decision problem.  One possibility (the decision model approach) is\nto reduce the question to some other (well known) problem Q, and then try to\nsolve Q.  An answer to Q gives an answer to the original decision problem.\n\nIn recent years, many geometric problems have been successfully modeled in a\nnew language called PostScript.  (See \"PostScript Language\", by Adobe Systems\nIncorporated, ISBN # 0-201-10179-3, co. 1985).\n\nSo, given a line L and a polygon P, we can write a PostScript program that\ndraws the line L and the polygon P, and then \"outputs\" the answer.  By\n\"output\", we mean the program executes a command called \"showpage\", which\nactually prints a page of paper containing the line and the polygon.  A quick\nexamination of the paper provides an answer to the reduced problem Q, and thus\nthe original problem.\n\nThere are two small problems with this approach. \n\n\t(1) There is an infinite number of ways to encode L and P into the\n\treduced problem Q.  So, we will be forced to invoke the Axiom of\n\tChoice (or equivalently, Zorn's Lemma).  But the use of the Axiom of\n\tChoice is not regarded in a very serious light these days.\n\n\t(2) More importantly, the question arises as to whether or not the\n\tPostScript program Q will actually output a piece of paper; or in\n\tother words, will it halt?\n\n\tNow, PostScript is expressive enough to encode everything that a\n\tTuring Machine might do; thus the halting problem (for PostScript) is\n\tundecidable.  It is quite possible that the original problem will turn\n\tout to be undecidable.\n\n\nI won't even begin to go into other difficulties, such as aliasing, finite\nprecision and running out of ink, paper or both.\n\nA couple of references might be:\n\n1. Principia Mathematica.  Newton, I.  Cambridge University Press, Cambridge,\n   England.  (Sorry, I don't have an ISBN# for this).\n\n2. An Introduction to Automata Theory, Languages, and Computation.  Hopcroft, J\n   and Ulman, J.\n\n3. The C Programming Language. Kernighan, B and Ritchie, D.\n\n4. A Tale of Two Cities. Dickens, C.\n\n--------\n\nFrom: td@alice.UUCP (Tom Duff)\nSummary: Overkill.\nOrganization: AT&T Bell Laboratories, Murray Hill NJ\n\nThe situation is not nearly as bleak as Baraff suggests (he should know\nbetter, he's hung around The Labs for long enough).  By the well known\nDobbin-Dullman reduction (see J. Dullman & D. Dobbin, J. Comp. Obfusc.\n37,ii:  pp. 33-947, lemma 17(a)) line-polygon intersection can be reduced to\nHamiltonian Circuit, without(!) the use of Grobner bases, so LPI (to coin an\nacronym) is probably only NP-complete.  Besides, Turing-completeness will no\nlonger be a problem once our Cray-3 is delivered, since it will be able to\ncomplete an infinite loop in 4 milliseconds (with scatter-gather.)\n\n--------\n\nFrom: deb@svax.cs.cornell.edu (David Baraff)\n\nWell, sure its no worse than NP-complete, but that's ONLY if you restrict\nyourself to the case where the line satisfies a Lipschitz condition on its\nsecond derivative.  (I think there's an '89 SIGGRAPH paper from Caltech that\ndeals with this).\n\n--\n------------------------------------------------------------------------------\n J o n a s   Y n g v e s s o n          email: jonas-y@isy.liu.se\nDept. of Electrical Engineering\t        voice:  +46-(0)13-282162          \nUniversity of Linkoping, Sweden         fax  :  +46-(0)13-139282\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3426, "properties": {"category": "misc.forsale", "text": "Organization: Stanford Linear Accelerator Center\nFrom: <BROSE@SLACVM.SLAC.STANFORD.EDU>\nSubject: Hummel Collectors (1 left)\nLines: 13\n\n\"Chimney Sweep\" number 12/I (5-1/2 to 6-1/2\"), closed edition,\n3 or 4 line (Purchased in West Germany in 1970) (Retail $270)\nSell $120 (S&H extra)\n\nI have a picture of it if you want to see first; in excellent\nshape, no chips or cracks).\n\nGreat idea for Mother's Day.  This is a great buy.\n\nInterested?  Please E-mail or call (415) 926-2664 wk\nor (408) 248-0411 eves.\n\nBRose\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3427, "properties": {"category": "sci.med", "text": "From: calzone@athena.mit.edu\nSubject: Re: Eumemics (was: Eugenics)\nOrganization: Massachusetts Institute of Technology\nLines: 25\nDistribution: world\nNNTP-Posting-Host: w20-575-56.mit.edu\n\n\n\n>Probably within 50 years, it will be possible to disassemble and\n>re-assemble our bodies at the molecular level.  Not only will flawless\n>cosmetic surgery be possible, but flawless cosmetic PSYCHOSURGERY.\n>\n>What will it be like to store all the prices of shelf-priced bar-coded\n>goods in your head, and catch all the errors they make in the store's\n>favor at SAFEWAY?  What will it be like to mentally edit and spell-\n>check your responses to the questions posed by a phone caller selling\n>VACATION TIME-SHARE OPTIONS?\n\n\nYou are absolutely daft.  No flame required.  You lack a brain.\n\n> ...[sic]...\n>Memes are the basic units of culture, as opposed to genes\n>which are the units of genetics.\n\n\nWell... at least you're educated, it seems.  But give credit\nwhere credit is due: to Richard Dawkin(s?) \n(the meme is a meme he invented)\n\n-zone\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3428, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: SHO and SC\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 42\n\nIn article <1993Apr15.232412.2261@ganglion.ann-arbor.mi.us> david@ganglion.ann-arbor.mi.us (David Hwang) writes:\n>In article <5214@unisql.UUCP> wrat@unisql.UUCP (wharfie) writes:\n>>In article <chrissC587qB.D1B@netcom.com> chriss@netcom.com (Chris Silvester) writes:\n>>\n>>>WAGON, which I have heard is somehow slightly faster than the Coupe.\n>>\n>>\tWagon has an automatic, it's slower.\n>>\n>Could be due to the rear-end ratio also.  \n>\n>Usually automatics have different rear-ends than manuals, from\n>my limited experience anyways.\n\nYou'll have fun looking for the rear-end gears on an SHO--the Taurus\nis a front-wheel-drive vehicle...\n\nI went back and checked the article again; The SHO Wagon is quicker\nthan the SHO automatic, but significantly slower than the REAL SHO.\n\nWhy anyone would order an SHO with an automatic transmission is\nbeyond me; if you can't handle a stick, you should stick with a\nregular Taurus and leave the SHO to real drivers. That is not to\nsay that there aren't real drivers who can't use the stick (eg\ndisabled persons), but they aren't in any position to use an\nSHO anyway. \n\nI would be willing to bet that if we removed the automatic\ntransmissions from all \"performance-type\" cars (like the 5.0l\nMustangs, Camaros, and the like) we'd cut down on the number of\naccidents each year. Autos are fine for sedate little sedans,\nbut they have no business in performance cars, IMHO.\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3429, "properties": {"category": "sci.crypt", "text": "From: karn@servo.qualcomm.com (Phil Karn)\nSubject: Re: Re-inventing Crypto Policy?  An EFF Statement\nNntp-Posting-Host: servo.qualcomm.com\nReply-To: karn@chicago.qualcomm.com\nOrganization: Qualcomm, Inc\nLines: 17\n\nIn article <1qna0tINNf5p@rodan.UU.NET>, avg@rodan.UU.NET (Vadim Antonov) writes:\n|> I somehow started to doubt technical competence of the\n|> people who designed the system.  Why on the Earth split the\n|> 80-bit key in 40-bit parts to keep them in escrow separately\n|> (having 40 bit and large volumes of data voice links produce\n|> it should be relatively easy to break it) when they simply\n|> could keep 80-bit sequences in N (N>=2) independent places\n|> and then XOR all the partial keys to get the actual key (N-1\n|> sequences should obviously be selected randomly and Nth is the\n|> actual key XOR-ed with the random sequences).\n\nWithout real technical details, it's hard to answer this question. But\nsuppose they already *are* XORing the two 40-bit parts to produce only\n40 bits of real key material? Maybe they're using the exportable version\nof RC2...? :-)\n\nPHil\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3430, "properties": {"category": "rec.sport.baseball", "text": "From: dwarner@journalism.indiana.edu (David J.)\nSubject: Re: 1993 NL East Champion PHILLIES\nArticle-I.D.: usenet.C51J5C.AMx\nReply-To: dwarner@journalism.indiana.edu\nOrganization: Indiana University\nLines: 12\nNntp-Posting-Host: poppy.journalism.indiana.edu\n\nRobert C Hite writes\n> Here are the projected lineups, benches, rotation and bullpen for\n> the 1993 National League East Champion Philadelphia Phillies:\n\nI think the only Phillies in effect here are Philly Blunts.  Of course, if this  \nall becomes true, I'll be the first to smoke one myself.\n\n--\nDavid J.(dwarner@journalism.indiana.edu)*****Blue Riddle Productions 1993\n*-------------------------------It's on.--------------------------------*\n***\"THE RAP IS AN ART EP\" is coming out on tape -- this time for real.***\n*------------------------E-mail me for the 411.-------------------------*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.156+0000", "event": "documents", "entityId": 3431, "properties": {"category": "sci.electronics", "text": "From: hooperw@spot.Colorado.EDU (Wayne Hooper)\nSubject: Re: making copy of a Video tape\nKeywords: video\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 13\n\nvictor@inqmind.bison.mb.ca (Victor Laking) writes:\n\n>You are experiencing what is called Macrovision.  It is the protection \n>that they use on the video tapes.  There are two ways around this that I \n>know of.  First of all, you can try using a different VCR to copy onto.\n>It is the input of the VCR that reacts to the protection so sometimes \n>just switching the two VCRs around will take care of it.  Some models \n>just don't react to it.\n\nDoes this also affect the viewing of tapes ? I have had problems with\na couple of rented tapes; they were virtually unviewable. I fiddled \nwith the tuning, tracking and vertical hold but it was no good.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3432, "properties": {"category": "rec.motorcycles", "text": "From: mellon@ncd.com (Ted Lemon)\nSubject: Re: Shipping a bike\nOrganization: Network Computing Devices, Inc.\nLines: 14\nNNTP-Posting-Host: pepper.ncd.com\nIn-reply-to: manish@uclink.berkeley.edu's message of 15 Apr 93 20:51:02 GMT\n\n\n>Can someone recommend how to ship a motorcycle from San Francisco\n>to Seattle?  And how much might it cost?\n\nI'd recommend that you hop on the back of it and cruise - that's a\nreally nice ride, if you choose your route with any care at all.\nShouldn't cost more than about $30 in gas, and maybe a night's motel\nbill...\n\n\t\t\t       _MelloN_\n--\nmellon@ncd.com\t\t\t\t\t\tuunet!lupine!mellon\nMember of the League for Programming Freedom.   To find out how software\npatents may cost you your right to program, contact lpf@uunet.uu.net\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3433, "properties": {"category": "sci.electronics", "text": "From: jeh@cmkrnl.com\nSubject: Electrical wiring FAQ (was: A question about 120VAC outlet wiring..\nReply-To: wirefaq@ferret.ocunix.on.ca\nKeywords: 120 240 AC outlets wiring power shock gfci\nExpires: 15 May 93 21:35:16 PDT\nDistribution: world\nOrganization: Kernel Mode Systems, San Diego, CA\nLines: 1547\n\nSince electrical wiring questions do turn up from time to time on\nsci.electronics (and the answers aren't always apparent, even to those skilled\nin electronics), I am hijacking the following FAQ and posting a copy here. \nI've asked the writers to cross-post to sci.electronics in the future. \n\n\t--- jeh@cmkrnl.com\n\n\nX-NEWS: cmkrnl news.answers: 6685\nNewsgroups: misc.consumers.house,rec.woodworking,news.answers,misc.answers,rec.answers\nSubject: Electrical Wiring FAQ\nMessage-ID: <wirefaq_733900891@ecicrl>\nFrom: clewis@ferret.ocunix.on.ca (Chris Lewis)\nDate: 4 Apr 93 05:21:49 GMT\nReply-To: wirefaq@ferret.ocunix.on.ca (Wiring FAQ commentary reception)\nFollowup-To: poster\nExpires: 2 May 93 05:21:31 GMT\nOrganization: Elegant Communications Inc., Ottawa, Canada\nSummary: A series of questions and answers about house wiring\nSupersedes: <wirefaq_732691289@ecicrl>\nLines: 1524\n\nArchive-name: electrical-wiring\nLast-modified: Sun Feb 21 16:56:10 EST 1993\n\n\t    Frequently Asked Questions on Electrical Wiring\n\n\t\tSteven Bellovin (smb@ulysses.att.com)\n\t\tChris Lewis (clewis@ferret.ocunix.on.ca)\n\n\t    Comments to (automatic if you reply to this article):\n\t\t    wirefaq@ferret.ocunix.on.ca\n\nThis FAQ is formatted as a digest.  Most news readers can\nskip from one question to the next by pressing ^G.\n\nAnswers to many other topics related to houses can be obtained from\nthe misc.consumers.house archive; send an empty piece of mail to\nhouse-archive@dg-rtp.dg.com for information.\n\nChanges to previous issue marked with \"|\" in left column.  Watch\nparticularly for \"NEW\" in the Questions list for new or substantively\nchanged answers.\n\nNote that this is now a registered FAQ - cross-posted to news.answers\nand should appear in the FAQ list of lists.\n\nSubject: Questions answered in this FAQ\n\n\tIntroduction/Disclaimers\n\tWhat is the NEC?  Where can I get a copy?\n\tWhat is the CEC?  Where can I get a copy?\n\tCan I do my own wiring?  Extra pointers?\n\tWhat do I need in the way of tools?\n\tWhat is UL listing?\n\tWhat is CSA approval?\n\tAre there any cheaper, easier to read books on wiring?\n\tInspections how and what?  Why should I get my wiring inspected?\n\tMy house doesn't meet some of these rules and regulations.\n\tA word on voltages: 110/115/117/120/125/220/240\n\tWhat does an electrical service look like?\n\tWhat is a circuit?\n\t\"grounding\" versus \"grounded\" versus \"neutral\".\n\tWhat does a fuse or breaker do?  What are the differences?\n\tBreakers?  Can't I use fuses?\n\tWhat size wire should I use?\n\tWhere do these numbers come from?\n\tWhat does \"14-2\" mean?\n\tWhat is a \"wirenut\"/\"marrette\"/\"marr connector\".  How are they used?\n\tWhat is a GFI/GFCI?\n\tWhere should GFCIs be used?\n\tWhere shouldn't I use a GFCI?\n\tWhat is the difference between a GFCI outlet and a GFCI breaker?\n\tWhat's the purpose of the ground prong on an outlet, then?\n\tWhy is one prong wider than the other?  Polarization\n\tWhat kind of outlets do I need in a kitchen?\n\tWhere must outlets and switches be in bathrooms?\n\tWhat is Romex/NM/NMD?  What is BX?  When should I use each?\n\tShould I use plastic or metal boxes?\n\tJunction box positioning?\n\tCan I install a replacement fixture?\n\tWhat does it mean when the lights brighten when a motor starts?\n\tWhat is 3 phase power?  Should I use it?  Can I get it in my house?\n\tIs it better to run motors at 110 or 220?\n\tWhat is this nonsense about 3HP on 110V 15A circuits?\n\tHow do I convert two prong receptacles to three prong?\n\tAre you sure about GFCIs and ungrounded outlets?\n\t    Should the test button work?\n\tHow should I wire my shop?\n\tUnderground wiring\n\tAluminum wiring\n\tI'm buying a house!  What should I do?\n\tWhat is this weird stuff?  Old style wiring\n\tWhere do I buy stuff?\n\n\nSubject: Introduction/Disclaimers\n\n\tAlthough we've done a fair bit of wiring, we are not\n\telectricians, and we cannot be responsible for what you do.  If\n\tyou're at all uncertain about what is correct or safe, *don't\n\tdo it*.  Contact someone qualified -- a licensed electrician,\n\tor your local electrical inspector.  Electricity is no joke;\n\tmistakes can result in shocks, fires, or electrocution.\n\n\tFurthermore, our discussion is based on the U.S. National\n\tElectrical Code (NEC) and the Canadian Electrical code (CEC).\n\tTo the best of our abilities, we have confirmed every detail\n\twith the electrical code, but we don't quote sections\n\tsimply to keep this thing readable.  If you think we're wrong,\n\twe invite you to correct us, but please - quote references!\n\n\tThe NEC and the CEC do not, in and of themselves, have the\n\tforce of law.  Many municipalities adopt it en toto.  Others,\n\thowever, do not.  Check your with your local building\n\tdepartment (and <provincial> Hydro Inspection Offices in\n\tCanada) to find out what applies in your area.  Also,\n\tyour local electrical utility may also have special requirements\n\tfor electrical service installation.  Bear in mind, too, that\n\twe say here applies primarily to ordinary single-family\n\tresidences.  Multi-family dwellings, mobile homes, commercial\n\testablishments, etc., are sometimes governed by different\n\trules.\n\n\tAlso note that, contrary to popular belief in the U.S. (and in\n\tsome parts of Canada), Canada is not a wholly-owned subsidiary\n\tof the U.S.  Consequently, the NEC does not apply in Canada.\n\tLots of things are the same, including voltages, line\n\tfrequencies, and the laws of physics.  But there are a number\n\tof crucial differences in the regulations.  Where we can, we've\n\tnoted them, flagging the relevant passages with ``NEC'' or\n\t``CEC''.\n\n\tRemember that the CEC and NEC are minimal standards.  It is often\n\tsmart to go beyond their minimal requirements.\n\nSubject: What is the NEC?  Where can I get a copy?\n\n\tThe NEC is a model electrical code devised and published by the\n\tNational Fire Protection Association, an insurance industry group.\n\tIt's revised every three years.  The 1993 version has been released.\n\tYou can buy a copy at a decent bookstore, or by calling them directly\n\tat 800-344-3555.  The code exists in several versions.  There's the\n\tfull text, which is fairly incomprehensible.  There's an abridged\n\tedition, which has only the sections likely to apply to most houses.\n\tAnd there's the NEC Handbook, which contains the ``authorized\n\tcommentary'' on the code, as well as the full text.  That's the\n\trecommended version.  Unfortunately, there's no handbook for\n\tthe abridged edition.  And the full handbook is expensive --\n\tUS$65 plus shipping and handling.\n\nSubject: What is the CEC?  Where can I get a copy?\n\n\tThe Canadian Standards Association is an organization made up\n\tof various government agencies, power utilities, insurance\n\tcompanies, electrical manufacturers and other organizations.\n\tThe CSA publishes CSA Standard C22.1 which is updated every two\n\tor three years.  Each province adopts, with some amendments,\n\tthis standard and publishes a province-specific code book.\n\tSince each province publishes its own slightly modified\n\tstandard, it would be somewhat confusing to obtain the CSA\n\tstandard itself.  In this FAQ, \"CEC\" really means the\n\tappropriate provincial standard.  In particular, this FAQ is\n\tderived from the Ontario Hydro Electrical Safety Code, 20th\n\tedition (1990).  Which is in turn based on CSA C22.1-1990 (16th\n\tedition).  While differences exist between the provinces, an\n\tattempt has been made to avoid specific-to-Ontario detail.\n\n\tThe appropriate provincial code can be obtained from electrical\n\tinspection offices of your provincial power authority.  In\n\tOntario, it's Ontario Hydro.  The Ontario Hydro book isn't\n\toverly fat.  It's about C$25, and includes mailed updates.  I\n\thear that these standards are somewhat easier to read than the\n\tequivalent NEC publications.\n\n\tDon't bother asking in Quebec - DIY wiring is banned throughout\n\tthe province.\n\nSubject: Can I do my own wiring?  Extra pointers?\n\n\tIn most places, homeowners are allowed to do their own wiring.\n\tIn some, they're not.  Check with your local electrical\n\tinspector.  Most places won't permit you to do wiring on other's\n\thomes for money without a license.  Nor are you permitted to do\n\twiring in \"commercial\" buildings.  Multiple dwellings (eg: duplexes)\n\tare usually considered \"semi-commercial\" or \"commercial\".  However,\n\tmany jurisdictions will permit you to work on semi-commercial\n\twiring if you're supervised by a licensed electrician - if you can\n\tfind one willing to supervise.\n\n\tIf you do your own wiring, an important point:\n\n\tDo it NEAT and WELL!  What you really want to aim for is a better\n\tjob than an electrician will do.  After all, it's your own home,\n\tand it's you or your family that might get killed if you make\n\ta mistake.  An electrician has time pressures, has the skills\n\tand knows the tricks of the trade to do a fast, safe job.\n\tIn this FAQ we've consciously given a few recommendations that\n\tare in excess of code, because we feel that it's reasonable,\n\tand will impress the inspector.\n\n\tThe inspector will know that you're an amateur.  You have to\n\tearn his trust.  The best way of doing this is to spend your\n\ttime doing as neat a job as possible.  Don't cut corners.\n\tExceed specifications.  Otherwise, the inspector may get extremely\n\tpicky and fault you on the slightest transgressions.\n\n\tDon't try to hide anything from the inspector.\n\n\tUse the proper tools.  Ie: don't use a bread knife to strip\n\twires, or twist wires with your fingers.  The inspector\n\twon't like it, and the results won't be that safe.  And it\n\ttakes longer.  And you're more likely to stick a hunk of\n\t12ga wire through your hand that way.\n\n\tDon't handle house wire when it's very cold (eg: below -10C\n\tor 16F).  Thermoplastic house wire, particularly older types\n\tbecome very brittle.\n\nSubject: What do I need in the way of tools?\n\n\tFirst, there's the obvious -- a hammer, a drill, a few\n\tscrewdrivers, both straight and Phillips-head.  If you're \n\tlucky enough to live in Canada (or find a source of CSA-approved\n\tdevices) you need Robertson (\"square recess\") screwdrivers\n\t(#1 and #2) instead of phillips.\n\n\tFor drilling a few holes, a 3/4\" or 1\" spade bit and 1/4\" or\n\t3/8\" electric drill will do.  If you're doing a lot, or\n\tare working with elderly lumber, we recommend a 1/2\" drill\n\t(right-angle drills are wonderful.  Can be rented) and\n\t3/4\" or 1\" screw-point auger drill bits.  These bits pull\n\tyou through, so they're much faster and less fatiguing, even\n\tin 90 year old hardwood timbers.\n\n\tScrew-driver bits are useful for drills, expecially if you\n\tinstall your electrical boxes using screws (drywall screws\n\twork well).\n\t\n\tFor stripping wire, use a real wire stripper, not a knife or\n\tordinary wire cutters.  Don't buy the $3 K-mart \"combo stripper,\n\tcrimper and bottle opener\" types.  You should expect to pay\n\t$15 to $20 for a good \"plier-type\" pair.  It will have sized\n\tstripping holes, and won't nick or grab the wire - it should\n\tbe easy to strip wire with it.  One model has a small hole in the\n\tblade for forming exact wire loops for screw terminals.  There\n\tare fancier types (autostrip/cut), but they generally aren't\n\tnecessary, and pros usually don't use them.\n\n\tA pair of diagonal side cutter pliers are useful for clipping ends\n\tin constricted places.  Don't use these for stripping wire.\n\n\tYou will need linesman pliers for twisting wires for wire nuts.\n\n\tYou should have a pair of needle-nose pliers for fiddling\n\tinside boxes and closing loops, but it's better to form wire\n\tloops with a \"loop former hole\" on your wire stripper - more\n\taccurate.\n\n\tIf you're using non-metallic cable, get a cable stripper for\n\tremoving the sheath.  Or, do what some pros do, they nick the\n\tend of the sheath, grab the ground wire with a pair of pliers,\n\tand simply rip the sheath back using the ground wire as a\n\t\"zipper\", and cut the sheath off.  You shouldn't try to strip\n\tthe sheath with a knife point, because it's too easy to\n\tslash the insulation on the conductors.  Apparently Stanley\n\tutility knives fitted with linoleum cutters (hooked blades)\n\tcan be used to strip sheath, but there is still the possibility\n\tthat you'll gouge the conductors.\n\n\tFor any substantial amount of work with armored cable, it's well\n\tworth your while to invest in a rotary cable splitter (~US$ 18).\n\tHack saws are tricky to use without cutting into the wire\n\tor the insulation.\n\n\tThree-prong outlet testers are a quick check for properly-wired\n\toutlets.  About $6.  Multimeters tell you more, but are a lot more\n\texpensive, and probably not worth it for most people.  A simple\n\tvoltage sensor, which can detect potential through an insulated\n\twire not supplying any devices, is extremely helpful; they cost\n\tabout US$ 10 at Radio Shack.\n\n\tYou should have a voltage detector - to check that the wires are\n\tdead before doing work on them.  Neon-bulb version are cheap ($2-3)\n\tand work well.  If you get more serious, a \"audible alarm\" type is\n\tgood for tracing circuits without a helper.  (Though I've been known\n\tto lock the drill on, and hit breakers until the scream stops ;-)\n\n\tFor running wires through existing walls, you need fish tape.\n\tOften, two tapes are needed, though sometimes, a bent hanger or\n\ta length of thin chain will suffice.  Fish tapes can be rented.\n\n\tElectrical tape.  Lots of it ;-)  Seriously, a good and competent\n\twiring job will need very little tape.  The tape is useful for\n\twrapping dicy insulation in repair work.  Another use is to wrap \n\taround the body of outlets and switches to cover the termination\n\tscrews - I don't do this, but drywall contractors prefer it (to\n\tprevent explosions when the drywall knife collides with a live outlet\n\tthat has no cover plate).\n\nSubject: What is UL listing?\n\n\tThe UL stands for \"Underwriters Laboratory\".  It used to be\n\tan Insurance Industry organization, but now it is independent\n\tand non-profit.  It tests electrical components and equipment\n\tfor potential hazards.  When something is UL-listed, that means\n\tthat the UL has tested the device, and it meets their requirements\n\tfor safety - ie: fire or shock hazard.  It doesn't necessarily\n\tmean that the device actually does what it's supposed to, just\n\tthat it probably won't kill you.\n\n\tThe UL does not have power of law in the U.S. -- you are\n\tpermitted to buy and install non-UL-listed devices.  However,\n\tinsurance policies sometimes have clauses in them that will\n\tlimit their liability in case of a claim made in response to\n\tthe failure of a non-UL-listed device.  Furthermore, in\n\tmany situations the NEC will require that a wiring component\n\tused for a specific purpose is UL-listed for that purpose.\n\tIndirectly, this means that certain parts of your wiring\n\tmust be UL-listed before an inspector will approve it and/or\n\toccupancy permits issued.\n\t\nSubject: What is CSA approval?\n\n\tEvery electrical device or component must be certified by the\n\tCanadian Standards Association before it can be sold in\n\tCanada.  Implicit in this is that all wiring must be done\n\twith CSA-approved materials.  They perform testing similar to\n\tthe UL (a bit more stringent), except that CSA approval is\n\trequired by law.\n\n\tAgain, like the UL, if a fire was caused by non-CSA-approved\n\tequipment, your insurance company may not have to pay the\n\tclaim.\n\n\tIn Canada, there is a branch organization of the UL, called ULC\n\t(UL of Canada).  ULC does not have power of law, and seems to\n\tbe more a liason group between the CSA and insurance\n\tcompanies.\n\nSubject: Are there any cheaper, easier to read books on wiring?\n\n\tUSA: The following three books were suggested by our readers\n\n\t    Residential Wiring\n\t    by Jeff Markell,\n\t    Craftsman Books,\n\t    Carlsbad CA for $18.25. ISBN 0-934041-19-9.\n\n\t    Practical Electrical Wiring\n\t    Residential, Farm and Industrial,  Based on the National\n\t    Electrical Code    ANSI/NFPA 70\n\t    Herbert P. Richter and W. Creighton Schwan\n\t    McGraw-Hill Book Co.\n\n\t    Wiring Simplified\n\t    H. P. Richter and W. C. Schwan\n\t    Park Publishing Co.\n\t\n\tTry to make sure that the book is based on the latest NEC\n\trevision.  Which is currently 1990.\n\n\tCanada: P.S. Knight authors and publishes a book called\n\t\"Electrical Code Simplified\".  There appears to be a version\n\tpublished specific to each province, and is very tied into the\n\tappropriate provincial code.  It focuses on residential wiring,\n\tand is indispensible for Canadian DIY'ers.  It is better to get\n\tthis book than the CEC unless you do a lot of wiring (or answer\n\tquestions on the net ;-).\n\n\tIt is updated each time the provincial codes are.  This book is\n\tavailable at all DIY and hardware stores for less than C$10.\n\nSubject: Inspections how and what?  Why should I get my wiring inspected?\n\n\tMost jurisdictions require that you obtain a permit and\n\tinspections of any wiring that is done.  Amongst other more\n\tmundane bureaucratic reasons (like insurance companies not\n\tliking to have to pay claims), a permit and inspections\n\tprovides some assurance that you, your family, your neighbors\n\tor subsequent owners of your home don't get killed or lose\n\ttheir homes one night due to a sloppy wiring job.\n\n\tMost jurisdictions have the power to order you to vacate your\n\thome, or order you to tear out any wiring done without a\n\tpermit.  California, for instance, is particularly nasty about\n\tthis.\n\n\tIf fire starts in your home, and un-inspected wiring is at\n\tfault, insurance companies will often refuse to pay the damage\n\tclaims.\n\n\tIn general, the process goes like this:\n\t\t- you apply to your local inspections office or building\n\t\t  department for a permit.  You should have a sketch or\n\t\t  detailed drawing of what you plan on doing.  This is\n\t\t  a good time to ask questions on any things you're not\n\t\t  sure of.  If you're doing major work, they may impose\n\t\t  special conditions on you, require loading\n\t\t  calculations and ask other questions.  At this point\n\t\t  they will tell you which inspections you will need.\n\t\t- If you're installing a main panel, you will need to\n\t\t  have the panel and service connections inspected\n\t\t  before your power utility will provide a connection.\n\t\t  This is sometimes done by the local power authority\n\t\t  rather than the usual inspectors.\n\t\t- After installing the boxes and wiring, but before\n\t\t  the insulation/walls go up, you will need a\n\t\t  \"rough-in\" inspection.\n\t\t- After the walls are up, and the wiring is complete,\n\t\t  you will need a \"final inspection\".\n\nSubject: My house doesn't meet some of these rules and regulations.\n\tDo I have to upgrade?\n\n\tIn general, there is no requirement to upgrade older dwellings,\n\tthough there are some exceptions (ie: smoke detectors in some\n\tcases).  However, any new work must be done according to the\n\tlatest electrical code.  Also, if you do ``major'' work, you\n\tmay be required to upgrade certain existing portions or all\n\tof your system.  Check with your local electrical inspector.\n\nSubject: A word on voltages: 110/115/117/120/125/220/240\n\n\tOne thing where things might get a bit confusing is the\n\tdifferent numbers people bandy about for the voltage of\n\ta circuit.  One person might talk about 110V, another 117V\n\tor another 120V.  These are all, in fact, exactly the same\n\tthing...  In North America the utility companies are required\n\tto supply a split-phase 240 volt (+-5%) feed to your house.\n\tThis works out as two 120V +- 5% legs.  Additionally, since there\n\tare resistive voltage drops in the house wiring, it's not\n\tunreasonable to find 120V has dropped to 110V or 240V has dropped\n\tto 220V by the time the power reaches a wall outlet.  Especially\n\tat the end of an extension cord or long circuit run.  For a number\n\tof reasons, some historical, some simple personal orneryness,\n\tdifferent people choose call them by slightly different numbers.\n\tThis FAQ has chosen to be consistent with calling them \"110V\" and\n\t\"220V\", except when actually saying what the measured voltage will\n\tbe.  Confusing?  A bit.  Just ignore it.\n\n\tOne thing that might make this a little more understandable\n\tis that the nameplates on equipment ofen show the lower (ie: 110V\n\tinstead of 120V) value.  What this implies is that the device\n\tis designed to operate properly when the voltage drops that\n\tlow.\n\n\t208V is *not* the same as 240V.  208V is the voltage between\n\tphases of a 3-phase \"Y\" circuit that is 120V from neutral to any\n\thot.   480V is the voltage between phases of a 3-phase \"Y\"\n\tcircuit that's 277V from hot to neutral.\n\n\tIn keeping with 110V versus 120V strangeness, motors intended\n\tto run on 480V three phase are often labelled as 440V...\n\nSubject: What does an electrical service look like?\n\n\tThere are logically four wires involved with supplying the\n\tmain panel with power.  Three of them will come from the utility\n\tpole, and a fourth (bare) wire comes from elsewhere.\n\n \tThe bare wire is connected to one or more long metal bars pounded\n \tinto the ground, or to a wire buried in the foundation, or sometimes\n \tto the water supply pipe (has to be metal, continuous to where\n\tthe main water pipe entering the house.  Watch out for galvanic\n\taction conductivity \"breaks\" (often between copper and iron pipe)).\n\tThis is the \"grounding conductor\".  It is there to make sure that\n\tthe third prong on your outlets is connected to ground.  This wire\n\tnormally carries no current.\n\n\tOne of the other wires will be white (or black with white or\n\tyellow stripes, or sometimes simply black).  It is the neutral wire.\n\tIt is connected to the \"centre tap\" (CEC; \"center tap\" in the\n\tNEC) of the distribution transformer supplying the power.  It\n\tis connected to the grounding conductor in only one place (often\n\tinside the panel).  The neutral and ground should not be connected\n\tanywhere else.  Otherwise, weird and/or dangerous things may happen.\n\n\tFurthermore, there should only be one grounding system in\n\ta home.  Some codes require more than one grounding electrode.\n\tThese will be connected together, or connected to the neutral\n\tat a common point - still one grounding system.  Adding additional\n\tgrounding electrodes connected to other portions of the house\n\twiring is unsafe and contrary to code.\n\n\tIf you add a subpanel, the ground and neutral are usually\n\tbrought as separate conductors from the main panel, and are\n\tnot connected together in the subpanel (ie: still only one\n\tneutral-ground connection).  However, in some situations \n\t(certain categories of separate buildings) you actually do\n\thave to provide a second grounding electrode - consult your\n\tinspector.\n\n\tThe other two wires will usually be black, and are the \"hot\"\n\twires.  They are attached to the distribution transformer as\n\twell.\n\n\tThe two black wires are 180 degrees out of phase with each\n\tother.  This means if you connect something to both hot wires,\n\tthe voltage will be 220 volts.  If you connect something to the\n\twhite and either of the two blacks you will get 110V.\n\n\tSome panels seem to only have three wires coming into them.\n\tThis is either because the neutral and ground are connected\n\ttogether at a different point (eg: the meter or pole) and one\n\twire is doing dual-duty as both neutral and ground, or in some\n\trare occasions, the service has only one hot wire (110V only\n\tservice).\n\nSubject: What is a circuit?\n\n\tInside the panel, connections are made to the incoming wires.\n\tThese connections are then used to supply power to selected\n\tportions of the home.  There are three different combinations:\n\t\t1) one hot, one neutral, and ground: 110V circuit.\n\t\t2) two hots, no neutral, and ground: 220V circuit.\n\t\t3) two hots, neutral, and ground: 220V circuit + neutral,\n\t\t   and/or two 110V circuits with a common neutral.\n\n\t(1) is used for most circuits supplying receptacles and\n\tlighting within your house.  (3) is usually used for supplying\n\tpower to major appliances such as stoves, and dryers - they\n\toften have need for both 220V and 110V, or for bringing several\n\tcircuits from the panel box to a distribution point.  (2) is\n\tusually for special 220V motor circuits, electric heaters, or\n\tair conditioners.\n\n\t[Note: In the US, the NEC frequently permits a circuit similar\n\tto (2) be used for stoves and dryers - namely, that there\n\tare two hot wires, and a wire that does dual duty as neutral\n\tand ground, and is connected to the frame as well as providing\n\tthe neutral for 110V purposes - three prong plugs instead\n\tof four (*only* for stoves/dryers connected to the main panel.\n\tWhen connected to most sub-panels, 4 prong plugs and receptacles\n\tare required).  In our not-so-humble opinion this is crazy, but\n\tthe NFPA claims that this practice was re-evaluated for the 1992 NEC,\n\tand found to be safe.  Check your local codes, or inquire as to\n\tlocal practice -- there are restrictions on when this is\n\tpermissible.]\n\n\t(1) is usually wired with three conductor wire: black for hot,\n\twhite for neutral, and bare for grounding.\n\n\t(2) and (3) have one hot wire coloured red, the other black, a\n\tbare wire for grounding, and in (3) a white wire for neutral.\n\n\tYou will sometimes see (2) wired with just a black, white and ground\n\twire.  Since the white is \"hot\" in this case, both the NEC and CEC\n\trequires that the white wire be \"permanently marked\" at the ends\n\tto indicate that it is a live wire.  Usually done with paint, nail\n\tpolish or sometimes electrical tape.\n\n\tEach circuit is attached to the main wires coming into the\n\tpanel through a circuit breaker or fuse.\n\n\tThere are, in a few locales, circuits that look like (1), (2)\n\tor (3) except that they have two bare ground wires.  Some places\n\trequire this for hot tubs and the like (one ground is \"frame ground\",\n\tthe other attaches to the motor).  This may or may not be an\n\talternative to GFCI protection.\n\nSubject: \"grounding\" versus \"grounded\" versus \"neutral\".\n\n\tAccording to the terminology in the CEC and NEC, the\n\t\"grounding\" conductor is for the safety ground, i.e., the green\n\tor bare wire.  The word \"neutral\" is reserved for the white when\n\tyou have a circuit with more than one \"hot\" wire.  Since the white\n\twire is connected to neutral and the grounding conductor inside the\n\tpanel, the proper term is \"grounded conductor\".  However, the\n\tpotential confusion between \"grounded conductor\" and \"grounding\n\tconductor\" can lead to potentially lethal mistakes - you should\n\tnever use the bare wire as a \"grounded conductor\" or white wire\n\tas the \"grounding conductor\", even though they are connected\n\ttogether in the panel.\n\n\t[But not in subpanels - subpanels are fed neutral and ground\n\tseparately from the main panel.  Usually.]\n\n\tIn the trade, and in common usage, the word \"neutral\" is used\n\tfor \"grounded conductor\".  This FAQ uses \"neutral\" simply to\n\tavoid potential confusion.  We recommend that you use \"neutral\"\n\ttoo.  Thus the white wire is always (except in some light\n\tswitch applications) neutral.  Not ground.\n\nSubject: What does a fuse or breaker do?  What are the differences?\n\n\tFuses and circuit breakers are designed to interrupt the power\n\tto a circuit when the current flow exceeds safe levels.  For\n\texample, if your toaster shorts out, a fuse or breaker should\n\t\"trip\", protecting the wiring in the walls from melting.  As\n\tsuch, fuses and breakers are primarily intended to protect the\n\twiring -- UL or CSA approval supposedly indicates that the\n\tequipment itself won't cause a fire.\n\n\tFuses contain a narrow strip of metal which is designed to melt\n\t(safely) when the current exceeds the rated value, thereby\n\tinterrupting the power to the circuit.  Fuses trip relatively\n\tfast.  Which can sometimes be a problem with motors which have\n\tlarge startup current surges.  For motor circuits, you can use\n\ta \"time-delay\" fuse (one brand is \"fusetron\") which will avoid\n\ttripping on momentary overloads.  A fusetron looks like a\n\tspring-loaded fuse.  A fuse can only trip once, then it must be\n\treplaced.\n\n\tBreakers are fairly complicated mechanical devices.  They\n\tusually consist of one spring loaded contact which is latched\n\tinto position against another contact.  When the current flow\n\tthrough the device exceeds the rated value, a bimetallic strip\n\theats up and bends.  By bending it \"trips\" the latch, and the\n\tspring pulls the contacts apart.  Circuit breakers behave\n\tsimilarly to fusetrons - that is, they tend to take longer to\n\ttrip at moderate overloads than ordinary fuses.  With high\n\toverloads, they trip quickly.  Breakers can be reset a finite\n\tnumber of times - each time they trip, or are thrown\n\twhen the circuit is in use, some arcing takes place, which\n\tdamages the contacts.  Thus, breakers should not be used in\n\tplace of switches unless they are specially listed for the\n\tpurpose.\n\n\tNeither fuses nor breakers \"limit\" the current per se.  A dead\n\tshort on a circuit can cause hundreds or sometimes even\n\tthousands of amperes to flow for a short period of time, which\n\tcan often cause severe damage.\n\nSubject: Breakers?  Can't I use fuses?\n\n\tStatistics show that fuse panels have a significantly higher\n\trisk of causing a fire than breaker panels.  This is usually\n\tdue to the fuse being loosely screwed in, or the contacts\n\tcorroding and heating up over time, or the wrong size fuse\n\tbeing installed, or the proverbial \"replace the fuse with a\n\tpenny\" trick.\n\n\tSince breakers are more permanently installed, and have better\n\tconnection mechanisms, the risk of fire is considerably less.\n\n\tFuses are prone to explode under extremely high overload.  When\n\ta fuse explodes, the metallic vapor cloud becomes a conducting\n\tpath.  Result? from complete meltdown of the electrical panel,\n\tmelted service wiring, through fires in the electrical\n\tdistribution transformer and having your house burn down.\n\tBreakers don't do this.\n\n\tMany jurisdictions, particularly in Canada, no longer permit\n\tfuse panels in new installations.  The NEC does permit new\n\tfuse panels in some rare circumstances (requiring the special\n\tinserts to \"key\" the fuseholder to specific size fuses)\n\n\tSome devices, notably certain large air conditioners, require fuse\n\tprotection in addition to the breaker at the panel.  The fuse\n\tis there to protect the motor windings from overload.  Check the\n\tlabeling on the unit.  This is usually only on large permanently\n\tinstalled motors.  The installation instructions will tell you\n\tif you need one.\n\nSubject: What size wire should I use?\n\n\tFor a 20 amp circuit, use 12 gauge wire.  For a 15 amp circuit,\n\tyou can use 14 gauge wire (in most locales).  For a long run,\n\tthough, you should use the next larger size wire, to avoid\n\tvoltage drops.  12 gauge is only slightly more expensive than\n\t14 gauge, though it's stiffer and harder to work with.\n\n\tHere's a quick table for normal situations.  Go up a size for\n\tmore than 100 foot runs, when the cable is in conduit, or\n\tganged with other wires in a place where they can't dissipate\n\theat easily:\n\n\t\tGauge\t\tAmps\n\t\t14\t\t15\n\t\t12\t\t20\n\t\t10\t\t30\n\t\t8\t\t40\n\t\t6\t\t65\n\t\n\tWe don't list bigger sizes because it starts getting very dependent\n\ton the application and precise wire type.\n\nSubject: Where do these numbers come from?\n\n\tThere are two considerations, voltage drop and heat buildup.\n\tThe smaller the wire is, the higher the resistance is.  When\n\tthe resistance is higher, the wire heats up more, and there is\n\tmore voltage drop in the wiring.  The former is why you need\n\thigher-temperature insulation and/or bigger wires for use in\n\tconduit; the latter is why you should use larger wire for long\n\truns.\n\n\tNeither effect is very significant over very short distances.\n\tThere are some very specific exceptions, where use of smaller\n\twire is allowed.  The obvious one is the line cord on most\n\tlamps.  Don't try this unless you're certain that your use fits\n\tone of those exceptions; you can never go wrong by using larger\n\twire.\n\nSubject: What does \"14-2\" mean?\n\n\tThis is used to describe the size and quantity of conductors\n\tin a cable.  The first number specifies the gauge.  The second\n\tthe number of current carrying conductors in the wire - but\n\tremember there's usually an extra ground wire.  \"14-2\" means\n\t14 gauge, two insulated current carrying wires, plus bare ground.\n\n\t-2 wire usually has a black, white and bare ground wire.  Sometimes\n\tthe white is red instead for 220V circuits without neutral.  In\n\tthe latter case, the sheath is usually red too.\n\n\t-3 wire usually has a black, red, white and bare ground wire.\n\tUsually carrying 220V with neutral.\n\nSubject: What is a \"wirenut\"/\"marrette\"/\"marr connector\"?  How are they\n\tused?\n\n\tA wire nut is a cone shaped threaded plastic thingummy that's used\n\tto connect wires together.  \"Marrette\" or \"Marr connector\"\n\tare trade names.  You'll usually use a lot of them in DIY wiring.\n\n\tIn essence, you strip the end of the wires about an inch, twist them\n\ttogether, then twist the wirenut on.\n\n\tThough some wirenuts advertise that you don't need to twist the\n\twire, do it anyways - it's more mechanically and electrically\n\tsecure.\n\n\tThere are many different sizes of wire nut.  You should check\n\tthat the wire nut you're using is the correct size for the\n\tquantity and sizes of wire you're connecting together.\n\n\tDon't just gimble the wires together with a pair of pliers or\n\tyour fingers.  Use a pair of blunt nose (\"linesman\") pliers,\n\tand carefully twist the wires tightly and neatly.  Sometimes\n\tit's a good idea to trim the resulting end to make sure it\n\tgoes in the wirenut properly.\n\n\tSome people wrap the \"open\" end of the wirenut with electrical\n\ttape.  This is probably not a good idea - the inspector may\n\ttear it off during an inspection.  It's usually done because\n\ta bit of bare wire is exposed outside the wire nut - instead\n\tof taping it, the connection should be redone.\n\nSubject: What is a GFI/GFCI?\n\n\tA GFCI is a ``ground-fault circuit interrupter''.  It measures\n\tthe current current flowing through the hot wire and the\n\tneutral wire.  If they differ by more than a few milliamps, the\n\tpresumption is that current is leaking to ground via some other\n\tpath.  This may be because of a short circuit to the chassis of\n\tan appliance, or to the ground lead, or through a person.  Any\n\tof these situations is hazardous, so the GFCI trips, breaking\n\tthe circuit.\n\n\tGFCIs do not protect against all kinds of electric shocks.  If,\n\tfor example, you simultaneously touched the hot and neutral\n\tleads of a circuit, and no part of you was grounded, a GFCI\n\twouldn't help.  All of the current that passed from the hot\n\tlead into you would return via the neutral lead, keeping the\n\tGFCI happy.\n\n\tThe two pairs of connections on a GFCI outlet are not symmetric.\n\tOne is labeled LOAD; the other, LINE.  The incoming power feed\n\t*must* be connected to the LINE side, or the outlet will not be\n\tprotected.  The LOAD side can be used to protect all devices\n\tdownstream from it.  Thus, a whole string of outlets can be\n\tcovered by a single GFCI outlet.\n\nSubject: Where should GFCIs be used?\n\n\tThe NEC mandates GFCIs for 110V, 15A or 20A single phase\n\toutlets, in bathrooms, kitchens within 6' of the sink, garages,\n\tunfinished basements or crawl spaces, outdoors, near a pool, or\n\tjust about anywhere else where you're likely to encounter water\n\tor dampness.  There are exceptions for inaccessible outlets,\n\tthose dedicated to appliances ``occupying fixed space'',\n\ttypically refrigerators and freezers, and for sump pumps and\n\tlaundry appliances.\n\n\tThe CEC does not mandate as many GFCIs.  In particular, there\n\tis no requirement to protect kitchen outlets, or most garage or\n\tbasement outlets.  Basement outlets must be protected if you\n\thave a dirt floor, garage outlets if they're near the door to\n\toutside.  Bathrooms and most exterior outlets must have GFCIs.\n\n\tEven if you are not required to have GFCI protection, you may\n\twant to consider installing it anyway.  Unless you need a GFCI\n\tbreaker (see below), the cost is low.  In the U.S., GFCI\n\toutlets can cost as little as US$8.  (Costs are a bit higher in\n\tCanada:  C$12.)  Evaluate your own risk factors.  Does your\n\tfinished basement ever get wet?  Do you have small children?\n\tDo you use your garage outlets to power outdoor tools?  Does\n\twater or melted snow ever puddle inside your garage?\n\nSubject: Where shouldn't I use a GFCI?\n\n\tGFCIs are generally not used on circuits that (a) don't pose a\n\tsafety risk, and (b) are used to power equipment that must run\n\tunattended for long periods of time.  Refrigerators, freezers,\n\tand sump pumps are good examples.  The rationale is that GFCIs\n\tare sometimes prone to nuisance trips.  Some people claim that\n\tthe inductive delay in motor windings can cause a momentary\n\tcurrent imbalance, tripping the GFCI.  Note, though, that most\n\tGFCI trips are real; if you're getting a lot of trips for no\n\tapparent reason, you'd be well-advised to check your wiring\n\tbefore deciding that the GFCI is broken or useless.\n\nSubject: What is the difference between a GFCI outlet and a GFCI breaker?\n\n\tFor most situations, you can use either a GFCI outlet as the\n\tfirst device on the circuit, or you can install a breaker with\n\ta built-in GFCI.  The former is generally preferred, since GFCI\n\tbreakers are quite expensive.  For example, an ordinary GE\n\tbreaker costs ~US$5; the GFCI model costs ~US$35.  There is one\n\tmajor exception:  if you need to protect a ``multi-wire branch\n\tcircuit'' (two or more circuits sharing a common neutral wire),\n\tsuch as a Canadian-style kitchen circuit, you'll need a\n\tmulti-pole GFCI breaker.  Unfortunately, these are expensive;\n\tthe cost can range into the hundreds of dollars, depending on\n\twhat brand of panel box you have.  But if you must protect such\n\ta circuit (say, for a pool heater), you have no choice.\n\n\tOne more caveat -- GFCI outlets are bulky.  You may want to use\n\tan oversize box when installing them.  On second thought, use\n\tlarge (actually deep) boxes everywhere.  You'll thank yourself for it.\n\n\tIncidentally, if you're installing a GFCI to ensure that one\n\tspecific outlet is protected (such as a bathroom), you don't\n\treally have to go to all of the trouble to find the first\n\toutlet in the circuit, you could simply find the first outlet\n\tin the bathroom, and not GFCI anything upstream of it.  But\n\tprotecting the whole circuit is preferred.\n\n\tWhen you install a GFCI, it's a good idea to use the little\n\t\"ground fault protected\" stickers that come with it and mark\n\tthe outlets downstream of the GFCI.  You can figure out which\n\toutlets are \"downstream\", simply by tripping the GFCI with the\n\ttest button and see which outlets are dead.\n\nSubject: What's the purpose of the ground prong on an outlet, then?\n\n\tApart from their use in electronics, which we won't comment on,\n\tand for certain fluorescent lights (they won't turn on without\n\ta good ground connection), they're intended to guard against\n\tinsulation failures within the device.  Generally, the case of\n\tthe appliance is connected to the ground lead.  If there's an\n\tinsulation failure that shorts the hot lead to the case, the\n\tground lead conducts the electricity away safely (and possibly\n\ttrips the circuit breaker in the process).  If the case is not\n\tgrounded and such a short occurs, the case is live -- and if\n\tyou touch it while you're grounded, you'll get zapped.  Of\n\tcourse, if the circuit is GFCI-protected, it will be a very\n\ttiny zap -- which is why you can use GFCIs to replace\n\tungrounded outlets (both NEC and CEC).\n\n\tThere are some appliances that should *never* be grounded.  In\n\tparticular, that applies to toasters and anything else with\n\texposed conductors.  Consider:  if you touch the heating\n\telectrode in a toaster, and you're not grounded, nothing will\n\thappen.  If you're slightly grounded, you'll get a small shock;\n\tthe resistance will be too high.  But if the case were\n\tgrounded, and you were holding it, you'd be the perfect path to\n\tground...\n\nSubject: Why is one prong wider than the other?  Polarization\n\n\tNowadays, many two-prong devices have one prong wider than the\n\tother.  This is so that the device could rely (not guaranteed!)\n\ton one specific wire being neutral, and the other hot.\n\tThis is particularly advantageous in light fixtures, where the\n\tthe shell should neutral (safety), or other devices which want to\n\thave an approximate ground reference (ie: some radios).\n\n\tMost 2-prong extension cords have wide prongs too.\n\n\tThis requires that you wire your outlets and plugs the right\n\tway around.  You want the wide prong to be neutral, and the\n\tnarrow one hot.  Most outlets have a darker metal for the\n\thot screw, and lighter coloured screw for the neutral.\n\tIf not, you can usually figure out which is which by which\n\tprong the terminating screw connects to.\n\nSubject: What kind of outlets do I need in a kitchen?\n\n\tThe NEC requires at least two 20 amp ``small appliance\n\tcircuits'' for kitchens.  The CEC requires split-duplex\n\treceptacles.  Outlets must be installed such that no point is more\n\tthan 24\" (NEC) (900 mm CEC) from an outlet.  Every counter wider\n\tthan 12\" (NEC) or 300 mm (CEC) must have at least one outlet.\n\tThe circuit these outlets are on may not feed any outlets except\n\tin the kitchen, pantry, or dining room.  Furthermore, these circuits\n\tare in addition to any required for refrigerators, stoves, microwaves,\n\tlighting, etc.  Non-dedicated outlets within 6' of a sink *must* be\n\tprotected by a GFCI (NEC only).\n\n\tSplit duplex receptacles are fed with a 220V circuit.  The tab\n\tis broken on the hot side of the outlet, and one hot goes to\n\tthe upper outlet, and the other hot goes to the lower outlet.\n\tThe neutral connects to both outlets through one screw.  When\n\t\"carrying through\" to another outlet, the neutral must be\n\tpigtailed, such that removing the outlet, or having the neutral\n\tconnection fall off doesn't cause the neutral to disconnect\n\tfrom downstream outlets.\n\nSubject: Where must outlets and switches be in bathrooms?\n\n\tThere must be at least one outlet in each bathroom, adjacent to\n\tthe sink, in addition to any outlet that may be incorporated in\n\tthe light fixture.  All such outlets *must* be GFCI-protected.\n\nSubject: What is Romex/NM/NMD?  What is BX?  When should I use each?\n\n\tRomex is a brand name for a type of plastic insulated wire.\n\tSometimes called non-metallic sheath.  The formal name is NM.\n\tThis is suitable for use in dry, protected areas (ie: inside\n\tstud walls, on the sides of joists etc.), that are not subject\n\tto mechanical damage or excessive heat.  Most newer homes are\n\twired almost exclusively with NM wire.  There are several\n\tdifferent categories of NM cable.\n\n\tBX cable -- technically known as armored cable or \"AC\" has a\n\tflexible aluminum or steel sheath over the conductors and is\n\tfairly resistant to damage.\n\n\tTECK cable is AC with an additional external thermoplastic\n\tsheath.\n\t\n\tProtection for cable in concealed locations: where NM or AC cable\n\tis run through studs, joists or similar wooden members, the outer\n\tsurface of the cable must be kept at least 32mm/1.25\" (CEC & NEC)\n\tfrom the edges of the wooden members, or the cable should be protected\n\tfrom mechanical injury.  This latter protection can take the form of\n\tmetal plates (such as spare outlet box ends) or conduit.\n\n\t[Note: inspector-permitted practise in Canada suggests that armored\n\tcable, or flexible conduit can be used as the mechanical protection,\n\tbut this is technically illegal.]\n\n\tAdditional protection recommendations (these are rules in the\n\tCanadian codes - they are reasonable answers to the vague\n\treferences to \"exposed to mechanical damage\" in both the NEC\n\tand CEC):\n\n\t    - NM cable should be protected against mechanical damage\n\t      where it passes through floors or on the surface of walls\n\t      in exposed locations under 5 feet from the floor.\n\t      Ie: use AC instead, flexible conduit, wooden guards etc.\n\t    - Where cable is suspended, as in, connections to furnaces\n\t      or water heaters, the wire should be protected.  Canadian\n\t      practise is usually to install a junction or outlet\n\t      box on the wall, and use a short length of AC cable\n\t      or NM cable in flexible conduit to \"jump\" to the appliance.\n\t      Stapling NM to a piece of lumber is also sometimes used.\n\t    - Where NM cable is run in close proximity to heating\n\t      ducts or pipe, heat transfer should be minimized by\n\t      means of a 25mm/1\" air space, or suitable insulation\n\t      material (a wad of fiberglass).\n\t    - NM cable shall be supported within 300mm/1' of every box\n\t      or fitting, and at intervals of no more than 1.5m/5'.\n\t      Holes in joists or studs are considered \"supports\".\n\t      Some slack in the cable should be provided adjacent to\n\t      each box.  [while fishing cable is technically in violation,\n\t      it is permitted where \"proper\" support is impractical]\n\t    - 2 conductor NM cable should never be stapled on edge.\n\t      [Knight also insists on only one cable per staple, referring\n\t      to the \"workmanship\" clause, but this seems more honoured\n\t      in the breach...]\n\t    - cable should never be buried in plaster, cement or\n\t      similar finish.\n\t    - cable should be protected where it runs behind baseboards.\n\t    - Cable may not be run on the upper edge of ceiling joists\n\t      or the lower edges of rafters where the headroom is more\n\t      than 1m (39\").\n\n\tWhenever BX cable is terminated at a box with a clamp, small\n\tplastic bushings must be inserted in the end of the cable to\n\tprevent the clamps forcing the sharp ends of the armor through\n\tthe insulation.\n\n\tBX is sometimes a good idea in a work shop unless covered by\n\tsolid wall coverings.\n\n\tIn places where damage is more likely (like on the back wall of\n\ta garage ;-), you may be required to use conduit, a\n\tUL- (or CSA-) approved metal pipe.  You use various types of\n\tfittings to join the pipe or provide entrance/exit for the\n\twire.\n\n\tService entrances frequently use a plastic conduit.\n\n\tIn damp places (eg: buried wiring to outdoor lighting) you will\n\tneed special wire (eg: CEC NMW90, NEC UF).  NMW90 looks like\n\tvery heavy-duty NMD90.  You will usually need short lengths of\n\tconduit where the wire enters/exits the ground.  [See underground\n\twiring section.]\n\n \tThermoplastic sheath wire (such as NM, NMW etc.) should not be\n \texposed to direct sunlight unless explicitly approved for that\n \tpurpose.\n\n\tMany electrical codes do not permit the routing of wire through\n\tfurnace ducts, including cold air return plenums constructed\n\tby metal sheeting enclosing joist spaces.   The reason for this\n\tis that if there's a fire, the ducting will spread toxic gasses\n\tfrom burning insulation very rapidly through the building.\n\tTeflon insulated wire is permitted in plenums in many areas.\n\t\n \tCanada appears to use similar wire designations to the US,\n \texcept that Canadian wire designations usually include the\n \ttemperature rating in Celsius.  Eg: \"AC90\" versus \"AC\".\n\tIn the US, NM-B is 90 degrees celcius.\n\n\tNOTE: local codes vary.  This is one of the items that changes\n\tmost often.  Eg: Chicago codes require conduit *everywhere*.\n\tThere are very different requirements for mobile homes.\n\tCheck your local codes, *especially* if you're doing anything\n\tthat's the slightest out of the ordinary.\n\n\tWire selection table (incomplete - the real tables are enormous,\n\tuncommon wire types or applications omitted)\n\n\tCondition\t\t\tType\tCEC\tNEC\n\n\tExposed/Concealed dry\t\tplastic\tNMD90\tNM\n\t\t\t\t\tarmor\tAC90\tAC\n\t\t\t\t\t\tTECK90\n\n\tExposed/Concealed damp\t\tplastic\tNMD90\tNMC\n\t\t\t\t\tarmor\tACWU90\n\t\t\t\t\t\tTECK90\n\n\tExposed/Concealed wet\t\tplastic\tNMWU90\n\t\t\t\t\tarmor\tACWU90\n\t\t\t\t\t\tTECK90\n\t\n\tExposed to weather\t\tplastic\tNMWU\n\t\t\t\t\t\tTW etc.\n\t\t\t\t\tarmor\tTECK90\n\t\n\tDirect earth burial/\t\tplastic\tNMWU*\tUF\n\tService entrance\t\t\tRWU\n\t\t\t\t\t\tTWU\n\t\t\t\t\tarmor\tRA90\n\t\t\t\t\t\tTECK90\n\t\t\t\t\t\tACWU90\n\t[* NMWU not for service entrance]\n\nSubject: Should I use plastic or metal boxes?\n\n\tThe NEC permits use of plastic boxes with non-metallic cable\n\tonly.  The reasoning is simple -- with armored cable, the box\n\titself provides ground conductor continuity.  U.S. plastic\n\tboxes don't use metal cable clamps.\n\n\tThe CEC is slightly different.  The CEC never permits cable\n\tarmor as a grounding conductor.  However, you must still\n\tprovide ground continuity for metallic sheath.  The CEC also\n\trequires grounding of any metal cable clamps on plastic boxes.\n\n\tThe advantage of plastic boxes is comparatively minor even for\n\tnon-metallic sheathed cable -- you can avoid making one ground\n\tconnection and they sometimes cost a little less.  On the other\n\thand, plastic boxes are more vulnerable to impacts.  For\n\texposed or shop wiring, metal boxes are probably better.\n\nSubject: Junction box positioning?\n\n\tA junction box is a box used only for connecting wires together.\n\n\tJunction boxes must be located in such a way that they're accessible\n\tlater.  Ie: not buried under plaster.  Excessive use of junction\n\tboxes is often a sign of sloppy installation, and inspectors may\n\tget nasty.\n\nSubject: Can I install a replacement light fixture?\n\n\tIn general, one can replace fixtures freely, subject to a few\n\tcaveats.  First, of course, one should check the amperage\n\trating of the circuit.  If your heart is set on installing half\n\ta dozen 500 watt floodlights, you may need to run a new wire\n\tback to the panel box.  But there are some more subtle\n\tconstraints as well.  For example, older house\n\twiring doesn't have high-temperature insulation.  The excess\n\theat generated by a ceiling-mounted lamp can and will cause the\n\tinsulation to deteriorate and crack, with obvious bad results.\n\tSome newer fixtures are specifically marked for high\n\ttemperature wire only.  (You may find, in fact, that your\n\tceiling wiring already has this problem, in which case\n\treplacing any devices is a real adventure.)\n\n\tOther concerns include providing a suitable ground for some\n\tfluorescent fixtures, and making sure that the ceiling box and\n\tits mounting are strong enough to support the weight of a heavy\n\tchandelier or ceiling fan.  You may need to install a new box\n\tspecifically listed for this purpose.  A 2x4 across the ceiling\n\tjoists makes a good support.  Metal brackets are also available\n\tthat can be fished into ceilings thru the junction box hole and\n\tmounted between the joists.\n\n\tThere are special rules for recessed light fixtures such as\n\t\"pot\" lamps or heat lamps.  When these are installed in insulated\n\tceilings, they can present a very substantial fire hazard.\n\tThe CEC provides for the installation of pot lamps in insulated\n\tceilings, provided that the fixture is boxed in a \"coffin\" (usually\n\t8'x16\"x12\" - made by making a pair of joists 12\" high, and covering\n\twith plywood) that doesn't have any insulation.  (Yes, that's 8 *feet*\n\tlong)\n\n\tNEC rules are somewhat less stringent.  They require at least 3\"\n\tclearance between the fixture and any sort of thermal insulation.\n\tThe rules also say that one should not obstruct free air movement,\n\twhich means that a CEC-style ``coffin'' might be worthwhile.\n\tPresumably, that's up to the local inspector.  [The CEC doesn't\n\tactually mandate the coffin per-se, this seems to be an inspector\n\trequirement to make absolutely certain that the fixture can't get\n\taccidentally buried in insulation.  Ie: if you have insulation blown\n\tin later.]\n\n\tThere are now fixtures that contain integral thermal cutouts and\n\tfairly large cases that can be buried directly in insulation.  They are\n\tusually limited to 75 watt bulbs, and are unfortunately, somewhat\n\tmore expensive than the older types.  Before you use them, you should\n\tensure that they have explicit UL or CSA approval for such uses.\n\tFollow the installation instructions carefully; the prescribed location\n\tfor the sensor can vary.\n\n\tThere does not yet appear to be a heat lamp fixture that is approved\n\tfor use in insulation.  The \"coffin\" appears the only legal approach.\n\nSubject: What does it mean when the lights brighten when a motor starts?\n\n\tThis usually means that the neutral wire in the panel is\n\tloose.  Depending on the load balance, one hot wire may end up\n\tbeing more than 110V, and the other less than 110V, with\n\trespect to ground.  This is a very hazardous situation - it can\n\tdestroy your electronic equipment, possibly start fires, and in\n\tsome situations electrocute you (ie: some US jurisdictions\n\trequire the stove frame connected to neutral).\n\n\tIf this happens, contact your electrical authority immediately\n\tand have them come and check out the problem.\n\n\tNote: a brief (< 1 second) brightening is sometimes normal with\n\tlighting and motors on the same 220V with neutral circuit.  A\n\tloose main panel neutral will usually show increased brightness\n\tfar longer than one second.  In case of doubt, get help.\n\nSubject: What is 3 phase power?  Should I use it?  Can I get it in my house?\n\n\tThree phase power has three \"hot\" wires, 120 degrees out of\n\tphase with each other.  These are usually used for large motors\n\tbecause it is more \"efficient\", provides a bit more starting torque,\n\tand because the motors are simpler and hence cheaper.\n\n\tYou're most likely to encounter a 3 phase circuit that shows\n\t110 volts between any hot and ground, and 208 volts between\n\tany two hots.  The latter shows the difference between a normal\n\t220V/110V common neutral circuit, which is 240 volts between the\n\ttwo hots.  There are 3 phase circuits with different voltages.\n\n\tBringing in a 3 phase feed to your house is usually\n\tridiculously expensive, or impossible.  If the equipment you\n\twant to run has a standard motor mount, it is *MUCH* cheaper to\n\tbuy a new 110V or 220V motor for it.  In some cases it is\n\tpossible to run 3 phase equipment on ordinary power if you have\n\ta \"capacitor start\" unit, or use a larger motor as a\n\t(auto-)generator.  These are tricky, but are a good solution if\n\tthe motor is non-standard size, or too expensive or too big to\n\treplace.  The Taunton Press book ``The Small Shop'' has an\n\tarticle on how to do this if you must.\n\n\tNote that you lose any possible electrical efficiency by using\n\tsuch a converter.  The laws of thermodynamics guarantee that.\n\nSubject: Is it better to run motors at 110 or 220?\n\n\tTheoretically, it doesn't make any difference.  However, there\n\tis a difference is the amount of power lost in the supply\n\twiring.  All things being equal, a 220V motor will lose 4 times\n\tless power in the house wiring than a 110V motor.  This also\n\tmeans that the startup surge loss will be less, and the motor\n\twill get to speed quicker.  And in some circumstances, the\n\tsmaller power loss will lead to longer motor life.\n\n\tThis is usually irrelevant unless the supply wires are more\n\tthan 50 feet long.\n\nSubject: What is this nonsense about 3HP on 110V 15A circuits?\n\n\tIt is a universal physical law that 1 HP is equal to 746\n\twatts.  Given heating loss, power factor and other inefficiencies,\n\tit is usually best to consider 1 HP is going to need 1000-1200\n\twatts.  A 110V 15A circuit can only deliver 1850 watts to a motor,\n\tso it cannot possibly be more than approximately 2 HP.  Given rational\n\tefficiency factors, 1.5HP is more like it.\n\n\tSome equipment manufacturers (Sears in particular, most router\n\tmanufacturers in general ;-) advertise a HP rating that is far\n\tin excess of what is possible.  They are giving you a \"stall\n\thorsepower\" or similar.  That means the power is measured when\n\tthe motor is just about to stop turning because of the load.\n\tWhat they don't mention is that if you kept it in that\n\tcondition for more than a few seconds hopefully your breaker\n\twill trip, otherwise the motor will melt -- it's drawing far\n\tmore current than it can continuously.\n\n\tWhen comparing motors, compare the continuous horsepower.  This\n\tshould be on the motor nameplate.  If you can't find that figure,\n\tcheck the amperage rating, which is always present.\n\nSubject: How do I convert two prong receptacles to three prong?\n\n\tOlder homes frequently have two-prong receptacles instead\n\tof the more modern three.  These receptacles have no safety\n\tground, and the cabling usually has no ground wire.  Neither\n\tthe NEC or CEC permits installing new 2 prong receptacles anymore.\n\n\tThere are several different approaches to solving this:\n\t    1) If the wiring is done through conduit or BX, and the\n\t       conduit is continuous back to the panel, you can connect\n\t       the third prong of a new receptacle to the receptacle\n\t       box.  NEC mainly - CEC frowns on this practise.\n\t    2) If there is a copper cold water pipe going nearby, and\n\t       it's continuous to the main house ground point, you can\n\t       run a conductor to it from the third prong.\n\t    3) Run a ground conductor back to the main panel.\n\t    4) Easiest: install a GFCI receptacle.  The ground lug\n\t       should not be connected to anything, but the GFCI\n\t       protection itself will serve instead.  The GFCI\n\t       will also protect downstream (possibly also two prong\n\t       outlets).  If you do this to protect downstream outlets,\n\t       the grounds must not be connected together.  Since it\n\t       wouldn't be connected to a real ground, a wiring fault\n\t       could energize the cases of 3 prong devices connected\n\t       to other outlets.  Be sure, though, that there aren't\n\t       indirect ground plug connections, such as via the sheath\n\t       on BX cable.\n\n\tThe CEC permits you to replace a two prong receptacle with a three\n\tprong if you fill the U ground with a non-conducting goop.\n\tLike caulking compound.  This is not permitted in the NEC.\n\nSubject: Are you sure about GFCIs and ungrounded outlets?\n\tShould the test button work?\n\n\tWe're sure about what the NEC and CEC say.  Remember, though,\n\tthat your local codes may vary.  As for the TEST button -- there's\n\ta resistor connecting the LOAD side of the hot wire to the LINE\n\tside of the neutral wire when you press the TEST button.  Current\n\tthrough this resistor shows up as an imbalance, and trips the GFCI.\n\tThis is a simple, passive, and reliable test, and doesn't require\n\ta real ground to work.  If your GFCI does not trip when you press\n\tthe TEST button, it is very probably defective or miswired.  Again:\n\tif the test button doesn't work, something's broken, and potentially\n\tdangerous.  The problem should be corrected immediately.\n\n\tThe instructions that come with some GFCIs specify that the ground\n\twire must be connected.  We do not know why they say this.  The\n\tcauses may be as mundane as an old instruction sheet, or with the\n\tformalities of UL or CSA listing -- perhaps the device was never\n\ttested without the ground wire being connected.  On the other hand,\n\tUL or CSA approval should only have been granted if the device\n\tbehaves properly in *all* listed applications, including ungrounded\n\toutlet replacement.  (One of us called Leviton; their GFCIs are\n\tlabeled for installation on grounded circuits only.  The technician\n\twas surprised to see that; he agreed that the NEC does not require\n\tit, and promised to investigate.)\n\nSubject: How should I wire my shop?\n\n\tAs with any other kind of wiring, you need enough power for all\n\tdevices that will be on simultaneously.  The code specifies\n\tthat you should stay under 80% of the nominal capacity of the\n\tcircuit.  For typical home shop use, this means one circuit for\n\tthe major power tools, and possibly one for a dust collector or\n\tshop vac.  Use at least 12 gauge wire -- many power tools have\n\tbig motors, with a big start-up surge.  If you can, use 20 amp\n\tbreakers (NEC), though CEC requires standard 20A receptacles\n\twhich means you'd have to \"replug\" all your equipment.  Lights\n\tshould either be on a circuit of their own -- and not shared\n\twith circuits in the rest of the house -- or be on at least two\n\tseparate circuits.  The idea is that you want to avoid a\n\tsituation where a blade is still spinning at several thousand\n\tRPM, while you're groping in the dark for the OFF switch.\n\n\tDo install lots of outlets.  It's easier to install them in the\n\tbeginning, when you don't have to cut into an existing cable.\n\tIt's useful if at least two circuits are accessible at each\n\tpoint, so you can run a shop vac or a compressor at the same\n\ttime as the tool you really want.  But use metal boxes and\n\tplates, and maybe even metal-sheathed cable; you may have\n\tobjects flying around at high speeds if something goes a bit\n\twrong.\n\n\tNote that some jurisdictions have a \"no horizontal wiring\"\n\trule in workshops or other unfinished areas that are used\n\tfor working.  What this means is that all wiring must be\n\trun along structural members.  Ie: stapled to studs.\n\n\tOther possible shop circuits include heater circuits, 220V\n\tcircuits for some large tools, and air compressor circuits.\n\tDon't overload circuits, and don't use extension cords if you\n\tcan help it, unless they're rated for high currents.  (A coiled\n\textension cord is not as safe as a straight length of wire of\n\tthe same gauge.  Also, the insulation won't withstand as much\n\theat, and heat dissipation is the critical issue.)\n\n\tIf your shop is located at some remove from your main panel,\n\tyou should probably install a subpanel, and derive your shop\n\twiring from it.  If you have young children, you may want to\n\tequip this panel with a cut-off switch, and possibly a lock.\n\tIf you want to install individual switches to ``safe''\n\tparticular circuits, make sure you get ones rated high enough.\n\tFor example, ordinary light switches are not safely able to\n\thandle the start-up surge generated by a table saw.  Buy\n\t``horsepower-rated'' switches instead.\n\n\tFinally, note that most home shops are in garages or unfinished\n\tbasements; hence the NEC requirements for GFCIs apply.  And\n\teven if you ``know'' that you'd never use one of your shop\n\toutlets to run a lawn mower, the next owner of your house might\n\thave a different idea.\n\n\tNote: Fine Woodworking magazine often carries articles on shop\n\twiring.  April 1992 is one place to start.\n\nSubject: Underground Wiring\n\n\tYou will need to prepare a trench to specifications, use\n\tspecial wire, protect the wire with conduit or special plastic\n\ttubing and possibly lumber (don't use creosoted lumber, it rots\n\tthermoplastic insulation and acts as a catalyst in the corrosion\n\tof lead).  The transition from in-house to underground wire is\n\tgenerally via conduit.  All outdoor boxes must be specifically\n\tlisted for the purpose, and contain the appropriate gaskets,\n\tfittings, etc.  If the location of the box is subject to immersion\n\tin water, a more serious style of water-proof box is needed.  And\n\tof course, don't forget the GFCIs.\n\n\tThe required depths and other details vary from jurisdiction to\n\tjurisdiction, so we suggest you consult your inspector about\n\tyour specific situation.\n\n\tA hint: buy a roll of bright yellow tape that says \"buried power\n\tline\" and bury it a few inches above where the wire has been placed.\n\nSubject: Aluminum wiring\n\n\tDuring the 1970's, aluminum (instead of copper) wiring became\n\tquite popular and was extensively used.  Since that time,\n\taluminum wiring has been implicated in a number of house fires,\n\tand most jurisdictions no longer permit it in new installations.\n\tWe recommend, even if you're allowed to, that do not use it for new\n\twiring.\n\n\tBut don't panic if your house has aluminum wiring.  Aluminum\n\twiring, when properly installed, can be just as safe as copper.\n\tAluminum wiring is, however, very unforgiving of improper\n\tinstallation.  We will cover a bit of the theory behind potential\n\tproblems, and what you can do to make your wiring safe.\n\n\tThe main problem with aluminum wiring is a phenomenon known as\n\t\"cold creep\".  When aluminum wiring warms up, it expands.  When\n\tit cools down, it contracts.  Unlike copper, when aluminum goes\n\tthrough a number of warm/cool cycles it loses a bit of tightness each\n\ttime.  To make the problem worse, aluminum oxidises, or corrodes\n\twhen in contact with certain types of metal, so the resistance\n\tof the connection goes up.  Which causes it to heat up and corrode/\n\toxidize still more.  Eventually the wire may start getting very hot,\n\tmelt the insulation or fixture it's attached to, and possibly even\n\tcause a fire.\n\n\tSince people usually encounter aluminum wiring when they move\n\tinto a house built during the 70's, we will cover basic points of\n\tsafe aluminum wiring.  We suggest that, if you're considering purchasing\n\ta home with aluminum wiring, or have discovered it later, that you\n\thire a licensed electrician or inspector to check over the wiring\n\tfor the following things:\n\n\t    1) Fixtures (eg: outlets and switches) directly attached to\n\t       aluminum wiring should be rated for it.  The device will\n\t       be stamped with \"Al/Cu\" or \"CO/ALR\".  The latter supersedes\n\t       the former, but both are safe.   These fixtures are somewhat\n\t       more expensive than the ordinary ones.\n\n\t    2) Wires should be properly connected (at least 3/4 way around\n\t       the screw in a clockwise direction).  Connections should be\n\t       tight.  While repeated tightening of the screws can make the\n\t       problem worse, during the inspection it would pay off to snug\n\t       up each connection.\n\n\t       Note that aluminum wiring is still often used for the\n\t       main service entrance cable.  It should be inspected.\n\n\t    3) \"push-in\" terminals are an extreme hazard with aluminum wire.\n\t       Any connections using push-in terminals should be redone with\n\t       the proper screw connections immediately.\n\n\t    4) There should be no signs of overheating: darkened connections,\n\t       melted insulation, or \"baked\" fixtures.  Any such damage should\n\t       be repaired.\n\t    \n\t    5) Connections between aluminum and copper wire need to be\n\t       handled specially.  Current Canadian codes require that the\n\t       wire nut used must be specially marked for connecting\n\t       aluminum to copper.  The NEC requires that the wire be\n\t       connected together using special crimp devices, with an\n\t       anti-oxidant grease.  The tools and materials for the latter\n\t       are quite expensive - not practical to do it yourself unless\n\t       you can rent the tool.\n\n\t    6) Any non-rated receptacle can be connected to aluminum wiring\n\t       by means of a short copper \"pigtail\".  See (5) above.\n\t    \n\t    7) Shows reasonable workmanship: neat wiring, properly stripped\n\t       (not nicked) wire etc.\n    \n\tIf, when considering purchasing a home, an inspection of the wiring\n\tshows no problems or only one or two, we believe that you can consider\n\tthe wiring safe.  If there are signs of problems in many places,\n\twe suggest you look elsewhere.  If the wrong receptacles are used,\n\tyou can replace them with the proper type, or use pigtails - having\n\tthis professionally done can range from $3 to $10 per receptacle/switch.\n\tYou can do this yourself too.\n\nSubject: I'm buying a house!  What should I do?\n\n\tCongratulations.  But...  It's generally a good idea to hire\n\tan inspector to look through the house for hidden gotchas.\n\tNot just for wiring, but plumbing and structural as well.  If an\n\tinspection of the wiring shows no problems or only one or two minor\n\tones, we believe that you can consider the wiring safe (after any\n\tminor problems are fixed).  If there are signs of problems in many\n\tplaces, we suggest you look elsewhere.\n\n\tHere's some hints on what to look for:\n\n\tObvious non-code wiring can include:\n\n\t\t- Zip cord wiring, either concealed or nailed to walls\n\t\t- Hot wiring on the identified (neutral) conductor without\n\t\t  proper marking.\n\t\t- Ungrounded grounding outlets (except when downstream of\n\t\t  a GFCI)\n\t\t- Splices hanging in mid-air (other than proper knob-and-tube)\n\t\t- Switched neutrals\n\t\t- Unsecured Romex swinging about like grapevines\n\n\tCertain wiring practises that are actually to code (or were at one\n\ttime) sometimes reveal DIY wiring that may have hidden violations:\n\n\t\t- Switches that seem to control nothing (abandoned, perhaps\n\t\t   not properly terminated wiring)\n\t\t- A wall switch that shuts off a group of lights that are\n\t\t  separately controlled by other wall switches.  (except when\n\t\t  it's *really* convenient ;-)\n\t\t- Switches and outlets in bizarre locations\n\t\t- Great numbers of junction boxes without outlets or lamps\n\t\t- Junction boxes with great numbers of wires going into them\n\t\t- Wiring that passes through a closet instead of a wall or\n\t\t  ceiling\n\t\t- Backwrapped grounding wires\n\nSubject: What is this weird stuff?  Old style wiring\n\t\n\tIn the years since Edison \"invented\" electricity, several different\n\twiring \"styles\" have come and gone.  When you buy an older home you\n\tmay encounter some of this stuff.  This section describes the old \n\tmethods, and some of their idiosyncrasies.\n\n\tThe oldest wiring system you're likely to encounter is called\n\t\"knob and tube\" (K&T).  It is made up of individual conductors with\n\ta cloth insulation.  The wires are run along side structural\n\tmembers (eg: joists or studs) using ceramic stand-offs (knobs).\n\tWire is run through structural members using ceramic tubes.  Connections\n\twere made by twisting the wire together, soldering, and wrapping\n\twith tape.  Since the hot and neutral were run separately,\n\tthe wiring tends to be rather confusing.  A neutral often runs\n\tdown the centre of each room, with \"taps\" off to each fixture.\n\tThe hot wire tended to run from one fixture to the next.  In some\n\tcases K&T isn't colour-coded, so the neutral is often the same\n\tcolour as the hot wires.\n\n\tYou'll see K&T in homes built as late as the 40's.\n\n\tComments on K&T:\n\n\t\t- the people installing K&T were pretty paranoid about\n\t\t  electricity, so the workmanship tends to be pretty good.\n\t\t- The wire, insulation and insulators tend to stand up\n\t\t  very well.  Most K&T I've seen, for example, is in\n\t\t  quite good condition.\n\t\t- No grounding.  Grounding is usually difficult to install.\n\t\t- boxes are small.  Receptacle replacement (particularly with\n\t\t  GFCI) can be difficult.  No bushing on boxes either,\n\t\t  so wiring changes need special attention to box entry.\n\t\t- Sometimes the neutral isn't balanced very well between\n\t\t  separately hot circuits, so it is sometimes possible to\n\t\t  overload the neutral without exceeding the fusing on\n\t\t  any circuit.\n\t\t- Building code does not permit insulation in walls\n\t\t  that contain K&T.\n\t\t- Connection to existing K&T from new circuits can be\n\t\t  tricky.  Consult your inspector.\n\t\t- Modern wiring practise requires considerably more\n\t\t  outlets to be installed than K&T systems did.\n\t\n\tSince K&T tends to be in pretty decent condition it generally isn't\n\tnecessary to replace it simply because it's K&T.  What you should\n\twatch out for is renovations that have interfered with it and\n\tbe cautious about circuit loading.  In many cases it's perfectly\n\treasonable to leave existing K&T alone, and add new fixtures on\n\tnew circuits using modern techniques.\n\t\n\tAfter K&T, they invented multi-conductor cable.  The first type\n\tyou will see is roughly a cloth and varnish insulation.  It looks\n\tmuch like the romex cable of the last decade or two.  This stuff was\n\tused in the 40's and 50's.  Again, no grounding conductor.\n\tIt was installed much like modern wiring.  Its major drawback\n\tis that this type of insulation embrittles.  We've seen whole\n\tsystems where the insulation would fracture and fall off at\n\ta touch.  BX cable of the same vintage has similar problems.\n\n\tThis stuff is very fragile, and becomes rather hazardous if\n\tthe wires become bare.  This wiring should be left untouched as\n\tmuch as possible - whenever an opportunity arises, replace it.\n\tA simple receptacle or switch replacement can turn into a several\n\thour long frustrating fight with electrical tape or heat-shrink\n\ttubing.\n\n\tAfter this wiring technique, the more modern romex was invented.\n\tIt's almost a asphalt impregnated cloth.  Often a bit sticky.\n\tThis stuff stands up reasonably well and doesn't present a hazard\n\tand is reasonably easy to work with.  It does not need to be\n\treplaced - it should be considered as safe as the \"modern\" stuff -\n\tthermoplastic insulation wire.  Just don't abuse it too much.\n\nSubject: Where do I buy stuff?\n\n\tTry to find a proper electrical supply outlet near you.  Their\n\tprices will often be considerably better than chain hardware stores or\n\tDIY centres, have better quality materials, have wider variety\n\tincluding the \"odd\" stuff, and have people behind the counter that\n\tknow what you're talking about.  Cultivate friendly knowledgeable\n\tsales people.  They'll give you much valuable information.\n-- \nChris Lewis; clewis@ferret.ocunix.on.ca; Phone: Canada 613 832-0541\nPsroff 3.0 info: psroff-request@ferret.ocunix.on.ca\nFerret list: ferret-request@ferret.ocunix.on.ca\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3434, "properties": {"category": "sci.electronics", "text": "From: rsd@sei.cmu.edu (Richard S D'Ippolito)\nSubject: Re: What is Zero dB????\nOrganization: The Software Engineering Institute\nLines: 10\n\n\nIn article <1pkveuINNduk@gap.caltech.edu>, Joseph Chiu writes:\n\n> The Ohmite company was the first to characterize resistances by numbers, thus\n> our use of the Ohms...\n\n\nYeah, right.  And the company was started by George Simon Ohmite.\n\nRich\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3435, "properties": {"category": "rec.autos", "text": "From: daubendr@NeXTwork.Rose-Hulman.Edu (Darren R Daubenspeck)\nSubject: Re: Plymouth Sundance/Dodge Shadow experiences?\nOrganization: Computer Science Department at Rose-Hulman\nLines: 12\nDistribution: usa\nReply-To: daubendr@NeXTwork.Rose-Hulman.Edu (Darren R Daubenspeck)\nNNTP-Posting-Host: l130b7.nextwork.rose-hulman.edu\n\n\n> they are pretty much junk, stay away from them.  they will be replaced next\n> year with all new models.  \n\n\nJunk?  They've made the C&D lists for years due to their excellent handling and  \nacceleration.  They have been around since about, oh, 85 or 86, so they're not  \nthe newest on the lot, and mileage is about five to eight MPG under the class  \nleader.  You can get into a 3.0 L v-6 (141 hp) Shadow for $10~11K (the I-4  \nturbo a bit more), and a droptop for $14~15K.  \n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3436, "properties": {"category": "talk.religion.misc", "text": "From: matmcinn@nuscc.nus.sg (Matthew MacIntyre at the National University of Senegal)\nSubject: Re: Gilligan's island, den of iniquity\nOrganization: National University of Singapore\nX-Newsreader: Tin 1.1 PL4\nLines: 21\n\nbeb@pt.com (Bruce Buck) writes:\n: In article <1993Apr13.011033.23123@nuscc.nus.sg> matmcinn@nuscc.nus.sg (Matthew MacIntyre at the National University of Senegal) writes:\n: >: >> Gilligan = Sloth\n: >: >> Skipper = Anger\n: >: >> Thurston Howell III = Greed\n: >: >> Lovey Howell = Gluttony\n: >: >> Ginger = Lust\n: >: >> Professor = Pride\n: >: >> Mary Ann = Envy\n: >\n: >Assorted Monkeys= Secular Humanism\n: \n: Assorted Headhunters - Godless, Heathen Savagery\n: Russian Agent who looks like Gilligan - Godless Communism\n: Japanese Sailor - Godless Barbarism\n: Walter Pigeon - Godless Bird Turd\n: The Mosquitos (Bingo, Bango, Bongo, Irving) - Godless Rock'n'Roll\n: Harold Heckuba (Phil Silvers) - Hollywood Hedonism\n: John McGiver - Butterfly flicking\n: Tonga, the Fake Apeman - Deceit, Lust\n: Eva Grubb - Deceit, lust\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3437, "properties": {"category": "alt.atheism", "text": "From: \"Robert Knowles\" <p00261@psilink.com>\nSubject: Re: Suggestion for \"resources\" FAQ\nIn-Reply-To: <C5qKDy.40D@liverpool.ac.uk>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Kupajava, East of Krakatoa\nX-Mailer: PSILink-DOS (3.3)\nLines: 34\n\n>DATE:   Mon, 19 Apr 1993 15:01:10 GMT\n>FROM:   Bruce Stephens <bruce@liverpool.ac.uk>\n>\n>I think a good book summarizing and comparing religions would be good.\n>\n>I confess I don't know of any---indeed that's why I checked the FAQ to see\n>if it had one---but I'm sure some alert reader does.\n>\n>I think the list of books suffers far too much from being Christian based;\n>I agree that most of the traffic is of this nature (although a few Islamic\n>references might be good) but I still think an overview would be nice.\n\nOne book I have which presents a fairly unbiased account of many religions\nis called _Man's Religions_ by John B. Noss.  It was a textbook in a class\nI had on comparative religion or some such thing.  It has some decent\nbibliographies on each chapter as a jumping off point for further reading.\n\nIt doesn't \"compare\" religions directly but describes each one individually\nand notes a few similarities.  But nothing I have read in it could be even\nremotely described as preachy or Christian based.  In fact, Christianity\nmercifully consumes only 90 or so of its nearly 600 pages.  The book is\ndivided according to major regions of the world where the biggies began \n(India, East Asia, Near East).  There is nothing about New World religions\nfrom the Aztecs, Mayas, Incas, etc.  Just the stuff people kill each\nother over nowadays.  And a few of the older religions snuffed out along\nthe way.  \n\nIf you like the old stuff, then a couple of books called \"The Ancient Near\nEast\" by James B. Pritchard are pretty cool.  Got the Epic of Gilgamesh,\nCode of Hammurabi, all the stuff from way back when men were gods and gods\nwere men.  Essential reading for anyone who wishes to make up their own\nreligion and make it sound real good.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3438, "properties": {"category": "rec.sport.hockey", "text": "From: mep@phoenix.oulu.fi (Marko Poutiainen)\nSubject: Re: Finland/Sweden vs.NHL teams (WAS:Helsinki/Stockholm & NH\nOrganization: University of Oulu, Finland\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 24\n\n: you mention could cut it as stars in the NHL! Even \"Rexi\" in his prime was more\n: of a good regular in New York/Edmonton than a superstar in his own right,\n: although some blamed that on lack of effort on his behalf.\n:\nI think that the NY management made a mistake, and remember how Edmonton \ncalled Reksa in the middle of the season to win the cup ? Why did they call\nhim?\n \n: Yeah, we've had a tendency to beat ourselves in the past. I almost knifed my\n: brother in anger when Sweden scored two in the final minute of the WC \n: semifinals back in 1986:-) Or what about the three goals Antero Kivela let in\n: with five minutes to go against the Russkies in Lake Placid'80? Ugh . . . \n\nO.K., that was BAD luck. If Penguins have the same kind of luck this year in\nthe playoffs, they'll never win the cup. They are still the best team.\n\n--\n***********************************************************************\n* 'Howl howl gargle howl gargle howl howl howl gargle howl gargle howl* \n*  howl gargle gargle howl gargle gargle gargle howl slurrp uuuurgh'  *\n*                                       -Prostetnic Vogon Jeltz       *\n***********************************************************************\n\t-Marko Poutiainen\n\t mep@phoenix.oulu.fi\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3439, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hew@guvax.acc.georgetown.edu\nSubject: Monitor Shut-down on 13\" Hi-Res\nOrganization: Georgetown University\nLines: 11\nSummary: monitor shutoff on 13\" er's\nReply-To: m_torricelli@unhh.unh.edu\nDistribution: world\n\nTHere is a defect in the 13\" hi-res monitors, bring it to a dealer and \nthey will replace the flyback for free, I think.\n\n\n\tI just heard of this problem at work today and we are fixing \nthem for free.\n\n\n\t________________\n\t- / o r r\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3440, "properties": {"category": "rec.sport.baseball", "text": "From: scott@asd.com (Scott Barman)\nSubject: Re: Jewish Baseball Players?\nOrganization: American Software Development Corp., West Babylon, NY\nLines: 16\n\nIn article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>Just wondering.  A friend and I were talking the other day, and\n>we were (for some reason) trying to come up with names of Jewish\n>baseball players, past and present.  We weren't able to come up\n>with much, except for Sandy Koufax, (somebody) Stankowitz, and\n>maybe John Lowenstein.  Can anyone come up with any more.  I know\n>it sounds pretty lame to be racking our brains over this, but\n>humor us.  Thanks for your help.\n\nWasn't Ron Bloomberg, the former Yankee who got the first base hit\nby a Designated Hitter, Jewish??\n-- \nscott barman    | Mets Mailing List (feed the following into your shell):\nscott@asd.com   |            mail mets-request@asd.com <<!\n                |            subscribe\n Let's Go Mets! |            !\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3441, "properties": {"category": "comp.windows.x", "text": "From: rlm@helen.surfcty.com (Robert L. McMillin)\nSubject: Re: Mix GL with X (Xlib,Xt,mwm)\nOrganization: Surf City Software/TBFW Project\nIn-Reply-To: graham@sparc1.ottawa.jade.COM's message of 19 Apr 1993 16:59:12 -0400\nLines: 21\n\nOn 19 Apr 1993 16:59:12 -0400, graham@sparc1.ottawa.jade.COM (Jay Graham) said:\n\n> I am developing an X (Xt,Xm) application that will include a graphics window\n> of some sort with moving symbols among other things.  A pure X application\n> could be implemented with Motif widgets, one of which would be an \n> XmDrawingArea for drawing with Xlib.  But I would like to take advantage of\n> the Graphics Library (GL) available on our IBM RS/6000 (SGI's GL i believe).\n\n> Is it possible to mix X and GL in one application program?\n> Can I use GL subroutines in an XmDrawingArea or in an X window opened by me\n> with XOpenWindow?\n\nIn SGI's distribution with their Indigo line (others as well, possibly),\nthey include source code for a GL widget that fits on top of Motif, and\none that's Xt based as well.  You may wish to ask IBM whether they\nsupport this.\n--\n\nRobert L. McMillin | Surf City Software | rlm@helen.surfcty.com | Dude!\n#include <std.disclaimer.h>\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3442, "properties": {"category": "talk.politics.guns", "text": "Subject: Re: Nazi memoribilia\nFrom: cmay@helium.gas.uug.arizona.edu (Christopher C May)\nOrganization: University of Arizona - Tucson, Arizona\nLines: 34\n\nIn <1993Apr2.232511.10711@raid.dell.com> mikepb@lupus.dell.com (Michael P. Brininstool) writes:\n\n>Swatikas were also common in American Indian markings/painted walls etc.  Is\n>it the Swastika that is bad?  \n\nJust want to back this up with a personal anecdote.  My grandparents\nhave a Navajo rug made in the 1920's, which they received in trade \nfrom the weaver while living in Flagstaff, Arizona.  The decorative motif\nconsists of 4 large black swastikas, one in each corner.  What's more, the\ncolor scheme is black, white, and red.  To the casual glance it would\nundoubtedly appear to be a Nazi relic of some kind.  Yet they owned it\nten years before Hitler and the National Socialists came to power.  \n\nAs I recall, they took it down in the 30's, and didn't feel quite right\nabout putting it back up until the 60's.  It still draws comments from \nthose who don't know what it is.\n\n--ccm\n\n-- \nChristopher C. May * U. of Ariz. Coll. of Medicine '93 * cmay@ccit.arizona.edu\n+=============================================================================+\n| Do your part for Liberty: Teach your children to hate Big Government.       |\n+-----------------------------------------------------------------------------+\n| Do you care about freedom? Dreams may have inspired it, and wishes promoted | \n|     it, but only war and weapons have made it yours. -- Robert Ardrey       |\n| Armaque in armatos sumere jura sinunt. -- Ovid                              | \n| The wise man's understanding inclineth him toward his right hand, but a     |\n|     fool's heart turneth him to the left. -- Ecclesiastes 10:2              | +-----------------------------------------------------------------------------+\n--\nChristopher C. May * U. of Ariz. Coll. of Medicine '93 * cmay@ccit.arizona.edu\n+=============================================================================+\n| Do your part for Liberty: Teach your children to hate Big Government.       |\n+-----------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3443, "properties": {"category": "rec.motorcycles", "text": "From: max@queernet.org (Max J. Rochlin)\nSubject: Re: Speeding ticket from CHP\nOrganization: QueerNet\nLines: 10\n\nInteresting.  I'd fight the ticket.  First off, there's a 50/50 chance\nthe cop won't show up.  Secondly, if he does show up, you should point\nout that he lied (purgered) on the ticket.  Why 70+?  I beleive that if\nyo're charged with going more than 15mph that the posted speed it's a\nmore severe ticket.  You couldn't have p[ossibly been going 70+, right?!\n\n-- \n|  max@queernet.org  |   Max J. Rochlin   |  {uunet,sgi}!unpc!max  |\n+------------------------------------------------------------------+\n|                 Protect me from what I want...                   |\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3444, "properties": {"category": "misc.forsale", "text": "From: mrh@iastate.edu (Michael R Hartman)\nSubject: Re: Car Stereo Stolen?\nOrganization: Iowa State University, Ames, IA\nLines: 36\n\nIn article <C5t7qG.9IJ@rice.edu> xray@is.rice.edu (Kenneth Dwayne Ray) writes:\n>> I had the front panel of my car stereo stolen this weekend.\n>\n>> I need to buy the front panel of a Sony XR-U770 car stereo.\n>>\n>I was my understanding that the purpose of those removeable-front-panels\n>were to make the radio useless, and thus discourage theft (that is if the \n>cover were removed by the owner and taken along whenever the car was left.)\n>\n>If those covers were sold for anything remarkably less than the radio \n>originally costs, or even sold at all,\n>then the above discouragement wouldn't be so great.\n>\n>I personally would be unhappy, if I bought a radio like that, thinking that \n>removing the cover greatly depreciated the radio's value, and the covers were\n>sold by the company (or other legitimate source) cheaply.\n>-- \n\nThe front covers should be available from Sony.  Check with a local car\nstereo shop.  You will probably (definitely) have to provide the units \nserial number and hopefully you had registered the warranty card.  I \ndon't know the cost, but replacements have to be available to people\nwho damage the face cover, so it stands to reason that it can be replaced.\n\nAs to deterring theft:\n\nWhen I worked for a stereo shop, we referred the customer to a Sony 800\nnumber.  We would not sell the face, nor did we have them available.  Most\npeople who came in asking for the face cover (or a pullout sleave for that\nmatter) would look very disheartened to find that they acquired a deck\nthey couldn't use.  If theft occurs with these decks, notify Sony.  Serial\nnumbers do catch theives.\n\nJust a thought,\nMichael\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3445, "properties": {"category": "talk.politics.misc", "text": "From: kennejs@a.cs.okstate.edu (KENNEDY JAMES SCOT)\nSubject: Drug Use Up At Younger Age\nOrganization: Oklahoma State University, Computer Science, Stillwater\nKeywords: youths drugs LSD inhalants\nLines: 62\n\n\nThe article that follows was taken from the Wednesday, April 14,\n1993 issue of USA Today (\"Drug Use Up At Younger Age\" by Mike\nSnider, p. 1A).\n\n    Drug use is on the rise among kids as young as eighth graders -\n    usually 13 - and they're using more LSD and inhalants like glue\n    and air fresheners, says a new survey.\n\n    The annual National High School Senior Survey on Drug Abuse finds\n    \"statistically significant increases\" in eighth-graders' use of\n    many drugs, including marijuana, cocaine, crack, LSD and inhalants.\n\n    \"We may be in danger of losing some ... hard-won ground (in reducing\n    drug use) as a new, more naive generation of youngsters enters\n    adolescence,\" says Lloyd Johnston, University of Michigan, chief\n    researcher on the study sponsored by the Department of Health and\n    Human Services.\n\n    But drug use among high school seniors is continuing a decade-long\n    decline.\n\n    The study of 50,000 students shows the percentage who tried the\n    following in the 30 days before they were polled:\n\n        * 8th-graders  - alcohol 26%; cigarettes 16%; marijuana 4%;\n                         cocaine 0.7%.\n\n        * 10th-graders - alcohol 40%; cigarettes 22%; marijuana 8%;\n                         cocaine 0.7%.\n\n        * 12th-graders - alcohol 51%; cigarettes 28%; marijuana 12%;\n                         cocaine 1.3%.\n\n    Among 12th-graders, use of marijuana, cocaine and inhalants\n    declined over the year before.  Not so with LSD.\n\n    * 2% of eighth-graders have tried LSD in the last year, up 24%\n    over 1991. \n\n    * Use of LSD among seniors is at its highest point since 1982; 6%\n    tried it in the last year.\n\n    Reducing drug use among students \"requires a different kind of\n    strategy\" that Health Secretary Donna Shalala says will be part\n    of an overall illness prevention plan.\n\n    The survey shows drugs are easier to get and fewer eighth-graders\n    disapprove of them.\n\n    \"It's scary,\" Shalala says.  \"Dealers are focusing on younger, more\n    vulnerable kids.\"\n\n\nScott Kennedy,  Brewer and Patriot\n\nBefore:  \"David Koresh is a cheap thug who interprets\n          the Bible through the barrel of a gun...\"  --ATF spokesman\nAfter:   \"[The ATF] is a cheap thug who interprets\n          [the Constitution] through the barrel of a gun...\"  --Me\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3446, "properties": {"category": "rec.motorcycles", "text": "From: csundh30@ursa.calvin.edu (Charles Sundheim)\nSubject: Re: Boom! Dog attack!\nNntp-Posting-Host: ursa\nOrganization: Calvin College\nLines: 41\n\nryan_cousineau@compdyn.questor.org (Ryan Cousineau)  writes:\n\n>blind driveway at 15-30 mph. For that matter, how many driveways are\n>long enough for a car to hit 30 mph by the end?\n\n>I eagerly await comment.\n\n\nWell, my driveway is... Just keep an eye out for the blue GLH Turbo that \nutilizes the \"hit-the-ground-running\" merging technique. \nAt least I don't have a dog that you need worry about.\n\nLast week while entering a sand/gravel covered intersection in the country, \nI caught something unkosher out of the corner of my eye (you know that \ndisgusting sensation when great, as-of-yet unidentified, evil is about to \nintimately acquaint itself with you-- kind of like knowing that that darkening \nshadow around you just cannot possibly be anything even remotely good, because\nit probably has something to do with a Boeing 747 behaving, gravitationally\nspeaking, much like a brick).  Negotiating my way into this intersection that \nsomehow reminded me of Daytona beach (sans H2O, sun, & babes) I manage to get a\nglance at my impending destiny.  Lucifer's own DOG.  Hell's secret blend\nof canine-- Doberman and Rottweiler (it moved with the grace of a Doberman,\nyet had the hulk and jowels of the Rottweiler-- a creature with a definite\n*wrong* end to be at).  The picture in my mirrors was fuzzy, but there was no \nmistaking the fangs and saliva trail.  \nTo shorten a verbose tale, my burly gaurdian-angels once again performed above\nand beyond the call of duty, carried the bike through the sand-trap (I honestlyhave no idea how), and left the minion of Beelzebub with a face that \nsuspiciously resembles a Metzler tread.  No blood, though-- Rats.\n\nMoral: I'm not really sure, but more and more I believe that bikers ought \n       to be allowed to carry handguns.\n\n-Erc.\n\n_______________________________________________________________________________\nC Eric Sundheim\nGrandRapids, MI, USA\n`90 Hondo VFR750f\nDoD# 1138\n-------------------------------------------------------------------------------\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3447, "properties": {"category": "rec.motorcycles", "text": "From: doc@webrider.central.sun.com (Steve Bunis SE Southwest Chicago)\nSubject: Cobra Locks\nOrganization: Sun Microsystems, Inc.\nLines: 27\nDistribution: usa\nReply-To: doc@webrider.central.sun.com\nNNTP-Posting-Host: webrider.central.sun.com\n\nI was posting to Alt.locksmithing about the best methods for securing \na motorcycle.  I got several responses referring to the Cobra Lock\n(described below).  Has anyone come across a store carrying this lock\nin the Chicago area?\n\nAny other feedback from someone who has used this?\n\nThanks for any info.,\n\nSteve\n\nIn article 1r1534INNraj@shelley.u.washington.edu, basiji@stein.u.washington.edu (David Basiji) writes:\n> \n> Incidentally, the best lock I've found for bikes is the Cobra Lock.\n> It's a cable which is shrouded by an articulated, hardened steel sleeve.\n> The lock itself is cylindrical and the locking pawl engages the joints\n> at the articulation points so the chain can be adjusted (like handcuffs).\n> You can't get any leverage on the lock to break it open and the cylinder\n> is well-protected.  I wouldn't want to cut one of these without a torch\n> and/or a vice and heavy duty cutting wheel.\n> \n\n\n---\nSteve Bunis,  Sun Microsystems     ***DoD #0795***\t93-ST1100\n              Itasca, IL\t  ***AMA #682049***\t78-KZ650\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.157+0000", "event": "documents", "entityId": 3448, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Re: Public Service Translation No.2\nKeywords: effective Greek & Armenian postings\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 36\n\nIn article <93332@hydra.gatech.EDU> gt1091a@prism.gatech.EDU (gt1091a gt1091a\nKAAN,TIMUCIN) wrote:\n\n[KAAN] Who the hell is this guy David Davidian. I think he talks too much..\n\nI am your alter-ego!\n\n[KAAN] Yo , DAVID you would better shut the f... up.. O.K ??\n\nNo, its' not OK! What are you going to do? Come and get me? \n\n[KAAN]  I don't like your attitute. You are full of lies and shit. \n\nIn the United States we refer to it as Freedom of Speech. If you don't like \nwhat I write either prove me wrong, shut up, or simply fade away! \n\n[KAAN] Didn't you hear the saying \"DON'T MESS WITH A TURC!!\"...\n\nNo. Why do you ask? What are you going to do? Are you going to submit me to\nbodily harm? Are you going to kill me? Are you going to torture me?\n\n[KAAN] See ya in hell..\n\nWrong again!\n\n[KAAN] Timucin.\n\nAll I did was to translate a few lines from Turkish into English. If it was\nso embarrassing in Turkish, it shouldn't have been written in the first place!\nDon't kill the messenger!\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3449, "properties": {"category": "rec.sport.baseball", "text": "From: djc47305@uxa.cso.uiuc.edu (Doc )\nSubject: re: Evil smile on my face as Cubs Beat Braves\nOrganization: University of Illinois at Urbana\nLines: 29\n\nBoy, hats off to any Cubs fan who can actually muster up the courage to put\ndown Braves fans.  I mean, all the Braves have done is gone to two consecutive\nworld series.  Also, being the Cubs fan that I am, I really have to hand it to\nall the Braves fans out there that are capable of driving me crazy with that\ninfernal cheer that they have.  \n\nHowever, I do have to protest anyone saying that all Cubs fans are stupid.  The\nway I see it, either I'm just too stupid to acknowledge it, or that observation\nwas just plain wrong.  You might have us confused with Bear fans. ;)\n\nAnyway, about a two weeks ago just about everyone was saying that the Cubs\nwould finish up last in their division.  (Even behind Florida?!?  Sheesh!)  \nThese same people were predicting the Braves to clean up in their respective\ndivision.  Well,  we're ten games into the season and these people are a little\nless vocal now.  I wonder why.\n\nWell, the way I see it, the East is up for grabs, and whoever wants it most is\ngoing to take it, with the exception of Florida.  Every team seems to have\ngood batting and pitching, with Philly presently leading the pack.  But, I just\nhave to point out, if the Cubs do take the East, they'll do it without the\nbenefit of a competent manager.  However, and it pains me to say it, the\npennant is going to go to the West.\n\nJust had to get that off my chest.\n\n\t\t\t\t\t\tDoc\n\nbem\nbenefit of a compee\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3450, "properties": {"category": "sci.space", "text": "From: adam@sw.stratus.com (Mark Adam)\nSubject: Re: space food sticks\nOrganization: Stratus Computer, Inc.\nLines: 22\nDistribution: world\nNNTP-Posting-Host: paix.sw.stratus.com\nKeywords: food\n\nIn article <1pr5u2$t0b@agate.berkeley.edu>, ghelf@violet.berkeley.edu (;;;;RD48) writes:\n> The taste is hard to describe, although I remember it fondly.  It was\n> most certainly more \"candy\" than say a modern \"Power Bar.\"  Sort of\n> a toffee injected with vitamins.  The chocolate Power Bar is a rough\n> approximation of the taste.  Strawberry sucked.\n> \n\nPeanut butter was definitely my favorite. I don't think I ever took a second bite\nof the strawberry.\n\nI recently joined Nutri-System and their \"Chewy Fudge Bar\" is very reminicent of\nthe chocolate Space Food. This is the only thing I can find that even comes close\nthe taste. It takes you back... your taste-buds are happy and your\nintestines are in knots... joy!\n\n-- \n\nmark ----------------------------\n(adam@paix.sw.stratus.com)\t|\tMy opinions are not those of Stratus.\n\t\t\t\t|\tHell! I don`t even agree with myself!\n\n\t\"Logic is a wreath of pretty flowers that smell bad.\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3451, "properties": {"category": "rec.motorcycles", "text": "From: fist@iscp.bellcore.com (Richard Pierson)\nSubject: Anti Freeze\nNntp-Posting-Host: foxtrot.iscp.bellcore.com\nOrganization: Bellcore\nDistribution: usa\nLines: 36\n\nAnti Freeze\n\nI was wrong, still had the issue of \"Street Rodder\" in\nmy last pile. In the February 1991 issue on page 24 there\nis an advirtisement for anti freeze.\n \nAND IT MAKES A GREAT PARTY MIXER\nThe Neo Synthetic Oil Company has a reputation for\ndeveloping overkill priducts the protect and extend\nthe life of mechinical things, and here is there latest\ndevelopment. Propylene Glycol, probably the finest radiator \ncoolant available. After 100,000 miles of testing, they find\nit has a boiling point of 365 degrees (much higher than\nconventional coolants)- which helps elminate detonation and \npinging, it allows the use of smaller radiators in race cars,\nit will not damage aluminum blocks or heads, and it is \nenvironmentally safe. Yep, this is the good stuff.\nBaker Precision Products\nDept SRM\n2865 Gundry Ave\nLong Beach Ca 90806\n[213] 427-2375\n\nI neither endorse or unendorse the above product, I only\ncopied the advert blurb for others info, YMMV\n-- \n##########################################################\nThere are only two types of ships in the NAVY; SUBMARINES \n                 and TARGETS !!!\n#1/XS1100LH\tDoD #956   #2 Next raise\nRichard Pierson E06584 vnet: [908] 699-6063\nInternet: fist@iscp.bellcore.com,|| UUNET:uunet!bcr!fist  \n#include <std.disclaimer> My opinions are my own!!!\nI Don't shop in malls, I BUY my jeans, jackets and ammo\nin the same store.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3452, "properties": {"category": "rec.sport.baseball", "text": "From: fierkelab@bchm.biochem.duke.edu (Eric Roush)\nSubject: Re: Players Rushed to Majors\nOrganization: Biochemistry\nLines: 35\nNntp-Posting-Host: bruchner.biochem.duke.edu\n\nIn article <93122@hydra.gatech.EDU> re4@prism.gatech.EDU (RUSSELL EARNEST)\nwrites:\n>In article <1993Apr15.145753.21557@holos0.uucp>, lbr@holos0.uucp (Len Reed)\nwrites:\n>> In article <C5Hq3o.G4p@tss.com> hanson@tss.com (Hanson Loo) writes:\n\n>> >Didn't Bob Horner go straight from Arizona State Univ.\n>> >to the Atlanta Braves? I remember he had one great\n>> >month hitting dingers and then the next I heard\n>> >he was in Japan.\n\n>> A month?  Well, he did have a short career--compared to what one might\n>> have expected for such a highly touted prospect--due to being injury prone,\n>> overweight, and having no work ethic.  But he certainly did not\n>> suffer from being rushed to the bigs.\n\n\n>Sorry Len, this is exactly how he suffered from being rushed to the bigs.\n>Being overweight and having no work ethic, leading to being injury prone with\n>nothing to loose, might have been corrected in Richmond.  (Did you intend a \n>smiley after your comment?)\n\n\nIf I remember correctly (Which is always in doubt), Horner's signing\nwith the Braves was contingent on starting in Atlanta.  I think\nhe could have gone back to Arizona St. for one more year if he hadn't\nsigned.  Anyhow, the Braves did try to send him to Richmond once;\nit lead to a week-long walkout.  Methinks Horner had no work ethic\nbefore he was drafted, and minor league play wouldn't have helped.\nBut his raw talent would have gotten him into the ML, and it did\nkeep him there for a while, until he started falling on his wrists.\n\n\n\nEric (too lazy to update his sig) Roush\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3453, "properties": {"category": "sci.space", "text": "From: jaskew@spam.maths.adelaide.edu.au (Joseph Askew)\nSubject: Re: the call to space (was Re: Clueless Szaboisms )\nOrganization: Statistics, Pure & Applied Mathematics, University of Adelaide\nLines: 34\n\nIn article <1pfiuh$64e@access.digex.com> prb@access.digex.com (Pat) writes:\n\n>If the japanese are really going for Nukes, why not go with better\n>technology then we have.  AS opposed to BWR/PWRs  have they really\n>considered some of the 3rd generation Inherently safe designs.\n\nThe Japanese are still on the learning curve as far as nuclear power goes.\nThis means that unlike the Germans (who do great things all by themselves)\nthe Japanese tie up with foreign companies. The major one is Mitsubishi\n(who else) who have a sharing agreement with GE I think. No chance of a\nnew design.\n\n>Sodium has lots of chemical problems but it really solves design\n>difficulties.  Or the inherently safe types.\n\nSodium has *lots* of chemical problems. Like it eats stainless steel. Very\nslowly but it gets there in the end. Not what I call a desired property.\nAs for design difficulties, what does sodium do there? It is a bitch and\nit is only its chemical properties (flwed though they are) that means it\ngets used. Two loops? That's not a design problem? Isolation from air and\nwater? That doesn't cause design problems? In comparison BWR's a dream rides!\n\n>PWR's work real good,  but they need lots of steel,  and they are highly\n>complex systems.  Simplicity is a virtue.\n\nDon't get none of that in a Liquid Sodium Breeder! More steel, more complexity.\n\nJoseph Askew\n\n-- \nJoseph Askew, Gauche and Proud  In the autumn stillness, see the Pleiades,\njaskew@spam.maths.adelaide.edu  Remote in thorny deserts, fell the grief.\nDisclaimer? Sue, see if I care  North of our tents, the sky must end somwhere,\nActually, I rather like Brenda  Beyond the pale, the River murmurs on.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3454, "properties": {"category": "talk.politics.guns", "text": "From: hays@ssd.intel.com (Kirk Hays)\nSubject: Re: Gov't break-ins (Re: 60 minutes)\nNntp-Posting-Host: taos\nOrganization: Intel Supercomputer Systems Division\nLines: 23\n\nIn article <1993Apr5.155733.114@pasadena-dc.bofa.com>, franceschi@pasadena-dc.bofa.com writes:\n|> On a Los Angeles radio station last weekend, the lawyers for the\n|> family of the MURDERED rancher said that the Los Angeles Sheriff's\n|> Department had an assessment done of the rancher's property before\n|> the raid.\n\nThe briefing documents for the raid had a notation on them about a\nsimilar local property which had sold for $800,000 prior to the\nraid, if recent TV coverage can be believed.\n\n|> This strongly implies that the sheriff's department wanted the property;\n|> any drugs (which were not found) were only an excuse.\n\nThe Ventura County DA came to the same conclusion in the report he\nreleased, which lambasted the Sheriff's Office.\n\nToo bad the old man was nearly blind, and didn't take a few\ngoose-stepping Drug Warriors (TM) with him.\n\n-- \nKirk Hays - NRA Life, seventh generation.\n\"The only thing necessary for the triumph of evil is for good men to\ndo nothing.\"  -- Edmund Burke (1729-1797)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3455, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 22\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, ba@mrcnext.cso.uiuc.edu (B.A. Davis-Howe) says:\n\n>\n>ON the subject of how many competing RC orders there are, let me point out the\n>Golden Dawn is only the *outer* order of that tradition.  The inner order is\n>the Roseae Rubeae et Aurae Crucis.  \n>\n\n\tJust wondering, do you mean the \"Lectorium Rosicrucianum\"?\nWarning: There is no point in arguing who's \"legit\" and who's not. *WHICH*\nGolden Dawn are you talking about?\n\n\tJust for the sake of argument, (reflecting NO affiliation)\nI am going to say that the TRUE Rosicrucian Order is the Fraternitas\nRosae Crucis in Quakertown, Penn.,\n\n\tAny takers? :-)\n\nFraternally,\n\nTony\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3456, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: eric@tgm.CAM.ORG (Eric Trepanier)\nSubject: More Cool BMP files??\nReply-To: eric@tgm.CAM.ORG\nOrganization: Bell Sygma, Revenue Systems Development\nLines: 27\n\n\nIn article <1993Apr17.023017.17301@gmuvax2.gmu.edu> rwang@gmuvax2.gmu.edu writes:\n\n > \n > Hi, everybody:\n >     I guess my subject has said it all.  It is getting boring\n > looking at those same old bmp files that came with Windows.  So,\n > I am wondering if there is any body has some beautiful bmp file\n > I can share.  Or maybe somebody can tell me some ftp site for\n > some bmp files, like some scenery files, some animals files,\n > etc....  I used to have some, unfortunately i delete them all.\n \n \nI downloaded the CompuServe GIF of the month.  A raytraced image of\na golf ball next to a hole.  Very nice, 640x480x256 bitmap, easily\nconverted to a Windows BMP.  If anyone wants, I could upload a copy\non Cica...\n\n\nEric\n--\n+------------------------+----------------------------+------------------+\n| Eric Trepanier         | Internet: eric@tgm.CAM.ORG | CI$: 71042,3207  |\n| 55 Grenon O.           +----------------------------+------------------+\n| Laval (Quebec) H7N 5M3 | Everybody has a right to believe in something |\n| Canada / (514)663-6929 | I believe I'll have another beer!             |\n+------------------------+-----------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3457, "properties": {"category": "rec.motorcycles", "text": "From: vidaros@dhhalden.no (VIDAR OLAF SOLBERG)\nSubject: Type spesifications (CB, VFR, GT, etc.)\nLines: 16\nNntp-Posting-Host: pc159\nOrganization: Ostfold College\n\nCan somebody tell me what all the letter spesifications on motorcycle models \nreally mean. \nExample: What means the C, the B and the R in Honda CBR. - Or the V, S, G, L \nand P in Suzuki VS750GLP\n\nI wanna distribute this in our club magazine. I want lists of all types, but \nI already knows about Harley.\n\nThanks in advance!\n\n\tVidar\n ---------------------------------------------------------------------------\n   Vidar O. Solberg - NORWAY                     * ROCK HARD * RIDE FREE * \n\n          \"We are the proud, the few and the true Metallibashers!\" \n ---------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3458, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: food-related seizures?\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\n\nMy comments about the Feingold Diet have no relevance to your\ndaughter's purported FrostedFlakes-related seizures.  I can't imagine\nwhy you included it.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3459, "properties": {"category": "soc.religion.christian", "text": "From: wjhovi01@ulkyvx.louisville.edu\nSubject: Re: Hebrew grammar texts--choose English or German?\nOrganization: University of Louisville\nLines: 37\n\nPhil Sells writes:\n\n> Probably a tired old horse, but...  maybe with a slightly different\n> twist.  I wanted to know if there are any good English-language texts\n> for learning ancient Hebrew, and how these compare with German\n> educational texts qualitywise, if anybody has an idea.  I can't figure\n> out if I should buy one here for later study or wait until I get back to\n> the U.S.\n\nMy impression is that *for advanced work* you will be much better off with\nGerman reference works (lexicons, concordances especially).  For a first-time\nencounter, my *personal* preference would be to deal with a textbook written in\nmy native language.  But if you know German and are in Germany, pick up all the\nreference books you think you can handle.  (I only know these works by\nreputation, since my German is most rusty, but I'd look at the following books:\nKoehler's lexicon, Mandeldern's concordance, the Jenni & Westermann theological\ndictionary of the OT.)\n\n> What's it like at divinity schools or seminaries in the States?  Is\n> there a lot of language instruction done?  I really don't have a basis\n> for comparison.\n\nThe amount of language instruction available at US seminaries varies widely,\nmostly depending on the denominational heritage of the school.  Presbyterian\nand Reformed seminaries probably place a lot more emphasis on the biblical\nlanguages than others.  (Of course, any divinity school that has a doctoral\nprogram in biblical studies is going to have extensive language resources!  But\nthere are quite a few masters-degree-granting seminaries here at which the\nattitude seems to be more, \"Well, if you're *really* interested we'll give you\na semester-long course, but we don't understand why . . .\")\n\nThe pattern here at the Louisville Presbyterian Seminary is for first-year\nstudents to take intensive five-week introductory language courses in each\nlanguage, followed by semester-long exegesis courses.  (That is: Hebrew in\nAugust, OT exegesis in the fall; Greek in January, NT exegesis in the spring.) \nThese courses are required for graduation, a third or a half of the students,\nI'd say, take advanced biblical work that requires language work.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3460, "properties": {"category": "sci.med", "text": "From: rsilver@world.std.com (Richard Silver)\nSubject: Barbecued foods and health risk\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 10\n\n\nSome recent postings remind me that I had read about risks \nassociated with the barbecuing of foods, namely that carcinogens \nare generated. Is this a valid concern? If so, is it a function \nof the smoke or the elevated temperatures? Is it a function of \nthe cooking elements, wood or charcoal vs. lava rocks? I wish \nto know more. Thanks. \n\n\n \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3461, "properties": {"category": "soc.religion.christian", "text": "From: shimpei@leland.Stanford.EDU (Shimpei Yamashita)\nSubject: Survey: Faith vs. Reason\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 55\n\nThe following is a survey we are conducting for a term project in a philosophy\nclass. It is not meant to give us anything interesting statistically; we want\nto hear what kind of voices there are out there. We are not asking for full-\nblown essays, but please give us what you can.\n\nAs I do not read these groups often, please email all responses to me at\nshimpei@leland.stanford.edu. As my mail account is not infinite, if you can\ndelete the questions and just have numbered answers when you write back\nI would really appreciate it.\n\nSince we would like to start analyzing the result as soon as possible, we\nwould like to have the answers by April 30. If you absolutely cannot make\nit by then, though, we would still liken to hear your answer.\n\nIf anyone is interested in our final project please send a note to that effect\nwould like to have the answers by April 30. If you absolutely cannot make\nit by then, though, we would still like to hear your answer.\n\nIf anyone is interested in our final project please send a note to that effect\n(or better yet, include a note along with your survey response) and I'll try\nto email it to you, probably in late May.\n\nSURVEY:\n\nQuestion 1)\nHave you ever had trouble reconciling faith and reason? If so, what was the\ntrouble?\n(For example: -Have you ever been unsure whether Creationism or Evolutionism\n               holds more truth?\n              -Do you practice tarot cards, palm readings, or divination that\n               conflicts with your scientific knowledge of the world?\n              -Does your religion require you to ignore physical realities that\n               you have seen for yourself or makes logical sense to you?)\nBasically, we would like to know if you ever _BELIEVED_ in something that your\n_REASON_tells you is wrong.\n\nQuestion 2)\nIf you have had conflict, how did/do you resolve the conflict?\n\nQuestion 3)\nIf you haven't had trouble, why do you think you haven't? Is there a set of\nguidelines you use for solving these problems?\n\nThank you very much for your time.\n\n\n\n\n-- \nShimpei Yamashita, Stanford University       email:shimpei@leland.stanford.edu\n             \"There are three kinds of mathematicians: \n              those who can count and those who can't.\"\n\n[It seems to be that time of year.  Please remember that he's asked for\nyou to respond by email.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3462, "properties": {"category": "misc.forsale", "text": "From: loyd@seq.uncwil.edu (David Loyd)\nSubject: Sci Fi books for sale! Best Offer!\nOrganization: Univ. of North Carolina @ Wilmington\nLines: 52\n\n\nI would like to sell the following sci-fi books at Best Offer.\nIf you are interested, please email an offer and be sure to include\nshipping and handling. I prefer not to ship COD but if you purchase\n$25 or more, I will consider.\n\n\n\nHan Solo and the Lost Legacy\nHan Solo's Revenge\nHan Solo at Stars End\nSplinter in the Minds Eye\nThe Empire Strikes Back\nStar Wars\n\nStar Trek: The Motion Picture\nStar Trek: Wrath of Kahn\nThe Official Star Trek Trivia Book\nStar Trek Reader Vol I\nStar Trek Reader Vol II      These are the book form of the      \nStar Trek Reader Vol III           Original TV Series \nStar Trek Reader Vol IV   \n\nDune\nDune Messiah\nChildren of Dune\nGod Emperor of Dune\n\nAltered States\nAlien\nClose Encounters of the Third Kind\nDragonSlayer\n\nThe Mists of Avalon\nThe Compleat Book of Sowrds\nThe Lost Swords\n\n2001: A Space Odyssey\n2010: Odyssey II\n2061: Odyssey III\n\nBarlowes Complete Guide to ExtraTresstials\n\nAgain, best offer and don't be shy.\n\nThanks\n\n-- \n                         loyd@seq.uncwil.edu \nAmiga 2000 Tower                                       144 Megs HD Space\nVXL 40mhz '030 w/ 33 mhz FPU                           8 megs 32 bit Ram\nSupra 2400ZI+ Modem     Sony KV-1311CR Monitor         Wangtek 60meg TB     \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3463, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: The Nicene Creed (was Re: MAJOR VIEWS OF THE TRINITY)\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 152\n\nMichael Bushnell writes;\n\n>The so-called Creed of Athanasius, however, has always been a Western\n>creed, and has always had the filioque.  The Orthodox have said that\n>they accept all that it says, with the exception of the filioque, but\n>it is not \"in use.\"\n\nWhich is exactly what I pointed out.  (Though I was wrong about your use\nof the Creed, the 1913 Catholic Encylcopedia in which I read about it\nsaid the Orthodox do use the Creed minus the filioque.  Apparently that\nhas changed.)  The Athanasian Creed has always had the Filioque, the\nNicene - Constantinopolitan did not.\n\tOf course the Orthodox did not delete the Filioque from the Nicene\nCreed (it wasn't there to begin with), but they certainly did from the\nAthanasian Creed, which did have it from the beginning.\n\tI might point out that the whole problem started over the difference in\nways of explaining the generation of the Blessed Trinity, the East\nemphasizing the idea of the Holy Spirit proceeding from the Father\nthrough the Son, and the West using proceeding from the Father and the\nSon.  In fact, some, such as Tertullian, used both formulations (see\nbelow)\n\n\t\"Following, therefore, the form of these examples, I profess that I do\ncall God and His Word, - the Father and and His Son, - two.  For the\nroot and the stem are two things, but conjoined; the fountain and the\nriver are two kinds, but indivisible; the sun and the ray are two forms,\nbut coherent ones.  Anything which proceeds from another must\nnecessarily be a second to that from which it proceeds; but it is not on\nthat account separated from it.  Where there is second, however, there\nare two; and where ther is third, there are three.  The Spirit, then, is\nthird from God and the Son, just as the third from the root is the fruit\nof the stem, and third from the fountain is the stream from the river,\nand thrid from the sun is the apex of the ray.\"\n\t-Tertullian, Against Praxeas, 8, 5 (about 213 AD)\n\nand\n\n\t\"I believe that the Spirit proceeds not otherwise than from the Father\nthrough the Son\"\n\t-Tertullian, Against Praxeas, 4, 1 (about 213 AD)\n\nAnd as St. Thomas showed in his Summa Theologica Part 1, Question 36,\nArticles 2 and 3, there is no contradiction between the two methods of\ngeneration, and in fact, the two methods of reckoning the procession\nemphasize what St. Augustine, among others taught, that the Holy Spirit\nproceeds from the Father and the Son, but He proceeds from the Father in\na more preeminent way.\n\n\t\"For whatever the Son has, He has from the Father, certainly He has it\nfrom the Father that the Holy Spirit proceeds from Him ... For the\nFather alone is not from another, for which reason He alone is called\nunbegotten, not, indeed, in the Scriptures, but in the practice of\ntheologians, and of those who employ such terms as they are able in a\nmatter so great.  The Son, however, is born of the Father; and the Holy\nSpirit proceeds principally from the Father, and since the Father gives\nto the Son all that He has without any interval of time, the Holy Spirit\nproceeds jointly from both Father and Son.  He would be called Son of\nthe Father and of the Son if, which is abhorent to everyone of sound\nmind, they had both begotten Him.  The Spirit was not begotten by each,\nhowever, but proceeds from each and both.\"\n\t-St. Augustine of Hippo, The Trinity, 15, 26, 47 (400 to 416 AD)\n\nSo, in a sense, all of the formulations are correct (to the West at\nleast), because the Holy Spirit proceeds from both Father and Son, but\nin proceeding from the Son, the orgin of that procession is the\nprocession from the Father, so the Holy Spirit is proceeding from the\nFather through the Son, but as all that the Son has is from the Father,\nthe Holy Spirit can be said to proceed from the Father, without any\nmention of the Son being necessary.\n\tIn any case, I am happy to know that I follow in the beliefs of Pope\nSt. Leo I, St. Fulgence of Ruspe, St. Cyril of Alexandria, Pope St.\nDamsus I, St. Augustine of Hippo, St. Epiphanius of Salamis, St. Ambrose\nof Milan, St. Hilary of Poitiers, Tertullian, and others among the\nFathers, who all have very quotable quotes supporting the Catholic\nposition, which I enunciated above.\n\tAs for the issue of the adoption of another Creed being forbidden, I\nwill point out that the Holy Fathers of Ephesus and Chalcedon both spoke\nof the Creed of Nicea in their statement forbidding anyone \"to produce,\nwrite, or compose a confession of faith other than the one defined by\nthe Fathers of Nicea.\"  That Creed is a different Creed than that of\nConstantinople, which is commonly called the Nicene Creed.  Not of\ncourse in that they were condemning the adoption of the\nConstantinopolitan Creed, which is but an enlargement upon the Creed of\nNicea, but that they were condemning the impious opinions of Nestorious,\nwho had adopted a radically different Creed from the one used by the\nChurch, which among other things denied the procession of the Holy\nSpirit form the Son.  Thus, the additions of the Constantinopolitan\nCreed were not thought to be in violation of this, and as the Council\nChalcedon also affirmed the doctrine of the procession of the Holy\nSpirit from the Son, which Nestorius denied, they could hardly have been\nagainst explaining in a fuller way the Creed, for they themselves\napproved of previous additions to it.  And if the further explanations\nof the Creed made in Constantinople were not denigrating of the work\ndone by the Holy Fathers of Nicea or in any way heretical, it follows\nthat the Council of Toledo was fully able to add what was not disputed\nby the faithful to the Creed so as to combat the impieties of the Arians\nin Spain, because the filioque was not in dispute in the Church until\nmany years later under Photius and others.  And that the filioque was\nnot disputed, I provide more quotes below.\n\n\t\"Since the Holy Spirit when he is in us effects our being conformed to\nGod, and he actually proceeds from the Father and Son, it is abundantly\nclear that He is of the divine essence, in it in essence and proceeding\nfrom it.\"\n\t-St. Cyril of Alexandria, The Treasury of the Holy and Consubstantial\nTrinity, Thesis 34, (423-425 AD)\n\n\t\"The Holy Spirit is not of the Father only, or of the Son only, but he\nis the Spirit of the Father and the Son.  For it is written: `If anyone\nloves the world, the Spirit of the Father is not in him'; and again it\nis written: `If anyone, however, does not have the Spirit of Christ, he\nis none of His.'  When the Father and the Son are named in this way, the\nHoly Spirit is understood, of whom the Son himself says in the Gospel,\nthat the Holy Spirit `proceeds from the Father,' and that `He shall\nreceive of mine and shall announce it to you.'\"\n\t-Pope St. Damasus I, The Decree of Damasus, 1 (382 AD)\n\n\t\"The only-begotten Holy Spirit has neither the name of the Son nor the\nappelation of Father, but is called Holy Spirit, and is not foreign to\nthe Father.  For the Only-begotten Himself calls Him: `the Spirit of the\nFather,' and says of Him the `He proceeds from the Father,' and `will\nreceive of mine,' so that He is reckoned as not being foreign to the\nSon, but is of their same substance, of the same Godhead; He is Spirit\ndivine, ... of God, and He is God.  For he is Spirit of God, Spirit of\nthe Father, and Spirit of the Son, not by some kind of synthesis, like\nsoul and body in us, but in the midst of Father and Son of the Father\nand of the Son, a third by appelation....\n\t\"The Father always existed and the Son always existed, and the Spirit\nbreathes from the Father and the Son; and neither is the Son created nor\nis the Spirit created.\"\n\t-St. Epiphanius of Salamis (which is on Cyprus), The Man Well-Anchored,\n8 and 75 (374 AD)\n\n\t\"Concerning the Holy Spirit, I ought not to remain silent, nor yet is\nit necessary to speak.  Still, on account of those who do not know Him,\nit is not possible for me to be silent.  However it is necessary to\nspeak of Him who must be acknowledged, who is from the Father and the\nSon, His Sources.\"\n\t-St. Hilary of Poitiers, The Trintiy, 2, 29 (356 to 359 AD)\n\n\tThus, as I have pointed out before, Gaul, Spain, Italy, Africa, Egypt,\nPalastine, and the lands of the Greeks, all of Christnedom at that time,\nall have Fathers who can be cited to show that they confess the doctrine\nexpressed by the filioque.  I suggest to those of the Orthodox Church\nthat they come up with some of the Fathers, besides St. John of Damascus\nwho all will admit denied the filioque, to support their views.  It is\nnot enough to bring up the \"proceeds from the Father\" line of the Creed\nor the Gospel of John, for that says what we believe also.  But it does\nnot say the Holy Spirit does not proceed from the Son, only that He does\nproceed from the Father.\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3464, "properties": {"category": "rec.autos", "text": "From: barnesm@sun.com (Mark Barnes - SunSoft)\nSubject: Re: LH Workmanship\nOrganization: Sun Microsystems, Inc.\nLines: 6\nDistribution: world\nReply-To: barnesm@sun.com\nNNTP-Posting-Host: vavau.corp.sun.com\n\n\nI was following an example of the LH the other day, and noticed the fit\nbetween the tunk lid and the rear bumper.   The gap was quite small on\nthe left side, but much larger on the right.  Blech!!!\n\n---Mark\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3465, "properties": {"category": "comp.graphics", "text": "From: dsnyder@falcon.aamrl.wpafb.af.mil\nSubject: Re: Real Time Graphics??\nDistribution: na\nOrganization: USAF AL/CFH, WPAFB, Dayton, OH\nLines: 30\n\nIn article <C4vA9r.KK7@taurus.cs.nps.navy.mil>, stockel@oahu.oc.nps.navy.mil (Jim Stockel) writes:\n> Hi,\n> \n> I will be writing a data acquisition program to collect data from a\n> variety of sources including RS232, and external A/D's, and I would\n> like to be able to display the data in near realtime.  I've done this\n> type of thing on PC's and other machines, but I am unaware of any graphics\n> package that could help me with this on a UNIX machine.\n> \n> .......\n> \n> Does anyone have any ideas on commercial or \"free\" packages that might\n> suit my needs?  I would really appreciate any input.  I'm sure this has\n> been done many times before.\n> \n\n  For a commerical package try WAVE from  Precision Visuals\n                                           505-530-6563\n\n  For a free package try KHOROS from University of New Mexico\n                                      508-277-6563\n                                   ftp from\n                              ptrg.eece.unm.edu\n\n    Login in anonyomus or ftp  with a valid email address as the password\n               cd /pub/khoros/release\n\n   That will get you to the right place.\n\n                                                         David\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3466, "properties": {"category": "sci.med", "text": "From:  Gia Kiria <gkiria@kiria.kheta.georgia.su>\nSubject: help\nReply-To: gkiria@kiria.kheta.georgia.su\nOrganization: Gia Kiria\nKeywords: information echo cardio dopler\nLines: 9\n\n  HELP!\nMaybe anybody know names of conferences in\nPlease help Me find any information for next keywords:\nechocardiography and cardiology+dopler\nI hawe no informatins on this subjects 2 years becouse i leave in\nTbilisy.\nsorry for my bad english!\nMY adress: irina@kiria.kheta.georgia.su\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3467, "properties": {"category": "rec.sport.baseball", "text": "From: k_mullin@oz.plymouth.edu (Mully)\nSubject: Request for AL stats....\nReply-To: k_mullin@oz.plymouth.edu (Mully)\nOrganization: Plymouth State College - Plymouth, N.H.\nLines: 4\n\n  Anyone have the AL individual stats or where i can find them?\n\n\tK-->\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3468, "properties": {"category": "rec.sport.baseball", "text": "From: kbanaian@bernard.pitzer.claremont.edu (King Banaian)\nSubject: Re: Players Overpaid?\nLines: 40\nOrganization: Pitzer College\n\nTed Frank's list of underpaid players was this:\n>\n>p, Juan Guzman, 500\n>p, Mussina,\t400\n>p, Castillo,    250\n>p, Eldred,      175\n>p, Rhodes,\t155\n>p, Militello,   118\n>rp, Rojas,\t300\n>rp, Beck,\t250\n>rp, Melendez,   235\n>rp, Hernandez,\t185\n>rp, Nied,\t150\n>c, Rodriguez,\t275\n>c, Piazza,      126\n>1b, Thomas,\t900\n>1b, Bagwell,    655\n>2b, Knoblauch,\t500\n>2b, Barberie,\t190\n>3b, Gomez,\t312.5\n>3b, Palmer,\t250\n>ss, Listach,\t350\n>ss, Pena,\t170\n>lf, Gonzalez,\t525\n>cf, Lankford,\t290\n>rf, R.Sanders,\t275\n>of, Plantier,\t245\n\nWhat do all of these players have in common?  They do not qualify for \narbitration.  They were never free agents.\n\nIt's called the reserve clause.  Look it up.\n\nAnd a year from now we will whine about how several of these guys are way \noverpaid and getting outrageous raises in arb.  Humbug.\n\n--King \"Sparky\" Banaian\t\t\t\t|\"No taxes:  No new taxes,\nkbanaian@pitzer.claremont.edu\t\t\t|no old taxes, we are taxed\nDept. of Economics, Pitzer College\t\t|enough.\" -- Rep. Alan Keyes\nLatest 1993 GDP forecast:  2.4%\t\t| (please run, Alan!)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3469, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: japanese moon landing?\nOrganization: U of Toronto Zoology\nLines: 14\n\nIn article <C5Kys1.C6r@panix.com> dannyb@panix.com (Daniel Burstein) writes:\n>A short story in the newspaper a few days ago made some sort of mention\n>about how the Japanese, using what sounded like a gravity assist, had just\n>managed to crash (or crash-land) a package on the moon.\n\nTheir Hiten engineering-test mission spent a while in a highly eccentric\nEarth orbit doing lunar flybys, and then was inserted into lunar orbit\nusing some very tricky gravity-assist-like maneuvering.  This meant that\nit would crash on the Moon eventually, since there is no such thing as\na stable lunar orbit (as far as anyone knows), and I believe I recall\nhearing recently that it was about to happen.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3470, "properties": {"category": "rec.motorcycles", "text": "From: infante@acpub.duke.edu (Andrew  Infante)\nSubject: Re: Countersteering_FAQ please post\nOrganization: Duke University; Durham, N.C.\nLines: 37\nNntp-Posting-Host: north1.acpub.duke.edu\n\nIn article <05APR93.02678944.0049@UNBVM1.CSD.UNB.CA> C70A@UNB.CA (C70A000) writes:\n>In article <C4zKCL.FGC@ux1.cso.uiuc.edu> Eric@ux1.cso.uiuc.edu (93CBR900RR) writes:\n>>Would someone please post the countersteering FAQ...i am having this awful\n>>time debating with someone on why i push the right handle of my motorcycle\n>>foward when i am turning left...and i can't explain (well at least) why this\n>>happens...please help...post the faq...i need to convert him.\n>\n> Ummm, if you push on the right handle of your bike while at speed and\n>your bike turns left, methinks your bike has a problem.  When I do it\n\nReally!?\n\nMethinks somethings wrong with _your_ bike.\n\nPerhaps you meant _pull_?\n\nPushing the right side of my handlebars _will_ send me left.\n\nIt should. \nREally.\n\n>on MY bike, I turn right.  No wonder you need that FAQ.  If I had it\n>I'd send it.\n>\n\nI'm sure others will take up the slack...\n\n\n>\n>\n>\n\n-- \nAndy Infante  | I sometimes wish that people would put a little more emphasis |\n'71 BMW R60/5 | upon the observance of the law than they do upon it's         | \nDoD #2426     | enforcement.  -Calvin Coolidge                                | \n==============| My opinions, dammit, have nothing to do with anyone else!!!   | \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3471, "properties": {"category": "talk.politics.guns", "text": "From: sylvain@netcom.com (Nicholas Sylvain)\nSubject: Re: \"Proper gun control?\" What is proper gun control? (was Re: My Gun is like my American Express Card)\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 17\n\nIn article <DLB.93Apr15130411@fanny.wash.inmet.com> dlb@fanny.wash.inmet.com (David Barton) writes:\n>For what it is worth, I own no firearms of any sort.  As long-time\n>readers of this group know, I am dedicated to the RKBA.\n\nA long-time reader of t.p.g, I am also a staunch RKBA supporter, yet\nI own no firearms.\n\n>This is not about toys.  It is about freedom.\n\nAmen, brother.\n\n--\nNicholas Sylvain (sylvain@netcom.com) --- I am the NRA\n\n\n-- \nNicholas Sylvain (sylvain@netcom.com) --- I am the NRA\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.158+0000", "event": "documents", "entityId": 3472, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Randy Weaver trial update: Day 1.\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 49\n\n\nHere is a copy of my first update on the Randy Weaver trial.\nAfter a large response (about 15 email messages), I've decided\nthat there is sufficient interest here on t.p.g. to warrant\nposting.\n\n*** file follows *** \n\nHi Folks;\n\nAs perhaps the only Boise resident on the list, I guess it\nkind of falls on me to keep people updated about the\nRandy Weaver/Kevin Harris trial.\n\nYesterday marked the seating of the jury.  Apparently no other\nlegal activities occurred.  The jury was selected and things\nstart today.\n\nMore interesting is what happenned outside.  About a dozen\nWeaver supporters showed up to stage a protest outside the\ncourthouse.  One woman carried a sign that read, \"Who stands\ntrial for the murder of Vicki and (son's name - I forget)\nWeaver?\"  On the evening news she said, \"I am here protesting\nbecause I believe in freedom of speech and freedom of religion.\nI thought we all did.\"  Nice sound bite (grin)!\n\nThe news reporter also interviewed some guy named \"Tim\"\nwho refused to give his last name.  Not to prejudge the\nguy, but he looked like a neo-nazi.  He also said he\nexpected many neo-nazis to show up throughout the trial.\n\"Tim\" had been handing out leaflets in support of Weaver\nand Harris and the news had footage of a Boise cop\ntelling him to move along or he'd arrest.  I don't know\nthe finer points of this one.  Perhaps there's a law\nagainst political activity within X feet of a courthouse\nor something (what happenned to the First Amendment?!?).\n\nMost ominous of all was that the local reporter filmed\nan agent of the Gestapo...err...ATF with a minicam\nFILMING THE PROTESTORS!  Welcome to the world of Big Brother.\n\nAnyhow, Gerry Spence came out and asked the protestors to\nleave because he didn't think it would help Weaver's case\nany.  He said he was confident that, once the evidence\ncame out, that Weaver would be aquitted.\n\nMore stuff as it comes available.\n\nDrew\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3473, "properties": {"category": "comp.sys.mac.hardware", "text": "From: trrrc@rc.rit.edu (Thomas R. Ridley)\nSubject: Token Ring Cards for Macs\nNntp-Posting-Host: mutsu.rc.rit.edu\nOrganization: RIT Research Corp\nDistribution: usa\nLines: 6\n\nI am looking for recommendations/experiences of bringing Macintosh CPUs\nonto Token-Ring Nets. Can someone point me in the right direction for\ninformation. \n\nThanks in advance.\n-Tom\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3474, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ellens@bnr.ca (Chris Ellens)\nSubject: Re: HD Setup Partition (Was: OK to set 54 lbs on top of Centris 610???\nNntp-Posting-Host: bcarm422\nOrganization: Bell-Northern Research\nLines: 21\n\nIn article <1993Apr15.143516.17221@urbana.mcd.mot.com>,\nfeldman@urbana.mcd.mot.com (Mike Feldman) wrote:\n> \n> \n> Now if I can figure out if there's any hope using the \"partition\" button\n> on the hard disk setup utility (do I dare just try it and see what happens?),\n> then maybe I can divide up the wealth among the family members a bit more\n> securly.  The \"getting more information\" section of the manual suggested\n> trying other avenues before calling Apple, but didn't mention the net.\n> -- \n> Mike Feldman, Motorola Computer Group,     (217) 384-8538, FAX (217) 384-8550\n> 1101 East University Avenue\t   Pager in IL (800) 302-7738, (217) 351-0009\n> Urbana, IL 61801-2009 (mcdphx|uiucuxc)!udc!feldman feldman@urbana.mcd.mot.com\n\nThe Partition button in Apple's HD Setup lets you set up A/UX and other\ntypes of partitions. It WON'T let you create more than one normal mac\nvolume. You need SilverLining or something similar to do that. It WILL,\nhowever, allow you to take advantage of some possible unused space on your\nhard disk, if you don't mind reformatting the whole thing.\n\nChris Ellens         ellens@bnr.ca\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3475, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: Christians above the Law? was Clarification of personal position\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\n\t<1993Apr19.131102.7843@rchland.ibm.com>\nLines: 41\n\nIn article <1993Apr19.131102.7843@rchland.ibm.com> \nxzz0280@rchland.vnet.ibm.com (R. J. Traff) writes:\n>|> In article <C5MuIw.AqC@mailer.cc.fsu.edu> \n>|> dlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n>|> >question is \"On what authority do we proclaim that the requirements of the\n>|>               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>|> >fourth commandment are no longer relevant to modern Christians?\"  Please\n>|> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>I don't believe most Christians believe they are *above* the Law.  However,\n>we are not saved by adherence to the Law.  The Law exists to tell us what\n>is sinful.  We all sin.\n\nHence we are \"all\" above the Law where \"all\" in this case refers to\nChristians.\n\n>Jews believe that their sins are atoned for with\n>blood sacrifice of animals as described in the Old Testament.\n\nWhen was the last time you heard about a Jewish animal sacrifice?\n\n>Christians \n>believe that their sins are atoned for by the blood sacrifice of Jesus.\n\nThe blood sacrifice of an innocent man?\n\n>This does not make the Law 'irrelevant'.\n\nThen why don't Christians follow it, why don't they even follow their\nown Ten Commandments?\n\n>Breaking the Law *is* sinful,\n>and we are to avoid sinful ways, but sinning, by itself, does not jeopardize\n>salvation.\n\nSo, in short; Hitler is in heaven and Gandhi is in Hell?\n\n>Note that I'm not a theologian.  But this is the gist of several\n>sermons I've heard lately and some Bible studies I've been through.  \n\nDid you ever wonder if someone, perhaps a great deceiver, was pulling\nyour leg?\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3476, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: kaul@vnet.ibm.com\nSubject: Re: Monitor for XGA\nNews-Software: IBM OS/2 PM RN (NR/2) v0.17h by O. Vishnepolsky and R. Rogers\nLines: 18\nReply-To: kaul@vnet.ibm.com\nOrganization: IBM T. J. Watson Research\n\nIn <C5IFpG.7HC@news.claremont.edu> dhosek@jarthur.claremont.edu (D Hosek) writes:\n>What is the recommended monitor for XGA? Can I just use any old sVGA \n>monitor, or is something more needed? Mostly curious before I go blowing\n>a monster wad of cash on a new system.\n\nXGA or XGA-2?  For the original XGA you just need something that can do\n1024x768 at 45/90Hz interlaced (just tell them \"8514 compatible\" and they\nshould get the idea).  For the XGA-2, get what you like.  I prefer multi-\nsyncs like the IBM 6319, the NECs or even a fixed frequency monitor like\nmy home Viewsonic 6.  I like the Multisyncs because it's easy to run them\nin modes like 800x600x64k colors noninterlaced, or at higher modes like\n1360x1024x16.\n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nDick Kaul            | My opinions only, not official IBM positions, etc--\nIBM XGA Development  | they'd make me wear a suit if I were to speak for IBM.\nBoca Raton, FL       | \"Shhhh... The maestro is decomposing.\"\nkaul@vnet.ibm.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3477, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: JPL's VLBI Project Meets with International Space Agencies\nOrganization: Jet Propulsion Laboratory\nLines: 112\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: VLBI, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nFrom the \"JPL Universe\"\nApril 23, 1993\n\nVLBI project meets with international space agencies\n\nBy Ed McNevin\n     Members of JPL's Space Very Long Baseline Interferometry\n(VLBI) project team recently concluded a week-long series of\nmeetings with officials from Russia and Japan.\n     The meetings were part of \"Space VLBI Week\" held at JPL in\nearly March and were intended to maintain cooperation between\ninternational space agencies participating in the development of\nthe U.S. Space VLBI Project, a recently approved JPL flight\nproject set for launch in 1995.\n     U.S. Space VLBI will utilize two Earth-orbiting spacecraft\n-- the Japanese VSOP (VLBI Space Observing Program) satellite\nwith its 8-meter radio telescope, and a Russian RADIOASTRON\n10-meter satellite. Both spacecraft will team up with\nground-based radio telescopes located around the world to create\na radio telescope network that astronomers hope will expand radio\ntelescope observing power by a factor of 10.\n     Japan's VSOP satellite will use a limited six-hour orbit to\nconduct imaging science, while the Russian RADIOASTRON spacecraft\nwill exploit a larger, 28-hour Earth orbit to conduct exploratory\nradio astronomy. Each satellite will point at a source target for\nroughly 24 hours, while approximately 20 ground-based radio\ntelescopes will simultaneously point at the same source object\nwhile within view on Earth.\n     According to Dr. Joel Smith, JPL's project manager for the\nU.S. Space VLBI, meetings like those held at JPL will permit\nJapan and Russia, who have little previous experience in radio\ninterferometry, to establish working relationships with the radio\nastronomy communities that will be vital during the complex\nobservations required by the Space VLBI project.\n     \"One of our main activities is developing the methodology\nfor international coordination, because the two spacecraft\nsimultaneously rely on the corresponding tracking stations while\nusing the ground-based radio telescopes to observe the same\ncelestial objects,\" said Smith.\n     Three new tracking antennas are being built at DSN\nfacilities and other three other tracking facilities located in\nJapan, Russia and Green Bank, W.Va. This global network of\nground-based radio telescopes will use precision clocks and\nhigh-speed recorders to collect observation data and forward the\ninformation to a correlator located at the National Radio\nAstronomy Observatory in Socorro, N.M. The correlator will\ncombine and process data, then make it available to mission\ninvestigators in Moscow, Tokyo, and JPL via electronic mail.\n     Smith is optimistic that the massive radio telescope created\nby the Space VLBI network will provide radio astronomers with\nbetter resolution than has ever been achieved before by\nground-based radio telescopes, allowing astronomers to take a\ncloser look at distant objects in space.\n     \"There is a long history of radio astronomy using\nground-based telescopes,\" said Smith. \"What we intend to do is to\nextend radio astronomy into Earth orbit. Our goal is to look\ndeeper into the cores of galactic nuclei, quasars and other\nactive radio sources to understand what drives those things we\nhave seen so far with radio astronomy.\"\n     Smith noted that if one examines \"the active galactic\nnuclei, you'll find jets appearing to spew at speeds greater than\nlight, and at energy levels that are millions of times greater\nthan you would expect.\"\n     He said some astronomers believe that black holes may be\nlocated in the cores of these galaxies, and that they may fuel\nthe jets. Smith hopes that \"by using Space VLBI to look further\ninto the cores, this theory may be supported or disproved.\"\n     Russian space-flight hardware, including transponders and\ntransmitters, are now being tested in the United States, and\nJapanese hardware is scheduled to arrive for testing later this\nyear. Analysis of this hardware will permit U.S. scientists and\nengineers to understand how to modify the high-speed VLBA\nCorrelator operating at the NRAO in order to accommodate the odd\ndata patterns that will originate from the more than 20\nground-based radio telescopes involved in Space VLBI.\n     Smith is particularly pleased that meetings with the\nJapanese and Russian space agency officials -- like those held at\nJPL in March -- have proceeded smoothly. Yet he knows that the\npolitical uncertainty in Russia could jeopardize that country's\nparticipation in the project.\n     \"Nothing is ever smooth,\" he said, \"but the Russians have\nbeen incredibly open with us. We always anticipated some\nlikelihood that we will not succeed because of political factors\nbeyond our control, yet there tends to be a way of keeping these\nthings going, because scientists on both sides are trying hard,\nand people recognize the value of cooperation at this level.\"\n     Smith points out that the Japanese space agency has more at\nstake than just fulfilling an international commitment to a\nscience mission.\n     \"The Japanese have been extremely cooperative, since\ninternational cooperation is essential to their science mission,\"\nhe said.\n     But Smith also noted that Japanese space agency officials\nlook at the U.S. Space VLBI mission as an opportunity to showcase\nthe technology involved with VSOP spacecraft, and their highly\nregarded Mach V launch vehicle.\n     Yet regardless of the risks involved in undertaking such an\nambitious project, JPL's Smith is satisfied that planning for the\nSpace VLBI Project is beyond the significant financial and\npolitical hurdles that otherwise might threaten the project.\n     \"Fortunately, we have the virtue of having two partners, and\nif either falls out, we would still have something with the\nother. By themselves, both spacecraft are independent,\nscientifically exciting missions.\"\n                           ###\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3478, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dab6@po.CWRU.Edu (Douglas A. Bell)\nSubject: Re: PENTIUM!\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 18\nReply-To: dab6@po.CWRU.Edu (Douglas A. Bell)\nNNTP-Posting-Host: slc12.ins.cwru.edu\n\n\nIn a previous article, rrn@po.CWRU.Edu (Robert R. Novitskey) says:\n\n>\n>Just a qestion for all you pc-er's out there.  Will the upcoming pentium\n>systems be compatible with current simms and vlb cards?  Any info would be\n>helpful.  I would just like to know before I plunk my $ on new hardware.\n>\n>Thanks\n>BoB\n>\n\nWell, it all depends on the motherboard implimentation.\n\nI'm sure someone will make a vlb motherboard that takes 1x9\nsimms and uses a pentium processor.  I'm also sure that there \nwill be some motherboards that won't.\n-- \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3479, "properties": {"category": "sci.med", "text": "From: liny@sun13.scri.fsu.edu (Nemo)\nSubject: Bates Method for Myopia\nReply-To: lin@ray.met.fsu.edu\nDistribution: na\nOrganization: SCRI, Florida State University\nLines: 22\n\nDoes the Bates method work?  I first heard about it in this newsgroup \nseveral years ago, and I have just got hold of a book, \"How to improve your\nsight - simple daily drills in relaxation\", by Margaret D. Corbett, \n('Authorized instructor of the Bates method), published in 1953.  It \ntalks about vision improvement by relaxation and exercise.  Has there been\nany study on whether this method actually works?  If it works, is it by \nactually shortening the previously elongated eyeball, or by increasing \nthe lens's ability to flatten itself in order to compensate for the \ntoo-long eyeball?\n\nSince myopia is the result of eyeball elongation, seems to me the most\nlogical approach for correction is to find a way to reverse the process,\ni.e., shorten it somehow (preferably non-surgically).  Has there been\nany recent studies on this?  Where can I find them?  I know RK works by \nchanging the curvature of the cornea to compensate for the shape of \neyeball, but if there is a way to train the muscles to shorten the \neyeball back to its correct length that would be even better (Bates's \nidea, right?)\n\nThanks for any information.\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3480, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: The Tories could win the \"lottery\"...Clinton GST?\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 48\n\nIn article <C5Jy07.8GK@dscomsa.desy.de> hallam@zeus02.desy.de writes:\n>\n>In article <1993Apr15.053553.16427@news.columbia.edu>, gld@cunixb.cc.columbia.\nedu (Gary L Dare) writes:\n>\n>|>cmk@world.std.com (Charles M Kozierok) writes:\n>|>>gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>|>>}\n>|>>} Secondly, any Canadian who has worked and participates in the\n>|>>} insurance (it's a negative option, you have to explicitly decline\n>|>>} it) knows that the premium is deducted separately ...\n>|>>\n>|>>yes, and some Americans actually have a problem with having more\n>|>>of their money taken from them to pay for others' health care...\n>|>\n>|>But note again, the Canadian and German health insurance is voluntary\n>\n>Not true. I am required to have insurance by law. the method of collection\n>effectively makes it a tax.\n>\n>\n\n>|>>the selfish bastards that they are. unfortunately, that number has\n>|>>diminished recently, but once President Pinocchio gets through\n>|>>with us, i hope for a reversal of trend.\n>\n>Well here we have the right hoping for more selfish bastards. Pity they\n>don't look at what 12 years of the Regan/Bush \"selfish Bastard\" ecconomy\n>has done to the country.\n>\n>Elect a selfish bastard government and they will run the country for themselve\ns,\n>thats why they are selfish bastards. Bush and Regan gave tax breaks for the\n>ultra rich and paid for them by borrowing against the incomes of the middle\n>class.\n>\n\nThis country is hardly ruined. In fact, it is booming compared to after the\n1980 election.\n\nThis whole \"USA has gone to hell and Reagan/Bush caused it\", is not only lame,\npathetic, and old....... it's wrong.\n\nUnder Reagan/Bush the economy grew by 1.1 trillion dollars.  This is more than \nthe entire economy of Germany, a \"kind, gentle\" country, in many peoples' \nbooks.  What a joke.\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3481, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: <Political Atheists?\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.01\nLines: 22\n\nkmr4@po.CWRU.edu (Keith M. Ryan) writes:\n> ( I am almost sure that Zyklon-B is immediate and painless method of \n> death. If not, insert soem other form. )\n> \n>         And, ethnic and minority groups have been killed, mutilated and \n> exterminated through out history, so I guess it was not unusual.\n> \n>         So, you would agree that the holocost would be allowed under the US \n> Constitution?  [ in so far, the punishment. I doubt they recieved what would \n> be considered a \"fair\" trial by US standards.\n\nDon't be so sure.  Look what happened to Japanese citizens in the US during\nWorld War II.  If you're prepared to say \"Let's round these people up and\nstick them in a concentration camp without trial\", it's only a short step to\ngassing them without trial.  After all, it seems that the Nazis originally\nonly intended to imprison the Jews; the Final Solution was dreamt up partly\nbecause they couldn't afford to run the camps because of the devastation\ncaused by Goering's Total War.  Those who weren't gassed generally died of\nmalnutrition or disease.\n\n\nmathew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3482, "properties": {"category": "rec.motorcycles", "text": "From: dab@vuse.vanderbilt.edu (David A. Braun)\nSubject: Wrecked BMW\nOriginator: dab@necs\nNntp-Posting-Host: necs\nOrganization: Vanderbilt University School of Engineering, Nashville, TN, USA\nDistribution: na\nLines: 13\n\n\nDo you or does anyone you know have a wrecked 1981 or later R80(anything)\nor R100(anything) that they are interested in getting rid of?  I need\na motor, but will buy a whole bike.\n\nemail replies to:\tDavid.Braun@FtCollinsCO.NCR.com\n\tor:\t\tdab@vuse.vanderbilt.edu\n\nor phone:\t303/223-5100 x9487 (voice mail)\n\t\t303/229-0952\t   (home)\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3483, "properties": {"category": "talk.politics.misc", "text": "From: gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy)\nSubject: Re: Why not concentrate on child molesters?\nOrganization: University of Virginia\nLines: 17\n\nIn article <15218@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n#Yet, when a law was proposed for Virginia that extended this \n#philosophy to cigarette smokers (so that people who smoked away\n#from the work couldn't be discriminated against by employers),\n#the liberal Gov. Wilder vetoed it.  Which shows that liberals don't\n#give a damn about \"best person for the job,\" it's just a power\n#play.\n\nOf course Clayton ignores the fact that employers pay health\ninsurance, and insurance for smokers is more expensive than for\nnon-smokers. \n\n--\n-Greg Hennessy, University of Virginia\n USPS Mail:     Astronomy Department, Charlottesville, VA 22903-2475 USA\n Internet:      gsh7w@virginia.edu  \n UUCP:\t\t...!uunet!virginia!gsh7w\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3484, "properties": {"category": "alt.atheism", "text": "From: spbach@lerc.nasa.gov (James Felder)\nSubject: Re: some thoughts.\nOrganization: NASA Lewis Resaerch Center\nLines: 100\nDistribution: world\nReply-To: spbach@lerc.nasa.gov\nNNTP-Posting-Host: hopper3.lerc.nasa.gov\n\nIn article 734849678@saturn.wwc.edu, bissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n->\tFirst I want to start right out and say that I'm a Christian.  It \n->makes sense to be one.  Have any of you read Tony Campollo's book- liar, \n->lunatic, or the real thing?  (I might be a little off on the title, but he \n->writes the book.  Anyway he was part of an effort to destroy Christianity, \n->in the process he became a Christian himself.\n\nSounds like you are saying he was a part of some conspiracy.  Just what organization did he \nbelong to? Does it have a name?\n\n->\tThe book says that Jesus was either a liar, or he was crazy ( a \n->modern day Koresh) or he was actually who he said he was.\n\nLogic alert - artificial trifercation.  The are many other possible explainations.  Could have been\nthat he never existed.  There have been some good points made in this group that is not \nimpossible  that JC is an amalgam of a number of different myths, Mithra comes to mind.\n\n->\tSome reasons why he wouldn't be a liar are as follows.  Who would \n->die for a lie?  Wouldn't people be able to tell if he was a liar?  People \n->gathered around him and kept doing it, many gathered from hearing or seeing \n->someone who was or had been healed.  Call me a fool, but I believe he did \n->heal people.  \n\n\nLogic alert -  argument from incredulity.  Just because it is hard for you to believe this doesn't\nmean that it isn't true.  Liars can be very pursuasive, just look at Koresh that you yourself site.\nHe has followers that don't think he is a fake and they have shown that they are willing to die.\nBy not giving up after getting shot himself, Koresh has shown that he too is will to die for what \nhe believes.  As far as healing goes.  If I rememer right the healing that was attributed is not\nconsistent between the different gospels.  In one of them the healing that is done is not any more \nthat faith healers can pull off today.  Seems to me that the early gospels weren't that compeling,\nso the stories got bigger to appeal better.\n\n->\tNiether was he a lunatic.  Would more than an entire nation be drawn \n->to someone who was crazy.  Very doubtful, in fact rediculous.  For example \n->anyone who is drawn to David Koresh is obviously a fool, logical people see \n->this right away.\n->\tTherefore since he wasn't a liar or a lunatic, he must have been the \n->real thing.  \n\n\nOr might not have existed, or any number of things.  That is the logical pitfall that those who\nuse flawed logic like this fall into.  There are bifurcations (or tri, quad, etc) that are valid, because\nin the proceeding steps, the person shows conclusively that the alternatives are all that are \npossible.  Once everyone agrees that the given set is indeed all there are, then arguments among\nthe alternatives can be presentent, and one mostly likely to be true can be deduced by excluding\nall other possible alternatives.\n\nHowever, if it can be shown that the set is not all inclusive, then any conclusions bases on the \nincomplete set are invalid, even if the true choice is one of the original choices.  I have given at \nleast one valid alternative, so the conclusion that JC is the real McCoy just because he isn't one of\nthe other two alternative is no longer valid.\n\n->\tSome other things to note.  He fulfilled loads of prophecies in \n->the psalms, Isaiah and elsewhere in 24 hrs alone.  This in his betrayal \n->and Crucifixion.  I don't have my Bible with me at this moment, next time I \n->write I will use it.\n\nJC was a rabbi.  He knew what those prophecies were.  It wouldn't be any great shakes to make\nsure one does a list of actions that would fullfill prophecy.  What would be compeling is if there\nwere a set of clear and explicit prophecies AND JC had absolutely NO knowledge of then,  yet \nfullfilled them anyway.\n\n->\tI don't think most people understand what a Christian is.  It \n->is certainly not what I see a lot in churches.  Rather I think it \n->should be a way of life, and a total sacrafice of everything for God's \n->sake.  He loved us enough to die and save us so we should do the \n->same.  Hey we can't do it, God himself inspires us to turn our lives \n->over to him.  That's tuff and most people don't want to do it, to be a \n->real Christian would be something for the strong to persevere at.  But \n->just like weight lifting or guitar playing, drums, whatever it takes \n->time.  We don't rush it in one day, Christianity is your whole life.  \n->It is not going to church once a week, or helping poor people once in \n->a while.  We box everything into time units.  Such as work at this \n->time, sports, Tv, social life.  God is above these boxes and should be \n->carried with us into all these boxes that we have created for \n->ourselves.  \n\nHere I agree with you.  Anyone who buys into this load of mythology should take what it says \nseriously, and what it says is that it must be a total way of life.  I have very little respect for \nXians that don't.  If the myth is true, then it is true in its entirity.  The picking and choosing\nthat I see a lot of leaves a bad taste in my mouth.\n\nJim\t  \n\n\n\n\n---\n\n-----------------------------------------------------------------------------\nJames L. Felder\t\t\t|\nSverdrup Technology,Inc.\t|     phone: 216-891-4019\nNASA Lewis Research Center     \t|    \nCleveland, Ohio  44135         \t|     email: jfelder@lerc.nasa.gov \n\"Some people drink from the fountain of knowledge, other people gargle\"\n-----------------------------------------------------------------------------\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3485, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: drohand@cad.gmeds.com (Dominic Drohan)\nSubject: Re: RE: Win NT - what is it???\nOrganization: EDS/Cadillac\nLines: 16\nNNTP-Posting-Host: cve385.ttp.cad.gmeds.com\n\n>\tAnyway, don't expect it soon.  Windows 4 and DOS 7 are supposed to \n                                                     ^^^^^\n        My understanding was that Chicago **was** DOS 7.\n\n>be >released next year (read: see it in 95), so I expect that Chicogo won't \n>be out >til '96.\n+-----------------------------------------------------------+\n| Dominic Drohan             EMAIL: drohand@cad.gmeds.com   |\n| Electronic Data Systems    PHONE: (313) 696-6315          |\n+-----------------------------------------------------------+\n| \"If you'd like to talk for hours . . just go ahead now\"   |\n| \t\t\t               - The Spin Doctors   |\n+-----------------------------------------------------------+\n| NOTE: The views and opinions expressed herein are mine,   |\n| and DO NOT reflect those of Electronic Data Systems Corp. |\n+-----------------------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3486, "properties": {"category": "sci.electronics", "text": "From: lancer@oconnor.WPI.EDU (Stephe Lewis Foskett)\nSubject: How do DI boxes work?\nOrganization: ZikZak Corporation\nLines: 19\nDistribution: world\nNNTP-Posting-Host: oconnor.wpi.edu\n\n\nI'm doing sound for a couple of bands around here and we need Direct\nInput boxes for the keyboards.  These are the little boxes that take a\nline level out of the keyboard and transform it into low-Z for the run\nto the mixer.  Sadly they cost like $50 (or more) each and I'm going\nto need like 5 or 10 of them!  I looked inside one (belonging to\nanother band) and it looks like just a transformer.  Does anyone have\nany plans for building them?  Perhaps in Anderton's \"Electronic\nProjects for Musicians\" book (which I am having a hell of a time\ntracking down...)?\n\nThanks a lot!\n\n.s.\n\nPS: Post or email.  I read this group...\n--\n- lancer@wpi.wpi.edu -                    - 0{{  MoDiMiDoFrSaSo: -\n-   Mein Kopf ist ein Labyrinth, mein Leben ist ein Minenfeld    -\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3487, "properties": {"category": "rec.sport.baseball", "text": "From: jonesk@ur.msstate.edu\nSubject: re: Mo Sanford\nArticle-I.D.: ra.1993Apr6.173224.13148\nReply-To: jonesk@ur.msstate.edu\nOrganization: Mississippi State University\nLines: 6\nNntp-Posting-Host: ur117.ur.msstate.edu\n\nIn article <1993Apr3.045040.10480@ra.msstate.edu> js1@jazz.cc.msstate.edu (Jiann-ming Su) writes:\n>Does any know if Mo Sanford, Rockies pitcher, got cut?  He use to be with the`\n>Reds, but was drafted in the expansion draft.\n>\n\nI believe he was sent down to AAA.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3488, "properties": {"category": "rec.sport.baseball", "text": "From: schmke@cco.caltech.edu (Kevin Todd Schmidt)\nSubject: NL OPI through first week+\nOrganization: California Institute of Technology, Pasadena\nLines: 184\nNNTP-Posting-Host: sandman.caltech.edu\n\nHere is the OPI (Offensive Production Index) for all NL players with at\nleast 10 at-bats.\n\nIt is early in the season so there are some high numbers.  Barry Bonds\nfinished last season at 0.795.\n\nI welcome comments and suggestions.\n\nKevin\n\nLeague OPI: 0.410\nLeague BA:  0.252\nLeague SLG: 0.375\nLeague OBA: 0.321\n\nRank Player                 OPI     BA    SLG    OBA\n-----------------------------------------------------\n1    Phi,daulton           1.101  0.333  0.875  0.515\n2    Phi,kruk              1.069  0.429  0.821  0.529\n3    Cub,grace             1.007  0.452  0.742  0.514\n4    Cub,may               0.931  0.389  0.889  0.421\n5    Col,boston            0.888  0.545  0.545  0.545\n6    Pit,bell              0.873  0.429  0.714  0.467\n7    Col,galarraga         0.867  0.458  0.708  0.458\n8    StL,pena              0.833  0.400  0.600  0.516\n9    StL,zeile             0.811  0.440  0.560  0.500\n10   Cin,mitchell          0.810  0.429  0.643  0.467\n11   Mon,lansing           0.792  0.419  0.677  0.438\n12   Pit,slaught           0.754  0.474  0.526  0.474\n13   Mon,vanderwal         0.746  0.389  0.556  0.476\n14   NYM,tfernandez        0.709  0.300  0.400  0.500\n15   SnF,martinez          0.697  0.300  0.400  0.500\n16   Hou,bagwell           0.695  0.367  0.567  0.424\n17   Col,hayes             0.686  0.333  0.667  0.364\n18   Col,eyoung            0.682  0.333  0.500  0.407\n19   Mon,alou              0.675  0.371  0.600  0.389\n20   Cin,milligan          0.659  0.333  0.375  0.515\n21   Phi,dykstra           0.646  0.214  0.571  0.405\n22   SnF,bonds             0.624  0.280  0.680  0.333\n22   Flo,conine            0.624  0.393  0.393  0.469\n24   SnD,plantier          0.603  0.286  0.571  0.375\n25   Hou,gonzalez          0.596  0.296  0.667  0.296\n26   Hou,anthony           0.594  0.320  0.480  0.414\n27   Col,cole              0.579  0.318  0.409  0.400\n28   Atl,sanders           0.576  0.357  0.643  0.357\n29   Mon,berry             0.566  0.273  0.273  0.500\n30   Cub,sosa              0.558  0.303  0.545  0.343\n31   StL,jefferies         0.551  0.269  0.692  0.296\n32   Pit,vanslyke          0.549  0.296  0.444  0.387\n33   *Montreal             0.548  0.312  0.490  0.367\n34   Los,butler            0.545  0.296  0.333  0.457\n35   Mon,grissom           0.542  0.333  0.455  0.371\n36   Pit,king              0.536  0.308  0.346  0.438\n37   SnD,gwynn             0.533  0.280  0.400  0.379\n38   Pit,merced            0.532  0.300  0.400  0.391\n39   NYM,murray            0.521  0.308  0.462  0.357\n40   StL,gilkey            0.514  0.312  0.438  0.353\n41   NYM,bonilla           0.507  0.292  0.417  0.370\n42   SnD,walters           0.501  0.300  0.500  0.333\n43   Cub,wilson            0.497  0.323  0.452  0.344\n44   Flo,weiss             0.492  0.261  0.348  0.433\n45   *Philadelphia         0.487  0.243  0.431  0.348\n46   Atl,justice           0.480  0.207  0.448  0.361\n47   *Pittsburgh           0.479  0.292  0.428  0.351\n48   StL,osmith            0.476  0.310  0.448  0.355\n49   Phi,incaviglia        0.473  0.250  0.500  0.308\n50   Pit,young             0.470  0.286  0.500  0.310\n51   *StLouis              0.467  0.275  0.445  0.344\n52   *Colorado             0.459  0.287  0.426  0.327\n53   NYM,hundley           0.458  0.300  0.450  0.333\n54   NYM,orsulak           0.454  0.357  0.429  0.400\n55   SnF,benjamin          0.440  0.200  0.500  0.273\n56   Atl,gant              0.438  0.214  0.464  0.333\n56   *NYMets               0.438  0.261  0.345  0.356\n58   *Houston              0.436  0.260  0.415  0.318\n59   Mon,pitcher           0.434  0.312  0.375  0.353\n60   Phi,morandini         0.433  0.240  0.360  0.321\n61   Hou,cedeno            0.427  0.280  0.440  0.308\n62   Cin,sabo              0.423  0.226  0.452  0.273\n63   SnF,manwaring         0.413  0.261  0.435  0.292\n64   *SnFrancisco          0.412  0.253  0.396  0.315\n65   Atl,blauser           0.409  0.276  0.310  0.364\n66   SnF,thompson          0.408  0.278  0.389  0.316\n66   Hou,caminiti          0.408  0.259  0.481  0.286\n68   Flo,barberie          0.405  0.267  0.267  0.371\n69   Mon,cordero           0.400  0.276  0.345  0.323\n70   SnD,sheffield         0.397  0.241  0.448  0.267\n71   Los,karros            0.392  0.259  0.296  0.355\n72   SnF,williams          0.391  0.226  0.452  0.250\n72   SnD,mcgriff           0.391  0.192  0.385  0.276\n74   Flo,destrade          0.390  0.267  0.333  0.333\n75   Col,girardi           0.388  0.238  0.381  0.304\n76   Atl,bream             0.386  0.182  0.409  0.250\n77   Mon,wood              0.385  0.200  0.300  0.333\n78   Flo,santiago          0.384  0.200  0.360  0.286\n79   Phi,thompson          0.383  0.227  0.273  0.320\n80   SnF,clayton           0.382  0.345  0.379  0.345\n80   Los,piazza            0.382  0.304  0.391  0.333\n82   SnD,bell              0.378  0.273  0.364  0.304\n83   Los,wallach           0.374  0.200  0.400  0.273\n84   Cin,larkin            0.367  0.281  0.281  0.361\n85   Pit,garcia            0.366  0.273  0.318  0.304\n85   *Cincinnati           0.366  0.256  0.319  0.326\n87   NYM,coleman           0.363  0.259  0.259  0.310\n88   NYM,kent              0.362  0.190  0.286  0.320\n89   StL,whiten            0.361  0.240  0.360  0.321\n90   Cin,roberts           0.359  0.278  0.278  0.333\n90   *Cubs                 0.359  0.236  0.366  0.277\n92   SnF,lewis             0.354  0.227  0.364  0.261\n92   Hou,finley            0.354  0.214  0.250  0.312\n92   Col,clark             0.354  0.250  0.350  0.286\n95   Los,pitcher           0.350  0.286  0.357  0.286\n95   *SnDiego              0.350  0.219  0.357  0.268\n97   Atl,lemke             0.345  0.200  0.240  0.333\n98   *LosAngeles           0.339  0.221  0.275  0.311\n99   SnF,mcgee             0.335  0.267  0.300  0.333\n99   *Atlanta              0.335  0.199  0.308  0.287\n101  Cin,sanders           0.334  0.267  0.333  0.290\n101  Cin,oliver            0.334  0.208  0.208  0.345\n103  SnD,gardner           0.332  0.238  0.333  0.273\n103  Los,reed              0.332  0.276  0.276  0.323\n105  Phi,hollins           0.327  0.226  0.290  0.294\n106  *Florida              0.326  0.226  0.268  0.311\n107  Los,davis             0.325  0.188  0.219  0.278\n108  Atl,pendleton         0.322  0.212  0.273  0.297\n109  SnF,clark             0.316  0.161  0.290  0.257\n110  Los,strawberry        0.314  0.111  0.185  0.314\n110  Hou,biggio            0.314  0.179  0.214  0.303\n112  Phi,bell              0.304  0.182  0.364  0.217\n113  Flo,magadan           0.303  0.182  0.182  0.357\n114  StL,pagnozzi          0.299  0.158  0.316  0.238\n115  Pit,martin            0.295  0.167  0.417  0.167\n115  Col,bichette          0.295  0.222  0.389  0.222\n117  Hou,taubensee         0.294  0.190  0.333  0.227\n118  Mon,bolick            0.292  0.250  0.312  0.250\n119  Flo,pose              0.291  0.258  0.323  0.303\n120  Mon,cianfrocco        0.287  0.188  0.375  0.188\n121  NYM,johnson           0.274  0.136  0.136  0.296\n122  Cin,kelly             0.272  0.250  0.333  0.270\n123  Atl,nixon             0.256  0.185  0.222  0.241\n124  NYM,pitcher           0.255  0.167  0.250  0.231\n125  Pit,pitcher           0.250  0.222  0.278  0.222\n126  Cub,buechle           0.231  0.154  0.192  0.241\n127  StL,lankford          0.225  0.133  0.133  0.316\n128  Atl,olson             0.224  0.150  0.150  0.261\n129  Cub,vizcaino          0.217  0.148  0.259  0.179\n130  Cub,sanchez           0.212  0.188  0.219  0.212\n131  Phi,duncan            0.202  0.214  0.214  0.214\n132  Los,offerman          0.198  0.182  0.182  0.250\n133  SnF,pitcher           0.197  0.176  0.235  0.176\n134  Mon,laker             0.183  0.133  0.267  0.133\n135  Phi,chamberlain       0.180  0.111  0.111  0.200\n136  SnD,pitcher           0.164  0.182  0.182  0.182\n136  Atl,pitcher           0.164  0.182  0.182  0.182\n138  Phi,pitcher           0.159  0.111  0.167  0.158\n139  Cub,maldonado         0.150  0.105  0.158  0.150\n140  Flo,felix             0.148  0.172  0.207  0.172\n141  Cin,espy              0.141  0.100  0.100  0.182\n142  StL,jordan            0.140  0.105  0.211  0.105\n143  Atl,berryhill         0.128  0.091  0.182  0.091\n144  Cub,pitcher           0.126  0.111  0.111  0.158\n145  SnD,shipley           0.122  0.087  0.174  0.087\n146  StL,pitcher           0.106  0.125  0.125  0.125\n147  Hou,pitcher           0.053  0.067  0.067  0.067\n147  Col,benavides         0.053  0.067  0.067  0.067\n147  Cin,pitcher           0.053  0.067  0.067  0.067\n150  Cub,wilkins           0.038  0.000  0.000  0.067\n151  Flo,pitcher           0.000  0.000  0.000  0.000\n151  Col,pitcher           0.000  0.000  0.000  0.000\n\n      0.74*1B + 1.28*2B + 1.64*3B + 2.25*HR + 0.53*BB + 0.34*(SB-2*CS)\nOPI = ----------------------------------------------------------------\n                              AB - H\n\nBA = H / AB\n\nSLG = (H + 2B + 2*3B + 3*HR) / AB\n\nOBA = (H + BB) / (AB + BB)\n-- \nJet Propulsion Laboratory | schmke@cco.caltech.edu\n4800 Oak Grove Dr.        | schmidt@spc5.jpl.nasa.gov\nM/S 525-3684              |\nPasadena, CA  91109       |\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3489, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Price Controls for Medical Care (WAS Re: We're from the govt...)\nSummary: \"Loss leader\" argument does not wash\nOrganization: Not Aging, Just Improving, Inc.\nLines: 76\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <SLAGLE.93Apr5075759@sgi417.msd.lmsc.lockheed.com> slagle@lmsc.lockheed.com writes:\n>In article <1993Apr2.185755.17803@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes:\n>\n>> Thanks to Kim for following up.  I was hoping that someone would bring up\n>> the issue of cost compensation.  The problem with the argument is that it\n>> fails to explain why kidney dialysis (RD) services have expanded massively in\n>> the last decade.  After all, no one is forcing private providers to offer\n>> this service.  If they are losing money on the treatment (which according \n>> to information I've collected from several providers they are not) why\n>> would they not simply limit their losses by cutting back on services\n>> (engage in effective rationing of supply) rather than expand the coverage\n>> to a larger market that must then be compensated by raising prices in\n>> other areas?\n>\n>Perhaps there is a competitive advantage in there after all.  Would\n>not reputable and dedicated physicians prefer to affiliate with an\n>institution that offers dialysis services?  Would they not therefore\n>tend to admit patients in greater numbers to an institution that \n>offered a full range of diagnostic and treatment options?  \n\nUndoubtedly.  In fact, it is the fact that hospitals frequently compete\nfor physicians rather than for patients that (in part) complicates and \nundermines a simplistic free-market analysis of the market for medical care.\n\n>Hospitals tend to lose money on all sorts of high-tech, high-price \n>machinery. They manage to make it up on other charges.\n\nOnce again, there is no evidence that this is true in regard to kidney\ndialysis.  Although price controls have promoted an expansion of services\nto a much greater volume of patients, RD is still a profitable service.\nOtherwise, one would expect to see evidence of rationing rather than the\nvast expansion that has occurred.\n\n>\n>> Remember, the notion that you can lose a little on each treatment but\n>> make it up in volume is not good economics even in a free market. :) \n>\n>Then how do you explain why grocery stores routinely offer an\n>array of products at prices below cost?  Are not grocery stores\n>embedded in a relatively free market?\n\nCan you spell \"loss leader?\"  I knew you could.  Grocery stores do not\nattempt to make up the loss on an individual product by selling more of\nit.  In fact, your argument above is that kidney dialysis is a loss leader \nfor other medical treatments where lost revenue can be regained.  \n\nBut the evidence does not support this contention.  Rather, it appears that\nprice controls have disciplined the market by forcing an expansion of\nservice and development of improved lower-cost technology to provide \ncomparable benefits.  Providers continue to profit from RD, they simply\nmake less on each treatment than they would have if the price had \nrisen at the rate that uncontrolled treatments have.\n\nThere is no question that had price controls forced the price of RD \nsubstantially below its actual cost that some or all of the doomsday\npredictions of free-market advocates would have been seen -- restriction\nof service, lagging technological development, etc.  Likewise, it appears\nthat in the VA and armed forces medical care systems, where providers \nare government agencies, some of these negative impacts may occur.  \n(RD patients in the VA system in Spokane, for example, must travel to\nSeattle, 300 miles away, for treatment.)  \n\nThe bottom line, however, is that this is an example of government \nintervention (of a rather extreme sort) that appears to have had beneficial\nresults for both providers and consumers.  Claims that \"government\nbureaucracy\" inevitably leads to undesirable outcomes in the marketplace\nshould take such such cases into account.\n\njsh\n\n>\n>=Mark\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3490, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rcs1@crux3.cit.cornell.edu (R Craig Stevenson)\nSubject: W4W: printing envelops on DJ550C (not 500C!)\nNntp-Posting-Host: crux3.cit.cornell.edu\nOrganization: Cornell University\nLines: 19\n\nI've got a probelm with printing envelops on my deskjet 550C from Word\nfor Windows.\n\nHistory: when I had a Deskjet 500, I had to modify the macro so that\nit would disable reverse printing since there seemed to be a bug that\ninterferred with printing envelops.  That bug is still present, however...\n\nNow: the problem I have is that my DeskJet 550 print driver (came with\nthe printer I bought in December) still wants to print the envelops in\nPORTRAIT mode.  However, the DeskJet 550 feeds envelops the from the\nnarrow end (i.e. landscape mode).  How do I get the printer to print\nthe envelops in the correct orientation?\n\nPLEASE PLEASE PLEASE do not post this to the net since:\n    (a) due to end of the semester cruch, I can't keep up on these groups,\nand (b) I will summarize the best answer(s) to the net anyhow!\n\nThanks in advance,\nCraig Stevenson\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3491, "properties": {"category": "sci.electronics", "text": "From: sknapp@iastate.edu (Steven M. Knapp)\nSubject: Re: Radar detector DETECTORS?\nOrganization: Iowa State University, Ames, IA\nLines: 16\n\nIn article <oxenreid.734127163@chaos.cs.umn.edu> oxenreid@chaos.cs.umn.edu () writes:\n>In <1993Apr06.173031.9793@vdoe386.vak12ed.edu> ragee@vdoe386.vak12ed.edu (Randy Agee) writes:\n>\n>>So, the questions are -\n\n>>  Are any brands \"quieter\" than others?\n\nYes some radar detectors are less detectable by radar detector\ndetectors. ;-)\n\nLook in Car and Driver (last 6 months should do), they had a big\nreview of the \"better\" detectors, and stealth was a factor.\n________________________________________________________________________ \nSteven M. Knapp                             Computer Engineering Student\nsknapp@iastate.edu                  President Cyclone Amateur Radio Club\nIowa State University; Ames, IA; USA      Durham Center Operations Staff\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3492, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Nazi Eugenic Theories Circulated by CPR => (unconventional peace)\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 15\n\nIn article <1qvi7s$b1o@usenet.INS.CWRU.Edu> bc744@cleveland.Freenet.Edu (Mark Ira Kaufman) writes:\n>\n>   First this man promotes the dissolution of the Jews through an\n>intermarriage process, and then says that it will be just a bunch\n>of 'fundamentalist' Jews who will object.  \n>\n>Or does he simply mean to insult the orthodox by using the word \n>'fundamentalist?'\n>\nIt's irritating when someone mis-labels \"us\" as \"fundamentalists\",\nisn't it?  This sort of thing may help us understand why some muslims \nrather resent being put under this label.\n\nTim\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3493, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Flashing anyone?\nKeywords: flashing\nOrganization: NEC Systems Laboratory, Inc.\nLines: 31\n\nIn article <1993Apr15.123539.2228@news.columbia.edu> rdc8@cunixf.cc.columbia.edu (Robert D Castro) writes:\n>Hello all,\n>\n>On my bike I have hazard lights (both front and back turn signals\n>flash).  Since I live in NJ and commute to NYC there are a number of\n>tolls one must pay on route.  Just before arriving at a toll booth I\n>switch the hazards on.  I do thisto warn other motorists that I will\n>be taking longer than the 2 1/2 seconds to make the transaction.\n>Taking gloves off, getting money out of coin changer/pocket, making\n>transaction, putting gloves back on takes a little more time than the\n>average cager takes to make the same transaction of paying the toll.\n>I also notice that when I do this cagers tend to get the message and\n>usually go to another booth.\n>\n>My question, is this a good/bad thing to do?\n\n\tThis sounds like a VERY good thing to do.\n\n>Any others tend to do the same?\n\n\tI will now, whenever I don't have my handy-dandy automatic coin\nfetcher/toll payer (Annette :-) with me.\n\n\tThanks for the tip.\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.159+0000", "event": "documents", "entityId": 3494, "properties": {"category": "rec.autos", "text": "From: \"tom neumann\" <tom.neumann@canrem.com>\nSubject: vw passat? (again)\nReply-To: \"tom neumann\" <tom.neumann@canrem.com>\nOrganization: Canada Remote Systems\nDistribution: rec\nLines: 25\n\n\nkojo@valet.phx.mcd.mot.com (Kojo Yeboah) writes:\n\nKY>To all those who have PASSATs, do you recommend using Super Unleaded or just\nKY>regular Unleaded Gasoline. I have been using Regular Unleaded. A friend of mine has\nKY>a Jetta and has always used Super Unleaded and thinks I should be using the same;\nKY>however, I believe the advantages of Super Unleaded for CARs $30000 and under\nKY>has been overplayed by guess who: the companies who sell them, because that is\nKY>where they make the most PROFIT. A Ralph Nader report and other consumer advocates\nKY>have in the past spoken against those oil companies.\n\nYour Passat VR6 is designed to run on premium gasoline, however the\nengine electronics will retard the timing so that no harm wil be done\nto the engine with lower octane fuel.\n\nYou will likely, however, get somewhat more power and fuel mileage\n(especially in hot weather) out of this particular engine if you do\nrun it on premium. \n\nTom Neumann\n---\n \u00fe DeLuxe\u00fd 1.25 #350 \u00fe I sell Volkswagens.\n--\nCanada Remote Systems - Toronto, Ontario\n416-629-7000/629-7044\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3495, "properties": {"category": "talk.politics.mideast", "text": "From: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nSubject: Re: Deriving Pleasure from Death\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nOrganization: Columbia University\nLines: 13\n\n\n>them. (By the way, I do not applaud the killing of _any_ human being,\n>including prisoners sentenced to death by our illustrious justice department)\n>\n>Peace.\n>-marc\n>\n\nBoy, you really are a stupid person.  Our justice department does\nnot sentence people to death.  That's up to state courts.  Again,\nget a brain.\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3496, "properties": {"category": "rec.sport.hockey", "text": "From: jason@studsys.mscs.mu.edu (Jason Hanson)\nSubject: Re: NHL team in Milwaukee\nOrganization: UTexas Mail-to-News Gateway\nLines: 42\nNNTP-Posting-Host: cs.utexas.edu\n\nNewsgroups: rec.sport.hockey\nSubject: Re: NHL team in Milwaukee\nSummary: \nExpires: \nSender: \nDistribution: \nOrganization: Marquette University - Department MSCS\nKeywords: \n\nIn article <1993Apr16.131843.24012@walter.cray.com> cbetz@radioman.cray.com (Charles Betz  {x66442 CF/ENG}) writes:\n>\n>Bradley Center in Milwaukee is home to the Milwaukee Admirals minor leauge\n>hockey team.  The owner of the Admirals (sorry, I can't remember his name)\n>either owns or at least shelled out the majority of the funds to build the\n>Bradley Center.\n\nLloyd Pettit married into Allen-Bradley Corp. (ab.com) family and owns the\nAdmirals.  He donated the Bradley Center and the new Pettit National Ice\nCenter.\n\n>Supposedly he was approached by the NHL about an expansion franchise, but \n>turned it down because he thought the franchise fee of $50 million was too\n>high.\n\nThis is not the way I have heard it.  See, Lloyd (as he is affectionately\nreferred to by Milwaukeeans and Bob Uecker) bought the Bradley Center *TO* get\nthe NHL to come here.\n\n>Like I said, I don't know whether this story is true or just a rumor, but if\n>it's true, don't look for an NHL team in Milwaukee anytime soon.  The Admirals\n>aren't going to be forced out of the building and you won't see an NHL club\n>and a minor league club in the same building, especially since the NBA's\n>Milwaukee Bucks play there as well.\n\nYeah, the Bucks, the Milwaukee Wave (soccer), the Admirals, the Marquette\nWarriors, concerts and a bunch of other things...\n-- \nJason Hanson         |  915 W. Wisconsin Ave #1010  |  (414) 288-2179\nMarquette University |   Milwaukee, WI 53233-2373   |  Ham Radio: N9LEA/AE\n--  jason@studsys.mscs.mu.edu    ==+==    n9lea@n0ary.#nocal.ca.usa.na  --\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3497, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: butzen@binky.nas.nasa.gov (Nicholas A. Butzen)\nSubject: Re: GW2000 and SIMMS\nOrganization: NAS Program, NASA Ames Research Center, Moffett Field, CA\nLines: 29\n\nThey are actually 72 pin. They come in 4, 8, 16, and 32 with 64s soon\nIf you are interested in 4s or 8s, I may be able to help. Please call\n415-324-2881 after 4:00 pm pdt. I may be interested in a trade.\n\n\n\n\t\t\t\tNAB\n\t\t\t\tASAN-NASA it's all done with mirrors\nIn article <1pq2ofINNe2t@darkstar.UCSC.EDU>, banshee@cats.ucsc.edu (Wailer at the Gates of Dawn) writes:\n|> \n|> In <113956@bu.edu> nshah@acs2.bu.edu writes:\n|> \n|> >I have a gateway2000 483/33 local bus system.  It has 4 slots for SIMMS\n|> >that either have to use 4 or 16MB simms.  My question:  I just\n|> >received a 4x9 70ns simm and it has ~30 pins.  The slot on the\n|> >motherboard has at least 70 or so pins.  Did I get the wrong simm\n|> >or can I still use my simm , although not all the pins on the slot would\n|> >be flilled.  I have never encountered such a long slot for simms before.\n|> >Anyone have suggestions?  I can't get a hold of Gateway yet.  Thanks\n|> >Please post to the net or :   nshah@acs.bu.edu\n|> \n|> Yes you got the wrong simm.  You need 70 pin simms in 4 or 16 meg\n|> flavors.\n|> \n|> -- \n|> The Wailer at the Gates of Dawn              | banshee@cats.UCSC.EDU       |\n|> Just who ARE you calling a FROOFROO Head?    |                             |\n|> DoD#0667  \"Just a friend of the beast.\"      | banshee@ucscb.UCSC.EDU      |\n|> 2,3,5,7,13,17,19,31,61,89,107,127,521,607....| banshee@ucscb.BITNET        |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3498, "properties": {"category": "rec.sport.hockey", "text": "From: smithw@col.hp.com (Walter Smith)\nSubject: Re: Playoff predictions\nOrganization: Colorado Springs IT Center\nLines: 41\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\nOK, I'll join in the fun and give my playoff predictions: \n\n1st round: \n----------\n\nPITT vs NYI:  PITT in 4.  \nWASH vs NJD:  WASH in 6. \n\nBOS  vs BUF:  BOS  in 5. \nQUE  vs MON:  MON  in 7. \n\nCHI  vs STL:  CHI in 4. \nDET  vs TOR:  DET in 6. \n\nVAN  vs WIN:  WIN in 6. \nCAL  vs  LA:  CAL in 5. \n\n2nd round: \n----------\n\nPITT vs WASH: PITT in 4. \nBOS  vs MON:  BOS  in 6. \n\nCHI  vs DET:  CHI  in 7. \nWIN  vs CAL:  CAL  in 5. \n\n3rd round: \n----------\n\nPITT vs BOS:  PITT in 5. \nCHI  vs CAL:  CHI  in 5. \n\nFinals:\n------\n\nPITT vs CHI: PITT in 5. \n\n\n=============================================\nWalter\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3499, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Re: Police radar....Just how does it work??\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 25\n\nIn article <1993Apr2.182402.28700@walter.bellcore.com>, deaddio@ski.bellcore.com (Michael DeAddio) writes:\n\n|> |> The 'beam' is split in two, with one beam aimed at the target car (sort of) and\n|> |> the other at the ground.  The speeds of each are calulated for the final\n|> |> number\n|> \n|> Actually, this is true on the more expensive ones, but the cheaper ones\n|> just read the speedometer.\n\nI've never seen a speedometer-reading model. Are you sure? Who makes\nthem? Consider the difficulty of reading the speedo on various makes\nof cars in use... I've seen single beam moving-mode and split beam\nmoving-mode.\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3500, "properties": {"category": "comp.windows.x", "text": "From: hess@swt1.informatik.uni-hamburg.de (Hauke Hess)\nSubject: XWindows always opaque\nSummary: is there a way for a parent window to overpaint its childs?\nKeywords: xwindow, parent-child relation\nOrganization: University of Hamburg, Germany\nDistribution: comp\nLines: 9\n\nHi,\n\nI wonder if it is possible for a parent window to paint over the area of\nits childs. If it is not, then how could it be possible to implement a \nrubberband across multiple xwindows to select the objects that are\ndisplayed one in each window?\n\nHauke\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3501, "properties": {"category": "sci.electronics", "text": "From: rubin@cis.ohio-state.edu (Daniel J Rubin)\nSubject: Re: what to do with old 256k SIMMs?\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 18\nNNTP-Posting-Host: diplodocus.cis.ohio-state.edu\n\n>>\tI was wondering if people had any good uses for old\n>>256k SIMMs.  I have a bunch of them for the Apple Mac\n>>and I know lots of other people do to.  I have tried to\n>>sell them but have gotten NO interest.\n\nHow hard would it be to somehow interface them to some of the popular \nMotorola microcontrollers.  I am a novice at microcontrollers, but I am\nstarting to get into them for some of my projects.  I have several 256k\nSIMMs laying around from upgraded Macs and if I could use them as \"free\"\nmemory in one or two of my projects that would be great.  One project that\ncomes to mind is a Caller ID device that would require quite a bit of RAM\nto store several hundered CID records etc...\n\n                                                             - Dan\n-- \n             Daniel Joseph Rubin     rubin@cis.ohio-state.edu \n     \n                       GO BENGALS!      GO BUCKS!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3502, "properties": {"category": "talk.politics.guns", "text": "From: zed@Dartmouth.EDU (Ted Schuerzinger)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nX-Posted-From: InterNews 1.0b16@dartmouth.edu\nOrganization: WDCR/WFRD, Hanover, NH\nLines: 49\n\nIn article <93109.13404334AEJ7D@CMUVM.BITNET>\n<34AEJ7D@CMUVM.BITNET> writes:\n\n> I will be surprised if this post makes it past the censors,\n> but here goes:\n> \n> Monday, 19 April, 1993 13:30 EDT\n> \n>                     MURDER  MOST  FOUL!!\n> \n> CNN is reporting as I write this that the ATF has ignited all\n> the buildings of the Branch Dividian ranch near Waco, TX. The\n> lies from ATF say \"holes were made in the walls and 'non-lethal' tear\n> gas pumped in\". A few minutes after this started the whole thing went up.\n> ALL buildings are aflame. NO ONE HAS ESCAPED. I think it obvious that\n> the ATF used armored flame-thrower vehicles to pump in unlit\n> napalm, then let the wood stove inside ignite it.\n> \n> THIS IS MURDER!\n> \n> ATF MURDERERS!  BUTCHERS!!\n> \n> THIS IS GENOCIDAL MASS-SLAUGHTER OF INNOCENT PEOPLE, INCLUDING CHILDREN!\n> \n> I have predicted this from the start, but God, it sickens me to see\n> it happen. I had hoped I was wrong. I had hoped that there was\n> still some shred of the America I grew up with, and loved, left\n> alive. I was wrong. The Nazis have won.\n> \n> I REPEAT, AS OF THIS TIME THERE ARE **NO  SURVIVORS**!\n> \n> God help us all.\n> \n> \n> PLEASE CROSSPOST -- DON'T LET THEM GET AWAY WITH THE SLAUGHTER OF THE CHILDREN!\n> \n> \n> W. K. Gorman - an American in tears.\n\nThe latest news I saw was that two of the eight known survivors (not NO\nSURVIVORS!!! as you so rudely put in all caps) said they started the\nfire.\n\nI won't go on with the things the wacko of Waco did.\n\n\n--Ted Schuerzinger\nzed@Dartmouth.EDU\nThis is not the secret message.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3503, "properties": {"category": "comp.graphics", "text": "From: ednobles@sacam.OREN.ORTN.EDU (Edward d Nobles)\nSubject: windows imagine??!!\nOrganization: Oak Ridge National Laboratory\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 10\n\n\nI sent off for my copy today...   Snail Mail.   Hope to get it back in\nabout ten days.  (Impulse said \"a week\".)\n\nI hope it's as good as they claim...\n\nJim Nobles\n\n(Hope I have what it takes to use it...  :>)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3504, "properties": {"category": "talk.politics.mideast", "text": "Subject: Re: Deriving Pleasure from Death\nFrom: mafifi@eis.calstate.edu (Marc A Afifi)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 30\n\n>  Brad Hernlem writes...\n> >\n> >Congratulations to the brave men of the Lebanese resistance! With every\n> >Israeli son that you place in the grave you are underlining the moral\n> >bankruptcy of Israel's occupation and drawing attention to the Israeli\n> >government's policy of reckless disregard for civilian life.\n> >\n> >Brad Hernlem (hernlem@chess.ncsu.EDU)\n\nTo which Mark Ira Kaufman responds:\n> \n>     Your delight in the death of human beings says more about you\n>     than anything that I could say.\n\nMark,\nWere you one of the millions of Americans cheering the slaughter of Iraqi\ncivilians by US forces in 1991? Your comment could also apply to all of\nthem. (By the way, I do not applaud the killing of _any_ human being,\nincluding prisoners sentenced to death by our illustrious justice department)\n\nPeace.\n-marc\n\n\n--\n______________________________________________________________________________\nSome people are so narrow minded they can see through a crack in a door with\nboth eyes. \nMy opinions should be yours. My employer has no opinions.\n______________________________________________________________________________\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3505, "properties": {"category": "rec.autos", "text": "From: ems@michael.apple.com (E. Michael Smith)\nSubject: Re: How hard to change springs on F350 truck?\nOrganization: Circle 'C' Shellfish Ranch, Shores-of-the-Pacific, California\nLines: 88\n\nBottom line:  I did it and it worked.\n\nSome 'tips and techniques' are included here:\n\nIn article <C4zzpn.Ax7@constellation.ecn.uoknor.edu> callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>In article <1993Apr3.005245.10615@michael.apple.com> ems@michael.apple.com (E. Michael Smith) writes:\n>>Does it take any peculiar tools to remove the rear springs from a Ford\n>>F350 truck?  This is a 4x4 with leaf springs front and rear.\n>>\n>>So, with a big socket and an air wrench and a floor jack (and a \n>>hydrolic bottle jack ...) can I do this at home?  \n\nI found that I needed some smaller sockets to undo the shocks.\nAnd a can of WD40 helped...\n\nThe sockets needed were metric (exact fit) but I was able to use\nsome SAE sockets...  13/16 and 15/16 are rather close to 21 and 24mm...\nIt CAN be fun having a Canadian Ford ...\n\n>>I'm pictureing this:  Undo U bolts.  Put a bottle jack on the axle\n>>and raise the bed/frame to take stress off of the leaf spring.  Undo\n>>the end bolts/bushings.  Drop the spring.  Turn the bottom leaf. \n>>Re-connect the spring bolts...\n>\n>Sounds about right.\n\nDidn't have to undo the end bolts/bushings.  Just the 2 U bolts on\neach side and the shock absorber.  Jacking up the frame some more\n(had to put the spare tire on the garage floor and put a wooden \nplatform on top of that to get the 'floor jack' high enough to\nraise the frame ... I't one TALLL truck...) lifted the spring\nfree of the axel.  Taking out the block gave me enough room to\nundo the pin holding the spring pack together.\n\nThe spring pack was held together with a nut on top and a round head\non the other end....  No wrench head...  Vice Grips worked fine...\nI soaked the nut with WD40 and it came right off.\n\nFlipped the bottom spring and then...\n\n>>Is this a nightmare waiting to happen, or an easy, though physically\n>>demanding, thing to do?\n>\n>Well, it's easier than doing a decent trigger job on a 1911A1 :-)\n>(OK, well, maybe it's not _that_ easy, but it's not terribly\n>difficult.)\n\nI donno ... I'm a little more sore today than after working on a\n1911A1 ...\n\nA 1.5 foot pipe cheater was a real help.  Torque spec for the U bolt\nnuts is 150 to 200 ft-lbs (!).   A 1911-A1 doesn't have that kind of\ntorque spec ...\n\nIt was a 'challenge' to get the 'pack bolt' back in the spring pack.  \nSqueeze pack with two hands, hold bolt with third, put nut on\nwith fourth while picking up wrench and vice grips with fifth\nand sixth hands ...  I used some string to tie the pack together\nwhile holding the pin in for alignment... then I could let go\nto get the {nut, wrench, Vice Grips...}.\n\nGetting the pin back lined up with the lift block was a challenge too...\nuntil I discovered that the axel had 1) Tilted and/or 2) rolled forward.\n\nOne the drivers side, a bottle jack under the front of the differential\ntilted it back in line enough for the pin head to drop into the right\nhole.  On the passenger side, I had to wrestle the wheel into rolling\nforward about 1/2 inch to get things to line up.  Spent more than an\nhour working on getting the pin head into the hole in the lift block\nwith levers and ropes and impliments of distruction before I took a \nbreak and thought about WHY it wasn't lined up anymore (since it HAD\nbeen lined up before, and *I* didn't move it, something ELSE must \nhave ... hmmm, axle no longer constrained not to move ... hmmm, move \nit back... hmmm...).\n\nAfter that, it was all much easier to 'close up'.\n\nBTW, the ride is now softer, but not quite as soft as I was hoping for.\nAt least it now sits level..\n\n-- \n\nE. Michael Smith  ems@apple.COM\n\n'Whatever you can do, or dream you can, begin it.  Boldness has\n genius, power and magic in it.'  -  Goethe\n\nI am not responsible nor is anyone else.  Everything is disclaimed.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3506, "properties": {"category": "sci.electronics", "text": "From: fsset@bach.lerc.nasa.gov (Scott Townsend)\nSubject: Electric power line \"balls\"\nNntp-Posting-Host: bach.lerc.nasa.gov\nOrganization: NASA Lewis Research Center [Cleveland, Ohio]\nDistribution: usa\nLines: 18\n\nI got a question from my dad which I really can't answer and I'd appreciate\nsome net.wisdom.\n\nHis question is about some 18-24\" diameter balls which are attached to\nelectric power lines in his area.  He's seen up to a half dozen between\ntwo poles.  Neither of us have any experience with electric power distribution.\nMy only guess was that they may be a capacitive device to equalize the\ninductance of the grid, but why so many between two poles?.\n\nAnyone know what they really are?  Is there a related FAQ for this?\nIs there a better group to submit to?\n\nWe'd both appreciate some enlightenment.\n\n\n-- \nScott Townsend,  Sverdrup Technology Inc.  NASA Lewis Research Center Group\nfsset@bach.lerc.nasa.gov\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3507, "properties": {"category": "misc.forsale", "text": "From: battle@cs.utk.edu (David Battle)\nSubject: ChemLab EyeoftheBeholder2 ClueBook EthernetTransceiver NintendoControl\nSummary: Miscellaneous Items For Sale\nKeywords: Chemistry IBM PC Games Clue Book Ethernet Transceiver Nintendo\nReply-To: battle@cs.utk.edu\nDistribution: us\nOrganization: University of Tennessee, Knoxville - CS Department\nLines: 50\nNNTP-Posting-Host: hydra1b.cs.utk.edu\n\nI have the following items for sale.  The highest bid for each to arrive\nin my email box by 5:00 pm EDT Wednesday April 21, 1993 gets the item.\n\n1] Skillcraft Senior Chemlab Set 4581\n        Safe for Ages 10 and Up\n        Used little\n        25 bottles of different Chemicals, Plastic Balance, Alcohol Lamp,\n        Test Tube, Litmus Paper\n        Manual with \"Over 1100 Experiments\"\n        $4 shipping will be added to your bid\n\n2] Eye of the Beholder II\n        Fun game for the IBM PC\n        In original box, with original media and Manual\n        $3 shipping will be added to your bid\n\n3] Clue Book for Eye of the Beholder II\n\tSolve your dilemmas in a hurry and find all the loot\n\t$1 shipping will be added to your bid\n\tFree shipping on this item if you bid highest on this and item 2].\n\n4] Ethernet Transceiver (ST-500 With LanView (AUI to 50 Ohm coaxial))\n        Works fine\n        Has nifty blinking leds for send/receive/collision/power, etc.\n        Built-in T\n        Includes one 50 Ohm terminator\n        $2 shipping will be added to your bid\n\n5] Super Nintendo Super Controller\n        Auto Repeated Fire\n        Hands-Free Continuous Fire\n        Slow Motion (accomplished by automatically pausing/unpausing)\n\tAdd to a one-controller console to allow two players\n        $2 shipping will be added to your bid\n\n\nBe sure to include a  *SHIPPING ADDRESS* with *ALL* bids.\nBe sure to include an *EMAIL ADDRESS*    with *ALL* bids.\n\nSend bids to battle@cs.utk.edu (David Battle).\n\nYou will be informed by email if your bid is the highest by 5:30 pm EDT\nWednesday April 21, 1993.\n\nItems will be shipped US Postal Service First Class COD on Thursday morning.\nA money order for your bid plus the indicated shipping amount will be needed\nto receive the item.  Please keep this fact in mind when bidding.\n\n-David\nbattle@cs.utk.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3508, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Objective morality (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 22\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>In another part of this thread, you've been telling us that the\n>\"goal\" of a natural morality is what animals do to survive.\n\nThat's right.  Humans have gone somewhat beyond this though.  Perhaps\nour goal is one of self-actualization.\n\n>But suppose that your omniscient being told you that the long\n>term survival of humanity requires us to exterminate some \n>other species, either terrestrial or alien.\n\nNow you are letting an omniscient being give information to me.  This\nwas not part of the original premise.\n\n>Does that make it moral to do so?\n\nWhich type of morality are you talking about?  In a natural sense, it\nis not at all immoral to harm another species (as long as it doesn't\nadversely affect your own, I guess).\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3509, "properties": {"category": "comp.windows.x", "text": "From: tim@kimba.catt.citri.edu.au (Tim Liddelow)\nSubject: Keysym database problems\nKeywords: X, Motif\nOrganization: CATT Centre at CITRI, Melbourne, Australia\nLines: 31\n\nI am having problems with a  Motif application that when run on another machine\n(with different X paths, etc) can't find the XKeysymDB file.   This causes a large\nwarning output:\n\nWarning: translation table syntax error: Unknown keysym name: osfActivate\nWarning: ... found while parsing '<Key>osfActivate:ManagerParentActivate()'\nWarning: translation table syntax error: Unknown keysym name: osfCancel\nWarning: ... found while parsing '<Key>osfCancel:ManagerParentCancel()'\nWarning: translation table syntax error: Unknown keysym name: osfSelect\nWarning: ... found while parsing '<Key>osfSelect:ManagerGadgetSelect()'\n...\n....\n....\netc.\n\nas the file is in a different location, but Xt seems to only look for it in\nthe place where it is on the machine the app was compiled on.  Is there any\nway to read the XKeysymDB manually with an X/Xt call so that additions to\nthe XKeysymDB can be distributed with the application ?  I have used trace(1)\nto find out what was going on, but I need a fix so that these translations in\nthe application can be recognised.\n\n--tim\n________________________________________________________________________________\n  Tim Liddelow                                          for(;;) fork();\n  Systems Programmer\n  Centre of Advanced Technology in Telecommunications   My brain on a bad day.\n  CITRI, Melbourne, Australia                           \n  internet : tim@kimba.catt.citri.edu.au                \n  Phone : +61 3 282 2455   Fax : +61 3 282 2444\t        \n________________________________________________________________________________\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3510, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rick@howtek.MV.COM (Rick Roy)\nSubject: 8*24 card questions\nOrganization: Howtek, Inc.\nReply-To: rick@howtek.MV.COM (Rick Roy)\nX-Mailer: uAccess - Macintosh Release: 1.6v2\nLines: 31\n\nI'm considering buying one of these to offload the internal video\nin my IIci and to get 24 bit color capability on my 13\" monitor. What's\nthe deal on them?\n\n1) Do they come with varying amounts of RAM? If so, what is the max\nand min? How much do I need for 640 x 480 x 24 bits?\n\n2) What bit depths are supported? One, 2, 4, 8, 16, and 24?\n\n3) Are all these cards accelerated or just some? Is it true that\nmodern accelerated video cards are (at least in general) faster? What\nbit depths are accelerated, all or just 24 bit? I've heard that some\napplications actually run *slower* with this card if they write directly\nto the screen (or something like that). Is this a frequent problem?\nHow much slower is it?\n\n4) Didn't I read (when System 7 first came out) that the card was\nincompatible? If so, how was this corrected (Finder patch, some INIT,\nor other)? Has it been kept compatible with 7.1? Are there many other\napps that it is incompatible with (games or important (i.e., non-\nMicrosloth) apps, for example)?\n\n5) If you have a strong opinion on it's value for someone in my position,\nlet me know what you think a reasonable price is to pay for it.\n\nThanks a lot for you input.\nRick\n\n-------------------------------------------------------------------\nRick Roy       Usenet: rick@howtek.MV.com       America Online: QED\nDisclaimer: My employer's views are orthogonal to these.\nThe early bird got worms.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3511, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: nshah@acs2.bu.edu\nSubject: SIMM for Sale\nOrganization: Boston University, Boston, MA, USA\nLines: 6\nOriginator: nshah@acs2.bu.edu\n\nI have 1 4Mx9 70ns 36pin SIMM for Sale.  It is in perfect condition.  It\nwill not work in my system because it requires 72 pin SIMMS.\nI would like to get what I paid for it.  $115 + 3 for insured shipping.\n\nIn addition, if you have a 4MB 70ns 72 pin EISA or PS/2 type SIMM for\nsale, drop me a line.  Thanks.  Nimesh Shah  nshah@acs.bu.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3512, "properties": {"category": "rec.sport.baseball", "text": "From: cs1442aq@news.uta.edu (cs1442aq)\nSubject: Ryam out for 2-5 weeks!!\nOrganization: University of Texas at Arlington\nLines: 4\n\nNolan Ryan has torn cartlidge inhis right knee.  Is having surgery and\nis expected to miss 2-5 weeks.  \n-- \n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3513, "properties": {"category": "comp.graphics", "text": "From: jfreund@taquito.engr.ucdavis.edu (Jason Freund)\nSubject: Info on Medical Imaging systems\nOrganization: College of Engineering - University of California - Davis\nLines: 10\n\n\n\tHi, \n\n\tIs anyone into medical imaging?  I have a good ray tracing background,\nand I'm interested in that field.  Could you point me to some sources?  Or\nbetter yet, if you have any experience, do you want to talk about what's\ngoing on or what you're working on?\n\nThanks,\nJason Freund\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3514, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: While Armenians destroyed all the Moslem villages in the plain...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 48\n\nIn article <1pol62INNa5u@cascade.cs.ubc.ca> kvdoel@cs.ubc.ca (Kees van den Doel) writes:\n\n>>See, you are a pathological liar.\n\n>You got a crack in your record I think. \n\nThis is the point we seem to disagree about. Not a chance.\n\n>I keep seeing that line over and over.  That's pathetic, even for \n>Serdar Argic!\n\nWell, \"Arromdian\" of ASALA/SDPA/ARF Terrorism and Revisionism Triangle\nis a compulsive liar. Now try dealing with the rest of what I wrote.\n\nU.S. Ambassador Bristol:\n\nSource: \"U.S. Library of Congress:\" 'Bristol Papers' - General Correspondence\nContainer #34.\n\n \"While the Dashnaks were in power they did everything in the world to keep the\n  pot boiling by attacking Kurds, Turks and Tartars; by committing outrages\n  against the Moslems; by massacring the Moslems; and robbing and destroying\n  their homes;....During the last two years the Armenians in Russian Caucasus\n  have shown no ability to govern themselves and especially no ability to \n  govern or handle other races under their power.\"\n\nA Kurdish scholar:\n\nSource: Hassan Arfa, \"The Kurds,\" (London, 1968), pp. 25-26.\n\n \"When the Russian armies invaded Turkey after the Sarikamish disaster \n  of 1914, their columns were preceded by battalions of irregular \n  Armenian volunteers, both from the Caucasus and from Turkey. One of \n  these was commanded by a certain Andranik, a blood-thirsty adventurer.\n  These Armenian volunteers committed all kinds of excesses, more\n  than six hundred thousand Kurds being killed between 1915 and 1916 in \n  the eastern vilayets of Turkey.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3515, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: TDR plug-in\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 18\n\nI have an HP 1815 TDR plug-in for an HP180 series scope or mainframe\nthat I'm never going to use (no scope any more). If you're interested\nin it, please let me know. Price? Probably real cheap.\n\nThis notice may have appeared once before. I posted, and it never showed\nup on our local server...\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3516, "properties": {"category": "sci.med", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Need advice with doctor-patient relationship problem\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 9\n\nSounds as though his heart's in the right place, but he is not adept at\nexpressing it.  What you received was _meant_ to be a profound apology.\nApologies delivered by overworked shy people often come out like that...\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3517, "properties": {"category": "misc.forsale", "text": "Subject: Re: Value of Kathy St.Pat'sDay stand?\nFrom: bjbartlett@miavx1.acs.muohio.edu (Bart)\nOrganization: Shady Rest Home\nLines: 10\n\nIn article <dsblack.733712807@pv6807.vincent.iastate.edu>, dsblack@iastate.edu (Vilkata TDK) writes:\n> I heard on one of these newsgroups a week or two ago that the Kathy Ireland\n> Budweiser posters were popular.  There are supposedly half-size and life-size\n> posters.  Well, someone I know got a life-size stand-up cardboard (thick, damn\n> good quality) one, and was wondering what it was worth.  Anybody?\n\n  What about the St. Pat. posters from last year?  I have a stack of about \ntwenty, and two of the card-board cutouts.  (No, they are NOT for sale, I \ncollect them.)\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3518, "properties": {"category": "rec.motorcycles", "text": "From: manes@magpie.linknet.com (Steve Manes)\nSubject: Re: Drinking and Riding\nOrganization: Manes and Associates, NYC\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 17\n\nNorman Hamer (maven@eskimo.com) wrote:\n:  What is a general rule of thumb for sobriety and cycling? Couple hours after\n: you \"feel\" sober? What? Or should I just work with \"If I drink tonight, I\n: don't ride until tomorrow\"?\n\nIt depends on how badly you want to live.  The FAA says \"eight hours, bottle\nto throttle\" for pilots but recommends twenty-four hours.  The FARs specify\na blood/alcohol level of 0.4 as legally drunk, I think, which is more than\ntwice as strict as DWI minimums.\n\nBTW, alcohol metabolizes in your blood at a fixed rate -- one beer/hour will\nkeep your blood/alcohol level barely street-legal.  Coffee, hyperventilation\nand other bar tricks won't speed it up nor will they fool Mr. Ranger.\n-- \nStephen Manes\t\t\t\t\t   manes@magpie.linknet.com\nManes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.160+0000", "event": "documents", "entityId": 3519, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: DC-X: Vehicle Nears Flight Test\nOrganization: Texas Instruments Inc\nLines: 14\n\nIn <1993Apr5.191011.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n\n>Since the DC-X is to take off horizontal, why not land that way??\n>Why do the Martian Landing thing..  Or am I missing something.. Don't know to\n>much about DC-X and such.. (overly obvious?).\n\nYou missed something.  I think it takes off vertically and is intended\nto land the same way.\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3520, "properties": {"category": "comp.windows.x", "text": "From: mahan@TGV.COM (Patrick L. Mahan)\nSubject: RE: Sunview -> X\nOrganization: The Internet\nLines: 26\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu, alex@vuse.vanderbilt.edu\n\n#\n#No doubt this is an old question, but I didn't find the answer in the\n#FAQs I could find, so - here goes:\n#\n#I have a Sunview application that I want to convert to X (OpenLook,\n#Motiv, whatever). I remember hearing quite some time ago that there\n#are tools to accomplish this task.\n#\n#\ta) is that so?\n#\tb) are they public domain?\n#\tc) any good, i.e.\n#\td) advantages over reimplementing the interface myself?\n#\n\nThe simple answer is for you to obtain use XView to do this.  XView is a\none to one replacement for Sunview.  It should already be provided with\nyou Sun running OpenWindows.   It is also free available as part of the\ncontrib side of the MIT X11R5 release.\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3521, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: loschen@binah.cc.brandeis.edu\nSubject: Re: Diamond SS24X, Win 3.1, Mouse cursor\nReply-To: loschen@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 27\n\nIn article <1993Apr16.145322.16378@nlm.nih.gov>, dabl2@nlm.nih.gov (Don A.B. Lindbergh) writes:\n>In article <1993Apr15.204845.24939@nlm.nih.gov> dabl2@nlm.nih.gov (Don A.B. Lindbergh) writes:\n>>\n>>Anybody seen mouse cursor distortion running the Diamond 1024x768x256 driver?\n>>Sorry, don't know the version of the driver (no indication in the menus) but it's a recently\n>>delivered Gateway system.  Am going to try the latest drivers from Diamond BBS but wondered\n>>if anyone else had seen this.\n>>\n>\n>As a followup, this is a co-worker's machine.  He has the latest 2.03 drivers.\n>It only happens using the 1024x768x256 driver.  Sometimes it takes a minute\n>or so for the cursor to wig out, but it eventually does in this mode.  I\n>susect something is stepping on memory the video card wants.  I excluded\n>a000-c7ff in the EMM386 line and in system.ini  The problem persisted.\n>Perhaps it is something specific to the Gateway machine or it's components.\n>It is a 66mhz DX/2 Eisa bus with an Ultrastore (24xx?) controller.  Ah well,\n>I was hoping this was some kind of 'known problem' or somebody had seen it\n>before.  Perhaps a call to Gateway is in order, but I do find folks here\n>usually are far more in the know.\n>\n>--Don Lindbergh\n>dabl2@lhc.nlm.nih.gov\n\nI haven't seen this particular problem, but another place you might\ncheck is if your BIOS is doing video shadowing--Diamond wants that\nturned off.  That might cause a memory conflict as well.  Good\nluck.  Hope this helps, Chris Loschen, Brandeis U.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3522, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kwilson@casbah.acns.nwu.edu (Kirtley Wilson)\nSubject: Mirosoft Office Package\nArticle-I.D.: news.1993Apr6.183345.28238\nOrganization: Northwestern University, Evanston Illinois.\nLines: 31\nNntp-Posting-Host: unseen1.acns.nwu.edu\n\nI am in charge of purchasing some computer software for a small office and I\nhave a few question about Microsoft's Office Pack.  \n\n1)  I was wondering, are the programs that are packaged with the Office\nPack--WinWord, Power Point, Excel, and ccMail--complete and the latest\naddition?\n\n2) Are the programs \"hobbled\" in any way? \n\n3) Can we update single programs at a latter date ( i.e. from Excel 4.0 to\nExcel 5) ?\n\n4) Do you receive all of the necessary disks and documentation?\n\n5) Is there anything that I should be aware of that makes the Office Package\nless of deal that it seems?\n\nSorry if I seem skeptical put the price for the Office Package--$439.39 on the\nstreet--sounds like a great deal for the office that is purchasing its first\ncomputer and software.  But all four complete programs for less than $450\nmakes me just a little suspicious.  Maybe its just me.  \n\nThanks for your help in advance\n\nKirt Wilson\nNorthwestern University\n\n-------------------------------\n\nInternet: kwilson@casbah.acns.nwu.edu\nBitnet:   kwilson@casbah\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3523, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Does 'Just/justifiable War' exist?\nOrganization: AI Programs, University of Georgia, Athens\nLines: 32\n\nSome thoughts:\n\n[A. On the non-pacifist side:]\n\n(1) Killing to defend the innocent may be, if anything, _more_ justifiable\nthan killing in self-defense.  I can turn my _own_ other cheek, but I have\nno right to turn someone else's.\n\n(2) It seems to me that if Jesus had meant to teach pacifism, He would have\nmade His position more explicit.  He didn't tell the centurion to leave the\narmy, for instance; and the NT is full of military metaphors.\n\n[B. On the pacifist side:]\n\n(1) Apparently many early Christians refused to fight in the Roman army,\nor stated that one should refuse if given a choice.  But it's not clear\nwhether they were objecting to war _per se_, or objecting to Roman policies.\n\n(2) In modern warfare, it seems to be impossible to direct attacks only at\ncombatants.  Bombing, both conventional and nuclear, kills lots of civilians.\n\n(3) It's hard to tell whether any _particular_ war is justified at the time.\nOften it takes decades for the requisite information to become available\nto the general public.\n\nPlease, NO EMAIL REPLIES -- this is meant as a contribution to a public\ndiscussion, and anyone wanting to reply should also reply publicly.\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3524, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rcbear@central (Rupert C. Young)\nSubject: Re: Weitek P9000 Future Plans\nOrganization: Massachusetts Institute of Technology\nLines: 12\nDistribution: world\nNNTP-Posting-Host: central.mit.edu\n\nIn article <1qttufINN5dr@uniko.uni-koblenz.de> from [19 Apr 1993 10:12:31 GMT] you wrote:\n |> In article <1993Apr13.000531.25096@jetsun.weitek.COM> robert@weitek.COM (Robert Plamondon) writes:\n |> >In article <1q0n5pINN60m@uniko.uni-koblenz.de> hodgen@ozzy.uni-koblenz.de (Wayne Hodgen) writes:\n |> >\n |> >>To sum up, when an accelerated board with 4MB VRAM (True Colour 1280x1024)\n |> >>AND A FAST VGA SIDE is available under $500, I will buy one.\n \n SuperMac just announced a new line of PC accelerated cards that do 1024x768 in\n24bit color.  They start at $999 retail.  I don't think your wait will be very long.\n\n-Rupert\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3525, "properties": {"category": "sci.med", "text": "From: ak949@yfn.ysu.edu (Michael Holloway)\nSubject: Re: ORGAN DONATION AND TRANSPLANTATION FACT SHEET\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 32\nReply-To: ak949@yfn.ysu.edu (Michael Holloway)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, dougb@comm.mot.com (Doug Bank) says:\n\n>In article <1993Apr12.205726.10679@sbcs.sunysb.edu>, mhollowa@ic.sunysb.edu \n>|> Organ donors are healthy people who have died suddenly, usually \n>|> through accident or head injury.  They are brain dead.  The \n>|> organs are kept alive through mechanical means.\n>\n>OK, so how do you define healthy people?\n>\n>My wife cannot donate blood because she has been to a malarial region\n>in the past three years.  In fact, she tried to have her bone marrow\n>typed and they wouldn't even do that!  Why?\n>\n>I can't donate blood either because not only have I been to a malarial\n>region, but I have also been diagnosed (and surgically treated) for\n>testicular cancer.  The blood bank wont accept blood from me for 10\n>years.  \n\nObviously, it wouldn't be of much help to treat one problem by knowingly \nintroducing another.  Cancer mestastizes.  My imperfect understanding of \nthe facts are that gonadal cancer is particularly dangerous in this regard. \nI haven't done the research on it, but I don't recall ever hearing of a \ncase of cancer being transmitted by a blood transfusion.  Probably just a \ncommon sense kind of arbitrary precaution.  Transmissable diseases like \nmalaria though are obviously another story.\n\n\n-- \nMichael Holloway\nE-mail: mhollowa@ccmail.sunysb.edu (mail to freenet is forwarded)\nphone: (516)444-3090\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3526, "properties": {"category": "sci.space", "text": "From: Wingert@vnet.IBM.COM (Bret Wingert)\nSubject: Re: Level 5?\nOrganization: IBM, Federal Systems Co. Software Services\nDisclaimer: This posting represents the poster's views, not those of IBM\nNews-Software: UReply 3.1\n            <1993Apr23.124759.1@fnalf.fnal.gov>\nLines: 29\n\nIn <1993Apr23.124759.1@fnalf.fnal.gov> Bill Higgins-- Beam Jockey writes:\n>In article <19930422.121236.246@almaden.ibm.com>, Wingert@vnet.IBM.COM (Bret Wingert) writes:\n>> 3. The Onboard Flight Software project was rated \"Level 5\" by a NASA team.\n>>    This group generates 20-40 KSLOCs of verified code per year for NASA.\n>\n>Will someone tell an ignorant physicist where the term \"Level 5\" comes\n>from? It sounds like the RISKS Digest  equivalent of Large, Extra\n>Large, Jumbo... Or maybe it's like \"Defcon 5...\"\n>\n>I gather it means that Shuttle software was developed with extreme\n>care to have reliablility and safety, and almost everything else in\n>the computing world is Level 1, or cheesy dime-store software.  Not\n>surprising.  But who is it that invents this standard, and how come\n>everyone but me seems to be familiar with it?\n\nLevel 5 refers to the Carnegie-Mellon Software Engineering Institute's\nCapability Maturity Model.  This model rates software development\norg's from1-5.  with 1 being Chaotic and 5 being Optimizing.  DoD is\nbeginning to use this rating system as a discriminator in contracts.  I\nhave more data on thifrom 1 page to 1000.  I have a 20-30 page\npresentation that summarizes it wethat I could FAX to you if you're\ninterested...\nBret Wingert\nWingert@VNET.IBM.COM\n\n(713)-282-7534\nFAX: (713)-282-8077\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3527, "properties": {"category": "comp.windows.x", "text": "From: dla@se05.wg2.waii.com (Doug Acker)\nSubject: Re: build X11R5 with xlc 1.2.1 (Aix 3.2.3e)\nOrganization: western geophysical exploration products\nLines: 36\nNNTP-Posting-Host: se05.wg2.waii.com\nIn-reply-to: dla@se05.wg2.waii.com's message of 21 Apr 1993 03:49:16 GMT\n\n>>>>> On 21 Apr 1993 03:49:16 GMT, dla@se05.wg2.waii.com (Doug Acker) said:\n\tDoug> NNTP-Posting-Host: se05.wg2.waii.com\nI  am  having  a  big problem trying to build MIT X11R5 with xlc 1.2.1\n(the  one  bundled  with  AIX  3.2.3e).   Its almost the linker is not\nworking properly with shared libraries.\n\nI've built X11R5 with no problem before .. but now its all  headaches.\nFor example, the xset client complains that libXmu doesnt have a bunch\nof Xt routines and shr.o is missing (or  something  like  that).   The\nbuild of libXmu DOES link in libXt  so I am really perplexed  what  is\ngoing on.\n\n\n....following up on this, the specific error I get is:\nCould not load program ./xset \nSymbol XtVaSetValues in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtName in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtWindowOfObject in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtGetConstraintResourceList in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtDisplayToApplicationContext in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtAppSetTypeConverter in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtScreenDatabase in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtResolvePathname in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtCvtStringToFont in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtCallConverter in ../.././lib/Xmu/libXmu.a is undefined\nSymbol XtDisplayStringConversionWarning in ../.././lib/Xmu/libXmu.a is undefined\nCould not load library libXmu.a[shr.o]\nError was: Exec format error\n\n--\nDouglas L.Acker                Western Geophysical Exploration Products\n____    ____     ____          a division of Western Atlas International Inc.\n\\   \\  /   /\\   /   /\\         A Litton / Dresser Company\n \\   \\/   /  \\ /   /  \\        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n  \\  /   / \\  /   /\\   \\       Internet  :  acker@wg2.waii.com\n   \\/___/   \\/___/  \\___\\      Voice     :  (713) 964-6128\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3528, "properties": {"category": "sci.med", "text": "From: ron.roth@rose.com (ron roth)\nSubject: Selective Placebo\nX-Gated-By: Usenet <==> RoseMail Gateway (v1.70)\nOrganization: Rose Media Inc, Toronto, Ontario.\nLines: 55\n\nJB>  romdas@uclink.berkeley.edu (Ella I Baff) writes:\nJB>  \nJB>    Ron Roth recommends: \"Once you have your hypoglycemia CONFIRMED through the\nJB>                          proper channels, you might consider the following:...\"\nJB>                          [diet omitted]\nJB>  \nJB>  1) Ron...what do YOU consider to be \"proper channels\"...this sounds suspiciously\n\n  I'm glad it caught your eye. That's the purpose of this forum to\n educate those, eager to learn, about the facts of life. That phrase\n is used to bridle the frenzy of all the would-be respondents, who\n otherwise would feel being left out as the proper authorities to be\n consulted on that topic. In short, it means absolutely nothing.\n\nJB>  like a blood chemistry...glucose tolerance and the like...suddenly chemistry\nJB>  exists? You know perfectly well that this person can be saved needless trouble\nJB>  and expense with simple muscle testing and hair analysis to diagnose...no\nJB>  \"CONFIRM\" any aberrant physiology...but then again...maybe that's what you mean\"\n\n Muscle testing and hair analysis, eh?  So what other fascinating \n space-age medical techniques do you use?  Do you sit under a pyramid\n over night as well to shrink your brain back to normal after a mind-\n expanding day at your 'Save the Earth' clinic?\n\nJB>  2) Were you able to understand Dick King's post that \"90% of diseases is not thy\nJB>  evaluate the statistic you cited from the New England Journal of Medicine. Coul?\n\n Once I figure out what *you* are trying to say, I'll still have \n to wrestle with the possibility of you conceivably not being able\n to understand my answer to your question?!\n\nJB>  3) Ron...have you ever thought about why you never post in misc.health.alterna-\nJB>  tive...and insist instead upon insinuating your untrained, non-medical, often\nJB>  delusional notions of health and disease into this forum? I suspect from your\nJB>  apparent anger toward MDs and heteropathic medicine that there may be an\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ \n You little psychoanalytical rascal you!  Got me all figured out, ja? \n \nJB>  underlying 'father problem'...of course I can CONFIRM this by surrogate muscle\nJB>  testing one of my patients while they ponder my theory to see if one of their\nJB>  previously weak 'indicator' muscles strengthens...or do you have reservations\nJB>  about my unique methods of diagnosis? [......]\nJB>  \nJB>  John Badanes, DC, CA\nJB>  romdas@uclink.berkeley.edu\n\n Oh man, when are you going to start teaching all this stuff?  I'll\n bet everyone on this net must be absolutely dying to learn more about \n going beyond spinal adjustments and head straight for the mind for\n some Freudian subluxation.\n\n  --Ron--\n---\n   RoseReader 2.00  P003228: In the next world, you're on your own.\n   RoseMail 2.10 : Usenet: Rose Media - Hamilton (416) 575-5363\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3529, "properties": {"category": "comp.graphics", "text": "From: edb@dmssyd.syd.dms.CSIRO.AU (Ed Breen)\nSubject: DICTA-93\nOriginator: edb@friend.syd.dms.CSIRO.AU\nKeywords: Conference\nReply-To: edb@dmssyd.syd.dms.CSIRO.AU (Ed Breen)\nOrganization: CSIRO Division of Mathematics and Statistics, Australia\nLines: 163\n\n\n                Australian Pattern Recognition Society\n\n                         2nd CALL FOR PAPERS\n\n                               DICTA-93\n\n                          2nd Conference on -\n\n         DIGITAL IMAGING COMPUTING: TECHNIQUES AND APPLICATIONS\n\n\nLocation: Macquarie Theatre\n          Macquarie University\n          Sydney\n\nDate: 8-10 December 1993.\n\n\n   DICTA-93 is the second biennial national conference of the\nAustralian Pattern Recognition Society.\n\n   This event will provide an opportunity for any persons with an\ninterest in computer vision, digital image processing/analysis and other\naspects of pattern recognition to become informed about contemporary\ndevelopments in the area, to exchange ideas, to establish contacts and\nto share details of their own work with others.\n\n        The Following invited speakers will provide specialised\npresentations:\n\nProf Gabor T. Herman, University of Pennsylvania on Medical Imaging.\n\nProf. R.M. Hodgson, Massey University New Zealand on Computer Vision.\n\nProf. Dominique Juelin, Centre de Morphologie Mathematique, Paris on\nMathematical Morphology.\n\nProf. John Richards, Aust. Defence Force Academy, Canberra on Remote\nSensing.\n\nDr. Phillip K. Robertson, CSIRO Division of Information Technology,\nCanberra on Interactive Visualisation.\n\n\n   The conference will concentrate on (but is not limited to) the\nfollowing areas of image processing:-\n\n                * Computer Vision and Object Recognition\n                * Motion Analysis\n                * Morphology\n                * Medical Imaging\n                * Fuzzy logic and Neural Networks\n                * Image Coding\n                * Machine Vision and Robotics\n                * Enhancement and Restoration\n                * Enhancement and Restoration\n                * Visualisation\n                * Industrial Applications\n                * Software and Hardware Tools\n\n   Papers are sought for presentation at the conference and publication\nin the conference proceedings. Submission for peer review should consist\nof an extended abstract of 750-1000 words of doubled spaced text, summarizing the\ntechnical aspects of the paper and any results that will be quoted.\nFinal papers should be limited to no more than 8 pages of text and\nillustrations in camera-ready form.\n\n\n   Four (4) copies of the abstract should be sent to:\n\n\n                               DICTA-93\n                          C/- Tony Adriaansen\n                  CSIRO - Division of Wool Technology\n                                PO Box 7\n                             Ryde NSW 2112\n                               Australia\n\n\n\n                            IMPORTANT DATES\n\n                Abstract due            - 25th June 1993\n                Acceptance notified     - 27th August 1993\n                Final paper due         - 15th October 1993\n\n\n\nSOCIAL PROGRAM:\n\nThe conference dinner will be held on the Thursday 9th of December 1993.\nOther social activities are being arranged.\n\nSituated on a beautiful harbour, Sydney has many and varied places of\ninterest. The Opera House and Harbour Bridge are just two of the well\nknown landmarks. Harbour cruises, city tours to the Blue Mountains run\ndaily. We can provide further information on request.\n\n\nACCOMMODATION:\n\nAccommodation within 15 min walking distance is available, ranging from\ncollege style to 5 star Hotel facilities. Information will be supplied\nupon request.\n\n\nCONFERENCE FEES:\n\n                        before 30th Sep.        After 30th Sep.\nAPRS Members              A$220                   A$250\nAPRS Student Members      A$120                   A$150\nOthers                    A$250                   A$280\n\nConference Dinner         A$35\non Dec 9th 1993\n\n\n-------------------------------------------------------------\n                ADVANCED REGISTRATION\n\nName:\nOrganisation:\nAddress\n\nPhone:\nFax:\nemail:\n\n                - I am a current Member of APRS.\n\n                - I am not a current member of APRS.\n\n                - Please send me information on accommodation.\n\n\nI enclose a cheque for\n\n-------------------------------------------------------------\n\nPlease send the above form to\n\nDICTA-93\nC/- Tony Adriaansen\nCSIRO - Division of Wool Technology\nPO Box 7\nRyde NSW 2112\nAustralia\n\nThe cheques should be made payable to DICTA-93.\n\nFor further information contact:\n* Tony Adriaansen (02) 809 9495\n* Athula Ginigie  (02) 330 2393\n* email: dicta93@ee.uts.edu.au\n\nAPRS is a member of IAPP the International Association for Pattern\nRecognition, Inc. An affiliated member of the International Federation\nfor Information Processing.\n\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3530, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: Fortune-guzzler barred from bars!\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 44\n\nCharles Parr, on the Tue, 20 Apr 93 21:25:10 GMT wibbled:\n: In article <1993Apr19.141959.4057@bnr.ca> npet@bnr.ca (Nick Pettefar) writes:\n\n: >If Satan rode a bike (CB1000?) would you stop to help him?\n\n: Of course! We riders have to stick together, you know...Besides,\n: he'd stop for me.\n\n: Satan, by the way, rides a Vincent. So does God.\n\n: Jesus rides an RZ350, the Angels get Ariels, and the demons\n: all ride Matchless 500s.\n\n: I know, because they talk to me through the fillings in my teeth.\n\n: Regards, Charles\n: DoD0.001\n: RZ350\n: -- \n: Within the span of the last few weeks I have heard elements of\n: separate threads which, in that they have been conjoined in time,\n: struck together to form a new chord within my hollow and echoing\n: gourd. --Unknown net.person\n\n\nI think that the Vincent is the wrong sort of bike for Satan to ride.\nHonda have just brought out the CB1000 (look in BIKE Magazine) which\nlooks so evil that Satan would not hesitate to ride it.  17-hole DMs,\nLevi 501s and a black bomber jacket.  I'm not sure about the helmet,\noh, I know, one of those Darth Vader ones.  There you go.  Satan.\nAnybody seen him lately?  Just a cruisin'?\n\nGod would ride a Vincent White Lightning with rightous injection.\nHe'd wear a one-piece leather suit with matching boots, helmet and gloves.\n--\n\nNick (the Righteous Biker)  DoD 1069  Concise Oxford  New (non-leaky) gearbox\n\nM'Lud.\n                                   \nNick Pettefar, Contractor@Large.  /~~~\\   \"Teneo tuus intervallum\"\nCuurrently incarcerated at BNR,  {-O^O-}   npet@bnr.ca  '86 BMW K100RS \"Kay\"\nMaidenhead, The United Kingdom.   \\ o /    Pres. PBWASOH(UK),  BS 0002\n                                   (-\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3531, "properties": {"category": "talk.politics.guns", "text": "From: stevef@bug.UUCP (Steven R Fordyce)\nSubject: Re: Andy:  how do we stop people with a gun?\nSummary: Guns can kill: that's why I have them.\nKeywords: guns handguns rifles shotguns\nReply-To: stevef@bug.UUCP (Steven R Fordyce)\nDistribution: na\nOrganization: Handmade Designs, Salem, OR, USA\nLines: 169\n\nIn article <1993Apr7.141930.29582@freenet.carleton.ca>\nac002@Freenet.carleton.ca (Nikolaus Maack) writes:\n>Come on.   A gun kills people.  \n\nRather, people kill people with guns.  The sad truth is: sometimes that is\ngood, or at least, better than the alternative.\n\n>But let's ignore guns for defence and/or crime and look at gun accidents.\n\nOk.  There are about 1400 fatal firearm accidents per year [1], and the\nnumber has been in decline since early this century [2].  Most of these\naccidents involve rifles or shot guns, not handguns.\n\n...\n>But seriously: a gun is designed to fire a bullet.   This is not so you\n>can shoot cardboard cut outs down at the range.\n\nIn fact there are both guns and bullets designed specifically for that. \nThe idea that my Ruger Mark II Bull Barrel (a semi-auto 0.22 caliber\nhandgun) was designed to kill or hurt people, even for self defense,\nwould, I'm sure, come as a surprise to its designer.  It certainly isn't\nwhy I have it.  It certainly would hurt someone if you shot them with it,\nand might even kill them, but it is simply wrong to say it was designed to\nkill people.\n\n>This is not designed to act as a tool for home  defence where you show\n>someone  that you have a gun and they go \"Gee, perhaps I should leave\".\n\nIn fact, that is what happens most of the time.  Most self defensive uses\nof firearms don't involve firing any shots.  Most criminals would prefer\nnot to be shot, and will go to some effort not to be, including doing what\nyou say when you point a gun at them.\n\nIf you were called on to design a tool, that could be easily carried, to\nimmediately stop someone attacking you, what would it be?  A handgun is\nabout the best anyone has come up with and experience shows it does work\nthe best.[3]\n\n>No, you see the gun was designed to fire that little bullet into a human\n>body and hurt them.  Not a tough concept to swallow, for most.\n\nCertainly, no one argues that handguns (of the type we are discussing)\naren't deadly weapons.  However, it simply isn't true to say that all of\nthem were designed to kill people.  Moreover, what exactly is wrong with\nhaving deadly weapons?  There are times when it is perfectly legitimate to\nuse deadly force, e.g. in self defense.  I consider it not just my right,\nbut my duty to defend myself and my family, and that includes having and\nknowing how to use the tools to do that.\n\n\"The strongest reason for the people to retain the right to keep and bear\narms is, as a last resort, to protect themselves against tyranny in\ngovernment.\"\n\t- T. Jefferson.\n\nI think what Jefferson said is still true.\n\n>And the trouble with having such an item is often the little bullet goes\n>off into the wrong fleshy target.\n\nNot very often compared to other use.[3]\n\n>Or else Uncle Frank gets pissed and blows  away his wife.\n\nThis isn't that common either, at least when compared to other uses.  It is\nvery rare that a non-violent person will suddenly \"get-pissed\" and kill\nsomeone, gun or not.  In most cases, the people who murder have long\nhistories of violence.  If you have good reason to believe that these\npeople wouldn't kill if they didn't have a gun, feel free to present it.\n\n>Having a thing  specificly designed to kill means it is much easier to\n>kill things.  Right?\n\nRight, but there are times when killing things is called for.  I hope I\nnever have to shoot a person, but I've had to kill a number of animals from\nrodents to cows, and when I do, I don't want them to suffer any more than\nis necessary.  I prefer they die instantly, but failing that, I want them\nto drop so I can quickly finish them with the next shot, and failing that,\nI don't want them to go fast or far.  I try to choose the best weapon and\nammunition I have to try to achieve that goal for the size of animal I'm\nafter, but it doesn't always work as I plan.  Without belaboring the point,\npeople who are overly impressed with the killing or shopping power of guns,\nparticularly handguns, haven't used them much for that purpose.\n\n\n[1] Accidental deaths in 1988:\n\t48700 deaths by auto\n\t11300 deaths by fall\n\t 5300 deaths by drowning\n\t 4800 deaths by fire\n\t 4400 deaths by poison\n\t 3200 deaths by food\n\t 1400 deaths by firearm\n\n     Source: Statistics Department, National Safety Council.\n     \"Accidents Facts 1988 Edition\". National Safety Council.\n    444 N. Michigan Avenue, Chicago IL  606111  (800) 621-7619\n\n\n[2] RKBA.002 - Declining trend of accidental deaths by firearms\n           Version 1.1 (last changed on 90/04/23 at 22:28:19)\n\nDESCRIPTION\n===========\nThe accidental deaths by firearm per capita has been declining steadily \nfor almost sixty years. In 1932, the accidental deaths by firearm per \n1,000,000 people was 24.03. In 1987, it was 5.74. The decline has been \nsteady, consistent, and a fairly straight line when plotted. At the rate \nof the last sixty years, it will reach zero sometime around 2025 AD.\n\nCONCLUSION\n==========\nFirearms have been a declining factor in accidental deaths for over \nsixty years, despite rising per-capita gun ownership.\n\n\n\n[1] = Year.\n[2] = Population.\n[3] = Accidental deaths.\n[4] = Accidental deaths per 1,000,000.\n\n\n[1]   [2]          [3]    [4]       [1]   [2]          [3]    [4]   \n1932  124,840,000  3,000  24.03     1961  183,691,000  2,204  12.00\n1933  125,579,000  3,014  24.00     1962  186,538,000  2,092  11.21     \n1934  126,374,000  3,033  24.00     1963  189,242,000  2,263  11.96     \n1935  127,250,000  2,799  22.00     1964  191,889,000  2,275  11.86     \n1936  128,053,000  2,817  22.00     1965  194,303,000  2,344  12.06     \n1937  128,825,000  2,576  20.00     1966  196,560,000  2,558  13.01     \n1938  129,825,000  2,726  21.00     1967  198,712,000  2,896  14.57     \n1939  130,880,000  2,618  20.00     1968  200,706,000  2,394  11.93     \n1940  132,122,000  2,375  17.98     1969  202,677,000  2,309  11.39     \n1941  133,402,000  2,396  17.96     1970  204,879,000  2,406  11.74     \n1942  134,860,000  2,678  19.86     1971  207,661,000  2,360  11.36     \n1943  136,739,000  2,282  16.69     1972  209,896,000  2,442  11.63    \n1944  138,397,000  2,392  17.28     1973  211,909,000  2,618  12.35    \n1945  139,928,000  2,385  17.04     1974  213,854,000  2,613  12.22    \n1946  141,389,000  2,801  19.81     1975  215,854,000  2,380  11.03    \n1947  144,126,000  2,439  16.92     1976  218,035,000  2,059   9.44    \n1948  146,631,000  2,191  14.94     1977  220,239,000  1,982   9.00    \n1949  149,188,000  2,330  15.62     1978  222,585,000  1,806   8.11    \n1950  151,684,000  2,174  14.33     1979  225,055,000  2,004   8.90\n1951  154,287,000  2,247  14.56     1980  227,757,000  1,955   8.58    \n1952  156,954,000  2,210  14.08     1981  230,138,000  1,871   8.13\n1953  159,565,000  2,277  14.27     1982  232,520,000  1,756   7.55    \n1954  162,391,000  2,271  13.98     1983  234,799,000  1,695   7.22    \n1955  165,275,000  2,120  12.83     1984  237,001,000  1,668   7.04    \n1956  168,221,000  2,202  13.09     1985  239,279,000  1,649   6.89    \n1957  171,274,000  2,369  13.83     1986  241,613,000  1,600   6.62    \n1958  174,141,000  2,172  12.47     1987  243,915,000  1,400   5.74    \n1959  177,073,000  2,258  12.75           \n1960  180,671,000  2,334  12.92\n\nSources: \nU.S. Bureau of the Census, Historical Statistics of the United States, \nColonial Times to 1970, Bicentennial Edition, Part 2, Washington, DC, 1975.\n\nU.S. Bureau of the Census, Statistical Abstract of the United States: \n1982-83. (103th edition.) Washington, DC, 1982 [sic]..\n\nU.S. Bureau of the Census, Statistical Abstract of the United States: \n1989 (109th edition.)  Washington, DC, 1989.\n\n\n[3] Kleck, Gary.  \"Guns and Self-Defense: Crime Control through the Use of\nForce in the Private Sector.\"  __Social Problems__ 35(1988):4, pp. 7-9.\n-- \norstcs!opac!bug!stevef          I am the NRA              Steven R. Fordyce\nuunet!sequent!ether!stevef         . . .       The only fair tax is no tax!\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3532, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: food-related seizures?\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 27\n\nSP> From: paulson@tab00.larc.nasa.gov (Sharon Paulson)\nSP> to describe here.  I have a fourteen year old daugter who experienced\nSP> a seizure on November 3, 1992 at 6:45AM after eating Kellog's Frosted\nSP> Flakes.\n\nSP> Well, we were going along fine and the other morning, April 5, she had\nSP> a bowl of another Kellog's frosted kind of cereal, Fruit Loops (I am\n\nSP> When I mentioned what she ate the first time as a possible reason for\nSP> the seizure the neurologist basically negated that as an idea.  Now\nSP> after this second episode, so similar in nature to the first, even\nSP> he is scratching his head.\n\nThere's no data that sugar-coated cereals cause seizures.  I haven't\neven seen anything anecdotal on it.  Given how common they are eaten\n- do you know any child or adolescent who *doesn't* eat the stuff? -\nI think that if there were a relationship we would know it by now.\nAlso, there's nothing weird in those cereals.  As far as the brain\nis concerned (except for a few infantile metabolic disorders such as\ngalactosemia), sugar is sugar, regardless if it is coated on cereal,\nsprinkled onto cereal, or dissolved in soda, coffee or whatever.\n\nThere was some interest a few years ago in aspartame lowering\nseizure thresholds, but I don't believe anything ever came of it.\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n                         \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3533, "properties": {"category": "sci.space", "text": "From: edm@twisto.compaq.com (Ed McCreary)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nIn-Reply-To: nicho@vnet.IBM.COM's message of Fri, 23 Apr 93 09: 06:09 BST\nOrganization: Compaq Computer Corp\n\t<1r6aqr$dnv@access.digex.net> <C5w5zJ.HHq@murdoch.acc.Virginia.EDU>\n\t<19930423.010821.639@almaden.ibm.com>\nLines: 14\n\n>>>>> On Fri, 23 Apr 93 09:06:09 BST, nicho@vnet.IBM.COM (Greg Stewart-Nicholls) said:\nGS> How about transferring control to a non-profit organisation that is\nGS> able to accept donations to keep craft operational.\n\nI seem to remember NASA considering this for some of the Apollo\nequipment left on the moon, but that they decided against it.\n\nOr maybe not...\n\n\n--\nEd McCreary                                               ,__o\nedm@twisto.compaq.com                                   _-\\_<, \n\"If it were not for laughter, there would be no Tao.\"  (*)/'(*)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3534, "properties": {"category": "comp.graphics", "text": "From: ricky@watson.ibm.com (Rick Turner)\nSubject: Re: M-MOTION VIDEO CARD: YUV to RGB ?\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: danebury.hursley.ibm.com\nOrganization: IBM UK Labs\nLines: 3\n\nI'll contact you offline about this.\n\nRick\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3535, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: More technical details\nOrganization: AT&T Bell Laboratories\nLines: 116\n\nHere are some corrections and additions to Hellman's note, courtesy of\nDorothy Denning.  Again, this is reposted with permission.\n\nTwo requests -- first, note the roles of S1 and S2.  It appears to me\nand others that anyone who knows those values can construct the unit\nkey.  And the nature of the generation process for K1 and K2 is such\nthat neither can be produced alone.  Thus, the scheme cannot be\nimplemented such that one repository generates the first half-key, and\nanother generates the second.  *That* is ominous.\n\nSecond -- these postings are not revealed scripture, nor are they\ncarefully-crafted spook postings.  Don't attempt to draw out hidden\nmeanings (as opposed to, say, the official announcements of Clipper).\nLeave Denning out of this; given Hellman's record of opposition to DES,\nwhich goes back before some folks on this newsgroup knew how to read, I\ndon't think you can impugn his integrity.\n\nOh yeah -- the folks who invented Clipper aren't stupid.  If you think\nsomething doesn't make sense, it's almost certainly because you don't\nunderstand their goals.\n\n\t\t--Steve Bellovin\n\n-----\n\nDate: Sun, 18 Apr 93 07:56:39 EDT\nFrom: denning@cs.georgetown.edu (Dorothy Denning)\nSubject: Re:  Clipper Chip\nTo: (a long list of folks)\n\nI was also briefed by the NSA and FBI, so let me add a few comments to\nMarty's message:\n\n        The Clipper Chip will have a secret crypto algorithm embedded in \n\nThe algorithm operates on 64-bit blocks (like DES) and the chip supports\nall 4 DES modes of operation.  The algorithm uses 32 rounds of scrambling\ncompared with 16 in DES.\n\n\tIn addition to the system key, each user will get to choose his \n\tor her own key and change it as often as desired. Call this key \n\tplain old K. When a message is to be sent it will first be \n\nK is the session key shared by the sender and receiver.  Any method\n(e.g., public key) can be used to establish the session key.  In the\nAT&T telephone security devices, which will have the new chip, the key\nis negotiated using a public-key protocol.\n \n\tencrypted under K, then K will be encrypted under the unit key UK, \n\tand the serial number of the unit added to produce a three part \n\tmessage which will then be encrypted under the system key SK \n\tproducing\n\n\t     E{ E[M; K], E[K; UK], serial number;  SK}\n\nMy understanding is that E[M; K] is not encrypted under SK (called the\n\"family key\") and that the decrypt key corresponding to SK is held by\nlaw enforcement.  Does anyone have first hand knowledge on this?  I\nwill also check it out, but this is 7am Sunday so I did not want to wait.\n\n        The unit key \n\twill be generated as the XOR of two 80-bit random numbers K1 \n\tand K2 (UK=K1+K2) which will be kept by the two escrow \n\nThe unit key, also called the \"chip key,\" is generated from the\nserial number N as follows.  Let N1, N2, and N3 be 64 bit blocks\nderived from N, and let S1 and S2 be two 80-bit seeds used as keys.\nCompute the 64-bit block \n\n        R1 = E[D[E[N1; S1]; S2]; S1] \n\n(Note that this is like using the DES in triple encryption mode with\ntwo keys.)  Similarly compute blocks R2 and R3 starting with N2 and N3.\n(I'm unlear about whether the keys S1 and S2 change.  The fact that\nthey're called seeds suggests they might.)  Then R1, R2, and R3 are\nconcatenated together giving 192 bits.  The first 80 bits  form K1 and\nthe next 80 bits form K2.  The remaining bits are discarded.\n\n\tauthorities. Who these escrow authorities will be is still to be \n\tdecided by the Attorney General, but it was stressed to me that \n\tthey will NOT be NSA or law enforcement agencies, that they \n\tmust be parties acceptable to the users of the system as unbiased. \n\nMarty is right on this and the FBI has asked me for suggestions.\nPlease pass them to me along with your reasons.  In addition to Marty's\ncriteria, I would add that the agencies must have an established record\nof being able to safeguard highly sensitive information.  Some suggestions\nI've received so far include SRI, Rand, Mitre, the national labs (Sandia,\nLANL, Los Alamos), Treasury, GAO.\n\n\tWhen a court order obtains K1 and K2, and thence K, the law \n\tenforcement agency will use SK to decrypt all information \n\tflowing on the suspected link [Aside: It is my guess that \n\tthey may do this constantly on all links, with or without a \n\tcourt order, since it is almost impossible to tell which links \n\tover which a message will flow.] \n\nMy understanding is that there will be only one decode box and that it\nwill be operated by the FBI.  The service provider will isolate the\ncommunications stream and pass it to the FBI where it will pass through\nthe decode box, which will have been keyed with K.\n\n\tfor \"the wiretap authorizations.\" When Levy asked for\n\tthe details so he could review the cases as required by\n\tlaw, the agent told him that his predecessors just turned\n\tover 40-50 blank, signed forms every time. Levi did not\n        comply and changed the system, but the lesson is clear: \n        No single person or authority should have the power to\n        authorize wiretaps\n\nNo single person does, at least for FBI taps.  After completing a mound\nof paperwork, an agent must get the approval of several people on a chain\nthat includes FBI legal counsel before the request is even taken to the\nAttorney General for final approval.\n\nDorothy Denning\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3536, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: hlu@eecs.wsu.edu (HJ Lu)\nSubject: Re: Booting from B drive\nOrganization: School of EECS, Washington State University\nLines: 17\n\nIn article <1993Apr18.185226.27273@mcshub.dcss.mcmaster.ca>, yee@nimios.eng.mcmaster.ca (Paul Yee) writes:\n|> In article <khan0095.735001731@nova> khan0095@nova.gmi.edu (Mohammad Razi Khan) writes:\n|> >glang@slee01.srl.ford.com (Gordon Lang) writes:\n|> >\n|> >>David Weisberger (djweisbe@unix.amherst.edu) wrote:\n|> >>: I have a 5 1/4\" drive as drive A.  How can I make the system boot from\n|> >>: my 3 1/2\" B drive? \n|> \n|> [intermediate reply suggesting cable switch deleted]\n|> \n\n\nI heard boot_b.zip could do exactly what you wanted without touching\nanything. Check it out with archie.\n\n\nH.J.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3537, "properties": {"category": "soc.religion.christian", "text": "From: gideon@otago.ac.nz (Gideon King)\nSubject: Should Christians fight? / Justifiable war\nOrganization: University of Otago\nLines: 144\n\nI posted this a couple of weeks ago, and it doesn't seem to have appeared  \non the newsgroup, and I haven't had a reply from the moderator. We were  \nhaving intermittent problems with our mail at the time. Please excuse me  \nif you have seen this before...\n\nShould Christians fight?\n\nLast week Alastair posted some questions about fighting, and whether there  \nare such things as \"justifiable wars\". I have started looking into these  \nthings and have jotted down my findings as I go. I haven't answered all  \nhis questions yet, and I know what I have here is on a slightly different  \ntack, but possibly I'll be able to get into it more deeply later, and post  \nsome more info soon.\n\nOur duty to our neighbour:\n\nDo good to all men (Gal 6:10)\nLove our neighbour as ourselves (Matt 22:39)\n\nAct the part of the good Samaritan (Luke 10) toward any who may be in  \ntrouble. We will therefore render every possible assistance to an injured  \nman, and therefore should not be part of any organisation which causes  \npeople harm (even medical corps of the army etc).\n\nChristians are by faith \"citizens of the commonwealth of Israel\"  \n(Ephesians 2:11-12), and also recognise that \"God rules in the kingdoms of  \nmen\", and therefore we should not be taking part in any of the struggles  \nof those nations which we are not part of due to our faith.\n\nWe are to be \"strangers and pilgrims\" amongst the nations, so we are just  \npassing through, and not part of any nation or any national aspirations  \n(this can also be applied to politics etc, but that's another story). We  \nare not supposed to \"strive\" or \"resist evil\" (even \"suffer yourselves to  \nbe defrauded\") it is therefore incosistent for us to strive to assist in  \npreserving a state which Christ will destroy when he returns to set up  \nGod's kingdom.\n\nOur duty to the state.\n\n\"Render therefore unto Caesar the things which be Caesar's and unto God  \nthe things which be God's\" (Luke 20:25).\n\"Let every soul be subject unto the higher powers. For there is no power  \nbut of God; the powers that be are ordained of God. Whosoever resisteth  \nthe power, resisteth the ordinance of God\" (Rom 13:1-2).\n\"Submit yourselves to every ordinance of man for the Lord's sake; whether  \nit be to king as supreme... for so is the will of God that with well doing  \nye may put to silence the ignorance of foolish men\" (1 Pet 2:13-15)\n\nThese scriptures make it clear that submission to the powers that be is a  \ndivine command, but it is equally clear from Acts 5:19-29 that when any  \nordinance of man runs counter to God's law, we must refuse submission to  \nit. The reason for this is that we are God's \"bond servants\" and His  \nservice is our life's task. An example of the type of thing is in Col  \n3:22-23 where bondservants were to \"work heartily as unto the Lord\" - so  \nalso we should work as if our boss was God - i.e. \"Pressed down, shaken  \ntogether, and running over\"... oops - a bit of a side track there...\n\nIn the contests between the nations, we are on God's side - a side that is  \nnot fighting in the battle, but is \"testifying\" to the truth.\n\nWhen we believe in God and embrace His promises, we become \"fellow  \ncitizens with the Saints and of the Household of God\", and are no longer  \ninterested in associations of the world. Think of this in relation to  \nunions etc as well. Paul tells us to \"lay aside every weight\" that we may  \nrun \"the race that is set before us\", and if we are wise, we will discard  \nany association which would retard our progress - \"Thou therefore endure  \nhardness as a good soldier of Jesus Christ. No man that warreth entangleth  \nhimself with the affairs of this life, that he may please him who hath  \nchosen him to be a soldier\" (2 Tim 2:3-4).\n\nOne of these entanglements he warns about is \"be ye not unequally yoked  \ntogether with unbelievers\". One of the obvious applications of this is  \nmarriage with unbelievers, but it also covers things like business  \npartnerships and any other position where we may form a close association  \nwith any person or persons not believing the truth about God (in this case  \nthe army). The principle comes from Deut 22:10 - remember that as well as  \nthem being different animals of different strengths, one was clean and one  \nunclean under the law. These ideas are strongly stressed in 2 Cor 6:13-18  \n- I suggest you read this. The yoking also has another aspect - that of  \nservitude, and Jesus says \"take my yoke upon you\", so we are then yoked  \nwith Christ and cannot be yoked with unbelievers. We have already seen  \nthat we are bondservants of Christ, and Paul says \"become not ye the  \nbondservants of men (1 Cor 7:23 RV).\n\nAn example from the Old Testament: the question is asked in 2 Chr 19:2  \n\"Shouldest thou help the ungodly...?\". The situation here is a good  \nexample of what happens when you are yoked together with unbelievers.  \nJehoshaphat was lucky to escape with his life. Here are the facts:\n1. He had made an affinity with Ahab, who had \"sold himself to work  \nwickedness before the Lord\" (1 Kings 21:25).\n2. When asked by Ahab to form a military alliance, he had agreed and said  \n\"I am as thou art, my people as thy people\" (1 Kings 22:4) - an unequal  \nyoking.\n3. He sttod firm in refusing the advice of the false prophets and insisted  \non hearing the prophet of the Lord (trying to do the right thing), he  \nfound that he was yoked and therefore couldn't break away from the evil  \nassociation he had made.\n\nGod says to us \"Come out from among them and be ye separate, and touch not  \nthe unclean thing, and I will receive you and ye shall be my sons and  \ndaughters\" (2 Cor 6:17).\n\nThis is more or less what I have found out so far - I'm still looking into  \nit, as I don't think I've answered all the questions raised by Alastair  \nyet. Heres a summary and a few things to think about:\n\nThe Christian in under command. Obedience to this command is an essential  \nfactor in his relationship with Christ (John 15:10,14).\n\nTotal dedication to this course of action is required (Romans 12:1-2).\n\nDisobedience compromises the close relationship between Christ and his  \nfollowers (1 Pet 2:7-8).\n\nWe are to be separated to God (Rom 6:4). This involves a master-servant  \nrelationship (Rom 6:12,16).\n\nNo man can serve two masters (Matt 6:24,13,14).\n\nAll that is in the 'Kosmos' is lust and pride - quite opposed to Gos (1  \nJohn 2:16). Christs kingdom is not of this world (i.e. not worldly in  \nnature) - if it was, his servants would fight to deliver him. If Christ is  \nour master and he was not delivered by his servants because his kingdom  \nwas not of this world, then his servants cannot possibly fight for another  \nmaster.\n\nStrangers and pilgrims have no rights, and we cannot swear allegiance to  \nanyone but God.\n\nThe servant of the Lord must not war but be gentle to all (2 Tim 2:24) -  \nthis does not just apply to war, but also to avoiding strife throughout  \nour lives. There is a war to be waged, not with man's weapons (2 Cor  \n10:3-4), but with God's armour (Eph6:13-20).\n\nI'll probably post some more when I've had time to look into things a bit  \nfurther.\n\n--\nGideon King                         | Phone +64-3-479 8347\nUniversity of Otago                 | Fax   +64-3-479 8529\nDepartment of Computer Science      | e-mail gideon@farli.otago.ac.nz\nP.O. Box 56                         |\nDunedin                             | NeXT mail preferred!\nNew Zealand                         |                         \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3538, "properties": {"category": "rec.motorcycles", "text": "From: jjd1@cbnewsg.cb.att.com (james.j.dutton)\nSubject: Re: Twit Bicyclists (was RE: Oh JOY!)\nOrganization: AT&T\nDistribution: na\nLines: 20\n\nIn article <1993Apr2.045903.6066@spectrum.xerox.com> cooley@xerox.com writes:\n>Yo, ASSHOLES.  I hope you are all just kidding\n>because it's exactly that kind of attidue that gets\n>many a MOTORcyclist killed:  \"Look at the leather\n>clad poseurs!  Watch how they swirve and\n>swear as I pretend that they don't exist while\n>I change lanes.\"\n>\n>If you really find it necesary to wreck others\n>enjoyment of the road to boost your ego, then\n>it is truely you who are the poseur.\n>\n>--aaron\n\nDisgruntled Volvo drivers. What are they rebelling against?\n \n================================================================================\n Steatopygias's 'R' Us.          doh#0000000005 That ain't no Hottentot.\n Sesquipedalian's 'R' Us. ZX-10. AMA#669373 DoD#564. There ain't no more.\n================================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3539, "properties": {"category": "misc.forsale", "text": "From: df456@cleveland.Freenet.Edu (David Tsao)\nSubject: 486DX33, 4mRAM, 64kCACHE, 130mHD ->$1,298\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 18\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nVESA local bus motherboard,\n4MB RAM,\n64K cache,\n1.2 & 1.44 Floppy,\n130 MB Hard Drive,\nIDE controller (2HD&2FD)\n2S/1P/1G\nLocal Bus 1MB SVGA Video Card,\n14\" SVGA Monitor (.28dpi)\nMini Tower, 101-key Keyboard\n\nDavid Tsao,\ncstsao@sam.cs.olemiss.edu\n601-234-0969\nor\nBenjamin Chen\n714-257-1138\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3540, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Another NYTimes Yellow-Sheet Editorial (4/4/93)\nOrganization: Stratus Computer, Inc.\nLines: 23\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1pmol6INNod9@gap.caltech.edu>, arc@cco.caltech.edu (Aaron Ray Clements) writes:\n> \n> >*  Thanks to the N.R.A., the A.T.F. is prohibited from researching the\n> >effectiveness of using taggants in explosives, Taggants are a cheap\n> >and technologically feasible microscopic additive that would help\n> >investigators at crime scenes - like the World Trade Center bombing\n> >- trace the explosives involved.\n> \n> I want this man to tell me how in the hell you can take the \n> explosives used in the WTC bombing, considering that the \n> consensus seems to be that the explosive was a fertilizer-based\n> one. \n\nProper counter to this claim:  \"Forensic analysis of the WTC bomb by\nmeans of taggants would have been as impossible as semantic analysis\nof NYT editorials by means of taggants -- the difficulty in both cases\nbeing to have persuaded the bull to consume the taggants before \nproduction of either item.\"\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.161+0000", "event": "documents", "entityId": 3541, "properties": {"category": "rec.autos", "text": "From: smorris@sumax.seattleu.edu (Steven A. Morris)\nSubject: Re: wife wants convertible\nOrganization: Addiction Studies Program, Seattle University\nLines: 15\nNNTP-Posting-Host: sumax.seattleu.edu\n\nIf you hold off, there are a number of interesting convertibles coming\nto market in the next few years.\n\nThe new LeBaron will be based on the Mitsubishi Galant, which should\nbe an improvement over the current model.\n\nThe new PL compact will have a convertible option (also a chrysler\nproduct)\n\nKia, makers of the Ford Festiva is planning a larger convertible.\n-- \nSteve Morris, M.A.    : Internet: smorris@sumax.seattleu.edu\nAddiction Studies Pgm : uucp    :{uw-beaver,uunet!gtenmc!dataio}!sumax!smorris\nSeattle University    : Phone   : (206) 296-5350 (dept) or 296-5351 (direct)\nSeattle, WA 98122_____:________________________________________________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3542, "properties": {"category": "talk.politics.mideast", "text": "From: bill_paxton@fourd.com\nSubject: Ajerk\nOrganization: 4th Dimension BBS\nLines: 7\nNNTP-Posting-Host: cs.utexas.edu\n\nYou a good case for rights to abortion.\n\n********************************************************************\nSystem: fourd.com                                Phone: 617-494-0565\nCute quote:  Being a computer means never having to say you're sorry\n********************************************************************\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3543, "properties": {"category": "sci.crypt", "text": "From: sphughes@sfsuvax1.sfsu.edu (Shaun P. Hughes)\nSubject: Re: Organized Lobbying for Cryptography\nOrganization: San Francisco State University\nDistribution: inet\nLines: 27\n\nIn article <1r3jgbINN35i@eli.CS.YALE.EDU> jgfoot@minerva.cis.yale.edu writes:\n>Tarl Neustaedter (tarl@coyoacan.sw.stratus.com) wrote:\n>\n>: It means that the EFF's public stance is complicated with issues irrelevant\n>: to the encryption issue per se. There may well be people who care about\n>: the encryption issue who don't care to associate themselves with the\n>: network erotica issue (or may even disagree with the EFF's position).\n>\n>Perhaps these encryption-only types would defend the digitized porn if it\n>was posted encrypted?\n>\n>These issues are not as seperable as you maintain.\n>\n\nNow why would anyone \"post\" anything encrypted? Encryption is only of \nuse between persons who know how to decrypt the data.\n\nAnd why should I care what other people look at? \n\nWhat does concern me is the continued erosion of my constitutional\nrights. ( Amendments I, II, IV, and V to note a few. )\n\n-- \n  Shaun P. Hughes                          \"Facts are Stupid Things.\"\n  sphughes@sfsuvax1.sfsu.edu                Ronald Reagan\n                                            Republican National\n  Finger for PGP 2.2 Public Key             Convention 1988\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3544, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Malpractice Not the Issue (Was Re: 8 MYTHS about National Health...)\nSummary: Malpractice insurance and litigation don't explain US health probs\nOrganization: Free the Barbers, Inc.\nLines: 46\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <C5p0Hx.39E@acsu.buffalo.edu> v140pxgt@ubvmsb.cc.buffalo.edu (Daniel B Case) writes:\n>In article <1993Apr18.001116.19872@news.columbia.edu>, gld@cunixb.cc.columbia.edu (Gary L Dare) writes...\n>>The difference in the litigation environment is reflected in the fees.\n>> \n>>Lack of defensive medicine and near-absence of malpractice is really\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n>>why we spend less using the most expensive approach of pure insurance\n>~~~~~~~~~~~~~~~~~~\n>\n>Then why do we really need national health insurance then? \n>Wouldn't it just make more sense to find some way to cut down \n>on the cost of malpractice insurance?\n\nIt would if malpractice and \"defensive medicine\" were the main\nfactors in explaining spiralling US health care costs, but they aren't.\n\nAlthough Gary is correct in noting that malpractice-related problems are\ngreater in the US than Canada, they by no means account for the overall\ndifference in health care costs.  (They do account for a somewhat larger\nportion of the difference in physicians' gross income in the two countries.)\n\nSome facts.  Malpractice insurance and awards account for less than 1% of\ntotal health care costs in the US.  In 1991, according to a survey of \nphysicians conducted by a national medical journal physicians averaged\npaying 3.7% of their practice receipts in malpractice insurance.  \nMalpractice insurance premiums and malpractice awards peaked in 1985;\nthey've declined significantly since then.  At the same time, health\ncare costs have increased more than any period in history.\n\nAs far as \"defensive medicine\" is concerned, the AMA estimates that its\ntotal impact is about $7 billion per year.  That's about 8% of the total\ncurrent INCREASE in health care costs -- and the estimate is from a group\nthat could be expected to overestimate the impacts of defensive medicine\non health care.\n\nAs small a problem as this is in the overall scheme of things, however,\nClinton has been on record for a long time favoring an indemnification\nof MD's against malpractice suits if they follow procedures set by their\nspecialties.  This would eliminate most, if not all frivolous suits\nwhile retaining the ability to sue for true malpractice.\n\njsh\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3545, "properties": {"category": "comp.sys.mac.hardware", "text": "From: walsteyn@fys.ruu.nl (Fred Walsteijn)\nSubject: Re: built-in video problems on Mac IIsi !!??!!\nOrganization: Physics Department, University of Utrecht, The Netherlands\nLines: 24\n\nIn <1993Apr19.164611.1018@fys.ruu.nl> walsteyn@fys.ruu.nl (Fred Walsteijn) writes:\n\n>I've seen the following problem om three Mac IIsi machines\n>all with 17 Mb RAM installed (70 or 80 ns SIMMs).\n\n>If the contents of a window are being calculated and updated\n>a lot of strange horizontal lines are temporarily generated\n>on the screen.  The lines translate to the top of the screen and\n>have a slightly lower brightness than their surroundings (they\n>are a few millimeters apart).\n>I admit that they are vague, but they can still be distinguished clearly,\n>especially if the environment (i.e. the rest of the room) is a bit dark.\n>Applications which produce this effect are:\n>- the previewer of DirectTeX 1.2 (i.e. DVIReader 1.2)\n>- Kaleidagraph 2.1.1/FPU\n\nAnother program which produces this effect is:\n- SpyGlass Transform 2.1 (while contouring a big 257*257 array).\n\nThanks for any information about this problem,\n-----------------------------------------------------------------------------\nFred Walsteijn                                | Internet: walsteyn@fys.ruu.nl\nInstitute for Marine and Atmospheric Research | FAX:      31-30-543163\nUtrecht University, The Netherlands           | Phone:    31-30-533169\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3546, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: louray@seas.gwu.edu (Michael Panayiotakis)\nSubject: Re: More Cool BMP files??\nOrganization: George Washington University\nDistribution: usa\nLines: 27\n\n>\n>\n>>BEGIN ----------------------- CUT HERE ---------------\n>>begin 666 ntreal.bmp\n>>M0DTV5P<      #8$   H    ( ,  %@\"   !  @                     \n>>M            $    ! @@P![( @ \"!A> #!_F   #CD ,56# #D.  !=>_D \n>>M4PA: &4H@P\"L,1  $U); &N+L0 ($!@ +4WA !,J.0 B/%H 9TJ3 $KKZP 0\n>>M,;, TD4I /ZGB0!)#UH (0A.  \"6E@ I !@ 4B!I \" !  !BBZX #!E1 )BV\n>\n>Deleted a lot of stuff!!!!!!!\n>How do you convert this to a bit map???\n\nYou're supposed to delete everything above the \"cut here\" mark, and\nbelow the lower cut here mark, and uudecode it.  but \n*I was not able to: unexpected end of file encountered at the last line.\n\ncould you please re-post it, or tell be what I'm doing wrong?\n\nthanks,i.a.,\nMickey\n\n\n-- \npe-|| ||  MICHAEL PANAYIOTAKIS: louray@seas.gwu.edu \nace|| ||                                   ...!uunet!seas.gwu.edu!louray\n|||| \\/|  *how do make a ms-windows .grp file reflect a HD directory??*\n\\\\\\\\   |  \"well I ain't always right, but I've never been wrong..\"(gd)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3547, "properties": {"category": "misc.forsale", "text": "From: pfc@jungle.genrad.com (Paul F. Cappucci)\nSubject: Seagate Hard Drive Forsale\nOrganization: GenRad, Inc.\nLines: 10\nNNTP-Posting-Host: jungle.genrad.com\n\n\n\n\nBrand new never been used Seagate ST351 A/X 40meg hard drive forsale.\n\nPaid $135 (includes mounting brackets).\n\nI bought it and then ended up buying a new computer.\n\nBRO takes it.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3548, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: heinboke@tnt.uni-hannover.de (Andreas Heinbokel)\nSubject: LOOKING for AD PC-Board\nKeywords: AD\nReply-To: heinboke@tnt.uni-hannover.de\nOrganization: Universitaet Hannover, Theoretische Nachrichtentechnik\nLines: 43\n\n\n\nThis is for a friend of mine. Please send answers directly to him (E-Mail\nadress see below )!\n\n\nHIGHSPEED  ANALOG-DIGITAL PC-BOARD\n\nHello LAdies and Gentleman !\n\nI am looking for a highspeed A/D PC-Board with a sampling rate above 250 MHz an a\nresolution of 8-bit. The sampling rate can be arranged by an interleave mode where\nthe time equivalent sampling yields 2, 4 or 8 times higher sampling rate than\nthe A/D-Converter uses in non interleave mode.\n\nThe board must content an A/D-Converter similar to Analog Devices AD 9028 or \nAD 9038 or if available a faster on.\n\nIf you a PC-Board (16-bit slot, ISA) with this specification or better, please\nsend me an EMail\n\nhansch@cdc2.ikph.uni-hannover.dbp.de\n\nor a Telefax to: ++49 / 511 / 7629353\n\n\nThanks in advance for your help !\n\nSincerely\n\n     Matthias Hansch\n     IKPH, University of Hannover, Germany\n\n\n\n---\n\nAndreas Heinbokel\n\nheinboke@tnt.uni-hannover.de\n\n*** ... all wisdom is print on t-shirts ***\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3549, "properties": {"category": "comp.windows.x", "text": "From: dyoung@media.mit.edu (David Young)\nSubject: Q: Colormaps with dialog shells\nOrganization: MIT Media Laboratory\nLines: 17\n\n\nI have an applicationShell which uses a colormap created with\nXCreateColormap() and uses all of the colors available for my 8-bit\ndisplay.  When I move the cursor over the window I get the \"Technicolor\nEffect\" - which is fine.  Basically, my program works.\n\nMy problem/question is: When I popup a dialogShell to prompt the user for\nsome input I want the XmNdialogStyle to be set to\nXmDIALOG_PRIMARY_APPLICATION_MODAL.  The result is that if my cursor is\nover the dialogShell I get my colormap, but if the cursor is over the\napplicationShell (or any window other than the dialogShell) I get the\ndefault colormap.  But I'd like it so that if my cursor is over _any_\nwindow of my application, I get my colormap.\n\nAny suggestions?  Thanks,\n\ndavid,\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3550, "properties": {"category": "rec.autos", "text": "From: matmcinn@nuscc.nus.sg (Matthew MacIntyre at the National University of Senegal)\nSubject: Re: WARNING.....(please read)...\nOrganization: National University of Singapore\nX-Newsreader: Tin 1.1 PL4\nLines: 12\n\nmchaffee@dcl-nxt07 (Michael T Chaffee) writes:\n: significantly less than the value of many automobiles.  And for those who will\n: argue that the animals out there stealing cars and everything else (not to\n: mention committing COMPLETELY senseless acts of violence, such as rape) cannot\n: be valued in terms of money because they are human beings, I submit that they\n: are not human beings.  Jim Callison, I think, is on the right track.  And \n\nAbsolutely. A scratch on my car bothers me more than the death of any\nnumber of scum. All of you feel the same way---you just won't admit it.\nWhen are people going to realise that the mere fact that a piece of flesh\nmoves and has the approximate shape of a human being does not in itself\nmean that it has \"rights\"?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3551, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: galpin@cats.ucsc.edu (Dan)\nSubject: Re: BusLogic 542B questions\nOrganization: University of California; Santa Cruz\nLines: 42\nNNTP-Posting-Host: am.ucsc.edu\n\n\nIn article <tigerC5K9oy.Gx@netcom.com> tiger@netcom.com (Tiger Zhao) writes:\n>goyal@utdallas.edu (MOHIT K GOYAL) writes:\n>>Can anyone tell me if this card works with the March OS/2 2.1 beta?\n>\n> I believe so, since the Buslogic cards have proven to be very \n>reliable in OS/2 2.0....\n>\nThe BusLogic cards have an OS/2 2.0 driver that does work with the March 2.1\nbeta. Support for the BusLogic cards is not included with OS/2 2.0 any longer.\nIf you wish to install the beta from the CD/ROM, you will need to REM out the\nAdaptec device drivers, as they have a nasty tendency to crash the BusLogic\ncards when OS/2 attempts to use them. (Thanks Adaptec!) \n\nSo you add the BusLogic drivers to the config.sys on the CD-ROM boot disk, and\nREM out the Adaptec drivers.\n\nThen you install the whole 1st half of the Beta.. and it won't work! IBM\nnicely copies in the Adaptec drivers once again. (Thanks IBM!) So.. REM out\nthe Adaptec drivers once more.. and reboot. If you have everything in the\nright order.. it will work.\n\nThings are pretty smooth through the rest of the installation.. except OS/2\nwill try to install the Adaptec SCSI drivers once again at the end... so.. you\nare off to more REM statements and more fun. \n\nThe BT 542Bk comes with drivers and costs the same as the Adaptec cards that\ndo not come with drivers. The DOS drivers work great. This card can easily be\nconfigured to work with 8 different sets of I/O ports (and you can use\nmultiple host adapters in one machine) If you get a new card.. it will also be\nable to support up to 8 GB drives under DOS.\n\nHope this helps..\n\n- Dan\n\n\n-- \n******************************************************************************\n* Dan Galpin                                            galpin@cats.ucsc.edu *\n******************************************************************************\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3552, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Keith Schneider - Stealth Poster?\nOrganization: California Institute of Technology, Pasadena\nLines: 26\nNNTP-Posting-Host: lloyd.caltech.edu\n\ncmtan@iss.nus.sg (Tan Chade Meng - dan) writes:\n\n>I somewhat agree with u.  However, what it comes to (theist) religion, \n>it's a different matter.  That's because religion is like a drug, once u\n>use it, it's very difficult to get out of it.  That's because in\n>order to experience a religion, u necessarily have to have blind faith,\n>and once u have the blind faith, it's very diffcult for you to reason\n>yourself back to atheism again.\n>Therefore, it's unreasonable to ask people to try religion in order to\n>judge it.  It's like asking people to \"try dying to find out what\n>death is like\".\n\nWell now, we can't judge death until we are dead right?  So, why should\nwe judge religion without having experienced it?  People have said that\nreligion is bad by any account, and that it is in no way useful, etc.,\nbut I don't totally agree with this.  Of course, we cannot really say\nhow the religious folk would act had they not been exposed to religion,\nbut some people at least seemed to be helped in some ways by it.\n\nSo basically, we can not judge whether religion is the right route for\na given individual, or even for a general population.  We can say that\nit is not best for us personally (at least, you can choose not to use\nreligion--might be hard to try to find out its benefits, as you state\nabove).\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3553, "properties": {"category": "comp.graphics", "text": "From: rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter)\nSubject: Re: Please Recommend 3D Graphics Library F\nOrganization: Boeing\nLines: 13\n\nSorry about not mentioning platform... my original post was to mac.programmer,\nand then decided to post here to comp.graphics.\n\nI'd like the 3D software to run on primarily Mac in either C, Object Pascal\n(Think or MPW). But, I'll port to Windows later, so a package that runs on\nMac and has a Windows version would be ideal.\n\nI'm looking for a package that has low upfront costs, and reasonable licensing\ncosts... of course :)\n\nBobC\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3554, "properties": {"category": "rec.sport.baseball", "text": "From: kkeach@pomona.claremont.edu\nSubject: three homer games and Padres notes\nReply-To: kkeach@pomona.claremont.edu\nOrganization: Pomona College\nLines: 36\n\n\tTo all those out there wondering about who holds the record for three\nhomer games ina career, the answer is Johnny Mize in his career with the \nCards and the Yanks.  He hit three 6 times.  I am almost sure about this. In\ncase anyone is wondering, the record for two homer games is held by Babe\nRuth and is 72.  Mize's record may not last for much longer because of Juan\nGonzalez.  He has at least three games with three and maybe 4.  I know that \nhe had at least two last year and one as a rookie.  I don't have any record\nbooks at college for me to check on though.  Please let me know, okay, if I \nam wrong.  \n\tOnto the Padres.  Is there anyone out there who follows them?- especial-ly those with access to local news?  I don't here anything in Los Angeles and I\ncan't get McPaper consistently around here.  \ncomment:  It looks as though San Diego has gotten the better of the two deals\nthat brought Bell and Plantier to the Padres.  It has also forced the team to use Darrell Shermann.  Of course, Plantier could get injured again or he could \nhit with the power of 91 but with a lower average.  Bell always could finish\nwith .240 and 15-18 hrs-essentially Jerald Clark's numbers.  \nleadoff comment:  Craig Shipley??????  I get on base 29% of the time if I'm \nlucky at leadoff?  Hell, of the usual starters, use Gwynn.  He's got 4 steals\nalready.  Is Shipley starting because of an injury to Stillwell, though?  I\nhaven't seen Stillwell's name in any box scores.  Anyway unless you are going\nto use Shermann at leadoff then use Gwynn.  He at lesat gets on base and this\nyear is stealing bases.\nSheffield comment:  Though the season is early and stats mean nothing.\nWitness Phillips batting .500+ currently.  But does Sheffield have an injury,\nor anythingelse wrong with him.  I just don't hear anything.\nAndy Benes:  Is he pitching like he did in the second half of '91?   or is \nthis a flash of promise that he throws out evrey now and then?   Has anyone \nseen him pitch the two good games?\nscore for today, Sunday april 18:  Padres 10, St Louis 6.  Padres sweep the\nCardinals as Gwynn goes 5 for 5 with a homer.  Sheffield and Tueful also homer\nin a winning cause.  \n\t\t\t\tThanks for listening-reading\n\t\t\t\tany comments????\n\n\t\tKelly Keach\n\t\tkkeach@pomona.claremont.edu\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3555, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Peter Hansen <pgmoffc@BNR.ca>\nSubject: Re: SIMM vs DRAM\nX-Xxdate: Tue, 20 Apr 93 08:39:46 GMT\nNntp-Posting-Host: bcarm382\nOrganization: BNR\nX-Useragent: Nuntius v1.1.1d17\nLines: 24\n\nIn article <27988.2BD32F3F@zeus.ieee.org> Arthur Greene,\nArthur.Greene@p6.f204.n2603.z1.fidonet.org writes:\n>Can anyone tell me what the difference is between a 256K DRAM chip and a\n>256K SIMM? I need the former (I think) to add memory to my Laserwriter\n>LS. Someone is offering to sell me 256K SIMMS he removed from an SE, but\n>I have a feeling this may not be the correct form of memory. The sockets\n>in the Laserwriter look like they want the spidery-shaped chips (there\n>are 4 sockets, each with, as I recall, 20 pins, arranged in two rows of\n10). \n>Believe it or not, I've never actually seen a SIMM. Help appreciated.\n\n  A 256K DRAM chip is a 256 kilobit chip whereas a 256K SIMM is a 256\nkilobyte memory module. The SIMM is a PCB with a 30 pin connector edge\nand on the SIMM are 8 256 kilobit DRAM chips (making the total memory 256\nKBytes.\n \n  You are correct assuming that SIMMs will not fit into a LaserWriter.\nApple printers either require 64 pin SIMMs like those in the Mac IIfx or\nspecial memory chips. Contact your Apple dealer to find out exactly what\nkind of chips you need.\n\nPeter Hansen\nBell Northern Research\npgmoffc@BNR.ca\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3556, "properties": {"category": "soc.religion.christian", "text": "From: PETCH@gvg47.gvg.tek.com (Chuck)\nSubject: Daily Verse\nLines: 4\n\n\n   The God of peace will soon crush Satan under your feet. \n    The grace of our Lord Jesus be with you. \nRomans 16:20\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3557, "properties": {"category": "sci.electronics", "text": "From: loving@lanai.cs.ucla.edu (Mike Loving)\nSubject: specs on eprom data formats\nNntp-Posting-Host: lanai.cs.ucla.edu\nOrganization: UCLA, Computer Science Department\nLines: 10\n\n\nI need the specs on various eprom data formats such as Intel Hex, Motorola S\nJEDEC etc.\n\n\nCan anyone out there provide such info or a pointer to it?\nThe one I want the most is Intel Hex.\n\nMike\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3558, "properties": {"category": "talk.politics.mideast", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: No humanity in Bosnia\nKeywords: Barbarism\nOrganization: Corporation for Open Systems\nDistribution: world \nLines: 47\n\nIn <1993Apr15.135934.23814@julian.uwo.ca> mrizvi@gfx.engga.uwo.ca (Mr. Mubashir Rizvi) writes:\n\n>It is very encouraging that a number of people took so interest in my posting.I recieved a couple of letters too,some has debated the statement that events in Bosnia are unprecedented in the history of the modern world.Those who contest this statement present the figures of the World War II.However we must keep in mind that it was a World War and no country had the POWER to stop it,today is the matter not of the POWER but of the WILL.It\n>seems to be that what we lack is the will.\n\nThe idea of the U.S, or any other nation, taking action, i.e., military\nintervention, in Bosnia has not been well thought out by those who \nadvocate such action. After the belligerants are subdued, it would require\nan occupation force for one or two generations. If you will stop and\nthink about it, you will realize that these people have never forgotten\na single slight or injury, they have imbibed hatred with their mother's\nmilk. If we stop the fighting, seize and destroy all weapons, they will\nsimply go back to killing each other with clubs. And the price for this\nfutility will be the lives of the young men and women we send there to\ndie. A price I am unwilling to even consider.\n\n>Second point of difference (which makes it different from the holocast(sp?) ) is that at that time international community\n>didnot have enough muscle to prevent the unfortunate event,\n\nThere is no valid comparison to the Holocaust. All of the Jewish people\nthat I have known as friends were not brought up to hate. To be wary of\nothers, most certainly, but not to hate. And except for the Warsaw\nuprising, they were unarmed (and even in Warsaw badly out-gunned).\nIt is very easy to speak of muscle when they are someone else's muscles.\nSuppose we do this thing, what will you tell the parents, wives, children,\nlovers of those we are sending to die? That they gave their lives in some noble cause? Noble cause, separating some mad dogs who will turn on them.\n\nWell, I will offer you some muscle. Suppose we tell them that they have\none week (this will give foreign nationals time to leave) to cease\ntheir bloodshed. At the end of that week, bring in the Tomahawk firing\nships and destroy Belgrade as they destroyed the Bosnian cities. Perhaps\nwhen some of their cities are reduced to rubble they will have a sudden\nattack of brains. Send in missiles by all means, but do not send in\ntroops.\n\n>today inspite of all the might,the international community is not just standing neutral but has placed an arms embargo which\n\nBy all means lift the embargo.\n\n>is to the obvious disadvantage of the weeker side and therefore to the advantage of the bully.Hence indirecltly and possibly\n>unintentionally, mankind has sided with the killers.And this,I think is unprecedented in the history of the modern world.\n\nWhich killers? Do you honestly believe they are all on one side?\n\n>M.Rizvi\n>   \nREB\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3559, "properties": {"category": "sci.crypt", "text": "From: bet@sbi.com (Bennett Todd @ Salomon Brothers Inc., NY )\nSubject: Re: Source of random bits on a Unix workstation\nLines: 44\nNntp-Posting-Host: sandstorm\n\n>>For your application, what you can do is to encrypt the real-time clock\n>>value with a secret key.\n\nWell, almost.... If I only had to solve the problem for myself, and were\nwilling to have to type in a second password (the secret key) whenever I\nlogged in, it could work. However, I'm trying to create a solution that\nanyone can use, and which, once installed, is just as effortless to start up\nas the non-solution of just using xhost(1) to control access. I've got\nreligeous problems with storing secret keys on multiuser computers.\n\n>For a good discussion of cryptographically \"good\" random number\n>generators, check out the draft-ietf-security-randomness-00.txt\n>Internet Draft, available at your local friendly internet drafts\n>repository.\n\nThanks for the pointer! It was good reading, and I liked the idea of using\nseveral unrelated sources with a strong mixing function. However, unless I\nmissed something, the only source they suggested (aside from a hardware RNG)\nthat seems available, and unguessable by an intruder, when a Unix is\nfresh-booted, is I/O buffers related to network traffic. I believe my\nsolution basically uses that strategy, without requiring me to reach into\nthe kernel.\n\n>A reasonably source of randomness is the output of a cryptographic\n>hash function (e.g., MD5), when fed with a large amount of\n>more-or-less random data. For example, running MD5 on /dev/mem is a\n>slow, but random enough, source of random bits; there are bound to be\n>128 bits of entropy in the tens (or hundreds) of megabytes of data in\n>a modern workstation's memory, as a fair amount of them are system\n>timers, i/o buffers, etc.\n\nI heard about this solution, and it sounded good. Then I heard that folks\nwere experiencing times of 30-60 seconds to run this, on\nreasonably-configured workstations. I'm not willing to add that much delay\nto someone's login process. My approach (etherfind|compress, skip 10K) takes\na second or two to run. I'm considering writing the be-all and end-all of\nsolutions, that launches the MD5, and simultaneously tries to suck bits off\nthe net, and if the net should be sitting __SO__ idle that it can't get 10K\nafter compression before MD5 finishes, use the MD5. This way I could have\nguaranteed good bits, and a deterministic upper bound on login time, and\nstill have the common case of login take only a couple of extra seconds.\n\n-Bennett\nbet@sbi.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3560, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: health care reform\nArticle-I.D.: pitt.19408\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 24\n\nIn article <LMC001@wrc.wrgrace.com> custer@wrc.wrgrace.com (Linda Custer) writes:\n>This is my first post, and I am not even sure it will work. Here goes.\n>\n>Did anyone read the editorial on page 70 in the 29 march 1993 edition of Time\n>Magazine, noting that managed care is extremely inefficient?  Of all the possible\n>clients that Billary could be pandering to, the insurance industry is the worst!\n>\n>Comments?\n \nI agree. Adding layers of managers and bureaucrats simply eat up\nmoney that could be spent on those who actually are doing the work\nsuch as doctors and nurse, and supplies.  The most efficient system\nis probably one that has limited management and a fixed budget such\nas England's or even Canada's.  I'm afraid we are on the wrong\ntrack.  The problem may be that the insurance lobby is too powerful.\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3561, "properties": {"category": "rec.autos", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: Re: Open letter to NISSAN (Really Station Wagon)\nNntp-Posting-Host: wind.bellcore.com\nReply-To: jchen@ctt.bellcore.com\nOrganization: Bell Communications Research\nDistribution: na\nLines: 10\n\nWith the popularity of minivans, the market room for station wagons is \nsqueezed out. They are not as comfortable as sedan, and don't carry as \nmuch as the minivans. \n\nThis is not to say nobody wants the wagon anymore. But the demand is certainly\nhampered by the minivan, and may not be economical to build a product for.\n\nJason Chen\n\nA station wagon owner\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3562, "properties": {"category": "comp.graphics", "text": "From: ccraig@nmt.edu (Catherine Craig)\nSubject: Re: Trying to view POV files.....\nOrganization: New Mexico Tech\nLines: 23\n\nIn article <1993Apr11.132604.13400@ornl.gov> ednobles@sacam.OREN.ORTN.EDU (Edward d Nobles) writes:\n>\n>I've been trying to view .tga files created in POVRAY.  I have the Diamond\n>SpeedStar 24 Video board (not the _24X_).  So far I can convert them to\n>jpeg using cjpeg and view them with CVIEW but that only displays 8 bit color.\n>\n>I'm looking for some way to convert and/or view them in 24 bit.\n>\n>\n>Just want to see the darn things in real color...\n>\n>Thanks,\n>\n>Jim Nobles\n>\n\nThe best program I've seen for viewing such files is VPIC.  You'll want version 5.9 or later.  (6.0x is current.)  It allows you to view in 15 and 24 bit modes.  It really is QUITE nice.\n\nNow, for a return question:  Do you run Windows?  If so, what are the dates on your drivers?  The newest ones *I* can find are from around 4-??-92!!  My problem is they conflict with Star Trek: After Dark, and other things as well.  I'm willing to bet that it's the drivers, and NOT the programs.  Anyone out there have info on newer SS24 (NOT X) drivers for windows or OS/2?\n\nThanks,\n\tJustin\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3563, "properties": {"category": "rec.sport.hockey", "text": "From: cdash@moet.cs.colorado.edu (Charles Shub)\nSubject: Thumbs WAY WAY WAY DOWN to ESPN\nKeywords: Baseball, goddamn Baseball\nNntp-Posting-Host: moet.cs.colorado.edu\nOrganization: University of Colorado at Colorado Springs\nLines: 12\n\nTuesday, and the isles/caps game is going into overtime.\nwhat does ESPN do.....\n\nTom Mees says,  \"we are obligated to bring you baseball\"\n\nI hate to say this, but last year the coverage of the playoffs on\nsports channel america (out in colorado) was vastly superior\nto what espn is giving us this year.\n-- \n\ncharlie shub  cdash@cs.Colorado.EDU       -or-         (719) 593-3492     \non leave at the University of Iowa  cdash@cs.uiowa.edu (319) 335-0739\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3564, "properties": {"category": "sci.crypt", "text": "From: hooper@ccs.QueensU.CA (Andy Hooper)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Queen's University, Kingston\nDistribution: na\nLines: 3\n\nIsn't Clipper a trademark of Fairchild Semiconductor?\n\nAndy Hooper\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.162+0000", "event": "documents", "entityId": 3565, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: DonH@cup.portal.com (Don - Hirschfeld)\nSubject: Re: Toshiba 3401B CD-ROM:  Any problems?\nOrganization: The Portal System (TM)\nLines: 1\n\nI have the PAS16 / Toshiba 3401 combo and have no problems with it.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3566, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: Re: Conference on Manned Lunar Exploration. May 7 Crystal City\nOrganization: Fermi National Accelerator Laboratory\nLines: 25\nDistribution: na\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <C5rHoC.Fty@news.cso.uiuc.edu>, jbh55289@uxa.cso.uiuc.edu (Josh Hopkins) writes:\n> I remeber reading the comment that General Dynamics was tied into this, in \n> connection with their proposal for an early manned landing.  Sorry I don't \n> rember where I heard this, but I'm fairly sure it was somewhere reputable. \n> Anyone else know anything on this angle?\n\nThe General Chairman is Paul Bialla, who is some official of General\nDynamics.\n\nThe emphasis seems to be on a scaled-down, fast plan to put *people*\non the Moon in an impoverished spaceflight-funding climate. You'd\nthink it would be a golden opportunity to do lots of precusor work for\nmodest money using an agressive series of robot spacecraft, but\nthere's not a hint of this in the brochure.\n\n> Hrumph.  They didn't send _me_ anything :(\n\nYou're not hanging out with the Right People, apparently.\n\nBill Higgins, Beam Jockey         | \"I'm gonna keep on writing songs\nFermilab                          | until I write the song\nBitnet:      HIGGINS@FNAL.BITNET  | that makes the guys in Detroit\nInternet:  HIGGINS@FNAL.FNAL.GOV  | who draw the cars\nSPAN/Hepnet:      43011::HIGGINS  | put tailfins on 'em again.\"\n                                            --John Prine\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3567, "properties": {"category": "rec.sport.baseball", "text": "From: tjrad@iastate.edu (Thomas J Radosevich)\nSubject: Brewers injuries                                                  \nOrganization: Iowa State University, Ames IA\nLines: 21\n\n\n\nHi all,\n\nI've been locked in a small closet chained to a lab bench for the last week or\ntwo without access to really important information.  I saw the 3.5 million\nshoulder back on the DL--How long is he out for (i.e. How many millions/inning\nwill he get this year?)  Nothing personal against Higuera mind you, just\nwondering how Bud can keep coffing up money for him when he lets current\nbig producers go over a relative pittance. (Please realize the term \n\"relative pittance\" can only be used with sarcasm when discussing baseball\nsalaries.)\n\nAdditional questions:  I did'nt get to see Bones pitch this spring--how is\nhe looking and where is he going to fit in the rotation?\n\nHow is Surhoff shaping up defensively at third?\n\nAre they going to build a new stadium?  When?\n\nTom\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3568, "properties": {"category": "rec.sport.hockey", "text": "From: cal2d@csissun11.ee.Virginia.EDU (Craig Allen Lorie)\nSubject: Re: Thumbs up to ESPN\nOrganization: University of Virginia\nLines: 7\n\nWith everyone bitching about the hockey coverage by ESPN its almost like the \nDetroit-Toronto game was not televised last nite.  I was just thankful to see\nhockey on a night that it wasn't supposed to be carried.  Thanks to ESPN, no\nmatter why they televised the game\n\nCraig\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3569, "properties": {"category": "sci.space", "text": "From: Mark.Prado@p2.f349.n109.z1.permanet.org (Mark Prado)\nSubject: Sixty-two thousand (was Re: How many read sci.space?)\nLines: 32\n\n\nReply address: mark.prado@permanet.org\n\nIf anyone knows anyone else who would like to get sci.space,\nbut doesn't have an Internet feed (or has a cryptic Internet\nfeed), I would be willing to feed it to them.  I have a nice\noffline message reader/editor, an automated modem \"mailer\"\nprogram which will pick up mail bundles (quickly and easily),\nand an INSTALL.EXE to set them up painlessly.  No charge for\nthe sci.space feed, though you have to dial Washington, D.C.\nThis is NOT a BBS -- it's a store & forward system for mail\nbundles, with minimum connect times.  (I'm used to overseas\ncalls.)  (This is not an offer for a free feed for any other\nparticular newsgroups.)  Speeds of up to 14400 (v32bis) are\nsupported.  VIP's might be offered other free services, such\nas Internet address and other functionality.\n\nI get my feed from UUNET and run a 4-line hub.  I've been\nhubbing for years -- I have an extremely reliable hub.\n\nThe software I provide runs under MS-DOS (and OS/2 and Windows\nas a DOS box).  Other, compatible software packages exist for\nthe MacIntosh and Unix.\n\nAny responses should be private and go to:  \nmark.prado@permanet.org\n\n(By the way, to all, my apologies for the public traffic on my\nglib question.  I really didn't expect public replys.  But thanks\nto Bill Higgins for the interesting statistics and the lead.)\n\n * Origin: PerManNet FTSC <=> Internet gateway (1:109/349.2)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3570, "properties": {"category": "comp.graphics", "text": "From: richter@fossi.hab-weimar.de (Axel Richter)\nSubject: True Color Display in POV\nKeywords: POV, Raytracing\nNntp-Posting-Host: fossi.hab-weimar.de\nOrganization: Hochschule fuer Architektur und Bauwesen Weimar, Germany\nLines: 6\n\n\nHallo POV-Renderers !\nI've got a BocaX3 Card. Now I try to get POV displaying True Colors\nwhile rendering. I've tried most of the options and UNIVESA-Driver\nbut what happens isn't correct.\nCan anybody help me ?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3571, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: the usual\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 77\n\nIn article <viking.734084516@ponderous.cc.iastate.edu> viking@iastate.edu (Dan Sorenson) writes:\n>>Yes, I am pro-gun, and yes, I do disagree with this statement.\n>>Nuclear weapons in and of themselves are dangerous.  Radioactive\n>>decay of plutonium and uranium, as well as the tritium in the\n>>weapon, tends to be somewhat dangerous to living things.\n>>(Can you say \"neutron flux\"?)\n\n>\tCan you say, \"I get more background radiation from living in\n>Denver or having an office in a limestone building than I do standing\n>next to a power reactor at full power or standing next to a nuclear\n>warhead that is armed?\"  Look up \"shielding\" in your dictionary.  You\n>don't need six feet of lead to make decent shielding; your dead skin\n>cell layer does an excellent job on alpha particles, and neutrons\n>are slowed by mere *water*.  What do you think 75% of you is?\n\nBut whatever the neutrons hit has a good chance of absorbing the\nneutron and becoming radioactive itself. Mostly, that means water\nturning into (harmless) heavy water. But some neutrons would \nalso hit bones, and the resulting harmfull, secondard radioactives\nwould remain in the body for decades. I think an unshielded nuclear\nwarhead could reasonably be considered a public health hazard.\n\nAs for a shielded warhead, I think a fair amount of maintaince\nis required for it to remain safely shielded (e.g. storage in\na dry, temperature-regulated facility, etc...) For private\nownership to be unregulated, I think a single individual must\nbe able not only to keep the weapon, but keep it in a safe\ncondition. If any random private citizen could not properly\nkeep, maintain and store a nuclear weapon, then some regulation\nis clearly appropriate.\n\n>>  Plus these things have no self-\n>>defense purposes.  It's kinda hard to justify their use as\n>>a militia weapon when at best they are meant for battlefield use\n>>(low-yield weapons) or at worst for industrial target obliteration\n>>(translation:  cities and population centers).\n\n>\tIf the militia has as its job the overthrow of an illegal\n>government, they are indeed useful weapons to the militia.\n\nI disagree with this purpose: The job of the militia is to defend\nthemselves and their community. If you look at the American \nrevolution as an example, the militias won by seperating themselves\nfrom, and becoming independent of, a repressive government. They\ndidn't overthrow it, and those communities (Canada and England, for \nexample) that didn't defend themselves were still under that same\nold regime. If the role of the militia were offensive, to go out and\ndestroy repressive governments, nuclear weapons _might_ be appropriate.\nBut their jobs is defensive, and nuclear weapons aren't suited\nfor that.\n\nThere is also the question of personal and collective arms: The\nSecond Amendment definately protects ownership of personal\nweapons (since the very nature of the militia requires members\nto provide their own arms.) But it isn't clear if it covers\nother arms. Certainly, not all members would supply (for example)\na tank, only a few could or (if they were to be used effectively)\nshould. However, those providing the heavy weapons have a \ndisproportionate control over the militia and its fierpower.\nThe militias, as the framers envisioned them, were extremely\ndemocratic: If only 50% of the members supported the cause, only\n50% would respond to a muster, and the militia's firepower would\nbe proportionately reduced. Militia firepower and the popular\nwill were, therefore, linked. But if a small minority of the\nmembers supplied a large fraction of the firepower (in the\nform of heavy weapons) this would all change: The militia's\nfirepower would depend on the will of a small minority, not\nof the general public. Worse, that minority would be quite\ndifferent from the general public (at the very least, they\nwould be much richer.) As a result, I think the nature and\ncharacter of the militia requires that each member provide\na roughly equal share of the militia's firepower: His personal\nweapons, and some equitable fraction of a squad's heavier firepower.\n\n                                                  Frank Crary\n                                                  CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3572, "properties": {"category": "soc.religion.christian", "text": "From: atterlep@vela.acs.oakland.edu (Cardinal Ximenez)\nSubject: Re: Ancient Books\nOrganization: National Association for the Disorganized\nLines: 20\n\ncobb@alexia.lis.uiuc.edu (Mike Cobb) writes:\n\n>If I talk with an atheist and tell him the New Testament is an historically \n>reliable document, what reasons would I give him?\n\n  I have found that this isn't a very effective argument.  Most atheists are\nperfectly willing to acknowledge the existence and ministry of Jesus--but are\nquite capable of rationalizing the miracles and the resurrection into \nmisunderstandings, hoaxes, or simple fabrications.  They can always make an\nanalogy with the _Iliad_, a book that tells the story of the historical Trojan\nWar, but also talks about gods and goddesses and their conversations.\n  I don't think it's possible to convince atheists of the validity of \nChristianity through argument.  We have to help foster faith and an\nunderstanding of God.  I could be wrong--are there any former atheists here who\nwere led to Christianity by argument?\n\nAlan Terlep\t\t\t\t    \"Incestuous vituperousness\"\nOakland University, Rochester, MI\t\t\t\natterlep@vela.acs.oakland.edu\t\t\t\t   --Melissa Eggertsen\nRushing in where angels fear to tread.\t\t\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3573, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Re: Israel's Expansion II\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 9\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n   The comparison of the Palestinian situation with the Holocaust\nis insulting and completely false.  Any person making such a rude\nand false comparison is either ignorant of the Holocaust, or also\nignorant of the situation in the mideast, or is an anti-semite.\n\n   To compare a complicated political situation with the genocide\nof 6,000,000 Jews is racist in and of itself.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3574, "properties": {"category": "talk.politics.misc", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: Getting Off to an Early Start!\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 60\n\nIn article <04.17.93b@eecs.nwu.edu> ptownson <ptownson@eecs.nwu.edu> writes:\n>So ... the Jury will be making its announcement at 7:00 AM Saturday\n>morning Pacific Time .... 10:00 AM Eastern Time. Why such an ungodly\n>hour?\n>\n>I guess its because the news is not what the government wanted to hear;\n>Either the police officers have been found innocent - or - after a week, \n>the jury is hung ... neither good news from the government's point of \n>view, as they desparately needed some scapegoats in Los Angeles.\n\nWrong on both accounts.\n\n>Maybe by making the announcement at 7:00 AM on the west coast, they\n>figure all the rioters will be asleep, giving the troops time to move\n>into place. \n\nNo one is a \"rioter\" until they participate in a \"riot\", which is \nunlikely to happen, now.\n\nMost of the *people* in L.A. are likely to have gotten up early to \nlisten to the court announcement.\n\n>I guess we can look forward to a weekend of rioting, eh? \n\nSorry to disappoint you, but this seems unlikely.\n\n>The Mayor of\n>Los Angeles, in a press conference about 3:00 AM Saturday morning, in\n>announcing that the jury would give its verdict later this morning\n>(just an hour away as I write this) would not say what that verdict\n>is, but I think he was told ... in his press conference he said\n>\"anyone rioting will be stopped dead in their tracks ...\"\n\nI don't think he was told.\nHowever, his statement was still appropriate.\n\n>Meanwhile, following the announcement of the jury's verdict, the\n>judge, jury and assorted court personnel will be evacuated from the\n>building via helicopters landing on the roof of the courthouse. They\n>can't  even walk out through the front door with their heads held\n>high. \n\nJury duty is a solemn duty to be taken seriously.  It is not meant \nto be a source of pride or instant fame.\n\n>Won't the rioters have a surprise waiting for them when they wake up\n>later today!\n\nWell, the many *people* who got up early to go to the court to hear \nthe verdict found that justice was served.  Given your dire and \ncynical predictions, I imagine that it is you who will be surprised.  :-)\n\n>\n>\n>Patrick Townson\n\n\n-- \n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3575, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: picano@en.ecn.purdue.edu (Silvio Picano)\nSubject: Logitech 2-button mouse & BIOS routines availability ?\nOrganization: Purdue University Engineering Computer Network\nLines: 21\n\nNewsgroups: comp.ibm.pc.hardware\nSubject: Logitech 2-button mouse pin-out & BIOS routine availability?\nDistribution: world\nOrganization: Purdue University Engineering Computer Network\n\nI have a Logitech 2S-2f (or 2f-2S) 2-button mouse that I want to\ninterface to a serial port of a different (non-ibm-compatible) system.\nThe mouse is XT/AT/PS2 compatible, with a DB25 connector.  I tried\nto reverse engineer the mouse, but it has a micro-controller inside\nit.\n\nIf I could get the DB25 pin-out, and perhaps a copy of the BIOS routines\nthat support it, I could map all this into my target system?\n\nAnyone know where I might get the pin-out or the BIOS routines?\nAre the routines published someplace convenient?\n\nThanks!\nSilvio\n\nPS....please send email to me directly!\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3576, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: biernat@rtsg.mot.com (Tim Biernat)\nSubject: Re: No 32-bit box on Gateway\nNntp-Posting-Host: tophat1\nOrganization: Motorola, Inc., Cellular Infrastructure Group\nLines: 29\n\nIn article <1993Apr16.153330.12087@hpcvca.cv.hp.com> scott@hpcvccl.cv.hp.com (Scott Linn) writes:\n>While playing around with my Gateway 2000 local-bus machine last\n>night, it became apparent that Windows 3.1 didn't give the option\n>for 32-bit access for virtual memory.\n>\n>I am using a permanent swap file, and the disk drive is on the local\n>bus interface.\n>\n>Is this expected, or should I be investigating further why no 32-bit\n>option appears?\n\n\nyou  need to massage few switches in your system.ini.\nin the virtual memory section, flip the 32bitaccess switch on and the \nassociated driver (wdctl or some such) switch on.  this will enable\n32bit access, but be sure you can use it, as not all hard drives\nand controllers support it !  \n\n\n...for seriously fast disk access:\n\n1)  throw out WINDOZE\n2)  install OS/2\n\ni did this weekend - OS/2 is incredible.  finally a REAL OS for\nthe humble PC  :)\n\n--  tim\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3577, "properties": {"category": "sci.med", "text": "From: caf@omen.UUCP (Chuck Forsberg WA7KGX)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nOrganization: Omen Technology INC, Portland Rain Forest\nLines: 34\n\nIn article <1993Apr5.191712.7543@inmet.camb.inmet.com> mazur@bluefin.camb.inmet.com (Beth Mazur) writes:\n>In <1993Apr03.1.6627@omen.UUCP> caf@omen.UUCP (Chuck Forsberg WA7KGX) writes:\n>>Gordon, your experience is valid for many, but not all.  The\n>>fact that you know a few people who have been overweight and are\n>>now stable at a lower (normal or just less?) weight does not\n>>contradict the observation that only 5-10 per cent can maintain\n>>ideal weight with current technology.\n>\n>Actually, the observation is that only 5-10% of those who seek help\n>from your so-called \"diet evangelists\" can maintain their weight.  I\n>happen to agree with Keith Lynch that there are many people who can\n>and do lose weight on their own, and who are not reflected in the\n>dismal failure rate that is often quoted.\n>\n>Wasn't there a study where a researcher asked a more general population,\n>perhaps some part of a university community, about weight loss and he/she\n>found that a much higher percentage had lost and maintained? \n\nIn fact Adiposity 101 mentions a similar study (search for \"life\nevents\" in any recent version of Adiposity 101).\n\nThe problem with anecdotal reports about individuals who have\nlost weight and kept it off is that we don't know what caused\nthe weight gain in the first place.  This is critical because\nsomeone who gains weight because of something temporary (drug\neffect, life event, etc.) may appear successful at dieting when\nthe weight loss was really the result of reversing the temporary\ncondition that caused the weight gain.\n\n-- \nChuck Forsberg WA7KGX          ...!tektronix!reed!omen!caf \nAuthor of YMODEM, ZMODEM, Professional-YAM, ZCOMM, and DSZ\n  Omen Technology Inc    \"The High Reliability Software\"\n17505-V NW Sauvie IS RD   Portland OR 97231   503-621-3406\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3578, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: David_A._Schnider@bmug.org\nOrganization: BMUG, Inc.\nSubject: Re: x86 ~= 680x0 ??  (How do they compare?)\nLines: 11\n\nThe real question here in my opinion is what Motorola processors running system\n7 on a MAC are comparable to what Intel processors running Windows on a PC?  I\nrecall there being a conversation here that a 486/25 running Windows benchmarks\nat about the same speed as 25Mhz 030 in system 7.  I don't know if that is\ntrue, but I would love to hear if anyone has any technical data on this.\n\n-David\n\n**** From Planet BMUG, the FirstClass BBS of BMUG.  The message contained in\n**** this posting does not in any way reflect BMUG's official views.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3579, "properties": {"category": "comp.sys.mac.hardware", "text": "From: skok@itwds1.energietechnik.uni-stuttgart.de (Holger Skok)\nSubject: Re: How often are SIMMs bad (mail order)?\nOrganization: Inst. f. Thermodynamik u. Waermetechnik (ITW), U. of Stuttgart, FRG\nLines: 14\nNNTP-Posting-Host: itwds1.energietechnik.uni-stuttgart.de\n\nHi,\nI got a glimpse from the other side, talking to the technician at the\nplace I recently bought my Mac from. The guy told me that they stopped\nshipping SIMMs to their customers and only install them themselves -\nthose babies get  zapped too easily by static electricity  or so they\nclaim.\n\nHSK\n\n-- \nSie singen das alte Entsagungslied, das Eiapopeia vom Himmel,\nwomit man beruhigt, wenn es greint, das Volk, den grossen Luemmel.\nEin neues Lied, ein besseres Lied, oh Freunde, will ich Euch dichten,\nWir wollen hier auf Erden schon das Himmelreich errichten.    ... H. Heine\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3580, "properties": {"category": "misc.forsale", "text": "From: mellis@magnus.acs.ohio-state.edu (Michael E Ellis)\nSubject: **Nash Metropolitan Forsale!**\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: usa\nLines: 34\n\n\nMy little Nash has sat for about a year (had been running), but now I must move\na long distance and there are too many things to carry with me.  Here are the\ndetails of the car:\n\n1958 Hardtop--Exterior condition:\n     Rocker panels rusted out at weld points, no rust at typical spots like\n     door hinge mounting points, back battery box, etc.  Missing front bumper,\n     front pan dented up, one weld popped in front.  This is for the most part\n     a solid, restorable automobile.\n\n     Interior Condition:\n     Missing original steering wheel, has one of the smaller aftermarket\n     wheels, seats need reupholstered, general fair condition.\n\n     Mechanical Condition:\n     Had been running, but now does not want to start...needs new rings (which\n     I have) also have extra parts such as complete long block, extra steering\n     shaft, etc.\n\nFor a car that has not been touched since 1958, it is in solid shape.  It will\nobviously need some work, but will make a good project.\n\nPRICE:  Well, this is a tough one, I would like to get around 800.00, but will\nconsider any serious offers by individuals willing to come and get it. If you \nhave things to trade such as tools, toys, cameras, comics, cards, etc., \nanything easily movable to Florida, I may consider that as well.\n\nHit <r>, or my e-mail address is Ellis.15@osu.edu\n\n(614) 777-0791 home (leave message)\nThanks\n\nMike\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3581, "properties": {"category": "rec.autos", "text": "From: rfelix@netcom.com (Robbie Felix)\nSubject: Re: WARNING.....(please read)...\nKeywords: brick, rock,  danger, gun, violent, teenagers\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 56\n\nIn article <19APR199316162857@erich.triumf.ca> music@erich.triumf.ca (FRED W. BACH) writes:\n>In article <C5r1Iy.8v0@SSD.intel.com>, jrowell@ssd.intel.com (Janet Rowell)\n> writes...\n>#>Could we plase cease this discussion.  I fail to see why people feel the need \n>#>to expound upon this issue for days and days on end.  These areas are not\n>#> meant for this type of discussion.  If you feel the need to do such things,\n>#> please take your thought elsewhere.  Thanks.\n># \n>   Exactly my point.  There is a lot of hostility to, and from, teenagers.\n>\n>   If you follow the news for the northwest USA, you will have heard that a\n> group of 20-year old boys (barely out of the teens, certainly their outlook\n> was developed during their teens) just shot and killed an innocent little\n> girl riding in a car in the Seattle area when her mother (who was driving)\n> honked her horn at the car with the boys in it.  This is really upsetting\n> and makes my stomach turn as it would any parent's.   Doesn't your heart\n> just go out to that poor mother?\n>   Teenagers both drive cars and are involved in automotive vandalism and\n> crime.  Maybe someone on this newsgroup has had specific experience in\n> dealing with violent teenage offenders like these kids are.  At the same\n\nIt seems sad that people lose all perspective when they here about a\ncase of violence by teenagers...\n\nFor a little perspective:\n\nHow about the thousands of kind teenagers who volunteer at local\nagencies to help children, seniors, the homeless?\n\nDid you read about all the kids at Stanford who spent their spring\nbreaks helping out in inner city areas? What about the hundreds of\nvolunteers ( teenagers and others) who worked to clean up the mess\nafter the Rodney King riots in LA?\n\nHave you gone to your local high school play recently? Attended the\nschool orchestra performances? Have you seen how many kids volunteer\nto pick up trash, plant trees, do walk-a-thons? How many kids have\ntried to sell you stuff to benefit organizations they belong to? How\nmany girl scout cookies have you bought? How many chocolate bars for\ngood causes?\n\nThe media picks up on all the anomalies, the sensational...\n\nWhat about the wonderful teenagers all over the place who work hard at\nschool, get good grades, go to college (or to work) and make a real\ncontribution to our society?\n\nAll humans are teenagers at some time in their lives! Mother Theresa\nwas a teenager and so was Geoffrey Dahmer.\n\nIt is really sad to see so many people who buy the sensational\nreporting of the media as some kind of reflection of the world today!\nIt is a reflection of what is happening on the outer fringes of our\nsociety and nothing more...\n\nrf\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3582, "properties": {"category": "alt.atheism", "text": "Subject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nFrom: kmr4@po.CWRU.edu (Keith M. Ryan)\nOrganization: Case Western Reserve University\nNNTP-Posting-Host: b64635.student.cwru.edu\nLines: 27\n\nIn article <1993Apr6.151843.15240@monu6.cc.monash.edu.au> darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n>I should clarify what Muslims usually mean when they say \"Muslim\".  In\n>general, anyone who calls themselves a \"Muslim\" and does not do or \n>outwardly profess\n>something in clear contradiction with the essential teachings of Islam\n>is considered to be a Muslim.  Thus, one who might do things contrary to\n>Islam (through ignorance, for example) does not suddenly _not_ become a\n>Muslim.  If one knowingly transgresses Islamic teachings and essential\n>principles, though, then one does leave Islam.\n\n\tYou and Mr. bobby really need to sit down and decide what\nexactly Islam  *is* before posting here.\n\n\tAccording to 'Zlumber, one is NOT a muslim when one is doing evil. \n[ A muslin can do no evil ] According to him, one who does evil is suffering \nfrom \"temporary athiesm.\"\n\n\tNow, would the members who claim to be \"Muslims\" get their stories \nstraight????\n\n--\n\n\n       \"Satan and the Angels do not have freewill.  \n        They do what god tells them to do. \"\n\n        S.N. Mozumder (snm6394@ultb.isc.rit.edu) \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3583, "properties": {"category": "talk.politics.mideast", "text": "From: bh437292@longs.LANCE.ColoState.Edu (Basil Hamdan)\nSubject: Re: was:Go Hezbollah!\nReply-To: bh437292@lance.colostate.edu\nNntp-Posting-Host: parry.lance.colostate.edu\nOrganization: Engineering College, Colorado State University\nLines: 101\n\nIn article <SHAIG.93Apr15220200@composer.think.com>, shaig@composer.think.com (Shai Guday) writes:\n\n|>    [snip]\n|>    imagine ????  It is NOT a \"terrorist camp\" as you and the Israelis like \n|>    to view the villages they are small communities with kids playing soccer\n|>    in the streets, women preparing lunch, men playing cards, etc.....\n|> \n|> I would not argue that all or even most of the villages are \"terrorist\n|> camps\".  There are however some which come very close to serving that\n|> purpose and that is not to say that other did not function in that way\n|> prior to the invasion. \n\nThe village I described was actually the closest I could come to\ndescribing mine.  I agree there may be other villages where the civilian\npopulation has deserted because it is too close to Israeli lines and\nthus gets bombed more often.  In such villages often the only remaining \ninhabitants are guerillas and some elderly who have nowhere else to go.\nBut for the most part the typical South Lebanon village is more like\nmine.  One where civilians and guerillas live together.  They are\noften inhabiting the same house.  Many families are large, some\nhave members of the families involved in Hizollah, most others\nare not.  That is what is so hard of South Lebanon, Israel is\nnot fighting an army with well drawn battle lines, but a guerilla\ntyoe resistance which by definition and necessity blends with\nthe local populace.  Not because they are evil cowards that\nuse women and children as shields, but because that is the only\nway one can fight a more powerful better equipped occupying army.\n\n|> Some of the villages, and yours might well be among them, are as you\n|> describe.  Not all are.  There are a large number of groups in the area,\n|> backed by various organizations, with a wide range of purposes.  Hizbollah\n|> and Amal were two of the larger ones and may still be.\n\nHizbollah and Amal are now the main two militias.  Though\nHizbollah people tend to be more committed to resistrance\noperation and better motivated by religious conviction.\n\n  As to retaliation,\n|> while mistakes may be made, that is still a far cry from indiscriminate\n|> bombing, which would have produced major casualties.\n\nIt may be a mixture of what we both say.  Sometimes Israel chooses\nits targets carefully.  At other times it just sends its pilots on\nsorties aimed at a town in general since it only knows that the \nattackers came from that specific village but has no further\nintelligence.  On several occasions Israel retalliated against \ncivilian refugee camps, even in North Lebanon, just to show\nthat it will not sit idly after its soldiers have been attacked.\nMost of the time it directs the SLA to do the dirty work and\nindiscriminately shell some Lebanese villages on the other side.\nI have experienced this shelling myself on several occasions,\nthis is why the SLA militia is sometimes even more despised than \nIsraeli troops.\n\n|\n|> Well, here we disagree.  I think that Israel would willingly withdraw if\n|> the Lebanese gov't was able to field a reliable force in the area to police\n|> it and prevent further attacks.\n\nI hope you are right on Israeli willingness to withdraw, but I still\ncontend that withdrawal would be the better course for Israel's\nsecurity, since it would reduce its  military losses, and I claim\nthat the Lebanese and Syrian gov'ts would be able to prevent any \nfurther attacks on Northern Israel.\n \n\n|>    There seems to be very little incentive for the Syrian and Lebanese\n|>    goovernment to allow Hizbollah to bomb Israel proper under such \n|>    circumstances, and now the Lebanese government has proven that it is\n|>    capable of controlling and disarming all militias as they did\n|>    in all other parts of Lebanon.\n|> \n|> No, the Syrian gov't is more than happy to have Israel sink into another\n|> Lebanese morass.  I could elaborate if necessary.\n\nHmm...  Here we disagree on what serves Syria interests better.\nI think Syria wants to have Lebanon all to itself.  It would\nbe willing to guarantee Northern Israel's security in return for\nIsraeli withdrawal.  I don't think Syria wants Israel to be\ninvolved in its protectorate of Lebanon.  Syria is sitting at the\nnegotiating table because it has come to accept that and wants\nto get a political resolution.  A renewal of hostilities\nalong the Lebanese front could put the whole ME peace negotiations\nback in question.\n\n\n|>    I agree, only in the case of the Isareli soldiers their killing\n|>    CANNOT be qualified as murder, no matter what you say.\n|> \n|> No, but it is regretable, as is the whole situation.\n\n\nI agree that the loss of any human life is deplorable and regrettable.\n\n|> --\n|> Shai Guday              | Stealth bombers,\n|> OS Software Engineer    |\n|> Thinking Machines Corp. |\tthe winged ninjas of the skies.\n|> Cambridge, MA           |\n\nBasil\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3584, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: White House Public Encryption Management Fact Sheet\nArticle-I.D.: rwing.2087\nDistribution: na\nOrganization: Totally Unorganized\nLines: 52\n\nIn article <19APR199313020883@charon.gsfc.nasa.gov> paul@charon.gsfc.nasa.gov (Paul Olson) writes:\n>In article <1qnav4$r3l@transfer.stratus.com>, cme@ellisun.sw.stratus.com (Carl Ellison) writes...\n>>In article <C5LGAz.250@dove.nist.gov> clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement) writes:\n>> \n>>>Further, the Attorney General\n>>\n> [ ... good post describing what is in store for us deleted ... ]\n>\n>It's also interesting to note that two months ago Rush Limbaugh said that\n>Clinton would have the \"plumbers\" out in force shortly.  Clinton and his\n>henchmen firmly believe in strong ubiquitous government control.  Anytime a\n>leader believes in that, the leader will use every means possible to retain\n>that control and take more.\n>\n>WE have to take OUR government back.  Otherwise we will end up living in the\n>equivalent of a high-tech third world dictatorship.  We have to take\n>responsibility for ourselves, our personal welfare, and our actions.\n\nI totally agree.  But how do you propose we take government back?  They\nobviously don't listen to the people or want the people to know who is\nresponsibile for what (a person telnetted the site of the Clipper chip\nrelease, to see what the entity 'clipper' was, and got a few lists.\nBUt when another person tried a bit later, the commands were disabled)\nDoes not sound like an Administration that wants to have any accountability\nor information they don't control given to the people.  The secret\ndevelopment and implimentation of the Clipper Chip decision further\nbacks that up.  You can bet unaurhorized encryption methods and software\nwill be considered 'terrorist tools' and also subject to civil forfeiture,\nalong with the systems that are running it.  YOU WATCH, SEE IF I AM WRONG.\n\nThe government is not going to be very cooperative about the people taking\nit back.  And they have all the resources, unlimited access to the media\nfor propeganda, and almost all the guns (soon to be ALL the guns if\nClinton's agenda succeeds)...   Those that do not play ball?  Waco\nmight be a good example of what to expect...  The warrant (just released)\nstated the reason for the raid was the BDs spent a very large sum\nfor weapons, over an undetermined amount of time.  I don't recall\nspending a lot of money on guns, etc being illegal ... yet, that is.\n\nClinton might go down in history as the worst thing to ever happen to\nthe US of A. ... Now to be known as the 'Peoples Socalist Democratic\nRepublic of America'  (PSDRA).\n\nBig Brother is LISTENING!!!\n\nHail Big Brother... (and Sister...?)  only ten years late!!!\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3585, "properties": {"category": "talk.religion.misc", "text": "From: rwd4f@poe.acc.Virginia.EDU (Rob Dobson)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: University of Virginia\nLines: 18\n\nIn article <visser.735284180@convex.convex.com> visser@convex.com (Lance Visser) writes:\n\n>\tPlease get an explaination of exactly what this \"non-toxic\" tear\n>gas was and what the delivery system was.  I refuse to believe any \n>explaination provided by the FBI/ATF without lots of facts.\n>\n>\tI do not believe that there is such a thing as \"non-toxic\" tear\n>gas.\n>\n\nYou are correct. See today's (4/21) Washington Post. The gas the\nFBI used is most certainly fatal in high concentrations. Of course,\nnon-toxic tear gas is an oxymoron; the whole point of tear gas is\nthat it is toxic, and its toxic effects cause people to seek\nfresh air.\n\n--\nLegalize Freedom\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3586, "properties": {"category": "sci.electronics", "text": "From: seema@madvlsi.columbia.edu (Seema Varma)\nSubject: IC Packages\nOrganization: Columbia University\nX-Posted-From: britain.madvlsi.columbia.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 28\n\nHi,\n\tI am looking for some help in choosing a package\nfor a high-speed silicon ADC (100Mhz) currently being \nfabricated. This is a PhD research project and I have to test\nthe chip at speed on a PCB. I expect to have roughly 100\npackaged circuits and will do DC, low-speed and high-speed\ntesting using 3 different set-ups for the test chip.\n \t\n\tI know for sure that a DIP will not work\n(the long lead lines have too high an inductance).\nGetting a custom-made package is too expensive, so\nI am trying to choose between a flatpak and a\nleadless chip carrier. The flatpack would be hard\nto test since it has to be soldered on to the test\nsetup and I would spend loads of time soldering \nas I kept changing the test chip. The leadless chip\ncarrier sockets also have long lead lines and may\nnot work at high speeds.\n \n\tDoes anyone out there have experience/knowledge\nof this field ? I would greatly appreciate help! Any ideas/\nnames of companies manufacturing holders/sockets/packages\nwould help. \n \nP.S. The multi-layer fancy GaAs packages seem like a bit\nof overkill(?)\n\t\n --- Seema Varma\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3587, "properties": {"category": "rec.motorcycles", "text": "From: gregh@niagara.dcrt.nih.gov (Gregory Humphreys)\nSubject: New to Motorcycles...\nOrganization: National Institutes of Health, Bethesda, MD\nLines: 39\n\nHello everyone.  I'm new to motorcycles so no flames please.  I don't\nhave my bike yet so I need a few pieces of information:\n\n1)  I only have about $1200-1300 to work with, so that would have \nto cover everything (bike, helmet, anything else that I'm too \nignorant to know I need to buy)\n\n2)  What is buying a bike going to do to my insurance?  I turn 18 in \nabout a month so my parents have been taking care of my insurance up\ntill now, and I need a comprehensive list of costs that buying a \nmotorcycle is going to insure (I live in Washington DC if that makes\na difference)\n\n3)  Any recommendations on what I should buy/where I should look for it?\n\n4)  In DC, as I imagine it is in every other state (OK, OK, we're not a \nstate - we're not bitter ;)), you take the written test first and then\nget a learners permit.  However, I'm wondering how one goes about \nlearning to ride the bike proficiently enough so as to a) get a liscence\nand b) not kill oneself.  I don't know anyone with a bike who could \nteach me, and the most advice I've heard is either \"do you live near a\nfield\" or \"do you have a friend with a pickup truck\", the answers to both\nof which are NO.  Do I just ride around my neighborhood and hope for \nthe best?  I kind of live in a residential area but it's not suburbs.\nIt's still the big city and I'm about a mile from downtown so that \ndoesn't seem too viable.  Any stories on how you all learned?\n\nThanks for any replies in advance.\n\n\t-Greg Humphreys\n\t:wq\n\t^^^\n\tMeant to do that.  (Damn autoindent)\n\n--\nGreg Humphreys               |  \"This must be Thursday.  I never\nNational Institutes of Health|   could get the hang of Thursdays.\"\ngregh@alw.nih.gov            |\n(301) 402-1817\t             |             -Arthur Dent\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3588, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: re: Countersteering_FAQ please post\nOrganization: University College of Wales, Aberystwyth\nLines: 10\nNntp-Posting-Host: 144.124.112.30\n\n\nIn article <C4zKCL.FGC@ux1.cso.uiuc.edu> Eric@ux1.cso.uiuc.edu (93CBR900RR) writes:\n>Would someone please post the countersteering FAQ...i am having this awful\n>time debating with someone on why i push the right handle of my motorcycle \n>foward when i am turning left...and i can't explain (well at least) why this \n>happens...please help...post the faq...i need to convert him.\n>\n>\t\t\t\teric\n\nHmm, If I did this, would I be able to take the outriggers off?\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.163+0000", "event": "documents", "entityId": 3589, "properties": {"category": "sci.space", "text": "From: ETRAT@ttacs1.ttu.edu (Pack Rat)\nSubject: Shuttle Launch Question\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 16\n\nThere has been something bothering me while watching\nNASA Select for a while.  Well, I should'nt say\nbothering, maybe wondering would be better.  When\nthey are going to launch they say (sorry but I forget\nexactly who is saying what, OTC to PLT I think)\n\"Clear caution & warning memory.  Verify no unexpected\nerrors. ...\".  I am wondering what an \"expected error\" might\nbe.  Sorry if this is a really dumb question, but\ninquiring minds just gotta know............\n\nYeah, yeah, I know, its those dumb cosmospheres again!\n=============================================================\nRandy Padgett, Supervisor      BITNET   : ETRAT@TTACS        \nAcademic Computing Facilities  Internet : ETRAT@TTACS.TTU.EDU \nTexas Tech University          THEnet   : TTACS::ETRAT        \nLubbock, TX 79409-42042  (806) 742-3653   FAX (806) 742-1755\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3590, "properties": {"category": "sci.electronics", "text": "From: jgd@dixie.com (John De Armond)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: Dixie Communications Public Access.  The Mouth of the South.\nLines: 99\n\nnagle@netcom.com (John Nagle) writes:\n\n>>Great Explaination, however you left off one detail, why do you always\n>>see them at nuclear plants, but not always at fossil fuel plants.  At\n>>nuclear plants it is prefered to run the water closed cycle, whereas\n>>fossil fuel plants can in some cases get away with dumping the hot\n>>water.  As I recall the water isn't as hot (thermodynamically) in many\n>>fossil fuel plants, and of course there is less danger of radioactive\n>>contamination.\n\nActually the reasons you don't see so many cooling towers at fossil plants are\n1) fossil units (multiple units per plant) are generally smaller than\nnuclear plants.  300 MWe seemed to be a very popular size when many\nfossil plants were built.  The average nuclear plant is 1000 MWe.  2) many\nfossil plants were grandfathered when water discharge regulations were\nadopted (\"why those old dirt burners can't harm anything, let 'em go.\").  \n3) powered draft cooling towers, low enough to the ground to be generally\nnot visible from off-site, are quite popular with fossil plants.  4) fossil\nplants used to get much less regulatory attention than nuclears.\n\n>       Actually, fossil fuel plants run hotter than the usual \n>boiling-water reactor nuclear plants.  (There's a gripe in the industry\n>that nuclear power uses 1900 vintage steam technology).  So it's\n>more important in nuclear plants to get the cold end of the system\n>as cold as possible.  Hence big cooling towers.  \n\n>       Oil and gas fired steam plants also have condensers, but they\n>usually are sized to get the steam back into hot water, not most of the\n>way down to ambient.  Some plants do cool the condensers with water,\n>rather than air; as one Canadian official, asked about \"thermal \n>pollution\" de-icing a river, said, \"Up here, we view heat as a resource\".  \n\nActually the condensing environment is essentially the same for plants\nof similar size.  The issues are the same regardless of where the \nheat comes from.  Condensers are run at as high a vacuum as possible in\norder to reduce aerodynamic drag on the turbine.  The condenser pressure is\nnormally water's vapor pressure at the condensing temperature.  It is\ndesirable that the steam exhaust be free of water droplets because \nmoisture in the steam causes severe erosion damage to the turbine \nlow pressure blades and because entrained water moving at high velocity\ncauses erosion of the condenser tubes.  The coldest and thus lowest\npressure condensing environment is always the best.  \n\nA related issue is that of pumping the condensate from the hotwell (where\nthe water ends up after dripping off the condenser tubes.)  Since the\ncondenser is at a very low pressure, the only force driving the \ncondensate into the hotwell pumps is gravity.  If the condensate is too \nhot or the gravity head is too low, the condensate will reflash into\nsteam bubbles and cause the condensate pumps to cavitate.  This is a\nparticularly destructive form of cavitation that is to be avoided at all\ncosts.  \n\nThe hotwell pumps are located in the lowest point in the plant\nin order to provide a gravity head to the pumps.  How much lower \nthey must be is a function of how hot the water is allowed to get in\nthe hotwell.  Typically hotwell temperatures run between 100 and 120 \ndegrees depending on the temperature of the river water (this term is\nused to describe the river grade water even when the cooling tower\nsystem is operating in closed loop mode and essentially no river water\nis pumped.)  When the river water temperature is high in the summer,\noperators will typically allow the hotwell level to rise in order \nto provide more gravity head.  There is a tradeoff involved since higher\nhotwell levels will encroach onto the condensing tubes and reduce the\ncondenser area.\n\nAt least in the East and elsewhere where moisture actually exists in the\nair :-), the river water will almost always be cooler than the discharge\nwater from the cooling towers.  The temperature of the discharge water\nfrom the cooling towers is set by the ambient air temperature and\nhumidity.  It is very rare in the East to hear of actual river water\ntemperatures exceeding 70 degrees.  A vast difference from the typical\n\"95-95\" days (95 degrees, 95% humidity) we see routinely in the East.\nIt is not unusual, particularly where the econazis have been successful\nin clamping rigid discharge water temperature limits on a plant, for the\nplant to have to reduce the firing rate when the air temperature gets\ntoo high and the condenser cannot handle the heat load without excessive\npressure.\n\n>       Everybody runs closed-cycle boilers.  The water used is \n>purified of solids, which otherwise crud up the boiler plumbing when\n>the water boils.  Purifying water for boiler use is a bigger job than \n>cooling it, so the boiler water is recycled.\n\nTrue.  Actually secondary plant (the part that makes electricity and\nfeeds feedwater to the boiler) water chemistry has been the bastard \nstepchild until recently and has not gotten the respect it deserves.\nThe plant chemists have just in the past decade or so fully understood\nthe costs of impure water.  By \"impure\", I mean water with a few\ndozen extra micromho of conductivity and/or a few PPM of dissolved\noxygen.  Secondary water is now typically the most pure one will \nfind outside the laboratory.\n\nJohn\n-- \nJohn De Armond, WD4OQC               |Interested in high performance mobility?  \nPerformance Engineering Magazine(TM) | Interested in high tech and computers? \nMarietta, Ga                         | Send ur snail-mail address to \njgd@dixie.com                        | perform@dixie.com for a free sample mag\nLee Harvey Oswald: Where are ya when we need ya?\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3591, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Sandberg, Runs, RBIs (was: Re: Notes on Jays vs. Indians Series)\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nDistribution: na\nLines: 53\n\nIn article <1993Apr16.013145.8770@Princeton.EDU> roger@astro.princeton.edu (Roger Lustig) writes:\n>\n>Right.  So who cares which PLAYER gets credited, as long as the TEAM\n>gets more runs?  If a player helps the TEAM get more R and RBI, but \n>doesn't score them all himself, who cares?\n\nAmusing, isn't it?  Seems only the SDCNs realize how much baseball is\na *team* game, combining efforts from every player for the win.\n\nConsider the Red Sox game last night.  The Sox won 4-3 in the bottom\nof the 13th.  Who won the game?\n\n-Clemens pitched a strong nine (?) innings, allowing only two runs.\n-Ryan pitched a couple shutout innings, though he needed some excellent\n defensive plays behind him to do so.\n-Quantrill pitched a couple of innings, gave up the go-ahead run, and\n got credited with the win when the Sox scored two in the bottom of\n the inning.\n\nLooks like a team effort to me!  Yet only Quantrill got credit for\nthe win.\n\nHow about the offense?\n-Dawson and Vaughn hit (I think) HRs early in the game.  Without either\n one, the Sox would have lost in nine.\n-Quintana led off the 13th with a solid single.\n-Zupcic pinch-ran for Quintana, providing the speed to go from first\n to third when...\n-Cooper ripped a *second* single in the inning.\n-Melvin avoided the DP, getting the run home with a sac fly.  Not much of\n a help, but it was something.\n-Scrub Richardson then hit a double, scoring the speedy Cooper all the\n way from first!  (Hill's lack of defense helped.)\n\nCooper and Zupcic were credited with runs, Melvin and Richardson were\ncredited with RBIs.  But it seems to me that it was Quintana's hit\nthat set up the whole inning!  And did Melvin really contribute as\nmuch as Richardson?\n\nFurthermore, people seem to consider RBIs to be more significant than\nruns.  Did Melvin contribute more than Cooper?  Cooper provided the\ngame-winning baserunner, and moved the tying run to third base with\nonly one out!\n\nAssigning credit based on Runs and RBIs is clearly ridiculous.  You\ncan argue that OBP and SLG don't show you who came through in the\nclutch, but R&RBI don't do any better.  At least OBP and SLG don't\n*claim* to try to tell you that.\n\nHere's to the Red Sox who contributed to last night's victory.\nAll 20 of them!\n\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3592, "properties": {"category": "rec.sport.hockey", "text": "From: jpc@philabs.philips.com (John P. Curcio)\nSubject: Re: TV Schedule for Next Week\nOriginator: jpc@condor\nOrganization: Philips Laboratories, Briarcliff, NY 10510\nDistribution: na\nLines: 23\n\n\nIn article <Apr16.043426.69352@yuma.ACNS.ColoState.EDU>, mmb@lamar.ColoState.EDU (Michael Burger) writes:\n\n|> United States TV Schedule:\n|> April 18   Devils/Islanders at Pittsburgh   1 EST  ABC  (to Eastern time zone)\n|> April 18   St. Louis at Chicago             12 CDT ABC  (to Cent/Mou time zones)\n|> April 18   Los Angeles at Calgary           12 PDT ABC  (to Pacific time zone)\n|> April 20   Devils/Islanders at Pittsburgh   7:30   ESPN\n|> April 22   TBA                              7:30   ESPN\n|> April 24   TBA                              7:30   ESPN\n\nDoes anyone know if there will be alternate games in cities where local\nbroadcast rights are being protected?  I'd really love to see the Bruins a\ncouple times, and with this pro-Patrick bias shown by ESPN something tells me\nthat I will have to wait until the conference finals to see them :-}.\n\n-JPC\n \n-- \n-------------------------------------------------------------------------------\nJohn P. Curcio \t\t          Go Bruins!\t\t   Philips Laboratories\njpc@philabs.philips.com \t\t\t           345 Scarborough Road\n(914) 945-6442               \t \t\t     Briarcliff Manor, NY 10510 \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3593, "properties": {"category": "sci.crypt", "text": "From: shirriff@sprite.berkeley.edu (Ken Shirriff)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: University of California, Berkeley\nLines: 12\nDistribution: na\nNNTP-Posting-Host: hijack.berkeley.edu\n\nIn article <Apr18.194927.17048@yuma.ACNS.ColoState.EDU> holland@CS.ColoState.EDU (douglas craig holland) writes:\n>\tWith E-Mail, if they can't break your PGP encryption, they'll just\n>call up one of their TEMPEST trucks and read the electromagnetic emmisions\n>from your computer or terminal.  Note that measures to protect yourself from\n>TEMPEST surveillance are still classified, as far as I know.\n\nNote that TEMPEST is the name of the shielding standard.  TEMPEST is not\nthe name of the surveillance technique.\n\nKen Shirriff\t\t\t\tshirriff@sprite.Berkeley.EDU\nDisclaimer: this is what I've heard and it's in the sci.crypt FAQ, so it's\nprobably true but I can't guarantee it.  I'd like to know if I'm wrong.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3594, "properties": {"category": "sci.med", "text": "From: young@serum.kodak.com (Rich Young)\nSubject: Re: what are the problems with nutrasweet (aspartame)\nOriginator: young@sasquatch\nNntp-Posting-Host: sasquatch\nReply-To: young@serum.kodak.com\nOrganization: Clinical Diagnostics Division, Eastman Kodak Company\nLines: 76\n\nIn article <1993Apr17.181013.3743@uvm.edu> hbloom@moose.uvm.edu (*Heather*) writes:\n>Nutrasweet is a synthetic sweetener a couple thousand times sweeter than\n>sugar.  Some people are concerned about the chemicals that the  body produces \n>when it degrades nutrasweet.  It is thought to form formaldehyde and known to\n>for methanol in the degredation pathway that the body uses to eliminate \n>substances.  The real issue is whether the levels of methanol and formaldehyde\n>produced are high enough to cause significant damage, as both are toxic to\n>living cells.  All I can say is that I will not consume it.  \n\n[...]\n\n   In the September 1992 issue of THE TUFTS UNIVERSITY DIET AND NUTRITION\n   LETTER, there is a three page article about artificial sweeteners.  What\n   follows are those excerpts which deal specifically with Nutrasweet.\n\n   [Reproduced without permission]\n\n\t   The controversy [over aspartame] began six years ago in England,\n\twhere a group of researchers found that aspartame, marketed under\n\tthe tradename Nutrasweet, appears to stimulate appetite and,\n\tpresumably, the eating of more calories in the long run than if\n\ta person simply consumed sugar.  When researchers asked a group\n\tof 95 people to drink plain water, aspartame-sweetened water, and\n\tsugared water, they said that overall they felt hungriest after\n\tdrinking the artificially sweetened beverage.\n\t   The study received widespread media attention and stirred a\n\tgood deal of concern among the artificial-sweetener-using public.\n\tHowever, its results were questionable at best, since the researchers\n\tdid not go on to measure whether the increase in appetite did\n\tactually translate into an increase in eating.  The two do not\n\tnecessarily go hand in hand.\n\t   In the years that followed, more than a dozen studies examining\n\tthe effect of aspartame on appetite -- and eating -- were conducted.\n\tAnd after reviewing every one of them, the director of the\n\tLaboratory of the Study of Human Ingestive Behavior at Johns Hopkins\n\tUniversity, Barbara Rolls, Ph.D., concluded that consuming aspartame-\n\tsweetened foods and drinks is not associated with any increase in\n\tthe amount of food eaten afterward.\n\n\t   One artificial sweetener that is not typically accused of causing\n\tcancer is aspartame.  But it most certainly has been blamed for a\n\thost of other ills.  Since its introduction in 1981, the government\n\thas received thousands of complaints accusing it of causing\n\teverything from headaches to nausea to mood swings to anxiety.\n\tStill, years of careful scientific study conducted both before and\n\tafter the sweetener's entering the market have failed to confirm\n\tthat it can bring about adverse health effects.  That's why the\n\tCenters for Disease Control (the government agency charged with\n\tmonitoring public health), the American Medical Association's\n\tCouncil on Scientific Affairs, and the Food and Drug Administration\n\thave given aspartame, one of the most studied food additives, a\n\tclean bill of health.\n\t   Granted, the FDA has set forth an \"acceptable daily intake\" of\n\t50 milligrams of aspartame per kilogram of body weight.  To exceed\n\tthe limit, however, a 120-pound (55 kg.) woman would have to take\n\tin 2,750 milligrams of aspartame -- the amount in 15 cans of\n\taspartame-sweetened soda pop, 14 cups of gelatin, 22 cups of yogurt,\n\tor 55 six-ounce servings of aspartame-containing hot cocoa,...\n\tA 175-pound (80 kg.) man would have to consume some 4,000 milligrams\n\tof the sweetener -- the amount in 22 cans of soda pop or 32 cups\n\tof yogurt -- to go over the limit.  [chart with aspartame content\n\tof selected foods omitted]\n\t   Only one small group of people must be certain to stay away\n\tfrom aspartame: those born with a rare metabolic disorder called\n\tphenylketonuria, or PKU.  The estimated one person in every 12,000\n\tto 15,000 who has it is unable to properly metabolize an essential\n\tamino acid in aspartame called phenylalanine.  Once a child\n\tconsumes it, it builds up in the body and can ultimately cause\n\tsuch severe problems as mental retardation.  To help people with\n\tPKU avoid the substance, labels on cans of soda pop and other\n\taspartame-sweetened foods must carry the warning \"Phenylketonurics:\n\tContains Phenylalanine.\"\n\n\n-Rich Young (These are not Kodak's opinions.)\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3595, "properties": {"category": "talk.politics.mideast", "text": "From: adams@bellini.berkeley.edu (Adam L. Schwartz)\nSubject: Re: Final Solution in Palestine ?\nNntp-Posting-Host: bellini.berkeley.edu\nOrganization: U.C. Berkeley -- ERL\nLines: 27\n\nIn article <HM.93Apr26143210@barney.cs.brown.edu> hm@cs.brown.edu (Harry Mamaysky) writes:\n>In article <1993Apr25.171003.10694@thunder.mcrcim.mcgill.edu> ahmeda@McRCIM.McGill.EDU (Ahmed Abu-Abed) writes:\n>\n>\t  DRIVING THE JEWS INTO THE SEA ?!\n>\n>   I am sick and tired of this 'DRIVING THE JEWS INTO THE SEA' sentance attributed\n>   to Islamic movements and the PLO; it simply can't be proven as part of their\n>   plan !\n>\n\nProven?  Maybe not.  But it can certainly be verified beyond a reasonable doubt.  This\nstatement and statements like it are a matter of public record.  Before the Six Day War (1967)\nI think Nasser and some other Arab leaders were broadcasting these statements on\nArab radio.  You might want to check out some old newspapers Ahmed.\n\n\n>   What Hamas and Islamic Jihad believe in, as far as I can get from the Arab media,\n>   is an Islamic state that protects the rights of all its inhabitants under Koranic\n>   Law.\n\nI think if you take a look at the Hamas covenant (written in 1988) you might get a \ndifferent impression.  I have the convenant in the original arabic with a translation\nthat I've verified with Arabic speakers.  The document is rife with calls to kill jews\nand spread Islam and so forth.\n\n-Adam Schwartz\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3596, "properties": {"category": "misc.forsale", "text": "From: tim.marshall%goucher@wb3ffv.ampr.org (Tim Marshall) \nSubject: VAX PRICING\nDistribution: world\nOrganization: Goucher College, Towson, MD\nReply-To: tim.marshall%goucher@wb3ffv.ampr.org (Tim Marshall) \nLines: 25\n\n\nHello All,\n\n\n        Goucher College will soon be retiring a MicroVax II, world case,\n2 70MB Hard Drives, 16 port I/O, 2 MB (maybe 4MB) system memory.\n\n        Any idea as to how much we can expect to get for this machine on\nthe open market??\n\n        Please reply privately to:\n\n        tim.marshall%goucher@wb3ffv.ampr.org\n\n                Thanks in advance.....\n\n*//////////////////////////////////////////////////////////////////*\n*                                                                  *\n*      Tim Marshall - Associate Director, Academic Computing       *\n*   Goucher College, Baltimore, MD.  All opinions are mine alone.  *\n* Documentation - A manual which tells you how to use a program,   *\n* system, or utility one version ago, and which is now unsupported.*\n*                                                                  *\n*//////////////////////////////////////////////////////////////////*\n                                                                                                         \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3597, "properties": {"category": "sci.crypt", "text": "From: ptrei@bistromath.mitre.org (Peter Trei)\nSubject: Re: Fifth Amendment and Passwords\nNntp-Posting-Host: bistromath.mitre.org\nOrganization: The MITRE Corporation\nLines: 67\n\nIn article <C5Jzsz.Jzo@cs.uiuc.edu> kadie@cs.uiuc.edu (Carl M Kadie) writes:\n>ashall@magnus.acs.ohio-state.edu (Andrew S Hall) writes:\n>\n>>I am postive someone will correct me if I am wrong, but doesn't the Fifth\n>>also cover not being forced to do actions that are self-incriminating?\n>[From Mike Godwin <mnemonic@eff.org>, posted with permission - Carl]\n\n>No, but they could compell you to produce the key to a safe where, as it\n>happens, evidence that will convict you is stored. \n>\n>The crypto-key disclosure issue hasn't come up yet, but current law\n>suggests that it's a loser for the defendant--he'll be compelled to turn\n>over the key.\n>\n>The test for compelled self-incrimination is whether the material to \n>be disclosed *in itself* tends to inculpate the discloser. In the example\n>I gave above, the safe key itself has no testimonial value--ergo, it can\n>be disclosed under compulsion (e.g., subpoena duces tecum).\n\n>Moreover, the government can always immunize the disclosure of a crypto\n>key--compelling you to disclose the key at the price of not using the fact\n>of your disclosure as evidence in the case against you. Of course, they\n>can use whatever they discover as a result of this disclosure against\n>you.\n>--Mike\n\n    Lets carry this one step further. Suppose the text of the key is\nin itself conclusive evidence of the SAME CRIME for which the\nencrypted material is further evidence. I find myself envisaging a\nscenario like this:\n\nYou have made some scans of Peanuts strips. You encrypt them. The key\nis a phrase.\n\nThe Comic Police haul you in. They seize your system. They find the\nencrypted file.\n\nCP:    \"Whats that file?\"\n\nYou:   \"I take the fifth.\"\n\nCP:    \"What's the keyphrase to that file?\" \n\nYou:   \"I take the fifth.\"\n\nJudge: \"You have to reveal the keyphrase\" [I disagree, but I'm not a judge.]\n\nYou:   \"Your Honor, revealing the keyphrase, in it's own right, would \n\ttend to incriminate me of breaking laws, independent of what \n\tmay or may not be in the encrypted file.\"  \n\nJudge: \"I grant you immunity from whatever may be learned from the key\n\titself\"\n\nYou:    \"The keyphrase is: \"I confess to deliberately evading copyright; \n\tthe file encoded with this keyphrase contains illegal scans of \n        copyrighted Peanuts strips.\"\"\n\nJudge and CP: \"Oh.\"\n\n     How will they get you now? I'm not saying that they won't, or\ncan't (or even that they shouldn't :-), but what legal mechanism will\nthey use? Should we be crossposting this to misc.legal?\n\n\t\t\t\t\t\t\tPeter Trei\n\t\t\t\t\t\t\tptrei@mitre.org\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3598, "properties": {"category": "sci.electronics", "text": "From: marrevola@rediris.es\nSubject: Re: What is Zero dB????\nOrganization: REDIRIS, Red Nacional de I+D\nLines: 24\n\nIn article <1993Apr6.132429.16154@bnr.ca>, moffatt@bnr.ca (John Thomson) writes:\n> Joseph Chiu (josephc@cco.caltech.edu) wrote:\n> \n> : And the measure of current, Amp, is actually named after both the AMP company\n> : and the Amphenol company.  Both companies revolutionized electronics by\n> : simulatenously realizing that the performance of connectors and sockets \n> : were affected by the amount of current running through the wires.\n> \n> Sorry.  The unit for current is the AMPERE which is the name of a french-man\n> named AMPERE who studied electrical current.  The term AMP is just an abbreviation\n> of it.  The company AMP came after the AMPERE unit was already in use.\n>   \n> : The Ohmite company was the first to characterize resistances by numbers, thus\n> : our use of the Ohms...\n> \n> I don't know about this one, but it doesn't sound right.\nAre you (two) joking?\nIs the entire Internet flaming you (two)?\nAhh!, now I remember that Ohmite company was the first introducing \"the pink\ncolored resistor\", only for electronics working females ;-)\n-- \nManuel Arrevola Velasco   ||||| True e-mail: manolo@taf.fundesco.es |||||\nDoD #1033\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3599, "properties": {"category": "misc.forsale", "text": "From: dabennet@magnus.acs.ohio-state.edu (David W Bennett)\nSubject: looking(music for macintosh)\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: na\nLines: 8\n\n\nI'm trying to set up a personal studio.\n\nWhat I'm looking for are a cheap sampler(rack or with keyboard)\n\nor a cheap sound card (AudioMedia I or II or something similar).\n\nCheap is of course relative.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3600, "properties": {"category": "rec.sport.hockey", "text": "From: \"Justin R. Fortun\" <jf4f+@andrew.cmu.edu>\nSubject: Re: Playoff Predictions\nOrganization: Freshman, IM - MCS/CIT Track, Carnegie Mellon, Pittsburgh, PA\nLines: 26\nNNTP-Posting-Host: po4.andrew.cmu.edu\nIn-Reply-To: <1993Apr04.223559.7129@rose.com>\n\n>B(--> Stanley Cup Champion: Vancouver Canucks\n> \n>Sorry, Pittsburgh in a walk.\n> \n>- Jack\n\nFirst of all, the Penguins WILL win the cup again.  Who is going to stop them?\nDefinitely not the Canucks! \n\nMy predictions:\n\nPatrick Division winner:  Pittsburgh\nAdams Division winner:  Quebec or Montreal\nNorris Division winner:  Detroit\nSmythe Division winner:  Winnipeg\n\nWales conference champ:  Pittsburgh\nCampbell Conference champ:  Detroit\n\nStanley Cup Champions(again):  Pittsburgh\n\nCanucks suck.  They'll lose in the first round, compliments of Winnipeg\nand Teemu Selanne.  \n\nThe Pens are almost unstoppable with Mario Lemieux.  \n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3601, "properties": {"category": "rec.autos", "text": "From: grady@world.std.com (Dick Grady)\nSubject: Re: Car buying story, was: Christ, another dealer service scam...\nOrganization: The World Public Access UNIX, Brookline, MA\nDistribution: usa\nLines: 15\n\nIn article <93106.161324LIBEMC@BYUVM.BITNET> <LIBEMC@BYUVM.BITNET> writes:\n>Mark states in his post to know the dealer price and offer $200-$300\n>above.  My husband and I are in the market to buy our first car\n>together, and neither of us know how to go about it.  How do\n>you find out the dealer price?  Are their books to look in?  Do\n>you send away somewhere for it?\n\nSeveral company publish periodicals (3 or 4 times a year) which list the\nsticker prices and the dealer invoice prices of all the cars and their\noptions.  Edmund's is the name of one such price guide.  You can find\nthese price guides at most places which sell magazines.\n\n-- \nDick Grady           Salem, NH,  USA            grady@world.std.com\nSo many newsgroups, so little time!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3602, "properties": {"category": "misc.forsale", "text": "From: rwrona@cbnewse.cb.att.com (robert.wrona)\nSubject: \tTOWNHOME for sale in WHEATON\nOrganization: AT&T\nKeywords: townhome, wheaton, sale...\nLines: 47\n\n\nTOWNHOME FOR SALE IN WHEATON\n\tBriarcliffe Lakes of Wheaton\n\tJust North Of Butterfield Road\n\nCall (708) 682-8222 and ask for Harriet Bode (Prudential Realty)\n\nDescription:    A very neat, well cared for, low maintenance\n                starter coach home in very fine condition located on a\n\t\tcul-de-sac . Just move in.  \n\nRooms:(5+1)\t- Eat in kitchen (10.3 X 9.2)\n\t\t- Large master bedroom (12.6 X 12.6)\n\t\t- Spare Bedroom (12.6 X 10)\n\t\t- Dining Room (10.9 X 9)\n\t\t- Living Room (21 X 11.10)\n\t\t- Utility Room (10 X 5.5)\n\t\t- 1.25 Baths\n\t\t\nAppliances:     - Stove(gas), refrigerator and dish washer\n                - Garage opener\n                - Washer and Dryer\n                - Garbage Disposal\n                - Gas water heater (3 Years Old)\n                - Central A/C with DIGITAL Thermostat.\n\nHighlights:\t- Electric Fire Place in living room.\n\t\t- Sliding glass doors which open up to a patio with a\n\t\t  secluded back yard area.  \n\t        - Plenty of storage space with patio storage closet and\n\t\t  storage closet in garage. \n\t\t- New ceiling fan in Dining Room,\n                - Completely remodeled bathroom (new wallpaper, shower\n\t\t  door, shower tile, etc...)\n                - Mini blinds for all windows\n                - Newer carpets (beige) (About 3 Years old)\n                - One car garage and plenty of guest parking\n\nAssociation Fees: $105.90 which includes the following:\n                \n                - Lawn Maintenance\n                - Snow Removal\n                - All Exterior building maintenance\n\nTaxes 1992:     $1,700\n\nASKING PRICE OF HOME: $91,900\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3603, "properties": {"category": "rec.motorcycles", "text": "From: egreen@East.Sun.COM (Ed Green - Pixel Cruncher)\nSubject: Re: A Miracle in California\nOrganization: Sun Microsystems, RTP, NC\nLines: 25\nDistribution: world\nReply-To: egreen@East.Sun.COM\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article 602CV3dTx01@JUTS.ccc.amdahl.com, bws20@duts.ccc.amdahl.com (Brian W Simmons) writes:\n>\n>Now maybe this isn't a big deal to some of you, but it is to me.  I was raised\n>in the South, and part of my cultural heritage is waving at passersby.  I\n>waved from the side of the road at passing cars, when I drove I waved or\n>nodded or at least raised an index finger from the steering wheel.  People\n>waved at me as I drove by. \n\nI was raised in the South, and I can attest that this is true.  Why, on\none particularly hot day, as I was walking along the road, some good\nole boys in a truck tossed me a cold beer!  Of course, they were going\n50 mph at the time...\n\n>P.S. To prove this wasn't a fluke, it happened to me again when I was out\n>riding on Wednesday: an unsolicited wave. Wow...\n\nBikers wave to bikers the world over.  Whether or not Harley riders\nwave to other bikers is one of our favorite flame wars...\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3604, "properties": {"category": "talk.politics.guns", "text": "From: gs26@prism.gatech.EDU (Glenn R. Stone)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nReply-To: glenns@eas.gatech.edu\nDistribution: git\nOrganization: The Group W Bench\nLines: 36\n\nIn <C5sv4r.HFA@news.cso.uiuc.edu> irvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n\n[and quotes a lot of stuff unnecessarily]\n>In article <93869@hydra.gatech.EDU> glenns@eas.gatech.edu writes:\n>>\n>> [worth posting again ;-]\n>>Hey, gang, it's not about duck hunting, or about dark alleys,\n>>it's about black-clad, helmeted and booted troops storming\n>>houses and violating civil rights under color of law. \n>>\n>>Are YOU ready to defend YOUR Constitution?\n\n>Its also about crazy fatigue clad survivalist types blasting the \n>snot out of people who accidentally stray onto his land in the\n>name of 'self defense.'\n\n>Don't get too self-righteous, Mr. gun-toter.\n\nAin't got a pair of fatigues... and I don't blast people wandering aimlessly,\nI ask them what they're doing there... I only blast people who display\nobvious violent intent... like black-clad men with weapons climbing thru\nsecond-story windows, or people who break down the door instead of knocking.\nOr people who knock my house down with tanks and set it afire.  Sound \nfamiliar yet?\n\nRiddle me this: Why the hell are the CONVICTED CRIMINALS in Ohio getting\nthe kid glove treatment, and the BD's are burned alive without a trial?\nPut aside who started the blaze, I still think any decent shyster can \nmake a case for cruel and unusual punishment, playing the sounds of\ntortured rabbits over the loudspeakers (where's the SPCA in all this?)...\n\nOh, and that's Mister gun-toter SIR to you, bucko.  Just because you choose\nto abandon your rights, leave mine the hell alone, thankyouverymuch.\n\nGlenn R. Stone (glenns@eas.gatech.edu)\nImpeach Clinton, Reno -- the case is prima facie.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3605, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: Aaron Herskowitz <aherskow@alleg.edu>\nSubject: For Sale: Borland C++ w/ Application Frameworks 3.1\nReply-To: aherskow@alleg.edu\nOrganization: Allegheny College\n\n[Please excuse me if this is inappropriate to post here, but I do not read  \nthese groups normally and I did not see any PC related marketplace  \nnewsgroups]\n\nFOR SALE: Borland C++ with Application Frameworks 3.1 (Full Professional  \nDeveloper Kit)\n\nBorland C++ Programming Package including unopened software, unopened  \nmanuals, and registration card.\n\nSOFTWARE INCLUDES:\n1. *Still plastic wrapped* high density 5.25 inch disks for Borland C++:\n\ttotal of 18 diskettes in 2 individually wrapped packages, each\n\tdisk has \"Borland C++\" and \"BC++ & APP. FRAMEWORKS 3.1\" on label\n2. Amish System Utilities for Windows (one 5.25\" high density disk):\n\tAmish Launch\n\tAmish Desk Utilities for Windows\n3. Phar Lap's 286|DOS-Extender Lite Version 2.5 (one 5.25\" HD disk)\n\nMANUALS INCLUDE:\n1. *Still Plastic Wrapped* Manuals include (i.e. unopened):\n\tA. Boland Windows API Volumes:\n\t\tI: Reference Guide\n\t\tII: Reference Guide\n\t\tIII: Windows 3.1 Reference Guide\n\tB. Borland Turbo Debugger 3.0 User's Guide\n\tC. Borland Turbo Profiler 3.0 User's Guide\n\tD. Borland Turbo Assembler 3.0 Users Guide\n\tE. Borland C++ 3.1 User's Guide:\n\t\tintegrated environment\n\t\toptimization\n\t\tcommand line compiler\n\t\tinstallation\n\tF. Borland C++ 3.1 Programmer's Guide:\n\t\tlanguage structure, class libraries, advanced prgramming\n\t\ttechniques, anci c implementaion\n\tG. Borland C++ 3.1 Library Reference:\n\t\truntime library, global variables, cross-reference\n\tH. Borland C++ 3.1 Tools and Utilities Guide:\n\t\terror messages, winsightm make, help/resource compilers,\n\t\ttlink\n\tI. Borland Object Windows for C++ User's Guide:\n\t\ttutorials, class reference\n\t\t\n2. Opened (no plastic wrapping, but unread) Manuals include:\n\tA. Borland Turbo Assembler 3.0 Quick Reference Guide\n\tB. Borland Turbo Vision for C++ User's Guide\n\tC. Borland Resource Workshop User's Guide\n\nThis package was purchased by a former employee of my father's and my  \nfather has asked me to try and sell it since neither of us have any use  \nfor it.\n\nRetails for $749, most software houses have it for approx. $480.  I am  \nasking $400.\n\nIf you are interested, please e-mail me directly because I do not normally  \nread this newsgroup.\n\n--\nAaron Herskowitz      [aherskow@alleg.edu]\nAllegheny College, Meadville, Pennsylvania\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3606, "properties": {"category": "comp.graphics", "text": "From: aleahy@cch.coventry.ac.uk (ODD FROG)\nSubject: Re: Photoshop for Windows\nNntp-Posting-Host: cc_sysh\nOrganization: ODD FROGS BALLOON SHOP\nLines: 21\n\nIn article <C5uHIM.JFq@rot.qc.ca> beaver@rot.qc.ca (Andre Boivert) writes:\n>\n>\n>I am looking for comments from people who have used/heard about PhotoShop\n>for Windows. Is it good? How does it compare to the Mac version? Is there\n>a lot of bugs (I heard the Windows version needs \"fine-tuning)?\n>\n\nAlso photoshopII is out soon, has anyone got a date and any cofmments?\nAndy\n\n        _______________________________________________________\n        | Andrew Leahy | aleahy@cch.coventry.ac.uk | Odd FROG |\n        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n\"What a piece of work is man! how noble in reason! how infinite in faculties! \n in form and moving, how express and admirable! in action how like an angel!\n   in apprehension how like a god! the beauty of the world, the paragon of\n        animals! And yet to me what is the quintessence if dust? \n                      Man delights not me....... \"\n                                                  Shakespeare, Hamlet\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3607, "properties": {"category": "rec.motorcycles", "text": "From: nuet_ke@pts.mot.com (KEITH NUETZMAN X3153 P7625)\nSubject: Yamaha vs Honda opinions\nNntp-Posting-Host: 145.4.54.110\nReply-To: nuet_ke@pts.mot.com\nOrganization: Paging and Wireless Data Group\nLines: 8\n\n\n\nI am in hte market for a new bike (been without for a few years).\nThe two main bikes I'm looking at seriously are\nThe Yamaha Virago 535 and the Honda Shadow VLX 583. \nI am leaning towards the Yamaha for its shaft drive, the Honda is Chain.\nInsurance in Fla. is more costly than I thought, so I am staying in this\npower range. Thanks in advance for any opinions and or experiences\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3608, "properties": {"category": "comp.sys.mac.hardware", "text": "Organization: The American University - University Computing Center\nFrom: <BR4416A@auvm.american.edu>\nSubject: $$$ to fix TRACKBALL\nLines: 11\n\nThe trackbal on my PB140 no longer moves in the horizontal direction.  When I\ncalled the nearest Authorized Apple Service person I was told that it probably\nneeded replacing and that would cost me over $150!  Ouch!\n  Can anyone recommend a less expensive way to fix this problem?  One strange\nsymptom of the problem is that when I take the ball out of the socket and shine\na light into the hole I can make the cursor move horizontally by moving the\nwheel with my finger, it works fine that way but won't work if I turn off the\nlight.  Any suggestions or comments?\n-------------------------------------------------------------------------------\nBen Roy .......just a poor college student.......internet<br4416a@american.edu>\n-------------------------------------------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3609, "properties": {"category": "rec.autos", "text": "From: tjz6624@zeus.tamu.edu (ZINGALE, THOMAS J)\nSubject: Re: 86 chevy sprint\nOrganization: Texas A&M University, Academic Computing Services\nLines: 51\nDistribution: world\nNNTP-Posting-Host: zeus.tamu.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <wfnMBJG00WBOE3L2c0@andrew.cmu.edu>, Srinagesh Gavirneni <sg48+@andrew.cmu.edu> writes...\n>I have a 86 chevy sprint with a/c and 4doors. It's odometer turned 90k\n>and the sensor light started blinking. I went to the dealer and he said\n>it was a maintenance light saying I need to change the Oxygen sensor. He\n>said, It is to be changed every 30k, but since I bought the car when it\n>had 77k, I don't know if the same thing happened at 30k and 60k.  He\n>quoted $198 for the part and $50 to install it. The part cost $30\n>outside, but the mechanic I went to could not fix it saying the sensor\n>is placed too deep in the engine parts. He suggested I wait till it\n>malfunctions before I do anything.  If anyone out there owns a chevy\n>sprint, I want to know how they got their Oxygen sensors changed. Also,\n>did you face any problem with fixing it without the dealer's help. Also,\n>what are the results of the oxygen sensor malfunction. \n>  Any help would be greatly apprecisted\n>   Thanks\n\n>      Nagesh\nI have owned my Sprint from the beginning and that sensor light comes on every\n30K to let you know it's time for a check up.  When that light goes on, I just\ntake it to the delaer tell them \"It's that time\" and they work on it for 4 hou\nand you pay $5 for parts and $100 for labor. (Ahh...what they get for labor)\nI currently have about 95K on my Sprint and of all the times I took it in for\nservice, I never say on the payment sheet anything about the replacement of the\nOxygen sensor.  What the heck is an Oxygen sensor?  As far an I know of, I have\nnever had that thing replaced in my car and the car is purring like a kitten.\nNow, I don't have a/c (Mother Nature does that for me :-) ) and that might have\nsomething to do with it, but I still never heard of an Oxygen sensor.  The only\nMAJOR service job I have had on my car (besides getting the tires replaced\nif you want to call that a service job) was getting the Rotor, Distributor and\nGasket replaced.  And that was all done within the past 2 months.  \n\nWhat I do at 30K is have a good tune-up, let them replace what ever they need\nto, pay the bill (about $125) and go home and don't worry about the car for\nanother 30K.  Oh, I just remembered something.  If that little sensor light\nbothers you, in the fuse box right below the turn-signal lever up against\nthe dash, there is a swith on the right side.  Flip that switch and the light\nwill go off.  I do that so that little light won't annoy me.  If you can't\nfind it, look it up in the car manuel.  I hope that I have helped a little\nand good luck with the _Oxygen sensor_?\n\n\t\t\t\t- Thomas -\n\n******************************************************************************\n*  E-Mail Address: \t\t  *  \"Give me an an army of West Point,      *\n*\tTJZ6624@ZEUS.TAMU.EDU\t  *   graduates and I'll win a battle...     *\n*\t\t\t\t  *   Give me a handful of Texas Aggies,     *\n*  \"Creator of MOT POWER!\"\t  *   and I'll win a war.\"                   *\n*\t\t\t\t  *\t  - Gen. George S. Patton            *\n******************************************************************************\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3610, "properties": {"category": "sci.crypt", "text": "From: kadie@cs.uiuc.edu (Carl M Kadie)\nSubject: Re: Organized Lobbying for Cryptography\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 18\n\nkubo@zariski.harvard.edu (Tal Kubo) writes:\n\n[...]\n>The EFF has been associated with efforts to prevent the banning of sex\n>and pictures newsgroups at various universities.\n[...]\n\nSo what? Justices William Brennan, Thurgood Marshall, John Paul\nStevens, and Byron White are associated with a plurality Supreme Court\ndecision that prevented the removal of \"anti-American, anti-Christian,\nanti-Semitic, and just plain filthy\" books from a public high school\nlibrary [_Board of Education v. Pico_ (1982)]. Does this mean that\nthey could no longer defend free expression and privacy?\n\n- Carl\n-- \nCarl Kadie -- I do not represent any organization; this is just me.\n = kadie@cs.uiuc.edu =\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3611, "properties": {"category": "rec.sport.hockey", "text": "From: bart@splunge.uucp (Barton Oleksy)\nSubject: Re: LA ON ABC IN CANADA\nOrganization: Ashley, Howland & Wood\nLines: 25\n\nplarsen@sanjuan (P Allen Larsen) writes:\n\n>In article <boora.735182771@sfu.ca> boora@kits.sfu.ca (The GodFather) writes:\n>>\tWas the ABC coverage of the Kings/Flames game supposed to be the\n>>way it was shown in BC with CBC overriding the ABC coverage?  When I flipped\n>>to ABC, it was the same commentators, same commercials even.  My question\n>>is:  Was this the real ABC coverage or did CBC just \"black out\" the \n>>ABC coverage for its own?\n>>\n\n>Yes, it's called simulcast.  In Canada, when a Canadian station and an \n>American station are showing the same thing whether a sporting event or\n>Cheers on Thursday night, the Canadian signal is broadcast over the American\n>station. They even do this during the Superbowl, which has the best commercials\n>of any television.  What do we get here, dumb Canadian commercials, the same\n>ones we've seen for that last year or so.\n\nI'm in Edmonton, and while that's usually (or at least OFTEN) the case,\nhere we were \"treated\" to the actual ABC telecast of the Kings/Flames\ngame.  I'm with whoever said it earlier - Don Witless (er, Whitman) is\na poor commentator, and not just for hockey.  Normally, if the Oilers\nwere still playing (augh), I would turn off the sound and listen to \nthe radio broadcast to get decent play-by-play announcing.\n\nBart, Edmonton\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.164+0000", "event": "documents", "entityId": 3612, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: michael@jester.GUN.de (Michael Gerhards)\nDistribution: world\nSubject: Re: Western Digital HD info needed\nX-Newsreader: TIN [version 1.1 PL8]\nOrganization: private COHERENT system\nLines: 12\n\nHolly       KS (cs3sd3ae@maccs.mcmaster.ca) wrote:\n> My Western Digital also has three sets of pins on the back. I am using it with\n> another hard drive as well and the settings for the jumpers were written right \n> on the circuit board of the WD drive......MA SL ??\n\nThe ??-jumper is used, if the other drive a conner cp3xxx. \n\nno jumper set: drive is alone\nMA: drive is master\nSL: drive is slave\n\nMichael\n--\n*  michael@jester.gun.de  *   Michael Gerhards   *   Preussenstrasse 59  *\n                          *  Germany 4040 Neuss  *  Voice: 49 2131 82238 *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3613, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: Netware Server 286A and SFT Netware 286 Level II V2.0a serialisation\nFrom: system@codewks.nacjack.gen.nz (Wayne McDougall)\nOrganization: The Code Works Limited, PO Box 10 155, Auckland, New Zealand\nLines: 60\n\nFacts:\n=====\n- A Netware Server 286A was roughly moved to a new location and left powered\ndown for three months.\n- From memory it has an 80 MB hard drive.\n- Manuals and original disks are for SFT Netware 286 Level II V2.0a\n- When powered up, the CMOS was wiped. A technician examined it and \npronounced the disk drive unusable.\n\nMy investigations indicate that drive C is a type 27 (1024 cylinders, 9 sides).\nWhen CMOS set this way, COMPSURF runs happily, with 13 bad blocks.\n\nI use PREPARE to Hotfix the one internal drive.\n\nInstall will proceed \"successfully\", but when I try to boot the server, it\nreports that the software is not serialised for this hardware.\n\nInternal examination indicates that the keycard is present, and there is one\ndisk drive (or at least one large single unit). \n\nAttempts to configure a second drive in CMOS result in drive not ready\nerrors.\n\nQuestions:\n=========\nThe software is Netware 286 Level II and I can see burnt on to the screen\nSFT Netware 286 Level II V2.0a. However, to configure netware for level II\n(mirrored or duplexed disks) requires a second disk, yes? \n\nSo how is the Novell Server 286A normally configured?\n\n1. Can I install SFT Netware 286 Level II V2.0a as Level I, or is this what\nis causing my serialisation error?\n2. Is the Novell Server 286A normally equipped with two hard drives, one of\nwhich has failed?\n3. Would this mean I can not install the network software because it will not\nbe serialised for this hardware with a failed drive?\n4. What else can cause a serialisation error?\n5. What happens if the keycard fails?\n6. Am I doing something wrong? Can someone knowledgeable offer some comments\nand guides.\n\nThanks for your time.\n\nApology:\n=======\nI appreciate that I have posted this request somewhat widely. As I'm\ndealing with somewhat archaic hardware and software I'm hoping that by casting\nmy net further, I'm more likely to capture someone who has met this system\nbefore. I believe I can justify the groups to which I am posting. Please\nfeel free to correct me if you feel this is an inappropriate place to post\nthis.\n\n\n-- \n\tThis posting is definitive. bljeghbe'chugh vaj blHegh.\n  Wayne McDougall :: Keeper of the list of shows better than Star Trek(TM) ::\n            Ask me about the Auckland Festival of Missions, 18-25 April, 1993\nI always change my mind when new evidence is available. What method do you use?\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3614, "properties": {"category": "sci.space", "text": "Organization: Queen's University at Kingston\nFrom: Graydon <SAUNDRSG@QUCDN.QueensU.CA>\nSubject: Re: Gamma Ray Bursters. Where are they?\n <1993Apr24.221344.1@vax1.mankato.msus.edu>\nLines: 8\n\nIf all of these things have been detected in space, has anyone\nlooked into possible problems with the detectors?\n\nThat is, is there some mechanism (cosmic rays, whatever) that\ncould cause the dector to _think_ it was seeing one of these\nthings?\n\nGraydon\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3615, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Re: HV diodes\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 36\n\nIn article <7480220@hpfcso.FC.HP.COM>, myers@hpfcso.FC.HP.COM (Bob Myers) writes:\n|> > Nope.  The dag is on the outside of the tube, and is grounded.  The inside\n|> > aluminization *is* the second anode, and is connected to the 'anode'\n|> > suction cup.  This (with the glass of the tube in between) is a capacitor,\n|> > and is used as the power supply bypass/filter for the HV supply.  Some\n|> > smaller scope tubes don't have an aquadag coating on the outside.  If they\n|> > are in mu-metal shields, you still have a capacitor.\n|> \n|> Actually (and I think I said this in the original, but perhaps wasn't clear\n|> enough) there is usually both an internal AND an external dag.  Of the two,\n|> the internal dag is the more important; the aluminization of the back of the\n|> phosphor is in most cases not adequate to guarantee connection to the anode\n|> \"button\" (and in the case where the gun assembly includes an accelerating\n|> electrode at anode potential, most definitely does not provide THAT \n|> connection).\n\nBob is indeed correct here in more than one way. A look in the old\nRCA picture tube manual backs this up, as does SAMS Reference Data\nhandbook. The internal coating around the perimeter of the CRT\n(not the aluminum or tin CRT face coating) is referred to as a\n\"dag\" as well as the outer coating.\n\nThankfully, I didn't need to go to a f****** library to find it, either.\nOne sparkling water for Mr. Vanderbyl (no caffeine in that, is there).\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3616, "properties": {"category": "soc.religion.christian", "text": "From: gchin@ssf.Eng.Sun.COM (Gary Chin)\nSubject: National Day of Prayer,5/6/93\nReply-To: gchin@ssf.Eng.Sun.COM\nOrganization: Sun Microsystems, Inc.\nLines: 20\n\nThis is an annual time of prayer organized by the Focus on the Family\norganization.  If you have not heard about it on your Christian radio\nstation or at your local church, call them and they may be able to\ngive you the information.\n\nMany cities in the San Francisco bay area have local coordinators\norganizing the time and the place to meet to pray.  In San Francisco,\nOakland, Berkeley, San Jose, people will be meeting at ~12:15pm at\neach city's City Hall.\n\nLast year, I attended at the Mountain View city hall.  It was a very\nquiet and meaningful time of prayer.\n\n|-------------------|\n| Gary Chin         |\n| Staff Engineer    |\n| Sun Microsystems  |\n| Mt. View, CA      |\n| gchin@Eng.Sun.Com |\n|-------------------|\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3617, "properties": {"category": "rec.sport.baseball", "text": "From: jplee@cymbal.calpoly.edu (JASON LEE)\nSubject: Re: Ryan out for 2-5 weeks!!\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 12\n\nAnd then cs1442aq@news.uta.edu (cs1442aq) quoth:\n>Nolan Ryan has torn cartlidge inhis right knee.  Is having surgery and\n>is expected to miss 2-5 weeks.  \n\nThat's too bad.  I really had hoped Nolan could end his career with a great\nyear.  I suppose there is still hope.\n\n-- \nJason Lee   jplee@oboe.calpoly.edu   jlee@cash.busfac.calpoly.edu    Giants\ne ^ i*pi + 1 = 0    The most beautiful equation in mathematics.      Magic\nFor all sad words of tongue and pen, the saddest are these:          Number:\n     \"It might have been.\"            John Greenleaf Whittier        155\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3618, "properties": {"category": "rec.motorcycles", "text": "From: nelson@seahunt.imat.com (Michael Nelson)\nSubject: Re: extraordinary footpeg engineering\nNntp-Posting-Host: seahunt.imat.com\nOrganization: SeaHunt, San Francisco CA\nLines: 18\n\nIn article <1qt19d$2fj@vtserf.cc.vt.edu> ranck@joesbar.cc.vt.edu (Wm. L. Ranck) writes:\n>exb0405@csdvax.csd.unsw.edu.au wrote:\n>\n>Let me guess.  You were making a left turn, correct?  The edge of the stud\n>contacting the road caused it to turn and unthread itself.  If you had \n>been making a right turn it would have tightened the stud. \n\n\tBzzzt! Thanks for playing.  If he'd been making a right\n\tturn, the sucker would have been a couple feet off the\n\tground.\n\n\t\t\t\t\tMichael\n\n-- \n+-------------------------------------------------------------+\n| Michael Nelson                                1993 CBR900RR |\n| Internet: nelson@seahunt.imat.com                 Dod #0735 |\n+-------------------------------------------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3619, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: Defensive Averages 1988-1992 -- Shortstop\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 25\n\nIn article <1993Apr17.200602.8229@leland.Stanford.EDU> addison@leland.Stanford.EDU (Brett Rogers) writes:\n>In article <steph.735027990@pegasus.cs.uiuc.edu> steph@pegasus.cs.uiuc.edu (Dale Stephenson) writes:\n>>>Smith, Ozzie           .742  .717  .697  .672  .664   0.701\n>>  The Wizard's 1988 is the second highest year ever.  Still very good,\n>>but I don't like the way his numbers have declined every year.  In a few\n>>years may be a defensive liability.\n\n>That's rich... Ozzie Smith a defensive liability...\n\nWhy?  Do you suppose he's immune to the ravages of time?  He's 37.  \nIn a few years he'll be 40.  He doesn't get to as many grounders as\nhe used to, and will get to fewer still as his legs go, as they do\non every human so far.\n\nRemember: Willie Mays was a defensive liability at he end of his\ncareer too.  Ditto Mickey Mantle.  Ditto just about everyone else who \nplayed into their late 30's.\n\nRoger\n>Brett Rogers\n>addison@leland.stanford.edu\n>\n>\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3620, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: NHL Team Captains\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 36\n\nIn <1993Apr19.022113.12134@ann-arbor.applicon.slb.com> colling@ann-arbor.applicon.slb.com (Michael Collingridge) writes:\n\n>And, while we are on the subject, has a captain ever been traded, \n>resigned, or been striped of his title during the season? Any other \n\nThe Leafs have always been kind of comical.  During the second  Imlach\nera, when Darryl Sittler was called a \"cancer on the team\", he tore the\nC off his sweater and for a while the Leafs didn't have a Captain.\n\nSittler eventually ended up in Philly and he was promised  the  Philly\ncaptaincy  by  new  GM  (and Sittler's friend) Bobby Clarke.  Instead,\nSittler got traded to Detroit.\n\nRick Vaive was the Leaf Captain for awhile but he slept in one day and\nthey took the captaincy away from him.  Then he was traded to Chicago.\n\nDuring Doug Carpenter's tenure as Leaf coach, in an  attempt  to  kiss\nthe  ass of a sulking Gary Leeman, the Leafs took the A away from Brad\nMarsh to give to Leeman.  Leeman wouldn't take it and when they  tried\nto give it back to Marsh, he wouldn't take it neither.\n\nThe best story I remember about a captain concerned Mel Bridgman, late\nof the Senators.  While he was in Philadelphia, Bobby Clarke, arguably\none of the great captains of all time, was bumped up to the status  of\nplaying coach and so he had to relinquish the captaincy.  Bridgman be-\ncame the new captain.  A reporter asked a Flyer what Bridgman did as a\ncaptain  since  Clarke  was  still  the  undisputed leader amongst the\nplayers.  The reporter was told that Bridgman was in charge of  making\nsure that the soap dispensers in the showers were always full.\n\n\n-- \n\ncordially, as always,                      maynard@ramsey.cs.laurentian.ca \n                                           \"So many morons...\nrm                                                   ...and so little time.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3621, "properties": {"category": "comp.windows.x", "text": "From: rlee@ssdc.SSDC.Sterling.COM (Richard Lee)\nSubject: Re: Pulldown menu periodically hangs application on OpenWindows 3.0\nOrganization: Sterling Software IMD. (Vienna,Va)\nLines: 26\nDistribution: inet\nNNTP-Posting-Host: ssdc.ssdc.sterling.com\nX-Newsreader: TIN [version 1.1 PL6]\n\nSkip Koppenhaver (skip@eco.twg.com) wrote:\n: \n: Has anyone found a fix for the following problem?\n: \n: Client Software:\tSunOs 4.1.1, X11R5\n: Server Hardware:\tSun IPC\n: Server Software:\tSunOs 4.1.1, Open Windows 3.0 (w/ patch 100444-37)\n: \n: A Motif 1.2.2 application will periodically hang when run against the\n: OpenWindows 3.0 server (xnews). The pulldown is displayed but then no\n: button actions have any effect. Sometimes pressing <Return> will\n: unstick the application but not usually. It looks like the pulldown is\n: grabbing the focus and never letting go. Other windows on the display\n: continue to get updated so the server isn't hanging. If I log in from\n: another terminal and kill the Motif application then everything gets\n: back to normal. The same application when run against other X servers\n: (including MIT X11R5 Xsun, DecWindows, Tektronix X terminal) has no\n: problems. This is obviously a OpenWindows problem but I need a\n: work-around since most of our customers are OpenWindows users.\n\nI have seen the same problem using a SPARCStation 10, Solaris 2.1, OW 3.1.\nIn my case, it happens far more often than \"periodically\".\n\nHelp?\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3622, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: michael@jester.GUN.de (Michael Gerhards)\nDistribution: world\nSubject: Re: Modems and UARTs\nX-Newsreader: TIN [version 1.1 PL8]\nOrganization: private COHERENT system\nLines: 33\n\nRYAN JEFFREY BAUCOM (rjbaucom@eos.ncsu.edu) wrote:\n> 1) What is a 16550 UART?\n\nI don't know the exact meaning of UART, but I think it is something like\nUniversal Arithmetic Receiver Transmitter. Normally, the older boards have\na 8250 or 16450 UART on board. Those chips generate an IRQ for every char\nthey received. The 16550 UART has an internal 16 byte buffer, so - with the\nright software installed - it generates an IRQ every 16 chars. \n\n> 2) What does it do for high-speed modems?\n> 3) Is it necessary for 14.4k or higher throughput?\n\nIf you ran dos, you don't need a 16550, because dos runs only ONE task at a\ntime and the whole cpu-power could be used for the transfer. But if you are\nrunning a multitasking OS such as OS/2, Unix, etc. ( windows ? :-) ), the\ncpu cannot work the whole time with one task. \n\nThe result are lost characters or broken transmissions because of timeouts.\n\n> 4) Is it only for internal modems?\n\nNO. The only diffrence is that internal modems have the UART on board,\nwhereas external modems are connected to the computer over a serial port\nwhich has the UART on board.\n\n> If you have any experience with 9600 or higher speed modems, please\n> let me know what you think.  Also, any particular brand name reccomended,\n> or will a cheapo clone do just a well?\n\nI use a Zyxel1496B with a 16550UART under COHERENT 4.0. I'm very satisfied\nwith it but I think that nearly everyone is satisfied with his own modem.\n\nMichael\n--\n*  michael@jester.gun.de  *   Michael Gerhards   *   Preussenstrasse 59  *\n                          *  Germany 4040 Neuss  *  Voice: 49 2131 82238 *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3623, "properties": {"category": "rec.sport.hockey", "text": "From: hahietanen@tnclus.tele.nokia.fi\nSubject: TPS will stay on the top...\nLines: 23\nNntp-Posting-Host: tne01.tele.nokia.fi\nOrganization: Nokia Telecommunications.\n\nMIGHTY ONES GET MIGHTIER:\n\nTPS, the Finnish Champions 1992/3, are getting still stronger!\n\nI just heard some news, according to which TPS has acquired\nthe next Finnish hockey superstar(??) Jere Lehtinen from Kiekko-Espoo!\n\nThere are also some rumours about Erik Kakko (Reipas) and Marko Jantunen\n(KalPa) being traded to TPS. Both of this players are currently on the\nFinnish olympic team. I think that Jantunen is drafted to the NHL, too.\n\nBTW. Is Juha Yl|nen (centre, HPK) drafted by the Jets?? During last year\nhe has reached the top level among Finnish centres. He had very good\nplayoff games against TPS!\n\n  Hannu\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n>>>>>>>>>>>>> GO  JETS  GO ! >>>>>>>> TEEMU ! >>>>>>> TEPPO ! >>>>>>>>>>>>>\n>>>>>>>>>>>>> TAPPARA >>>>>> CANADIENS >>>>>>> BLACKHAWKS >>>>>>>>>>>>>>>>>\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n \n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3624, "properties": {"category": "soc.religion.christian", "text": "From: vbv@nomad.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.)\nSubject: Re: The arrogance of Christians\nOrganization: Case Western Reserve Univ. Cleveland, Ohio (USA)\nLines: 90\n\nIn article <Apr.21.03.25.34.1993.1316@geneva.rutgers.edu> caralv@caralv.auto-trol.com (Carol Alvin) writes:\n>vbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) writes:\n>> \n>> Hold it.  I said that all of scripture is true.  However, discerning\n>> exactly what Jesus, Paul and company were trying to say is not always so\n>> easy.  I don't believe that Paul was trying to say that all women should\n>> behave that way.  Rather, he was trying to say that under the circumstances\n>> at the time, the women he was speaking to would best avoid volubility and\n>> cover their heads.  This has to do with maintaining a proper witness toward\n>> others.  Remember that any number of relativistic statements can be derived\n>> from absolutes.  For instance, it is absolutely right for Christians to\n>> strive for peace.  However, this does not rule out trying to maintain world\n>> peace by resorting to violence on occasion.  (Yes, my opinion.)\n>\n>I agree that there is truth in scripture.  There are principles to be \n>learned from it.  Claiming that that truth is absolute, though, seems \n>to imply a literal reading of the Bible.  If it were absolute truth \n>(constant across time, culture, etc.) then no interpretation would be \n>necessary.\n\nI strongly disagree that absolute truth would not require interpretation.\nThat's because truth may be absolute, but it may not be obvious.  Like\nso many things, the truth is always subject to misinterpretation.\n\nI strongly suspect that we are reaching an impasse here, which is why I\ndeign from commenting much further.\n\n>> Sure.  The Bible preaches absolute truths.  However, exactly what those\n>> truths are is sometimes a matter of confusion.  As I said, the Bible does\n>> preach absolute truths.  Sometimes those fundamental principles are crystal\n>> clear (at least to evangelicals).  \n>\n>This is where the arrogance comes in to play.  Since these principles \n>are crystal clear to evangelicals, maybe the rest of us should just take\n>their word for it?  Maybe it isn't at all crystal clear to *me* that \n>their fundamental principles are either fundamental *or* principles.\n\nNow hold it.  I never said that Christians cannot be arrogant.  Indeed, as\nmany other Christians on SRC have stressed before, this is a trap that\nChristians must always be wary about.  However, this does not mean that if\nyou believe in the absolutes established by the Bible, you are necessarily\nbeing arrogant.  A Christian can believe that the Word of God is absolute,\nbut he or she should not expect this to be immediately evident to everyone.\n \n>So, I think that your position is:\n>The Bible is absolute truth, but as we are prone to error in our \n>interpretation, we cannot reliably determine if we have figured out \n>what that truth is.\n>Did I get that right?\n\nNot quite.  You say that according to my stance, we cannot *reliably*\ndetermine what is true.  That is not what I said.  I say that as fallible\nhuman beings, we cannot discern the truth with 100% certainty.  The \ndistinction is subtle yet important.\n\nWhen a scientist performs an experiment, he can claim that his results\nare reliable, without claiming that absolutely no mistake whatsoever could\nhave been made.  In other words, he can admit that he could be mistaken,\nwithout sacrificing his convictions.\n\nNobody can establish what absolute truth is with 100% certainty.\nThroughout the centuries, philosophers have argued about what we can know\nwith complete certainty and what we cannot.  Descartes made a step in the\nright direction when he uttered, \"Cogito, ergo sum,\" yet we have not advanced\nmuch beyond that.\n\nDo you believe that other people aside from you exist?  Do you believe that\nthe computer terminal you are using exists?  If so, can you be absolutely\ncertain about that?  Are you sure it is not some grand illusion?  Of course,\nyou have no such assurance.  This does not mean, however, that for all\npractical purposes, you can be certain that they exist.  So it is with\nChristianity.  The most mature Christians I know have deep convictions about\nabsolute morality, yet they acknowledge that there is a non-zero probability \nthat they are wrong.  This does not, however, mean that they should (or do) \nabandon these absolutes.\n\n>What's the point of spending all this time claiming and defending \n>absolute truth, when we can never know what those truths are, and we \n>can never (or at least shouldn't) act upon them?  What practical \n>difference can this make?\n\nAs I said, we can never be absolutely certain that we are correct.  This does\nnot mean that we cannot be certain enough, in light of the evidence, to \nrender all doubts unreasonable.\n\n-- \nVirgilio \"Dean\" Velasco Jr, Department of Electrical Eng'g and Applied Physics \n\t CWRU graduate student, roboticist-in-training and Q wannabee\n    \"Bullwinkle, that man's intimidating a referee!\"   |    My boss is a \n   \"Not very well.  He doesn't look like one at all!\"  |  Jewish carpenter.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3625, "properties": {"category": "comp.graphics", "text": "From: stjohn@math1.kaist.ac.kr (Ryou Seong Joon)\nSubject: WANTED: Multi-page GIF!!\nOrganization: Korea Advanced Institute of Science and Technology\nX-Newsreader: Tin 1.1 PL3\nLines:       12\n\nHi!... \n\nI am searching for packages that could handle Multi-page GIF\nfiles...    \n\nAre there any on some ftp servers?\n\nI'll appreciate one which works on PC (either on DOS or Windows 3.0/3.1).\nBut any package works on Unix will be OK..\n\nThanks in advance...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3626, "properties": {"category": "sci.space", "text": "From: HoffmanE@space1.spacenet.jhuapl.edu (Hoffman, Eric J.)\nSubject: Re: Drag free satellites\nOrganization: UTexas Mail-to-News Gateway\nLines: 37\nNNTP-Posting-Host: cs.utexas.edu\n\nIn article <1raee7$b8s@access.digex.net> prb@access.digex.com (Pat) writes:\n>In article <23APR199317325771@kelvin.jpl.nasa.gov> baalke@kelvin.jpl.nasa.gov\n(Ron Baalke) writes:\n>> In answer\n>>to a question from Hawking, Chahine described a proposed\n>>drag-free satellite, but confirmed that at this point, \"it's only\n>>a concept.\"\n>\n>SO what's a drag free satellite?   coated with WD-40?\n\n\n     TRIAD, the first drag-free satellite, was designed and built by the \nJohns Hopkins Applied Physics Laboratory and launched 2 Sept 1972.  The \nsatellite was in three sections separated by two booms.  The central section \nhoused the DISCOS Disturbance Compensation System, which consisted of a proof \nmass of special non-magnetic alloy housed within a spherical cavity.  The \nproof mass flew a true gravitational orbit, free from drag and radiation \npressure.  Teflon microthrusters kept the body of the satellite centered \naround the proof mass, thereby flying the entire satellite drag free.\n\n     TRIAD was one of the APL-designed Navy Navigation Satellites.  The \n2nd-generation operational navigation satellites flying today (NOVA) use a \nsingle-axis version of DISCOS.  TRIAD was also the sixth APL satellite to be \npowered by an RTG (APL flew the first nuclear power supply in space, in 1961).\n\n     Further info on TRIAD, DISCOS, etc. can be found in \"Spacecraft Design \nInnovations in the APL Space Department,\" Johns Hopkins APL Technical Digest, \nVol. 13, No. 1 (1992).\n\n                                                      --Eric Hoffman\n\n\n\n\n\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3627, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: KORESH IS GOD!\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.01\nLines: 5\n\nThe latest news seems to be that Koresh will give himself up once he's\nfinished writing a sequel to the Bible.\n\n\nmathew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3628, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Cornerstone DualPage driver wanted\nFrom: tkelder@ebc.ee (Tonis Kelder)\nNntp-Posting-Host: kask.ebc.ee\nX-Newsreader: TIN [version 1.1 PL8]Lines: 13\nLines: 13\n\n\n\n\nI am looking for a WINDOW 3.1 driver  for \n     Cornerstone  DualPage (Cornerstone Technology, Inc) \nvideo card. Does  anybody know, that has these?  Is there one?\n\nThanks for any info,\n\nTo~nis\n-- \nTo~nis Kelder    Estonian Biocentre     (tkelder@kask.ebc.ee)\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3629, "properties": {"category": "alt.atheism", "text": "From: dfuller@portal.hq.videocart.com (Dave Fuller)\nSubject: Re: Death Penalty (was Re: Political Atheists?)\nOrganization: VideOcart Inc.\nX-Newsreader: Tin 1.1 PL3\nLines: 23\n\n: >> The death penalty was conceived as a deterrent to crime,  but the legal\n: >> shenanigans that have been added (automatic appeals, lengthy court\n: >> battles, etc.) have relegated that purpose to a very small part of what\n: >> it should be.  Hence the question is,  do we instate the death penalty as\n: >> it was meant to be, and see if that deters crime, or do we get rid of\n: >> it entirely?\n\n  I doubt the death penalty was supposed to be a \"deterrent\" to crime. If so,\nwhy doesn't every crime carry a death penalty ? That would be effictive\nwouldn't it ???\n\n  The death penalty is a punishment, much like a $50 fine for speeding is\na punishment. Anyway, somebody with murder on the mind doesn't much care\nabout the consequences. I think another problem is that people dont think\nthey will get caught. If I wanted to kill another person, I wouldn't \ncare what the penalty was if I didn't think I would get caught.\n\n  If it was to be strictly a deterrent, it should have been more along \nthe lines of torture.\n\nDave Fuller\ndfuller@portal.hq.videocart.com\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3630, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wally@Auspex.COM (Wally Bass)\nSubject: Re: Date is stuck\nOrganization: Auspex Systems, Santa Clara\nLines: 35\nNntp-Posting-Host: alpha1-e5.auspex.com\n\nIn article <1993Apr19.055039.29715@oec4.orbital.dialix.oz.au>\n    oecjtb@oec4.orbital.dialix.oz.au (John Bongiovanni) writes:\n  [stuff deleted]\n>Did I once hear that in order for the date to advance, something, like a \n>clock, *has* to make a Get Date system call? Apparently, the clock\n>hardware interrupt and BIOS don't do this (date advance) automatically. The\n>Get Date call notices that a \"midnight reset\" flag has been set, and then\n>then advances the date.\n>\n>Anybody with more info?\n\nThere are two 'problems':\n(1) the BIOS TOD routine which updates the BIOS clock uses only 1 bit\n    for day increment, so a second wrapping of the clock past midnight\n    will get lost if no one calls the BIOS to read the clock in the\n    meantime, and\n(2) the BIOS resets the day wrap indicator on the first 'get date'\n    call from ANYBODY (after the wrap indicator has been set). So\n    unless the first BIOS 'get date' call after midnight is done by\n    the DOS 'kernel' (which is the only part of DOS which knows how to\n    increment the date, the day wrap indication is normally lost.\nMy guess is that Kevin's 'menu' system uses BIOS calls to read the\nclock (in order to display the time), and is hence the entity which\ncauses the day wrap indication to get lost. Even if the 'menu' system\n'notices' the day 'wrap' (which I think is indicated by a non-zero\nvalue in AL), there really isn't any particularly good way to tell DOS\nabout it, so that DOS can update the day. The menu system 'should' use\nDOS calls to get the time, which would cause the DOS 'kernel' to do\nthe BIOS call, and the wrap indicator would hence be processed\nproperly.  Possibly, though, the 'menu' system can't easily use DOS\ncalls for time, because DOS is not reentrant, and perhaps time\nincrementing ofters occur while the 'menu' system is 'inside' some\nother DOS call.\n\nWally Bass\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3631, "properties": {"category": "sci.med", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: Barbecued foods and health risk\nOrganization: The Portal System (TM)\nLines: 72\n\nThis reminds me of the last Graham Kerr cooking show I saw.  Today he\nsmoked meat on the stovetop in a big pot!  He used a strange technique\nI'd never seen before.\n\nHe took a big pot with lid, and placed a tray in it made from aluminum foil.\nThe tray was about the size and shape of a typical coffee-table ash tray,\nmade by crumpling a sheet of foil around the edges.\n\nIn the tray, he placed a couple spoonfuls of brown sugar, a similar\nquantity of brown rice (he said any rice will do), the contents of two\nteabags of Earl Grey tea, and a few cloves.\n\nOn top of this was placed an ordinary aluminum basket-type steamer, with\ntwo chicken breasts in it.  The lid was put on, and the whole assembly\nwent on the stovetop at high heat for 10 or 12 minutes.\n\nLater, he removed what looked like smoked chicken breasts.  What surprises\nand concerns me are:\n\n1)  No wood chips.  Where does the smoke flavor come from?\n\n2)  About 5 or 10 years ago, I remember hearing that carmel color\n    (obtained by caramelizing sugar -- a common coloring and flavoring\n    agent) had been found to be carcinogenic.  I believe they injected\n    it under the skin of rats, or something.  If the results were conclusive,\n    caramel color would not be legal in the U.S., yet it is still being\n    used.  Was the initial research result found to be incorrect, or what?\n\n3)  About 5 or 10 years ago, I remember Earl Grey tea being implicated\n    as carcinogenic, because it contains oil of bergamot (an extract\n    from the skin of a type of citrus fruit).  Does anyone know whatever\n    happened with that story?  If it were carcinogenic, Earl Grey tea\n    could not have it as an additive, yet it apparently continues to do\n    so.\n\nWRT natural wood smoke (I've smoking a duck right now, as it happens),\nI've noticed that a heavily-smoked food item will have an unpleasant tangy\ntaste when eaten directly out of the smoker if the smoke has only recently\nstopped flowing.  I find the best taste to be had by using dry wood chips,\ngetting lots of smoke right up at the beginning of the cooking process,\nthen slowly barbequing for hours and hours without adding additional wood chips.\n\nMy theory is that the unpleasant tangy molecules are low-molecular weight\nstuff, like terpenes, and that the smoky flavor molecules are some sort\nof larger molecule more similar to tar.  The long barbeque time after\nthe initial intensive smoke drives off the low-molecular weight stuff,\njust leaving the flavor behind.  Does anyone know if my theory is correct?\n\nI also remember hearing that the combustion products of fat dripping\non the charcoal and burning are carcinogenic.  For that reason, and because\nit covers the product with soot and some unpleasant tanginess, I only grill\nnon-drippy meats like prawns directly over hot coals.  I do stuff like this\nduck by indirect heat.  I have a long rectangular Weber, and I put the coals\nat one end and the meat at the other end.  The fat drops directly on the\nfloor below the meat, and next time I use the barbeque I make the fire\nin that end to burn off the fat and help ignite the coals.\n\nAnd yet another reason I've heard not to smoke or barbeque meat is that\nsmoked cured meat, like pork sausage and bacon, contains\nnitrosamines, which are carcinogenic.  I'm pretty sure this claim actually\nhas some standing, don't know about the others.\n\nAn amusing incident I recall was the Duncan Hines scandal, when it was\ndiscovered that the people who make Duncan Hines cake mix were putting\na lot of ethylene dibromide (EDB) into the cake mix to suppress weevils.\nThis is a fumigant which is known to be carcinogenic.\nThe guy who represented the company in the press conference defended\nhimself by saying that the risk from eating Duncan Hines products every day\nfor a year would be equal to the cancer risk from eating two charcoal-\nbroiled steaks.  What a great analogy!  When I first heard that, my\nimmediate reaction was we should make that a standard unit!  One charcoal\nbroiled steak would be equivalent to 0.5 Duncans!\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3632, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: rejoinder. Questions to Israelis\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 169\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <1483500352@igc.apc.org>, Center for Policy Research <cpr@igc.apc.org> writes:\n|> \n|> From: Center for Policy Research <cpr>\n|> Subject: rejoinder. Questions to Israelis\n|> \n|> \n|> To:  shaig@Think.COM\n|> \n|> Subject: Ten questions to Israelis\n|> \n|> Dear Shai,\n|> \n|> In the answer to my first question, concerning the nonexistence of\n|> Israeli nationality, your answer conflicts with information I have\n|> received from other quarters, according to which there are two\n|> distinct categories of classifying Israelis:  Citizenship\n|> (Ezrahut) and Nationality (Le'um). The former is used on passports\n|> etc, and the later for daily identification in Israeli society. I\n|> am told that people in Israel have to carry their ID cards at all\n|> times and present them at many public places, almost every day.\n|> These ID cards make clear who the holder is, a Jew or an Arab.\n|> You maintain that this mainly because of religious services\n|> provided. But do you really believe that this is the reason ?\n|> Could you provide evidence that this is the case and that it\n|> serves no other purpose ?\n\nA number of points.  You are making assumptions about the manner\nin which the cards are used.  True, by law, all residents, citizens,\nand tourists must carry a form of identification with them.  For\ncitizens, the standard ID is the ID card.  The purpose this serves\non a daily basis, wherein they are presented at public places,\nis for the purpose of identifying the bearer.  This takes place\nin banks (cashing checks), post offices (registered mail and such), etc...\nQuite frankly, it was rare that I ever had to present my ID card\nfor such activities more than once per week.  There is no law or\nrequirement that forces people to wave their ID cards in public.\nFurthermore, none of the services I outlined discriminate against\nthe bearer in any manner by having access to this information.\n\nThe only case that I can think of in which the Le'um field might\nbe taken into account is during interaction with the police,\nbased upon the scenario.  In general though, arab citizens are\nclearly recognizable, as are non-arabs. Your argument therefore\nbecomes moot unless you can provide an example of how this field\nis being used to discriminate against them officially.\n\n\n|> In the answer to my second questions, concerning the fact that\n|> Israel has no fixed borders, you state that Israel's borders were\n|> 'shaped and reshaped by both war and peace'. According to what I\n|> read, the first Zionists in the beginning of the Century, had\n|> plans for the Jewish State to extend into what is Lebanon and into\n|> Transjordan (Jordan). I also read that it was the express wish of\n|> Ben-Gurion to not declare Israel's borders, when Israel was\n|> established, as this might restrict Israel's opportunities for\n|> later expansion. Israel often claims it right of existence on the\n|> fact that Jews lived there 2000 years ago or that God promised the\n|> land to them. But according to biblical sources, the area God\n|> promised would extend all the way to Iraq. And what were the\n|> borders in biblical times which Israel considers proper to use\n|> today ?  Finally, if Israel wants peace, why can't it declare what\n|> it considers its legitimate and secure borders, which might be a\n|> base for negotiations? Having all the above facts in mind, one\n|> cannot blame Arab countries to fear Israeli expansionism, as a\n|> number of wars have proved (1948, 1956, 1967, 1982).\n\nI take issue with your assertions.  I think that Arab countries\ndo know that they have nothing to fear from \"Israeli expansionism\".\nMilitarily, Israel is not capable of holding onto large tracts of\nland under occupation to a hostile, armed, and insurgent population for a\nsustained period of time.  As is, the intifada is heavily taxing\nthe Israeli economy.  Proof of this can be seen in the Israeli\nwithdrawal from Lebanon.  Israeli troops pulled back from the\nAwali, and later from the Litani, in order to control the minimal\nstrip needed to keep towns out of range of Katyusha missile fire.\nPublic opinion in Israel has turned towards settling the intifada\nvia territorial concessions.  The Israel public is sufferring from\nbattle fatigue of sorts and the gov't is aware of it.\n\nWith regards to borders, let me state the following.  I may not agree\nwith the manner in which negotiations are being held, however the crux\nof the matter is that everyone either makes or refrains from stating\na starting position.  The arab parties have called for total withdrawal\nand a return to pre-48 borders.  If Israel were to state large borders,\nthe negotiations might never get under way.  If Israel were to state\nsmaller borders, then the arab countries might try and force even smaller\nborders during the negotiations.  I think that leaving the matter to be\nsettled by negotiations and peace treaties is infinitely more realistic\nand sensible.\n\n|> Your answer to my third question is typical of a Stalinist public\n|> official. I don't think your answer is honest.  You refer me to\n|> Vanunu's revelations about Israel's nuclear arsenal without\n|> evaluating the truthfullness of his revelations. Now if he said\n|> the truth, then why should he been punished, and if he lied, why\n|> should he be punished? I would appreciate more honesty.\n\nYour statement is typical of the simple minded naivety of a \"center for\npolicy research\".  Whether or not all of Vanunu's revelations were true has no\nbearing on the fact that some were.  For disclosing \"state secrets\"\nafter having signed contracts and forms with the understanding that\nsaid secrets are not to be made public, one should be punished.\nAs to which were and which weren't, I am under no moral obligation\nto disclose that - quite the reverse in fact.\nHe was taken to court, tried, and found guilty.  You may take issue\nwith a number of things but clearly you have no understanding of the\nconcept of \"Secrets of state\", something which every democratic govt\nhas.\n\n|> Somebody provided an answer to the fourth question, concerning\n|> 'hidden prisoners' in Israeli prisons. He posted an article from\n|> Ma'ariv documenting such cases.  It seems that such prisoners do\n|> exist in Israel. What do you think about that ?\n\nI noticed that he was documenting the fact that such prisoners could exist\nmore than he documented the fact that they do exist.  The CLU noted,\nwhich you evidently did not pay attention to, that they know of no such\nreports or cases.  I am sorry to tell you but in a country of 4 mill,\nas tightly knit as Israel, even if the matter of the arrest was not\nmade public, within a relatively short time frame, most people would know\nabout it.  My own feelings are that the matter of the arrest should be\nmade public unless a court order is issued allowing a delay of X hours.\nThis would be granted only if a judge could be convinced that an\nannouncement would cause irreparable harm to the ongoing investigation.\n\n|> You imply that my questions show bias and are formulated in such a\n|> way to 'cast aspersions upon Israel'. Such terms have often been\n|> used by the Soviet Union against dissidents: They call the Soviet\n|> Union into disrepute. If my questions are not disturbing, they\n|> would not call forth such hysterical answers. My questions are\n|> clearly provocative but they are meant to seek facts. I would be\n|> very happy if you could convince me that what I am told about\n|> Israel were just fabrications, but alas you have failed to do so.\n|> I suspect that you fear the truth and an open and honest\n|> discussion. This is a sign of weakness, not of strength.\n\nWell, I am sorry to say that your questions are slanted.  Such\nquestions are often termed \"tabloid journalism\" and are not\ndisturbing because they avoid any attempt at objectivity.\nSuch questions were often used during the McCarthy era as\na basis for the witch-hunts that took place then.  To use\nyour own example, these questions might have been lifted\nfrom the format used by Stalinist prosecutors that were looking\nfor small bits of evidence that they could distort and portray\nas a larger and dirtier picture.\n\nMy answers were not any more \"hysterical\" than the questions\nthemselves.  The problem is not that the q's were provocative,\nit was that they were selective in their fact seeking.  You\nfall into the same category of those who seek \"yes\" \"no\" answers\nwhen the real answer is \"of sorts\".\nI suspect that as long as the answers to these questions is not an\nunequivocal NO, you would remain unsatified and choose to interprete\nthem as you see fit.  A sign of strength is the ability to look\nYou remind me of those mistaken environmentalists who once advocated\nculling wolves because of the cruelty to deer, only to find that they\nhad broken the food chain and wreaked havoc upon the very environment\nthey sought to protect.  The color blindness you exhibit is a true\nsign of weakness.\n\n|> I hope you will muster the courage to seek the full truth.\n\nDitto.\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninja of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3633, "properties": {"category": "rec.motorcycles", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Re: Hell-mets.\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 56\n\nIn article <217766@mavenry.altcit.eskimo.com> maven@mavenry.altcit.eskimo.com (Norman Hamer) writes:\n>\n> \n> Having talked to a couple people about helmets & dropping, I'm getting \n>about 20% \"Don't sweat it\", 78% \"You might think about replacing it\" and the \n>other 2% \"DON'T RIDE WITH IT! GO WITHOUT A HELMET FIRST!\"\n> \n> Is there any way to tell if a helmet is damaged structurally? I dropped it \n>about 2 1/2 feet to cement off my seat, chipped the paint. Didn't seem to \n>screw up the actual shell. \n\nI'd bet the price of the helmet that it's okay...From 6 feet\nor higher, maybe not.\n\n> If I don't end up replacing it in the real near future, would I do better \n>to wear my (totally nondamaged) 3/4 face DOT-RATED cheapie which doesn't fit \n>as well or keep out the wind as well, or wearing the Shoei RF-200 which is a \n>LOT more comfortable, keeps the wind out better, is quieter... but might \n>have some minor damage?\n\nI'd wear the full facer, but then, I'd be *way* more worried\nabout wind blast in the face, and inability to hear police\nsirens, than the helmet being a little damaged.\n\n\n> Also, what would you all reccomend as far as good helmets? I'm slightly \n>disappointed by how badly the shoei has scratched & etc from not being \n>bloody careful about it, and how little impact it took to chip the paint \n>(and arguably mess it up, period)... Looking at a really good full-face with \n>good venting & wind protection... I like the Shoei style, kinda like the \n>Norton one I saw awhile back too... But suspect I'm going to have to get a \n>much more expensive helmet if I want to not replace it every time I'm not \n>being careful where I set it down.\n\nWell, my next helmet will be, subject to it fitting well, an AGV\nsukhoi. That's just because I like the looks. My current one is\na Shoei task5, and it's getting a little old, and I crashed in\nit once a couple of years ago (no hard impact to head...My hip\ntook care of that.). If price was a consideration I'd get\na Kiwi k21, I hear they are both good and cheap.\n\n> Christ, I don't treat my HEAD as carefully as I treated the shoei as far as \n>tossing it down, and I don't have any bruises on it. \n\nBe *mildly* mildly paranoid about the helmet, but don't get\ncarried away. There are people on the net (like those 2% you\nmentioned) that do not consistently live on our planet...\n\nRegards, Charles\nDoD0.001\nRZ350\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3634, "properties": {"category": "misc.forsale", "text": "From: alee@ecs.umass.edu\nSubject: ***** HP calculator for $13 *****\nLines: 13\n\nGreetings!\n       \n          HP 20s forsale.\n          comes with case\n          no manuals\n          excellent condition\n          \n          asking for $13.00\n\n          If interested, please E-mail today.\n              \n                                                       Al\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.165+0000", "event": "documents", "entityId": 3635, "properties": {"category": "sci.space", "text": "From: 18084TM@msu.edu (Tom)\nSubject: Moonbase race\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 26\n\nFrom: Gene Wright <gene@theporch.raider.net>\n\n>With the continuin talk about the \"End of the Space Age\" and complaints\n>by government over the large cost, why not try something I read about\n>that might just work.\n\n>Announce that a reward of $1 billion would go to the first corporation\n>who successfully keeps at least 1 person alive on the moon for a year.\n>Then you'd see some of the inexpensive but not popular technologies begin\n>to be developed. THere'd be a different kind of space race then!\n\nI'll say!  Imagine that there were a couple groups up there, maybe landing\na few weeks apart.  The year-mark starts coming on for the first group.\nIsn't a billion pretty good incentive to take a shot at a potential\nwinner?  \"Yeah, that's a shame that Team A's life support gave out\nso close to the deadline.  Thanks for the billion.\"\n\nOn the other hand, if Apollo cost ~25billion, for a few days or weeks\nin space, in 1970 dollars, then won't the reward have to be a lot more\nthan only 1 billion to get any takers?\n\n-Tommy Mac\n-------------------------------------------------------------------------\nTom McWilliams 517-355-2178 wk   \\\\ As the radius of vision increases,\n18084tm@ibm.cl.msu.edu 336-9591 hm \\\\ the circumference of mystery grows.\n-------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3636, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wil@shell.portal.com (Ville V Walveranta)\nSubject: Re: Digitizing tablet questions\nNntp-Posting-Host: jobe\nOrganization: Portal Communications Company\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 15\n\nRithea Hong (r0h7630@tamuts.tamu.edu) wrote:\n: I'm in the market for all small (12x12 or so) digitizing tablet and would\n: like any comments.  The main names I see are Calcomp, Summagraphics, and \n: Kurta.  What are the major differences?  Any particular preference?  Also\n: what should I look for and what should I avoid?  Thanks for any input\n: you can provide.\n\n\n:                               Rithea Hong\n:                        (r0h7630@tamuts.tamu.edu)\n--\n   *    Ville V. Walveranta      Tel./Fax....: (510) 420-0729     ****\n   **   96 Linda Ave., Apt. #5   From Finland: 990-1-510-420-0729  ***\n   ***  Oakland, CA  94611-4838  (FAXes automatically recognized)   **\n   **** USA                      Email.......: wil@shell.portal.com  *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3637, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jbotz@mtholyoke.edu (Jurgen Botz)\nSubject: Reseting LW IIg to factory defaults\nOrganization: Mount Holyoke College\nLines: 11\nNNTP-Posting-Host: orixa.mtholyoke.edu\n\nI have a Laserwriter IIg that has disappeared completely from the\nNetwork, i.e. it's name doesn't show up in any zone.  (You can print\nto it from it's serial interface, tho!)  I have seen some discussion\nhere about changing the zone a IIg is in... including some PS code\nthat lets you change the zone.  Is there maybe some PS code you can\nuse to have it go back to all its factory default settings?  I have\na feeling that's what needed to heal ours.\n-- \nJurgen Botz, jbotz@mtholyoke.edu | Vending machines SHOULD respond to a [finger]\nSouth Hadley, MA, USA            | request with a list of all items currently\n--Unix is dead, long live Unix-- | available for purchase... -RFC1288\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3638, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: pcarmack@gimp.kpc.com (Phil Carmack)\nSubject: Re: ATI ultra pro Drivers? [bad ATI ultra]\nOrganization: Kubota Pacific Computer\nLines: 39\n\nIn article <15APR199321275870@cvdv99.mayo.edu>, fisk@cvdv99.mayo.edu (Tom Fisk | 2D-337 STM | 5-4341) writes:\n|> In article <C5JLDC.HL9@news.cso.uiuc.edu>, jroberts@ux4.cso.uiuc.edu (Robertson) writes...\n|> >Does anybody know the FTP site with the latest Windows drivers for the ATI\n|> >GUP?\n|> >Thanks\n|> > \n|> The latest driver release is 59 and can be found at ftp.cica.indiana.edu\n|> in the pub/pc/win3/... directory structure as pro59.zip.  I checked with ATI's\n|> BBS last nite and there were no releases past 59.\n|> \n|> We have the ATI Local Bus card and I noticed that I get garbage around the\n|> edges of a window when I move it.  Has anybody else noticed this also?\nI have the local bus card also, and don't have any such problems with it\nnow, but this is the second card I've gotten - the first card didn't work\nin VGA mode correctly.  Maybe they still have some quality control problems.\nI would suggest checking with ATI (I went through the vendor I bought the\ncard from since the problem showed up immediately).  I never was able to\nget through to ATI's technical support number.  \n\nI sure like the way the card performs though.  I have the 2MB ATI ultra\npro - local bus, and it is fast even in 1024x768x16bpp mode.\n\n\nCheers,\nPhil\n|> \n|> Tom.\n|> -------------------------------------------------------------------------------\n|> Thomas B. Fisk          +----------------------------+  Internet: fisk@mayo.edu\n|> Mayo Clinic             |   If you don't know where  |  Voice: (507) 255-4341\n|> 200 First Street SW     |  you're going you'll never |  FAX: (507) 255-5484\n|> Mail Stop 2D-337 STM    |         get there.         |\n|> Rochester, MN  55905    +----------------------------+\n|> -------------------------------------------------------------------------------\n\n\n-- \nPhilip Carmack\t\t\t\t| pcarmack@kpc.com\t(408)987-3336\nKubota Pacific Computers, Inc.\t\t|\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3639, "properties": {"category": "comp.graphics", "text": "From: sloan@cis.uab.edu (Kenneth Sloan)\nSubject: Re: Surface normal orientations\nArticle-I.D.: cis.1993Apr6.181509.1973\nOrganization: CIS, University of Alabama at Birmingham\nLines: 16\n\nIn article <1993Apr6.175117.1848@cis.uab.edu> sloan@cis.uab.edu (Kenneth Sloan) writes:\n\nA brilliant algorithm.  *NOT*\n\nSeriously - it's correct, up to a sign change.  The flaw is obvious, and\nwill therefore not be shown.\n\nsorry about that.\n\n\n\n-- \nKenneth Sloan                   Computer and Information Sciences\nsloan@cis.uab.edu               University of Alabama at Birmingham\n(205) 934-2213                  115A Campbell Hall, UAB Station \n(205) 934-5473 FAX              Birmingham, AL 35294-1170\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3640, "properties": {"category": "misc.forsale", "text": "From: alin@nyx.cs.du.edu (ailin lin)\nSubject: 1.2MB external FD for PS/2(extremely cheap)\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 11\n\nSubject: 1.2 External FD for PS/2 (extremely cheap)\n\nI have a brand new 1.2 external floppy drive for PS/2, still in the box.\nI will sell it for $90 + shipping/firm, which is half of the market price\n(check page 474 of Computer Shopper, Apr-93 issue, the price is $179 there).\n\nPlease let me know if you are interested.\n\nAilin \n803-654-8817\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3641, "properties": {"category": "misc.forsale", "text": "From: tsa@cellar.org (The Silent Assassin)\nSubject: Wanted:  286 motherboard, VGA card\nOrganization: The Cellar BBS and public access system\nLines: 9\n\nI am looking for a 286 motherboard, preferable 12 or 16, 640k or 1 meg RAM. \nI am also looking for a VGA card.\n\nAm willing to trade 1200 external, 5.25\" LD Drive, 8088 motherboard,\nmonochrome monitor, Game Boy, in some combination for the above.\n\nLibertarian, atheist, semi-anarchal Techno-Rat.\n\nI define myself--tsa@cellar.org\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3642, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Re: IDE vs SCSI\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 108\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\nwlsmith@valve.heart.rri.uwo.ca (Wayne Smith) write:\n\n>In article <1qpu0uINNbt1@dns1.NMSU.Edu> bgrubb@dante.nmsu.edu (GRUBB) writes:\n>>wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>>Since the Mac uses ONLY SCSI-1 for hard drives YES the \"figure includes a\n>>hundred $$$ for SCSI drivers\"  This is sloppy people and DUMB.\n>What group is this?  This is not a MAC group.\nNice of you to DELETE BOTH YOUR responce and the item that prompted it.\nto whit:\n>>I just bought at Quantum 240 for my mac at home.  I paid $369 for it.  I\n                                      ^^^\n>>haven't seen IDE drives cheaper.\nTo which YOU responded:\n>A friend of mine just got a Maxtor 245 meg IDE drive for $320.  (that's 245\n>million bytes, or 234 mega-bytes).  With the basic $20 interface, he gets\n>close to 1 meg/sec transfer on his 286-20.  Does your figure include a few\n>hundred $$$ for SCSI drivers?\nTo which I correctly pointed out the following:                         \n>Since the Mac uses ONLY SCSI-1 for hard drives YES the \"figure includes a\n>hundred $$$ for SCSI drivers\"  This is sloppy people and DUMB.\nAs I said this is sloppy and DUMB {YOU should resounded by DISCOUNTING the Mac\nNOT giving \"Maxtor 245 meg IDE drive for $320\" example.  By giving an\nexample you give the IMPLIED consent that for MAC info to be INCLUDED\nin the SCSI discusion.}\n\n>>Ok once again with the SCSI spec list:\n>Why the spec list again?  We are talking SCSI on a PC, not on a MAC or\n>a UNIX box.  And we are talking ISA bus, or possibly EISA or VLB.\nOk I will do this V E R Y  S L O W L Y so you can understand\nREGUARDLESS of whether it is a Mac or a PC SCSI-1 and SCSI-2 are DIFFERENT\nfrom each other as is asynchronous and synchronous SCSI-1.  All of these\nhave DIFFERENT SPEEDS and COSTS. Lumping them all together as 'SCSI' is\ndumb and sloppy.  Take again the quote later on as an example of the problem \nin the PC world {The spec list was so that you knew where the numbers were\ncoming from in the article.  It shows the article is CORRECT in it\nstaments about SCSI but not CONSITANT}.\n\n>This isin't comp.periphs.SCSI.\nWith the way this thread has gone how do you tell :-).\n>Tell me what the performance figures are with a single SCSI drive on a PC\n>with an ISA (or EISA or VLB) bus.\nAlready GAVE them.  YOU keep deleting them! So here are the Specs\non everybody AGAIN {With some added info}:\n\nSCSI-1 {SCSI-1 controler chip} asynchronous range: 0-3MB/s\n synchronous range: 0-5MB/s  Both common to the PC world; difference is\n mainly in software not hardware.\n\nSCSI-1 {SCSI-2 controller chip; also called SCSI-2 (8-bit)}: 4-6MB/s with \n10MB/s burst.  This is advertised as SCSI-2 in BYTE 4/93:159 FOR the\n PC and AT THESE SPEEDS.{NOT the Mac, the PC.}\n\n{I have not seen the following for EITHER the Mac or the PC}\nSCSI-2 {16-bit/wide or fast mode}:  8-12MB/s with 20MB/s burst\nSCSI-2 {32-bit/wide AND fast}:     15-20MB/s with 40MB/s burst\n\nOn the other interfaces let DXB132@psuvm.psu.edu speak:\n>IDE ranges from 0-8.3MB/s.                          \n asynchronous range: 0-5MB/s {infered from BYTE 4/93:159}\n synchronous range: 0-8.3MB/s.\n>ESDI is always 1.25MB/s (although there are some non-standard versions)\n\nwlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>Theoretical performance figures are not relevant to this group or this\n>debate.  I'm sure that there are some platforms out there that can\n>handle the 40 megs/sec of SCSI xyz wide'n'fast, but the PC isin't one of\n>them.\nNote that I ALSO give the AVERAGE through put for SCSI-2 which holds true\na Mac OR IBM/PC clone with the correct hardware and software.\nAnd since PC ADVERSIZEMENTS are using Theoretical performance figures WHY \nCANNOT WE?\n\n>>If we are to continue this thread STATE CLEARLY WHICH SCSI you are talking \n>>about SCSI-1 or SCSI-2 or SCSI over all {SCSI-1 AND SCSI-2}\n>>IT DOES MAKE A DIFFERENCE.\n\n>Well maybe if the SCSI design people had their act together than maybe\n>all PC's would have built in SCSI ports by now.\nWith PC articles like the following it is obvious that the problem is NOT with\nSCSI but with the PEOPLE WHO REPORT IT! {Like YOU.}\nLook at the inconsitant use of SCSI in the below quote: \n(My comments in {})\n\"Although SCSI is twice as fast as ESDI,{This is asynchronous SCSI-1 with\na SCSI-1 chip} 20% faster than IDE...\" {this is BOTH asynchronous SCSI-1 with \na SCSI-2 chip AND 8-bit SCSI-2} PC Magazine April 27, 1993:29\nThe ARTICLE is confused, NOT SCSI.  The TERM is a mess from inconsitant use\nNOT because the interface itself is a mess.\n\nSCSI means \"The set of SCSI interfaces composed of SCSI-1 AND SCSI-2\"\nNOT 'SCSI-1' as some people want to use it.\n\nTo read CONSITANTLY the quote SHOULD read:\n{asynchronous SCSI-1 with a SCSI-1 chip}\n\"Although asynchronous SCSI-1 is twice as fast as ESDI, one third the \nspeed of IDE...\"\nor {asynchronous SCSI-1 with a SCSI-2 chip or 8-bit SCSI-2}\n\"Although SCSI-1 with a SCSI-2 chip and 8-bit SCSI-2 are eight times as fast as\nESDI, 20% faster than IDE...\"\n\nNOTE the NONUSE of 'SCSI' by itself.  This eliminates ambaguity.\n\nIf we are to continue this thread STATE CLEARLY WHICH SCSI you are talking \nabout SCSI-1 or SCSI-2 or SCSI over all {SCSI-1 AND SCSI-2}.  Lumping\neverything into SCSI as SCSI-1 is SLOPPY, WRONG, and DUMB.  Inconsitant\nSCSI-1 and SCSI-2 usage is also a problem.  Clean it up now or have\na mess like SVGA was several years ago because everybody and his Uncle\nslapped 'SCSA' an their own monitor inteface {SCSI IS standarized unlike\nSVGA was years ago EXCEPT in terminaology.}\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3643, "properties": {"category": "talk.politics.misc", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: re: fillibuster\nOrganization: University of Tennessee Division of Continuing Education\nLines: 132\n\nIn article <C5JpL7.5Cz@dscomsa.desy.de> hallam@dscomsa.desy.de (Phill Hallam-Baker) writes:\n>\n>In article <1993Apr12.002302.5262@martha.utcc.utk.edu>, PA146008@utkvm1.utk.edu (David Veal) writes:\n>\n>|>>Come to that under the original plan there wasn't meant to be anything\n>|>>much for the federal government to do except keep the British out.\n>|>\n>|>       That's also untrue, but at least we're wandering a little closer\n>|>toward reality.  That the Articles of Confederation fell apart is enough\n>|>proof it was there for just a tad bit more.\n>\n>Well yes and no. The Federalist papers are propaganda and it is therefore\n>difficult to determine precisely what Maddison etc were up to from them. \n\n       There are a couple of ways to look at them.  One is, \"We want\nyou to support this Constitution, so we'll say anything that we think\nwill appeal to you,\" or the more straightforward, \"This is why we think\nwhat we've suggested in this Constitution is a good idea.\"\n\n       You clearly consider the former to be the primary situation.\n\n>They\n>certainly emphasised a limited role for the federal government but this\n>was not necessarily their true position.\n\n       Well, I know Hamilton was a dyed in the wool monarchist, and \nprobably the authoritarian extreme to Jefferson's democratic impules.\nBut what would you suggest as a means of determining their opinions\non the government if we don't consider what they wrote about the\ngovernment?\n\n       And is writing in support of something automatically \"propoganda\"\nto the point we must assume it is untrue or that they are saying what\nthey don't believe?\n\n>|>>And like the house of lords which it is copied from it was given pretty\n>|>>wide powers. Unfortunately they started to use them and thus the gridlock\n>|>>set in.\n>|>\n>|>       I wasn't aware the House of Lords had \"wide powers.\"  I was under the\n>|>impression is was pretty powerless compared to the House of Commons, and\n>|>certainly didn't have almost equal their powers.  (The Senate is restricted\n>|>only that it may not introduce bills relating to raising revenue.)\n>\n>The Senate was less powerful than the House of Lords in the period in \n>question.\n\n       If the Senate was less powerful than the House of Lords, than\nwe'd almost have to state that the House of Representatives was also.\n(In fact, they both were, because the British government had much\ngreater power than did the American system).       \n\n>|>       My reading of the Constitution and other writings gives me absolutely\n>|>no reason to believe the Senate wasn't intended to make use of their \n>|>law-making powers.  In fact, grid-lock appears to have been designed\n>|>into the system, with the Senate being a more deliberative body to act\n>|>as a check on the more-often elected House.\n>\n>The system is meant to be slow to react, the problem is that it ended up\n>a bit too slow.\n\n       I disagree.  The system is not too slow, it was simply designed to\nhandle less than it has demanded that it handle.  As somebody in Washington\nput it (whose name I forget), \"Congress has become everybody's city\ncouncil.\"\n\n       Congress is more than capable of quick action, and has more than\nenough power and time on its hands, if it confined itself to what its\noriginal jurisidiction was and allowed more local autonomy.\n\n       It is not a case of the system of government they created failing,\nbut that it is operating under a set of conditions they specifically\nwanted to avoid.  Namely, a concentration of power.  It would seem\nthen that the proper thing to do is not to reduce the power of either\nHouse in some attempt to grease the wheels.  All you'll get then is\na system which moves quicker to do stupid things.  It would make more\nsense to make more decisions at a local level.\n\n>|>       On what basis do you suggest that the Senate was supposed to be\n>|>some sort of rubber-stamp for the House?  You'll note that while the\n>|>President's veto may be over-ridden, the House can't do anything about\n>|>a \"veto\" by the Senate.\n>\n>The Presiden't veto was meant to be entirely separate. Until Bush abused it\n>in a quite extraordinary manner it was used more in accord with the intent\n>of being a check on unreasonable legislation. \n\n       Please explain to me how Bush abused the veto in an \"extraordinary\"\nmanner.\n\n>The veto was clearly regarded \n>as a completely last gasp measure its use was meant to be restricted to\n>preventing the legislature interfering with the actions of the executive.\n\n       I fail to see where any restrictions, implied or otherwise, were\nplaced on the veto.  It could just as easily have been read as a means\nto put a check on democratically popular but unwise (in the executive's\nopinion) policies.  \n\n       There is no limit in the Constitution to the President's veto power\nregarding what a bill is for.  Previous Presidents have used the veto\nfor any number of reasons, most usually having something to do with their\nagenda.  I am really curious how you single Bush out as *the* President\nwho abused vetos.\n\n>the Senate is not meant to be exactly a rubber stamp body, it is meant as\n>a check on unrestrained legislation. That is the extra measure built into\n>the constitution in favour of the status quo, 60% of the representatives\n>of the states is not a reasonable restriction.\n\n       Why is it not a reasonable restriction?  Because 51 Senators\nis the magic holy number upon which Laws must be based?  If 41 Senators\nfeel safe enough with their state constituencies to stand up and \nfillibuster isn't that *enough* to indicate there's a sufficient question\nas to whether a law is a good idea or not to re-evaluate it?\n\n       Why one earth *should* 51% be sufficient to enact a law which\ncovers 250 million people in very, very diverse places and living\nin radically different conditions?  Why *shouldn't* a super-majority\nbe required?\n\n       Any system in which the simple majority is given absolute power\nto ignore the minority then the minority *will* be ignored.  I do not\nsee this as a positive thing.  And for all that I'm sure the Republicans\nare looking for pork as much as the Democrats, they've got some legitimate\nobjections to the legislation in question.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3644, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: limagen@hpwala.wal.hp.com\nSubject: CAN'T WRITE TO 720 FLOPPY\nOrganization: Hewlett-Packard Waltham Division\nReply-To: limagen@hpwala.wal.hp.com ()\nKeywords: WRITE-720\nLines: 10\n\nOK all you experts!\nNeed answer quick.386 machine ,1.44 floppy ; unable to write to a formated\n720 disk.Machine claims that disk is write protected,but it is not.\n\nNote: It 'll read 720's with no problem.\n\nPlease e_mail or post.\n\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3645, "properties": {"category": "rec.sport.hockey", "text": "From: macro@cup.hp.com (Patrick MacRoberts)\nSubject: Re: Too Many Europeans in NHL\nIn-Reply-To: golchowy@alchemy.chem.utoronto.ca's message of Tue, 6 Apr 1993 14:20:37 GMT\nLines: 25\n\t<1993Apr6.142037.9246@alchemy.chem.utoronto.ca>\nNntp-Posting-Host: hpcobr30.cup.hp.com\nOrganization: Nazi Right-Wing Parenting Monthly\n\n\n%>I dunno, Lemieux?  Hmmm...sounds like he\n%>has *French* blood in him!!!  Hey!  France is part of Europe!  Send that\n%>Euro-blooded boy back!!!\n%\n% Don't you Americans study history...the French settled in North America\n% as early or before the British...Lemieux can probably trace back his\n% North American heritage back a lot further than most of us.\n\n\n<friendly-jibe mode on>\n\nDon't you Canadians understand sarcasm?  Sometimes the reader must\ndecide that what he's reading is so ludicrous that it must mean\nthe opposite of what it said...\n\nKinda like the \"Toronto's going to win the Cup\" posts.  Yeah.  Right.\nAnd cows can fly...\n\n<friendly-jibe mode off>\n\nGeez, Gerald.  Like anyone reading rec.flamefest.hockey.pens.are.great\ndidn't know that Le-Mow was from Quebec.\n\n-Patrick\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3646, "properties": {"category": "sci.space", "text": "From: loss@fs7.ECE.CMU.EDU (Doug Loss)\nSubject: Jemison on Star Trek\nOrganization: Electrical and Computer Engineering, Carnegie Mellon\nLines: 7\n\n   I saw in the newspaper last night that Dr. Mae Jemison, the first\nblack woman in space (she's a physician and chemical engineer who flew\non Endeavour last year) will appear as a transporter operator on the\n\"Star Trek: The Next Generation\" episode that airs the week of May 31.\nIt's hardly space science, I know, but it's interesting.\n\nDoug Loss\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3647, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lee@tosspot.sv.com (Lee Reynolds)\nSubject: 16 bit MFM HD controller wanted.\nOrganization: Ludus Associates, Incorporated.\nLines: 8\n\nHi again!\n\n    Okay, am getting an old AT type together as well.\nAnyone have a 16 bit MFM HDC they'd like to sell? WD is preferred, but\nAdaptec and DTK are fine too......for that matter, almost anything\nso long as it works!\n\n                       Lee  (lee@tosspot.sv.com)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3648, "properties": {"category": "sci.electronics", "text": "From: mont@netcom.com (Mont Pierce)\nSubject: Re: 8051 Microcontroller\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 20\n\nIn article <1993Apr19.194525.3888@lambda.msfc.nasa.gov> bday@lambda.msfc.nasa.gov (Brian Day) writes:\n>mcole@spock (COLE) writes:\n>\n>>I would like to experiment with the INTEL 8051 family.  Does anyone out  \n>>there know of any good FTP sites that might have compiliers, assemblers,  \n>>etc.?\n>\n>Try lyman.pppl.gov -- /pub/8051\n\nGreat.  This site is a complete shadow of the Signetics BBS 8051 directory.\n\nThanks Brian,\n-- \nMont Pierce\n\n+-------------------------------------------------------------------------+\n| Ham Call: KM6WT             Internet:  mont@netcom.com                  |\n|    bands: 80/40/20/15/10/2  IBM vnet:  mont@vnet.ibm.com                |\n|    modes: cw,ssb,fm                                                     |\n+-------------------------------------------------------------------------+\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3649, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon Wtte)\nSubject: Re: [ NETWORKING ] How to get 10 Ma\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 24\nNntp-Posting-Host: hemul.nada.kth.se\n\nIn <92.2bd1cd0c@axolotl> Steed.Bell@macrocosm.omahug.org (Steed Bell) writes:\n\n>networked together using Appletalk and PhoneNet connectors. To chat we use a\n>program called 'Broadcast'. With it we can send brief messages to all or\n>selected machines within the network.\n\nIf you use System 7, you can use my application Zing which has\na 30 kB footprint (meaning you can have it running all the time\nwithout losing memory)\n\nIt is also compatible with the chat program \"FishBomb\" which allows\nsounds and pictures as well.\n\nBoth are, as far as I know, freeware (I dustribute Zing with source)\nand should be available on the normal services (mac.archive.umich.edu\nfor instance)\n\nCheers,\n\n\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n   This signature is kept shorter than 4 lines in the interests of UseNet\n   S/N ratio.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3650, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: Kris_Kauper@fourd.com\nOrganization: 4th Dimension BBS\nSubject: Re: A StyleWriter II question\nLines: 13\n\n>I just read an article on the SWII. One thing puzzles me: the article says the\n>SWII is a serial-only device. Does that mean I'll have to unplug my modem\neach\n>time I want to print something???\n\nNo. The printer port on the Mac is also serial. It has the same interface as\nthe ImageWriter II.\n-Kris\n********************************************************************\nSystem: fourd.com                                Phone: 617-494-0565\nCute quote:  Being a computer means never having to say you're sorry\n********************************************************************\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3651, "properties": {"category": "comp.graphics", "text": "From: ferdinan@oeinck.waterland.wlink.nl (Ferdinand Oeinck)\nSubject: detecting double points in bezier curves\nOrganization: My own node in Groningen, NL.\nLines: 6\n\nI'm looking for any information on detecting and/or calculating a double\npoint and/or cusp in a bezier curve.\n\nAn algorithm, literature reference or mail about this is very appreciated,\n\nFerdinand.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3652, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Re: Ban All Firearms !\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 58\n\nIn article <1993Apr14.184448.2331@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>\tIf alcohol were again banned today, it would be MUCH more\n>\tdifficult to manage a large-scale smuggling operation. \n>\tThe cops now rank just a narrow notch below the military\n>\tin communications, intelligence gathering and firepower.\n\nProof by assertion!  I love it!  Uh, please explain why the smugglers\ndo not also rank a notch below (or above) the military in terms\nof communications, intelligence gathering (e.g., why fight officials\nwhen you can bribe them...\"I'll give you a hundred grand to let that\nsemi past...\"), and firepower. \n\n>\tIn a similar vein, the amount of marijuana smuggled into\n>\tthis country has greatly decreased. This is because its\n>\tvalue-per-pound is very low when compared to cocaine or\n>\theroin. It's simply not worth the risk, it's uneconomical.\n>\tNow, most reefer is domestic. There is less pressure on\n>\tthe domestic producer (showy raids notwithstanding) and\n>\tthus it is economical. Of note though ... domestic reefer\n>\tis now very strong, so a small volume goes a long way.\n>\tYou cannot make alcohol stronger than 200 proof - not a\n>\tgood dollar/pound deal. \n>\nWhat's the point here?  You're arguing that the black market\nWORKS (which it does, of course).  \n\n>\tFirearms tend to fall into this low dollar/pound area.\n\nThis is the wrong way to quantify things.  The smuggler would\nbe concerned about value/cubic foot.  Go to a gun show and\nprice out a crate of good quality handguns.  \n\n>\tIt would not be economic to smuggle them in. All production\n>\twould have to be local. There are not all that many people\n\nWhat's \"local?\"  \n\n>\twho have both the skill AND motivation to assemble worthwhile\n>\tfirearms from scratch. High-ranking crime figures could\n\nWhat is a worthwhile firearm?  Hell, anything that WORKS!  Go\nget yourself a copy of the Army's 1969 Improvised Munitions Manual.\nSee how easy it is to make a functional firearm.\n\n>\tobtain imported Uzis and such, but the average person, and\n>\taverage thug, would be lucky to get a zip-gun - and would\n>\tpay through the nose for it. \n\nIf paying $10 for inconspicuous parts at the local K-Mart is\n\"through the nose.\" \n\nDrew\n--\nbetz@gozer.idbsu.edu\n*** brought into your terminal from the free state of idaho ***\n*** when you outlaw rights, only outlaws will have rights   ***\n*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3653, "properties": {"category": "rec.sport.baseball", "text": "From: cjkuo@symantec.com (Jimmy Kuo)\nSubject: Re: cubs & expos roster questions\nOrganization: Symantec/Peter Norton Group\nLines: 5\nNNTP-Posting-Host: 155.64.151.14\n\nalird@Msu.oscs.montana.edu writes:\n>>Today (4/14) Cubs activated P Mike Harkey from DL, whom did they move to \n>>make room for Harkey?\n\nShawn Boskie.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3654, "properties": {"category": "comp.windows.x", "text": "From: ramakris@csgrad.cs.vt.edu (S.Ramakrishnan)\nSubject: Mwm title-drag crashes X server (SIGPIPE)\nOrganization: VPI&SU Computer Science Department, Blacksburg, VA\nLines: 55\n\n\n   Environment:\n      mach/arch : sparc/sun4  (IPX)\n      OS\t: SunOS 4.1.3\n      X11\t: X11R5 (patchlevel 22)\n      Motif\t: 1.2.2\n\nI bring up X server using 'startx' and /usr/bin/X11/Xsun. The following sequence\nof actions crashes the X server (SIGPIPE, errno=32, 'xinit' reports that connexion \nto X server lost):\n\n   1. xinit -- Xsun\n   2. start mwm\n   3. start a client with a 100dpi/75dpi font.\n   4. move the window by dragging the title bar.\n\nThe server dumps core due to SIGPIPE. One of the two messages is printed:\n\n  \"Connection to X server lost\"\n\nor\n  \n  \"Connection broken (errno=32)\"\n\n(I believe the first is reported by a client and the second by the server itself).\n\nNext, I ran xdm in debug level = 5. After the same set of actions, xdm reports:\n\n  select returns -1\n  Server for :0 terminated unexpectedly: status 2560\n\n\nNote:\n * The problem doesn't occur with other window managers (twm or olwm). \n * I have not set LD_LIBRARY_PATH. \n * I am not running font server. \n * If I start the client with fixed width font, I do not see this problem.\n * My font path:\n     /usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/Speedo/,/usr/lib/X11/fonts/75dpi/,/usr/lib/X11/fonts/100dpi\n\n   (I did mkfontdir in /usr/lib/X11/fonts/100dpi, /usr/lib/X11/fonts/75dpi,\n   /usr/lib/X11/fonts/PEX, /usr/lib/X11/fonts/Speedo,\n   and in /usr/lib/X11/fonts/misc).\n\n * This problem seems to occur only on IPX machines. I do not see this \n   problem on IPC workstations.\n\nQuestions:\n * What the hell is goin on ? :-)\n * What does \"status 2560\" mean (of the server).\n\nI'd greatly appreciate any hints as to the cause of the problem.\n\n---\nS Ramakrishnan, CS Dept, McBryde Hall, VaTech\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3655, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: spitz@ana.med.uni-muenchen.de (Richard Spitz)\nSubject: Re: Windows for WorkGroups and LAN Workplace\nReply-To: spitz@ana.med.uni-muenchen.de (Richard Spitz)\nOrganization: Inst. f. Anaesthesiologie der LMU, Muenchen (Germany)\nLines: 33\n\nFlint.Waters@uwyo.edu (Flint Waters) writes:\n\n>>Now does anyone know if it is possible to use W4WG and Lan Workplace\n>>for DOS at the same time. \n\n>Yup.  We're using both and they work just fine.  Hopefully, someday WFWG\n>will communicate over LWP TCPIP.  Right now we have to load NetBeui.\n\n>I use ODI with ODINSUP and all works well.\n\nHey, sounds great. Does that mean that W4WG works with ODI? I thought it    \nuses NDIS.                                                                  \n                                                                            \nMy problem is that Lan Workplace with all its drivers uses up most of my    \nUMBs, so I'd hate to have to load many more drivers to make W4WG work       \nalong.                                                                     \n                                                                           \nI read in a German computer magazine that TCP/IP support for W4WG is just  \naround the corner. Anybody have any news about this?                       \n                                                                           \nRegards, Richard                                                           \n\nPS: I possibly caused a dupe with this message. If this message was spread\ntwice outside of Munich, please send me a short note. It would help\nme debug my news application.\n\n-- \n+----------------------------+-------------------------------------------+\n| Dr. Richard Spitz          | INTERNET: spitz@ana.med.uni-muenchen.de   |\n| EDV-Gruppe Anaesthesie     | Tel     : +49-89-7095-3421                |\n| Klinikum Grosshadern       | FAX     : +49-89-7095-8886                |\n| Munich, Germany            |                                           |\n+----------------------------+-------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3656, "properties": {"category": "comp.graphics", "text": "From: Gordon_Sumerling@itd.dsto.gov.au (Gordon Sumerling)\nSubject: Re: Grayscale Printer\nOrganization: ITD/DSTO\nLines: 2\nDistribution: na\nNNTP-Posting-Host: iapmac2.dsto.gov.au\n\nHave you considered the Apple Laserwriter IIg. We use it for all our B&W\nimage printing.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3657, "properties": {"category": "rec.motorcycles", "text": "From: laszlo@eclipse.cs.colorado.edu (Laszlo Nemeth)\nSubject: New DoD listing. Membership is at 1148\nNntp-Posting-Host: eclipse.cs.colorado.edu\nOrganization: University of Colorado Boulder, Pizza Disposal Group\nLines: 23\n\nThere is a new DoD listing. To get a copy use one of these commands:\n\n\t\tfinger motohead@cs.colorado.edu\n\t\t\t\tOR\n\t\tmail motohead@cs.colorado.edu\n\nIf you send mail make sure your \"From\" line is correct (ie \"man vacation\").\nI will not try at all to fix mail problems (unless they are mine ;-). And I\nmay just publicly tell the world what a bad mailer you have. I do scan the \nmail to find bounces but I will not waste my time answering your questions \nor requests.\n\nFor those of you that want to update your entry or get a # contact the KotL.\nOnly the KotL can make changes. SO STOP BOTHERING ME WITH INANE MAIL\n\nI will not tell what \"DoD\" is! Ask rec.motorcycles. I do not give out the #'s.\n\n\nLaszlo Nemeth\nlaszlo@cs.colorado.edu\n\"hey - my tool works (yeah, you can quote me on that).\" From elef@Sun.COM\n\"Flashbacks = free drugs.\"\nDoD #0666          UID #1999\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.166+0000", "event": "documents", "entityId": 3658, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: After all, Armenians exterminated 2.5 million Muslim people there.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 297\n\nIn article <C5y56o.A62@news.cso.uiuc.edu> hovig@uxa.cso.uiuc.edu (Hovig Heghinian) writes:\n\n>article.  I have no partisan interests --- I would just like to know\n>what conversations between TerPetrosyan and Demirel sound like.  =)\n\nVery simple.\n\n\"X-Soviet Armenian government must pay for their crime of genocide \n against 2.5 million Muslims by admitting to the crime and making \n reparations to the Turks and Kurds.\"\n\nAfter all, your criminal grandparents exterminated 2.5 million Muslim\npeople between 1914 and 1920.\n\n\n<C5yyBt.5zo@news.cso.uiuc.edu>\nhovig@uxa.cso.uiuc.edu (Hovig Heghinian)\n\n>To which I say:\n>Hear, hear.  Motion seconded.\n\nYou must be a new 'Arromdian'. You are counting on ASALA/SDPA/ARF \ncrooks and criminals to prove something for you? No wonder you are in \nsuch a mess. That criminal idiot and 'its' forged/non-existent junk has \nalready been trashed out by Mutlu, Cosar, Akgun, Uludamar, Akman, Oflazer \nand hundreds of people. Moreover, ASALA/SDPA/ARF criminals are responsible \nfor the massacre of the Turkish people that also prevent them from entering \nTurkiye and TRNC. SDPA has yet to renounce its charter which specifically \ncalls for the second genocide of the Turkish people. This racist, barbarian \nand criminal view has been touted by the fascist x-Soviet Armenian government \nas merely a step on the road to said genocide. \n\nNow where shall I begin?\n\n#From: ahmet@eecg.toronto.edu (Parlakbilek Ahmet)\n#Subject: YALANCI, LIAR : DAVIDIAN\n#Keywords: Davidian, the biggest liar\n#Message-ID: <1991Jan10.122057.11613@jarvis.csri.toronto.edu>\n\nFollowing is the article that Davidian claims that Hasan Mutlu is a liar:\n\n>From: dbd@urartu.SDPA.org (David Davidian)\n>Message-ID: <1154@urartu.SDPA.org>\n\n>In article <1991Jan4.145955.4478@jarvis.csri.toronto.edu> ahmet@eecg.toronto.\n>edu (Ahmet Parlakbilek) asked a simple question:\n\n>[AP] I am asking you to show me one example in which mutlu,coras or any other\n>[AP] Turk was proven to lie.I can show tens of lies and fabrications of\n>[AP] Davidian, like changing quote , even changing name of a book, Anna.\n\n>The obvious ridiculous \"Armenians murdered 3 million Moslems\" is the most\n>outragious and unsubstantiated charge of all. You are obviously new on this \n>net, so read the following sample -- not one, but three proven lies in one\n>day!\n\n>\t\t\t- - - start yalanci.txt - - -\n\n[some parts are deleted]\n\n>In article <1990Aug5.142159.5773@cbnewsd.att.com> the usenet scribe for the \n>Turkish Historical Society, hbm@cbnewsd.att.com (hasan.b.mutlu), continues to\n>revise the history of the Armenian people. Let's witness the operational\n>definition of a revisionist yalanci (or liar, in Turkish):\n\n>[Yalanci] According to Leo:[1]\n>[Yalanci]\n>[Yalanci] \"The situation is clear. On one side, we have peace-loving Turks\n>[Yalanci] and on the other side, peace-loving Armenians, both sides minding\n>[Yalanci] their own affairs. Then all was submerged in blood and fire. Indeed,\n>[Yalanci] the war was actually being waged between the Committee of \n>[Yalanci] Dashnaktsutiun and the Society of Ittihad and Terakki - a cruel and \n>[Yalanci] savage war in defense of party political interests. The Dashnaks \n>[Yalanci] incited revolts which relied on Russian bayonets for their success.\"\n>[Yalanci] \n>[Yalanci] [1] L. Kuper, \"Genocide: Its Political Use in the Twentieth Century,\"\n>[Yalanci]     New York 1981, p. 157.\n\n>This text is available not only in most bookstores but in many libraries. On\n>page 157 we find a discussion of related atrocities (which is title of the\n>chapter). The topic on this page concerns itself with submissions to the Sub-\n>Commission on Prevention of Discrimination of Minorities of the Commission on\n>Human Rights of the United Nations with respect to the massacres in Cambodia.\n>There is no mention of Turks nor Armenians as claimed above.\n\n\t\t\t\t- - -\n\n>Vay sarsak, vay yobaz, vay yalanci! Vay Turk milletinin yuz karasi Mutlu vay!\n\n>The depth of foolishness the Turkish Historical Society engages in, while\n>covering up the Turkish genocide of the Armenians, is only surpassed by the \n>ridiculous \"historical\" material publicly displayed!\n\n>David Davidian <dbd@urartu.SDPA.org>  | The life of a people is a sea, and  \n\nReceiving this message, I checked the reference, L.Kuper,\"Genocide...\" and\nwhat I have found was totally consistent with what Davidian said.The book\nwas like \"voice of Armenian revolutionists\" and although I read the whole book,\nI could not find the original quota.\nBut there was one more thing to check:The original posting of Mutlu.I found \nthe original article of Mutlu.It is as follows:\n\n> According to Leo:[1]\n\n>\"The situation is clear. On one side, we have peace-loving Turks and on\n> the other side, peace-loving Armenians, both sides minding their own \n> affairs. Then all was submerged in blood and fire. Indeed, the war was\n> actually being waged between the Committee of Dashnaktsutiun and the\n> Society of Ittihad and Terakki - a cruel and savage war in defense of party\n> political interests. The Dashnaks incited revolts which relied on Russian\n> bayonets for their success.\" \n\n>[1] B. A. Leo. \"The Ideology of the Armenian Revolution in Turkey,\" vol II,\n     ======================================================================\n>    p. 157.\n    ======\n\nQUATO IS THE SAME, REFERENCE IS DIFFERENT !\n\nDAVIDIAN LIED AGAIN, AND THIS TIME HE CHANGED THE ORIGINAL POSTING OF MUTLU\nJUST TO ACCUSE HIM TO BE A LIAR.\n\nDavidian, thank you for writing the page number correctly...\n\nYou are the biggest liar I have ever seen.This example showed me that tomorrow\nyou can lie again, and you may try to make me a liar this time.So I decided\nnot to read your articles and not to write answers to you.I also advise\nall the netters to do the same.We can not prevent your lies, but at least\nwe may save time by not dealing with your lies.\n\nAnd for the following line:\n>Vay sarsak, vay yobaz, vay yalanci! Vay Turk milletinin yuz karasi Mutlu vay!\n\nI also return all the insults you wrote about Mutlu to you.\nI hope you will be drowned in your lies.\n\nAhmet PARLAKBILEK\n\n#From: vd8@cunixb.cc.columbia.edu (Vedat  Dogan)\n#Message-ID: <1993Apr8.233029.29094@news.columbia.edu>\n\nIn article <1993Apr7.225058.12073@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n>In article <1993Apr7.030636.7473@news.columbia.edu> vd8@cunixb.cc.columbia.edu\n>(Vedat  Dogan) wrote in response to article <1993Mar31.141308.28476@urartu.\n>11sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n>\n \n>[(*] Source: \"Adventures in the Near East, 1918-1922\" by A. Rawlinson,\n>[(*] Jonathan Cape, 30 Bedford Square, London, 1934 (First published 1923) \n>[(*] (287 pages).\n>\n>[DD] Such a pile of garbage! First off, the above reference was first published\n>[DD] in 1924 NOT 1923, and has 353 pages NOT 287! Second, upon checking page \n>[DD] 178, we are asked to believe:\n> \n>[VD] No, Mr.Davidian ... \n> \n>[VD]  It was first published IN 1923 (I have the book on my desk,now!) \n>[VD]                         ********\n> \n>[VD]  and furthermore,the book I have does not have 353 pages either, as you\n>[VD]  claimed, Mr.Davidian..It has 377 pages..Any question?..\n>  \n>Well, it seems YOUR book has its total page numbers closer to mine than the \nn>crap posted by Mr. [(*]!\n \n o boy!   \n \n Please, can you tell us why those quotes are \"crap\"?..because you do not \n like them!!!...because they really exist...why?\n \n As I said in my previous posting, those quotes exactly exist in the source \n given by Serdar Argic .. \n  \n You couldn't reject it...\n \n>\n>In addition, the Author's Preface was written on January 15, 1923, BUT THE BOOK\n>was published in 1924.\n \n Here we go again..\n In the book I have, both the front page and the Author's preface give \n the same year: 1923 and 15 January, 1923, respectively!\n (Anyone can check it at her/his library,if not, I can send you the copies of\n pages, please ask by sct) \n \n \nI really don't care what year it was first published(1923 or 1924)\nWhat I care about is what the book writes about murders, tortures,et..in\nthe given quotes by Serdar Argic, and your denial of these quotes..and your\ngroundless accussations, etc. \n \n>\n[...]\n> \n>[DD] I can provide .gif postings if required to verify my claim!\n> \n>[VD] what is new?\n> \n>I will post a .gif file, but I am not going go through the effort to show there \n>is some Turkish modified re-publication of the book, like last time!\n \n \n I claim I have a book in my hand published in 1923(first publication)\n and it exactly has the same quoted info as the book published\n in 1934(Serdar Argic's Reference) has..You couldn't reject it..but, now you\n are avoiding the real issues by twisting around..\n \n Let's see how you lie!..(from 'non-existing' quotes to re-publication)\n \n First you said there was no such a quote in the given reference..You\n called Serdar Argic a liar!..\n I said to you, NO, MR.Davidian, there exactly existed such a quote...\n (I even gave the call number, page numbers..you could't reject it.)\n \n And now, you are lying again and talking about \"modified,re-published book\"\n(without any proof :how, when, where, by whom, etc..)..\n (by the way, how is it possible to re-publish the book in 1923 if it was\n  first published in 1924(your claim).I am sure that you have some 'pretty \n  well suited theories', as usual)\n \n And I am ready to send the copies of the necessary pages to anybody who\n wants to compare the fact and Mr.Davidian's lies...I also give the call number\n and page numbers again for the library use, which are:  \n                 949.6 R 198\n   \n  and the page numbers to verify the quotes:218 and 215\n              \n     \n \n> \n>It is not possible that [(*]'s text has 287 pages, mine has 353, and yours has\n>377!\n \n Now, are you claiming that there can't be such a reference by saying \"it is\n not possible...\" ..If not, what is your point?\n \n Differences in the number of pages?\n Mine was published in 1923..Serdar Argic's was in 1934..\n No need to use the same book size and the same letter \n charachter in both publications,etc, etc.. does it give you an idea!!\n \n The issue was not the number of pages the book has..or the year\n first published.. \n And you tried to hide the whole point..\n the point is that both books have the exactly the same quotes about\n how moslems are killed, tortured,etc by Armenians..and those quotes given \n by Serdar Argic exist!! \n It was the issue, wasn't-it?  \n \n you were not able to object it...Does it bother you anyway? \n \n You name all these tortures and murders (by Armenians) as a \"crap\"..\n People who think like you are among the main reasons why the World still\n has so many \"craps\" in the 1993. \n \n Any question?\n \n\n<C5wwqA.9wL@news.cso.uiuc.edu>\nhovig@uxa.cso.uiuc.edu (Hovig Heghinian)\n\n>   Hmm ... Turks sure know how to keep track of deaths, but they seem to\n>lose count around 1.5 million.\n\nWell, apparently we have another son of Dro 'the Butcher' to contend with. \nYou should indeed be happy to know that you rekindled a huge discussion on\ndistortions propagated by several of your contemporaries. If you feel \nthat you can simply act as an Armenian governmental crony in this forum \nyou will be sadly mistaken and duly embarrassed. This is not a lecture to \nanother historical revisionist and a genocide apologist, but a fact.\n\nI will dissect article-by-article, paragraph-by-paragraph, line-by-line, \nlie-by-lie, revision-by-revision, written by those on this net, who plan \nto 'prove' that the Armenian genocide of 2.5 million Turks and Kurds is \nnothing less than a classic un-redressed genocide. We are neither in \nx-Soviet Union, nor in some similar ultra-nationalist fascist dictatorship, \nthat employs the dictates of Hitler to quell domestic unrest. Also, feel \nfree to distribute all responses to your nearest ASALA/SDPA/ARF terrorists,\nthe Armenian pseudo-scholars, or to those affiliated with the Armenian\ncriminal organizations.\n\nArmenian government got away with the genocide of 2.5 million Turkish men,\nwomen and children and is enjoying the fruits of that genocide. You, and \nthose like you, will not get away with the genocide's cover-up.\n\nNot a chance.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3659, "properties": {"category": "rec.sport.baseball", "text": "From: jja2h@Virginia.EDU (\"\")\nSubject: WFAN\nOrganization: University of Virginia\nLines: 14\n\nDoes any one out there listen to WFAN?  For those of you who do\nnot know what I am talking about, it is an all sports radio\nstaion in New York.  On a clear night the signal reaches up and\ndown the East coast.  In particular, I want to know how Len\nBerman and Mike Lupica's show is.  I go to school in Virginia\nso I can't listen when there are on during the day.  Just\nwondering.\n\nJonathan Alboum\nUVA\n\nPS.  Did any one see Steve Sommers on 48 hours last night.  The\nChief was on too, doing Rangers Round up.  It was pretty neat\nshmoozing S P O R T S on TV.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3660, "properties": {"category": "sci.space", "text": "From: drunen@nucleus.ps.uci.edu (Eric Van Drunen)\nSubject: Re: Big amateur rockets\nNntp-Posting-Host: nucleus.ps.uci.edu\nOrganization: University of California, Irvine\nLines: 30\n\nActually, they are legal! I not familiar with the ad you are speaking of\nbut knowing Popular Science it is probably on the fringe.  However, you\nmay be speaking of \"Public Missle, Inc.\", which is a legitimate company\nthat has been around for a while.\n\nDue to advances in composite fuels, engines are now available for model\nrockets using similar composites to SRB fuel, roughly 3 times more \npowerful than black powder motors.  They are even available in a reloadable\nform, i.e. aluminum casing, end casings, o-rings (!).  The engines range\nfrom D all the way to M in common manufacture, N and O I've heard of\nused at special occasions.\n\nTo be a model rocket, however, the rocket can't contain any metal \nstructural parts, amongst other requirements.  I've never heard of a\nmodel rocket doing 50,000.  I have heard of > 20,000 foot flights.\nThese require FAA waivers (of course!).  There are a few large national\nlaunches (LDRS, FireBALLS), at which you can see many > K sized engine\nflights.  Actually, using a > G engine constitutes the area of \"High\nPower Rocketry\", which is seperate from normal model rocketry.  Purchase\nof engines like I have been describing require membership in the National\nAssociation of Rocketry, the Tripoli Rocketry Assoc., or you have to\nbe part of an educational institute or company involved in rocketry.\n\nAmatuer rocketry is another area.  I'm not really familiar with this,\nbut it is an area where metal parts are allowed, along with liquid fuels\nand what not.  I don't know what kind of regulations are involved, but\nI'm sure they are numerous.\n\nHigh power rocketry is very exciting!  If you are interested or have \nmore questions, there is a newsgroup rec.model.rockets.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3661, "properties": {"category": "rec.sport.baseball", "text": "From: sac@asdi.saic.com (Steve A. Conroy x6172)\nSubject: Re: Darrrrrrrrryl\nOrganization: SAIC\nLines: 33\n\nIn article <mssC5KCru.5Ip@netcom.com>, mss@netcom.com (Mark Singer) writes:\n|> \n|> \n|> The media is beating the incident at Dodger Stadium on Wednesday to\n|> death, but I haven't seen anything in rsb yet.\n|> \n|> Gerald Perry of the Cardinals pinch hit in the eighth inning with two\n|> on and his club down by a run.  He stroked a line drive into the\n|> right field corner.  The ball cleared the three-foot high fence and\n|> went into the crowd.  Darryl, racing over from right center, got to\n|> the spot in time to reach his glove up over the short fence, but he\n|> missed the ball.  A fan sitting in the front row, wearing a mitt,\n|> reached up and caught the ball.  Home run.\n|> \n|> Now I've seen the replay several times and I have concluded that\n|> Darryl missed the ball, and that the fan's glove was essentially\n|> behind Darryl's.  Several Dodger fans with seats in the immediate\n|> vicinity have claimed that the fan unquestionably interfered with\n|> Strawberry.  What cannot be disputed, however, is that the fan\n|> who caught the ball never took his eye off it;  he was oblivious\n|> to where the fielder was playing.  He was also quite exuberant as\n|> soon as he realized he had made the catch.\n|> \n|> [Stuff about Daryl and Tommy and everyone blaming fan for the loss deleted]\n\nI saw the replay several times too.  No question about it.  Daryl missed\nthe ball, *then* the fan caught it.  Daryl is so tall that he had the\nfirst shot at the ball.  Daryl's just whining again.  I think it shows a\nlack of class when Tommy, Daryl and the Dodgers blame a single fan for\nlosing the game.  What about the pitcher who threw up the gopher ball?\nWhat about the pitchers that gave up 6 runs up to that point?  Sorry, Tommy.\nIf it were a 2-1 game and Daryl was 5 feet 2 inches tall, then maybe -\njust maybe - you'd have an argument.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3662, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cdw@dcs.ed.ac.uk (Chris Walton)\nSubject: Upgrading a modem ...\nOrganization: Department of Computer Science, Edinburgh University\nLines: 19\n\nI have an old tandon type modem (that's all the info I have apart from \nthe fact that it is black!).   Does anyone have any info about this modem\nor upgrading it ??? Reply by e-mail please to cdw@dcs.ed.ac.uk.\n\n===============================================================================\n= Chris - E-mail: cdw@dcs.ed.ac.uk or C.Walton@ed or p92019@cplab.ph.ed.ac.uk =\n=         Tel.:   031-667-9764 or 0334-74244 (at weekends)                    =\n=         Write:  4/2 Romero Place, Edinburgh, EH16 5BJ.                      =\n===============================================================================\nFinagle's Fourth Law:\n  Once a job is fouled up, anything done to improve it only makes it worse.\n===============================================================================\n\n\n-- \n===============================================================================\n= Chris - E-mail: cdw@dcs.ed.ac.uk or C.Walton@ed or p92019@cplab.ph.ed.ac.uk =\n=         Tel.:   031-667-9764 or 0334-74244 (at weekends)                    =\n=         Write:  4/2 Romero Place, Edinburgh, EH16 5BJ.                      =\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3663, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: was:Go Hezbollah!\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 25\n\nIn article <Apr16.182858.51611@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n>In article <2BCE0918.6105@news.service.uci.edu>, tclock@orion.oac.uci.edu (Tim Clock) writes:\n>|> In article <Apr15.175334.72079@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n>\n>[.....]\n>\n>|> Your view of this entire matter is far too serenely one-sided and\n>|> selectively naive.\n>\n>Oooh... now THAT hurts.  I will not suffer you through more naive\n>and one-sided views of mine.   Please skip my articles in the future\n>Oh Wise Tim, and have a good day.\n>\n>Basil\n\nWhat is the point in throwing out one-sided viewpoints (which means:\nignoring that the \"other side's\" perspective and experience HAS ANY \nLEGITIMACY) while assuming that \"your side\" possesses no faults and \nbears no responbility for ANY of the negative impacts of a particular \nevent? Isn't the former onesided? Isn't the latter naive? If you feel \nthat my opinion is wrong then please tell me how. \"Strategic withdrawal\" \nunder the cover of a snide remark seems to be the favored tactic on this\nnet but doesn't accomplish anything.\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3664, "properties": {"category": "talk.politics.misc", "text": "From: paul@hsh.com (Paul Havemann)\nSubject: Re: CLINTON: President to Nominate Carter for Nuclear Security Post\nOrganization: HSH Associates\nLines: 28\n\nIn article <1qgbljINNn4o@life.ai.mit.edu>, Clinton-HQ@Campaign92.Org (Clinton/Gore '92) writes:\n> \n>                          THE WHITE HOUSE\n>                      Office of the President\n> For Immediate Release                             April 13, 1993\n> \n>      PRESIDENT TO NOMINATE CARTER FOR NUCLEAR SECURITY \n\nNo, no, no!  Bill, please, don't nominate ANYone who pronounces it\n\"noo-q-lar\"!  Jimmy always used to drive everyone nuts when he did that! \nAnd don't let Amy anywhere near!  And...\n\n> (Washington, DC)    The President announced today that he intends \n> to nominate Ashton Carter, the Director of Harvard's Center for \n> Science and International Affairs, to be Assistant Secretary of \n> Defense for Nuclear Security and Counter-Proliferation.\n\n{Emily Litella voice}\n\n...never mind.\n\n------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ \n\nPaul Havemann   (Internet: paul@hsh.com)\n\n   * They're not just opinions -- they're caffeine for the brain! *\n         ** (Up to 50 milligrams per cynical observation.) **\n     Recommended Minimum Daily Requirement: 1,000 mg.  Keep reading.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3665, "properties": {"category": "comp.graphics", "text": "From: eapu207@orion.oac.uci.edu (John Peter Kondis)\nSubject: I need to make my VGA do shades.\nNntp-Posting-Host: orion.oac.uci.edu\nLines: 12\n\nI have a routine that changes the color (RGB) attributes on my\nVGA adapter, but it doesn't work in the mode that I need.  \nSpecifically 68 hex.  An obscure mode, of course, but I need to\nchange the zillions of colors to 64 shade greyscale, but I do\nnot have the correct memory address for the pointer I need.\n\nPLEASE, someone, I need the starting address, or maybe somewhere \nI can find it.  Thank you.\n\nJohn Kondis\neapu207@orion.oac.uci.edu\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3666, "properties": {"category": "talk.politics.guns", "text": "From: dduff@col.hp.com (Dave Duff)\nSubject: Re: ATF BURNS DIVIDIAN RANCH - UPDATE\nOrganization: HP Colorado Springs Division\nLines: 3\nDistribution: usa\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\nNUT CASE PANICS!!!!REALIZES HE'S MADE A COMPLETE FOOL OF HIMSELF IN FRONT OF\nTHOUSANDS OF NETTERS!!!!BACKS AWAY FROM EARLIER RASH STATEMENTS!!!!GOD HAVE\nMERCY ON HIM!!!!\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3667, "properties": {"category": "rec.sport.hockey", "text": "From: Karim Edvard Ahmed <ka0k+@andrew.cmu.edu>\nSubject: Re: Goodbye, good riddance, get lost 'Stars\nOrganization: Senior, Economics, Carnegie Mellon, Pittsburgh, PA\nLines: 15\nNNTP-Posting-Host: po2.andrew.cmu.edu\nIn-Reply-To: <DT642B1w165w@sms.business.uwo.ca>\n\n>        Goodbye Minnesota,...you never earned the right to have an NHL \n>franchise in the first place!\n>        Hope you enjoy your Twin city wide mania for HIGH SCHOOL HOCKEY\n>(hey, by the way my old pee wee team is having a reunion in Regina, care \n>to come up and film the event?)\n>        Yee haa Golden Gophers\n>Whatta weird town!!!!!\n\nWhat's with you stupid dorks from the \"Western Business School\"???!!! \nFirst there was that Cary asshole, and now you.  Don't you have anything\nbetter to do instead of being obnoxious, antagonistic little shits over\nthe network???  Why don't you just take a hike, and stop embarrasing\nyourself, your school, and Canada!\n\n-KEA\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3668, "properties": {"category": "talk.politics.misc", "text": "From: al976@yfn.ysu.edu (Franklin Kadell Jordan)\nSubject: Re: How many homosexuals are there?\nOrganization: Youngstown State/Youngstown Free-Net\nLines: 28\nNNTP-Posting-Host: yfn.ysu.edu\n\n\n     I am so tired about all this debate on how many gays there\nare!  Such arguments are basically worthless, imho.  Would it \nreally matter if it were millions of people who are regularly\ndenied access to housing, employment, and personal security or\neven only one?  \n    As for death threats, I happen to know from personal\nexperience that gay people are far more likely to receive\nthem based on political veiws or even personal philosophies\nrelated to the issue of sexual orientation than are heterosex\nuals. Not a week goes by that I personally or one of my friends\nis not physically or verbally harrassed for even appearing to\nbe gay.  \n     Everyone is garaunteed certain unalienable rights under\nour current form of government in theory, yet every day \ngay people are victimized by their local governments, by\nthe police force, and by (for the most part) an uninformed\nand ignorant public. Is this democracy? I don't think so.\n   A society's sense of justice is judged on the basis of\nthe treatment of the people who make up that society.\nAll of those people. And yes, that includes gays, lesbians,\nand bisexuals whose \"crimes\" have no victims, and who\nare as varied and diverse as the society of wich they are\na part.\n-- \nFrank Jordan                                                \u001b[D\u001b[D\u001b[D\u001b\u001b[C\u001b[C\u001b[C\n              Gay Arab Bassoonists UNITE!!!\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3669, "properties": {"category": "soc.religion.christian", "text": "From: reid@cs.uiuc.edu (Jon Reid)\nSubject: Re: Prophetic Warning to New York City\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 66\n\nevensont@spot.Colorado.EDU (EVENSON THOMAS RANDALL) writes:\n\n>Yes, I suppose it is true that people make mistakes.  It is interesting to\n>note that in those long ago OT days, if you weren't 100% correct in\n>your prophecies, people got very mad and you were no longer believed,\n>even put to death.\n\nThis is one of the differences between OT prophecy and NT prophecy.  In the\nNT, it is expected that when believers gather,\n  - people will prophesy\n  - the prophecy must be judged (1 Cor 14:29)\nThere is nothing about killing someone who makes a mistake.\n\n>To say that we make mistakes is true.  To say that we make mistakes\n>while filled with the spirit is not true.  Were that true, the entire\n>Bible, having been written by men inspired by God would be subject also\n>to those errors, for what is prophecy but like those revelations given\n>in scripture?\n\nScripture is scripture; there is no \"gift of scripture\".  And I don't know\nabout you, but I know that _I_ have made mistakes while filled with the\nspirit.  If you don't give grace to allow people to make mistakes, they\nwill never grow in the use of the spiritual gifts!\n\nWhen we minister in my small group, I encourage people to speak out any\nimpressions or images they think might be from the Lord.  Only by trying\nwill they know whether they were right or wrong -- and in either case,\nthey'll have a better handle on it the next time.\n\nDidn't you fall when you were learning to ride a bicycle?  But you kept on\ntrying, and you learned both from your failures and your successes.\nSpiritual gifts are no different -- you get better with experience.\n\n>Which brings me around to asking an open question.  Is the Bible a closed\n>book of Scripture?  Is it okay for us to go around saying \"God told\n>me this\" and \"Jesus told me that\"?  Wouldn't that imply that God is STILL\n>pouring out new revelation to us?  I know that some people will feel\n>that is okay, and some will not.  The concept of a closed canon would\n>certainly cast a shadow on contemporary prophets.  On the other hand,\n>an open canon seems to be indicated sometimes.\n\nThe canon of Scripture is complete.  Does this mean that God no longer\nspeaks?  I have heard his voice -- not audibly (though some have), but\nclearly nonetheless.  Is what I heard equivalent to Scripture?  No.  I have\nnever heard contemporary prophets claim that what they receive from the\nLord is on the same level as Scripture; on the contrary, those who are\nmature obey the Scriptures by submitting their prophecies to fellow\nbelievers for judgement.  And the most reliable yardstick for judging\nprophecies is, certainly, the Scriptures themselves.  The canon is closed\n-- but God is not silent!\n\n>Also interesting to note is that some so called prophecies are nothing new\n>but rather an inspired translation of scripture.  Is it right to call\n>that prophecy?  Misleading?  Wouldn't that be more having to do with\n>knowledge?  I know, the gift of knowledge may not be as exciting to\n>talk about, but shouldn't we call a horse a horse?\n\nDoes it matter what it is called?  The question is not how to label it, but\nhow to receive it.  Words of knowledge, incidentally, are similar to\nprophecy (and sometimes the two overlap), but generally it is supernatural\nknowledge of some fact that could not be known otherwise.\n-- \n******************************************************************\n*     Jon Reid     * He is no fool who gives what he cannot keep *\n* reid@cs.uiuc.edu * to gain what he cannot lose.   - Jim Elliot *\n******************************************************************\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3670, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: \"clipper chip\"\nLines: 30\n\n\tFrom: \"dan mckinnon\" <dan.mckinnon@canrem.com>\n\n\t   I have lurked here a bit lately, and though some of the math is\n\tunknown to me, found it interesting. I thought I would post an article I\n\tfound in the Saturday, April 17, 1993 Toronto Star:\n\n\t                  'CLIPPER CHIP' to protect privacy\n\nPolitics is of course Dirty Pool, old man, and here we have a classic\nexample: the NSA and the administration have been working on this for\na *long* time, and in parallel with the announcement to us techies, we\nsee they're hitting the press with propoganda.\n\nIt's my bet the big magazines - Byte, Scientific American, et all - will\nbe ready to run with a pre-written government-slanted story on this in\nthe next issue.  ('Just keep us some pages spare boys, we'll give you\nthe copy in time for the presses')\n\nWe *must* get big names in the industry to write well argued pieces against\nthis proposal (can you call it that when it's a de facto announcement?) and\nget them into the big magazines before too much damage is done.\n\nIt would be well worth folks archiving all the discussions from here since\nthe day of the announcement to keep all the arguments at our fingertips.  I\nthink between us we could write quite a good piece.\n\nNow, who among us carries enough clout to guarantee publication?  Phil?\nDon Parker?  Mitch Kapor?\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3671, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: paladin@world.std.com (Thomas G Schlatter)\nSubject: Re: Hhy won't my DOS apps run in a window?!\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 8\n\nIn article <735417915snz@sigma.demon.co.uk> jason@sigma.demon.co.uk writes:\n>Can somebody help me out there? I have just purchased Win 3.1 and I just\n>can't get DOS apps (text mode apps) to run in a window on their own. I've\n>tried mucking around with the PIF settings etc, but to no avail. What am\n>I doing wrong? (I didn't get this problem under v3.0).\n>\nAre you sure you're running in 386-enhanced mode? (Windows 3.1\ntakes more memory...)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3672, "properties": {"category": "rec.sport.hockey", "text": "From: rauser@fraser.sfu.ca (Richard John Rauser)\nSubject: Too Many Europeans in NHL\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 50\n\n\n\n   Ten years ago, the number of Europeans in the NHL was roughly a quarter\nof what it is now. Going into the 1992/93 season, the numbers of Euros on\nNHL teams have escalated to the following stats:\n\nCanadians: 400\nAmericans: 100\nEuropeans: 100\n\n   Please note that these numbers are rounded off, and taken from the top\n25 players on each of the 24 teams. My source is the Vancouver Sun.\n\n   Here's the point: there are far too many Europeans in the NHL. I am sick\nof watching a game between an American and a Canadian team (let's say, the\nRed Wings and the Canucks) and seeing names like \"Bure\" \"Konstantinov\" and\n\"Borshevshky\". Is this North America or isn't it? Toronto, Detriot, Quebec,\nand Edmonton are particularly annoying, but the numbers of Euros on other\nteams is getting worse as well. \n\n    I live in Vancouver and if I hear one more word about \"Pavel Bure, the\nRussian Rocket\" I will completely throw up. As it is now, every time I see\nthe Canucks play I keep hoping someone will cross-check Bure into the plexiglassso hard they have to carry him out on a stretcher. (By the way, I'm not a\nCanucks fan to begin with ;-). \n\n    Okay, the stretcher remark was a little carried away. But the point is that\nI resent NHL owners drafting all these Europeans INSTEAD of Canadians (and\nsome Americans). It denies young Canadians the opportunity to play in THEIR\nNORTH AMERICAN LEAGUE and instead gives it to Europeans, who aren't even\nbetter hockey players. It's all hype. This \"European mystique\" is sickening,\nbut until NHL owners get over it, Canadian and American players will continue\nto have to fight harder to get drafted into their own league.\n\n    With the numbers of Euros in the NHL escalating, the problem is clearly\nonly getting worse.\n\n    I'm all for the creation of a European Hockey League, and let the Bures\nand Selannes of the world play on their own continent.\n\n    I just don't want them on mine.\n\n\n \n \n-- \nRichard J. Rauser        \"You have no idea what you're doing.\"\nrauser@sfu.ca            \"Oh, don't worry about that. We're professional\nWNI                          outlaws - we do this for a living.\"\n-----------------\n\"Remember, no matter where you go, there you are.\" -Dr.Banzai\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3673, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dcoleman@utxvms.cc.utexas.edu (Daniel M. Coleman)\nSubject: Re: Do the 2MB ATI Ultra Pro 16 and 24 bit Windows Drivers Work?\nLines: 47\nNntp-Posting-Host: ecru.cc.utexas.edu\nOrganization: The University of Texas at Austin\nLines: 47\n\nIn article <87402@ut-emx.uucp>, reza@magellan.ae.utexas.edu (Alireza Vali) writes:\n> Hi there.  We just bought a 486 DX2/66 Gateway system with a 2 meg ATI\n> Ultra Pro video card.  Everything seems to work fine except for the\n> Windows Drivers for 800x600 24 bit, and 800x600 and 1024x768 16 bit\n> modes.  The fonts and icons start deteriorating after windows startup,\n> and within minutes of use, everything on the screen is totally\n> unintelligible.  Naturally, I called Gateway tech support to inquire\n> about this.  The technician asked me about the drivers, and I told him it\n> was version 1.5, build 59.  He told me that the 16 and 24 bit drivers for\n> the ATI Ultra Pro simply do not work!!!  Is this true?  If so, I'm simply\n> amazed.  How could this be?  The strange thing is I would have expected\n> to see some discussion on here (unless the subject has made the FAQ!!!).\n> \n> One very suspicious point that came up later was that he stated that none\n> of the Windows Accelerator boards have working 16 and/or 24 bit drivers\n> for Windows 3.1.  I easily challenged him on that because I've been\n> running a Diamond 24x in 15 bit mode at home for 4 months now, and I have\n> tested and used the 24 bit mode as well.  He then backed off and said:\n> \"Well, Diamond has been working on those drivers much longer.\"  Anyway, I\n> just wanted to see if anyone else had any trouble and what they did about\n> it.  Any feedback will be appreciated.\n> \n> The system configuration is:\n> \n> Gateway 486 DX2/66 Local Bus\n> 16 Megs Ram\n> SCSI HD & CD-ROM\n> Ultrastor 34F Local Bus SCSI controller\n> ATI Ultra Pro Local Bus with 2MB VRAM\n> DOS 6.0\n> Windows 3.1\n> Mach 32 drivers version 1.5 (build 59)\n\nI have been able to successfully use both 16 and 24 bit color modes on my\nGateway system, although my setup is less complicated than yours.  It sounds as\nif you may have a hardware conflict or problem.  Is your memory aperture above\n16M?  I have heard rumors of incompatibilities with that SCSI card with a\nvariety of systems.  Call up Gateway and give them hell until they help you\nfix it.\n\nDan\n\n-- \nDaniel Matthew Coleman\t\t   |   Internet: dcoleman@utxvms.cc.utexas.edu\n-----------------------------------+---------- : dcoleman@ccwf.cc.utexas.edu\nThe University of Texas at Austin  |\t DECnet: UTXVMS::DCOLEMAN\nElectrical/Computer Engineering\t   |\t BITNET: DCOLEMAN@UTXVMS [.BITNET]\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3674, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Migraines and Estrogen\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 12\n\nIn article <3FB51B6w165w@jupiter.spk.wa.us> pwageman@jupiter.spk.wa.us (Peggy Wageman) writes:\n>I read that hormonal fluctuations can contribute to migraines, could \n>taking supplemental estrogen (ERT) cause migraines?  Any information \n\nI'm not sure it is the fluctuation so much as the estrogen level.\nTaking Premarin can certainly cause migraines in some women.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3675, "properties": {"category": "rec.sport.baseball", "text": "From: dkl@cs.arizona.edu (David K. Lowenthal)\nSubject: Re: Giants' GM Quinn *is* a genius!\nOrganization: U of Arizona CS Dept, Tucson\nLines: 22\n\nIn article <C50nH4.4Et@odin.corp.sgi.com> luigi@sgi.com (Randy Palermo) writes:\n>Will Clark\n>Matt Williams\n>Robbie Thompson\n>Rod Beck........All came up through the Giants system.\n\nGeez.  Everyone comes up with Clark, Williams, Thompson.  These guys\nwere all up in 1987.  That's ancient history.  So in the last 6 years,\nnoone, right?  Beck doesn't count.  I said 2 solid years.\n\n>BTW, Manwaring lead the ML last season in throwing out baserunners. He is\n>an excellent defensive catcher. I agree that his offensive skills are\n>limited but he does seem to be improving on them.\n\nLet's see what he does w/o the help of a pitchout every other pitch.\nAs I remember, even Bob Brenly had a good throwout percentage under\nRoger Craig, who loved to sacrifice the count for runners being thrown\nout.  Of course, he suffered from 3 ball 1 strike homers a lot too.\nI am not a big fan of Manwaring.\n\n\n--dave\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3676, "properties": {"category": "misc.forsale", "text": "From: Rich.Rubel@launchpad.unc.edu (Rich Rubel)\nSubject: Shawnee-on-Delaware (Poconos, PA) timeshare week for sale\nNntp-Posting-Host: lambada.oit.unc.edu\nOrganization: University of North Carolina Extended Bulletin Board Service\nDistribution: usa\nLines: 15\n\n\nSecond week of January (prime ski season at one of the largest Poconos ski\nareas).  Just north of Allentown.\nCondo sleeps 6-8 depending on how friendly you all are.  Has hot tub,\ndeck.  Easy access to parking lot and shuttle to slopes (condo is a few\nmiles from the slopes).\n\nCost: $6000 OBRO, price based on what we paid for it (used, also) and\ncurrent market.\n[RICHR]\n--\n   The opinions expressed are not necessarily those of the University of\n     North Carolina at Chapel Hill, the Campus Office for Information\n        Technology, or the Experimental Bulletin Board Service.\n           internet:  laUNChpad.unc.edu or 152.2.22.80\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3677, "properties": {"category": "sci.electronics", "text": "Organization: Penn State University\nFrom: <PCA103@psuvm.psu.edu>\nSubject: ATARI 2600 Processors\nLines: 12\n\nDoes anyone know what processor the Atari 2600 used? What I'm looking for is th\ne pin-outs for the Atari 2600.... the schematics for it it... does anyone have\nany idea where I could find this or any related information? This is very impor\ntant. Also, are the ROM chips that were used fo rthe 2600 games still available\n, or were they propreitary? Please email me with any responces, as this is very\n important.. Thanks a million...\n\nBTW- Anyone who works/has worked for Atari, I could really use your help with i\nnfo on the old 2600, please email me if you are willing to help me.... thatnks\nalot!!\n\n-Peter\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3678, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bca@ece.cmu.edu (Brian C. Anderson)\nSubject: Trnasfering binary files from Terminal to UNIX\nOriginator: bca@packard.ece.cmu.edu\nKeywords: Terminal, Kermit, UNIX\nLines: 15\nReply-To: bca@ece.cmu.edu (Brian C. Anderson)\nOrganization: Electrical and Computer Engineering, Carnegie Mellon\nDistribution: cmu\n\n\n\tI'm attempting to transfer files from my home computer running\nWindows 3.1 Terminal to a workstation at school.  The file transfer protocol\nat home is Kermit for binary files.  I'm running Kermit on the workstation at school and\nsetting the file transfer protocol to binary.  I am unable to upload files\nto school but can download files from school to home.  During download,\nTerminal displays ther retrying message several times then the message '\nVerify you're using the correct protocol'.  \n\tAnyone have any ideas on how to fix?  Either e-mail or post to this\ngroup. \n\nThanks, in advance,\n\nBrian Anderson    ///  Go Pens - make it 14 in a row ///\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3679, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: sundboe@bgibm1.nho.hydro.com (Terje Thoegersen)\nSubject: Re: Problems with Toshiba 3401 CDROM\nOrganization: Norsk Hydro a.s\nLines: 26\nDistribution: world\nReply-To: hktth@nho.hydro.com\nNNTP-Posting-Host: bgibm1.nho.hydro.com\n\nIn article <1993Apr20.191255.10115@news.columbia.edu>, imj1@cunixa.cc.columbia.edu (Imad M Jureidini) writes:\n|> Hi!\n|> \tI recently purchased the Toshiba 3401 CDROM.  I own an Adaptec 1542B\n|> SCSI card, and I have so far failed to get the CDROM to work under DOS.  It\n|> works very well under OS/2, so I know that the drive is not faulty.\n|> In my config.sys, I have aspi3dos.sys, aspidisk.sys, aspicd.sys.  In my \n|> autoexec.bat, I have MSCDEX, which came with DOS 6.0.  MSCDEX seems to find\n|> and install the drive as drive F:, but when I switch to that drive and try a\n|> dir, I get an error message telling me the drive is not ready or something\n|> like that.  The CDROM is locked too, and the adaptec utilities don't seem to\n|> recognize that I have a CDROM at that point.\n|> \tHas anyone ever had this problem?  Is there something abvious that I\n|> am missing?  And finally, I was wondering if anyone using this setup could \n|> kindly post his/her config.sys and autoexec.bat.\n|> \n\nHi!\n\nOne of the ASPI-drivers (I think it's the ASPICD) supports a /NORST\nparamter, which means to not reset the SCSI bus when it loads. This\nfixed the problem a friend of mine was having with his adaptec+tosh \n3401.\n\nRegards,\n\n  -Terje\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.167+0000", "event": "documents", "entityId": 3680, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: nuclear waste\nOrganization: Texas Instruments Inc\nLines: 78\n\nIn <1993Apr2.150038.2521@cs.rochester.edu> dietz@cs.rochester.edu (Paul Dietz) writes:\n\n>In article <1993Apr1.204657.29451@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n\n>>>This system would produce enough energy to drive the accelerator,\n>>>perhaps with some left over.  A very high power (100's of MW CW or\n>>>quasi CW), very sharp proton beam would be required, but this appears\n>>>achievable using a linear accelerator.  The biggest question mark\n>>>would be the lead target chemistry and the on-line processing of all\n>>>the elements being incinerated.\n>>\n>>Paul, quite frankly I'll believe that this is really going to work on\n>>the typical trash one needs to process when I see them put a couple\n>>tons in one end and get (relatively) clean material out the other end,\n>>plus be able to run it off its own residual power.  Sounds almost like\n>>perpetual motion, doesn't it?\n\n>Fred, the honest thing to do would be to admit your criticism on\n>scientific grounds was invalid, rather than pretend you were actually\n>talking about engineering feasibility.  Given you postings, I can't\n>say I am surprised, though.\n\nWell, pardon me for trying to continue the discussion rather than just\ntugging my forelock in dismay at having not considered actually trying\nto recover the energy from this process (which is at least trying to\ngo the 'right' way on the energy curve).  Now, where *did* I put those\nsackcloth and ashes?\n\n[I was not and am not 'pretending' anything; I am *so* pleased you are\nnot surprised, though.]\n\n>No, it is nothing like perpetual motion.  \n\nNote that I didn't say it was perpetual motion, or even that it\nsounded like perpetual motion; the phrase was \"sounds almost like\nperpetual motion\", which I, at least, consider a somewhat different\npropposition than the one you elect to criticize.  Perhaps I should\nbeg your pardon for being *too* precise in my use of language?\n\n>The physics is well\n>understood; the energy comes from fission of actinides in subcritical\n>assemblies.  Folks have talked about spallation reactors since the\n>1950s.  Pulsed spallation neutron sources are in use today as research\n>tools.  Accelerator design has been improving, particularly with\n>superconducting accelerating cavities, which helps feasibility.  Los\n>Alamos has expertise in high current accelerators (LAMPF), so I\n>believe they know what they are talking about.\n\nI will believe that this process comes even close to approaching\ntechnological and economic feasibility (given the mixed nature of the\ntrash that will have to be run through it as opposed to the costs of\nseparating things first and having a different 'run' for each\nactinide) when I see them dump a few tons in one end and pull\n(relatively) clean material out the other.  Once the costs,\ntechnological risks, etc., are taken into account I still class this\none with the idea of throwing waste into the sun.  Sure, it's possible\nand the physics are well understood, but is it really a reasonable\napproach? \n\nAnd I still wonder at what sort of 'burning' rate you could get with\nsomething like this, as opposed to what kind of energy you would\nreally recover as opposed to what it would cost to build and power\nwith and without the energy recovery.  Are we talking ounces, pounds,\nor tons (grams, kilograms, or metric tons, for you SI fans) of\nmaterial and are we talking days, weeks, months, or years (days,\nweeks, months or years, for you SI fans -- hmmm, still using a\nnon-decimated time scale, I see  ;-))?\n\n>The real reason why accelerator breeders or incinerators are not being\n>built is that there isn't any reason to do so.  Natural uranium is\n>still too cheap, and geological disposal of actinides looks\n>technically reasonable.\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3681, "properties": {"category": "comp.graphics", "text": "From: harti@mikro.ee.tu-berlin.de (Stefan Hartmann (Behse))\nSubject: Genoa graphics board Drivers FTP site!\nArticle-I.D.: mailgzrz.1qpf1r$9ti\nOrganization: TUBerlin/ZRZ\nLines: 29\nNNTP-Posting-Host: mikro.ee.tu-berlin.de\n\nHi,\n\nwell I have opened up a FTP site for getting the latest software drivers\nfor Genoa graphics cards.\n\nHere is how to access it:\n\nftp 192.109.42.11\nlogin:ftp\npassword:ftp\ncd pub/genoa\nls -l\nbinary\nprompt\nhash\n\n(now if you wanna have the latest drivers for the 7900 board)\n\ncd 7000series\nmget *\n\nquit\n\nThis is the sequence to get the drivers.\n\nIf you have any further question, please email me.\n\nBest regards, Stefan Hartmann\nemail to: harti@mikro.ee.tu-berlin.de\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3682, "properties": {"category": "rec.autos", "text": "From: jimf@centerline.com (Jim Frost)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: CenterLine Software, Inc.\nLines: 17\nDistribution: na\nNNTP-Posting-Host: 140.239.3.202\n\nnancy@hayduke (Nancy Feagans) writes:\n>Ashtrays and cigarette lighters.  These should be an *option*.\n\nGM, at least, is heading in that direction.  One of the post-sale\nquestions they asked me was if I'd like the choice of a cigarette\nliter or an accessory plug, and another whether I'd like the choice of\nan ashtray or a cup holder.\n\nThe '93 Geo Storms have the cigarette lighter vs accessory plug option\n(which did not exist in the '92 I bought) -- I'm not sure about the\nash tray vs cup holder.  It's a step in the right direction.\n\nThe ashtray does make a convenient change-holder so it's not\ncompletely useless.\n\njim frost\njimf@centerline.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3683, "properties": {"category": "soc.religion.christian", "text": "From: simon@giaeb.cc.monash.edu.au\nSubject: St. Maria Goretti\nOrganization: Monash University, Melb., Australia.\nLines: 125\n\nHeres the life of St. MAria Goretti, posted with kind permission of\nthe editor of the Australian Catholic Magazine \"Morning Star\".\n\nHope you like it.\n\n    Put up with anything to prevent sin St. Maria Goretti\n\n\n\n    Maria was born on October 16th 1890 to Luigi and Assunta Goretti,\n    the  eldest  daughter  in the family of seven. She was a cheerful\n    girl, always imitating her parents.  She had but one disire,  but\n    one wish: to receive our Lord in the Blessed Sacrament.\n\n    The date was finally set for little Maria to receive our Lord  on\n    the feast of Corpus Christi. For Maria, time seemed like an eter-\n    nity as she  slowly  neared  the  great  day.   When  it  finally\n    arrived, Fr. Jerome( the priest who was to celebrate the Mass and\n    give the children their First Holy Communion) delivered a  sermon\n    on\tthe  immense love of Jesus Christ for them and the great love\n    we should have in return for Him. He then warmly  urged  them  to\n    die rather than commit a mortal sin.\n\n    Maria humbly approached the Altar of God and  received  the  Holy\n    Eucharist.\tHer  only  sadness  was  the  thought of her father's\n    absence, who died some time beforehand. As for the\trest  of  the\n    day,  Maria remained under the spell of the divine visit; that is\n    until\n\n\t\t\t\t   -4-\n\n\n\n\n\n\n\n    her thoughts changed to when she could go next to Holy Communion.\n    Thus ended the happiest day of Maria's life.\n\n    Over the next twelve months, Maria had changed  from  a  giggling\n    little girl into a quiet young lady with responsibilities. As her\n    mother went out into the fields in place of  her  husband,\tMaria\n    took  on the ironing, cooking, washing and other motherly duties.\n    She was doing this not only for her own family, but also for  the\n    Serenellis, a father and son who lived with the Goretti's, owning\n    a share in the farm. Although Maria was poorer than all the other\n    children, she by far surpassed them in virtue. In all thi ngs she\n    did the Holy Will of God.\n\n    During the month of June,  Alessandro  Serenelli(the  son)\ttwice\n    made advances upon Maria when he chanced to be alone with her. On\n    both occasions Maria managed to  struggle  free  of  Alessandro's\n    strong  grip, but on the second, he threatened to kill her if she\n    even uttered a word to her mother. From this day on, Maria\tlived\n    in terror, fearing lest Alessandro attack again.\n\n\n    On July 5th 1902, Alessandro left work in the fields  to  \"get  a\n    handkerchief,\"  as\the  claimed. He went to the storeroom beneath\n    the house where Maria, who was outside on the  landing  with  the\n    baby,  could  hear him fumbling about in with tools. She wondered\n    what he was doing. It was later learned that he was sharpening  a\n    91/2\"  blade. He went to the house and called for Maria. She told\n    him she wouldn't go to him unless she knew why she was needed. He\n    stormed out to the landing and dragged her up to her room. Mar ia\n    instantly realized what he was up to. \"No, No, No! Do  not\ttouch\n    me!  It  is a sin, you will go to Hell!\" At this point Alessandro\n    held the knife over Maria's chest, who was now on the floor.\n\n    \"Will you or will you not?\" Maria gathered all her energy.\t\"No I\n    will  not,\tAlessandro,  no!\"   She had chosen her martyrdom over\n    sin, God over Satan.  Overcome with rage, Alessandro plunged  the\n    knife  into   Maria's  breast fourteen times.  Finally he came to\n    his senses and thought Maria was dead.  Frantically he threw  the\n    knife behind a closet and locked himself in his room.  The crying\n    of the baby Teresa\ton  the  landing  brought  the\tattention  to\n    Assunta  and the father of Alessandro. As the baby was unattended\n    and was in danger of falling off, they ran to the house  to  find\n    Maria,  who,  covered in blood, was dragging herself to the door.\n    When asked what happened she said Alessandro  stabbed  her.   \"He\n    wanted to make me do wrong and I would not.\"\n\n    The ambulance arrived, then the police who took Alessandro\taway.\n    As\tthe  ambulance\tcarried  Maria to the hospital, a large crowd\n    followed on foot.  The doctors at the  hospital held no hope  for\n    poor  little Maria.  The same Fr. Jerome who gave Maria her First\n    Communion\n\n\t\t\t\t   -5-\n\n\n\n\n\n\n\n    came to administer the last rites and to give her Holy  Viaticum.\n    He asked Maria if she would forgive her murderer.  \"Yes.  For the\n    love of Jesus I forgive him.  I wish for him to one day  join  me\n    in\tParadise.   May  God forgive him, for I alread y have.\" Maria\n    died at about three o'clock.\n\n    Alessandro was tried  and  found  guilty  of  Maria's  death  but\n    because  of  his  age  he  was  sentenced to only thirty years in\n    prison.  After eight  years of being a violent prisoner and show-\n    ing  no regret for his crime, he saw in a dream, in the  midst of\n    a field of flowers, Maria holding out a bunch of white lilies  to\n    him.  Soon later he wrote to the local bishop, begging God's par-\n    don for the grave sin he had committed.  He later gave  testimony\n    in\tMaria's  beatification in 1947.  Less than three years later,\n    on Ju ne 24th 1950, Maria was canonised.  Assunta Goretti was the\n    first mother ever to be present at her daughter's canonisation.\n\n    May St. Maria Goretti help\tus  to\tbe  pure  and  grant  us  the\n    strength to die rather than commit a mortal sin.\n\n    Saint Maria Goretti, pray for us.\n\n\n    by Brendan Arthur\n\n-- \nInternet: simon@giaeb.cc.monash.edu.au  \nViva Cristo Rey !! Long Live Christ the King.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3684, "properties": {"category": "comp.graphics", "text": "From: ebuhcb@ebu.ericsson.se (Cuyler Buckwalter 66678)\nSubject: Re: So what is the fastest Windows video c\nReply-To: ebuhcb@ebu.ericsson.se\nOrganization: Ericsson Business Communications, Inc.\nLines: 9\nNntp-Posting-Host: bones.ebu.ericsson.se\nX-Disclaimer: This article was posted by a user at Ericsson.\n              Any opinions expressed are strictly those of the\n              user and not necessarily those of Ericsson.\n\nIn article 16APR199309101156@trentu.ca, ayounes@trentu.ca (Amro Younes, Trent University, C.C. #314, Peterborough, ON, Canada K9J 7B8. (705) 749-0391) writes:\n>I have the ATI GRAPHICS ULTRA PRO EISA version.  I must admit it has \n>received bad press but that was due to the faulty drivers it had.  \n\nPC Magazine seems to be impressed with the ATI card in their most recent\nreviews.  In the April 13th issue they rate the ATI Graphics Ultra Pro\n(EISA version) as their \"Editor's Choice\".  They noted that the drivers\nhad improved since they tested the ISA version in January...\n                                                            ...Cuyler\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3685, "properties": {"category": "soc.religion.christian", "text": "From: sliew@ee.mu.OZ.AU (Selbyn Liew)\nSubject: Re: An agnostic's question\nOrganization: Dept of E & E Eng, U of M\nLines: 79\n\nIn article <Apr.17.01.11.16.1993.2265@geneva.rutgers.edu> jdt@voodoo.ca.boeing.com (Jim Tomlinson (jimt II)) writes:\n\n[..]\n\n>goodness that is within the power of each of us.  Now, the\n>complication is that one of my best friends has become very\n>fundamentalist. That would normally be a non-issue with me, but he\n\nHello.  Firstly, what do you exactly mean by \"fundamentalist\"?  I will\nfor the time being assume that what you mean is that your friend believes\nthat the bible is God's word to mankind?  I suspect that what happened\nto him is what he'll call being \"born again\"?  Anyway, was that recent?\nIf the answer is \"yes\" to all the questions above, it is quite\nunderstandable.  However, IMO, I'ld rather give advice to your friend!\nI think I've been through something similar to him, and one thing I can\nsay is that the basic problem is that each of you are now trying to\ncommunicate from different worldviews.  Why he talks about those things\nis because they are now \"obvious\" to him.  What is \"obvious\" to him is\nnot obvious to you.  Secondly, why he may be very persuasive is because\nfrom his point of view, he has been on \"both sides of the fence\".  This\nI mean that before he turned \"fundamentalist\", you two are agreeable\nbecause both of you see things from the same side.  If suddenly, as if\na new world of reality has suddenly opened up to him, it is like the\ndiscovery of let's say a new continent, or a new planet.  To him, he's\ngot to tell you because he has seen something much more wonderful than\nwhere he was, and what he thinks is much better than where you are now.\nYou have got to realise that from his point of view, he means well to\nyou, eventhough he may end up offending you.  To him, it is worth that\nrisk.  Nevertheless, it is really up to him to respect where you stand\nand listen to you as well.  At this moment, it may be difficult because\nhe is either very excited or feel it is too urgent to keep quiet about,\nhowever, he may not realise that he's really putting you off.\n\n[...]\n\n>the Bible that it is so.'  So my question is, how can I convince him\n>that this is a subject better left undiscussed, so we can preserve\n>what is (in all areas other than religious beliefs) a great\n>friendship?  How do I convince him that I am 'beyond saving' so he\n>won't try?  Thanks for any advice.\n\nSo far, I've only been trying to explain things from his side.  However,\nI do understand how you feel too, because I wasn't a Christian for a good\npart of my life as well.  I was quite turned off by Christians or\n\"fundamentalists\" who were really all out and enthusiastic about their\nfaith.  They really scared me, to tell you the truth.  Unfortunately,\n\"religious belief\" is a very personal thing, just as your agnosticism\nis also a very personal thing to you.  Since the Christian belief is\ninevitably at odds with anything non-Christian (religious or otherwise),\nit will be a touchy matter.  Like all friendships, it will take both\nsides to do their part to make it work.  In this matter, maybe you can\ndo your part by telling him nicely that you are not able to dig what he's\ntrying to convince you about, that it's beyond you or not your concern\n\"for now\".  Don't tell him it's nonsense, because to him it is reality -\nand that would be a real insult.  He'll also have to be careful not to\ninsult where you stand too.\n\nLike I said before, I wish I could give your friend some advice too.\nI'll admit that I did similarly to some of my friends when I became a\nChristian.  In some ways, I wish I could have done things a little\ndifferently.  However, it was difficult then because I was so excited\nand just blabbered away about what I've found!  To me, it was too good\nnot to know.  To some, I was crazy, and I didn't really care most of\nthe time what they thought.  You will probably think he's crazy too -\nbut God is very real to him, as real as you are to him.  Keep that in\nmind.  And he thinks he can convince you because since God is so real\nto him, he doesn't see why God can't be real to you too.\n\nI don't know how helpful this is to you.  But all the best anyhow -\nthis is quite a challenge for you to face.  By the way, personal\nconviction: nobody is \"beyond saving\" except the one we call the \ndevil and his hosts.\n\nRegards,\nSelbyn Liew\n==========================================================================\nDept. of EE Engineering, University of Melbourne, Victoria 3052, Australia\nEMAIL: sliew@mullian.ee.mu.oz.au    PH: +61-3-3447976   FAX: +61-3-3446678\n==========================================================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3686, "properties": {"category": "comp.windows.x", "text": "From: tommc@hpcvusj.cv.hp.com (Tom McFarland)\nSubject: Re: Mysterious beeping\nNntp-Posting-Host: hpcvusj.cv.hp.com\nReply-To: tommc@cv.hp.com\nOrganization: Hewlett Packard UTD-Corvallis\nLines: 41\n\nIn article <C5qtKK.wp@cup.hp.com>, defaria@cup.hp.com (Andy DeFaria) writes:\n|> [ Article crossposted from hp.windows ]\n|> [ Author was Andy DeFaria ]\n|> [ Posted on Mon, 19 Apr 1993 18:08:38 GMT ]\n|> \n|> For some reason the following code causes my X application to beep whenever I\n|> intercept a keystroke and change it's meaning.  The intent of this code it to\n|> allow \"date\" fields the following special keys:\n|> \n|> \t[Tt]:\tInsert today's date\n|> \t[+=]:\tBump day up by one\n|> \t[-_]:\tBump day down by one\n|> \n|> I hardcoded some dates for this example.  Perhaps I shouldn't be using an\n|> XmText field for this.\n|> \n|> ////////////////////////////////////////////////////////////////////////////// \n|> // \n|> // For some reason the following code beeps whenever any of the special keys\n|> // of [Tt+=-_] are hit.  Why?  The idea of this code is to interpret these\n|> // keys having the special meaning implied by the code.  I would like to get\n|> // rid of the beeping but, as far as I can tell, I'm not doing the beep and \n|> // am at a lose as to understanding who and why the beeping is occuring.\n|> // \n|> ////////////////////////////////////////////////////////////////////////////// \n\n\ncode deleted...\n\n>From the XmTextField man page (during discussion of resources):\n\n   XmNverifyBell\n\n      Specifies whether a bell will sound when an action is reversed\n      during a verification callback.\n\nYou are setting doit to false in the callback, and Text[Field] is beeping\nas it should.  To turn off this behavior, set this boolean resource to false.\n\nTom McFarland\n<tommc@cv.hp.com>\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3687, "properties": {"category": "talk.religion.misc", "text": "From: slhw4@cc.usu.edu (Jason Hunsaker)\nSubject: Re: Christian Owned Organization list\nOrganization: Utah State University\nLines: 12\n\nIn article <47749@sdcc12.ucsd.edu>, shopper@ucsd.edu writes:\n \n> Does anyone have or know where I can find a list of\n> christian-owned corporations and companies?  One that I know of\n> is WordPerfect.\n\nNaw, the owners of WordPerfect are Mormons, and by Tony Rose's\nand Robert Weiss' standards, Mormons aren't Christians.  :-)\n\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nInternet: slhw4@cc.usu.edu (Jason Hunsaker),  Logan, Utah\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3688, "properties": {"category": "talk.politics.misc", "text": "From: jac2y@Virginia.EDU (\"Jonathan A. Cook <jac2y>\")\nSubject: Re: Damn Furriners Be Taken Over\nOrganization: University of Virginia\nLines: 34\n\nkaldis@romulus.rutgers.edu  writes:\n\nKaldis, you are a worm.\n\n> Rank balderdash!  America's reputation abroad has become tarnished\n> because of feckless and pusillanimous cowards who apparently do not\n> have the requisite gonads to stand up for American honor and dignity.\n\nTranslation-  It's them DAMN liberals again!\n\n> The American Way may not be the only way, and you may not consider it\n> to be necessarily the best way, but, by God, it's _OUR_ way and we're\n> going to stick with it!  If you can't go along with the program, then\n> perhaps you should consider moving elsewhere.\n\nWho gave you the authority to create and enforce this rather\nhazy thing called \"the American Way\"?  This is a democracy, and\nwe don't need to stick to it or stick up for it unless we so\nchoose.  Remember that, Ted, from Civics class in Greeley, CO?\n\n> That is exactly the _PROBLEM_ with Canadians!  They don't stand for\n> anything with certitude.\n\nNice generalization.\n\n> You pipsqueak!  You mouse!  If you are sorry to intrude then why do\n> it?  Don't you have the courage of your convictions?  Hell, do you\n> even have any convictions to start with?  What kind of example of\n> manly dignity is this?  Sheesh!\n\nComing from such a crass example of \"manly dignity,\" he must\nfeel _really_ hurt.\n\nJon, jac2y@virginia.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3689, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lingeke2@mentor.cc.purdue.edu (Ken Linger)\nSubject: 32 Bit System Zone\nOrganization: Purdue University\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 32\n\nA week or so ago, I posted about a problem with my SE/30:  I have 20 megs\nor true RAM, yet if I set my extensions to use a large amount of memory\n(total of all extensions) then my system will crash before the finder\ncomes up.  What I meant was having a large amount of fonts load, or\nsounds, or huge disk caches with a control panel other than Apple's\nmemory control panel.  Apple's cache is at 64K, mode 32 is on, and\nso is 32 bit addressing.  All extensions work by themselves or with the\nothers until I increase the memory used by some of them (with methods\nmentioned above).\n\nWell, here's my latest followup...  I ran NOWs System Profile and got\nthis information:\n\n%%% Memory info %%%\n\nPhysical RAM size: 20480K.\nLogical RAM size: 20480K.\nSize of Low Memory Area: 8K.\nVirtual Memory: Inactive.\nAddressing mode: 32bit mode in use.\n32 bit System zone: Absent.\nParity RAM: Not capable.\nGrowable System Heap: True.\nTemporary memory support: Present.\nTempory Memory Support: Real and tracked.\n\nNote that 32 bit System zone is absent.  Could this be the problem?\nHow can I turn this on?  Any ideas?\n\nCan anyone help?\n\nKen\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3690, "properties": {"category": "rec.motorcycles", "text": "From: nrmendel@unix.amherst.edu (Nathaniel Mendell)\nSubject: Re: Maxima Chain wax\nNntp-Posting-Host: amhux3.amherst.edu\nOrganization: Amherst College\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 31\n\nTom Dietrich (txd@ESD.3Com.COM) wrote:\n: parr@acs.ucalgary.ca (Charles Parr) writes:\n: \n: >I bought it, I tried it:\n: \n: >It is, truly, the miracle spooge.\n: \n: >My chain is lubed, my wheel is clean, after 1000km.\n: \n: Good, glad to hear it, I'm still studying it.\n: \n: >I think life is now complete...The shaft drive weenies now\n: >have no comeback when I discuss shaft effect.\n: \n: Sure I do, even though I don't consider myself a weenie... \n\n---------------- rip! pithy \"I'm afraid to work on my bike\" stuff deleted ---\n\n: There is also damn little if any shaft effect\n: with a Concours. So there! :{P PPPpppphhhhhttttttt!!!\n: \nHeh, heh...that's pretty funny. So what do you call it instead of shaft\neffect?\n\n\nNathaniel\nZX-10  <--- damn little if any shaft effect\nDoD 0812\nAMA\n\np.s. okay, so it's flame bait, so what\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3691, "properties": {"category": "sci.electronics", "text": "From: kludge@grissom.larc.nasa.gov (Scott Dorsey)\nSubject: Re: what to do with old 256k SIMMs?\nOrganization: NASA Langley Research Center and Reptile Farm\nLines: 12\nNNTP-Posting-Host: grissom.larc.nasa.gov\n\nIn article <C5JCH1.FrC@ulowell.ulowell.edu> wex@cs.ulowell.edu writes:\n>In article <1993Apr15.100452.16793@csx.cciw.ca>, u009@csx.cciw.ca (G. Stewart Beal) writes:\n>|> >\tI was wondering if people had any good uses for old\n>|> >256k SIMMs.  I have a bunch of them for the Apple Mac\n>|> >and I know lots of other people do to.  I have tried to\n>|> >sell them but have gotten NO interest.\n>\n>We use them as Christmas tree decorations, the cat doesn't eat these.\n\nYes, but they don't look appropriate.  I much prefer used 833 tubes on\nmy tree.\n--scott\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3692, "properties": {"category": "sci.crypt", "text": "From: rboudrie@chpc.org (Rob Boudrie)\nSubject: Re: White House Public Encryption Management Fact Sheet\nOrganization: Center For High Perf. Computing of WPI; Marlboro Ma\nDistribution: na\nLines: 10\n\n\n>security of the key-escrow system.  In making this decision, I do\n>not intend to prevent the private sector from developing, or the\n>government from approving, other microcircuits or algorithms that\n>are equally effective in assuring both privacy and a secure key-\n>escrow system.\n\nYeah, but does he intend to prevent the private sector from\ndeveloping other applications that are equally effective in \nassuring privacy, but do not have a key escrow system?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3693, "properties": {"category": "sci.crypt", "text": "From: uni@acs.bu.edu (Shaen Bernhardt)\nSubject: Re: An Open Letter to Mr. Clinton\nOrganization: Boston University, Boston, MA, USA\nLines: 44\n\nIn article <C5oy0z.ILy@chinet.chi.il.us> schneier@chinet.chi.il.us (Bruce Schneier) writes:\n>In article <strnlghtC5M2Cv.8Hx@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>>\n>>Here's a simple way to convert the Clipper proposal to an unexceptionable\n>>one: Make it voluntary.\n>>\n>>That is--you get high quality secure NSA classified technology if you agree\n>>to escrow your key. Otherwise you are on your own.\n>>\n>\n>As long as \"you are on your own\" means that you can use your own encryption,\n>I'm sold.\n>\n>Bruce\n\nAs am I\n\nIf \"high quality secure NSA classified technology\" means handing my key\nover to whomever, I'll take PGP any day.\n\nRight now they are billing it as voluntary, i.e. bend over, here it comes.\n\nAs soon as enough Wiretap chip based units are out there, how much\neasier do you think it will be to redefine \"on your own\" to mean\nwrite it yourself and don't even THINK about distributing it...?\n\nGet honest, no one is going to buy this trash if they KNOW it's compromised\nalready, and less will buy it if the algorithm is not disclosed.\n\nThe NSA knows that making this stuff available to the public means\nhanding it to whatever foreign powers are interested in the process.\nSince when has export control stopped anyone (especially software wise)\n\nAsk yourself carefully if \" high quality secure NSA classified technology \"\nis something they are going to hand out.  Not unless you can drive a\nNSA van through the holes.\n\nuni (Dark)\n\n-- \nuni@acs.bu.edu  ->  Public Keys by finger and/or request\nPublic Key Archives at <pgp-public-keys@pgp.iastate.edu>\nDF610670F2467B99  97DE2B5C3749148C  Sovereignty is the sign of a brutal past.\nCryptography is not a crime.  Fight the Big Brother Proposal!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3694, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Gospel Dating\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 16\n\nKeith M. Ryan (kmr4@po.CWRU.edu) wrote:\n: \n: \tWild and fanciful claims require greater evidence. If you state that \n: one of the books in your room is blue, I certainly do not need as much \n: evidence to believe than if you were to claim that there is a two headed \n: leapard in your bed. [ and I don't mean a male lover in a leotard! ]\n\nKeith, \n\nIf the issue is, \"What is Truth\" then the consequences of whatever\nproposition argued is irrelevent. If the issue is, \"What are the consequences\nif such and such -is- True\", then Truth is irrelevent. Which is it to\nbe?\n\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3695, "properties": {"category": "comp.sys.mac.hardware", "text": "From: abea@az.stratus.com (Art Beattie)\nSubject: Re: Quadra SCSI Problems???\nOrganization: Stratus Computers, Inc.\nLines: 63\nDistribution: world\nNNTP-Posting-Host: cababi.az.stratus.com\n\nIn article <katinka@FenK.wau.nl> (Katinka van der Linden) writes:\n} I would like more info on this if anybody has it. Our Exabyte\n} 8500 tapedrive has never been working from the Quadra 950.\n} We have been trying it since September 1992, replaced cabling,\n} inits, I don't know what all. All the \"industry experts\" we\n} phoned (the tapedrive dealer, our Apple dealer, the software\n} dealer) all say it's our fault, or they don't know. The last\n} thing they said was that we needed a special Quadra SCSI terminator\n} (???). Anybody know more? Thanks,\n\nIn article <1993Apr19.131311.25871@mintaka.lcs.mit.edu>, nodine@lcs.mit.edu\n(Mark H. Nodine) wrote:\n> \n> In article <C5L39p.2qz@news.udel.edu>, johnston@me.udel.edu (Bill Johnston) writes:\n> |> In article <1993Apr16.144750.1568@mintaka.lcs.mit.edu> nodine@lcs.mit.edu (Mark H. Nodine) writes:\n> |> >I don't know about the specific problem mentioned in your\n> |> >message, but I definitely had SCSI problems between my\n> |> >Q700 and my venerable Jasmine Megadrive 10 cartridge\n> |> >drives.  My solution was to get Silverlining.  None of\n> |> >the loops that involved blind writes worked to the drives;\n> |> >in fact the only loop that worked was the \"Macintosh\n> |> >Software\" loop (whatever that means).\n> |> \n> |> I doubt this is a Quadra-specific problem.  I had to get\n> |> rid of my \"venerable\" Bernoulli 20 last year (with enough \n> |> cartridges purchased at ~$90 each to make the whole thing \n> |> worth more than my whole computer ;).  The tech support guys\n> |> at Ocean Microsystems suggested that some third-party drivers \n> |> might fix the problem - in my case the cartridges wouldn't \n> |> format/mount/partition for A/UX.  \n> \n> All I know is that the Megadrives worked perfectly on both my\n> Mac Plus and my Powerbook 140.  It was for this reason I assumed\n> the problem had something to do with the Quadra.  Even with the\n> Quadra, they mostly worked OK.  The problem occurred when I ejected\n> a cartridge from a drive: it would start popping up dialog boxes\n> saying \"This cartridge must be formatted with Jasmine Driveware\"\n> even though there was no cartridge in the drive.\n> \n> \t--Mark\n\nI have been using the PLI (SONY) 3.5\" MO drive and now a Sharp color\nscanner using standard SCSI cables and STANDARD $20 terminator on my Q700. \nNo problems.  If you were using a IIfx, that might be another story.\n\nMake sure there is only one terminator in the cabling and it must be at the\nend.  Some boxes have internal terminators; some can be switched out and\nothers are socketted.  These count.  If the box with internal terminations\ncannot be put on the end to terminate the cabling, they have to be\ndisabled, ie, switched out or pulled out of their sockets.  If you have 2\nboxes with internal terminations, the terminations in one box has to be\ndisabled...., etc.  I am sure that this has been covered by the \"experts\".\n\nMy experience with SCSI boxes that connect to the Mac indicates that they\nmust have some software package for the Mac to 'talk' to them.  My PLI MO\ndrive and Sharp scanner has one for each.\n\nGood luck.\n\nArt Beattie\n==============================================================\nI only speak for myself.\n==============================================================\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3696, "properties": {"category": "talk.politics.mideast", "text": "From: francesca_M._Benson@fourd.com\nSubject: Serdar\nOrganization: 4th Dimension BBS\nLines: 7\nNNTP-Posting-Host: cs.utexas.edu\n\nHey Serdar,\n           What are you retarded?\n\n********************************************************************\nSystem: fourd.com                                Phone: 617-494-0565\nCute quote:  Being a computer means never having to say you're sorry\n********************************************************************\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3697, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nLines: 9\n\n\t\tI think I should also point out that the mystical DES engines\n\tare known plaintext engines (unless you add a ton of really smart\n\thardware?)\n\nAssume the ton of smart hardware.  It doesn't really have to be that smart.\n\nG\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3698, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nArticle-I.D.: aurora.1993Apr19.130922.1\nOrganization: University of Alaska Fairbanks\nLines: 28\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <1993Apr19.144427.17399@aio.jsc.nasa.gov>, kjenks@gothamcity.jsc.nasa.gov writes:\n> Gene Wright (gene@theporch.raider.net) wrote:\n> : Announce that a reward of $1 billion would go to the first corporation \n> : who successfully keeps at least 1 person alive on the moon for a year. \n> : Then you'd see some of the inexpensive but not popular technologies begin \n> : to be developed. THere'd be a different kind of space race then!\n> \n> I'm an advocate of this idea for funding Space Station work, and I\n> throw around the $1 billion figure for that \"reward.\"  I suggest that\n> you increase the Lunar reward to about $3 billion.\n> \n> This would encourage private industry to invest in space, which \n> should be one of NASA's primary goals.\n> \n> -- Ken Jenks, NASA/JSC/GM2, Space Shuttle Program Office\n>       kjenks@gothamcity.jsc.nasa.gov  (713) 483-4368\n> \n>      \"Better.  Faster.  Cheaper.\" -- Daniel S. Goldin, NASA Administrator\n\n\nAlso would maybe get the Russians Involved. After all they do have the resources\nto do it in part.. But they need the capital and the goal..\n\nI wonder if renting the russians resources would be a disqualification?\n\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3699, "properties": {"category": "comp.graphics", "text": "From: sherry@a.cs.okstate.edu (SHERRY ROBERT MICH)\nSubject: Re: .SCF files, help needed\nOrganization: Oklahoma State University\nLines: 27\n\nFrom article <1993Apr21.013846.1374@cx5.com>, by tlc@cx5.com:\n> \n> \n> I've got an old demo disk that I need to view. It was made using RIX Softworks.  \n> The files on the two diskette set end with: .scf\n> \n> The demo was VGA resolution (256 colors), but I don't know the spatial  \n> resolution.\n> \n\nAccording to my ColoRIX manual .SCF files are 640x480x256\n\n> First problem: When I try to run the demo, the screen has two black bars that  \n> cut across (horizontally) the screen, in the top third and bottom third of the  \n> screen. The bars are about 1-inch wide. Other than this, the demo (the  \n> animation part) seems to be running fine.\n> \n> Second problem: I can't find any graphics program that will open and display  \n> these files. I have a couple of image conversion programs, none mention .scf  \n> files.\n> \n\nYou may try VPIC, I think it handles the 256 color RIX files OK..\n\n\nRob Sherry\nsherry@a.cs.okstate.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3700, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Boston University Physics Department\nLines: 16\n\nIn article <1993Apr10.125109.25265@bradford.ac.uk> L.Newnham@bradford.ac.uk (Leonard Newnham) writes:\n\n>Gregg Jaeger (jaeger@buphy.bu.edu) wrote:\n\n>>Could you please explain in what way the Qur'an in your eyes carries\n>>\"the excess baggage of another era\"? The Qur'an in my opinion carries\n>>no such baggage. \n\n>How about trying to run a modern economy without charging interest on\n>loans.  From what I hear, even fundamentalist Iran is having to\n>compromise this ideal.\n\nWhich sort of loans and what have you heard exactly?\n\n\nGregg\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3701, "properties": {"category": "sci.med", "text": "From: kutuzova@venus.iteb.serpukhov.su\nSubject: THE RESEACHING OF STARVATION.\nOrganization: Institute of Theoretical and Experimental Biophysics\nLines: 29\nNNTP-Posting-Host: venus.iteb.serpukhov.su\n\nI am very interested in investigations of starvation for improving health.\nI am the young Russian reseacher  and have highest medical education\n and expierence in reseach work in biological field and would like\n to work on this problem.\nCan anybody send me the adresses of the hospitals or Medical Centers where  \nscientific problems of human starvation for the health are investigated?  \nAlso I would like to set scientific contacts with colleagues who\ndeals with investigations in this field.\nI would be very appreciated anyone reply me. \n\nPls, contact by post: 142292, Russia, \n                        Moscow Region,\n                        Puschino,\n                        P.O. box 46, \n                        for Kravchenko N.      ;\n\n       or by e-mail: kutuzova@venus.iteb.serpukhov.su\n                                           \n                                            Thank you advance,   \n                                             Natalja Kravchenko.\n  \n \n                \n\n\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.168+0000", "event": "documents", "entityId": 3702, "properties": {"category": "talk.politics.guns", "text": "From: dnewcomb@whale.st.usm.edu (Donald R. Newcomb)\nSubject: Re: Some more about gun control...\nNntp-Posting-Host: whale.st.usm.edu\nOrganization: University of Southern Mississippi\nLines: 145\n\nFirst, I would like to say how much I appreciate having so literate and\nerudite an individual as Mr. Rutledge with whom to discuss this topic.\nFrankly, most anti-RKBA posters refuse even to approach the topic of\nthe original understanding of the Bill of Rights as detailed in the\nwritings of the era. This  is most refreshing.\n\nSecond, I must apologize for leaving the discussion for several days.\nMy brigade's quarterly drill was this weekend and I needed to attend\nto several matters pertaining to the State Militia.\n\nSome people seem to feel that the concept of the Militia is an anachro-\nnism that is out of place in the 20th century. I'm not sure the Swiss\nwould agree and I think perhaps a discussion of how the Militia, both\norganized and unorganized, fits into the defense plans of my State,\nMississippi. Please do not assume that this describes something peculiar\nto one southern state. For instance, the Commonwealth of Massachusetts\nhas a well organized Militia which, members report, maintains stocks\nof both riot guns and machine guns. The laws of other States will vary\nbut are probably similar.\n\nTitle 35  of Mississippi Code defines our Militia as \"all able-bodied\ncitizens of the state between the ages of seventeen (17) and sixty-\ntwo (62) years...\". The Militia is divided into 3 classes: The National\nGuard, the Mississippi State Guard and the unorganized Militia.  The\nNational Guard is a strange sort of fish from a Constitutional perspective.\nIt tries to be both State Militia and Federal Reserve. The discussion\nof this \"para-constitutional\" arrangement is quite interesting in itself\nbut somewhat beyond the scope of this discussion. Suffice it that, at this\ndate, the National Guard has ceased to have any Constitutional standing\nas anything but a Federal reserve force.\n\nMississippi, and most other States, maintains a purely State organized\nMilitia. In Mississippi this is called The State Guard. In other \nStates it may be called something else. The State Guard exists as\na cadre or training corps made up of mostly experienced officers and\nsenior NCOs who serve as volunteers without compensation. We drill\non a monthly basis at the company and battalion level, brigade once\na quarter and have an annual drill of the whole organization. Our\nState-authorized cadre strength is 694. This is a skeleton of an\norganization without any flesh. The muscle and sinew when needed will\ncome from the unorganized Militia.\n\nIn time of invasion, insurrection or calamity the Governor can order\nthe activation of the State Guard. When this takes place a call will\nfirst be made  for volunteers to fill the organization out to either\nits contingency strength of 2194 or full strength of 4910. In the\nevent that a sufficient number of people fail to volunteer, the law\nprovides detailed instructions for the conducting of a draft of the\nunorganized Militia. The size of the State Guard is not specified by\nlaw, but rather by executive order. At one time, the organized Militia\nof Mississippi consisted of 68 regiments. Needless to say, the State\ndoes not have armories brimming with weapons with which to equip such\na force. The historical precedent for arming such a force is by use\nof mostly the private arms of the Militiamen. \n\nIt is my hope that demonstrates that State Militias are far from being\nthe long dead anachronisms that some may wish to claim.\n\n>No, I simple stated that the people have a right to \"join a well\n>organized militia.\"  And I have also stated that a militia that\n>meets once or twice a year is clearly \"well organized.\"  And this\n>state of readiness that I have claimed the people have a \"right\"\n>to, is the same state of readiness expected of the militia as stated\n>by Hamilton. \n\nRegarding Hamilton: If you take Hamilton's opinion as being the sole\nrepresentative of the opinions of the Founding Fathers, you will have\nchosen a highly skewed sample set. Hamilton was on the extreme Federalist\nend of the political spectrum. Others, such as Coxe and Henry, can\nbe chosen to represent the other end. Many contemporaries felt that\nthe idea of having a standing Army of any sort or even a select Militia\nor \"train bands\" were contrary to the egalitarian nature of the govern-\nment they were striving to perfect. The compromise reached was to\nprovide for a small Army, which had to be refinanced every two years,\nand iron-clad protection for the Militia, which was to remain ever,\n\"terrible and irresistible\".\n\nThese protections included: State control, not Federal; limitation\nof Federal utilization of the Militia (i.e. execute Laws, suppress\nInsurrections and repel Invasions), and the Right to Keep and Bear\nArms to prevent what the British had tried to do at Lexington.\nThese limitations eventually proved so onerous to the Federal Govern-\nment that they were skirted by the creation of the National Guard.\n\nThe National Guard was created for one very simple reason: the \nConstitutional Militia was had proved too unreliable for fighting\nwars of imperial expansion. (e.g. Spanish-American War). The\nConstitution provided that the Militia could only be employed by\nthe Federal government in very limited purposes. As far back as the\nWar of 1812, Militia units had refused to leave United States\nterritory to attack the enemy. Further, there was no Constitutional\nauthorization for any conscription of anyone into the Federal\nMilitary and Militiamen were particularly protected. In all wars until\nWW-I every American who left the country under arms was a volunteer.\nWhen the National Guard acts of 1903-1916 required that each new\nmember also enlist as a reservest in the Army, existing soldiers were\n\"grandfathered\". At least one of these \"grandfathered\" individuals\nrefused to go to France in 1918 and his refusal was upheld by the\nFederal Courts.\n\nMr. Rutledge has stated that the Second Amendment applies only to\nmembers of a \"well organized\" militia. However, the pre-Constitutional\nhistory of the American Militia shows relatively few periods when\nThe Militia came close to meeting either Messrs. Rutledge or Hamilton's\ndefinition of \"well organized\". In the period of peace between the\nFrench & Indian War and The Revolution many companies simply stopped\ndrilling and had to be reconstituted just prior to The Revolution.\nPerhaps Mr. Rutledge would care to argue that those of my ancestors\nwho answered the Lexington alarm had forfeited their rights because\ntheir units didn't drill for a few years in the 1760s. I would not\nbe so bold.\n\nAgain, I wish to repeat. The National Guard, for all its merits, is\nnot the Militia described by the Constitution  nor by Mr. Hamilton\nnor by Mr. Henry nor by Mr. Coxe. The fact that the Federal Government\nand many States are delinquent in their attentions to and organizing\nof their Constitutional Militias  diminishes neither their\nresponsibilities nor the rights of the Militia as detailed in the\nConstitution.\n \nMisunderstanding of the nature and purpose of the Militia is but one\nerror that has crept into modern readings of the Constitution. The\nConstitution prohibits States from keeping \"Troops or Ships of War\nin time of Peace\". I have heard some insist this prevents States from\nmaintaining a Militia, but this comes about because people today do not\nunderstand the meanings of the words in their 18th century usage.\nToday we call any large vessel a \"ship\" but in the 18th century the word\ndescribed a particular kind of vessel.  A \"ship\" is a large vessel with\nthree or more masts each carrying square rigged sails. A \"brig\" has two\nmasts. In the contemporary usage the States were prohibited only from keeping\nthe largest warships of the day, those capable of global operations. Today's\nequivalent might be a prohibition on the States' keeping nuclear missiles.\n\"Troops\" at this time meant a full-time professional military organization.\nAny study of contemporaneous writings will bear this out. \n\nIn at least one respect, I am in agreement with Mr. Rutledge; being\npersonally involved in the maintenance and advancement of The Militia\nas a viable means of defense for a modern society, I am frequently\nboth bemused and saddened when friends and associates wax poetic on\ntheir place in the unorganized Militia and become strangely silent or\nscarce when invited to attend a  drill of their State's Militia.\n-- \nDonald R. Newcomb              * University of Southern Mississippi\ndnewcomb@whale.st.usm.edu      * This is the way we tax and spend, tax \ndnewcomb@falcon.st.usm.edu     * and spend. We're Democrats in office.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3703, "properties": {"category": "alt.atheism", "text": "From: chrisb@seachg.com (Chris Blask)\nSubject: Re: islamic authority over women\nReply-To: chrisb@seachg.com (Chris Blask)\nOrganization: Me, Mississauga, Ontario, Canada\nLines: 78\n\nsnm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n>In article <1993Apr7.163445.1203@wam.umd.edu> west@next02.wam.umd.edu writes:\n>>> >> And belief causes far more horrors.\n>>> >> Crusades, \n>>> >> the emasculation and internment of Native Americans,  \n>>> >> the killing of various tribes in South America.\n>>> >-the Inquisition\n>>> >-the Counter-reformation and the wars that followed\n>>> >-the Salem witch trials\n>>> >-the European witch hunts\n>>> >-the holy wars of the middle east\n>>> >-the colonization/destruction of Africa\n>>> >-the wars between Christianity and Islam (post crusade)\n>>> >-the genocide (biblical) of the Canaanites and Philistines\n>>> >-Aryian invasion of India\n>>> >-the attempted genocide of Jews by Nazi Germany\n>>> >-the current missionary assaults on tribes in Africa\n>>> \n>>> I think all the horrors you mentioned are due to *lack* of people\n>>> following religion.\n.d.\n>By lack of people following religion I also include fanatics- people\n>that don't know what they are following.\n.d.\n>So how do you know that you were right?\n>Why are you trying to shove down my throat that religion causes horrors.\n>It really covers yourself- something false to save yourself.\n>\n>Peace,\n>\n>Bobby Mozumder\n>\nI just thought of another one, in the Bible, so it's definately not because\nof *lack* of religion.  The Book of Esther (which I read the other day for\nother reasons) describes the origin of Pur'im, a Jewish celbration of joy\nand peace.  The long and short of the story is that 75,000 people were\nkilled when people were tripping over all of the peacefull solutions \nlying about (you couldn't swing a sacred cow without slammin into a nice,\npeaceful solution.)  'Course Joshua and the jawbone of an ass spring to\nmind...\n\nI agree with Bobby this far: religion as it is used to kill large numbers\nof people is usually not used in the form or manner that it was originally\nintended for.\n\nThat doesn't reduce the number of deaths directly caused by religion, it is\njust a minor observation of the fact that there is almost nothing pure in\nthe Universe.  The very act of honestly attempting to find true meaning in\nreligious teaching has many times inspired hatred and led to war.  Many\npeople have been led by religious leaders more involved in their own\nstomache-contentsthan in any absolute truth, and have therefore been driven to\nkill by their leaders.\n\nThe point is that there are many things involved in religion that often\nlead to war.  Whether these things are a part of religion, an unpleasant\nside effect or (as Bobby would have it) the result of people switching\nbetween Religion and Atheism spontaneously, the results are the same.  \n\n@Religious groups have long been involved in the majority of the bloodiest\nparts of Man's history.@\n\nAtheists, on the other hand (preen,preen) are typically not an ideological\nsocial caste, nor are they driven to organize and spread their beliefs.\nThe overuse of Nazism and Stalinism just show how true this is:  Two groups\nwith very clear and specific ideologies using religious persecution to\nfurther their means.  Anyone who cannot see the obvious - namely that these\nwere groups founded for reasons *entirely* their own, who used religious\npersecution not because of any belief system but because it made them more\npowerfull - is trying too hard.  Basically, Bobby uses these examples\nbecause there are so few wars that were *not* *specifically* fought over\nreligion that he does not have many choices.\n\nWell, I'm off to Key West where the only flames are heating the bottom of\nlittle silver butter-dishes.\n\n-ciao\n\n-chris blask\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3704, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Stan Fischler, 4/16 (Keenan stuff!)\nOrganization: University of Toronto Chemistry Department\nLines: 16\n\nIn article <1993Apr17.015225.29031@news.columbia.edu> gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>\n>* The Oilers will charge to eat in the Press Room next year.\n>\n\nThere was an article in one of the Toronto papers about this a few\nmonths ago...probably the Globe and Mail...\n\n...any ethical \"journalist\", even a sports journalist should not\naccept free meals from a team in any case, which was the one of\nthe points the article was making.\n\nAdmittdly, most sports reporting is mostly with any ethical\nstandards...\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3705, "properties": {"category": "sci.electronics", "text": "From: Wayne Alan Martin <wm1h+@andrew.cmu.edu>\nSubject: Re: Dayton Hamfest\nOrganization: Senior, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 5\nDistribution: usa\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <1993Apr19.163122.20454@cbfsb.cb.att.com>\n\nYes, it is the 23, 24 and 25, in but does anyone have directions how to\nget there after I get to Dayton.  Thanks\n\nWayne Martin\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3706, "properties": {"category": "rec.autos", "text": "From: jfox@hooksett.East.Sun.COM (John Fox - SunExpress IR)\nSubject: Re: Jeep Grand vs. Toyota 4-Runner\nOrganization: Sun Microsystems, Inc.\nLines: 54\nDistribution: world\nReply-To: jfox@hooksett.East.Sun.COM\nNNTP-Posting-Host: hooksett.east.sun.com\n\nIn article IGw@world.std.com, edwards@world.std.com (Jonathan Edwards) writes:\n>I am considering buying one of these two vehicles (new).\n>I want a fun-to-drive family vehicle that can go through anything.\n>The Jeep is very popular, and has the features. All-Wheel-Drive, 4 wheel\n>anti-lock, roomy passenger cabin (but limited cargo with an internal spare).\n>THe Toyota is an aging design with only part-time 4-wheel and only rear\n>anti-lock (and no anti-lock in 4WD!). It also has a very inconvenient\n>rear gate, not to mention awkward ingress to the passenger cabin.\n>\n\nAny reason you are limited to the two mentioned? They aren't really at\nthe same point along the SUV spectrum - not to mention price range.\nHow about the Explorer, Trooper, Blazer, Montero, and if the budget\nallows, the Land Cruiser? \nBear in mind that 90% of all SUV's purchased never venture off-road.\nCarefully weigh the trade-off between comfort and off-road performance\nwhen choosing one, and realistically decide whether you'll actually\nmake enough use of the off-road-ability to sacrifice (some of) the\non-road comfort.\n\n\n\nJohn\n\n\n\n\n\n\n\n\n\n\nJohn\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3707, "properties": {"category": "comp.windows.x", "text": "From: dcr@mail.ast.cam.ac.uk (Derek C. Richardson)\nSubject: Re: Animation with XPutImage()?\nNntp-Posting-Host: ioas09.ast.cam.ac.uk\nReply-To: dcr@mail.ast.cam.ac.uk\nOrganization: Institute of Astronomy, Cambridge\nLines: 33\n\nIn article 17886@nrao.edu, rgooch@rp.CSIRO.AU (Richard Gooch) writes:\n>   The MIT tapes come with documentation written by Keith Packard on the Shared\n>   Memory Extension to X. Look in:  mit/doc/extensions/mit-shm.ms\n>   I found this invaluble. Unfortunately, there is a bit of work to set up the\n>   shared memory segments, making an XImage from it, etc. Also, there is an\n>   extension query to determine if the server supports it, but you still need to\n>   test if the server is running on the same host and if shared memory is enabled\n>   in the kernel. I have written layers of convience routines which make all this\n>   transparent.\n>   As for the XView code, well, I doubt that would be considered interesting.\n>   The interesting stuff is done in a C object library. People interested in this\n>   code can Email me.\n> \n> \t\t\t\tRegards,\n> \n> \t\t\t\t\tRichard Gooch,\n> \t\t\t\t\trgooch@atnf.csiro.au\n\nThanks for docs info. It turns out that if I leave out colormap updates between\nframes and use tvtwm, my tests with 100 400x400x8 frames on an IPX using the\nserver-resident pixmap method give an astonishing *50* frames per second! And\nVERY smooth. I think I've found the best solution (thanks to the generous help\non this group!) However, I may have colormap questions later.....\n\nDerek\n\n-----------------------------------------------------------\n| Derek C. Richardson    | Tel: (0223) 337548 x 37501     |\n| Institute of Astronomy | Fax: (0223) 337523             |\n| Cambridge, U.K.        |                                |\n| CB3 0HA                | E-mail: dcr@mail.ast.cam.ac.uk |\n-----------------------------------------------------------\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3708, "properties": {"category": "rec.autos", "text": "From: jdrout@scott.skidmore.edu (JTD is lost)\nSubject: Honda New Car Info\nOrganization: Skidmore, somewhere down from reality\nLines: 38\n\n\nFrom Kay Honda's \"Helpful HInts ABout Your Honda\" infromation sheet\n(given to new owners of Honda vehicles).\n\n\"A burning smell may be evident from your new car shortly after taking\ndelivery.\"\n--I now own a fire extinguisher;>--\n\n\n\"On Prelude S mels at temperatures above 32 degrees push the\naccelerator pedal to the floor one time, release slowly, and with your\nfoot off the accelerator, crank the engine until it starts.  Moe than\n5 seconds [!!!!!!! my note] of cranking may be required.  In\ntemperatures below 32 degrees the accelerator will have to be\ndepressed 2-3 times.\"\n\n\"Door panels and interior trim can be damaged if they are not buckled\nby getting caught when closing doors.\"\n\n\"When shifting accord automatic transmissions from Park Neutral, or\nReverse into Drive the transmission shifts into 3rd gear.\"\n\n\"In case of towing:\n\t1- Start the engine\n\t2- Shift into drive from Park, then from Drive to neutral\n\t3- Turn off engine\"\n--what if you are getting towed b/c engine won't run?--\n\n\"IF ENGINE DOES NOT RUN DO NOT USE THIS PROCEDURE!\"\n--Phew, I was worried!--\n\n\t\tInsert smilies where appropriate, though this is REAL.\n\nJonathan\n\njdrout@scott.skidmore.edu\nSkidmore College, Saratoga NY\n93 Civic Si + aftermarket fogs (if you own one, you understand!)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3709, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: Steffi.Beckhaus@newcastle.ac.uk (S. Beckhaus)\nSubject: Re: WP-PCF, Linux, RISC?\nNntp-Posting-Host: turing\nOrganization: Computing Laboratory, U of Newcastle upon Tyne, UK NE1 7RU.\nLines: 47\n\n\nIn article <1qu8ud$2hd@sunb.ocs.mq.edu.au>, eugene@mpce.mq.edu.au writes:\n>In article <C5o1yq.M34@csie.nctu.edu.tw> ghhwang@csie.nctu.edu.tw (ghhwang) writes:\n>>\n>>Dear friend,\n>>  The RISC means \"reduced instruction set computer\". The RISC usually has \n>>small instruction set so as to reduce the circuit complex and can increase \n>>the clock rate to have a high performance. You can read some books about\n>>computer architecture for more information about RISC.\n>\n>hmm... not that I am an authority on RISC ;-) but I clearly remember\n>reading that the instruction set on RISC CPUs is rather large.\n>The difference is in addressing modes - RISC instruction sets are not\n>as orthogonal is CISC.\n>\n\nI hope this will clear it up :\n\n(Taken from one of my lecture notes)\n\n \" ...  The alternative approach (to CISC),\n which has been adopted by many in\n recent years, has come to be known as \"RISC\": the Reduced\n Instruction Set Computer.  This can be characterised simply as\n \"Simpler is Faster\"; by simplifying the design (e.g.  by reducing\n the variety of instructions & addressing modes), the hardware can be\n designed to run faster.  Even at the cost of needing more\n instructions, the same task can be done more quickly by the simpler,\n faster design.\n\n A typical RISC processor will:\n\n    o provide a large number of registers (e.g.  32);\n\n    o perform all data operations on registers;\n\n    o provide few addressing modes (e.g. immediate or 'register + offset');\n\n    o only allow load & store operations to access memory;\n\n    o only use a few instruction formats;\n\n    o only support a few data types (e.g. integer, unsigned, floating).\n\nSteffi Beckhaus                 JANET: Steffi.Beckhaus@uk.ac.newcastle\nIf the odds are a million to one against something occurring, chances\nare 50-50 it will.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3710, "properties": {"category": "sci.space", "text": "From: PPORTH@hq.nasa.gov (\"Tricia Porth (202\")\nSubject: Remote Sensing Data\nX-Added: Forwarded by Space Digest\nMmdf-Warning: Parse error in original version of preceding line at VACATION.VENARI.CS.CMU.EDU\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 137\n\n=================================================================\nI am posting this for someone else.  Please respond to the \naddress listed below.  Please also excuse the duplication as this \nmessage has been crossposted.  Thanks!\n=================================================================\n \n \n      REQUEST FOR IDEAS FOR APPLICATIONS OF REMOTE SENSING DATABASES \n                             VIA THE INTERNET\n \nNASA is planning to expand the domain of users of its Earth and space science\ndata.  This effort will:\n \n  o   Use the evolving infrastructure of the U.S. Global Change Research \n      Program including the Mission To Planet Earth (MTPE) and the Earth \n      Observing System Data and Information System (EOSDIS) Programs.\n \n  o   Use the Internet, particularly the High Performance Computing and \n      Communications Program's NREN (National Research and Education \n      Network), as a means of providing access to and distribution of \n      science data and images and value added products.\n \n  o   Provide broad access to and utilization of remotely sensed images in \n      cooperation with other agencies (especially NOAA, EPA, DOE, DEd, \n      DOI/USGS, and USDA). \n \n  o   Support remote sensing image and data users and development \n      communities. \n \nThe user and development communities to be included (but not limited to) as\npart of this effort are educators, commercial application developers (e.g., \ntelevision weather forecasters), librarians, publishers, agriculture \nspecialists, transportation, forestry, state and local government planners, and\naqua business.\n \nThis program will be initiated in 1994.  Your assistance is requested to \nidentify potential applications of remote sensing images and data.  We would \nlike your ideas for potential application areas to assist with development of\nthe Implementation Plan.\n \nPLEASE NOTE: THIS IS NOT A REQUEST FOR PROPOSALS.  \n \nWe are seeking your ideas in these areas: \n \n  (1)  Potential commercial use of remote sensing data and images; \n \n  (2)  Potential noncommercial use of remote sensing data and images in \n       education (especially levels K-12) and other noncommercial areas;\n \n  (3)  Types of on-line capabilities and protocols to make the data more \n       accessible;\n \n  (4)  Additional points of contacts for ideas; and \n \n  (5)  Addresses and names  from whom to request proposals. \n \nFor your convenience, a standard format for responses is included below.  Feel\nfree to amend it as necessary.  Either e-mail or fax your responses to us by\nMay 5, 1993.\n \nE-MAIL:   On Internet \"rsdwg@orion.ossa.hq.nasa.gov\"  ASCII  - No binary \nattachments please\n \nFAX:   Ernie Lucier, c/o RSDWG, NASA HQ, FAX 202-358-3098\n \nSurvey responses in the following formats may also be placed in the FTP \ndirectory ~ftp/pub/RSDWG on orion.nasa.gov.  Please indicate the format. \nAcceptable formats are: Word for Windows 2.X, Macintosh Word 4.X and 5.X, and \nRTF.  \n \n \n \n----------------------------RESPONSE FORMAT--------------------------\n \nREQUEST FOR IDEAS FOR APPLICATIONS OF REMOTE SENSING DATABASES VIA THE INTERNET\n \n(1)  Potential commercial use of remote sensing data and images  (if possible,\nidentify the relevant types of data or science products, user tools, and\nstandards).\n \n \n \n \n \n \n \n(2)  Uses of remote sensing data and images in education (especially levels\nK-12) and other noncommercial areas (if possible, identify the relevant types\nof data or science products, user tools, and standards). \n \n \n \n \n \n \n \n(3)  Types of on-line capabilities and protocols to make the data and images\nmore accessible (if possible, identify relevant types of formats, standards,\nand user tools)\n \n \n \n \n \n \n \n(4)  Additional suggested persons or organizations that may be resources for \nfurther ideas on applications areas.  Please include: Name, Organization, \nAddress and Telephone Number.\n \n \n \n \n \n \n \n(5)  Organizations, mailing lists (electronic and paper), periodicals, etc. to\nwhom a solicitation for proposals should be sent when developed.  Please \ninclude: Name, Organization, Address and Telephone Number.\n \n \n \n(6)  We would benefit from knowing why users that know about NASA remote \nsensing data do not use the data.  Is it because they do not have ties to NASA\ninvestigators, or high cost, lack of accessibility, incompatible data formats,\npoor area of interest coverage, inadequate spatial or spectral resolution, ...?\n \n \n \n \n \n(7)  In case we have questions, please send us your name, address, phone number\n(and e-mail address if you have one).  If you don't wish to send us this\ninformation, feel free to respond to the survey anonymously.  Thank you for\nyour assistance. \n \n \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3711, "properties": {"category": "rec.autos", "text": "From: tpaquette@ita.lgc.com (Trevor Paquette)\nSubject: My day in court: RESULTS\nNntp-Posting-Host: curly.ita.lgc.com\nOrganization: Landmark/ITA\nLines: 36\n\n\n  A while back I asked for help in defending a traffic ticket I received.\n In short:\n     The ticket was for not stopping at a stop sign. Given the conditions\n   I could not stop in time and decided instead of sliding right through the\n   intersection, I would complete my right-turn and avoid a possible accident.\n   A police cruiser happened to be approaching the intersection from my left\n   and gave me the ticket.\n     The officer said \"The only reason that you even slowed down in the first\n   place was that you saw me approaching, otherwise you would have bombed right\n   through\"\n\n\n  I would like to thank all those who responded favorably to my request for\n help. To all of those who told me to bite the bullet and pay the fine:\n PHGHGHGHGH..\n\n The judge sided with me and decided that in this case \"Not stopping\" was the\n safest thing to do and found me NOT GUILTY.\n\n  The officer's statement and my account of the conditions at the time (very\n  slippery, backed by newpaper weather conditions) were the factors what made\n  the judge decide on his verdict.\n\n\n  Moral: If you have never been to court before and you think you have a case,\n\t go for it. It is a very interesting process, and it is there for\n\t your benefit. Exercise your rights.\n\n\n Trev\n--\nName : Trevor Paquette       | Landmark/ITA             |  _\\___ Fahrvergnuegen\nEmail: tpaquette@ita.lgc.com | Calgary, Alberta, Canada | /     \\____\nVisitor from CyberSpace      | (403) 269-4669           |/ G60       \\\nRenegade of Virtual Reality  | #include <disclaimer.h>  |\\-O------O--/\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3712, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rtfuhge@immd8.informatik.uni-erlangen.de (Robert Fuhge)\nSubject: Re: Booting from B drive\nOrganization: University of Erlangen, csd. AI\nNNTP-Posting-Host: faui8s3.informatik.uni-erlangen.de\nLines: 36\n\nHi!\n\nI think VGA-Copy can do what you need. \nIf you create a new floppy for your a: drive (that is the 5 1/4\"), turn on\nthe \"modify\" switch of vga-copy.\nWhen you boot using this diskette, a message appears:\n\nThis is no system disk, you can\n1) replace disk with another,\n2) boot from Harddisk or\n3) switch drives and reboot (that is, a: becomes b:, b: becomes a:)\nType your choice:\n\nWhen you select the third item, you can boot from b: which is now called a: .\nSeems to work very good, for example booting drdos6 from the installation disks\nin 3.5\" format was no problem for a friend of mine (I have only a 3.5\" a: drive)\n\nHope that helps\nRobert\n\nP.S.: VGA-Copy is shareware, so it's easy to get. Newest Version seems to be 5.0 .\n\n-- \n+-----------------------------------------------------------------------------+\n|  Robert Fuhge,  Haagstrasse 17,  8520 Erlangen,  Tel. privat: 09131/204103  |\n|  Email: rtfuhge@cip.informatik.uni-erlangen.de  (demnaechst 91054 Erlangen) |\n+-----------------------------------------------------------------------------+\n|  \"Wars are not for to see who is right, but who is left ... \"               |\n+-----------------------------------------------------------------------------+\n---\n+-----------------------------------------------------------------------------+\n|  Robert Fuhge,  Haagstrasse 17,  8520 Erlangen,  Tel. privat: 09131/204103  |\n|  Email: rtfuhge@cip.informatik.uni-erlangen.de  (demnaechst 91054 Erlangen) |\n+-----------------------------------------------------------------------------+\n|  \"Wars are not for to see who is right, but who is left ... \"               |\n+-----------------------------------------------------------------------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3713, "properties": {"category": "alt.atheism", "text": "From: Nanci Ann Miller <nm0w+@andrew.cmu.edu>\nSubject: Re: New Member\nOrganization: Sponsored account, School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 16\n\t<1993Apr16.015931.12153@mnemosyne.cs.du.edu>\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <1993Apr16.015931.12153@mnemosyne.cs.du.edu>\n\njcopelan@nyx.cs.du.edu (The One and Only) writes:\n> Welcome.  I am the official keeper of the list of nicknames that people\n> are known by on alt.atheism (didn't know we had such a list, did you).\n> Your have been awarded the nickname of \"Buckminster.\"  So the next time\n> you post an article, sign with your nickname like so:\n> Dave \"Buckminster\" Fuller.  Thanks again.\n> \n> Jim \"Humor means never having to say you're sorry\" Copeland\n\nOf course, the list has to agree with the nickname laws laid down by the\nGIPU almost 2000 years ago (you know... the 9 of them that were written on\nthe iron tablets that melted once and had to be reinscribed?).  Since I am\na prophet of the GIPU I decree that you should post the whole list of\nnicknames for the frequent posters here!\n\nNanci\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3714, "properties": {"category": "rec.motorcycles", "text": "From: rbemben@timewarp.prime.com (Rich Bemben)\nSubject: Re: Its still cold, but...\nExpires: 30 Apr 93 05:00:00 GMT\nDistribution: usa\nOrganization: Computervision Corp., Bedford, Ma.\nLines: 14\n\nIn article <1993Apr6.224037.28921@linus.mitre.org> cookson@mbunix.mitre.org (Cookson) writes:\n>I tend to keep my bedroom window open during the winter and have woken\n>up to find frost on my bedspread, but I still get cold below about\n>30F.  Usually on the part that sticks out of the bottom of my helmet.\n>Maybe it's time to get a NOJ quiet rider.\n\nCool - I conjure up this image of BD in Doonesbury...so Dean, how long \nhave you been sleeping with your helmet on??\n\n\nRich Bemben - DoD #0044                     rbemben@timewarp.prime.com\n1977 750 Triumph Bonneville                 (617) 275-1800 x 4173\n\"Fear not the evil men do in the name of evil, but heaven protect\n us from the evil men do in the name of good\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3715, "properties": {"category": "soc.religion.christian", "text": "From: Gene.Gross@lambada.oit.unc.edu (Gene Gross)\nSubject: Re: DID HE REALLY RISE???\nOrganization: University of North Carolina Extended Bulletin Board Service\nLines: 60\n\nIn article <Apr.15.00.58.18.1993.28885@athos.rutgers.edu> oser@fermi.wustl.edu (Scott Oser) writes:\n>\n>And the two simplest refutations are these:\n>\n>(1)  What impact?  The only record of impact comes from the New Testament.\n>I have no guarantee that its books are in the least accurate, and that\n>the recorded \"impact\" actually happened.  I find it interesting that no other\n>contemporary source records an eclipse, an earthquake, a temple curtain\n>being torn, etc.  The earliest written claim we have of Jesus' resurrection\n>is from the Pauline epistles, none of which were written sooner than 20 years\n>after the supposed event.\n\nFirst, off I'd say that the impact if right before your eyes! 8-) That we are\neven discussing this is a major impact in and of itself. Further, the early\nchurch bears testimony to the impact.\n\n>(2)  It seems probable that no one displayed the body of Jesus because no\n>one knew where it was.  I personally believe that the most likely\n>explanation was that the body was stolen (by disciples, or by graverobbers).\n>Don't bother with the point about the guards ... it only appears in one\n>gospel, and seems like exactly the sort of thing early Christians might make\n>up in order to counter the grave-robbing charge.  The New Testament does\n>record that Jews believed the body had been stolen.  If there were really\n>guards, they could not have effectively made this claim, as they did.\n\nOf course they knew where it was. Don't forget that Jesus was seen by both\nthe Jews and the Romans as a troublemaker. Pilate was no fool and didn't \nneed the additional headaches of some fishermen stealing Jesus' body to \nmake it appear He had arisen. Since Jesus was buried in the grave of a \nman well know to the Sanhedrin, to say that they didn't know where He was\nburied begs the question.\n\nNow, you say that you think that the disciples stole the body. But think on\nthis a moment. Would you die to maintain something you KNEW to be a \ndeliberate lie!? If not, then why do you think the disciples would!? Now, I'm\nnot talking about dying for something you firmly believe to be the truth, \nbut unbeknown to you, it is a lie. Many have done this. No, I'm talking about\ndying, by beheading, stoning, crucifixion, etc., for something you know to\nbe a lie! Thus, you position with regards to the disciples stealing the \nbody seems rather lightweight to me.\n\nAs for graverobbers, why risk the severe penalties for grave robbing over \nthe body of Jesus? He wasn't buried with great riches. So, again, this is\nan argument that can be discounted.\n\nThat leaves you back on square one. What happened to the body!?\n\nIHL, Gene\n\n--\n   The opinions expressed are not necessarily those of the University of\n     North Carolina at Chapel Hill, the Campus Office for Information\n        Technology, or the Experimental Bulletin Board Service.\n           internet:  laUNChpad.unc.edu or 152.2.22.80\n\n[Again, let me comment that the most plausible non-Christian scenario,\nand the one typically suggested by sceptics who are knowledgeable\nabout the NT, is that the resurrection was a subjective event, and the\nempty tomb stories are a result of accounts growing in the telling.\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3716, "properties": {"category": "rec.autos", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: LH Workmanship\nNntp-Posting-Host: wind.bellcore.com\nReply-To: jchen@ctt.bellcore.com\nOrganization: Bell Communications Research\nLines: 19\n\nI just visited the NY Auto Show, and saw two LH cars on the floor: Eagle \nVision and Dodge Intrepid. \n\nReally nice I must say. Very attractive styling, lots of features and room, \nat a competitive price.  \n\nUnfortunately, the workmanship is quite disappointing. On BOTH cars,\nthe rubber seals around the window and door fell off. It turns out\nthe seals are just big grooved rubber band. It goes on just by pressing\nthe groove against the tongue on the door frame. Surely it would come\noff easily.\n\nI am not sure how many of this kind of pooring engineering/assembly\nproblems that will show up later.\n\nI may still consider buying it, but only when it establishes a good\ntrack record.\n\nJason Chen\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3717, "properties": {"category": "sci.crypt", "text": "From: ebrandt@jarthur.claremont.edu (Eli Brandt)\nSubject: Re: How to detect use of an illegal cipher?\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 25\n\nIn article <1993Apr17.085358.18460@clarinet.com> brad@clarinet.com (Brad Templeton) writes:\n>\"Your honour, the suspect suddenly started using another level of\n>cryptography and we can't tap his phone calls any more.  He must\n>have something to hide.  Please sign the warrant to search his\n>house...\"\n\nWhat they would need to do, though, is make sure that nobody has\naccess to decent crypto in the first place.  They probably can't\ntell Clippered voice from Clippered triple-DESed voice until they\nget their copy of your key.  Any criminal who's going to use\nencryption will do it under cover of Clipper.  The only way to avoid\nthis will be to try to prohibit strong encryption.\n\nI probably shouldn't say this, but they could try to detect the use\nof an illegal cypher by transmitting in the clear some statistical\nproperties of the plaintext.  An old-fashioned wiretap could then\ndetect the use of pre-encryption, which would drastically increase\nthe measured entropy of the input.  A countermeasure to this would\nbe to use steganographic techniques which put out voice.\n\nYou can tell if the NSA built this feature in: blow on the mike, and\nobserve whether a band of thugs comes through your ceiling.\n\n\t PGP 2 key by finger or e-mail\n   Eli   ebrandt@jarthur.claremont.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3718, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Morality? (was Re: <Political Atheists?)\nOrganization: sgi\nLines: 93\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1qlettINN8oi@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >>>Explain to me\n|> >>>how instinctive acts can be moral acts, and I am happy to listen.\n|> >>For example, if it were instinctive not to murder...\n|> >\n|> >Then not murdering would have no moral significance, since there\n|> >would be nothing voluntary about it.\n|> \n|> See, there you go again, saying that a moral act is only significant\n|> if it is \"voluntary.\"  Why do you think this?\n\nIf you force me to do something, am I morally responsible for it?\n\n|> \n|> And anyway, humans have the ability to disregard some of their instincts.\n\nWell, make up your mind.    Is it to be \"instinctive not to murder\"\nor not?\n\n|> \n|> >>So, only intelligent beings can be moral, even if the bahavior of other\n|> >>beings mimics theirs?\n|> >\n|> >You are starting to get the point.  Mimicry is not necessarily the \n|> >same as the action being imitated.  A Parrot saying \"Pretty Polly\" \n|> >isn't necessarily commenting on the pulchritude of Polly.\n|> \n|> You are attaching too many things to the term \"moral,\" I think.\n|> Let's try this:  is it \"good\" that animals of the same species\n|> don't kill each other.  Or, do you think this is right? \n\nIt's not even correct.    Animals of the same species do kill\none another.\n\n|> \n|> Or do you think that animals are machines, and that nothing they do\n|> is either right nor wrong?\n\nSigh.   I wonder how many times we have been round this loop.\n\nI think that instinctive bahaviour has no moral significance.\nI am quite prepared to believe that higher animals, such as\nprimates, have the beginnings of a moral sense, since they seem\nto exhibit self-awareness.\n\n|> \n|> \n|> >>Animals of the same species could kill each other arbitarily, but \n|> >>they don't.\n|> >\n|> >They do.  I and other posters have given you many examples of exactly\n|> >this, but you seem to have a very short memory.\n|> \n|> Those weren't arbitrary killings.  They were slayings related to some \n|> sort of mating ritual or whatnot.\n\nSo what?     Are you trying to say that some killing in animals\nhas a moral significance and some does not?   Is this your\nnatural morality>\n\n\n|> \n|> >>Are you trying to say that this isn't an act of morality because\n|> >>most animals aren't intelligent enough to think like we do?\n|> >\n|> >I'm saying:\n|> >\t\"There must be the possibility that the organism - it's not \n|> >\tjust people we are talking about - can consider alternatives.\"\n|> >\n|> >It's right there in the posting you are replying to.\n|> \n|> Yes it was, but I still don't understand your distinctions.  What\n|> do you mean by \"consider?\"  Can a small child be moral?  How about\n|> a gorilla?  A dolphin?  A platypus?  Where is the line drawn?  Does\n|> the being need to be self aware?\n\nAre you blind?   What do you think that this sentence means?\n\n\t\"There must be the possibility that the organism - it's not \n\tjust people we are talking about - can consider alternatives.\"\n\nWhat would that imply?\n\n|> \n|> What *do* you call the mechanism which seems to prevent animals of\n|> the same species from (arbitrarily) killing each other?  Don't\n|> you find the fact that they don't at all significant?\n\nI find the fact that they do to be significant. \n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3719, "properties": {"category": "rec.sport.hockey", "text": "From: cpc4@ns1.cc.lehigh.edu (CONNIN PATRICK COLGAIN)\nSubject: Keenan signs with the Rangers!!\nOrganization: Lehigh University\nLines: 11\n\nJust heard on the news that Mike Keenan formerly of the Blackhawks, Flyers,\nand General of a Siberian Prison has just signed to coach the Rangers.  The\nRangers, who won the President's Cup last year have slipped just a bit at the\nend of the season and are destined to finish last behind the lowly Flyers.\nThe Flyers' fans are going to be disappointed on Keenans decision, because\nthey were very interested in him.  Oh well.\n\nGo CAPS!!!!!!!\n\nConnin\n-- \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3720, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Ten questions about Israel\nOrganization: The Department of Redundancy Department\nLines: 66\n\nIn article <ARENS.93Apr20192345@grl.ISI.EDU> arens@ISI.EDU (Yigal Arens) writes:\n\n>At issue was not a trial behind closed doors, but arrest, trial and\n>imprisonment in complete secrecy.  This was appraently attempted in the\n>case of Vanunu and failed.  It has happened before, and there is reason\n>to believe it still goes on.\n\nThe lengthy article you quote doesn't imply this.  It only states that\nit is somehow POSSIBLE, not that it is in any way likely.  This is akin\nto an article saying that it is POSSIBLE that the USAF has several\ncaptured UFOs, without supporting the liklihood of such an assertion.\n\n>Read this:\n>From Ma'ariv, February 18 (possibly 28), 1992\n>PUBLICATION BAN\n>\n>By Baruch Me'iri\n>\n>All those involved in this matter politely refused my request, one way\n>or another: \"Look, the subject is too delicate.  If I comment on it, I\n>will be implicitly admitting that it is true; If I mention a specific\n>case, even hint at it, I might be guilty of making public something\n>which may legally not be published\".\n\nIn other words, they were telling a pesky reporter to keep guessing.\n\nIsrael maintains this same attitude about nuclear weapons it may or\nmay not have.  The US maintains the same attitude about the presence\nof nuclear weapons on specific naval craft.  By refusing to\nacknowledge the existence of such weapons on specific ships, US\nwarships have, I believe, become unwelcome in New Zealand, which has\ndeclared itself a nuclear-free-zone.  \n\n>The State of Israel has never officially admitted that for many years\n>there have been in its prisons Israeli citizens who were sentenced to\n>long prison terms without either the fact of their arrest or the\n>crimes of which they were accused ever being made public. More\n>precisely: A court ordered publication ban was placed on the fact of\n>their arrest, and later on their imprisonment.\n\nThe USAF has never officially admitted to having any UFOs, either.\n\n>In Israel of 1993, citizens are imprisoned without us, the citizens of\n>this country, knowing anything about it.  Not knowing anything about\n>the fact that one person or another were tried and thrown in prison,\n>for security offenses, in complete secrecy.\n\nThis is stated as a fact without supporting evidence.  It would've\nbeen more convincing if your reporter had come up with just one name\nof someone who is sitting in jail, lost to the world, as he suggests.\nMaybe Elvis, or JFK, somebody.  \n\nLet's put it this way: If Israel has put people away without\npublicizing their arrests or the legal proceedings against them, how\nhas their disappearance been explained?  People have relatives,\nfriends and colleagues, you know.  Israel is not known as a place\nwhere people are made to vanish.  Would you care to give us a list of\npeople whose whereabouts are unknown?  People who are presumed to be\nimprisoned?  This whole conspiracy story isn't something that we've\ncome to associate with Yigal Arens before.  Perhaps from now on, we\nshould. \n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3721, "properties": {"category": "misc.forsale", "text": "From: mark@ocsmd.ocs.com (Mark Wilson)\nSubject: WANTED: The Nine-Mile Walk\nOrganization: Online Computer Systems, Inc.\nX-Newsreader: Tin 1.1 PL5\nDistribution: misc.forsale\nLines: 31\n\n[ Article crossposted from rec.arts.books ]\n[ Author was Mark Wilson ]\n[ Posted on Wed, 21 Apr 1993 11:55:55 GMT ]\n\nI am looking for the following book, which I have\nonly seen as a paperback (I lent my copy to someone,\nand forgetfulness has made that pronoun PERMANENTLY\nindeterminate!).  I am looking for one OR two copies!\n\nTitle: The Nine-Mile Walk and Other Stories\n        (unsure about the hyphen and the exact subtitle)\nAuthor: Harry Kemelman (author of all the \"Rabbi\" mysteries)\n\nIt's a collection of short mystery stories.  Please email\nmark@ocsmd.ocs.com OR call the 800 number given below.\nThanks!\n\n- Mark\n--\n-------------------------------------------------------------------------------\nMark Wilson, Online Computer Systems.  1-800-922-9204 or 1-301-601-2215\n(Try email address mark@ocsmd.ocs.com....)\nThis file .disclaims everything signed with my .signature, I .mean it!\n-------------------------------------------------------------------------------\n\n--\n-------------------------------------------------------------------------------\nMark Wilson, Online Computer Systems.  1-800-922-9204 or 1-301-601-2215\n(Try email address mark@ocsmd.ocs.com....)\nThis file .disclaims everything signed with my .signature, I .mean it!\n-------------------------------------------------------------------------------\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3722, "properties": {"category": "comp.windows.x", "text": "From: papresco@undergrad.math.uwaterloo.ca (Paul Prescod)\nSubject: X Toolkits\nOrganization: University of Waterloo\nLines: 29\n\nI am considering making a reasonably large application for free\ndistribution (probably copylefted).  I am going to use X.  Now I'm\nbewildered by the huge number of \"standards\" that \"open systems\" has\ncreated.  \n\nI've lived in a fairly tookit-sheltered environment.  Most of the tools\nhere were produced with the Athena Widget set, or X Intrinsics or Xw\n(??).  \n\nIn my humble opinion, they look like crap.  I don't know, however, if\nthis is a characteristic of the tookits, or just poor aestetic taste\nin the programmers.\n\nI would like my app to look a little more \"sculptured\" like mwm.  I\nunderstand, however, that mwm isn't free like the other tookits.\n\nI am getting Linux, so I will have InterViews, but I don't know how it\nwill look.  I get the impression Andrew is from the FSF, but I don't\nknow what it looks like either.\n\nIf you can help explain this toolkit mess to me, I would be much\nobliged.  Which are free?  Which are the best?  Which are portable?  Which\nlooks nice?  Which is not a resource hog?\n\nAlso, if you happen to know which are available on Linux and/or Sun,\nthat would be a big help too.\n\nThanks in advance.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3723, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Morality? (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 13\nNNTP-Posting-Host: punisher.caltech.edu\n\nkcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n\n>>So, you are saying that it isn't possible for an instinctive act\n>>to be moral one?  That is, in order for an act to be an act of morality,\n>>the person must consider the immoral action but then disregard it?\n>No, I'm saying that in order for an act to be moral or immoral, somebody/\n>someone/something must _consider_ it to be so.  That implies intelligence,\n>not instinct.\n\nWho has to consider it?  The being that does the action?  I'm still\nnot sure I know what you are trying to say.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3724, "properties": {"category": "talk.politics.mideast", "text": "From: mau@herky.cs.uiowa.edu (Mau Napoleon)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nNntp-Posting-Host: herky.cs.uiowa.edu\nOrganization: University of Iowa, Iowa City, IA, USA\nLines: 16\n\nFrom article <1qvgu5INN2np@lynx.unm.edu>, by osinski@chtm.eece.unm.edu (Marek Osinski):\n\n> Well, it did not take long to see how consequent some Greeks are in\n> requesting that Thessaloniki are not called Solun by Bulgarian netters. \n> So, Napoleon, why do you write about Konstantinople and not Istanbul?\n> \n> Marek Osinski\n\nThessaloniki is called Thessaloniki by its inhabitants for the last 2300 years.\nThe city was never called Solun by its inhabitants.\nInstabul was called Konstantinoupolis from 320 AD until about the 1920s.\nThat's about 1600 years. There many people alive today who were born in a city\ncalled Konstantinoupolis. How many people do you know that were born in a city \ncalled Solun.\n\nNapoleon\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.169+0000", "event": "documents", "entityId": 3725, "properties": {"category": "rec.sport.hockey", "text": "From: darling@cellar.org (Thomas Darling)\nSubject: Re: WHERE ARE THE DOUBTERS NOW?  HMM?\nOrganization: The Cellar BBS and public access system\nLines: 18\n\njason@studsys.mscs.mu.edu (Jason Hanson) writes:\n\n> In article <1993Apr4.051942.27095@ramsey.cs.laurentian.ca> maynard@ramsey.cs.\n> >\n> >And after the Leafs make cream cheese of the Philadelphia side tomorrow\n> >night the Leafs will be without equal.\n> \n> Then again, maybe not.\n\nTo put it mildly.  As I watched the Flyers demolish Toronto last night, 4-0,\nI realized that no matter how good the Leafs' #1 line may be, they'll need\none or two more decent lines to go far in the playoffs.  And, of course, a\nhealthy Felix Potvin.\n\n^~^~^~^~^~^~^~^~^\\\\\\^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^\nThomas A. Darling \\\\\\ The Cellar BBS & Public Access System: 215.539.3043\ndarling@cellar.org \\\\\\ GEnie: T.DARLING \\\\ FactHQ \"Truth Thru Technology\"\nv~v~v~v~v~v~v~v~v~v~\\\\\\~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v~v\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3726, "properties": {"category": "rec.autos", "text": "From: jackd@sad.hp.com (Jack Dauler)\nSubject: Re: Tires for Ford Ranger Pickup\nOrganization: HP Sonoma County (SRSD/MWTD/MID)\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 3\n\n   I have had good luck with my Ranger and Yokohama 371 S+M tires.\n   The tires have been wearing well and even the few times i have hauled\n   heavy loads they have done well.     \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3727, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: Acutane, Fibromyalgia Syndrome and CFS\nOrganization: University of Wisconsin Eau Claire\nLines: 37\n\n[reply to Daniel.Prince@f129.n102.z1.calcom.socal.com (Daniel Prince]\n \n>There is a person on the FIDO CFS echo who claims that he was cured of\n>CFS by taking accutane.  He also claims that you are using it in the\n>treatment of Fibromyalgia Syndrome.  Are you using accutane in the\n>treatment of Fibromyalgia Syndrome?\n \nYes.\n \n>Have you used it for CFS?\n \nIt seems to work equally well for CFS, another hint that these may be\ndifferent facets of the same underlying process.\n \n>Have you gotten good results with it?\n \nYes.  The benefit is usually evident within a few days of starting it.\nMost of the patients for whom it has worked well continued low-dose\namitriptyline, daily aerobic excersise, and a regular sleep schedule\n(current standard therapy).  Because of the cost (usually > $150/mo.,\ndepending on dose) and potential for significant side effects like\ncorneal injury and birth defects, I currently reserve it for those who\nfail conventional treatment.  It is important that the person\nprescribing it have some experience with it and follow the patient\nclosely.\n \n>Are you aware of any double blind studies on the use of accutane in\n>these conditions?  Thank you in advance for all replies.\n \nAs far as I know, I am the only person looking at it currently.  I\nshould get off my duff and finish writing up some case reports.  I'm not\nan academic physician, so I don't feel the pressure to publish or perish\nand I don't have the time during the work day for such things.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3728, "properties": {"category": "comp.graphics", "text": "From: srp@travis.csd.harris.com (Stephen Pietrowicz)\nSubject: Surface normal orientations\nArticle-I.D.: travis.1pscti$aqe\nOrganization: Harris CSD, Ft. Lauderdale, FL\nLines: 20\nNNTP-Posting-Host: travis.csd.harris.com\n\nSome rendering programs require that all surface normals point in the same\ndirection.  (ie: On a closed cube, all normals point outwards).  You can use\nthe points on the faces to determine the direction of the normal, by making\nsure that all points are either in clockwise or counter-clockwise order.\n\nHow do you go about orienting all normals in the same direction, given a \nset of points, edges and faces?   Say that you had a cube with all faces that \nhave their normals facing outwards, except for one face.  What's the\nbest way to realize that face is \"flipped\", and should have it's points\nre-ordered?   I thought I had a good way of telling this, but then realized\nthat the algorithm I had would only tell you if you had points in clockwise\norder for a 2d polygon.  I'd like something for 3d data.\n\nAny hints, tips, references would be appreciated.\n\nSteve\n-- \nWhere humor is concerned there are no standards -- no one can say what is good \nor bad, although you can be sure that everyone will.  -- John Kenneth Galbraith\n------- These opinions are my own.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3729, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pdh@netcom.com (P D H)\nSubject: Re: where to find comm ports with IRQs other than 3 and 4.\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 23\n\nhamilton@romulus.ehs.uiuc.edu (Wayne Hamilton) writes:\n\n>a friend of mine recently got such a serial card.  i'll have to\n>ask him to verify the details, but as i recall, he paid ~$50, it's\n>made by STB, it has 2 (or was it 4?) ports, and it supports the AT\n>IRQs (8-15) in addition to the convention ones.  i'm sure of the\n>last, because he had trouble finding comm software that would allow\n>him to override the \"standard\" IRQ assignments.\n\nUnfortunately there a *LOT* of such software.  I also find it to be\nthe case that the majority of the software that is BAD in this regard\nis COMMERCIAL software.  Way too many commercial packages are very\npoorly written.  But then most of the programs in MS-DOS are crap, such\nas the PRINT command TSR that locks up your system for long periods of\ntime when the printer is full instead of trying every clock tick.\n\nBack to comm software... I find success with TELIX (my COM3 at 3e8/5\nworks ok on TELIX).\n-- \n| Phil Howard,  pdh@netcom.com,  KA9WGN         Spell protection?  \"1(911)A1\" |\n| Right wing conservative capitalists are out to separate you from your MONEY |\n| Left wing liberal do gooders are out to separate you from EVERYTHING ELSE!! |\n+-----------------------------------------------------------------------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3730, "properties": {"category": "comp.windows.x", "text": "From: hue@island.COM (Pond Scum)\nSubject: Re: How to get 24bit color with xview frames ?\nOrganization: Island Graphics Corp.\nLines: 17\n\namathur@ces.cwru.edu (Alok Mathur) writes:\n>I would like to know how I can set the depth of the frame to be 24 bits.\n>I tried using the following Xlib code :\n\n>Am I using a completely wrong approach here ? Is it possible to set the depth\n\nYes.\n\n>and colormap for a window created by Xview ? What am I doing wrong ?\n\nLook up XV_DEPTH.  Also, you might want to try using XView colormap segments\ninstead of Xlib for your colormap stuff.  They will probably be easier\nfor you to use, and since you are using a TrueColor visual, you won't\nbe losing anything compared to straight Xlib.\n\n\n-Jonathan\t\thue@island.COM\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3731, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Hand Held Products, Inc.\nLines: 76\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <CMM.0.90.2.734814613.thomasp@surt.ifi.uio.no> Thomas Parsli  \n<thomasp@ifi.uio.no> writes:\n> \n> \n> \tObservations from a naive norwegian:\n> \n> \t1) Guns are made to KILL people, not to shoot target or to \n> \thave something more macho than stamps to collect.....\n> \n> \t2) It IS more easy to kill/injure someone with a gun than\n> \twith a knife or a bat (as in baseball).\n> \n> \t3) It's not very wise to compare two completely different\n> \tcountries like USA and, let's say, Island on issues like\n> \tcrime and violence.\n> \n> \t4) Yes, the problem is  people committing crimes, not the tools\n> \tbeeing used, but 1) should be taken into concideration.\n> \nOnly as far as it affects the crime rate.\n> \n> \tWe have a very strict gun-legislation in Norway, but until recently\n> \tit was possible for enyone over 18 years to buy a shotgun.\n> \tShotguns are used mainly for hunting in Norway(...), but because it\n> \twas so easy to accuire one, it was THE most used gun in crimes.\n> \tThe solution was to restrict the sale, so it's now necessary to \n> \tapply and register your shotgun.\n> \tAnd -unbelievable- the use of guns in crime fell.....\n\nDid the RATE of crime fall?  If not, the ban was of no use.  It is the rate of  \nviolent crime that matters, not the tools used.  \"It's the crime, stupid!\"\n\n> \tThere are now a new law against wearing long knives in public,\n> \tand why should it be allowed ??\n> \n\nApparently that became the weapon of choice after the shotguns were banned.   \nAfter that, they'll decide the car of choice  is the Saab, and propose a ban on  \nthat!\n\n> \tWhat I, as an scandinavian, have problems to understand is that \n> \tyou (Americans) have a more liberal view on guns and violence\n> \tthan on nudity and sex.\n> \tTry showing a bare breast on tv insted of violence and murder...\n> \n> \tYes, I know a little American history, but is it a civil/human\n> \tright to have an assault gun in your home and/or an handgun\n> \tin your car??\n> \n\nYes.  We still trust honest people here.  For the time being.\n\n> \n> \t\t\tThe bad english is not my fault, it's probably\n> \t\t\tthe keyboard-software or the quality of the\n> \t\t\tsubtext on tv......\n> \n> \n> \tDisclamer(not):\n> \tThese are the views of all studens at my university,\n> \tall Norwegians and probably whole of the universe...\n> \n> \n> \t\t\t                       Thomas Parsli\n> \t                                     thomasp@ifi.uio.no\n> \n\n\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3732, "properties": {"category": "rec.motorcycles", "text": "From: karish@gondwana.Stanford.EDU (Chuck Karish)\nSubject: Re: Changing sprocket ratios (79 Honda CB750)\nOrganization: Mindcraft, Inc.\nLines: 21\n\nIn article <C5K5BM.BtB@ms.uky.edu> cbrooks@ms.uky.edu (Clayton Brooks) writes:\n>Do any Honda gurus know if I can replace the \n>the front sprocket on my 1979 Honda CB750K with a slightly larger one?\n>(I see this as being preferable to reducing the size of the rear one)\n\nThat's a twin-cam, right?  There's a steel guard right next to\nthe sprocket to keep a broken chain from punching a hole in the\nengine cases, and it's needed.  There's probably not enough room\nto fit a bigger sprocket.\n\nI'd be inclined to take two teeth off the rear for a 5% ratio\nchange rather than adding one to the front for about 7%.  If you\nraise the overall gear ratio too much you'll impair the bike's\nrideability, because the gears will be far enough apart that\nthere will be only one gear that provides adequate response at\nany given speed.  Honda 750s don't have the widest of power\nbands.\n--\n\n    Chuck Karish          karish@mindcraft.com\n    (415) 323-9000 x117   karish@pangea.stanford.edu\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3733, "properties": {"category": "comp.graphics", "text": "From: cs60805@basin04.cacs.usl.edu (Rao Koganti Srinivasa)\nSubject: POLYGON FILL routine needed ....\nOrganization: The Center for Advanced Computer Studies\nLines: 18\n\n\n\n    Hi ,\n\n\n\tI am looking for a polygon fill routine to fill \n\tsimple 4 sided polygons .\n\n\tCan some one who has this routine in C help me in \n\tsaving my \"REINVENTING\" time.\n\n\tThanx in advance .....\n\n\n\n\n\tRao.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3734, "properties": {"category": "rec.autos", "text": "From: kensib@cary112.its.rpi.edu (Brian C. Kensing)\nSubject: Re: Manual Shift Bigots\nNntp-Posting-Host: cary112.its.rpi.edu\nReply-To: kensib@rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY.\nLines: 10\n\nI prefer a manual to an automatic as it should be.  I believe that automatics\nshould only be manufactured for people with physical disabilities who otherwise\nwould not be able to drive.  Automatic transmissions allow drivers to be lazy.\nMore time is available to fiddle with the radio or to look at the scenery\ninstead of concentrating on the road.  The manual transmission keeps the drive\nalways doing something, granted it isn't a large movement.  Plus, driving should\nbe FUN!  Driving a manual is fun, driving an automatic is a chore.\n\tIn the case of shift speed, automatics can be made to shift far faster\nthat any human could move a stick.  If I was racing, I'd want and automatic.  For\nnormal driving go with the manual.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3735, "properties": {"category": "talk.religion.misc", "text": "From: dotsonm@dmapub.dma.org (Mark Dotson)\nSubject: Fragmentation\nOrganization: Dayton Microcomputer Association; Dayton, Ohio\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 49\n\n\nThe primary problem in human nature is a \"fragmentation of being.\"\nHumans are in a state of tension, a tension of opposites. Good and\nevil are the most thought provoking polarities that come to mind.\n\nThe Bible provides us with many examples of the fragmentation of\nbeing. The warring opposites within us are a product of man's\nrebellion against God, which is described so vividly in the pages of\nthe Scriptures.\n\nMan was created with the order to become a god. Those were the words\nof St.  Basil in the fourth century. What he was trying to say was\nthat God created man to be a partaker of the divine nature. In the\nEastern Orthodox Church, this is called \"theosis,\" or \"deification.\"\n\nOne can also say that man was created to be whole, i.e. spirit, soul,\nand body operating in unison. The story of Adam and Eve is a picture\nof the archetypal humans before obtaining moral consciousness. Theirs\nwas a harmonious relationship with each other, the world, and the\nCreator. That innocent harmony was shattered when they disobeyed God,\ntheir natural wholeness falling apart into two seemingly\nirreconcilable halves. Immediately, guilt and fear was manifested in\ntheir lives. They become bound to hardship, toil, and suffering.  This\nis symbolized in their exile from the paradisiac state.\n\nThe beast in the jungle does not possess moral consciousness. If it\nwere to receive this self-awareness, the knowledge of good and evil,\nits paradisiac state would also be destroyed.\n\nWas it the intention of the Creator to leave man in this state of\ninnocence all the days of his existence on earth? Or was the gaining\nof self-awareness carefully staged by God, who did not desire that His\nmasterpiece, mankind, be a blissful idiot?\n\nGod must have known that, for mankind to achieve any kind of moral\nvalue, he must pass through a confrontation with the opposites. There\nis no other way to achieve union with God.\n\nJesus Christ is the answer to the problem of the warring polarities.\nHe was the perfectly integrated individual, reconciling the opposites,\nand making it possible for us to be integrated, i.e. to become God,\nnot in His essence, but in His energies.\n\nThe opposites is THE Christian problem. The Apostle Paul describes it\nwith the utmost precision in Romans 7:15-24. And he follows with the\nanswer to his dilemma in vs 25.\n\n                                 Mark\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3736, "properties": {"category": "talk.politics.guns", "text": "From: yoony@aix.rpi.edu (Young-Hoon Yoon)\nSubject: Re: Boston Gun Buy Back\nNntp-Posting-Host: aix.rpi.edu\nLines: 28\n\n\n\n>>Ron Miller wrote:\n>>When you ask the question of the \"authorities\" or sponsors of buyback\n>>programs whether they will check for stolen weapons and they answer\n>>\"no, it's total amnesty\".\n> (good point about registration schemes being used only for harassment deleted)\n\n> I would also like to point out that this is receiving stolen property and is \n>no different than a pawn shop owner doing the same thing. \n> \n>  \n>\tMyron Petro\n>\tNRA, USPSA\n>        DVC y'all\n>\t**************************************************************************\n>\t The opinions included in this post are my sole responsibility.\n>\t And are protected by the First Amendment and guarnteed by the \n>\t Second Amendment.   \n\nIf amnesty was their concern, they should pay in cash rather than moneyorder\nand they should check to see if the gun turned in was stolen or not.\nThis way if a gun turns out to be stolen, then even if they wanted to \nprosecute, they don't know who to prosecute.\nSince the only concern of these(HCI and the like) people seems to be the total\neradication of guns( legal or illegal ), why should they bother to check for\nstolen property.  If they knew who the rightful owner is, then they would have\nto return the gun and hence contrary to their intent to ban all guns.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3737, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hjhong@ev004.ev.nctu.edu.tw (H. J. Hong)\nSubject: FTP tool for Windows\nOrganization: National Chiao Tung University\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 8\n\nIs there any one know:\n\nWhat is the FTP tool for Windows and where to get the tool ?\n\nThanks for any help !!\n\nH.J.   1993,4,19\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3738, "properties": {"category": "sci.med", "text": "From: bytor@cruzio.santa-cruz.ca.us\nSubject: Lupus\nKeywords: Information wanted\nArticle-I.D.: cruzio.5254\nReply-To: bytor@cruzio.santa-cruz.ca.us\nLines: 12\n\n\nI have a friend who has just been diagnosed with Lupus, and I know nothing\nabout this disease. The only thing I do know is that this is some sort of\nskin disease, and my friend shows no skin rashes - in fact, they used a \nblood test to determine what had been wrong with an on going sacro-\nilliac joint problem. \nI am finding a hard time finding information on this disease. Could\nanyone please enlighten me as to the particulars of this disease. \nplease feel free to E-mail me at \nbytor@cruzio.santa-cruz.ca.us\n\nThanks in advance.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3739, "properties": {"category": "soc.religion.christian", "text": "From: Rick_Granberry@pts.mot.com (Rick Granberry)\nSubject: Re: Help\nReply-To: Rick_Granberry@pts.mot.com (Rick Granberry)\nOrganization: Motorola Paging and Telepoint Systems Group\nLines: 46\n\nIn article <Apr.21.03.26.51.1993.1379@geneva.rutgers.edu>, \nlmvec@westminster.ac.uk (William Hargreaves) writes:\n> Hi everyone, \n> \t   I'm a commited Christian that is battling with a problem.  I \n> know that romans talks about how we are saved by our faith not our \n> deeds, yet hebrews and james say that faith without deeds is useless, \n> saying' You fools, do you still think that just believing is enough?' \n> \n> Now if someone is fully believing but there life is totally lead by \n> themselves and not by God, according to Romans that person is still \n> saved by there faith.\n\nmy $.02 - Yes and No.  I do not believe the above scenario is not possible.  \nEither they are believing and living (in at least some part) led by God, else \nthey are not.  Believing (intellectually, but waiting(?)) is not enough.\n   Especially important to remember is that no one can judge whether you are \nso committed, nor can you judge someone else.  I guess the closest we can \ncome to know someone's situation is listening to their own statements.  This \ncan be fallible, as is our sense of communion one with another.\n\n> But then there is the bit which says that God \n> preferes someone who is cold to him (i.e. doesn't know him - condemned) \n> so a lukewarm Christian someone who knows and believes in God but doesn'\n> t make any attempt to live by the bible. \n\nRegarding this passage, we need to remember that this is a letter to a church \n(at Laodicea), people who are Of the Body of Christ. (Rev.3:14-16)  He talks \nabout their works.  A translation could say that he says their lack of \nconcern makes him sick (to the point of throwing up).\n\n> Now I am of the opinion that you a saved through faith alone (not what \n> you do) as taught in Romans, but how can I square up in my mind the \n> teachings of James in conjunction with the lukewarm Christian being '\n> spat-out'\n   Right, saving is by faith alone, except that faith does not come alone, if \nyou catch the two meanings.\n   I can offer the explanation that Jesus would that we were either \"on fire \nfor Him\" or so cold we knew we were not in His will and thus could be made \naware of our separation.  This is admonishment for His children, not eternal \ndamnation.\n\n\n\n| \"Answer not a fool according to his folly, lest thou also be like unto him.\" |\n| \"Answer a fool according to his folly, lest he be wise in his own conceit.\"  |\n| (proverbs 26:4&5)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3740, "properties": {"category": "rec.sport.baseball", "text": "From: gidi@Hilbert.Stanford.EDU (Gidi Avrahami)\nSubject: Re: Jewish Baseball Players?\nOrganization: Brotherhood Of Breath\nLines: 8\n\nI thought that Walt Weiss was jewish.  I seem to recall this\nwas mentioned once while he was still at Oakland.\n\nAlso, I have my suspicions about Esther Canseco (nee Haddad).\n\n\n--Gidi\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3741, "properties": {"category": "rec.autos", "text": "From: davec@ECE.Concordia.CA (Dave Chu)\nSubject: WANTED: OPINIONS ON 75 MG \nNntp-Posting-Host: dreams.ece.concordia.ca\nOrganization: ECE - Concordia University\nLines: 14\n\nI was wondering if anyone out in net-land have any opinions on MGs\nin general.  I know they are not the most reliable cars around but\nsummer is approaching and they are convertibles `8^).  I'm interested\nin a 75 MG but any opinions on MGs would be appreciated.  Thanks.\n\nDave \n                                          |\\ |     | |                       \n___________________________/\\  /\\  /\\_____| \\|_____| |_____   ___  ___   ___\n  Dave Kai-Chui Chu          \\/  \\/       | /|     | |       |    |     |\n  Dept. of Elec. & Comp. Eng.             |/ |     | |       |--  |     |--\n  Concordia University                  Voice:(514)848-3115  |___ |___  |___\n  1455 de Maisonneuve W. H915           Fax:  (514)848-2802\n  Montreal, Quebec, Canada H3G 1M8      Email:davec@ece.concordia.ca\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3742, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cca20@keele.ac.uk (J. Atherton)\nSubject: Serial Printing\nLines: 16\nDistribution: world\nNNTP-Posting-Host: seq1.cc.keele.ac.uk\nSummary: Output to serial printer garbles with Windows app. (e.g. Works)\nKeywords: Works Handshaking serial\nX-Newsreader: TIN [version 1.1 PL6]\n\nHi,\n\tWe've been having problems on a few setups when printing to a\nserial printer (dmp or Laser). I have used Works and Windows Write. The\noutput is OK from DOS and if I send plain text output, but anything\nfancy garbles or just doesn't output. The exception is outputting to a\nLserjet 4 which 'appears' to be fast enough receiving data, not to\nbother about handshaking messages. I'm sure I'm not alone in this. I've\ntried most of the Print/Network manager options I can think of. Anyone\nhad similar problems they've cured and would like to tell me 'bout it??\nThanks\n\nJohn Atherton\n\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3743, "properties": {"category": "rec.motorcycles", "text": "From: doc@webrider.central.sun.com (Steve Bunis - Chicago)\nSubject: Route Suggestions?\nOrganization: Sun Microsystems, Inc.\nLines: 33\nDistribution: usa\nReply-To: doc@webrider.central.sun.com\nNNTP-Posting-Host: webrider.central.sun.com\n\nAs I won't be able to make the Joust this summer (Job related time \nconflict :'^{   ), I plan instead on going to the Rider Rally in \nKnoxville.\n\nI'll be leaving from Chicago. and generally plan on going down along\nthe Indiana/Illinois border into Kentucky and then Tennessee.  I would \nbe very interested in hearing suggestions of roads/routes/areas that \nyou would consider \"must ride\" while on the way to Knoxville.\n\nI can leave as early as 5/22 and need to arrive in Knoxville by 6PM\non 5/25.  That leaves me a pretty good stretch of time to explore on \nthe way.\n\nBy the way if anyone else is going, and would like to partner for the \nride down, let me know.  I'll be heading east afterward to visit family, \nbut sure don't mind company on the ride down to the Rally.  Depending on \nweather et al. my plan is motelling/tenting thru the trip.\n\nFrom the Rally I'll be heading up the Blue Ridge Parkway, then jogging\ninto West Va (I-77) to run up 219 -> Marlington, 28 -> Petersburg, \n55E -> I-81/I-66E.  After this point the route is presently undetermined\ninto Pennsylvania, New York?, and back to Chicago (by 6/6).  Suggestions \nfor these areas would be of great interest also.\n\nMany thanks for your ideas,\n\nEnjoy,\n\n---\nSteve Bunis,  Sun Microsystems     ***DoD #0795***\t93-ST1100\n              Itasca, IL\t  ***AMA #682049***\t78-KZ650\n\t(ARE YOU SURE THIS IS APRIL??????  B^|  )\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3744, "properties": {"category": "misc.forsale", "text": "From: aboyko@dixie.com (Andrew boyko)\nSubject: Sega Genesis for sale w/Sonic 1/2\nOrganization: Dixie Communications Public Access.  The Mouth of the South.\nLines: 8\n\n4 month old Sega Genesis, barely used, one controller, in original\nbox, with Sonics 1 and 2.  $130 gets the whole bundle shipped to you.\n\nTurns out they're not as addictive when they're yours.  Anyway, mail me if \nyou're interested in this marvel of modern technology.\n\n---\nAndrew Boyko              aboyko@dixie.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3745, "properties": {"category": "rec.motorcycles", "text": "From: davet@interceptor.cds.tek.com (Dave Tharp CDS)\nSubject: Re: Rejetting carbs..\nKeywords: air pump\nDistribution: na\nOrganization: Tektronix - Colorado Data Systems, Englewood, CO\nLines: 58\n\nIn article <jburney.734756216@hydra.nodc.noaa.gov> jburney@hydra.nodc.noaa.gov (Jeff Burney) writes:\n>\n>If we are only talking about 4-stroke (I think I can understand exhaust\n>pulse affect in a 2-stroke), the intake valve is closed on the\n>exhaust stroke and the gas is pushed out by the cyclinder.  I guess\n>there is some gas compression that may affect the amount pushed out\n>but the limiting factor seems to be the header pipe and not the \n>canister.  Meaning: would gases \"so far\" down the line (the canister)\n>really have an effect on the exhaust stroke?  Do the gases really \n>compress that much?\n\n    For discussion purposes, I will ignore dynamic effects like pulses\nin the exhaust pipe, and try to paint a useful mental picture.\n\n1.  Unless an engine is supercharged, the pressure available to force\nair into the intake tract is _atmospheric_.  At the time the intake\nvalve is opened, the pressure differential available to move air is only\nthe difference between the combustion chamber pressure (left over after\nthe exhaust stroke) and atmospheric.  As the piston decends on the\nintake stroke, combustion chamber pressure is decreased, allowing\natmospheric pressure to move more air into the intake tract.  At no time\ndoes the pressure ever become \"negative\", or even approach a good\nvacuum.\n\n2.  At the time of the exhaust valve closing, the pressure in the\ncombustion chamber is essentially the pressure of the exhaust system up\nto the first major flow restriction (the muffler).  Note that the volume\nof gas that must flow through the exhaust is much larger than the volume\nthat must flow through the intake, because of the temperature\ndifference and the products of combustion.\n\n3.  In the last 6-8 years, the Japanese manufacturers have started\npaying attention to exhaust and intake tuning, in pursuit of almighty\nhorsepower.  At this point in time, on high-performance bikes,\nsubstitution of an aftermarket free-flow air filter will have almost\nzero affect on performance, because the stock intake system flows very\nwell anyway.  Substitution of an aftermarket exhaust system will make\nvery little difference, unless (in general) the new exhaust system is\n_much_ louder than the stocker.\n\n4.  On older bikes,  exhaust back-pressure was the dominating factor.\nIf free-flowing air filters were substituted, very little difference\nwas noted, unless a free-flowing exhaust system was installed as well.\n\n5.  In general, an engine can be visualized as an air pump.  At any\ngiven RPM, anything that will cause the engine to pump more air, be it\non the intake or exhaust side, will cause it to produce more horsepower.\nPumping more air will require recalibration (rejetting) of the carburetor.\n\n-----------------------------------------------------------------------------\n| Dave Tharp                      | DoD #0751   | \"You can't wear out       |\n| davet@interceptor.CDS.TEK.COM   | MRA #151    |   an Indian Scout,        |\n| '88 K75S  '48 Indian Chief      | AHRMA #751  |  Or its brother the Chief.|\n| '75 R90S(#151) '72 TR-2B(#751)  | AMA #524737 |  They're built like rocks |\n| '65 R50/2/Velorex  '57 NSU Max  |             |   to take the knocks,     |\n|       1936 BMW R12              | (Compulsive | It's the Harleys that     |\n| My employer has no idea.        |   Joiner)   |   give you grief.\"        |\n-----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3746, "properties": {"category": "rec.autos", "text": "From: schrader@pi.eai.iastate.edu (Dave Schrader)\nSubject: 400 big block\nKeywords: 400 big block\nArticle-I.D.: news.C5MF3F.LnB\nOrganization: Engineering Animation, Inc.\nLines: 9\n\nAs the subject says.  It has 70k and my brother-in-law wants $250.  Please don't\nreply to me as I am posting this for him. Here's his numbers :\n              5pm-10pm   712 676 3669\n              daytime    712 269 1261  \n\n\n-- \n                          Dave Schrader\n                          schrader@eai.iastate.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3747, "properties": {"category": "sci.electronics", "text": "From: babb@sciences.sdsu.edu (J. Babb)\nSubject: Cicuit Cellar Ink - Extras 4 Trade\nOrganization: SDSU - LARC\nLines: 14\nDistribution: world\nNNTP-Posting-Host: larc.sdsu.edu\n\nFellow Info-junkies,\n  I have an extra CCI #27 (Real Time Programming/Embedded Sensors &\nStorage) and an extra CCI #32 (Voice control of telescope, among other\narticles). No labels. No torn, cut-up, or missing pages.\n\nWould like to trade for CCI # 26, or CCI # 23, or CCI # 19 in same\ncondition (Labels OK).\n\nI mail mine you mail yours mutual trust kinda thang OK?\nYou don't actually throw them away, do you?\n\nThanx,\nJeff Babb\nbabb@sciences.sdsu.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3748, "properties": {"category": "talk.religion.misc", "text": "From: skinner@sp94.csrd.uiuc.edu (Gregg Skinner)\nSubject: Re: Language and agreement\nReply-To: g-skinner@uiuc.edu\nOrganization: UIUC Center for Supercomputing Research and Development\nLines: 16\n\nm23364@mwunix.mitre.org (James Meritt) writes:\n\nMr. Meritt, please state explicitly the inductive argument which leads\nyou to conclude Mr. Tice thinks it \"OK\" to take biblical quotes out of\ncontext in some other t.r.m. articles.\n\nAlso, please explain why you rely on inductive reasoning (with its\nimplicit uncertainty) in determining Mr. Tice's opinions when the man\nis himself clearly available for questioning.\n\nFinally, please indicate whether you agree (yes or no) with the\nfollowing statement:\n\n   The word \"agree\" and the phrase \"not disagree\" are identical in\n   meaning.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.170+0000", "event": "documents", "entityId": 3749, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: thorf@csa.bu.edu (Thor Farrish)\nSubject: Maxtor drive geometry/jumpers\nDistribution: usa\nOrganization: Computer Science Department, Boston University, Boston, MA, USA\nLines: 1\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3750, "properties": {"category": "rec.motorcycles", "text": "From: santac@aix.rpi.edu (Christopher James Santarcangelo)\nSubject: FORSALE:  1982 Yamaha Seca 650 Turbo\nKeywords: forsale seca turbo\nNntp-Posting-Host: aix.rpi.edu\nDistribution: usa\nLines: 17\n\nI don't want to do this, but I need money for school.  This is\na very snappy bike.  It needs a little work and I don't have the\nmoney for it.  Some details:\n\n\t~19000 miles\n\tMitsubishi turbo\n\tnot asthetically beautiful, but very fast!\n\tOne of the few factory turboed bikes... not a kit!\n\tMust see and ride to appreciate how fun this bike is!\n\nI am asking $700 or best offer.  The bike can be seen in\nBennington, Vermont.  E-mail for more info!\n\nThanks,\nChris\nsantac@rpi.edu\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3751, "properties": {"category": "rec.sport.baseball", "text": "From: sbp002@acad.drake.edu\nSubject: Re: Jewish Baseball Players?\nLines: 28\nNntp-Posting-Host: acad.drake.edu\nOrganization: Drake University, Des Moines, Iowa, USA\n\nIn article <1qkkodINN5f5@jhunix.hcf.jhu.edu>, pablo@jhunix.hcf.jhu.edu (Pablo A Iglesias) writes:\n> In article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>>Just wondering.  A friend and I were talking the other day, and\n>>we were (for some reason) trying to come up with names of Jewish\n>>baseball players, past and present.  We weren't able to come up\n>>with much, except for Sandy Koufax, (somebody) Stankowitz, and\n>>maybe John Lowenstein.  Can anyone come up with any more.  I know\n>>it sounds pretty lame to be racking our brains over this, but\n>>humor us.  Thanks for your help.\n>>\n>>Thanks.\n>>Bobby\n> \n> \n> \n> Hank Greenberg would have to be the most famous, because his Jewish\n> faith actually affected his play. (missing late season or was it world\n> series games because of Yom Kippur)\n> \nI thought that was Sandy Koufax.\n\nSam\n> \n> \n> -- \n> Pablo Iglesias                        \n> pi@ruth.ece.jhu.edu\n> \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3752, "properties": {"category": "sci.med", "text": "From: pan@panda.Stanford.EDU (Doug Pan)\nSubject: Re: Is MSG sensitivity superstition?\nIn-Reply-To: mossman@cea.Berkeley.EDU's message of 15 Apr 1993 19:41:40 GMT\nOrganization: InterViews/Allegro group, Stanford University\n\t<1993Apr13.144340.3549@news.cs.brandeis.edu>\n\t<1993Apr14.012946.114440@zeus.calpoly.edu>\n\t<1993Apr14.122647.16364@tms390.micro.ti.com>\n\t<1993Apr15.135941.16105@lmpsbbs.comm.mot.com>\n\t<1qkdpk$5k6@agate.berkeley.edu>\nLines: 26\n\nIn article <1qkdpk$5k6@agate.berkeley.edu> mossman@cea.Berkeley.EDU (Amy Mossman) writes:\n\n>   I had a similar reaction to Chinese food but came to a completly different\n>   conclusion. I've eaten Chinese food for ages and never had problems. I went\n>   with some Chinese Malaysian friends to a swanky Chinses rest. and they ordered\n>   lots of stuff I had never seen before. The only thing I can remember of that\n>   meal was the first course, scallops served in the shell with a soy-type sauce.\n>   I thought, \"Well, I've only had scallops once and I was sick after but that\n>   could have been a coincidence\". That night as I sat on the bathroom floor,\n>   sweating and emptying my stomach the hard way, I decided I would never touch\n>   another scallop. I may not be allergic but I don't want to take the chance.\n\nI don't react to scallops, but did have discomforts with clam juice\nserved at (American) waterfront seafood bars.  I don't know whether\nthe juice is homemade or from cans.\n\nThe following is my first encounter with the Chinese Restaurant\nSyndrome.  Ten years ago, about an hour after having Won Ton Soup I\ncollapsed in a chair with my face feeling puffed up, my scalp\ntingling, my feet too weak to stand up.  The symptoms lasted for about\n20 minutes.  Determined to find out the cause of my first reaction, I\nwent back to the Chinese restuarant and ordered the same dish.  The\nsame thing happened.  A quick look inside the kitchen revealed nothing\nout of the ordinary.\n\nI've also had a mild attack after having soup at a Thai restuarant.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3753, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: Slick 50, any good?\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 16\n\nHmmm....I was listening to the local radio expert (who is, amazingly\nenough, an Honest-to-God Expert(tm); it's amazing what he knows...), \nand he said that, based on his conversations with the inventor of \nSlick50 (who is no longer with the comapny, due to some kind of \nconflict), he avoids it like the plague.  He does recommend other \nteflon-based/type oil additives, though.\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3754, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re: Cultural Enquiries\nOrganization: University College of Wales, Aberystwyth\nLines: 35\nNntp-Posting-Host: 144.124.112.30\n\n\nIn article <1pcl6i$e4i@bigboote.WPI.EDU> ravi@vanilla.WPI.EDU (Ravi Narayan) writes:\n>In a previous article, groh@nu.cs.fsu.edu said:\n>= azw@aber.ac.uk (Andy Woodward) writes:\n>= \n>= >2) Why do they ride Harleys?\n>= \n>= 'cause we can.\n>= \n>\n>    you sure are lucky! i am told that there are very few people out\n>    there who can actually get their harley to ride ;-) (the name tod\n>    johnson jumps to the indiscreet mind... laz whats it you used to\n>    ride???).\n>\n>\n>-- \n>----------_________----------_________----------_________----------_________\n>sig (n): a piece of mail with a fool at one  | Ravi Narayan, CS, WPI\n>          end and flames at the other. (C).   | 89 SuzukiGS500E - Phaedra ;)\n>__________---------__________---------__________---------__________---------\n\nHi, Ravi\n\nIf you need a Harley, we have lots to spare here. All the yuppies\nbought 'the best' a couple  of years ago to pose at the (s)wine\nbar. They 'rode a mile and walked the rest'. Called a taxi home and \nwent back to the porsche. So there's are loads going cheap with about\n1 1/2 miles on the clock (takes a while to coast to a halt).\n\nCheers\n\nAndy\n\nP.S. You get a better class of people on GS500's anyway\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3755, "properties": {"category": "talk.politics.mideast", "text": "From: cosmo@pro-angmar.alfalfa.com (Frank Benson)\nSubject: Freeman\nOrganization: UTexas Mail-to-News Gateway\nLines: 5\nNNTP-Posting-Host: cs.utexas.edu\n\nWatch your language ASSHOLE!!!!\n---\nProLine:  cosmo@pro-angmar\nInternet: cosmo@pro-angmar.alfalfa.com\nUUCP:     uunet!bu.edu!alphalpha!pro-angmar!cosmo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3756, "properties": {"category": "rec.motorcycles", "text": "From: cjackson@adobe.com (Curtis Jackson)\nSubject: Re: Live Free, but Quietly, or Die\nArticle-I.D.: adobe.1993Apr6.194913.29264\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 15\n\nIn article <C52nnt.J3I@dartvax.dartmouth.edu> Russell.P.Hughes@dartmouth.edu (Russell P. Hughes) writes:\n}start her up and rev to about 3000 rpm....I FAIL cuz I register 120 DB,\n}and the max allowed is 110! If I fail with these pipes, there are gonna\n\nNext time make the numbers more believable -- this is poor flamebait.\n120 DB is getting close to the sound of a jumbo jet engine at takeoff\nrevs from some small number of yards away. It is certainly right\naround the pain threshold for humans. No way in hell the state permits\n110 DB if they have any standard at all.\n\n-- \nCurtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\nDoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\"\n\"There is no justification for taking away individuals' freedom\n in the guise of public safety.\" -- Thomas Jefferson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3757, "properties": {"category": "sci.crypt", "text": "From: brands@cwi.nl (Stefan Brands)\nSubject: * REPORT ON PRIVACY-PROTECTING OFF-LINE CASH AVAILABLE *\nOrganization: CWI, Amsterdam\nLines: 60\n\nI recently published a new privacy-protecting off-line electronic cash\nsystem as a technical report at CWI. Being a PhD-student at David\nChaum's cryptography-group, our group has a long history in research\nin the field of privacy-protecting cash systems.\n\nThe report is called CS-R9323.ps.Z, contains 77 pages, and can be\nretrieved from\n\nftp.cwi.nl   (192.16.184.180)\n\nfrom the directory pub/CWIreports/AA.\nThe postscript-file is suitable for 300dpi laserprinters.\n\n====================================================================\nABSTRACT (from coverpage): We present a new off-line electronic cash\nsystem based on a problem, called the representation problem, of which\nlittle use has been made in literature thus far. Our system is the\nfirst to be based entirely on discrete logarithms.  Using the\nrepresentation problem as a basic concept, some techniques are\nintroduced that enable us to construct protocols for withdrawal and\npayment that do not use the cut and choose methodology of earlier\nsystems. As a consequence, our cash system is much more efficient in\nboth computation and communication complexity than any such system\nproposed previously.\n  \nAnother important aspect of our system concerns its provability.\nContrary to previously proposed systems, its correctness can be\nmathematically proven to a very great extent. Specifically, if we\nmake one plausible assumption concerning a single hash-function, the\nability to break the system seems to imply that one can break the\nDiffie-Hellman problem. \n  \nOur system offers a number of extensions that are hard to achieve in\npreviously known systems. In our opinion the most interesting of these\nis that the entire cash system (including all the extensions) can be\nincorporated in a setting based on wallets with observers, which has\nthe important advantage that double-spending can be prevented in the\nfirst place, rather than detecting the identity of a double-spender\nafter the fact. In particular, it can be incorporated even under the\nmost stringent requirements conceivable about the privacy of the user,\nwhich seems to be impossible to do with previously proposed systems.\nAnother benefit of our system is that framing attempts by a bank have\nnegligible probability of success (independent of computing power) by\na simple mechanism from within the system, which is something that\nprevious solutions lack entirely. Furthermore, the basic cash system\ncan be extended to checks, multi-show cash and divisibility, while\nretaining its computational efficiency.\n====================================================================\n\nCryptographers are challenged to try to break this system!  \n\nI made a particular effort to keep the report as self-contained as\npossible.  Nevertheless, if you have any questions, please e-mail to\nme and I will try to reply as good as I can. Any comments are also\nwelcome!\n\nStefan Brands, \n--------------------------------------------------------\nCWI, Kruislaan 413, 1098 SJ Amsterdam, The Netherlands \nTel: +31 20 5924103, e-mail: brands@cwi.nl  \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3758, "properties": {"category": "sci.crypt", "text": "From: tcmay@netcom.com (Timothy C. May)\nSubject: Re: Don't fight Clipper Chip, subvert or replace it !\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: Tin 1.1 PL5\nDistribution: na\nLines: 87\n\nRobert Lewis Glendenning (rlglende@netcom.com) wrote:\n: Clipper Chip is a response to the fact that there is no business\n: or professional body in a position to establish a standard and\n: provide chipsets to implement it for analog or digial transmission\n: systems.\n: \n: RSA might be in position to do it, if they had active cooperation of\n: a couple of manufacturers of cellular phones or desktop phones.\n.......\n: Is RSA independt of the gov enough to spearhead this?  I, for one,\n: would *gladly* pay royalties via purchasing secure phones.\n\n\nHear hear! I completely agree that we need to work quickly to\nestablish alternatives to the government's Clinton Clipper. As Brad\nTempleton and others have noted, once the Clipper becomes ensconced in\nenough phones there will be enormous pressure to make it the *legal*\nstandard, and it will become the \"market* standard as well. (There is\na lot of confusion in the proposal about whether the use of Clipper is\nmandated, about whether non-escrow alternatives will be allowed, etc.)\n\n(There are also unclear issues about how hard, or how illegal, it will\nbe to make \"workalikes\" which meet the standard but which generate\nphony or untappable keys...I'm sure the next several weeks will see\nthese issues thrashed out in this and other groups.)\n\nMeanwhile, I'd be interested to hear RSA Data Security's reaction.\nOften criticized in this group for their licensing policies (the usual\ncomplaints about MailSafe costing too much, at $125 or so, and the\ngeneral issue of software patents...), we may find that *allying*\nourselves with RSA is the best thing we can do. What's a mere\nlicensing fee when our liberty may be at stake? (If everyone who\nwanted true security paid, say, $100 for a lifetime use of all of\nRSA's patents--which expire in the period 1998-2002, or so--then RSA\nwould make tons of money and be happy, I'm sure. A small price to pay.\nFor those to whom $100 sounds like too much, I'm sure the actual terms\ncould be different, spread out over several years, whatever. To me,\nit's a small price to pay.)\n\nStrong crypto means strong privacy. Escrowing keys, sending copies of\nkeys to large databases, and splitting keys into two 40-bit pieces,\nall done with secret and non-analyzable protocols and algorithms, is\n*NOT* strong crypto!\n\nWhatever some of us may think about the abstract principles of\npatenting number theory applications, this minor issue pales in\ncomparison with the potential dangers of the Clipper proposal (note\nthat I said \"potential\"...we'll presumably learn more in the coming\nmonths).\n\nThe RSA algorithms are at least public, have been analyzed and\nattacked for years, and source code is available (to better ensure no\ndeliberate weakenesses or trapdoors).\n\nI know of a number of groups putting together voice encryption systems\nusing off-the-shelf hardware (like Soundblaster boards for the PC) and\nCELP-type software. The new generations of PCs, using fast 486s and\nPentiums are fast enough to do real-time voice encryption. Combined\nwith Diffie-Hellman key exchange, this should provide an alternative\nto the Clipper system.\n\nOf course, we don't really know if the Administration proposes to\noutlaw competing systems. (It seems to me that their goal of tapping\nterrorists, child pornographers, and Hilary bashers would be thwarted\nif low-cost alternatives to Clipper proliferated. Not to defend child\npornographers or terrorists, but limiting basic freedoms to catch a\nfew criminals is not the American way of doing things. End of soapbox\nmode.)\n\nI suggest we in these groups set aside any differences we may have had\nwith RSA (and don't look at me....I have both MacPGP *and* a fully\nlegal copy of \"MailSafe\"!) and instead work with them as quickly as we can.\n\nRSA?, Jim?, are you listening?\n\n-Tim May\n\nP.S. I reserve the right to retract these opinions if it should turn\nout that RSA Data Security was involved in the Clipper proposal.\n-- \n..........................................................................\nTimothy C. May         | Crypto Anarchy: encryption, digital money,  \ntcmay@netcom.com       | anonymous networks, digital pseudonyms, zero\n408-688-5409           | knowledge, reputations, information markets, \nW.A.S.T.E.: Aptos, CA  | black markets, collapse of governments.\nHigher Power: 2^756839 | Public Key: PGP and MailSafe available.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3759, "properties": {"category": "sci.med", "text": "From: jose@csd.uwo.ca (Jose Thekkumthala)\nSubject: recurrent volvulus\nOrganization: Department of Computer Science, UWO, Canada\nKeywords: volvulus\nNntp-Posting-Host: berfert.csd.uwo.ca\nLines: 35\n\n    Recurrent Volvulus\n    -------------------\n    \n This is regarding recurrent volvulus which our little boy\n has been suffering from ever since he was an infant. He had\n a surgery when he was one year old. Another surgery had\n to be performed one year after, when he was two years old.\n He turned three this February and he is still getting\n afflicted by this illness, like having to get hospitalised\n for vomitting and accompanying stomach pain.He managed\n not having a third surgery so far.\n \n *  \tOne thing me and my wife noticed is that his affliction\n \tpeaks around the time he was born, on nearabouts, like in\n \tMarch every year.  Any significance to this?\n \n *\tWhy does this recur? Me and my family go through severe pain\n \twhen our little boy have to undergo surgery. Why does surgery\n \tnot rectify the situation? \n \n *\tAlso, which hospital in US or Canada specialize in this malady?\n \n *\tWhat will be a good book explaining this disease in detail?\n \n *\tWill keeping a particular diet keep down the probability of \n \trecurrence?\n \n *\tAs time goes on, will the probability of recurrence go down\n \tconsidering he is getting stronger and healthier and probably\n \tless prone to attacks? Or is this assumption wrong?\n \n *\tAny help throwing light on these queries will be highly appreciated.\n \tThanks very much!\n \n jose@csd.uwo.ca\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3760, "properties": {"category": "sci.electronics", "text": "From: russotto@eng.umd.edu (Matthew T. Russotto)\nSubject: Re: electronic odometers (was: Used BMW Question ..... ???)\nOrganization: Project GLUE, University of Maryland, College Park\nLines: 33\nNNTP-Posting-Host: tea.eng.umd.edu\n\nIn article <1993Apr14.174857.28314@porthos.cc.bellcore.com> dje@bmw535.NoSubdomain.NoDomain (Don Eilenberger) writes:\n}In article <1993Apr14.153740.18542@nimbus.com>, jimiii@nimbus.com (Jim Warford) writes:\n\n}|>  There are two simple procedures for alterating any odometer.\n}|> \n}|> 1. Mechanical driven odometer:\n}|>     Remove the speedo cable from the transmission.\n}|>     Attach a drill and run at max speed until the speedo turns over.\n}|>     Continue until the desired mileage is reached.\n}|> \n}|> 2. Electronically driven odometer:\n}|>     Remove the sensor wire from the sensor.\n}|>     Attach the Calibration out signal from an Oscope to the wire.\n}|>     Run until the speedo turns over and attains the desired mileage.\n}\n}Dear Faster.. I kinda wonder.. have you ever tried version 2? On what?\n}Since the sensor wire on a BMW feeds also into the computer.. and we\n}don't know what signal voltage is expected from it.. bad things\n}*could* happen... also since we don't know the pulse rate, we\n}may damage the analog part of the speedo (yes.. BMW uses a combined\n}instrument.. speed in analog, trip and total milage is digital) with\n}the needle pegged up against the 160MPH stop..\n}\n}Just a thought...\n\nYou've got the oscilliscope, so you connect it up to the sensor wire\nand measure this stuff.  That way you know what it expects.\n\n-- \nMatthew T. Russotto\trussotto@eng.umd.edu\trussotto@wam.umd.edu\nSome news readers expect \"Disclaimer:\" here.\nJust say NO to police searches and seizures.  Make them use force.\n(not responsible for bodily harm resulting from following above advice)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3761, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: japanese moon landing?\nOrganization: U of Toronto Zoology\nLines: 21\n\nIn article <1qnb9tINN7ff@rave.larc.nasa.gov> C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON) writes:\n>> there is no such thing as a stable lunar orbit\n>\n>Is it right??? That is new stuff for me. So it means that  you just can \n>not put a sattellite around around the Moon for too long because its \n>orbit will be unstable??? If so, what is the reason??? Is that because \n>the combined gravitacional atraction of the Sun,Moon and Earth \n>that does not provide a stable  orbit around the Moon???\n\nAny lunar satellite needs fuel to do regular orbit corrections, and when\nits fuel runs out it will crash within months.  The orbits of the Apollo\nmotherships changed noticeably during lunar missions lasting only a few\ndays.  It is *possible* that there are stable orbits here and there --\nthe Moon's gravitational field is poorly mapped -- but we know of none.\n\nPerturbations from Sun and Earth are relatively minor issues at low\naltitudes.  The big problem is that the Moon's own gravitational field\nis quite lumpy due to the irregular distribution of mass within the Moon.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3762, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Moonbase race\nOrganization: U of Toronto Zoology\nLines: 13\n\nIn article <1r6rn3INNn96@mojo.eng.umd.edu> sysmgr@king.eng.umd.edu writes:\n>You'd need to launch HLVs to send up large amounts of stuff.  Do you know \n>of a private Titan pad? \n\nYou'd need to launch HLVs to send up large amounts of stuff *if* you assume\nno new launcher development.  If you assume new launcher development, with\nlower costs as a specific objective, then you probably don't want to\nbuild something HLV-sized anyway.\n\nNobody who is interested in launching things cheaply will buy Titans.  It\ndoesn't take many Titan pricetags to pay for a laser launcher or a large\ngas gun or a development program for a Big Dumb Booster, all of which\nwould have far better cost-effectiveness.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3763, "properties": {"category": "rec.motorcycles", "text": "From: jrwaters@eos.ncsu.edu (JACK ROGERS WATERS)\nSubject: Re: GOT MY BIKE! (was Wanted: Advice on CB900C Purchase)\nKeywords: CB900C, purchase, advice\nOrganization: North Carolina State University, Project Eos\nLines: 33\n\nIn article <1993Apr15.215428.11116@research.nj.nec.com> behanna@syl.nj.nec.com (Chris BeHanna) writes:\n>In article <1993Apr15.180644.25263@ll.mit.edu> jburnside@ll.mit.edu (jamie w burnside) writes:\n>>( Sure is alot harder to load on a trailer than the KDX200 was. )  I should\n>>be road legal tomorrow.  I am ignoring the afforementioned concerns about \n>>the transmission and taking my chances.\n>\n>\tThere should be no worries about the trans.\n>\n>>Being a reletively new reader, I am quite impressed with all the usefull\n>>info available on this newsgroup.  I would ask how to get my own DoD number,\n>>but I'll probably be too busy riding ;-).\n>\n>\tDoes this count?\n\nYes.  He thought about it.\n>\n>$ cat dod.faq | mailx -s \"HAHAHHA\" jburnside@ll.mit.edu (waiting to press\n>\t\t\t\t\t\t\t return...)\n>\n>Later,\n>-- \n>Chris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\n>behanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\n>Disclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\n>agree with any of this anyway?    I was raised by a pack of wild corn dogs.\n\nJack Waters II\nDoD#1919\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~ I don't fear the thief in the night.  Its the one that comes in the  ~\n~ afternoon, when I'm still asleep, that I worry about.                ~\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3764, "properties": {"category": "talk.politics.misc", "text": "From: jfh@rpp386 (John F. Haugh II)\nSubject: Re: Representation of Territories? (Was: Re: The $11,250,000,000,000 lunch)\nReply-To: jfh@rpp386.cactus.org (John F. Haugh II)\nOrganization: River Parishes Programming, Austin TX\nDistribution: tx\nLines: 17\n\nIn article <cmi32B1w165w@keys.lonestar.org> cwinemil@keys.lonestar.org (Chris Winemiller) writes:\n>              Does anyone have knowledge about how this was handled in\n>the past, such as with the Louisiana Territory or the Northwest\n>Territory?\n\nThose areas became states.\n\nPuerto Rico has the population needed to become a state.  But the ethnic\nmix there is such that Puerto Rico will probably never become a state.\n\nI say we cut them loose.  If they don't want to become a state, we\nshouldn't continue to subsidize their existence.\n-- \nJohn F. Haugh II                  [ PGP 2.1 ] !'s: ...!cs.utexas.edu!rpp386!jfh\nMa Bell: (512) 251-2151           [ DoF #17 ]        @'s: jfh@rpp386.cactus.org\n  Look up \"Ponzi Scheme\" in a good dictionary - it will have a picture of Joe\n  Liberal Handout right next to it.  Stop federal spending.  Cut the deficit.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3765, "properties": {"category": "sci.crypt", "text": "From: clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement)\nSubject: Re: The [secret] source of that announcement\nOrganization: National Institute of Standards & Technology\nLines: 65\n\nIn article <C5uxGv.Dv7@panix.com> habs@panix.com (Harry Shapiro) writes:\n>In <1r1om5$c5m@slab.mtholyoke.edu> jbotz@mtholyoke.edu (Jurgen Botz)\n>writes:\n>\n>>Even more interesting: the SMTP server at csrc.ncsl.nist.gov no longer\n>>recognizes the 'expn' and 'vrfy' commands...\n>\n>>   telnet csrc.ncsl.nist.gov smtp\n>>   Trying 129.6.54.11...\n>>   Connected to csrc.ncsl.nist.gov.\n>>   Escape character is '^]'.\n>>   220 first.org sendmail 4.1/NIST ready at Tue, 20 Apr 93 17:01:34 EDT\n>>   expn clipper\n>>   500 Command unrecognized\n>\n>>Seems like sombody didn't like your snooping around, Marc.\n>\n>Then it is a good thing we already have this:\n>\n>The csspub mailing list: csspab@mail-gw.ncsl.nist.gov, and address on\n> [rest of names deleted]\n\nSigh... my version of 'rn' asked me whether I really want to send this\nposting!\n\nYou may as well know that all this stuff about the secret source of the\nClipper announcement is because of a silly mistake.  I am the administrator\nof csrc.ncsl.nist.gov, alias first.org.  It's a system set up to help out\nthe needs of FIRST, a Forum of Incident Response and Security Teams, which \nincludes a number of world-wide incident response teams such as CERT/CC and\nother places in Europe.  As to the VRFY and EXPN commands, they are normally\ndisabled, since early on we didn't want crackers to find out the names of\nincident response folks on our mailing lists.  We had a disk crash several\nmonths ago which required completely rebuilding the O/S files - same old\nstory, our backups weren't especially helpful.  As you can guess, I didn't\nremember to re-disable VRFY and EXPN until I saw people on the net trying to\nfind out who was behind clipper@csrc...  When I saw people's names posted\nhere, I felt it was time to clear things up.  So, EXPN and VRFY on csrc have\nalways been disabled in the past for reasons having nothing to do with \nClipper.\n\nI posted the White House announcements at the request of policy folks here\nbecause csrc also provides Usenet service.  I posted them from an account\ncalled 'clipper.'  I also created an alias called 'clipper' that contains\nthe addresses of members of the NIST Computer Security Privacy and Advisory\nBoard, set up under law of the Computer Security Act of 1987, and addresses\nof other individuals not affiliated with NIST but involved in cryptography,\nsecurity, and privacy - I believe that these individuals were included on\nthis list because NIST felt it important to get them the Clipper information\nfirst-hand.\n\nThe 'clipper' alias is there for the benefit of those named above.  It is \nnot a source for information, it was set up solely to monitor any initial\ntraffic.  Individuals on the list have requested that they continue to get\ntraffic that is not already duplicated on Usenet.\n\nWhile you can rightfully say we were a bit disorganized in handling this,\nI would ask that people stop speculating about any hidden agendas or motives\nof the individuals on the 'clipper' alias - I've already apologized to them\nfor what's happened.  Disabling EXPN and VRFY is an increasingly common\npractice (albeit unfriendly to some), and any effect of disabling it again\nwas unintentional.\n\n-John Wack\n  \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3766, "properties": {"category": "talk.politics.misc", "text": "From: dreitman@oregon.uoregon.edu (Daniel R. Reitman, Attorney to Be)\nSubject: Re: The state of justice\nOrganization: University of Oregon\nLines: 38\nDistribution: world\nNNTP-Posting-Host: oregon.uoregon.edu\nSummary: GM's quest for justice\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr15.143320.8618@desire.wright.edu>,\n demon@desire.wright.edu (Not a Boomer) writes...\n>\tA judge denied GM's new trial motion, even though GM says it has two\n>new witnesses that said the occupant of the truck was dead from the impact, not\n>from the fire.\n\n>\tThoughts?\n\n>\tIt's kind of scary when you realize that judges are going to start\n>denying new trials even when new evidence that contradicts the facts that led\n>to the previous ruling appear.\n\n>\tOr has the judge decided that the new witnesses are not to be believed? \n>Shouldn't that be up to a jury?\n\n>\tAnd what about members of the previous jury parading through the talk\n>shows proclaiming their obvious bias against GM?  Shouldn't that be enough for\n>a judge to through out the old verdict and call for a new trial?\n\n>\tWhatever happened to jurors having to be objective?\n\nFirst, people should be aware that Brett's (no last name listed) \nposts on bit.listserv.politics indicate that he has been  \nhostile toward GM's hiring policies and to the Moseley verdict \nwhen it came out.  Equal opportunity disagreement, I guess.  :-)\n\nMy guess, without seeing the judge's opinion, is that GM's motion \nwas denied on due diligence grounds.  Otherwise, a party to a \ncase could always keep one or two semi-credible witnesses in \nreserve to spring if they lose.  Not exactly a way to promote \nrepose.\n\n\t\t\t\t\t\tDaniel Reitman\n\n\"The Uniform Commercial Code protects the innocent purchaser, but it is not a \nshield for the sly conniver, the blindly naive, or the hopelessly gullible.\"\nAtlas Auto Rental Corp. v. Weisberg, 54 Misc. 2d 168, 172, 281 N.Y.S.2d 400, \n405 (N.Y. City Civ. Ct. 1967).\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3767, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: Minority Abuses in Greece.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 201\n\nIn article <C60B63.G2M@panix.com> mpoly@panix.com (Michael S. Polymenakos) writes:\n\n> Well, ZUMABOT claims just the opposite: That Greeks are not allowing\n>Turks to exit the country. Now, explain this: The number of Turks in\n>Thrace has steadily risen from 50,000 in 23 to 80,000, while the Greeks of\n\nDr. Goebels thought that a lie repeated enough times could finally \nbe believed. I have been observing that 'Poly' has been practicing \nGoebels' rule quite loyally. 'Poly's audience is mostly made of Greeks \nwho are not allowed to listen to Turkish news. However, in today's \ninformed world Greek propagandists can only fool themselves. For \ninstance, those who lived in 1974 will remember the TV news they \nwatched and the newspapers they read and the younger generation can \nread the American newspapers of July and August 1974 to find out what \nreally happened. \n\nThere are in Turkiye the Greek Hospital, The Greek Girls' Lycee \nAlumni Association, the Principo Islands Greek Benevolent Society, \nthe Greek Medical Foundation, the Principo Greek Orphanage Foundation, \nthe Yovakimion Greek Girls' Lycee Foundation, and the Fener Greek \nMen's Lycee Foundation.  \n\nAs for Greece, the longstanding use of the adjective 'Turkish' \nin titles and on signboards is prohibited. The Greek courts \nhave ordered the closure of the Turkish Teachers' Association, \nthe Komotini Turkish Youth Association and the Ksanti \nTurkish Association on grounds that there are no Turks\nin Western Thrace. Such community associations had been \nactive until 1984. But they were first told to remove\nthe word 'Turkish' on their buildings and on their official\npapers and then eventually close down. This is also the \nfinal verdict (November 4, 1987) of the Greek High Court.\n\nIn the city of Komotini, a former Greek Parliamentarian of Turkish\nparentage, was sentenced recently to 18 months of imprisonment\nwith no right to appeal, just for saying outloud that he was\nof Turkish descent. This duly-elected ethnic Turkish official\nwas also deprived of his political rights for a period of three \nyears. Each one of these barbaric acts seems to be none other than \na vehicle, used by the Greek governments, to cover-up their inferiority \ncomplex they display, vis-a-vis, the people of Turkiye. \n\nThe Agreement on the Exchange of Minorities uses the term 'Turks,' \nwhich demonstrates what is actually meant by the previous reference \nto 'Muslims.' The fact that the Greek governments also mention the \nexistence of a few thousand non-Turkish Muslims does not change the \nessential reality that there lives in Western Thrace a much bigger \nTurkish minority. The 'Pomaks' are also a Muslim people, whom all the \nthree nations (Bulgarians, Turks, and Greeks) consider as part of \nthemselves. Do you know how the Muslim Turkish minority was organized \naccording to the agreements? Poor 'Poly.'\n\nIt also proves that the Turkish people are trapped in Greece \nand the Greek people are free to settle anywhere in the world.\nThe Greek authorities deny even the existence of a Turkish\nminority. They pursue the same denial in connection with \nthe Macedonians of Greece. Talk about oppression. In addition,\nin 1980 the 'democratic' Greek Parliament passed Law No. 1091,\nvirtually taking over the administration of the vakiflar and\nother charitable trusts. They have ceased to be self-supporting\nreligious and cultural entities. Talk about fascism. The Greek \ngovernments are attempting to appoint the muftus, irrespective\nof the will of the Turkish minority, as state official. Although\nthe Orthodox Church has full authority in similar matters in\nGreece, the Muslim Turkish minority will have no say in electing\nits religious leaders. Talk about democracy.\n\nThe government of Greece has recently destroyed an Islamic \nconvention in Komotini. Such destruction, which reflects an \nattitude against the Muslim Turkish cultural heritage, is a \nviolation of the Lausanne Convention as well as the 'so-called' \nGreek Constitution, which is supposed to guarantee the protection \nof historical monuments. \n\nThe government of Greece, on the other hand, is building new \nchurches in remote villages as a complementary step toward \nHellenizing the region.\n\nAnd you pondered. Sidiropoulos, the president of the Macedonian Human \nRights Committee, became the latest victim of a tactic long used by \nthe Greeks to silence critics of policies of forced assimilation \nof the Macedonian minority. A forestry official by occupation, \nSidiropoulos has been sent to 'internal exile' on the island of \nKefalonia, hundreds of kilometers away from his native Florina. \nHis employer, the Florina City Council, asked him to depart in \n24 hours. The Greek authorities are trying to punish him for his \ninvolvement in Copenhagen. He returned to Florina by his own choice \nand remains without a job. \n\nHelsinki Watch, a well-known Human Rights group, had been investigating \nthe plight of the Turkish Minority in Greece. In August 1990, their \nfindings were published in a report titled \n\n 'Destroying Ethnic Identity: Turks of Greece.'\n\nThe report confirmed gross violations of the Human Rights of the \nTurkish minority by the Greek authorities. It says for instance, \nthe Greek government recently destroyed an Islamic convent in \nKomotini. Such destruction, which reflects an attitude against \nthe Muslim Turkish cultural heritage, is a violation of the \nLausanne Convention. \n\nThe Turkish cemeteries in the village of Vafeika and in Pinarlik\nwere attacked, and tombstones were broken. The cemetery in\nKarotas was razed by bulldozers.\n\nShall I go on? Why not? The people of Turkiye are not going \nto take human rights lessons from the Greek Government. The \ndiscussion of human rights violations in Greece does not \nstop at the Greek frontier. In several following articles \nI shall dwell on and expose the Greek treatment of Turks\nin Western Thrace and the Aegean Macedonians.\n\nIt has been reported that the Greek Cypriot administration \nhas an intense desire for arms and that Greece has made \nplans to supply it with the tanks and armored vehicles it \nhas to destroy in accordance with the agreement reached on \nconventional arms reductions in Europe. Meanwhile, Greek \nand Greek Cypriot officials are reported to have planned \nto take ostentatious measures aimed at camouflaging the \ntransfer of these tanks and armored vehicles to southern \nCyprus, a process that will conflict with the spirit of \nthe agreement on conventional arms reduction in Europe.\n\nAn acceptable method may certainly be found when there\nis a will. But we know of various kinds of violent\nbehaviors ranging from physical attacks to the burning\nof buildings. The rugs at the Amfia village mosque were \ndragged out to the front of the building and burnt there. \nShots were fired on the mosque in the village of Aryana.\n\nNow wait, there is more.\n\n  'Greek Atrocities in the Vilayet of Smyrna (May to July 1919), Inedited\n  Documents and Evidence of English and French Officers,' Published by\n  The Permanent Bureau of the Turkish Congress at Lausanne, Lausanne,\n  Imprimerie Petter, Giesser & Held, Caroline, 5 (1919).\n\n  pages 82-83:\n\n<< 1. The train going from Denizli to Smyrna was stopped at Ephesus\n   and the 90 Turkish travellers, men and women who were in it ordered\n   to descend. And there in the open street, under the eyes of their\n   husbands, fathers and brothers, the women without distinction of age\n   were violated, and then all the travellers were massacred. Amongst\n   the latter the Lieutenant Salih Effendi, a native of Tripoli, and a\n   captain whose name is not known, and to whom the Hellenic authorities\n   had given safe conduct, were killed with specially atrocious tortures.\n\n   2. Before the battle, the wife of the lawyer Enver Bey coming from\n   her garden was maltreated by Greek soldiers, she was even stript\n   of her garments and her servant Assie was violated.\n\n   3. The two tax gatherers Mustapha and Ali Effendi were killed in the\n   following manner: Their arms were bound behind their backs with wire\n   and their heads were battered and burst open with blows from the butt\n   end of a gun.\n\n   4. During the firing of the town, eleven children, six little girls\n   and five boys, fleeing from the flames, were stopped by Greek soldiers\n   in the Ramazan Pacha quarter, and thrown into a burning Jewish house\n   near bridge, where they were burnt alive. This fact is confirmed on oath\n   by the retired commandant Hussein Hussni Effendi who saw it.\n\n   5. The clock-maker Ahmed Effendi and his son Sadi were arrested and\n   dragged out of their shop. The son had his eyes put out and was then\n   killed in the court of the Greek Church, but Ahmed Effendi has been\n   no more heard of.\n\n   6. At the market, during the fire, two unknown people were wounded\n   by bayonets, then bound together, thrown into the fire and burnt alive.\n\n   The Greeks killed also many Jews. These are the names of some:\n\n  Moussa Malki, shoemaker          killed\n  Bohor Levy, tailor               killed\n  Bohor Israel, cobbler            killed\n  Isaac Calvo, shoemaker           killed\n  David Aroguete                   killed\n  Moussa Lerosse                   killed\n  Gioia Katan                      killed\n  Meryem Malki                     killed\n  Soultan Gharib                   killed\n  Isaac Sabah                      wounded\n  Moche Fahmi                      wounded\n  David Sabah                      wounded\n  Moise Bensignor                  killed\n  Sarah Bendi                      killed\n  Jacob Jaffe                      wounded\n  Aslan Halegna                    wounded....>>\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3768, "properties": {"category": "misc.forsale", "text": "From: marc@comp.lancs.ac.uk (Marc Goldman)\nSubject: [SNES] [Genesis] Games for sale or trade.\nOrganization: Department of Computing at Lancaster University.\nLines: 24\n\nI have the following Genesis carts for sale or trade:\n\nAlien 3\nGlobal gladiators\nCrue ball\n\nI have the following SNES carts for sale or trade:\n\nJimmy connors tennis\nSuper play action football\n\nCross system trades are fine.\n\nCheers\nMarc\n\n ------------------------------------------------------------------------------\n      **     **      *  ****** ***    *   |             On the net,\n     ** *    **     *** **     ** *   *   |     no-one can hear you scream!\n    **   *   **     *** ****   **  *  *   |------------------------------------\n   **     *  **     *** **     **   * *   |  email   marc@comp.lancs.ac.uk\n  **       * ******  *  ****** **    **   |      marc@computing.lancaster.ac.uk\n ------------------------------------------------------------------------------\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3769, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: was:Go Hezbollah!\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 159\n\n>In article <1993Apr16.130037.18830@ncsu.edu>, hernlem@chess.ncsu.edu \n (Brad Hernlem) writes:\n>|> \n>|> In article <2BCE0918.6105@news.service.uci.edu>, tclock@orion.oac.uci.edu \n    (Tim Clock) writes:\n>|> \n>|> Are you suggesting that, when guerillas use the population for cover, \n>|> Israel should totally back down? So...the easiest way to get away with \n>|> attacking another is to use an innocent as a shield and hope that the \n>|> other respects innocent lives?\n\n> Tell me Tim, what are these guerillas doing wrong? Assuming that they are \n> using civilians for cover, \n\n\"Assuming\"? Also: come on, Brad. If we are going to get anywhere in \nthis (or any) discussion, it doesn't help to bring up elements I never \naddressed, *nor commented on in any way*. I made no comment on who is \n\"right\" or who is \"wrong\", only that civilians ARE being used as cover \nand that, having been placed \"in between\" the Israelis and the guerillas,\nthey *will* be injured as both parties continue their fight.\n \n\t[The *purpose* of an army's use of military uniforms \n\tis *to set its members apart* from the civilians so that \n\tcivilians will not be thought of by the other side as\n\t\"combatants\". So, what do you think is the \"meaning behind\", \n\tthe intention and the effect when an \"army\" purposely \n\t*does not were uniforms but goes out of its way to *look \n\tlike civilians'? *They are judging that the benefit they will \n\treceive from this \"cover\" is more important that the harm\n\tthat will come to civilians.*\n\nThis is a comment on the Israeli experience and is saying\nthat the guerillas *do* have some responsibility in putting civilians\nin \"the middle\" of this fight. By putting on uniforms and living apart\nfrom civilians (barracks, etc.), the guerillas would significantly lower\nthe risk to civilians.\n\n\tBut if the guerillas do this aren't *they* putting themselves\n\tat greater risk? Absolutely, they ask themselves \"why set \n\tourselves apart (by wearing uniforms) when there is a ready-made \n\tcover for us (civilians)? That makes sense from their point of \n\tview, BUT when this cover is used, the guerillas should accept \n\tsome of the responsibility for subsequent harm to civilians.\n\n> If the buffer zone is to prevent attacks on Israel, is it not working? Why\n> is it further neccessary for Israeli guns to pound Lebanese villages? Why \n> not just kill those who try to infiltrate the buffer zone? You see, there \n> is more to the shelling of the villages.... it is called RETALIATION... \n> \"GETTING BACK\"...\"GETTING EVEN\". It doesn't make sense to shell the \n> villages. The least it shows is a reckless disregard by the Israeli \n> government for the lives of civilians.\n\nI agree with you here. I have always thought that Israel's bombing\nsortees and bombing policy is stupid, thoughtless, inhumane AND\nineffective. BUT, there is no reason that Israel should passive wait \nuntil attackers chose to act; there is every reason to believe that\n\"taking the fight *to* the enemy\" will do more to stop attacks. \n\nAs I said previously, Israel spent several decades \"sitting passively\"\non its side of a border and only acting to stop these attacks *after*\nthe attackers had entered Israeli territory. It didn't work very well.\nThe \"host\" Arab state did little/nothing to try and stop these attacks \nfrom its side of the border with Israel so the number of attacks\nwere considerably higher, as was their physical and psychological impact \non the civilians caught in their path.  \n>\n>|> What?So the whole bit about attacks on Israel from neighboring Arab states \n>|> can start all over again? While I also hope for this to happen, it will\n>|> only occur WHEN Arab states show that they are *prepared* to take on the \n>|> responsibility and the duty to stop guerilla attacks on Israel from their \n>|> soil. They have to Prove it (or provide some \"guaratees\"), there is no way\n>|> Israel is going to accept their \"word\"- not with their past attitude of \n>|> tolerance towards \"anti-Israel guerillas in-residence\".\n>|> \n> If Israel is not willing to accept the \"word\" of others then, IMHO, it has\n> no business wasting others' time coming to the peace talks. \n\nThis is just another \"selectively applied\" statement.\n \nThe reason for this drawn-out impasse between Ababs/Palestinians and Israelis\nis that NEITHER side is willing to accept the Word of the other. By your\ncriteria *everyone* should stay away from the negotiations.\n\nThat is precisely why the Palestinians (in their recent PISGA proposal for \nthe \"interim\" period after negotiations and leading up to full autonomy) are\ndemanding conditions that essentially define \"autonomy\" already. They DO\nNOT trust that Israel will \"follow through\" the entire process and allow\nPalestinians to reach full autonomy. \n\nDo you understand and accept this viewpoint by the Palestinians? \nIf you do, then why should Israel's view of Arabs/Palestinians \nbe any different? Why should they trust the Arab/Palestinians' words?\nSince they don't, they are VERY reluctant to give up \"tangible assets \n(land, control of areas) in exchange for \"words\". For this reason,\nthey are also concerned about the sorts of \"guarantees\" they will have \nthat the Arabs WILL follow through on their part of any agreement reached.\n>\n>But don't you see that the same statement can be made both ways?\n>If Lebanon was interested in peace then it should accept the word\n>of Israel that the attacks were the cause for war and disarming the\n>Hizbollah will remove the cause for its continued occupancy.  \n\nAbsolutely, so are the Arabs/Palestinians asking FIRST for the\nIsraelis \"word\" in relation to any agreement? NO, what is being\ndemanded FIRST is LAND. When the issue is LAND, and one party\nfinally gets HOLD of this \"land\", what the \"other party\" does\nis totally irrelevent. If I NOW have possession of this land,\nyour words have absolutely no power; whether Israel chooses to\nkeeps its word does NOT get the land back.\n\n>Afterall, Israel has already staged two parts of the withdrawal from \n>areas it occupied in Lebanon during SLG.\n>\n> Tim, you are ignoring the fact that the Palestinians in Lebanon have been\n> disarmed. Hezbollah remains the only independent militia. Hezbollah does\n> not attack Israel except at a few times such as when the IDF burned up\n> Sheikh Mosavi, his wife, and young son. \n\nWhile the \"major armaments\" (those allowing people to wage \"civil wars\")\nhave been removed, the weapons needed to cross-border attacks still\nremain to some extent. Rocket attacks still continue, and \"commando\"\nraids only require a few easily concealed weapons and a refined disregard\nfor human life (yours of that of others). Such attacks also continue.\n\n> Of course, if Israel would withdraw from Lebanon\n> and stop assassinating people and shelling villages they wouldn't\n> make the Lebanese so mad as to do that.\n\nBat guano. The situation you call for existed in the 1970s and attacks\nwere commonplace.\n\n>Furthermore, with Hezbollah subsequently disarmed, it would not be possible.\n\nThere is NO WAY these groups can be effectively \"disarmed\" UNLESS the state\nis as authoritarian is Syria's. The only other way is for Lebanon to take\nit upon itself to constantly patrol the entire border with Israel, essentially\nmirroring Israel's border secirity on its side. It HAS TO PROVE TO ISREAL that\nit is this committed to protecting Israel from attack from Lebanese territory.\n>\n>|> Once Syria leaves who is to say that Lebanon will be able to retain \n>|> control? If Syria stays thay may be even more dangerous for Israel.\n>|> \n> Tim, when is the last time that you recall any trouble on the Syrian border?\n> Not lately, eh?\n\nThat's what I said, ok? But, doesn't that mean that Syria has to \"take over\"\nLebanon? I don't think Israel or Lebanon would like that.\n> \nWhat both \"sides\" need is to receive something \"tangible\". The Arabs/\nPalestinians are looking for \"land\" and demanding that they receive it\nprior to giving anything to Israel. Israel has two problems: 1) if it\ngives up real *land* it IS exposing itself to a changed geostrategic\nsituation (and that change doesn't help Israel's position), and 2) WHEN\nit gives up this land IT NEEDS to receive something in return to\ncompensate for the increased risks\n\nTim\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3770, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon Wtte)\nSubject: Re: ADB Mouse II (ergo) -- when?\nDistribution: comp\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 16\nNntp-Posting-Host: hemul.nada.kth.se\n\nIn <JAS.93Apr15161243@tigger.ISI.EDU> jas@ISI.EDU (Jeff Sullivan) writes:\n\n>When is Apple supposed to start bundlign the new ergonomic ADB Mouse\n>II with all CPUs sold?\n\nAs far as I know, they did; my new Mac came with one yesterday...\n(And I got my ergonomic keyboard, on order for three months, the\nother day, too!)\n\nCheers,\n\n\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n\n  \"On a clear disc, you can seek forever.\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.171+0000", "event": "documents", "entityId": 3771, "properties": {"category": "sci.crypt", "text": "From: zeev@ccc.amdahl.com (Ze'ev Wurman)\nSubject: Is there ANY security in the Clipper?\nOrganization: Amdahl Corp., Sunnyvale CA\nLines: 26\nNNTP-Posting-Host: sepia.key.amdahl.com\n\nIt seems to me that all discussions about Clipper security are almost \nirrelevant - if I cannot choose the key, but have to use a key chosen for\nme by the foundry, the security of the WHOLE UNIVERSE OF USERS is as good\n(or as bad) as the security of VLSI Technologies Inc.\n\nIt is a trivial effort to run any ciphertext agains ALL THE KEYS EVER \nMANUFACTURED - after all we are talking about 1 to 100 million keys that\nwill ever be manufactured. The key depositories can be as secure and\nincorruptible as they wish to be, nobody cares anyway...:-(\n\nNow if someone would convince me that the shipping docks of VTI, ATT and\nothers are impenetrable (remember: the chips have to ship with the key - \nyou or the dealer are going to submit it to the authorities eventually)\nI'd be a bit happier. But do we really believe that the various governments\n(including ours) won't have the full lists of all the keys ever manufactured?\n\nDid I miss something here?\n\nMy own opinions, quite obviously...\n--\n------------------------------------------------------------------\nFrom........: Ze'ev Wurman \nemail.......: <zeev@key.amdahl.com> or <zeev@ccc.amdahl.com> \nOrganization: Amdahl Corp. 46525 Landing Parkway (M/S 581), Freemont CA 94538\nPhone.......: (510) 623-2345 (Office)\nFax.........: (510) 770-0493  (Attn: Zeev Wurman)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3772, "properties": {"category": "rec.sport.baseball", "text": "From: joec@hilbert.cyprs.rain.com ( Joe Cipale)\nSubject: Re: RED SOX LEAD 8-0 AFTER 2!!!!!!\nOrganization: Cypress Semi, Beaverton OR\nLines: 46\n\nIn article <C56zrA.75n@ulowell.ulowell.edu> stwombly@cs.ulowell.edu (Steve Twombly) writes:\n>The Boston Red Sox lead the KC Royals 8-0 after 2 innings.\n>\n>The Sox are the only undefeated team in the AL East after 4 days.\n>\n>GO JUMP IN THE LAKE YOU NON-BELIEVERS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n>\n>\n>Steve\n>\n\nAs I have read this net the last few days, I am continually amazed at the \npronouncements of baseball prowess by many individuals.  Especially when it \ncomes down to saying that the Bosox haven't a prayer.  As a long time Red Sox\nfan, I will simply say:  The Impossible Dream Year - 1967 for those of you\nwith short memories. short lives, or both.  \n\nTo be a Red Sox fan is to continually be the subject of abuse and criticism\nfrom those who only follow 'the hot team'.  This statement is supported based\non the increased number of 'Brave Woofers' out on the net.  A true fan of a \nteam, any team, will follow that team through the good years as well as the lean\nyears, and be amply rewarded when the time is right.  \n\nYeah, so what if Buckner let a roller go through his legs in `86.  Who cares if\nClemens told Cooley to go piss up a rope and promptly earned a quick shower.  The\nfact is, they were one of the best teams in the league those years and the fans\nsupported them.  Now that it appears that they are on lean times, the number of \ndetracters come from all over.  So what!  Let them play and we will see what \nhappens come September.  The Red Sox may not be that good, but they are certainly \nnot that bad, either and they do have a chance to win the World Series, after all,\nremember the `69 Mets?  Who would have given them a chance to even make it that\nfar, let alone beat Baltimore.\n\nLet's face it, Baseball is a wonderful game and is far more unpredictable than Football\nand Basketball.  Because of this, one can never say with absolute certainity what\nthe outcome will be over the course of 162 games.\n\n===============================================================================\n| joec@godot.cyprs.rain.com     |WARNING: Elvis impersonating can be hazardous|\n| joec@ursula.ee.pdx.edu        |         to your health -- it sure won't help|\n|                               |         your reputation.                    |\n+-------------------------------+---------------------------------------------+\n| I bike, therefore I am!       | Go Red Sox!            Go Celtics!          |\n|                               | Go Seahawks!           Go Sonics!           |\n===============================================================================\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3773, "properties": {"category": "comp.graphics", "text": "From: thomas@ramsey.cs.laurentian.ca (F. Thomas)\nSubject: print graph on printer\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 6\n\nThis seems to be a simple problem but I just cannot solve it.\nI wrote a C program to draw some polygons on the screen, and I want to \nprint it on my printer. So, I press \"print-screen\" on the keyboard.\nThe problem is the printer just print out some ASCII characters.\nIs there any other way to print the screen without using \"print-screen\"????\nPlease help!\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3774, "properties": {"category": "misc.forsale", "text": "From: ecsd@well.sf.ca.us (Eric C. S. Dynamic)\nSubject: KAWAI K-4 way el cheapo - buy or be sorry, etc. etc.\nNntp-Posting-Host: well.sf.ca.us\nOrganization: The Whole Earth 'Lectronic Link, Sausalito, CA\nDistribution: ba\nLines: 10\n\nGotta pay my WELL bill - eating is of mere passing interest in\ncomparison.\n\nKAWAI K-4 Synthesizer for $400 IF YOU ACT NOW - cash only pleeze,\ntake delivery in Berkeley. CALL (510) 287-5737 and leave name\nand number for me to call back and arrange this MARVELOUS FEAST.\nOFFER EXPIRES SOON (how soon? Soon - believe it.)\nACT NOW.\n\nThank you for your support . . . {wheeze}\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3775, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tmccn@merle.acns.nwu.edu (Tracy McCracken)\nSubject: 486sx For Sale\nNntp-Posting-Host: unseen3.acns.nwu.edu\nOrganization: Northwestern University, Evanston Illinois.\nDistribution: usa\nLines: 7\n\nI have a 486sx/20, 5 megs RAM, 85 meg harddrive (Stacked to 160 w/Stacker\n3.0), 3.5 floppy, 3 expansion slots, 2 drive bays, VGA card, no monitor.\n$650.00 or interesting combination of cash and trade.  Located in Chicago.\nPlease e-mail to this address (tmccn@merle.acns.nwu.edu) or call Allister\nat (312)743-5603.  Thanks.\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3776, "properties": {"category": "alt.atheism", "text": "From: cfaehl@vesta.unm.edu (Chris Faehl)\nSubject: Re: some thoughts.\nOrganization: University of New Mexico, Albuquerque\nLines: 12\nDistribution: world\nNNTP-Posting-Host: vesta.unm.edu\nKeywords: Dan Bissell\n\nIn article <healta.145.734928689@saturn.wwc.edu>, healta@saturn.wwc.edu (Tammy R Healy) writes:\n[deletia wrt pathetic Jee-zus posting by Bissel] \n> I hope you're not going to flame him.  Please give him the same coutesy you'\n> ve given me.\n\nNO. He hasn't extended to US the courtesy you've shown us, so he don't get no\npie. Tammy, I respect your beliefs because you don't try to stamp them into\nmy being. I have scorn for posters whose sole purpose appears to be to\nevangelize.\n \n> \n> Tammy\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3777, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: clipper chip --Bush did it\nOriginator: rdippold@qualcom.qualcomm.com\nKeywords: Big Bubba Is Watching!\nNntp-Posting-Host: qualcom.qualcomm.com\nOrganization: Qualcomm, Inc., San Diego, CA\nDistribution: na\nLines: 13\n\njohng@ecs.comm.mot.com (John Gilbert) writes:\n>This must have been in the works for some time.  The Bush administration must\n>have been working on it for quite a while.  --Clinton simply took the credit (or\n>blame, depending on how you look at it).\n\nAnd the initiative for actual implementation.  Clinton is not just an\ninnocent bystander here - They didn't just slap his name on it without\nconsulting him.  What exactly is his extensive history of individual\nrights advocacy that people are assuming he really has nothing to do\nwith this?  He just went back on his pledge to cut the espionage\nbudget, and is now asking for more money than even Bush wanted.\n-- \nI've left my body to science - and science is contesting the will.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3778, "properties": {"category": "sci.med", "text": "From: km@cs.pitt.edu (Ken Mitchum)\nSubject: Re: Immotile Cilia Syndrome\nArticle-I.D.: pitt.19423\nReply-To: km@cs.pitt.edu (Ken Mitchum)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 31\n\nIn article <1993Mar26.213522.26224@ncsu.edu> andrea@unity.ncsu.edu (Andrea M Free-Kwiatkowski) writes:\n>I would like to know if there is any new information out there about the\n>subject or any new studies being conducted.  I am confident in my\n>pediatrician and her communication with the people in Chapel Hill, but\n>since this is a life-long disorder and genetically transferred I would\n>like keep current.  I do realize that since this is a relatively new\n>disorder (first documented in 1974 in a fertility clinic in Scandanavia)\n>and is therefore \"controversial\".\n\nI do not know a lot about this, except from seeing one patient with\n\"Kartagener's syndrome\", which is a form of immotile cilia syndrome\nin which there is situs inversus, bronchiectasis, and chronic\ninfections. \"Situs inversus\" means that organs are on the wrong\nside of the body, and can be complete or partial. It is interesting\nmedically because the normal location of organs is caused in part\nby the \"normal\" rotation associated with ciliary motion, so that in\nabsence of this, laterality can be \"random.\" People with situs\ninversus are quite popular at medical schools, because of their\nrarity, and the fact that most doctors get a bit upset when they\ncan't find the patient's heart sounds (because they're on the wrong\nside). \n\nAccording to Harrison's, immotile cilia syndrom is an autosomal\nrecessive, which should imply that on average one child in four\nin a family would be affected. But there may be much more current\ninformation on this, and as usual in medicine, we may be talking\nabout more than one conditiion. I would suggest that you ask your\npediatrician about contacting a medical geneticics specialist, of\nwhich there is probably one at NCSU.\n\n-km\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3779, "properties": {"category": "misc.forsale", "text": "From: aboyko@dixie.com (Andrew boyko)\nSubject: Re: Sega Genesis for sale w/Sonic 1/2\nOrganization: Dixie Communications Public Access.  The Mouth of the South.\nLines: 15\n\naboyko@dixie.com (Andrew boyko) writes:\n\n>4 month old Sega Genesis, barely used, one controller, in original\n>box, with Sonics 1 and 2.  $130 gets the whole bundle shipped to you.\n\n>Turns out they're not as addictive when they're yours.  Anyway, mail me if \n>you're interested in this marvel of modern technology.\n\nWell, I've been informed that the price on the whole thing I'm selling is now\nless than the price I'm selling it for.  That will teach me to wait that long\nbefore getting rid of electronic equipment.  Nevermind, everyone, I'm keeping\nthe thing.\n\n---\nAndrew Boyko              aboyko@dixie.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3780, "properties": {"category": "talk.politics.mideast", "text": "From: amehdi@src.honeywell.com (Hossien Amehdi)\nSubject: Re: was: Go Hezbollah!!\nNntp-Posting-Host: tbilisi.src.honeywell.com\nOrganization: Honeywell Systems & Research Center\nLines: 25\n\nIn article <C5HuBA.CJo@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n>amehdi@src.honeywell.com (Hossien Amehdi) writes:\n>\n>>You know when Israelis F16 (thanks to General Dynamics) fly high in the sky\n>>and bomb the hell out of some village in Lebanon, where civilians including\n>>babies and eldery getting killed, is that plain murder or what?\n>\n>If you Arabs wouldn't position guerilla bases in refugee camps, artillery \n>batteries atop apartment buildings, and munitions dumps in hospitals, maybe\n>civilians wouldn't get killed.  Kinda like Saddam Hussein putting civilians\n>in a military bunker.  \n>\n>Ed.\n\nWho is the you Arabs here.  Since you are replying to my article you\nare assuming that I am an Arab.  Well, I'm not an Arab, but I think you\nare brain is full of shit if you really believe what you said.  The\nbombardment of civilian and none civilian areas in Lebanon by Israel is\nvery consistent with its policy of intimidation.  That is the only\npolicy that has been practiced by the so called only democracy in\nthe middle east!\n\nI was merley pointing out that the other side is also suffering.\nLike I said, I'm not an Arab but if I was, say a Lebanese, you bet\nI would defende my homeland against any invader by any means.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3781, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: WIN STORM PC\nFrom: srini@shannon.tisl.ukans.edu (Srini Seetharam)\nReply-To: srini@shannon.tisl.ukans.edu (Srini Seetharam)\nDistribution: world\nOrganization: Elec. & Comp. Eng., Univ. of Kansas\nNntp-Posting-Host: erlang.tisl.ukans.edu\nOriginator: srini@erlang\nLines: 10\n\n\nAnyone have any info. on the video/sound card from SIGMA designs.\nIt is called WIN STORM PC.\nThey also have another card called the legend 24lx\n\nany info would be appreciated, incuding performance, pricing and\navailability.\nthanks\n\nsrini\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3782, "properties": {"category": "rec.motorcycles", "text": "From: robert@Xenon.Stanford.EDU (Robert Kennedy)\nSubject: Battery storage -- why not charge and store dry?\nOrganization: Computer Science Department, Stanford University.\nLines: 24\n\nSo it looks like I'm going to have to put a couple of bikes in storage\nfor a few months, starting several months from now, and I'm already\ncontemplating how to do it so they're as easy to get going again as\npossible. I have everything under control, I think, besides the\nbatteries. I know that if I buy a $50.00 Battery Tender for each one\nand leave them plugged in the whole time the bikes are in storage,\nthey'll be fine. But I'm not sure that's necessary. I've never heard\nanyone discussing this idea, so maybe there's some reason why it isn't\nso great. But maybe someone can tell me.\n\nWould it be a mistake to fully charge the batteries, drain the\nelectrolyte into separate containers (one for each battery), seal the\ncontainer, close up the batteries, and leave them that way? Then it\nwould seem that when the bikes come out of storage, I could put the\nelectrolyte back in the batteries and they should still be fully\ncharged. What's wrong with this?\n\nOn a related, but different note for you Bay Area Denizens, wasn't\nthere someone who had a bunch of spare EDTA a few months back? Who was\nit? Is there still any of it left?\n\nThanks for any and all help!\n\n\t-- Robert\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3783, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: msbendts@mtu.edu (BENDTSEN)\nSubject: Re: Utility for updating Win.ini and system.ini\nOrganization: Michigan Technological University\nX-Newsreader: Tin 1.1 PL4\nLines: 37\n\nsp@odin.fna.no (Svein Pedersen) writes:\n: Sorry, I did`nt tell exactly what I need.\n: \n: I need a utility for automatic updating (deleting, adding, changing) of *.ini files for Windows. \n: The program should run from Dos batchfile or the program run a script under Windows.\n: \n: I will use the utility for updating the win.ini (and other files) on meny PC`s.  \n: \n: Do I find it on any FTP host?\n: \n:  Svein\n\nWell, in the latest Windows magazine, there is an advertisement for a program\nthat will help you uninstall windows apps from your harddisk (Uninstaller)\nbut it can be used to update a network, but only for deleting, not adding\nor changing their *.ini files.  (Uninstaller, by MicroHelp Inc.  $79\n1-800-922-3383)\n\nI am also looking for an *.ini updater for my PC network, and so far without\nany luck.  So for the time being I have been pushing DOS and it's batch\nlanguage to its limit...look into DOS 5.0's (I am assumming that DOS 6.0\nhas the same command, maybe even more..or less..improved) REPLACE command.\nI use this to update our users personal files with a master set in a batch\nfile that is run everytime they invoke Windows.  This basically overwrites\ntheir color schemes, but does what I need it to do.  Not neat, but does\nthe job...I'm looking for a better solution though.\n\nMike\n\nJust relaying what I know...a not for profit service.\n\n\n-- \n___________________________________________________________________________\n  Mike Bendtsen                    (msbendts @ mtu.edu)\n   740 Elm St.  Apt#4        CCLI Senior Technical Consultant\n   Hancock, MI  49930        Michigan Technological University\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3784, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Eric.Choi@p5.f175.n2240.z1.fidonet.org (Eric Choi)\nSubject: re: mac portable vs. powerbook 100 answers (?)\nOrganization: FidoNet node 1:2240/175.5 - Association Mac BBS, Grand Blanc MI\nLines: 8\n\nCan the internal hard drive of the MacPortable upgraded to larger capacity? What is the specs? A 3-1/2\" drive? LPS model?\n\nIs there any third party modem greater than 2400 bps? With FAX option?\n\nP.S. I notice the MacPortable batteries are avalable thru the Apple Catalog.\n--  \n=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n Eric Choi - Internet: Eric.Choi@p5.f175.n2240.z1.fidonet.org\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3785, "properties": {"category": "sci.electronics", "text": "From: fculpepp@norfolk.vak12ed.edu (Fred W. Culpepper)\nSubject: CAD Program for Electronics?\nOrganization: Virginia's Public Education Network (Norfolk)\nLines: 19\n\nI am making a search for a CAD program that does a decent job\nof making schematic drawings.  The program needs to be in\nMS-DOS, Windows if possible.\n\nWhat I want the CAD program to do is to draw diagrams by\ndragging elements onto the screen, and in this the elements\nneeded are as diverse as vacuum tubes to ICs (case with pins).\nIt also needs to have provision for adding legends to the\ncomponents as well as their values.  In other words I want to\nproduce quality drawings.  Printout would be to either 24 pin\ndot-matrix and/or Laser Printer.\n\nIf you know of such a CAD program that is of reasonable cost,\nplease respond.\n\nFred W. Culpepper\nOLD DOMINION UNIVERSITY (Retired)\nfculpepp@norfolk.vak12ed.edu\n---\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3786, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ggg@kepler.unh.edu (Gregory G Greene)\nSubject: Re: IDE vs SCSI\nOrganization: University of New Hampshire  -  Durham, NH\nLines: 12\nNNTP-Posting-Host: kepler.unh.edu\n\n'>First off, with all these huge software packages and files that\n'>they produce, IDE may no longer be sufficient for me (510 Mb limit).\n\n\tMicropolis seems to have broken this limit.  They have IDE 560meg\n   and 1050meg HD's available.  \n\t\t\t\t\t\t\tGreg Greene\n                                                        ggg@kepler.unh.edu\n\n\n'>Mark Ashley                        |DISCLAIMER: My opinions. Not Harris'\n'>marka@gcx1.ssd.csd.harris.com      |\n'>The Lost Los Angelino              |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3787, "properties": {"category": "sci.crypt", "text": "From: rlglende@netcom.com (Robert Lewis Glendenning)\nSubject: Re: Organized Lobbying for Cryptography\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 21\n\nGenerally, an organization has influence in proportion to:\n\n\tThe narrowness of its objectives\n\tThe number of members\n\tThe strength of belief of its members\n\nThis is why the pro- and anti-abortion groups are so strong: narrow objectives,\nlots of interested members who are real passionate.\n\nFor this reason, mixing with the NRA is probably a bad idea.  It diffuses\nthe interests of both groups.  It may well diminish the Passion Index\nof the combined organization.  It is not clear it would greatly enlarge\nthe NRA.\n\nSo, I believe a new organization, which may cooperate with NRA where the\ntwo organization's interest coincide, is the optimum strategy.\n\nlew\n-- \nLew Glendenning\t\trlglende@netcom.com\n\"Perspective is worth 80 IQ points.\"\tNiels Bohr (or somebody like that).\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3788, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 54\nNNTP-Posting-Host: punisher.caltech.edu\n\n(reference line trimmed)\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n[...]\n\n>There is a good deal more confusion here.   You started off with the \n>assertion that there was some \"objective\" morality, and as you admit\n>here, you finished up with a recursive definition.   Murder is \n>\"objectively\" immoral, but eactly what is murder and what is not itself\n>requires an appeal to morality.\n\nYes.\n\n>Now you have switch targets a little, but only a little.   Now you are\n>asking what is the \"goal\"?   What do you mean by \"goal?\".   Are you\n>suggesting that there is some \"objective\" \"goal\" out there somewhere,\n>and we form our morals to achieve it?\n\nWell, for example, the goal of \"natural\" morality is the survival and\npropogation of the species.  Another example of a moral system is\npresented within the Declaration of Independence, which states that we\nshould be guaranteed life liberty and the pursuit of happiness.  You see,\nto have a moral system, we must define the purpose of the system.  That is,\nwe shall be moral unto what end?\n\n>>Murder is certainly a violation of the golden rule.  And, I thought I had\n>>defined murder as an intentional killing of a non-murderer, against his will.\n>>And you responded to this by asking whether or not the execution of an\n>>innocent person under our system of capital punishment was a murder or not.\n>>I fail to see what this has to do with anything.  I never claimed that our\n>>system of morality was an objective one.\n>I thought that was your very first claim.   That there was\n>some kind of \"objective\" morality, and that an example of that was\n>that murder is wrong.   If you don't want to claim that any more,\n>that's fine.\n\nWell, murder violates the golen rule, which is certainly a pillar of most\nevery moral system.  However, I am not assuming that our current system\nand the manner of its implementation are objectively moral.  I think that\nit is a very good approximation, but we can't be perfect.\n\n>And by the way, you don't seem to understand the difference between\n>\"arbitrary\" and \"objective\".   If Keith Schneider \"defines\" murder\n>to be this that and the other, that's arbitrary.   Jon Livesey may\n>still say \"Well, according to my personal system of morality, all\n>killing of humans against their will is murder, and wrong, and what\n>the legal definition of murder may be in the USA, Kuweit, Saudi\n>Arabia, or the PRC may be matters not a whit to me\".\n\nWell, \"objective\" would assume a system based on clear and fundamental\nconcepts, while \"arbitary\" implies no clear line of reasoning.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3789, "properties": {"category": "sci.electronics", "text": "From: musone@acsu.buffalo.edu (Mark J. Musone)\nSubject: MC SBI mixer\nOrganization: UB\nLines: 20\nNntp-Posting-Host: autarch.acsu.buffalo.edu\n\nHI, I was wondering if anyone would be able to help me on twwo related\nsubjects. I am currently learning about AM/FM receivers and recieving\ncircuits. I understand a lot of things ,but a few things I am confused\nabuot. The first is the MIXER, to mix the RF and local oscillator\nfrequencies to make the IF. Does anyone have any cicruit diagrams (as\nsimple as possible) for this kind of mixer? I have come across a\nMC-SBL mixer chip But I have not been able to find it in any catalogs\n(ACTIVE,etc...) \n\nAlong the same note, are there any SIMPLE fm receiver circuits anyone\nmay have stashed away somewhere and they couold let me see?.\n\nP.S. any REALLY GOOD BOOKS on AM/FM theory ALONG WITH DETAILED\nELECTRICAL DIAGRAMS would help a lot.\nI have seen a lot of theory books with no circuits and a lot of\ncircuit books with no theory, but one without the other does not help.\n\n\t\t\t\tThanks,\n\n\t\t\t\tMark Musone\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3790, "properties": {"category": "talk.politics.mideast", "text": "From: anwar+@cs.cmu.edu (Anwar Mohammed)\nSubject: Lawsuit against ADL\nNntp-Posting-Host: gs135.sp.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 142\n\n[It looks like Yigal has been busy...]\n\nRTw  04/14 2155  JEWISH GROUP SUED FOR PASSING OFFICIAL INFORMATION\n\n    By Adrian Croft\n     SAN FRANCISCO, April 14, Reuter - Nineteen people, including the son of\nformer Israeli Defence Minister Moshe Arens, sued the Anti-Defamation League\n(ADL) on Wednesday, accusing the Jewish group of disclosing confidential\nofficial information about them.\n     Richard Hirschhaut, director of the San Francisco branch of the ADL, art\ndealer Roy Bullock and former policeman Tom Gerard were also named as defendants\nin the suit, filed in San Francisco County Superior Court.\n     The 19 accuse the ADL of B'nai B'rith, a group dedicated to fighting\nanti-Semitism, and the other defendants of secretly gathering information on\nthem, including data from state and federal agencies.\n     The suit alleges they disclosed the information to others, including the\ngovernments of Israel and South Africa, in what it alleges was a \"a massive\nspying operation.\"\n     The action is a class-action suit. It was filed on behalf of about 12,000\nanti-apartheid activists or opponents of Israeli policies about whom the\nplaintiffs believe the ADL, Bullock and Gerard gathered information.\n     Representatives of the ADL in San Francisco were not immediately available\nfor comment on Wednesday.\n     The civil suit is the first legal action arising out of allegations that\nGerard, a former inspector in the San Francisco police intelligence unit, passed\nconfidential police files on California political activists to a spy ring.\n     The FBI and San Francisco police are investigating the ADL, Bullock and\nGerard over the affair and last week searched the ADL's offices in San Francisco\nand Los Angeles.\n     The suit alleges invasion of privacy under the Civil Code of California,\nwhich prohibits the publication of information obtained from official sources.\nIt seeks exemplary damages of at least $2,500 per person as well as other\nunspecified damages.\n     Lawyer Pete McCloskey, a former Congresmen who is representing the\nplaintiffs, said the 19 plaintiffs included Arab-Americans and Jews -- and his\nwife Helen, who also had information gathered about her.\n     One of the plaintiffs is Yigal Arens, a research scientist at the\nUniversity of Southern California who is a son of the former Israeli Defence\nMinister.\n     Arens told the San Francisco Examiner he had seen a file the ADL kept on\nhim in the 1980s, presumably because of his criticism of the treatment of\nPalestinians and his position on the Israeli-occupied territories.\n     According to court documents released last week, Bullock and Gerard both\nkept information on thousands of California political activists.\n     In the documents, a police investigator said he believed the ADL paid\nBullock for many years to provide information and that both the league and\nBullock received confidential information from the authorities.\n     No criminal charges have yet been filed in the case. The ADL, Bullock and\nGerard have all denied any wrongdoing.\n  REUTER AC KG CM\n\n\n\nAPn  04/14 2202  ADL Lawsuit\n\nCopyright, 1993. The Associated Press. All rights reserved.\n\nBy CATALINA ORTIZ\n Associated Press Writer\n   SAN FRANCISCO (AP) -- Arab-Americans and critics of Israel sued the\nAnti-Defamation League on Wednesday, saying it invaded their privacy by\nillegally gathering information about them through a nationwide spy network.\n   The ADL, a national group dedicated to fighting anti-Semitism, intended to\nuse the data to discredit them because of their political views, according to\nthe class-action lawsuit filed in San Francisco Superior Court.\n   \"None of us has been guilty of racism or Nazism or anti-Semitism or hate\ncrimes, or any of the other `isms' that the ADL claims to protect against. None\nof us is violent or criminal in any way,\" said Carol El-Shaieb, an education\nconsultant who develops programs on Arab culture.\n   The 19 plaintiffs include Yigal Arens, son of former Israel Defense Minister\nMoshe Arens. The younger Arens, a research scientist at the University of\nSouthern California, said the ADL kept a file on him in the 1980s presumably\nbecause he has criticized Israel's treatment of Palestinians.\n   \"The ADL believes that anyone who is an Arab American ... or speaks\npolitically against Israel is at least a closet anti-Semite,\" Arens said.\n   The ADL has denied any wrongdoing, but couldn't comment on the lawsuit\nbecause it hasn't reviewed it, said a spokesman at the ADL's New York\nheadquarters.\n   The FBI and local police and prosecutors are investigating allegations that\nthe ADL spied on thousands of individuals and hundreds of groups, including\nwhite supremacist and anti-Semitic organizations, Arab-Americans, Greenpeace,\nthe National Association for the Advancement of Colored People and San Francisco\npublic television station KQED.\n   Some information allegedly came from confidential police and government\nrecords, according to court documents filed in the probe and the civil lawsuit.\nNo charges have been filed in the criminal investigation.\n   The lawsuit accuses the ADL of violating California's privacy law, which\nforbids the intentional disclosure of personal information \"not otherwise\npublic\" from state or federal records.\n   The lawsuit claims the ADL disclosed the information to \"persons and\nentities\" who had no compelling need to receive it. It didn't elaborate.\n   Defendants include Richard Hirschhaut, director of the ADL's office in San\nFrancisco. He did not immediately return a phone call seeking comment.\n   Other defendants are San Francisco art dealer Roy Bullock, an alleged ADL\ninformant over the past four decades, and former police officer Tom Gerard.\nGerard allegedly tapped into law enforcement and government computers and passed\ninformation on to Bullock.\n   Gerard, who has retired from the police force, has moved to the Philippines.\nBullock's lawyer, Richard Breakstone, said he could not comment on the lawsuit\nbecause he had not yet studied it.\n\n\n\n\n\nUPwe 04/14 1956  ADL sued for allegedly spying on U.S. residents\n\n   SAN FRANCISCO (UPI) -- A group of California residents filed suit Wednesday\ncharging the Anti-Defamation League of B'nai Brith with violating their privacy\nby spying on them for the Israeli and South African governments.\n   The class-action suit, filed in San Francisco Superior Court, charges the ADL\nand its leadership conspired with a local police official to obtain information\non outspoken opponents of Israeli policies towards the Occupied Territories and\nSouth Africa's apartheid policy.\n   The ADL refused to comment on the suit.\n   The suit also took aim at two top local ADL officials and retired San\nFrancicso police officer Tom Gerard, claiming they violated privacy guarantees\nin the state constitution and violated state confidentiality laws.\n   According to the suit, Gerard helped the ADL obtain access to confidential\nfiles in law enforcement and government computers. Information from these files\nwere passed to the foreign governments, the suit charges.\n   \"The whole concept of an organized collection of information based on\npolitical viewpoints and using government agencies as a source of information is\nabsolutely repugnant,\" said former Rep. Pete McCloskey, who is representing the\nplaintiffs.\n   The ADL's information-gathering network was revealed publicly last week when\nthe San Francisco District Attorney's Office released documents indicating the\ngroup had spied on 12,000 people and 500 political and ethnic groups for more\nthan 30 years.\n   \"My understanding is that they (the ADL) consider all activity that is in\nsome sense opposed to Israel or Israeli action to be part of their responsbility\nto investigate,\" said Arens, a research scientist at the University of Southern\nCalifornia.\n   \"The ADL believes that anyone who is Arab American...or speaks politically\nagainst Israel is at least a closet anti-Semite.\"\n   The FBI and the District Attorney's Office have been investigating the\noperation for four months.\n   The 19 plaintiffs in the case include Arens, the son of former Israeli\nDefense Minister Moshe Arens.\n   In a press release, the plaintiffs said the alleged spying had damaged them\npsychologically and economically and accused the ADL of trying to interfere with\ntheir freedom of speech.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3791, "properties": {"category": "talk.politics.guns", "text": "From: jim.wray@yob.sccsi.com (Jim Wray)\nSubject: sign of the times...\nOrganization: Ye Olde Bailey BBS - Houston, TX - 713-520-1569\nLines: 31\nReply-To: jim.wray@yob.sccsi.com (Jim Wray)\nNNTP-Posting-Host: cs.utexas.edu\n\n\nArticle in this morning's Houston Post....\"negotiators send food to\nrebellious inmates as humanitarian gesture\"...speaking about the Ohio prison\nriot where they have killed at least one of the hostage guards.\n\nI know it's not the same \"group\" but the mindset appears to be common to\n\"those what rule\" here lately....they won't give diddley to the BD's in Waco\nbut they treat criminals as deserving of \"humanitarian gestures\".\n\nThis is but another indicator that the criminal caste seems to enjoy more\npriviliges in today's society than their victims or other law abiding\ncitizens. What is it that makes the criminal so precious to the \"leaders of\nthe system\"?\n\nCould it be that the criminal is one of the \"tools\" the \"authorities\" are\nusing to \"excuse\" some of the rights negation they are trying to foist upon\nthe law abiding citizen in the name of crime control....don't solve the crime\nproblem because then the citizen couldn't be held hostage to \"our help\".\n\nIf the crime problem were solved in favor of the citizen/victim at the\nexpense of the criminal none of the crap such as RICO and gun banning could\nbe used as excuses to work the agenda of those who would control our every\nmove and thought.\n---\n . OLX 2.2 . If I have to explain, you wouldn't understand.\n                                                                                                       \n----\n+------------------------------------------------------------------------+\n| Ye Olde Bailey BBS   713-520-1569 (V.32bis) 713-520-9566 (V.32bis)     |\n|   Houston,Texas          yob.sccsi.com       Home of alt.cosuard       |\n+------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3792, "properties": {"category": "rec.motorcycles", "text": "From: mjs@sys.uea.ac.uk (Mike Sixsmith)\nSubject: Re: FJ1100/1200 Owners: Tankbag Suggestions Wanted\nOrganization: University of East Anglia\nLines: 14\n\nmartenm@chess.ncsu.edu (Mark Marten) writes:\n\n\n\n>I am looking for a new tank bag now, and I wondered if you, as follow \n>FJ1100/1200 owners, could make some suggestions as to what has, and has \n>not worked for you. If there is already a file on this I apologize for \n>asking and will gladly accept any flames that are blown my way!\n\nI've got a Belstaff tankbag on my FJ1100, and it ain't too good. It's\ndifficult to fix it securely cos of the the tank/fairing/sidepanel layout,\nand also with the bars on full lock the bag touches the handlebar switches,\nso you get the horn on full left lock and the starter motor on full right!!\nIf I was buying another I think I'd go for a magnetic one.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3793, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: My Gun is like my American Express Card\nDistribution: usa\n <93103.170753U28037@uic <1qie2rINN1b9@cae.cad.gatech.edu>\nLines: 73\n\nIn article <1qie2rINN1b9@cae.cad.gatech.edu>, vincent@cad.gatech.edu (Vincent\nFox) says:\n>\n[stuff deleted. all mine]\n\n>Define \"armed better\". Go shoot a revolver and a semi-auto like the\n>Colt .45. Does one fires faster than the other? Nope. Aside from which\n>faster rate of fire is usually not desirable. Sure it makes the other\n>guys duck for cover, but just *YOU* trying hitting anything with a Thompson\n>in hose-mode. This is why the military is limiting it's M-16 now to\n\nAw come on.  It worked great in the 1920's (or the movie version of the '20s\nanyways) :-)\n\n>3-round burst-fire. Simple semi-auto would be better, but the troops\n>like to be able to rock and roll even if it is wasteful of ammo (something\n>often in short supply when the enemy is plentiful).\n>\n>A revolver is equally capable as a semi-auto in the same caliber.\n>\n[stuff deleted about how revolvers are just as good as semi-autos]\n\nAll your points are very well taken and things that I haven't considered as\nI am not really familiar enough with handguns.\n\n>Some police departments switched to Glocks, and then started quietly\n>switching many officers back to the old revolvers. Too many were having\n>accidents, partly due to the poor training they received. Not that Glocks\n>require rocket scientists, but some cops are baffled by something as complex\n>as the timer on a VCR.\n\nHell, a Glock is the last thing that should be switched to.  The only thing\nthat I know about a Glock is the lack of a real safety on it.  Sure there is\nthat little thing in the trigger but that isn't too great of a safety.\n>\n>Anyone who goes anyone saying that the criminals obviously outgun\n>the police don't know nothing about firearms. Turn off COPS and Hunter\n>and pay attention. I do not seek here to say \"semi-autos are junk\"\n>merely that assuming they are better for all jobs is stupid. A cop\n>with a revolver on his hip and a shotgun in the rack is more than\n>equipped for anything short of a riot.\n>\nActually I don't watch those shows :-)  And you're right (at least partially).\nI don't know much about handguns.  I'm more familiar with rifles.\n\n>Gun control is hitting what you aim at. If you whip out a\n>wonder-nine and fire real fast you may find you don't hit anything.\n>Good controlled fire from a revolver is more likely to get you a hit.\n>I own a 9mm Beretta myself but consider it inferior as a carry weapon\n>to something like the Ruger Security Six revolver. If I haven't hit\n>what I'm aiming at in the first 5 shots, something is quite seriously\n>wrong somewheres. While I might like having the backup capacity of those\n>extra shots in certain cases, overwhelmingly the # of shots fired in\n>criminal encounters is less than 5.\n>\n>What do crooks overwhelmingly use in crime? Why the same nice simple\n>.38 revolvers that the police often use. Well actually some police\n>prefer the much heftier .357 Magnum, but anyway.....\n>\n>ObPlea: Don't flame me, I prefer semi-autos for most things. But they\n>        introduce unneccessary complications to something as nerve-wracking\n>        as an abrupt encounter with a lone criminal.\n>\n>--\n>\"If everything had gone as planned, everything would have been perfect.\"\n> -BATF spokesperson on CNN 3/2/93, regarding failed raid attempt in TX.\n\nNo flames here.  All your points are well taken.  Guess I still have a\nlot to learn but thanks to this discussion I already am :-)  Guess I\nassume too many things like more bullets are better and that sort of\nthing.  Of course you know what happens when you assume ......... :-)\n\nJason\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3794, "properties": {"category": "comp.sys.mac.hardware", "text": "From: eer@world.std.com (Eugene E Rosen)\nSubject: Centris 610/tms 120 drive\nArticle-I.D.: world.C5Jq8A.3I9\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 14\n\nI recently purchased a Centris 610 and am having difficulty getting\nmy computer to recognize my hard disk drive (external) Using both the\ndisk uitily of TMS (Diskwriter) and Jasmine's software, neither one\nwill show the drive.  The drive is the only device connected to the \nscuzzi port. I cant find the manual to the tms pro 120 and seem to\nremember that it is \"terminated\".  Is there something else that I am\ndoing (or not doing) that does not allow my 610 to recognize my external\ndisk drive?.\n\nthanks in advance for the information.\n-- \nEugene E. Rosen                                           GENIE: erosen\n22 Riverside Road                                       COMPUSERVE:74066,3444\nSandy Hook, Ct. 06482-1213                              AOL: Gene Rosen\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.172+0000", "event": "documents", "entityId": 3795, "properties": {"category": "talk.religion.misc", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: Clarification of personal position\nOrganization: University of Georgia, Athens\nLines: 26\n\nIn article <C5MuIw.AqC@mailer.cc.fsu.edu> dlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n\n>If it were a sin to violate Sunday no one could\n>ever be forgiven for that for Jesus never kept Sunday holy.  He only\n>recognized one day of the seven as holy.\n\nJesus also recognized other holy days, like the Passover.  Acts 15 says \nthat no more should be layed on the Gentiles than that which is necessary.\nThe sabbath is not in the list, nor do any of the epistles instruct people\nto keep the 7th day, while Christians were living among people who did not\nkeep the 7th day.  It looks like that would have been a problem.\n\nInstead, we have Scriptures telling us that all days can be esteemed alike\n(Romans 14:5) and that no man should judge us in regard to what kind of\nfood we eat, Jewish holy days we keep, or _in regard to the sabbath. (Col. 2.)\n\n>The\n>question is \"On what authority do we proclaim that the requirements of the\n>fourth commandment are no longer relevant to modern Christians?\"\n\nI don't think that the Sabbath, or any other command of the law is totally\nirrelevant to modern Christians, but what about Collosions 2, where it says\nthat we are not to be judged in regard to the keeping of the sabbath?\n\nLink Hudson.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3796, "properties": {"category": "soc.religion.christian", "text": "From: johnsd2@rpi.edu (Dan Johnson)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nReply-To: johnsd2@rpi.edu\nOrganization: not Sun Microsystems\nLines: 45\n\nIn article 29201@athos.rutgers.edu, seanna@bnr.ca (Seanna (S.M.) Watson) writes:\n>In article <Apr.14.03.07.38.1993.5420@athos.rutgers.edu> johnsd2@rpi.edu writes:\n>>In article 28388@athos.rutgers.edu, jayne@mmalt.guild.org (Jayne Kulikauskas) writes:\n>>\n>>>  This is why the most effective \n>>>substance-abuse recovery programs involve meeting peoples' spiritual \n>>>needs.\n>>\n>>You might want to provide some evidence next time you make a claim\n>>like this.\n>>\n>In 12-step programs (like Alcoholics Anonymous), one of the steps\n>involves acknowleding a \"higher power\".  AA and other 12-step abuse-\n>recovery programs are acknowledged as being among the most effective.\n\n[deletia- and so on]\n\nI seem to have been rather unclear.\n\nWhat I was asking is this:\n\nPlease show me that the most effective substance-absure recovery\nprograms involve meetinsg peoples' spiritual needs, rather than\nmerely attempting to fill peoples' spiritual needs as percieved\nby the people, A.A, S.R.C. regulars, or snoopy. This will probably\ninvolve defining \"spritual needs\" (is it not that clear) and\nshowing that such things exist and how they can be filled.\n\nAnnother tack you might take is to say that \"fulfilling spiritual\nneeds\" means \"acknowledging a \"higher power\" of some sort, then\nshow that systems that do require this, work better than otherwise\nidentical systems that do not. A correlation here would help you,\nbut as you point out this might just be demonstrating swapping\none crutch for annother. (however, I do feel that religion is\nusually a better crutch than alchohol, as it is not usually\npoisonous! :) )\n\nI hope with that clarification, my question will be answerable. I actually\ndid know about the 12 step program, its the question of what it does,\nrather than what it tries to do, that makes a difference to me.\n---\n\t\t\t- Dan Johnson\nAnd God said \"Jeeze, this is dull\"... and it *WAS* dull. Genesis 0:0\n\nThese opinions probably show what I know.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3797, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Albert Sabin\nFrom: rfox@charlie.usd.edu (Rich Fox, Univ of South Dakota)\nReply-To: rfox@charlie.usd.edu\nOrganization: The University of South Dakota Computer Science Dept.\nNntp-Posting-Host: charlie\nLines: 91\n\nIn article <1993Apr15.012537.26867@nntpd2.cxo.dec.com>, sharpe@nmesis.enet.dec.com (System PRIVILEGED Account) writes:\n>\n>In article <C5FtJt.885@sunfish.usd.edu>, rfox@charlie.usd.edu (Rich Fox, Univ of South Dakota) writes:\n>|>\n>|>In article <1993Apr10.213547.17644@rambo.atlanta.dg.com>, wpr@atlanta.dg.com (Bill Rawlins) writes:\n>|>\n>|>[earlier dialogue deleted]\n>|>\n>|>>|> Perhaps you should read it and stop advancing the Bible as evidence relating \n>|>>|> to questions of science.  \n>|>\n>|>[it = _Did Jesus exist?_ by G. A. Wells]\n>|>\n>|>>     There is a great fallacy in your statement. The question of origins is\n>|>>     based on more than science alone.  \n>|>\n>|>Nope, no fallacy.  Yep, science is best in determining how; religions handle\n>|>why and who.\n>|>\n>\n>Rich, I am curious as to why you and others award custody of the baby to\n>theists and religion?\n\nI hope I didn't award custody, Rich.  I purposely used \"handle\" in order to \navoid doing so - i.e., that happens to be what religions do (of course there are\naberrations like \"scientific\" creationism).  I used \"best\" in part to indicate \nthat science currently has a time of it with why and who, so these domains are\nmostly ignored.  I also attempted to be brief, which no doubt confused the\nmatter.  As an aside, for science I should have written \"how and when\".  Nobody\nseems to argue over what.\n\n>Are they [theists, theologians] any better equiped to investigate the \"who and \n>why\" than magicians, astrologers, housewives [not being sexists], athiests or \n>agnostics.\n\nSeems to me that the answer would vary from individual to individual.  I'm not\ntrying to be evasive on this, but from a societal perspective, religion works.\nOn the other hand, sometimes it is abused and misused, and many suffer, which\nyou know.  But the net result seems positive, this from the anthropological\nperspective on human affairs.  You might call me a neo-Fruedian insofar as I \nthink the masses can't get along without religion.  Not that generally they are \nincapable; they just don't, and for myriad reasons, but the main one seems to \nbe the promise of immortality.  Very seductive, that immortality.  Therefore \nit seems that theologians are better equipped than the others you mention for \ndispensing answers to \"who and why\".  I suggest that this holds regardless of \nthe \"truth\" in their answers to who and why simply because people believe.  \nIn the end, spiritual beliefs are just as \"real\" as scientific facts and \nexplanation (CAUTION TO SOME: DO NOT TAKE THIS OUT OF CONTEXT).  \n\n>Do you suggest that the \"who and why\" will forever be closed to scientific \n>investigation?\n\nNo.  In fact, I don't think it is closed now, at least for some individuals. \nIsn't there a group of theoretical physicists who argue that matter was \ncreated from nothing in a Big Bang singularity?  This approach might \npresuppose an absence of who and why, except that it seems it could be argued \nthat something had to be responsible for nothing?  Maybe that something doesn't\nhave to be supernatural, maybe just mechanistic.  But that's a tough one for\npeople today to grasp.  In any case, theory without empirical data is not \nexplanation, but then your question does not require data.  In other words, \nI agree that theorizing (within scientific parameters) is just as scientific \nas explaining.  So the answer is, who and why are not closed to scientists, but \nI sense that science in these realms is currently very inadequate.  Data will \nbe necessary for improvement, and that seems a long way off, if ever.  Pretty \nconvoluted here; I hope I've made sense.  \n\n>It seems to me that 200 or so years ago, the question of the origin of life on\n>earth was not considered open to scientific enquiry.\n\nI agree generally.  But I prefer to put it this way - the *questions* of how, \nwhen, who and why were not open to inquiry.  During the Enlightenment, \nreason was reponsible for questioning the theological answers to how and when, \nand not, for the most part, who and why.  Science was thus born out of the \nnaturalists' curiosity, eventually carting away the how and when while largely \nleaving behind the who and why.  The ignorant, the selfish, the intolerant, and\nthe arrogant, of course, still claim authority in all four domains.\n\n>|>Rich Fox, Anthro, Usouthdakota\n\n>Did like your discussion around AMHs, and I did figure out what AMH was from\n>your original post :-)\n\nMuch obliged.  Funny how facts tend to muddle things, isn't it?  Well, I am\nsure there are plenty of \"scientific\" creationist \"rebuttals\" out there \nsomewhere, even if they have to be created from nothing.\n\n[just for the record, again, AMH = anatomically modern humans] \n\nBest regards :-),\n\nRich Fox, Anthro, Usouthdakota\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3798, "properties": {"category": "rec.motorcycles", "text": "From: neal@cmptrc.lonestar.org (Neal Howard)\nSubject: Do Splitfires Help Spagthorpe Diesels ?\nKeywords: Using Splitfire plugs for performance.\nDistribution: rec.motorcycles\nOrganization: CompuTrac Inc., Richardson TX\nLines: 34\n\nIn article <C5JF22.DJr@news.cso.uiuc.edu> wcd82671@uxa.cso.uiuc.edu (daniel warren c) writes:\n>Earlier, I was reading on the net about using Splitfire plugs.  One\n>guy was thinking about it and almost everybody shot him to hell.  Well,\n>I saw one think that someone said about \"Show me a team that used Split-\n>fires....\"  Well, here's some additional insight and some theories\n>about splitfire plugs and how they boost us as oppossed to cages.\n>\n>Splitfires were originally made to burn fuel more efficiently and\n>increased power for the 4x4 cages.  Well, for these guys, splitfires\n>\n>Now I don't know about all of this (and I'm trying to catch up with\n>somebody about it now), but Splitfires should help twins more than\n\nSplitfires work mainly by providing a more-or-less unshrouded spark to the\ncombustion chamber. If an engine's cylinder head design can benefit from this,\nthen the splitfires will yield a slight performance increase, most noticeably\nin lower rpm range torque. Splitfires didn't do diddly-squat for my 1992 GMC\npickup (4.3l V6) but do give a noticeable performance boost in my 1991 Harley\nSportster 1200 and my best friend's 1986 Sportster 883. Folks I know who've\ntried them in 1340 Evo motors can't tell any performance boost over plain\nplugs (which is interesting since the XLH and big twin EVO combustion chambers\nare pretty much the same shape, just different sizes). Two of my friends who\nhave shovelhead Harleys swear by the splitfires but if I had a shovelhead,\nI'd dual-plug it instead since they respond well enough to dual plugs to make\nthe machine work and extra ignition system worth the expense (plus they look\nreally cool with a spark plug on each side of each head)\n-- \n=============================================================================\nNeal Howard   '91 XLH-1200      DoD #686      CompuTrac, Inc (Richardson, TX)\n\t      doh #0000001200   |355o33|      neal@cmptrc.lonestar.org\n\t      Std disclaimer: My opinions are mine, not CompuTrac's.\n         \"Let us learn to dream, gentlemen, and then perhaps\n          we shall learn the truth.\" -- August Kekule' (1890)\n=============================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3799, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Final Solution for Gaza ?\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 39\n\nIn article <1993Apr26.172744.23230@colorado.edu> perlman@qso.Colorado.EDU (Eric S. Perlman) writes:\n>In article <1483500354@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n>>\n>>[...]\n>>The Gaza strip, this tiny area of land with the highest population\n>>density in the world, has been cut off from the world for weeks.\n>>The Israeli occupier has decided to punish the whole population of\n>>Gaza, some 700.000 people, by denying them the right to leave the\n>>strip and seek work in Israel.\n>\n>Anyone who can repeate this choice piece of tripe without checking\n>his/her sources does not deserve to be believed.  The Gaza strip does\n>not possess the highest population density in the world.  In fact, it\n>isn't even close.  Just one example will serve to illustrate the folly\n>of this statement:  the city of Hong Kong has nearly ten times the\n>population of the Gaza strip in a roughly comparable land area.  The\n>centers of numerous cities also possess comparable, if not far higher,\n>population densities.  Examples include Manhattan Island (NY City), Sao\n>Paolo, Ciudad de Mexico, Bombay,... \n>\n>Need I go on?  The rest of Mr. Davidsson's message is no closer to the\n>truth than this oft-repeated statement is.\n>\nElias' initial statement certain *is* hot air. But it seems to be\nalmost standard procedure around here to first throw out an absurb,\noverstated image in order to add extra \"meaning\" to the posting's\n*real point*. \n\nHowever, his second statement *is* quite real. The essential sealing off\nof Gaza residents from the possibility of making a living *has happened*.\nCertainly, the Israeli had a legitimate worry behind the action they took,\nbut isn't that action a little draconian?\n\n\n--\nTim Clock                                   Ph.D./Graduate student\nUCI  tel#: 714,8565361                      Department of Politics and Society\n     fax#: 714,8568441                      University of California - Irvine\nHome tel#: 714,8563446                      Irvine, CA 92717\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3800, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: calloway@hplvec.LVLD.HP.COM (Frank Calloway)\nSubject: Re: Windows 3.1 slower using DOS 6 ????\nOrganization: Hewlett-Packard Co., Loveland, CO\nLines: 3\n\nNot on my system.\n\nFrank Calloway\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3801, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: David A. Fuess\nSubject: Re: Visual c++\nOrganization: UCLLNL\nLines: 29\nDistribution: usa\nNNTP-Posting-Host: talon.llnl.gov\n\nIt is correct that VC++ is NOT considered an upgrade for C7. C7 is\nbasically a DOS product, VC++ is a Windows product. As Windows is not\nan upgrade for DOS, it is a separate operating system product line, its\nutilities cannot be upgrades for DOS utilities. However, I have also\nbeen told that it is NOT an upgrade for QCWIN, which it should be!\n\nIn article <735708181.AA00457@therose.pdx.com> Don.Hancock@f303.n105.z1.fidonet.org (Don Hancock) writes:\n>My understanding is that Visual C++ *IS* MSC8.0. Is it not? What I mean is,\n>it is intended as a logical upgrade to MSC7 (which I own). I AM VERY \n>interested in VC++, but I can't find ANYTHING about it. Tell me more.\n>How's the editor? Is it a TRUE windows app (MSC7 - which I love - is NOT).\n>How are compile times? .exe sizes? How smart is the linker? How WELL does it\n>do DOS apps? I would like to be one of the few programmers still pumping out\n>stuff for the DOS users out there - even though I run Win3.1 (I like the\n>multitasking and I couldn't afford Desqview). Will it link 3rd party libs \n>easily? I use LOTS of 3rd party libs in my DOS programs (too lazy to do my\n>own interfaces). How is the debugger - I make lots of mistakes (|-})?\n>Thanx.....\n>\n>.... If it wasn't for C, we would be using BASI, PASAL and OBOL!\n>___ Blue Wave/QWK v2.10\n\n+---------------------------------+----------------------+\n|    _/      _/     _/    _/  _/  | David A. Fuess       |\n|   _/      _/     _/_/  _/  _/   | Dir, Center for EECS |\n|  _/      _/     _/  _/_/  _/    | Phone: (510)423-2436 |\n| _/_/_/  _/_/_/ _/    _/  _/_/_/ | Fax:   (510)422-9343 |\n+-------- Lawrence Livermore National Laboratory --------+\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3802, "properties": {"category": "comp.sys.mac.hardware", "text": "From: wls@calvin.usc.edu (Bill Scheding)\nSubject: Re: \"Full page\" PB screen\nOrganization: University of Southern California, Los Angeles, CA\nLines: 14\nDistribution: world\nNNTP-Posting-Host: calvin.usc.edu\n\n\nIn article <MfohvGq00WBME4yado@andrew.cmu.edu>,\n \"Michael T. Callihan\" <mc5o+@andrew.cmu.edu> writes:\n|> Hi.  I am working on a project for my marketing class and I'd like to\n|> ask your help.  The assignment is to come up with a product and create a\n|> marketing plan for it.  Technical issues are not terribly important at\n|> this point...\n\nI'm not surprised to learn that `Technical issues are not terribly important' to\nanyone working on a 'Marketing Plan'\n\n:)\n\nwls\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3803, "properties": {"category": "talk.politics.mideast", "text": "From: cpr@igc.apc.org (Center for Policy Research)\nSubject: Ten questions about Israel\nLines: 55\nNf-ID: #N:cdp:1483500349:000:1868\nNf-From: cdp.UUCP!cpr    Apr 19 14:38:00 1993\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Ten questions about Israel\n\n\nTen questions to Israelis\n-------------------------\n\nI would be thankful if any of you who live in Israel could help to\nprovide\n accurate answers to the following specific questions. These are\nindeed provocative questions but they are asked time and again by\npeople around me.\n\n1.      Is it true that the Israeli authorities don't recognize\nIsraeli nationality ? And that ID cards, which Israeli citizens\nmust carry at all times, identify people as Jews or Arabs, not as\nIsraelis ?\n\n2.      Is it true that the State of Israel has no fixed borders\nand that Israeli governments from 1948 until today have refused to\nstate where the ultimate borders of the State of Israel should be\n?\n\n3.      Is it true that Israeli stocks nuclear weapons ? If so,\ncould you provide any evidence ?\n\n4.      Is it true that in Israeli prisons there are a number of\nindividuals which were tried in secret and for which their\nidentities, the date of their trial and their imprisonment are\nstate secrets ?\n\n5.      Is it true that Jews who reside in the occupied\nterritories are subject to different laws than non-Jews?\n\n6.      Is it true that Jews who left Palestine in the war 1947/48\nto avoid the war were automatically allowed to return, while their\nChristian neighbors who did the same were not allowed to return ?\n\n7.      Is it true that Israel's Prime Minister, Y. Rabin, signed\nan order for ethnical cleansing in 1948, as is done today in\nBosnia-Herzegovina ?\n\n8.      Is it true that Israeli Arab citizens are not admitted as\nmembers in kibbutzim?\n\n9.      Is it true that Israeli law attempts to discourage\nmarriages between Jews and non-Jews ?\n\n10.     Is it true that Hotel Hilton in Tel Aviv is built on the\nsite of a muslim cemetery ?\n\nThanks,\n\nElias Davidsson Iceland email:   elias@ismennt.is\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3804, "properties": {"category": "rec.autos", "text": "From: matmcinn@nuscc.nus.sg (Matthew MacIntyre at the National University of Senegal)\nSubject: Re: WARNING.....(please read)...\nOrganization: National University of Singapore\nX-Newsreader: Tin 1.1 PL4\nLines: 9\n\ncallison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n: >> \n: >I'm not going to argue the issue of carrying weapons, but I would ask you if \n: >you would have thought seriously about shooting a kid for setting off your\n: >alarm?  I can think of worse things in the world.  Glad you got out of there\n: >before they did anything to give you a reason to fire your gun.\n: \nI think people have a right to kill to defend their property. Why not? Be\nhonest: do you really care more about scum than about your  car?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3805, "properties": {"category": "sci.electronics", "text": "From: ph@gmd.de (Peter Hendricks)\nSubject: Re: Wanted: A to D hardware for a PC\nTo: ebuddington@eagle.wesleyan.edu\nNntp-Posting-Host: gmdzi\nOrganization: GMD, Sankt Augustin, Germany\nLines: 23\n\nIn <3889@ncr-mpd.FtCollinsCO.NCR.COM> Brad Wright writes:\n\n>\tIf you know much about PC's (IBM comp) you might try the joystick\n>port.  Though I haven't tried this myself, I've been told that the port\n>has built in A-D converters.  This would allow the joystick to be a couple of \n>pots.  If you could find the specs this might just work for you...\n\nI guess 100k, connecting pins 1-3 (1x), 1-6 (1y), 9-11 (2x), and 9-13 (2y).\n\nOr: Get an 8-bit DA-Converter (merely a couple of transistors and\nResistors) and an OpAmp to compare its output to the voltage you want to\nmeasure, connect them to a spared printer port (if you have one), and do\nthe rest by software (stepwise refinement). The port addresses for your\nprinter ports are probably: &H378 (LPT1), &H278 (LPT2). This should work\nwell enough for your purposes.\n\nHope this helps\n\n--\nGMD,  Schloss Birlinghoven,  Postfach 1316,  D-5205 St. Augustin 1,  FRG\n\ne-mail:  Peter.Hendricks@gmd.de\t\t\tph@zi.gmd.dbp.de\n\t ph@gmd.de\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3806, "properties": {"category": "talk.politics.mideast", "text": "From: friedenb@silver.egr.msu.edu (Gedaliah Friedenberg)\nSubject: Re: Zionism is Racism\nOrganization: College of Engineering, Michigan State University\nLines: 26\nDistribution: world\nReply-To: friedenb@silver.egr.msu.edu (Gedaliah Friedenberg)\nNNTP-Posting-Host: silver.egr.msu.edu\n\nIn article <20APR93.23565659.0109@VM1.MCGILL.CA>, B8HA000 <B8HA@MUSICB.MCGILL.CA> writes:\n|> In Re:Syria's Expansion, the author writes that the UN thought\n|> Zionism was Racism and that they were wrong.  They were correct\n|> the first time, Zionism is Racism and thankfully, the McGill Daily\n|> (the student newspaper at McGill) was proud enough to print an article\n|> saying so.  If you want a copy, send me mail.\n\nIf you want info claiming that blacks were brought to earth 60 trillion\nyears ago by Aliens from the plante Shabazz, I can send you literature from\nthe Nation of Islam (Farrakhan's group) who believe this.\n\nIf you want info claiming that the Holocaust never happened, I can send you\ninfo from IHR (Institute for Historical Review - David Irving's group), or\njust read Dan Gannon's posts on alt.revisionism.\n\nI just wanted to put Steve's post in with the company that it deserves.\n\n|> Steve\n\nGedaliah Friedenberg\n-=-Department of Mechanical Engineering\n-=-Department of Metallurgy, Mechanics and Materials Science\n-=-Michigan State University\n\n\n                   \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3807, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Clarification: Easter\nOrganization: AI Programs, University of Georgia, Athens\nLines: 23\n\nIn response to a lot of email I've gotten, I need to clarify my position.\n\nI am not in favor of paganism.\n\nI am not in favor of the Easter Bunny or other non-Christian aspects of\nEaster as presently celebrated.  (Incidentally, Easter eggs are not\nnon-Christian; they are a way of ending the Lenten fast.)\n\nMy point was to distinguish between\n  (1) intentionally worshipping a pagan deity, and\n  (2) doing something which may once have had pagan associations, but\nnowadays is not understood or intended as such.\n\nMany people who are doing (2) are being accused of (1).\n\nIt would be illogical to claim that one is \"really\" worshipping a\npagan deity without knowing it.  Worship is a matter of intention.\nOne cannot worship without knowing that one is doing so.\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3808, "properties": {"category": "sci.med", "text": "From: wcsbeau@superior.carleton.ca (OPIRG)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Carleton University, Ottawa, Canada\nLines: 101\n\nIn article <1993Apr15.190711.22190@walter.bellcore.com> jchen@ctt.bellcore.com writes:\n\n\n>The funny thing is the personaly stories about reactions to MSG vary so\n>greatly. Some said that their heart beat speeded up with flush face. Some\n>claim their heart \"skipped\" beats once in a while.\n\nBoth of these symptoms are related - tachycardia. Getting a flushed\nface is due to the heart pumping the blood faster than a regular\npulse.  I suspect this is related to an increase in sodium levels in\nthe blood, since note *sodium chloride* monosodium glutamate. Both are\nsodium compounds. Our bodies require sodium, but like everything else,\none can get too much of a good thing.\n\n>Some reacted with headache, \n\nAgain, this could be related to increased blood flow from increased\nheart rate, from the sodium in the MSG. Distended crainial arteries,\nessentially. One of many causes of headaches. There is no discrepency\nher, necessarily.\n\n\n>some stomach ache.\n\nWell stomache ache and vomiting tend to be related. Again, not\nnecessarily a discrepency. More likely a related reaction. Vomiting\noccurs as a response to get rid of a noxious compound an organism has\neaten. If a person can't digest the stuff (entirely possible - the\nlist of stuff people are allergic to is quite long), and lacks an\nenzyme to break it down, gastrointestinal distress (stomach or belly\nache) would be expected.\n\n\n> Some had watery eyes or running nose,\n\n\nThese are respiratory reactions, and are now considered to be similar\nto vomitting. They are a way for the body to dispose of noxious\ncompounds. They are adaptiove responses. Of course, it is possible\nsome other food or environmental compound could be responsible for the\nsymptoms. But it's important to remember that a lot opf these effets\ncan be additive, synergystic, subtractive, etc, etc. It would be\nnecessary to know exactly what was in a dish, and what else the person\nwas exposed to. Respiratory does sound suspicious BUT  resopiration\nand heart rate are connected.  Things in the body are far from\nsimple...very inetractive place, the vertebrate body.\n \n> some\n>had itchy skin or rashes. \n\nPeople respond in a myriad of ways to the same compound. It depends\nupon what it is about the compound that \"pisses off\" their body.\nPollen, for example, of some plants aggrivates breathing in many\npeople, because, when inhaled, it sets of the immune system, and an\nhistamine attack is launched. The immune system goes overboard,\ncausing the allergic person a lot of misery. And someone with an\nallergy to some pollens will have trouble with some herb teas that\ncontain pollens (Chamomile, linden, etc). Drinking the substance can\nperturb that person's system as much as inhaling it. \n\n>More serious accusations include respiration \n>difficulty \n\nSee above. And don't think that heart rate changes, and circulatory\nproblems are not serious. They can be deadly.\n\nand brain damage. \n\nThe area of the brain effected is the neuroendocrine system\ncontrolling the release of gonadotropin, the supra-hormone controlling\nthe cyclical release of testosterone and estradiol, as well as somatostatin,\nand other steroids. Testing for effective dose would be, uh, a wee bit unethical.\n\n\n>Now here is a new one: vomiting. My guess is that MSG becomes the number one\n>suspect of any problem. In this case. it might be just food\npoisoning. \n\nAbsolutely. But it could also be some synergystic mess from eating ,\nsay, undetected shrimp or mushrooms (to which many are allergic), plus\ntoo much alcohol, and inhaling too much diesel fumes biking home,\nplus, let's say, having contracted flu from one's sig. other 3 days\nbefore from drinking out of the same glass. Could be all sorts of\nthings.\n\nBut it might be the MSG. \n\n>if you heard things about MSG, you may think it must be it.\n\nIf noone else got sick, its likely not food poisoning. Probably\nstomach flu or an undetected thing the guy's allergic to.\n\n\nAnyway, the human body's not a machine; people vary widely in their\nresponses, and a lot of reactions are due to combinations of things.\n\n          Dianne Murray  wcsbeau@ccs.carleton.ca\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3809, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: snorman@den.mmc.com ( Stephen P. Norman )\nSubject: G2K/Jumbo 250 Backup Problems\nKeywords: tape backup gateway jumbo\nNntp-Posting-Host: muse.den.mmc.com\nReply-To: snorman@den.mmc.com\nOrganization: Martin Marietta Astronautics Group\nDistribution: usa\nLines: 16\n\nI have a Colorado Memory Systems Jumbo 250 tape backup unit in my Gateway\n486/33V Tower system. I have found the supplied backup capability to be \nfairly unreliable. In approx 3 cases out of 10, I have had the backup fail\nat one point or another, often hanging in the middle of writing the tape.\nSeek errors, drive communication errors seem to be most common. I use the\nDOS backup software from Colorado Memory Systems. Should I return the drive,\nget some better backup software, reformat the tapes (am using CMS tapes)?\nAny hints would be appreciated - this stuff is to time-consuming to do over\nand over again until it cooperates...\n\nSteve Norman\nsnorman@den.mmc.com\n\n\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3810, "properties": {"category": "talk.politics.guns", "text": "From: cathy@LANCE.ColoState.Edu (Cathy Smith)\nSubject: Questions to Ponder\nDistribution: usa\nNntp-Posting-Host: blanca.lance.colostate.edu\nOrganization: Colorado State University, Fort Collins, CO  80523\nLines: 62\n\nThe Libertarian Second Amendment Caucus in Fort Collins, Colorado,\nsubmitted this as a questionnaire to the city council candidates\nin the upcoming election. As expected, very few of the candidates\n(3 of 13) responded, but they know we're watching.\n\nFeel free to use any and all of these questions that strike your \nfancy or use them as inspiration for your own.\n\n                                *****\n       \n   1.  Would you be willing to state, in writing, that if you are\n       publicly demonstrated to have violated your oath of office\n       you would resign and never run for office again?\n       \n   2.  Under what circumstances do the rights of the group come\n       before the rights of the individual?\n       \n   3.  Would you support a city charter amendment prohibiting the\n       city government, its officials, agents, and employees from\n       initiating force against any human being for any reason?\n       \n   4.  Please put the following list in order of precedence (from\n       lowest to highest): a) city ordinance, b) city resolution, \n       c) state law, d) federal statute, e) U.S. Constitution, \n       f) state constitution.\n       \n   5.  Do you believe that it's appropriate for any city official or\n       employee to be paid more than his or her average private\n       sector constituent?\n       \n   6.  Do you believe that involuntary contributions are a legitimate\n       means of funding council programs?\n       \n   7.  Would you support a program recognizing the right of\n       taxpayers to \"earmark\" their taxes (either as \"must be used\"\n       or \"must not be used\") for specific programs?\n       \n   8.  In the event that the candidate \"None of the Above\" were to\n       win a city election, which option do you believe most\n       appropriate? a) The candidate with the next highest vote total\n       fills the office. b) A special election is held to fill the \n       office, with none of the previous candidates eligible to run \n       again. c) Let the office remain unfilled and unfunded until \n       the next election. d) Abolish the office.\n       \nPlease return your questionnaire to: [address of your choice]\n\nA signature and date line were added here.\n    \nThank you for taking the time to fill out this questionnaire.\n\n                                 ******\n\nThe questionnaires were sent with self-addressed, stamped envelopes.\n\nP.S. One person _did_ get a perfect score on the questionnaire, and,\nno, he didn't help write it.\n\nCathy Smith\n\nMy opinions are, of course, my own.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3811, "properties": {"category": "sci.electronics", "text": "From: schuch@phx.mcd.mot.com (John Schuch)\nSubject: Re: Re Using old databooks\nNntp-Posting-Host: bopper2.phx.mcd.mot.com\nOrganization: Motorola Computer Group, Tempe, Az.\nLines: 23\n\nIn article <1993Apr3.110048.4636@hemlock.cray.com> kilian@cray.com (Alan Kilian) writes:\n>> jeh@cmkrnl.com\n>\n>This is almost exactly the reason I keep only the latest databook around.\n>Too many times last years books turn into three years ago and the data\n>in them doesn't match the current production parts.\n>TANSTAAFL,\n>                             -Alan Kilian\n\nBUT... If you are in the habit of trying to repair old and obsolete\nmachines, the old data books are a goldmine of information you can\nnot get anywhere else. If you are trying to find a modern replacement\nfor an obsolete part, the original specs really come in handy. Design\nout of the new books but save the old ones (or donate them to a ham).\n\nIf anybody in Phoenix disagrees, I'll drive over and help them 'get rid'\nof all their old data books.\n\nJohn \n(450 data books and growing)\n\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3812, "properties": {"category": "soc.religion.christian", "text": "From: gerhard@vmars.tuwien.ac.at (Gerhard Fohler)\nSubject: phone number of wycliffe translators UK\nOrganization: Technical University Vienna, Dept. for Realtime Systems, AUSTRIA\nLines: 15\n\nSorry for bothering with a request almost irrelevant to anyone except for me:\nCould some kind soul provide me with the phone number of\nwycliffe center\nhorsley green high wycomb\nbucks hp 14 3 xl\nI want to surprise a friend of mine staying there, but I don't have the number.\n\nthanks a lot in advance\n\nGerhard\n\n[Obviously email response is best.  What do people think of requests\nlike this?  Unless things are very different in the UK and US, it should\nbe possible to find this out by calling what we call \"information\".\nThe netwide cost of a posting is fairly significant.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3813, "properties": {"category": "comp.windows.x", "text": "From: donaldlf@k9.Rose-Hulman.Edu (Leslie F. Donaldson)\nSubject: Problems using Graphic Context with Athena widgets\nOrganization: Rose-Hulman Institute of Technology\nLines: 15\nDistribution: world\nNNTP-Posting-Host: k9.cs.rose-hulman.edu\nKeywords: athena,colormaps,graphic contex\n\nI am creating a graphics program using the Athena widgets. I use\nXlib routines to install a custom Graphics Contex by obtaining the display,\nand window variables with the XtWindowOfObject() and XtDisplayOfObject().\nThe object was one of the sub widgets.  \n  The problem occurs that whenever a button is pressed or a menu is selected\nthe graphic contex reverts to the orginal one. I tried moving the allocation\nof the graphic context before the allocation of the buttons but nothing\nchanged. I am preforming all of this manipulation before calling \nXtAppMainLoop().\n\nThank you for any help.\nLeslie Donaldson\n\ndonaldlf@cs.rose-hulman.edu\ndonaldlf@nextwork.rose-hulman.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3814, "properties": {"category": "rec.sport.hockey", "text": "From: jake@rambler.Eng.Sun.COM (Jason Cockroft)\nSubject: Re: Playoff predictions\nOrganization: Sun Microsystems, Inc.\nLines: 95\nDistribution: world\nReply-To: jake@rambler.Eng.Sun.COM\nNNTP-Posting-Host: rambler.eng.sun.com\n\n1st round: \n----------\n\nPITT vs NYI:  PITT in 4. \n\nIt looks like a safe bet.  NYI has been bagging it of late.\nNYI and NJD have a showdown Friday night for the honour\nof Pittsburg anyway.  Pigsburg in 4.\n\nWASH vs NJD:  WASH in 6. \nI think that NJD have a solid team and will compete with\nWASH.  I agree though with WASH in 6.\n\nBOS  vs BUF:  BOS  in 5. \nThe B's have been playing awesome hockey in the last\ntwo weeks.  The only question is how long will it last?\nFuhr is a dud.  BOS in 4.\n\nQUE  vs MON:  MON  in 7.\nIt seems to me that MON is much like the VAN - no chemistry.\nThe Habs seem to be not in stride. QUE in 5.  \n\nCHI  vs STL:  CHI in 4. \nSTL should not be in the playoffs. CHI in 4.\n\nDET  vs TOR:  DET in 6.\nI am a diehard Leaf fan but ... It seems that the Leafs\noffense is shutting down in the last week.  Can they\nturn it around against Detroit.  As I recall, the last\ncouple of time these two teams met, the Leafs were pummelled.\nI don't know if Bobbie is allowed in Canada yet.  If he is,\nDET in 5.  If not, DET in 6.\n\nVAN  vs WIN:  WIN in 6.\n\nUpset in the making here.  Another team with bad chemistry.\nThere is something gone foul among Linden, Momesso and Bure.\nWIN in 6.\n\nCAL  vs  LA:  CAL in 5.\nAnybody that says that LA could possibly beet CAL does\nnot watch the Smythe a whole lot.  LA is a bunch of Geritols.\nCAL in 4.\n\n\n2nd round: \n----------\n\nPITT vs WASH: PITT in 4. \nIt seems to me that Pigsburg has some egos on their team.  Their\nsaving grace though is Bowman.  He can put anybody in their place.\nHowever, if PIGS have a quick first round, they may be a little\ntoo high.  WASH could be there for a surprise.  Having said that,\nI will say PITT in 6.\n\nBOS  vs MON:  BOS  in 6.\nMON will not be there.  BOS is surprising me of late. Cam is great.\nThe couple of wins against QUE last week have sold me with the\nB's.  B's in 6.\n\n\nCHI  vs DET:  CHI  in 7.\nYikes.  This will not be pretty.  But DET is running like a machine\nof late.  They've had a non-busy end of the season in which they played\nlike killers.  DET in 6.\n\nWIN  vs CAL:  CAL  in 5.\nCAL has a solid team, a little weak in the nets.  CAL will out\nmuscle WIN.  CAL in 5.\n\n3rd round: \n----------\n\nPITT vs BOS:  PITT in 5. \n\nI hate PITT.  My logic eludes me.  The dark side will take over\nand give BOS the extra push it needs to dump PITT.  There may\nbe something to this - if you think of the rivalry.  BOS in 7.\nCHI  vs CAL:  CHI  in 5. \n\nFinals:\n------\n\nPITT vs CHI: PITT in 5. \n\nNO, no, no.  We have BOS vs DET.  I don't know what to say\nhere.  Both teams will be flying and overdue.  I will go\nwith goaltending and muscle and say DET in 7.\n\n\n-jake.\n\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3815, "properties": {"category": "sci.med", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 45\n\nIn article dpc47852@uxa.cso.uiuc.edu (Daniel Paul Checkman) writes:\n>bruce@Data-IO.COM (Bruce Reynolds) writes:\n>\n>>Anecedotal evidence is worthless.  Even doctors who have been using a drug\n>>or treatment for years, and who swear it is effective, are often suprised\n>>at the results of clinical trials.  Whether or not MSG causes describable,\n>>reportable, documentable symptoms should be pretty simple to discover.  \n\nBut it is quite a leap in logic to observe one situation where anecdotal\nevidence led nowhere and therefore conclude that anecdotal evidence will\nNEVER lead anywhere.  I'm sure somebody here can provide an example where\nanecdotal evidence (and the interpretation of it) was upheld/verified by\nfollow-on rigorous clinical trials.\n\n\n>I tend to disagree- I think anecdotal evidence, provided there is a lot of it,\n>and it is fairly consistent, will is very important.  First, it points to the\n>necessity of doing a study, and second, it at least says that the effects are\n>all psychological (or possibly allergy in this case).  As I've pointed out \n>person's \"make-believe\" can easily be another person's reality...\n\nGood point.  There has been a tendency by some on this newsgroup to \"circle\nthe wagons\" to the viewpoint that anecdotal medical evidence is worthless\n(maybe to counter the claims of those who are presenting anecdotal evidence\nto support controversial subjects, such as the \"yeast hypothesis\").  But\nevidence is evidence - it requires a \"jury\" or a process to sort it out and\ndetermine the truth from the junk.  Medicine must continue to strive to better\nunderstand the workings of the body/mind for the purpose of alleviating\nillness - anecdotal evidence is just one piece of the puzzle;  it is not\nworthless.  Rather, it can help focus limited resources in the right direction.\n\nJon Noring\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3816, "properties": {"category": "comp.windows.x", "text": "From: matt@centerline.com (Matt Landau)\nSubject: Re: Asynchronous X Windows?\nOrganization: CenterLine Software, Inc.\nLines: 45\nDistribution: inet\nNNTP-Posting-Host: 140.239.1.32\n\nIn <ellis.735675321@nova> ellis@nova.gmi.edu (R. Stewart Ellis) writes:\n>>Is there anyway to use X Windows over an async line?  Clearly you could use\n>                                x\n>It is X window.\n\nNo, it isn't.  It is the \"X Window System\", or \"X11\", or \"X\" or any of\na number of other designations accepted by the X Consortium.  In fact,\ndoing \"man X\" on pretty much any X11 machine will tell you:\n\n     The X Consortium requests that the following names  be  used\n     when referring to this software:\n\n                                  X\n                           X Window System\n                             X Version 11\n                     X Window System, Version 11\n                                 X11\n\nThere is no such thing as \"X Windows\" or \"X Window\", despite the repeated\nmisuse of the forms by the trade rags.  This probably tells you something\nabout how much to trust the trade rags -- if they can't even get the NAME\nof the window system right, why should one trust anything else they have \nto say?\n\nWith regard to dialup X11 implementations, there are several.  You can\nbuy serial X11 terminals from a couple of companies, including both \nGraphOn and NCD.  (In fact, I'm composing this from an NCD running X11\nover serial lines across 14.4 kbaud connection.)  \n\nNCD also sells a software-only package that provides XRemote (which is\nNCD's implementation of serial X11) for PC's.  There may be other such \nsoftware packages available.\n\nX11R6 is supposed to include a standardized compression scheme for running\nX11 over low-speed connections.  It's called Low Bandwidth X (LBX), and \nis based on improved versions of the techniques used in NCD's XRemote. \n\nIt seems likely that once LBX is released as a Consortium standard, there\nwill be several vendors willing to supply implementations for various \nsorts of hardware.\n\nFollowups directed to comp.windows.x\n--\n Matt Landau\t\t\tWaiting for a flash of enlightenment\n matt@centerline.com\t\t\t  in all this blood and thunder\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3817, "properties": {"category": "comp.graphics", "text": "From: eylerken@stein.u.washington.edu (Ken Eyler)\nSubject: 3D Animation Station\nArticle-I.D.: shelley.1r75bgINNob9\nDistribution: world\nOrganization: University of Washington, Seattle\nLines: 18\nNNTP-Posting-Host: stein.u.washington.edu\n\n\n\tI am looking for some information about 3D animation stations that\nare currently on the market.  The price of the station can be from 5K-20K, \nbut no more than $20,000.00.  Type of workstation doesnt matter (PC, MAC, \nSGI etc..) .  If you use or have bought/looked at one or can suggest your\ndream machine, then please mail me your configurations.  I need the following.\n\n\t1. Type of station (PC, MAC etc.. )\n\t2. Expandibilty of the machine.\n\t3. Software that can run on it\n\t4. VTR Controller and/or VTR deck model/name.\n\t5. Vendors names and numbers.\n\nThanks in advance.\n\n\t\t\t\t\tKen Eyler\n\t\t\t\t\teylerken@u.washington.edu\n\t\t\t\t\tThe Evergreen State College\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.173+0000", "event": "documents", "entityId": 3818, "properties": {"category": "soc.religion.christian", "text": "From: rayssd!esther@uunet.uu.net (Esther A. Paris)\nSubject: harrassed at work, could use some prayers\nReply-To: esther@demand.ed.ray.com\nOrganization: Raytheon Equipment Division, Marlboro, MA\nLines: 110\n\nMy news feed is broken and I haven't received any new news in 243 hours\n(more than 10 days).  So, if you reply to this, please send private\nemail to the address esther@demand.ed.ray.com -- I have set the\nReply-To line to have that address but I don't know if it will work.\n\n[It depends upon the software, but generally I wouldn't expect\nreply-to to cause an email cc to be sent in addition to a posting.\nYou'll probably need to do something specific, which will vary\ndepending upon your news software.  --clh]\n\nAt any rate, I need some support.  (Much thanks to Jayne K who is\nalready supporting me with kind words and prayers!)\n\nI've been working at this company for eight years in various\nengineering jobs.  I'm female.  Yesterday I counted and realized that\non seven different occasions I've been sexually harrassed at this\ncompany.  Seven times. Eight years. Yesterday was the most recent one;\nsomeone left an X-rated photo of a nude woman in my desk drawer.\n\nI'm really upset by this.  I suppose it could have been worse -- it\ncould have been a man having sex with a sheep or something.\n\nThere was no note.  I do not know if it was:\n\n\t- someone's idea of an innocent joke, that went awry\n\t- someone's sick idea of flirting\n\t- an act of emotional terrorism (that worked!)\n\nI dreaded coming back to work today.  What if my boss comes in to ask\nme some kind of question, I don't know the answer so I take a military\nspecification down off from my shelf to look up the answer, and out\nfalls a picture of a man having sex with a sheep?  I generally have a\nBible on my desk for occasional inspiration; what if I open it up to\nCorinthians and find a picture a la the North American Man Boy Love\nAssociation?  I want to throw up just thinking about this stuff.\n\nI can lock up my desk, but I can't lock up every book I have in the\noffice.  I can't trust that someone won't shove something into my\nbriefcase or my coat pocket when I'm not looking so that I go home to\nfind such a picture, or a threat, or a raunchy note about what someone\nwants to do to my body.\n\nTo make it worse, the entire department went out to lunch yesterday to\ntreat our marvelous secretary to lunch.  The appointed hour for\nleaving was 11:30.  I was working in another building but wanted to go\nto the lunch.  So I returned at 11:25, only to find that ever single\nperson had already left for lunch.  They left at 11:15 or so.  No one\ncould be bothered to call me at the other building, even though my\nnumber was posted.  So, I came back to a department that looked like a\nneutron bomb had gone off and I was the sole survivor.  This, despite\nthe fact that everyone knew how bad I felt about this naked woman being\nleft in my desk drawer.\n\nI need some prayers --- I can't stop crying. I am so deeply wounded\nthat it's ridiculous.\n\nI feel like I'm some kind of sub-human piece of garbage for people to\nreduce me and my sisters to simply sex organs and the sex act.  I feel\nlike I'm a sub-human piece of garbage that's not worthy of a simple\nphone call saying \"We're leaving for Mary's lunch a little early so\nthat Bob can get back for a big 1:00 meeting...\"\n\nPlease pray that my resentments will either go away, or be miraculously\nturned into something positive.  Please pray that whoever is torturing\nme so will stop, and find some healing for him- or herself. Please pray\nfor my being healed from this latest wound (which falls on top of a\nwhole slew of other wounds...).  Please pray that I can find a new job\nin a place where the corporate culture does its best to prevent such\nharrassment from happening in the first place, and swiftly acts\nappropriately when something occurs despite its best precautions. (This\ncompany, in my opinion, has pretty words about how sexual harrassment\nisn't tolerated but when you get right down to it, how is it that one\nfemale engineer can be touched inappropriately, left obsene or\nthreatening notes, left obscene pictures, spoken to lewdly, etc, seven\ntimes in eight years in the same place?  Pretty words from the company\ndo me no good when I'm terrified or healing from the latest assault.)\n\nAnd please pray that I don't turn into an automaton because of this.\nThat's my bad habit: \"ignore it and it will go away\", \"you're not worth\nanyone's time so don't go talking to anyone about this\", \"you're right,\nyou are a sub-human piece of garbage and deserve to be treated this\nway\", \"you are just an object\", \"you prostitute your mind to this\ncompany so why can't others expect you to prostitute your body there as\nwell?\", \"what makes you think women aren't just possessions, and\nnothing more than sex organs and their ability to perform the sex act?\"\nThis is the kind of thinking that can catapault one into a major\ndepressive episode; please pray that these thoughts don't come into\nmy head and stay there, triggering depression.\n\nPlease pray that this latest trauma doesn't come between me and God.\nIn a way, a wound like this is an invitation to a deeper connection to\nGod, and it's also a possible trigger for a spiritual crisis that can\nseparate one mentally from God.  (I know God doesn't drop me from his\nloving hand, but it's awfully easy for me to walk to the edge of the\nhand, look down, think I'm falling and forget that God's still holding\non to me.)\n\nAlthough this probably isn't entirely appropriate for this newsgroup,\nI really can use the kind of loving support you all provide.  For this\nreason I hope good Mr. Moderator allows me this latest indulgence.  After\nall, he's allowed me the thermometer note, and a few other off-the-wall\ntopics.\n\nThanks in advance to everyone for your support and prayers.  Peace to you,\nEsther\n\n-- \nEsther Paris, Raytheon Equipment Div., Marlboro, MA   esther@demand.ed.ray.com\n\"In his esteem, nothing that was large enough to please, was too small\nfor the fingers.\" -- John Kitto, \"The Lost Senses\", 1848\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3819, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: aaron_bratcher@fpm.uchicago.edu (Aaron L. Bratcher)\nSubject: Appletalk hookup?\nArticle-I.D.: fpm-mac-.aaron_bratcher-060493075518\nOrganization: University of Chicago\nLines: 3\n\nWhat ways are there to hook up to an appletalk network to use an Apple\nLaserWriter?  Is there a way I can use an AppleShare File Server also?  The\nless memory used the better. Thanks. Any help greatly appreciated.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3820, "properties": {"category": "talk.religion.misc", "text": "From: Thyagi@cup.portal.com (Thyagi Morgoth NagaSiva)\nSubject: Re: OTO, the Ancient Order of Oriental Templars\nOrganization: The Portal System (TM)\nDistribution: world\n  <1993Apr14.130150.28931@lynx.dac.northeastern.edu> <79615@cup.portal.com>\n  <1qn5rn$q7p@csugrad.cs.vt.edu>\nLines: 144\n\n930418\n\nDo what thou wilt shall be the whole of the Law. [Honestly.]\nThe word of Sin is Restriction. [Would I kid you?]\n\n\nDoes one man's words encompass the majestic vision of thousands\nof individuals?  Quoting a man is not the same as quoting the\nOrder.  Taken out of context, words can be interpreted much\ndifferently than had one applied them within the confines of\ntheir original expression.\n\nI think this is the case regarding Hymenaeus Beta, Frater Superior \nof the Order to which I belong.  When he included that bit\nfrom Merlinus X' he did us all a service.  He showed us the extremes\nto which Order members have been known to go in their fervor.\nI have little knowledge regarding Reuss' background, but surely\nhe was an unusual man, and he was an important force in the Order \nfor many years.\n\nYet as people change so do Orders change, and while we look back\nso carefully at the dirty laundry of O.T.O. remember that this is\nonly the surface skim and that many perspectives are now encompassed\nwhich extend beyond any one individual.  I hope to show that there\nwas and is much room for a difference of opinion within the Order\nitself, perhaps by testing the limits myself.\n\n\nLet us examine this issue a bit more closely....\n\n\"In 1895, Karl Kellner (1850-1905), a wealthy Austrian industrialist\nand paper chemist, as well as a high-grade Mason, founded the Ordo\nTempli Orientis.  Kellner had traveled widely in the East, where he\nmet three adepts who instructed him specific magical practices.  \nKellner's efforts to develop the Order were later assisted by Franz\nHartmann, Heinrich Klein and Theodore Reuss, who had worked together\nprior to joining the O.T.O.  The Order was first proclaimed in 1902\nin Reuss's Masonic publication, 'Oriflamme'.  On Kellner's death,\nReuss succeeded him as Outer Head [O.H.O.].  The 'Jubilee' edition of\nthe 'Oriflamme', published in 1912, announced that the Order taught\nsecret of sexual magic.\n \n\"Theodore Reuss was an interesting character.  Born June 28, 1855 in\nAugsburg, he entered Masonry in 1876.  He was a singer, journalist and\npossibly a spy for the Prussian political police, infiltrating the Socialist\nLeague founded by Karl Marx's daughter and her husband.  Reuss was\nlater associated with William Wynn Westcott, a leader of the Golden\nDawn, who later introduced him to John Yarker.  Yarker chartered Reuss to\nfound the Rites of Memphis and Mizraim in Germany.  After several\nattempts to concretize various Masonic Rites, Reuss settled on the\ndevelopment of the O.T.O.\n\n\"The Order experienced reasonably steady growth under Reuss' leadership.\nFor example, he chartered Papus in France, Rudolph Steiner in Berlin\nand H. Spencer Lewis in the USA.  In 1912, the historic meeting between\nReuss and Crowley occurred.  Crowley wrote that Reuss came to him and\naccused him of revealing Order secrets.  When Crowley looked at it afresh,\nthe initiated interpretation of sexual magick unfolded itself to him for\nthe first time.  Reuss appointed Crowley as Supreme and Holy King of all\nthe English speaking world, and it was this authorization that he invoked\nwhen publishing the material of the Equinox.\n\n\"Reuss resigned as Outer Head of the Order in 1922 after suffering a\nstroke and named Crowley his successor.  All was well until 1925 when\n_The Book of the Law_ was translated into German.  There was a break\nin the continuity of the Order.  Manyk members split with the new O.H.O.\nover the book, which Crowley was actively promulgating through the Order.\nHe had earlier revise dthe Order rituals at Reuss's request, deeply\ninfusing the doctrines of the New Aeon revelation.\"\n\n_An Introduction to the History of the O.T.O._, by Ad Veritatem IX'\n\nWithin _Equinox III:10_, Edited by \n  Hymenaeus Beta, Frater Superior, Rex Summus Sanctissimus,\n    Caliph of the United States of America,\n      Published by Samuel Weiser, 1990.\n\n\n\nThere are many possible reasons that our Frater Superior included this\nmaterial in _Equinox III:10_.  And this is the real point, is it not?\nWhy did he wish to publish such things about the history of his own\norganization?  Does he represent a dogmatic threat to the principle\nof Thelema?  Or is he exercising his True Will and putting forth very\ncomplex pictures with no easy answers?  A picture which leaves room\nfor very many interpretations.\n\nIt is quite easy for me to see, for example, that all of O.T.O. derived\nout of the dribble of faltering Masonry, purchased by clever hucksters\nwith an ounce of courage and some writing ability to aid them.  And I\ncan take that all the way down to our present Caliph, whose feeble\nsupport of the 'Law of Thelema' is laughable at best.\n\nWould I be thrown out of the Order for speaking in this way?  \nWill I?  \nI think not.\nWhy?  Because my Frater will see it as a perspective, an interjection\nI am using as an example.  My illustration shows that we may express things\nin the context of a larger work and the true significance of this may be\nquite difficult to apprehend at first.\n\nSo it may be with OTO and Merlinus X'.  Please look O.T.O. more carefully.\nI do not support Reuss's words myself, as I am not qualified to assess\nthem, and I am critical of their pomposity.  If I who am a member of\nthe Order take such a stand and am allowed to continue doing so, then\nwhat can this say about the health of the Order?  Does it mean that\nthe Order has 'gone soft' and abandoned its moral principles?  Or\ndoes it mean that it is strong in its ability to let the will of\nuniversal kinship arise on its own, not shackled by some dogmatic\nrequirement?  How shall we resolve these two possibilities?\n\n\nI find a high calibre of individual associated with Ordo Templi Orientis.\nThey are often quite intelligent and sometimes very well versed in arcane\nor usual information.  They are quite often artists and geniuses.  \nHaving met some 20 longstanding members in the SF Bay Area (many who are or\nwere very heavily involved with the Order), I can vouch for the integrity\nof the organization as it stands.\n\nI have sometimes questioned the policy of Hymenaeus Beta.  In these moments \nI followed my intuition, and I've found little to stop me from requesting\na Second initiation from a different O.T.O. body.  I'm happily participating\nin social groups (Feasts or Initiations) and have come to know the Gnostic\nMass well enough for my tastes.\n \n\nThis doesn't make me an authority on Order politics and explanations, however.\nI can only hypothesize and relay to you what I understand based on my\nlimited contact with other members.\n\nI urge you not to take the words of Merlinus X too far.  There are many\nways to interpret words, and many people who have become involved with\nthe Order feel very strongly about the sanctity of personal freedom\nand the preservation of individual vision.\n\nI welcome other comment on this issue and will be writing more in response\nto other posts in this thread.\n\n\nInvoke me under my stars.  Love is the law, love under will.\n\nI am I!\n\nFrater (I) Nigris (DCLXVI) CCCXXXIII\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3821, "properties": {"category": "sci.med", "text": "From: DEHP@calvin.edu (Phil de Haan)\nSubject: Re: chronic sinus and antibiotics\nKeywords: sinus, antibiotics, antibacterial\nNntp-Posting-Host: pcdehp\nOrganization: Calvin College\nDistribution: na\nLines: 18\n\nIn article <1qk708INNa12@mojo.eng.umd.edu> georgec@eng.umd.edu (George B. Clark) writes:\n>You can also swab the inside of your nose with Bacitracin using a\n>Q tip. Bacitracin is an antibiotic that can be bought OTC as an\n>ointment in a tube. The doctor I listen to on the radio says to apply\n>it for 30 days, while you are taking other antibiotics by mouth.\n\nI have a new doctor who gave me a prescription today for something called \nSeptra DS.  He said it may cause GI problems and I have a sensitive stomach \nto begin with.  Anybody ever taken this antibiotic.  Any good?  Suggestions \nfor avoiding an upset stomach?  Other tips?\n\n\n       Phil de Haan (DoD #0578) Why yes.  That is my 1974 Honda CL360.\n=============================================================================\n  \"That's the nature of being an executive in America.  You have to rely on\n    other people to do something you used to do yourself.\" -- Donald Fehr,\n        executive director, Major League Baseball Players Association.\n=============================================================================\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3822, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: The Inimitable Rushdie\nOrganization: Case Western Reserve University\nLines: 20\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <115686@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n\n>No, I say religious law applies to those who are categorized as\n>belonging to the religion when event being judged applies. This\n\n\n\tWho does the categorizing?\n\n\t\n---  \n\n  \" I'd Cheat on Hillary Too.\"\n\n   John Laws\n   Local GOP Reprehensitive\n   Extolling \"Traditional Family Values.\"\n\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3823, "properties": {"category": "talk.politics.mideast", "text": "From: waldo@cybernet.cse.fau.edu (Todd J. Dicker)\nSubject: Re: Israel's Expansion II\nOrganization: Cybernet BBS, Boca Raton, Florida\nLines: 36\n\nab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n> waldo@cybernet.cse.fau.edu  writes:\n> > ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n> > \n> > > First of all I never said the Holocaust. I said before the\n> > > Holocaust. I'm not ignorant of the Holocaust and know more\n> > > about Nazi Germany than most people (maybe including you). \n> > \n> > Uh Oh!  The first sign of an argument without merit--the stating of one's \n> > \"qualifications\" in an area.  If you know something about Nazi Germany, \n> > show it.  If you don't, shut up.  Simple as that.\n> > \n> > > \tI don't think the suffering of some Jews during WWII\n> > > justifies the crimes commited by the Israeli government. Any\n> > > attempt to call Civil liberterians like myself anti-semetic is\n> > > not appreciated.\n> > \n> > ALL Jews suffered during WWII, not just our beloved who perished or were \n> > tortured.  We ALL suffered.  Second, the name-calling was directed against\n> > YOU, not civil-libertarians in general.  Your name-dropping of a fancy\n> > sounding political term is yet another attempt to \"cite qualifications\" \n> > in order to obfuscate your glaring unpreparedness for this argument.  Go \n> > back to the minors, junior.\n> \tAll humans suffered emotionally, some Jews and many\n> others suffered physically. It is sad that people like you are\n> so blinded by emotions that they can't see the facts. Thanks\n> for calling me names, it only assures me of what kind of\n> ignorant people I am dealing with. I included your letter since\n> I thought it demonstrated my point more than anything I could\n> write. \n\n-----\nWhen you're willing to actually support something you say with fact or \nargument rather than covering up your own inadequacies with feigned \noffense, let me know.  Otherwise, back to your own league, son.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3824, "properties": {"category": "rec.motorcycles", "text": "From: fields@cis.ohio-state.edu (jonathan david fields)\nSubject: Misc./Buying Info. Needed\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 24\nDistribution: usa\nNNTP-Posting-Host: frigate.cis.ohio-state.edu\n\nHi. I have been thinking about buying a Motorcycle or a while now and I have\nsome questions:\n\n-Is there a buying guide for new/used motorcycles (that lists reliability, how\nto go about the buying process, what to look for, etc...)?\n-Is there a pricing guide for new/used motorcycles (Blue Book)?\n\nAlso\n-Are there any books/articles on riding cross country, motorcycle camping, etc?\n-Is there an idiots' guide to motorcycles?\n\nANY related information is helpful. Please respond directly to me.\n\nThanks a lot.\n-Jordan\n\nMe also.\n\t\t\t\t\tThanks,\n\n\t\t\t\t\tJonathan D. Fields\n\t\t\t\t\tfields@cis.ohio-state.edu\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3825, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: soltys@radonc.unc.edu (Mitchel Soltys)\nSubject: Hard Disk Utilities?\nOriginator: soltys@melanoma.radonc.unc.edu\nNntp-Posting-Host: melanoma.radonc.unc.edu\nOrganization: Radiation Oncology, NCMH/UNC, Chapel Hill, NC\nDistribution: usa\nLines: 26\n\n\nHi to all you PC gurus!\n\nI'm new to these groups and so please forgive me if my questions are frequently\nasked, but I don't know the answer :) I've been recently having some problems\nwith my 386 computer with a Seagate 40 meg hard drive. I occasionally find\ncorrupted files, but most of the time programs work fine. Are there any utilities\nthat are easily available that can help me determine whether or not the problem\nis a result of the hard drive vs an ill-behaved program or some other hardware\nitem? Are there utilites to determine whether or not the hard drive is properly\naligned etc? As might be expected, I would greatly appreciate any help on this\nmatter. I'm considering just reformatting the disk and reinstalling everything\n(and hoping that will fix the problem), but I would like to have some assurance\nof what the problem cause is. \n\nAlso, can someone give me an opinion on DOS 6.0? Are the compression and\ndefragmentation routines good enough to consider the upgrade if I don't have\nthose routines already (as opposed to buying them separately)? \n\n\nMuch thanks in advance for any help.\n\nMitchel Soltys\nsoltys@radonc.unc.edu\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3826, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kris@circ.upenn.edu (Kris Gupta)\nSubject: Re: NDW Norton Desktop for Windows\nReply-To: kris@circ.upenn.edu\nOrganization: Cardiothoracic Imaging Research Center\nLines: 20\nNntp-Posting-Host: katsuru.circ.upenn.edu\n\nIn article 2773@leland.Stanford.EDU, shiva@leland.Stanford.EDU (Matt Jacobson) writes:\n...\n\n> I have taken it out of win.ini, but it still pops up running with windows.\n> I did a big search and found reference to it in ndw.ini, system.ini and\n> progman.ini.  Removing it here causes a failure when starting up windows\n> (progrman.ini has a \"group 7 = ...ndw.exe...\" which can't be deleted.)\n> \n> Is there anyone familiar with NDW who can tell me how to turn it off??\n> \n\nOne of the items in the group folder (typically called Norton Desktop Applications)\nis labelled \"Norton Desktop Uninstall\". Need I say more!\n\n---\nKris B. Gupta  - Cardiothoracic Imaging Research Center\nDept Radiology - Hospital of U of Pennsylvania\nInternet: kris@gynko.circ.upenn.edu\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3827, "properties": {"category": "soc.religion.christian", "text": "From: rsteele@adam.ll.mit.edu (Rob Steele)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nReply-To: rob@ll.mit.edu\nOrganization: MIT Lincoln Laboratory\nLines: 17\n\nIn article <Apr.10.05.32.36.1993.14391@athos.rutgers.edu>  \ngsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n\n> We are _just_ animals.  We need sleep, food, and we reproduce.  And \n> we die.\n\nI agree we need sleep & etc, but I disagree we are _just_ animals.   \nThat statement is a categorical negative; it's like saying there are  \n_no_ polkadoted elephants.  It may be true but one would have to be  \nomniscient to know for sure.\n\n------------------------------------------------------------\nRob Steele                 In coming to understand anything \nMIT Lincoln Laboratory    we are rejecting the facts as they\n244 Wood St., M-203       are for us in favour of the facts\nLexington, MA  02173      as they are.    \n617/981-2575                              C.S. Lewis\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3828, "properties": {"category": "comp.windows.x", "text": "From: baldwa@antietam.adobe.com (Sanjay Baldwa)\nSubject: X support for pressure sensitive tablet\nReply-To: baldwa@adobe.com\nOrganization: Adobe Systems, Mountain View, CA, USA \nDistribution: comp\nLines: 7\n\nAre there any vendors supporting pressure sensitive tablet/pen with X? I\nwill appreciate any pointers.\n\nThanks, Sanjay\n\n--\nbaldwa@adobe.com  or  ..!decwrl!adobe!baldwa\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3829, "properties": {"category": "comp.graphics", "text": "From: john@goshawk.mcc.ac.uk (John Heaton)\nSubject: POV reboots PC after memory upgrade\nReply-To: john@nessie.mcc.ac.uk\nOrganization: MCC Network Unit\nLines: 13\n\nUp until last week, I have been running POVray v1.0 on my 486/33 under DOS5\nwithout any major problems.  Over Easter I increased the memory from 4Meg to\n8Meg, and found that POVray reboots the system every time under DOS5.  I had\na go at running POVray in a DOS window when running Win3.1 on the same system\nand it now works fine, even if a lot slower.  I would like to go back to \nusing POVray directly under DOS, anyone any ideas???\n\nJohn\n-- \n                 John Heaton   -   NRS Central Administrator\n      MCC Network Unit, The University, Oxford Road, Manchester,  M13-9PL\n            Phone: (+44) 61 275 6011   -   FAX: (+44) 61 275 6040\n                   Packet: G1YYH @ G1YYH.GB7PWY.#16.GBR.EU\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3830, "properties": {"category": "talk.religion.misc", "text": "From: bobsarv@microsoft.com (Bob Sarver)\nSubject: Re: Question for those with popular morality\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 57\n\n\n(hudson)\n>/These people hurt their own bodies.  Why can't they hurt other peoples bodies\n>/too?  \n>\n(me)\n>Because other people might not *want* to be hurt, Hudson.  And hurting\n>them against their will is a violation of choice.\n\n/(hudson)\n/So. Why is someone elses will such a big deal if morality is all relative.\n\n\nI don't believe I ever said that morality was all relative.\n\nWhat I said was that I can make my mind up on my own, thank you, and that \nyou don't have the right to tell others what to think.\n\nI think that you will find that in most moral systems, there is \na respect for human life and the dignity of the person.  It is all the\nstuff besides these points that forms the core of the disagreement between \nprimitive moral absolutists like yourself and the rest of us.\n\n\n\n/(hudson)\n/Maybe (the insane lover of pain might reason) if other people experienced\n/enough pain, they might learn to enjoy it, too.  \n\nFine.  There is still the clinical definition of crazy.  And this also\ninvolves a violation of free will, because the insane lover of your\nlittle example would be inflicting pain on a non-willing subject.\n\nTry again.\n\n\n\n\n(hudson)\n>/You have to have other premises to derive this.  \n>\n(me)\n>No, you don't.  That is a patently false statement.\n\n/(hudson)\n/You have to have some sort of premise about choice or self-awareness.\n\n\nNo, you do not.  I demonstrated to you the example of the football\nteam which doesn't require premises about freedom of choice or \nsentience/self-awareness.  \n\nAs I said, you are wrong, and you don't seem to know much about moral \nsystems.  If I were you, I would take David Bold's suggestion and do some \nreading on the subject before you try preaching about it.\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3831, "properties": {"category": "rec.autos", "text": "From: swdwan@napier.uwaterloo.ca (Donald Wan)\nSubject: $ 80 SVX OIL CHANGE\n \nOrganization: University of Waterloo\nLines: 17\n\n\n\n\n\n My friend brought a subaru SVX recently.  I had drove it for couples times and I\nthink its a great car, esp on snow.  However when she took it to a local Subaru\ndealer for a oil change, the bill came out to be about 80 dollars.  The dealer\ntold us it is because to change the oil filter on a SVX it is necessary to\ndisassemble a metal cover under the engine and that took an hour of labour.\nAt first, we think we are being ripped off so she phone to a dealer in Toronto\nbut found out the they are charging roughly the same price.  So is there any\nSVX owner out there that has the same problem ?  And if the oil change story is\ntrue, then the engineer of Subaru looks pretty stubid to me. By the way, the car\nlooks great.\n\nSWD Wan.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3832, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: swood@vela.acs.oakland.edu (Scott Wood)\nSubject: Western Digital HD info needed\nOrganization: Oakland University, Rochester, Michigan, U.S.A.\nLines: 34\nNNTP-Posting-Host: vela.acs.oakland.edu\n\nI was recently loaned an older Dec 210 286 at work, and I have the option\nof adding an additional Western Digital Hard-drive to the machine.  The\nexisting drive is currently a Western Digital as well, and is working fine,\nbut I do not have any documentation available for configuring the master/slave\nrelationship necessary for a c: d: drive setup.\n\nThe first drive is currently formatted to Tandy Dos v3.3 but I am eventually\ngoing to upgrade both to MS Dos v 5.0\n\nThe drives themselves are both model number WD95044-A circa 5-07-1991\nThey are 782 cyl 4 head drives.  A note to add is that there is no exact\nconfiguration for these in my current bios, but it seems to work at a\nsetting 17 (977 cyl 5 head, 300 write_pre, 977 landing zone).\nThere are three pairs of jumper pins on the back that I presume are\nfor setting up the master/slave.  Originally, the drive in the machine\nhad none.  Currently, I was suggested to try the far right (looking at the\nback) for master and the middle jumper for the slave.\n\nWhen booted, the reinitialize seems to puke accessing the d: drive.  It does\nflicker about three times on the second drive, but then gives the error.  \nHopefully the problem is as simple as the drive not being formatted, but not\nbeing a person who has ever had to actual format and unformatted drive, I\nwould not even know how to do that.\n\nAny and all help on this is great fully appreciated.  If not, a number\nfor Western Digital might just do as good!\n\nswood\n\n-- \n       Hunting over in Michigan?  Don't Despair - NO CLOSED SEASON ON:\n         opossum, porcupine, weasel, red squirrel, skunk, starlings,\n        feral pigeons, English sparrows, ground squirrel & woodchuck\n          Anyway trout season opens the last Saturday this month.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3833, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mori@volga.mfd.cs.fujitsu.co.jp (Tsuyoshi Mori)\nSubject: I want use DeskJet on System7\nOrganization: FUJITSU.Ltd., Kawasaki, Japan.\nLines: 15\nDistribution: comp\nNNTP-Posting-Host: ceres.mfd.cs.fujitsu.co.jp\n\nI used HP DeskJet with Orange Micros Grappler LS on System6.0.5.\n\nBut now I update system 6.0.5 to System7 with Kanji-Talk 7.1,\nthen I can not print by my DeskJet.\n\nIs the Grappler LS old ?\nCan I use DeskJet on System7 ?\n\nPlease tell me how to use DeskJet on System7.\n\nThank you\n\n--\nFROM JAPAN mori@volga.mfd.cs.fujitsu.co.jp\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3834, "properties": {"category": "sci.med", "text": "From: heart@access.digex.com (G)\nSubject: cholistasis(sp?)/fat-free diet/pregnancy!!\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 80\nNNTP-Posting-Host: access.digex.net\n\nHi,\n\nI've just returned from a visit with my OB/GYN and I have a few \nconcerns that maybe y'all can help me with.  I've been seeing \nher every 4 weeks for the past few months (I'm at week 28) \nand during the last 2 visits I've gained 9 to 9 1/2 pounds every \n4 weeks.  She said this was unacceptable over any 4 week period. \nAs it stands I've thus far gained 26 pounds.  Also she says that \nthough I'm at 28 weeks the baby's size is 27 weeks, I think she \nmentioned 27 inches for the top of the fundus.  When I was 13 \nweeks the baby's size was 14 weeks.  I must also add, that I had \nan operation a few years ago for endometriosis and I've had no \nproblems with endometriosis but apparently it is causing me pain \nin my pelvic region during the pregnancy, and I have a very \ndifficult time moving, and the doc has recommended I not walk or \nmove unless I have to. (I have a little handicapped sticker for \nwhen I do need to go out.) \n\nAnyway that's 1/2 of the situation the other is that almost from \nthe beginning of pregnancy I was getting sick (throwing up) about \n2-3 times a day and mostly it was bile that was being eliminated.  \n(I told her about this).  I know this because I wasn't eating \nvery much due to the nausea and could see the 'results'.  Well \nnow I only get sick about once every 1-2 weeks, and it is still bile \nrelated.  But in addition I had begun to feel movement near my \nupper right abdomen, just below the right breast, usually when I \nwas lying on my right side.  It began to get worse though because \nit started to hurt when I lay on my right side, and then it hurt  \nno matter what position I was in.  Next, I noticed that when I \nate greasy or fatty foods I felt like my entire abdomen had \nturned to stone, and the pain in the area got worse.  However if \nI ate sauerkraut or vinegar or something to 'cut' the fat it \nwasn't as much of a problem.\n\nSo the doctor says I have cholistatis, and that I should avoid \nfatty foods.  This makes sense, and because I was already aware \nof what seemed to me this cause and effect relationship I have \nbeen avoiding these foods on my own.  But I'm still able to eat \nfoods with Ricotta cheese for instance and other low fat foods.  \n\nBut doc wants me to be on a non-fat diet.  This means no meat \nexcept fish and chicken w/o skin (I do this anyway).  No nuts, \nfried food, cheese etc.  I am allowed skim milk.  She said I \nshould avoid anything sweet (e.g. bananas).  Also I must only \nhave one serving of something high in carbohydrates a day ( \npotatoes, pasta, rice)!  She said I can't even cook vegetables in \na little bit of oil and that I should eat vegetables raw or \nsteamed.  I'm concerned because I understand you need to have \nsome fat in your diet to help in the digestive process.  And if \nI'm not taking in fat, is she expecting the baby will take it \nfrom my stores?  And why this restriction on carbohydrates if \nshe's concerned about fat?  I'm not clear how much of her \nrecommendation is based on my weight gain and how much on \ncholistatis, which I can't seem to find any information on.  She \noriginally said that I should only gain 20 pounds during the \nentire pregnancy since I was about 20 lbs overweight when I \nstarted.  But my sister gained 60 lbs during her pregnancy and \nshe's taken it all off and hasn't had any problems.  She also \nasked if any members of my family were obese, which none of them \nare.  Anyway I think she is overly concerned about weight gain, \nand feel like I'm being 'punished' by a severe diet.  She did \nwant to see me again in one week so I think she the diet may be \ntemporary for that one week. \n\nWhat I want to know is how reasonable is this non-fat diet?  I \nwould understand if she had said low-fat diet, since I'm trying \nthat anyway, even if she said really low-fat diet.  I think she \nassumes I must be eating a high-fat diet, but really it is that \nbecause of the endometriosis and the operation I'm not able to \nuse the energy from the food I do eat. \n\nAny opinions, info and experiences will be appreciated.  I'm \ntruly going stark raving mad trying to meet this new strict diet \nbecause fruits and vegetables go through my system in a few \nminutes and I'll end up having to eat constantly.  Thus far I \ndon't find any foods satisfying.\n\nThanks \n\nG\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3835, "properties": {"category": "sci.crypt", "text": "From: tcmay@netcom.com (Timothy C. May)\nSubject: Re: The source of that announcement\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: Tin 1.1 PL5\nLines: 37\n\nMarc Horowitz N1NZU (marc@mit.edu) wrote:\n: The message from the NIST about the clipper chip comes from the\n: following address:\n: \n: \tclipper@csrc.ncsl.nist.gov (Clipper Chip Announcement)\n: \n: Just who is that, I asked myself, or rather, I asked the computer.\n: \n:     % telnet csrc.ncsl.nist.gov 25\n...list of name elided for brevity......\n: \n: Well, isn't that interesting.  Dorothy Denning, Mitch Kapor, Marc\n: Rotenberg, Ron Rivest, Jim Bidzos, and others.  The Government, RSA,\n: TIS, CPSR, and the EFF are all represented.  I don't suppose anybody\n: within any of these organizations would care to comment?  Or is this\n: just the White House's idea of a cruel joke on these peoples' inboxes?\n\nI know that at least one person on that list says the first he heard\nof Clipper was in the Friday morning newspaper! And another has\nalready fired off a letter of protest to NIST.\n\nMy point? I suspect this list, interesting as it is for various\nreasons, does not represent the cabal that put this proposal together.\nSome of them, yes. Others, no. \n\nThis may be nothing more than a mailing list of people who get\ncrypto-related announcements from NSA, er, I mean \"NIST.\"\n\n-Tim May\n-- \n..........................................................................\nTimothy C. May         | Crypto Anarchy: encryption, digital money,  \ntcmay@netcom.com       | anonymous networks, digital pseudonyms, zero\n408-688-5409           | knowledge, reputations, information markets, \nW.A.S.T.E.: Aptos, CA  | black markets, collapse of governments.\nHigher Power: 2^756839 | Public Key: PGP and MailSafe available.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3836, "properties": {"category": "talk.politics.misc", "text": "From: gdnikoli@undergrad.math.uwaterloo.ca (Greg Nikolic)\nSubject: Re: Damn Furriners Be Taken Over\nOrganization: University of Waterloo\nLines: 59\n\nIn article <Apr.2.23.41.04.1993.607@romulus.rutgers.edu> kaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n>In article <1pa6pt$63r@access.digex.com> hess@access.digex.com (Paul Hess) writes:\n>> that drag the US down and cause problems at home and abroad.\n>Rank balderdash!  America's reputation abroad has become tarnished\n>because of feckless and pusillanimous cowards who apparently do not\n>have the requisite gonads to stand up for American honor and dignity.\n\n    Don't be ridiculous, Kaldis. I suggest you give the \"Ugly American\"\nconcept, which I can easily see you demonstrating, a good hard second look.\n\n>> The American Way is not the ONLY way, it's not necessarally the BEST\n>> way, and it is incredibly arrogant to even think that.\n>\n>The American Way may not be the only way, and you may not consider it\n>to be necessarily the best way, but, by God, it's _OUR_ way and we're\n>going to stick with it!  If you can't go along with the program, then\n>perhaps you should consider moving elsewhere.\n\n    Dear God. Didn't this die out in the fifties with McCarthy and the\nblacklists?\n\n>> I've spent quite a bit of time in different provinces of Canada and\n>> let me tell you, it is very refreshing to spend time with people who\n>> are not full of arrogant nationalism and empty patriotism.\n>That is exactly the _PROBLEM_ with Canadians!  They don't stand for\n>anything with certitude.\n\n    Didn't your mother ever teach you not to generalize? I am a Canadian, and\nI stand up for _too many_ things with _too much_ certitude. \n\n>> The Canadians I know well enough to say this about, seem to have a\n>> great deal of pride in their provinces and their country, but they\n>> aren't blinded by flags and ideals like many Americans are.\n>Could this be because they are bereft of ideals?\n\n    Uh huh. This must explain the world reknowned, record low American crime\nrate. I see now, it's all becoming so clear to me.\n\n>> Well, I've said too much,\n>Yes you have.\n\n    No he hasn't.\n\n>> but I was so angered by your words that I felt I had to say something.\n>> Sorry to intrude.\n>You pipsqueak!  You mouse!  If you are sorry to intrude then why do\n>it?  Don't you have the courage of your convictions?  Hell, do you\n>even have any convictions to start with?  What kind of example of\n>manly dignity is this?  Sheesh!\n\n    Remarkable audacity and misguidance. What you take for your own courage,\nsir, is nothing more than simple loud-mouthedness coupled with unrestrained\nbragging.\n\n-- \n     \"Please allow me to introduce myself.               SYMPATHY \n      I'm a man of wealth and taste.                   FOR THE DEVIL\n      I've been around for long, long years.            the Laibach  \n      Stolen many a man's soul, and faith.\"               remixes\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3837, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bo@horus.cem.msu.EDU (Bo Peng)\nSubject: Re: More Diamond SS 24X\nOrganization: Michigan State University\nLines: 30\nNNTP-Posting-Host: horus.cem.msu.edu\n\nFrom article <1993Apr20.195853.16179@samba.oit.unc.edu>, by dil.admin@mhs.unc.edu (Dave Laudicina):\n> Has anyone experienced a faint shadow at all resolutions using this\n> card. Is only in Windows. I have replaced card and am waiting on \n> latest drivers. Also have experienced General Protection Fault Errors\n> in WSPDPSF.DRV on Winword Tools Option menu and in WINFAX setup.\n> I had a ATI Ultra but was getting Genral Protection Fault errors\n> in an SPSS application. These card manufactures must have terrible\n> quality control to let products on the market with so many bugs.\n> What a hassle. Running on Gateway 2000 DX2/50.\n> Thx Dave L\n> \n>  \nYou're using drivers version 2.02 or earlier. The latest is 2.03, available\nfrom their BBS or by snailmail. It at least fixes the WfW problem.\n\nThe reason I wanted to reply in public instead of private mail is because\nof following: I talked to their tech support a few days ago and was told\nthat I can expect a new version near the end of the month. Which should be\nabout now...\n\nHowever, I have a problem when switching back from a DOS session in standard\nmode. Apparently they don't know of this problem and seem to be surprised\nwhy anybody would want to use standard mode at all.\n\n\nIt's a great card for the price, at least when I bought it. Now there may be\nbetter alternatives.\n\n\nBo Peng\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3838, "properties": {"category": "talk.politics.mideast", "text": "From: nstramer@supergas.dazixco.ingr.com (Naftaly Stramer)\nSubject: THE HAMAS WAY of DEATH\nNntp-Posting-Host: supergas\nReply-To: nstramer@dazixco.ingr.com\nOrganization: Intergraph Electronics\nLines: 104\n\n\n                     THE HAMAS WAY of DEATH\n \n     (Following is a transcript of a recruitment and training\nvideotape made last summer by the Qassam Battalions, the military\narm of Hamas, an Islamic Palestinian group. Hamas figures\nsignificantly in the Middle East equation. In December, Israel\ndeported more than 400 Palestinians to Lebanon in response to\nHamas's kidnapping and execution of an Israeli soldier. A longer\nversion appears in the May issue of Harper's Magazine, which\nobtained and translated the tape.)\n \n     My name is Yasir Hammad al-Hassan Ali. I live in Nuseirat [a\nrefugee camp in the Gaza Strip]. I was born in 1964. I finished\nhigh school, then attended Gaza Polytechnic. Later, I went to work\nfor Islamic University in Gaza as a clerk. I'm married and I have\ntwo daughters.\n     The Qassam Battalions are the only group in Palestine\nexplicitly dedicated to jihad [holy war]. Our primary concern is\nPalestinians who collaborate with the enemy. Many young men and\nwomen have fallen prey to the cunning traps laid by the [Israeli]\nSecurity Services.\n     Since our enemies are trying to obliterate our nation,\ncooperation with them is clearly a terrible crime. Our most\nimportant objective must be to put an end to the plague of\ncollaboration. To do so, we abduct collaborators, intimidate and\ninterrogate them in order to uncover other collaborators and expose\nthe methods that the enemy uses to lure Palestinians into\ncollaboration in the first place. In addition to that, naturally,\nwe confront the problem of collaborators by executing them.\n     We don't execute every collaborator. After all, about 70\npercent of them are innocent victims, tricked or black-mailed into\ntheir misdeeds. The decision whether to execute a collaborator is\nbased on the seriousness of his crimes. If, like many\ncollaborators, he has been recruited as an agent of the Israeli\nBorder Guard then it is imperative that he be executed at once.\nHe's as dangerous as an Israeli soldier, so we treat him like an\nIsraeli soldier.\n     There's another group of collaborators who perform an even\nmore loathsome role -- the ones who help the enemy trap young men\nand women in blackmail schemes that force them to become\ncollaborators. I regard the \"isqat\" [the process by which a\nPalestinians is blackmailed into collaboration] of single person as\ngreater crime than the killing of a demonstrator. If someone is\nguilty of causing repeated cases of isqat, than it is our religious\nduty to execute him.\n     A third group of collaborators is responsible for the\ndistribution of narcotics. They work on direct orders from the\nSecurity Services to distribute drugs as widely as possible. Their\nvictims become addicted and soon find it unbearable to quit and\nimpossible to afford more. They collaborate in order to get the\ndrugs they crave. The dealers must also be executed.\n     In the battalions, we have developed a very careful method of\nuncovering collaborators, We can't afford to abduct an innocent\nperson, because once we seize a person his reputation is tarnished\nforever. We will abduct and interrogate a collaborator only after\nevidence of his guilt has been established -- never before. If\nafter interrogation the collaborator is found guilty beyond any\ndoubt, then he is executed.\n     In many cases, we don't have to make our evidence against\ncollaborators public, because everyone knows that they're guilty.\nBut when the public isn't aware that a certain individual is a\ncollaborator, and we accuse him, people are bound to ask for\nevidence. Many people will proclaim his innocence, so there must be\nirrefutable proof before he is executed. This proof is usually\nobtained in the form of a confession.\n     At first, every collaborator denies his crimes. So we start\noff by showing the collaborator the testimony against him. We tell\nhim that he still has a chance to serve his people, even in the\nlast moment of his life, by confessing and giving us the\ninformation we need.\n     We say that we know his repentance in sincere and that he has\nbeen a victim. That kind of talk is convincing. Most of them\nconfess after that. Others hold out; in those cases, we apply\npressure, both psychological and physical. Then the holdouts\nconfess as well.\n     Only one collaborator has ever been executed without an\ninterrogation. In that case, the collaborator had been seen working\nfor the Border Guard since before the intifada, and he himself\nconfessed his involvement to a friend, who disclosed the\ninformation to us. In addition, three members of his network of\ncollaborators told us that he had caused their isqat. With this\nmuch evidence, there was no need to interrogate him. But we are\nvery careful to avoid wrongful executions. In every case, our\nprincipal is the same: the accused should be interrogated until he\nhimself confesses his crimes. \n     A few weeks ago, we sat down and complied a list of\ncollaborators to decide whether there were any who could be\nexecuted without interrogation. An although we had hundreds of\nnames, still, because of our fear of God and of hell, we could not\nmark any of these men, except for the one I just mentioned, for\nexecution.\n     When we execute a collaborator in public, we use a gun. But\nafter we abduct and interrogate a collaborator, we can't shoot him\n-- to do so might give away our locations. That's why collaborators\nare strangled. Sometimes we ask the collaborator, \"What do you\nthink? How should we execute you?\" One collaborator told us,\n\"Strangle me.\" He hated the sight of blood.\n\n-----\nNaftaly Stramer \t\t\t | Intergraph Electronics\nInternet: nstramer@dazixco.ingr.com      | 6101 Lookout Road, Suite A    \nVoice: (303)581-2370  FAX: (303)581-9972 | Boulder, CO 80301\n\"Quality is everybody's job, and it's everybody's job to watch all that they can.\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3839, "properties": {"category": "talk.politics.guns", "text": "From: kevin@axon.usa (Kevin Vanhorn)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: /usr/users/kevin/.organization\nLines: 15\nNNTP-Posting-Host: axon.cs.byu.edu\nIn-reply-to: roby@chopin.udel.edu's message of Tue, 20 Apr 1993 05:53:07 GMT\n\n\nIn article <C5rpoJ.IJv@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>\n> Two of the nine who escaped the compound said the fire was deliberately set \n> by cult members.\n\nCorrection: The *FBI* *says* that two of the nine who escaped said the fire\nwas deliberately set by cult members.  Since the press was kept miles away,\nwe have absolutely no independent verification of any of the government's\nclaims in this matter.\n\n-----------------------------------------------------------------------------\nKevin S. Van Horn       | Is your religion BATF-approved?\nvanhorn@bert.cs.byu.edu |\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.174+0000", "event": "documents", "entityId": 3840, "properties": {"category": "sci.med", "text": "From: Dan Wallach <dwallach@cs.berkeley.edu>\nSubject: FAQ: Typing Injuries (4/4): Software Monitoring Tools [monthly posting]\nSupersedes: <typing-injury-faq/software_732179032@cs.berkeley.edu>\nOrganization: University of California, Berkeley\nLines: 333\nExpires: 22 May 1993 01:24:03 GMT\nReply-To: Richard Donkin <richardd@hoskyns.co.uk>\nNNTP-Posting-Host: elmer-fudd.cs.berkeley.edu\nSummary: software tools to help out injured typists\nOriginator: dwallach@elmer-fudd.cs.berkeley.edu\n\nArchive-name: typing-injury-faq/software\nVersion: 1.8, 7th December 1992\n\nThis FAQ is actually maintained by Richard Donkin <richardd@hoskyns.co.uk>.\nI post it, along with the other FAQ stuff.  If you have questions, you want\nto send mail to Richard, not me.  -- Dan\n \n \n\t\t    Software Tools to help with RSI\n\t\t    -------------------------------\n \nThis file describes tools, primarily software, to help prevent or manage RSI.\nThis version now includes information on such diverse tools as calendar\nprograms and digital watches...\n \nPlease let me know if you know any other tools, or if you have information\nor opinions on these ones, and I will update this FAQ.\n\nI am especially interested in getting reviews of these products from people\nwho have evaluated them or are using them.  \n \nRichard Donkin                           \nInternet mail: richardd@hoskyns.co.uk              \nTel: +44 71 814 5708 (direct)\nFax: +44 71 251 2853\n\nChanges in this version:\n\n     Added information on StressFree, another typing management tool \n     for Windows.\n\n\nTYPING MANAGEMENT TOOLS: these aim to help you manage your keyboard use,\nby warning you to take a break every so often.  The better ones also include\nadvice on exercises, posture and workstation setup.  Some use sound hardware to\n \nwarn of a break, others use beeps or screen messages.\n\nOften, RSI appears only after many years of typing, and the pain has\na delayed action in the short term too: frequently you can be typing\nall day with little problem and the pain gets worse in the evening.\nThese tools act as an early warning system: by listening to their\nwarnings and taking breaks with exercises, you don't have to wait for your \nbody to give you a more serious and painful warning - that is, getting RSI.\n\n \n    Tool: At Your Service (commercial software)\n    Available from:\n\tBright Star\n\tTel: +1 (206) 451 3697\n    Platforms: Mac (System 6.0.4), Windows\n    Description:\n\tProvides calendar, keyboard watch, email watch, and system info. \n\tWarns when to take a break (configurable).  Has a few recommendations\n\ton posture, and exercises.  Sound-oriented, will probably work best \n\twith sound card (PC) or with microphone (Mac).  Should be possible\n\tto record your own messages to warn of break.\n \n    Tool: AudioPort (sound card and software)\n    Available from:\n\tMedia Vision\n\tTel: +1 (510) 226 2563\n    Platforms: PC\n    Description:\n\tA sound card to plug into your PC parallel port.\n\tIncludes 'At Your Service'.\n \n    Tool: Computer Health Break (commercial software)\n    Available from:\n\tEscape Ergonomics, Inc\n\t1111 W. El Camino Real\n\tSuite 109\n\tMailstop 403\n\tSunnyvale, CA\n\tTel: +1 (408) 730 8410\n    Platforms: DOS\n    Description:\n\tAimed at preventing RSI, this program warns you to take\n\tbreaks after a configurable interval, based on clock time, or\n\tafter a set number of keystrokes -- whichever is earlier.\n\tIt gives you 3 exercises to do each time, randomly selected from\n\ta set of 70.  Exercises are apparently tuned to the type of work\n\tyou do - data entry, word processing, information processing.\n\tExercises are illustrated and include quite a lot of text on\n\thow to do the exercise and on what exactly the exercise does.\n\n\tCHB includes hypertext information on RSI that you can use \n\tto learn more about RSI and how to prevent it.  Other information\n\ton non-RSI topics can be plugged into this hypertext viewer.\n\tA full glossary of medical terms and jargon is included.\n\n\tCHB can be run in a DOS box under Windows, but does not then\n\twarn you when to take a break; it does not therefore appear\n\tuseful when used with Windows.\n\n\tCost: $79.95; quantity discounts, site licenses.\n\n    Comments:\n\tThe keystroke-counting approach looks good: it seems better\n\tto measure the activity that is causing you problems than to\n\tmeasure clock time or even typing time.  The marketing stuff\n\tis very good and includes some summaries of research papers,\n\tas well as lots of arguments you can use to get your company \n\tto pay up for RSI management tools.  \n\n    Tool: EyerCise (commercial software)\n    Available from:\n\tRAN Enterprises\n\tOne Woodland Park Dr.\n\tHaverhill, MA  01830, US\n\tTel: 800-451-4487 (US only)\n    Platforms: Windows (3.0/3.1), OS/2 PM (1.3/2.0) [Not DOS]\n    Description:\n\tAimed at preventing RSI and eye strain, this program warns you to take\n\tbreaks after a configurable interval (or at fixed times). Optionally\n\tdisplays descriptions and pictures of exercises - pictures are\n\tanimated and program beeps you to help you do exercises at the\n\tcorrect rate.  Includes 19 stretches and 4 visual training \n\texercises, can configure which are included and how many repetitions\n\tyou do - breaks last from 3 to 7 minutes.  Also includes online help \n\ton workplace ergonomics.  \n\n\tQuote from their literature:\n\n\t\"EyerCise is a Windows program that breaks up your day with periodic\n\tsets of stretches and visual training exercises.  The stretches work\n\tall parts of your body, relieving tension and helping to prevent\n\tRepetitive Strain Injury.  The visual training exercises will improve\n\tyour peripheral vision and help to relieve eye strain.  Together these\n\thelp you to become more relaxed and productive.\"\n \n\t\"The package includes the book _Computers & Visual Stress_ by Edward C.\n\tGodnig, O.D. and John S. Hacunda, which describes the ergonomic setup\n\tfor a computer workstation and provides procedures and exercises to\n\tpromote healthy and efficient computer use. \n\t\n\tCost: $69.95 including shipping and handling, quantity discounts\n\tfor resellers.  Free demo ($5 outside US).\n \n    Comments:\n\tI have a copy of this, and it works as advertised: I would say\n\tit is better for RSI prevention than RSI management, because it\n\tdoes not allow breaks at periods less than 30 minutes.  Also, it\n\tinterrupts you based on clock time rather than typing time, which\n\tis not so helpful unless you use the keyboard all day.  Worked OK on\n\tWindows 3.0 though it did occasionally crash with a UAE - not sure\n\twhy. Also refused to work with the space bar on one PC, and has\n\tone window without window controls.  Very usable though, and does not\n\trequire any sound hardware.\n\n    Tool: Lifeguard (commercial software)\n    Available from:\n\tVisionary Software\n\tP.O. Box 69447\n\tPortland, OR  97201, US\n\tTel: +1 (503) 246-6200\n    Platforms: Mac, DOS (Windows version underway)\n    Description:\n\tAimed at preventing RSI.  Warns you to take a break\n\twith dialog box and sound.  Includes a list of exercises\n\tto do during breaks, and information on configuring your\n\tworkstation in an ergonomic manner.  Price: $59;\n\tquantity discounts and site licenses.  The DOS product is\n\tbought in from another company, apparently; not sure how\n\tequivalent this is to the Mac version.\n\t\n\tThe Mac version got a good review in Desktop Publisher \n\tMagazine (Feb 1991).  Good marketing stuff with useful \n\t2-page summaries of RSI problems and solutions, with \n\treferences.\n \n    Tool: StressFree (commercial software, free usable demo)\n    Available from:\n\tLifeTime Software\n\tP.O. Box 87522\n\tHouston\n\tTexas 77287-7522, US\n\tTel: 800-947-2178 (US only)\n\tFax: +1 (713) 474-2067\n\tMail: 70412.727@compuserve.com\n\n\tDemo (working program but reduced functions) available from:\n\t    Compuserve: Windows Advanced Forum, New Uploads section, or \n\t\t\tHealth and Fitness Forum, Issues At Work section. \n\t    Anon FTP:   ftp.cica.indiana.edu (and mirroring sites)\n\n    Platforms: Windows (3.0/3.1) (Mac and DOS versions underway)\n    Description:\n\tAimed at preventing RSI, this program warns you to take\n\tbreaks after a configurable interval (or at fixed times). \n\tDisplays descriptions and pictures of exercises - pictures are\n\tanimated and program paces you to help you do exercises at the\n\tcorrect rate.  Quite a few exercises, can configure which ones\n\tare included to some extent.  Online help.\n\n\tVersion 2.0 is out soon, Mac and DOS versions will be based\n\ton this.\n\n\tCost: $29.95 if support via CompuServe or Internet, otherwise $39.95.  \n              Site license for 3 or more copies is $20.00 each.\n\t      (NOTE: prices may have gone up for V2.0).\n \n    Comments:\n\tI have had a play with this, and it works OK.  Its user interface\n\tdesign is much better in 2.0, though still a bit unusual.\n\texpensive tool around and it does the job.  It is also the only\n\ttool with a redistributable demo, so if you do get the demo, post it\n\ton your local bulletin boards, FTP servers and Bitnet servers!\n\tDoes not include general info on RSI and ergonomics, but it does \n\thave the ability to step backward in the exercise sequence,\n\twhich is good for repeating the most helpful exercises.\n\n    Tool: Typewatch (freeware), version 3.8 (October 1992)\n    Available from:\n\tEmail to richardd@hoskyns.co.uk\n\tAnonymous ftp: soda.berkeley.edu:pub/typing-injury/typewatch.shar\n    Platforms: UNIX (tested on SCO, SunOS, Mach; character and X Window mode)\n    Description:\n\tThis is a shell script that runs in the background and warns you\n\tto stop typing, based on how long you have been continuously\n\ttyping.  It does not provide exercises, but it does check\n\tthat you really do take a break, and tells you when you\n\tcan start typing again.  \n\n\tTypewatch now tells you how many minutes you have been typing\n\ttoday, each time it warns you, which is useful so you\n\tknow how much you *really* type.  It also logs information\n\tto a file that you can analyse or simply print out.  \n\n\tThe warning message appears on your screen (in character mode),\n\tin a pop-up window (for X Windows), or as a Zephyr message\n\t(for those with Athena stuff).   Tim Freeman <tsf@cs.cmu.edu> \n\thas put in a lot of bug fixes, extra features and support for \n\tX, Zephyr and Mach.\n\n\tNot formally supported, but email richardd@hoskyns.co.uk\n\t(for SCO, SunOS, character mode) or tsf@cs.cmu.edu (for Mach,\n\tX Window mode, Zephyr) if you have problems or want to give \n\tfeedback.\n\n    Tool: Various calendar / batch queue programs\n    Available from:\n\tVarious sources\n    Platforms: Various\n    Description:\n\tAny calendar/reminder program that warns you of an upcoming\n\tappointment can be turned into an ad hoc RSI management tool.\n\tOr, any batch queue submission program that lets you submit\n\ta program to run at a specific time to display a message to\n\tthe screen.\n\n\tUsing Windows as an example: create a Calendar file, and\n\tinclude this filename in your WIN.INI's 'load=' line so\n\tyou get it on every startup of Windows.  Suppose you\n\twant to have breaks every 30 minutes, starting from 9 am.\n\tPress F7 (Special Time...) to enter an appointment, enter\n\t9:30, hit Enter, and type some text in saying what the break\n\tis for.  Then press F5 to set an alarm on this entry, and repeat \n\tfor the next appointment.\n\n\tBy using Windows Recorder, you can record the keystrokes\n\tthat set up breaks throughout a day in a .REC file.  Put this\n\tfile on your 'run=' line, as above, and you will then, with\n\ta single keypress, be able to set up your daily appointments\n\twith RSI exercises.\n\n\tThe above method should be adaptable to most calendar programs. \n\tAn example using batch jobs would be to submit a simple job\n\tthat runs at 9:30 am and warns you to take a break; this will\n\tdepend a lot on your operating system.\n\n\tWhile these approaches are not ideal, they are a good way of forcing \n\tyourself to take a break if you can't get hold of a suitable RSI \n\tmanagement tool.  If you are techie enough you might want to\n\twrite a version of Typewatch (see above) for your operating\n\tsystem, using batch jobs or whatever fits best.\n\n    Tool: Digital watches with count-down timers\n    Available from:\n\tVarious sources, e.g. Casio BP-100.\n    Description:\n\tMany digital watches have timers that count down from a settable\n\tnumber of minutes; they usually reset easily to that number, either\n\tmanually or automatically.  \n\n\tWhile these are a very basic tool, they are very useful if you\n\tare writing, reading, driving, or doing anything away from\n\ta computer which can still cause or aggravate RSI.  The great\n\tadvantage is that they remind you to break from whatever you\n\tare doing.\n\t\n    Comments:\n\tMy own experience was that cutting down a lot on my typing led to\n\tmy writing a lot more, and still reading as much as ever, which\n\tactually aggravated the RSI in my right arm though the left\n\tarm improved.  Getting a count-down timer watch has been\n\tvery useful on some occasions where I write a lot in a day.\n\n\tI have tried an old fashioned hour-glass type egg timer, but\n\tthese are not much good because they do not give an audible\n\twarning of the end of the time period!\n\n\nKEYBOARD REMAPPING TOOLS: these enable you to change your keyboard mapping\nso you can type one-handedly or with a different two-handed layout.  \nOne-handed typing tools may help, but be VERY careful about how \nyou use them -- if you keep the same overall typing workload you\nare simply doubling your hand use for the hand that you use for typing,\nand may therefore make matters worse.\n\n    Tool: hsh (public domain)\n    Available from:\n\tAnonymous ftp: soda.berkeley.edu:pub/typing-injury/hsh.shar\n    Platforms: UNIX (don't know which ones)\n    Description:\n\tAllows one-handed typing and other general keyboard remappings.\n\tOnly works through tty's (so, you can use it with a terminal or\n\tan xterm, but not most X programs).\n\n    Tool: Dvorak keyboard tools (various)\n    Available from:\n\tAnonymous ftp: soda.berkeley.edu:pub/typing-injury/xdvorak.c\n\tAlso built into Windows 3.x. \n    Description:\n\tThe Dvorak keyboard apparently uses a more rational layout\n\tthat involves more balanced hand use.   It *may* help prevent\n\tRSI a bit, but you can also use it if you have RSI, since \n\tit will slow down your typing a *lot* :-)  \n\n-- \nDan Wallach               \"One of the most attractive features of a Connection\ndwallach@cs.berkeley.edu  Machine is the array of blinking lights on the faces\nOffice#: 510-642-9585     of its cabinet.\" -- CM Paris Ref. Manual, v6.0, p48.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3841, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: strataki@atalante.csi.forth.gr (Manolis Stratakis)\nSubject: Any Comments on EISA bus Book?\nOrganization: FORTH - ICS, P.O.Box 1385, Heraklio, Crete, Greece 71110 \n       tel: +30(81)221171, 229302 fax: +30(81)229342,3 tlx: 262389 CCI\nLines: 29\nDistribution: world\nNNTP-Posting-Host: atalante.csi.forth.gr\nKeywords: EISA, ISA\n\n\tHello,\n\n\tI have the following list of books about ISA/EISA buses:\n\n1. ISA System Architecture\n   by Tom Shanley/Don Anderson\n   MindShare Press, 1993 $34.95\n\n2. EISA System Architecture\n   by Tom Shanley/Don Anderson\n   MindShare Press, 1993 $24.95\n\n3. ISA, EISA: PC,XT,AT,E-ISA,ISA, and EISA I/O timing and specs.\n   by Edward Solari, Copyright 1992\n   ISBN: 0-929392-15-9\n\n4. AT Bus Design\n   by Edward Solari, Copyright 1990\n   ISBN: 0-929392-08-6\n\n5. Interfacing to the IBM PC/XT\n   by Eggebrecht, Lewis C. Copyright 1990\n\n\tDo you have any comments on any of them?\n\n\tPlease reply by e-mail,\n\n\tThanks in advance,\n\tManolis Stratakis.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3842, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: \"National repentance\"\nReply-To: jwaugh@magnus.acs.ohio-state.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 29\n\nConcerning Christians praying for coporate forgiveness of national sins, \nMichael Covington claims the following of C.S. Lewis:\n\n> C. S. Lewis made the same point in an essay after World War II,\n> when some Christian leaders in Britain were urging \"national repentance\"\n> for the horrors (sins???) of World War II.\n> --\n> :-  Michael A. Covington, Associate Research Scientist        :    *****\n> :-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n> :-  The University of Georgia              phone 706 542-0358 :   *  *  *\n> :-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **\n<><\n\nI was surprised when I heard this same kind of remark from a fellow grad. \nstudent I know, especially since he had seminary training.  I have read the \nsame essay and do not find Lewis making any such claim.  Rather, Lewis is \ncondemning the use of such coporate prayer efforts as platforms to make \npolitical jabs at opponents, feigned as confessions of guilt (ie., Lord please \nforgive us for allowing \"insert political issue/idea/platform\" to exist in our\ncountry, it is wrong and we ask your forgiveness.).  I would be interested in\nknowing what part of the essay you feel condemns national repentance (please\nquote).\n\nJonathan Waugh\nGraduate Research Associate, Pulmonary Medicine Div.\nThe Ohio State University\nSAMP, Rm 431, 1583 Perry St.\nColumbus, OH 43210\njwaugh@magnus.acs.ohio-state.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3843, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: adamb@garfield.cs.mun.ca (Adam Benson)\nSubject: Windows 3.1 slower using DOS 6 ????\nSummary: According to Norton SI computer is slower in windows A LOT SLOWER\nKeywords: windows win dos\nOrganization: CS Dept., Memorial University of Newfoundland\nLines: 5\n\nAdam Benson\nMt. Pearl, NF\nadamb@garfield.cs.mun.ca\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3844, "properties": {"category": "sci.crypt", "text": "From: rclark@nyx.cs.du.edu\nSubject: Re: Is there ANY security in the Clipper?\nOrganization: Cold Media \nLines: 13\n\nzeev@ccc.amdahl.com (Ze'ev Wurman) writes:\n\n>But do we really believe that the various governments\n>(including ours) won't have the full lists of all the keys ever manufactured?\n\nYes, but they'll be encrypted with Cripple Chip encryption, the\nencryption algorithm so great it's TOP SECRET and so unbreakable\nthey WON'T EVEN LET YOU LOOK AT IT!\n\nDoesn't that make you feel SECURE?\n----\nRobert W. Clark             Just Say No! to the\nrclark@nyx.cs.du.edu        Big Brother Chip  \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3845, "properties": {"category": "comp.windows.x", "text": "From: masc0442@ucsnews.sdsu.edu (Todd Greene)\nSubject: How do I find my AppContext?\nOrganization: San Diego State University, College of Sciences\nLines: 14\nNNTP-Posting-Host: ucssun1.sdsu.edu\nKeywords: Context, Xt, motif, application\nX-Newsreader: TIN [version 1.1 PL8]\n\n\n\nIs there an Xt call to give me my application context?\nI am fixing up an X/Motif program, and am trying to use XtAppAddTimeOut,\nwhose first argument is the app_context.  What call can I use\nto give me this value?\n\n\nThanks,\n    Todd Greene\n    masc0442@ucssun1.sdsu.edu\n\n~\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3846, "properties": {"category": "alt.atheism", "text": "Subject: Re: Death Penalty (was Re: Political Atheists?)\nFrom: SSAUYET@eagle.wesleyan.edu (SCOTT D. SAUYET)\nDistribution: world\nOrganization: Wesleyan University\nNntp-Posting-Host: wesleyan.edu\nX-News-Reader: VMS NEWS 1.20In-Reply-To: jbrown@batman.bmd.trw.com's message of 16 Apr 93 16:37:29 MSTLines: 34\nLines: 34\n\njbrown@batman.bmd.trw.com writes:   >\n  ( in <1993Apr16.163729.867@batman.bmd.trw.com> )\n  ( responding to Dave \"First With Official A.A Nickname\" Fuller )\n \n[ ... ]\n> The death penalty IS a deterrent, Dave.  The person executed will never\n> commit a crime again.  Guaranteed.      [ ... ]\n\nThat means that it is an effective anti-recidivism measure.  It does\nnot say that it deters an individual from committing a capital crime\nin the first place.\n\nThe true question is whether the threat of death is likely to actually\nstop one from murdering.  (Or commiting treason -- are there any other\ncapital crimes anywhere in the USA?)  That is, if there were no death\npenalty, would its introduction deter a would-be criminal from\ncommitting her/his crime?  I doubt it.\n\nThis is only the first step.  Even if it were a strong deterrent\n(short of being a complete deterrent) I would reject it.  For what\nabout the case of the innocent executed?\n\nAnd even if we could eliminate this possibility, I would reject the\ndeath penalty as immoral. This makes me something of a radical on\nthe issue, although I think there are many opponents of captial\npunishment who agree with me, but who find the innocent executed the\nstrongest argument to make.\n\nI would, if magically placed in charge, facilitate state-aided suicide\nfor criminals who have life-sentences.  This could be a replacement\nfor capital punishment.  Those who don't want to live the rest of\ntheir lives in jail would always have this option.\n\n -- Scott Sauyet                 ssauyet@eagle.wesleyan.edu\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3847, "properties": {"category": "soc.religion.christian", "text": "From: miner@kuhub.cc.ukans.edu\nSubject: Re: Ancient Books\nOrganization: University of Kansas Academic Computing Services\nLines: 20\n\nIn article <Apr.11.01.02.37.1993.17787@athos.rutgers.edu>, atterlep@vela.acs.oakland.edu (Cardinal Ximenez) writes:\n\n>   I don't think it's possible to convince atheists of the validity of \n> Christianity through argument.  We have to help foster faith and an\n> understanding of God.  I could be wrong--are there any former atheists here\n> who were led to Christianity by argument?\n\nThis is an excellent question and I'll be anxious to see if there are\nany such cases.  I doubt it.  In the medieval period (esp. 10th-cent.\nwhen Aquinas flourished) argument was a useful tool because everyone\n\"knew the rules.\"  Today, when you can't count on people knowing even\nthe basics of logic or seeing through rhetoric, a good argument is\noften indistinguishable from a poor one.\n\nSorry; just one of my perennial gripes...<:->\n\nKen\n-- \nminer@kuhub.cc.ukans.edu | Nobody can explain everything to everybody.\nopinions are my own      | G. K. Chesterton\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3848, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dericks@plains.NoDak.edu (Dale Erickson)\nSubject: Telix problem\nNntp-Posting-Host: plains.nodak.edu\nOrganization: North Dakota Higher Education Computing Network\nLines: 9\n\nWhen I use telix (or kermit) in WIN 3.1, or use telix after exiting windows\nto dos, telix can not find the serial port. If you have some ideas on how\nto solve this problem or where I can find further information, send me email\nor send it to the news group.  Thanks.\n\nDale Erickson \ndericks@plains.nodak.edu\n-- \n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3849, "properties": {"category": "talk.politics.guns", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: My Gun is like my American Express Card\nLines: 128\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <CMM.0.90.2.735132009.thomasp@surt.ifi.uio.no> Thomas Parsli <thomasp@ifi.uio.no> writes:\n>\n>Abuse by the goverment:\n>This seems to be one of the main problems; Any harder gun-control\n>would just be abused by the goverment.(!)\n>Either some of you are a little paranoid (no offence...) \n\n       Mr. Parsli, I have to take exception at this.  There are\nverifiable, previous *examples* of levels of U.S. governments\nabusing gun-control restrictions.  I don't think it is paranoid\nto worry that what has been abused in the recent past might be abused\nin thye future.  After so many times of getting burned any sane person\nwill stop putting his hand on the stove.\n\n>OR you should\n>get a new goverment. (You do have elections??)\n\n       I'd love to.  But as long as the politicians grab power to sell\npork back to their constituents, there's not a lot I can do.  \n\n       It's silly to suggest that if there's anything we can't trust\nthe government to do, and therefore the government should be allowed\nto do it, then we should change governments.  Down that road lies\ntotal government power.   I've never been a fan of totalitarianism.\n\n>Guns 'n Criminals:\n>MOST weapons used by criminals today are stolen.\n\n       This is very likely.\n\n>Known criminals can NOT buy weapons, that's one of the points of gun control.\n>And because gun control are strict in WHOLE scandinavia (and most of europe),\n>we dont have any PROBLEM with smuggled guns.\n\n       The North American Continent is not Europe, no matter how many\npeople would like it to be.  Drugs are very illegal and they're\nhere.  For years Canada has crowed about its gun control.  If it is\nnecessary to control guns over the whole continent, then Canada should\nhave always had comparable rates to the U.S., yet they still don't.\nUnless you can tell me why the Canadian border is so much more\nmagical than the Mexican border (which is shorter and far more\nheavily patrolled) then I really can't accept that argument.\n\n>Mixing weapons and things that can be use as one:\n>What I meant was that cars CAN kill, but they are not GUNS!\n\n       No, there are approximately 31,000 deaths due to guns in the U.S.,\ntwo-thirds of which are suicides.  (Unfortunately I don't have suicide\nrates for Norway.)  However, this makes the per-gun death rate about\nhalf the per-car death rate.\n\n>The issue (I hope..):\n>I think we all agree that the criminals are the main problem.\n>Guns are not a problem, but the way they are used is.... (and what are they for??)\n>\n>I think this discusion is interesting when you think of (ex)Jugoslavia:\n>They should all have weapons, it's their rigth to have them, and if they use them\n>to kill other (Innocent) people the problem is humans, not guns.\n\n      The problem's been humans since before we had stone axes.  The\nfct of the matter is simply this:  If nobody ever assaulted anybody,\nwhether there is a weapon of any sort around would be totally\nirrelevent.\n\n      Yet weapons are *built*.  I'd suggest, then, that the murderous\nimpulse in humanity pre-dates weapons.\n\n      Anyway, the Bosnians et al. have been making an excellent attempt\nto kill each other for half a thousand years.  Taking away their guns, even\nif we could, would neither halt the killing nor reduce the brutality.\n\n>If 50% of ALL murders was done with axes, would you impose some regulations on them\n>or just say that they are ment to be used at trees, and that the axe is not a problem,\n>it's the 'axer' ??\n>(An example, don't flame me just because not exactly 50% are killed by guns...)\n\n\n       In the U.S., approximately 60% of murders are commited with firearms.\n(50% with handguns, 10% with non-handguns.)  The reason I say that guns, per \nse, are not the problem, is that our non-gun rate exceeds most of Europe's\ncountries *entire* violent crime rate.  I don't really think we've got\nmore knives or fists.  \n\n       In any case, I think examples of gun control *applied* to the U.S.\nhave been abkect failures, just like drug prohibition and other forms\nof prohibition.  Until you deal with *why* people are doing what they\nare doing, you won't solve your problem.  And if the problem is \nviolent crime, you shouldn't concentrate on the tools instead.  The\n*vast* majority of guns is never, ever misused.  (On the order of\n99.5% over the entire lifetime of the gun).  This says to me that\nyou can't make the argument that the gun itself causes the misuse.\n\n>Think about the situation in Los Angeles where people are buying guns to protect\n>themselves. Is this a good situation ?? \n\n       The situation is not \"good\" in that people fear for their lives.\nBut recall the scenes of the store-owners during the last riots,\nprotecting their shops with guns.  Would it have been better they,\ntoo, lost their livelihoods?\n\n>Is it the rigth way to deal with the problem ??\n\n       The problem of poverty and rage in Los Angeles, no it isn't.\nHowever, if that problem becomes a violent action, then yes, it can\nbe appropriate.  Whether or not some person has been hurt by their condition\nwon't make me less dead if they burn down my house with me in it.\n\n       You have to examine which problem you're referring to.  If\nyou're discussing someone violently assaulting you, then it is\na perfectly legitimate response to make them stop.  (Hopefully\nsimply letting them know you're prepared to shoot them would be enough,\nas it was with the above-mentioned store-owners.)\n\n>If everybody buys guns to protect themselves from criminals (and their neighbor who have\n>guns) what do you think will happen ?? (I mean if everybody had a gun in USA)\n\n       45% of Households have some form of firearm, usually a long gun.\nThat accounts for a level of access for at least 100 million Americans.\nFirearm ownership is most likely among educated, well-off whites, the\ngroup *least* likely to be involved in violent crime.\n\n       You may take that for what it's worth.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3850, "properties": {"category": "rec.sport.hockey", "text": "From: \"Terence M. Rokop\" <tr2i+@andrew.cmu.edu>\nSubject: Re: Patrick Playoffs Look Like This\nOrganization: Freshman, Physics, Carnegie Mellon, Pittsburgh, PA\nLines: 20\n\t<BSON.93Apr14154548@hal.gnu.ai.mit.edu>\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <BSON.93Apr14154548@hal.gnu.ai.mit.edu>\n\nJan Brittenson writes:\n\n>last year. The Pens' weak spot is defense and goaltending -- if Boston\n\n            ...\n\n>   Boston doesn't have the guns of the Pens, but the Pens doesn't have\n>the defense, goaltending, and discipline of Boston. Still, Boston can\n\nWhy do you say this?  As of now, the Pens and Bruins have played the\nsame number of games, and given up the same number of goals.  They are\ntied for the third and fourth best defenses in the league, behind\nChicago first and Toronto second.  The Pens' weak spot is defense?  Only\nby comparison to their offense, which is second in the league to\nDetroit.  But the Pens are no weaker on defense and goaltending than the\nBruins are; that is, they are both very strong.\n\n\n\n                                                Terry\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3851, "properties": {"category": "misc.forsale", "text": "From: rivkin@watson.bms.com (TERRI RIVKIN, TERRI RIVKIN)\nSubject: House for Sale in Mercerville, NJ\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nOrganization: Bristol Myers Squibb Pharmaceutical Research Institute\nLines: 22\n\n\nI am posting this for a friend.  Please do not respond to me.  Thanks.\n\nHouse for Sale!!!!!\n16 Brockton Road, Mercerville, New Jersey\n\nDescription:  Beautiful 3 bedroom, 1 1/2 bath cape cod located on a large \ntastefully landscaped corner with fenced in lot.  This home features an eat-in \n\nkitchen with built-in corner china closet, a large living room, wall-to-wall \ncarpeting, hardwood floors, new ceramic tile foyer, and freshly painted \nneutral tone decor. This home includes new central air and heating, new roof, \nnew water heater, aluminum siding, storm windows and doors and Rockwell \ninsulation in all exterior walls.  Also features a new partially finished \nbasement with an outside entrance and new Duro shed.  Lots of storage space.  \nConvenient to Rt. 295.\n\nExtras:  Dishwasher, Washer and Dryer, Ceiling Fans, and Window Treatments\n\nCall for appointment at (609) 586-1946.\n\n*****Open House on Sunday, April 18th, 1:00 - 4:00.  Call for Directions*****\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3852, "properties": {"category": "rec.autos", "text": "From: kega@celsiustech.se (Kent Gabrin)\nSubject: Re: Did US drive on the left?\nOrganization: CelsiusTech AB\nLines: 44\n\nIn article <1993Apr6.060553.22453@cactus.org> boyle@cactus.org (Craig Boyle) writes:\n\n...deleted lines...\n\n>>Well Sweden and Australia, and lord knows wherever else used to drive on\n>Australians still do drive on the \"wrong\" side of the road. I believe\n>Sweden changed in 1968. The way I heard it was that they swapped\n>all the traffic signs around one Sunday....\n\n   As I live in Sweden I remember the day perfectly well. We changed\nside 1967-09-03 (or 03-SEP-1967). I don't remeber the exactly time but\nit was in the night. (in the 'big' cities like Stockholm & Gothenburg\nall trafic was forbidden, exept busses and taxis, during the whole\nweekend.) The day was a Sunday and everything was prepared in before.\n\nBefore the day we was told to follow the yellow lines on the road and\nafter it was the white one that matters. The signs with arrows on was\nprepared with a 'left mode' label that was torn off that night to\nreveal the new right mode arrow.\n\nThe year after Iceland also changed.\n\nAbout cars: Before the H-day (H as in \"Hoegertrafik\". \"hoeger\" is\nSwedish and stands for 'right') practically all cars already had their\nsteering wheels on the left side. Even the imported cars from UK had\nthe wheel on 'the right side'. At last we have cars with the wheels on\nthe right side. :-)\n\nMore contries that uses the left side is:\n\nJapan\nTanzania (I think)\nNew Zeeland\nHow about South Africa?\n\nBTW. Some sais that the left side is the right side because Ivanhoe\nand other knights meet at the left when they fight in tournaments. :-)\n\n...deleted lines...\n\nKent Gabrin   CelsiusTech Systems  ! My thinking is not as great as\nS-175 88 Jaerfaella       Sweden   ! Oliver Berendinus Bumble /Will Try\nKEGA@Celsiustech.se ! Company sold again. Former name was: NobelTech\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3853, "properties": {"category": "talk.politics.misc", "text": "From: bhv@areaplg2.corp.mot.com (Bronis Vidugiris)\nSubject: Re: Why not concentrate on child molesters?\nOrganization: Motorola, CCR&D, CORP, Schaumburg, IL\nNntp-Posting-Host: 137.23.47.37\nLines: 21\n\nIn article <7166@pdxgate.UUCP> a0cb@rigel.cs.pdx.edu (Chris Bertholf) writes:\n)MCARTWR@auvm.american.edu (Martina Cartwright) writes:\n)\n)\n)>The official and legal term for rape is \"the crime of forcing a FEMALE \n)>to submit to sexual intercourse.\"\n)\n)Please, supply me with some references.  I was not aware that all states\n)had the word \"FEMALE\" in the rape statutes.  I am sure others are surprised\n)as well.  I know thats how it works in practice (nice-n-fair, NOT!!), but\n)was unaware that it was in the statutes as applying to FEMALES only,\n)uniformly throughout the U.S.\n\nI agree mostly with Chris.  It is (unfortunately, IMO) true that the *FBI*\nfigures for rape based on the 'uniform crime report' report only female\nrapes. However, some states (such as Illinois) are not tabluated because they\nrefuse to comply with this sexist definition!\n-- \nThe worms crawl in\nThe worms crawl out\nThe worms post to the net from your account\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3854, "properties": {"category": "comp.windows.x", "text": "From: montnaro@spyder.crd.ge.com (Skip Montanaro)\nSubject: Re: Circular Motif Widgets\nIn-Reply-To: dev@hollywood.acsc.com's message of 16 Apr 1993 17:16:02 GMT\nNntp-Posting-Host: spyder.crd.ge.com\nReply-To: montanaro@ausable.crd.ge.com (Skip Montanaro)\nOrganization: GE Corporate Research & Development, Schenectady, NY\nLines: 17\n\n\nIf you're willing to do a little work, you can make DrawnButtons do what you\nwant, more-or-less. One of my colleagues here at GE CRD has done just that\nin our internal LYMB system.\n\nWe have a matrix transform class that makes it easy to compute a series of\ndial positions from a single set of vectors. Each set of vectors is then\ndrawn into a pixmap. Clicking the button advances the knob's state and\nchanges to the next pixmap in the sequence.\n\nUsing DrawnButtons obviously still constrains you to taking up a rectangular\nportion of the parent widget, but that's normally not a big shortcoming. You\ncan make things look circular enough.\n\n--\nSkip (montanaro@crd.ge.com)\n\"Why can't X be this easy?\" -- me, after learning about dlopen()\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3855, "properties": {"category": "misc.forsale", "text": "From: eliz@ai.mit.edu (Elizabeth Willey)\nSubject: Re: Printing\nOrganization: MIT Artificial Intelligence Laboratory\nLines: 37\nNNTP-Posting-Host: corpus-callosum.mit.edu\nIn-reply-to: \"Jack Previdi\"'s message of Thu, 15 Apr 1993 20:02:49 GMT\n\n\"Jack Previdi\" <p00020@psilink.com> writes, in reply to Dorothy Heydt\nreminding us that advertising is not done on Internet:\n\n\t   As a matter of fact D.J., it does make a difference.\n\t   Almost a half million new users joined the Internet last year,\n\t   many of them are commercial businesses. The ban on commercial\n\t   use of Internet is no more.\n\nJack, there is a difference between using the network for commercial\npurposes and advertising in newsgroups.  Business communication is\nokay.  Advertising to hundreds of thousands of users around the planet\nwho have no desire to receive advertising is not okay.\n\n\t   Those of us who pay for Internet access are constrained only\n\t   by our innate good taste and no have no \"administrator\" to \n\t   guide(?) us.\n\nI suspect that a site which generated a large volume of material not\nin anybody's good taste would find itself getting a lot of attention\nit didn't want.  You may belong to the public library, but that\ndoesn't mean you can deface the books, disorder the stacks, or disturb\nthe other patrons.\n\nYou're constrained by the same rules that the rest of the users (many\nacademic and military, who get irritable about a network for which\nthey pay with tax and grant money carrying private business\nadvertising) follow.  There are Secret Masters here, just like\neverywhere else.  They're not as obvious as the ones on Prodigy, but\nthey're here.\n\nNo doubt at some point the Internet, like everything else, will become\ngrotty enough to carry advertising.  At that time I hope it is\nconfined to its own newsgroups and not on discussion groups---like\nmisc.writing.\n\n\nElizabeth Willey\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3856, "properties": {"category": "talk.politics.misc", "text": "From: wdstarr@athena.mit.edu (William December Starr)\nSubject: Re: rnitedace and violence\nOrganization: Northeastern Law, Class of '93\nLines: 20\nDistribution: usa\nNNTP-Posting-Host: nw12-326-1.mit.edu\nIn-reply-to: neal@magpie.linknet.com (Neal)\n\n\nIn article <C5ovG2.J24@magpie.linknet.com>, \nneal@magpie.linknet.com (Neal) said:\n\n> My views are out of experiences when I was a police officer in a large\n> metropolitan area, and of a citizen. Unless people account for their\n> behavior, and for the behavior of their immediate community, nothing\n> will improve.\n\nWait a minute.  I agree with you that people have to take responsibility\nfor their own behavior (I assume that's what you meant by the word\n\"account\"), but also for \"the behavior of their immediate community\"?\n\nFirst of all, how \"immediate\" are you talking about, and secondly, I\nhave a lot of trouble with any theory of social behavior or justice\nwhich charges anyone with the duty of taking responsibility for or\naccounting for the actions of a different person...\n\n-- William December Starr <wdstarr@athena.mit.edu>\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3857, "properties": {"category": "rec.motorcycles", "text": "From: declrckd@rtsg.mot.com (Dan J. Declerck)\nSubject: Re: edu breaths\nNntp-Posting-Host: corolla17\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 34\n\nIn article <1993Apr15.003749.15710@rtsg.mot.com> svoboda@rtsg.mot.com (David Svoboda) writes:\n>In article <1993Apr14.220252.14731@rtsg.mot.com> declrckd@rtsg.mot.com (Dan J. Declerck) writes:\n>|\n>|The difference of opinion, and difference in motorcycling between the sport-bike\n>|riders and the cruiser-bike riders. \n>\n>That difference is only in the minds of certain closed-minded individuals.  I\n>have had the very best motorcycling times with riders of \"cruiser\" \n>bikes (hi Don, Eddie!), yet I ride anything but.\n\nContinuously, on this forum, and on the street, you find quite a difference\nbetween the opinions of what motorcycling is to different individuals.\nCruiser-bike riders have a different view of motorcycling than those of sport bike riders\n(what they like and dislike about motorcycling). This is not closed-minded. \nTo NOT RECOGNIZE this, is in effect, close-minded.\n\n>\n>|A lot of it, reminded me of rec.motorcycles and the insipid flame-age thereof..\n>\n>If you so dislike it, my occasionally leather-clad poser pal, why read it?\n\nI scan it for information, a lot of it is NOISE and pointless flame-age.\n(it's why I used trn, instead of rn)\n\nIf you have a problem with that, I'm really sorry for you..\n\n\n\n\n-- \n=> Dan DeClerck                        | EMAIL: declrckd@rtsg.mot.com     <=\n=> Motorola Cellular APD               |                                  <=\n=>\"Friends don't let friends wear neon\"| Phone: (708) 632-4596            <=\n----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3858, "properties": {"category": "rec.autos", "text": "From: gwalker@rtfm.mlb.fl.us (Grayson Walker)\nSubject: Re: Changing oil by self.\nOrganization: A.S.I. n\nDistribution: usa\nLines: 10\n\nWhy crawl under the car at all? I have a machine I got for my boat that \npulls the oil out under suction through the dip stick tube. It does an\nexcellent job and by moving the suction tube around, you can get more \nold oil out than by using the drain plug. I think I paid $25 at E&B Marine.\nThe oil goes into a steel 3 gal can - wait until it cools and decant into\nyour favorite device. I use soft drink bottles. Easy to take them down to\nthe local oil recycle center.\n\nFORZA!\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3859, "properties": {"category": "sci.electronics", "text": "From: shanlps@ducvax.auburn.edu\nSubject: TV RECEPTION:  HEELLLPPP!!!\nLines: 18\nNntp-Posting-Host: ducvax\nOrganization: Auburn University, AL\nLines: 18\n\nHello,\n\nI just canceled my support of the Cable Regime and I would like to at\nleast pick up the 3 networks and NBC.  :)   I do not have tons of\nmoney nor even a few pounds so what I am looking for is the best solution\nfor reception for under 100 dollars.  I have seen modules that you plug\ninto your wall outlet that \"supposedly\" make your entire house an\nantenna.  I have to admit, even with my limited knowledge of wavelength\nand aerial reception, this seems dubious in its claims for \"excellent\nreception\" at best.  I'll try anything, though, if it WORKS.  I am in\na non-mountainous area, approximately 50 miles from the transmitting stations\nwhich are pretty large (Montgomery Alabama pop. 200,000) and Colombus Goergia,\npop. 100,000+.  Any recommendations of products, brand-names, prices and \ncompany info (catalog ordering numbers, addresses etc.)?  Thank you in\nadvance.\n\nPaul Sylvester Shanley   pshanley@humsci.auburn.edu   VOICE 205 887 7440\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3860, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gcook@horus.cem.msu.EDU (Greg Cook)\nSubject: Re: WORD 2.0 HELP!\nOrganization: Michigan State University\nLines: 12\nNNTP-Posting-Host: horus.cem.msu.edu\n\nFrom article <0096B11B.08A283A0@vms.csd.mu.edu>, by 2a42dubinski@vms.csd.mu.edu:\n> Can anyone tell me if and how they have printed Spanish characters?  I know WP 5.1 has this built-in, but I do not recall ever seeing this option on WFW2.  HELP!\n\nTry using the extended character set  (Alt-####  sequences) . . \nlook in Character Map in the Accessories group and see the alt-sequence\nfor the font you want!\n\n\n     Gregory R. Cook         |  INTERNET:    gcook@horus.cem.msu.edu\n Department of Chemistry     |               cookgreg@student.msu.edu\nMichigan State University    |               cook@cemvax.cem.msu.edu \n East Lansing, MI  48824     |  BITNET:      cook@msucem.BITNET \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3861, "properties": {"category": "comp.sys.mac.hardware", "text": "From: smith@pell.anu.edu.au (Michael Smith)\nSubject: Re: Desktop rebuild and Datadesk keyboard?\nOrganization: Australian National University\nLines: 17\nNNTP-Posting-Host: 150.203.22.65\nIn-reply-to: mirsky@hal.gnu.ai.mit.edu's message of 15 Apr 1993 19:35:58 -0400\n\n\nMy Datadesk Mac 101E keyboard has similar problems. I have found that\nholding down the RIGHT-HAND shift key at startup will work (disable\nextensions), but the left-hand shift key won't (which is unfortunate, since\nthe left one is the one I instinctively reach for).\n\nSimilarly, I have trained myself to hold down the RIGHT-HAND pair of\ncommand-option for desktop rebuilds.\n\nI *is* irritating.\n\nCheers,\nMichael.\n--\n----------------------------/|-|--|-|--|------Michael-Smith-------------------\nsmith@pell.anu.edu.au      /_| |\\ | |  |      Mathematics Research Section\n--------------------------/--|-|-\\|-|_/|------Australian-National-University--\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.175+0000", "event": "documents", "entityId": 3862, "properties": {"category": "comp.windows.x", "text": "From: dbryant@leconte.Eng.Sun.COM (David Bryant)\nSubject: Re: GUI toolkit for the Sun Sparc.\nReply-To: dbryant@leconte.Eng.Sun.COM\nOrganization: Sun Microsystems, Inc.\nLines: 21\nNNTP-Posting-Host: leconte\n\nIn article C4M@cuug.ab.ca, winsorr@sun (Robin Winsor 233-4670) writes:\n\n>You are right to be going Motif rather than OpenLook.  Sun has just recently\n>seen the light and dumped their commitment to OpenLook.  In the announcement\n>they stated they have no future plans for DevGuide.\n\nThis is incorrect.  Sun has made no such claim regarding Devguide, and as \nmanager of the Devguide engineering group I can state with authority that\nwork on Devguide is continuing apace.  We had quite a strong show of interest\nfrom the Devguide user community at last week's Solaris Developer's Conference.\nDevguide is being advocated not only as a valuable future builder tool, but\nas an important bit of transition technology that will help sustain current\ncustomers and facilitate their migration to the COSE Desktop Environment.\n\nIf you have specific questions about Devguide availability, etc., you can \ncontact Tali Aben, our Devguide Product Marketing person, at (415) 336-3536.\n\n\tDavid Bryant\n\tDevguide Manager\n\tSunSoft\n \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.185+0000", "event": "documents", "entityId": 3863, "properties": {"category": "rec.sport.hockey", "text": "From: hammerl@acsu.buffalo.edu (Valerie S. Hammerl)\nSubject: Re: Playoff telecasts in Atlanta\nOrganization: UB\nLines: 29\nNntp-Posting-Host: lictor.acsu.buffalo.edu\n\nIn article <1q9noa$d90@hsdndev.harvard.edu> nhmas@gauss.med.harvard.edu (Mark Shneyder 432-4219) writes:\n>In article <IflYr6y00WB4A6F60A@andrew.cmu.edu> Mamatha Devineni Ratnam <mr47+@andrew.cmu.edu> writes:\n>>\n>>Does anyone know if all the Patrick division games are going to be televised\n>>on ESPN and ABC? If some games are going to be left out(Or blanked out by\n>>dumb southern ABC affiliates), I was wondering if anyone out there knows\n>>of any sports bars in Atlanta which are frequented by hockey fans. I don't\n>>want to miss out on any of the Pens games. I am sure that there are some\n>>Islander fans(now that the rangers are dead) who would want to watch every\n>>Pens-Islanders game in Atlanta.\n>\n>\n>Circle Tuesday,April 20th on your TV calendar. ESPN will carry Game#2\n>from Pittsburgh's Civic Arena or as they are advetising it : Pittsburgh vs.\n>4th place Partick Div. finisher. Personally, Bruins-Buffalo or Montreal-\n>Quebec City is a much better matchup but ESPN is hoping for a spoiler\n>in the Pens series which it's not likely to get the way Mario has been\n>playing for the past month or so.\n\nI'd personally prefer Buffalo-Boston, as a birthday gift from ESPN,\nbut I don't think the folks at ESPN will accomodate that for me ;-)\nESPN has this inexplicable affinity for the Patrick division, it\nseems.  \n\n-- \nValerie Hammerl\t\t\t\"Some days I have to remind him he's not \nhammerl@acsu.buffalo.edu\tMario Lemieux.\"  Herb Brooks on Claude\nacscvjh@ubms.cc.buffalo.edu\tLemieux, top scorer for the Devils, but \nv085pwwpz@ubvms.cc.buffalo.edu  known for taking dumb penalties.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.185+0000", "event": "documents", "entityId": 3864, "properties": {"category": "sci.electronics", "text": "From: markz@ssc.com (Mark Zenier)\nSubject: Re: Trace size for a 15 Amp supply\nOrganization: SSC, Inc.,  Seattle, WA\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 12\n\nR.G. Keen (rg@futserv.austin.ibm.com) wrote:\n: A quick and dirty way to get higher current carrying capacity\n: on PC board traces for one- or few-of-a-kind boards is to\n: strip some #14 Romex house wiring cable to bare copper, form\n: the bare copper to follow the trace, and solder it down.\n\nAnd if it's not quick and dirty, you can get bus bars that\nare stamped out with leads that insert in the PC board.\n\nMark Zenier  markz@ssc.wa.com  markz@ssc.com  \n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.185+0000", "event": "documents", "entityId": 3865, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: Frequent nosebleeds\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\nLines: 25\n\nIn article <1993Apr17.195202.28921@freenet.carleton.ca> ab961@Freenet.carleton.ca (Robert Allison) writes:\n>Does anyone know of any method to reduce this frequency? My younger brothers\n>each tried a skin transplant (thigh to nose lining), but their nosebleeds\n>soon returned. I've seen a reference to an herb called Rutin that is\n>supposed to help, and I'd like to hear of experiences with it, or other\n>techniques.\n\nRutin is a bioflavonoid, compounds found (among other places) in the\nrinds of citrus fruits.  These have been popular, especially in Europe,\nto treat \"capillary fragility\", and seemingly in even more extreme cases--\na few months ago, a friend was visiting from Italy, and he said that he'd\nhad hemorrhoids, but his pharmacist friend sold him some pills.  Incredulously,\nI asked to look at them, and sure enough these contained rutin as the active\ningredient.  I probably destroyed the placebo effect from my skeptical\nsputtering.  I have no idea how he's doing hemorrhoid-wise these days.\nThe studies which attempted to look at the effect of these compounds in\nhuman disease and nutrition were never very well controlled, so the\nreports of positive results with them is mostly anecdotal.\n\nThis stuff is pretty much non-toxic, and probably inexpensive, so there's\nlittle risk of trying it, but I wouldn't expect much of a result.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.185+0000", "event": "documents", "entityId": 3866, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Re: Final Solution for Gaza ?\nNf-ID: #R:cdp:1483500354:cdp:1483500364:000:1767\nNf-From: cdp.UUCP!cpr    Apr 26 17:36:00 1993\nLines: 38\n\n\nDear folks,\n\nI am still awaiting for some sensible answer and comment.\n\nIt is a fact that the inhabitants of Gaza are not entitled to a normal\ncivlized life. They habe been kept under occupation by Israel since 1967\nwithout civil and political rights. \n\nIt is a fact that Gazans live in their own country, Palestine. Gaza is\nnot a foriegn country. Nor is TelAviv, Jaffa, Askalon, BeerSheba foreign\ncountry for Gazans. All these places are occupied as far as Palestinians\nare concerned and as far as common sense has it. \n\nIt is a fact that Zionists deny Gazans equal rights as Israeli citizens\nand the right to determine by themsevles their government. When Zionists\nwill begin to consider Gazans as human beings who deserve the same\nrights as themselves, there will be hope for peace. Not before.\n\nSomebody mentioned that Gaza is 'foreign country' and therefore Israel\nis entitled to close its borders to Gaza. In this case, Gaza should be\nentitled to reciprocate, and deny Israeli civilians and military personnel\nto enter the area. As the relation is not symmetrical, but that of a master\nand slave, the label 'foreign country' is inaccurate and misleading.\n\nTo close off 700,000 people in the Strip, deny them means of subsistence\nand means of defending themselves, is a collective punishment and a\ncrime. It is neither justifiable nor legal. It just reflects the abyss \nto which Israeli society has degraded. \n\nI would like to ask any of those who heap foul langauge on me to explain\nwhy Israel denies Gazans who were born and brought up in Jaffa to return\nand live there ? Would they be allowed to, if they converted to Judaism ?\nIs their right to live in their former town depdendent upon their\nreligion or ethnic origin ? Please give an honest answer.\n\nElias\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.185+0000", "event": "documents", "entityId": 3867, "properties": {"category": "rec.sport.hockey", "text": "Organization: University of Maine System\nFrom: The Always Fanatical: Patrick Ellis <IO11330@MAINE.MAINE.EDU>\nSubject: Re: Bruins vs Canadiens:\n <1993Apr16.235100.18268@pasteur.Berkeley.EDU>\nLines: 18\n\nun, you better add at least another plus to the Pederson\nfor Neely trade, the Bruins also received a number 1 round\ndraft pick, didn't play great this year but Wesley's still a\ndecent defenseman....  And the Bruins got Pederson back eventually\nanyway.....\n\n             Pat Ellis\n\n\nP.S.  GO BRUINS    GO UMAINE BLACK BEARS    42-1-2       NUMBER 1......\n\n                   HOCKEY EAST REGULARS SEASON CHAMPIONS.....\n                   HOCKEY EAST TOURNAMENT CHAMPIONS>......\n                   PAUL KARIYA, HOBEY BAKER AWARD WINNER.......\n         NCAA DIV. 1 HOCKEY TOURNAMENT CHAMPIONS!!!!!!!!!!!!!!!!!!!\n\n\n                    M-A-I-N-E      GGGGOOOOOOO    BBBLLLUUEEEE!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.185+0000", "event": "documents", "entityId": 3868, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: andrew@frip.WV.TEK.COM (Andrew Klossner)\nSubject: Re: Soundblaster IRQ and Port settings\nReply-To: andrew@frip.wv.tek.com\nOrganization: Tektronix Color Printers, Wilsonville, Oregon\nLines: 19\n\n[]\n\n\t\"These LPT1, COM1, disk controller are call devices.  There are\n\tdevices that requires exclusive interrupt ownership, eg. disk\n\tcontroller (I6) and keyboard (I1).  There are also devices that\n\tdoes not require exclusive ownership, ie. it will share an\n\tinterrupt with another device, eg. LPT1\"\n\nNo.  In a standard ISA bus, the one that almost all non-laptop PCs use,\ntwo separate interface cards cannot share an interrupt.  This is due to\na screwup in the bus design.  For example, if your Soundblaster wants\nto drive interrupt number 7, then it must hold a certain bus wire to 0\nor 1 at all times, depending on whether or not it wants an interrupt.\nThis precludes letting another card assert interrupt number 7.\n\nWhen two or more devices in an ISA bus PC share an interrupt, it's\nbecause they're implemented by a single card.\n\n  -=- Andrew Klossner  (andrew@frip.wv.tek.com)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.185+0000", "event": "documents", "entityId": 3869, "properties": {"category": "rec.autos", "text": "Subject: Re: Ford SHO engine parts!\nFrom: david.bonds@cutting.hou.tx.us (David Bonds) \nReply-To: david.bonds@cutting.hou.tx.us (David Bonds) \nDistribution: world\nOrganization: The Cutting Edge - Houston, TX - 713-466-1525\nLines: 21\n\n\nW >>will NOT do work on internal engine components of the SHO engine.  This\nW >\nW >Good thing, too.\nW >\nW >At about 25K miles my cam sensor went south.  2 different Ford\nW >dealers tried 5 or 6 different \"fixes\", none of which worked.  Finally\nW >I took it down the street to the local mechanic.  This guy reads the\nW >code off the engine computer, says \"Bad cam sensor\", and fixes it in \nW >an hour...\n\nA friend of mine had some sensors damaged by flood waters, Ford denys any\nsensors are registering bad.  He and his father did the short a circut via\npaper clip method (not sure of the exact technique), and read the codes off\nthe \"service engine\" light flashes generated from this.  Came up with the \ndamaged sensors, went back to Ford, and TOLD them what was wrong.  They\nfixed the car after that.  What a bunch of bozos.\n                                 \n----\nThe Cutting Edge BBS (cutting.hou.tx.us)   A PCBoard 14.5a system\nHouston, Texas, USA   +1.713.466.1525          running uuPCB\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.185+0000", "event": "documents", "entityId": 3870, "properties": {"category": "talk.politics.mideast", "text": "From: casper@vxcrna.cern.ch (CASPER,DAVI./PPE)\nSubject: Re: American Jewish Congress Open Letter to Clinton\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: European Organization for Nuclear Research, CERN\nLines: 84\n\nIn article <C5vBnv.CJ@blaze.cs.jhu.edu>, arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes...\n>In article <22APR199300374349@vxcrna.cern.ch> casper@vxcrna.cern.ch (CASPER,DAVI./PPE) writes:\n>> [I complained about the US taking the point in Bosnia, when the Europeans\n>>  should be doing it]\n>  [Ken says the Bosnians are morally superior to the Serbians...] \n\n>This implies both sides are equal.  True, it may sometimes be difficult or\n>impossible to determine which side is the victim, but that does not mean that\n>victims do not exist.  \n\nYes, victims exist.  There are a staggering number of victims in the world and\nmore each day.  I think on balance, intervention would create more victims,\nincluding American ones.  Since the first responsibility of the US government\nis to protect Americans, I think they serve that role best by staying away\nfrom Bosnia and other regional conflicts.\n\n>Would you, in WWII have said that there were atrocities\n>on the sides of both the Jews and the Germans?\n\nOf course not.  The Jews were not trying to carve a territory out of Germany\neither, and except for small-scale resistance and a few larger uprisings, did\nnot have an army or a government.\n\n>>These people have been butchering each other for centuries.  When one\n>>side wins and gets what it wants, it will stop.\n> \n>Yes, but both sides want different things.  The Muslims chiefly want to not\n>be \"ethnic cleansed\".  The Serbians want to \"ethnic cleanse\" the Muslims.  It\n>is indeed true that each side will stop when it gets what it wants, but the\n>things that the two sides want are not equivalent.\n\nI see the pattern of atrocities as a fairly often practiced tactic of a\ncolonizing power - driving away and/or eliminating the population of an\narea they want to control.  The US tried basically that in Vietnam, the Iraqis\nin Kuwait, the Israelis in Palestine, South Africa, etc, etc, etc.  It sucks,\nit's ugly, and it's saddening.  But it is not genocide.\n\nIt is not my impression that the Serbs want to eliminate every Muslim in\nYugoslavia.  I still say the Bosnians are getting their asses kicked; they\nshould surrender and evacuate the areas they can't hold.\n\n> [I said the fixation on Bosnia is due to it being in a European country,\n>  rather than the third world]\n> \n>I recall, before we did anything for Somalia, (apparent) left-wingers saying\n>that the reason everyone was more willing to send troops to Bosnia than to\n>Somalia was because the Somalis are third-worlders who Americans consider\n>unworthy of help.  They suddenly shut up when the US decided to send troops to\n>the opposite place than that predicted by the theory.\n\nI am a staunch Republican, BTW.  The irony of arguing against military\nintervention with arguments based on Vietnam has not escaped me.  I was opposed\nto US intervention in Somalia for the same reasons, although clearly it was\nnot nearly as risky.\n\n>For that matter, this theory of yours suggests that Americans should want to\n>help the Serbs.  After all, they're Christian, and the Muslims are not.  If\n>the desire to intervene in Bosnia is based on racism against people that are\n>less like us, why does everyone _want_ to help the side that _is_ less like us?\n>Especially if both of the sides are equal as you seem to think?\n\nWell, one thing you have to remember is, the press likes a good story.   Good\nfor business, don't you know.  And BTW, not \"everyone\" wants to help the\nside that is less like us.\n\nI never said the two sides were morally equivalent, I said neither one is\ninnocent.\n\nThere are just too many good reasons to stay away:\n\n1) The Europeans are perfectly able to deal with this dispute on their borders\n   in any way we do it.  Put another way, we have no assistance to offer the\n   Europeans which they do not already possess themselves.  It is not good to\n   promote the idea in anyone's mind that the United States is responsible\n   for cleaning up every bloody mess in the world.\n\n2) Clinton is not the man to lead this country into a military adventure.  Full\n   stop.\n\n3) It is by no means clear what intervention would accomplish, nor that it\n   would necessarily help the victims.  It is not clear what the goal is and\n   at what point any commitment could be ended.\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.185+0000", "event": "documents", "entityId": 3871, "properties": {"category": "rec.autos", "text": "From: andyh@chaos.cs.brandeis.edu (Andrew J. Huang)\nSubject: Re: AudiWatch Update (Tm) #11\nOrganization: Brandeis University\nLines: 17\n\nIn article <1993Apr2.194838.13476@news.cs.brandeis.edu> andyh@chaos.cs.brandeis.edu (Andrew J. Huang) writes:\n>In article <1993Apr2.181037.11188@magnus.acs.ohio-state.edu> bqueiser@magnus.acs.ohio-state.edu (Brian J Queiser) writes:\n>>powell@interlan.interlan.com (Glen D. Powell) writes:\n\n>>The kind of corporate raiding apparently undertaken by VW is shameful.\n>\n>Agreed.  However, the particular execs had been working with Iggy for\n>many years and had left GM Europe to go to Detroit.  With their raison\n>-andy\n\nI was out of date.  VW is stealing execs directly from Opel,\nindependent of Lopez.  Shameful.\n\n-andy\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.186+0000", "event": "documents", "entityId": 3872, "properties": {"category": "rec.autos", "text": "From: sdexter@shl.com (Scott Dexter)\nSubject: Isuzu Amigo opinions wanted....\nOrganization: SHL Systemhouse Inc.\nLines: 27\nDistribution: usa\nNNTP-Posting-Host: technet1.shl.com\n\n\n\nIs there anyone out there in NetLand that has/has had one of these?\n\n\nCan someone give me a non-Consumer Reports review (or point me to a source) ???\n\n\nThanks\nScott\n\n-----------------------\nsdexter@ucrengr.ucr.edu\n\tComputer Science Undergraduate,\n\tUniversity of California, Riverside\n\tInternet :  138.23.166.21\n\nsdexter@technet1.shl.com       \n  \t Facilities Engineer,\n\t SHL SystemHouse, Inc. ,Technology Network\n         Internet : 192.75.61.2\n\n\t\" You say its gonna happen \"now\"\n\t  What exactly do you mean?\n\t  You see I've already waited too long,\n\t  And all my hope is gone \"\n\t\t\t\t\t- The Smiths\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.186+0000", "event": "documents", "entityId": 3873, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Slavery (was Re: Why is sex only allowed in marriage: ...)\nOrganization: Cookamunga Tourist Bureau\nLines: 18\n\n> Oh, this all sounds so nice!  Everyone helping each other and always smiling\n> and fluffy bunnies everywhere.  Wake up!  People are just not like that.  It\n> seems evident from history that no society has succeeded when it had to rely\n> upon the goodwill and unselfishness of the people.  Isn't it obvious from\n> places like Iran that even if there are only a few greedy people in society\n> then they are going to be attracted to positions of power?  Sounds like a\n> recipe for disaster.\n\nLooking at historical evidence such 'perfect utopian' islamic states\ndidn't survive. I agree, people are people, and even if you might\nstart an Islamic revolution and create this perfect state, it takes \nsome time and the internal corruption will destroy the ground rules --\nagain.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.186+0000", "event": "documents", "entityId": 3874, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jim@jagubox.gsfc.nasa.gov (Jim Jagielski)\nSubject: Re: Quadra SCSI Problems???\nKeywords: Quadra SCSI APS\nLines: 29\nReply-To: jim@jagubox.gsfc.nasa.gov (Jim Jagielski)\nOrganization: NASA/Goddard Space Flight Center\n\ntzs@stein2.u.washington.edu (Tim Smith) writes:\n\n>> ATTENTION: Mac Quadra owners: Many storage industry experts have\n>> concluded that Mac Quadras suffer from timing irregularities deviating\n>> from the standard SCSI specification. This results in silent corruption\n>> of data when used with some devices, including ultra-modern devices.\n>> Although I will not name the devices, since it is not their fault, an\n>> example would be a Sony 3.5 inch MO, without the special \"Mac-compatible\"\n>> firmware installed. One solution, sometimes, is to disable \"blind writes\"\n\n>This doesn't sound right to me.  Don't Quadras use the 53C96?  If so, the\n>Mac has nothing to do with the SCSI timing.  That's all handled by the\n>chip.  About the only the timing could be wrong is if Apple programs the\n>clock registers wrong on the 96.  That, however, should only really hurt\n>synchronous transfer, which is not used by the Mac SCSI Manager.\n\n>Furthermore, disabling blind writes should be meaningless on a Quadra.\n>On Macs that used the 5380, which is a much lower level SCSI chip, the\n>Mac was responsible for the handshake of each byte transferred.  Blind\n>mode affected how the Mac handled that handshake.  On the 5396, the\n>handshake is entirely handled by the chip.\n\nThe docs say that it's a SCSI Manager bug, if this changes things at all...\n-- \n    Jim Jagielski               |  \"And he's gonna stiff me. So I say,\n    jim@jagubox.gsfc.nasa.gov   |   'Hey! Lama! How about something,\n    NASA/GSFC, Code 734.4       |   you know, for the effort!'\"\n    Greenbelt, MD 20771         |\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.186+0000", "event": "documents", "entityId": 3875, "properties": {"category": "talk.politics.guns", "text": "From: porges@beretta.camb.inmet.com (Don Porges)\nSubject: Re: JFFO has gone a bit too far\nNntp-Posting-Host: beretta\nOrganization: Intermetrics Inc.\nDistribution: usa\nLines: 80\n\n\nHaving read the posted long article by JPFO, I have some observations:\n\n1.  This article does NOT claim that the GCA of 1968 is a \"verbatim \ntranslation\" of a Nazi law.  What it says is that in another place --\nthe book they're talking about -- they compare the two things section\nby section.  The implication is that the similarities are devastating.\nIn the next sentence, they talk about how in that book they reproduce \nthe German text of the Nazi law, together with its translation.  Not \nsurprisingly, a reader could easily conflate these two things into a \nsingle idea:  that the American GCA is a literal translation of the Nazi\nlaw; and sure enough, that's what the whole thing has mutated into, \nurban-folklore style.\n\n2.  The article goes to great pains to establish that Senator Dodd had a \ncopy of the Nazi law, either from his time on the Nurnberg prosecution \nteam or later.  This fact is considered highly incriminating, but I don't \nunderstand why.  The author repeats several times that he is simply unable \nto imagine how anyone could come into possession of the original text; and \nyet in a paragraph towards the end, he explains it perfectly:\n\n\"If Dodd got his copy of the original German text of the Nazi Weapons\nLaw during his time at Nurnberg, it likely was part of a collection of\ndocuments, for example, issues of the Reichsgesetzblatt [the German\nlaw registry].\"\n\nBingo.  Exactly.  \n\nDodd had a *book*, with a series of Nazi laws in it, including the one\nunder discussion.  All of the stuff about \"Why would a U.S. congressman\nhave a copy of a Nazi law?\" melts away, by the author's admission.  He\nthen continues:  \"But if he acquired the original German text of the \nNazi Weapons Law after his service at Nurnberg, he must have done so \nfor a very specific reason...\"  But there's absolutely no reason to \nthink that this is the case.  In fact, as a \"senior member of the U.S. \nteam that helped to prosecute Nazi war criminals\", it seems to me that\nhe would have *had* to have a copy.  All arguments about whether \nthe Nazi Weapon Law is really of historical interest (as it obviously\nis, certainly according to the author here), or whether Dodd personally\nprosecuted the Interior Minister who signed it, can be put aside as red \nherrings.\n\n3.  Having established that Dodd owned a copy of the original German text, the\nJPFO article then tries to draw sinister implications from the fact that he \nasked to have it translated.  The problem is, in the context of the charge \nlevelled at Dodd, these two things work *against* each other.  People ask \nto have things translated when they *don't know what they mean*.  If Dodd \ntook it upon himself to preserve the Nazi law with idea of someday introducing \nit into American law, surely by 1968 he would have know what it *meant*, \nwouldn't he?\n    Anyway, this precise charge -- the main one that I questioned in an earlier\nposting -- is just silly.  Why would Dodd need the exact translation for this\npurpose?  Is the idea that the gun controllers, despite being presumably bent\non disarming the populace with the goal of eventually destroying all civil\nliberties, needed a crib sheet?  Didn't they have any idea how to do it\non their own?\n    Once again, the author provides a perfectly acceptable answer to his\nown question: \"Dodd may have offered his copy of the Nazi Weapons Law\nto show that the specific proposal did not resemble anything in the \nNazi law.\"  In fact, since the law and its translation *were* entered\ninto the Congressional Record, under the heading of documents \"concerning\nthe history of Nazism and gun confiscation\", Dodd's motivation isn't a \nmystery:  he asked for the translation in order to put it in the CR.\n\n4.  Even this article makes it clear that the part of the Nazi law that\nwas added *by* the Nazi regime is only a small part of that law.  \nRegistration of guns, for instance, was begun in 1928, and thus NOT\na \"Nazi-inspired\" idea.  The parts of the Nazi law that parallel the \n1968 GCA include handgun control of some sort, and the identification \nof certain weapons as sporting weapons.  The JPFO then goes on to list \nother parts of the Nazi law, forbidding ownership of weapons by Jews;\nof course, there are no such provisions in the American GCA.  Nevertheless,\nin a rhetorical move guaranteed to muddy the waters, immediately after the \ndiscussion of the anti-Jewish parts of the law, the JPFO article continues, \n\"Given the parallels between the Nazi Weapons Law and the GCA'68...\" -- so \nas to get maximum emotional mileage out of that aspect of the law.\n-- \n\t\t\t\t\t-- Don Porges\n\t\t\t\t\tporges@inmet.camb.inmet.com\n\t\t\t\t\t..uunet!inmet!porges\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.186+0000", "event": "documents", "entityId": 3876, "properties": {"category": "sci.crypt", "text": "From: m.t.palmer@larc.nasa.gov (Michael T. Palmer)\nSubject: re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: NASA Langley Research Center, Hampton, VA\nLines: 56\nNNTP-Posting-Host: oldtown.larc.nasa.gov\n\n\nIn article <C5L12t.GCI@dove.nist.gov> clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement) writes:\n\n>Q:   Suppose a law enforcement agency is conducting a wiretap on\n>     a drug smuggling ring and intercepts a conversation... [etc]\n        ^^^^^^^^^^^^^^^^^^^\\\n                            Great... nice choice of bad guys to\n                            convince everyone how \"bad\" unrestricted\n                            encryption is.  Why not use a child\n                            molester instead?  Of course, the word\n                            *suspect* is never used here, so I guess\n                            these people have already been convicted\n                            and are operating this drug ring from\n                            their jail cells.\n\nHow about *this* question instead?\n\nQ:   Suppose a law enforcement agency is conducting a wiretap on\n     a political opponent of a senior administration official and\n     intercepts a conversation...\n\nKinda changes your interpretation of the event, doesn't it?  And yes,\nthe presence of the Clipper Chip DOES change things, because it will\nnot only give the people talking on the phone a false sense of security,\nit will also give federal law enforcement agencies the justification\nto deny use of strong encryption methods that are inconvenient to them.\nDang it all, it's SUPPOSED to be inconvenient (but not impossible).\nThat's the ONLY sure way to make sure that abuses are minimized while\nstill allowing legitimate law enforcement access.\n\n\n>Q:   How strong is the security in the device?  How can I be sure\n>     how strong the security is?  \n>\n>A:   This system is more secure than many other voice encryption\n>     systems readily available today.  While the algorithm will\n>     remain classified to protect the security of the key escrow\n>     system, we are willing to invite an independent panel of\n>     cryptography experts to evaluate the algorithm to assure all\n>     potential users that there are no unrecognized\n>     vulnerabilities.\n\nUh huh... sure.  I predict that within two months (weeks?) of the chip's\ndebut, the full technical details will be posted to sci.crypt.  And if\nthis has ANY impact on the security of the key escrow system, then we've\nbeen lied to.  Any cryptosystem worth its salt can withstand the light\nof public scrutiny, and there is NO WAY you can be sure that an\nalgorithm has no \"unrecognized vulnerabilities\" unless you have half\nthe world trying to break it for a decade or so.  Even then, you gotta\nbe careful.\n\n \nMichael T. Palmer         |  \"A man is crazy who writes a secret in any\nm.t.palmer@larc.nasa.gov  |   other way than one which will conceal it\nRIPEM key on server       |   from the vulgar.\" - Roger Bacon, 1220-1292\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.186+0000", "event": "documents", "entityId": 3877, "properties": {"category": "sci.electronics", "text": "From: billq@ms.uky.edu (Billy Quinn)\nSubject: Re: Radio Shack Battery of the Month Club\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 18\n\ndonrm@sr.hp.com (Don Montgomery) writes:\n\n\n>Radio Shack has canceled their \"Battery of the Month\" Club.  Does \n>anyone know why?  \n\n>They say they'll honor existing cards in customer hands, but no new\n>cards will be issued.\n\nI was told that this is an environmental based move.  I was also told that\nthere will be 'somthing' else to replace the battery club.  Like maybe\nthe 360K floppy club ;-).\n\nWe'll see ....\n-- \n*-----------------------------------------------------------------------*\n*\tBill Quinn\t\t\tbillq@ms.uky.edu\t\t*\n*-----------------------------------------------------------------------*\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.186+0000", "event": "documents", "entityId": 3878, "properties": {"category": "comp.windows.x", "text": "From: markhof@ls12r.informatik.uni-dortmund.de (Ingolf Markhof)\nSubject: Re: Title for XTerm\nOrganization: CS Department, Dortmund University, Germany\nLines: 55\nDistribution: world\nNNTP-Posting-Host: ls12r.informatik.uni-dortmund.de\nKeywords: XTerm\n\nIn article <1quh74$r71@irz401.inf.tu-dresden.de>, beck@irzr17.inf.tu-dresden.de (Andre Beck) writes:\n|> \n|> In article <C5oL74.3B1@aeon.in-berlin.de>, thomas@aeon.in-berlin.de (Thomas Wolfram) writes:\n|> |> >Hey guys!\n|> |> >I work on many stations and would like this name and current logname\n|> |> >to be in a title of Xterm when it's open and a machine name only\n|> |> >when it's closed. In other words, I want $HOST and $LOGNAME to appear\n|> |> >as a title of opened XTerm and $HOST when XTerm is closed.\n|> |> >How can I do it?\n|> |> \n|> |> Almost all window managers (twm, mwm, olwm and their derivates) support\n|> |> escape sequences for it. For your purpose put following into your\n|> |> .login (if you're using csh or tcsh), for sh you have to modify it.\n|> |> \n|> |> if ( \"$term\" == \"xterm\" ) then\n|> |> \techo \"^[]2;${LOGNAME}@${HOST}^G^[]1;${HOST}^G\"\n|> |> endif\n|> |> \n|> \n|> 1) This is NOT a feature of the Window Manager but of xterm.\n|> 2) This sequences are NOT ANSI compatible, are they ?\n|>    Does anyone know IF there are compatible sequences for this and what they\n|>    are ? I would think they are DCS (device control sequence) introduced,\n|>    but may be a CSI sequence exists, too ?\n|>    This MUST work on a dxterm (VT and ANSI compatible), it may not work\n|>    on xterms.\n\nIt works on xterms. At least I have no problem with it. - Back to the original\nquestion:\n\nI usually start new xterms by selecting the proper menu entry in my desktop\nmenu. Here is a sample command:\n\n\txterm -sl 999 -n ls12i -title ls12i -e rlogin ls12i &\n\nThe -n and -title options give the text for window and icon. As I use the\ntcsh (a wonderful extension of the csh), I can do the following:\n\nI have an\n\n\talias precmd echo -n '^[]2\\;${HOST}:$cwd^G'\n\nin my ~/.tcshrc. This is a special alias for tvtwm. It is executed each time\nbefore printing the prompt. So, I have the current host name and the current\ndirectory path in the title bar of my xterms.\n\n------------------------------------------------------------------------------\n      ____                                                                    \n  UniDo  /  Ingolf Markhof  University of Dortmund, LS Informatik XII         \n ___/   /                   P.O. Box 500 500, D-4600 Dortmund 50, F.R. Germany\n \\  \\  /                    Phone: +49 (231) 755 6142, Fax: +49 (231) 755 6555  \n  \\__\\/                     Email: markhof@ls12.informatik.uni-dortmund.de    \n                                                                              \n------------------------------------------------------------------------------\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.186+0000", "event": "documents", "entityId": 3879, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: muslim tithe; sexism in Genesis 2\nLines: 33\n\nAccording to mdbs@ms.uky.edu, muslims tithe 1/6 of their income.\n\nPerhaps there are some offshoots of Islam that impose this on their\nfollowers.  But the standard tithe is 1/40 of one's net worth, once\na year.\n\nThe same writer also objects to the Bible for teaching that\n\n > \"woman was created after man, to be his helper\" etc.\n\nThis is presumably a reference to Genesis 2. Suppose that that\nchapter had been written with the sexes reversed. We have God\ncreating woman, and then saying, \"It is not good that woman should\nbe alone. I will make a help meet for her.\" Feminists would be\noutraged. The clear implication would be that God had started at the\nbottom and worked up, making first the plants, then the fish and\nbirds, then the beasts, then woman, and finally His masterpiece, the\nMale Chauvinist Pig. The statement that woman is not capable of\nfunctioning by herself, that she needs a man to open doors for her,\nwould have been seen as a particularly gratuitous insult. The fact\nthat the creation of woman from the dust of the ground was given\nonly briefly and in general, while the creation of the Man was given\nin six times the number of words, would have been cited as evidence\nof the author's estimate of the relative importance of the sexes.\nThe verdict would have been unequivocal. \"No self-respecting woman\ncan accept this book as a moral guide, or as anything but sexist\ntrash!\" I suggest that Moses, fearing this reaction, altered his\noriginal draft and described the creation with Adam first and then\nEve, so as to appease Miriam and other radical feminists of the day.\nFor some reason, however, it did not work.\n\n Yours,\n James Kiefer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.186+0000", "event": "documents", "entityId": 3880, "properties": {"category": "sci.med", "text": "From: jfare@53iss6.Waterloo.NCR.COM (Jim Fare)\nSubject: ringing ears\nKeywords: ringing ears, sleep, depression\nReply-To: jfare@53iss6.Waterloo.NCR.COM (Jim Fare)\nDistribution: world\nOrganization: Imaging Systems Division, NCR Corp, Waterloo, Ont., CANADA\nLines: 15\n\n\n\nA friend of mine has a trouble with her ears ringing.  The ringing is so loud\nthat she has great difficulty sleeping at night.  She says that she hasn't \nhad a normal night's sleep in about 6 months (she looks like it too :-().\nThis is making her depressed so her doctor has put her on anti-depressants.\n\nThe ringing started rather suddenly about 6 months ago.  She is quickly losing\nsleep, social life and sanity over this.\n\nDoes anyone know of any treatments for this?  Any experience?  Coping\nmechanisms?  Any opinions on the anti-depressant drugs?\n\n                                              [J.F.]\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3881, "properties": {"category": "soc.religion.christian", "text": "From: morgan@socs.uts.edu.au\nSubject: Re: Prophetic Warning to New York City\nReply-To: morgan@socs.uts.edu.au\nOrganization: University of Technology Sydney\nLines: 49\n\nIn article <Apr.9.01.10.38.1993.16892@athos.rutgers.edu> evensont@spot.Colorado.EDU (EVENSON THOMAS RANDALL) writes:\n>In article <Apr.7.01.56.20.1993.22789@athos.rutgers.edu> reid@cs.uiuc.edu (Jon Reid) writes:\n>>Deon.Strydom@f7.n7104.z5.fidonet.org (Deon Strydom) writes:\n>>\n>Which brings me around to asking an open question.  Is the Bible a closed\n>book of Scripture?  Is it okay for us to go around saying \"God told\n>me this\" and \"Jesus told me that\"?  Wouldn't that imply that God is STILL\n>pouring out new revelation to us?  I know that some people will feel\n>that is okay, and some will not.  The concept of a closed canon would\n>certainly cast a shadow on contemporary prophets.  On the other hand,\n>an open canon seems to be indicated sometimes.\n>\n\nLet's get back to basics.  Canon (from the latin) means a rule.  If\nwe say that a rule is open then its a rule made to be broken.  \nThere is an issue also of measurement against a rule.  Thus the words\nthat are spoken need to be compared against the rule/canon but not\nadded to the canon.\n\nIs new revelation necessary?  Topical, current, personal revelation\nI'd say is necessary.  New revelation for all people for all times\nis not necessary as we have that in Scripture.\n\nYou also seem to confuse canon with scripture.  Scripture may speak of\nitself being open - ie God speaking today.  It would speak that it is\nclosed in the sense that the canon is unchangeable.  (Though the concept\nof canon is later historically.)\n\n>Also interesting to note is that some so called prophecies are nothing new\n>but rather an inspired translation of scripture.  Is it right to call\n>that prophecy?  Misleading?  Wouldn't that be more having to do with\n>knowledge?  I know, the gift of knowledge may not be as exciting to\n>talk about, but shouldn't we call a horse a horse?\n>\n\nI agree with the problem of confusion.  If prophecy is meant to encourage,\nexhort or correct then is an overlap with scripture.  If prophecy is\nmeant to bring a `word' of the form \"the man you live with is not your\nhusband\" then that is knowledge.  Yet the exact words their are scripture.\nI would expect the difference to be the motive and means for delivery.\nThe reading of scripture itself can be a powerful force.\n\nRegards\n David\n--\nDavid Morgan| University of Technology Sydney | morgan@socs.uts.edu.au _--_|\\\n            | Po Box 123 Broadway NSW 2007    | Ph: + 61 2 330 1864   /      \\\n            | 15-73 Broadway Sydney           | Fax: +61 2 330 1807   \\_.--._/\n\"I paid good money to get my opinions; you get them for free\"                v\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3882, "properties": {"category": "misc.forsale", "text": "From: scalawag@carson.u.washington.edu (Keith Frederick)\nSubject: GRE & GRE Economics Test Books for SALE\nOrganization: University of Washington, Seattle\nLines: 34\nDistribution: usa\nNNTP-Posting-Host: carson.u.washington.edu\nSummary: GRE,GRE Economics Test Books for SALE\n\nGRE Test Aids for Sale\n---------------------------------\n\nCliffs GRE Preparation Guide, (c). 1992\n3 full length practive tests w/ answers and explanations\nAlso includes test-taking strategies. By the same people\nwho do Cliffs Notes.\n                ---- $5\n\nGRE Economics Test by the Research and Education Association\nRevised 1990 edition. Includes 6 full length exams with detailed\nexplanations and solutions to each question. 648 pages!\n                ---- $10\n\nPracticing to take the GRE Economics Test by ETS.\nIncludes an official full-length GRE Economics Test from 1985-1986 and \naswers included but no explanations.\n                ---- $4\n\nPracticing to take the GRE General Test-No. 8 by ETS.\nIncludes three official GRE General Tests from 1989-1990 (w/ answers but\nno explanations) and one additional GRE General Test complete with \nexplanations to answers.\n                ---- $8\n\nShipping is $1 extra. Buy everything for $25 and I cover the shipping.\n ________________________________________________________________________\n|                                  |                                     |\n| Keith R. Frederick               | Happiness is our moral purpose.     |\n| (206)285-1576                    | If you see Dr. Fu Manchu, Kill Him! | \n| scalawag@carson.u.washington.edu | Reason is our only absolute.        |\n| I'm not a number, I'm a free man!|-------------------------------------|\n| CIS: 73760,3521  UWID: 8722277   | :::   Cornell here I come!!!    ::: |\n|__________________________________|_____________________________________|\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3883, "properties": {"category": "talk.religion.misc", "text": "From: xcpslf@oryx.com (stephen l favor)\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nOrganization: Oryx Energy\nLines: 7\nNNTP-Posting-Host: what.oryx.com\nX-Newsreader: Tin 1.1 PL5\n\n: Seems to me Koresh is yet another messenger that got killed\n: for the message he carried. (Which says nothing about the \n: character of the messenger.) I reckon we'll have to find out\n: the rest the hard way.\n: \n\nKoresh was killed because he wanted lots of illegal guns.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3884, "properties": {"category": "talk.politics.mideast", "text": "Nntp-Posting-Host: sinober.ifi.uio.no\nFrom: michaelp@ifi.uio.no (Michael Schalom Preminger)\nSubject: Re: Zionism is Racism\nOrganization: Dept. of Informatics, University of Oslo, Norway\nLines: 18\nOriginator: michaelp@sinober.ifi.uio.no\n\n\nIn article <20APR93.23565659.0109@VM1.MCGILL.CA>, B8HA000 <B8HA@MUSICB.MCGILL.CA> writes:\n> In Re:Syria's Expansion, the author writes that the UN thought\n> Zionism was Racism and that they were wrong.  They were correct\n> the first time, Zionism is Racism and thankfully, the McGill Daily\n> (the student newspaper at McGill) was proud enough to print an article\n> saying so.  If you want a copy, send me mail.\n> \n> Steve\n> \nWas the article about zionism? or about something else. The majority\nof people I heard emitting this ignorant statement, do not really\nknow what zionism is. They have just associated it with what they think\nthey know about the political situation in the middle east. \n\nSo Steve: Lets here, what IS zionism?\n\nMichael\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3885, "properties": {"category": "comp.graphics", "text": "From: beaver@rot.qc.ca (Andre Boivert)\nSubject: Photoshop for Windows\nOrganization: Groupe de Recherche Operationnelle en Telecommunication (ROT) Inc.\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 13\n\n\n\nI am looking for comments from people who have used/heard about PhotoShop\nfor Windows. Is it good? How does it compare to the Mac version? Is there\na lot of bugs (I heard the Windows version needs \"fine-tuning)?\n\nAny comments would be greatly appreciated..\n\nThank you.\n\nAndre Boisvert\nbeaver@rot.qc.ca\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3886, "properties": {"category": "talk.politics.guns", "text": "From: vincent@cad.gatech.edu (Vincent Fox)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Deep Thirteen, Gizmonics Institute\nLines: 90\nDistribution: usa\nNNTP-Posting-Host: cae.cad.gatech.edu\n\nIn <93104.173826U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n[deleted]\n[]       And as far as fully-automatic weapons, you can be a lot better\n[]armed if you want to hit what you aim at.\n[]\n>What seems to be happening here is the situation getting totally blown out of\n>proportion.  In my post I was referring to your regular patrolman in a car\n>cruising around the city vs. gang members.  Of course the police have access\n>to the things that you mentioned but do they use tanks and such all of the\n>time?  Of course they don't and that's the point I was trying to make.  Every\n>day when I go out to lunch I always see cops coming in.  The majority that I\n>see are still carrying revolvers.  Not that there is anything wrong with a\n>revolver but if you're a cop that is up against some gang member with a couple\n>of automatics in his coat (I mean semi-auto handguns) you're going to be at a\n>disadvantage even with training.  I have been at a shooting range where gang\n>gang members were \"practicing\" shooting.  They were actually practicing\n>taking out their guns as quick as possible and shooting at the target\n>and they weren't doing too badly either.   The University cops here (who are\n>are state cops) are armed better than the Chicago police.  It seems most\n>state cops are.\n\nDefine \"armed better\". Go shoot a revolver and a semi-auto like the\nColt .45. Does one fires faster than the other? Nope. Aside from which\nfaster rate of fire is usually not desirable. Sure it makes the other\nguys duck for cover, but just *YOU* trying hitting anything with a Thompson\nin hose-mode. This is why the military is limiting it's M-16 now to\n3-round burst-fire. Simple semi-auto would be better, but the troops\nlike to be able to rock and roll even if it is wasteful of ammo (something\noften in short supply when the enemy is plentiful).\n\nA revolver is equally capable as a semi-auto in the same caliber.\n\n- A revolver also has the advantage that if it misfires you just pull\n  the trigger again.\n- A double-action revolver (almost all of them) can be hand-cocked first,\n  but will fire merely by pulling the trigger.\n- A misfire in a revolver merely means you must pull the trigger again\n  to rotate to the next round.\n- A revolver can be carried with the 6th chamber empty and under the\n  hammer for maximum safety, but still can be drawn and fired with an\n  easy motion, even one handed.\n- Speedloaders for a revolver allow reloads almost as fast as magazines\n  on semi-autos. Can be faster depending on users.\n\n- A misfire in a semi-auto will require you to clear a jammed shell\n  first, time spent which can be fatal. And a vital second or so is often\n  lost as you realize \"hey, it's jammed!\" before starting to do anything\n  about clearing it.\n- Most semi-autos must have the slide worked to chamber the first round\n  and cock the hammer. Some police carry their semi-autos with the \n  chamber loaded and hammer cocked, but a safety engaged. I do not consider\n  this safe however. You must trade-off safety to get the same speed\n  of employment as a revolver.\n- There are some double-action semi-autos out there, but the complexity of\n  operation of many of them requires more training.\n\nSome police departments switched to Glocks, and then started quietly\nswitching many officers back to the old revolvers. Too many were having\naccidents, partly due to the poor training they received. Not that Glocks\nrequire rocket scientists, but some cops are baffled by something as complex\nas the timer on a VCR.\n\nAnyone who goes anyone saying that the criminals obviously outgun\nthe police don't know nothing about firearms. Turn off COPS and Hunter\nand pay attention. I do not seek here to say \"semi-autos are junk\"\nmerely that assuming they are better for all jobs is stupid. A cop\nwith a revolver on his hip and a shotgun in the rack is more than\nequipped for anything short of a riot.\n\nGun control is hitting what you aim at. If you whip out a \nwonder-nine and fire real fast you may find you don't hit anything.\nGood controlled fire from a revolver is more likely to get you a hit.\nI own a 9mm Beretta myself but consider it inferior as a carry weapon\nto something like the Ruger Security Six revolver. If I haven't hit\nwhat I'm aiming at in the first 5 shots, something is quite seriously\nwrong somewheres. While I might like having the backup capacity of those\nextra shots in certain cases, overwhelmingly the # of shots fired in\ncriminal encounters is less than 5.\n\nWhat do crooks overwhelmingly use in crime? Why the same nice simple\n.38 revolvers that the police often use. Well actually some police \nprefer the much heftier .357 Magnum, but anyway.....\n\nObPlea: Don't flame me, I prefer semi-autos for most things. But they \n        introduce unneccessary complications to something as nerve-wracking\n        as an abrupt encounter with a lone criminal.\n\n-- \n\"If everything had gone as planned, everything would have been perfect.\"\n\t-BATF spokesperson on CNN 3/2/93, regarding failed raid attempt in TX.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3887, "properties": {"category": "rec.sport.hockey", "text": "From: jae2001@andy.bgsu.edu (Jason Ehas)\nSubject: Re: Giveaways\nOrganization: Home of 1984 NCAA hockey champs\nLines: 43\n\nIn article <1qi44l$kqr@access.digex.net>, steveg@cadkey.com (Steve\nGallichio) wrote:\n> \n> \n> John P. Curcio (jpc@philabs.philips.com) responded to my drivel:\n> \n> >steveg@cadkey.com (Steve Gallichio) writes:\n> > \n> >>I still am surprised that no one has tried giving away the goodies at the end\n> >>of the game. The two problems with that, of course, are that you would want\n> >>to make sure the first people in the building would be assured of getting\n> >>them (probably redeemable vouchers), and that the building managers want to\n> >>avoid at all costs delaying people as they leave the building, if, for\n> >>instance, the goodies are given to people as they exit.\n> >\n> >I went to the New Jersey Devils/Carvel Ice Cream Puck Night (tm) last year to\n> >see the beloved Bruins play.  The pucks were given out at the end of the game.\n> >I could just imagine what would have happened late in the third if the Bruins\n> >were winning....\n> \n> It figures, after I posted the first article, I found out that the Whalers are\n> going to be using coupons for the the giveaway on Friday Night. I believe that\n> is is the \"Some Big Corporation (Probably a Bank) Flying Disk Night.\" I think\n> that we could all see the potential for danger here...\n> \n> >|> All in all, I have seen a whole bunch of giveaways land on the ice, and it\n> >|> never ceases to amuse me. I'm just thankful for the players that no one has\n> >|> yet to sponsor 'Lead Pipe Night' at any arenas...\n> >\n> >That's probably because they couldn't find anyone to sponser it... Maybe USS\n> >could sponser the Pittsburgh Penguins/US Steel Steel Rod Night-- close enough?\n> \n> Naah, it'd probably bounce off of Jay Caufield.\n> \n> -SG\n\nI was at a Cincinnati Cyclones game a year ago when the local country\nstation sponsored a kazoo giveaway.  After a particularly bad call by the\nunderexperienced ECHL ref, it was Kazoostorm time down on the ice.  I\nthought this was a pathetic display by the fans, but they were rightfully\nunhappy.\n\nJason\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3888, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: spitz@ana.med.uni-muenchen.de (Richard Spitz)\nSubject: Re: Windows for WorkGroups and LAN Workplace\nReply-To: spitz@ana.med.uni-muenchen.de (Richard Spitz)\nOrganization: Inst. f. Anaesthesiologie der LMU, Muenchen (Germany)\nDistribution: comp.os.ms-windows.apps,comp.os.ms-windows.misc,comp.os.ms-,world\nLines: 30\n\nFlint.Waters@uwyo.edu (Flint Waters) writes:\n\n\n>>Now does anyone know if it is possible to use W4WG and Lan Workplace\n>>for DOS at the same time. \n\n>Yup.  We're using both and they work just fine.  Hopefully, someday WFWG\n>will communicate over LWP TCPIP.  Right now we have to load NetBeui.\n\n>I use ODI with ODINSUP and all works well.\n\nHey, sounds great. Does that mean that W4WG works with ODI? I thought it   \nuses NDIS.                                                                 \n                                                                           \nMy problem is that Lan Workplace with all its drivers uses up most of my   \nUMBs, so I'd hate to have to load many more drivers to make W4WG work      \nalong.                                                                      \n                                                                            \nI read in a German computer magazine that TCP/IP support for W4WG is just   \naround the corner. Anybody have any news about this?                        \n                                                                            \nRegards, Richard                                                            \n\n-- \n+----------------------------+-------------------------------------------+\n| Dr. Richard Spitz          | INTERNET: spitz@ana.med.uni-muenchen.de   |\n| EDV-Gruppe Anaesthesie     | Tel     : +49-89-7095-3421                |\n| Klinikum Grosshadern       | FAX     : +49-89-7095-8886                |\n| Munich, Germany            |                                           |\n+----------------------------+-------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3889, "properties": {"category": "sci.space", "text": "From: gene@theporch.raider.net (Gene Wright)\nSubject: NASA Special Publications for Voyager Mission?\nOrganization: The MacInteresteds of Nashville, Tn.\nLines: 12\n\nI have two books, both NASA Special Publications, on the Voyager \nMissions. One is titled \"Voyages to Jupiter\" the other \"Voyage to Saturn\" \nThese were excellent books put together after the encounters with each \nplanet. \n\nThe question is: Did NASA ever put together a similar book for either the \nUranus encounter or Neptune? If so, what SP number is it and where can it \nbe obtained? If not, why didn't they?\n\n--\n  gene@theporch.raider.net (Gene Wright)\ntheporch.raider.net  615/297-7951 The MacInteresteds of Nashville\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3890, "properties": {"category": "soc.religion.christian", "text": "From: mussack@austin.ibm.com (Christopher Mussack)\nSubject: Re: Questioning Authority\nLines: 60\n\nDespite my trendy, liberal, feminist tendencies and the fact\nthat I basically agree with what you are saying I will rebut:\n\n(Dr Nancy's Sweetie) writes:\n> (Chris Mussack) writes:\n> > For all those people who insist I question authority: Why?\n> ...\n> Authorities sometimes tell people to do evil things.  People who \"just\n> follow orders\" have tortured and killed others in very large numbers,\n> and protest their innocence afterwards.\n \nThe basic question here is \"how do I know what I am supposed to do?\"\nThis is true in every situation that comes up. Some people do not\nthink about it at all and merely follow their impulses. I claim\nthat is just as dangerous as \"following authority\". I could site\nsexually transmitted diseases, drug abuse, all manner of criminal\nactivity, the savings and loan scandal, car accidents, eggs thrown\nat my house, all are examples of people not \"following authority\".\nI could easily argue that in the evil examples you gave the \nproblem was a leader not following _his_ authority and doing what \nhe wanted. Of course, where is the top of the chain? Therein lies \nour search.\n \n> When your authority starts telling you to do things, you should ask\n> questions.  Except for situations of pressing need (\"I said shut the\n> hatch because the submarine is filling with water!\"), any reasonable\n> authority should be able to give at least some justification that you\n> can understand.\n\nI don't think it's as simple as you are claiming. \"Pressing need\" is\nambiguous. Should I recycle or not? \n \nRealize that I have four kids who, despite being very precocious \nof course, are very tiring with their constant lack of understanding\nthe tremendous knowledge I wish to impart to them.\n\n> Just be sure to listen when authority answers.\n\nAhh! An ironic ending.\n \nThe irony I was implying in my initial pithy retort to the bumper \nsticker cliche \"Question Authority\" was that I was questioning \nthe authority of the person telling me to question authority.\nIt seems there is a certain segment of society that finds meaning\nonly in being different, only in rebelling, forsaking everything\nfor the sake of freedom. I question their integrity and fortitude. \nThere is another freedom that comes from doing a task correctly.\nDifferent people are at different levels of development in different\nareas. Part of the challenge of life is to find the right authorities\nto follow, we can't know everything about everything. Often \nwhen learning a new skill or subject I will follow the teacher,\nperhaps blindly. Only when I have learned enough to ask appropriate\nquestions should I question him, only when I have developed\nmy skills enough should I challenge him. Once again, how do I know\nwhen I get to those stages?\n\nIf you have to be told to question authority, perhaps you shouldn't.\n\nChris Mussack\n(A good comedian should never have to explain his jokes.)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.187+0000", "event": "documents", "entityId": 3891, "properties": {"category": "comp.windows.x", "text": "From: osyjm@cs.montana.edu (Jaye Mathisen)\nSubject: XTERM patches for Alpha OSF 1.2?\nArticle-I.D.: coe.1993Apr22.233646.20017\nOrganization: CS\nLines: 24\n\n\n\nWell, after massaging the Dec.cf, osf.def, (can't remember the exact names)\nfrom OSF into my normal X11R5 distribution, everything compiles and links\nfine, but xterm doesn't run.\n\n\nWarning: Representation size 8 must match superclass's to override background\nWarning: translation table syntax error: Modifier or '<' expected\nWarning: ... found while parsing 'p^#j?;'P)=#'\nX Error of failed request:  BadColor (invalid Colormap parameter)\n  Major opcode of failed request:  85 (X_AllocNamedColor)\n  Resource id in failed request:  0x0\n  Serial number of failed request:  18\n  Current serial number in output stream:  18\n\nOther than this, all the other core X stuff seems to be working OK.  Any\nhints/tips appreciated, patches would be primo.\n\nThanks.\n-- \n Jaye Mathisen, COE Systems Manager                (406) 994-4780\n 410 Roberts Hall,Dept. of Computer Science\n Montana State University,Bozeman MT 59717\tosyjm@cs.montana.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3892, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 99\n\nIn article <stevethC5LM2E.Fx8@netcom.com> steveth@netcom.com (Steve Thomas) wri\ntes:\n>In article <C5L69C.Fxp@news.iastate.edu> jrbeach@iastate.edu (Jeffry R Beach)\nwrites:\n>>In article <stevethC5Js6F.Fn5@netcom.com> steveth@netcom.com (Steve Thomas) w\nrites:\n>>>  Boy, it looks like the WOD is WORKING REALLY GOOD to stop people from\n>>>  being screwed up in the head, given that example!\n>>>\n>>>(Issue: your friend _got_ his drugs--legal or not legal, he'll continue to\n>>>get them.  Issue #2: why should _I_, as somebody who does NOT use illegal\n>>>drugs and who IS NOT \"screwed up\" have to PAY for this idiot's problems?  He\n's\n>>>not doing anybody any harm except himself.  The WOD, on the other hand, is a\nn\n>>>immediate THREAT to MY life and livelyhood.  Tell me why I should sacrafice\n>>>THIS to THAT!).\n>>\n>>Hello, is there anybody in there?  You think you have to pay for this idiot's\n>>problem now, who's going to pay for the ballooning number of addicts and\n>>all of the associated problems with them.  I don't even want to think about\n>>it with Hillary in the White House and an administration that \"feels our\n>>pain\".\n>\n>Look, if you were truly for lower taxation and less government, you would not\n>be advocating the WOD.  Ever wonder why the WOD is a BI-partisan issue?\n>\n>>\n>>No harm but to himself?  What about when he drives his school bus full\n>>of kids into a train.  When he gets stoned and drives up on a sidewalk\n>>and kills 5 people.  When he lives off me on Welfare for the rest of his\n>>life.\n>\n>Ridiculous.  I can't imagine anyone this stupid.  Forgive me for flaming,\n>but this is sooooooo obvious!\n>\n>Tell me why any of the above cases cannot be caused be a legal drug, viz.\n>alcohol, or are you for having a War on That, too?\n>\n>Now I'll tell you: more people are killed by alcohol-related accidents\n>than all other drugs combined.  BY FAR.\n>\n\nProbably because more people have access to alchohol.  It IS LEGAL you know.\n\n\n>>\n>>The problem with the WOD is that it has no bite.  Sending the slimy\n>>bastards to the chair for selling drugs to kids, now there's some bit.\n>>\n>\n>Yeah, that's it, send a kid from the inner-city, who has no other viable\n>means to make money and turns to selling drugs, to an over-crowded federal\n>prison where he learns to do Real Crime.\n>\n\nOf course, this kid would be much better off selling crack to his neighborhood \nand helping in its demise.\n\n>Without drug money being pumped into these blights from the (affluent)\n>outside, there would be no crime (who would they steal from, each other?).\n>Drugs bring money into the community just like any other business would,\n>except that, since drugs are illegal, the economy is an underground one.\n\nAnd if those drugs were legal, the neighborhood could legally go to hell.\n\n>A self-sustaining underground economy can only proliferate by a constant\n>willful infusion of money from the outside.  If you take away drug laws,\n>you put an end to the underground economy, and therefore to large-scale\n>crime.\n>\n\nAnd if we made murder legal, we would put an end to murder as a crime.\n\n>Kids in the inner-cities are faced with a very tough life growing up\n>there, or selling drugs and having everything at their fingertips instantly.\n>Many kids choose selling drugs.  They sell products to people who want to\n>buy them.  They make money off of rich white kids from the suburbs.  Then\n>they go to prison.  Then they become hardened criminals, and learn that\n>you're much better off stealing car-stereos in the suburbs because all\n>the police forces are spending all their money in the inner city saving\n>people from themselves.\n\nWhat??????\n\n>\n>You can bring up all the examples you want about crack-babies and whathaveyou.\n>The solution never has anything to do with the laws (crack is illegal).\n>\n\nSo you are saying crack babies who are that way legally are okay?\n\n>No social problem, however great, is worth destroying the freedom in America.\n>The destruction of freedom is never an answer to any social problem.\n\nYou can't even walk down the street at night alone in America because of drugs.\nFreedom my ass.\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3893, "properties": {"category": "misc.forsale", "text": "From: uschelp3@idbsu.edu (Mike Madson)\nSubject: Tires For Sale\nSummary: The last one was a test.\nLines: 6\nNntp-Posting-Host: 132.178.16.65\nOrganization: bsu\n\nI have a set of four 235-60-R14 Big O tires that I had on my 1988 Thunder \nBird. We bought them and then traided the car in. They would not give me \nanything for them so I had them taken off. We drove about 2,000 miles on \nthem. They are 40,000 mile tires. They are sporty looking low-profile, and \ntake corners realy well. If you are interested please contact me at (208)384-\n9236 OR DUSMADSO@IDBSU.IDBSU.EDU I am in IDAHO. USA\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3894, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Zionism - racism\nNf-ID: #N:cdp:1483500362:000:2842\nNf-From: cdp.UUCP!cpr    Apr 25 05:27:00 1993\nLines: 76\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Zionism - racism\n\n\nDiaspora 'a cancer'\n------------------- by Julian Kossoff and Lindsay Schusman in:\nJewish Chronicle, London, 22. Dec. 1989\n\nLeading Israeli author and cultural commentator, A.B. Yehoshua,\nlaunched a ferocious attack on diaspora Jewry at a Zionist Youth\nCouncil meeting in North London, last week.\n\nThe diaspora, he claimed, \"was the cancer connected to the main\ntissue of the Jewish people\". He was scathing about its failure to\nact before the Holocaust.\n\nHe said the diaspora's religious and secular leadership had\nignored the warning signs in the 1920s, and had fiercely opposed\nZionism. Consequently, he considered the Holocaust, \"the failure\nof Judaism\".\n\nHis talk, entitled \"Diaspora: A Neurotic Solution\", covered 5,000\nyears of Jewish history.\n\nMr. Yehoshua's other targets included Soviet Jews who were, he\nsaid \"not staying [in Israel], but running [away]\", and all Jews\noutside Israel \"who were using other people's countries like\nhotels\".\n\nThe only conclusion he could draw was that the diaspora was\nimmoral, because it looked to Israel for its identity but lived\nelsewhere.\n\nWorse, it threatened Israel itself, creating a distraction for her\ncitizens, who were leaving by the thousands.\n\nMr. Yehoshua, who described himself as \"a soldier for aliyah\",\nended by calling for the creation of a new \"total Jew\", living in\nIsrael.\n\nEarlier, speaking at a meeting of Jewish students on the\ndifficulties of forging a national identity in Israeli literature,\nMr. Yehoshua claimed that Israeli writers were paralyzed by the\ncountry's political situation.\n\nHe said Israel's wars had once provided writers with a vital\nsource of inspiration.  Today, Israeli writers avoided writing\ndirectly about the Arab-Israeli conflict. No major work had been\nproduced about the intifada.\n\nInstead, writers were tackling themes such as Jewish identity,\nemigration from Israel and personal and family issues.\n\nMr. Yehoshua admitted he also felt unable to write about the\nIsraeli political situation. He could no longer step into an\nIsraeli Arab's shoes and portray him as a real \"flesh and blood\ncharacter\".\n\nHe claimed that after 40 years of statehood, the problem of\nIsraeli identity had not been solved. He said Jews remained too\npre-occupied with the borders of identity between Jew and non-Jew,\nand were not concerned with the nature of that identity.\n\nJewish values in Israel embraced every aspect of daily life,\nunlike in the diaspora, where Jews had no responsibility for the\ncountry they lived in, he said.\n\nHe warned that modern Hebrew, a unifying force for the Jewish\npeople, would have to struggle for its future, especially in\nliterary circles. It faced fierce competition from the English\nlanguage.\n\n-------------------------------------------------------------------------\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3895, "properties": {"category": "rec.motorcycles", "text": "From: mmaser@engr.UVic.CA (Michael  Maser)\nSubject: Re: extraordinary footpeg engineering\nNntp-Posting-Host: uglv.uvic.ca\nReply-To: mmaser@engr.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 38\n\n--In a previous article, exb0405@csdvax.csd.unsw.edu.au () says:\n--\n-->Okay DoD'ers, here's a goddamn mystery for ya !\n-->\n-->Today I was turning a 90 degree corner just like on any other day, but there\n-->was a slight difference-  a rough spot right in my path caused the suspension\n-->to compress in mid corner and some part of the bike hit the ground with a very\n-->tangible \"thunk\".  I pulled over at first opportunity to sus out the damage. \n--== some deleted\n-->\n-->Barry Manor DoD# 620 confused accidental peg-scraper\n-->\n-->\n--Check the bottom of your pipes Barry -- suspect that is what may\n--have hit.  I did the same a few years past & thought it was the\n--peg but found the bottom of my pipe has made contact & showed a\n--good sized dent & scratch.\n\n-- Believe you'd feel the suddent change on your foot if the peg\n--had bumped.  As for the piece missing -- contribute that to \n--vibration loss.\n\nYep, the same thing happened to me on my old Honda 200 Twinstar.\n\n\n*****************************************************************************\n*  Mike Maser                | DoD#= 0536 | SQUID RATING: 5.333333333333333 *\n*  9235 Pinetree Rd.         |----------------------------------------------*\n*  Sidney, B.C., CAN.        | Hopalonga Twinfart     Yuka-Yuka EXCESS 400  *\n*  V8L-1J1                   | wish list: Tridump, Mucho Guzler, Burley     *\n*  home (604) 656-6131       |            Thumpison, or Bimotamoeba         *\n*  work (604) 721-7297       |***********************************************\n*  mmaser@sirius.UVic.CA     |JOKE OF THE MONTH: What did the gay say to the*\n*  University of Victoria    |                    Indian Chief ?            *\n*  news: rec.motorcycles     |    ANSWER: Can I bum a couple bucks ?        *\n*****************************************************************************\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3896, "properties": {"category": "misc.forsale", "text": "From: v5914ane@ubvmsb.cc.buffalo.edu (Steve)\nSubject: Wanted Ultima 5 for IBM\nOrganization: University at Buffalo\nLines: 4\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\nI am looking for Ultima V for the IBM, I would like the entire package\n(meaning I need more than just the game, I would like the Docs also)\nSince it is an old game I do not want to pay a lot of money.\nIf you are interested in selling this game please respond to this message.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3897, "properties": {"category": "talk.politics.mideast", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: Mossad unchecked - Girls faint in masse in Egypt\nOrganization: Corporation for Open Systems\nDistribution: world \nLines: 31\n\nIn <1993Apr13.145325.15806@thunder.mcrcim.mcgill.edu> hasan@McRCIM.McGill.EDU writes:\n\n\n>In article <eldar.734672326@sfu.ca>, eldar@fraser.sfu.ca (Danny Eldar) writes:\n>|> \n>|> I just heard it on the radio: CKNW in Vancouver, BC.  Girls are fainting in \n>|> masse in Egypt.  Nobody knows why, but the movement started in Nothern Egypt \n>|> and spread throught all Egypt.\n>|> \n>|> \n>|> I think that the MOSSAD, after the \"obvious\" involvement in WTC bombing,\n>|> tries to reestablish its reputation.  What better way than making Egyptian\n>|> schhol-girls go bezerk.\n>|> \n>|> Maybe Hassan will share the light on this.\n\n>I am happy to annouce TII's second positive identifiaction.\n\n>Congragulations Danny.\n\n>Hasan\n\nAs one who was born in Quebec and worked in Montreal, I feel I must\ndefend the reputation of McGill University. It is a fine, old,\ncreditable institution of higher learning.\n\nThus, I can only assume that some under graduate student left his/her\nterminal on-line and the janitor has been getting access to it.\n\nREB\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3898, "properties": {"category": "comp.sys.mac.hardware", "text": "From: salmon@cwis.unomaha.edu (David Salmon)\nSubject: Re: HELP - SCSI Woes on Mac IIfx\nOrganization: University of Nebraska at Omaha\nLines: 16\n\nAccording to the official documentation, failure to use the IIfx terminator\ncan not only affect SCSI bus performance but can also damage the bus.\nWhether this is your problem or not I don't know. I have had sporadic SCSI\nproblems with my IIfx since I bought it. (I cannot connect more than three\ndevices, fourth one causes major problems).\n\nFirst thing to do is to try to reformat your drive on someone elses system.\nIf you continue to get errors it is probably the drive. If it formats fine\nthen I would try to format it on your system with no externals. If this \nfails then the SCSI controller on your IIfx needs repair/replacement.\n\nHope this helps.\n \n-- \nDavid C. Salmon\nsalmon@unomaha.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3899, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: What is a squid? (was Re: Riceburner Respect)\nOrganization: NEC Systems Laboratory, Inc.\nLines: 23\n\nIn article <1993Apr20.195116.123380@locus.com> dana@lando.la.locus.com (Dana H. Myers) writes:\n>In article <C5qqxp.IE1@cbmvax.cbm.commodore.com> hartzler@cbmvax.cbm.commodore.com (Jerry Hartzler - CATS) writes:\n>>In article <1993Apr15.192558.3314@icomsim.com> mmanning@icomsim.com (Michael Manning) writes:\n>>\n>>>duck. Squids don't wave, or return waves ever, even to each\n>>       ^^^^^^\n>>    excuse me for being an ignoramus, but what are these.\n>\n>\n>Squids are everybody but me and you.  Chris Behanna is especially a squid.\n\n\tHey, Dana!  Long time, no read.  I'm afraid the squid rating has\ngone up slightly since getting the Ninja, but I'm trying very hard to restrain\nmyself--the bodywork is just too damned expensive (knock, knock).\n\n\tAt least it's quiet...\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3900, "properties": {"category": "sci.med", "text": "From: ritley@uimrl7.mrl.uiuc.edu ()\nSubject: MYSTERY ILLNESS WITH SPOTS\nReply-To: ritley@uiucmrl.bitnet ()\nOrganization: Materials Research Lab\nLines: 13\n\n\n\nI attended high school in the San Jose, California area in the early 1980's,\nand I remember a (smallish) outbreak of a strange illness, in which\npeople developed measles-like spots on their bodies.  This condition\nseemed to last only a few days, and I don't recall anyone reporting any other\nsymptoms.  I seem to recall reading somewhere that this was believed to have\nbeen viral in nature, but I don't know for sure.\n\nHowever, I have been curious since then about this.\n\nAnyone have any ideas about what this might have been?\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3901, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Best Homeruns\nFrom: csc2imd@cabell.vcu.edu (Ian M. Derby)\nExpires: Sun, 25 Apr 1993 04:00:00 GMT\nOrganization: Virginia Commonwealth University\nLines: 14\n\n\nI personally will never forget Mike Schmidt's home run against the\nExpos in 1980 that decided the NL East.  It was also his career high\n48th. \n\nAnother home run that I thought was totally incredible was in the\n1986 ALCS.  The CA Angles had the Boston Red Sox *1* strike away from\nthe pennant until Don Baylor hit a two strike pitch for a home run.\nThat was the most incredible turn of events I have EVER seen in\nbaseball.  The Sox later took the pennant away only to have the same\nthing done to them in the WS against the Mets.  Speaking of the METS,\nisn't it strange how the NLCS that year with the Astros ALMOST\nmirrored the 1980 NLCS with the Phillies??  The Astros have been\npainfully close twice I must admit.  \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3902, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cac2g@Virginia.EDU (\"THE Wing Commander\")\nSubject: Re: More Cool BMP files??\nOrganization: University of Virginia\nDistribution: usa\nLines: 4\n\nHas anybody gotten this BMP to work?  I try to uudecode it, but\nI get \"input file error\" and no picture.  Anybody?\n\n--Casey\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3903, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: silver@fraser.sfu.ca (Craig Silver)\nSubject: format a:/s under Win. & DOS6 ??\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nDistribution: na\nLines: 13\n\nHas anyone experienced problems formatting a system floppy in the File\nManager under DOS 6?  I get a formatted disk but when I boot with it,\nmy hard drive isn't recognized.  I did install DoubleSpace.  Also, I\n*was* able to make a good-working system floppy from the DOS 6 command\nshell (no Windows).\n\nLet me know if you've had this problem too and if you've heard what's\ngoing on.\n-- \n\n----------------------------------------------------------------------\nCraig Silver\t           Computer Science at Simon Fraser University\nsilver@sfu.ca (Internet)   Burnaby, B.C., Canada\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.188+0000", "event": "documents", "entityId": 3904, "properties": {"category": "sci.electronics", "text": "From: rmah@panix.com (Robert Mah)\nSubject: Re: electronic parts in NYC?\nOrganization: PANIX Public Access Unix, NYC\nLines: 23\n\nIn <FRITZM.93Apr20225937@sun.panix.com> fritzm@panix.com (Fritz Mueller) writes:\n>I just moved to NYC and wondered if there are any electronics hackers\n>out there who could point me to places in NYC that sell individual\n>electronic components (switches, pots, transformers, caps,\n>...\n\nTry Cables and Chips ... let me dig out a reciept ...\n\nHere we are...\n\nCables & Chips at 121 Fulton Street, that's near South Street Seaport and \nWall Street.  Phone is 212-619-3132 and 800-843-4117.\n\nHowever, when ordering there, be VERY exact or there's a good chance they'll \nscrew up.  Otherwise, they're pretty good, and they deliver too.\n\nCheers,\nRob\n-- \n[----------------------------------------------------------------------]\n[ Robert S. Mah   | Voice: 212-947-6507   | \"Every day an adventure,   ]\n[ One Step Beyond | EMail: rmah@panix.com |  every moment a challenge\" ]\n[----------------------------------------------------------------------]\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3905, "properties": {"category": "comp.windows.x", "text": "From: lanzo@tekelec.com (Mark Lanzo)\nSubject: Re: Key definitions in Emacs + X\nReply-To: lanzo@tekelec.com (Mark Lanzo)\nOrganization: Tekelec Inc., Raleigh NC\nLines: 44\n\nIn a prior article ajaffe@oddjob.uchicago.edu (Andrew Jaffe) wrote:\n  > Hi.\n  > \n  > I use Emacs and I want to customize my keyboard better.\n  > When I set up stuff in my .emacs with a keymap and define-keys,\n  > I can only access certain of the keys on my X-Terminal's\n  > keyboard. I can't get e.g. F10, Home, End, PgUp, PgDn; they all\n  > seem to have either the same or no keycode. I have a feeling\n  > this can't be fixed in emacs itself, but that I need to do some\n  > xmodmap stuff. Can someone help me?\n\nUnfortunately, the key event handling is pretty much hardwired into\nemacs.  I ran into this problem a while back; my solution was to\nchange the source code so that all of these special keys generated\ncharacter sequences which basically encoded the keysym and modifier\nstate as escape sequences -- for example, the sequence \"ESC [ 1 B 7\" \nwould indicate that the \"HOME\" key was pressed, with the shift key\ndown.  You could also detect standard keys with odd modifiers, such\nas \"shift-Return\".\n\nIf anybody wants these changes, they're welcome to them, but you'll\nhave to have the source available and be comfortable munging with\nit a bit.  Basically you have to replace the keypress handling code\nin the source file \"x11term.c\".  Maybe if someone at OSF is \ninterested, I can send them the tweaks, but I imagine they've got\nbigger fish to fry (hopefully including the much talked about \nemacs V19!).  If there's sufficient interest, I'll post the mods \nsomewhere, although this probably isn't the appropriate group for it.\n\nNotes: \n\n * This special code will only apply if you let emacs create\n   its own (X11) window.  If you run it in plain old tty mode (which \n   includes Xterm windows) then it's business as usual.\n\n * The patches I made were to version 18.58, under Sun OS 4.1.2\n   [I also did this a while back under HP-UX].  The patches are\n   in a chunk of code between '#if sun ... #endif' but could \n   easily be adapted for anything else.\n\n\n+-------------------------------------------------------+------- /// -----+\n| Mark Lanzo   KD4QLZ  lanzo@tekelec.com   919-460-5576 |    \\\\\\///       |\n+-------------------------------------------------------+---- \\XX/ -------+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3906, "properties": {"category": "comp.windows.x", "text": "From: carlj@mugwump (Carl Johnson)\nSubject: xterm and default text cursor color\nReply-To: carlj@cyclone.bt.co.uk\nOrganization: British Telecom Research Labs\nLines: 17\nNNTP-Posting-Host: mugwump.muppet.bt.co.uk\n\nWhat I want to be able to do is to set the cursor\ncolor to the same as the forground color that is set\nfor that xterm.\n\nFrom the man page.....\n\n-cr color\n This option specifies the color to use for text cur-\n sor.   The  default  is  to  use the same foreground  <---\n color that is used for text.  <---\n\nHowever this doesnt seem to be the case, it appears to default to black\nor to whatever XTerm*cursorColor is set to.\n\nFeel free to point me at the relevant FM or whatever,\nCheers,\nC\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3907, "properties": {"category": "sci.med", "text": "From: sbrenner@cbnewsb.cb.att.com (scott.d.brenner)\nSubject: What's the Difference Between an M.D. and a D.O.?\nOrganization: AT&T\nDistribution: usa\nLines: 30\n\nMy wife and I are in the process of selecting a pediatrician for our\nfirst child (due June 15th).  We interviewed a young doctor last week\nand were very impressed with her.  However, I discovered that she is\nactually not an Medical Doctor (M.D.) but rather a \"Doctor of \nOsteopathy\" (D.O.).  What's the difference?  I believe the pediatrician\n*I* went to for many years was a D.O. and he didn't seem different from\nany other doctor I've seen over the years.\n\nMy dictionary says that osteopathy is \"a medical therapy that emphasizes\nmanipulative techniques for correcting somatic abnormalities thought\nto cause disease and inhibit recovery.\"\n\nJeez, this sounds like chiropractic.  I remember getting shots and\nmedicine from *my* pediatrician D.O., and don't remember any \n\"manipulative techniques\".  Perhaps someone could enlighten me as to\nthe real, practical difference between an M.D. and a D.O.  Also, I'm\ninteresting in hearing any opinions on choosing a pediatrician who\nfollows one or the other medical philosophy.\n\nReaders of sci.med:  Please respond directly to sbrenner@attmail.com;\nI do not read this group regularly and probably won't see your response\nif you just post it here.  Sorry for the cross-posting, but I'm hoping\nthere's some expertise here.\n\na T d H v A a N n K c S e\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nScott D. Brenner                  AT&T Consumer Communications Services\nsbrenner@attmail.com                          Basking Ridge, New Jersey\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3908, "properties": {"category": "rec.sport.baseball", "text": "From: str@maredsous.Eng.Sun.COM (Todd Rader)\nSubject: Re: Rickey Henderson\nOrganization: Sun\nLines: 6\nDistribution: usa\nNNTP-Posting-Host: maredsous\n\nIn article <1993Apr5.173500.26383@ra.msstate.edu> js1@Isis.MsState.Edu (Jiann-ming Su) writes:\n%I say buy out Henderson's contract and let him go bag groceries.  Next \n%season, you'll be able to sign him for nothing.  That goes for any bitching\n%ball player.\n\nStay in school.  You have a lot to learn.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3909, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hrose@eff.org (Helen Trillian Rose)\nSubject: Duo 230 slowdown problems\nNntp-Posting-Host: rocza.eff.org\nOrganization: The Electronic Frontier Foundation\nLines: 33\n\nI'm a system and network admin. One of my users has a Duo 230\n([*]specifications below) that has been having slowdown problems.\nLeaving the Duo on for several hours causes it to slow down\nunacceptably. It can take 10-15 seconds to change applications. During\nthis time it is completely hung.  If he reboots, the problem goes away\n(For a while). It seems the system is getting itself into a wedged\nconfiguration.\n\nHe's re-installed System 7.1 and rebuilt the desktop. Neither of these\nhave helped. \n\nIt's possible that it's network-related, he uses Eudora which checks his\nemail every 10 minutes (over Ethernet). He hasn't checked to see if this\nproblem occurs while undocked (he's docked most of the time). \n\nLittle to no non-Apple inits, I don't want to start yanking the rest\nunless I know that might *really* be the problem. \n\nHe hasn't tried zapping the PRAM, I have advised him to do that next.\n\nAnyone who has ideas, I'd love to hear about them. I'd call Apple, but\nI've found they're best to call during the week (it's Sunday evening).\n\n\n[*] Powerbook Duo 230  16/120. 12mb RAM card from Tech Works to replace\nnon-self-refreshing 8mb card. Is using System Enabler 1.0.1. Express\nModem (including latest software). Has been to Apple Dealer for Keyboard\nreplacement. \n--\nHelen Trillian Rose             \t<hrose@kei.com, hrose@eff.org>\nKapor Enterprises, Inc.            \temail eff@eff.org for EFF Info\nElectronic Frontier Foundation          Flames to: \nSystems and Networks Administration\twomen-not-to-be-messed-with@eff.org\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3910, "properties": {"category": "talk.politics.mideast", "text": "From: sgoldste@aludra.usc.edu (Fogbound Child)\nSubject: Re: NEWS YOU WILL MISS, Apr 15\nOrganization: University of Southern California, Los Angeles, CA\nLines: 27\nNNTP-Posting-Host: aludra.usc.edu\n\narf@genesis.MCS.COM (Jack Schmidling) writes:\n\n\n> \n>                      Yigal et al, sue ADL\n> \n\nWhy do you title this \"News you will miss\" ?\n\nThere have been at least three front-page stories on it in the L.A. Times.\n\nI wouldn't exactly call that a media cover-up.\n\n\n> js\n> \n\n\n___Samuel___\nMossad Special Agent ID314159\nMedia Spiking & Mind Control Division\nLos Angeles Offices\n-- \n_________Pratice Safe .Signature! Prevent Dangerous Signature Virii!_______\nGuildenstern: Our names shouted in a certain dawn ... a message ... a\n              summons ... There must have been a moment, at the beginning,\n              where we could have said -- no. But somehow we missed it.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3911, "properties": {"category": "talk.politics.guns", "text": "From: gs26@prism.gatech.EDU (Glenn R. Stone)\nSubject: Impeach Clinton, Reno\nSummary: civil rights violations\nKeywords: confession TV\nReply-To: glenns@eas.gatech.edu\nOrganization: The Group W Bench\nLines: 21\n\n\nFact:  Both Janet Reno and Bill Clinton have admitted responsibility,\n       even grief, over the deaths in Waco.\n\nFact:  Regardless of who started the fire, there are more than enough\n       things on tape to make a civil rights case against these two.\n       Cruel and unusual punishment (dying tortured rabbits on tape?)\n       come to mind.  \n\nFact:  It is a federal felony to infringe civil rights under color of\n       law; where death is involved, this offense carries a penalty\n       of life in prison.\n\nFact:  Impeachment is allowable for \"high crimes and misdemeanors.\"\n       Anything that's a federal felony should qualify.\n\nConclusion:  We have NO CHOICE, if we are an honest people, but to \n             impeach Mr. Clinton, and remove Reno from office.\n\nGlenn R. Stone (glenns@eas.gatech.edu)\nwearer of asbestos underoos\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3912, "properties": {"category": "rec.motorcycles", "text": "From: cds7k@Virginia.EDU (Christopher Douglas Saady)\nSubject: Re: Bikes And Contacts\nOrganization: University of Virginia\nLines: 5\n\nThe best thing to do is to get a full face, even if it is a\ncheap brain bucket.  I didn't think a full face was important\nuntil I took a gnarly spill and ended up sliding 20 feet on my\nface.  Plus with the visor down, you also have no worries about\nyour contacts.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3913, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: goudswaa@fraser.sfu.ca (Peter Goudswaard)\nSubject: What is REGLOAD.EXE?\nKeywords: regload\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 15\n\nPerusing through my Windows 3.1 directory, I came across a file\ncalled REGLOAD.EXE.  I assume this is part of the registration\ndatabase, but neither my Windows manual, Win Resource Kit, nor\nPC Mag's description of files in the Windows directory had a\nreference to it.  At least not one that I could find.  Does\nREGEDIT.EXE use it?  Or am I way off base?\n\n-- \n Peter Goudswaard                  _________                     _________\n goudswaa@sfu.ca (preferred)      |         |      __/^\\__      |         |\n pgoudswa@cln.etc.bc.ca           |         |      \\     /      |         |\n pgoudswa@cue.bc.ca               |         |   _/\\_\\   /_/\\_   |         |\n                                  |         |   >           <   |         |\n \"There's no gift like the present\"         |    >_________<    |         |\n    - Goudswaard's observation    |_________|         |         |_________|\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3914, "properties": {"category": "rec.sport.baseball", "text": "From: mss@netcom.com (Mark Singer)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nKeywords: Hall of Fame, Winfield, Kingman, Murray, Joe Lundy, :-)\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nDistribution: na\nLines: 15\n\n\nI'm no Kingman fan.  Just thought I'd point out that he's the\nonly player in history to have five three-HR games.  Joe Carter\nhas four.  Eddie Murray three.  McCovey and Gehrig also three.\nRuth, Mays, Foxx and Dawson two each.\n\nI don't think Reggie's WS game counts, else I believe he would \nalso have had two.\n\n\n--\tThe Beastmaster\n\n-- \nMark Singer    \nmss@netcom.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3915, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\nLines: 91\n\nIn article <1993Apr17.184435.19725@cunews.carleton.ca> wcsbeau@alfred.carleton.ca (OPIRG) writes:\n>Many people responded with more anecdotal stories; I think its safe to\n>say the original poster is already familiar with such stories.\n>Presumably, he wants hard info to substantiate or refute claims about\n>MSG making people ill. \n\nThere has been NO hard info provided about MSG making people ill.\nThat's the point, after all.\n\n>>Like youself?  Someone who can read a scientific paper and apparently\n>>come away from it with bizarrely cracked ideas which have nothing to\n>>do with the use of this substance in human nutrition?\n>Have you read Olney's work? I fail to see how citing results from\n>peer-reviewed studies qualifies as \"bizarrely cracked\".\n\nThat's because these \"peer-reviewed\" studies are not addressing\nthe effects of MSG in people, they're looking at animal models.\nYou can't walk away from this and start ranting about gloom and\ndoom as if there were any documented deleterious health effects\ndemonstrated in humans.  Note that I wouldn't have any argument\nwith a statement like \"noting that animal administration has pro-\nduced the following [blah, blah], we must be careful about its\nuse in humans.\"  This is precisely NOT what you said.\n\n>Tests have been done on Rhesus monkeys, as well. I have never seen a\n>study where the mode of administration was intra-ventricular.  The Glu\n>and Asp were administered orally. Some studies used IV and SC.\n>Intra-ventricular is not a normal admin. method for food tox. studies,\n>for obvious reasons. You must not have read the peer-reviewed works\n>that I referred to or you would never have come up with this brain\n>injection bunk.\n\nIt most certainly is for neurotoxicology.  You know, studies of\nglutamate involve more than \"food science\".\n\n>Pardon me, but where are you getting this from? Have you read the\n>journals? Have you done a thorough literature search?\n\nSo, point us to the studies in humans, please.  I'm familiar with\nthe literature, and I've never seen any which relate at all to\nOlney's work in animals and the effects of glutamate on neurons.\n\n>The point is exceeding the window. Of course, they're amino acids.\n>Note that people with PKU cannot tolerate any phenylalanine.\n\nWell, actually, they HAVE to tolerate some phenylalanine; it's a\nessential amino acid.  They just try to get as little as is healthy\nwithout producing dangerous levels of phenylalanine and its metabolites\nin the blood.\n\n>Olney's research compared infant human diets. Specifically, the amount\n>of freely available Glu in mother's milk versus commercial baby foods,\n>vs. typical lunch items from the Standard American Diet such as packaged\n>soup mixes. He found that one could exceed the projected safety margin\n>for infant humans by at least four-fold in a single meal of processed\n>foods. Mother's milk was well below the effective dose.\n\nGoodness, I'm not saying that it's good to feed infants a lot of\nglutamate-supplemented foods.  It's just that this \"projected safety\nmargin\" is a construct derived from animal models and given that,\nyou can \"prove\" anything you like.  We're talking prudent policy in\ninfant nutrition here, yet you're misrepresenting it as received wisdom.\n\n>>>Read Olney's review paper in Prog. Brain Res, 1988, and check *his*\n>>>sources. They are impecable. There is no dispute.\n>>\n>>Impeccable.  There most certainly is a dispute.\n>\n>Between who? Over what? I would be most interested in seeing you\n>provide peer-reviewed non-food-industry-funded citations to articles\n>disputing that MSG has no effects whatsoever. \n\nYou mean \"asserting\".  You're being intellectually dishonest (or just\nplain confused), because you're conflating reports which do not necessarily\nhave anything to do with each other.  Olney's reports would argue a potential\nfor problems in human infants, but that's not to say that this says anything\nwhatsoever about the use of MSG in most foods, nor does he provide any\nstudies in humans which indicate any deleterious effects (for obvious\nreasons.)  It says nothing about MSG's contribtion to the phenomenon\nof the \"Chinese Restaurant Syndrome\".  It says nothing about the frequent\ninability to replicate anecdotal reports of MSG sensitivity in the lab.\n\n>>dyer@ursa-major.spdcc.com \n>Hmm. \".com\". Why am I not surprised?\n>- Dianne Murray   wcsbeau@ccs.carleton.ca\n\nProbably one of the dumber remarks you've made.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3916, "properties": {"category": "sci.electronics", "text": "From: et@teal.csn.org (Eric H. Taylor)\nSubject: Holes: practical questions, was - Philosophical Question\nSummary: How do we preferentially amplify holes instead of electrons?\nKeywords: holes electrons semi-conductors mobility\nNntp-Posting-Host: teal.csn.org\nOrganization: 4-L Laboratories\nExpires: Sun, 9 May 1993 06:00:00 GMT\nLines: 48\n\nIn article <12426@sun13.scri.fsu.edu> jac@ds8.scri.fsu.edu (Jim Carr) writes:\n>[...]\n>I agree.  I come at this from nuclear physics, where one often discusses \n>particle-hole excitations and certain reactions have the effect of \n>applying an annihilation operator and creating a hole, and it is a \n>subtle question.  The longer one works with them, the more real they \n>become.  There are also quasi-particles, which raise the same sort \n>of question about how \"real\" the entity is.  The phenomenon is most \n>certainly a real one. \n\nOK, I've asked this before, and with a new thread on these lines, I\nask this again:\n\n1: If a large hole current is run thru a resistor, will there be\n   I^2 * R cooling instead of heating?\n\n2: Can anyone design an amplifier that preferentially amplifies\n   hole currents over normal electron currents?\n\n3: what semiconductor materials have the highest ratio of\n   hole mobility to electron mobility? (please quote actual\n   test samples rather than estimates based on theory. Also,\n   don't be limited to semiconductors: consider also insulators,\n   resistors, dielectrics, piezo-electrics, conductors,\n   magnets (metal, ceramic), magnetostrictives, etc).\n\nNOTES:\n\n   to summarize, this thread has so far stated that the only area\n   where holes are not detectable is the vacuum. That is, hole\n   particles only exist in the presence of matter.\n   Previous threads have stated that holes only exist in certain\n   semi-conductors. The question that naturally arises is if\n   the hole currents inside a semi-conductor vanish at the point\n   where the semiconductor is joined to a conductor (say, copper).\n   I don't want a theoretical discussion here about whether\n   holes could exist inside metal conductors, rather I ask for\n   an experimental discussion on how to amplify and detect such\n   currents *if* they exist.\n   Also note that I have cross-posted this to sci.electronics\n   since this is now becoming an electronic discussion.\n\nThanx,\nEric.\n\n----\n ET   \"A Force of Nature\"\n----\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.189+0000", "event": "documents", "entityId": 3917, "properties": {"category": "soc.religion.christian", "text": "From: david-s@hsr.no (David A. Sjoen)\nSubject: 'Moody Monthly' and 'Moody' the same?\nOrganization: Rogaland University Centre\nLines: 15\n\nAre 'Moody Monthly' and 'Moody' the same magazine (name change in recent\nyears)?\n\nIf not: Could someone post the address to 'Moody Monthly'?\n\n:)avid\n\n-- \n __________________ ___________________________________________________\n| David A. Sjoen   |\"My sheep hear my voice, and I know them, and they |\n| Gulaksveien 4    | follow me; and I give them life eternal; and they |\n| N-4017 STAVANGER | shall never perish, and no one shall seize them   |\n| Norway           | out of my hand.\" John 10:27-29                    |\n`------------------'---------------------------------------------------'\n      E-MAIL: david-s@hsr.no  (Rogaland University Centre, Norway)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3918, "properties": {"category": "soc.religion.christian", "text": "From: marka@hcx1.ssd.csd.harris.com (Mark Ashley)\nSubject: Re: Question about Virgin Mary\nOrganization: Ft. Lauderdale, FL\nLines: 74\n\n>[I think you're talking about the \"assumption of the Blessed Virgin\n>Mary\".  It says that \"The Immaculate Mother of God, the ever Virgin\n>Mary, having completed the course of her earthly life, was assumed\n>body and soul into heavenly glory.\"  This was defined by a Papal\n>statement in 1950, though it had certainly been believed by some\n>before that.  Like the Immaculate Conception, this is primarily a\n>Roman Catholic doctrine, and like it, it has no direct Biblical\n>support.  Note that Catholics do not believe in \"sola scriptura\".\n>That is, they do not believe that the Bible is the only source of\n>Christian knowledge.  Thus the fact that a doctrine has little\n>Biblical support is not necessarily significant to them.  They believe\n>that truth can be passed on through traditions of the Church, and also\n>that it can be revealed to the Church.  I'm not interested in yet\n>another Catholic/Protestant argument, but if any Catholics can tell us\n>the basis for these beliefs, I think it would be appropriate.  --clh]\n\nIn the Bible, there are a lot of instances where God speaks\nto people, where a person just \"came to know\" some piece\nof information, where a person walks off into the desert\nfor \"40 days\", etc. With all of God's power He certainly can\ndo whatever He wants when He wants it. The Bible \"ends\"\nwith the book of Revelations. But does God's reign end there ? No.\nSo who can say for sure that God's messages are either no longer\nhappening or still happening ?\n\nI can now hear the clamor for proof. 8-)\nWith the cold response I've gotten from the past from this\ngroup, it's very hard to get the point across. I'll only\ngo over the physical stuff so that skeptics can look\nat documents stored somewhere. I've cited the uncorrupted\nbodies of saints before. They're still there. 8-)\nThe apparitions at Fatima, Portugal culminated in a miracle\nspecifically granted to show God's existence. That was\nthe spinning/descending of the sun. It was seen in several\ncountries. That event is \"approved\" by the Pope. Currently,\nimages of Mary in Japan, Korea, Yugoslavia, Philippines, Africa\nare showing tears (natural or blood). These are still under\ninvestigation by the Church. But realize that investigations\ntake decades to finish. And if the message is Christ will come\nin ten days, that's a bit too late, isn't it 8-).\nOther events under investigation are inner locutions (\"coming\nto know\"), stigmata (the person exhibits Christ's wounds. And\nthey don't heal. And doctor's don't know why).\nNon-believers are welcome to pore through documents, I'm sure.\n\nThis stuff is not like Koresh. Or Oral Roberts (give me $5M\nor God will call me home). It's free. Find out why they're\nhappening (as we ourselves are studying why). If anybody\ncan figure this out, tell us ! You can be of any religion.\nIf you have the resources, go to one of the countries I mentioned.\nThese are not \"members only\" events. God and Mary invites \neverybody.\n\nSo in conclusion (finally) ...\nWe RC's believe in the modern day manifestations of God and Mary.\nWe are scared to death sometimes although we're told not to.\nThere are more proofs and events. And that is why \"not everything\nis in the Bible\". Although in a lot of the apparitions, we are told\nto read the Bible.\n\nAs far as the Protestant vs. Catholics issue is concerned...\nIn the end, God's churches will unite. I'm not sure how.\nI have some idea. But the point is we shouldn't worry\nabout the \"versus\" part. Just do God's work. That's all\nthat matters. Unity will come.\n\nBTW, I'm just a plain person. I'm not the Pope's spokesperson.\nBut I am RC.\n\n-- \n-------------------------------------------------------------------------\nMark Ashley                        |DISCLAIMER: My opinions. Not Harris'\nmarka@gcx1.ssd.csd.harris.com      |\nThe Lost Los Angelino              |\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3919, "properties": {"category": "rec.motorcycles", "text": "From: sproulx@bmtlh204.BNR.CA (Stephane Proulx)\nSubject: Re: Cobra Locks\nReply-To: sproulx@bmtlh204.BNR.CA (Stephane Proulx)\nOrganization: Bell-Northern Research Ltd.\nLines: 105\n\n\nYou may find it useful.\n(This is a repost. The original sender is at the bottom.)\n-------------------cut here--------------------------------------------------\nArticle 39994 of rec.motorcycles:\nPath:\nscrumpy!bnrgate!corpgate!news.utdallas.edu!hermes.chpc.utexas.edu!cs.ute\nexas.edu!swrinde!mips!pacbell.com!iggy.GW.Vitalink.COM!widener!eff!ibmpc\ncug!pipex!unipalm!uknet!cf-cm!cybaswan!eeharvey\nFrom: eeharvey@cybaswan.UUCP (i t harvey)\nNewsgroups: rec.motorcycles\nSubject: Re: Best way to lock a bike ?\nMessage-ID: <861@cybaswan.UUCP>\nDate: 15 Jul 92 09:47:10 GMT\nReferences: <1992Jul14.165538.9789@usenet.ins.cwru.edu>\nLines: 84\n\n\nThese are the figures from the Performance Bikes lock test, taken without\npermission of course. The price is for comparison. All the cable locks\nhave some sort of armour, the chain locks are padlock and chain. Each\nlock was tested for a maximum of ten minutes (600 secs) for each test:\n\n\tBJ\tBottle jack\n\tCD\tCutting disc\n\tBC\tBolt croppers\n\tGAS\tGas flame\n\nThe table should really be split into immoblisers (for-a-while) and\nlock-to-somethings (for-a-short-while) to make comparisons.\n\n\t\tType\tWeight\tBJ\tCD\tBC\tGAS\tTotal\tPrice\n\t\t\t(kg)\t(sec)\t(sec)\t(sec)\t(sec)\t(sec)\t(Pounds)\n========================================================================\n=========\n3-arm\t\tFolding\t.8\t53\t5\t13\t18\t89\t26\nCyclelok\tbar\n\nAbus Steel-o-\tCable\t1.4\t103\t4\t20\t26\t153\t54\nflex\n\nOxford\t\tCable\t2.0\t360\t4\t32\t82\t478\t38\nRevolver\n\nAbus Diskus\tChain\t2.8\t600\t7\t40\t26\t675\t77\n\n6-arm\t\tFolding\t1.8\t44\t10\t600\t22\t676\t51\nCyclelok\tbar\n\nAbus Extra\tU-lock\t1.2\t600\t10\t120\t52\t782\t44\n\nCobra\t\tCable\t6.0(!)\t382\t10\t600\t22\t1014\t150\n(6ft)\n\nAbus closed\tChain\t4.0\t600\t11\t600\t33\t1244\t100\nshackle\t\n\nKryptonite\tU-lock\t2.5\t600\t22\t600\t27\t1249\t100\nK10\n\nOxford\t\tU-lock\t2.0\t600\t7\t600\t49\t1256\t38\nMagnum\n\nDisclock\tDisc\t.7\tn/a\t44\tn/a\t38\t1282\t43\n\t\tlock\n\nAbus 58HB\tU-lock\t2.5\t600\t26\t600\t64\t1290\t100\n\nMini Block\tDisc\t.65\tn/a\t51\tn/a\t84\t1335\t50\n\t\tlock\n========================================================================\n=========\n\nPretty depressing reading. I think a good lock and some common sense about\nwhere and when you park your bike is the only answer. I've spent all my\nspare time over the last two weeks landscaping (trashing) the garden of\nmy (and two friends with bikes) new house to accommodate our three bikes in\nrelative security (never underestimate how much room a bike requires to\nmanouver in a walled area :( ). Anyway, since the weekend there are only two\nbikes :( and no, he didn't use his Abus closed shackle lock, it was too much\nhassle to take with him when visiting his parents. A minimum wait of 8\nweeks (if they don't decide to investigate) for the insurance company\nto make an offer and for the real haggling to begin.\n\nAbus are a German company and it would seem not well represented in the US\nbut very common in the UK. The UK distributor, given in the above article\nis:\n\tMichael Brandon Ltd,\n\t15/17 Oliver Crescent,\n\tHawick,\n\tRoxburgh TD9 9BJ.\n\tTel. 0450 73333\n\nThe UK distributors for the other locks can also given if required.\n\nDon't lose it\n\tIan\n\n-- \n_______________________________________________________________________\n  Ian Harvey, University College Swansea         Too old to rock'n'roll\n  eeharvey@uk.ac.swan.pyr                              Too young to die\n                              '79 GS750E                              \n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3920, "properties": {"category": "talk.politics.mideast", "text": "From: farzin@apollo3.ntt.jp (Farzin Mokhtarian)\nSubject: Re: KH news # 1026\nOriginator: sehari@vincent2.iastate.edu\nOrganization: NTT Corp. Japan\nLines: 23\n\n  \nI wrote:\n                \n@ From:  Kayhan Havai # 1026\n@ --------------------------\n@                          \n@ o Dr. Namaki,  deputy minister of health stated that infant\n@   mortality (under one year old) in Iran went down from 120 \n@   per  thousand before the revolution to 33 per thousand at\n@   the end of 1371 (last month).\n@     \n@ o Dr Namaki also stated that before the revolution only\n@   254f children received vaccinations to protect them\n@   from various deseases but this figure reached 93at\n@   the end of 1371.\n      \nSomething funny happens to the percent sign. In paragraph\nabove, the vaccination rate went from 25 percent to 93 percent.\n                    \n - Farzin \n   \n\n-- \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3921, "properties": {"category": "sci.electronics", "text": "From: galen@picea.CFNR.ColoState.EDU (Galen Watts)\nSubject: Re: Beginner's RF ???\nDistribution: na\nNntp-Posting-Host: storm.cfnr.colostate.edu\nOrganization: College of Natural Resources, Colo. State Univ.\nLines: 16\n\nIn article <C5sr8H.JpH@cbnewsl.cb.att.com> klink@cbnewsl.cb.att.com (steven.r.klinkner) writes:\n>Can anybody recommend a good, application-oriented beginner's reference\n>to RF circuits?  \n>Steve Klinkner                AT&T Bell Labs               srk@boeing.att.com\n\nI have the ARRL Handbook for the Radio AMateur, and I'm getting the\nSolid STate Design for the Radio Amateur.\n\nThe handbook is $25 and Solid State is $12 from ARRL, 225 Main, Newington,\nCT 06111 but you should be able to find them at electronics or amateur radio\nstores.\nARRL will want $5 or so for shipping.\nGood Luck,\nGalen Watts, KF0YJ\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3922, "properties": {"category": "sci.space", "text": "From: sysmgr@king.eng.umd.edu (Doug Mohney)\nSubject: Re: *Doppelganger* (was Re: Vulcan? No, not Spock or Haphaestus)\nArticle-I.D.: mojo.1qkn6rINNett\nReply-To: sysmgr@king.eng.umd.edu\nDistribution: world\nOrganization: Computer Aided Design Lab, U. of Maryland College Park\nLines: 17\nNNTP-Posting-Host: queen.eng.umd.edu\n\nIn article <1993Apr15.170048.1@fnalf.fnal.gov>, higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey) writes:\n\n>This was known as *Journey to the Far Side of the Sun* in the United\n>States and as *Doppelganger* in the U.K... Later, they went\n>on to do more live-action SF series: *UFO* and *Space: 1999*.\n>\n>The astronomy was lousy, but the lifting-body spacecraft, VTOL\n>airliners, and mighty Portugese launch complex were *wonderful* to\n>look at.\n\nThey recycled a lot of models and theme music for UFO.  Some of the\nconcepts even showed up in SPACE: 1999. \n\n\n\n    Software engineering? That's like military intelligence, isn't it?\n  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3923, "properties": {"category": "comp.sys.mac.hardware", "text": "From: smedley@ecst.csuchico.edu (Steven Medley)\nSubject: 72-pin SIMMS, where?\nDistribution: usa\nOrganization: California State University, Chico\nLines: 13\nNNTP-Posting-Host: pigface.ecst.csuchico.edu\n\nI am looking for a 8 meg 72-pin SIMM for my Centris 610.  Where is the\nbest place to purchase one (stock, shipping, warrenty), and if\npossible, phone numbers so that I can order one as soon as possible.\n\nThanks,\n\nSteven\n\n-- \n\"And hope that there's intelligent life somewhere out in space\"  Monty Python\n\" 'Cause there's bugger all down here on Earth\"           The Meaning of Life\n-----------------------------------------------------------------------------\nSteven Medley                    email to-> smedley@erasure.ecst.csuchico.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3924, "properties": {"category": "misc.forsale", "text": "From: cfoley@Bonnie.ICS.UCI.EDU (Ciaran Foley)\nSubject: Lots of neat IBM clone stuff for sale\nLines: 34\n\n1) Complete 80386Dx25Mhz System for sale\n   SVGA card/w color Tatung VGA Monitor\n   2s/1p\n   2 floppies (1.44 and 1.2)\n   230 Watt Power supply\n   1 meg ram installed\n   80 meg IDE 14ms Hard drive\n   Best offer...\n\n2) Bits and pieces\n\ta) IDE controller card\n\tb) internal 2400 baud modem\n\tc) 80386Dx25Mhz CPU\n\td) 3 megs SIMM memory\n\te) Standard VGA card\n\n3) Panasonic KXP-1524 Wide Carriage 24 pin Printer\n\tBrand new condition\n\tcomes with plenty 'o ribbons\n\tParallel and Serial ports\n\tNice crisp output\n\nALl items are in beautiful condition. All fully functional. Willing to\nprovide net references if needed. Best offers on all items snag 'em.\nThanks for your time!\n\nCiaran\n\nCiaran Foley\ncfoley@bonnie.uci.ics.edu\nOffice:714.830.3579\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3925, "properties": {"category": "rec.autos", "text": "From: joes@telxon.mis.telxon.com (Joe Staudt)\nSubject: Re: Trading in a car that's not paid for...Pointers Please\nOrganization: TELXON Corporation\nDistribution: usa\nLines: 35\n\nIn article <49422@fibercom.COM> rrg@rtp.fibercom.com (Rhonda Gaines) writes:\n>\n>I'm planning on purchasing a new car and will be trading in my '90\n>Mazda MX-6 DX.  I've still got 2 more years to pay on it.  How does\n>that get taken into account when I purchase my new car?  Does the\n>dealership pay off my car and add on the amount they had to pay to\n>the purchase price of the new car?  someone please explain this to\n>me.\n\nIf you don't already know it, you should call the bank/credit union/\nfinance company that holds the loan on your present car and get the\ncurrent payoff cost.\n\nIf you are trading in your current car on the new car, subtract the\npayoff amount from the trade-in the dealer is giving you.  (If this\nturns out to be a negative number, you need to reconsider the deal.)\nSubtract this difference from the price of the new car.  This is the\nsize of the loan you will need for the new car.\n\nThe dealer will take care of paying off the loan on your old car out\nof the money you give them when you pick up your new car.\n\nAt least that's how it worked for me 5 years ago in Ohio...\n\n>\n> -thanks\n>  rhonda\n\n\n\n-- \nJoseph Staudt, Telxon Corp. | joes@telxon.com\nP.O. Box 5582               | \"Usenet is like Tetris for people who still\nAkron, OH  44334-0582       |  remember how to read.\"\n(216) 867-3700 x3522        |           -- J. Heller\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3926, "properties": {"category": "alt.atheism", "text": "From: ingles@engin.umich.edu (Ray Ingles)\nSubject: Re: Concerning God's Morality (long)\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 32\nDistribution: world\nNNTP-Posting-Host: syndicoot.engin.umich.edu\n\nIn article <1993Apr5.084042.822@batman.bmd.trw.com> jbrown@batman.bmd.trw.com writes:\n>In article <1993Apr3.095220.24632@leland.Stanford.EDU>, galahad@leland.Stanford.EDU (Scott Compton) writes:\n[deletions]\n>> Now, back to your post.  You have done a fine job at using \n>> your seventh grade 'life science' course to explain why\n>> bad diseases are caused by Satan and good things are a \n>> result of God.  But I want to let you in on a little secret.\n>> \"We can create an amino acid sequence in lab! -- And guess\n>> what, the sequence curls into a helix!  Wow!  That's right,\n>> it can happen without a supernatural force.\" \n>\n>Wow!  All it takes is a few advanced science degrees and millions\n>of dollars of state of the art equipment.  And I thought it took\n>*intelligence* to create the building blocks of life.  Foolish me!\n\n People with advanced science degrees use state of the art equipment\nand spend millions of dollars to simulate tornadoes. But tornadoes\ndo not require intelligence to exist.\n Not only that, the equipment needed is not really 'state of the art.'\nTo study the *products*, yes, but not to generate them.\n\n>If you want to be sure that I read your post and to provide a\n>response, send a copy to Jim_Brown@oz.bmd.trw.com.  I can't read\n>a.a. every day, and some posts slip by.  Thanks.\n \n Oh, I will. :->\n\nSincerely,\n\nRay Ingles                  || The above opinions are probably\n                            || not those of the University of\ningles@engin.umich.edu      || Michigan. Yet.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3927, "properties": {"category": "talk.religion.misc", "text": "From: magney@cco.caltech.edu (Michael Agney)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: California Institute of Technology, Pasadena\nLines: 25\nNNTP-Posting-Host: lloyd.caltech.edu\n\nkevin@rotag.mi.org (Kevin Darcy) writes:\n\n>In article <1993Apr15.010329.23133@mnemosyne.cs.du.edu> kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n>>[Followups set out of talk.abortion...]\n>>\n>>In article <C5Fuo2.FF8@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike Cobb) writes:\n>>>Am I reading this thread wrong or is this just another bemoaning of the fact\n>>>that Christianity has a code of objective morality?\n>>\n>>Please define this \"objective morality\".\n>>\n>>While you're at it, please state the theory of creationism.\n\n>Still searching for an irrelevant issue in which to mire a pro-lifer, I see.\n>Slimy tactic.\n\n>\t\t\t\t\t\t\t\t- Kevin\n\nWell, when you crosspost to talk.origins, what do you expect?\n\n-- \n| Michael Agney          | Just because you're paranoid | \n|                        | doesn't mean they're not out |\n|                        | to get you.                  | \n| magney@cco.caltech.edu |                              |\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3928, "properties": {"category": "comp.sys.mac.hardware", "text": "From: probulf@Informatik.TU-Muenchen.DE (Frank Probul)\nSubject: Re: Position of 'b' on Erg. Keyboard\nOriginator: probulf@hphalle2i.informatik.tu-muenchen.de\nOrganization: Technische Universitaet Muenchen, Germany\nLines: 27\n\n\nIn article <1993Apr6.134746.11972@daimi.aau.dk>, viralbus@daimi.aau.dk (Thomas Martin Widmann) writes:\n|> So far I have only seen pictures of the new ergonomic keyboard,\n|> but it seems that the 'b' is placed on the left part after the split.\n|> However, when I learned typing in school some years ago, I was taught\n|> to write 'b' with my right hand. Is this a difference between Danish\n|> and American typing, or what???\n|> \n|> Thanks a lot in advance!\n|> \n\nIn germany you usually use the left hand for the 'b'\n\nyours\nFrankie\n-- \n---------------------------------------------\nFrank Probul\nEmanuelstr. 17, D-8000 Munich 40, Germany\n\nAppleLink: Probul.F@AppleLink.Apple.COM\ninternet:  probulf@informatik.tu-muenchen.de\n\nMunich University of Technology\nDepartment of Computer Science\nGermany\n---------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3929, "properties": {"category": "sci.electronics", "text": "From: wagner@mala.bc.ca (TOM WAGNER, Wizzard of old Audio/Visual Equipment........Nanaimo Campus)\nSubject: correction of last followup re relays\nOrganization: Malaspina College\nLines: 73\n\nIn article <1993Apr20.102756.1709@mala.bc.ca>, wagner@mala.bc.ca (TOM WAGNER, Wizzard of old Audio/Visual Equipment........Nanaimo Campus) writes:\n> In article <C5r60r.4ID@megatest.com>, alung@megatest.com (Aaron Lung) writes:\n>> In article <C5qsBF.IEK@ms.uky.edu> billq@ms.uky.edu (Billy Quinn) writes:\n>>>I built a little project using the radio shack 5vdc relays to switch\n>>>audio.  I got pretty bad 'clicks' when the thing switched.  I was doing\n>>>most of the common things one is supposed to do when using relays and\n>>>nothing seemed to get rid of the clicks.\n>>>\n>>>\n>>>My question is:\n>>>\n>>>\tIs there a good relay/relay circuit that I can use for switching\n>>>audio, so that there will be *NO* noise of any kind on the audio lines.\n>>>\n>>>\n>>>I will appreciate any advice or references to advice.  Also, exact part\n>>>numbers/company names etc. for the relays will help!\n>> \n>> Are you switching high level signals or low level signals like pre-amp\n>> out level signals?  Also, are the clicks you mentioning the big\n>> clack that happens when it switches or are you refering to contact\n>> bounce?  How are you driving the relays?  TTL gate output?  Switching\n>> transistor?  How are the relays connected to what you are driving?\n>> \n>> Need more specifics to answer your question!! :-)\n> \n> As a general rule, no relay will cleanly switch audio if you try to tranfer\n> the circuit with the contacts.  The noise you hear is due to the momentary\n> opening and closing of the path.\n> \n> The noiseless way of transfering audio is to ground the circuit.  In high\n> impedance audio circuits a resistive \"T\" is constructed close to characteristic\n> impedance of the circuit.  Grounding the imputs (connected to the T) transfers\n> the audio.\n> \n> In low impedance circuits transformers are usually used, and the inputs are\n> shorted out or grounded.  Secondaries are paralleled at the characteristic\n> impedance.\n> \n> Sometimes if it is necessary to actually switch audio, a second contact is used\n> to momentarily short the circuit output for the duration of the switching time.\n> \n> Telephone relays are handy, because contacts can be adjusted to \"Make before\n> break and Vica Versa\" but I haven't seen any of these for years.\n> \n> Nowadys switching is done electronically with OP amps, etc.\n> \n> A novel circuit I used to build was a primitive \"optical isolator\".. It consists\n> of a resistive photocell and a lamp, all packaged in a tube.  When the lamp is\n> off the cell is high resistance.  Turn the lamp on and the resistance lowers\n> passing the audio.  Once again this device in a \"T\" switches the audio.  Varying\n> the lamp resistance give a remote volume control.  Use 2 variable resisters and\n> you have a mixer!\n> \n> Lots of luck!\n> -- \n> 73, Tom\n> ================================================================================\n> Tom Wagner, Audio Visual Technician.  Malaspina College Nanaimo British Columbia\n> (604)753-3245, Loc 2230  Fax:755-8742  Callsign:VE7GDA Weapon:.45 Kentucky Rifle\n> Snail mail to:  Site Q4, C2.   RR#4, Nanaimo, British Columbia, Canada, V9R 5X9  \n> \n> I do not recyle.....   I keep everything!       (All standard disclaimers apply)\n> ================================================================================\n-- \n73, Tom\n================================================================================\nTom Wagner, Audio Visual Technician.  Malaspina College Nanaimo British Columbia\n(604)753-3245, Loc 2230  Fax:755-8742  Callsign:VE7GDA Weapon:.45 Kentucky Rifle\nSnail mail to:  Site Q4, C2.   RR#4, Nanaimo, British Columbia, Canada, V9R 5X9  \n\nI do not recyle.....   I keep everything!       (All standard disclaimers apply)\n================================================================================\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.190+0000", "event": "documents", "entityId": 3930, "properties": {"category": "misc.forsale", "text": "From: reidg@pacs.pha.pa.us ( Reid Goldsborough)\nSubject: OS/2 etc. for sale\nKeywords: software\nDistribution: na\nOrganization: Philadelphia Area Computer Society\nLines: 20\n\nThese packages all include complete printed manuals and\nregistration cards. I need to get rid of some excess.\nThey're the latest versions. I've priced these programs\nat less than half the list price and significantly less\nthan the cheapest mail-order price around.\n \n* OS/2 2.0, can run Windows, DOS, and OS/2 programs,\nsuperior stability compared to Windows, list $169, sale\n$60.\n \n* NORTON COMMANDER FOR OS/2, provides better file\nmanagement than OS/2 does alone, graphical tree and file\nlist, drag and drop, launch apps from customizable menu,\nlist $149, sale $60.\n \nIf you're interested in any of these programs, please phone me at\n215-885-7446 (Philadelphia) and I'll save the package for you.\n-- \nReid Goldsborough\nreidg@pacs.pha.pa.us\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3931, "properties": {"category": "rec.sport.baseball", "text": "From: ring@poseidon (Sue Rankin)\nSubject: Camden Yards\nOrganization: Athena Design, Inc.\nLines: 13\nNNTP-Posting-Host: poseidon.athena.com\n\nI am fortunate enough to have tickets for an Orioles-Red Sox game in  \nBaltimore on Saturday, July 31st.  I haven't been to the new park,\nand I was wondering if anyone out there can give me pointers or good tips  \nor anything helpful about the place so that I can enjoy every moment spent\nthere.\nFor instance, what time do the gates open?  Do we see the Orioles take BP?\nWhen will the Red Sox take BP?  Anything you can tell me would be \nappreciated.  Thank you in advance. \nPlease respond to my e-mail address.\nI know it's still three-and-a-half months away, but I'm psyched!\n\n\nSue\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3932, "properties": {"category": "talk.religion.misc", "text": "Organization: Penn State University\nFrom: <DGS4@psuvm.psu.edu>\nSubject: Re: ABORTION and private health coverage -- letters regarding\n <sandvik-140493233557@sandvik-kent.apple.com> <1qk73q$3fj@agate.berkeley.edu>\n <syt5br_@rpi.edu> <nyikos.735335582@milo.math.scarolina.edu>\nLines: 41\n\nIn article <nyikos.735335582@milo.math.scarolina.edu>, nyikos@math.scarolina.edu\n(Peter Nyikos) says:\n>\n>In <syt5br_@rpi.edu> rocker@acm.rpi.edu (rocker) writes:\n>\n>>In <1qk73q$3fj@agate.berkeley.edu> dzkriz@ocf.berkeley.edu (Dennis Kriz)\n>writes:\n>\n>>>If one is paying for a PRIVATE health insurance plan and DOES NOT WANT\n>>>\"abortion coverage\" there is NO reason for that person to be COMPLELLED\n>>>to pay for it.  (Just as one should not be compelled to pay for lipposuction\n>>>coverage if ONE doesn't WANT that kind of coverage).\n>\n>>You appear to be stunningly ignorant of the underlying concept of health\n>>insurance.\n>\n>Are you any less stunningly ignorant?  Have you ever heard of life\n>insurance premiums some companies give in which nonsmokers are charged\n>much smaller premiums than smokers?\n>\n>Not to mention auto insurance being much cheaper for women under 25 than\n>for men under 25, because women on the average drive more carefully\n>than most men--in fact, almost as carefully as I did before I was 25.\n\nAs many people have mentioned, there is no reason why insurers could not\noffer a contract without abortion services for a different premium.\nThe problem is that there is no guarantee that this premium would be\nlower for those who chose this type of contract.  Although you are\nremoving one service, that may have feedbacks into other types of covered\ncare which results in a net increase in actuarial costs.\n\nFor an illustrative example in the opposite direction, it may be possible\nto ADD services to an insurance contract and REDUCE the premium.  If you\nadd preventative services and this reduces acute care use, then the total\npremium may fall.\n\nThese words and thoughts are my own. * I am not bound to swear\n**      **      **       **          * allegiance to the word of any\n  **  **  **  **  **  **             * master. Where the storm carries\n    **      **      **               * me, I put into port and make\nD. Shea, PSU                         * myself at home.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3933, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: some thoughts.\nKeywords: Dan Bissell\nLines: 31\nOrganization: Walla Walla College\nLines: 31\n\nIn article <11820@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n>From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\n>Subject: Re: some thoughts.\n>Keywords: Dan Bissell\n>Date: 15 Apr 93 18:21:21 GMT\n>In article <bissda.4.734849678@saturn.wwc.edu> bissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n>>\n>>\tFirst I want to start right out and say that I'm a Christian.  It \n>>makes sense to be one.  Have any of you read Tony Campollo's book- liar, \n>>lunatic, or the real thing?  (I might be a little off on the title, but he \n>>writes the book.  Anyway he was part of an effort to destroy Christianity, \n>>in the process he became a Christian himself.\n>\n>  This should be good fun.  It's been a while since the group has\n>  had such a ripe opportunity to gut, gill, and fillet some poor\n>  bastard.  \n>\n>  Ah well.  Off to get the popcorn...\n>\n>/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n>\n>Bob Beauchaine bobbe@vice.ICO.TEK.COM \n>\n>They said that Queens could stay, they blew the Bronx away,\n>and sank Manhattan out at sea.\n>\n>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nI hope you're not going to flame him.  Please give him the same coutesy you'\nve given me.\n\nTammy\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3934, "properties": {"category": "sci.med", "text": "From: francis@ircam.fr (Joseph Francis)\nSubject: Re: Krillean Photography\nOrganization: Inst. de Recherche et Coordination Acoustique/Musique, Paris\nLines: 50\n\nIn article <1993Apr19.205615.1013@unlv.edu> todamhyp@charles.unlv.edu (Brian M. Huey) writes:\n>I think that's the correct spelling..\n\nCrullerian.\n\n>\tI am looking for any information/supplies that will allow\n>do-it-yourselfers to take Krillean Pictures. I'm thinking\n>that education suppliers for schools might have a appartus for\n>sale, but I don't know any of the companies. Any info is greatly\n>appreciated.\n\nCrullerian photography isn't educational, except in a purely satiric\nsense.\n\n>\tIn case you don't know, Krillean Photography, to the best of my\n>knowledge, involves taking pictures of an (most of the time) organic\n>object between charged plates. The picture will show energy patterns\n>or spikes around the object photographed, and depending on what type\n>of object it is, the spikes or energy patterns will vary. One might\n>extrapolate here and say that this proves that every object within\n>the universe (as we know it) has its own energy signature.\n\nCrullerian photography involves putting donuts between grease-covered\nhot metal plates while illuminating them with a Krypton Stroboscope.\nThrough a unique iteration involving the 4th-dimensional projection of\na torus through the semi-stochastic interactions of hot monomolecular\nlipid layers covering the metal plates (the best metal is iron since\nit repels Vampires and Succubi) the donuts start developing flutes,\nand within moments actually become poly-crenellated hot greasy\nbreadtubes. Some people believe that food is the way to a man's heart,\nbut most psychics agree that there is nothing like hot Crullers for\nbreakfast; the chemical composition of crullers is a mystery, some\nthought evidence of Charles Fort's channeling in Stevie Wonder's\nproduction of \"The Secret Life of Plants\" when played backwards in the\ntheatre of unnaturally fertile Findhorn Farms has deduced that they\nare complex carbohydrates ordinarily only found by spectoscopy in the\nMagellenic Clouds. I called Devi on my Orgone Box and asked her if\nthis was really the case, and she TM levitated me a letter across the\nAtlantic to tell me it was indeed not just another case of\nmisunderstanding Tesla, though the Miskatonic University hasn't\nconfirmed anything at all. At least the Crullers taste good; I got the\nrecipe from Kaspar Hauser.\n\n\n\n\n\n-- \n| Le Jojo: Fresh 'n' Clean, speaking out to the way you want to live\n| today; American - All American; doing, a bit so, and even more so.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3935, "properties": {"category": "rec.autos", "text": "From: qazi@csd4.csd.uwm.edu (Aamir Hafeez Qazi)\nSubject: Re: Instead of a Saturn SC2, What???\nOrganization: University of Wisconsin - Milwaukee\nLines: 22\nDistribution: na\nReply-To: qazi@csd4.csd.uwm.edu\nNNTP-Posting-Host: 129.89.7.4\nOriginator: qazi@csd4.csd.uwm.edu\n\nFrom article <1qkkl5INNbvo@hp-col.col.hp.com>, by theckel@col.hp.com (Tim Heckel):\n> For those that are interested I got my fully optioned (Air, ABS,\n> sunroof) '92 SE-R in September 1991 for $13,555 in Sacramento, CA. It\n> was one of the 1st '92s sold, few of the dealers had any, no local\n> dealer had an ABS equipped SE-R.  I went straight to the fleet manager\n> at the dealership I liked, told him what I wanted, made him aware that I\n> knew what his price should be.  He called me back with exactly what I\n> wanted from a dealer 125mi away, I took delivery the next day. \n\n--When I was selling Nissans last summer, I sold a '92 SE-R in early August\n  when its supply was getting quite scarce.  The car was black with ABS, \n  Value Option Pkg, and power moonroof.  I sold it for $12,900 plus tax.\n  Naturally, my manager didn't really care to sell one of the most desirable\n  SE-R's for virtually no profit (to the best of my knowledge).....\n\n--Aamir Qazi\n\n-- \n\nAamir Qazi\nqazi@csd4.csd.uwm.edu\n--Why should I care?  I'd rather watch drying paint.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3936, "properties": {"category": "rec.autos", "text": "From: awelker@watarts.uwaterloo.ca (a welker)\nSubject: Aftermarket exhausts for BMW 320i\nOrganization: University of Waterloo\nLines: 14\n\nI am in the process of looking for a half decent aftermarket sport exhaust\nfor my 1981 BMW 320i. So far, I have found a Pacesetter exhaust for $219\nand an Ansa exhaust for $190 (Canadian funds). I was wondering if anyone\ncould tell me anyhting about either of these exhausts or any other possible\nexhausts that I may be interested in. My main priorities are a decent horse\npower increase (5-30%) and a nice low note to go along with that added power.\nI was also thinking of looking into both Remus and Leistritz exhausts.Has \nanyone got anything to say about these? I am mainly looking for the muffler\nonly but if anyone can find a good deal on a whole kit I would be willing to\ngo after that. I also would like to know how much these would cost me in the \nStates.Please mail me back if you have any information.\n\nMike Welker\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3937, "properties": {"category": "sci.crypt", "text": "From: makey@VisiCom.COM (Jeff Makey)\nSubject: Re: Once tapped, your code is no good any more.\nDistribution: na\nOrganization: VisiCom Laboratories, Inc., San Diego, California\nLines: 15\n\nIn article <C5so84.Hxv@demon.co.uk> Graham Toal <gtoal@gtoal.com> writes:\n>I am *completely* baffled by why Dorothy Denning has chosen\n>to throw away her academic respectability like this.\n\nShe hasn't.  Dorothy Denning has spent many years earning the\nprofessional respect of her colleagues, and something won in this\nmanner is not easily lost.  Her support of the clipper -- no matter\nhow unpopular that position may be -- serves far more to enhance the\nclipper's respectability than to diminish her own.\n\n                           :: Jeff Makey\n\nDepartment of Tautological Pleonasms and Superfluous Redundancies Department\n    Disclaimer: All opinions are strictly those of the author.\n    Domain: makey@VisiCom.COM    UUCP: nosc!visicom!makey\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3938, "properties": {"category": "talk.politics.misc", "text": "From: shou@quads.uchicago.edu (roger colin shouse)\nSubject: Re: National Sales Tax, The Movie\nReply-To: shou@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 16\n\n\nSPEAKING OF VAT:  Did anyone see CNN's report yesterday (4/15)?  It \nwas quite hillarious (no pun intended).  They ran down how a percent tax\nwas added at each stage of manufacturing, graphicaly depicting a stack of \nquarters being added at each wholesale stage.  When they got to the final \nstage (the actual retail sale) the small stack of quarters added to the\nlarge stack already there was said to be \"the amount paid by consumers.\"\nIn other words, they completed ignored the fact that at each stage the\ntax would of course be passed on to the next buyer with the retail consumer\npaying the full load.\n\nThese are not journalists--they're lap dogs.\n-- \nRoger Shouse\nThe University of Chicago \t\tEmail: shou@midway.uchicago.edu\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3939, "properties": {"category": "rec.motorcycles", "text": "From: shz@mare.att.com (Keeper of the 'Tude)\nSubject: Re: Riceburner Respect\nOrganization: Office of 'Tude Licensing\nNntp-Posting-Host: binky\nLines: 17\n\nIn article <1993Apr19.013752.22843@research.nj.nec.com>, behanna@syl.nj.nec.com (Chris BeHanna) writes:\n>         On a completely different tack, what was the eventual outcome of\n> Babe vs. the Bad-Mouthed Biker?\n\nI thought I posted this last year.\n\nThe women came to court with three witnesses; the two women that were in\nthe car and one neighbor that heard me shouting.  My lawyer didn't like\nthe odds since there were multiple complaints both ways and the judge had\na history of finding everyone guilty of at least something, so he convinced\nus (she came without a lawyer) to drop everything.  The net result was\na $500 laywer bill for me and $35 court costs for her.\n\nThe only consolation was that she had trouble scraping together the $35\nwhile $500 is not quite one week's beer money for me...\n\n- Roid\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3940, "properties": {"category": "rec.sport.baseball", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Jack Morris\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 71\n\nIn <48178@sdcc12.ucsd.edu> demers@cs.ucsd.edu (David DeMers) writes:\n\n\n>In article <1993Apr19.212428.7530@ramsey.cs.laurentian.ca>, maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n\n>The facts are that Morris\n>|> has shown us that he has what it takes to play on a WS winning club.\n>|> Clemens hasn't. \n\n>What *does* it take to play on a WS winning club?\n\nWe have no way of knowing because we cannot separate Morris' contribu-\ntion  from the rest of the team's.  There is only one way of determin-\ning \"best\" in baseball.  And that is by looking at the  scoreboard  at\nthe  end  of  the game.  Each game determines which *team* is the best\nthat day.  At the end of the season, the team that was  the  best  the\nmost  often  is  the best in the division.  The playoffs determine the\nbest of the best.  But the point is that the only decision making pro-\ncess  used to determine the \"best\" is the score of the game and it re-\nlates to the *teams*.  Not the individual players.  There is no method\ninherent  in  baseball of comparing individual performances.  And that\nis how it should be, because, after all, baseball is a team game.\n\nTo say that one player is better than another is to be able to say ab-\nsolutely  that  player A's team would have played better with player B\nin their lineup.  Sheer speculation.  Impossible to ascertain.\n\nIf you want to select a group of statistics and claim that Clemens has\ndone  better  with those statistics as a criteria, then fine.  But you\nhave  to  be  able  to  prove  that  those  statistics   measure   the\nindividual's  contribution  to  winning  the WS - because  that is the\nonly measure of \"best\" that has any meaning in the  context  of  base-\nball.   So  until you can prove that Clemens contributes to a WS cham-\npionship more than Morris your evaluation of  Clemens is totally  sub-\njective  and  is  mere opinion.  I have yet to see that any of you can\npredict a WS winner with any greater accuracy than Jeanne Dixon.\n\n>The fact is that Morris didn't \"win\" any ballgames, Toronto did, in\n>spite of Morris' \"contribution\".   This has been explained to you\n\nExactly.  The Jays won with Morris pitching.   And  Boston  wins  with\nClemens pitching.  I am not saying that Morris is better than Clemens.\nI am saying that individual comparisons between  players  are  totally\nmeaningless  and  that anyone claiming that Clemens is better based on\nhis ERA has missed the point of what baseball is all about.\n\n>many, many times and you are either too stupid or too stubborn to grasp it.\n\nYou don't have to be rude.\n\n>You are completely consumed by the post hoc, ergo propter hoc fallacy.\n\nFor you to say that means that you have either missed the entire point\nof  my  argument, or you yourself have committed a fallacy - Ignoratio\nElenchi.  I am not saying that Morris is better than Clemens   because\nhe   has  more   rings   (although  I  have,  tongue in cheek, claimed\nthat in the past).  I am saying that it is impossible to  isolate   an\nindividual's  performance   from that of his team's for the purpose of\ncomparing that individual's performance with another individual's per-\nformance.\n\nThe stats are a nice hobby and  that's  about  it.  There  is  no  new\nknowledge being produced.  So when a poster claims that Morris is better\nthan Clemens because he has more rings, the poster is no more nor less \nincorrect than the rest of you baying hounds.\n\n-- \n\ncordially, as always,                      maynard@ramsey.cs.laurentian.ca \n                                           \"So many morons...\nrm                                                   ...and so little time.\" \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3941, "properties": {"category": "talk.politics.guns", "text": "From: kde@boi.hp.com (Keith Emmen)\nSubject: Re: CNN for sale\nDistribution: usa\nOrganization: Hewlett-Packard / Boise, Idaho\nX-Newsreader: Tin 1.1scd1 PL4\nLines: 5\n\nIf anyone is keeping a list of the potential contributors, \nyou can put me down for $1000.00 under the conditions above\n\nKeith Emmen\nkde@boi.hp.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3942, "properties": {"category": "soc.religion.christian", "text": "From: gchin@ssf.Eng.Sun.COM (Gary Chin)\nSubject: Christians that are not church members\nReply-To: gchin@ssf.Eng.Sun.COM\nOrganization: Sun Microsystems, Inc.\nLines: 13\n\nOver the years, I have met Christians who are not associated with\nany local church and are not members of any local church. This is\nan issue that may be very personal, but is important.  What does\nthe Bible say about this and how can we encourage our friends with\nregard to this issue?\n\n|-------------------|\n| Gary Chin         |\n| Staff Engineer    |\n| Sun Microsystems  |\n| Mt. View, CA      |\n| gchin@Eng.Sun.Com |\n|-------------------|\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3943, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: Watt misquoted\nLines: 30\n\n\n heath@athena.cs.uga.edu (Terrance Heath) writes:\n\n >    I realize I'm entering this discussion rather late, but I do\n > have one question. Wasn't it a Reagan appointee, James Watt, a\n > pentacostal christian (I think) who was the secretary of the\n > interior who saw no problem with deforestation since we were\n > \"living in the last days\" and ours would be the last generation\n > to see the redwoods anyway?\n\nFor the Record:\n\nOn February 5, 1981, at a House of Representatives\nInterior Committee Meeting, Rep. James Weaver (D, Ore), asked Watt\nwhether \"you agree that we should save some of our scenic resources\nfor our children, not just gobble them up all at once?\" Watt's\nanswer was:\n\n < Absolutely. That is the delicate balance the Secretary of the\n < Interior must have -- to be steward for the natural resources\n < for this generation as well as future generations. I do not\n < know how many future generations we can count on before the\n < Lord returns.  Whatever it is, we have to manage with a skill\n < to have the resources needed for future generations.\n\nMy source is a column by Rowland Evans and Robert Novak on the\nop-ed page of the WASHINGTON POST for Friday 21 August 1981.\n\n Yours,\n James Kiefer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3944, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tthiel@cs.uiuc.edu (Terry Thiel)\nSubject: Re: Why does Apple give us a confusing message?\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 16\n\nferch@ucs.ubc.ca (Les Ferch) writes:\n\n>In <C5nGII.BGx@news2.cis.umn.edu> bunt0003@student.tc.umn.edu (Monthian\n>Buntan-1) writes: \n\n>>Does anyone know why Apple has an ambiguous message for C650 regarding\n>>fpu?  In all Mac price lists I've seen, every C650 as the message \"fpu:\n>>optional\".  I know from what we've discussed in this newsgroup that all\n>>C650 have the fpu built in except the 4/80 configuration.  Why would they\n>>be so unclear about this issue in their price list? \n\n>Perhaps the reason is simple--maybe the marketing people who put together\n>the brochures and price lists weren't clear on the FPU issue. \n\nPerhaps the marketing people don't KNOW what an FPU is!\n-Terry\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3945, "properties": {"category": "talk.politics.mideast", "text": "From: mucit@cs.rochester.edu (Bulent Murtezaoglu)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nArticle-I.D.: vein.MUCIT.93Apr15173530\n\t<1993Apr14.064421.27655@usage.csd.unsw.OZ.AU>\n\t<93104.141046FINAID5@auvm.american.edu> <C5I1B6.HIv@news.cso.uiuc.edu>\n\t<1993Apr14.211615@IASTATE.EDU> <C5IF8u.3Ky@news.cso.uiuc.edu>\n\t<1993Apr15.092101@IASTATE.EDU> <C5JH\nOrganization: Computer Science Department, University of Rochester\nLines: 27\nIn-Reply-To: ptg2351@uxa.cso.uiuc.edu's message of Thu, 15 Apr 1993 19:16:16 GMT\nNntp-Posting-Host: vein.cs.rochester.edu\n\nIn article <C5JHJ4.F4J@news.cso.uiuc.edu> ptg2351@uxa.cso.uiuc.edu (Panos Tamamidis ) writes:\n[stuff deleted]\n>>I am not saying that conflicts started with that. It is only\n>>not one side being the aggressive and the ither always suffering.\n>>It is sad that we (both) still are not trying to compromise.\n>>I remember the action of the Turkish government by removing the\n>>visa requirement for greeks to come to Turkey. I thought it\n>>was a positive attempt to make the relations better.\n>\n> I thought it was a smart move to receive more money from Greek tourists.\n> I bet that this week there should be about 200,000 tourists from Greece\n> in Turkey.  Each one will leave at least $1,000 so go and figure what this\n> means to your economy.  If you had kept the visa requirement, how many\n> Greeks would bother to visit Turkey?\n\nSmart indeed.  If what you're saying is true, Greeks who visit are happy,\nthe Turkish merchants are happy; who is harmed?  No one.  So not only was\nit a smart move, it was also a good move for it adds to the happiness of\n200.000 Greeks per week and however many Turkish merchants they interact with.\nOne simple move in the paperwork arena -> lotsa happy people of both \nnationalities.  Just and observation.\n\ncheers,\n\nBM\n\n[stuff deleted]\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3946, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: opinions of RC2 alg.\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 18\n\nMarkowitz@DOCKMASTER.NCSC.MIL writes:\n\n> It is interesting to note in this regard that permission to export\n> PKZIP's encryption scheme has twice been denied by NSA.  Draw you own\n> conclusions.\n\nUh, I'm afraid that your information is slightly out of date... PKWare\nhas obtained a license to export their program to the whole world,\nexcept a very limited list of countries... Draw your own conclusions\nabout the strength of the algorithm... :-)\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3947, "properties": {"category": "sci.crypt", "text": "From: gregb@den.mmc.com (gregb)\nSubject: Looking for crypto paper\nDistribution: usa\nOrganization: Martin Marietta Astronautics, Denver\nLines: 17\nNntp-Posting-Host: tosgcla.den.mmc.com\n\nLooking for PostScript or Tex version of a paper called:\n\t\"PUBLIC-KEY CRYPTOGRAPHY\"\n\nWritten by:\n\tJames Nechvatal\n\tSecurity Technology Group\n\tNational Computer Systems Laboratory\n\tNational Institute of Standards and Technology\n\tGaithersburg, MD 20899\n\n\tDecember 1990\n\nThe version I obtained is plain text and all symbolic character\nformatting has been lost.\n\n--\ngregb@tosgcla.den.mmc.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3948, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Michael.Ameres@f204.n2603.z1.fidonet.org (Michael Ameres)\nSubject: x86 ~= 680x0 ??  (How do they compare?)\nOrganization: FidoNet node 1:2603/204 - Not Even Odd, Forest Hills NY\nLines: 26\n\nI believe it goes or will go:\n680060\npowerPC\nPentium\n680040\n486\n680030\n386\n680020\n286=680000\n\nIn a resent article in one of the macMags I think a 50mHz 030 accelerator was\n slightly slower than a 25mHz 040 accel. But, this is using a system designed\n for the 030. So, It stands to reason that a system designed for an 040 ie\n quadra) would do better. So overall I'd figure 040 = 030 * 2.5 or so.\n    Along the same lines the new POwerPC stuff is supposed to run the system\n at the level of a fast quadra, but system 8 or whatever will allow 3 times the\n speed of a 040 in the powerPC based systems. and wait for the 680060. I think\n it laps the pentium.\n\npro-life pro-women\n\n\n--  \n=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n Michael Ameres - Internet: Michael.Ameres@f204.n2603.z1.fidonet.org\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3949, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: anik@crhc.uiuc.edu (Sadun Anik)\nSubject: Re: Win NT - what is it???\nOrganization: Center for Reliable and High-Performance Computing\nLines: 45\n\t<rick.734972416@silver> <2BCF2664.3C6A@deneva.sdd.trw.com>\nNNTP-Posting-Host: lyra.crhc.uiuc.edu\nIn-reply-to: reimert@.etdesg.trw.com's message of Fri, 16 Apr 93 21:34:28 GMT\n\nIn article <2BCF2664.3C6A@deneva.sdd.trw.com> reimert@.etdesg.trw.com (Scott P. Reimert) writes:\n\n>   Somewhere in this thread, it has been said that Windows NT (tm) is a \n>   multi-user OS, as well as multi-threading, etc.  I certainly haven't\n>   seen this to be the case.  There are seperate accounts for each person,\n>   and even seperate directories if that is desired.  I don't see an \n>   implentation of simultaneuos use though.\n>\n>\t\t   Scott\n\nIt certainly is multi-user. What I have seen from the March Beta is\nthat it doesn't yet come with the stuff which exploits multi-user\nfeatures. I remember somebody from MS stating that it doesn't allow\ntwo users share one GUI. My interpretation of this was that one user\nper console but all the networking and RPC based stuff you want. \n\nI believe ftp and rlogin deamons for NT systems will come from third\nparty. Somebody already has a Beta version of an unsecure ftpd on the\nnet. There is no reason why one cannot write a posix based shell like\ncsh on Unix for remote logins. \n\nIn general I liked NT when I checked it out. It slow compared to\nWin3.1 (just like any other real OS). The beta version, although being\nslow, botts up much faster than my SUN workstation. Windows subsystems\nalso start up a lot faster than X windows. I believe Bill Gates was\nright when he stated that NT was not for everybody. After playing\naround with it for a while I was convinced. If I owned a busines using\na \"business computer\" from IBM or some other established vendor, I\nwould consider moving to NT platform because it would provide a much\ncheaper solution (If you are running SQL servers etc.). It provides\nthe robustness such an application requires. \n\nOn the other hand if you like your DOS games, more or less forget\nabout NT. You can always boot to DOS  but in general that defeats\nthe purpose of using NT. Most of NT's features are visible in a\nnetworked environment and in such an environment you can't reboot your\nmachine at will. For personal use, I would rather wait for the Win32\nbased Windows release (whatever you name it) than jump to NT bandwagon.\nI expect most applications will keep on using Win16 until Win32\nbecomes widely available. \n\n--\nSadun Anik, U of Illinois at Urbana-Champaign\nCenter for Reliable and High-performance Computing\ne-mail: anik@crhc.uiuc.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.191+0000", "event": "documents", "entityId": 3950, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jamie@zikzak.apana.org.au (Jamie Scuglia)\nSubject: Workspace Managers for Win 3.1 - a small review\nOrganization: Zikzak Public Access UNIX, Melbourne Australia\nLines: 56\nNNTP-Posting-Host: zikzak.apana.org.au\n\nThanks to all those people who recommended Workspace managers for\nWindows 3.1.  I found 3 shareware Workspace Managers, from Australia's\nMS-WINDOWS archive (monu6.cc.monash.edu.au), which mirrors some\nsites in the U.S.  The three I found were:\n\n1. WORKSPACES 1.10 (wspace.zip)\n                                This was the smallest and simplest\n   of the workspace managers that I found.  It is very easy to use.\n   It displays a small window, containing 6 buttons, plus an extra\n   button for configuration purposes.  One annoying feature was the\n   title window that is first presented when it is run - you must press\n   a key (not a mouse button!) for the thing to go away.  Also, it would\n   have been nice if there was an \"ALWAYS ON TOP\" setting for the little\n   window containing the workspace buttons.  Maybe some user-specified\n   strings on the buttons instead of the numbers one to six might be\n   a nice feature.  The simplicity and ease of use of this workspace\n   manager makes it an attractive package.\n\n2. WORKSHIFT 1.6 (wrksft16.zip)\n                               While this workspace manager offered a\n   few features that WORKSPACES 1.10 lacked, it was quite time consuming\n   to set things up.  With WORKSPACES 1.10, all but the first workspace\n   is initially empty.  With WORKSHIFT 1.6, you need to take \"snapshots\"\n   of how you want each of your workspaces to look like - i.e. what \n   applications they contain.  Also, the main window is quite large,\n   but this does allow you to have a small view of what is in each workspace.\n   With WORKSPACES 1.10, there was no facility for viewing what was in\n   a workspace without switching to it.  WORKSHIFT 1.6 provides this\n   viewing functionality which is quite useful.\n\n3. BIGDESK 2.30 and BACKMENU (backdesk.zip)\n                            This is an interesting package, which contains\n   a few other goodies as well as a workspace manager.  Other goodies\n   include \"Backmenu\", which provides a pop-up root menu when you\n   press a certain mouse button - just like in X-Windows.  The menu\n   is totally configurable, offering unlimited depth of cascading menus,\n   which is provides quite handy access to applications.  You could\n   say it is a menu-based alternative to the program manager.  Also\n   bundled in \"backdesk.zip\" is a program called \"WRUN\", which allows\n   you to run windows applications from a DOS shell under WINDOWS\n   instead of using the File Manager to run applications.  \n   The actual workspace manager is called BIGDESK 2.30.  BIGDESK works quite\n   differently to the other two workspace managers in that it\n   doesn't provide a certain number of disjoint and separate workspaces.\n   In fact, it basically enlarges your desktop by a configurable amount,\n   and you choose which region of the desktop you want your screen to\n   focus in on.  This means you can have windows overlapping between different\n   viewing regions, unlike the first two workspace managers in which\n   each workspace was isolated from the other one.  The BIGDESK control window\n   allows to to move windows around your enlarged desktop.  Basically\n   the control window provides a small scale view of your viewing area\n   while your actual computer screen provides a large scale or blow-up\n   of a particular section.\n\nTry each of them out for yourself.  I was impressed with all of them,\nso find out which one suits your needs the best.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3951, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: hhaldre@stacken.kth.se (Heikki Haldre)\nSubject: (Q) COMPAQ configuration. HELP!!\nOrganization: UTexas Mail-to-News Gateway\nLines: 19\nNNTP-Posting-Host: cs.utexas.edu\n\n\nHi All COMPAQ owners\n\nA friend of mine has COMPAQ (PORTABLE III), and he has lost all the manuals and\ndiskettes.\n\nPlease HELP him getting the machine's equipment definition (CMOS) memory\nconfiguration right. The machine says that some bytes of it are still \nincorrectly set up. It seems, that COMPAQ has some bytes defined not like\nthe 100% IBM compatible machines. If You have a COMPAQ, it\ncertainly has DIAGNOSTICs diskette with it. And this is needed. I can't\nreach quickly any COMPAQ dealers here.\n\nIf it is possible PLEASE email documentation, or some of its configuration\nsoftware.\n\nHeikki Haldre E-mail: hhaldre@sune.stacken.kth.se\n                  or  hhaldre@park.tartu.ee\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3952, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: passman@world.std.com (Shirley L Passman)\nSubject: help with no docs for motherboard\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 1\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3953, "properties": {"category": "talk.politics.mideast", "text": "From: gfeygin@unicorn.eecg.toronto.edu (Gennady Feygin)\nSubject: Kol Israel Broacasts\nOrganization: Electrical and Computer Engineering, University of Toronto\nLines: 5\n\nDoes anyone have a schedule of Kol Israel broadcasts in different\nlanguages that could be posted or e-mailed to me. Your\nassistance would be greatly appreciated\n\nGF\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3954, "properties": {"category": "soc.religion.christian", "text": "From: labson@borneo.corp.sgi.com (Joel Labson)\nSubject: Maybe?????\nOrganization: Silicon Graphics, Inc.\nLines: 17\n\nHi Christian friends,\n\nMy name is Joel, I have a sister who's 25th birthday is tomorrow.....She\nused to be on fire for the Lord, but somehow, for some reason, she\nbecame cold....she don't want to associate anymore with her old\nchristian friends.........so I thought maybe some of you could help her\nout again by sending her a postcard or card with a little message of\nencouragement.....hand written is okay....her address is 3150 Hobart\nAve. San Jose Ca. 95127...........\n\nThank you and God Bless.\n\nPS: Jesus Christ is LORD!!!!!!!! \n\n[I have some qualms about postings like this.  You might want to\nengage in a bit more conversation with Joel before deluging \nsomeone who doesn't expect it with cards.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3955, "properties": {"category": "rec.sport.baseball", "text": "From: shippert@cco.caltech.edu (Tim Shippert)\nSubject: Re: Infield Fly Rule\nOrganization: California Institute of Technology, Pasadena\nLines: 25\nNNTP-Posting-Host: sandman.caltech.edu\n\njrogoff@scott.skidmore.edu (jay rogoff) writes:\n\n>One last infield fly question that has always puzzled me and hasn't\n>yet been addressed.  I believe the rule also does *not* deal with this\n>situation:\n\n>However, if the Infield Fly is *not* caught, at what point can a runner\n>legally leave his base w/o fear of being doubled off for advancing too\n>early?  \n\n\tThe runner can leave his base at any time.  If the ball is caught,\nhe's got to tag up.  If it isn't caught, he _doesn't_ have to tag up at\nall.  So, if he's feeling lucky, your runner at second can sprint for glory\nas soon as the ball is popped up.  If it isn't caught, he's probably scored\na run.  If it is, he's probably headed for AAA.  \n\n\tThe only effect the infield fly has is to make the batter out,\nthereby removing the force on the runners on base.  All other rules apply,\nas if you were standing second with first open and the ball is popped up.\n\n-- \nTim Shippert                                 shippert@cco.caltech.edu\n\"If we are going to stick to this damned quantum-jumping, then I regret\nthat I ever had anything to do with quantum theory.\"\n\t\t\t\t\t-E. Schrodinger\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3956, "properties": {"category": "talk.politics.mideast", "text": "From: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nSubject: Re: Argic\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nOrganization: Columbia University\nLines: 13\n\nIn article <dj80734@pro-angmar.alfalfa.com> cosmo@pro-angmar.alfalfa.com (Frank Benson) writes:\n>You definetly are in need of a shrink, loser!\n\n\nHey cheesedicks, stop sending messages to a guy who's not going to\nread them.  And who cares anyway?  \n\n\n\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3957, "properties": {"category": "rec.sport.baseball", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: quick way to tell if your local beat writer is dumb.\nArticle-I.D.: midway.1993Apr6.044201.27457\nReply-To: thf2@midway.uchicago.edu\nDistribution: na\nOrganization: University of Chicago\nLines: 16\n\nIn article <Apr.6.00.33.22.1993.26417@pilot.njin.net> gajarsky@pilot.njin.net (Bob Gajarsky - Hobokenite) writes:\n>ok - sorry about that...i didn't realise he was being sarcastic about\n> those sort of things.\n>\n>but i'll tell you, mike lupica (daily news) usually says some pretty\n> funny things in his \"shooting from the lip\" columns...\n>\n>- bob gaj\n\nY'know, if current trends continue, the Florida Marlins will be the first\nexpansion team to go 162-0 and outscore their opponents by 486 runs.\n-- \nted frank                 | \"However Teel should have mentioned that though \nthf2@kimbark.uchicago.edu |  his advice is legally sound, if you follow it \nthe u of c law school     |  you will probably wind up in jail.\"\nstandard disclaimers      |                    -- James Donald, in misc.legal\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3958, "properties": {"category": "talk.politics.misc", "text": "From: deane@binah.cc.brandeis.edu (David Matthew Deane)\nSubject: Re: PUBLIC HEARINGS on Ballot Access, Vote Fraud and Other Issues\nReply-To: deane@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 281\n\nIn article <1993Apr5.200623.15140@dsd.es.com>, Bob.Waldrop@f418.n104.z1.fidonet.org (Bob Waldrop) writes:\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n> Announcing. . . Announcing. . . Announcing. . . Announcing\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n>\n>                     PUBLIC HEARINGS\n>\n>                on the compliance by the \n>\n>                UNITED STATES GOVERNMENT\n>\n>          and the governments of the states of\n>\n>         FLORIDA, LOUISIANA, ARKANSAS, MISSOURI,\n>         WEST VIRGINIA, NORTH CAROLINA, INDIANA,\n>          MARYLAND, OKLAHOMA, NEVADA, WYOMING,\n>                   GEORGIA, AND MAINE\n>\n>      with Certain International Agreements Signed\n>     by the United States Government, in particular,\n>\n>           THE INTERNATIONAL COVENANT ON CIVIL\n>                  AND POLITICAL RIGHTS\n>                 (signed 5 October 1977)\n>\n>                         and the\n>\n>        DOCUMENT OF THE COPENHAGEN MEETING OF THE\n>        CONFERENCE ON THE HUMAN DIMENSION OF THE\n>         CONFERENCE ON SECURITY AND COOPERATION\n>                        IN EUROPE\n>                       (June 1990)\n>\n>                 A Democracy Project of\n>\n>                   CELEBRATE LIBERTY!\n>        THE 1993 LIBERTARIAN NATIONAL CONVENTION\n>                   AND POLITICAL EXPO\n>\n>                     Sept. 2-5, 1993\n>              Salt Palace Convention Center\n>                     Marriott Hotel\n>                  Salt Lake City, Utah\n>\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n>                            \n>These hearings will investigate charges that the governments\n>referenced above routinely violate the political and\n>democratic rights of political minority parties.  Persons\n>interested in testifying at these hearings, or in submitting\n>written or documentary evidence, should contact:\n>\n>                       Bob Waldrop\n>                     P.O. Box 526175\n>                Salt Lake City, UT  84152\n>                     (801)-582-3318\n>          Bob.Waldrop@f418.n104.z1.fidonet.org\n>\n>Examples of possible information of interest includes\n>evidence and testimony regarding: \n>\n>(1)   Unfair or unequal treatment of political minorities;\n>\n>(2)   Physical assaults on volunteers, candidates, or\n>      members of minority parties;\n>\n>(3)   Arrests of minority party petitioners, candidates, or\n>      members while engaged in political activity;\n>\n>(4)   Structural barriers to organizing third parties and/or\n>      running for office as anything other than a Democrat\n>      or Republican (e.g. signature totals required for\n>      petitions to put new parties and candidates on ballots,\n>      requirements for third parties that Democrats and\n>      Republicans are not required to meet, etc.);\n>\n>(5)   Taxpayer subsidies of Democratic and Republican\n>      candidates that are denied or not available to third\n>      parties;\n>\n>(6)   Fraudulent or non-reporting of minority party vote\n>      totals (e.g. stating totals for Democratic and\n>      Republican party candidates as equal to 100% of the\n>      vote);\n>\n>(7)   Refusals by state legislatures, governors, and courts to\n>      hear petitions for redress of grievances from third\n>      parties, and/or unfavorable rulings/laws\n>      discriminating against third parties;\n>\n>(8)   Refusal to allow registration as a member of a third\n>      party when registering to vote (in states where\n>      partisan voter registration is optional or required);\n>\n>(9)   Vote fraud, stuffing ballot boxes, losing ballots, fixing\n>      elections, threatening candidates, ballot printing errors;\n>      machine voting irregularities, dishonest/corrupt\n>      election officials, refusal to register third party voters\n>      or allow filing by third party candidates; failure to\n>      print third party registration options on official voter\n>      registration documents; intimidation of third party\n>      voters and/or candidates; and/or any other criminal\n>      acts by local, county, state or federal election officials;\n>\n>(10)  Exclusion of third party candidates from debate\n>      forums sponsored by public schools, state colleges and\n>      universities, and governments (including events\n>      carried on television and radio stations owned and/or\n>      subsidized by governments;\n>\n>(11)  Any other information relevant to the topic.\n>\n>Information is solicited about incidents relating to all non-\n>Democratic and non-Republican political parties, such as\n>Libertarian, New Alliance, Socialist Workers Party, Natural\n>Law Party, Taxpayers, Populist, Consumer, Green, American,\n>Communist, etc., as well as independent candidates such as\n>John Anderson, Ross Perot, Eugene McCarthy, Barry\n>Commoner, etc.\n>\n>\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n>\n>Representatives of the governments referenced above will be\n>invited to respond to any allegations.\n>\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n>\n>\n>        RELEVANT SECTIONS OF THE DOCUMENT OF THE\n>          COPENHAGEN MEETING REFERENCED ABOVE:\n>\n>\"(The participating States) recognize that pluralistic\n>democracy and the rule of law are essential for ensuring\n>respect for all human rights and fundamental freedoms. . .\n>They therefore welcome the commitment expressed by all\n>participating States to the ideals of democracy and political\n>pluralism. . . The participating States express their conviction\n>that full respect for human rights and fundamental freedoms\n>and the development of societies based on pluralistic\n>democracy. . . are prerequisites for progress in setting up the\n>lasting order of peace, security, justice, and co-operation. . .\n>They therefore reaffirm their commitment to implement fully\n>all provisions of the Final Act and of the other CSCE\n>documents relating to the human dimension. . . In order to\n>strengthen respect for, and enjoyment of, human rights and\n>fundamental freedoms, to develop human contacts and to\n>resolve issues of a related humanitarian character, the\n>participating States agree on the following. . .\n>\n>\"(2). . . They consider that the rule of law does not mean\n>merely a formal legality which assures regularity and\n>consistency in the achievement and enforcement of\n>democratic order, but justice based on the recognition and\n>full acceptance of the supreme value of the human\n>personality and guaranteed by institutions providing a\n>framework for its fullest expression.\"\n>      \n>\"(3)  They reaffirm that democracy is an inherent element of\n>the rule of law.  They recognize the importance of pluralism\n>with regard to political organizations.\"\n>\n>\"(4)  They confirm that they will respect each other's right\n>freely to choose and develop, in accordance with\n>international human rights standards, their political, social,\n>economic and cultural systems.  In exercising this right, they\n>will ensure that their laws, regulations, practices, and policies\n>conform with their obligations under international law and\n>are brought into harmony with the provisions of the\n>Declaration on Principles and other CSCE commitments.\"\n>\n>\"(5)  They solemnly declare that among those elements of\n>justice which are essential to the full expression of the\n>inherent dignity and of the equal and inalienable rights of all\n>human beings are the following. . .\"\n>\n>\". . . (5.4) -- a clear separation between the State and political\n>parties; in particular, political parties will not be merged with\n>the state. . .\"\n>\n>\". . . (7)  To ensure that the will of the people serves as\n>the basis of the authority of government, the participating\n>states will. . .\"\n>\n>\"(7.4) -- ensure . . . that (votes) are counted and reported\n>honestly with the official results made public;\"\n>\n>\"(7.5) -- respect the right of citizens to seek political or public\n>office, individually or as representatives of political parties or\n>organizations, without discrimination.\"\n>\n>\n>                RELEVANT SECTIONS OF THE\n>        INTERNATIONAL COVENANT OF 5 OCTOBER 1977\n>                    REFERENCED ABOVE\n>\n>The States Parties to the present Covenant. . . Recognizing\n>that. . . the ideal of free human beings enjoying civil and\n>political freedom and freedom from fear and want can only\n>be achieved if conditions are created whereby everyone may\n>enjoy his civil and political rights, as well as his economic,\n>social, and cultural rights, Considering the obligation of\n>States under the Charter of the United Nations to promote\n>universal respect for, and observance of, human rights and\n>freedoms. . . Agree upon the following articles. . .\n>\n>Article 2.  (1) Each State Party to the present Covenant\n>undertakes to respect and to ensure to all individuals within\n>its territory and subject to its jurisdiction the rights\n>recognized in the present Covenant, without distinction of\n>any kind, such as race, colour, sex, language, religion,\n>political or other opinion, national or social origin, property,\n>birth, or other status.\n>\n>(2)  Where not already provided for by existing legislative or\n>other measures, each State Party to the present Covenant\n>undertakes to take the necessary steps, in accordance with its\n>constitutional processes and with the provisions of the\n>present Covenant, to adopt such legislative or other measures\n>as may be necessary to give effect to the rights recognized in\n>the present Covenant. . .\n>\n>Article 3.  The States Parties to the present Covenant\n>undertake to ensure the equal right of men and women to\n>the enjoyment of all civil and political rights set forth in the\n>present Covenant. . .\n>\n>Article 25.  Every citizen shall have the right and the\n>opportunity, without any of the distinctions mentioned in\n>article 2 and without unreasonable restrictions:  (a) to take\n>part in the conduct of public affairs, directly or through\n>freely chosen representatives; (b) to vote and to be elected at\n>genuine periodic elections which shall be by universal and\n>equal suffrage and shall be held by secret ballot,\n>guaranteeing the free expression of the will of the electors; (c)\n>to have access, on general terms of equality, to public service\n>in his country.\n>\n>Article 26.  All persons are equal before the law and are\n>entitled without any discrimination to the equal protection of\n>the law.  In this respect, the law shall prohibit any\n>discrimination and guarantee to all persons equal and\n>effective protection against discrimination on any ground\n>such as race, colour, sex, language, religion, political or other\n>opinion, national or social origin, property, birth, or other\n>status.\n>\n>\n>\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n>There will be no peace without freedom.\n>Think Globally -- Act Locally.\n>Resist Much.  Obey Little.\n>Question Authority.\n>\n>Comments from Bob Waldrop are the responsibility of Bob\n>Waldrop!  For a good time call 415-457-6388.\n>\n>E-Mail:           Bob.Waldrop@f418.n104.z1.fidonet.org\n>Snail Mail:       P.O. Box 526175\n>                  Salt Lake City, Utah 84152-6175\n>                  United States of America\n>Voice Phone:      (801) 582-3318\n>-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-\n>\n>\n>\n>-- \n>\t\t      Don't blame me; I voted Libertarian.\n>Disclaimer: I speak for myself, except as noted; Copyright 1993 Rich Thomson\n>UUCP: ...!uunet!dsd.es.com!rthomson\t\t\tRich Thomson\n>Internet: rthomson@dsd.es.com\tIRC: _Rich_\t\tPEXt Programmer\n============================================================================\nDavid Matthew Deane (deane@binah.cc.brandeis.edu)\n     \nWhen the words fold open,\nit means the death of doors;\neven casement windows sense the danger.   (Amon Liner)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3959, "properties": {"category": "talk.politics.guns", "text": "From: dfo@vttoulu.tko.vtt.fi (Foxvog Douglas)\nSubject: Re: Rewording the Second Amendment (ideas)\nOrganization: VTT\nLines: 55\n\nIn article <viking.735378520@ponderous.cc.iastate.edu> viking@iastate.edu (Dan Sorenson) writes:\n>dfo@vttoulu.tko.vtt.fi (Foxvog Douglas) writes:\n\n>>You believe that individuals should have the right to own weapons of\n>>mass destruction?  I find it hard to believe that you would support a \n>>neighbor's right to keep nuclear weapons, biological weapons, and nerve\n>>gas on his/her property.  \n\n>\tThat really depends upon where you draw the line while defining\n>these weapons, \n\nThis means you would support a ban if it were narrow enough.  Good.\n\n>and also on if you intend the law to be reflective of\n>modern practice five months or five centuries down the road.  \n\nI would hope so.  Let's define a nuclear weapon as an explosive weapon\nwhose majority of energy comes from fission and/or fusion of atomic\nnuclei.  Let's define a biological weapon as live organisms or viruses \nin such state, quantity, and with such a vector that they could cause \ndeath or serious disease [further defined] to a significant number of\npeople if released in a city, similarly populated area, resevoir, or\ncropland.  \n\n\nNerve gas and mustard gas are well defined.  Other poisonous\ngasses should be individually banned only if it can be shown that there\nis no use not related to weaponry.  Licenses should be available for\nresearch purposes on such chemicals.\n\nI am not a lawyer, but these ideas could certainly be a basis for \ndefinitions.\n\n>I'll give\n>you a little hint:  see that manure pile in the farmer's field down the\n>road?  In the USA, that is a weapon of mass destruction, \n\nNope.  It is not considered a weapon.\n\n>biological in\n>nature, because if it gets washed into an open well it will contaminate\n>the aquifers that supply thousands of cities with drinking water.  So,\n>where do *you* draw the line?  In the USA, the EPA has ruled that\n>a pile of scrap iron is illegal.  Care to draw a thinner line this time?\n\nIt is not defined as a weapon of mass destruction.  Many things are\nbanned for other reasons.\n\n>< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n><  ISU only censors what I read, not what I say.  Don't blame them.  >\n\n\n-- \ndoug foxvog\ndouglas.foxvog@vtt.fi\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3960, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bspahh@gdr.bath.ac.uk (Andrew Henry)\nSubject: Fujitsu and Seagate IDE Drive Compatibility\nOrganization: School of Biological Sciences, University of Bath, UK\nLines: 17\n\nI've been trying to get my Fujitsu M2611T 45mb hard disk (circa \n1990) to share my IDE card with a new Seagate ST3283A 245mb one.  \nI've tried fiddling the jumpers to set the master and slave drives \nwithout any success  [without the table of hard drive specs from \nthis newsgroup I couldn't have got that far].\n\nHas anyone else got this combination to work.  The place I got the\nnew one muttered something like \"Hmmm  Fujitsu, nice drives, not\nvery compatible.\"  He'll let me swap the Seagate for another brand \nbut he thought it was more a problem with the Fujitsu.\n\nSo has anyone got a similar Fujitsu drive to work with another cheapish \ndisk ... or want to buy a cute and cuddly little Fujitsu drive ?\n\n\nAndrew  Henry\nbspahh@gdr.bath.ac.uk\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3961, "properties": {"category": "misc.forsale", "text": "From: khcheng@unix.amherst.edu (KIM HONG CHENG)\nSubject: Telepath 96/96 FAX/MODEM FOR GATEWAY\nOrganization: Amherst College\nLines: 7\nNntp-Posting-Host: amhux3.amherst.edu\nX-Newsreader: TIN [version 1.1 PL7]\n\nGATEWAY Telepath 9600/9600 FAx/modem for gateway computer\nwith crosstalk, Winfax Pro 2.01 for windows\nNever used.\n\n$170 shipped ($195 from gateway)\n\nHong\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3962, "properties": {"category": "rec.sport.baseball", "text": "From: demers@cs.ucsd.edu (David DeMers)\nSubject: Re: Montreal Question.......\nOrganization: CSE Dept., UC San Diego\nLines: 13\nNntp-Posting-Host: mbongo.ucsd.edu\n\n\nIn article <1993Apr19.015442.15723@oz.plymouth.edu>, k_mullin@oz.plymouth.edu (Mully) writes:\n|> \n|>    What position does Mike Lansing play?  I cannot seem to find it \n|>  anywhere.  Thanks!!!!1\n\nHe's a shortstop by training, but he's been at second (mostly) and third\nthis year for the Expos.\n-- \nDave DeMers\t\t\t \t        demers@cs.ucsd.edu\nComputer Science & Engineering\t0114\t\tdemers%cs@ucsd.bitnet\nUC San Diego\t\t\t\t\t...!ucsd!cs!demers\nLa Jolla, CA 92093-0114\t(619) 534-0688, or -8187, FAX: (619) 534-7029\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3963, "properties": {"category": "rec.sport.hockey", "text": "From: v128r82w@ubvmsd.cc.buffalo.edu (Ralph L d'Ambrosio)\nSubject: Re: Devils and Islanders tiebreaker????\nOrganization: University at Buffalo\nLines: 15\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsd.cc.buffalo.edu\n\nIn article <C5LDI2.77u@odin.corp.sgi.com>, enolan@sharkbite.esd.sgi.com (Ed Nolan) writes...\n>If the Islanders beat the Devils tonight, they would finish with\n>identical records.  Who's the lucky team that gets to face the Penguins\n>in the opening round?   Also, can somebody list the rules for breaking\n>ties.\nI am not sure about the tie breaker rules. However, I think if the Islanders win\n(Oh God, Please, Please let them win), the Islanders win the series against \nNJ and advances to third.\n\n********************************************************************************\nOf course no one asked me, I always interject my opinions on maters I have no\nconcern over.\n--------------------------------------------------------------------------------\nGo Islanders!!!!! (I mean come on, the Jets were bad enough\nGo Jets for '93\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3964, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenians serving in the Wehrmacht and the SS.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 63\n\nIn article <735426299@amazon.cs.duke.edu> wiener@duke.cs.duke.edu (Eduard Wiener) writes:\n\n>\t   I can see how little taste you actually have in the\n>\t   cheap shot you took at me when I did nothing more\n>\t   than translate Kozovski's insulting reference\n>\t   to Milan Pavlovic.\n\nC'mon, you still haven't corrected yourself, 'wieneramus'. In April \n1942, Hitler was preparing for the invasion of the Caucasus. A \nnumber of Nazi Armenian leaders began submitting plans to German\nofficials in spring and summer 1942. One of them was Souren Begzadian\nPaikhar, son of a former ambassador of the Armenian Republic in Baku.\nPaikhar wrote a letter to Hitler, asking for German support to his\nArmenian national socialist movement Hossank and suggesting the\ncreation of an Armenian SS formation in order \n\n\"to educate the youth of liberated Armenia according to the \n spirit of the Nazi ideas.\"\n\nHe wanted to unite the Armenians of the already occupied territories\nof the USSR in his movement and with them conquer historic Turkish\nhomeland. Paikhar was confined to serving the Nazis in Goebbels\nPropaganda ministry as a speaker for Armenian- and French-language\nradio broadcastings.[1] The Armenian-language broadcastings were\nproduced by yet another Nazi Armenian Viguen Chanth.[2]\n\n[1] Patrick von zur Muhlen (Muehlen), p. 106.\n[2] Enno Meyer, A. J. Berkian, 'Zwischen Rhein und Arax, 900\n    Jahre Deutsch-Armenische beziehungen,' (Heinz Holzberg\n    Verlag-Oldenburg 1988), pp. 124 and 129.\n\n\nThe establishment of Armenian units in the German army was favored\nby General Dro (the Butcher). He played an important role in the\nestablishment of the Armenian 'legions' without assuming any \nofficial position. His views were represented by his men in the\nrespective organs. An interesting meeting took place between Dro\nand Reichsfuehrer-SS Heinrich Himmler toward the end of 1942.\nDro discussed matters of collaboration with Himmler and after\na long conversation, asked if he could visit POW camp close to\nBerlin. Himmler provided Dro with his private car.[1] \n\nA minor problem was that some of the Soviet nationals were not\n'Aryans' but 'subhumans' according to the official Nazi philosophy.\nAs such, they were subject to German racism. However, Armenians\nwere the least threatened and indeed most privileged. In August \n1933, Armenians had been recognized as Aryans by the Bureau of\nRacial Investigation in the Ministry for Domestic Affairs.\n\n[1] Meyer, Berkian, ibid., pp. 112-113.\n\nNeed I go on?\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3965, "properties": {"category": "sci.crypt", "text": "From: wesommer@mit.edu (Bill Sommerfeld)\nSubject: Re: The source of that announcement\nOrganization: Massachusetts Institute of Technology\nLines: 112\nDistribution: world\nNNTP-Posting-Host: bill-the-cat.mit.edu\nIn-reply-to: marc@mit.edu's message of 18 Apr 1993 01:19:38 GMT\n\n       % telnet csrc.ncsl.nist.gov 25\n       Trying...\n       Connected to csrc.ncsl.nist.gov.\n       Escape character is '^]'.\n       220 first.org sendmail 4.1/NIST ready at Sat, 17 Apr 93 20:42:56 EDT\n       expn clipper\n       250-<csspab@mail-gw.ncsl.nist.gov>\n       250-<denning@cs.georgetown.edu>\n       250-<hoffman@seas.gwu.edu>\n       250-<mkapor@eff.org>\n       250-<rotenberg@cpsr.org>\n       250-<rivest@mit.edu>\n       250-<mhellman@stanford.edu>\n       250-<alanrp@aol.com>\n       250-<dparker@sri.com>\n       250-<jim@rsa.com>\n       250-<branstad@tis.com>\n       250 <mgrsplus@csmes.ncsl.nist.gov>\n       quit\n       221 first.org closing connection\n       Connection closed.\n\nNote also:\n\n% telnet csmes.ncsl.nist.gov 25\nTrying 129.6.54.2...\nConnected to csmes.ncsl.nist.gov.\nEscape character is '^]'.\n220 csmes.ncsl.nist.gov sendmail 4.1/NIST(rbj/dougm) ready at Sat, 17 Apr 93 23:08:58 EDT\nexpn mgrsplus\n250-<mcnulty@ecf.ncsl.nist.gov>\n250-Irene Gilbert <igilbert>\n250-Dennis Branstad <branstad>\n250-Robert Rosenthal <rmr>\n250-Gene Troy <troy>\n250-<smid@st1.ncsl.nist.gov>\n250-Dennis Steinauer <dds>\n250 <katzke@st1.ncsl.nist.gov>\n\ntelnet mail-gw.ncsl.nist.gov 25\nTrying 129.6.48.199...\nConnected to mail-gw.ncsl.nist.gov.\nEscape character is '^]'.\n220 mail-gw.ncsl.nist.gov sendmail 4.1/rbj/jck-3 ready at Sat, 17 Apr 93 23:06:50 EDT\nexpn csspab\n250-<burrows@ecf>\n250-<mcnulty@ecf>\n250-Bill Colvin <colvin>\n250-<Gangemi@dockmaster.ncsc.mil>\n250-John Kuyers <kuyers>\n250-<slambert@cgin.cto.citicorp.com>\n250-<lipner@mitre.org>\n250-<gallagher@dockmaster.ncsc.mil>\n250-<cindy_rand@postmaster.dot.gov>\n250-<walker@tis.com>\n250-<willis@rand.org>\n250-Eddie Zeitler <zeitler>\n250-Cris Castro <castro>\n250 <whitehurst@vnet.ibm.com>\n\n% telnet st1.ncsl.nist.gov 25\nTrying 129.6.54.91...\nConnected to st1.ncsl.nist.gov.\nEscape character is '^]'.\n220 st1.ncsl.nist.gov SEndMaIl 4.1/NBS-rbj.11 rEadY At Sat, 17 Apr 93 23:13:43 EDT\nexpn smid\n250 Miles Smid <smid>\nexpn katzke\n250 Stuart Katzke <katzke>\nquit\n221 st1.ncsl.nist.gov closing connection\nConnection closed by foreign host.\n\n% telnet ecf.ncsl.nist.gov 25\nTrying 129.6.48.2...\nConnected to ecf.ncsl.nist.gov.\nEscape character is '^]'.\n220 ECF.NCSL.NIST.GOV TGV/MultiNet SMTP service ready.\nexpn burrows\n250 Burrows, James <burrows>\nexpn mcnulty\n250 McNulty, Lynn <mcnulty>\nquit\n221 ECF.NCSL.NIST.GOV TGV/MultiNet SMTP service complete.\n\n% whois -h rs.internic.net first.org\nNational Institute of Standards and Technology (FIRST-DOM)\n   225/A216\n   \t NIST\n   \t GAITHERSBURG, MD 20899\n\n   Domain Name: FIRST.ORG\n\n   Administrative Contact:\n      Wack, John P.  (JPW18)  WACK@ENH.NIST.GOV\n      (301) 975-3411 (FTS) 879-3411\n   Technical Contact, Zone Contact:\n      Hunt, Craig W.  (CWH3)  Hunt@ENH.NIST.GOV\n      (301) 975-3827 (FTS) 879-3827\n\n   Record last updated on 17-Dec-91.\n\n   Domain servers in listed order:\n\n   DOVE.NIST.GOV\t\t129.6.16.2\n   AMES.ARC.NASA.GOV\t\t128.102.18.3\n\n\nThe InterNIC Registration Services Host ONLY contains Internet Information\n(Networks, ASN's, Domains, and POC's).\nPlease use the whois server at nic.ddn.mil for MILNET Information.\n--\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3966, "properties": {"category": "sci.med", "text": "From: Lawrence Curcio <lc2b+@andrew.cmu.edu>\nSubject: Analgesics with Diuretics\nOrganization: Doctoral student, Public Policy and Management, Carnegie Mellon, Pittsburgh, PA\nLines: 6\nNNTP-Posting-Host: po2.andrew.cmu.edu\n\nI sometimes see OTC preparations for muscle aches/back aches that\ncombine aspirin with a diuretic. The idea seems to be to reduce\ninflammation by getting rid of fluid. Does this actually work? \n\nThanks,\n-Larry C. \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3967, "properties": {"category": "sci.crypt", "text": "From: jebright@magnus.acs.ohio-state.edu (James R Ebright)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 25\n\nIn article brad@clarinet.com (Brad Templeton) writes:\n\n[...]>\n>The greatest danger of the escrow database, if it were kept on disk,\n>would be the chance that a complete copy could somehow leak out.  You\n[...]>\n>Of course then it's hard to backup.  However, I think the consequences\n>of no backup -- the data is not there when a warrant comes -- are worse\n>than the consequences of a secret backup.\n\nIf the data isn't there when the warrant comes, you effectively have\nsecure crypto.  If secret backups are kept...then you effectively have\nno crypto.  Thus, this poster is essentialy arguing no crypto is better\nthan secure crypto.\n\nIf the data isn't there when the warrant comes, then the government will\njust have to use normal law enforcement techniques to catch crooks.  Is\nthis so bad?   BTW, bugging isn't YET a normal law enforcement technique.\nWith the privacy clipper, it WILL become a normal technique.\n/Jim\n-- \n Information farming at...     For addr&phone: finger             A/~~\\A\n THE Ohio State University  jebright@magnus.acs.ohio-state.edu   ((0  0))____\n      Jim Ebright             e-mail: jre+@osu.edu                 \\  /      \\\n                                                                   (--)\\      \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3968, "properties": {"category": "sci.space", "text": "From: goltz@mimi.UU.NET (James P. Goltz)\nSubject: Orion drive in vacuum -- how?\nOrganization: UUNET Technologies Inc, Falls Church, VA, USA\nLines: 31\nNNTP-Posting-Host: mimi.uu.net\n\n\n  Background: The Orion spacedrive was a theoretical concept.  It\nwould be a drive using thermonuclear explosions to drive a spacecraft.\nThe idea was that you'd detonate devices with somewhere from one to\nten megatons yield behind a \"pusher plate\" attached to the main\nspacecraft.  The shock wave from the explosions would transfer\nmomentum to the ship.\n\n  Now, in an atmosphere I can see this.  The energy of the explosion\nheats the atmosphere, which expands explosively and slams a shock wave\ninto the pusher plate.  But in a vacuum, only two things I can see are\ngoing to hit the plate: fission/fusion products (barium, krypton,\nhelium, neutrons, evaporated bomb casing) and electromagnetic\nradiation (gammas mostly, some light/heat from irradiated fission\nproducts).\n\n  Would this work?  I can't see the EM radiation impelling very much\nmomentum (especially given the mass of the pusher plate), and it seems\nto me you're going to get more momentum transfer throwing the bombs\nout the back of the ship than you get from detonating them once\nthey're there.\n\n  I must be missing something.  Would someone enlighten me via email?\n\n  Thanks.\n\n-- \n\t--Jim\n\n---\nJim Goltz                    AlterNet Engineer               goltz@uunet.uu.net\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.192+0000", "event": "documents", "entityId": 3969, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: As today marks the 78th anniversary of the Turkish Genocide...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 65\n\nIn article <48299@sdcc12.ucsd.edu> ma170saj@sdcc14.ucsd.edu (System Operator) writes:\n\n>or, as we have painfully witnessed in Azerbaijan, would like to see \n>it happen again...\n\nIs this the joke of the month? \n\n1. Your fascist grandparents exterminated 2.5 million Muslim people\nbetween 1914 and 1920.\n\n2. Your Nazi parents fully participated in the extermination of the\nEuropean Jewry during WWII.\n\n3. Your criminal cousins have been slaughtering Muslim women, children\nand elderly people in fascist x-Soviet Armenia and Karabag for the last \nfour years.\n\nThe entire population of x-Soviet Armenia now, as a result of the \nGenocide of 2.5 million Muslim people, are Armenians. \n\nFor nearly one thousand years, the Turkish and Kurdish people \nlived on their homeland - the last one hundred under the \noppressive Soviet and Armenian occupation. The persecutions\nculminated in 1914: The Armenian Government planned and carried \nout a Genocide against its Muslim subjects. 2.5 million Turks \nand Kurds were murdered and the remainder driven out of their \nhomeland. After one thousand years, Turkish and Kurdish lands \nwere empty of Turks and Kurds. \n\nThe survivors found a safe heaven in Turkiye.\n\nToday, x-Soviet Armenian government rejects the right of Turks and \nKurds to return to their Muslim lands occupied by x-Soviet Armenia.\n\nToday, x-Soviet Armenian government covers up the genocide perpetrated \nby its predecessors and is therefore an accessory to this crime against \nhumanity.\n\nx-Soviet Armenian government must pay for their crime of genocide \nagainst the Muslims by admitting to the crime and making reparations \nto the Turks and Kurds.\n\nTurks and Kurds demand the right to return to their lands, to determine \ntheir own future as a nation in their own homeland.\n\nDuring the 78th Anniversary, we come once again reiterate the\nunity of the Muslim People, the timelessness of the Turkish\nand Kurdish Demands and the desire to pursue the struggle\nfor that restitution - a struggle that unites all Turks and Kurds.\n\nToday, we appeal to all Turkish and Kurdish people in the United \nStates and Canada to participate en masse in the Commemorative \nEvents, be they cultural, political or religious.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3970, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mitchell@nodecg.ncc.telecomwa.oz.au (Clive Mitchell)\nSubject: Dataproducts LZR1260 not printing correctly\nOrganization: Regional Network Systems Group, Perth\nLines: 948\n\n---------- cut here ---------- part 03/03\nM2C3,JSG  A\\-\\($J7LUS?30XC;16@\"Y DK<(ME<#T(F6;;,3QX\";>?H!80H(\nMGNM U )D@/D&\"!YW0\"R\"<T!2V<XLFP6#F9?P@A4&:'&B AD.\"/,( ,V1#&W;\nM'<]6P- 3$BU['L:P$]FVI@<L8'Q\"W\\X&-AQ(LP,9VNF5[90%! ]HF&-8MNG2\nM/ ''J-A9#\\1RS2FE.RXF6ML*XFG;KJJI-#N5H8BU%,;>CF[;831;&$?0[R0)\nM=\".B4G!M<W13VW!-]SV.;\\ZFFUT9\"UO&JVLT=W8L<3FY88>4[% #0CG+@2S-\nMJ2S;MU2Y8(6!:E!=[D@C6+,%R]42K.8%%$F\"<2S+#JC*%JQLXN:4@N&F:AL'\nM%&0+I@&-6S7B7:Z,$UEV(JC&K:&:PT,UJYU0[7FHYO10S?&AFGUT;\\'JH5J8\nM9<>&:G'Z<HX-U7IW%^_NXMU=O+N+=W?Q[B[>7<=RJ-:T'1NJA9F^X]EW/-NQ\nMH=KX4,U#H9IS0C77A6H^\"-5<%*JY'50S2'.JSE#-(:\":!T(U-X5J;@[5'!2J\nMV;)?&2I4NPZJN2E4([&A&MS3/M89JGDY5+.YO:PS5\".VO2PG5'-\\J.8F4,V&\nM_<Q9CA8 JOF^\\=/>&S\\-IYYEV5#M JCF!5#-G:$:L>]O]OVM.U1S8JAFRQ[7\nM':JYM8]&9D,UKX9JC@S5G!>J.394<U>H9O=N]QRJN3-4\\WC'YW6&:EX+U?P#\nMJMF2/&\\\\5/, K@[NHP&.X-4H%@3Q:@#KHP&85Z,^&N+5 & ^&F9K@/^S-<\"/\nMQK,U4IRMD>QL#1#CV1HISM8 UVC/UN#MV1K<3?6PW6P-?#=;@^]F:P!M99BM\nM03^P-7]@:][-UL\"?LS7 [&9KCLW6P!.S-9*8K9'$;,V)V1J0\"J]7 P HX-5H\nMV -) _AH[('%<P>\\/^#5 %U<,RGJU4ALKP9L=H$-!0R_[:/!AP68Y(&UXDD$\nMVZMIFE<#5WQ8M@\"1EF5KMXQ=CS'?8H#@QWRU@.#S#MPL\\#? I@&\"+U3G!5HX\nMMFW)EF PUQ)>L\"Q_K]Z\"EQ9LQ8]9\\P.E=9O=;\\KV(,NNH-NF95N*%58['Q,T\nM\"[Y:U]XD;$ZOF+5->P?H#2\\;[K^W\\291V[84+VW8@M6)+S9L?^\\U0+\"L-Z[H\nMWKF78]_4S+:I;O569>XE:*N6X>DU.ZQOONG,[&R<P%,\\O$ YQXXDF3?I-$O6\nM)N4\\0SL+OLVR\"QT0K&.:;,%(=&EFP528:0MQ69$D&$?2)\"[M3422Y(JP>;*R\nM,<+\\$60D\\?#THL0\\_Z @:O1,06ZKC4'TM@U[EF&7]&RU=J1:\\S^UYI$J6\"=5\nM:YZLUOQ/K=GQ=ED$<-\\Y]CS'%J@G\"U1/%JBV[RU)]9K=NXM[.[9>Z]Y=W-NS\nMRSEV.RFLWSGV/,<>,\\:^ZQAWG=L:U?9=9[)&M6??\\>P[GGU'@!ADT&21ZLEB\nM6-)6I+JM2/5MD6K/_F1\\D%3=9:K;RE2WE:FV[%:6;=@RM66_NBU3;=FOG'N6\nM9\\^R;<,N9=DZM;,]S-(>9FD[MDX]4J7:M)<YLI?9V\\N2BE0[][3;>)J[*U3K\nMH6S9>JUQ?S-N+$W?DLHURZ$\\+JE:LW,;MEIKWN>,+WG.L=>9MF'+M=UEL,2Q\nMVSGV.]M^Y]CSNLLUF]KS_,F.K=9JE2-'.LLEG>62IC<K64*L++DD0,F2W;6P\nMV*-ZCT<%W\"#J@9T!O+#0WC#;'A70SS63IQX5$#T\\*G@UC^HU :IY5'291P74\nMED+?LB5#J49::Z-4 K5W1ZD :5PHE1+MGY$6'*7B+)I]#*4\"RM8RM% JA5HZ\nM9IF/@56\",C6/;%@P78C56;@JP#5.+RS'4!:S-0I6*4H%TM/2):%41--\"J<!C\nMH%1 ':/JC%+!]!D+%DH%/  NA( %7$ P+))EN#E1\"\\X U9D@JD.!5'0R2 5J\nM)$B%WP:IX-E!JB>#5*!&@E3X;9!*)H-4,AFDDK8@E4P&J:0M2/5MD K\"TQZ4\nM%*0R1L40%0*4;-@0%4D*49T4HAIO&*\\9HIX,48F_?<S57M86HL)-&Z :H=+W\nM%*H1JGS;L!$J!:@.YV^/<^]R[FS#1JBT+4*U=:]KBU#!;R-4N+,,UXQ0:5N$\nM2KHC5-]&J)Z,4,%O(U0>D,>O <[@AX7[-8!WUTRZ^C6 C.B'1:L)J/9K2B/8\nM?DW'_!K R&$Q0P7\\GZ$\"_G.,H<)ONZ@@VC)40C#MV R53F:HY#9#)23+ALU0\nMMV6H\\+8,E;BW8S-4.IFADMLN*FGKHI+;+BIIZZ(2S^:H9JB ;<M0H28J,IFA\nM@O!085:Z#9NA9NIV;(;:L)>9MF$S5'K;0R445;<I*MRX#9NB4ELYG&&/<VV\"\nMZE:&35'I;0^52Z:C:%,Q5+<R;(Y**:JL^QU?DZ--U\\S7(&WY&BA8G\\8# SC#\nM  \\,@*JNF53UP \"D7X/Y:9!B?@V0=@UQP0#^[X(!O*>87>-&9LU^#<*@ZI]?\nM(TG]FMV&K9K]&N*\"@27U:Z2[7^-RCMW(K]F@4MOV:W[EU6Q0Z6T;# B#*@95\nMM_T:(5!UVZZ1MG8-3F9XD&T[MET#.=FN,8-*+=DF&/LU\"(.*D_HUN =&'(H-\nM,/9K\"(.J]PPJW*79#VN[IED>&!.HU+C+M75K;-8F-<\"0MEZ-K9K\\L/0VG09_\nM3Z>Y.YU&W!J^S::1)6X-XH=%6_DUP!D\"^#6DVH! ?@U0X363L'Z-_/9K@/+#\nM(L/\\FL,$&.;7T&E^#<263L/*$?)W#!4.FB07[\",#(@LVJA\\I(\"8?,4#P/P-^\nM#T@NV;85V38+AKC6;^/^;=FD_(A[AQ)LQ=</Z.?8MM<<8+GL5RV[GVKWLTT4\nMJX%V7B]H%GR@?X\\0-==T-5&LM@':\"MJ&7S6T!=,1OFU;-0WMFHHM> F!,D )\nM?_N'8&YKV\\:G.6!=/QQ;V#7KAVZTK2KS#]U6+<-K:G8#WWQ$6Q[ARNAJ1W.N\nM E\\L^[=D-CR29![A+(ZK2BSX%<O.6D\"PU@O:@A%9#V49%68J>\"A%8L'XMS!Q\nM*&\\BDB17A,W691LCS!]!^B\\>J6F8IRE4GQ:H+BY075YJ-^Q9AEW2LQ7JI0K5\nM+Q6JERI4KU6H/JU0_5*A^K1\"=6*%ZM,*U8D5JD\\K5)]6J+;O+6L%JMV[BWL[\nMMD#MWEW<V[/+.;9 [=Z./<^Q!6K[KF/<=8HKJ+;O.J<5JCW[CF??\\>P[ER6J\nM3TM4GY:HMF[#;F78$G5QB6K/_F1\\D%3E-:H3:U0GUJBV[%:6;=@:M66_*JY1\nM;=FOG'N69\\^R;<,N9=D:M;,]S-(>9FD[MD:]5*/:M)<YLI?9V\\O6:J@NKZ&2\nM\\B+5)*M(75RDVKB_&?<WX_ZV5J4ZL4KU6I7JXBK5[G(Y\\SY75Z;:L=>9MF%+\nMJ*U[W6F=:L=NY]CO;/N=8\\\\KKU-M:L_S)SNVC'J^4+6S7-)9+GE:J+J#4'4/\nMH>KR0A4VX)(/!G\"& #X8)\"+-MD\\%]'K-9*U/!40/GPKNHX(M\\ZD 4@O# =B6\nM%A)M K<?1JH :5Q(E9+M00Z@+02IXL@8S>N1*J!&^)I_(U6RWC 9H=CKU4T,\nMG^W<@ND?VR2RK\\TSJ>C- _Q!JBA H4@52$\\+I@BI(I&1*E#-D2J@UM-U1JI@\nM^HP%\"ZD\"'@ 10 3+D+!@^MLRW)SH,J1JC&&8ZE! %3T-5(%:\"E3AQ8$J>'B@\nMZM- %:BE0!5>'*B2TT\"5G :J)#%0):>!*DD,5%T<J(+PM >M!:J,4S%,A8 E\nM&S9,1=;\"5*^%J<;HQJB&J4_#5.)O'W.UER6&J7#3!JE&J70^DVJ4*M\\V;)1*\nM0:K#^=OCW+N<.]NP42I-C%)MW>L2HU3PXB@5[BQ#5*-4FABEDO(HU<51JD^C\nM5/#B*)4,J.11 6<8X%$!5'[-)*]'!4@O#&\"/>50 6@\"-62K@_RP5\\)]C+!5>\nMW$T%D9BE$I)IQV:I]#1+)<59*B%:-FR6.C%+A2=FJ<2]'9NETM,LE11W4TEB\nM-Y44=U-)8C>5>#9/-4L%;&*6\"C53D=,L%827\"K/0;-@L-5NW8[/4AKW,M V;\nMI=+B7BJI3U-=G*;\"C=NP:2JUE<,9]CC7+N?<+-4TE1;W4KED.IJ6IW9MFFJ>\nM2FFJK/L=1Y6C35'-42%K.2H(@+:0'P9PA@%^&  57S.)ZX<!2(^*^&' BGE4\nM &%1$0<TX/\\.:,![BEE4;F10[5$A3*I>>E2RUJ/:H=NNV:,B#FC86H]*RGM4\nM+N?8C3RJ32JU;8_J5W[-)I46MT\"#,*EB4E7<HQ(B5<4M*DEL4<%MVZ/:H@+I\nMAT&*>U1P)A6O]:AP/XRX%)MA[%$1)E4,*Y.*.#5[86Q1-<L/8R*5GB92B4'5\nM6C,,2>S7V*[)\"T.+TZCP^32JR].HQ*'BV\"PJZ>%0P;PPZ Z/\"@ 0P*/2I@?&\nM>F&@(S[@O0L\\*J\"?:R9//2JI[5&!32W0'FPOD-H+ ]\\7($^ /@'V*=H]/\"KO\nM\\J@0 ?6W:]N&=7.,MR1:MDT:IQH0;4#2 2D+\")[5*#_@ZX% V@&9!\\0JX%JI\nM'#NE8!\"I9+-@I21;#EU \\.0%,CAV5,7V7\"T-6$#2 WK:R1T[I6%G4.R\\QAW:\nMM\"V7W/8L_FU8RJI](D<[D6D;GL^R#=W=,K:$N>797-MP3XU@V\"F=V])C>7:8\nM H'LV[ R6\\N9Q67;<Q3PGJ?/I]FV6//<X#B!;:I;@N?P[<S\"9.,53WT@@F]G\nME6S!\\SHSNS(691GOK\"%5Y5B.<G+SEJR, S(ZMB1+NRQ+\\-X'!\"NE*5LPDBY!\nM<LMH2.4L> 9%8L%8D)5<DBQ8><W-B03#PQVPC$23M@4KFR@YFV!4GZ4M;$O4\nMZ&=J^S$U_V-J;LC4/).I>293\\TRFYILTS>UIFMO3-+>G:6Y/T]R>ICD?37- \nMFF;O)FI^9=BS#)NFK4G1_(!NKG.;1_-MCN;@',T+/+]3FT=S;9+FWAS-BSF:\nM2W,TM^9HCLK13*5Z4&2*9H[I5/DIFO-3-.>E:.Y,T7R<HCD[1?-KBN;H#,V9\nM&9IW,S1G9VB.SM#<EJ'Y+4,CUI<[]M[P9.TYFH]S-(?E:![+T;S7]&7MB32O\nM8!J;I3#\\F7%'FT[4?(.H^4. 5X9-U#*MY;;9=C?#J=KD5,UCV327Y6KN:_VW\nM]V3-T\\F:+7O<>[9F]RXWGD_S>+IF:QMAF*U=SZ9Y/5WS>;KF^'3-,4C\"[ZP;\nMS>KXO/]TS2<\"E)H7GZ_9NN=E,'?#]FE\\Q*<!;K#UP% _+'1$#9\\&B.V:R5:?\nM!H@#3GL!$GM.+PWU:0#$I'0$:E.NU!S(9CJJQ;'1Z;>F#9!@0 *E1F(,,%F2\nM+<%@2DUBAV;3:1Q:;#N^8J=4;(4UGVUG4&K.Y;$<7V([OLABI::4$MV*)>@)\nM/)H3.'=Z>W,LM^ZHAIU4M/-:-0?2&U8\\\\ '9TEA*K]0=U[ESF-K9M',6Z38L\nMB4FAX\"X0P=9.ZI4=3:DYKT)SS@1.$RLU1?#M:$J-%?=I<_AVS .VI5$4R)A1\nM3U8$>UFK2O(80MW!E1K''!!3G\"W/-)IE^U;^ X*53:F!Y[6,YC-NP=)GQ1>,\nMQM(D%DQ3VI)3NB)4$(:Q90NF_G$LUXXE&*H=QW+)K-344ZFYIU)S3J7F=TK-\nM;Y2:6RHU?U1JSJ[4G%VIN;I2<W:EYNP &GRE4O-&I>9)2LT?E9HC*C774&I.\nMKM1<5:E9:OG.#Z7FZDK-7Y6:\\RLU[U9J'J[42&>EYK-*S6B64WU7:FZNU+Q?\nMJ5FLN=5VI>;X2LV[E9K'*S7K-<]ZKM1\\7ZE99U9JXRLU^_>PG$K-:(:/Q5=J\nMOJ_4O%^I629[F6TOL^UEI96:ZRLU5U!JKJ+4/%VI>;=2<Q6EYB!*S;DA- LU\nM;WNBU/Q$J?F^4K-]?[/O;Z^5FO\\K-5NL2NUJI69;N]P4I6:<6:GMJ]3\\7ZG9\nMT5[W7ZGYKE+S?Z5F2U=J:R@UBU6_6Z34[+A2VT>I6:=6:N,H-8]0:MX,HH$/\nMZ.'5 #<(>N\"LAT;KNZ8CLMNU7@U0T363J%X-$,D';&9C[*$!P#*YL@ T9X%9\nM+'A\",,>YQ<5QN4P.B3 =\"\\.!\"T8\"R6;!R@&B.2K<YB!DS0'I;,;2%-JV8U)8\nMG(U,XY0HE2'FP,H91(.E0FL&&C(L.$,I71NBT:Q<IL.X=B*FY@ATRU$9.H<Q\nMMX,S9,>BZ ;1L+IF S <G:\"935< $,W0-#:(ANJ>FP;ND)(-HB&^)P31.*\"Y\nMG46?F<ND$;B*DQMV-%L[I&3'I6J<;D ZJL:QY)G3@10N>D\"P<E!U:'80#<X1\nM)5A!0#30#())0!R=0318+EE9,%8D\"588XP:H\"$JD@FD._\\Y!U?@U5?-DJF8,\nMRUEZ4S7WIFKN3=7<F*JY%L^^Y0+/;MBS#)NJ;>1]E])4S0B&N_RF:HY-U1R;\nMJCDV57-@JF8TVX;]RK!G&395Z]F&_<JP9QDV57N=JAG'\\B!F3-7VI6H.3-5\\\nMF:K9<ZHV!\\F<ZA'/W\"HR53..YE81+'_%UOS*=JIV@^48FJE:QZG:&E3-9#-5\nM>Y>JN2]5<V6JY@ZV>@Q#2=4:3M4:3]7&I6KF&U[6F*K9=*IV!U7S$*KF_%3-\nMUZD:(4@V;*H63TG5_J!J_D'5#*2E:N=2->>E:GY,U6RH5.UP$,V3J9HG^%ZN\nM\"57S:Q#-KZF:0P0 T2B8;,.>9=A4[0.JY@]4S1S9(!H'H6K^1-5\\AZH91!.\"\nM8L/V:4KBTP WV'?@G(=&?1HN/D\"#[M, W5TSZ>K3 -'=ISFUAP8 ]6D,HI$L\nM;MO1G!8'(<,[<H 8 L-Q#3K[+2DUH+/(9J5&[;K@<!3$%(BF0#+;H<TVAR:P\nM& I'Y9JB*C7GE5F<P+\\3*#6B,Q3<:SB'S+1*4PR#1L()5>=P61Q2K]FY<I!9\nMSF'16:$K'QL.GDW0CN[=1%A1:\"T]+8AFI89%F<95:O <OJW4:$IG9A0\"EM2F\nM<1:GQ$H-IIQF46H<TK>5&LXK&([SAS;H:\" (A0VMT\" :N$/%*4E$(A@)!Z!8\nM*DNP8KB+8WAV-M$DAR9Q#@(L/!:(!F^IU#Q6J?FD4O-)I>:32LWCE)I3*#6G\nM4&J&LFW8Y0Q;J?T)HI&R2LTYE9KQ+!NV4EM/J3F,4O-N$,V[033#F;[CV7=2\nM@VAN#:(Y-HCF\\$K-Q96:RX-HKLN&(UV5FN^#: Z@U#Q(J;FL4C/!K-064&I^\nMJ]0\\0:G9LF<55FI^H-1\\0:EY@E*S?Y/AK-2.56H.H=2,HCD9@N)E%92:;7N9\nM;2\\KJ]0\\'D0SD%JI)</YV7ZE9C:LISU2:CX HOD &\\[KE9J7*#4W46KNH-1L\nMW]_L^]M:I68NE,,1H#PNKE)S>1#-AY2:=:K+&;+/S6?#$1:DUVE5KQNNU*R1\nMW,[:!PDU*S4:0*DYA5)S *5&#/V587MHD.<!O!K@!:\\.;/;0J!^.A 'Z\\FJ \nM%@SFU8\">5^ YUUE@P  /#5D5P*AEBA4O(]A>30&\\&H1<USF^K)QCO,6MS9;,\nMFV'=O1EP!B\\4XLV .T3T2:@W Q\"?BNFDX]8M\\V8N[LV &]PXL,KGTY#F;&\\&\nM/.%1@;58:8'/7CR\\5( H >3HBJ<0;&\\&&&6##:CNS8 S#/!FP\"]\\/N+- .P6\nMFP_W9O[A90!N<.W -+\\!'?%[0'8O U#3-9.I7@:Y[<W OA68/*!P@>$^'TZ$\nM?B: #J;B,P3;RP#Q:)BW;N/69)!1@4XY/(4DLAP&RG-\\$Y#I:)%9BD$O$]G\"\nM8!'!B'E)IC#VT 9@$A_%Y- PAJ,)VLF= !P:QR$I<4S'HK#M?%8JPU$Y#,9P\nM%(;*<$@LPF2&  P*@E<@*(N X!4+26<44TPX\\>&43=D.[F^. :.S8\"60[+@@\nM>)*-A;2D1S8FD]A8]P14!F=3ME4K%Y)AWV/ZYJB6# ^#HG%<+8\"C\"1)GD>P(\nMHBUYJ &AR Q.J=V!+-NW(AT0K*18N@4C@<7%@FDTY1:L^%0&-(QAP^@XJBXS\nM 1Z)P\"0[O299,*72<2P2G07C,):A 0V;RM!@*L-AJ0PGIC*\\ELKP6BK#3(ZS\nMY*4R[ \"T8;\\R[%F&S;2C$.Y2F,IP62K#A:D,>[=ASS)L*N->*L,EJ RGIS*<\nMGLHP'.$[<*3OG*<R?)[*\\'LJPZ&I#*>F,OR8RG!8*L-!J0RGI3)<FLJP\\:5@\nM\\*8RAJ4R/!H$;R= *N-7*L/F4QF?6SYK+)5AYZF,W_T?QJ\"E,MK;P]I2&3Y,\nM9=CS<ER&DB&17H:!265\\2V4X+I7AQ%2&1X#@_0($[QH@>&/A4QF4RDQEK ^\"\nM=WT0O,-3&?;M;EX ?W.UO[6E,OR6RO!A*L,?0/!VM,=9]K@.('@O][T<%L[E\nMYE(9;DYE> :5X?M4AO-3&:Y/9=A<J8P90/\".;OL[>Z<R>DYE#$%EF$#U/%_T\nMO T@>#)@B4\\#W.#6@61>#G3$<@RN3P/4=\\WDJT\\#1.4!1PO\\#A#,(Z$^#0 #\nMP1.W/;Q,<QB_P\\F5F@5&%%9A8$#.(MM*#>CPGK+*Q/&MC@4K/AI!Y)942ZTJ\nM.1.>26A%0, [M' GE&O6&4I%1+!24U*]8<?*9MSY1#N@:P<\"P;-&GTBI$6-6\nM*C*\\(R@UIY1H#F.?4RDU-+>FG%2IH>F4FGTU1 *EAG47/*FS6:GA]++LA J5\nM^+-D&<DA4!Q?E9U4J8'F\\[?SNMKY+'-2I49\"JK9@1-<M(^*68*FB!\"-A0/!P\nMHZ* ('API8:D$F>GLDF<2*F!\"QOG,,Q*35ZG4MM?J=GG56K%E$HM%G6682NU\nMO94:4#RW4NO=CMW*L5\\9ME+KNE+[6ZGYE5(S\"E&I_6/H=91@E=H\\2LV6*[6N\nM/LNRE=KI2LUD( ]ZK]3\\5ZEYLE+S:Z7F[4K-_Y6:=R@UWU5JOJW4+-/\\:JU2\nM<VNEYN)*S8^5FG,K-8=7:LZMU!Q9J;FQ4O-II>;H2LWE0?!>#H+W<Z7FTTK-\nMHY6:>RLUAP?!^X)2\\WP0O,^#X'U;J=E>GA9?J7F]4K,[5VIG*#7/4&K>KM0\\\nM6ZGYM5+S<J7F^\"!XOU=J#JW4'!P$;T]RN>-*S<.5FL$PEFD&P=/Q2LWWE9H'\nM@.#MV.]\\R>_2*S5_5VH&P>L$\"-Z^Z'G=0?#.#H*'#@CBU0 WZ'5@FX=&Z[NF\nM(ZX.B./5 %5=,ZGJU0#Q=L#> LL]- !P)EE6 \"PKQ)R*O].C;.>%,!V-R^8P\nM#*8#09@.*9L%@Q&9HIDT\"YWN@&\";&98B<\"QFL)62;#H(GFX>;1C#3J39B4 T\nMCHDQ#62+DG-T$35%HRD.0Z;;LK) +<M;HII#L=/8=QBH992FD&P&\"V_I$10[\nML[\\Y 56#.UK1X89#@C3S8E$/\"J+!J9KR\\713-22D;X?SS2FUS:Z,PS#H9LI*\nMY6L.)-GYL\"1V^(JF;58E9?$E.]Z]@&!EH6K0K%P*\"Z8@.D[NSE97P5B3!*+A\nME,Z9)I1@G-R1;(PP9T0$ T]OBC:<JJDIB.:*(!K)\"Z(Y+XAF,Y\"S7*9J]H)X\nMBQ78ACW+L,MQ-5.U74$TSZ1JS@RBN3)5<V6JYLH@FLF&ZWR@:IY U6P <IWV\nM()H;4#6'!]$<'D1S>!#->ZF:IU(U_Z5J'DG57)*J.2=5<V.JYO=4S26HFCM2\nM-7>F:DY-U6S9KRS[U6FJYIM4S9NIFCF:A\\$8'M:5JODK5?-=JN;95,W_J9J-\nM@%Z&HGO94ZKFJ%3-::F:#X!HKD#5S-7\\[#M5LQG TQ)0-4,I-NQ9ADW5=J!J\nM_D#5?)NJN2E5<U.J9D/R-[KN<%>IFBU[W  0S<&IFJ-2-=>E:BY.U3R?JKDT\nM57-IJN;25,VQ030/IVJ.3=4<P9+/NTW5W(\"JV56>%X&JN3A5L^$^;1.?!KC!\nMJ@.S/#3JTW!7 FR?!JCPFDE8GP:H<!Z:Y_HT>V@ $)_&(!HI,>#!@%D#DA00\nM/,2!A 7V!@CHM@_H,^!- =<O#3!\\BFP6#%9\"MH47K%H#VA:X5V =@K% Z0)#\nM\"E0H (%^N\\\": 5<&( %^'M#CP,<\"J0L<*M!:JEOS'P7.%:#)!QYH6  (_E(!\nM&M3^ PQ_H[3=<, :N;7 Y@%MV++=/ZZRK/@$&.0!#08\\.O\",SSI@OERS\\<L \nMU!YK@<L#5A?X4&#V@/L#\"OC;AN70Z/H IKI3H)G/O-2B&1EK^]  +94:JKO@\nM/0?T5&IHP /+?/N*;WYDR7Y@S.@;I6;;^Q?8-F\"$K>W/!QRXI]0L>20^_8!1\nM_O8R[7YDV=O\\V6T.\")8_O^?/%HR+'$BG2!9,%:E@ZDH528+Q&V?R.<'DD2UY\nMD_.\"X1T..-*W@LD5P420*I($8__/.\\J\"Z6Q;\\FREQI^5FAEPSO)?J7F_4K-(\nM<Y;G2LVK03002DV3E9JS*C7#F39LI;:X4G-LI>;)2LU%E)J#*#4'46JN **Y\nMC5)S!1#-?*0=6ZE-SH8CV96:7RHUYU1J[JO4O%BIN;E2<PJEYHE*C=16:BZH\nMU-Q8J5FL>59/I>;32LW3E9KC*S5O5FKNK-3<6JD92_>Q%6PXLL#<E]56:KZM\nMU'Q<J3F(4B-?E)IOL.'L*D_KSX8SC.YI]Y6:[RLU1U%JCJ+4#*490S.(1G\\K\nM-?=0:D;3/,Z7/0Y%=SE;NYQ:LF$KM=;VN@ML.'OV.D/RNMY*S05 -&=7:JZO\nMU'Q!J?F\\4O,2I69;>YYUSPNNU#P<1(,-&.35 #>(>F\"GAT;]<&1(;ZYCKP;H\nMZYK)5:]&<GLU8+,+]*!Z\"UA4>35<+<\"D &L\"*)Y$L+V:EGDU2*1EV=HM ]=C\nMPR0C E@.T&+ I@&UH97&7H!&RK!W#[#)LQ=RK 5<JX5@RY9@,.,27K\".(;3J\nM+9C>U.P*FFU>I2U[D&5[?M,TVY9BA?5LR[*U#\"U+*XMG&Z:6'W-L=5/#/56S\nM!&NA9]M6%DO;WTHO+,=0%O<:(%C>Q=!D6[T<^Z9V*VZ;]E)D%B;U4F[5<B[?\nMP_KFF\\[,KHQC.)N'%RCGV)$D\\R:JYDC>S/ZF+23S-M\\N=$\"PCMDS$4RC2S,+\nMIBW<S2VHFA5)@G$D36)OPC?5F04C\\P29!5/_V)\"P8!K),MR<J-,_* B:XR F\nM]%\"&/<NP2P8AZ_G:D7S-__B:1_(U)^5K-L+;LLLY=KLL H#OLI@_S[$IZLD4\nMU9/!-.+>7=R[BWL[-D/MWGS-LRR;H:I=%_?NXMZ./68,2Y5QU['O.NYV'4O[\nMCF??\\>P[GGW'\\R\"#;@.H9BD>9-N&W<JPK;#4U5-]ZLY3W9:GVG\":VK$-FZ8V\nM[5>3::HGTU1;'F269\\]*RE.=E*?:\"^=AAO8P7WL80;5C\\]2N]C+37F;:R\\QM\nMQR:HNQ-4^^ ]S0OG:>;]S;<-FZ[U;<=F:_WM<>Y=SIUMV&1M=[)FSTN>L^YU\nMUKWN-ENS=:^;S-;L;+=S['?&_<Y9QM'8N><YMV._<L!ZY$C'3:3FLF$W*XDA\nM+5>2I2Y9\\K8-%NI1.9!'!9QA@$<%4.4UD[(>%2 C^FFH1#W-HW(:P?:H.N91\nM >)3,3_MN'7+6\"K@_RP5<*!C+!5^FZ62VRP5WI:E$I)IQV:I=#)+);=9*B%:\nM-FR6NBU+A;=EJ<2]'9NETLDLE=QFJ:89IJAFJ>W;L&?Q5*>BJ&:I/=NP9_%4\nMLU3 MF6I4#5U=YI*)K-4$*YMV*4L.Q5'=2O#9JG9NAV;I39L)=6M#)NE4L>E\nMU-UI*KE-4^%V6-VFJ<16#F?8XUR;I+J58=-4>INFVIZ<KH2*:M<V;)Y*::JL\nM^QU'E:--4<U1(6TY*F1 1+\\&N$'O ZT]5!K2H-JOJ>* 5WY80#EA2(\"Z?HTT\nM]VO :$#F 3FOAPJO%< $6@-2\\1V\"[==TSJ\\!M>40'M;+NIU;ELPTL/IRS:\"F\nM@_RFZSM4UBS7M(4?\"!4,JZ_>EG$0NTV.273G=6@DKTOG\"@Z-LYAMDMYA\\\"\"'\nM1C;YFOUKDW:G-TRT37L'$#RO8OMO;+S)-LGKUIU7L1=*X%S? .GT*ITW6;=,\nM573OO(D;K3 D[9MTHX(O]&UO*[IJ,Z)].F\\2J.PH[,K4OT39ZB9!M#ND9+M\\\nM*5=<=;%FI5>T!2N]4X3JLBR-'1K0Z3W#)8GF%0S792J8JDN\"Y8_ !5-SHN<D\nM,#9K.*E9@U.H:FO6X)/-&G%8-FRSIG)VS6X-2>K6X!RJVKHU^&2S1NS;[!;\"\nM^+99(YY]Q[/O>#7=]FIV;:?F5H[MU1K;EFW53K9J\\-L,*C'?J[7L5Y;]RK)G\nM329027<\"E72W:H1 I4*8='(AS !\"&%.HZDZAHN4$2+NU 80P3B&$L6-',VZ#\nMRHZ_,NQ9EBV$Z=IFPTPJ[6Y1B7U_\\VV/RI8]SK?+M36IQ+L-FTREM@TQ^[2&\nM3:=2FRKWMJDNY]A\\:DO;L,NU<Z@)%%SNG4EU/ V$K:HI% F@V_<\\4[)COS+L\nM<O-\\NY[O#F5WAT*2.A3B;)?LSJ(@ S9Z%, -+A]X[(.&S/0H@# 4_NM1 )&&\nM;WNO1P$<P@Q-&0J\"4@#002@%GAZE &! $Z='*82BBZT)I0!44L'LGJ(4FA2E\nMH$EUH[YI4N.L>*X#*(7:%DH!W@>EH'U0\"GB3 B@%D!50\"@ A&%9:E^T?#*4 \nM/HS1C5( %0\"E ,Y(=GL4P!E\\4'\"/ O \"#A(-4-BC *0/\"O$H@\"N8H4Q2 /\\G\nM*8#_DQ3 GST*X A>2#K \"PF@/ J >2&I1P$<PJ)XVKAUR]R0@/^[(0'_=T,\"\nM_CP@DT<!W\"\"LG-4+23T*GCO@_0&/ FB_BIMZ%)+;HP\";76!# <-O>R'APP),\nM\"A F@.))!-NC:)I' 4HRW&6QW.)Y9M5_S2K[C)'4AC>9+3:9,,'8M807+,O?\nMJ[?@I07[IL.T4UM:M]/K+0L,E?;LFZ;9MA0KK'8^)F@6?+6NO4G8;#>HMJG4\nMI(;K2-BXTDN*E71Y3=II0 +#]O=> P3+>N.*[IU[.?9-S6R;]M(;K,KJ)6BK\nMEDW1)E.P;=UT9G8V3N I'EZ@G&-'DLQF59%T\"BO7#.TL^#;++G1 L(YIL@4C\nMT:69!5.SBF5)@E0PCJ1)7-J;R$VY2@3C>;*R,<+\\$60D\\?#THL1$_Z @=L=!\nMS+J#N&T;]BS#+NG9%@49:5'(9(OB?Q;%DRV*VUH43[8H;FM1R&2+0I(Z%/A(\nMAT+<V[/+.78[B^)WCCW/L<>,L>\\ZQFU0_,JCV*(T:K[CV0;%KSR*+<J__X.X\nM53<R;(_2N@V[E6&_,BF>Y5F?C ]B4612[%*0MBZ%6+9+09W;H]BFM&W#MBG4\nMV?8IMBDM;<>V*3TW*4W;HMBD4(ON9LX][;9!L56S06&3Y&_&;59M5ZGQ;K51\nM]#C'S6KG-NQ7;M5>]4BO:L>VJ6YEV*^LJIUJOV2CRH[M4]FQ72HQJ=2YY[W_\nM;U&IL^Q1;5'I$BX4ZE''\\:B ,_@H<(\\*\\.Z:25>/\"I ^\"E+-HWI-@&H>%2WF\nM40'60D%=*N#_+A7PGV(NU0;5%M69##N49;M4ZM%M4&VD( ;#)HIG6;9+!>G;\nM+HJ-%*2[3?4_(P5NWR:*9UEV.<>VJ2\"=%&JDP'P4!?%K;N37;%*1R48*:E+E\nM42$VR8;M4:DEVZ3:HT*L%/G:PSQEBVHKA7I4F30;5'O4MXT4U*)^;U&)XQZ*\nM4ODU6]2W#11VJ\"?[J6RG8H,ZJ4$E5BIU4N77Z&V_1MKZ-;_W:[;L><;MV':M\nM;9>\\;=?($KM&;MLUZM<XH%\\#W&#]@?4>*LWKT>B0*$37?@W0Y363LGZ-%/=K\nMP$(7R%# \\+(>*MP'#: +91MV[)IG4#\\,32FPV&!OX=>\\T.8XI=LB+92F!8.4\nMK93&G5)D.[G00E66W'K!%YJW#4IA+=NA:I!M=DRC2R<+9>V%AK9&EZN1A99Y\nMDVG>9-%8,'5\"20NO8P:%%:;\\(W8X>E.RO5/'*JV?9; PRUBUVLIU^\\85U-#L\nM7BG=.KM;\"N@A'3NE9#:HDCRD8BM7*>VL6=HDP3KFT^\"Z3(4:7BB)O%#8'B08\nMGE*86#\"M(%;A!@4;(\\166#\"2TC+\\F&'V0,NJ80-5_SS0\\*16#6XUO26G@4J<\nM3+LU6[7IK1K<0=4_#S0\\J56#VW>=O$[-;0U48C=\\Q[.]F@U4VM9/ \\*I3>K4\nMG-1-@R=UT^\"3G1H;-8B9ILEF&DEJIK$'NAG.R;K;::#E'-M/DP>Z@>YG)3S0\nMQ' +%7% >9MK=ROA@;:)\"BGG6\"XJ\\4\"WM<LEM5%1#S3U4578 ^T2'F@;525U\nM4N%M/=#PR1YHN*7]S@SC> $\\T.!)[2I[H)$ 'FABH*BM0W$,#S3\\H5\\%G&& \nM7P50\\S63N7X5('/ZJ:A?!0!2*)BA /[/4 #_9RB .WO(@$></O#70Z;U7=,A\nM?P=XR( 7-/ HSNPA ^\"91%F>0>W0U 2%>YN@2$H3%,!\"%)H>:]@$A8&:3% @\nMC[F@V+:$:YYG\"Y:MM0FBD\"RZ^9BK^9@)\"E0[-4&!;?+M31 %-4%IH0F*8%4=\nMT\\QX%7M:)$T0!6<U[(4F*'O6,1,4U 9)17DGBI! %&R\"PA5-4*23\"0I-#]6@\nM!$G'!!,3%- I35!PY3) (8) +2/JDF#)(R2E9;B^9#A$ 1#_( K<MRT;H@\"H\nMD1 %[MEW1D(4>%*( D\\*40\"0D1 % #  1 $@;D,40+2%*$#=ABCPV!#% 2 *\nMR0I1@,H*40!1PD,&7,*OT@%^%4!YR #F5VE$#QF ]*O /&3,4 #_9RB _S,4\nMP)T]9*261P'< &I/ZB'3D\";%'D75!@3R*(!*KYFD]2CDN$<!-KO A@*&W_:0\nMX<,\"3 H0)H#B203;HVB:1P&RTS!B_.T=:)#)!?O(@,B\"#>M'\"NP,,&* X'\\&\nM_!Z07+)M*[)M%@QQK=_&_=NR6?D1]PXEV(JO']#/L6VO.<!RV:]:=C_5[F>;\nM*%8#[;Q>T\"SX0/\\>(6JNZ6JB6&T#M!6T#;]J: NF(WS;MFH:VC456_ 2 U8'\nM*.%O_Q#,;6W;^#0'K.N'8PN[9OW0C;959?ZAVZIE>$W-;N\";CVC+(UP97>UH\nMSE7@BV7_ELR&1Y+,(YS%<56)!;]BV5D+\"-9Z05LP(NNA+*/\"3 4/I4@L&/\\6\nM)@[E3422Y(JPV;IL8X3Y(TC_Q2,U#3/8/RC(:9(]2'&*-DAYCM6P9QEV2<\\F\nM*I<2%;\\D*EY*5+R6J/@T4?%+HN+31,6)B8I/$Q4G)BH^351\\FJC8OK>LY2EV\nM[R[N[=@\\I7MW<6_/+N?8/*5[._8\\QQXSQK[K&'>=XD3%]EWG-%&Q9]_Q[#N>\nM?>?R_R\"#3C,5GV8JMF[#;F783&5QIF+/_F1\\D%3EN8H3<Q4GYBJV[%:6;=A<\nMI66_*LY5;-FOG'N69\\^R;<,N9=EDI;,]S-(>9FD[-EFYE*K8M)<YLI?9V\\O6\nM,A4[-TLQ35F>IA#K24KC_F;<WXS[VUJ.XL0<Q6LIBHM3%+O+Y<S[7%V&8L=>\nM9]J&S5=;]SKSZ6K';N?8[VS[G6//*\\]5;6K/\\R<[-E4]_S]1[2R7=)9+GB:J\nM[D!4W8.HNCQ1Q0,^^53 #:(>V.E3:5ZO1H=$9-GV4@\"$3P6RAT\\%K^93O29 \nM-9^*+O.I ,R60M^R)6/8'J%GF&A3N/TP4@5(XT*J=+V);K2%(%4<&:-Y/5(%\nMU A?\\V^D2M8;)B,4>[VZB>&SG5LP_6.;1/:U>285O7F /T@5!2@4J0+I:<$4\nM(54D,E(%JCE2!=1ZNLY(%4R?L6 A5< #( *(8!D2%DQ_6X:;$UV&5(TQ#%,=\nM\"JBBIX$J4$N!*KPX4 4/#U1]&J@\"M12HPHL#57(:J)+30)4D!JKD-% EB8&J\nMBP-5$)[VH+5 E7$JAJD0L&3#AJG(6ICJM3#5&-T8U3#U:9A*_.UCKO:RQ# 5\nM;MH@U2B5@O4HE?JV8:-4\"E(=SM\\>Y][EW-F&C5)I8I1JZUZ7&*6\"%T>I<&<9\nMHAJETL0HE91'J2Z.4GT:I8(71ZE&H7M4P!D&>%0 %<!%H0$\">U2 ]$,C'A7L\nMF$<%P!E0F*4\"_L]2 ?\\YQE+AQ=U4$(E9*B&9=FR62D^S5%*<I1*B9<-FJ1.S\nM5'ABEDK<V[%9*CW-4DEQ-Y4D=E-)<3>5)'93B6?S5+-4P\"9FJ5 S%3G-4D%X\nMJ3 +S8;-4K-U.S9+;=C+3-NP62HM[J62^C35Q6DJW+@-FZ926SF<88]S[7+.\nMS5)-4VEQ+Y7)T&E:GMJU::IY*J6ILNYW'%6.-D4U1X6LY:C@*'TC/PS@# /\\\nM,  JOV:2UP\\#D!X5\\<. %?.H +1%11S0@/\\[H 'O*691N9%!M4>%,*EZZ5')\nM6H]JAVZ[9H^*.*!A:STJ*>]1N9QC-_*H-JG4MCVJ7_DUFU1:W (-PJ2*255Q\nMCTJ(5!6WJ\"2Q106W;8]JBPJD'P8I[E'!F52\\UJ/\"_3#B4FR&L4=%F%11K$PJ\nMXM3LA;%%U2P_C(E4>II()095:\\TP)+%?8[LF+PPM3J/\"Y].H+D^C$H>*8[.H\nMI(=#A0G& \\9Y5, -0A]8[86!CKAMU2_PJ(!^KID\\]:BDMD<%5KE ]@&&7_?\"\nMP,L)M0'F4'*/BI;SJ)!+WCJM6[=ACK$.A@8:D&I A (!!3NK47X 6Y,*MF:Y\nMGH^E'9#9,@L&\"R3;DFFB N;'+Q\"Z@\"R/[YGC\"[:AJYY<MB/)MN&FASL06K@#\nM&K;@\"2T[I67'&& 3QS\"TE37:@##6G<,PIY)OP1/(MF+%/*!9@B6I.0P[D7;'\nM5VYM#6XL9W$6YQ7,621;]>C6MFC9XM\"^=O8$>76C6839$23;?^/SFLHY?#NK\nM9.>UE/U9KHP=K3\"B;&FWM?(128[K+,NVX<YR(E4B 27;]\\ '!\"N1.+-@;&Y9\nM&A%,74O<!>. EAU:DMB1J+<E& DG*PO&_EPP-20LF :T#(]@F(U^HK8B4?-$\nMHN:/1,T9B9IW$C5_)&J^2=0<DZAY)E%S3Z+F[$3-P8F:NQ,U_R5JSD[4;-]=\nM[+M+2*)F^^YBWUWLNTM=HF;[[F+?7>R[SG4)#$E/U-R:J#DX4?-G,LW9F9I+\nM$S4')6IN2]2<FJBY)5%S9Z+FICS-*7F:L_(TW^9IGLC3;-FM+/M57)[FSCS-\nMV6F:C7N6:\\_J3-.<E:8Y*$US:9KFH#3-GI<[UM[P9.F)FFU[F6TOLVW'+K>L\nM/IMFVVZFM9=[]M[Q:/G9FC.P-:=G:VX0@*TU[6V.E^MF.%_;DZ_9OK_9MV,C\nM]\"S5X9XR5.>T?%Q[BNK&%-5Q253;JHR5;22I@Y)4\\[3ETK$TRZTTJ@/35'>E\nM41V<ISJJZ^LBD(7;Y2:J#FUYNR:6O]O,5'W9\\G<KO#W>\",_GI>>J=O=2CDU6\nM?R:K+LNGVOYR\\V;X7F]! +XZ/5]U6+[JV'S5 >BJT]-5F%^E_?PJX 9G#QSV\nM04-'/!^0PJ\\\"*KUFDM:ODN%^%:C[?M6M VST4%\"_\"A!;+JTK=VY:.\\[@&(6U\nM)9P^5H%8%,L9#L3 FL['TQP+8SH06&?9$@QF7I)I&+;J^\"C=H1T[*M6RH\"?7\nM;4C%*,J%43B;8^>U;;:AE&#9+$7N1U.VHQG:Z1T;9BJ]94>@ZLY&E=% 7-U4\nM0[%T.ZFH'<VT32W#C8^KWED,.Y:K+5A9),V\\5%32'!J+5NP$476CHI+@48US\nM5*SJ]**=4+*CHC7BRD@LJ&R,HKB2'4BR@V,4:TO1R H+5SZ6PG']6[#\"8!1H\nMV 2AS4VB8A0T.4:!QB(*63 -*,G&J;!$#K+3LR6.8$DLF(8!*U!Q%%?&V30[\nM&T9!P9H=T&Z%4OS*LS'*CAC%&S&*AV,4!\\<H3HU1\"-2P8<^R;(PR/D9Q1HQB\nMM&Z$8HRR(T9Q58SBI!C%'3&*BQN@26B,8I<3HYR-4>RE*C9&<7Z,8ISB.]LQ\nM\"FF+46QL#RJ+4=P4HS@I1O%)*Y7$QBAVP\\<HFV(4-\\8HCHY1##'\\*C5&(2<Q\nMBHU[5G:,XLP8Q8TQBM&ZA_7%*\"Z,49P?H_@^1G%>C&+;7F;;RZIB%*_'*,:K\nM,<H1&,77,8I1JJ=%P\"A&Z#'*!1C%\\3&*?;M;!HSBOAC%]OW-OK]EQ2@$+'G<\nM3XSB\\1C%TS&*<V,4U\\8H3H!1?!BC.#I&<0F,XOA.BC%\"KZN.4<AFC$*B8Q1R\nM :,X.D;Q>(QB'[3C5< HSHU1_ \"CV-*>YXZ>9]_S=F,45\\ HWH%12$F,XKH8\nMQ74P\"AZPT*\\\";A#UP%</%'3$:!W3?A70[S63MWX5$ 4\\4$[N5P%SSJ\\\"R%++\nMGJW+IH(:((:9Y<Q0VQB5.JD*J9ECJ*B.86Q[F3#!6+8D4Z(Q \\DTV51HCF5#\nM2W!SS8%5G4C.X Q(PT$(BFW3; 3%=$MRBK*@=(?QD E 53;#CF&FL:Z53;$3\nM\\A7G(\"@<35@.9*6RZ1$(\"FM(<I:R\"69-*3-/M:BD>:8$V30T9U=LW3B&?V<6\nM-D<WM0T]LVC'E&S=-($QHXX65Q[)T68(%4.R,RN;0Q$@^IO$<.Q0RHE@!?=2\nM6##.Q):M;AS>'BQ8<HHRX 063,,@A2R89N.H[(JP7 3%@G$,P22'-[%@',:P\nM\"0KD'$%Q68+BC@2%5\"4H9JC.,I6@>\"Q!<5J\"XJT$Q0:*Z:I;L56_,NQ9EDU0\nM:%B\"XHH$Q4<)BJ<2%$<E*'Y*4/R5H#@L07%5@F(ZG.M4]Y#]G:#80K)A$Y0D\nMPW?&$Q2')RC^3E\"\\E:\"8IMBP\"0K-2U!,U8>:Q->;R#0I0_%R$]G_&(IK,A37\nM9BA>R%#\\DZ&X-T/Q.X9BRYYE;0^[RU#<F:'X+T/Q4X;BP S%9#U#.8&C7S:7\nMH=BVERUF*#[*4&PZ0SF$H;@*0_%]AN+Z#,4A&(I#,!2'8\"@F&!G*,@S%91B*\nM*S,4V_>WU0S%9QF*:_@>SK+'D46/L[7+'6<H_LU0W)VAN E#\\6*&0KHP%&+ \nM>]UNAF*ZZG6C&8J3,!0_9R@VD-QN\"T.QA^!WS1F*+>5X;QB*=S,47V HOFXB\nM.SI#,5&V8S.45QB*#S$4TM1$)GE,9- !Z3P*X :K#USW0%*/@C][%$!4UTRJ\nM>B !<=M#=FX/) \"4H. L3-MQ'72.3U\"8!*E$7@:'5) !.@+)9 59%K)(D K-\nMUYU(L4T,Q3=LQ\\+#T=!L\"(Y*MUA(4B [E0.1(.%92) D 0D2'LM,YN#.+5S)\nM&0;'M16'M!4:0[+C\\E1[IQ$3!(0E(V/=B# KKI2,PC7YGM5,YFSF=@P%&>ZC\nM*(.C+20JI&0KR$@@6S%<DH*L: HRB<!1B6\":. $.5((I\"0JKH@2I8!S+LDF0\nM.!L1B@D*+\"$)$F!C68:;R%1!UE2\"XK<$Q6189_E*4)R5H'@M07%<@N*I!,5?\nM\"8I;$A033&]935\"\\G*\"8I7M+<8)B^^YBWUVV$A2')2BV[R[VW:4M0;%]4Q03\nME/9-@31!^9Z@^#Q!,1W&=SS[CF??\\6P1V02EAN1!CC8-T@3E4(+BC 3%/15D\nMC^2KOLA7W9RO>BA?=6&^:IB3KZ:;?B4B^Y5ES]K'5_V4KUI!,0/2?+6C/&PJ\nM7W51OFHRM(\\=X*O^KR\";!>5EMKVL*5]U4;[J!7S5-?BJL_!5.SI?K:5XVG[C\nMIYTG0;K_?P69QN\"KCD&\")/;]C0'I;W3%WY1DA^O+5SV3KWJ^@NS.?-4\\Q>46\nM\\U6/X*M^RE?-%#K=%!(DX2M>IR!Y'4ORNL%\\U27XJD?S53<F09+;?-6N_<Y2\nMCG>\"K[HX7_4&OFI3]KS\"?-65^:K%9,_;PE<]@Z\\Z/E]U;+[J['S5-?BJXY,@\nM(0.>^%7 #5H?J.Y7H4.V#PCK5P$U7C,9ZU?);[\\*U(8\"AA_VJ_!B 0H%&!- \nM\\2&\"[5>URZ]\",JTK-BR;7/U(7<-%PPS=@H'\\[1JUG#& @*I$8JII5LM304T+\nMGA(#1Q 61#\"6K91:BE,R%\"?$F4Y$,!P:8G(&0SL+\",YY93OU@2\"\"#8!20(#F\nM'*:M>X@$:$A% .ML:+F>5-(<QDYFT0H(,.S-$^$UI^8K3J1LCJ;<$JH\":MNQ\nM%#NIO]FP^!J-[-VI)&02BP1M51<]&$-!+8^LRLQ0L*LG]>TD\">B0U)_ERC@E\nM0K'S:7P[D*\\YC83,DN<:D$M05F3A)>4R;L6;'1\"L\"$05GD87G)RDHAA('-H5\nM+1A)Z<*S8!K5W$0P8JIAC!%E*$A*>82GI\"LL&&N3=C$43V8H_LM0')FA>#%#\nML9)NPV8HCP,@27:ZZNP 2)*=KGHZ7?5ONFJ*ZB[+Z:I9B@V['!S*7#4&QG7:\nM<U6WYZHFF-92S%5[MF'/,FRN^C!7-1+:ALU5O^.JWLA5G9*K^BU7=7BNZAMH\nM*(?CJC[+5=U=2R%[N:K?:RFNR%5=F:L:!N5A[[DJV<M5?9BKFJSY6 ^NZAY:\nMBN-S58_EJK;M98FYJGMP5=?AJE[\"56W<T4YP5:_04ER?J[H^5W5]KFK?[G:'\nMJSH^5R7V_>TP5W4/KNKF7-66/<[6+L?7<M7%N:JMV><.\\%23M#SU=)[JZ3S5\nMAM/4EVFJU82T_#)+=0V.ZLP<U>:4H_Z @K+G*\"A:G:S!!W3Q:H S^*$1KP:P\nM\\363N%X-('/ZH5&O!@#Z5(SS<>N6L37 _]D:X%!DRX;-UM9E:P >FZTY-EMS\nM;+8&]^XZQ=F:8[,UPC1]Q[@-FZT!'E2&K9$H;,T)D-!.@(0V6P,0/=@:^!&V\nM!I@C; W\\\"%N#^6B (\\P_,&6 C\\9Y_3H=<MZM7>\"C 3[0PD<#_\"#1LFW3J.7(\nM(MD(1[F0NBTG(12-:7$@J ;0?'VX QGPIN-3-<L6&D:I4)K9F@+#+-L65%,$\nME.&\\QIW_ %23[?D&9#-LJ*;,DF:\"10-!-8;#T2Q0S0$A)LFGW*F@AF-IVTAH\nM98;H' BJ0?,Q85!E'$&T,T$UJ.[YH!H\\LSD[!%1#(T,U>&9I&ZHIFJ\\Y#40S\nM5,.9_6T(I*)9MC )JM$<XFS!2&H8A\"V-P2(5/#E-LW DI7=#-410@FHP4S5&\nM\"%5( T(U:\"RFAL;2S%!-<:&:XT(U)X9JK@O57!>J&6@ZRWJHYO90S3ZZ#7N6\nM89<S;*C6NPT;JJ4AW.4N5+.':L>&:M=#-=(?JID1^VBTO8\\&_A2JV;X'S85J\nMW@C5'),#0[I\"-8,TI]H U5P0JGDH5/-]J.:,4,U5H9HM>Q89QK.^0C5R'*IY\nM*E3S6JCFNU#-QZ&:&T U-X!J3@[57!6JN2U4<UZHY@=0S4>@FG] -3^ :HX \nMU9P\"JOF_C^;_/IK_0S4W@6IN M7L:G]SM;^YVM],V=\\:0#67AVJ&2QZW *JY\nM E1S>:CF\\E#-,#E4.P*JV4FU8<\\R;*@V,U1S?JCFS5#-*:\":.T,U1X=J#@'5\nM;&[/RP_5G-]' WS\"J]$!7@U ^6@ UL)' _S J\\E'0]@:X/]L#?\"FIFP-/#M;\nM@V=G:R#\"LC42EJV!R,[6P(NS-< E$K,UP%U2L#7 #P9\\\\FJ &WPW60/X:+ 1\nM%0HPG5X-T/,UD[E>C1SW:L!*%[@]8'B!S3X:_%F :@'.!%!\\C6![-2WS:I!.\nMR]X=6M8MW;IR\\T\"/EJW8-=\"@+EAG4[_%@\"@#-@WH4T#P00=2';!2+ARPT-;N\nMI5.J=@O!EBW!8*XEO&!)?[W ^P(5#@BNO^.E#6V$.>^ B 6^>,NK35NU#-?\\\nMIFU^;]JE)5OSA?YM6.F5[6,%O,]BVGU$V_*M!<H-\"#9 <\\,/'[#\\F&OK_L\"Y\nMJP[0K'D'CBGV#/^H8*JN]@_':$XO+XZN;6_2;-V(X+H/US:KEG/Y?M$WE[9D\nM1S%FU%-4E']S-$O6)A\"L)8^%5;NVOU]7);;<MW8=$\"S'W_NS!>/5CF3+6)$*\nMIH,4B07C7HIDP;BT<A\\3#+6G68P15:2\"J2A).-++L+<*)K8DP]7^04% L#,%\nMP2.&,NR2E@U0CP2H_@=0G12O>21>\\TB\\9KRYG6._,^UYC@U1)X6H]NTMMR&J\nM?7M+=XAJ]^[BWEULV[%?>?8LPX:H[=NQW[GV/,<>,V8R3+7A,'5;F&K_KI,4\nMIMJS[WCV'<^^XWF008[RH+8XU6UQJFU[D+5MV;,<&Z?VE@T;IDX*4YT4IOHV\nM3'5;F.JV,-66!YGEV;-LV[!+639.71BGVK^'^?<P>_D86HU2&\\N&C5)/1JDV\nM[6G//9^6&J#:WW9LN-:W#1NN]>UOCNQP7]&:G;N<I5W.62YGR#YG><ESWI=,\nMUQVN&2!YG6NO\\^YUQG([:[O=5[AF?_F=[7\"MKSQO,ERS=2-A#=?:VJ8]<B0:\nMRB5MNZ3MS4KV0BM+O@E0LF1WD.H!LSPJX :]H=X ?AIL1($\"'Q-X5$ CR/BO\nM1P7$;H_*P?PTM%F -A[5BM\\0;(^J9AX5 )^4SD7UL0 _!L@M.6R)C8)K_E*P\nM3:9<ZX=*!>J';(L-.EQN>KG\"9*75\\< :U2I5-YVJ+0^K5*Q:AN?P:2XMG,,J\nM9\\%?^O=+E4IN.C6^:=>L4NE\"B^F(BAU6O?N85+>3[>&J\\E:[:D/OH]D/_*.\"\nMZ8$!*A5FCK?J=1]6J:CN!TRJ52K2]L!P5W8JWQS8F5FE@N74SBH59$7M;'DR\nMWU:IU/'E_FS!>)Y)M66L4I%4*A6HP,K=QYTM&-&G,W29'U@2\"Z9]1,GRB/0R\nM;)6*'WA%;J92W5VE@O]3J60DB^J1,M52RYY=SK!EZMLRU;=EJE6FM_R3J6XK\nM4XEO;U&X&VE4RU1JWX8M4]NW9Y<S;)G:O@U[GFG+U%K3=0K+5+C8\\)VX,A4^\nM4J42L>I!7(H'*143*%:I1ZI4MU6I3*;.+E--H[J51G4KRWXE4?W*M5]9]BSC\nMGF79LRAD:U2KU/]4*K&5CSU5J3ZI4OV/2B6.-VJFU3U-IGE:7)EJTY[65*;:\nMN+\\9]S?/=FR9VK#'^7>YIS+5)V6J#=GGGLI4HE>\\SK4-^Y5.M4S]3Z8ZNTRU\nM8[\\SE-\\]E:GN+%-)9YEJZS9LF0JRDDR%^V#(*I\\*N$'D X=]*@UIV#Y5E0=X\nMJ8\"\\KYG<]:F *.U30:OX5%XAV#X5 +.II(5-Y2QN@Q56S=HDIL)[N;9@D&(J\nMDM=O.K!;<VF-:@E5<JI>\"C4OM^RP4JHKZ.FNX%%]TV+YB\\9T3\\/>JMF;[ 9;\nM=-I'U,YKWGDM>X93M>)W/&7%=52EUTWR*B@^)C%=P:_QYP'^L6\":F1Y;#(NI\nMD-4V%=4]LX/(-A61MBKXYJW.S*Z,;2INZB/;IL(VJ1(?LZGV)9K.MPL=$\"Q)\nM#VR56#!MYB&R8/I2*>27SK8B23#N)<C^(I@XDH141+!*BQ0TK[/9$J@B23 6\nMEO14;$MR>+*I@$QG4P'72&I3P9/:5*\"ZVU2/%%-)6YL*T)-M*KRM307JJ4T%\nMJK!-)75MJI_:5 #BI$TE.VTJV6E3X95M*JEL4\\E)-140@A$*IT\\%W\"\"U3^4 \nM/A4)[5,!45\\SJ>M3 1': PVZQP/-/03;IP)@I;YM&]8-!,T+>2HAVR%&G@II\nM03=1G@KD<(Y)>\"HLBV/S5%AI/LTWD=\"$8>@83X5F :C<QS+S5-T1E4<I-D^%\nM?3:6@115P#$\\@TDU3P5D.R[5(&B$IR)9;-NW/F,H'D2G$G\\63X6(\\DX\\E0SG\nMJ>\"]>\"K)PE/A(!4I+6OS5  1& '.K@C+X6E#5'Q',.&I@)VAWS/H5 9! [:5\nM8Z.@ 4\\BJDJ*@@8?B8*&)T5! ^XQ$@4-0(Q$00,PY7@J,)_ZIT\\% \"C@4^GB\nM [M]*O5!XZH^%1#;-9.M/I44]ZG IC*M WH6T\"^?BN6TOP*,\":#X%\\'VJ<KG\nM4R':>-NR<T%0JH,X5.J93= LDDVT7D$[')VC64S%=0JX5GVP:HZ-\"$:,2WC!\nMLKPH166$*16,V)86\"C=)I5!5QT@J9S%.T\"85T21M+2+HG)ZD.Z]AMDP---H\"\nMK3N+;X-5NM TIP?H]K<\\KS@@=P##(R#U P1KDZJ8I!+']E*$USQ -_9->QEG\nMW]*T2MOGTL[,KHQSVY.=5&41)!93<1W/SN)OSJ&=+:_DV]T+\"%9ZD@HJ@\\$:\nM&,P5J6!<1Y-8,#YFRW9%F)@*:R&8I'=G%HSKB!+)(I\\-*Q])Y49!;K-43V:I\nM9EJFJ6YEV*\\,>Y9KEZ.JW):J.BE5-5TW3355I3S=AEW.L-L)*'YGV!(*32JA\nMP'W;L1M15(<R[%0TU525VK=AES/L=@**WQFVA$*IJHR;J/H56355I9Y-5/V*\nMK)JJ@FPKA28CJ2JG^F0O?Q+2!TG5748A)-6I=GO>RK-;_>.KQ+-?>?8KCF*&\nM8H)R-T$!WTU0G)2@D,D$A5C+Q[HS%-!RRTQOAF&Z7+0 *,OV-D?Q*\\>>Y=@D\nM!8RO=^UP25D*EQMG:;,4TQ1JV>>2TA0NE\\[1YBAN9=@T97>: L+P<N^\\[7B&\nM$Q7$6[9LHD(-[7F^7<]PJK(M52%)J8K?4!67H\"IN2U4\\8)E/ =R@WX%^/BCJ\nM4W!.GP*(\\YK)69\\\"J)8%G)\"K%K@<H)H/\"BT6H(U/L>(W!-NG*)M/ 3 7%*F/\nMHENIT$$*TTH%@ QT0&70THJ)4J%B1?,\\!A^3S5D<DWG:?0Q.X1:&YO0\"E>0U\nMS$H%JULMI+)]!M;J:N&0^:9HFQ7E$JG.Y=]*!;!AE0I 'G-F+U0JH!6(-%8J\nM8('L;:5\"LR@5N$K!-R5@;!E1*C#!2!W+<!LT52H 4'.BV90*L4'IME+Q;:$\"\nMU2G4\"84A9-Q6IY#)3BCX;9U\")NL4U B%(,C8O0V[G$:Q$0JY+5/@;64*>%N9\nM I?*5BA&D)&V3BA4I@A\"IA)%*L,(LDNI%$L4BB'+LRU;HO1L*Y0SB127LFR)\nM0D=BR\"2I1&&%0D=ZH<A(@6(OE$S)TR:#R&2R7B4CO5 $1%9;$)DX-X9L+Q15\nMJVKKA2*NC2$;1(8D5:OD-HA,;H/(Q+H]^Y5>M5)%)BM5LD2I$@\\9/M*K FZ \nMI6_K5:D7\"I?TJH#XKIE\\]:J 2EF@[X\"L!3H'6.95T6 !P@BVXC$$VZLJGE<%\nM**N*ZJU)!UA5W!H)18Y:58 57K LCWG ;.FFW2(&4YL$EF^B(?FF527'A!8[\nMUB#M=EJR:S*\\Z0\"K\"M$V%9JRK-)&$[6J-+VK.:]595%\\PK!W6%5X%H=LJXI5\nM+:L*(4\"Q;L]3[=16E6_:YRQ6%7K\"4QR_0 I!8LFRJCIJ58GI%T1DTL:JPLDP\nM^)A.Y)N641@D-<FZZ5/A1RW#LUA5T)M6%9A@V%'Q<'.B\\:RJNR.A4 T9&]4C\nMC2I<0 8;:53=UJBZK8!,VAI5N$7UENQ.%2X@@]FW:;\\S; &9ML5\"D;].U7^=\nMJO\\Z5?]UJL2S#=NIQD-:37$HPQ:0J5-57:?JN@(R*6Y5+2(X578]Q5*Z6W7V\nMJN@@IVJKBITJS>Y4P9,Z551,J:$YV6VO\"K=MPU93NO8SPX[F5F4M3_.W'7N6\nM8[M5Q+H-&ZF_K:; +6V[:A D+E=.2[%!X7]R\"CN4/L5^U3!(6#F<;HMRLD7A\nM<NTL^]UD!1G<D#VON$LA\"C).JB\"S3:DFNZ0WV[!MREPVA8S$0D)\\BM+Y%, -\nM AYXYX6D/@6/]\"F Z*Z9=/60 1'80_9L+R1\\FX9L$?DVGX*.\\RD 99F\"3<7D\nM*6A:GD+2\\!1 L2T)+U@\\Z\\P#\"#*&J^(I%$ 7A8RS4,CPT@@(+DTAHZLY&N>E\nMD*'I40:AD,61D(50@X A<? !D0,$YRG0O!0R^#R> @7KHI!Q:C D$)$I9.8I\nM- U/0=/P%'3Q )X\"EI=*@?(4H 7#TFB&9H$16##\"4P F#4@&%WP<A<P,,L9\"\nM@E'(-\"Q3\\4BF DXTG24V4_%?IN*_3,5_*63\"M4Q5S%2.9\"K$ODF*F0KD'X=,\nM[-NPYQDV4VEOU^G,(9/;'#*9S%3(;2@DN&T/\"@N%A(]D*HR$I\".1D\"0Q$A(\\\nM+(U,PG(5M^4JGHR$A.<D*V9H'E:7K)\"P9,4YR8KYLI?5I2K$M)?EI)&9JF0J\nMVLU4G)BI.#:/3)S[FZ?\\S;F_Y20J*$_IW.6<NUQL'MEU:8HG\\\\CV[W6NO<ZU\nMU_GWNI$\\,LG)(]N6_:XNC^RD&$CBWO-L[7F&\\KS$/#(9B8\"$\\\\@@_>H_?A4 \nM((!?I7\\/_/:KU -)AKSUJX!8KIDL]:MDME\\%-K4 W7R^P($!?A79&*!)@$8!\nM%#\\AV'Y5S?PJY)/A8O4PQL0!R0',4%1-5W22YA9(@_22S'*JO @L&,:Q)+Q@\nMY>6;OJDB,U*C%>B*!2TO0_,L>Q!!LX0L-5454(:C&TB,,A3!L'L)($D6WVSX\nM'0$DU+ZR&$ADH;$X/45!-PFAV5#46K*MZ-ZYE['M6T#5NE&\\07L99\\4_LU6>\nMYYN/.3,[&_<R[$VB[$T\"2-*=K7(O@DK,,/8E\\LJW\"QT0K+P\"2\"A;E1P/$ZP*\nMBL2\"<2]-<@7!Q(>G!!4&%9'T;!651T@ORW!SHLW8JF^+R-R*JK*(+)YNFFHU\nM%#)2#05O*R+#DXK(H(U8JM50R$@U%-&0U59#AB=EJL2XB:J9:G>;JSH5374K\nMHFJFVK.YJANIH1R*JEH,A7!D&[86BMYFJ40,A0C(6 H%TE@V;([:OQV;HS9L\nM(90Y:G=93/$LRY9\"44.R$LJO''N68Z<20IFB-F[#GJ6%DA2*[5M)<2LME%\\9\nM=BHEE,[=IJC$M;50?F78LY044]2.+:1XD!+*,HI$%\"J%PM9LRWYEV!2UMZR$\nMLH9\"EU!4TIVB>D COP8XPP\"_!J\"R:R99_1I EO1!H7X-@/I4C 9UW+IE#!7P\nM?X8*.%9VAFH!PUGJ,E2@.C-4UV6H(-R[2TZ&\"EZ7H<+=V[,9*JW+4.&=&:KK\nM,E1X9X8*0$QFJ$\"IR#9LAEI*MV,SU(:]K#-#!41VANK.#)7$9JC@G1DJO#-#\nM!4#:,E2 ]E\"18AX5<(.?!_YZ5.J!)D/\">E1 1-=,HGI40-P>D-VC JJ;1P6T\nM104YSZ*R8%E4Q&*#650PE3'( 8L*IEL6%6 \\&K6HD!86%2@)-+6HD$W^V:(B\nM$FC4H@*30+-%)6TM*A\"JH@)U(HL*5!!;MF2ELJCH0HL*'611X18-6U3 /[I9\nM5,YD4!W*HJ)Z&(TD44&,)%'!V^IAB$5%]#!T)(L*8B2+\"M[6H]J_*51[5,2M\nMF4*U1T6TL![4W:1ZLDDEMNW8)I7:]R<)C%.UE<,0RV[E,6Q37<JFVJ52\"9SU\nM,+:IU+G5,\"[E4VU3)R52P?6PRQV+[U.M@[)+]2NC:I\\J,0QUR#;L5T;58AAJ\nMW\"[53\"I8N7'67<ZVN50;U<Y]+JP:!AY6#4.*&U6;5/M4SY+#V*A2>SM>?*=*\nMY# R[7G>;=E.M??EZL6WJLYI5<EDJPK7PX![5=?RJH S!/\"J \"JX9A+4JP*D\nM'P:P7A703A7P?Z<*.*.)8LMVJH#'V<K'/)J7C72J #W2J<*3.E4;]KBD3I6,\nM=*KPD4X5[MH^U:\\<%#O529TJ2>I4B;T=K[M3!1_I5,EDI^KN3M5MG2J@!_SQ\nMJ8 ;-,9H?2KU09,1EWTJ(*9K)E-]*KGM4X%=+?!ZP.<\"!7PJO!BW!Q@30/$6\nM@NU3M<RG0D(-R^8M=_L&&35\"<X#Z5-4E:3;/@U@^'@ 'C>M+MN%1&!9<,%)?\nMO7'0^#I Y=(<E5&J!N%-+R1;/@;6K5G'3+LT12$5W&6207$P&*K28XXV1A$%\nM4L=8.BO6/%$S2]%\"4=FT?\"V>2=O8=QNHBFY2%4-51+QPT(!M3H+Q0H9LV[KI\nMS&[ARJBGJ\"AO\"U7)=:A*&+[\\K8&JQ)9']VV$4K#R0E06C*-+,Q\\S%Q%,D2H\"\nM5<%N.F>H\"LEK&<5!84$25(4(&\\NFRZ\"JNT-51D%3H K[!U0-,0U2#51/!JH>\nM\"52=%*@Z*5 E22$4>'>@\"F[?76P;I!JHMF_;?N?:\\PP;!DV!JO\"FD:J!*N+9\nM2-5 53B5(C0/LK0'6=J#FL*@25*8:HQJ(+1AZG\\PU7C-.-4P=5.8:LO&01NE\nM'HE2B:L]#&W8L%^!5*-4^@^D$M/&J(9!(R 5N'&CJ8)3T:08E;@V2#5&A?S#\nMJ/8D@U2CJ;0NFDH 8'[7%**Z+D2UNXRD&J)N\"E'=%**Z+4*U([ND*1NN&:'2\nM-PC5DQ&J!PSS:X ;Q#TPW0--_1KNZ]< \\5TS^>K7 +%Z0.L\"'P;D]$\"C<FT;\nMO\\8W!-NO*9M? ZA)Z317Y0%<EM(K5+2^0H4OU&J^HU !UJC)8]U:@,^B.DMV\nM2QI38:%,OJE066R+2Z4BE2I4F.TS'&TP370JM5MT$Y>*SE\"HO!#.9(6*_6/!\nM5)%H=.^L4*5?814J$-&MAC>)#7.IU)\\1X<IBUXAE+52HX+J60J6;%\"J\\M$\"T\nM8&SN6Q4J*)<*Z)L,/'CQ BR2!%.%BG\"I0 JFV12JU88E*@EEV27Y5&M49#*7\nM2H@L&[9&I9,UJB=K5-_6J$2BBDF%3692B7D;MD*EYFW8\\V2J%6JE8;EF)I4F\nM5ZAD,I,*;210'4J@.I5<<RO+?F78\"E5$:AK# M42E1*I:DND$HWA5Y9MV*68\nM5/.HM\"V/2B2JDDI4,E*B.BF/\"L*TEW47J;[-I'*Y:#)5,MG3.LM4<V \\K3*5\nM\"LZD^5MWG8IRJ30IETJDFL\\E%:J^+52):Z_KS((FG;E44IQ+)9VI5');J#H[\nM\"9IT)D&S4*5,*DRH8@\\T^\"JO\"KA!V0._O2KU0),1(P<D2.!5 7U=,[GJ50&U\nMMD#P ;L+I/\"J\\(H!R@18%$#Q&8+M557-JP+<JH+PVWTV72BF NCT'L,>*K:J\nM*NW8@I;\"5%B128RJK\"K5&\"HMIH*ZS)\\'O!S@I:H%\"A[-BX)COZKTNFTVM,FH\nM<FDA@_-:590!A\\54Q*S23<IH)!S,,C:NZ#1HWFF?;UI5<#&5;A)3@?E;5A4L\nMO56%;E50R3$WB6PRR2P8UDLC9#$526]34<'J5^\"E4\"$+:=\"H0D@%XUXJ(=.@\nML6!5HT&C8BJDK9A*C*J2DJ\")485-)D&3[F(J.U6DK99*G*J2<J\")4P7C0,/:\nM<J#!+>U!EK:2:BV5=G&J5I/M5N54H9.=*KPM!9HX53S9J1(Q%3.@E=VI.BD#\nM&MRO>IEK6[93E5%%]%29][3L'&CP[$85* 5%EG:Y[ H*_#8)&IZ=!$UN*RC$\nMJ\"JI485SH&7-%E#\\RJN: HW<-JI^0X$&\\ZDTFD\\%W&#G@= >:.I3\\=X!\\7PJ\nMH*IK)E5]*J#:%D@]X'2!&QYH^,8 30(T\"J#X\"<'VJ?KF4P%>ZMNV8=U T'P.\nMZG DLNW0% KS5 2@8Q T()G6Q04:\\%2^7R#0@5&\"=FNZ99GXSX$2!W(5,#QG\nM@0UP9)[*(&B@IX\"@^3=!YT8%C@P@I%D4^]P!RXL4F%4@3(&+ Z(.:#3@5H$U\nM!0H=2%\" 0@')4V&:\\V)MOS2@.84\"Q.D#FN[['1 T8'@JT/Z>CD(!@==@>.EB\nMGHHJ4L&T@2*Q8 R\"AN1\":JA@VM[3_BV8_!!,BHB2BPA&*13=$DRRV)(-_T:A\nM<\":BZE!$U;,,NQ%'-5&%H* UDJ@2%#0>250)R;)CSR)1C(*F29DJN'W353-5\nMBH+&(SD4^&2F\"N=0-)FIHD$&W291X)XV6S55A;0E4> C<=\"$1(&Y'F16=R T\nMG$514A:%).6JT'+)R*J20J%)4AH%SE;!T-\":S%9)4C0T\\6[#9JMT)%MU4[9*\nMFK)5@H=64Z[JIFAHTIFKVKC7Q2>KMN]V8&B_:PN')O8R6S59I7!H>3>-8K+:\nMF$U4#8>F9%65R*IODU5$ZO>J@!M\\/U!D@%=E/S0N[U4O\\*J GJZ93/6J@,I=\nM8/B ]07B!O\"JB!\\:;)=7A9SZMJ[=LF[3RD%&MR1:MFU:@%0P\\8!$!:(*=M8#\nM8'6\" :D$FVA.62\"59,X\\0+8$@\\F6\\(*5@VP]D+R X/$+I#F@>;8\"&0XX;GL8\nMQXY5(.:!^+H=53BK5WSGCJZ=G0\\T(*!AI\\2:SJ=O>Q[!L-67U%B.C4Z*I=C^\nM9]/L@(8==X!S9=.V@QP(H]CI_<V&%6. 8*52EG/8VA$<[1BZ:,US!PB;P#85\nM/)!@Y_#M&\"2%8[!$.^Y[X .VE5S1CF;,J*?'<F[?XVK;OI9D69)B6JJ_.8,M\nM.Y5E^U;^ X*50Y,M&,DOSDXIF/@3%3R-(K%@G-*RXTN2XVL2BUN)!,/#\";+#\nM\"\":*),%210E&-,-RV)(-5_IYZHL\\U1=YJB/R5$?DJ3[)4QV1I_HL275VDNKL\nM)-4BI@T;[6]/4AV1I'HB2?5\"DFKO[A*2I-J[NXPEJ.Y.4%V;H/I! (*Z-$'U\nM=RF5>/:=T'S-?_F:G=NP^=JN?,V)^9ICTC67I6O^2]?\\GJZY*EUS8KKFZ'3-\nMH^F:B],UJYUL[4ZVYK5LC?1E:Z[*UKR:K?DG6_-?MF8G.UL;0^1<MI>M>2I;\nM<VJVYIYLS2$\"L+4-;&^6P_!G+PR/]L'X:?WIFDV=K@6STK50:[EMMMW-<((Z\nM+T%U5(+JTP35.PFJK2>HGQ)4+R6HMK7+!2:H=I?+M2:H7DQ0_9F@NBY!=6R\"\nMZK!\\S635[2KS-=?G:Z[.U^SN?*V#D:_M8/^\\ZWS-I_F:HS,U#QCBTP WN'U@\nMP@ O#/LT7$()VZ<!ZKMF\\M6G 6*Z3_/A %X8Q*>!Y?)I &6&(:F<!ALM)3P0\nM3JDYFMIBI:TL1MM)E1JP0$H-C:\"V66_-(+\"<5^TXC:$=TJ@[@\\>RPQA$M4/;\nM;6>P:DXIU!W:85JI4:6.TPMT!]3:'%5I.:E\\&Q0:2ZPYM7H'=&_#K<H(MBU<\nM;F,B@6FEAD@,&LBVPR@U2UJ:IU!J]NLS)7 :6*G);2J54N-4AFU1%5VLLU*3\nM2)-2PU%%V39-F4T[BU)S<*6&!E(EDD.S?4NIT0ABG0BFT:79BE0P#2G?@I5+\nMD5BIP8(()O8>VEL6#$NH5BW6L+YP0%-9.*))4@0<1K,-SZ74?%*I>:!2<U>E\nMYF]*S3N5FE66L]Q4:B!D7J4VI5)S0:7FI4K-WMTEIU)S3J7FG$+-X86:K;M.\nM<*'F^$+-Y86:[R-I'B[4W%BH^;!0LU#W((7N07N%FGL*-7<6:CXMU/Q#HFTU\nM5:AYKE\"SSBC4[A5J;B[47$.HN:=0\\UNA9HY5J'TKU-Q4J'FQ4'-*H>:U0LWS\nM833+#\"]+*]1\\5*BYL 6&O(?1/-WQ9K[][#V.YN@XFL,+->_&T2S1/$V@%&HC\nM\"#5'$&JV;QS-0NUA&PR9CZ0YHU!S2:'F^$B:PPHUAQ5J[BS4G%>HV;/7;15J\nMOBS4G%.HV98*M8[]SG&AMJQ0<P\"AYA1\"S9X];[-0<URAYLAV6*B'QD&\\&N &\nMEU68?EA:WS4=T75 6#\\LX )>[6ROYL0>&KR95O,9N3A #,'VT  RDRS+6 QA\nM*!93-]\\9%-D6/!K48L&*X-J\"04(Y5+ R@]D.S78<&J Y%MQQ?)!FKAIHSJO9\nM$)J\"H.@.0M8=BV@[/L!T5HK)$*NQQS)LJD;3*]L83>F]S6%<.S<@V_!(>+K#\nM6'<$MN:0MEGYT,H='\" [B[#8WQ(L %69_; D,R]:\\\\@0<0+;-#.*QI(I59/B\nM03\"R?4\\HV9F=93Z5\"J9T69F!FD-2%,XBW?FH&O,E!?*W0VMG3<EW_P5+5!*,\nM!+8D6QHK4L&4)@FGX2!4S4% -#0OA,1^6%@03]LR#B\\)+'@=(@T-@]-(!,$D\nM.%%@PT$T+:5JKDG5/)2JF:#;L&<9=CG#IFH@LX-H]NXNWMVE*%6S=QOV+,,N\nM9]@@6C3;=7B:ZS!-.S976YVKP<MS-4?F:M[+U6S?@UYR-=_E:B[(U8RE.]5=\nMKN;R()I_<C6?Y6I^#J(Y+U?S9Z[F %S-^[B::W(UKP;17)>K>2Y7LZL\\K\"57\nM\\UFNYOY<S?VYFK%4&S97FYRK>2-7<W^NY@ @FHN :%X!HIEN>!J>EJN=S]7L\nM+$^[S=4\\A*MY\"%<S7[=A<[7'N9HS<C7WYVJNR=6,HWF<K5T.2W6YV%S-M;F:\nMZW(UM^9J?LS5_)NK^2M7\\W80S8&YFFFJW_G+\\_I[8!V$J_D!B$:P),^C*GW:\nM)CX-<(/&!ZX&\\-#8I^'' SPT0(;73,+Z-$#D]FD>'&\"HAX8^\\VG\\S*<!,\" :\nM46I(0C*\\E5J9K1P:QUD<.XO5L%(#9%*EYN1*C>,34,R'4Q92&4<3A*8,2(:1\nM+('1<EE*#:)Q(A:\\8QFV4E,,O>D<-L.)+#N:92?\",IP 0+>BAZ/#6JDI#([I\nMI#AH#FXRC(939J4&E'YE1D9G4VJ.KM!8-\\VBU*#\"FE2I.:9O3J[4P.DP2J/4\nM[)240+*S*#4T!IO$6?@T*S5%4VHDJ4)CP5BIB0V'V?\"82Z*\"<4K-9L,A$)+,\nM.A:L-$H-CH;&8?0B*S48F8;3FQ,K-154:CZGU/Q1J3F>4G-\"I>:$2LWIE!IX\nM>Z5&\\BDU;U-JGJC4O$ZI>:!2\\T&EYG)*S:>5FC,K-:]7:L;338:S4EM:J9''\nM2LUME9K?LN'(3*7FLTK-#96:PRHU/U5JKJ_4W%*I>:I2\\W6E9M=^E5BID85*\nMS4.5FG\\K->,I'K94J1G#\\+\"(2LU5E9JO*S575VJ>JM0<5*FYL5*S(WM9=:7F\nMQRB:<Z-H-NYHXU$T_T?1W%ZI>;92\\W*E9C#-W62ZOU55:AZJU/Q8J=F^OUU7\nM:EZHU&S9XVSM<D>5FA,K-0=6:KZJU/Q4J;DS&XYD5&JDGU+S=J7FJ$K-JY6:\nMO;V48RNU496:(63/VXNBP08$+>#5 \"\\H?^#+  ^->6Z QB-Z#RCAH0$J.*3!\nM9WLU8$,+]*>Z3N&AP?UP8 &\\&OB\\;<6^96.,R=\\T8++3]9(\"@PY4./!VP\";!\nMUBS7#:N%D0,7C+00;-T%*Z]CERYPT[\"3%3A6X'Z!6Y+M_SO%[EI@WH'2CAW@\nMP'*KM4 HW2Y;0-<U7UC@QH%CQOWK@.$E#2Q^)VGN/D#W\"9(^0- G&;9H!2HP\nMP3$KUBW[]GRRJKU]0%?K#B[4'=S>5GH% P 8<XWZO37[:0!%TO@\"@BDLU((W\nMW?!;-L5+5&5':;*[G=F=R1(<G&\\9MB!_<Z\"K*%OZ (+]1C%/EF[!B&>U.\"!X\nM/=T614VV9-_R-=_R-9NZ-_>M$LX=<(!@I+M@(JR^ES!G\"Y9OD/\\]'*_T<  W\nM6'Q@MQ=#?<\"X*D>TSP'T<<WDJ(=#8OL<8%/)0O<LH%\\^!Z.X?_D<*_Y%L'V.\nM\\OD<B%V_;=DYQ71+(:$S&='A*U2/-1WI;$%T2!U,M.-$!TCC$EZP+\"]Z@.A0\nMQ:*[*S!M+Q1NQ34/*]L5.(XK.'86XR0ZV^&;1,?2UJ(\"EA808ZIMP[),94NQ\nM-#4+'J,\"LK70-&M>6EKL>44<RQ7!'/<:(%B;5,50#.WEV%E\\;<5MTUZB3&0K\nMO6J.+BQODK1MJ[0SLRMC($J:7R^ 8*J.H7W=L$-*-L\"7OY5#.UM>R;>[%Q L\nM44DP$MV26#!=:\"X+EFNID@33.IK$@O$Q6[8KPDI+LP7C%H))>G=FP;B.*)$L\nM\\MFP?/Y!02;3>(-0>3,Y=BC#3A6D.U5LV*\\,>Y9KEW/LDD'HO%3.I%2.DU(Y\nM;DOE^!^5XZ14CI-2.3:\\71;WWQGV/,-F<R9E<]R6S?%M-L>^[=AL3OLV;#:G\nM?7>Q;\\N>9=CE#+M=%_LV['F&/6:,?]<Q[CHV4->9S&#;O.]X]AW/ON/9CAUD\nMT&0*F[2EL&W;@SSM02,I;%OW)WOY$Y,U2*KN++;;LMA.RF+;#S)(*\\]N]8_&\nMMF>W\\NQ7GOUJ)(]MSW[EV;.,E<B>E,BV9\\_:363;D&W81'9S>]A((MO6\\K'N\nM/+9=V[!Y[)/-0*0[ D7Q:+:WT6B_<FP\\6JE\\0#8\"T<E&(.+:X=S9XRQ[G*5=\nMSEXV; Z[99]SO>0Y:W0Z1WN=>QLVB]V['9O%WI;%]D@6V]YLPRYG!G*Y>\"2&\nMY_FRYTWFL>TM6S:/W;SG&=H&0)>K9_C(D:8/*FG<)5UO5O*-Z25+!\"CIV1Y \nMZ\"V? KA!OP/]O\"CJ4W!.GP*(Z9K)5)\\\"J)8%*@\\0 [X<H)H7A?K98-E\\\"B\"A\nM*&+_0J5\"(\"PI%0 RT &504LK)DJ%BA5!6/28;,[BF,S3[F.\"K51H':5\"W*H,\nM2ZG@%E@F5U J+%A:72T<,M\\4;;.B7\"+5N?Q;J0 VK%(!R&/.[(5*!;2\"=BD5\nMT$#VME*A690*7*5@P0IK242I@ E&ZEB&.Y)<$:)4 %ASHMF4\"NFN5'Q;J?BV\nM4('J%/I/I_B?3G%2G4+:ZA0R6:?XMD[Q;9WBVSJ%3-8I:\".-XE\"&G4JB6*90\nM]S;L<AK%,J5[&_8\\PY8I2%N9 MY6IL\"ELA6*90J=+%-LVX8]R[,^B11-%BF6\nM*%(9;G5;HKB[1\"%RU:\\\\V[(E2L^>Y=PBQ:4L6Z+0D1+%CK9E2Q0I%&K:R]HJ\nM%!8HG5NL6J]V93OV+,?6J]2XO[75JRQ7MY6KK%8[=SGGEJM6J]3QDNE<R>M<\nM>YUK&[9:19*J5:*3K%795)YG;3MV*\\]^I5>M5)')2I4L4:KP 0]]*N &3/JV\nM/I6&-&R?JI(^%1#+-9.E/A50)(A]!V0MT#G ,I^*!@L01K\"#>0#0>#X5L#85\nMW40$MDW%K0-(#'K4I@*L\\()E>4PCQ<=4*A_S:XQ$RJ I\"QKAFS:5'!-9[%B#\nMM-MER:K)\\*8#;\"JD!0$>M:S2)A.UJ32]JSFO365'?,*P=]A4>!:W8IN*52V;\nM\"C&W;*KFJ79JF\\HW[7,6FPH]X2GF 4TA2\"Q9-E5';2HQ_8* 3-K85/@Q=V;!\nM5\"YAO40%4Q\\>\"Z9'+<.SV%30FS85F&#84?%P<Z+Q;*I=JKJ[5'?74U\"3>J1)\nMA8LI8\"--JMN:5+<54TA;DPIO\"P4@+A6+*6#V;=KO#%M,H3[3'M4N]5^7ZK\\N\nMU7]=JO^Z5.+9ANU2=W>I]K0-6TRA+E5U7:KKBBFDN$VU@.!4V;44R^ANU=FG\nMHH-<JFTJ=JDTNTL%3^I242&EGNYDMWTJW+8-6TGIVL\\,.YI3E;4\\S=]V[%F.\nM[501ZS9LFOZVD@*WM*VJE13J>+ER.HK-*O^34MBM]BCVJG:KV[I5M!Q)MUT]\nMV:YRN7:6_6ZRF@)NR)Y7W*$0-04G55/8HE227=*;;=@692Z+0D:**? !U3P*\nMX 8!#[SS0%*/@D=Z%$ DUTR2>BF \".RE>+8'$KY-2[&8<IM'0<=Y%,\"6^K9M\nM6#>.PC$Y\"IJ6HY T' 503$O\"\"Q;'.O, DH*AJC@*!3)$I> L5 J\\-!*22U,I\nMZ&J^SGFI%&AZA$&H%/%E9\"',(\"!(''Q Y #!.0HT+Y4\"/H^C0(&ZJ!2<&@0)\nM1&0JA3D*3<-1T#0<!5T\\@*. Y:50H!P%:,&P-)JA6>!$%HQP%(!) Y#!!1]'\nMI3\"3@C&08%0*#<M2/)*E@)-,9XG-4OR7I?@O2_%?*H7P+-,4LY0C60JQ;X)B\nME@+YQZ40^S;L>8;-4MK;=3IS*>0VET(FLQ1R&P();MN#PD(@X2-9\"B,@Z4@$\nM)$F,@ 0/2Z>0L#S%;7F*)R,@X3F)BMFZA]4E*B0L47%.HF*N[&5U:0HQ[64Y\nMZ12F*5F*=K,4)V8ICLVG$.?^YBE_<^YO.4D*RE$Z=SGG+A>;3W%=BN+)?(K]\nM>YUKKW/M=?Z];B2?0G+R*;9EOZO+IS@I%HJX]SQ;>YZA/\"\\QGT)&(J'@? K,\nMJ]Y:P*L\"7M#_0(0!7I5]4+CJ@#<)O\"J@MT,:O+=7!;:W0.T!:PN$]JJ \">!5\nM0021JM06DI[.LXY(H13@P8 5 PX.Z%! \\#X''AS8'2#3 ,'+#Y!\\A6,;EFP)\nM!ELAVP^T6_#6 ]8=^%P@7X'/@AVSP+ \"*MBF'_3/IF\\]H%GY#-OV*;I]W;B3\nMT^0%O,O5AQFVZN4-D[N&.=H R[+U,(K94VU3V3HH*3NN[6E%6W'/DM:#RO;/\nM 8*UPK2GV-JVTD]AM.5A%-LVU:T5BN:?NG9R\\9;4@\\+V9\\_^J=C^+/=ZH-^F\nM7MZX?4N0E4FR.UBV9&4RMZ?XLE<X=B9]N[P_HY_MF073Y-+LF(+)0>46K,^F\nMQ()AUT7[NB9Q/E59W!*,/TNS!>,5@HDP4<%8?U&B@M5:E-CK\\%FO [A![@._\nMO4CJ=?#4 16]#J#.>QV O%M@.))7%UW-BT2]#@!,CR1JARJ21GJBU0Z=XHQ6\nMK14VSVH'D+K8YA2&:07[@<=Q3,4NHG8XK2AXJR]P/E_@1;8YK;%MLZ5V8&*+\nMWE7LNUZ+Q:ZLEA0OHG98XE\"U0^\\Z7)<W^:QVP'ZJ'7;Y^NF,7J3?R6T3M4,5\nM3=4.R&%JA_4MM8/#^/9/G\\<')3N,<4L>S6-Z?@\"U0VT]FMIADUFP1\"7!B#A/\nM:TDL6&H'*QU$L/I(=!9,AZD==D68VH&%$4S4#F#-B:H]R(\"O?@=P@[.TW L&\nMB>EW /'=[P!D8!NA/\"QPW.\\  -@=DD(5G,F3>)TKNK!81&V>=LLF@L%<%]SN\nM($Y':5W!PX2.?4&9O+[S67:M UI5BV1S!XV0TQK;VA73[A!-T\")U8$?03Y?,\nMCGNJX*U5Y0<\"D07+[FF%-/!GH^K6)H_M#LQ9NNMR+'2H,>Y@=Z\">IJTEV^[@\nM:\";/:>T.YV,1/%_L6&MHBMWA#KKR3^VV.U239'=H:TGB%>ZRW5%KNX-J'41F\nM**TS6S\"5+\\&2&[([B,2&&9,6V1UH3&&VNF\"\"I=8@IH1TD\"1W$(L\\H*O7 =S \nM@=S6 PN)ZG4 T=WK *1>./: R=[<1P< \\$RY#@*DB^N '>0Z@&C-=<P1Z0.$\nMR)P@ $NF-9*E\\C\"BR!V =/0ZD [G.K0\\.[)A<:@4Q*! NK@.@I/40;JOLU5N\nMS75 B:*X#DS\\R%P'*IE2122:I VD4W]6!U,VUX$=Y#O,=<24Q74@GVUM+%U<\nMA[9VM 4CEB2VB+D.?H 3X4 ZV# @'3PMQF#!%$C'7 >PY46)?:)N^8$!-[AR\nM()%/A [JY0<&Q'S-9*X?F/SV.L\"F<M(!30O$#Y#.)Z+Q I0)D\"> XC,$V^LH\nMFM>!U!H6KMFA:#CGL67EYF&&;MFT+-FT==ND(LFMM9,H \\0=('C4 AD.! V0\nM0+.3#HA0P#5--4\"V!(,9+ZO\"\"U8^/L0\"V0K$DFS'2F3844U;GJ>T[$A&T[+G\nM,&S!,WO+R0L$+!#N0!B%5+G#DX =2-E.KVT6W-E*)=HA'3N\\J:Q8V=3;LT*B\nMH@,)=F9C<5+C)(*A'<'6+'A:[XZAC,Z,!;+F@1W;]C0'8NDFX1W1J?\"N8VG;\nMT57;\\$\"\"[#\"V.8PSLROC\"+IV-&<Y@:5L>0S)UK><V88;RH:LW$3?$?0[GS!;\nML'3/ILD6C),[DBWC?,8M6'EER9+\"SJ24RBV8AK$EV[,$(YZGDK<%4W5)L$*Z\nMVR$%HQ%$Y<R\"B2U1M1\\-?# :V'?1P-X!4V8)CP9V;32P+5XTL*# VT.!W1X*\nM[/908+>' AOIA )_!P5V7RBP^T.!'1<*[*!08/^% OLT#-A%#+W.>ABPH\\. \nMG1\\&;*,;!OQ& !APG14&W.E& 0^, G8(3SSH@^N#RJ. /1\\%[.@88-N. 9X=\nM ^PS8'NK[!!@QX8 NX'EKZXC@&W9KRQ[U@GC9QGWK$;^#XL/ '9G +\"? X ]\nM& #L^OY^S%[+)7L. ?9X\"+!M>YEM+X. +K<L/1[PLA0!0, ?6][L0H!GSRR'\nM 2]N>;0#**&C..JT%;XZS5-G67:Y;+Z\\W+8MAG<S' I\\.Q38CO8W1_N;+_N;\nMN9\\*YT@.EQ\\,;$=>;IPQ10,W))=S' W<_W+E7!T.W/)3Z8Q5JG<^F6%_L^QS\nMAHT ^A\\!9.=>YVROBX\\ LJ/=KCH\"R.D10$;JGF>I\"*\".(X &,?1Y$'TKRT8 \nMM;[=O!1^(@[G4P$ \"OA4NO- : \\;LE>B]; !55XS*>M3R7&?\"JQM@=0#3A>X\nM,<##1C8&:.+U!U#\\A&#[5'WSJ2 (:H/ZF;N&BR91'0IS0':W;UM,;(KH+0:<\nM&P!I0;05S.5- P1?.*!7@?J2;7@OC&'!(.NKM^R\"E=?$M_K'\"BPNT$\"QLQ2X\nM7R#0@5&\"=NL\"FI<]\\.= B0.Y\"AB>L\\\"& LN<NS1*]\\T\"@K5)V#:L]-:=7LBS\nMHWO_V[(%O5&!(P.J\"V+%/G? \\B(%9@$,7P2I!S22\"Q984Z#0@03*MGKYIX)I\nM\"U6QK2N6YLQ8VR\\-:'Y -^*;]H*IK/CI YKN^QW??-.9W<*544_1Z[)V>E^S\nM9(64;(^O3?YV.E7B+.;B[@4$RUTKJ),%8P/Y8G>V8*I(!=,&BL2\"L:4/TH[:\nM>RY+9L%(>T_[MV#R0S I(DHN(ABUE O<$DRRV)(-Y_H'!9F,-P:Y#=8'Z8ZU\nM&S94G12J^A]4=5N,U;%?>394/1)B]NQVCOW.L^<Y-EH]&:VZ+5KU9+3JI&C5\nM]MW%OKO8=Q?[=NQ7GHU6V[=GMW/L=YX]S[''C)F,4.S?AHU0NMMUVB(4>[9A\nM(Y2>?<?S((-,%:)L\"U%L?BK'ABA'0A1[VI[UJ3M&L>F9#!NC=!ZC'(E1G!2C\nMV'^,TK4-&Z-T/<@LYYYEV[-L>Y;G(&52D.*D(,6.MF&#E+;RL>X@Q=U!BFU[\nMF;'MV+,,&Z0T':.T[6>&'<VWI_G*AOW*L&<9-ESMW=^\\V[%G&;91[RZ'&XE6\nMW12MVKO+-46KMK;+V;+/-<6I]NQUGKT.JYQEV>6 *MMWNZ9 U<;]SK'GV<OS\nM;!VHMI;G>?<\\[Y[G_<B1QNR2MFW8S4J^0<A+5@I0LJ3I7O4CKPJX06.<UJO2\nMO'Z-CKCLH0!BO&8RUJL\"ZFJ!UPR\\\"WA5>#%N%R\"M> O!]JI:YE4!K-\"W;,FX\nM*I?$VDP1IEB/<U7.RU71*%@5!%<%\";>69ICFJAID:\"_D*B8HBF[9JC6(J?H8\nM3#?1%%<%^AA7Y?3NG46Z!27%FB=JIAM:*\"J;EJ^5WK@-;V/?;;@JNHFK0J.[\nM]T*8REP5:(@RK[0]B*L\"IBU7!:;J [DJB<Y5@8HNS7S,7$0P':1(+!AS58AS\nMN2*L@JQL&6\\23 1)602CO42)'%/-AK6,J[H[5[7A)=FJ&S%44U6:E*K\"VU)5\nM3Z:J<*9AGNI6ADU5WZ:J;DM5R4BJ2I)256+;3-54]62J\"D]*54TQS5/=RK\"I\nM:N,FJT[%4]W*L*EJSR:K9JHG,U43#--4,]66]J\"F3-44U:F2$E5BV:W^$572\nMEJBZ*5%U4J+*/!5QM8>-Y*DF:1[6EJ?:TS[F*Y-4LU1JVH9-4D51D=L4E8RD\nMJ,2X#2N<88]S9Y=S;<,FJ-3QDN>L+YG.O]?]HZC$N0V;H:[+4.W8[^HR5%*7\nMH=I=GE><H9*F#-5M&:H=V263,E2RA*'Z#4.UZ38=&3#-HP)N$/? =!\\T]:BX\nMKT<%Q'O-Y*U'!<1J'-T?!N3T0:/%- #VJ+HAV!Y5V3PJ@-!!$Z>E]\"H5K:]2\nMX0OUFN^H5( U:_)9MU(HG$6NL<64SE18RQYDMRQ< DL.4]&%*E&I,-MG.-I9\nM#%M2RJ)26;'<EYATADIEL2J5BB H$$VBT;VS2I5^A56I0$2W&]XDT&U;QYP:\nMJU0DBT4EEK50I8+K6@@*R-(BT8*QN6]5J: 5%(E5*G!'DE=#!*NXIRT8JU1$\nM,*R7>'#!LR$HW$BFDE\"671)$L4Y%M*8M^Y5CSS)LG4HGZU1/UJF^K5.)3-5D\nME0HW;\\M^Y=BS#%NE4O,V['E2U0 *<ENE.KE*)0\"*;@,H9#*>\"G=MRWYEV\"I5\nM>\"J=C*?\"80P;-IX*L>Q9EFW8<\"H=\":<2F2H\\R<>2PJFL4ZFMO6PRF@J_C:;\"\nMI;*GZ: ]K;A4=66I2KS[FW=;-II*M2I%4ZDE6:M:K)9K/I=4K/JV6\"6N#:=:\nMK':T'5NL]N]VQ<6J;>5WGHVF.A.::K%: >5Y8<6JK5NO6JQ2VS9LL0I\\P\"ZO\nM\"KB!%OYOKTJ]T'BD'[ 7&E#G-9.S7A50:PL$'[\"[0 JO\"J\\8P I\\40#%9PBV\nM5U4UKPI@5A6$W^ZS*1@:$5  GMYCV$?%5E6E'5O04I@**S*)4955I1I#I044\nM4)?Y\\X\"7 _Q4F31JTY37L\"N8-8L8^FPV>)-1Y=)B!N>UJFAZ\\41 0<PJW:2-\nMUA:VJM@XCJZ1[/M.^WS3JH*#H0'M;UE5L/16%;I5127''$2RR22S8%@OC9 %\nM%\"2]344%JU^!ET*%+%072Q+-(E#@O51\"%DS-1:M95=\\64$!@H;%155(L-#&J\nM,\"RTQ S+J190Y%01*#1VJDH*A29.%:RM4R50:-S6J<(M;1BT0ZFIUE-I%R0T\nMN%/%DYTJ7$#19*<*G^Q4B8\"\"_;J'90=\"0YTJ]:M>YMJ6[50%@X:8][3L&@K<\nMJ\"J[405J) R:9%=1X,;D=:ZMH=BH=F^O:J/ZMHI\"C*J2&E4X#EK6;!'%K[RJ\nMC>JV1I7<QD&3)4;5;8TJ#\\A:P*<\"  ;PJ32-1^N#ICXG6.-10PO$]U  E1W2\nMX+]]*K#!!=(*MFIY*$ &\\*D@$W'4SXJIZSG,$+JS,Z<?,#SU 3#4%0=:''AQ\nMH&R!P&#R TL*O#KP\\<!2PQZKV^<+= )2%IA?X$Z!I07N$_(\"[PN49YD'1 '2\nM/ A2+G$@A6#;/^- C0-A#KPYX.B3%'N09?_A6[FUP.D\"VRFT!V(<0!)'\\%?'\nMUO]P@<0%JA;86Z#.@2_:+;CG7PO$+3!6TCYQ8'(!0QWA*$\\[X.WU!?N]8.<[\nMD$_8#G&@+43TB@$_!T04[)P%!/__7S  @#_/72\"(8'>$ZHXOV,)ZB@:]0#F\\\nM\\(%7JLR\" 3_H=Z#1 ;J_\\H#LZGK \\)8'?AX(*MB%E-EY#N04[)4'BAXX:@@'\nMG#N02+\"/\"79<47*U \\)JN*HZN>7^888=[\\!CP_ZCWOY7/M!2MZ&^EG5+MJ$\"\nM8@ZW+AUBDFQ=N\"!?&@F=Z3H-V[8LR+-E;.>R>,>B!4FVK)G<;[AK!S'8PS&_\nM;5BY:T&.K2LG,XHN>S;ICV53>Y=)9FWGG>Y26CN(86$'!'<<P-X<\"NYN!W3+\nM'L?<Y59M-ZUBRY[AN_)?2B4*<B^(S5G.X)C34&&QYL.2V2;\"<I!]Y))Y=S(O\nMR@:-A )M:C9HM%\"V=<L02L0^%^36EC)KP@01O$R9,(CI+N,$H>_6R-?3F?LR\nM_![3AK#XXW##SIU[Q](K\\S5QSLPQ34ZM*U9.T].<\"0+/O?IYJ&F9((8.>3Q@\nM?BB:ZJ>@Q<0O2:;,H/R$!/BR1'AV=#)V9.*6M74)PX)8\"8,:YAH.:;A@PA/4\nM-H6/F;XF==-U:P3>:)V*EN!Q%$2=PLJDD>?<>)YJ,*0P5F;1<#N-#O)46[ P\nM\"S5/.]=H6KQER4)-2X<-AF6KIJM,R>6RT5RC54^320*/T$93P2B^QO@Y;J*V\nMA7)%*B)U\\!=2HP1R\\].)A</9&ZY<HGD,:/BF8>9D3WC+]\"79&$'M@M!]:8;R\nM?;RHV[%OR62N>-XV)I^B3EV<K_%XDOF$X?\"7+GC2=%Y71)?BXG+4.\\J$W6B1\nMSK2^T4(@\\/'LFS8E3$4ND=E$%!AG,-6&(ONR8S8?!R[PY9'LG9:] [7NC0FC\nM\\)$SJ+*:5^\"7V\\SRT2!M6!-00LZ8BCT)QM6QLA#14*_'9:1-<&W3V.(#8]0M\nMCB*:).I8Y@.7+D*GCL$1!+;9',D]WBBM)(ZP?=[((HNEUF_'SOEG:Z&L4?+X\nMWCYL:],R>+9U<$17372-6C(4K5VG\"9-Y6O>^'%-L8T*LANB!BC8N4N#J9G1D\nM&_,RPC7DGR%+V2*.H@K#ML\"SH#%SV<S?I'*CS :QQ3S,=I1Y63OJ>8U@?8)L\nM5+\\,G;Y<\"?$6ZP1L%,KD>I^^Y3*)5 !GK2^#DE$SM6D$UJC2176^;(VPACHR\nM1@UUMO<A(_L4R.(F&+6KGUF3\")%59H['QK R:\\10_*58,DR=ABVZ#S(6JKO=\nM>U.&QK5<:7JR+ZKT'BI@SM*&]]R).1-4)>QAW<YEPXBR_0M=2MC#VEFF!%>(\nMLYSIOGD%!NU-7[9]HUUSR\\KT!>[(,BVW+9UATT9)=L[6C1K:Y1R^R^D- \\>@\nM3MB(]!JJ&9%#_P[/GRZ:;-[V!>-[F\\\"@GGW,<[5.3%-,1ZUP7^!L1H\\'E3KT\nMQ1P?ZV99J4K=:P.SG@'8:L?-7 W4PI2J?9LFG+.Q-9O&:F\\XTMJ63=UL-6H,\nM,;:D.!MR_&Y:,ER18T#!;I2D9G2W[2:;FGZ/-;Y'<628[+L7!B,1+@<O&T<9\nM34,:-71ZG,P]JA %%N5N,T \\S]#/W\".-U1[>Q^SA_\"P3EP-^,;Z;D9;;-ZW9\nM,DZ9,2X&CFITB.4M1?0^(KP0]<<<23K@0\"-F8[Q?5%NQ2BDV;$6\"/9KET5\"/\nM1AU'$YW0CH:=HV'G:-AQ*-K#61X.]7#8<3A7.QQU#D>=PU''YS;AR'+X[$P*\nM1?\"_4O,HSVG905C9E+TM7J,@R.&<+^(,6;4(T5#0]@YM5FB1)5!7TT1\\?2D\\\nMU7:[3[)R9!C#BO?09%:;;9*W8?@LM Q6\"&;BLL*LY\\:52Z=K&BJ4KN&G3MT#\nM;5G2J59!A!8+3-W#6N$1<1$;I\\\"-MHAO^P+JVXLJW<.9C.CGHGTSVWX&D2T=\nM\\_812[P.^G)T!1%=Z \\WC92]S(]GX\\*S%UO73.):2*!H+ED$I#5P1HL\"\"(-,\nM\\4P-[*[,]UQ91*+1TV/M+$1;)^Q,Q^\"$A**82K>\\BTBS(1@0[9C^;BH>1I1.\nM;4+[IY5R%4N,\\T(Q-BOY6+Q0ST#338PY'F-A@L88<#;8PI30WF%XIB7+=)GY\nM'DTVPGI//$.*.=-XG&D08D[E%6ZW/1U.D9KG,?[I/N+L;08'6<=7K*/DB&7M\nM4&B^>>US$&SGE-TL;*!9#11P@Y@R%(]1E Q%U2;$H#,E\"=M HUI6W:J&CXG#\nM;HAK5-A *2*;H\\B^+1%J)4IE(UW 6GPQK:_#\\*U9F$)I0Q7=-G2:H!$-'X7Z\nM7$GBVN-16F\"I0N F G!X'W*LH<?#^1K;E['\\)5D\\SM@[P_HZLT4]%C*HTZE)\nMK1#\"MQ0=Z3P2ALHSRQ1EC^$(J@734>8R$/<T.M_;FF4SE#W[#)<;3#-M3N/1\nM,E].1[)EKP')K1UFRK+;R#LL^M@Q--^T]89S@EEIVHVJ67&^R*!9LN?(NJQ:\nM.C7'K$%&N2I]AN\"%=L_U$\"+M0E^^/</U9==XR\\=KC:5-$NE:V:A$3^,5Z_JX\nM=9[KVD@$ZUN.3 S-;^ OAJ+8W2H#'6[Z.>L,A2Y+!0)/@S7'22.<)BOF&UGC\nM,HU-$=SA](5MV6HM6TMJ^@8S$6_/+,IM_':E3(U0JW@6S:S\\%+P84QQ'E#_3\nM$BTHMM9FN,1Q@/73(DWB,?JFL/$<;Y%R)A@&+2':P$*5H^9\"H\".68#.TEV&F\nMX I7S,FC8>8WG*QMG-$Y=)HL?A4P>]8@#<O,B.=@\"TYK1%N_P2*=T^C++)8/\nM&Z2.SWG$Q]2)!Z4QTXG%R)G;V#Q;:>XF\"630&QC#QUA(29H'Q?%YT$$LST#[\nM/'*C@U#5!&*Q4T7?C4*W:)85!>;;')Z:83TZ2%8A?K&PR+ 2;>7L]$:32UZ&\nMR3QHD=KM$?@<)WH9+/\"@1G8'7LA>$:F#;UFFA2!A. /@<][V.E!Q(4B8C@54\nM:J3Y)E= YD(&R]&XVS0T#=E\"\"JD]:3@I<QL6H(TQR'$X<N1\";XB>S$^&LX0I\nM7\"B.Q((5 J1JV[;&I**&Q.\"J\"]=YR%+.B 2W)K30(?H\"><4]G=\"AA1*!E@<]\nM6S-'TT7PHL()+]-& M<$MCG!+O,[3^)#GG0014,/<=)!LHP>4F',.4B#'-*D\nM@T@:>BB-$6F-#S]D<0[RZOB0)1U$M?D0P]$A<H8? J2+P(WX\\T7@1N3Y(FZ#\nMP_-%PL:HS(?0^23\\\"#B?A!_AYI/P@V/S2;R\")9+FB]*Q.:8L9]Z)D=%$9O\\G\nM4Z.)@/DG4Z.)@/DG4T,2$?-/\\)G1%)E_$C;TC<2SGQ*@SF:Q.)$T_X03V&_2\nM1-)\\E;(1:;Y*V<QHJLQ7,1N<F:^\"-52:SU(5(LT%((E>GT2-.4GQ-H%BDU:8\nMZ\")E/LS9Z\"*;P.[11674CID-783-AS$2N@AEVQJAB]8X$>;X9)$T'Z:<$O-C\nM&!^^B)@OTS9\"S)=I&QG$5^5M\\$(^:+,R?!$SGZ8?,>;3]\"/&?)I]A%.4FD_#\nM#VL$S9=)X2U9RKP;(Z.-RDAX-C5N!,R_F1IME$94_B8J2\"-C_HT^@LR_\"1N*\nMX<@($C>1YM\\P/F.*&U'S=<I&-/YURD:,^3IC@ROS=:R&0O-Y>!]IQ#2D\\4DC\nM8CY/.KH+@F: ;IG8B.4Q96\"@J,M^3@9,Y5SS@;#2E&F?DF+Y'!*(8FFZU@VJ\nMF\\_0)I7RD!%+]=,@=LE$FOQ\\ J6;T/E0]K2^6(%01LL !(,T2200^1ZY7(PC\nM8E43,E*@J9,:SV 1\"?.;^1./G+Z&4?DP_40TLD_2<BS_8 R*&B'+]V@)X2,I\nMODBW8=N6F:$8EXAG43I>-'IA );3<,V-YUGQUHX8$WL2JT==30D-%Q\"C2<8L\nM!3SE3XBCWMEAC\">)R;G*L31@W]![>AALAC\\I$39*$V2-B)A@'C3*:,+/9: .\nM0F3+6U@3(/<@\"&H;F!4-,P++,V'C/$RXI3Y&)742)@8EF'][7;_AM,>LF7-/\nMY0&3M^@TC(4EAD[$$7?E,5O42B 6C4&9H !-,GT/XU,=$/&X:!\":QY*\"T#*V\nM1&/8ILR83 $^E M)3KG<6-.K,F';8E]?V)#FH<58_B8TM)R^J)#LR--94&8A\nMS6D3-DQ>[!1XMJ#\\2%F=4'1>&-\"*%\\;16 ).WRGR=-! T7\"L_!CEK%A!+)NP\nM?2#R;,))0*:\"0&E-G3[+X,QOAC3',T\\-16G+.$N:JJ#,&I-]ZNG%SL';SSA-\nM=\"WX$*U/)/F\\1?'8!%LRQ1XS#@+*EF5O\\B3=D\\-CSTFTJC)R(A^CLX9Y,RN \nMM$^[7;/\",G\"8;98:I!D@O.=KK#WFE#9B([GQN2RPN5G<;(1DBB_IMSF_\" 8%\nM!\\@NYV#E01B^T>(@MW81MZRGLV#8VX,P =C13WURMA$=VD1S:!NQH0TBB+,!\nMVM&A#40W 21\"@F*I:[DKMI^JXD'G^#\",C/)XTCW5&62494HJ6T8YV=Q]:IYB\nMCN=:4+!=O(!L)ECLR@-JT%:#L8Y3U9T+%03;!@5*=9.;A.'P>9YFPIB0EK3S\nM-\\*RH<U0Q)GUF>* \",Z0LWR/V<QH#H)JS&F,31\",)6A& 84N@T6^=8H,*L%/\nM.14]@S08*L8W720#0\"UOI)+-45M.EH),QY-+OH;3*3[:,8L:/(PMDUVH8I-I\nMQ04-[LDL=XV!I8BF5)$A>U(WSM&*5*D;V.54*(6R,$Y#P5*[ +&P=8@#L1R \nM:6A$69H$#4C5@C <)@S#9SB@?(9\\Q?2$?A%8#%/9,>L=C'V7,]3!F8;FD3W^\nM0K(9.V%OB\"O@?1G @?A>WFLP.)\\#9@ HH5%A!A<%DQ1_L1FL*_98 D#Y7ADH\nMESYS<BB[)!4*MUCLN FC9],->BB4P=D,XNK>O68@6PRVCQD #97]S3&[N41C\nMY#X<<OLSIA\"C2C\"1+N/,-$G3W!Q4P,UK*H)L372,OH1B$M/836=Q-\" IE1_\\\nM,@#+=DN<M4GETEMC% YO8<R[=*-*[F^V+5L.2L+>9:)3'QN5\"(.0MC,G XWJ\nM5B$!A),A*2QB$OL*(Y@1S0#%CMQCMZ7(?!D:%P?$A,56J:.(XEW*K#&L7?<,\nMV=1<%C\\# ?C<-6BV@2ULCB9+MB%Y&2F7T%OWT P,:+VQ<[@,EL?2Q778G7,\\\nM:[%V,\\3;B.Z;\\B)5#B2BB;&L'+BA,Q=Q\\H8XI RDX0I/O#(U<#,6G#'>4,PW\nM<C)8&:@MLIV!>1K1NZ-%&31(\\\"D:7[%8>9LTBH^Y-VL,-%A39X51,0QLJFW&\nM\\1O)$G(9V@8WC(\\L8K['W^_T2Y0UB\\(3HZWF.1URC$.ZWCW8?F?HLY336$B=\nM;&)OR=0[K)G8KPI5C8J:F=NSI0R\"D$SFV3L%M]Z!V_=(C>C;LZRC0:@CM%8Q\nM6J.([LW4UN!6B7D-H*@D>8?Q4+SJ'MNGQQ!./<%!5)-$4C)5S<BH86(2B51*\nMXBA:L6+?Q+[M_^)K8[F&[%B0*1S482 31 D]1W/Z5%:GE>*IO=XW7=; 5+;Q\nMK^LF8)GDR\\ ^QLT [>8E$9]F4I! E8) 01OB\"S0N UJ(P\"08)JTSI%6,-$'.\nM:1B-@]#':]BC0:1C:ZD13A$?GIMQZ=UF>&8T@=KIQN(&(2N8E$56Y)@A9,*D\nMDFV,Z#,\\W?)1=+*<IDCZF2\\7SF'*I*$UX@.XC5C/Z<\"D5=C4\"D):,'#;86U\"\nMN)F3;ULP>$43-Z@K\\+U0'NTK0U2H0SA?\"J&\"2-D$H^C1JWOX*$6[C#VR=E;[\nM!+L2?0-.66D8WT#S)G%T2]%Y@YTR\"6R:&1Q/@VR!)\\=L39),VTB6AV.C#P,'\nMULTJGV\\I>Q!H]0W!3\\OPIM]\\ X7H9_PC09@#H?\"H<BAVA\"-D[8241<$%Q,>V\nMN87,@!=4.)M0:!%.WY@A*M0)B>%0?Q@UI+64QYC'_MPV^18)/>@1)SV')O Y\nM-($5&Q65A@N);=LSQ#>H\",^@D6% GK\\,*V-I4:9C6$TD;5I1T?;M0:4.[>/Z\nM&H0O)@FM+^JIN**T%<J5H8RL3;[E+TQ<I4J9@7V/FV1@T$U0,$0ODS2B8,^<\nM2;\"/N5F,_J%#ZIP#Q3IHN <*)9FLA'<\\K$H5#I4@6+3GN6;V+F>)TD6G,;/E\nM!<>TJ1!..\"@+!SJ,<!R&T$\"%,38&;IEAX2 1&:LH&.ZP-G,8N$,4#*Q+3#*6\nM04(:ND2N55-^OH\\6479>AIU9,<]C6SD['CE3'X2'D0P:[YQI:V#L&FR>D4?8\nM&[:H,VD2CS0R3R@@RJF'2N.9)LSAY>#-QC:8:#.\"GB,OLT<Y 5P&13P!6@84\nM \"$<:$D7!2BB@28%&**!!CF\"!0D)A#%A!H=\"V.\\I.(9.1.M3(9]0&)'?:!W;\nM''T!&,(8%AB,^#PSBF;CP$H'36VP)!Z\"Q6PX2AP!+TG?0FGJ5%B\\\"P6A\"?D9\nMD<WBOHF.-!Q)B:UD !C96!*(G@>9D]&:JJ9 ESGE0^XS.A0CVYDJZS CL036\nMA$ WX=9>SHRE8JXYGDT@QJ%&,_G4,GG&(TMWZW 3AE4(D38%-ULXU*P4,!Y#\nM7,.P,TKISJ6(Z]P(,5\"1Y%'$\\3)V-D<U:P5QC5I)\\I8]BT-4LBC\\/NT<\"Y0Z\nMUC==,VS92>:'WF8>M!W^>?#UI=4F8G&4>4A&,K>,HW7GI-N5[<)*TCV@UF+M\nMC,L]H710-XG54VX['0MI$MJ0RBK*YUA$B1(V)+-V.A]&TE8SB=<$KR#813,2\nM<T$FA\":*2F^JO1=G)U##V3B19NB/<>\"\\##K[T;IGV#B^-!'<T(YF\"NR:[R6Q\nM3VDSR/<[U?2+9\"Q&$E++C%,X(M)R+TSW&Q+23%, QPB$T 8'F=.EC62.) H9\nM/(O[,!@DBMS>J1L#@YAV.\";S:)1/[.QN/#A&0=RV31RT)\\@4<DN'[IFH0XQ>\nMC&58TA<0/*4L-T'WH@!5B<M0>#*%SGS.GN5$,R_6Q;KR/$2Q%2^I)GDCBYR9\nMM4TD G,6Q).U4;&C*$& #0DB;/&:9:\\#+4(J,/+ 406E!3\"-#744B@8A]^()\nM8(@CHU@F00^,\"2)HTVD8C]6^!8G3\"!+P4S:+]R@R*]Q2B^^!$T@?U_RF[B:4\nM \"((.P.L'9(\"8\"C&%:_(/K-#Z!#$]P !!)-^ [Z\\4O0S:Q+QLMY%HUE6B(IB\nMVLD$71\"&.B7'54I1NIV&PN'D4C!OX1NL]02BZ=DPV'-UFP(RF-7I^G5XE/4 \nM-LR03+D.\\#)AN Y(<P.,K:J;=J&X1&RA7 #YV1V]G ]IK@^71J?S5-!P4U65\nM@1JS?^[<.YOG>^H&P=G=H$UD&0S03'-/2V=M:NY1\"CE//Z8)*C$I\"-)4/QH$\nM/WO+S)*'\"S7]6P!? C!6!(<7(G)]ZIBSAQ,^&B!390)JW+IID&RYCPJFM?T^\nM,%BN6J;A?FVF1,0D84.SZ((]YROFK\"\"=%KUB>( 3?,J63-I*1.G\":\"&^M)F2\nMB:85)PT@X5#XIMR 87QVB386T9J4Z($;7> &G@T_AY*%L &OB\";@6N^(X$3 \nMV>8BI R@.1FP%!?<X2,0+O'YRE; Y\\/;^\" E8Q#MX%]D6C1(>]FV]D'&&G:6\nM5,/5MG79N#0M,W/,H8DX<^X,[R&+.1.-\\HN C-C^A41*V'BF+,N--F*+0\"EH\nM-0LE 3&=@P7@!:!!V^P^U0H\"@NXC$8TFPDL)I\\ C$':!8#\\H \\>+*MW3-B4F\nME-M8MX[HX!)H5C(A1P1(3U.!>AE)8CX@+RJVKAD'8YA(9\"72GV6#BZ-%,<(,\nM(J.RY_<X**KG2A\\,8D9/#<+EA #&3LTDJD81/MU4*K?#YJ3MBEZ&%QJVL!,(\nMO-MU4RZZ4!I@WN1(M<!LP_O8O%\",.5ZH9YSI)LZ4L;Q8RI%M/)?.QF\"OPWBD\nM;)#>,B>,$4L(?)%TV=I\\O#DVL>- :(B&G=(!6**9$5@8:&K'U:K=Z,,P.\"NP\nM=)DU&G,6#SX\\@%I$Y-QB\\F*88[.%+/8(X5^XEG&#$ZAB6KXGLXE6DEX([B#;\nM/*IM0X,YD5BAR!G/\"*;-D&4 81@?A$$ 4_)!.MMD4-19<*>)^B5H$H@[2;%R\nMU\\0N\\]F(F4)M2$)G ]XP1DH X6U LMF 4X@;0F8#0/55S49!:(I'TW)#A@R1\nM-)A9!DF/2)LT,AE!C<)D:NB$KC6HA@1BCU4G!A(QDX2%)FU$ID1RK4'LNLRG\nM!6.!.0@$W@8X4?V\\LNO?YB&'?Q./(%P#@QW*8?.@%@[\"6]ZMZ$0<- R48**)\nMIN,8<-F48 A@@-2 R90-:BII1-R8@V>( -6%]\\P%LRGDFS9;@UO.([%H5C2Z\nM98RAK)G:\\?JR9X]*B0\"M Q4K&Y\\$HU!6WR=+%#1Q1B0( \"DCD&E^H=\\I-Q13\nMF_A@S)G+<8:D S0J\"$0F.1P(R=\"QZ?<H75$H-X!;I[JECRC<EZ!0=^ O3-_,\nMIFX?'D3>U(4Z!3)%%P0O%,5=CI1U3S]&-;AF9_,-M*\"YV+=O*H:[\"0>LA6LN\nM*$;.4;9LH10)PBP0N$,+&*+-3+X&:!8HVJ)9U('^(K4$';$#(=Q! C/M!K%F\nM\\XYH%JR!(CE>!AW1+'\\9^&VP!A+,E'=$L\\0W;%T#*96M:[AF3TM&+B\",D+;.\nM1$_Q[ KK>!SEBW<\\#<V4-P ':HC&IN7TL_RYHJ@\"E@22:XJEL;\\(?!850E4(\nMK\"#,&&=85JBM\";(09K_'G]Q#F2@*@D39QVTTRBWD0.S2-SBMJ+I95H (QP*U\nM7]A7@-?8&ZXL0*\")&7(U,17WD&/J8L,U2!@7A)!X%$QC%H]Z9C'G/&JX;!MK\nMF;J00Y/8>10S\\?.A=*'8TR^2L1Q+,!C:;IN73:TT)HD,([(>A\\W95%>./HTE\nME)<0W25Z0R8P\"!0F(3R>)?!D4:E2GTK5\"2)@6RN4ND6R99)9+1H)O9$?OU.B\nM29U<V(<^;=HTB'+JQ)>\\;1LUV]%I2.;.N$R_,,&MC-:2*$2THG4JU:!#E^I,\nM034A+.M01$>DL ^3-#-%ZI;N\\023_,/\\%CLB\\D6-0I;A>))ZHRQ9<BL(DLZR\nM8@:#&1G9(S#IG2\"?FC5S!K,M'W(7Q8X=&=/ *'<29!>J3]G#H1- B>BS8;K/\nMZ\"@,J> FE(!\\3@/R$=(BL=GD(J0%)ND-%0* 7.2EPM!  );?\"U0;GIK42ICR\nM4CW\\(_0NS=>D*3/&,H^QK#-E+',9UVR9GK$\\S)LY;RQS&M><A@XGS-=@YC.P\nMN8UE1D[?6.8YECF.98YCF>< F\\-8YD&6>0RDF?TOSJJ3+E, RY+SEA0\\%](<\nM*%EV'&,YC/V6XCAC+#.Y.4X9RXJSQC*? 7\"M68#B.,JR90.*XR#+XBW,' =9\nMR5 A,[B?FO8,Z+?,PCK(,<\\AM#_AO,]44U\\MQ\\+[&!M:FEU(#RX,C!&'5M+D\nMT!<>S^<\\(XF<G?$V;T\"9XRR\"BL.AO39RWD@C;[8^Y17/ 66E$=PRQ[&L,9:I\nM+TUD]Z?S-\\\\9I\"E#W=_@KCES(5VS(O.<0^1UACQ-)*2[F4[7/,Z\\B#;S$L\\1\nM=S'/@&)*WV5D4K__FM\\/JS\"\\C&#(.<X0H95*Q \"69,<Z;!?'(T[%$\"::WJ>#\nMH2R4F!*FKW7=(**@RD2'C&3ZI1!D<D^TB\\T#^I:!&TPFBGZ//R%RW$VZX&34\nMLL=(7$-_C[4TRT%DVDJ$68E0,VF-46!T3];$@\"/E.\"\"(?RR\"BO3&LUHNXVA4\nMW Y')<)9C2\"ZJT&Q6!*.U2@>0;Q;4H@(+VVH%XV>D$#--CEO !]1R<165(1R\nMQ<5@+5F$(H$Q:L6Y1XGT\"W3_FL81Q8CT#!.(PY%<B\\&()9@'@**:(!)U3^E%\nMUB%'4:YI8\\?XC+]0(ILZF@ R>9WDRROESZQ)1))5!@5@)@S*&G'\"4._O<1'8\nMC4 <OZ?B1?&LKK0LG_(>.6+.RL8Y3V3.Q-P)6R,_E\\UI&N_W_-DYPC9HLBR=\nM[R\\F#@:M35^L\\,2R,WW!P1++QB*G,VS:*!LV9^M&]5E8OLM1@H'C<W:^U?W;\nM-51S-R)+.!B6K6U?I**-6EQP/,\\ZYCG!)Z8ID6,O0E]$T(AG#RIUB$CRL6Z6\nME:K4O39P]YDVY.1VW,S50\"U,J9H!VL*5[9BH;)I(U>%(:ULV=?,T;K#JC\"TI\nMSH8<OQ/CXHH<XRN[49(H=-9@R+%[K/$]\"QV;7)$-<X+A,=^V8VK24D;3D$;A\nMMB5WCXHML<L:\"&SH9^Z1QCC51.\\W%LT0)B4NL6<O>S:9A3+& E=?&AUB>4L1\nMO5#Z8H4,'#N2FHG^!;,QWB^JK5BE%!NV(L$>S?)HJ$>CCJ.)3FA'P\\[1L',T\nM[#@4[>$L#X=Z..PXG*L=CCJ'H\\[AJ.-SFP2.'3YU)H4B^%\\9LGD.6W:0-91Y\nM6[Q&09##.5_$&;)J$:*AH.T=VJS0(A:1N)H=@NU*89TV,(51#A_&L.(]-)G5\nM9K+I;4HZNW39+(J9H R=&U?.:K*NAPJE:_BI4_= 6Y9TJE40H<4\"4V3\"<_\"(\nM?\"EEG (WVB*^[0NH;R^J= ]G,I4.YYF8MXY88B/E,CJ6>3HY(O3;V4G9R[@4\nM:MP\"_&+KFDE<\\Q5J<*CI $8R:K0H@!!\"ZIG>&^/*;$\"PBCL(>BJ'6>X<95MG\nM=J;*J8?,(!D=@W,P<&G']/L$\"*)\\:A/:/ZV4JUABG!>*L2%TQ0OU##3=Q)CC\nM,18F2$J2P1:F!\")Q$#:1@M&FR498[XEG2#%G&H\\S#>(2O46XW?9T.$5;Q@CY\nM\\J]]Q-G;# ZRCJ]81YUP**Z,ZKR6C&?GE-TL;*!9#11P8]DV%!VC*!F*JDV(\nM06=*$K:!1K60'*IJ#\"5G-\\0U*FR@%)'-463?E@@-(]@J&^D\"UN*+:7T=AF_-\nMPA1*&ZKHMJ'3!(UH^\"C4YTH2UQZ/T@)+%0(W$8##^Y!C.:.#Y6ML7\\;REV3Q\nM.&/O#.OKS!;U6 @*C?E$QN/@7EP&\\SINE!)KB'L:G>]M*F)#V;-9Z%0G19@V\nM>W%9^F.:G$ID+RX7<1G,% ,C>8=%'SNV# @NSM6XR=Q09F)\\CH3G+VP&4XF2\nM=5FU]&QR L-QHZE2!#:Q4OB]VG2,9CSAMV>XONP:;^$)'B9MDDC70F!EPC \"\nM!5A#\\QOXBPU#^7:C&3IB^CDDBI[1XN!^M(5SLF*^D34NT]@4P1U.7]B6K=8^\nMD\\/9@Z*8J7A;4%0OQIS*[?.?0T#)@Z*GX,4^-/6@#(.=35\"L@G$Z$(I\\6J1)\nM/$;?%#:>XRV\"J\\^B@:98A(\"%E:/F0J CEN!UPHV9@BM<,2>/AIG?<+*V<4;G\nMT&FR^\"' OJ9'40W+S(CG8 M.:T1;O\\$B=:(\\B^7#!JGC<W:BU8D'I3'3R3$>\nMD@>UL7FVTMQ-$LB@-S\"&A>)IJD0&Q?%YT$$LST#[/'*C@U 5&'K (RL7X6Z\\\nMIK*BP'R;PU,SK$<'P6#-]<IAQ4=8.3N]T>22EV$R#UH$Q%GW<Q08P0(/:F1W\nMX(7L%9$Z^)9E6@@2AJ.\"V-M>!RHN! G3O<-2KJ/YGJ9!6;0,EJ-QMVEH&K*%\nM%%)[TG!29CN4U?DPD.-PY,B%WA ]F9\\,9PE3N% <B04K!$C5MFV-244-B<%5\nM%Z[SD*6<$0EN36@A7G W.XS*V=J@.1%H88%G:^9HN@A>5#CA9=I(X)K -B?8\nM97[G27S(DPZB:.@A3CI(EM%#*HPY!VF00YIT$$E##S'201H?=LCB'.35\\2%+\nM.HAJ\\R&&HT/D##\\$2!>!&_'GB\\\"-R/-%W :'YXN$C5&9#Z'S2?@1<#X)/\\+-\nM)^$'Q^:3> 5+),T7I6-S3%G.O!,CHXG,_D^F1A,!\\T^F1A,!\\T^FAB0BYI_@\nM,Z,I,O\\D;.@;B6<_)4\"=S6)Q(FG^\"2>PWZ2)I/DJ92/2?)6RF=%4F:]B-C@S\nM7P5KJ#2?I2I$FJ=BJ\\OY)&K,28JW\"12;M,)$%RGS8<Y&%]D$=H\\N*J-VS&SH\nM(FP^C)'012C;U@A=M,:),,<GBZ3Y,.64F!_#^/!%Q'R9MA%BODS;B Y R[P-\nM7L@';5:&+V+FT_0C3@#K1XSY-/L(IR@UGX8?U@B:+Y/\"6[*4>3=&1AN5D?!L\nM:MP(F'\\S-=HHC:C\\35201L;\\&WT$F7\\3-A3#4;MIN(DT_X;Q&5/<B)JO4S:B\nM\\:]3-F+,UQD;7)FO8S44FL_#^T@CIB&-3QH1\\WG2T5T0- -TR\\1&+(\\I P-%\nM7?9SAYSZ<O?D7#%H[;EK*4V9]BDIEL^I@86ET6O=H+KY#&U2*0\\9L50_#6*7\nM3*3)SR=0N@F=#V5/RVDU=TDRW3>CI8'&)BQ#FB82B'R/7\"[&$;&J\"1DIT-1)\nMC6>PB(3YS?R)1TY?PZA\\F'XB&MDG:3F6?S &18V0Y7NTA/\"1%%^DV[!MR\\Q0\nMC$O$LR@=+QJ], #+:;CFQO.L>&M'C(D]B=6CKJ:$A@N(T21CE@*>\\B?$4>_L\nM,,:3Q.1<Y5@:L&_H/3T,-L.?E @;I0FR1D1,, \\:933AYS)0!R&RY2VL\"9![\nM$ 2U#<R*AAF!Y9FP<1XFW%(?HY(Z\"1.#$LR_O:[?<-ICULRYI_* R5MT&L;\"\nM$D,GXHB[\\I@M:B40B\\:@3%\" )IF^A_&I#HAX7#0(S6-)06@96Z(Q;%-F3*8 \nM'\\J%)*=<;JSI59FP;;&O+VQ(\\]!B+'\\3&EI.7U1(=N3I+\"BSD.:T\"1LF+W8*\nM/%M0?J2L3B@Z+PQHQ0OC:\"P!I^\\4>3IHH&@X5GZ,<E:L()9-V#X0>3;A)\"!3\nM0:\"TIDZ?97#F-T.:XYFGAJ*T99PE35509HW)/O7T8N?@[6><)KH6?(C6)Y)\\\nMWJ)X;((MF6*/&0<!9<NR-WF2[LGAL><D6E49.9&/T5G#O)D50-JGW:Y981DX\nMS#9+#=(,$-[S-=8><TH;L9'<^%P6V-PL;C9\",L67]-N<7P2#@@-DEW.P\\B ,\nMWVAQD%N[B%O6TUDP[.U!F #LZ*<^.=N(#FVB.;2-V- &$<39 .WHT :BFP 2\nM(4&QU+7<%=M/5?&@<WP81D9Y/.F>Z@PRRC(EE2VCG&SN/C5/,<=S+2C8+EY \nM-A,L=N4!-6BKP5C'J>K.A0J\";8,\"I;K)3<)P^#Q/,V%,2$O:^1MAV=!F*.+,\nM^DQQ0 1GR%F^QVQF- =!->8TQB8(QA(THX!\"E\\$BWSI%!I7@IYR*GD$:#!7C\nMFRZ2 :\"6-U+)YJ@M)TM!IN/))5_#Z10?[9A%#1[&ELDN5+')M.*\"!O=DEKO&\nMP%)$4ZK(D#VI&^=H1:K4#>QR*I1\"61BGH6\"I78!8V#K$@5@.P#0THBQ-@@:D\nM:D$8#A.&X3,<4#Y#OF)Z0K\\(+(:I[)CU#L:^RQGJX$Q#\\\\@>?R'9C)VP-\\05\nM\\+X,X$!\\+^\\U&)S/ 3, E-\"H,(.+@DF*O]@,UA5[+ &@?*\\,E$N?.3F479(*\nMA5LL=MR$T;/I!CT4RN!L!G%U[UXSD\"T&V\\<,@(;*_N:8W5RB,7(?#KG]&5.(\nM42682)=Q9IJD:6X.*N#F-0UWC[=9D-,1H,T@<SLTH._%8O9W06*-8?\"%Z+/\\\nMFF91.E4U@\\/*)2*ZWKU9RC5+.0<1;YC/F]A;,N4.1P<WHZ5L5%>CI&;H]FR?\nM #M5@:=!7(U-C<QB\\CW+.G!+J1BM(6-H#0JT1!Z1-/L:- BOX=XA)A*OND>)\nM]!@7D\\QP$%7&+J! -G7--&6;(% X0UD<J=0]4W2T8L6^R<WX?_&UB8HA.Q9D\nMRH5U&,@4T6:4U'.T9FQX8_VV.JT4RXVE?M-E#<AEDW:=J@,4ILO'< 6@W<@E\nMERB79U60W).>24$;XPLT+@-:C,\"B\\1G1*B8:SNAI&(V#T,=KV*-!J&-KJ1'*\nM(5#K-J/09=+(L[ ,^LQDNE@I[!\\17BA(-,BC01X-\\C9\"^QI.IFT01,*C8$:;\nMFDS/XO!TS].6'A(9RZ>>M@S[4!\"ZC9V+;LLQ@UB$RR'PKS' VU&H(3B(I10)\nM/RO,TN(UOCF:MK&+PAR+T4'W0L&MKX!1H0[9?<D,!=%+U(2ACU[=DP66PC$D\nMU\\XHCV!7HF^^R9HPOH%+?2<\"3N+X!W8*JMLTVV1/@VQ=E&.&9TEF0F]#64K9\nM! ^&SW+.9)]O(7L0:.4-O QOJJR,#ASH,_Z1(,S-:*#2*\">*%G.B'1@IRT<K\nMB(]ML_/8AI>&.YL!W$R:OO'<7F40\",-A//.9-F$L\"!O8CSFO_;EM9),?:=)S\nM$#J?@]!9L=%):0@(;-N>B9HMT (.A&<*\\=/]2,!E+\"W*= RK\"73+BKDD(W4#\nM/ZC4H7U<7X/P!?546E'9\"B4;RF!JDV_I2TRRC=-2I2!0OL=-4@MX$QX.T4DD\nM#2C8,V<2[&,6(9M_Z) *W#8DD]%P) JJV/$L\"E4X5$=@T9[GFM6[G\"0*%UMT\nM@SA2FM@V9>,D' T\"'!(&. X#')BGVZ;4IH0&ALA8RL%NA[69P[ =@MV.SD[2\nM)=X''8-<HZ;\\?!\\MHNJ\\C#JS8IZ'MG)V/'*F9G@-T_I61L<[AUKS7),@K/$\\\nM Y>P-VQ)9](D'FE4#TN<@X5Q#@8*RR\";*!B&X.DY\\4)[!!0 IHPW @,%!&\";\nM.-\"D !,.!\"D01 .)=B0+<LJ$*R.A%/9[2HZ=$]'Z5 @O9+W$;[R.=8Z^$ P6\nM&(SX/ >19B-B)493+Y;$,[.9@J7$45HR:4/Z%DE3@\"KQ+D0C&2]2<1O<-W$(\nMQA HL94,A1&=)8'H>9 %%QT/B\"$06!:1*?N*;J<HB)C*B\\\"4D50\"6T*?FW!I\nM+X<(C]$)K/'$ J$@TR1?1A#R3#=;AQ?S=9@?2A!I1^.EX5 S4L#'L/ <Q#7<\nMQK%VT8$]3$^XSH(7C=2/'\\4;+V-G$X#%VD%<HU/XGC0+!ZAD4?!]VCDH+'6L\nM;VI S!38Y1[&;0:C;?#/FZ)S:*M-QN(H\\P#T9.YA8JFKG[-N6/8P0+2E&V%M\nM!;*;Z\">83NHDL7OZ)=T\\2\\7FA%]#%4T'(OF=2!AEF[73V0 M;6[&\\\"KQ\"H)=\nM,*,P]Q>!-U%4>%/MPZT38^I[.L8.0IJA/P;$>1ET%AW\\>X8-\\X6)X(9V-%)@\nMUWPOB7U*FS6^WZFF7R1C.C@2Q DL#3T(E>TM8^B&&TW*=]VE#)YNF*X@<[JT\nMD<R10*&!9W$?1D6BR.V=0J%A\"(=Z>33*)W:V]88D)N*V;=Z@/4&FD%M:9,_$\nM'$+T'@S#DI\"^@='/*(O139:C\\%2)RT%<TRENYG,HFVT XL6Z6%>>ARAVX,34\nM)&]DD3.SM@G',6=!/%D;)3F*$@38D\"#\"%J]9]CK0(J0\"(P\\<55!: ,/8L\"\".\nM0AG0Y%X\\A&B*+$=&I4R\"'A@<1M\"FTS >@T3)5QI! GY*9O$>16:%VVGQ/7 \"\nM:9',;^IN0@D@@K SP**1%EJ6,(UQ\":_(/K-#S)JU10,$$,P# I0ZD\"E! <5\\\nM((#A21LD\"&\"XXPM$.]Z\"!@&:%'#\\08#5!6HDB!!@9()V#28$N'/ \\0J*^4* \nM1P4<SQ @_8&9\"S8$V%S \\0[JG6+!AP\"=#MQ)$\") =$%[A*FYA*_Y1(\"$ ^+Y\nM'F#G@+8'5@0H/*!#@A:*[?H+01_0+T&9 *J'37!&L7,O2&-M1WBP)L#/ ^L3\nMM+'/;\\3-<8SSC0!C!Q0[D\"- OP(-#RPQM;L78&1;LN<$V'=@WH(Z 83?]^\".\nM>MN?)T =3YF:B3AS4$L#! H    ! .1Y\"QG%.9*0Y    /@    ,    3T5-\nM4T5455 N24Y&.T\" \"$+FC9@R(*\"\\F4-GRA@Y:>#0 4$$HITR<EB D%*&39DP\nM<Q#&T\"BD#)TP(*Q@G)/FC1L0-U[$D\"$S1XX8#10$!)'$#<,P;-B$H=/R91HW\nM9M[(:3.TJ,:D<D ,>>*$BI0G3%P4P5(DY\\XF;\\BD,9.F#!D04$'0*<,0A(LK\nM4(B@3>-QH L03,K8R>,UIU\\%6UJZ(*,WS9@R77+:T %ERA I2:!0<4%$BA46\nMB]GHD3/3!HRW<5F((#(T#!PY8>N,H3,'KQ8I(#K# &&'Q@T7,$1H'%W$2I(A\nM1:9 *3(DB9'?(OX\"4$L! @H \"@    8 \\DH+&6P>WN!P!0  :Q0   L     \nM       @    \\#$  $Q:4C$R-C N5U!$4$L! @H \"@    8 0!EJ&$ER## M\nMMP$ $,8$  L            @    B3<  %!30U))4%0N1%)64$L! @H \"@  \nM  $ Y'D+&<4YDI#D    ^     P          0 @    W^X! $]%35-%5%50\n:+DE.1E!+!08      P # *P   #M[P$     \n \nend\n---------- cut here ----------\n-- \n    _--_|\\    Clive Mitchell               ph: +61 9 4916384\n   /      \\   Regional Network Systems     mitchell@telecomwa.oz.au\n>> *_.--._/   Perth , Western Australia\n         v\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3971, "properties": {"category": "sci.crypt", "text": "From: davidc@montagar.com (David L. Cathey)\nSubject: Re: The [secret] source of that announcement\nOrganization: Montagar Software Concepts, Plano TX\nLines: 19\n\nIn article <gradyC5uAMw.BnG@netcom.com>, grady@netcom.com (1016/2EF221) writes:\n> Maybe we should start a newsgroup for the distribution of encrypted \n> posts intended of members of affinity groups with a shared private\n> key.  For example at the coming up Cypherpunks meeting, a private\n> key corresponding to that particular meeting could be passed out\n> by a moderator.  Minutes, followup comments to other participants,\n> and so on could be posted to the alt.encrypted group for the use\n> of the people who attended. Communiques intended by the group for\n> non-attendees could of course just be signed using the private key\n> but otherwises not encrypted.\n\n\tI like it.  PGP would be useful, I guess.  Although I don't have\na working version for VMS yet... :-(\n\n> grady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \nDavid L. Cathey\t\t                |INET: davidc@montagar.com\nMontagar Software Concepts              |UUCP: ...!montagar!davidc\nP. O. Box 260772, Plano TX  75026-0772  |Fone: (214)-618-2117\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3972, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: Paul on weekly collections\nLines: 15\n\nMark Gregory Foster writes (concerning 1 Corinthians 16:2):\n\n > The idea was introduced to me once that the reason Paul wanted\n > the Corinthians to lay aside money for the collection on the\n > first day of the week was that this was when they received their\n > weekly wages.\n\nBut the ancient Romans did not observe a seven-day week.  Unless a\nman was working for a Jewish employer, he is unlikely to have been\npaid on the first day of a seven-day week. Nor would a Jewish\nemployer have kept his wages over the week-end (see Lev 19:13; Dt\n24:15).\n\n Yours,\n James Kiefer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3973, "properties": {"category": "comp.sys.mac.hardware", "text": "From: aep@world.std.com (Andrew E Page)\nSubject: Using SetWUTime() with a PB170\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 16\n\n\n   I seem to be having some trouble with this...\n\n   I can get the mac to go to sleep, but I can't make seem to \nmake it wake up with SetWUTime().  I am aware of the error in\nthe header files and IM VI.  I am setting the WU time to be\nabout two minutes, then putting the mac to sleep, but it doesn't\nwakeup at the appointed time....\n\n   Does it require a call to SystemTask in order to make sure that\neverything is setup?\n\n-- \nAndrew E. Page   (Warrior Poet) |   Decision and Effort The Archer and Arrow\nMac Consultant                  |     The difference between what we are\nMacintosh and DSP Technology    |           and what we want to be.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3974, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: 2.5 million Muslims perished of butchery at the hands of Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 92\n\nIn article <1993Apr25.015551.23259@husc3.harvard.edu> verbit@brauer.harvard.edu (Mikhail S. Verbitsky) writes:\n\n>\tActually, Jarmo is a permanent resident of my killfile\n\nAnyone care to speculate on this? I'll let the rest of the net judge\nthis on its own merits. Between 1914 and 1920, 2.5 million Turks perished \nof butchery at the hands of Armenians. The genocide involved not only \nthe killing of innocents but their forcible deportation from the Russian \nArmenia. They were persecuted, banished, and slaughtered while much of \nOttoman Army was engaged in World War I. The Genocide Treaty defines \ngenocide as acting with a \n\n  'specific intent to destroy, in whole or in substantial part, a \n   national, ethnic, racial or religious group.' \n\nHistory shows that the x-Soviet Armenian Government intended to eradicate \nthe Muslim population. 2.5 million Turks and Kurds were exterminated by the \nArmenians. International diplomats in Ottoman Empire at the time - including \nU.S. Ambassador Bristol - denounced the x-Soviet Armenian Government's policy \nas a massacre of the Kurds, Turks, and Tartars. The blood-thirsty leaders of \nthe x-Soviet Armenian Government at the time personally involved in the \nextermination of the Muslims. The Turkish genocide museums in Turkiye honor \nthose who died during the Turkish massacres perpetrated by the Armenians. \n\nThe eyewitness accounts and the historical documents established,\nbeyond any doubt, that the massacres against the Muslim people\nduring the war were planned and premeditated. The aim of the policy\nwas clearly the extermination of all Turks in x-Soviet Armenian \nterritories.\n\nThe Muslims of Van, Bitlis, Mus, Erzurum and Erzincan districts and\ntheir wives and children have been taken to the mountains and killed.\nThe massacres in Trabzon, Tercan, Yozgat and Adana were organized and\nperpetrated by the blood-thirsty leaders of the x-Soviet Armenian \nGovernment.\n\nThe principal organizers of the slaughter of innocent Muslims were\nDro, Antranik, Armen Garo, Hamarosp, Daro Pastirmadjian, Keri,\nKarakin, Haig Pajise-liantz and Silikian.\n\nSource: \"Bristol Papers\", General Correspondence: Container #32 - Bristol\n         to Bradley Letter of September 14, 1920.\n\n\"I have it from absolute first-hand information that the Armenians in \n the Caucasus attacked Tartar (Turkish) villages that are utterly \n defenseless and bombarded these villages with artillery and they murder\n the inhabitants, pillage the village and often burn the village.\"\n\n\nSources: (The Ottoman State, the Ministry of War), \"Islam Ahalinin \nDucar Olduklari Mezalim Hakkinda Vesaike Mustenid Malumat,\" (Istanbul, 1918). \nThe French version: \"Documents Relatifs aux Atrocites Commises par les Armeniens\nsur la Population Musulmane,\" (Istanbul, 1919). In the Latin script: H. K.\nTurkozu, ed., \"Osmanli ve Sovyet Belgeleriyle Ermeni Mezalimi,\" (Ankara,\n1982). In addition: Z. Basar, ed., \"Ermenilerden Gorduklerimiz,\" (Ankara,\n1974) and, edited by the same author, \"Ermeniler Hakkinda Makaleler -\nDerlemeler,\" (Ankara, 1978). \"Askeri Tarih Belgeleri ...,\" Vol. 32, 83\n(December 1983), document numbered 1881.\n\"Askeri Tarih Belgeleri ....,\" Vol. 31, 81 (December 1982), document\n numbered 1869.\n\n\"Those who were capable of fighting were taken away at the very beginning\n with the excuse of forced labor in road construction, they were taken\n in the direction of Sarikamis and annihilated. When the Russian army\n withdrew, a part of the remaining people was destroyed in Armenian\n massacres and cruelties: they were thrown into wells, they were locked\n in houses and burned down, they were killed with bayonets and swords, in places\n selected as butchering spots, their bellies were torn open, their lungs\n were pulled out, and girls and women were hanged by their hair after\n being subjected to every conceivable abominable act. A very small part \n of the people who were spared these abominations far worse than the\n cruelty of the inquisition resembled living dead and were suffering\n from temporary insanity because of the dire poverty they had lived\n in and because of the frightful experiences they had been subjected to.\n Including women and children, such persons discovered so far do not\n exceed one thousand five hundred in Erzincan and thirty thousand in\n Erzurum. All the fields in Erzincan and Erzurum are untilled, everything\n that the people had has been taken away from them, and we found them\n in a destitute situation. At the present time, the people are subsisting\n on some food they obtained, impelled by starvation, from Russian storages\n left behind after their occupation of this area.\"\n \nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3975, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: DESTROYING ETHNIC IDENTITY: TURKS OF GREECE (& Macedonians...)\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 145\n\nIn article <C5yC1K.F84@news.cso.uiuc.edu> ptg2351@uxa.cso.uiuc.edu (Panos Tamamidis ) writes:\n\n>>        Sure your memory is weak. \n>>        Let me refresh your memory (if that's not to late):\n\n>>        First of all: it is called ISTANBUL. \n>>        Let me even spell it for you: I S T A N B U L\n\n>    When my grandfather came in Greece, the official name of the city was\n>    Constantinoupolis.  \n\nAre you related to 'Arromdian' of ASALA/SDPA/ARF Terrorism and Revisionism \nTriangle?\n\n>Now, read carefully the following, and then speak:\n>The recent Helsinki Watch 78 page report, Broken Promises: Torture and\n\nDitto.\n\n|1|\n\nHELSINKI WATCH: \"PROBLEMS OF TURKS IN WESTERN THRACE CONTINUE\"\n\nAnkara (A.A)  In a 15-page report  of the \"Helsinki Watch\"  it is\nstated that the Turkish minority in Western Thrace is still faced\nwith problems and stipulated that the discriminatory policy being\nimplemented by the Greek Government be brought to an end.\n\nThe report on Western Thrace emphasized that the Greek government\nshould grant  social and political  rights to all the  members of\nminorities that are equal to  those enjoyed by Greek citizens and\nin addition  they must  recognize the  existence of  the \"Turkish\nMinority\" in Western Thrace and  grant them the right to identify\nthemselves as 'Turks'.\n\nNEWSPOT, May 1992\n\n|2|\n\nGREECE ISOLATES WEST THRACE TURKS\n\nThe  Xanthi independent  MP Ahmet  Faikoglu said  that the  Greek\nstate is trying to cut all  contacts and relations of the Turkish\nminority with Turkey.\n\nPointing out that while the  Greek minority living in Istanbul is\ncalled \"Greek\"  by ethnic  definition, only  the religion  of the\nminority in  Western Thrace is  considered. In an  interview with\nthe Greek  newspaper \"Ethnos\" he said:  \"I am a Greek  citizen of\nTurkish origin. The individuals of the minority living in Western\nTrace are also Turkish.\"\n\nEmphasizing  the education  problem for  the Turkish  minority in\nWestern  Thrace  Faikoglu said  that  according  to an  agreement\nsigned in 1951 Greece must distribute textbooks printed in Turkey\nin Turkish minority schools in Western Thrace.\n\nRecalling his activities and those of Komotini independent MP Dr.\nSadIk  Ahmet  to  defend  the rights  of  the  Turkish  minority,\nFaikoglu said.  \"In fact we  helped Greece. Because  we prevented\nGreece, the cradle of democracy, from losing face before European\ncountries by forcing the Greek  government to recognize our legal\nrights.\"\n\nOn Turco-Greek relations, he pointed  out that both countries are\npredestined  to live  in  peace for  geographical and  historical\nreasons and said  that Turkey and Greece must  resist the foreign\npowers  who  are  trying  to   create  a  rift  between  them  by\ncooperating, adding  that in  Turkey he  observed that  there was\nwill to improve relations with Greece.\n\nNEWSPOT, January 1993\n\n|3|\n\nMACEDONIAN HUMAN RIGHTS ACTIVISTS TO FACE TRIAL IN GREECE.\n\nTwo ethnic Macedonian  human rights activists will  face trial in\nAthens for alleged crimes against the Greek state, according to a\nCourt Summons (No. 5445) obtained by MILS.\n\n  Hristos  Sideropoulos and  Tashko Bulev  (or Anastasios  Bulis)\nhave been charged under Greek criminal law for making comments in\nan Athenian magazine.\n\n  Sideropoulos and  Bulev gave an  interview to the  Greek weekly\nmagazine  \"ENA\"  on  March  11,  1992,  and  said  that  they  as\nMacedonians were  denied basic human  rights in Greece  and would\nfield  an ethnic  Macedonian  candidate for  the up-coming  Greek\ngeneral election.\n\n  Bulev said in the interview: \"I am not Greek, I am Macedonian.\"\nSideropoulos said  in the  article that \"Greece  should recognise\nMacedonia.  The  allegations  regarding  territorial  aspirations\nagainst  Greece are  tales... We  are in  a panic  to secure  the\nborder, at  a time when the  borders and barriers within  the EEC\nare falling.\"\n\n  The  main  charge  against  the two,  according  to  the  court\nsummons,  was   that  \"they  have   spread...intentionally  false\ninformation  which  might  create   unrest  and  fear  among  the\ncitizens,  and  might affect  the  public  security or  harm  the\ninternational interests of the country (Greece).\"\n\n  The  Greek  state  does  not   recognise  the  existence  of  a\nMacedonian ethnicity. There are believed to be between 350,000 to\n1,000,000  ethnic  Macedonians   living  within  Greece,  largely\nconcentrated in the north. It is  a crime against the Greek state\nif anyone declares themselves Macedonian.\n\n  In  1913  Greece,   Serbia-Yugoslavia  and  Bulgaria  partioned\nMacedonia into three  pieces. In 1919 Albania  took 50 Macedonian\nvillages. The part under  Serbo-Yugoslav occupation broke away in\n1991  as the  independent Republic  of Macedonia.  There are  1.5\nmillion Macedonians in the Republic; 500,000 in Bulgaria; 150,000\nin Albania; and 300,000 in Serbia proper.\n\n  Sideropoulos  has been  a long  time campaigner  for Macedonian\nhuman rights in  Greece, and lost his job as  a forestry worker a\nfew years ago.  He was even exiled to an  obscure Greek island in\nthe mediteranean. Only pressure from Amnesty International forced\nthe Greek government  to allow him to return to  his home town of\nFlorina (Lerin) in Northern  Greece (Aegean Macedonia), where the\nmajority of ethnic Macedonians live.\n\n  Balkan watchers see the Sideropoulos  affair as a show trial in\nwhich  Greece is  desperate to  clamp down  on internal  dissent,\nespecially  when it  comes to  the issue  of recognition  for its\nnorthern neighbour, the Republic of Macedonia.\n\n  Last year the  State Department of the  United States condemned\nGreece for its bad treatment of ethnic Macedonians and Turks (who\nlargely live in Western Thrace). But it remains to be seen if the\nUS government  will do anything until  the Presidential elections\nare over.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3976, "properties": {"category": "rec.motorcycles", "text": "From: dana@lando.la.locus.com (Dana H. Myers)\nSubject: What is a squid? (was Re: Riceburner Respect)\nOrganization: Locus Computing Corporation, Los Angeles, California\nLines: 16\n\nIn article <C5qqxp.IE1@cbmvax.cbm.commodore.com> hartzler@cbmvax.cbm.commodore.com (Jerry Hartzler - CATS) writes:\n>In article <1993Apr15.192558.3314@icomsim.com> mmanning@icomsim.com (Michael Manning) writes:\n>\n>>duck. Squids don't wave, or return waves ever, even to each\n>       ^^^^^^\n>    excuse me for being an ignoramus, but what are these.\n\n\nSquids are everybody but me and you.  Chris Behanna is especially a squid.\n\n\n-- \n * Dana H. Myers KK6JQ \t\t| Views expressed here are\t*\n * (310) 337-5136 \t\t| mine and do not necessarily\t*\n * dana@locus.com  DoD #466 \t| reflect those of my employer\t*\n * This Extra supports the abolition of the 13 and 20 WPM tests *\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3977, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 22\n\nstrnlght@netcom.com (David Sternlight) writes:\n\n> Nothing I'm doing would be of the slightest interest to President Nixon .\n\nA typical example of seep-minded thinking. We all know that David\nSternlight is a jerk, but I'm afraid that in this case 90% of the\npopulation will think like him. Realize it guys - NSA, Dorothy\nDenning, and the US government have already won the battle...\n\nUnless... unless you succeed to wake up the people... but nah, that's\ntoo unlikely... The events are happening too fast, cryptography is a\ntoo sophisticated issue, and almost nobody cares anyway... A few\nthousand of net.readers won't make the difference, if millions are\ncaught asleep... Too sad... :-(((((\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3978, "properties": {"category": "talk.politics.mideast", "text": "From: cl056@cleveland.Freenet.Edu (Hamaza H. Salah)\nSubject: Re: Israeli Terrorism\nReply-To: cl056@cleveland.Freenet.Edu (Hamaza H. Salah)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 30\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, ai843@yfn.ysu.edu (Ishaq S. Azzam) says:\n\n>\n>In a previous article, bc744@cleveland.Freenet.Edu (Mark Ira Kaufman) says:\n>\n>>\n>>   How many of you readers know anything about Jews living in the\n>>Arab countries?  How many of you know if Jews still live in these\n>>countries?  How many of you know what the circumstances of Arabic\n>>Jews leaving their homelands were?  Just curious.\n>>\n>>\n>>\n>\n>I thought there are no jews live in Arab countries, didn't hey move\n>all to Palestine?  \"Only the happy jews did not move!!\"\n>\n>Would you tell me which Arab country is prohipiting the Jews from\n>migrating to Palestine?\n\nthe last arab country was syria. but not all of them\nmigrated due to the jewish state economical and \nsecurital dilemma!\n\n>\n-- \n                  ___________________ cl056@cleveland.Freenet.Edu _____________\n                 (______   _  |   _  |_    \n_____ H A M Z A ________) |-| |_ |-| | |    foo i.e. most foo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3979, "properties": {"category": "sci.electronics", "text": "From: u934132@student.canberra.edu.au (Ogawa / Taro Stephen (ISE))\nSubject: Help wanted\nSummary: Decoders \nOrganization: University of Canberra\nLines: 9\n\nCould someone please tell me if a 1/4 decoder is the same as a 1 to 4\ndemultiplexer. I know how to link 2 of these to get an 8 output circuit,\nbut how do I link 5 of these to make a 1/16 multiplexer. Sorry if this\nseems like a lame question, but I'm only a newbie to electronics, and I\nhave to do this circuit. Please make any mail as droolproof as possible.\n\n\t\t\t\t Thanx,\n\t\t\t\t\tTaro Ogawa\n\t\t\t\t\t(u934132@student.canberra.edu.au)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3980, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: [lds] Rick's reply\nFrom: <LIBRBA@BYUVM.BITNET>\nOrganization: Brigham Young University\nLines: 95\n\nIn article <C5KDzK.497@acsu.buffalo.edu>, psyrobtw@ubvmsd.cc.buffalo.edu (Robert\nWeiss) says:\n>     Just briefly, on something that you mentioned in passing. You refer to\n>     differing interpretations of \"create,\" and say that many Christians may\n>     not agree. So what? That is really irrelevant. We do not base our faith\n>     on how many people think one way or another, do we? The bottom line is\n>     truth, regardless of popularity of opinions.\n\n   I'm sorry, I thought we were discussing heresy.  I assumed that heresy\nmeant a departure from orthodoxy, in which case generally accepted belief is\nindeed an important issue.  In this case, the definition of the word \"create\"\nis of great importance, since creation is the issue being discussed.\n\n>\n>     Also, I find it rather strange that in trying to persuade that created\n>     and eternally existent are equivalent, you say \"granted the Mormon\n>     belief...\" You can't grant your conclusion and then expect the point to\n>     have been addressed. In order to reply to the issue, you have to address\n>     and answer the point that was raised, and not just jump to the\n>     conclusion that you grant.\n\n  I should have said \"given the Mormon belief.\"  If you disagree with the\nMormon belief that creation is more a function of organization of eternally\nexistent substance than one of ex nihilo creation, then that is the important\npoint.\n\n>     The Bible states that Lucifer was created.  The Bible states that Jesus\n>     is the creator of all. The contradiction that we have is that the LDS\n>     belief is that Jesus and Lucifer were the same.\n\n  Correction: you interpret the Bible to mean something very specific by\nsuch terms.\n\n>     The Mormon belief is that all are children of God. Literally. There is\n>     nothing symbolic about it. This however, contradicts what the Bible\n>     says. The Bible teaches that not everyone is a child of God:\n>\n   It always cracks me up when anti-Mormons presume to tell Mormons what they\nbelieve.  Mormons do, in fact, believe that all people, including Christ and\nLucifer, are children of God in the sense that we were all created (or\norganized or whatever) by Him.  We also believe that being \"offspring\" of\nGod has a symbolic sense when applied to being spiritually \"born again\" of\nHim.  Thus the same word can be used to convey different meanings.  This is\nhow language works, Robert, and it's why making someone an offender for a\nword is dangerous.\n\n\n>     This is really a red herring. It doesn't address any issue raised, but\n>     rather, it seeks to obfuscate. The fact that some groups try to read\n>     something into the Bible, doesn't change what the Bible teaches. For\n<...>\n>     We first look to the Bible to see what it teaches. To discount, or not\n>     even address, what the Bible teaches because there are some groups that\n>     have differing views is self-defeating. To see what the Bible teaches,\n>     you have to look at the Bible.\n\n   On the contrary, Robert, it is not a red herring at all to show that those\nwho rely wholly on the Bible cannot seem to agree on what it says.  You say\nthat one must simply \"look at the Bible\" to see what it teaches, but centuries\nof people doing just that have sho0wn that no one is really sure what it says.\nAre we to believe that you are the only one who really understands the\nscriptures?\n\n>     I find this rather curious. When I mentioned that the Mormon belief is\n>     that Jesus needed to be saved, I put forward some quotes from the late\n>     apostle, Bruce McConkie. The curious part is that no one addressed the\n>     issue of `Jesus needing to be saved.' Rick comes the closest with his \"I\n>     have my own conclusions\" to addressing the point.\n\n  Let me clarify this one more time.  You did not refer to the Mormon belief\nthat Jesus needed to be saved, but rather to McConkie's belief in same.  We\nkeep trying to point out to you that Bruce McConkie is not the source of\nMormon doctrine, and you keep ignoring it. (see below)\n\n>\n>     Most of the other replies have instead hop-scotched to the issue of\n>     Bruce McConkie and whether his views were 'official doctrine.' I don't\n>     think that it matters if McConkie's views were canon. That is not the\n>     issue.  Were McConkie's writings indicative of Mormon belief on this\n>     subject is the real issue. The indication from Rick is that they may\n>     certainly be.\n\n  On the contrary, Robert, if you are quoting McConkie's words as Mormon\ncanon then the question of whether they are canon or not is of *great*\nimportance.  The fact is that they are not.  Whether or not they indicate\ngeneral Mormon belief would only be ascertainable by interviewing a large\nnumber of Mormons.\n>\n>\n>=============================\n>Robert Weiss\n>psyrobtw@ubvms.cc.buffalo.edu\n--\nRick Anderson  librba@BYUVM.BITNET\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.193+0000", "event": "documents", "entityId": 3981, "properties": {"category": "talk.politics.guns", "text": "From: dlb@fanny.wash.inmet.com (David Barton)\nSubject: Re: \"Proper gun control?\" What is proper gun control? (was Re: My Gun is like my American Express Card)\nIn-Reply-To: bressler@iftccu.ca.boeing.com's message of Wed, 14 Apr 1993 17:16:21 GMT\nNntp-Posting-Host: fanny.wash\nOrganization: Intermetrics Inc., Washington Division, USA\nLines: 15\n\n / iftccu:talk.politics.guns / hays@ssd.intel.com (Kirk Hays) /\n   3:31 pm  Apr 13, 1993 / \n\n   >Some of the pro-gun posters in this group own no guns.  The dread\n   >\"Terminator\", aka \"The Rifleman\", owned no firearms for several\n   >years while posting in this group, as an example.  There are\n   >others.\n\nFor what it is worth, I own no firearms of any sort.  As long-time\nreaders of this group know, I am dedicated to the RKBA.\n\nThis is not about toys.  It is about freedom.\n\n\t\t\t\t\tDave Barton\n\t\t\t\t\tdlb@hudson.wash.inmet.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3982, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: brown@NCoast.ORG (Stan Brown)\nSubject: Re: Program manager ** two questions\nOrganization: Oak Road Systems, Cleveland Ohio USA\nLines: 25\n\nIn article <1993Apr22.204406.20330@vpnet.chi.il.us> lisbon@vpnet.chi.il.us (Gerry Swetsky) writes:\n>\n>(1) Is it possible to change the icons in the program groups?  I'd like\n>    to give them some individuality.\n\nDo you mean the icons _of_ the program groups, or the icons of the\nindividual programs _in_ the program groups?  I assume you mean the\nlatter, and the answer is: sure you can.  Just click once (not double)\non the application icon, then Alt-F P (File | Properties).  Click on the\nChange Icon box and tell it the icon filename.  Or use the Browse\nsub-selection.\n\n>(2) Can you set up a short-cut key to return to the Program Manager? \n>    I know <CTL><ESC>, <ESC> will do it, but I'd rather set it up so I \n>    can avoid the task list and get back to the P/M with <ALT><F1>.\n\nI use Alt-Tab.  Hold the Alt key and repeatedly press Tab until you see\nProgram Mangler up.  Then release the Alt key.\n\n\n-- \nStan Brown, Oak Road Systems                    brown@Ncoast.ORG\nEnglish is my native language and I love it.  But don't try to tell me\nthat it's easy to learn or that it makes sense.  If it were, \"baseline\"\nwould rhyme with \"vaseline\".\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3983, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rrn@po.CWRU.Edu (Robert R. Novitskey)\nSubject: PLEEZE HELP ME BUY A MAC!\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 16\nReply-To: rrn@po.CWRU.Edu (Robert R. Novitskey)\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nHey everybody:\n\n   I want to buy a mac and I want to get a good price...who doesn't?  So,\ncould anyone out there who has found a really good deal on a Centris 650\nsend me the price.  I don't want to know where, unless it is mail order or\nareound cleveland, Ohio.  Also, should I buy now or wait for the Power PC.\n\nThanks.\nBoB\nreply via post or e-mail at rrn@po.cwru.edu\n-- \n---------------------------------------------------------------------- \nRobert Novitskey | \"Pursuing women is similar to banging one's head\nrrn@po.cwru.edu  |  against a wall...with less opportunity for reward\" \n---------------------------------------------------------------------- \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3984, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Alexander Samuel McDiarmid <am2o+@andrew.cmu.edu>\nSubject: driver ??\nOrganization: Sophomore, Mechanical Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 15\nNNTP-Posting-Host: po4.andrew.cmu.edu\n\n \n1)    I have an old Jasmine drive which I cannot use with my new system.\n My understanding is that I have to upsate the driver with a more modern\none in order to gain compatability with system 7.0.1.  does anyone know\nof an inexpensive program to do this?  ( I have seen formatters for <$20\nbuit have no idea if they will work)\n \n2)     I have another ancient device, this one a tape drive for which\nthe back utility freezes the system if I try to use it.  THe drive is a\njasmine direct tape (bought used for $150 w/ 6 tapes, techmar\nmechanism).  Essentially I have the same question as above, anyone know\nof an inexpensive beckup utility I can use with system 7.0.1\n \nall help and advice appriciated.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3985, "properties": {"category": "sci.crypt", "text": "From: neuhaus@bloch.informatik.uni-kl.de (Stephan Neuhaus (HiWi Mattern))\nSubject: Re: PGP 2.2: general comments\nNntp-Posting-Host: bloch.informatik.uni-kl.de\nOrganization: University of Kaiserslautern, Germany\nLines: 39\n\nneuhaus@vier.informatik.uni-kl.de (Stephan Neuhaus (HiWi Mattern)) writes:\n\n>[Lots of stuff.]\n\nI hate to follow up to my own posting, but I should perhaps clarify\nsome things so I won't get flamed.\n\nFirst of all, when I'm talking about ``factoring the modulus'' or a\n``breakthrough in factoring'', what I really mean is a breakthrough in\nthe cryptanalysis of RSA.  I know that factoring and breaking RSA are\nnot proven to be equivalent; it's just so damn convenient not to\nrepeat this every time.\n\nI also have to admit that I don't really know if the ``non-group''\nproperty of a cipher is essential only for key chaining.  I have\nthought about it a little while, but I can't find a way that a\ncryptanalyst could exploit a group structure.  That, of course, means\nnothing at all.\n\nThen I wrote,\n\n>Please note that as long as it is much harder to factor a RSA modulus\n>than it is to generate it, the increase in computer speed alone will\n>keep key lengths and modulus factoring in lock-step, i.e., people will\n>simply start using longer moduli and still be safe.\n\nWhat I meant was that as long as the only advantage of the\ncryptanalyst is a faster computer, then we will probably have RSA for\na long time to come, because even if 1024-bit moduli somehow could be\nbroken with fast computers (not with a new algorithm), then people\nwould simply use longer moduli.  Both users and cryptanalysts benefit\nfrom better technology in the same way.\n\nHope this keeps the flames away...  Have fun.\n\n-- \nStephan <neuhaus@informatik.uni-kl.de>\nsig closed for inventory.  Please leave your pickaxe outside.\nPGP 2.2 public key available on request.  Note the expiration date.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3986, "properties": {"category": "comp.graphics", "text": "From: zyeh@caspian.usc.edu (zhenghao yeh)\nSubject: Re: Point within a polygon\nOrganization: University of Southern California, Los Angeles, CA\nLines: 28\nDistribution: world\nNNTP-Posting-Host: caspian.usc.edu\nKeywords: point, polygon\n\n\nIn article <1993Apr14.102007.20664@uk03.bull.co.uk>, scrowe@hemel.bull.co.uk (Simon Crowe) writes:\n|> I am looking for an algorithm to determine if a given point is bound by a \n|> polygon. Does anyone have any such code or a reference to book containing\n|> information on the subject ?\n|> \n|> \t\tRegards\n|> \n|> \t\t\tSimon\n\nBasically, there are two algorithms determining whether a point is inside,\noutside or on the polygon. The first one is Ray (or half line) method. In\nthis method, you can draw any ray, if the number of the intersection point\nof the ray and the polygon is even, then it is outside. If the number is odd,\nthen it is inside. Of cause, you have to deal with the special cases which\nmay make you headache.\n\nThe second method is PI algorithm. Draw the lines between the point and\nall the vertices on the polygon. Calculate and sum the angles of the\nsuccessive lines. If the result is 2*PI, then it is inside. If PI, then\nit is on the polygon. Otherwise it is outside.\n\nMy experience tells the second method is relible.\n\nHope this helps.\n\nYeh\nUSC\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3987, "properties": {"category": "sci.med", "text": "From: mary@uicsl.csl.uiuc.edu (Mary E. Allison)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Center for Reliable and High-Performance Computing, University of Illinois at Urbana-Champaign\nLines: 66\nDistribution: world\nNNTP-Posting-Host: uicsl.csl.uiuc.edu\n\ncarl@SOL1.GPS.CALTECH.EDU (Carl J Lydick) writes:\n\n>Of course, bee venom isn't a single chemical.  Could be your brother is\n>reacting to a different component than the one that causes anaphylactic shock\n>in other people.\n\n>Similarly, Chinese food isn't just MSG.  There are a lot of other\n>ingredients in it.  Why, when someone eats something with lots of\n>ingredients they don't normally consume, one of which happens to be\n>MSG, do they immediately conclude that any negative reaction is to\n>the MSG? \n\nARGHHHHHHHHHh\n\nREAD THE MEMOS!!!!\n\nI said that I PERSONALLY had other people order the EXACT SAME FOOD at\nTWO DIFFERENT TIMES from the SAME RESTAURANT and the people that\nordered the food for me did NOT TELL ME which time the MSG was in the\nfood and which time it was not in the food.\n\nONE TIME I HAD A REACTION\n\nONE TIME I DID NOT\n\nTHE REACTION CAME THE TIME THE MSG WAS IN THE FOOD\n\nTHAT WAS THE ONLY DIFFERENCE\n\nSAME RESTAURANT - SAME INGREDIENTS!!!\n\n>Why, when someone eats something with lots of ingredients they don't\n>normally consume, one of which happens to be MSG, do they immediately\n>conclude that any negative reaction is to the MSG? \n\nI eat lots of Chinese food - I LOVE Chinese food.  I've just learned\nthe following\n\nIF I get food at one of the restaurants that DOES NOT USE MSG or\n\nIF I prepare the food myself without MSG or \n\nIF I order the food from a restaurant that will hold the MSG (and I\nnever get soup unless it's from a restaurant that cooks without the\nMSG)\n\nI DO NOT GET A REACTION!!!!\n\nOKAY\n\nDO YOU UNDERSTAND!!!!\n\nI GET A REACTION FROM MSG\n\nI DO NOT GET A REACTION WHEN THERE IS NO MSG\n\nIf you're having trouble understand this, please tell me which of the\nwords you do not understand and I'll look them up in the dictionary\nfor you.\n\n--\nThe great secret of successful marriage is to treat all disasters\nas incidents and none of the incidents as disasters.    \n  -- Harold Nicholson\n\n    Mary Allison (mary@uicsl.csl.uiuc.edu) Urbana, Illinois\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3988, "properties": {"category": "rec.sport.baseball", "text": "From: Mamatha Devineni Ratnam <mr47+@andrew.cmu.edu>\nSubject: Re: Zane!!Rescue us from Simmons!!\nOrganization: Post Office, Carnegie Mellon, Pittsburgh, PA\nLines: 17\nNNTP-Posting-Host: po4.andrew.cmu.edu\n\nIn my last message, I wrote:\n****************************************************\n12) Management: BIG BIG ZERO. Sauer has yet to make a forceful agreement\nin favor of revenue sharing.\n******************************************************\n\n\nI meant argument instead of agreement.\nAlso, I think I should add a coouple of Ted's positive achievements\n- Smiley trade was good for the pirates. but I think Ted could have gotten\nsomeone better than Neagle. Cummings seems to be pretty good.\n- The Cole trade was excellent. BUt Simmons has botched it up now.\n-This year's draft seems to have gone well for the PIrates. BUt then they\nlost 2 high picks in the Bonds fiasco.\n\nOH well, I should give up trying to prove that Simmons is not a total\nidiot.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3989, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ffritze@hpwad.WAD.HP.COM (Fromut Fritze)\nSubject: Re: Need help writing MS EXCEL macro\nOrganization: Hewlett-Packard Waldbronn, Germany\nLines: 20\n\n>    for each_student do\n>       begin\n>          Lowest_Score_Found := Max_Possible_Value\n>          for I := 1 to Number_Of_Assignments do\n>             begin\n>                  if Score[I] < Lowest_Score_Found then\n>                     Lowest_Score_Found := Score[I] \n>             end\n>          Total_Score := SUM(all scores) - Lowest_Score_Found\n>       end\n\nCouldn't you simply use MIN() as you use SUM() and than subtract it\nfrom SUM() ??\n\n------------------------------------------------------------------------------\ninternet: ffritze@hpwbe007.wad.hp.com\nphone:    Germany 7243 602296\naddress:  Fromut FRITZE, Waldbronn Analytic Division R&D,\n\t  Hewlett Packard Str, D 7517 Waldbronn 2, Germany\n------------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3990, "properties": {"category": "alt.atheism", "text": "From: MANDTBACKA@FINABO.ABO.FI (Mats Andtbacka)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Unorganized Usenet Postings UnInc.\nLines: 51\nIn-Reply-To: cobb@alexia.lis.uiuc.edu's message of Fri, 16 Apr 1993 15:32:04 GMT\nX-News-Reader: VMS NEWS 1.24\n\nIn <C5L1tG.K5q@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu writes:\n\n> If some society came up with a good reason for why rape and murder are ok I \n> would be consistent with my position and hold that it was still wrong.  My \n> basis of morality is not on societal norms, or on current legalities.  My\n> basis is, surprise surprise, on both the Bible and on inherent moral\n> abhorrences,\n\n      AH! But what, exactly, is \"inherently abhorrent\" and WHY is it so?\nWhat you're saying is, in effect, \"I think some things are repulsive,\nand I know a whole bunch of other people who agree with me, so they\nshould be deemed absolutely immoral now and forever, period\".\n\n      Which in and of itself is nice enough; to some extent I agree with\nyou. But I do _not_ agree that things are 'inherently' or 'absolutely'\nimmoral; they are labeled 'immoral' each for its own good reason, and if\nthe reason can even theoretically change, then so can the label.\n\n[...]\n> Yes, that's vague, and the only way I know off the top of my head to\n> defend it is to say that all humans are similarly made. Yes, that falls\n> into the trap of creation,\n\n      No it doesn't. Humans are to some extent similar, because we all\nbelong to the same species; that that species has evolved is another\nstory altogether. To a certain extent evolution can even lend credence\nto moral absolutism (of a flavour).\n\n[...]\n> My arguments are that it is better to exhibit trust, goodness, \n> love, respect, courage, and honesty in any society rather than deceipt,\n> hatred, disrespect, \"cowardness\", and dishonesty.\n\n      You're saying morality is what'll keep society alive and kicking.\nIt is, I think, up to a point; but societies are not all alike, and\nneither are their moralities.\n\n> No, I haven't been everywhere and \n> seen everyone, but, according to my thesis, I don't have to, since I hold that\n> we were all created similarly.\n\n      Similar != identical.\n\n> If that makes an unfalsifiable thesis, just say\n> so, and I'll both work out what I can and punt to fellow theists.\n\n      No, it's falsifiable through finding someoe who was \"created\ndifferent\", whatever that might be in the \"real\" world.\n\n-- \n  Disclaimer?   \"It's great to be young and insane!\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3991, "properties": {"category": "rec.sport.hockey", "text": "From: ching@coyote.WPI.EDU (Jay Heminger)\nSubject: Re: NCAA finals...Winner????\nArticle-I.D.: bigboote.1pqgt9$r46\nDistribution: world\nOrganization: Worcester Polytechnic Institute\nLines: 9\nNNTP-Posting-Host: coyote.wpi.edu\nOriginator: ching@coyote.WPI.EDU\n\n\nMaine beat LSSU 5-4.\n\n\n-- \n------------------------THE LOGISTICIAN REIGNS SUPREME!!!----------------------\n|\t\t\t\t\t\t\t\t\t      |\n|   GO BLUE!!!   GO TIGERS!!!   GO PISTONS!!!   GO LIONS!!!   GO RED WINGS!!! |\n-------------------------------ching@wpi.wpi.edu-------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3992, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Objective morality (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 74\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>I want to know how this omniscient being is going to perform\n>the feat of \"definitely\" terming actions right or wrong.\n\nIf you were omniscient, you'd know who exactly did what, and with what\npurpose in mind.  Then, with a particular goal in mind, you sould be\nable to methodically judge whether or not this action was in accordance\nwith the general goal.\n\n>>>I don't think you've show the existence of *any* objective moral system.\n>>They exist, but in practice, they are difficult to perfectly emulate.\n>>I mean, you understand the concept of an objective system, right?\n>I thought you were explaining it to us.   I certainly don't\n>understand what you are explaining.\n\nIn an objective system, there are known goals.  Then, actions are judged\nas either being compatible with these goals, or not.  Simple.  The problem\nwith most systems in current practice is that the goals differ.  That is,\nthe goals of each society are different.\n\nNote that an objective system is not necessarily an inherent one.\n\n>>The concept of innocence is dependent on whether certain actions are\n>>\"right\" or \"wrong,\" and this depends on the moral system.  But, if\n>>we have an objective system, then someone can be deemed innocent or\n>>not quite easily by an omniscient person.  Anyway, I think I cleared\n>>up the recursive definition of \"murder,\" because no one is complaining\n>>about it.\n>I don't think it solves anything to speculate where we would be\n>if we *did* have an objective moral system.  The question is\n>still whether you can even say what one is.\n\nI've said it many, many times.\n\n>And for what it's worth, I don't think you cleared up *anything*\n>concerning murder.\n\nWhich part do you have a problem with?\n\n>>>What do you mean by \"harmed?\"  Is it harm if you have to spend\n>>>your existence metabolising food for another species?\n>>Oh, most moral systems would be considered only within a species.  It\n>>is okay for us to enslave other animals, right?  But not humans...\n>>Of course, ideally, perhaps we wouldn't even have to bother any other\n>>animals...\n>One the first point, it's wrong to enslave humans according to my\n>persoanl moral system.  On the second point, I'm a vegetarian.\n\nBut, we can enslave the animals, right?  But just not kill them?  Or\nare you a vegetarian for health reasons?\n\n>So, are you a vegetarian?\n\nNo.  I fail to see how my *personal* views are relevant, anyway.\n\n>Is it wrong to eat animals in your personal moral system?\n\nOf course not.  It seems perfectly valid to kill members of other species\nfor food.  It might be nice, though, if the other animals were not made\nto suffer.  For instance, a cow in a field lives out its life just about\nthe same way it would in the wild.  They seem happy enough.  However,\nthe veal youngsters aren't treated very well.\n\n>How about an \"objective\" moral system?\n\nI don't know.  What is the goal of this particular system?  There is no\ninherent system.\n\n>How about a \"natural\" moral system.\n\nNope.  Again, it seems okay to kill other species for food.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3993, "properties": {"category": "alt.atheism", "text": "From: Tony Lezard <tony@mantis.co.uk>\nSubject: Re: atheist?\nDistribution: world\nOrganization: Mantis Consultants, Cambridge. UK.\nLines: 50\n\nI3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n\n> In article <ii1i2B1w165w@mantis.co.uk>\n> Tony Lezard <tony@mantis.co.uk> writes:\n>  \n> (Deletion)\n> >\n> >My opinion is that the strong atheist position requires too much\n> >belief for me to be comfortable with. Any strong atheists out there\n> >care to comment? \n>[...]\n> Humans just come up with the idea of a spiritual parent. It is one\n> of the artifacts of human thought. The evidence for that is quite\n> overwhelming. And the information content of the conceived is vanishing.\n>  \n> In other words, if there were gods, they would hardly make sense, and\n> it is possible to explain the phenomenon of religion without gods.\n>  \n> The concept is useless, and I don't have to introduce new assumptions\n> in order to show that.\n>  \n> No leap of faith required for me. Your mileage may vary.\n\nYes I fully agree with that, but is it \"I don't believe gods exist\", or\n\"I believe no gods exist\"? As MANDTBACKA@FINABO.ABO.FI (Mats Andtbacka)\npointed out, it all hinges on what you take the word \"believe\" to mean.\n\nUnfortunately this is bound up in the definitions of strong and weak\natheism, at least according to the FAQ:\n\n# Atheism is characterized by an absence of belief in the existence of God.\n# Some atheists go further, and believe that God does not exist.  The former is\n# often referred to as the \"weak atheist\" position, and the latter as \"strong\n# atheism\".\n# \n# It is important to note the difference between these two positions.  \"Weak\n# atheism\" is simple scepticism; disbelief in the existence of God.  \"Strong\n# atheism\" is a positive belief that God does not exist.  Please do not\n# fall into the trap of assuming that all atheists are \"strong atheists\".\n\n(From mathew's \"An Introduction to Atheism\" version 1.2 last modified 5-Apr-93)\n\nShould the FAQ be clarified to try to pin down this notion of \"belief\"?\nCan it?\n\n-- \nTony Lezard IS tony@mantis.co.uk OR tony%mantis.co.uk@uknet.ac.uk OR things\nlike tony%uk.co.mantis@uk.ac.nsfnet-relay OR (last resort) arl10@phx.cam.ac.uk\nPGP 2.2 public key available on request.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3994, "properties": {"category": "comp.windows.x", "text": "From: agallagh@slate.mines.colorado.edu (GALLAGHER ANDREA J )\nSubject: Detecting read-only colorcells?\nReply-To: ngorelic@speclab.cr.usgs.gov\nOrganization: Colorado School of Mines\nLines: 27\n\n[again, poseted for a friend]\n\nOkay, I got such great response from my last question (thanks, everyone), \nlets try again:\n\nHow can I tell if a colorcell is read-only?\n\nI want to use any read-only cells that are already in my colormap\nonce I start running out of allocatable cells, using some arbitrary\nnearest color matching scheme to get those cells that come closest to\na requested color.\n\nOnce I determine if a cell is read-only, I assume I can then just request\nan XAllocColor() with the exact same color specifications and it will \nthen be flagged as 'used' by my application so that it doesn't later get\nfreed by someone else and allocated again as read-write to another\napplication.\n\nSo far, the only way I've figured out to do this is to write my own\nerror handler and just go ahead and request the cells colors, once my\ncolormap is all full up.  It should error out if the cell is non-shareable.\nBut life would be much easier if I could just detect the\nread-only/shareable stuff directly...\n\nAny ideas?\n\nNoel (ngorelic@speclab.cr.usgs.gov)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3995, "properties": {"category": "soc.religion.christian", "text": "From: phs431d@vaxc.cc.monash.edu.au\nSubject: Re: The arrogance of Christians\nOrganization: Monash University - Melbourne. Australia.\nLines: 42\n\nIn article <Apr.13.00.08.07.1993.28379@athos.rutgers.edu>, aa888@freenet.carleton.ca (Mark Baker) writes:\n>  \n> [Very good and reasonable statements on \"authority\" deleted]\n> \n> The atheist position seems to be that there are no authorities. This is a\n> reasonable assertion in itself, but it leads to a practical difficulty.\n> If you reject all authority out of hand, you reject all possibility of\n> every receiving information. Thus the atheist position can never possibly\n> change. It is non-falsifiable and therefore unscintific. \n\nThis is not true.  The athiest's position is that there is no PROOF of the\nexistence of God.  As much as some people accept their Church, their priests\nor straight from their own scriptures as the \"proof\", this does not \nsatisfy atheists.\n\nAtheists DO believe in recognisable authorities.  If they were as dogmatic as\nyou claim they are, they would be trying to prove 1 + 1 =2 every time they\ngot up.  What they dispute is that Churches, priests, scriptures etc.\nrepresent true authorities and know the TRUTH.\n\n> To demand scintific or rational proof of God's existence, is to deny\n> God's existence, since neither science, nor reason, can, in their very\n> nature, prove anything.\n\nAre you asking us to believe blindly?  You are trying to deny that part of\nus that makes us ask the question \"Does God exist?\" i.e. self-awareness and\nreason.  If we do not use our ability to reason we become as ignorant\nas the other animals on this earth.  Does God want us to be like that?\n\nYou are right that science and reason cannot PROVE anything.  However, if\nwe do not use them we can only then believe on FAITH alone.  And since\nwe can only use faith, why is one picture of \"God\" (e.g. Hinduism) any less\nvalid than another (e.g. Christianity)?\n\n> ==============================================================================\n> Mark Baker                  | \"The task ... is not to cut down jungles, but \n> aa888@Freenet.carleton.ca   | to irrigate deserts.\" -- C. S. Lewis\n> ==============================================================================\n\n-- \nDon Lowe, Department of Physics, Monash University, \nMelbourne, Victoria, Australia, 3168.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3996, "properties": {"category": "talk.politics.mideast", "text": "From: melons@vnet.IBM.COM (Mike Magil)\nSubject: Re: Israeli Terrorism\nLines: 33\n\n\nAnas Omran writes in his earlier posting:\n>\n>\n>A high rank Israeli officer was killed during a clash whith a Hamas\n\n...and then his \"fantasy\" begins...\n\n>Mujahid.  The terrorist Israelis chased and killed a young Mujahid\n>using anti-tank missiles.  The terrorist zionists cut the Mujahid's\n>body into small pieces to the extend that his body was not recognized.\n>At leat ten houses were destroyed by these atni-tank missiles.\n>\n>\n>---\n>Anas Omran\n>\n>\n>\n\nThis clearly is a \"fantastic\" story, Anas!  I am very curious as to who\n(or what) your sources are for this grossly exaggerated account (if not,\nblatant lie).  It surprises me that this \"story\" has not yet made it to\nthe front pages of the major newspapers (which love to make the State of\nIsrael look as evil as humanly possible)!  Such a story would be \"eaten up\"\nby some of the papers over here.  So please explain to me why I have never\nseen nor heard of it before!  - Believe me, I'm not expecting a reply because\nwe both know where the story came from... YOUR DREAMS!!!!\n\n=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\nMichael Zion Magil\nIBM Canada Laboratory\n=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3997, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: franklig@helium.gas.uug.arizona.edu (Gregory C Franklin )\nSubject: Re: Mouse on Com3\b\b\bOM3 or COM4 in Windows\nOrganization: University of Arizona, Tucson\nLines: 23\n\nIn article <C4v5p3.JyF@bcstec.ca.boeing.com> isbell@bcstec.ca.boeing.com (Robert Isbell) writes:\n>jpaparel@cs.ulowell.edu (Joseph Paparella) writes:\n>\n>>I am having a problem configuring the mouse in windows to use COM3\n>>with IRQ5.\n>\n>>COM1 and COM2 are being used to support two 24 hour bbs lines,\n\nThere you go.  COM1 and COM3 use the same IRQ, therefore you can't use\na mouse on COM3 and a modem on COM1, or vice versa.  It's a limitation\nof DOS.\n\nAnd in fact Windows will not see a mouse on anything other than COM1\nor COM2.  Accept this fact, and either get a bus mouse, or get a new\ncomputer.\n\n>I would also like to know if it is possible to use the mouse on ports other\n>than COM1 or COM2. \n\nNo.  The advice above applies....\n--\nGreg Franklin\nfranklig@gas.uug.arizona.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3998, "properties": {"category": "comp.graphics", "text": "From: cywang@ux1.cso.uiuc.edu (Crying Freeman)\nSubject: What's a good assembly VGA programming book?\nOrganization: University of Illinois at Urbana\nLines: 9\n\nCan someone give me the title of a good VGA graphics programming book?\nPlease respond by email. Thanks!\n\n\t\t\t--Yuan\n\n-- \nChe-Yuan Wang\ncw21219@uxa.cso.uiuc.edu\ncywang@ux1.cso.uiuc.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 3999, "properties": {"category": "talk.politics.guns", "text": "From: wolfone@ccwf.cc.utexas.edu (I am an android..)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: The University of Texas at Austin, Austin, Texas\nLines: 29\nNNTP-Posting-Host: happy.cc.utexas.edu\n\nIn article <1993Apr21.113723.10103@synapse.bms.com> hambidge@bms.com writes:\n]In article <C5sv88.HJy@news.cso.uiuc.edu>, irvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n]>In article <1r1j3n$4t@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n]>>In article <1r19tp$5em@bigboote.WPI.EDU>, mfrhein@wpi.WPI.EDU (Michael Frederick Rhein) writes:\n]>>\n]>>> >napalm, then let the wood stove inside ignite it.\n]>>>                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n]>>> As someone else has pointed out, why would the stove be in use on a warm day  \n]>>> in Texas. \n]>>\n]>>Do YOU eat all your food cold?\n]>\n]>Ever hear of electric ovens or microwaves?  Very popular.\n]>Electric stoves outside metro-areas especially.\n]\n]Ever hear about cutting off the electricity? That was done.\n]How effective is an electric stove then?\n\nDidn't the Branch Davidans have an emergency generator? Oh well, I don't think\nBrent thought of that anyway.\n\n\n-- \n/----------------------------------------------------------------------\\\n|Patrick Chester   (aka: claypigeon)         wolfone@ccwf.cc.utexas.edu|\n|The Earth is our cradle, but one cannot stay in the cradle forever... |\n|People's organizations rarely stay that way... or even begin as such. |\n|I only speak for myself. If I *did* speak for UT, would anyone listen?|\n\\----------------------------------------------------------------------/\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.194+0000", "event": "documents", "entityId": 4000, "properties": {"category": "talk.politics.guns", "text": "From: fjk6478@ritvax.isc.rit.edu (Fred)\nSubject: Re: Luser!\nNntp-Posting-Host: vaxc.isc.rit.edu\nReply-To: fjk6478@ritvax.isc.rit.edu\nOrganization: Rochester Institute of Technology\n\n>\n>Actually, now we have established that I don't believe what you believe, as\n>well as why I don't believe it.  And if it's boring, then I yield the last\n>word to you, if you want it.  You may say anything you like with\n>impunity--I am dropping the subject.\n>\n>--John L. Scott\n\n\n\nHow very kind of you!\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4001, "properties": {"category": "rec.sport.hockey", "text": "Organization: Penn State University\nFrom: Robbie Po <RAP115@psuvm.psu.edu>\nSubject: Re: Goodbye, good riddance, get lost 'Stars\nLines: 22\n\nIn article <DT642B1w165w@sms.business.uwo.ca>, s4lawren@sms.business.uwo.ca\n(Stephen Lawrence) says:\n>        Goodbye Minnesota,...you never earned the right to have an NHL\n>franchise in the first place!\n>        Hope you enjoy your Twin city wide mania for HIGH SCHOOL HOCKEY\n>(hey, by the way my old pee wee team is having a reunion in Regina, care\n>to come up and film the event?)\n>        Yee haa Golden Gophers\n>Whatta weird town!!!!!\n   --Minnesota definitely deserves an NHL franchise!!!  You'll see the\nMinnesota Whalers pretty soon, so fear not Minnesota fans.  No Norm Green,\n'cept for the team color (sorry, bad pun!)\n\n   --What a difference two years makes!  Minnesota finished 29-37-14 in 1992\nand made the finals.  They finish with a better record at  38-38-10 thi year\nand move to Dallas.  Every team in the playoffs has a winning record!!!\nFinally!!!  It's about time, NHL!!!\n-------------------------------------------------------------------------\n** Robbie Po **          PGH PENGUINS!!!    \"It won't be easy, but it\nContact for the '93-'94  '91 STANLEY CUP    will have greater rewards.\nPenn State Lady Lions    '92 CHAMPIONS      Mountains and Valleys are\nrap115@psuvm.psu.edu     11 STRAIGHT WINS!  better than nothing at all!\"\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4002, "properties": {"category": "rec.motorcycles", "text": "From: charlie@elektro.cmhnet.org (Charlie Smith)\nSubject: Re: Internet Discussion List\nOrganization: Why do you suspect that?\nLines: 22\n\nIn article <1qc5f0$3ad@moe.ksu.ksu.edu> bparker@uafhp..uark.edu (Brian Parker) writes:\n>  Hello world of Motorcyles lovers/soon-to-be-lovers!\n>I have started a discussion list on the internet for people interested in\n>talking Bikes!  We discuss anything and everything.  If you are interested in\n>joining, drop me a line.  Since it really isn't a 'list', what we do is if you \n>have a post, you send it to me and I distribute it to everyone.  C'mon...join\n>and enjoy!\n\n\nOn second thought, maybe he didn't invent wreck.moto - \n\n\the's trying a round about way to figure out the DoD theme song.\n\nOne FAQ, coming right up!\n\n\n   Charlie Smith,  DoD #0709,  doh #0000000004,  1KSPT=22.85\n\no--------------------------------------------------------------o\n  There's nothing quite like the pitter-patter of little feet,\n    followed by the words \"Daddy!  Why am I locked outside?\"\no--------------------------------------------------------------o\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4003, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: The Area Rule\nOrganization: Express Access Online Communications USA\nLines: 20\nDistribution: sci\nNNTP-Posting-Host: access.digex.net\n\n\n\nI am sure  Mary or Henry can describe this more aptly then me.\nBut here is how i understand it.\n\nAt Speed,  Near supersonic.  The wind behaves like a fluid pipe.\nIt becomes incompressible.  So wind has to bend away from the\nwing edges.   AS the wing thickens,  the more the pipes bend.\n\nIf they have no place to go,  they begin to stall,  and force\ncompression, stealing power from the vehicle (High Drag).\n\nIf you squeeze the fuselage,  so that these pipes  have aplace to bend\ninto,  then drag is reduced.   \n\nEssentially,  teh cross sectional area of the aircraft shoulf\nremain constant for all areas of the fuselage.  That is where the wings are\nsubtract, teh cross sectional area of the wings from the fuselage.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4004, "properties": {"category": "soc.religion.christian", "text": "From: simon@giaeb.cc.monash.edu.au (simon shields)\nSubject: SSPX schism ?\nOrganization: Monash University, Melb., Australia.\nLines: 78\n\nHi All\n\nHope you all had a Blessed Easter. I have a document which I believe\nrefutes the notion that the SSPX (Society of Saint Pius X) is in\nschism, or that there has been any legitimate excommunication. If\nanyone is interested in reading the truth about this matter please\nemail me and I'll send them the document via email. Its 26 pages long,\nso I wont be posting it on the news group.\n\nIts titled\n\n\n    NEITHER SCHISMATIC NOR EXCOMMUNICATED\n\n\n    This article  was  originally  an  English\ttranslation,  by  the\n    Society  of  Saint\tPius  X  in  Ireland, from the French Journal\n    'Courrier de Rome'.  The French  article,  in  its\tturn,  was  a\n    translation  from  the  Italian of the Roman Newsletter 'Si Si No\n    No'.\n\n    This booklet contains the transcription, with some minor editing,\n    of\tthe  Irish  article, and was transcribed and produced by John\n    Clay, Townsville, Queensland, Australia.\n\n    (There is no copyright attached. Simon Shields)\n\n                        CONTENTS                             \n\n    NEITHER SCHISMATIC NOR EXCOMMUNICATED.......................1\n    CATHOLICS ON THE RACK.......................................1\n    THE CHOICE OF THE 'SENSUS FIDEI'............................3\n    AMBIGUITY...................................................4\n    THE CHURCH IS NOT BICEPHALOUS (TWO-HEADED)..................6\n    THE PERSON AND THE FUNCTION OF THE POPE.....................6\n    UNITY OF FAITH AND UNITY OF COMMUNION.......................8\n    THE CRITERIA OF CHOICE.....................................10\n    ECUMENISM - AN ATTACK ON THE UNITY OF THE CHURCH...........10\n    THE EXTRAORDINARY SITUATION WITHIN THE CHURCH..............11\n    EXTRAORDINARY DUTIES OF LAY PEOPLE.........................12\n    DUTIES AND POWERS OF BISHOPS...............................14\n    FROM THE FACT OF THEIR GREATER DUTIES......................14\n    FROM THE FACT OF THEIR GREATER POWER.......................14\n    THE POWER AND THE DUTY OF THE PAPACY.......................15\n    THE ELECTION OF BISHOPS....................................15\n    STATE AND RIGHT OF NECESSITY...............................16\n    1. THERE IS IN THE CHURCH A REAL STATE OF NECESSITY........17\n    FOR SOULS..................................................18\n    FOR SEMINARIANS............................................18\n    2. ALL THE ORDINARY MEANS HAVE BEEN EXHAUSTED..............19\n    3. THE ACT ITSELF IS NOT INTRINSICALLY EVIL AND THERE RESUL..........21\n    4. IN THE LIMITS OF EFFECTIVE REQUIREMENTS.................22\n    5. THE AUTHORITY OF THE POPE IS NOT PUT INTO QUESTION......23\n    THE EXCOMMUNICATION........................................24\n    CONCLUSION.................................................25\n    BIBLIOGRAPHY...............................................26-31\n\nGod Bless ye all,\n\n\n\nAn Irish Fairwell\n\nmay the road rise to meet you\nmay the wind be always at your back\nmay the sun shine warm upon your face, \nthe rains fall soft upon your fields,\nand until we meet again,\nmay God hold you in the palm of his hand.\n\n\n--\n/----------------------------------------------------------------|-------\\\n|  Simon P. Shields Programmer           Viva Cristo Rey !!  ----|----   |\n|  MONASH UNIVERSITY COLLEGE GIPPSLAND Ph:+61 51 226 357       .JHS.     |\n|  Switchback Rd. Churchill.          Fax:+61 51 226 300       |\\|/|     |\n|  Australia 3842      Internet: simon@giaec.cc.monash.edu.au  |M J|     |\n\\------------------------------------------------------------------------/\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4005, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Let the Turks speak for themselves.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 95\n\nIn article <1993Apr16.142935.535@cs.yale.edu> karage@scus1.ctstateu.edu (Angelos Karageorgiou) writes:\n\n>\tIf Turks in Greece were so badly mistreated how come they\n>elected two,m not one but two, representatives in the Greek government?\n\nPardon me?\n\n\"Greece Government Rail-Roads Two Turkish Ethnic Deputies\"\n\nWhile World Human Rights Organizations Scream, Greeks \nPersistently Work on Removing the Parliamentary Immunity\nof Dr. Sadik Ahmet and Mr. Ahmet Faikoglu.\n\n\nDr. Sadik Ahmet, Turkish Ethnic Member of Greek Parliament, Visits US\n\nWashington DC, July 7- Doctor Sadik Ahmet, one of the two ethnic\nTurkish members of the Greek parliament visited US on june 24 through\nJuly 5th and held meetings with human rights organizations and\nhigh-level US officials in Washington DC and New York.\n\nAt his press conference at the National Press Club in Washington DC,\nSadik Ahmet explained the plight of ethnic Turks in Greece and stated\nsix demands from Greek government.\n\nAhmet said \"our only hope in Greece is the pressure generated from\nWestern capitals for insisting that Greece respects the human rights.\nWhat we are having done to ethnic Turks in Greece is exactly the same\nas South African Apartheid.\" He added: \"What we are facing is pure\nGreek hatred and racial discrimination.\"\n\nSpelling out the demands of the Turkish ethnic community in Greece\nhe said \"We want the restoration of Greek citizenship of 544 ethnic\nTurks. Their citizenship was revoked by using the excuse that this\npeople have stayed out of Greece for too long. They are Greek citizens\nand are residing in Greece, even one of them is actively serving in\nthe Greek army. Besides, other non-Turkish citizens of Greece are\nnot subject to this kind of interpretation at an extent that many of\nGreek-Americans have Greek citizenship and they permanently live in\nthe United States.\"\n\n\"We want guarantee for Turkish minority's equal rights. We want Greek\ngovernment to accept the Turkish minority and grant us our civil rights.\nOur people are waiting since 25 years to get driving licenses. The Greek\ngovernment is not granting building permits to Turks for renovating\nour buildings or building new ones. If your name is Turkish, you are\nnot hired to the government offices.\"\n\n\"Furthermore, we want Greek government to give us equal opportunity\nin business. They do not grant licenses so we can participate in the\neconomic life of Greece. In my case, they denied me a medical license\nnecessary for practicing surgery in Greek hospitals despite the fact\nthat I have finished a Greek medical school and followed all the\nnecessary steps in my career.\"\n\n\"We want freedom of expression for ethnic Turks. We are not allowed\nto call ourselves Turks. I myself have been subject of a number of\nlaw suits and even have been imprisoned just because I called myself\na Turk.\"\n\n\"We also want Greek government to provide freedom of religion.\"\n\nIn separate interview with The Turkish Times, Dr. Sadik Ahmet stated\nthat the conditions of ethnic Turks are deplorable and in the eyes of\nGreek laws, ethnic Greeks are more equal than ethnic Turks. As an example,\nhe said there are about 20,000 telephone subscribers in Selanik (Thessaloniki)\nand only about 800 of them are Turks. That is not because Turks do not\nwant to have telephone services at their home and businesses. He said\nthat Greek government changed the election law just to keep him out\nof the parliament as an independent representative and they stated\nthis fact openly to him. While there is no minimum qualification\nrequirement for parties in terms of receiving at least 3% of the votes,\nthey imposed this requirement for the independent parties, including\nthe Turkish candidates.\n\nAhmet was born in a small village at Gumulcine (Komotini), Greece 1947.\nHe earned his medical degree at University of Thessaloniki in 1974.\nhe served in the Greek military as an infantryman.\n\nIn 1985 he got involved with community affairs for the first time\nby collecting 15,000 signatures to protest the unjust implementation\nof laws against ethnic Turks. In 1986, he was arrested by the police\nfor collecting signatures.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4006, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Stephen Hawking Tours JPL\nOrganization: Jet Propulsion Laboratory\nLines: 68\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nFrom the \"JPL Universe\"\nApril 23, 1993\n\nCosmologist Stephen Hawking tours Lab\n\nBy Karre Marino\n     Some 15 years after his first visit to JPL, Prof. Stephen\nHawking, Lucasian professor of mathematics at Cambridge\nUniversity and author of \"A Brief History of Time,\" returned to\nthe Lab April 5.\n     On a tour hosted by JPL Chief Scientist Dr. Moustafa Chahine\nand Merle McKenzie, manager of the International Affairs Office,\nHawking visited a variety of facilities, met with Lab Director\nDr. Edward Stone and various project scientists and managers, and\nfelt \"like royalty,\" he said. Hawking, whose theories attempt to\nexplain the origin of distant galaxies, black holes and alternate\ndimensions, wanted to re-visit JPL, he explained, \"because while\nI'm most interested in those things in space that are farther\naway, I know that here is where the first steps are taken.\"\n     Hawking, who was accompanied by his family, two graduate\nstudents and his aides, began the tour in von Karman Auditorium,\nas David Evans, deputy assistant Lab director in the Office of\nFlight Projects, and Dr. Arden Albee, Mars Observer's project\nscientist, briefed him on current and past flight projects.\n     Voyager was pointed out to him, with special attention paid\nto a gold plate with a series of engraved images. Should\nextraterrestrial life stumble upon the spacecraft, Evans noted,\nthey would find a variety of images that would explain something\nof Earth. The professor asked if we were still communicating with\nthe spacecraft, and Evans affirmed that we are.\n     Using a model of Mars Observer, Albee spent several minutes\ndescribing the project and the spacecraft's features. In answer\nto a question from Hawking, Chahine described a proposed\ndrag-free satellite, but confirmed that at this point, \"it's only\na concept.\" Chahine, who had met Hawking at Caltech about five\nyears before, described the professor as \"a living miracle of the\npower of the brain. He's miraculous, and he has such a good sense\nof humor.\"\n     The next stop, a demonstration on scientific data\nvisualization in Section 384's Digital Image Animation Lab,\nentertained and delighted the group, as everyone donned goggles\nto view 3-D images of Mars. Project Scientist Dr. Eric De Jong\nshowed off the latest data -- a comet that had only recently been\ndiscovered in orbit close to Jupiter. Hawking was curious about\nits composition, and as he was shown how images are developed, he\nasked several questions on their interpretation.\n     Norman Haynes, ALD, Office of Telecommunications and Data\nAcquisition, briefed the professor on the Space Flight Operations\nFacility, and then Hawking spoke with Stone.\n     The day ended with two technical discussions of particular\ninterest to the professor. Technical Group Leader Dr. Frank\nEstabrook and Senior Research Scientist Hugo Wahlquist described\na three-spacecraft gravity wave experiment, currently under way.\nThen planetary astronomer Dr. Richard Terrile explained the\nphilosophy and plans for extra solar system planetary detection.\n     The Hawking party, which had been visiting Southern\nCalifornia for five weeks, was headquartered at Caltech, and\nplanned to leave for England within a few weeks after the Lab\ntour. Upon departing, the Cambridge-based scientist promised\nChahine that he would return to JPL for another visit.\n                          ###\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4007, "properties": {"category": "comp.windows.x", "text": "From: ks@n8pph52.nt.com (Kamlesh Shah)\nSubject: Question on Motif Diaog Shell Widget under vuewm...\nOrganization: bnr\nDistribution: usa\nLines: 16\n\nDear netters,\n\nI have noticed something rather weared (I think) about creating a dialog shell\nwidget while running HP Vue's vuewm.\n\nFor some reason, every time I create a dialog shell the foreground and backgroun\nd colors are different compared to my toplevel shell.\nI am not doing anything special/different.\n\nDoes any body know anything about this problem?? How to fix it without hardcodin\ng the colors ?\n\nPlease respond to kamlesh@salzo.cary.nc.usa ....\n\nThanks !\n-Kamlesh\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4008, "properties": {"category": "comp.graphics", "text": "From: ddeciacco@cix.compulink.co.uk (David Deciacco)\nSubject: Re: Another CVIEW question (wa\nReply-To: ddeciacco@cix.compulink.co.uk\nLines: 5\n\n\nIn-Reply-To: <20APR199312262902@rigel.tamu.edu> lmp8913@rigel.tamu.edu (PRESTON, LISA M)\n\nI have a trident card and fullview works real gif jpg try it#\ndave\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4009, "properties": {"category": "rec.sport.baseball", "text": "Organization: Penn State University\nFrom: <WJS112@psuvm.psu.edu>\nSubject: Re: Phills vs Pirates\n <C5LCop.4Fv@boi.hp.com> <121055@netnews.upenn.edu>\n <1993Apr17.132013.1@ulkyvx.louisville.edu>\nLines: 17\n\nI hate to be the burden of bad news, but I think I will this time!  =)\n\nThe Phillies usually play at either 7:05 P.M. or 7:35 P.M. Eastern Time for\nweekdays.  On Sundays the time is usually 1:35 P.M. Eastern Time.\n\nBoise is in Idaho.  Idaho is in part of the Mountain Time Zone and in part\nof the Pacific Time Zone.  The times that were given were for Mountain Time\nZone starts.\n\nPlease check a map in case I am wrong.  But I am certain that Boise is in the\nMountain Time Zone.\n\n\nThanks for listening!\n\n\nThe Shep\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4010, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Hand Held Products, Inc.\nLines: 22\nDistribution: usa\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <93109.172450U28037@uicvm.uic.edu> Jason Kratz \n[...]\n\n> It is kind of funny though how you were the only one who picked up\n> the part about my sister being a social worker and keeping me up to date on  \nthe\n> gang thing.  Everyone else seemed to just skim by that part.\n> \n> Jason\n\n\nI guess that just means \"Everyone else\" was mistaken?\n\nJim\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4011, "properties": {"category": "rec.autos", "text": "From: don@bcars194.bnr.ca (Don Skanes)\nSubject: Jeep Laredo experiences\nKeywords: Jeep, Laredo\nNntp-Posting-Host: bcars194\nOrganization: Bell-Northern Research, Ottawa, Canada\nLines: 10\n\n\n I have been looking at buying a 1989 Jeep Laredo and was wondering\nif anyone had any bad or good experiences with this model. Is it\nall that much different than the other YJs? \n\n It looks, feels and sounds like a nice vehicle even thought the\nprice is rather steep for an '89 (12K Canadian).\n\n-- \ndon@bnr.ca\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4012, "properties": {"category": "sci.med", "text": "From: Donald Mackie <Donald_Mackie@med.umich.edu>\nSubject: Re: OB-GYN residency\nOrganization: UM Anesthesiology\nLines: 21\nDistribution: world\nNNTP-Posting-Host: 141.214.86.38\nX-UserAgent: Nuntius v1.1.1d9\nX-XXDate: Tue, 20 Apr 93 16:46:24 GMT\n\nIn article <1993Apr20.004158.6122@cnsvax.uwec.edu> David Nye,\nnyeda@cnsvax.uwec.edu writes:\n> \n>>>I believe it is illegal for a residency to discriminate against\nFMGs.\n> \n>>Is that true?  I know some that won't even interview FMGs.\n> \n>I think a case could be made that this is discriminatory,\nparticularly\n>if an applicant had good board scores and recommendations but wasn't\n>offered an interview, but I don't know if it has ever gone to court.\n\nFMGs who are not citizens are, like all aliens, in a difficult\nsituation. Only citizens get to vote here, so non-citizens are of\nlittle or no interest to legislators. Also, the non-citizen may well\nbe in the middle of processing for resident alien status. There is a\nstron sense that rocking the boat (eg. suing a residency program)\nwill delay the granting of that status, perhaps for ever.\n\nDon Mackie - his opinions\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4013, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Flame Therapy\nArticle-I.D.: fmsrl7.1pqdfrINN88e\nOrganization: Ford Motor Company Research Laboratory\nLines: 5\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\nI think it would be a great idea to have a new group created:\n\ncomp.sys.ibm.pc.flame.therapy\n\nanybody agree?\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4014, "properties": {"category": "talk.religion.misc", "text": "From: ece_0028@bigdog.engr.arizona.edu (David Anderson)\nSubject: Re: Christian Owned Organization list\nOrganization: University of Arizona\nLines: 15\n\nIn article <1993Apr13.025426.22532@mnemosyne.cs.du.edu> kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n>In article <47749@sdcc12.ucsd.edu> shopper@ucsd.edu writes:\n>>\n>>Does anyone have or know where I can find a list of christian-owned\n>>corporations and companies?  One that I know of is WordPerfect.\n>\n>I believe that WordPerfect is actually owned by the Mormons.\nSorry, but Mormons aren't generally considered to be Christians.\n\n\n>--\n>=kcochran@nyx.cs.du.edu | B(0-4) c- d- e++ f- g++ k(+) m r(-) s++(+) t | TSAKC=\n>=My thoughts, my posts, my ideas, my responsibility, my beer, my pizza.  OK???=\n>=\"Do you have some pumps and a purse in this shade?  A perfume that whispers, =\n>='please come back to me'?  I'm looking for something in Green.\"-Laurie Morgan=\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4015, "properties": {"category": "alt.atheism", "text": "From: eczcaw@mips.nott.ac.uk (A.Wainwright)\nSubject: Re: some thoughts.\nKeywords: Dan Bissell\nReply-To: eczcaw@mips.nott.ac.uk (A.Wainwright)\nOrganization: Nottingham University\nLines: 28\n\nIn article <healta.145.734928689@saturn.wwc.edu>, healta@saturn.wwc.edu (Tammy R Healy) writes:\n|> I hope you're not going to flame him.  Please give him the same coutesy you'\n|> ve given me.\n|> \n|> Tammy\n\n\nIf a person gives a well-balanced reasoned argument, Tammy, then all are\nhappy to discuss it with him.  If he makes astounding claims, which are not\nbacked up with any evidence then he must be expected to substantiate them.\nIf the original author had said that everything was his own opinion and not\nsupportable then people would have simply ignored him.  He did not.  He\nclaimed many things and his logic was seriously flawed.  His argument was for\nchristianity in an effort to try to convince atheists like myself to believe\nhim and his message.  I for one will not take things as read.  If you told me\nthat pink fluffy elephants did the dance of the sugar plum fairy on the dark\nside of Jupiter then I would demand evidence!\n\n\nAdda\n\n\n-- \n+-------------------------+-----------------------------------------------+\n|  Adda Wainwright        |    Does dim atal y llanw!         8o)         |\n|  eczcaw@mips.nott.ac.uk |   8o)        Mae .sig 'ma ar werth!           |\n+-------------------------+-----------------------------------------------+\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4016, "properties": {"category": "sci.space", "text": "From: agc@bmdhh286.bnr.ca (Alan Carter)\nSubject: Command Loss Timer (Re: Galileo Update - 04/22/93)\nKeywords: Galileo, JPL\nNntp-Posting-Host: bmdhh286\nOrganization: BNR-Europe-Limited, Maidenhead, England\nLines: 17\n\nIn article <22APR199323003578@kelvin.jpl.nasa.gov>, baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n|> 3.  On April 19, a NO-OP command was sent to reset the command loss timer to\n|> 264 hours, its planned value during this mission phase.\n\nThis activity is regularly reported in Ron's interesting posts. Could\nsomeone explain what the Command Loss Timer is?\n\nThanks, Alan\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n1 Belle Vue Court    |\"They're unfriendly, which    | Home: 0684 564438\n32 Belle Vue Terrace | is fortunate, really. They'd | Away: 0628 784351\nGreat Malvern        | be difficult to like.\"       | Work: 0628 794137\nWorcestershire       |                              |\nWR14 4PZ             | Kerr Avon, Blake's Seven     | Temporary: agc@bnr.ca\nEngland              |                              | Permanent: alan@gid.co.uk\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4017, "properties": {"category": "rec.autos", "text": "From: music@erich.triumf.ca (FRED W. BACH)\nSubject: Re: WARNING.....(please read)...\nOrganization: TRIUMF: Tri-University Meson Facility\nLines: 71\nDistribution: world\nNNTP-Posting-Host: erich.triumf.ca\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr15.173851.25846@convex.com>, tobias@convex.com (Allen Tobias) writes...\n#In article <1993Apr15.024246.8076@Virginia.EDU> ejv2j@Virginia.EDU (\"Erik Velapoldi\") writes:\n#>This happened about a year ago on the Washington DC Beltway.\n#>Snot nosed drunken kids decided it would be really cool to\n#>throw huge rocks down on cars from an overpass.  Four or five\n#>cars were hit.  There were several serious injuries, and sadly\n#>a small girl sitting in the front seat of one of them was struck \n#>in the head by one of the larger rocks.  I don't recall if she \n#>made it, but I think she was comatose for a month or so and \n#>doctors weren't holding out hope that she'd live.\n#>\n#>What the hell is happening to this great country of ours?  I\n#>can see boyhood pranks of peeing off of bridges and such, but\n#>20 pound rocks??!  Has our society really stooped this low??\n\n   Yes. Nobody is watching them.  If they get caught, there is no punishment\n at all.  In the old days such behaviour would be rewarded with a whipping\n with a good-sized belt, and then taken into some hospital to see first hand\n what kind of damage such accidents cause.   Of course this doesn't happen\n any more.  That whipping would probably save the kid's life by teaching\n him some respect for others.  A person with that little respect would\n inevitably wind up dead early anyway.\n\n   The problem is creeping gradualism.  If you put a frog into hot water,\n he just jumps out.  But if you put him into cold water and then ever-so-\n gradually heat it, the frog will cook.  This is what the entertainment\n industry and lack of religious, moral, and educational standards in our\n modern North American society have done to us over the years.  Now that\n we are about to be 'cooked', we may have woken up too late.\n\n#>\n#>Erik velapold\n# \n#Society, as we have known it, it coming apart at the seams! The basic reason\n#is that human life has been devalued to the point were killing someone is\n#\"No Big Deal\". Kid's see hundreds on murderous acts on TV, we can abort \n#children on demand, and kill the sick and old at will. So why be surprised\n#when some kids drop 20 lbs rocks and kill people. They don't care because the\n#message they hear is \"Life is Cheap\"!\n\n  And the education system and the Religious Leaders aren't doing much \n about it, either.  With both parents working in this society, where is\n the stabilizing influence at home?   Latchkey children are everywhere!\n And these latchkey kids can watch whatever rotten videos and listen to\n whatever violent hate-promoting \"music\" and videos they like because no\n one is home to stop it.\n\n  This day and age, when there is about 100 times more things to learn\n than when I went to school, our answer to this increased knowledge is\n shorter school hours and more leisure time!  I say keep the kids in\n school longer, feed them good food and teach them something, and when\n they get home, have a parent there to interact and monitor them.  There\n is a very old and now forgotten proverb: a child left on his own will\n bring a parent to grief.  Daycare systems are not the answer.  This is\n just shifting the parents' own responsibilities off on someone else to\n whom it's not a life-long committment, but rather just a job.\n\n\n# \n#AT\n\n  Followups should go to alt.parents-teens\n\n\n Fred W. Bach ,    Operations Group        |  Internet: music@erich.triumf.ca\n TRIUMF (TRI-University Meson Facility)    |  Voice:  604-222-1047 loc 327/278\n 4004 WESBROOK MALL, UBC CAMPUS            |  FAX:    604-222-1074\n University of British Columbia, Vancouver, B.C., CANADA   V6T 2A3\n\n These are my opinions, which should ONLY make you read, think, and question.\n They do NOT necessarily reflect the views of my employer or fellow workers.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.195+0000", "event": "documents", "entityId": 4018, "properties": {"category": "rec.autos", "text": "From: jimf@centerline.com (Jim Frost)\nSubject: Re: Is car saftey important?\nOrganization: CenterLine Software, Inc.\nLines: 32\nNNTP-Posting-Host: 140.239.3.202\n\njnielsen@magnus.acs.ohio-state.edu (John F Nielsen) writes:\n\n>In article <1r1jr9$m1v@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>>tcorkum@bnr.ca (Trevor Corkum) writes:\n>>I figure that 30mph collisions into brick walls aren't common enough\n>>for me to spend that much extra money for protection, but there are\n>>lots of low-speed collisions that do worry me.\n\n>Get into an 30+ mph accident and you may reconsider. I've been in one\n>and it is *really* scarey. My life is something I value more\n>than a car's looks or handeling. Consider it insurance, it may not\n>happen often but when it does, you'll sure be glad you got a safe car.\n\n>Granted the tests aren't perfect but I'd much rather be in a car that\n>did well in the test than a car that did horribly. \n\nYou raise a valid point, but again it's a tradeoff -- how much money\ndo you want to spend for that kind of protection?  You could buy a\nVolvo, Saab, or 'Benz and get really good crash protection (and other\nluxuries) but you'll pay significantly more for it.  In my case it's\nout of the question because *all* of those cars are beyond my budget.\n\nEven in high-speed head-on collisions the most beneficial item you can\nhave is a good old 3-point seatbelt.  Nowadays, at least in the US,\nyou get an airbag if you get a 3-point belt so (presumably) you get an\nadded safety benefit there as well.  That's something I certainly look\nfor and which can be had in inexpensive cars.\n\nMy $.02, of course.\n\njim frost\njimf@centerline.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4019, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jartsu@hut.fi (Jartsu)\nSubject: Good Hard-Disk driver for non-Apple drives? (Sys 7.1 compat.)\nNntp-Posting-Host: lk-hp-20.hut.fi\nReply-To: jartsu@vipunen.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 14\n\n\nHi there!\n\nWhat is your recommendation for a good hard-disk driver software for\nnon-Apple drives? I would mainly need it for a SyQuest removable media\ndrive, but maybe for some normal drives too.\nI have heard and seen good things about SilverLining, but don't know\nany competitors. It does not need to be fancy, filled with features...\nI more like it affordable.\n\nThanks\n\n--\nJartsu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4020, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: A Little Too Satanic\nOrganization: sgi\nLines: 16\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <66486@mimsy.umd.edu>, mangoe@cs.umd.edu (Charley Wingate) writes:\n|> Jeff West writes:\n|> \n|> >You claimed that people that took the time to translate the bible would\n|> >also take the time to get it right.  But here in less than a couple\n|> >generations you've been given ample proof (agreed to by yourself above)\n|> >that the \"new\" versions \"tends to be out of step with other modern\n|> >translations.\"\n|> \n|> What I said was that people took time to *copy* *the* *text* correctly.\n|> Translations present completely different issues.\n\nSo why do I read in the papers that the Qumram texts had \"different\nversions\" of some OT texts.   Did I misunderstand?\n\njon. \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4021, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Sinus vs. Migraine (was Re: Sinus Endoscopy)\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 16\n\nIn article <Lauger-240393141539@lauger.mdc.com> Lauger@ssdgwy.mdc.com (John Lauger) writes:\n>In article <19201@pitt.UUCP>, geb@cs.pitt.edu (Gordon Banks) wrote:\n\n>What's the best approach to getting off the analgesics.  Is there something\n\nTwo approaches that I've used: Tofranil, 50 mg qhs, Naproxen 250mg bid.\nThe Naproxen doesn't seem to be as bad as things like Tylenol in promoting\nthe analgesic abuse Headache.  DHE IV infusions for about 3 days (in\nhospital).  Cold turkey is the only way I think.  Tapering doesn't\nhelp. I wouldn't know how you can do this without your doctor.  I haven't\nseen anyone successfully do it alone.  Doesn't mean it can't be done.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4022, "properties": {"category": "comp.graphics", "text": "From: se92psh@brunel.ac.uk (Peter Hauke)\nSubject: Re: Grayscale Printer\nOrganization: Brunel University, Uxbridge, UK\nX-Newsreader: TIN [version 1.1 PL8]\nDistribution: na\nLines: 13\n\nJian Lu (jian@coos.dartmouth.edu) wrote:\n: We are interested in purchasing a grayscale printer that offers a good\n: resoltuion for grayscale medical images.  Can anybody give me some\n: recommendations on these products in the market, in particular, those\n: under $5000?\n\n: Thank for the advice.\n-- \n***********************************\n* Peter Hauke @ Brunel University *\n*---------------------------------*\n*      se92psh@brunel.ac.uk       *\n***********************************\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4023, "properties": {"category": "talk.politics.misc", "text": "From: peri@cco.caltech.edu (Michal Leah Peri)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: California Institute of Technology, Pasadena\nLines: 11\nNNTP-Posting-Host: sandman.caltech.edu\n\nDidn't the new study asked \"have you engaged in homosexual intercourse\nwithin the last two years\" whereas Kinsey asked \"have you ever engaged\nor thought about engaging in homosexual activity\".  Sort of like the \ndifference between \"did you have yogurt this morning\" and \"are you \nallergic to lactose\".\n\n-- \n\n                                                --  Michal\n----------------------------------------------------------------------\nImpressive amounts of material can be accreted in this manner.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4024, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: reza@magellan.ae.utexas.edu (Alireza Vali)\nSubject: Do the 2MB ATI Ultra Pro 16 and 24 bit Windows Drivers Work?\nOrganization: University of Texas at Austin\nLines: 35\n\nHi there.  We just bought a 486 DX2/66 Gateway system with a 2 meg ATI\nUltra Pro video card.  Everything seems to work fine except for the\nWindows Drivers for 800x600 24 bit, and 800x600 and 1024x768 16 bit\nmodes.  The fonts and icons start deteriorating after windows startup,\nand within minutes of use, everything on the screen is totally\nunintelligible.  Naturally, I called Gateway tech support to inquire\nabout this.  The technician asked me about the drivers, and I told him it\nwas version 1.5, build 59.  He told me that the 16 and 24 bit drivers for\nthe ATI Ultra Pro simply do not work!!!  Is this true?  If so, I'm simply\namazed.  How could this be?  The strange thing is I would have expected\nto see some discussion on here (unless the subject has made the FAQ!!!).\n\nOne very suspicious point that came up later was that he stated that none\nof the Windows Accelerator boards have working 16 and/or 24 bit drivers\nfor Windows 3.1.  I easily challenged him on that because I've been\nrunning a Diamond 24x in 15 bit mode at home for 4 months now, and I have\ntested and used the 24 bit mode as well.  He then backed off and said:\n\"Well, Diamond has been working on those drivers much longer.\"  Anyway, I\njust wanted to see if anyone else had any trouble and what they did about\nit.  Any feedback will be appreciated.\n\nThe system configuration is:\n\nGateway 486 DX2/66 Local Bus\n16 Megs Ram\nSCSI HD & CD-ROM\nUltrastor 34F Local Bus SCSI controller\nATI Ultra Pro Local Bus with 2MB VRAM\nDOS 6.0\nWindows 3.1\nMach 32 drivers version 1.5 (build 59)\n\nThanks in advance.\n-- \nAli R. Vali - reza@magellan.ae.utexas.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4025, "properties": {"category": "sci.electronics", "text": "From: kolstad@cae.wisc.edu (Joel Kolstad)\nSubject: Re: Can Radio Freq. Be Used To Measure Distance?\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 25\n\nIn article <C5v13M.C37@bcstec.ca.boeing.com> rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter) writes:\n>I'm wondering if it's possible to use radio waves to measure the\n>distance between a transmitter(s) and receiver?\n\nYes, you could.\n\n>Seems to me that you should be able to measure the signal strength\n>and determine distance. This would be for short distances (2000 ft),\n>and I would need to have accuracy of 6 inches, or so.\n\nWell, letsee (whipping out HP-48SX, soon to be GX): 6 inches/3*10^8 m/s=.5\nnanoseconds resolution.  Hmm.  That'll be rather difficult!\n\nThe more standard (read: better) method is to use ultrasound, generally\nsomewhere around 40kHz.  Sound travels a heck of a lot slower than light\n(radio waves), and is therefore much easier to deal with.\n\n>What frequencies would be best for this? Or does matter?\n\nIt might be easiest to visit a hardware store and look at the numerous\n\"sonic estimator\" type devices that do what you want here.  Many are pretty \ncheap too -- <$30.  (In fact, for awhile the Stanley Estimator was selling\nfor something like $8.  That's the one I bought! :-) )\n\n\t\t\t\t\t---Joel Kolstad\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4026, "properties": {"category": "rec.autos", "text": "From: ari@leland.Stanford.EDU (Ari Ollikainen)\nSubject: Re: 5W30, 10W40, or 20W50\nArticle-I.D.: morrow.1psg9cINNn86\nDistribution: world\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 20\nNNTP-Posting-Host: mordor.stanford.edu\n\nIn article <jgladu-060493121851@128.249.27.63> jgladu@bcm.tmc.edu (grungy/John F. Gladu) writes:\n>In article <1993Apr6.130550.13550@cs.tulane.edu>,\n>finnegan@invader.navo.navy.mil (Kenneth Finnegan) wrote:\n>> \n>> As an additional data point, I have run Castrol 20W50 exclusively\n>> in the following cars: 75 Rabbit, 78 Scirocco, 76 Rabbit, 78 Bus,\n>> 70 Beetle, 76 Bus, 86 Jetta GLI.  I've never had an oil-related\n>> problem.\n>\n>Add mine to that list:  '71,'72 SuperBeetles; '68,'69 Bugs; '61 dddPanel;\n>(cringe) '87 Toyota Tercel (It's my WIFE's car, honest:-).  I'm still\n>chicken about running it in the '90 Vanagon - that's got Castrol 10W40 in\n>it.\n\nI don't understand this last statement about the '90Vanagon...Our '90Vanagon\nOwner's Manual RECOMMENDS 20W50 !!\n\nAri Ollikainen(former VW fanatic: 62Bug, 62Bug+Porschepower, 64.5Porsche356SC,\n68BugAuto-Stick, 69Camper, 71Camper, 73Westfalia, 73VWPorsche914/2.0,\n81Westfalia, 85Vanagon, 85Westfalia...and now only 90VanagonCarat)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4027, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ibh@dde.dk (Ib Hojme)\nSubject: SCSI on dos\nKeywords: SCSI, DOS, streamer\nOrganization: Dansk Data Elektronik A/S\nLines: 23\n\nHello netters,\n\n\tI have a question concerning SCSI on DOS.\n\n\tI have a ST01 SCSI controller and two hard-disks conected\n\t(id's 0 and 1). I'd like to connect a SCSI streamer, but I\n\tdon't have software to access it. Does such a beast exist\n\tas shareware or PD ?\n\t\n\tAlso what if I want a third disk ? I know that DOs only can\n\t\"see\" two two physical and four logical disks. Will it be\n\tpossible to use extra disks ?\n\n\tThanks in advance.\n\n\tIb\n\n|               | Ib Hojme\n|    |   |      | Euromax\n|  __| __| __   | Dansk Data Elektronik A/S, Vejle branch, Denmark\n| /  |/  |/__>  | Telephone: Int +45 75 72 26 00\n| \\__/\\__/\\__   | Fax:       Int +45 75 72 27 76\n|               | E-mail:    ibh@dde.dk\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4028, "properties": {"category": "rec.motorcycles", "text": "From: bowmanj@csn.org (Jerry Bowman)\nSubject: Re: Should liability insurance be required?\nNntp-Posting-Host: fred.colorado.edu\nOrganization: University of Colorado Boulder, OCS\nLines: 24\n\nIn article <1qf5g8$32l@vtserf.cc.vt.edu> ranck@joesbar.cc.vt.edu (Wm. L. Ranck) writes:\n>Dan J. Declerck (declrckd@rtsg.mot.com) wrote:\n>: In states with No-fault auto-insurance, this applies. You basically insure your\n>: own vehicle, and the max you can sue for is about $400 (In MI, anyway).\n>: The point to be made with no-fault, is the fact that it removes the lawyers from the\n>: system, and lets people get their money faster. The removal of lawyers, reduces the\n>: clogs on court system, and thus, reduces government burdens, by not requiring so\n>: many judges. \n>\n>: does it work?? I don't know, ask the people of Michigan....\n>\n>No, ask the people of New Jersey where the \"no-fault\" hoax has been\n>going on for years.  Last I heard every state that ever got no-fault\n>insurance saw an increase in rates.  I know that's what happened in\n>NJ because I lived there when it changed.  Just one more reason I will\n>never go back to that state.\n>--\n>*******************************************************************************\n>* Bill Ranck             (703) 231-9503                     Bill.Ranck@vt.edu *\n>* Computing Center, Virginia Polytchnic Inst. & State Univ., Blacksburg, Va.  *\n>*******************************************************************************\n\n        In Colorado my agent tells me that no fault only applies to\n   the medical coverage.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4029, "properties": {"category": "misc.forsale", "text": "From: ttesta@kali.enet.dec.com (Tom Testagrossa)\nSubject: Re: Is itproper net etiquette to advertise a company's junk mail list?\nLines: 34\nReply-To: ttesta@kali.enet.dec.com (Tom Testagrossa)\nOrganization: Digital Equipment Corporation, Maynard, Ma.\nDistribution: usa\n\n\n--In article <1993Apr15.234451.15707@leland.Stanford.EDU>, thomper@leland.Stanford.EDU (Dale Buford Thompson) writes:\nIn article <C5JCCG.3Bn@tsoft.net> you write:\n>[stuff deleted]\n>\n>My company maintains a 20,000+ mailing list which is regularly rented for\n ^^^^^^^^^^         \n>[MORE stuff deleted]\n>TEd\n\n>>It is my impression that net etiquette does not allow companies to\n>>use the net to directly advertise their products.\n>>In addition to improper etiquette, this product is a mailing list\n>>used for generating junk mail.  \n>>Am I correct in assuming this is improper, and if so, what can be \n>>done to penalize such an improper use?\n\n>>Dale Thompson\n\tWell, Dale, I'd say offhand \"Keel-hauling\" would work pretty\nwell...we haven't had a good \"keel-hauling\" in a long time... (Sorry, it came up in a conversation yesterday and, well, I just love that phrase...)\n\tOr maybe just ask for folks to flood the guys mailbox with\nthe FAQ for net-etiquitte...sort of poetic justice for all the junk mail\nhe was trying to generate anyway...\n\nTom T\n\n**********************************************************************\n* Tom Testagrossa -             E-MAIL:  ttesta@kali.enet.dec.com     *\n*                               US-mail: 132 Clarendon St Apt #2      *\n*                                        Fitchburg, Ma 01420 U.S.A.   *\n*                               Phone:  Work (508)493-0437 (Voicemail)*\n*                                       Home (508)342-2362            *\n* Ask me about my guitars...                                          *\n***********************************************************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4030, "properties": {"category": "misc.forsale", "text": "From: fields@cis.ohio-state.edu (jonathan david fields)\nSubject: Misc Stuff for Sale\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 38\nDistribution: usa\nNNTP-Posting-Host: frigate.cis.ohio-state.edu\n\nMisc. Items for sale:\n\n\nMount Plate:  Sony Model CPM-203P, mounting plate for Sony portable CD players\nfor Portable: plugs into car lighter, snaps onto the bottom of any Sony\nCD Player:    Portable CD player, perfect condition. Will also throw in a \n\t      cassette adapter in SO SO condition.\n\t      Paid $45...............Asking $30.\n\nCar Speakers:\tSherwood 5 1/4\" two way car speakers, in car for 7 months,\n5 1/4 inch:\texcellent condition, Paid $65............Asking $40.\n\n4 inch:\t    Factory Speakers from Toyota excellent condition Asking $20.\n\n\nNintendo:   Nintendo Game Boy, Light Boy, Tetris, Super Mario Land,  \nGameboy:    NFL Football, Castlevania Adventure, Hyper Lode Runner, 4 years\n+ games:    old\tall in working condition, Asking $70.\nAccessories:\n\n\nWhole Internet:\tThe Whole Internet: User's Guide and Catalog by ED Krol,\nbook:\t\tguide to using the internet, where to fing information and \n\t\tresources.   Paid $30..........Asking $20.\n\nMicroSoft:    Never Used, came with my computer, Asking $30.\nVisual Basic:\n\nMicroSoft: \t   Came with my computer, never used, Asking $100.\nWord for Windows:\n\n\n\t\t\t\t\tThanks,\n\n\t\t\t\t\tJonathan D. Fields\n\t\t\t\t\tfields@cis.ohio-state.edu\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4031, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: neil@stone.oz.au (Neil Watkinson)\nSubject: COM3 COM4 is there a hardware standard ?\nOrganization: Stone Microsystems, NSW, Australia\nKeywords: COM3 COM4\nLines: 19\n\nHelp....\n\nI need to implement COM3 and COM4 on a board that I'm designing and I'm\nfinding it dificult to track down a definition (hardware that is) of COM3\nand COM4.\n\nI have the IO adresses and the fact that COM3 shares IRQ4 with COM1 and COM4\nshares IRQ3 with COM2, except exactly how this IRQ sharing is done is not\nclear especially if the existing COM1/2 does not allow IRQ sharing. Does the\nstandard??? allow for a different IRQ to be used and if so how.\n\nPlease answer by email to :-\n\n      neil@stone.oz.au\n\nthanks in advance\n\nNeil Watkinson.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4032, "properties": {"category": "rec.motorcycles", "text": "From: mjs@sys.uea.ac.uk (Mike Sixsmith)\nSubject: Re: Countersteering_FAQ please post\nOrganization: UEA School of Information Systems, Norwich, UK.\nLines: 86\nNntp-Posting-Host: zen.sys.uea.ac.uk\n\nleavitt@cs.umd.edu (Mr. Bill) writes:\n\n>mjs@sys.uea.ac.uk (Mike Sixsmith) writes:\n>mjs>Also, IMHO, telling newbies about countersteering is, er, counter-productive\n>mjs>cos it just confuses them. I rode around quite happily for 10 years \n>mjs>knowing nothing about countersteering. I cannot say I ride any differently\n>mjs>now that I know about it.\n\n>I interpret this to mean that you're representative of every other\n>motorcyclist in the world, eh Mike?  Rather presumptive of you!\n\nIMHO = in my humble opinion!!\n\n>leavitt@cs.umd.edu (Mr. Bill) writes:\n>leavitt>The time to learn countersteering techniques is when you are first\n>leavitt>starting to learn, before you develop any bad habits.  I rode for\n>leavitt>five years before taking my first course (MSF ERC) and learning\n>leavitt>about how to countersteer.  It's now eight years later, and I *still*\n>leavitt>have to consciously tell myself \"Don't steer, COUNTERsteer!\"  Old\n>leavitt>habits die hard, and bad habits even harder.\n\n>mjs>Sorry Bill, but this is complete bollocks. You learned how to countersteer \n>mjs>the first time you rode the bike, it's natural and intuitive. \n\n>Sorry Mike, I'm not going to kick over the \"can you _not_ countersteer\n>over 5mph?\" stone.  That one's been kicked around enough.  For the sake of\n>argument, I'll concede that it's countersteering (sake of argument only).\n\n>mjs>MSF did not teach you *how* to countersteer, it only told you what\n>mjs>you were already doing.\n\n>And there's no value in that? \n\n\nI didn't say there was no value - all I said was that it is very confusing\nto newbies. \n\n> There's a BIG difference in: 1) knowing\n>what's happening and how to make it do it, especially in the extreme\n>case of an emergency swerve, and: 2) just letting the bike do whatever\n>it does to make itself turn.  Once I knew precisely what was happening\n>and how to make it do it abruptly and on command, my emergency avoidance\n>abilities improved tenfold, not to mention a big improvement in my normal\n>cornering ability.  I am much more proficient \"knowing\" how to countersteer\n>the motorcycle rather than letting the motorcycle steer itself.  That is,\n>when I *remember* to take cognitive command of the bike rather than letting\n>it run itself through the corners.  Whereupon I return to my original\n>comment - better to learn what's happening right from the start and how\n>to take charge of it, rather than developing the bad habit of merely going\n>along for the ride.\n\nBill, you are kidding yourself here. Firstly, motorcycles do not steer\nthemselves - only the rider can do that. Secondly, it is the adhesion of the\ntyre on the road, the suspension geometry  and the ground clearance of the\n motorcycle which dictate how quickly you can swerve to avoid obstacles, and\nnot the knowledge of physics between the rider's ears. Are you seriously\nsuggesting that countersteering knowledge enables you to corner faster\nor more competentlY than you could manage otherwise??\n\n\n>Mike, I'm extremely gratified for you that you have such a natural\n>affinity and prowess for motorcycling that formal training was a total\n>waste of time for you (assuming your total \"training\" hasn't come from\n>simply from reading rec.motorcycles).  However, 90%+ of the motorcyclists\n>I've discussed formal rider education with have regarded the experience\n>as overwhelmingly positive.  This regardless of the amount of experience\n>they brought into the course (ranging from 10 minutes to 10+ years).\n\nFormal training in this country (as far as I am aware) does not include\ncountersteering theory.  I found out about countersteering about six years ago,\nfrom a physics lecturer who was also a motorcyclist. I didn't believe him\nat first when he said I steered my bike to the right to make it turn left,\nbut I went out and analysed closely what I was doing, and realized he was \nright! It's an interesting bit of knowledge, and I've had a lot of fun since\nthen telling others about it, who were at first as sceptical as I was. But\nthat's all it is - an interesting bit of knowledge, and to claim that\nit is essential for all bikers to know it, or that you can corner faster\nor better as a result, is absurd.\n\nFormal training is in my view absolutely essential if you're going to\nbe able to ride a bike properly and safely. But by including countersteering\ntheory in newbie courses we are confusing people unnecessarily, right at\nthe time when there are *far* more important matters for them to learn.\nAnd that was my original point.\n\nMike\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4033, "properties": {"category": "sci.crypt", "text": "From: caronni@nessie.cs.id.ethz.ch (Germano Caronni)\nSubject: Some Questions (was: REVISED SUMMARY)\nOrganization: Swiss Federal Institute of Technology (ETH), Zurich, CH\nLines: 90\n\n\n\n> Here is a revised version of my summary that corrects some errors and\n> provides some additional information and explanation.\n\nThank you very much. After reading the text some distinct questions\narised to me, which I guess will also be asked by other people. Perhaps\nwould it be interesting to find an answer to these questions ?\n\n\n>                      THE CLIPPER CHIP: A TECHNICAL SUMMARY\n>    N, a 30-bit serial number (this length is subject to change)\n\nshorter or longer ?\n\n> Once the session key K is established, the Clipper Chip is used to\n> encrypt the conversation or message stream M (digitized voice).  The\n> telephone security device feeds K and M into the chip to produce two\n> values:\n\n>    E[M; K], the encrypted message stream, and\n>    E[E[K; U] + N; F], a law enforcement field ,\n\n> which are transmitted over the telephone line.  The law enforcement\n> field thus contains the session key K encrypted under the unit key U\n> concatenated with the serial number N, all encrypted under the family\n> key F.  The law enforcement field is decrypted by law enforcement after\n> an authorized wiretap has been installed.\n\nFirst question: When will the LawEnforcmentField be transmitted, and how\ndoes the remote Clipper Chip handle it? Is it transmitted periodically\nin the stream of encrypted blocks, or just at the beginning ? Does the\nphone at the other side discard those packets via a protocol whatsoever,\nor tries it to turn them into voice-output ? (Which would not be disturbing)\n\n\n> At the beginning of a session, a trusted agent from each of the two key\n> escrow agencies enters the vault.  Agent 1 enters a secret, random\n> 80-bit value S1 into the laptop and agent 2 enters a secret, random\n> 80-bit value S2. These random values serve as seeds to generate unit\n> keys for a sequence of serial numbers.  Thus, the unit keys are a\n> function of 160 secret, random bits, where each agent knows only 80.\n\nSecond question: Why!?!? Why is such a strange procedure used, and not\na real RNG ? This turns those S1,S2 in a kind of bottleneck for system-\nsecurity.\n\n\n> When law enforcement has been authorized to tap an encrypted line, they\n> will first take the warrant to the service provider in order to get\n> access to the communications line.  Let us assume that the tap is in\n> place and that they have determined that the line is encrypted with the\n> Clipper Chip.  The law enforcement field is first decrypted with the\n> family key F, giving E[K; U] + N.  Documentation certifying that a tap\n> has been authorized for the party associated with serial number N is\n> then sent (e.g., via secure FAX) to each of the key escrow agents, who\n> return (e.g., also via secure FAX) U1 and U2.  U1 and U2 are XORed\n> together to produce the unit key U, and E[K; U] is decrypted to get the\n> session key K.  Finally the message stream is decrypted.  All this will\n> be accomplished through a special black box decoder.\n\nSo no (technical) provision will be taken to place a 'timeout' on these\nwarrants? This would be a unique possibility to realize such a technical\nrestriction, by letting the escrow-agencies perform the decoding of the\nsession key. Just take modem-lines instead of secure fax. Is this such\na bad idea ?\n\n\n> A successor to the Clipper Chip, called \"Capstone\" by the government\n> and \"MYK-80\" by Mykotronx, has already been developed.  It will include\n> the Skipjack algorithm, the Digital Signature Standard (DSS), the\n> Secure Hash Algorithm (SHA), a method of key exchange, a fast\n> exponentiator, and a randomizer.  A prototoype will be available for\n> testing on April 22, and the chips are expected to be ready for\n> delivery in June or July.\n\nWow! (How does the randomizer work?) Are the SHA (and Key exchange) secret,\nor publicly known ? Key-Exchange is DH, I guess ?\n\nIt seems that those who are opposed to this chip shall have a tough time,\nyour government realy means to act. :-(\n\nFriendly greetings,\n\t   Germano Caronni\n\n-- \nInstruments register only through things they're designed to register.\nSpace still contains infinite unknowns.\n                                                              PGP-Key-ID:341027\nGermano Caronni caronni@nessie.cs.id.ethz.ch   FD560CCF586F3DA747EA3C94DD01720F\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4034, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: a universal RIGHT to bear arms? NOT!\nOrganization: California Institute of Technology, Pasadena\nLines: 25\nDistribution: usa\nNNTP-Posting-Host: sandman.caltech.edu\n\nrats@cbnewsc.cb.att.com (Morris the Cat) writes:\n\n\n>||\tWrong again, but if you want proof: turn on your TV and look\n>||for a show starring Chuck Connors.  It was called, \"The Rifleman.\"\n>||Time how fast he can fire that old lever-action rifle.\n\n>|Believe it or not, I remember seeing an advertisement for someone\n>|selling one of these; apparently Winchester produced a bunch of\n>|these commercially to commemorate the television show. I believe it was \n>|being sold as a handgun because of the barrel length and lack of a stock.\n\n>I might be mistaking the above weapon for the gun used by Steve\n>McQueen in \"Wanted: Dead or Alive.\" If so, sorry. Did Winchester\n>make any commemorative models of the rifle used by Chuck Connors\n>in the movie? Chuck Connors was an NRA member before he died recently...\n\nI don't know for sure if Winchester made any commemeratives.  If I\nrecall correctly, the rifle itself was a .44-40 Model 92 with an\noversized loop lever.  I don't think Winchester makes this rifle\nany more.  Rossi make a Model 92 look-alike in .38 Special and\n.357 Magnum.\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4035, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: guyd@austin.ibm.com (Guy Dawson)\nSubject: Re: Hercules Graphite?\nOriginator: guyd@pal500.austin.ibm.com\nOrganization: IBM Austin\nLines: 38\n\n\nIn article <C5JBKF.9B8@usenet.ucs.indiana.edu>, ntaib@silver.ucs.indiana.edu (Iskandar Taib) writes:\n> In article <1993Apr06.185638.12139@metrics.com> tomh@metrics.com (Tom Haapanen) writes:\n> \n> >Has anyone used a Hercules Graphite adapter?  It looks good on paper, and\n> >Steve Gibson gave it a very good review in Infoworld.  I'd love to get a\n> >real-world impression, though -- how is the speed?  Drivers?  Support?\n> \n> The PC World reviewers found out that the Herc people had hard-coded\n                                            ^^^^\n\nI think it was the IIT people who make the chip the card is based on who hard-coded\nthe string.\n\nOne of the weeklies looked into this an came to the conclusion that the IIT chip\nwas still pretty fast.\n\n> Winbench text into the driver. Clever, no? In any case, the Winbench\n> results are pretty much inflated.\n> \n> When and if you get one send me mail.. I might buy that ATI GU+ off\n> you.. 9-)\n> \n> \n> \n> -- \n> -------------------------------------------------------------------------------\n> Iskandar Taib                          | The only thing worse than Peach ala\n> Internet: NTAIB@SILVER.UCS.INDIANA.EDU |    Frog is Frog ala Peach\n> Bitnet:   NTAIB@IUBACS                 !\n\n\nGuy\n-- \n-- -----------------------------------------------------------------------------\nGuy Dawson - Hoskyns Group Plc.\n        guyd@hoskyns.co.uk  Tel Hoskyns UK     -  71 251 2128\n        guyd@austin.ibm.com Tel IBM Austin USA - 512 838 3377\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4036, "properties": {"category": "sci.med", "text": "From: mryan@stsci.edu\nSubject: Should I be angry at this doctor?\nLines: 26\nOrganization: Space Telescope Science Institute\nDistribution: na\n\nAm I justified in being pissed off at this doctor?\n\nLast Saturday evening my 6 year old son cut his finger badly with a knife.\nI took him to a local \"Urgent and General Care\" clinic at 5:50 pm.  The \nclinic was open till 6:00 pm.  The receptionist went to the back and told the \ndoctor that we were there, and came back and told us the doctor would not \nsee us because she had someplace to go at 6:00 and did not want to be delayed \nhere.  During the next few minutes, in response to my questions, with several \ntrips to the back room, the receptionist told me:\n\t- the doctor was doing paperwork in the back,\n\t- the doctor would not even look at his finger to advise us on going\n\t  to the emergency room;\n\t- the doctor would not even speak to me;\n\t- she would not tell me the doctor's name, or her own name;\n\t- when asked who is in charge of the clinic, she said \"I don't know.\"\n\nI realize that a private clinic is not the same as an emergency room, but\nI was quite angry at being turned away because the doctor did not want to\nbe bothered.  My son did get three stitches at the emergency room.  I'm still \ntrying to find out who is in charge of that clinic so I can write them a \nletter.   We will certainly never set foot in that clinic again.\n\n-------------------------------------------------------------------------\nMary Ryan\t\t\t\tmryan@stsci.edu\nSpace Telescope Science Institute\nBaltimore, Maryland\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4037, "properties": {"category": "rec.sport.baseball", "text": "From: pjtier01@ulkyvx.louisville.edu\nSubject: Re: Montreal Question.......\nLines: 12\nNntp-Posting-Host: ulkyvx.louisville.edu\nOrganization: University of Louisville\n\nIn article <1993Apr19.015442.15723@oz.plymouth.edu>, k_mullin@oz.plymouth.edu (Mully) writes:\n>    What position does Mike Lansing play?  I cannot seem to find it \n>  anywhere.  Thanks!!!!1\n\nCurrently, he's all over.  He played 2nd when Deshields was out.  He was\nshifted to third when Delino came back.  And today, he played SS for a cold\nWil Cordero.  \n\nHis natural positions seem to be in the middle infield, but they will seemingly\nfind a spot for himm somewhere as long as his bat is hot.\n\n                                                                  P. Tierney\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.196+0000", "event": "documents", "entityId": 4038, "properties": {"category": "talk.religion.misc", "text": "From: e_p@unl.edu (edgar pearlstein)\nSubject: Re: cults (who keeps them going ?)\nOrganization: University of Nebraska--Lincoln\t\nLines: 20\nDistribution: world\nNNTP-Posting-Host: unlinfo.unl.edu\n\nmuttiah@thistle.ecn.purdue.edu (Ranjan S Muttiah) writes:\n\n\n>Mr. Clinton said today that the horrible tragedy of the Waco fiasco\n>should remind those who join cults of the dangers of doing so.\n>Now, I began scratching my head thinking (a bad sign :-), \"don't the \n>mainstream religions (in this case Christianity...or the 7th day \n>adventist in particular) just keep these guys going ? Isn't Mr. Clinton \n>condemning his own religion ? After all, isn't it a cult too ?\"\n\n\nA good point.  What helps to keep such things going is the public\nattitude that one should have \"faith\"\"; that some authority from\non high should not be subjected to mere reason.  Couple this with a\nvariety of personality quirks, mojor and minor mental illnesses, and\nego of would-be leaders, and you get all the variety of cults and \nreligions that people subscribe to.\n\n\n.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4039, "properties": {"category": "sci.med", "text": "From:  Alla V. Kotenko <avk@lst.msk.su>\nSubject: SALE! MELITTIN (see letter)\nReply-To: avk@lst.msk.su\nOrganization: Laboratory Systems & Technology, Ltd.\nLines: 17\n\n                                MELITTIN\n\n        In cooperation with the State Scientific Center on Antibiotics\n we have elaborated our own technology of bee venom components isolation,\n particularly melitin, using modern chromatographic eduipment by \"Pharmacia\"\n and \"Millipore\" Companies, with application of only the materials, admitted\n for manufacturing pharmaceutic production. High quality of our product is\n acknowledged by the expertise of the Accredited test laboratory firm \"Test\"\nv/o \"Souzexpertisa\" TPP RF.\n        \u00ed\u00c5littin - no less than 92% of the primary substance content.\nQuantity:from 100 g up to 5 kg.\nDate of manufacture: March 1993.\nPrice:2500 dol.USA per 1g.\nCertificate:Is on sale\nAdress:105094,Moscow,Semyenovskiy Val,10-a,\n\"BOST\"Partnership Ltd.Tel/fax 194-86-04,369-46-68\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4040, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nArticle-I.D.: alchemy.1993Apr6.200446.7553\nOrganization: University of Toronto Chemistry Department\nLines: 33\n\nIn article <1993Apr6.170330.12314@is.morgan.com> scairns@fsg.com writes:\n>Messier is a joke this year - bad back not withstanding.  His play is\n>the reason the Rangers will be on the golf course in a couple of weeks.\n>Gartner is my choice - the guy works his butt off every game.\n>\n>Kovalev - no surprise.  He's played adequately but as bad defensively\n\nKovalev is too talented a player to play for Roger Nielson...Roger needs\nplayers who can't think for themselves and can only skate in straight\nlines up and down the ice.  Dudley and Nielson are the only two coaches\nbad enough in the league to take talents like Mogilny and Kovalev and\nnot know how to turn them into Bure and Selanne.\n\n>as was predicted in preseason.  Perhaps he'll pull an Alex Mogilny in\n>a couple of years and surprise us then.  Zubov wasn't expected to make\n>it out of the minors this season and owing to the number of injuries,\n>has proved to be a very pleasant surprise.\n>\n\nGet Muckler as coach, and Kovalev will look like Mogilny.\n\nThe trouble with the Rangers is that Neil Smith went out and got\nplayers like Messier, Kovalev, and Graves who have been schooled in\ntaking the game to their opponent and attacking, while hiring coaches\nwho are interested in \"rope-a-dope\" strategies.  If you want the\nRoger Nielsons of the world to be your coach you don't go out and\nget a Mark Messier, who is an old dog who can't learn new tricks\nfrom a known loser, and you don't waste your draft picks on players\nlike Kovalev.\n\nGerald\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4041, "properties": {"category": "talk.politics.misc", "text": "From: rhockins@enrico.tmc.edu (Russ)\nSubject: Re: To be, or Not to be [ a Disaster ]\nDistribution: na\nOrganization: /etc/organization\nLines: 46\n\nIn article <philC5Ht85.H48@netcom.com> phil@netcom.com (Phil Ronzone) writes:\n>\n>Not at all. You are apparently just another member of the Religious Left.\n>\n                                                                       \nNot at all.  I am not a member of the Religious Left, Right, or even\nCenter.  In fact I don't consider myself very religious at all [ this will\nprobably result in flames now :) ].  In fact Phil, you should leave\nreligion out of it.  It just clouds the issue.\n                                                                       \n>Show me all these environmental \"disasters\". Most of them aren't. And the\n>natural disasters we have had individually far outweigh the man-made ones.\n                                                                         \nHow typical.  So you think we shouldn't avoid these 'events' [ I shall\nrefrain from the word disaster since it seems to upset you so much.  :( ]\nwhen we can.  In case you didn't realize it, the natural disasters [ oops,\nsorry events ] you are refering to  we have no control over.  Man-made\nones we do.\n\nI guess you missed the show on Ch 20 earlier this week about the disaster\n[ oops there I go again... I meant to say event ] on the Exxon Valdez.\nJust a natural every day occurance to spread oil on 300 Miles of beach. I\nwould like to know which natural event [ hey I remembered not to say disaster ]\nthat would be similar to this.\n\t\t\t\t\t\t\t       \n>Most of your so-called disasters (Love Canal, Times Beach, TMI) aren't\n>disasters at all.\n                                                                   \nHmm, I suppose you could be right.  They are as natural as a tree, or a\nsunrise.  NOT !\n                                                                         \n>So look, if you want to worship trees (or owls or snails or whatever), fine, do\n>so. But DON'T try to push the scaredness of YOUR religious off onto me.\n>\n\nSo look, if you want to worship a oil slick ( or toxic waste dump or live\nin a house that has a cesspool in the front yard ), fine, you have my\npermission to do so [ yea right like you need MY permission... ], it just\nwon't be in the neighborhood where I live.  But DON'T try to push your\nshortsighted tunnelvision views off on the rest of us.\n\n-- \n| Russell Hockins               | There are people who believe that there is |\n| Innovative Interfaces, Inc.   | no such thing as an environmental disaster.|\n|                               | Pretty weird... ain't it?                  |\n| My own opinions  no one elses |  packet : ka6foy @ ki6yk.#nocal.ca.na.usa  |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4042, "properties": {"category": "comp.windows.x", "text": "From: hsteve@carina.unm.edu ()\nSubject: Re: Changing dpy->max_request_size ?\nOrganization: University of New Mexico, Albuquerque\nLines: 17\nNNTP-Posting-Host: carina.unm.edu\n\nIn article <C55zLo.7wA@world.std.com> oj@world.std.com (Oliver Jones) writes:\n<In article <118590@netnews.upenn.edu> mcclenne@dingdong.cis.upenn.edu (nennelccM nodroG) writes:\n<>\n<>Does anyone out there know how to change the maximum request size for\n<>a server \n<\n<It is ordinarily set to the highest value the underlying OS can\n\nYes, and you don't want to change this value if you're running Image type\napplications.  \n\n\n-- \n    _---_     Steve  \n   / o o \\    hsteve@hydra.unm.edu, hsteve@carina.unm.edu\n  | \\___/ |   \n              Just say NO to VMS!!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4043, "properties": {"category": "talk.politics.mideast", "text": "From: pgf5@cunixa.cc.columbia.edu (Peter Garfiel Freeman)\nSubject: Re: Deriving Pleasure from Death\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: pgf5@cunixa.cc.columbia.edu (Peter Garfiel Freeman)\nOrganization: Columbia University\nLines: 22\n\n\nWith regards to my condemnation of Marc's ridiculous attacks on the\nAmerican Department of Justice, and further attacks on Jews, to\nanyone who took offense to my calling Marc stupid, I\napologize for pointing out the obvious.  It was a waste of the\nNet's time.  I hope, though, that most American citizens have\nthe basic knowlege of the structure of American government to\nunderstand the relationship between the Justice Department\nas a part of the Executive Branch, and the Courts, which\nare of the Judicial Branch.  \nMarc's ignorance of basic civic knowlege underscores his\ninability to comprehend and interpret foreign affairs.  \n\n\nPeace,\nPete\n\n\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4044, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: Re: Science News article on Federal R&D\nOrganization: Fermi National Accelerator Laboratory\nLines: 24\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <C5r2DK.764@skates.gsfc.nasa.gov>, xrcjd@resolve.gsfc.nasa.gov (Charles J. Divine) writes:\n> Just a pointer to the article in the current Science News article\n> on Federal R&D funding.\n> \n> Very briefly, all R&D is being shifted to gaining current \n> competitive advantage from things like military and other work that\n> does not have as much commercial utility.\n> -- \n> Chuck Divine\n\nGulp.\n\n[Disclaimer:  This opinion is mine and does not represent the views of\nFermilab, Universities Research Association, the Department of Energy,\nor the 49th Ward Regular Science Fiction Organization.]\n \n-- \n     O~~*           /_) ' / /   /_/ '  ,   ,  ' ,_  _           \\|/\n   - ~ -~~~~~~~~~~~/_) / / /   / / / (_) (_) / / / _\\~~~~~~~~~~~zap!\n /       \\                          (_) (_)                    / | \\\n |       |     Bill Higgins   Fermi National Accelerator Laboratory\n \\       /     Bitnet:     HIGGINS@FNAL.BITNET\n   -   -       Internet:  HIGGINS@FNAL.FNAL.GOV\n     ~         SPAN/Hepnet:      43011::HIGGINS \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4045, "properties": {"category": "rec.autos", "text": "Organization: Penn State University\nFrom: <RSM2@psuvm.psu.edu>\nSubject: US-Made M-B SUV\nLines: 10\n\nMercedes-Benz announced yesterday its plans to begin building sport-utility\nvehicles in the US by 1997.  They are targeted at the Jeep Grand Cherokee\net al. and will reportedly sell for less than $30,000.\n\nDid anyone see a picture?   Is it the G-wagon (Gelaendewagen) currently\navailable in Europe (and in the US by grey-market) or is it an entirely new\nvehicle?  Any details would be appreciated.\n\nDick Meyer\nApplied Research Laboratory, Penn State\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4046, "properties": {"category": "talk.politics.misc", "text": "From: ckincy@cs.umr.edu (Charles Kincy)\nSubject: Re: Top Ten Signs That It's the Age of Aquarius on Pennsylvania Avenue\nNntp-Posting-Host: next4.cs.umr.edu\nOrganization: University of Missouri - Rolla, Rolla, MO\nLines: 79\n\nIn article <1ql7tuINN8j8@MINERVA.CIS.YALE.EDU> chaudhary-amar@yale.edu (Amar Chaudhary) writes:\n>\n>Here's my own top ten response to Mr. Ipser's list\n>\n>8.   It just so happens that that it takes money to make this country work,\n>     to provide the services that people need, and to help solve the problems\n>     that need to be solved.  Granted, some things can probably be done more\n>     efficiently for less money, and should be.  But some things are going to\n>     cost more money and I'm sick and tired of hearing everyone whining about\n>     taxes all the time.  You want to live in my country, you pay your fair\n>     share!\n\nSome people pay shares that are more \"fair\" than others, and will continue\nto do so, even with the presence of President Clinton.  Until the rich \nelite *hurt* from taxes and shower me with their blood dripping from the\nwound of the tax dagger, I will scream and yell.  Because, taxes are \nkilling the poor and middle-class, and I'm tired of the wealthy getting\na free ride in this country.  Sure, they pay a lot of taxes, but I want\nthem to SHARE MY PAIN!!\n\nAnd, not even Slick Willy is *that* fair, is he, seeing that he and his\nwife qualify as one of those wealthy people I was talking about?  [They're\non the lower end of \"wealthy\", but \"wealthy\" they are.]\n\n>7.   I can't believe what hypocrites people are when they ask people to give\n>     up their lives for their country and then complain about taxes.  If you're\n>     willing to send me off to die for some stupid obsession with fighting an\n>     enemy which at best doesn't affect us and at worst really should be our\n>     friend, then you have no right to tell me you shouldn't pay taxes!\n\nYah, I think the draft for Vietnam was a sack of shit.  But, do we get\nto pick and choose which laws we obey, Mr. Chaudhary?  If so, shall we\nset up a \"you follow the laws you like, and I'll follow the laws I \nlike\" arrangement?\n\n>6.   Hey, I think the beaded curtains add a lovely 60's-esque touch!\n\nI never thought much of beaded curtains.\n \nNow beaded seat-covers, on the other hand....\n\n>5.   [Health care is a human right--deleted]\n\nI didn't think I was going to respond to this, but I changed my mind.\n\nTell me, why do you think health care is a human right?  \n\nThis isn't a flame or anything, I just wonder.  Next thing you know, \nfree public transportation will be a human right.  Maybe membership\nat prestigious health spas?\n\n[Sorry to grease the hill on ya there....]\n\n>4.   Make love, not War!\n\nBe sure and wrap that wanker when you go spreadin' that free love stuff\naround.  (Or, after the FDA gets its thumb out of its ass, use that neat\nnew \"Reality\" femi-condom.)\n\n>3.   Contrary to popular belief, it is possible to be a male and a feminist\n>     at the same time.  To discriminate against or to deny equal opportunity\n>     to a MAJORITY of the population is just plain wrong, and trying to force\n>     them into some sort of tradition role is even worse.  Women certainly \n>     have as much to offer this world as men, and the day that gender\n>     discrimination is finally broken it going to make all the revolutions of\n>     the past few centuries seem like reform bills.  I look forward to it.\n\nSo do I.  Amen.  And all that.\n\n>1.   HEY MAN, ACADAMIA RULES!!\n\nWhat the hell is an \"acadamia\" anyway?  Is that like a macadamia?  \n\ncpk\n-- \nIt's been 80 days.  Do you know where your wallet is?\n\nSlick Willy's already got his hand in my pocket.  I'm just afraid\nof what he might grab hold of.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4047, "properties": {"category": "rec.sport.baseball", "text": "From: king@cogsci.ucsd.edu (Jonathan King)\nSubject: Re: Zane!!Rescue us from Simmons!!\nOrganization: University of California, San Diego\nLines: 120\nDistribution: na\nNNTP-Posting-Host: cogsci.ucsd.edu\nSummary: oh please, it's way too early to get upset.\n\nMamatha Devineni Ratnam <mr47+@andrew.cmu.edu> writes:\n>So far Simmons looks like a total idiot.\n\nWhatever you say.  I think it's just 12 games into the season myself, so\nI'm going to wait a bit before calling names.\n\n>2) I am sure Simmons was ready to say I told you so after Otto had an\n>impressive win last week. Now Otto's latest debacle has restored Simmons'\n>reputation. Now he looks like he is back in his '92 form when he had the\n>AL's highest ERA among starters. Four our sake(not Ted's sake), I hope he\n>pitches with a 3.5 ERA for the rest of the season. Yeah, right.\n\nI expect that Dave Otto will be a really bad pitcher, and I have no\nidea why Simmons ever wanted him.  On the other hand, I expect him to\nrelease Otto if he doesn't turn things around pretty fast.  (BTW,\nOtto's game score for that 0 IP stinker was only 22, which points out\na problem with the method since Otto's performance was infinitely bad,\nand excruciatingly prolonged.)\n\n>3) Tomlin and Merced are a bit disappointing. They are still doing decently.\n>But considering the considerable amount of talent and maturity they have\n>shown their first seasons, they seem to have actually gotten a little\n>bit worse. \n\nI think Merced's rookie year was a bit flukey, but aren't you willing to\ngive him some more at bats (and Tomlin a few more starts) before acting\nso gloomy?\n\n>4) Walk: Well, he seems to be on the losing end tonight. BUt I still think \n>that Walk desrved his contract.\n\nNo he didn't.  Walk is a time bomb.  He has no stuff whatsoever, and when\nthe league finally realizes this, it won't be pretty at all.\n\n>8) The Rookie batters: Well, Young has surprised me a bit with his\n>instant impact. Other than that, their excellent performance hasn't\n>been too much of a surprise. I think we should thank Doughty for that.\n\nDon't be so fast.  Doughty is the guy who signed Steve Buechele, which\nwas a move that threatened to bury Kevin Young in the minors.\nMeanwhile, I'm not sure whether Doughty or Simmons signed Martin as a\nsix-year free agent before the 1992 season.\n\n>9) Rookie Pitchers: Worse than expected, especially Cooke.\n\nTwice through the rotation, and you've given up?  Yikes.\n\n>10) Slaught: How come he wasn't given a contract extension last year? \n>Now his value has increased immensely.\n\nBut so has his age, at least in baseball terms.  The useful half-life\nof a 34- year-old injury-prone catcher can't be much longer than a year.\n\n>11) Lonnie Smith!! Well, Eric Davis was signed for a comparable amount.\n\nBut he wanted to be a Dodger, and felt he had something to prove after his\ndisastrous 1992.  I don't think there was any chance for the Bucs to sign\nhim.\n\n>Let's see. Eric can hit better. He can run better. He can field better.\n>Now why didnt the PIrates go after Eric Davis. An injured Davis is better\n>than a healthy Lonnie Smith. \n\nHe certainly wasn't last year.\n\n>Even if Lonnnie Smith gets some big hits this year,he won't be an asset. \n>He has looked terrible on the bases and in the field.\n\nHey, that's the \"Skates Smith\" package deal.  Anybody who acquires\nLonnie for his defense or base-running (particularly at this stage) is\na real weirdo.\n\n>12) Management: BIG BIG ZERO. Sauer has yet to make a forceful argument\n>in favor of revenue sharing. He seems more concerned about pleasing that\n>idiot Danforth by preparing the team for a move to Tampa Bay.\n\nIf that's the goal of the team ownership, than I don't see why Sauer\ngets a zero for making his boss happy.  I don't know what he has or\nhasn't said about revenue sharing, so I can't comment there.\n\n>13) Alex Cole fiasco. \n> [stuff deleted]\n>Ironically, the biggest accomplishment of Simmons' tenure was\n>getting Alex Cole really cheap. Too bad. [that he gave him away in the\n>expansion draft.]\n\nIt's annoying, but since Leyland seems to have been pushing for them\nto retain Jeff King, it was probably unavoidable.  Meanwhile, I think\nbigger accomplishments of Simmons' tenure were getting some value for\nJohn Smiley, not trading real prospects for veterans down the stretch\nlast year, drafting well in 1992, letting the rookies show something\nin 1993.  Foley, Smith, and Candelaria were acquired to be replacement\nparts, which means that even if fail it hasn't done serious damage to\nthe Bucs' future.\n\n>14) Compensatory draft picks for Bonds: Forget it. The pirates can rant \n>and rave. they will not get those picks. As of now, the issue is still \n>being appealed.\n\nDoes this mean that the Bucs lost the initial arbitration case?  I\nnever heard the outcome of this.  When will the final verdict be in on\nthis?\n\n>Now, if this doesnt convince anyone that Simmons and Sauer are idiots,\n>nothing else will.\n\nI'm not sure who was the idiot in this case, so I don't know who to\nblame.  It might have been Doug Danforth, after all.  In fact, I\n*seriously* suspect it was Doug Danforth, who has shown his\nwillingness to call the shots at exactly those moments when the gun is\npointed at his feet.\n\n(btw--I've wondered whether my latest posts have been getting\noff-site, so if somebody known to impersonate e.e. cummings can see\nthis, would he drop me a short note?)\n\njking\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4048, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dabl2@nlm.nih.gov (Don A.B. Lindbergh)\nSubject: Re: Diamond SS24X, Win 3.1, Mouse cursor\nOrganization: National Library of Medicine\nLines: 21\n\nIn article <1993Apr15.204845.24939@nlm.nih.gov> dabl2@nlm.nih.gov (Don A.B. Lindbergh) writes:\n>\n>Anybody seen mouse cursor distortion running the Diamond 1024x768x256 driver?\n>Sorry, don't know the version of the driver (no indication in the menus) but it's a recently\n>delivered Gateway system.  Am going to try the latest drivers from Diamond BBS but wondered\n>if anyone else had seen this.\n>\n\nAs a followup, this is a co-worker's machine.  He has the latest 2.03 drivers.\nIt only happens using the 1024x768x256 driver.  Sometimes it takes a minute\nor so for the cursor to wig out, but it eventually does in this mode.  I\nsusect something is stepping on memory the video card wants.  I excluded\na000-c7ff in the EMM386 line and in system.ini  The problem persisted.\nPerhaps it is something specific to the Gateway machine or it's components.\nIt is a 66mhz DX/2 Eisa bus with an Ultrastore (24xx?) controller.  Ah well,\nI was hoping this was some kind of 'known problem' or somebody had seen it\nbefore.  Perhaps a call to Gateway is in order, but I do find folks here\nusually are far more in the know.\n\n--Don Lindbergh\ndabl2@lhc.nlm.nih.gov\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4049, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jht9e@faraday.clas.Virginia.EDU (Jason Harvey Titus)\nSubject: Re: HELP INSTALL RAM ON CENTRIS 610\nOrganization: University of Virginia\nLines: 8\n\n\tI had asked everyone about problems installing a 4 meg\nsimm and an 8 meg simm in my Centris 610, but the folks at the\nlocal Apple store called the folks in Cupertino and found that\nyou can't have simms of different speeds in one machine, even\nif they are both fast enough - ie - My 80 ns 8 meg and 60ns 4\nmeg simms were incompatibable...  Just thought people might\nwant to know.....\n\t\t\t\t\tJason.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4050, "properties": {"category": "comp.graphics", "text": "From: williams4000@iscsvax.uni.edu\nSubject: BOOK OF KELLS CORRECTION!!!\nOrganization: University of Northern Iowa\nLines: 11\n\nI aparantly mistyped the address for the ftp site which holds the images. The\ncorrect address should be:\n\njupiter.csd.unb.ca\n                ^^\nrather than jupiter.csd.unb.edu.  They are in the directory:\n\n\\pub\\library.info\n\nJon Williams\nUniversity of Northern Iowa\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4051, "properties": {"category": "misc.forsale", "text": "From: walter@psg.com (Walter Morales)\nSubject: Nitendo game wanted\nOrganization: Pacific Systems Group, Portland Oregon US\nLines: 24\n\nHi,\nI am one those uncles that try to please my nephews whenever possible,\nso.. they have asked me to find them some Nitendo games, no, it is\nnot for the super nitendo.. it is for whatever model came prior to\nthat.\n\nSince they are overseas, I will first ask them if they already have the\ngames you would have to offer me. Please send me a list, or whatever and\nthe price you are asking so I can send to my nephews and find out what\nthey have and what they want.. so bare with me, I will respond, but it\nwill take me a while. \n\nThanks,\nWalter\nwalter@psg.com\n\n\nPlease respond directly.\n\n-- \n   ______________________________________________________________________\n  /                                            Portland, Oregon USA      \\\n  |  WALTER T. MORALES                         45 31 25 N 122 40 30 W    |\n  |  internet: walter@rain.com                 Pop. 366383               |\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4052, "properties": {"category": "rec.motorcycles", "text": "Subject: Live Free, but Quietly, or Die\nFrom: Russell.P.Hughes@dartmouth.edu (Russell P. Hughes)\nOrganization: HOG HEAVEN\nX-Posted-From: InterNews 1.0b14@dartmouth.edu\nLines: 31\n\nWhat a great day! Got back home last night from some fantastic skiing\nin Colorado, and put the battery back in the FXSTC. Cleaned the plugs,\nopened up the petcock, waited a minute, hit the starter, and bingo it\nstarted up like a charm! Spent a restless night anticipating the first\nride du saison, and off I went this morning to get my state inspection\ndone. Now my bike is stock (so far) except for HD slash-cut pipes, and\nall went well with my New Hampshire State Inspection (meaning all my\nlights worked OK) until the dude produces a decibel meter and tells me\nabout the new NH law about MC noise.....huh?  sez I....and he has me\nstart her up and rev to about 3000 rpm....I FAIL cuz I register 120 DB,\nand the max allowed is 110! If I fail with these pipes, there are gonna\nbe a whole lotta seriously pissed off bikers round here when they go\nfor inspection.\n\n*&%^*$%*^*%*&\n\nBut hey, its a new experience! I have never really felt like a menace\nto society before! I parked, dismounted and walked in to my building\nwith a slight swagger to my step, and a narrow lidded look... I sensed\nmy faculty colleagues unease with my new intimidating status...and\nwomen's glances seemed to linger just a little longer....or perhaps\nthat was my imagination.......*sigh*\n\nNow I need to install my new BUB pipes and single fire ignition....I\nwonder how I will do after that!? \n\nRuss Hughes  '92 FXSTC  DoD# 6022(10E20)\n\"Love ...yeah, that's the feeling you get when you like something\nas much as your motorcycle.\"\n                     --Sonny Barger (as told to me by Ed Campbell,\n                  who has an old friend who was there at the time)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4053, "properties": {"category": "misc.forsale", "text": "From: daw@jhunix.hcf.jhu.edu (Dave Webb)\nSubject: Gameboy games: Trade for Genesis, Game Gear or Gameboy Games (Uupdate)\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 30\nDistribution: na\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\n\nI have the following GameBoy Games available for TRADE!\n\nPitfighter\nMetroid II\nBases Loaded\nBlades Of Steel\nMalibu Beach Volleyball\nWorld Cup Soccer\nTennis..\nSpiderman\nRobocop\nMotocross Maniacs\nDouble Dribble 5 on 5 Basketball\n\n\nLooking for:\nGenesis Games\nMissile Command (Gameboy) \nGame Gear games\n\nPlease leave e-mail if interested!\n\t\n\t\tThanx\n\t\t\tDave Webb\nP.S.\nI'm still waiting to hear from Allen Thoren Jr. about trading MB Volleyball for\nMissile Command... Please get in touch.\n\nAlso waiting to hear from Raul (rombh@cunyvm.cuny.edu) about Genesis trade...\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4054, "properties": {"category": "rec.autos", "text": "From: jdenune@pandora.sdsu.edu (John Denune)\nSubject: Re: Car buying story, was: Christ, another dealer service scam...\nOrganization: San Diego State University, College of Sciences\nLines: 40\nDistribution: usa\nNNTP-Posting-Host: pandora.sdsu.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nMark Monninger (markm@bigfoot.sps.mot.com) wrote:\n: While not exactly a service incident, I had a similar experience recently  \n: when I bought a new truck.\n: I had picked out the vehicle I wanted and after a little haggling we  \n: agreed on a price. I wrote them a check for the down payment plus tax\n: and license and told them I'd be back that evening to pick up the truck.  \n: When I returned, I had to wait about an hour before the finance guy could  \n: get to me. When I finally got in there, everything went smoothly until he  \n: started adding up the numbers. He then discovered that they had  \n: miscalculated the tax & license by about $150. He then said he needed  \n: another $150 from me. I said we had already agreed on a price and it was  \n: their problem, I wasn't giving them any more money. The finance guy then  \n\nA similar thing happend to me a year ago.  I bought a used Ford Bronco\n(which has since been stolen...  :(  )  and few weeks after I paid\nand took delivery, they sent a letter telling me they goofed and \nmiscalculated the license renewal by $300 and that I need to send\nin a check to \"avoid further delay\" in the processing of my registration.\nThe thing is, I had already received the pink slip from the DMV, so\nI ignored it.  I received another letter and then the phone calls\nstarted coming.  First from the finance guy and then from the general\nmanager, both hounding me for the extra money.  They left me alone\nonce I told them I already had the paperwork and pointed out the clause\nin the contract that stated that the final price was just that: FINAL.\nAfterall, they wouldn't budge if I had told them I wanted another\n$300 off after the deal had been signed, right?  I told them not \nto call again and that I would not do business with them in the future.\nThey didn't seem to have a problem with that.  This, after all, was a\nused Ford at a Toyota dealership.\n\nI had a much better experience buying a new Pathfinder about a month\nago.  It certainly pays to buy a car on the last Sunday of the month.\nIt was even raining too, so they had done very little business that \nweekend and were really willing to deal.  I kept telling them I would\nthink about it, and they kept dropping the price.  Got a very good\ndeal and so far have been very please with the service.\n\n---John\njdenune@pandora.sdsu.edu \n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4055, "properties": {"category": "sci.electronics", "text": "From: bills@inqmind.bison.mb.ca (Bill Shymanski)\nSubject: Re: Dmm Advice Needed\nOrganization: The Inquiring Mind BBS  1 204 488-1607\nLines: 41\n\nkolstad@cae.wisc.edu (Joel Kolstad) writes:\n\n> In article <734953838.AA00510@insane.apana.org.au> peter.m@insane.apana.org.a\n> >\n> >If you are going to use one where it counts (eg:aviation, space scuttle, \n> >etc) then I suggest you go and buy a Fluke (never seen a Beckman), however \n> >for every other use you can buy a cheapie.\n> \n> My Beckman died a few days ago, thanks do about a 4 or 5 foot drop onto a\n> lab table.  !@#!@$#!@$@#$  Probably not indicative of anything, but I've\n> already filled out the requisition for a Fluke 87. :-)\n> \n> Oh yeah, and sometimes our measurements here do count.  Not often, but often\n> enough that I want at least _one_ good meter!\n> \t\t\t\t\t---Joel Kolstad\n   \nWe used to buy Beckman 110 and HD110 (\"ruggedized\") versions for use\nby electricians in the steel mill where I work.   After a while we\ngot round to filling all the current-input jacks with silicone -\nelectricians have a regrettable habit of not checking where the last\nguy left the leads before using a 3 1/2 digit 0.5 % autoranging $400\nmeter to check if a fuse is good or not. Its very hard on meters\n(and electricians) when you put the milliamp shunt across a 600 volt\nbus. \n  But that's not why we stopped buying Beckmans - after a while a \nlot of them got \"funny\" in the LCD display.  A black stain would\nspread from one edge, or else they'd come adrift from those\nZebra connectors and fail to operate.    Now we buy Flukes, the\nlow-end 20 series mostly ( and we still fill the amp jack with \nsilicone). \n  What the world needs is a meter that won't let you change ranges or\nturn it on/off with a lead stuck in the amps jack - a little bit of\nclever plastic detailing would take care of this and make the world\nsafer for electricans, anyway.\n   Not that I've ever put a meter on the wrong range into a live \ncircuit, no, not me...not more than a dozen times, anyway....\n    Bill\n\n\nbills@inqmind.bison.mb.ca\nThe Inquiring Mind BBS, Winnipeg, Manitoba  204 488-1607\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4056, "properties": {"category": "comp.graphics", "text": "From: teckjoo@iti.gov.sg (Chua Teck Joo)\nSubject: Visuallib (3D graphics for Windows)\nOrganization: Information Technology Institute, National Computer Board, Singapore.\nLines: 17\n\n\nI am currently looking for a 3D graphics library that runs on MS\nWindows 3.1.  Are there any such libraries out there other than\nVisuallib?  (It must run on VGA and should not require any other\nadd-on graphics cards).\n\nFor Visuallib, will it run with Metaware High C compiler v3.0?  Any\nemail contact for the author of Visuallib?\n\nAny help would be much appreciated.  Thanks.\n\n\n-- \n* Chua, Teck Joo\t    | Information Technology Institute *\n* Email: teckjoo@iti.gov.sg | 71 Science Park Drive\t       *\n* Phone: (65) 772-0237 \t    | Singapore (0511)\t\t       *\n* Fax:   (65) 779-1827      |\t\t\t   \t       *\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4057, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: Re: technology\nOrganization: Kulikauskas home\nLines: 28\n\nmcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n\n> ...the computer is not a fantasyland where one's responsibilities\n> disappear.  The people on the net are real; slander and deception carried\n> out by net are just as wrong as they would be if carried out on paper\n> or face to face.\n\nWell said, Michael!\n\nThe Catholic traditon has a list of behaviours called the Spiritual \nWorks of Mercy:\n\nadmonish the sinner\ninstruct the ignorant\ncounsel the doubtful\ncomfort the sorrowful\nbear wrongs patiently\nforgive all injury\npray for the living and the dead (yes, I know there is some controversy \n                           on this and I don't want to argue about it.)\n\nThese are all things that have a direct application to usenet.  People \nask questions and express doubts.  Some are in need of comfort or \nprayers.  Imagine what would happen to flame wars if we bore wrongs \npatiently and forgave injuries.   I would add that it is probably more \nappropriate to do any admonishing by private email than publicly.\n\nJayne Kulikauskas/ jayne@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.197+0000", "event": "documents", "entityId": 4058, "properties": {"category": "rec.motorcycles", "text": "From: maven@eskimo.com (Norman Hamer)\nSubject: Re: A Miracle in California\nOrganization: -> ESKIMO NORTH (206) For-Ever <-\nLines: 22\n\nRe: Waving...\n\nI must say, that the courtesy of a nod or a wave as I meet other bikers while\nriding does a lot of good things to my mood... While riding is a lot of fun by\nitself, there's something really special about having someone say to you \"Hey,\nit's a great day for a ride... Isn't it wonderful that we can spend some time\non the road on days like this...\" with a gesture.\n\nWas sunny today for the first time in a week, took my bike out for a spin down\nto the local salvage yard/bike shop... ran into about 20 other people who were\ndown there for similar reasons (there's this GREAT stretch of road on the way\ndown there... no side streets, lotsa leaning bends... ;) ... Went on an\nimpromptu coffee and bullshit run down to puyallup with a batch of people who \nI didn't know, but who were my kinda people nonetheless.\n\nAs a fellow commented to me while I was admiring his bike... \"Hey, it's not\nwhat you ride, it's that you ride... As long as it has 2 wheels and an engine\nit's the same thing...\"\n-- \n----\nmaven@eskimo.com (InterNet)         maven@mavenry.altcit.eskimo.com (UseNet)\nThe Maven@The Mavenry (AlterNet)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4059, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: was:Go Hezbollah!!\nOrganization: The Department of Redundancy Department\nLines: 39\n\nIn article <1993Apr14.210636.4253@ncsu.edu> hernlem@chess.ncsu.edu (Brad Hernlem) writes:\n\n>Hezbollah and other Lebanese Resistance fighters are skilled at precision\n>bombing of SLA and Israeli targets. \n\nIt's hard to beat a car-bomb with a suicidal driver in getting \nright up to the target before blowing up.  Even booby-traps and\nradio-controlled bombs under cars are pretty efficient killers.  \nYou have a point.   \n\n>I find such methods to be far more\n>restrained and responsible \n\nIs this part of your Islamic value-system?\n\n>than the Israeli method of shelling and bombing\n>villages with the hope that a Hezbollah member will be killed along with\n>the civilians murdered. \n\nHad Israeli methods been anything like this, then Iraq wouldn've been\nnuked long ago, entire Arab towns deported and executions performed by\nthe tens of thousands.  The fact is, though, that Israeli methods\naren't even 1/10,000th as evil as those which are common and everyday\nin Arab states.\n\n>Soldiers are trained to die for their country. Three IDF soldiers\n>did their duty the other day. These men need not have died if their government\n>had kept them on Israeli soil. \n\n\"Israeli soil\"????  Brad/Ali!  Just wait until the Ayatollah's\nthought-police get wind of this.  It's all \"Holy Muslim Soil (tm)\".\nHave you forgotten?  May Allah have mercy on you now.\n\n>Brad Hernlem (hernlem@chess.ncsu.EDU)\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4060, "properties": {"category": "comp.sys.mac.hardware", "text": "From: nodine@lcs.mit.edu (Mark H. Nodine)\nSubject: Re: Quadra SCSI Problems???\nKeywords: Quadra SCSI APS\nOrganization: MIT Laboratory for Computer Science\nLines: 9\n\nI don't know about the specific problem mentioned in your\nmessage, but I definitely had SCSI problems between my\nQ700 and my venerable Jasmine Megadrive 10 cartridge\ndrives.  My solution was to get Silverlining.  None of\nthe loops that involved blind writes worked to the drives;\nin fact the only loop that worked was the \"Macintosh\nSoftware\" loop (whatever that means).\n\n\t--Mark\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4061, "properties": {"category": "talk.politics.misc", "text": "From: dreitman@oregon.uoregon.edu (Daniel R. Reitman, Attorney to Be)\nSubject: Re: Bill Conklin's letter to A.J.\nArticle-I.D.: oregon.5APR199315510067\nDistribution: world\nOrganization: University of Oregon\nLines: 46\nNNTP-Posting-Host: oregon.uoregon.edu\nNews-Software: VAX/VMS VNEWS 1.41\n\nIn article <1993Apr5.040414.14939@colorado.edu>,\n ajteel@dendrite.cs.Colorado.EDU (A.J. Teel) writes...\n>\tAgain, the main point.\n\n>\tNo human being not yet born can be bound to any contract.\n\nWrong.  It's possible to inherit a debt.\n\n>\tFurther, no third party can be bound to any contract that\n>they are not a party to.\n\nSee above.\n\n>\tThe Constitution *for* the United States is just such a contract.\n>No third party can be bound to it. Further, no human who is not specifically\n>mentioned in Article 6 and has not taken an oath or made an affirmation\n>to uphold said Const can be bound to uphold or obey it.\n\nThe Constitution is not a contract.  It is a statute.  Please, \nMr. Teel, or anyone, show me one case where the U.S. \nConstitution, or any state constitution, is considered a \ncontract.\n\n>\tThe Const is designed to limit the powers of government, not to\n>bind THE PEOPLE.\n\nIt is also designed to delineate the powers of the U.S. \ngovernment.\n\n>\tThis argument will be presented in great detail in the next post.\n\nI can't wait.\n\n\t\t\t\t\t\tDaniel Reitman\n\nHOW NOT TO WRITE A DEED\n\nOne case involved the construction of a conveyance to grantees \"jointly, as \ntenants in common, with equal rights and interest in said land, and to the \nsurvivor thereof, in fee simple. . . . To Have and to Hold the same unto the \nsaid parties hereto, equally, jointly, as tenants in common, with equal rights \nand interest for the period or term of their lives, and to the survivor thereof \nat the death of the other.\"\n\nThe court held that the survivorship provision indicated an intent to create a \njoint tenancy.  Germain v. Delaine, 294 Ala. 443, 318 So.2d 681 (1975).\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4062, "properties": {"category": "rec.sport.hockey", "text": "Organization: Central Michigan University\nFrom: Martin D. Hill <32GFKKH@CMUVM.CSV.CMICH.EDU>\nSubject:    college hockey all-star game\nLines: 3\n\nDoes anybody know the details of the Shriners All-Star game that featured the\nbest seniors in college hockey in a game in Orono, Maine?  If you do, please\nreply.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4063, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Crimestrike Alert for Texas\nOrganization: Ideology Busters, Inc.\nDistribution: usa\nKeywords: crime strike\nLines: 69\n\nFellow Texans and Members of Crime Strike in Texas\n \nCrime Strike in Texas has a loosely knit coalition with most\nVictims Rights Groups in Texas. We ask that you write a\nletter protesting the release of the following murderer.\n \nThis letter should be written to :\n \nRaven Kazen - Victims Services\nBoard of Pardons and Paroles\nP.O. Box 13401 - Capital Station\nAustin, Texas 78711\n \nThe letter should be written if at all possible on RED PAPER\nas that was agreed on at one of our first meetings . It\nrepresents the coalition and all of its parts as well as the\nheart ache of those left behind and the blood spilled by\nthese criminals. The letter should have only one name on it\nso it can be filed in the folder of that criminal waiting for\nhis next try at parole.\n \nList of Criminals:\n \nToday we have only one parole to protest , On October 4,\n1990, Mark Steven Hughes rendered numerous blows to the head\nof James Allen Pompa . Ten month old James went into a coma\nand died two days later.\n \nOn July 8, 1992, Mark Steven Hughes pled guilty to Injury to\na Child and received a ten-year sentence. According to Texas\nlaw, Mark became eligible for parole on January 4, 1992 --\nsix months before he was even sentenced!\n \nWould you join us in strongly protesting the release from\nprison of Mark Steven Hughes, who beat a baby to death .\n \nMark Steven Hughes - beat to death the baby boy of\nRussel Pompa -- Reference Mark Steven Hughes - TDC# 633546\n \n \nMark your envelope   \"PROTEST LETTER\" on the front and back.\n \nA typical letter is indicated on the next page ---\n \nTHANK YOU VERY MUCH.\n \nIrvin Wilson - Volunteer Crime Strike Texas\n \n \nDate: April 13, 1993\n \nRaven Kazen - Victims Services\nBoard of Pardons and Paroles\nP.O. Box 13401 - Capital Station\nAustin , Texas 78711\n \nI protest the parole of Mark Steven Hughes TDC#633546, who,\nmurdered James Son of Russel Pompa.\n \nHe should be kept in prison for his full sentence and not be\nreleased at any time prior to his full sentence for any\nreason.\n \n \nIrvin Wilson\nHouston, Texas\n \n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4064, "properties": {"category": "rec.autos", "text": "From: khalsa@spartanSanDiego.NCR.com (G.K. Khalsa)\nSubject: Re: Options that would be great to have...\nReply-To: g.k.khalsa@sandiego.ncr.com\nOrganization: NCR Engineering and Manufacturing, San Diego, CA\nLines: 36\n\nIn article <93Apr16.185510.36600@acs.ucalgary.ca>, parr@acs.ucalgary.ca\n(Charles Parr) writes:\n> \n> \n> \n> A list of options that would be useful. They can be existing\n> options on a car, or things you'd like to have...\n> \n> 1) Tripmeter, great little gadget. Lets you keep rough track of\n>    mileage, makes a good second guesser for your gas gauge...\n> \n> 2) Full size spare\n> \n> 3) Built in mountings and power systems for radar detectors.\n> \n> 4) a fitting that allows you to generate household current with\n> the engine running, and plug ins in the trunk, engine compartment\n> and cabin.\n> \n> Feel free to add on...\n\nOK...\n\n5) How about a fuel gauge that *really* told you how much fuel was\n   left.  Like, \"can I make it to where the gas is $1.14 or should\n   I get gouged right here at $1.35?\"  Accurate to the tenth of a\n   gallon would be great.\n\n...............................................................\n|                    |   On Contract To:                      |\n|     GK Khalsa      |      NCR Engineering and Manufacturing |\n|....................|      16550 W. Bernardo Dr.             |\n|  (619) 485-2460    |      San Diego, CA 92127               |\n!....................!........................................!\n!.................g.k.khalsa@sandiego.ncr.com.................!\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4065, "properties": {"category": "sci.space", "text": "Organization: Queen's University at Kingston\nFrom: Graydon <SAUNDRSG@QUCDN.QueensU.CA>\nSubject: Re: What if the USSR had reached the Moon first?\n <dxb105.734155421@aries> <1993Apr7.124724.22534@yang.earlham.edu>\n <dxb105.734495289@virgo> <1993Apr12.161742.22647@yang.earlham.edu>\n <93107.144339SAUNDRSG@QUCDN.QueensU.CA> <1993Apr18.091051.14496@ke4zv.uucp>\nLines: 38\n\nIn article <1993Apr18.091051.14496@ke4zv.uucp>, gary@ke4zv.uucp (Gary Coffman)\nsays:\n>In article <93107.144339SAUNDRSG@QUCDN.QueensU.CA> Graydon\n><SAUNDRSG@QUCDN.QueensU.CA> writes:\n>>This is turning into 'what's a moonbase good for', and I ought\n>>not to post when I've a hundred some odd posts to go, but I would\n>>think that the real reason to have a moon base is economic.\n>>Since someone with space industry will presumeably have a much\n>>larger GNP than they would _without_ space industry, eventually,\n>>they will simply be able to afford more stuff.\n>\n>If I read you right, you're saying in essence that, with a larger\n>economy, nations will have more discretionary funds to *waste*\n>on a lunar facility. That was certainly partially the case with Apollo,\n>but real Lunar colonies will probably require a continuing military,\n>scientific, or commercial reason for being rather than just a \"we have\n>the money, why not?\" approach.\n\nI was assuming that there won't be a moon base unless it makes a\nprofit, actually.  If it does, well, that gives a larger GNP which\nleads to being able to spend more money on your military, including\ngosh-wow space stuff.  (assuming it's profitable, rather than paying\nfor itself.)\n>\n>It's conceivable that Luna will have a military purpose, it's possible\n>that Luna will have a commercial purpose, but it's most likely that\n>Luna will only have a scientific purpose for the next several hundred\n>years at least. Therefore, Lunar bases should be predicated on funding\n>levels little different from those found for Antarctic bases. Can you\n>put a 200 person base on the Moon for $30 million a year? Even if you\n>use grad students?\n\nYou might be able to _run_ one for that; put it there, hardly.\n\nWhy do you think at least a couple centuries before there will\nbe significant commerical activity on the Moon?\n\nGraydon\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4066, "properties": {"category": "talk.politics.guns", "text": "From: schabel@calspan.com (Dave Schabel)\nSubject: Re: Gun Nuts and Holly Silva\nArticle-I.D.: calspan.1993Apr5.215700.4600\nOrganization: Calspan Advanced Technology Center\nLines: 45\nNntp-Posting-Host: riemann-gw\n\nIn article <C4tsD1.1vA@news.cso.uiuc.edu> irvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n>In article <1993Apr1.010834.4326@mnemosyne.cs.du.edu> rcanders@nyx.cs.du.edu (Mr. Nice Guy) writes:\n>>Both the \" Gun Nuts\" and the gays are aggressively defensive and quite\n>>hostile to any one trying to deprive them of their rights.  Just like\n>>any group trying to protect their rights.\n>\n>The fallacy of this whole thing is that YOUR RIGHTS ARE NOT IN JEAPARDY\n>BY THESE POSTS.  \n\nHow can you say that?  I presume that you mean that talking about\nrestricting rights is not the same as restricting those rights.  Well,\narguing for those restrictions may lead to implementation, much\nthe same way as assault can lead to battery (legal definitions).\n\n>Most t.p.g people and the homosexual groups won't even\n>discuss the subject at all in a polite form.  The mere raising of a question\n>as to why the rights are there or what exactly the 'right' encompasses\n>bring shrill posts and angry/hostile traffic.  \n\nWell, I can't speak for the homosexuals, but I've seen ALOT\nof polite discussion on t.p.g.  Please, everyone, don't take\nthis guy's word, or mine for that matter, on it.  Read t.p.g.\nfor a while, and try to determine from which direction most of\nthe flameage originates.  If you post without flamebait, you\nwill generally receive reasoned responses.  True, there are\nthose who tend to lose their tempers quickly, as there are on\nall newsgroups, but they really do feel their rights are in jeopardy.\n\nOh, and neat trick talking derisively about another newsgroup while\nnot crossposting to allow them to defend themselves.\n\n>I think a lot of t.p.g people have very thin skin when it comes to \n>discussing these subjects.\n\nMethinks you doth protest too much.\n\n\t\t\t\tDave Schabel\n\n\n\n-- \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nDave Schabel         | Opinions and comments contained herein are mine and  |\nschabel@calspan.com  | do not necessarilly reflect those of Calspan Corp or |\nLocated in Western NY| its customers.                                       |\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4067, "properties": {"category": "sci.med", "text": "From: sasghm@theseus.unx.sas.com (Gary Merrill)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOriginator: sasghm@theseus.unx.sas.com\nNntp-Posting-Host: theseus.unx.sas.com\nOrganization: SAS Institute Inc.\nLines: 55\n\n\nIn article <1993Apr16.155919.28040@cs.rochester.edu>, fulk@cs.rochester.edu (Mark Fulk) writes:\n\n|> Flights of fancy, and other irrational approaches, are common.  The crucial\n|> thing is not to sit around just having fantasies; they aren't of any use\n|> unless they make you do some experiments.  I've known a lot of scientists\n|> whose fantasies lead them on to creative work; usually they won't admit\n|> out loud what the fantasy was, prior to the consumption of a few beers.\n|> \n|> (Simple example: Warren Jelinek noticed an extremely heavy band on a DNA\n|> electrophoresis gel of human ALU fragments.  He got very excited, hoping that\n|> he'd seen some essential part of the control mechanism for eukaryotic\n|> genes.  This fantasy led him to sequence samples of the band and carry out\n|> binding assays.  The result was a well-conserved, 400 or so bp, sequence\n\nBut why do you characterize this as a \"flight of fancy\" or a \"fantasy\"?\nWhile I am unfamiliar with the scientific context here, it appears obvious\nthat his speculation (for lack of a better or more neutral word) was\nat least in significant part a consequence of his knowledge of and acceptance\nof current theory coupled with his observations.  It would appear that\nsomething quite rational was going on as he attempted to fit his observation\ninto that theory (or to tailor the theory to cover the observation).  This\ndoes not seem like an example of what most would normally call a flight of\nfancy or a fantasy.\n\n|> \n|> It is not clear to me what you mean by rational vs. irrational.  Perhaps\n|> you can give a few examples of surprising experiments that were tried out\n|> for perfectly rational reasons, or interesting new theories that were first\n|> advanced from logical grounds.  The main examples I can think of are from\n|> modern high-energy physics which is not typical of science as a whole.\n\nWell, I think someone else in this thread was the first to use the word (also,\n\"extra-scientific\", etc.).  Nor am I prepared to give a general account of\nrationality.  In terms of examples, there is some danger of beginning to quibble\nover what a \"surprising\" experiment is, what counts as \"surprising\", etc.\nThe same may be said about \"logical grounds\".  My point is that quite frequently\n(perhaps even most frequently) the roots of a new theory can be traced to\npreviously existing theories (or even to previously rejected hypotheses of\nsome other theory or domain).  I would offer some rather well known examples\nsuch as Toricelli's Puy de Dome experiment done for the sake of his \"sea of air\"\nhypothesis.  Was this theory (and the resulting experimental test) \"surprising\"?\nWell, given the *prior* explanations of the phenomena involved it certainly must\nbe counted as so.  Was the theory constructed (and the experiment designed)\nout of \"perfectly rational grounds\"?  Well, there was a pretty successful and\nwell know theory of fluids.  The analogy to fluids by Toricelli is explicit.\nThe novelty was in thinking of air as a fluid (but this was *quite* a novelty\nat the time).  Was the theory interesting?  Yes.  Was it \"new\"?  Well, one\ncould argue that it was merely the extension of an existing theory to a new\ndomain, but I think this begs certain questions.  We can debate that if you\nlike.\n-- \nGary H. Merrill  [Principal Systems Developer, C Compiler Development]\nSAS Institute Inc. / SAS Campus Dr. / Cary, NC  27513 / (919) 677-8000\nsasghm@theseus.unx.sas.com ... !mcnc!sas!sasghm\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4068, "properties": {"category": "rec.autos", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Options that would be great to have...\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 26\n\n\n\n\nA list of options that would be useful. They can be existing\noptions on a car, or things you'd like to have...\n\n1) Tripmeter, great little gadget. Lets you keep rough track of\n   mileage, makes a good second guesser for your gas gauge...\n\n2) Full size spare\n\n3) Built in mountings and power systems for radar detectors.\n\n4) a fitting that allows you to generate household current with\nthe engine running, and plug ins in the trunk, engine compartment\nand cabin.\n\nFeel free to add on...\n\nRegards, Charles\nx\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4069, "properties": {"category": "comp.windows.x", "text": "From: s_ledoux@csc32.enet.dec.com (Scott LeDoux)\nSubject: Icon Animation \nLines: 17\nReply-To: s_ledoux@csc32.enet.dec.com (Scott LeDoux)\nOrganization: Digital Equipment Corporation -- CSC/Colorado Srpings\n\n\nHi Folks.\n\nAs part of my self-introduction to X I've been trying to do some simple\nicon animation (sort of like icondoit from mswindows).  Changing your\nown applications icon is fairly simple:  If you have a widget ID you can\njust XtSetValues on XtNiconifyPixmap (or whatever) and you're done. Alternately\nyou can set window manager hints.  These methods don't seem to work with\nicons which your application doesn't specifically own.\n\nIn my situation I have to change the icon of random windows sitting there in \nmy icon box so my question is:  Given a window-id, how do you change the\nicon pixure ?  A working example would be very much appreciated.  If it makes\nany difference, I'm using motif 1.1 on VMS T6.0-5KE.\n\nThanks -\nScott :)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4070, "properties": {"category": "rec.sport.baseball", "text": "From: gt0523e@prism.gatech.EDU (Michael Andre Mule)\nSubject: Re: Torre: The worst manager?\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 19\n\nIn article <93095@hydra.gatech.EDU> gt7469a@prism.gatech.EDU (Brian R. Landmann) writes:\n>Later, in the ninth inning with the bases loaded and two outs he puts\n>lankford, a 300 hitter with power in as a pinch runner and uses Luis\n>Alicea, a 250 hitter with no power as a pinch hitter.  What the Hell\n>is he thinking.\n\nDidn't Alicea get a hit, though? \n\nSee y'all at the ballyard\nGo Braves\nChop Chop\n\nMichael Mule'\n\n-- \nMichael Andre Mule\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0523e\nInternet: gt0523e@prism.gatech.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4071, "properties": {"category": "soc.religion.christian", "text": "From: mprc@troi.cc.rochester.edu (M. Price)\nSubject: Re: phone number of wycliffe translators UK\nOrganization: University of Rochester - Rochester, New York\nLines: 14\n\n\n  I'm concerned about a recent posting about WBT/SIL.  I thought they'd\npretty much been denounced as a right-wing organization involved in\nideological manipulation and cultural interference, including Vietnam\nand South America. A commission from Mexican Academia denounced them in\n1979 as \" a covert political and ideological institution used by the\nU.S. govt as an instrument of control, regulation, penetration, espionage and\nrepression.\"\n  My concern is that this group may be seen as acceptable and even\npraiseworthy by readers of soc.religion.christian. It's important that\nChristians don't immediately accept every \"Christian\" organization as\nautomatically above reproach.\n\n                                                                  mp\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4072, "properties": {"category": "rec.sport.baseball", "text": "From: js1@Isis.MsState.Edu (Jiann-ming Su)\nSubject: Bonilla\nNntp-Posting-Host: isis.msstate.edu\nOrganization: Mississippi State University\nDistribution: usa\nLines: 2\n\nBobby Bonilla supposedly use the word 'faggot' when he got mad at that author\nin the clubhouse.  Should he be banned from baseball for a year like Schott?\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4073, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Not the Omni!\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 18\n\nCharley Wingate (mangoe@cs.umd.edu) wrote:\n: \n: >> Please enlighten me.  How is omnipotence contradictory?\n: \n: >By definition, all that can occur in the universe is governed by the rules\n: >of nature. Thus god cannot break them. Anything that god does must be allowed\n: >in the rules somewhere. Therefore, omnipotence CANNOT exist! It contradicts\n: >the rules of nature.\n: \n: Obviously, an omnipotent god can change the rules.\n\nWhen you say, \"By definition\", what exactly is being defined;\ncertainly not omnipotence. You seem to be saying that the \"rules of\nnature\" are pre-existant somehow, that they not only define nature but\nactually cause it. If that's what you mean I'd like to hear your\nfurther thoughts on the question.\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4074, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: A KIND and LOVING God!! (NOT!)\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\n\t<sandvik-150493181533@sandvik-kent.apple.com> \n\t<1993Apr16.181605.15072@ra.royalroads.ca> \n\t<sandvik-160493205451@sandvik-kent.apple.com>\nLines: 28\n\nIn article <sandvik-160493205451@sandvik-kent.apple.com> \nsandvik@newton.apple.com (Kent Sandvik) writes:\n>In article <1993Apr16.181605.15072@ra.royalroads.ca>,\n>mlee@post.RoyalRoads.ca (Malcolm Lee) wrote:\n>> This brings up another question I still have to ponder:  why is there so \n>> much anti-Semitism?  Why do people hate Jews?  I don't hate Jews.  I consider\n>> them to be like anyone else, sinners we all are.\n>I don't know, I don't care about ethnical rights and wrongs myself,\n>but it's evident that Christians consider Jews no longer to be the \n>sole selected group of God's people -- while Jews consider this to\n>be the case.\n\nChristian anti-Semitism comes from the obvious fact that the Jews should\nknow the Hebrew Scriptures better than anyone else, yet they did not\nconvert to Christianity en mass, thus rejecting \"Christian Love.\"\n\n>No wonder this caused anti-Semitism. One might even\n>wonder that if Christianity didn't do this separation, would anti-Semitism\n>have even started?\n\nI don't see why not. Where are the rest of the tribal people? What\nhappened to the tribes of the Americas? Culture is seen as different and\nundesirable in the West, particular in the US with its failed \"melting\npot concept.\" Most tribes have been hunted to extinction, the Hebrew\ntribe is one of the few survivers from the Neolithic. Of course it\nbecomes difficult at times to separate Christianity from the Western\nexperience, so perhaps you are right, perhaps it would have been a better \nworld if the cultural experiment in Christianity never happened.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4075, "properties": {"category": "rec.autos", "text": "From: hovnania@iftccu.ca.boeing.com (Paul Hovnanian)\nSubject: Re: Re: Toyota Land Cruiser worth it?\nOrganization: Boeing Commercial Airplane Group\nLines: 30\n\n>: In response to a post about SUV's, I got several unsolicited recommendations to\n>: check out the Land Cruiser, despite its astronomical price.\n>: The Toyota dealer told me it's a \"cult car\".\n>: If a car is good enough to create a passionate and loyal following, there\n>: must be something really extraordinary about it.\n>: So, all you Land Crusher Cultists - here is your chance to convert me.\n>: \n>: -- \n>: Jonathan Edwards\t\t\t\tedwards@intranet.com\n>: IntraNet, Inc\t\t\t\t\t617-527-7020\n\nBased on my experience with a '79 FJ40 ( the hard-top jeep-style model ) I \nwould definitely give a new model consideration if I were in the market. The\nolder models are VERY well built. Unless Toyota lost its mind, I would\nassume, until  proven otherwise, that the newer models have inherited some\nif not all of the qualities of their ancestors.\n\nTwo major differences in the running gear (that I'm aware of) need study.\nMy '79 has a solid front axle housing whereas the newer models have\nindependant front suspension. The solid axle is theoretically stronger and\nmore reliable than the newer model, but only experience will tell. The\nindependant front suspension is, no doubt, a compromise made to satisfy\nthe typical user, who will never need a real utility vehicle. The second\ndifference is the type of transfer case used on the newer models. I'm\nnot sure, but I think Tioyota went to a full-time 4WD or all-wheel drive\nsystem. The older Landcruisers have a \"lock-up\" type. Both have their\nadvantages and disadvantages.\n\n\tPaul Hovnanian\thovnania@atc.boeing.com\n\t[Std disclaimers apply]\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4076, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mancus@sweetpea.jsc.nasa.gov (Keith Mancus)\nSubject: Can't get 1280x1024 to work w/2M ATI Ultra Pro\nOrganization: MDSSC\nLines: 18\n\n  I am unable to get my Gateway 486DX2/66 to run Windows\nin 1280x1024.  I ordered a 2M ATI Ultra Pro, and I'm pretty\nsure the 2M is really there because I *can* select\n1024x768x65536.   But no matter what I do with the Flex program\nin the ATI's program group, 1280x1024 remains ghosted out.\nI have Windows 3.1, build 59 of the drivers, DOS 5.0.  The\ndrivers were installed by Gateway, not by me, so perhaps there's\na file missing from the hard drive.  It runs 1024x768 just fine.\n  I did go into the Desktop window and select 1280x1024.  Sometimes\nit refuses (ghosted out), other time it accepts it, but when I hit\nOK and re-enter Desktop, it's back to 1024x768.  At no time does\nit unghost 1280x1024 in the main Flex window.  Help!\n\n-- \n| Keith Mancus    <mancus@butch.jsc.nasa.gov>                           |\n| N5WVR           <mancus@sweetpea.jsc.nasa.gov>                        |\n| \"Black powder and alcohol, when your states and cities fall,          |\n|  when your back's against the wall....\" -Leslie Fish                  |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4077, "properties": {"category": "comp.windows.x", "text": "From: mark@ardnt1.res.utc.COM (MARK STUCKY)\nSubject: Re: Need PD X-Y Plot Package\nOrganization: The Internet\nLines: 139\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: spf@cbnewsl.cb.att.COM\nCc: xpert@expo.lcs.mit.EDU\n\n\n\n \"Steve\" == Steve Frysinger of Blue Feather Farm <spf@cbnewsl.cb.att.COM> writes:\n\n Steve> Folks,\n\n Steve> I'm looking for a Public Domain X-Y plotting package for X.\n Steve> I need basic capabilities (axes, labels, log and linear, &c).\n Steve> It's hard to imagine that someone has not put such a thing\n Steve> together, so I'm hoping to avoid reinventing the wheel.\n\n Steve> Thanks for any leads!\n\n Steve> Steve Frysinger\n\nYour might take a look a PLPLOT.  Version 4.99c (actually beta v5.0)\ncan be found anonymous ftp from hagar.ph.utexas.edu, in the pub/plplot \ndirectory.  \n\n--Mark\n\n------------------------------------------------------------------------------\n| Mark Stucky                         | Email:                               |\n| United Technologies Research Center |     mark@ardnt1.res.utc.com          |\n| East Hartford, CT.                  |or   mbs@rcinet.res.utc.com           |\n| 06108                               |or   mbs@utrc.res.utc.com             |\n------------------------------------------------------------------------------\n\n\n From the README file of version 4.99c:\n\n This is the PLPLOT distribution.  PLPLOT is a scientific plotting package for\n many systems, small (micro) and large (super) alike.  Despite its small size\n and quickness, it has enough power to satisfy most users, including: standard\n x-y plots, semilog plots, log-log plots, contour plots, 3D plots, mesh plots,\n bar charts and pie charts.  Multiple graphs (of the same or different sizes)\n may be placed on a single page with multiple lines in each graph.  Different\n line styles, widths and colors are supported.  A virtually infinite number of\n distinct area fill patterns may be used.  There are almost 1000 characters in\n the extended character set.  This includes four different fonts, the Greek\n alphabet and a host of mathematical, musical, and other symbols.  The fonts\n can be scaled to any size for various effects.  Many different output device\n drivers are available (system dependent), including a portable metafile\n format and renderer.\n\n The PLPLOT package is freely distributable, but NOT in the public domain.\n The PLPLOT source code, except header files and those files explicitly\n granting permission, may not be used in a commercial software package without\n consent of the authors.  You are allowed and encouraged to include the PLPLOT\n object library and header files in a commercial package provided that: (1) it\n is explicitly and prominently stated that the PLPLOT library is freely\n available, and (2) the full copyrights on the PLPLOT package be displayed\n somewhere in the documentation for the package.\n\n We welcome suggestions on how to improve this code, especially in the form of\n user-contributed enhancements or bug fixes.  If PLPLOT is used in any\n published papers, please include an acknowledgment or citation of our work,\n which will help us to continue improving PLPLOT.  Also, please remember that\n as PLPLOT is not a commercial product, we cannot be expected to offer the\n kind of support that a commercial product may.  There is great interest\n in extending PLPLOT and fixing bugs, but the principal authors can only\n afford to work on it part time.  Improvements will necessarily focus on\n those which help us get our work done.\n\n PLPLOT is written in C, enabling it to run on many platforms practically\n without modification.  Fortran programs may use it transparently; stub\n routines are provided to handle the C<->Fortran interface without any\n modification of the user program.  C programs are required to include the\n header file \"plplot.h\"; see the documentation for more details.\n\n The main documentation for PLPLOT is in the doc/ directory in the form of\n several TeX files; please consult this for additional information ('latex\n plotdoc').  Unfortunately documentation tends to lag actual improvements to\n the code, so don't be surprised if some known features are not explained\n there.  Consult 'Changes.log' to see a list of recent changes.  \n\n At present, PLPLOT is known to work on the following systems:\n\n\t Unix:\tSunOS\n\t\t A/IX \n\t\t HP-UX\n\t\t Unicos\n\t\t DG/UX\n\t\t Ultrix\n\t\t SysV\n\t\t Linux\n\n\t Amiga/Exec\n\t MS-DOS\n\t OS/2\n\t NeXT\n\n For more information on how to get or use PLPLOT on your system, see:\n  - appendices to the PLPLOT manual\n  - system-specific documentation in the appropriate sys/<system> directory.\n\n To become a subscriber to the PLPLOT mailing list, send a request to\n plplot-request@dino.ph.utexas.edu.\n\n CREDITS\n -------\n\n PLPLOT is the result of the effort of many people, so it is impractical to\n list all the contributors.   Those currently supporting and otherwise\n responsible for the package in its present form include:\n\n Maurice LeBrun\n Please send all comments, flames, patches, etc, to me.  I am responsible for\n all the PLPLOT kernel development as well as most of the work on the\n metafile, xwindow, xterm, postscript, tektronix, and Amiga drivers.\n\n EMAIL\tmjl@fusion.ph.utexas.edu \n USMAIL\tDr. Maurice LeBrun\n\t Institute for Fusion Studies\n\t University of Texas\n\tAustin, TX  78712\n\n\nGeoff Furnish\nPlease send questions regarding the MS-DOS and OS/2 drivers to Geoff.\n\nEMAIL\tfurnish@fusion.ph.utexas.edu\nUSMAIL\tGeoff Furnish\n\tInstitute for Fusion Studies\n\tUniversity of Texas\n\tAustin, TX  78712\n\n\nTony Richardson\nCreator of PLPLOT 2.6b, 3.0\nPlease send questions regarding installation of PLPLOT on the NeXT to Tony.\n\nEMAIL   amr@egr.duke.edu\n\nUSMAIL  Tony Richardson              Tony Richardson\n        184 Electrical Engineering   2920 Chapel Hill Road Apt. 41-D\n        Duke University              Durham, NC 27707\n        Durham, NC 27706\n        ph 919-684-5274              ph 919-493-1609\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4078, "properties": {"category": "soc.religion.christian", "text": "From: KEMPJA@rcwusr.bp.com\nSubject: Re: Religious wars\nOrganization: BP Research, Cleveland, OH (USA)\nLines: 30\n\n\nIn article <Apr.21.03.24.44.1993.1288@geneva.rutgers.edu>, fraseraj@dcs.glasgow.ac.uk (Andrew J Fraser) writes:\n> \"Well you know that religion has caused more wars than\n> anything else\"\n> It bothers me that I cannot seem to find a satisfactory\n> response to this. After all if our religion is all about\n> peace and love why have there been so many religious wars?\n\nOf course if this question was asked in a group dealing with economics,\nthe answer would be that the cause of war was economic. My observations\nover the past 30 years (and not withstanding a little history reading\nbeside) is that while religious differences do play a part in many of\nthe conflicts, so does (unfortunately) race, economics and any other\nitems that identify one group of men as being different from another.\n\nIf we want to couch the cause of conflict in Christian terms, I would\nput it while Christ died for our sins, we are yet sinners. While some\nindividuals assume \"Christlike\" natures, most of us do not even\ncome close.\n\nI realize that in many ways this is a trite answer, but I guess that\nit is my way of rationalizing man's constant (or so it seems)\nconflict.\n\n\n---------------------------------------------------------------------\n\nJerry Kemp (Somtime Consultant)\nInternet: kempja@rcwusr.bp.com\n          kemp_ja@tnd001.dnet.bp.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.198+0000", "event": "documents", "entityId": 4079, "properties": {"category": "sci.electronics", "text": "From: henslelf@nextwork.Rose-Hulman.Edu. (Lige F Hensley)\nSubject: Re: what to do with old 256k SIMMs?\nOrganization: Computer Science Department at Rose-Hulman\nLines: 11\nNNTP-Posting-Host: g222-26.nextwork.rose-hulman.edu\n\nIn article <120466@netnews.upenn.edu> jhaines@eniac.seas.upenn.edu (Jason  \nHaines) writes:\n> \n> \tI was wondering if people had any good uses for old\n> 256k SIMMs.  I have a bunch of them for the Apple Mac\n> and I know lots of other people do to.  I have tried to\n> sell them but have gotten NO interest.\n> \n> \tSo, if you have an inovative use (or want to buy\n> some SIMMs  8-) )\nSure I'll give you 10 bucks for all of them\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4080, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Re: HV diodes\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 25\n\nIn article <1993Apr2.204617.14179@mprgate.mpr.ca>, vanderby@mprgate.mpr.ca (David Vanderbyl) writes:\n|> dtmedin@catbyte.b30.ingr.com (Dave Medin) writes:\n|> >The CRT, in fact, does have an intentional built-in capacitor for\n|> >its function just as IC's have built-in transistors, etc.\n|> \n|> Gee, Mr. Myers, are we going to let this go without a CORRECTION?\n\nTwo things:\n\n\t1. Read your own posts. I was agreeing with Bob. No correction\n\t   needed.\n\n\t2. Don't quote stuff out of context.\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4081, "properties": {"category": "talk.religion.misc", "text": "From: mls@panix.com (Michael Siemon)\nSubject: Re: Christian meta-ethics\nOrganization: PANIX Public Access Unix, NYC\nLines: 176\n\nIn <lsjc8cINNmc1@saltillo.cs.utexas.edu> turpin@cs.utexas.edu (Russell Turpin)\nwrites:\n\n>In article <C554F5.3GF@panix.com> mls@panix.com (Michael Siemon) writes:\n>\n>> The issue, then, is this:\n>>\n>>\tChristian A says, \"Behavior such-and-such is sinful.\"  What is\n>>\tChristian B supposed to *do* with such a statement?\n>>\n>> One possibility *always* exists:  A may be able to persuade B that the\n>> behavior in question *does* exhibit a failure in loving God or neighbor.\n>\n>Michael, modern liberal that he is, reads a fairly benign meaning\n>into this word.  He then constructs his religious beliefs around\n>this understanding, reading *other* scripture in the context of \n>these commandments, with \"love\" benignly understood.\n\nI regard love as no more or less \"benign\" than any other Christian does.\nYou are merely expressing \"approval\" of the consequences I find therein.\nWhich says more about our politics and cultural trappings than about my\n(or any) religion.  \"Love\" is a highly ambiguous word, of which Christians\ncan write both the \"gentle\" words Paul uses of it in 1 Corinthians -- in\na passage that even the \"conservatives\" will quote at you :-) -- and the\nwords of T. S. Eliot in his Pentacost Hymn, \"Love is the unfamiliar Name\nthat wove the intolerable shirt of flame ...\"\n\nThis is in any case rather to the side of what I was attempting to raise\nin my note, as will become more evident below.\n\n>As a non-believer, I find Michael's Christianity kinder and gentler.\n\nblechhh.  I think you are misreading me, rather seriously.  Though,\ngiven my principle that one CANNOT force one's own notion of \"sin\" on\nanother, and my unshakeable \"disestablishmentarianism\", Russel Turpin\nand others (believers and unbelievers alike) are under no threat of my\nlegislating my own understanding of Christian love.\n\n>If I take him at\n>his word, he cannot condemn the Inquisitors, because they were\n>also following these commandments as *they* understood them.  If\n\nYou misread.  I can do (and have repeatedly done) a complete bill of\naccusation against the Inquisition by exhibiting in as thorough a form\nas anyone might want a demonstration of the harm it has done to human\nbeings (in the first place) and to respect for (let alone love of) \"God\"\nin near succession.  Please go back to my quoted words above:\n\nThe \"possibility that always exists\" is that I (or, to revert to proper\ntime sequence, my predecessors over the last several centuries) could\npersuade \"Christian B\" of my case that the Inquisition *does* indeed\nconstitute an egregious violation of the Law of Love.  I must also note\nthat the majority of Christians HAVE been so persuaded.  By Christian\nargumentation, as well as by secular [both Christian and non-Christian]\nprohibitions.\n\nWhat Mr. Turpin alludes to is a trickier point:\n\n\tA.  I demonstrate the human pain and violation of love involved\n\t    in the Inquisition.\n\n\tB.  The Inquisitor responds that Mother Church must, however\n\t    painful this *seems*, \"discipline\" her children for their\n\t    own good -- in this case the salvation of their souls (or\n\t    if the tortured heretic will not recant, than by bad example\n\t    \"deterring\" others from the same loss-of-soul.)\n\n\tA.  I point out that this \"justification\" of a failure in love\n\t    depends on a highly speculative construal of texts and of\n\t    philosophical assertions that are quite undemonstrable.\n\n\tB.  Burns me at the stake.\n\nMy rhetoric has failed, but the point I am making is sustained.  What is\ngoing on here has a *lot* to do with \"cultural baggage.\"  In this case,\nthe baggage includes a (nearly universal, and absolutely secular) belief\nthat an accused person must prove innocence and that testimony is most\nbelievable if taken under torture.  The elimination of Inqisitorial\npractice (in those places where it *has* been eliminated, or at least\ngreatly reduced) has very little, if anything, to do with the discussion\nof sin in the exchange between A and B.\n\nMr. Turpin is pointing out that, if I am A versus the Grand Inquisitor's B,\nthen my persuasion is not very likely to work.  I know this; and in what-\never personal agony, I consign the issue to God and my ghostly defense\nattorney.  So, \"one possibility\" fails in this case -- as it will fail in\nmay others.  At the other extreme, the \"persuasion\" will succeed when it\nproperly SHOULD not, if it entails mistaken assumptions I share with the\nInquisitor.  And that is potentially an even more troubling case, in that\nmany of the victims of Inquisition will have \"accepted\" that they were in\nfact sinful (in such random cases as they may actually have been guilty\nof charges brought against them.)\n\nThe point is that the \"persuasion\" breaks down when the parties do NOT\nshare enough to agree on all the cultural baggage -- and given the main\nthrust of the Inquisition, against \"heresy\", it is *bound* to break down\nin precisely the \"worst\" cases.  The \"conservative\" (I don't think that\nis the right word, BTW) will take refuge in what I attribute to B above,\nthat he is \"justified\" in causing harm because he *thinks* that works to\na \"greater good.\"  But this is a violent and extravagant REFUSAL to follow\nthe gospel, as if one's theories about \"sin\" entitled one to cast aside\nJesus' words on dealing with sinners (cf. Matthew 5:39ff).\n\nI am a \"radical\" Christian *only* in that I take the gospel seriously.\n\n>(Or, for that matter, what does it mean to love one's fellow\n>man?) And what is the \"right thing\"?  And how does one go about\n>loving god? \n\nWell, the whole *point* of making these the \"base\" commandments is that\nthey *aren't* reducible to rules.  A set of rules is a moral code or a\nlaw code or an algorithm for acting.  Such things can be very helpful\nto individuals or societies -- but not if they are used *instead* of a\npersonal involvement in and responsibility for one's actions.  The Great\nCommandment is, more than anything else, a call to act *as if you were\nGod and accepting ultimate responsibility* in your every action.  A\ndemand that I, like most, would rather *not* hear, but it keeps popping\nup nonetheless (along with the reassurance that it is more important\nthat I be open to trying this, than succeeding at it).  \"Conservatives\"\nmay twist this \"act as if you were God\" to mean \"lay down rules for other\npeople and be as nasty to them as possible if they don't keep YOUR rules.\"\nThey are so insistent (and obvious) about this that they have convinced a\nlot of people (who rightly reject the whole concept!) that such idiocy\nIS how God acts.  That, after all, is the standard accusation \"against\nGod\" by the atheists here and elsewhere.  That the \"conservatives\" have\nconfused THEIR manipulative, hoop-jumping notions of coercing other\npeople with the Nature of God is almost the entire content of standard\nAmerican atheism -- and I quite agree with it on this point.\n\n>Ethical systems are not differentiated by the nice sounding goo\n>up front, much of which sounds pretty much the same, but by the\n>*specific* acts, procedures, and arguments that they recommend.\n\nAnd different bodies of Christians have, from the beginning, urged\n*different* \"ethical systems\" (or in some cases, none).  As a result,\nit is bizarre to identify any one of these systems, however popular\n(or infamous) with Christianity.  Christianity DOES NOT HAVE A TORAH.\nIt does not have a QU'RAN.  Specifically Christian scripture has very\nlittle, if anything, in the way of \"commandments\" -- so little that\nthe \"Christians\" who desperately *want* commandments go \"mining\" for\nthem with almost no support (and thus almost no obvious limitation :-))\nfor their efforts.  The one, single, thing in the gospels which Jesus\nspecifically \"gives\" as \"a commandment\" to us is \"love one another.\"\n\n\t[I will be expanding on this point in a reply to Paul Hudson\n\t that I hope to get to in a day or so -- it is quite true that\n\t SOME Christians infer LOTS of commandments from the NT; I'll\n\t point out what has to be going on in these inferences, and why\n\t there is a huge amount of \"cultural baggage\" involved.]\n\nYou are quite right that this is \"goo\" if one is looking for an ethical\nsystem.\n\nBut why should anyone BE looking for an ethical system, since our\nsociety is eager to hand us one or more no matter what we do?  It\nmay be that we need a principle for the CRITIQUE of ethical systems\n-- in which case I will profer the _agapate allelou_ once again.\n\n>I am glad that a few Christians,\n>such as Michael, find a benign meaning for the goo, and then\n>interpret the usually ugly specifics in a more constructive\n>fashion.  On the other hand, I do think that this tells us more\n>about Michael and Christians like him that it tells us about\n>Christianity. \n\nI think you are begging the question. Why don't I and the (myriads\nof) other Christians like me tell you something about Christianity?\n[Nor is this very new in Christianity -- you might want to look up\nthe origins and fundamental doctrines of the Quakers, from the 17th\ncentury onwards, and they are not at all the first to understand the\ngospel in a manner that is congenial to my case.]\n-- \nMichael L. Siemon\t\tI say \"You are gods, sons of the\nmls@panix.com\t\t\tMost High, all of you; nevertheless\n    - or -\t\t\tyou shall die like men, and fall\nmls@ulysses.att..com\t\tlike any prince.\"   Psalm 82:6-7\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4082, "properties": {"category": "comp.graphics", "text": "From: ab@nova.cc.purdue.edu (Allen B)\nSubject: Re: TIFF: philosophical significance of 42\nOrganization: Purdue University\nLines: 20\n\nIn article <1993Apr10.160929.696@galki.toppoint.de> ulrich@galki.toppoint.de  \nwrites:\n> According to the TIFF 5.0 Specification, the TIFF \"version number\"\n> (bytes 2-3) 42 has been chosen for its \"deep philosophical \n> significance\".\n> Last week, I read the Hitchhikers Guide To The Galaxy,\n> Is this actually how they picked the number 42?\n\nI'm sure it is, and I am not amused.  Every time I read that part of the\nTIFF spec, it infuriates me- and I'm none too happy about the\ncomplexity of the spec anyway- because I think their \"arbitrary but\ncarefully chosen number\" is neither.  Additionally, I find their\nchoice of 4 bytes to begin a file with meaningless of themselves- why\nnot just use the letters \"TIFF\"?\n\n(And no, I don't think they should have bothered to support both word\norders either- and I've found that many TIFF readers actually\ndon't.)\n\nab\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4083, "properties": {"category": "comp.windows.x", "text": "From: klee@synoptics.com (Ken Lee)\nSubject: Re: XCopyPlane Question\nReply-To: klee@synoptics.com\nOrganization: SynOptics Communications, Santa Clara CA\nLines: 13\nNntp-Posting-Host: bugsbunny.synoptics.com\n\nIn article AA04287@neko.CSS.GOV, nancie@neko.CSS.GOV (Nancie P. Marin) writes:\n>I am trying to use XCopyPlane to copy a single plane \n>from a depth-8 pixmap to a depth-1 pixmap.  Everytime I\n>try this, I see absolutely nothing displayed.  I know there\n>is data in the depth-8 pixmap becuase I have checked by doing\n>an XCopyArea to the screen.\n\nThe code fragment looks reasonable, but is your logic valid?\nJust because something appears in an 8 bit deep pixmap doesn't\nmean every bit plane contains data.  Did you try each plane?\n\n---\nKen Lee, klee@synoptics.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4084, "properties": {"category": "comp.windows.x", "text": "From: panvalka@cs.unc.edu (Anay Panvalkar)\nSubject: Frame buffer question for X11R5 (Sun)\nOrganization: The University of North Carolina at Chapel Hill\nLines: 22\nDistribution: world\nNNTP-Posting-Host: hatteras.cs.unc.edu\n\nX Window installation on a Sun4/470 with CG6 alone and with CG2 as\nscreen:0.0 and CG6 as screen:0.1.\n\nQuestions:\n1)  Are there any hardware configuration changes on the CG2 and/or\nCG6 devices that need to be made other than pulling out and inserting the\nCG2 frame buffer in the vme bus?\n\n2)  The CG6 is called a 'graphics accelerator' as apposed to a 'frame buffer'.\nWhat is the significance of this to the X server and how do we install\nthe SunOS driver / X to be compatable.\n\n-----------------------\nI would appreciate any information on this. \nI am posting this on the behalf of Dr. John Charlton (who does not have net\naccess). Please reply to him directly at charlton@bme.unc.edu or just send\nit at this address and I will forward it. \n\nThank you for your help!\n\n-Anay\npanvalka@cs.unc.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4085, "properties": {"category": "soc.religion.christian", "text": "From: will@futon.webo.dg.com (Will Taber)\nSubject: Re: Question about Virgin Mary\nLines: 31\n\nddavis@cass.ma02.bull.com (Dave Davis) writes:\n\n[ Much deletion.  He is trying to explain the Immaculate Conception\nand the Assumption of Mary.]\n\n>\t'Original sin' is the only reason (fallen) humanity\n>\tdies. Adam and Eve would not have died had they\n>\tnot fallen.\n\nIf this is true than why in the Genesis story is God concerned that\nAdam and Eve might also eat from the Tree of Life and live forever and\nbe like gods?  Eating of the tree of life would not take away the\neffects of eating of the Tree of Knowledge.  Is there any reason to\nassume that they had already eaten of the Tree of Life and so had\nalready attained to eternal life?  If so, what basis is there for\nsaying that this was taken away from them?  To me the wages of sin are\na spiritual death, not necessarily a physical death.  I\ncan attest to the truth of this interpretation from my own experience.\nI suspect that many others could attest to this as well. \n\nPeace\nWill\n\n---------------------------------------------------------------------------- \n| William Taber         | Will_Taber@dg.com \t  | Any opinions expressed |\n| Data General Corp.    | will@futon.webo.dg.com  | are mine alone and may |\n| Westboro, Mass. 01580 |                         | change without notice. |\n|---------------------------------------------------------------------------\n| When all your dreams are laid to rest, you can get what's second best,   |\n|\tBut it's hard to get enough.\t\tDavid Wilcox               |\n----------------------------------------------------------------------------\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4086, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dmaluso@MtHolyoke.edu (Diane Maluso)\nSubject: Quadra 800 configurations??\nArticle-I.D.: slab.1ps093$f0u\nOrganization: Mount Holyoke College\nLines: 19\nNNTP-Posting-Host: slab.mtholyoke.edu\nX-Newsreader: Tin 1.1 PL5\n\n\nI've noticed some of you mentioning owning a Quadra 800 8/230 with CD300\nand 1meg of VRAM.  It seems that this configuration was purchased\ncomplete; that is, the CD300 and VRAM were already installed in the box. \nI am interested in that exact configuration and will be buying with an\neducational discount but have not found the CD300 bundled with any Q800\nsmaller than the 8/500.\nIf you bought or know how to buy the 8/230 with CD installed, please let\nme know what you know via email:\nsend messages to dmaluso@mhc.mtholyoke.edu\nThanks, all.\nDiane Maluso\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=     Diane Maluso            INTERNET:  dmaluso@mhc.mtholyoke.edu     =\n=     Department of Psychology and Education                           =\n=     Mount Holyoke College                                            =\n=     South Hadley, MA  01075                                          =\n=     (413) 538-2107                                                   =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4087, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Sea?  What sea? We said rivers!\nOrganization: Aiken Computation Lab, Harvard University\nLines: 27\n\nIn article <1993Apr25.171003.10694@thunder.mcrcim.mcgill.edu> ahmeda@McRCIM.McGill.EDU (Ahmed Abu-Abed) writes:\n\n>I am sick and tired of this 'DRIVING THE JEWS INTO THE SEA' sentance\n>attributed to Islamic movements and the PLO; it simply can't be proven\n>as part of their plan!\n\n\tOk, I'll admit it.  I can't find a quote with my meager online\nresources.  but i did find this little gem:\n\n\t``When the Arabs set off their volcano, there will only be Arabs in\n\tthis part of the world.  Our people will continue to fuel the torch\n\tof the revolution with rivers of blood until the whole of the\n\toccupied homeland is liberated...''\n\t--- Yasser Arafat, AP, 3/12/79\n\n\tSo, Ahmed is right.  There was nothing about driving Jews into\nthe sea, just a bit of \"ethnic cleansing,\" and a river of blood.\n\n\tIs this an improvement?\n\nAdam\n\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4088, "properties": {"category": "rec.autos", "text": "From: nataraja@rtsg.mot.com (Kumaravel Natarajan)\nSubject: Re: Chryslers Compact LH Sedans?\nNntp-Posting-Host: opal12\nOrganization: Motorola Inc., Cellular Infrastructure Group\nDistribution: usa\nLines: 21\n\nrmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen) writes:\n\n>aas7@po.CWRU.Edu  writes:\n>> \n>> In a previous article, v064mcqs@ubvmsd.cc.buffalo.edu (ADAM M. GANDLER) says:\n>> \n>> >\n>> >I heard Chrysler is planning to design or is in the process\n>> >of designing a compact sedan line based on the LH platform.\n>> >If these were as thought out as the full sized sedans and\n>> >priced competitively, I see no reason why they could not give\n>> >the imports and even the Saturns a serious challenge.\n>> \n>> OH GOODY!!! We now get to see SATURNS sold through CRYCO dealers.....\n>> fab!\n>Why is it this A-hole insist on remarks like this.  I really am growing\n>tired of this s*** DREW. \n\nDo you have a \"kill\" file for your newsreader?  I put the name \"Spencer\"\nin my kill file and that gives me about 10-15 less articles PER DAY that\nI have to sift through.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4089, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Question about Virgin Mary\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 22\n\nD. Andrew Kille writes:\n\n>Just an observation- although the bodily assumption has no basis in\n>the Bible, Carl Jung declared it to be one of the most important\n>pronouncements\n>of the church in recent years, in that it implied the inclusion of the \n>feminine into the Godhead.\n\nWhich means he has absolutely no idea about what the Assumption is.\n\nHowever greatly we extoll Mary, it is quite obvious that she is in no\nway God or even part of God or equal to God.  The Assumption of our\nBlessed Mother, meant that because of her close identification with the\nredemptive work of Christ, she was Assumed (note that she did not\nASCEND) body and soul into Heaven, and is thus one of the few, along\nwith Elijah, Enoch, Moses (maybe????) who are already perfected in\nHeaven.  Obviously, the Virgin Mary is far superior in glorification to\nany of the previously mentioned personages.\n\nJung should stick to Psychology rather than getting into Theology.\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4090, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: WH proposal from Police point of view\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 30\n\nstrnlght@netcom.com (David Sternlight) writes:\n\n> dwight tuinstra posts a very interesting message in which he comments on the\n> effects of the Clipper chip on state and local police. Actually, reading\n> between the lines, it could be a very good thing for civil liberties in one\n> respect, since it will at least prevent cowboy cops and cowboy state and\n> local agancies from reading your traffic if they tap it illegally.\n\nInstead of reading between the lines, try to think a little bit. OK,\nif that's way too difficult to you, here are some hints.\n\nIndeed, the new proposal imposes some additional burocratic burden on\nthe local police, if they badly want to tape the magic cookie recipie\nthat your mom is telling you on the phone. So, guess what they will\ndo? Propose that the new technology is removed? Or implement some\n\"facilitations\"? Of course, you won't want to wait until they get the\napproval from two different agencies to decrypt the conversation\nbetween two child molesters, because meanwhile those two child\nmolesters might be conspiring about molesting your child, right? So,\nthere should be some way for them to get access to those keys\n-quickly-, right? Like, they could have a copy of the database, and\nworry about a warrant later...\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4091, "properties": {"category": "rec.sport.baseball", "text": "From: jaeastman@anl.gov (Jeff Eastman)\nSubject: Re: cubs & expos roster questions\nOrganization: Argonne National Laboratory\nLines: 23\n\nIn article <15APR199312304021@pavo.concordia.ca>, m_klein@pavo.concordia.ca\n(CorelMARK!) wrote:\n> \n> In article <0096B0F0.C5DE05A0@Msu.oscs.montana.edu>, alird@Msu.oscs.montana.edu writes...\n> >In article <1993Apr15.003015.1@vmsb.is.csupomona.edu>, cvadrnlh@vmsb.is.csupomona.edu writes:\n> >>Today (4/14) Cubs activated P Mike Harkey from DL, whom did they move to make\n> >>room for Harkey?\n> >>Also, are Delino Deshields & John Wetteland of the Expos on the DL?\n> >>Thanks for anyone who can give me more info!\n> >>/===\n> >>Ken \n> >>Cal Poly, Pomona\n> >>\n> > \n> >Wetteland is on the DL effective March 26 or something like that.\n> > \n> >rick\n\nThe Cubs sent Boskie to Iowa to make room for Harkey.\n_______________\nJeff Eastman\njaeastman@anl.gov\n_______________\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4092, "properties": {"category": "sci.electronics", "text": "From: swalker@uts.EDU.AU (-s87271077-s.walker-man-50-)\nSubject: What do Nuclear Site's Cooling Towers do?\nOrganization: University of Technology, Sydney\nLines: 12\nDistribution: world\nNNTP-Posting-Host: acacia.ccsd.uts.edu.au\nSummary: Cooling Towers?. Anyone know how they work?\nKeywords: Nuclear\nOrganisation: University of Technology, Sydney, Australia\n\n\n\nI really don't know where to post this question so I figured that\nthis board would be most appropriate.\nI was wondering about those massive concrete cylinders that\nare ever present at nuclear poer sites. They look like cylinders\nthat have been pinched in the middle. Does anybody know what the\nactual purpose of those things are?. I hear that they're called\n'Cooling Towers' but what the heck do they cool?\nI hope someone can help \n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4093, "properties": {"category": "comp.sys.mac.hardware", "text": "From: pmontan@nswc-wo.navy.mil (Paul Montanaro)\nSubject: Re: IIci -> Q700 upgrade?\nOrganization: NSWC\nLines: 44\n\nIn article <1993Apr15.164053.29298@thunder.mcrcim.mcgill.edu>,\ndudek@daeron.mcrcim.mcgill.edu (Gregory Dudek) wrote:\n> \n> In article <C5HA0x.11oq@austin.ibm.com> $LOGIN@austin.ibm.com writes:\n> >\n> >A while ago I posted a note asking for specs on the Quadra 700, and opinions on\n> >the Q700 upgrade of a IIci vs. an accelerator card.  So far no responsed that\n> >I've noticed.  Please let me know what you think of these possible upgrade\n> >paths:  Cost, efficiency, pros/cons, etc.. Thanks!\n> \n>   Complete Q700 are best obtained from your dealer or some recent\n> copy of MacWorld or MacUser.  My foggy memory suggests that the most relevant\n> comparison factors vis-a-vis a IIci are as follows:\n> \n>   25 MHz 68040\n>   16 Mhz data path (don't recall this for sure, but it's slower\n>       than Q 950 style machines for sure).\n>   Ethertalk card on-board\n>   Audio in/out\n>   4 MB RAM on motherboard\n>   4 SIMM slots\n>   2 NuBus slots.\n>   More flexible build-in video than the CI.  Uses VRAM.\n> \n> In comparison, a IIci with an accelerator won't give you\n>   audio or ethernet  or the same video options.\n>   With a 68040 accelerator, CPU performance can be comparable but I\n>   think it ends up costing more.\n> \n> Greg Dudek\n\n  Actually, an accelerator such as the Daystar 33 MHz 68040 is cheaper than\nupgrading to a Q700 (25 MHz).  The accelerator costs about $1400 whereas\nthe upgrade costs $2131 (just quoted from my dealer).  However the Q700\nupgrade gives you very fast built in video that supports monitors up to 21\"\nwith 8 bit depth and up to 16\" at 24 bit depth (with additional VRAM).  It\nalso has a SCSI port capable of a much faster throughput than the CI, which\nmakes a big difference if you have a fast hard drive.\n\n  If the improved video and SCSI features are important to you, you're\nbetter off getting the Q700 upgrade, otherwise save some money and get an\naccelerator.\n\nPaul\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4094, "properties": {"category": "sci.space", "text": "From: enf021@cck.coventry.ac.uk (Achurist)\nSubject: Re: Abyss: breathing fluids\nNntp-Posting-Host: cc_sysk\nOrganization: Coventry University\nLines: 31\n\nIn article <93089.204431GRV101@psuvm.psu.edu> Callec Dradja <GRV101@psuvm.psu.edu> writes:\n>I am a bit nervous about posting this beacause it is begining to\n>stray fron the topic of space but then again that doesn't seem to\n>stop alot of other people. :-)\n>\n>With all of this talk about breathing at high pressures, I began\n>to think about the movie Abyss. If you remember, in that movie one\n>of the characters dove to great depths by wearing a suit that used\n>a fluid that carries oxegen as opposed to some sort of gas. Now I\n>have heard that mice can breath this fluid but for some reason, humans\n>are unable to. Does anyone know more details about this?\n>\n>Gregson Vaux\n>\n\nI believe the reason is that the lung diaphram gets too tired to pump\nthe liquid in and out and simply stops breathing after 2-3 minutes.\nSo if your in the vehicle ready to go they better not put you on \nhold, or else!! That's about it. Remember a liquid is several more times\nas dense as a gas by its very nature. ~10 I think, depending on the gas\nand liquid comparision of course!\n\nAcurist\n\n\n\n\n\n\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4095, "properties": {"category": "talk.politics.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: Top Ten Excuses for Slick Willie's Record-Setting Disapproval Rati\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 56\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, MBS110@psuvm.psu.edu (Mark 'Mark' Sachs) says:\n\n>In article <1qhr73$a8d@usenet.INS.CWRU.Edu>, an030@cleveland.Freenet.Edu\n>(Broward Horne) says:\n>>      It sure does appear that way, doesn't it?\n>\n>The attitude that people are stupid if they don't agree with you is not\n>going to bring you great success in life. Free advice, there.\n\n\n      HAHAHAHAHAH.  Oh, CHRIST!  Oh, HAHAHAHAH.\n\n      whew.  Mark, what on EARTH makes you think I give a FUCK\n      about being a \"success\", particularly NOW when I'll just\n      the HELL taxed out of me?  Oh, this is excellent.\n\n      Holy christ! :)\n\n        Besides, let's <ahem> examine the record, shall we?\n\n    Broward:   \" Clinton's going to taxe the HOLY FUCK out of you! \"\n    Mark:      \" No, he's not.  Only $17 / month \"\n\n   ( I STILL get a laugh out of this one! :) )\n\n    Broward:  \" Oh, here comes a National Sales Tax \"\n    Clinton Supporter:  \" Oh, no, Bill never said that \"\n\n\n    Want some more \"free predictions\" ?\n\n     :)\n\n\n>>     It always makes me smile, to see George Bush used to defend\n>>     Bill Clinton.  Can you imagine anything sadder than to be left\n>>     with GEorge Bush as a final argument?\n>\n>True. The Republicans did look pretty pathetic in November of '92. >:-)\n\n       Yup.  They surely did.\n       Almost as pathetic as Clinton suppoters are looking in\n      April of 93. \n\n     Well, chumbo, I see my my watch here that my \"appointment\"\n     at the lake is about 2 hours past due! :)\n\n     You'll let me know who the \"full-time\" working thing works\n     out, won't you?   I want to enjoy EVERY minute of my free\n     time and FREE health care ( the ONLY reason I would have \n     gone back to working! :)  THANKS, BILL! :) )\n\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4096, "properties": {"category": "sci.electronics", "text": "From: kthompso@donald.WichitaKS.NCR.COM (Ken Thompson)\nSubject: Re: 68HC11 problem\nOrganization: NCR Corporation Wichita, KS\nLines: 21\n\nmdanjou@gel.ulaval.ca (Martin D'Anjou) writes:\nB\n)>>>>>>>>> Votre host est mal configure... <<<<<<<<<<<<\n\n\n)Bonjour Sylvain,\n)\tJ'ai travaille avec le hc11 il y a 3 ans et je ne me souviens pas de toutes les possibilites mais je vais quand meme essayer de t'aider.\n\n)\tJe ne crois pas que downloader une programme directement dans le eeprom soit une bonne idee (le eeprom a une duree de vie limitee a 10 000 cycles il me semble). Le communication break down vient peut-etre du fait que le eeprom est long a programmer (1ms par 8 bytes mais c'est a verifier) et que les delais de transfer de programme s19 vers la memoire sont excedes. Normalement, les transferts en RAM du code s19 est plus rapide car le RAM est plus rapide que le eeprom en ecriture.\n\n)\tC'est tout ce que ma memoire me permet de me souvenir!\n\n)Bonne chance,\n\nOh yeah easy for him to say!...\n\n-- \nKen Thompson    N0ITL  \nNCR Corp.  Peripheral Products Division   Disk Array Development\n3718 N. Rock Road  Wichita KS 67226   (316)636-8783\nKen.Thompson@wichitaks.ncr.com \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4097, "properties": {"category": "rec.autos", "text": "From: Eric_Thomas@mindlink.bc.ca (Eric Thomas)\nSubject: 1962 thunderbird\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 4\n\nI just bought a 1962 T-BIRD and would like any info on a club\nin and around the the B.C. coast.\n                                 Eric Thomas\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4098, "properties": {"category": "sci.med", "text": "From: ls8139@albnyvms.bitnet (larry silverberg)\nSubject: Re: H E L P   M E   ---> desperate with some VD\nReply-To: ls8139@albnyvms.bitnet\nOrganization: University of Albany, SUNY\nLines: 17\n\n>I can probably buy the \n>tools and this solution somewhere but I DON'T KNOW HOW TO DO INJECTION BY\n>MYSELF\n\nYou may also want to buy a 'self injector' or something like that.\nMy friend is diabetic.  You load the hyperdermic, put it in a plastic case\nand set a spring to automatically push the needle into the skin and depress\nthe plunger.\n\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nLive From New York, It's SATURDAY NIGHT...\n\nTonight's special guest:\nLawrence Silverberg from The State University of New York @ Albany\naka:ls8139@gemini.Albany.edu\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4099, "properties": {"category": "talk.politics.mideast", "text": "From: henrik@quayle.kpc.com \nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: NONE\nLines: 21\n\nIn article <1993Apr17.185118.10792@ee.rochester.edu>, terziogl@ee.rochester.edu (Esin Terzioglu) writes:\n|> In article <1993Apr16.195452.21375@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n|> >04/16/93 1045  ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\n|> >\n|>  \n|> Ermenistan kasiniyor...\n|> \n|> Let me translate for everyone else before the public traslation service gets\n|> into it\t: Armenia is getting itchy. \n|> \n|> Esin.\n\n\nLet me clearify Mr. Turkish;\n\nARMENIA is NOT getting \"itchy\". SHE is simply LETTING the WORLD KNOW that SHE\nWILL NO  LONGER sit there QUIET and LET TURKS get away with their FAMOUS \ntricks. Armenians DO REMEMBER of the TURKISH invasion of the Greek island of\nCYPRESS WHILE the world simply WATCHED. \n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.199+0000", "event": "documents", "entityId": 4100, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: zimm@condor.navsses.navy.mil\nSubject: Re: Diamond SS 24X\nOrganization: CDNSWC, Naval Ship Systems Eng Sta, Phila PA\nLines: 20\n\nGreetings!\n   \nI've had a bunch of problems with the 24x.  Opening a DOS window on the\ndesktop can occasionally result in the windows \"blowing up\" into a set of\nhorizontal lines, hashing the entire desktop.  Nothing can recover this \nexcept to completely exit from Windows.  The other irritating problem is\nthat windows that scroll often overwrite lines rather than actually\nscrolling, as if a CR was printed without an LF.  This seems ONLY to happen\nto communications programs, but I can't nail it down any further than that.\nNote, though, that the comms programs don't have to be communicating.  Even\njust scrolling back through capture buffers or displaying disk files in\nthese programs causes the problem.\n   \n   Prior to the latest rev of Word Perfect for Windows, WPwin would sometimes\nblow up, and the error message would cite the video driver as the source of\nthe problem.  I've still seen this, but only once or twice with WPwin 5.2.\n   \n   Dave Zimmerman\n   (My opinions are my own)\n \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4101, "properties": {"category": "comp.sys.mac.hardware", "text": "From: wis@liverpool.ac.uk (Mr. W.I. Sellers)\nSubject: Re: PDS vs. Nubus (was Re: LC III NuBus Capable?)\nOrganization: The University of Liverpool\nLines: 42\nNntp-Posting-Host: uxd.liv.ac.uk\nX-Newsreader: TIN [version 1.1 PL8]\n\nBill Higgins-- Beam Jockey (higgins@fnalf.fnal.gov) wrote:\n: In article <C5KzLs.KKB@dartvax.dartmouth.edu>, hades@coos.dartmouth.edu (Brian V. Hughes) writes:\n: > mmiller@garnet.msen.com (Marvin Miller) writes:\n: >>My friend recently purchased a LC III and he wants to know if there is\n: >>such a demon called NuBus adapter for his PDS slot? \n\n: > The LC family of Macs can only\n: > use PDS cards. They are not able to use NuBus.\n\n: Ah, but why?  Can some technically-hip Macslinger tell us what the\n: difference is between PDS and Nubus?  \n\n: Is it impossible to make a gadget that plugs into PDS and ends in a\n: Nubus card cage?  At least, Marvin's friend has not been able to\n: locate one and neither have I.  What is the fundamental reason for\n: this?\n\nI think that there do exist NuBus expansion cages (I'm sure I've seen\nthem advertised occassionally), but I think that the main problem is that\nthey cost much more than the difference in price between say a LC and IIvx\nso unless you need lots of NuBus slots its not worth the bother.\n\n(Of course, it may be that these extra boxes are so expensive because\nno one buys them because they are so expensive...)\n\nNuBus technology isn't a special Apple Proprietry thing (I have this\nsneaky feeling that it is licensed from Texas Instruments???) so there\nis no problem building an expansion box.\n\nThe difference between NuBus and PDS is that NuBus is a clever interface\nwith lots of neat toys built in to make sure that lots of cards can work\ntogether on the same computer. PDS (processor direct slot) is just that:\nhere are all the connections to the processor. You can do anything with\nthis and it is as quick as it can be, but there's no cooperation. You\nmay be able to get double PDS slot adaptors but you try plugging 2\nvideo cards in, and just watch them conflict! Of course, the extra \nelectronics in a NuBus slot makes it appreciably more expensive, so\nguess why Apple doesn't put it in it's cheaper machines?\n\nSo, yah pays yer money and yah takes yah choice.\n\nBill (wis@liverpool.ac.uk)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4102, "properties": {"category": "rec.sport.hockey", "text": "From: smorris@venus.lerc.nasa.gov (Ron Morris )\nSubject: Re: Wings take game one\nOrganization: NASA Lewis Research Center\nLines: 25\nDistribution: world\nNNTP-Posting-Host: venus.lerc.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn  <1qvos8$r78@cl.msu.>, vergolin@euler.lbs.msu.edu (David Vergolini) writes...\n>  The Detroit Red Wings put a lot of doubter on ice tonight with a 6 - 3\n>washing of the Toronto Maple Leafs.  All you Toronto fans have now seen the\n>power of the mighty Red Wing offense.  Toronto's defense in no match for the\n>Wing offense.  As for the defense, Probert, Kennedey and Primeau came out\n>hitting hard.  Toronto players were being thrown left and right.  Not even\n>Wendell Clark was tough enough for the Wings tough guys.  The Wings only gave\n>up three goals, a low total for what they say is a mediocre defense.\n>  All you Leaf fans better speak up now.  You team will probable have its\n>season ended soon.  Wings fans, keep up the support.\n\nThere's quite a few Wings fans lurking about here, they just tend\nto be low key and thoughtful rather than woofers.  I suppose every\nfamily must have a Roger Clinton, though.  But remember (to paraphrase\none of my favorite Star Trek lines), \"if we adopt the ways of the Leaf\nfans, we are as bad as the Leaf fans\".\n\nRon\n\n**********\n\"And one of my major goals is to leave the next president a new set\nof things to worry about.  I'm getting bored reading the same problems\nin the paper, decade after decade.  I want people to have to deal\nwith new problems.\"\n                    ... President Bill Clinton   2-4-93\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4103, "properties": {"category": "sci.crypt", "text": "From: pdc@dcs.ed.ac.uk (Paul Crowley)\nSubject: Re: Organized Lobbying for Cryptography\nReply-To: pdc@dcs.ed.ac.uk (Paul Crowley)\nOrganization: Edinburgh University\nDistribution: inet\nLines: 12\n\nQuoting jgfoot@minerva.cis.yale.edu in article <1r3jgbINN35i@eli.CS.YALE.EDU>:\n>Perhaps these encryption-only types would defend the digitized porn if it\n>was posted encrypted?\n\n>These issues are not as seperable as you maintain.\n\nIn fact, since effective encryption makes censorship impossible, they\nare almost the same issue and they certainly fall into the brief of the\nEFF.\n  __                                  _____\n\\/ o\\ Paul Crowley   pdc@dcs.ed.ac.uk \\\\ //\n/\\__/ Trust me. I know what I'm doing. \\X/  Fold a fish for Jesus!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4104, "properties": {"category": "rec.sport.baseball", "text": "From: feszcm@warren1c.its.rpi.edu (Michael Jaroslaw Feszczyszyn)\nSubject: Re: Fenway Gif\nNntp-Posting-Host: warren1c.its.rpi.edu\nReply-To: feszcm@rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY.\nLines: 12\n\nIn article <C5JB3D.9nt@umassd.edu>, acsddc@smucs1.umassd.edu writes:\n|> I was wondering if anyone had any kind of Fenway Park gif.\n|> I would appreciate it if someone could send me one.\n|> Thanks in advance.\n|> \n|> -Dan\n\nMe too! And any Yankee Stadium gifs as well, please.\n\nThanx in advance,\n\nMike Feszczyszyn\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4105, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Govs. Florio, Wilder Hit Airwaves In Support of Brady Bill\nOrganization: Stratus Computer, Inc.\nLines: 14\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1993Apr1.015043.5662@r-node.hub.org>, ndallen@r-node.hub.org (Nigel Allen) writes:\n> Here is a press release from Handgun Control Inc.\n\n>    \"It is ironic that Jim and I are observing this March 30 in a\n> country that finds America's level of gun violence not only\n> unacceptable, but unbelievable,\" said Mrs. Brady, chair of Handgun\n> Control Inc.\n\nSo where was she?  And would she consider staying there?\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4106, "properties": {"category": "sci.electronics", "text": "From: cfb@fc.hp.com (Charlie Brett)\nSubject: Re: Los Angeles Freeway traffic reports\nNntp-Posting-Host: hpfcmgw.fc.hp.com\nOrganization: Hewlett-Packard Fort Collins Site\nX-Newsreader: TIN [version 1.1 PL8.5]\nLines: 21\n\n: While driving through the middle of nowhere, I picked up KNBR, AM 1070,\n: a clear-channel station based in Los Angeles. They had an ad \n: claiming that they were able to get traffic flow information from \n: all of the thousands of traffic sensors that CalTrans has placed\n: under the pavement. Does CalTrans sell this info? Does KNBR have\n: an exclusive? What's the deal?\n\n: ==Doug \"Former L.A. commuter\" Claar\n\nYou were right the second time, it is KNX. Believe it or not, I also\nlisten to KNX in the evenings here in Colorado! It's kind of fun driving\nthrough the country listening to traffic jams on the 405. Back to your\noriginal question. Yes, there are sensors just past every on-ramp and\noff-ramp on the freeways. They're the same sensors used at most stoplights\nnow (coils in the pavement). You might want to give CalTrans a call or\neven ask Bill Keene (KNX's traffic reporter). I doubt if just anyone can\nget the information, but it would be worth asking just in case you can\nget it.\n\n      Charlie Brett (former LA commuter)  Ft. Collins, CO\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4107, "properties": {"category": "comp.windows.x", "text": "From: barnett@grymoire.crd.ge.com (Bruce Barnett)\nSubject: Re: Title for XTerm\nIn-Reply-To: lanzo@tekelec.com's message of Thu, 22 Apr 1993 17:35:46 GMT\nNntp-Posting-Host: grymoire.crd.ge.com\nReply-To: barnett@crdgw1.ge.com\nOrganization: GE Corp. R & D, Schenectady, NY\n\t<C5oL74.3B1@aeon.in-berlin.de> <1993Apr22.173546.5198@gecko.uucp>\n\nIn article <1993Apr22.173546.5198@gecko.uucp> lanzo@tekelec.com (Mark Lanzo) writes:\n\n       [Hint for Sun OS users:  use /usr/5bin/echo instead of\n       /bin/echo or Csh's built-in echo.  Otherwise you'll have\n       to embed literal ESC and BEL characters in the string\n       instead of using convenient octal sequences.]\n\nBad idea. using /usr/5bin/echo is slower than the built-in echo.\nThis is what I do. It does execute `hostname` once per shell window,\nand does read in one extra file. But manipluating the titles does not\nrequire executing extra programs.\n\nOh yes, it does execute some programs once per each system. \nBut it stores them in a file for the next time...\n\n\nif ( ! $?HOSTNAME ) then\n\tsetenv  HOSTNAME `hostname`\nendif\n\n# figure how how to generate escape, bell, \n# and echo commands without a a line terminator\n# I may have done this before. If so, the variable E is set\n\n# have I executed this script before on this system?\nif ( $?E ) then\n#\techo \"already set the echo variables\">/dev/tty\nelse if ( -f ~/.echo.${HOSTNAME} ) then\n\tsource ~/.echo.${HOSTNAME}\nelse if ( `echo -n |wc -l`  == 0 ) then\n#\techo \"built in echo is bsd\" >/dev/tty\n\t# then berkeley style echo\n\techo 'set ech = \"echo -n\"' >~/.echo.${HOSTNAME}\n\techo \"set E = `echo a | tr a '\\033'`\" >> ~/.echo.${HOSTNAME}\n\techo \"set B = `echo a | tr a '\\007'`\" >> ~/.echo.${HOSTNAME}\n\techo 'set N = \"\"' >> ~/.echo.${HOSTNAME}\n\tsource ~/.echo.${HOSTNAME}\nelse \n#\techo \"built in echo is sysV\" >/dev/tty\n\techo 'set ech = \"echo\"' >~/.echo.${HOSTNAME}\n\techo 'set E = \"\\033\"' >> ~/.echo.${HOSTNAME}\n\techo 'set B = \"\\007\"' >> ~/.echo.${HOSTNAME}\n\techo 'set N = \"\\c\"' >> ~/.echo.${HOSTNAME}\n\tsource ~/.echo.${HOSTNAME}\nendif\t\n\n\n# Are we using shelltool, cmdtool or xterm?\n# duplicate these aliases here to avoid problems\nif ( $term =~ sun* ) then\n\t# Sun Aliases\n\talias Header '${ech}  \"${E}]l\\!:1${E}\\${N}\"'\n\talias IHeader '${ech}  \"${E}]L\\!:1${E}\\${N}\"'\nelse if ( $term =~ xterm ) then\n\talias Header '${ech}  \"${E}]2;\\!:1${B}${N}\"'\n\talias IHeader '${ech}  \"${E}]1;\\!:1${B}${N}\"'\nendif\n\n\n\n--\nBruce Barnett <barnett@crd.ge.com> uunet!crdgw1!barnett\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4108, "properties": {"category": "rec.autos", "text": "From: rmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen)\nSubject: Re: I'm getting a car, I need opinions.\nOrganization: University of Virginia\nLines: 2\n\nGood luck.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4109, "properties": {"category": "talk.politics.guns", "text": "From: strait@cheetah.csl.uiuc.edu (Jeffrey C. Strait)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: The University of Illinois\nLines: 17\nDistribution: world\nNNTP-Posting-Host: cheetah.csl.uiuc.edu\n\nIn article <1r24bv$dif@apple.com>, earlw@apple.com (Earl Wallace) writes:\n\n> >The Koreshians rubbed themselves out.  Neither Mormons nor Jews have a\n> >propensity for dousing themselves with kerosene, so I'm not particularly\n> >concerned.  (Or shall we blame Jim Jones on the government also?)\n> >...\n\nIt is silly to make this statement.  Fifteen minutes after the fire\nstarted, the \"official word\" out of FBI  headquaters in DC was\nthat the DV's committed suicide.  It would seem logical that the\nlantern story has more credibility.  You can't even to pretend to\nknow for sure what happened... although Clinton is doing just that.\n\n-- \n| Jeff Strait                       | strait@uicsl.csl.uiuc.edu        |\n| University of Illinois            | PHONE: (217) 333-6444            |\n| Impeach Klinton                                                      |\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4110, "properties": {"category": "rec.sport.hockey", "text": "From: wsa@poe.acc.Virginia.EDU (Warren S. Arbogast)\nSubject: Re: Spelling Error on the Stanley Cup??\nOrganization: University of Virginia\nLines: 24\n\nr_turgeo@oz.plymouth.edu  writes:\n>   I was reading a newspaper tidbit that mentioned that there is a\n> grammatical error on the Stanley Cup. This newspaper, \"The \n> Union Leader\"  (Manchester, New Hampshire), stated that one of the\n> years that the New York Islanders won the cup, the printing on the\n> actual cup stated \"New York Ilanders\". Can anyone verify this?? I\n> forgot the exact year that this supposedly occured. Any die-hard\n> Islander fans know about this?? The reason why I am asking is\n> because the paper is not very reliable, we call it \"The Union\n> Mis-leader\".\n> \n> \n> Randy\n> Plymouth State College\n> r_turgeo@oz.plymouth.edu\n\nSpeaking of spelling errors on the Cup, I wonder if the \"h\" in\nPittsburgh made it to the Cup.  You know how funny people can\nbe about spelling Pittsburgh.\n--\nWarren Arbogast\nDarden Visual Communications          \"with 10 miles behind them           \nUniversity of Virginia                            and 10,000 more to go\"\n  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4111, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ujfrye@mcs.drexel.edu (Jason W. Frye)\nSubject: Re: PC Syquest on a Mac??\nOrganization: Drexel University\nLines: 19\n\nIn article <1qsk6u$d8l@usenet.INS.CWRU.Edu> rcs8@po.CWRU.Edu (Robert C. Sprecher) writes:\n>\n>Is it possible, ie via creative cable splicing or whatever, to\n>hook a Syquest 44MB removable drive to a Mac?\n>\n>Is there any difference with the guts of the drive or is it\n>just cable differences?\n>\n>Thanks.\n>\n>Rob\n>-- \n>Rob Sprecher\n>rcs8@po.cwru.edu\n\nMany Companies package Syquest drives for the mac already.... So unless you\nare using one for the IBM world, Id buy a Mac ready Config.\n\nJ.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4112, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Lincoln & slavery (Re: Top Ten Tricks You Can Play on the American Voter)\nArticle-I.D.: optilink.15238\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 16\n\nIn article <1993Apr2.154232.29527@Princeton.EDU>, glhewitt@phoenix.Princeton.EDU (Gary Livingston Hewitt) writes:\n> In article <1993Apr2.055109.5833@rigel.econ.uga.edu> depken@rigel.econ.uga.edu (Craig Depken) writes:\n> [to which is concluded...]\n> >The South only wanted FREE TRADE!!! \n> \n> No, they wanted slavery.  If free trade was in their economic interests\n> under that regime (which it was), then free trade they wanted too.  But\n\n> Gary L Hewitt                          glhewitt@phoenix.princeton.edu\n\nOf course, free trade and slavery don't make much sense together in\na phrase anyway.  Perhaps Mr. Depken meant, \"low import tariffs,\" but\nthat is quite a bit less than \"free trade.\"\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4113, "properties": {"category": "soc.religion.christian", "text": "From: marka@hcx1.ssd.csd.harris.com (Mark Ashley)\nSubject: Re: hearing sinners\nOrganization: Ft. Lauderdale, FL\nLines: 24\n\nIn article <Apr.21.03.24.19.1993.1271@geneva.rutgers.edu> JEK@cu.nih.gov writes:\n>On the question, \"Does God hear the prayers of sinners?\" we need to\n>distinguish.\n>If we say that He never hears the prayers of any who have sinned, we\n>make pointless all prayers by anyone born less than 19 centuries\n>ago.\n>But if we consider the prayers of the impenitent sinner, of someone\n>who says, \"Lord, I want you to do this for me, but don't expect me\n>to change my way of life,\" that is a different matter. \n\nI have no doubt that God hears everybody's prayers.\nHowever, He does things His way, i.e. things will happen\nonly if it is His will.\n\nNow if the question really is \"Does God grant everybody's wishes ?\"\nthen you'll get a brutal shot of reality similar to when you didn't\nget that toy you wanted for Christmas. You just cannot expect\nto get everything you want in this world.\n\n-- \n-------------------------------------------------------------------------\nMark Ashley                        |DISCLAIMER: My opinions. Not Harris'\nmarka@gcx1.ssd.csd.harris.com      |\nThe Lost Los Angelino              |\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4114, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 51\n\nIn article <lt8keoINN31v@appserv.Eng.Sun.COM> fiddler@concertina.Eng.Sun.COM (steve hix) writes:\n>In article <C5sIAJ.Ks7@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>>\n>>Why didn't they release the children weeks ago?\n>\n>It would have been inconsistent behavior for them to have done so.\n>\n>Some people believe that there is more to life than the physical requirements.\n>\n>These folks believed that the generally-held standards of the surrounding\n>community (heck, most of the world) were morally wrong, and letting the\n>children be abandoned to this (godless/unbelieving) culture would be condeming\n>them to eternal loss and separation from God.\n>\n>By their standards, letting the children go would be abandoning them to a fate\n>literally worse than death.\n>\n>The FBI (and BATF and media) people working on the issue, I suspect,\n>just couldn't get their heads into a similar-enough (to say nothing of\n>identical) mode of thinking to realize what they were doing.\n>\n>Physically, there was no reason why the BD's shouldn't have given up and come\n>out a long time ago.\n>\n>From the point of view of the BD's, they were up against the wall and had nowhere\n>to go at all.\n>\n>They apparently really did love their kids too much to abandon them to a godless\n>bunch of outsiders...although the end result was horribly twisted.\n>\n>I didn't say the BD's were right, I just said that that's the way they perceived\n>it.\n>\n>Koresh was a nutcase, and a bunch of other people paid for that.\n>\n>And the FBI and BATF miscalculated and misunderstood what was going on from the\n>word go.\n\nVery likely possible.  Reminds me of the movie \"The Rapture\".\n\n>\n>-- \n>-------------------------------------------------------\n>| Some things are too important not to give away      |\n>| to everybody else and have none left for yourself.  |\n>|------------------------ Dieter the car salesman-----|\n\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4115, "properties": {"category": "talk.politics.misc", "text": "From: mcgoy@unicorn.acs.ttu.edu (David McGaughey)\nSubject: Re: high speed rail is bad\nOrganization: Texas Tech University\nDistribution: tx\nLines: 32\n\nbmich@cs.utexas.edu (Brian Keith Michalk) writes:\n> \tA few weeks ago I found out about some of the politics that\n> is going on with the Texas bullet train, and was appalled at some\n> of the apparent underhanded tactics to push this thing through\n> without any public say whatsoever.  So, I wrote up a short \n> editorial thing and posted it, hoping to get some discussion.\n> \n> I suppose editorials don't do it here.  So now I am asking for \n> the general opinion of the net about the proposed high speed \n> train.\n> \n> What do you think?  I personally think it is a stupid idea, and\n> that there are a few people somewhere who are going to get very\n> rich from this deal.\n> \n\nMy opinion is this:  In a society whose economy is primarily based on \ncapitalism, the role of government should be to provide those goods and \nservices that need providing for the general public's good.  BUT government \nshould supply those necessary goods and services only when it is impossible \nfor a private enterprise (or individual) to make money from providing them.\nI agree with some of the other posts that this train probably can not make \nmoney and will rely heavily on State tax dollars.  \n\nThe question, I think, then becomes:  Do we, the general public, need the train?\n\nI certainly do not, nor will I ever, need this train in Lubbock, Texas.  With\nthe inexpensive air travel provided between Dallas and Houston, I don't think\npeople in Dallas or Houston need it either.\n\nDavid McGaughey\nTexas Tech University\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4116, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Re: CLINTON JOINS LIST OF GENOCIDAL SOCIALIST LEADERS\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 13\n\nIn article <1r00ug$d60@btr.btr.com> michaelh@public.btr.com (Michael Hahn  michaelh@btr.com) writes:\n>Pol Pot\t\t\t\t100,000s Killed?\n\nI've read estimates that Pol Pot killed somewhere in the neighborhood\nof 2 million.\n\nDrew \n--\nbetz@gozer.idbsu.edu\n*** brought into your terminal from the free state of idaho ***\n*** when you outlaw rights, only outlaws will have rights   ***\n*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4117, "properties": {"category": "rec.autos", "text": "Organization: Ryerson Polytechnical Institute\nDistribution: na\nFrom: <SYST8145@RyeVm.Ryerson.Ca>\nSubject: Van step... Van Accessory Help\nLines: 13\n\n\nHello Netters,\n\nI would like to find out information about a device that is used on vans and\ntrucks. This device is a step that hooks onto the tire and folds up for\nstorage. I've seen this device on TNN's Shady Tree Mechanic. I would like to\nknow if it is a good product and I would also like the price and address\nof where I can purchase this product.\n\nThanks,\n\nGeorge Chan\nEmail: syst8145@ryevm.ryerson.ca\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4118, "properties": {"category": "rec.sport.baseball", "text": "From: vergolin@euler.lbs.msu.edu (David Vergolini)\nSubject: Detroit Tigers\nOrganization: Michigan State University\nLines: 7\nNNTP-Posting-Host: euler.lbs.msu.edu\nSummary: Who can stop the roar of the Tiger's bats.\nKeywords: Detroit is the top offensive team in the league\n\n  The roar at Michigan and Trumbull should be loader than ever this year.  With\nMike Illitch at the head and Ernie Harwell back at the booth, the tiger bats\nwill bang this summer.  Already they have scored 20 runs in two games and with\nFielder, Tettleton, and Deer I think they can win the division.  No pitching!\nBull!  Gully, Moore, Wells, and Krueger make up a decent staff that will keep\nthe team into many games.  Then there is Henneman to close it out.  Watch out\nBoston, Toronto, and Baltimore - the Motor City Kittys are back.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4119, "properties": {"category": "comp.graphics", "text": "From: stusoft@hardy.u.washington.edu (Stuart Denman)\nSubject: Re: 3D2 files - what are they?\nArticle-I.D.: shelley.1rft1nINNc7s\nOrganization: University of Washington\nLines: 16\nNNTP-Posting-Host: hardy.u.washington.edu\n\ndoug@hparc0.aus.hp.com (Doug Parsons) writes:\n\n>I was chaining around in the anonymous ftp world looking for 3D Studio\n>meshes and other interesting graphical stuff for the program, and found\n>a few files with the extension 3D2.  My 3DS v2.01 doesn't know this type\n>of file, so what are they?\n\nThey are 3D object files for CAD 3D 2.0, a program written by Tom Hudson\nfor the Atari ST computers.  Don't know much more about them except that\nthey are stored with the points first, then the surfaces are next, and are\nmade by listing 3 point numbers that make up the triangle surface. Then\nthere's a header that describes coloring, lighting, etc.  Don't know much\nmore than this, hope this helps.\n\nStuart Denman\nstusoft@u.washington.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4120, "properties": {"category": "rec.sport.baseball", "text": "From: lloyd@uclink.berkeley.edu (Lloyd Nebres)\nSubject: Re: MARLINS WIN! MARLINS WIN!\nArticle-I.D.: 128.lloyd-060493114752\nDistribution: world\nOrganization: UC Berkeley\nLines: 14\nNNTP-Posting-Host: tol3mac15.soe.berkeley.edu\n\n>>(Look at all that Teal!!!!  BLEAH!!!!!!!!!)\n\nIndeed, if the color teal on a team's uniforms is any indication of the\nfuture, the Marlins are in dire trouble! Refer to the San Jose Sharks for\nproof... But I have hope for the Marlins. I was a sometime member of the\nRene Lachemann fan club at the Oakland Coliseum, and have a deep respect\nfor the guy. He's a gem. And, of course, Walt Weiss gives that franchise\nclass. But yeah... whoever designed those uniforms was guilty of a paucity\nof style and imagination. Ugghhh!\n\nLloyd R. Nebres, UC Berkeley\nInternet: lloyd@uclink.berkeley.edu\nVox: (510) 848-9760 or 643-9390\n\"Never underestimate the bandwidth of a 747 carrying a ton of CD-ROMs...\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4121, "properties": {"category": "soc.religion.christian", "text": "From: mike@nx39.mik.uky.edu (Mike Mattone)\nSubject: Re: sex education\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 17\n\nRegarding the moral question Jen (jenk@microsoft.com) asked: \"Is it\nokay to create a child if you aren't able to be a good parent?\", I\nam reminded of a \"speech\" by one of the characters (I can't remember\nwhich) in the movie \"Parenthood\". [I am WAY to liberal with my\nquotation marks tonight...]\n\nIn this so-called (by me) speech, the character is expressing what \na lousy father he had and he made an interesting point.  He said\nsomething to the effect of:\n\"You have to have a license to drive a car.  You have to have a\nlicense to own a dog.  You even have to have a license to fish.\nBut, they'll anyone have a kid.\" [Keep in mind that I am, in NO\nway, trying to pass this off as a quote.  It is probably GROSSLY\ndistorted but I think you get the point...]\n\n-Mike Mattone\n \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.200+0000", "event": "documents", "entityId": 4122, "properties": {"category": "misc.forsale", "text": "From: Michelle Zumbo <mz10+@andrew.cmu.edu>\nSubject: DARKROOM SUPPLIES/ENLARGER\nOrganization: Athletics and Physical Education, Carnegie Mellon, Pittsburgh, PA\nLines: 28\nNNTP-Posting-Host: po3.andrew.cmu.edu\n\nFOR SALE:\n\n* Besler 23C II Enlarger \n     (including filters & negative carriers)\n\n* Darkroom supplies \n     (containers, trays, thermometer, beakers, \n     paper focuser, etc...I also have paper & \n     chemicals, but I think these 2 are past \n     expiration date)\n\n\nEverything is in great working condition.  I bought it \nabout a year ago and it has served its purpose well.  \nIt hasn't been used it in a few months because I don't \nhave the time or money to keep up with it and its just \nsitting in my bathroom taking up space I'd like to use.\nSo, I'd like to sell it to someone who would use it \nrather than it collect dust in my bathroom.\n\nIf you are interested in the whole package, I will sell \neverything (including shipping) for $300.  If you have \nsomething else in mind, I'm open to suggestions.\n\nPlease reply to this account.\n\nThank you...\nMichelle\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4123, "properties": {"category": "talk.religion.misc", "text": "From: joshua@cpac.washington.edu (Joshua Geller)\nSubject: Re: Merlin, Mithras and Magick\nOrganization: Institute for the Study of Ancient Science\nLines: 30\nDistribution: world\n\t<JOSHUA.93Apr19183833@bailey.cpac.washington.edu>\n\t<Pegasus-200493113800@fp1-dialin-1.uoregon.edu>\nNNTP-Posting-Host: bailey.cpac.washington.edu\nIn-reply-to: Pegasus@aaa.uoregon.edu's message of 20 Apr 1993 18:43:14 GMT\n\n\nIn article <Pegasus-200493113800@fp1-dialin-1.uoregon.edu> \nPegasus@aaa.uoregon.edu (Pegasus) writes:\n\n>   In article <JOSHUA.93Apr19183833@bailey.cpac.washington.edu>,\n>   joshua@cpac.washington.edu (Joshua Geller) wrote:\n\n>   > In article <Pegasus-150493132018@fp1-dialin-4.uoregon.edu> \n>   > Pegasus@aaa.uoregon.edu (LaurieEWBrandt) writes:\n\n>   LEWB>> Lets add to those percentages 13-15% for the Orphaic docterians\n>   brought LEWB>>to the group by Paul/Saul who was a high ranking initiate. On\n>   the LEWB>>development of Orphaic Mysteries, see Jane Harrisons .Prolegomena\n>   to the LEWB>>study of Greek religion. Cambridge U Press 1922. and you can\n>   easly draw LEWB>>your own conclusions.\n\n>   josh> perhaps you can quote just a bit of her argument?\n\n>   Love to,but I must do it a bit later My copy of Harrison in packed, but the\n>   last chapter as best as I can rember deals with Orphic mysteries and their\n>   views of women though she does not come out and say it it is strongly\n>   implyed that the Christian view was drawn heavly from the Orphic and other\n>   Major cults of the time.\n\nI would really appreciate if when someone brought something like\nthis up they didn't back out when someone asked for details.\n\nhave a day,\njosh\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4124, "properties": {"category": "rec.sport.baseball", "text": "From: kahn@troi.cc.rochester.edu (James Kahn)\nSubject: Re: Tigers-A's\nOrganization: University of Rochester (Rochester, NY)\nLines: 11\nNntp-Posting-Host: troi.cc.rochester.edu\n\nIn article <1993Apr14.185317.12231@sbcs.sunysb.edu> wynblatt@sbgrad5.cs.sunysb.edu (Michael Wynblatt) writes:\n>\n>Weird thing:  Leading 20-4 going into the top of the ninth, Sparky\n>\t      used his ace closer, Henneman.  The tigers have 8 relievers\n>\t      and at least 6 were rested/available.  Does Sparky trust\n>\t      them that little ?\n\nI think he just wanted to get Henneman some work, because the \nTigers had days off both the day before and the day after.\n\nJim\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4125, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Re: Israeli Terrorism\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 8\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n   As someone who reads Israeli newpapaers every day, I can state\nwith absolute certainty, that anybody who relies on western media\nto get a picture of what is happening in Israel is not getting an\naccurate picture.  There is tremendous bias in those stories that\ndo get reported.  And the stories that NEVER get mentioned create\na completely false picture of the mideast.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4126, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: hodgen@ozzy.uni-koblenz.de (Wayne Hodgen)\nSubject: Re: Weitek P9000 Future Plans\nOrganization: Uni Koblenz, Germany.\nLines: 48\nNNTP-Posting-Host: ozzy.uni-koblenz.de\n\nIn article <1993Apr13.000531.25096@jetsun.weitek.COM> robert@weitek.COM (Robert Plamondon) writes:\n>In article <1q0n5pINN60m@uniko.uni-koblenz.de> hodgen@ozzy.uni-koblenz.de (Wayne Hodgen) writes:\n>\n>>To sum up, when an accelerated board with 4MB VRAM (True Colour 1280x1024)\n>>AND A FAST VGA SIDE is available under $500, I will buy one.\n>\n>Me too!\n>\n>What's funny is, when we really CAN buy such a product, it probably won't\n>seem as mouth-watering as it does today.  \"What? No holograms? Get outta\n>here!\"\n\nI can wait 'cos I've already got an accelerated card. It does 1280x1024 but\nonly 16 colour. You may mock me, but such cards will be here quickly enough.\n\n>One of the odd things about the computer industry is that, since you can\n>always wait and get something better, some people wait forever.  I know\n>people who have deferred updating their original IBM PC for a decade,\n>because every time they look at what's available, they see something better\n>coming down the road.  I know people who've dumped their PCs into the\n>garage, but haven't replaced them, because they're afraid it isn't \"the\n>right time to buy.\"  They just gave up using computers.\n\nI only wait when the difference between my current system and the new stuff\nis big enough to warrant changing. For instance, I'll be upgrading my 486 33\nto a 486DX-2 66 EISA, VLB board RSN. The performance difference (under Linux)\nis great enough to be worthwhile. At the same time I'll be buying a new\ngraphic card and new SCSI controller. I'll be buying an S3 card 'cos they're\nfast enough, I have X11 drivers for them and it'll have 2MB VRAM just like\na Weitek 9000 card. It will also be MUCH cheaper. When affordable 4MB cards\narrive, I'll buy one.\n\n>Personally, my system at home needs a new disk subsystem, a much\n>larger monitor, a super-fast graphics board by you-know-who, a new\n>CPU board -- I probably won't keep much more than the case and the\n>mouse.  Come to think of it, I don't like that mouse very much.  So\n>when will I buy?  When my dream products hit the market? NO WAY!  I'm\n>gonna buy as soon as I have the MONEY!\n\nOver the last year I've done much the same. But now I need a 19\" monitor, more\nmemory (20MB just ain't enough), a GB disk (1.2GB and no space left...). Oh\nwell, stay single, don't smoke and you may afford it this year ;-)\n\n-- \nWayne Hodgen  | hodgen@infko.uni-koblenz.de | Opinions (c) Me 1991   | Intel SX\nUni Koblenz,  | (..!unido!infko!hodgen)     | Keeper of the Scrolls, |  Just\nRheinau 3-4,  | Voice: +49 261 9119-645     | Defender of the Net,   |   say\n5400 Koblenz. | Fax:   +49 261 9119-499     | His name is \"root\".    |    NO!!!\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4127, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Ozal Died!\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 9\n\nIt was announced on NPR 4/17/93 10:00 am EDT, that Turkish President Ozal died \nof a heart attack in Ankara.\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4128, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Re: Conference on Manned Lunar Exploration. May 7 Crystal City\nDistribution: na\nOrganization: University of Illinois at Urbana\nLines: 33\n\nhiggins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey) writes:\n\n>(Josh Hopkins) writes:\n>> I remeber reading the comment that General Dynamics was tied into this, in \n>> connection with their proposal for an early manned landing. \n\n>The General Chairman is Paul Bialla, who is some official of General\n>Dynamics.\n\n>The emphasis seems to be on a scaled-down, fast plan to put *people*\n>on the Moon in an impoverished spaceflight-funding climate. You'd\n>think it would be a golden opportunity to do lots of precusor work for\n>modest money using an agressive series of robot spacecraft, but\n>there's not a hint of this in the brochure.\n\nIt may be that they just didn't mention it, or that they actually haven't \nthought about it.  I got the vague impression from their mission proposal\nthat they weren't taking a very holistic aproach to the whole thing.  They\nseemed to want to land people on the Moon by the end of the decade without \nexplaining why, or what they would do once they got there.  The only application\nI remember from the Av Week article was placing a telescope on the Moon.  That's\ngreat, but they don't explain why it can't be done robotically. \n\n>> Hrumph.  They didn't send _me_ anything :(\n\n>You're not hanging out with the Right People, apparently.\n\nBut I'm a _member_.  Besides Bill, I hang out with you :) \n\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n\t\t    \"Find a way or make one.\"\n\t             -attributed to Hannibal\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4129, "properties": {"category": "rec.autos", "text": "From: lerxst@wam.umd.edu (where's my thing)\nSubject: WHAT car is this!?\nNntp-Posting-Host: rac3.wam.umd.edu\nOrganization: University of Maryland, College Park\nLines: 15\n\n I was wondering if anyone out there could enlighten me on this car I saw\nthe other day. It was a 2-door sports car, looked to be from the late 60s/\nearly 70s. It was called a Bricklin. The doors were really small. In addition,\nthe front bumper was separate from the rest of the body. This is \nall I know. If anyone can tellme a model name, engine specs, years\nof production, where this car is made, history, or whatever info you\nhave on this funky looking car, please e-mail.\n\nThanks,\n- IL\n   ---- brought to you by your neighborhood Lerxst ----\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4130, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mscha@ctp.com (Michael Schaap)\nSubject: Re: Windows Speaker Sound Driver\nOrganization: CTP Inc.\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 16\n\nTony S Annese (claebaur@shell.portal.com) wrote:\n: In article <1993Apr19.235430.6097@mnemosyne.cs.du.edu> alee@mnemosyne.cs.du.edu (Alec Lee) writes:\n: >Is there an ftp site where I can get the MS speaker sound driver?  There's\n: >a \"sound.exe\" file that claims to be the driver but I'm suspicious since\n: >it's not a .drv file.  \n: \n: Thats the file...\nIt's a self-extracting archive. (Run it and it extracts a .drv file.)\n\n\tMichael\n\n-- \n  \\ / Groeten uit |o|        //////                Michael Schaap    /\\/\\\n   o   Nederland  \\_/      |  T P  |\\               mscha@ctp.com   / /_ \\ CTP\n  /|\\   ()----^    |       |Sherrif|/  __________________________   \\  / / Inc.\n  _|_   \\_____/   \\|/    \\_|_Dept._|_/ Damn good coffee! And hot!    \\/\\/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4131, "properties": {"category": "rec.autos", "text": "From: dcd@se.houston.geoquest.slb.com (Dan Day)\nSubject: Re: Car buying story, was: Christ, another dealer service scam...\nNntp-Posting-Host: mudd.se.houston.geoquest.slb.com\nOrganization: GeoQuest System, Inc. Houston\nDistribution: usa\nLines: 57\n\nIn article <1993Apr15.161531.11737@newsgate.sps.mot.com> rapw20@email.sps.mot.com writes:\n>\n>their problem, I wasn't giving them any more money. The finance guy then  \n>brought in the manager on duty who proceeded to give me a hard time. I  \n>reminded him that I was the customer and I didn't think I should be  \n>treated like that and that if he didn't back off he could forget the whole  \n>deal. He made some smart remark so I told him where he could stick it,  \n>snatched back my check and left. Needless to say, they were not pleased by  \n>the turn of events.\n\nThat's nothing.  When a friend of mine went shopping for a small\nsedan a few years ago, she brought me along as a token male so\nthe salespeople wouldn't give her the \"bimbo\" treatment.\nHer first choice was a Mazda 323, and second choice was a Nissan\nSentra.  We went to a Mazda dealership and described what \"we\"\nwanted.  We started negotiating on the price, and the salesdroid\nkept playing the \"let me run this price by the sales manager\".  After\nplaying the \"good salesman, bad salesman\" game, we finally told him\nthat if he didn't have the authority to negotiate a price, perhaps\nwe should be speaking directly to someone who did.  He brought in\nthe sales manager who proceeded to dick us around with every trick\nin the book.  (Read Remar Sutton's \"Don't Get Taken Every Time\" for a\nlist.)  Finally, after playing a few more rounds of \"you'll have to\nwork with us on this price\", also known as \"each time you come up a\nthousand dollars we'll come down ten\", the salesmanager gave a signal to\nhis two sales cronies, stood up, and said \"well, we can't come down any\nmore so I guess we can't help you\" and they trouped out of the room,\nleaving us sitting in the salesman's office all by ourselves.  Hmm.\nI'd read that sleazy salesmen sometimes bug their own offices so they\ncan leave and listen in on couples discussing the sales offer, and\nI mentioned this aloud to my friend while we were sitting there wondering\nwhy they would leave us in the office instead of showing us to the\ndoor.  For lack of anything better to do, I picked up the phone on\nthe desk and called another Mazda dealership, asked for a salesman,\nand began discussing what kind of price they would consider.  A few\nsentences into the conversation, Mr. Salesmanager broke into the line\n(!) and began telling me how rude he thought it was that I would call\nanother dealership from \"his\" phone!  I said that since he'd announced\nthat our business was over, he shouldn't care, and every time I tried\nto talk to the other sales guy the sales manager would drown out our\nvoices with his own.  (How did he know that I was using the phone,\nanyway?)  Finally, I hung up and we headed out of the showroom.\nSales manager and cronies come out of a little unmarked room and he\nbegins to berate us again.  We say that we won't bother him anymore,\nwe're going next door to the Nissan dealership.\n\nThen comes the part I wish I could have videotaped.  As we go out\nthe front door, the sales manager SHOUTS across the entire showroom,\ncustomers and all, \"Go ahead!  You DESERVE to buy a Nissan!\"\nSo my friend bought a Sentra.\n\nJust so the guilty won't go unpunished, I'll mention that the\nsales manager's name was Gary Tusone.  From his manner, his\nrefusal to come down to a reasonable price, and his anger at the\nend, my guess is that he had bet our original salesman (who was\na young novice) that he'd be able to get at least X dollars out of\nus, and he was steamed that we wouldn't fall for his slimy tricks.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4132, "properties": {"category": "talk.politics.mideast", "text": "From: ab4z@Virginia.EDU (\"Andi Beyer\")\nSubject: Re: Israeli Terrorism\nOrganization: University of Virginia\nLines: 22\n\ntclock@orion.oac.uci.edu  writes:\n> Since one is also unlikely to get \"the truth\" from either Arab or \n> Palestinian news outlets, where do we go to \"understand\", to learn? \n> Is one form of propoganda more reliable than another? The only way \n> to determine that is to try and get beyond the writer's \"political\n> agenda\", whether it is \"on\" or \"against\" our *side*.\n> \n> Tim \n\tFirst let me correct myself in that it was Goerbels and\nnot Goering (Airforce) who ran the Nazi propaganda machine. I\nagree that Arab news sources are also inherently biased. But I\nbelieve the statement I was reacting to was that since the\namerican accounts of events are not fully like the Israeli\naccounts, the Americans are biased. I just thought that the\nIsraelis had more motivation for bias.\n\tThe UN has tried many times to condemn Israel for its\ngross violation of human rights. However the US has vetoed most\nsuch attempts. It is interesting to note that the U.S. is often\nthe only country opposing such condemnation (well the U.S. and\nIsrael). It is also interesting to note that that means\nother western countries realize these human rights violations.\nSo maybe there are human rights violations going on after all. \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4133, "properties": {"category": "rec.motorcycles", "text": "From: wcd82671@uxa.cso.uiuc.edu (daniel warren c)\nSubject: Splitfire Plugs...  Kinda Offical...\nSummary: Supposed \"Higher power output\".\nDistribution: rec.motorcycles\nKeywords: Using Splitfire plugs for performance.\nOrganization: University of Illinois at Urbana\nLines: 54\n\n\nYo, Whaz up!!!\n\nEarlier, I was reading on the net about using Splitfire plugs.  One\nguy was thinking about it and almost everybody shot him to hell.  Well,\nI saw one think that someone said about \"Show me a team that used Split-\nfires....\"  Well, here's some additional insight and some theories\nabout splitfire plugs and how they boost us as oppossed to cages.\n\nSplitfires were originally made to burn fuel more efficiently and\nincreased power for the 4x4 cages.  Well, for these guys, splitfires\nincreased performance by increasing TORQUE.  They weren't focusing\non horsepower numbers.\n\nNow how does this related to us high performance pilots?  Well, that\ndepends.  Do you pilot a high performance 2- or 4-cylinder machine?\nIn the case of 4-cylinders, splitfires would increase overall torque,\nbut 4's make more top end horsepower with its torque packed down low.\nSo for 4's, splitfires would not significantly increase power.\n\nBut what about twins?...  Many of you 4 guys laugh at some of us twins,\nbut many times we carry less weight which sometimes can make up for\nthe hp loss (see Doug Polen vs. Scott Russell, Daytona 1992).  However,\ntwins make more torque thoughout their powerbands.   So how does this\ntranslate?  Increased torque should \"theoretically\" help twins make\nmore power.  Splitfire claims that there should be not extra mods\nor anything made, just stick 'em in.\n\nNow I don't know about all of this (and I'm trying to catch up with\nsomebody about it now), but Splitfires should help twins more than\n4's.        \n\nAs far as racing teams....  Ducati team \"Fast by Ferraci\" used\nsplitfires in the 1989 season (this is when they had Jamie James\nrunning for em), but I don't know why they stopped since then.\nAlso, somebody check to see if they had them in 88.....\n\nPeace.\n\nWarren\nwcd82671@uxa.cso.uiuc.edu\n\"Have Suzuki, will travel...\"\n\nAt a local \"fix-er-up-er\" shop, the bike repairest looked at a\ndumped ZX-7.  Then he asked the guy...\n\n\"What happened...\"   \"I dumped the clutch...\"\n\"How fast...\"        \"Pretty fast...\"\n\"Insurance...\"       \"Nope.\"\n\nThe fixer smiled.....\n\n\"What do you know about bikes?\"   \"Not much.....\"\n \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4134, "properties": {"category": "soc.religion.christian", "text": "From: dxf12@po.cwru.edu (Douglas Fowler)\nSubject: Re: Christian Parenting\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 83\n\n\n     Sorry for posting this, but my e-mail keeps bouncing.  Maybe it will\nhelp others here, anyway, and therefore I pray others will read this.  It is\nactually a response from my Aunt, who has 5 kids, since I have none yet.\n\n>Hi I am a Sociology student and I am currently researching into\n>young offenders.  I am looking at the way various groups of\n>children are raised at home.  At the moment I am formlulating\n>information on discipline within the Christian home.\n>\n>Please, if you are a parent in this catagory can you email me\n>your response to the following questionaire.  All responses\n>will be treated confidentially and will only be used to prepare\n>stats.\n     I'm posting this for a good Christian relative who does not have e-mail\naccess.  Since this aunt and uncle have 5 kids I felt they would be more\nrelevant than I, who have none (yet).\n\n>1.  Ages & sexes of children\n     13-year-old (13YO) twins, 10YO boy, 6.5YO boy, 2YO girl\n\n>2.  Do you spank your kids?\n     I don't call it spanking, but they do, so yes, very rarely.\n\n>3.  If so how often?\n     I don't call it spanking because it's more of a reaction to something\nvery dangerous, such as trying to stick their finger in a fan or running\ninto the road.  Maybe 3-4 times for each except for the 2YO girl, who has\nnot been spanked yet.\n     They call it that because it *does* hurt their feelings, and of course\nI give all the hugs and stuff to ensure they know they're still loved.\n\n>4.  Do you use an implement to spank with?\n     No, that would be too painful.  If it's too traumatic they never recall\nwhy they were punished.  Besides, it must be immediate, and taking the time\nto go get a toolmeans you're not doing it right away, and that lessens the\nimpact.  It's very emotional for a child as it is - which is evidenced by the\nfact that a little slap on the rear - which hurts for perhaps 5 seconds -\nis called a spanking.\n>\n>5. If you do not spank, what method of discipline do you use?\n     Lots of logical consequences - for instance, when 4YO Matthew dared\na good friend to jump out of his treehouse or he would push him out, I made\nsure they didn't play together for 5 days so he'd know that would make him\nlose friends very quickly.  He's never done anything like that since.\n     We also use time-out in their rooms - I use a timer so they don't keep\narguing with me over leaving, since it's hard to argue with a macine.\nI will go to the closed door and tell them timeout won't be over until they\ncalm down if they're too tantrumy.  I use the top of the stairs when they're\nreally young.\n\n>6.  Your age?\n     40\n\n>7.  Your location\n     Bath, Ohio.  It's right outside of Akron, in the northeast part of Ohio.\n\n>8.  While under the age of 16 did you ever commit a criminal\n>offence?\n     No, and none of my kids would dream of it.  I hope you can use this to\nteach all parents that physical punishment isn't always required - parents use\nthat as an excuse to hit too hard.\n\n>9.  How ere you disciplined as a kid\n     Lots of timeouts, same as I use.  Our family and my husband's have never\nused spankings.  In fact, my grandmother in law was one of 11 kids, and they\nwere almost never spanked.  This was around the turn of the century.  And,\nnone of us has ever been afoul of the law - man-made or God's law.\n     Jesus says, referring to a small child whom he is holding, that \"what\nye do to the least of these, ye do also to me.\"  The Bible also says in all\nthings to be kind, and merciful, and especially loving. (Colossians 3:12-15.)\nThere is no room for selfish anger, which I'll admit I've been tempted with\nat times.  When I've felt like spanking hard in anger, maybe the kid deserved\na little slap on the rear, but what I would have given would have been the\ndevil's work.  I could feel the temptation, and just angrily ordered the kid\nto his/her room and went to my room myself.  After praying and asking God's\nforgiveness, I was much calmer, and did not feel like spanking, but felt that\nwhat I had done was enough punishment.\n-- \nDoug Fowler: dxf12@po.CWRU.edu  : Me, age 4 & now: \"Mommys and Daddys & other\n    Ever wonder if, after Casey : relatives have to give lots of hugs & love\nmissed the 3rd strike in the poem: & support, 'cause Heaven is just a great\nhe ran to first and made it?     : big hug that lasts forever and ever!!!\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4135, "properties": {"category": "rec.sport.baseball", "text": "From: st902415@pip.cc.brandeis.edu (Adam Levin)\nSubject: Re: Best Sportwriters...\nReply-To: st902415@pip.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 23\n\nIn article <C5K7nK.7tv@news.cso.uiuc.edu>, rkoffler@ux4.cso.uiuc.edu (Bighelmet) writes:\n>csc2imd@cabell.vcu.edu (Ian M. Derby) writes:\n>\n>\n>>Since someone brought up sports radio, howabout sportswriting???\n>\n>I happen to be a big fan of Jayson Stark.  He is a baseball writer for the \n>Philadelphia Inquirer.  Every tuesday he writes a \"Week in Review\" column.  \n>He writes about unusual situations that occured during the week.  Unusual\n>stats.  He has a section called \"Kinerisms of the Week\" which are stupid\n>lines by Mets brodcaster Ralph Kiner.  Every year he has the LGTGAH contest.\n>That stands for \"Last guy to get a hit.\"  He also writes for Baseball \n>America.  That column is sort of a highlights of \"Week in Review.\"  If you \n>can, check his column out sometime.  He might make you laugh.\n\nMight? You'd have to have no sense of humor at all not to! My favorite\nstuff are the Zero Heros, players who haven't hit homers in a long time, \nthe LGTGAH (who is that named after, I can't remember), and the box score\nline of the week. Incidentally, I just found out that the column has been\nmoved to Sundays. I get my Dad to send it to me up here in Boston every \nweek. Great stuff!\n\nAdam \"A Phaithful Phillies Phan\" Levin\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4136, "properties": {"category": "talk.politics.mideast", "text": "From: AS.VXF@forsythe.stanford.edu (Vic Filler)\nSubject: Re: Deir Yassin\nOrganization: Stanford University\nLines: 56\nNNTP-Posting-Host: morrow.stanford.edu\n\nIn article <1993Apr19.204243.19392@cs.rit.edu>,\nbdm@cs.rit.edu (Brendan D McKay) writes:\n>\n>I have previously posted quotations by Irgun participants that\n>totally destroys Begin's whitewash.  I have no particular desire\n>to post it yet again.\n>\n>Brendan.\n>(normally bdm@cs.anu.edu.au)\n\n\nYou apparently think you are some sort of one-man judge and jury who\ncan declare \"total\" victory and then sit back and enjoy the\napplause.  But you've picked the wrong topic if you think a few\nrigged \"quotations\" can sustain the legend and lie of the Deir\nYassin \"massacre.\"\n\nYou have a lot to learn when it comes to historical methodology.\nAt the most basic level, you should know that there is a big\ndifference between weighing evidence fairly and merely finding\n\"quotations\" that support your preset opinions.\n\nIf you have studied the history of Israel at all you must know that\nmany of the sources of your \"quotations\" have an axe to grind, and\ntherefore you must be very careful about whom you \"quote.\"  For\nexample, Meir Pa'il, whom you cite, was indeed a general, a scholar,\nand a war hero.  But that doesn't mean everything that comes out of\nhis mouth is gold.  In fact (and here your lack of experience\nshows), Pa'il is such a fanatic, embittered leftist that much of his\nanti-Israel blathering (forget about anti-Irgun blathering) would be\nconsidered something like treason in non-Israel contexts.  But of\ncourse you don't consider this AT ALL when you find a juicy\n\"quotation\" that you can use to attack Israel.\n\nBenny Morris (of Hashomer Hatzair) represents himself as a \"scholar\"\nwhen he rehashes the old attacks on the Irgun.  Don't be fooled.\nIt's just the old Zionist ideological catfight, surfacing as an\nattack on the (then-) Likud government.  If you will look closely at\nthe section on Deir Yassin in his book on the War of Independence,\nyou will see his \"indictment\" to be pure hot air.  And this is the\nBEST HE CAN DO after decades of digging for any sort of damning\nevidence.  Unfortunately for him, because his book parades itself as\n\"scholarly,\" he is forced to put footnotes.  So you can clearly see\nthat his Deir Yassin account is based on nothing.\n\nThe Deir Yassin \"massacre\" never took place as the propagandists\ntell it, any more than the Sabra and Shatila \"massacres.\" Do you get\nthe feeling people like to blame the Jews for \"massacres,\" even if\nthey have to make them up?  It must sound spicy.  Even some Jews\nlike to do it, for reasons of their own.\n\nPlease, don't confuse any of you Deir Yassin \"massacre\" stuff\nwith facts or scholarship.  You should stick to Begin's version\nunless you find something serious to contradict it.\n\nVic\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4137, "properties": {"category": "rec.sport.baseball", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Phillies: A New Ballpark in Future?\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 18\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn a Philadelphia Inquirer a few days ago, it was reported that there were\ntwo (2) plans for a new Phillies stadium:  the already-mentioned 30th\nStreet Station proposal, and a location near Broad Street and Race Street,\nI think.  I can't remember the exact details, but the stadium would be\nbuild practically downtown.  There is a small lot that could be used,\naccording to the paper.  The 30th street plan has run into some trouble,\nbecause Amtrak does not want to reroute some of its lines in order to\naccomodate the stadium.  I don't have an opinion just yet, just letting\neveryone know that there are really two options being discussed right now.\nNeither of these plans will be put into effect very soon, however, because\nnobody wants to pay for it :-)\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4138, "properties": {"category": "misc.forsale", "text": "From: cs3sd3ae@maccs.mcmaster.ca (Holly       KS)\nSubject: Re: ROLAND JUNO-60 SYNTHESIZER*UNIDEN RADAR DETECTOR 4 SALE\nNntp-Posting-Host: maccs.dcss.mcmaster.ca\nOrganization: Department of Computer Science, McMaster University\nLines: 4\n\nActually they synth used in \"JUMP\" was an Oberheim. Watch the video.......\n\nKevin\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4139, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 24\n\nIn article <1qve4kINNpas@sal-sun121.usc.edu> schaefer@sal-sun121.usc.edu (Peter Schaefer) writes:\n\n>|> > Announce that a reward of $1 billion would go to the first corporation \n>|> > who successfully keeps at least 1 person alive on the moon for a year. \n\n>Oh gee, a billion dollars!  That'd be just about enough to cover the cost of the\n>feasability study!  Happy, Happy, JOY! JOY!\n\nDepends. If you assume the existance of a working SSTO like DC, on billion\n$$ would be enough to put about a quarter million pounds of stuff on the\nmoon. If some of that mass went to send equipment to make LOX for the\ntransfer vehicle, you could send a lot more. Either way, its a lot\nmore than needed.\n\nThis prize isn't big enough to warrent developing a SSTO, but it is\nenough to do it if the vehicle exists.\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------57 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4140, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: manu@oas.olivetti.com (Manu Das)\nSubject: overlapped window without a title bar\nOrganization: Olivetti ATC; Cupertino CA, USA\nLines: 31\nDistribution: usa\nNNTP-Posting-Host: todi.oas.olivetti.com\n\n\nHi, \n\nI have a simple question. Is it possible to create a OVERLAPPED THICKFRAME\nwindow without a title bar; ie\n\n\t(WS_OVERLAPPED | WS_THICKFRAME) & ~WS_CAPTION \n\n\nI don't seem to be able to get rid off the title bar.\n\nI have another question:\n\nI have a overlapped window(say V) which has few child windows (a,b,c, etc)\nThe window shows up with all it's children fine. Now, I create another \nchild(t) with a WS_THICKFRAME style and placed on top of one or more of\nit's siblings. Style WS_THICKFRAME is used so that I can resize it. How do\nI make sure that the child 't' will always be at the top of it's siblings.\nI used SetWindowPos() and BringWindowToTop() without success. What's happening\nis that while I am resizing 't' it shows up but as soon as I let go, it goes\nbehild it's siblings.\n\nAny help would be greatly appreciated.\n\nManu \n\nPlease mail me at manu@oas.olivetti.com\n\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4141, "properties": {"category": "comp.sys.mac.hardware", "text": "From: horton@molbio.cbs.umn.edu (Robert Horton)\nSubject: Re: Macs suck! Buy a PC!\nNntp-Posting-Host: molbio.cbs.umn.edu\nOrganization: University of Minnesota\nX-Newsreader: Tin 1.1 PL5\nLines: 3\n\n\nTests suck! Post a real message!\n:^)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4142, "properties": {"category": "sci.crypt", "text": "From: lfoard@hopper.Virginia.EDU (Lawrence C. Foard)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 16\n\nIn article <1993Apr22.065357.9667@cs.aukuni.ac.nz> pgut1@cs.aukuni.ac.nz (Peter Gutmann) writes:\n[article deleted]\n>\n>Just doing a quick reality check here - is this for real or did someone\n>invent it to provoke a reaction from people?  It sounds more like the\n>sort of thing you'd have heard, suitably rephrased, from the leader of a \n>certain German political party in the 1930's....\n\nIt sounds like a joke (but then the war on drugs has always been a joke...).\n\n-- \n------          Join the Pythagorean Reform Church!               .\n\\    /        Repent of your evil irrational numbers             . .\n \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n  \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n    \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4143, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nDistribution: na\nOrganization: Totally Unorganized\nLines: 95\n\nIn article <bontchev.735232729@fbihh> bontchev@fbihh.informatik.uni-hamburg.de writes:\n>rlward1@afterlife.ncsc.mil (Robert Ward) writes:\n>\n>> >and since the US constitutions guarantees the right to every American\n>> >to bear arms, why is not every American entitled, as a matter of\n>\n>> Have you read the applicable part of the Constitution and interpreted it IN \n>> CONTEXT? \n>\n>Yes. BTW, the appropriate Amendments were posted here some time ago.\n>\n>> If not, please do so before posting this misinterpretation again.\n>> It refers to the right of the people to organize a militia, not for individual\n>> to carry handguns, grenades, and assault rifles.  \n>\n>It's OK, it's OK... Just a month ago I expressed my belief that the\n>right to have a means to shoot your neighbor is not that much\n>necessary to ensure a people's right to be free and got flamed by lots\n>of American gun supporters. So I thought that...\n>\n>Never mind. The new Cripple Chip is a purely American problem, so deal\n>with the mess yourselves. I just wanted to share with you a bit of my\n>experience of living 30 years under a totalitarian regime (I'm\n>Bulgarian) - because I thought that it might be useful to you. Oh\n>well.\n\nI think your experiences under the Bulgarian regime are highly relevant.\nWe have too many people with their heads in the sand saying it cannot\nhappen here, as our Constitutional Rights are being trashed every day\nbecause the government justifies doing some end-run around the protections\nby a 'crisis' requiring 'drastic action'.   It is most likely that in the\nfuture possession of secure encryption tools will be regarded as possession\nof 'terrorist and drug dealers tools', and be some serious Fedaral Felony.\nJust like common tools are 'burgular tools' if the police say so, common\ncomputer programs (even computers themselves) are now 'hackers tools',\nand will become 'terrorist tools'.  BET ON IT.\n\nThe insights of someone who has lived throught this are very important.\nIf the US goes the way of the old Soviet Union and its client states\nas far as individual rights, privacy and overall freedom are concerned,\nthe rest of the world (remember 'New World Order'?) will not be far\nbehind - only a few years.\n\nPlease keep posting anything you find that is deficient or that threatens\nones rights in this thing.\n\nFor example, a conversation between a suspect and a lawyer will no longer\nbe private from Big Brother eavesdropping.  Political dissent allready\nis very dangerous in this country, all it takes is the government to\ndecide that enough people will take one seriously, then one becomes\nguilty of 'plotting to overthrow the government by illegal means'.  The\nphrase 'illegal means' is defined as whatever the government wants it\nto be defined as.\n\nCouple this with Clinton's pressing for a 'smart' National ID card (an\n'Internal passport'?), with the added wrinkle that anything about you and\nyour past can be put on it, and you can only take the government's\nword as to what is really on it (since they will be the only ones\nwith the means to completely read and reprogram the thing).  Isn't\nthat nice?\n\nWhile the Feds can bust into one's safe without the keys, the owner\nknows his safe has been broken into.  When they break into your 'secure'\nphone conversations (or other stored/transmitted data in the near future)\nyou have no way of knowing, so accountability as to the legalities has\ngone out the window.  Just like a safe, if they have a legal cause, they\ncan get the keys from the suspect, just like they can get the keys to\na safe or the combination from the suspect.  Same with encryption:\nRecord everything, get the warrants, THEN decode it with the keys\nobtained from the suspect.\n\nThis Clinton Cripple, along with its natural extensions, will make any\npriviliged communications between client and lawyer, and any meaningful\npolitical dissent virtually impossible.  Which is the general idea.\nAny propeganda about its being secure, and the safeguards, and all\nof that are just that - propeganda to reassure people so they will\nby into this monstrosity.  DON'T BE SUCKERED.\n\nBIG BROTHER IS LISTENING!!!\n\n>\n>Regards,\n>Vesselin\n>-- \n>Vesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\n>Tel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n>< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\n>e-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.201+0000", "event": "documents", "entityId": 4144, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: stevela@csulb.edu (Steve La)\nSubject: CDROM Audio cable...\nLines: 10\nOrganization: Cal State Long Beach\nDistribution: usa\n\nI am looking for a CDROM audio cable to connect my Toshiba 3401B (L/R audio) to\nthe Pro Audio Spectrum 16 sound card.  Thanks in advance for any pointers...\n\n-Steve\n  ___   _____   ____   _  _   ____       _       __           Steve La     \n/ ___) (_   _) | ___) | || | | ___)     | |     /  \\       Network Manager \n\\__  \\   | |   | _)_  | || | | _)_      | |__  | || |     stevela@csulb.edu\n(____/   |_|   |____)  \\__/  |____)     |____) |_||_|      (310) 985-4750  \nCALSTATE UNIVERSITY LONG BEACH, 1250 Bellflower Blvd. Long Beach, CA  90840\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4145, "properties": {"category": "sci.med", "text": "From: georgec@eng.umd.edu (George B. Clark)\nSubject: Re: Endometriosis\nOrganization: University of Maryland\nLines: 6\nNNTP-Posting-Host: athens.eng.umd.edu\n\nYou may want to inquire about taking Lupron as a medication. It's\nsupposed to be a new treatment, and it's described in Nov. 1992\nissue of J. of Obst. and Gyn.\n\nLupron is taken as a monthly injection, whereas other drugs such\nas danazol are taken daily as pills.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4146, "properties": {"category": "misc.forsale", "text": "From: wagnerbm@sage.cc.purdue.edu (Brent)\nSubject: Sony CarDiscman ForSale\nOrganization: Purdue University\nDistribution: usa\nLines: 33\n\n\n   I have a used Sony D-808K CarDiscman for sale.  I bought it new on \nJune 16, 1992.  It still has\n the one-year warranty intact. \nSpecifications:\nSony's best car discman\t\t\tperfect condition\n8X oversampling\t\t\t\t1-bit D/A converter\n3-beam laser pickup\t\t\tdual color display\nDSP sound processing (Bass Boost and DDS modes) w/ 3 levels of effect\n2-way repeat\t\t\t\thold mode\ncan also run on just 2 AA batteries\t30 track programming w/ repeat\nrandom play w/ delete\nfused cigarette lighter adapter (could save the player if something goes wrong\n\nAccesories:\nheadphone plug & line-out jack\t\tSony MDR-34 headphones\nAC power Adapter\t\t\tpatch cord for home use\nautomobile mouting plate  \t\tcar conecting pack\nremote control(great for home use) \tcarrying case\nextra fuses\n\nThis unit is great to use in any car.  Can be moved easily between vehicles.\nWorks well in home or car. Just need cigaraette lighter/outlet and a cassette\nplayer.  \n   I have everything that it came with manuals, packaging, receipts etc.\nThe unit is in perfect condition with normal well taken care of use. \nExtremely versatile and manuverable unit that can be used anywhere.\n   I am asking $250 for the system and extras. Please e-mail if interested.\n\n                         Brent Wagner\n                         wagnerbm@sage.cc.purdue.edu\n                         (317) 495-4471\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4147, "properties": {"category": "talk.politics.guns", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 19\n\nIn article <mvpC5rp8n.3ts@netcom.com> mvp@netcom.com (Mike Van Pelt) writes:\n>In article <16BB5124A0.PA146008@UTKVM1.UTK.EDU> PA146008@UTKVM1.UTK.EDU (David\n Veal) writes:\n>>       Be cute if Koresh hit the trail.\n>>\n>>       Maybe he was bodily assumed into heaven.  Wouldn't that just\n>>make AG Reno's day?\n>\n>*snort*  I sorta doubt it...\n>\n>However... No bodies?  By the time this message gets out\n>they'll doubtless have found bunches, but wouldn't it be\n>interesting if they had a tunnel and  are long gone?\n\n\nIf they hadn't killed the ATF people in the original raid, I think I would \nlaugh my ass off.  (Actually, to be honest, I still might.)\n\nRyan\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4148, "properties": {"category": "comp.graphics", "text": "From: tdawson@llullaillaco.engin.umich.edu (Chris Herringshaw)\nSubject: Re: Sun IPX root window display - background picture\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 15\nDistribution: world\nNNTP-Posting-Host: llullaillaco.engin.umich.edu\nKeywords: sun ipx background picture\nOriginator: tdawson@llullaillaco.engin.umich.edu\n\n\nI'm not sure if you got the information you were looking for, so I'll\npost it anyway for the general public.  To load an image on your root\nwindow add this line to the end of your .xsession file:\n\n xloadimage -onroot -fullscreen <gif_file_name> &\n\nThis is assuming of course you have the xloadimage client, and as\nfor the switches, I think they pretty much explain what is going on.\nIf you leave out the <&>, the terminal locks till you kill it.\n(You already knew that though...)\n\nHope this helps.\n\nDaemon\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4149, "properties": {"category": "comp.windows.x", "text": "From: dcr@mail.ast.cam.ac.uk (Derek C. Richardson)\nSubject: Re: Animation with XPutImage()?\nNntp-Posting-Host: ioas09.ast.cam.ac.uk\nReply-To: dcr@mail.ast.cam.ac.uk\nOrganization: Institute of Astronomy, Cambridge\nLines: 50\n\nIn article 4867@mlb.semi.harris.com, jmartin@egret.imagesRus (John Martin) writes:\n> Animation is most frequently done by copying the the client resident XImages into \n> server resident Pixmap(s) using XPutImage.  Once this is done, the original XImages\n> can be deleted and the animation loop can be performed using XCopyArea from the Pixmaps to the windows drawable.\n> \n> Hope this is helpfull.\n> \n> John\n> \n\nI just implemented this and it seems I can just about achieve the display\nrates (20 400x400x8 frames / sec on IPX) that I get with Sunview, though\nit's a bit \"choppy\" at times. Also, loading the data, making an XImage,\nthen XPut'ing it into a pixmap is a bit cumbersome, so the animation is\nslower to load than with Sunview. Is there a better way to load in the\ndata?\n\nrgooch@rp.CSIRO.AU (Richard Gooch) writes:\n>  If you need speed, and your client can run on the same host as the X server,\n>  you should use the shared memory extension to the sample X server (MIT-SHM).\n>  xdpyinfo  will tell you if your server has this extension. This is certainly\n>  available with the sample MIT X server running under SunOS.\n>  A word of warning: make sure your kernel is configured to support shared\n>  memory. And another word of warning: OpenWindows is slower than the MIT\n>  server.\n>  I have written an imaging tool (using XView for the GUI, by the way) which\n>  yields over 10 frames per second for 512*512*8 bit images, running on a Sparc\n>  IPC (half the cpu grunt of an IPX). This has proved quite sufficient for\n>  animations.\n>\n>\t\t\t\tRegards,\n>\n>\t\t\t\t\tRichard Gooch....\n\nShared memory PutImage (also mentioned by nkissebe@delphi.beckman.uiuc.edu,\nNick Kisseberth) looks interesting, but I need someone to point me to some\ndocumentation. Is this method likely to give better results than server-\nresident pixmaps? I'd also be interested in looking at the XView code\nmentioned above...\n\nThanks for the help so far. If I get something decent put together, I'll\ndefinitely post it to the Net.\n\n-----------------------------------------------------------\n| Derek C. Richardson    | Tel: (0223) 337548 x 37501     |\n| Institute of Astronomy | Fax: (0223) 337523             |\n| Cambridge, U.K.        |                                |\n| CB3 0HA                | E-mail: dcr@mail.ast.cam.ac.uk |\n-----------------------------------------------------------\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4150, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jcav@ellis.uchicago.edu (JohnC)\nSubject: how do you like the Apple Color OneScanner?\nReply-To: jcav@midway.uchicago.edu\nOrganization: The Royal Society for Putting Things on Top of Other Things\nLines: 13\n\nWe're all set to buy one of these for the office, to use for scanning in\ncolor photographs and for optical character recognition.  We've played with\nthe original grayscale OneScanner and were very pleased.  Is the color model\ncomparable in quality?\n\nAlso, what brand of OCR software would you recommend?  We're leaning toward\nCaere OmniPage.  Any better ideas?  Thanks.\n\n-- \nJohn Cavallino                  |  EMail: jcav@midway.uchicago.edu\nUniversity of Chicago Hospitals |         John_Cavallino@uchfm.bsd.uchicago.edu\nOffice of Facilities Management | USMail: 5841 S. Maryland Ave, MC 0953\nB0 f++ w c+ g++ k+ s++ e h- p   |         Chicago, IL  60637\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4151, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: reimert@anthrax.etdesg.trw.com (Scott P. Reimert)\nSubject: Re: win/NT file systems\nOrganization: TRW Inc., Redondo Beach, CA\nLines: 26\n\nIn article <1993Apr26.103230.10618@spider.co.uk> keiths@spider.co.uk (Keith Smith) writes:\n>OK will some one out there tell me why / how DOS 5\n>can read (I havn't tried writing in case it breaks something)\n>the Win/NT NTFS file system.\n>I thought NTFS was supposed to be better than the FAT system\n>\n>keith\n\nDOS 5.0/6.0 cannot read the NTFS file system, although the NTFS file system\ncan read the FAT file system of DOS.  I have WindowsNT on a seperate\npartition on my machine at home, and I can read my DOS disks from Windows NT,\nbut not vice-versa.\n\nAs far as the robustness of the file system, it seems to be very fast, and\nI have yet to have a single problem with it.  That doesn't prove it's better\nthan the FAT system though.  Read the book 'Inside Windows NT,' it will give\nyou all the info you're looking for.\n\n\t\tScott\n\n\n-- \n-------------------------------------------------------------------------------\n  Scott Reimert  \\    reimert@mamacass.etdesg.trw.com     /Standard disclaimer:\nRedondo Beach, CA \\______________________________________/\"Blah blah blah ... \"\n__________________|Always store beer in a cool dark place|_____________________\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4152, "properties": {"category": "sci.space", "text": "From: uck@netcom.com (Tom Chamberlain)\nSubject: Buzz Aldrin's Race Into Space?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 6\n\nHas anyone heard of or Played Buzz Aldrin's Race into Space?\n\nDoes anyone know when it is expected to be released...?\n\nThanx, Tom.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4153, "properties": {"category": "sci.crypt", "text": "From: arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Johns Hopkins University CS Dept.\nLines: 18\n\nIn article <1qpg8fINN982@dns1.NMSU.Edu> amolitor@nmsu.edu (Andrew Molitor) writes:\n>Yes, those evil guys in the FBI can probably, with some\n>effort, abuse the system. I got news for you, if the evil guys in\n>the FBI decide they want to persecute you, they're gonna, and you're\n>gonna hate it. Fact is, the FBI doesn't want to listen to your phone\n>calls, and if they do, and if you're using triple-DES, they'll just\n>get a parabolic microphone and point it at your head.\n\nJust because they can do it anyway, somehow, does not mean it is smart to make\nthe job easier for them.\n--\n\"On the first day after Christmas my truelove served to me...  Leftover Turkey!\nOn the second day after Christmas my truelove served to me...  Turkey Casserole\n    that she made from Leftover Turkey.\n[days 3-4 deleted] ...  Flaming Turkey Wings! ...\n   -- Pizza Hut commercial (and M*tlu/A*gic bait)\n\nKen Arromdee (arromdee@jyusenkyou.cs.jhu.edu)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4154, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: <Political Atheists?\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.01\nLines: 19\n\nkeith@cco.caltech.edu (Keith Allan Schneider) writes:\n>mathew <mathew@mantis.co.uk> writes:\n>>As for rape, surely there the burden of guilt is solely on the rapist?\n> \n> Not so.  If you are thrown into a cage with a tiger and get mauled, do you\n> blame the tiger?\n\nAs far as I know, tigers are not sentient.  If I were pushed into a pool with\nsome dolphins and they attacked me, I might be inclined to blame the dolphins\nrather than the person doing the pushing, as (a) dolphins are not usually\naggressive and (b) they seem to have well-developed brains and a capacity for\nabstract thought.\n\nAs a matter of fact, tigers rarely attack humans unless the human provokes\nthem.  Of course, if they are in a cage which is far too small, that might\ncount as provocation...\n\n\nmathew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4155, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Re: DID HE REALLY RISE???\nOrganization: The Claremont Graduate School\nLines: 9\n\nIn article <Apr.21.03.24.13.1993.1268@geneva.rutgers.edu>, gt7122b@prism.gatech.edu (boundary) writes:\n>[Anecedotal material which ultimately shows that...]\n\n> but from my experience,\n> the modern Jew is not known for his proselytism.\n\nA Rabbi once told me that theres is a talmudic tradition that someone who\nwanted to convert to Judaism was to be turned away three times. If they\ncontinue then they were accepted.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4156, "properties": {"category": "soc.religion.christian", "text": "From: kilroy@gboro.rowan.edu (Dr Nancy's Sweetie)\nSubject: Certainty and Arrogance\nOrganization: Rowan College of New Jersey\nLines: 114\n\nDean Velasco quoted a letter from James M Stowell, president of\nMoody Bible Institute:\n\n>  The other day, I was at the dry cleaner and the radio was playing.\n>  It caught my attention because a talk show guest was criticizing\n>  evangelical Christians, saying we believe in absolutes and think we\n>  are the only ones who know what the absolutes are.\n\n>  We affirm the absolutes of Scripture, not because we are arrogant\n>  moralists, but because we believe in God who is truth, who has revealed\n>  His truth in His Word, and therefore we hold as precious the strategic\n>  importance of those absolutes.\"\n\nThere has been a lot of discussion, but so far nobody seems to have hit on\nexactly what the criticism of \"arrogance\" is aimed at.\n\nThe arrogance being attacked is that we \"think we are the only ones who know\nwhat the absolutes are\".  In short, many evangelicals claim that they are\ninfallible on the matter of religious texts.\n\nIn particular, the problem is one of epistemology.  As a shorthand, you can\nthink of epistemology as \"how do you know?\"  That question, it turns out, is\na very troubling one.\n\nThe problem with `absolute certainty' is that, at the bottom, at least some of\nthe thinking goes on inside your own head.  Unless you can be certain that\neverything which happens in your head is infallible, the reasoning you did to\ndiscover a source of truth is in question.\n\nAnd that means you do NOT have absolute justification for your source of\nauthority -- which means you do NOT have absolute certainty.\n\n\nLet's take the specific example of Biblical Inerrancy, and a fictional\nInerrantist named Zeke.  (The following arguments applies to the idea of\nPapal Infallibility, too.)\n\nZeke has, we presume, spent some time studying the Bible, and history, and\nseveral other topics.  He has concluded, based on all these studies (and\npossibly some religious experiences) that the Bible is a source of Absolute\nTruth.\n\nHe may be correct; but even if he is, he cannot be certain that he is correct.\nHis conclusion depends on how well he studied history -- he may have made\nmistakes, and the references he used may have contained mistakes.  His\nconclusion depends on how well he studied the Bible -- he may have made\nmistakes.  His conclusion depends on his own reasoning -- and he may have made\nmistakes.  (Noticing a common thread yet?  8-)\n\nEverything about his study of the world that he did -- everything that\nhappened in his own head -- is limited by his own thinking.  No matter what\nhe does to try and cover his mistakes, he can never be certain of his own\ninfallibility.  As long as ANY PART of the belief is based on his own\nreasoning, that belief cannot be considered \"absolutely certain\".\n\nZeke believes that he has found a source of absolute truth -- but that belief\nis only as good as the quality of the search he made for it.  Unless he can\nsay that his own reasoning is flawless, his conclusions are in doubt.\n\nAny belief that you hold about absolute sources of truth depends in part on\nyour own thinking -- there is no way out of the loop.  Only an infallible\nthinker can have absolute certainty in all his beliefs.\n\n\nThis is easy to demonstrate.  Let's go back to our shorthand method of doing\nepistemology: \"how do you know?\"  Imagine a hypothetical discussion:\n\n A: The Bible is a source of absolute truth.\n\n B: How do you know?\n\n A: I studied history and the Bible and religious writings and church\n    teachings and came to this conclusion.\n\n B: How do you know you studied history correctly?\n\n A: Well, I double-checked everything.\n\n B: How do you know you double-checked correctly?\n\n A: Well, I compared my answers with some smart people and we agreed.\n\n B: Just because some smart guy believes something that doesn't mean it is\n    true.  How do you know THEY studied it correctly?\n\n A: ...\n\nAnd, as you see, B will eventually get A to the point where he has to say \"I\ncan't prove that there are no mistakes\" -- and as long as you may have made a\nmistake, then you cannot be ABSOLUTELY certain.\n\nThere is no way out of the loop.\n\n\nThis is where the \"arrogance of Christians\" arises: many people believe\nthat their own personal research can give them absolute certainty about the\ndoctrines of Christianity -- they are implicitly claiming that they are\ninfallible, and that there is no possibility of mistake.\n\nClaiming that you CANNOT have made a mistake, and that your thinking has led\nyou to a flawless conclusion, is pretty arrogant.\n\n *\n\nPeople who want to see this argument explained in great detail should try to\nfind _The Infallibility of the Church_, by George Salmon.  He is attacking\nthe idea that the Pope can be knowably infallible (and he does so very well),\nbut the general argument applies equally well to the idea that the Bible is\nknowably Inerrant.\n\n\nDarren F Provine / kilroy@gboro.rowan.edu\n\"At the core of all well-founded belief, lies belief that is unfounded.\"\n                                                    -- Ludwig Wittgenstein\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4157, "properties": {"category": "misc.forsale", "text": "From: djserian@flash.LakeheadU.Ca (Reincarnation of Elvis)\nSubject: For Sale: Jazz Recordings\nKeywords: Music, Jazz, For Sale, Help a Starving Student\nLines: 69\n\n\n************************************************************\n*     For Sale - Jazz Compact Discs                        *\n************************************************************\n\nI have the following CDs for sale, they are all in mint condition\nand are fairly hard to find.  They are all on the savoy label and\nput out by Dennon (Dennon bought the rights to Savoy and released\nthese disks)\n\nI would like to sell them all in one package deal but I will consider\nindividual orders.\n\nThese are the titles and artists:\n\nTelefunken Blues\t\tMilt Jackson, Kenny Clarke, Percy Heath\n\t\t\t\tFrank Morgan, Frank Wess, Walter Benton\n\nJazz Concert West Coast\t\tThe Bopland Boys\n\nOpus De Jazz VOl-2\t\tJohn Rae, Steve Kuhn, Bobby Jaspar, \n\t\t\t\tJake Hannah, John Neves\n\nPatterns of Jazz\t\tCecil Payne, Kenny Dorham, Duke Jordan, \n\t\t\t\tTommy Potter, Art Taylor\n\nPenthouse Serenade\t\tErroll Garner\n\nFootloose\t\t\tPaul Bley\n\nThe Imortal Lester Young \tLester Young, Count Basie\n\nGreat Britain's\t\t\tMarian McPartland, George Shearing\n\nHoward McGhee and Milt Jackson  Self Titled\n\nI Just Love Jazz Piano\t\tHampton Hawes, John Mehegan, Herbie Nichols, \n\t\t\t\tPaul Smith\n\nArt Pepper & Sonny Reid\t\tSelf Titled\n\nOpus De Blues\t\t\tFrank Wess, Thad Jones, Curtis Fuller\n\t\t\t\tCharlie Fowlkes, Hank Jones,\n\t\t\t\tEddie Jones, Gus Johnson\n\nJazz is Busting out All Over\tToo many names to list \n\nOpus in Swing\t\t\tFrank Wess, Kenny Burrell\n\t\t\t\tFreddie Green, Eddie Jones, Kenny Clarke\n\nJackson's Ville\t\t\tMilt Jackson, Lucky Thompson, Hank Jones\n\t\t\t\tWendell Marshall, Kenny Clarke\n\n\nI will take any reasonable offer on the package of the 15 discs\nas well as offers on individual discs.\n\nPlease E-mail me with a response or call (807) 344-0010\n\nThanx\n\nDerek\n\n\n--\n$_    /|$Derek J.P. Serianni $ E-Mail : djserian@flash.lakeheadu.ca           $ \n$\\'o.O' $Sociologist         $ It's 106 miles to Chicago,we've got a full tank$\n$=(___)=$Lakehead University $ of gas, half a pack of cigarettes,it's dark,and$\n$   U   $Thunder Bay, Ontario$ we're wearing sunglasses. -Elwood Blues        $  \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4158, "properties": {"category": "rec.sport.hockey", "text": "From: yvon@ramsey.cs.laurentian.ca (Yvon Lavoie)\nSubject: Hot, Cold Streaks ???\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 14\n\n\nOk guys, I need a list of the teams who have been hot or cold during the\nlast 25 games.  Doesn't need to be accurate, a rough guess will do.  I'm\nabout to enter a playoff pool and I want to know who is hot going into\nthe playoffs.  Don't need to mention Pittsburgh.  They can't get any hotter\nthan they are now.\n\n\nP.S. I need this by Sunday\n\nYvon Lavoie\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4159, "properties": {"category": "talk.politics.guns", "text": "From: \"Paul Hager\" <hagerp@cs.indiana.edu>\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Computer Science, Indiana University\nLines: 82\n\nroby@chopin.udel.edu (Scott W Roby) writes:\n\n>In article <C5rrot.MMM@rice.edu> fontenot@ravl.rice.edu (Dwayne Jacques Fontenot) writes:\n>>In article <C5rpoJ.IJv@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>>>In article <1993Apr19.184303.6205@stortek.com> vojak@icebucket.stortek.com (Bill Vojak) writes:\n>>>>\n>>>  [...]\n>>>> 5) Point out that even if the fire was set by someone inside of the\n>>>>    building, it came as a direct result of the actions of the FBI/BATF.\n>>>>    And the people inside (including 17 children) deserved a trial, instead\n>>>>    of this.\n>>>\n>>>Well they had over 40 days to come out with their hands up on national tv \n>>>to get the trial they deserved.  Instead they chose to set fire to their \n>>>compund hours after the tanks dropped off the tear gas.\n>>\n>>Correction: The FBI says that the Davidians set fire to their buildings.\n\n>And I suppose the FBI also prevented them from coming out with their \n>hands up while national tv cameras watch.\n\nWell the attorneys of the Davidians reported on Larry King that\nthe tanks had actually damaged the structure to the extent that\neffectuating egress from the building was difficult at best.\nWith a rapidly spreading fire and large amounts of smoke and\ntear gas, finding the right exits, or acceptible holes in the walls\nwere nearly impossible.  I find this explanation to be completely \nplausible.  Doesn't mean that it's true, but I don't find it\nintrinsically less believable than the government stories.\n\n>>The FBI also said that the Davidians had a methanphetamine lab in their\n>>basement and that the Davidians had .50 cal machine guns.\n>>\n>>Do you believe everything the FBI says? \n\n>Do you disbelieve everything the FBI says?\n>I balance my gut reaction to question authority together with the \n>independent facts as I see them on video.  I usually adopt the \n>scenario that is simplest and most plausible.  I do not generally \n>believe in conspiracy theories that involve complicated and unlikely \n>scenarios.\n\nI concur.\n\n>The BATF is by no means devoid of fault in the handling of this affair.\n>But to suggest that they may have intentionally started the fire is \n>ludicrous.\n\nIndeed.  According to the lawyers, the Davidian survivors say that\nlanterns were knocked over during the \"probing\" and that's how\nthe fire started.  A tragic accident, if true.\n\n>>Do you trust that snivelling little\n>>piece of sh*t special agent Ricks? He seems to think he is a comedian, and\n>>the media who laugh at his sick jokes are just as guilty as he, IMHO.\n>>\n>>>Up until now the BATF had been making me sick.  Today the people inside \n>>>the compound who set the fire made me sick.  Keeping the children inside \n>>>the compund when they should have been released earlier with the other \n>>>people weeks ago is absolutely inexcuseable.  Not releasing them before \n>>>deciding to set the place afire is the work of madmen.\n>>>\n>>>Two of the nine who escaped the compound said the fire was deliberately set \n>>>by cult members.\n>>\n>>Correction: The FBI says that two of the nine said the fire was deliberately\n>>set by the sect members.\n\n>If the fire were set by accident or by people outside the compound, I would \n>have expected far more cult members to flee the compound.  Or at least come \n>out shooting.\n\nSee above.  This one is going to be thoroughly investigated.  Maybe\nwe'll eventually get some idea of what happened.  My view is that,\nfrom beginning to end, this operation was a botch and that it is\ncompletely possible that nut cases who were otherwise law-abiding\ncitizens were victims of a bureaucratic execution.\n-- \npaul hager\t\thagerp@moose.cs.indiana.edu\n\n\"I would give the Devil benefit of the law for my own safety's sake.\"\n                       --from _A_Man_for_All_Seasons_ by Robert Bolt\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4160, "properties": {"category": "soc.religion.christian", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: Prophetic Warning to New York City\nOrganization: University of Georgia, Athens\nLines: 65\n\nIn article <Apr.9.01.10.38.1993.16892@athos.rutgers.edu> evensont@spot.Colorado.EDU (EVENSON THOMAS RANDALL) writes:\n\n>Which brings me around to asking an open question.  Is the Bible a closed\n>book of Scripture?  Is it okay for us to go around saying \"God told\n>me this\" and \"Jesus told me that\"?  Wouldn't that imply that God is STILL\n>pouring out new revelation to us?  I know that some people will feel\n>that is okay, and some will not.  The concept of a closed canon would\n>certainly cast a shadow on contemporary prophets.  On the other hand,\n>an open canon seems to be indicated sometimes.\n\nThere are a lot of people running around saying \"God told me this\" and \n\"God told me that\" these days.  Some people really have heard God, and others\nheard their glands.  Mario Murrillo mentioned this in a sermon once.  He\nsaid someone told him, \"The Lord gave me a song.\"  He said that it was\nthe worst song he had ever heard.\n\n\"I know why he gave you that song,\" Murillo said, \"He didn't want it anymore.\"\n\nBut God does still speak to His people today, and the idea is contrary to the\nidea of a closed cannon.  Ireneaus wrote about all the gifts of the Spirit\nin the church of His day (2nd and 3rd century) and he was one of the first\nto put forth a New Testament cannon, which was almost identical to the one\nwe have today.  He believed in a closed cannon.  \n\nMany prophets prophesied prophecies which were not recorded in the Scriptures.\nFor example, one prophet in Kings, whose name starts with an \"M\" who\nprophecied that the king would lose a battle.  That is the only prophecy\nhe gave recorded in Scripture, and we no that he had given other prophecies\nbecause the king complained before he heard the prophecy, \"He never prophesies\nanything good about me.\"  Yet only one little paragraph of all of his \nlifetime of prophecies are recorded in Scripture.  There are numerous examples.\nBarnabas was a prophet, Acts says, before he was even sent out as an \napostle.  Yet his writings are not recorded in Scripture.  Only two of\nAgabus prophecies are mentioned in Scripture.  He was already a prophet\nbefore he gave them.  \n\nSo prophecy may be genuine and from God, but that does not make it \nScripture.  \n\n>Also interesting to note is that some so called prophecies are nothing new\n>but rather an inspired translation of scripture.  Is it right to call\n>that prophecy?  Misleading?  Wouldn't that be more having to do with\n>knowledge?\n\nI don't know about translations of Scripture, but I am familiar with \nprophecies that give applications for Scripture.  There are also \nsimilar examples in the Bible.  Several times Peter interprets prophecies\nin a seemingly prophetic way, for example, \"And his bishoprick let another\ntake\" concerning Judas office.\n\nA clearer example can be found in Matthew 24.  Jesus is prophesying about\nwhat will happen before His return and He quotes a passage out of Joel\nabout the sun being darkened and the moon turning to blood.  So Scriptural\nprophecy can be used in later prophecy.  \n\nSometimes this sort of thing can cross over into being a word of knowledge,\nbut gifts of the Spirit seem to overlap.  Words of knowledge and wisdom\ncan overlap.  The word of knowledge and prophecy can overlap.  \nInterpretation of tounges is very similar to prophecy.  Healings are often\nconsidered miracles.  So sometimes the distinction between gifts is a \nbit hazy.  Imho, it doesn't usually matter that much if we are able to\nlabel a phenomenon, as long as we recognize them as the work of the \nSpirit, and use them according to His leading.\n\nLink Hudson.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4161, "properties": {"category": "rec.sport.hockey", "text": "From: plarsen@sanjuan (P Allen Larsen)\nSubject: Re: Canada 3 Sweden 1 at the World Champioships\nNntp-Posting-Host: sanjuan.uvic.ca\nOrganization: University of Victoria, Victoria B.C. CANADA\nLines: 16\n\nIn article <20APR199319243244@venus.cc.hollandc.pe.ca> white@venus.cc.hollandc.pe.ca (Take me Baby!) writes:\n>\n>\tToday at the World Championships in Munich, Canada scored an \n>impressive 3-1 victory over the defending World Champs, Sweden. \n\nI believe that was 4-1.  Rod Brind-Amour scored at 19.59 of the third.\n\n>\n>Kevin White\n>white@venus.cc.hollandc.pe.ca \n\n\n--\n--------------------------------------------------------------------------------\nP. Allen Larsen                                           University of Victoria\nplarsen@sanjuan.uvic.ca\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4162, "properties": {"category": "misc.forsale", "text": "From: mike@pyrdc.UUCP (Mike Whitman)\nSubject: 49cm Womens bike for sale\nOrganization: Pyramid Technology, Government Systems\nLines: 29\n\nI have the following bike for sale:\n\n\ntype:\t\tDave Scott Centurion 1989 model\nsize:\t\t47 cm c-c\ngrouppo:\tShimano 105\ncranks:\t\t165 cm\npedals:\t\tShimano 105 P1050 with clips and straps\nframe:\t\tTange II Double butted steel\ngearing:\tfront: 52/42 rear: 24-22-19-17-15-13\nseat:\t\tTerry womens gel seat\ncomputer:\tAvocet 30\nextras:\t\tdouble water bottle cages\n\t\textra rear tire\n\t\t24\" front/700c rear setup\n\nMy wife is asking for $350 obo. Let me know if you are interested at the\naddress below. Thanks,\n\n-- mike --\n-- \n                 -=---------  Michael C. Whitman\n               ---===-------  National System Engineer - Telecom\n             -----=====-----  Pyramid Technology Corporation\n           -------=======---  1921 Gallows Road, Suite 250\n         ---------=========-  Vienna, VA 22182\n\n\tPhone: (703) 848-2050\tPager: (800)sky-page pin# 45300\n\t    mike@pyrdc.va.pyramid.com -or- uunet!pyrdc!mike\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4163, "properties": {"category": "rec.autos", "text": "From: oprsfnx@gsusgi2.gsu.edu (Stephen F. Nicholas)\nSubject: Re: Plymouth Sundance/Dodge Shadow experiences?\nOrganization: Georgia State University\nDistribution: usa\nLines: 17\n\ndaubendr@NeXTwork.Rose-Hulman.Edu (Darren R Daubenspeck) writes:\n\n\n>> they are pretty much junk, stay away from them.  they will be replaced next\n>> year with all new models.  \n\n\n>Junk?  They've made the C&D lists for years due to their excellent handling and  \n>acceleration.  They have been around since about, oh, 85 or 86, so they're not  \n>the newest on the lot, and mileage is about five to eight MPG under the class  \n>leader.  You can get into a 3.0 L v-6 (141 hp) Shadow for $10~11K (the I-4  \n>turbo a bit more), and a droptop for $14~15K.  \n\n\n As an ex-Fleet Mgr. of 3000 cars, they were amoung the most trouble free of\nall models.  I bought one for my wife.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4164, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: iak@cs.joensuu.fi (Ismo K{rkk{inen)\nSubject: Re: Wallpaper in Windows 3.1\nOrganization: University of Joensuu\nLines: 23\n\nlouray@seas.gwu.edu (Michael Panayiotakis) writes:\n>>Is there any utility available that will make Windows\n>>randomly select one of your windows directory's .BMP\n>>files as the wallpaper file?\n\n>There are a couple.  I am personally using screenpeace, which is a\n\nIf you need just to change the wallpaper, then I've written a short\nprogram in VB that does this by using SystemParametersInfo-function.\nThe bad news is that you need VBRUN200.DLL to run it, and the DLL is\nsome 350kb (the program is about 7kb). The order of pictures depends\non the system date and the number of BMP-files in the directory, so\nthe picture remains the same if you execute the program multiple times\nduring the same day and the number of BMPs has not changed.\n\nIf you feel this is what you need then I could uuencode it and email\nit to you. (It is unavailable via ftp.)\n\n-- \n+--------------------------------------------------------------+\n| Ismo K{rkk{inen / 109740@joyl.joensuu.fi / iak@cs.joensuu.fi |\n|     Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!      |\n+--------------------------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4165, "properties": {"category": "rec.autos", "text": "From: markm@bigfoot.sps.mot.com (Mark Monninger)\nSubject: Re: No-Haggle Deals...Save $$???\nNntp-Posting-Host: 223.250.10.7\nReply-To: rapw20@email.sps.mot.com\nOrganization: SPS\nDistribution: usa\nLines: 3\n\nYou can be sure they wouldn't do it if it wasn't to their advantage.\n\nMark\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4166, "properties": {"category": "rec.sport.hockey", "text": "From: Anna Matyas <am2x+@andrew.cmu.edu>\nSubject: Re: Truly a sad day for hockey\nOrganization: H&SS Dean's Office, Carnegie Mellon, Pittsburgh, PA\nLines: 21\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <1993Apr16.031823.11861@news.stolaf.edu>\n\n\nJoel Alvstad writes:\n\n>A fine 26 year history came to a close tonight, as the Minnesota North Stars, \n>or Norm's Stars (whichever you prefer) lost to the Red Wings by a score of\n>5-3.  The Stars goals were scored by Mike McPhee and Ulf Dahlen, who netted\n>two including the final one in franchise history, with less than a minute to\n>play.\n\nThis is very sad indeed.  My condolences to the Minnesota fans who are\nlosing their team.\n\nI fear that within the next decade or so the only professional sports team\nleft in Pittsburgh will be the Steelers.\n\nWe should always enjoy things when we can.  You never know when they'll\nbe taken away from us.\n\nMom.\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4167, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rngai@oracle.com (Raymond Ngai)\nSubject: Perstor System Disk Controller information needed\nNntp-Posting-Host: hqseq.us.oracle.com\nOrganization: Oracle Corporation, Belmont, CA\nDistribution: comp\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\nLines: 36\n\n\n\nDoes anybody out there have or used to have an HD controller from\nPerstor System Inc. (which is out of business I believe)?  My friend\nreceived an old PC which happens to have such a controller and I am\nhaving a hard time trying to add another HD to the card.\n\n\nI believe the controller is supposed to control MFM drives as RLL\ndrives?? \n\n\nHere the model info on the card, but any other similar model will\nprobably do.\n\n\n\nPerstor System Inc.\nModel: PS 180-16FN\nRev: 2.2 ECN 9-21\n\n\nI would appreciate your reply directly to my e-mail address below.\n\n\n\nThanks,\n\n\nRay  (rngai@oracle.com)\n\n--\n( Raymond Ngai\t\t\t\t\t<rngai@oracle.com>\t   )\n( Application System Analyst\t\t\t300 Oracle Parkway, #670A  )\n( Vertical Applications Division\t\tRedwood Shores, CA 94065   )\n( Oracle Corporation\t\t\t\t(415)506-3385 FAX:506-7262 )\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.202+0000", "event": "documents", "entityId": 4168, "properties": {"category": "talk.politics.misc", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: The state of justice\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 26\n\nIn article <1993Apr16.131041.8660@desire.wright.edu> demon@desire.wright.edu (Not a Boomer) writes:\n>In article <1qksa4INNi7m@shelley.u.washington.edu>, tzs@stein2.u.washington.edu (Tim Smith) writes:\n>> What kind of witnesses?  If we are talking about witnesses who were at\n>> the accident, or were otherwise directly involved (e.g., paramedics,\n>> emergency room doctors, etc.), then they should have been used at the\n>> first trial.  You don't get a new trial because you screwed up and\n>> forgot to call all of your witnesses.\n>\n>\tThey are two witnesses who didn't come forth until after the first\n>trial.  While it would be \"tough luck\" for GM if they new about these witnesses\n>beforehand, IMO this constitutes \"new evidence\".\n\nThe test isn't whether GM knew--otherwise that would reward GM for its\nstupidity.  The test is whether GM reasonably should have known of their\nexistence.  It works both ways--if GM had won the trial, and the plaintiff\nturned up two witnesses who came forward after the first trial who should\nhave been located beforehand, too bad, so sad--no new trial.\n\nLike Tim said, you don't get a new civil trial because you screwed up \nthe first time around.  Unlike the criminal justice system, repose is\nmuch more important in the civil justice system.\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4169, "properties": {"category": "rec.motorcycles", "text": "From: karr@cs.cornell.edu (David Karr)\nSubject: Re: BMW MOA members read this!\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 19\n\nIn article <C5Joz9.HLn@cup.hp.com> Chris Steinbroner <hesh@cup.hp.com> writes:\n>Wm. L. Ranck (ranck@joesbar.cc.vt.edu) wrote:\n>: As a new BMW owner I was thinking about signing up for the MOA, but\n>: right now it is beginning to look suspiciously like throwing money\n>: down a rathole.\n>\n>[...] i'm going to\n>let my current membership lapse when it's\n>up for renewal.\n>\n>-- hesh\n\nIn my case that's not for another 3+ years, so I'd appreciate any\nhints on what will keep the organization in business that long.  (And\npreferably longer, of course, and worth being part of.)\n\n-- David Karr (karr@cs.cornell.edu)\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4170, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: text of White House announcement and Q&As on clipper chip \n\tencryption\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 11\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\ngtoal@gtoal.com (Graham Toal) writes:\n> Whatever happens though, the effect of this new chip will be to make \n> private crypto stand out like a sore thumb. \n\nIt already does.\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4171, "properties": {"category": "misc.forsale", "text": "From: Peter Todd Chan <pc1o+@andrew.cmu.edu>\nSubject: *REDUCED* Sony CD Players 4 Sale\nOrganization: Fifth yr. senior, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 21\nNNTP-Posting-Host: po5.andrew.cmu.edu\n\nITEM: Sony ES-CDPX229*\nCONDITION: excellent\nAGE: 1 year old\nPRICE: $300\n\n*includes TOS.LINK\n\nITEM: Sony CDP 770\nCONDITION: excellent\nAGE: 2.5 years old\nPRICE: $250\nEverything comes with the original packaging and manuals. These items have\nonly been played through audiophile system and are in excellent shape. If you\nare interested, or need any additional information, please e-mail\n(pc1o@andrew.cmu.edu) or call me at home.\n\nThanks,\nJon\n(412) 882-6425\n\nP.S. Yes, these are for sale again.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4172, "properties": {"category": "rec.autos", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Re: I'm getting a car, I need opinions.\nOrganization: Lehigh University\nLines: 19\n\nIn article <1993Apr17.175451.30896@ns1.cc.lehigh.edu>, ip02@ns1.cc.lehigh.edu (D\nanny Phornprapha) writes:\n>I have $30,000 as my budget.  I'm looking for a sports or GT car.\n>\n>What do you think would be the best buy?  (I'm looking for specific models)\n>\n>Thanks,\n>Danny\n>--\n>\n> I'd say an RX-7 would be RIGHT up there.  You could easily deal down to $30.\n It has some of the most impressive performance figures around, and automotive\n magazines eat it up.  One car to seriously consider in that price range.\n\n                                                Rob Fusi\n                                                rwf2@lehigh.edu\n\n                                                \n-- \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4173, "properties": {"category": "talk.religion.misc", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 14\n\nIn article <1qie61$fkt@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n\n>Objective morality is morality built from objective values.\n\n\nAnd organized religion is a religion built from organized values.\nAnd Ford Tempo is a Tempo built from Ford values.\nAnd rational response is response built from rational values.\nAnd unconditional surrender is surrender built from unconditional values.\n    ^^^^^^^^^^^^^^^^^^^^^^^\n          uncle!\n\nbye\n-jim halat\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4174, "properties": {"category": "alt.atheism", "text": "From: vdp@mayo.edu (Vinayak Dutt)\nSubject: Re: Islamic Banks (was Re: Slavery\nReply-To: vdp@mayo.edu\nOrganization: Mayo Foundation/Mayo Graduate School :Rochester, MN\nLines: 39\n\nIn article 28833@monu6.cc.monash.edu.au,  darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n#In <1993Apr14.143121.26376@bmw.mayo.edu> vdp@mayo.edu (Vinayak Dutt) writes:\n#>So instead of calling it interest on deposits, you call it *returns on investements*\n#>and instead of calling loans you call it *investing in business* (that is in other words\n#>floating stocks in your company). \n#\n#No, interest is different from a return on an investment.  For one\n#thing, a return on an investment has greater risk, and not a set return\n#(i.e. the amount of money you make can go up or down, or you might even\n#lose money).  The difference is, the risk of loss is shared by the\n#investor, rather than practically all the risk being taken by the\n#borrower when the borrower borrows from the bank.\n#\n\nBut is it different from stocks ?  If you wish to call an investor in stocks as\na banker, well then its your choice .....\n\n#>Relabeling does not make it interest free !!\n#\n#It is not just relabeling, as I have explained above.\n\nIt  *is* relabeling ...\nAlso its still not interest free. The investor is still taking some money ... as\ndividend on his investment ... ofcourse the investor (in islamic *banking*, its your\nso called *bank*)  is taking more risk than the usual bank, but its still getting some\nthing back in return .... \n\nAlso have you heard of junk bonds ???\n\n\n---Vinayak\n-------------------------------------------------------\n                                           vinayak dutt\n                                   e-mail: vdp@mayo.edu\n\n             standard disclaimers apply\n-------------------------------------------------------\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4175, "properties": {"category": "rec.autos", "text": "From: atom@netcom.com (Allen Tom)\nSubject: Re: Dumb options list\nOrganization: Sirius Cybernetics Corporation - Complaints\nLines: 22\n\nIn article <93Apr16.185044.18431@acs.ucalgary.ca> parr@acs.ucalgary.ca (Charles Parr) writes:\n>The idea here is to list pointless options. You know, stuff you\n>get on a car that has no earthly use?\n>\n>\n>1) Power windows\n\nI like my power windows. I think they're worth it.\n\nHowever, cruise control is a pretty dumb option. What's the point?\nIf you're on a long trip, you floor the gas and keep your eyes on\nthe rear-view mirror for cops, right?\n\nPower seats are pretty dumb too, unless you're unlucky enough to have\nto share your car. Otherwise, you'd just adjust it once and just leave\nit like that.\n\n-- \n+-------=Allen Tom=-------+ \"You're not like the others... You like the same\n| atom@soda.berkeley.edu  |  things I do... Wax paper... Boiled football\n| atom@netcom.com         |  leather... Dog breath... WE'RE NOT HITCHHIKING\n+-------------------------+  ANYMORE... WE'RE RIDING!\" -- ren\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4176, "properties": {"category": "misc.forsale", "text": "Subject: *** New Computer Books for Sale ***\nFrom: mparikh@uceng.uc.edu (Mehul Parikh)\nDistribution: usa\nOrganization: University of Cincinnati\nLines: 15\n\n\nHi!\n\nI have several computer related books for sale. They are all new,\nunused and hence in excellent condition. The subjects include\nProgramming Languages (C, C++, LISP, PROLOG), Operating Systems\n(UNIX, DOS), Windows, X-Windows, LAN, AI, and Expert Systems.\n\nIf you are interested, pls. contact me at:\n\n\t\t\tparikhma@ucunix.san.uc.edu\n\nThanks.\n\n-M. Parikh\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4177, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Iowa State University, Ames IA\nLines: 108\n\nThomas Parsli <thomasp@ifi.uio.no> writes:\n\n>I HATE long postings, but this turned out to be rather lengthy....\n\n\tThat's OK -- you can mail me if you want more discussion.\n\n>Acquiring weapons in Norway:\n>You can buy (almost) all kinds of weapons in Norway, BUT you must have a \n>permit, and a good reason to get the permit....\n\n\tAround here, long-guns are proof of age and fill out the forms.\nFor pistols, nation-wide check for felonies and three days wait.  The\n\"good reason\" is the difference, and one Americans tend to get annoyed\nover as we see no reason the guy with the badge is any better than us.\n\n>It's a little like getting a drivers licence isn't it ???\n>You have to prove that you CAN drive before you are allowed to...\n\n\tNot when dealing with America.  I can drive an 18-wheel truck\nwith no permit, no license, and at age 12 if I'm engaged in farming\nwork.  Strange, that, but there is little to no problem with this.\nAgain, personal rights versus collective security.\n\n>Some crimes are commited with guns that have been in the owners 'arms'\n>for a long time, but these are rather the exeption.\n>Most criminals accuire guns to use them in crimes, and mostly short \n>time befor the crime.\n\n\tStrange that the rates would decline, since killing somebody\nis much more frowned upon than merely stealing a gun.\n\n>Use of knives:\n>It IS allowed to cary knifes in public, but not in your belt or 'open'.\n>You (Americans) think it's ok to have a gun, but not to carry it open\n>in public -rigth ??\n\n\tWhy attract attention?  I carry my sword openly to and from\npractice, as that is the only legal thing I can do.  I also attract\na lot of attention doing this.  I'd rather be lost \"in a crowd of one\"\nthan be the subject of attention while carrying a weapon.  Think of\nthe word \"intimidation\" and you can see where intimidation is not\nthe preferable method for the normal citizen.\n\n>Scandinavians ARE 'aggressive':\n>We northeners are not as hot-livered as southeners, but when we decide\n>to take action we DO.\n>Ask ANY historian or millitary with an knowledge of europe....\n>(Or ask any German who served in Norway in WW2.....)\n\n\tAggressive towards whom?  Southerners?  Germans?  Precisely\nwhy I think your society is less violent, weapons aside.\n\n>Yes the individual is more important than the masses, but only to some\n>extent....\n>Your criminal laws are to protect the individuals who makes the masses ??\n>What happens when the rigths of some individuals affects the rights of \n>all the [masses?? -- editor barf -- Dan]\n\n\tThen the masses have the same rights as the individuals, because\neverything comes down to the individual in one instance or another.  To\ndraw an analogy, Norway is involved in the EEC.  The USA in involved in\nNATO.  The EEC requires certain changes in your laws.  NATO requires\nno such changes in USA law.  These laws affect citizens, and hence\nNorway is saying Europe is more important than, say, Norwegians having\nmotorcycles that make over 100bhp.  In the USA, we'd likely tell the\nEEC to get stuffed since the EEC has no business, in our eyes, in\ntelling us how much horsepower we can safely ride.  While I note\nthat our own state governments often play with game with the federal\ngovernment, in essence this is a cultural difference between us.\n\n>IF i lived in Amerika I would probably have a gun to defend myselfe in HOME.\n>But should it have to be like that ??\n\n\tIt shouldn't.  Since neither of our countries has managed to\nremove criminals from society, in America we feel (and remember we\nhave individual states that are larger than your country) that if the\npolice cannot protect us then we must do so ourselves.  The criminals\nin our country are quite violent, hence we prepare for them.\n\n>Do you think it's wise to sell guns like candy (some states do...) ??\n>If you believe it's smart/neccacery to have drivers-licence WHY do you think\n>it should be free to buy guns ??\n\n\tWe don't.  E-mail me to find out just how difficult it really\nis in this country.  It is easier than in yours, but theft is far\neasier than the troubles we go through to purchase over here.\n\n>I would defend my home, loved ones and country, but I don't view guns as\n>neccities or toys.\n\n\tThey are neither.  They are an option.  We would never force\nyou to own guns if you lived here.  We would, however, fight to keep\nthat option open to you.\n\n>I HAVE done army service, and HAVE used a variaty of weapons, but wouldn't\n>want to have one for self defence or because they 'feel good'....\n\n\tThen you show you are a responsible, rational user of weapons.\nWelcome to our ranks.  Now, how do we teach the young people this sort\nof responsibility?  Cultures seem to have a grave impact here.\n\n\tI notice you didn't use my great-grandfather's name.  Well,\nhe didn't like it much either ;-)\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4178, "properties": {"category": "rec.sport.baseball", "text": "From: philly@ravel.udel.edu (Robert C Hite)\nSubject: Re: Old Predictions to laugh at...\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nLines: 24\n\n\nIn article <1993Apr15.160316.9170@cs.cornell.edu> tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n>\n>Oops!  I came across this file from last year.  Thought you might\n>enjoy some of these thoughts.  The predictions were made on the\n>date indicated.  They are largely out of order.\n\nmuch crap deleted\n\n>>3. Managers to be fired this year (1992) in chronological order:\n>>Fregosi, Showalter, Valentine, Riddoch\n>\n>Three of them went, right?  Showalter is still around (and likely to\n>stick, it seems).\n\nDEAD WRONG!  Last time I checked, Jim Fregosi was still managing the\nPhillies, and doing quite a fine job thank you...best record in\nbaseball at 8-1\n\nMY PREDICTION FOR 1993:\nJim Fregosi will win manager of the year in the NL\n\n(don't flame me..flame the bum who thinks he got fired last year.\nPAY ATTENTION KIDDO!) \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4179, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: Jet Propulsion Laboratory\nLines: 30\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1psfan$pj0@access.digex.net>, prb@access.digex.com (Pat) writes...\n>In article <6APR199314571378@kelvin.jpl.nasa.gov> baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n>|Comet Gehrels 3, which was discovered in 1977, was determined to have\n>|been in a temporary Jovian orbit from 1970 to 1973.  Comet Shoemaker-Levy 1993e\n>|may remain in orbit around Jupiter long enough to allow Galileo to\n>|make some closeup observations.  The orbital trajectory for Comet\n>|Shoemaker-Levy is still being determined.\n>a\n> \n>What about positional uncertainties in S-L 1993e?   \n\nIf Comet Shoemaker-Levy 1993e is in Jovian orbit, and if the comet\nis still hanging around when Galileo arrives, then I'm sure it will\nbe added to the list of targets.  We'll have by then over two years\nof Earth-based observations to help narrow down the positions of the\npieces of the comet. It probably won't be too much different than\nwhat was done with Gaspra.\n\n>But when they were\n>imaging toutatis?\n\nGalileo did not image Toutatis.  That came from Earth-based radar.\n\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | Being cynical never helps \n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | to correct the situation \n|_____|/  |_|/       |_____|/                     | and causes more aggravation\n                                                  | instead.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4180, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: lei@rtsg.mot.com (Peter P. Lei)\nSubject: DOS 6 vfintd.386 and Windows sys.ini\nNntp-Posting-Host: accord4\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 11\n\n\nDoes anyone know what the vfintd.386 device is used for in windows 3.1?\nIt's under the [386enh] section as\n\tdevice=c:\\dos\\vfintd.386\n\nAfter upgrading to dos 6 on several machines (different types), some include\nit, some don't.\n\nAny ideas?\n\npl\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4181, "properties": {"category": "talk.politics.misc", "text": "From: mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson)\nSubject: Re: NC vs Hunt (Marine Gay Bashing in Wilmington NC) verdict\nOrganization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA\nLines: 19\n\ntfarrell@lynx.dac.northeastern.edu (Thomas Farrell) writes:\n|>So you feel that the defendents should have been convicted regardless of the\n|>evidence. Now that would truely be a sad day for civil rights.\n\n|I don't know about everybody else, but to me, they should have been\n|convicted BECAUSE of the evidence, which in my mind was quite\n|sufficient.\n\nWhat evidence are you aware of. What was reported in the media, or all of\nthe evidence that was presented at the trial.\n\nThis sounds to me a lot like the first Rodney King 5 trial. A bunch of people\nwho saw 10 to 15 seconds out of a several minute long video, decided that\nthey knew more than people who had sat through a two week trial.\n-- \nMob rule isn't any prettier merely because the mob calls itself a government\nIt ain't charity if you are using someone else's money.\nWilson's theory of relativity: If you go back far enough, we're all related.\nMark.Wilson@AtlantaGA.NCR.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4182, "properties": {"category": "comp.os.ms-windows.misc", "text": "Organization: Penn State University\nFrom: Azmi Hashim <AXH113@psuvm.psu.edu>\nSubject: Re: Trident VGA Drivers\nLines: 12\n\nIn article <C5y66r.FGp@cs.mcgill.ca>, bjcon@cs.mcgill.ca (Brendan NEWMAN) says:\n\n>Hi, I have a trident TVGA-8900 video card and need the updated\n>drivers for Win3.1 where can I get them from an ftp site.\n\n\nI have the same card, TVGA-8900c. When I checked, the latest driver for\nwindows 3.1 is dated Aug. 92 in garbo.uwasa.fi in /win31/drivers/video.\nIf you find a better version (updated) please let me know, Thanks.\n\n\n-Azmi <axh113@psuvm.psu.edu>\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4183, "properties": {"category": "talk.politics.mideast", "text": "From: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nSubject: Absood\nNntp-Posting-Host: cunixb.cc.columbia.edu\nOrganization: Columbia University\nLines: 11\n\nTo my fellow Columbian, I must ask, why do you say that I engage\nin fantasies?  Arafat is a terrorist, who happens to have\n a lot of pull among Palestinians.  Can we ignore the two facts?\nI doubt it.\n\nPeace, roar lion roar, and other niceties,\nPete\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4184, "properties": {"category": "rec.sport.baseball", "text": "From: schaefer@owlnet.rice.edu (Andrew James Schaefer)\nSubject: Re: Best Sportwriters...\nKeywords: Sportswriters\nOrganization: Rice University\nLines: 31\n\nIn article <C5K7nK.7tv@news.cso.uiuc.edu> rkoffler@ux4.cso.uiuc.edu (Bighelmet) writes:\n>csc2imd@cabell.vcu.edu (Ian M. Derby) writes:\n>\n>\n>>Since someone brought up sports radio, howabout sportswriting???\n>\n>I happen to be a big fan of Jayson Stark.  He is a baseball writer for the \n>Philadelphia Inquirer.  Every tuesday he writes a \"Week in Review\" column.  \n>He writes about unusual situations that occured during the week.  Unusual\n>stats.  He has a section called \"Kinerisms of the Week\" which are stupid\n>lines by Mets brodcaster Ralph Kiner.  Every year he has the LGTGAH contest.\n>That stands for \"Last guy to get a hit.\"  He also writes for Baseball \n>America.  That column is sort of a highlights of \"Week in Review.\"  If you \n>can, check his column out sometime.  He might make you laugh.\n>\n>Rob Koffler\n\nIsn't Stark that idiot who writes in Baseball America?   Twice a month he\nwrites a \"Who woulda thunk it\" article which is really the same piece\nevery time.   \"Who would have thought that [Buddy Biancalana] would have\nmore home runs than [the Colorado Rockies, Babe Ruth, Omar Vizquel and\nNolan Ryan] COMBINED!\"   He's an idiot, if it's the same guy.\n\n>\n>-- \n>******************************************************************\n>|You live day to day and                rkoffler@ux4.cso.uiuc.edu|\n>|dream about tomorrow --Don Henley                               |\n>******************************************************************\n\nAndrew\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4185, "properties": {"category": "talk.politics.guns", "text": "From: HADCRJAM@admin.uh.edu (MILLER, JIMMY A.)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: University of Houston Administrative Computing\nLines: 44\nDistribution: world\nNNTP-Posting-Host: uhad2.admin.uh.edu\nX-News-Reader: VMS NEWS 1.24\nIn-Reply-To: mikey@ccwf.cc.utexas.edu's message of 21 Apr 1993 02:42:37 GMT\n\nIn <1r2cat$5a9@geraldo.cc.utexas.edu> mikey@ccwf.cc.utexas.edu writes:\n\n> cdt@sw.stratus.com (C. D. Tavares) writes:\n> :mfrhein@wpi.WPI.EDU (Michael Frederick Rhein) writes:\n> :\n> :> As someone else has pointed out, why would the stove be in use on a warm day\n> :> in Texas. \n> :\n> :Do YOU eat all your food cold?\n> \n> Thank you for pointing out the obvious to people who so clearly missed it.\n> I can't stand it when people's first reaction is to defend the aggressor.\n\n  Minor quibble:  The assualt (and it was one) began near dawn.  The fire did\nnot break out for several hours.  I find it highly unlikely that the BD would\nbe cooking lunch while armored vehicles punch holes in their house and are\npumping in tear gas.  The lantern story makes more sense, except the fire \nseemed to spread too quickly, even given the nature of the buildings and the\nvery high winds.  And it was daylight, but I guess in the innner recesses it\ncould be dark--shutters probably closed as well.\n\n  Which puts us back to the FBI did it, or the BD did it, or some other screw-\nup occured, which is quite possible.\n\n  The problem with the FBI as a monolithic entity doing it is that it requires\n*everybody* involved to keep their mouths shut.  While they tended to behave \nlike total idiots, that does not make them homocidal maniacs, either.  And if\nit was one nutcase agent, then it serves no purpose to blame the whole agency.\n\n  I can believe that a real nut-case like a Koresh would start such a fire,\nbut I'm far from convinced he actually did so.\n\n  Then again, I rarely go off making blanket condemnations and pronouncments\nwithin 2 hours of a very confusing incident over 175 miles away...\n\nsemper fi,\n\nJammer Jim Miller \nTexas A&M University '89 and '91\n________________________________________________________________________________\n I don't speak for UH, which is too bad, because they could use the help.     \n\"Become one with the Student Billing System. *BE* the Student Billing System.\"\n \"Power finds its way to those who take a stand.  Stand up, Ordinary Man.\"    \n      ---Rik Emmet, Gil Moore, Mike Levine: Triumph \t\t              \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4186, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Eck vs Rickey (was Re: Rickey's whining again)\nFrom: smith@ms.uky.edu (Brian Smith)\nExpires: Sat, 1 May 1993 04:00:00 GMT\nDistribution: usa\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 169\n\nIn article <6998@blue.cis.pitt.edu> genetic+@pitt.edu (David M. Tate) writes:\n>I've read all of the followups to this, but I thought I'd go back to the\n>original article to make specific comments about the method:\n>\n>\n>jao@megatest.com (John Oswalt) said:\n>>\n>>He has obtained the play by play records, in computer readable\n>>form, for every major league baseball game for the past several years.\n>>He devised an algorithm which I call \"sum-over-situations\", and wrote\n>>a computer program to calculate every major league players contribution\n>>using it.  It works like this:\n>>\n>>Look at every \"situation\" in every game in a baseball season.  A\n>>situation is determined by inning, score, where the baserunners are,\n>>and how many outs there are.  For each situation, count how many\n>>times the team eventually won the game that the situation occured in,\n>>and divide by the number of times the situation came up, to come up with\n>>a \"value\" for that situation.\n>\n>This was first done by George Lindsey in the late '50s/early '60s, and\n>reported in \n>\n>\tArticle:\tAn Investigation of Strategies in Baseball\n>\tAuthor:\t\tGeorge R. Lindsey\n>\tJournal:\tOperations Research\n>\tIssue:\t\tVolume 11 #4, July-August 1963, pp. 477-501\n>\n>Later, Pete Palmer did the same thing using simulated seasons to generate\n>a larger set of data to avoid the kind of small-sample anomalies that other\n>people have worried about.  He reported this in _The_Hidden_Game_of_Baseball_\n>(with John Thorn).  Gary Skoog modified the method a bit and did some work\n>on what he called a \"Value Added\" measure based on these situational values.\n>His were based directly on marginal runs, though, not on win probabilities.\n>These results, as applied to the 198? season, were reported in one of the\n>Bill James Baseball Abstract books (1987?  Help me out here, somebody...)\n>\n>>For example, a situation might be inning 3, score 2-0, runner on second\n>>and no outs.  There were 4212 regular season major league games last\n>>year.  (With the Rockies and Marlins, there will be more this year.)\n>>Say this situation came up in 100 of those, and the team ahead won\n>>75 of them.  Then the value of this situation is 0.75.\n>\n>[Description of method: look at change in win probability based on the at bat\n> plus any baserunning, and credit/debit the player by that amount each time\n> he gets a plate appearance.]\n>\n>>Now, for each player, sum up all his at-bat and base-running values\n>>for the season to obtain an overall value for that player.  Obviously\n>>the sum of all players' values for each game, and for the season as a\n>>whole, will be 0.\n>\n>That's only because you always credit +x to the batter and -x to the pitcher;\n>there's no validation involved.\n>\n>OK, there's a very big problem here that nobody has yet commented on: you're\n>adding *probabilities*, and probabilities don't add.  Runs you can add; the\n>total team runs breaks down into how many runs Joe contributed plus how many\n>runs Fred contributed, etc.  But probabilities don't work that way.  If Bob\n>increases his team's chance of winning by 1% in each of 400 PAs, that does\n>not mean that Bob increased his team's chance of winning by 400%.  In fact,\n>it doesn't mean *anything*, because the units are screwy.\n\nI agree and disagree.  John is saying that the batters efforts will result\nin 4 more wins then losses.  While you are probably correct that 400%\ndoes not mean 4 more wins then losses, it means something.  I would\nrather have a player who increased my teams chances of winning by 1% in\neach of 400 PAs then I would a player who increased my chances of winning\nby .5% in each of 400 PAs.  Thus, there appears to me to be an obvious\npositive association between John's statistic and winning games.  Thus,\nbefore you disregard this stat, it appears to me that further study must\ngo into what sort of relationship there is.\n\n>Consider an example:  Bob hits a 2-out solo HR in the bottom of the first;\n>about .12 on your scale.  He does the same thing again in the fourth, with\n>the score tied, for another .14.  And again, in the seventh, with the score\n>tied, for another .22.  And, finally, in the ninth to win the game by a score\n>of 7-6, for a value of 0.5.  Bob hit 4 solo HR in 4 plate appearances, and\n>was credited by your method with .12 + .14 + .22 + .5 = .98.  But what does\n>that mean?  Was Bob 98% responsible for the win?  Certainly not; the defense\n>is *always* 50% responsible (if you include pitching in that), and Bob wasn't\n>pitching.  In fact, Bob was only 4/7 of the offense (which is a lot, but not\n>even close to 100%).  Furthermore, what about the other 3 team runs?  Say\n>they all came on solo HR by Fred; then Fred was hitting HR to tie up the game,\n>which are just as valuable as HR to take the lead (see Lindsey), and Fred will\n>himself have accrued a good .4 rating or so.  So Fred and Bob combined have\n>amassed 138% of a win IN ONE GAME.  There's clearly a problem here.\n\nThe only problem here is an insistance that these number mean exactly\nhow many wins the team has.  First, we are using averages over many\nseasons and applying them to one game.  Second, remember some players\nperformance take away from the chance of you winning.  That is a\nplayer who gets an out gets a \"negative probability\" in most cases.\nThus, I'm not sure in any given game when you add up all the numbers\nfor a team who won that they will add up to 1 in that game.  Sometimes,\nthey will add up to more then one sometime, less than one.  Also,\nthe pitchers' bad performances (giving up 6 runs) may have given\nthem a large negative percentage for that game.  Also, any batter that\npulled an 0-4 night would give large negatives.  \n\n\n\n>>Greg thinking about the right things, but his intuition is off the\n>>mark.  Closers are enormously important.  The total number of runs\n>>value is outweighed by when they come, or are prevented from comming.\n>>The doubling which Greg allows is not enough.\n>\n>In another article, I proposed a test of this.  We can predict a team's \n>won/lost record quite accurately by looking at how many runs *total* they\n>score and allow, without regard to when those runs score in the game.  If\n>late runs are really more important than early runs, then looking only at\n>late runs should lead to a *better* predictor, right?\n\nNo, but really only because you have a smaller sample size.  I would\nthink however, that the number of runs you score in the first inning\nwould be just as good as a prediction as how many runs you score \nin the last inning.  And, realize something else a closer usually\ncomes in in a close situation, not a blow out.  It is hard to argue\nthat any runs that a closer gives up in a game have equal importance\nto those given up in the first inning.  Look, a closer giving up runs\noften means a team will lose many games.  On, the other hand a starter\nwho gives up runs often still leaves his team a chance to win.  The\noffence has many more outs to do something about.  But, I am not\nsaying all late inning situations are equally important either.  If\nI am down 8 runs in the ninth, it really does not matter how many\nruns my pitcher gives up in the ninth.       \n\n>Here's another thought experiment: apply this method to basketball.  What\n>you find is that points scored in the first *half* of the game have almost\n>exactly no value, because no lead is safe with an entire half yet to play.\n>Furthermore, the sub in off the bench who sinks the winning free throws with\n>no time on the clock gets a +1.0 for the game, while the star forward who \n>scored 27 points in the first half before spraining his ankle gets a zero.\n>\n>Does this make sense?\n\n\nNo, but why would you assume that the teams probability of winning would\nbe 0 before the possesion in which the free throws were made.  Look,\nif you are down 1 point with 5 seconds left, there is a fairly high\nprobability that you will win the game if you are in possesion of the\nball.  And, do not forget that somebody elses missed shots, turnovers,\nfouls, bad defense, etc. caused a \"negative chance\" that the team\nwould win.\n \nFrom reading all of the discussion on this statistic, I feel that those\nwho critisize it to a certain extent are doing so out of an agenda.\nAt first look this statistic valadates clutchness.  But, it really\ndoes not.  Cluthness revolves around the idea that certain players\nin crucial situation elevate their performance and others performance\ngoes down.  I've never seen convincing proof that this really happens.\nSo, if you assume there is no clutchness, then that means that except\nfor a lot of noice, this statistic has a positive association to\nplayer performance.  There is a way to get rid of the noice if you\ndo not believe in clutchness.  Certainly, we could find out what\nthe average value of a home run is for example.  We may find for\ninstance, that a home run increases your chance of winning by 15%\non average while a strikeout decreases your chance of winning by 5%.\nI bet if this were done we would find that this statistic was just\nas good as other statistics we have for predicting wins and losses.\n\nHow do we evaluate relief pitchers?  Say John and Sam have the\nexact same pitching statistics (runs, earned runs, K's, BB's,\netc.)  Both had exceptional numbers.  John, however only pitched\nin closer situations, while Sam was a Mop up man.  Who was more\nvaluble to their team?  Probably John.  Who was the better \npitcher?  They were probably about the same.\n\n                                                        Brian Smith\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4187, "properties": {"category": "rec.autos", "text": "From: a207706@moe.dseg.ti.com (Robert Loper)\nSubject: Re: SHO and SC\nNntp-Posting-Host: sun278.dseg.ti.com\nOrganization: Forest Lane Design Center\nLines: 42\n\nIn article <C5L8rE.28@constellation.ecn.uoknor.edu> callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>In article <1993Apr15.232412.2261@ganglion.ann-arbor.mi.us> david@ganglion.ann-arbor.mi.us (David Hwang) writes:\n>>In article <5214@unisql.UUCP> wrat@unisql.UUCP (wharfie) writes:\n>>>In article <chrissC587qB.D1B@netcom.com> chriss@netcom.com (Chris Silvester) writes:\n>>>\n>\n>Why anyone would order an SHO with an automatic transmission is\n>beyond me; if you can't handle a stick, you should stick with a\n>regular Taurus and leave the SHO to real drivers. That is not to\n>say that there aren't real drivers who can't use the stick (eg\n>disabled persons), but they aren't in any position to use an\n>SHO anyway. \n>\n>I would be willing to bet that if we removed the automatic\n>transmissions from all \"performance-type\" cars (like the 5.0l\n>Mustangs, Camaros, and the like) we'd cut down on the number of\n>accidents each year. Autos are fine for sedate little sedans,\n>but they have no business in performance cars, IMHO.\n>\n>\t\t\t\tJames\n>\nI have to disagree with this.  I have a 92 Z28 with a 350 and a 4-speed auto\nw/ overdrive, and it is really better that way.  Chevy autos are reknowned\nfor their long life and ability to handle copious amount of power.  I live \nin the Dallas area, and a manual would be much harder to drive in the traffic \nhere.  Now if I still lived out in the sticks like I used to, a manual would be\nmore fun.  \n\nSafety-wise, an auto is less distracting...I would hate to have to be    \nshifting gears while I was trying to ease into traffic in the freeways here.\nPerformance-wise, I can hold my own against any stock 5.0 Mustang or 5.0\nCamaro w/ a five speed.  \n\nAll of this IMHO... :)\n\n\n\n\n-- \n*  Robert L. Loper             * - Infinity is a notion best contemplated    *\n*  ROBERTLL@FLOPN2.dseg.ti.com *      in a warm bed.                         *\n*  Texas Instruments, Inc.     * - My opinions are my own, not TI's.         *\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4188, "properties": {"category": "talk.politics.guns", "text": "From: ccdarg@dct.ac.uk (Alan Greig)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Dundee Institute of Technology\nLines: 19\n\nIn article <C5stLG.Fwq@news.cso.uiuc.edu>, irvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n\n> Sorry, guy, you got it wrong.  ATF was pumping tear gas into the compound.\n> The Branch Davidians (going along with their apocolyptic faith) set their\n> own compound on fire killing all but 9 or so.  No children survived.\n\nSeeing as how people are willing to quote the FBI quoting cultists\nwho just yesterday were deranged and not to be trusted (hmm the FBI\nor the cultists...) I think I'll quote the BBC quoting (actually voice\ninterview) one of the two British survivors. He claimed that the fire\nstarted when the tanks caused an internal wooden wall/roof to collapse\nknocking over kerosene lamps and that they had no suicide plan.\n\nMaybe true, partly true, or false.\n-- \nAlan Greig                            Janet: A.Greig@uk.ac.dct\nDundee Institute of Technology\t   Internet: A.Greig@dct.ac.uk\nTel: (0382) 308810                 (Int +44 382 308810)\n         ** Never underestimate the power of human stupidity **\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4189, "properties": {"category": "soc.religion.christian", "text": "From: tas@pegasus.com (Len Howard)\nSubject: Re: Question from an agnostic\nOrganization: Pegasus,  Honolulu\nLines: 18\n\nHi Damon,  No matter what system or explanation of creation you wish\nto accept, you always have to start with one of two premises, creation\nfrom nothing, or creation from something.  There are no other\nalternatives.  And if we accept one or the other of those two\npremises, then again there are two alternatives, either creation was\nrandom, or was according to some plan.\n   If it was random, I am unable to accept that the complex nature of\nour world with interrelated interdependent organisms and creatures\ncould exist as they do.  Therefore I am left with creation under the\ncontrol of an intelligence capable of devising such a scheme.  I call\nthat intelligence God.\n   I also prefer the \"Creatio ex nihilo\" rather than from chaos, as it\nis cleaner.\n   There is obviously no way to prove either or neither.  We are and\nwe must have come from somewhere.  Choose whatever explanation you\nfeel most comfortable with, Damon.  You are the one who has to live\nwith your choice.\nShalom,                                  Len Howard\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4190, "properties": {"category": "rec.sport.hockey", "text": "From: 06paul@ac.dal.ca\nSubject: My Predictions of a classic playoff year!\nOrganization: Dalhousie University, Halifax, Nova Scotia, Canada\nLines: 73\n\nHere is yet another prediction for them great playoffs!\n(you may laugh at your convenience!) :)\n\n\tAdams Division (I hate the NE (name) divisoin!!!)\n\nBOS vs BUF   BOS in 5  (the B's are hot lately!)\n\nMON vs QUE   MON in 7  (This will be the series to watch in the first round!)\n\n\nBOS vs MON   MON in 7  (this may be a bit biased but I feel the Canadiens will\n\t\t       (smarten up and start playing they played two months ago\n\t\t\t( i.e. bench Savard !!!)\n\tPatrick Division \n\nPIT vs NJD   PIT in 6  (It wont be a complete cake walk... there be a few lumps\n\t\t\t(in the cake batter!)\n\nWAS vs NYI   WAS in 6  \t(This will not be an exciting series..IMO)\n\n\nPITT vs WAS  PIT in 4   (Washington will be tired after the NYI)\n\n\tNorris Division\n\nCHI vs StL    CHI in 5   (StL will get a lucky game in)\n\nTOR vs DET    TOR in 7   (THis , like MON vs QUE, will be another intense \n\t\t\t (series to watch!)\n\nCHI vs TOR    TOR in 7   (Potvin will be settling in nicely by this point.)\n\n\tSmythe Division\n\nVAN vs WIN     VAN in 5  (Teemu is great, but Vancouver better as a team!)\n\nCAL vs LAK     CAL in 6  (Gretzky is great, but Calgary has been on fire lately)\n\t\t\t\t...sorry for the pun... um, no I am not! :)\n\nVAN vs CAL     VAN in 6  (This will be a great series! but VAN has proven they\n\t\t\t (Will not lie down and get beat!)\n\n\tWales Conference finals\n\nPittsburgh vs Montreal    \tMontreal in 6 (Montreal IMHO is the only team\n\t\t\t\t\t      (that has a chance against \n\t\t\t\t\t\tPittsburgh.)\n\n\tCampbell Conference finals\n\nVancouver vs Toronto\t\tToronto in 6  (Potvin will be series MVP)\n\n\n\tSTANLEY CUP FINALS  \n\nToronto Maple Leafs    vs    Montreal Canadiens    \n\t(The Classic Stanley Cup Final matchup!!) <---also a dream come true!\n\n\tMontreal wins the Stanley cup in the 7th game 1 - 0 in double overtime.\nRoy and Potvin are spectacular throughout the series and share series MVP (if \nthat is possible) Vincent Damphouse nets game winner from a brilliant pass by\nBrian Bellows! Canadiens star(?) Denis Savard watched his buddies play from the\nowners box nursing that splinter on his thumb which has left him on the \ndisabled list since the first game of the playoffs (awww shucks). \n\n***************************************YEE HAA!!*******************************\n*poof* And I wake up :)\nWell that is my predictions...I hope and dream they come true. and you can stop\nlaughing anytime :)\n\n\t\t\t\t\t\t\tPaul\n\t\t\t\t\t\tDie hard Habs Fan living with\n\t\t\t\t\t\t3 Die hard Leafs fans!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4191, "properties": {"category": "talk.politics.misc", "text": "From: cwinemil@keys.lonestar.org (Chris Winemiller)\nSubject: Representation of Territories? (Was: Re: The $11,250,000,000,000 lunch)\nDistribution: tx\nOrganization: None\nLines: 31\n\nboyd@turtle.fisher.com writes:\n\n> In article <ws0s2B1w165w@keys.lonestar.org>, cwinemil@keys.lonestar.org\n  (Chris Winemiller) writes:\n> > BTW, is anyone besides myself peeved that non-US citizens (Puerto\n> > Ricans, etc.) are very close to having full representation in the U.S.\n> > House of Representatives?\n> >\n> \n>    Sorry Chris, Puerto Ricans are US citizens.\n\nOK.  I stand corrected.  I guess, then, that the comments about payoffs\n(i.e., \"pork\") to Puerto Ricans that others have been making still\nstands?\n\nNow, everybody, how about some opinion on the following related topic:\n\nShould the people who are natives of U.S. territories have\nrepresentation in the U.S. House of Rep's or the U.S. Congress?\nThe U.S. Constitution sets up the House of Representatives to represent\neach State in proportion to its population, and the Senate to represent\neach State equally.  What should be done with U.S. territories like\nPuerto Rico?  Does anyone have knowledge about how this was handled in\nthe past, such as with the Louisiana Territory or the Northwest\nTerritory?\n\nChris\n\n-- \nChris Winemiller         Internet: cwinemil@keys.lonestar.org\n                         UUCP    : texsun!letni!keys!cwinemil\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.203+0000", "event": "documents", "entityId": 4192, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Thomas Kephart <kephart@snowhite.eeap.cwru.edu>\nSubject: Need help installing a simms in 700, quick!\nOrganization: Case School of Engineering\nLines: 5\nDistribution: world\nNNTP-Posting-Host: b62182.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7F60E8B6E01F2E6@b62182.student.cwru.edu>\nX-XXDate: Sat, 17 Apr 93 19:44:11 GMT\n\nCould someone please send instructions for installing simms and vram to \njmk13@po.cwru.edu?  He's just gotten his 700 and wants to drop in some \nextra simms and vram that he has for it.\n\nThanks... and don't reply to me, reply to jmk13@po.cwru.edu (Joe)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4193, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: adean@weber.ucsd.edu (Anthony V. Dean)\nSubject: ATM\nOrganization: University of California at San Diego\nLines: 15\nDistribution: world\nNNTP-Posting-Host: weber.ucsd.edu\n\n\nI've been reading, with much confusion, about whether or not to use\nATManager. Lately, all the packages I've been buying have all\nincluded ATManager as a \"bonus\"\nI do some desktop publishing using PageMaker and Coreldraw.\nCoreldraw comes with a nifty laser disk that contains over 200 diff\ntypes. Add that to the TTfonts that come with win31 and you have a\ndecent amount of fonts. I print my creations out on an HP4\nPostcript, at 600 dpi resolution with the \"Resolution Enhancement \nTechnology\" and ..  well ... I get some darn good copies. \nSo good that there isn't any diff whether or not ATManager is turned\non or not. Is it worth it to run ATM at all? Especially with these\nbetter printer technologies ... and TT?\n-- \n-- avDean\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4194, "properties": {"category": "sci.electronics", "text": "From: sehari@iastate.edu (Babak Sehari)\nSubject: Re: How to the disks copy protected.\nOriginator: sehari@du139-213.cc.iastate.edu\nOrganization: Iowa State University of Science and Technology, Ames, Iowa.\nLines: 55\n\nIn <1993Apr20.230749.12821@reed.edu> mblock@reed.edu (Matt Block) writes:\n\n>In article <sehari.735331566@marge.ecss.iastate.edu> sehari@iastate.edu (Babak Sehari) writes:\n>>---\n>>\n>>I was wondering, what copy protection techniques are avaliable, and how\n>>effective are they?  Has anyone have any experience in this area?\n>>\n>>                      With highest regards,\n>>                           Babak   Sehari.\n\n>\tUh oh...\n>\tUmm, there are a number of copy protection schemes.  Some involve\n>modifying the physical media, and some involve encryption schemes, &c.\n>\tAll of the ones that have existed over the course of computing have\n>been successful for a time.  I recall, however, near monthly releases of new\n>ways to \"crack\" the copy protection scheme of the latest releases.  The fact\n>is, none of them are completely secure, or anywhere near it.  Some are more or\n>less difficult to crack, and some have already been cracked.\n>\tI guess what I am saying is that your question is difficult, if not\n>impossible, to answer.  What exactly do you want to know?  Do you need a good\n>one for a project you are working on?  How secure must it be?  Are you trying\n>to crack one that someone else has used?  I can probably make suggestions,\n>assuming the activity is strictly legal.  (In general, it is a BAD idea,\n>legally, to tamper with copy protection.  It can also lead to corruption of\n>files which you necessarily do not have back ups of (being as they are copy\n>protected,) which can be devestating.)  Do you have absolutely no ideas for\n>practical applications, and are merely curious?\n>\tPlease clear up those questions, and I'll try to help as much as I\n>can.\n\n>\tIncidentally, the \"Uh oh...\" at the top is indicative of the dread\n>anyone who has watched their friends hacking equipment be carted off feels\n>when they are asked how to hack.  The area you are broaching is wrought with\n>dangers, many of which include breaking the law, or at least addressing it\n>(from one side or the other.)\n\n>Matt\n\nI have written a program and I want to market it.  I would like certain degree\nof protection, since my main custmers are individuals and not the \ncooperations.   I know laser hole burning method, and hardware key method,\nhowever, my  software is going to cost only $15.00, so I can not afford that.\nAlso, at this low price I can not afford people make too many copy of my\nsoftware. Well, I guess say upto %20 illigal copying is ok by me.\n\nHowever, I do not want someone to get a copy of PCTools and copy my software.  \nOff course, I never meant to forbid the true hackers from copying, since they\ncan develope a better program anyway.\n\n                      With highest regards,\n                           Babak   Sehari.\n\n\n-- \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4195, "properties": {"category": "rec.motorcycles", "text": "From: jeff@mri.com (Jonathan Jefferies)\nSubject: BMW 49'r Rally\nSummary: Memorial Day Weekend Rally\nKeywords: BMW, RALLY, 49'r\nArticle-I.D.: mri.1993Apr9.011743.1903\nExpires: Tue, 1 Jun 1993 07:00:00 GMT\nDistribution: rec.motorcycles\nOrganization: Microtec Research, Santa Clara, California, USA\nLines: 66\n\n\n\n          BBBBBBBB    MM        MM     WW         WW\n          BB      BB  MM M    M MM     WW         WW\n          B       B   MM  M  M  MM     WW    W    WW\n          BBBBBBBB    MM   M M  MM     WW   W W   WW\n          BB      BB  MM    M   MM     WW  W   W  WW\n          BB      BB  MM        MM     WW W     W WW\n          BBBBBBBB    MM        MM     WW         WW\n  \n                      PRESS RELEASE\n TO::  ALL BMW RIDERS\n SUBJECT:: RALLY TIME IS HERE\n FROM:: BMW CLUB OF NORTHERN CALIFORNIA\n \n BMW 49'ER RALLY, MAY 27-31  (U.S. Memorial Day Weekend)\n San Francisco Bay Area - 20th annual BMW 49'er Rally, sponsored by\n The BMW Club of Northern Califronia,  will be held at the Quincy, \n California Fairgrounds, from May 27-31, 1993\n \n \tIncluded in the $42 pre-registration fee, $47 at gate, are 4 Star\n camping, field events and trophies, two dinners, rally pin, door prizes, \n Poker Run, vendor displays, Fun Run, English Trials, and live music playing\n throughout the weekend.  Plus extras like hot showers, Tours, a Concourse\n D'Elegance and more.\n \n \tThis is first time in the 49'er Rally's 20-year history that the \n event is being held in Quincy.  And according to Pat Gardner, Rally Chairman,\n \"The 49'er Rally's continuing growth and the need for a larger and more\n complete facility led us to Quincy.  Plus we can get there on either of our\n two most favrite highways- Highway 70, which goes through the Feather River\n Canyon, or up from the South via the Northernmost part of the Gold Country's\n Highway 49.\"\n \n \tDay passes will not be available and non-BMW rider must be a \n pre-registered guest of a BMW rider.\n \t\n \tThe Quincy Fairgrounds is located on California State Highway 70/89,\n two miles South of downtown Quincy.\n \n \tFor pre-registration forms and additional information, write Doug\n Hubbard, BMW Club of Northern California, 41236 Norman Court, Fremont, CA\n 94539, or telephone <US> (510) 651-2195\n\n ADDITIONAL NOTES:: \n   This is a not for profit event and riders DO get their monies worth.\n   Whether you've ever attended a rally before or not This is the one\n   to make.  The only problem has been that there are so\n   many activities that attendees have to choose one over another.\n\n   Quincy is a beautiful campground, lots of grass and little dust.\n   For folks who have been to previous 49'er rallies at Mariposa, \n   Quincy has lots of space, all of it flat so room is not a problem.\n   There are buildings and such available if there is a change in the weather.\n   Also the people of Quincy are going all out to welcome us. \n   Registration will begin on thursday.  Of course there are always early\n   arrivals who will show up monday or tuesday.  The registration fee pays\n   for camping Thursday through Monday (5 days).  There will be a tour Friday\n   with the main events beginning Saturday.  Sunday Evening will be the\n   awards ceremony.  \n\n   For members of the various clubs, club awards will be based on \n   registration declaration of affilitation.  There will of course\n   be the usual awards for oldest male and female rider < betting 70 +\n   needed to win> and youngest rider ( they get cheater permits at 15>.\n   and greatest distance, one up & two up and all the usual things.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4196, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Accounts of Anti-Armenian Human Right Violations in Azerbaijan #010\nSummary: Prelude to Current Events in Nagorno-Karabakh\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 170\n\n     Accounts of Anti-Armenian Human Right Violations in Azerbaijan #010\n                 Prelude to Current Events in Nagorno-Karabakh\n\n        +-------------------------------------------------------+\n        |                                                       |\n        | On the way the driver says, \"In fact there aren't any |\n        | Armenians left. 'They burned them all, beat them all, |\n        | and stabbed them.\"                                    |\n        |\t\t\t\t\t\t\t|\n        +-------------------------------------------------------+\n\nDEPOSITION OF VANYA BAGRATOVICH BAZIAN\n\n   Born 1940\n   Foreman\n   Baku Spetsmontazh Administration (UMSMR-1)\n\n   Resident at Building 36/7, Apartment 9\n   Block 14\n   Sumgait [Azerbaijan]\n\n\nDuring the first days of the events, the 27th and the 28th [of February], I\nwas away on a business trip. On the 10th I had got my crew, done the paper-\nwork, and left for the Zhdanov District. That's in Azerbaijan, near the\nNagorno Karabagh region.\n\nAfter the 14th, rumors started to the effect that in Karabagh, specifically\nin Stepanakert, an uprising had taken place. They said \"uprising\" in\nAzerbaijani, but I don't think it was really an uprising, just a \ndemonstration. After that the unrest started. Several Armenians living in the \nZhdanov District were injured. How were they injured? They were beaten, even \nwomen; it was said that they were at the demonstrations, but they live here, \nand went from here to Karabagh to demonstrate. After that I felt uneasy. There\nwere some conversations about Armenians among the local population: the\nArmenians had done this, the Armenians had done that. Right there at the site.\nI was attacked a couple of times by kids. Well true, the guys from my crew \nwouldn't let them come at me with cables and knives. After that I felt really \nbad. I didn't know where to go. I up and called home. And my children tell me,\n\"There's unrest everywhere, be careful.\" Well I had a project going on. I told\nthe Second Secretary of the District Party Committee what had been going on \nand said I wanted to take my crew off the site. They wouldn't allow it, they \nsaid, \"Nothing's going to happen to you, we've entrusted the matter to the \npolice, we've warned everyone in the district, nothing will happen to you.\" \nWell, in fact they did especially detail us a policeman to look after me, he \nknows all the local people and would protect me if something happened. This\nman didn't leave me alone for five minutes: he was at work the whole time and \nafterward he spent the night with us, too.\n\nI sense some disquiet and call home; my wife also tells me, \"The situation is\nvery tense, be careful.\"\n\nWe finished the job at the site, and I left for Sumgait first thing on the\nmorning of the 29th. When we left the guys warned me, they told me that I\nshouldn't tell anyone on the way that I was an Armenian. I took someone else's\nbusiness travel documents, in the name of Zardali, and hid my own. I hid it \nand my passport in my socks. We set out for Baku. Our guys were on the bus, \nthey sat behind, and I sat up front. In Baku they had come to me and said that\nthey had to collect all of our travel documents just in case. As it turns out \nthey knew what was happening in Sumgait.\n\nI arrive at the bus station and there they tell me that the city of Sumgait is\nclosed, there is no way to get there. That the city is closed off and the \nbuses aren't running. Buses normally leave Baku for Sumgait almost every two\nminutes. And suddenly--no buses. Well, we tried to get there via private\ndrivers. One man, an Azerbaijani, said, \"Let's go find some other way to get\nthere.\" They found a light transport vehicle and arranged for the driver to\ntake us to Sumgait.\n\nHe took us there. But the others had said, \"I wouldn't go if you gave me a\nthousand rubles.\" \"Why?\" \"Because they're burning the city and killing the\nArmenians. There isn't an Armenian left.\" Well I got hold of myself so I could\nstill stand up. So we squared it away, the four of us got in the car, and we \nset off for Sumgait. On the way the driver says, \"In fact there aren't any\nArmenians left. 'They burned them all, beat them all, and stabbed them.\" Well \nI was silent. The whole way--20-odd miles--I was silent. The driver asks me, \n\"How old are you, old man?\" He wants to know: if I'm being that quiet, not \nsaying anything, maybe it means I'm an Armenian. \"How old are you?\" he asks \nme. I say, \"I'm 47.\" \"I'm 47 too, but I call you 'old man'.\" I say, \"It \ndepends on God, each person's life in this world is different.\" I look much\nolder than my years, that's why he called me old man. Well after that he was\nsilent, too.\n\nWe're approaching the city, I look and see tanks all around, and a cordon.\nBefore we get to the Kavkaz store the driver starts to wave his hand. Well, he\nwas waving his hand, we all start waving our hands. I'm sitting there with\nthem, I start waving my hand, too. I realized that this was a sign that meant\nthere were no Armenians with us.\n\nI look at the city--there is a crowd of people walking down the middle of the \nstreet, you know, and there's no traffic. Well probably I was scared. They\nstopped our car. People were standing on the sidewalks. They have armature \nshafts, and stones . . . And they stopped us . . .\n\nAlong the way the driver tells us how they know who's an Armenian and who's \nnot. The Armenians usually . . . For example, I'm an Armenian, but I speak \ntheir language very well. Well Armenians usually pronounce the Azeri word for \n\"nut,\" or \"little nut,\" as \"pundukh,\" but \"fundukh\" is actually correct. The \npronunciations are different. Anyone who says \"pundukh,\" even if they're not \nArmenian, they immediately take out and start to slash. Another one says, \n\"There was a car there, with five people inside it,\" he says. \"They started \nhitting the side of it with an axe and lit it on fire. And they didn't let the\npeople out,\" he says, \"they wouldn't let them get out of the car.\" I only saw \nthe car, but the driver says that he saw everything. Well he often drives from\nBaku to Sumgait and back . . .\n\nWhen they stop us we all get out of the car. I look and there's a short guy,\nhis eyes are gleaming, he has an armature shaft in one hand and a stone in\nthe other and asks the guys what nationality they are one by one. \"We're\nAzerbaijani,' they tell him, 'no Armenians here.\" He did come up to me when \nwe were pulling our things out and says, \"Maybe you're an Armenian, old man?\" \nBut in Azerbaijani I say, \"You should be ashamed of yourself!\" And . . . he \nleft. Turned and left. That was all that happened. What was I to do? I had \nto . . . the city was on fire, but I had to steal my children out of my own \nhome.\n\nThey stopped us at the entrance to Mir Street, that's where the Kavkaz store \nand three large, 12-story buildings are. That's the beginning of down-town. I \nsaw that burned automobile there, completely burned, only metal remained. I \ncouldn't figure out if it was a Zhiguli or a Zaporozhets. Later I was told it \nwas a Zhiguli. And the people in there were completely incinerated. Nothing \nremained of them, not even any traces. That driver had told me about it, and I\nsaw the car myself. The car was there. The skeleton, a metallic carcass. About\n30 to 40 yards from the Kavkaz store.\n\nI see a military transport, an armored personnel carrier. The hatches are\nclosed. And people are throwing armature shafts and pieces of iron at it, the\ncrowd is. And I hear shots, not automatic fire, it's true, but pistol shots.\nSeveral shots. There were Azerbaijanis crowded around that personnel carrier. \nSomeone in the crowd was shooting. Apparently they either wanted to kill the \nsoldiers or get a machine gun or something. At that point there was only one \narmored personnel carrier. And all the tanks were outside the city, cordoning \noff Sumgait.\n\nI walked on. I see two Azerbaijanis going home from the plant. I can tell by \ntheir gait that they're not bandits, they're just people, walking home. I\njoined them so in case something happened, in case someone came up to us\nand asked questions, either of us would be in a position to answer, you see.\nBut I avoided the large groups because I'm a local and might be quickly \nrecognized. I tried to keep at a distance, and walked where there were fewer\npeople. Well so I walked into Microdistrict 2, which is across from our block.\nI can't get into our block, but I walked where there were fewer people, so as \nto get around. Well there I see a tall guy and 25 to 30 people are walking \nbehind him. And he's shouting into a megaphone: \"Comrades, the Armenian-\nAzerbaijani war has begun!\"\n\nThe police have megaphones like that. So they're talking and walking around \nthe second microdistrict. I see that they're coming my way, and turn off \nbehind a building. I noticed that they walked around the outside buildings, \nand inside the microdistricts there were about 5 or 6 people standing on every\ncorner, and at the middles of the buildings, and at the edges. What they were \ndoing I can't say, because I couldn't get up close to them, I was afraid. But \nthe most important thing was to get away from there, to get home, and at least\nfind out if my children were alive or not . . .\n\n   April 20, 1988\n   Yerevan\n\n\t\t     - - - reference - - -\n\n[1] _The Sumgait Tragedy; Pogroms against Armenians in Soviet Azerbaijan,\n    Volume I, Eyewitness Accounts_, edited by Samuel Shahmuradian, forward by\n    Yelena Bonner, 1990, published by Aristide D. Caratzas, NY, pages 158-160\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4197, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: A visit from the Jehovah's Witnesses\nOrganization: Case Western Reserve University\nLines: 48\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <SUOPANKI.93Apr6024902@stekt6.oulu.fi> suopanki@stekt6.oulu.fi (Heikki T. Suopanki) writes:\n>:> God is eternal.    [A = B]\n>:> Jesus is God.      [C = A]\n>:> Therefore, Jesus is eternal.  [C = B]\n>\n>:> This works both logically and mathematically.  God is of the set of\n>:> things which are eternal.  Jesus is a subset of God.   Therefore\n>:> Jesus belongs to the set of things which are eternal.\n>\n>Everything isn't always so logical....\n>\n>Mercedes is a car.\n>That girl is Mercedes.\n>Therefore, that girl is a car?\n\n\tThis is not  strickly correct. Only by incorrect application of the \nrules of language, does it seem to work.\n\n\tThe Mercedes in the first premis, and the one in the second are NOT \nthe same Mercedes. \n\n\tIn your case, \n\n\tA = B\n\tC = D\n\t\n\tA and D are NOT equal. One is a name of a person, the other the\nname of a object. You can not simply extract a word without taking the \ncontext into account. \n\n\tOf course, your case doesn't imply that A = D.\n\n\tIn his case, A does equal D.\n\n\n\tTry again...\n\n---\n\n        \"One thing that relates is among Navy men that get tatoos that \n        say \"Mom\", because of the love of their mom.  It makes for more \n        virile men.\"\n\n        Bobby Mozumder  ( snm6394@ultb.isc.rit.edu )\n        April 4, 1993\n\n        The one TRUE Muslim left in the world. \n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4198, "properties": {"category": "rec.sport.hockey", "text": "From: wangr@vccsouth22.its.rpi.edu ( Rex Wang )\nSubject:  Tie Breaker....(Isles and Devils)\nNntp-Posting-Host: vccsouth22.its.rpi.edu\nReply-To: wangr@rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY.\nLines: 9\n\n\tAre people here stupid or what??? It is a tie breaker, of cause they\nhave to have the same record. How can people be sooooo stuppid to put win as\nfirst in the list for tie breaker??? If it is a tie breaker, how can there be\ndifferent record???? Man, I thought people in this net are good with hockey.\nI might not be great in Math, but tell me how can two teams ahve the same points\nwith different record??? Man...retard!!!!!! Can't believe people actually put\nwin as first in a tie breaker......\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4199, "properties": {"category": "comp.windows.x", "text": "From: jra@wti.com (Jim Atkinson)\nSubject: How can I detect local vs remote DISPLAY settings?\nReply-To: jra@wti.com\nOrganization: Wavefront Technologies Inc, Santa Barbara, CA\nLines: 17\nNntp-Posting-Host: barracuda.wti.com\nX-Disclaimer: Not a spokesperson for Wavefront Technologies, Inc.\n\nI am trying to find out if my application is running on a local or a\nremote display.  A local display being connected to the same system\nthat the client is executing on.  I have access to the display string\nbut can I tell from the string?\n\nIf the client is executing on host foo then \":0\", \"unix:0\", \"foo:0\",\nand \"localhost:0\" are all local.  Under Ultrix, I believe that\n\"local:0\" is also a valid display name (a shared memory connection\nmaybe?).  Are there other strings that I should check for?  Is there a\nbetter way to detect this?\n\nThank you for any help you can give me.\n-- \n========================================================================\nJim Atkinson\t\tWavefront Technologies, Inc.\njra@wti.com\t\tWhat, me?  A company spokesperson?  Get real!\n=================== Life is not a spectator sport! =====================\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4200, "properties": {"category": "misc.forsale", "text": "From: tsen0001@student.tc.umn.edu (Maoee Tsen-1)\nSubject: 486DX/33 Intel CPU chip for $265.\nNntp-Posting-Host: student.tc.umn.edu\nOrganization: University of Minnesota\nDistribution: na\nLines: 4\n\nUpgraded my friend's 486DX/33 and have the chip for sale, 486DX/33 Intel\nCPU chip, first US$265+shipping will get the chip.  or you can make the\noffer if you don't like the price...  Thanks.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4201, "properties": {"category": "sci.med", "text": "From: kxgst1+@pitt.edu (Kenneth Gilbert)\nSubject: Re: erythromycin\nOrganization: University of Pittsburgh\nLines: 14\n\nIn article <47974@sdcc12.ucsd.edu> wsun@jeeves.ucsd.edu (Fiberman) writes:\n:Is erythromycin effective in treating pneumonia?\n:\n:-fm\n\n\nNot only is it effective, it is in fact the drug of choice for\nuncomplicated cases of community-acquired penumonia.\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!\" =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4202, "properties": {"category": "soc.religion.christian", "text": "From: lbutler@hubcap.clemson.edu (L Clator Butler Jr)\nSubject: Re: DID HE REALLY RISE???\nOrganization: Clemson University\nLines: 11\n\nmcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>(2) Nobody ever displayed the dead body of Jesus, even though both the\n>Jewish and the Roman authorities would have gained a lot by doing so\n>(it would have discredited the Christians).\n\nIt is told in the Gospels that the Pharisees (sp.?) and scribes bribed\nthe Roman soldiers to say that the Diciples stole his body in the night.\nGood enough excuse for the Jewish and Roman objectives (of that day).\n\n--Clator\n--lbutler@hubcap.clemson.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4203, "properties": {"category": "talk.politics.misc", "text": "From: kaldis@romulus.rutgers.edu (Theodore A. Kaldis)\nSubject: Re: The Role of the National News Media in Inflaming Passions\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 53\n\nIn article <C5IAK2.5zH@murdoch.acc.Virginia.EDU> gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy) writes:\n\n> Clayton Cramer:\n\n>> But what came out, in much lower profile reporting, was that the\n>> \"victim\" was a prostitute, and the man had not paid her -- hence the\n>> false accusation.\n\n> There was no evidence the woman in question was a prostitute, the\n> defense merely alledged that she was.\n\nThe fact that she was wearing a miniskirt with no underwear was\npresented as evidence that she was a prostitute, and the court\napparently found this compelling.\n\n> Even Clayton knows the difference.  Err, perhaps Clayton doesn't know\n> the difference.\n\nClayton does indeed know the difference.  Greg apparently doesn't.\n\n>> the judge found that there was some credible evidence that the Marines\n>> were engaged in self-defense.\n\n> No, the judge found that the prosecution did not carry out the burder\n> on proof.\n\nBecause the judge found that there was some credible evidence that the\nMarines were engaged in self-defense.  Got it, knucklehead?\n\n> A small clipping from clarinews, under fair use guidelines: \n\n>    New Hanover District Court Judge Jacqueline Morris-Goodson ruled in\n>    the benchtrial that the state failed to carry its burden in proving\n>    the Marines acted to cause injury.\n\nBecause, in part [REPEAT AFTER ME], \"the judge found that there was\nsome credible evidence that the Marines were engaged in self-defense\".\nHopefully, one of these days you will understand.\n\n> Interesting that in 2 of the 3 cases Clayton does what he accuses\n> others of doing.\n\nWith respect to credibility, I would rate Clayton Cramer an order of\nmagnitude higher than a) the news media, and b) homosexuals.\n\n> But I never thought Clayton was consistent.\n\nClayton is indeed consistent.  And so are you.\n-- \n  The views expressed herein are   |  Theodore A. Kaldis\n  my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n  believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n  as this would hold such views??? |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4204, "properties": {"category": "misc.forsale", "text": "Subject: Music for sale...\nFrom: jpurcell@vax1.umkc.edu (The force is strong with you...but you are not a Jedi yet.)\nReply-To: jpurcell@vax1.umkc.edu (The force is strong with you...but you are not a Jedi yet.)\nOrganization: University of Missouri - Kansas City\nNNTP-Posting-Host: vax1.umkc.edu\nLines: 23\n\n\n\tTHe following listed tapes are priced to sell.  A friend of mine wants\nto get rid of them, so let's just have some bids, why don't we?\n\nAll Are Tapes, BTW.\n\n\n\nAC/DC \t\tBack in Black  \t\tgood condition\n       \t\tRazor's edge   \t\texcellent\nPoison \t\tOpen up and... \t\tExcellent\n       \t\tFlesh & Blood  \t\tExcellent\nGuns & Roses    Appetite for Destr..    Fair\n \t\tUse your Ill.  #1\tgood\n\t\tUSe your Ill.  #2\tgood\nSkid Row\tBside ourselves\t\tTape OK, Case cracked\n\t\tSlave to the grind\texcellent\nJackyl\t\tJackyl\t\t\tExcellent\nBon Jovi\tKeep the Faith(single)  Excellent\n\nTHis is for her, not for me...\n\nJason\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4205, "properties": {"category": "rec.autos", "text": "From: jahonen@cc.lut.fi (Jarmo Ahonen)\nSubject: Re: What is \" Volvo \" ?\nNntp-Posting-Host: cc.lut.fi\nOrganization: Lappeenranta University of Technology, Finland\nLines: 64\n\nboyle@bbsls23.bnr (Ian Boyle) writes:\n\n\n>740 Turbo in UK was good for 124mph. Useful for blowing away VW Beetles, though I\n>believe the Beetle corners better. \n\n>I can say without any doubt that I have never been blown away by any Volvo, ever.\n>I've been blocked into a few car parks though by shit-head Volvo owners who 'only thought they'd be a few minutes'. This does not happen with the owners of any other makes of car.\n\n>Not sure how long the small shit-box Volvos last - too damn long. The worst car I ever drove was a hired 340. In power, handling and ride it was reminiscent of something\n>from the 50s, without the character. The 340 only ceased production a couple of years back. I've only been a passenger in the big Volvos, but that was enough. I ought to go\n>for a test drive because they offer some neat gifts.\n\n\nOh, well... I have to admit that the most disgusting feature of\nVolvo's is their marketing. It looks like Volvo uses something like\n\"Do you dare to risk your family in any car?\" attitude, which is quite\nannoying in the long run.\n\nBut now Volvo has produced a new  good car, the Volvo 850. Front drive,\n2.4 L 20 valves motor, completely new chassis etc. Even the British magazine\n\"CAR\" liked it (and believe me, that is quite much for a Volvo). And\nthe American magazine \"Road & Track\" said that \"This is not your uncle\nOlof's car\", and in a positive sense.\n\nBut in any case, I'd still like to own the 960 estate. Strong, tank-like\nchassis, 3.0L inline six, rear drive. :-) :-)\n\nBTW, the only car drivers who have blocked me are Land Rover or Jaguar\ndrivers... :-) :-) :-) :-)\n\nWhat? You mean what I drive? A cheapo Japanese (a Toyota) of course,\nI do not have money for a *car*. (like BMW, Merc, Jaguar, Saab 9000, \nVolvo 850 (or 960), etc)\nIf I had the money, I would have *bad* problems deciding which one\nto buy :-) :-) :-).\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4206, "properties": {"category": "alt.atheism", "text": "From: bobs@thnext.mit.edu (Robert Singleton)\nSubject: Re: Americans and Evolution\nOrganization: Massachvsetts Institvte of Technology\nLines: 122\nDistribution: world\nNNTP-Posting-Host: thnext.mit.edu\n\nIn article <1993Apr5.163738.2447@dcs.warwick.ac.uk>  \nsimon@dcs.warwick.ac.uk (Simon Clippingdale) writes:\n[deleted]\n> \n> ... over on alt.atheism we tend to recognise two\n> categories of atheism. Function format due to mathew@mantis.co.uk, I  \nthink:\n> \n> (i) weak  -  not(believe(gods))\n> \n> (ii) strong  -  believe(not(gods))\n> \n[deleted]\n> \n> \n> \n> I ... am [a strong atheist], and I must quibble with your assertion \n> that the `strong' position requires faith. I believe that no god/s, \n> as commonly described by theists, exist. This belief is merely an \n                                           ^^^^^^^^^^^^^^^^^^^^^^^^\n> opinion, formed on the basis of observation, including a certain \n  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> amount of introspection.\n  ^^^^^^^^^^^^^^^^^^^^^^^\n> \n> I fully accept that I could be wrong, and will be swayed by suitably\n> convincing evidence. Thus while I believe that no gods exist, this does\n                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> not imply *faith* on my part that it is so.\n  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nLet me first say that \"to believe that no gods exist\" is in fact \ndifferent than \"not believing in a god or gods\". \n\nI will argue that your latter statement, \"I believe that no gods exist\"\ndoes rest upon faith - that is, if you are making a POSITIVE statement \nthat \"no gods exist\" (strong atheism) rather than merely saying I don't  \nknow and therefore don't believe in them and don't NOT believe in then\n(weak atheism). Once again, to not believe in God is different than saying  \nI BELIEVE that God does not exist. I still maintain the position, even \nafter reading the FAQs, that strong atheism requires faith.\n\nBut first let me say the following.\nWe might have a language problem here - in regards to \"faith\" and\n\"existence\". I, as a Christian, maintain that God does not exist.\nTo exist means to have being in space and time. God does not HAVE\nbeing - God IS Being. Kierkegaard once said that God does not\nexist, He is eternal. With this said, I feel it's rather pointless\nto debate the so called \"existence\" of God - and that is not what\nI'm doing here. I believe that God is the source and ground of\nbeing. When you say that \"god does not exist\", I also accept this\nstatement - but we obviously mean two different things by it. However,\nin what follows I will use the phrase \"the existence of God\" in it's\n'usual sense' - and this is the sense that I think you are using it.\nI would like a clarification upon what you mean by \"the existence of\nGod\".\n \nWe also might differ upon what it means to have faith. Here is what\nWebster says:\n\nfaith \n1a: allegiance to duty or a person: LOYALTY\nb  (1): fidelity to one's promises\n   (2): sincerity of intentions\n2a (1): belief and trust in and loyalty to God\n   (2): belief in the traditional doctrines of a religion\nb  (1): firm belief in something for which there is no proof\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   (2): complete trust\n3: something that is believed esp. with strong conviction; esp: a system \n   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nof religious beliefs\nsyn see BELIEF\n\n\n\nOne can never prove that God does or does not exist. When you say\nthat you believe God does not exist, and that this is an opinion\n\"based upon observation\", I will have to ask \"what observtions are\nyou refering to?\" There are NO observations - pro or con - that\nare valid here in establishing a POSITIVE belief. All observations\ncan only point you in a direction - a direction that we might even\nbe predisposed to (by predisposed I mean, for example, people whoes \npartents \"believe in God\" also tend to). To actually draw a conclusion\nabout the \"existence\" or \"non-existence\" of God requires a leap - and\nyou have made this leap when you actively say \"I believe that God  \ndoes/does not exist\". Personally, I think that both statements are\nmisguided. Arguing over the \"existence\" of God is precisely the wrong way\nto find Him (and yes, I use \"Him\" because a personal God is the only \nviable concept (IMO) - if a person wants to use \"She\" go ahead. Of course \nGod is neither He nor She - but we have no choice but to \nanthropomorphise. If you want me to explain myself further I'll be \nglad to.) \n\n\n\nAnd please, if someone does not agree with me - even if they violently \ndisagree - it's in no ones advantage to start name calling. If a person \nthinks I've misunderstood something in the FAQs, or if they they think \nI have not read them well enough, just point out to me the error of my \nways and I correct the situation. I'm interested in a polite and well  \nthought out discussion.\n\n\n\n\n\n\n\n\n> Cheers\n> \n> Simon\n> -- \n> Simon Clippingdale                simon@dcs.warwick.ac.uk\n> Department of Computer Science    Tel (+44) 203 523296\n> University of Warwick             FAX (+44) 203 525714\n> Coventry CV4 7AL, U.K.\n\n--\nbob singleton\nbobs@thnext.mit.edu\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4207, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Morality? (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 52\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>>>Explain to me\n>>>how instinctive acts can be moral acts, and I am happy to listen.\n>>For example, if it were instinctive not to murder...\n>Then not murdering would have no moral significance, since there\n>would be nothing voluntary about it.\n\nSee, there you go again, saying that a moral act is only significant\nif it is \"voluntary.\"  Why do you think this?\n\nAnd anyway, humans have the ability to disregard some of their instincts.\n\n>>So, only intelligent beings can be moral, even if the bahavior of other\n>>beings mimics theirs?\n>You are starting to get the point.  Mimicry is not necessarily the \n>same as the action being imitated.  A Parrot saying \"Pretty Polly\" \n>isn't necessarily commenting on the pulchritude of Polly.\n\nYou are attaching too many things to the term \"moral,\" I think.\nLet's try this:  is it \"good\" that animals of the same species\ndon't kill each other.  Or, do you think this is right? \n\nOr do you think that animals are machines, and that nothing they do\nis either right nor wrong?\n\n\n>>Animals of the same species could kill each other arbitarily, but \n>>they don't.\n>They do.  I and other posters have given you many examples of exactly\n>this, but you seem to have a very short memory.\n\nThose weren't arbitrary killings.  They were slayings related to some sort\nof mating ritual or whatnot.\n\n>>Are you trying to say that this isn't an act of morality because\n>>most animals aren't intelligent enough to think like we do?\n>I'm saying:\n>\t\"There must be the possibility that the organism - it's not \n>\tjust people we are talking about - can consider alternatives.\"\n>It's right there in the posting you are replying to.\n\nYes it was, but I still don't understand your distinctions.  What\ndo you mean by \"consider?\"  Can a small child be moral?  How about\na gorilla?  A dolphin?  A platypus?  Where is the line drawn?  Does\nthe being need to be self aware?\n\nWhat *do* you call the mechanism which seems to prevent animals of\nthe same species from (arbitrarily) killing each other?  Don't\nyou find the fact that they don't at all significant?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4208, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Re: Why does US consider YIGAL ARENS to be a dangerous to humanity\nOrganization: University of Illinois at Urbana\nLines: 48\n\nanwar+@cs.cmu.edu (Anwar Mohammed) writes:\n\n>In article <4815@bimacs.BITNET> ehrlich@bimacs.BITNET (Gideon Ehrlich) writes:\n>>The readers of this forum seemed to be more interested in the contents\n>>of those files.\n>>So It will be nice if Yigal will tell us:\n>>1. Why do American authorities consider Yigal Arens to be dangerous?\n\n>ADL authorities seem to view a lot of people as dangerous, including\n>the millions of Americans of Arab ancestry.  Perhaps you can answer\n>the question as to why the ADL maintained files and spied on ADC members\n>in California (and elsewhere??)?  Friendly rivalry perhaps?\n\nCome on!  Most if not all Arabs are sympathetic to the Palestinian war \nagainst Israel.  That is why the ADL monitors Arab organizations.  That is\nthe same reason the US monitored communist organizations and Soviet nationals\nonly a few years ago.  \n\n>Perhaps Yigal is a Greenpeace member? Or the NAACP? Or a reporter? \n>Or a member of any of the dozens of other political organizations/ethnic \n>minorities/occupations that the ADL spied on.\n\nAll of these groups have, in the past, associated with or been a part of anti-\nIsrael activity or propoganda.  The ADL is simply monitoring them so that if\nanything comes up, they won't be caught by surprise.\n\n>>2. Why does the ADL have an interest in that person ?\n\n>Paranoia?\n\nNo, that is why World Trade Center bombings don't happen in Israel (aside from\nthe fact that there is no world trade center) and why people like Zein Isa (\nPalestinian whose American group planned to bow up the Israeli Embassy and \n\"kill many Jews.\") are caught.  As Mordechai Levy of the JDL said, Paranoid\nJews live longer.\n\n>>3. If one does trust either the US government or the ADL what an\n>>   additional information should he send them ?\n\n>The names of half the posters on this forum, unless they already \n>have them.\n\nThey probably do.\n\n>>Gideon Ehrlich\n>-anwar\nEd.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4209, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: New break pads & exhausts after 96K km (60K mi) on '90 Maxima?\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 78\n\nIn article <1993Apr16.000601.14223@jarvis.csri.toronto.edu> rkim@eecg.toronto.edu (Ryan Kim) writes:\n>\n>Hi, maybe someone can help me here...\n>I am looking to buy this 1990 Nissan Maxima GXE for CDN$14000 right now.\n\nSo its an automatic? Don't know if US spec=CDN spec. for Maximas.\n\n>The car has 96000 km (or about 60000 miles) on it.\n>A typical mileage for 1990 cars seem to be about 70000 km (or about 43K mi).\n>The seller just informed me that when he brought the car in for certification\n>he was told that the front break pads and the exhausts had to be replaced\n>to meet the legal standards.  (He said he will replace the components before\n>selling the car to me.)\n>\n>Being copmletely ignorant to the technical stuff on cars, I don't know\n>what this could mean...\n>Is 96K km about the time typical for replacing the above mentioned items?\n>Or is this an indication that the car was abused?\n\nIf it is the first set of brake pads on front, then this is fine. My car\neats a set every 15k miles or so. The fact that he is replacing the\nmuffler too is also ok.\n\n>Would other things break down or have to be replaced soon?\n\nThe mileage is fairly low - but typical fwd stuff is CV joints. Check\nthe maintenance records with the manufacturers requirements for valve\nadjustments, timing belt changes and so on.\n\nThe 60k mile service is often expensive, so make sure he has done everything.\n\n\n>The seller told me that he used the car on the highway a lot, but,\n>I don't know how to verify this...  I've seen the paint chipped away\n>in tiny dots in the front edge of the hood, though.\n>\nWell, this is one of the commonly cited methods for identifying a\ncar with highway miles. \nMight check the gas pedal wear too. Ask him how many sets of tires he\nhas been through. A highway car might have squeezed by on 2 sets,\na hard driven car 6-10 sets.\n\n\n>Although the Maxima is an excellent car and the car is very clean and\n>well kept, it's currently out of warranty\n>(a similarly priced '90 Accord with 70K km will have 2 years or 30K km\n>worth of warranty left) and I don't want to worry about paying for\n>any repair bills...\n\nWell, the Maxima should be pretty reliable - but if its out of warranty\nyou should get it checked out by someone knowledgeable first. Stuff\nfor Japanese cars can be expensive.\n\n>But, I also need a car for 5 people...  \n>\n>When will the new Maxima come out, by the way?\n\n1995 model year, I believe. \n>\n>I would very much appreciate your input in this.\n>Please reply by e-mail (preferred) or post in this newsgroup.\n\nCraig\n>Thanks!\n>\n>Ryan\n>\n>\n>\n>========\n>Ryan Kim\n>University of Toronto, EECG, Computer Graphics    rkim@eecg.toronto.edu\n>\"Do not weave between traffic cones at road works.\"\n>                                    - from the new British Highway Code\n>                                           (Toronto Star April 3, 1993)\n>\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4210, "properties": {"category": "rec.motorcycles", "text": "From: scs8@cunixb.cc.columbia.edu (Sebastian C Sears)\nSubject: Re: Route Suggestions?\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: scs8@cunixb.cc.columbia.edu (Sebastian C Sears)\nOrganization: Columbia University\nDistribution: usa\nLines: 27\n\nIn article <1993Apr20.173413.29301@porthos.cc.bellcore.com> mdc2@pyuxe.cc.bellcore.com (corrado,mitchell) writes:\n>In article <1qmm5dINNnlg@cronkite.Central.Sun.COM>, doc@webrider.central.sun.com (Steve Bunis - Chicago) writes:\n>> 55E -> I-81/I-66E.  After this point the route is presently undetermined\n>> into Pennsylvania, New York?, and back to Chicago (by 6/6).  Suggestions \n>\n>If you do make it into New York state, the Palisades Interstate Parkway is a\n>pleasant ride (beautiful scenery, good road surface, minimal traffic).  You\n\t\t\t\t   ^^^^^^^^^^^^^^^^^\n\n\tBeen a while since you hit the PIP? The pavement (at least until around\n\texit 9) is for sh*t these days. I think it must have taken a beating\n\tthis winter, because I don't remember it being this bad. It's all\n\tbreaking apart, and there are some serious potholes now. Of course\n\tthere are also the storm drains that are *in* your lane as opposed\n\tto on the side of the road (talk about annoying cost saving measures).\n\t\t\n\tAs for traffic, don't try it around 5:15 - 6:30 on weekdays (outbound,\n\trush hour happens inbound too) as there are many BDC's...\n\n\t<...> <...>\n>               '\\                          Mitch Corrado\n>               /   DEC  \\======== mdc2@panther.tnds.bellcore.com\n\n-------\n\"This is where I wanna sit and buy you a drink someday.\" - Temple of the Dog\nSea-Bass Sears --> scs8@cunixb.cc.columbia.edu --> DoD#516 <-- |Stanley, ID.|\n '79 Yamaha XS750F -- '77 BMW R100S -- '85 Toyota 4Runner --   |  NYC, NY.  |\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4211, "properties": {"category": "talk.religion.misc", "text": "From: kevin@rotag.mi.org (Kevin Darcy)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Who, me???\nLines: 41\n\nIn article <1qme79$c0k@kyle.eitech.com> ekr@kyle.eitech.com (Eric Rescorla) writes:\n>In article <1qm36b$gn2@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>>In article <1qktj3$bn9@squick.eitech.com> ekr@squick.eitech.com (Eric Rescorla) writes:\n>>#In article <1qkn1t$59l@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>\n>>#Like I said before, DES works whether I value my privacy or\n>>#not.\n>>\n>>O.K., which DES?  The abstract function DES? that stops working in any \n>>important sense if no-one cares for the importance of truth, mathematics, \n>>meaning, information, etc.  A DES chip or DES s/w?  That stops working in any \n>>important sense if no-one values science, objective reality, etc.   DES\n>>does not work in a value vacuum.  Nothing else does, either.\n>\n>This is just truth by blatant assertion. Your \"in any important sense\"\n>seem to be just weasel words. Imagine that I have a box which\n>accepts 16 bytes and uses the first 8 to ECB the second 8.\n>It still does a perfect job of DESing, whether or not any input\n>is being made at the time--whether or not anyone values mathematics..\n\nIf no-one looks at the results, or acknowledges their correctness, in what\nmeaningful sense can the chip be said to \"work\"?? Does flibozity exist?\nBy \"flibozity\", I mean a particular, extremely complex configuration of \nphysical phenomena, which no-one, absolutely NO-ONE cares about in the \nslightest. Does it exist, Eric?\n\nGetting back to the question of whether the DES chip \"works\", doesn't \"work\" \nmean something like \"achieving the desired/expected effect\"? Note the way \nintentionality subtly underlies that definition. Even if we take the \ndefinition as \"expected\", instead of \"desired\", can you deny that conformance \nto expectations is itself a value of sorts, namely the scientific values of \naccuracy-of-prediction and reproducibility-of-results?\n\nThe phenomenologist Husserl, for one, considered Intentionality to be the\nprimary ontological \"stuff\" from which all other ontology was built --\nperceptions, consciousness, thoughts, etc. Frank is by no means alone in\nseeing intentionality (or \"values\", as he puts it) underlying all human\nexperience, even the so-called \"objective\" experiences, such as \nmeasurements of the natural world, or the output of your DES chip.\n\n\t\t\t\t\t\t\t\t- Kevin\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4212, "properties": {"category": "misc.forsale", "text": "Organization: Central Michigan University\nFrom: <3MWIEU4@CMUVM.CSV.CMICH.EDU>\nSubject: DAK shorwave radio\nLines: 3\n\n     Digitally-tuned shorwave radio with alarm clock and 5 presets per band.\n       Has AM, FM, SW1, and SW2 bands.   Asking $25 + shppg.\n         Reply for more details.    Thanks      Pete 3mwieu4@cmuvm.cmich.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4213, "properties": {"category": "comp.sys.mac.hardware", "text": "From: noah@apple.com (Noah Price)\nSubject: Re: Quadra SCSI Problems???\nOrganization: (not the opinions of) Apple Computer, Inc.\nLines: 24\n\nIn article <1qm2hvINNseq@shelley.u.washington.edu>,\ntzs@stein2.u.washington.edu (Tim Smith) wrote:\n> \n> > ATTENTION: Mac Quadra owners: Many storage industry experts have\n> > concluded that Mac Quadras suffer from timing irregularities deviating\n> > from the standard SCSI specification. This results in silent corruption\n> > of data when used with some devices, including ultra-modern devices.\n> > Although I will not name the devices, since it is not their fault...\n\nThat's fine, but would you name the \"industy experts\" so I can try to track\nthis down?\n\n> This doesn't sound right to me.  Don't Quadras use the 53C96?  If so, the\n> Mac has nothing to do with the SCSI timing.  That's all handled by the\n> chip.\n\nYup.  That's why I'm kinda curious... most SCSI problems I've encountered\nare due to cabling.\n\nnoah\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nnoah@apple.com                                 Macintosh Hardware Design\n...!{sun,decwrl}!apple!noah   (not the opinions of) Apple Computer, Inc.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.204+0000", "event": "documents", "entityId": 4214, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: David Reeve Sward <sward+@CMU.EDU>\nSubject: Re: AMD i486 clones: Now legal in US?!?!?!\nOrganization: Sophomore, Math/Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 15\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <1993Apr19.180211.1@wharton.upenn.edu>\n\nExcerpts from netnews.comp.sys.ibm.pc.hardware: 19-Apr-93 AMD i486\nclones: Now legal .. by poe@wharton.upenn.edu \n> A friend of mine called me on the phone and told me he was wathcing CNN\n> and saw a report that the ruling prohibiting AMD from selling their i486\n> clones has been thrown out, making it legal for AMD to ship in the US.\n> Can anyone out there verify this?\n\nIt's true.  I read about it from an article in ClariNet (can't send it\nhere though).  U.S. District Court Judge William A. Ingram, of San\nFrancisco, threw out the jury verdict prohibiting AMD from using Intels'\nmicrocode for the 486.\n-- \nDavid Sward     sward+@cmu.edu     Finger or email for PGP public key:\n3D567F  Fingerprint = E5 16 82 B0 3C 96 DB 6F  B2 FB DC 8F 82 CB E9 45\nStop the Big Brother Chip - Just say NO to the Clipper \"Wiretap\" Chip!\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4215, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: Hitler - pagan or Christian? (Was: Martin Luther...)\n\t<93074.033230KEVXU@CUNYVM.BITNET> <9c9e02703ak901@JUTS.ccc.amdahl.com>\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 10\n\nIn article <9c9e02703ak901@JUTS.ccc.amdahl.com> \nczl30@DUTS.ccc.amdahl.com (Chris Lee) writes:\n>In article <93074.033230KEVXU@CUNYVM.BITNET> KEVXU@CUNYVM.BITNET writes:\n>>The Irish have their version of the swastica called St. Brigid's cross.\n>There's also the three-legged symbol of the Isle of Man.\n\nThe three-legged symbol is a bit different, there is a word for them but\nI can't recall it, tri something, trieskalon?, don't know. These have\nmore to do with the triple goddess in her three phases as reflected in\nfemales: girl-woman-crone.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4216, "properties": {"category": "rec.autos", "text": "From: stlucas@gdwest.gd.com (Joseph St. Lucas)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: General Dynamics Corp.\nDistribution: usa\nLines: 10\n\nDon't have a list of what's been said before, so hopefully not repeating.\n\nHow about horizontally mounted oil filters (like on my Ford) that, no\nmatter how hard you try, will spill out their half quart on the bottom\nof the car when you change them?\n\n-- \nJoe St.Lucas    stlucas@gdwest.gd.com        Standard Disclaimers Apply\nGeneral Dynamics Space Systems, San Diego\nWork is something to keep me busy between Ultimate Frisbee games.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4217, "properties": {"category": "misc.forsale", "text": "From: mark@ocsmd.ocs.com (Mark Wilson)\nSubject: UPDATE: Hard Drive, VGA, etc.\nOrganization: Online Computer Systems, Inc.\nX-Newsreader: Tin 1.1 PL5\nLines: 36\n\n[ Article crossposted from misc.forsale.computers.pc-clone ]\n[ Author was Mark Wilson ]\n[ Posted on Fri, 16 Apr 1993 13:18:42 GMT ]\n\nUPDATE (\"for sale\" items):\n(All plus shipping)\n\n1. CORE 72Mb Hard drive, model AT72, works fine,\n        5 1/4\" full-height, reduced to $90\n\n2. MFM controller for the above, would like to sell\n        with above, have $15 asking price,\n        but will sell with #1 above for $100 combined.\n\n3. AT-style case $10 (in process of selling)\n\n4. VGA card, 512K, now asking $25\n\n5. 386 Max, version 6.0, now asking $25\n\nPlease email mark@ocsmd.ocs.com or use phone #s below.\n\n- Mark\n--\n-------------------------------------------------------------------------------\nMark Wilson, Online Computer Systems.  1-800-922-9204 or 1-301-601-2215\n(Try email address mark@ocsmd.ocs.com....)\nThis file .disclaims everything signed with my .signature, I .mean it!\n-------------------------------------------------------------------------------\n\n--\n-------------------------------------------------------------------------------\nMark Wilson, Online Computer Systems.  1-800-922-9204 or 1-301-601-2215\n(Try email address mark@ocsmd.ocs.com....)\nThis file .disclaims everything signed with my .signature, I .mean it!\n-------------------------------------------------------------------------------\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4218, "properties": {"category": "comp.graphics", "text": "From:  Valentin E. Vulihman <vulih@ipmce.su>\nSubject: Attractive drawing on the sphere\nLines: 23\nReply-To: vulih@ipmce.su\nOrganization: Inst. of Prec. Mech. & Comp. Equip., Moscow, Russia\n\n\n\t   S P H E R I C A L   D E S I G N I N G\n\n I have made an attractive program on AT-computer  for  drawing\n on the sphere and pasting it of paper.  For children,  artists\n and education.  I can send an example to alt.source.wanted, on\n which  you  can  see  the  rotation of the sphere,  if you are\n interested.  Children can  design  tesselations  of  the  many\n famous  regular  polyhedra  without  serious difficaltis,  and\n print patterns to paste their spherical models.  Moscow,  tel.\n 280-53-53, after 21 o'clock, or E-mail, Valentin Vulihman.\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4219, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: zmola@bert.eecs.uic.edu (Carl Zmola)\nSubject: Re: Workspace Managers for Win 3.1 - a small review\nOrganization: University of Illinois at Chicago\nLines: 32\n\ncah@tactix.rain.com (Chris Huey) writes:\n\n>Jamie Scuglia (jamie@zikzak.apana.org.au) wrote:\n>: Thanks to all those people who recommended Workspace managers for\n>: Windows 3.1.  I found 3 shareware Workspace Managers, from Australia's\n>: MS-WINDOWS archive (monu6.cc.monash.edu.au), which mirrors some\n>: sites in the U.S.  The three I found were:\n>: \n>: 1. WORKSPACES 1.10 (wspace.zip)\n>[ review deleted ]\n>: 2. WORKSHIFT 1.6 (wrksft16.zip)\n>[ review deleted ]\n>: 3. BIGDESK 2.30 and BACKMENU (backdesk.zip)\n>[ review deleted ]\n\n>I really appreciate this information.  However, given that I don't have\n>direct Internet access - which means I don't have Archie access - I must\n>resort to using FTPMAIL.  This means that I need the site name and the \n>directory where these workspace managers are located.\n\nbackdesk.zip is on CICA, but I'm not sure of the whole directory.\n\nAnother to throw into the running is topdesk.  It is alsow on CICA, but\nI'm not sure where.  It is more complicated then backdesk, but I've found\nit to be more stable and more usefull.  I recomend it to people who\nhave already used a virtual desktop.  Oh yeh, It's free.  \nCopyright Microsoft and Sanford Staab.  \n\n\n\tCarl\n\tzmola@cicero.spc.uchicago.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4220, "properties": {"category": "rec.motorcycles", "text": "From: mikej@PROBLEM_WITH_INEWS_GATEWAY_FILE (Mike Johnson)\nSubject: Re: Paris-Dakar BMW touring???\nNntp-Posting-Host: mikej.mentorg.com\nOrganization: Mentor Graphics\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 8\n\n\n--\n-----------------------------------------------------------------------------\n                     mike_johnson@mentorg.com\n-----------------------------------------------------------------------------\n Mentor Graphics |  8005 SW Boeckman Rd         |      Software Support    \n Corporation     |  Wilsonville, OR 97070-7777  | Framework Products Division \n_____________________________________________________________________________\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4221, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mitchell@nodecg.ncc.telecomwa.oz.au (Clive Mitchell)\nSubject: Dataproducts LZR1260 not printing correctly\nOrganization: Regional Network Systems Group, Perth\nLines: 951\n\n---------- cut here ---------- part 02/03\nM_XN.GGHOL*(3IZ!02'C'\"YM=*][*&WT%S;)5:&$V8A= K/X@2$F[(J )CABC\nM=8H#9!C@^.0%CF]P[  )'._@V/$5S@ ?'#NW61T@A&-G1/H#C'!\\0)T7(*^Q\nM._[3L4,X=K08CH]P[$N>7<*Q\"SKV\"<>N_.* JS5@GF>O\\.PW,0[X6@-FN+:O\nM+QB0.X7KXP(XWM2QR_EV))8Z0!;?7I; \\2Z.O72\"XU\\<.^L%[Y,Z=K(/SN=Q\nM[H^.O<>Q;SIV'\\>.[-A_'/N=8P]R[(-6W@\"C''N?8Y=R[%>.G<JQ]SCV*G>I\nMA>.Q'+OS\"E=_[6KO%'$'*.;+SOO!E_?W))<Z\\5^W&:E@M@:;8\"U31L\"'#3\"K\nM%<@6/.X:P$/1Q <XG0MB=@BNFP?I/%Z:.RC@.8$;AA^5X/%H <TTA&9JFZ0 \nMPA,YC\"/P>([!F1^(-L3V(T.R;?92C&N!@<QX MZBO8 :UL 9SQ)Q>CV,PJ 4\nMOJFUQ8*P=\"C3\\&NF]I>Q#G5-ZKJF4D_8UD&;; GK01) QE/H6IYUP3.U 7-<\nM8N^E=I0\"GFD[L>L<0J)Y=0J981XK5OEOPB'/9GU (C;.+&B_4&TVSR%0\\W\\%\nMO2DUO%T!N-\"''<T-]#;4BC&BE/@'C?E!0)3. 3%\\QZ<5]>99#'_5!0>J_!PH\nM_E4%\"NQ=%V[WFX5/\\[OZCGRC6.O:NRH\"W/<'NT= +;11B[<3JF$WX-'%:,G5\nM>4Q8)+G)MP/A!O[,H8 8'\"2'A47B(]/X(\"12P:?0!CS%00C'/^@!'#P%R>X!\nMKH\\L-(>1O @V&0YU71,9DWK4[NPZ#M6@9FDTC\\JXICAIJP[RJ9!_G1C420@O\nM0E\",EX2@C]Y_)H8]PPCA$3$U3H?PW0'#FX&E.FD !8-C:.F46NLG@$]K5L\"4\nM#R;V@2?SJOPE5,5LK+$<7U]C;-%![^\"D&/0X\"<I]<#P(9_?@3-N-X$QW-\"GP\nMZ =I1?3T3O4;T9\"5O3[%OYCI&>$RE48S(+@< ]T3+$ W(2B<N(6T/5.>->!A\nM>8AWQ,OT3*P;J#C.<()?D3X70?K04\"*4(9T\":1YIX)G3DT&<_426 >;VBQAI\nMNBV&Q+HHPG-0 &@K++R89+#H<Q),K\\*%V;[? I#CZV2<)12C65; N($#DGJ>\nMF9!V5N39K6D*4^,4KT1-HN_M,%%0<7,R=^W LU5@72UZ@W0+:Z&&<J\\&I_ -\nMTX5?_C-HE*K[R(72Z7[0I]6@#.-7J%*H%L1-=OTN ?9G'_\"R*B[:426YEMH9\nM+PIB?^^)G:J+=@\\CTXS]@T VOC$TR\\ :&L)27<0*BWC&QM%GWN_8&)@L=-UB\nM[@\",Y<P8RVDPEMO('YE1*ZNA7IE,2*K,V8Z57U=J5-S-,\"1$Y*UJ0)Y8^<:R\nM55Y/-^&I\">].N-';J?3T RJ\\4_/PJC!  4QV<1-*Q,%-B68GO#'AB=T@YH/8\nM1K4/-SDO.3SA;I+K>_VI0[G=T6]K@)Q:31;>GU]@#RZP%W>!B5S\"I(&NG\\(U\nM .[9T1.:,I,:AR(U0NYV@[I,K5T .? ]P VWC42AT@W&S<%+^\"(E,2^!I58E\nMV5+\\8^#(KB)-3G_'1YUO 9PZ][X)!(Q5>772!J<8:@N]@O%*K^HT1H&4Y+_(\nMUAV$K3,&;BMXTSKDUBT=5>&O*TFF\"8P#[8ODCG].0AZOJT$>=GF 51;<>^6!\nM$\\ 1)$N/?:4QK QE;%#@>B3Z0T.='U0>H]+0T>^A8UZO@=J>/D+QMHI?8(+;\nM2AK76^.^.W\"@75C-TU/>>]T(TL-S7#:O1_61**-Q5KP^)*;&C/2_(5EQYUO8\nMB\"Z_'UDD$,(#@$2/C5;[!\\\"<OG+6=_K4TKZH]3'4T+HSHO=EF9)QA@!G/N*9\nM@]BI3HO N;!CQP6#TH=] ]B ^6%A2;1$RL/8:6V!$\" ]$ +:J15,%%^#=^=K\nM9O-#&$FZ8S T+\"\\:PXZBT2-64+-TX->7B;TJ9^2I_>^NJ,W(?/$USF77P-%;\nMR+)?8T9+H(JO$93HZ/7^,QP9A0$J@E\\ 5?P%4)4!H\"+E#L!;2*$!*GT$4&ES\nMA4  E1\\!5,IORI2$]9>V:\\J+6&6]2-=Z#V@)N9R&PQJ<0;.9YP3K>J\"JAVL%\nMC\"I;X\\R! BFYQ+H\"?AH I)LU=3C-6X[73+/=PVE-ZF\\PF6>YN/'*O%4,R(G.\nM5G*5>5\".3GALALE <Z_.SC3T],IZTGZQB:HV$%4WT+GQH'L!(T0FH.Y$$9XC\nM SWN#_2L9UGGC2Z(+@_T3 6WSAV;J\"H>B^G81-7YB>K^0F]QH3>Y6*>5N>G;\nM($IK*ET#X)X=/4A\\5*\"FIJ%,#4>J#KD HI(;%9\"J<I ;5C,K;CQS@5)5#63\"\nM%T&)D0DLMD/(X?5OH51)?:6Z>3XCP[D5QOK]H\"IMKMKLE!VGVZ!\"K,]4U9FI\nMFJ(J!$6ECL@UA#.CW(-*U,4?5W1 3L\"%WRNV5%-IJ<9EU;I*1Q_57JK1TE*-\nMXTHUCBO7UP7WNE)-937O;6]+-95W>VQ>.]HS\\_!2C?-S4G!*R?\\[LDEVY^/O\nML_BO]#<4\"63Q 2#1N[:7:M(& +1<>VV@EO9%<\\ F0U)-@25(EFHJ+=4XL($L\nMJ4832S725JJ1NE*-L,D%7:HQF*H>8\"JT *ZX!49F@*Z:QSJH\\2P:ODXTZ$/1\nMM(,JLUQW!C;YBP7\":<V7MHT&0:@-RP) JPH*[!\\D>3JX8& )Q.D;H> [Y;@P\nMN=\\#IFJP,M]UB=?&W3[1@\" HH*@-!'.B+PN&X8$:!(VT.O2#?Q,H\\-.99%[,\nMR9/PPB+I>CA>A)<FZ;&Q7VZ$O86$NO;2I8+_,/ISX],B&5V7$ZU\\!.7BNWG@\nME3NU<JB'[0C*5U!.TI$!#/;_D369(<9BQ10GJ^:O#6A88QHA-S!$NT\"Z(8@F\nM0U021C3<H,BLAEKR8QU!(]*:$0J8\"+*I6U4W^7/(L\"/@E8YFIN@LA%<ABU@@\nM)-%W)U\"N?'G@1=(HI]48<\"P'KA(- [(6NI+E2*$@F\\LR &HD/<(IS\"+2?[^@\nMM:^.KW$4PIL(!2!]'$@&]ENLI\\MJ57YZV '^A9;]%\"T;B\\FV0O1*<'[D@/&K\nM\"@ZH&M%0#N7ZNO,P)_5 _YV7/?7A*92P0TA\"V1M#V1(-I,I]9H%J6G-E 0Q2\nM'>1LRFI-9+411[798S,2-1X9M@I\"$*A5<[:0U#<)N+PXG-Z2]T[^#<T;N>']\nM(*9K8UIZ=P9<72(CR\\'C&Z9EA3;CT1F[C&&'&<4N*N@LY'32(FC#3GV44/;$\nMS0E/SB[;$V!KGS_0>(!2=WLNKY&:6\"22L:@WQ53Y'=9XGKC8?UH#$/_.P]H(\nM#PM>LV\\')D<Q\"$\"RYOB\\DY8KF4J!F4I@?<$I^HOA<4$\\/T!F7?P7Z%7T!.$A\nM-\"2*48-8@ TB.\"_ 4 . X9G7MVF>1^4/HP67V0,TBXZZ;?K&.X\"&9 FFOOSN\nM_5X^\"G0@J@Y00KF?PCP9E\\O\\Q/SB8Y'AB0V+H[A;)N^_H+$NCLT&55O/77G\"\nMQ#!SP^;]YW0T/%\\3A9JD/KA7]/_]@/YV))X3Q4&!:\\X#C/+0(13X0==GVP+C\nMP,7FG?YM )O'C^*HU_^%ZEN^$W$LM]D]4-@9S<?8BA_#]C&.;P^M!.*\"3 9@\nM=GIHOVJ\"%MHD%'L@BNT*?LBO2E! N)4NTYKW1G!NF4)94UJVMC5@H11,*Z5@\nMD>.@R DKN>9[R_*J,49J#U$S#J:])P2W%#A XT;O [AF:M^UH&9QYD83O(\"4\nMQQ] V^UIXVT+?,6T46)C+ CWBT_I*Y0E8&^(U'(?S4(/#U2%S^2^3A7H%6S:\nMBC7;N78.46?]FWV1\"6#.K.TZN$C%6D$AS8,RL+,B2\"'\\?VW3 + $US>G/:$[\nMWHWC*H( 0S-0^:J =>@+GD>1. EQ.-N Z</HZGZFC8*[ IU<F.R_>#XCQK<W\nM3$10W$@12VCO+.PH=\"+U=U:&9/P%U-?!?(G^2Y.C#)#L1I+%<+,6PTO>J1IE\nM'(Q>$]$;<?+N.)B)GP_D3S<!WWXU\"@6TX7Y/R5LC:*L)ZQ PRE\",_2$4H$7I\nM>0R[CF'W,>Q $C?J/N:*GW9@,#\\%J;)]E\"+MN #1(L0016#_\"4A2#4V/3_.0\nMJL\"Y9GK:G,%10B9*'*UY9(4Y< W;-&H =U/;3I<@E$S9^@3<DVQ5E0VC1:E[\nM>E?:OF:@%29-Z:&RTVD2\\3T.O'^%-TV0 MY\"<48;[)E6]\\P11(%V$ 4:@FRJ\nM@[)UT9ATT9@L2KHHAG^ <7RD<QY68!&S\\SDO,S#>@JM9<V54!6]TW@R4^;^N\nM&&6L(.0Z)>GD\"-[@E4\"CC.S>!;1).-W]],5_]<7\\R+#XV8 E 4+LD3MO!/;#\nMV9A4\\6&4 I[ #Y\\4\"$7&6L.*V T0JT@! 8;I\"PAG')P$EA\\;L]L3GK[FAA62\nMP%;1>&/]!2$*E,+MX[@)E$-K!ALA\"BQ/@O2F8-L*40 3S\\ $O#%A\" 7)_4-1\nM;)ZUPA(0V%\"Q14,@,['8J&N61HP6814(EKQYXE\\-=#'$4A\"U4\" R:S&-;B99\nM XQH,0\"G^X\"7*$Y<C6%0(EDTH6NF U-],3Z#Z0NAT^TPU?PB^SZ1[1/F^;9Y\nMPA;,\"@+968O^WRY *M 8G8)A4<+*>(#C@P!Y@!*.O<:Q3SAV:@7$ \"D<NX0@\nM#[#\"L=<#K0%:.'9A1 WPPK&7X/( ,1S[A&//<.P!CEW#L4-XVC<<NX9SYW#L\nME&[! #L<>YQ7K<X=>YUO_W#LEB<<#^+X@-L1$/D7QWZ%J %.>^J 1R4 ]*,<\nM>^L(QTLY]C?'3N78A1Q[E6/7V&#_)\\=^/,+QUX[V$T_[OB,[F*>=W['SVN, \nM_1V[O[>LO\"L5C)(CK);1=CNCS4)M ;MNGF B9OT_'4JSY_F(]8F=8\"QE Q!(\nM5]@ 2^$+.M)T)8PD-JLCD+UFY%84=_SK9P\"M@'FW\"MH;!-ZM3-N(8\"7W]1O_\nMVT2>$BVA1.BF>*$]-&K9N+OQ^4S'AWG$[G&Z$!D?^^:.CVG61&Q Y\\.Z-%T*\nMITCC7_B_[P'>XGPI&,M96ZBNV!$4V^A-8?&1# X&.\"_GJ>[ R=:B7(FQP5^W\nMP;U$J=?SO0%XLE#.3@WD@,[B7 /SN?J <@UL5S#/]N&XHKK-^L5</'W$@!DI\nMWD9BG.G]>F4@$ZW@;= (:A9[6W&\\#0;,K-O*AI\\+4!%038O8V-?2-=I UQ!&\nMD!N>TSCXZ8\\3P#.:1*HY!1> -+ ,??P(Y%NQ6QAAD02HAC8@>!*4(V#+R*<[\nM9(Y\"^!VU@4QUNA;ZB/X;0ERV+115WZC,+VQ2W];4%?YS!4=P!:H)\"+4A(M$4\nM8X8!#EE(K,G1833>]C*OF&T9=(NR5+0#&IU*X=4JP\\7\"<G<%,<HM!Y1\">JYV\nM0.^1#E#%?&]Y<MF.SPEVRGX0L='^/$NPHK,,X*FN0'QZ4H_^^X\"BJ40R<AIS\nM3SP_4G)Q.\\37#,BRQ+(5^BQ#TE7)4B)=O2P7.'LFU1I9B%\" +!$8^ROC\"QB[\nM+N,%&)L$=GH 'ME2D/?EV>1HJ7T?&-H1_.HM-CA)5;W7B@^N8MWQ705@ZZ(5\nMR,H:*! KC]YM@'3N(GWJ_9(YC.25/;\"!3S ]: #00@#C] '[[8^US@O!!1B(\nM\\+OE*\"&]7D^Y]&U&=BC[.]H7 W,9?20ZU7@]-3-;-'S:@.N%.<-K'KA^EC-\\\nM$N=)L6U>W %4O '5Y^PGDWMNVAO293 ME',_M7W$0.> ?[PDE>RO)3-\"X/8\"\nM 4'ZY+*6S2F@Y#)N7K(#NTWC!UR*D#4!FN,?%V[O$V6,H=OL>\\?[V]=G7#P\\\nM%VZ=^7Y^P,)A@&Q_@MM7B,[9*$KNUQTGLQ5PCS9<X'KC!6'F$-WI2*;[8]86\nM!X_B8B'O*\\%KUEE AK:R;LC/P5(.\"5:\"4Z[/*1 F);W9ZWX_WMXPS\\(W#\\<W\nMQ-N0]=ZF.^][&V0, <YF=A7=,CFX$0W*#Z\"2\"U@@!:D72DL2>A%OJ\\+[7OD/\nMLAZ <0:B -G8]MKSI_NB9QL$;C_;%921$QC+\\3L9:P+7X*2FUR?K-K?\"8+W \nM^,;6,XW4I/B614UH?#NV'NNO#>C%Q>O3B])QT X\"S0*ISI_ Q!LX29 $@SQF\nMJG_^@GP'YNJ-\"H$1DBFYD.:+;[\"&Z4)IX]C$+-H;7+\\BEQS/#KEQD@_F___D\nM!'.>\"?TJT+W]\"VB>105\\@>3__647;L0%@[LG@**O&TUB,BXZ BY2=\"N^AB%%\nMF\\%W?M5\\?3R42:$U/SJR\"YCE-8J\\'$$-8WG1#/*2CZ@$7I&9LA=(!*IPH7&Z\nM+1A1I.1T210[3+X>BCWG7XR+O1LA-%'7M0T5#@S>$H:L>,'UTZ!UD.M+T#;*\nM);FPT0AR$6*@P*(7_.^3L2\"2!*W /N0BVW!_ ]4O_!Z\"\".)(IF3MFH\\(Q!#@\nM-*F@P144(^5L!S^8Z 41I54MRO2/!)YI__W(DXW -YGFRXZYA0]:RANIWZ\\M\nM9]QY+8T[/ G\"/_K-4.Q_^T[ IR\"=EJ)WW*^7LC3)!?J@^2CH_2'0ZG]@7W)6\nMK3\\X?H,D#]\"AJ3VX6?T#SJE[UYC/4VO=L]TC$^:S&G9?5Z%>#8\"7:0 LG*>8\nM_CR^TH)UD%!M15E&XK@RDH<X]D['+N+8%X0D'W'LJ;Z=Q+$/8>TJ4@G9]51$\nMV:FN]\\ EKN78-0G\" <([=I<\"CH]W[.8>_ #G'3N29Z=W[+\"^W=ZQ:[OV>R\\%\nMZ (X0#AEN(/%?[-\"GHZ,\\MNL=\"R5L&@.( Z3.&@\"5CD0CN0KU'(:Q\\[BV#\\<\nM>XMCIW#L+E@23+!]/D? .J^TI](,\\4T.ECJ6I1D,NAT09BJ%\\@3Y6,KX#D<,\nMF'-4E8W9B.W/7P!@^=#UXQ-5HLTW.;2\"I2F;_LIM2G-_1^/ZCFX2[;/.(3V=\nMXSQF2O?;'G!(T>L7< <[@F&[WV^FO)>BX2# <G]Z6^[O>%9HK@28&&A77T2[\nM;A+H$4\"S9J73@#@\"CY!ES5A8J)D'ZRN31P_'6^$$PFH!W3&<:7OKB?SK)G![\nM>VX;A]K<X5K/,J[L>X-_71#GY5.D<0D*O*-U2(#3:2@6\".GRGPI/DT*(#&86\nM5<73*XM#*(M6D,-#FPUPP/(6U*A%(@EL.$K;)6BCI\"\\I8)NY[6HQY,V21MPT\nMIJG4W]S9WYR E^!9P.'0R%6(P7B:^+]@ V/I'CY [HGT&:01$-(!%\"9?GP+&\nM\"$\\>[D4H8$]-QCA*S4P%N%-!K\\#]?]5LA%H [V))V260_4P2#6^4[MO;=^()\nMHY$L?ISD^A:0IR6D5BM.8[=#]2U.(XW8[@\"/'C4:V%\\\"M]]FO-_$VW] O@6(\nM=^AWH.\\ [!3A>T$2AQ55$T8\\$<KGVX]<9(%D1Y/V:.9'#[_?1Q!4NG%AO.Q'\nMR3DS41CXD)*WZ5LE>KS^HYM/3)B\\BL RF@]-0\"&8IESW 9YCH08PEL3/\".+?\nMP-D5.)..#5290+/5W-4N\\+D&S>9 ^N<Y@#,'=*M>UT!QT=>%8*XD;HJ9:'J]\nMA&>.)F!OA0%#81Z3<!\"EU>KDY(6.MJZ\"RM:7%4]T-'85('$D)<YZTJ.9JSQN\nMD+<*(\\FD'!!]T7_'ND'>+GTD@X8]=WA4-03?)B1%+[^?@@&ZTBN^Y?IH3QFV\nM@\"&GNQ()B?>; 9H]IT&]#UJRFZ )[B#H!::P.[Y&P\\8UNP.8/AKOQ/3M!71)\nMIEW@G[MIS1D+.$GUH55WR!OC=/O;':K5J+D_@<YA41'16T1;8?:;7:Y9?0%I\nM8NF-JQ!'-+?FT8-YW&U25ZDY>H$;25WEM@.@WK@MK #VY @4B8NW\"<\\6$5(=\nME<$;\"ZGVP>Z!WO<&A/N=)J7_'GV<D%P#,1O[1S#[%3/Q9:9E&7*_M@?[\"&H!\nM L8D[_4#<2O@LKL\\(&:E>6!=;6MF45!5LTP#S:HO:/;ZI_=FIVCZBX_W%/$A\nM%;G_N^P,9!4R!<D[@<@1RNWVB=LMR\\+\"OD>:B8)9#C!VK &:68EQWXL]U'ZM\nM\\N)#HO-H7[QC5+*OQF\\!3_@BA6TB[3H_/)Z.03::_\\$L390GBQ)Z%)Q.#R,.\nM.OC_@KY<0%\\B_J@E1R\"/V#^]CLLWCA7E>\\P 6N1=#6B1INO%;<GT#R :[M> \nM%)F4F)G/,ZG\"%4_$E273@7\\E)^3K6@@M>A*@N4,T0\"7LFH'M&TLATJ*)A3X7\nMJ#F_ 8^I^KBDT?VG-^YO*;(T@*78K6'=/@GS)TK20R:Z T^SJ= DBG(HA&,0\nM<[OY.IT[M&)GWN5:+O@4[OC&(K)RJ^G[_LN*#I457&/P&]<TI&N$*8CUBQVG\nM*P&U<0&G@1H%[,1^] #.9@TX8@4&MUOD 2=OP?!>;P(O&1F+'A D?+TZ.Z]@\nM32]HFC\"8X)8&=X&9!/F%D@@SU78?'$WOX-:Z,QZ&!LHA3>I1!!!.$&[=$')_\nM(XX4EZ.-7 :_,614BB10 AH%1G.^![AZW;'+.G8WQQYQH(\"%;L=>X/@$Q[[@\nMV!=$.SZ$XC :NFO\"*#9[(<:]ZC3 9-=NZ=AE7/NG;Y]Q[(B.G<:Q*X,I7@.F\nM^, \"R_G O5_MW*$=^XACMW:UNQYPO8ACOT[@^!+'#N3851R[@6-?#6#N=7U-\nM^<B>O=6Q[Q=PO*MC]W26NSCVV000DIPO[6IV/(BK21#77N38&R&\" 6(Y]LL$\nM4!)MTL#U5X[]Q[%=*XYSWW+L,HYR+L<^YMF]''N>M_S+L3.X=C!?MH9C>.K(\nMCNG9PUS[E',O<^U+CN0%*C)J#I;AZ8*M!4IQ'7N#P\"2BQWS\\\",=V-0 1>S[Q\nM40@JM#6&[ (?)ONP5@+A:(&\"0$1W/J\"PT'1'\\'RJ1RN_'^446AJ5\\_PJ^L/_\nM!Q-'0,F\\. !H2;$$VUCV?2.JR5 &PB9+0]3\\J2WSU9SY\\:((^#;.2_8VPMI#\nMR+W[\\E$I;O!*(ERS(84NC$#]Q.JJ8M5L)P3K )89#\\NB6C,%:+/;2)$'!F\".\nMIQAHE-\\6S9*\\YAWGG$'3_(\\YQC((<[AH,3=6>K$UE96;C>6ON74 0M1,I E8\nM>9$3#@BS;>.+3^'+N$8H<S5M= 0NQB%@8XH\"ES5N0 \\\",!?PXXD(HU:M'!S%\nM*T!=_5@4F12]=Y/8\"F\"*N\"_8\\C\\H!5O@R)S^3()]87M?<#+1VX<\"!NY0LTT!\nM1%\"Z01/;B93]T/[__5;@-N'IY7A.43,6;UI$*#S@GPK;> B VYF@+9QZQ.UB\nM\"/#X@+GM&M?7]O']B;X8M%H6)D3FB$[7@<#5+:W*PQ3;B,FC,-&%)A\"\"V:C0\nM/3Z&\"@T8RM1J,#.L>V1CH!I).8S\"6] *NH<3PFF3Y%^P\\<3,4A !V5Q *D1 \nM3'50LX7GX+/ 4\"2T@=HBS@QGLUJE\\BEKU_PC:YGOHDX)V=C8 ;AF1=&*-L 3\nMM\\E=1>^@-F_T&\"?X?)C]/:K]0/7>51QD+_B!&AW\"K@FN6\"9!:N;$-;=!OF;3\nM [I9(^'>W**B;:;I\";-Y,J\"XZP %%:G40#3U/C&\"BCG'X]KX1;NVH,?V4RVH\nMC:?(N8(86T4?+&'=\\)_*8+#@*$_4S %;<@0XY_C[_G3H =XYGC: (]JU@WJ>\nM>X!K_W9-\\KM^PK4F#/!-9S@>P;W^^E[ MW(,H+^_-<MG&,$3,K.ZUCSOI'$'\nM8=EOS2\\R/<#*H-CJ]^<GT37!%RBR[S%;]T7PD\\+N^/4+>T(.<#!B5DB=S^+H\nMOI#LH[EM- :%9QL@?:+#\\?352B9;H_%Q'3').N</A(\\>[4V>@S T)Z!M%\\8=\nMV$3BC(N EC-R\"1Y#]A(L^ZAN4H%)YC:*/3VD(#,J,L^W%*\\^M/CZ/0V35LF@\nM9((?<TV_N$8PD'Z\\94>!=&:Z-Q!>XGH+6=[9@_;U#H[EI+B!8QW XVEG,<( \nMG/^.L)E-#$BK!U0\"K1E(Q \"$UT*Y[6@ZV]4'># XFM\\8;58!Q:[9[H JT(5L\nMX1T-A!BZ!!I(0M+#D\"9ME!/P/ET 96/C%.#HC]Q&K\\<DN60(R=4LFC>()&HX\nMV>M1$SW7^T]P:7-)_.T_PV _I*A\\'F($7B\"?XXEBA5\"\"_+M!3/!?V8EA1FQS\nM2<4&S80B-)4J$16XT52<KPP;EER L8UIF0PVM*)GK\\\\2;N$@<JJ)+L-28FL1\nMW/DYMBJ)L+=$Q(2DY(!]$#M=$E\"#O)/!O*+?!#5*?L( *@Z%D F*:4T^M+\\/\nM#E;1!_<ZN11/&E%K&)VY!_Z7?-T(6B03*4B.LH ?T:J@19S=*FIU//8!)J#K\nM'[ =SL_8UW>0/$BA\"9Y\"[RY >:! /FL\\2<P\\N4(,!W6\"\")3F\"XS-^92:)SC3\nM&IP9%1;A3*=P9I^R%F<ZC+$!R1=(#Z.J!D-EKE\"V$FY_??\"\"H9@CD<P$,-7C\nM_LA]S3TM%P$T72/0)@#-]1D;#TH3T(KV:\"7%PW!<U[Q'W-<\"5Y!QMY=-Q=KB\nM8LULWFD)1 P5=SU^QE96]/ 7.[6_/J%)P#Q=TF5HE#$PC[Z^97O=W44+&HHV\nM9Z6+<6%R/N0K)HBY)4P [89,W\\<^$)F(T^,'&IH'2T 8;T'ZX\"WTB<16P -8\nM'J4B'.Z U8==M/K+BJ.GGVLP-,N5N88^\\_W\\4I+-V$Q()\\J K85QD%XYP4.C\nM'-511-.GHCVT\"WBT\"WA2\"3S1T()'JXBF!04&F:[O;2)=(?N.#5H$4TP8VMU\"\nMXF(VZ+']0.:\\. =X>%F.>'MO(NDW/@JE>/GKI0#4Y2\\^\\\"?[+6<\"YN%A=%_D\nM,PP2OC[#<2ECK_QMYCSHEZ(-\\6VHA K$;OFQ[)WJ^YCZ-YRWB,RCFT\\L5/R@\nM^*[;SWAYQF[/>_L$^:*:2!PT +;8PO'!\"C:1CE&8=5RK=L;2I3BV+QH94U9@\nM$BD*)G9T+78H/,9Q@K:E=C_XAZ3]TOY1K CIIHCGHN+1VP%X#2Y,?@M*9A#C\nMA>M<$9@=HAGW:NI><Z=>R$<56Y.0_/)LC+_]OC3@+\"5<=QS*'8F(0\"O06EMH\nM#<_%\"6J$23;_>N(KDS?V*@[C'MJZBC69(7CHT* YG<+_\"P^G^_H)/9WE[Y!@\nM%,O@ QG43&7!US0*<[H+EA7&<JFUYD)/JT\\BLNH2I\"^1L/T3MZ)5/U!-D.U8\nMN,>Y0J4[$+U?9<]EV,_#_EO+?,;R/I8?MLQI+ ]D>6G+W&5HFRM'ZYT@OS=G\nM7D-[(=IC=+\"L,:(R+%$-$$^P+%X;80W%+%ZU ;F6U\"S#+3/8#@#2SLD ++(N\nM ^.>!S )35+835^M2<U7S\"62]S(.!\"\"[9C[D]\"!RP(JD-6<BIX,Z(%<]/:AY\nMW)P:_=/]5DS;-<=T8&#X 8S(+PZ0PPHJWBX60_RK>/1=?@\"5QE#R3G\"LRP-T\nM:[[F<P\\XM@;F]<><P&+3V=&>7;WD?3 AUIE=V1.HF87&5C)3L#4@^CS8\\\"ZP\nMO44\\J1EG Q(OVACL=Y5LXY41;,,BL?<8)@ 2#F!;6R\\0'@+B4\"!#C@< ,I@1\nM#/%4,^$&@\\@^SS5#4I;1\"T]\\U;+T?A2%01 ^6KI*P YSJP0R>*[9EK;RB/>9\nMFH,IJP]EIZF9F;(\"4390G)^RU'ZJ\\L11BW?ZX0&ZBJQBQ:\\'$(+ /A]U7*X[\nMAD25M;TF@K59,[6[KB\"9$KRFUVS2@6C2)9J;7S.Q9HI>F5Q!H$9QEFD3C^]F\nMM,';&9J8O0%E@X>43<9H83^0#?GIV=.7T OG4!-D\\Z0OZK@KL7-'GS+?O[KH\nMJNDU0SFRIX_G2'3P!!P#_0UYHDI$T28I4M3%PT:1GK+JY,H'E!!LCVB+GTD\\\nMZ\"SQI)=X1\"4D[2:HA&BZ3F[?<3TK72'R?Y$GR2: 5/@&GO<_:YJ$:*AF\\ I\"\nM6\\T5^_H:*IX6(^#@K18X&2 #A' RT-!X J '9E?A CAH$I8EF%P+34[IN;\",\nM]G2Q-XH*W-W*+O#?\"*%/PJSMF#U\"QE/^H:KX:$R:O(/?/M$%_@3 'N@%N^PD\nMR0B!3H]L[]'RG:!!\\,T0T7J&,$I'>9P)+M+ MFUM.*?VQU&&4 M(2Y*X8>W^\nMA)0 7BV_-4*3E5\\/[6JJ2<W&SDUIU)'8#N@K=KYIQ-IFVTS+U3OZ(1$EV$2&\nMPQ*--F* (OMB0W6_V%+= U8>H(9P>&5[^MP!?HV;4)+ZJ;!D/1BVUYINTI:]\nM7$V7 ]!6D %6U5(XBDG>,@*31&ZU$B62= 0>@]F9TPS +3<LC3+ E_FI+\\/7\nM:;=SOF.;1N7P7-O/Y5859),AUI9X:INF<8/2!\\!2 DCAN)!2?%>BKRA%+I2@\nME*/W&:#.:#42K(0@;'TC,<+^)R8E-XA6(X%B39 F7'\\$\"<&2O:,$SU=].\\#\\\nMI\":?2\"U3- 70P*7'N5 )5D2W ]NMKN^DM=9E$S4T6 FSAZGE\"R2!;*/H:C,>\nM0+AL#6\\D8+=;3>_6WP^$XA.*M\"%;/R!M-.X'(0P@2!C+>@B7:5<-<;%5B064\nM*O:='50.M*[%*YC+L&$I3G\":-8UV\\.-H\"1J:N<\\@RGC*\"7.I_14MXP=WJ15J\nM#HG:C>:T:_\\ONQ:+2N\"(($Y_(72Z?G[<]$TN)G#OC(,/0J%.M--.=-';Q-=;\nM.7%%6/\\CN],]8B<W.-4A^F3DKL_WYWM#Q1A?I+NQAE\\0Q%CZ:F_V$;UO 9@Z\nM?@\"\"SS=(@2+.B3M\";3^R4'</-(=-^F^II\"BC6(2BO@1) \\L-N<M='^<J/N+1\nMBTJ\"_ +W(P0.W<$.1;[I'$ZJ<YQ9X%@'/W0*G<,)&GL>P*G+-;=RUP[9/7YK\nMWMZ:O8=2)I5Q;^9OMW>[LWN(EDG<7@_-\"VJ^*. E*3\\.94YZX;&27-F>H%N*\nM=O?LF)U!+[_WP6)JH%D4]$(?O2P*K$=9OV4/^G!*Q$;_,3'CD&+#MV4P1U*1\nM]:*J,P6.AB_.B2]7QY=YOQ<\"!\\ZC/#-Z&OR#&T^CR,&QF[!? FVH1W@!\"\"_:\nMYOADX@I[- RN5G66Z&+>CH4Q*)_/J(+3'XXA/3X>7GN^0?Q5WGW)LLA.G 6&\nM_2(+!F\".+\"W@U)9]P8\"*:@7<(*<- 9D>N/X ,E4:K@]E.'K? *@&4Z\";*0FU\nM/5UVZ!46EX*0;K_E@85L@C[#]((! $V#2!H'DC1))VE(NEJ,QB0',UJ\";I:O\nM\"P2?!H1/[L\"'5WS R>/9/^-=C@JH]$264.DB,+*RQ, 2FZ<)\"#[)CW-I!*XE\nMJA7DO)Z\"'R=H$B=!NA7J[F=L 6X:P?P(?B@^SH;B# V8P)0V7VSLLT=00G$#\nMLDE#,'JO!#Z$,O@0;F#-%7O .G?ZKWT#*V6(=&*&.P,X\\SU@K /]+@#(@I!,\nMV@&<&X$9Q&2I1X&:R5M09-:[6_CQXMV-8.6RM:$[ 73Z _H4+Z#3%1F@TP/0\nM,1=,;2 W/&^5Z*VTK)N\\*X?W'11LTH!M<<TN_*V+#J^+A*-9K9 &#(L2N8*>\nM!],#G?'Z@0*1<!89E @\"QZ0@R@2^VL?X!BX\\OR#\\\"\"160]TFC.OO*(!GT'$9\nMKK_B[!Z<R3W.(W'V#\\Y$JK\\^1S_3!$Y!.,@;F#X\\(.XYZ,,K<KZ!/GPAVL)&\nMV]'(%R6CRS47S0C@R-2D[9_G ,$;4 +0E:RXZ.M\"0'>U)!1V+* O^ Q?+^&9\nM29P2B:S[@,ND 9D&+4B'-,Q<P2.D%@!:<UX,HTHQ\\KBD7W]B>P5#YW(:.R7Z\nMM(W'R@6:C&6KM#76.Q,L0+P>J4=K9;!S7,$1]O>C.(<-*0-H=*6Z*ZB$([Q;\nM@'B#<W<P&F]%Z6[MU3E\\##:-0D63WI\"TE?V$LOT*,R.G(6J.%+&M*P-$X!T0\nM)/0\"CZ[ %%C=+,\"\"4S0R9;3))M)25Q9$5LA^]L /J<MDJO_YW*4H&&F@!EB0\nM3 ,E-3F1= ;?U0 ,V_-F.!>0^171<T/+7%G,$^8G,7-FS'3J#*:C4FAHSS\"]\nM,R\"[TQ75WDR</W-VJ\"O7M\\!&DT7KS_ IV]6F#\\81V71)#=DTS0T9W5T#^((O\nM/M9[9VBR$CO(&P<XYSC?OD5B?>=X0^!__!=DH+_50''9R!\"[XP@6,E)Z]&7]\nM_=$:1DE[H8+*G_5ED.5H7VFOU)\\&[?^T5<T.9TEVNA^M-&52K;E/TC[*KJ\\T\nMT[^:1:W3YPR8:,EF0*7L+@.&5GIQY?&>./I/X$4?Q7QZDP'B:%AYX']K+ \"Q\nM_-</Q)45;G)#5KQQH_<Z;.M;^0J^>+^6XT!&92M9P<*BMM$(*X]&>A>:?[24\nM&LH4GQ&<\\U]0P01(0)>[ ?0IPZ>!;C!\\9-,-A@^O=8/AP^O=8/CXB3:P%&-T\nMYIDW2($.O8$-!&.$S=>7,\"?R0,LR)W69([#I,8Y+:VYS[.L7I&2RLX24##8H\nM@(1Y\\P@]:3?'[A7#\\6^._7L&\\0$=N[^/Z0.._2^%XQ,<N\\ ,S0<X]CS/ON#8\nMIP(X_L&Q.\\D>8(1C__+L$N*=1Z8-P)8Z_DZDI::.#WCJVRM<.Z!GPT,-ZZD%\nMCE_V; :YXVE\\^V<&RUMX=JL4GL?Q[6N^/=JSN;'C=3R[Y0?'2P=P;U?[M&N/\nMA+CMF+YV2=\\.Y-]'W  #!/&W#[=PO(ACS^_@>%+7;N/:53R[9 G'KSIV:?/>\nMZMC-7;NKH[WF@?^?;.50GJ(#=ONSP[KVH1&>A_+OV04L'^/99SQ[E'UG6.%X\nM*=?>[L^NX]J)3WA^RK7W.'8J1SN:N]CQD]YB5]M;%(3N;<=Q[\"7F7<BQDSIV\nM(L>.;=^+''N%=<=R[)D?/'_EV!4=Y=?.]N,;!USS(%>V=0^XZ]BW//N';^<R\nMM!=YD_-[]M8(EN]R[.>^X%Z.'=>W?SEV!?\\.YMSU?>4 _AWM@N7#_$%DV@#%\nM'/N,<R_S[6;.\\H,!.*(%PQ3670,N%*CKX#^P(L'A!.$6Y&@06<#\\X$>$RA'.\nM38#08T%GH\\'-$#=#+I^X0]$.ASX<_U P1) 1>4>\\*A&^1,03/5*<3=%H1>P5\nMT5I8:0N^V!!C98P<,X;..%(C:8TC-W[>F)&C9(X'.^[MR+[C5H_(/<K\\J/E#\nM'Q8+<CA(D\"'YAJ0>4J7(OB*=B^0X\\NS(UR/KC\\1)$B_)VB3?DSQ9<FO)QB5W\nMESQ?$J+)FB:QFL1KLK+)UR:+F\\QN4KU)_\"8%GE1XTN%)\",'.&)LEQ JV%R2D\nMD6X0#9UYIO 5%V7M,Z7GANCP?OS%PGLB/\" A;D'\\X/G_>[#OMX\"RWSM_NM2K\nMF3P  W?LT<>[7/R+21%_2 RY:C+A*(3(!Q[[_T3%-6?7<\"?_JL5J;6S67V0J\nM@=!R@\"E\"QP=$$>:!A6!9DS80&4QF'61\"<P3-%(BC(K9Z![! T,7.\\2GG5/30\nMHO$RT7B[:/Q.-&[P0#29*!I7$8WY)='F\"6*AX; RG\"TLACWB' PZ4:.= \"J_\nMWN9@/H,YW1!4^95O H#<Y. ^(;-1M#\"_7L#/L)=\">3RJF(DJNRB(K /Z('W4\nM>\\F9,/F$$Q]@)I*_8K(;\\2]6GLE/1\\</Q/FC!)S-V&B4'T5P,CQYWQ%Q_R 3\nM?(0FK 'M]BEO%^!M9S1T-CR\"&4=D41*8MR?V8O$B8AO4)-=C'!3B'&+CHP&)\nMJ1T#'49J/=#HHF_4Z-#!^Q_R'9?V_LBB/BJDJX_J@?W0,$/D2\\+8&T+\\VT'/\nM912'$ 8P!!\"WS*#H'91LG2J@6$L/*-9S,?L!-%+I%T3BK.8!%&MP \\6*OT\"Q\nM(EKFOXKYLV)^WH \\[=Z /-=YH%C1(RC6A F*U40Q'YJP90%SX7/-^E%!L5;)\nMYMZ6><D Q7JK*\"ZNF\"=)YTKLYN34YKO4OH$$Q\\JZR;$27]@2T+%J>.?ZCLQ!\nM(-;_IA7$-*<YH)DN\\12W5C2/$!8W+K E?P3'+G*!GFNDO2K 0+*^C_.9XCR2\nMQ;0H\\U%0)RTU_19F;!I_-.U\\Z[:HO/\\L/UB E.V\"[?FR+1,\\ZYSGM3R?8\"JG\nM2V!)7*R OIWO423;?D69\\R#:DC:\\>9'H7%R?T];F[3BL5@_HZB)9*1#E#=<[\nML*I8>_ OS?L_G>LMM(YA:05I420(YUNP!Z;O)WM?F.,0%R-;83Y$\"\\:TVYM$\nM_.BXVLO<PJZVEX!['ZYV[ R<G8 S?5U@>L<$$@^N;':RZ^H@QHZ$S)-0_R@,\nMH/,<+VH@7IIW@<-HHG^J=T:B6V[A6/1; 2J9P6@)EAODN?V4%O<I$-X*DO7X\nM84F#;L9.R9AV-'/^9^R0C,7*B^,K SIG)U9-6QJG01G3G*AI3^K\\+Q^JWK\"8\nMWQ6Q:$],(/>:,V0:5[#9-'K^^ZS7F(\"9UKR<@*@Q*:/G]--LQ(^1K_J\\D?]O\nMJR)0SBI&\\X4%:&#JF:E?I&D\\90$:@*M!1W5 9 =TTFG\"]=6*=__ G4Q:@&]X\nM/5W>PEQ.8]AEC*_T0-\\>J6_.0$M,U$0L!KJ.W!^Y4] 55+2[%R 6HX:H_--[\nM]I=E%-3R*F3ZY0A.'2-UL+&R@7@I&XA]@FR\\GPZ:\"SJ$MO&_!GQX3T]&'HI<\nM_]^0IY4BN!SJW31GU29S'M5+)Q0QO@Q.T9*K:F77PZ\"J<4[2/]#T&91&W2W\\\nMHG0RC\"LVL&)458^=@S>( 18(4A73GA[[ <Y\"+::/Y\\\\8F&SSAHF=JA:W 0QL\nM]RR[+#EX?\\NGWT:)_<X+;.%T6SR-;5%M##N.UG&9)@<>8>!\"=AS(3F/T*0UL\nM52.0T5;T*RC\\F&UZM4#1*'\"UC \\ I:@&\")M[/-,$5;2I:<Z(WA1CJQ(+,A;P\nMLE[L1'GM@8.W%C@UJH>Z1S5:8K'[:E&D8-*)_7I.;!44YU/ZP8]*X(Q_L7R/\nM!W./!3B_M)<]TQZAG)%JD'9G(D74PVX7E/\">A\"<EO&B/5ZS&\",,#P(\"D:<V]\nM#R@<'7Z@65%K)@\\ X^#IC_N;X#S]9P.W#^3\"!EP?8UT_W>]SR?2=^QUS7\\3M\nM+AK\"K?N\"6T?NS2<U4'!'^8[@A@E,LNX$V2*R)B#@TQ_HF[@M$%G=%IRK<5^:\nMZ\\S8@M?/+]D1O&Q[%,CQ^,JFTU?GYSFHPK'GE?-#%=I%*?,\"S#3,]120:1O5\nML#A,6VJFN>SY$0Q99@C#TQ_FYWED ZUA1: NV8\"?%@'/#[AEOR\"YZ<,$!^Q\"\nM8QT6\"[4@9L?!(J%1=S__] 4+2$V>( 6XI[^HG[%\" 75PA5!<(=2=_;&^^#VG\nM;TZ@;5I%UMCR3<9Z<54\"J[N\"TBWJH]-EL%F497GBIRK$HGJV[JO;PC*95^9;\nM^EX],S8*RFC3]ROZ&_E)6^74[ Z:;=+=4O.8DG_2Y!>=,<%6OZ0=+=BQ&;)#\nM#!\"!F?^6^.P,AMW!L(T\\$_@-NP7K19L$_$?UK[N@2_R01SU]2 )CIGZ.[ELM\nMPH9MM0)?$^P[@6$W,%KN5Y+;4T;_UQXXJ0L<O_'M K[5T?>0T7^U1[VD4S%/\nM\\(=%HV5QZ3J#'W?*]T!^ <N5Z7D#R #-FU)6!8'KKF188ZSU);,L>*]D*K5]\nMMCXDT@R0\"*2Z'+B_)<(S^,3]N3:5.G=-$!A$;R/Q^;X:#S*V9\\F:E).UD3YI\nM)%:PI+G<]&?]B=-PQ)$CQ*'AIB<B3M(11T'E+_V50]--[]$?K\"PY@.D1CQ@B\nMS-D%,#+Q[I\\!=\"YNR:?3B1Y08UP-#.\"1Z06CS!W50H<3R/+'!+E&]BC+MLB\"\nMW*74F:I9B[EUZ\"T+K(/8>W5T>+-8^O4(DND A 2E?(%ZAZ(J[B@S,%A1S:= \nMA3O67+\\!J&BM9E^7EBR:$0?I!QB%U(-X:X.FU%(G\\O[VH38V#/=?SAH]<WK3\nMBUI-\\D;]GOA]@(?>4_2B<Q3?=X.9**PJQ:.?SSDH_CHPVCTM!B5NA4Z0D=SB\nM)*HQ\"D$&A\"3SN!%0\\;8#+O^']G>\\([7O^W!Q/J)?1+2%.JU@:XJP*BN\"H0$$\nMLIVE:@? K4BAT.K0Y0'9UJG$<\\OI:1T\\' %NHFO:ZS+>RG:M;>LRYXRORRZE\nMR^I^?B*AI0Q$5N]HWD^HN:1JX^$LB_%M@*71PXFU)SXOBL]>Q,H&0PAO:Z(?\nM<IO(4R[JS <Q?8$')#F1:C&T/.)?!S1I*=?$2'G!X=OS&/]!427Y:=%\\9]FU\nM9LVO\"AY79UG*^5X:R0J\"3',7F$C?D%T;LDMY@WF9=X\"+'\\&I/-&X30XOT$QK\nM8Z/MF7S\"=/.V!,)H6Q#K^_BPZ)$']-)!H!WH8-!@3@@UD&!U<&\\!!FJZ969S\nM-!/AJYK?.ZA)?*7]Q'8JR_F!:\\Y\"X/LM<EF;)-Z9'Z#_'V9C)R[Q*#ZQ6QM5\nMP;(C,8# BAI5^)_\"V=(3H@FN*F8KP0=/JP,5JBC-?[TK[#>1K3JH.0*N]7]M\nM4P\\>,R2;I6+6>!^H'&EZ4K#I)K\":Q/R[F'8$]3NIIPAV&;?II4W39Z;1,@H<\nMF0V;IOR Q8&/_8#%\\07FI#@6][7BX['3RIZ\"1?44$M13B]:,$,)3-*BG>)VG\nM'**\">N[M*=@3T_2]IT\"[P*9)0G@*O'@\"3T'?5/\"4\\!AA]\\ (BF9[0/3 -'L0\nM=.BH+,&!?T*]@B@!,&YT  (LNA<=??%E?[^W47*(O;EG%V\"Q'3UQ.^DO)J1<\nME5= >W8L+\\\\)J2ME?P*,40NS)[[$+-E.E,(T/V)LS0JAF<K5C87V!@LJP8P]\nM-OZKQ$@[UIY; 47R#[GN!+#5\"S;W@LT-8#.[.5$U(2 _JJ:99M-,LVFFW333\nM;III.,TTG&9:3C,MIYFFTTS343*M&(!>S@@6;=H/,9M>,5LV=Y2MD+))1]D*\nM*9N41$U*>B8I/9.4GDE+SZ2E9Q)3TJJ)FL24M&K*)CEEJZ=LDE.V>LHF05&3\nMH)Y)4<^DJ&>2U#-)ZIDD1BHN3IHF)DU60W5'L(&Q9_K:,WGMF2LFG.V9(Y) \nM[9MV5_@*CYQT5_@*+YN4EZWTLDEYV4HOFS0X@)HZMF=NRBK2U% DJF<2U3.I\nMZIE4]4RR>B99/0CWM\\L\">-P8DUU>[4Z_\\:%D=0=;PU]_X7QY@Q12<A#<77)?\nMZ0%?SX9W?Y\"T^+_A;C6;ZNA,5Q-EJBE/?A'MF'*,HY48IXP] E4UD[X%J@>_\nM.%OA\\*L6&0MSF+ZX+@:37/-W,7!*'%-KLR*\"UU9%K*B(Y<BOST\"U+_X^T!L/\nMZ(P#Z-M_RXYHV8WFM O^KKC,YD5R_MD9!^ML&H'+.^I5=*P9:F::=Q6.@#1I\nM*YGD=A;-2FBG,_'NRV#BJ;Z)9[\"I8[S:RPUHB]\")\\FE:-,CYUD7WS E[,TR>\nM\\]#Q=:V%TR#\":9!UC3W3'([>GZBGO$&KC(]K=DU!5NECE3H?\"6@ZBN\"2 31=\nM;(ZQ:TXB O\\(YS':_A2V$E'8O/@Z<)H%.,W\"%_BMF6$T=F-=N@#!C:.[MX+M\nM+\"9XK/M,W5075^#-1)R!LY?&!FB:WWDJU:B+6HQ:X<&Z6[R\\OE(>QE-+06LM\nM:+GF9V91\"\\^88E$[?\\WCILU[K@JH53,\\<,@ X+JS KB> :<M5P#GZQDXF0Z0\nM9-^O+LEL C,E<T+'TT6!M_X4R!>D_:-8-/8:FIJ7 NIT)<Q'!%6C 3NMYS7#\nM^-FF%N=%QA#A4XBFM1%-'%]7 NBSEFW1U/%T7_!,1?N(%ET5+7+?%8*FG%[;\nMR75:X6&S,SOS\"A0T(;6\" YHXKN<%-(<$-!IY@Y8CR[9E_HEE4_6TN'KBN+@2\nMRXR+ 4(PSN823*#X/4M4A1;:6?.+LD0?T!.N7[-7!A]=]W%M)X U#CD2X,\" \nM[Q>@^0+'3I;!\\0>.?:.%XQ,<>X5C2VG9S\"V4C'3[ ,]#=[#\\@^,!&J;P?(QC\nM%W;L-HZ=2]<]6#M>VA4&Z./8FSS[CV.W<>Q CEW L0<Y=GV?,4 AQS[NV(<<\nMNY6KG<BQ\"WKV(L>^!H8>H)%C]W#L1XZ-PW4\\DF./=NQ)COW6L2LY=DW'ON38\nM0QR< 3*YROM66![6D856>^_8N0\\X/LFQ>V_PUUB.G<:77<N1?='!'.\"^8]=?\nMX7A^Q_YZPN?8T1[FR%[@:\"$>H+UW1W/L]PK/@N$H\"BP&W5 'GK+\\?Y+M$'Z#\nM'QV VDH/LAS!M7UPIS<3.#<F]%B-9(/C7@=<<+KPWS;.,\\!-4?N-B\\RP^X6'\nM?3JI_E^#\\W=06^Y1+5G-?CP< TG7]3>-I#;-\\>G(]0/\\VX#L_R9(WF\" 1O==\nM#<(1(.LJ5#+\"V'OP<7G>BZ8[@Q5-XWN)6M3_P*+Z:N-AC=+3**5G5V!W1Q '\nM@($JNW5+I8OR'U@0\"MR(UD\\;-_ H&\\$:^L#6TM7VH@:/+NK5:_9AS]%%+>'C\nM<QI95L U;M#H>@$EL2-9^H./.W\"%VPO3]-#:0:\\-H==8\\_8RE>1#Y='[ZS(W\nM0&(U\\0WMX;&0)+UC#F5#D_)^*I*!)NH57- $XPS6VD&&$=;B16CC'<_\\@#,O\nM6+=%-TV@FR98M\\,S;>\"9DC$W6$T]?N\"T^/H?$MJ^910S^AA#8U)[B5+@!K\"I\nMH,?@CV!^(2X%0@FLR=B<GSI-SJ 64(]1Q:'M6AQLG,$B31\\ (%K$^3^-AVAF\nM\\KH\"3)]![OZ>Z4G/W%Z1QG<^@8+@?49AC#]1?66R;C75S6I_(GJ8@#1)39KS\nM8Y[\"AS1 W1Z@2HCDYOUICE-9VKSF]MII<D!3S^-[IEHAT0\\RJGZ9W8V]P?VG\nM1_KO\\H5+_P^0LGQ] V;:?\\#U\\7'][T7-2H&UH)D$\\))[+/(F(C:)SVDWZ\"NQ\nMG.8 L?6*-:G/&G\\XX#,=2@5('36]HV**K2;M 5[1\"0\"AY4#:+?]T+36P(^\"<\nMGNGQHTK,-3%1%\"\"0/=_XJ<NUWV@E6O#B\"PZSZB] #*7*HO/&O_BK\"!RJR,:O\nM4E$WR!B>2#,>911P S/;ESR8]?!D1_X8I4U7!-+48X_@*(*VW2X[A)IAWI/ \nM:O'U(,)Q ^'PZ,*SK,\\2\\&U<QM(0Z;#DTC>O.5$Z)[<THFU8<.&+UUPLG(-;\nMVFEH2^^/L@4?IYL0\">(ZS(#IE0< FW_PQQGLX]SV]P;[[7/NZSMXXPJ\\<6S>\nM:]?LL(\"W8M/:;9@%J8 H>&KI6Q/9I7-J9B$9A,-#\"U^Z9BWA'-K2CF-I2 +I\nM\\,S2=ZZ93SIGMC120#@\\LO\"5H7;A'-G2[F)I?B(=>&+I&]?<+)T32W>8Z7\\#\nMD!MX8.8+U^S/G -3H%_Q>$[4QK#CD/';&POHO.#WK1FD 7CE-1;0<86O6[.2\nM<(YK+/2(=.!II6];<YIT3CM]UO]K_SMXJ/X_CMN(F.AJ>IH>D\\IA^@Z0D52S\nMX0\"SK/@U.PXPRTJIV%A2L@S#FK *,JZX0/P?@K29P#+% FK+1BP3?9L-0KK_\nM-U!0607(1@JU(A\"_DH5PN4+O'A!IMJ&VFT-^,?**\\P!!(Q%:80VVK\\<@:%O.\nMV\"$96Q*5,+T-91J\\)H)A#/] ^)KUP R\"#LR7!<NZKH4T.XQA=P%^(:;X/Z:0\nM?+\":;@^CYHUZ8\" M=5%,>28N_X>_M4S0SM2GR17,#;N0-,FP^QAVH%&(G>B5\nM+9LBY_2Y&ZX/P0TS[$:^9=@-B)/2XE9F?N86_(PX5G#'%I@ID':B^1TH.2!4\nMD6,G-$ER[((4H;RF^T$5*[I(65^DY(9*W-H#7F$V3S'EGT62\\T/<\\?==N!@:\nMSS)[X^#&=S%M<TV:ZD77)UTOJA73[Y.M5MS^2B,<T]@SGC_4]1 -7%NPR.4R\nMAITF&BZM]A\\<44/.@\"WTS)D?VPDLK14D@7IC*]<<JNC0=@ W[&J&W0T5V@!@\nM4 ]60B44 F8[@,0H2$L '%\\L13:O83B9DAW17F=YK]/*6F*\"3<BV&<B-.QO*\nM*H8@2M><']\"<2!><J)$AFPPC0EG'WG$PL SD.=T&W::$:NY$T.SK#S [T0'(\nM#2VI6.M[UT ;I]1W$.Y&-/%OZ28T-,GU+[X1PRYDW >,@S,;GI_9.+^E> $5\nMLK>^J18)R''O\"9!(3:=D)FT L05,-;]4,!GJ+J-(G) (X@3M($X@-9YZP!.4\nMU-')#KQK%JJ 2P2=\".PU!UQP1*9GO&Z//$'KRQ.@2-DTU]*=B%_T.LZ,5+N3\nMBQ@:#FBF)UY :+3)]3'\"*3NICZ5=2#D?4 Z!-F 7\\6&]!J_:GGPC@3W!3'-&\nML+A^!-5N#%WN!\"?#>T\"]!A0X&K$!!8X6;$\"!H]>(\\ Y#1OD\"&>$\\CIV/!N]5\nMCGW1L5\\Y]N4'-\"3]$8\"&I\"_8Z/KM>![/3C# @P2Z@%C,C1'(LEB:'_P;U'83\nM2#?=6'U/#?13-1L%P.JJ ,&9]1C\"^5^O!>DZZ)Y4MY+IY@C^M8[)L'%_D/VI\nM&]H=E#37'.4C&Y5Q!0$\\*)PP$IM%@=KIZ0:(Z9Y(UM7>1YA>*'0_33O]@G*X\nMUQK0MZH-\\I\"+0M14!?0ZYP=1F*#YE9:\\ @\"(SYB9&R<8V+]LA7*S@34$L-R.\nM4;/TY9QT=3]W1#Z@YP>0;P6GBCC]]9#D-KU''Z#05/>_I:RA;\"5Q7%WQ[*QW\nMUX INGUXNB#6K<M]6@F\\D%MXWQ!;>R<X5AV1=U\\ H[9N0&=D]< 44;5 #?[-\nMD'%N0T:G&#(.PAZP<0!9M<FC6\\CC).0!NX \\T^OU P@0!@;< 8@2&B5(IP@L\nM(' \" +P\\V GH*)H!!N\\$06]_B,F$L8?O=S3;;[#^REC?1HQJ1BU \\=3AH U@\nM@D_7H:B/]S P^PE[\"I6OP3A^L96N;Q5!IILO-\">M+]%MZ=>W'.R6/@&FIV>V\nMR-9'_4/AX.W8$$%63\\UJ/)G53+D3:4B'\\-?/=UE1!N[;P/$''+B!CJ_TD_(M\nM;0V0=K)=WJ?G^^^&YPKXH@E@#-87FU1.IR^G4?3BBL:G#NB+TE)%EY@[V>HP\nMYMZ8*[^H=/%5 0J7^U_Q\\=FJEV$VLI82F'DR].R&QND,S1D,31\\=_'\\@7^B)\nM#E/G@>.O![06[9; AS30-N/[9JK2! ?K0Y119$WDFFG-CFUKQ:>/E0QRG=7K\nM\\U +8:>X<JK^LJ*:[01;&+X3H8J-Q9R5X4JG_*-\"C8+T Q<@30)Y:)RB%RXA\nMKQ+W$\\ ^N+=H #?2=[,X8!^X&PNDT1)-VB\\<&J !D7VN(<2\"GOE^_L78=WS>\nM?PGHGC>!)V#65THX2GB\"Z\"LU,#MXAD7>[R(*^J3BOFX&;%6HID,Y0PL>/$IF\nM^-U]R[84=P!JT!S>$'^WO1>&^N ?_;M0U?KG(+P&X3$(;P&$HH2'<*H4UD8W\nM52:>OI9@^R\\M#J \"\\%/*XK<I>ZP9W\"5<88H+C=,-0]0<JAQ1F-E34!F&(%[,\nM5X\"?Y(GF;0+H*[SMVA:B3:?U(*=DM$(X2J[+)@#AS+K2\"A4(\"NCK%7Q3V2]-\nM$*A\\?0%89T:[1#IK.0CA/:P%<WZ-W=\\G]P=4LM/S!:Z3*PHY1634!\\\"ZY]@3\nM2472]@'OOF0Y -EG _2/S-@Q!ABAIHM\"F>T@LUQ@[(\"BE4 .9<K7#8!=U&6*\nMHGL@/?T7U76+Z1T**+8TCP'S1)/-P1N:=^KN]]S IYGQ7#*CPE N!$0.*F-G\nM8)S&=+X.$TVFW71SWJGZ@<$S0>[1)*)4-3Q&GUTS7P09>^77^.<P#XP^.,\"3\nM& WH?++D].XD.M'30PZP9(,!F=\\4[IR3* -WC_N/V70 RV/,3D8\"=@N%)E;3\nMR)3=@#(=?2#R*,]2L98'34/;-JS7QDQ/'XA]ZDKG453;0GN>\"]/##6!GJ86.\nM+M#7L&IK_)/U8/ ,S6\\SC*5EZ,75MA(YRR'\\<8=T+R0X&Y=(2S\"H3]6E\"]=7\nMN\">@)=Q@C8-=L 9:,TH L(;$>'1]J[Q1BD]R\\'TFB@J%=G\"-Z\"'S^T7#^^4!\nM<)]\\T$[%6#$@3A!@>7K[ 99$*Q S&W0_BB\"9<$%LV GH(IK24GA3!)/.T\\_Y\nMT30]L3TS@#&O[]@C Y \"VIX4:'S&;@#/9!2UTW7_.>!#6'&7RN#L3 V4\\\"XP\nM\">!9H3C/)X=\\P+X#?QGYP?F./7< #26[I%&O +4=H'\"A\"8!2B.GEA13' $Y(\nMBA2R\"T12*6R(CJ2*7JB*,]M[=6/MONX,#,'Q\\\\4PEP/!^.HG%#@_@.Z-B_Z;\nM^;Y^PO$!$]4\"F79ZX&ZO<61WDY^=OM*;X)UO!74F3B(1I]=;>!IH3O !N.I!\nM =@<AS*%K_#PG!TK#1](%RGFW3&OCAEMSQ#%@M-CQ4Z/F=;';$)> YUQ@ KH\nMK!J)C8J0JI0*+4]X=*;<J._9WJC3)52?[*#Z\\)I\\8%_/$+\"/AGL3J39NP'@F\nM\"1.: T>$2*2)Y4IB!Q\"N4RM;H64@2\\*AG!<MZP&E/1-C#,!N<LW*E,UOU,9@\nMSR'\\M:J_G (!L5(%$(^F<FV-YT\"A?%.AY%\"M>$UU>D5>N($T;<56\\#G,L\"0-\nM+,EG+X!>,[Z*PRT84JB>5/\\C[CN^K7^K#**,A!!E\")?*+(%C@),P&:0PM.'-\nMHB+T81$8#'5@\\=B3W*(!IX@DP3+3,PZA* I(FHA@G(A@9,_YE&3/PAK*SP!E\nM3L:K%NSYYZ4F9-?_CQ<-0 U@2<:-UL/-\"0)VNO^?-6PI:YS_/\\XSM=L11^'4\nM^H1I(\"JTP)LPP#'GXQ-PQA?#:_YLP;7 %ZYU[G&-\"/+.@<H^\\5P+ZI72[\\?G\nM81!&(& I(V76F8:(9/\"#@71T;'SA,0*5\"*N#>P8 ^3)PO,\"H>D,D&^H.PDMA\nM4P%_=3V ';\"^N\"J!T)*V]V7!G][:M PTKZI@F@I'G&A)CD$<V#F ,[B!!J\\\"\nM#M5+ X\"V^ST#\"#1S^/-?N6UN7WQ_X'R3@/DR>'5?F8P9Z^(%_L07)L/XAEZF\nM/G3P?H1RHSE[\"F>O2V)J\"01&D=R WO@1I/RJ KTIKMH@UV$S<I@?.ZF6EMVW\nMY.3AUR]@IN*)?U5IGYB[X6 F^N;)*93O2>P#TFVS^M)317D*C.Z+S/:<A3G%\nM7H=WSDI#GJZ3AJKXA!/ 1P]^0&X[!&?T(V=(GP-*VZ<OD%;-I1O$ N8T];4F\nMBMJ(>]KD=@-R(PW(+8XG<CLFN6E-<A.HMUU]5-]F;,R9YN ,N5R W Y.;CJ:\nMW)C3(C>-26[5=(K&?,[:H%XHM])^^P5<K_FG@P/-EG(\"B.>@PIE32I#NAD#:\nMJH%?L<;2 F!8*E2U\"%2+F;\"N-Q&L2-JKY1'-QE$0C&EQ>(C/+ !#8-RDXH.8\nMKG+T#P\"%UJRE;?I?2U;^\"/EJTS[_ FV268CC\" ;=EAYB02MOF]X@78[I/$U\\\nMZZQNK60]?N@&LT&\":VU( 2ZX4#I/\\,AT 3%[XP\"XKXOOPAG^KYR2&P7T@M>A\nM%0;<^,]$[^\\9UKX1=<WYE\\U#S.:Z_P4YJ'-\\ &2V>^RZ[>^JV4Z)1E;;SF,;\nM[CK7=3K?'W5+5P.0G,&WZOI&;,ON[B;@NR03YQ>>G8SFN)F\\17Z#=8K]*D*Z\nM:FJ=LJ%I! =#3'^T :%4@PBA&EC< /+VB0P\"!'D2 N4QQ**&#>P BR8#6&Y&\nM69:B5<C(&0LOZ&6.CKZD/%\"B;'7T&N7O-%[WP3X_,\"5^U\"O='-TT>O_Q,@A*\nMHSD(MG$9@<,(T5;5 @CUV,@'R.@=:\\]M$.#\\TA]0@Q]JNQGC\"9K68TU?@/#A\nM$1 ^I%5%0J\\8NXJ5L)VQG+<Y\"FZZ%:BF1=[OX0>3U7;1%-6WX;67H '[0-\" \nM T2HDER0.Q,5-)RA%C2,J&\\L: 1'*>0<^<#U%P,<'\\'E#E#'L?]O<+R3XP.<\nMH.UY9=\\'K$[@>&C'KCS!\\=&._=*U4[MW + U0'['KN?>_86V!:.J@E7 \"%0$\nM;$RB$!BLO82SUJ C#(4UE.,<4(Y(8@G_])0DKI.\\XN'05A1H@$: U$,919<5\nMAE.A>A\"RY(N=>@ $S<R=2C $AB\"F4+\"E:AK?TA@*!3 ;&;U%*&(SUD>\"%&!F\nM'T;6 #?XV<%(GB=S,PP*)G,<@<T0V\"J.AKL?]%O@8OHZP5&\"?0D@4&(] =K2\nMOAN8+15T!<&9#)N2-E(@*;@BD !H('7J8*@TX4R@C3H3GIGPQH0G5O88$CA)\nMKH 3B./*H*? VH8\\M=H;0@9DR%N+GH%OL^L'7#LVARK.BL\"9:^/RU+A<<,83\nM&S-Q2@8$'2LP$,O8&\"0PXPTB*O(G%T5M0IM8+XI:(2!S[\"NHE<$RU[:\\]?0E\nM!5!35\\_MW7/IE0%DF;@Y:D/FXJ@- U)HT$;!6/(KAZ5/#F\"X DO<W*T,'&B*\nMYA4[-0?1!S@=OWWHB(W68UX<,U.>GNR-X?/6D#.M4+S*\"+F1)6U56-W4\\NP\"\nMM(.#&VG4&Q[O:V&N9:AE)&V3]W)2Z_N3D%?%>%\\;\\NZH4<.7M9 PTKR!3S0J\nMK//:H@LKL2]R6OVI:)/XMK8;O&_6?P\"U3_]MY;LW9%UU@K@[$E1713OP14(Y\nM/*E7E_/']X,J^!7W:F_)MG>?O3\"\"-T$%0I['2[\\!%V?&Q4QT(\\O1E^]O)((W\nM>!> DTRT?)UDY5Q\"J]P=E#.%2:/W91[+*SFEE-R.V+\\<O#I17;VXJ]_PQM%U\nM7,-Z>O)@%_=;/-K 60:!5W!V0GO[90^ H3C3?]@TABGS(W.VNZS6JD$&/G#Y\nMA#P3ZD1AA3PS+VO_?L@FDCXPULS&LE[?*?/@9IFA6#<7AI(=6K*!?F@XI5-H\nM7 W=[X#)L3Z:9\\XL]'#H*Y8%\\R1_9\\X['S![2&G:.^-=3:0CY3$+;<7@:= J\nM /B]JH#1W  (+K=EN5*EJX%WFT$N8.F6L?=(!^*[!\\]DJZ-:\"[2U1\"'O%4\\!\nM^@;++K8N#]N)T1/Z&EF:A? JU32JHQ#>Q*E3X/P!.-7C8';^FN<3<+-; O>0\nM=96 .SSPA\\\"]B<Y5IRC2M#?6BXA)3DW>@NU8UJ1!M0**L#?/=P!DBZXA=!@F\nM(KF1%VUSB15=ZC^[%/#?!%HT8T<88([N8XXN$<1I*H4U3C>&<3W, Y3,1=(E\nMD>T(EOE,NABPS3%H\"HYA.M*:C;AE^PJ2Q%=<Q%=6%>L\\ 25^&T\"F,[?'[0\\O\nMRIN!Q?R&91 WQQ&WUI6Q)VRW'4A%<7#$*LX/>T=R[.2.!X\\$8+F\"$Q\"+2\"2'\nMO(=7O ;5M>)@U]DO6I.:.P24W'- 5=5 K!B(U8)7,HN*?N,^KOC? ;NOBP^C\nM@V2#09TCB0%XIQSHZ$D!)S^X$OG@X >#IQ_@\"\"S;=:GZB^6Q^OYZ<_M12E!W\nM<%*]H8&3RM4\"@2QKBEG 5C7GWA_*,XGNV7\"BT\\,\"38RTK>5.9PYV9D5S\"%:K\nM )L]4UNFAH4@T%\"L 5A4#9F!-JUY!5;L\\ES$Q+'\"X2BZ[]2-\"^EF/J1;!$+O\nMOZQQ+TVF7,<$I$7^&+;=VS:.:9LS4#T8/- -\\,!JPZV76T'*8-VZ>H:,O6(#\nM6&XMGPQNH,42/H!K,'R'9]P7^SHBVQCL-T<+3VS\\6U44F+B!ZPDV7&^A>/8-\nMNLEX1E/1=XC&$)=A+;KO\\DA;4#54Z%=0H<VB<[NP]@@]Q- 9B@CJ\\GS-\\BI1\nM FMM59\"5[_(4MF.T&P[S;1#0BQR.]*++2\\%SY+41+I>W-=>?WF, 76=0*P.G\nM)<CKW\\&]'4EQ>=ZK&]FJKW<]/6  ALK_XC$/!^+<A->&>?BB5VA5OS[(W\\-S\nM=0>!7G;.S0BX*'/P!V8$\\=B.SY2'S^>(HW7'C0]%X&:&9MK@BJ?9VU2@W\"=V\nM/PV @+-38/:[[WMDB%(X_O;?$1P=4A!-4]8,FA(;_I'8T.L]U1F-H4_$F'*3\nM[W*3[BNC.C&BJ]NBN;T\\1:#9_2T]BB[@H1&\\@312.!;-;JEHMEC8L8(N !6V\nM*QR5(GEZQ?HP/!HEA)CB!PFPCR\"G* (03_<O<#R&8S=W[!F._=FQ:T#Q'KC \nMQ[E 1G;:\"(X_<.R1GNW> [)Z-A\"GN<X=Q[OC'G!\\E6.G\\;1;N?=(J<\"??+LF\nM .O[SM8#$(X>B0#\"0<!\\6)=78KZQ[L2_3, K2LBYF +%D'^HLEV4=K\\S>)^/\nMKPLLZOD2]/#**1_S?$:(MDF<1SW*87@[A;^N5U;,U$/[BX])3[2CG68K;FCQ\nMU:.OA\"YD=]:^4/K? JC#LNF5QP:2&>I^2-.Y\\9X%H&,#;%L>V[?;)QHP .I[\nM9  +K(3!7R14 WIPUQ\\-0(*.4:H5*HZFR ,%*J51:$=$.6 FV5GM'T:D1C?W\nM53CUQ4!TV>TIH\"Q%4KAM0T\\O-01OE[[NU-S>>:1?]0(ZEI22\\BO=I?=%)Y$\\\nM6@>0/!- E1NS>F..%@XT/3_%<@4?%*[Y@8DTCOHBNVJ[(PU.P9MIV-QNKNS1\nM64M;'P1$9$?NSZ3G05M-JK<_OL(#-KU] 9X>TK#=WMT3#)K3B=P]T<UMV7R_\nME-\\ :WFSAJSZ*I7%:TZOTA;+%_6]GRM[4:&.+@#W;Z3E>L&AZ\\G5^2]U_G_T\nM<26V[8G3I?$] #L#XS=<G@'\"$/F1I_VJ#<Z/2(?[M9JDVL\"C(S736 T$=(A7\nMVE[!6#.P\"2+B'$&8W\"K^A=#I<ID>G^\"+F9>R):7+Y&N_:7+AT9ITA3(.5OI_\nMK8'$U-HIO7PEWD6K%S\\<G)^&1#XW30 HUQ-]KDN@R_^!LBN:46[P7XEP1!39\nM\\>=-9R9?IT,-K\"F@>K120TB6JG)E<'Z:RRC=;Y&N)36(9&\\U^5\"/R_A@?XQ=\nMB7\\@?!(1Z3I_QL\"@NZ!>_$00=VK?T?*+B<(8GJH,V*>\\[&7L-'H@/]K5.<\\.\nM\\N7Q#@Y>X$!LJ9^5%_<$OGZ&]>KJN#HM^PV'SQTPD&[OE!Z@B#0\\ D@398?E\nM!70;@3#(4GZ[S,7?+18U=68Y5-29(17P!F89MF5Z@5C^LF\"8H8:7E]V9?W@ \nM2&.569.Z3\"T(4:\"4QT>OEVG0JN:= 90R-VZ57Y3]HZ,A:0<V\\ GZ5+2X(#;L\nM!-<?BPDV>'\"EX@ A5+)#Z%7_=4#XBV,G2*!4QG+M- 74JAQ?J%1\\0-CVJT#W\nMD4&ZO2))$N8P)<KVVI#EN&TB3XG&LBLI\"^/PS@.;-RXJT\",4:.;,>TC]1OOW\nMO5^!Z90^;4PK)($% $*(8>,.L(', 1O(\"K AK'$!HE\"I I\"$/*\"38U]P[#+@\nM[+\"./<BQ7].$GH$$<0!\\AOHS> 0/@,F8>\"LCI.7QK=D<YWWAWD.D7U<K8+_Y\nM;&L1M_R5!0CG)[Q^*R::1G\\$X+H$B.@H K]S%U@71 C=.; ?SJF64;D/Y*O9\nM2@((GL$'3\"&N^0C.,+< 074)!SB7H\" I9RDT4]3U&7@\"]5R?-GVE:6I7#:>K\nMO]R1!IN2=R S[++6G\\,&_Z]5O@42>_YSGUC%(;Q[E\"7Y3N-T.E/@Y@NLF5D;\nM!AAM(%FH;Y? .6TW@(82<%<0E1JC* JOM JM!U'=[/S)[.TOM.]72=6HHJ3J\nM7MBDAIXA-;B0CIB6F82O)[!7/VP-%#Y,\"[ $M* &B(X+OAY&#:6* RA ]R?Y\nM$\"IZF \"W.H$6(H>Q[P\\</8'H/43?F(X*VP!7=:ZU@E+QIWF;E1%IH(RT@\"%$\nM@3SWP'RB-0P0E['>F%L-K)[C.CV7\\'J^[-A)$*;W>5R/<KCNX=BE\" P-(#'H\nMP@$DACPN8 H(^(ZD3@G/0'@'!;<>+)8>G$:8VP )Z;G(?!0KU=@!-@H?/C [\nMG+85?>V!TKZK 18\\V>7_TUD!S@6X%N\">,@6$ 4Y*MN WZ;1R95\\6[O4NCG7>\nM\\29S27#[KG>\\AV=!48G8CO7>\\0Z.%=_Q!KYU_X!&URB?O;G/=@P%JK@,6F![\nMP^;]18_&LUH\".W1JFE*G8:P.Y19ZP),\\VY \\P+&[.DW2V+'S>!*@D8YQ/%OC\nM\"!6;-4\"R.;Y3LUFR2TS%>.:5PJ/C7[_##@<?U_5>5-OM)2@7V!=A(USJM'T]\nM!6RL6OT$D!/]-V_DZXNQEL\\'G+9]&$OMCN>[B]] YL'/\"X\"$FC,(9&RAF5GR\nM<7S7':(%P<G4(I\"A+?.0\"ICL \"T#\"\"6(O\\!E'<1P?HO?9)KB5%68[SZ$]XJ4\nM[T\"D?O$N#C9HQJ+=P%+-K)WR#S(3HSCK4OI<5%?2UY5;[I5?SK[QWX X\"]8M\nMX/N^'EIC^OIE[G3CK@%W#K=;77%!G$5*?MW!TNME'Q4:6']@@'Q5KX\\G#BM+\nMG/&\"GRI=GRU<./C7<T_LQ]\"$8OOB>YCVX/\\\"^4Y53\"# %_)GNEBX?>@$#IPQ\nM\\(2IJ>;S !AX%IXUY(A1%^MH(]RKH3=K#@10U<G=.T50Y.?&3.>CB@7_TYV$\nM;\"[5BMP^Y$ !^^RC_.3/UI3K7X^+BD@$080R=&OH390'\\SC@M-= ?S O$VT:\nM/5GW]+)&U6+A=37,80T7U25<5(=0@$L$@(\"?44%W&_/SM</\\2P.4Z#\"$=X'#\nMX2@<4$Y\" V4BH C/<8K,IM&[D+5;N /(-%[7^8%P8J1M0H']\\74*?L7&N!K-\nMHF\"BG8KU+%@99H:6L-!5!(7^=W8!O/L#)W^XVH6UG?3BW]<%.$:4(V\"> #3_\nMBZ\"91F 27,$+H59@FOWY1-!^S 8+;7<*@D<8ZZK\\E58Y&(BE[)*O<J,]WAX3\nM.1 *PK8-Q)E=:\\!V9M@,QVZ47I9I-02T;=GA29 &3E4Z([+$)(JQ7$/&I0WL\nMF41CQM6\" )?E*0@O0==WI^N5RCT:GMO33#-J?OC\"E2:^ AKB9R0(2I1;J96Z\nMLX-XLZ-[L_NKA*+E':#E/3'$83 YT9AL%^7D=?9'%OL^'=P9C2#_P2/.;B7L\nMCM%6%Q(E)U3JG!WJ[Q[V#ISRV0#JP_9P;-,=]Y\"V?Z) GYLLP)72[U'6=M4C\nM%JS>G^.L+B1R?B$QN*P.:W0@^;3FF00HAZL%,K.MP@^%8Y/R0L<.=XH$GDG#\nMY/U!&\\EU><\\\\72<%NTV<Z4(8FD9S:*M50($1IH>@$\\> <VGTBA&J12!$IK=#\nMT1MWHC=W<,VT:1G:.!MMJFQNX'JM#F1.Q;-OT$WZZ68<B*=YQZ$6T(&))\"K!\nM^V;A%QA #^8(+D!;D^1'!8.> NP'4[<R1L?WPE)IU)YW3_I'9O-FD>B?9$F0\nMKLKU&:ZW0&]UBH-Q9!UY_!.UY[9M</KX@%[UT9&GWQX W*.C7^_-V\"HUWE<+\nM@V<5FEZ?;\"U^,M:L[ZCAIPNG+QU]R0 KVA7MT1=[1F>)CQ\\XT%,17VR+.X#Y\nM^A3FP+$:*LH<7I391F[C^6!?PR.<VW\"Q86^&W[#O0,-R)2$W=7$P,],[F/V.\nM&X[W.GL&U[ZAX0/.-1C8L'A_%HP-2CYC^L>(-K'\\EEC#)^!I+C0 ]-S&!WC,\nMWJS]C5%>\\L%:N*WI>KJIY8B!!ER_1-M4NK&@PBU?.9PXXAH-,#*5M%7N$NW:\nM(1HFR;Q..A[:0)))=%M9^P)05XK87&H7\"%S@=1Z BUHB'Y0WG!!%!X^KK'( \nM<F-(3A5#YQ%LE^BVPK7#>&X^SM3!?RY2#*B=\\/UDP8TU4SP@>LPQ/-/G(_30\nMY[/.PB$4T164OBEX3625)[8T570R!%*%^RO8UD=/=)>G)U2M\".N6\"2(I@L\\V\nM)KC!1T,'D&?THF&CR[[VI?_H#&ZHZ/Q#Q$[H3-=6V7YQ?,6*XBRMY_ 1K82#\nMJ>T8Z^Y0FU2A-B,;-B*\"B$M![0,6R$M:^ZNI16YH[/[DEE,#I#KBG_!FA6>F\nMXZM@'3O6FPD>@4+((%B =^$@/CQM(I%AU[C]@*U<#RJYYB]749P,-:D:X)-I\nM=Y\\,[>Z3.7I&1U#WN?#0CC9&L:2/1+AXG*:IZ&%%XZ2B.0+-F)V5_,DC,9D]\nM.B6.((A''4\"#K_AIP\"C$+C\"*_+CD<6+R[.4Z^]P5Q-;!^BG6E>\"AJ&\\>3FJJ\nM\\68G;GK:_=]4W!?CQ^<CH%62632.,($[]8C0DA,\\(B3R 8^H]!Z1[^'2FK$]\nM<W&.2-/7C,[9TX]Q1!#!)G!$[%D9:@XPR^:)0%PYP!-!;)W $X%(/ &22 AD\nMU&S6N/@$'(6 7:M%QU>+O$*7\\,@*1A'0\\8VB'6ZEZ!.EYQZJ<+KX :PH)Y-B\nM18\"JCS'<.@'&4'Z1S].[8T6@[B? BB*&S7W1Q+ Y\"'=ZR@&DZO7]\"$! ^)E6\nM\\+O$M@;8AD2V#4<2$=H<]X AT4:]-:;::\\R-@E\\?J=7Y#:PVM[=SJ+=NXXT+\nM!M*><@&@K27$U';%O594(;FE 1</=7V56M2Z5OAI%_RPR1>T,K=WRB:T>;(1\nM+9^^O1;R@?,1-8B<IH'42#8+-O^7&-6H4N:-Z:?7#(!3R,@ O*9:XD;)24\\>\nM85\\.(,^=DEO:/EXK+:[-YZE7<F#S]=NP)G,C&\"S)VOV:J@IV755$U).+VF,9\nM+\\_84X3#(BJ%4B?(D Q2F6(O2%R^W&>\"$.=+Y1?)O Q^D<3WBX3L*T,%LL]B\nMDT.XGWU?$S^9TKV]Z=[@*DML2_]%CIC9[_HS,_,@]S?U,?3&JUU-!2:W@,XA\nM8*9F/_!:<GSX [8\" A!MLA@%Q\",*2)??<@4GDCO8>I\\/P*FYXA=ZA[@@AG$T\nMWP.<X(*X+O(!7G!!'&,\"_ L,T(Z9P?$'CAW%LR,X=DC/GN#=H28X'V? @@%M\nM/'N<] /.7'\"\\G&M32#G <KQD 0$4C(6&Q4( L HWJ@J7;=N(<\\U:PGVA/<H8\nMUPY^>F.0O_&2!0C5!IA]PGW@<VQ1D_-JCGR8(]N*\\O2F XZRCL@33D%D A#(\nMTFQ:AH>L(LT<H>93[ZH\\!8[<E_0>#^8>\"W!^:7L!U A*R/9.)5<A7FB<+I4.\nMMP,#SDD2K<O39&\"^(JL.K$OCV$$J.)[%L9L4Q(5)?$4;F-$4)?L$L*>N@@:;\nMR!&M! Y\\S>RXR!U:N5O1XQ: !AO;\"5\"^GV+T@:(U9L)3'\\8^B=VP,04C/]B'\nMFCK5 8[6^V '$E\\?K;[W+4\"KW(>)+=)]J/:_E$?<Q+/:>78\\Y(S^-GRPXJQ.\nMV#4+846.#SWMZ7B;_9J]>+H<X-'6$7&A'>H:W,7PO4W8SR]'4!\"!9F #&0[F\nM!8R-#-'E NE.D.%\\H9'/?<%83MPOACAA2V\\B:JT+@HQ0PRL#@J%1U?C\" VS0\nM5 Q1@_'C!NA@DN/X*GBDAMZ'%K#\"41X<S6!H2G7L68)Y@5T_>G\\D&W ZVRI;\nMB,89 &!@\\.HR_R=Z= //LZ#$\\_1D 'P+/1]M/$7O@YMJ!EY>(1W1,(RY509Y\nM'C??AXRU2XDRJH* .^=-2!@1]3JOS/!C(NB!_X\">0C@VT%,$QP9ZINVL 4B>\nM+A[.6'A!H@\"E4!Z3:)26Q?)XJ(M%^WV S5H?\"IJU/MPS:WTB-721L4-@?6);\nMK(287+-].#_2_$:6\\34\"OC9(]\\+@,QAD!88G0PI)#8G [TK6)<M![0M(!BJ%\nM5F 9[A?!9(6 >E$4PU=5(1ANGSB0&-(']Q7R@U[AMB; G8SZ.!'FG/1QPJAF\nMP]=[V=8!V[ #MJFR7 @U:9]H\"J)#3;F?[C%C&=ESBP%LW.MB<+B^WL*YN7UA\nM5!6 L9]HWY'244PS^D1,IP//9+_!6=_@C.$JWI3EX'S+%R#.J0^T<Z8LNM\\7\nMO8.Z:!O3G*B-:8<0C_N(=[X,B!_X)Y[T8:S_Z1+1#!*?ISH;L9TA73.-8JE.\nM3%#F$GR]#:'U?UV9:'9QM60U<].8MO+Z8$N8U\\V 3</ IFB/80O.\".WL=[#L\nM@W_PVL*(G6[\"Q0<.=P(LL+O@>ON:&0?P#&:]B;BM28/0UL5W<42P[A7_8+PB\nMKG?@TV@7\\\\0Z;^%D6_^$M-H_FB+Y#O+ XI\"G<<BSF.+X-1L.P.H8VP[A'*=Q\nM3M.@VA%,XSRF:1Z25\\/WX19LH9]!^*[NV!\"^ [1S[#B./<^Q;1W%IPT6H/AT\nMW@(,G^%L.X[@\"<#/[4U0_! KCS% 9.G^<\\#QR:Y=R+73&-J_73L1CN<H [PO\nM8VE_<LZ.YW%.,3 M.Y9CK[+N5XX=V+Y?6_9K_^YOV2<3<+(]^W \"'$^.5W7L\nM! -\\// R$-N](,I&I2VZ.-;#Z^)8A C&RN.V>Z&:9TX??4 GH X>[?$*H\"'O\nM,]KBB?U*7Z=J)OR\\T;/+*G0=7^W!<U]\\'&G/B #OLHP.?E+F?QHPP-@ BP4[\nMJ6\"W*#\"W0.H\"NPLT+_\"]@.7YW? /%#X@^^0#J0^(:GC]P30K%6\\YX&E=3.0T\nMG<II.KR&OOST&0<F$KT'_X=8ET.H4-9CLUY;;)QY$05@!)R3NU\"^G@9XOKL%\nM<%P<]N3 \\?43JBEF!FKR+L)K,]J\\7$QT?)J-FV.X/.Z_:HOFF?ZF^M>6:V.#\nMX3L>_,)C/3+CR3DO#MT%\"Q#YED0U]VA6/#:QD]J=P0\\]?:#:MN@/*(KMTW0U\nM9+)HJA>$>V$Q'9KPSO\"X9E$BV]=7<)I*A74;ZRZNM!8O '8_H#:G\"Z-H_W]7\nMP&+2WAC?M#0X[@M4<P*AB:CF1436QPGTK]_!\\,Z!_L.\"\"6>1AN^GK.D0)#?7\nMD'1:Y&[7'#Q/1Q!CTPPVQ:Q$,9&@DCL6MB:,F0%1N-FLN[PE&9-MA9P:\\M:0\nMYUZ01,\\4Y[$SRG'N_X&#]#DOSOEENOZ0,N;0#R!EF\"1Q\"TG2QH033SB26Q.>\nMNEH,HY V2AW#<!/F06YLV39OH^M5-3VWIA?(IZ=\\%(LMO.\"N3L!^_,,\\9_3]\nM1(\\FN:Y5#5E-KH> 3(-<?P\"9%M&6I^]6A%!>,U<@RAF8MD9?:*;N&1B22;I3\nM@64S%L$WN@>P8EA;*6DG35(GC&]?'LJ714]A7]<!@M [KYW!>W /)*IB %33\nM&A<7@-KU;=F$ORH@V1O_Y><%$[[*$AX66JX/R4)E?#VMK&043!0CGY2+>2ZY\nM$#K='!F+C*&7$VUY$<\"6C&3+0Z4YB.4& 8B9) RJ#_-KT [__ \"ZF.JH_0&.\nMC*&U-%'FTAX*^5\" Y\\@=(KN)@Y30*!Z01*N0_ >T\"HWNV%I%Q1U;JRB25F'/\nM:TI4A_7L-QK%L2P[KT;Q+,>>%D\"KTLBNK56U9(!6)5X5-C![W0!@U13<+0%\"\nM[-E TB8A:?2(4V[H ;:BM /&#]A08$D!L3=7@9.*?;I &29P%_C TU<>:-S@\nM]@<ES2;:_P_96G2.V-,#'L#XY@==3.#B.H*$O0;A.ZZ/EM W-B/QT0 >>)Y^\nMZ@\"!Z _7IUNB\"[#HB(;BSM)Q:NE<8?H44^]G:KI KG-X(,LW\"&^@)2N$HOT:\nM/,X_0 !,1/7@7TR50REQ /@\"><WJ5<A]2BUG4E[\\G/&PD9A*L0>_M ?_XOB)\nM;2O]G]@S$Y!*$_?$W /J U7PJM/*>*YA^*L<E+<%>.,BFZ)GQ,NVH/@4-65U\nMH*'/%VLO2.!J;NYJVLC5CO3?.5PV>X9K._%-]);Y&:%@D^G_%1@ &E$5%67L\nMNCDR./YHC<[87TB07VD19F/M23=,GP;:!HH?4+W7$<F2Y;,B_DCG>OIR&7>T\nMH,Z$8Q1P)O[?(?>'H81/SVS;26WC4+9) ]BO%[_8IO<'8].CD-^AF(?L455:\nM.3CM!^)V-,#$!H=TCQ^[9T3:>/H^H&IN8%@N\"#_PLA\"TBGU $QQY?V+J-3UC\nMT0 9 X-\\?M$QL,.8DO.+@Z<W&J#,NOBW=@&ZJFAZX\\:&G?YK4[Q$%$6%:^)#\nMX4/9IFI0]V8W\\[6/IS=09%_5%%; 2I%]Y3]3HJS@BP;=^:]_4??\\\"K:A\\O]I\nM-N:2['>2_<;]K>ZQSN#$(0XV%D*9H7Y\\P\"^>D\"^S[WF1::#]5&12ZE)5$Q\\(\nM7H=/;P@LXB89[;G!1(,F#2E':,8&L#9*S_=Q>[[OB@<X'E*>XQ$&G]/O0W.'\nMECR]?EMK>LC;0P%-FI;W$\"3D*+T@T8#@Y=@)';N\\8Q=T[/8 LONI/1-4I(,2\nM1),.:(#IU0)$C=;S[%H4S5,IFF\\Y]CW'SN78UQQ[EV,?<NQ>CGW\"L7^AR:P!\nMEEC3 /T.$J2 8PL>9H!G:1Y!L6UQ=$1P <T.H1D]X!U$ N_0!=ZA#;SS ._0\nM!W0@+)CX!HO@&Q 3? .B@F] 7/ -B RZH5#\"R $;0,&?\"(\"QU^+L0<6^K4M'\nM+$=:EJT=9T=@;<.E?A%&!5]-ZY;LV[MS04)].Y?NW+%RT\\(Y4$,IWBW=LG)!\nM$CG>CG%/JX1X6\"O3STW[UBW(F2YK;.N(;=C4()NF(3JE?VO&Z(>^E0O7)<B8\nM.7':9%&L.4&V,/:<,EW0:PMZ3A8 /0_*EFS=.>[(&^@T#'3._A^Z$E(6]+<D\nM?<V5?J^F)-ESAO,^ 1H1> -T(+0,#Q7PTR5_!LL1($L B[,39S?*)LQ];50N\nMJ]D8\"6\\B^?[\"GVF>^5/28Y#F J*FAX9U.R8]:TUAS458TR;\\'0[I*46 0*8-\nMSQ^HYDK?B@5)-6W;,FF4)O@(;RO^@KP'AI(1!DA\"+>] >.:9@F2?6W9,4Y.=\nM\\Q:T!:SVT\",=E[,_(4)@]#EJX8[8=AMJ04BO09JII0/40ECOPII7%&#-@Y(U\nM:2=;R;ITZ8);A7!S\"=RTR:EEA!H$V(<E\\_A]DU:^N8BIJ3.3!(+]4 O7F9DJ\nM#VCS&)I_$SL*(0BN@\"XG \"16>P2VY/$]Q?X!FRX\"U&'ASJW+-@SW9$J73RE=\nMVJ31M&S+ C\"3HR 1M3L(T:=-.@TSQ'4D#\\/:IP310P01)P#[CA.@2@\"*(4=Y\nMT[!RSZ81D^6[$G4KWG\\ HVBB9<V&87LZV&H%F__#=@#8[B2*N>U$YG(6U8($\nM:JG#FF1S]&=!HBQ!^@-TP^T=Z';7 >@FVJ>B.M;^AEXSKF5P2]SE+\"5K'(^U\nM(Q1@S9 (#_)N6KIHM'S1L&.*BSQ35[\\ XP) K3D*/%\"4$JT+A\\[C\"4W*;@?@\nM1H]T1(< >@8153#1KU\"=M)XJNAT[ZHX\"\"21!G9K0BU5OJ9I[%)!FFNF;N[PH\nMV3/:7)0V_Z!-3T7[UJ1<.MO$Y^(0+,\\!PIM-\"S2&N9P LM?058SOH9RA(-OE\nM)=C+'3,$M7&[AO@AGV$K#PFU$)-50V+9._BI:4WJ::<QM',,[3B\"-GB9\"]1X\nMB=F.S;DS33=,9HOS#]!=@IV14\")-;[C!&71M<^90@JQRPZ9!?&]1!9>1[0NR\nM#?&5:1C=LLFU+3N>T_,.4\"&^X'#(?@Y3KF< #C\"X!=_#:2W9:0PF)\"VUG,9@\nM@DS++K-6#H9%, 8A6IR6U;:M';8)3&39I)-LQEL0U7^IYAJJZ:!P>M^IAF6[\nM1IZ]\"C1PP >CA+8C6[,Y![EP:D J8),-CU5 :X(G,&;G@.U9L(G*I)!2$-5>\nMR(LNH#*1**R=C)6<4$05*RDD*\\$'F#0LM;Z3K1JZA&(D>$BA:F?&& GQEVZD\nM<)2#!TCNY2D96Z5!(#)X5&U#$$%1F0UT5&:3+\\PF*IV<DZU\"@ *A5!24:U@C\nM)*G*K7/&\\X3>((W0 I^S*C208C=Q>H29.=TW*0<=9O;4\";D3(:/' &QLDY52\nML9?H=;I*+1S$'3&L:9!FW^P[6[8@W@9I<!=3[.H'Y*.GUA6CRSGV=: D1D=X\nMBV5S&TR2Y\\)D1_<$8[+$1N&E0Z!S$*_'PCR3,3N*,>--R[;I^SQK*Y9#R\"*9\nM-&DU#6Y=AZI!?%.8_%*A*;CL5,H=1.Y[^@&012I /#=3[#\"X3 \\QI%YW.?38\nMI4NGUVM*8#2-[J70S7C3CTC&<-&$C,3,#<6&V8V4<IMQ4G/1*(E\"39I\";C74\nMM</X#7LBFA(?7('#,GF.A*Q*>IEL\"=_EEHT#Q'+_//1*2=X9F-G.0HNZ+\"M^\nM!3W8(+V<$)7*M\\&K\"G@D+'C.8A:23LN>H55#*(-,VB;*G,JWO4EE?!,P=;ER\nM*(%$SQO@D6*?<4T'L7Q[!?2<U%,A/_>Q:_B5%S^G42?R;5LX>STG?)-\"X' ;\nMDV,779G9NBOX'1=P18JM2L_;#\"V65<3/J(F^'5NW32+9Z??)UQVCAN7X/.&H\nM;F?:-HD%/;:@>8VQJ9A%X6SX(F])W\">YFCTB$0SN,30AAR_8!]0KD,B%60R<\nM626TQ0#/[.388H#(K# L-D&J?DAH *<8-!16:)A'&EE+/@M:Q[A\"N&W/T1'Z\nM+ \\-=1#T::2=1^,B5!.T#G&9I]OY\\,W3!)K@^N;]_8!Y]F/ 3H3\"TUTXP\"K.\nMYK0U& .KIYL4>[FYW(B$)PCV'8EGG4U6=?/R%()-=!>1Z\\A>'G5@C['4;=M<\nMZXE-L^N37>,PL$WJ4D9@-#IXC@+-7)%-J,D4=)?RIUYW'21RD%NH9P3N$,!=\nM.0!P#A-&<,ASHG8$]8A15U(7CDF_[!R![KBJG0 ZL@O<.@%N6\":[]YFXX>#F\nM$^#FS.\"&G  WR!/@YLW@!C\\!;M E?AZ+)DV(F:$L+B*VK/5WYIOXE#&Y\"G0X\nMK:AT'B.=/TO',02NJP@<2#?21.\" \"T8JK IG4^1Q#YM7P4_YCC*Y8- G2\\:4\nM;)FBSY?5:)G5OV&1RK1 [W:EV1\\TH\\3IA4'K4(8I_/ ?4_L6#,EP:IM+H$9\"\nMDS-DPN*\\##/I@)G2:CB05NN=1S=!!=,2[#R=W5$<(_0@7,(Q4*_3&X,TD36%\nM#2]A%.B;(-<LTGY#VB.LMQ-=#K.0$]%^ILIF3]*(=HM3&)*7251>HYIMB]E>\nM%,^3KP/+_*9+&>T<!C9_&'0F2)DYH%::,F&\"@.R>*WH9VSU;M3Q?X=FVHJIA\nMRJ_AMN-XUACURE!(O=<H6F?:I/E0\"+?CE,&M-=@U@IAB4+\\A\"Y]!MT^,@L;E\nME-'XDU:9-VN4F^%+V,S(7$&=D1!P6E N2[ 9XH >T8/G]#=?'*4XCE5#-D)I\nM._H8VCS'L<O<H T?0YO+(!(#NO$K;,-53R-MHAKFO6EJ ^$8L-%$F4Q;E=B>\nM&#9R2)#<1I#8F]HR%4RU/M:$\"HQA5=JTC\"G[!<2GKJ&\\H!L*#\\NF@G*;.;85\nMQ^2+%@P>ER%Y7$:W8-^A; *WK22U IHMF1.9XM$:[\"T;CO<IPZ='> 7E#[-D\nMS>'/.]C\\5M.#OC F7$_XYC-KV@C:NFFA+XP)SO69,)BL-'Y ZU[#UR14-AF \nM13XQ%TD!:;-FIDO/G/&4#\";P(5X#$? KW\"(H$SS\\!N7S-#<'I&#\\02R 85%@\nM(%CQE0!\\OO;<!!$2'1#DQ3F/:5;E2T4,V_0J)B<#?9C]#]YAIQNPHT:4!M3)\nM,,RSTFD0MJNS'5@4*M6%8M.<93W94&VZ!<?H=,U8LD1.>6H+G,%;SH#YO;'F\nMC;9 TC 5=L@N>\"$]?%F'MAV/Q^Y+DA%&*X1P#UZA#*XH]E1E$-+E( X\"&OZE\nM&O/=@ @C0'QNBK[C]4%X&%<P9[ &&KCMM%_6H!E%,K$W^,:!9-7/:2'X 5CK\nMOP7&#:*IX?C!-AX0%DR;\\!O462;&Z>!M^(3<? 65=8B?6J_KH-P8\"=9_ZE\"I\nM2;JT FZE(DNS\";EV5EZ=$,['H)*^H-&D3(OJC+ XUKR;S3*<0?3-<RQR+B6T\nM#(:H..,\"SSR[GM*HV!B',Y0(KE&U'6MO<4U09>K4$'_*AI\"L<$X+DBD42L_B\nM.$,V.&.\\<'AP>X,:9*J%!?>\\!$&\\6#\\R-F\"<#1$W(*T1673KGN[83G9\\CDZZ\nM#Q@N,PD=Q..EQ4&H3=*)334S.J:-[+*]73Q-RS:NT, 5K<,Y J]M)22B/0&R\nMAK$QBL!]NV8B[&?G%B#B=.WHPB;<=]UXS1\"8!L%O0'0SF2.P\"3XD=&UQ0K:\\\nMYHC$2.W<+LN5B-V\"/FF2@QR%@T^YL<23ESF39DVL0*$J6>6+.J5:5$K[09T>\nMK1KT:%&0/=+A:;X0R^6P\".2=V*MYD'O0A%T>]0W7Y].:55A LH1#*]DZLF41\nMW P4-\"7A><P'.YKJG9SYS)0/G;Q(BL;C\"P\"7=(D$\\?<(!6EOT:(MTS^3Q'@,\nM!X&@X6HSO6<38[9,A:J:.)J&+$\\ZCY &H=S3WB:SS4 J'6X;H4 H]1C?J+)>\nMMQ5A*-[%YE'G9# ,)0^BBPB1GNUK*?V0R;MA'*:-;403TRHG*?Q'K5:9NW%U\nMAT@T[1RY69A1E9?6*7#?F4C*8)G\".S\"/EJX\"9KK.A?4(! ;TSRGY\"=3-E%77\nM@X M@>ER V7'E\"Q'-QK6E^\"&O+N<H,0%9=3\"$[E+(/\\ L$BX8I4(*O@\"&RQ7\nM2.26S+>SH*A@<H4+630%FX\\9+$YF;F.:93#P9.7<OLMUZ9.*-7!_\\#Q?$$RL\nMO\\*M[_KD>88VL.P.L4+)@0VR#I.<5=? ,NK)Y!E)T3)[B9H=AI%1@.9I0,^*\nMDWQUF30(KF(3WDQ_.*9N_+^Y>C&<L*V?8P(8T4XV3[OY1GL_)#N6;7+/@D].\nMAFE9LCEE0-%[#K@\\GQV>D\\$,[&W91&HN>QVT\"P7K:\\OX'EK.SK.@*+CMS+MU\nMDV$-32:VCI%MPMG&&\\I,^SQ[ ZML3]*:\"H+,UC1S<RW7H%:W;\\)D4*JYW:$8\nMISA9I]ES7+%Y5FZH:MR>U P_A44QLH<AFK,0@K4%]=5T[]B_1BT,LR1HFZ-]\nM[BRHIL-4L%:6^(O(Y6'V+?#%W?Y\"A0551FV!=%[.<UT'XH,5 [>)0H6ASVG\"\nM6'RDB-4[C.&I\",<G-#H0-GJT$>8[BQ]\"F@[B'+8BE8!C>^^T[)T?.M7LZED\\\nM\\PFY9\"';Y5PKBV6RX=2\\;1HO_8RIJ6$[3,W6#Q/:?D=K9 MHNL+'^ V9#M)$\nMC].@9PD%O=TW-9^A6MYV$\">W1[<$KB]:-#ER2,CW.I)O4QY-]&S%5#L+HZR:\nMH#;IUV88QX^^60T?RS*HG5SU(VX'NG=HR3:=(HI=#:QRJ[C7PHF;'8IF@9+W\nM-W2CITA\"V>9$[N1BPWQ\"\"<8=M@'+4CDH>ID7RML>\"*3MM$^5ZD,F=C2\"F_QE\nMG_1T:HQ IAZ0)D\"K4[]:(7A/3?K4Z=>D3HT^!=B;X'M_%81IX/8\"?F: EV/R\nMQSQA@.N 8W8TT@RS::F%*#))4($\\+V7:8>C^.88O2F-<3[B EN;;8 S/ZR1T\nM'< \"7JW%&1%L^;-5MH=Q/.)QUPB@:!'$YU@JJQ92E68J-U&L2KV[!1K(WM5*\nM0K5U,8C'R( M> X7L\"=1%Y5J<+-I\"[DDP!U-V8=@&TWED)(\"V,J429\"I06P%\nM89K'S)DS9@MBES&T=4 S!&!%XTCFOQ'7(K:&=TE4JA49P%,\\%W0%J]YJS9\"N\nM6A)&L&XBX'_R:1YF-YCJ/&<$MR5R#4^V?4+*V)31)(;=\"N]%1C2%'L H>,ZF\nM3W1\"@N0)?#XLBF$',>Q [D\"T)F %____OVT@_MF>WS\".]R-@OG[_AEO^[[CA\nM?PX;_O>QX0$?&/[[H^&?/QC^_8?AS0V[_1_#RQMV_'\\!##O>O_S_PQEV,$,[\nMT#]K V4H\"X8&%!>@! -H>!;9T0.6*L/^P;')/V^#>1.$$J&\"000DS(8'9$P%\nMB[00.W#@P)HLPHS*9DP%Z[\\S E(PX <?6!GB&:##H^?P]BEE-L[AJ3-B]DS\\\nMHY*I9R2\\K!'/5%*(8OJ!/U:.^6//)#RL4,_D0WC/T/^>[2]H ,_@V\"+^C(9W\nM%V$T)A?](-R>H>&]\"?+!G\\!] ? )IPWXCT\\#VFL#GA4A8D3!4-Y@'AO<,T![\nM;6@$KPT>P6N#1_#:X!&\\-G@$KPT>P6N#1_#:X!&\\-G@$KPT>P6N#1_#:X!&\\\nM-N#_'C8 [4L.;AC(#!\\\"!_GP)[SE?\\<;_G.XX;^/&Q[X@.'?'QO^_*'A[S\\:\nM?OZ#X?=_&#[?L//_,4S[_S-,_\\?WM>\\'-NR AFW9]0.8EKM%#7X0W##@(1\\,\nM^X=A_S'L?X:-RFVI81_PL %7POCP\\)X!)Q%XB&]\"Y9( WG%X.AONF3\\0#.)I\nM_,&O$<\\8DK%G'-ZO$<^HW\"\">0C_X->H9#:!-U#,:'LJ\" U3J&<)5B6? FF7L\nM&4B5C'J&.S+QC(3W#.X=/+QG<)T/S&D#_N-A QZCX< T$EA CP/N&7 2KPT/\nMZ+7! WIM\\(!>&SR@UP8/Z+7! WIM<,_8:V-/8:^-/6.OC3UCKXT]HQ\\\\0WPV\nM]@R$SR:>@?#:@/L.4+$0#QLH%PM,,#0P;P<T[+_Y#=.P&2S#<[@&F( #> TH\nM&Q7P\"\\$ PIL *%,\" *@:U1,!0-X$.)S=!XS?\\0&5Z ._^_\\__YOS\\[$;!#[C\nM6)X5&TQZSC7 [?N!SP4<4FP!+!;%_V#9AO_K;Y@&:V 9WL$UT&0D2&\\\"'%7#\nMQ @XYZ>DA@=[$#B#8WD6-PV<PS5P=<N;  <E)?<WK/_]#=/ #2S#.[@&NFI5\nM[P\"LVP7W)L!_<& 'A0N7;5F03,/.+2OWJMRT=(H30$$'(\"*@ V098)O&*E!X\nMP%190U6?$>!\"@#<' B58$*!6@#H!WA?8LZ!$@\"D!KBC# T$2^!N((*&RK3OG\nM;P TJFOX W\\#8H)N<X ..3 NP08'VD,\"E\"W0_4 !W6@%B6O)2QQH1D2#>PN(\nM=FG*=\"GC+<#+)DT*TBF5+P*@R.'>4@IO>8^W6#+-YBU?$>PIWF++-WC+![WE\nM'0%.!&A;H+FWK!M[ZQ+)/N$M !7+6X!CG4H5)-6Z<L6^D8N_A#H5H%2:,''&\nM^\"*H8\"\"]!5N[P#52P./Q\"X_'$R2SK<Y+X.V)AJ4;%J[<MV3KCJ4[QTQKE=I2\nMIDV;-9Z&%Q W\\26 IQ^0HT!7U_ ,JGU#V4YS8$V\"-MYV 'E;\\ 62/4.R=RU(\nM8\"B>V&\"-H=S\"LM,DL#R\"8YO_+L&K!L)2#;GX0+P$;^RSM5I^P3YG*2!Y!ML6\nMQ[$/)%RPP;L%_UJ@]H$& 7KH]H,\"MNZ)D$F%-HG,D/C<MV[#LD$^[-DR;#ZM\nM&TN!>R) !?!$TI0Z_()[OQ\"WZQP8X_<MF:IR=U%M->3:0C8XMB#-:2PVK0W&\nM\\@F=9T$^;D\"Q RD<6_\"' X8>6*%H2UYU0/P#+;R>)7\\\\X$V\"%[IY]X!I/AGU\nM9%#$09FZ;&\\Y$\\;G ?\"$U.$-/)E;*++7>#)+UC!/MJ34Y$ ^3W8(P5Y3((HG\nMNX1@URU0W),=0K=7N-3FB/H*X&-\\Q6(3T+Z\"N895\\!4 Z(11MCPN.&\"7-[J \nM9-\\<<-,;+5F!!YP_<,/65H=?!T0ZX*^C-IT*<NA;MF_E3AUSUW#I@HP)$\\;/\nM!>:+@!S@L1R>3J>\"20*OQJ>4FC<KVY*5)\\$2L6W)1P7HEZ\"])-NT]/6$2(-Z\nMBK<@M$'B, K<*P)@)Y'#$_CX4)5!J\\DTGN%W'$^M^((MNF^!X1X3W%,(C 7N\nM*< E/\";U%$\",\\27 !2)Z\"L0<3Z&2__*47PAV$;ED3TGI#JQT[2E(JV%*GN>%\nM\\]INE6I+&W4 Z2F .ZIMVMU3KN(7PCU%;ZB2S_@2](5I>U69I(4L@@'\"'FAE\nM'NXIO1K6[9E+\\-\"I,2@!S$D'MQ2B*I\"^A*4$D)Y2\"%7R'4^Q9#WS!B[A*?_S\nM*JB_D2\"-3-IT9@_4WX!_?,HVK=VR=.FF:9V/@O\"D<8)$LGI#?3N73J=3GP<@\nM!8,U\\#=O4+?[)\"\"'39R7[!]2$N^1DEQ'4MZA(KG'@7!6AE6D6RPD]S)[5JJ+\nM!-A98+M7@@]ZUFP86/6V<.N>E8,P1YMV+ B7,8R:82</YBN0FI&6O@)J@FJ?\nM$.P^!^*HRI)I,J_$)[R2Q>H.CAW M%,G^\"\"9->+0<0Y(YDP)0C8H(YG;'LB9\nMX(QD$GE!&LD<-D'Z!HH 2S3MF==.%3A3IS!G2@5A11J*R()[N \"B(W6XEPK\\\nMH)<J;Q-C\\RED;R<UG49IPB]X7&\"B$0\\#ML]NP+U4\"7B:=.\"0-SF\"8$O^34FU\nMX[ZT9H-#\\K9I6=TW&SR0S,L+C$@003)/3)#-2[5DE3DPT<&U9/TI4$9)M61E\nM/S!22;5D)2Y@>0C)_%O6;N#8ZKZCP.TX?@*XQ].<,#S1N.QIRTS$%@_NB0 5\nM5FY;N*(?\\.6Y)KA&0K@GI0Y42D#4J.3MO%B;Q@E\\<](&F:39 10>%VT@+ D^\nM,L&Y!I\"F1F](7[9D/2HPQ\\ER +OJLP7\\[&WLLZ)GTA(]P#F;CX=EM^>N\"> J\nM_7D@O<6U:5K;XMI:%!/'$<^FAQ4;[#7 SG@$@/LT->RRAMW7,\\EA#=![0?8Q\nM_-FT96FXP+&?L9S*WNV;YJB!<1'5:BNJ7IZ,J%?1%G.=[PSR91M.NL[W9LN6\nM)0N2KMPZ*KGP;EK%EW5+E@4[((G>;.>TPX=HRE,,FV&IC4J782\\R['B&?4F7\nMH)=%R<\\-FP)K3P;-;B2]9^SEKI$INX0QS%WFQ#%LPN.4,;P-9:]I8W@:QRYC\nMV&,(#\\/9R!_[MLYAA%3XC( ;SAP&&98,6+?X;H*;36E<%N]8M\"#\\GUM7+,BV\nM==F <S,;*;NRWVX:=R*=$)=V5BU%$W6>C'1#8]\"(<*5Q#Z.U>,M2L#&B&3F1\nM'1*B+IOL \\6.MC$ 4Z7#TAA>;,T%W.0<^/H_0&W(3!Z 0/N :U1@^\"YAV#,,\nM^X=A'S'L)X:=QK#W&/8BP\\YDV*4,NY5AUS+L9X:]T[##P2SL\\0#_]WB /^:#\nM[)B&G7: 5P;JAZE .C.EUV'S&*4>P('KDGWC&[Y!VE+<@)'$N+$]@: W7!OA\nMV'6$V4!( D$N@ ]XDT*@0M9(BAGV/\\/.:=B3-? R[/:&O=\\19 M^8-@7##N&\nM87<R[\"$#_ 'P?W\\ O.B:8?N@8?X 0/H\"H, )&Y.XA7\\9]C-CXS-ZBH\\9]DG#\nMOGG WY#N'KZ#@/B0.&2!W\\31\\\"F&+X5PES..70;#)VE ?,#W@E MP $ #2S9\nM,T C18\"#!*UEVY8IR\\@&[)@Q\\<:\\\\?J /H,U .##L 8JT8$S=8 PNOB!8U)*\nM9Q#7PF=Q[B\\F.#[#<'3 L$M!]AJS8;?!$W#-AL0(#83'33:G\"P<%CH@(<A!C\nMD(.R=< U,M -LL6Q-QEV2<,N:]B?79/LCCV!1W(3P^YFV8<<^Y)AIS+L6X9]\nMS+\"KV99APPP'>&?8]PS[GV$?-.P%#,.Q';NC89]E$HE@ -@\\3'NI$ ;N@0$X\nM1J2XP+  RR1,(%AW0Y8;S?&[:<G2<0R_@>)3C,U8(]&6P0%'P[[-&=>4-19$\nM:1J@Y[S1--!QTF@:@#A3)HVF@;U)\\T;3 'B:,IH&>DX930/@;<)H&E@<),J:\nM!K,&P/^M ? 5(B LC6'',>P\\AOW(L%<:]G'#'J/3_,^P-QOV:L/.;=C!#3NY\nM84<W[/.&/4B@^:-A[S;L*Q =;M Q<=_ (+\"? #B%F0M0;![@#3(>J-<&I(N\"\nM&QKV4<,.S\"&2W8:]G 7\"AH<W[/2&'=^?P\":QHL<A13*S@$\\\"&'?#.06[Q<@@\nMSYBXT IB6L&P+V<HI&_6Q(NC6&H/17$I^J#QN6GU*\"[/PC4 G48'N RNS^E\"\nM:X\"I16L $M;'A$$3L@N@7]D:@&;2AXE7IDP86 ,LRP,()AT@D8,H@QR@(!GB\nMU6%W#/N/81^RZ\\2K*ZEA_S?L6U!(DM>P#QOV8\\.^+*?#!</^FW9MU_ D$CH \nM>M:P#_O@ $ >+. 9#A\\!XJ$>'9.@8(*HJX;]U9?!4A*3D_I!@-KNAP4YQPWK\nM.0P8ER' T#4&&#FV7VBRU0!#_+\" X[$L8\"0K:Z\" :, UG\" Z8=@U#+N'81<Q\nM[\"H#N!RZQK\";&?8<;R#Q'3L\"S7:, OX .+\"4\"3B @@E 0UF ,'J @V0Q[$R&\nM/<VP&QIV1\\->:=@S#;NR8>\\T[ X&EW3QZ2!\\%, +U GP-9H$\\.!B 1&,G#+L\nM8X9]S@\\!P&& 60/%7C(,\\$!2#KEDV*,,^Y.Q<58\"!QYW@+\\A..)[%7@Z..%O\nMWAAV&IY.##L-49=0-VV/4>OFZ8!;Z'3 '7 Z=$8 GA\\2^QQ0CZ\\8M$%BHV5K\nMA6PP?\\Q:.[@>R# 4JOR:>0,UAC<@R_\"&'[\":)(YA=S/LC2PJB$^F00@&M-\\'\nM_-_O _[G(BHS\"83X53\"_#X+' /S&[P.^01'Q!<?D'.O$NT3X \\,VS5HB##M \nM3I'R !J0-[/YJN+D 91UXO#D8RJ&8?\\P[\"-6)@EC\\\\@B-Y.$,NQ9AAW1L'?Y\nM?#+:0?!ZPYYQ ,KW :\\/:>[U0=] ?1E]KS'\\C-OWF3-6WUC=8PR:QX!]P /9\nM 4YY,^:G?9-]W#KG$L.0)J@ DFV']SAMTE!!\\3,V@Y\\X!YH+/$X8Z \"+:=9+\nMVT\"'$ MP,9P-N(6.\",!1]B )8+8S@&#(\"Z!$FACV%L->9=C]#/NI87\\U[+:&\nM7=>P!QOV9,,./0 (0X> +'<V[*&&7<D! .#KG /VBV/RQD, -,F7E8AL40L!\nM6,& +9# ,E(F@;]!#/)%V!<*$GZMV[=WUOB>%@D(\"O1IS?X0&AR+Q((&+ <!\nM![0,!9;LF:$ ECAJ*& 4BP4-*.$(H,DC0$-1ZF7'UJ6;UFX9H@&E' )I,@?2\nMT&%G! THWH0^T&GH Q(-@]('L88^($G0*'V0Q=0-R&+J!DPQ=0,2 HG0UR3Z\nMT&@<W787H)F#VWV@P\\C\\A@Q(X8C=!V:2.9RD '&&+E/F&-( T#&0!OR@#*2!\nMD52:S+\"7&G9TGBJ@['*&O=6PHVOI@BON9=C)#7NF87=3T/WV $4%(5'A@K7$\nM.' SK: =CB+!PUJ&(SC@GB[)-4<MC\"X_ES DG\\&#4J331Z*9>!(9E,;& 3#G\nMP'E8SQEC8 ,.(F\\0T*5JA>$P \"-)@.MZN$IBV%<,>XQASS'L0(:=R+ C&78F\nMPPYEV+$,.Y=A)S2\"RK!7&W;_ #0&[6+8:PS[CF$?,NQ*AMW)L$L9=BO#KF78\nMQ0R[F6%W9#/(;\\..8'-,^+U]?@?6@4PG7?PP(+QL_@'+($4*I =PX& ._(9O\nMD!0!@AL$6T(0>! P3T(R ,]\")P&4=M2NJ9!A%S/L?X:=T[\"3&O95P_YJV,$-\nM^ZQ?AVX(<$VK>F\" \"@)8\"W[CP*H B5DK)\"?2,+$*\"![D_SK*'@7RB6#,3D]R\nM5!\"U'9-0WTSUU+%RT\\*E$_I-B(XCT@#'ME$;^NK 9FK3O 6H#3C$(4.:C=J@\nM Z@-N,4G000Q0! !ISA$[8:X&;71L >28@-TR-P![P]0&]#--9.F1@')36V0\nMD99ETY%M=0\\+$&T;MJ%1#^SD!NB0W@.B8QM0US63J]@&J$C@L!NV0<$!P3; \nMEM=,RF(;(!P1.#D@C@BPW363KMH&2&RO9K=C&RU_X,L =\"#Z>00M+Y$ VX .\nM[O/ 9V,;Y*EYVXK1P$*UJ'R:7+>T\\>(#N\\4!.J(J(@+BN&9RE)5);&F#3#5M\nMV[)SBA<B94,;Z7>@GS9 1^2$-B\"F:R93H0TPDT@96O1 6VF CB@I;4 LUTR6\nM2AM@H0T)>. =S82.& EM0\"373))\"&V!+<7S($;\\(^,JW ,^HC>X^D%JO098/\nMJ IQ +5=,]E*S&0WM4$.:B?C3O=H6+EDRRA_A/2&XS8HTH1S&^#I-9.TW :P\nM3[P,'9 @Q0\"O O7V  MX&?\"%1+P,Y385*W!N YR7 >A$3!ZDZ8&Q.!WRH4 H\nM;P/JN6;RM #4 Z+0MV_7:#0[GDC/AFX],)2G0VI0&Q\"2\"$9M0$UB96C0 V=9\nMF=8G3T=D9T1 1-=,HEH;H#.Q,G3?@7.L3*F-BP/\\( =0:@$8M0'%RA K!?!_\nM*P7P_G6X;$<$HMJ 0-H&E%,!0]*QMH%OZ815EOLF9X_6#IBW0S?<$T$C#DB#\nM;D#-UTSFHAN ]3._4S<H+,+5#?  !# 26-T S#=LAFIPH,((\\/R:25YV [#?\nM#!C 6Q N[/N!Y'@>I$(!L@-(CP_0G9:].P0 \"059;A[HT;(58ZJ['2OFBM#>\nM!THSN) \"!3YZA8#ZKYG\\13< .XV:H9$/'!;C()5U!B#N:R9WU0W T0U)C6[6\nMX^\"AT0T( H<$J(MN %X.SO<R=*.-#T1'^9#+\"@0 <QO=($,-RS8,X*8Z#E6(\nMEVUM).Z!Z18?TM?:@/BNF7RU-D!.@F5HV0._\"3[$@I@ [@%*(P##-J\"L#=EY\nM(+0\\0/8.B&=M0%773*I:&Z!*2<  _Y>  ?X8CMJ&-KYR()$H0P?U@C8@4$*P\nMW] &66M8N&:'HH$PCX&(YP6H=\\S;4 MK %C&@.910PO$]S:@LO-=<&\\#E8AJ\nM?U8,;/?EM1+Y@ '_]P$#_N\\#!OS?!PSXOP\\8\\'\\?,.#_/F# _WW @/_[@ '_\nM]P$#_N\\#!OS?!PSXOP\\8\\'\\?,.#_/F# _WW @/_[@ '_]P$#_N\\#!OS?!PSX\nMOP\\8\\'\\?,.#_/F# _WW @/_[@ '_]P$#_N\\#!OS?!PSXOP\\8\\'\\?,.#_/F# \nM_WW @/_[@ '_]P$#_N\\#!OS?!PSXOP\\8\\'\\?,.#_/F# _WW @/_[@ '_]P$#\nM;O1.JE@)A[1V1$A%L5=M XJ. G-%K(<$A@^[897=SBTC>B,=\"A\"/W?#+!QZ+\nM(F0FNP&!@P%C-X#&Q?/<#8J+<'<#O( 1F!1V-P#U\"9RASDBY'+@S AS> #\"G\nM!=P)#/B_$QCP?R<PX/].8,#_G<\" _SN! 9<2C#=X@0%?,2  _S<@ /\\W(! C\nM 7 6'0_P?QT/<$>.#[WB%P%?L5(^HS:Z^T!JO099/J JQ '4=LUD*S&3W=0&\nM.:B=B3/=HV'E,% I?U2(Q3&WP9 FG-L 3Z^9I.4V@'WB9:@%.\\4 KP+U]@ +\nM>!GPA42\\#.4V%2MP;@.<EP'H1$P>I.F!L3@=\\J% *&\\#ZKEF\\K0 U .BT+=O\nMU[:1N^.)]&SHU@-#>3JD!K4!(8E@U ;4)%:&!CUPEI6I'(J,R,Z(@(BNF42U\nM-D!G8F7HO@/G6)E2&Q<'^$$.H-0\",&H#BI4A5@K@]0!PV+4#T[PVY/> [-H \nM* 400--,#]OVK9LG?Z0 @MPZD QL0RSZ=-8&E ((H*T-EX% >AW8)K8A5P?$\nMD8$  & ;R03+T%4'9I%M2%=7;&U A==,PEH;(\"?IL(\"WK'-$8QNO/[!>AX5$\nM*0#& [#%L0V8+86R#3OFMD=K5PS<VZ$;U\"R HQO@,G P= /X-P@2\\,UTH @_\nM?>\"OQ8(.^:MM  84 95IVK-HZ4#1V>0>U-S49\"'F!EB$#\\#-C1I\\B!@.<! 1\nM'Q;ZP&JZ!+D](!F5#@!PZ1OCW;I1^[5RQ02^KUD;/7O@,%V\"/!^0@D$&X,.M\nM#<262S#^<]/:D=O7S TQ.K^BX\"&C:7Q O-=,WIH;0,0#^#9%9/6!ZSYXR&=S\nM T(M!#-%0)5[1G2\\#=OH]P/) 3ZD@E,%8& 0&-OP3LO>'5JFP^7E\\T\"/EJV8\nM)NYVK!A.-KJ1W@=*2WQ(@0(?A1E0_S63O^@&8*=1,S2RW\\.NB\"MK#$#<UTSN\nMJAN HQN2&MV,\\>&AT0T(JD8\"U$4W \"_G9D ;'XB.\\B&7T<  C(4)(M0P,[] \nMV\\VJ#@6B0.(>F&[Q(7VM#0@0!:\"M#0=1(&4/_\";X$#KP!' /4#XN&+8!96W(\nMS@.AY0&R=T \\/!D P-J(%' U-'!KH^4/?!E@;8*?1U#82U@;4,&Q&/#9U@9Y\nM:MZV8M] ^3EL*'(6DS:Z^,!NF@>IR@V \\+OXJ\"J3V-(&F6K:MF5>F*D*D;*A\nMC?0[T,_E07(:'  &VH\"91,K0H@?:HCQ(26D#8KEFLE3:  MM2, #[T0>9\"2T\nM 9%<,TD*;8 M!0;P-&BC5PXD$F7HH%YN.@#S&]H@:PT+U^Q0-#_X8WZ8\\P+4\nM.^9M:)H# 6 9 YI'#2T0W]N RLYWP;T-5\"*J_5DQL-V7UTK$FZ\\((4!P(B*$\nM 'SAF-J.-#^C-KK[0&HO/$0-M:K/!-1VS60K*)+=U 8YJ!TF3B>$=3*R=A 2\nMPN&X#4H@PKD-<\"D5C-L ^XF7H0AIB@%L)-3; \\C(@.)E #H1+T.Y3>%(.+<!\nMSLL =*)/4 _:],!8LP+Y4\" 4$@< 4.C;MVO;R-WQ1!X,=.N!H6H%4H/:@)!$\nM,&H#BJ-F95C0 V=U@)#LC B(Z)I)5&L#=\"96ANX[< X'\"\"D.\\(,<0)G@P:@-\nM*%:&O#JP61N@+!WPA4.%6!E*;:H-\"+4!;T X$*U\"33IB;< 9/LEIT&L'IGEM\nMR&\\ /\"#X1(\"FF1ZV[5LW3_Z(3X3<.I ,;$,L^G36!A2?\"-#6AI-(D%X'MHEM\nMR-4!<4@D  !L(YE@&;KJP\"RR#>GJBJT-J/\":25AK ^0D,Q ('P]N!@)X<\\VD\nMJ1D(H*)M(\\$Y&[;1]0?6\\SSHD\"AD2$\"4UTS*8IL4QS9@MA028A]SVZ.U*Y:-\nM#&ET@YD%<'0#G$0%0S> ?W-%*!_H3FJ&](:0 >%%@+DBH\")1K-VP#4K,<&P#\nMW!7!L T(I#X=*,)/'_AKL:!#_FH;@ %%0&6:]BQ:.E!T-KD'-3<U68BY 1;A\nM W!SHP8?8K,HA@RW60\"W\\\\!8$9\"?1'QHZ .KZ1+D]H!D5#H P*5OC'?K1NW7\nMRA43^+YF;?0L#8#I$OSY@!0,,@ ?;FT@MER\"\\9^;UH[<OF9NB-'YU0H#&4WC\nM ^*]9O+6W  B'L\"W*2*K#UQGPT ^FQL0:B&8*0*JW#.BXVW81K\\?2 [P(16<\nM*@#C!<78AG=:]N[0,ATN+Y\\'>K1LQ30Q GHQG&QT([T/E);XD (%/@HSH/YK\nM)G_1#<!.HV9H9+^'71%7UAB N*^9W%4W $<W)#6Z&>/#0Z,;$%2-!*B+;@!>\nMSLV -CX0'>5#+J,;$\" *0(<:9N87:+M9U:% %$C< ],M/J2OM0$!H@\"TM>$@\nM\"J3L@=\\$'S+2!AWN <K'!<,VH*P-V7D@M#Q ]@Z(AR<# %@;*16@&AJXM='R\nM![X,L#;!SR,H[\"6L#:C@6 SX;&N#/#5O6[%OH/P<-A0YBTD;77Q@-\\V#5.4&\nM0/A=?%2526QI@TPU;=LR+\\Q4A4C9T$;Z'>CG\\B Y#0X  VW 3\")E:-$#;5$>\nMI*2T ;%<,UDJ;8\"%-B3@@7<B#S(2VH!(KIDDA3; E@(#>!JTT2L'$HDR=% O\nM-QV ^0UMD+6&A6MV*)H?_#$_S'D!ZAWS-C3-@0\"PC '-HX86B.]M0&7GN^#>\nM!BH1U?ZL&-CNRVLEXLU?A! @.!$10@\"^<$QM1YJ?41O=?2\"U%QZBAEK59P)J\nMNV:R%13);FJ#'-0.$Z<3PCH963L(\">%PW 8E$.'<!KB4\"L9M@/W$RU\"$-,4 \nM-A+J[0%D9$#Q,@\"=B)>AW*9P))S; .=E #K1)Z@';7I@K%F!?\"@0\"HD# \"CT\nM[=NU;>3N>\"(/!KKUP%\"U JE!;4!((ABU 36)E:%!#YS5 4*R,R(@HFLF4:T-\nMT)E8&;KOP#D<(*0XP ]R &6\"!Z,VH%@9\\NK 9FV LG3 %PX58F4HM:DV(-0&\nMO 'A0+0*->F(M0%G^\"2G0:\\=F.:U(;\\!\\(#@$P&:9GK8MF_=//DC/A%RZT R\nML VQZ--9&U!\\(D!;&TXB07H=V\":V(5<'Q\"&1  \"PC62\"9>BJ [/(-J2K*[8V\nMH,)K)F&M#9\"3S$ @?#RX&0C@S363IF8@@(JVC03G;-A&UQ]8S_.@0Z*0(0%1\nM7C,IBVU2'-N V5)(B'W,;8_6KE@V,J31#686P-$-<!(5#-T _LT5H7R@.ZD9\nMTAM\"!H07 >:*@(I$L7;#-B@QP[$-<%<$PS8@D/ITH @_?>\"OQ8(.^:MM  84\nM 95IVK-HZ4#1V>0>U-S49\"'F!EB$#\\#-C7X3 $-M%FBU 8'0#2@M'4P # +=\nM2\">2L=RW=^IV-ZYC=\"-P#S0B$F-I!A#H!G <_'?J!A6X<'4#/  IT0\"!U0W \nM?,-FJ#!2+@XNC #/KYGD93< :S,@Z@8URP WT<\"X%B _21G0T =6D]B0VP.2\nM$?   )>^,=ZM&[5?*U=,9OB:M=&S!PZ3V)#G U+P, !\\N+6!V'()S'AN6CMR\nM^YJY(7+O5P,(9#29 8CWFLE;<P.(> #?IHBL/G\"= P+Y;&Y :)A@I@BH<L\\4\nM&O3[@>0 'U+!SP=@C Z(3LO>'5JFAL_+YX$>+5LQ38P#60QF07L?*\"WQ(04*\nM?!1F0/W73/ZB&X\"=1LW0R'X/NR*NK!0!<5\\SN:MN (YN2&IT,\\:'AT8W( A\\\nM$J NN@%X.0\\!VOA =)0/N8QN0$\"Q !UJF(5>H+6J#@7%0N(>F&[Q(7VM#0@H\nM%J\"M#8=B(64/_\";XD)%FD' /4&X:&+8!96W(S@.AY0&R=T \\%!H P-I(J0#5\nM ARS-EK^P)<!UB;X>021LH2U 14< 0,^V]H@3\\W;YN$&Y>>PH<A93-KHX@.[\nM:1ZD*C< PN_BHZI,8DL;9*IIVY8Y0*8J1,J&-M+O0#^7!\\EI<  8: -F$BE#\nMBQYHB_(@):4-B.6:R5)I RRT(0$/O!-YD)'0!D1RS20IM &6XPU';4,;7SF0\nM2)2A@WIY\\ #,;VB#K#4L7+-#T891M2Z0\\P+4.^9M*(8\\ \"QC0/.HH07B>QM0\nMV?DNN+>!2D2U/RL&MOOR6HFX0X\\( $\"P(B(  'SAF-Z.-3^C-KK[0&HS!J(\"\nM6M5I FJ[9K(5%LEN:H,<U X5IQ. .AE=.P@!X'#<!J40X=P&N)@*QFV _<3+\nM4(PTQ0 =\"NKM 81D0/$R )V(EZ'<IBP4G-L YV4 .M$GJ =M>F\"L78%\\*! *\nMBP, */3MV[5MY.YX(A<&NO7 4+T\"J4%M0$@B&+4!-8F5H4$/G!6#04=D9T1 \nM1-=,HEH;H#.Q,G3?@7-0,.B(X@ _R &4#1Z,VH!B9<BK YNU <K2 5\\X5(B5\nMH=2FVH!0&_ &A /1*M2D(]8&G.&3! *$5H%+( #>7#-I*H$ J&C;L V5 8+V\nM-O, 02.!L<$!\"0Z[81M4KL&Q#?#RFDE9; /$)SZ PW'AX*T=$5)1[%7;@#(@\nMP5P1.P\"!X<-N6&6W<\\N(WDB' L1C-_SR@<>B\")G);D H8<#8#:!Q\\3QW@^(B\nMW-T +\\!*-$!A=P-0G\\ 9ZHR4RX$[(\\#A#0!S6L#=#7=: %?)8!H7D)_ P(#_\nM@X$!_P<# _X/!@;\\'PP,^#\\8&'\" #5Y@P%<,\",#_#0C _PT(Q$@ G$7' _Q?\nMQP/<D>-#C_A%P%>LE,^HC>X^D%JO098/J IQ +5=,]E*S&0WM4$.:F?B3/=H\nM6#D,5,H?%6)QS&TPI GG-L#3:R9IN0U@GW@9:L%.,<\"K0+T]P )>!GPA$2]#\nMN4W%\"IS; .=E #H1DP=I>F L3H=\\*!#*VX!ZKID\\+0#U@\"CT[=NU;>3N>\"(]\nM&[KUP%\">#JE!;4!((ABU 36)E:%!#YQE92J'(B.R,R(@HFLF4:T-T)E8&;KO\nMP#E6IM3&Q0%^D ,HM0\",VH!B98B5 OB_E0)X_SI<MB,\"46U (&T#RJF (>E8\nMV\\\"W=,(JRWV3LT=K!\\S;H1ONB: 1E3 F0 $(= .XG_F=ND%A$:YN@ <@)1H@\nML+H!F&_8#-7@0(41X/DUD[SL!F\"_&3\" MR!<V/<#R?$\\2(4\")&  EIA!=%KV\nM[M R+B=>/P_T:-F*,=4XX,5<$=K[0&D&%U*@P$>O$%#_-9._Z 9@IU$S-/*!\nMPV(<I++. ,1]S>2NN@$XNB&IT<UZ'#PTN@%!X)  ==$-P,O!^5Z&;K3Q@>@H\nM'W)9@0!@;J,;9*AAV88!W%3'H0KQLJV-Q#TPW>)#^EH;$-\\UDZ_6!LA)L PM\nM>^ WP8=8$!/ /4!I!&#8!I2U(3L/A)8'R-X!\\:P-J.J:255K U0I\"1C@_Q(P\nMP!_#4=O0QE<.)!)EZ*!>T 8$2@CV&]H@:PT+U^Q0-!#F,1#QO #UCGD;:F$-\nM ,L8T#QJ:('XW@94=KX+[FV@$E'MSXJ![;Z\\5B(?,.#_/F# _WW @/_[@ '_\nM]P$#_N\\#!OS?!PSXOP\\8\\'\\?,.#_/F# _WW @/_[@ '_]P$#U 0?,. K9B3@\nM_Y^ \"N J%F<T::/]#T3  D\"!BM](&U!$4\"P8]T::0 4I]<T#H7;I0/IQWH;G\nM)O&PM_'4 16]#:CSW@:@I@$S].R!NUP%$A/<@ \"S,;@!M+<A87D2JQ5X5&\\#\nM@H/#W@;0Y8\"3#CX=\\'^?#G@+BP[X/XL.. D,'\"08  X#!WASS:0I#!R@HFU3\nM@ +>@FV8#X#R761(;T($A L!AFU $IS=L U*<!!L VQYS:0LM@$\"\" 1!!]!J\nM P)I&U#I-9.T '# :AO=TFE8N7+?^.YH[;IQF8\"K(,='O + 5\\S0GU$;W7T@\nMM2E\"E@^H:J0#Y%93)+NI#7)0.PMGND><.)D _*!'A00L<QN,8L&Y#7\"\"#\\9M\nM@/W$RU 3R!0$,M3;#K\" EP%?2,3+4&Y3CP7G-L!Y&8!.Q.) FAX8:^5!/A0(\nMY6U /==,GA: >D 4^O;M&H:J0HFT3.C6 T.U/$@-:@-\"$L&H#:A)K P->N L\nM*]/ZY.F([(P(B.B:251K W0F5H;N.W\".E2FU<7& GT0 2)L04QM0K RQD0\"O\nM9S,!QY&P /^7L-0.W7!/!(TX( VZ 35?,YF+;@\"6@_M.W:\"P\"%<WP .0$@T0\nM6-T S#=LAIH)H,((\\/R:25YV [#?I#C 6Q N[/N!Y'@>I$(!L@-(CP_0G9:]\nM.[2,RXG7SP,]6K9B3'6W8\\5<$=K[0&D&%U*@P$>O$%#_-9._Z 9@IU$S-/*!\nMPP!H2&6= 8C[FLE==0-P=$-2HYLQT/#0Z 8$@4,\"U$4W \"\\'YWL9NM'&!Z*C\nM?,AE%!@ <QO=($,-RS8,X*8Z#E6(EVUM).Z!Z18?TM?:@/BNF7RU-D!.@F5H\nMV0._\"3Z$!C8!W .41@\"&;4!9&[+S0&AY@.P=$,_:@*JNF52U-D\"5\\L$\"KH(#\nMA\"T^L)OF0:IR R#\\+CZ* P380J1L:\"/]#O1S>9\"<!@> @39@)I$RM.B!MB@/\nM4E+:@%BNF2R5-L!\"&Q+PP#N1!QD);4 DUTR20AM@2PE@/0W:Z)4#B409.J@7\nMM &!$H+]AC;(6L/\"-3L4#81Y#$0\\+T\"]8]Z&6E@#P#(&-(\\:6B\"^MP&5G>^\"\nM>QNH1%3[LV)@NR^OE<C$I#Y@P%5@NX.W 5\\QP@/^_XFI /[/5  O@4  CJ-\"\nM PZB!@?\\7PT.YJ, GH(<[_ * %\\Q$#ZC-KK[0&I3A\"P?4)67 ;5=,]EJBF0W\nMM4$.:F=E3O>($R<380]Z5(C+-+?!*!:<VP G^&#<!MA/O PUHJ88H+&@WAY@\nM 2\\#OI\"(EZ'<IAX+SFV \\S( G8C%@6B9@-=#^(#CV(2 .QHY@+.@$;#6!ZJC\nM V2[ORM40(W73,8BX0\";:1T7,1L:\\5$Y/&(TN)U$/<[;H+@,]S; XVLF<;T-\nMH+\\!,W3^@2EL!7+>H0(\"F &H9, ,]3:U>G!O QR8 :ADWR@,Z/<#R9%H2(4\"\nM3'  EL( T6G9NT/+J%*F?A[HT40Q2 T&S_\"W0S>\\]X'28#2D0(&/#!]0_S63\nMO^@&8*=1,S3R@<-X-*2RPP#$?<WDKKH!.+HAJ='-$!0\\-+H!45\\SJ8MN %Z.\nMR/<RE \\OHG:@(\\H/B*=P 06\"!;M-)8-@\"QNTW:9!^ZE$O&QK([</3! [T!$E\nM\"J2P-J\"^:R9?K0V0DV 9>OE 6$VDRD1&=/7K@*BNF53%-D!E@F5HXP-7N1ZU\nM-GX\\ )8!&5XS\"6MM@)R$PP\"NH@(&_%\\%##B)'P[P?S\\<X/]^.,#__7\" __OA\nM /_WPP'^[X<#_-\\/!_B_'P[P?S\\<X/^RZ1$_'.#_?CC :YL>&*O2(1\\*A/(V\nMH)YK)D\\+0#T@\"GW[=FT;N3N>R \\'W7I@J$N'U* V(\"01C-J FL3*T* 'SGH%\nMD.R,\"(CHFDE4:P-T)E:&[CMPCBN % ?X00Z@W&@P:@.*E2%:<,#_M>\" _VO!\nM 5=YQY+,1B\"MT0%2D><DFH\"RH,$0/L8V\\\"U2;S>9M-NY91YGI$,!XK$;CL9_\nMS ^0F>P&A!8.C-T 6N*?YVY0B0]W-\\ +L!(-4-C= -0G<(8Z(T7Y<&<$.+P!\nM8)\\L8(#_6\\  #V- CX[R(9<9\" \"& 0TBU+!LPRSN;C[B4(7(4-\"X!Z9;?$A?\nM:P/\" @;0UH9;P\"!E#_PF^! ,8@*X!RB5  S;@+(V9.>!T/( V0L\"[ 8% + V\nM4HH\"!O@_!0SPQW#4-K3QE0.)1!DZJ!>T 8$2@OV&-LA:P\\(U.Q0-AGD,1@SF\nMK'?,V] T!P+ ,@8TCQI:(+ZW 96=[X)[&ZA$5/NS8F\"[+Z^52#O,\"PSXOQ<8\nM\\'\\O,.#_7F# _[W @/][@0&:@(0Y(FBU 8&T#2BG D9 @J!!(9VPRG+?7/31\nMVG4CPD ]$32BDF47%  @NH$7TP):W6\"P\"%<WP ,HP$A@=0,PW[ 9*HP4RH$+\nM(\\#S:R9YV0W ?O-9(-0-]UD U\\A@\"A>03F# _YW @/\\[@0'_=P(#_N\\$!OS?\nM\"0P &7 D00 5WN'F\"?\\L6KH@8^;$:1-D$XI;P7[N6S/.82\\7CG\"?Y6_=?#@0\nM@AD, M\"/#;NT\"!Q \"QY>#J<#!PQ;\\.,%CA0P/+!H9^CO$$X_0/!@ >I0T ,H\nMOD.P->>B[V)! )8RNH4.KP K!CP9L&9 E0*\"/SBPOD#C .,&\"#YU0*\\\"KF<:\nM8/A:V2P8;(5L\"R]8GPH<@S$7Z%-@BZH6B%% ET<[() 7#\\\"\"Z7KG 2]E>]F!\nM4 6>'?A5H+P['_\"Q0%]S/3!, K% \\ &_!NPJ\\,O0MM9Z \\27*!\\6$.<5\"]09\nM /(7*Q YP.4 [17L/N4!RS_:MN!;!B0<<,J8R]M_#MCO[%/].ZA_%DR+*<OM\nMZ:ZG%)BBV2T3:#N)W1GKQK^T6_?DVF;C>[GI3NC;XWQS*$OV$V-&3?U9 7U^\nMO8 @T4R2+<I#2F;!W_G;:;0[D67[EJ0*EC-/+A@>_( CC>%(%BQ%LF!NH4@L\nM&%MZL@,?5=F\"%4JPS?VJ8/C\"! \\5R8*I/Q=,/XJ2Q>./XO+& L$$DQBR9,.E\nM_D99&OX/E67A_U19:OYOE:7E_U>&/2O+S__ELKPT?8O#V\\JP7QGV+,,N9]B-\nMNHSUOLM2V[O,];[+6N^[M/6^RU_ON[PUO8[0W:K.?],->U:=\"6#]G>/&W_GM\nMN6'/NC/]?Z-!B>T?Y'VJ05]='^3NKP:9/\\NQ!Z7R/%.JTO]+I6H@=+?R/%.K\nMCY:WFNWZJZ&6O]IK^2N0?= LUY[E[J5F9?=_6&;_A\\7T?UAG_X<=]?S89G\\_\nM-M_P9/4M7_;9]F4W;5\\VVO9E3TU?EO]_LV:N6JZ9T%[N&<1<+MH.CN(?SCIM\nM@2N?YNVSIFTP?5L.P[NM</V;?7^S[V^6.NN;?7^S?U8X?Y\\USMC+C8MOZ^6*\nM^UXNMN_E7'FJ<YX\\U3KG6ZWS['6NSUIWUUO;>;+;?7?\\G2=-]>Z!N<Z+:Z[S\nMG\"\\U+XBMS_/V5O.>6S^OOY. !1. VZL!SD!\"P;T:P*G08%X-D!ZO5P,<X%.Q\nM;-/&K5O&U@#_9VN 8Y5D:P#,6K8&HOU_M@:)S=;@B=D:@+]E:X )R]8 $Y:M\nM 2(*6_,'MN8,;(T<86L^PM9(6+8&F.QLS=G9&CP[6X-/9FL M(\\&.((*;HH!\n---------- cut here ----------\n-- \n    _--_|\\    Clive Mitchell               ph: +61 9 4916384\n   /      \\   Regional Network Systems     mitchell@telecomwa.oz.au\n>> *_.--._/   Perth , Western Australia\n         v\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4222, "properties": {"category": "rec.motorcycles", "text": "From: jon@bigdog (Jon Wright)\nSubject: Anybody tape Daytona?\nOrganization: Pages Software Inc.\nLines: 13\n\nIn article <C5L5Fy.GH9@acsu.buffalo.edu> v060j5kb@ubvmsb.cc.buffalo.edu (Mark W  \nOlszowy) writes:\n> I haven't seen anything about it yet, but if it's already been mentioned I'm\n> sorry for the repost.  Anyways, TNN is showing Daytona on Sunday April 18\n> at 7:00pm to 8:30pm (EST).  Don't miss it.  It's got a hell of a finish!\n\nWell, I looked for it and didn't manage to find it in my listings for TNN.  Has  \nanybody taped it VHS, and could they be persuaded to lend it to me after they  \nwatch it?  I would be most greatful.\n-- \n------------------------------------------------------------------------------\nJon Wright              \"Now how the hell did              Pages Software Inc.\nDoD #0823              THAT come outa my mouth?\"                  '86 VFR700f2\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4223, "properties": {"category": "rec.sport.baseball", "text": "From: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nSubject: Re: My '93 picks (with only one comment)\nOrganization: Computer Science Department at Rose-Hulman\nLines: 53\nDistribution: na\nReply-To: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nNNTP-Posting-Host: g215a-1.nextwork.rose-hulman.edu\n\nIn article <jfr2.733938351@Ra.MsState.Edu> jfr2@Ra.MsState.Edu (Jackie F.  \nRussell) writes:\n> psg+@pitt.edu (Paul S Galvanek) writes:\n> >Since I did so well last year, here's another shot at picking the winners\n> >and losers.  I'll skip the commentary on why I picked who to finish where\n> >due to lack of time for flame wars 8^)  \n> \n> \n> >\tKansas City\t25.0\n> \n> I think KC has a much better shot at being in the top division than\n> the bottom. One word(Cone) should help things tremendously. I think\n> you are way off the mark here.\n\nAnother word (offense) makes them my pick for last too.\n(Well, there's also my policy of never picking a Buck Rodgers' team for last)\n\n> >\tFlorida\t\t12.0\n> >\tChicago\t\t20.0\n> \n> I dont know if an expansion team has ever finished \"not last\" but I think\n> this year might be a first if it hasnt ever happened. The Cubs are worse\n\nThe 1961 Angels were  1/2 game out of 7th. The Athletics and \nexpansion Senators finished tied for last. \nThe 1962 Colt 45's finshed 8th - ahead of the Cubs (the Mets were last).\nThe 1969 Royals finshed 4th - ahead of the White Sox (the Pilots in last).\nThe 1977 Mariners finished 6th - ahead of the Athletics(in last).\n\nApparently being an expansion team with a poor A's or Chicago \nteam around is a `good thing'\n\n> >National League West\n> \n> >\tCincinnati      ----\n> >\tHouston          5.0\n> >\tAtlanta          8.0\n> ARGH! Here is where you are obviously dead wrong. Not since the Yankees of\n> the 20's and 30's has a team been so nicely setup as this years(and years \n> to come) Braves. I don't think that the All-Star team will be able to beat \n\nThis may be an appropriate comparison.\nThe 1929-31 Yankees finshed 2nd, 3rd and 2nd finshing \n18, 16 and 13-1/2 games out of first. \nIn 1933,'34 and '35 they also finished second ( though they were only\n7, 7 and 3 games out).\nEven great teams can lose - That's why they play the season.\n(on the other hand... I'm still picking the Braves to go all the way)\n\njohn rickert\nrickert@nextwork.rose-hulman\nPredictions for '93: Marlins: 70 wins, Rockies: 50 wins\nand....Rockies fans will claim that the offense is adequate.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4224, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: pmhudepo@cs.vu.nl (Hudepohl PMJ)\nSubject: Re: Windows hangs on 486DX33???\nOrganization: Fac. Wiskunde & Informatica, VU, Amsterdam\nLines: 49\n\nwlieftin@cs.vu.nl (Liefting W) writes:\n: Hello all you windows freaks out there.\n: \n: I bought Windows 3.1 (dutch version) some time ago, and run it on a\n: 286. I recently upgraded my computer to a 486DX33, 256K cache, 4M memory,\n: 212M Maxtor HD. Works real fine, but not with windows.\n: \n: When playing Patience (SOL) or minesweeper, suddenly the system hangs:\n: - I just can't move my mouse anymore.\n: or\n: - Screen goes blank, nothing further\n: or\n: - Screen goes blank, computer seems to reboot, but stops before reaching\n: the end of the memory test.\n: \n: Once (or maybe even twice) I got a message about some illegal kernel call\n: or something (accompanied by a hex adress) and a close-button. When pressing\n: it, the application wouldn't close, though.\n: \n: I haven't experienced this problem with other programs than these, but that's\n: mainly because I haven't really used other programs. I suspect them to hang \n: too.\n: \n: Anything known about this problem. (Or, better, any patches available?)\n: \n: \n: Oh, forgot to tell, if, in CMOS RAM, I make the computer faster (higher\n: bus speed, less wait states, enable both caches etc), the crash comes\n: faster (after 10 min. or so). If I deliberately slow the system down\n: (slow bus speed, wait states, disable internal/external cache, no\n: shadowing) the crash comes later, but comes.\n: \n: Hope anyone can help.\n: \n: Wouter.\n: \n: \n\nHi,\n\nI got a problem too, with a 486DX2-66 VLB, 4 Mb RAM,  170Mb disk.\nSometimes, when I switch on the computer, it starts Windows (3.1 Dutch)\nWindows switches to 1024x768, switches back to text-mode and exits\nto DOS. After one or two resets, the system works fine...\n\nThanks\nPatrick\nVU Amsterdam\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4225, "properties": {"category": "sci.space", "text": "From: Pat.Hoage@f6507.n124.z1.fidonet.org (Pat Hoage)\nSubject: army in space\nLines: 7\n\nI just got out of the Army. Go signal corps or Intelligence; \nphotointelligence interpretation. If you go ADA you might get to play with \nrockets but space will look pretty far away dug in the mud next to a grunt \nprotecting the foward troops from low flying objects. Good Luck  \n \n\n * Origin: *AmeriComm*, 214/373-7314. Dallas'Info Source. (1:124/6507)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4226, "properties": {"category": "misc.forsale", "text": "From: donath@math.uiowa.edu (Matt Donath)\nSubject: US Robotics 14.4 modem\nOriginator: donath@oak.math.uiowa.edu\nNntp-Posting-Host: oak.math.uiowa.edu\nOrganization: University of Iowa, Iowa City, IA, USA\nLines: 5\n\n\nReply to haljordan@delphi.com or call 708 674-2603:\n\nU.S. Robotics 16.8 Dual standard, V.32 bis, 14.4k baud,\n16.8 hst.  Price: $449.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4227, "properties": {"category": "rec.sport.baseball", "text": "From: Howard_Wong@mindlink.bc.ca (Howard Wong)\nSubject: Jack Morris\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 9\n\nAs of today, April 17, Jack Morris has lost his first three starts.\n\nHowever, the Jays are doing well without him and injured Dave Stuart.\n\nThis is a credit to the rest of the pitching staff.\n\nHas Jack lost a bit of his edge? What is the worst start Jack Morris has had?\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4228, "properties": {"category": "misc.forsale", "text": "Reply-To: jfreeman@frontporch.win.net (Jeff Freeman)\nFrom: jfreeman@frontporch.win.net (Jeff Freeman)\nSubject: Re: Question/Suggestion for Everyone - Please Read\nLines: 28\n\n>\n>If both paries do this, then the transaction will obviously \n>be COD.  This allows both parties to exercise the amount of\n>trust they see fit.\n\n\nCOD is fine until the buyer opens the box to find they paid 150.00\nfor a brick. Or if it the seller allows for a personal check to be used\non a COD it's fine till a stop payment is made. There are few methods\nto protect both buyer and seller in any sort of transaction. Even with\nmerchants and customers there are problems...stolen credit cards, \nchargebacks, no return policies and getting the wrong item, etc.\n\nAbout the only protection available to to do business with someone you\ntrust....someone who has been around for a while.\n\nJeff\n\n\n________________________________________________________________________\n\nJeff Freeman                    1-800-GO-PORCH Toll-Free\nFront Porch Computers           1-706-695-1888 <voice>\nRt 2 Box 2178                   1-706-695-1990 <fax>\nChatsworth, GA 30705            75260,21  Compuserve ID #\n        Internet: jfreeman@frontporch.win.net\n________________________________________________________________________\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4229, "properties": {"category": "rec.autos", "text": "From: grady@world.std.com (Dick Grady)\nSubject: Re: seating ergonomics - headroom\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 14\n\nIn article <930411.153152.amiller@almaden.ibm.com> amiller@almaden.ibm.com (Alex Miller) writes:\n>My physical therapist has suggested that a good driving position\n>for me is to have my back nearly vertical and for my knees not\n>to be much higher than my hips.\n> [...]\n>Are there any cars that are particularly good in respect to\n>having both headroom and a well designed seat height?\n\nTake a look at mini-vans.  I sat in a Dodge Caravan, which had a high seat\nand plenty of headroom.\n\n-- \nDick Grady           Salem, NH,  USA            grady@world.std.com\nSo many newsgroups, so little time!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4230, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Galileo Update - 04/15/93\nOrganization: Jet Propulsion Laboratory\nLines: 113\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: Galileo, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nForwarded from Neal Ausman, Galileo Mission Director\n\n                                GALILEO\n                     MISSION DIRECTOR STATUS REPORT\n                             POST-LAUNCH\n                         April 9 - 15, 1993\n\nSPACECRAFT\n\n1.  On April 9, real-time commands were sent, as planned, to reacquire\ncelestial reference after completion of the Low Gain Antenna (LGA-2)\nswing/Dual Drive Actuator (DDA) hammer activities.\n\n2.  On April 9, the EJ-1 (Earth-Jupiter #1) sequence memory load was uplinked\nto the spacecraft without incident.  This sequence covers spacecraft activity\nfrom April 12, 1993 to June 14, 1993 and includes a window for the Radio Relay\nAntenna (RRA) slew test on April 28, 1993.  The command loss timer was set to\n11 days as a part of this sequence memory load.\n\n3.  On April 12 and 15, a NO-OP command was sent to reset the command loss\ntimer to 264 hours, its planned value during this mission phase.\n\n4.  On April 12, cruise science Memory Readouts (MROs) were performed for the\nExtreme Ultraviolet Spectrometer (EUV), Dust Detector (DDS), and Magnetometer\n(MAG) instruments.  Preliminary analysis indicates the data was received\nproperly.\n\n5.  On April 12, an Ultra-Stable Oscillator (USO) test was performed to verify\nthe health status of the USO and to collect gravitational red shift experiment\ndata; long term trend analysis is continuing.\n\n6.  On April 14, a 40bps modulation index test was performed to determine the\noptimal Signal-to-Noise Ratio (SNR) when transmitting at 40bps.  Preliminary\nanalysis of the data suggests that the present pre-launch selected modulation\nindex is near the optimal level.\n\n7.  On April 15, cruise science Memory Readouts (MROs) were performed for the\nExtreme Ultraviolet Spectrometer (EUV) and Magnetometer (MAG) instrument.\nPreliminary analysis indicates the data was received properly.\n\n8.  On April 15, a periodic RPM (Retro-Propulsion Module) 10-Newton thruster\nflushing maintenance activity was performed; all 12 thrusters were flushed\nduring the activity.  Thruster performance throughout the activity was nominal.\n\n9.  The AC/DC bus imbalance measurements have not exhibited significant\nchanges (greater than 25 DN) throughout this period.  The AC measurement reads\n19 DN (4.3 volts).  The DC measurement reads 111 DN (12.9 volts).  These\nmeasurements are consistent with the model developed by the AC/DC special\nanomaly team.\n\n10. The Spacecraft status as of April 15, 1993, is as follows:\n\n       a)  System Power Margin -  60 watts\n       b)  Spin Configuration - Dual-Spin\n       c)  Spin Rate/Sensor - 3.15rpm/Star Scanner\n       d)  Spacecraft Attitude is approximately 18 degrees\n           off-sun (lagging) and 6 degrees off-earth (leading)\n       e)  Downlink telemetry rate/antenna- 40bps(coded)/LGA-1\n       f)  General Thermal Control - all temperatures within\n           acceptable range\n       g)  RPM Tank Pressures - all within acceptable range\n       h)  Orbiter Science- Instruments powered on are the PWS,\n           EUV, UVS, EPD, MAG, HIC, and DDS\n       i)  Probe/RRH - powered off, temperatures within\n           acceptable range\n       j)  CMD Loss Timer Setting - 264 hours\n           Time To Initiation - 260 hours\n\n\nGDS (Ground Data Systems):\n\n1.  Galileo participated in a second DSN (Deep Space Network) acceptance test\nfor the DSN Telemetry Phase 3 Upgrade on April 13, 1993, using CTA-21\n(Compatibility Test Area 21).  The purpose of this test was to verify\nthe flow of Galileo telemetry data through the new Telemetry Group Controller\n(TGC) and the Telemetry Channel Assembly (TCA).  The TGC/TCA is the replacement\nfor the current Telemetry Processing Assembly (TPA).  Seven different telemetry\nrates were run for this test; all ran well on both the MTS (MCCC Telemetry\nSubsystem) and the AMMOS MGDS V18.0 GIF with the exception of 10bps.  The\n10bps rate had some trouble staying in lock; it appears the TGC/TCA was\nnot metering the data correctly.  Further comparisons between the MGDS and MTS\ndata from this test are being conducted. MVT (Mission Verification Test) of\nthe TGC/TCA system is expected to begin May 16, 1993.\n\n\nTRAJECTORY\n\n     As of noon Thursday, April 15, 1993, the Galileo Spacecraft trajectory\nstatus was as follows:\n\n\tDistance from Earth         152,606,000 km (1.02 AU)\n\tDistance from Sun           277,519,800 km (1.86 AU)\n\tHeliocentric Speed          93,400 km per hour\n\tDistance from Jupiter       543,973,900 km\n\tRound Trip Light Time       17 minutes, 4 seconds\n\n\nSPECIAL TOPIC\n\n1.  As of April 15, 1993, a total of 70184 real-time commands have been\ntransmitted to Galileo since Launch.  Of these, 65076  were initiated in the\nsequence design process and 5108 initiated in the real-time command process.\nIn the past week, 7 real time commands were transmitted: 6 were initiated in\nthe sequence design process and one initiated in the real time command process.\nMajor command activities included commands to reacquire celestial reference,\nuplink the EJ-1 sequence memory load, and reset the command loss timer.\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | Being cynical never helps \n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | to correct the situation \n|_____|/  |_|/       |_____|/                     | and causes more aggravation\n                                                  | instead.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4231, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Moonbase race, NASA resources, why?\nOrganization: U of Toronto Zoology\nLines: 36\n\nIn article <keithley-220493104229@kip-37.apple.com> keithley@apple.com (Craig Keithley) writes:\n>Ah, there's the rub.  And a catch-22 to boot.  For the purposes of a\n>contest, you'll probably not compete if'n you can't afford the ride to get\n>there.  And although lower priced delivery systems might be doable, without\n>demand its doubtful that anyone will develop a new system...\n\nYou're assuming that the low-cost delivery system has to be a separate\nproject.  But why?  If you are spending hundreds of millions of dollars\nin hopes of winning a billion-dollar prize, it is *cheaper* to develop\nyour own launch system, charging its entire development cost against\nyour contest entry, than to try to do it with existing launchers.  No\nother demand is necessary.\n\n>> Any plan for doing\n>> sustained lunar exploration using existing launch systems is wasting\n>> money in a big way.\n>\n>This depends on the how soon the new launch system comes on line.  In other\n>words, perhaps a great deal of worthwhile technology (life support,\n>navigation, etc.) could be developed prior to a low cost launch system. \n>You wouldn't want to use the expensive stuff forever, but I'd hate to see\n>folks waiting to do anything until a low cost Mac, oops, I mean launch\n>system comes on line.\n\nYou're assuming that it's going to take a decade to build a new launch\nsystem.  But why?  The Saturn V took less than six years, depending on\nexactly when you date its start.  Pegasus took about three from project\nstart to first flight.  Before SDIO chickened out on orbital development,\nthe target date for an orbital DC-Y flight was 1996.  If you really want\nspeed, consider that the first prototypes of the Thor missile (still in\nservice as the core of the Delta launcher) shipped to the USAF less\nthan 18 months after the development go-ahead.\n\nOne of the most pernicious myths in this whole business is the belief\nthat you can't build a launcher without taking ten years and spending\nbillions of dollars.  It isn't true and never was.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.205+0000", "event": "documents", "entityId": 4232, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: nigel@cnw01.storesys.coles.oz.au (Nigel Harwood)\nSubject: Adaptec ASW-410 and Sony CDU-641\nOrganization: Coles Supermarkets\nLines: 24\n\nAbout two months ago I purchased the Adaptec ASW-410 driver for use with a\nCD-ROM drive.  At the time this seemed the thing to do as the documentation I\nhad with my Adaptec SCSI controller said that this is the driver to be used with\nCD-ROM drives.  Since then I have learn that this driver is out of date in a\nmajor way and that Adaptec have an upgrade deal for going to the next driver\n(I think it's called EZI-SCSI or something).  I wasn't too fussed about this\nuntil I upgraded by CD-ROM drive from a Sony CDU-541 to a Sony CDU-641.  I now\nfind that the audio-mode will not work.  I assume it is not being handled\ncorrectly by the ASW-410 driver.\n\nSo, should I chase Adaptec for an upgrade?  If so does anyone know their\nFAX number?\n\nAny assistance appreciated.\n\nRegards\n\nBTW: everything else works fine, certainly seems that Sony have caught up with\n     the rest with the 641.\n-- \n<<<<<<<<<<<<<<<<<<<<<<<<<  Nigel Harwood  >>>>>>>>>>>>>>>>>>>>>>>>>>>\n<< Post:  Coles Supermarkets, PO Box 480 Glen Iris 3146, Australia >>\n<< Phone: +61 3 829 6090  E-mail: nigel@cnw01.storesys.coles.oz.au >>\n<<   FAX: +61 3 829 6886                                           >>\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4233, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: President's Trip to Pittsburg\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 31\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n                         THE WHITE HOUSE\n\n\n                  Office of the Press Secretary\n\n                                                                   \nFor Immediate Release                             April 15, 1993\n\n\n\n                 STATEMENT BY THE PRESS SECRETARY\n\n\n\n     The President will travel to Pittsburgh on Saturday, April \n17 to talk about his job creation plan and its impact on the \nstate of Pennsylvania, where it would create as many as 3,818 \nfull time jobs and up to 21,240 summer jobs.  He will make a \npublic address at Pittsburgh International Airport at 9:30 am.  \n\n     The President will leave Washington early Saturday morning \nand return that afternoon.  A White House press charter will \ndepart Andrews Air Force Base at 7:30.  Filing facilities will be \navailable in Pittsburgh.\n\n                               ###\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4234, "properties": {"category": "talk.politics.mideast", "text": "From: kaveh@gate-koi.corp.sgi.com (Kaveh Smith )\nSubject: Jews/Islam  Dr. Frankenstien\nNntp-Posting-Host: gate-koi.corp.sgi.com\nReply-To: kaveh@gate-koi.corp.sgi.com (Kaveh Smith )\nOrganization: Silicon Graphics, Inc., Mountain View, CA, USA\nLines: 49\n\nI have found Jewish people very imagentative and creative. Jewish religion was the foundation for Christianity and\nIslam.  In other words Judaism has fathered both religions. Now Islam has turned against its father I may say.\nIt is Ironic that after communizem threat is almost gone, religion wars are going to be on the raise. \nI thought the idea of believing on one God, was to Unite all man kind. How come both Jews and Islam which believe\non the same God, \"the God of Ebrahim\" are killing each other? Is this like Dr. Frankenstien's story?\nHow are you going to stop this from happening? How are you going to deal with so many Muslims. Nuking them \nwould distroy the whole world? Would God get mad, since you have killed his followers, you believe on the same\nGod, same heaven and the same hell after all? What is the peacefull way of ending this Saga?\n\n\nMan kind needs religion, since it sets up the rules and the regulations which keeps the society in a healthy state.\nA religion is mostly a sets of rules which people have experienced and know it works for the society.\nThe praying, keeps the sole healthy and meditates it. God does not care for man kinds pray, but man kind hopes\nthat God will help him when he prays.\nReligion works mostly on the moral issues and trys to put away the materialistic things in the life. But the \nreligious leaders need to make a living through religion? So they  may corrupt it, or turn it to their own way to\nmake their living. i.e Muslims have to pay  %20 percent of their income to the Mullahs. I guess the rabie  gets his\ncut too! \n\nIs in it that religion should be such that everybody on planet earth respects each other, be good toward each other\nhelps one another, respect the mother nature. Is in that heaven and hell are created on earth through the acts \nthat we take today?  Is in it that within every man there is good and bad, he could choose either one, then he will\nsee the outcome of his choice.  How can we prevent man kind from going crazy over religion. How can we stop\nanother religious killing field, under poor Gods name? What are your thoughts? Do you think man kind would\nto come its senses, before it is too late?\n\n\nP.S. on the side\n\nDo you think that Moses saw the God on mount Sina? Why would God go to top of the mountain? He created\nthe earth, he could have been anywhere? why on top the mountain? Was it because people thought to see God\nyou have to reach to the skies/heavens? Why God kept coming back to Middle East? Was it because they created\nGod through their imagination?  Is that why Jewish people were told by God, they were the chosen ones?\n\nProfit Mohammad was married to Khadijeh. She was a Jewish. She taught him how to trade. She probably taught\nhim about Judaism. Quran is mostly copy right of Taurah (sp? old testement). Do you think God wrote Quran?\nMakeh was a trade city before Islam. Do you think it was made to be the center of Islamic world because Mohammad\nwanted to expand his trade business? Is that why  God has put his house in there? \n\nI think this religious stuff has gone too far. All man kind are going to hurt from it if they do not wise up.\nLook at David Koresh, how that turned out? I am afraid in the bigger scale, the Jews and the Muslims will\nhave the same ending!!!!!!!!\n\nReligion is needed in the sense to keep people in harmony and keep them doing good things, rather than\nplotting each others distruction.  There is one earth, One life and one God. Let's all man kind be good toward\neach other.\n\nGod help us all.\nPeace\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4235, "properties": {"category": "comp.sys.mac.hardware", "text": "From: scott@silverbullet.cam.org (Jeff Scott)\nSubject: Re: NTSC and the Mac\nLines: 24\nX-Mailer: rnMac Buggy, I mean Beta, Test Version\n\n\n\t\t\t\t\t<stuff deleted>\n \n> Also, I am not interested in Quicktime.  I would merely like to\n> use my Mac as a television from time to time.  I have a nice\n> Sony 1430 monitor, and I would like to use it as a second TV\n> when my wife is watching sitcoms on our regular TV.  \n> \n\t\t\t\t\t<other stuff deleted>\n\nWouldn't it be cheaper to just buy a little fourteen inch colour tv? Just \ncurious...\n\n> \n> George Micahels\n\n\n\n\n--\n\nJeff Scott\nMontreal, Que, Canada\nscott@silverbullet.cam.org\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4236, "properties": {"category": "comp.windows.x", "text": "From: tdunbar@vtaix.cc.vt.edu (Thomas Dunbar)\nSubject: Re: X Toolkits\nSummary: Get the Athena 3D widget set\nDistribution: inet\nOrganization: Virginia Tech, Blacksburg, VA\nLines: 9\nNNTP-Posting-Host: vtaix.cc.vt.edu\n\n\n libXaw3d, the 3D Athena widget set will greatly improve the\n\"sculptured\" look. In Linux, with its shared, jump-table libs, you\ndon't even have to recompile or relink. you merely have to:\n ln -sf /lib/libXaw3d.so.3.0 /lib/libXaw.so.3\n\n\n\n   thomas\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4237, "properties": {"category": "rec.motorcycles", "text": "From: mmanning@icomsim.com (Michael Manning)\nSubject: Re: Bikes And Contacts\nOrganization: Icom Simulations\nLines: 30\n\nIn article <1993Apr13.163450.1@skcla.monsanto.com>  \nmpmena@skcla.monsanto.com writes:\n\n> Michael (Manning)...Must be that blockhead of yours....the gargoyles\n> are the ONLY thing that work for me! ;*}\n> \n> \n> Michael (Menard)\n> \n> P.S. When you showin' up at Highland House? We'll compare sunglasses...\n\nLet's see how the weather is Saturday or Sunday. It sucks\ntoday. What time is good?\nYou're welcome to give any of the ones I have a try.  As\nfor the gargoyles, if you want mine you can have 'em.  I\nthink the bridge of my nose holds them too far from my face.\nSame deal for the two of my friends who tried them. For\npeople who use them with a full face helmet, all bets are\noff. Sorry if they fit you well and took my complaint\npersonally. Yes the Oakleys are much more desirable squid\nattire. Also the gargoyles aren't that ugly, even in my\nopinion, or I wouldn't have tried them.\n\n--\nMichael Manning\nmmanning@icomsim.com (NeXTMail accepted.)\n\n`92 FLSTF FatBoy\n`92 Ducati 900SS\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4238, "properties": {"category": "sci.med", "text": "From: pete@smtl.demon.co.uk (Pete Phillips)\nSubject: Nebulisers and particle Size\nX-Address: Bridgend, S. Wales, CF31 1JP\nReply-To: pete@smtl.demon.co.uk\nOrganization: Surgical Materials Testing Laboratory\nX-Fax: +44 656 667291\nX-Phone: +44 656 652166\nLines: 25\n\n\nHi,\n\nwe are just completing a project on nebuliser performance, and have a\nwealth of data on particle size and output which we are going to use\nto adjudicate a contract next week.\n\nAlthough the output data is easy for us to present, there seems to be\nlittle concensus on the optimum diameter of the nebulised droplets for\nstraightforward inhalation therapy (eg: for asthmatics).\n\nSome say that the droplets must be smaller than 5 microns, whilst\nothers say that if they are too small they will not be effective.\n\nAnyone up on this topic who could summarise the current status ?\n\nCheers,\nPete\n-- \nPete Phillips, Deputy Director, Surgical Materials Testing Lab, \nBridgend General Hospital, S. Wales. 0656-652166 pete@smtl.demon.co.uk   \n--\n\"The Four Horse Oppressors of the Apocalypse were Nutritional\nDeprivation, State of Belligerency, Widespread Transmittable Condition\nand Terminal Inconvenience\" - Official Politically Correct Dictionary\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4239, "properties": {"category": "talk.religion.misc", "text": "From: hall@boi.hp.com (Hal Leifson)\nSubject: Re: [lds] kermit's reply [was: Re: Tony Rose was : FREE BOOK OF MORMON\nOrganization: Hewlett-Packard / Boise, Idaho\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 83\n\nRobert Weiss (psyrobtw@ubvmsb.cc.buffalo.edu) wrote:\n:\n (lots of stuff about the Nicene Creed deleted which can be read in the\n  original basenote.  I will also leave it up to other LDS netters to\n  take Mr. Weiss to task on using Mormon Doctrine to declare the difinitive\n  word on what the LDS Church teaches as doctrine.  Hopefully the LDS \n  netters will be amiable in their explanation.)\n\nSince it would do no good to rebut what Mr. Weiss has stated on the origin\nof the Nicene Creed and its status as devine and inspired (I say \"no good\"\nbecause it cannot be proved through discussion or debate as to whether or not \nthe authors of the Creed were inspired), I leave you (it will be some time \nbefore I post again) with the following thought authored by Eugene England, \nProfessor of English at Brigham Young University.  Mr. England wrote the \nfollowing as part of a book review section in This People's magazine (Spring \n1993 edition):\n\n  \"I conclude with a little sermon because I believe we will not be a Mormon--\n  or human--family until we can get over labeling and rejecting each other \n  with terms like feminist or patriarchal, liberal or conservative (Christian \n  or non-Christian -- Hal 8^).  When we are tempted to draw a circle around\n  a set of beliefs and traditions and styles and call it American, then exclude\n  those who don't fit, it may be well to consider that perhaps the most central\n  defining characteristic of a good American might be \"one who doesn't draw\n  exclusive circles\" -- that the surest way of excluding ourselves from the \n  central American ideal is by excluding others.  And when we are tempted to\n  draw a circle around \"Mormon\" or \"Christian,\" to decide who is \"orthodox\"\n  and who isn't by how much they agree with us, it might be well to consider\n  that the central pillar of Christ's \"orthodoxy\" is our ability to love\n  unconditionally those who are different and include them in our family.\n\n  \"I recently spent some time in a \"Christian\" bookstore in California. The\n  service was excellent, the clerks and customers all smiling, neat, and\n  well-scrubbed, and there were the expected wholesome offerings of scriptural\n  commentaries, sentimental fiction, and collections of evangelistic sermons.\n  But I was dismayed to find how much shelf space was given to attacking \n  others, often viciously---whether the political left, our modern American\n  culture, or other religions.  A whole section was devoted to \"Cults and the\n  Occult,\" and as you might expect, Mormonism was right there under the same\n  rubric and indictment (often by the same authors) as Satanism.  And I found\n  I could either rent or buy (in English or Spanish) copies of The God Makers\n  (that absurdly inaccurate, even libelous, but very popular and dangerous\n  anti-Mormon film that uses exaclty the same techniques and even accusations\n  of the Nazi films that scapegoated Jews in the 1930s).\n\n  \"It seems to me one major indication that a person is a genuine convert to\n  Christ and his redemptive love is his lack of paranoia and anxiety (\"Perfect\n  love casteth out fear,\" I John 4:18).  I have always been pleased that the\n  LDS Church has not engaged in attacks on other faiths, though I find a \n  disheartening increase in willingness of individual Mormons to engage in the\n  same kinds of stereotyping and scapegoating---and even threats of coercive\n  action---as the \"religious right wing\" has launched this year against the\n  political left and American cultural and religious styles they don't like.\n  It is a fearful irony that in so doing Mormons take common cause with the\n  very people who have most slanderously attacked Mormons---people who would,\n  if they had power, forcefully restrict Mormons' rights along with those of\n  others they believe to be evil.\"\n\n\nThe above \"sermon\" was addressed to the LDS audience who usually subscribe\nto This People's magazine, but would certainly apply to all of us who\nrely on the mercies and grace of Jesus Christ to bring us back into His\narms.  \n\nEven though the LDS Church claims devine authority to exercise the principles \nof the restored gospel---as in the days of Christ, the Church does not claim \nperfection and infallibility in how those with authoritative status have or do \nnow lead the Church.  I, for one, do not wish to be labelled \"Christian\", if \nthose who profess themselves as Christians attack my beliefs because they are \nintollerent (for example) of the way my religion may interpret Biblical \nscriptures of the same source to have a different meaning and implication \nthan mainstream Christianity would give it.  Once again, being in the \nmajority does NOT in and of itself PROVE anything except that your collective \nvoice is louder.  That's really all the critics of the LDS Church have to stand\non in terms of the kind of Biblical interpretation used as proof to counter \nthe LDS Church' interpretation!  Using someone elses biased research of truths \nand non-truths (whose to say what the mixture is?) as an authoritative tool to \ndisprove or discredit is not being fair to anyone, least of all themselves. \nLet us simply agree to disagree, and share beliefs through adult discussion \nand conversation, thereby uplifting everyone.  \n\n \nHal Leifson -- signing off!\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4240, "properties": {"category": "rec.motorcycles", "text": "From: kristyn@netcom.com (Kristyn Geenwood)\nSubject: Re: Boom! Dog attack!\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 32\n\n\nIn article <9426.97.uupcb@compdyn.questor.org> ryan_cousineau@compdyn.questor.org (Ryan Cousineau)  writes:\n>My previous posting on dog attacks must have generated some bad karma or\n>something. I've weathered attempted dog attacks before using the\n>approved method: Slow down to screw up dog's triangulation of target,\n>then take off and laugh at the dog, now far behind you. This time, it\n>didn't work because I didn't have time. Riding up the hill leading to my\n>house, I encountered a liver-and-white Springer Spaniel (no relation to\n>the Springer Softail, or the Springer Spagthorpe, a close relation to\n>the Spagthorpe Viking). Actually, the dog encountered me with intent to\n>harm.\n>\n\n   Stuff deleted\n>\n>Ryan Cousinetc.|1982 Yamaha Vision XZ550 -Black Pig of Inverness|Live to Ride\n>KotRB          |1958 AJS 500 C/S -King Rat                      |to Work to\n>DoD# 0863      |I'd be a squid if I could afford the bike...    |Flame to\n>ryan.cousineau@compdyn.questor.org  |   Vancouver, BC, Canada   |Live . . .\n>\n>\n  I sure hope you got the cost of a replacement panel out of the owner. Here if\nthe owner should seem reluctant, a stop by the local SPCA (preferably with your\nfoot/leg all swollen up) to file a viscious dog report would do the trick.\n\n-g.\n\n===========================================================================\nGlenn Schmall - astroid@armory.com   | Do not cross the oncoming lanes of \nR65 from hell - beaming to cafe near | death that are californias highways.\nyou! Yeah I got a DOD#, so what?     | -SJ Mercury News\n===========================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4241, "properties": {"category": "sci.electronics", "text": "From: Mike Diack <mike-d@staff.tc.umn.edu>\nSubject: Husky Programmer bits req'd\nX-Xxdate: Sat, 17 Apr 93 04:10:01 GMT\nNntp-Posting-Host: dialup-slip-1-90.gw.umn.edu\nOrganization: persian cat & carpet co.\nX-Useragent: Nuntius v1.1.1d7\nLines: 5\n\nHelp !! - I'm looking for a ISA driver card and driver software for a\nLogical Devices Husky programmer (It aint mush good without these)\ncan anyone help with either of these items ?\ncheers\nMike.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4242, "properties": {"category": "sci.electronics", "text": "Subject: Re: What do Nuclear Site's Cooling Towers do?\nFrom: ganter@ifi.unibas.ch (Robert Ganter)\nOrganization: Institut fuer Informatik\nNntp-Posting-Host: schroeder.ifi.unibas.ch\nLines: 34\n\nIn article <1qlg9o$d7q@sequoia.ccsd.uts.EDU.AU>  writes:\n> \n> \n> I really don't know where to post this question so I figured that\n> this board would be most appropriate.\n> I was wondering about those massive concrete cylinders that\n> are ever present at nuclear poer sites. They look like cylinders\n> that have been pinched in the middle. Does anybody know what the\n> actual purpose of those things are?. I hear that they're called\n> 'Cooling Towers' but what the heck do they cool?\n> I hope someone can help \n> \n\nThis is definitely the wrong newsgroup for this, but never mind.\nAny machine powered by heat (motor, steam- or gasturbine, steamengine,  \nthermoelement,etc) work the better, the bigger the temperature difference  \nbetween input and output is. Because You never get all thermic energy out of  \nthe powering medium (steam, burning gaz, etc), You have to eliminate the rest  \nof the energy to keep the efficency high. A thermal electric power plant (coal,  \noil or atomic power) works just the same way. You heat water (steam) to power  \nthe turbine and generators. Because You don't get the whole energy out of the  \nsteam (efficency is never 100%) You have to cool down this steam again by  \nsomething else. Most power plants use cooling towers for this purpose (some  \ntype of mega-refrigerator...). Others use water of a river (ecologically not  \nunobjectionable). Got it ?\n\nCheers   Robert  (HB9NBY)\n--\nRobert Ganter\t\t\t/------------\\\nUniversitaet Basel\t\t| I am a fan |\nInstitut fuer Informatik\t| of my plan |\nBasel/Switzerland\t\t\\------------/\nganter@ifi.unibas.ch\namateurradio: HB9NBY\tpacket: HB9NBY@HB9EAS.CHE.EU\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4243, "properties": {"category": "sci.med", "text": "From: mhollowa@ic.sunysb.edu (Michael Holloway)\nSubject: Transplant Recipients Newsletter, April `93[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[DInternational Newsletter, April `93\nNntp-Posting-Host: engws5.ic.sunysb.edu\nOrganization: State University of New York at Stony Brook\nLines: 180\n\nThis will be the first of monthly postings of the newsletter of \nthe Long Island Chapter of the Transplant Recipients \nInternational Organization (TRIO).  Unfortunately, I was unable \nto post it before the date of this month's meeting.  I'm \nposting it anyway, and posting it world-wide instead of \nregional, in the hopes that some of the information may be \nuseful or illustrative.  Also, I hope it can be used as an \nexample and inspiration for the posting of other newsletters \nand data related to organ transplantation and donation.  \n\nMike\n\nTransplant Recipients\nInternational Organization\nLong Island Chapter\nP.O. Box 922\nHuntington, NY 11743-0922\t\t NEWSLETTER\n516/421-3258\n                                         APRIL 1993 \n                                         VOLUME IV   No. 8\n\n\nNEXT MEETING\n\n\nThe next meeting is WEDNESDAY APRIL 14 at 8 pm at the Knights \nof Columbus Emerald Manor, 517 Uniondale Avenue in Uniondale.  \nOur guest speaker will be Dr. Lewis Teperman.  Dr. Teperman \ntrained in Pittsburgh under Dr. Starzl and is now the Assistant \nDirector of the Liver Transplant Program at New York University \nMedical Center.  Dr. Teperman will discuss current trends in \ntransplantation and treatment and will answer questions.  He is \na long time friend of TRIO, surgeon to many of our members, and \nalways a gracious and delightful guest.   It is sure to be a \nvery informative, interesting and engaging evening.  Our \nhospitality committee,  Bette and Vito Suglia and Jim Spence \nwill be well prepared, and at last the weather should be \ncooperative. We hope to see a very large gathering to welcome \nDr. Teperman. \n\n          WEDNESDAY    APRIL 14  K of C   UNIONDALE\n\n\nLAST MEETING\n\nIt has been noted here before that the Long Island Chapter of \nTRIO has extraordinary power in predicting bad weather, being \nable to forecast rain, sleet and snow fully a month in advance.  \nNo TV weatherman can match us. This time we not only scored \nagain, but we were also able to disable the Long Island \nRailroad, making travel REALLY difficult.  None the less, many \nbraved the snow and we had an interesting meeting and good \nconversation.  Our scheduled speaker, Mrs. Elizabeth Linnehan, \na professional nutritionist, had a family emergency and was not \nable to attend.  She hope she will be with us in the fall to \ndiscuss diet and medications.  However,  Ms. Jennifer Friedman, \nan image consultant and sister of a liver transplant recipient \nwas kind enough to step in on very short notice.  Ms. Friedman \ngave us a lot of good advice about choosing clothes and makeup, \n(even a bit for men) to help us look well and healthy and to \nminimize some of the cosmetic effects of some of the medicine \nand drugs we take.  We are most grateful to Jennifer and thank \nher for an entertaining evening.\n\n\n\nANNUAL MEETING\n\nIn addition to welcoming Dr. Teperman, the April meeting is \nalso the Annual meeting of the Chapter.  This is the official \nnotice of the meeting as required by our By-Laws. The main \npurpose of the meeting is to review the past year, solicit \nmember views and ideas for better ways to meet their needs, and \nto elect members of the Board of Directors for the coming two \nyear term.  The nominating committee has prepared the following \nslate for the Board.\n\n         Anne (Liver Recipient) and Don Treffeisen\n         Robert (Heart Recipient) and Eulene Smith\n         Vito (Kidney Recipient) and Bette Suglia\n         Kay Grenzig (Liver Recipient)\n         Jan Schichtel (Kidney Recipient)\n         Larry Juliano (Kidney Recipient)\n         David Bekofsky (Director Public Education LITP)\n\nThose remaining on the Board for another year are:\n\n         Robert Carroll (Liver, Kidney & Pancreas Recipient)\n         Jerry (Kidney Recipient) and Jeanne Eichhorn\n         Ron (Kidney Donor) and Marie Healy\n         Peter Smith (Bone Marrow Recipient)\n         Patricia Ann Yankus (Kidney and Pancreas Recipient)\n         Walter Ruzak (Kidney Recipient)\n\nThis may seem to be a big Board, but many hands make light work \nand with our various medical uncertainties, it is good to have \nbackups for all the jobs on the Board.  Therefore, in addition \nto the slate being presented for voting, nominations will also \nbe accepted from the floor.  There is no set number of Board \nmembers and there is plenty of work. \n\nIn addition,  brief treasurer's and membership reports will be \ngiven and the floor will be open for any new business, \nsuggestions, or comments anyone would like to bring up.\n\nWe will keep the formal meeting short so that we can spend the \nmajority of the time with Dr. Teperman.\n\nFUTURE MEETINGS\n\nRemember the scheduled guests for the rest of the year.  \n\n     May  12      Dr. Peter Shaprio, Chief of Psychiatry\n                  Columbia Presbyterian Medical Center\n\n     June  9      Dr. Felix Rappaport, Director of the Stony \n                  Brook Kidney Transplant Program. \n\nPlan on being with us the second Wednesday of each month.\n\nNOTDAW\n\nThe week of April 18-24 is National Organ and Tissue Donor \nAwareness Week. NOTDAW. While we are planning news releases, \nspeaking engagements and meetings with Supervisors Gullata and \nGaffney, we have decided not to have our softball game   \nbecause of two year's experience with miserable weather. \n\nWe all can help spread the word on donor awareness, however. We \nhave found it effective to ask your pastor, or rabbi to publish \na letter or announcement in the parish bulletin, allow you to \naddress the congregation, or include mention of the gift of \nlife in his sermon.  Attached to this Newsletter is a sample \nletter and fact sheet you can use.   Thank you.\n\nDR. STARZL TO BE HONORED \n\nThe Long Island Chapter of the American Liver Foundation will \nhold its annual Auction and Dinner Dance on May 7th at the \nFountainbleu  on Jericho Turnpike in Jericho.  Dr. Thomas \nStarzl will be the honored guest.  Tickets are $50 person and \nare going fast.  If you'd like to meet Dr. Starzl,  call Anne \nTreffeisen at (516) 421-3258 for details.\n\nMEMBERSHIP NEWS \n\nCongratulations to Al Reese.  Al received his heart transplant \nin Pittsburgh after waiting 3 1/2 years.  He is home and doing \nwell after only 12 days in hospital.\n\nArthur Michaels, liver recipient, is planning to run the Boston \nMarathon in April. What fantastic proof that transplantation \nworks!  We hope the national press notices. \n     \nBob McCormack, after a persistent bout with infection, had his \ntransplanted kidney removed.  He is home now, back on dialysis \nand feeling better.  \n\nNicole Healy, kidney recipient and daughter of Ron and Marie, \nspent the past several weeks in hospital in Miami with problems \nencountered on vacation.  Marie has been with her in Florida.  \nThey are back in New York where Nicole's treatment will \ncontinue.  We wish Nicole a speedy recovery. \n\nKay Grenzig, liver recipient, is mending now after a bad fall \nthat resulted in a broken arm and a broken leg. Kay is a \ncandidate for the Board so we need her well soon.\n \nAnd best wishes to all coming out of the flu. It was a tough \nwinter for many, but the tulips are just under the snow.\n\nSEE YOU......WEDNESDAY   APRIL 14  8 PM   K of C UNIONDALE            \n                   DR. LEWIS TEPERMAN\n\n\n\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4244, "properties": {"category": "talk.politics.guns", "text": "From: feustel@netcom.com (David Feustel)\nSubject: Janet Reno and \"Responsibility\"\nOrganization: DAFCO: OS/2 Software Support & Consulting\nLines: 11\n\nI see no difference between Janet Reno's claim of responsibility for\nthe Waco Massacre and the IRA's claims of responsibility for various\nacts of terrorism against British citizens.\n\n\n-- \nDave Feustel N9MYI <feustel@netcom.com>\n\nI'm beginning to look forward to reaching the %100 allocation of taxes\nto pay for the interest on the national debt. At that point the\nfederal government will be will go out of business for lack of funds.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4245, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: franke@andrej.informatik.rwth-aachen.de (Christian Franke)\nSubject: Info about Fast Centronics, ECP, EPP\nOrganization: Rechnerbetrieb Informatik - RWTH Aachen\nLines: 25\nNNTP-Posting-Host: andrej.informatik.rwth-aachen.de\nKeywords: Centronics, ECP, EPP\n\nHello,\n\nin the EDN magazine I found a note about the new C&T 82C735\nI/O Controller. It support several parallel port protocols,\nincluding\n\tFast Centronics\n\tMicrosoft Enhanced Capabilities Protocol (ECP)\n\tEnhanced Parallel Port (EPP)\nThe last two handle data rates up to 2Mbytes/sec.\n\nIs there any specification about these protocols available?\n\nRegards,\n\n\tChristian Franke\n\n\tAachen University of Technology\n\tInformatik I\n\tAhornstrasse 55\n\tW-5100 Aachen\n\tGermany\n\tTel.: +49.241.80-21111\n\tE-Mail: franke@informatik.rwth-aachen.de\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4246, "properties": {"category": "talk.religion.misc", "text": "From: dickeney@access.digex.com (Dick Eney)\nSubject: Re: Flaming Nazis\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 10\nNNTP-Posting-Host: access.digex.net\n\nThe trouble with trying to find out the truth is that Roehm and his\nbuddies were ACCUSED OF being flaming faggots, one of the pretexts for the\nNight of Long Knives in which Roehm and most of the SA wing of the NSDAP\nwere purged.  Since the accusers thereafter controlled the records,\nanything bearing on the subject -- true or not -- has to be considered\ntainted evidence.  The available data suggest that Roehm and his crowd,\nthe SA -- Sturmabteilung, \"Storm Troopers\" -- left the world a better\nplace when they departed, but concrete particulars are still no more than\nmore or less shrewd guesses.  \n-- Diccon Frankborn\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4247, "properties": {"category": "misc.forsale", "text": "Subject: Amplifiers and Speakers\nFrom: krschimm@wsuhub.uc.twsu.edu (Karl Schimmel)\nOrganization: Wichita State University, Wichita, Ks\nLines: 27\n\nFOR SALE(of course)\n\nLinear Power model 952 IQ \n        2 channel automotive stereo amplifier\n        95 watts peak per channel\n        2 ohm stable\n        fidelity tested\n  $100 You pay shipping\n\n1 Pair (two (2)) Mobile Authority woofers\n        10 inch\n        2 inch voice coil\n        20 oz magnet\n        130 watt peak power handeling\n        4 ohms \n  $40 for both, you pay shipping (will not sell seperatly)\n\nreply thru e-mail to:\n\nKarl R. Schimmel\n\nThe Wichita State University\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n%krschimm at twsuvax   krschimm@wsuhub.uc.twsu.edu  %\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4248, "properties": {"category": "talk.politics.guns", "text": "From: donb@netcom.com (Don Baldwin)\nSubject: Re: BATF/FBI revenge\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 31\n\nIn article <C5sE5E.Coy@boi.hp.com> dianem@boi.hp.com (Diane Mathews) writes:\n>Ahem.  See the War on Drugs, as sponsored by the Bush and Reagan\n>administrations.  The precedent had well been set for federal agencies to\n>step on more than a few of what people consider \"rights.\"  I won't make\n>excuses for anyone, but most of the damage had been done before Clinton\n>even entered the race in '92.\n\nNot to mention last year's Weaver affair.\n\nAnyway, here's how I see the Waco affair; I'd be interested in other peoples'\ninterpretations...\n\n1. Koresh and his people were basically minding their own business.\n2. Some weapons violations may have been committed and I wouldn't have\n   disapproved of prosecuting him for those violations.  However, I think\n   the BATF was criminal for starting negotiations with a military style\n   assault and for firing into a house where there were children and other\n   noncombatants.\n3. I don't see they couldn't just leave a token guard on the place and wait\n   the BDs out; I don't approve of the tear gas approach and, if it caused\n   the fire to be started, I think the FBI agent responsible should spend\n   10-20 years in jail.\n4. However, if Koresh's response to the tear gas was to kill everyone there,\n   I hold him largely responsible for their deaths.\n\n   don\n\n\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4249, "properties": {"category": "sci.crypt", "text": "From: barrett@lucy.ee.und.ac.za (Alan Barrett)\nSubject: Re: White House Public Encryption Management Fact Sheet\nOrganization: Elec. Eng., Univ. Natal, Durban, S. Africa\nLines: 19\nDistribution: inet\nNNTP-Posting-Host: lucy.ee.und.ac.za\n\nIn article <C5LGAz.250@dove.nist.gov>,\nclipper@csrc.ncsl.nist.gov (Clipper Chip Announcement) writes:\n> Distribution: na\n\nNo thanks.  This topic is of interest to a much wider audience.\n\n> In making this decision, I do\n> not intend to prevent the private sector from developing, or the\n> government from approving, other microcircuits or algorithms that\n> are equally effective in assuring both privacy and a secure key-\n> escrow system.\n\n\"In making this decision, I intend to prevent the private sector from\ndeveloping, except with the government's approval, other microcircuits\nor algorithms that are more effective in assuring privacy.\"\n\n--apb\nAlan Barrett, Dept. of Electronic Eng., Univ. of Natal, Durban, South Africa\nRFC822: barrett@ee.und.ac.za\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4250, "properties": {"category": "rec.sport.baseball", "text": "From: u96_msopher@vaxc.stevens-tech.edu\nSubject: With a surge in the last two weeks...\nLines: 24\nOrganization: Stevens Institute Of Technology\n\n\n\n\nLadies and gentlemen, boys and girls, lend me your ears for but a moment,\n\n\n\n\tThe National Legue Eastern Division Champions will be the...\n\n\n\n       \t\t\tPhiladelphia Phillies\n\n\n\t\tI one hundred and ten percent guarantee!!!\n\n\n\n\tChamberlain Hollins Dykstra Incaviglia Jackson Williams\n\tDaulton Greene Kruk Mulholland Rivera Thompson Duncan\n\n\n\t\t\tWatch us soar in 1993!\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4251, "properties": {"category": "sci.crypt", "text": "From: throopw%sheol@concert.net\nSubject: Re: Clipper considered harmful\nLines: 59\n\n: From: shirriff@sprite.berkeley.edu (Ken Shirriff)\n: Message-ID: <1r24us$oeh@agate.berkeley.edu>\n: It seems likely to me that that a large subset of encrypted communications\n: would be archived to tape so they could be read if sometime in the future\n: probable cause arises and a warrant is obtained.\n\nI think it is unlikely that data like this could be used in court.\nCurrently LEAs can install wiretaps on large numbers of phones, record\ncalls without listening to them, and then post-facto obtain warrants\nand listen to calls after probable cause is established.  But this\nstrategy wouldn't get the stuff admitted in court.  (At least, not\nin the near term.)\n\nIn other words, near as I can tell, the thing that makes such evidence\ninadmissable is the interception without a warrant, not the attempt to\ninterpret what was intercepted without a warrant.  I'd be surprised\nthat archiving data without consent would be interpreted as anything\nbut analogous to a wiretap by the courts.\n\nNote that that doesn't mean I think it won't be done if technically\nfeasible.  Just as I'm sure many wiretaps are done now without\nwarrants, just to fish for avenues to investigate.  So in the future,\nstart surveilance, start archiving data, trump up some probable cause,\ndecrypt post-facto after the warrant is in hand, and the investigation\ngets a boost from data that, sadly, won't ever be presented to a jury.\n\nWhile I'm posting...  for an interesting cautionary tale projecting this\narchiving scenario to extremes, read \"Lacey and his Friends\", a\ncollection of sf stories by David Drake.  The US starts down the\nslippery slope by archiving *everyghing*.  But don't worry folks, it's\nstored in a secure repository where nobody but LEAs with warrants can\nget to it.  And by the way, we'll be installing cameras on all major\nstreets.  Hey, this is nothing new, we already have cameras in banks and\nteller machines, don't we?\n\nAnd then we'll pass laws requiring cameras covering *all* public\nplaces.  Then in some private places.  Then we'll make it a crime ever\nto be out of range of a camera, except in legally licensed privacy\ncubicles.  Only alone.  And with a thorough body search before and\nafter.  But, see, there's still a right to privacy.  We haven't\ncurtailed any rights, not really.  And just think how much easier it'd\nbe to solve crimes in such a situation: just obtain a warrant, put on a\nVR helmet and take a walk down memory lane.\n\nAnd hey, nobody'll be tracking *you* or *me*, no need to be self-conscious.\n\nAfter all, if you're not doing anything illegal...\n\nFunny, though.  While speeding and the radar detector industry became\npretty much a thing of the past, somehow all this didn't elminate all\ncrime in the story.  And somehow, politicians got exemptions on grounds\nof national security, and rich corporations got exemptions for their\nexecs on grounds of industrial espionage and the preservation of\ncompetition.  And not everybody was exactly happy with the system.  \nI can't imagine why.\n\n--\nWayne Throop   throopw%sheol@concert.net\n               throop%aurgate@concert.net\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4252, "properties": {"category": "rec.autos", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 13\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nCup holders (driving is an importantant enough undertaking)\nCellular phones and mobile fax machines (see above)\nVanity mirrors on the driver's side.\nAshtrays (smokers seem to think it's just fine to use the road)\nFake convertible roofs and vinyl roofs.\nAny gold trim.\n\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4253, "properties": {"category": "sci.med", "text": "From: stark@dwovax.enet.dec.com (Todd I. Stark)\nSubject: Re: OCD\nSummary: Here's the highlights from the DSM-IIIR\nOrganization: Digital Equipment Corporation\nLines: 45\nNNTP-Posting-Host: DWOVAX\n\n\nIn article <C5r3n6.FG4@news.Hawaii.Edu>, sharynk@Hawaii.Edu () writes...\n>I recently heard of a mental disorder called Obsessive Compulsive\n>Disorder.  What is it?  What causes it?  Could it be caused by a\n>nervous breakdown?\n> \nObesssive Compulsive Disorder (not to be confused with Obsessive Compulsive\n_Personality_ Disorder !) is an acute anxiety disorder characterized by\neither obsessions (persistent intrusive thoughts that cause anxiety when\nnot entertained), or compulsions (repetitive, ritualistic actions that\nsimilarly cause intense psychological discomfort when resisted).  \n\nOCD is often associated with certain forms of depression.  \n\nExamples of obsessive thoughts are repeated impulses to kill a loved\none (though not accompanied by anger), or a religious person having \nrecurrent blasphemous thoughts.  Generally, the individual attempts to ignore\nor suppress the intrusive thoughts by engaging in other activities.  \nThe individual realizes that the thoughts originate from the own mind, rather\nthan being from an external source.\n\nExamples of compulsive actions are constant repetitive hand washing,\nor other activity that is not realistically related to alleviating a\nsource of the anxiety.\n\nIn OCD, the obsessions or compulsions are highly distressing to the\nindividual, take an hour or more per day, and significantly impair their\ndaily routine and social relationships.\n\nTreatments include psychotherapy, behavioral methods, and sometimes\ncertain anti-depressants which have recently been found effective in alleviating\nobsessions and compulsions.\n\nThe standard diagnostic code for OCD, if you want to look it up in the\nDSM-III manual of psychiatric diagnosis is 300.30 .\n\n\t\t\t\t\t\tkind regards,\n\n\t\t\t\t\t\ttodd\n+-----------------------------------------------------------------------------+\n| Todd I. Stark\t\t\t\t  stark@dwovax.enet.dec.com           |\n| Digital Equipment Corporation\t\t             (215) 354-1273           |\n| Philadelphia, Pa. USA                                                       |\n|    \"(A word is) the skin of a living thought\"  Olliver Wendell Holmes, Jr.  |\n+-----------------------------------------------------------------------------+\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4254, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: winfrvk@dutiws.twi.tudelft.nl (R.v.Kampen)\nSubject: Re: Original IBM PC specs\nOrganization: Delft University of Technology\nLines: 15\n\nIn article <1993Apr9.101944.3200@ucbeh.san.uc.edu> hoffmamc@ucbeh.san.uc.edu writes:\n>A hard drive with XT-type controller can be added, but I recommend not trying a\n>full -height 5 1/4\" hard drive, as I have run into trouble with the 63.5w\n>supply not having the oomph to spool up those big heavy platters.\n>\none way to get the system going with one floppy drive and one hard\ndisk on a 63 watt power supply is to first disconnect the power from\nthe floppy drive than turn on the pc, you will notice the hard drive\nhaving a real difficult time getting up to speed, but it manages.\nwhen booting is finished, plug in your floppy drive, now it will work.\n\n(ok I know this is not very user friendly, maybe you are better off\nbuying a 486-66 with 300 watt power supply or something like that)\n\nwillem\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.206+0000", "event": "documents", "entityId": 4255, "properties": {"category": "sci.space", "text": "From: robink@hparc0.aus.hp.com (Robin Kenny)\nSubject: Re: Boom!  Whoosh......\nOrganization: HP Australasian Response Centre (Melbourne)\nX-Newsreader: TIN [version 1.1 PL8.5]\nLines: 26\n\nDavid Fuzzy Wells (wdwells@nyx.cs.du.edu) wrote:\n\n: I love the idea of an inflatable 1-mile long sign.... It will be a\n: really neat thing to see it explode when a bolt  (or even better, a\n: Westford Needle!) comes crashing into it at 10 clicks a sec.  \n\n: <BOOM!>  Whooooooooshhhhhh......  <sputter, sputter>\n\n: <okay, PRETEND it would make a sound!>\n                 ^^^^^^^^^^^^^^^^^^^^^\n\nJust a thought... (let's pretend it IS INFLATED and PRESSURIZED) wouldn't\nthere be a large static electricity build up around the puncture?\nIf the metalization is behind a clear sandwich (ie. insulated) then the \ndeflating balloon would generate electrical interference - \"noise\"\n\nBy the way, any serious high velocity impact would simply cut a \"Bugs\nBunny\" hole through the wall, highly unlikely to \"BOOM\", and the fabric\nwould almost certainly be ripstop.\n\n\nRegards,  Robin Kenny - a private and personal opinion, not in any way\n                        endorsed, authorised or known by my employers.\n ______________________________________________________________________\n   What the heck would I know about Space? I'm stuck at the \n   bottom of this huge gravity well!\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4256, "properties": {"category": "talk.politics.misc", "text": "From: libwca@emory.edu (Bill Anderson)\nSubject: Re: Formal Rebuttal to the Presumption of Jurisdiction\nOrganization: Emory University, Atlanta, GA\nLines: 17\nX-Newsreader: Tin 1.1 PL3\n\nkaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n: In article <1993Apr5.045612.14229@midway.uchicago.edu> thf2@kimbark.uchicago.edu (Ted Frank) writes:\n: \n: > [...]  You're not breathing clean air provided by government\n: > regulations, [...]\n: \n: If this doesn't beat all I ever heard!  The above certainly says a\n: mouthful about the mindset of Ted Frank, and also of statists\n: everywhere.\n: --\n\nYes, there's certainly no need to argue with him, or address the\nsubstance of what he says- he's a statist, after all.  Probably \npolitically correct, too...                           \n\nBill\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4257, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Objective morality (was Re: <Political Atheists?)\nOrganization: sgi\nLines: 46\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1qlf7gINN8sn@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >In another part of this thread, you've been telling us that the\n|> >\"goal\" of a natural morality is what animals do to survive.\n|> \n|> That's right.  Humans have gone somewhat beyond this though.  Perhaps\n|> our goal is one of self-actualization.\n\nHumans have \"gone somewhat beyond\" what, exactly?    In one thread\nyou're telling us that natural morality is what animals do to\nsurvive, and in this thread you are claiming that an omniscient\nbeing can \"definitely\" say what is right and what is wrong.   So\nwhat does this omniscient being use for a criterion?   The long-\nterm survival of the human species, or what?\n\nHow does omniscient map into \"definitely\" being able to assign\n\"right\" and \"wrong\" to actions?\n\n|> \n|> >But suppose that your omniscient being told you that the long\n|> >term survival of humanity requires us to exterminate some \n|> >other species, either terrestrial or alien.\n|> \n|> Now you are letting an omniscient being give information to me.  This\n|> was not part of the original premise.\n\nWell, your \"original premises\" have a habit of changing over time,\nso perhaps you'd like to review it for us, and tell us what the\ndifference is between an omniscient being be able to assign \"right\"\nand \"wrong\" to actions, and telling us the result, is. \n\n|> \n|> >Does that make it moral to do so?\n|> \n|> Which type of morality are you talking about?  In a natural sense, it\n|> is not at all immoral to harm another species (as long as it doesn't\n|> adversely affect your own, I guess).\n\nI'm talking about the morality introduced by you, which was going to\nbe implemented by this omniscient being that can \"definitely\" assign\n\"right\" and \"wrong\" to actions.\n\nYou tell us what type of morality that is.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4258, "properties": {"category": "comp.windows.x", "text": "From: cjhs@minster.york.ac.uk\nSubject: Re: Xt intrinsics: slow popups\nOrganization: Department of Computer Science, University of York, England\nLines: 33\n\ncjhs@minster.york.ac.uk wrote:\n: Help: I am running some sample problems from O'Reilly volume 4,\n: Xt Intrisics Programming Manual, chapter 3. popup\n: dialog boxes and so on.\n: \n: In example 3.5, page 76 : \"Creating a pop-up dialog box\"\n: \n: The application creates window with a button \"Quit\" and \"Press me\".\n: The button \"Press me\" pops up a dialog box. The strange feature of\n: this program is that it always pops up the dialog box much faster the\n: first time. If I try to pop it up a 2nd time (3rd, 4th .... time), \n: it is *much* slower.\n: \n: Has anyone any experience with these sample programs, or why I get\n: this behaviour - fast response time for the first time but slow response\n: time from 2nd time onwards ?\n: Anyone can give me some ideas on how to program popups so that each time\n: they popup in reasonable fast response time ?\n: \n: Thankyou - Shirley\n\nThanks to those who responded.\n\nWe were able to prevent this behaviour by two methods:\n\n1) running twm rather than olwm\n2) keeping olwm, but putting \"wmTimeout: 10\" in the resources\n\nIt has been suggested that the difficuty was something to do with the\nwindow manager positioning the popup window. Any guru who can analyse\nwhat is going on from this information, please post and let us know.\n\nThanks -- Shirley\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4259, "properties": {"category": "talk.politics.mideast", "text": "From: B8HA000 <B8HA@MUSICB.MCGILL.CA>\nSubject: Zionism is Racism\nLines: 8\nNntp-Posting-Host: vm1.mcgill.ca\nOrganization: McGill University\n\nIn Re:Syria's Expansion, the author writes that the UN thought\nZionism was Racism and that they were wrong.  They were correct\nthe first time, Zionism is Racism and thankfully, the McGill Daily\n(the student newspaper at McGill) was proud enough to print an article\nsaying so.  If you want a copy, send me mail.\n\nSteve\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4260, "properties": {"category": "sci.space", "text": "From: seale@possum.den.mmc.com (Eric H Seale)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nNntp-Posting-Host: pogo.den.mmc.com\nOrganization: Martin Marietta Astronautics, Denver\nLines: 8\n\nbaalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n>According the IAU Circular #5744, Comet Shoemaker-Levy 1993e, may be\n>temporarily in orbit around Jupiter.  The comet had apparently made a\n>close flyby of Jupiter sometime in 1992 resulting in the breakup of the\n>comet.\n\nOoooh -- who would have thought that Galileo would get the chance to\ncheck out a comet TOO?!?\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4261, "properties": {"category": "sci.crypt", "text": "From: ebrandt@jarthur.claremont.edu (Eli Brandt)\nSubject: Re: Do we need the clipper for cheap security?\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 56\n\nIn article <1r466c$an3@news.intercon.com> amanda@intercon.com (Amanda Walker) writes:\n>Agreed.  Remember, I don't even think of Clipper as encryption in any real \n>sense--if I did, I'd probably be a lot more annoyed about it.\n\nI agree with this assessment.  Furthermore, its promotion as\nproviding greater protection than bare voice is quite true, as far\nas it goes.  However, the only way for it to fulfill its stated goal\nof letting LE wiretap \"terrorists and drug dealers\" is to restrict\nstronger techniques.  \n\nWiretap targets presently use strong encryption, weak encryption, or\n(the vast majority) no encryption.  The latter two classes can be\ntapped.  With weak encryption in every phone, the no-encryption\nclass is merged into the weak-encryption class.  Will the\nintroduction of Clipper cause targets presently enjoying strong\nprivacy to give up on it?  that is, to rely for privacy on a system\nexpressly designed to deny it to people like them?  I doubt it.  The\nmere introduction of this scheme will give the government *nothing*.\n\nThe stated goal of preventing the degradation of wiretapping\ncapabilities can be fulfilled by restriction of domestic\ncryptography, and only by this restriction.  \"Clipper\" appears to be\nno more than a sop, given to the public to mute any complaints.  We\nwould find this a grossly inadequate tradeoff, but I fear the public\nat large will not care.  I hate to even mention gun control, but\nmost people seem to think that an `assault weapon' (as the NYT uses\nthe word) is some sort of automatic weapon, .50 caliber maybe.  Who\nwants to have such a thing legal?  Well, people know even less about\ncryptology; I suspect that strong cryptography could easily be\nlabeled \"too much secrecy for law-abiding citizens to need\".\n\n>That's not for Clinton (or anyone under him) to say, though.  Only the \n>federal and supreme courts can say anything about the constitutionality.\n>Anything the administration or any governmental agency says is opinion at \n>best.\n\nWhat they say is opinion, but what they do is what matters, and will\ncontinue unless overturned.  And the courts are reluctant to annul\nlaw or regulation, going to some length to decide cases on other\ngrounds.  Furthermore, Congress can get away with quite a bit.  They\ncould levy a burdensome tax; this would place enforcement in the\nhands of the BATF, who as we've seen you really don't want on your\ncase.  They could invoke the Commerce Clause; this seems most\nlikely.  This clause will get you anywhere these days.  The 18th was\nrequired because the Supreme Court ruled a prohibitory statute\nunconstitutional.  In 1970 Congress prohibited many drugs, with a\ntextual nod to the Commerce Clause.  The Controlled Substances\nAct of 1970 still stands.  I think the government could get away\nwith it.\n\n>Amanda Walker\n\n\t PGP 2 key by finger or e-mail\n   Eli   ebrandt@jarthur.claremont.edu\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4262, "properties": {"category": "sci.med", "text": "From: milsh@nmr-z.mgh.harvard.edu (Alex Milshteyn)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Mass General Hospital CIPR \nLines: 35\n\nIn article <C5H74z.9v4@crdnns.crd.ge.com> meltsner@crd.ge.com writes:\n>\n>\n>I wouldn't call it a double-blind, but one local restaurant's soup\n>provokes an impressive migraine headache for my wife -- that one\n>take-out and no other... \n\nNothing unisual.\nQuote:\n\"\nChinese Restaurant Syndrome (CRS):\na transient syndrome, associated with arterial dilatation, due to ingestion\nof monosodium glutamate, which is used liberally in seasoning chinese\nfood; it is characterized by throbbing of the head, lightheadedness,\ntightness of the jaw, neck and shoulders, and bachache.\n\"\nEnd quote.\nSource: Dorland's Illustrated Medical Dictionary, 27th edition, 1988, W.B. Saunders, p 1632.\n\nThis was known long ago.  Brain produces and uses some MSG naturally,\nbut not in doses it is served at some chinese places. \nHaving said that, i might add, that in MHO, MSG does not enhance\nflavor enoughf for me to miss it.  When I go to chinese places,\nI order food without MSG.  Goos places will do it for you.\nA prerequisite for such a service would be a waiter, capable of\nunderstanding, what you want.\n\n\nGood Luck.\n\n\nam\n-- \nAlexander M. Milshteyn M.D.   <milsh@cipr-server.mgh.harvard.edu>\nCIPR, MGH in Boston, MA.     (617)724-9507 Vox  (617)726-7830 Fax\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4263, "properties": {"category": "rec.motorcycles", "text": "From: chrispi@microsoft.com (Chris Pirih)\nSubject: Re: Live Free, but Quietly, or Die\nOrganization: Microsoft Corporation\nLines: 8\n\nIn rec.motorcycles egreen@east.sun.com writes:\n;Revving the throttle requires either [dis]engaging the clutch, \n;or accelerating.  \n\nNot if it's a Harley.\n\n---\nchris\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4264, "properties": {"category": "comp.graphics", "text": "From: echen@burn.ee.washington.edu (Ed Chen)\nSubject: Windows BMP to Sun raster or others?\nArticle-I.D.: shelley.1r49iaINNc3k\nDistribution: world\nOrganization: University of Washington\nLines: 11\nNNTP-Posting-Host: burn.ee.washington.edu\n\nHi,\n\n\nAnyone has a converter from BMP to any format that xview or xv can\n\nhandle?  This converter must run Unix..  I looked at the FAQ and downloaded\nseveral packages but had no luck...  thanks in advance.\n\ned\n\nechen@burn.ee.washington.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4265, "properties": {"category": "soc.religion.christian", "text": "From: BOCHERC@hartwick.edu\nSubject: Does God Love You?\nLines: 5\n\nI simply wish to thank Dave Mielke (dave@bnr.ca)  for sharing the\ntract concerning God's love.  It was most welcome to me and a great\nsource of comfort.\n\nCarol Bocher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4266, "properties": {"category": "comp.windows.x", "text": "From: hsteve@carina.unm.edu ()\nSubject: XTranslateCoord. Problem\nOrganization: University of New Mexico, Albuquerque\nLines: 13\nNNTP-Posting-Host: carina.unm.edu\n\nIt seems like XTranslateCoord. doesn't work the way I expecting it.  Right\nafter performs a XMoveWindow, I want to know the absolute window position\nwith respect to the root window.  To get this info. I do a XTranslateCoordinates\nbut the abs_x, and abs_y aren't right?  Does anybody know of a way to find \nout this information?\n\nThanks, please e-mail to hsteve@carina.unm.edu if it's possible\n\n-- \n    _---_     Steve  \n   / o o \\    hsteve@hydra.unm.edu, hsteve@carina.unm.edu\n  | \\___/ |   \n              Just say NO to VMS!!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4267, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Plutonium based Nuclear Power plants.\nOrganization: Express Access Online Communications USA\nLines: 13\nNNTP-Posting-Host: access.digex.net\n\nTodays New York TImes just wrote about a pact being negotiated \nbetween us and the Russians  to develope  High Temperature\nGas Cooled Fission Reactors using Re-Cycled Weapons Grade plutonium\nfrom Warhead stockpiles.   THe fuel will be pelletized in ceramic\nfor safety,  and then after depletion will be sufficiently\ncontaminated with by-products to make extraction of the remaining\nplutonium hazardous enough to deter re-use.\n\nApparently the project will be led by General Atomics of San Diego\nwith funding from the US GOvernment.  THe pilot plant will be built\nand operated by the russians.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4268, "properties": {"category": "sci.electronics", "text": "From: paj@uk.co.gec-mrc (Paul Johnson)\nSubject: Re: CAD Program for Electronics?\nReply-To: paj@uk.co.gec-mrc (Paul Johnson)\nOrganization: GEC-Marconi Research Centre, Great Baddow, UK\nLines: 30\n\nIn article <1993Apr17.211126.23467@norfolk.vak12ed.edu> fculpepp@norfolk.vak12ed.edu (Fred W. Culpepper) writes:\n>I am making a search for a CAD program that does a decent job\n>of making schematic drawings.  The program needs to be in\n>MS-DOS, Windows if possible.\n>\n>What I want the CAD program to do is to draw diagrams by\n>dragging elements onto the screen, and in this the elements\n>needed are as diverse as vacuum tubes to ICs (case with pins).\n>It also needs to have provision for adding legends to the\n>components as well as their values.  In other words I want to\n>produce quality drawings.  Printout would be to either 24 pin\n>dot-matrix and/or Laser Printer.\n\nI would suggest Draw for Windows (by Micrografx).  I have this on my\nhome box.  Its quite impressive and only cost UKL100.  It has a rather\nnice clip-art library facility which you can expand with your own\ndrawings.  There is no circuit component clip-art included, but you\ncould add your own quite easily.\n\nIt works with any Windows printer driver of course, and can also\nexport embedded postscript and PCX files.\n\nNote: I am not connected with Micrografx in any way.\n\nPaul.\n-- \nPaul Johnson (paj@gec-mrc.co.uk).\t    | Tel: +44 245 73331 ext 3245\n--------------------------------------------+----------------------------------\nThese ideas and others like them can be had | GEC-Marconi Research is not\nfor $0.02 each from any reputable idealist. | responsible for my opinions\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4269, "properties": {"category": "rec.autos", "text": "From: tszeto@sneezy.ts.stratus.com (Tommy Szeto)\nSubject: water in trunk of 89 Probe??\nOrganization: Stratus Computer, Inc.\nLines: 15\nDistribution: world\nNNTP-Posting-Host: sneezy.ts.stratus.com\n\nWater gradually builds up in the trunk of my friend's 89 Ford Probe.  Every\nonce in a while we would have to remove the spare and scoop out the water\nunder the plywood/carpet cover on the trunk.  I would guess this usually happens\nafter a good thunder storm.  A few Qs:\n\n1) Is this a common problem?\n2) Where are the drain holes located for the hatch?\n\nThanks for any info.\nTom\n\n-- \nTom Szeto                         \"No!  Not those peanuts!  The ones on the\ntszeto@sneezy.ts.stratus.com       bottom....ggnuuaahuuhh\" \n#include <disclaimer.h>            - Homer Simpson\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4270, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rrn@po.CWRU.Edu (Robert R. Novitskey)\nSubject: CYCLONE AND TEMPEST?????\nArticle-I.D.: usenet.1pskav$qtu\nReply-To: rrn@po.CWRU.Edu (Robert R. Novitskey)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 10\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nCould someone please post any info on these systems.\n\nThanks.\nBoB\n-- \n---------------------------------------------------------------------- \nRobert Novitskey | \"Pursuing women is similar to banging one's head\nrrn@po.cwru.edu  |  against a wall...with less opportunity for reward\" \n---------------------------------------------------------------------- \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4271, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: Leaf slump over\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nLines: 39\n\n\nOn March 21, 1993 Roger Maynard wrote (in reply to an article by Graham\nHudson):\n\n>> will still have the Jennings Trophy at the end of the year.  Potvin is very\n>> good, and I do believe that he will be a star, but I want to see him\n>> perform in the playoffs under pressure.\n\n>You don't think he is performing \"under pressure\" now?  The major\n>differences  between playoff hockey and normal hockey is 1. play-\n>ing every other night which is physically exhausting and 2.   You\n>play  the  same  team  in a consecutive string of games.  Is this\n>what you mean by pressure?  Have you even thought about what  you\n>mean  by pressure, or are your thoughts, like most of the rest of\n>this drivel, simply half-baked?\n\nThis was <1993Mar21.223936.6192@ramsey.cs.laurentian.ca>, for anybody who\nwould like to check.\n\nHe went on (in another article) to say [paraphrased]\n\n>\"Playoff hockey\" is just an expression used by announcers to convince\n>simple-minded folks like yourself that what you are seeing is a better\n>product than a regular-season game.\n\n*NOW*, however, in article <1993Apr12.013939.23016@ramsey.cs.laurentian.ca> \n(Roger Maynard) writes:\n\n>With a 4-2 win over a tough Whaler squad the Leafs showed all doubters\n>what playoff hockey is all about.  \n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSo, Roger, what exactly *is* playoff hockey all about?  Or is it a convenient\nphrase to use in certain circumstances only?\n\nYou see, when you spout off with flame bait too many times, sooner or later\nit catches up with you....\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4272, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jpaparel@cs.ulowell.edu (Joseph Paparella)\nSubject: Re: Is Anyone Using Video For Windows?\nKeywords: Video Windows\nOrganization: UMass-Lowell Computer Science\nDistribution: na\nLines: 4\n\nMy suggestion would be to contact Microsoft about the Video4Windows SDK.\nYou would need to call Developer Services at (800)227-4679 extension 11771\nfrom 6:30am to 5:30pm Pacific time.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4273, "properties": {"category": "sci.space", "text": "From: sugarman@ra.cs.umb.edu (Steven R. Garman)\nSubject: WANTED - Optical Shaft Encoders for Telescope\nNntp-Posting-Host: ra.cs.umb.edu\nOrganization: University of Massachusetts at Boston\nLines: 23\n\n\n[Also posted in misc.forsale.wanted,misc.wanted,ne.wanted,ny.wanted,nj.wanted]\n\nWANTED:  Optical Shaft Encoders\n\nQuantity 2\nSingle-ended\nIncremental\n\nNeeded to encode the movements of a 16\" Cassegrain telescope.  The telescope\nis in the observatory of the Univ. of Mass. at Boston.  The project is being\nmanaged by Mr. George Tucker, a graduate student at UMB.  Please call him, or\nemail/call me, if you have one or two of the specified type of encoder.  Of\ncourse, due to our low funding level we are looking for a price that is\nsufficiently lower than that given for new encoders.  :)\n\nGeorge Tucker\n617-965-3408\n\nME:\n-- \nsugarman@cs.umb.edu | 6172876077 univ | 6177313637 home | Standard Disclaimer\nBoston Massachusetts USA\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4274, "properties": {"category": "rec.sport.hockey", "text": "From: hahietanen@tnclus.tele.nokia.fi\nSubject: Strange phenomens in NHL (was: Team leaders in +/-)\nLines: 60\nNntp-Posting-Host: tne01.tele.nokia.fi\nOrganization: Nokia Telecommunications.\n\nIn article <1993Apr5.195705.29227@ramsey.cs.laurentian.ca>, maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n> In <1993Apr5.185633.17843@ists.ists.ca> dchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n> \n>>Implicitly you are assuming that goals scored against Winnipeg with Selanne\n>>on the ice can be blamed on him...Roger, he is a FORWARD.  Winnipeg has a\n>>lousy defensive record anyway.  Let's put it another way.  John Cullen's +/-\n>>is terrible.  What's your excuse for him?  That his powerplay points don't\n>>count?  Neither do Selanne's... \n> \n> Are you comparing Cullen to Salami?  I would say that that is valid.  If\n> Winnipeg is such a lousy defensive team then why the hell does Salami\n> stand around the other team's blueline when the puck is in his own end?\n\n  I thought that he was comparing Cullen to TEEMU SEL[NNE. I always thought\n  that salami is some sort of sausage, BUT IF YOU, dear Roger, ARE ABLE TO\n  SEE SALAMI ON THE ICE PLAYING HOCKEY... I don't know what to do, but you\n  surely should do something and very quickly!!!\n\n  Maybe you think that if you keep on talking some rubbish, after some time\n  everybody will consider it to be really true... You should take care of\n  your LEAFS, they surely need it more.\n  \n> \n>>What he does best is score...so I refer you to my comment above.\n> \n> Some of our Finnish friends who have watched him play claim that he\n> can play a solid two-way game.  I would have to say that this style\n> of contribution would be more conducive to winning.  Or don't you \n> think so?\n\n  At least we have seen him playing... \n> \n>>>As it is now, Selanne\n>>>is a grandstanding goal suck.  Did you see the way he parades around\n>>>with his arms outstretched after scoring a goal?  You would think the\n>>>Messiah had returned...\n\n During the latest Philly game the Leaf players didn't parade... Philly\n crunched them 4-0 !!!  Maybe you need some more two way players who can\n score, too !!???\n> \n> \n> cordially, as always,\n> \n> rm\n> \n> -- \n> Roger Maynard \n> maynard@ramsey.cs.laurentian.ca \n\n  just cordially,\n\n  Hannu\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n>>>>>>>>>>>>> GO  JETS  GO ! >>>>>>>> TEEMU ! >>>>>>> TEPPO ! >>>>>>>>>>>>>\n>>>>>>>>>>>>> TAPPARA >>>>>> CANADIENS >>>>>>> BLACKHAWKS >>>>>>>>>>>>>>>>>\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n \n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4275, "properties": {"category": "comp.graphics", "text": "From: patrick@Erc.MsState.Edu (Patrick Bridges)\nSubject: Re: Diamond Stelth 24- any good?\nIn-Reply-To: hintmatt@cwis.isu.edu's message of 23 Apr 1993 07:24:32 -0600\nNntp-Posting-Host: andy.erc.msstate.edu\nOrganization: /merlin-home2/patrick/.organization\nLines: 7\n\nThe real problem w/ the Stealth from what I've heard is that Diamond won't\ntell anyone how to program their proprietary clock stuff, so X under Linux\nand 386BSD won't run....\n\n\n\t\t\t\t\tPatrick Bridges\n\t\t\t\t\tpatrick@erc.msstate.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4276, "properties": {"category": "comp.graphics", "text": "From: camter28@astro.ocis.temple.edu (Carter Ames)\nSubject: Re: alt.raytrace (potential group)\nOrganization: Temple University\nLines: 7\nNntp-Posting-Host: astro.ocis.temple.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\n\n\n\n    Yes, please create the group alt.raytrace soon!!\nI'm hooked on pov.\ngeez. like I don't have anything better to do....\nOH!! dave letterman is on...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4277, "properties": {"category": "rec.motorcycles", "text": "From: daved@world.std.com (Dave T Dorfman)\nSubject: Re: Boom! Dog attack!\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 33\n\nazw@aber.ac.uk (Andy Woodward) writes:\n\n\n>Better still, reverse this sequence, then hit the bugger under accelleration\n>(to stabilise yourself). I hate things that attack me. \n>If the dog thinks you have run away, it has established dominance over \n>these funny noisy sheep things, and will attack every bike that comes \n>along for the fun of it. If you can hurt the bugger, it learns that it \n>is below bikes in the peck order, and you may have saved the life of a \n>future biker, whose evasive action to avoid the dog might otherwise put \n>him under a truck. Never avoid a dog for the dog's sake, only you're own. \n\n I hate to  admit this but there does seem to be some sort of twisted logic\nto this approach. It's the bikers against the world and the dogs are just \nanother worthless adversary. So remember to wear at least calf height leather\nboots, ( in case the dog gets lucky and sinks his teeth into your\nattacking foot) and go for the gusto, If that dog doesn't retreat from the\nstreet with his tail between his legs next time you see it then you really\nhaven't done your bit for all your fellow bikers.\n\n>This also applies in cages.\n\nSorry I can't go this far, A dog against and armored cage just doesn't\nseem like a fair fight.\n\n>If the dog is out of control, it is a menace to all road users, and no\n>compunction should be felt if ensuring your safety means the destruction of \n>it's. After all, it is forcing the game, not you.\n\nafter all it is a dog eat dog world \n\nDave\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4278, "properties": {"category": "rec.autos", "text": "From: cm@cci632.cci.com (Carl Mercer)\nSubject: 1986 Mazda forsale\nKeywords: 1986, 323, pioneer DX 680\nOrganization: Northern Telecom, Inc. - Network Application Systems\nDistribution: wny\nLines: 34\n\n\n\n\nFor sale - Mazda 323\n\n\t1986 Mazda 323\n\tWhite exterior, Grey interior.\n\t75,000 miles\n\tInterior in very good condition.\n\tExterior in good condition\n\n\tPioneer DX 680 car stereo.\n\t\t- CD player\n\t\t- 18 FM presets, 6 AM\n\t\t- removable faceplate\n\t\t- seperate component speakers professionally mounted\n\t\t  in the doors.\n\nThe car has been well maintained.  I wax it often and keep the interior\nclean.  Its a good running car with a solid body (no rust thru, tiny\nspots of surface rust.  When I see a spot I touch it up.)  The stereo\nmakes the car.  I have had no mechanical problems with it.\n\nI'm looking for $900.00 firm.  The car has an average wholesale value of \nabout $900.00 without the stereo.  The stereo cost me $500.00 last July.\n\nIf you are interested, call or Email me at:\n\n\t\t\t\tCarl Mercer\n\t\t\t\tcm@cci.com\n\t\t\t\t(716) 654-2652\n\t\t\t\t(716) 359-0895 evening\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.207+0000", "event": "documents", "entityId": 4279, "properties": {"category": "sci.electronics", "text": "From: blakey@ug.cs.dal.ca (Jason Blakey)\nSubject: Site for projects\nNntp-Posting-Host: ug.cs.dal.ca\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nLines: 6\n\n\tDoes anyone out there know of any ftp sites which deal with \nelectronics projects, plans, etc?  Any response appreciated.:)\nJB\n-- \n ............................................................................ \n                      Jason Blakey -> blakey@ug.cs.dal.ca \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4280, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nOrganization: Case Western Reserve University\nLines: 19\nDistribution: world,public\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <115847@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n\n>Well, in 1984 one was not allowed to leave the domain of authority. One\n>_is_ free to leave Islam. If one regards Islamic law as a curse one\n>should consider leaving Islam.\n\n\tThe only way out seems to be death.\n\n---  \n\n  \" I'd Cheat on Hillary Too.\"\n\n   John Laws\n   Local GOP Reprehensitive\n   Extolling \"Traditional Family Values.\"\n\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4281, "properties": {"category": "soc.religion.christian", "text": "From: shellgate!llo@uu4.psi.com (Larry L. Overacker)\nSubject: Re: Easter: what's in a name? (was Re: New Testament Double Stan\nOrganization: Shell Oil\nLines: 36\n\nIn article <Apr.14.03.09.10.1993.5497@athos.rutgers.edu> dsegard@nyx.cs.du.edu (Daniel Segard) writes:\n\n>       That argument would be more compelling if it were not for the\n>Ishtar eggs and Ishtar bunnies.  Why mix pagan fertility symbols from the\n>worship of the pagan goddess of fertility with Biblical belief?  What\n>would really be lost if all of you were to just drop the word \"Easter\" and\n>replace all such occurances with \"Resurrection Sunday\"?  Would you not\n>show up for services if they were called \"Resurrection Sunday Services\"\n>rather than \"Easter Services\"?  \n\nThere is another way to view this.  The True Celebration is Easter,\nthe Resurrection of Our Lord.  This has been true from the foundation\nof the world.  Pagan practices are then either:\n\n1. foreshadowings of the True Celebration of the Resurrection, \n   in which dim light was shone forth so that people would\n   recognize the full truth when it was manifested, OR\n\n2. satanic counterfeits intended to deceive us so that we would not\n   recognize the truth when it was manifested.\n\nI don't believe the second argument, because I believe in the power\nof the Resurrection, the fulfillment of the Incarnation, and our hope.\nEarlier or parallel ideas in other religions clearly are dim images of\nthe truth of the Resurrection.  As Paul states, we see through a glass\ndarkly.  So do others.  It serves no purpose arguing about who has\nthe darker or lighter glass.  The foreshadowings are not perfect.\nSo what? Our understnding of God is today imperfect, for we are not\nyet perfected.  Theosis is not a gift such that WHAM, we're perfect.\n\nLarry Overacker (llo@shell.com)\n-- \n-------\nLawrence Overacker\nShell Oil Company, Information Center    Houston, TX            (713) 245-2965\nllo@shell.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4282, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Level 5?\nOrganization: U of Toronto Zoology\nLines: 18\n\nIn article <1raejd$bf4@access.digex.net> prb@access.digex.com (Pat) writes:\n>what ever happened to the hypothesis  that the shuttle flight software\n>was a major factor in the loss of 51-L.  to wit,  that during the\n>wind shear event,  the Flight control software  indicated a series\n>of very violent engine movements that shocked and set upa harmonic\n>resonance  leading to an overstress of the struts.\n\nThis sounds like another of Ali AbuTaha's 57 different \"real causes\" of\nthe Challenger accident.  As far as I know, there has never been the\nslightest shred of evidence for a \"harmonic resonance\" having occurred.\n\nThe windshear-induced maneuvering probably *did* contribute to opening\nup the leak path in the SRB joint again -- it seems to have sealed itself\nafter the puffs of smoke during liftoff -- but the existing explanation\nof this and related events seems to account for the evidence adequately.\n-- \nSVR4 resembles a high-speed collision   | Henry Spencer @ U of Toronto Zoology\nbetween SVR3 and SunOS.    - Dick Dunn  |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4283, "properties": {"category": "rec.sport.baseball", "text": "From: ada41546@uxa.cso.uiuc.edu (Driftwood)\nSubject: Re: Jim Lefebvre is an idiot.\nArticle-I.D.: news.C51uC6.BL1\nOrganization: University of Illinois at Urbana\nLines: 9\n\n\n\tI totally agree with each point you made.  Jose Viscaino looked\nlike a single A hitter up there.  Who swings on 3-1 count with Maddux \npitching and your teams down by a run, and you haven't touched the ball all \nday.  I also think too much is made of that lefty-righty thing.  Watching\nthe Cubs games I get the feeling Steve Stone knows a lot more about what\nthe Cubs should be doing than Lefebre does.  Harry said it best when he\nstated after another terrible Vizcaino at bat-- we can't wait til\nSandberg returns!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4284, "properties": {"category": "misc.forsale", "text": "From: rpwhite@cs.nps.navy.mil (rpwhite)\nSubject: Re: Catalog of Hard-to-Find PC Enhancements (Repost)\nOrganization: Naval Postgraduate School, Monterey\nDistribution: usa\nLines: 35\n\nAndy Freeman writes:\n>Joe Doll writes:\n\n)>>   \"The Catalog of Personal Computing Tools for Engineers and Scien-\n)>>   tists\" lists hardware cards and application software packages for \n)>>   PC/XT/AT/PS/2 class machines.  Focus is on engineering and scien-\n)>>   tific applications of PCs, such as data acquisition/control, \n)>>   design automation, and data analysis and presentation.  \n\n)>>   If you would like a free copy, reply with your (U. S. Postal) \n)>>   mailing address.\n>>\n>>    I am very interested in your catalog, but E-mail to you bounces.\n>\n>Don't bother - it never comes.  It's a cheap trick for building a\n>mailing list to sell if my junk mail flow is any indication.\n\nI have a copy of this catalog in front of me as I write this.\nIt does have tons of qool stuff in it. \nMy impression is that they try not to send it out to \"browsers\". It\nappears that if your not a buyer or an engineer they do not want to\nwaste a catalog on you. When you get a catalog there's a \"VIP Code\" you\nhave to give them \"to ensure your continued subscription.\".\nAnyway, if you want to get in touch with them, the company is\n\nPersonal Computing Tools\n550 Division Street\nCampbell, CA 95008\n(408) 378-8400 \n(They also have fax #'s and toll free #'s for ordering and tech support)\n\nPlease note that I am not associated with them in any way. In fact, I\nhave never ordered from them so I can't comment on their products or\nservice but the catalog is real and I am sitting here salivating over\nit.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4285, "properties": {"category": "sci.med", "text": "From: jag@ampex.com (Rayaz Jagani)\nSubject: Re: Homeopathy: a respectable medical tradition?\nNntp-Posting-Host: dst-s4-21\nOrganization: Ampex Corporation, Redwood City CA\nLines: 27\n\nIn article <19609@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>In article <3794@nlsun1.oracle.nl> rgasch@nl.oracle.com (Robert Gasch) writes:\n>>\n>>In many European countries Homepathy is accepted as a method of curing\n>>(or at least alleiating) many conditions to which modern medicine has \n>>no answer. In most of these countries insurance pays for the \n>>treatments.\n>>\n>\n>Accepted by whom?  Not by scientists.  There are people\n>in every country who waste time and money on quackery.\n>In Britain and Scandanavia, where I have worked, it was not paid for.\n>What are \"most of these countries?\"  I don't believe you.\n>\n>\n\nWhen were you in Britain?, my information is different.\n\nFrom Miranda Castro, _The Complete Homeopathy Handbook_,\nISBN 0-312-06320-2, oringinally published in Britain in 1990.\n\nFrom Page 10,\n.. and in 1946, when the National Health Service was established,\nhomeopathy was included as an officially approved method\nof treatment.\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4286, "properties": {"category": "comp.graphics", "text": "From: dkusswur@falcon.depaul.edu (Daniel C. Kusswurm)\nSubject: Siggraph 1987 Course Notes\nNntp-Posting-Host: falcon.depaul.edu\nOrganization: DePaul University, Chicago\nDistribution: usa\nLines: 7\n\nI am looking for a copy of the following Siggraph publication: Gomez, J.E.\n\"Comments on Event Driven Annimation,\" Siggraph Course Notes, 10, 1987.\n\nIf anyone knows of a location where I can obtain a copy of these notes, I\nwould appreciate if they could let me know.  Thanks.\n\ndkusswur@falcon.depaul.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4287, "properties": {"category": "misc.forsale", "text": "From: wgs1@Isis.MsState.Edu (Walter G. Seefeld)\nSubject: SyQuest internal 44 drive with 8 cartridges: sale or trade\nSummary: Will trade 350Mb for ~300Mb IDE, or sell for $450\nNntp-Posting-Host: isis.msstate.edu\nOrganization: Mississippi State University\nDistribution: na\nLines: 21\n\nThis drive is less than one year old.  The cartridges have all been bought\nsince then.  All is in excellent condition and still under warranty.\nDue to a change in system use, I now need a large, contiguous drive.\n\nOffer includes:\n\tSyDos 44i internal drive\n\tSCSI adapter card and cables\n\tAll original documentation\n\tSoftware\n\tAll original packaging\n\t8 cartridges totalling over 350Mb (no bad sectors or defects)\n\nThe installation was a breeze on my 386 clone.\n\nI will trade for something near 300Mb IDE, or sell for $450.\nI will also consider trading for 4 4Mx9 30 pin SIMMs at 70ns.\n--\nWalter G. Seefeld          |  By the dawn's early light,\n940 N. Jackson St. #1A     |  By all I know is right,\nStarkville, MS 39759       |  We're going to reap what we have sown.\nN5QXR                      |   -Jackson Brown \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4288, "properties": {"category": "talk.politics.guns", "text": "From: <34AEJ7D@CMUVM.BITNET>\nFollowups-to: talk.politics.guns\nSubject: Re: ATF BURNS DIVIDIAN RANCH - UPDATE\nDistribution: usa\n <1993Apr19.202756.6889@msuvx2.memst.edu>\nLines: 11\n\nAh yes, I see a few liberal weenies have come out of the woodwork\nto defend the burning of the children. Probably drooled all over themselves\nwhile watching the TV coverage.\n\nProbably had a few like that in Nazi Germany, as well.\n\nOh yeah, ATF/FBI now claims, according the the media, that there are\na few survivors. The number seems to vary minute by minute.\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4289, "properties": {"category": "rec.autos", "text": "From: barryf@hpfcso.FC.HP.COM (Barry Fowler)\nSubject: Re: Impala SS going into production!\nOrganization: HP Colorado Computer Mfg. Operation\nLines: 1\n\nDoes that mean that they're gonna bring back the Biscayne and Bel Air?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4290, "properties": {"category": "rec.autos", "text": "From: chris1@donner.cc.bellcore.com (ross,christina l)\nSubject: Re: BRAINDEAD Drivers Who Don't Look Ahead--\nOrganization: Bellcore, Livingston, NJ\nDistribution: usa\nKeywords: bad drivers\nLines: 44\n\nIn article <9595@tekig7.PEN.TEK.COM>, jitloke@tekig5.pen.tek.com (Jit-Loke Lim) writes:\n> >In article <1993Apr14.140642.19875@cbnewsd.cb.att.com> hhm@cbnewsd.cb.att.com (herschel.h.mayo) writes:\n> >anybody is going anywhere. So, I block the would-be passers. Not only for my own\n> >good , but theirs as well even though they are often too stupid to realize it.\n> \n> Ah, we are looking for good people just like you. We are a very concerned\n> group of citizens who are absolutely disgusted at the way that the majority\n> of drivers simply disobey traffic rules like going above the speed limit,\n> passing on our right, and riding our tails, while all the while we respectfully\n> abide by the rules of this great country and maintain the mandated speed\n> limits with our calibrated, certified cruise controls, while keeping the\n> respectful 1.5 car length distance/10 mph speed. How many times have you been\n> ticked off by some moron who jumps ahead in the (5.5 * 1.5)8.25 car lengths \n> that you have left between you and the vehicle ahead of you while driving\n> 55 mph? Finally you have an option. We are a totally member supported group\n> that perform functions for our own good, for the good of this great country  but MOST of all for those unfortunate ones that are too stupid to realize it,\n> bless their souls. For a paltry $10, you can join Citizens for Rationally \n> Advanced Piloting(C.R.A.P), a non-profit, members only, society. But, but,but,\n> there is a slight hitch, the initiation rite. To be a full fledged member of\n> this exclusive club, you must proof that you are able to be in the fast lane of\n> the busiest interstate in your area, keep the correct 1.5 car lenth/10 mph speedand I know this can be difficult with those morons around, NOT let anybody pass\n> you, not in the next lane, not in the slow lane, not in the breakdown lane,\n> not NOWHERE. For a complete list of acceptable interstates and times, send $5.\n> And by the way, over 90% of our members are highly regarded attorneys in the\n> auto field and they are completely, absolutely positively in the business ONLY\n> to serve your best interests. As a testament to their virtues, they will give\n> members 90% off the initial consultation fee. Feel free to drop me a line at\n> your earliest convenience and remember, only SPEED kills!\n> \n> Jit\n> \n> \n> \n> \n\nOf course you are a bunch of arrogant lawyers who know whats best for the \nrest of us. You are doing such a wonderful job with our judicial system,\ngetting all the criminals off, I bow to your superior intellect. Not to\nmention the fees you collect from us poor slobs who get tickets from \nspeeding State Police officers, so you can soak is when we go to court.\nI just love lawyer jokes! Don't you?\n\nC. \n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4291, "properties": {"category": "comp.windows.x", "text": "From: ian@csc.liv.ac.uk (Ian Finch)\nSubject: Which X events are generated on application exit?\nOrganization: Knee Deep in Sky High\nLines: 18\nNntp-Posting-Host: rib.csc.liv.ac.uk\nX-Newsreader: TIN [version 1.1 PL9]\n\nI'm writing an application running under X (using Motif), and I need to do\nsome stuff when the application quits.  Now, when I shut down my X Windows\nsession, it doesn't seem to send a SIGTERM (or whatever) signal to my\napplication (I'm trapping various signals like that).  Therefore, I thought\nI could use an X signal to check for my top level window being destroyed.\n\nHowever I seem to get DestroyNotify events whenever I move windows.  Is\nthere any way for me to check that the window is actually being destroyed\n(some field to check or some combination of events?).\n\nReplies by e-mail please and I will summarise.\n\nThanks for any help,\n                      Ian\n--\n //                             //\n // ian@compsci.liverpool.ac.uk //\n //                             //\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4292, "properties": {"category": "sci.electronics", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: 74ACT???\nOrganization: U of Toronto Zoology\nLines: 86\n\nIn article <1qhrq9INNlri@crcnis1.unl.edu> mpaul@unl.edu (marxhausen paul) writes:\n>OK, what's a quick rundown on all the 7400 series variations?  We're\n>repairing something with a 74ACT00 on it and the question arises, \"well,\n>do  i really need the ACT part?\"  Flipping through Digi-Key I see \n>ALS, AS, C, HC, AC, ACQ, ACT, HCT, ACHT, HCTLS...\n\nHere's something I posted about this a few years ago.  It's not fully\nup to date with all the new variations (some of which are just different\nmanufacturer's synonyms):\n\n------\nIn practical terms, ignoring the technological details, this is my view\nof the families (NB I am not a giant corporation, which influences my\nviews on things like availability and backward compatibility):\n\n74\tThe original.  Speed good, power consumption fair.  Effectively\n\tobsolete now; use 74LS or later, except for a *very* few oddball\n\tfunctions like 7407 which are hard to find in newer families.\n\n74H\tModification of 74 for higher speed, at the cost of higher\n\tpower consumption.  Very obsolete; use 74F.\n\n74L\tModification of 74 for lower power, at the cost of lower speed.\n\tVery obsolete; use CMOS.\n\n74S\tLater modification of 74 for even higher speed, at some cost in\n\tpower consumption.  Effectively obsolete; use 74F.\n\n74LS\tCombination of 74L and 74S, for speed comparable to 74 with lower\n\tpower consumption.  Best all-round TTL now, widest variety of\n\tdevices.\n\n74F\tFast as blazes, power not too bad.  The clear choice for high\n\tspeed in TTL.  Availability and prices generally good.\n\n74AS\tFailed competitor to 74F, although a few 74AS parts do things\n\tthat are hard to find in 74F and thus are still useful.\n\n74ALS\tPossible replacement for 74LS.  Generally souped up.  Still fairly\n\tnew, availability and prices possibly a problem.\n\n74C\tFairly old family, CMOS devices with TTL pinouts.  Competed with\n\t4000 series, not too successfully.  Obsolete; use 4000 or newer\n\tCMOS 74 families.\n\n4000\t(Thrown in as the major non-74 non-ECL logic family.)  The old CMOS\n\tfamily, still viable because of *very* wide range of devices, low\n\tpower consumption, and wide range of supply voltages.  Not fast.\n\tVery forgiving and easy to work with (beware static electricity,\n\tbut that comment applies to many other modern logic families too).\n\tThere are neat devices in this family that exist in no other.  The\n\tclear choice when speed is not important.\n\n74HC\tA new attempt at 74-pinout CMOS.  Fast compared to old CMOS, power\n\tconsumption often lower than TTL.  Possibly a good choice for\n\tgeneral-purpose logic, assuming availability and affordability.\n\tCMOS logic levels, *not* TTL ones.  Beware very limited range of\n\tsupply voltages compared to older CMOS, also major rise of power\n\tconsumption at faster speeds.\n\n74HCT\t74HC with TTL logic levels.  Much the same comments as 74HC.  Read\n\tthe fine print on things like power consumption -- TTL compatibility\n\tin CMOS involves some compromises.\n\n10K\t(Thrown in for speed freaks.)  The low end of ECL.  Various sources\n\tclaim that it is *easier* to work with than super-fast TTL for\n\tserious high-speed work.  Less forgiving, though:  read and follow\n\tthe rules or it won't work.  Availability to hobbyists limited,\n\tcan be expensive.\n\n100K\t(For real speed freaks.)  Hot ECL.  Harder to handle than 10K, and\n\tinconvenient packages.  Much more useful datasheets, however.\n\nAs for compatibility between families:  the 74 families (except 74C and\n74HC) are all more or less logic-level compatible, but how many 74X devices\nyou can drive from one 74Y output varies enormously with X and Y.  You just\nhave to read the specs and do the arithmetic.  74C and 74HC are compatible\nwith the others with a bit of hassle.  4000 compatibility can be a bit of\nhassle or a lot of hassle depending on what supply voltage 4000 is using.\n10K or 100K to anything else is considerable hassle.\n\nMe?  I use 4000 and 74LS with a sprinkling of 74F.  74HC[T] and 10K are\ninteresting but I haven't used either significantly yet.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4293, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mac1@Isis.MsState.Edu (Mubashir Cheema)\nSubject: Can I have 2 printers on a PC LAN ??????????????\nSummary: 2 printers\nKeywords: 2 printers\nNntp-Posting-Host: isis.msstate.edu\nOrganization: Mississippi State University\nLines: 15\n\n\n I have recently plunged into PC World. I have been using Amigas before.\n Trying to establish a network (LAN) here that could use 2 different printers.\n Panasonic KXP2124 for printing receipts and Okidata OL400 for letters etc.\n Is it at all possible in this world ? I know when using Unix etc I can specify\n which printer to print from. But I am not sure how PCs would handle that. If\n they can't then I guess I'll leave PeeeCeees for good and move on to Unix.\n\n\nMubashir Cheema\nSparco Communications\t\t\t\tPh: (601) 323-5360\nLaGalarie \t\t\t\t\tFax:(601) 324-6433\n500 Russell Street, Suite 20\t\t\temail: mac1@ra.msstate.edu\nStarkville, MS 39759\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4294, "properties": {"category": "sci.space", "text": "From: phoenix.Princeton.EDU!carlosn (Carlos G. Niederstrasser)\nSubject: Double sonic booms.\nOriginator: news@nimaster\nNntp-Posting-Host: luma.princeton.edu\nOrganization: Princeton University\nLines: 16\n\nEvery time you read about a shuttle landing they mention the double sonic  \nbooms.  Having taken various relevant classes, I have several ideas of where  \nthey come from, but none of them are very convincing.  Exactly what causes  \nthem?  Are they a one time pheneomenon, or a constant one like the supersonic  \nshockwave that is constantly produced by a plane, but you hear only when it  \ngoes over you?\n\n---\n---------------------------------------------------------------------\n| Carlos G. Niederstrasser        |  Only two things are infinite,  |\n| Princeton Planetary Society     |      the universe and human     |\n|                                 |   stupidity, and I'm not sure   |\n|                                 |   about the former. - Einstein  |\n| carlosn@phoenix.princeton.edu   |---------------------------------|\n| space@phoenix.princeton.edu     |    Ad Astra per Ardua Nostra    |\n---------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4295, "properties": {"category": "rec.motorcycles", "text": "From: nuet_ke@pts.mot.com (KEITH NUETZMAN X3153 P7625)\nSubject: Re: Help!  Which bikes are short?\nNntp-Posting-Host: 145.4.54.110\nReply-To: nuet_ke@pts.mot.com\nOrganization: Paging and Wireless Data Group\nLines: 3\n\n\nI'm not sure on the older bikes, but the Yamaha Virago 535 has spec'd\nseat height of 27.6 in. and the Honda Shadow 27.2 in. \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4296, "properties": {"category": "misc.forsale", "text": "From: PXY@ECLX.PSU.EDU (Pen-Li Yen)\nSubject: Slide projectors trade for photo equipments\nOrganization: Penn State Engineering Computer Lab\nLines: 17\nDistribution: usa\nNNTP-Posting-Host: eclx.psu.edu\nX-News-Reader: VMS NEWS 1.24\n\nThere are many people want to buy my Kodak autofocus carousel projectors\nbut I don't have lenses or remote to sell.  They prefer to buy a projector\nwith all accessaries.  So I have to post another news asking for lenses\nto fit those Kodak slide projectors:\n\nI am willing to give away Singer Caramate II or Singer Caramete SP (\nw/ built-in unremovable lens, built-in casette player, speaker, new 500 HR\nbulb) try to trade for Kodak projector lenses.\n\nEach projector (viewer) will equal trade for 1 or 2 Kodak projector lenses\ndepend on the focal length.  I will pay for the shipping for Singer \nprojector (viewer).\n\nSince I don't need those Singer projectors, if you have some 35mm SLR system\nyou don't need, I am willing to do the trade as well.\n\nYuesea\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4297, "properties": {"category": "talk.politics.guns", "text": "From: jyoung@Cadence.COM (John Young)\nSubject: FFL&gunsmithing questions\nOrganization: Cadence Design Systems, Inc.\nLines: 8\n\nI have a few questions I'd like to ask;\nFirst,How would someone(me)be able to get a dealers license    \nand second,besides dear old departed gramp's,where would I\nfind a good place to learn gunsmithing.\n\t\tall replies appreciated!\n\t\t\tJohn\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4298, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: Ban All Firearms !\nOrganization: Computer Science Department,  Stanford University.\nLines: 38\n\nAs quoted from <1993Apr14.184448.2331@gnv.ifas.ufl.edu> by jrm@gnv.ifas.ufl.edu:\n> \tFirearms tend to fall into this low dollar/pound area.\n> \tIt would not be economic to smuggle them in.\n\nThat depends only on the profit of doing so.  The differences\nin cost of production will determine local vs smuggle.\n\n> \twould have to be local. There are not all that many people\n> \twho have both the skill AND motivation to assemble worthwhile\n\nThose of us who have actually made semi-autos (full-autos are easier)\nare getting quite a giggle out of this.  I'd estimate that 5% of\nthe people at my high school couldn't do it.  (I was one of the\nfew who failed shop.)  People who have actually seen me do mechanical\nwork would probably say that 1% is more like it.\n\nStarting with even 90% of the population, you can be sure that\n\"enough\" people will be motivated.\n\n> \tfirearms from scratch. High-ranking crime figures could\n> \tobtain imported Uzis and such, but the average person, and\n> \taverage thug, would be lucky to get a zip-gun - and would\n> \tpay through the nose for it. \n\nHow much is \"through the nose\"?  After all, we know quite a bit\nabout how much a gun is worth to a criminal, so if that is dwarfed\nby the price demanded by the \"bad\" part of that 90%....\n\nThe relevant economic analysis has been made.  The \"profit\" of\ngun crime is high enough that the price required to push criminals\nout of the market is high enough that everyone will be motivated.\nThat analysis ignored some \"improvements\" in the criminal gun\nmarket that could make them even cheaper.  (They're not efficiently\nused now, but a \"loaner\" set up would drive the value still higher\nwithout affecting criminal use.)\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4299, "properties": {"category": "rec.sport.hockey", "text": "From: gjp@sei.cmu.edu (George Pandelios)\nSubject: Re: Patrick Playoffs Look Like This\nOrganization: The Software Engineering Institute\nLines: 73\n\n\nIn article <BSON.93Apr14154548@hal.gnu.ai.mit.edu>, bson@gnu.ai.mit.edu (Jan Brittenson) writes:\n|> In article <1993Apr13.132133.16224@sei.cmu.edu> gjp@sei.cmu.edu (George Pandelios) writes:\n|> \n|>  > The Pens won't be playing Montreal, because Boston will win Adams\n|>  > divisional play.  Buffalo and Quebec will make decent showings.\n|>  > Boston, out of sheer determination, will win a game against the Pens,\n|>  > but no more.  They have heart, but the Pens have too many big guns and\n|>  > too many ways to win.\n|> \n|>    If Boston does indeed win the Adams (nothing is certain), and\n|> indeed gets to play the Pens, then I think you'll find a very\n|> different Boston team this year. Boston will use every trick in the\n|> book to shut down the Pens offense -- something they didn't even try\n|> last year. The Pens' weak spot is defense and goaltending -- if Boston\n\nFirst, I enjoyed reading your post.  Second, I disagree with the Pen's weak\nspot being defense and goaltending - for a couple of reasons.  Barrasso has\nhad a spectacular year - no slow start, consistently sharp, GAA < 3.0, and \nleads the league in wins.  Tommy deserves the Vezina.  Given the lack of \nrespect he commands, though, I doubt he will win it.  The other reason \nconcerns the Pens' team defense.  They are hovering around 3rd or 4th in the\nfewest goals allowed.  That is a big improvement for them, and it indicates\nthat they are playing better team defense.\n\n|> can shut down the Pens' offense and get an early goal, then you have a\n|> real game. If the Pens score first, then it's practically over. I\n|> don't think the Pens have the discipline to stick to the team game if\n|> they're held scoreless 5 minutes into the second.\n|> \n|>    Boston doesn't have the guns of the Pens, but the Pens doesn't have\n|> the defense, goaltending, and discipline of Boston. Still, Boston can\n|> put the puck in the net. Remember that Boston is not a \"run-and-gun\"\n|> Patrick-style team, although they played run-and-gun hockey for the\n|> better part of the regular season (who doesn't). Even Neely backchecks\n|> all the way in behind his own net if necessary.\n|> \n|>    Penalty-killing will be a big factor. Boston are, I believe +2 over\n|> the last 40-something short-handed situations, meaning they have\n|> scored 4 SHG while giving up 2 PPG (one in a lackluster game against\n|> Ottawa).\n|> \n|>    I'd say the series will go to 5 or 6. But I'm much less certain\n|> whether it will be in favor of the Pens or the B's. Their styles going\n|> into the playoffs are too different to make it predictable. Still, I'd\n|> place my bets on the Pens I think. My prediction is that if the B's\n|> can get the first goal in four of the games, they'll take the series.\n|> Otherwise the Pens will.\n|> \n|>    But I'd rather wait and see whether the B's will actually get out\n|> of the Adams to begin with... Buffalo, Quebec, and Montreal aren't\n|> exactly planning to call it a game and go home!\n|> \n|> --\n|> \t\t\t\t\t\t-- Jan Brittenson\n|> \t\t\t\t\t\t   bson@gnu.ai.mit.edu\n\nWe'll see.  It'll be fun.\n\nGeorge\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n  George J. Pandelios\t\t\t\tInternet:  gjp@sei.cmu.edu\n  Software Engineering Institute\t\tusenet:\t   sei!gjp\n  4500 Fifth Avenue\t\t\t\tVoice:\t   (412) 268-7186\n  Pittsburgh, PA 15213\t\t\t\tFAX:\t   (412) 268-5758\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nDisclaimer:  These opinions are my own and do not reflect those of the\n\t     Software Engineering Institute, its sponsors, customers, \n\t     clients, affiliates, or Carnegie Mellon University.  In fact,\n\t     any resemblence of these opinions to any individual, living\n\t     or dead, fictional or real, is purely coincidental.  So there.\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4300, "properties": {"category": "rec.sport.hockey", "text": "From: nhmas@gauss.med.harvard.edu (Mark Shneyder 432-4219)\nSubject: Re: Playoff telecasts in Atlanta\nOrganization: HMS\nLines: 22\nNNTP-Posting-Host: gauss.med.harvard.edu\n\nIn article <C5JABD.812@acsu.buffalo.edu> hammerl@acsu.buffalo.edu (Valerie S. Hammerl) writes:\n>\n>I'd personally prefer Buffalo-Boston, as a birthday gift from ESPN,\n>but I don't think the folks at ESPN will accomodate that for me ;-)\n>ESPN has this inexplicable affinity for the Patrick division, it\n>seems.  \n>\n\nFirst,Happy Birthday,Val. Second, ESPN's affinity with Patrick has probably\nmore to do with the travel/production costs for a once a week NHN(National Hockey\nNight) affair.(ESPN-ABC owner,Capital Cities, is a company known for being\nquite thrifty with minimal overhead costs. It's quite possible that Jim\nSchoenfeld may be working for doughnuts :-).\n\nGary Thorne and Bill Clement are both NJ-based and the rest of ESPN crew\nresides in the suburban CT with a very close proximity to tri-state area.\nPlus,it makes sense in terms of solid hockey following in the NorthEast\ncorridor(PA-NY-NJ-DC/Maryland). Whereas,in the Adams you have only\n3-American based teams, out of which 2(Buffalo and Hartford) are not\nin Top-20  US TV-markets.\n\n-PPV Mark\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4301, "properties": {"category": "soc.religion.christian", "text": "From: PETCH@gvg47.gvg.tek.com (Chuck)\nSubject: Daily Verse\nLines: 6\n\nFor the Lord Himself will descend from Heaven with a shout, with the voice\nof an archangel, and with the trumpet of God. And the dead in Christ will\nrise first. Then we who are alive and remain will be caught up together\nto meet the Lord in the air. And thus we shall always be with the Lord.\n\n1 Thessalonians 4:16-17\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4302, "properties": {"category": "sci.crypt", "text": "From: jad@nsa.hp.com (John Dilley)\nSubject: compress | crypt foo | des -e -k foo\nDistribution: sci\nLines: 12\nOrganization: Networked Systems Architecture\n\n\n\tI have a bunch of questions about the encryption scheme\nreferenced in the Subject of this message.  What is the relative data\nprivacy provided by the above sequence as compared with straight DES?\nDoes the addition of compression then encrypting make the cyphertext\nsignificantly harder to crack using current methods than straight DES?\nWould running crypt after DES provide greater data privacy?  Is it\nimportant to remove the (constant) compress header before encryption?\nThank you, net, for your wisdom.\n\n\t\t\t --       jad       --\n\t\t    John A. Dilley <jad@nsa.hp.com>\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.208+0000", "event": "documents", "entityId": 4303, "properties": {"category": "misc.forsale", "text": "From: cst@blueoak.berkeley.edu (Courtney Terry)\nSubject: For Sale: 1983 Nissan Sentra\nOrganization: University of California, Berkeley\nLines: 15\nDistribution: ba\nNNTP-Posting-Host: blueoak.berkeley.edu\n\n    **************************\n        1983 Nissan Sentra\n    **************************\n\no two door hatchback\no red\no am/fm cassette\no lots of new parts, well maintained\no very clean, inside and out\no looks and runs great\no $2000/bo\n\nBob or Tracy at 510-540-8795\n\n(Please do not respond to this account)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4304, "properties": {"category": "sci.electronics", "text": "From: jack@multimedia.cc.gatech.edu (Tom Rodriguez)\nSubject: composite video - what are HD and VD?\nArticle-I.D.: multimed.JACK.93Apr6032642\nOrganization: Multimedia Computing Group\nLines: 19\n\n\n\tI've got an rgb Mistubishi monitor and on the back it has 5\nBNC connectors labeled like this:\n\n    composite\n  HD          VD\n  +           +        +       +       +\n             sync     red    green    blue\n\n\tI've used it as a straight RGB monsitor but i can't figure out\nhow to use it for composite.  Could someone explain what these markings\nmean?  Thanks for any help.\n\n\ttom\n--\nTom Rodriguez  (jack@cc.gatech.edu)\nMultimedia Computing Group - GVU Lab\nGeorgia Institute of Technology\nAtlanta, Georgia 30332-0280\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4305, "properties": {"category": "misc.forsale", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Smith Corona Typewriter for sale, Model SCM 70 electric\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nDistribution: ny,nj\nLines: 23\n\n\n        Smith Corona Typewriter for sale,\n\n        Model SCM 70 electric.\n\nGreat for forms, envelopes, labels, small things, etc. that you just\ncan't do with your microcomputer.\n\nBuilt like a tank, but not big nor that heavy.  A classic compact\nelectric, with padded storage bag.  No scratches, enamel paint chips\nor dents.  Cloth ribbon, 2 colours.  Will accept best offer near $70.\n\n(Selling for a friend, so these are her instructions not mine.\nRSVP to this account, though.  Make any other offers anyways,\nI'll pass them along.  A single sheet-feeder for the Macintosh\nImagewriter II would be acceptable in trade, for example.)\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4306, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: Pamela_E._Mullen@dbug.org\nOrganization: Seattle Mac dBUG\nReturn-Receipt-To: Pamela_E._Mullen@dbug.org\nSubject: PB 100 to Non Apple Printer\nLines: 8\n\nIs there a workaround which will enable me to print to a HPLJ4 from my\nPowerbook 100? (Actually I'm going to a 4M which will have an Ethernet card in\nthe LocalTalk slot!!!GRRRRR). Is there some hardware which will enable me to\nthis easily (kind of plug and play!).\n\nThanks, Pam Mullen\n--    [ This message was sent by a member of Seattle Mac dBUG's ExChange BBS ]\n            PO Box 3463, Seattle, WA  98114 USA        Infoline (206) 624-9329\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4307, "properties": {"category": "sci.electronics", "text": "From: gmc@cthulhu.semi.harris.com \nSubject: Re: What is Zero dB????\nNntp-Posting-Host: cthulhu.mlb.semi.harris.com\nOrganization: Analog\nLines: 57\n\nIn article <1993Apr6.132429.16154@bnr.ca>\n      moffatt@bnr.ca (John Thomson) writes:\n\n >Joseph Chiu (josephc@cco.caltech.edu) wrote:\n >\n >: Thus, a deciBell (deci-, l., tenth of + Bell) is a fractional part of the\n >: original Bell.  For example, SouthWestern Bell is a deciBell.\n >\n >Out of what hat did you pull this one?  dB is a ratio not an RBOC!\n >\n >: And the measure of current, Amp, is actually named after both the AMP company\n >: and the Amphenol company.  Both companies revolutionized electronics by\n >: simulatenously realizing that the performance of connectors and sockets\n >: were affected by the amount of current running through the wires.\n >\n >Sorry.  The unit for current is the AMPERE which is the name of a french-man\n >named AMPERE who studied electrical current.  The term AMP is just an abbreviation\n >of it.  The company AMP came after the AMPERE unit was already in use.\n >\n >: The Ohmite company was the first to characterize resistances by numbers,\n >: thus our use of the Ohms...\n >\n >I don't know about this one, but it doesn't sound right.\n >\n >:\n >: Alexander Graham Bell, actually, is where Bell came from...\n >Well you got one thing right!\n >:\n\nActually, I think J. Chiu knows the score and is just being\nsilly. However, \"decibel\" is in fact 1/10th of a bel. He is\nright on that one, but I don't know if it was accidental or not.\n\nStrictly defined, a bel is the ratio of the log of two power levels,\nand a decibel is 1/10th of a bel so you have 10X decibels for every bel,\nhence bel=log(P2/P1) and decibel=10Xlog(P2/P1).\n\nThe bel, ohm, volt, farad, ampere, watt, hertz, henry, etc. are\nall named for pioneers in the field. It's a traditional and fine\nway to honor researchers who discover new knowledge in a new field.\nHertz was one of the most important of the early electronics explorers,\nbut had been left out in having a term or unit named after him\nuntil recently, (1960's, prior to that what is now a hertz was a cps.)\nAll the other units were defined many decades earlier.\n\n\n \n\n\n-- \n----------------------------------------------------------------------\n\n\n\n\n----------------------------------------------------------------------\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4308, "properties": {"category": "rec.sport.hockey", "text": "From: holger.ohlwein@ap.mchp.sni.de (Holger Ohlwein)\nSubject: Re: WC 93: Results, April 18\nReply-To: holger.ohlwein@ap.mchp.sni.de (Holger Ohlwein)\nOrganization: Siemens Nixdorf Informationssysteme AG\nLines: 24\nNNTP-Posting-Host: 139.21.16.6\n\nIn article <1993Apr21.085435.6895@ericsson.se>, etxonss@ufsa.ericsson.se (Staffan Axelsson) writes:\n \n>  OK, I forgot the Czech roster at home yesterday, but now I have it.\n>  I don't know the teams for all players, so I would appreciate if\n>  you guys could fill in the blanks for me (especially I think some\n>  of these players play in Finland).\n> \n>  The Czech Republic\n>  ------------------\n> \n>  Goaltenders:\t 1. Petr Briza\t\t(Finland somewhere, right?)\n\t\t\t\t\tsigned contract for EV Landshut, Germany\n\t\t\t\t\tfor the 1993/94 season\n \n>  Defense:\t 3. Leo Gudas\t\t?\n\t\t\t\t\tEC Hedos Muenchen, Germany\n\t\t\t\t\tsince 1992. \n\nHolger \n\n-- \nS I E M E N S    Holger Ohlwein   AP153   Otto-Hahn-Ring 6    8000 Muenchen 83\n-------------    Tel: + 49 (89) 636-3746  Email: holger.ohlwein@ap.mchp.sni.de\nN I X D O R F    Never put off till tomorrow what you can avoid all together.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4309, "properties": {"category": "sci.med", "text": "From: mmatusev@radford.vak12ed.edu (Melissa N. Matusevich)\nSubject: Re: Paxil (request)\nOrganization: Virginia's Public Education Network (Radford)\nLines: 5\n\nI don't know much and in fact, have asked questions here\nmyself. My doctor told me that Paxil is a \"cleaner\" SRI in that\nit produces fewer side effects. As to a comparison between\nZoloft and Prozac, I'm not able to remember what he said about\nthe differences between those two drugs. Sorry\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4310, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: Pixmaps, Masks, & Icons - Clues?\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 40\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nIn article <44975@sophia.inria.fr>, lehors@koala.inria.fr (Arnaud Le_Hors) writes:\n|> In article <BUZZ.93Mar31093626@lion.bear.com>, buzz@bear.com (Buzz Moschetti)\n|> writes:\n|> > This is a simple X graphics question:\n|> > \n|> > Assume you have a valid Window w, an icon pixmap, and the background\n|> > mask (also a pixmap) for that icon.  You wish to place the icon at (x,y)\n|> > in w *without* the background.\n|> > \n|> > Question: What combination of XCopyArea() and GC functions are necessary?\n|> > I think the idea is to \"merge only those pixels of pixmap into w as\n|> > indicated by the corresponding mask pixel value.\"  Specifically, the\n|> > problem involves a pixmap and mask generated by the XPM libs.\n|> > \n|> > Any clues would be most appreciated.\n|> \n|> \n|> Xpm provides you with symbolic color names which can be specified at load time.\n|> So, for doing what you want I would suggest you to define a Background symbol\n|> in your pixmap file which you'll set to whatever color is used by the widget or\n|> the window on which you want to put your pixmap. \n|> This would surely be the simplest and fastest way to do what you want.  \n\nNo. As soon as you blit two of this icons once on top of the other with a\nlittle dislocation, you see the rectangular blit crashes too much of the\nicon first blitted, because it draws a full rectangle. The way to do it\nis masking: Create a bitmap with all pixels to be merged are 1 and all\nnot to be merged are 0. Then, set the clip_mask of the gc to this\nbitmap, set the clip_x_origin and clip_y_origin of the gc to the x/y\ncoordinates where you blit the icon to the destination drawable, use GXCopy,\nand XCopyArea() the icon pixmap to the destination drawable using this gc.\n\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4311, "properties": {"category": "comp.sys.mac.hardware", "text": "From: eacj@theory.TC.Cornell.EDU (Julian Vrieslander)\nSubject: Re: Recommendations for removable storage media wanted\nOrganization: Cornell Theory Center\nLines: 21\nNNTP-Posting-Host: theory.tc.cornell.edu\n\nIn article <1993Apr14.115511.28278@kth.se> d88-jwa@eufrat.nada.kth.se (Jon Wtte) writes:\n>If you have no friends, buy a 128 MB optical\n\nHuh?  If I buy a 128M optical, I might lose my friends?  Why - do they\nsmell bad?\n\n:-)\n\n\n>and stop worrying about cartridge wear (Bernoulli) or crashes (SyQuest)\n\nOn a serious note, I have heard the tales about SyQuest failures.  But I\nam curious about Jon's comments on cartridge wear for the the Bernoullis.\nCan someone elaborate?  Is there a general consensus that the 128M opticals\nare the most reliable?  I am mostly concerned about media failures, as\nopposed to drive mechanism failures.\n-- \nJulian Vrieslander \nNeurobiology & Behavior, Mudd Hall, Cornell University, Ithaca NY 14853    \nINTERNET: eacj@theory.tc.cornell.edu     BITNET: eacj@crnlthry\nUUCP: ..cornell!batcomputer!eacj\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4312, "properties": {"category": "comp.graphics", "text": "From: uk02183@nx10.mik.uky.edu (bryan k williams)\nSubject: Re: CView answers\nKeywords: Stupid Programming\nNntp-Posting-Host: nx10.mik.uky.edu\nOrganization: University of Kentucky\nLines: 6\n\nre: majority of users not readding from floppy.\nWell, how about those of us who have 1400-picture CD-ROMS and would like to use\nCVIEW because it is fast and it works well, but can't because the moron lacked\nthe foresight to create the temp file in the program's path, not the current\ndidrectory?\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4313, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: car@public.btr.com (Carlos Rimola-Sarti  car@btr.com)\nSubject: Re: Toshiba 3401B CD-ROM:  Any problems?\nOrganization: BTR UNIX BBS and Email hub. For info about BTR contact support@btr.com\nLines: 14\nNNTP-Posting-Host: public.btr.com\nKeywords: sound board CD-ROM toshiba\n\nIn article <1993Apr16.033258.27998@serval.net.wsu.edu> msmith@beta.tricity.wsu.edu (Mark Smith) writes:\n\nOnce in a while you have to put in a good word for something that works\nwell.  I have had no problems with my Toshiba 3401.  It works very well with\nDOS and OS/2.  For OS/2, you don't need to load any special drivers.  The\ninstallation will detect that it is a Toshiba drive and you are done.\n\nBTW, it's also very fast!\n\n+---------------------------------------+-----------------------------------+\n| Carlos Rimola-Sarti                   |         email: rimola@csisdn.com  |\n| Connective Strategies, Inc.           |                      car@btr.com  |\n| ISDN PRI Connectivity                 |         phone:      415-903-2585  |\n+---------------------------------------+-----------------------------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4314, "properties": {"category": "talk.politics.misc", "text": "From: jason@ab20.larc.nasa.gov (Jason Austin)\nSubject: Re: Temper tantrums from the 1960's\nOrganization: NASA Langley Research Center, Hampton, VA\nLines: 45\nDistribution: usa\n\t<1993Apr5.193616.14521@cbnewsi.cb.att.com> <philC51D4F.G2J@netcom.com>\nReply-To: Jason C. Austin <j.c.austin@larc.nasa.gov>\nNNTP-Posting-Host: ab20.larc.nasa.gov\nIn-reply-to: phil@netcom.com's message of Tue, 6 Apr 1993 00:24:14 GMT\n\nIn article <philC51D4F.G2J@netcom.com> phil@netcom.com (Phil Ronzone) writes:\n-> In article <1993Apr5.193616.14521@cbnewsi.cb.att.com> gadfly@cbnewsi.cb.att.com (Gadfly) writes:\n->     >Now let me get this straight. After a nice, long rant about\n->     >how people need to take personal responsibility for their\n->     >economic and social lives, all of a sudden 1960's radicals\n->     >(such as me, I guess) are responsible for poor people's\n->     >lifestyles? Tell me how that works--or do you think that poor\n->     >people are just too dumb to think for themselves?\n->     >\n->     >There are many reasons for the disintegration of the family\n->     >and support systems in general among this nation's poor.\n->     >Somehow I don't think Murphy Brown--or Janis Joplin--is at\n->     >the top of any sane person's list.\n->     >\n->     >You want to go after my generation's vaunted cultural\n->     >revolution for a lasting change for the worse, try so-called\n->     >\"relevant\" or \"values\" education. Hey, it seemed like a good\n->     >idea at the time. How were we to know you needed a real\n->     >education first--I mean, we took that for granted.\n-> \n-> The 1960's generation were the most spoiled and irresponsible.\n-> \n-> The Depression had create mothers and fathers that were determined that their\n-> kids would not want for anything -- going overboard and creating a nation of\n-> brats.\n-> \n-> Consider the contrast between two famous events in July of 1969.\n-> \n-> Apollo 11 and Woodstock.\n-> \n-> Which group had large numbers of people that could not feed themselves and\n-> reverted to the cultural level of primitives (defecation in public etc.).\n-> \n-> And which group assembled, took care of itself, and dispersed with no damage,\n-> no deaths, no large numbers of drug problems ....\n-> \n\n\tWasn't Woodstock also called the biggest parking lot in\nhistory?  They rejected society and went back to nature in their\nparent's cars.\n--\nJason C. Austin\nj.c.austin@larc.nasa.gov\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4315, "properties": {"category": "misc.forsale", "text": "From: gurakl@aix.rpi.edu (Laura J. Gurak)\nSubject: XT clone for sale\nArticle-I.D.: rpi.+zt5m5_\nOrganization: Rensselaer Polytechnic Institute, Troy NY\nLines: 35\nNntp-Posting-Host: aix.rpi.edu\n\nFOR SALE:\n \nIBM-compatible XT personal computer (DOS)\nBrand:  Acer\nAge:    4.5 years\nSpecs:  640K RAM\n        20 meg hard drive\n        5 -1/4 floppy drive\n        Color monitor\n        2400 baud USRobotics internal modem\n \nBundled with loads of software: word processing, \ncommunications, spreadsheet, games.\n \nA good computer that successfully got me through \nall of my BA, MS, and half of my PhD (I decided to \nswitch to a Mac for my dissertation). Perfect for \nhigh school student, college student, or person who \nneeds basic word processing, spreadsheet, and/or \ndatabase capabilities.\n \nBest offer.\n \n \nReply to\nLaura Gurak\nuserglub@mts.rpi.edu\n \n \n\n-- \n*****************************************************************************\nLaura J. Gurak/PhD candidate/Dept. Language, Literature, and Communication\nRensselaer Polytechnic Institute, Troy, NY 12180/gurakl@rpi.edu\nrhetorics of science & technology/social aspects of computing/rhet. criticism\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4316, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: hakamata@dpcdc.sony.co.jp (Hakamata Atsushi)\nSubject: Need Info on font cartridge for HP LaserJet II\nReply-To: hakamata@dpcdc.sony.co.jp\nOrganization: Display Products Group, Sony Corporation, Tokyo, Japan\nLines: 11\nNntp-Posting-Host: 43.2.19.6\n\nI am looking for good add-on font cartridge for HP LaserJet II.\nI found in PC Magazine article IQ Enginnering and Pacific Data Products\nare well-known maker of cartridge for HP LaserJet series. But I couldn't find\nthe model name of these products.\n\nAny suggestions please.\n\nThanks in advance,\n\n  Hakamata Atsushi\n  Sony Corporation    Osaki Technology Center\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4317, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: robert@pest (Robert Merlicek)\nSubject: ati GUP and Vpic\nNntp-Posting-Host: pest.ctpm.uq.oz.au\nOrganization: CTPM and CSIRO\nLines: 13\n\nCould someone tell me if the ATI graphic ultra pro is supported in a version\nof vpic now.\nIf so where is it located.\nthanks\nRobert\n\nemail replies would be appreciated :-)\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Robert Merlicek                    CBR600 from Hell                    =\n=  robert@ctpm.uq.oz.au            Engage Ludicrous Speed                 =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4318, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: DID HE REALLY RISE???\nOrganization: AI Programs, University of Georgia, Athens\nLines: 14\n\nThe two historic facts that I think the most important are these:\n\n(1) If Jesus didn't rise from the dead, then he must have done something\nelse equally impressive, in order to create the observed amount of impact.\n\n(2) Nobody ever displayed the dead body of Jesus, even though both the\nJewish and the Roman authorities would have gained a lot by doing so\n(it would have discredited the Christians).\n\n-- \n:-  Michael A. Covington         internet mcovingt@ai.uga.edu :    *****\n:-  Artificial Intelligence Programs       phone 706 542-0358 :  *********\n:-  The University of Georgia                fax 706 542-0349 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4319, "properties": {"category": "sci.space", "text": "From: jkatz@access.digex.com (Jordan Katz)\nSubject: SSRT Roll-Out Speech\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 101\nDistribution: usa\nNNTP-Posting-Host: access.digex.net\n\n                               SSRT ROLLOUT\n\n                Speech Delivered by Col. Simon P. Worden,\n                     The Deputy for Technology, SDIO\n                                    \n                  Mcdonnell Douglas - Huntington Beach\n                              April 3,1993\n\n     Most of you, as am I, are \"children of the 1960's.\"  We grew\nup in an age of miracles -- Inter-Continental Ballistic Missiles,\nnuclear energy, computers, flights to the moon.  But these were\nmiracles of our parent's doing.  For a decade and more the pundits\nhave told us - \"you've lost it!\"  The \"me\" generation is only\nliving on the accomplishments of the past.\n\n     You and I have even begun to believe the pessimists.  We\nlisten in awe as the past generation tells of its triumphs.  Living\nhistory they are.  We are privileged to hear those who did it tell\nof it.  A few weeks ago some of this very team listened in awe as\nGeneral Bernie Schriever told of his team's work - and yes struggle\n- to build this nation's Intercontinental Ballistic Missile.\n\n     What stories can we tell?  Blurry-eyed telescopes?  Thousand\ndollar toilet seats?  Even our space launch vehicles hearken only\nof that past great time.  They are and seem destined to remain Gen.\nSchriever's ICBMs.  I find it hard to swell with pride that the\nbest new space-lifter idea is to refurbish old Minuteman and\nPoseidon ballistic missiles.\n\n     Well - The pessimists are wrong.  The legacy is continuing. \nThis event is proof.  To our technological parents: We've listened\nto your stories.  We've caught your enthusiasm and can-do spirit. \nAnd we've learned from your achievements - and your mistakes.  Let\nme honor one of you who was part of that history and the impetus\nbehind this history - Max Hunter.  You are one of the greatest\nengineers of the firts great age of space exploration.  Your\ninsight and discipline built the Thor ICBM - later incorporated\ninto today's most successful launch vehicle - The Delta.\n\n     You told us in the 60's that a new form of launch vehicle - a\nsingle stage reusable rocket - can and should be built.  You\nadvocated this idea tirelessly.  It was elegantly simple, as are\nall great breakthroughs.  You showed us how to build it.  You\nconvinced us it could be done.  You are working by our side to weld\nits components into place.  Most important - you reminded us of a\nprime engineering principle - undoubtably one you learned from the\ngeneration before you - the generation that built transcontinental\naviation in the 1920's and 30's - build a little and test a little\nand Max, you passed all of this on  to people like Pat Ladner who\nstarted this program for the SDI.\n\n     Douglas Aircraft didn't start with a DC-10.  They didn't even\nstart with a DC-3.  Our grandfathers built a little, tested a\nlittle - even sold a little and made a little money - before they\nmoved on to the next step.  They didn't take a decade or more\nbefore putting the first \"rubber on the road.\"  Max Hunter - you\ndidn't take ten years to build Thor, and by God we're not going to\ntake ten years to show that low cost, single stage, reusable\naerospace transportation is real.\n\n     We ended the cold war in a few short years.  It took the  same\nteam here today but a few years to show through the Strategic\nDefense Initiative that the cold war must end.  We - you and us -\nlaunched a series of satellites - The Delta experiments - in about\na year apiece.  This, more than anything else signaled our\ncommitment to end the impasse between ourselves and the Soviet\nUnion.  Those who made the decisions on both sides have underscored\nthe importance of our work in bringing about a new international\nrelationship.\n\n     But it is the same team which is now  putting in place the\nframework for an aerospace expansion that is our legacy for the\nnext generation.  We will make space access routine and affordable.\n\n     We built this magnificent flying machine in two years.  This\nsummer a true rocket ship will take off and land on earth for the\nfirst time.  Then we can and surely will build in the next three\nyears a reusable sub-orbital rocket.  It will allow us to use space\nrapidly, affordably, and efficiently as no other nation can.  And\nyes - we'll make a little money off it too!\n\n     Then - and only then - we'll spend another three years to\nbuild a fully reusable single stage to orbit system.  The DC-3 of\nspace will be a reality!  We may even be able to use some of the\nrocket propulsion breakthroughs of our former cold war adversaries. \nWhat a wonderful irony if this SDI product and Russian efforts to\ncounter SDI merge to power mankind's next step to the stars!\n\n     To be sure, we must guard against the temptations to leap to\nthe final answer.  Robert Goddard's first rockets weren't Saturn\nV's!  If we succumb  to the temptation to ask  for just a few extra\ndollars and a few more years to jump immediately to a full orbital\nsystem - we will fail.  Max Hunter and his colleagues showed the\nway.  Three years and a cloud of dust - in our case rocket\nexhausts.  There is no short-cut.  If we expect to reshape the\nworld again - we must do it one brick at a time.  Minds on tasks at\nhand!\n\n     This project is real.  The torch of American technological\ngreatness is being passed.  We are Americans.  This machine is\nAmerican.  Let's go fly it!\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4320, "properties": {"category": "rec.autos", "text": "From: bpita@ctp.com (Bob Pitas)\nSubject: Re: BRAINDEAD Drivers Who Don't Look Ahead--\nKeywords: bad drivers\nNntp-Posting-Host: earth.ctp.com\nOrganization: Cambridge Technology Partners\nDistribution: usa\nLines: 56\n\nIn article <1993Apr14.140642.19875@cbnewsd.cb.att.com> hhm@cbnewsd.cb.att.com (herschel.h.mayo) writes:\n>\n>Well, I guess I know for sure what I meant, and it is this:  I don't know where\n>you drive, but around here freeways are often clogged solid with large packs\n>of semis, trucks, and cars of all descriptions.  When I close on one of these\n>rolling clusterf***s on the highway, I have no desire to add my vehicle to this\n>rolling accident looking for a place to happen. If there were any way to pass it\n>I WOULD BE PASSING MYSELF, however I can't.      As I posted before, all it\n>takes is a blown tire, or some moron tramping on the brakes to turn this pack \n>into a cloud of shredded metal, flying glass, and burning vehicles.   I want to\n>maintain enough free space between myself and this mess to at least have a\n>minimal chance to avoid a mass crash. That means maintaining a clear space \n>between me and it.\n>However, there is no end of shortdriving morons who are dying to pass so they\n>can add themselves and their car to the bodycount.  That wouldn't bother me so\n>much except that after letting enough of these morons pass me and glue themselves\n>to the pack ahead, my interval is filled up. Trying to back off further does not \n>work because the road behind me has filled up, trapping my car right into an ever\n>increasing pack.  Now, if there was any slight possibility that there was a lane\n>open ahead, I'd be glad to move over. But, there usually is no way in hell that\n>anybody is going anywhere. So, I block the would-be passers. Not only for my own\n>good , but theirs as well even though they are often too stupid to realize it.\n>\n\nJust an comment:  I don't like it when people decide what's good for me...\nIf you think you're going to decide anything for me, you'd better be \ncarrying a badge and a gun.  Who made you capable of determining if there\nis \"no way in hell that anybody is going anywhere\"?  Why do you find \nit necessary to add to the problem instead of just minding your own \nbusiness?  If someone is minding their own business, I will give them\nall the room they want, and I'll try to make things easy for them, even\nletting them in in front of me if they ask politely (with a directional).\nOn the other hand, if someone like you decides they want to block me and\nbe a general asshole, you can bet your ass that I'll make life as \nmiserable as possible for you, as long as it doesn't affect anyone else\nwho's minding their own business.  \nThey have a phrase to describe someone like you:\nSelf Appointed Traffic Police.\nJust mind your own business and stay in the right lane where you belong.\n\n>As a rule of philosophy, I don't feel particularly sorry when somebody gets \n>offed by his own stupidity, but It does worry me when some idiot is in a position\n>to cash in my chips, too.\n>\n>                                                           H.H. Mayo\n\n\n----------------------------------------------------------------------------\n        ___          \n       / _ \\                 '85 Mustang GT                        Bob Pitas\n      /    /USH              14.13 @ 99.8                      bpita@ctp.com\n     / /| \\                  Up at NED, Epping, NH           (Cambridge, MA)\n\n                           \"\" - Geddy Lee (in YYZ)\nDisclaimer: These opinions are mine, obviously, since they end with my .sig!\n----------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4321, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: D.L.P.Li1@lut.ac.uk (DLP Li) \nSubject: Re: CYRIX 486DLC-40 CPU\nReply-To: D.L.P.Li1@lut.ac.uk (DLP Li)\nOrganization: Loughborough University, UK.\nLines: 12\n\n> 2) Anyone using this cpu, what is your impressions of the cpu performance,\n>   compatability?\n \n  There is a benchmark program called COMPTEST said CYRIX CPUs have a bug\nso they cannot run the program. Also may be NeXTSTEP 486?\n\n\t\t\t\t\t\tregards,\n\n\t\t\t\t\t\tDesmond Li\n\t\t\t\t\t\tLUT, UK. \n \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4322, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: Once tapped, your code is no good any more.\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nDistribution: na\nLines: 33\n\nandersom@spot.Colorado.EDU (Marc Anderson) writes:\n\n> methods.  ``This year's crime bill will have teeth, not bare gums,''\n> Clinton said.  In particular, his administration will place strict\n> controls on data formats and protocols, and require the registration\n> of so-called ``cryptographic keys,'' in the hope of denying drug\n> dealers the ability to communicate in secret.  Clinton said the\n> approach could be used for crackdowns on other forms of underground\n> economic activity, such as ``the deficit-causing tax evaders who\n> live in luxury at the expense of our grandchildren.''\n\nAnd some people thought that I am exaggerating when claiming that the\nCripple Chip is just a first step in a totalitarian plot against the\ncivil liberties in the USA... It seems that I've even been an optimist\n- the things are happening even faster than I expected.... That's\nanother of the dirty tricks they used to apply on us under the\ncommunist regime - do something secret, THEN tell the people about is\n(after the fact, when nothing can be done any more), and of course,\nexplaining them how much better the situation is now...\n\nIn my previous messages I wrote that the Americans should wake up and\nfight against the new proposal. Now it seems to me that it is already\ntoo late - it has already happened, the civil liberties have been\nviolated, no, stollen from the American people, while the most part of\nthis people has been sleeping happily... :-((( Too sad...\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4323, "properties": {"category": "comp.windows.x", "text": "From: jigang@dale.ssc.gov (Jigang Yang)\nSubject: Re: internationalized menus & icon labels\nKeywords: icon, motif, openlook\nNntp-Posting-Host: dale.ssc.gov\nOrganization: SSC Lab\nLines: 15\n\n\n\n             I have a problem with icon pixmap. My application has to run\n   under openwindow and motif. I wrote my program in Motif with pixmap and\n   icons. It runs fine under motif/motif window manager and X11R5/mwm. But \n   the icon pixmap does not show up under openwin/olwm and X11R5/olwm.\n\n             Has anybody got into this kind of problem? Need a clue. An \n   example which works in both X11R5/motif and openwindow will be great.\n\n-- \nJigang Yang, jigang@dale.ssc.gov, jyang@sscvx1.bitnet\n2550 Beckleymeade Ave. MS 4011  Tel: 214-708-3498\nDallas, TX 75237                Fax: 214-708-4898 \n \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4324, "properties": {"category": "comp.windows.x", "text": "From: steerr@h01.UUCP (R. William Steer)\nSubject: X-server for NT?\nOrganization: The Internet\nLines: 8\nTo: expo.lcs.mit.edu!xpert@tron.bwi\n\nHas anybody generated an X server for Windows NT?  If so, are you willing\nto share your config file and other tricks necessary to make it work?\n\nThanks for any information.\n\nBill Steer\nWestinghouse\n(412)374-6367\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4325, "properties": {"category": "comp.sys.mac.hardware", "text": "From: feldman@urbana.mcd.mot.com (Mike Feldman)\nSubject: Re: OK to set 54 lbs on top of Centris 610???\nKeywords: Centris\nNntp-Posting-Host: charm.urbana.mcd.mot.com\nOrganization: Motorola Computer Group, Urbana Design Center\nLines: 32\n\nIn article <C5HvJx.DJ7@news.cso.uiuc.edu> dlbg1912@uxa.cso.uiuc.edu\n\t(David L. Berk) writes:\n> I recently purchased a Centris 610 and a Mirror Technologies 19 inch\n> Mono monitor.  I'm wondering if it is OK to set the monitor on top\n> of the CPU.  The monitor weighs 54 lbs.\n>\n> I've called Apple.  The person I spoke with was not sure but was\n> going to find out and call me back in a couple of days.  That was\n> over a week ago....\n>\n> If anybody knows, please respond via email as I don't always have time\n> to read this group.  Thanks.\n>\n> David Berk\n> d-berk@uiuc.edu\n\nYea, thanks to lots of good information in this newsgroup, I was prepared\nfor lots of details (even shipping time ... got my C610 8/230/CD in 5 weeks).\nI guess my biggest disappointment is the lack of detail in the written\nspecs and documentation.  The case load spec is an example -- the setup\nsection says Apple 14\" and 16\" monitors can go on top, but 21\" and other\nbig ones can't.  Why couldn't they publish a maximum load?\n\nNow if I can figure out if there's any hope using the \"partition\" button\non the hard disk setup utility (do I dare just try it and see what happens?),\nthen maybe I can divide up the wealth among the family members a bit more\nsecurly.  The \"getting more information\" section of the manual suggested\ntrying other avenues before calling Apple, but didn't mention the net.\n-- \nMike Feldman, Motorola Computer Group,     (217) 384-8538, FAX (217) 384-8550\n1101 East University Avenue\t   Pager in IL (800) 302-7738, (217) 351-0009\nUrbana, IL 61801-2009 (mcdphx|uiucuxc)!udc!feldman feldman@urbana.mcd.mot.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4326, "properties": {"category": "sci.crypt", "text": "From: jebright@magnus.acs.ohio-state.edu (James R Ebright)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: na\nLines: 29\n\nIn article a_rubin@dsg4.dse.beckman.com (Arthur Rubin) writes:\n>In strnlght@netcom.com (David Sternlight) writes:\n>\n[...]\n>>I'd be happy to use a crypto system supplied by the NSA for business, if\n>>they told me it was more secure than DES, and in particular resistant to\n>>attempts by Japanese, French, and other competitive companies and\n>>governments to break.\n>\n>(It's NIST, not NSA.  NSA is not supposed to have anything to do with this.)\n\nWith all the activity in sci.crypt these past few days, I am not supprised\nyou missed it... NIST got Skipjack from the NSA :)\n\n[...]\n>>I'd trust the NSA or the President if they stated there were no trap\n>>doors--I'd be even happier if a committee of independent experts examined\n>>the thing under seal of secrecy and reported back that it was secure.\n>\n>I wouldn't trust the NSA.  I think I would trust the President on this, but\n>I'm not certain he would be told.\n\n\"I am not a crook.\" President Richard M. Nixon\n                    ^^^^^^^^^\n-- \n Information farming at...     For addr&phone: finger             A/~~\\A\n THE Ohio State University  jebright@magnus.acs.ohio-state.edu   ((0  0))____\n      Jim Ebright             e-mail: jre+@osu.edu                 \\  /      \\\n                          Support Privacy: Support Encryption      (--)\\      \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.209+0000", "event": "documents", "entityId": 4327, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Re: Wings will win\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 67\n\n\nIn article 735307970@vela.acs.oakland.edu, ragraca@vela.acs.oakland.edu (Randy A. Graca) writes:\n\n>gballent@hudson.UVic.CA (Greg  Ballentine) writes:\n>\n>>In article 735249453@vela.acs.oakland.edu, ragraca@vela.acs.oakland.edu (Randy A. Graca) writes:\n>\n>>>I also think that they will have a hard time with Pittsburgh if they\n>>>face them in the finals (which is what all the Detroit sportswriters \n>>>are predicting).  Although I think Bryan Murray is probably the best GM\n>>>I have ever seen in hockey\n>\n>>How do you figure that??  When Bryan Murray took over the Wings they were\n>>a pretty good team that was contending for the Stanley Cup but looked\n>>unlikely to win it.  Now they are a pretty good team that is contending for\n>>the Stanley Cup but looks unlikely to win it.  A truly great GM would\n>>have been able to make the moves to push the team to the upper echelon\n>>of the NHL and maybe win the Stanley Cup.  A good GM (like Murray) can\n>>maintain the team's success but can't push them to the next level.\n>\n>When Jacques Demers brought the Wings to the conference finals twice a\n>few years back, he had everyone on the team giving 100 percent, but he \n>had very little talent.  He had Yzerman, Bob Probert (who had drinking\n>problems at the time), and a couple of decent goaltenders in Hanlon and\n>Stefan who got hot.  That's about it.  Can you name one player on those\n>earlier teams who even deserved to be in the all-star game, much less \n>actually got there, other than Yzerman and Probert?  Like, Petr Klima?\n>Give me a break!  When they faced Edmonton in both of those conference\n>finals, as hard as they played, it was clear they faced a team that simply\n>had superior talent to the Wings.  That's why they could not get to the\n>finals.  Also, at that time the Norris division was still the weakest \n>division in hockey, and getting past Chicago, and Toronto was not as\n>impressive as it is today.\n>\n>Murray has brought scoring talent to the Wings that they did not have a\n>few years ago when Devellano was GM and Demers was coach.  To name a few,\n>Ysebaert, Kozlov, and Paul Coffey (who has made a definite positive impact on\n>the power play especially).  \n\n>Murray has built one of the most talented teams in hockey at the present, with\n>the possible exception of the Pittsburgh Penguins.  The Wings have at least\n>five 30 goal scorers that I can think of, and a couple of defenseman with over\n>100 games worth of playoff experience.  Murray's one failing is that unlike\n>the other GM's you mentioned (who are definitely also good, don't get me\n>wrong), he has not found for himself a strong coach to motivate the team to\n>go out and give 100 percent for the full 60 minutes every night like they \n>did the last time they made a cup run.  When a team wins or loses, it's a\n>reflection of the GM *and* the coach, which was the point of my original \n>post.  If the team outmatches their opponent in terms of talent but loses\n>anyway (which has been the case this year when the Wings have struggled),\n>that indicates that the GM has done his job in building up the team but the\n>coach has failed to motivate them.  If, as in the case of the last run the\n>Wings made in the playoffs before Murray came, they gave opponents a hard\n>time who should have beaten them easily, that indicates good coaching making\n>up for a lack of talent.\n\nAll of this is fine.  I never said that Murray was a bad GM.  I merely said\nthat he isn't the best GM in hockey- or even a contender for that honor.\nIf Murray is as great as you claim- the Wings would have won the Stanley Cup\nby now- probably more than once.  If he was as great a GM as you claim\nand he was as poor a coach as you claim- he would have been intelligent\nenough to hire the coach to push the team to the next level of success.\nBut Murray is an average (unspectacular) NHL coach and a pretty good GM\nso none of this is true anyway.\n\nGregmeister\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4328, "properties": {"category": "sci.crypt", "text": "From: bear@kestrel.fsl.noaa.gov (Bear Giles)\nSubject: How do they know what keys to ask for?  (Re: Clipper)\nOrganization: Forecast Systems Labs, NOAA, Boulder, CO USA\nLines: 24\n\n\nThis may be a stupid question, but how does the government know which keys\nto ask for?\n\nWill owners be required to REGISTER their phones, faxes, modems, etc.,\nand inform the government when they are moved to a different phone number?\nWill there be penalities if the public does not do this?  Will identification\n(the National Health Care ID, perhaps) be required when purchasing a\nClipper-equipted phone?\n\nOr will each chip transmit identifying information at the start of\na conversation?  Identification which could be used to automatically\nlog who calls whom?  (The _phone_ company keeps records, but this \ninformation would be accessable by a well-placed van near a microwave\nrelay station).\n\nThis raises the question of how the two phones agree on a communications\nencryption key.  Will it be something that is derived from information\nexchanged at the start of the conversation -- and hence derivable by\nan eavesdropper?\n\n-- \nBear Giles\nbear@fsl.noaa.gov\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4329, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOriginator: rdippold@qualcom.qualcomm.com\nNntp-Posting-Host: qualcom.qualcomm.com\nOrganization: Qualcomm, Inc., San Diego, CA\nDistribution: na\nLines: 12\n\nted@nmsu.edu (Ted Dunning) writes:\n>nobody seems to have noticed that the clipper chip *must* have been\n>under development for considerably longer than the 3 months that\n>clinton has been president.  this is not something that choosing\n>choosing bush over clinton would have changed in the slightest; it has\n>been in the works for some time.\n\nI've got no doubts that this would probably have gone ahead if Bush\nwas still president.  What's puzzling to me are the people who are\napparently amazed that Clinton is going along with it.\n-- \nOther than that, Mrs. Lincoln, how did you like the play?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4330, "properties": {"category": "talk.politics.misc", "text": "From: ckincy@cs.umr.edu (Charles Kincy)\nSubject: Re: The Tories could win the \"lottery\"...Clinton GST?\nNntp-Posting-Host: next4.cs.umr.edu\nOrganization: University of Missouri - Rolla, Rolla, MO\nLines: 29\n\nIn article <1993Apr16.031616.23130@magnus.acs.ohio-state.edu> rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) writes:\n>\n>This country is hardly ruined. In fact, it is booming compared to after the\n>1980 election.\n>\n>This whole \"USA has gone to hell and Reagan/Bush caused it\", is not only lame,\n>pathetic, and old....... it's wrong.\n>\n>Under Reagan/Bush the economy grew by 1.1 trillion dollars.  This is more than \n>the entire economy of Germany, a \"kind, gentle\" country, in many peoples' \n>books.  What a joke.\n\nDrive down to Cincinnati and take a look.  Not pretty, is it?\nThings were much better there in 1980.  All that growth went into\nthe hands of Ron and Georgie's pals, and I DIDN'T GET A SINGLE\nDIME OF IT, DAMMIT.  And, now, I'm gonna be bled to death by tax\nleeches to pay for the damage.  F***ing great.\n\nOh, here's another thing.  Seems like a lot of people in \nColumbus drive over to Marysville and make Japanese cars.  Hm.\nI wonder how many American-owned companies employ those in\nCentral Ohio?  Other than Ohio State University.  :)\n\ncpk\n-- \nIt's been 80 days.  Do you know where your wallet is?\n\nSlick Willy's already got his hand in my pocket.  I'm just afraid\nof what he might grab hold of.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4331, "properties": {"category": "talk.politics.mideast", "text": "From: ifaz706@utxvms.cc.utexas.edu (Noam Tractinsky)\nSubject: Go Hizbollah II!\nLines: 28\nNntp-Posting-Host: purple.cc.utexas.edu\nOrganization: University of Texas @ Austin\nLines: 28\n\n\nFrom Israel Line, Thursday, April 22, 1993:\n \nToday's HA'ARETZ reports that three women were injured when a\nKatyusha rocket fell in the center of their community. The rocket\nwas one of several dozen fired at the communities of the Galilee in\nnorthern Israel yesterday by the terrorist Hizbullah organization [...] \n\n\nIn article <1993Apr14.125813.21737@ncsu.edu> hernlem@chess.ncsu.edu \n(Brad Hernlem) wrote:\n\nCongratulations to the brave men of the Lebanese resistance! With every\nIsraeli son that you place in the grave you are underlining the moral\nbankruptcy of Israel's occupation and drawing attention to the Israeli\ngovernment's policy of reckless disregard for civilian life.\n\n\n\tApparently, the Hizbollah were encouraged by Brad's cheers\n\t(good job, Brad). Someone forgot to tell them, though, that \n\tBrad asks them to place only Israeli _sons_ in the grave, \n\tnot daughters. Paraphrasing a bit, with every rocket that \n\tthe Hizbollah fires on the Galilee, they justify Israel's \n\tholding to the security zone. \n\nNoam\n \n \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4332, "properties": {"category": "comp.sys.mac.hardware", "text": "From: blast@nntp.crl.com (Tim Keanini)\nSubject: Mac SCSI spec?\nLines: 20\nNNTP-Posting-Host: crl.com\n\nI have a MacIIFX and I know that it is wired about its SCSI chain.\n\nI just bought a drive and I need to find out a few hardcore SCSI question:\n\nDoes the IIFX SCSI chain want to see active or passive termination?\n\nDoes the IIFX SCSI spec want me to enable the initiation of the SDTR message?\n\nWHat does the IIFX SCSI spec want as far as parity checking?\n\nThese are some very good questions for the FAQ.       \nIf someone does not have time to answer these questions but does know \nwhere I can look them up please let me know and I will repost the answers\nfor everyone to see.\n\nthanks,\n\nTim Keanini        <timk@broder.com>  or  <blast@crl.com>\nSound Engineer         Broderbund Software\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4333, "properties": {"category": "misc.forsale", "text": "From: easwarakv@woods.ulowell.edu\nSubject: CD'S FOR SALE\nLines: 20\nOrganization: University of Massachusetts Lowell\n\n  Th following cd's are for sale. Each cd cost 10$ except otherwise indicated\n  which includes shipping and handling.\n \n Achtung baby\t\t\t\tU2 *\n Joshua tree\t\t\t\tU2 **\n The immaculate collection              Madonna **  $12\n Love hurts                              Cher *\n Garth brooks                           Garth brooks *\n Red hot ..chilli peppers..               **\n OOOOOHHHHH\t\t\t\tTLC **\n Light and shadows\t\t\twilson **\n\n * Used only once.\n ** never used, most of them are still in shrink wraps\n\n Please email to\n\n kGC @ woods.ulowell.edu\n\n \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4334, "properties": {"category": "soc.religion.christian", "text": "From: gilham@csl.sri.com (Fred Gilham)\nSubject: Poem\nOrganization: Computer Science Lab, SRI International, Menlo Park, CA.\nLines: 145\n\n\n          The Sophomore\n          (Romans 1:22)\n\nThe sophomore says, ``What is truth?''\nand turns to bask in the admiration of his peers.\n\nHow modern how daring how liberating\nHow modern how daring how liberating\nthey chant\n\nThe sophomore, being American\nDoesn't know\nThat his ``question''\n\n   modern\n       skeptical\n           cynical\n\nWas asked before, by a\n\n   modern\n       skeptical\n           cynical\n   urbane cosmopolitan\n\nPolitician (appointed not elected)\nWho happened to live two thousand years ago.\n\nLike many politicians he cared\n\n    Less about ideals\n         than results\n\n    Less about ends\n         than means\n\n    Less about anything\n         than keeping his job\n              (and his head).\n\nWe might call him\nA bit brutal\nThough `firm' would be kinder\n(And no doubt Stalin, who let nobody go, laughed at his laxness)\nHe didn't like his job; perhaps he no longer hoped for better\n(Nor feared worse, except regarding his head).\n\nAnd when these wily Jews\nWith their heads-I-win, tails-you-lose\n     conundrums\nBrought forth their madman,\nHis first impulse was to play the Roman:\n``I find nothing wrong with him,\n  See to it yourselves.''\n\nBut when they mentioned `King' and `Caesar'\nHis heart froze.\n\nIf he killed their madman\n    He'd start a riot\n         and lose his job\n             (and his head)\n\nIf he saved the King of the Jews\n    He'd piss off Caesar\n         and lose his job\n             (and his head)\n\nAnd when his wife told him to have\n   Nothing to do with the righteous lout\nShe didn't tell him anything\n   He hadn't already figured out.\n\nSo he punted.\n\n``Not my jurisdiction!  Take him to see Herod!''\n(who just happened to be in town....)\n\nHerod appreciated the courtesy\nBut wasn't worried\n        And sent the sharp-tongued fool\n     (Who suddenly didn't have much to say,\n    funny how people lose it under pressure....)\n  back\nIn the attire proper\n  to his Royal State.\n\nHis ass is covered---if Herod has no problem,\nCaesar certainly won't.  The fool can be king\nof whatever world he wants\nas long as it's not Caesar's.\n\n``I'm letting him go,'' he said with a shout.\n(Looks like he'll last this one out....)\n\nThe crowd's reaction puzzled him.\n  They really wanted him dead.\nThey didn't want the King of the Jews,\n  They wanted Barabbas instead\n(And, as Josephus records, they got him)\n\nOh well, he thought,\nThey all look the same to me.\nAnd we'll get Barabbas next time.\n\nAnd if I can get them to say\n   ``We have no king but Caesar!''\n   By killing a madman,\nHell, I'll kill ten a day.\n\nAnd then Pilate had his fun\n  A little joke\n    Short\n      To the point\n        Trilingual\n\nAnd all this\nWent as it always does\nWhen someone gets caught\nIn the gears of government\n\nAnd there's a scientific explanation\n     (no doubt)\nFor the superstitious rumors\n     (persisting to this day)\nThat it didn't all end\nWith a tomb\nand a Roman squadron on guard.\n\nOur sophomore doesn't know about this\nHe doesn't recognize his kindred spirit\n(Or truth either, as he admits).\n\nI guess we haven't learned much\nin two thousand years.\n\n\n\n\n--\n-Fred Gilham    gilham@csl.sri.com\n\"Peace is only better than war when it's not hell too.  War being hell\nmakes sense.\"\n               -Walker Percy, THE SECOND COMING\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4335, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: thia@sce.carleton.ca (Yong Thia)\nSubject: protection fault\nSummary: fault\nKeywords: fault\nOrganization: Carleton University\nDistribution: na\nLines: 13\n\nHi! I was wondering if anyone out there could help me.\nI have an error message that goes:\n\n\n\nWhat does it mean?\n\nI am running MS windows 3.1.\n\nThanks in advance\n--\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4336, "properties": {"category": "rec.sport.hockey", "text": "From: mmilitzo@scott.skidmore.edu (matthew militzok)\nSubject: NHL Playoff Stats & Scores\nOrganization: Skidmore College, Saratoga Springs NY\nLines: 2\n\nFor updated playoff updates (scores, stats, summaries)\ne-mail me. (mmilitzo@skidmore.edu) with the subject STATS.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4337, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: robie@umbc.edu (Mr. William Robie)\nSubject: IBM PC Convertible Parts 4-Sale\nOrganization: University of Maryland, Baltimore County Campus\nLines: 26\nNNTP-Posting-Host: umbc4.umbc.edu\nX-Auth-User: robie\n\nI have some used, but working, parts available for the original IBM\nlaptop - the PC Convertible.  If you have one of these things, and\nstill are using it, you may have found out that IBM wants OUTRAGEOUS\nprices for parts.  I built up a supply of enough parts to keep mine\ngoing for a few years, and will be willing to part with the rest.\n\nBasically, I have all the standard parts EXCEPT:\n\nMotherboard\nBattery\nPower Supply\n\nI've got a few of the accessories, too - just ask.\n\nThese are in very limited supply, however.  I've basically just cannibalized\na couple of old machines.\n\nIf you are interested, please e-mail me.\n\nNote: For those who want to convince themselves that they are somehow\nsuperior because they have newer and better machines, or who want to\ninform me that these are \"worthless junk,\" save your effort.  I'll\njust delete the note.  Those of us who bought these machines when they first\ncame out still find them useful for word processing, etc..  I'm saving\nmine as a future antique.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4338, "properties": {"category": "misc.forsale", "text": "From: easu351@orion.oac.uci.edu (Suzanna T. Chow)\nSubject: (update) Pioneer DEH-M980 car CD Reciever for SALE!\nNntp-Posting-Host: orion.oac.uci.edu\nSummary: (update) Pioneer DEH-M980 car CD Reciever for SALE!\nKeywords: pionneer\nLines: 15\n\nfeatures include:\n\nDetachable Face, 30x4 watt amplifier, Infra-red Remote, 8 times oversampling\n1 bit DAC, supertuner IV (18fm and 6am presets), best station memory\nCD Changer Controller, loud switch, clock\n\nall original packaging, asking $450.00 (or best offer)\n\nThis CD reciever is a very nice radio, great condition, the remote comes in very\nhandy (you wouldn't think it would), TOP of the line CD Reciever\n\nInterested!  send email to Brion Sohn at (easu351@orion.oac.uci.edu)\n             any resonable offers will be considered\n\n******Latest offer $400.00 (including shipping)*********\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4339, "properties": {"category": "comp.windows.x", "text": "From: Gary Keim <gk5g+@andrew.cmu.edu>\nSubject: Re: X Toolkits\nOrganization: School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 10\nNNTP-Posting-Host: po2.andrew.cmu.edu\nIn-Reply-To: <199304271930.AA07991@rebels.b23b.ingr.com>\n\nExcerpts from misc: 27-Apr-93 Re: X Toolkits Sivesh Pradhaan@rebels.b (423)\n\n> I do not have finger!!! So is there any other way of accessing this service \n> like mail server or telnet or ftp?\n\nYou can use telnet:\n\n% xhost +atk.itc.cmu.edu\n% telnet atk.itc.cmu.edu 79\nrun-demo\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4340, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: Newspapers censoring gun advertisements\nOrganization: Computer Science Department,  Stanford University.\nLines: 48\n\n>NEWSPAPER AD CENSORSHIP\n>\n>The newspapers have now decided to censor gun ads - which is why you no longer\n>see the ads that Traders, San Leandro, has run for many years.\n>\n>If you are tired of newspapers who run sex and liquor ads galor, yet refuse to\n>run legitimate gun ads, please send a letter to the editors indicating your\n>displeasure over their censorship doctrine.\n>\n>Following is a list of Bay area newspapers who censor gun ads.  Perhaps you'd\n>like to send them your thoughts on this issue!\n>\n>Contra Costa Times\tSan Mateo Times\t\tSan Francisco Chronicle\n>POB 5088\t\tPOB 5400\t\t901 Mission St.\n>Walnut Creek, CA 94596\tSan Mateo, CA 94402\tSan Francisco, CA 94103\n>\n>San Fran. Independent\tSan Fran. Examiner\tSan Jose Mercury News\n>1201 Evans Ave\t\t110 5th St.\t\t750 Ridder Park Dr.\n>San Fran., CA 94124\tSan Fran., CA 94103\tSan Jose, CA 95190\n\nI have the April 15, 1993 issue of the SF Chronicle in my lap.  Page\nE7 (in the \"Sporting Green\" section) has a Trader's advert.  (The\ncopy is a bit screwed up - it says that the prices offered expire\n4-14-93, but the ad is there.)\n\nThe SF Examiner and Chronicle run the same set of adverts (because\nthey have a joint printing/biz agreement and differ only in editorial\ncontent).\n\nI've seen gun ads recently in the merc, which is anti-gun editorially,\nalbeit not from traders, but from its competitors.\n\nI don't know about the other papers.\n\nDoes Traders claim that things are changing?  When?\n\n>- Why TV journalists lie\n\nBecause it's easier than telling the truth and no one much cares\neither way.\n\n>Let me know if you write to any of these bozos.\n\nBefore you do, make sure that the bozos are actually doing what\nyou're accusing them of.\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4341, "properties": {"category": "rec.motorcycles", "text": "From: mjs@sys.uea.ac.uk (Mike Sixsmith)\nSubject: Re: Wanted: Advice for New Cylist\nOrganization: University of East Anglia\nLines: 9\n\nThe Angel Levine writes:\n\n\n>It's exactly as dangerous as it looks.\n\nDid you have anyone in particular in mind there Jody?\n\n:-)\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4342, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: Dmm Advice Needed\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 19\n\nI've had my Fluke 8060A here at work for just over 10 years now.\nIt is a wonderful meter.  Several colleagues here have some of the\nnewer Fluke meters, though I still would just as soon hang on to my\n8060.  The 8060 a is the 1980s digial \"analog\" to the Simpson 260\nanalog DMM of the 1950-1960s.  There was/is (?) an 8060B that had\nextended frequency response.\n\nI've got a nifty little pen shaped meter made by Soar that I keep\nin my toolbox at home.  I've had that for six or seven years now\nand only replaced the batteries a couple of timees; it is more than\nadequate for day-to-day hobby use.  I think Soar OEMs their stuff\nfor a number of vendors.  Some of JDR Microdevices' stuff looks\nrather similar to Soar's.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4343, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: im14u2c@camelot.bradley.edu (Joe Zbiciak)\nSubject: Rockwell Chipset for 14.4's ... Any good?\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Bradley University\nLines: 24\n\nI have a quick question regarding the Rockwell Chipset\nthat's`come out relatively recently--It supports v.32, v.32bis,\nv.42, Group III Fax, and so on...  However, I heard there\nare bugs in the chipset.  I know someone that has a ZOOM\n14.4 Modem that uses the chipset, and he hasn't had a problem.\n\nWhat's the word on the chipset?  Is this a ROM bug specific \nto a specific brand using the Rockwell, or is it the Rockwell\nchipset itself?  And, if it is the Rockwell chipset, what \nare the chances that if I buy one of these modems (using the\nRockwell chipset), that a) the bug will affect me, b) a ROM\nchange will fix/compensate for the bug?\n\nPlease send responses via email...  \n\n--Joe Zbiciak\nim14u2c@cegt201.bradley.edu / im14u2c@camelot.bradley.edu\n\n--\nJoseph Zbiciak                         im14u2c@camelot.bradley.edu\n[====Disclaimer--If you believe any of this, check your head!====]\n------------------------------------------------------------------\n\nNuke the Whales!\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4344, "properties": {"category": "rec.autos", "text": "From: lxrosser@cco.caltech.edu (Alex Rosser)\nSubject: Re: What is \" Volvo \" ?\nArticle-I.D.: gap.1pl86tINNfv7\nOrganization: California Institute of Technology, Pasadena\nLines: 27\nNNTP-Posting-Host: blacker.caltech.edu\n\nwolfson@regatta.sps.mot.com (Stephen Wolfson) writes:\n\n>In article <1993Mar31.193406.29625@ugle.unit.no> oep@colargol.edb.tih.no  \n>(oep) writes:\n>> which turns into a teenagers car when it gets old. The average  \n>lifelength of\n>> a Volvo in Norway is 18 years, and in Sweden 20 years)\n\n>Of course someone pointed out when Saab or Volvo was running their\n>At least 10 years ads, that the average milage was significantly\n>less than than the US average.\n\nThat my be, but every Volvo I've ever owned has lasted far longer than most\nother cars.....\n1981 Volvo 245....125,000 Miles, still on the road.\n1983 Volvo 242....195,000 Miles, still on the road.\n1984 Volvo 244....175,000 Miles, still on the road.\nAnd I'll admit, the dealer repair cost is high. But with some mechanical\naptitude of your own, and finding a good indi mechanic, you can avoid most\nbreakdowns, and make the rest cheap(The sum total of the repairs on the car with\n195,000 miles has been 2 mufflers and a radiator. Whoa. Bad repair record). \nAnd all of these cars are driven fairly hard. None of them are at the head of\na line of cars going 30 MPH....the first two spend a lot of their operating\nlife with the speedometer pegged...and the only reason the 84 doesn't is it has\na 120 MPH speedo...\nWhat I want to know is....have all you people who hate Volvos been traumatized\nby someone in a 745 Turbo wagon blowing you away on the road, or what?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4345, "properties": {"category": "rec.autos", "text": "From: jp@vllyoak.resun.com (Jeff Perry)\nSubject: Re: wife wants convertible\nOrganization: Private site in San Marcos, California\nLines: 35\n\naas7@po.CWRU.Edu (Andrew A. Spencer) writes:\n\n> \n> In a previous article, dspalme@mke.ab.com (Diane Palme x2617) says:\n> \n> >: nuet_ke@pts.mot.com (KEITH NUETZMAN X3153 P7625) writes:\n> >: > HELP!!!\n> >: > my wife has informed me that she wants a convertible for her next car.\n> >jp@vllyoak.resun.com (Jeff Perry) writes:\n> >: FYI, just last week the PBS show Motor Week gave the results of what they \n> >: thought were the best cars for '93.  In the convertible category, the \n>                                                ~~~~~~~~~~~~~~~~~~~\n> >: Honda Civic del Sol achieved this honor.  \n> >I own a del Sol and I must vouch for the interior.  I really looks snazzy wh\n> >the top is off.  I looks a lot better in person than on the television.  (I \n> >that Motorweek as well.  Needless to say I was smiling a bit by the time it\n> >was over ...)  :*)\n> >\n> >Watch out for that darned \"convertible tan\" tho...\n> \n> \n> i simply must inquire, how can people honestly consider this car\n> a \"convertible\"?  Does Porsche have a patent on the \"targa\" name?\n> I mean, convertible to me means \"top down\", which the del Sol certainly\n> does NOT do.  It has the center that lifts out.  This is what i would\n> term a targa(unless Porsches was gonna sue me for doing that).  I know\n> the rear window rolls down, but i still can hardly consider this car\n> to be a convertible.\n> \n\nYes, however, with the top off and the rear window down this car is more \nlike a convertible than a coupe.  Think of it as a convertible with an \nintegrated roll-bar like addition.\n\njp\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4346, "properties": {"category": "soc.religion.christian", "text": "From: vbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.)\nSubject: Re: The arrogance of Christians\nOrganization: Case Western Reserve Univ. Cleveland, Ohio (USA)\nLines: 32\n\nIn article <Apr.10.05.32.15.1993.14385@athos.rutgers.edu> dleonar@andy.bgsu.edu (Pixie) writes:\n>Pardon me, a humble atheist, but exactly what is the difference\n>between holding a revealed truth with blind faith as its basis (i.e.\n>regardless of any evidence that you may find to the contrary) as an\n>absolute truth, fully expecting people to believe you and arrogance?\n>\n>     They sound like one and the same to me.\n>\n>     I see no wisdom whatsoever in your words\n\nI'm not surprised that you see no wisdom in them.  That is because your\npremises are wrong from the word \"Go\".  You claim that Christianity is\nbased on blind faith, but this simply is not so.  Just look at the\ncurrent thread on the evidence for Jesus' resurrection for evidence\nthat Jesus was real and that he triumphed over death.\n\nFurthermore, you say that Christians hold to their beliefs \"regardless of\nany evidence that you may find to the contrary.\"  Without any evidence\nto support your claim, this statement is little more than an ad hominem \nargument.\n\nMind you, I don't mean this as a personal attack.  I'm merely pointing out\nthe intellectual dishonesty behind condemning Christianity in this fashion.\nIt would make much more sense if you could prove that all Christians do \nbase their belief on empty nothings, and that they do ignore all evidence to \nthe contrary.  Only then can you expect your attack to make sense.\n \n-- \nVirgilio \"Dean\" Velasco Jr, Department of Electrical Eng'g and Applied Physics \n\t CWRU graduate student, roboticist-in-training and Q wannabee\n    \"Bullwinkle, that man's intimidating a referee!\"   |    My boss is a \n   \"Not very well.  He doesn't look like one at all!\"  |  Jewish carpenter.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4347, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: The systematic genocide of the Muslim population by the Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 99\n\nIn article <1993Apr5.211146.3662@mnemosyne.cs.du.edu> jfurr@nyx.cs.du.edu (Joel Furr) writes:\n\n>I dunno, Warren.  Just the other day I heard a rumor that \"Serdar Argic\"\n>(aka Hasan Mutlu and Ahmed Cosar and ZUMABOT) is not really a Turk at all,\n>but in fact is an Armenian \n\n1/64th or 63/64th?\n\nI must congratulate your analytical and excellent\nreportage about  Diana. From  the writings  of tye\nbiographers  you  quoted,  I can  perceive,  maybe\nchauvinistically,  the  remnants of  her  Armenian\ngenes. Even  though she  is only  1/64th Armenian,\nshe   seems   to   have   many   of   the   strong\ncharacteristics  of Armenian  women. Her  Armenian\nancestry is  traced to Eliza Kewark  (an Armenian\nfrom  India), who  married  the Scottish  merchant\nThedore Forbes.  From the union was  born Kathleen\nScott  Forbes,  who  married  James  Crombie  from\nAberdeen. They  had a  daughter Jane,  who married\nDavid  Littlejohn.  Their  daughter  Ruth  married\nWilliam Gill. Ruth Silvia Gill, the grandmother of\nLady  Diana,   married  Lord  Fermoy,   and  their\ndaughter, Frances  Ruth Burke Roache,  married the\neight Earl of Spencer, who  was the father of Lady\nDiana. It is noteworthy  that Eliza Kewark was also\nreferred  to as  Mrs. Forbesian  (a characteristic\nArmenian  surname  ending).  An  Armenian-Scottish\ngene mix is dynamite.\n\nLevon K. Topuzian\nAssistant Professor\nNorthwestern University\nSkoie, Illinois.\n\nTIME, December 21, 1992 'Letters'\n\n>who is attempting to make any discussion of the\n>massacres in Armenia of Turks so noise-laden as to make serious discussion\n>impossible, thereby cloaking the historical record with a tremendous cloud\n>of confusion.  \n\nYou have set up straw horses and knocked them down. I'm not impressed.\nAnyway, the Armenians tore apart the Ottoman Empire's eastern provinces,\nmassacred 2.5 million defenseless Turkish women, children and elderly \npeople, burned thousands of Turkish and Kurdish villages and exterminated \nthe entire Turkish population of the Armenian dictatorship between \n1914-1920. Such outrageous sleight of hand that is still employed today \nin Armenia brings a depth and verification to the Turkish genocide \nthat is hard to match. A hundred years ago Armenians again thought \nthey could get whatever they wanted through sheer terror like the \nRussian anarchists that they accepted as role models. Several Armenian \nterror groups like ASALA/SDPA/ARF Terrorism and Revisionism Triangle \nresorted to the same tactics in the 1980s, butchering scores of innocent\nTurks and their families in the United States and Europe. It seems that \nthey are doing it again, at a different scale, in fascist x-Soviet Armenia \ntoday.\n\n\nSource: Stanford J. Shaw, on Armenian collaboration with invading Russian\narmies in 1914, \"History of the Ottoman Empire and Modern Turkey (Volume\nII: Reform, Revolution & Republic: The Rise of Modern Turkey, 1808-1975).\"\n(London, Cambridge University Press 1977). pp. 315-316.\n\n\"In April 1915 Dashnaks from Russian Armenia organized a revolt in the city \n of Van, whose 33,789 Armenians comprised 42.3 percent of the population, \n closest to an Armenian majority of any city in the Empire...Leaving Erivan \n on April 28, 1915, Armenian volunteers reached Van on May 14 and organized \n and carried out a general slaughter of the local Muslim population during \n the next two days while the small Ottoman garrison had to retreat to the\n southern side of the lake.\"\n\n\"Knowing their numbers would never justify their territorial ambitions,\n Armenians looked to Russia and Europe for the fulfillment of their aims.\n Armenian treachery in this regard culminated at the beginning of the First\n World War with the decision of the revolutionary organizations to refuse\n to serve their state, the Ottoman Empire, and to assist instead other\n invading Russian armies. Their hope was their participation in the Russian\n success would be rewarded with an independent Armenian state carved out of\n Ottoman territories. Armenian political leaders, army officers, and common\n soldiers began deserting in droves.\"\n\n\"With the Russian invasion of eastern Anatolia in 1914 at the beginning of\n World War I, the degree of Armenian collaboration with the Ottoman's enemy\n increased drastically. Ottoman supply lines were cut by guerilla attacks,\n Armenian revolutionaries armed Armenian civil populations, who in turn\n massacred the Muslim population of the province of Van in anticipation of\n expected arrival of the invading Russian armies.\"\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4348, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: President's Radio Address 4.17.93\nOrganization: MIT Artificial Intelligence Lab\nLines: 178\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n                   (Pittsburgh, Pennslyvania)\n______________________________________________________________\nFor Immediate Release                         April 17, 1993     \n\n             \n                  RADIO ADDRESS TO THE NATION \n                        BY THE PRESIDENT\n             \n                Pittsburgh International Airport\n                    Pittsburgh, Pennsylvania\n             \n             \n10:06 A.M. EDT\n             \n             \n             THE PRESIDENT:  Good morning.  My voice is coming to\nyou this morning through the facilities of the oldest radio\nstation in America, KDKA in Pittsburgh.  I'm visiting the city to\nmeet personally with citizens here to discuss my plans for jobs,\nhealth care and the economy.  But I wanted first to do my weekly\nbroadcast with the American people. \n             \n             I'm told this station first broadcast in 1920 when\nit reported that year's presidential elections.  Over the past\nseven decades presidents have found ways to keep in touch with\nthe people, from whistle-stop tours to fire-side chats to the bus\ntour that I adopted, along with Vice President Gore, in last\nyear's campaign.\n             \n             Every Saturday morning I take this time to talk with\nyou, my fellow Americans, about the problems on your minds and\nwhat I'm doing to try and solve them.  It's my way of reporting\nto you and of giving you a way to hold me accountable.\n             \n             You sent me to Washington to get our government and\neconomy moving after years of paralysis and policy and a bad\nexperiment with trickle-down economics.  You know how important\nit is for us to make bold, comprehensive changes in the way we do\nbusiness.  \n             \n             We live in a competitive global economy.  Nations\nrise and fall on the skills of their workers, the competitiveness\nof their companies, the imagination of their industries, and the\ncooperative experience and spirit that exists between business,\nlabor and government.  Although many of the economies of the\nindustrialized world are now suffering from slow growth, they've\nmade many of the smart investments and the tough choices which\nour government has for too long ignored.  That's why many of them\nhave been moving ahead and too many of our people have been\nfalling behind.\n             \n             We have an economy today that even when it grows is\nnot producing new jobs.  We've increased the debt of our nation\nby four times over the last 12 years, and we don't have much to\nshow for it.  We know that wages of most working people have\nstopped rising, that most people are working longer work weeks\nand that too many families can no longer afford the escalating\ncost of health care.\n             \n             But we also know that, given the right tools, the\nright incentives and the right encouragement, our workers and\nbusinesses can make the kinds of products and profits our economy\nneeds to expand opportunity and to make our communities better\nplaces to live.\n             \n             In many critical products today Americans are the\nlow cost, high quality producers.  Our task is to make sure that\nwe create more of those kinds of jobs.\n             \n             Just two months ago I gave Congress my plan for\nlong-term jobs and economic growth.  It changes the old\npriorities in Washington and puts our emphasis where it needs to\nbe -- on people's real needs, on increasing investments and jobs\nand education, on cutting the federal deficit, on stopping the\nwaste which pays no dividends, and redirecting our precious\nresources toward investment that creates jobs now and lays the\ngroundwork for robust economic growth in the future.\n             \n             These new directions passed the Congress in record\ntime and created a new sense of hope and opportunity in our\ncountry.  Then the jobs plan I presented to Congress, which would\ncreate hundreds of thousands of jobs, most of them in the private\nsector in 1993 and 1994, passed the House of Representatives.  It\nnow has the support of a majority of the United States Senate. \nBut it's been held up by a filibuster of a minority in the\nSenate, just 43 senators.  They blocked a vote that they know\nwould result in the passage of our bill and the creation of jobs.\n             \n             The issue isn't politics; the issue is people. \nMillions of Americans are waiting for this legislation and\ncounting on it, counting on us in Washington.  But the jobs bill\nhas been grounded by gridlock.  \n             \n             I know the American people are tired of business as\nusual and politics as usual.  I know they don't want us to spin\nor wheels.  They want the recovery to get moving.  So I have\ntaken a first step to break this gridlock and gone the extra\nmile.  Yesterday I offered to cut the size of this plan by 25\npercent -- from $16 billion to $12 billion.  \n             \n             It's not what I'd hoped for.  With 16 million\nAmericans looking for full-time work, I simply can't let the bill\nlanguish when I know that even a compromise bill will mean\nhundreds of thousands of jobs for our people.  The mandate is to\nact to achieve change and move the country forward.  By taking\nthis initiative in the face of an unrelenting Senate talkathon, I\nthink we can respond to your mandate and achieve a significant\nportion of our original goals.\n             \n             First, we want to keep the programs as much as\npossible that are needed to generate jobs and meet human needs,\nincluding highway and road construction, summer jobs for young\npeople, immunization for children, construction of waste water\nsites, and aid to small businesses.  We also want to keep funding\nfor extended unemployment compensation benefits, for people who\nhave been unemployed for a long time because the economy isn't\ncreating jobs.\n             \n             Second, I've recommended that all the other programs\nin the bill be cut across-the-board by a little more than 40\npercent.\n             \n             And third, I've recommended a new element in this\nprogram to help us immediately start our attempt to fight against\ncrime by providing $200 million for cities and towns to rehire\npolice officers who lost their jobs during the recession and put\nthem back to work protecting our people.  I'm also going to fight\nfor a tough crime bill because the people of this country need it\nand deserve it.\n             \n             Now, the people who are filibustering this bill --\nthe Republican senators -- say they won't vote for it because it\nincreases deficit spending, because there's extra spending this\nyear that hasn't already been approved.  That sounds reasonable,\ndoesn't it?  Here's what they don't say.  This program is more\nthan paid for by budget cuts over my five-year budget, and this\nbudget is well within the spending limits already approved by the\nCongress this year.\n             \n             It's amazing to me that many of these same senators\nwho are filibustering the bill voted during the previous\nadministration for billions of dollars of the same kind of\nemergency spending, and much of it was not designed to put the\nAmerican people to work.  \n             \n             This is not about deficit spending.  We have offered\na plan to cut the deficit.  This is about where your priorities\nare -- on people or on politics.  \n             \n             Keep in mind that our jobs bill is paid for dollar\nfor dollar.  It is paid for by budget cuts.  And it's the\nsoundest investment we can now make for ourselves and our\nchildren.  I urge all Americans to take another look at this jobs\nand investment program; to consider again the benefits for all of\nus when we've helped make more American partners working to\nensure the future of our nation and the strength of our economy.\n             \n             You know, if every American who wanted a job had\none, we wouldn't have a lot of the other problems we have in this\ncountry today.  This bill is not a miracle, it's a modest first\nstep to try to set off a job creation explosion in this country\nagain.  But it's a step we ought to take.  And it is fully paid\nfor over the life of our budget.\n             \n             Tell your lawmakers what you think.  Tell them how\nimportant the bill is.  If it passes, we'll all be winners.\n             \n             Good morning, and thank you for listening.\n\n                               END                 10:11 A.M. EDT\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4349, "properties": {"category": "sci.med", "text": "From: kfl@access.digex.com (Keith F. Lynch)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nOrganization: Express Access Public Access UNIX, Greenbelt, Maryland USA\nLines: 58\nNNTP-Posting-Host: access.digex.net\n\nIn article <19600@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n> Keith is the only person I have ever heard of that keeps the weight\n> off without any conscious effort to control eating behavior.  ... most\n> of us have to diet a lot to keep from going back to morbid obesity.\n\nI attribute my success to several factors:\n\nVery low fat.  Except when someone else has cooked a meal for me,\nI only eat fruit, vegetables, and whole grain or bran cereals.  I\nestimate I only get about 5 to 10 percent of my calories from fat.\n\nVery little sugar or salt.\n\nVery high fiber.  Most Americans get about 10 grams.  25 to 35 are\nrecommended.  I get between 50 and 150.  Sometimes 200.  (I've heard\nof people taking fiber pills.  It seems unlikely that pills can\ncontain enough fiber to make a difference.  It would be about as\nlikely as someone getting fat by popping fat pills.  Tablets are\njust too small, unless you snarf down hundreds of them daily.)\n\nMy \"clean your plate\" conditioning works *for* me.  Eating the last\n10% takes half my eating time, and gives satiety a chance to catch\nup, so I don't still feel hungry and go start eating something else.\n\nI don't eat when I'm not hungry (unless I'm sure I'll get hungry\nshortly, and eating won't be practical then).\n\nI bike to work, 22 miles a day, year round.  Fast.  I also bike to\nstores, movies, and everywhere else, as I've never owned a car.\nI estimate this burns about 1000 calories a day.  It also helps\nbuild and maintain muscle mass, prevent insulin resistance (diabetes\nruns in my family), and increase my metabolism.  (Even so, my\nmetabolism is so low that when I'm at rest I'm most comfortable\nwith a temperature in the 90s (F), and usually wear a sweater if\nit drops to 80.)  Cycling also motivates me to avoid every excess\nounce.  (Cyclists routinely pay a premium for cycling products that\nweigh slightly less than others.  But it's easier and cheaper to trim\nweight from the rider than from the vehicle.)\n\nThere's no question in my mind that my metabolism is radically\ndifferent from that of most people who have never been fat.  Fortunately,\nit isn't different in a way that precludes excellent health.\n\nObviously, I can't swear that every obese person who does what I've\ndone will have the success I did.  But I've never yet heard of one who\ndid try it and didn't succeed.\n\n> I think all of us cycle.  One's success depends on how large the\n> fluctuations in the cycle are.  Some people can cycle only 5 pounds.\n\nI'm sure everyone's weight cycles, whether or not they've ever been fat.\nI usually eat extremely little salt.  When I do eat something salty,\nmy weight can increase overnight by as much as ten pounds.  It comes\noff again over a week or two.\n-- \nKeith Lynch, kfl@access.digex.com\n\nf p=2,3:2 s q=1 x \"f f=3:2 q:f*f>p!'q  s q=p#f\" w:q p,?$x\\8+1*8\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.210+0000", "event": "documents", "entityId": 4350, "properties": {"category": "misc.forsale", "text": "From: konrad@intacc.uucp (Konrad Skreta)\nSubject: Macintosh II cx for sale\nDistribution: tor\nExpires: 01 May 93\nReply-To: konrad@intacc.UUCP (Konrad Skreta)\nOrganization: Matrix Artists' Network\nLines: 5\n\n\nMacintosh II cx with 40 MB HD, 8 MB RAM and 19\" monochrome\nmonitor (Ikegami) is for sale.\nAsking $3,000, no reasonable (best) offer will be rejected.\nContact Konrad at (416) 365-0564m Mon-Frii 9-5.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4351, "properties": {"category": "sci.space", "text": "From: MUNIZB%RWTMS2.decnet@rockwell.com (\"RWTMS2::MUNIZB\")\nSubject: Alaska Pipeline and Space Station!\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 16\n\non Date: 01 Apr 93 18:03:12 GMT, Ralph Buttigieg <ralph.buttigieg@f635.n713.z3.fido.zeta.org.au>\nwrites:\n/Why can't the government just be a tennant? Private commercial concerns\n/could just build a space station system and charge rent to the government\n/financed researchers wanting to use it.\n\nI believe that this was the thought behind the Industrial Space Facility.  I\ndon't remember all the details, but I think Space Services (?) wanted NASA to \nsign an anchor tenancy deal in order to help secure some venture capital but \nNASA didn't like the deal.  (I'm sure I'll hear about it if I'm wrong!)\n\nDisclaimer: Opinions stated are solely my own (unless I change my mind).\nBen Muniz     MUNIZB%RWTMS2.decnet@consrt.rockwell.com    w(818)586-3578\nSpace Station Freedom:Rocketdyne/Rockwell:Structural Loads and Dynamics\n   \"Man will not fly for fifty years\": Wilbur to Orville Wright, 1901\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4352, "properties": {"category": "sci.space", "text": "From: Chris W. Johnson <chrisj@emx.cc.utexas.edu>\nSubject: Re: New DC-x gif\nOrganization: University of Texas at Austin Computation Center\nLines: 20\nDistribution: world\nNNTP-Posting-Host: gargravarr.cc.utexas.edu\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7F316D13D01BE1F@gargravarr.cc.utexas.edu>\nX-XXDate: Thu, 15 Apr 93 19:42:41 GMT\n\nIn article <Cohen-150493082611@q5022531.mdc.com> Andy Cohen,\nCohen@ssdgwy.mdc.com writes:\n> I just uploaded \"DCXart2.GIF\" to bongo.cc.utexas.edu...after Chris Johnson\n> moves it, it'll probably be in pub/delta-clipper.\n\nThanks again Andy.\n\nThe image is in pub/delta-clipper now. The name has been changed to \n\"dcx-artists-concept.gif\" in the spirit of verboseness. :-)\n\n----Chris\n\nChris W. Johnson\n\nInternet:   chrisj@emx.cc.utexas.edu\nUUCP:       {husc6|uunet}!cs.utexas.edu!ut-emx!chrisj\nCompuServe: >INTERNET:chrisj@emx.cc.utexas.edu\nAppleLink:  chrisj@emx.cc.utexas.edu@internet#\n\n...wishing the Delta Clipper team success in the upcoming DC-X flight tests.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4353, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: IF ONLY HE KNEW\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 20\n\nprudenti@juncol.juniata.edu wrote:\n\n: Upon arriving at home, Joseph probably took advantage of Mary...had his way\n: with her so to speak.  Of course, word of this couldn't get around so Mary,\n: being the highly-religious follower that she was decided \"Hey, I'll just say\n: that GOD impregnated me...no one will ever know!\"\n: \n: Thus, seen as a trustworthy and honorable soul, she was believed...\n:     \n: And then came Jesus, the child born from violence.\n: \n: \n: \n\nDave,\n\nCan you explain the purpose of your post, I can't imagine what you\nmust have thougt it meant. \n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4354, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: na\nLines: 62\n\nIn article <C4tsHu.Ew6@magpie.linknet.com> manes@magpie.linknet.com (Steve Manes) writes:\n>: That's all very well and good, but I was refering to all\n>: homocides, not just ones involving handguns (what is this fixation\n>: on death by shooting, as if it were somehow worse than death\n>: by stabbing?)\n\n>What relevance are ALL homicides in this debate?...\n>The issue is guns, not baseball bats.\n\nNo. The issue is reducing crime, not guns. If gun control doesn't\nlower crime overall, then is doesn't address the issue.\n\n>...Even a simpleton knows that\n>he stands a better chance of surviving an attack with a baseball bat...\n\nDoes that matter if assaults with a baseball bat become much\nmore common? Muggers using a gun rely primarily on the\nthreat of the gun, and rarely shoot their victim. A mugger\nusing a knife is much more likely to start by stabbing his victim \nin an effort incapacitate him. So, while a knif may not\nbe as deadly as a gun, criminals are more likely to actually\n_use_ the knife (as opposed to threatening the victim with it.)\nIt isn't at all clear that replacing the criminal's gun with a\nknife would reduce murders. Stabbings might just become more\ncommon. That's why it is important to look at the overall\n(not the with-gun) homicide rate. It avoids the issue of\nsubstitution, different criminal techinques of using different\nweapons, etc... and measures what we want to prevent: Murders.\n\n>As for knives, see my earlier post.  I'd much rather face a knife\n>than a gun, thanks.  \n\n\"Face\"? Possibly. However, facing knife-welding attackers isn't\ntoo common: Stabbing without warning and by supprise is the\nusual tactic. Very few criminals shoot from cover: It attracts\nto much attention and they don't have a chance to go through your\npockets. Overall, I'd much rather be threatened with a gun\nthan actually stabbed with a knife.\n\n>...Fortunately, the best defense against a knife isn't\n>another knife.  Anyone trained in unarmed self-defense won't have\n>much of a problem disarming a knife assailant untrained in knife\n>assault (which probably means 99.9% of knife assailants).\n\nActually, the exact same statement is true of guns: Training in\nunarmed self-defence will let you disarm an untrained gunman \nwithout much problem.\n\nYou also ignore the criminal's reaction: The National Crime\nSurvey clearly shows that criminals (unarmed, armed with a\nknife, gun or whatever) are unwilling to risk their lives\nin a confrontation. If faced with a serious threat, almost\nall prefer to leave and find an easier target. Therefore,\nusing (or threatening to use, as is much more commonly the case)\na weapon _is_ the best defence against an attacker, regardless\nof how he is armed. Knives, however, are much less effective\nthan guns: Criminals don't consider knifes as a \"serious threat\"\nnearly as often as they do guns.\n\n                                              Frank Crary\n                                              CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4355, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: ALT.SEX.STORIES under Literary Critical Analy\nFrom: NUNNALLY@acs.harding.edu (John Nunnally)\nDistribution: world\nOrganization: Harding University, Searcy, AR\nNntp-Posting-Host: acs.harding.edu\nX-News-Reader: VMS NEWS 1.24In-Reply-To: sandvik@newton.apple.com's message of Sun, 18 Apr 1993 00:06:17 GMTLines: 28\nLines: 28\n\nIn <sandvik-170493170457@sandvik-kent.apple.com> sandvik@newton.apple.com writes:\n\n> In article <1qevbh$h7v@agate.berkeley.edu>, dzkriz@ocf.berkeley.edu (Dennis\n> Kriz) wrote:\n> > I'm going to try to do something here, that perhaps many would\n> > not have thought even possible.  I want to begin the process of\n> > initiating a literary critical study of the pornography posted on\n> > alt.sex.stories, to identify the major themes and motifs present\n> > in the stories posted there -- opening up then the possibility of\n> > an objective moral evaluation of the material present there.  \n> \n> Dennis, I'm astounded. I didn't know you were interested to even\n> study such filth as alt.sex.stories provide...\n> \n> Cheers,\n> Kent\n> ---\n> sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n\n\"Finally, brethern, whatever is true, whatever is honorable, whatever is\nright, whatever is pure, whatever is lovely, whatever is of good repute,\nif there is any excellence and if anything worthy of praise, let your\nmind dwell on these things.\"  Phil. 4:8.\n\nMore cheers,\nJohn\nNunnally@acs.Harding.edu\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4356, "properties": {"category": "comp.windows.x", "text": "From: Bill.Kayser@delft.SGp.slb.COM (Bill Kayser)\nSubject: Re: gadgets vs widgets\nArticle-I.D.: parsival.199304060609.AA00309\nOrganization: The Internet\nLines: 38\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\n\n> \n> > Motif managers take a very simplistic approach to the way they handle events \n> > for gadgets: they track for all events(such as Motion Notify) wether or not \n> > the gadget expresses interest in the events. As a result, gadgets typically\n> > generate a great deal more network traffic.  Those with X terminals might find \n> > a noticable network performance drop as a result.\n> > \n> > Really?  What's the point using Gadgets then?\n> \n> It is a case of memory vs. network performance tradeoff.  Gadgets\n> save both client and server memory.  But memory is easily expandable while\n> network performance is not, so if I were designing Motif I would\n> at least make it *possible* to avoid using gadgets.  At present you\n> really don't have a choice because Motif forces you to use gadgets\n> in menus and in various other places.\n> \n> Adrian Nye\n> O'Reilly and Associates, Inc.\n\n\nI've been using the XmGraph widget that's been floating around and I\nnoticed the performance is significantly better using Gadgets, perhaps\neven 100% faster.  I had heard in an old programming course that gadgets\nwere no longer any benefit to performance, and that it's just as well\nto use widgets everywhere.  So why would ~50 pushbutton gadgets be a lot\nquicker than 50 pushbuttons in the graph?  Should I start putting gadgets\nback into my long pulldown menus? \n\nXmGraph manages children connected by XmArc widgets in a directed network\ntype graph with automatic layout capability.\n\n\nBill\n\n---------------------------------------------------------------------------\n                                         Schlumberger Geco-Prakla\n                                         Internet : kayser@delft.sgp.slb.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4357, "properties": {"category": "comp.windows.x", "text": "From: gerard@dps.co.UK (Gerard O'Driscoll)\nSubject: Re: Creating 8 bit windows on 24 bit display.. How?\nOrganization: The Internet\nLines: 58\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\n\nstolk@fwi.uva.nl writes:\n\n>> \n>> A problem occurs when I try to create a window with a visual that is different\n>> from the visual of the parent (which uses the default visual which is TC24).\n>> \n\nYou've got to set border_pixel in your window attributes. The default\nis CopyFromParent which gives the BadMatch. Do this:\n\n   ...\n   unsigned long valuemask;\n   ...\n   /*\n    * if border_width is non-zero you'd better alloc a colour from cmap\n    * rather than use any old pixel value. Also, use valuemask, it makes\n    * the code more obvious.\n    */\n   attr.colormap = cmap;\n   attr.border_pixel = 0;\n   valuemask = CWColormap | CWBorderPixel;\n   win = XCreateWindow(\n           dpy,\n           DefaultRootWindow(dpy),\n           10,10,\n           width,height,\n           0,\t\t         /* border width. see comment below */\n           8,                    /* depth */\n           InputOutput,          /* class */\n           vinfo.visual,         /* visual */\n           valuemask,\n           &attr\n         );\n\nA note on border_width: your code looked like this:\n\n>>   win = XCreateWindow(\n>>           dpy,\n>>           DefaultRootWindow(dpy),\n>>           10,10,\n>>           width,height,\n>>           CopyFromParent,       /* border width */\n>>           8,                    /* depth */\n>>           InputOutput,          /* class */\n>>           vinfo.visual,         /* visual */\n>>           CWColormap,\n>>           &attr\n>>         );\n\nborder_width set to CopyFromParent works but doesn't make sense.\nborder_width should be an unsigned int. You get away with it because\nCopyFromParent is #define'ed to be zero in X.h. If it happened to be\ndefined as -1 you'd get a very interesting looking window!\n\n \tGerard O'Driscoll (gerard.odriscoll@dps.co.uk)\n \tDu Pont Pixel Systems Ltd.\n \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4358, "properties": {"category": "rec.motorcycles", "text": "From: vech@Ra.MsState.Edu (Craig A. Vechorik)\nSubject: Re: More MOA stuff --- like the RA\nNntp-Posting-Host: ra.msstate.edu\nOrganization: Mississippi State University\nLines: 12\n\nFrom what I've seen in my 17 years as an MOA member, most of the folks\nin the RA are also in the MOA... I guess it's called covering all the\nbases to get some idea of what is really happening.. How else does one\nthink the RA gets all the juicey news about what's happen' inside the \nMOA?\n\nNihilism isn't for everyone, not that it really matters!\nCraig Vechorik\nBMW MOA Ambassador  (and ya, I finally sent my bucks into the RA too)\n\"REAL BMW's have TWO wheels\"  <--- politically correct statement\nDOD #843\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4359, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: msmith@beta.tricity.wsu.edu (Mark Smith)\nSubject: Toshiba 3401B CD-ROM:  Any problems?\nKeywords:  sound board CD-ROM toshiba \nOrganization: Washington State University Tri-Cities\nLines: 14\n\nI'm thinking about getting a Toshiba 3401 CD-ROM and hooking it up\nthrough the SCSI port on a Media Vision Pro Audio Spectrum sound board.\nDoes anybody have this configuration out there?  If so, does it work?\n\nFor anybody in general who has the Toshiba 3401 CD-ROM drive, have you\nhad any hadware problems?  Door not opening, scratched disks, door not\nclosing (getting stuck or not closing all the way), CD holder jamming\nand any other CD related problems.\n\nThanks in Advance\n\nMark\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4360, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rttimme@emory.edu (Dr. Richard Timmer)\nSubject: Approach for Windows?\nOrganization: Emory University, Atlanta, GA\nLines: 21\nX-Newsreader: Tin 1.1 PL3\n\n[ Article crossposted from comp.os.ms-windows.apps ]\n[ Author was Dr. Richard Timmer ]\n[ Posted on 24 Apr 93 23:11:16 GMT ]\n\n\nHello WinNetters:\n\nI have seen a great deal of discussion herein on the relative merits of \nMS Access and Borland Paradox/Win.  However, are there any users out there \nwith experience with the database package called \"Approach\".  It has gotten\na number of very good reviews from the various mags. and it seems like it\nwould require less hardware overhead than Paradox.  I have ruled out Access\nbecause some aspects of it are extremely non-intuitive, e.g. requiring a\nfield to always have a value.  I like what I've seen of Paradox, but it\nseems like the resource requirements are greater than what I have (386/25 MHz,\n6 MB ram).\n\nSo, please provide me with your thoughts are \"Approach\", good and bad.  Thanks.\n\n\nRichard Timmer  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4361, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ac151@Freenet.carleton.ca (David Clarke)\nSubject: DOS 6 / EMM386 / Windows 3.1 PROB\nReply-To: ac151@Freenet.carleton.ca (David Clarke)\nOrganization: The National Capital Freenet\nLines: 22\n\n\nHas anyone else experienced problems with windows hanging\nafter the installation of DOS 6?  I have narrowed the\nproblem down to EMM386.\n\nIf if remove (or disable) EMM386, windows is ok.  If EMM386\nis active, with NOEMS, windows hangs.  If I use AUTO with\nEMM386, the system hangs on bootup.\n\nDave.\n\n\n-- \n-------------------------------------------------------------------\nDavid Clarke   ...the well is deep...wish me well...\nac151@Freenet.carleton.ca  David_Clarke@mtsa.ubc.ca  clarkec@sfu.ca\n-------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4362, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: ===> EPS display software?\nFrom: HADAM@bcsc02.gov.bc.ca\nOrganization: BC Systems Corporation\nNntp-Posting-Host: bcsc02.gov.bc.ca\nLines: 4\n\nDoes any one know of any shareware/freeware software which lets one display\nEPS files on a PC with DOS and/or Windows???\nYour reply would be much appreciated.   Thanks.\nHal Adam, HADAM@bcsc02.gov.bc.ca\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4363, "properties": {"category": "talk.politics.guns", "text": "From: dlb5404@tamuts.tamu.edu (Daryl Biberdorf)\nSubject: Re: Do they really believe?\nOrganization: Texas A&M University, College Station\nLines: 38\nNNTP-Posting-Host: tamuts.tamu.edu\n\nIn article <1993Apr5.150031.3123@colorado.edu> ajteel@dendrite.cs.Colorado.EDU (A.J. Teel) writes:\n>\n>\tQ: Do you think that HIC et al really believe that the laws\n>that they are trying to get passed are for the good or are they just\n>lying through their teeth and trying to disarm the populace?\n\nI think that HCI people honestly believe that passing more gun control\nlaws will be in the best interests of public safety.  Why do I think\nthis?  Because I used to buy the HCI line.  During my freshman year (1987),\ntheir line made so much sense -- only people who \"need\" guns should be\nable to get them, and the people who \"need\" them are the police and\nother elites.  Unfortunately for us, this position is highly emotional\nand not well thought-out.  They never stop to think that HCI's position\nbasically says that the non-elite are incompetents (that's you and me,\nfolks!) and that the Second Amendment has absolutely nothing to do with\nhunting or other \"legitimate\" uses (which excludes overthrowing tyrannical\ngovernments and defending yourself when the police have proven they\ncan't protect you).\n\n>\tWe all know that the end result, regardless of the intention,\n>will be to have a MUCH easier to subdue population for the UN/NWO.\n>This is definitely a motivation of many in power, but I wonder to\n>what degree this is planned vs just duped.\n\nEvery pro-control person I've talked to is always left  stumped when I\nsimply argue the facts of gun control (that it has yet to be proven to\nlower crime rates) and weapons terminology (and I'm no expert -- but\nexplaining exactly how an \"evil\" semiautomatic weapon really works\ndoes wonders).\n\nI hvae personally found well-reasoned arguments to be most effective\nagainst the emotional pro-control people.  The trick is to get them to\nrealize that the Second Amendment exists not for hunters but for the\noppressed and the terrorized.\n\nDaryl\n             Daryl Biberdorf  N5GJM    d-biberdorf@tamu.edu\n               + Sola Gratia + Sola Fide + Sola Scriptura\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4364, "properties": {"category": "sci.med", "text": "From: mccurdy@ucsvax.sdsu.edu (McCurdy M.)\nSubject: Thrush ((was: Good Grief! (was Re: Candida Albicans: what is it?)))\nOrganization: San Diego State University\nLines: 36\nDistribution: world\nNNTP-Posting-Host: ucsvax.sdsu.edu\nNews-Software: VAX/VMS VNEWS 1.4-b1  \n\nIn article <aldridgeC5tH63.7yA@netcom.com>, aldridge@netcom.com (Jacquelin Aldri writes...\n>dyer@spdcc.com (Steve Dyer) writes:\n> \n\netc. ...\n\n> \n>Dyer, you're rude. Medicine is not a totallly scientific endevour. It's\n>often practiced in a disorganized manner. Most early treatment of\n>non-life threatening illness is done on a guess, hazarded after anecdotal\n>evidence given by the patient. It's an educated guess, by a trained person,\n>but it's still no more than a guess.\n>It's cheaper and simpler to medicate first and only deal further with those\n>people who don't respond.\n> \n\nDyer is beyond rude. \n\nThere have been and always will be people who are blinded by their own \nknowledge and unopen to anything that isn't already established. Given what \nthe medical community doesn't know, I'm surprised that he has this outlook.\n\nFor the record, I have had several outbreaks of thrush during the several \npast few years, with no indication of immunosuppression or nutritional \ndeficiencies. I had not taken any antobiotics. \n\nMy dentist (who sees a fair amount of thrush) recommended acidophilous:\n\nAfter I began taking acidophilous on a daily basis, the outbreaks ceased.\nWhen I quit taking the acidophilous, the outbreaks periodically resumed. \nI resumed taking the acidophilous with no further outbreaks since then.\n\n* Mike McCurdy                       \n* University Computing Services     Disclaimer:\n* San Diego State University\n* mccurdy@ucsvax.sdsu.edu            \"Everything I say may be wrong\"\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4365, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: From Israeli press. TORTURE.\nNf-ID: #N:cdp:1483500344:000:3833\nNf-From: cdp.UUCP!cpr    Apr 16 16:50:00 1993\nLines: 78\n\n\nFrom: Center for Policy Research <cpr>\nSubject: From Israeli press. TORTURE.\n\n/* Written  4:41 pm  Apr 16, 1993 by cpr@igc.apc.org in igc:mideast.forum */\n/* ---------- \"From Israeli press. TORTURE.\" ---------- */\nFROM THE ISRAELI PRESS.\n\nNewspaper: Ma'ariv Date: 18. December 1992 Author: Avi Raz\n\nSubject: Torture\n\nTitle of article: Moderate physical pressure\n\nSeveral times in the course of the long hours in the interrogation\nroom in Tulkarm prison, during which he says he was humiliated,\nbeaten and tortured, Omar Daoud Jaber heard his interrogator, a\nShabak agent 'Captain Louis', chatting on the phone with his wife.\n\"At those moments\", Omar said, \"I felt that he was like a\nhumanbeing, but right after he finished talking, he would be beat\nme and say, 'You listened to the conversation and enjoyed\nyourself' and I understood that he was not really a human being\".\n\nIn late October 1992, after 38 days in detention at Tulkarm\nprison, Omar Jaber was released without charges. \"Among the Jews,\nas among the Arabs, there are good people and bad people\", he said\nafter his release, \"but there, in Tulkarm, in the interrogations\nrooms, you cannot find even one person about whom you can say that\nhe is a human being\". Although he left the detention installation\nin Tulkarm bruised and humiliated (\"I sat at home for ten days. My\nhands shook from nerves\"), one may consider Omar Jaber lucky: He\ngot out, not so healthy, but entire, and even ultimately returned\nto normal functioning, at the small solar heater plant he owns.\n\nIn contrast, Hassan Bader al-Zbeidi, for example, was released\nseven weeks ago from detention in Tulkarm after 33 days in the\nShabak wing, cut off from his surroundings. He doesn't speak or\nreact. Mustafa Barakat, aged only 23, who was arrested in early\nAugust and was brought to the Tulkarm detention installation, left\nit one day later - dead. \"We have recently received an especially\nlarge number of testimonies concerning cruel tortures employed at\nthe Tulkarm detention installation by Shabak interrogators\", noted\nDr. Niv Gordon, director of the Association of Israel and\nPalestinian Physicians for Human Rights. (...)\n\nThe right to complain against the Shabak does not excite Anan\nSaber Makhlouf, a 20 year old student. In fact, he was extremely\nfearful about describing the manner in which he was interrogated\nin Tulkarm prison, in case the publication in the paper would\nreturn him to detention and lead to renewed mistreatment.\n\n(...follow description of tortures....)\n\nOmar, a tall bearded man, was silent. \"I do not want to talk about\nit\", he finally said, quietly. Some time later, embarrased and\nashamed, he spoke: \"Sometimes he beats you and beats you until\nyou'll kiss his hand, and not only his hand. Even the hands of\nanother interrogator, and another, whom he calls into the room,\nand the last interrogator says:\" Now you are kissing my hand, and\nlater if I want, you will kiss my ass.\"\n\nThese things take place in an Israeli army detention installation,\nlocated within the military government compound in Tulkarm (West\nBank). But the Shabak interrogation wing is a separate kingdom. In\nearly March the IDF allowed representatives of B'Tselem, the\nIsraeli Information Center for Human Rights in the Territories, to\nvisit Tulkarm prison, but denied them access to the interrogation\nwing. \"The interrogation wing is Shabak property, being solely\nunder Shabak responsibility. All interrogations are performed by\nit\", said Lieutnant Sharon Sho'an, the commander of the\ninstallation, according to the internal report written by B'tselem\nmember, Yuval Ginbar, following the visit. Major David Pe'er,\ngoverning commander of the prison system in the Central Command,\nwas quoted in the report:  \"There is an ethical problem here - no\none can enter the interrogation wing\".\n\nTransl. by I. Shahak\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4366, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Steve Bollinger <buzz@apple.com>\nSubject: Re: Stereo sound problem (?) on mac games\nX-Useragent: Nuntius v1.1.1d20\nX-Xxdate: Mon, 19 Apr 93 19:34:37 GMT\nX-Xxmessage-Id: <A7F83ECD5E013847@pyd.apple.com>\nOrganization: Apple Computer, Inc.\nLines: 192\n\nIn article <1qsfak$skc@network.ucsd.edu> Doug P. Book,\ndpb@sdchemw2.ucsd.edu writes:\n>Hi.  I think I have a problem with the stereo sound output on my Quadra\n>900, but I am not totally sure because my roomate has the same problem\n>on his PowerBook 170.  Any info or experience anyopne has would be\n>greatly appreciated.\n>\n>When I hook my Quadra up to my home stereo system, the following types\n>of sounds (mono, as far as I can tell) all play fine through BOTH\n>speakers:\n>\n>system beeps  (already provided ones such as Indigo and ones I record)\n>\n>Armor Alley\n>Spectre\n>Spaceward Ho!\n>\n>\n>But, the following games only play out of the left channel:\n>\n>Lemmings\n>Out of This World  (awesome game, BTW)\n>Glider 4.0\n>OIDS\n>\n>\n>But still, STEREO system beeps do play in stereo, through BOTH speakers.\n>(The one I'm specifically referrring to is Apocolyptic Beginning, which\n>my roommate downloaded from some ftp site (sumex?))\n>\n>\n>All of the symptoms are the same on my rommates 170 (he can't run\n>OOTW because he doesn't have color).\n>\n>We're both running system 7.1\n>\n>\n>\n>Does anyone with Lemmings or the other three games I mentioned above get\n>sound out of both speakers on a Mac II class, Quadra, LC, PowerBook 140\nor\n>greater, Centris, SE/30, etc... (stereo) machine?\n>\n>I used to have a Mac II, and I sort of rememeber Lemmings playing in\n>stereo on that machine, not just on the left channel.  (I could be\n>mistaken, though.  If there were a problem with the Quad 900's and PB\n>170's, I am wondering why the system beeps still play in stereo?  If\nthere\n>isn't a problem with our machines, I wonder why the 4 games above are\n>apparantly written to support only one channel of stereo when they\n>could just use mono sounds so the mono sound would at least come out of\n>both speakers  (like Spectre, etc. do)?\n>\n>Quadra 900's and PowerBook 170's have the same ROMS (to my knowledge),\n>so maybe this is a ROM problem?  (if so, though, why wouldn't System 7.1\n>patch over this problem?)\n>\n>\n>\n>\n>Thanks for any help you can provide!\n\nIn article <1993Apr18.213827.9974@kth.se> Jon Wtte,\nd88-jwa@hemul.nada.kth.se writes:\n>Mac sound hardware is diverse; some macs play in stereo and\n>mix the output (the SE/30 for instance) while others play in\n>stereo but ONLY has the left channel for the speaker, while\n>some are \"truly\" mono (like the LC)\n>\n>Developers know that stuff played in the left channel is\n>guaranteed to be heard, while the right channel isn't. Some\n>send data to both, some only send data to the left channel\n>(the first is preferrable, of course)\n\nOkay, I guess its time for a quick explanation of Mac sound.\n\nThe original documentation for the sound hardware (IM-3) documents how to\nmake sound by directly accessing hardware.  Basically, you jam values\ninto all the even bytes from SoundBase to SoundBase+0x170. This was\nbecause\nof how the Mac 128 (and some later machines) generated sound was by\nscanning\nthis block and D/Aing every even byte (the odd bytes went to the floppy on\nsome machines).\n\nWhen the Mac II (and Apple Sound Chip) was invented, it was designed to\ngenerate stereo sound. It was also designed to be compatible with we had\nonce\ndocumented. So storing bytes at the even values at SoundBase meant \"I\nwant to\nplay a mono sound\" and so it was emulated. But Apple had since retracted\nthe\ndocumentation on SoundBase and decided not to document the lowest layers\nof\nsound generation. So apple never explained where to stuff bytes if you\nwant\nto make stereo sound.\n\nEnter game developers. The sound driver and current sound manager are\ninconveniently lame for making games. Furthermore, people who port from\nthe\nIBM don't want to learn more APIs. So, it has become popular for game\nwriters to write to SoundBase to make sound, since it is very easy.\n\nSince the Mac II, Apple has had many different kind of sound output\nhardware,\nand the only things they have in common are that writing to SoundBase\nworks.\nOn some hardware, (Mac II, IIx, IIcx, IIci at least), writing to SoundBase\ngets you mono sound through both speakers. On some Macs (Quadra\n700/900/950\nat least) writing to SoundBase gets you mono sound on the left channel\nonly.\nBoth are technically correct interpretations of the original\nspecification,\nbut one is obviously preferable for asthetic reasons.\n\nIf developers use the Sound Manager (and I think the sound driver), mono\nsounds will (typically) come out through both channels regardless of the\nunderlying hardware. It is possible to specify you want to generate left\nchannel only, but no one does. If developers write to sound base, their\ngames will only come out the left on some games.\n\nThe other problem, the original Mac II only producing left channel sound\non the internal speaker, while the SE/30 mixes both, isn't really related.\nIt is due to the post generation amplification used on the motherboards of\nthe different machines. It only affects true stereo sounds. Sounds which\nare actually mono, will play on the internal speaker, no matter what\nmachine\nyou have.\n\nNow, to more directly address the question, the games you list:\n>Lemmings\n>Out of This World  (awesome game, BTW)\n>Glider 4.0\n>OIDS\nand also\nHellcats,\nSuper Tetris\nOxyd\n(and many more, these are just what I've tested)\n\nCheat and write to SoundBase and so are only left channel on Quadras.\n\n\nOther games you list:\n>Armor Alley\n>Spectre\n>Spaceward Ho!\nand also\nPGA Tour Golf\nCivilization\n(and more, these are again only from personal experience)\n\nUse the sound manager and work fine on all machines.\n\nThe more of the story is to developers: DON'T CHEAT!\nReally, I am absolutely, positively not allowed to do what I am about to\ndo,\nbut I'm going say it anyway.\nStop cheating on sound!\nReally soon, you will be sorry, as even those without external speakers\nwill be disappointed with your sound on future hardware. The grace period\nis about to end.\nThe Sound Manager is understandable now, and works pretty well and will\nwork\neven better soon, so use it.\n\nIn conclusion:\nTo Doug, it isn't a hardware problem, at least, not a bug.\nTo Jon, it isn't a choice to developers as to whether they want to send\nsound\nto both channels. If they do it the right way, it is taken care of\nautomatically. If you cheat, there is not way to make it work on all\nhardware.\n\n\nHave fun.\n\nDisclaimer number 1:\nI don't work on sound here at Apple, I'm just pretty well informed.\nSo don't write me with sound questions.\n\nDisclaimer number 2:\nIf it says up above that I wrote anything like \"the grace period is about\nto end\" then it is a bug in your news feed, since I am catagorically not\nallowed to say anything like that. You know what I mean.\n\nDisclaimer number 3:\nI don't speak for Apple, just me.\n\n-Steve Bollinger\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4367, "properties": {"category": "misc.forsale", "text": "From: harmon@math.ohio-state.edu (Jim Harmon)\nSubject: MIDI Keyboard $225\nOrganization: Department of Mathematics, The Ohio State University\nLines: 13\nDistribution: cmh\nNNTP-Posting-Host: ford.mps.ohio-state.edu\n\n\nRoland HS-60 (SynthPlus 60)\n  - 6 voice polyphonic fully programmable analog synthesizer\n  - 61 full size keys\n  - MIDI\n  - Memory to store 128 patches\n  - built in speakers\n  - Connectors: MIDI in thru out, Input(2), Expansion Pedal, Head Phones,\n    Tape Load & Save, Patch Shift, Pedal Hold, Output(2)\n\nAsking $225\n  \nharmon@mps.ohio-state.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4368, "properties": {"category": "rec.sport.baseball", "text": "From: demers@cs.ucsd.edu (David DeMers)\nSubject: Scoring runs. Was Re: Notes on Jays vs. Indians Series\nDistribution: na\nOrganization: CSE Dept., UC San Diego\nLines: 23\nNntp-Posting-Host: beowulf.ucsd.edu\n\n\nIn article <8966@blue.cis.pitt.edu>, dtate+@pitt.edu (David M. Tate) writes:\n\n|> Uh, right.  You also forgot that you can't get an RBI (barring a HR) with\n|> nobody on base.  What fraction of all runs come on solo HR?\n\nActually, for the Padres this year so far it's 23%.  They are 5th in\nthe league in HRs, and ALL have been solo shots.\n\nPythagorean projection puts them at .360 winning percentage\nor 58-104.  Need some pitching help, fast!\n\nGood news, though, is that Hurst has been throwing curveballs\nw/o any pain.  Threw 80 pitches yesterday.  Should be back\nin a couple of weeks.  Maybe we can trade him to the Yankees\nfor Militello.\n\nDave\n-- \nDave DeMers\t\t\t \t        demers@cs.ucsd.edu\nComputer Science & Engineering\t0114\t\tdemers%cs@ucsd.bitnet\nUC San Diego\t\t\t\t\t...!ucsd!cs!demers\nLa Jolla, CA 92093-0114\t(619) 534-0688, or -8187, FAX: (619) 534-7029\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4369, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Chris Roberts <ctr@po.cwru.edu>\nSubject: Re: Floptical Question\nOrganization: Case Western Reserve University\nLines: 28\nDistribution: world\nNNTP-Posting-Host: b63683.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d16\nX-XXMessage-ID: <A7F4897F5A01F8C3@b63683.student.cwru.edu>\nX-XXDate: Fri, 16 Apr 93 21:04:15 GMT\n\nIn article <bmyers-140493201843@slip-x27.ots.utexas.edu> Billy Lee Myers,\nbmyers@ccwf.cc.utexas.edu writes:\n>Floptical is, of course a different technology, and doesn't enjoy the\nlong\n>term data storage of opticals.  And the last time I looked, floptical\ndisk\n>weren't all that cheap, ($30 per floptical disk = $1.40 per megabyte, $60\n>per sysquest is $1.36 per megabyte).\n\n\nI don't know how many times I've posted this the net.  No one EVER\nlistens.  \n\nOnce and for all:  Floptical Media is only $1.40 a megabyte if you don't\nknow where to buy it.  I am bying my flopticals at $30 per 2 disks.  I\nsee that as $.75 a meagabyte, NOT $1.40.  No, I'm not buying in bulk, I'm\nnot getting a special deal.  $.75 a meg is good in my book, Approching\nfloppy price.\n\nAny questions on my source can be sent to ctr@po.cwru.edu.\n\n\n    Chris\nChris Roberts: Here we go again...\nctr@po.cwru.edu                               ctr@pyrite.som.cwru.edu\nroberts@snowhite.eeap.cwru.edu      roberts@alpha.ces.cwru.edu\nWell, at least you know where to find me now..  Logged in a terminal,\nchecking my mail..\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4370, "properties": {"category": "rec.autos", "text": "From: garyl@moe.corollary.COM (Gary Lorman)\nSubject: Re: electronic odometers (was: Used BMW Question ..... ???)\nOrganization: Corollary, Inc.\nLines: 42\n\nIn article <9833@dirac.physics.purdue.edu> lovall@bohr.physics.purdue.edu (Daniel L. Lovall) writes:\n>In article <CONRADIE.40.734872761@firga.sun.ac.za> CONRADIE@firga.sun.ac.za (Gerrit Conradie) writes:\n>\n>.....\n>\n>>However, if I were to design a BMW's electronics, I will use a counter to \n>>count the number of times the car passed 1 million miles (or whatever), and \n>>store it in the car computer's memory. This could be read when doing a \n>>diagnostics test. Ditto for the date of the odometer. As easy as this is, I \n>>don't know why manafucturers don't do it (don't they?) to prevent illegal \n>>odometer tampering.\n>>\n>>But as a previous writer said, it will in any case take aeons to reset an \n>>odometer, mechanic or electronic by simulating a driving car. It will be \n>>easier to reprogram it. How, I don't know.\n>\n>It shouldn't be THAT hard if you know much about digital electronics.  If the\n>counter is made with standard TTL chips, all you should need to do is find\n>the chip(s) used for counting, figure out what mileage you want to put in,\n>and preset it but wiring the preset pins directly to low/high (you'd also have\n>to know what the conventions are for low and high).  It might be a little more\n>involved than this, but it shouldn't be beyond someone with a BSEE or BS EET.\n>All the display does is convert what the counter chips say into digits using\n>a \"translation table\" stored in ROM.\n>\n>selah,\n>\n>Dan\n>\nBut, those chips are probably inside a custom chip, (to make it smaller and\nuse less power) and the preset/data pins are not going to be available.\nIt would probably not be TTL but might be CMOS \n(wider operating voltage range), not that the tecnology would make \nmuch difference.\nPlus the custom chip would probably be potted (encapsulated with epoxy).\nGood luck.\n\n-- \n--garyl-------------------------------------------------------------------------\n\t\t\"Any shark that gets to be 11 or 12 feet long with \n\t      300 big teeth can be considered dangerous\" - 'Shark Bowl '92'\n--------------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4371, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: Yankee fears.\nOrganization: Allegheny College\nLines: 9\n\n\nI'll tell youm all one thing. Steve howe and FARR are much better then the  \nworst pitcher in yankee Pitching ___________________\n\n\nWHO do you think I am talking about. I'll post the answers if you e-mail  \nto me. Use reply. or post you're answers, but e-mailing them to me meaqns  \nthat I will post the final results. I have one particular horrid pitcher  \nin mind.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4372, "properties": {"category": "comp.graphics", "text": "From: rytg7@fel.tno.nl (Q. van Rijt)\nSubject: Re: Sphere from 4 points?\nOrganization: TNO Physics and Electronics Laboratory\nLines: 26\n\nThere is another useful method based on Least Sqyares Estimation of the sphere equation parameters.\n\nThe points (x,y,z) on a spherical surface with radius R and center (a,b,c) can be written as \n\n   (x-a)^2 + (y-b)^2 + (z-c)^2 = R^2\n\nThis equation can be rewritten into the following form:  \n\n   2ax + 2by + 2cz + R^2 - a^2 - b^2 -c^2 = x^2 + y^2 + z^2\n\nApproximate the left hand part by   F(x,y,z) = p1.x + p2.x + p3.z + p4.1\n\nFor all datapoints, i.c. 4, determine the 4 parameters p1..p4 which minimise the average error |F(x,y,z) - x^2 - y^2 - z^2|^2.\n\nIn 'Numerical Recipes in C' can be found algorithms to solve these parameters.\n\nThe best fitting sphere will have \n- center (a,b,c) = (p1/2, p2/2, p3/2)\n- radius R = sqrt(p4 + a.a + b.b + c.c).\n\nSo, at last, will this solve you sphere estination problem, at least for the most situations I think ?.\n\nQuick van Rijt, rytg7@fel.tno.nl\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.211+0000", "event": "documents", "entityId": 4373, "properties": {"category": "misc.forsale", "text": "From: littaum@atlantis.CSOS.ORST.EDU (Mike Littau)\nSubject: Final Public Dragon Magazine Update (Last chance for public bids)\nKeywords: Dragon Magazine Auction Bid\nArticle-I.D.: leela.1qs7o4$c2r\nDistribution: usa\nOrganization: CS Dept. Oregon State University, Corvallis, Oregon.\nLines: 170\nNNTP-Posting-Host: atlantis.csos.orst.edu\n\nThis is the final public update to my dragon magazine auction.  If there\nare no new bids then the current bids stand (like that's gonna  happen.  :) ).\nAfter this, any updates will be by E-mail *ONLY*.  The entire auction \nwill end as soon as the bids stop coming in.  So if you want to get in\non  this, be sure to bid now.  All bids must be made in *AT LEAST*\n25 cent increments.  Buyer will pay shipping.  (Unless you have any\nparticular fancy, it will be US mail 4th class special, with lots of\npadding).  \nAll dragons are bagged.  The condition of them vary quite a bit, \nso I've come up with my own condition system.  Some dragons may be missing \nitems like the inserts.  If you have any questions, feel free to ask.\n*\nCondition ratings - Usually this is just an evaluation of the cover, as\nmost of the material inside is in great shape.\nExcellent - IE-\"As you find them in the store\"\nVery Good - Still in great condition, but can tell it's been boughten\nGood      - On down the line\nVery Fair/fair - indicates lots of use (But still \"decent\")\nPoor      -  Indicates the material inside may be damaged (usually by\nscissors).  \nA * by the condition indicates that something from the magazine is \nmissing (usually the insert)\nI'll post another public update sometime this weekend (which will be the\nfinal public posting, after which the auction will be by e-mail until\nthe bidding stops)\n*\nAgain if you have any questions, ask away.\n*\narrow      $2.50 056 - Fair     *- Top secret module missing - Bard tunes - \nreal maps\nTN.DE7     $3.0  073 - Good      - Forest of Doom module (detached but \nincluded) - inner planes\nykchev     $1.75 074 - Good     *- Combat computer missing - 4 dragons \nTN.DE7     $1.50 078 - Good/VG   - Monsters - aquatic AD&D module (detached \nbut included) - Language lesson\ngeoffrey   $1.50 079 - Good/VG   - top secret module (detached but \nincluded) - magic resistance\nmayla      $2.50 081 - Fair      - High level AD&D module (detached but \nincluded) - poison - material spell components\nUCCXKVB    $2.00 082 - Very Fair*- Baton races game insert missing - spell \nresearch\nTN.DE7     $1.50 083 - Good/VG   - Babba Yagga's Hut module (detached but \nincluded) - unarmed combat\ngeoffrey   $1.50 084 - Fair     *- Cover missing - Twofold talisman module\nsquidly    $1.75 085 - Good      - Twofold Talisman module - Clerics\nsquidly    $1.75 087 - Good      - Top secret module - Wildernes\ngeoffrey   $1.50 088 - Good     *- Elefant Hunt insert missing - Falling \ndamage - MARVEL-Phile\ngeoffrey   $1.50 089 - Good     *- Creature catalog missing - Shields - sci fi\nTN.DE7     $1.5  094 - Good      - Ranger changes - Creature catalog II \n(detached but included)\ngeoffrey   $1.50 095 - Fair     *- Cover missing - Into the Forgotten Realms \nmodule, detached but included\nykcheu     $2.75 098 - Fair      - 9th anniversary - Dragons - mutant manual\nUCCXKVB    $1.75 099 - Poor     *- Cover Missing - Treasure trove II, some \npictures cut out\nthedm      $2.50 100 - Good     *- poster missing - city beyond the gate \nmodule (detached but included) - \"raised dragon\" texture on cover\ngeoffrey   $1.50 101 - Fair     *- Cover missing - creature catalog III \n(detached but included)\ngeoffrey   $1.50 102 - Fair     *- Cover missing - Valley of earth mother \nmiddle level module (detached but included)\ngeoffrey   $1.50 103 - Fair     *- Cover loosly attached - Unearth arcana \nupdate missing - Future of AD&D - Centaur papers\ngeoffrey   $1.50 103 - Fair     *- Unearth arcana update missing \ngeoffrey   $1.50 104 - Fair/VF   - Marvel module - thieves - cover detached \nbut included                                                                 \ngeoffrey   $1.50 105 - Fair      - AD&D module - invisibility - cover & back \ncover detached but included      \nUCCXKVB    $2.00 106 - Fair      - Cover 1/2 on - variations of paladins - \nmore skills 4 rangers\nykcheu     $2.75 106 - Good/VG   - Variations of paladins - more skills for \nrangers    \narrow      $2.50 107 - Fair     *- Cover missing - Dragons of glory \nsupplement/questionaire\ngeoffrey   $1.50 108 - Good      - Mutant manual II - environmental \neffects - cover taped reinforced\nthedm      $2.00 108 - Very Good - Mutant manual II - environmental effects \nykcheu     $2.25 109 - Good      - Customizing D&D classes - Agent 13 poster\ngeoffrey   $1.50 109 - Very Fair - Customizing D&D classes - Agent 13 poster \nmissing\ngeoffrey   $1.50 110 - Very Good - House on the frozen lands module -10th anniv\nsquidly    $1.75 110 - Very Good - House on the frozen lands module -10th anniv\ngeoffrey   $1.50 111 - Good      - Murder Mystery AD&D module\nykcheu     $2.50 112 - Very Good - Ultimate Article Index - Mesozoic monsters\nmayla      $2.50 114 - Very Fair - Elven Cavalier - remorhaz - Witch NPC class\nykcheu     $1.75 115 - Good      - Theives - harpies & snakes\nsquidly    $1.75 116 - Good/VG   - 3-D ship cardboard insert - wild \nanimals - dr who\nUCCXKVB    $2.50 117 - Good/VG   - Dice odds - creative campaigns - sage \nadvice - bazaar\ngeoffrey   $1.50 118 - Good      - Tournaments/Competitions - Nibar's keep game\nUCCXKVB    $2.00 120 - VG/EX     - April fool's issue\nUCCXKVB    $2.00 121 - Excellent - Oriental adventures - cardboard castle \ninsert\ngeoffrey   $1.50 122 - Excellent - 11th aniversary - African beasts - druids\nUCCXKVB    $2.50 123 - Very Good - Magic and wizardry\nthedm      $2.25 123 - Very Good - Magic and wizardry\narrow      $2.5  124 - Excellent - Aerial adventures - 2nd edition ?aire\nUCCXKVB    $2.25 124 - Excellent - Aerial adventures - 2nd edition ?aire\ngeoffrey   $1.50 125 - Very Good - Clay-O-Rama! - Chivalry - quasi elementals\ngeoffrey   $1.50 125 - VG/EX     - Clay-O-Rama! - Chivalry - Quasi-elementals\nUCCXKVB    $2.50 126 - VG/EX     - Undead\nUCCXKVB    $2.00 127 - Very Good - Fighters\n2FVPMANTEL $3.00 128 - Good      - King's Table insert game\n2FVPMANTEL $3.00 129 - Excellent - Demi-humans\nUCCXKVB    $2.50 130 - VG/EX     - The arcane arts\nTFPAYN01   $2.50 131 - Excellent - Deepearth\narrow      $1.5  131 - VG/EX     - Deepearth\nUCCXKVB    $2.0  132 - Very Good - ORCWARS! board game missing\narrow      $1.5  133 - Very Good - Berserkers & Spies-Roman gods -marvel index\ngeoffrey   $1.50 133 - Very Good - Berserkers & Spies-Roman gods -marvel index\n2FVPMANTEL $3.00 134 - VG/EX     - 12 anniversary - Dragons \ntbh1       $2    135 - Very Good - Archers - Space sage advice\nUCCXKVB    $2.0  135 - Very Good - Archers - Space Sage advice\ntbh1       $4.0  136 - Very Good - Cities & Urban adventures\ntbh1       $3    137 - Excellent - Wilderness\narrow      $1.5  138 - Very Good - Horror (Haloween)\nUCCXKVB    $3.25 139 - Very Good - Pages from the Mages\nUCCXKVB    $3.5  140 - Excellent - Clerics & Healers\ntbh1       $3    141 - Good      - Humanoids\ntbh1       $2    142 - Very Good - AD&D 2nd edition preview\nUCCXKVB    $3.25 143 - Very Good - DM's issue\nUCCXKVB    $2.00 145 - Very Good*- Poster missing - castles\nthedm      $2.5  146 - Very Good*- Poster missing - 13 anninversary - Dragons\ntbh1       $3.00 147 - Excellent - MAGUS! board game - magic\ntbh1       $3.5  148 - Excellent - Fighting - Deck of Many things insert\nTN.DE7     $2.0  149 - Excellent - (No particular feature)\nTN.DE7     $2.00 150 - Excellent - Horror (Halloween issue)\nTN.DE7     $2.00 151 - Excellent - Oriental Adventures/Eastern \nTN.DE7     $2.00 152 - Good     *- Underdark - Poster missing is inside-\nslight crumple on cover, only noticable under inspection\nTN.DE7     $2.0  153 - Very Good - Gods\nTN.DE7     $1.75 154 - Good/VG   - Poster - Dragonlance story - War\nTN.DE7     $2.00 155 - Excellent - Faeries - DUNGEON module\nTN.DE7     $1.75 157 - Very Good - Buck Rogers\nthedm      $2.00 158 - Very Good - 14th anniversary - Dragons\nUCCXKVB    $2.00 159 - Excellent - Spelljammer - Poster missing\nkohlmaas   $2.00 160 - Good/VG  *- Urban adventures - AD&D trading card \ninsert missing\nUCCXKVB    $2.25 161 - Very Good - DM issue\nTN.DE7     $1.75 162 - Good      - Haloween - Poster missing\nthedm      $2.0  163 - Excellent - Monsterous compendum insert - Magic\nTN.DE7     $2.0  164 - Very Good - Oriental Adventures\nTN.DE7     $1.75 165 - VG/EX     - Sea/Undersea\nTN.DE7     $1.75 166 - Excellent*- Sci Fi (other games) - Dino wars insert \nmissing\nTN.DE7     $1.75 167 - Excellent - Nature/Wilderness\nUCCXKVB    $2.5  169 - Very Good - Slight crease of back cover - Misc \nitems featured\nthedm      $2.5  170 - Good      - Slight crease in cover - Dragon kings game \ninsert - Dragons - 15th anniversary issue\nUCCXKVB    $2.00 171 - Excellent*- Missing poster & trading cards (ARGH!)\nCfrye      $2.75 172 - Excellent - Underdark\nhachiman   $2    173 - Excellent - Dark Sun\nintravai   $2    174 - Excellent - Horror\nintravai   $3.00 175 - Excellent - World building - Campaign help\nTN.DE7     $2.00 176 - Excellent - Elves - Giant poster inside\nTN.DE7     $1.5  177 - Very Good - Calender poster - DM help (gunpowder too)\nintravai   $3.0  178 - Excellent - Fighters & the Fighter class\nTN.DE7     $2.50 179 - Excellent - GENCON form - Magic items featured\nTN.DE7     $2.50 181 - Excellent - Calendar Poster - Mages/Sorcerors\nTN.DE7     $2.50 182 - Excellent - 16 anniversary issue - Dragons\nTN.DE7     $2.50 184 - Excellent - Non Player Character enhancement\nTN.DE7     $1.75 185 - Excellent - Dark Sun Campaign Monsters - Dark Sun\ngeoffrey   $1.50 186 - Excellent - Haloween - Horror\nTN.DE7     $1.75 187 - Excellent - Wilderness - Outdoors\n\nIf you notice any errors, please let me know (other than slight name \nmisspellings, if it's close to your name, that's you. :)  )\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4374, "properties": {"category": "rec.autos", "text": "From: shou@logos.asd.sgi.com (Tom Shou)\nSubject: Ford Explorer 4WD - do I need performance axle?\nOrganization: Silicon Graphics, Inc.\nLines: 27\nNNTP-Posting-Host: logos.asd.sgi.com\n\nWe're considering getting a Ford Explorer XLT with 4WD and we have the\nfollowing questions (All we would do is go skiing -- no off-roading):\n\n1. With 4WD, do we need the \"performance axle\" - (limited slip axle).\nIts purpose is to allow the tires to act independently when the tires\nare on different terrain. \n\n2. Do we need the all-terrain tires (P235/75X15) or will the\nall-season (P225/70X15) be good enough for us at Lake Tahoe?\n\n\nThanks,\n\n\nTom\n\n-- \n\n\n===========================================================================\n\n        Tom Shou\t\t\tSilicon Graphics\n\tshou@asd.sgi.com\t\t2011 N. Shoreline Blvd. \n\t415-390-5362\t\t\tMS 8U-815 \n\t415-962-0494 (fax)\t\tMountain View, CA 94043\n\n===========================================================================\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4375, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Alan Hinds <U32472@uicvm.uic.edu>\nSubject: Disk data compression and Interleave\nLines: 5\n\nDoes anyone have enough experience to report whether disk data\ncompression has any effect on the optimal disk sector interleave?\nOffhand, I expect that the time required to decompress disk data\nwould increase the optimum disk sector interleave.\n                                              - Alan Hinds\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4376, "properties": {"category": "sci.electronics", "text": "From: cbruno@wpi.WPI.EDU (Christopher James Bruno)\nSubject: Coil\nOrganization: Worcester Polytechnic Institute\nLines: 11\nNNTP-Posting-Host: wpi.wpi.edu\n\nHey everyone, I'm new to this  newsgroup so please excuse me if this is a \ndumb question....I want to build a crossover for my stereo and I need\na coil with an inductance of 6.8mH (actually I need 4).  I was wondering\nif anyone knew where I could buy these or how to make these.  I've called\nmany places and no one I can find sells them.  If you have the answers just\nE - mail me....\nThanks in advance....\nChris\n\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4377, "properties": {"category": "misc.forsale", "text": "From: radley@gibbs.oit.unc.edu (Keith Radley)\nSubject: Electronics\nSummary: VCR and AMP\nNntp-Posting-Host: gibbs.oit.unc.edu\nOrganization: University of North Carolina at Chapel Hill\nDistribution: usa\nLines: 18\n\nCurtis Mathes VHS VCR Remote included and it works with universal remotes.\n 2 heads, Works great but I replaced it with a Stereo VCR.\n paid $300 years ago, will sell for $125 delivered OBO.\n \nRadio Shack stereo amp.  2 inputs, tone, and left and right volume.  Speakers\n not included.  Compact 12W unit for $20 plus shipping.  Great for Amiga\n Stereo output or Soundblaster output.\n \nIf you are interested in either of the above mail me, Keith, at\nradley@gibbs.oit.unc.edu or call me at 919-968-7779.\n\nI did have these sold but both deals fell thru so if you are still\ninterested in either email or call me.\n        _\n    _  //       Major: Computer Science              /<eith Radley\n    \\\\//        Minor:     English              Radley@gibbs.oit.unc.edu\n     \\/      Computer:   AMIGA 3000           University of North Carolina\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4378, "properties": {"category": "rec.autos", "text": "From: europa@tomcat.raleigh.ibm.com (Welch Bryan)\nSubject: Re: WARNING.....(please read)...\nNntp-Posting-Host: tomcat.raleigh.ibm.com\nOrganization: IBM, Research Triangle Park, North Carolina\nKeywords: BRICK, TRUCK, DANGER\nLines: 66\n\nIn article <C5JoIt.E31@bcstec.ca.boeing.com>, neil@bcstec.ca.boeing.com (Neil Williams) writes:\n|> larose@austin.cs.utk.edu (Brian LaRose) writes:\n|> \n|> >This just a warning to EVERYBODY on the net.  Watch out for\n|> >folks standing NEXT to the road or on overpasses.   They can\n|> >cause SERIOUS HARM to you and your car.  \n|> \n|> >(just a cliff-notes version of my story follows)\n|> \n|> >10pm last night, I was travelling on the interstate here in\n|> >knoxville,  I was taking an offramp exit to another interstate\n|> >and my wife suddenly screamed and something LARGE hit the side\n|> >of my truck.  We slowed down, but after looking back to see the\n|> >vandals standing there, we drove on to the police station.\n|> \n|> >She did get a good look at the guy and saw him \"cock his arm\" with\n|> >something the size of a cinderblock, BUT I never saw him. We are \n|> >VERY lucky the truck sits up high on the road; if it would have hit\n|> >her window, it would have killed her. \n|> \n|> >The police are looking for the guy, but in all likelyhood he is gone. \n|> \n|> >I am a very good driver (knock on wood), but it was night-time and\n|> >I never saw the guy.  The police said they thought the motive was to\n|> >hit the car, have us STOP to check out the damage, and then JUMP US,\n|> >and take the truck.  \n|> \n|> >PLEASE BE AWARE OF FOLKS.  AND FOR YOUR OWN GOOD, PLEASE DON'T STOP!!!!\n|> \n|> >peace.\n|> \n|> \n|> >-- \n|> >--------------------------------------------------------------------------- \n|> >brian larose  larose@cs.utk.edu   #12, 3103 Essary Rd. Knoxville, TN 37918.\n|> \n|> >{}\n|> \n|> As long as we're on the subject... Several years ago myself and two others\n|> were riding in the front of a Toyota pickup heading south on Interstate 5\n|> north of Seattle, WA. Someone threw a rock of an overpass and hit our\n|> windshield. Not by accident I'm sure, it was impossible to get up to the\n|> overpass quickly to see who did it. We figured it was kids, reported it and\n|> left.\n|> A couple of years ago it happend again and killed a guy at my company. He was\n|> in his mid-fourties and left behind a wife and children. Turned out there was\n|> a reformatory for juviniles a few blocks away. They caught the 14 year old\n|> that did it. They put a cover over the overpass, what else could they do?\n|> I don't think I'll over forget this story.\n\nIn Des Moines, Iowa, about a year ago, some kid dropped a rock from an \noverpass and hit car just behind the windshield.  It put a dent in the roof, \nso I guess I was lucky it hit metal.\n\nIt's frustrating that we can't do much.  Bother the city government to put\ncovers on all overpasses?  Slow down/speed up a bit when driving under all\noverpasses in the city?  I like the first better, but that will take time\nand lots of people talking to the city governments.\n\nJust another .02...\n\n-- \nBryan Welch                                  Amateur Radio: N0SFG\nInternet: europa@vnet.ibm.com (best), bwelch@scf.nmsu.edu \nEverything will perish save love and music.--Scots Gaelic proverb\nDisclaimer: It's all opinion.  Everything.  So there.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4379, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: RUMOUR - Keenan signs with Rangers?\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 14\n\n\nUPI Clarinet has just relayed a \"scoop\" from the Toronto Sun\n(or was that Star?  I like the Star myself ...) that Iron Mike\nKeenan has come to an agreement with the New York Rangers for\nnext season.  Interestingly, this comes the day after the Times\nSports had an editorial about how the Rangers need their own\nPat Riley ... who cares about what happens after next season?\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4380, "properties": {"category": "sci.space", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nLines: 42\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nIn article <1qve4kINNpas@sal-sun121.usc.edu>, schaefer@sal-sun121.usc.edu (Peter Schaefer) writes:\n>In article <1993Apr19.130503.1@aurora.alaska.edu>, nsmca@aurora.alaska.edu writes:\n>|> In article <6ZV82B2w165w@theporch.raider.net>, gene@theporch.raider.net (Gene Wright) writes:\n>|> > With the continuin talk about the \"End of the Space Age\" and complaints \n>|> > by government over the large cost, why not try something I read about \n>|> > that might just work.\n>|> > \n>|> > Announce that a reward of $1 billion would go to the first corporation \n>|> > who successfully keeps at least 1 person alive on the moon for a year. \n>|> > Then you'd see some of the inexpensive but not popular technologies begin \n>|> > to be developed. THere'd be a different kind of space race then!\n>|> > \n>|> > --\n>|> >   gene@theporch.raider.net (Gene Wright)\n>|> > theporch.raider.net  615/297-7951 The MacInteresteds of Nashville\n>|> ====\n>|> If that were true, I'd go for it.. I have a few friends who we could pool our\n>|> resources and do it.. Maybe make it a prize kind of liek the \"Solar Car Race\"\n>|> in Australia..\n>|> Anybody game for a contest!\n>|> \n>|> ==\n>|> Michael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n>\n>\n>Oh gee, a billion dollars!  That'd be just about enough to cover the cost of the\n>feasability study!  Happy, Happy, JOY! JOY!\n>\n\nFeasability study??  What a wimp!!  While you are studying, others would be\ndoing.  Too damn many engineers doing way too little engineering.\n\n\"He who sits on his arse sits on his fortune\"  - Sir Richard Francis Burton\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\npyron@skndiv.dseg.ti.com          |solutions, not gestures.\nPADI DM-54909                     |\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4381, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: How to the disks copy protected.\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 23\n\nWrite a good manual to go with the software.  The hassle of\nphotocopying the manual is offset by simplicity of purchasing\nthe package for only $15.  Also, consider offering an inexpensive\nbut attractive perc for registered users.  For instance, a coffee\nmug.  You could produce and mail the incentive for a couple of\ndollars, so consider pricing the product at $17.95.\n\nYou're lucky if only 20% of the instances of your program in use\nare non-licensed users.\n\nThe best approach is to estimate your loss and accomodate that into\nyour price structure.  Sure it hurts legitimate users, but too bad.\nRetailers have to charge off loss to shoplifters onto paying\ncustomers; the software industry is the same.\n\nUnless your product is exceptionally unique, using an ostensibly\ncopy-proof disk will just send your customers to the competetion.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4382, "properties": {"category": "rec.sport.hockey", "text": "From: etxonss@ufsa.ericsson.se (Staffan Axelsson)\nSubject: WC: Scores and standings, April 18\nOrganization: Ericsson Telecom, Stockholm, Sweden\nLines: 71\nNntp-Posting-Host: uipc104.ericsson.se\n\n\n 1993 World Championships in Germany:\n ====================================\n\n\tGroup A standings (Munich)\tGroup B\tstandings (Dortmund)\n\t--------------------------\t----------------------------\n\n\t           GP  W T L GF-GA P\t              GP  W T L GF-GA P\n\n\tSweden      1  1 0 0  1-0  2\tGermany        1  1 0 0  6-0  2\n\tItaly       1  0 1 0  2-2  1 \tCzech republic 1  0 1 0  1-1  1\n\tRussia      1  0 1 0  2-2  1\tUSA            1  0 1 0  1-1  1\n\tCanada      0  0 0 0  0-0  0\tFinland        0  0 0 0  0-0  0\n\tSwitzerland 0  0 0 0  0-0  0\tFrance         0  0 0 0  0-0  0\n\tAustria     1  0 0 1  0-1  0\tNorway         1  0 0 1  0-6  0\n\n \n April 18:  Italy - Russia    2-2           Norway - Germany      0-6\n            Sweden - Austria  1-0           USA - Czech republic  1-1\n\n April 19:  Canada - Switzerland\t\t\t\t\t15:30\n            Russia - Austria                Finland - France\t\t20:00\n\n April 20:  Sweden - Canada                 Czech republic - Germany\t15:30\n            Switzerland - Italy             Finland - USA\t\t20:00\n\n April 21:                                  Germany - France\t\t15:30\n            Italy - Sweden                  Czech republic - Norway\t20:00\n\n April 22:  Switzerland - Russia            USA - France\t\t15:30\n            Austria - Canada                Norway - Finland\t\t20:00\n\n April 23:  Switzerland - Austria           Germany - Finland\t\t20:00\n\n April 24:  Russia - Sweden                 Czech republic - France\t15:30\n            Canada - Italy                  USA - Norway\t\t20:00\n\n April 25:  Sweden - Switzerland            Finland- Czech republic  \t15:30\n            Russia - Canada                 Germany - USA\t\t20:00\n\n April 26:  Austria - Italy                 France - Norway\t\t20:00\n\n \n PLAYOFFS:\n =========\n\n April 27:\tQuarterfinals\n\t\tA #2 - B #3\t\t\t\t\t\t15:30\n\t\tA #3 - B #2\t\t\t\t\t\t20:00\n\n April 28:\tQuarterfinals\n\t\tA #1 - B #4\t\t\t\t\t\t15:30\n\t\tA #4 - B #1\t\t\t\t\t\t20:00\n\n April 29:\tRelegation\n\t\tA #5 - B #6\t\t\t\t\t\t15:30\n\t\tA #6 - B #5\t\t\t\t\t\t20:00\n\n April 30:\tSemifinals\n\t\tA #1/B #4 - A #3/B #2\t\t\t\t\t15:30\n\t\tA #4/B #1 - A #2/B #3\t\t\t\t\t20:00\n\n May 1:\t\tRelegation\t\t\t\t\t\t14:30\n\t\tBronze medal game \t\t\t\t\t19:00\n\n May 2:\t\tFINAL\t\t\t\t\t\t\t15:00\n\n--\n ((\\\\  //| Staffan Axelsson            \n  \\\\  //|| etxonss@ufsa.ericsson.se    \n\\\\_))//-|| r.s.h. contact for Swedish hockey  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4383, "properties": {"category": "sci.electronics", "text": "From: hughes@jupiter.ral.rpi.edu (Declan Hughes)\nSubject: Manual for Eprom Blower (Logical Devices Prompro-8) Wanted\nNntp-Posting-Host: jupiter.ral.rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy NY\nDistribution: usa\nLines: 7\n\n\n  I have an eprom blower made by Logical Devices and the\n model name is Prompro-8, but I have lost the manual. Does anyone\n have a spare manual that they would like to sell ?\n\n   Declan Hughes\n   hughes@ral.rpi.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4384, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: Ancient islamic rituals\nOrganization: Monash University, Melb., Australia.\nLines: 72\n\nIn <1pkqe2INN54n@lynx.unm.edu> cfaehl@vesta.unm.edu (Chris Faehl) writes:\n\n>In article <1993Apr3.081052.11292@monu6.cc.monash.edu.au>, darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n>[deleted, to get to the point:]\n>> \n>> Therefore, in a nutshell, my opinion is that pre-marital sex makes the\n>> likelihood of extra-marital sex more probable.  Furthermore,\n>> in my opinion, extra-marital sex helps break down partnerships and leads\n>> to greater divorce rates.  This in turn, in my opinion, creates trauma\n>> and a less stable environment for children, who are then, in my opinion,\n>> more likely to grow up with psychological problems such as depression,\n>> etc.  And thus, sex outside of marriage is, in the long run, harmful to\n>> society.\n\n>I think that you are drawing links where there are none - having sex before\n>marriage has nothing to do with adultery once committed into marriage. The\n>issue as I see it is more of how committed you are to not foisting pain on\n>your spouse, and how confident you are about yourself. \n>\tIn addition, what someone does within their marriage is their own \n>business, not mine, and not yours. I have witnessed strong relationships\n>that incorporate extra-marital sex. \n>\tI would agree with your assertion about children - children should not  be witness to such confusing relationships - if adultery is stressful to \n>adults, which I assume it in general is, how can we expect children to \n>understand it?\n>> \n>> Where is the evidence for my opinions?  At the moment, there are just\n>> generalities I can cite.  For example, I read that in the 20th century,\n>> the percentage of youth (and people in general) who suffer from\n>> depression has been steadily climbing in Western societies (probably\n>> what I was reading referred particularly to the USA).  Similarly, one\n>> can detect a trend towards greater occurrence of sex outside of marriage\n>> in this century in Western societies -- particularly with the \"sexual\n>> revolution\" of the 60's, but even before that I think (otherwise the\n>> \"sexual revolution\" of the 60's would not have been possible),\n>> particularly with the gradual weakening of Christianity and consequently\n>> Christian moral teachings against sex outside of marriage.  I propose\n>> that these two trends -- greater level of general depression in society\n>> (and other psychological problems) and greater sexual promiscuity -- are\n>> linked, with the latter being a prime cause of the former.  I cannot\n>> provide any evidence beyond this at this stage, but the whole thesis\n>> seems very reasonable to me and I request that people ponder upon it.\n\n>Why is it more reasonable than the trend towards obesity and the trend towards\n>depression? You can't just pick your two favorite trends, notice a correlation \n>in them, and make a sweeping statement of generality. I mean, you CAN, and \n>people HAVE, but that does not mean that it is a valid or reasonable thesis. \n>At best it's a gross oversimplification of the push-pull factors people \n>experience.  \n\nMy argument is mainly a proposal of what I think is a plausible argument\nagainst extra-marital sex -- one which I personally believe has some\ntruth.  My main purpose for posting it here is to show that a\n_plausible_ argument can be made against extra-marital sex.  At this\nstage I am not saying that this particular viewpoint is proven or\nanything like that, just that it is plausible.  To try to convince you\nall of this particular point of view, I would probably have to do a lot\nof work researching what has been done in this field, etc., in order to\ngather further evidence, which I simply do not have time to do now.  \n\nAlso note that I said that I think extra-marital sex is \"a prime cause\"\n(in my opinion) of the generally greater levels of psychological\nproblems, especially depression, in Western societies.  I am not saying\nit is \"the prime cause\" or \"the only cause\", just \"a prime cause\" --\ni.e. one of the significant contributions to this trend.  I think when\nyou say you think my view is simplistic, you have forgotten this -- I\nadmit that there are probably other factors, but I do think that\nextra-marital sex (and, IMO, subsequent destabilization of the family)\nis a significant factor in the rise in psychological problems like\ndepression in Western society this century.\n \n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4385, "properties": {"category": "talk.politics.misc", "text": "From: lynn@granitt.uio.no (Malcolm Lynn)\nSubject: Re: Sexual Proposition = Sexual Harassment?\nLines: 2\nNntp-Posting-Host: pcgeo23.uio.no\nOrganization: University of Oslo\nLines: 3\n\n\nthis is a tesrt\ns\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4386, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kmembry@viamar.UUCP (Kirk Membry)\nSubject: Pixel font\nReply-To: rutgers!viamar!kmembry\nOrganization: Private System\nLines: 9\n\nI'm looking for a font that looks like pixels off of a monitor\n(not the lcd kind of font though)\ndoes anyone know where I can get one?\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nKirk Membry                                    \"Our Age is the Age of Industry\"\nrutgers!viamar!kmembry                         - Alexander Rodchenko\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4387, "properties": {"category": "misc.forsale", "text": "From: terry.walter@outlan.ersys.edmonton.ab.ca (Terry Walter) \nSubject: LOOKING\nReply-To: terry.walter@outlan.ersys.edmonton.ab.ca (Terry Walter) \nDistribution: world\nOrganization: Outland BBS\nLines: 12\n\nLooking for a VIDEO in and OUT Video card for the IBM.  One that will\nallow you to watch TV (coax) or video IN, and will do Video out,\ndigitize pictures.  and if I am in Windows, and would like to be able to\nlook the RCA out for the card to my TV and have it display on there, as\nwell as DOS apps.\n\nI heard of these SNES and Genesis copiers, that will copy any games, are\nthose for real?\n                                                                                                                            \n----\nMessage was posted at outlan.ersys.edmonton.ab.ca\n#403-478-4010  HST and v.32bis  Try it, you'll like it!\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4388, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re: Freezing and Riding\nOrganization: University College of Wales, Aberystwyth\nLines: 14\nNntp-Posting-Host: 144.124.112.30\n\n>every spec of alertness to keep from getting squished, otherwise it's not\n>only dangerous, it's unpleasant. The same goes for cold and fatigue, as I\n>once took a half hour nap at a gas station to insure that I would make it\n\nYeah, hypothermia is MUCH more detrimemtal to your judgement and reactions\nthan people realise. I wish I had the patience to stop when I should. One\nday I'll pay for it....\n\nIf you  begin to shiver - STOP and warm up thoroughly. If you leave it\ntill the shivering stops, this doesnt mean you're OK again, it means \nyou're a danger to yourself and everyone else on the road - your brain\nand body are working about as fast as a tree grows. You will not realise\nthis yourself till you hit something. The next stage is passing out. \nThis usually means falling off.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4389, "properties": {"category": "rec.motorcycles", "text": "From: ba7116326@ntuvax.ntu.ac.sg\nSubject: V-max handling request\nLines: 5\nNntp-Posting-Host: v9001.ntu.ac.sg\nOrganization: Nanyang Technological University - Singapore\n\nhello there\nican anyone who has handson experience on riding the Yamaha v-max, pls kindly\ncomment on its handling .\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4390, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: carols@ohsu.edu (Carol Suelzle)\nSubject: Re: Windows 3.1 keeps crashing: Please HELP\nArticle-I.D.: ohsu.1993Apr19.213505.2883\nOrganization: Oregon Health Sciences University\nLines: 23\nNntp-Posting-Host: 137.53.130.7\n\n\nIn article <1qur7h$qrl@access.digex.net> wild@access.digex.com (wildstrom) writes:\n>\n>\n>>In article <1993Apr16.155637.15398@oracle.us.oracle.com> ebosco@us.oracle.com (Eric Bosco) writes:\n>>>From: ebosco@us.oracle.com (Eric Bosco)\n>>>Subject: Windows 3.1 keeps crashing: Please HELP\n>>>Date: Fri, 16 Apr 1993 15:56:37 GMT\n>>>\n>>>As the subjects says, Windows 3.1 keeps crashing (givinh me GPF) on me of  \n>>>late.  It was never a very stable package, but now it seems to crash every  \n>>>day.  The worst part about it is that it does not crash consistently: ie I  \n>\n>There is a way in SYS.INI to turn off RAM parity checking (unfortunately,\n>my good Windows references are at home, but any standard Win reference\n>will tell you how to do it. If not, email back to me.) That weird memory\n>may be producing phony parity errors. Danger is, if you turn checkling off,\n>you run the slight risk of data corruption due to a missed real error.\n\nI had this very same problem, and did 'work around' by turning parity checking off, but that only\nworked while I was in windows, and the parity error would occur immediately after exiting\nwindows, however,the problem turned out to be 3 chip simms vs 9 chip simms.  I can't use 3 chip simms in my \ncomputer, and when I replaced them, the problem vanished, forever.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4391, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: about Eliz C Prophet\nLines: 21\n\nRob Butera asks about a book called THE LOST YEARS OF JESUS, by\nElizabeth Clare Prophet.\n\nI do not know the book. However, Miss Prophet is the leader of a\ngroup (The Church Universal and Triumphant) derived from the I AM\ngroup founded by a Mr. Ballard who began his mission in the 1930's\n(I am writing this from memory and may not have all the details\nstraight -- for an old account, check your library for a bnook by\nMarcus Bach) after an eighteenth-century Frenchman appeared, tapped\nhim on the shoulder, and offered him a cup of \"cosmic essence.\" A\nmajor tenet of the movement is that there is a monastery in the\nmountains of Tibet from which a monk descends to the lower altitudes\nevery few centuries to preach, and that all major religions have\nbeen founded by monks from this monastery. Typically, the Ballard\nfamily and their successors, the Prophet family (related by\nmarriage, if I remember aright), base almost all their teachings on\nmessages they have allegedly received by telepathy from Tibet. I\nshould be surprised if the book you mention has any scholarly basis.\n\n Yours,\n James Kiefer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4392, "properties": {"category": "talk.religion.misc", "text": "From: m23364@mwunix.mitre.org (James Meritt)\nSubject: Silence is concurance\nNntp-Posting-Host: mwunix.mitre.org\nOrganization: MITRE Corporation, McLean VA\nDistribution: usa\nLines: 15\n\n\nIs it not the case that, in the eyes of the law, when someone is aware of\nsomething and has the capability of taking action and does not, that individual\nmay be held responsible for that action?\n\nExample: the driver of a getaway car may be held as an accomplice to murder.\n\t The \"I didn't know\" defense spawned the \"ignorance of the law is no excuse\"\n\nWhen an individual is held as a material witness to a crime, is there a criminal\ncharge against the individual?  If not, on what grounds is the person imprisoned?\n\n--\nJames W. Meritt:  m23364@mwunix.mitre.org - or - jmeritt@mitre.org\nThe opinions above are mine.  If anyone else wants to share them, fine.\nThey may say so if they wish. The facts \"belong\" to noone and simply are.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4393, "properties": {"category": "comp.windows.x", "text": "From: Rob Earhart <earhart+@CMU.EDU>\nSubject: Re: Mix GL with X (Xlib,Xt,mwm)\nOrganization: Pittsburgh Supercomputing Center\nLines: 15\nNNTP-Posting-Host: po3.andrew.cmu.edu\nIn-Reply-To: <9304191540.AA09727@sparc1.jade.com>\n\n  Yes, it's possible... in fact, there's some gl widget code in\n/usr/lpp/GL somewhere... (it's named Glib.c; my IBM's down right now\nthough, so I can't find the exact location :)\n\n  WARNING: this code feels quite bogus. It does things like calling\nnoport() before winopen(), and then extracting an X window id from it\nanyway. It worked just fine under aix 3.1; I spent last weekend trying\nto port it to 3.2 (gl under 3.2 doesn't seem to like it), and it's\nturning into a Hard Job.\n\n  Check out your \"info\" pages; it has some pretty good documentation on\nwhan you can and can't do when mixing gl and X, and how to go about\ndoing so.\n\n  )Rob\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.212+0000", "event": "documents", "entityId": 4394, "properties": {"category": "sci.crypt", "text": "From: caronni@nessie.cs.id.ethz.ch (Germano Caronni)\nSubject: Re: Do we need the clipper for cheap security?\nOrganization: Swiss Federal Institute of Technology (ETH), Zurich, CH\nLines: 19\n\nIn article <9304201003.AA05465@pizzabox.demon.co.uk> gtoal@gtoal.com (Graham Toal) writes:\n>Can someone tell me if hardware compression is or is not needed to run\n>digital speech down 14.4K?  I think it is; I've heard it's not.  Lets\n>say 8 bit samples.  Would *raw* data at the corresponding sampling rate\n>be usable?  If not, how fancy does the compression need to be?\n\nAs far as I know ISDN (call it Swissnet here, and it's being plugged in) it's\n8 bit 8000Hz (gives you one channel of 64kBit/sec) I guess you should not go\nbelow a sampling rate of 6000 Hz if you want to have same quality as on an\nanalog-line. Anybody knows compression-algorithms & -factors for voice ?\n\nGreetings,\n\n\tGermano Caronni\n-- \nInstruments register only through things they're designed to register.\nSpace still contains infinite unknowns.\n                                                              PGP-Key-ID:341027\nGermano Caronni caronni@nessie.cs.id.ethz.ch   FD560CCF586F3DA747EA3C94DD01720F\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4395, "properties": {"category": "talk.politics.misc", "text": "From: garrett@Ingres.COM (THE SKY ALREADY FELL. NOW WHAT?)\nSubject: Recent News\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nKeywords: \nOrganization: ASK Computer Systems, Ingres Product Division\nLines: 35\n\n\tIn the hopes of adding a little life to, what seems to be, the\nsame old debates, I would like to add a few bits of info and ask for\ncomments.\n\n1) A couple days ago the headlines were splashed with stories of proof\n   that the North Vietnamese had held U.S. hostages after the war ended.\n\tWay back in today's newspaper (Page A7 of San Francisco Chronicle)\n   there is an article about the document that held the proof.\n\t[used without permission]\n\n\t\"The document, which was discovered in the archives of the Soviet\n    Communist Party in Moscow, is a Russian translation of what is described\n    as a September 1972 report prepared for the Vietnam Politburo by General\n    Tran Van Quang, who is identified as the deputy chief of staff of the\n    North Vietnamese army.\"\n         [later on in the article after it talks about the claim of 1,205\n           Americans in North Vietnamese prisons]\n\t\"Phong said the easiest way to prove that the document is a \n    fabrication is to review Quang's career. In 1972, he said, Quang was \n    not deputy chief of staff; he was the army commander in Military Region 4\n    in central Vietnam.\"\n\n2) I heard on the radio that the Church of Scientology has filed for \n   bankrupcy becuase the employees of Cocolat , owned by CoS, filed a \n   class action suit against them for requiring the employees to pay dues\n   to become members of the Church. Anyone heard more about this?\n\n3) Micheal Jackson went into business with Micheal Milken. No lie.\n\n------------------------------------------------------------------------------\n\"Who said anything about panicking?\" snapped Authur.           Garrett Johnson\n\"This is still just culture shock. You wait till I've       Garrett@Ingres.com\nsettled into the situation and found my bearings.\nTHEN I'll start panicking!\" - Douglas Adams  \n------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4396, "properties": {"category": "sci.space", "text": "From: dan@visix.com (Daniel Appelquist)\nSubject: Re: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nReply-To: dan@visix.com (Daniel Appelquist)\nOrganization: Visix Software, Reston, Virginia\nLines: 11\n\ndmcaloon@tuba.calpoly.edu (David McAloon) writes:\n[Lots of trippy stuff deleted]\n\nWow...  What is this guy smoking and WHERE can I GET SOME?\n\nDan\n-- \nDaniel K. Appelquist|QUANTA is the electronically published and distributed\ndan@visix.com       |magazine of science fiction  and  fantasy.   For  more\n703-758-2712        |information, send  mail to  quanta+@andrew.cmu.edu or,\n703-758-0233 (Fax)  |for back issues, ftp export.acs.cmu.edu, id:anonymous.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4397, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: rejoinder. Questions to Israelis\nNf-ID: #N:cdp:1483500352:000:3446\nNf-From: cdp.UUCP!cpr    Apr 22 17:29:00 1993\nLines: 71\n\n\nFrom: Center for Policy Research <cpr>\nSubject: rejoinder. Questions to Israelis\n\n\nTo:  shaig@Think.COM\n\nSubject: Ten questions to Israelis\n\nDear Shai,\n\nYour answers to my questions are unsatisfactory.\n\nIn the answer to my first question, concerning the nonexistence of\nIsraeli nationality, your answer conflicts with information I have\nreceived from other quarters, according to which there are two\ndistinct categories of classifying Israelis:  Citizenship\n(Ezrahut) and Nationality (Le'um). The former is used on passports\netc, and the later for daily identification in Israeli society. I\nam told that people in Israel have to carry their ID cards at all\ntimes and present them at many public places, almost every day.\nThese ID cards make clear who the holder is, a Jew or an Arab.\nYou maintain that this mainly because of religious services\nprovided. But do you really believe that this is the reason ?\nCould you provide evidence that this is the case and that it\nserves no other purpose ?\n\nIn the answer to my second questions, concerning the fact that\nIsrael has no fixed borders, you state that Israel's borders were\n'shaped and reshaped by both war and peace'. According to what I\nread, the first Zionists in the beginning of the Century, had\nplans for the Jewish State to extend into what is Lebanon and into\nTransjordan (Jordan). I also read that it was the express wish of\nBen-Gurion to not declare Israel's borders, when Israel was\nestablished, as this might restrict Israel's opportunities for\nlater expansion. Israel often claims it right of existence on the\nfact that Jews lived there 2000 years ago or that God promised the\nland to them. But according to biblical sources, the area God\npromised would extend all the way to Iraq. And what were the\nborders in biblical times which Israel considers proper to use\ntoday ?  Finally, if Israel wants peace, why can't it declare what\nit considers its legitimate and secure borders, which might be a\nbase for negotiations? Having all the above facts in mind, one\ncannot blame Arab countries to fear Israeli expansionism, as a\nnumber of wars have proved (1948, 1956, 1967, 1982).\n\nYour answer to my third question is typical of a Stalinist public\nofficial. I don't think your answer is honest.  You refer me to\nVanunu's revelations about Israel's nuclear arsenal without\nevaluating the truthfullness of his revelations. Now if he said\nthe truth, then why should he been punished, and if he lied, why\nshould he be punished? I would appreciate more honesty.\n\nSomebody provided an answer to the fourth question, concerning\n'hidden prisoners' in Israeli prisons. He posted an article from\nMa'ariv documenting such cases.  It seems that such prisoners do\nexist in Israel. What do you think about that ?\n\nYou imply that my questions show bias and are formulated in such a\nway to 'cast aspersions upon Israel'. Such terms have often been\nused by the Soviet Union against dissidents: They call the Soviet\nUnion into disrepute. If my questions are not disturbing, they\nwould not call forth such hysterical answers. My questions are\nclearly provocative but they are meant to seek facts. I would be\nvery happy if you could convince me that what I am told about\nIsrael were just fabrications, but alas you have failed to do so.\nI suspect that you fear the truth and an open and honest\ndiscussion. This is a sign of weakness, not of strength.\n\nI hope you will muster the courage to seek the full truth.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4398, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jay@vitec.com (Jay Thompson)\nSubject: DOS 6.0\nOrganization: VITec\nLines: 16\n\nI know of two people who have horrer stories about the DOS 6.0. \nThat's 100% of the people I know with DOS 6.0. Both have\nhad to reformat their disks and start over.  One had drive D compress and work\nfine, only to compress C: to have the thing choke, spit out an unintelligable\nwarning, and then hang.  All that was left on either drive was autoexec.bat\nand config.sys.  Calls to Microsoft only met with busy signals.  After reformatting\nthe drive, I'm not sure if he had the guts to reinstall 6.0 or stay with a known\nentity.\n\nThe other may have been a marginal drive, however, his upgrade failed,\nhe had to format a floppy disk at 6.0, format the drive, and then reinstall.\n\nI make now claims since I was not driving at the time, however, be careful\nand make sure you back important things up.\n\nI am interested in any other people with similar or success stories.....\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4399, "properties": {"category": "talk.religion.misc", "text": "From: Thyagi@cup.portal.com (Thyagi Morgoth NagaSiva)\nSubject: OTO, the Ancient Order of Oriental Templars\nOrganization: The Portal System (TM)\nDistribution: world\n  <1993Apr14.130150.28931@lynx.dac.northeastern.edu>\nLines: 68\n\n93!04.16 e.v.  After the Glorious Eve of Taxation\n\nDo what thou wilt shall be the whole of the Law.\nThe word of Sin is Restriction.\n\n\n\"To all whom it may concern -\n\n...\n\n\"It is known only to a few that there exists an external visible\norganization of such men and women, who having themselves found\nthe path to real self-knowledge, and who, having travelled the\nburning sands, are willing to give the benefit of their experience,\nand to act as spiritual guides to those who are willing to be\nguided.\n\n\"While numberless societies, associations, orders, groups etc.\nhave been founded during the last thirty years in all parts of\nthe civilised world, all following some line of occult study,\nyet there is but ONE ancient organization of genuine Mystics\nwhich shows the seeker after truth a Royal Road to discover\nThe Lost Mysteries of Antiquity, and to the Unveiling of the\nOne Hermetic Truth.\n\n\"This organization is known at the present time as the Ancient\nOrder of Oriental Templars.  Ordo Templi Orientis.  Otherwise:\nThe Hermetic Brotherhood of Light.\n\n\"It is a Modern School of Magic.  And, like the ancient schools\nof magic, it derived its knowledge from the East.  This Knowledge\nwas never its possessors.[sic] It was recorded in symbol, parable \nand allegory, requiring a Key for its interpretation....\n\n\"This key can be placed within the reach of all those who... apply\nfor membership to the Oriental Templars (O.T.O.). \n\n\"The O.T.O.... is a body of Initiates in whose hands are\nconcentrated the secret knowledge of all Oriental Orders and of all\nexisting Masonic Degrees....\n\n\"The O.T.O., although an Academia Masonica, is not a Masonic Body,\nso far as the Craft degrees are concerned in the sense in which that\nexpression is usually understood in England, and therefore in no way\nconflicts with or infringes the just priveleges of the United Lodge\nof England.  English Master Masons in good standing, by arrangement,\non affiliation, are admitted at reduced charges.  Members of the IX\ndegree become part-proprietors of the Estates and Goods of the Order.\nFor further information see the publications of the O.T.O., and the\nsynopsis of the degrees of the O.T.O.\"\n\n'Constitution of the Ancient Order of Oriental Templars,\n Ordo Templi Orientis', \n\nby Frater Superior Merlin Peregrinus X Degree, \nPast Grand Master Albert Karl Theodor Reuss\n\n\nTaken from _Equinox III: 10_, \nEdited by Frater Superior Rex Summus Sanctissimus,\nUnited States Caliph of Ordo Templi Orientis\n\n\nInvoke me under my stars.  Love is the law, love under will.\n\nI am I!\n\nFrater (I) Nigris (DCLXVI) (CCCXXXIII) \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4400, "properties": {"category": "rec.sport.hockey", "text": "From: icop@csa.bu.edu (Antonio Pera)\nSubject: ABC coverage\nDistribution: usa\nOrganization: Computer Science Department, Boston University, Boston, MA, USA\nLines: 9\nOriginator: icop@csa\n\n\n\tI loved the ABC coverage. The production was excellent. The appearance\nwas excellent. It had a sleek modern look. This was the first time I heard\nThorne & Clement & I thought they were great. My only request is to leave\nAl Micheals out of this. He annoys me. \n\tI'm hoping this leads to a regular-season contract. My guess would\nbe is that it will be roughly a weekly game from Feb.-April and then the \nplayoffs. I envy you Canadians with your TSN & CBC. Maybe I'll get a dish\nto pick up Canadian TV. How much are those things, BTW?\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4401, "properties": {"category": "alt.atheism", "text": "From: stank@cbnewsl.cb.att.com (Stan Krieger)\nSubject: Re: [soc.motss, et al.] \"Princeton axes matching funds for Boy Scouts\"\nArticle-I.D.: cbnewsl.1993Apr6.041343.24997\nOrganization: Summit NJ\nLines: 39\n\nstudent writes:\n\n>Somewhere, roger colin shouse writes about \"radical gay dogma.\"  Somewhere else\n>he claims not to claim to have a claim to knowing those he doesn't know.\n>There are at least twenty instances of this kind of muddleheaded fourth-\n>reich-sophistique shit in his postings.  Maybe more.  In fact I'm not sure\n>the instances could be counted, because they reproduce like a virus the more\n>you consider his words.\n>\tMy question is this: what is the best response to weasels like\n>shouse and Stan Krieger?  Possibilities:\n>\t(a) study them dispassionately and figure out how they work, then\n>(1) remember what you've learned so as to combat them when they or their clones\n>get into office\n>(2) contribute your insights to your favorite abnormal psych ward\n>\t(b) learn to overcome your repugnance for serial murder\n\nThis posting is totally uncalled for in rec.scouting.\n\nThe point has been raised and has been answered.  Roger and I have\nclearly stated our support of the BSA position on the issue;\nspecifically, that homosexual behavior constitutes a violation of\nthe Scout Oath (specifically, the promise to live \"morally straight\").\n\nThere is really nothing else to discuss.  Trying to cloud the issue\nwith comparisons to Blacks or other minorities is also meaningless\nbecause it's like comparing apples to oranges (i.e., people can't\ncontrol their race but they can control their behavior).\n\nWhat else is there to possibly discuss on rec.scouting on this issue?\nNobody, including BSA, is denying anybody the right to live and/or\nworship as they please or don't please,  but it doesn't mean that BSA\nis the big bad wolf for adhering to the recognized, positive, religious\nand moral standards on which our society has been established and on\nwhich it should continue to be based.\n-- \nStan Krieger                 All opinions, advice, or suggestions, even\nUNIX System Laboratories     if related to my employment, are my own.\nSummit, NJ\nsmk@usl.com\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4402, "properties": {"category": "comp.sys.mac.hardware", "text": "From: phil@csc.liv.ac.uk (Phil Jimmieson)\nSubject: Duo Dock problems\nOrganization: Computer Science, Liverpool University\nLines: 23\nNntp-Posting-Host: ama.csc.liv.ac.uk\n\nHas anyone had any problems with their Duo Dock not ejecting the Duo\nproperly?\n\nWhen I first got it, the Duo would come out of the Dock a couple of inches\nwhen ejected, and I had to pull it the rest of the way. Nowadays (and I've\nhad the system for 4 months), the Duo doesn't come out *at* *all* - despite\nthe fact that the mechanism makes all the appropriate noises, and I have to\ngrab hold of it and pull it out myself. Is there a simple fix for this, or\ndo I have to return it to my Apple Dealer, where it will languish for weeks\nwhile I have to make do with no colour display, no VRAM, no floppy or\nSCSI etc. \n\n(BTW, it's not that the Duo is locked into the Dock - it just doesn't\nwant to slide out any more).\n\n\n-- \nPhil Jimmieson,           ***********************************************\nComputer Science Dept.,   * JANET    : phil@uk.ac.liv.csc               *\nLiverpool University,     * INTERNET : phil@csc.liv.ac.uk               *\nPO Box 147                ***********************************************\nLiverpool  L69  3BX      \"I was head over heels in love until I got cramp\"\n(UK) 051-794-3689          \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4403, "properties": {"category": "soc.religion.christian", "text": "From: anasaz!karl@anasazi.com (Karl Dussik)\nSubject: Re: Is \"Christian\" a dirty word?\nOrganization: Anasazi Inc Phx Az USA\nLines: 73\n\nIn article <Mar.25.03.53.08.1993.24855@athos.rutgers.edu> @usceast.cs.scarolina.edu:moss@cs.scarolina.edu (James Moss) writes:\n>I was brought up christian, but I am not christian any longer.\n>I also have a bad taste in my mouth over christianity.  I (in\n>my own faith) accept and live my life by many if not most of the\n>teachings of christ, but I cannot let myself be called a christian,\n>beacuse to me too many things are done on the name of christianity,\n>that I can not be associated with.  \n\nA question for you - can you give me the name of an organization or a\nphilosophy or a political movement, etc., which has never had anything\nevil done in its name?  You're missing a central teaching of Christianity -\nman is inherently sinful.  We are saved through faith by grace.  Knowing\nthat, believing that, does not make us without sin.  Furthermore, not all\nwho consider themselves \"christians\" are (even those who manage to head\ntheir own \"churches\").  \"Not everyone who says to me, 'Lord, Lord,' will\nenter the kingdom of heaven, but only he who does the will of my Father who\nis in heaven.\" - Matt. 7:21.\n\n>I also have a problem with the inconsistancies in the Bible, and\n>how it seems to me that too many people have edited the original\n>documents to fit their own world views, thereby leaving the Bible\n>an unbelievable source.\n\nAgain, what historical documents do you trust?  Do you think Hannibal\ncrossed the Alps?  How do you know?  How do you know for sure?  What\nhistorical documents have stood the scrutiny and the attempts to dis-\ncredit it as well as the Bible has?\n\n>I don't have dislike of christians (except for a few who won't\n>quit witnessing to me, no matter how many times I tell them to stop), \n>but the christian faith/organized religion will never (as far as i can \n>see at the moment) get my support.\n\nWell, it's really a shame you feel this way.  No one can browbeat you\ninto believing, and those who try will probably only succeed in driving\nyou further away.  You need to ask yourself some difficult questions:\n1) is there an afterlife, and if so, does man require salvation to attain\nit.  If the answer is yes, the next question is 2) how does man attain this\nsalvation - can he do it on his own as the eastern religions and certain\nmodern offshoots like the \"new age movement\" teach or does he require God's\nhelp?  3) If the latter, in what form does - indeed, in what form can such\nhelp come?  Needless to say, this discussion could take a lifetime, and for\nsome people it did comprise their life's writings, so I am hardly in a\nposition to offer the answers here - merely pointers to what to ask.  Few,\nof us manage to have an unshaken faith our entire lives (certainly not me).\nThe spritual life is a difficult journey (if you've never read \"A Pilgrim's\nProgress,\" I highly recommend this greatest allegory of the english language).\n\n>Peace and Love\n>In God(ess)'s name\n>James Moss\n\nNow I see by your close that one possible source of trouble for you may be a\nconflict between your politcal beliefs and your religious upbringing.  You\nwrote that \"I (in my own faith) accept and live my life by many if not most\nof the teachings of christ\".  Well, Christ referred to God as \"My Father\",\nnot \"My Mother\", and while the \"maleness\" of God is not the same as the\nmaleness of those of us humans who possess a Y chromosome, it does not\nhonor God to refer to Him as female purely to be trendy, non-discriminatory,\nor politically correct.  This in no way disparages women (nor is it my intent\nto do so by my use of the male pronoun to refer to both men and women - \nenglish just does not have a decent neuter set of pronouns).  After all, God\nchose a woman as his only human partner in bringing Christ into the human\npopulation.\n\nWell, I'm not about to launch into a detailed discussion of\nthe role of women in Christianity at 1am with only 6 hours of sleep in the\nlast 63, and for that reason I also apologize for any shortcomings in this\narticle.  I just happened across yours and felt moved to reply.  I hope I\nmay have given you, and anyone else who finds himself in a similar frame of\nmind, something to contemplate.\n\nKarl Dussik\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4404, "properties": {"category": "comp.windows.x", "text": "From: rlm@helen.surfcty.com (Robert L. McMillin)\nSubject: Is it just me, or is this newsgroup dead?\nOrganization: Surf City Software/TBFW Project\nLines: 8\n\nI've gotten very few posts on this group in the last couple days.  (I\nrecently added it to my feed list.)  Is it just me, or is this group\nnear death?\n--\n\nRobert L. McMillin | Surf City Software | rlm@helen.surfcty.com | Dude!\n#include <std.disclaimer.h>\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4405, "properties": {"category": "sci.med", "text": "From: vida@mdavcr.mda.ca (Vida Morkunas)\nSubject: Inner Ear Problems from Too Much Flying?\nOrganization: MacDonald Dettwiler, 13800 Commerce Parkway, Richmond, BC, Canada  V6V 2J3\nLines: 6\n\nCan one develop inner-ear problems from too much flying?  I hear that pilots\nand steward/esses have a limit as to the maximum number of flying hours --\nwhat are these limits?  What are the main problems associated with too many\nlong-haul (over 4 hours) trips?\n\nFrequent Flyer.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4406, "properties": {"category": "comp.windows.x", "text": "From: grape@suned1.Nswses.Navy.MIL (Mike Grapevine)\nSubject: subscribe\nOrganization: The Internet\nLines: 1\nTo: expert@expo.lcs.mit.edu\n\n\tsubscribe grape@nswses.navy.mil\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4407, "properties": {"category": "sci.space", "text": "From: tombaker@world.std.com (Tom A Baker)\nSubject: Re: Shuttle Launch Question\nOrganization: Me, at The World Public Access UNIX, Brookline, MA\nDistribution: sci\nLines: 29\n\nIn article <15APR199320340428@stdvax> abdkw@stdvax (David Ward) writes:\n>In article <C5JLwx.4H9.1@cs.cmu.edu>, ETRAT@ttacs1.ttu.edu (Pack Rat) writes...\n>>There has been something bothering me while watching\n>>NASA Select for a while.  Well, I should'nt say\n>>bothering, maybe wondering would be better.  When\n>>they are going to launch they say (sorry but I forget\n>>exactly who is saying what, OTC to PLT I think)\n>>\"Clear caution & warning memory.  Verify no unexpected\n>>errors. ...\".  I am wondering what an \"expected error\" might\n>>be.  Sorry if this is a really dumb question, but\n>\n>\n>In pure speculation, I would guess cautions based on hazardous\n>pre-launch ops would qualify.  Something like \"Caution:  SRBs\n>have just been armed.\"  \n\nAlso in pure speculation:\n\nParity errors in memory or previously known conditions that were waivered.\n   \"Yes that is an error, but we already knew about it\"\n\nAny problem where they decided a backup would handle it.\n\nAny problem in an area that was not criticality 1,2,3..., that is, any\n   problem in a system they decided they could do without.\n\nI'd be curious as to what the real meaning of the quote is.\n\ntom\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4408, "properties": {"category": "talk.politics.guns", "text": "From: jgd@dixie.com (John De Armond)\nSubject: FBI Murders (was Re: ATF BURNS DIVIDIAN )\nOrganization: Dixie Communications Public Access.  The Mouth of the South.\nLines: 87\n\njmd@cube.handheld.com (Jim De Arras) writes:\n\n>I have believed all along that they could not let them live, the \n>embarrassment  to the BATF and the FBI would've been too severe.\n\n>Remember, this was a suspicion of tax-evasion warrant.  There were no  \n>witnesses, except the FBI.  All information filtered through the FBI.  All \n>they had to do was allow one remote controlled pool camera be installed \n>near the  building, and the press could've done their job, and would've \n>been able to back the FBI's story with close up video, while incurring no \n>risk to the press.  Unless they did not want the public to see something.  \n>The complete lack of any  other source of information other than the \n>FBI really causes me concern. \n\n>Sick to my stomach, and getting sicker from all the Government apologists\n\nWell put, Jim.  I am as concerned about the media's complicity in this\ngrowing coverup.  Can you imagine the media outrage, the lawsuits, the\ninvestigations that would emit if the government kept the media away from\nany other story?  Particularly if a Republican administration had been\nbehind it.  What's going on here?\n\nLet's look beyond the initial blunder and examine what happened next.\nI'm a student of human phychology, particularly in the area of psy-ops\nbecause I've found some of the techniques to be useful in business\nnegotiations.  That puts me firmly in the amateur ranks.  This AMATEUR\nknows that the first thing to do when sizing up the opponent is to do a\npsychological profile on him.  You can bet your ass the FBI had\nprofessionally done profiles on Koresh.  Koresh's behavior was\nemminently predictable.  It is typical of people who move away from\ncivilization to be willing to fight to the death to preserve their\nisolation.  It would also be typical, given Koresh's religious\norientation, for such an individual to interpret a government assault as\nthe apocalypse.  Suicide is as an acceptable alternative to being\nconsumed in the apocalypse.\n\nIMHO, the FBI knew all this and decided after 50 days of concentrated\npsy-ops to initiate that apocalypse.  I believe they chose a course of\naction designed specifically to push Koresh over the edge while publicly\nappearing to be acting reasonably.  They KNEW that Koresh considered the\ntanks to be the Chariots of Fire mentioned in the Book of Revelations.\nThey KNEW that sending tanks, oops, combat engineering vehicles,\nobstensibly to perform \"gas insertions\" (love that NewSpeak) WOULD push\nhim over the edge.\n\nLook at some supporting evidence.  Koresh's attorney mentioned on TV\nearlier today (4/20) that one of Koresh's major concern was the biblical\nrole of the tanks stationed around the compound.  The FBI (through Reno\non Larry King last night and at the news conference this morning)\nclaimed to have listening devices in the compound.  If that was true\nthey KNEW their actions were driving him to the brink.  They KNEW they\nwere pushing the Davidians toward mass suicide.  Any rational and\nreasonable agency NOT interested in killing those people would, at\nthe first sign of preparations for suicide, have pulled completely back and\nwould have gotten rid of all the armor.  Instead they continued with the\n\"gas insertion\" right up to the point where flames appeared.  The image\nthat will remain etched in my mind is that of the tank strutting back\nand forth in front of the burning compound, gloating over the kill.\n\nLet's step back and assess how this thing could have been ended without\nbloodshed.  This technique would have required a law enforcement agency\ninterested in constitutionally enforcing the law and in the preservation\nof life instead of achieving a military victory and of vengence.\n\nThe way to have nabbed Koresh was simply to have announced a pull back,\nabandoned the assault, torn down the concertina wire and removed the\narmor, maintained covert surveillance of the compound and then exploited\nhis ego to flush him out.  Exploiting his ego would have been simple.  A\nsimple invite or two from the tabloid talk shows to come on TV and tell\nhow he whipped the US government would have been something he could not\nhave resisted.  He could have then been nabbed when he left the\ncompound.  Simple, clean and safe but because it would have required the\nFBI to execute a tactical retreat and would have deprived them of the\nrevenge they sought, it was totally out of the question.  Not without\nall that testesterone floating around.  After all Jannet Reno had to\nshow the world how big her balls are.\n\nYesterday was a sad, sad day for the American system.  I am sick to my \nvery soul.\n\nJohn\n-- \nJohn De Armond, WD4OQC               |Interested in high performance mobility?  \nPerformance Engineering Magazine(TM) | Interested in high tech and computers? \nMarietta, Ga                         | Send ur snail-mail address to \njgd@dixie.com                        | perform@dixie.com for a free sample mag\nLee Harvey Oswald: Where are ya when we need ya?\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4409, "properties": {"category": "sci.space", "text": "From: schaefer@sal-sun121.usc.edu (Peter Schaefer)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nOrganization: University of Southern California, Los Angeles, CA\nLines: 29\nDistribution: world\nNNTP-Posting-Host: sal-sun121.usc.edu\n\n\nIn article <1993Apr19.130503.1@aurora.alaska.edu>, nsmca@aurora.alaska.edu writes:\n|> In article <6ZV82B2w165w@theporch.raider.net>, gene@theporch.raider.net (Gene Wright) writes:\n|> > With the continuin talk about the \"End of the Space Age\" and complaints \n|> > by government over the large cost, why not try something I read about \n|> > that might just work.\n|> > \n|> > Announce that a reward of $1 billion would go to the first corporation \n|> > who successfully keeps at least 1 person alive on the moon for a year. \n|> > Then you'd see some of the inexpensive but not popular technologies begin \n|> > to be developed. THere'd be a different kind of space race then!\n|> > \n|> > --\n|> >   gene@theporch.raider.net (Gene Wright)\n|> > theporch.raider.net  615/297-7951 The MacInteresteds of Nashville\n|> ====\n|> If that were true, I'd go for it.. I have a few friends who we could pool our\n|> resources and do it.. Maybe make it a prize kind of liek the \"Solar Car Race\"\n|> in Australia..\n|> Anybody game for a contest!\n|> \n|> ==\n|> Michael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\n\nOh gee, a billion dollars!  That'd be just about enough to cover the cost of the\nfeasability study!  Happy, Happy, JOY! JOY!\n\nPeter F. Schaefer\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4410, "properties": {"category": "sci.space", "text": "From: nicho@vnet.IBM.COM (Greg Stewart-Nicholls)\nSubject: Re: Biosphere II\nReply-To: nicho@vnet.ibm.com\nDisclaimer: This posting represents the poster's views, not those of IBM\nNews-Software: UReply 3.1\nX-X-From: nicho@vnet.ibm.com\n            <1q1kia$gg8@access.digex.net>\nLines: 18\n\nIn <1q1kia$gg8@access.digex.net> Pat writes:\n>In article <19930408.043740.516@almaden.ibm.com> nicho@vnet.ibm.com writes:\n>>In <1q09ud$ji0@access.digex.net> Pat writes:\n>>>Why is everyone being so critical of B2?\n>> Because it's bogus science, promoted as 'real' science.\n>It seems to me, that it's sorta a large engineering project more\n>then a science project.\n  Bingo.\n>B2 is not bench science,  but rather a large scale attempt to\n>re-create a series of micro-ecologies.   what's so eveil about this?\n Nothing evil at all. There's no actual harm in what they're doing, only\nhow they represent it.\n\n -----------------------------------------------------------------\n .sig files are like strings ... every yo-yo's got one.\n\nGreg Nicholls ... nicho@vnet.ibm.com (business) or\n                  nicho@olympus.demon.co.uk (private)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4411, "properties": {"category": "sci.crypt", "text": "From: Graham Toal <gtoal@gtoal.com>\nSubject: Re: Once tapped, your code is no good any more.\nOriginator: gtoal@pizzabox.demon.co.uk\nNntp-Posting-Host: pizzabox.demon.co.uk\nReply-To: Graham Toal <gtoal@gtoal.com>\nOrganization: Cuddlehogs Anonymous\nDistribution: na\nLines: 17\n\nIn article <2073@rwing.UUCP> pat@rwing.UUCP (Pat Myrto) writes:\n:If the Clinton Clipper is so very good, why not make its algrithm public\n:so many people can exchange ideas and examine it, rather than a few\n:isolated 'respected experts' (respected by whom?  for what?  Perhaps a\n:certain professor who likes key banks would be one of the selected\n:experts... this does seem to expand on some ideas the person was\n:advocating, if I recall :-).  How would anybody know that what the\n\nActually, I am *completely* baffled by why Dorothy Denning has chosen\nto throw away her academic respectability like this.  It looks to me\nlike a *major* Career Limiting Move.  There can be very few people\nwho know what she's been saying who take her seriously any more.\n\nI wonder if she landed such a fat fee from cooperation with the NSA in\nthe design and propoganda stages that she doesn't care any more?\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4412, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: California Insurance Commissioner Endorses Federal Legislation to Protect Consumers from Scam Insurance Companies\nDistribution: usa\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 111\n\nIn article <1993Apr14.164549.24069@cbnewsi.cb.att.com>, gadfly@cbnewsi.cb.att.com (Gadfly) writes:\n> In article <15342@optilink.COM>, cramer@optilink.COM (Clayton Cramer) writes:\n# # # And now those \"other options\" don't exist.  We probably agree on this\n# # # more than you think--welfare was invented to solve a problem of the\n# # # 30's, but the poverty is now so much worse, and our economic infra-\n# # # structure has been so eroded, that it just can't keep up any more.\n# \n# # You mean, since your philosophy took over, the economy has almost\n# # collapsed.\n# \n# Excuse me, *my* philosophy?  You don't have any idea what *my* philosophy\n# is.  The American economy has had its ups and downs through a number of\n# prevailing economic philosophies.  But then, economics is hardly a science.\n\nIn my lifetime, your philosophy -- socialism masquerading as a liberal\nwelfare state -- has been in ascendancy.\n\n# No, I mean exactly what I wrote--the welfare system of the New Deal is\n# wholly inadequate to cope with the current state of affairs.\n\nAbsolutely.  So the response of socialists is take us even further\ninto socialism.\n\n# # # # # (2) Whether or not the fathers work\n# # # # # is not germane to single mothers.\n#  \n# # # # Very true.  But the promotion of casual sexuality is something that\n# # # # plays a part in the single mother problem.\n# \n# # # I'll buy that--and there's lots of reasons for it, extremely far down on\n# # # the list being the flash-in-the-pan media attention a bunch of middle-\n# # # class dropouts got for their philosophy and experimentation.  \n# \n# # Flash-in-the-pan?  No, your subculture has utterly dominated the\n# # TV and movie industries for two decades now.\n# \n# *My* subculture?  My, we're getting personal.  The only subculture I see\n# dominating the TV and movie industries is *money*.  If you'll buy it,\n# they'll sell it.  And as recent movements to boycott TV advertisers have\n# shown, they're *very* sensitive about what sells.  Whatever happened to\n# personal responsibility, anyway?  Or am I personally responsible for\n# the decline in that, too?\n\nTo the extent that people have been encouraged to NOT be responsible\nfor themselves, yes.\n\n# # # # Come on.  You and I both know that the major problem of this society\n# # # # today isn't a lack of employment, it's a lack of people willing to work.\n# \n# # # Huh???  Tell that to the single mother I know who was laid off from\n# # # her $10/hour job at a hospital and now works 2 full-time minimum-\n# # # wage jobs to barely be able to support herself and her kid.  *Barely.*\n# # # Hey, she's too proud to go on public assistance, but the only jobs\n# # # she can find are menial and with no benefits.  And no career path\n# # # either--they find excuses to lay people off and hire new ones rather\n# # # than give raises and perks.  And why not?  It's a lot cheaper.\n# \n# # Oddly enough, all the unskilled or semiskilled people I know manage\n# # to find employment almost immediately.  Maybe she needs to move to a\n# # cheaper part of the country, where jobs are plentiful, and the cost\n# # of living is lower.\n# \n# The west side of Chicago is about as cheap as it gets--squalor city.\n# Tell me about all these places where it's cheap to live and jobs are\n# abundant--I'll pass them on.\n\nSonoma County.\n\n# You live in a strange and wondrous place, sir.  Inexpensive housing,\n\nNot exactly cheap, but not Los Angeles, either.\n\n# lots of employment, and utterly surrounded by socialists.  Well, I suppose\n# that's the sort of environment that would attract socialists, or at least\n# not dissuade them.\n\nNo, it's that areas with a lot of wealthy breed socialists -- all the\nspoiled rich kids, feeling guilty about their wealth.  But not guilty\nenough to give it away -- they just look for politicians to take MY\nmore limited wealth away.\n\n# # # I see a lot of people willing--nay, eager--to work.  What I don't see\n# # # is a system that makes it at all feasible to do so.  It's not just\n# # # welfare, which nobody enjoys, but there just aren't the jobs any more.\n# # # When the US was expanding industrial capacity there was always a mill\n# # # to go work in--skills to learn, a future.  Now there's only McDonalds.\n# \n# # Odd.  Not the experience of anyone I know.  Just the opposite.\n# \n# In California???\n\nYup.\n\n# # # Mr. Cramer, I was there:  Hippiedom was a very low-budget operation.\n# # # Our drugs were cheap.\n# \n# # The money I was referring to was Aid to Families with Druggie \n# # Cohabitators (AFDC).\n# \n# Well, I doubt that much of this goes to drugs--there isn't much left after\n# buying food, and there is very little in the first place.  Sure, you read\n# about such cases now and then, but that's what makes them news.  Show me\n# your statistics about AFDC abuse.\n\nI can tell you that relatives I have known, the drugs came first, the\nfood was secondary.\n\n# Ken Perlow   ***** *****\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4413, "properties": {"category": "rec.motorcycles", "text": "From: pstone@well.sf.ca.us (Philip K. Stone)\nSubject: Re: Shaft-drives and Wheelies\nNntp-Posting-Host: well.sf.ca.us\nOrganization: Whole Earth 'Lectronic Link\nDistribution: rec\nLines: 16\n\nIn article <1993Apr19.164842.18206@vax5.cit.cornell.edu> xlyx@vax5.cit.cornell.edu writes:\n>Is it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n>\n>Mike Terry\n\nNo.\n\nAt least, that's what I told the NASA rent-a-cop that stopped me\nbecause he swore I was \"lifting it up.\"\n\nHe didn't completely buy the part about water in the carbs, either.\n\n\nPhil Stone                  NEW ADDRESS----------> pstone@well.sf.ca.us\n'83 R80ST                                           \"Motorcycles OK\"\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4414, "properties": {"category": "talk.religion.misc", "text": "From: joslin@pogo.isp.pitt.edu (David Joslin)\nSubject: Re: Kind, loving, merciful and forgiving GOD!\nOrganization: Intelligent Systems Program\nLines: 43\n\nm23364@mwunix.mitre.org (James Meritt) writes:\n>joslin@pogo.isp.pitt.edu (David Joslin) writes:\n>}m23364@mwunix.mitre.org (James Meritt) writes:\n>}>}(a) out of context;\n>}>Must have missed when you said this about these other \"promises of god\" that we keep\n>}>getting subjected to.  Could you please explain why I am wrong and they are OK?\n>}>Or an acknowledgement of public hypocrisy. Both or neither.\n>}\n>}So, according to you, Jim, the only way to criticize one person for\n>}taking a quote out of context, without being a hypocrite, is to post a\n>}response to *every* person on t.r.m who takes a quote out of context?\n>\n>Did I either ask or assert that?  Or is this your misaimed telepathy at work again?\n\n(1)  Stephen said you took a quote out of context\n(2)  You noted that Stephen had not replied to some other t.r.m article\n     (call it A) that took a quote out of context\n(3)  But the lack of evidence for X does not constitute evidence for the\n     lack of X  (a common creationist error)\n(4)  So the fact that Stephen did not reply to A does not justify the\n     conclusion that Stephen condoned taking quotes out of context in A\n(5)  You asked Stephen to explain why you were wrong and they were OK,\n     or to acknowledge that he was being a hypocrite.  \n(6)  Both of the choices you give Stephen assume that he condoned\n     taking quotes out of context in A.\n(7)  I assumed you were being logical, and that the sentence that begins\n     \"Could you please explain ...\" was not a nonsequitur, but was intended\n     to follow from the sentence that preceded it.\n(8)  Therefore, I concluded that you believed that (2) implied that Stephen\n     condoned taking quotes out of context in A\n(9)  But we've already seen that (2) does not imply this\n(10) Therefore, you were incorrect to believe that (2) implied that Stephen\n     thought it was okay to take quotes out of context in A, and were \n     making an error of a kind that is frequently made by creationists.\n\nIs that better Jim?   It's called an argument.  If you disagree with it,\nexplain why the argument is not sound.  (I admit that my assumption in (7)\nmay have been a bit hasty.)  If you agree with it, just say \"yup.\"\n\ndj\n\"Yup.\" -- Jim's e-mailed response when I pointed out, in a posted article,\nthat one of his arguments was a straw man argument, reminiscent of a\nfrequent creationist ploy.  (3/22/93)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4415, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: kevin@kosman.uucp (Kevin O'Gorman)\nSubject: Date is stuck\nOrganization: Vital Software Services, Oxnard, CA\nLines: 15\n\nAnybody seen the date get stuck?\n\nI'm running MS-DOS 5.0 with a menu system alive all the time.  The machine\nis left running all the time.\n\nSuddenly, the date no longer rolls over.  The time is (reasonably) accurate\nallways, but we have to change the date by hand every morning.  This involves\nexiting the menu system to get to DOS.\n\nAnyone have the slightest idea why this should be?  Even a clue as to whether\nthe hardware (battery? CMOS?) or DOS is broken?\n-- \nKevin O'Gorman ( kevin@kosman.UUCP, kevin%kosman.uucp@nrc.com )\nvoice: 805-984-8042 Vital Computer Systems, 5115 Beachcomber, Oxnard, CA  93035\nNon-Disclaimer: my boss is me, and he stands behind everything I say.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4416, "properties": {"category": "comp.graphics", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: Fonts in POV??\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 57\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\nKeywords: fonts, raytrace\n\n\nIn article <1qg9fc$et9@wampyr.cc.uow.edu.au>, g9134255@wampyr.cc.uow.edu.au (Coronado Emmanuel Abad) writes:\n|> \n|> \n|> \tI have seen several ray-traced scenes (from MTV or was it \n|> RayShade??) with stroked fonts appearing as objects in the image.\n|> The fonts/chars had color, depth and even textures associated with\n|> them.  Now I was wondering, is it possible to do the same in POV??\n|> \n\nHi Noel,\n\nI've made some attempts to write a converter that reads Adobe Type 1 fonts,\ntriangulates them, bevelizes them and extrudes them to result in a generic\n3d object which could be used with PoV f.i.\n\nThe problem I'm currently stuck on is that theres no algorithm which\ntriangulates any arbitrary polygonal shape. Delaunay seems to be limited\nto convex hulls. Constrained delaunay may be okay, but I have no code\nexample of how to do it.\n\nAnother way to do the bartman may be\n\n- TGA2POV\n- A selfmade variation of this, using heightfields.\n\n  Create a b/w picture (BIG) of the text you need, f.i. using a PostScript\n  previewer. Then, use this as a heightfield. If it is white on black,\n  the heightfield is exactly the images white parts (it's still open\n  on the backside). To close it, mirror it and compound it with the original.\n\nExample:\n\nobject {\n   union {\n      height_field { gif \"abp2.gif\" }\n      height_field { gif \"abp2.gif\" scale <1 -1 1>}\n   }\n   texture {\n      Glass\n   }\n   translate <-0.5 0 -0.5>      //center\n   rotate <-90 0 0>             // rotate upwards\n   scale  <10 5 100>            // scale bigger and thicker\n   translate <0 2 0>            // final placement\n}\n\n\nabp2.gif is a GIF of arbitrary size containing \"ABP\" black on white in\nTimes-Roman 256 points.\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.213+0000", "event": "documents", "entityId": 4417, "properties": {"category": "sci.space", "text": "From: rick@trystro.uucp (Richard Nickle)\nSubject: Re: How to read sci.space without netnews\nOrganization: The Trystro System (617) 625-7155 v.32/v.42bis\nLines: 27\n\nIn article <C5LJG5.17n.1@cs.cmu.edu> mwm+@cs.cmu.edu (Mark Maimone) writes:\n>In article <734975852.F00001@permanet.org> Mark.Prado@p2.f349.n109.z1.permanet.org (Mark Prado) writes:\n>>If anyone knows anyone else who would like to get sci.space,\n>>but doesn't have an Internet feed (or has a cryptic Internet\n>>feed), I would be willing to feed it to them.\t\n>\n>\tKudos to Mark for his generous offer, but there already exists a\n>large (email-based) forwarding system for sci.space posts:  Space Digest.\n>It mirrors sci.space exactly, and provides simple two-way communication.\n>\nI think Mark was talking about making it available to people who didn't\nhave email in the first place.\n\nIf anybody in the Boston area wants a sci.space feed by honest-to-gosh UUCP\n(no weird offline malreaders), let me know.  I'll also hand out logins to\nanyone who wants one, especially the Boston Chapter of NSS (which I keep forgetting\nto re-attend).\n\n>Questions, comments to space-request@isu.isunet.edu\n>-- \n>Mark Maimone\t\t\t\tphone: +1 (412) 268 - 7698\n>Carnegie Mellon Computer Science\temail: mwm@cmu.edu\n\n\n-- \nrichard nickle\t\trick@trystro.uucp\t617-625-7155 v.32/v.42bis\n\t\t\tthink!trystro!rick\tsomerville massachusetts\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4418, "properties": {"category": "comp.sys.mac.hardware", "text": "From: s912013@minyos.xx.rmit.OZ.AU (Douglas Barry Mcpherson)\nSubject: Laser Writer IINTX upgrade kit\nOrganization: Royal Melbourne Institute of Technology\nLines: 15\nNNTP-Posting-Host: minyos.xx.rmit.oz.au\n\nCould someone please tell me what a \n\nLaserWriter IINTX upgrade kit is.\n\nIts a small box, which has a bag inn it , seemingly\ncontaining 6 chips (look like ROMS) and a IINTX manual.\nThe installation instructions are most informative and say, in full,\n\"This product must be installed by an Apple .........\"\n\nSO what does this do ? At first I thought it might be a NT to NTX\nupgrade, but I thought that required an entirely new board.\n\nAny info appreciated.\n\nDoug.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4419, "properties": {"category": "rec.sport.baseball", "text": "From: srubio@garnet.berkeley.edu (Steven Rubio)\nSubject: Re: Kevin Rogers\nOrganization: University of California, Berkeley\nLines: 8\nNNTP-Posting-Host: garnet.berkeley.edu\n\nRogers is the \"one-batter lefty\" in the bullpen.  Dusty has also said he\ntrusts Rogers to get the final out in a ballgame where Beck is\nunavailable, so you might see a couple of saves for Kevin.  Then again, if\nany of the regular rotation falters, Rogers is a possible candidate to\nstart, though this would appear less likely now that Dave Burba did well\nin an emergency start.\n\nSteven\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4420, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: Insane Gun-toting Wackos Unite!!!\nLines: 21\nOrganization: University of Tennessee Division of Continuing Education\nDistribution: na\n\nIn article <1993Apr16.030706.3318@ucsu.Colorado.EDU> fcrary@ucsu.Colorado.EDU (Frank Crary) writes:\n\n>>> Do you know how many deaths each year are caused by self-inflicted gun-\n>>> shot wounds by people wearing thigh holsters?\n>\n>There are roughly 1200 fatal, firearms-related accidents each year.\n>The large majority involve rifles and shotgun; there are under 500\n>fatal handgun accidents each year. I really doubt all of those\n>occur while the pistol is holstered, so the number of \"self-inflicted\n>gunshot wounds by people wearing thigh holsters\" is probably\n>well under 250 per year.\n\n       I'm neither a doctor nor a firearms tech expert, but it would seem\nthat given the way a holstered gun points, accidental injuries inflicted\nthat way would be among the least lethal.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4421, "properties": {"category": "misc.forsale", "text": "Subject: CDs for sale [update]\nFrom: koutd@hiramb.hiram.edu (DOUGLAS KOU)\nOrganization: Hiram College\nNntp-Posting-Host: hiramb.hiram.edu\nLines: 31\n\nCDs for sale shipping is included\n\nBarcelona Gold\t\tFreddie Mercury, Tevin Campbell, En Vogue\n\t\t\tINXS, Madonna, Eric Clapton, Sarah Brightman\n\t\t\t($9.00)\n\nWayne's World\t\tQueen, Red Hot Chili Peppers, Alice Cooper\n\t\t\tEric Clapton\n\t\t\t($9.00)\n\nExtreme II\t\tPronograffitti\n\t\t\t($9.00)\n\nSaturday Night Live Band\tLive from New York\n\t\t\t($7.00)\n\nHarry Connick, JR.\tBlue Light\t\t\t*Sold*\n\t\t\t(just open, $10.00)\n\nDances with Woives\t($9.00)\t\t\t\t*Sold*\n\nHandel\t\t\tClassical \t($ 6.00)\t*Sold*\n\n\nPlease send your reply to koutd@hirama.hiram.edu\nPackage deal is welcome.\n\nDouglas Kou\nHiram College\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4422, "properties": {"category": "talk.politics.guns", "text": "From: gaucher@sam.cchem.berkeley.edu\nSubject: Re: Newspapers censoring gun advertisements\nOrganization: University of California, Berkeley\nLines: 33\nNNTP-Posting-Host: sam.cchem.berkeley.edu\nOriginator: gaucher@sam.cchem.berkeley.edu\n\nIn article <81930415084418/0005111312NA3EM@mcimail.com> 0005111312@mcimail.com (Peter Nesbitt) writes:\n\n>Recently while looking around in Traders Sporting Goods store, a very well\n>stocked firearms store, I discovered a printed document that was being \n>distributed by the good folks who work there.  Traders, BTW, is located in\n>San Leandro, CA.\n.\n.\n. \n>The newspapers have now decided to censor gun ads - which is why you no longer\n>see the ads that Traders, San Leandro, has run for many years.\n>\n>These ads were run for the law-abiding honest citizens who own firearms for\n>sporting use or self-protection.  They certainly have the right to do so, under\n>the Second Amendment Right to Bear Arms.\n \nAre you sure about this? I'm currently looking at a copy of last \nThursday's SF Chronicle and there is the typical one column Traders\nad on page C7 in the Sports section. Not only that, but there is\na part in the middle which rather prominently says \"WANTED: We pay\ncash for assault rifles and pistols.\". Granted, I haven't seen today's\npaper yet. But I'd be surprised if there wasn't a Traders ad in it.\nIt's probably worth it to write to the Chronicle (and other papers)\nanyway, because all their anti-gun editorials are disgusting.\n\nBy the way, let me put in a plug for Traders. I have shopped all\nover the SF Bay Area and I have never seen another store with lower\nprices. And their selection is amazing.\n\n---------------------------------------------------------------------\nLee Gaucher                         |   My opinions.\ngaucher@sam.cchem.berkeley.edu      |   No one else's.\n---------------------------------------------------------------------\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4423, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dgf1@ellis.uchicago.edu (david  farley)\nSubject: Re: Permanaent Swap File with DOS 6.0 dbldisk\nReply-To: dgf1@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 35\n\n(stuff deleted)\n>\n>Be that what it may, I would really suggest to everyone to take the\n>opportunity to go to these Technical Workshops.  They aren't actually\n>incredibly in-depth, but you do get a lot of material about bugs and\n>optimization straight from those in the know.  Besides that they offer\n>you HUGE discounts on software.  If I remember correctly, you could pick\n>up Word 2.0, Excel 4.0, or whatever their presentation program is for $130.\n>That is the full blown version, not an upgrade or educational version. You\n>could also pick up Microsoft Office for $500 or something like that.  Myself\n>I sprang for Word.\n\nThe value of these workshops aside, you ought to be able to buy full copies\nof all this software through your campus bookstore or software distributor\nat these rates.  I'm not aware that the educational version of Word or Excel\nis doped down in any way.\n\n>\n>Well, hope that was helpful to someone.  And besides that I hope someone\n>will go to a workshop and save a little money.\n>\n>And if anyone at Microsoft is reading this -- I really love your products.\n>I need a job once I graduate also, can we work something out?  ;-)\n>\n>Thanks,\n>Brent Casavant\n>bcasavan@mailhost.ecn.uoknor.edu\n>\n\n\n-- \nDavid Farley                           The University of Chicago Library\n312 702-3426                              1100 East 57th Street, JRL-210\ndgf1@midway.uchicago.edu                         Chicago, Illinois 60637\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4424, "properties": {"category": "misc.forsale", "text": "From: gt1706a@prism.gatech.EDU (Maureen L. Eagle)\nSubject: WANTED Brother P-Touch\nArticle-I.D.: hydra.91500\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 12\n\nAs it says, I'm interested in buying one of the little\nlabel-makers, and I can't afford a new one.  Anybody\ntired of theirs?\n\nE-mail Maureen gt1706a@prism.gatech.edu\n\n\n-- \nMaureen L. Eagle\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt1706a\nInternet: gt1706a@prism.gatech.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4425, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: Ban All Firearms !\nLines: 89\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <1993Apr14.184448.2331@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>In article <1993Apr14.183025.29688@sco.com>, allanh@sco.COM (Allan J. Heim) writes:\n>> \n>> papresco@undergrad.math.uwaterloo.ca (Paul Prescod):\n>> \n>>    >Drugs are banned, please tell me when this supply will dry up?\n>> \n>>    Drugs are easier to manufacture, easier to smuggle, easier to hide.\n>>    No comparison.\n>> \n>> Then let's use another example--alcoholic beverages.  Bottles of whiskey\n>> are larger, heavier, and more fragile than bags of drugs.  Barrels and\n>> kegs are larger and heavier still, and are difficult to manipulate.\n>> Yet, a lot of people managed to get very rich off of the smuggling of\n>> booze into this country during the years of Prohibition.  There was a\n>> demand, so an entire industry formed to supply it.\n>\n>\tIf alcohol were again banned today, it would be MUCH more\n>\tdifficult to manage a large-scale smuggling operation. \n>\tThe cops now rank just a narrow notch below the military\n>\tin communications, intelligence gathering and firepower.\n>\n>\tIn a similar vein, the amount of marijuana smuggled into\n>\tthis country has greatly decreased. This is because its\n>\tvalue-per-pound is very low when compared to cocaine or\n>\theroin. It's simply not worth the risk, it's uneconomical.\n>\tNow, most reefer is domestic. There is less pressure on\n>\tthe domestic producer (showy raids notwithstanding) and\n>\tthus it is economical. \n\n       Here's a question:  If most marijuana is domestic and\nproducing it here is economical, why would we expect it to be\nimported?\n\n>       Of note though ... domestic reefer\n>\tis now very strong, so a small volume goes a long way.\n>\tYou cannot make alcohol stronger than 200 proof - not a\n>\tgood dollar/pound deal. \n\n       Yet it was done.  Done quite successfully for a number of years.\n*Somebody* thought it was worth the risk.\n\n>\tFirearms tend to fall into this low dollar/pound area.\n>\tIt would not be economic to smuggle them in. \n\n       Your assumption is that this \"low\" dollar/pound area is\nsufficiently low as to make gun-running unprofitable.  On what\ndo you base this?  \n\n       And given that smuggling channels are already established,\nand given the economies of scale, would it really add significantly\nmore expense to start smuggling firearms, especially considering\ndoing so would be less hazardous (in terms of getting caught) than\ndrugs?\n\n>       All production\n>\twould have to be local. \n\n       Now *that* was a jump.  In any case, define \"local.\"  It's\na big country.\n \n>       There are not all that many people\n>\twho have both the skill AND motivation to assemble worthwhile\n>\tfirearms from scratch. High-ranking crime figures could\n>\tobtain imported Uzis and such, but the average person, and\n>\taverage thug, would be lucky to get a zip-gun - and would\n>\tpay through the nose for it. \n\n       Wow, you gotta love the speculation.\n\n       As I posted before, we import billions upon billions of raw\nores across the Mexican border.  Not only that but ships come in and\nout of U.S. harbors every day full stuff.  And customs doesn't even\nhave the extra advantage of being able to sniff them out.  \n\n       I'd be willing to wager that a shipload of handguns would be\nworth more than a shipload of raw ore, *and* you're virtually guaranteed\nto get it past customs, because they'd have to hand search every hold of\nevery ship which came through.\n\n       It's not simply a matter of how much money are they worth, but how\nmuch *more* money are they worth than other goods, based on the likelihood\nof being caught.  Less money than drugs, but also a safer thing to smuggle.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4426, "properties": {"category": "comp.graphics", "text": "From: wijkstra@fwi.uva.nl (Marcel Wijkstra (AIO))\nSubject: Re: BW hardcopy of colored window?\nKeywords: color hardcopy print\nNntp-Posting-Host: ic.fwi.uva.nl\nOrganization: FWI, University of Amsterdam\nLines: 38\n\nmars@ixos.de (Martin Stein) writes:\n\n#I use xwd/xpr (from the X11R5 dist.) and various programs of the\n#ppm-tools to print hardcopies of colored X windows. My problem is,\n\nI don't like xpr. It gives (at least, the X11R4 version does) louzy\noutput: the hardcopy looks very grainy to me.\nInstead, I use pnmtops. This takes full advantage PostScript, and\nlets the printer do the dirty job of dithering a (graylevel)\nimage to black and white dots.\n\nSo: if you have a PostScript printer, try:\n\txwdtopnm <xwdfile> |\t# convert to PPM\n\t[ppmtopgm |]\t\t# .. to graylevel for smaller file to print\n\tpnmtops -noturn |\t# .. to PostScript\n\tlpr\t\t\t# print\n\npnmtops Has several neat options, but use them with care:\nIf you want your image to be 4\" wide, use:\n\tpnmtops -noturn -scale 100 -width 4\n-noturn Prevents the image from being rotated (if it is wider than it\n\tis high)\n-width 4 Specifies the PAPER width (not the image width - see below)\n-scale 100 Is used because if the image is small, it may fit within a\n\twidth less than 4\", and will thus be printed smaller than 4\" wide.\n\tIf you first scale it up a lot, it will certainly not fit in 4\", and\n\twill be scaled down by pnmtops automatically to fit the specified\n\tpaper width. \n\tIn short: pnmtops will scale an image down to fit the paper size,\n\tbut it will not blow it up automatically.\n\nHope this helps.\nMarcel.\n-- \n X\t   Marcel Wijkstra   AIO   (wijkstra@fwi.uva.nl)\n|X|\t     Faculty of Mathematics and Computer Science\t\n X\t       University of Amsterdam   The Netherlands\n======Life stinks. Fortunately, I've got a cold.========\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4427, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: paladin@world.std.com (Thomas G Schlatter)\nSubject: Re: ?Order of files written when exitting windows?\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 31\n\nIn article <1993Apr22.001934.14921@ucsu.Colorado.EDU> hayesj@rintintin.Colorado.EDU (HAYES JAMES MICHAEL JR) writes:\n>\n>Trying to pin point a hardware problem with my disk, Maxtor\n>7213AT.  Group files get corrupted on a regular basis.\n>Only happens on this drive, D had only one corrupt file\n>in over a year and it was under the control of winword on C.\n>32-bit disk access and smartdrive are off.  Since installation\n>of dblspace problem has turned from an annoyance to a reason for\n>murder.\n\nAre you using Fastopen?  If you are, disable it.  We had a lot\nof problems with fastopen corrupting weird things (including\nthe Windows permanent swap file) when we were using it.\n\n>\n>Since the most frequent files corrupted are the *.grp files,\n>are these the last thing written to when exitting Windows?\n\nIndeed they are.  Advanced Personal Measure tells me they are accessed\njust before shell.dll\n\n>\n>Also, are there any pd/shareware utilities available that do\n>a more thorough job than dos 6, NDD 4.5, etc?  DOS 6 and \n>Win 3.1 compatable.\n\nI really like Spinrite and QA Plus\n\nTom\npaladin@world.std.com\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4428, "properties": {"category": "sci.crypt", "text": "From: rlward1@afterlife.ncsc.mil (Robert Ward)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: National Computer Security Center\nDistribution: na\nLines: 11\n\nIn article <bontchev.734981805@fbihh> bontchev@fbihh.informatik.uni-hamburg.de writes:\n>and since the US constitutions guarantees the right to every American\n>to bear arms, why is not every American entitled, as a matter of\n\nHave you read the applicable part of the Constitution and interpreted it IN \nCONTEXT?  If not, please do so before posting this misinterpretation again.\nIt refers to the right of the people to organize a militia, not for individuals \nto carry handguns, grenades, and assault rifles.  \n\nRobert L. Ward\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4429, "properties": {"category": "sci.space", "text": "From: matthew@phantom.gatech.edu (Matthew DeLuca)\nSubject: Re: Boom!  Whoosh......\nOrganization: The Dorsai Grey Captains\nLines: 13\nNNTP-Posting-Host: oit.gatech.edu\n\nIn article <1993Apr21.024423.29182@mnemosyne.cs.du.edu> wdwells@nyx.cs.du.edu (David \"Fuzzy\" Wells) writes:\n\n>I hear <insert favorite rumor here> that it will supposedly coincide\n>with the Atlanta Olympics. \n\nEven worse, the city of Atlanta has a proposal before it to rent space on this\norbiting billboard.  Considering the caliber of people running this city, \nthere's no telling what we're going to have leering down at us from orbit.\n-- \nMatthew DeLuca\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!matthew\nInternet: matthew@phantom.gatech.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4430, "properties": {"category": "misc.forsale", "text": "From: gt9605a@prism.gatech.EDU (Arlo James Aude)\nSubject: 2-18\" Altec Lansing Subwoofers FOR SALE $250\nOrganization: Georgia Institute of Technology\nLines: 7\n\nThe headline says it all!!!!!!!!\n\n-- \n               Oh god I hope it works, Oh God I hope it works\n       Damn, I should have know that RF stood for 'Rarely Functional'\nArlo              Georgia Institute of Technology, Atlanta Georgia, 30332\nAude              Internet: gt9605a@prism.gatech.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4431, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: leo@cae.wisc.edu (Leo Lim)\nSubject: FAST DOS'VGA and 1024x768x256 windows video card info needed.\nOrganization: College of Engineering, Univ. of Wisconsin--Madison\nLines: 24\n\nok, i have a 486dx50(ISA) w/ Diamond Stealth VRAM 1MB.\nI was really satisfied w/ its performance in windows.\nbut now more and more games needs higher frame rates in DOS' VGA,\nespecially this new Strike Commander. ;-)\nthis stealth vram can only give me 17.5 fps. ;-( (i use 3dbench).\nmy winmark was 6.35 million, i think.\n\nso right now i'm considering to replace it w/ a new card, which hopefully\ncan perform approx same w/ my current VRAM in windows and also\ncan perform DOS' VGA preferably >30fps.\n\ni also saw the 3dbench benchmark list from someone who compiled it\nin csipg and it looked that SpeedStar 24X and Orchid Prodesigner 2d-s\nware the fastest for non local bus motherboard.\nboth can give >30fps in DOS' VGA w/ 486dx2/66.\nDoes anyone have a winmarks for both of those cards above with the processor\ntype ? which one is the worthiest(not necessarily fastest)?\nany other card recommendation is welcomed too.\n\nalso, if possible, where can i get 'this' card for the cheapest? ;-)\n\nthanks in advance, folks!\n\n===Martin\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4432, "properties": {"category": "sci.space", "text": "From: jbatka@desire.wright.edu\nSubject: Re: Gamma Ray Bursters.  WHere  are they.\nOrganization:  Wright State University \nLines: 16\n\nI assume that can only be guessed at by the assumed energy of the\nevent and the 1/r^2 law.  So, if the 1/r^2 law is incorrect (assume\nsome unknown material [dark matter??] inhibits Gamma Ray propagation),\ncould it be possible that we are actually seeing much less energetic\nevents happening much closer to us?  The even distribution could\nbe caused by the characteristic propagation distance of gamma rays \nbeing shorter then 1/2 the thickness of the disk of the galaxy.\n\nJust some idle babbling,\n-- \n\n   Jim Batka  | Work Email:  BATKAJ@CCMAIL.DAYTON.SAIC.COM | Elvis is\n              | Home Email:  JBATKA@DESIRE.WRIGHT.EDU      |   DEAD!\n\n    64 years is 33,661,440 minutes ...\n             and a minute is a LONG time!  - Beatles:  _ Yellow Submarine_\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4433, "properties": {"category": "comp.sys.mac.hardware", "text": "Organization: Rohm and Haas Company\nFrom: <RBPJ4H@rohvm1.rohmhaas.com>\nSubject: **WANTED: 120M Hard Drive**\nLines: 5\n\nI am in the market for a 120M hard drive! I have a IIsi with 5/80 and I am\nalmost all filled up! Is anyone selling any HD's for the Mac for cheap? Where\ncan I get one through mail order and where is the best place to buy from for\nthe best prices? Is there anyone on the net or on this newsgroup that sells\nthem for wholesale or cheaper? Any info would be appreciated! Thanks!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4434, "properties": {"category": "sci.electronics", "text": "From: avm1993@sigma.tamu.edu (MAMISHEV, ALEXANDER VALENTINO)\nSubject: digital voltmeter - how does it work?\nOrganization: Texas A&M University, Academic Computing Services\nLines: 34\nDistribution: world\nNNTP-Posting-Host: sigma.tamu.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\n     Hello, \n\n   Let me introduce a problem:\n\n   When I measure a sinusoidal wave (voltage) with a digital voltmeter, using \nAC mode, my output is an rms value (a peak value over 2 squared). / Right? / \n   When I measure a square wave in the same mode (AC), my output is equal \nto a peak value, actually, to the upper flat boundary of the wave.\n   I assumed, that a digital voltmeter makes some kind of integration of the \ninput value, and divides it over the wave period. / Right?/\n   Now, I used it to measure the same  square wave as above, but distorted \nby high-frequency harmonics. Ideally, output should be the same, but...\nThe output value was only about 10% of the previous one! \n   Why? What is the nature of this output value? What does the voltmeter \nactually measure? And what does it show?  \n\n   Related question (less important to me):\n   What are advantages and disadvantages of digital voltmeters to compare with \nanalog ones? \n\n   Thank you for your attention, you could mail me your opinion at\navm1993@zeus.tamu.edu or open a discussion here. I would appreciate either \nway.\n\n\nAlexander V. Mamishev\n\n____________________________________________________________________________\nPower System Automation Laboratory    <>   phone office (409) 845-4623    \nDepartment of Electrical Engineering  <>   phone home   (409) 846-5850\nTexas A&M University                  <>   fax   (409) 862-2282\nCollege Station, TX 77843, USA        <>   Internet: avm1993@zeus.tamu.edu\n----------------------------------------------------------------------------\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4435, "properties": {"category": "rec.sport.baseball", "text": "From: jbragg@morgan.ucs.mun.ca (James Bragg)\nSubject: Re: NL Stats\nOrganization: Memorial University of Newfoundland\nLines: 9\n\n\nDoug, those stats are great!  they help immensely.  I tried to E-Mail\nyou with some comments on them but my mail server does not recognize\nyour address.  Could you E-Mail me with some info on how to get E-Mail\nto you?  Thanks!\n\nJim Bragg\n(jbragg@morgan.ucs.mun.ca)\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4436, "properties": {"category": "sci.space", "text": "From: schumach@convex.com (Richard A. Schumacher)\nSubject: Re: space news from Feb 1 AW&ST\nNntp-Posting-Host: starman.convex.com\nOrganization: CONVEX Computer Corporation, Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 10\n\n\n>Marshall is investigating a small but odd pressure rise in one SRB\n>during the Jan 12 Endeavour launch.  It lasted only three seconds and\n>the thrust difference between the two SRBs was not enough to cause\n>nozzle gimballing.  The SRB casing shows no abnormalities.\n\nIs this the one that had the {wrench|pliers} found inside after\nrecovery?\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4437, "properties": {"category": "rec.sport.baseball", "text": "From: pcaster@mizar.usc.edu (Dodger)\nSubject: Gross Grosses Out Dodger Fans AGAIN.\nOrganization: University of Southern California, Los Angeles, CA\nLines: 60\nNNTP-Posting-Host: mizar.usc.edu\n\nWent to the Dodgers game tonight -- it was cap night.\n \nAstacio pitched ok, but had control trouble all night.\nIn the first, he walked a batter, balked him to second, then\na single scored the run, with the batter taking second on the\nthrow home.  Another single made the score 2-0 Cards.\n \nLasorda tried a new line up featuring Butler, Reed, And Piazza\nbatting third!  Darryl and Eric were benched in favor of Snyder\nand Webster.\n \nPiazza homered in the first to make the score 2-1 Cards.\nThe Dodgers tied the game in the second on a two out single\nby Offerman.\n \nBy the fourth inning, Astacio had already made about 80 pitches, but\nthe score was still 2-2.  The Dodger defense made SEVERAL impressive\nplays.  Piazza looked GREAT behind the plate, gunning down a runner\ntrying to steal second, throwing a runner out at first who\nhad strayed a bit from first base, etc.\n \nKarros also made a spectacular play, keeping a ball from going into\nthe outfield.  The runner on first was so sure that ball was going\nthrough, he just kept running past second.  Karros got up and threw\nto third and EASILY got the runner at third.\n \nMy heart sank in the 7th when Gross got up to warm up in the bullpen.\n \nAstacio was lifted for a pinch hitter, and when Gross entered the game\nwith the score still 2-2, Dodger fans just KNEW it was over.\n \nGross was relieving because he stunk on Tuesday, pitching just 2 1/3\ninnings, forcing Lasorda to use much of his bullpen.  The 15 inning\ngame had the same effect the next night...so only Gross was fresh\ngiven his light work out Tuesday.\n \nGross lived up to his name.  He walked the first batter, gave up a hit\nto the second, and walked the bases loaded.  After a grounder resulted\nin a force at home, Zeile lifted a scoring fly ball to make it\n3-2 Cards.  Gross paid little attention to the runners, and the next\nthing you knew, the Cards had stolen a fourth run.  The runner on\nfirst was eventually tagged out in the run down, but the 4th run had\nscored long before that.\n \nMeanwhile, the Dodgers mounted little offense after the second inning.\nLee Smith pitched the ninth.  He had little trouble getting Karros\nand Wallach (does anyone have trouble with Wallach these days?).\nCory Snyder collected his first hit as a Dodger, a single, but\nthat was all the offense the Dodgers could mount.  Smith got his\nthird straight save against the Dodgers and all I got was my\nfree Dodger cap and a good look at Piazza.  If Piazza keeps this\nup all year, he will be a strong candidate for rookie of the year\nhonors.  Though its really early, Karros is already showing signs\nof a sophomore jinx year.\n \nThe final score...Cardinals 4 runs on 7 hits.\nDodgers 2 runs on 7 hits.\n \nDodger\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4438, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gutierrezj@elcsci.com\nSubject: Help!! My Gateway freezes up\nOrganization: Electro Scientific Industries, Portland OR\nLines: 25\n\nHelp!!!!!!!!!!!!!!!!!!!!! My computer from Gateway is freezing up on me.\nGateway tech support couldn't help me. They want more specifics on when\nit freezes up.  I DID!  Anyway, here it is.  If the keyboard is left idle\nin Dos for more than 15 minutes, I can type on the command line, but as \nsoon as I hit a carraige return, the computer locks up.  This will happen\nalmost every time, whether I've just booted up, reset, or finished using a\ndos program.  Everything works fine if I don't let it sit.  Windows is a\ndifferent story.  If I let the machine sit while in windows for 15 minutes\nor more, it does not freeze up.  However,  I do get frequent application\nerrors that kick me out of an application unexpectedly, losing my work.\nI just don't know if this is a hardware or software problem.  Any help\nin diagnosis or things to try, would be greatly appreciated.  \n\nP.S.  I do not run any TSRs (except smartdrive) and QAplus diagnostics \nsays everything is good.\n\n\nSystem is:  486SX-33\n            15\" Crystalscan Gateway Monitor\n            VLB-ATI ultra pro (using mach32 driver build 55)\n            Winchester 170MB HD\n            Microsoft mouse\nThanks,\n\nEl Guapo\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4439, "properties": {"category": "comp.windows.x", "text": "From: altmann@PLEURO.SOAR.CS.CMU.EDU (Erik Altmann)\nSubject: Fwd: PROGRESSIVES HAPPY HOUR\nOriginal-To: bb-general@CS.CMU.EDU\nOrganization: School of Computer Science, Carnegie Mellon\nDistribution: cmu\nLines: 21\n\n\n\n--------- Forwarding begins here ---------\n\nDate: Wed,  7 Apr 1993 15:39:55 -0400 (EDT)\nFrom: Women's Center <women+@andrew.cmu.edu>\nTo: +dist+/afs/andrew.cmu.edu/usr0/women/dlists/happyhour-announce.dl@andrew.cmu.edu\nSubject: PROGRESSIVES HAPPY HOUR\n\nEnjoy good food and interesting company at the Progressives Happy Hour,\nThursday 8 April, starting at 5:30pm at the Women's Center (located next\nto the laundromat in the Margaret Morrison Plaza).  Kosher for Passover\nfood will be served.  All are welcome.\n\n(Good things to drink will be there, but paper cups won't.  Please  be\nprogressive and bring a cup or mug with you.)\n\nCo-sponsored by the Student Government President and funded by the\nstudent activites fee.\n\n----------- End of forwarding -----------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4440, "properties": {"category": "comp.graphics", "text": "From: oehler@yar.cs.wisc.edu (Wonko the Sane)\nSubject: 48-bit graphics...\nKeywords: 48-bit alpha channel IMAGE\nOrganization: University of Wisconsin, Madison -- Computer Sciences Dept.\nLines: 15\n\n\n\tI was recently talking to a possible employer ( mine! :-) ) and he made a reference to a\n48-bit graphics computer/image processing system.  I seem to remember it being called IMAGE or\nsomething akin to that.  Anyway, he claimed it had 48-bit color + a 12-bit alpha channel.  That's\n60 bits of info--what could that possibly be for?  Specifically the 48-bit color?  That's 280\ntrillion colors, many more than the human eye can resolve.  Is this an anti-aliasing thing?  Or\nis this just some magic number to make it work better with a certain processor.\n\n\tAlso, to settle a bet with my roommate, what are SGI's flagship products?  I know of\nIris, Indigo, and Crimson, but what are the other ones, and which is their top-of-the-line?\n(sadly, I have access to none of them.  Just a DEC 5000/25.  Sigh.)\n\nEric Oehler\noehler@picard.cs.wisc.edu\n \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.214+0000", "event": "documents", "entityId": 4441, "properties": {"category": "comp.windows.x", "text": "From: dick@ahold.nl (Dick Heijne)\nSubject: Is TEK quitting Xterm activities ???\nOrganization: Ahold NV, Zaandam, Netherlands, EEC\nLines: 13\n\nI caught up a mailmessage from an NCD guy, who stated that Tek\nmight be quitting it's X terminal activities and would be looking\nfor an interested buyer.\nSince the source of this message is NCD, THIS MIGHT ONLY BE NASTY\nGOSSIP !!!\nCan anyone say more about this??\n\nDick.\n-- \n+==============================Ahold NV===============================+\n| Room 146 , Ankersmidplein 2, 1506 CK Zaandam,  The Netherlands, EEC |\n| Dick.Heijne@ccsds.ahold.nl - Tel: +31 75 592151, Fax: +31 75 313030 |\n+=====================================================================+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4442, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: TV Schedule for Next Week\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nDistribution: na\nLines: 33\n\njpc@philabs.philips.com (John P. Curcio) writes:\n>mmb@lamar.ColoState.EDU (Michael Burger) writes:\n>\n>|> United States TV Schedule:\n>|> April 18   Devils/Islanders at Pittsburgh   1 EST  ABC\n>|> April 18   St. Louis at Chicago             12 CDT ABC\n>|> April 18   Los Angeles at Calgary           12 PDT ABC\n\nOkay, here's the down side of the ESPN deal: no additional coverage.\nWith a split contract, SCA could have at least gotten at leftovers\nlike Canucks-Jets, Caps-whoever and Red Wings-Leafs (or whoever else\nis playing).\n\n>|> April 20   Devils/Islanders at Pittsburgh   7:30   ESPN\n>|> April 22   TBA                              7:30   ESPN\n>|> April 24   TBA                              7:30   ESPN\n>\n>Does anyone know if there will be alternate games in cities where\n>local broadcast rights are being protected?\n\nFor our area (Islanders-Devils), it's likely to be the Bruins, since\nthe other Adams series is Montreal-Quebec.  I'd prefer the latter\nmyself ...\n\nI'm under the impression that the ABC deal overrides the local deals,\nbut if St. Louis at Chicago pops up we'll know ...\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4443, "properties": {"category": "comp.graphics", "text": "From: d91-hes@tekn.hj.se (STEFAN HERMANSSON)\nSubject: re: Vesa on the Speedstar 24\nOrganization: H|gskolan i J|nk|ping\nLines: 8\nNntp-Posting-Host: pc9_b109.et.hj.se\n\n\n\n\tJust posting to John Cormack.\nI wanted to tell you that there is a \"slight\" difference between \nSpeedstar 24 and Speedstar 24X\n\n\n\t\t\t\t\t\t/Stefan\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4444, "properties": {"category": "sci.med", "text": "From: smithmc@mentor.cc.purdue.edu (Lost Boy)\nSubject: Re: Can men get yeast infections?\nOrganization: Purdue University Computing Center\nDistribution: na\nLines: 25\n\nIn article <noringC5Fnx2.2v2@netcom.com> noring@netcom.com (Jon Noring) writes:\n>In article Tammy.Vandenboom@launchpad.unc.edu (Tammy Vandenboom) writes:\n>\n>>Here's a potentially stupid question to possibly the wrong news group, but. .\n>>\n>>Can men get yeast infections? Spread them? What kind of symptoms?\n>>Similar as women's?  I have a yeast infection and my husband (who is a\n>>natural paranoid on a good day) is sure he's gonna catch it and keeps\n>>asking me what it's like.  I'm not sure what his symptoms would be. . \n>\n>The answer is yes and no.  I'm sure others on sci.med can expand on this.\n>\n>Jon\n\nI know from personal experience that men CAN get yeast infections. I \nget rather nasty ones from time to time, mostly in the area of the\nscrotum and the base of the penis. They're nowhere near as dangerous\nfor me as for many women, but goddamn does it hurt in the summertime!\nEven in the wintertime, when I sweat I get really uncomfy down there. The\nbest thing I can do to keep it under control is keep my weight down and\nkeep cool down there. Shorts in 60 degree weather, that kind of thing. And\nof course some occasional sun. \n\nLost Boy\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4445, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Is it good that Jesus died?\nOrganization: Cookamunga Tourist Bureau\nLines: 17\n\nIn article <1993Apr17.010734.23670@organpipe.uug.arizona.edu>,\nbrian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615) wrote:\n> The truth is, is that it is not some sort of magic spell.  The truth\n> is is that you do not understand it, and enjoy not understanding it.\n\nI'm curious about this statement, is it a known understanding amongst\nChristian believers that people who don't understand the Christian\ndoctrines are enjoying this state? I come from a background with \na heavy Christian teaching (Lutheran church), and consider myself\nknowledgeable with the basic understandings of Christianity. At the \nsame time I'm *not* proud of things I don't understand or know of at\nthis point of time. Ignorance is not bliss!\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4446, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gonzaled@ucsu.Colorado.EDU (LGV/MC)\nSubject: Re: How can I use the mouse in NON-Windows applications under MS-WINDOWS ?\nOrganization: University of Colorado, Boulder\nLines: 31\n\nkasajian@netcom.com (Kenneth Kasajian) writes:\n\n>wnkretz@ikesg1.energietechnik.uni-stuttgart.de (Oliver Kretzschmar) writes:\n\n\n\n>>   Hey,\n\n>>   could somebody tell me, how it is possible to work with the mouse\n>>   in a NON-Windows application, which runs in an window. We use\n>>   MS-WINDOWS 3.1 and have CLIPPER applications. Exists there any\n>>   routines or something else ? Please mail me your informations.\n\n>>   Thanks for your efforts,\n\n>>     Oliver\n>>-- \n>> NAME : O.Kretzschmar                      Inst.IKE / University Stuttgart\n>> PHONE: +49 711 685 2130                           Pfaffenwaldring 31\n>> FAX  : +49 711 685 2010                            7000 Stuttgart 80\n>> EMAIL: wnkretz@ikesg1.energietechnik.uni-stuttgart.de\n\n>Very simple.  You have to have the MOUSE.COM or MOUSE.SYS loaded in DOS\n>before you run Windows.  Note that you don't need to have these files loaded\n>to use the mouse in Windows.\n\nOne addition to this... I don't know if it applies to everybody.  For my\n(Microsoft 400dpi) mouse to work with windowed DOS apps, I had to use the\ndriver that came with Windows (Version 8.20).  8.1 didn't allow me to do\nit for some reason.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4447, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: RE: need shading program example in X\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 43\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nIn article <930421105641.100043a@TGV.COM>, mahan@TGV.COM (Patrick L. Mahan) writes:\n|> \n|> #\n|> #Do anyone know about any shading program based on Xlib in the public domain?\n|> #I need an example about how to allocate correct colormaps for the program.\n|> #\n|> #Appreciate the help.\n|> #\n|> \n|> I don't know if this might help, but I've just started playing with a program\n|> called POVRay (Persistance of Vision Raytracer) that also displays its output\n|> via X Windows.  It does a fairly good job of allocating the colormap on my\n|> Psuedo-Color 8-plane display.  I got the source from from a site in Canda.\n|> The person I retrieved them from was David Buck (dbuck@ccs.carleton.ca).\n|> \n\nI think the original post was searching for existing implementations of\nf.i. Gouroud-shading of triangles. This is fairly complex to do with plain\nX. Simpler shading models are implemented already, f.i. in x3d (ask archie\nwhere to get the latest version).\nFor Gouroud, a fast implementation will be possible utilizing some extension\nonly, either MIT-SHM to do the shade in an image and fast update the window\nwith it, or PEX/OpenGL which should be able to shade themselves. The portable\n'vanilla X' way would be to shade in a normal XImage and use XPutImage(),\nwhat would be good enough to do static things as f.i. fractal landscapes\nor such stuff.\n\nTo speak about POVRay, the X previewer that comes with the original source\npackage is not that good, especially in speed, protocol-friendlyness and\nICCCM compliance. Have a look on x256q, my own preview code. It is on\n\n141.76.1.11:pub/gfx/ray/misc/x256q/\n\nThe README states the points where it is better than xwindow.c from\nPOVRay 1.0\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4448, "properties": {"category": "soc.religion.christian", "text": "From: shellgate!llo@uu4.psi.com (Larry L. Overacker)\nSubject: Re: SSPX schism ?\nOrganization: Shell Oil\nLines: 99\n\nIn article <Apr.17.01.11.35.1993.2284@geneva.rutgers.edu> jhpb@sarto.budd-lake.nj.us (Joseph H. Buehler) writes:\n>\n>[Descriptions of true and false obedience]\n>\n>Obedience is not solely a matter of compliance/refusal.  The nature of\n>the commands must also be taken into account; it is not enough to\n>consider someone's compliance or refusal and then say whether they are\n>\"obedient\" or \"disobedient\".  You also have to take into consideration\n>whether the commands are good or bad.\n\nYou ask where we are.  I would echo that question.  I'm not trying to be\ncontentious.  But assuming that the Pope has universal jurisdiction\nand authority, what authority do you rely upon for your decisions?\nWhat prevents me from choosing ANY doctrine I like and saying that\nPapal disagreement is an error that will be resolved in time?\nThis is especially true, since Councils of Bishops have basically\nstood by the Pope.\n\nIt appears that much of what lies at the heart of this matter is\ndisagreements over what is tradition and Tradition, and also over\nauthority and discipline.  \n\nMy question to the supporters of SSPX is this:\n\n  Is there ANY way that your positions with respect to church reforms\n  could change and be conformed to those of the Pope? (assuming that\n  the Pope's position does not change and that the leaders of SSPX\n  don't jointly make such  choice.)\n\nIf not, this appears to be claiming infallible teaching authority.\nIf I adopt the view that \"I'm NOT wrong, I CAN'T be wrong, and\nthere's NO WAY I'll change my mind, YOU must change yours\", that\nI've either left the Catholic Church or it has left me.\n\nThe Orthodox Church does not recognize papal authority/jurisdiction\nviewing authority as present in each bishop, and in Ecumenical\nCouncils.  We regard the subsequent development of the doctrines \nregarding papal authority and jurisdiction to be a separation of\nthe Bishop of Rome from the Orthodox church.  Without going into\nthe merits of the Great Schism, at least the Orthodox agree that\na split occurred, and don't paly what appear to be semantic games\nlike \"He's the Pope, but we don't recognize that what he does\nis effective...\".  Words aside, it appears to be a de facto split.\n\n>So where are we?  Are we in another Arian heresy, complete with weak\n>Popes?  Or are the SSPX priests modern Martin Luthers?  Well, the only\n>way to answer that is to examine who is saying what, and what the\n>traditional teaching of the Church is.\n\nWe sould argue from now until the Second Coming about what the \"real\"\ntraditional teaching of the Church is.  If this were a simple matter\nEast and West would not have been separated for over 900 years.\n \n>Many Catholics will decide to side with the Pope.  There is some\n>soundness in this, because the Papacy is infallible, so eventually\n>some Pope *will* straighten all this out.\n\nI thought that the teaching magisterieum of the church did not allow\nerror in teachings regarding faith and morals even in the short term.`\nI may be wrong here, I'm not Roman Catholic. :-)\n\nWhat would be the effect of a Pope making an ex cathedra statement\nregarding the SSPX situation?  Would it be honored?  If not, how\ndo you get around the formal doctrine of infallibility?\nAgain, I'm not trying to be contentions, I'm trying to understand.\nSince I'm Orthodox, I've got no real vested interest in the outcome,\none way or the other.\n\n>Schism is a superset of disobedience (refusal to obey a legitimate\n>command).  All schismatics are disobedient.  But it's a superset, so\n>it doesn't work the other way around: not all disobeyers are\n>schismatics.  The mere fact that the SSPX priests don't comply with\n>the Holy Father's desires doesn't make them schismatics.\n\nIt does if the command was legitimate.  SSPX does not view the\nPope's commands as legitimate.  Why?  This is a VERY slippery slope.\n \n>                                      But my problem with this is\n>this: according to the traditional theology of Holy Orders, episcopal\n>consecration does not confer jurisdiction.  It only confers the power\n>of Order: the ability to confect the Sacraments.  \n\nTrue enough.\n\n>                                                  Jurisdiction must be\n>conferred by someone else with the power to confer it (such as the\n>Pope).  The Society bishops, knowing the traditional theology quite\n>well, take great pains to avoid any pretence of jurisdiction over\n>anyone.  They simply confer those Sacraments that require a bishop.\n\nOne could argue that they are establishing a non-geographic jurisdiction.\nI don't know if that's even a concept or problem in Catholic circles.\n \nLarry Overacker (llo@shell.com)\n-- \n-------\nLawrence Overacker\nShell Oil Company, Information Center    Houston, TX            (713) 245-2965\nllo@shell.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4449, "properties": {"category": "comp.windows.x", "text": "From: gcw@met.ed.ac.uk (Gordon Watson)\nSubject: How can get a pixel value from a Drawable ??\nKeywords: lots\nReply-To: gcw@met.ed.ac.uk\nDistribution: world\nOrganization: Meteorology Department, Edinburgh University, Scotland\nLines: 21\n\nHow can get a pixel value from a Drawable, without having to copy it to the client\nas an XImage and use XGetPixel ?? - I want to select pixels from an animating\nwindow on the server, without having to copy the whole lot back to my client.\n(X11R5).\n\nAny pointers appreciated,\n\nGordon.\n\n\n=====================================================================\n  Gordon C. Watson,                                    _------_      \n                                                      {  {     }     \n  Meteorology Department, Edinburgh University,      (__________)    \n                          Scotland.                   /  /  /  /     \n  JANET - G.C.Watson@uk.ac.ed   INTERNET - gcw@met.ed.ac.uk  \n=====================================================================\n\n\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4450, "properties": {"category": "comp.windows.x", "text": "From: graham@sparc1.ottawa.jade.COM (Jay Graham)\nSubject: Mix GL with X (Xlib,Xt,mwm)\nOrganization: The Internet\nLines: 38\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\n\nI am developing an X (Xt,Xm) application that will include a graphics window\nof some sort with moving symbols among other things.  A pure X application\ncould be implemented with Motif widgets, one of which would be an \nXmDrawingArea for drawing with Xlib.  But I would like to take advantage of\nthe Graphics Library (GL) available on our IBM RS/6000 (SGI's GL i believe).\n\nIs it possible to mix X and GL in one application program?\nCan I use GL subroutines in an XmDrawingArea or in an X window opened by me\nwith XOpenWindow?\n\nI have never used GL before, but the doc on GL winopen() says that the first\ntime winopen() is called it opens a connection to the server.   Also, most of\nthe GL calls do not require a Display or GC, unlike most X calls.  From this\ninitial information it appears that X and GL cannot be mixed easily.   Is this\ntrue?\n\nDoes PEX (graPHIGS?) have the same functionality of GL?\n\n\nEnvironment:\n     AIXwindows X11R4\n     Motif 1.1\n     GL is available\n     AIX Sys V 3.2\n     IBM RS/6000 360\n\n\nThanks in advance.\n\nJay Graham\nJade Simulations International Corp.\n14 Colonnade Road, Suite 150\nNepean, Ontario, Canada\n613-225-5900 x226\n\ngraham@ottawa.jade.com\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4451, "properties": {"category": "alt.atheism", "text": "Subject: Re: A visit from the Jehovah's Witnesses (good grief!)\nFrom: kmr4@po.CWRU.edu (Keith M. Ryan)\nOrganization: Case Western Reserve University\nNNTP-Posting-Host: b64635.student.cwru.edu\nLines: 14\n\nIn article <66018@mimsy.umd.edu> mangoe@cs.umd.edu (Charley Wingate) writes:\n\n>The amount of energy being spent on ONE LOUSY SYLLOGISM says volumes for the\n>true position of reason in this group.\n\n\tI agree, we spend too much energy on the nonexistance of God.\n\n--\n\n\n       \"Satan and the Angels do not have freewill.  \n        They do what god tells them to do. \"\n\n        S.N. Mozumder (snm6394@ultb.isc.rit.edu) \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4452, "properties": {"category": "talk.religion.misc", "text": "From: bskendig@netcom.com (Brian Kendig)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: Starfleet Headquarters: San Francisco\nLines: 33\n\nbrian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615) writes:\n>\n>Be warned, it is not my job to convert you.  That is the job of\n>the Holy Spirit.  And I, frankly, make a lousy one.  I am only\n>here to testify.  Your conversion is between you and God.  I am\n>\"out of the loop\".  If you decide to follow Jesus, of which I\n>indeed would be estatic, then all the glory be to God.\n\nI've asked your god several times with all my heart to come to me.  I\nreally wish I could believe in him, 'cos no matter how much confidence\nI build up on my own, the universe *is* a big place, and it would be\nso nice to know I have someone watching over me in it...\n\nI've gone into this with an open mind.  I've layed my beliefs aside\nfrom time to time when I've had doubt, and I've prayed to see what\ngood that would do.  I don't see what more I can do to open myself to\nyour god, short of just deciding to believe for no good reason.  And\nif I decide to believe for no good reason, why not believe in some\nother god?  Zeus seems like a pretty cool candidate...\n\nAll I know is that in all my searching, even though I've set aside my\npride and decided that I want to know the truth no matter how\ndifficult it may be to accept, I have never had any encounter with any\ndeity, Christian or otherwise.\n\nPlease tell me what more I can do while still remaining true to myself.\n\n-- \n_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n_/_/                            n'etre fait comme aucun de ceux qui existent.\n  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n /    is that it ends.                                           -- Rousseau\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4453, "properties": {"category": "comp.windows.x", "text": "From: neal@grover.stat.washington.edu (Phil Neal)\nSubject: Wierd xdm behavior\nOrganization: U. Washington Dept. of Statistics\nLines: 48\nDistribution: world\nNNTP-Posting-Host: grover.stat.washington.edu\nOriginator: neal@grover.stat.washington.edu\n\nDear sun and windows people,\n\nI am running sun workstations with SunOs 4.1.1 and \nvanilla X11 R5. I have a bunch of xterminals as well.\n\nToday I had my xdm fail. At about 9:30\nit was impossible to login to a host from an xterminal.\nThe message was the \"xdm too many retransmissions\".\nIn my xdm-errors file I had the following entries:\n\n\n  >error (pid 7423): Server for display :0 terminated unexpectedly:\n  >256\n  >error (pid 7927): WARNING: keyboard on display :0 could not be\n  >secured\n  >error (pid 7423): Server for display :0 terminated unexpectedly:\n  >\n  >I also had:\n  >\n  >error (pid 7457): WARNING: keyboard on display :0 could not be\n  >secured\n  >error (pid 7423): Server for display :0 terminated unexpectedly:\n  >256\n  >error (pid 7462): WARNING: keyboard on display :0 could not be\n  >secured\n  >error (pid 7423): Server for display :0 terminated unexpectedly:\n  >256\n\nAlso, at the console, the login box would come up for\nabout 2 seconds and then\nit would go away. It would do this continuously.\n\nI could login from another workstation to the hosts in question,\nhowever, I could not login on the console.\n\nI tried killing xdm and restarting it but that didn't help.\nI finally rebooted all the hosts. (Which hurts when done in the\nmiddle of the day).\n\nAny help would be appreciated.\n\nThanks,\nPhil \n-- \nPhil Neal, Systems Programmer, Statistics Department GN-22\nUniversity of Washington, Seattle, Wa. 98195 USA  | 206-685-1627\n----------------------------------------------------------------\n\"Look, another bit!\" -- Repo Man (the movie)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4454, "properties": {"category": "sci.crypt", "text": "From: geoff@ficus.cs.ucla.edu (Geoffrey Kuenning)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: ogmore.cs.ucla.edu\nOrganization: UCLA, Computer Science Department\nDistribution: na\nLines: 18\n\nIn article <2073@rwing.UUCP> pat@rwing.UUCP (Pat Myrto) writes:\n\n> fishing expeditions without the target's knowlege.  Don't give up the\n> right to be safe from that - that should be non-negotiable, and Clinton\n> and Co. know it (which is probably why they quietly developed this thing,\n> figuring if they get it this far, they can ram it on through).\n\nIt always amazes me how quick people are to blame whatever\nadministration is current for things they couldn't possibly have\ninitiated.  This chip had to take *years* to develop, yet already\nwe're claiming that the Clinton administration sneaked it in on us.\nBullshit.  The *Bush* administration and the career Gestapo were\nresponsible for this horror, and the careerists presented it to the\nnew presidency as a fait accompli.  That doesn't excuse Clinton and\nGore from criticism for being so stupid as to go for it, but let's lay\nthe body at the proper door to start with.\n-- \n\tGeoff Kuenning\tgeoff@maui.cs.ucla.edu\tgeoff@ITcorp.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4455, "properties": {"category": "talk.politics.guns", "text": "From: cmort@NCoast.ORG (Christopher Morton)\nSubject: Re: Guns GONE. Good Riddance !\nReply-To: cmort@ncoast.org (Christopher Morton)\nOrganization: North Coast Public Access *NIX, Cleveland, OH\nLines: 28\n\nAs quoted from <1993Apr18.000152.2339@gnv.ifas.ufl.edu> by jrm@gnv.ifas.ufl.edu:\n\n> The press is against you, the public (the voting public) is against\n> you, the flow of history is against you ... this is it !\n\nKind of sounds like Plessy v. Ferguson, huh?  Of course as in that case,\nthings change, huh?\n\n> Too fucking bad. You have gone the way of the KKK. Violent solutions\n> are passe'. Avoid situations which encourage criminals. Then you will\n> be as safe as possible. Such as it is ...\n> \nNo, if your little fantasy comes to pass, the country will have gone\nTOWARD the KKK.  You're of course being a little disengenuous.  Violent\nsolutions are never passe FOR THE GOVERNMENT and CRIMINALS (who frequently)\ncannot be distinguished).\n\n\"Avoid situations which encourage criminals\"?  You mean don't be a woman?\nDon't be Black?  Don't be gay?  I'm quite certain that having a surfeit of\nunarmed victims will discourage your beloved KKK from engaging in \"violent\nsolutions\"....\n\n\n-- \n===================================================================\n\"You're like a bunch of over-educated, New York jewish ACLU lawyers\nfighting to eliminate school prayer from the public schools in\nArkansas\" - Holly Silva\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4456, "properties": {"category": "sci.med", "text": "From: bennett@kuhub.cc.ukans.edu\nSubject: Smoker's Lungs\nOrganization: University of Kansas Academic Computing Services\nLines: 3\n\nHow long does it take a smoker's lungs to clear of the tar after quitting? \nDoes your chances of getting lung cancer decrease quickly or does it take\na considerable amount of time for that to happen?\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4457, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: HST Servicing Mission Scheduled for 11 Days\nOrganization: Jet Propulsion Laboratory\nLines: 88\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: HST\nNews-Software: VAX/VMS VNEWS 1.41    \n\nEd Campion\nHeadquarters, Washington, D.C.                             April 23, 1993\n(Phone:  202/358-1780)\n\nKyle Herring\nJohnson Space Center, Houston\n(Phone:  713/483-5111)\n\nRELEASE:  93-76\n\nHUBBLE TELESCOPE SERVICING MISSION SCHEDULED FOR ELEVEN DAYS\n\n\tThe December flight of Endeavour on Space Shuttle mission STS-61 to\nservice the Hubble Space Telescope (HST) has been scheduled as an 11 day\nmission designed to accommodate a record five spacewalks with the capability\nfor an additional two, if needed.\n\n\tThe decision to schedule five extravehicular activities, or EVAs, was\nreached following extensive evaluations of underwater training, maneuver times\nrequired using the Shuttle's robot arm based on software simulations and actual\nEVA tasks on previous missions.\n\n\t\"Basically what we've done by going to five EVAs rather than three is\nto repackage our margin so that we have the capability to respond to the\ndynamics, or unknowns, of spacewalks,\" Mission Director Randy Brinkley said.\n\"It improves the probabilities for mission success while providing added\nflexibility and adaptability for reacting to real-time situations.\"\n\n\tIn laying out the specific tasks to be completed on each of the\nspacewalks, officials have determined that changing out the gyros, solar arrays\nand the Wide Field/Planetary Camera (WF/PC) and installing the Corrective\nOptics Space Telescope Axial Replacement (COSTAR) are priority objectives\nduring the mission.\n\n\t\"When we looked at accomplishing all of the tasks, highest through\nlowest priority, and recognizing that the major tasks -- gyros, solar arrays,\nWF/PC and COSTAR -- would consume most of the time set aside for each\nspacewalk, five EVAs were deemed appropriate,\" said Milt Heflin, Lead Flight\nDirector for the mission.\n\n\tWhile the five spacewalks will be unprecedented, the use of two\nalternating spacewalk teams will alleviate placing more stress on the crew than\nprevious missions requiring two, three or four EVAs.\n\n\t\"We have paid close attention to lessons learned during previous\nspacewalks and factored these into our timeline estimates for five EVAs,\"\nHeflin said.  \"In planning for all Space Shuttle missions, it is necessary to\nformulate a work schedule that represents as realistic a timeline as possible\nto accomplish the mission objectives.\"\n\n\tPlanning currently calls for at least five water tank training sessions\nthat include support from the Mission Control Center, called joint integrated\nsimulations, lasting between 10 and 36 hours.  In addition, many stand alone\nunderwater training \"runs\" will practice individual tasks in each spacewalk.\n\n\tVarious refinements to the specific tasks on each spacewalk will be\nmade based on actual training experience during the months prior to the\nmission.  Also, lessons learned from other spacewalks leading up to the flight\nwill be valuable in assisting the STS-61 crew in its training techniques.\n\n\tEndeavour's June flight and Discovery's July mission both will include\nspacewalks to evaluate some of the unique tools to be used on the HST mission.\nThe evaluations will help in better understanding the differences between the\nactual weightlessness of space and the ground training in the water tanks at\nthe Johnson Space Center, Houston, and the Marshall Space Flight Center,\nHuntsville, Ala.\n\n\tAlso, the inflight spacewalking experiences will assist in gaining\nfurther insight into the time required for the various tasks and expand the\nexperience levels among the astronaut corps, the flight controllers and\ntrainers.\n\n\tDesigned to be serviced by a Space Shuttle crew, Hubble was built with\ngrapple fixtures and handholds to assist in the capture and repair procedures.\n\n\tThe telescope was launched aboard Discovery in April 1990.  At that\ntime the NASA mixed fleet manifest showed the first revisit mission to HST in\n1993 to change out science instruments and make any repairs that may have\nbecome necessary.\n\n- end -\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4458, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Antifreeze/coolant\nOrganization: NEC Systems Laboratory, Inc.\nLines: 12\n\n\tFor those of you with motorcycles of the liquid-cooled persuasion,\nwhat brand of coolant do you use and why?  I am looking for aluminum-safe\ncoolant, preferably phosphate-free, and preferably cheaper than $13/gallon.\n(Can you believe it:  the Kaw dealer wants $4.95 a QUART for the Official\nBlessed Holy Kawasaki Coolant!!!  No way I'm paying that usury...)\n\nThanks,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4459, "properties": {"category": "rec.autos", "text": "From: bowmanj@csn.org (Jerry Bowman)\nSubject: Re: Old Corvettes / Low insurance?\nNntp-Posting-Host: fred.colorado.edu\nOrganization: University of Colorado Boulder, OCS\nLines: 52\n\nIn article <C5J5MI.FMI@news.rich.bnr.ca> Peon w/o Email (Eric Youngblood) writes:\n>In article <1993Apr15.011805.28485@ns1.cc.lehigh.edu>, swr2@ns1.cc.lehigh.edu (SCOTT WARREN ROSANDER) writes:\n>|> In article <C5Csux.Fn1@news.cso.uiuc.edu>, gdhg8823@uxa.cso.uiuc.edu (George Hei\n>|> nz) writes:\n>|> >After too many years of school I'm finally graduating and getting a real\n>|> >job.  Of course I am trying to make plans of how to spend all this extra\n>|> >money.  Right now I have an 89 accord, a good car, but not real sporty &\n>|> >I was thinking of selling it in about two years and dropping around\n>|> >$20k on a sports car of some kind.  After thinking about it, I may have a\n>|> >better idea -- I'll keep the Accord until it drops and buy the car I've\n>|> >always wanted -- a Corvette Stingray. My reasoning is that $8000 (accord)+\n>|> >$8000 (corvette) =$16000 is less than what I would spend anyway.\n>|> >\n>|> >Basically, I'm thinking of a late 70's, early 80's for around $7-$10k.\n>|> >My question is, what are good years to consider (for reliability, looks,\n>|> >horsepower -- in that order, believe it or not, horsepower is not a main\n>|> >concern, if I want to go fast, I get on my motorcycle) and what are\n>|> >good prices?\n>|> >\n>|> >Also, what would insurance look like?  I'm male, single, 23 (I might\n>|> >wait until I'm 25 to get the car = lower insurance). Would the fact that\n>|> >I mainly drive the other car lower it?  Is there some type of \"classic\n>|> >car\" or \"rarely driven\" insurance class for driving it under 10k miles\n>|> >per year?\n>|> >\n>|>     My dad has a 66 vette and its on what you say 'classic insurance'.\n>|>     Basically what that means is that it has restricted amount of driving\n>|>     time, which basically means it cant be used as an every day car and would\n>|>     probably suit your needs for limited mileage.\n>|> -- \n>\n        In my area, Denver, if you look around alittle you can get an\n    1984 for 10,000 or less, not much less. You said your not looking\n    to go fast, they are a really nice car just not real powerful.>\n>In addition to restricted mileage, many classic insurance carriers also require\n>that the vehicle be garaged when not in use.\n>\n>$0.02\n>\n>Ericy\n>\n>\n>      *---------------------------------+---------------------------*\n>      | Eric Youngblood                                             |\n>      | Bell-Northern Research    _                                 |\n>      | Richardson, Texas 75082 _| ~-                               |\n>      |                         \\,  _}                              |\n>      |                           \\(    +---------------------------|\n>      |                                 |   Peon w/o Email privs    |\n>      *---------------------------------+---------------------------*\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4460, "properties": {"category": "misc.forsale", "text": "From: jingyao@rainier.eng.ohio-state.edu (Jinyao Liu)\nSubject: Home base and Car CB units, Motorola Beeper for sale\nOrganization: The Ohio State University Dept of Electrical Engineering\nDistribution: na\nLines: 31\n\n \n(1)           Uniden 40 Channel CB Transceiver,  Model Pro 710e.  \n    \n   This is a home base unit, with connectors for external speaker and \n   PA speaker. 3.5\"x3\" internal speaker, chanel 9/10 button, NB/ANL/PA  \n   selector buttons, Volume, Squelch, RF Gain, Tone and Mic Gain controls,\n   Comes with Mic.  Side mount for mic.  measures 14\"x8\"x3\". Plugs into  \n   110v.  Black\n   \n   Like new. (actually brand new)      Asking $105, shipping included\n    \n \n(2)         Midland International Model 77-101C, 40 chanel, car unit\n \n    This one is well used. black w/silver front. comes with mic, power \n    cord for 12v cigarette lighter socket,  gutter mount antena is also\n    included (easy to install and remove).    \n                                           Asking $45, shipping included\n                                            \n \n    Or both for $130, including shipping.  The Uniden alone is about \n    $150 in Kmart.  These two will work nicely together, have one in \n    the garage and one in your truck. \n \n \n(3)  Motorola Beeper.  I can't quite figure out what is the model number\n     Cost is $133 to buy from USAMobile.  Don't use this no more, $65\n \n \n    \n \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4461, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Too fast\nArticle-I.D.: cactus.1993Apr15.222638.22817\nDistribution: world\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 51\n\nIn article <bob1.734909414@cos> bob1@cos.com (Bob Blackshaw) writes:\n>In <1993Apr14.045526.21945@cactus.org> boyle@cactus.org (Craig Boyle) writes:\n>\n>>In article <1qg19v$5ju@umcc.umcc.umich.edu> mhartman@umcc.umcc.umich.edu (Mark Hartman) writes:\n>>Driving 130 in a straight line is fine, you very soon become aclimated \n>>to it. It's only a rush when there are corners that you don't\n>>think you can make.\n>\n>>On a clear autobahn, 130 is nothing. In the U.S. 99% of people and\n>>all judges would label you insane and it is difficult to persuade\n>>people otherwise.\n>\n>Sure, but the surface condition of most good autobahns is far better\n\nThe quality of autobahns is something of a myth. The road surface\nisn't much different to a typical TX freeway. They are better\nin terms of lighting, safety, signs, roadmarkings etc. I'd have\nno problem driving 130 on most US freeways, as it is, I save it\nfor the backroads, which really are more likely to be dangerous.\n\n>than most of the roads here. A dip in the asphalt that you test your\n>shocks on at 60 will kill you at 130. Don't get me wrong, I love to\n\nIt would have to be quite severe. I don't recall any US freeway,\nwithout road damage warnings, that i would regard as unsafe\nat 130 in any decent, well damped car. Note that my definition\nof decent, well damped, would exclude most typical American sedans.\n\n>drive quickly and they say my Probe will do 130, but that's 30 more\n>than I've ever tried in it cause there isn't a decent enough piece\n>of road hereabouts.\n\nI don't know where you live, but I would be much more worried\nabout cops, other traffic etc. than the road surface at 130.\nIt just isn't that fast or that dangerous. If you have a Probe\nGT, no problem. The 4cyl models I have driven would be\nlikely to be unpredictable at higher speeds.\n\nCraig\n>\n>>Craig\n>>>\n>>>-- \n>>>   Mark Hartman         mhartman@umcc.umcc.umich.edu\n>>>   Kalamazoo, MI        bk405@cleveland.freenet.edu\n>>>    \"I'm naked in the school!\" - Sleepyhead -\n>>>\n>\n>Bob\n>\n>\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.215+0000", "event": "documents", "entityId": 4462, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 07/14\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 958\n\n\n------------ Part 7 of 14 ------------\nMI:6EI:6EI:6EI:6EI:6EI:6EI:6EI4='1T='1T='1T='I:6EI:6EI:6EI0L+\nM\"PL+\"PL+\"PL+\"PL+\"PL+I:6EI:6E1T='1T='W]_?W]]Z>GHJ*BJ[NUY>`P,#\nM`YF9F9D]/3T]/9F9F0->7KN[N[N[7EX#`P.9F9F'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMASC`P,!;;L`X.$O#P\\!;`M2YYK9:5]3/R%?/`A2JKB+L._$^AX>'AX>'AX>'\nMAX=75\\@%2J##=4V^,\"F,N)P-]5%1JZ$D*61DOF1D9(ST!H>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVPVT_%N2IJL8YMD9#OQ\nM(K[Q9*R'AX>'AX>'AX>'AX>'AU=75U>BP2'<`EMLTXCL'6X%2J\"L\\2WE922,\nM!F`-4<Q@4?6'AX>'A\\!+6ZJBU-3/5]345]175U>B:W69TG$9L+\"PL+!3BS3%\nMQ6=G9P],3(F)R<F)B8F)B<G)%A865%145%14%A86%A86%A86%A86%A;)R80-\nM$PU1S.%D\\64B[[;OO;6Q.XE,3&=&-C84HM2`7PRV?M3J7T,=:!V`P2&L[.S!\nMT]S&[\\8=:&@=<=(]`UZ[NRIZ>GIZWZ4Q`0=X=@&$A`%UP,-;-LC(5U?/%(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5Z)7@$J@\nM:SC.2&HM9$9-OF3L:&S3M>^]6K6V6EJYO>^'AX>'AX>'AX>'AX=;6UN#F*RB\nM5\\@2(>S(#N80[['IT[7OO7[@MEJ]I[9:O;:]#(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS$QQ,3$Q,3$Q,1F9@L+I:5'1]_?>GIZ*BHJ*BHJ*KN[N[M>7EY>7EY>\nMN[N[N[N[N[N[N[N[N[N[*BHJ>GIZ>GIZ>GIZ>M_?W]_?1T='1T='I:6EI:4+\nM\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PNE\"PNEI0L+\"PL+\"PL+\"PL+\nM\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\nMI:6E1T='W]_?W]_?W]_?W]]Z>BHJ*BHJ*KN[*BHJ*BHJ*BHJ*BHJN[N[N[N'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A\\!;6UM;;L`X.$O#;L!;`M2YYK9:5]3/U!3/;ENJ\nMB!VQ/NR@AX>'AX>'AX>'AX=75\\@%2J##.$V^,\"F,N)P-]5%1JZ$D*2TMOBTM\nM+8R,E(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAVPVT_%N2IJL8YMD9#OQ\\;[Q9*R'AX>'AX>'AX>'AX>'AU=75U>BP2'<`A1L\nMT]QH:`(%TT/Q[&3E922,C,P-45%145&'AX>'AS@EP*H4R-3/5]3(5]175U=7\nM:W6PL%/M[>V+-,5G9P\\/#TQ,#P],3$Q,3$Q,3$Q,B8G)R186%E145!86%A;)\nMR<G)R<G)R<F)B8E,#X3>=@W,!G!DK&7L[[9:O;6Q.^U3&=)&-C845\\B`Z`RV\nML<CJ7T/LQAV`P3NL[.S!(=QH6L;&L6@=/9D#7KLJ>D<+Q#$Q,8>'`5*$=E(!\nM*RMU6P(4R-345U<)%(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'%!04JDJ@:W7.2&HM9$;EOF3L'073B+%:6K7OO;VYO5J'AX>'\nMAX>'AX>'AX?`P,\"#F&04HLAL(2(\"Z2'<[['ITXCO6N_@MEJ]I[9:O;:]#(>'\nMAX>'AX>'AX>'AS'$Q&9F\"PL+9@L+\"PL+\"V8+\"PL+I:5'1T='1]_?>GIZ>GHJ\nM*BHJ*BHJ*BHJN[N[N[LJ*BHJ*BHJ*BHJ*BHJ*BHJ>GIZ>GK?W]_?W]]'1T='\nM1Z6EI:4+\"PL+\"V9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F\"PL+\nM\"PL+\"PL+\"PL+\"PL+\"PL+9F9F9F9F9F9FQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$9F9F\nM9@L+\"PL+\"PL+\"V9F9F9F9F8+\"V9F9F8+\"PNEI0L+\"PL+\"PL+\"PNEI:5'1]_?\nMW]_?W]_?WT='1Z6EI:6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUL4%%M;;L`X.$O#;EM;\nMR,BYYK9:5]17R!1K2\\\"JB&CO0^R@AX>'AX>'AX>'AX=75\\@%2J##.$V^,\"F,\nMN)P-45%1JZ$D*2W:UC\"S,`8&S(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVPVT_%N2K-D8YMD9#OQ\\;[L9/&'AX>'AX>'AX>'\nMAX>'AU=75U=7P2'<R!1LYKEHL0+BTT/L[*SE99OTC#?>45%145&'AX>'AW5$\nM.#OL`B'O5X!_5]175U?/[&I34^TTQ6=,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nMB8F)B<G)R<G)R<G)B8F)B4R)3$P/9\\4T-(OM[5+>`>$&C'!DK&7L[[9:O;6Q\nMOCV9`[NJ-C:B5\\B`Z$.VL=3JZ$/LQNR`P2&L[.S!(=RQ6J?&L;$B7EZ[*GK?\nM1PO$,3$QAX>'GEEX`7B>T&$X6\\A7R-345Z(;6X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'6UM;JD0^:W7.2&HM+4;EOF3Q[`5*\nMB&COL0RVO;VVO5J'AX>'AX>'AX>'AX=U=3B#)\"T4%`)L(?%NZ3N(L6CITXBQ\nM6J?@MEJ][[:]O;:]##'$Q&9F\"PNEI:5'1T??W]_?W]_?WT='1T='1T='1]]'\nM1T??W]_?W]]Z>GIZ>GIZ>BHJ*BHJ*BHJ*BIZ>GIZ>GK?W]_?1T='W]_?W]_?\nMW]_?W]_?1T='I:4+\"V9FQ,3$Q,3$,3$Q,3$Q,3$QQ,3$Q,3$Q,3$Q,3$Q,3$\nM,3$QQ,3$Q,3$Q#$Q,3'$Q,1F9F9F9F9F9F9F9F9F9F9FQ,3$Q,0Q,3$Q,3$Q\nM,3$Q,3$Q,3$Q,3'$Q,1F9F8+\"PL+9F;$Q,3$Q&9F9F9F9F;$Q,0Q,3$Q,3$Q\nM,3$QAS$Q,3$QQ,3$Q&9F9F9F9F9FQ,3$9F9F9F:'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAQ046UM;;L#`.$O#;EM;`LBYYK9:5\\C/R%MK)75&B+%:0\\:NAX>'AX>'AX>'\nMAX=75\\@%2J##=4W6?/2,E^L-45%@JZ$D*=HPUBDP,)24S(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVPV2O%N1+-D8YNLK#OQ\nM\\;[L9/&'AX>'AX>'AX>'AX>'AU=75U=7P2&YR*)LYKFQL0+BTT/L[*SE99OT\nM]`;>45%18&\"'AX>'AW5E=3OL`B&Q[],=O;7&O;9:'6HT9P],3$Q,B8F)B8F)\nMB8F)R8G)R<G)B8F)B8F)3(F)B8G)R<F)B8F)3$Q,3`_%-#2+B^WM[>U34X3>\nM=N&,C'!DK*;QL;GOO;5HOD>E\"PNJ-C975]2`Z$,=:,CJZ$/LQAV`P2'Q[.S!\nM(=RQ6J=HL;$BN[N[NRHJ*GK?I0O$,8>'=>Z>*YYU)25;HM17:]34%%MKP(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'P%M;JD0^\nM-G7.2&HM+4;DOIKQ[`5*KFBQ:`RV6EJYO5J'AX>'AX>'AX>'AX=U=76#)\"T4\nM%`)L.ZQ+Z=.(:&CITXBQ[VC@MKV][^^]O;:]0]_?W]]Z>GIZ>GIZ*BHJ*BHJ\nM>GIZ>M_?W]]'1T='1T='W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?W]_?>GIZ\nM>GK?WT='I:6EI:6EI0L+\"PL+9F9F9L3$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3$Q,3$Q,3$Q\nM,3$Q,3$QAX>'AX>'AX>'AX>'AX>'AX<Q,3$QQ,3$Q&9F9F9F9F9F9L3$Q,3$\nMQ#$QQ#$Q,3$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>',3'$Q&9F\"PL+\"PL+\"PN'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AQ046UM;;L#`.$O#P\\!;`M2YYK9:5]2B`EM;)75&\nMB+&]0[&(AX>'AX>'AX>'AX=75\\CI2J!+=>367/2,.>L-45%@JZ%<*=HPUHR,\nMC#>4S(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAVPVT_$\"1#!D8S[L\\3OQ\\;[LK/&'AX>'AX>'AX>'AX>'AU=75U=7Z\"&YR%<2\nMYKFQL0+BTT/L[*SE1'PI*8PG8&#,-\\QF9@M'WYYE=3OL;CNQL=,=O;7&O;9:\nM:&J)B8F)B<G)R8G)R<G)R<G)R186%A86R<G)R<G)R<G)R<G)R8F)B8E,3$Q,\nM3$Q,#P]GQ8N+B^U34U(-$^$&!N$M9*;Q:-RGO;4=2*4+9F:J:VM75]2`Z$.Y\nM:,CJZ$/LQAV`P2'Q[.S!(=QH6L;&L6CQN[N[N[LJ*BIZWT>E\"\\0Q=:-U875U\nMPVX45]17\"=3(6\\!;.(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'P,!;1F4^-G7.2&HMVD;DOBVL\\05*0QUH:$.Y[^_<O5J'AX>'\nMAX>'AX>'AX>IJ77D)-I;6VYL.V1+Z=.(:!WITZZQ[V@A$%J][[:]O;:]0WIZ\nM>GIZ>GIZ*BHJ*GIZ>BIZ>GK?W]]'1T='1T>EI:6EI:6EI:5'1Z6EI4='1T='\nMI:6EI:6EI:4+\"PL+\"PL+\"Z6EI:4+\"V9FQ,3$Q#$Q,3&'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q\nMQ,3$Q#$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS$QQ,1F9F8+\"Z6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ046UM;;L`X.$O#P\\!;\nM`LBYYK9^5]2B`EM;)75&B&A:0^^UAX>'AX>'AX>'AX=75P+I2CXE=>3A!HP&\nM.>L-46#,JZ%<*2TPX5R,C#>4-X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVQNT^S(2K.LSC[&(COQ(K[LK*R'AX>'AX>'AX>'\nMAX>'AU=75U=7Z$.VR%<2YKFQL0(%TT/Q[*SE1&K:*8PGS#>4E#>9TAD94YYE\nM)3OQ;CMHL=.YO;7&O;:]L:#)R1;)R<G)R8F)B8F)B4Q,B8F)B<G)R<D6%A86\nM%A86%A86%LG)R<F)B8F)B8E,3$QGQ<4T-(N+-`'>O`W,E.$I+8-D[-QHO;7L\nM2&9F\"PNJ:VM75]2`Z$,=:,CJZ$/L:!V`P2'Q[.S!T]S&[\\8=:&BLI:6EI4??\nM>GIZWT>EI:4+.*HX2\\#``@)7S]17:]1NP'79=8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'P,#`1F4D-G5C2&HMVD;DOK-D\\05*\nMH.QH:$.YL;&(6EJ'AX>'AX>'AX>'AX>>GI[D\"C!;6TM5OJ1+Z=.(:!WITXBQ\nM[QTA$%J]I[9:O;9:0RHJ*BHJ*GIZ>GK?W]]'1T='1T>EI:6E\"PL+\"V9F9F9F\nM9F9F9F9F9L3$Q,3$Q,3$Q,0Q,3$Q,3$Q,3$Q,8>'AS$Q,3$QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,1F\"PN'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAQ04P,#`;C@X.$O#PUM;`LBYYK9^5]2B`EM;)75&KNRQ0^^(AX>'AX>'AX>'\nMAX=75P+I1#XEGIPGS#<W.>L-46`WZ^%<VBTPX0:,C,P&E(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVS9V\\;(2IKL!4.Q:\"'L\nM[+[LK&2'AX>'AX>'AX>'AX>'AU=75U=7Z.\"VR%<2+KFQL0(%2D/Q[*SE1#[:\nMVHPG-P:,C`:)R<D6%GAE2SNLPSMH:-,B[XBYO1\"]?J[)R<G)B8E,3$Q,3$Q,\nM3(E,3$Q,3$R)B8F)R<G)%A86%A86%LG)R<G)B<G)B8F)B4Q,3`\\/#P\\/#WC>\nMO`U@-^&,*8-\\K(AHO0PB2`L+9F:J:VM75]2`Z$,=L=3J7T/L:!V`P2'Q[.Q-\nMTXCL:.SLQNQDQ&8+\"PNE1T='W]_?1]_?P*I;;EM;R-34S\\BBR`)N=779J8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'P,#`1F6^\nM-G5C2&K:,$;DUK-DK%5*H.S&QD.Y:&B(6EJ'AX>'AX>'AX>'AX>5`7CKGXQ;\nM6TM5OF1+Z=.(:&CITXBQ[QTA$%J]MKE:O;9:0WIZ>M_?W]]'1T>EI:4+\"V9F\nM9L3$Q#$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,3$Q,2'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AUM;.#C`PW5U=4M+PUL4`M2YYK9^5]2BR!3`)75&\nMH/'L0['<AX>'AX>'AX>'AX=75V[I921AGNO>8&!@'.L-4<R44.&8VF0PX8R,\nM!C<&E(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAU4EV^_42JS&;$.QL4-H:#OLK\"V'AX>'AX>'AX>'AX>'AU=75U=7Z/*VU%<2\nMYKEH:`(%2D/Q[*SE1#XM+?2?E(STC`945)*2DGA$)3NLPSNQL=,B[T.YO;:]\nM[ZY4%A;)R8F)3$Q,3$Q,3$P/#P\\/#P\\/3$R)B<G)R186%A86R<G)R<G)R<G)\nMR8F)B8E,3$R)B8E,3`'>$PU1-^&,*:%\\9(BGO4/Q<`MFQ#&J:VM75]2`Z$/&\nML<CJ7T,=:&B`Z\"'Q[.Q-TZ[L[/'L[/&:>GIZ>GIZWRI>`P.9/3W2P*H4R!2B\nMR-34S]04;FY+=779J;LJ>GIZ>GI'I:6E\"V9FQ&9F\"PNE1T='1]_?1T='WT='\nMWT='I0L+\"V;$.,#`1H.^-G5C2)C:,$;DUC`M9)-$H/'L[$/<QFB(6EHQQ,3$\nM9F9F\"PNEI4=2A(3K%U%;6TM5.ZQNZ3N(L;'ITXCO6ATA$.]:QKE^6K9:0WK?\nMWT='I0L+9L3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUO`=75U)75U=25+;A04\nMR-2VYK9^5]17R!1;)75&:F3Q.\\:(AX>'AX>'AX>'AX=7%,/P9230>.L-45%1\nM'.O>8#<&4.%\\+60PX8R,C#>,!H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AU79VUH;YB+O;$.QL4.QL2'&K#\"'AX>'AX>'AX>'\nMAX>'AU=75U=7Z/*VU%<2YKEH:&X%2J#Q[*SE2J!D9\"F!!O0P](S5U=75U7AE\nM)3OQ;B%:6M.YL;6VO1!:L8B25%06%A86%LF)B4Q,3$Q,3$Q,3$Q,B8F)B8F)\nMB8F)R<G)R186%LD6%A86R<G)B8F)B8F)B4Q,#P$-$PWU-R>,*8-\\9(BGO4/Q\nM<(<QQ&:J:PE75]2`Z`RG[\\CJ7T,=:&B`Z\"'Q[.Q-2J[Q[/'Q[*RS`P,#`P,]\nM<1FPL%-34U/M6ZH4R%=7U-345\\A;)4LE=779J5-34[`9&1EQ<=(]F9D#F9D#\nM7EY>`P.9F0->7EY>`YF9F3T]TM+2TCV9.#C`1H,D-G5C<)C:,)?DUC#:+9-$\nM/O'L[$.(QL:(6EK?W]_?WWIZ>BHJN[L'`0'D\"C=;6TM5.ZQNZ=.(L;'ITXCO\nM6ATA$.]:[+GO6A!:(=]'1Z4+\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA\\#`=75U)75U=25+;A2BR-2VYK9^S]17R!1;)76J:MIDONRNAX>'AX>'AX>'\nMAX=7%$OP@R30>.L-45'U'.O>-Y2,8W!J9&0PX8R,C)2,!H>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVPVV^_4YFB]$D-H:$.Q\nM?B%HK#\"'AX>'AX>'AX>'AX<Q9E=75U=7Z/*VU%<2YKEH:&X%2J#Q[/'E2J\"L\nMK-K6C/0P](Q\"0IV=G9YE)3LB;D-:O2ZV6K6GO;7O':Z2DE14%A86R<G)B8F)\nMB8F)B8F)B8G)R8F)R8F)B8F)B8F)R<G)B8F)R<G)R8F)B8F)B4Q,#V?%-`'U\nM$R=18-X&*:%<+8COO4-D<&9F9F:J:PE75]2`Z`RG[]3J7T,=L6B`Z\"'Q[.Q-\nM2J2L\\:RLK&0P4U-34U/MBS3%Q6=G9V=G%*I;`LA7U-3(H@);V24E=779J<7%\nMQ<7%9V=G#P]GQ<7%Q<4TBXOM[>WM[>V+[>WM[>U3L+\"PL+!34[\"P.#@X1H,D\nMV75C<)@IC)?DUI@IVE!E/F3Q\\4.([,:(6EH#`P,#`P.9F9F9F9G9GI[D)/1;\nM6TM5OJQNZ3N(L;'ITXA^O6@A$._O[-SO[[E:(4='1Z4+9L0QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A\\#`=75U)75U=27#;A2BR,BYYK9^S]17R!1;)76J\nM)##:UJR@AX>'AX>'AX>'AX>B6R7P@R30>.L-45'U')R?!HPI8W!J9*S:UHR,\nMC(R,C(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAVS(VW[4+J>]$D,='4.Q?B%H\\3\"'AX>'AX<QQ`M'WWJ[7E=75U=7Z/*VU%<2\nM+KEH:&X%2J#Q[/%-2J[Q\\2W6F\"DM](R=G9V=G:EE.\"$=R`R]O2ZV6A\"VO8AH\nMK*Z2DI)45!86%LG)R8F)R<G)B8F)B<G)R<G)B8F)B8F)B8F)3$Q,3$Q,3$Q,\nM3(F)3$Q,3$Q,3$QGQ0'U$R=140V4]*%<+8CO6D,MX=_?W]^J:VM75]2`7PRV\nM[]3J7T,=L;&`Z\"'Q[.Q-2J2L\\61D9\"TP#TQ,3$Q,3$Q,3$QGQ30THC;`;@)7\nMU-3(H@);V24E=779J4Q,3$Q,3$R)B8F)B8F)B4Q,3$R)B8F)B8F)B8F)B4Q,\nM3`]G9\\7%Q<4T=75UEX,DV75C<\"3TC)?DUEST,%\"#)\"VLK#N([,:(6N]Q<=+2\nMTM+2TM+2TM(V=76#F#!;P\"55OF1NZ2&(L;'IYA!:O:<A$.]:[-SO[Q!:0Z4+\nM\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\`X=75U)75U=25+;A2B\nMR-2YYK9^S]17R!1;)3BJGBOT&\"UJAX>'AX>'AX>'AX>B%\"7P@R30>.L-45%1\nM.>36C(PP8W!J9*PMUBDP,(STC(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AQ()V[;4+J>]$D,='4.QL2&Q[-HQQ&:EI4??WWHJ\nMNUX#F5=75U=7Z/*VU%<2+KEH:&X%2D/Q[\")-2J[Q[&36*2UD]`:=G9V=G:E$\nMP$.QU`Q:O2ZYL;7&L:#Q+6J2DE145!86R<F)B8F)R<G)R8F)B8F)B8F)B8F)\nMB8F)B8F)B8F)B8F)B4Q,3$Q,3$P/#P\\/3$Q,3(3UO\"=@]0W,C.16VHCO6D,P\nM#7%Q&1FJ:VNB5\\B`7PRV[]3J7T,=L6B`Z\"'<[.Q-2J2L\\:0M+3`PB<G)B8E,\nM3$Q,3$P/9V=G%*,X2VX4R-34R,A;;B4E=770J<G)R<G)R<G)R<G)R<G)R<G)\nMR<G)R<D6%A86%LG)R<F)B8F)B8F)B4Q,=75UEZ'6V75C<\"3TC#F<X0;T],V#\nM)-ID9#NN[,:(O>\\9&1D9&7%Q<=+2TM(V=76#F-K`P\"55OF1NZ2'<[['IYA!:\nMO:<A$'Y:';GO6A\"]0V;$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA\\#`=75U)75U=25+PQ04`LC<YK9:S]17U*(4P\\\"JG@&,X8PDAX>'AX>'AX>'\nMAX=7%\"7P@R30GNO>45%1.:'6]##:SG!J9*PMUC`P,(STC(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ()T[;4YAV]$D,='2'&\nM:\"&Q[\"T+I4??>BJ[7@.9F3T]/5=7HJ)7Z.\"VU%<2+KFQL0(%2D/LQNQ-2J[L\nM[&0DVF2L]`9\"0D)\"0JE$6T/OU`Q:L=/Q'4/Q[#YD*6J25%06%LG)R8F)B8F)\nMB8E,3$Q,3$P/9V=G9P\\/9P\\/#P\\/3$Q,B8F)B4Q,3$Q,3$Q,3`\\/3$Q,3(3U\nM=B=@]0U1-^16VHCO6J\",#4Q,3$Q&-C84HM2`7PRV[\\CJ7T/L:&B`P2&([.Q-\nM2J!DK*0P*2F,5%14%A;)R<G)R<F)B8F)6^YU)25;`M17U,A;-DLE=75AV8F)\nMB<G)R<G)%A86%A;)R<G)R186%A86%A86%A;)R<G)R<G)R8F)B8F)=75UEZ'6\nMV75C<\"3TC#F<X0:,C,V#)-HM9#NN[,;<O5IQTM+2TM(]/9F9`UYKP#BF:BW`\nMP\"55OF3#Z2'<[['IYA!:O:?@$%J]QKE^6A\"]#(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A\\#`=75U)75U=24EPUL4`@*(YA!^S]17R%<4;ENJ\nM>(24)Y0DAX>'AX>'AX>'AX=7HL/P@R30GNO>45%1EZ'6]#`P8W!J9*PMUC`P\nM,/3T](>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAQ(;TR+(TR+O;*#L(B'L'3NQ[&1'WWHJNUX#F3T]TM)Q<5>B%!2BP>\"YR%<2\nM+KGOL0)LTT,=:!U-2J[L[*P^9*SQ])35U=75U:E$%$-:U`SO:-.LQCYD\\23:\nMC&H6%A;)R8F)B4Q,3$P/3$Q,#P]G9\\7%Q<5G#V=G9\\7%Q<5G9P],3$Q,3$Q,\nM3(E,3$Q,3$Q,3$R)B83UA\"=@40U1S.16+8CO[SY6#<G)R19&-C9;%,B`7PRV\nML=3JZ$,BQAV`P3NN\\>Q-2J!DK+,I](Q65%145%06%A86%A;)R<F)P.YU)6'`\nM;@)7U,@4;F[#P#@E=<D6%A;)R<D6%A86%A86%A86%E145%145%145!86%A86\nM%A86R<G)B8F)J9Z>EZ'6V75C<\"3TC#F<X0;TC,V#)-HM9#NN[,;<O5H#`P->\nM7EY>NRHJ>GIKP,!$:F3`P$M5OF1+Z2'<[['IYA!:O:?@MEJ]I[E:O1\"]#(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\#`=75U)75U=24EPUM;\nM`@*(TQ!^S]17U%=7R!2J`83,#3<*AX>'AX>'AX>'AX=75V[I9230>.L-]5%1\nM.:'6C#`P8W!J9&3:UC`P,#`I](>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AQ+42B+(2JQH;#[Q\\3OQ[#MH[&3?>BJ[7@.9/=)Q\nM<1D9L%>B%!04P2&YR%<2X+9^6LALYK6Q[VA-TXCL[/$^K/'Q]`945%06%ME*\nM5T-:U\"%H[$JD[)MJ+20I!IA,3`_%-(OM4[\"P4U/M[8N+[>U34U-3[>WM[>U3\nM4U-34U-3[>V+BS3%9P],3$Q,B8F)B8F)B<G)R0'UA`U1E`U@-^289-Q:L3L&\nM#5065%1&;C9;%,B`7PRVL<CJZ\"'Q[\"+P33ND\\?%-2&ID9&KT](Q6DI*2DE14\nM5%06%A86%A941NYU)75UPVX4R-17R,@\"6\\!+P%145%145%145!86%A86%E14\nM5%145%145%14%A86%A86%A;)R<F)B8E,GIZ>.:'6V75C<\"0IC)?DUHST*<V#\nM)-ID9#NN[&C<O5K?1T='1T='I:6EI:5KP,!$H*Q;6TML.ZS#Z2'<[['IYA!:\nMO:?@MEJ]I[E:O1\"]#(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA\\#`.'5U)75U=24E)<!;;FZNTQ#OS]17U%=7R%>J`5(WWI36AX>'AX>'AX>'\nMAX=75P+I9230>.L-]5'U.>36C(PI8^&8+63:UC`P,#`I](>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ+42JP\"2IKL!3YD9+ZL\nM(COO(BU'WRJ[7@.9/3W2TM)Q<5<4%!04P2&YU%<2X+9:6L@2YA#O6K%-TXCL\nMQO$^K.SL*09G9\\7%9]G35PQ:R#OQK$2SK-:8VM;T!B32TCT]F5Z[NRHJ*BHJ\nM*KM>F9D]/3V9F9F9F9F9F3V9F9D]TG$9L%/MB\\4/3$Q,B8F)B8F)B8F)B9[>\nMO`V4,-XW!J&S(KFG:+X&#5145%1&;C9;%,B`7PRY:,B`1#NL\\:RJ3;ZDK*SE\nM2&ID9&J,](Q6DI*2DI*2DI*2DI*2DI*21F,D)75U)4M;R-17R-3(%%MNP)*2\nMDI*2DI*2DI)45%14DI*25%145%145%145%145!86R<G)B4P/Q32+GIZ>EZ'6\nMV77.2&HM,)?DUHPI,%\"#)\"VLK#N(:&C<6N\\+\"PL+\"PL+\"PMF9F;/6UM*KB);\nM6VYL.ZQN!2'<[^\\.YA!:O:<A$%J]I[E:O1\"]#(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A\\!;P#AU)75U=24E)3C`;FZNTQ\"QS]17R%=7U%>`\nM>`$&)XPDAX>'AX>'AX>'AX=75\\CI1)O0>.L-45'U')R?!HR,4.$DVBTPUC`P\nM,\"DI](>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAQ+42J1N1+/QSINS,!AD(COO(BUZ*KM>`P.9F3T]/=+2TE>B%!04P2'<R%<2\nM+A!:6M02YA!:O7[!T]QH:.P^\\>SL*8RP4U-3L-DN5R%H;D@M,(-<+=:,*=8I\nM5B1'I0MF9L3$,8>'AX>'AX>'AX<Q9F8+1]]Z*BHJ*BHJN[N[N[L#F3W2<1FP\nM4^V+BS0TBXLTQ6=G#ZF!$]Z,,.&,C*:DL;;&[+XW)Y*2DI)&;FM;%,B`7PRY\nM'0*`1#MDK&2J3;ZS9*SE2&ID9&KT](Q6DI*2U=75U=75U=75U=75[F-J)8/T\nMVN6@`M17U-3(HEL\"6]75U=75U=75U=75U9*2DE145%145%145%145%145!86\nMR8F)3$P/9\\6+GIZ>EZ'6V77.2&ID+4;DUC#:,%!E/F3Q\\4.(L;&(6K%F9L3$\nMQ,3$Q,1F9L3/HA33W&AN%&X%(?$\"!2$0?N\\.YK5^O6@A$%J]I[E:O1!:#(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\#`P#AU)75U=24E)75U\nM2TNNTXBQ5\\@4U%=7U-2`>\"N,X2DDAX>'AX>'AX>'AX=75\\CI2CXEGIS>8&!1\nM'.LG-Y0&4*$D,-HPUC`P*?0I*8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVS41&1+1#\"L8]8I*1@M[#NQ\\2V[7@,#F3T]/3W2\nMTM+2TE>B%!1;P2'<R%<2YA#O6M1LT[7OO5K!(=RQL>R@\\>SLVHP]/=+2<=DN\nM5SOL2QC:]*%6VH$&*23:5@HQAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@L+\nM\"PNE\"PNEWWIZ*BHJN[M>`YD]/=+2<1FP4U/MBW76O-Z,+>':9$2(6K;L(M;U\nMX9*2U=5&;C9;%,B`7PRY'0*`1#MDK&2J3;ZS9&3E2&ID9&KT]/16U=75U4)\"\nM0D)\"0D)\"0D)\"[F,DT*&,*>1JPP*BU-345Q2B%-75U=75U=75U=75DI*2DE14\nM5!86%A86%A;)R<G)B8F)B4Q,#V?%-.VPGIZ>EZ$D-G7.OJ#Q9*KEOC`MVE!E\nM/JSL[$/<L;&(L6AF9F;$,3$Q,3$Q,8?/5\\C3N>\\\"%&Y-(>P\"#B&Y6EH.YHA^\nM6F@A$%J]I[E:O1!:#(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA\\#`P#AU)75U=6'0T'5U)26@2HAH5\\@4R%=7U-2`GBOT&-H^AX>'AX>'AX>'\nMAX=75\\CI2CXEGIPG-Y0W'*O>S,S,JZ$*]\"DIUBDI,/3:*8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVS41*1+97QD4(&,C!@M\nM(COL\\61>7@,#F9D]/3T]/3T]/5=7%!1;P2'<R*)LTXAHL<AL2D-H6EK!(;GO\nM[^R@\\>SL+?29F3T]/=DN5SOQ)7`I]*$W](&,VB0M7\"0QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',<3$9F9F9F9F9F8+\"Z7?>KM>`YD]TG$9L'76\nM=MZ,+7!D[$K<O;GQK-;,X514DI)&;C9;%-2`7T/<(FZ`1#MDK&2J3;YJ9&3E\nM<&ID+6KT]/0&0D)\"0D*=G9V=G9V=G9V=[LTD*YPWC.1J2VX4R-345\\A7HD)\"\nM0M75U=75U=75U=62DE14%A86R<G)R8F)B8F)3$Q,#V?%Q32+[;`9GIZ>EX.^\nM6SC.OJ[L\\:I-OK-D+6-E/O'L[$/<[^^(L6B'AX>'AX>'AX>'AX=75]3;MEJJ\nM%`)-0QW(#N\"V6EH.YK5^O6@A$%J]I[9:O;:]#(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS@X=75U)75U=6'0*YZI824^2HAHS\\@4R*)7U-2`\nMGM`I&\"T^AX>'AX>'AX>'AX=75]3I2CXEJ>3A!HP&.>L-8&!@JZ$*C\"F,UBDP\nM,/3:VH>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAVS(1*0E97PM4(&,C!C:\\;[L\\:R[7@,#F9F9F3T]/3T]/5=7HA1;P2'<`A1L\nMTZ[L[`(%2J#L[UKHX+9:6FB@[,;L+2E;6\\!UJ=DNU#NL)7`IC*%@C($&VB0M\nM7*F>>`$!AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3'$\nM9@NE1WHJ7IF>G@%2GJF!$R<P9$CL[XVVO=SQ9-;,X1175U=&;C9;%,CJZ\"'<\nM(FZ`1#NLK&2J3;YJ9\"WE<'PM+9B,](P&G9V=G9V=G9V=G9V=G9V=.2@*`>M@\nMC.28)6X4R-345]17HD)\"0D)\"0D+5U=75DI)45!86R<F)B8E,3`\\/9V=G9\\4T\nM[5.PL!EQTCV9GIZ>1H,^6R7..Z[L[*I-.RVL9)-$H/'&QD.Y[^^(L<:'AX>'\nMAX>'AX>'AX>B%&N-$%JJ%`)-#+;4XN\"V6EH.TQ!:O;$A$%J][[:]O;:]#(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW5U=75UT'5U==`K*YZ>\nMT\"4^2H@=H@);`J)7U-2`GM#:UF0^AX>'AX>'AX>'AX=75]0%2J`E=>3A!HP&\nM.>O>8,S,JZ$*C\"F,UHR,C\"DM+8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVS(1*0E97PMS8&,C!C:K$CL\\?&[7EY>`P,#`YF9\nMF9F9F5=7HA1;33N(`EML2J\"L\\4NT1*#Q:'[HX+9:O>^N[+%H9\"E75U=75]34\nMU`)N2R70*P&$A`$K*]`E)27`6UM;6UO`AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS'$Q,1F9@NE1]]75U=7%%LX=2N$$P'0)6[(U-34R`)N2R4K\nM`0&$`7CN)384HM3JZ\"'<(FZ`1#NL\\:RJ3;YJ+2WE<)C:VIB,C(R40D)\"G9V=\nMG9V=G9V=G9V=HRB?=NO,C.2886X4R,C45]175T)\"0D)\"0M75U=75U9)45!;)\nMB8E,3$Q,3&?%-.WM4[`9<=(]F0,#7BK?GIZI1F4^R\"7..XC&'8#!(:SQ\\7E*\nMH.QH:$.Y[^^(L1V'AX>'AX>'AX>'AX=;P#9?B%JJR`(2#*?4XN\"VO5H.(1!:\nMO;'@MEJ][^^]O1\"]#(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAW5UJ:FI*W5U==`K*YZ>T&%\\2JX=H@);`A17U-2`J=#:OF0^AX>'AX>'AX>'\nMAX=75\\@%2J##=>5P7(P&.:O>S,S,JZ&!C/2,X8R,C\"DM+8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW6>>$T)1*0E97PM4(&,C!C:\nMK$CL\\2(!A`&>G@,#`P,#F9F9`U=7HA1;33NL;L!52CXM9\"6393YD[&C!(;E:\nMO5JU:%JQK-JB5[V]6K%H[.SQK&1D+=HI*=IDK.SL[.S&:&@='1WL(H>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'Q`NE\"PMF9@NEI0(\";FY+I*2DLWQ6\nM%_6?5ERDK/$=[^\\=\\:28!LQ@8*'NJC845]3JZ\"'<(FZ`1#OQ\\:RJ3;YJ+=J<\nMX20P*9B,C%8WU=75U=75U=75U=575U?/T\"B?A`TWC.0D86X4R-345]175UO`\nM==75U=75U=75DI)45!;)R8E,3&?%-(OML!D9<=(]F0->7KN[*GI'=75U1F4^\nMR\"7..XAH:(#!0_'L[`5*H.RQ:$.Y[^^(L6B'AX>'AX>'AX>'AX=;P#9?B.^J\nMU`+!#*?(XN#OO5H.(1!:O>_@MEJ]I[9:6A\"]#(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AZF>GIZ>*ZEU==`K*YZ>T&%\\2JXBH@);`J*BU-2`\nMGF$MOF2SAX>'AX>'AX>'AX=75\\@%2J##P$UP7(P&'.O>S,S,JZ&!!HP&X08&\nMC/0MVH>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A^GI\\/\"7>*EUP%L4\nM5]34PR4E)=#0*P$!*]`E2TO#PTLX=9X!4GB>9/'LL;UZ>E>B%!1;33NNPSBT\nM923:VF&39;XM\\1W!(=RQ6EH0[[U:\\2U75[U:[['L[/&L9\"TM+2DI*=HMK.SL\nM[.SL[\"(B(B+QK(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$\nMQ,0QQ&Y+2TLEL[-\\7%9@]6!67+-D\\1VG[\\;L\\:28!F!14:'NJC845]3JZ\"'<\nM(@*`Z\"'Q[*RJ34A\\+2F<X20I*8P&!C?,U=752.'A)R=9!P<'!Y52O':$A(0!\nM*]`K)6X\"R-34U-34U%=75U=75U=;P'6I>!86R<F)B4P/Q32+[5.P&7%QTM+2\nM/3V9`UY>NWK?=75UJF4^R$O..XC&:(#!0^QH'05*0QVQ:$.Y[^^([VB'AX>'\nMAX>'AX>'AX<E.&Y*B'ZJU,@2#._4XN#OO5H.(1!:O7[RMEJ]QK9:[XB]#(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AZF>GIZ>`:EU==`K*ZFI\nMT&%AP,`\"%`);;J(4R-34GM#:OBVSAX>'AX>'AX>'AX=75\\@%2J!NP$UP7(PW\nM'.O>-\\S,JZ&?E`8WWC>4!O3:VH>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'A^GP*\"@YS>D.Z?#PS<W-S>XK!S!D(AUH:&BQ?EI:6GX=K&3T8,ST+:SL\nM:%JEI5>B%!1;3;ZD)76T920P,-!0@[XMK\")-TX@=L;$06KV][&175UI:L6CL\nM[/&L9\"TMVBDI*2G:9/'Q[.SQK*RL9\"TMLX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AR4E)25A85Q6\"F#U8%9<LZ[<:.^GQNSQK*28\nM!F!14:'NJC845]3J7T.Y'0+JZ$,B[*RJ34A\\VBF<X20I]`:4E,S,5)*2<.'>\nM#0T-#0T-#0W>X>'A)R<G)]X-#2?AX2O0)27`%!2BHJ)75U=;P'5UGDQ,3`]G\nMQ<4T-(OM4[`9&1EQTM(]F0,#7KLJ>M_?=74XJF4^R$O..XC&:(#!0QVQ:`5*\nMKFBQ:$.Y[^_<[VB'AX>'AX>'AX>'AX?#.&Y*B%J`U,@2#._4XN\"VO5H.(1!:\nMO7[RMEJ]QKGOL8A:#(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAP=X!YZ>`:EU=6'0T'5U824EP,!N%`);;J(4R%?4)##:UMI\\AX>'AX>'AX>'\nMAX=75\\@%2J!NP.5P!@;,'.O>S&!@JPT7S#=@WLPW5HS:*8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'A_#PESDY\\.D.#NGP\\/#P\\,V,,#\"L[&BQL>]:\nM6EI:6GYH\\:PI-U&,VJSQ[+$+\"U<4%!3`3;ZS)750@R0P,-!0@R0P9*Q-2J[L\nM:&@0[[V]QJRB5^^Q:,;L[/%D+2W:*2GT]/0I+:RLK\"VSLS`P,#`P*X>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A]`K*]#0*U8W%_47\nM\"ERDB+FVI[GL\\?'QK*1J!F!14:'NJC9;HM3J7PRY:,CJ7T,B[*RJ34A\\VBF<\nMX23T]`8WE,Q@B8F)X=X-#0T-#0T-#0T-)^'A)R?>#0T-#>'AX>'N[G7`%**B\nM%*)75U=;P,`XGHN+B^U34[\"PL!D9&7'2TCV9`UZ[NRIZWT>E\"V;$=3C`JF4^\nM:\\/..XCL:(#!0QVQL6S3B&COL4.Y6EK<[QV'AX>'AX>'AX>'AX=NP$M*B%J`\nMU,@2M>_4XBZVO5H.(1!:O7[@MEI:'=RQL8A:#(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AUD!!WAX`:EU=6$E)75U):,EP%MN%&Y;;L\\4R%?4\nM)(PIUC!<AX>'AX>'AX>'AX=75\\@%2J##=>3AE,Q1'.O>8%%1JPT746!1#6#,\nME(PI](>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A_#-.1R7\\.D.#NGP\nM\\/#P\\/`P,\"VL[&BQ[WY:6EI:6GZQ(F0MC%&4VF3Q[&B'AZ(4%%O`34BS)750\nM@]:,C\"M0@]8I+61-2J#QQNRUI[V]L>P45^^Q:,;L[.RL9-HI](P&E`:,*=HM\nM,#`P,(R,!@8!`8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AP$!`0$!`807]1<W7+.(N;:VN2+QK*QD9*1J!LQ14:'NJC9;%,B`7PRV\nML=3J7T/L[*RJ34A\\+2F<X23T]`8W-\\Q@BXN+X=X-#=XGW@T-#0W>X>'A)]X-\nM#0T-#2?AX>'N[G7`%*(4%*)75U<4%!3`==+2TG%QTM(]/9D#`UZ[*BIZW]]'\nMI0MF9L3$,8>'=<#`JF4^:\\/..XCL:(#!0VCOL6S3M;'OL0RY6EK<L>R'AX>'\nMAX>'AX>'AX=NP$M*B._JU-02M:?(XM.V6EH.X!!:O>_@MEI:'=QH:(A:#(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AY4!`0%X`75U=24E)75U\nM)39+P%MN6VY;;L^BR%?4)(PI@8Q6AX>'AX>'AX>'AX?/5\\@%2J##=>3AS&!1\nM'.O>45'UJPWU45'U#5%@E`;TC'7`6UM;6\\#`=4;N.5F'AX>'AX>'AX>'AX>'\nMAX>'A_#-EQPH\\.D.#NGI\\.GIZ?`M+63Q[&BQ[WY:6EI:6GZQ(F0P*6\"4VJSQ\nM[&B'AZ(46UMUY7!\\T)Y0H8$&!@'-H=:,VBWE2*#Q[.RUI[V]6FA&5UKOL;&Q\nM:,;LK\"TIC#=@45',E`:,C(R,!@8W-S<!`8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AW83O+QVO!/U%S=6?*[<MK:Y(O%DI*2:I+.8\nM!LQ1%Z$YJF[`%,B`Z`SO?M3J7T,=[/&J3;ZS+=J<X0KT]`;,S&!1TM+2)]X-\nM#0W>W@T-#=XGX>'AX2<-#0T-#0TGX8'N[CA;%!046Q2B5U=75U=;=5Z[N[LJ\nM*BHJ*GK?1T>E\"PL+R,C(@(\"B6\\#`P,#`=<#`JD2@:\\#..Z[L'8#!0VCOL6S3\nMM;'OL0RV6EJYL>R'AX>'AX>'AX>'AX=NP$M;B+'J5]02#,;(!=,06EH.YA\"]\nMO;$AN5I:'8AH:(A:#(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAY524@%X`75U=24E)3@X2ZIN6UMN6VY;`L]7U%?4\"HST@8R4AX>'AX>'AZ:F\nM@^3/5\\@%2J`E=>0G8&#U'.O>4?7UJPWU45'U#5%@-Y2,C#C`P,`X=75UGCE9\nM6;R'AX>'AX>'AX>'AX>'AX>'A_#-.1PH\\.D.#@[IZ>GIZ>GQK*SQ[&BQL>]:\nM6EI:?N]H\\60P!F`&+:SQ[+&'AZ(46\\!UY7!<*YXHG)_,S(0HG($&*=KE2#ZL\nM[/&UQEI:O>\\I1EM7O;V][^_O[^]H[*QD+8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'`@*JS%%1!MID\nMK/$=[UKOL6@=OH>'AX>'AX>'AX<Y1MG`6P*`Z$.V6M0.C0S&:\"*J3;ZS9-J<\nMX23T]`;,S&!1*BHJX=X-#0T-#0T-#0W>)^'AX2<-#0T-#0W>GX'N83A;%!1;\nM6UL4HE=75U<4==_?W]_?1T>EI0L+9L0QAX>':\\C(@(\"`JH\"`@(\"`=3C`JD2@\nM:\\#..Z[L'8#!0\\;OL6S3M;'OL0RV6KVY:/%9E5)260>'AX>'AX=NP\"5;6P+J\nM5\\C!0^P\"!=/<[WX.YA!:O6@A$'Y:[(AHL8B]#(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AY52A`%X`75U=25+2\\#`;JIN6UMN6P(4`L]7U%?(\nM@0;T@8S6AX>'AX>'AZ:F@^3/5\\@%2J`EJ>0G8&!1'.O>45'UJPWU46!1#5%1\nM8,PWE#C`P#AU=:F>`1P<'':'AX>'AX>'AX>'AX>'AX>'AX?9E94H\\/#I#@[I\nMZ>D.Z>GL(B+L'6BQL;%^6EI^[VCLK+.,-_7T+?'L:.^'AZ);P#BIY>$&`7@H\nMZ_514;PYZ]XWC##E<#YD\\?&NQEI:O5HP1EN]O;V]6EI:6N_&\\61D+8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>';JJJ]6`&VF3Q[&AH?N]H'2(B/H>'AX>'AX>'AX?N[MDXP`*JP2$=\nM?M0.V[5HL>R`3;ZD9\"WEX23T])1@S,Q1Q#&'X>$GW@T-#0T-#0T-)^'A)PT-\nM#0T-#=Z?@8'083C`%!1;6\\!;%%=75U<4Q,3$Q,3$Q#$QAX>'AX>'AX>'U-34\nM@(\"JJJJJ@(\"`=3@XJD2@:UM-.XCL:(#!0\\;O[VS3M;'OL0RVO;VY:/$'!UE9\nM4EF'AX>'AX=+.\"7`6V[J5]02(?$\"!4J(L;'IT[5:6B([B+'O[-QHL8B]#(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AY654@&>*W5U.$O#PUM;\nM`JIN6UL\"%`*BR,]7U%?(GP:,@8S6AX>'AX>'AZ:F@YS/S\\CI2J`EJ>0G8&!1\nM'.O>8%%1JPT78&!1#5'U45%@S#@X.'5UGIX!A%DY4@&'AX>'AX>'AX>'AX>'\nMAX>'AX=U`0&>L_%H[PX.Z0X.#@YH:&AHL;&Q[WY^6G[OL8>'AX>'AX>'AX>'\nMAX>'AQ1;P'6>Y>$*`0$HZ_51]1,<JPU@!HSE<\"0MK*RN'5KOO5HP[L!^6EJ]\nMO;V]O5IH[*PM+8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'-C8!`08M9.SL:.]:?K$=(B+Q0X>'AX>'\nMAX>'AX?N[A%UP&ZJP2$=[]0.V[6GL1V`33NDK&3E<\"0I])1@S,Q1AX>'AX>'\nMAX>'A]X7]?7U]2?>W@T-#0W>)X&!@>'0877`6Q1;6X>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'U-34R*JJJJJJJH\"`=74XJD2@:Q1-(8C&:(#!0QWOL6S3\nMM;%:[[6GO;VY:/'9V:D'E5*'AX>'AX?#.\"7`P&[J5]02._%N!4J(:&CITXBQ\nML?$[B,:Q(MQH[XB]#(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAUE9`7B>T'4XP,-N;A04`JH\"%!0\"HLA7R.I7U%?(GP:,@8PDAX>'AX>'AZ:F\nM@YS/S\\CI2CXEJ>3AS,Q1'.O>8&!1JPT78&#U#5%145%1475U=76>>`&$E>[N\nM*RN'AX>'AX>'AX>'AX>'AX>'AX>I`0&>,*P=6HWHP4U-\\?'Q9#!68%%1S(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AQ3`.'6>G\"<W`0$Y#=Y@41,<ZPU1-XR<<\"3:\nM9&2N[+%HO5I<[L!^?EI:6EI:6N\\=(JQD9(>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'!P$!*Z-D\\<:Q\nM6EJ]6F@=(B+QM8>'AX>'AX>'AX?N[@=U.&ZJP2$BL<CJC;6G[VB`P3MD\\:SE\nM<\"0P*8S,-S<7AX>'AX>'AX>'AQ?U%Y^?%_7U%Q<7%_6\\A'AU%-175Z*'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'U-3(?\\BJ@(\"J@(\"`=75UJD2@\nM\"11-(8AH:(#!0^SOL6S3B+%:[[6GO;VY:/'9V=FI65*'AX>'AX<E=6'`P,.`\nM5\\A-.ZQNZ4J([.SI2J#L[&1(H.SL\\8AH[XA:0X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AP<'>)ZI83C`P&X\"`A17R*K(%*+(5\\A7U,]7R%>J\nMGP:,@8PDAX>'AX>'AZ:FY)S/S\\CI2CXEJ>3A-S=@'.O>8&!1JPT78&#UWF!@\nMS,S,475UJ9YX`80!!^XK*]\"'AX>'AX>'AX>'AX>'AX>'AX=UGG:>S63L[^A?\nMZ,%-(B+QK#!6-U%1S(>'AX>'AX>'AX>'AX>'AX>'AX>'AUO`=76>G\"<W`0$Y\nM#=Y@41,YZPU1S`:<X20P+2V@[+$=O5J,=<\"QL>]^6EI:6N]H(JRLAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'O!/N=77Q[+%:6KV]6EJQ:!VUM8>'AX>'AX>'AX?N[A%U.&ZJP2$B\nML<CJC;6G[QV`P3MD\\:SE<\"0P*8PWE#=@AX>'AX>'AX>'A_7U%Y^?GQ?U]?7U\nM]?6\\=GAU%-175U>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'U-34\nMU,C4@(\"`@(\"`=75UJD2@SZ)-(=QH:(#!0^SOL6S3B+%:6K6VO;W<QO'9V=G9\nM!U*'AX>'AX<E=6%+.\"6`H@)-OJS#Z4JN[.SP1#[Q\\;-(:JSLK(C&L8CO0X>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AP<'>)YU)<!;6P+(R%=7\nMU(#45U?4S]17U,]7U%>JGP;T@2DD>'AX>'AXGIZ>G@W/S\\@%2J`EJ>3AE)3,\nM'*L-8&!1JPT78%%1)S<WE#=@4:F>GG@!A`%9[NXK*]\"'AX>'AX>'AX>'AX>'\nMAX>'AX=UGH2>N*SLL>CHZ,$4'1WQK-HP5C?,-X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AUO`=76>G.&4`0&K#?51]1,<ZPU1S)2<X=;TVMJ@\\6CL6K'9=5MHL;'O\nM?EI:6K$=\\:QDAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX1U.,!;:%I:O;V]O5I:L6@,M0R'AX>'\nMAX>'AX?N[A%UP&ZJP2'LL<CJC;6V[QV`33ND\\:SE<\"3:VHPWE)11AX>'AX>'\nMAX>'A_7U%Y^?GQ<7]?7U]?43O'AU`E=75U>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'U-34U-34U,CJ@(#J=25UJD1#SU<2(=QHL8#!0^RQL6S3\nMB&A:[PRV6KW<[*S#PW7`6UL4%!2B5U<E=24E=26`%`)-OF1+Z4JN[\"+P1#YD\nMK#!P:BWQI*[L:*YH(8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAP>I>)YU)<!;%,C4R%=7U(#45U?4S]17U,]7U%>``0$K`=#0=75U=75UJ>'A\nMX0W/S]0%2J`EJ>3AE)0W.>L-45'UJPWU4?51X924!I0W8)Z>>%)2`7CN[H>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'J0%XN&3L:.CHZ.BQL1WQ9+,P5E8&AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AULX=76>Y>$&`7@H#?51];P<JPU1S)2<H=;T\nMVMJ@K.PB6F@'-FL=:+&Q[UI:6F@BK&0MAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AWC`P%L45[V]\nMO;V]O;V]6K$,#`R'AX>'AX>'AX?N[A%UP`*JP2'LL<CJC;7&L>SP3;ZDK&3E\nM<\"0PVHR4!I11AX>'AX>'AX>'AQ<7%Q<7%Q<7]1?U]1,3O'@E;J)_(-2'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\C(R,C4ZNKJ=24XJDA#\nMSU?!(;FQL8#!0^RQL6S3KFA:[PRV6EJ([*QNPV$E=:EU=75U=74E)25A)26`\nM6VY-OJ1+Z4J@\\?'P2#XM9#!P)-JLI*3Q[*#L.X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'GJG9GJEUPUM;%,C(U%=7U(#45U?4S]17U,]7U%>`\nM=G:$63E9`0%2]9\\8UN$8)]Y7S]0%2J`EGN3A-Y0W.>O>4?7UJPWU45%@X3>4\nM!@8WS(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'J7B\\N&3L:,'H\nMZ.BQL1WQ+3`PC`8&AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\`X=76>Y>$D`7@H\nM#?51];P<ZPU1-Y2<H=;TVBD^9.RLL>Q9-B+L'6BQ?EI:[QWQ9\"TPAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'GL!;6Z)75U>]O;V]O;V]6K$,#$.'AX>'AX>'AX=&[MDXP`*JP2'L\nML<CJV[4=L2+P3;ZDK&3E<\"0P*8P&!I11AX>'AX>'AX>'AY\\7%_7U]?7U]?47\nM=KP3O'C0D$M+?R\"'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'A\\@\"=24XJDBNSU?!X+FQ[X#!0^SOL6S3KAWOL0S&6EJN[&0\"P*FI\nMJ9YU86%U=<`E)25A)26`%&Y-OJ1+Z4BDK*SP2)LM9##AF]IDLVJL\\6JLOL\"'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\!;HMG9GG5UPUM;%-34U%=7\nMU,_45U?4S]17U,]7U%>`/CZ@H$-#B`S6]9_6&!@8)][/S]0%2J`EGN3A-Y0W\nM.9S>45%1JPT78&#,X3<WE`8WS(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'8R@3EV3QP1+!P<'OL2*LLUR,C(Q6AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'A\\!U=76>Y>$*`0<H#?51478YZ]Y@E`:<H0HIVBD^+?&:[.P'-B(B[&BQ\nM6EI:L2)D+3`IAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'GL!;%*)7SU>]O5I:6EJ]O>]##\"$AAX>'\nMAX>'AX=&[MG`6P*JP2'<L=0.VPP=L2+P3;ZDK\"WEX20I*58&C)11AX>'AX>'\nMAX>'GY\\7]?7U]?7U]?47A(2\\$P$K$1%N;G^'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'A]0\"=27`JDJN5U?!X+E:?NK!0QWOL6S3\nMKAWOL4/LL;&N\\2VBP)Z>GIYU86$K4@$KT\"5U.,\"`%`)-OJ1+Z4@^9*SP2)LM\nM9##A)\"DM:FIDK&IDOEJQ[(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\!;\nM%-FCJ74X;EM;%-34U%=7U`G45U?45]17U,]7U-2`/CZ@H$-#B`S6%Y_6UA@8\nMX=ZBS]0%2J`EJ>3AE`:4.9S>8%%1JPT7S,S,)S<W-P:4-X>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'8ZL3`2VL36P2P<%^:\")D,%Q65@8WAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'A\\!U=76>Y>$*`0<H#?51480YG\">4C(R<X20P\nM+=HDVJRS[*S9:R+L'6CO6EJQ[*PM,\"DVAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<!P\\-N`LC4R-34\nM?K&QL>]^6B$,#\"$[AX>'AX>'AX=&[MG`6P*`P2&Y[]0.VPSLL2+P3;ZDK\"WE\nMX23T*08&C#=1AX>'AX>'AX>'%_7U]?7U%Q?U]1>$A(1V$P$S,Q$ED&Y_AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX#(.\"7`JDJU\nM5U?H\\K9:6NKH#,9^[VS3KNSO:$/QQFB@\\2U76ZF>GIYU86$K=H0!*V%UP%N`\nMH@)-OK,E\\'!\\9&3P2)LM9##A\"BDM:FHM9&HMON_&[(>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'ASC`%*,V=77`;EM;%,C4U%=7R`G45U?45]17U%=7U,B`\nM/J\"@0ZY#M;76WH$8&-;6@0VBS]3B2J`E=>3A!HP&.9S>45%@JPV?-S<W)S<W\nM-P:4-X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'4*NK`=JLSDT2\nMP<%^:\"*:LS!6!C?,AX>'AX>'AX>'AX>'AX>'AX>'AX>'ASAU=76>Y>$*`0<H\nM#1=@S(27H8$&*8R<X20P+=HDVF0P\\61A\\?$B';%:6K'LK\"TPC`99:X>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX=X2\\-N;FX\"`LC(R&AHL;%^$.#@(3L[.X>'AX>'AX=+[F[`6\\B`Z$.Y\nM?M0.C0SL:\"+P3;ZDK\"WEX23T*08&C)11AX>'AX>'AX>']1>?GY^?GY\\7];QV\nM=KP3O`$K*RMAD$M+AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX\"`.$O`JDJU5U?H\\K:]6NI?M:=:?FS3B.RQQD/Q[.P^K-I7%'6>\nMGIZI86$KO'8!GG5UP!2`5P)-OK,E\\'\";+63P<)LM9##A\"BDM:FHM9\"1DOFCL\nM9(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'ASC`%#;`=3C``EL4HLC4U%=7\nMR`G45U?45]17U%=7U,B`H*!#KK6U$+6^@0J^UM;6@0VBS]3BTZ!+=>1P)/2,\nMEYS>45%@J]Z?-S<WX3<WE`96-X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX><**NK*)?.SFP2P5I^:\")DLS`&-\\Q@AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'ASAU=76>Y>$*`7@H#=[,E`'-H=:,*2F<X20P+=HD,&3:K&1A\\?$B';%:\nM?AWQ+3\",E'83!VN'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AP<E)27#P\\/#PVYN`@)HL7Y:$.#@+M-*2KF'\nMAX>'AX=+[C9;%,B`Z`RV6M0.C0SL:\"+P3;ZDK\"WEX23T*5:,C%91AX>'AX>'\nMAX?U%X$*\"H&!@8&?O!,3$Q.\\=BLS$1$1V6YNAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX\"`P$M;JDJU5U=?\\K:]6NI?M>]:6FS3\nMB.RQ[#MD\\>Q\\9-I7%'6IGI[086$KO+P!GG4X6Z+J5\\A-OK,E\\'\";+2WP<)LM\nM9##A\"BDM:I@M9&IDONQDVH>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'ASC`\nM%#9;.,!;`EM;%,C4U%=7U,_(5U?(5]17U%=7U-2`H$.NM;6U$+4^UM:^UM;6\nM&`VBS]3BTZ[#=4W6F\"F,EYS>45%@J]Z?-S>4X924!@8&E(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX=0S:NK*&/.SFP2P5KO'?%D,%Q6S&\"4AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'ASAU=76>G.$*`7@HG)^4!@'-@]:8VC\"<X20P\nM+2DDVF0MK\"WQ\\?'L:'Y:L>RL+3\",A!.\\=JF'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'V0<E)24E)24E)4O#\nM;@+([UI:M4,AX\"'32M.'AX>'AX=N1C84HM2`7PRV6M3J7T/L:\"+P3;ZDK\"WE\nMX20I*5:,]`91AX>'AX>'AX>?@0H*@8&!\"@HK`0$!`0$!*S,1)1&0;DMN?X>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AZJJP,-;JDJU\nM5U?H\\K9:6NI?M>^]6FS3B.RQ[#ND\\?%\\+2E75W5UGI[086$KO!,!GG4X6Z+J\nM5P)-OJ1+\\'\";VBW-<)LM9##A\"BDM:I@M9&JLOJS:C(>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AW7`6S9;.,!;R%M;%`+(U%=7U,_(5U?(5]17R%=7U-2`\nM[N[N[NY9$!!#OKZ^UHZ.@9ZBS]3BTZ[#=4V^F\"F,N)S>46#,JZ&?-S>4X08&\nM!HQ6-X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<H**NKS6/.;!(2\nM$EKO':R:C%8W45&4!H>'AX>'AX>'AX>'AX>'AX>'AX>'AW5UJ9Z>G.&!`7@H\nMH9\\&C`'-@];TVC#EX20P+2DDVF1DK\"WL(NP=L5I::.RL9-`K`;R\\O)4'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX?9E=#0T&$E)24E)27#;@+(U'Y:M4/3(2[32M,NAX>'AX=N1FNB5\\CJ7PRV\nM?LCJ7T,B:\"+P3;ZD9\"WE<\"0IVE:,](Q1AX>'AX>'AY\\*\"B0*@8$*\"M`'T-#0\nMT-#086%A)9!+2TM+?X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AZJJ6VY;JDJNHE?H\\K:]6NI?M5J]6FS3B.QH[#NDK/%\\+?2'ASAU\nMGI[0T-`KO+S4R,@\"`@+45P)LOJ1+\\'\";VMK-X9LM9##A)\"G:F)@MK&JLOF0I\nMC(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>>>'AX`5)2>)Z>J39;.,!;R%M;6P+(R%=7\nMU,_4R%?(5]17R%=7U-3(-D9&[N[N=:D,/CZ^UH>'AZFBS]3BTZYN.$V^:MHI\nMN)S>8,PWZZ&?-Y0&U@:,C(P&-X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AR@Y'!PH8V/.;!(2?EJQ'?$M],Q145$W!H>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AW5UGIYXG.&!`7@HH8&,C\"O-@]8I+3#EX20I+2DDVJRLK\"WL[!UH6EI:\nML1WLPR5A`7:\\O+Q9!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX?9)=`K*]#0824E)27#;FX\"R-34M;5#TR[3TTK3\nMTX>'AX<\"1@E75]3J7PRVL=3J7T,BQB+P3;YJ9\"WE<\"0IVE:,]`;UAX>'AX>'\nMAX$DFYL*\"H&!*]#0T\"4E)270824E)9!+2P)_?R\"'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'JD9&6P(4JDJNHE?H\\K:]6NI?M>^]6FS3\nMKNS&\\3NDK.Q\\VO2'AX>'AY[0T-`K%%?(R,@\"JJK4`@(%OJ1+\\'\";VMK-X9LM\nM9#!P)\"G:F&JL\\:#QOL#`P,!;%!04%(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>>4@%XJ=EUP,!;\nM6R4E)4MN`L-N6P+4U,A7R-34R%?4R-3(U-34U-34JJJJJJJJ6\\#`.(>'AX>'\nMAW6BS]3BTZYNP$V^:C`PN.2?S#>44*&!!@:,UHR,C)X!`8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AQ,3'#DH4,X%;&QL?G[OL>PMC,Q145',-U:'\nMAX>'AX>'AX>'AX>'AX>'AX>'AW6IGIYXG.$*`7C-H8&,C\"O-@]8I+3#EX20I\nM+2DD+?'QK&3L(NQH6EI:[VAN;DLE*P%VO!.\\!P>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW4E)=`!`2O0T\"4E)24E\nMPVX\"`LC(U+5#/DK3T]/3T].'AX>J1L]75QOJZ`RY:,CJ7T/QQO&J3;YJ9\"WE\nM<\"0IVE8&C%;UAX>'AX>'@0J;FYN;\"@HK*]#0T\"4E)4MA8260D&YN`M34U-2'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'[NY&%!04@$2N\nM%%?!\\K:]6@Z-M>^]6FS3KNS&\\3ND\\>Q\\+?2'AX>'AX>'ASC`6Q3(U,C/@.K4\nMR`)NPR4E)66;VF'9<)MD9+-AF]IU824E6V[#)12BHE=75U=75U<AAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<!>(1260>IV=G9V=!A)4MN`F[#;@+4U-34U-3(U,C4U-34U-0;U-3(\nMJJJJJJJJHA046\\`EAX>'A]G/5]3BTX@\"P$V^:C`PN*&!E`:,4*$*C(Q6UHR,\nM*YX'`8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'$[R\\@H(H4'D%!6SO\nM6EI:L>PMC,Q146!@S#>4AX>'AX>'AX>'AX>'AX>'AX>'AW6IGIZ>Y>$*`9Y0\nMH=:,C\"O-@R0I+3#E<\"0I+=H^9.SL\\63Q\\?$=L5I:?LAN;B70*P&$O+P3O`?9\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>>\nMGB4E82L!`0$KT-#0824E2VYN`@+(R,A#/IM*TR[3T]-*AX>JJL]75]2`Z\"'<\nM'0+J7T/QQO&J3;YJ9\"WE<\"3T*58&!C?UAX>'AX>!\"IN;/CX^FV'0T-#0T\"4E\nM2TLE81&0;FX\"U-34:]34AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'[NY&%!2B@$2N%*+!X+9:6@Y?M:>]6FQ*KNS&\\3ND\\>Q\\+2F'AX>'\nMAYZ>GG5U.,`\"R-3/@(#(`F[#)25A8=#0T&%A)24E)24E)25A)27#;@(\"`EM;\nM6UM;%!04(>`AAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<!GE*>6S:CV=D'!X1VO+P3O+QV=H0!*]!A\nM824E2\\/#;F[#PTM+2VX\"U-34U-3(R,@\";DLEAX>'AY[/5]0%TZX\"P$V^:C`P\nMN(/6C(R,8^$D]\"DKGI[0*YX'`8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'$[R\"@H(`86%Y!6Q:O5I:L>PMC,Q1]5%145%148>'AX>'AX>'AX>'AX>'\nMAX>'AW6IGIZ>Y>$D*YY0@]:,C\"O-@R0I+=KE<\"0I+=H^9.SL\\:SQK/'L:'[4\nMR,@\";B70*P&$O+P3O':I>)Z'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\n-------- End of part 7 of 14 --------\n \n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4463, "properties": {"category": "sci.electronics", "text": "From: row0@ns1.cc.lehigh.edu (RICHARD O. WHITE)\nSubject: Re: Help with ultra-long timing\nOrganization: Lehigh University\nLines: 49\n\n\nIn article <1993Apr5.083324.48826@kuhub.cc.ukans.edu>, wellison@kuhub.cc.ukans.e\ndu writes:\n>I have a project that was drooped in my lap that is somewhat a pain to design.\n>What I am looking for is a stable ultra-long solid state timer. What they want\n>to do is to place this thing on the Antartic ice shelf and measure the amount\n>of snow fall over a period of six weeks. Every two weeks, they want to trip a\n>selonoid to discharge different colored pellets by gas pressure out across the\n>snow. Then by digging down into the snow, the snow fall amount can be measured\n>as they come to the different color pellets.\n>\n>The problem is trying to build a timer that would stand the cold (-40 degrees)\n>and a power source that wouldn't drain. I have looked at the XR-2204 timers and\n>the standard NE556 dual timers, but thier temp specs won't go that low. Also,\n>two weeks equates to 1,209,600 seconds per firing, which means one big timing\n>cap ! I have found 2.2 farad (yes, Farad !) caps that have a working voltage of\n>5 volts and are small in size. But again, the time of discharge at -40 or lower\n>degrees isn't linear. I was thinking of using several timers chained together\n>to fire the selonid at the end of the timing period, but that blasted cold and\n>the drain on a battery over six weeks is the pain. One possibility would be to\n>use solar panels, but this is during the six month twilight. Anyone have any\n>good ideas ?\n>\n>Thanks in advance...\n>\n>-=-= Wes =-=-\n>\njust a suggestion:\ntake a motorola mc14536B set it up to give you a pulse once every sec or ten\nsecs with either a RC or xtal clock input. then feed to a MC14521B as clock\ninput and decode output for 1,209,600 sec output ,might have to add a few 'and'\ngates or decoder chips to get output and reset pulse back to the'521 to restart\ncycle... Trigger a oneshot from the decoded riseing edge ;the one shot then\ngoes to a mosfet to drive the mechanism to fire the pellet launcher..\nthese ckts require uAmps of current,between 5 - 15 volts, so a 12 volt\ngel cell of a few Amphours would last the six weeks.\nThen take the ckt board & battery wrap in 3\" or 4\" of foam or build a box\nof out of the stuff...with plywood or metal exterior...\nbuild a small heater out of 10-50 Watt resistors in series to keep the battery\nand ckts warm.\n2nd thought use 2 batteries one for heater one for timer and pellet trigger.\n\nInsolate-insolate.......even though the chips state that the - AL\nrated devices are good to -55 C.. The batteries have a considerable reduction\nin capacity...oh make sure the area inside has minium air leakage..\n\nhope this helps\nRW     ( is this to long winded for the net??)(be gentle)...\n-- \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4464, "properties": {"category": "sci.electronics", "text": "From: rmf@bpdsun1.uucp (Rob Finley)\nSubject: Re: RAMs &ROMs with ALE latches (for 8051's)\nOrganization: Harris Allied Broadcast Div., Quincy, IL\nLines: 22\n\n\nIntel also makes some neat memory and peripheral chips:\n\nOld technology (early 1980's)  \n8155  ram plus IO (slow ram as I recall)\n8755  eprom plus IO (expensive and slow)\n\n\nIntel does make Eproms with built in address latches.\nI fear that you would need a very flexible and up-to-date eprom\nprogrammer to write to them.\n\ngive them a call.  I am not able to locate their memory products book\nyet.\n\n\n\nSigh...  Now, who borrowed it...\n\nRobert\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4465, "properties": {"category": "talk.politics.misc", "text": "From: kane@buast7.bu.edu (Hot Young Star)\nSubject: Re: Mr. Cramer's 'Evidence'\nOrganization: Astronomy Department, Boston University, Boston, MA, USA\nLines: 36\n\nIn article <philC5HsII.GFt@netcom.com> phil@netcom.com (Phil Ronzone) writes:\n\n>In article <1993Apr13.121723.20568@sun0.urz.uni-heidelberg.de>\ngsmith@lauren.iwr.uni-heidelberg.de (Gene W. Smith) writes:\n\n>>When are Libertarians going to draw a clear line between\n>>themselves and NAMBLA? By your own statements, you were once\n>>a member of an organization which you *knew* supported\n>>exactly what NAMBLA supports, namely abolishing the age of\n>>consent. I've never supported any such organization. YOU\n>>have.\n\n>While both organizations may, on paper, support the abolition of the age\n>of consent, there the resemblance stops.\n\n>One supports the removal of a coercive law, the other a paper facade\n>to \"legitimize\" sexual relations with children.\n\nWhat's the difference, in practice?\n\nIt amounts to your saying, it's disgusting but should be legal,\n\n***or***\n\nsomeone else saying, let's allow the parties involved to decide what is\ndisgusting.\n\nOr, if you're like me, you think that it ISN'T a coercive law, because\nsome children can't make informed consent.\n\nBrian\n------------------------------------------------------------------------------\nkane@{buast7,astro}.bu.edu (Hot Young Star) Astronomy Dept, Boston University,\nBoston, MA 02215. True personal salvation is achieved by absolute faith in\nones true self.\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4466, "properties": {"category": "rec.sport.baseball", "text": "From: hasch@jhuvms.hcf.jhu.edu (Bruce 'DoppleAckers Anonymous' Hasch)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nOrganization: The Johns Hopkins University - HCF\nLines: 132\nDistribution: na\nNNTP-Posting-Host: jhuvms.hcf.jhu.edu\nSummary: Dave Winfield was a marginal ballplayer.  Yeah, right.\nKeywords: Hall of Fame, Winfield, Kingman, Murray, Joe Lundy, :-)\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr15.093231.5148@news.yale.edu>,  (Steve Tomassi) writes...\n>     Hi, baseball fans! So what do you say? Don't you think he deserves it?\n>I mean, heck, if Dave Winfield (ho-hum) is seriously being considered for it,\n>as is Lee Smith (ha), then why don't we give Dave Kingman a chance? Or Darrell\n>Evans! Yeah, yeah! After the Hall of Fame takes in them, it can take in\n>Eddie Murray and Jeff Reardon.\n\n\tOh, yeah.  Dave Winfield--marginal player.  Guy didn't hit a lick, had\nnegligible power, was a crap fielder and had no staying power.  Dave Winfield,\nnow entering his (I believe) 20th big league season, is still a damn decent\nhitter.  Admittedly, his defense has slipped a great deal, but in his prime,\nhe had a powerful arm and great range.  Take a look at the stats:  I don't \nknow where you even BEGIN to make an argument that Winfield and Kingman are\nsimilar players.  Kingman was a one-dimension power hitter--he couldn't field,\nhe ran like an anvil, hit for a low average (though, if I remember right, his\nOBP wasn't THAT hideous...), and (for those who consider such things important)\nwas a absolute-primo-dick.  \n\tEddie Murray?  Yup, only the best 1st baseman of the 80's.  I know that\nMVP votes are conducted by mediots, but given that he got jobbed out of the\nMVP he deserved in 1983, it seems that he wasn't overrated by the media.  \n\tLee Smith?  Hmmmm... This one's actually pretty close.  He's had a s\nsolid, dependable career as a closer despite pitching in some nasty parks \n(Wrigley, Fenway...).  I'd have to take a closer look at the stats (it's been \na while), but it seems Lee Arthur is of HOF caliber.  \n\tYou do make a legitimate point about the HOF credentials of relievers,\nsimply racking up a lot of saves doesn't mean a whole hell of a lot if you \nblow a bunch, too.  Simply because Minnesota and Boston and (for a month)\nAtlanta used Reardon as a closer for longer than he should have been one, \nthe Equalizer has racked up an impressive number of saves.  No way should \nHomerMan be in the HOF, IMHO.\n\tDarrell Evans?  Nice career, actually a bit underrated (kinda like\nTed Simmons, IMHO), but not a HOF'er.\n\n>     Well, in any case, I am sick and tired (mostly sick) of everybody\n>giving Hall of Fame consideration to players that are by today's standards,\n>marginal.\n\n\tLemme ask you this.  Who the hell playing the game ISN'T marginal?\n\n>Honestly, Ozzie Smith and Robin Yount don't belong there. They're both\n>shortstops that just hung around for a long time. Big deal.\n>Let's be a little more selective, huh? Stop handing out these honors so\n>liberally. Save them for the guys who really deserve it. Face it, if something\n\n\tNow, wait a goddamn minute here.  Ozzie Smith absolutely REDEFINED the\nposition of shortstop.  His defense was SO good that he's won something along\nthe lines of 10 Gold Gloves.  Again, Gold Gloves are mediot-biased, and a \ngood argument could be made that Larkin deserved one or two of Ozzie's more\nrecent awards, but usually, this is tempered by someone else in the early\n80's getting the Gold Gloves Ozzie deserved earlier in his career.  Ozzie's\noffense, you ask?  Good OBP, great speed numbers, in a park which, for most of his\ncareer, depressed offense, admittedly, no power ('cept against Tom Niedenfuer\n:-|), but still, a definite asset offensively.\n\tYount?  3,000 hits, MVP at two different positions, uh-huh, a real\nstiff.  His '82 was one of the great years EVER by a player in recent memory,\nand probably ranks behind only the peak seasons of Wagner and Banks, as far as\nSS numbers go.  He's a clear HOF'er, IMHO.\n\n>isn't done, there will be little prestige in the Hall of Fame anymore. When \n>certain individuals believe that Steve Garvey or Jack Morris are potential \n>candidates, the absurdity is apparent. Gee, can these guys even compare to\n>the more likely future Hall of Famers like Kirby Puckett or Nolan Ryan?\n\n\tWell, as far as Garvey goes, you're right.  Garvey is a \"mediot\" \ncandidate, pushed because of his \"winning attitude\" (a minor factor, if one\nat all), and his \"great defense\" (no errors, admittedly, but the range of\na tree stump...).  Garvey shouldn't be in the HOF.\n\tSkyJack?  I've said a lot of nasty things about SkyJack in the last\nyear or so, but this is mostly in response to mediots and woofers who talk\nabout Morris' \"ability to win\" which is nothing more than Morris' \"ability\nto pitch when Toronto to score tons of runs\".  At this point, Morris is an\naverage pitcher (although from his early returns in '93, he may be damned \nclose to done.).  But, in all fairness, Morris was a dominant pitcher in the\n80's for up-and-down Tiger teams.  While 1984 was (obviously) a great year\nfor Detroit, the rest of the decade, the team was generally in contention, but\nnot favorites.  Morris' career numbers are quite good, and worthy of HOF\n\"consideration\".  \n\tRyan?  Of course, but be careful.  I guarantee you that someone will\nthrow back your earlier logic about \"Yount and Smith being shortstops who \nhung around a long time\".  After all, Nolan never won a Cy...  Damn, he's \njust pitcher who hung around for 99 years...  His W-L record is mediocre...\n(Of course, Nolan's a HOF'er...)\n\tPuck?  Probably, although he's got to play reasonably well for a few\nmore years (10 years, even good ones, aren't enough to make the HOF, most\nlikely).  That said, I believe Puckett WILL make the HOF, pretty much\nregardless of how the rest of his career turns out (barring something REALLY \ntragic or sudden).  He's very popular in the media and with fans, and\nlegitimately has been one of the best CF's in the game since he joined the\nleague.  I've always liked the guy, and I hope he does make it.  And, in the\nend, I think the Puck will make it in.  But, really, it's too early to sell.\n\n\tThis debate comes up rather frequently on the net, and, believe it \nor not, I never tire of it.  It's an interesting subject.  Here's an off\nthe top of my head list of potential HOF'ers from each team.  I probably\nleft a couple of guys off, so feel free to follow up.  I won't consider ANYONE\nwho started playing after about 1985 (again, too early to tell.) [Note: these\nare all active players, I'm not counting recent retirees]\n\nBaltimore:  Cal Ripken (should be a lock by now, even if Gehrig's record stands)\nBoston: Roger Clemens (might be a lock already, which is amazing), Dawson (?)\nDetroit: Alan Trammell and Lou Whitaker (possibilities)\nMilwaukee: Robin Yount (discussed earlier)\nNew York: Wade Boggs (possibly), Mattingly (long shot)\nToronto: Paul Molitor and Jack Morris (possibilities)\n\nKansas City: George Brett (lock)\nMinnesota: Kirby (too early to tell), Winfield (lock)\nOakland: Eckersley (lock), McGwire (too early), Rickey (lock), Welch (LONG shot)\nTexas: The Mighty Nolan [Too early to consider Canseco or Strange :-)]\n\nCubs: Sandberg (lock)\nSt. Louis: Ozzie (lock), Lee Smith (probably)\nNew York: Murray (almost a lock), Saberhagen (obviously, he's got to regain\n\t\t\t\t  \t      past form)\n[And most certainly, NOT Vince Coleman, despite what he'll tell you :-)]\n\nLos Angeles: Butler, Strawberry, and Hershiser are all long shots.\nSan Diego: Tony Gwynn (pretty good shot)\nColorado: Dale Murphy (a good shot), Ryan Bowen (just to see if you're awake)\n\n\t[Before I get flames: this is an off-the-top-of-the-head list, there's\nprobably a few deserving candidates that I left off, and, I didn't include\nBarry Bonds, Will Clark, Any Atlanta Starting Pitcher, Frank Thomas, Canseco,\nMcGriff, etc. because I only considered guys who started playing before\n1985)]\n\n\tE-mail or post, I almost fear what I may have started here...\n\n-------------------------------------------------------------------------------\nBruce Hasch                hasch@jhuvms.hcf.jhu.edu        Sell the team, Eli!!\n\"If a hitter is a good fastball hitter, does that mean I should throw him a \n\t\tbad fastball?\"-- Larry Andersen\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4467, "properties": {"category": "comp.sys.mac.hardware", "text": "From: peterco@eff.org (Peter Cohen)\nSubject: Re: comparative SCSI performance\nOriginator: peterco@eff.org\nNntp-Posting-Host: eff.org\nOrganization: The Electronic Frontier Foundation\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 12\n\nKurt Tiedtke (ktiedtke@jarthur.claremont.edu) wrote:\n: Could someone direct me to information on SCSI performance for each Mac?\n: (Max throughput, etc.)\n\nMax thruput on a Centris or Quadra is about 3.3 MB/sec.\nMax thruput on IIci or IIfx or equivalent is about 1.4 MB/Sec\nMax thruput on slower machines is slower.\n-- \n+-----------------+------------------------------------------------+\n| Peter A. Cohen  |   No, I don't reflect my employer's opinions.  |\n| peterco@eff.org | Heck!  My employer doesn't even know I'm here! |\n+-----------------+------------------------------------------------+\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4468, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: Israel's Expansion\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 39\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <18APR93.15729846.0076@VM1.MCGILL.CA>, B8HA000 <B8HA@MUSICB.MCGILL.CA> writes:\n|> Just a couple of questions for the pro-Israeli lobby out there:\n|> \n|> 1) Is Israel's occupation of Southern Lebanon temporary?  For Mr.\n|> Stein:  I am working on a proof for you that Israel is diverting\n|> water to the Jordan River (away from Lebanese territory).\n\nYes it is, as has been evidenced by the previous two stages\nof withdrawal from the area and by the reductions in troops.\nCurrently the troops are kept at a level consistent with light\nand armored patrols.  No permanent installations have been\nbuilt in the area, nor are any planned.\n\nAs to the prodigal \"water question\",  you can continue to waste\nyour time looking for non-existent proof, or you can accept the\ntestimony of people here, some Lebanese, who have acknowledged\nthat they know of no evidence for these allegations.\n\n|> 2) Is Israel's occupation of the West Bank, Gaza, and Golan\n|> temporary?  If so (for those of you who support it), why were so\n|> many settlers moved into the territories?  If it is not temporary,\n|> let's hear it.\n\nIt depends which of those territories you refer to.\nIn general, settlers were moved into the territories because\nat the time, in the context of the situations, it seemed the\nlogical move.  This is not to say that views don't change\nor that mistakes are not made.  Currently, I would say that\nthe only \"disputed territory\" that does not appear to be temporary\nis that of Eastern and northern Jerusalem.\n\n|> Steve\n|> \n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4469, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: westes@netcom.com (Will Estes)\nSubject: Quantum 240AT: is my cache working?\nOrganization: Mail Group\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 10\n\nThe Quantum LPS 240AT is supposed to have a 256K cache on the IDE\ncontroller built into the card.  Yet when I do a DOS DIR command\non my system, the disk is always accessed (I can hear the mechanical\nmovement of the heads).  Why is this happening?  Strangely, even\nwhen I have smartdrive installed, every DIR command accesses the\ndisk.  Did I somehow de-activate the cache?  This is happening on each \nof two machines with an LPS 240AT drive.\n\n-- \nWill Estes\t\tInternet: westes@netcom.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4470, "properties": {"category": "sci.space", "text": "From: xrcjd@resolve.gsfc.nasa.gov (Charles J. Divine)\nSubject: Space Station radio commercial\nOrganization: NASA/GSFC Greenbelt Maryland\nLines: 13\n\nA brief political/cultural item.\n\nRadio station WGMS in Washington is a classical music station with\na large audience among high officials (elected and otherwise).  \nImagine a radio station that advertises Mercedes Benzes, diamond\njewelry, expensive resorts and (truthfully) Trident submarines.\n\nThis morning I heard a commercial for the space station project.\nDidn't catch the advertiser.\n\nGuess they're pulling out all the stops.\n-- \nChuck Divine\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4471, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mblawson@midway.ecn.uoknor.edu (Matthew B Lawson)\nSubject: Which high-performance VLB video card?\nSummary: Seek recommendations for VLB video card\nNntp-Posting-Host: midway.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nKeywords: orchid, stealth, vlb\nLines: 21\n\n  My brother is in the market for a high-performance video card that supports\nVESA local bus with 1-2MB RAM.  Does anyone have suggestions/ideas on:\n\n  - Diamond Stealth Pro Local Bus\n\n  - Orchid Farenheit 1280\n\n  - ATI Graphics Ultra Pro\n\n  - Any other high-performance VLB card\n\n\nPlease post or email.  Thank you!\n\n  - Matt\n\n-- \n    |  Matthew B. Lawson <------------> (mblawson@essex.ecn.uoknor.edu)  |   \n  --+-- \"Now I, Nebuchadnezzar, praise and exalt and glorify the King  --+-- \n    |   of heaven, because everything he does is right and all his ways  |   \n    |   are just.\" - Nebuchadnezzar, king of Babylon, 562 B.C.           |   \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4472, "properties": {"category": "sci.electronics", "text": "From: webb@itu1 (90-29265  Webber  AH)\nSubject: Re: Adcom cheap products?\nArticle-I.D.: hippo.1993Apr16.105738.20864\nOrganization: Rhodes University, Grahamstown, South Africa\nLines: 44\nX-Newsreader: TIN [version 1.1 PL8]\n\n: >I want to upgrade my system and was thinking of buying Adcom seperates.\n: >I have heard from alot of people, though, that Adcom sounds great but\n: >that the components are made cheaply and therefore won't last very long.\n: >The time estimates I've heard are like only 3 or 4 years.  Is this true?\n\nI own the Adcom 60W power amp.  As far as I'm concerned, there's no\n  amp which can touch it at the price range.\nThe build quality is very impressive and is far superior to other \n  amps in the price range.  The whole amplifier is extremely solid\n  with massive heat sinks and very solid casing.\nIf you open the amp up, there are only very good quality components \n  in and the amp seems to be designed extremely well.  Perfect\n  symmetry for both channels and TWO transformers - one for each\n  channel.  The binding posts on the back of the amplifier are\n  virtually the same as those on the Classe model 70 ie. very good.\n\nI was also sceptical about the amps being built in the far-east\n  or where-ever.  But if you look in the amp and see what components\n  they use and how it was designed, you can easily see why the\n  amplifiers sound so brilliant.\nI cannot see why people say the amplifier won't last - not with\n  those quality components inside.  Sure the amp runs very fairly\n  hot - but that's how you get an amp to sound incredibly good.\n\nMy last point, I recently auditioned the Adcom preamp something like\n  the 545 or something.  It was two years old and it still sounded\n  like new.\n\nIf you build an amplifier decently, like the Adcom's, they will\n  sound brilliant and last a long time - period.\n\nJust my thoughts, but then - I do own one of Adcom's amps.\n\n--\n***********************************************************************\n**    Alan Webber                                                    **\n**                      webb@itu1.sun.ac.za                          **\n**                      webb@itu2.sun.ac.za                          **\n**                                                                   **\n** The path you tread is narrow and the drop is sheer and very high  **\n** The ravens all are watching from a vantage point near by          **\n** Apprehension creeping like a choo-train up your spine             **\n** Will the tightrope reach the end; will the final couplet rhyme    **\n***********************************************************************\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4473, "properties": {"category": "sci.med", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Need Reference:  Multiple Personalities Disorders and Allergies\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 28\n\nI heard third-hand (not the best form of information) that there was recently\npublished results of a study on Multiple-Personality-Disorder Syndrome\npatients revealing some interesting clues that the root cause of allergy may\nhave a psychological trigger or basis.  What I heard about this study was that\nin one 'personality', a MPDS patient exhibited no observable or clinical signs\nof inhalant allergy (scratch tests were used, according to what I heard),\nwhile in other personalities they showed obvious allergy symptoms, including\ntesting a full ++++ on scratch tests for particular inhalants.\n\nIf this is true, it is truly fascinating.\n\nBut, I'd like to know if this study was ever done, and if so, what the study\nreally showed, and where the study is published.  Any help out there?\n\nJon Noring\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4474, "properties": {"category": "rec.sport.baseball", "text": "From: sepinwal@mail.sas.upenn.edu (Alan Sepinwall)\nSubject: Re: When Is Melido Due Back?\nDistribution: na\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 16\nNntp-Posting-Host: mail.sas.upenn.edu\n\n\nMelido came off the DL today and will start tonight against the Rangers.\n(Now, if only he can go the distance so that the bullpen doesn't have to\ncome in.....)\n\n--I'm outta here like Vladimir!\n-Alan Sepinwall\n\n===========================================================================\n| \"What's this?  This is ice.  This is what happens to water when it gets |\n|  too cold.  This?  This is Kent.  This is what happens to people when   |\n|  they get too sexually frustrated.\"                                     |\n|               -Val Kilmer, \"Real Genius\"                                |\n===========================================================================\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4475, "properties": {"category": "talk.politics.misc", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: EIGHT MYTHS about National Health Insurance (Pt II)\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 134\n\nharelb@math.cornell.edu (misc.activism.progressive co-moderator) writes:\n>F<O>CUS/HEALTH: EIGHT MYTHS about National Health Insurance (Pt II)\n>\n>    An office visit that's $52 in Seattle is $18 in Vancouver\n>    (Canada).  That's because, among other things, they've given their\n>    government power to bargain with doctors and hospitals over fees.\n\nThe difference in the litigation environment is reflected in the fees.\n\nLack of defensive medicine and near-absence of malpractice is really\nwhy we spend less using the most expensive approach of pure insurance\nin Canada (along with France and Germany) without HMO's --- the NYT\nhas admitted that malpractice insurance fees are an order of magnitude\nlower in Canada but doctors take-home pay is almost equal to American\ndoctors; also, minimal bureaucracy 'cos the system is so-o-o simple\n(early March).\n\nPart of the deal for using the all-insurance approach like the French\nand Germans do (hey, why don't they criticize France and Germany?  Is\nit because too many people take French and German in college to make\nthe accusations stick? (-;) was to preserve the doctors independance.\nSince the provincial wings of the CMA are the ones that go to bat when\nthe fee schedule hikes are presented, the politically-bent doctors\nwere just cackling when they realized the CMA would grow in strength\nrather than diminish, especially when unopposed unlike in socialized\nmedicine approaches like Britain's National Health Service.\n\n>\"`You've got to remember, you've got a waiting list as well, but it's  \n>not as obvious. If you're poor and you don't have insurance, you don't  \n>    go to a surgeon. In the States you ration by ability to pay.'\"  \n\nFor non-life threatening things, market arguments adequately cover why\ncertain procedures are in scarcer demand.  I have MD friends who can't\nmake a living as specialists back in Manitoba not due to the insurance\nrates but because they won't get enough customers -- the CMA medical\nmonopoly's grip on doctors licencing (as in the US) aside -- so they\nmust move to larger places.  However, this does not refute debunking\nof waiting lines for urgent AND routine care, as has been done in the\nU.S. by Consumers Reports, health policy studies cited by Prof. Dennis\nE. Shea on USENET, CNN, NYT, etc.\n\nDoug Fierro has posted a NYT article from 3 weeks ago about Canada's\nhealth insurance approach, on Talk.politics.medicine.  There is one\nsmall error in the article: not all of our hospitals are private.\n\n>WOULDN'T NATIONAL HEALTH INSURANCE MEAN THAT AMERICANS WHO ARE NOW  \n>FULLY INSURED MIGHT HAVE TO SETTLE FOR LESS?  \n>\n>In Canada, provincial insurance covers all health costs except dental  \n>care, eyeglasses, prescription drugs, ambulance service, and private  \n>hospital rooms, -- so many Canadians do end up buying some private  \n>insurance. A policy to cover all of these things runs about #40 to $40  \n>a month.  \n\nOf course, the one thing to note is that in the Canada/France/Germany\ncase, private insurance *offloaded* the basic coverage to the public\nsector.  They realized they were keeping low-risk/high-profit extra\ninsurance for things like private/semi-private rooms (vs. ward\naccomodation), dental, glasses, etc. for corporate or personal\nbenefits, they'll have nothing to do with you if you want to be\ncovered for basic care.\n\nAt that point, they wouldn't even consider a \"voucher\" approach\nto broker the universal coverage and sell policies to make up\nthe difference in the federal guidelines and market stuff.\n\n>******************************************************************  \n>\n>WOULDN'T FREE CARE ENCOURAGE PEOPLE TO RUN TO THE DOCTOR FOR EVERY  \n>ACHE AND PAIN?  \n>\n>People who get free treatment *do* go to the doctor and hospital about  \n>a third more often than those who have to pay a share of their medical  \n>bills.  \n>\n>Still, Canadians -- who pay nothing at the doctor's -- have a lower  \n>per-person health bill than we do.\n\nIt is \"free\" in that there are no deductibles nor copayments (two\nthings which I advocate to make the Canadian insurance look more like\nreal health insurance -- which actually it is).  I know that when\nworking in Alberta, Ontario and Quebec, I was aware that I was paying\nfor health insurance - e.g., in Toronto, OHIP fees were listed on my\npay stub; Manitoba did not collect at paycheque time, but only\nannually at income tax time (built into the tax rate).  Only fiscal\nnaifs will proclaim that it's free, along with the Canadian Left for\nthat is part of their brainwashing agenda.\n\nThe French do have copayments, though.  France Magazine's Summer \n1992 edition has a fantastic presentation of their basic insurance\ncoverage, including a sample chart of copayment percentages.  For \n1-30 days, you're covered for 80% of the public hospital rate, 100%\nafterward.  With extra private insurance, you can get into a private\nhospital and be covered for any differences beyond the public hospital\nrate.  The public insurance covers 100% beyond 30 days, or the same\ncash amount for a private hospital and the difference is paid\nout-of-pocket or according to your supplementary private insurance.\nOver 2/3rds of French have some form of extra private insurance.  So,\nthe other 30% of health costs in Europe are out of private funds, not\ngleaned from other taxes.  The GDP figures are combined public and\nprivate expenditures for total outlay using the same methods that\nyield the 13-14% figure for the U.S.\n\n>ISN'T THE PRIVATE HEALTH INSURANCE INDUSTRY JUST TOO BIG  \n>AND POWERFUL TO KILL?  \n>\n>Dismantling the health segment of our insurance industry would be  \n>\"politically thorny,\" in the quiet words of one advocate for a  \n>national plan. Some 1,200 firms now sell more than $192 billion in  \n>health insurance. They'd put up a hard fight. Not only has the industry  \n>grown eightfold since Canada shut down its own health insurers, but \n>our government leaves politicians more open to lobbyists than does  \n>Canada's parliamentary system.\n\nHealth insurance does exist in Canada and in Western Europe, its\njust that it doesn't cover basic care.  You can opt out in Canada\nand Germany, but you'll have to go uninsured as a result because\nthere are too few other people that do so --- i.e., no market.\n\nWhen private insurance realized how much money they'd make without the\nrisks involved in basic insurance (e.g., neurosurgery) versus deluxe\namenities (e.g., having to call Granada TV to replace a rental set on\nthe fritz in someone's private hospital room), they started to pat\nthemselves on the back for their social responsibility.  In Quebec\nlast spring, a consortium of private insurers publicly warned against\nany thoughts of privatizing routine, low cost parts of that province's\npublic health insurance plan.\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4476, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: louray@seas.gwu.edu (Michael Panayiotakis)\nSubject: exit codes (dos--sorry for wrong group : (\nOrganization: George Washington University\nLines: 19\n\n\nHey now.  First of all, sorry to post this DOS question in a WINDOWS\ngroup, but I'm in kinda a hurry, so I can't scramble to find the dos\ngroups' names.  \n\nAnyway, anyone know where I ccan find the exit codes to DOS commands?\nthe manual doesn't seem to have all of them.  I'm particularly looking\nfor COPY, in order to make a \"move\" batch file, such that if the file\nwasn't coppied properly, it won't be deleted.\n\n\nplease e'mail louray@seas.gwu.edu\nThanks, I.A,\nMickey\n-- \npe-|| ||  MICHAEL PANAYIOTAKIS: louray@seas.gwu.edu \nace|| ||                                   ...!uunet!seas.gwu.edu!louray\n|||| \\/|  *how do make a ms-windows .grp file reflect a HD directory??*\n\\\\\\\\   |  \"well I ain't always right, but I've never been wrong..\"(gd)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4477, "properties": {"category": "talk.religion.misc", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: Part 1 and part 2  (re: Homosexuality)\nOrganization: University of Georgia, Athens\nLines: 80\n\nIn article <m0njXCg-0000VEC@juts.ccc.amdahl.com> rich.bellacera@amail.amdahl.com writes:\n\n>Perhaps you don't get it, and maybe you never will.  Many didn't get it in the\n>Middle Ages and the proclaimed God's will be done as they massacred thousands\n>in witch hunts and inquisitions.\n\nThere were many injustices in the middle ages.  And this is truely sad.\nI would hate to see a day when churches put people to death or torchured\nthem for practicing homosexuality, or any other crime.  The church is not\ncalled to take over the governments of the world.  It may be that homosexuals\ntreated cruelly today, but that does not mean that we should teach \nChristians to practice homosexual immorality.  Do you think that we should\nalso teach Christians to practice divination and channelling because\nthe witches in the middle ages were persecuted.\n\n\n>The major flaw in all this posturing is that in the end, the\n>final effect of posts like that of yours and Mr. Hudson is that YOU have a\n>\"conditional\" love for gays.  Condition:  Change and we'll love you. This is\n>sure strange coming from a group who claim that God has an \"unconditional\"\n>love, one that calls people \"just as they are.\"\n\nAnd you accuse me of judging?  When did you look into my heart and see\nif I have love.  I have been writing that we should not teach Christians\nto practice homosexual immorality, and you pretend to have divine knowledge\nto look into my heart.  I can't say that I love homosexuals as I should-\nI can't say that I love my neighbor as I should either.  I don't know\nvery many homosexuals as it is.  \n\nBut Jesus loves homosexuals, just as He loves everyone else.  If His love\nwere conditional, I not know Him at all.  Yes.  We should show love to \nhomosexuals, but it is not love to encourage brothers in the church to \nstumble and continue in their sin.  That is a very damaging and dangerous \nthing.\n\n>The results of the passing amendment in\n>Colorado has created an organization who's posters are appearing all over\n>Colorado called \"S.T.R.A.I.G.H.T.\" (I forget the whole definition off hand,\n>but the last part was Against Immoral Gross Homosexual Trash) and their motto\n>is \"Working for a fag-free America\" with an implicit advocation for violence.\n>\n>This is sick, and it seems to be what you and Mr. Hudson, and others are\n>embracing.\n\nThat is slander.   I could just as easily say  that NAMBLA has been able\nto implement legislation to make child molesting easier because of\nthe tearing down of societies morality due to people accepting homosexuality\nas normal, and that this is what you are embracing.  I do believe\nthat homosexual sex is immoral, that does not mean I endorse using violence\nagainst them.  There is a problem of hatred in the church.  But there\nis also the problem of what has been called \"unsanctified mercy.\"\nMany in the conservative churches have seen the moral breakdown in \nthis country and the storm on the horizon, and have gotten militant in \nthe flesh.  This is truely sad.  Yet others in other churches have \nembraced immorality in society, and have pointed to the carnality in the\nconservative churches to justify their actions.  \n\n>Why don't we just stick to the positive and find ways to bring people\n>to Jesus istead of taking bullwhips and driving them away?\n\nCertainly we should not use a bullwhip to drive people from Jesus.\nBut we shouldn't water down the gospel to draw people in.  Jesus didn't\ngo out of His way to show only what might be considered positive aspects\nto draw people in.  He told one man to sell all He had.  He told\nanother not to say good bye to His family.  His words were hard at times.\nWe should present people with the cost of the tower before we allow them\nto begin construction.  many people have already been innoculated to the\ngospel.\n\nLink Hudson.\n\n\n\n\n>\n>Whatever\n>\n>Rich :-(\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4478, "properties": {"category": "alt.atheism", "text": " wupost!uunet!olivea!sgigate!sgi!fido!solntze.wpd.sgi.com!livesey\nSubject: Re: >>>>>>Pompous ass\nFrom: livesey@solntze.wpd.sgi.com (Jon Livesey)\n <93089.050046MVS104@psuvm.psu.edu> <1pa6ntINNs5d@gap.caltech.edu> \n <1993Mar30.210423.1302@bmerh85.bnr.ca> <1pcnqjINNpon@gap.caltech.edu> <kmr4.1344.733611641@po.CWRU.edu> <1pi9btINNqa5@gap.calte\nOrganization: sgi\nNNTP-Posting-Host: solntze.wpd.sgi.com\nLines: 20\n\nIn article <1pi9btINNqa5@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n|> \n|> >>Then why do people keep asking the same questions over and over?\n|> >Because you rarely ever answer them.\n|> \n|> Nope, I've answered each question posed, and most were answered multiple\n|> times.\n\n\tHe:   Fifty dollars if I can't answer your question.\n\n\tShe:  What is the Big Bang theory.\n\n\tHe:   The Big Bang theory is a recipe for cookies.\n\n\tShe:  Fifty dollars, please.\n\n\tHe:   Hey, I didn't say the answers would make sense.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4479, "properties": {"category": "rec.sport.hockey", "text": "From: formeza@panix.com (The Owl)\nSubject: Re: Hockey Cards For Sale\nKeywords: Hockey Cards\nOrganization: PANIX Public Access Unix, NYC\nLines: 87\n\nIn <C5H92x.Dtw@panix.com> formeza@panix.com (The Owl) writes:\n\nIn case anyone missed it, I'm reposting this and I'm also selling some other\nstuff.\n\n>I would like to sell a few of my Hockey Cards sets:\n\n>1990-91 Upperdeck Hockey Low #'s Sets $45\n\n>This is the first Upperdeck Hockey Set made. Important rookie cards in it are:\n>Mogilny, Roenick, Belfour, Recchi, Stevens, Jagr, Nolan, Nedved, Ricci, \n>Sundin, Modano, Richter and others! The Beckett price is $42, but I'm\n>Charging $45 to cover the Shipping and Packaging.\n\nI've sold one, but I still have 2 left for sale. I also realize that $45 is\nalot of money, especially if you don't normally collect cards. So if enough\npeople are interested, I'll break up the set into team sets. I'm not sure\nhow much for each. It would be nice to just sell them for $3 each, but then\nthe people who get the Whalers and Devils (Note, I'm not bagging on these teams\nits just that they don't have alot of good rookie cards in this set) would\nbe subsidizing the people who want Chicago or Pittsburgh. So I'll have to make\nit varialble pricing. But most of them should be about $2 or $3 dollars.\n\n\n>1991-92 Score Pinnacle (Candian) Sets $45\n\n>This is a very nice set, premium quality cards. Has second year cards of the\n>players above, plus Bure, Potvin, Falloon, and Lindros ($15 value) second year\n>cards,and the following rookie cards: Lidstrom Kamensky, Zelepukin, Roussel,\n>Konstantinov. Beckett Price is $50, but I have alot of these.\n\n>1991-92 Upperdeck Czechoslovakian Set $60\n\n>This is a 100 card set of the 92 World Junior Tournament. Meant for sale in\n>Czechoslovakia, but didn't sell well there, and some of it filtere back in\n>to the US. The cards are Bilingual. Has Lachance, Kovalev, and Straka Rookies.\n>If your interested, please e-mail me. Thanks\n\nOk someone asked for this one, but he's from Canada, if he can get me the\nmoney in US funds then its his, if not, the first person who writes in will\nbe the alternate.\n\nAlso I would like to sell 2 Upperdeck Pavel Bure rookie cards (note these\nare not in the UD low #'s set mentioned above). $16 each. They are $15 in\nthe book, but the $1 goes for postage, packaging and insurance.\n\nAnd if there is something you want that you don't see, e-mail me, I may have\nit or may be able to get  it for you.\n\nThanks,\n>The Owl\n>Ted Formeza\n>formeza@sun.panix.com\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.216+0000", "event": "documents", "entityId": 4480, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: yee@nimios.eng.mcmaster.ca (Paul Yee)\nSubject: Re: Perfect MAG MX15F Monitors?\nNntp-Posting-Host: nimios.eng.mcmaster.ca\nOrganization: Communications Research Laboratory, McMaster University\nLines: 55\n\nIn article <1993Apr16.131036.1017@brtph560.bnr.ca> adcock@bnr.ca (Doug Adcock) writes:\n>I've been intently following the MAG thread while waiting for\n>mine to arrive in the mail. There seems to be a lot of\n>complaints about minor alignment problems with the MX15F. One\n>article contained a comment that the owner called the factory\n>and was told that his screen rotation was within spec (1/4\").\n\nThat figure (1/4\") for image rotation would seem to be a little high...\non my NEC 5FG the specs call for no greater than 3mm (0.12\").\n\n>Well, my monitor arrived last night and, sure enough, it has\n>a very noticable barrel distortion. It's not dramatic, but it\n>is there and it is especially noticable when the image doesn't\n>fill the entire screen. The fact that it is worse on the right\n>side doesn't help matters.\n>\n>What I'm trying to find out is if these minor imperfections\n>are the norm or are most of their monitors perfect? I don't want\n>to send it back and get one with the same or an even worse\n>problem. Does the factory consider this kind of thing normal\n>and ship their monitors with less than perfect alignment? \n\nI can't speak for MAG Innovision but as far as NEC is concerned, they are\nadjusted to \"factory-spec\" before leaving the central USA distribution point\n(MA) for the eastern Canadian market. Now, here's the key: NEC *knows* that\nthe >=15\" monitors' adjustments are very sensitive to shipping over\ndistances (with all the bumps, rough handling, and such) and therefore\n*expect* and (at least in theory) *require* that the local *distributor*\n(not dealer) have it adjusted at the *local* service centre (Bull HN\nInformation Systems in Toronto) before sale. This is the correct and\nprobably only way of having any chance of receiving a \"perfect\" monitor\n(the definition of \"perfect\" seems to depend on how picky one is, in my\ncase quite :).\n\n>Are other netters just living with these kind of imperfections?\n\nI, for one, was not willing to accept what I considered a substandard\nmonitor and, after two months of wrangling and direct contact with NEC,\nfinally received a satisfactorily adjusted monitor (not perfect, IMHO,\nbut a major improvement over what the dealer and distributor were trying\nconvince me was \"normal\"). The short answer is no, don't accept these\n\"imperfections\" as \"normal\" because for the premium one pays for the\nlarger screen monitors, one has a right to expect higher quality, and\nif you're persistent, you'll receive it.\n\n>...............................................................\n>:      Comments and opinions are mine - not BNR's             :\n>: Doug Adcock                      adcock@bnr.ca              :\n>: Bell-Northern Research           Research Triangle Park, NC :\n>...............................................................\n\n\nRegards,\nPaul Yee\nyee@nimios.eng.mcmaster.ca\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4481, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U23590@uicvm.uic.edu>\nSubject: Re: Gritz/JBS/Liberty Lobby/LaRouche/Christic Insitute/Libertarian/...\nLines: 5\n\nNote that Bo Gritz was on the Populist party ticket with David\nDuke (for veep) in 1988 until he found out that Duke was leading\nhe ticket, when he withdrew his candidacy.  So Gritz gave up his\nchance to be Vice President of the US just to aviod supporting\nDuke.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4482, "properties": {"category": "comp.sys.mac.hardware", "text": "From: josip@eng.umd.edu (Josip Loncaric)\nSubject: Re: Duo 230 crashes aftersleep (looks like Apple bug!)\nOrganization: Project GLUE, University of Maryland, College Park\nLines: 7\nNNTP-Posting-Host: orbit.src.umd.edu\n\nI do not have this type of problem, but at one point an Apple rep\ntold me that Duo's \"System Enabler\" file version 1.0.1 fixes some\nkind of sleep-related problem.  You may want to investigate this...\n\n-Josip Loncaric\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4483, "properties": {"category": "talk.politics.guns", "text": "From: mporter@cis.ohio-state.edu (matthew dale porter)\nSubject: Re: Reasonable Civie Arms Limits\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 42\nNNTP-Posting-Host: python.cis.ohio-state.edu\n\nIn article <1993Apr19.223925.2342@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>A poster claims he 'always asks [anti-gunners] what they think would\n>be reasonable personal firepower restrictions'. OK then ...\n>\n>Caliber : Not greater than 32\n>Muzzle  : Not greater than 300 ft/lbs with any combo of bullet wt/vel\n>Action  : Single shot rifles and single action revolvers \n>          Revolvers bearing no more than six rounds and incorporating\n>          an 'anti-fanning' mechanism to discourage Roy Rogers wannabes.\n>Bullets : Any non-explosive variety, HPs just fine.\n>\n>Now - these specs leave the 32 H&R magnum as about the most powerful\n>allowable civie cartridge for handgun or rifle use. It would be\n>reasonably effective against home intruders, muggers, rabid wolves\n>and other such nasties, even with the firearm-type limitations. At the\n>same time, this caliber/power limit would reduce the ultimate lethality\n>of hits. The chances of the average joe encountering a gang of huge\n>individuals all drunk and stoned on PCP and crystal meth and with a\n>bad attitude and all armed and willing to die ... well, it's about\n>zero - far less than the chances of getting killed driving your car.\n\nWhen will you people realize that our right to keep and bear isn't\nprimarily intended to be for protecting against criminals and beasties\nin the wild?  Granted, it is a big part, but we also need military style\nweapons so we can fight off the government when they come to our door.\nWhen ten agents come to my door, it would be nice to be able to shoot\nall of them for 'not upholding the constitution to the best of their\nability'.  It will be a lot harder doing that with the puny weapons you\nlisted above.\n\nPlease read the Federalist papers for all clarification on RKBA.  These\ndocuments have cleared up plenty of misnomers that friends of mine have\nhad.\n\n\n\n\n\n-- \nMatt Porter       \nmporter@cis.ohio-state.edu\nmporter@magnus.acs.ohio-state.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4484, "properties": {"category": "rec.motorcycles", "text": "From: bean@ra.cgd.ucar.edu (Gregory Bean)\nSubject: Help!  Which bikes are short?\nOrganization: Climate and Global Dynamics Division/NCAR, Boulder, CO\nLines: 18\n\nHelp!  I've got a friend shopping for her first motorcycle.  This is great!\nUnfortunately, she needs at most a 28\" seat.  This is not great.  So far,\nthe only thing we've found was an old and unhappy-looking KZ440.\n\nSo, it's time to tap the collective memory of all the denizens out there.\nAnybody know of models (old models and used bikes are not a problem)\nwith a 28\" or lower seat?  And, since she has to make this difficult ( 8-) ),\nshe would prefer not to end up with a cruiser.  So there's bonus points\nfor listing tiny standards.\n\nI seem to remember a thread with a point similar to this passing through\nseveral months ago.  Did anybody keep that list?\n\nThanks!\n\n--\nGregory Bean                                                           DoD #580\nbean@ncar.ucar.edu         \"In fact, everything's got that big reverb sound...\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4485, "properties": {"category": "misc.forsale", "text": "From: aduh@carson.u.washington.edu (Richard Susanto)\nSubject: Labtec speaker for SALE\nOrganization: University of Washington, Seattle\nLines: 22\nDistribution: usa\nNNTP-Posting-Host: carson.u.washington.edu\n\n\n\tHi, Anybody interested in buying my Labtec speaker?\n\n\tLabtec SS-200\n\tAmplified Stereo Speaker System\n\t\t- Built in amplifier\n\t\t- 6 volt input\n\t\t- works with/without batteries\n\t\t- individual volume controls\n\t\t- treble boost switch\n\tGreat for medium quality PC's sound(adlib,soundblaster..)\n\t\t  walkman\n\t\t           \n\n\tfor: $15 (included shipping...)\n\n\tE-mail me... \n\n--\nRichard Susanto\naduh@carson.u.washington.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4486, "properties": {"category": "rec.autos", "text": "From: wl@cypress.com (Wilbur Luo/COMM)\nSubject: Heard of these South Bay shops?\nOriginator: wl@coast\nNntp-Posting-Host: coast\nOrganization: Cypress Semiconductor\nDistribution: ba\nLines: 13\n\nI need to bring on my VW Corrado for body work (I got hit). I was\nwondering if anyone has heard of any of these South Bay body shops:\n\nAkins Collision Center of Santa Clara - on Reed St\nAuto West Collision - in San Jose\nLos Gatos Acura\nRoyal Auto Body - in Sunnyvale\n\nThanks!\n\n-W\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4487, "properties": {"category": "talk.politics.guns", "text": "From: 0005111312@mcimail.com (Peter Nesbitt)\nSubject: Newspapers censoring gun advertisements\nLines: 88\n\nRecently while looking around in Traders Sporting Goods store, a very well\nstocked firearms store, I discovered a printed document that was being \ndistributed by the good folks who work there.  Traders, BTW, is located in\nSan Leandro, CA.\n\nGranted, the document may be asking you and I to help out Traders, but in the\nbig scope of things, I feel that we would do all gun owners a favor by helping\nto this cause.\n\nAnyway, here it is:\n\nNEWSPAPER AD CENSORSHIP\n\nAre you letting the newspapers tell you how to live your life, what's good for\nyou, what's not, and exercise blatant censorship over what you read in their\nadvertisments?\n\nThe newspapers have now decided to censor gun ads - which is why you no longer\nsee the ads that Traders, San Leandro, has run for many years.\n\nThese ads were run for the law-abiding honest citizens who own firearms for\nsporting use or self-protection.  They certainly have the right to do so, under\nthe Second Amendment Right to Bear Arms.\n\nIf you are tired of newspapers who run sex and liquor ads galor, yet refuse to\nrun legitimate gun ads, please send a letter to the editors indicating your\ndispleasure over their censorship doctrine.\n\nFollowing is a list of Bay area newspapers who censor gun ads.  Perhaps you'd\nlike to send them your thoughts on this issue!\n\nOakland Tribune\t\tDaily Review\t\tAlameda Times-Star\nPOB 28883\t\tPOB 5050\t\t1516 Oak St.\nOakland, CA 94604\tHayward,94540\tAlameda, CA 94501\n\nArgus\t\t\tTri Valley Herald\tSan Leandro Times\n3850 Decoto Rd.\t\tPOB 10367\t\t161 W. Juana Ave.\nFremont, CA 94555\tPleasanton, CA 94588\tSan Leandro, CA 94577\n\nContra Costa Times\tSan Mateo Times\t\tSan Francisco Chronicle\nPOB 5088\t\tPOB 5400\t\t901 Mission St.\nWalnut Creek, CA 94596\tSan Mateo, CA 94402\tSan Francisco, CA 94103\n\nSan Fran. Independent\tSan Fran. Examiner\tSan Jose Mercury News\n1201 Evans Ave\t\t110 5th St.\t\t750 Ridder Park Dr.\nSan Fran., CA 94124\tSan Fran., CA 94103\tSan Jose, CA 95190\n\nThen there are six pages of \"facts\".  I can not validate these facts, and \nthere were no sources, but many feel and sound very true.  Here are the topic\nheadlines:\n\n- Big Media Snow Job\n- Blaming Firearms for Murder is Like Blaming Hospitals for Death\n- I could use the same Nazi Journalistic Technique of CBS and ABC to prove\n  that Hospitals Cause Death\n- How NBC, CBS, and ABC have scammed the American people on \"gun control\"\n- American TV journalism is based on Nazi journalism\n- Why TV journalists lie\n- The Government with the help of the TV networks, has succeeded in playing\n  one group against the other\n- Gun laws are unconstitutional\n- American gun laws are based on Nazi gun laws\n- The Government is trying to devide and conquer\n- The CIA wants your firearms\n\nand so on for six pages.\n\nSo now we have the media trying help put gun dealers out of business by trying\nto limit their exposure to potential customers, and preventing the customers\nfrom reading about sales of ammunition and firearms for sporting, hunting, or\nother recreational use.\n\nLet me know if you write to any of these bozos.\n\n/-----------------------------------------------------------------------------\\\n\n| Peter D. Nesbitt |     Air Traffic Controller     | PNESBITT@MCIMAIL.COM    |\n\n|                  |       Oakland Bay TRACON       |                         |\n\n|-----------------------------------------------------------------------------|\n\n|  CBR600F2 Pilot  |       NRA Member CCX1380F      |  S&W .41 Magnum Carrier |\n\n\\-----------------------------------------------------------------------------/\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4488, "properties": {"category": "rec.sport.hockey", "text": "From: schock@cpsc.ucalgary.ca (Craig Schock)\nSubject: Re: Smiths birthday goal was LEAFS GO ALL THE WAY !!!\nOrganization: University of Calgary Computer Science\nLines: 26\n\nIn article <C5JunA.4vH@cpsc.ucalgary.ca> layfield@cpsc.ucalgary.ca (Colin Layfield) writes:\n>In article <C4wty9.40u@mcs.anl.gov> mwm@aps.anl.gov writes:\n>>In article 5KL@undergrad.math.uwaterloo.ca, kwk2chow@descartes.uwaterloo.ca (KEVIN C.) writes:\n>>> (Thanks for the goals by Steve Smith) \n>>I don't see why more people don't blame grant fuhr for the goal that smith \n>>put in his own net, it's common to play the puck back to your own goalie when\n>>deep in your own end and under little or no pressure from the offensive team.\n>>If fuhr had been in position the puck would have never crossed the line.\n>>\n>>Mike McDowell\n>\n>I have to disagree with you on this one.  It is anything BUT common.  In the\n>4 or 5 years I have been watching hockey I have NEVER seen this happen EVER.\n>\n>I am not sure what league you have been watching.  :-)\n>\n>Anyone else agree with this?\n\nYes, Colin... I have to agree with you here...  I've put the puck in\nmy own net the same way Smith did... (only once, mind you :-) and it\nwas definitely my fault.  It is NOT a common play to play the puck the\nway that Smith did.  \n\nLuckily, for me...  when I did it... it was only a scrimmage :-)\n\nCraig\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4489, "properties": {"category": "comp.windows.x", "text": "From: vic@fajita (V. Martinez 6463)\nSubject: Re: Trouble compiling X11R5 on SunOS_4.1.3\nArticle-I.D.: ast.1993Apr6.165718.528\nOrganization: SAIC\nLines: 7\nX-Newsreader: Tin 1.1 PL5\n\nI was having the same problems compiling X11R5 on a IPC sunos 4.1.3.\nIf you compile with 'make -k World' it will not stop on the\nld errors. As was stated in another post the clients with the\nerrors still run correctly.\n\nVictor Martinez\nvic@fajita.saic.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4490, "properties": {"category": "sci.space", "text": "From: nanderso@Endor.sim.es.com (Norman Anderson)\nSubject: COMET...when did/will she launch?\nOrganization: Evans & Sutherland Computer Corp.\nLines: 12\n\nCOMET (Commercial Experiment Transport) is to launch from Wallops Island\nVirginia and orbit Earth for about 30 days. It is scheduled to come down\nin the Utah Test & Training Range, west of Salt Lake City, Utah. I saw\na message in this group toward the end of March that it was to launch \non March 27. Does anyone know if it launched on that day, or if not, \nwhen it is scheduled to launch and/or when it will come down.\n\nI would also be interested in what kind(s) of payload(s) are onboard.\n\nThanks for your help.\n\nNorman Anderson          nanderso@endor.sim.es.com\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4491, "properties": {"category": "rec.sport.baseball", "text": "From: admiral@jhunix.hcf.jhu.edu (Steve C Liu)\nSubject: spring records\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 26\nDistribution: world\nExpires: 5/9/93\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\nSummary: Earl Weaver Commandments\n\n\tThe Orioles' pitching staff again is having a fine exhibition season.\nFour shutouts, low team ERA, (Well, I haven't gotten any baseball news since\nMarch 14 but anyways) Could they contend, yes. Could they win it all?  Maybe.\n\nBut for all those fans of teams with bad spring records, remember Earl\nWeaver's first law of baseball (From his book on managing)\n\nNo one gives a damn in July if you lost a game in March. :)\n\nBTW, anyone have any idea on the contenders for the O's fifth starter?\nIt's pretty much set that Sutcliffe, Mussina, McDonald and Rhodes are the\nfirst four in the rotation.\n\nHere at Johns Hopkins University where the mascot is the Blue Jay :(,\ntheir baseball team logo was the Toronto club's logo. Now it's a \nanatomically correct blue jay. God, can't they think of an original idea?\nIt's even in the same pose as the baltimore oriole on the O's hats.\nHow many people realize that the bird is really called a baltimore oriole?\n__________________________________________________________________________\n|Admiral Steve C. Liu        Internet Address: admiral@jhunix.hcf.jhu.edu|\n|\"Committee for the Liberation and Intergration of Terrifying Organisms  |\n|and their Rehabilitation Into Society\" from Red Dwarf - \"Polymorph\"     |\n|****The Bangles are the greatest female rock band that ever existed!****|\n|   This sig has been brought to you by... Frungy! The Sport of Kings!   |\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4492, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tomj@pnet16.cts.com (Tom Jenkins)\nSubject: LCIII vs. Centris 610?\nOrganization: People-Net [pnet16], NCTAMS EASTPAC\nLines: 8\n\nTitle says it all.  I'd be particularly interested in the performance\ndifference.  Just how much faster (50%?) is the Centris 610 over the LCIII?\n\n--Tom\n\nUUCP: humu!nctams1!pnet16!tomj\nARPA: humu!nctams1!pnet16!tomj@nosc.mil\nINET: tomj@pnet16.cts.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4493, "properties": {"category": "comp.graphics", "text": "From: egg@dstos3.dsto.gov.au\nSubject: Chosing optimal colors for colormap ?\nOrganization: Defence Science and Technology Organisation\nLines: 12\nNNTP-Posting-Host: dstos3.dsto.gov.au\n\nHi,\n\n  I'm looking for an algorithm that would generate a good cross-section of\nRGB colours given a limited colour map size. \n\nThe problem: I'm writing an application for the PC that may have at most 256\ncolors. I want to use one colormap (palette) for the application but I'd like\nit to contain an even spread of colours of the visible spectrum. I could use \na 6x6x6 RGB cube but the problem is that a lot of those colours are almost\nidentical to the human eye. \n\nDoes anyone know how I can optimize my choice of colors ?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4494, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: davidw@auck.irl.cri.nz (David White)\nSubject: Re: How do I quickly switch between Windows screen resolutions?\nOrganization: Industrial Research Ltd, Auckland, New Zealand\nLines: 16\nDistribution: na\nNNTP-Posting-Host: kauri.auck.irl.cri.nz\n\nIn <93721@hydra.gatech.EDU> ccastco@prism.gatech.EDU (Constantinos Malamas) writes:\n\n>In article <C5qLr8.DJL@cbnewsl.cb.att.com> slg@slgsun.att.com (The Idealistic Cynic) writes:\n>>Can someone out there tell me how to switch Window's screen resolution\n>>quickly and easily?  I know that I can go back into install to do it,\n\n> \tTake a look at ftp.cica.indiana.edu at pub/pc/win3/(util?misc?)\n>for a program caleld vswitch.zip.It's as close to want you want as you can\n>get in WIn3.1 ...\n\nI think George is referring to switch.zip in the ~ftp/pub/pc/win3/drivers/video\ndirectory. Description reads -- Switcher: Windows Video Mode Switcher.\n\n--\n david white    (engineer, Goon fan & son of my Dad)\n Internet davidw@auck.irl.cri.nz  Fax +64 9 443-4737\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4495, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: <Political Atheists?\nOrganization: sgi\nLines: 31\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1qlfd4INN935@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >>Well, chimps must have some system.  They live in social groups\n|> >>as we do, so they must have some \"laws\" dictating undesired behavior.\n|> >\n|> >So, why \"must\" they have such laws?\n|> \n|> The quotation marks should enclose \"laws,\" not \"must.\"\n\nOh, Your Highness?   And exactly why \"should\" the quotation\nmarks enclose \"laws,\" not \"must.\"\n\nIn case you didn't notice, it's the function of the \"must\"\nthat I wish to ironicise.\n\n|> \n|> If there were no such rules, even instinctive ones or unwritten ones,\n|> etc., then surely some sort of random chance would lead a chimp society\n|> into chaos.\n\nPerhaps the chimps that failed to evolve cooperative behaviour\ndied out, and we are left with the ones that did evolve such\nbehaviour, entirely by chance.\n\nAre you going to proclaim a natural morality every time an\norganism evolves cooperative behaviour?\n\nWhat about the natural morality of bee dance?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4496, "properties": {"category": "sci.med", "text": "Subject: Re: Broken rib\nFrom: jc@oneb.almanac.bc.ca\nOrganization: The Old Frog's Almanac, Nanaimo, B.C.\nKeywords: advice needed\nSummary: thanx for the comeback\nLines: 7\n\nHello , I think you are probaly right, in spite of the movement\nit is getting better each day.  cheers\n\n           jc@oneb.almanac.bc.ca (John Cross)\n     The Old Frog's Almanac  (Home of The Almanac UNIX Users Group)    \n(604) 245-3205 (v32)    <Public Access UseNet>    (604) 245-4366 (2400x4)\n        Vancouver Island, British Columbia    Waffle XENIX 1.64  \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4497, "properties": {"category": "misc.forsale", "text": "From: aharris@athena.cs.uga.edu (Austin Harris)\nSubject: BC200XLT Handheld Radio Scanner\nOrganization: University of Georgia, Athens\nDistribution: usa\nLines: 12\n\nHello, \n\nI have a BC200XLT handheld radio scanner which recieves police, fire,\nambulance, aircraft, cordless and cellular phone, etc.  The unit is in\noriginal condition and comes with the manual, the power supply and\nbattery charger.  Price is $200 plus s/h.\n\n\nAustin Harris\n\naharris@athena.cs.uga.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4498, "properties": {"category": "rec.autos", "text": "From: finnegan@invader.navo.navy.mil (Kenneth Finnegan)\nSubject: Re: 5W30, 10W40, or 20W50\nArticle-I.D.: cs.1993Apr6.130550.13550\nReply-To: finnegan@navo.navy.mil\nOrganization: Grumman Data Systems\nLines: 9\nNntp-Posting-Host-[nntpd-8755]: invader.navo.navy.mil\n\nAs an additional data point, I have run Castrol 20W50 exclusively\nin the following cars: 75 Rabbit, 78 Scirocco, 76 Rabbit, 78 Bus,\n70 Beetle, 76 Bus, 86 Jetta GLI.  I've never had an oil-related\nproblem.\n\nDisclaimer:  It gets mighty hot down here.\n\nKenneth\nfinnegan@navo.navy.mil\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4499, "properties": {"category": "misc.forsale", "text": "From: m14494@mwvm.mitre.org (Mike White)\nSubject: Re: eXpEn$iVe MOTOROLA Handheld Radio For Peanuts!\nNntp-Posting-Host: smassimini-mac.mitre.org\nOrganization: The MITRE Corporation\nDistribution: na\nLines: 30\n\nAgent_X writes:\n> I can no longer use anything japanese.  Kenwood, Yeasu, Icom, Alinco, its\n> ALL JUNK. \n  ^^^^^^^^\n\nWell, I'm not sure I'd go quite that far, but I agree that Motorola\ngear is of better quality.  The question is how much that quality\nis worth to a ham in amateur service, not commercial service\n\n>This radio can hear a repeater thats 40 miles away without\n> an antenna.\n\nOk, great. But how often does that come up?  How good is\n\"good enough\", and how much is someone willing to pay for it?\nA good ham-quality HT is maybe $500, while a commercial\nquality one is maybe $2000. Is the increased reliability and\nperformance worth 4 times the price *in amateur service*?\nOnly the individual involved can answer that question, and each\nham has to decide for him/herself.  If Motorola quality is worth\n4 times the price to you, then more power to ya'. But I'm amazed\nthat folks make that choice. For, me, given that I've got $2000 to\nspend, I'l pick the Yaesu ht and a nice new HF rig every time over\na Motorola ht alone, no matter how good it is.  To me, ham-quality\ngear is \"good enough\". To each his own...\n\n73... Mike, N4PDY\n\n******************************\n* These are my opinions only.*\n******************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4500, "properties": {"category": "sci.med", "text": "From: jacquier@gsbux1.uchicago.edu (Eric Jacquier )\nSubject: Opinions on Allergy (Hay Fever) shots?\nOrganization: University of Chicago Computing Organizations\nLines: 19\n\n\nHello,\n\nI am interested in trying this \"desensitization\" (?) method\nagainst hay fever.\nWhat is the state of affairs about this. I went to a doctor and\npaid $85 for a 10 minute interview + 3 scratches, leading to the\ndiagnostic that I am allergic to (June and Timothy) grass.\nI believe this. From now on it looks like 2 shots per week for\n6 months followed by 1 shot per month or so. Each shot costs\n$20. Talking about soaring costs and the Health care system, I would\ncall that a racket. We are not talking about rare Amazonian grasses\nhere, but the garbage which grows behind the doctor's office.\nApart from this issue, I was somewhat disappointed to find out\nthat you have to keep getting the shots forever. Is that right?\nThanks for information.\nEj   \n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4501, "properties": {"category": "talk.politics.misc", "text": "From: tk@pssparc2.mitek.com (Tom Kimball)\nSubject: Re: Supply Side Economic Policy (was Re: David Stockman )\nOrganization: OpenConnect Systems, Dallas, TX\nDistribution: na\nLines: 36\n\nIn article <C5217t.J5B@newsserver.technet.sg> ipser@solomon.technet.sg (Ed Ipser) writes:\n>details that you are seeking, is that the Grahm-Rudman budget controls\n>were working.  In fact, they were working so well that unless the feds\n>did something, they were going to have to start cutting pork. So Bush\n>and the Democrats got together in a Budget Summit and replaced\n>Grahm-Rudman with the now historic Grand Compromise in which Bush\n\nYea, it turned out that Gramm-Rudman was a sham to fool the voters\ninto accepting the borrow-and-spend policies of the last 12 years.\n\n\n\n>As it turned out, the taxes killed the Reagan expansion and the caps\n\t\t\t\t\t^^^^^^^^^^^^^^^^\nAnyone can expand the economy by chargeing $3 trillion on their credit\ncards.   Big deal.  Deficit spending only expands the economy in the short\nterm.  In the long term it shrinks the economy for numerous reasons. I would \nhave MUCH preferred that the taxpayers had that $3 trillion instead.\n\n\n>The result is that Clinton now HOPES to reduce the deficit to a level \n>ABOVE where it was when Reagan left office.\n>\n>Chew on that awhile.\n\n\nIf Reagan had kept his campaign PROMISE to balance the budget by 1983,\nthere would have been no need for Bush or Clinton to raise taxes.  And\nall Reagan had to do was balance that puny Carter deficit.\n\nChew on that awhile.\n\n-- \nTom Kimball \tOpenConnect Systems\t\n          \t2711 LBJ Freeway, Suite 800\ntk@oc.com      \tDallas, TX  75006\t\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4502, "properties": {"category": "talk.religion.misc", "text": "From: rocker@acm.rpi.edu (rocker)\nSubject: Re: ABORTION and private health coverage -- letters regarding\nNntp-Posting-Host: hermes.acm.rpi.edu\nReply-To: rocker@hermes.acm.rpi.edu\n Followup-To:\nLines: 13\n\nIn <1qk73q$3fj@agate.berkeley.edu> dzkriz@ocf.berkeley.edu (Dennis Kriz) writes:\n\n>If one is paying for a PRIVATE health insurance plan and DOES NOT WANT\n>\"abortion coverage\" there is NO reason for that person to be COMPLELLED\n>to pay for it.  (Just as one should not be compelled to pay for lipposuction\n>coverage if ONE doesn't WANT that kind of coverage).\n\nYou appear to be stunningly ignorant of the underlying concept of health\ninsurance.\n\n>dzkriz@ocf.berkeley.edu\n\n                          -rocker\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4503, "properties": {"category": "rec.autos", "text": "From: jnielsen@magnus.acs.ohio-state.edu (John F Nielsen)\nSubject: Re: Integra GSR\nArticle-I.D.: magnus.1993Apr6.143853.11641\nOrganization: The Ohio State University\nLines: 17\nNntp-Posting-Host: photon.magnus.acs.ohio-state.edu\n\nIn article <1993Apr6.035020.16730@cactus.org> boyle@cactus.org (Craig Boyle) writes:\n>miles, a rare screw up by Honda.\n>Both the GTZ and GSR are flawed cars. The performance enthusiasts would take\n>the GTZ and the CR purchase would be the GSR.\n>\n\n\nThe CR purchase would be the Ford Probe GT.\n\njohn\n\n\n-- \nJohn Nielsen   MAGNUS Consultant            ______   ______   __  __\t\n\"To you Baldrick, the Renaissance was just /\\  __ \\ /\\  ___\\ /\\ \\/\\ \\\nsomething that happened to other people,   \\ \\ \\/\\ \\\\ \\___  \\\\ \\ \\_\\ \\\nwasn't it?\" - The Black Adder               \\ \\_____\\\\/\\_____\\\\ \\_____\\\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4504, "properties": {"category": "rec.autos", "text": "From: mark@luke.cray.com (Mark Dean)\nSubject: Re: Ford and the auto\nNntp-Posting-Host-[nntpd-29970]: luke.navo.navy.mil\nReply-To: crayce1@pops.navo.navy.mil\t\nOrganization: Cray Research\t\nLines: 20\n\n> Hello, my name is Russell Wong and I am doing a research project on Henry\n> Ford and his automobile.  I need information on whether Ford is\n> partially responsible for all of the car accidents and the depletion of\n> the ozone layer.  Also, any other additional information will be greatly\n> appreciated.  Thanks. \n\n\n>So would Mr. Benz.. -Eh?\n\n>And Mr. Chevy, Mr. Toyokogio, and Mr (Insert Car name here...)\n\n\n>---\n>Dan Reed - blu@cellar.org - Eat Your Pets - Poke Out Your Eyes - Kill Your \n>Boss - Burn Down Your House - Move To Elmer NJ - Rip Out Your Nose Hairs With \n>A Lead Holder - Use X-Acto Knives For Dental Work - Hit Your Mother.......\n\nPeople get a life !!!!!!!!!!\n\n            MD\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.217+0000", "event": "documents", "entityId": 4505, "properties": {"category": "talk.politics.mideast", "text": "From: stssdxb@st.unocal.com (Dorin Baru)\nSubject: Re: Reasons : was Re: was: Go Hezbollah!\nOrganization: Unocal Corporation\nLines: 32\n\n\nHossien Amehdi writes:\n\n\n>In article <1993Apr15.160224.15940@unocal.com> stssdxb@st.unocal.com (Dorin Baru) writes:\n>>>Now, about tough talk and arrogance, we are adults, aren't we ? Do you listen \n>>>to tough talk of american politicians ? or switch  the channel ? \n\n\n>I guess, I didn't make my point clear.  In the case of Israel government, it \n>is not only tough talk for its intimidation policy.  After all, not many\n>people are intimidated just by talking.  Here how it goes: tough talks,\n>followed by aggressive actions followed by taking pride of those actions and\n>bragging about them.  >\n\nAgressive actions are taken by both sides. Tough talk is done by both sides.\nWhen an arab leader is menacing to throw all jews in the water is also tough talk,\nI think. And killing people is mildly agressive (justified, in your opinion \nif they are israeli soldiers, justified, in others' opinion if they are jews, not\njustified at all in others opinion).\n\nWhen Brad wrote the article about 3 Israelis killed, ther was a lot of pride \nand satisfaction in his lines. That's what I feel disgusting. We may agree \nor not when a killing is 'technically' murder, but being enthousiastic about it?\n\n\nAnd again, I may appreciate some of your points, but you are not objective. That\nis not a blame, just a remark.\n\n\nDorin\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4506, "properties": {"category": "sci.crypt", "text": "From: ameline@vnet.IBM.COM (Ian Ameline)\nSubject: Facinating facts: 30 bit serial number, possibly fixed S1 and S2\nOrganization: C-Set/2 Development, IBM Canada Lab.\nDisclaimer: This posting represents the poster's views, not those of IBM\nLines: 106\n\n>Hmmm. We must assume that generating the unit key U from the serial\n>number N rather than generating it from a randomly selected U1 and U2\n>is an intentional way of assuring a \"fail safe\" for the government --\n>U is completedly determined given S1, S2 and N. If S1 and S2 do not\n>change they constitute effective \"master keys\" (along with F), the\n>theft of which (or the possession of which by various authorities)\n>completely obviates the security of the system. However, more\n>interestingly, we know, for a fact that if S1 and S2 are fixed no\n>matter what the keyspace for U is no more than 2^30. Why not pick U1\n>and U2 at random? Why this interesting restriction of they key space\n>if it NOT to provide an additional back door?\n>\n>I find it disturbing that at the very best my security is dependant on\n>approximately 30 bytes worth of information that could be written on\n>the back of a napkin.\n>\n>Even if S1 and S2 change periodically, the rationale behind this\n>restriction in the size of the keyspace seems strange if one is\n>assuming that the goal is security -- and makes perfect sense if the\n>goal is an illusion of security.\n>\n>If S1 and S2 do not change, even if they remain secret I wonder if\n>they can somehow be back-derived given enough unit key/serial number\n>pairs. We are assured that this cannot happen -- but no one\n>understands how Skipjack works outside of government officials and,\n>soon, foreign intelligence services that gain the information via\n>espionage. Presumably we will eventually have the information as well\n>-- reverse engineering gets more and more advanced every year -- but\n>by the time we know it may be too late.\n\nPerhaps the trusted escrow agencies can be the ones who come up with\nS1 and S2, and if these agencies are really trusted (ACLU & NRA is an\ninteresting example), we can hope that they'll use some physical\nprocess to come up with truly random numbers. If the NSA comes up with\nthe numbers, that's a trap door you could drive a truck through.\n\n>None of this makes me feel the least bit secure.\n\nMe either.\n\n   It seems from the following that the CPSR is atleats starting to\nquestion this bogosity:\n\n    ----------------------------------------------------------------\nApril 16, 1993\nWashington, DC\n\n               COMPUTER PROFESSIONALS CALL FOR PUBLIC\n           DEBATE ON NEW GOVERNMENT ENCRYPTION INITIATIVE\n\n        Computer Professionals for Social Responsibility (CPSR)\ntoday called for the public disclosure of technical data\nunderlying the government's newly-announced \"Public Encryption\nManagement\" initiative.  The new cryptography scheme was\nannounced today by the White House and the National Institute\nfor Standards and Technology (NIST), which will implement the\ntechnical specifications of the plan.  A NIST spokesman\nacknowledged that the National Security Agency (NSA), the super-\nsecret military intelligence agency, had actually developed the\nencryption technology around which the new initiative is built.\n\n        According to NIST, the technical specifications and the\nPresidential directive establishing the plan are classified.  To\nopen the initiative to public review and debate, CPSR today\nfiled a series of Freedom of Information Act (FOIA) requests\nwith key agencies, including NSA, NIST, the National Security\nCouncil and the FBI for information relating to the encryption\nplan.  The CPSR requests are in keeping with the spirit of the\nComputer Security Act, which Congress passed in 1987 in order to\nopen the development of non-military computer security standards\nto public scrutiny and to limit NSA's role in the creation of\nsuch standards.\n\n        CPSR previously has questioned the role of NSA in\ndeveloping the so-called \"digital signature standard\" (DSS), a\ncommunications authentication technology that NIST proposed for\ngovernment-wide use in 1991.  After CPSR sued NIST in a FOIA\nlawsuit last year, the civilian agency disclosed for the first\ntime that NSA had, in fact, developed that security standard.\nNSA is due to file papers in federal court next week justifying\nthe classification of records concerning its creation of the\nDSS.\n\n        David Sobel, CPSR Legal Counsel, called the\nadministration's apparent commitment to the privacy of\nelectronic communications, as reflected in today's official\nstatement,  \"a step in the right direction.\"  But he questioned\nthe propriety of NSA's role in the process and the apparent\nsecrecy that has thus far shielded the development process from\npublic scrutiny.  \"At a time when we are moving towards the\ndevelopment of a new information infrastructure, it is vital\nthat standards designed to protect personal privacy be\nestablished openly and with full public participation.  It is\nnot appropriate for NSA -- an agency with a long tradition of\nsecrecy and opposition to effective civilian cryptography -- to\nplay a leading role in the development process.\"\n\n        CPSR is a national public-interest alliance of computer\nindustry professionals dedicated to examining the impact of\ntechnology on society.   CPSR has 21 chapters in the U.S. and\nmaintains offices in Palo Alto, California, Cambridge,\nMassachusetts and Washington, DC.  For additional information on\nCPSR, call (415) 322-3778 or e-mail <cpsr@csli.stanford.edu>.\n      -----------------------------------------------\nRegards,\nIan Ameline.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4507, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Space Station Redesign, JSC Alternative #4\nOrganization: U of Toronto Zoology\nLines: 10\n\nIn article <23APR199317452695@tm0006.lerc.nasa.gov> dbm0000@tm0006.lerc.nasa.gov (David B. Mckissock) writes:\n>  -  Man-Tended Capability (Griffin has not yet adopted non-sexist\n>     language) ...\n\nGlad to see Griffin is spending his time on engineering rather than on\nritual purification of the language.  Pity he got stuck with the turkey\nrather than one of the sensible options.\n-- \nSVR4 resembles a high-speed collision   | Henry Spencer @ U of Toronto Zoology\nbetween SVR3 and SunOS.    - Dick Dunn  |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4508, "properties": {"category": "rec.autos", "text": "From: jdenune@pandora.sdsu.edu (John Denune)\nSubject: Re: Sport Utility Vehical comparisons? Any Opinions?\nOrganization: San Diego State University, College of Sciences\nLines: 18\nDistribution: world\nNNTP-Posting-Host: pandora.sdsu.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nKarl Elvis MacRae (kmac@cisco.com) wrote:\n\n: \tI'm looking at the following three SUV's; anyone who's driven all\n: \tthree have any strong opinions?\n:\n: \tFord Explorer\n: \tToyota 4Runner\n: \tNissan Pathfinder\n\nWell, I was just in your position and I drove all three and liked\nall three.  It was a toss-up.  I marginally went with the Pathfinder\nbased on reliability and looks.\n\nI don't think you can go wrong with any of them.\n\n---John\njdenune@pandora.sdsu.edu\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4509, "properties": {"category": "sci.space", "text": "From: sysmgr@king.eng.umd.edu (Doug Mohney)\nSubject: Re: Boom! Whoosh......\nOrganization: Computer Aided Design Lab, U. of Maryland College Park\nLines: 24\nReply-To: sysmgr@king.eng.umd.edu\nNNTP-Posting-Host: queen.eng.umd.edu\n\nIn article <C5ut0z.CtG@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n>In article <1r46ofINNdku@gap.caltech.edu> palmer@cco.caltech.edu (David M. Palmer) writes:\n>>>orbiting billboard...\n>>\n>>I would just like to point out that it is much easier to place an\n>>object at orbital altitude than it is to place it with orbital\n>>velocity.  For a target 300 km above the surface of Earth,\n>>you need a delta-v of 2.5 km/s.  \n>Unfortunately, if you launch this from the US (or are a US citizen),\n>you will need a launch permit from the Office of Commercial Space\n>Transportation, and I think it may be difficult to get a permit for\n>an antisatellite weapon... :-)\n\nWell Henry, we are often reminded how CANADA is not a part of the United States\n(yet).  You could have quite a commercial A-SAT, er sky-cleaning service going\nin a few years. \n\n\"Toronto SkySweepers:  Clear skies in 48 hours, or your money back.\"\n\t   Discount rates available for astro-researchers. \n\n\n\n    Software engineering? That's like military intelligence, isn't it?\n  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4510, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: JMARTTILA@FINABO.ABO.FI (Fast-Eddie Felson)\nSubject: TRIDENT 8800CS DRIVERS FOR WIN 3.1?\nOrganization: Turku School of Economics\nX-News-Reader: VMS NEWS 1.24\nLines: 15\n\nHello\n\nI've got an old Trident 8800CS SVGA card, but lacking suitable drivers\nfor windows 3.1. The drivers for the 8900 series seem to be incompatible.\nDoes anyone have an idea of where to get these drivers? Address for an\nftp-site would be nice. \n\nThanks in advance\n\nJouni\n\n_______________________________________________________________________________\nJouni Marttila - Yo-kyl{ 11 B 25,  20540 Turku,  FINLAND - +358 21 374624____\njmarttila@abo.fi - jmarttila@finabo - abovax::jmarttila - jjmartti@utu.fi__\nPGP-key available via finger jmarttila@abo.fi ___________________________\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4511, "properties": {"category": "comp.graphics", "text": "From: CBW790S@vma.smsu.edu.Ext (Corey Webb)\nSubject: Re: HELP!!! GRASP\nOrganization: SouthWest Mo State Univ\nLines: 29\nNNTP-Posting-Host: vma.smsu.edu\nX-Newsreader: NNR/VM S_1.3.2\n\nIn article <1993Apr19.160944.20236W@baron.edb.tih.no>\nhavardn@edb.tih.no (Haavard Nesse,o92a) writes:\n>\n>Could anyone tell me if it's possible to save each frame\n>of a .gl (grasp) animation to .gif, .jpg, .iff or any other\n>picture formats.\n>\n \n     If you have the GRASP animation system, then yes, it's quite easy.\nYou simply use GLIB to extract the image (each \"frame\" in a .GL is\nactually a complete .PCX or .CLP file), then use one of MANY available\nutilities to convert it.  If you don't have the GRASP package, I'm afraid\nI can't help you.  Sorry.\n     By the way, before you ask, GRASP (GRaphics Animation System for\nProfessionals) is a commercial product that sells for just over US$300\nfrom most mail-order companies I've seen.  And no, I don't have it.  :)\n \n \n                                               Corey Webb\n \n \n    ____________________________________________________________________\n   |        Corey Webb       | \"For in much wisdom is much grief, and   |\n   |   cbw790s@vma.smsu.edu  |  he that increaseth knowledge increaseth |\n   |  Bitnet: CBW790S@SMSVMA |  sorrow.\"           -- Ecclesiastes 1:18 |\n   |-------------------------|------------------------------------------|\n   | The \"S\" means I am only |    \"But first, are you experienced?\"     |\n   | speaking for myself.    |                  -- Jimi Hendrix         |\n \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4512, "properties": {"category": "sci.crypt", "text": "From: \"dan mckinnon\" <dan.mckinnon@canrem.com>\nSubject: \"clipper chip\"\nReply-To: \"dan mckinnon\" <dan.mckinnon@canrem.com>\nOrganization: Canada Remote Systems\nDistribution: sci\nLines: 30\n\n   I have lurked here a bit lately, and though some of the math is\nunknown to me, found it interesting. I thought I would post an article I\nfound in the Saturday, April 17, 1993 Toronto Star:\n\n                  'CLIPPER CHIP' to protect privacy\n\n   Washington (REUTER) - President Bill CLinton announced yesterday a\nplan to plant a new \"Clipper Chip\" in every government telephone and\ncomputer line to prevent eavesdropping.\n\n   Eventually the chips, developed by the government's National\nInstitute for Standards and Technology, would be used by commercial and\nprivate electronics communication users.\n\n   The White House said that to assure privacy, each device containing\nthe encryption devices would be assigned two unique \"keys\" - numbers\nthat will be needed by government agencies to decode messages.\n\n   The attorney-general has been assigned the task of arranging that the\nkeys are deposited in two \"key-escrow\" data bases. Access to them would\nbe limited to government officials with legal authorization to conduct a\nwiretap, the White House said in a statement.\n\n                              -30-\n\n\n Dan McKinnon\n--\nCanada Remote Systems - Toronto, Ontario\n416-629-7000/629-7044\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4513, "properties": {"category": "sci.med", "text": "Subject: Re: Arythmia\nFrom: perry1@husc10.harvard.edu (Alexis Perry)\nOrganization: Harvard University Science Center\nNntp-Posting-Host: husc10.harvard.edu\nLines: 18\n\nIn article <1993Apr22.031423.1@vaxc.stevens-tech.edu> u96_averba@vaxc.stevens-tech.edu writes:\n\n>doctors said that he could die from it, and the medication caused\n>\n\tIs it that serious?  My EKG often comes back with a few irregular\nbeats.  Another question:  Is a low blood potassium level very bad?  My\ndoctor seems concerned, but she tends to worry too much in general.\n\n\n___________________________________________________________________________\nAlexis Perry\t\t\t\t\"The less I want the more I get\nperry1@husc.harvard.edu\t\t\t Make me chaste, but not just yet.\neliot house box 413\t\t\t It's a promise or a lie\n(617) 493-6300\t\t\t\t I'll repent before I die.\"\n\"Work? Have you lost your mind?!\" \n\t\t\t-Ren\t\t\t\t-Sting\n\n   Nobody really admits to sharing my opinions - last of all Harvard College\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4514, "properties": {"category": "sci.med", "text": "From: markmc@halcyon.com (Mark McWiggins)\nSubject: Re: Barbecued foods and health risk\nOrganization: Northwest Nexus Inc.\nLines: 5\nNNTP-Posting-Host: nwfocus.wa.com\n\nAlso, don't forget that it's better for your health to enjoy your steak\nthan to resent your sprouts ...\n-- \nMark McWiggins        Hermes & Associates\t\t+1 206 632 1905 (voice)\nmarkmc@halcyon.com    Box 31356, Seattle WA 98103-1356  +1 206 632 1738 (fax)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4515, "properties": {"category": "talk.politics.mideast", "text": "From: hasan@McRCIM.McGill.EDU\nSubject: Re: ISLAM BORDERS. ( was :Israel: misisipi to ganges)\nOriginator: hasan@lightning.mcrcim.mcgill.edu\nNntp-Posting-Host: lightning.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for  Intelligent Machines\nLines: 26\n\n\nIn article <4805@bimacs.BITNET>, ehrlich@bimacs.BITNET (Gideon Ehrlich) writes:\n|> \n|> Hassan and some other seemed not to be a ware that Jews celebrating on\n|> these days Thje Passover holliday the holidy of going a way from the\n|> Nile.\n|> So if one let his imagination freely work it seemed beter to write\n|> that the Zionist drean is \"from the misisipi to the Nile \".\n\nthe question is by going East or West from the misisipi. on either choice\nyou would loose Palestine or Broklyn, N.Y.\n\nI thought you're gonna say fromn misisipi back to the misisipi !\n\n|> By the way :\n|> \n|> What are the borders the Islamic world dreams about ??\n|> \n|> Islamic readers, I am waiting to your honest answer.\n\nLet's say : \" let's establish the islamic state first\" or \"let's free our\noccupied lands first\". And then we can dream about expansion, Mr. Gideon\n\n\nhasan\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4516, "properties": {"category": "sci.electronics", "text": "From: gerrit@laosinh.stgt.sub.org (Gerrit Heitsch)\nSubject: Re: 6551A and 6551 compatibility\nDistribution: world\nOrganization: Lao-Sinh project (private UUCP site)\nLines: 31\n\nIn article <C5owvs.pr@world.std.com>, Internet Surfer writes:\n\n> Does any one know if the 6551 is timing/pin compatible with the 6551.. \n\nNo, the 6551A is able to operate in a 2 MHz system, the 6551 can only\ntake 1 MHz without problems.\n\nIf you see a 8551 made by MOS or CSG, take it, its a 6551A.\n\n> It seems the 6551 has in iheirent bug with cts/rts handshaking and i need\n> a suitable pin replacement to put in my serial card... possibly a buffered\n> version perhaps?\n\nI know no fixed version of the 6551. There are different possibilities\nto work around this bug. The easiest is to tie _CTS to GND and\nuse _DSR or _DCD as _CTS. It should be easy to fix the software,\n_DSR is bit 6 and DCD ist bit 5 of the Status Register (Read 6551\nwith RS1 = low and RS0 = high).\n\nUsing the _CTS-line can lead into big trouble. The 6551 _instantly_\nstops transmission if _CTS goes high. This means, that you may\nget only a half byte...\n\nGerrit\n\n-- \n         Gerrit Heitsch  Moenchweg 16  7038 Holzgerlingen  Germany\n  Logical adresses: UUCP: gerrit@laosinh.stgt.sub.org FIDO: (2:2407/106.9)\nIf we will ever be visited by Aliens, it will be very hard to explain, why a\n lifeform, that is intelligent enough to build atomic weapons can be stupid\n   enough to do it. (taken from GEO special about space, page 88-91)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4517, "properties": {"category": "talk.politics.mideast", "text": "From: bh437292@longs.LANCE.ColoState.Edu (Basil Hamdan)\nSubject: Re: was:Go Hezbollah!\nReply-To: bh437292@lance.colostate.edu\nNntp-Posting-Host: parry.lance.colostate.edu\nOrganization: Engineering College, Colorado State University\nLines: 95\n\nIn article <1993Apr15.224353.24945@das.harvard.edu>, adam@endor.uucp (Adam Shostack) writes:\n\n|> \tTell me, do these young men also attack Syrian troops?\n\nIn the South Lebanon area, only Israeli (and SLA) and Lebanese troops \nare present.\nSyrian troops are deployed north of the Awali river.  Between the \nAwali river and the \"Security Zone\" only Lebanese troops are stationed.\n\n|> \n|> >with the blood of its soldiers.  If Israel is interested in peace,\n|> >than it should withdraw from OUR land.\n|> \n|> \tThere must be a guarantee of peace before this happens.  It\n|> seems that many of these Lebanese youth are unable to restrain\n|> themselves from violence, and unable to to realize that their actions\n|> prolong Israels stay in South Lebanon.\n\nThat is your opinion and the opinion of the Israeli government.\nI agree peace guarantees would be better for all, but I am addressing\nthe problem as it stands now.  Hopefully a comprehensive peace settlement\nwill be concluded soon, and will include security guarantees for\nboth sides.  My proposal was aimed at decreasing the casualties\nin the interim period.  In my opinion, if Israel withdraws\nunilaterally it would still be better off than staying.\nThe Israeli gov't obviously agrees with you and is not willing\nto do such a move.  I hope to be be able to change your opinion\nand theirs, that's why I post to tpm.\n\n|> \tIf the Lebanese army was able to maintain the peace, then\n|> Israel would not have to be there.  Until it is, Israel prefers that\n|> its soldiers die rather than its children.\n\nAs I explained, I contend that if Israel does withdraw unilaterally\nI believe no attacks would ensue against northern Israel.  I also\nexplained why I believe that to be the case.  My suggestion\nis aimed at reducing the level of tension and casualties on all sides.\nIt is unfortunate that Israel does not agree with my opinion.\n\n\n|> \n|> >If Israel really wants to save some Israeli lives it would withdraw \n|> >unilaterally from the so-called \"Security Zone\" before the conclusion\n|> >of the peace talks.  Such a move would save Israeli lives,\n|> >advance peace efforts, give Israel a great moral lift, better Israel's \n|> >public image abroad and give it an edge in the peace negociations \n|> >since Israel can rightly claim that it is genuinely interested in \n|> >peace and has already offered some important concessions.\n|> \n|> \tIsrael should withdraw from Lebanon when a peace treaty is\n|> signed.  Not a day before.  Withdraw because of casualties would tell\n|> the Lebanese people that all they need to do to push Israel around is\n|> kill a few soldiers.  Its not gonna happen.\n\n\nThat is too bad.\n \n|> >Along with such a withdrawal Israel could demand that Hizbollah\n|> >be disarmed by the Lebanese government and warn that it will not \n|> >accept any attacks against its northern cities and that if such a\n|> >shelling occurs than it will consider re-taking the buffer zone\n|> >and will hold the Lebanese and Syrian government responsible for it.\n|> \n|> \n|> \tWhy should Israel not demand this while holding the buffer\n|> zone?  It seems to me that the better bargaining position is while\n|> holding your neighbors land.\n\nBecause Israel is not occupying the \"Security Zone\" free of charge.\nIt is paying the price for that.  Once Israel withdraws it may have\nlost a bargaining chip at the negociating table but it would save\nsome soldiers' lives, that is my contention.\n\n  If Lebanon were willing to agree to\n|> those conditions, Israel would quite probably have left already.\n|> Unfortunately, it doesn't seem that the Lebanese can disarm the\n|> Hizbolah, and maintain the peace.\n\nThat is completely untrue.  Hizbollah is now a minor force in Lebanese\npolitics.  The real heavy weights are Syria's allies.  The gov't is \nsupported by Syria.  The Lebanese Army is over 30,000 troops and\nunified like never before.  Hizbollah can have no moral justification\nin attacking Israel proper, especially after Israeli withdrawal.\nThat would draw the ire of the Lebanese the Syrian and the\nIsraeli gov'ts.  If Israel does withdraw and such an act \n(Hizbolllah attacking Israel) would be akin to political and moral \nsuicide.\n\nBasil\n \n|> Adam\n|> Adam Shostack \t\t\t\t       adam@das.harvard.edu\n|> \n|> \"If we had a budget big enough for drugs and sexual favors, we sure\n|> wouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4518, "properties": {"category": "rec.motorcycles", "text": "From: karr@cs.cornell.edu (David Karr)\nSubject: Re: New to Motorcycles...\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 83\n\nIn article <1993Apr20.131800.16136@alw.nih.gov> gregh@niagara.dcrt.nih.gov (Gregory Humphreys) writes:\n>Hello everyone.  I'm new to motorcycles so no flames please.  I don't\n>have my bike yet so I need a few pieces of information:\n>\n>[...]  Any stories on how you all learned?\n\nI'll tell you my story as an example of what *not* to do.\n\nEarly in 1984 I took some riding lessons from my college roommate on\nhis old Honda CB360T.  He had taken the MSF beginner's course, so I\nactually learned *some* of what I needed to know to ride.\n\nI proceeded to buy a beat-up Honda CL350 for $400 and a $12 helmet and\nrode around wearing this and a cotton windbreaker.  Then I decided to\ninvest in a full-face helmet (first smart move).  Sometime around then\nI also passed my road test.\n\nOn May 4, 1984, I got caught in a rainstorm on my way home from a\n4-mile trip.  Entering the town where I lived (a rather urban suburb),\nI had to stop suddenly for a red light that I noticed too late,\nskidded the rear tire out, and was ejected face upward into the\noncoming lane of traffic.  Fortunately for me the oncoming traffic was\nalso stopped for the same red light, otherwise I might have slid under\na car and been killed.\n\nNow this is anecdotal evidence, to be sure, but I later took the\nExperienced Rider Course from the MSF and saw that earlier training\ncould have helped me greatly.  In your case the need is even greater\nsince you have nobody to help you practice even the most basic stuff\nas I did.\n\nSo my advice is to take the MSF beginner's course first thing.  I\nwouldn't even buy a bike until you've taken the course, unless you\nhappen to pick up a real good deal and can store it someplace until\nyou're ready to use it.\n\n>1)  I only have about $1200-1300 to work with, so that would have \n>to cover everything (bike, helmet, anything else that I'm too \n>ignorant to know I need to buy)\n\nWhile you're waiting to take the course (it might take a few weeks in\nDC, as I recall there were always waiting lists in Boston), could you\nsave up some more money to start out right?  Say $300 for riding gear,\nplus the cost bike, plus maybe $100 (guess) to a mechanic to make sure\nthe machine is safe (assuming you economize by buying some old beat-up\nmachine from a private individual), plus insurance, plus registration\nand licensing fees, plus the course, you're looking at maybe $600 not\nincluding the bike itself and a reserve for ongoing maintenance.\n\n>2)  What is buying a bike going to do to my insurance?  I turn 18 in \n>about a month so my parents have been taking care of my insurance up\n>till now, and I need a comprehensive list of costs that buying a \n>motorcycle is going to insure (I live in Washington DC if that makes\n>a difference)\n\nI pay about $100 insurance now (upstate NY) but it was closer to $200\nin Boston (more urban) for decent insurance including substantial\ncoverage for liability, which you want unless you plan always to be\npoor.  I'd guess DC is more like Boston than like a rural area, ergo\nmore expensive.\n\n>3)  Any recommendations on what I should buy/where I should look for it?\n\nThere used to be annual buyer's guides in the usual motorcycle\nmagazines; I found those helpful in getting an idea of what new or\nrecent models might be available.  You could probably look through\npast issues to size up what used bikes might be available.  (My first\nbike was 13 years old when I bought it so I went on my friend's advice\ninstead.)  Also look at the bikes that you see people riding or that\nare parked on the street.  I basically settled on my present bike by\nnoticing that there were a lot of high-mileage BMW's running around\nand they were generally set up the way I wanted.\n\nNothing wrong with talking to various dealers in your area or visiting\nshowrooms.  Dealers in the Boston area, at least when I was shopping,\nwere very nice about letting you look around their showrooms and\nquoting prices for bikes that weren't the latest models (hence\ncheaper), although I ended up buying both bikes in private sales.\n\n-- David Karr (karr@cs.cornell.edu)\n-- '80 BMW R65   DoD #0969   also BMWMOA, NRA, ACLU, et al.\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4519, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Finnally, the Phils have support\nFrom: kirsch@staff.tc.umn.edu (Dave 'Almost Cursed the Jays' Kirsch)\nOrganization: Li'l Carlos and the Hormones\nNntp-Posting-Host: staff.tc.umn.edu\nLines: 18\n\nIn article <C4yxMJ.BLE@news.udel.edu> philly@bach.udel.edu (Robert C Hite) writes:\n [Most of tirade deleted .. I have an editor and know how to use it] \n>\n>Okay we've been conservative and added about 18 wins so far.  Now\n>we're adding about 4 more wins thanks to the expansion teams...\n>Okay, thats 22 wins.  Lesse dipshit math genuious, 72 + 22 = 94\n>Hmmm... I think thats good enough to win the worse division in\n>baseball?\n>\n>Next time, before you say something foolish, get a clue first!\n\n  Either this is an example of *great* sarcasm or I'm really, really worried.\n\n-- \nDave Hung Like a Jim Acker Slider Kirsch      Blue Jays - Do it again in '93 \nkirsch@staff.tc.umn.edu                        New .. quotes out of context!\n\"Not to beat a dead horse, but it's been a couple o' weeks .. this \n disappoints me..punishments..discharges..jackhammering..\" - Stephen Lawrence \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4520, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dunguyen@ecs.umass.edu\nSubject: Hayes 9600 external AC pins???\nLines: 7\n\nHello, \nI have a Hayes 9600 moden with no cables or manuals.  The\nmodem requires a source of 14V AC, but I do not know how\nto connect the power source to the 3 pin connector.  I know\nthat the top pin is the ground, so I would guess that the other\ntwo are the AC pins, right?  If you have any hints, please\nE-Mail me, I really need help...  Thanks!!!  Duc N.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4521, "properties": {"category": "sci.crypt", "text": "From: pom@anke.imsd.uni-mainz.DE (Prof. Dr. Klaus Pommerening)\nSubject: DES: init vector as additional key?\nKeywords: DES, CBC, CFB, key search \nNntp-Posting-Host: anke.imsd.uni-mainz.de\nOrganization: Johannes Gutenberg Universitaet Mainz\nLines: 15\n\nThe recent discussion in this news group suggests that a key search attack  \nagainst DES is quite feasible now. But normally DES is applied in CBC or CFB  \nmode where one chooses a random init vector of 8 bytes. Questions:\n\n - Makes it sense to handle the init vector as an additional key? Then we have  \na 56 + 64 = 120 bit key.\n \n - If yes: Is anything known about the security of this key scheme? Can we  \nbreak it faster than by exhaustive search through the 120 bit key space?\n\n--\nKlaus Pommerening\nInstitut fuer Medizinische Statistik und Dokumentation\nder Johannes-Gutenberg-Universitaet\nObere Zahlbacher Strasse 69, W-6500 Mainz, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4522, "properties": {"category": "rec.sport.hockey", "text": "From: cbn7g@Virginia.EDU (Christopher Bass Nystrom)\nSubject: Re: ESPN Tonight\nArticle-I.D.: Virginia.1993Apr15.215144.10182\nOrganization: University of Virginia\nLines: 11\n\nswartzjh@RoseVC.Rose-Hulman.Edu writes:\n> Has anyone heard what game ESPN is showing tonight.  They said they will\n> show whatever game means the most playoff-wise. I would assume this would\n> be the Blues-Tampa game or the Minnesota-Red Wings game...  Anyone heard for\n> sure???\n> \n> \n> \t\tJeff Swartz\n\n\nIt's going to be the Stars - Wings game\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4523, "properties": {"category": "comp.graphics", "text": "From: mbc@po.CWRU.Edu (Michael B. Comet)\nSubject: Re: HOT NEW 3D Software\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 34\nReply-To: mbc@po.CWRU.Edu (Michael B. Comet)\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nIn a previous article, trb3@Ra.MsState.Edu (Tony R. Boutwell) says:\n\n>There is a new product for the (IBM'ers) out there... it is called\n>IMAGINE and it just started shipping yesterday... I can personally attest that it will blow the doors off of 3D-Studio.  It is made by IMPUlSE, and is in its\n>\n\tWell....I don't know about its competing with 3D studio, but\nit's pretty powerful allright.\n\n>\n>also....does anyone here know how to get in the Imagine mailing list??\n>please e-mail me if you do or post up here....\n>\n\n\tYes, send e-mail to:\n\n\timagine-request@email.sp.paramax.com\n\n\tWith a header of something like subscribe.\n\n\n\tI actually work on the FAQ (frequently asked questions).  We\nshould have the new version out of it by next week, but if you want, I\ncould e-mail you the previous one.  It details what the list is etc...\nas well as answering basic questions about Imagine.\n\n\tHope this helps!\n\n\n-- \n+======================================================================+\n|  Michael B. Comet -   Software Engineer / Graphics Artist  - CWRU    |\n|  mbc@po.CWRU.Edu  - \"Silence those who oppose the freedom of speech\" |\n+======================================================================+\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4524, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gene@theporch.raider.net (Gene Wright)\nSubject: re: mac portable vs. powerbook 100 answers (?)\nOrganization: The MacInteresteds of Nashville, Tn.\nLines: 37\n\nRegarding the post for information about the Mac Portable and the \nPowerbook 100, here are a couple of the answers:\n(1) Does the Mac Portable support Appletalk? Yes\n(2) What CPU is in the Mac Portable? A low power version of the 68000 \nrunning at 15.87 Mhz.\n(3) Does the Mac Portable run system 7? Yes, although it does use up a \nlot of memory.\n(4) Is memory still availabe for the Portable? There are several vendors \nthat still make RAM for the Portable. There are two options: Some vendors \nsell memory that plugs into the RAM Slot inside the portable. Others sell \nmemory that plugs into the Processor Direct Slot. Either way, the most \nmemory you can address is either 8 or 9 megabytes, depending on whether \nthe Portable is Backlit or not. King Memory and Peripherials in Irvine \nCalifornia is the cheapest place I know of for Portable memory. 2MB - \n$140, 4 MB, $250, and 7 MB $415. I still see several ads in macuser that \nare selling 4 MB modules for $450. Wide variety in pricing here.\n(5) What is the internal HD? Its a Conner CP-3045 40 MB HD with an \naverage access time of about 25 ms.\n(6) Is the screen better that the PB 100? Heavens yes! The PB 100 is a \nbacklit PASSIVE matrix screen which means it fades out on you if you move \nyour head a few degrees left or right. The Portable has a backlit or \nnon-backlit ACTIVE Matrix screen which I think is a joy to read.\n\nOther things to consider - Where to get the portable and how much to pay \nfor it? A good supplier has been SelectTerm in Mass. They were willing to \nsell a 2MB Non-backlit Portable with an internal 2400 bps modem for about \n$650. Or a 4 MB Backlit Portable with an internal 2400 bps modem for \nabout $900. \n\nThe answer is call around for a good while or you'll pay too much.\n\nI'm still looking for an internal FAX modem for the portable? Anybody got \none they want to sell? -- Good Luck, Gene Wright\n\n--\n  gene@theporch.raider.net (Gene Wright)\ntheporch.raider.net  615/297-7951 The MacInteresteds of Nashville\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4525, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Re: LaserJet IV upgrades to 1200dpi opinions\nOrganization: Ford Motor Company Research Laboratory\nLines: 43\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\n (larryhow@austin.ibm.com) wrote:\n: \n: What are the current products available to upgrade the resolution?\n: Which ones support postscript?\n: \n: Any experiences with them, either good or bad?\n: \n: Is the quality difference really noticable?\n: \n: I'm planning on producing camera ready copy of homes.  Will the higher\n: resolution be noticed for these?\n: \nIf you are talking about laser jet 4 then I believe it has to be postscript.\nI don't see any advantage to using PCL when you have a peice of hardware\nplugged into the LJ4 that is doing the work and it can support any language\nthat is suited for the job.  Besides I don't think PCL is even capable of\nhandling 1200 dpi specifications.  I only have experience with the Laser\nMaster Winjet 1200 which brings the LJ4 up to 1200 dpi and it uses postscript.\nIt also has a fast print mode which is not postscript, and it is at a lower\nresolution (600dpi I think), but it is FAST!!!!  This particular product\nuses your host processor to process the postscript, so even with a decent\nPC you know it's going to be slow i.e. slow compared to a high-end workstation\nprocessed PS.\n\nThe quality difference is very noticable and is almost worth the wait (for\nthe PS processing) - I'm rather impatient.\n\nWe were using it for B&W camera images (RS-170).  The gray scale image was\naccepted by MS Word and handed to the Winjet PS printer driver which converts\nthe image into postscript and then hands it off to the Winjets postscript\nprocessor.  The postscript is rendered into RAM (lots of it) and when it\nis done it shoots it directly to the printer.  The PS processor can also\naccept PS files created from other sources including DOS applications, but\nWindows has to be running at the time of printing.  The PS processor is\nresponsible for the halftoning and I'd say it does a pretty good job.  Our\ncamera images came out very good in my opinion.  (not as good as Laser Master's\ndemo though).\n\nI don't know how many other similar products are out there but I would be\nsurprised if there are several.\n\nGordon Lang\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.218+0000", "event": "documents", "entityId": 4526, "properties": {"category": "rec.motorcycles", "text": "From: bss2p@kelvin.seas.Virginia.EDU (Brent S. Stone)\nSubject: Wanted: Advice for New Cylist  (Ditto)\nOrganization: University of Virginia\nLines: 21\n\nIn article <C5r7Ey.7Mq@srgenprp.sr.hp.com> blaisec@sr.hp.com (Blaise Cirelli) writes:\n>\n\n\n\tI'm thinking about becoming a bike owner this year\nw/o any bike experience thus far.  I figure that getting a \ndecent used bike for under $1K the thing would pay for itself\nwhile I'm at grad school (car permits are $$$ where I'm going\nand who want's to ride a bus).  I'm looking for advice\non a first bike - best models/years.  I'm NOT looking for\nan old loud roaring thing that sounds like a monster.  The\nquit whirring of newer engines is more to my liking.\n\nApprec any advice.\n\nThanks,\n\nBS\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4527, "properties": {"category": "rec.sport.hockey", "text": "From: yatrou@INRS-Telecom.Uquebec.CA (Paul Yatrou)\nSubject: Re: Stop predicting\nOrganization: Bell-Northern Research Montreal, Canada.\nLines: 22\n\nIn <1993Apr16.060010.10012@ncsu.edu> cdkaupan@eos.ncsu.edu (CARL DAVID KAUPANG) writes:\n\n\n>It is really annoying to see all of these\n>predictions on the Net.  Who really cares\n>who you think will win?  Please stop with\n>the predictions, we all know the Caps are\n>going to win the Cup, so let it go at that.\n>\n>\n>David Kaupang\n>cdkaupan@eos.ncsu.edu\n\nYeah, but first they have to deal with the Devils,\nwho've had their number all year. I'm not saying\nthe Caps aren't a good team (they've been a thorn\non the Habs side for the past 10 years!!!), just\nthat they won't get past NJ...\n\nPaul Yatrou\nyatrou@inrs-telecom.uquebec.ca\n(running my pool today, wish me luck!!!!!!!!!!!)\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4528, "properties": {"category": "rec.sport.baseball", "text": "From: fester@island.COM (Mike Fester)\nSubject: Re: Notes on Jays vs. Indians Series\nOrganization: /usr/local/rn/organization\nDistribution: na\nLines: 41\n\nIn article <1993Apr14.081214.3921@CSD-NewsHost.Stanford.EDU> nlu@Xenon.Stanford.EDU (Nelson Lu) writes:\n>>>>>second basemen in history. He probably didn't even have as good a season as\n>>>>>Alomar last year.\n>>>\n>>>Guess which line is which:\n>>>\tBA\tOBP\tSLG\tAB\tH\t2B\t3B\tHR\tBB\n>>>X\t.310\t.405\t.427\t571\t177\t27\t8\t8\t87\n>>>Y\t.312\t.354\t.455\t657\t205\t32\t1\t20\t35\n>>\n>>>The walks should give it away.  OBP's, in general, somewhat more valuable than\n>>>slugging, and Alomar's edge in OBP was quite a bit larger than Baerga's edge\n>>>in slugging.\n>>\n>>I'm no SDCN, but what's more valuable:\n>>\n>>28 hits w/5 more doubles, 12 more HRs   OR\n>>7 more triples and 52 BBs?  (Let's not forget the 39 extra SBs. How many CS?)\n>\n>Of course the 28 hits and 12 homers are more valuable.\n>\n>But don't forget the 58 outs.  You can't have it both ways; Baerga's higher\n>raw numbers are due to him having more playing time, and thus he had more\n>hits and homers, but don't forget the cost of those outs.\n>\n>(BTW, just to answer your question, Alomar had 49 SB and 9 CS; Baerga had\n>10 SB and 2 CS, which gives a minute plus on Alomar's side.)\n\nSomething else to consider:\n\nAlomar's H-R splits were .500-.363 SLG, .444-.369 OBP! Baerga's was .486-.424\nand .392-.318. Pretty clearly, Alomar got a HUGE boost from his home park.\n\nI'd say you could make a good for them being about equal right now. T&P\nrated Baerga higher, actually.\n\nMike\n-- \nDisclaimer - These opiini^H^H damn! ^H^H ^Q ^[ .... :w  :q  :wq  :wq! ^d  ^X ^?\nexit X Q  ^C ^? :quitbye  CtrlAltDel   ~~q  :~q  logout  save/quit :!QUIT\n^[zz ^[ZZZZZZ ^vi  man vi ^@  ^L  ^[c  ^# ^E ^X ^I ^T ? help  helpquit ^D  ^d !!\nman help ^C ^c :e! help exit ?Quit ?q CtrlShftDel \"Hey, what does Stop L1A d...\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4529, "properties": {"category": "sci.electronics", "text": "From: scst83@csc.liv.ac.uk (Mr. C.D. Smith)\nSubject: Re: Why is telephone audio 300-3000 Hz?\nOrganization: Computer Science, Liverpool University\nLines: 47\nNntp-Posting-Host: goyt.csc.liv.ac.uk\n\n\n>> telephone systems have the capability of a passband of 30hz to 4Khz.\n>> The reason they do not implement this is: It is not backward compatable\n>> to every telephone system.  In addition, the most effecent mix of \n>> electrical effecency, and intelegability closly mateches a 300hz-3khz\n>> passband.\n>\n>Close, but no banana (to paraphrase Garfield)...\n>The reason 300-3300 Hz is used is that voice channels used to occupy\n>4kHz bands when multiplexed on a trunk line. Therefore, 300Hz at the\n>bottom, and 700Hz at the top of this band were filtered to minimise\n>interference with the next band.\n>\n>Nowadays, digital trunks have made this less relevant, but the phone\n>companies still see no reason to improve quality (especially for free!).\n>Therefore, digital \"chunk of a trunk\" segments still have a guaranteed\n>bandwidth of only 4kHz (so they can carry the equivalent of one analog\n>line) at the clock rate of a standard PCM T1 or E1 digital trunk.\n>\n>It's all historical...\n\n\nHere in the UK, the bandwidth restriction apparently only apply to \nlocal lines.. ie those used by the average domestic client. Private\nlines which are run from the local exchange to the leasing client are \nusually capable of a higher bandwidth if the exchange is digital.\n\nDon't quote me on that..... But I think I remember a BT engineer \nsaying something to that effect when I was doing some work\nshadowing a few years ago.\n\nByeeeee !\n\n\nChris ;-)\n\n  +====================================================================+\n  |Name : Mr Chris Smith       |     Twang on that 'ole guitar !       |\n  |Addrs: scst83@uk.ac.liv.csc |                                       |\n  |Uni  : Liverpool University |Quest: To build more and more hardware |\n  |Dgree: Computer Science     |                                       |\n  +====================================================================+\n\n \"What ever the sun may be, it is certainly not a ball of flaming gas!\"\n  -- D.H. Lawrence.\n\n * All views expressed are my own, and reflect that of private thought. *\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4530, "properties": {"category": "rec.autos", "text": "From: Sang-Yoon Oh <so0z+@andrew.cmu.edu>\nSubject: Re: Jeep Grand vs. Toyota 4-Runner\nOrganization: Junior, Mechanical Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 29\n\t<C51Hn0.2JI@world.std.com>\nNNTP-Posting-Host: po2.andrew.cmu.edu\nIn-Reply-To: <C51Hn0.2JI@world.std.com>\n\n>In article <1pq29p$29p@seven-up.East.Sun.COM>\njfox@hooksett.East.Sun.COM >writes:\n>>\n>>Any reason you are limited to the two mentioned? They aren't really at\n>>the same point along the SUV spectrum - not to mention price range.\n>>How about the Explorer, Trooper, Blazer, Montero, and if the budget\n>>allows, the Land Cruiser? \n> \n>Any advice on HOW to buy a Land Cruiser? My local Toyota dealer says they\n>get two a year, and if I want one I can just get on the waiting list.\n>Forget about a test drive or even kicking the tires.\n>And if they are that rare, I doubt there is much of a parts inventory on\nhand.\n\nLand Crusier is just simply nice with shit-load of power and room.\nFully stocked, it cost ~$40,000.  I think it is worth the money.\nOnly problem is when you get into accident(it doesn't usually break down\nunless you forget to get a oil change for 30000 miles or something\nstupid like this), body parts and other parts are very hard to locate. \nParts are over priced also.  One of my friend had accident in past snow\nstorm and he is still waiting for front bumper and passenger side fender.\n\nWell, if you test drive Land Cruiser, all other SUV look like toys.\nOne of magazine writer called it \"Land Bruiser\".  \n\nIf you have $40,000 to spare for SUV, get Land Cruiser and forget Lange Rover.\n\n--Sang\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4531, "properties": {"category": "sci.crypt", "text": "From: Danny Weitzner <djw@eff.org>\nSubject: Re-inventing Crypto Policy?  An EFF Statement\nX-Xxmessage-Id: <A7F49385AC03AC80@harding.eff.org>\nX-Xxdate: Fri, 16 Apr 93 21:47:01 GMT\nNntp-Posting-Host: harding.eff.org\nOrganization: Electronic Frontier Foundation\nX-Useragent: Nuntius v1.1.1d17\nLines: 122\n\n\n\n\n\nApril 16, 1993\n\nINITIAL EFF ANALYSIS OF CLINTON PRIVACY AND SECURITY PROPOSAL\n\nThe Clinton Administration today made a major announcement on\ncryptography policy which will effect the privacy and security of\nmillions of Americans.  The first part of the plan is to begin a\ncomprehensive inquiry into major communications privacy issues such as\nexport controls which have effectively denied most people easy access to\nrobust encryption, and law enforcement issues posed by new technology.\n\nHowever, EFF is very concerned that the Administration has already\nreached a conclusion on one critical part of the inquiry, before any\npublic comment or discussion has been allowed.  Apparently, the\nAdministration is going to use its leverage to get all telephone\nequipment vendors to adopt a voice encryption standard developed by the\nNational Security Agency.  The so-called \"Clipper Chip\" is an 80-bit,\nsplit key escrowed encryption scheme which will be built into chips\nmanufactured by a military contractor.  Two separate escrow agents would\nstore users' keys, and be required to turn them over law enforcement upon\npresentation of a valid warrant.  The encryption scheme used is to be\nclassified, but the chips will be available to any manufacturer for\nincorporation into its communications products.\n\n     This proposal raises a number of serious concerns .\n\nFirst, the Administration has adopted a solution before conducting an\ninquiry.  The NSA-developed Clipper Chip may not be the most secure\nproduct. Other vendors or developers may have better schemes.\nFurthermore, we should not rely on the government as the sole source for\nthe Clipper or any other chips.  Rather, independent chip manufacturers\nshould be able to produce chipsets based on open standards.\n\nSecond, an algorithm cannot be trusted unless it can be tested. Yet, the\nAdministration proposes to keep the chip algorithm classified.  EFF\nbelieves that any standard adopted ought to be public and open.  The\npublic will only have confidence in the security of a standard that is\nopen to independent, expert scrutiny.  \n\nThird, while the use of the use of a split-key, dual escrowed system may\nprove to be a reasonable balance between privacy and law enforcement\nneeds, the details of this scheme must be explored publicly before it is\nadopted.  What will give people confidence in the safety of their keys? \nDoes disclosure of keys to a third party waive an individual's Fifth\nAmendment rights in subsequent criminal inquiries?  These are but a few\nof the many questions the Administrations proposal raised but fails to\nanswer.\n\nIn sum, the Administration has shown great sensitivity to the importance\nof these issues by planning a comprehensive inquiry into digital privacy\nand security.  However, the \"Clipper Chip\" solution ought to be\nconsidered as part of the inquiry, and not be adopted before the\ndiscussion even begins.\n\nDETAILS OF THE PROPOSAL:\n\nESCROW\n\nThe 80-bit key will be divided between two escrow agents, each of whom\nhold 40-bits of each key.  The manufacturer of the communications device\nwould be required to register all keys with the two independent escrow\nagents.  A key is tied to the device, however, not the person using it.\n\nUpon presentation of a valid court order, the two escrow agents would\nhave to turn the key parts over to law enforcement agents.  According to\nthe Presidential Directive just issued, the Attorney General will be\nasked to identify appropriate escrow agents.  Some in the Administration\nhave suggested that one non-law enforcement federal agency (perhaps the\nFederal Reserve), and one non-governmental organization could be chosen,\nbut there is no agreement on the identity of the agents yet.\n\nCLASSIFIED ALGORITHM AND THE POSSIBILITY OF BACK DOORS\n\nThe Administration claims that there are no back doors -- means by which\nthe government or others could break the code without securing keys from\nthe escrow agents -- and that the President will be told there are no\nback doors to this classified algorithm.  In order to prove this,\nAdministration sources are interested in arranging for an all-star crypto\ncracker team to come in, under a security arrangement, and examine the\nalgorithm for trap doors.  The results of the investigation would then be\nmade public.\n\nThe Clipper Chipset was designed and is being produced and a sole-source,\nsecret contract between the National Security Agency and two private\nfirms:  VLSI and Mycotronx.  NSA work on this plan has been underway for\nabout four years.  The manufacturing contract was let 14 months ago.\n\nGOVERNMENT AS MARKET DRIVER\n\nIn order to get a market moving, and to show that the government believes\nin the security of this system, the feds will be the first big customers\nfor this product.  Users will include the FBI, Secret Service, VP Al\nGore, and maybe even the President.  At today's Commerce Department press\nbriefing, a number of people asked this question, though:  why would any\nprivate organization or individual adopt a classified standard that had\nno independent guaranty of security or freedom from trap doors?\n\nCOMPREHENSIVE POLICY INQUIRY\n\nThe Administration has also announced that it is about to commence an\ninquiry into all policy issues related to privacy protection, encryption,\nand law enforcement.  The items to be considered include:  export\ncontrols on encryption technology and the FBI's Digital Telephony\nProposal.  It appears that the this inquiry will be conducted by the\nNational Security Council.  Unfortunately, however, the Presidential\nDirective describing the inquiry is classified.  Some public involvement\nin the process has been promised, but they terms have yet to be specified.\n\nFROM MORE INFORMATION CONTACT:\n\nJerry Berman, Executive Director (jberman@eff.org)\nDaniel J. Weitzner, Senior Staff Counsel (djw@eff.org)\n\nFull text of the Press releases and Fact Sheets issued by the\nAdministration will be available on EFF's ftp site.\n\nDanny Weitzner                      Senior Staff Counsel, EFF\n                                    +1 202 544 3077\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4532, "properties": {"category": "soc.religion.christian", "text": "From: kempmp@phoenix.oulu.fi (Petri Pihko)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nOrganization: University of Oulu, Finland\nLines: 135\n\nJason Smith (jasons@atlastele.com) wrote:\n \n: [ The discussion begins: why does the universe exist at all?  ]\n \n: One of the Laws of Nature, specifying cause and effect seems to dictate \n: (at least to this layman's mind) there must be a causal event.  No\n: reasonable alternative exists.\n\nI would argue that causality is actually a property of spacetime; \ncauses precede their effects. But if you claim that there must be\nan answer to \"how\" did the universe (our spacetime)  emerge from \n\"nothing\", science has some good candidates for an answer.\n\nI have always wondered why Christians use the \"There are questions\nscience (or atheism) cannot answer\" argument; I hope this is the\nappropriate group to ask this question.\n\nThe most popular question is the question of origins. Why does the\nuniverse exist, or anything, for that matter?\n\nI think this question should actually be split into two parts, namely\n\n1) Why is there existence? Why anything exists?\n\nand\n\n2) How did the universe emerge from nothing?\n\nIt is clear science has nothing to say about the first question. However,\nis it a meaningful question, after all?\n\nI would say it isn't. Consider the following:\n\nA die-hard skeptic being (be it human or whatever) attempts to doubt\none's very existence. Since it is so easy to doubt everything else -\nI cannot be _sure_ the world exists, it may be my mind fooling me -\ncan I ever be sure I exist?\n\nHowever, it is only possible to exist or not to exist. (Someone\ninsert an appropriate Shakespeare quote here ;-) )\n\nA being that does not exist cannot doubt one's existence.\nA being that does exist can doubt one's existence, but this would be\npointless - the being would exist anyway.\n\nLet us return to the original question: why? A being that does not\nexist does not need any reasons for its non-existence. This being\nis not _sure_ whether anything else exists but his mind, but let\nus assume that the world exists independent of the mind (the objectivity\npostulate). The question \"why anything exists\" can be countered by\ndemanding answer to a question \"why there is nothing in nothingness,\nor in non-existence\". Actually, both questions turn out to be\ndevoid of meaning. Things that exist do, and things that don't exist\ndon't exist. Tautology at its best.\n\nI seriously doubt God could have an answer to this question.\n\nSome Christians I have talked to have said that actually, God is\nHimself the existence. However, I see several problems with this\nanswer. First, it inevitably leads to the conclusion that God is\nactually _all_ existence, good and evil, devils and angels, us and\nthem. This is pantheism, not Christianity.\n\nAnother answer is that God is the _source_ of all existence.\nThis sounds much better, but I am tempted to ask: Does God\nHimself exist, then? If God is the source of His own existence,\nit can only mean that He has, in terms of human time, always\nexisted. But this is not the same as the source of all existence.\nThis argument sounds like God does not exist, but meta-exists,\nand from His meta-existent perspective, He created existence.\nI think this is actually a nonsolution, a mere twist of words.\n\nThe best answer I have heard is that human reasoning is incapable\nof understanding such questions. Being an atheist myself, I do not\naccept such answers, since I do not have any other methods.\n\nThe second question: How did the universe emerge from nothing?\nbelongs to the domain of science, and I, for one, do not doubt the\nquestion can be answered by its methods. Many cosmologists have\nsuggested that it is entirely possible for universes to emerge\nfrom vacuum (this possibility has been suggested in a recent\nHawking biography; see also Lizhi & Shuxian: Creation of the Universe,\nWorld Scientific, 1989). However, I think the sci groups are more\nappropriate for discussions like this.\n \n: As far as I can tell, the very laws of nature demand a \"why\".  That isn't\n: true of something outside of nature (i.e., *super*natural).\n\nThis is not true. Science is a collection of models telling us \"how\",\nnot why, something happens. I cannot see any good reason why the \"why\"\nquestions would be bound only to natural things, assuming that the\nsupernatural domain exists. If supernatural beings exist, it is\nas appropriate to ask why they do so as it is to ask why we exist.\n \n: I believe the \"genetic code\" will be entirely deciphered in our lifetimes,\n: but we will not see man convert entirely inert material into self sustaining, \n: reproducing life, *ever*.  (I've never been much of a prophet, though. I\n: can't even *picture* New York in my mind 8^] ).  I don't believe *any*\n: technology would be able to produce that necessary *spark* of life, despite\n: having all of the parts available. Just my opinion.\n\nThis opinion is also called vitalism; namely, that living systems are\nsomehow _fundamentally_ different from inanimate systems. Do Christians\nin general adopt this position? What would happen when scientists announce\nthey have created primitive life (say, small bacteria) in a lab?\n\nThere is a problem with your prophecy: artificial life has been created,\nalthough not yet in a chemical form. Computer simulations of evolution\ncontain systems that are as much alive as any bacterium, although\ntheir code is electronic, as well as their metabolism. See a recent book\n\nSteven Levy: Artificial life - The Quest for a New Creation. Jonathan\nCape, London 1992.\n\nArtificial chemical life is just around the corner - after all, no \nspark of life has been found to be necessary; living systems do not\nviolate any physical laws as we know them. \n\n: You don't mind if a few of us send up a prayer on your behalf during your\n: research, do you?  After all, if we of Christ are deluding ourselves, you\n: really have nothing to worry about, eh?\n\nExactly. This is why I think atheists should _not_ post any evangelical\natheist arguments to soc.religion groups, since people who seek to \nfind peace in religions must be allowed to gather together. I would\nnormally have asked these questions in alt.atheism or talk.religion.misc,\nbut it seems many Christians do not read these groups. \n\nPetri\n\n--\n ___. .'*''.*        Petri Pihko    kem-pmp@          Mathematics is the Truth.\n!___.'* '.'*' ' .    Pihatie 15 C    finou.oulu.fi    Physics is the Rule of\n       ' *' .* '*    SF-90650 OULU  kempmp@           the Game.\n          *'  *  .*  FINLAND         phoenix.oulu.fi  -> Chemistry is The Game.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4533, "properties": {"category": "alt.atheism", "text": "Organization: Penn State University\nFrom: Andrew Newell <TAN102@psuvm.psu.edu>\nSubject: Re: <<Pompous ass\n <1q52q8INN6pi@gap.caltech.edu> <93099.234144MVS104@psuvm.psu.edu>\n <1q8lk3INNitq@gap.caltech.edu> <93102.062908MVS104@psuvm.psu.edu>\n <93105.022621TAN102@psuvm.psu.edu> <1ql71pINN5ef@gap.caltech.edu>\nLines: 36\n\nIn article <1ql71pINN5ef@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan\nSchneider) says:\n>\n>Andrew Newell <TAN102@psuvm.psu.edu> writes:\n>\n>>Sure, they may fall back on other things, but this is one they\n>>should not have available to use.\n>\n>It is worse than others?  The National Anthem?  Should it be changed too?\n>God Bless America?  The list goes on...\n\nWorse?  Maybe not, but it is definately a violation of the\nrules the US govt. supposedly follows.  Maybe the others\nshould be changed to?  But I'm not personally as concerned\nabout the anthem since I don't come across it in daily\nnearly unavoidable routines.\n\n>>every christian.  And I'd be tempted to rub that motto in the\n>>face of christians when debunking their standard motto slinging\n>>gets boring.\n>\n>Then you'd be no better than the people you despise.\n\nI don't despise the people...just their opinions.  I meant\nwhen chatting with the ones who refuse to listen to any idea\nother than their own...then it just becomes an exercise for\namusement.\n\n>[...]\n>>For the motto to be legitimate, it would have to read:\n>>   \"In god, gods, or godlessness we trust\"\n>\n>Would you approve of such a motto?\n\nNo.  ...not unless the only way to get rid of the current one\nwas to change it to such as that.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4534, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: GUI Application Frameworks for Windows ??\nFrom: stefan@olson.acme.gen.nz (Stefan Olson)\nLines: 32\n\nIn <1993Apr12.154418.14463@cimlinc.uucp> bharper@cimlinc.uucp (Brett Harper) writes:\n>Hello,\n>  \n>  I'm investigating the purchase of an Object Oriented Application Framework.  I have\n>come across a few that look good:\n\n>  Zapp 1.1 from Inmark\n>  Zinc 3.5 from Zinc software\n>  C++/Views from Liant\n>  Win++ from Blaise\n\n>Some considerations I'm using:\n\n>  Being new to Windows programming (I'm from the UNIX/X world), the quality and\n>intuitivness of the abstraction that these class libraries provide is very \n>important.  However, since I'm not adverse to learning the internals of Windows\n>programming, the new programming methodology should be closely aligned with\n>the native one.  I don't believe arbitrary levels of abstraction, just for the\n>sake of changing the API, are valuable.\n\nThe Microsoft Founation classes (afx) that come with C/C++ 7.0 (and \nVisual C++) are very good, they already have a version for NT,\nit comes with source code, and is very close to the navtive API.\nIt also as some classes to manage data structures...\n\n...Stefan\n\n-- \n------------------------------------------------------------------------\n   Stefan Olson                     Mail: stefan@olson.acme.gen.nz\n   Kindness in giving creates love.\n------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4535, "properties": {"category": "sci.electronics", "text": "From: peter.m@insane.apana.org.au (Peter Tryndoch)\nSubject: Swr Meter For Cb Radios\nLines: 28\n\nAllThe Devil ReincarnateSWR meter for CB radios\n\nTD>From: ssave@ole.cdac.com (The Devil Reincarnate)\nTD>Organization: CDAC, WA\nTD>What\nTD>is a good choice for a CB? 1/4 or 1/8 wave?\nTD>  I read the installation instructions on a 1/4 wave antenna,\nTD>and they suggested that I use an SWR to tune it at channel 12\nTD>and channel 32 for a minimum reading.  Question is, why channel\nTD>12 and 32?\n\nThe best antenna is one that will let out the most wave (probably not the \nbest explanation, but the rest makes sense) A one wave will cancell itself \nout (BTW no such beastie) . The best is a 1/2 wave antenna, followed by \n1/4, then 1/8 etc.\n\nAs for SWRing in, what you actually do is trim the antenna to the correct \nlength for the specific wavelength you will be transmitting on. Since the \nwavelength varies with the channel you use, then it's recommended to SWR \nin using the middle channel of those you are going to use.\nAnyway in the beginning of CB's, all new antennas had to be SWR'ed in, \nnowdays manufactures trim the antennas almost spot on, so that there's not \nmuch point in SWRing. Then again you may be a fanatic and whish to do it \nanyway.\n\nCheers \nPeter T.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4536, "properties": {"category": "rec.motorcycles", "text": "From: maxg@microsoft.com (Max Gilpin)\nSubject: HONDA CBR600 For Sale\nOrganization: Microsoft Corp.\nKeywords: CBR Hurricane \nDistribution: usa\nLines: 8\n\nFor Sale 1988 Honda CBR600 (Hurricane).  I bought the bike at the end of\nlast summer and although I love it, the bills are forcing me to part with\nit.  The bike has a little more than 6000 miles on it and runs very strong.\nIt is in nead of a tune-up and possibly break pads but the rubber is good.\nI am also tossing in a TankBag and a KIWI Helmet.  Asking $3000.00 or best\noffer.  Add hits newspaper 04-20-93 and Micronews 04-23-93.  Interested \nparties can call 206-635-2006 during the day and 889-1510 in the evenings\nno later than 11:00PM.  \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4537, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: e2s@icf.hrb.com (Eric M. Sebastian)\nSubject: Question about FastMicro\nOrganization: HRB Systems, Inc.\nLines: 6\n\nI thought I read that FastMicro was having some financial difficulties,\nis this true?  I can't seem to find the posting about it and was wondering\nif someone can confirm this.\n\nThanks,\nEric Sebastian\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4538, "properties": {"category": "sci.electronics", "text": "From: dannyb@panix.com (Daniel Burstein)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: PANIX Public Access Unix, NYC\nLines: 27\n\n<lots of pretty good stuff about how the huge towers near most nuclear\npower plants are there to cool the used steam back into near ambient\ntemperature water deleted>\n\n>>water.  As I recall the water isn't as hot (thermodynamically) in many\n>>fossil fuel plants, and of course there is less danger of radioactive\n>>contamination.\n\n>       Actually, fossil fuel plants run hotter than the usual \n>boiling-water reactor nuclear plants.  (There's a gripe in the industry\n>that nuclear power uses 1900 vintage steam technology).  So it's\n>more important in nuclear plants to get the cold end of the system\n>as cold as possible.  Hence big cooling towers.  \n\n    as a point of info, some of the early nuclear power plants in this\ncountry used the fission pile as a first stage to get the water hot, and\nthen had a second stage -fossil fuel- step to get the water (actually\nsteam) VERY HOT.\n\n   I remember seeing this at Con Edison's Indian Point #1 power plant,\nwhich is about 30 miles north of NYC, and built more or less 1958.\n\n\ndannyb@panix.com\n\n(all the usual disclaimers apply, whatever they may be)\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4539, "properties": {"category": "rec.sport.baseball", "text": "From: boell@hpcc01.corp.hp.com (Donald P Boell)\nSubject: Re: Best Homeruns\nOrganization: the HP Corporate notes server\nLines: 5\n\nI'd have to say the most impressive HRs I've ever see came from Dave Kingman\nand his infamous moon-raker drives...\n\nDon Boell\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4540, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Re: A visit from the Jehovah's Witnesses (good grief!)\nLines: 7\n\nThe amount of energy being spent on ONE LOUSY SYLLOGISM says volumes for the\ntrue position of reason in this group.\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4541, "properties": {"category": "talk.politics.misc", "text": "From: de@cup.hp.com (Dan Epstein)\nSubject: Re: Foreign Media Reaction April 1-12, part 1 of 3\nNntp-Posting-Host: capella.cup.hp.com\nOrganization: Hewlett-Packard\nX-Newsreader: TIN [version 1.1 PL9.2]\nLines: 19\n\nPhill Hallam-Baker (hallam@dscomsa.desy.de) wrote:\n\n: First off they could recognise Iraqu's responsibility in initiating the\n: Iran/Iraq war. Providing technical assistance to Iran to get it's oil\n: production back up to capacity would also be a smart move, at the moment \n: Iran is above it's OPEC ceiling. If they had extra capacity they would\n: use it and bring down the oild price further which is in our interests.\n\nI agree with most of what Phill says, except the point about it being in\nour interests to bring down the oil price.  Consider that both the U.S.\nand Great Britain have domestic sources to partly satisfy \ntheir energy needs.    Pricy OPEC oil impacts both Germany,\nJapan and many other \"industrial rivals\" more than these two.  \nIn addition, the proceeds from the sale (especially by Saudi Arabia, Kuwait\nU.A.E. etc) are disproportionately reinvested in the U.S. and G.B., \npropping up these economies and further providing an incentive \nto keep prices from falling too low.\n\nDan Epstein\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4542, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: Where are they now?\nOrganization: Case Western Reserve University\nLines: 34\nDistribution: world\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1ql0d3$5vo@dr-pepper.East.Sun.COM> geoff@East.Sun.COM (Geoff Arnold @ Sun BOS - R.H. coast near the top) writes:\n\n>Your posting provoked me into checking my save file for memorable\n>posts. The first I captured was by Ken Arromdee on 19 Feb 1990, on the\n>subject \"Re: atheist too?\". That was article #473 here; your question\n>was article #53766, which is an average of about 48 articles a day for\n>the last three years. As others have noted, the current posting rate is\n>such that my kill file is depressing large...... Among the posting I\n>saved in the early days were articles from the following notables:\n\n\tHey, it might to interesting to read some of these posts...\nEspecially from ones who still regularly posts on alt.atheism!\n\n\n>>From: loren@sunlight.llnl.gov (Loren Petrich)\n>>From: jchrist@nazareth.israel.rel (Jesus Christ of Nazareth)\n>>From: mrc@Tomobiki-Cho.CAC.Washington.EDU (Mark Crispin)\n>>From: perry@apollo.HP.COM (Jim Perry)\n>>From: lippard@uavax0.ccit.arizona.edu (James J. Lippard)\n>>From: minsky@media.mit.edu (Marvin Minsky)\n>\n>An interesting bunch.... I wonder where #2 is?\n\n\tHee hee hee.\n\n\t*I* ain't going to say....\n\n--- \n\n        \" Whatever promises that have been made can than be broken. \"\n\n        John Laws, a man without the honor to keep his given word.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4543, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ke_kimmell@vax.cns.muskingum.edu (Kevin Kimmell - Computer Science/German Undergrad)\nSubject: HOW is a Null Modem Cable?\nOrganization: Muskingum College\nLines: 13\n\n\n\tI am interrested in the extrodinarily simple concept of the null modem\ncable. (Actually I have NO idea, so don't count that last statement.)  What I'm\nasking is what pins does it use (or what are it's specifications?)  I just want\nto solder one myself instead of buying one.  I don't even know what port is\nused.\n\nHelp me please (at ke_kimmell@vax.cns.muskingum.edu)\n\nKevin\n\np.s.  I'm intending to use the cable for PC-to-PC transfers (via Lap-Link or\nTelix.  Ideas and info gladly accepted.)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4544, "properties": {"category": "misc.forsale", "text": "From: ralf@iqsc.COM (Ralf)\nSubject: Used Stuff\nOrganization: IQ Software Corp.\nLines: 22\n\n  \n  I have this used equipment for sale, everything is negotiable!\n\n1200 Baud Compuadd Internal Modem, all docs and software    $ 25.00\n\nSCO UNIX V3.2.2 All disks and Docs (Has UUCP/all Utils)     $150.00\n\nOld 1.2MB floppy drive, functional, out of an old 286.      $ 20.00\n\nDead ST1196 80MB RLL drive, don't know whats wrong with it. $ 20.00\n\nOld Joystick, don't remember the brand name                 $ 10.00\n\nOld Boat Anchor CGA Monitor with full length CGA CArd       $ 20.00\n\nSerial Card 25 Pin                                          $ 10.00\n\nTest Drive III Accolade                                     $ 20.00\n\nAll prices neg +shipping!\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4545, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: LH Workmanship\nArticle-I.D.: cactus.1993Apr15.221421.21839\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 30\n\nIn article <1993Apr15.203750.25764@walter.bellcore.com> jchen@ctt.bellcore.com writes:\n>I just visited the NY Auto Show, and saw two LH cars on the floor: Eagle \n>Vision and Dodge Intrepid. \n>\n>Really nice I must say. Very attractive styling, lots of features and room, \n>at a competitive price.  \n>\n>Unfortunately, the workmanship is quite disappointing. On BOTH cars,\n>the rubber seals around the window and door fell off. It turns out\n>the seals are just big grooved rubber band. It goes on just by pressing\n>the groove against the tongue on the door frame. Surely it would come\n>off easily.\n\nLack of build quality was the thing  I notced on the first 2 LH's I\nsaw months back. The panel gaps were large and non-uniform between\nthe 2 cars I saw - the kind of thing you expect and accept on a\nMustang - but not from Chrysler's savior.  I drove one of the low\nend cars, and thought it was more than adequate. I'd prefer\nan LH to a Taurus from my brief experience.\n\nCraig\n\n>\n>I am not sure how many of this kind of pooring engineering/assembly\n>problems that will show up later.\n>\n>I may still consider buying it, but only when it establishes a good\n>track record.\n>\n>Jason Chen\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4546, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: Re: Jewish Baseball Players?\nOrganization: Allegheny College\n\nIn article <1993Apr15.214421.1@acad.drake.edu> sbp002@acad.drake.edu  \nwrites:\n\n\n\nI remember reading somewhere that 7% of the league was jewish during the  \n50's. Now, there is practically NOBODY\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4547, "properties": {"category": "rec.sport.hockey", "text": "From: lsa@ll.mit.edu (lisa s anderson)\nSubject: Re: Too Many Europeans in NHL\nReply-To: lsa@ll.mit.edu (lisa s anderson)\nOrganization: MIT Lincoln Laboratory\nLines: 24\n\nIn article <1993Apr6.142037.9246@alchemy.chem.utoronto.ca>, golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n\n|>\n|>In article <1993Apr6.044323.22829@pasteur.Berkeley.EDU> daniell@cory.Berkeley.EDU (Daniel Lyddy) writes:\n|>>\n|>>You know, you're absolutely right.  I think we should round up all those\n|>>players of European descent and ship 'em back to where they came from.  Let's\n|>>see, with whom should we start?  I dunno, Lemieux?  Hmmm...sounds like he\n|>>has *French* blood in him!!!  Hey!  France is part of Europe!  Send that\n|>>Euro-blooded boy back!!!\n|>>\n|>\n|>Don't you Americans study history...the French settled in North America\n|>as early or before the British...Lemieux can probably trace back his\n|>North American heritage back a lot further than most of us.\n|>\n|>Gerald\n|>\n\n\nUh, Gerald, I think he was joking...\n\n\n-lisa\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4548, "properties": {"category": "rec.motorcycles", "text": "From: bradw@Newbridge.COM (Brad Warkentin)\nSubject: Re: V-max handling request\nNntp-Posting-Host: thor\nOrganization: Newbridge Networks Corporation\nLines: 21\n\nIn article <1qjtr9$llb@news.ysu.edu> ak296@yfn.ysu.edu (John R. Daker) writes:\n>\n>In a previous article, ba7116326@ntuvax.ntu.ac.sg () says:\n>\n>>hello there\n>>ican anyone who has handson experience on riding the Yamaha v-max, pls kindly\n>>comment on its handling .\n>\n>You're kidding, right?  This is Flame bait in the extreme.  V-max handling?\n>Har har har har....\n\nZero to very fast very quickly... lastest rumor is 115 hp at the rear wheel,\nhandles like a dream in a straight line to 80-100, and then gets a tad upset\naccording to a review in Cycle World... cornering, er well, you can't have \neverything... Seriously, handling is probably as good as the big standards\nof the early 80's but not compareable to whats state of the art these days.\n\nAll this gleemed from reviews and discussions with owners. I too lust after\nthis bike.\n\nbj...bradw@Newbridge.com... no .sig no .plan no.clue  >> DoD# 255 <<\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.219+0000", "event": "documents", "entityId": 4549, "properties": {"category": "talk.politics.mideast", "text": " wiscon.weizmann.ac.il!jhsegal\nSubject: Re: How many israeli soldiers does it take to kill a 5 yr old child?\nFrom: jhsegal@wiscon.weizmann.ac.il (Livian Segal)\nOrganization: Weizmann Institute of Science, Computation Center\nLines: 130\n\nWell,I tried not to get involved in this never ending talk,but,man,I REALLY got\nhot about this bullshit.\n\nIn article <1993Apr13.164305.701@bernina.ethz.ch> nadeem@p.igp.ethz.ch writes:\n>Hakim Abu Ahmed (cu304@cleveland.Freenet.Edu) wrote:\n>\n>: in-reply-to: hm@cs.brown.edu's message\n>: >   zbib@bnr.ca (Sam Zbib) writes:\n>\n>: >   steel@hal.gnu.ai.mit.edu (Nick Steel) writes:\n>: >   |> Q: How many occupying israeli soldiers (terrorists) does it\n>: >   |>    take to kill a 5 year old native child?\n>: >   |>\n>: >   |> A: Four\n>: >   |>\n>: >   |> Two fasten his arms, one shoots in the face,\n>: >   |> and one writes up a false report.\n>: >   |>\n\nMaking stupid and idiot jokes about soliders will not bring anything (not\nmentioning peace or agreement). I also know several tens of jokes about arabs\n(palestinians) but I DO NOT post them to Usenet (Anyway,not to THIS newsgroup),\nsince I don't think I will achieve any target but making other parts furious,and\nthis is NOT my target.\nIf this is your target...well...that tells a lot about you.\n\n\n>: >Can Nick Steel provide documentation for this alleged incident ?\n\nDid you really think he is talking about something realistic?\n\n>\n>: >Harry.\n>\n>: You must be kidding ,this is not a single incident\n>: now. This has become a daily life practice in Gazza\n>: if you mean the killing of children by armed soldiers.\n\nYeah,well,sometimes,when cowards put their children and wives in the front line,\nso their enemy cannot do anything,well,maybe in those cases,you have no better\nthing to do (to save your life) than shooting. And if parents want their\nchildren alive,I think it would be better that before they get out to throw\nstones/molotov botlles,or when they come to kill soliders,to keep their children\nin the houses.\n\n\n>: If you are objecting the number of occupying israeli\n>:  soldiers (terrorists) or  the way they do it , then\n             ^^^^^^^^^^^^----\\/\n                         Look in the dictionary at the word \"terrorism\"! It\n\t\t\t says: (nu) the use of threats of violence,and violence\n\t\t\t esp for political purposes.\n\t\t\t It sounds more like your guys...\n\n>: I caan assure you that they do worse than that. Just as\n\nYeah? Well,I guess you were in there,and you know it all...\n\n>: example  11 children were killed this month of Ramadhan\n>: two of them by military vehicules.  An other similar\n>: incident by vehicule was the one of 25 Feb (4 Ramadhan)\n>: where thee military truck on purpose hit a passenger\n                             ^^^^^^^^^^---\\/\n                           Where from do you know that it was \"on purpose\"?\n\t\t\t   Personally,I didn't hear about this case,although\n\t\t\t   I don't deny it.But how can ANYBODY,besides the\n\t\t\t   person itself,can say it was \"on purpose\"?\n\n>: car where the victims were a 5 year girl Safa Sail\n>: Bisharat\n>: and Saamud Riyad a 2 weeks old babygirl.( + the 23\n>: oldd Raajij Rouhy)\n\nYeah,sure.The truck driver looked in the car with his Zionist Equipment of\nDetecting Palestinian Children,and then he thought to himself:Hey there is a\n5 year  and 2 weeks girls in the car.Why won't I make an accident and kill\nthe \"enemy\"? Maximum I will die too in the crash...But what do I care?...\n\n>: --\n>: Hakim.\n>\n>Actually, if can remember correctly, was it not reported and even on camera\n>some time during the Israeli invasion of Lebanon, or when the itifada began,\n>that CNN caught regular uniformed Israeli soldiers breaking the arms of\n>some Arab youngsters in a very professional and brutal manner, (someone\n>please give full details if they can remember). This is one of the few\n\nWell,It was about 3 years ago ,in the Intifada (The fact that  you can't\nremember the time prooves how much do you care about it). I DO NOT think\nthat what the soliders did was correct. But I will not agree that they \"were\nbreaking their arms\".I saw that film,and,unlike in the USA,it was broadcasted\nentirely not long ago (in a talk show) and at the end the \"arm-broken\" guys got\nup and walked and used their arms very good. They guy who did it was interviewed\nand he said he did it because the terrorist or whatever he was refused to take\nhis orders,and spitted in his face. What ammount of truth exist in this\nstatement I cannot tell you,because I wasn't there. But the guy who did it was\nin prison,if it makes you any good.\n\n>occassions on which such a scene has been transmitted to the West and\n>in the USA ... it caused uproar and was one of the factors that has significantly\n>changed the preception of the Israeli army's role in the mid-east.\n\nNo,it didn't. The Israeli army is still the most important army in the midlle\neast.It is still the only human army(as much as an ARMY can be human).To any\nAmerican who will claim the opposite,I can only remember the CNN broadcasting\nof the American Solider who beat a Somalian boy. It was very cruel to see.But\nI won't say because of this that the American army is cruel.\n\n>\n>So there is proof for you! It is obvious that is a systematic policy of the\n>Israelis which must be occurring on a massive scale behind the scenes.\n\nSome kind of proof! \"Obvious\"? Where from? If you say it is behind the scenes,\nhow do you know about it?\n\n>\n>Nadeem\n>\n\n\nI just wanted to show how much garbadge one can say,without knowing ANYTHING\nabout what he says,and living a life far away from the place he talks about.\n\n  _____   __Livian__  ______    ___    __Segal__  __  __      __  __      __\n *\\   /*    |       |       \\      \\     \\      |   |   |       |   \\       |\n***\\ /***   |       |   |__  |  /_  \\     \\     |   |   |       |    \\      |\n|---O---|   |       |       /        |     \\    |   |   |       |     \\     |\n\\  /*\\  /    \\___   /   |  \\    |    |   |  \\   |   |    \\___   /   |   /   |\n \\/***\\/           /    |   \\   |    |   |      |   |          /    |       |\nVM/CMS: JhsegalL@Weizmann.weizmann.ac.il UNIX: Jhsegal@wiscon.weizmann.ac.il\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4550, "properties": {"category": "soc.religion.christian", "text": "From: jono@mac-ak-24.rtsg.mot.com (Jon Ogden)\nSubject: Re: Help\nOrganization: Motorola LPA Development\nLines: 87\n\n> \t   I'm a commited Christian that is battling with a problem.  I know\n> that romans talks about how we are saved by our faith not our deeds, yet\n> hebrews and james say that faith without deeds is useless, saying' You fools,\n> do you still think that just believing is enough?'\n\n[Stuff deleted]\n \n> Now I am of the opinion that you a saved through faith alone (not what you do)\n> as taught in Romans, but how can I square up in my mind the teachings of James\n> in conjunction with the lukewarm Christian being 'spat-out'\n> \n> Can anyone help me, this really bothers me.\n\n\nWill, there has been a lot of discussion going on about this over in\ns.r.c.b-s.\nI will make the case here though and try to help you out:\n\n8 For by grace are ye saved through faith; and that not of yourselves: it\nis the gift of God:\n9 Not of works, lest any man should boast.\n(Ephesians 2:8-9).\n\nYes, it is by God's grace and our faith that we are saved.  We are not\nsaved by what we do.  However,\n\n15 If ye love me, keep my commandments.\n(John 14:15).\n\nKeeping Christ's commandments is a \"work\" per se, and a demonstration of\nour love for him.  Also,\n\n6 He spake also this parable; A certain man had a fig tree planted in his\nvineyard; and he came and sought fruit thereon, and found none.\n7 Then said he unto the dresser of his vineyard, Behold, these three years\nI come seeking fruit on this fig tree, and find none: cut it down; why\ncumbereth it the ground?\n8 And he answering said unto him, Lord, let it alone this year also, till I\nshall dig about it, and dung it:\n9 And if it bear fruit, well: and if not, then after that thou shalt cut it\ndown.\n(Luke 13:6-9).\n\nAgain,\n\n16 Ye have not chosen me, but I have chosen you, and ordained you, that ye\nshould go and bring forth fruit, and that your fruit should remain: that\nwhatsoever ye shall ask of the Father in my name, he may give it you.\n(John 15:16).\n\nIt is clear from these verses that we are called to bring forth fruit. \nWhat is that fruit.  Well, Paul speaks of the fruit of the spirit being\nlove, joy, peace, patience, etc.  All of these are things that are manifest\nin the actions that we carry out.\n\nIf a person claims to believe in Jesus Christ, but does not do the things\nChrist commanded, I dare say, that they really don't have any faith. \nAsking which is more important, faith or works, is like asking which blade\non a pair of scissors is most important or like asking which leg of your\npants is more important.\n\nGood works should come out of and be a result of our faith.  To have faith,\ntrue faith in Christ requires you to do what he commands.  The parable\nabove speaks allegorically of a person who does bear no fruit.  Christs\ncommands are actions, and if we don't do those actions and produce fruit,\nthen we shall be uprooted just like the tree. \n\nIt is a dead and useless faith which has no action behind it.  Actions\nprove our faith and show the genuineness of it.  I can sit and talk for\ndays about the fact that I have so much faith in my ability to jump off a\nbuilding and not hit the ground.  In other words, I can sit and tell you\nall day long that I have faith in my ability to fly.  I really don't have\nthat faith though unless I am willing to jump off the roof and take the\ntest.  Words and talk mean nothing.\n\nI could go on and give more scriptures and if people want me to I will, but\nthis should be sufficient.\n\nHope it helped.\n\nJon\n\n----------------\nsig file broken....\n\nplease try later...\n----------------\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4551, "properties": {"category": "talk.politics.mideast", "text": "From: ilyess@ECE.Concordia.CA (Ilyess Bdira)\nSubject: Greek prime minister shows support for Serbian criminals\nKeywords: international, non-usa government, government, fighting, civil rights, social issues\nArticle-I.D.: newsflas.C53562.JHH\nOrganization: ECE - Concordia University\nLines: 67\nNntp-Posting-Host: davinci.ece.concordia.ca\n\nThe above headline is much better than the original one.\nread on..\n\nIn article <yugoslav-greeceU3A6430pe@clarinet.com> clarinews@clarinet.com (DEJAN ANASTASIJEVIC) writes:\n>\tBELGRADE, Yugoslavia (UPI) -- Greek Prime Minister Constantine\n>Mitsotakis visited the capital of the Serbia-Montenegro federation\n>Tuesday in an apparent attempt to press Serbian leaders into accepting\n>the international plan to end the war in Bosnia-Herzegovina.\n\nSo far so good...\n\n>\t``I came here as an old friend of this country...to help in solving\n>the burning problem of Bosnia-Herzegovina,'' Mitsotakis told reporters\n>after talking for two hours with President Slobodan Milosevic of Serbia.\n\nOld friend, whatever....\n\n>\t``I did not come here to discuss any particular plan. I came to hear\n>the Serbian point of view,'' he said, adding that Serbia is ``sincerely\n>trying to bring peace to the region.''\n\nThat is a great attitude for someone who wants to pressure the Serbs to\naccept a peace plan that gives them most of the territory they got by\nforce and terror.\n\n>\tMilosevic said that Serbia and Greece had ``practically identical\n>views'' on the Bosnian war, which started late in March 1992 when the\n\nthis is a good thing to hear. Anybody wondering why Serbia is not\nreally under any boycott? Anybody remembers the Gulf war? Did Saddam\nkill 100,000 people and rape 50,000 women? \n\n>\tIn an effort to pressure Milosevic, who is considered to be the main\n>patron of Serbian territorial conquest in Bosnia, the U.N. Security\n>Council has threatened to impose new sanctions against Serbia and\n>Montenegro and implement a no-fly zone over Bosnian skies.\n\nStill in the threatening stage.. Maybe when there is no more Bosnians,\nthe UN will lift the arms Embargo on them! Military intervention? that\nis reserved for Muslim countries.\n\nNOW HEAR THIS:\n>\tAfter meeting Milosevic, Mitsotakis had separate talks with Radovan\n>Karadzic, the leader of Bosnian Serbs.\n>\t``I encouraged Mr. Karadzic to proceed with his efforts to achieve a\n>just peace in the region,'' he said.\n>\t``We are ready to play a positive role in the Balkans,'' said\n>Mitsotakis.\n\nreal positive I might add, in favor of his old freinds of course!\n\n>\tKaradzic said that he was ``honored'' to meet the Greek premier.\n>\t``Greeks are not one sided, and they do not tend to condemn only one\n\nYou bet they are not!\n\n>side in this war,'' said Karadzic.\n>\t``We will continue to negotiate on all levels,'' he said.\n>\tBefore meeting with Milosevic, Mitsotakis had talks with President\n>Dobrica Cosic of the federal Yugoslav union of Serbia and Montenegro,\n>and Patriarch Pavle, the head priest of the Serbian Orthodox Church.\n\n\nAnybody is still convinced that this is not a religious war?\nA psychopath like Karadzik is considered a peacelover.. Of course he\nsent 100,000 muslims to permanent peace. With the blessings of Patriarch\nPavle.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4552, "properties": {"category": "talk.politics.guns", "text": "From: pngai@adobe.com (Phil Ngai)\nSubject: Re: The 'pill' for Deer = No Hunting\nOrganization: Adobe Systems Incorporated\nLines: 11\n\nIn article <1qk3jm$9sh@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>I know a number of ex-HCI members who have recently become NRA members.\n>I've never heard of a single one who has gone the other way.\n\nI've been a member of the NRA for several years and recently \"joined\"\nHCI.  I wanted to see what they were up to and paid the minimum ($15)\nto get a membership. I also sent the NRA another $120.\n\n-- \n\tWould the founding fathers have approved of encryption so\nstrong that the government could not break it?\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4553, "properties": {"category": "rec.autos", "text": "Subject: After-Market Cruise Controls: Specific Questions\nFrom: MikeW@Canc.byu.edu (M.D. (Mike) Wieda)\nOrganization: BYU\nNntp-Posting-Host: 128.187.203.40\nLines: 82\n\nHowdy,\n\nI'm a little new to this newsgroup, but I would like to tap some of the\nknowledge and expertise available here.\n\nThe Subject:  After-market cruise controls\n\nThe Background:\nI recently broke my ankle in a road-bicycling accident (4 places, five \nscrews, yuk! :-( ).  In two weeks I will be returning to Texas (my\nhome) from my school (BYU) in Provo, Utah.  As you can imagine, trying to\ndrive nearly 1300 miles with a broken right ankle isn't just the epitome of\na good time.  My car does not have a cruise control, so I would have to do\nall the pedalling (ha ha) with my messed-up ankle.\n\nMy question:\nWhat is the general opinion of after-market cruise control units?  I\nrealize that a cheap CC (cruise control) from, say, Pep Boys, isn't going to\nbe as good as a factory or professionally installed unit (if there is such a\nthing).  And I uderstand that I probably can't expect much in the way of\naccuracy, looks and that sort of thing;  But anything's gotta be better than\ntrying to drive with a hosed ankle.\n\nI have a 1984 Jeep Cherokee, 4 speed, standard, 4*4, 2.5L engine with\nkettering(sp?) ignition (y'know, distributor cap, rotor, that set-up--not\nelectronic.  Maybe you could've guessed it being an '84, but I'm just trying\nto give information as completly as I can).\n\nI found a CC unit for 80 bucks.  It seems to use the vehicles vacuum system \ninstead of an electric servor/motor.  Is this good or bad?  If I did buy\nthis CC, which vacuum hose should I tap?\n\nIt has two speed sensors:  One magnetic, and one that gets a signal from the \nnegative side of the distributor, kinda like a tach pick-up, or so I\nunderstand.  I can use either one.  Which is best?  The manual says (I read\nit in the store today) that the magnetic/axle set-up is more accurate, but\nharder to install.  Is there really a big difference?\n\nIt has a sensor for the brake pedal, just like other CCs, but does NOT have a\nsensor for the clutch pedal.  So if I wasn't paying real close attention I\nmight push the clutch in while the cruise is trying to get the speed up.  Which\nwould wind the engine up kinda high until I got my wits about me and turned \nthe thing off.  I'm pretty coordinated, so this doesn't bother me, if it\nwere for my girlfriends car, *then* it would bother me, but I'm ok with it.\n\nThe installation also calls for an attachment to a steady-on brake signal\nand a switched-on brake signal.  I think I can get a switched brake signal\nfrom the correct side of the brake light blade fuse.  Am I right?  But I'm\nnot sure where to get the steady-on brake signal, or, for that matter, what\nexactly it is?  Any ideas as to what the manufaturer wants and where to get\nit?\n\nI think I can figure the other things out.  Like how to hook-up the negative\nside tach-type sensing gizmo and the cabin control unit, and the ground and\nall that miscellaneous business.  But I need a little help with:\n\n\t1.  Is it worth the money and safety risk (if any) for such a\n\t    device?\n\t2.  Is there any particularly good after-market CC?\n\t3.  Are \"professionally\" installed CCs signifacantly better and\n\t    worth the cabbage?\n\t4.  If the unit I saw (sorry, no manufacturer or model number, just\n\t    that it is at Pep Boy and its $80) is sufficient for my simple \n\t    needs, how do I get the thing installed properly (specifically,\n\t    the questions above)?\n\nMy father and I built a \"Veep\" (Volkswagen powered Jeep CJ-2A) when I was in\nhigh school, so I consider myself fairly good with tools, electronics, and\ncars.  So the installation doesn't scare me.  I just want to be certain that\nI get the thing installed correctly as my Cherokee is just a wee bit more\ncomplicated than my Veep. :-)\n\nI appreciate your time in reading my post, and I would appreciate any\nexpertise or opinion anybody has on the subject.  If you would like to share\nsome of your wisdom, please email as I don't get over this group very often\n(but I check my mail all the time).\n\nAgain, thanks for any help anyone may have.\n\nMike Wieda\nMikew@canc.byu.edu\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4554, "properties": {"category": "rec.motorcycles", "text": "From: svoboda@rtsg.mot.com (David Svoboda)\nSubject: Re: Ok, So I was a little hasty...\nNntp-Posting-Host: corolla18\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 16\n\nIn article <speedy.155@engr.latech.edu> speedy@engr.latech.edu (Speedy Mercer) writes:\n|\n|This was changed here in Louisiana when a girl went to court and won her \n|case by claiming to be stoned on pot, NOT intoxicated on liquor!\n\nGeez, what happened?  She got a ticket for driving too slow???\n\n| ----===== DoD #8177 = Technician(Dr. Speed) .NOT. Student =====----\n\nOh, are you saying you're not an edu.breath, then?  Okay.\n\n\nDave Svoboda (svoboda@void.rtsg.mot.com)    | \"I'm getting tired of\n90 Concours 1000 (Mmmmmmmmmm!)              |  beating you up, Dave.\n84 RZ 350 (Ring Ding) (Woops!)              |  You never learn.\"\nAMA 583905  DoD #0330  COG 939  (Chicago)   |  -- Beth \"Bruiser\" Dixon\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4555, "properties": {"category": "talk.politics.misc", "text": "From: demon@desire.wright.edu (Not a Boomer)\nSubject: Clinton caves in: reduces jobs bill\nOrganization: ACME Products\nLines: 11\n\n\tClinton has backed off from the $16 billion jobs bill.\n\n\tWord is he's paring it down to the core: jobless benefits, money for\ncreating full time jobs (ie, no summer jobs money).\n\n\tChalk one up for holding the line on spending.\n\nBrett\n________________________________________________________________________________\n\t\"There's nothing so passionate as a vested interest disguised as an\nintellectual conviction.\"  Sean O'Casey in _The White Plague_ by Frank Herbert.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4556, "properties": {"category": "talk.politics.mideast", "text": "From: nstramer@supergas.dazixco.ingr.com (Naftaly Stramer)\nSubject: Re: Israel's Expansion\nNntp-Posting-Host: supergas\nReply-To: nstramer@dazixco.ingr.com\nOrganization: Intergraph Electronics\nLines: 34\n\n\nIn article <18APR93.15729846.0076@VM1.MCGILL.CA>, B8HA000 <B8HA@MUSICB.MCGILL.CA> writes:\n>Just a couple of questions for the pro-Israeli lobby out there:\n>\n>1) Is Israel's occupation of Southern Lebanon temporary?  For Mr.\n>Stein:  I am working on a proof for you that Israel is diverting\n>water to the Jordan River (away from Lebanese territory).\n\nYes. As long as the goverment over there can force some authority and prevent\nterrorists attack against Israel. \n\n>\n>2) Is Israel's occupation of the West Bank, Gaza, and Golan\n>temporary?  If so (for those of you who support it), why were so\n>many settlers moved into the territories?  If it is not temporary,\n>let's hear it.\n\nSinai had several big cities that were avcuated when isreal gave it back to\nEgypth, but for a peace agreement. So it is my opinin that the settlers will not\nbe an obstacle for withdrawal as long it is combined with a real peace agreement\nwith the Arabs and the Palastinians.\n\n>\n>Steve\n>\n\n\nNaftaly\n\n---\nNaftaly Stramer \t\t\t | Intergraph Electronics\nInternet: nstramer@dazixco.ingr.com      | 6101 Lookout Road, Suite A    \nVoice: (303)581-2370  FAX: (303)581-9972 | Boulder, CO 80301\n\"Quality is everybody's job, and it's everybody's job to watch all that they can.\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4557, "properties": {"category": "misc.forsale", "text": "From: nhuang@cs.ulowell.edu (Bill Huang)\nSubject: Sega Genesis For Sale/Trade => Game Gear\nOrganization: ZEN Self Constraint Institute of Technology\nDistribution: usa\nLines: 16\n\n\nSega Control Panel\nSuper Manaco GP II Catrridge\nOne Regular Controller\nOne Turbo Controller\nA/C Adapter\nA/V Cable \nStereo Cable\nCarrying Bag\n\nI would like $90 plus shipping OR trade with Game Gear and game.\nPlease e-mail if you feel interested, thank you!\n\n-- Bill\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4558, "properties": {"category": "rec.sport.hockey", "text": "From: Gibson.Bill@applelink.apple.com (Bill Gibson)\nSubject: SHARKS:  Kingston Fired!!!\nOrganization: Apple Computer, Inc.\nLines: 8\n\nI just overheard that San Jose Coach George Kingston was officially\nterminated today...  Maybe good news, maybe bad.  I kinda liked him, but he\nseemed to lack a certain fire.\n\n\nBill Gibson                  : Gibson.Bill@applelink.apple.com\nChief Technical Sponge       : AppleLink:  GIBSON.BILL\nApple Computer, Inc.         : Just say: SHARKS!!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4559, "properties": {"category": "alt.atheism", "text": "From: cobb@alexia.lis.uiuc.edu (Mike Cobb)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: University of Illinois at Urbana\nLines: 23\n\nIn <sfnNTrC00WBO43LRUK@andrew.cmu.edu> \"David R. Sacco\" <dsav+@andrew.cmu.edu> \nwrites:\n\n>After tons of mail, could we move this discussion to alt.religion?\n\nYes.\n\nMAC\n>=============================================================\n>--There are many here among us who feel that life is but a joke. (Bob Dylan)\n>--\"If you were happy every day of your life you wouldn't be a human\n>being, you'd be a game show host.\" (taken from the movie \"Heathers.\")\n>--Lecture (LEK chur) - process by which the notes of the professor\n>become the notes of the student without passing through the minds of\n>either.\n--\n****************************************************************\n                                                    Michael A. Cobb\n \"...and I won't raise taxes on the middle     University of Illinois\n    class to pay for my programs.\"                 Champaign-Urbana\n          -Bill Clinton 3rd Debate             cobb@alexia.lis.uiuc.edu\n                                              \nWith new taxes and spending cuts we'll still have 310 billion dollar deficits.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4560, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Re: Solar Sail Data\nKeywords: Solar Sail\nOrganization: University of Illinois at Urbana\nLines: 25\n\najjb@adam4.bnsc.rl.ac.uk (Andrew Broderick) writes:\n\n>In article <1993Apr15.051746.29848@news.duc.auburn.edu> snydefj@eng.auburn.edu writes:\n>>\n>>I am looking for any information concerning projects involving Solar\n>> Sails\n\n>I was at an interesting seminar at work (UK's R.A.L. Space Science\n>Dept.) on this subject, specifically on a small-scale Solar Sail\n>proposed as a student space project. The guy giving the talk was keen to\n>generate interest in the project. I'll typein the handout he gave out at\n>the meeting. Here goes : \n\n[Stuff deleted] \n\n>However it is more difficult to design a practical solar sail than most\n>people realize. The pressure of sunlight is only about one kilogram per\n>square kilometer.     ^^^^                                   ^^^^    \n\nI'm glad to see that someone is working on this.  However, it would be nice if\nhe got his units right.\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n\t\t    \"Find a way or make one.\"\n\t             -attributed to Hannibal\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4561, "properties": {"category": "rec.sport.hockey", "text": "From: allan@cs.UAlberta.CA (Allan Sullivan)\nSubject: Don Cherry - Coach's Corner summary - April 18, 1993\nNntp-Posting-Host: st-lina.cs.ualberta.ca\nOrganization: University of Alberta, Edmonton, Canada\nLines: 68\n\n\n\nHere is a summary of Don Cherry's coach's corner from April 18, 1993.\nIt took place in the first intermission of game 1 of the Montreal-Quebec\nseries. \n\nPre-game comments\n-----------------\nDon's pregame comments were mostly aimed at the goalies... The goalie\nwho gets back his all-star form (Roy or Hextall) can win the series\nfor his team.\n\nEposode Summary\n---------------\nThis episode took place rinkside. Don was holding a hot dog that\nhe bought from the concession stand.\n\nRon Maclean started out by showing a cartoon which appeared in the\nToronto Sun. It featured a picture of Don, who just saw his shadow\nand proclaimed \"Will you look at dat, eh? Means another 6 weeks\nof me. Beauty.\"\n\nNext, Don talked about the hot dog he was holding. According to\nhim, the hot dogs at the Quebec stadium are the best food in all\nthe arenas in the NHL.\n\nFrom there, Don commented on the Quebec-Montreal game. The game\nhad great flow, because Referee Paul Stewart calls the best game\nin the NHL. In contrast, the Calgary-LA game was terrible... All\nstop-and-go, over 50 minutes of penalties called against Calgary\nby Dan Marouelli. Its getting so that the ref who calls the most\npenalties gets to ref in the finals.\n\nNext, Ron showed an old picture of Don, when he was playing for\nthe Rochester Americans of the AHL. Don recalled some of the\nwins that he had in the Quebec arena... during the Memorial cup\nand the AHL championships.\n\nFinally, Don and Ron discussed Keenan becoming coach of the\nRangers. The rangers were a talented team who underachieved.\nDon feels sorry for temporary coach Ron Smith, who had\nseveral key injuries (to Leetch and Patrick) and goalies who\nwent cold.\n\nDon had some criticism for the Rangers team... The party's over,\nAdolf (Keenan) is there. The Rangers organization will no longer\nbe a 'country club'.... \"NY should be achamed of themselves... If\nthey go in the tank with Adolf there, they'll be hanging from the\nyardarm by their thumbs.\"\n\n\nRating\n------\nNothing too special in this episode.\n\nI'll give it a 5.5 out of 10.\n\n------------------------------------------------------------------------------\n   \\  \\                   |Allan Sullivan (allan@cs.ualberta.ca)\n    \\  \\                  |Department of Computing Science,\n     \\  \\_______          |University of Alberta, Edmonton, Alberta, Canada.\n      \\    ###  \\     _   |---------------------------------------------------\n       \\___###___\\   (_)  |My opinions are mine and mine alone.\n------------------------------------------------------------------------------\n\"It is amazing how much can be accomplished if no one cares who gets the\n credit...\"          - U. of A. Golden Bears Hockey Motto (C. Drake)\n------------------------------------------------------------------------------\n        \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4562, "properties": {"category": "talk.politics.guns", "text": "From: keith@orion.ic.cmc.ca (Keith de Solla)\nSubject: CDN gun laws\nOrganization: Canadian Microelectronics Corporation\nLines: 37\n\n[MODERATOR:  Nice summary, Keith, thanks.]\n\nI talked to the federal Dept. of Justice (DOJ, Ottawa) to try and\nclarify a bunch of things regarding changes to Canadian gun laws.\nI am posting here for informational purposes; questions to email,\nfollowup to t.p.g.\n\n1. It is still technically feasible (but almost impossible) to get\n   a concealed carry permit in Canada.  This is contrary to what I\n   was told by a police officer.\n2. It is still legal to use lethal force (such as a firearm) to\n   protect life, also contrary to what the officer told me.  Guns\n   must be stored locked up and unloaded, however.\n3. Regarding hi-capacity magazines, it is still not clear who will\n   be exempt or how this will be managed.  This is up to each province.\n   The general idea is that exempt persons will receive a letter/form\n   authorizing them to possess the high capacity magazines.  \n   Apparently, the authorization is to specify how many of these\n   'prohibited weapons' you will be allowed to possess.  Dealers will\n   be allowed to order high capacity mags for those allowed to possess\n   them, but will not be allowed to stock them.\n4. High capacity magazines converted to comply with the new limits will\n   not be considered prohibited weapons.  Amendments to the regulations\n   specify some possible methods to alter the magazines.  Some \n   manufacturers (Beretta) will be marketing reduced capacity magazines.\n   (God knows how much they'll charge for these)\n\nThis covers most of what we discussed.  I have typed this from memory,\ndo not take it as gospel.  I am not a lawyer and I refuse to play one on TV.\n\n\n-- \n-------------------------------------------------------------------\n| Keith P. de Solla, P.Eng |  IPSC Ontario, OHA, NFA, SFC, OFAH   |\n| keith@orion.ic.cmc.ca    |  Frontenac Rifle and Pistol Club     |\n-------------------------------------------------------------------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4563, "properties": {"category": "talk.politics.mideast", "text": "From: melons@vnet.IBM.COM (Mike Magil)\nSubject: Re: Israel does not kill reporters.\nLines: 26\n\n>\n>   Anas Omran has claimed that, \"the Israelis used to arrest, and\n>sometime to kill some of these neutral reporters.\"  The assertion\n>by Anas Omran is, of course, a total fabrication.  If there is an\n>once of truth iin it, I'm sure Anas Omran can document such a sad\n>and despicable event.  Otherwise we may assume that it is another\n>piece of anti-Israel bullshit posted by someone whose family does\n>not know how to teach their children to tell the truth.  If Omran\n>would care to retract this 'error' I would be glad to retract the\n>accusation that he is a liar.  If he can document such a claim, I\n>would again be glad to apologize for calling him a liar.  Failing\n>to do either of these would certainly show what a liar he is.\n\nWhy retract your accusation that he's a liar?  If Omran retracts his \"verbal\ndiarrohea\" doesn't that only prove the liar he *really* is?  A retraction\nwould be pointless!  Giving this guy the opportunity to \"save face\" after\nuttering such bullshit would just encourage him to do it again!  I must say\nthat your style is very impressive, Mark.  Keep it up!\n\n- Mike\n\n---\n       MI     KE   MIK    EMIK   EMI  K        \"Opinions expressed above\n       M I   K E  M   I  K        E   M         are my own and not that\n       M  I K  E  MIKEM  I  KEM   I   K         of 'Big Blue'\"\n       M   I   K  E   M   IKE M  IKE  MIKE\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4564, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: pierson@phakt.usc.edu (Harry Pierson)\nSubject: Embedded TrueType Fonts\nOrganization: University of Southern California, Los Angeles, CA\nLines: 16\nNNTP-Posting-Host: phakt.usc.edu\n\nOK...I've heard rumors about this...I might have even seen it in a few places.\nAnd I'd like some info...Is it possible to embed fonts in a document (Like \nWrite, Word, or Ami Pro?) so the file can be printed on another machine that\ndoesn't have the font?  If possible, how is it done?\n\nI'm sorry if this is a faq...I couldn't find a faq list...I would also \napreciate knowing where that is...if a windows faq exsists.\n\nThanks in advance\n\n\n-- \n===============================================================================\nHarry Pierson\t    | \"Come and be with me, Live my twisted dream\nThe Audio Mercenary |  Pro devoted pledge, Time for primal concrete sledge\"\npierson@usc.edu\t    |\t\t\t\t\t\t       -Pantera\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4565, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jon@trust.anu.edu.au (Jon GOUGH)\nSubject: Windows and multiple monitors >10m apart\nOrganization: CSLab, Autralian National Uni.\nLines: 16\nDistribution: world\nNNTP-Posting-Host: 150.203.15.182\n\nHi,\n  I am working on gathering data on the way that users use\ncomputers. This involves getting subjects to type and use a \nmouse. I want to be able to watch what they are doing without \nbeing in the same room. It would be ideal if I could watch\nthe session on another monitor without the subjects knowledge.\nI believe that spliting the monitor cable will only work for\nshort distances, ie <5m. I will need to be approx 10m away, as\nthe cable travels.\n  The PC's are connected to a TCP\\IP network and run Windows 3.1.\nIs there any software that will allow me to watch what is \nhappening on another PC?\nThanks\nRegards\n  Jon Gough\nTRUST Project\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4566, "properties": {"category": "sci.electronics", "text": "From: mwtilden@math.uwaterloo.ca (Mark W. Tilden)\nSubject: BEAM Robot Olympic Games next Week in Toronto.\nOrganization: University of Waterloo\nLines: 17\n\n\nOne week to the Robot Olympic games.  Fire up the mechanoids for combat\nand come on down.\n\nCompetitors please note that there has been a slight change; the registration\ndesk will now be in the forward building of the Science Centre rather than\nin the main competing hall.  When you arrive, please go to this desk.  Those\nthat have pre-registered by real-mail will find badges waiting.\n\nIs all.  See you here.\n\n\n-- \nMark Tilden: _-_-_-__--__--_      /(glitch!)  M.F.C.F Hardware Design Lab.\n-_-___       |              \\  /\\/            U of Waterloo. Ont. Can, N2L-3G1\n     |__-_-_-|               \\/               (519)885-1211 ext. 2454 \n\"MY OPINIONS, YOU HEAR!? MINE! MINE! MINE! MINE! MINE! AH HAHAHAHAHAHAHAHAHA!!\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4567, "properties": {"category": "talk.religion.misc", "text": "From: porta@wam.umd.edu (David Palmer)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nNntp-Posting-Host: rac3.wam.umd.edu\nOrganization: University of Maryland, College Park\nLines: 23\n\nIn article <1qknu0INNbhv@shelley.u.washington.edu> sieferme@stein.u.washington.edu (Eric Sieferman) writes:\n>In article <f1VMPxk@quack.kfu.com> pharvey@quack.kfu.com (Paul Harvey) writes:\n>>In article <bskendigC5H4o3.D5p@netcom.com> \n>>\n>>Human blood sacrifice! Martyrdom of an innocent virgin! \"Nailed\" to a\n>>wooden pole! What is this obsession with male menstruation?\n>\n>Christian:  washed in the blood of the lamb.\n>Mithraist:  washed in the blood of the bull.\n>\n>If anyone in .netland is in the process of devising a new religion,\n>do not use the lamb or the bull, because they have already been\n>reserved.  Please choose another animal, preferably one not\n>on the Endangered Species List.  \n>\n>\n\nHow about Cockroaches?\n-- \n***************************** porta@wam.umd.edu ****************************\n\tWhat for you say you monkey when you have little fluffy tail\nlike rabbit, rabbit! \n                  Tazmanian Devil \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4568, "properties": {"category": "misc.forsale", "text": "From: clf3678@ultb.isc.rit.edu (C.L. Freemesser)\nSubject: *** TurboGrafx-16 system for sale ***\nDistribution: na\nOrganization: Rochester Institute of Technology\nLines: 24\nNntp-Posting-Host: ultb-gw.isc.rit.edu\n\nFor sale:\n\nNEC TurboGrafx-16 video game system.  Package includes:\n\n* Base unit:  with power supply, TV hookups, controller, and the games\n             \"Keith Courage in Alpha Zones\" and \"Ordyne\".\n* One extra controller\n* TurboTap: let's you hook up as many as 5 controllers to the TG16.\n* All original packaging, manuals, etc. for the above items.\n* The games TV Sports Football, Alien Crush, Splatterhouse, and\n  Takin' it to the Hoop.\n\nCurrent market price for the above system is approximately $130.\nAsking price is $75.  System was purchased in January of this year, and\nhas seen little use since then.  If interested, contact me via one of\nthe methods in my signature file!\n\n\n //===================================================================\\\\\n || Chris Freemesser, RIT CpET     ((   Visit Rochester, New York:    ||\n ||\"Where money is the #1 prioRITy\" ))  Home of the world's largest   ||\n || Usenet: clf3678@ultb.rit.edu   ((   collection of potholes!       ||\n || GEnie: C.FREEMESSER             ))                                ||\n \\\\===================================================================//\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4569, "properties": {"category": "sci.crypt", "text": "From: ptrei@bistromath.mitre.org (Peter Trei)\nSubject: Re: Fifth Amendment and Passwords\nNntp-Posting-Host: bistromath.mitre.org\nOrganization: The MITRE Corporation\nLines: 33\n\nIn article <1993Apr17.122651.1874@sugra.uucp> ken@sugra.uucp (Kenneth Ng) writes:\n>In article <1993Apr16.165423.27204@linus.mitre.org: ptrei@bistromath.mitre.org (Peter Trei) writes:\n>:Judge: \"I grant you immunity from whatever may be learned from the key\n>:\titself\"\n>:You:    \"The keyphrase is: \"I confess to deliberately evading copyright; \n>:\tthe file encoded with this keyphrase contains illegal scans of \n>:        copyrighted Peanuts strips.\"\"\n>:Judge and CP: \"Oh.\"\n>:     How will they get you now? I'm not saying that they won't, or\n>:can't (or even that they shouldn't :-), but what legal mechanism will\n>:they use? Should we be crossposting this to misc.legal?\n>\n>Hm, could another court try you via a bypass of the double jeopardy amendment\n>like they are doing in the LAPD trial?  Ie your judge is a state judge, and\n>then a federal judge retries you under the justification that its not the\n>same trail.\n\n    No. The LAPD officers were tried first by the State of California\non charges of police brutality, and secondly by the Federal Government\non depriving RK of his civil rights - a different crime.\n\n    The scenario I outline is more similar to the Oliver North trial.\nOllie confessed to treason (aiding an enemy of the US) during Senate\nhearings, under immunity. The team which was later to prosecute him on\ncriminal charges had to sequester itself from all reports of ON's\nimmunized testimony. ON's lawyer brought up the probability that at\nleast someone on the team had heard about the Senate testimony, and it\nwas a strong factor against the prosecution, which is one of the\nreasons this ON is still walking around free today.\n\n\t\t\t\t\t\t\t\tPeter Trei\n\t\t\t\t\t\t\t\tptrei@mitre.org\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4570, "properties": {"category": "sci.med", "text": "From: rousseaua@immunex.com\nSubject: Re: Barbecued foods and health risk\nDistribution: world\nOrganization: Immunex Corporation, Seattle, WA\nLines: 19\n\nWhile in grad school, I remember a biochemistry friend of mine working with\n\"heat shock proteins\". Apparently, burning protein will induce changes in he\nDNA. Whether these changes survive the denaturing that occurs during digestion\nI don't know, but I never eat burnt food because of this. \n\nAlso, many woods contain toxins. As they are burnt, it would seem logical that\nsome may volatilise, and get into the BBQed food. Again, I don't know if these\ntoxins (antifungal and anti-woodeater compounds) would survive the rather harsh\nconditions of the stomach and intestine, and then would they be able to cross\nthe intestinal mucosa?\n\nMaybe someone with more biochemical background than myself (which is almost\n*anyone*... :)) can shed some light on heat shock proteins and the toxins that\nmay be in the wood used to make charcoal and BBQ.\n\nAnne-Marie Rousseau\ne-mail: rousseaua@immunex.com\nWhat I say has nothing to do with Immunex.\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4571, "properties": {"category": "alt.atheism", "text": "Subject: Vonnegut/atheism\nFrom: dmn@kepler.unh.edu (...until kings become philosophers or philosophers become kings)\nOrganization: UTexas Mail-to-News Gateway\nNNTP-Posting-Host: cs.utexas.edu\nLines: 21\n\n\n\n   Yesterday, I got the chance to hear Kurt Vonnegut speak at the\nUniversity of New Hampshire. Vonnegut succeeded Isaac Asimov as the \n(honorary?) head of the American Humanist Association. (Vonnegut is\nan atheist, and so was Asimov) Before Asimov's funeral, Vonnegut stood up\nand said about Asimov, \"He's in heaven now,\" which ignited uproarious \nlaughter in the room. (from the people he was speaking to around the time\nof the funeral)\n\n\t \"It's the funniest thing I could have possibly said\nto a room full of humanists,\" Vonnegut said at yesterday's lecture. \n\n         If Vonnegut comes to speak at your university, I highly recommend\ngoing to see him even if you've never read any of his novels. In my opinion,\nhe's the greatest living humorist. (greatest living humanist humorist as well)\n\n\n   Peace,\n\n     Dana\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.220+0000", "event": "documents", "entityId": 4572, "properties": {"category": "sci.med", "text": "Subject: Teenage acne\nFrom: pchurch@swell.actrix.gen.nz (Pat Churchill)\nOrganization: Actrix Networks\nLines: 26\n\n\nMy 14-y-o son has the usual teenage spotty chin and greasy nose.  I\nbought him Clearasil face wash and ointment.  I think that is probably\nenough, along with the usual good diet.  However, he is on at me to\nget some product called Dalacin T, which used to be a\ndoctor's-prescription only treatment but is not available over the\nchemist's counter.  I have asked a couple of pharmacists who say\neither his acne is not severe enough for Dalacin T, or that Clearasil\nis OK.  I had the odd spots as a teenager, nothing serious.  His\nfather was the same, so I don't figure his acne is going to escalate\ninto something disfiguring.  But I know kids are senstitive about\ntheir appearance.  I am wary because a neighbour's son had this wierd\nmalady that was eventually put down to an overdose of vitamin A from\nacne treatment.  I want to help - but with appropriate treatment.\n\nMy son also has some scaliness around the hairline on his scalp.  Sort\nof teenage cradle cap.  Any pointers/advice on this?  We have tried a\ncouple of anti dandruff shampoos and some of these are inclined to\nmake the condition worse, not better.\n\nShall I bury the kid till he's 21 :)\n\n-- \n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n            The floggings will continue until morale improves              \n    pchurch@swell.actrix.gen.nz  Pat Churchill, Wellington New Zealand \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4573, "properties": {"category": "comp.windows.x", "text": "From: rvloon@cv.ruu.NL (Ronald van Loon)\nSubject: Announcing the Motif++ mailing list\nOrganization: University of Utrecht, 3D Computer Vision Research Group\nLines: 132\nNNTP-Posting-Host: enterpoop.mit.edu\nKeywords: mailinglist, motif++\nTo: xannounce@expo.lcs.mit.edu\n\nI am glad and proud to announce the new mailing-list for the PD Motif C++\nbindings. I got over 40 replies in about one week of people interested in\nsuch a list, and the software has now been properly installed, so the list\nis now up and running. For those interested in joining, please send e-mail\nto that extend to 'motif++-request@cv.ruu.nl' or 'rvloon@cv.ruu.nl'.\n\nThe blurb everyone who joins gets follows, as well as the original \nannouncement for where Motif++ can be obtained.\n\nEnjoy!\n\n8< - 8< -\n\n\nWelcome to the Motif++ Mailing List!\n\nThe Motif++ mailing list is a mailing list dedicated to Motif++, the PD C++\nwrapper library for Motif, where people can ask questions about Motif++, \nswap stories, and give new ideas about new directions and improvements for the \nbindings. \n\nAll requests of an administrative nature, like subscription, removal, etc.\nshould be directed to motif++-request@cv.ruu.nl\n\nAll e-mail sent to motif++@cv.ruu.nl will be sent to the entire list, so\nplease make sure when using 'vacation' type programs that will reply to\nmessages automatically, that the address for the mailing-list is excluded \nfrom auto-replies.\n\nEnjoy!\n\nRonald van Loon     | In theory, there is no difference \n(rvloon@cv.ruu.nl)  | between theory and practice.\n3DCV Group, Utrecht |   \nThe Netherlands     | In practice however, there is.\n\n8< - 8< -\n\nHello Motif World,\n\nover the past half year there have been a lot of relatively minor changes to\nthe Motif++ bindings. Imake support has been improved, a few defaults have\nbeen changed, and a lot of other small things have been added.\n\nThis is basically a release which drops the 'gamma' status. Next release will\nincorporate some improvements by Stefan Schwarz, and possibly will support\nX11R5 and Motif 1.2.x.\n\nNote to all of those who keep copies of the archive: please retrieve this\ndistribution (during off-peak hours), and delete all previous copies.\n\nHere is the original ANNOUNCEMENT:\n\nHISTORY\n\nThe University of Lowell, supported by a grant of the Open Software Foundation,\nhas developed a wrapper-library, that encapsulates Motif widgets in C++\nclasses. All resources of these Widgets can now be set through\nmember-functions, while objects can be used in callback-functions. The library\nwas made available for free or nominal cost for anonymous ftp at 129.63.1.1.\nHowever, the library contained a large number of bugs and oversights, and only\nworked under X11R3. Due to lack of subsequent fundings, the bindings are no\nlonger actively supported by the University of Lowell.\n\nI, Ronald van Loon, at a certain point last year, have taken the Lowell \nbindings, fixing the bugs I came across, adding missing memberfunctions, and\nenhancing functionality and made the bug-fixed library available for the\ngeneral public for anonymous ftp (made possible by Rick Murphy at DEC).\n\nNEW RELEASE\n\nI am now pleased to announce a new and updated release of the Motif++\nbindings. \n\nThis release offers:\n\n- Full Motif1.1 and X11R4 support\n- Support for Xbae widgetset \n- Two additional widgets, written by myself, that can be used to indicate\n  progress in an application.\n- Imake support. NB: this release relies heavily on the existence of imake\n\t\t     and its config files on your site. I have tried to\n\t\t     provide the bindings with a standard Makefile, tweakable\n\t\t     for those unfortunates without imake. I have not severely\n\t\t     tested the standard Makefile though. Contact me if you\n\t\t     have problems. The reason for calling this a gamma\n\t\t     release lies in the fact that I do not have a multitude\n\t\t     of platforms to test the Imake-files on.\n- Lots of testfiles (even somewhat useful programs)\n- An article I wrote on the usage of Motif, X and C++, previously posted\n  on Usenet.\n\nWHERE TO GET THE NEW MOTIF BINDINGS\n\nFtp:\n\nAnonymous ftp at decuac.dec.com (192.5.214.1), directory /pub/X11.\n\nNote:\n\nPlease be patient as the network link is quite slow. Please do not FTP large\nfiles during working hours.\n\nAlso note that there is also a motif++.31.jan.92.tar.Z file at this site; this\nis an old version of the bindings.\n\nE-mail:\n\nThose who don't have ftp can send me e-mail, and I will send the bindings by\ne-mail.\n\nREQUEST\n\nThose who use the bindings and find bugs, or see room for improvement, please\ncontact me, and I will try to incorporate them in a future release (in case of\nbugs, a bug-fix of course ;-). \n\nMORE INFORMATION \n\nContact me at \"rvloon@cv.ruu.nl\".\nIf you are desperate, then you can call me at\n+31 30 506711 (that is Utrecht, the Netherlands; those within the Netherlands\ncall 030-506711).\n\nEnjoy!\n\n-- \nRonald van Loon     | In theory, there is no difference \n(rvloon@cv.ruu.nl)  | between theory and practice.\n3DCV Group, Utrecht |   \nThe Netherlands     | In practice however, there is.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4574, "properties": {"category": "talk.politics.mideast", "text": "From: cosmo@pro-angmar.alfalfa.com (Frank Benson)\nSubject: Serdar\nOrganization: UTexas Mail-to-News Gateway\nLines: 5\nNNTP-Posting-Host: cs.utexas.edu\n\nGo back to nursery school jerk.\n---\nProLine:  cosmo@pro-angmar\nInternet: cosmo@pro-angmar.alfalfa.com\nUUCP:     uunet!bu.edu!alphalpha!pro-angmar!cosmo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4575, "properties": {"category": "comp.windows.x", "text": "From: queloz@bernina.ethz.ch (Ronald Queloz)\nSubject: whole win on screen?\nOrganization: Swiss Federal Institute of Technology (ETH), Zurich, CH\nLines: 18\n\nWindow placement on screen\n--------------------------\n\nI would like to configure my system (a HP UNIX) to avoid that any corner\nof a given window is displayed outside of the visible screen. The whole\nwindow should be visible and it should be impossible to move any window\noutside the visible aerea.\n\n1. Can this be done by configuring the window manager's resources\n\n2. Can this be done on applikation level \n\n3. A hardcoded solution is possible, but is it possible to have a\n  upper limit of a given window size\n\n\nThank you for information and help\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4576, "properties": {"category": "comp.graphics", "text": "From: jejones@microware.com (James Jones)\nSubject: Re: Rumours about 3DO ???\nNntp-Posting-Host: snake\nOrganization: Microware Systems Corp., Des Moines, Iowa\nLines: 19\n\nIn article <1993Apr15.164940.11632@mercury.unt.edu> Sean McMains <mcmains@unt.edu> writes:\n>In article <1993Apr15.144843.19549@rchland.ibm.com> Ricardo Hernandez\n>Muchado, ricardo@rchland.vnet.ibm.com writes:\n>>   And CD-I's CPU doesn't help much either.  I understand it is\n>>a 68070 (supposedly a variation of a 68000/68010) running at something\n>>like 7Mhz.  With this speed, you *truly* need sprites.\n>\n>Wow! A 68070! I'd be very interested to get my hands on one of these,\n>especially considering the fact that Motorola has not yet released the\n>68060, which is supposedly the next in the 680x0 lineup. 8-D\n\nDon't get too excited; Signetics, not Motorola, gave the 68070 its number.\nThe 68070, if I understand rightly, uses the 68000 instruction set, and has\nan on-chip serial port and DMA.  (It will run at up to 15 MHz--I'm typing\nat a computer using a 68070 running at that rate, so I know that it can\ndo so--so I seriously doubt the clock rate that ricardo@rchland.vnet.ibm.com\nclaims.)\n\n\tJames Jones\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4577, "properties": {"category": "talk.politics.misc", "text": "From: mdouglas@netcom.com (Hokh'Ton)\nSubject: Re: Kyle K. on Rodney King\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 39\n\nIn <1qqfam$ogh@usenet.INS.CWRU.Edu> aa680@cleveland.Freenet.Edu (Vern Morrison) writes:\n\n\n>In a previous article, kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) says:\n\n>>thf2@kimbark.uchicago.edu (Ted Frank) writes:\n>>\n>>>In article <C5Lp0y.FDK@news.cso.uiuc.edu> kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n>>>>       How about the fact that you have a bunch of cops putting their lives on\n>>>>the line day in and day out who are afraid as hell of a large black guy that\n>>>                                                               ^^^^^\n>>>>took a large amount of punishment and refused submit?  \n>>\n>>>I'm curious why you think that particular adjective is important.\n>>\n>>     I'm curious why you took a beign statement and cross-posted it to several\n>>different news groups, including something along the lines of alt.discrimination  Look Rodney King is black and large.  I have several large black male friends,and they are referred to as being large black men ( to their faces, and by\n>>themselves ).  You know, Ted, I have a large number of adjectives for you,\n>>but I will spare you most of them because I try not to get into personal\n>>flame wars.  Let me just say that I think your action of cross posting this\n>>was total BS, and you're trying to start some crap.  Hopefully, others will\n>>see through your trite little game and not play along.  \n\n>      You still haven't addressed Ted's statement.  We're waiting.\n\n\tYeah, I'm also curious as to why you felt compelled to remind us of the\nguy's race. BTW, I don't mean to imply that you're clueless or anything, but\nthe statement was *hardly* \"benign\". \n-- \n\n\n\n\n\tHokh'Ton\t:\tThe Crystal Wind is the Storm,\n  mdouglas@netcom.com\t:\t and the Storm is Data,\nMichael Douglas-Llyr\t:\t  and the Data is Life.\n\t\t\t:\t\t---Player's Litany (The Long Run)\n\t\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4578, "properties": {"category": "sci.electronics", "text": "From: webb@itu1 (90-29265  Webber  AH)\nSubject: Re: Adcom cheap products?\nOrganization: Rhodes University, Grahamstown, South Africa\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 52\n\nAaron Lung (alung@megatest.com) wrote:\n: >I was also sceptical about the amps being built in the far-east\n: >  or where-ever.  But if you look in the amp and see what components\n: >  they use and how it was designed, you can easily see why the\n: >  amplifiers sound so brilliant.\n\n: Good point...also, I wouldn't be surprised that the components\n: they use off-shore are of inferior quality.  As long as it was\n: properly designed and robust, premium components are used, it\n: shouldn't matter where it is assembled.\n\nDefinately, I agree wholeheartedly.  If they can build the amp where\n  the labour is not so expensive, they can afford to put decent\n  components in and go to more effort to improve the design of the\n  amplifier - as Adcom has done.\n\n: >I cannot see why people say the amplifier won't last - not with\n: >  those quality components inside.  Sure the amp runs very fairly\n: >  hot - but that's how you get an amp to sound incredibly good.\n\n: An amp that runs hot has no bearing on how it's gonna sound.\n: The amp you have probably is running Class-A the whole day.\n\n: Actually, I'd be wary of excessively hot amps, 'cauz even though\n: the components inside may be rated to run that way, excessive \n: heat will dramatically shorten the life of *any* electronic component\n: regardless of quality.  In fact, an amp that does run hot to the touch is\n: because either the engineer or manufacturer of that amp wanted\n: to skimp on heatsinking or cooling to save costs!  Hmmmmm....\n\nSure, I didn't mean to imply that because of the heat generated, the\n  amp sounds good.  My Adcom GFP 535II runs fairly warm - not hot to\n  the touch - but enough to satisfy me that the amp is running nicely.\nI don't like it when an amp runs dead-cold.  It makes one think that\n  the amp is doing nothing :)\nThe heatsinks that Adcom uses in their amps are certainly far for\n  skimpy - they're massive things with heating vents both below\n  and above.  More than enough to carry away excessive heat.\n\nMy opinions once again.\n\n--\n***********************************************************************\n**    Alan Webber                                                    **\n**                      webb@itu1.sun.ac.za                          **\n**                      webb@itu2.sun.ac.za                          **\n**                                                                   **\n** The path you tread is narrow and the drop is sheer and very high  **\n** The ravens all are watching from a vantage point near by          **\n** Apprehension creeping like a choo-train up your spine             **\n** Will the tightrope reach the end; will the final couplet rhyme    **\n***********************************************************************\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4579, "properties": {"category": "misc.forsale", "text": "From: root@zmax.com (The Big Cheese)\nSubject: Laptop Cards\nOrganization: Z/Max Computer Solutions, Inc.\nLines: 17\n\nLaptop Connectivity Cards\n-------------------------\n\nPart #T2RN\nDesc: 3270 Remote Emulation Card for Toshiba Laptop Computer\n\nPart #T324M\nDesc: Easytalk 2400 bd dedicated internal modem with MNP level 5 for\n      Toshiba T1200 & T1600\n\nPart #T2LL\nDesc: Easytalk internal ethernet card for toshiba laptop expansion slot.\n\nPart #T232\nDesc: Easytalk 3270 Terminal emulation for toshiba laptop expansion slot\n\nIf interested in all or individual parts send email to rotella@zmax.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4580, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: Jim_Johnson@abcd.houghton.mi.us (Jim Johnson)\nSubject: Run box w/o cover ??\nOrganization: Amiga BitSwap Central Dispatch\nLines: 25\n\n\nB(>i am interested in getting the pulse of this group regarding\nB(>extended operation of my G2K 486-33V with the cover removed\nB(>from the enclosure.  there are a # of reasons i am considering\nB(>this, including quick access to jumpers during complex i/o card\nB(>setups.\n\nB(>my concern is that without a complete enclosure to direct the\nB(>cooling flow of air from the fan, \"hot spots\" may develop on my\nB(>motherboard or elsewhere.\n\nIf you have an adequate supply of air moving over the system (most\noffices or homes have positive ventilation) you can generally run a\nsystem without the cover for extended periods without a problem. (I'm\ntalking about completely removing the cover - not just leaving the slots\nuncovered.) HOWEVER, the biggest reason you have a cover to begin with\nis RF sheilding. Operating a system without the full cover may create\nproblems with other equipment such as your neighbor's TV or Ham radio\nstation - very much a no-no in the eyes of the law.\n\n\n * SLMR 2.1a * Remember - They're only tools, not a way of life!\n\n\n-- Via DlgQWK v0.71a\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4581, "properties": {"category": "comp.graphics", "text": "From: d91-fad@tekn.hj.se (DANIEL FALK)\nSubject: RE: VESA on the Speedstar 24\nOrganization: H|gskolan i J|nk|ping\nLines: 39\nNntp-Posting-Host: pc5_b109.et.hj.se\n\n>>>kjb/MGL/uvesa32.zip\n>>>\n>>>This is a universal VESA driver.  It supports most video\n>>>boards/chipsets (include the Speedstar-24 and -24X) up to\n>>>24 bit color.\n>>>\n>>>Terry\n>>>\n>>>P.S.  I've tried it on a Speedstar-24 and -24X and it works. :)\n\n>>Not with all software. :( For instance it doesn't work at all with\n>>Animator Pro from Autodesk. It can't detect ANY SVGA modes when \n>>running UniVESA. This is really a problem as we need a VESA driver\n>>for both AA Pro and some hi-color stuff. :(\n\n>Just out of curiosity... Are you using the latest version (3.2)?  Versions\n>previous to this did not fill in all of the capabilities bits and other\n>information correctly.  I had problems with a lot of software until I got\n>this version.  (I don't think the author got around to posting an \n>announcementof it (or at least I missed it), but 3.2 was available in the \n>directory indicated as of 3/29.)\n\nI sure did use version 3.2. It works fine with most software but NOT\nwith Animator Pro and that one is quite important to me. Pretty\nuseless program without that thing working IMHO.\nSo I hope the author can fix that.\n\n/Daniel...\n\n\n\n\n=============================================================================\n!!      Daniel Falk          \\\\  \" Don't quote me! No comments! \"          !! \n!!      ^^^^^^ ^^^^           \\\\               Ebenezum the Great Wizard   !! \n!!      d91-fad@tekn.hj.se     \\\\                                          !!\n!!      d91fad@hjds90.hj.se    //  Also known as the mega-famous musician  !!\n!!      Jkpg, Sweeeeeden...    \\\\         Leinad of The Yellow Ones        !!\n=============================================================================\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4582, "properties": {"category": "rec.sport.hockey", "text": "From: etxonss@ufsa.ericsson.se (Staffan Axelsson)\nSubject: Re: WC 93: Results, April 18\nOrganization: Ericsson Telecom, Stockholm, Sweden\nLines: 72\nNntp-Posting-Host: uipc104.ericsson.se\n\ndstein@oak.math.ucla.edu (David Stein) writes:\n>  What's going on?  The Russians and the Czechs are unable to beat easy\n>opponents, and the Swedes beat Austria only 1:0?!?\n>\n It's the \"opening-game effect\" maybe. Pros arrive late, nervousness for\n rookie WC players, and problems to get the lines clicking may make things\n hard to get it going against these \"worse\" nations.\n I'd guess that the better team you face in the opening game, the better\n it is, since the chances of an upset are greater then.\n\n Some other reasons why the \"worse\" teams are so tough to beat was presented\n by Hans \"Virus\" Lindberg (former coach in Switzerland).\n\n 1) The \"worse\" teams (referring to France, Switzerland, Austria, Italy etc)\n    have now usually world class goalies.\n\n 2) Their defensive play have become much more disciplined, they take much\n    less unnecessary penalties.\n\n 3) They use four lines which makes it harder to make them \"run out of gas.\"\n\n 4) The ice quality in the German WC rinks is poor.\n\n>  The only convincing winner was... Germany.  Wierd.\n>\n Another weird thing was that the Czechs played entertaining hockey..\n err.. just kidding, David.\n\n>p.s. Alex, I would like to see the Czech roster, including, if possible,\n>the clubs from which the players come.  How many are \"Finnish\", \"German\", \n>or \"Swiss\"?\n>\n Alex? That's a new name for me ;)\n\n OK, I forgot the Czech roster at home yesterday, but now I have it.\n I don't know the teams for all players, so I would appreciate if\n you guys could fill in the blanks for me (especially I think some\n of these players play in Finland).\n\n The Czech Republic\n ------------------\n\n Goaltenders:\t 1. Petr Briza\t\t(Finland somewhere, right?)\n\t\t 2. Roman Turek\t\tMotor C. Budejovice\n\n Defense:\t 3. Leo Gudas\t\t?\n\t\t 4. Milos Holan\t\tTJ Vitkovice\n\t\t 5. Drahomir Kadlec\t?\n\t\t 6. Bedrich Scerban\tBrynas, Sweden\n\t\t 7. Antonin Stavjana\tHV 71, Sweden\n\t\t 8. Miroslav Horava\tMoDo, Sweden\n\t\t 9. Ales Flasar\t\tTJ Vitkovice\n\t\n Forwards:\t10. Petr Rosol\t\t?\n\t\t12. Kamil Kastak\tHV 71, Sweden\n\t\t13. Richard Zemlicka\t?\n\t\t14. Jiri Kucera\t\t?\n\t\t16. Jan Caloun\t\tHC Litvinov\n\t\t18. Petr Hrbek\t\t?\n\t\t19. Tomas Kapusta\t?\n\t\t20. Otakar Janecky\t(Finland?)\n\t\t21. Roman Horak\t\tMotor C. Budejovice\n\t\t22. Martin Hostak\tMoDo, Sweden\n\t\t24. Radek Toupal\t?\n\t\t26. Jiri Dolezal\t?\n\n\n Staffan\n--\n ((\\\\  //| Staffan Axelsson            \n  \\\\  //|| etxonss@ufsa.ericsson.se    \n\\\\_))//-|| r.s.h. contact for Swedish hockey  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4583, "properties": {"category": "rec.autos", "text": "From: dalibor@cip.informatik.uni-erlangen.de (Stefan Dalibor)\nSubject: Re: Too fast\nOrganization: CSD., University of Erlangen\nReply-To: dalibor@immd3.uni-erlangen.de\nNNTP-Posting-Host: faui00g.informatik.uni-erlangen.de\nLines: 85\n\njimf@centerline.com (Jim Frost) writes:\n\n>There are a few things to keep in mind about Europe, since you brought\n>it up.  My Autobahn knowledge is admittedly second-hand, but I believe\n>the following to be true:\n\nMy knowledge about driving in the U.S. is also second-hand, but I think I can\ncorrect your statements about our Autobahn:\n\n>1. Drivers are much better disciplined in Europe than they are here.\n\nOh yeah, that would be paradise... in fact, you can forget it. From all I've\nheard from my U.S. relatives, drivers esp. here in Germany are much more agg-\nressive, but not disciplined. One of my relatives, a L.A. resident, hired a car\nat the Nuernberg airport and went about 18 miles to our home. He said then that\nhe grew about 1 year older during this ride and swore he'd never drive a car in\nGermany again (this was in 1982 and he kept his promise - the situation now is\neven worse as effect of the increased volume of traffic).\nWhat you mean by `better disciplined' should perhaps be considered `cautious due\nto fear': \nWhen driving around here, you always *have* to take into consideration that the\nmajority of the other drivers absolutely relies on you: They expect that nobody\nfails or sleeps; many of them exploit this by driving as fast as their car can\ngo (of course only where that is allowed, you might think - dream on :).\nSo any mistake you make is a very high risk to your health - and if you're ex-\nposed to such a situation from your very first day as a driver, you learn to\nhandle it - or you lose... \nThat's the way I and most people I know experience our traffic situation - \nwhether you think this is pleasant or efficient is up to you; I think we handle\na very high volume of traffic and that at high speeds with modest (compared to\nthe volume) and decreasing rates of lethal accidents - OTOH, more and more\npeople (esp. women) dislike driving (because they feel overtaxed and threatened)\nand each accident is one accident too much.\n\n>2. The roads comprising the Autobahn are much better designed than\n>   they are here, and usually include animal fences.  This makes them\n>   far more predictable than most US highways.\n\nBetter designed and maintained, may be - but animal fences are very rare. Auto-\nbahnen and many other streets have guard-rails (I hope that's the right word - \na plank made from thick steel sheet fixed on uprights; it's about 2 feet high);\nthose guard-rails are designed for keeping vehicles on the road. Smaller animals\ncan crawl under the plank, bigger ones can easily jump over it. The point is\nthat esp. larger animals are very rare in Germany; they tend also to be very\ntimid. Accidents caused by animals are a neglegible danger.\n\n>3. Not all of Europe is the Autobahn.  Most places in Europe have\n>   speed limits that aren't out-of-line with what we used to have in\n>   the US -- if my friends weren't lying to me they're typically not\n>   much higher than 120km/h.\n\nYou're right (there are speed linits even on the major part of the Autobahn) -\nbut the attitude towards driving (see above) seems to be very similar to that\nin Germany (I've been in France, Switzerland, Italy, Austria, Spain, Belgium,\nthe Netherlands) - besides that, you really can't rely on the residents abiding\nthe local speed limits. I've got quite a lot of practise (~120k miles) and I'm\nused to travel at 130 mph (FYI, with a car even smaller than a rabbit), but I\nconsider driving on the highways round Paris or Milano really a thrill...\n\n>I strongly suspect you won't find a lot of Rabbit owners doing 120mph\n>(nearly 200km/h) on the Autobahn, but I could be wrong. ...\n\nSorry, but you'll find quite a lot rabbit-class-car (or even smaller, mine is a\nPeugeot 205) owners going that fast; small cars with much HP are very `hip' over\nhere - and most people buying such cars aren't afraid to let them run.\n\n>                                                      ...  Some people\n>have no respect for their own lives.\n\nI disagree; the size or weight of a car is rather irrelevant. Formula-1 cars\nweigh less than 700 kg and the drivers have a chance to survive accidents at\n130 mph or higher - OTOH when crashing against a solid object at 130 mph,\nit makes no difference whether you sit in a Porsche, a Mercedes, a tank or on\na bicycle: Your're dead.\n\nBye,\nStefan\n---\nStefan Dalibor (dalibor@immd3.uni-erlangen.de)\n--------------------------------------------------------------------------\n\"...And now for the next case in Kangaroo Court, I accuse you of being the\nreincarnation of Adolf Hitler.  I don't think that mere denials will be\nsufficient -- you will have to submit to examinations by a parapsychologist\nthat I personally select...\"\nPerry Metzger (pmetzger@shearson.com) in Article 2074 in news.admin.policy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4584, "properties": {"category": "comp.sys.mac.hardware", "text": "From: taihou@chromium.iss.nus.sg (Tng Tai Hou)\nSubject: ADB and graphics tablet help!\nOrganization: Institute Of Systems Science, NUS\nLines: 13\n\nHelp!!!\n\nI have an ADB graphicsd tablet which I want to connect to my\nQuadra 950. Unfortunately, the 950 has only one ADB port and\nit seems I would have to give up my mouse.\n\nPlease, can someone help me? I want to use the tablet as well as\nthe mouse (and the keyboard of course!!!).\n\nThanks in advance.\n\nTai Hou TNG\nSingapore\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4585, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Hand Held Products, Inc.\nLines: 147\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <C5tnGt.224@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \nwrites:\n> In article <1r21vqINNeb8@clem.handheld.com> jmd@cube.handheld.com (Jim De  \nArras) writes:\n> >In article <C5spov.LrE@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n> >writes:\n> >> In article <1r0qsrINNc61@clem.handheld.com> jmd@cube.handheld.com (Jim De  \n> >Arras) writes:\n> >> >In article <C5s0Ds.J54@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n> >> >writes:\n> >> >> I agree that they deserved a trial.  They had more than 40 days to come \n> >> >> out and get their trial.  They chose to keep the children with them and \n> >> >> to stay inside.  They chose to stay inside even after they were tear  \n> >gassed.\n> >> >> I do not find these actions rational.  Even Noriega was smart enough to \n> >> >> give up and go for the trial he deserved.\n> >> >> \n> >> >\n> >> >Mr. Roby, you are a government sucking heartless bastard.  \n> >> \n> >> Unworthy of comment.\n> >\n> >But apparently true.  My opinion, only, of course.\n> \n> So, your opinion is truth.  I see...  :-)\n> \n\nStill mastering the language, eh?  Notice the use of \"apparently\".\n\n> >> >Humans died  \n> >> >yesterday, humans who would not have died if the FBI had not taken the \n> >> >actions  \n> >> >they did.  That is the undeniable truth.  I cried for them.  \n> >> \n> >> Nor would they have died if they had come out with their hands empty.\n> >> That is undeniable truth.  \n> >\n> >No, it is not.  It is possible the FBI planned for this to happen, and the  \n> >gunfire heard was the FBI keeping the folks inside.  I'm not proposing this  \nas  \n> >the way it went down, but just to point out that it's not \"undeniable\" that  \nif  \n> >they walked out yesterday, they would be alive today.\n> \n> You can believe that if you wish.  It is undeniable, however, that people \n> have left the compound unharmed and alive earier in the standoff.\n> \n> And since their leader was preaching that they would have an apocalypse, you \n> can not say undeniably that there wouldn't have been a mass suicide if the \n> FBI had simply stayed outside and waited another 51 days.\n> \n\nI'm not denying that at all.  But every day is another chance for a good  \nending, why push it?  Mr. Roby, you are going to die, anyway, why not today?   \nEvery moment of life is precious.\n\n> >> My heart bleeds just as much as yours for \n> >> the children who were never released given 51 days of ample opportunities \n> >> to do so.  My heart also bleeds for people so blinded by religious  \ndevotion \n> >> to not have the common sense to leave the compound when tanks came up \n> >> and started dropping in tear gas early in the morning.\n> >\n> >My heart \"bleeds\" for no one.  You are the \"bleeding heart\".  And I'm sure  \n> >beyond any possible doubt that you do not feel for those people as I do.   \nYou  \n> >can not say the heartless things you have said if you did.\n> \n> I am the heartless bleeding heart?  You are not making sense.\n\nNo, you are the heartless \"bleeding heart\".  A flaming liberal who \"cares  \ndeeply\", who \"feels your pain\".\n\n> You seem to have no concern that someone would keep children inside this \n> compound when they had 51 days to let them out.  That sounds pretty heartless \n> to me.\n> \n\nYou have continually raised this issue, without any understanding of the bonds  \nbetween parent and child.  It is not easy to say a final goodbye to your  \nchildren, I do not think I could do it, either.  If that makes me heartless, so  \nbe it.  How many children do you have?  I have three.\n\n\n> I just heard on the news that some of the survivors regret they hadn't \n> stayed in the inferno to prove their loyalty to Koresh.  This makes me \n> sad and sick.\n> \n\nIt just makes me sad.  I never claimed Koresh was an angel.\n\n> >> >You seem to say  \n> >> >they got what they deserved.\n> >> \n> >> I do not think this.  However, if they did set the fire (which started in \n> >> more than one place and spread very quickly), then they got what they \n> >> wanted and put into motion themselves.\n> >\n> >\"they got what they wanted\".  What kind of creature are you that you can  \n> >believe this?\n> \n> Have you ever heard of Jonestown?\n> The sad thing is the people inside the compound were the authority \n> worshipers and their only authority was Koresh/Howell.   If these \n> people were able to think for themselves, there would likely be a lot \n> more survivors today.  Koresh preached a fiery apocalypse as early as \n> last year.\n> \n\nI made the same authority worshiper point about you a few lines back.  And once  \nagain, Jonestown, however sick it was, was doing OK, until \"the Authorities\"  \nshowed up and pushed a fragile person over the edge.  \n\nA bull in a china shop.\n\n> >> I see the BATF is going to be investigated by the Justice Dept. and likely \n> >> by Arlen Spectre and congress.  This is good.  They have bungled the  \naffair \n> >> from the start.\n> >\n> >We agree on this.  Now lets have your God, the FBI, investigated, too.\n> \n> By all means, the FBI should be investigated, too.  \n> BTW, I thought the second ammendment was God.  :-)\n> \n\nNope, the constitution in total is, for me.  If you think the RKBA is all I'm  \nabout, you misjudge me.\n\n> >> >Jim\n> >> >--\n> >> >jmd@handheld.com\n> >>  \n> \n> \n> -- \n> \nJim\n\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4586, "properties": {"category": "comp.sys.mac.hardware", "text": "From: panlilio@acs.ucalgary.ca (Victor P. Panlilio)\nSubject: Re: Whats this \"Thermal Recalibration\" on Quantum Drives ?\nSummary: Thermal recalibration on hard drives\nArticle-I.D.: acs.93Apr06.172811.42754\nDistribution: na\nOrganization: The University of Calgary, Alberta\nLines: 36\nNntp-Posting-Host: acs3.acs.ucalgary.ca\n\n\nIn article <1993Mar26.195307.25146@midway.uchicago.edu> gary@midway.uchicago.edu writes:\n\n>Whether the drive is hooked up to the computer or not, the LPS240\n>makes a \"disk seek noise\" every 20 seconds.  This is consistent \n>and will continue as lomg as the drive is powered up.  Even if \n>I disconnect the drive from the computer, this \"drive activity\"\n>continues at 20 second intervals.\n>\n>Someone tried to tell me the drive was doing a \"Thermal Recalibration\".\n>\n>Not knowing beans about the internal physical workings of the lastest\n>disk drive technology.... I guess I might believe anything.\n>\n>Whats the scoop on this standalone \"drive activity\" every 20 sec?\n\nI can only comment on thermal recalibration in general. Some new\ndrives perform it in order to increase overall integrity of data\nwrites. Basically, the firmware instructs the actuator to perform\na test to see if the data tracks are within a certain physical\ntolerance, since when the media heats up or cools down, *some*\ntrack drift is inevitable, and the drive has to monitor it. This\nbecomes especially critical at very high recording densities, and\nso was used primarily on very large-capacity mechanisms, but it\nseems to be finding its way into more smaller drives as a way of\nboosting the drive's long-term reliability and MTBF ratings.\n\nI first became aware of thermal recalibration when it was pointed\nout that the technique conflicts with prolonged write times when\ndigitizing, say, audio or video to hard disk. Some manufacturers\nexplicitly state that drives with thermal recalibration are NOT\nto be used for applications that have prolonged disk writes.\n\nHope this helps.\n\nVictor\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4587, "properties": {"category": "comp.windows.x", "text": "From: leon@dimatrix.DK (Leon Thrane)\nSubject: X Intrinsic mailing list\nOrganization: The Internet\nLines: 14\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nAs we don't get a newsfeed I was wondering whether there was such a\nthing as a Xt mailing list (other than xpert@expo.lcs.mit.edu).  I\nwould appreciate any info on this, (or X related mailing lists.)\n\n        Thanks in advance,\n\n        Leon\n\n+-------------------------------+---------------------------------+\n| Leon Thrane                   | Telephone:    +45 - 45 93 51 00 |\n| DimatriX ApS                  | FAX:          +45 - 45 93 51 11 |\n| Lyngby Hovedgade 15D          | E-mail:       leon@dimatrix.dk  |\n| DK-2800 Lyngby, Denmark       | or   ...!uunet!dimatrix.dk!leon |\n+-------------------------------+---------------------------------+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4588, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bsardis@netcom.com (Barry Sardis)\nSubject: Re: Date is stuck\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 39\n\njamesc@netcom.com (James Chuang) writes:\n\n\n>When you leave your radio on at night, it may not be doing anything useful.\n>But computers can do something useful even when YOU are not in front of it.\n>Just because MS-DOS and WINDOZE does not know how to schedule tasks does\n>not mean that all computers hould be shut down every night.\n\n>I bet starting up NT every morning means a good coffee break....  \n>jamesc\n\n\n>-- \n>=========================================\n>If someone asks if you are a God, you say... YES!\n\nIn addition to startup time, I leave things running because my PC doubles as \na fax machine. \n\nHowever, this is off the original subject. I didn't get the replies on BIOS, \nCMOS, and DOS clock/date logic. All I know is that I've been running this way \nfor many months and it is only recently, the last month, that I have noticed \nthe intermittent clock problem. As I stated, it is not always the date that \ndoesn't roll forward, sometimes I notice that the clock is several minutes \nbehind where it ought to be. \n\nWhen unattended, the following are generally running minimized in Win 3.1:\n\nClock, WinFax Pro 3.0, Print Manager, MS-Word 1.1, File Manager, Program \nManager\n\nA random screen saver is generally running too.\n\n\n-- \nBarry Sardis\t\t| Home:   (408) 448-1589\n1241 Laurie Avenue\t| Office: (408) 448-7404\nSan Jose, CA 95125\t| Fax:    (408) 448-7404\nEmail: bsardis@netcom.COM or 70105.1210@compuserve.COM\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4589, "properties": {"category": "rec.sport.baseball", "text": "From: scasburn@magnus.acs.ohio-state.edu (Steven M Casburn)\nSubject: Re: Do people want stats?\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 19\n\nIn article <10010717@hpfcso.FC.HP.COM> dougs@hpfcso.FC.HP.COM (Doug Steele) wri\ntes:\n>   This is a \"Top 10\" posting for the AL.\n>\n>               HOME RUNS                           HITS\n>        Batter      Team    HRs          Batter      Team  HITS\n>      Gonzalez       Tex     5         Baerga         Cle   13\n>      Palmer         Tex     4         Phillips       Det   13\n\n     Did anyone think that Texas would have the top two home run leaders at a \ngiven point in the season and neither one would be Jose Canseco?\n\n                                        Steve\n[]\n-- \n    Steve Casburn (scasburn@magnus.acs.ohio-state.edu)\n      \"I personally despair of results from anything but violent and ruthless \n       truth-telling -- that will work in the end, even if slowly\"\n                                            -- John Maynard Keynes, 1919\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4590, "properties": {"category": "sci.space", "text": "From: djf@cck.coventry.ac.uk (Marvin Batty)\nSubject: Re: Moon Colony Prize Race! $6 billion total?\nNntp-Posting-Host: cc_sysk\nOrganization: Starfleet, Coventry, UK\nLines: 49\n\nIn article <1993Apr20.020259.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>I think if there is to be a prize and such.. There should be \"classes\"\n>such as the following:\n>\n>Large Corp.\n>Small Corp/Company (based on reported earnings?)\n>Large Government (GNP and such)\n>Small Governemtn (or political clout or GNP?)\n>Large Organization (Planetary Society? and such?)\n>Small Organization (Alot of small orgs..)\n\nWhatabout, Schools, Universities, Rich Individuals (around 250 people \nin the UK have more than 10 million dollars each). I reecieved mail\nfrom people who claimed they might get a person into space for $500\nper pound. Send a skinny person into space and split the rest of the money\namong the ground crew!\n>\n>The organization things would probably have to be non-profit or liek ??\n>\n>Of course this means the prize might go up. Larger get more or ??\n>Basically make the prize (total purse) $6 billion, divided amngst the class\n>winners..\n>More fair?\n>\n>There would have to be a seperate organization set up to monitor the events,\n>umpire and such and watch for safety violations (or maybe not, if peopel want\n>to risk thier own lives let them do it?).\n>\nAgreed. I volunteer for any UK attempts. But one clause: No launch methods\nwhich are clearly dangerous to the environment (ours or someone else's). No\nusage of materials from areas of planetary importance.\n\n>Any other ideas??\n\nYes: We should *do* this rather than talk about it. Lobby people!\nThe major problem with the space programmes is all talk/paperwork and\nno action!\n\n>==\n>Michael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n>\n>\n\n\n-- \n****************************************************************************  \n                  Marvin Batty - djf@uk.ac.cov.cck\n\"And they shall not find those things, with a sort of rafia like base,\nthat their fathers put there just the night before. At about 8 O'clock!\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4591, "properties": {"category": "sci.crypt", "text": "From: caronni@nessie.cs.id.ethz.ch (Germano Caronni)\nSubject: Re: More technical details\nOrganization: Swiss Federal Institute of Technology (ETH), Zurich, CH\nLines: 120\n\nHmm, followup on my own posting... Well, who cares.\n\nFirst let me try to work out the facts that we get to know about the\nClipper-Chip, from what Hellman and Denning were able to tell us:\n\nThe chip itself is not confined to (digital) telephony, but performs\ngeneral encryption in a symmetric manner.  The chip supports CFB OFB\nECB (and whatever the fourth mode of operation for DES is), the algorithm\nconsists of 32 rounds of *whatever*, and takes 80-Bit keys. Input data\nseems to be 64 Bit? Yes.\nSo if two people want secure communication (whatever that means when \nClipper is involved) they have first to agree on ONE secret key. \n(Or is it one key per direction ?)\nThey can exchange this key via DH-schemes or however.\nSomehow the two feed their so won secret key into the Clipper-chip\nwhich is now ready to work.\nThe clipper chip carries an unique Serial-Number (30 Bit's), and 160 Key-Bits.\nThese 160 key-bits seem to have been gained by encrypting the serial-number\nwith 160 seed-bits. (The seed-bits seem not to be stored in the chip)\nAt beginning of communication (and perhaps at certain invtervals whithin??)\nbefore sending the fist real 64-bit output of the first encryption the Clipper\nchip put's out packets (I guess 3) which represent the serial number,\nand the session key. This might look like\nX{ E[K; chipkeyK1+K2], serial number}\nwhere X is a transformation of these 3? Packets involving a family-key.\nThis family(sp?)-key is equal for ALL chips. (X might be a simple XOR ???)\nAfter that, the (digital?) phone-call can be done as usual, every packet\nbeing encrypted and decrypted by Clipper.\n\nDenning describes how K1 and K2 shall be generated, using a seed of 160\nBit's.\n\nNow, leaving alone politics, which does not concern me as much as you, not\nbeing an American Citicien(tm) [ :-) ] , there are some weak points in this\nscheme, which might be exploited by several parties.\n\nAs far as I know about the generation of K1,K2 ; S1 and S2 look like the \nobvious backdoor. They could be used to generate the chip-keys by knowing\nthe serial-number (and also the family-key) of the chip. I really can't\nimagine why these seeds would be needed otherwise, as true random-sources\nfor the generation of the K1,K2 can be bought for not to much money.\n\nThen, the escrows. Each of them will get 80 bit of a 160-Bit key. Security\ncould (as little as existant) be maximized by giving them 160-bits\neach, which have to be xored together to give the K1,K2. Now let's simply\nassume the escrows are trustworthy, and can't be fooled by criminals or\nlaw enforchemnt agencies. (And there will be no quarrel between escrows\nand l.e.a which would hinder the l.e.a in doing their duties, and so on\nand so on) Once the keys are surrendered, the corresponding\nchip is compromised forever. Not very clever, IMHO [ :-)) ].\nHow about sending in the encrypted session-keys for each phone-call that\nthe police (or whoever) want's to listen to? Escrows could then simply decode\nthis session-key and send it back to police. (And would naturally not do this\nafter the warrant has expired...) This would be a better technical solution,\nbut I guess politics will not work that way.\n\nApparently (as Miss Dennings stated) the only one performing actually decodes\nof intercepted messages shall be the FBI. Great. So local guys can not inter-\ncept (understand) your traffic anymore. Does this mean that the FBI monopolizes\nthe right to do legal wiretaps ? (How is law over there, I have no idea who\nis allowed to tap, and who not) This certainly means that watched communi-\ncations will be routed automatically from the service-providing company\nto the FBI, if the communicaiton is a watched one. And this means as far\nas I understand it that the family-key has to be known by each switching-\ncompany, and those providing cellular-phone servies etcetc. So the family-key\nwill not be very secret, and thus serial-numbers of calls will be readable\nby anybody who cares. I _like_ traffic-analysis!\n\nWhat do you guess, what happens, if you use the chip in ECB mode, and the\nfirst few packets of the chip are somehow lost or garbled? So the session\nkey would not be actually broadcasted over the line? Hmmm. Shouldn't be so\ndifficult to do *that* :^)\n\nAnd now a last point, for the other side. After all I have read and heard about\nClipper (not the programming language for dBase, is it ? [:-)]) it seems\nto have many advantages, which shold not be overseen!\n\n\nNow an afterthought to your rights. Please note that I have no idea what I am\ntalking about!!!\n\nFrom: grady@netcom.com (1016/2EF221)\n>    Amendment 1                                                           \n>                                                                          \n>    Congress shall make no law respecting an establishment of religion, or\n>prohibiting the free exercise thereof; or abridging the freedom of speech,\n>or of the press; or the right of the people peaceably to assemble, and to \n>petition the Government for a redress of grievances.\n\nIf this text is actually in your Bill of Rights, who can overrule this ?\nBut: 'Freedom of speech' is not 'Secrecy of speech'\n\nMaybe you need to extend your Amendment #4  to cover information and\ncommunication too ?\n\nI am not very sure in what position your government actually is *legally*\nwhen it tries to ban cryptography (and arms) Amendment say you may have them,\nbut not under what conditions. Hmm, tricky situation :-(\n\nActually it will make not much sense to discuss that topic in sci.crypt...\nDiscussion of technical details and vulnerabilites of the system are highly\nsuggested and appreciated :-)\n\nFriendly greetings,\n\n\tGermano Caronni\n\n\nDISCLAIMER: Everything in here is derived from things I heard and read from\nother persons, so everything could be wrong. All opinions and thoughts in here\nare mine, and subject to change without further notification. No warranty,\nneither implicit not explicit etc. etc. etc. ad nauseam.\n\np.s. Please don't ask me about political opinions, as I might not bother to re-\n     ply. (For further information read the last line of P. Metzgers signature)\n-- \nInstruments register only through things they're designed to register.\nSpace still contains infinite unknowns.\n                                                              PGP-Key-ID:341027\nGermano Caronni caronni@nessie.cs.id.ethz.ch   FD560CCF586F3DA747EA3C94DD01720F\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4592, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: hamilton@romulus.ehs.uiuc.edu (Wayne Hamilton)\nSubject: Re: Null modem: 25 pin serial\nArticle-I.D.: news.C520Gs.Dyw\nOrganization: University of Illinois at Urbana\nLines: 57\nX-Newsreader: TIN [version 1.1 PL9]\n\nBruce Maynard (drac@uumeme.chi.il.us) wrote:\n> In article <93083.215554MAL112@psuvm.psu.edu> Mitch Lewars <MAL112@psuvm.psu.edu> writes:\n> >Can someone give me the specs\n> >on a null modem cable, I ferget\n> >which get crossed.... =-)\n> >    mal112@psuvm.psu.edu\n\n> That's an easy one... carry all 25 pins straight thru, with the exception of\n> pins 2 & 3, which should be crossed...\n\nas someone else already mentioned, don't \"carry thru\" the other 23 pins.\n\nplan A, minimal null modem:\n\tSG(7)   -  SG(7)\n\tTD(2)   -  RD(3)\n\tRD(3)   -  TD(2)\nif you're transfering files betwen 2 PCs, this ought to work (unless\nyou have a persnickity comm program).\n\nplan B, null modem with modem control:\n\tSG(7)   -  SG(7)\n\tTD(2)   -  RD(3)\n\tRD(3)   -  TD(2)\n\tDCD(8)  -  DTR(20)\n\tDTR(20) -  DCD(8)\nsome comm software will wait for DCD before transferring anything.\nsuch software will raise DTR to enable the modem to accept a call.\nwith this cable, each side's DTR will drive the other's DCD.\n\nplan C, null modem with hardware flow control:\n\tSG(7)   -  SG(7)\n\tTD(2)   -  RD(3)\n\tRD(3)   -  TD(2)\n\tRTS(4)  -  CTS(5)\n\tCTS(5)  -  RTS(4)\nfor high-speed transfers, you want the flow control.\n\nplan D, deluxe null modem (combine B and C):\n\tSG(7)   -  SG(7)\n\tTD(2)   -  RD(3)\n\tRD(3)   -  TD(2)\n\tRTS(4)  -  CTS(5)\n\tCTS(5)  -  RTS(4)\n\tDCD(8)  -  DTR(20)\n\tDTR(20) -  DCD(8)\nthis one is ideal.  it leaves out DSR and RI (rarely used anymore).\nif you're really paranoid, or you just have an 8th wire to spend,\nyou might add:\n\tFG(1)   -  FG(1)\n\nthe pin numbers above are (obviously) for 25-pin connectors.\ni don't have a 9-pin pinout handy.\n\n--\n\twayne hamilton\nI'net:\thamilton@osiris.cso.uiuc.edu\nLowtek:\tBox 476, Urbana, IL 61801; (217)384-4310(voice), -4311(BBS)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.221+0000", "event": "documents", "entityId": 4593, "properties": {"category": "comp.windows.x", "text": "From: christy@cs.concordia.ca (Christy)\nSubject: X386 server problems\nOrganization: Computer Science, Concordia University, Montreal, Quebec\nLines: 32\n\nHello,\n\nI'm trying to get X11R5 running on my PC and ran into the \nfollowing error message when trying to start the Xserver.\n\n------\nSetting TCP SO_DONTLINGER: Option not supported by protocol\n\nX386 Version 1.2 / X Windows System\n(protocol Version 11, revision 0, vendor release 5000)\n\nFatal server error\nno screens found\ngiving up\n\nxinit: software cased connection abort (errno 130): unable to connect\n       to X xserver.\n\n------\n\n\ndoes anyone know what this error means ?\nhas anyone experienced this problem ?\n\nhelp will be much appreciated\n\nthanks in advance.\n\n\nplease send replies to <christy@alex.qc.ca>\n\nChristy\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4594, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Commercial mining activities on the moon\nOrganization: Express Access Online Communications USA\nLines: 10\nNNTP-Posting-Host: access.digex.net\n\nIn article <1r46j3INN14j@mojo.eng.umd.edu> sysmgr@king.eng.umd.edu writes:\n>In article <STEINLY.93Apr20160116@topaz.ucsc.edu>, steinly@topaz.ucsc.edu (Steinn Sigurdsson) writes:\n|\n|>Very cost effective if you use the right accounting method :-)\n|\n>Sherzer Methodology!!!!!!\n\nLet it never be said that an opportunity was missed to put someone down.\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4595, "properties": {"category": "soc.religion.christian", "text": "From: J.Hale@latrobe.edu.au\nSubject: Re: Can sin \"block\" our prayers?\nOrganization: VAX Cluster, Computer Centre, La Trobe University\nLines: 35\n\nIn article <Apr.7.23.20.24.1993.14263@athos.rutgers.edu>, \n\t3225200@qucdn.queensu.ca writes:\n> I have heard an interesting notion that sin can \"block\" our prayers to God,\n> i.e. God will not hear our prayers if we have not confessed our sins. Now I am\n> totally supportive of confessing our sins before God, but I simply do not\n> believe God will \"shut us out\" just because we did not confess. This is kind of\n> like the idea that suffering is caused by sin, which, as any Job reader will\n> realize, is too simpilistic.\n{rest deleted}\n\nCan the Father possibly not hear the words of His children.\nOf course He hears all your prayers.\nWhether you are a sinner or a saint, no questions.\nThe real question you should be asking is: \"Does sin block OUR hearing His\nanswer?\" And the answer to that question is a resounding YES.\nTo paraphrase the gospel \"Many are called but few choose to listen\"\nand so it is with prayer. \n\n\nIn Christ,\n\nJames\n-- \n_____________________________________________________________________________\nJames Hale     \t\t\tLincoln School of Health Sciences\nComputing Unit\t\t\tLa Trobe University,Bundoora, AUSTRALIA\n                                \nJames.Hale@Latrobe.Edu.Au\n-----------------------------------------------------------------------------\n\"The grace of God rests gently on forgiving eyes,\nand everything they look on speaks of Him to the beholder.\nHe can see no evil, nothing in the world to fear,\nand no one who is different from himself.\"\n\t\t\t\t\t\tText, P 418\n_____________________________________________________________________________\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4596, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: michael@jester.GUN.de (Michael Gerhards)\nDistribution: world\nSubject: Re: Help! Ten beeps with 386/40 (AMI BIOS)\nX-Newsreader: TIN [version 1.1 PL8]\nOrganization: private COHERENT system\nLines: 9\n\nG. Wayne Nichols (gwni@troi.cc.rochester.edu) wrote:\n> I have a 386/40 motherboard with AMI BIOS.\n[..]\n> After multiple reboots, now it only gives 10 beeps and sits there?\nReferring to the manual of my motherboard with AMI-BIOS, 10 beeps are a \n'CMOS Shutdown Register Read/Write Error', if the system stops after these\nbeeps. If the system continues, it is a 'Keyboard error'.\n\nMichael\n--\n*  michael@jester.gun.de  *   Michael Gerhards   *   Preussenstrasse 59  *\n                          *  Germany 4040 Neuss  *  Voice: 49 2131 82238 *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4597, "properties": {"category": "talk.politics.mideast", "text": "From: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nSubject: Re: Legality of the Jewish Purchase (was Re: Israeli Expansion-lust)\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nOrganization: Columbia University\nLines: 69\n\nIn article <1993Apr16.225910.16670@bnr.ca> zbib@bnr.ca writes:\n>Adam Shostack writes: \n>> Sam Zbib writes\n>   >>I'm surprised that you don't consider the acquisition of land by\n>   >>the Jews from arabs, for the purpose of establishing an exclusive\n>   >>state, as a hostile action leading to war.\n>\n>>\tIt was for the purpose of establishing a state, not an\n>> exclusive state.  If the state was to be exclusive, it would not have\n>> 400 000 arab citizens.\n>\n>Could you please tell me what was the ethnic composition of \n>Israel right after it was formed. \n>\n>\n>> \tAnd no, I do not consider the purchase of land a hostile\n>> action.  When someone wants to buy land, and someone else is willing\n>> to sell it, at a mutually agreeable price, then that is commerce.  It\n>> is not a hostile action leading to war.\n>\n>No one in his right mind would sell his freedom and dignity.\n>Palestinians are no exception. Perhaps you heard about\n>anti-trust in the business world.\n>\n>Since we are debating the legality of a commercial\n>transaction, we must use the laws governing the guidelines\n>and ethics of such transactions. Basic ANTI-TRUST law says\n>that, while you can purchase IBM stocks for the purpose of\n>investing, you can not acquire a large number of those\n>shares with the intent or controlling IBM. You can do so\n>only if you make your intentions CLEAR apriori . Clearly,\n>the Jews who purchased properties from palastenians had some\n>designs, they were not buying a dwelling or a real estate.\n>They were establishing a bridgehead for the European Jews.\n>\n>The palastenians sold their properties to the Jews in the\n>old tradition of arab hospitality. Being a multi-ethnic /\n>multi-religious society, accepting the jews as neighbours\n>was no different, just another religion. Plus they paid fair\n>market value, etc... They did not know they were victims of\n>an international conspiracy. (I'm not a conspiracy theorist\n>myself, but this one is hard to dismiss).\n>\n\nRight now, I'm just going to address this point.\nWhen the Jewish National Fund bought most of its land,\nIt didn't buy it from the Palestinians themselves, because,\nfor the most part, they were tenant farmers (fallahin),\nliving on land owned by wealthy Arabs in Syria and Lebanon.\nThe JNF offered a premium deal, so the owners took advantage of\nit.   It's called commerce.  The owners, however, made no \nprovisions for those who had worked for them, basically shafting \nthem by selling the land right out from under them.\nThey are to blame, not the Jews.\n\n>\n>> Adam Shostack \t\t\t\t       adam@das.harvard.edu\n>\n>-- \n>Sam Zbib                                         Bell-Northern Research\n>------------------------------------------------------------------------\n>Bitnet/Internet: zbib@bnr.ca                    VOICE:  (613) 763-5889\n>                                                FAX:    (613) 763-2626\n>Surface Mail: Stop 162, P.O.Box 3511, Station C, Ottawa, Canada, K1Y 4H7\n>------------------------------------------------------------------------\n>       My opinions are my own and no one else's\n\n\nAmir\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4598, "properties": {"category": "sci.crypt", "text": "From: reeds@alice.att.com (Jim Reeds)\nSubject: Re: Patents (was RC2 RC4)\nSummary: Pop patent law\nArticle-I.D.: alice.25313\nOrganization: AT&T Bell Laboratories, Murray Hill NJ\nLines: 13\n\nIn article <matt-160493203627@wardibm2.med.yale.edu>, matt@wardsgi.med.yale.edu (Matt Healy) writes:\nand\n> bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev) wrote:\nand\n> > ahaley@eoe.co.uk (Andrew Haley) writes:\n\nabout Coca-Cola and Pepsi Cola and what they can teach us.\n\n\nSurely, if we must use pop patent law examples to discuss RC2 and RC4,\nit would make more sense to consider the case of RC Cola?\n\nJim Reeds\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4599, "properties": {"category": "comp.graphics", "text": "From: eeerik@cc.newcastle.edu.au\nSubject: Color palette for 256 color VGA rainbow\nOrganization: University of Newcastle, AUSTRALIA\nLines: 11\n\nDoes anybody out there have or know how to calculate the RGB values \nrequired to set the 256 color VGA palette so that the colors from \n0..255 will give 256 colors  of the rainbow ie red, orange, \nyellow, etc.\n\nAny help would be appreciated. Please email to eeerik@cc.newcastle.edu.au\n\nErik de Castro Lopo,\nDept. Electrical & Computer Eng.,\nUni. of Newcastle,\nAustralia.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4600, "properties": {"category": "talk.politics.mideast", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: was:Go Hezbollah!!\nOrganization: Corporation for Open Systems\nDistribution: world \nLines: 60\n\nIn <C5I7J7.F7A@eis.calstate.edu> mafifi@eis.calstate.edu (Marc A Afifi) writes:\n\n>stssdxb@st.unocal.com (Dorin Baru) writes:\n>> Even the most extemist, one sided (jewish/israeli) postings (with which I \n>> certainly disagree), did not openly back plain murder. You do.\n>> \n>> The 'Lebanese resistance' you are talking about is a bunch of lebanese \n>> farmers who detonate bombs after work, or is an organized entity of not-\n>> only-lebanese well trained mercenaries ? I do not know, just curious.\n>> \n>> I guess you also back the killings of hundreds of marines in Beirut, right?\n>> \n>> What kind of 'resistance' movement killed jewish attlets in Munich 1972 ?\n>> \n>> You liked it, didn't you ?\n>> \n>> \n>> You posted some other garbage before, so at least you seem to be consistent.\n>> \n>> Dorin\n\n>Dorin,\n>Let's not forget that the soldiers were killed not murdered. The\n>distinction is not trivial. Murder happens to innocent people, not people\n>whose line of work is to kill or be killed. It just so happened that these\n>soldiers, in the line of duty, were killed by the opposition. And\n>resistance is different from terrorism. Certainly the athletes in Munich\n>were victims of terrorists (though some might call them freedom fighters).\n\nAnd some of us call them murderous bastards, but what's in a name.\n\n>Their deaths cannot be compared to those of soldiers who are killed by\n>resistance fighters. Don't forget that it was the French Resistance to the\n>Nazi occupying forces which eventually succeeded in driving out the\n>hostile occupiers in WWII. Diplomacy has not worked with Israel and the\n\nJust a damn minute! What history books did you read? I seem to recall\nthat there were a few British, Canadian, American, and Commonwealth\nsoldiers in France about that time. Perhaps you believe they were taking\na vacation trip?\n\n>Lebanese people are tired of being occupied! They are now turning to the\n>only option they see as viable. (Don't forget that it worked in driving\n>out the US)\n\nSure, the Lebanese want to get all foreigners out of the country so they\ncan go back to killing each other off.\n\n\n>-marc\n\nREB\n\n\n>--\n>______________________________________________________________________________\n>Some people are so narrow minded they can see through a crack in a door with\n>both eyes. \n>My opinions should be yours. My employer has no opinions.\n>______________________________________________________________________________\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4601, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: He has risen!\nOrganization: Case Western Reserve University\nLines: 16\nNNTP-Posting-Host: b64635.student.cwru.edu\n\n\n\n\tOur Lord and Savior David Keresh has risen!\n\n\n\tHe has been seen alive!\n\n\n\tSpread the word!\n\n\n\n\n--------------------------------------------------------------------------------\n\t\t\n\t\t\"My sole intention was learning to fly.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4602, "properties": {"category": "alt.atheism", "text": "From: jcopelan@nyx.cs.du.edu (The One and Only)\nSubject: Nicknames\nSummary: was Re: New Member\nOrganization: Salvation Army Draft Board\nLines: 36\n\nIn article <UfnYJ2a00VoqIT9VpA@andrew.cmu.edu> nm0w+@andrew.cmu.edu (Nanci Ann Miller) writes:\n>jcopelan@nyx.cs.du.edu (The One and Only) writes:\n>> Welcome.  I am the official keeper of the list of nicknames that people\n>> are known by on alt.atheism (didn't know we had such a list, did you).\n>> Your have been awarded the nickname of \"Buckminster.\"  So the next time\n>> you post an article, sign with your nickname like so:\n>> Dave \"Buckminster\" Fuller.  Thanks again.\n>> \n>> Jim \"Humor means never having to say you're sorry\" Copeland\n>\n>Of course, the list has to agree with the nickname laws laid down by the\n>GIPU almost 2000 years ago (you know... the 9 of them that were written on\n>the iron tablets that melted once and had to be reinscribed?).  Since I am\n>a prophet of the GIPU I decree that you should post the whole list of\n>nicknames for the frequent posters here!\n\nIf the first rule of humor is never having to say you're sorry then the \nsecond rule must be never having to explain yourself.  Few things are \nworse that a joke explained.  In spite of this, and because of requests\nfor me to post my list o' nicknames, I must admit that no such list\nexists.  It was simply a plot device, along with me being the keeper\no' the list, to make the obvious play on the last name of Fuller and to\nadvance the idea that such a list should be made.\n\nI assumed that the ol' timers would recognize it for what it is.  \nNevertheless, how about a list o' nicknames for alt.atheism posters?\nIf you think of a good one, just post it and see if others like it.\nWe could start with those posters who annoy us the most, like Bobby or\nBill.\n\nJim \"D'oh! I broke the second rule of humor\" Copeland\n--\nIf God is dead and the actor plays his part                    | -- Sting,\nHis words of fear will find their way to a place in your heart | History\nWithout the voice of reason every faith is its own curse       | Will Teach Us\nWithout freedom from the past things can only get worse        | Nothing\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4603, "properties": {"category": "rec.autos", "text": "From: sgs1679@ucs.usl.edu (Sudhindranath Sira G)\nSubject: HELP!!!! (Mercury Capri Query).\nKeywords: Gas mileage, High idling, Carburettor, Tune-up.\nOrganization: Univ. of Southwestern La., Lafayette\nDistribution: usa\nLines: 34\n\nHi Folks,\n\nI recently bought a 1981 Mercury Capri (my first car ever!).\nI have noticed a few problems with the car :\n\n\t1. It gives very low gas mileage (something like\n           11 miles / gallon ; I hear other car owners speak of\n           gas-mileage figures like 25 miles/gallon (wow!) etc.).\n\n\t2. When I start the car, it goes into high idling (something\n           like 1500 (or is it 15000 ?) rpm. After driving 4 or 5 miles, \n           it comes down to 300 (or 3000?) rpm. \n\nI would like to know if there is any way by which I can fix these\nproblems. Or is it natural for an old car like this ? (it has\ndone about 117,000 miles). Someone suggested that I change/rebuild/\nrecondition the carburettor. I am not prepared to do it\nunless I am sure it will fix the problem. And yes, I got the\ncar tuned-up recently (within the last 200 miles or so).\n\nPlease let me know if you have any suggestions. Please respond\nby email since I don't scan this newsgroup regularly.\n\nThanks.\n\nRegards,\n\n--Sudhi.\n\n-- \nSira Gopinath Sudhindranath. email : sudhi@ucs.usl.edu.\n\n\"Is he one of us or is he one of them ?\" ---- so ask small-minded men.\nThose of noble mind think the entire world as their family. [Hitopadesha]\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4604, "properties": {"category": "sci.med", "text": "From: jec@watson.ibm.com\nSubject: Contraceptive pill\nReply-To: jec@zurich.ibm.com\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: mythen.zurich.ibm.com\nOrganization: Watson Research Center\nLines: 9\n\nA very simple question : it seems to me that the contraceptive\npill just prevents the ovule to nest in the vagina and forces it to\nfall every month. But it does not prevent the fertilzation of the \novule. Is it true ? If yes, is there a risk of extra-uterine\npregnancy, that is the development of the ovule inside the Fallopian\ntube ?\n\nJ.Cherbonnier\njec@zurich.ibm.com\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4605, "properties": {"category": "rec.autos", "text": "From: rcg1597@zeus.tamu.edu (GUYNN, RICHARD CARL)\nSubject: Re: MGBs and the real world\nArticle-I.D.: zeus.5APR199321160020\nDistribution: world\nOrganization: Texas A&M University, Academic Computing Services\nLines: 34\nNNTP-Posting-Host: zeus.tamu.edu\nNews-Software: VAX/VMS VNEWS 1.41\n\nIn article <1993Apr5.181056.29411@mks.com>, mike@mks.com (Mike Brookbank) writes...\n>My sister has an MGB.  She has one from the last year they were produced\n>(1978? 1979?).  Its in very good shape.  I've been bugging her for years\n\n\tLast year produced: 1980.\n\n>about selling it.  I've said over and over that she should sell it\n>before the car is worthless while she maintains that the car may\n>actually be increasing in value as a result of its limited availability.\n> \n>Which one of us is right?  Are there MGB affectionados out there who are\n>still willing to pay $6K to 8K for an old MG?  Are there a lot out in the \n>market?\n>-- \n\n\tYes, there are still alot of MGBs out there.  The earlier cars (pre\n 74-1/2) are usually more desirable due to certain things that went with having \nchrome bumpers (ride height, generally more power).  The older cars are \nappreciating... slowly.  The newer ones seem to be at a stable level at the \nmoment.  $6 to $8k would require extremely good condition and low miles.\nIf the car is in good shape and regular maintenance is kept up on it, the car \nshould last for a long time.  There are still plenty of parts sources ouththere. \n The MGB is a great, fun little car.  If she is keeping it solely in the hopes \nthat it is going to appreciate, tell her to sell it.  It is not worth waiting \nthe time it would take to appreciate to a real profitable level.\n\n***************************************************************************\n*Rick Guynn -MG driver soontobe.  *  MGA 1600 MkII                        *\n*RCG1597@zeus.tamu.edu            *  Rebuild (complete) to be finished ?? *\n*Texas A&M University             *                                       *\n*Keeper of the eternal octagon    *  `69 MGB Roadster                     *\n* a.k.a. The marque symbol that   *     I'll have it registered soon,     *\n*        refuses to die.          *        honest!                        *\n***************************************************************************\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4606, "properties": {"category": "sci.electronics", "text": "From: jkeais@ucssun1.sdsu.edu (keais j)\nSubject: Re: Pioneer Laser player\nArticle-I.D.: gondor.1pr8nn$46v\nOrganization: SDSU Computing Services\nLines: 17\nNNTP-Posting-Host: ucssun1.sdsu.edu\n\nIn article <1993Apr6.005150.10250@ee.rochester.edu> neale@ee.rochester.edu (Reg Neale) writes:\n>I'm trying to figure out how to operate a Pioneer Laserdisc LD-1000 that I bought at a surplus store. It is reputedly from some kind of computerised viewing\n>and/or ordering system. THere is what may be an HPIB connector on the back. When\n>I power it up, the front panel power light comes on, but no activity, and the\n>door doesn't open. Anyone have any experience with this unit or any ideas on how\n>to obtain documentation?\n\nWhat you have is one of the LD players from a video game (Dragon's Lair,\nSpace Ace, etc). Call Pioneer Technicial Support 213-498-0300 (at least\nthat's the number I called them at) and ask for the LD-V1000 Interface\nGuide. It shows how the parallel interface should be wired and the codes\nfor the commands (play, pause, reject, etc). The guide is mainly for hooking\nthe player to a computer, but with a little work, you could build a wired\ncontroller.\n\n\nJim Keais        jkeais@ucssun1.sdsu.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4607, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Dear Mr. Theist\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 20\n\nPixie (dl2021@andy.bgsu.edu) wrote:\n\n:      For all the problems technology has caused, your types have made\n: things even worse.  Must we be reminded of the Inquisition, Operation\n: Rescue, the Ku Klux Klan, Posse Comitatus, the 700 Club, David Duke, Salem\n: Witch Trials, the Crusades, gay bashings, etc.\n:      PLUS virtually each and every single war, regardless of the level of\n: technology, has had theistic organizations cheering on the carnage\n: (chaplains, etc.), and claiming that god was in favor of the whole ordeal. \n: Don't forget to pray for our troops!\n:      \n\nThis is really tedious. Every bad thing that's ever happened is\nbecause the malefactors were under the influence of religion - does\nanyone -really- believe that. I've seen it so often it must be a\npretty general opinion in a.a, but I want to believe that atheists are\nreally not THAT dishonest. Please, stick to the facts and, having\naccomplished that, interpret them correctly.\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4608, "properties": {"category": "rec.sport.hockey", "text": "From: Patrick Walker <F1HH@UNB.CA>\nSubject: They guy who bad-mouthed Ulf...\nLines: 16\nOrganization: The University of New Brunswick\n\nDitto...\n\nIf we allow people like him to continue to do what he does, it's a\nshame.  People say that cheap shots and drawing penalties by fake-\ning is part of the game, I say \"Bullsh-t!\".  If he ever tried some\nlike that on a Yzerman, he'd would have to deal with Probert now\nwouldn't he?  What Ulf does isn't even retaliatory!  There's now\nway one could justify what he does and if they do they're fools.\n\n\n /----\\==========/  Patrick Walker\n/ /--\\ =========/   University of New Brunswick\nI I()I ======/      Canada\n\\ \\--/ /            Detroit Fan Extraordinaire.\n \\----/\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4609, "properties": {"category": "comp.windows.x", "text": "From: dbl@visual.com (David B. Lewis)\nSubject: comp.windows.x Frequently Asked Questions (FAQ) 1/5\nSummary: useful information about the X Window System\nReply-To: faq%craft@uunet.uu.net (X FAQ maintenance address)\nOrganization: VISUAL, Inc.\nExpires: Sun, 2 May 1993 00:00:00 GMT\nLines: 938\n\nArchive-name: x-faq/part1\nLast-modified: 1993/04/04\n\nThis article and several following contain the answers to some Frequently Asked \nQuestions (FAQ) often seen in comp.windows.x. It is posted to help reduce \nvolume in this newsgroup and to provide hard-to-find information of general \ninterest.\n\n\t\tPlease redistribute this article!\n\nThis article includes answers to the following questions, which are loosely\ngrouped into categories. Questions marked with a + indicate questions new to \nthis issue; those with significant changes of content since the last issue are \nmarked by !:\n\n  0)  TOPIC: BASIC INFORMATION SOURCES AND DEFINITIONS\n  1)! What books and articles on X are good for beginners?\n  2)! What courses on X and various X toolkits are available?\n  3)! What conferences on X are coming up?\n  4)  What X-related public mailing lists are available?\n  5)  How can I meet other X developers? \n  6)  What related FAQs are available?\n  7)  How do I ask a net-question so as to maximize helpful responses?\n  8)  What publications discussing X are available?\n  9)  What are these common abbreviations/acronyms?\n 10)  What is the ICCCM? (How do I write X-friendly applications?)\n 11)  What is the X Consortium, and how do I join?\n 12)  Just what are OPEN LOOK and Motif?\n 13)  Just what is OpenWindows?\n 14)  Just what is DECWindows?\n 15)  What is PEX?\n 16)  What is \"low-bandwidth X\" (LBX)? XRemote? PPP? SLIP? CSLIP?\n 17)  TOPIC: USING X IN DAY-TO-DAY LIFE\n 18)! What are all these different window managers?\n 19)  Why does my X session exit when I kill my window manager (sic)?\n 20)  Can I save the state of my X session, like toolplaces does?\n 21)  How do I use another window manager with DEC's session manager?\n 22)  How do I change the keyboard auto-repeat rate?\n 23)  How do I remap the keys on my keyboard to produce a string?\n 24)! How do I make a screendump or print my application?\n 25)  How do I make a color PostScript screendump of the X display?\n 26)  How do I make a screendump including the X cursor?\n 27)  How do I convert/view Mac/TIFF/GIF/Sun/PICT/img/FAX images in X?\n 28)  How can I change the titlebar of my xterm window?\n 29)  Where can I find the xterm control sequences?\n 30)- Why does the R3 xterm, et al, fail against the R4 server?\n 31)  How can I use characters above ASCII 127 in xterm ?\n 32)  Why are my xterm menus so small?\n 33)  How can I print the current selection?\n 34)  How does Xt use environment variables in loading resources?\n 35)  How to I have the R4 xdm put a picture behind the log-in window?\n 36)  Why isn't my PATH set when xdm runs my .xsession file?\n 37)  How do I keep my $DISPLAY when I rlogin to another machine?\n 38)  How can I design my own font?\n 39)  Why does adding a font to the server not work (sic)?\n 40)  How do I convert a \".snf\" font back to \".bdf\" font?\n 41)  What is a general method of getting a font in usable format?\n 42)  How do I use DECwindows fonts on my non-DECwindows server?\n 43)  How do I add \".bdf\" fonts to my DECwindows server?\n 44)! How can I set backgroundPixmap in a defaults file? (What is XPM?)\n 45)  Why can't I override translations? Only the first item works.\n 46)  How can I have xclock or oclock show different timezones?\n 47)  I have xmh, but it doesn't work. Where can I get MH?\n 48)  Why am I suddenly unable to connect to my Sun X server?\n 49)  Why don't the R5 PEX demos work on my mono screen?\n 50)! How do I get my Sun Type-[45] keyboard fully supported by Xsun?\n 51)  How do I report bugs in X?\n 52)  Why do I get \"Warning: Widget class version mismatch\"?\n 53)  Where can I find a dictionary server for xwebster?\n 54)  TOPIC: OBTAINING X AND RELATED SOFTWARE AND HARDWARE\n 55)  Is X public-domain software?\n 56)  How compatible are X11R3, R4, and R5? What changes are there?\n 57)! Where can I get X11R5 (source and/or binaries)?\n 58)! Where can I get patches to X11R5?\n 59)  What is the xstuff mail-archive?\n 60)! Where can I get X11R4 (source and binaries)?\n 61)  Where can I get OSF/Motif?\n 62)  Does Motif work with X11R4? X11R5?\n 63)  Where can I get toolkits implementing OPEN LOOK?\n 64)! Where can I get other X sources? (including R5 modifications)\n 65)! Where can I get interesting widgets?\n 66)  Where can I get a good file-selector widget?\n 67)  What widget is appropriate to use as a drawing canvas?\n 68)  What is the current state of the world in X terminals?\n 69)  Where can I get an X server with a touchscreen or lightpen?\n 70)  Where can I get an X server on a PC (DOS or Unix)?\n 71)  Where can I get an X server on a Macintosh running MacOS?\n 72)  Where can I get X for the Amiga?\n 73)  Where can I get a fast X server for a workstation?\n 74)! Where can I get a server for my high-end Sun graphics board?\n 75)  Where can I get an \"X terminal\" server for my low-end Sun 3/50?\n 76)  What terminal emulators other than xterm are available?\n 77)! Where can I get an X-based editor or word-processor?\n 78)  Where can I get an X-based mailer?\n 79)! Where can I get an X-based paint/draw program?\n 80)! Where can I get an X-based plotting program?\n 81)  Where can I get an X-based spreadsheet?\n 82)  Where can I get X-based project-management software?\n 83)  Where can I get an X-based PostScript previewer?\n 84)  Where can I get an X-based GKS package?\n 85)  Where can I get an X-based PEX package?\n 86)  Where can I get an X-based TeX or DVI previewer?\n 87)  Where can I get an X-based troff previewer?\n 88)! Where can I get a WYSIWYG interface builder?\n 89)  Where can I find X tools callable from shell scripts?\n 90)  Where can I get an X-based debugger?\n 91)! How can I \"tee\" an X program identically to several displays?\n 92)  TOPIC: BUILDING THE X DISTRIBUTION [topic needs updating to R5]\n 93)  What's a good source of information on configuring the X build?\n 94)  Why doesn't my Sun with a cg6 work with R5?\n 95)  Why doesn't my Sun with SunOS 4.1 know about _dlsym, etc.?\n 96)  What is this strange problem building X clients on SunOS 4.1.2?\n 97)  Why can't gcc compile X11R4 on my SPARC?\n 98)  What are these I/O errors running X built with gcc?\n 99)  What are these problems compiling X11R4 on the older Sun3?\n100)  What are these problems compiling the X server on SunOS 4.1.1?\n101)  What are these problems using R4 shared libraries on SunOS 4?\n102)  Can OLIT programs run with R5 Xt? (_XtQString undefined)\n103)  How do I get around the SunOS 4.1 security hole?\n104)  How do I get around the frame-buffer security hole?\n105)  TOPIC: BUILDING X PROGRAMS \n106)  What is Imake?\n107)  Where can I get imake?\n108)  I have a program with an Imakefile but no Makefile. What to do?\n109)  Why can't I link to the Xlib shape routines?\n110)  What are these problems with \"_XtInherit not found\" on the Sun?\n111)  Why can't I compile my R3 Xaw contrib programs under the new X?\n112)  TOPIC: PROGRAMMING PROBLEMS AND PUZZLES\n113)  Why doesn't my program get the keystrokes I select for (sic)?\n114)  How do I figure out what window manager is running?\n115)  Is there a skeleton X program available?\n116)  Why does XtGetValues not work for me (sic)?\n117)  Why don't XtConfigureWidget/XtResizeWidget/XtMoveWidget work?\n118)  Why isn't there an XtReparentWidget call like XReparentWindow?\n119)  I'm writing a widget and can't use a float as a resource value.\n120)  Is this a memory leak in the X11R4 XtDestroyWidget()?!\n121)  Are callbacks guaranteed to be called in the order registered?\n122)  Why doesn't XtDestroyWidget() actually destroy the widget?\n123)  How do I query the user synchronously using Xt?\n124)  How do I determine the name of an existing widget?\n125)  Why do I get a BadDrawable error drawing to XtWindow(widget)?\n126)  Why do I get a BadMatch error when calling XGetImage?\n127)  How can my application tell if it is being run under X?\n128)  How do I make a \"busy cursor\" while my application is computing?\n129)  How do I fork without hanging my parent X program?\n130)  Can I make Xt or Xlib calls from a signal handler?\n131)  What are these \"Xlib sequence lost\" errors?\n132)  How can my Xt program handle socket, pipe, or file input?\n133)  How do I simulate a button press/release event for a widget?\n134)  Why doesn't anything appear when I run this simple program?\n135)  What is the difference between a Screen and a screen?\n136)  Can I use C++ with X11? Motif? XView?\n137)  Where can I obtain alternate language bindings to X?\n138)  Can XGetWindowAttributes get a window's background pixel/pixmap?\n139)  How do I create a transparent window?\n140)  Why doesn't GXxor produce mathematically-correct color values?\n141)  Why does every color I allocate show up as black?\n142)  Why can't my program get a standard colormap?\n143)  Why does the pixmap I copy to the screen show up as garbage? \n144)  How do I check whether a window ID is valid?\n145)  Can I have two applications draw to the same window?\n146)  Why can't my program work with tvtwm or swm?\n147)  How do I keep a window from being resized by the user?\n148)  How do I keep a window in the foreground at all times?\n149)  How do I make text and bitmaps blink in X?\n150)+ How do I get a double-click in Xlib?\n151)! How do I render rotated text?\n152)  What is the X Registry? (How do I reserve names?)\n\nIf you have suggestions or corrections for any of these answers or any \nadditional information, please send them directly to uunet!craft!faq;\nthe information will be included in the next revision (or possibly the one \nafter that; thanks for the many suggestions which haven't been incorporated \nyet). \n\nThis version of the FAQ is in the process of having R3 information replaced\nby R5 information.\n\nThis posting is intended to be distributed at approximately the beginning of \neach month. New versions are archived on export.lcs.mit.edu and are also \navailable from mail-server@pit-manager.mit.edu and archive-server@nic.switch.ch\n(send \"help\").\n\nThe information contained herein has been gathered from a variety of sources. \nIn many cases attribution has been lost; if you would like to claim \nresponsibility for a particular item, please let me know. \n\nConventions used below: telephone numbers tend to be Bell-system unless \notherwise noted; prices on items are not included; email addresses are those\nthat work from the US.\n\nX Window System is a trademark of the Massachusetts Institute of Technology. \nOther trademarks are the property of their respective owners.\n\n(Note: a script by George Ferguson (ferguson@cs.rochester.edu) to pretty-print\nthis faq is available from ugle.unit.no:/pub/X11/contrib/xfaq2texinfo.)\n\n----------------------------------------------------------------------\nSubject:   0)  TOPIC: BASIC INFORMATION SOURCES AND DEFINITIONS\n----------------------------------------------------------------------\nSubject:   1)! What books and articles on X are good for beginners?\n\n\tKen Lee of SynOptics (klee@synoptics.com) regularly posts to \ncomp.windows.x and ba.windows.x a bibliography containing cites of all known \nreference books and how-to manuals and also cites of selected technical \narticles on X and X programming; it is ftp-able as \n\texport.lcs.mit.edu:/contrib/Xbibliography and \n\tgatekeeper.dec.com:/pub/X11/contrib/Xbibliography\n\nHere is an unordered set of the reference books and tutorials most useful for\nbeginners; most appear on that list [comments are gathered from a variety of \nplaces and are unattributable]:\n\nAsente, Paul J., and Swick, Ralph R., \"X Window System Toolkit, The Complete\nProgrammer's Guide and Specification\", Digital Press, 1990.  The bible on Xt. A\ntreasury of information, excellent and invaluable.  Distributed by Digital \nPress, ISBN 1-55558-051-3, order number EY-E757E-DP; and by Prentice-Hall, \nISBN 0-13-972191-6. Also available through DEC Direct at 1-800-DIGITAL. \n[The examples are on export.lcs.mit.edu in contrib/ and on gatekeeper.dec.com \n(16.1.0.2) in pub/X11/contrib as asente-swick.examples.tar.Z.  They were also \nposted to comp.sources.x as xt-examples/part0[1-5].]\n\nJones, Oliver, Introduction to the X Window System, Prentice-Hall, 1988, 1989.\nISBN 0-13-499997-5. An excellent introduction to programming with Xlib.  \nWritten with the programmer in mind, this book includes many practical tips \nthat are not found anywhere else. This book is not as broad as the O'Reilly \nXlib tutorial, but Jones is an experienced X programmer and this shows in the \nquality and depth of the material in the book. Originally written for X11R1, \nrecent printings have included corrections and additions and current material.\n \nYoung, Doug. \"The X Window System: Applications and Programming with Xt (Motif \nVersion),\" Prentice Hall, 1989 (ISBN 0-13-497074-8). The excellent tutorial \n\"X Window System Programming and Applications with Xt,\" (ISBN 0-13-972167-3) \nupdated for Motif. [The examples are available on export; the ones from the \nMotif version are in ~ftp/contrib/young.motif.tar.Z.]\n\nYoung, Doug and John Pew, \"The X Window System: Programming and Applications \nwith Xt, OPEN LOOK Edition\" (ISBN 0-13-982992-X). The tutorial rewritten for \nOLIT, with new examples and drag/drop information. [Examples are on export in\nyoug.olit.tar.Z and in you OpenWindows 3 distribution in \n$OPENWINHOME/share/src/olit/olitbook.]\n\nHeller, Dan. \"Motif Programmers Manual\". The 6th Volume in the O'Reilly series\ncovers Motif application programming; it's full of good examples. With Motif\nreference pages. (ISBN 0-9937175-70-6.)  [The examples are available on uunet\nin comp.sources.x and nutshell archives.] [A Motif 1.2 will be out soon.]\n \nScheifler, Robert, and James Gettys, with Jim Flowers and David Rosenthal, \"X \nWindow System: The Complete Reference to Xlib, X Protocol, ICCCM, XLFD, X \nVersion 11, Release 5, Third Edition,\" Digital Press, 1992. \"The Bible\" in its \nlatest revision, an enhanced version of X documentation by the authors of the \nXlib documentation. This is the most complete published description of the X \nprogramming interface and X protocol. It is the primary reference work and is \nnot introductory tutorial documentation; additional tutorial works will usually\nbe needed by most new X programmers.  Digital Press order EY-J802E-DP, ISBN \n0-13-971201-1.\n \t\nNye, Adrian, \"Xlib Programming Manual, Volume 1\" and \"Xlib Reference Manual, \nVolume 2,\" O'Reilly and Associates. A superset of the MIT X documentation; the \nfirst volume is a tutorial with broad coverage of Xlib, and the second \ncontains reference pages for Xlib functions and many useful reference \nappendices.  Both cover X11R5 (and R4). ISBN 0-937175-26-9 (volume 1) and ISBN \n0-937175-27-7 (volume 2). \n\nNye, Adrian, and Tim O'Reilly, \"X Toolkit Programming Manual, Volume 4,\"\nO'Reilly and Associates, 1989. The folks at O'Reilly give their comprehensive\ntreatment to programming with the MIT Intrinsics; R4 versions are now\navailable, as is a Motif 1.1 version (Volume 4M).\n\nO'Reilly, Tim, ed.,  \"X Toolkit Reference Manual, Volume 5,\" O'Reilly and \nAssociates. A professional reference manual for the MIT X11R4 and X11R5 Xt.\n\nMansfield, Niall. \"The X Window System: A User's Guide,\" Addison-Wesley, 1989.\nA tutorial introduction to using X, now upgraded for R4. ISBN 0-201-51341-2.\n\nQuercia, Valerie and Tim O'Reilly. \"X Window System User's Guide,\" O'Reilly and\nAssociates. A tutorial introduction to using X. ISBN 0-937175-36-6.\nAlso available in R4 and Motif flavors.\n\nMui, Linda and Eric Pearce. \"X Window System Administrator's Guide for X11 R4 \nand R5\" [ORA Volume 8]. Help for X users and administrators. \nISBN 0-937175-83-8.\n\n(Prentice-Hall ordering is 201-767-5937. O'Reilly ordering is 800-998-9938.)\n\nIn addition, check the X11R4 and X11R5 core distribution in doc/tutorials for \nsome useful papers and tutorials, particularly the file answers.txt.  \"Late \nNight's Top Ten X11 Questions\" by Dave Lemke (lemke@ncd.com) and Stuart Marks \n(smarks@sun.com) answers other common questions and some of these here in more\ndetail.\n\nNew R5 versions of the O'Reilly references (not yet Volume 6) are now available\n[8/92].  A single volume, \"Programmer's Supplement for R5\" by David Flanagan, \nprovides an overview of new R5 features; it includes man pages for Xlib, Xt, \nand Xmu. [ISBN  0-937175-86-2]\n\n----------------------------------------------------------------------\nSubject:   2)! What courses on X and various X toolkits are available?\n\n\tAdvanced Computing Environments periodically offers at least a two-day\nIntroduction course. Contact Susie Karlson at 415-941-3399 for information.\n\n\tAT&T offers training in Xlib and in the Xol set. Contact AT&T Corporate\nEducation & Training for more info; 1-800-TRAINER in the USA.\n\n\tBIM Educational Services offers training in X administration and in\nprogramming with Xt/Motif and Open Windows; the courses are given near \nBrussels. Info: edu@sunbim.be, voice +32-(0)2-7595925, fax +32-(0)2-7599209.\n\n\tCommunica Software Consultants offers three-day hands-on courses in X \ndesigned for the X Window System developer and programmer. Contact Chris \nClarkson, telephone 61 8 3732523, e-mail communica@communica.oz.au. [12/92]\n\n\tCora Computer Technologies (516-485-7343) offers several courses.\n\n\tGHCT offers a one week lecture/lab course for programmmers designed by\nDouglas Young based on his book \"The X Window System: Programming and Applica-\ntions with Xt, OSF/Motif Edition\". Information: Brian Stell (415-966-8805 or\nghct!brian@sgi.com).\n\n\tGHG offers a range of courses on X and Motif. Information: 713-488-8806\nor training-info@ghg.hou.tx.us.\n\n\tHands On Learning has live training and self-paced video workshops on \ntopics such as using and/or programming X, Xlib, Xm, Xt, and widget-writing. \nInformation: 617-272-0088, 800-248-9133.\n\n\tHewlett-Packard (1-800-HPCLASS; or contact your local HP center) offers\na 2-day \"Introduction to X\", a 5-day Xlib course, a 1-day Xt and Motif 1.1 \nseminar, and a 5-day Motif lab course.\n\n\tIntegrated Computer Solutions, Inc., offers several multi-day, hands-on\ncourses on X, Xt, and the Xaw and Motif widget sets, in particular. Information\nis available at 617-621-0060 and info@ics.com.\n\n\tIntelligent Visual Computing teaches several lab courses on-site for\nMotif and XView. IVC is at 1-800-776-2810 or +1 919-481-1353 or at \ninfo@ivc.com.\n\n\tIris Computing Laboratories offers five-day Xlib and Xt courses.\nInfo: +1-505-988-2670 or info@spectro.com.\n\n\tIXI Limited (+44 223 462 131) offers regular X training courses for \nboth programmers and non-technical managers. See also: Unipalm, below.\n\n\tLearning Tree International offers a four-day course in X Window System\napplications development, including Xlib and some information on Motif.  For \nmore info call 800-824-9155 (213-417-3484); 613-748-7741 in Canada. Courses are\noffered in major North American cities; also in London, Stockholm, Tokyo, and \nelsewhere.\n\n\tLurnix offers 4-day \"type-along courses\" on Xt; the course is being\nported from Xaw to Xm. Information is available at 800-433-9337 (in CA: -9338).\n\n\tMitch Trachtenberg and Associates offers regular 5-day lab courses on\nprogramming with OSF/Motif, usually in but not limited to Cambridge, MA. \nInfo: +1 617-225-0440, info@mta.com.\n\n\tNon Standard Logics (+33 (1) 43 36 77 50; requests@nsl.fr) offers\ncourses on programming with Xlib, Motif, and creating Motif widgets.\n\n\tOSF Educational Services (617-621-8778) offers one-day seminars and \none-week Motif lab courses.\n\n\tJohn A. Pew offers a 5-day course on OLIT, possibly based on his book\non that subject; 408-224-5739.\n\n\tSCO (+44 923 816344, scol-info@sco.COM) offers training for its Open \nDesktop (Motif) environment in the UK and Europe.\n\n\tSoftware Pundits (617-270-0639) offers a range of courses.\n\n\tTechnology Exchange (617-944-3700) offers a 4-day Xlib/Xt/Motif course.\n\n\tTeleSoft is now offering a 1-day plus 3-day seminar on X and Motif.\nInformation: Bruce Sherman (619-457-2700, bds@telesoft.com).\n\n\tUnipalm XTech offers OSF's 5-day Motif course and a 1-day overview on \nX.  Information: Unipalm Training at +44 952  211797, xtech@unipalm.co.uk.\n\n\tThe University of Edinburgh is developing a series of courses on X and\nrelated topics primarily for non-profit-making training in academia but also \nfor commercial use. Information: Cliff Booth, Unipalm Ltd, phone +44 223 \n420002, fax +44 223 426868.\n\n\tVarious other vendors are also beginning to offer X training, usually \nspecific to a proprietary toolkit or to Xt and a proprietary widget set: DEC \nis offering Xlib courses; Sun offers an XView course.\n\n\tVarious universities are offering short X courses or overviews: UCLA,\nDartmouth, University of Lowell, University of Canberra (within Australia: \n062-522422) ... \n\tUC Berkeley Extension will have a one week X/Motif class for \nprogrammers in San Francisco starting on July 29.  The class will have a \nhands-on lab. For more information contact UCBX at 415 323 8141.\n\n\tAmong the best places to find courses are at the various Unix \nconferences -- Uniforum, Usenix, Unix Expo, Xhibition, the MIT X Technical\nConference, the ACM tutorial weeks, &c.\n\n\tIn addition, the X Consortium posts approximately quarterly a list of\nunendorsed speakers and consultants who can provide talks on a variety of X \ntopics.\n\n----------------------------------------------------------------------\nSubject:   3)! What conferences on X are coming up?\n\n\tThe Xhibition 93 X trade show and conference, with tutorials, panels, \npresentations, and vendor exhibits, will be held at the San Jose Convention\nCenter June 7-11, 1993.  Information: +1 617 621 0060, xhibit@ics.com.\n\n\tThe Tcl/Tk Workshop will be held at UCal Berkeley June 10-11, 1993.\nInformation: tcl93@cs.berkeley.edu.\n\n\tThe 1993 Andrew Technical Conference and Consortium Annual Meeting will\nbe held June 24-25, 1993, in Pittsburgh. Information: \nWilfred.Hansen@cs.cmu.EDU.\n\n\tThe European X User Group holds an annual conference which typically \nincludes includes paper presentations and a vendor exhibit. EXUG'93, \"X in the\nReal World and Multimedia\" will be held 9/16-9/17 at the Imperial College of\nScience and Technology, London. Information: exug@demon.co.uk, niall@uit.co.uk \nor p.whitehead@cc.ic.ac.uk, +44 (0) 223 426534, fax +44 (0) 223 420251.\n\n\tThe Motif show is held in Washington to coincide with the FedUnix and \nthe Federal Open Systems Conference (usually December). Information: \nmotif@fedunix.org or paller@fedunix.org, 301-229-1062, fax 301-229-1063.\n\n\tThe MIT X Technical Conference is typically held in January in Boston.\nRegistration information is available from registration@expo.lcs.mit.edu.\n\n\tThe XWorld Conference and Exhibition includes tutorials, panels, \npresentations and vendor exhibits. It is typically held in March in New York \nCity.  Information: SIGS Publication Group at 212-274-9135.\n\n\n\tOther trade shows -- UnixExpo, Uniforum, Siggraph -- show an increasing\npresence of X, including tutorials and exhibits.\n\n----------------------------------------------------------------------\nSubject:   4)  What X-related public mailing lists are available?\n\n\tThe xpert mailing list is the general, public mailing list on X\nmaintained by the X Consortium. The mailings are gatewayed, so xpert is almost \nidentical to the comp.windows.x Usenet newsgroup. \n\n\t***\tIf you get comp.windows.x, you don't need to \t***\n\t***\tbe added to the xpert mailing list. \t\t***\n\n\tOtherwise, you can join the list to receive X information \nelectronically. It is best to find a local distribution; perhaps someone within\nyour company is already receiving the mailing. As a last resort, send mail to \nxpert-request@expo.lcs.mit.edu with a valid return electronic address. \n\n\tThe xannounce mailing list carries major X announcements, such as new\nreleases (including public patches from MIT), public reviews, adoption of \nstandards by the MIT X Consortium, and conference announcements.  It does NOT \ncarry advertisements, source code, patches, or questions.  If you already \nreceive the Usenet news group comp.windows.x.announce or the xpert mailing \nlist, you don't need to be added to the xannounce mailing list.  Otherwise, to \nsubscribe, send a request to xannounce-request@expo.lcs.mit.edu. Note: Only \nredistribution addresses will be accepted for this list -- i.e. no personal \naddresses. If you wish to receive xannounce yourself, please contact your mail \nadministrator to set up a local redistribution list and to put you on it.  \n\tcomp.windows.x.apps is not gatewayed to a mailing list.\n\n\tIn addition, the X Consortium sponsors these public lists:\n\t\tbug-clx         CLX bug reports and discussions\n\t\tx-ada           X and ada\n\t\tx11-3d          people interested in X and 3d graphics\n\t\tximage          people interested in image processing and X\n\t\txvideo          discussion of video extensions for X\n\tTo subscribe to one of these lists, assuming no-one in your \norganization already receives it, send mail to <list>-request@expo.lcs.mit.edu\nwith the Subject line including the name of the LIST in caps and the request\n\"addition request\".  In the body of the message be sure to give an address for \nyour local distribution which is accessible from MIT (eddie.mit.edu).\n\n\tA mailing list for topics related to OPEN LOOK is sponsored by Greg\nPasquariello of Unify corporation; send to openlook-request@unify.com (or\nopenlook-request%unify@uunet.uu.net) for information. \n\tA mailing list for bugs in the publicly-available version of XView\nsource, in particular, is sponsored by Sun; send for information to \nxviewbug-trackers-request@sun.com. \n\tA mailing list for topics related to Motif is sponsored by Kee Hinckley\nof Alfalfa Software, Inc.; send to motif-request@alfalfa.com for information. \n(This group is gatewayed to comp.windows.x.motif.)\n\tA mailing list for topics related to the XPM pixmap-format is sponsored\nby Arnaud Le Hors of Group Bull; send to xpm-talk-request@sa.inria.fr for\ninformation. [1/91]\n\tA mailing list discussing InterViews can be subscribed to by sending to\ninterviews-request@interviews.stanford.edu.\n\tA mailing list (amiga-x11@nic.funet.fi) for topics related to the port \nof X11 to the Amiga can be subscribed by sending to mailserver@nic.funet.fi a \nmessage containing\n\t\tSubject: Adding myself to AMIGA-X11\n\t\tSUBS AMIGA-X11 Your Real Name\n\tA mailing list discussing ParcPlace's (formerly Solbourne's) OI (Object\nInterface) toolkit can be subscribed to at oi-users-requests@bbn.com.\n\tA mailing list discussing multi-threaded Xlib can be subscribed to at\nmt-xlib-request@xsoft.xerox.com.\n\n----------------------------------------------------------------------\nSubject:   5)  How can I meet other X developers? \n\n\tO'Reilly and Associates sponsors a mailing list for the use of X user \ngroup organizers; subscribe by sending to listserv@ora.com the message \n\"subscribe xgroups your@internet.address\".\n\n\tLocal area X user's groups are listed in Issue 4 of O'Reilly's X \nResource journal; a list may also be available from xug@ics.com.\n\n\tThe French X User Group is called AFUX and is based in Sophia Antipolis\nby CERICS. Information can be obtained from Miss Vasseur or Miss Forest; BP \n148; 157, rue Albert Einstein; 06561 Valbonne Cedex; Phone: +33 93 95 45 00 / \n45 01; Fax: +33 93 95 48 57.  [10/90]\n\n\tThe European X User Group was formed in 1989 to represent X users in \nEurope.  It holds technical conferences at regular intervals. The EXUG also \npublishes a regular newsletter which is distributed free of charge to members. \nThe EXUG also runs a email mailing list for members which is frequently used to\naddress issues of European interest in X. The EXUG can be contacted at\nP.Whitehead@cc.ic.ac.uk, +44 (071) 225 8754, fax +44 (071) 823 9497.\n\n\tGXUGiV is the German X User's Group in Vorbereitung (\"in preparation\")\nbeing formed for X programmers and users; it is associated with the EXUG. All\ninterested should contact Olaf Heimburger (+49 30 7 79 54 64; and at\nmcvax!unido!tub!olaf).\n\n----------------------------------------------------------------------\nSubject:   6)  What related FAQs are available?\n\n\tLiam R. E. Quin (lee@sq.sq.com) posts a FAQ on Open Look to \ncomp.windows.open-look.  \n\tJan Newmarch (jan@pandonia.canberra.edu.au) posts a FAQ on Motif to \ncomp.windows.x.motif.\n\tPeter Ware (ware@cis.ohio-state.edu) posts a FAQ for\ncomp.windows.x.intrinsics; it is on export in contrib/FAQ-Xt.\n\tArt Mulder (art@cs.ualberta.ca) posts to comp.windows.x a FAQ on \nmaximizing the performance of X.\n\tSteve Kotsopoulos (steve@ecf.toronto.edu) posts to comp.windows.x a FAQ\nabout using X on Intel-based Unix systems.\n\tThe FAQ in alt.binaries.pictures contains information on viewing images\nwith X and on massaging image formats.\n\tThe FAQ in comp.mail.mh (gatewayed to MH-users@ics.uci.edu) includes a \nsection on xmh.\n\tThe FAQ in comp.lang.lisp contains information on several interface\ntools and toolkits.\n\tThere exists a PEX/PHiGS FAQ.\n\n----------------------------------------------------------------------\nSubject:   7)  How do I ask a net-question so as to maximize helpful responses?\n\n\tWhen asking for help on the net or X mailing lists, be sure to include \nall information about your setup and what you are doing.  The more specific you\nare, the more likely someone will spot an error in what you are doing.  Without\nall the details, people who want to help you often have to guess -- if they are\nable to respond at all.\n\n\tAlways mention what version of X you are using and where you got it \nfrom. If your server came from a different source as the rest of your X system,\ngive details of that, too.  Give the machine type, operating system, and O/S \nversion for both the client and server machine.  It may also be appropriate to \nmention the window manager, compiler, and display hardware type you are using.\n\n\tThen tell exactly what you are doing, exactly what happens, and what\nyou expected/wanted to happen.  If it is a command that fails, include the \nexact transcript of your session in the message.  If a program you wrote \ndoesn't work the way you expect, include as little of the source necessary \n(just a small test case, please!) for readers to reproduce the problem.\n\n----------------------------------------------------------------------\nSubject:   8)  What publications discussing X are available?\n\n\tThe trade magazines (Unix World, Unix Review, Computer Language, etc.)\nare publishing more articles on X.  Two X-specific publications include:\n\n\t- O'Reilly and Associates publishes \"The X Resource: A Practical \nJournal of the X Window System\" (103 Morris St. #A, Sebastapol, CA 95472).  \nEditorial information: Adrian Nye, adrian@ora.com.\n\n\t- The X Journal is started bi-monthly publication September 1991 on a \nvariety of X topics. Subscription information: The X Journal, Subscriber \nServices, Dept XXX, P.O. Box 3000, Denville, NJ 07834, USA. Editorial \ninformation: editors%topgun@uunet.uu.net.\n\n----------------------------------------------------------------------\nSubject:   9)  What are these common abbreviations/acronyms?\n\n\tXt: The X Toolkit Intrinsics is a library layered on Xlib which \nprovides the functionality from which the widget sets are built. An \"Xt-based\" \nprogram is an application which uses one of those widget sets and which uses \nIntrinsics mechanisms to manipulate the widgets.\n\tXmu: The Xmu library is a collection of Miscellaneous Utility functions\nuseful in building various applications and widgets.\n\tXaw: The Athena Widget Set is the MIT-implemented sample widget set\ndistributed with X11 source.\n\tXm: The OSF/Motif widget set from the Open Software Foundation; binary\nkits are available from many hardware vendors.\n\tXhp (Xw): The Hewlett-Packard Widget Set was originally based on R2++, \nbut several sets of patches exist which bring it up to R3, as it is distributed\non the X11R4 tapes. Supplemental patches are available to use it with R4/R5.\n\tCLX: The Common Lisp X Interface is a Common Lisp equivalent to Xlib.\n\tXDMCP: The X Display Manager Protocol provides a uniform mechanism for \na display such as an X terminal to request login service from a remote host.\n\tXLFD: The X Logical Font Description Conventions describes a standard\nlogical font description and conventions to be used by clients so that they\ncan query and access those resources.\n\tRTFM: Common expert-speak meaning \"please locate and consult the \nrelevant documentation -- Read the Forgotten Manual\".\n\tUTSL: A common expression meaning \"take advantage of the fact that you \naren't limited by a binary license -- Use The Source, Luke\".\n\tAPI: Application-Programmer Interface. The function calls, etc., in\na programming library.\n\tBDF: Bitmap Distribution Format; a human-readable format for uncompiled\nX fonts.\n\tGUI: graphical user interface.\n\tUIL: the User Interface Language, part of OSF/Motif which lets \nprogrammers specify a widget hierarchy in a simple \"outline\" form\n\tWCL: the Widget Creation Language, a package which extends the \nunderstanding of the Xt resource format such that a widget hierarchy and \nactions on the widgets can be specified through the resources file\n\tGIL: the file format put out by Sun's OpenWindows Developers Guide 3.0\n\tUIMS: User Interface Management System\n\n----------------------------------------------------------------------\nSubject:  10)  What is the ICCCM? (How do I write X-friendly applications?)\n\n\tThe Inter-Client Communication Conventions Manual is one of the \nofficial X Consortium standards documents that define the X environment. It \ndescribes the conventions that clients must observe to coexist peacefully with \nother clients sharing the same server.  If you are writing X clients, you need \nto read and understand the ICCCM,  in particular the sections discussing the \nselection mechanism and the interaction between your client and the window \nmanager.  Get it either:\n\t- as part of the R4 distribution from MIT\n\t- in the later editions of the Scheifler/Gettys \"X Window System\" book\n\t- as an appendix in the new version of O'Reilly's Volume 0, \"X Protocol\nReference Manual.\" A version in old copies of their Volume 1 is obsolete.\n\tThe version in the Digital Press book is much more readable, thanks to \nthe efforts of Digital Press's editors to improve the English and the \npresentation.\n\n[from David Rosenthal, 10/90]\n\n\t- the ICCCM was updated for R5; updates are published in O'Reilly's\n\"Programmer's Supplement for Release 5\". The complete document is on the R5\ntapes.\n\n\tAlternate definition: the ICCCM is generally the M in \"RTFM\" and is\nthe most-important of the least-read X documents.\n\n----------------------------------------------------------------------\nSubject:  11)  What is the X Consortium, and how do I join?\n\n\tThe MIT X Consortium was formed in January of 1988 to further the\ndevelopment of the X Window System and has as its major goal the promotion of \ncooperation within the computer industry in the creation of standard software \ninterfaces at all layers in the X Window System environment.\n\tMIT's role is to provide the vendor-neutral architectural and \nadministrative leadership required to make this work. Membership in the \nConsortium open to any organization.  There are two categories of membership, \nMember (for large organizations) and Affiliate (for smaller organizations).\n\tMost of the Consortium's activities take place via electronic mail, \nwith meetings when required.  As designs and specifications take shape,\ninterest groups are formed from experts in the participating organizations.  \nTypically a small multi-organization architecture team leads the design, with \nothers acting as close observers and reviewers.  Once a complete specification\nis produced, it may be submitted for formal technical review by the Consortium\nas a proposed standard.  The standards process typically includes public \nreview (outside the Consortium) and a demonstration of proof of concept.\n\tYour involvement in the public review process or as a Member or \nAffiliate of the Consortium is welcomed.\n\tWrite to: Bob Scheifler, MIT X Consortium, Laboratory for Computer \nScience, 545 Technology Square, Cambridge, MA 02139.\n\n[For complete information see the XCONSORTIUM man page from the X11R4\ndistribution, from which this information is adapted.] [2/90]\n\n----------------------------------------------------------------------\nSubject:  12)  Just what are OPEN LOOK and Motif?\n\n\tOPEN LOOK and Motif are two graphical user interfaces (GUIs). OPEN LOOK\nwas developed by Sun with help from AT&T and many industry reviewers; Motif was\ndeveloped by the Open Software Foundation (OSF) with input from many OSF \nmembers. \n\n\tOPEN LOOK is primarily a user-interface specification and style-guide; \nthere are several toolkits which can be used to produce OPEN LOOK applications.\nMotif includes an API specification; the only sanctioned Motif toolkit is the \none from OSF. However, there are other toolkits which can be used to produce \nprograms which look and behave like OSF/Motif; one of these, ParcPlace's \n(formerly Solbourne's) OI, is a \"virtual toolkit\" which provides objects in the\nstyle of OPEN LOOK and Motif, at the user's choice.\n\n\tOPEN LOOK GUI is also the name of a product from AT&T, comprising \ntheir OPEN LOOK Intrinsics Toolkit and a variety of applications.\n\n[Thanks to Ian Darwin, ian@sq.com, 5/91]\n\n----------------------------------------------------------------------\nSubject:  13)  Just what is OpenWindows?\n\n\tOpen Windows (3.0) is a Sun product that encompasses: a window system \nthat combines a NeWS and X11-compliant server (X/NeWS); a user-interface \nspecification (OPEN LOOK) and a series of toolkits that implement it (including\nthe SunView-like XView and the Xt-based OLIT); Xlib and Xt implementations; and\na number of utilities (olwm window manager, filemgr, shelltool, etc.).\n\n[thanks to Frank Greco (fgreco@govt.shearson.COM), 8/90; 4/92] \n\n----------------------------------------------------------------------\nSubject:  14)  Just what is DECWindows?\n\n\tDECWindows is a DEC product that encompasses: an X11 server; the XUI \ntoolkit, including the Dwt widget set and UIL; Xlib and Xt implementations; a \nsession manager; and a number of utilities (dxwm window manager, dxcalendar, \ndxpsview, etc.).\n\n(At some point Motif flavors of the toolkit and applications will be shipped.)\n[8/90] \n\n----------------------------------------------------------------------\nSubject:  15)  What is PEX?\n\n\tPEX is the \"PHiGS Extension to X\".\n\tPHiGS stands for \"Programmer's Hierarchical Interactive Graphics \nSystem\" and is essentially a library of functions that simplifies the creation \nand manipulation of 3D graphics. Many platforms are capable of performing in \nhardware the computations involved in rendering 3D objects; the extension \nallows the client (PHiGS in this case) to take advantage of the specialized \nhardware for 3D graphics.\n\tSun Microsystems is currently contracted to develop a freely \nredistributable (copyright similar to the current X copyright) sample\nimplementation.  Source and documentation are available in the R5 release.\nSeveral vendors are currently selling independently-developed PEX servers for \ntheir workstations and X terminals.\n\n[last modified 10/91]\n\n----------------------------------------------------------------------\nSubject:  16)  What is \"low-bandwidth X\" (LBX)? XRemote? PPP? SLIP? CSLIP?\n\nThere are several options for using X over serial lines:\n\nSLIP - Serial Line IP; this is both a mechanism and a protocol for sending IP\npackets over point-to-point serial links. It has been around for several years,\nand implementations are available for many of the major TCP/IP implementations.\nMost X Terminal vendors supply this as a checkoff item, although nobody really \never uses it since it is horribly slow.  The TCP/IP headers add 40 bytes per \npacket and the TCP/IP encoding of the X protocol is rather verbose (rightfully \nso; it is optimized for packing and unpacking over high-speed links). \n\nCSLIP - Compressed header SLIP; this is a variant of SLIP that compresses the \n40 bytes of TCP/IP headers down to about 5 or 6 bytes.  It still doesn't do \nanything about reencoding the X protocol.  Modems that do compression can help,\nbut they increase packet latency (it takes time to dribble the uncompressed \ndata through typical serial interfaces, plus the compression assembly time).\n\nPPP - Point-to-Point Protocol; this is an emerging standard for point-to-point\nlinks over serial lines that has a more complete set of option negotiation than\nSLIP.  A growing number of people see the combination of PPP for the serial \nline management and CSLIP for the header compression as becoming common for \nrunning normal TCP/IP protocols over serial lines.  Running raw X over the wire\nstill needs compression somewhere to make it usable.\n\nXRemote - this is the name of both a protocol and set of products originally\ndeveloped by NCD for squeezing the X protocol over serial lines.  In addition \nto using a low level transport mechanism similar to PPP/CSLIP, XRemote removes \nredundancies in the X protocol by sending deltas against previous packets and \nusing LZW to compress the entire data stream.  This work is done by either a \npseudo-X server or \"proxy\" running on the host or in a terminal server.  There \nare several advantages to doing compression outside the modem:\n   (1)\tYou don't *have* to have compressing modems in there if you wouldn't \n\totherwise be using them (e.g. if you were going to be directly \n\tconnected), and\n   (2)\tIt reduces the I/O overhead by cutting down on the number of bytes that\n\thave to cross the serial interface, and\n   (3)\tIn addition to the effects of #2, it reduces the latency in delivering \n\tpackets by not requiring the modem to buffer up the data waiting for \n\tblocks to compress.\n\nLBX - Low Bandwidth X; this is an X Consortium project that is working on a\nstandard for this area.  It is being chaired by NCD and Xerox and is using \nNCD's XRemote protocol as a stepping stone in developing the new protocol.  LBX\nwill go beyond XRemote by adding proxy caching of commonly-used information \n(e.g. connection setup data, large window properties, font metrics, keymaps, \netc.) and a more efficient encoding of the X protocol. The hope is to have a \nStandard ready for public review in the first half of next year and a sample \nimplementation available in R6.\n\nAdditional technical information about how XRemote works and a few notes on how\nLBX might be different are available via anonymous ftp from export.lcs.mit.edu\nin contrib/ in the following files:\n        XRemote-slides.ps               slides describing XRemote\n        XRemote-LBX-diffs.ps            more slides describing some of LBX\n\n[information provided by Jim Fulton, jim@ncd.com; 7/92]\n\n\tThere is also a set of slides on export from Jim Fulton's talk at\nthe 7th MIT X Technical Conference.\n\n----------------------------------------------------------------------\nSubject:  17)  TOPIC: USING X IN DAY-TO-DAY LIFE\n----------------------------------------------------------------------\nSubject:  18)! What are all these different window managers?\n\n\tThe window manager in X is just another client -- it is not part of the\nX window system, although it enjoys special privileges -- and so there is\nno single window manager; instead, there are many which support different ways \nfor the user to interact with windows and different styles of window layout,\ndecoration, and keyboard and colormap focus. In approximate chronological order\n(generally, the more recent ones are more conformant with the ICCCM):\n\n\twm: this simple title-bar window manager was phased out in R2 or R3\n\tuwm: the Universal Window Manager is still popular for its speed, \nalthough it is very outdated. Moved to contrib/ on the R4 tape.\n\ttwm (old): Tom's Window Manager was among the first non-MIT window \nmanagers and offered the user a great deal of customization options in a\nre-parenting window manager. \n\tawm: the Ardent Window Manager remains a hotbed for hackers and offers\nsome features (dynamic menus) not found on more current window managers\n\tcwm: cwm is part of the Andrew system. \n\trtl: Siemen's window manager tiles windows so that they don't overlap\nand resizes the window with the focus to its preferred size.\n\tdxwm: Digital's dxwm is part of the DECwindows offering\n\thpwm: HP's window manager offers a 3D look; it is a precursor of mwm\n\tmwm: the Motif window manager is part of the OSF/Motif toolkit\n\ttekwm: Tektronix's window manager offering \n\tolwm (Sun): olwm implements the OPEN LOOK GUI and some of the Style\nGuide functionality\n\tolwm (AT&T): ditto\n\tgwm: Bull's Generic Window Manager emulates others with a built-in\nLisp interpreter. Version 1.7h (10/91) is on the R5 contrib tape; 1.7n is on\navahi.inria.fr and export.lcs.mit.edu. [3/93]\n\tm_swm: the Sigma window manager is on the R4 tape\n\tpswm: Sun's PostScript-based pswm is part of the OpenWindows release\n\tswm: Solbourne's swm is based on the OI toolkit and offers multiple\nGUI support and also a panned virtual window; configuration information comes\nfrom the resources file\n\ttwm (new): MIT's new Tab Window Manager from the R4 tape is a reworked\ntwm and is the basis for several derivatives, including the one on the R5 tape\n\tvtwm: vtwm offers some of the virtual-desktop features of swm, with a\nsingle-root window implementation; it is based on the R4 twm and is available\non archive servers. A new version, vtwm-5.0, is based on R5.9 and is available \nfrom export. [3/92]\n\ttvtwm: Tom's Virtual Tab Window Manager is also based on the R4 twm\nand provides a virtual desktop modeled on the virtual-root window of swm. It is\navailable on archive servers\n\tolvwm: the vtwm-style virtual-desktop added to Sun's olwm. It is \navailable on archive servers; version 3.3 [1/93] is on export.\n\tmvwm: the vtwm-style virtual-desktop added to OSF's mwm. A beta version\nis floating around (most recently from suresh@unipalm.co.uk) but requires a \nsource license to OSF/Motif 1.1.3 [3/92].\n\tNCDwm: the window manager local to NCD terminals offers an mwm look \n\tXDSwm: the window manager local to Visual Technology's terminals \n\tctwm: Claude Lecommandeur's (lecom@sic.epfl.ch) modification of the R5 \ntwm offers 32 virtual screens in the fashion of HP vuewm; source is on export.\nVersion 2.2.2 [2/93] also offers the window overview used in vtwm and tvtwm.\n\tvuewm: HP's MWM-based window manager offers configurable workspaces.\n\t4Dwm: SGI's enhanced MWM\n\tpiewm: this version of tvtwm offers pie menus\n\n----------------------------------------------------------------------\nSubject:  19)  Why does my X session exit when I kill my window manager (sic)?\n\n\tIt needn't.  What is probably happening is that you are running your \nwindow manager as the last job in your .xsession or .xinitrc file; your X \nsession runs only as long as the last job is running, and so killing your \nwindow manager is equivalent to logging out. Instead, run the window manager in\nthe background, and as the last job instead invoke something safe like:\n\t\texec xterm -name Login -rv -iconic\nor any special client of your devising which exits on some user action.\nYour X session will continue until you explicitly logout of this window, \nwhether or not you kill or restart your window manager.\n\n----------------------------------------------------------------------\nSubject:  20)  Can I save the state of my X session, like toolplaces does?\n\n\tAlthough no known window manager directly supports such a feature --\nwhich may be equivalent to writing out a .xinitrc or .xsession file naming the\ngeometry and WM_COMMAND of each application (but olvwm may have something \nclose) -- there is a contributed application which does much of what you are \nlooking for, although it is not as complete as the SunView program toolplaces. \nLook for the application \"xplaces\" on an archive-server near you. There are \nseveral versions of this program floating around; look for a recent vintage.\n[10/90]\n\tSome new pseudo session-managers such as HP's vuewm provide for the \nsaving of sessions including information on the geometry of currently-running\napplications and the resource database. \n[Bjxrn Stabell (bjoerns@staff.cs.uit.no); 3/93.]\n \n----------------------------------------------------------------------\nSubject:  21)  How do I use another window manager with DEC's session manager?\n\n\tDEC's session manager will start dxwm up by default. To override this, \nadd to your .Xdefaults file something like this line, naming the full pathname:\n\tsm.windowManagerName:   /wherever/usr/bin/X11/your_favorite_wm\n\n----------------------------------------------------------------------\nSubject:  22)  How do I change the keyboard auto-repeat rate?\n\n\tYou can turn auto-repeat on or off by using \"xset r on|off\". The X\nprotocol, however, doesn't provide for varying the auto-repeat rate, which is\na capability not supported by all systems.\n\tSome servers running on systems that support this, however, may provide\ncommand-line flags to set the rate at start-up time. If you have control over \nserver start-up (see the man pages for xinit and xdm), you can invoke the \nserver with the chosen settings; for example, you can start the Xsun server \nfrom MIT with the options \"-ar1 350 -ar2 30\" to reduce the sensitivity of the \nkeyboard.\n\n----------------------------------------------------------------------\nSubject:  23)  How do I remap the keys on my keyboard to produce a string?\n\n\tThere is no method of arranging for a particular string to be\nproduced when you press a particular key. The xmodmap client, which is useful \nfor moving your CTRL and ESC keys to useful places, just rearranges keys and \ndoes not do \"macro expansion.\"\n\tSome (few) clients, including xterm and several X-based editors, \naccept a translation resource such as:\n\txterm*VT100.Translations: #override \\\n\t\t<Key>F1: string(\"setenv DISPLAY unix:0\")\nwhich permits the shorthand F1 to be pressed to reset the display locally\nwithin an xterm; it takes effect for new xterm clients. To include control\ncharacters in the string, use \\nnn, where nnn is the octal encoding of the\ncontrol character you want to include.\n\tWindow managers, which could provide this facility, do not yet; nor\nhas a special \"remapper\" client been made available.\n\n----------------------------------------------------------------------\n\nDavid B. Lewis \t\t\t\t\tfaq%craft@uunet.uu.net\n\n\t\t\"Just the FAQs, ma'am.\" -- Joe Friday \n-- \nDavid B. Lewis\t\tTemporarily at but not speaking for Visual, Inc.\nday: dbl@visual.com\tevening: david%craft@uunet.uu.net\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4610, "properties": {"category": "comp.windows.x", "text": "From: mahan@TGV.COM (Patrick L. Mahan)\nSubject: RE: need shading program example in X\nOrganization: The Internet\nLines: 20\nTo: xpert@expo.lcs.mit.edu, howardy@freud.nia.nih.gov\n\n#\n#Do anyone know about any shading program based on Xlib in the public domain?\n#I need an example about how to allocate correct colormaps for the program.\n#\n#Appreciate the help.\n#\n\nI don't know if this might help, but I've just started playing with a program\ncalled POVRay (Persistance of Vision Raytracer) that also displays its output\nvia X Windows.  It does a fairly good job of allocating the colormap on my\nPsuedo-Color 8-plane display.  I got the source from from a site in Canda.\nThe person I retrieved them from was David Buck (dbuck@ccs.carleton.ca).\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4611, "properties": {"category": "alt.atheism", "text": "From: perry@dsinc.com (Jim Perry)\nSubject: Re: The Inimitable Rushdie\nOrganization: Decision Support Inc.\nLines: 80\nNNTP-Posting-Host: dsi.dsinc.com\n\n(References: deleted to move this to a new thread)\n\nIn article <114133@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n>In article <1phkf7INN86p@dsi.dsinc.com> perry@dsinc.com (Jim Perry) writes:\n\n>>}Rushdie is, however, as I understand, a muslim.\n>>}The fact that he's a British citizen does not preclude his being muslim.\n>\n>>Rushdie was an atheist (to use local terminology, not to put words in\n>>his mouth) at the time of writing TSV and at the time of the fatwa in\n>>February 1989.[...]\n>\n>Well, if he was born muslim (I am fairly certain he was) then he _is_ \n>muslim until he explicitly renounces Islam. So far as I know he has never\n>explicitly renounced Islam, though he may have been in extreme doubt\n>about the existence of God. Being muslim is a legal as well as\n>intellectual issue, according to Islam.\n\n\"To put it as simply as possible: *I am not a Muslim*.[...] I do not\n accept the charge of apostacy, because I have never in my adult life\n affirmed any belief, and what one has not affirmed one can not be\n said to have apostasized from.  The Islam I know states clearly that\n 'there can be no coercion in matters of religion'.  The many Muslims\n I respect would be horrified by the idea that they belong to their\n faith *purely by virtue of birth*, and that a person who freely chose\n not to be a Muslim could therefore be put to death.\"\n    \t    \t    \t    \tSalman Rushdie, \"In Good Faith\", 1990\n\n\"God, Satan, Paradise, and Hell all vanished one day in my fifteenth\n year, when I quite abruptly lost my faith.  [...]and afterwards, to\n prove my new-found atheism, I bought myself a rather tasteless ham\n sandwich, and so partook for the first time of the forbidden flesh of\n the swine.  No thunderbolt arrived to strike me down. [...] From that\n day to this I have thought of myself as a wholly seculat person.\"\n    \t    \t    \t    \tSalman Rushdie, \"In God We Trust\", 1985\n \n>>[I] think the Rushdie affair has discredited Islam more in my eyes than\n>>Khomeini -- I know there are fanatics and fringe elements in all\n>>religions, but even apparently \"moderate\" Muslims have participated or\n>>refused to distance themselves from the witch-hunt against Rushdie.\n>\n>Yes, I think this is true, but there Khomenei's motivations are quite\n>irrelevant to the issue. The fact of the matter is that Rushdie made\n>false statements (fiction, I know, but where is the line between fact\n>and fiction?) about the life of Mohammad. \n\nOnly a functional illiterate with absolutely no conception of the\nnature of the novel could think such a thing.  I'll accept it\n(reluctantly) from mobs in Pakistan, but not from you.  What is\npresented in the fictional dream of a demented character cannot by the\nwildest stretch of the imagination be considered a reflection on the\nactual Mohammad.  What's worse, the novel doesn't present the\nMahound/Mohammed character in any worse light than secular histories\nof Islam; in particular, there is no \"lewd\" misrepresentation of his\nlife or that of his wives.\n\n>That is why\n>few people rush to his defense -- he's considered an absolute fool for \n>his writings in _The Satanic Verses_. \n\nDon't hold back; he's considered an apostate and a blasphemer.\nHowever, it's not for his writing in _The Satanic Verses_, but for\nwhat people have accepted as a propagandistic version of what is\ncontained in that book.  I have yet to find *one single muslim* who\nhas convinced me that they have read the book.  Some have initially\nclaimed to have done so, but none has shown more knowledge of the book\nthan a superficial Newsweek story might impart, and all have made\nfactual misstatements about events in the book.\n\n>If you wish to understand the\n>reasons behind this as well has the origin of the concept of \"the\n>satanic verses\" [...] see the\n>Penguin paperback by Rafiq Zakariyah called _Mohammad and the Quran_.\n\nI'll keep an eye out for it.  I have a counter-proposal: I suggest\nthat you see the Viking hardcover by Salman Rushdie called _The\nSatanic Verses_.  Perhaps then you'll understand.\n-- \nJim Perry   perry@dsinc.com   Decision Support, Inc., Matthews NC\nThese are my opinions.  For a nominal fee, they can be yours.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4612, "properties": {"category": "sci.med", "text": "From: annick@cortex.physiol.su.oz.au (Annick Ansselin)\nSubject: Re: Is MSG sensitivity superstition?\nNntp-Posting-Host: cortex.physiol.su.oz.au\nOrganization: Department of Physiology, University of Sydney, NSW, Australia\nLines: 29\n\nIn <C5nFDG.8En@sdf.lonestar.org> marco@sdf.lonestar.org (Steve Giammarco) writes:\n\n>>\n>>And to add further fuel to the flame war, I read about 20 years ago that\n>>the \"natural\" MSG - extracted from the sources you mention above - does not\n>>cause the reported aftereffects; it's only that nasty \"artificial\" MSG -\n>>extracted from coal tar or whatever - that causes Chinese Restaurant\n>>Syndrome.  I find this pretty hard to believe; has anyone else heard it?\n\nMSG is mono sodium glutamate, a fairly straight forward compound. If it is\npure, the source should not be a problem. Your comment suggests that \nimpurities may be the cause.\nMy experience of MSG effects (as part of a double blind study) was that the\npure stuff caused me some rather severe effects.\n\n>I was under the (possibly incorrect) assumption that most of the MSG on\n>our foods was made from processing sugar beets. Is this not true? Are \n>there other sources of MSG?\n\nSoya bean, fermented cheeses, mushrooms all contain MSG. \n\n>I am one of those folx who react, sometimes strongly, to MSG. However,\n>I also react strongly to sodium chloride (table salt) in excess. Each\n>causes different symptoms except for the common one of rapid heartbeat\n>and an uncomfortable feeling of pressure in my chest, upper left quadrant.\n\nThe symptoms I had were numbness of jaw muscles in the first instance\nfollowed by the arms then the legs, headache, lethargy and unable to keep\nawake. I think it may well affect people differently.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.222+0000", "event": "documents", "entityId": 4613, "properties": {"category": "sci.crypt", "text": "From: murray@src.dec.com (Hal Murray)\nSubject: Re: How do they know what keys to ask for?  (Re: Clipper)\nOrganization: DEC Systems Research Center\nLines: 8\n\nIn article <1993Apr17.031520.13902@clarinet.com>, brad@clarinet.com (Brad Templeton) writes:\n|> The actual algorithm is classified, however, their main thrust here is\n|> for cellular phones, and encryption is only over the radio end, not\n|> end to end, I think.   End to end will come later.\n\nEncrypting just the radio link doesn't make sense to me.  That means the telco\nhas to do the decryption, and hence they need the keys.  How are they going to be\nkept secure?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4614, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mhembruc@tsegw.tse.com (Mattias Hembruch)\nSubject: Re: Can I Change \"\"Licensed To\"\" Data in Windows 3.1?\nOrganization: Toronto Stock Exchange\nLines: 35\n\nrmohns@vax.clarku.edu writes:\n\n>This is in relation to a question concerning changing the registered to: \n>information of MS-Windows...\n\n>In a previous article, 2a42dubinski@vms.csd.mu.edu wrote:\n>> \n>>\tahh, yes, this is a fun topic.  No, once the name is incribed on the\n>>disk, that is it, it is encoded.  Not even a HEX editor will find it.  You can\n>>write over the \"Licensed to:\", but you can't change the name underneth it.  I\n\n>I can find it with a HEX editor, although I have not tried to overwrite it.\n>Are you sure it can't be?  You may be mistaken about this. (???)\n\n>Rob\n\n>rmohns@vax.clarku.edu\n\nOn a similar note, has anyone found out a way to do this with MS FoxPro for\nWindows? My setup.ini file was modified on disk 1 (all encrypted).. Well,\nof course I forgot about Microsoft's stupid arrangement when I got the \nsoftware, and used my name (it was paid for by the company I'm doing \nconsulting for. When my job is done, it's their software).. Any ideas before\nI start doing dumb things to a copy of that file??\n\nMattias\nps NO - I don't want to pirate this software. I just want to avoid having\nto buy a new copy in order to change the registration information and then\nhaving a copy lying around I don't use...\n\nmaybe I can get a new disk 1...\n-- \nMattias Hembruch\n>> My views do not necessarily reflect those of the TSE. <<\nE-mail: mhembruc@tse.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4615, "properties": {"category": "talk.politics.mideast", "text": "From: mvp@netcom.com (Mike Van Pelt)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 17\n\nIn article <1r64pb$nkk@genesis.MCS.COM> arf@genesis.MCS.COM (Jack Schmidling) writes:\n>Neither the Times nor the trained seals who have responded thus far seem to\n>recognize the statement that these \"private funds\" were all tax exmpt.  In\n>otherwords, American taxpayers put up at least 30% of the money.\n\nDammit, how did ArfArf's latest excretion escape my kill file?\n\nOh, he changed sites.  Again.  *sigh*  OK, I assume no other person\non this planet will ever use the login name of arf.\n\n/arf@/aK:j  \n\n-- \nMike Van Pelt      mvp@netcom.com\n\"... Local prohibitions cannot  block advances in military and commercial\ntechnology.... Democratic movements for local restraint can only restrain\nthe world's democracies, not the world as a whole.\" -- K. Eric Drexler\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4616, "properties": {"category": "sci.med", "text": "From: Simon.N.McRae@dartmouth.edu (Simon N McRae)\nSubject: re: hepatitis-b\nX-Posted-From: InterNews1.0b10@newshost.dartmouth.edu\nOrganization: Dartmouth College, Hanover, NH\nLines: 38\n\nIn article <1993Apr14.4274.32512@dosgate>\nrussell.sinclair-day@canrem.com (russell sinclair-day) writes:\n\n> What we are really worried about is not knowing the facts. The doctor \n> has stated that things will not be good if she is a carrier and avoids \n> further questions on the subject. We really would like to know so we \n> can take steps and plan in advance for any eventualities.\n> \n> Thank-you for your very informative post. Right now I am just trying \n> to find out everything that I can.\n> \n>                         Russ.\n\nUnfortunately, Hep B infection can eventuate in chronic hepatitis and\nsubsequent cirrhosis.  Although not many patients with Hep B go on to\nchronic hepatitis, it does still occur in a good number (20%?) and is\nsomething to keep in mind.  Hepatitis C (was: non-A, non-B Hep) much\nmore frequently leads to chronic hep and cirrhosis.  There is also an\nautimmune chronic hepatitis that affects mostly younger women which\nalso leads to cirrhosis.  \n\nOf course, cirrhosis is a most unkind disease.  The most dangerous\neffects relate to portal hypertension and loss of liver function. \nPatients develop life-threatening variceal bleeds and hepatic comas,\namong many other problems, as a result of disturbances in hepatic\ncirculation.  Less ominously, they can exhibit the effects of\nhyperestrogenemia which often characterize patients with cirrhosis. \nThese effects include telangiactasias (small red skin lesions) and, in\nmen, gynecomastia (breast development).  The only real treatment for\ncirrhosis is liver transplant.\n\nKeep in mind that cirrhosis is not expected, at least statistically, in\nyour friend's case.  Nevertheless you might want to bring up the\nsubject of chronic disease and cirrhosis with the doctor.  Hopefully he\nor she can then carefully explain these sequelae of Hep B infection to\nyou, and offer you support.\n\nSimon.  \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4617, "properties": {"category": "sci.crypt", "text": "From: vjs@rhyolite.wpd.sgi.com (Vernon Schryver)\nSubject: Re: Fighting the Clipper Initiative\nOrganization: Silicon Graphics, Inc.  Mountain View, CA\nLines: 20\n\nIn article <strnlghtC5toC6.KIu@netcom.com>, strnlght@netcom.com (David Sternlight) writes:\n> ...\n>                                  The Federal Reserve Open Market Committee\n> has successfully kept decisions from leaking for the statutory period until\n> publication.\n\nHow are you sure of that?  Weren't there some recent studies that\nfound corelations between not-yet announced decisions and market changes?\n\nAren't there continuing early rumors of their deliberations?\n\n\n>              Even the Department of Agriculture has successfully kept crop\n> forecasts from leaking prematurely.\n\nSheesh!  Remember the big scandal a year or two (or 3?) ago about\nexactly such leaks?\n\n\nVernon Schryver,  vjs@sgi.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4618, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gay@selkirk.sfu.ca (Ian D. Gay)\nSubject: Re: Can I Change \"Licensed To\" Data in Windows 3.1?\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 10\n\nkudla@acm.rpi.edu (Robert Kudla) writes:\n\n[stuff about changing windows registration omitted]\n\n>the damned thing anyway.  This technique should work with just about\n>any obnoxious corporate product that tries to write to the original\n>floppies when you install; in some extreme cases you may not be able\n\nHuh??? My copy of win 3.1 came on _permanently_ write-protected \ndiskettes. (No sliding tabs).\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4619, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: Davidians and compassion\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 58\n\n\nIn article <sandvik-190493200420@sandvik-kent.apple.com>, sandvik@newton.apple.com (Kent Sandvik) writes:\n|> So we have this highly Christian religious order that put fire\n|> on their house, killing most of the people inside.\n|> \n\nI would hardly consider the BD's to be Christian.  They were acting in\ndirect contradiction to scripture.  Jesus' Second Coming is something\nthat everyone will know of.  Jesus also predicted that there will be\nfalse Messiahs who will use His name.  His prophecy has been fulfilled.\n\n|> I'm not that annoyed about the adults, they knew supposedly what\n|> they were doing, and it's their own actions.\n|> \n|> What I mostly are angry about is the fact that the people inside,\n|> including mothers, let the children suffer and die during awful\n|> conditions.\n|>\n\nI agree with you there.\n \n|> If this is considered religious following to the end, I'm proud\n|> that I don't follow such fanatical and non-compassionate religions.\n|>\n\nMe too.  I have already given my life to God.  If God tells me to lay\ndown my life, it will be to save another life.\n \n|> You might want to die for whatever purpose, but please spare\n|> the innocent young ones that has nothing to do with this all.\n|> \n|> I have a hard time just now understanding that Christianity\n|> knows about the word compassion. Christians, do you think \n|> the actions today would produce a good picture of your \n|> religion?\n|>\n\nDo you judge all Christians by the acts of those who would call\nthemselves Christian and yet are not?  The BD's contradicted scripture\nin their actions.  They were NOT Christian.  Simple as that.  Perhaps\nyou have read too much into what the media has portrayed.  Ask any\ntrue-believing Christian and you will find that they will deny any\nassociation with the BD's.  Even the 7th Day Adventists have denied any\nfurther ties with this cult, which was what they were.\n\nDo you judge all Muslims by the acts committed by Saddam Hussein, a \nsupposedly devout Muslim?  I don't.  Saddam is just a dictator using\nthe religious beliefs of his people to further his own ends.\n\nGod be with you,\n\nMalcolm Lee   :)\n \n|> \n|> Kent\n|> \n|> ---\n|> sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4620, "properties": {"category": "rec.motorcycles", "text": "From: RYLV80@waccvm.corp.mot.com (William Mohrman)\nSubject: Re: Drinking and Riding\nOrganization: Motorola\nNntp-Posting-Host: waccvm.corp.mot.com\nLines: 43\n\n>\n> What is a general rule of thumb for sobriety and cycling? Couple hours after\n>you \"feel\" sober? What? Or should I just work with \"If I drink tonight, I\n>don't ride until tomorrow\"?\n\nThis thread brings back memorys of an expensive day in traffic court\na few years ago.  While I was waiting my turn to state my case and\nplea of why I was going 75 in a 55 in my cage, I had the opportunity\nto listen to some of the \"creative excuses\" offered the judge by others.\n\nAfter listening to a number of \"Well, I was passing a very slow truck\nthat suddenly speed up\" versions, I decided that the judge had heard\njust about every story in the book and then some.  He was less than\nimpressed with any of them.\n\nThis young, rather burley looking guy, had his docket read by a\nrather drill sargent looking Ohio State Highyway Patrol Trooper.\nHe was clocked riding a motorcycle at a speed of 110 mph in a 55 mph\nzone.  It was also noted that the defendant (motorcycle rider) had\nalcohol on his breath, but was not cited for this offence.\n\nThe judge looked over his half glasses purched on the end of his nose\nand said in his sternest voice: \"Well son, those are some pretty\nfast speeds to be riding a motorcycle.  What do you have to say for\nyour self?\"\n\n\"Well Sir\", meekly the defenant replied, \"I just was over to my\nbuddys and we had a couple of beers and I was on my way home.\"\nHe offered nothing more or less.  Just had a couple of beers and\nwas doing 110 mph on his way home.\n\nThe judge moved by the simplicity of the response, fined him the\nmaximum in this case (plus court costs of course) and ordered him\nto attend remedial drivers training school.\n\nIsn't America Great??\n\n\n--------------------------------------------------------------------\nBill Mohrman                                         81-CB900C\nMotorola , SPS\nColumbus, OH\n------------------- Disclaimers Apply ------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4621, "properties": {"category": "rec.sport.baseball", "text": "From: dansmith@mcopn2.dseg.ti.com (Danny Smith)\nSubject: Braves win opener\nNntp-Posting-Host: s355.dseg.ti.com\nReply-To: dansmith@mcopn2.dseg.ti.com\nOrganization: Texas Instruments, Inc.\nLines: 15\n\nWell, Maddux looked excellent as the Braves shutout the Cubs 1 - 0.\nJustice drove in the only run with an RBI single in the first. Get\nready for him to have a monster year. He is now hitting the ball to\nthe opposite field with a lot of power to go with his natural \npower to right field and his good batting eye. If he stays healthy\nwhich he should (his back is full strength this year) he should\nget over 100 RBI and close to 30 HR.\n\nIn another note, the Marlins got off to a good start beating the\nDodgers. I believe the score was 6 - 3 but I'm not sure. I wish\nthem and the Rockies well this year. Hell. I think it would be\nfunny to watch the Dodgers hit the cellar again this year.\n\nDan Smith\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4622, "properties": {"category": "misc.forsale", "text": "From: khiet@crystallizer.ecn.purdue.edu (Peter Thanh Khiet Vu)\nSubject: Wanted: AIRCONDITIONER\nKeywords: WANTED\nOrganization: Purdue University Engineering Computer Network\nLines: 4\n\n   I am looking for a good used window air conditioner.  A small\none is preffered.  Call 495-2056 (Peter) and we'll talk about it.\nOr email me.  \"khiet@cn.ecn\"\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4623, "properties": {"category": "rec.sport.baseball", "text": "From: kbos@carina.unm.edu (K. Mitchell Bose)\nSubject: Re: ESPN and Expansion\nOrganization: University of New Mexico, Albuquerque\nLines: 38\nNNTP-Posting-Host: carina.unm.edu\n\nIn article <C5109u.7C0@ucdavis.edu> itlm013@dale.ucdavis.edu (Donnie Trump) writes:\n>I was watching Peter Gammons on ESPN last night, and he's got me a little\n>confused.\n>\n>While talking about expansion, he started mentioning people who might benefit\n>from the fringe players they'll be facing: McGriff hitting 50 home runs,\n>Sheffield getting 150 rbi's, and Glavine winning 25 games.  This was,\n>of course, all in reference to what happened the *other* times that baseball\n>has expanded (early 60's, late 60's, late 70's).\n>\n>What really confused me, though, was the mention of *AL* players who would\n>do well next year.  Specifically, Roger Clemens winning 25 games, and the\n>likes of McGwire and Gonzalez hitting 50 home runs.\n>\n>My question is:  How in the hell will the Rockies/Marlins help the AL?  The\n>last time I looked, there wasn't a lot of talent jumping leagues.  Did I\n>miss something?\n>\nOnly if you persist in believing that Peter Gammons is more knowledgable about\nbaseball than the average mailbox.  Okay, I'm overstating.  Still, the man \nactually had the gall to say that one out of every six pitchers in the NL this\nyear did not pitch in the majors last year.\n\nHuh?\n\nIMO, this expansion will not see the explosive jump in offense that the \nother expansion drafts had, since the talent was diluted over both leagues.\nIn Gammons' defense, because the talent drain came from the AL as well, some\nincrease will be seen.  He also gets credit for mentioning that the 1969 jump\nin offense was due also to the rules changes after the 1968 season.  He's still\nfull of it...\n\n\n-- \n            Kurt Bose (as in Daisy, not Rose) * kbos@carina.unm.edu\n\"If you take out all the f--ks, this is an 18 page book.\"\n   -Wally Backman, leafing though a copy of Mets teammate Lenny Dykstra's \n    autobiography, _NAILS_ \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4624, "properties": {"category": "rec.autos", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Re: Most bang for $13k\nOrganization: Lehigh University\nLines: 32\n\nIn article <23056.74.uupcb@cutting.hou.tx.us>, david.bonds@cutting.hou.tx.us (Da\nvid Bonds) writes:\n>In rec.autos, CPKJP@vm.cc.latech.edu (Kevin Parker) writes:\n> I'd like to get some feedback on a car with most bang for the buck in the\n> $13000 to 16,000 price range. I'm looking for a car with enough civility to be\n> driven every day, or even on long trips, but when I hit the gas, I want to fee\nl\n>\n>Take a look at a '91 Taurus SHO - they can be found for ~13k, and are the\n>ultimate in 4 door sports cars.  Performance similar to a Mustang, but\n>quite civil and comfortable...  Try to get a late model 91 for the better\n>shifter.\n>\n>\n\n>----\n>The Cutting Edge BBS (cutting.hou.tx.us)   A PCBoard 14.5a system\n>Houston, Texas, USA   +1.713.466.1525          running uuPCB\n\n>Well, you could always go with a 5.0 Mustang LX with a pleasant V8, but the\ndiamond star cars (Talon/Eclipse/Laser) put out 190 hp in the turbo models,\nand 195 hp in the AWD turbo models,  These cars also have handling to match\nthe muscle, and are civil in regular driving conditions, rather than having a\nharsh, stiff ride....The AWD Turbo is clearly the better choice of the two\n(because of all that torque steer on the front drive model), but you may have\nto go with a leftover or \"slightly\" used model for that price range....tough\ndecision...\n\n        Rob Fusi\n        rwf2@lehigh.edu\n\n-- \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4625, "properties": {"category": "rec.motorcycles", "text": "From: ranck@joesbar.cc.vt.edu (Wm. L. Ranck)\nSubject: Re: BMW MOA members read this!\nOrganization: Virginia Tech, Blacksburg, Virginia\nLines: 10\nNNTP-Posting-Host: joesbar.cc.vt.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nAs a new BMW owner I was thinking about signing up for the MOA, but\nright now it is beginning to look suspiciously like throwing money\ndown a rathole.\n   When you guys sort this out let me know.\n\n--\n*******************************************************************************\n* Bill Ranck             (703) 231-9503                     Bill.Ranck@vt.edu *\n* Computing Center, Virginia Polytchnic Inst. & State Univ., Blacksburg, Va.  *\n*******************************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4626, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: Thousands of Armenians were serving the German army and Waffen-SS.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nLines: 460\n\nIn article <1993Apr19.010955.1@eagle.wesleyan.edu> kmagnacca@eagle.wesleyan.edu writes:\n\n>> Too bad. In fact, by 1942, Nazi Armenians in Europe had established \n>> a vast network of pro-German collaborators, that extended over two \n>> continents.\n\n>Before you go calling the kettle black, keep in mind that the \n>Turkish government was a strong supporter of Nazi Germany and\n>played a vital role in supplying it with oil until the Allies\n>invaded Iran.  Complaining about Armenian complicity with the\n>Nazis does little good when Turkey played a much bigger role.\n\nTell me, 'kmagnacca', were you high on 'Arromdian of ASALA/SDPA/ARF'\nwhen you wrote that? Humane behavior and tolerance of Turks was a\nlegend even 500 years ago when they accepted tens of thousands of \nJews from Spain who were fleeing from the Spanish Inquisition. Again, \nmany Jewish families escaping from Nazi Armenians and Hitler's Nazi \nGermany took refugee in Turkiye during the 1940's. Turkish people\nhave unselfishly given home, protection, and freedom to the Jews over \nthe centuries, including to thousands and thousands of them during \nthe Second World War. Get a life or a cup of Turkish coffee. \n\n\"History of the Jews in the Islamic Countries,\" chapters in Parts I and II,\nJarusalem, Zalman Shazar Center for Jewish History, 1986.   \n\nBaron, Salo W., \"A Social and Religious History of the Jews,\" New York,\nColumbia University Press, Vols. III, V, XVIII.\n\nBenardete, Mair Jose, \"Hispanic Culture and Character of the Sephardic\nJews,\" New York, Sepher-Hermon Press, 2nd corrected edition, 1982 (original\npublication 1953).\n\nLewis, Bernard, eds., \"Christians and Jews in the Ottoman Empire,\" New York,\nHolmes & Meier, 1982, Vol. I, The Central Lands.\n\n\"La Turquie dan les Archives des Grand Orient de France: les loges ...,\"\nin Jean-Louis Bacque-Graumont and Paul Dumont, eds., Economie et Societes\ndans L'Empire Ottoman, Paris, Centre National De La Reserche Scientifique,\n1983.\n\nInalcik, Halil, \"Turkish-Jewish Relations in the Ottoman Empire,\" 1982.\n\nSevilla-Sharon, Moshe, \"Turkiye Yahudileri, Tarihsel Bakis,\" Jerusalem, The\nHebrew University, 1982.\n\nSource: John Dewey: \"The New Republic,\" Vol. 40, Nov. 12, 1928, pp. 268-9.\n\n\"Happy the minority [Jews] which has had no Christian nation to protect it.\n And one recalls that the Jews took up their abode in 'fanatic' Turkey\n when they were expelled from Europe, especially Spain, by Saintly Christians,\n and they have lived here for centuries in at least as much tranquility and\n liberty as their fellow Turkish subjects, all being exposed alike to the\n rapacity of their common rulers. To one brought up, as most Americans have \n been, in the Gladstonian and foreign-missionary tradition, the condition of \n the Jews in Turkey is almost a mathematical demonstration that religious\n differences have had an influence in the tragedy of Turkey only as they\n were combined with aspirations for a political separation which every \n nation in the world would have treated as treasonable. One readily \n reaches the conclusion that the Jews in Turkey were fortunate...\" \n\nHe also stated that:\n\n\"they [Armenians] traitorously turned Turkish cities over to the Russian \n invader; that they boasted of having raised an army of one hundred and\n fifty thousand men to fight a civil war, and that they burned at least\n a hundred Turkish villages and exterminated their population.\"\n\n\n                TURKEY AND THE HOLOCAUST\n\nAn  interview  with  Stanford  J. Shaw  (History),  who  recently\ncompleted  two books:  The Jews  of  the Ottoman  Empire and  the\nTurkish Republic, and Turkey and  the Holocaust: Turkey's Role in\nRescuing  Turkish  and  European  Jewry  from  Nazi  Persecution,\n1933-45. Shaw  chairs the undergraduate  interdepartmental degree\nprogram in Near Eastern Studies and has organized the Program for\nthe Study of Ottoman and Turkish Jewry. He is affiliated with the\nG. E. von Grunebaum Center for Near Eastern Studies.\n\nEditor: How did  you come to write these two  books on Turkey and\nEuropean and Turkish Jews?\n\nShaw: Basically, I'm  an Ottoman historian, but  I'm also Jewish.\nI've  spent twenty-five  years studying  Ottoman history,  and as\ntime went along, whenever I  found materials on the Ottoman Jews,\nI collected  them. But  I never  did anything  with them  until a\ncouple of years  ago, when I suddenly realized that  1992 was the\n500th  anniversary of  the  Jews being  expelled  from Spain  and\ncoming  to Turkey.  Then the  Sephardic Temple  down on  Wilshire\nAvenue invited me  to give a series of three  lectures on Ottoman\nJewry.  These lectures  were  greatly appreciated,  and I  became\nmotivated to  undertake further research  to develop a  book, The\nJews of the  Ottoman Empire and the Turkish)  Republic. This book\nis quite different from the  works of most Jewish historians, who\ntend to look  at the Jews in any country  more from the viewpoint\nof the Jews  and the Jewish community, and rely  mainly on Jewish\nsources.  I  view my  subject  as  an  Ottoman historian,  and  I\napproach the Jews of the Ottoman Empire largely from the point of\nview of Ottoman  society, using largely Ottoman  sources. After I\nfinished  this book  and  sent it  to the  press,  I came  across\nadditional documents  relating to  Turkish Jews during  World War\nII. In the completed book, I had said that Turkey had done a good\ndeal  to rescue  the Jews  during  World War  II, but  I did  not\nactually have many details. Then I  found a batch of documents in\nthe Foreign Ministry archive relating to actions taken by Turkish\ndiplomats to  help the Jews  before and during the  Holocaust. It\nwas too late to add this new information to the book in press, so\nI decided to  write a second book. I  conducted further research,\nmainly in the archives of the  Foreign Ministry in Ankara and the\nTurkish Embassy and Consulate in Paris. The result was the second\nbook, Turkey and  the Holocaust, which details  how Turkey helped\nrescue Jews from the Nazis.\n\n- How exactly did they do this?\n\nThe story takes  place over a number of years.  The book presents\nthe material in three parts, first of which deals with the period\nbefore the Holocaust. When the Nazis  came to power in Germany in\n1933,  they immediately  started  dismissing  Jews and  anti-Nazi\nGermans from universities,  hospitals, scientific institutes, and\nthe like. Turkey at that moment was just beginning the process of\nreforming its  universities, and it  saw in these Jews,  who were\nbeing fired from their positions in Germany, a good source of new\ntalent to  help modernize the Turkish  universities. Within three\nmonths  after the  Nazis  started dismissing  these Jews,  Turkey\narranged to take many of them in. They were brought to Turkey and\nwere   given   appointments   as  professors   in   the   Turkish\nuniversities, as  heads of scientific institutes,  and as medical\npersonnel in hospitals. About 300  to 500 major Jewish professors\ncame to  Turkey in  the 1930s. Ernst  Reuter, a  German political\nscientist,  spent the  war  years teaching  political science  in\nTurkey. After  World War II,  he was  mayor of Berlin  during the\nBerlin Airlift.  Fritz Neimark, a major  German Jewish economist,\ncame to Turkey and helped  establish a modern school of economics\nin Istanbul.  A man named  Reichenbach, who was rescued  from the\nNazis by  Turkey and  spent the war  years in  Turkey, eventually\ncame to  UCLA, where he  became a professor of  philosophy. Other\nGerman Jewish  emigres engaged in cultural  activities in Turkey.\nOne  such was  Karl  Ebert,  who had  been  a leading  theatrical\nproducer in Berlin until he was expelled by the Nazis. He went to\nTurkey, where he  organized the Turkish National  Theater and the\nTurkish National Opera  Company in Ankara, with the  help of Paul\nHindemuth. So  the first  section of the  book covers  this first\nphase, when Jews were being  persecuted in Germany and rescued by\nTurkey.  Oddly enough,  the  German emigres,  when  they were  in\nTurkey, did not seem to think too badly of Germany. They regarded\nthemselves more  as Germans than Jews,  and they did not  join in\nthe anti-Nazi activities of the local Turkish Jewish community. I\neven  found  letters  from  the Nazi  representatives  to  Turkey\npraising these German Jewish refugees for their work in promoting\nthe idea  of German  culture. Even though  these people  had been\npersecuted by the Nazis and rescued by the Turks, they shared the\nNazis' feelings of  Aryan racial superiority over  the Turks. The\nsecond part of the book deals  with the Holocaust, which began in\n1940 when the Nazis occupied France.  In Europe at that time, and\nespecially in France, there were  about 20,000 Turkish Jews. They\nhad migrated to Europe for various reasons from about the turn of\nthe century onward. Most of them had settled in Europe during the\nTurkish war for  independence after World War I,  when Greece was\nthreatening to overrun Turkey. The Greeks had persecuted the Jews\nthroughout the nineteenth century, and the Jews feared what might\nhappen to them if the Greeks  took over in Turkey. Many Jews fled\nto France during  the 1920s and 1930s. Many  also abandoned their\nTurkish  citizenship and  became  French  citizens. Suddenly  the\nNazis invaded France in 1940 and started introducing all sorts of\nanti-Jewish laws.  The Turkish  Jews soon found  that it  was not\nworth very much to  be a French Jew, but that it  was worth a lot\nto be a Turkish Jew.\n\n- How so?\n\nTurkey remained neutral through most of World War II. It retained\nits embassies  and consulates in all  the Nazi-occupied countries\nuntil it finally entered the war on the side of the Allies at the\nend of 1944. During the war,  therefore, Turkey was in a position\nto  defend its  citizens  against anti-Jewish  measures, and  the\nactions that  Turkish diplomats took  form the second  chapter of\nthe  book. Turkish  diplomats  who were  stationed  in France  in\nparticular intervened to protect Jews of Turkish citizenship from\nthe Nazis. For those Turkish  Jews who had retained their Turkish\ncitizenship,  there  was  generally  no  problem.  If  they  were\narrested and sent to a  concentration camp, the Turkish diplomats\nwould  communicate with  the  commanders of  the  camp and  other\nofficials and say in effect:  \"These people are Turkish citizens.\nYou  can't do  this  to  them.\" And  the  Turkish  Jews would  be\nreleased.  If  their  businesses were  confiscated,  the  Turkish\ndiplomats would protest and the businesses would be restored.\n\nThe Nazis  in general  wanted to keep  the friendship  of Turkey.\nThey hoped to be able to use  Turkey as a gateway for an invasion\nof the Middle  East, and they also wanted to  obtain chromium and\nmanganese from Turkey. In order  to keep Turkish friendship, they\nusually accepted  these interventions on behalf  of Turkish Jews.\nThe Turkish  diplomats sometimes went to  the concentration camps\nto secure the release of Turkish Jews. At times they even boarded\ntrains hauling  Turkish Jews  to Auschwitz for  extermination and\nsucceeded in getting them off the train. Most of the foreign Jews\nwere sent  to a concentration  camp at  a place called  Drancy in\nParis,  and that's  where  most of  the  intercession by  Turkish\nconsuls took place.\n\nThe greater problem came with  the Turkish Jews who had abandoned\ntheir  Turkish citizenship  and had  become French  citizens. The\nconsuls couldn't declare that  these people were Turkish citizens\nbecause  they were  not.  My book  includes  photographs of  Jews\nlining  up in  front  of  the Turkish  consulate,  either to  get\npassports to  return to Turkey or  to get a restoration  of their\nTurkish  citizenship.   This  was   a  bureaucratic   matter,  so\nprocessing the application would take  some time. In the meantime\nit was a  real emergency, because the Nazis would  arrest Jews on\nthe streets for almost nothing.  The Nazis would even arrest them\nif they  had radios  or telephones  in their  apartments, because\nradios and  telephones were  forbidden to Jews.  To take  care of\nthese  former  Turkish Jews,  the  Turkish  diplomats invented  a\ndocument called  gayri muntazem  vatandash, or  \"irregular fellow\ncitizen.\" The  document said in  effect \"This person is  a former\nTurkish  citizen  who has  applied  for  the restoration  of  his\nTurkish citizenship.  In the meantime  we would appreciate  it if\nyou  would treat  him  as  if he  were  a  Turkish citizen.\"  The\ndiplomats wrote  the document in  Turkish and put their  seals on\nit. Since  the Nazis could  not read  Turkish, on the  whole they\naccepted  these papers  as certificates  of citizenship.  By this\nmeans, the  Turkish diplomats were  able to rescue many  Jews who\nhad relinquished their Turkish citizenship.\n\nActually the Nazis were of two minds about the Turkish defense of\nJews. On the one hand the  Nazi Foreign Ministry, which wanted to\nretain the friendship of Turkey,  was in favor of accepting these\ninterventions. On the other hand, Himmler and Eichmann wanted all\nJews exterminated.  At times  Himmler and  Eichmann were  able to\nprevail and some  of the Turkish Jews were sent  off to Auschwitz\nbefore the Turkish consuls could do anything.\n\n- Do you have statistics on how many Turkish Jews were rescued?\n\nThere were about  20,000 Turkish Jews in Europe  before world War\nII,  about 10,000  of whom  were living  in France.  Most of  the\ninformation in this section of  the book relates to the situation\nin France. I have published  the letters that the Turkish consuls\nsent to  the Nazi  officials and  the letters  that came  back in\nreply. Generally the Nazis said  that if the Turkish consul would\npresent  documents  certifying   that  arrested  individuals  are\nTurkish citizens,  and promise  to send them  out of  France, the\nNazis would release them from the concentration camp. The Turkish\nconsuls also organized  special trains to take  Turkish Jews from\nNazi-occupied  territory   back  to  Turkey.  These   trains  ran\nregularly in 1943 and 1944. The Nazis gave the Turkish Jews visas\nso they  could pass out  of Nazi  territory, but the  trains were\noften  held  up by  the  Nazi-influenced  governments of  Eastern\nEurope  -   Croatia,  Serbia,   and  Bulgaria  -   because  these\ngovernments really didn't want the Jews to escape. As a result of\nthe Turkish consuls' efforts, about 3,000 to 4,000 of the Turkish\nJews  in  France were  saved.  Another  3,000  were sent  off  to\nAuschwitz, where  most of them  died. The remaining  3,000 either\nescaped  across the  border into  Spain or  fled to  the area  of\nsouthern France occupied  by the Italians, who  treated Jews much\nbetter than  the Nazis did.  At the  end of 1943,  however, Italy\nfell out of the war, and that was the end for those Jews as well.\nIncidentally, the Turkish diplomats  in Nazi-occupied Greece also\nworked to rescue Jews in that country.\n\n- The second part of your  book then deals with Turkish diplomats\nacting to  rescue Jews of  Turkish citizenship or  Turkish origin\nfrom Nazi persecution.\n\nYes,  and  there  is  an  aside   I  might  add  here:  In  their\ninterventions on  behalf of Turkish  Jews, the Turks  cited their\ntreaty with Germany which stated  that Turkish citizens in German\nterritory would be treated the same as German citizens in Turkey.\nOn  that basis  the Turks  maintained  that the  Nazis could  not\ndiscriminate  against Turkish  citizens who  are Jews.  The Nazis\nclaimed  (and the  Vichy government  agreed) that  they were  not\ndiscriminating  because  they  were treating  all  Jews  equally.\nTurkey  protested,   saying,  \"You  are  dividing   our  citizens\naccording to religion, but the Turkish constitution requires that\nall  citizens   be  treated  equally,  regardless   of  religion.\nTherefore, you cannot single  out Turkish Jews.\" American consuls\nin  Paris,  by contrast,  accepted  the  Nazi argument  and  told\nAmerican Jews  who were being  persecuted by the Nazis  that they\ncouldn't do  anything about  it, because  the American  Jews were\nbeing treated the same as other  Jews. The third part of the book\ntakes place in Turkey, which  was the principal center during the\nHolocaust for activities aimed at  the rescue of Eastern European\nJews. The  kwish Agency, an  organization established by  Jews in\nPalestine to help resettle Jews to Palestine, set up an office in\nIstanbul  in 1940  under the  leadership of  Chaim Barlas.  Other\nJewish organizations in Palestine, especially the kibbutzes, also\nsent representatives  to Istanbul  to set up  headquarters. These\ngroups first tried to contact Jews  in Eastern Europe to find out\nwhat was  happening. Today  we know about  the Holocaust,  but at\nthat  time people  didn't know  what  was going  on. They  didn't\nimagine the Nazis could do the things they were doing. And so the\nfirst step was to get information, and the Turkish government let\nthem use the Turkish mails to send letters to their relatives and\nfriends  in Eastern  Europe. The  Jewish organizations  found out\nwhat was happening when they  received replies. Later on when the\nNazis  began  to  intercept   such  letters,  the  Jews  received\nassistance  also from  the  Vatican nuncio,  Angelo Roncali,  who\nserved as  the Vatican  representative in  Istanbul from  1935 to\n1944  and   later  became  Pope   John  XXIII.  As   the  Vatican\nrepresentative  during the  war, he  used the  facilities of  the\nCatholic  Church to  supplement what  the Turkish  government was\ndoing to  assist Jewish  agencies in  contacting Jews  in Eastern\nEurope.  With the  cooperation of  the Turkish  government, these\nagencies  then  sent  hard  currency, food,  clothing,  and  even\nrailroad  and  steamship  tickets   to  Jews  in  Czechoslovakia,\nBulgaria, Romania, and Hungary. They weren't able to help much in\nPoland because  by then the  Nazis had  wiped out almost  all the\nPolish Jews.  Whenever possible the rescue  agencies arranged for\nthe Jews to get out of Eastern Europe either by train through the\nso called  Orient Express route  to Istanbul, or by  boat through\nthe Black Sea to Istanbul.\n\nTurkey was not eager for all  these refugees to remain within its\nborders during  the war, because  it was being blockaded  and was\nsuffering   terrible  shortages   of  food   and  clothing.   The\ngovernment,   therefore,   facilitated   the  movement   of   the\nnon-Turkish Jewish  refugees from Turkey to  Palestine, either by\nthe Taurus  Express Railroad through  the mountains to  Syria and\nPalestine,  or by  small boats  across the  eastern Mediterranean\nfrom southern  Turkey to  Palestine. These efforts  were bitterly\nopposed not only  by the Nazis, but also by  the British, who did\nnot want  any more Jewish  immigration to Palestine  because they\nfeared it would hurt their  relations with the Arabs. The British\nconstantly pressured the Turkish  government to stop this traffic\nand send those Jews back. In  a few cases the Turkish government,\nyielding  to  British pressure,  did  send  the boats  back.  For\nexample, in  one incident,  the steamship  Struma, with  some 700\nJewish  refugees  from Romania,  was  sent  back by  the  Turkish\ngovernment  as  a  result  of the  intervention  of  the  British\nambassador. When  that ship was  sunk by a Soviet  submarine, all\nwere lost except one person.  Nevertheless, all told, the Turkish\ngovernment allowed no fewer than 100,000 Eastern European Jews to\npass through  Turkish territory and  move on to  Palestine during\nthe Second World War. The Turkish authorities also provided these\nrefugees with facilities  and money, and gave  them permission to\nsend money and food out of the country.\n\n- Many  of these  Jews who  passed  through Turkey  may still  be\nliving in Israel.\n\nYes, and  their children. But  let's return  for a moment  to the\nfirst group, the Turkish Jews who  came from Europe. They did not\ngo  on  to   Palestine;  they  stayed  in  Turkey.   It  was  the\nnon-Turkish, Eastern  European Jews who passed  through Turkey en\nroute to Palestine. Their story is very interesting.\n\n- And you have rescued it from obscurity.\n\nMany studies have been made of the Holocaust, but most of them do\nnot focus on the Eastern European or Middle Eastern Jews. Most of\nthe scholarship  has centered  on the  Western European  Jews, of\nwhom 6 million were massacred by the Nazis. My study deals with a\nmuch smaller  number of  people. I  have tried  to round  out the\npicture,  and I  hope my  book  will persuade  other scholars  to\nundertake further investigations in the history of Eastern Jews.\n\nWhen it  comes to numbers,  the German Jews were  also relatively\nsmall in number. Most of the millions slain were Polish Jews. The\nrescue  of  100,000  Eastern  European   Jews  may  not  seem  so\nsignificant  compared  with  the  total of  6  million  who  were\nmurdered, but it meant a lot to those who were saved.\n\nAbout  three-fourths   of  the  book  consists   of  documents  -\ntranslations  of many  documents. They  are included  because the\nstory is not well known. Not  only are people in the West unaware\nof  the courageous  actions of  the Turkish  diplomats; even  the\npeople of Turkey  did not know the story. I  felt that they would\nnot  fully understand  this  remarkable  achievement unless  they\ncould see the documents.\n\n- What languages are used in the documents?\n\nMost of them are in Turkish  or French; some are in Hebrew. There\nis a great  deal of material in Hebrew about  the organization of\nthe boats  going to Palestine, the  passengers, and so on,  but I\ndid not go into those details extensively. I describe mostly what\nTurkey did, so  most of my documents are in  Turkish or French. A\nfew documents are  in English. The Jewish groups  in Istanbul did\nnot necessarily  cooperate with  one another  to rescue  Jews; in\nfact, they often fought with  one another. They took turns trying\nto  get  the  Turkish  government to  deport  rival  groups.  For\nexample, some of  the kibbutz groups felt that  the Jewish Agency\nwas  run by  Western European  Jews who  were interested  only in\nhelping  Western  European  Jews.  Finally,  in  1944,  President\nRoosevelt sent a personal  representative, Ira Hirschman, who had\nbeen an executive of Bloomingdale's  department store in New York\nCity, and  Hirschman managed to reconcile  their differences. The\ndocuments related to his mission are in English.\n\nI also obtained many documents  from Serge Klarsfeld, a Holocaust\nhistorian in France,  who mainly worked on the  French Jews. (His\nfather was  killed by  the Nazis.)  He gave  me materials  he had\ngathered in the German archives on  the Turkish Jews, so I didn't\npersonally consult the German archives.  I believe that much more\ncan  be learned  from the  German  archives, and  I hope  someone\nsomeday will make the effort.\n\n- This new book fits in well with your teaching, doesn't it?\n\nRight. I'm  giving a  course on  the history of  the Jews  of the\nOttoman  Empire.  I first  gave  the  course  two years  ago.  In\naddition to  research, writing, and teaching,  I've been actively\ninvolved in  the commemoration  of the  500th anniversary  of the\ncoming of the  Jews to the Ottoman Empire. Among  other things, I\nhelped organize  a large international conference  on the subject\nwhich was held in Istanbul in 1992.\n\n- Now that your  books are finished and the  conference has taken\nplace, what do you plan to do next?\n\nI'm working on two new books. One is a history of the Turkish War\nfor Independence, which took place  after World War I, during the\nyears  1918 to  1923. The  Turks warded  off the  efforts of  the\nvictorious  European   powers  to  occupy  Turkey   and  end  its\nindependence. The  second book is  a study of Sultan  Abdul Hamid\nII, the last major sultan, who ruled from 1876 to 1909. He was an\nimportant modernizer in his own  way, although he also suppressed\nall sorts of political movements.\n\nStanford  J. Shaw  received  a B.A.  in History  and  an M.A.  in\nBritish History. He then shifted to Near Eastern History, earning\na second M.A.  and a Ph.D. at Princeton. As  a doctoral candidate\nat Princeton, he  spent two years abroad, studying  at the School\nof  Oriental  and  African  Studies, University  of  London;  the\nUniversity of  Cairo, the American  University at Cairo,  and the\nUniversity of  Istanbul. He  taught at  Harvard before  coming to\nUCLA in 1966. His postdoctoral research has been supported by the\nJohn Simon Guggenheim Foundation, the American Research Institute\nin  Turkey, the  Social  Science Research  Council, the  National\nEndowment for the Humanities, the Fulbright Program, and ISOP. He\nhas  received  honorary  degrees   from  Harvard  University  and\nBosporus University, Bebek, Istanbul, Turkey, and medals of honor\nfor lifetime contributions  to the fields of  Islamic and Turkish\nstudies from the Center for Research in Islamic History, Art, and\nCulture in  Istanbul and from  the American Friends of  Turkey in\nWashington,  D.C. In  addition to  undertaking many  professional\nservice activities and public lectures  in both the United States\nand Turkey,  Shaw has  also produced eight  books and  one edited\nvolume. His  History of  the Ottoman Empire  and Modem  Turkey (2\nvols.)  has been  published  in many  editions  (six editions  or\nreprints  from 1977-1991),  and  translated  into Turkish  (1983,\n1991) and French (1984). His book  The Jews of the Ottoman Empire\nand  the  Turkish  Republic  (MacMillan,  London,  and  New  York\nUniversity Press, 1992) will  be published in Turkish translation\nby the Turkish  Historical Society, Istanbul. His  Turkey and the\nHolocaust: Turkey's  Role in Rescuing Turkish  and European Jewry\nfrom Nazi  Persecution, 1933-1945 will be  published by Macmillan\nPublishers,  London, and  New York  University Press  in 1993.  A\npamphlet summarizing the book was published in Ankara, Turkey, in\n1992.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4627, "properties": {"category": "rec.autos", "text": "From: tmspence@bronze.ucs.indiana.edu (thomas morris spencer)\nSubject: Are there any Honda groups?\nNntp-Posting-Host: bronze.ucs.indiana.edu\nOrganization: Indiana University\nDistribution: na\nLines: 6\n\n\n\nAre there any Honda groups out there?  Especially ones that deal with\nPreludes?\n\nTom Spencer\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4628, "properties": {"category": "talk.politics.mideast", "text": "From: cl056@cleveland.Freenet.Edu (Hamaza H. Salah)\nSubject: Re: Israeli Terrorism\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 16\nReply-To: cl056@cleveland.Freenet.Edu (Hamaza H. Salah)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\ntsiel writes:\n\n>If indeed Israeli soldiers killed a \"Hamas Mujahid\" with an anti-tank missile\n>then I'm almost sure that the \"terrorist zionists\" would not have been able\n>to cut up a body which was probably desintegrated by the missile.\n\nmaybe the missile didn't hit directly such that his body\ngets \"desintegrated.\"  of course, destroying 10 houses to\nkill someone is not a surgical operation, or is it?\n    \n\n-- \n                  ___________________ cl056@cleveland.Freenet.Edu _____________\n                 (______   _  |   _  |_    \n_____ H A M Z A ________) |-| |_ |-| | |    foo i.e. most foo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4629, "properties": {"category": "misc.forsale", "text": "From: halle@rebecca.its.rpi.edu (Ezra D.B. Hall)\nSubject: Re: TEst Instruments for sale\nKeywords: test,instruments,meter,power,supply,oscilloscope,storage display\nArticle-I.D.: rpi.wss5lqm\nLines: 24\nNntp-Posting-Host: rebecca.its.rpi.edu\n\n\nThe following is no longer for sale, it has been sold.\n\n\n -Textronics Type 611 Storage Display (screen dim. 6.5\"x8.5)\n\n -Textronics TM503 base with three PG502 250MHz pulse generators. \n\n -Textronics 6289A Adj. DC power supply 0-40volts 0-1.5 amps\n\n -Keithley Instruments Picoammeter  \n \n -(3) Analogic 3 1/2 Digit panal mount voltmeters\n **************************************************************\nStill for sale, \n\n-Hewlett Packard 180A Oscilloscope with 180AA four channel 50 MHz vertical\nAmplifier and 1822A time base and delay generator.  Best offer over $300\n\n -(1) Analogic 4 1/2 Digit panal mount voltmeter, powered by 5 VDC, \n Model AN2574 1X3P, Same Dimensions as above, ----$55 +shipping----\n\n   Reasonable offers will be accepted.  Please respond by e-mail or phone.\nE-mail halle@rpi.edu   phone (518)276-7382\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4630, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: Guns GONE. Good Riddance !\nOrganization: The University of Texas at Austin, Austin TX\nLines: 79\nNNTP-Posting-Host: louie.cc.utexas.edu\n\njrm@gnv.ifas.ufl.edu writes:\n:You are loosing.\n\n\"Loosing\"?  Well, I'll avoid the spelling flames and see if this person\ncan make up for it.\n\n\n:There is no question about it. \n\nOh, there's LOTS of question about it.  People are becoming more aware each\nday that their rights are being threatened, so much so that NRA membership \nis growing at the rate of nearly 2,000 per *day*.  We are slowly gaining\nour rightful voice, despite the biases, prejudices, and veiled motives of\nthe liberal media and anti-gun politicians.  We will win.\n\n:Of those who vote, your cause is considered an abomination. No matter\n:how hard you try, public opinion is set against the RKBA. \n\nWhat do you base this on?  Some highly-skewed poll conducted by NBC News?\nThe same group who faked GM pickup explosions just to make \"news\"?  Right.\n\n:This is the end. By the finish of the Clinton administration, your\n:RKBA will be null and void. Tough titty.\n\nIt is true that we face even greater obstacles to our rights, betrayed by\nthose lying politicians who swear an oath to protect the Constitution \"from\nall enemies, both foreign and domestic.\"  But the People will take only so\nmany lies and deceits.\n\n:You had better discover ways to make do without firearms. The number of\n:cases of firearms abuses has ruined your cause. There is nothing you\n:can do about it. Those who live by the sword shall die by it. \n\nThen the criminals who live by murder shall die by it.  Honest, law-abiding\ncitizens need have no fear on that count.  You, however, will evidently\ndie by (or at least in) ignorance.  And the number of firearms self-defenses\nshall spell out our ultimate victory.\n\n:The press is against you, the public (the voting public) is against\n:you, the flow of history is against you ... this is it !\n\nThe flow of history was against the Founding Fathers, but they managed to \nsuccessfully form the first real free republic on the face of this planet,\na republic that has become the model for all others to follow.  The press\nis against us, for its own selfish motivations.  And the people will soon\nrealize the depths of deceit being spread by that media, and nullify its\nill-directed power.  The People are with us.\n\n:Surrender your arms. Soon enough, officers will be around to collect\n:them. Resistance is useless. They will overwhelm you - one at a time.\n:Your neighbors will not help you. They will consider you more if an\n:immediate threat than the abstract 'criminal'. \n\nI shall never submit to an illegal, unConstitutional police state.  I will\ntake my own vow to uphold the Constitution, and I shall defend it and my\ncountry against a tyrannical government gone mad, should it become\nnecessary.\n\n:Too fucking bad. You have gone the way of the KKK. Violent solutions\n:are passe'. Avoid situations which encourage criminals. Then you will\n:be as safe as possible. Such as it is ...\n\nI will not be your sacrificial sheep, and I shall not bow down to you or\nanyone else who seeks to control my life.  Being an unarmed target is the\nSUREST way of encouraging criminals, and believe me, I shall avoid it as\nmuch as possible.  Then I shall be as safe as possible.  I will answer\nwith violence only when no other option exists, but I shall surely answer.\n\nMike Ruff\n\n\n\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4631, "properties": {"category": "rec.sport.baseball", "text": "From: iacs3650@Oswego.EDU (Kevin Mundstock)\nSubject: Re: Yogi-isms\nReply-To: iacs3650@oswego.Oswego.EDU (Kevin Mundstock)\nOrganization: Instructional Computing Center, SUNY at Oswego, Oswego, NY\nLines: 14\n\nIn article <1993Apr2.153725.17543@bsu-ucs> 00mbstultz@leo.bsuvc.bsu.edu writes:\n>\n>Here's an interesting quote from Bill Veek from _Get that Nigger off\n>the Field_:\n>        \"Josh (Gibson) was, at minimum, two Yogi Berras.\"\n>Speaking of Yogi, anybody know any good Yogi-isms?\n>Mike \"Curious George\" Stultz\n\nHere's one I remember: (sort of)\nYogi's asleep in a hotel room late at night and gets a call from someone.\nAfter he answers the phone the person at the other end asks if he woke Yogi\nup. Yogi answered, \"No, the phone did.\"\n\nKevin\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4632, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ewoo@unixg.ubc.ca (Emile Woo)\nSubject: Help! - Disappearing Groups!!!\nOrganization: University of British Columbia, Vancouver, B.C., Canada\nLines: 30\nDistribution: world\nNNTP-Posting-Host: unixg.ubc.ca\n\nSalutations!\n\tI don't usually subscribe to these newsgroups so I would really\nappreciate it if someone could possibly e-mail me the answer to my problem.\nI have been using Windows 3.1 since buying it last winter but I have just\nnow come across an annoying bug. I now have about 8 different groups in\nprogram manager but it seems that everytime I install something new that\nmakes a new group, it promptly disappears after I turn of windows!\nThis happened when I installed Excel and WinFax Pro v.3. They both created\ntheir own groups but when I turned off windows and reran them, they were\ngone. I had to manually pull them up as new items and put them in a\npreviously existing group as all new gropus disappear as soon as I turn\noff windows.\n\tmy set up:\n\t\t\tprecision 386dx-25 w/ 4 megs\n\t\t\tTrident 8900c with 1 meg \n\t\t\tWindows 3.1 running in 800x600 colour mode\n\t\t\tlogitech mouseman\n\t\t\t\nThank you in advance!\n\nEmile Woo\newoo@unixg.ubc.ca\n\n\n\n-- \n------------------------------------------------------------------------------\nEmile Woo, Student Representative to Senate |  .sig unavailable. Holding \nInternet: ewoo@unixg.ubc.ca                 | referendum to decide politic- \nTel: 822-6101                               | ally correct witticism. \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4633, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: islamic genocide\nOrganization: sgi\nLines: 48\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1qjipo$pen@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n|> In article <1qinmd$sp@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> #|> \n|> #|> At any rate, even if your interpretation is correct this does \n|> #|> not imply that the killings are religously motivated, which was \n|> #|> the original poster's seeming claim.\n|> #\n|> #Tricky, tricky.   I'm replying to your blanket claim that they\n|> #are *not* religiously motivated.\n|> \n|> They aren't.  Irish catholics in the south do not kill Irish protestants\n|> in the south, yet have precisely the same history behind them.  Those\n|> who think the killings are religously motivated ignore the rather\n|> obvious matter of British occupation, partition and misguided patriotism\n|> on both sides. \n\nFalse dichotomy.  You claimed the killing were *not* religiously\nmotivated, and I'm saying that's wrong.   I'm not saying that\neach and every killing is religiously motivate, as I spelled out\nin detail.\n\n\n|> \n|> The problems fault along the religious divide because at the historical\n|> roots of this thing we have a catholic country partitioned and populated\n|> by a protestant one.   The grotesque killing of soldiers and \n|> civilians is supposedly motivated by patriotism, civil rights issues, and \n|> revenge.  It's only difficult to understand insofaras insanity is hard \n|> to understand - religion need not be invoked to explain it.  \n\nDoes anyone else see the contradiction in this paragraph?\n\n\n|> #But to claim that \"The killings in N.I are not religously \n|> #motivated.\" is grotesque.   All that means is that the Church\n|> #and believers are doing what they always do with history\n|> #they can't face: they rewrite it.\n|> \n|> You're attacking a different claim.  My claim is that when an IRA\n|> terrorist plants a bomb in Warrington s/he does not have as a motive \n|> the greater glory of God. \n\nSorry, Frank, but what I put in quotes is your own words from your\nposting <1qi83b$ec4@horus.ap.mchp.sni.de>.  Don't tell us now that \nit's a different claim.   If you can no longer stand behind your \noriginal claim, just say so.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.223+0000", "event": "documents", "entityId": 4634, "properties": {"category": "sci.electronics", "text": "From: peter.m@insane.apana.org.au (Peter Tryndoch)\nSubject: Dmm Advice Needed\nLines: 28\n\nAllMartin EmdeDMM Advice Needed\n\nME>From: mce5921@bcstec.ca.boeing.com (Martin Emde)\nME>Organization: Boeing\nME> \nME>I an currely in the market for a DMM and recently saw an add\nME>for a Kelvin 94 ($199).  Does anyone own one of these or some\nME>other brand that they are extremely happy with.  How do the \nME>small name brands compare with the Fluke and Beckman brands?\nME>I am willing to spend ~$200 for one.\nME> \nME>Any help is greatly appreciated. (please email)\nME> \nME>-Martin\n\nIf you are going to use one where it counts (eg:aviation, space scuttle, \netc) then I suggest you go and buy a Fluke (never seen a Beckman), however \nfor every other use you can buy a cheapie. I have a metex which is some \nmade up name, as I have seen the same DMM with other brand names on it, I \nbought it about 4 yrs ago for Aus$125.00 (convert that to US and you see \nthat it's definetly a cheapie.) So far it has proved to be accurate, taken \nmoderate abuse, and has many features on it (CAP, FREQ,Transistor check, \netc). I am very happy with it and would definetly not buy a fluke just for \nthe name. Hope this helps.\n\nCheers \nPeter T.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4635, "properties": {"category": "rec.autos", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: Corporation for Open Systems\nDistribution: world \nLines: 56\n\nIn <C5HI0B.26C@constellation.ecn.uoknor.edu> callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n\n>In article <1993Apr13.220105.26409@slcs.slb.com> dcd@se.houston.geoquest.slb.com (Dan Day) writes:\n>>In article <93Apr08.202003.27851@acs.ucalgary.ca> parr@acs.ucalgary.ca (Charles Parr) writes:\n>>>As a long time motorcyclist, I have never understood what\n>>>posessed auto builders to put delicate controls, which must\n>>>be used with skill and finesse, like clutches and brakes,\n>>>on the floor.\n>>>\n>>>Why not hand control? It's much much easier.\n>>\n>>In the early days, neither of these functions had power-assist, so\n>>only legs had enough strength to activate them.  Since then, it's\n>>been traditional and people would have a hard time getting\n>>used to anything else.  \n\n>Well, where, exactly, would you put a hand clutch and brake? On\n>a motorcycle, it's easy; the handlebars have a very limited\n>range of turning. Steering wheels, on the other hand, turn around\n>and around and around...which is fine for electrical relays (like\n>your cruise control and airbag)--but how many of you want to\n>lose your clutch and/or brake due to a short circuit?\n\nShades of the Edsel! They had pushbuttons in the steering wheel hub\nthat controlled the auto tranny. It was very disconcerting to shift\ninto reverse when turning a corner and the wires shorted.\n\n>There are workarounds, but there's really no reason to use hand\n>power on a car's clutch or brakes, and lightening them to the\n>point that they are \"finesse\" controls suitable for hand use\n>would increse the mechanical complexity substantially (look at\n>power brakes and non-power brakes for an example).\n\n>>I saw an experimental car that had a joystick instead of a steering\n>>wheel...\n\n>That's about useless, IMHO. \n\n>>>Another automotive oddity is separate keys for trunks, doors, and\n>>>ignitions. Why on earth would you want this?\n>>\n>>I know *I* don't.\n\n>I want a separate trunk key for security reasons; it gives me a totally\n>separate, lockable container. For door and ignition....ehhh, the same key's\n>OK, I guess.\n\n>\t\t\t\tJames\n\n>James P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \n>Callison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \n>DISCLAIMER: I'm not an engineer, but I play one at work...\n>\t\tThe forecast calls for Thunder...'89 T-Bird SC\n>   \"It's a hell of a thing, killing a man. You take away all he has \n>\tand all he's ever gonna have.\" \n>\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4636, "properties": {"category": "talk.politics.mideast", "text": "From: mucit@cs.rochester.edu (Bulent Murtezaoglu)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nIn-Reply-To: henrik@quayle.kpc.com 's message of Tue, 20 Apr 1993 23:24:49 GMT\nNntp-Posting-Host: vein.cs.rochester.edu\nOrganization: Computer Science Department, University of Rochester\n\t<MUCIT.93Apr20144400@vein.cs.rochester.edu>\n\t<1993Apr20.232449.22318@kpc.com>\n\nIn article <1993Apr20.232449.22318@kpc.com> henrik@quayle.kpc.com  writes:\nIn article <MUCIT.93Apr20144400@vein.cs.rochester.edu>, mucit@cs.rochester.edu (Bulent Murtezaoglu) writes:\n[...]\nhenrik]  Country. Turks and Azeris consistantly WANT to drag ARMENIA into the\nhenrik]  KARABAKH conflict with Azerbaijan. \n\nBM] Gimme a break.  CAPITAL letters, or NOT, the above is pure nonsense.  It\nBM] seems to me that short sighted Armenians are escalating the hostilities\n\t\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nhenrik]\tAgain, Armenians in KARABAKH are SIMPLY defending themselves. What do\nhenrik]\twant them to do. Lay down their ARMS and let Azeris walk all over them.\n\nNews reports I've seen say otherwise both location and motives wise.  \nCAPS don't change facts.\n\nBM] while hoping that Turkey will stay out.  Stop and think for a moment,\nBM] will you?  Armenia doesn't need anyone to drag her into the conflict, it\nBM] is a part of it.  \n\nhenrik]   Armenians KNEW from the begining that TURKS were FULLY engaged \nhenrik]   training AZERIS militarily to fight against  KARABAKHI-Armenians.\n\nSo?  Should I, at this point break into caps and start talking about \nDEFENSE etc.?  I don't know how 'fully engaged' Turkey is/was though.\n\nhenrik] The KARABAKHI-ARMENIANS who have lived in their HOMELAND for 3000 \nhenrik] years (CUT OFF FROM ARMENIA and GIVEN TO AZERIS BY STALIN) are the \nhenrik] ones DIRECTLY involved in the CONFLICT. They are defending \nhenrik] themselves against AZERI AGGRESSION. \n\nBM] Huh?  You didn't expect Azeri's to be friendly to forces fighting with them\nBM]  within their borders?  \n\nhenrik] Well, history is SAD. Remember, those are relocated Azeris into \nhenrik] the Armenian LAND of KARABAKH by the STALIN regime.\n\nSo I hear.  This justifies bloodshed N years after the fact?\n\nhenrik] At last, I hope that the U.S. insists that Turkey stay out of the \nhenrik] KARABAKH crisis so that the repeat of the CYPRUS invasion WILL NEVER \nhenrik] OCCUR again.\n\nBM] You're not playing with a full deck, are you?  Where would Turkey invade?\n\nhenrik] It is not up to me to speculate but I am sure Turkey would have stepped\nhenrik] into Armenia if SHE could.\n\nWhy would Turkey do that?  Do you not realize that this is a local clash\nthat Turkey never wished to see happen?  Turkey has other plans for region,\nlike economic revival, co-operation etc.  Good stuff in other words,  I'd\nbe happy to bicker with Armenians over trade barriers and such on USENET\nrather than 'who killed whom in what way' which I detest doing and wouldn't \ndo.  \n\nBM] Are you throwing the Cyprus buzzword around with s.c.g. in the header\nBM] in hopes that the Greek netters will jump the gun?  \n\nhenrik]\t   Absolutely NOT ! I am merely trying to emphasize that in many\nhenrik]\t   cases, HISTORY repeats itself. \n\nEven if one buys into your implicit premise, the sane thing to do would\nbe to try not to provoke Turkey as was done in '74.  If there'd been\na democratic government instead of a bunch of idiots in Athens at the\ntime, everybody would have stayed home with their families.  [I have no\nwish to go into the Cyprus quarrel, but I suspect what I've said is not\nonly accurate but also palatable to all parties involved]\n\nBM] Yes indeed Turkey has the military prowess to intervene, what she wishes \nBM] she had, however, is the diplomatic power to stop the hostilities and bring\nBM] the parties to the negotiating table.  That's hard to do when Armenians \nBM] are attacking Azeri towns.\n\nhenrik]\t   So, let me understand in plain WORDS what you are saying; Turkey\nhenrik]\t   wants a PEACEFUL END to this CONFLICT. NOT !!\n\nSo what do you think we want?  War, death and destruction?  \n\nhenrik]\t   I will believe it when I see it.\n\nNo, if you allow yourself to believe it you just might see it.\n\nhenrik]  Now, as far as attacking, what do you do when you see a GUN pointing\nhenrik]to your HEAD ? Do you sit there and WATCH or DEFEND yoursef(fat chance)?\n\t\nThis kind of childish rhetoric doesn't help anthing.\n\nhenrik]  Do you remember what Azeris did to the Armenians in BAKU ? All the\nhenrik]  BARBERIAN ACTS especially against MOTHERS and their CHILDREN. I mean\nhenrik]  BURNING people ALIVE !\n\nNow, some Azeri will come out and give a description of similar stuff\nperpetrated by Armenians.  One should re-hash stuff like this often to\nkeep the hatred alive, right?\n\nBM] Armenian leaders are lacking the statesmanship to recognize the \nBM]futility of armed conflict and convince their nation that a compromise that \nBM] leads to stability is much better than a military faits accomplis that's \nBM] going to cause incessant skirmishes.  \n\nhenrik]\t   Armenians in KARABAKH want PEACE and their own republic. They are \nhenrik]\t   NOT asking much. They simply want to get back what was TAKEN AWAY \nhenrik]\t   from them and GIVEN to AZERIS by STALIN. \n\nWell they obviously aren't getting anywhere with their current methods\nof asking (not very peaceful I'd say).\n\nBM] Think of 10 or 20 years down the line -- both of the newly independent \nBM] countries need to develop economically and neither one is going to wipe \nBM] the other out.   These people will be neighbors, would it not be better \nBM] to keep the bad blood between them minimal?\n\nhenrik]\t   Don't get me WRONG. I also want PEACEFUL solution to the\nhenrik]\t   conflict. But until Azeris realize that, the Armenians in\nhenrik]\t   KARABAKH will defend themselves against aggresion.\n\nI don't know if you want a solution or just want to exchange slogans.\nPeace isn't what's happening right now, furthermore what's happening\nright now isn't condusive to peace.  You can spend days and nights \nraving about how 'right' the Armenian position is and I'm sure\nthere'll be others who'd be happy to talk to you by arguing the other\nside.  If entrenched positions lead to war, and if people want peace\nthan they should sit down and talk about a compromise.  Armenia isn't\nstrong enough to exercise the 'we think we're right, and we have the \nbombs, so we'll do whatever we want, so there...' style of foreign \nrelations.  Yes you can type Stalin in caps, and give one sided\natrocity stories etc. but for peace you need to be willing to talk to \nthe other side.  You personally can choose not to do that of course,\nthis being just USENET.  The people in power shouldn't be so childish.\n\n\nBM] If you belong to the Armenian diaspora, keep in mind that what strikes\nBM] your fancy on the map is costing the local Armenians dearly in terms of \nBM] their blood and future. \n\nhenrik]\t   Again, you are taking different TURNS. Armenia HAS no intension\nhenrik]\t   to GRAB any LAND from Azerbaijan. The Armenians in KARABAKH\nhenrik]\t   are simply defending themselves UNTIL a solution is SET.\n\nAzeri's would disagree with you on this, and the maps I've seen support\nwhat they'd be saying.  It doesn't seem likely that a solution will be\nreached in this manner.  \n\nBM] It's easy to be comfortable abroad and propagandize \nBM] craziness to have your feelings about Turks tickled.  The Armenians\nBM] in Armenia and N-K will be there, with the same people you seem to hate \nBM] as their neighbors, for maybe 3000 years more.  The sooner there's peace in\nBM] the region the better it is for them and everyone else.  I'd push for\nBM] compromise if I were you instead of hitting the caps-lock and spreading\nBM] inflammatory half-truths.\n\nhenrik]   It is NOT up to me to decide the PEACE initiative. I am absolutely\nhenrik]   for it. \n\nIt didn't look it when I read your posting.  It would seem to me \nthat if you can spew mis-information about a boogey-man, you can also\ntalk about how one might avoid the nastiness.  Fair?\n\nhenrik] But, in the meantime, if you do not take care of yourself,\nhenrik] you will be WIPED out. Such as the case in the era of 1915-20 of\nhenrik] The Armenian Massacres.\n\nYou don't realize I can say the same thing about 'The Turkish Massacres.'\nYes, boys and girls, let's always talk about how bad and nasty things were.\nLet's do that so we're overwhelmed by anger, and let's do that so our\nkids will also be hateful.  Sounds crazy doesn't it?  Don't do it then.\n\nBM\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4637, "properties": {"category": "soc.religion.christian", "text": "From: norris@athena.mit.edu (Richard A Chonak)\nSubject: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nReply-To: norris@mit.edu\nOrganization: l'organisation, c'est moi\nLines: 53\n\nEric (\"Damien\"?) was presenting his views on Christianity; I'll\nrespond to a few of his points:\n\nIn article <Apr.10.05.32.36.1993.14391@athos.rutgers.edu>, gsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n|> Firstly, I am an atheist. I am not posting here as an immature flame\n|> start, but rather to express an opinion to my intended audience.\n|> \n|> <<****Strong opinions start here...****>>\n|> \n|> 1) The human being is an _animal_ who has, due to his/her advanced\n|> mental facilities, developed religion as a satisfiable solution to\n|> explain the unexplainable.  (For example the ancient Greeks believed\n|> that Apollo drove his chariot across the sky each day was real.  Due\n|> to the advancement of our technology, we know this to be false.)\n\nThis is certainly a valid objection to religion-as-explanation-of-\nnature.  \n\nFortunately for the convenience of us believers, there is a class of\nquestions that can never be reduced away by natural science.  For\nexample: why does the universe exist at all?  After all, the time-space\nworld didn't have to exist.  Why does *anything* exist? And: is it\npossible for persons (e.g. man) to come into being out of a purely\nimpersonal cosmos?  These questions which look at the real mysteries of\nlife -- the creation of the world and of persons -- provide a permanent\nindicator that the meaning of life in the material world can only be\nfound *outside* that world, in its Source.\n\n\n|> We are _just_ animals.  We need sleep, food, and we reproduce.  And we\n|> die.      \n|> \n|> Religion (especially Christianity) is nothing more than a DRUG.\n|> Some people use drugs as an escape from reality.  Christians inject\n|> themselves with jeezus and live with that high. \n\nWhen you say that man is *only* an animal, I have to think that you are\npresenting an unprovable statement -- a dogma, if you will.  And one\nthe requires a kind of \"faith\" too.   By taking such a hard line in\nyour atheism, you may have stumbled into a religion of your own.\n\nBut before you write off all Christianity as phony and shallow, I hope\nyou'll do a little research into its history and varieties, perhaps by\nreading Paul Johnson's \"A History of Christianity\".  From your remarks,\nit seems that you have been exposed to certain types of Christian\nreligion and not others.  Even an atheist should have enough faith in\nMan to know that a movement of 2000 years has to have some depth, and\nbe animated by some enduring values.\n\nWith best wishes,\n-- \nRichard Aquinas Chonak, norris@mit.edu, Usenet addict, INTP\nI have very exclusive and nuanced opinions.  License info available on request.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4638, "properties": {"category": "comp.windows.x", "text": "From: lusardi@cs.buffalo.edu (Christopher Lusardi)\nSubject: System file in /tmp\nOrganization: State University of New York at Buffalo/Comp Sci\nLines: 10\nNntp-Posting-Host: zanian.cs.buffalo.edu\n\nWhat is the directory .X11-unix for in /tmp? When I start\nx, it is created by the system. This directory wasn't created \nby root, and it contains an empty file (X0) that is owned by me. \n\n\t\t\t\t\t\t\n-- \n|  .-,                ###|For a lot of .au music: ftp sounds.sdsu.edu\n| /   /   __  ,  _    ###|then cat file.au > /dev/audio\n| \\_>/ >_/ (_/\\_/<>_     |UB library catalog:telnet bison.acsu.buffalo.edu\n|_                14261 _|(When in doubt ask: xarchie, xgopher, or xwais.)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4639, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: islamic authority over women\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 30\n\nSCOTT D. SAUYET (SSAUYET@eagle.wesleyan.edu) wrote:\n\n: Regardless of people's hidden motivations, the stated reasons for many\n: wars include religion.  Of course you can always claim that the REAL\n: reason was economics, politics, ethnic strife, or whatever.  But the\n: fact remains that the justification for many wars has been to conquer\n: the heathens.\n\n: If you want to say, for instance, that economics was the chief cause\n: of the Crusades, you could certainly make that point.  But someone\n: could come along and demonstrate that it was REALLY something else, in\n: the same manner you show that it was REALLY not religion.  You could\n: in this manner eliminate all possible causes for the Crusades.\n:         \n\nScott,\n\nI don't have to make outrageous claims about religion's affecting and\neffecting history, for the purpsoe of a.a, all I have to do point out\nthat many claims made here are wrong and do nothing to validate\natheism. At no time have I made any statement that religion was the\nsole cause of anything, what I have done is point out that those who\ndo make that kind of claim are mistaken, usually deliberately. \n\nTo credit religion with the awesome power to dominate history is to\nmisunderstand human nature, the function of religion and of course,\nhistory. I believe that those who distort history in this way know\nexaclty what they're doing, and do it only for affect.\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4640, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rick@sundance.SJSU.EDU (Richard Warner)\nSubject: Re: ATM or Truetype-which to choose? (TT for True-Effects for windows)\nOrganization: San Jose State University - Math/CS Dept.\nLines: 41\n\ngames@max.u.washington.edu writes:\n\n>In article <1993Apr3.174759.15377@seas.gwu.edu>, lai@seas.gwu.edu (William Y. Lai) writes:\n>> In article <1ov6rj$gev@gabriel.keele.ac.uk> csd25@keele.ac.uk (C.M. Yearsley) writes:\n>>>I've just bought a PC which came with a bundle of Lotus stuff, including\n>>>Adobe Type Manager version 1.15. As a newcomer to Windows, I'm\n>>>confused about which I should be using, ATM or Truetype. \n>>>\n>> ...\n\n>There is a program called true-effects for windows, that allows you to define\n>attributes for true-type fonts, and have them look like new fonts.  It will\n>give your font different backgrounds, or shadows, or reverse, etc...\n\n>It ONLY works with TT fonts.\n\nYes, and the idea was ripped off from Adobe, which has had a program\ncalled  TypeAlign for a few years now.  TypeAlign does the same thing\nfor Adobe Type 1 fonts; *and* Adobe has said that the next version\nwill work with both Adobe Type 1 and TrueType.\n\nAnd TypeAlign does some things that TrueEffects does not - including\nsome things you apparently want ...\n\n>If you want to use it, you best not want to use it with an ATM type font.\n\n>(Oh, yeah... lest you think this is a really cool program, none of the \n>effects are scalable  (like the brick background pattern is the same size\n>whether your font is 10 point of 100 point.), and it is not extensible,\n>I.E. you CAN NOT add pattern of your own.\n>And you can't rorate the background pattern...\n>And you can't make the pattern extend beyond one character\n>\t(Every character in that new font has the entire pattern in it,\n>\tAs opposed to having the SAME pattern run contiguously through\n>\ta couple of characters)\n\n>It is however cheap.\n>Maybe I will buy a copy when the next version comes out, if they fix some of\n>these gripes...\n\n>\t\t\tJohn.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4641, "properties": {"category": "rec.sport.baseball", "text": "From: genetic+@pitt.edu (David M. Tate)\nSubject: Re: MARLINS WIN! MARLINS WIN!\nArticle-I.D.: blue.7961\nOrganization: Department of Industrial Engineering\nLines: 13\n\ndwarner@journalism.indiana.edu said:\n>I only caught the tail end of this one on ESPN.  Does anyone have a report?\n>(Look at all that Teal!!!!  BLEAH!!!!!!!!!)\n\nMaybe it's just me, but the combination of those *young* faces peeking out\nfrom under oversized aqua helmets screams \"Little League\" in every fibre of\nmy being...\n\n-- \n  David M. Tate   |  (i do not know what it is about you that closes\n  posing as:      |  and opens; only something in me understands\n   e e (can       |  the pocket of your glove is deeper than Pete Rose's)\n     dy) cummings |  nobody, not even Tim Raines, has such soft hands\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4642, "properties": {"category": "sci.electronics", "text": "From: st1my@rosie.uh.edu (Stich, Christian E.)\nSubject: Re: Motorola XC68882RC33 and RC50\nOrganization: University of Houston\nLines: 26\nDistribution: world\nNNTP-Posting-Host: rosie.uh.edu\nKeywords: Motorola, FPU, 68882, 68030, 33/50 MHz, problems (FPU exception)\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <16APR199323531467@rosie.uh.edu>, st1my@rosie.uh.edu (Stich, Christian E.) writes...\n>I just installed a Motorola XC68882RC50 FPU in an Amiga A2630 board (25 MHz\n>68030 + 68882 with capability to clock the FPU separately).  Previously\n>a MC68882RC25 was installed and everything was working perfectly.  Now the\n>systems displays a yellow screen (indicating a exception) when it check for\n>the presence/type of FPU.  When I reinstall an MC68882RC25 the system works\n>fine, but with the XC68882 even at 25 MHz it does not work.  The designer\n>of the board mentioned that putting a pullup resistor on data_strobe (470 Ohm)\n>might help, but that didn't change anything.  Does anybody have some\n>suggestions what I could do?  Does this look like a CPU-FPU communications\n>problem or is the particular chip dead (it is a pull, not new)?\n>Moreover, the place I bought it from is sending me an XC68882RC33.  I thought\n>that the 68882RC33 were labeled MC not XC (for not finalized mask design). \n>Are there any MC68882RC33?\n> \n>Thanks\n>\tChristian \n> \n\nIt appears as if the problem is related to the 68882/50's need for very fast\n(and clean) signal transitions.  I got some email (Vielen Dank, Thomas) stating\nthat Motorola provides a solution for this problem in their 68030 manual.  \nSince my manual (1989) predates the 50 MHz 68030/68882s I couldn't find it.\nCould someone please email me the specifics?\n\t\tThanks\n\t\t\tChristian\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4643, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mitchell@nodecg.ncc.telecomwa.oz.au (Clive Mitchell)\nSubject: Dataproducts LZR1260 not printing correctly\nOrganization: Regional Network Systems Group, Perth\nLines: 9\n\nJust an apology in advance for posting a binary to this newsgroup.\nI've had several attempts to mail it to the original poster but \nit's not getting through intact.\n\n-- \n    _--_|\\    Clive Mitchell               ph: +61 9 4916384\n   /      \\   Regional Network Systems     mitchell@telecomwa.oz.au\n>> *_.--._/   Perth , Western Australia\n         v\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4644, "properties": {"category": "soc.religion.christian", "text": "From: mdw33310@uxa.cso.uiuc.edu (Michael D. Walker)\nSubject: Re: Question about Virgin Mary\nOrganization: University of Illinois at Urbana\nLines: 58\n\na.faris@trl.oz.au (Aziz Faris) writes:\n\n>Helllo Netters:\n\n>I was told the Bible says that God took the body of the Virgin Mary as\n>she was being carried for burial. Is this true, if so were in the Bible\n>does it say that.\n\n>Regards,\n>A.Faris\n\n>[I think you're talking about the \"assumption of the Blessed Virgin\n>Mary\".  It says that \"The Immaculate Mother of God, the ever Virgin\n>Mary, having completed the course of her earthly life, was assumed\n>body and soul into heavenly glory.\"  This was defined by a Papal\n>statement in 1950, though it had certainly been believed by some\n>before that.  Like the Immaculate Conception, this is primarily a\n>Roman Catholic doctrine, and like it, it has no direct Biblical\n>support.  Note that Catholics do not believe in \"sola scriptura\".\n>That is, they do not believe that the Bible is the only source of\n>Christian knowledge.  Thus the fact that a doctrine has little\n>Biblical support is not necessarily significant to them.  They believe\n>that truth can be passed on through traditions of the Church, and also\n>that it can be revealed to the Church.  I'm not interested in yet\n>another Catholic/Protestant argument, but if any Catholics can tell us\n>the basis for these beliefs, I think it would be appropriate.  --clh]\n\n\n\tAgain I find myself wanting to respond to a posting and having neither\nthe time nor the proper materials with me (you would think I would learn my\nlesson by now--but I'm trying to finish writing my Thesis and don't have tons\nof time.  Anyway...)\n\n\tThe basis for our (the catholic church's) belief in the assumption of\nMary, body and soul, into heaven is that, to put it simply, the apostles \nand all the early generation Christians believed it.  In fact, throughout their\nministry the apostles kept in close contact with Mary, and 11 of the 12 were\npresent when she died.  Only Thomas was missing--when he arrived several days\nlater, he asked to be shown her body, and moved with pity, Peter and several of\nthe other apostles brought him to her tomb.  When they arrived the seal was\nstill unbroken.  They broke the seal, entered, and the body was missing.  There\nwas no sign that anyone had entered, forcibly or otherwise, and everything else\nwas laid out exactly as it had been left.  The apostles present all believed\nthat Mary was assumed into heaven--and the apostles TAUGHT this in their  \npreaching (of course, this does not appear in any of the texts currently \nconsidered part of the bible, but it does appear in other writings left behind\nby several of them.)  Basicaly, as an apostolic church (ie. founded by the\napostles), we believe that the teachings of the apostles, whether written down\nin the bible or written down in other sources, is true, providing that the\nauthenticity of those other sources can be confirmed.  At least in the case of\nthe assumption of Mary, the authenticity is quite clear.\n\n\tHope this helps--I would welcome anyone who has more information to\n\tadd to what I've said.\n\t\t\t\t\t- Mike Walker\n\t\t\t\t\t  mdw33310@uxa.cso.uiuc.edu\n\t\t\t\t\t  (Univ. of Illinois)\n\t\t\t\t\t  ]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4645, "properties": {"category": "comp.windows.x", "text": "From: dyoung@media.mit.edu (David Young)\nSubject: Drawing Lines (inverse/xor)\nOrganization: MIT Media Laboratory\nLines: 40\n\nI'm trying to write some code that lets me draw lines and do rubber-band\nboxes in Motif/X.  I'm running on an 8-bit display for which I've created a\ncolormap and am using almost all of the colors.  I want to draw the lines\nin a drawing area widget -- a widget in which I'm displaying a bitmap using\nXPutImage().  If doesn't matter if the lines I draw interactively stay\naround when the window is refreshed.\n\nCurrently, to draw interactively, I begin with:\n\n   /* drawIndex is an colortable index I reserve for the Foreground */\n   /* my_default_bg_color is the color index for the background of my image */\n   palette_colors[drawIndex].red =   palette_colors[my_default_bg_color].red;\n   palette_colors[drawIndex].green = palette_colors[my_default_bg_color].green;\n   palette_colors[drawIndex].blue =  palette_colors[my_default_bg_color].blue;\n   XStoreColors( myDisplay, my_cmap, &palette_colors[DrawIndex], 1);\n   XFlush( myDisplay);\n\n   XSetFunction( myDisplay, gc, GXxor);\n   XSetForeground( myDisplay, gc, drawIndex);\n\nThen to draw I do:\n\n   XDrawLine( myDisplay, XtWindow( drawingArea1), gc, x1, y1, x2, y2);\n   XFlush( myDisplay);\n\nAnd when I'm all done, to return things to normal I do:\n\n   XSetFunction( myDisplay, gc, GXcopy);\n\n\nWhat I'd like to happen is for the lines I draw to be the inverse of\nwhatever I'm drawing over.  Instead what happens is I get white lines.  If\nthe lines are over a white background - nothing shows up.  If the lines are\nover a black area - nothing shows up!  It's very strange.  But the GXxor\nfunction seems right - since if I do a rubber-banding box, it erases and\nredraws itself correctly (ie. not disturbing the underlying image).\n\nAny suggestions what I'm doing wrong?\n\ndavid\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4646, "properties": {"category": "talk.politics.mideast", "text": "From: casper@vxcrna.cern.ch (CASPER,DAVI./PPE)\nSubject: Re: American Jewish Congress Open Letter to Clinton\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: European Organization for Nuclear Research, CERN\nLines: 50\n\nIn article <C5vBtK.F3@blaze.cs.jhu.edu>, arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes...\n>In article <22APR199300513566@vxcrna.cern.ch> casper@vxcrna.cern.ch (CASPER,DAVI./PPE) writes:\n>>>Are you aware that there is an arms embargo on all of what is/was\n>>>Yugoslavia, including Bosnia, which guarantees massive military\n>>>superiority of Serbian forces and does not allow the Bosnians to\n>>>try to defend themselves? \n>>Should we sell weapons to all sides, or just the losing one, then?\n> \n>Ending an embargo does not _we_ must sell anything at all.\n\nRight.  We'll probably end up giving them weapons.\n\n>>If the Europeans want to sell weapons to one or both sides, they are welcome\n>>as far as I'm concerned.\n> \n>You seem to oppose ending the embargo.  You know, it is difficult for Europeans\n>to sell weapons when there is an embargo in place.\n\nDuring WWII, the British managed to supply arms to the Yugoslavs despite\nGerman occupation.  If the Europeans had the will to do anything besides\nsponsoring peace conferences, they would have no problem putting any kind of\nweapon they wanted into Bosnia.\n\nI guess I would favor ending the embargo if the Congress would pass a law\nforbidding export of US military supplies to Yugoslavia, including via third\nparties.  Until then the risks of the US being drawn into a more active\nrole would be too great.  I do not see the arms embargo as a major factor in\nthe outcome of the war.\n\n>>I do not automatically accept the argument that Bosnia is any worse than\n>>other recent civil wars, say Vietnam for instance.  The difference is it is\n>>happening to white people inside Europe, with lots of TV coverage.\n> \n>But if this was the reason, and if furthermore both sides are equal, wouldn't\n>all us racist Americans be favoring the good Christians (Serbs) instead\n>of the non-Christians we really seem to favor?\n\nBoth sides are certainly not equal in the eyes of the press.  And that's\nabout all we have to go on, isn't it?  \n\nAnd I wish you'd quit hurling words like racist around.  There are many levels\nat which people react to what they see.  At the most fundamental level, you\ndo not have to consciously recognize the racial element - you simply tend to\nempathize more with people who are like yourself.  As far preferring\nChristian over Moslem, I am an atheist myself, and I think you'll agree that\nin the US, the majority of people do not typically discriminate on the basis of\nreligion, nor give it a particularly important place in their world view. \n\n\nDave\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4647, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: brinton@icd.teradyne.com (Chris Brinton)\nSubject: Re: Recommendations for a Local BUS (Cache\nReply-To: brinton@icd.teradyne.com\nOrganization: Teradyne, Inc. Boston MA\nLines: 38\n\nIn article 6819@sol.ctr.columbia.edu, penev@rockefeller.edu (Penio Penev) writes:\n>On 15 Apr 1993 20:14:20 GMT Divya Sundaram (sundaram@egr.msu.edu) wrote:\n>\n>| I would like to hear the net.wisdom and net.opinions on IDE Controllers.\n>| I would liek to get a IDE controller card for my VLB DX2 66 Motherboard.\n>| What are good options for this (preferably under $200). It MUST also work\n>| under OS/2 and be compatible with Stacker (and other Disk Compression S/W).\n>\n>I have a Maxtor 212MB on an ISA IDE controller, although my machine is\n>DX2/66 VLB. I has the save transfer rate of 0.647 MB/s regardless of\n>the variations of the ISA bus speed. I tested it with speed between\n>5.5MHz and 8.33MHz. Not _any_ difference. The problem is not the\n>interface between the controller and the memory.\n>\n>My advice: Buy 4Megs of RAM, save $70 and enjoy performance.\n>\n>--\n>Penio Penev  x7423 (212)327-7423 (w) Internet: penev@venezia.rockefeller.edu\n>\n>Disclaimer: All oppinions are mine.\n\n\nI also have a DX2/66 and a Maxtor 212. I have a local bus IDE controller (generic) and I get\n985 KB/s. I tried swapping my local bus IDE controller for an ISA IDE controller and my\ntransfer rate went to 830 KB/s. The specs for this drive show a maximum platter to controller\ntransfer rate of 2.83 MB/s. I dont know how to get there from here. The local bus interface\ngot me a little, but certainly not as much as I had hoped. I am also looking for a way to \nimprove my disk performance, but Im not convinced that the controller is the bottleneck\n(although Im willing to entertain the possibility that it is). I am already running a big\nmain memory disk cache, so Im not really interested in this solution either.\n\n---\nChris Brinton\nTeradyne, Inc.\nbrinton@icd.teradyne.com\n\n\"My opinions are my own, but you're welcome to them.\"\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4648, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wild@access.digex.com (wildstrom)\nSubject: Re: Procomm Plus for windows problems....\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 16\nNNTP-Posting-Host: access.digex.net\n\nkentiler@matt.ksu.ksu.edu (Kent P. Iler) writes:\n\n>Hi,\n>  I have normal procomm plus for dos, but I've been considering buying\n>the windows version....it got really great reviews in computer shopper.\n>I have a friend who connects to the mainframe and unix machines here\n>using it, but the screen seems to have a problem keeping up with the\n>modem....he has a 14,400 modem on a 486 50 Mhz machine.  I can't\n>see it having trouble keeping up.  His pcplus for dos works great,\n>but the windows just seems to always screw up....Is this common\n>and is there a fix?  Or is something just screwed with his machine?\n>\t\t\t\t\tKent\n\nI have no trouble running Procomm for Windows at 14.4 v.42 on a considerably \nslower 486sx. Could be a video problem but only if he has incredibly slow\nvideo.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4649, "properties": {"category": "sci.electronics", "text": "From: craig@toontown.ColumbiaSC.NCR.COM (Craig S. Williamson)\nSubject: Re: Looking for a good Spice book\nArticle-I.D.: toontown.627\nReply-To: craig@toontown.ColumbiaSC.NCR.COM (Craig S. Williamson)\nOrganization: NCR E&M Columbia, SC\nLines: 17\n\nIn article <canright.734829385@convex.com> canright@convex.com (Robert Canright) writes:\n|you might try\n|\"Computer-Aided Circuit Analysis Using SPICE\" by Walter Banzhaf,\n|at bookstores, paperback, ~$33, lots of examples. Dr. Banzhaf\n|is a teacher.\n\nIs there another book.  I have this one and don't find it helpfull in \nlearning Spice.  It would make a good reference book but I found it lacking\nfor learning Spice.  Are there any others?\n\nCraig\n\n-- \n                                             \"You took the bull by the horns\n-Craig Williamson                              and stepped in something good.\"\n Craig.Williamson@ColumbiaSC.NCR.COM               - Balki Bartokomas\n craig@toontown.ColumbiaSC.NCR.COM (home)                 Perfect Strangers\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4650, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: Re: Monitor Shut-down on 13\" Hi-Res\nFrom: sadams@eis.calstate.edu (Steven Adams)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 34\n\nJust my luck.  I did however call my local Apple dealer and he said that\nthe he thinks the serial numbers of the machines that are covered begin\nwith either 70 or 53-56, and maybe one other.  He also told me that Apple\nhad extended the service on these serial numbers for another year!!!  \n\nSo there is still hope - Get those monitor in!!\n\n\njeffh@ludwig.cc.uoregon.edu (Jeff Hite ) writes:\n> In article <1993Apr15.183527.3365@guvax.acc.georgetown.edu>  \n> hew@guvax.acc.georgetown.edu writes:\n> > THere is a defect in the 13\" hi-res monitors, bring it to a dealer and \n> > they will replace the flyback for free, I think.\n> > \n> > \n> > \tI just heard of this problem at work today and we are fixing \n> > them for free.\n> > \n> > \n> > \t________________\n> > \t- / o r r\n> \n> The service notice on the 13\" hi-res monitors expired 3/23/93 after this  \n> date Apple will NOT reimburse service providers for the fix (replacement  \n> of the hi-voltage capacitor). All you folks that have been putting up with  \n> intermittant shutdowns without getting it to your service provider missed  \n> out on the freebie. It was in force for a year. If you got it free after  \n> 3/23, you got a deal...\n> Jeff Hite\n> Computing Center\n> U of Oregon\n> jeffh@ludwig.cc.uoregon.edu\n\n--\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4651, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: make@cs.tu-berlin.de (M. Kerkhoff)\nSubject: Re: Using Microsoft Foundation Classes with Borland C++ 3.1\nOrganization: Technical University of Berlin, Germany\nLines: 17\nDistribution: usa\nNNTP-Posting-Host: troll.cs.tu-berlin.de\nMime-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\n\nHi all,\n\nhas anybody tried to compile CTRLTEST from the MFC/SAMPLES directory,\nafter compiling the MFC-libs with BWC ?\n\nSeems to me, that BWC isn't able to distinguish pointers to overloaded\nfunctions.\nFor example, imagine the following 2 (overloaded) functions:\nvoid same_name ( void ) \nvoid same_name ( int )\n \nAfter trying the whole day, I think, with BWC its impossible to take the\nadress of one of the above two functions and assign it to a properly defined\nfunction pointer. \nAm I right ? Has anybody else had this problem ?\n\n\tthanx\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4652, "properties": {"category": "comp.windows.x", "text": "From: michel@crnsu1.IN2p3.FR (6893)\nSubject: creating a GIF file.\nOrganization: The Internet\nLines: 12\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\n\n\tWe are looking for a X client which can convert a xwd or a bitmap\nfile into a gif file for use on a Macintosh.\n\n\tThanks\n\n\t\tmichel@crnsu1.in2p3.fr\n\t\tLaurent MICHEL\n\t\tCRN - GTI\n\t\tBP 20\n\t\t67037 STRASBOURG cedex (France)\n\t\tPhone (33) 88 28 62 76\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4653, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: reczek@acsu.buffalo.edu (Timothy J. Reczek)\nSubject: Wanted - dialog box to select file(s) for DOS apps\nArticle-I.D.: acsu.C5Jq1D.HCp\nOrganization: UB\nLines: 31\nOriginator: reczek@tolstoy.acsu.buffalo.edu\nNntp-Posting-Host: tolstoy.acsu.buffalo.edu\n\n\n\n\tI'm looking for a program that will let me use a windows\ncommon dialog box to select a file to use when running a DOS app.\n\n\tBasically, I have several DOS apps that I use now and then\nwith different files.  They all accept a file as a command line \nparameter, but the only way (at least that I know of) to do this\neasily when running them from windows is to set up the PIF file so\nthat it prompts me for additional parameters (at which point I type \nin the file name).  \n\nProblems are:\n\n\t1) Sometimes I can't remember where the file is exactly located and it\nwould be nice to browse my directories for it without having to use the\nfile manager.\n\t\n    and 2) I'm lazy and hate to type long pathnames for files burried \nseveral directory levels deep.\n\n\tIf anyone can point me to such a program or let me know of some\nother way to handle this, I'd appreciate it.\n\nThanks,\n\nTim\n-- \n\tThe Net isn't organized enough to be considered an anarchy\n\n  reczek@autarch.acsu.buffalo.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4654, "properties": {"category": "misc.forsale", "text": "From: dwilson@csugrad.cs.vt.edu (David Wilson)\nSubject: VIDEOCAMERA, AMIGA 3000, HP THINKJET For Sale as of 4/18\nLines: 49\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 49\n\nIf you are interested in (any of) the following, please contact me:\n        EMail           mbeck@vtssi.vt.edu\n        Phone           (703)552-4381\n        USMail          Michael Beck\n                        1200 Progress Street #5500E\n                        Blacksburg, Virginia 24060\n~~~~~~~~~~FOR SALE as of 12AM 4/16/93~~~~~~~~~~\n \n1       PANASONIC AF X8 CCD OmniMovie Camcorder\n                VHS HQ\n                High Speed Shutter\n                Flying Erase Head\n                ca. 3 years old, but only used VERY lightly\n                Date/Time stamp\n                Counter/Memory\n                Rec Review\n                Fade\n                Back Light\n                Auto/Manual Focus\n                Built in microphone/Jack for external microphone\n                Comes with:\n                        Sturdy aluminum/hardplastic carrying case\n                                (20\" long X 13\" wide X 6\" high)\n                        Shoulder strap\n                        Power adaptor/battery charger\n                        Battery pack\n                        Remote recording controller\n                        UHF/VHF ---> cable adaptor\n                        Audio/Video cables and adaptor\n                Aproximate dimensions (measured around outmost features)\n                        15\" long X 4\" wide X 8\" high (w/ handle)\n                ASKING PRICE:  $BEST OFFER so far $350, but looking for more \n                                ($700 new price)\n \n1       AMIGA 3000UX    25mhz, unix compatible machine w/100 meg Hard\n                Drive, 4 meg RAM, no monitor, keyboard (ESC and ~ keys \n                broken)\n                ASKING PRICE:   $1500 OBO.\n \n1       Hewlett Packard ThinkJet Printer w/ HP-IB interface \n                Like NEW in original box\n                ASKING PRICE:   $250 OBO.\n \nSOLD!!     AT&T Portable Cellular Phone, Model 3730\n                ASKING PRICE:   $SOLD FOR $350 (Listed at $600 new)\n \nSOLD!!  COMPAQ LTE/286 laptop - contact for details\n                BEST OFFER SO FAR $SOLD FOR $475\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4655, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: duncans@hotlips.Princeton.EDU (Duncan Smith)\nSubject: Question about LocalTalk/AppleShare on MS-DOS system\nSummary: How do I make AppleShare PC run properly under Windows or OS/2?\nOriginator: news@nimaster\nKeywords: Windows, OS/2, AppleShare PC, LocalTalk\nNntp-Posting-Host: hotlips.princeton.edu\nOrganization: Princeton University\nLines: 13\n\nIs anyone out there running a MS-DOS system with a LocalTalk board? I am on an\nAppletalk network, hooked up with a DayStar Digital LT200 MC LocalTalk\nInterface Board, running on a PS/2 Model 70. I'm using the AppleShare PC\nsoftware for file server and network access. It works fine under DOS or the\nWindow or OS/2 DOS box. But when I try to load it *before* Windows, so that\nevery application I run could get access to it, the machine crashes hard as\nsoon as I start up an application. And of course, things look pretty hopeless\nfor OS/2 (but who knows). \n\nSo, does anyone have experience with this bizarre and obsolete setup?\n\n- Duncan\n- duncans@phoenix.Princeton.EDU\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4656, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Plymouth Sundance/Dodge Shadow experiences?\nArticle-I.D.: cactus.1993Apr17.065015.3554\nDistribution: usa\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 13\n\nIn article <oprsfnx.735015349@gsusgi1.gsu.edu> oprsfnx@gsusgi2.gsu.edu (Stephen F. Nicholas) writes:\n[stuff about Dodge Shadow deleted]\n\n> As an ex-Fleet Mgr. of 3000 cars, they were amoung the most trouble free of\n>all models.  I bought one for my wife.\n\nWhat do you mean by \"all models\", all models of cars, all Chrysler models,\nall models that the fleet manager had bought? Because there is no way in\nhell that the Shadow is the most reliable car of all models sold, not\neven Chrysler's dept. of lies, damned lies and statistics would claim that.\n\nCraig\n>\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.224+0000", "event": "documents", "entityId": 4657, "properties": {"category": "misc.forsale", "text": "From: thssjyh@iitmax.iit.edu (Jianqing Hu)\nSubject: GRE software, cheap !\nOrganization: Illinois Institute of Technology / Academic Computing Center\nDistribution: usa\nLines: 11\n\n\nGRE software for MS-DOS, from StudyWare. original disk, manual.\nTutorial stuff,tests, examples and a lot more.\nRetail price is around $50.\n\nBest offer around $15.00, will pay shipping\n\nFor best results, you need a graphic display card, EGA or VGA\n\nJianqing Hu\nthssjyh@iitmax.acc.iit.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4658, "properties": {"category": "rec.motorcycles", "text": "From: bgardner@pebbles.es.com (Blaine Gardner)\nSubject: Re: Ducati 400 opinions wanted\nNntp-Posting-Host: 130.187.85.70\nOrganization: Evans & Sutherland Computer Corporation\nLines: 29\n\nIn article <1qmnga$s9q@news.ysu.edu> ak954@yfn.ysu.edu (Albion H. Bowers) writes:\n>In a previous article, bgardner@pebbles.es.com (Blaine Gardner) says:\n\n>>I guess I'm out of touch, but what exactly is the Ducati 400? A v-twin\n>>desmo, or is it that half-a-v-twin with the balance weight where the 2nd\n>>cylinder would go? A 12 second 1/4 for a 400 isn't bad at all.\n>\n>Sorry, I should have been more specific.  The 750 SS ran the quater in\n>12.10 @ 108.17.  The last small V-twin Duc we got in the US (and the 400 is\n>a Pantah based V-twin) was the 500SL Pantah, and it ran a creditable 13.0 @\n>103.  Modern carbs and what not should put the 400 in the high 12s at 105.\n>\n>BTW, FZR 400s ran mid 12s, and the latest crop of Japanese 400s will out\n>run that.  It's hard to remember, but but a new GOOF2 will clobber an old\n>KZ1000 handily, both in top end and roll-on.  Technology stands still for\n>no-one...\n\nNot too hard to remember, I bought a GS1000 new in '78. :-) It was\n3rd place in the '78 speed wars (behind the CBX & XS Eleven) with a\n11.8 @ 113 1/4 mile, and 75 horses. That wouldn't even make a good 600\nthese days. Then again, I paid $2800 for it, so technology isn't the\nonly thing that's changed. Of course I'd still rather ride the old GS\nacross three states than any of the 600's.\n\nI guess it's an indication of how much things have changed that a 12\nsecond 400 didn't seem too far out of line.\n-- \nBlaine Gardner @ Evans & Sutherland\nbgardner@dsd.es.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4659, "properties": {"category": "comp.windows.x", "text": "From: shite@sinkhole.unf.edu (Stephen Hite)\nSubject: Re: Searching for xgolf\nOrganization: University of North Florida, Jacksonville\nLines: 4\n\n   The xgolf program was an April Fool's joke <sigh>.\n\nSteve Hite\nshite@sinkhole.unf.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4660, "properties": {"category": "sci.space", "text": "From: nick@sfb256.iam.uni-bonn.de (   Nikan B Firoozye )\nSubject: Re: Sunrise/ sunset times\nOrganization: Applied Math, University of Bonn, Germany\nLines: 15\n\nA related question (which I haven't given that much serious thought \nto): at what lattitude is the average length of the day (averaged \nover the whole year) maximized? Is this function a constant=\n12 hours? Is it truly symmetric about the equator? Or is\nthere some discrepancy due to the fact that the orbit is elliptic\n(or maybe the difference is enough to change the temperature and\nmake the seasons in the southern hemisphere more bitter, but\nis far too small to make a sizeable difference in daylight\nhours)?\n\nI want to know where to move.\n\n\t-Nick Firoozye\n\tnick@sfb256.iam.uni-bonn.de\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4661, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: korenek@nmti.com (gary korenek)\nSubject: Re: HINT 486 VLB/ISA/EISA motherboard\nKeywords: 486, motherboard\nOrganization: Network Management Technology Inc.\nDistribution: usa\nLines: 26\n\nIn article <C5ovwv.LMo@news.iastate.edu> schauf@iastate.edu (Brian J Schaufenbuel) writes:\n>I am looking at buying some Companion brand VLB/ISA/EISA motherboards with\n>HINT chipsets.  Has anybody had any experience with this board (good or bad)?\n>Any information would be helpful!\n>thanks\n>Brian J Schaufenbuel\n\n\nI believe that any VL/EISA/ISA motherboard that uses the HINT chipset\nis limited to 24-bit EISA DMA (where 'real' EISA DMA is 32-bit).  The\nHINT EISA DMA has the 16 mb ram addressing limitation of ISA.  For this\nreason I would pass.  I own one of these (HAWK VL/EISA/ISA) and am look-\ning to replace it for exactly this reason.\n\nPlease double-check me on this.  In other words, call the motherboard\nmanufacturer and ask them if the motherboard supports true 32-bit EISA\nDMA.\n\nOther than this limitation, the motherboard works quite well (I am using\nmine with DOS 5, Windows 3.1, and UNIX S5R3.2).  Also with Adaptec 1742a\nEISA SCSI host adapter.\n\n-- \nGary Korenek   (korenek@nmti.com)\nNetwork Management Technology Incorporated\nSugar Land, Texas       (713) 274-5357\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4662, "properties": {"category": "rec.motorcycles", "text": "From: manish@uclink.berkeley.edu (Manish Vij)\nSubject: Shipping a bike\nOrganization: University of California, Berkeley\nLines: 10\nDistribution: world\nNNTP-Posting-Host: uclink.berkeley.edu\n\n\nCan someone recommend how to ship a motorcycle from San Francisco\nto Seattle?  And how much might it cost?\n\nI remember a thread on shipping.  If someone saved the instructions\non bike prep, please post 'em again, or email.\n\nThanks,\n\nManish\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4663, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 13/15 - Interest Groups & Publications\nKeywords: Frequently Asked Questions\nArticle-I.D.: cs.groups_733694492\nExpires: 6 May 1993 20:01:32 GMT\nDistribution: world\nOrganization: University of North Carolina, Chapel Hill\nLines: 354\nSupersedes: <groups_730956605@cs.unc.edu>\nNNTP-Posting-Host: mahler.cs.unc.edu\n\nArchive-name: space/groups\nLast-modified: $Date: 93/04/01 14:39:08 $\n\nSPACE ACTIVIST/INTEREST/RESEARCH GROUPS AND SPACE PUBLICATIONS\n\n    GROUPS\n\n    AIA -- Aerospace Industry Association. Professional group, with primary\n\tmembership of major aerospace firms. Headquartered in the DC area.\n\tActs as the \"voice of the aerospace industry\" -- and it's opinions\n\tare usually backed up by reams of analyses and the reputations of\n\tthe firms in AIA.\n\n\t    [address needed]\n\n    AIAA -- American Institute of Aeronautics and Astronautics.\n\tProfessional association, with somewhere about 30,000-40,000\n\tmembers. 65 local chapters around the country -- largest chapters\n\tare DC area (3000 members), LA (2100 members), San Francisco (2000\n\tmembers), Seattle/NW (1500), Houston (1200) and Orange County\n\t(1200), plus student chapters. Not a union, but acts to represent\n\taviation and space professionals (engineers, managers, financial\n\ttypes) nationwide. Holds over 30 conferences a year on space and\n\taviation topics publishes technical Journals (Aerospace Journal,\n\tJournal of Spacecraft and Rockets, etc.), technical reference books\n\tand is _THE_ source on current aerospace state of the art through\n\ttheir published papers and proceedings. Also offers continuing\n\teducation classes on aerospace design. Has over 60 technical\n\tcommittees, and over 30 committees for industry standards. AIAA acts\n\tas a professional society -- offers a centralized resume/jobs\n\tfunction, provides classes on job search, offers low-cost health and\n\tlife insurance, and lobbies for appropriate legislation (AIAA was\n\tone of the major organizations pushing for IRAs - Individual\n\tRetirement Accounts). Very active public policy arm -- works\n\tdirectly with the media, congress and government agencies as a\n\tlegislative liaison and clearinghouse for inquiries about aerospace\n\ttechnology technical issues. Reasonably non-partisan, in that they\n\trepresent the industry as a whole, and not a single company,\n\torganization, or viewpoint.\n\n\tMembership $70/yr (student memberships are less).\n\n\tAmerican Institute of Aeronautics and Astronautics\n\tThe Aerospace Center\n\t370 L'Enfant Promenade, SW\n\tWashington, DC 20077-0820\n\t(202)-646-7400\n\n    AMSAT - develops small satellites (since the 1960s) for a variety of\n\tuses by amateur radio enthusiasts. Has various publications,\n\tsupplies QuickTrak satellite tracking software for PC/Mac/Amiga etc.\n\n\tAmateur Satellite Corporation (AMSAT)\n\tP.O. Box 27\n\tWashington, DC 20044\n\t(301)-589-6062\n\n    ASERA - Australian Space Engineering and Research Association. An\n\tAustralian non-profit organisation to coordinate, promote, and\n\tconduct space R&D projects in Australia, involving both Australian\n\tand international (primarily university) collaborators. Activities\n\tinclude the development of sounding rockets, small satellites\n\t(especially microsatellites), high-altitude research balloons, and\n\tappropriate payloads. Provides student projects at all levels, and\n\tis open to any person or organisation interested in participating.\n\tPublishes a monthly newsletter and a quarterly technical journal.\n\n\tMembership $A100 (dual subscription)\n\tSubscriptions $A25 (newsletter only) $A50 (journal only)\n\n\tASERA Ltd\n\tPO Box 184\n\tRyde, NSW, Australia, 2112\n\temail: lindley@syd.dit.csiro.au\n\n    BIS - British Interplanetary Society. Probably the oldest pro-space\n\tgroup, BIS publishes two excellent journals: _Spaceflight_, covering\n\tcurrent space activities, and the _Journal of the BIS_, containing\n\ttechnical papers on space activities from near-term space probes to\n\tinterstellar missions. BIS has published a design study for an\n\tinterstellar probe called _Daedalus_.\n\n\tBritish Interplanetary Society\n\t27/29 South Lambeth Road\n\tLondon SW8 1SZ\n\tENGLAND\n\n\tNo dues information available at present.\n\n    ISU - International Space University. ISU is a non-profit international\n\tgraduate-level educational institution dedicated to promoting the\n\tpeaceful exploration and development of space through multi-cultural\n\tand multi-disciplinary space education and research. For further\n\tinformation on ISU's summer session program or Permanent Campus\n\tactivities please send messages to 'information@isu.isunet.edu' or\n\tcontact the ISU Executive Offices at:\n\n\tInternational Space University\n\t955 Massachusetts Avenue 7th Floor\n\tCambridge, MA 02139\n\t(617)-354-1987 (phone)\n\t(617)-354-7666 (fax)\n\n    L-5 Society (defunct). Founded by Keith and Carolyn Henson in 1975 to\n\tadvocate space colonization. Its major success was in preventing US\n\tparticipation in the UN \"Moon Treaty\" in the late 1970s. Merged with\n\tthe National Space Institute in 1987, forming the National Space\n\tSociety.\n\n    NSC - National Space Club. Open for general membership, but not well\n\tknown at all. Primarily comprised of professionals in aerospace\n\tindustry. Acts as information conduit and social gathering group.\n\tActive in DC, with a chapter in LA. Monthly meetings with invited\n\tspeakers who are \"heavy hitters\" in the field. Annual \"Outlook on\n\tSpace\" conference is _the_ definitive source of data on government\n\tannual planning for space programs. Cheap membership (approx\n\t$20/yr).\n\n\t    [address needed]\n\n    NSS - the National Space Society. NSS is a pro-space group distinguished\n\tby its network of local chapters. Supports a general agenda of space\n\tdevelopment and man-in-space, including the NASA space station.\n\tPublishes _Ad Astra_, a monthly glossy magazine, and runs Shuttle\n\tlaunch tours and Space Hotline telephone services. A major sponsor\n\tof the annual space development conference. Associated with\n\tSpacecause and Spacepac, political lobbying organizations.\n\n\tMembership $18 (youth/senior) $35 (regular).\n\n\tNational Space Society\n\tMembership Department\n\t922 Pennsylvania Avenue, S.E.\n\tWashington, DC 20003-2140\n\t(202)-543-1900\n\n    Planetary Society - founded by Carl Sagan. The largest space advocacy\n\tgroup. Publishes _Planetary Report_, a monthly glossy, and has\n\tsupported SETI hardware development financially. Agenda is primarily\n\tsupport of space science, recently amended to include an\n\tinternational manned mission to Mars.\n\n\tThe Planetary Society\n\t65 North Catalina Avenue\n\tPasadena, CA 91106\n\n\tMembership $35/year.\n\n    SSI - the Space Studies Institute, founded by Dr. Gerard O'Neill.\n\tPhysicist Freeman Dyson took over the Presidency of SSI after\n\tO'Neill's death in 1992. Publishes _SSI Update_, a bimonthly\n\tnewsletter describing work-in-progress. Conducts a research program\n\tincluding mass-drivers, lunar mining processes and simulants,\n\tcomposites from lunar materials, solar power satellites. Runs the\n\tbiennial Princeton Conference on Space Manufacturing.\n\n\tMembership $25/year. Senior Associates ($100/year and up) fund most\n\t    SSI research.\n\n\tSpace Studies Institute\n\t258 Rosedale Road\n\tPO Box 82\n\tPrinceton, NJ 08540\n\n    SEDS - Students for the Exploration and Development of Space. Founded in\n\t1980 at MIT and Princeton. SEDS is a chapter-based pro-space\n\torganization at high schools and universities around the world.\n\tEntirely student run. Each chapter is independent and coordinates\n\tits own local activities. Nationally, SEDS runs a scholarship\n\tcompetition, design contests, and holds an annual international\n\tconference and meeting in late summer.\n\n\tStudents for the Exploration and Development of Space\n\tMIT Room W20-445\n\t77 Massachusetts Avenue\n\tCambridge, MA  02139\n\t(617)-253-8897\n\temail: odyssey@athena.mit.edu\n\n\tDues determined by local chapter.\n\n    SPACECAUSE -  A political lobbying organization and part of the NSS\n\tFamily of Organizations. Publishes a bi-monthly newsletter,\n\tSpacecause News. Annual dues is $25. Members also receive a discount\n\ton _The Space Activist's Handbook_. Activities to support pro-space\n\tlegislation include meeting with political leaders and interacting\n\twith legislative staff. Spacecause primarily operates in the\n\tlegislative process.\n\n\tNational Office\t\t\tWest Coast Office\n\tSpacecause\t\t\tSpacecause\n\t922 Pennsylvania Ave. SE\t3435 Ocean Park Blvd.\n\tWashington, D.C. 20003\t\tSuite 201-S\n\t(202)-543-1900\t\t\tSanta Monica, CA 90405\n\n    SPACEPAC - A political action committee and part of the NSS Family of\n\tOrganizations. Spacepac researches issues, policies, and candidates.\n\tEach year, updates _The Space Activist's Handbook_. Current Handbook\n\tprice is $25. While Spacepac does not have a membership, it does\n\thave regional contacts to coordinate local activity. Spacepac\n\tprimarily operates in the election process, contributing money and\n\tvolunteers to pro-space candidates.\n\n\tSpacepac\n\t922 Pennsylvania Ave. SE\n\tWashington, DC 20003\n\t(202)-543-1900\n\n    UNITED STATES SPACE FOUNDATION - a public, non-profit organization\n\tsupported by member donations and dedicated to promoting\n\tinternational education, understanding and support of space. The\n\tgroup hosts an annual conference for teachers and others interested\n\tin education. Other projects include developing lesson plans that\n\tuse space to teach other basic skills such as reading. Publishes\n\t\"Spacewatch,\" a monthly B&W glossy magazine of USSF events and\n\tgeneral space news. Annual dues:\n\n\t\tCharter\t\t$50 ($100 first year)\n\t\tIndividual\t$35\n\t\tTeacher\t\t$29\n\t\tCollege student $20\n\t\tHS/Jr. High\t$10\n\t\tElementary\t $5\n\t\tFounder &     $1000+\n\t\t    Life Member\n\n\tUnited States Space Foundation\n\tPO Box 1838\n\tColorado Springs, CO 80901\n\t(719)-550-1000\n\n    WORLD SPACE FOUNDATION - has been designing and building a solar-sail\n    spacecraft for longer than any similar group; many JPL employees lend\n    their talents to this project. WSF also provides partial funding for the\n    Palomar Sky Survey, an extremely successful search for near-Earth\n    asteroids. Publishes *Foundation News* and *Foundation Astronautics\n    Notebook*, each a quarterly 4-8 page newsletter. Contributing Associate,\n    minimum of $15/year (but more money always welcome to support projects).\n\n\tWorld Space Foundation\n\tPost Office Box Y\n\tSouth Pasadena, California 91301\n\n\n    PUBLICATIONS\n\n    Aerospace Daily (McGraw-Hill)\n\tVery good coverage of aerospace and space issues. Approx. $1400/yr.\n\n    Air & Space / Smithsonian (bimonthly magazine)\n\tBox 53261\n\tBoulder, CO 80332-3261\n\t$18/year US, $24/year international\n\n    ESA - The European Space Agency publishes a variety of periodicals,\n\tgenerally available free of charge. A document describing them in\n\tmore detail is in the Ames SPACE archive in\n\tpub/SPACE/FAQ/ESAPublications.\n\n    Final Frontier (mass-market bimonthly magazine) - history, book reviews,\n\tgeneral-interest articles (e.g. \"The 7 Wonders of the Solar System\",\n\t\"Everything you always wanted to know about military space\n\tprograms\", etc.)\n\n\tFinal Frontier Publishing Co.\n\tPO Box 534\n\tMt. Morris, IL 61054-7852\n\t$14.95/year US, $19.95 Canada, $23.95 elsewhere\n\n    Space News (weekly magazine) - covers US civil and military space\n\tprograms. Said to have good political and business but spotty\n\ttechnical coverage.\n\n\tSpace News\n\tSpringfield VA 22159-0500\n\t(703)-642-7330\n\t$75/year, may have discounts for NSS/SSI members\n\n    Journal of the Astronautical Sciences and Space Times - publications of\n\tthe American Astronautical Society. No details.\n\n\tAAS Business Office\n\t6352 Rolling Mill Place, Suite #102\n\tSpringfield, VA 22152\n\t(703)-866-0020\n\n    GPS World (semi-monthly) - reports on current and new uses of GPS, news\n\tand analysis of the system and policies affecting it, and technical\n\tand product issues shaping GPS applications.\n\n\tGPS World\n\t859 Willamette St.\n\tP.O. Box 10460\n\tEugene, OR 97440-2460\n\t(503)-343-1200\n\n\tFree to qualified individuals; write for free sample copy.\n\n    Innovation (Space Technology) -- Free. Published by the NASA Office of\n\tAdvanced Concepts and Technology. A revised version of the NASA\n\tOffice of Commercial Programs newsletter.\n\n    Planetary Encounter - in-depth technical coverage of planetary missions,\n\twith diagrams, lists of experiments, interviews with people directly\n\tinvolved.\n    World Spaceflight News - in-depth technical coverage of near-Earth\n\tspaceflight. Mostly covers the shuttle: payload manifests, activity\n\tschedules, and post-mission assessment reports for every mission.\n\n\tBox 98\n\tSewell, NJ 08080\n\t$30/year US/Canada\n\t$45/year elsewhere\n\n    Space (bi-monthly magazine)\n\tBritish aerospace trade journal. Very good. $75/year.\n\n    Space Calendar (weekly newsletter)\n\n    Space Daily/Space Fax Daily  (newsletter)\n\tShort (1 paragraph) news notes. Available online for a fee\n\t(unknown).\n\n    Space Technology Investor/Commercial Space News -- irregular Internet\n\tcolumn on aspects of commercial space business. Free. Also limited\n\tfax and paper edition.\n\n\t    P.O. Box 2452\n\t    Seal Beach, CA 90740-1452.\n\n    All the following are published by:\n\n\tPhillips Business Information, Inc.\n\t7811 Montrose Road\n\tPotomac, MC 20854\n\n\tAerospace Financial News - $595/year.\n\tDefense Daily - Very good coverage of space and defense issues.\n\t    $1395/year.\n\tSpace Business News (bi-weekly) - Very good overview of space\n\t    business activities. $497/year.\n\tSpace Exploration Technology (bi-weekly) - $495/year.\n\tSpace Station News (bi-weekly) - $497/year.\n\n    UNDOCUMENTED GROUPS\n\n\tAnyone who would care to write up descriptions of the following\n\tgroups (or others not mentioned) for inclusion in the answer is\n\tencouraged to do so.\n\n\tAAS - American Astronautical Society\n\tOther groups not mentioned above\n\nNEXT: FAQ #14/15 - How to become an astronaut\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4664, "properties": {"category": "misc.forsale", "text": "From: arvind@acuson.com (Arvind Jain)\nSubject: FOR SALE: Airline ticket for 48 States + Canada\nSummary: Airline ticket for 48 States + Cananda\nKeywords: sale ticket airline travel\nOrganization: Acuson; Mountain View, California\nDistribution: misc\nLines: 14\n\nFOR SALE:\n\n\tNorthwest Airline Fly-Write ticket for travel within the 48 states \n\tand Canada from anywhere in the country.\n\n\t2 One Way - $200 (each)\n\t1 Round Trip - $350\n\n\tThis ticket has no restrictions, and is fully transferable.  However,\n\ttravel has to be completed buy June 4.\n\n\temail: arvind@acuson.com\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4665, "properties": {"category": "sci.med", "text": "From: david@stat.com (David Dodell)\nSubject: HICN610 Medical Newsletter Part 1/4\nReply-To: david@stat.com (David Dodell)\nDistribution: world\nOrganization: Stat Gateway Service, WB7TPY\nLines: 708\n\n\n------------- cut here -----------------\nVolume  6, Number 10                                           April 20, 1993\n\n              +------------------------------------------------+\n              !                                                !\n              !              Health Info-Com Network           !\n              !                Medical Newsletter              !\n              +------------------------------------------------+\n                         Editor: David Dodell, D.M.D.\n    10250 North 92nd Street, Suite 210, Scottsdale, Arizona 85258-4599 USA\n                          Telephone +1 (602) 860-1121\n                              FAX +1 (602) 451-1165\n\nCompilation Copyright 1993 by David Dodell,  D.M.D.  All  rights  Reserved.  \nLicense  is  hereby  granted  to republish on electronic media for which no \nfees are charged,  so long as the text of this copyright notice and license \nare attached intact to any and all republished portion or portions.  \n\nThe Health Info-Com Network Newsletter is  distributed  biweekly.  Articles \non  a medical nature are welcomed.  If you have an article,  please contact \nthe editor for information on how to submit it.  If you are  interested  in \njoining the automated distribution system, please contact the editor.  \n\nE-Mail Address:\n                                    Editor:  \n                          Internet: david@stat.com\n                              FidoNet = 1:114/15\n                           Bitnet = ATW1H@ASUACAD \nLISTSERV = MEDNEWS@ASUACAD.BITNET (or internet: mednews@asuvm.inre.asu.edu) \n                         anonymous ftp = vm1.nodak.edu\n               Notification List = hicn-notify-request@stat.com\n                 FAX Delivery = Contact Editor for information\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n                       T A B L E   O F   C O N T E N T S\n\n\n1.  Comments & News from the Editor\n     OCR / Scanner News ...................................................  1\n\n2.  Centers for Disease Control and Prevention - MMWR\n     [16 April 1993] Emerging Infectious Diseases .........................  3\n     Outbreak of E. coli Infections from Hamburgers .......................  5\n     Use of Smokeless Tobacoo Among Adults ................................ 10\n     Gonorrhea ............................................................ 14\n     Impact of Adult Safety-Belt Use on Children less than 11 years Age ... 17\n     Publication of CDC Surveillance Summaries ............................ 21\n\n3.  Clinical Research News\n     High Tech Assisted Reproductive Technologies ......................... 24\n\n4.  Articles\n     Low Levels Airborne Particles Linked to Serious Asthma Attacks ....... 29\n     NIH Consensus Development Conference on Melanoma ..................... 31\n     National Cancer Insitute Designated Cancer Centers ................... 32\n\n5.  General Announcments\n     UCI Medical Education Software Repository ............................ 40\n\n6.  AIDS News Summaries\n     AIDS Daily Summary April 12 to April 15, 1993 ........................ 41\n\n7.  AIDS/HIV Articles\n     First HIV Vaccine Trial Begins in HIV-Infected Children .............. 47\n     New Evidence that the HIV Can Cause Disease Independently ............ 50\n     Clinical Consultation Telephone Service for AIDS ..................... 52\n\n\n\n\n\nHICNet Medical Newsletter                                            Page    i\nVolume  6, Number 10                                           April 20, 1993\n\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n                        Comments & News from the Editor\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\nI would like to continue to thank everyone who has sent in a donation for the \nMednews OCR/Scanner Fund.  We have reached our goal!  A Hewlett Packard\nScanjet IIp was purchased this week.\n\nThank you to the following individuals whose contributions I just received:\n\nJohn Sorenson\nCarol Sigelman\nCarla Moore\nBarbara Moose\nJudith Schrier\n\nAgain, thank you to all who gave!\n\nI have been using Wordscan Plus for the past couple of weeks and would like to \nreview the product.  Wordscan Plus is a product of Calera Recognition Systems.  \nIt runs under Windows 3.1 and supports that Accufont Technology of the Hewlett \nPackard Scanners.  \n\nWhen initially bringing up the software, it lets you select several options; \n(1) text / graphics (2) input source ie scanner, fax file, disk file (3) \nautomatic versus manual decomposition of the scanned image. \n\nI like manual decomposition since the software then lets me select which \nparts of the document I would like scanned, and in what order.\n\nOnce an image is scanned, you can bring up the Pop-Up image verification.  The \nsoftware gives you two \"errors\" at this point.  Blue which are words that were \nconverted reliability, but do not match anything in the built-in dictionary.  \nYellow shade, which are words that Wordscan Plus doesn't think it converted \ncorrectly at all.  I have found that the software should give itself more \ncredit.  It is usually correct, instead of wrong.  If a word is shaded blue, \nyou can add it to your personal dictionary.  The only problem is the personal \ndictionary will only handle about 200 words.  I find this to be very limited, \nconsidering how many medical terms are not in a normal dictionary. \n\nAfter a document is converted, you can save it in a multitude of word \nprocessor formats.  Also any images that were captured can be stored in a \nseperate TIFF or PCX file format.\n\nI was extremely impressed on the percent accuracy for fax files.  I use \n\nHICNet Medical Newsletter                                              Page  1\nVolume  6, Number 10                                           April 20, 1993\n\nan Intel Satisfaxtion card, which stores incoming faxs in a PCX/DCX format.  \nWhile most of my faxes were received in \"standard\" mode (200x100 dpi), the \naccuracy of Wordscan Plus was excellent. \n\nOverall, a very impressive product.  The only fault I could find is the \nlimitations of the size of the user dictionary.  200 specialized words is just \ntoo small. \n\nIf anyone has any specific questions, please do not hesitate to send me email.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page  2\nVolume  6, Number 10                                           April 20, 1993\n\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n               Centers for Disease Control and Prevention - MMWR\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n                         Emerging Infectious Diseases\n                         ============================\n                   SOURCE: MMWR 42(14)   DATE: Apr 16, 1993\n\n                                 Introduction\n\n     Despite predictions earlier this century that infectious diseases would \nsoon be eliminated as a public health problem (1), infectious diseases remain \nthe major cause of death worldwide and a leading cause of illness and death in \nthe United States. Since the early 1970s, the U.S. public health system has \nbeen challenged by a myriad of newly identified pathogens and syndromes (e.g., \nEscherichia coli O157:H7, hepatitis C virus, human immunodeficiency virus, \nLegionnaires disease, Lyme disease, and toxic shock syndrome). The incidences \nof many diseases widely presumed to be under control, such as cholera, \nmalaria, and tuberculosis (TB), have increased in many areas. Furthermore, \ncontrol and prevention of infectious diseases are undermined by drug \nresistance in conditions such as gonorrhea, malaria, pneumococcal disease, \nsalmonellosis, shigellosis, TB, and staphylococcal infections (2). Emerging \ninfections place a disproportionate burden on immunocompromised persons, those \nin institutional settings (e.g., hospitals and child day care centers), and \nminority and underserved populations. The substantial economic burden of \nemerging infections on the U.S. health-care system could be reduced by more \neffective surveillance systems and targeted control and prevention programs \n(3). \n     This issue of MMWR introduces a new series, \"Emerging Infectious \nDiseases.\" Future articles will address these diseases, as well as \nsurveillance, control, and prevention efforts by health-care providers and \npublic health officials. This first article updates the ongoing investigation \nof an outbreak of E. coli O157:H7 in the western United States (4). \n\nReferences\n\n1. Burnet M. Natural history of infectious disease. Cambridge, England: \nCambridge University Press, 1963. \n\n2. Kunin CM. Resistance to antimicrobial drugs -- a worldwide calamity. Ann \nIntern Med 1993;118:557-61. \n\n3. Lederberg J, Shope RE, Oaks SC Jr, eds. Emerging infections: microbial \nthreats to health in the United States. Washington, DC: National Academy \nPress, 1992. \n\nHICNet Medical Newsletter                                              Page  3\nVolume  6, Number 10                                           April 20, 1993\n\n\n4. CDC. Preliminary report: foodborne outbreak of Escherichia coli O157:H7 \ninfections from hamburgers --western United States, 1993. MMWR 1993;42:85-6.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page  4\nVolume  6, Number 10                                           April 20, 1993\n\n            Update: Multistate Outbreak of Escherichia coli O157:H7\n             Infections from Hamburgers -- Western United States,\n                                   1992-1993\n            =======================================================\n                   SOURCE: MMWR 42(14)   DATE: Apr 16, 1993\n\n     From November 15, 1992, through February 28, 1993, more than 500 \nlaboratory-confirmed infections with E. coli O157:H7 and four associated \ndeaths occurred in four states -- Washington, Idaho, California, and Nevada. \nThis report summarizes the findings from an ongoing investigation (1) that \nidentified a multistate outbreak resulting from consumption of hamburgers from \none restaurant chain. Washington \n     On January 13, 1993, a physician reported to the Washington Department of \nHealth a cluster of children with hemolytic uremic syndrome (HUS) and an \nincrease in emergency room visits for bloody diarrhea. During January 16-17, a \ncase-control study comparing 16 of the first cases of bloody diarrhea or \npostdiarrheal HUS identified with age- and neighborhood-matched controls \nimplicated eating at chain A restaurants during the week before symptom onset \n(matched odds ratio OR=undefined; lower confidence limit=3.5). On January \n18, a multistate recall of unused hamburger patties from chain A restaurants \nwas initiated. \n     As a result of publicity and case-finding efforts, during January-\nFebruary 1993, 602 patients with bloody diarrhea or HUS were reported to the \nstate health department. A total of 477 persons had illnesses meeting the case \ndefinition of culture-confirmed E. coli O157:H7 infection or postdiarrheal HUS \n(Figure 1). Of the 477 persons, 52 (11%) had close contact with a person with \nconfirmed E. coli O157:H7 infection during the week preceding onset of \nsymptoms. Of the remaining 425 persons, 372 (88%) reported eating in a chain A \nrestaurant during the 9 days preceding onset of symptoms. Of the 338 patients \nwho recalled what they ate in a chain A restaurant, 312 (92%) reported eating \na regular-sized hamburger patty. Onsets of illness peaked from January 17 \nthrough January 20. Of the 477 casepatients, 144 (30%) were hospitalized; 30 \ndeveloped HUS, and three died. The median age of patients was 7.5 years \n(range: 0-74 years). Idaho \n     Following the outbreak report from Washington, the Division of Health, \nIdaho Department of Health and Welfare, identified 14 persons with culture-\nconfirmed E. coli O157:H7 infection, with illness onset dates from December \n11, 1992, through February 16, 1993 (Figure 2A). Four persons were \nhospitalized; one developed HUS. During the week preceding illness onset, 13 \n(93%) had eaten at a chain A restaurant. California \n     In late December, the San Diego County Department of Health Services was \nnotified of a child with E. coli O157:H7 infection who subsequently died. \nActive surveillance and record review then identified eight other persons with \nE. coli O157:H7 infections or HUS from mid-November through mid-January 1993. \nFour of the nine reportedly had recently eaten at a chain A restaurant and \n\nHICNet Medical Newsletter                                              Page  5\nVolume  6, Number 10                                           April 20, 1993\n\nfour at a chain B restaurant in San Diego. After the Washington outbreak was \nreported, reviews of medical records at five hospitals revealed an overall 27% \nincrease in visits or admissions for diarrhea during December 1992 and January \n1993 compared with the same period 1 year earlier. A case was defined as \npostdiarrheal HUS, bloody diarrhea that was culture negative or not cultured, \nor any diarrheal illness in which stool culture yielded E. coli O157:H7, with \nonset from November 15, 1992, through January 31, 1993. \n     Illnesses of 34 patients met the case definition (Figure 2B). The \noutbreak strain was identified in stool specimens of six patients. Fourteen \npersons were hospitalized, seven developed HUS, and one child died. The median \nage of case-patients was 10 years (range: 1-58 years). A case-control study of \nthe first 25 case-patients identified and age- and sex-matched community \ncontrols implicated eating at a chain A restaurant in San Diego (matched \nOR=13; 95% confidence interval CI=1.7-99). A study comparing case-patients \nwho ate at chain A restaurants with well meal companions implicated regular-\nsized hamburger patties (matched OR=undefined; lower confidence limit=1.3). \nChain B was not statistically associated with illness. Nevada \n     On January 22, after receiving a report of a child with HUS who had eaten \nat a local chain A restaurant, the Clark County (Las Vegas) Health District \nissued a press release requesting that persons with recent bloody diarrhea \ncontact the health department. A case was defined as postdiarrheal HUS, bloody \ndiarrhea that was culture negative or not cultured, or any diarrheal illness \nwith a stool culture yielding the Washington strain of E. coli O157:H7, with \nonset from December 1, 1992, through February 7, 1993. Because local \nlaboratories were not using sorbitol MacConkey (SMAC) medium to screen stools \nfor E. coli O157:H7, this organism was not identified in any patient. After \nSMAC medium was distributed, the outbreak strain was detected in the stool of \none patient 38 days after illness onset. \n     Of 58 persons whose illnesses met the case definition (Figure 2C), nine \nwere hospitalized; three developed HUS. The median age was 30.5 years (range: \n0-83 years). Analysis of the first 21 patients identified and age- and sex-\nmatched community controls implicated eating at a chain A restaurant during \nthe week preceding illness onset (matched OR=undefined; lower confidence \nlimit=4.9). A case-control study using well meal companions of case-patients \nalso implicated eating hamburgers at chain A (matched OR=6.0; 95% CI=0.7-\n49.8). Other Investigation Findings \n     During the outbreak, chain A restaurants in Washington linked with cases \nprimarily were serving regular-sized hamburger patties produced on November \n19, 1992; some of the same meat was used in \"jumbo\" patties produced on \nNovember 20, 1992. The outbreak strain of E. coli O157:H7 was isolated from 11 \nlots of patties produced on those two dates; these lots had been distributed \nto restaurants in all states where illness occurred. Approximately 272,672 \n(20%) of the implicated patties were recovered by the recall. \n     A meat traceback by a CDC team identified five slaughter plants in the \nUnited States and one in Canada as the likely sources of carcasses used in the \n\nHICNet Medical Newsletter                                              Page  6\nVolume  6, Number 10                                           April 20, 1993\n\ncontaminated lots of meat and identified potential control points for reducing \nthe likelihood of contamination. The animals slaughtered in domestic slaughter \nplants were traced to farms and auctions in six western states. No one \nslaughter plant or farm was identified as the source. \n     Further investigation of cases related to secondary transmission in \nfamilies and child day care settings is ongoing. \n\nReported by: M Davis, DVM, C Osaki, MSPH, Seattle-King County Dept of Public \nHealth; D Gordon, MS, MW Hinds, MD, Snohomish Health District, Everett; K \nMottram, C Winegar, MPH, Tacoma-Pierce County Health Dept; ED Avner, MD, PI \nTarr, MD, Dept of Pediatrics, D Jardine, MD, Depts of Anesthesiology and \nPediatrics, Univ of Washington School of Medicine and Children's Hospital and \nMedical Center, Seattle; M Goldoft, MD, B Bartleson, MPH; J Lewis, JM \nKobayashi, MD, State Epidemiologist, Washington Dept of Health. G Billman, MD, \nJ Bradley, MD, Children's Hospital, San Diego; S Hunt, P Tanner, RES, M \nGinsberg, MD, San Diego County Dept of Health Svcs; L Barrett, DVM, SB Werner, \nMD, GW Rutherford, III, MD, State Epidemiologist, California Dept of Health \nSvcs. RW Jue, Central District Health Dept, Boise; H Root, Southwest District \nHealth Dept, Caldwell; D Brothers, MA, RL Chehey, MS, RH Hudson, PhD, Div of \nHealth, Idaho State Public Health Laboratory, FR Dixon, MD, State \nEpidemiologist, Div of Health, Idaho Dept of Health and Welfare. DJ Maxson, \nEnvironmental Epidemiology Program, L Empey, PA, O Ravenholt, MD, VH Ueckart, \nDVM, Clark County Health District, Las Vegas; A DiSalvo, MD, Nevada State \nPublic Health Laboratory; DS Kwalick, MD, R Salcido, MPH, D Brus, DVM, State \nEpidemiologist, Div of Health, Nevada State Dept of Human Resources. Center \nfor Food Safety and Applied Nutrition, Food and Drug Administration. Food \nSafety Inspection Svc, Animal and Plant Health Inspection Svc, US Dept of \nAgriculture. Div of Field Epidemiology, Epidemiology Program Office; Enteric \nDiseases Br, Div of Bacterial and Mycotic Diseases, National Center for \nInfectious Diseases, CDC. \n\nEditorial Note: E. coli O157:H7 is a pathogenic gram-negative bacterium first \nidentified as a cause of illness in 1982 during an outbreak of severe bloody \ndiarrhea traced to contaminated hamburgers (2). This pathogen has since \nemerged as an important cause of both bloody diarrhea and HUS, the most common \ncause of acute renal failure in children. Outbreak investigations have linked \nmost cases with the consumption of undercooked ground beef, although other \nfood vehicles, including roast beef, raw milk, and apple cider, also have been \nimplicated (3). Preliminary data from a CDC 2-year, nationwide, multicenter \nstudy revealed that when stools were routinely cultured for E. coli O157:H7 \nthat organism was isolated more frequently than Shigella in four of 10 \nparticipating hospitals and was isolated from 7.8% of all bloody stools, a \nhigher rate than for any other pathogen. \n     Infection with E. coli O157:H7 often is not recognized because most \nclinical laboratories do not routinely culture stools for this organism on \n\nHICNet Medical Newsletter                                              Page  7\nVolume  6, Number 10                                           April 20, 1993\n\nSMAC medium, and many clinicians are unaware of the spectrum of illnesses \nassociated with infection (4). The usual clinical manifestations are diarrhea \n(often bloody) and abdominal cramps; fever is infrequent. Younger age groups \nand the elderly are at highest risk for clinical manifestations and \ncomplications. Illness usually resolves after 6-8 days, but 2%-7% of patients \ndevelop HUS, which is characterized by hemolytic anemia, thrombocytopenia, \nrenal failure, and a death rate of 3%-5%. \n     This report illustrates the difficulties in recognizing community \noutbreaks of E. coli O157:H7 in the absence of routine surveillance. Despite \nthe magnitude of this outbreak, the problem may not have been recognized in \nthree states if the epidemiologic link had not been established in Washington \n(1). Clinical laboratories should routinely culture stool specimens from \npersons with bloody diarrhea or HUS for E. coli O157:H7 using SMAC agar (5). \nWhen infections with E. coli O157:H7 are identified, they should be reported \nto local health departments for further evaluation and, if necessary, public \nhealth action to prevent further cases. \n     E. coli O157:H7 lives in the intestines of healthy cattle, and can \ncontaminate meat during slaughter. CDC is collaborating with the U.S. \nDepartment of Agriculture's Food Safety Inspection Service to identify \ncritical control points in processing as a component of a program to reduce \nthe likelihood of pathogens such as E. coli O157:H7 entering the meat supply. \nBecause slaughtering practices can result in contamination of raw meat with \npathogens, and because the process of grinding beef may transfer pathogens \nfrom the surface of the meat to the interior, ground beef is likely to be \ninternally contaminated. The optimal food protection practice is to cook \nground beef thoroughly until the interior is no longer pink, and the juices \nare clear. In this outbreak, undercooking of hamburger patties likely played \nan important role. The Food and Drug Administration (FDA) has issued interim \nrecommendations to increase the internal temperature for cooked hamburgers to \n155 F (86.1 C) (FDA, personal communication, 1993). \n     Regulatory actions stimulated by the outbreak described in this report \nand the recovery of thousands of contaminated patties before they could be \nconsumed emphasize the value of rapid public health investigations of \noutbreaks. The public health impact and increasing frequency of isolation of \nthis pathogen underscore the need for improved surveillance for infections \ncaused by E. coli O157:H7 and for HUS to better define the epidemiology of E. \ncoli O157:H7. \n\nReferences\n\n1. CDC. Preliminary report: foodborne outbreak of Escherichia coli O157:H7 \ninfections from hamburgers --western United States, 1993. MMWR 1993;42:85-6. \n\n2. Riley LW, Remis RS, Helgerson SD, et al. Hemorrhagic colitis associated \nwith a rare Escherichia coli serotype. N Engl J Med 1983;308:681-5. \n\nHICNet Medical Newsletter                                              Page  8\nVolume  6, Number 10                                           April 20, 1993\n\n\n3. Griffin PM, Tauxe RV. The epidemiology of infections caused by Escherichia \ncoli O157:H7, other enterohemorrhagic E. coli, and the associated hemolytic \nuremic syndrome. Epidemiol Rev 1991;13:60-98. \n\n4. Griffin PM, Ostroff SM, Tauxe RV, et al. Illnesses associated with \nEscherichia coli O157:H7 infections: a broad clinical spectrum. Ann Intern Med \n1988;109:705-12. \n\n5. March SB, Ratnam S. Latex agglutination test\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page  9\nVolume  6, Number 10                                           April 20, 1993\n\n            Use of Smokeless Tobacco Among Adults -- United States,\n                                     1991\n            =======================================================\n                   SOURCE: MMWR 42(14)   DATE: Apr 16, 1993\n\n     Consumption of moist snuff and other smokeless tobacco products in the \nUnited States almost tripled from 1972 through 1991 (1). Long-term use of \nsmokeless tobacco is associated with nicotine addiction and increased risk of \noral cancer (2) -- the incidence of which could increase if young persons who \ncurrently use smokeless tobacco continue to use these products frequently (1). \nTo monitor trends in the prevalence of use of smokeless tobacco products, \nCDC's 1991 National Health Interview Survey-Health Promotion and Disease \nPrevention supplement (NHIS-HPDP) collected information on snuff and chewing \ntobacco use and smoking from a representative sample of the U.S. civilian, \nnoninstitutionalized population aged greater than or equal to 18 years. This \nreport summarizes findings from this survey. \n     The 1991 NHIS-HPDP supplement asked \"Have you used snuff at least 20 \ntimes in your entire life?\" and \"Do you use snuff now?\" Similar questions were \nasked about chewing tobacco use and cigarette smoking. Current users of \nsmokeless tobacco were defined as those who reported snuff or chewing tobacco \nuse at least 20 times and who reported using snuff or chewing tobacco at the \ntime of the interview; former users were defined as those who reported having \nused snuff or chewing tobacco at least 20 times and not using either at the \ntime of the interview. Ever users of smokeless tobacco included current and \nformer users. Current smokers were defined as those who reported smoking at \nleast 100 cigarettes and who were currently smoking and former smokers as \nthose who reported having smoked at least 100 cigarettes and who were not \nsmoking now. Ever smokers included current and former smokers. Data on \nsmokeless tobacco use were available for 43,732 persons aged greater than or \nequal to 18 years and were adjusted for nonresponse and weighted to provide \nnational estimates. Confidence intervals (CIs) were calculated by using \nstandard errors generated by the Software for Survey Data Analysis (SUDAAN) \n(3). \n     In 1991, an estimated 5.3 million (2.9%) U.S. adults were current users \nof smokeless tobacco, including 4.8 million (5.6%) men and 533,000 (0.6%) \nwomen. For all categories of comparison, the prevalence of smokeless tobacco \nuse was substantially higher among men. For men, the prevalence of use was \nhighest among those aged 18-24 years (Table 1); for women, the prevalence was \nhighest among those aged greater than or equal to 75 years. The prevalence of \nsmokeless tobacco use among men was highest among American Indians/Alaskan \nNatives and whites; the prevalence among women was highest among American \nIndians/Alaskan Natives and blacks. Among both men and women, prevalence of \nsmokeless tobacco use declined with increasing education. Prevalence was \nsubstantially higher among residents of the southern United States and in \nrural areas. Although the prevalence of smokeless tobacco use was higher among \n\nHICNet Medical Newsletter                                              Page 10\nVolume  6, Number 10                                           April 20, 1993\n\nmen and women below the poverty level, * this difference was significant only \nfor women (p less than 0.05) (Table 1). \n     Among men, the prevalence of current use of snuff was highest among those \naged 18-44 years but varied considerably by age; the prevalence of use of \nchewing tobacco was more evenly distributed by age group (Table 2). Although \nwomen rarely used smokeless tobacco, the prevalence of snuff use was highest \namong those aged greater than or equal to 75 years. \n     An estimated 7.9 million (4.4% 95% CI=4.1-4.6) adults reported being \nformer smokeless tobacco users. Among ever users, the proportion who were \nformer smokeless tobacco users was 59.9% (95% CI=57.7-62.1). Among persons \naged 18-24 years, the proportion of former users was lower among snuff users \n(56.2% 95% CI=49.4-63.0) than among chewing tobacco users (70.4% 95% \nCI=64.2-76.6). Among persons aged 45-64 years, the proportion of former users \nwas similar for snuff (68.9% 95% CI=63.1-74.7) and chewing tobacco (73.5% \n95% CI=68.9-78.1). \n     Among current users of smokeless tobacco, 22.9% (95% CI=19.9-26.0) \ncurrently smoked, 33.3% (95% CI=30.0-36.5) formerly smoked, and 43.8% (95% \nCI=39.9-47.7) never smoked. In comparison, among current smokers, 2.6% (95% \nCI=2.3-3.0) were current users of smokeless tobacco. \n     Daily use of smokeless tobacco was more common among snuff users (67.3% \n95% CI=63.2-71.4) than among chewing tobacco users (45.1% 95% CI=40.6-\n49.6). \n\nReported by: Office on Smoking and Health, National Center for Chronic Disease \nPrevention and Health Promotion; Div of Health Interview Statistics, National \nCenter for Health Statistics, CDC. \n\nEditorial Note: The findings in this report indicate that the use of smokeless \ntobacco was highest among young males. Adolescent and young adult males, in \nparticular, are the target of marketing strategies by tobacco companies that \nlink smokeless tobacco with athletic performance and virility. Use of oral \nsnuff has risen markedly among professional baseball players, encouraging this \nbehavior among adolescent and young adult males and increasing their risk for \nnicotine addiction, oral cancer, and other mouth disorders (4). \n     Differences in the prevalence of smokeless tobacco use among \nracial/ethnic groups may be influenced by differences in educational levels \nand socioeconomic status as well as social and cultural phenomena that require \nfurther explanation. For example, targeted marketing practices may play a role \nin maintaining or increasing prevalence among some groups, and affecting the \ndifferential initiation of smokeless tobacco use by young persons (5,6). \n     In this report, one concern is that nearly one fourth of current \nsmokeless tobacco users also smoke cigarettes. In the 1991 NHIS-HPDP, the \nprevalence of cigarette smoking was higher among former smokeless tobacco \nusers than among current and never smokeless tobacco users. In a previous \nstudy among college students, 18% of current smokeless tobacco users smoked \n\nHICNet Medical Newsletter                                              Page 11\nVolume  6, Number 10                                           April 20, 1993\n\noccasionally (7). In addition, approximately 7% of adults who formerly smoked \nreported substituting other tobacco products for cigarettes in an effort to \nstop smoking (8). Health-care providers should recognize the potential health \nimplications of concurrent smokeless tobacco and cigarette use. \n     The national health objectives for the year 2000 have established special \npopulation target groups for the reduction of the prevalence of smokeless \ntobacco use, including males aged 12-24 years (to no more than 4% by the year \n2000 objective 3.9) and American Indian/Alaskan Native youth (to no more \nthan 10% by the year 2000 objective 3.9a) (9). Strategies to lower the \nprevalence of smokeless tobacco use include continued monitoring of smokeless \ntobacco use, integrating smoking and smokeless tobacco-control efforts, \nenforcing laws that restrict minors' access to tobacco, making excise taxes \ncommensurate with those on cigarettes, encouraging health-care providers to \nroutinely provide cessation advice and follow-up, providing school-based \nprevention and cessation interventions, and adopting policies that prohibit \ntobacco use on school property and at school-sponsored events (5). \n\nReferences\n\n1. Office of Evaluations and Inspections. Spit tobacco and youth. Washington, \nDC: US Department of Health and Human Services, Office of the Inspector \nGeneral, 1992; DHHS publication no. (OEI-06)92-00500. \n\n2. National Institutes of Health. The health consequences of using smokeless \ntobacco: a report of the Advisory Committee to the Surgeon General. Bethesda, \nMaryland: US Department of Health and Human Services, Public Health Service, \n1986; DHHS publication no. (NIH)86-2874. \n\n3. Shah BV. Software for Survey Data Analysis (SUDAAN) version 5.30 Software \ndocumentation. Research Triangle Park, North Carolina: Research Triangle \nInstitute, 1989. \n\n4. Connolly GN, Orleans CT, Blum A. Snuffing tobacco out of sport. Am J Public \nHealth 1992;82:351-3. \n\n5. National Cancer Institute. Smokeless tobacco or health: an international \nperspective. Bethesda, Maryland: US Department of Health and Human Services, \nPublic Health Service, National Institutes of Health, 1992; DHHS publication \nno. (NIH)92-3461. \n\n6. Foreyt JP, Jackson AS, Squires WG, Hartung GH, Murray TD, Gotto AM. \nPsychological profile of college students who use smokeless tobacco. Addict \nBehav 1993;18:107-16. \n\n7. Glover ED, Laflin M, Edwards SW. Age of initiation and switching patterns \n\nHICNet Medical Newsletter                                              Page 12\nVolume  6, Number 10                                           April 20, 1993\n\nbetween smokeless tobacco and cigarettes among college students in the United \nStates. Am J Public Health 1989;79:207-8. \n\n8. CDC. Tobacco use in 1986: methods and tabulations from Adult Use of Tobacco \nSurvey. Rockville, Maryland: US Department of Health and Human Services, \nPublic Health Service, CDC, 1990; DHHS publication no. (OM)90-2004. \n\n9. Public Health Service. Healthy people 2000: national health promotion and \ndisease prevention objectives. Washington, DC: US Department of Health and \nHuman Services, Public Health Service, 1991; DHHS publication no. (PHS)91-\n50213.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n--------- end of part 1 ------------\n\n---\n      Internet: david@stat.com                  FAX: +1 (602) 451-1165\n      Bitnet: ATW1H@ASUACAD                     FidoNet=> 1:114/15\n                Amateur Packet ax25: wb7tpy@wb7tpy.az.usa.na\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4666, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pschneid@rzu.unizh.ch ()\nSubject: Problem: Maxtor LXT340S spins down with no reason\nKeywords: Maxtor 340, Adaptec 1542, SCSI\nOrganization: University of Zurich, Switzerland\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 53\n\nPlease help if you can with the following strange problem:\n\n  The Maxtor 340 drive in my 386 clone would from time to\n  time, for no obvious reason spin down completely (one can\n  tell by the sound) and simply refuse to be accessed. DOS\n  reacts with an error (Drive D: cannot be accessed or\n  something the like). Unfortunately, I cannot just reproduce\n  the error. Sometimes it occurs more often, sometimes\n  less. The last time it happened was when I wanted to \n  demonstrate some software to a colleague.\n    I would like to know if anybody has experienced similar\n  problems. I don't like to take the thing to the dealer\n  only to be told that there's nothing wrong with it. I\n  checked the other post in this group about Maxtor, and\n  I don't seem to be the only one who has problems. However,\n  no one describes the same problem, and I also have a \n  different configuration.\n\n  Thanx in advance for any e-mailed help. \n  \n  Peter\n\nLIST OF EQUIPMENT\n  Computer \"Mandax\" Mainboard 386-33, 2MB\n  Adaptec 1542 SCSI Master\n  Maxtor LXT340S SCSI-II Hard Drive\n  NEC CDR-83 CD-ROM Reader (problem remains with CD-ROM removed)\n  ET4000 VGA Card\n\nCONFIG.SYS\n  files=30\n  device=C:\\dos\\setver.exe\n  device=C:\\windows\\himem.sys\n  device=C:\\system\\aspi4dos.sys\n  device=C:\\system\\aswcdnec.sys /d:neccd\n  DOS=HIGH\n  COUNTRY=041,,C:\\dos\\country.sys\n  device=C:\\dos\\display.sys CON=(EGA,,1)\n\nAUTOEXE.BAT\n  C:\\windows\\smartdrive.sys\n  PATH=C:\\windows;c:\\dos\n  SET TEMP=C:\\dos\n  MODE CON CODEPAGE PREPARE=((437) C:\\DOS\\EGA.CPI)\n  MODE CON CODEPAGE SELECT=437\n  KEYB SG,,C:\\DOS\\KEYBOARD.SYS\n  C:\\SYSTEM\\MSCDEX /D:NECCD /L:d /v\n\n--\n/ Peter Schneider              []  Englisches Seminar         \\\n| E-Mail: pschneid@es.unizh.ch []  Universitaet Zurich        |\n|  Phone: (41 1) 257 3554      []  Plattenstrasse 47          | \n\\    Fax: (41 1) 262 1204      []  CH-8032 Zurich/Switzerland /\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4667, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Professors Whining About Pay\nDistribution: usa\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 53\n\nIn article <1qf2kqINNrkd@elroy.jpl.nasa.gov>, fogarty@sir-c.jpl.nasa.gov (Tim Fogarty) writes:\n> In article <15320@optilink.COM>, cramer@optilink.COM (Clayton Cramer) writes:\n> |>In article <1q4k3bINNe6k@elroy.jpl.nasa.gov>, fogarty@sir-c.jpl.nasa.gov (Tim Fogarty) writes:\n> |>> In article <15307@optilink.COM>, cramer@optilink.COM (Clayton Cramer) writes:\n# |## |#2. Professors get summers off; industry employees don't.\n# |## \n# |## What professor gets the summer off ?  The primary purpose of a professor\n# |## at a university is to publish.  Teaching is secondary.  The summer\n# |## is when professors are able to do the research required for their\n# |## papers.\n# |#\n# |#I'm told by my advisor that only at some universities is publishing\n# |#the primary emphasis; many professors in the Cal State University\n# |#system don't publish at all.  Those that prefer teaching are under\n# |#no pressure to publish.\n# |#\n# \n# When discussing and issue, it helps that all participants use the same\n# definitions, although this rarely occurs on Usenet.\n# \n# When I use the term \"university\", I think of an organization that has\n# a Bachelors, Masters, and PhD program.  I believe that Cal State schools\n# do not.  I call them colleges.  UC schools are universities.  At a univeristy\n# the number one goal is to publish.\n\nCal State University system offers bachlors and masters degrees.  The\nPh.D. is not offered, because of opposition from UC.\n\n# At the Cal State schools, do the professors you speak of have PhDs?  At\n\nNearly all the professors have PhDs.  I haven't had a professor who didn't,\nthough my wife has had a couple of professors with just an M.A.  A friend\nhad an instructor who didn't have a degree at all, but because he had\nbeen Minister of Culture for the Black Panthers, he was teaching anyway.\nHe had a bad habit of usually not showing up to teach the class, and\nfinally quit in disgust at the racism of a university that expected him\nto show up to teach.\n\n# a university you have professors with PhDs and then Teaching Assistants (TAs).\n# TAs were the slave labor, graduate students who got their tuition paid, and\n# a few hundred a month for living expenses in exchange for doing all the grunt\n# work.  The professors taught the lectures, with 100 to 500 students per class,\n# then the TAs taught the labs, with 20 to 30 per class.\n# \n# Tim Fogarty (FOGARTY@SIR-C.JPL.NASA.GOV)\n\nAt Sonoma State University, typical class size is 20 to 30 per class.\nTeaching is definitely more the goal, and sometimes, it actually happens.\nThe best professors at Sonoma State U. are equivalent to the best \nprofessors I had at UCLA and USC.\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4668, "properties": {"category": "rec.sport.baseball", "text": "From: philly@ravel.udel.edu (Robert C Hite)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nLines: 39\n\nIn article <1993Apr15.093231.5148@news.yale.edu> (Steve Tomassi) writes:\n\n>Honestly, Ozzie Smith and Robin Yount don't belong there. They're both\n>\n>shortstops that just hung around for a long time. Big deal.\n\nAre you for real?  How many Gold Gloves does Ozzie Smith have?  If a\nguy hung around and hit 30 homers a year for 15 years, wouldn't he\nbe a given for the Hall?  Is defense not just as important?  And if\nRobin Yount couldn't hit, why would he have stuck around long enough\nto get 3,000 hits?  Are you saying 3,000 hits is a fluke?  3,000\nhits is no big deal?  \n\n>     Let's be a little more selective, huh? Stop handing out these honors\n>so\n>\n>liberally. Save them for the guys who really deserve it. Face it, if\n>something\n>\n>isn't done, there will be little prestige in the Hall of Fame anymore. When\n>\n>certain individuals believe that Steve Garvey or Jack Morris are potential\n>\n>candidates, the absurdity is apparent. Gee, can these guys even compare to\nI agree, Garvey and Morris don't deserve it. \n\n>the more likely future Hall of Famers like Kirby Puckett or Nolan Ryan?\n\nWell, based on your argument, Nolan Ryan doesn't deserve the Hall of\nFame.  He is just a right hander who stuck around for a long time\nand could throw hard.  Very few 20 game winning seasons, lots of\nlosing seasons, lots of walks.  No Cy Young awards.  How does Nolan\nRyan compare to a guy like Steve Carlton who dominated 5 or 6 Major\nLeague seasons, won 7 divisons, 2 World Series, and won half of his\nteams games in 1972?  He doesn't compare.  Not even close.\n\nKirby Puckett hasn't done it long enough for me.  Give me 5 more\nseasons like he's been having, then I'll think about it. \n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4669, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Re: Seventh Century A.D. Armenian Math Problems\nSummary: Mr. Koc wins a free prize! \nKeywords: philosophy, Greece, Persians, math \nOrganization: S.D.P.A. Center for Regional Studies\nLines: 43\n\nIn article <1r6qn1INNd0n@flop.ENGR.ORST.EDU> koc@rize.ECE.ORST.EDU (Cetin Kaya\nKoc) responded to article <1993Apr22.152937.14766@urartu.sdpa.org> dbd@urartu.\nsdpa.org (David Davidian) who wrote:\n\n[DD]  Problem 1\n[DD]\n[DD] My father told me the following story. During the famous wars between the \n[DD] Armenians and the Persians, prince Zaurak Kamsarakan performed \n[DD] extraordinary heroic deeds. Three times in a single month he attacked the \n[DD] Persian troops. The first time, he struck down half of the Persian army. \n[DD] The second time, pursuing the Persians, he slaughtered one fourth of the \n[DD] soldiers. The third time, he destroyed one eleventh of the Persian army. \n[DD] The Persians who were still alive, numbering two hundred eighty, fled to \n[DD] Nakhichevan. And so, from this remainder, find how many Persian soldiers \n[DD] there were before the massacre.\n\n[Koc] Answer: a(1-1/2-1/4-1/11)=280 -> a = 1760\n\nGood for you! You win the prize -- a free trip to Karabakh as an Azeri \nsoldier! Now, calculate the odds of you coming back after trying to de-populate\nthe area of Armenians!\n\n[Koc] Corollary: Armenians strike, slaughter, destroy, and massacre. After\n[Koc] all, they are not as innocent as the asala network claims.\n\nFact: I didn't notice any mention of Turks in Shirak, Van, or Trebizon in\n      this seventh century story!\n\nFact: These places were filled with Armenians as of 1915.\n\nFact: By the end of 1916, after the Turkish genocide of the Armenians, there\n      were no Armenians left in Shirak, Van, or Trebizon -- only Turks and\n      Kurds! In fact, there were no Pontus Greeks left alive in Trebizon \n      either!\n\nConclusion: Numbers don't lie in either case!\n\n \n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4670, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Re: Oscilloscope triggering\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 55\n\nIn article <C4vs0G.5ux@murdoch.acc.Virginia.EDU>, dgj2y@kelvin.seas.Virginia.EDU (David Glen Jacobowitz) writes:\n|> >>Can someone out there explain exactly what the 'trigger'\n|> >>feature found on oscilloscopes does?\n|> >\n|> \t{ lots og good explanation deleted}\n\n<lots more deleted>\n|> \tIs it just me, or does anybody else out there NOT like digital\n|> scopes. My school has some beauutful 100Mhz HP that are digital with\n|> all the bells and whistles, including soft-keys, which I think are a\n|> loveley touch. ( that is, software keys. ) You don't forget that you\n|> are dealing with a computer. Those scopes even with all their\n|> neatness, still make the ickyest looking waves. Lotsa features, but\n|> ugly output. And those are the best digitals I have ever seen. I've\n|> seen a lot of cheaper digitals and they look terrible.\n\nI think the hangup with digital scopes is that you have to know so much\nmore about them and how they work on a scope-by-scope basis, and\nsome of the functions are typically presented, in my opinion,\nin a counter-intuitive fashion (HP has made some strides in their\n54600 series, IMO). Automatic setups are fine for simple,\nrepetitive waveforms, but can give you some crazy results on more\ncomplex events where you need to understand how the scope is\nactually measuring/processing the event. For example, is the scope\nin \"equivalent time\" or in \"real time\" sampling mode (equivalent time\nbeing a mode where samples are built-up slowly by adding a delay to\nthe trigger event each sweep)? What was the scope's actual sampling\nrate at the time? How is the data being massaged after capture but\nbefore display, etc. One common misconception is the speed of the scope.\n\nIs the HP scope you're using really a 100 MHz scope? Or is it a 20 MHz\nsample rate scope (~5 MHz single shot significance) whose front\nend including S/H can support 100 MHz waveforms (important for\nequivalent time sampling)? The 100 MHz input in this case really\nonly helps you when your waveform is repetitive, or on a single\nsample, when you get lucky and hit a transient event during a sample time.\n\nSo, there are a lot more variables in understanding how to get\nuseful information from a digital scope. I prefer an analog scope for\ngeneral use and the digital for events where I need storage for\nlater analysis or comparison, when the event is within the capability\nof the scope. Now, for the price of true 100 MHz digital scopes to\nfall...\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4671, "properties": {"category": "comp.windows.x", "text": "From: suresh@iss.nus.sg (Suresh Thennarangam - Research Scholar)\nSubject: X Device Driver for Bird\nNntp-Posting-Host: titan.iss.nus.sg\nOrganization: Institute Of Systems Science, NUS\nX-Newsreader: Tin 1.1 PL4\nLines: 19\n\n\nHas anyone written a device driver to use the Ascension bird with XWindows ? \n\n\n      __                  \n     (_   / /  o_   o  o |_\n     __)/(_( __) (_(_ /_)| )_\n\n\n***************************************************************************\n* Suresh Thennarangam               *  EMail: suresh@iss.nus.sg(Internet) *\n* Research Scholar                  *         ISSST@NUSVM.BITNET          *\n* Institute Of Systems Science      *  Tel:  (065) 772 2588.              *\n* National University Of Singapore  *  Facs.: (065) 778 2571              *\n* Heng Mui Keng Terrace             *  Telex: ISSNUS RS 39988             *\n* Singapore 0511.                   *                                     *\n***************************************************************************\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4672, "properties": {"category": "rec.autos", "text": "From: wrat@unisql.UUCP (wharfie)\nSubject: Re: It's a rush... (was Re: Too fast)\nDistribution: usa\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 12\n\nIn article <C5r43y.F0D@mentor.cc.purdue.edu> marshatt@feserve.cc.purdue.edu (Zauberer) writes:\n>I guess I wasn't clear enough here. I said the roads WERE designed for \n>speeds of 80 or so and still be safe. The current 55-65 will add a saftey\n>margin.\n\n\tThey were designed for speeds of upwards of 80 - I forget the\nexact spec - but for military vehicles.  That's 80 in a 1958 Dodge \nPowerwagon.  Not 80 in a 1993 Ford Taurus.\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4673, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: david@c-cat.UUCP (Dave)\nSubject: Re: Run box w/o cover ??\nOrganization: Intergalactic Rest Area For Weary Travellers\nLines: 42\n\nbiernat@rtsg.mot.com (Tim Biernat) writes:\n\n{> i am interested in getting the pulse of this group regarding\n{> extended operation of my G2K 486-33V with the cover removed \n{> from the enclosure.  there are a # of reasons i am considering \n{> this, including quick access to jumpers during complex i/o card \n{> setups.\n{> \n{> my concern is that without a complete enclosure to direct the\n{> cooling flow of air from the fan, \"hot spots\" may develop on my\n{> motherboard or elsewhere.  my G2K has intake air vents in the \n{> front of the enclosure right at MB level.  These vents would be \n{> removed along with the top cover in this scenario, rendering\n{> airflow from the fan pretty useless.  \n{> \n{> however, short periods in this mode don't seem to heat things up\n{> too much, but my conclusions are far from scientific...\n{> \n{> -- tim\n\nI ran a 386-33 out of a cardboard box for more than a year with no\nmajor effects (yeah, no case at all, MB sitting on a static bag)\nother than the noise from the Poersupply it ran pretty good.\nas for cooling problems I bought a 12-14 inch fan and  turned\nit on full and set the output directly on the motherboard.\n\nI did finally get a case though and I am still running the parts\nwith no ill effects.\n\nI also had no kids to spill things on the MB> I had no cat leaving\nhair on the MB etc. etc. on and on....\n\nthe two major concerns are keeping static away and keeping the MB cool\nenjoy\n\n                                                       -David\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\nChina Cat BBS                               c-cat!david@sed.csc.com\n(301)604-5976 1200-14,400 8N1               ...uunet!mimsy!anagld!c-cat!david \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4674, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Shaft-drives and Wheelies\nFrom: Stafford@Vax2.Winona.MSUS.Edu (John Stafford)\nDistribution: world\nOrganization: Winona State University\nNntp-Posting-Host: stafford.winona.msus.edu\nLines: 19\n\nIn article <1r16ja$dpa@news.ysu.edu>, ak296@yfn.ysu.edu (John R. Daker)\nwrote:\n> \n> \n> In a previous article, xlyx@vax5.cit.cornell.edu () says:\n> \n> Mike Terry asks:\n> \n> >Is it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n> >\n> No Mike.  It is imposible due to the shaft effect.  The centripital effects\n> of the rotating shaft counteract any tendency for the front wheel to lift\n> off the ground.\n\n\tThis is true as evinced by the popularity of shaft-drive drag bikes.\n\n====================================================\nJohn Stafford   Minnesota State University @ Winona\n                    All standard disclaimers apply.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4675, "properties": {"category": "rec.autos", "text": "From: rhorwell@crab.atc.boeing.com (Roland Faragher-Horwell,crab)\nSubject: Re: What is \" Volvo \" ?\nReply-To: rhorwell@atc.boeing.com\nOrganization: Boeing Computer Services\nLines: 46\n\nIn article 21071@sernews.raleigh.ibm.com, mperry@vnet.ibm.com (Mark Perry) writes:\n>>Hardly a good reason, most US cars do too - and plenty of people\n>>buy them (in the US anyway :-). I think the 850 is quite a good\n>>looking car - unlike the US influenced 740!\n>>\n>>kevinh@hasler.ascom.ch\n>\n>I don't think it's so easy to tell the 850 from any other 7 or 9 series unless\n>you look real close. I really do think Volvo's are all dogs though beacuse they\n>are 1.Agricultural \n\nWhile previous Volvos have been essentially very fast tractors, the 3,4 and 8 series\nare far from 'agricultural' in design or execution (how many FWD tractors have you \nseen?).\n\n>2.Have godlier than thou advertising. \n\nYou state this like it is a bad thing.  :^)  (remember, car companies use\nad agencies - they don't do their own ads!)\n\n>3.are part of Renault.\n\nIs this true?  I know that they had done joint ventures with Renault, but I haven't\nheard about their subsumption into Renault - does this mean that the French Government\nnow owns Volvo?  - anyway, Renault makes some very nice cars, they just don't sell\n'em in N. America!\n\n>\n>However... One thing that I do think is in their favour is that they are\n>immediately recognisable as a VOLVO and that is not something you can say\n>about most Japanese manufacturers and Ford. Saab also have a strong corparate\n>look which like it or not is what I thing all car makers could aim for to\n>make life a little more varied.\n\nHere! Here!\n\n>\n>\n>mperry@vnet.ibm.com\n\nRoland\nrhorwell@atc.boeing.com\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.225+0000", "event": "documents", "entityId": 4676, "properties": {"category": "rec.sport.hockey", "text": "From: vergolin@haydn.lbs.msu.edu (David Vergolini)\nSubject: Probert and Wendall\nOrganization: Michigan State University\nLines: 6\nNNTP-Posting-Host: haydn.lbs.msu.edu\nSummary: I believe that game two of the DEt/Tor series will be rougher\nKeywords: Fight will break out\n\n  Game two of the Detroit - Toronto series will be a rougher game.  I believe\nthat Clark will be coming out hitting on all cylindars.  I believe that Probert\nwill take exception to this and a fight between Clark and Probert will result.\n  I know this sounds kind of ridiculous, but I know game two Toronto will come\nout hitting.\n  Any takers on this issue?\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4677, "properties": {"category": "rec.motorcycles", "text": "From: karish@gondwana.Stanford.EDU (Chuck Karish)\nSubject: Re: Living\nOrganization: Mindcraft, Inc.\nLines: 31\n\nIn article <C4rz4J.4q9@odin.corp.sgi.com> amc@crash.wpd.sgi.com\n(Allan McNaughton) writes:\n>In article <1993Mar27.040606.4847@eos.arc.nasa.gov>, phil@eos.arc.nasa.gov\n(Phil Stone) writes:\n>|> Alan, nothing personal, but I object to the \"we all\" in that statement.\n>|> (I was on many of those rides that Alan is describing.)  Pushing the\n>|> envelope does not necessarily equal taking insane chances.\n\nMoreover, if two riders are riding together at the same speed,\none might be riding well beyond his abilities and the other\nmay have a safety margin left.\n\n>Oh come on Phil.  You're an excellent rider, but you still take plenty of\n>chances.  Don't tell me that it's just your skill that keeps you from \n>getting wacked.  There's a lot of luck thrown in there too.  You're a very\n>good rider and a very lucky one too.  Hope your luck holds.... \n\nAllan, I know the circumstances of several of your falls.\nOn the ride when you fell while I was next behind you,\nyou made an error of judgement by riding too fast when\nyou knew the road was damp, and you reacted badly when\nyou were surprised by an oncoming car.  That crash was\ndue to factors that were subject to your control.\n\nI won't deny that there's a combination of luck and skill\ninvolved for each of us, but it seems that you're blaming\nbad luck for more of your own pain than is warranted.\n--\n\n    Chuck Karish          karish@mindcraft.com\n    (415) 323-9000 x117   karish@pangea.stanford.edu\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4678, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bcasavan@skyhawk.ecn.uoknor.edu (Brent Casavant)\nSubject: Re: Permanaent Swap File with DOS 6.0 dbldisk\nSummary: Explanation of message\nNntp-Posting-Host: skyhawk.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 63\n\nIn article <93059@hydra.gatech.EDU> gt4356c@prism.gatech.EDU (James Dean Barwick) writes:\n[Stuff deleted]\n>\n>more on permenent swap files...\n>\n>i'm sure everyone who has an uncompressed part of their compressed hard disk\n>has seen the message \"you have selected a swap file greater than the suggested\n>size...windows will only use the size suggested...do you wan't to create this\n>swap file anyway\" or something like that.\n>\n>well, a friend of mine (ROBERT) called microsoft and asked them what and why.\n>what they said is that windows checks the amount of free disk space and\n>divides that number by 2.  Then it checks for the largest contiguous block\n>of free disk space.  Windows then suggests the smaller of the two numbers.\n>\n>They also said that under absolutely no circumstances...NONE!...will windows\n>uses a swap file larger than the suggested size.  Well...that's what he \n>said!\n>\n>I call bull@#$#.  If this is true why does windows report the memory is\n>available to me if it's not going to use it?\n>\n>any takers?\n>\n>James\n\nWell, someone at Microsoft told you wrong.  Windows will use a swap file\nlarger than the recommended size.  Last summer I went to a Microsoft\nWindows 3.1 Technical Workshop and they distributed A LOT of information\nthat the general public might not be aware of.  Anyway in the main book\nthey handed out they have a section on \"Creating larger than recommended\nswapfile\".  I'll quote the information\n\n  If you create a permanent swapfile larger than the recommended size, you\n  will receive a message telling you that Windows will not use anything\n  larger than the recommended size.  THIS ERROR MESSAGE IS INCORRECT, we\n  will allow the use of the larger swapfile, up to four times the amount\n  of RAM on your machine.\n\nSo as you see, Microsoft does know that the information is incorrect.  You\nprobably just ran into some doofball who was new on the job and was only\ntelling you what little he knew.\n\nBe that what it may, I would really suggest to everyone to take the\nopportunity to go to these Technical Workshops.  They aren't actually\nincredibly in-depth, but you do get a lot of material about bugs and\noptimization straight from those in the know.  Besides that they offer\nyou HUGE discounts on software.  If I remember correctly, you could pick\nup Word 2.0, Excel 4.0, or whatever their presentation program is for $130.\nThat is the full blown version, not an upgrade or educational version.  You\ncould also pick up Microsoft Office for $500 or something like that.  Myself\nI sprang for Word.\n\nWell, hope that was helpful to someone.  And besides that I hope someone\nwill go to a workshop and save a little money.\n\nAnd if anyone at Microsoft is reading this -- I really love your products.\nI need a job once I graduate also, can we work something out?  ;-)\n\nThanks,\nBrent Casavant\nbcasavan@mailhost.ecn.uoknor.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4679, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mmccolli@comanche.ess.harris.com (Mike McCollister)\nSubject: Faster OAK VGA drivers???\nNntp-Posting-Host: su100l.ess.harris.com\nReply-To: mmccolli@comanche.ess.harris.com\nOrganization: Harris Corporation, Government Aerospace Systems Division\nLines: 21\n\nI'm using an OAK based VGA card on my computer (640x480x256).  I've\ndownloaded the driver from ftp.cica.indiana.edu and I've had good luck\nwith it.  However, does anyone know if a faster driver is available for\nthis card?\n\nThanks,\n\nMike\n\n  _________________________________________________________________________\n /                                                                        /|\n+------------------------------------------------------------------------+ |\n|  _________                          |                                  | |\n| |  _   _  | Michael J. McCollister  | Phone:  (407) 729-7054           | |\n| |_| |_| | | Harris Corporation      | Email:                           | |\n| |_/\\/\\/\\|_| P.O. Box 94000          |   mmccolli@su100l.ess.harris.com | |\n| | |_| |_| | Mailstop 100/4823       | -------------------------------- | |\n| |_________| Palm Bay, Florida 32905 | I'm not going to say anything    | |\n|                                     | stupid today.  Not!              |/\n+------------------------------------------------------------------------+\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4680, "properties": {"category": "sci.crypt", "text": "From: kadie@cs.uiuc.edu (Carl M Kadie)\nSubject: Re: Clipper Crap\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 9\n\n>encryption's dual-edge sword:  encryption helps to protect the\n>privacy of individuals and industry, but it also can shield\n>criminals and terrorists.  We need the \"Clipper Chip\" and other\n\n\"Necessity is the plea for every infringement of human freedom. It is\nthe argument of tyrants; it is the creed of slaves.\" -- William Pitt\n-- \nCarl Kadie -- I do not represent any organization; this is just me.\n = kadie@cs.uiuc.edu =\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4681, "properties": {"category": "rec.autos", "text": "From: zowie@daedalus.stanford.edu (Craig \"Powderkeg\" DeForest)\nSubject: Re: 5W30, 10W40, or 20W50\nArticle-I.D.: daedalus.ZOWIE.93Apr5215616\nOrganization: Stanford Center for Space Science and Astrophysics\nLines: 37\nNNTP-Posting-Host: daedalus.stanford.edu\nIn-reply-to: Brad Thone's message of Fri, 02 Apr 93 21:41:53 CST\n\nIn article <foo> Brad Thone <C09615BT@WUVMD> writes:\nWell, there *is* a difference.\n\nI don't happen to have my SAE manual handy, but oil viscosity in general\n_decreases_ with temperature.  The SAE numbers are based on a `typical'\ncurve that oils used to all have, running from (say) the viscosity of a\nroom-temperature 90-weight at 0C, down to (say) that of a room-temperature \n5-weight at 20C, for a typical 40-weight oil.\n\nOils that are designed for operation in `normal' temperatures just have\na weight specification.  Oils that are designed for operation in exceedingly\ncold temperatures have a `W' tacked on the end, so in winter in a cold\nplace, you'd stick 10W in your car in the winter and 40 in it in the summer,\nto approximate the appropriate viscosity throughout the year.\n\nModern multi-viscosity oils change viscosity much less with temperature.\nAs a result, their viscosity graphs cross over several curves.  A multi-vis\nspecification pegs the curve at two temperatures, a `normal' operating\ntemperature and a `cold' one (though I can't remember the numbers...).\n\nIn any event, the weights do indicate a significant difference.  Remember\nthat your engine is temperature-regulated (by the thermostat and\nradiator or air fins) most of the time -- unless you overheat it or\nsomething.\n\nAny weight of oil is better than no oil, or than very old, carbonized\noil.  Thin oil won't (in general) lubricate as well at temperature,\nthicker oil will (like a 20W50) will lubricate better at temperature, \nbut not as well during startup, when most engine wear occurs.  \n\nIf you're planning on making long drives, the 20W50 is probably fine\n(esp. in the summer) in your 10W40 car.  But if you're making short drives,\nstick to the 10W40.\n\n\n--\nDON'T DRINK SOAP! DILUTE DILUTE! OK!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4682, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rash@access.digex.com (Wayne Rash)\nSubject: Re: 17\" monitor with RGB/sync to VGA ??\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 21\nDistribution: usa\nNNTP-Posting-Host: access.digex.net\nKeywords: RGB VGA 17\"monitor\n\nscanlonm@rimail.interlan.com (Michael Scanlon) writes:\n\n>I don't know if this is an obvious question, but can any of the current \n>batch of windows accelerator cards (diamond etc) be used to drive a monitor \n>which has RGB and horizontal and vertical sync ( 5 BNC jacks altogether) \n>connectors out the back??  I might be able to get ahold of a Raster \n>Technologies 17\" monitor (1510 ??)cheap and I was wondering if it was \n>possible to connect it via an adapter (RGB to vga ??) to my Gateway, would \n>I need different drivers etc.  \n\n\n>Thanks\n\n>Mike Scanlon \n>please reply to scanlon@interlan.com\n\nYou need a monitor cable that has a VGA connector on one end and five BNC\nconnectors on the other.  I bought one from Nanao when I bought the Nanao\nmonitor I use, which also has five BNC connectors.  Check with a computer\nstore that sells good monitors.  Quite a few companies use that setup.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4683, "properties": {"category": "talk.politics.guns", "text": "From: cntrspy@netcom.com (Executive Protection Assoc)\nSubject: Re: Blast them next time\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: TIN [version 1.1 PL6]\nDistribution: usa\nLines: 32\n\n///////   And we thought the unfortunate people in the Branch Dividians were\n          Brainwashed ??  They don't hold a candle to this guy......\n\n\nD:d\n:wq\n\n\nB\n///////////////////////////////////\nDaniel Oldham (oldham@ces.cwru.edu) wrote:\n: What happened in Waco is not the fault of the BATF. If they would of\n: had the proper equipment and personal then they could of captured the\n: compound on the initial assault and none of this would of happened.\n: \n: The BATF needs more people, better weapons and more armored\n: transports. When they meet hostile fire they should be able to use\n: more force instead of retreating to a stand off. If you are going to\n: do a job then do it right. The BATF is there to protect us and they\n: must have the proper equipment and people to do the job.\n: \n: With the WoD and the increased crime in the streets the BATF is needed\n: more now then ever. If they blast away a few good fokes then that is\n: the price we all have to pay for law and order in this country. Look\n: at all the good people that died in wars to protect this great country\n: of ours.\n: \n: With the arms build up in Waco they needed to hit that compound with\n: mega fire power. They could of gone in there blasting and killed a few\n: women and kids but it would of been better then letting them all burn\n: to death 51 days later.\n: \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4684, "properties": {"category": "talk.politics.misc", "text": "From: steveth@netcom.com (Steve Thomas)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: VisionAire, San Francisco, CA\nLines: 53\n\nIn article <C5IJ7H.L95@news.iastate.edu> jrbeach@iastate.edu (Jeffry R Beach) writes:\n>In article <1993Apr15.021021.7538@gordian.com> mike@gordian.com (Michael A. Thomas) writes:\n>>In article <C5HuH1.241@news.iastate.edu>, jrbeach@iastate.edu (Jeffry R Beach) writes:\n>>> In article <1qd1snINNr79@elroy.jpl.nasa.gov> fogarty@sir-c.jpl.nasa.gov (Tim Fogarty) writes:\n>>> >I would be upset that, although abortions would continue, they would be\n>>> >a lot more expensive for the rich, and a lot less safe for the poor.\n>>> \n>>> \n>>> So now things are supposed to be legal just to keep their cost down\n>>> and the safety factor high??  \n>>> \n>>> Think about it -- shouldn't all drugs then be legalized, it would lower\n>>> the cost and definitely make them safer to use.\n>>\n>>  Yes.\n>> \n>>> I don't think we want to start using these criterion to determine\n>>> legality.\n>>\n>>  Why not?\n>\n>\n>Where do they get these people?!  I really don't want to waste time in\n>here to do battle about the legalization of drugs.  If you really want to, we\n>can get into it and prove just how idiotic that idea is!  \n\nGo for it.  I have yet to see anybody justify the\nprohibition on drugs and the ensuing War On Drugs.  In the world of\n*.politics here on Usenet, it is YOU that is crazy.  ANYBODY--who gives\nthe matter any thought beyond reading headlines---cannot justify this\natrocity, this all out war on individual rights.\n\nJust _TRY_ to justify the War On Drugs, I _DARE_ you!\n\n>\n>My point was that it is pretty stupid to justify legalizing something just\n>because it will be safer and cheaper.\n> \n\nOnce again, in chorus: WHY is this \"stupid\"?\n\n>\n>A few more ideas to hold to these criterion - prostitution; the killing of all\n>funny farm patients, AIDS \"victims\", elderly, unemployed, prisioners, etc. -\n>this would surely make my taxes decrease.\n\nThe above paragraph is gibberish--that all I can make of it...\n\n\n-- \n_______\nSteve Thomas\nsteveth@rossinc.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4685, "properties": {"category": "sci.space", "text": "Subject: Life on Mars???\nFrom: schiewer@pa881a.inland.com (Don Schiewer)\nOrganization: Inland Steel Company, East Chicago, IN\nNntp-Posting-Host: pa881a\nNntp-Posting-User: schiewer\nLines: 9\n\nWhat is the deal with life on Mars?  I save the \"face\" and heard \nassociated theories. (which sound thin to me)\n\nAre we going back to Mars to look at this face agian?\nDoes anyone buy all the life theories?\n\n-- \nDon Schiewer   | Internet  schiewer@pa881a.inland.com    | Onward Great\nInland Steel   | UUCP:     !uucp!pa881a.inland!schiewer  | Stream...\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4686, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: luf4695@cup.edu\nSubject: Re: Gateway UART chip?\nDistribution: usa\nOrganization: California University of Pennsylvania, California, PA\nLines: 27\n\nIn article <spiroC4Bssw.Drq@netcom.com>, spiro@netcom.com (Philip N. Spiro) writes:\n> George A. Theall (theall@gdalsrv.sas.upenn.edu) wrote:\n> : In article <dickyjC4B7H8.BMt@netcom.com> dickyj@netcom.com (Dicky Johan) writes:\n> : >It seems that there are using the 16450 UART chip in the\n> : >machine. Is that the same as the 16550 UART chip, which has a 16-bytes\n> : >buffer? \n> \n> :   No, it's not. According to the sales critter I spoke with last week, \n> : though, Gateway does use socketed chips. You should be able to find the \n> : 16550AFN for about $15 and upgrade the chip yourself. Minor nuisance.\n> \n> For whatever it's worth, my GW salesman said that their 16450 would do\n> 14.4kbps and was soldered to the board. \n> \n> Will someone with a recent GW pls settle this by inspection!\n> -- \n> Phil\n> -------------------------------------------\n> Phil Spiro  spiro@netcom.com   415-964-6647\n\nMINE has a 16450 sodered right on the card.  Why would you need the 16550\nanyway?  From what I've heard, when you're multitasking, its FIFO buffer keeps\nyou from loosing data.  Is this right?\n\nBryan Luff\nMath & Comp. Sci.\nCal. U. of PA\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4687, "properties": {"category": "rec.autos", "text": "From: Steve.Green@its.csiro.au (Steve Green)\nSubject: Any Subaru Liberty owners out there?\nArticle-I.D.: toyland.Steve.Green-060493151309\nOrganization: ITS Branch, CSIRO, Australia\nLines: 16\nNntp-Posting-Host: toyland.its.csiro.au\n\nI've had my Subaru Liberty 4WD station wagon for about 8 months now. Saying\nI'm happy with it would be an understatement!\n\nJust great. Well built, handles beautifully, plenty of power. I've only\nhad if 'off tar' once. Did a trip over the mountains on a narrow, windy\ndirt road, often _very dodgey_ in parts. The Subaru did it with ease.\nI havent had so much fun driving a car for years!\n\nAny other owners out there?\n\n************************************************************************\n* Steve Green      * \"Hey Rocky, watch me pull a rabbit outa' my hat!\" *\n* Comms Group      * \"That trick never works\"                          *\n* ITS Branch       * \"Nothin' up my sleeve - PRESTO!\"                  *\n* CSIRO Australia  * \"No doubt about it - I gotta get another hat\"     *\n************************************************************************\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4688, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: H.R. violations by Israel/Arab st.\nNf-ID: #N:cdp:1483500360:000:2383\nNf-From: cdp.UUCP!cpr    Apr 24 16:07:00 1993\nLines: 48\n\n\n\nMany of you ask me whether I approve of severe human rights\nviolations by Arab States becuse I focus on Israeli human rights\nviolations.\n\nLet's make things clear: My opposition to H.R. violations in Arab\nStates is total and without qualification. No Arab State is and can\nclaim to be democratic. No Arab state claims to be democratic.\n\nI am born in Palestine (now Israel). I have family there. The lack of\npeace and utter injustice in my home country has affected me all my life.\nI am concerned by Palestine (Israel) because I want peace to come to\nit. Peace AND justice. \n\nIf anybody has legitimate claims towards Arab states, he should present\nhis claims and ask for support. Jews who left Arab states are fully \nentitled to make claims and should do so, if they consider their case has\na merit. It is their basic right to return to these countries, if they\nwish. If not, they should not complain and compare themselves to the\nPalestinians who have been struggling for the right of return since\nIsrael was established and whose right is upheld by the United Nations\nquasi totally. If Jews feel discriminated in Arab countries, they have a\nlegitimate claim that any decent person can and should support. \n\nHuman rights violations by Arab States don't justify, legitimate nor\nare the cause for Israeli breaches of international law and human rioghts.\nIsraeli breaches stem from the Zionist concept, which can only be\nimplemented by negating basic rights to Palestinians. \n\nIsraeli trights and Palestinian rights are not symmetrical. The first\nparty has a state and the other has none. The first is an occupier and\nthe second the occupied. For any meaningful relationship to emerge, some\nsymmetry must be established. As long as Israelis and Jews don't realise\nthe necessity of a change of perspective towards the Palestinian people\nand as long as Israelis and Jews don't want to exorcise their own\npast towards the Palestinians (the Naqba of 1948, etc.) and refuse to\nacknowledge that the creation of Israel was dependent upon the removal\nof most Palestinian Arabs, there will be no base for a real trust.\n\nWhen I read the first time the list of the 383 Arab villages\ndestroyed by the State of Israel in and after 1948, I got a shock. \nI hope others will be touched by this discovery and think about the\nmeaning of such massive destruction and destitution.\n\nElias Davidsson\nIceland\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4689, "properties": {"category": "rec.autos", "text": "From: dbernard@clesun.Central.Sun.COM (Dave Bernard)\nSubject: Re: Ad said Nissan Altima best seller?\nOrganization: Sun Microsystems\nLines: 9\nDistribution: world\nReply-To: dbernard@clesun.Central.Sun.COM\nNNTP-Posting-Host: clesun.central.sun.com\n\n>I too was puzzled by this obvious untruth. What I think is going on is that\n>Nissan claims that the Altima is \"the best selling new car namelplate in\n>the US\" (I think I have this near verbatim). Lee Iaccoca's statistics\n>dept. would have been proud of that sentence.\n\n\nNote that the Corolla/Prism are also new designs... but hey are not new \n\"nameplates.\"  I guess Nissan doesn't even sell as many Altimas as\nToyota does Corollas, or there would be no \"nameplate\" qualifier.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4690, "properties": {"category": "rec.autos", "text": "From: CONRADIE@firga.sun.ac.za (Gerrit Conradie)\nSubject: Re: Is car saftey important? \nOrganization: University of Stellenbosch, SA\nLines: 25\n\nIn article <1993Apr20.163527.12773@bnr.ca> tcorkum@bnr.ca (Trevor Corkum) writes:\n>Subject: Is car saftey important? \n>   I was recently thumbing through the 1993 Lemon-Aid New\n>Car Guide.  What I found was a car would be given a 'Recommended'\n>under the picture while a few sentences later noting how a\n>driver and passenger were virtually guaranteed to be killed\n>in a front end collision.  The most highly recommended small\n>car (The Civic) has the worst crash rating of all of the small\n>cars listed.  There were many such cases of 'great' vehicles\n>where you wouldn't survive an accident.  Is it only me, or is\n>safety not one of the most important factors when buying a car?\n>\n\nDefinitely!\n\nSafety is an important criterium for me when buying a car. I won't buy a \nsmall car like a Civic or whatever.\n\nGreat = Safety + Handling + Speed  -  for me\n\nSeems to me that you would be more \"dead\" in a small car than a large car \nafter an accident.\n\n- gerrit\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4691, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 17\n\nIn article <C5JBsE.KKK@news.udel.edu> philly@ravel.udel.edu (Robert C Hite) writes:\n>\n>Are you for real?  How many Gold Gloves does Ozzie Smith have?  If a\n>guy hung around and hit 30 homers a year for 15 years, wouldn't he\n>be a given for the Hall?  Is defense not just as important?\n\nFrankly, no.  Offense and defense are equally important.  But the\npitcher is 80% of the defense.  The primary role of every other player\nis on offense.  Even shortstops are a bigger part of the offensive\ngame than of the defensive game.  (They might not do much with their\npart of the offense, but that's another issue.)\n\nThat being said, I think both Smith and Yount deserve the HOF.  They\nhit pretty well in addition to their defense.\n\nCheers,\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4692, "properties": {"category": "misc.forsale", "text": "From: re_sims@vax.cns.muskingum.edu\nSubject: Misc. radio and related equipment\nOrganization: Muskingum College\nLines: 112\n\nLots of misc and radio related items for sale!\n\nStill trying to lighten my load for moving!\n\n\nMotorola VHF pager, digital, no voice or readout $15\n\n2 Capacitor checkers\n\nHP 200CD audio oscillator 5 hz to 600 Khz. \n\n\n 1200 feet + brand new 1/2\" hardline for tv\n    with new connectors, this is in 5 pieces\n                                           \n  lots of Gain mobile antennas for VHF and UHF\n\n  UHF *amp*, input on 75 Mhz in milliwatts and \n    output on 450 Mhz, 30 watts out. with service\n    manual, this came out of a Motorola mobilephone.\n    make reasonable offer. looking for $40 + shipping\n    or trade for?\n\n  RCA tac 300 UHF dash mount 2channel w/service \n    manual, great condition,  currently on GMRS\n    frequency 462.725 repeater and simplex with\n    PL of 151.4 hz\n    $100\n\n  Nobratron QR 75-2 power supply by Sorensen, w/service\n    manual, this is a 2 amp variable power supply, I \n    have used it at 80 vdc. weight is 45lbs  $45.\n\n  Motorola tone remote model #1926A, works great,\n    with monitor button, $75   This unit is used \n    to remote a base station with only two wires.\n\n  Also have tone remote board from Mitrek Super \n    consolette, make offer, could be used with \n    above remote! model #TRN-6744A w/schmetics\n    Both for $100.\n\n  Motorola Handhelds, MH-10 (4) w/charger, speaker\nmic, leather case, currently on 34.830, w/dpl\n\n\n  DPL decks from Motorola moxy radios\n    very reasonable esp. if you take all, anyone\n    offer $10 each for all or trade for?\n\n   PL reeds, I have some (30 or so I think)\n   also dpl code plugs\n   e-mail if you need some or I will sell all\ncheep.\n\n  Transmit tubes for GE radios, new in box.\n\n\n  5 DB gain UHF mobile antennas by motorola, \n    used, sold new for $90, make reasonable offer.\n    sell 3 for $45 + shipping\n\n  Motorcycle control head and cable with frequency\n    selector and speaker all in one, 4 channel, I \n    believe this came from a Micom.\n    Asking $20 + shipping\n\n  channel elements for motorola micor, mitrek, motrac\n    3 sets of vhf micor, \n    uhf micor, low band motrac, more\n\n  Mobile microphones for GE, Motorola, and RCA\n     reasonable offer.\n\n  Motorola DC remote adaptor model #TLN-1127apr\n     $75\n\n  I still have a few business band service manuals\n     esp. GE and Motorola, e-mail for details.\n\n  Phone restrict toll boxes (2) use quarters\n\n DTMF mobile mic\n\n GE Master Pro UHF mobile, not working, with accessories,\nthis is a trunk mount radio.  $20 + shipping\n\n  6' GE base cabinet w/19\" rack\n\n  Duplexer cabinet from vhf duplexers\n\n  19\" rack base cabinet, Johnson\n\n  HD satellite dish jack or arm\n\n  2 Spools multi-conductor wire, w/shield, thickness is approx 1/2\"\n\n  GE Master pro mobile control heads and cables\n\n  Eagle model #2 level sensor, tells how full a container is\n  \nThe above prices do not include shipping!\n\nSome of the above items are pickup only because of\nsize or weight, locations is Eastern Ohio. \nif interested e-mail me or you can call\n\nJim Sims sr. N4JDP  (614) 439-2177 before 9 PM Eastern\nre_sims@vax.cns.muskingum.edu\n\n\n                                        \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4693, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: timhu@ico.isc.com (Timothy Hu)\nSubject: Re: Hard disk question\nOrganization: Interactive Systems Corp., Boulder CO\nLines: 24\n\nIn article <Aovai.0bp4@qube.OCUnix.On.Ca> Aovai@qube.OCUnix.On.Ca (Aovai) writes:\n>Hi,\n>\n>I just disassembled my old XT and get 2 disk drives - 30M hard drive and a \n>360K floppy drive.  My questions are:\n>\n> -can I use these 2 drives as drives D & E on my 386SX25 ?  This 386SX25\n>  currently has 80M hard drive, 1.2M & 1.44M floppy drives.\n>\n> -if I can, what s/w or h/w do I need ?\n>\n\nI would doubt that you would be able to use the hard drive. XT drives\nusually came in MFM or RLL flavors. I bet your 386SX has IDE drives. The\ntwo are not compatible on the same controller. However, you might be\nable to use the drive *with its controller* in your 386SX. You should be\nable to plug your 360K drive into your existing 386SX controller (I\nthink). You might have to use the floppy controller that was used in the\nXT.\n-- \nTimothy Hu timhu@ico.isc.com     | The intelligence (or lack of) expressed\nInteractive Systems Corporation  | above does not necessarily reflect\nResource Solutions International | that of anyone else.\nalso:thu@grips0.uwyo.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4694, "properties": {"category": "comp.graphics", "text": "From: ab@nova.cc.purdue.edu (Allen B)\nSubject: Re: Point within a polygon\nKeywords: Obfuscated PostScript\nOrganization: Purdue University\nLines: 60\n\nIn article <jonas-y.734802983@gouraud> jonas-y@isy.liu.se (Jonas Yngvesson)  \nwrites:\n> Intersection Between a Line and a Polygon (UNDECIDABLE??),\n> \tby Dave Baraff, Tom Duff\n> \n> \tFrom: deb@charisma.graphics.cornell.edu\n> In recent years, many geometric problems have been successfully modeled in a\n> new language called PostScript.  (See \"PostScript Language\", by Adobe Systems\n> Incorporated, ISBN # 0-201-10179-3, co. 1985).\n> \n> So, given a line L and a polygon P, we can write a PostScript program that\n> draws the line L and the polygon P, and then \"outputs\" the answer.  By\n> \"output\", we mean the program executes a command called \"showpage\", which\n> actually prints a page of paper containing the line and the polygon.  A quick\n> examination of the paper provides an answer to the reduced problem Q, and  \nthus\n> the original problem.\n\nCuriously, in modern PostScript, the point in a polygon problem can\nbe solved even more easily.  To wit:\n\n%!\n%%Title: Point in Polygon\n%%Creator: Allen B (ab@cc.purdue.edu)\n%%For: the amusement of comp.graphics regulars\n%%LanguageLevel: 2\n%%DocumentNeededResource: humor sense thereof\n%%EndComments\n\n% This program will test whether a point is inside a given polygon.\n% Currently it uses the even-odd rule, but that can be changed by\n% replacing ineofill with infill.  These are Level 2 operators,\n% so if you've only got Level 1 you're out of luck.\n%\n% The result will be printed on the output stream.\n%\n% Caution: only accurate to device pixels!\n% Put a huge scale in first if you aren't sure.\n\n% Point to test\n% PUT X AND Y COORDINATES HERE\n\n50 75\n\n% Vertices of polygon in counter-clockwise order\n% PUT ARRAY OF PAIRS OF COORDINATES HERE\n[\n[   0   0 ]\n[ 100   0 ]\n[ 100 100 ]\n[  67 100 ]\n[  67  50 ]\n[  33  50 ]\n[  33 100 ]\n[   0 100 ]\n]\n\ndup 0 get aload pop moveto dup length 1 dup 3 1 roll\nsub getinterval { aload pop lineto } forall closepath\nineofill { (Yes!) } { (No!) } ifelse =\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4695, "properties": {"category": "talk.politics.misc", "text": "From: goykhman@apollo.hp.com (Red Herring)\nSubject: Re: Clinton's immunization program\nNntp-Posting-Host: dzoo.ch.apollo.hp.com\nOrganization: Hewlett-Packard Company, Chelmsford, MA\nLines: 52\n\nIn article <15APR199320293386@utkvx.utk.edu> drevik@utkvx.utk.edu (Drevik, Steve) writes:\n>In article <C5JoBH.7zt@apollo.hp.com>, goykhman@apollo.hp.com (Red Herring) writes...\n>>In article <1993Apr14.122758.11467@magnus.acs.ohio-state.edu> jlinder@magnus.acs.ohio-state.edu (Jeffrey S Linder) writes:\n>>>In article <C5FJsL.6Is@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR.C\n>>>OM (Mark Wilson) writes:\n>>>>On the news last night Clinton was bashing the republicans for stonewalling\n>>>>his so called stimulus package.\n>>>>It seems that one small item within this package was going to pay for free\n>>>>immunizations for poor kids.\n>>>\n>>>Immunizations for children in this country are already free if you care to\n>>>go have it done.  The problem is not the cost, it is the irresponible parents\n>>>who are to stupid or to lazy to have it done.\n>\n>I don't know where YOU live, but this is not the case nationawide.\n>Perhaps your state or municipality has put together the funds to \n>do so, but in my area and most areas where I know people, immunizations\n>cost $$$.\n\n    Nationwide, the immunization rate among toddlers is about 50%, but\n    it is reportedly as low as 10% in some inner-city neighborhoods.\n    I bet more than 10% kids living in such neighborhoods are already \n    covered by Medicaid.\n\n    Here in Massachussets, we have had a universal immunization program,\n    the kind of Clinton seems to be proposing, for many years (two decades?).\n    Mass' immunization rate is 65%.  What about the other 35%?  I guess\n    some parents are indeed too ignorant or too lazy , or simply do not \n    care.  \n\n>\n>Sorry to shatter your stereotypes.\n\n    ???\n>\n>> \n>>    In case you haven't noticed, Clintonites are pushing a universal health\n>>    care ACCESS program.  \"Access\" here means that folks who do not give \n>>    a damn about immunizing their children will have health care services\n>>    delivered to their doorsteps.\n>> \n>> \n>>-- \n>>------------------------------------------------------------------------------------------\n>>Disclaimer: Opinions expressed are mine, not my employer's.\n>>------------------------------------------------------------------------------------------\n\n\n-- \n------------------------------------------------------------------------------------------\nDisclaimer: Opinions expressed are mine, not my employer's.\n------------------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.226+0000", "event": "documents", "entityId": 4696, "properties": {"category": "comp.windows.x", "text": "From: ware@cis.ohio-state.edu (Peter Ware)\nSubject: comp.windows.x.intrinsics Frequently Asked Questions (FAQ)\nSupersedes: <FAQ-Xt_728840923@oboe.cis.ohio-state.edu>\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 1609\nExpires: 14 May 1993 17:41:53 GMT\nReply-To: ware@cis.ohio-state.edu\nNNTP-Posting-Host: oboe.cis.ohio-state.edu\nSummary: Answers about the X11 Window System widgets and Xt Intrinsics library\n\nArchive-name: Xt-FAQ\nVersion: $Id: FAQ-Xt,v 1.28 93/04/02 12:41:12 ware Exp $\n\n\t\t    The X Toolkit Intrinsics F.A.Q\n\t\t\t  A monthly posting\n\n\nThis article contains the answers to some Frequently Asked Questions\n(FAQ) from comp.windows.x about the X Toolkit Intrinsics.  To submit\nquestions (preferably with an answer) send email to: ware@cis.ohio-state.edu\n\nMany FAQs, including this one, are available on the archive site\nrtfm.mit.edu in the directory pub/usenet/news.answers.  The name\nunder which a FAQ is archived appears in the Archive-name \nline at the top of the article.  This FAQ is archived as Xt-FAQ.\n\nAll code fragments are public domain.  \n\n\t\t\t       Contents\n0.  Xt Glossary\n1.  Software Versions\n2.  Related FAQ's\n3.  Why does my application core dump when I use signals/alarms/cthreads?\n4.  How do I use a different visual than the default?\n5.  Which visual should an application use?\n6.  Why do only Shell widgets have a Visual?\n7.  Which visual, depth and colormap do Shells inherit?\n8.  I've done all the above and I still get a BadMatch error.  Why?\n9.  Why doesn't my widget get destroyed when I call XtDestroyWidget()?\n10. How do I exit but still execute the DestroyCallbacks?\n11. How do I resize a Shell widget?\n12. Why can't XtAppAddInput() handle files?\n13. What good books and magazines are there on Xt?\n14. What Widgets are available?\n15. What alternatives to the Intrinsics are there?\n16. How do I pass a float value to XtSetValues?\n17. How do I write a resource converter?\n18. How do I open multiple displays?\n19. What changed from R3 to R4 to R5?\n20. Where are the resources loaded from?\n21. What order are callbacks executed in?\n22. How do I know if a widget is visible?\n23. How do I reparent a widget in Xt, i.e. XtReparentWidget()?\n24. Why use XtMalloc, XtFree, etc?\n25. How to debug an Xt application?\n26. Why don't XtAddInput(), XtAddTimeout() and XtAddWorkProc() work?\n27. What is and how can I implement drag and drop?\n\n----------------------------------------------------------------------\n0.  Xt Glossary\n----------------------------------------------------------------------\n\no The Xt Intrinsics implement an object oriented interface to C code\n  to allow useful graphical components to be created.  Included with\n  this are classes that provide the base functionality: Object,\n  RectObj, Core, Composite, Constraint, Shell, OverrideShell, WMShell,\n  etc.  The terms \"Xt\" and \"Intrinsics\" are used interchangeably,\n  however, they are used very precisely to mean a specific library of the X\n  window system.  In particular, it does not include the Athena,\n  Motif, OLIT or any other widget set.  Without further widgets the\n  Intrinsics are not especially useful.\n\no A widget refers to a user interface abstraction created via Xt.  The\n  precise use, is any object that is a subclass of the Core class.  It\n  is used loosely to refer to anything that is a subclass of the\n  Object class although these are more accurately called windowless\n  widgets or gadgets.\n\no Xlib is the C interface to the X11 protocol.  It is one layer below\n  the Xt Intrinsics.  Typically a widget uses relatively few Xlib\n  functions because Xt provides most such services although an\n  understanding of Xlib helps with problems.\n\n----------------------------------------------------------------------\n1.  Software Versions\n----------------------------------------------------------------------\n\nThe following are the latest versions of Xt based software:\n        _____________________________________________________________\n\tSoftware\tVersion\t\tReleased\tNext Expected\n        _____________________________________________________________\n\tX11R4\t\tpatch 18\t\t\t(none)\n\tX11R5\t\tpatch 21\t12/18/92\t??\n\tAthena Widgets\t(see X11R5)\n\tMotif\t\t1.2.1\t\t9/92\t\t??\n\tOLIT\t\t??\t\t??\t\t??\n\tXtra\t\t2.5\t\t6/15/92\t\t??\n\tXw\t\tX11R4\t\t\t\t(none)\n\tXcu\t\tX11R5\t\t\t\t(none)\n\tfwf\t\t3.4\t\t1/11/92\t\t4/93\n        _____________________________________________________________\n\n----------------------------------------------------------------------\n2.  Related FAQ's\n----------------------------------------------------------------------\nDavid B. Lewis (uunet!craft!faq) maintains the FAQ on X.  It\nis posted monthly on comp.windows.x and located on export in contrib/FAQ.\n\nLiam R. E. Quin (lee@sq.sq.com) posts an FAQ list on Open Look to \ncomp.windows.x.  \n\nJan Newmarch (jan@pandonia.canberra.edu.au) posts an FAQ list on Motif \nto comp.windows.x.motif.\n\nPeter Ware (ware@cis.ohio-state.edu) posts an FAQ list for\ncomp.windows.x.intrinsics; it is on export in contrib/FAQ-Xt.\n\n----------------------------------------------------------------------\n3.  Why does my application core dump when I use signals/alarms/cthreads?\n----------------------------------------------------------------------\n\nIn brief, Xlib, Xt and most widget sets have no mutual exclusion for\ncritical sections.  Any interrupt handler is likely to leave one of\nthe above libraries in an inconsistent state -- such as all the\nappropriate flags not yet set, dangling pointers, in the middle of a\nlist traversal, etc.  Note that the ANSI C standard points out that\nbehavior of a signal handler is undefined if the signal handler calls\nany function other than signal() itself, so this is not a problem\nspecific to Xlib and Xt; the POSIX specification mentions other\nfunctions which may be called safely but it may not be assumed that\nthese functions are called by Xlib or Xt functions.\n\nThe only safe way to deal with signals is to set a flag in the\ninterrupt handler.  This flag later needs to be checked either by a\nwork procedure or a timeout callback.  It is incorrect to add either\nof these in the interrupt handler.  As another note, it is dangerous\nto add a work procedure that never finishes.  This effectively\npreempts any work procedures previously added and so they will never\nbe called.  Another option is to open a pipe, tell the event loop\nabout the read end using XtAppAddInput() and then the signal handler\ncan write a byte to the write end of the pipe for each signal.\nHowever, this could deadlock your process if the pipe fills up.\n\nWhy don't the Intrinsics deal with this problem?  Primarily because it\nis supposed to be a portable layer to any hardware and operating\nsystem.   Is that a good enough reason -- I don't think so.\n\n        Note: the article in The X Journal 1:4 and the example in O'Reilly\nVolume 6 are in error.\n\n----------------------------------------------------------------------\n4.  How do I use a different visual than the default?\n----------------------------------------------------------------------\n\nThis requires a more complicated answer than it should.  A window has\nthree things that are visual specific -- the visual, colormap and\nborder pixmap.  All widgets have their own Colormap and BorderPixmap\nresource; only shell widgets have Visual resources (another questions\ndeals with why shells have a Visual).  The default value of these\nresources is CopyFromParent which does exactly what it says.  In the\nshell widget CopyFromParent gets evalulated as DefaultVisualOfScreen\nand DefaultColormapOfScreen.  When any one of the three resources is\nnot properly set, a BadMatch error occurs when the window is\ncreated.  They are not properly set because each of the values depends\non the visual being used.  \n\nHow to get this to work?  There are two parts to the answer.  The\nfirst is if you want an application to start with a particular visual\nand the second is if you want a particular shell within an application\nto start with a different visual.  The second is actually easier\nbecause the basic information you need is available.  The first is a\nlittle harder because you'll need to initialize much of the toolkit\nyourself in order to determine the needed information.\n\n/*\n * Some sample code to start up an application using something other\n * than the default visual.\n *\n * To compile:\n *\tcc -g visual.c -o visual -lXaw -lXmu -lXt -lXext -lX11 -lm\n *\n * To run:\n *\t./visual -geometry 300x300 -depth 24 -visual StaticColor -fg blue -bg yellow\n *\n * you need to move the mouse to get the particular visuals colormap\n * to install.\n */\n\n#include <X11/Intrinsic.h>\n#include <X11/StringDefs.h>\n#include <X11/Shell.h>\n\ntypedef struct\n{\n\tVisual\t*visual;\n\tint\tdepth;\n} OptionsRec;\n\nOptionsRec\tOptions;\n\nXtResource resources[] =\n{\n\t{\"visual\", \"Visual\", XtRVisual, sizeof (Visual *),\n\tXtOffsetOf (OptionsRec, visual), XtRImmediate, NULL},\n\t{\"depth\", \"Depth\", XtRInt, sizeof (int),\n\tXtOffsetOf (OptionsRec, depth), XtRImmediate, NULL},\n};\n\nXrmOptionDescRec Desc[] =\n{\n\t{\"-visual\", \"*visual\", XrmoptionSepArg, NULL},\n\t{\"-depth\", \"*depth\", XrmoptionSepArg, NULL}\n};\n\n\n\nint\nmain (argc, argv)\n\tint\t\targc;\n\tchar\t\t**argv;\n{\n\tXtAppContext\tapp;\t\t/* the application context */\n\tWidget\t\ttop;\t\t/* toplevel widget */\n\tDisplay\t\t*dpy;\t\t/* display */\n\tchar\t\t**xargv;\t/* saved argument vector */\n\tint\t\txargc;\t\t/* saved argument count */\n\tColormap\tcolormap;\t/* created colormap */\n\tXVisualInfo\tvinfo;\t\t/* template for find visual */\n\tXVisualInfo\t*vinfo_list;\t/* returned list of visuals */\n\tint\t\tcount;\t\t/* number of matchs (only 1?) */\n\tArg\t\targs[10];\n\tCardinal\tcnt;\n\tchar\t\t*name = \"test\";\n\tchar\t\t*class = \"Test\";\n\n\t/*\n\t * save the command line arguments\n\t */\n\n\txargc = argc;\n\txargv = (char **) XtMalloc (argc * sizeof (char *));\n\tbcopy ((char *) argv, (char *) xargv, argc * sizeof (char *));\n\n\t/*\n\t * The following creates a _dummy_ toplevel widget so we can\n\t * retrieve the appropriate visual resource.\n\t */\n\tcnt = 0;\n\ttop = XtAppInitialize (&app, class, Desc, XtNumber (Desc), &argc, argv,\n\t\t\t       (String *) NULL, args, cnt);\n\tdpy = XtDisplay (top);\n\tcnt = 0;\n\tXtGetApplicationResources (top, &Options, resources,\n\t\t\t\t   XtNumber (resources),\n\t\t\t\t   args, cnt);\n\tcnt = 0;\n\tif (Options.visual && Options.visual != DefaultVisualOfScreen (XtScreen (top)))\n\t{\n\t\tXtSetArg (args[cnt], XtNvisual, Options.visual); ++cnt;\n\t\t/*\n\t\t * Now we create an appropriate colormap.  We could\n\t\t * use a default colormap based on the class of the\n\t\t * visual; we could examine some property on the\n\t\t * rootwindow to find the right colormap; we could\n\t\t * do all sorts of things...\n\t\t */\n\t\tcolormap = XCreateColormap (dpy,\n\t\t\t\t\t    RootWindowOfScreen (XtScreen (top)),\n\t\t\t\t\t    Options.visual,\n\t\t\t\t\t    AllocNone);\n\t\tXtSetArg (args[cnt], XtNcolormap, colormap); ++cnt;\n\n\t\t/*\n\t\t * Now find some information about the visual.\n\t\t */\n\t\tvinfo.visualid = XVisualIDFromVisual (Options.visual);\n\t\tvinfo_list = XGetVisualInfo (dpy, VisualIDMask, &vinfo, &count);\n\t\tif (vinfo_list && count > 0)\n\t\t{\n\t\t\tXtSetArg (args[cnt], XtNdepth, vinfo_list[0].depth);\n\t\t\t++cnt;\n\t\t\tXFree ((XPointer) vinfo_list);\n\t\t}\n\t}\n\tXtDestroyWidget (top);\n\n\n\t/*\n\t * Now create the real toplevel widget.\n\t */\n\tXtSetArg (args[cnt], XtNargv, xargv); ++cnt;\n\tXtSetArg (args[cnt], XtNargc, xargc); ++cnt;\n\ttop = XtAppCreateShell ((char *) NULL, class,\n\t\t\t\tapplicationShellWidgetClass,\n\t\t\t\tdpy, args, cnt);\n\n\t/*\n\t * Display the application and loop handling all events.\n\t */\n\tXtRealizeWidget (top);\n\tXtAppMainLoop (app);\n\treturn (0);\n}\n\n----------------------------------------------------------------------\n5.  Which visual should an application use?\n----------------------------------------------------------------------\n\nThis is a point that can be argued about but one opinion is there is\nno way for an application to know the appropriate visual -- it has to\nbe specified by the user.  If you disagree with this then your\napplication probably falls into the category of always using the\ndefault visual or it is hardware specific and expects some particular\nvisual such as 24bit TrueColor with an OverlayPlane extension (or some\nsuch).\n\nWhy?  No application runs in isolation.  Depending on the way a server\nallocates resources I may not always want your application to run in\nTrueColor mode if it is going to mess up my other applications.  I may\nbe very upset if it chooses to run in GreyScale instead of PsuedoColor\nor just monochrome.\n\nAs an example, on a low end color Sun server there are many different\npossible visuals: monochrome, 256 entry colormap, static gray, static\ncolor, and a 3/3/2 TrueColor.  The SGI Iris's offer all the above \nplus 12 bit TrueColor, 24 bit TrueColor, an Overlay Plane.\n\n----------------------------------------------------------------------\n6.  Why do only Shell widgets have a Visual?\n----------------------------------------------------------------------\n\nThis is strictly by convention.  It makes it possible for an arbitrary\nwidget to know that the visual it uses can be found by looking for the\nshell widget that is its ancestor and obtaining the visual of that\nshell.\n\nA widget can have its own visual resource.  If it does, it must have\nits own realize method to use the visual when it calls\nXCreateWindow().  You should also make this a resource that can be\nobtained with XtGetValues() so other widgets can find it.  A\nreasonable value is probably XtNvisual.\n\n----------------------------------------------------------------------\n7.  Which visual, depth and colormap do Shells inherit?\n----------------------------------------------------------------------\n\nThe default value for these resources are set to CopyFromParent.  This\nis interpreted as the DefaultColormapOfScreen(), DefaultDepthOfScreen()\nand the default visual of the screen if the widget has no parent -- i.e.\nit is an applicationShellWidgetClass and the root of your widget tree.\n\nIf the parent of the widget is not null, then the shell copies\ncolormap and depth from its parent and uses CopyFromParent as the\nvisual.\n\n----------------------------------------------------------------------\n8.  I've done all the above and I still get a BadMatch error.  Why?\n----------------------------------------------------------------------\n\nSome resource converters improperly cache references.  This was\nespecially true of X11R3 and earlier versions of Motif.\n\n----------------------------------------------------------------------\n9.  Why doesn't my widget get destroyed when I call XtDestroyWidget()?\n----------------------------------------------------------------------\n\nSee section 2.8 of the Xt specification.\n\nIt eventually does get destroyed, just not immediately.  The\nIntrinsics destroy a widget in a two-phase process.  First it and all\nof its children have a flag set that indicate it is being destroyed.\nIt is then put on a list of widgets to be destroyed.  This way any\npending X events or further references to that widget can be cleaned\nup before the memory is actually freed.  The second phase is then\nperformed after all callbacks, event handlers, and actions have\ncompleted, before checking for the next X event.  At this point the\nlist is traversed and each widget's memory is actually free()'d, among\nother things.\n\nAs some further caveats/trivia, the widgets may be destroyed if the\nIntrinsics determine that they have no further references to the\nwidgets on the list.  If so, then the phase 2 destruction occurs\nimmediately.  Also, if nested event loops are used, widgets placed on\nthe destroy list before entering the inner event loop are not\ndestroyed until returning to the outer event loop.\n\n----------------------------------------------------------------------\n10. How do I exit but still execute the DestroyCallbacks?\n----------------------------------------------------------------------\n\nThe problem is if a simple and entirely reasonable approach to exiting\nan application is used, such as calling exit() directly, then a widget\nmay not have a chance to clean up any external state -- such as open\nsockets, temporary files, allocated X resources, etc.  (this code for\nsimplicity reasons assumes only a single toplevel widget):\n\n\n\tWidget\n\tToplevelGet (gw)\n\t\tWidget\t\tgw;\t\t/* widget to find toplevel */\n\t{\n\t\tWidget\t\ttop;\n\n\t\tfor (top = gw; XtParent (top); top = XtParent (top))\n\t\t\t/* empty */;\n\t\treturn (top);\n\t}\n\n\tvoid\n\tExitCallback (gw, closure, call_data)\n\t\tWidget\t\tgw;\t\t/* widget */\n\t\tXtPointer\tclosure;\t/* data the app specified */\n\t\tXtPointer\tcall_data;\t/* widget specific data */\n\t{\n\t\tWidget\t\ttoplevel;\n\n\t\ttoplevel = ToplevelGet (gw);\n\t\tXtUnmapWidget (toplevel);\t/* make it disappear quickly */\n\t\tXtDestroyWidget (toplevel);\n\t\texit (0);\n\t}\n\nOne can see that the above code exit's immediately after destroying\nthe toplevel widget.  The trouble is the phase 2 destruction may never\noccur.  \n\nThis works for most widgets and most applications but will not work\nfor those widgets that have any external state.  You might think that\nsince it works now it will always work but remember that part of the\nreason an object oriented approach is used is so one can be ignorant\nof the implementation details for each widget.  Which means that the\nwidget may change and someday require that some external state is\ncleaned up by the Destroy callbacks.\n\nOne alternative is to modify ExitCallback() to set a global flag and\nthen test for that flag in a private event loop.  However, private\nevent loops are frowned upon because it tends to encourage sloppy, and\ndifficult to maintain practices.\n\nTry the following code instead.\n\n\t#include <X11/Intrinsic.h>\n\n\textern Widget ToplevelGet (\n\t#if NeedFunctionPrototypes\n\t\tWidget\t\tgw\n\t#endif\n\t);\n\n\textern Boolean ExitWorkProc (\n\t#if NeedFunctionPrototypes\n\t\tXtPointer\tclosure\n\t#endif\n\t);\n\n\textern void ExitCallback (\n\t#if NeedFunctionPrototypes\n\t\tWidget\t\tgw,\n\t\tXtPointer\tclosure,\n\t\tXtPointer\tcall_data\n\t#endif\n\t);\n\n\tWidget\n\tToplevelGet (gw)\n\tWidget\t\tgw;\t\t/* widget to find toplevel */\n\t{\n\t\tWidget\t\ttop;\n\n\t\tfor (top = gw; XtParent (top); top = XtParent (top))\n\t\t\t/* empty */;\n\t\treturn (top);\n\t}\n\n\n\tvoid\n\tExitCallback (gw, closure, call_data)\n\tWidget\t\tgw;\t\t/* widget */\n\tXtPointer\tclosure;\t/* data the app specified */\n\tXtPointer\tcall_data;\t/* widget specific data */\n\t{\n\t\tWidget\t\ttoplevel;\n\n\t\ttoplevel = ToplevelGet (gw);\n\t\tXtUnmapWidget (toplevel);\t/* make it disappear quickly */\n\t\tXtDestroyWidget (toplevel);\n\t\tXtAppAddWorkProc (XtWidgetToApplicationContext (gw),\n\t\t\t\t  ExitWorkProc, (XtPointer) NULL);\n\t}\n\n\tBoolean\n\tExitWorkProc (closure)\n\t\tXtPointer\tclosure;\n\t{\n\t\texit (0);\n\t\t/*NOTREACHED*/\n\t}\n\n\nExitCallback() adds a work procedure that will get called when the\napplication is next idle -- which happens after all the events are\nprocessed and the destroy callbacks are executed.\n\n----------------------------------------------------------------------\n11. How do I resize a Shell widget?\n----------------------------------------------------------------------\n\nAfter it is realized, one doesn't resize a Shell widget.  The proper\nthing is to resize the currently managed child of the Shell widget\nusing XtSetValues().  The geometry change is then propagated to the\nShell which asks the window manager which may or may not allow the\nrequest.  However, the Shell must have the resource\nXtNallowShellResize set to True otherwise it will not even ask the\nwindow manager to grant the request and the Shell will not resize.\n\nTo change the position of a Shell, use XtSetValues() on the Shell, not\nthe child, and within the limits of the window manager it should be granted.\n\n----------------------------------------------------------------------\n12. Why can't XtAppAddInput() handle files?\n----------------------------------------------------------------------\n\nIt does, however Unix semantics for when I/O is ready for a file does\nnot fit most peoples' intuitive model.  In Unix terms a file\ndescriptor is ready for reading whenever the read() call would not\nblock, ignoring the setting of optional flags that indicate not to\nblock.  This works as expected for terminals, sockets and pipes.  For\na file the read() will always return but the return indicates an EOF\n-- i.e. no more data.  The result is the code in the Intrinsics always\ncalls the input handler because it always thinks something is about to\nbe read.  The culprit is the select() system call or on SYSV based\nOS's it is the poll() system call.\n\nHow to get around this on a Unix system?  The best approach is to use\nanother process to check for available input on the file.  Use a pipe\nto connect the application with this other process and pass the file\ndescriptor from the pipe to XtAppAddInput().  A suitable program on\nBSD systems is \"tail -f filename\".\n\nIt's rumored that select() on some systems is not _completely_\nreliable.  In particular:\n\n\t- IBM AIX 3.1: this is one where it would work for a while\n\t  (several thousand times) and then stop until some other\n\t  event woke it up. This seemed to be the result of a race\n\t  condition in the Kernel.  IBM claims to have a fix for this.\n\n\t- Pyramid, doesn't work at all.\n\n\t- Ultrix (and possibly others where pipes are implemented as\n\t  sockets), wasn't completely broken, but although the writing\n\t  side wrote in 512 byte blocks the reading side received it\n\t  all broken up as if it was being put into the pipe a byte at\n\t  a time.  You can waste a lot of time by reading small blocks\n\t  (get raound it by detecting the situation and having\n\t  select() ignore the pipe for 10 mseconds - by then it had\n\t  been given the whole block).\n\n\nNote that all the above descriptions used Unix terminology such as\nread(), file descriptor, pipes, etc.  This is an OS dependent area and\nmay not be identical on all systems.  However the Intrinsic designers\nfelt it was a common enough operation that it should be included with\npart of the toolkit.  Why they didn't also deal with signals at this\npoint I don't know.\n\n----------------------------------------------------------------------\n13. What good books and magazines are there on Xt?\n----------------------------------------------------------------------\n\nI have a favorite that is the definitive reference.  To my perspective\nit offers a reasonable introduction but also goes into the full\ndetails of the Intrinsics.  When I started using it I was already\nfamiliar with Xt and the concepts behind it, so newcomers may or may\nnot find it useful.  I've always found it accurate and complete, which\nmeans its a 1000 pages.\n\nAsente, Paul J., and Swick, Ralph R., \"X Window System Toolkit, The\n\tComplete Programmer's Guide and Specification\", Digital Press,\n\t1990, ISBN 1-55558-051-3, order number EY-E757E-DP; and by\n\tPrentice-Hall, ISBN 0-13-972191-6. Also available through DEC\n\tDirect at 1-800-DIGITAL.\n\nThe other book I commonly recomend to novices is:\n\nYoung, Doug. \"The X Window System: Applications and Programming with\n\tXt (Motif Version),\" Prentice Hall, 1989 (ISBN 0-13-497074-8).\n\t(ISBN 0-13-972167-3)\n\nAnd of course O'Reilly has an entire series of manuals on X and Xt.\nO'Reilly ordering is 800-998-9938.  In particular, Volume 5 is an Xt\nreference done in manual page style.  The 3rd edition is extensively\noverhauled and goes far beyond the MIT manual pages.  I'm finding it\nvery useful.  In particular, the permutted index and references to\nother manual pages help a great deal in chasing down related\ninformation.\n\nI read two periodicals, \"The X Resource\" and the \"The X Journal\".\nThese are the only two dealing specifically with X.  \"The X Resource\"\nis published quarterly, by O'Reilly, with one of the issues being the\nMIT X Consortium Technical Conference Proceedings.  There is no\nadvertising.  I've found it informative with pretty good depth.  For\norders, call 1-800-998-9938, or email cathyr@ora.com.  For editorial\nmatters, email adrian@ora.com.  Table of contents are posted at\nmath.utah.edu in ~ftp/pub/tex/bib in TeX form and on ftp.uu.net in\n~ftp/published/oreilly/xresource in ASCII form.\n\n\n\"The X Journal\" is a bimonthly trade rag with lots of advertising.\nThe articles are informative and oriented toward a less technical\naudience.  I read it more to see what's going on then with an\nexpectation of learning a great deal (but remember, I represent a\nfairly small percentage of people).  Also, they have a pretty good\ncollection of people on the advisory board and as columnists.  Call\n(908) 563-9033.\n\n----------------------------------------------------------------------\n14. What Widgets are available?\n----------------------------------------------------------------------\n\nThere are three popular widget sets:\n\nAthena\t- The set provided with X11.  This is sufficient for most\n\t  purposes but is on the ugly side.  Recently, a 3d look is\n\t  available for ftp on export.lcs.mit.edu:/contrib/Xaw3d.tar.Z.\nMotif\t- From OSF available for a license fee and commonly shipped on\n\t  many workstation vendors platforms (almost everyone but\n\t  Sun).  It looks good and works well but personally I think\n\t  it is poorly implemented.\nOLIT\t- The Open Look Intrinsics Toolkit is a set of widgets\n\t  implementing Sun's Open Look specification.  Developed by\n\t  AT&T.  I've never used it so can't comment on its quality.\n\t  I've heard rumours that it is a pain to actually get.\n\nIn addition the following collection of widgets are also available:\n\nXtra\t- a library of widgets for sale from Graphical Software\n\t  Technology (310-328-9338).  It includes bar graph, stacked\n\t  bar graph, line graph, pie chart, xy plot, hypertext, help,\n\t  spreadsheet, and data entry form widgets.  I've never seen\n\t  them so I can't comment.\nFWF\t- The Free Widget Foundation is attempting to collect a set of\n\t  freely available widgets.  Included are a Pixmap editor,\n\t  FileDialog, and a few others.  The current set of widgets\n\t  can be obtained via anonymous ftp from the machine\n\t  a.cs.uiuc.edu (128.174.252.1) in the file pub/fwf.shar.Z.\nXcu\t- The Cornell University widgets from Gene Dykes.  One of the\n\t  early widget sets released.  Provides a nice appearance for\n\t  buttons and has a mini command language.  Probably not so\n\t  widely used.\nXs\t- The Sony widget set.  This was around during R3 days but\n\t  seemed to disappear.  It looked like it had promise.\nXw\t- The HP widgets.  The precursor to Motif.  Originally written\n\t  for R3 there exists diffs to get it to work under R4 & R5.\n\t  Again, a pretty good widget set but has more or less died.\n\t  The precursor to this was the Xray toolkit which was\n\t  originally implemented for X10R4 and apparently provided\n\t  much experience for the designers of Xt.\nXo\t- A widget set I'm working on.  It's still primitive but you\n\t  can give it a try in archive.cis.ohio-state.edu:pub/Xo/*\n\nThe following specialized widgets are also available:\n\nTbl\t- Implements a tabular layout of widgets.  Supports Motif\n\t  widgets as children.  Part of Wcl.\nPlots\t- The Athena Plotting widgets (not the Athena widgets).\n\t  Contact gnb@bby.oz.au or joe@Athena.MIT.EDU.\n\n----------------------------------------------------------------------\n15. What alternatives to the Intrinsics are there?\n----------------------------------------------------------------------\n\n\t__________________________________________\n\tName\t\tLanguage\tVendor\n\t__________________________________________\n\tXview\t\tC\t\tSun\n\tOI\t\tC++\t\tParcPlace\n\tInterviews\tC++\t\tStanford\n\tTcl/tk\t\tC\t\tsprite.berkeley.edu\n\t__________________________________________\n\n\nHowever much I like C and admire the skill in both designing and\nimplementing the Intrinsics, hopefully some alternative will develop\nin the next 3-5 years that uses an object oriented language.  Keep\nyour eyes open and expect some change about the same time a language\nother than C _starts_ gaining acceptance.\n\n----------------------------------------------------------------------\n16. How do I pass a float value to XtSetValues?\n----------------------------------------------------------------------\n\nFirst, what is going wrong is the structure for an Arg is (essentially)\n\ttypdef struct\n\t{\t\n\t    String\tname;\n\t    long\tvalue;\n\t} Arg;\n\nand the code:\n\tArg\targ;\n\n\tXtSetArg (arg, \"name\", 3.2)\n\nexpands to\n\tArg\targ;\n\n\targ.name = \"name\";\n\targ.value = 3.2;\n\nyou can see that with normal C type conversions, the arg.value\ngets the integer \"3\" instead of the floating point value \"3.2\".  When\nthe value is copied into the widget resource, the bit pattern is\nwildly different than that required for a floating point value.  So,\nhow to get around this?\n\nThe following macro is from the Athena widgets document and I am now\nrecomending it over the previous suggestions.\n\n#define XtSetFloatArg(arg, n, d) \\\n    if (sizeof(float) > sizeof(XtArgVal)) { \\\n        XtSetArg(arg, n, &(d)); \\\n    } else { \\\n        XtArgVal *ld = (XtArgVal *)&(d); \\\n        XtSetArg(arg, n, *ld); \\\n    }\n\n\n----------------------------------------------------------------------\n17. How do I write a resource converter?\n----------------------------------------------------------------------\n\nCourtesy of Rich Thomson (rthomson@dsd.es.com):\n\nThe following discussion of resource converters assumes R4 (or R5)\nIntrinsics.  Resource converters changed between R3 and R4 to allow\nfor destructors and caching of converted values.\n\nThere are several main types of resource converters:\n\n    string to data type\n    data type to string\n    data type to data type\n\ni) string to data type\n    Usually a string to data type converter has a fixed set of strings\n    that will be converted to data type values.  This is most often\n    used to map enumerated names to enumerated values:\n\n\tName\t\tValue\n\t\"True\"\t\t1\n\t\"False\"\t\t0\n\n    In this case, the string to data type converter needs to compare\n    the resource value to the list of fixed strings.  This is most\n    readily accomplished by the use of the \"quark\" mechanism of the\n    resource manager.  The resource value is turned into a quark,\n    which is a unique representation of the string that fits into a\n    single word.  Then the resource quark is compared against the\n    quarks for the fixed strings representing the enumerated values.\n\n    If there are many enumerated strings in the converter (or many\n    converters, each with a small number of enumeration strings), then\n    a global initialization routine might be used to turn all the\n    resource strings into quarks.  That way, the first time one of\n    these converters is used, the strings will be turned into quarks\n    and held in static variables for use in the next invocation of one\n    of the converters.\n\nii) data type to string\n    This type of converter is slightly easier than the string to data\n    type converters since the use of quarks isn't necessary.  Instead,\n    the data type value is simply converted to a string value,\n    probably by the use of sprintf.\n\n    Data type to string converters are useful for applications that\n    wish to convert an internal data type value into a string so that\n    they can write out a valid resource specification to a file.  This\n    mechanism can be used to provide a \"snapshot\" of application state\n    into a file.  This snapshot can be used to restore the program to\n    a known state via the usual X resource database mechanisms.\n\n    If you are taking the trouble to write a string to data type\n    converter, it isn't much extra effort to write the data type to\n    string converter.  Writing both at the same time helps to ensure\n    that they are consistent.\n\niii) data type to data type\n    This type of converter is used to convert an existing data type\n    value to another data type.  For instance, an X pixel value can be\n    converted to an RGB data type that contains separate fields for\n    red, green and blue.\n\n\nThe type signature for a resource converter is as follows:\n\ntypedef Boolean (*XtTypeConverter)(Display *, XrmValuePtr, Cardinal *,\n\tXrmValuePtr, XrmValuePtr, XtPointer *);\n    Display *dpy;\n    XrmValuePtr args;\n    Cardinal *num_args;\n    XrmValuePtr fromVal;\n    XrmValuePtr toVal;\n    XtPointer *converter_data;\n\nWhen the converter is invoked, the \"fromVal\" argument points to the source\nX resource manager value and the \"toVal\" argument points to the\ndestination X resource manager value.  The \"converter_data\" argument\nis an opaque pointer to some converter-specific data that is specified\nwhen the converter is registered.  The \"args\" and \"num_args\" arguments\nallow extra information to be passed to the converter when it is\ninvoked.  For instance, the Pixel to RGB structure converter discussed\nabove would need colormap and visual arguments in which to lookup the\nPixel to obtain the RGB values corresponding to that pixel.\n\nCare must be taken with the \"toVal\" argument.  An XrmValue has the\nfollowing type definition and specifies a size and location for a\nconverted value:\n\ntypedef struct {\n    unsigned int    size;\n    caddr_t         addr;\n} XrmValue, *XrmValuePtr;\n\nWhen the converter is invoked, the address may point to a location of\nthe given size for the converted value or the location can be NULL.\nIn the former case, the converter should ensure that the size of the\ndestination area is large enough to handle the converted value.  If\nthe destination area is not large enough, then the converter should\nset the size to the amount of space needed and return False.  The\ncaller can then ensure that enough space is allocated and reinvoke the\nconverter.  If the size is large enough, then the converter can simply\ncopy the converted value into the space given and return True.\n\nIf the location is NULL, then the converter can assign the location to\nthe address of a static variable containing the converted value and\nreturn True.\n\nWhen writing a group of converters, this code is often repeated and it\nbecomes convenient to define a macro:\n\n    #define DONE(var, type) \\\n      if (toVal->addr) \\\n\t{ \\\n\t  if (toVal->size < sizeof(type)) \\\n\t    { \\\n\t      toVal->size = sizeof(type); \\\n\t      return False; \\\n\t    } \\\n\t  else \\\n\t    *((type *) toVal->addr) = var; \\\n\t} \\\n      else \\\n\ttoVal->addr = (caddr_t) &var; \\\n      toVal->size = sizeof(type); \\\n      return True;\n\n    #define DONESTR(str) \\\n      if (toVal->addr && toVal->size < sizeof(String)) \\\n\t{ \\\n\t  toVal->size = sizeof(String); \\\n\t  return False; \\\n\t} \\\n      else \\\n\ttoVal->addr = (caddr_t) str; \\\n      toVal->size = sizeof(String); \\\n      return True;\n\nInside the converter, it is a good idea to perform a little safety\nchecking on the \"num_args\" and \"args\" arguments to ensure that your\nconverter is being called properly.\n\nOnce you have written your converter, you need to register it with the\nIntrinsics.  The Intrinsics invokes resource converters when creating\nwidgets and fetching their resource values from the resource database.\n\nTo register a converter with a single application context, use\nXtAppSetTypeConverter:\n\nvoid XtAppSetTypeConverter(context, from, to, converter, args, num_args,\n\tcache, destructor)\n    XtAppContext context;\n    String from;\n    String to;\n    XtTypeConverter converter;\n    XtConvertArgList args;\n    Cardinal num_args;\n    XtCacheType cache;\n    XtDestructor destructor;\n\nTo register a converter with all application contexts, use\nXtSetTypeConverter:\n\nvoid XtSetTypeConverter(from, to, converter, args, num_args,\n\tcache, destructor)\n    String from;\n    String to;\n    XtTypeConverter converter;\n    XtConvertArgList args;\n    Cardinal num_args;\n    XtCacheType cache;\n    XtDestructor destructor;\n\nIn the R3 Intrinsics, there were the routines XtAppAddConverter and\nXtAddConverter; these have been superseded by XtAppSetTypeConverter\nand XtSetTypeConverter.  Whenever possible, the newer routines should be\nused.\n\nWhen a converter is registered with the Intrinsics, a \"cache\" argument\nspecifies how converted resource values are to be cached:\n\n    XtCacheNone\t\tDon't cache any converted values\n    XtCacheAll\t\tCache all converted values\n    XtCacheByDisplay\tCache converted values on a per display basis\n\nCaching converted values that require a round-trip to the server is a\ngood idea (for instance string to Pixel conversions).\n\nThe \"destructor\" argument is a routine that is invoked then the\nresource is destroyed, either because its cached reference count has\nbeen decremented to zero or because the widget owning the value is\nbeing destroyed.  XtDestructor has the following type definition:\n\ntypedef void (*XtDestructor)(XtAppContext, XrmValuePtr, XtPointer,\n\tXrmValuePtr, Cardinal *);\n    XtAppContext context;\n    XrmValuePtr to;\n    XtPointer converter_data;\n    XrmValuePtr args;\n    Cardinal *num_args;\n\nThe destructor is invoked to free any auxiliary storage associated\nwith the \"to\" argument, but does not actually free the storage pointed\nto by the \"to\" argument itself (to->addr).  The destructor is passed\nthe extra arguments that were passed to the converter when the\nconversion was performed (for instance, colormap and visual arguments\nfor the string to Pixel converter since the destructor would need to\nfree the allocated Pixel from the colormap) as well as the private\ndata passed in when the converter was registered.\n\nSample converter code can be found in the following files in the MIT\nR5 distribution:\n\n    mit/lib/Xt/Converters.c\n    contrib/lib/PEXt/Converters.c\n    contrib/lib/PEXt/Converters.h\n\n----------------------------------------------------------------------\n18. How do I open multiple displays?\n----------------------------------------------------------------------\n\nSee \"Multi-user Application Software Using Xt\", The X Resource, Issue 3,\n(Summer 1992) by Oliver Jones for a complete coverage of the issues\ninvolved.  Most of this answer is based on that article.  In a\nnutshell, one uses XtOpenDisplay() to add each display to a _single_\napplication context and then XtCloseDisplay() to shutdown each display\nand remove it from the application context.\n\nThe real problems occur when trying to close down a display.  This can\nhappen 3 ways:\n\t1. User selects a \"quit\" button on one of the displays,\n\t2. User has window manager send a WM_DELETE_WINDOW message,\n\t3. Server disconnect -- possibly from a KillClient message,\n\t   server shutdown/crash, or network failure.\n\nI'll assume you can deal gracefully with 1 & 2 since it is _merely_ a\nproblem of translating a Widget to a display and removing that\ndisplay.  If not, then read the Oliver Jones article.\n\nThe third one is difficult to handle.  The following is based on the\nOliver Jones article and I include it here because it is a difficult\nproblem.\n\nThe difficulty arises because the Xlib design presumed that an I/O\nerror is always unrecoverable and so fatal.  This is essentially true\nfor a single display X based application, but not true for a\nmultiple display program or an application that does things other than\ndisplay information on an X server.  When an X I/O error occurs the\nI/O error handler is called and _if_ it returns then an exit()\nhappens.  The only way around this is to use setjmp/longjmp to avoid\nreturning to the I/O error handler.  The following code fragment\ndemonstrates this:\n\n#include <setjmp.h>\njmp_buf XIOrecover;\n\nvoid\nXIOHandler (dpy)\n\tDisplay\t\t*dpy;\n{\n\tdestroyDisplay (dpy);\n\tlongjmp (XIOrecover, 1);\n}\n\nmain ()\n{\n\t...\n\tif (setjmp (XIOrecover) == 0)\n\t\tXSetIOErrorHandler (XIOHandler);\n\tXtAppMainLoop (app_context);\n}\n\nThe destroyDisplay() is something that given a Display pointer can go\nback to the application specific data and perform any necessary\ncleanup.  It should also call XtCloseDisplay().\n\nFor those of you unfamiliar with setjmp/longjmp, when setjmp() is\nfirst called it returns a 0 and save's enough information in the\njmp_buf that a latter execution of longjmp() can return the program to\nthe same state as if the setjmp() was just executed.  The return value\nof this second setjmp() is the value of the second argument to\nlongjmp().  There are several caveats about using these but for this\npurpose it is adequate.\n\nSome other problems you might run into are resource converters that\nimproperly cache resources.  The most likely symptoms are Xlib errors\nsuch as BadColor, BadAtom, or BadFont.  There may be problems with the\ntotal number of displays you can open since typically only a limited\nnumber of file descriptors are available with 32 being a typical\nvalue.  You may also run into authorization problems when trying to\nconnect to a display.\n\nThere was much discussion in comp.windows.x about this topic in\nNovember of 91.  Robert Scheifler posted an article which basically\nsaid this is the way it will be and Xlib will not change.\n\n----------------------------------------------------------------------\n19. What changed from R3 to R4 to R5?\n----------------------------------------------------------------------\n\nThis addresses only changes in the Intrinsics.  First, the general\nchanges for each release are described.  Then a, certainly incomplete,\nlist of new functions added and others that are now deprecated are\nlisted.  Brevity is a primary goal.\n\nMuch of the following information is retrieved from Chapter 13 of the MIT\nXt Intrinsics Manual and from O'Reilly Volume 5, 3rd edition.\n\nFrom R3 to R4\n- Addition of gadgets (windowless widgets)\n- New resource type converter interface to handle cacheing and\n  additional  data.\n- Variable argument list interface.\n- #define XtSpecificationRelease 4  (added with this release)\n- WMShellPart, TopLevelShellPart & TransientShellPart changed\n  incompatibly.\n- core.initialize, core.set_values added ArgList and count parameters\n- event handlers had continue_to_dispatch parameter added\n- core.set_values_almost specification changed.\n- core.compress_exposure changed to an enumerated data type from Boolean\n- core.class_inited changed to enumerated data type from Boolean\n- constraint.get_values_hook added to extension record\n- core.initialize_hook obsolete as info is passed to core.initialize\n- shell.root_geometry_manager added to extension record\n- core.set_values_hook obsolete as info is passed to core.set_values\n- Calling XtQueryGeometry() must store complete geometry.\n- Added UnrealizeCallback.\n- XtTranslateCoords() actually works under R4.\n\nFrom R4 to R5:\n- Psuedo resource baseTranslation added.\n- Searching for app-default, and other files, made more flexible\n- customization resource added.\n- Per-screen resource database.\n- Support permanently allocated strings.\n- Permanetly allocated strings required for several class fields.\n- The args argument to XtAppInitialize, XtVaAppInitialize,\n  XtOpenDisplay, XtDisplayInitialize, and XtInitialize were changed\n  from Cardinal* to int*\n- Many performance improvements (this is summarized from the article\n  \"Xt Performance Improvements in Release 5\" by Gabe Beged-Dov in \"The\n  X Resource\", Issue 3):\n\t- XrmStringToQuark() augmented with XrmPermStringToQuark() to\n\t  avoid string copies.  Several fields in the class record are\n\t  indicated as needing permanent strings.\n\t- Using an array of Strings for resources\n\t- Callback lists redesigned to use less memory\n\t- Translation manager redesigned and rewritten so it takes\n\t  less memory, translation tables merges are faster, cache of\n\t  action bindings\n\t- Keycode to Keysyms are cached.\n\t- Better sharing of GC's with modifiable fields\n\t- Window to Widget translation uses less space and faster\n\t- Does not malloc space for widget name since quark is available\n\t- Widget space is allocated to include the constraints\n\t- Over several example programs, about a 26% reduction in\n\t  memory usage.\n\nFunctions new with R5:\n----------------------\nXtAllocateGC()\t\t- sharable GC with modifiable fields  \nXtGetActionList()\t- get the action table of a class\nXtScreenDatabase()\t- return resource database for a screen\nXtSetLanguageProc()\t- register language procedure called to set locale\n\n\nFunctions new with R4:\n----------------------\nXtAppAddActionHook()\t- procedure to call before _every_ action.\nXtAppInitialize()\t- lots of initialization work.\nXtAppReleaseCacheRefs()\t- decrement cache reference count for converter\nXtAppSetFallbackResources() - specify default resources\nXtAppSetTypeConverter()\t- register a new style converter\nXtCallCallbackList()\t- directly execute a callback list\nXtCallConverter\t()\t- invoke a new style converter\nXtCallbackReleaseCacheRef() - release a cached resource value\nXtCallbackReleaseCacheRefList() - release a list of cached resource values\nXtConvertAndStore()\t- find and call a resource converter\nXtDirectConvert()\t- Invoke old-style converter\nXtDisplayOfObject()\t- Return the display\nXtDisplayStringConversionWarning() - issue a warning about conversion\nXtFindFile()\t\t- Find a file\nXtGetActionKeysym()\t- Retrieve keysym & modifies for this action\nXtGetApplicationNameAndClass() - return name and class\nXtGetConstraintResourceList() - get constraints for a widget\nXtGetKeysymTable()\t- return keycode-to-keysym mapping table\nXtGetMultiClickTime()\t- read the multi-click time\nXtGetSelectionRequest()\t- retrieve the SelectionRequest event\nXtGetSelectionValueIncremental() - obtain the selection value incrementally\nXtGetSelectionValuesIncremental() - obtain the selection value incrementally\nXtInitializeWidgetClass() - initialize a widget class manually\nXtInsertEventHanlder()\t- register event handler before/after others\nXtInsertRawEventHandler() - register event handler without modify input mask\nXtIsObject()\t\t- test if subclass of Object\nXtIsRectObj()\t\t- test if subclass of RectObj\nXtKeysymToKeyCodeList()\t- return list of keycodes\nXtLastTimestampProcessed() - retrieve most recent event time\nXtMenuPopdown\t\t- Action for popping down a widget\nXtMenuPopup\t\t- Action for popping up a widget\nXtOffsetOf\t\t- macro for structure offsets\nXtOwnSelectionIncremental() - make selection data availabe incrementally\nXtPoupSpringLoaded()\t- map a spring-loaded popup\nXtRegisterGrabAction()\t- indicate action procedure needs a passive grab\nXtRemoveActiohHook()\t- remove function called after every action\nXtResolvePathname()\t- find a file\nXtScreenOfObject()\t- return screen of object.\nXtSetMultiClickTime()\t- set the multi-click time\nXtSetWMColormapWindows() - set WM_COLORMAP_WINDOWS for custom colormaps\nXtUngrabButton()\t- cancel a passive button grab\nXtUngrabKey()\t\t- cancel a passive key grab\nXtUngrabKeybard()\t- release an active keyboard grab\nXtUngrabPointer()\t- release an active pointer grab\nXtVa*()\t\t\t- varags interfaces to a bunch of functions\nXtWindowOfObject()\t- return Window of nearest widget ancestor\n\n\nDeprecated\t\tReplacement\t\t\tWhen\n----------------------------------------------------------------------\nXtAddActions()\t\tXtAppAddActions()\t\tR3\nXtAddConverter()\tXtAppAddConverter()\t\tR3\nXtAddInput()\t\tXtAppAddInput ()\t\tR3\nXtAddTimeout()\t\tXtAppAddTimeout()\t\tR3\nXtAddWorkProc()\t\tXtAppAddWorkProc()\t\tR3\nXtConvert()\t\tXtConvertAndStore()\t\tR4\nXtCreateApplicationShell XtAppCreateShell()\t\tR3\nXtDestroyGC()\t\tXtReleaseGC()\t\t\tR3\nXtError()\t\tXtAppError()\t\t\tR3\nXtGetErrorDatabase()\tXtAppGetErrorDatabase\t\tR3\nXtGetErrorDatabaseText() XtAppGetErrorDatabaseText\tR3\nXtGetSelectionTimeout()\tXtAppGetSelectionTimeout\tR3\nXtInitialize()\t\tXtAppInitialize()\t\tR3\nXtMainLoop()\t\tXtAppMainLoop()\t\t\tR3\nMenuPopdown(action)\tXtMenuPopdown(action)\t\tR4\nMenuPopup(action)\tXtMenuPopup(action)\t\tR4\nXtNextEvent()\t\tXtAppNextEvent()\t\tR3\nXtPeekEvent()\t\tXtAppPeekEvent()\t\tR3\nXtPending()\t\tXtAppPending()\t\t\tR3\nXtSetErrorHandler()\tXtAppSetErrorHandler()\t\tR3\nXtSetErrorMsgHandler\tXtAppSetErrorMsgHandler()\tR3\nXtSetSelectionTimeout()\tXtAppSetSelectionTimeout()\tR3\nXtSetWarningHandler()\tXtAppSetWarningHandler()\tR3\nXtSetWarningMsgHandler() XtAppSetWarningMsgHandler()\tR3\nXtWarning()\t\tXtAppWarning()\t\t\tR3\nXtWarningMsg()\t\tXtAppWarningMsg()\t\tR3\n\n----------------------------------------------------------------------\n20. Where are the resources loaded from?\n----------------------------------------------------------------------\n\nThe resources of a widget are filled in from the following places\n(from highest priority to lowest priority):\n\n\t1. Args passed at creation time.\n\t2. Command line arguments.\n\t3. User's per host defaults file\n\t4. User's defaults file.\n\t5. User's per application default file.\n\t6. System wide per application default file.\n\nNote that 2-6 are read only once on application startup.  The result\nof steps 3-6 is a single resource database used for further queries.\n\nThe per host defaults file contains customizations for all\napplications executing on a specific computer.  This file is either\nspecified with the XENVIRONMENT environment variable or if that is not\nset then the file $HOME/.Xdefaults-<host> is used.\n\nThe user defaults file is either obtained from the RESOURCE_MANAGER\nproperty on the root window of the display or if that is not set then\nthe file $HOME/.Xdefaults is used.  Typically, the program \"xrdb\" is\nused to set the RESOURCE_MANAGER property.  Please note that this\nshould be kept relatively small as each client that connects to the\ndisplay must transfer the property.  A size of around 1-3KByte is\nreasonable.  Some toolkits may track changes to the RESOURCE_MANAGER\nbut most do not.\n\nA user may have many per application default files containing\ncustomizations specific to each application.  The intrinsics are quite\nflexible on how this file is found.  Read the next part that describes\nthe various environment variables and how they effect where this file\nis found.\n\nThe system wide per application default files are typically found in\n/usr/lib/X11/app-defaults.  If such a file is not found then the\nfallback resources are used.  The intrinsics are quite flexible on how\nthis file is found.  Read the next part that describes the various\nenvironment variables and how they effect where this file is found.\n\n[Thanks to Oliver Jones (oj@pictel.com) for the following, 6/92]\n\nYou can use several environment variables to control how resources are\nloaded for your Xt-based programs -- XFILESEARCHPATH,\nXUSERFILESEARCHPATH, and XAPPLRESDIR.  These environment variables\ncontrol where Xt looks for application-defaults files as an\napplication is initializing.  Xt loads at most one app-defaults file\nfrom the path defined in XFILESEARCHPATH and another from the path\ndefined in XUSERFILESEARCHPATH.\n\nSet XFILESEARCHPATH if software is installed on your system in such a\nway that app-defaults files appear in several different directory\nhierarchies.  Suppose, for example, that you are running Sun's Open\nWindows, and you also have some R4 X applications installed in\n/usr/lib/X11/app-defaults. You could set a value like this for\nXFILESEARCHPATH, and it would cause Xt to look up app-defaults files\nin both /usr/lib/X11 and /usr/openwin/lib (or wherever your\nOPENWINHOME is located):\n\n\tsetenv XFILESEARCHPATH /usr/lib/X11/%T/%N:$OPENWINHOME/lib/%T/%N\n\nThe value of this environment variable is a colon-separated list of\npathnames.  The pathnames contain replacement characters as follows\n(see XtResolvePathname()):\n\n\t%N\tThe value of the filename parameter, or the\n\t\tapplication's class name.\n\t%T\tThe value of the file \"type\".  In this case, the\n\t\tliteral string \"app-defaults\"\n\t%C\tcustomization resource (R5 only)\n\t%S\tSuffix.  None for app-defaults.\n\t%L\tLanguage, locale, and codeset (e.g. \"ja_JP.EUC\")\n\t%l\tLanguage part of %L  (e.g. \"ja\")\n\t%t\tThe territory part of the display's language string\n\t%c\tThe codeset part of the display's language string\n\nLet's take apart the example.  Suppose the application's class name is\n\"Myterm\". Also, suppose Open Windows is installed in /usr/openwin.\n(Notice the example omits locale-specific lookup.)\n\n\t/usr/lib/X11/%T/%N        means /usr/lib/X11/app-defaults/Myterm\n\t$OPENWINHOME/lib/%T/%N    means /usr/openwin/lib/app-defaults/Myterm\n\nAs the application initializes, Xt tries to open both of the above\napp-defaults files, in the order shown.  As soon as it finds one, it\nreads it and uses it, and stops looking for others.  The effect of\nthis path is to search first in /usr/lib/X11, then in /usr/openwin.\n\nLet's consider another example. This time, let's set\nXUSERFILESEARCHPATH so it looks for the file Myterm.ad in the current\nworking directory, then for Myterm in the directory ~/app-defaults.\n\n\tsetenv XUSERFILESEARCHPATH ./%N.ad:$HOME/app-defaults/%N\n\nThe first path in the list expands to ./Myterm.ad.  The second expands\nto $HOME/app-defaults/Myterm.  This is a convenient setting for\ndebugging because it follows the Imake convention of naming the\napp-defaults file Myterm.ad in the application's source directory, so\nyou can run the application from the directory in which you are\nworking and still have the resources loaded properly.\n\nNOTE: when looking for app-default files with XUSERFILESEARCHPATH,\n      for some  bizarre reason, neither the type nor file suffix is\n      defined so %T and %S are useless.\n\nWith R5, there's another twist.  You may specify a customization\nresource value.  For example, you might run the \"myterm\" application\nlike this:\n\n\tmyterm -xrm \"*customization: -color\"\n\nIf one of your pathname specifications had the value\n\"/usr/lib/X11/app-defaults/%N%C\" then the expanded pathname would be\n\"/usr/lib/X11/app-defaults/Myterm-color\" because the %C substitution\ncharacter takes on the value of the customization resource.\n\nThe default XFILESEARCHPATH, compiled into Xt, is:\n\n\t\t/usr/lib/X11/%L/%T/%N%C:\\  (R5)\n\t\t/usr/lib/X11/%l/%T/%N%C:\\  (R5)\n\t\t/usr/lib/X11/%T/%N%C:\\     (R5)\n\t\t/usr/lib/X11/%L/%T/%N:\\\n\t\t/usr/lib/X11/%l/%T/%N:\\\n\t\t/usr/lib/X11/%T/%N\n\n(Note: some sites replace /usr/lib/X11 with a ProjectRoot in this\nbatch of default settings.)\n\nThe default XUSERFILESEARCHPATH, also compiled into Xt, is \n\n\t\t<root>/%L/%N%C:\\  (R5)\n\t\t<root>/%l/%N%C:\\  (R5)\n\t\t<root>/%N%C:\\     (R5)\n\t\t<root>/%L/%N:\\\n\t\t<root>/%l/%N:\\\n\t\t<root>/%N:\n\n<root> is either the value of XAPPLRESDIR or the user's home directory\nif XAPPLRESDIR is not set.  If you set XUSERFILESEARCHPATH to some\nvalue other than the default, Xt ignores XAPPLRESDIR altogether.\n\nNotice that the quick and dirty way of making your application find\nyour app-defaults file in your current working directory is to set\nXAPPLRESDIR to \".\", a single dot.  In R3, all this machinery worked\ndifferently; for R3 compatibilty, many people set their XAPPLRESDIR\nvalue to \"./\", a dot followed by a slash.\n\n\n----------------------------------------------------------------------\n21. What order are callbacks executed in?\n----------------------------------------------------------------------\n(Courtesy of Donna Converse, converse@expo.lcs.mit.edu; 5/10/92)\n\nThe Intrinsics library do not guarantee an order.  This is because\nboth the widget writer and the application writer have the ability to\nmodify the entire contents of the callback list.  Neither one\ncurrently knows what the other is doing and so the Intrinsics cannot\nguarantee the order of execution.\n\nThe application programmer cannot rely on the widget writer; the\nwidget writer is not required to document when the widget will add and\nremove callbacks from the list or what effect this will have;\ntherefore the functionality contained in a callback should be\nindependent of the functionality contained in other callbacks on the\nlist.\n\nEven though the Xt standard in the definition of XtAddCallback\nsays:\n\n \t\"callback_name: Specifies the callback list to which the\n \tprocedure is to be appended.\"\n \nyou may not infer from the word \"appended\" that the callback routines\nare called in the same order as they have been added to the callback\nlist.\n\n----------------------------------------------------------------------\n22. How do I know if a widget is visible?\n----------------------------------------------------------------------\n(Courtesy of Donna Converse, converse@expo.lcs.mit.edu; 5/14/92)\n\n> I am building a widget needs to know if it is visible. I set the visible\n> interest field in Core and if my window is completely obscured, the Core\n> visible flag goes FALSE. However, if my window is iconified, the flag\n> stays set to TRUE.\n\nRight, everything is implemented correctly.  This demonstrates a \"deficiency\"\nin the X protocol, and the Core widget is reflecting the capabilities of the\nprotocol.  (The \"deficiency\" is that the information is available in one way,\nin this case an inconvenient way.)  The Xt specification is accurate, in\nthe second and third paragraphs of section 7.10.2, so read this section\ncarefully.  The visible field will not change in response to iconification.\n\nA VisibilityNotify event will not be received when the window goes from\nviewable to unviewable, that is, when the widget or an ancestor is unmapped;\nthat is, when iconification occurs.  This is the protocol deficiency.\nVisibility state and viewable state have specific meanings in the X protocol;\nsee the glossary in your Xlib and X protocol reference manual.\n\n> Is this a problem with \"mwm\" or is there something\n> else which needs to be done?\n\nYou'll see this with any window manager, with no window manager.\n\n> If the problem is \"mwm\", what is the fastest\n> way to determine if a window is iconified? \n\nAs an application writer, keep track with a global Boolean in an action\nroutine with translations for MapNotify and UnmapNotify on the Shell widget\nwhich contains your custom widget.  As the custom widget writer, see the\nmap_state field returned by a call to XGetWindowAttributes.  These are\nsuggestions.\n\n----------------------------------------------------------------------\n23. How do I reparent a widget in Xt, i.e. XtReparentWidget()?\n----------------------------------------------------------------------\n\nYou can't.\n\n----------------------------------------------------------------------\n24. Why use XtMalloc, XtFree, etc?\n----------------------------------------------------------------------\n\nUnfortunately, most code that calls malloc(), realloc() or calloc()\ntends to ignore the possibility of returning NULL.  At best it is\nhandled something like:\n\n\tptr = (type *) malloc (sizeof (type))\n\tif (!ptr)\n\t{\n\t\tperror (\"malloc in xyzzy()\");\n\t\texit (1)\n\t}\nTo handle this common case the Intrinsics define the functions\nXtMalloc(), XtCalloc(), XtNew(), XtNewString() and XtRealloc() which\nall use the standard C language functions malloc(), calloc() and\nrealloc() but execute XtErrorMsg() if a NULL value is returned.  Xt\nerror handlers are not supposed to return so this effectively exits.\n\nIn addition, if XtRealloc() is called with a NULL pointer, it uses\nXtMalloc() to get the initial space.  This allows code like:\n\n\tif (!ptr)\n\t\tptr = (type *) malloc (sizeof (type));\n\telse\n\t\tptr = (type *) realloc (ptr, sizeof (type) * (count + 1));\n\t++count;\n\nto be written as:\n\n\tptr = XtRealloc (ptr, sizeof (ptr) * ++count);\n\nAlso, XtFree() accepts a NULL pointer as an argument.  Generally, I've\nfound the Xt functions conveniant to use.  However, anytime I'm\nallocating anything potentially large I use the standard functions so\nI can fully recover from not enough memory errors.\n\nXtNew() and XtNewString() are conveniant macros for allocating a\nstructure or copying a string:\n\n\t  struct abc *xyzzy;\n\t  char\t     *ptr;\n\t  char\t     *str = \"abcdef\";\n\n\t  xyzzy = XtNew (struct abc);\t/* takes care of type casting */\n\t  ptr = XtNewString (str);\n\nA strict interpretation of the Intrinsics reference manual allow an\nimplementation to provide functions that are not exchangable with\nmalloc() and free().  I.e. code such as:\n\n\t char\t      *ptr;\n\n\t ptr = XtMalloc (100);\n\t /* ... */\n\t free (ptr);\n\nmay not work.  Personally, I'd call any implementation that did this\nbroken and complain to the vendor.\n\nA common error for Motif programmers is to use XtFree() on a string\nwhen they should really be using XmStringFree().\n\n----------------------------------------------------------------------\n25. How to debug an Xt application?\n----------------------------------------------------------------------\nFirst, I'd recomend getting \"purify\" from Pure Software.  This is a\ngreat package for tracing memory problems on Sun's.  It's a bit pricey\nat $2750 but I'd still recomend it.  Excuse the marketing blurb\n(contact support@pure.com for more info).\n\n\tPurify inserts additional checking instructions directly into\n\tthe object code produced by existing compilers.  These\n\tinstructions check every memory read and write performed by\n\tthe program under test and detect several types of access\n\terrors, such as reading unitialized memory, writing past\n\tmalloc'd bounds, or writing to freed memory.  Purify inserts\n\tchecking logic into all of the code in a program, including\n\tthird party and vendor object-code libraries, and verifies\n\tsystem call interfaces.  In addition, Purify tracks memory\n\tusage and identifies individual memory leaks using a novel\n\tadaption of garbage collection techniques.  Purify's nearly\n\tcomprehensive memory access checking slows the target program\n\tdown typically by a factor of two to five.\n\nAn alternative package that isn't as pricey ($395 for a Sun), runs on\nmany Unix's and has pretty similar features is \"The SENTINEL Debugging\nEnvironment\".  This replaces malloc() and several other C library\nfunctions to add additional checks.  (contact cpcahil@virtech.vti.com\nfor more info)\n\nNext, if you are getting any sort of Xlib error, you'll need to run in\nsynchronous mode, easily accomplished with the \"-sync\" command line\nargument or by setting the variable Xdebug to 1 with your debugger.  Then\nset a break point in exit().  This will let you trace back to the\noriginal Xlib function being called.  If you don't run in synchronous\nmode, then the actual error may have occured any number of calls to\nXlib previously since the Xlib calls are buffered and replies from the\nserver are asynchronous.\n\nNext, if you are having trouble with window layout, you can use the\nundocumented resource \"xtIdentifyWindows\" or the class resource\n\"XtDebug\" to cause the widget name to be identified with each window.\nFor example:\n\n    example% xload -xrm '*XtDebug:true' &\n    example% xwininfo -tree\n\t     <click in new xload window>\n\nwill give the normal information but the widget name and class of each\nwindow is included.  This can help for checking the location and size\nof errant widgets.\n\nNext, if you are having trouble with geometry managers or you want to\ntest the way a widget manages it's children, you can try\nexport.lcs.mit.edu:contrib/libXtGeo.tar.Z.  This acts as a filter\nbetween any children and a geometry manager and checks the behaviour\nof both.  It's a very clever idea.\n\nThe most unfortunate problem is debugging a callback while the\napplication is executing a grab of the keyboard or mouse (such as from\na pulldown menu).  The server effectively locks up and you'll need to\ngo to another machine and kill the debugger manually.  The server\nlocks up because the application being debugged has said no one else\ncan have access to the keyboard but the application is not stopped\nwaiting because the debugger is waiting for your commands.\nUnfortunately you can't give them because all the input is going to\nyour application which is stopped.\n\nThe best way to debug this kind of problem is with two machines on\nyour desk, running the program under a debugger (or other environment)\non one machine, and running the application on the other, possibly\nusing a command sequence like this:\n\n\tothermachine% xhost +thismachine\n\tthismachine% setenv DISPLAY othermachine:0;\n\tthismachine% gdb application\t# Your favorite debugger.\n\tor this:\n\tothermachine% xhost +thismachine\n\tthismachine% gdb application\n\t(gdb) set environment DISPLAY othermachine:0\n\t(gdb) run ...\n\nI believe CodeCenter, a C interpreter/graphical debugger has a method\nof dealing with this by explicitely calling the Xlib functions to\nrelease any grabs during breakpoints.\n\nDebugging widget problems requires pretty good debugging skills and\nknowledge of how widgets work.  You can go a long way without knowing\nthe internals of a particular widget but not very far without\nunderstanding how a widget works.  Judicious use of conditional\nbreakpoints and adding print statements with the debugger help a great\ndeal.\n\n----------------------------------------------------------------------\n26. Why don't XtAddInput(), XtAddTimeout() and XtAddWorkProc() work?\n----------------------------------------------------------------------\n   I have got a delicate problem with the three routines XtAddInput,\n   XtAddTimeOut and XtAddWorkProc. The problem I have is that when\n   I use them in my application they seem not to be registred properly.\n   I have made a handy little testprogram where everything works\n   perfect, but in my \"real\" application nothing happens. \n\nThe introduction in R3 of the XtApp*() functions obsoleted those\nroutines (see Q19 for other changes in R3, R4, and R5).  What happens is\nthey use a default application context different then the one you may\nhave created.  Since events and timeouts are distributed on a per\napplication context basis and you are using two application contexts,\nyou won't get those events.\n\nFor example:\n\n\t...\n\tcnt = 0;\n\ttoplevel = XtAppInitialize(&app, class,\n\t\t\t\t   Desc, XtNumber (Desc),\n\t\t\t\t   &argc, argv,\n\t\t\t\t   Fallback, args, cnt);\n\n\tXtAddTimeOut (...)\n\tXtAddWorkProc (...)\n\n\tXtAppMainLoop (app)\n\nwould never invoke the timeout.\n\n----------------------------------------------------------------------\n27. What is and how can I implement drag and drop?\n----------------------------------------------------------------------\n(Courtesy of Roger Reynolds, rogerr@netcom.com; 19 Feb 93)\n\nDrag-n-drop is a buzzword for moving data between clients, in an\n``intuitive'' fashion.\n\nMotif Version 1.2 supports drag-n-drop capabilities, OpenLook has\nsupported d-n-d all along.  The two protocols are not compatable with\neach other, and so far as I know, they are not published.\n\nI wrote a package called RDD which is designed to be a flexible public\nprotocol for doing drag 'n drop operations between clients.  My\nintention was to provide a tool which would make it easy for people to\nsupport a \"standard\" drag-n-drop protocol in the programs they develop\nand contribute or sell, regardless of what widget set is used (as long\nas it is based on Xt).\n\nThe implementation is based upon my understanding of the ICCCM\nconventions, for more details read the code.\n\nI have heard from dozens of people using RDD who like it and feel that\nit works a whole lot better than Motif 1.2 stuff.  Also, there seem to\nbe many who think that it is neat but are constrained to use Motif\nanyway.\n\nThe latest RDD (and some other stuff) is available for ftp from\nnetcom.com, in /pub/rogerr.  A (possibly older) version is also\navailable on export.lcs.mit.edu in /contrib.\n-- \nPete Ware\t\t\t\t\tware@cis.ohio-state.edu\nCIS Dept, Ohio State University\t\t\tw/ (614) 292-7318\n228 Bolz Hall, 2036 Neil Ave.\t\t\th/ (614) 538-0965\nColumbus, OH 43210\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4697, "properties": {"category": "comp.graphics", "text": "From: dstampe@psych.toronto.edu (Dave Stampe)\nSubject: Re: Fast polygon routine needed\nKeywords: polygon, needed\nOrganization: Department of Psychology, University of Toronto\nLines: 27\n\nsol.surv.utas.edu.au (Stephen Quan) writes:\n\n>>>>[...], but I'm looking for a fast polygon routine to be used in a 3D game.\n>>>A fast polygon routine to do WHAT?\n>>To draw polygons of course.  Its a VGA mode 13h (320x200) game, [...]\n>\n>Hi, I've come across a fast triangle fill-draw routine for mode 13h.  By\n>calling this routine enough times, you have a fast polygon drawing routine.\n>\n>I think I ftp'ed from wuarchive.wustl.edu:/pub/MSDOS_UPLOADS/programming.\n>I have a copy of it so I reupload it there.  The triangle.txt file has this\n>to say :\n>\n>>  C and inline assembly source for a VGA mode 13h triangle drawer.\n>\nAnother source:  There's a poly blitter for mode y (mode x in 320x200)\nat sunee.uwaterloo.ca.  Also there is REND386, an even faster 3D\nrenderer with VR extensions.\n\n\n--------------------------------------------------------------------------\n| My life is Hardware,                    |         Dave Stampe          | \n| my destiny is Software,                 | dstampe@psych.toronto.edu    |\n| my CPU is Wetware...                    | dstampe@sunee.uwaterloo.ca   | \n| Am I a techno-psychologist, or just a psycho-engineer ??               |\n--------------------------------------------------------------------------\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4698, "properties": {"category": "sci.med", "text": "From: sdbsd5@cislabs.pitt.edu (Stephen D Brener)\nSubject: Japanese for Scientists and Engineers\nOrganization: University of Pittsburgh\nLines: 101\n\n\n    INTENSIVE JAPANESE AT THE UNIVERSITY OF PITTSBURGH THIS SUMMER\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\nThe University of Pittsburgh is offering two intensive Japanese language\ncourses this summer.  Both courses, Intensive Elementary Japanese and \nIntensive Intermediate Japanese, are ten week, ten credit courses \neach equivalent to one full year of Japanese language study.  They begin \nJune 7 and end August 13.  The courses meet five days per week, five hours \nper day.  There is a flat rate tuition charge of $1600 per course.  \nFellowships available for science and engineering students.  Contact \nSteven Brener, Program Manager of the Japanese Science and Technology\nManagement Program, at the University of Pittsburgh at the number or\naddress below.  \nALL INTERESTED INDIVIDUALS ARE ENCOURAGED TO APPLY, THIS IS NOT LIMITED TO \nUNIVERSITY STUDENTS.\n\n\n\n  \n\n#######################################################################\n#################   New Program Announcement   ########################\n#######################################################################\n\n\n            JAPANESE SCIENCE AND TECHNOLOGY MANAGEMENT PROGRAM\n\nThe Japanese Science and Technology Management Program (JSTMP) is a new\nprogram jointly developed by the University of Pittsbugh and Carnegie Mellon \nUniversity.  Students and professionals in the engineering and scientific \ncommunitites are encouraged to apply for classes commencing in June 1993 and \nJanuary 1994.\n\n\nPROGRAM OBJECTIVES\nThe program intends to promote technology transfer between Japan and the \nUnited States.  It is also designed to let scientists, engineers, and managers\nexperience how the Japanese proceed with technological development.  This is \nfacilitated by extended internships in Japanese research facilities and\nlaboratories that provide participants with the opportunity to develop\nlong-term professional relationships with their Japanese counterparts.\n\n\nPROGRAM DESIGN\nTo fulfill the objectives of the program, participants will be required to \ndevelop advanced language capability and a deep understanding of Japan and\nits culture.  Correspondingly, JSTMP consists of three major components:\n\n1. TRAINING IN THE JAPANESE LANGUAGE\nSeveral Japanese language courses will be offered, including intensive courses\ndesigned to expedite language preparation for scientists and engineers in a\nrelatively short time.\n\n2. EDUCATION IN JAPANESE BUSINESS AND SOCIAL CULTURE\nA particular enphasis is placed on attaining a deep understanding of the\ncultural and educational basis of Japanese management approaches in \nmanufacturing and information technology.  Courses will be available in a \nvariety of departments throughout both universities including Anthropology,\nSociology, History, and Political Science.  Moreover, seminars and colloquiums\nwill be conducted.  Further, a field trip to Japanese manufacturing or \nresearch facilities in the United States will be scheduled.\n\n\n3. AN INTERNSHIP OR A STUDY MISSION IN JAPAN\nUpon completion of their language and cultural training at PITT and CMU, \nparticipants will have the opportunity to go to Japan and observe,\nand participate in the management of technology.  Internships in Japan\nwill generally run for one year; however, shorter ones are possible.\n\n\nFELLOWSHIPS COVERING TUITION FOR LANGUAGE AND CULTURE COURSES, AS WELL AS\nSTIPENDS FOR LIVING EXPENSES ARE AVAILABLE.\n\n        FOR MORE INFORMATION AND APPLICATION MATERIALS CONTACT\n\nSTEVEN BRENER\t\t\t\tSUSIE BROWN\nJSTMP\t\t\t\t\tCarnegie Mellon University, GSIA\nUniversity of Pittsburgh\t\tPittsburgh, PA 15213-3890\n4E25 Forbes Quadrangle\t\t\tTelephone: (412) 268-7806\nPittsburgh, PA 15260\t\t\tFAX:\t   (412) 268-8163\nTelephone: (412) 648-7414\t\t\nFAX:       (412) 648-2199\t\t\n\n############################################################################\n############################################################################ \n\n\nInterested individuals, companies and institutions should respond by phone or\nmail.  Please do not inquire via e-mail.\nPlease note that this is directed at grads and professionals, however, advanced\nundergrads will be considered.  Further, funding is resticted to US citizens\nand permanent residents of the US.\n\nSteve Brener\n\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4699, "properties": {"category": "comp.graphics", "text": "From: clldomps@cs.ruu.nl (Louis van Dompselaar)\nSubject: Re: images of earth\nOrganization: Utrecht University, Dept. of Computer Science\nLines: 16\n\nIn <1993Apr19.193758.12091@unocal.com> stgprao@st.unocal.COM (Richard Ottolini) writes:\n\n>Beware.  There is only one such *copyrighted* image and the company\n>that generated is known to protect that copyright.  That image took\n>hundreds of man-hours to build from the source satellite images,\n>so it is unlikely that competing images will appear soon.\n\nSo they should sue the newspaper I got it from for printing it.\nThe article didn't say anything about copyrights.\n\nLouis\n\n-- \nI'm hanging on your words, Living on your breath, Feeling with your skin,\nWill I always be here?  -- In Your Room [ DM ]\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4700, "properties": {"category": "comp.windows.x", "text": "From: mwchiu@tigr.org (Man-Wai Chiu)\nSubject: Xm1.2.1 and OW server\nOrganization: UTexas Mail-to-News Gateway\nLines: 43\nDistribution: inet\nNNTP-Posting-Host: cs.utexas.edu\n\n\nWe have a program written with X11R5 and Motif 1.2.1.  It runs fine on the Sun\nX11R5 server and MacX.  When that program is run under the Sparc 2 and the\nOW server, the program crashed itself along with the server.  It crashed before\nthe first window had showed up.\n\nI got the following error from X.\nXIO:  fatal IO error 32 (Broken pipe) on X server \"perot:0.0\"\n      after 62 requests (59 known processed) with 0 events remaining.\n      The connection was probably broken by a server shutdown or KillClient.\n\nI have run the program with xmon and below is the last twenty lines or so from\nxmon before both the program and server crashed.\n\n           ............REQUEST: GetProperty\n                        delete: False\n                        window: WIN 00900001\n                      property: ATM 00000074\n                          type: ATM 00000074\n                   long-offset: 00000000\n                                        ..............REPLY: GetProperty\n                                                     format: 00\n                                                       type: <NONE>\n                                                bytes-after: 00000000\n           ............REQUEST: GetInputFocus\n                                        ..............REPLY: GetInputFocus\n                                                  revert-to: Parent\n                                                      focus: WIN 0040000d\n           ............REQUEST: ChangeProperty\n                          mode: Replace\n                        window: WIN 00900001\n                      property: ATM 00000074\n                          type: ATM 00000074\n                        format: 08\n                          data: 42 00 00 01 00 00 00 10 00 00 00 75 00 00 00 00 \n           ............REQUEST: GetInputFocus\n\nPlease email to me if you have any idea of the above problem.\nThanks in advance.\n\n--\nMW Chiu\nmwchiu@tigr.org\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4701, "properties": {"category": "sci.crypt", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.02\nLines: 9\n\nbena@dec05.cs.monash.edu.au (Ben Aveling) writes:\n> Don't forget, you are in the country that wouldn't let the Russians\n> buy Apple II's because of security concerns.\n\nThat's nothing.  They wouldn't let the British buy Inmos Transputer systems\nbecause of security concerns.  And we designed the damn things!\n\n\nmathew\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4702, "properties": {"category": "rec.sport.hockey", "text": "From: lee139@gaul.csd.uwo.ca (Steve Lee)\nSubject: STOP MAYNARD BASHING!!!! (was Re: Roger Maynard)\nOrganization: Computer Science Dept., Univ. of Western Ontario, London, Canada\nDistribution: world \nSummary: stop this nonsense!\nKeywords: not fair, inconsiderate post\nNntp-Posting-Host: asterix.gaul.csd.uwo.ca\nLines: 24\n\nIn article <1993Apr16.213024.8698@sol.UVic.CA> gballent@hudson.UVic.CA writes:\n>Does anyone recieve annoying email from Roger Maynard whenever they post an\n>article telling them to leave him alon and stop posting to the group??\n>These emails are filled with insults- more than are usual in Roger's posts\n>and have little if any hockey info.\n>I have recieved two in the last 2 days.\n>I am just wondering if I am special or Roger trys to bully everyone who\n>disagrees with him.\n>\n>Gregmeister\n>\n\nYou can't be serious!  I and many of my colleagues have not received any\nbad e-mails from Roger, in fact, Roger happens to have answered most if not\nall of my hockey questions and curiosities, so before you start flaming\nat me or Roger, better re-consider your nasty attitude towards Roger and the\nlike!\n\n\n-------------------------------------------------------------------------------\nSteve Lee      *      University of Western Ontario      *      London, Canada \n                      lee139@obelix.gaul.csd.uwo.ca          \n_______________________________________________________________________________\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4703, "properties": {"category": "sci.crypt", "text": "From: kadie@cs.uiuc.edu (Carl M Kadie)\nSubject: Re: Fifth Amendment and Passwords\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 42\n\nashall@magnus.acs.ohio-state.edu (Andrew S Hall) writes:\n\n>I am postive someone will correct me if I am wrong, but doesn't the Fifth\n>also cover not being forced to do actions that are self-incriminating?\n[...]\n\n[From Mike Godwin <mnemonic@eff.org>, posted with permission - Carl]\n\nSadly, it does not. Suspects can be compelled to give handwriting and\nvoice exemplars, and to take blood and DNA tests.\n\n> e.g. The police couldn't demand that you silently take them to where the\n> body is buried or where the money is hidden.\n\nNo, but they could compell you to produce the key to a safe where, as it\nhappens, evidence that will convict you is stored. \n\nThe crypto-key disclosure issue hasn't come up yet, but current law\nsuggests that it's a loser for the defendant--he'll be compelled to turn\nover the key.\n\nThe test for compelled self-incrimination is whether the material to \nbe disclosed *in itself* tends to inculpate the discloser. In the example\nI gave above, the safe key itself has no testimonial value--ergo, it can\nbe disclosed under compulsion (e.g., subpoena duces tecum).\n\nMoreover, the government can always immunize the disclosure of a crypto\nkey--compelling you to disclose the key at the price of not using the fact\nof your disclosure as evidence in the case against you. Of course, they\ncan use whatever they discover as a result of this disclosure against\nyou.\n\n\n--Mike\n\n\n\n\n\n-- \nCarl Kadie -- I do not represent any organization; this is just me.\n = kadie@cs.uiuc.edu =\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4704, "properties": {"category": "misc.forsale", "text": "From: Arthur_Noguerola@vos.stratus.com\nSubject: FOR SALE: Old JAZZ magazines\nOrganization: Stratus Computer Inc, Marlboro MA\nLines: 40\nNNTP-Posting-Host: m21.eng.stratus.com\n\n\n          The  following  jazz  magazines  will  go for the best \n          OFFER  received.  Shipping  not  included,  these  are \n          pretty  heavy.  Of course if you are local (Mass, USA) \n          you can come get 'em  in  person.  All  are  in  GREAT \n          condition!!  These  will  go  as  one lot.  I will not \n          break them up. \n\n               Metronome   -  Sep  1947, Feb  1948, June 1948, \n                              Nov  1950, Dec  1950, June 1952 \n                              Nov  1953 \n\n               Downbeat    -  Jan 15,1947 (was newspaper sized..folded) \n                              Jan 18,1962, Feb 15,1962, Dec 19,1963, \n                              Mar 12,1964, Apr  9,1964, May  7,1964, \n                              May 21,1964, Jun  4,1964, Jul 16,1964, \n                              Sep 10,1964, Dec 17,1964, Dec 31,1964, \n                              Aug 26,1965, Oct  7,1965, Oct 21,1965, \n                              Dec 16,1965, Dec 30,1965, Jan 13,1966, \n                              Apr 21,1966, Jul 28,1966, Sep  8,1966, \n                              Dec 29,1966, Feb  9,1967, Feb 23,1967, \n                              Jun 15,1967, Nov 15,1967, Apr  4,1968, \n                              Aug  8,1968, Sep  5,1968, Oct  3,1968, \n                              Oct 31,1968, Feb  6,1969, Mar  6,1969, \n                              May 15,1969, Jun 12,1969, Jul 10,1969, \n                              Jul 24,1969, Aug 21,1969, Sep  4,1969, \n                              Dec  2,1969, May 14,1970, May 28,1970, \n                              Jun 11,1970, Jun 25,1970, Jul  9,1970, \n                              Aug 19,1971, Mar 15,1973, Mar 29,1973, \n                              May 10,1973, May 24,1973, Nov 1985 \n\n               Also  I  will  toss in (free): \n\n                          Jazz Journal (Feb 1979,Apr 1979) and \n                          CODA Magazine (Jun 1985, Dec 1985) \n\n\n                      arthur_noguerola@vos.stratus.com \n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4705, "properties": {"category": "talk.religion.misc", "text": "From: hedrick@athos.rutgers.edu (Charles Hedrick)\nSubject: Re: Clarification of personal position (Jesus and the Law)\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 98\n\nsandvik@newton.apple.com (Kent Sandvik) writes:\n\n>My online Bible is on a CD, but I don't own a CD-ROM system for the\n>time being, so I can't search for the famous cite where Jesus explicitly\n>states that he didn't want to break existing (Jewish) laws. In other\n>words technically speaking Christians should use Saturday and not Sunday\n>as their holy day, if they want to conform to the teachings of Jesus.\n\nI think the passage you're looking for is the following.\n\nMatthew 5:17    \"Think not that I have come to abolish the law and the \nprophets; I have come not to abolish them but to fulfil them. \nMatthew 5:18   For truly, I say to you, till heaven and earth pass away, \nnot an iota, not a dot, will pass from the law until all is accomplished. \nMatthew 5:19   Whoever then relaxes one of the least of these commandments \nand teaches men so, shall be called least in the kingdom of heaven; but he \nwho does them and teaches them shall be called great in the kingdom of \nheaven. \nMatthew 5:20   For I tell you, unless your righteousness exceeds that of \nthe scribes and Pharisees, you will never enter the kingdom of heaven. \n\nThere are several problems with this.  The most serious is that the\nLaw was regarded by Jews at the time (and now) as binding on Jews, but\nnot on Gentiles.  There are rules that were binding on all human\nbeings (the so-called Noachic laws), but they are quite minimal.  The\nissue that the Church had to face after Jesus' death was what to do\nabout Gentiles who wanted to follow Christ.  The decision not to\nimpose the Law on them didn't say that the Law was abolished.  It\nsimply acknowledged that fact that it didn't apply to Gentiles.  This\nis a simple answer, which I think just about everyone can agree to.\n(A discussion of the issue in more or less these terms is recorded\nin Acts 15.)\n\nHowever there's more involved.  In order to get a full picture of the\nrole of the Law, we have to come to grips with Paul's apparent\nrejection of the Law, and how that relates to Jesus' commendation of\nthe Law.  At least as I read Paul, he says that the Law serves a\npurpose that has been in a certain sense superceded.  Again, this\nissue isn't one of the abolition of the Law.  In the middle of his\ndiscussion, Paul notes that he might be understood this way, and\nassures us that that's not what he intends to say.  Rather, he sees\nthe Law as primarily being present to convict people of their\nsinfulness.  But ultimately it's an impossible standard, and one that\nhas been superceded by Christ.  Paul's comments are not the world's\nclearest here, and not everyone agrees with my reading.  But the\ninteresting thing to notice is that even this radical position does\nnot entail an abolition of the Law.  It still remains as an\nuncompromising standard, from which not an iota or dot may be removed.\nFor its purpose of convicting of sin, it's important that it not be\nrelaxed.  However for Christians, it's not the end -- ultimately we\nlive in faith, not Law.\n\nWhile the theoretical categories they use are rather different, in the\nend I think Jesus and Paul come to a rather similar conclusion.  The\nquoted passage from Mat 5 should be taken in the context of the rest\nof the Sermon on the Mount, where Jesus shows us how he interprets the\nLaw.  The \"not an iota or dot\" would suggest a rather literal reading,\nbut in fact that's not Jesus' approach.  Jesus' interpretations\nemphasize the intent of the Law, and stay away from the ceremonial\ndetails.  Indeed he is well known for taking a rather free attitude\ntowards the Sabbath and kosher laws.  Some scholars claim that Mat\n5:17-20 needs to be taken in the context of 1st Cent. Jewish\ndiscussions.  Jesus accuses his opponents of caring about giving a\ntenth of even the most minor herbs, but neglecting the things that\nreally matter: justice, mercy and faith, and caring about how cups and\nplates are cleaned, but not about the fact that inside the people who\nuse them are full of extortion and rapacity.  (Mat 23:23-25) This, and\nthe discussion later in Mat 5, suggest that Jesus has a very specific\nview of the Law in mind, and that when he talks about maintaining the\nLaw in its full strength, he is thinking of these aspects of it.\nPaul's conclusion is similar.  While he talks about the Law being\nsuperceded, all of the specific examples he gives involve the\n\"ceremonial law\", such as circumcision and the Sabbath.  He is quite\nconcerned about maintaining moral standards.\n\nThe net result of this is that when Paul talks about the Law being\nsuperceded, and Jesus talks about the Law being maintained, I believe\nthey are talking about different aspects of the Law.  Paul is\nembroiled in arguments about circumcision.  As is natural in letters\nresponding to specific situations, he's looking at the aspect of the\nLaw that is currently causing trouble: the Law as specifically Jewish\nceremonies.  He certainly does not intend to abolish divine standards\nof conduct.  On the other hand, when Jesus commends the Law, he seems\nto be talking the Law in its broadest implications for morals and\nhuman relationships, and deemphasizing those aspects that were later\nto give Paul so much trouble.\n\nIt's unfortunate that people use the same terms in different ways, but\nwe should be familiar with that from current conflicts.  Look at the\nway terms like \"family values\" take on special meaning from the\ncurrent context.  Imagine some poor historian of the future trying to\nfigure out why \"family values\" should be used as a code word for\nopposition to homosexuality in one specific period in the U.S.  I\nthink Law had taken on a similar role in the arguments Paul was\ninvolved in.  Paul was clearly not rejecting all of the Jewish values\nthat go along with the term \"Law\", any more than people who concerned\nabout the \"family values\" movement are really opposed to family\nvalues.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4706, "properties": {"category": "soc.religion.christian", "text": "From: hall@vice (Hal F Lillywhite;627-3877;59-360;LP=A;YApG)\nSubject: Re: Help\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 73\n\nIn article <Apr.21.03.26.51.1993.1379@geneva.rutgers.edu> lmvec@westminster.ac.uk (William Hargreaves) writes:\n\n>\t   I'm a commited Christian that is battling with a problem.  I know\n>that romans talks about how we are saved by our faith not our deeds, yet\n>hebrews and james say that faith without deeds is useless, saying' You fools,\n>do you still think that just believing is enough?'\n\nActually I don't think there is any conflict if we really understand\nwhat these passages say.  First, what is faith?  If you study the \nmeaning of the Greek and Hebrew words so translated I think you will\ncome to the conclusion that the word means a *lot* more than mere \nbelief.  Faith means both trust and action.  If you do not put your \nbelief into action it simply cannot qualify as faith.  I think this \nis what James means when he says that \"faith without works is dead\" \nand, \"I will show you my faith by my works.\"  Remember James was \nwriting to \"the twelve tribes which are scattered abroad.\"  This \nprobably means he was writing to those who would hear the gospel much \nlater and wouldn't understand the meaning of the original Greek.\n(Indeed I suspect James was writing to us, today, among others he\nintended to reach.)  Paul, on the other hand wrote mostly to the\npeople of the Roman empire who generally understood the meaning of\nthe Greek.\n\nAnother key to why there is no conflict is to look at Paul's\nstatements in their context.  I think you will find that when Paul\ncontrasts faith and works it is in the context of comparing the\ngospel with the Law, meaning the Law of Moses.  This was the great\nburden of Paul's life.  As the apostle to the Gentiles he would go\nconvert a bunch of people, then the \"Judizers\" would come along and\ntry to convince them that they also had to obey the Law of Moses (cf\nActs chapter 15).  In this context Paul condemns the idea of being\nsaved by the works of the Law, saying that we are saved by the blood\nof Jesus and our faith in him.  I believe that a better translation\nfor today would be that we are saved by *faithfulness*.  I think\n\"faithfulness\" today has a meaning closer to what the original\nwriters intended.\n\n>Now if someone is fully believing but there life is totally lead by themselves\n>and not by God, according to Romans that person is still saved by there faith.\n\nI think you misunderstand Romans.  What Paul is really saying is\nthat God prefers a faithful Gentile who does not \"keep kosher\" to a\nkosher Jew who fails to stay faithful in the more important matters\nof following the Lord and having charity toward his fellows.\n\n>But then there is the bit which says that God preferes someone who is cold to\n>him (i.e. doesn't know him - condemned) so a lukewarm Christian someone who\n>knows and believes in God but doesn't make any attempt to live by the bible.\n\nIn the sense of faith described above, you cannot have real faith and \nbe lukewarm.  If you know God but are lukewarm (unfaithful), you are \nworse off than the person who never heard of Him.  Remember, Jesus in\nthe parable of the pearl of great price (Mat 13:45-46) and again in\nthe one on the treasure hidden in the field (Mat 13:44) indicates that\nthe price of the Kingdom of God is *all* we have.\n\n[I agree with you in general, including the fact that \"pistis\" has\nsome of the force of \"faithful\".  However if you take that too far,\nyou can end up with something that Paul definitely would not have\nintended.  Being faithful means following God in all things.  To say\nthat we are saved by being faithful is very close to saying that we\nare saved by commiting no sins.  I assume that's not what you meant.\n\nI have almost given up on finding a specific verbal formula that\ncompletely captures this.  However I think Paul is describing what I'd\ncall a basic orientation, including aspects such as trust and\ncommitment.  Jesus speaks of it as rebirth, which implies a basic\nchange.  We may still do things that are sinful, and may fail to show\nthe new life in Christ in many situations where we should.  But in any\nChristian there had better be the basic change in orientation that\nJesus calls being born again.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4707, "properties": {"category": "comp.graphics", "text": "From: stgprao@st.unocal.COM (Richard Ottolini)\nSubject: Re: images of earth\nOrganization: Unocal Corporation\nLines: 39\n\nIn article <1993Apr20.143434.5069@cs.ruu.nl> clldomps@cs.ruu.nl (Louis van Dompselaar) writes:\n>In <1993Apr19.193758.12091@unocal.com> stgprao@st.unocal.COM (Richard Ottolini) writes:\n>\n>>Beware.  There is only one such *copyrighted* image and the company\n>>that generated is known to protect that copyright.  That image took\n>>hundreds of man-hours to build from the source satellite images,\n>>so it is unlikely that competing images will appear soon.\n>\n>So they should sue the newspaper I got it from for printing it.\n>The article didn't say anything about copyrights.\n\n(1) No explicit (c) is necessary.  If it the image is attributed to the\nGeosphere Company, then there is a likelihood permission is has been\ngiven to reprint.\n\n(2) Unlikely that the owner can or will go after individuals.\nHowever, \"interesting\" images do make their way into ads and\ncomputer demos. That is when a pirate might get some flak.\nThis image is considered so \"interesting\" that many people would\nlike to use it whenever some global map is needed, so there\nis lots of temptation.\n\n(3) One mail person said since the source data- satellite imagery-\nis not copyrighted, then the derived image can't be.  Not true.\nA new, distinctive, creative expression of the data can be protected.\nThis image is certainly fits such, since NO ONE ELSE has taken the\ntremendous effort to re-create it themselves.  Precedent is a recent\ntelephone book court case.  Ma Bell tried to copyright the data in\ntheir books and prevent competitors from copying it (there are\ntrick entries in the book).  But the court only permitted copyright\nof the expression of the data, and not the data themselves. (You cant\nxerox and sell the telephone book.)\n\n(4) There will be more attention to digital copyrights in the future\nand computer becomes a mass product and moguls such as Bill Gates\nare currently hoarding the digital copyrights.\n\n(5) I'd prefer that Geosphere put this data in the public domain because\nit is very interesting to me and others, but that's the way things are.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4708, "properties": {"category": "sci.electronics", "text": "From: jhawk@panix.com (John Hawkinson)\nSubject: Building a UV flashlight\nOrganization: PANIX Public Access Unix, NYC\nLines: 23\n\nYes, I know it sounds crazy. Call it an urge. Call it what you want.\nJust don't ask why :-)\n\nAnyway, I'd like to build a UV flashlight, cheaply. \"flashlight\" means\nit should be reasonably portable, but could have a power pack if\nnecessary.\n\nMy main question is the bulb: where can I get UV bulbs? Do they\nneed a lot of power? etc., etc.\n\nI'm not too concerned with whether it's long-wave or short-wave\n(but hey, if anyone has a cheap source of bulbs, I'll take both).\n\nOne other thing: a friend of mine mentioned something about near-UV\nlight being cheaper to get at than actual UV light. Does anyone\nknow what he was referring to?\n\nThanks much.\n\n\n--\nJohn Hawkinson\njhawk@panix.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4709, "properties": {"category": "sci.space", "text": "From: mancus@sweetpea.jsc.nasa.gov (Keith Mancus)\nSubject: Re: Lindbergh and the moon (was:Why not give $1G)\nOrganization: MDSSC\nLines: 32\n\nIn article <1r3nuvINNjep@lynx.unm.edu>, cook@varmit.mdc.com (Layne Cook) writes:\n> All of this talk about a COMMERCIAL space race (i.e. $1G to the first 1-year \n> moon base) is intriguing. Similar prizes have influenced aerospace \n> development before. The $25k Orteig prize helped Lindbergh sell his Spirit of \n> Saint Louis venture to his financial backers.\n> But I strongly suspect that his Saint Louis backers had the foresight to \n> realize that much more was at stake than $25,000.\n> Could it work with the moon? Who are the far-sighted financial backers of \n> today?\n\n  The commercial uses of a transportation system between already-settled-\nand-civilized areas are obvious.  Spaceflight is NOT in this position.\nThe correct analogy is not with aviation of the '30's, but the long\ntransocean voyages of the Age of Discovery.  It didn't require gov't to\nfund these as long as something was known about the potential for profit\nat the destination.  In practice, some were gov't funded, some were private.\nBut there was no way that any wise investor would spend a large amount\nof money on a very risky investment with no idea of the possible payoff.\n  I am sure that a thriving spaceflight industry will eventually develop,\nand large numbers of people will live and work off-Earth.  But if you ask\nme for specific justifications other than the increased resource base, I\ncan't give them.  We just don't know enough.  The launch rate demanded by\nexisting space industries is just too low to bring costs down much, and\nwe are very much in the dark about what the revolutionary new space industries\nwill be, when they will practical, how much will have to be invested to\nstart them, etc.\n\n-- \n Keith Mancus    <mancus@butch.jsc.nasa.gov>                           |\n N5WVR           <mancus@sweetpea.jsc.nasa.gov>                        |\n \"Black powder and alcohol, when your states and cities fall,          |\n  when your back's against the wall....\" -Leslie Fish                  |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4710, "properties": {"category": "soc.religion.christian", "text": "From: jwindley@cheap.cs.utah.edu (Jay Windley)\nSubject: Mormon temples\nOrganization: University of Utah CS Dept\nLines: 113\n\nmserv@mozart.cc.iup.edu (Mail Server) writes:\n| One thing I don't understand is why being sacred should make the\n| temple rituals secret.\n\nThe \"so sacred it's secret\" explanation is a bit misleading.  While\nthere is a profound reverence for the temple endowment, there is no\ninjunction against discussing the ceremony itself in public.  But\nsince public discussion is often irreverent, most Mormons would rather\nkeep silent than have a cherished practice maligned.\n\nBut there are certain elements of the ceremony which participants\nexplicitly covenant not to reveal except in conjunction with the\nceremony itself.\n\n| Granted, the Gnostic \"Christians\"\n| had their secret rituals, but these seem to have been taken entirely\n| from pagan pre-Christian mystery religions.\n\nThere are other interpretations to Christian history in this matter.\nOne must recall that most of what we know about the Gnostics was\nwritten by their enemies.  Eusebius claims that Jesus imparted secret\ninformation to Peter, James, and John after His resurrection, and that\nthose apostles transmitted that information to the rest of the Twelve\n(Eusebius, _Historia Ecclesiastica_ II 1:3-4).\n\nIrenaeus claims this information was passed on to the priests and\nbishops (_Against Heresies_ IV 33:8), but Eusebius disagrees.  He\nclaims the secret ceremonies of the Christian church perished with the\napostles.  Interestingly enough, Eusebius refers to the groups which\nwe today call Gnostics as promulgators of a false gnosis (Eusebius,\nop. cit., III, 32:7-8).  His gripe was not that thay professed *a*\ngnosis, but that they had the *wrong* one.\n\nWritings dealing with Jesus' post-resurrection teachings emphasize\nsecrecy -- not so much a concealment as a policy of not teaching\ncertain things indiscriminately.  In one story, Simon Magus opens a\ndialog with Peter on the nature of God.  Peter's response is \"You seem\nto me not to know what a father and a God is: But I could tell you\nboth whence souls are, and when and how they were made; but it is not\npermitted to me now to disclose these things to you\" (_Clementine\nRecognitions_ II, 60).  If any one theme underlies the _Recognitions_\nit is the idea that certain doctrines are not to be idly taught, but\ncan be had after a certain level of spiritual maturity is reached.\n\nNow one can approach this and other such evidence in many ways.  I\ndon't intend that everyone interpret Christian history as I do, but I\nbelieve that evidence exists (favorably interpreted, of course) of\nearly Christian rites analogous to those practiced by Mormons today.\n\n| Neither New Testament\n| Christianity nor Biblical Judaism made a secret of their practices.\n\nBut if Judaism and Christianity had such ceremonies, would you expect\nto read about them in public documents?  One can search the Book of\nMormon and other Mormon scripture and find almost no information on\ntemple worship.  Yes, you could establish that Mormons worship in\ntemples, but you would probably be hard pressed to characterize that\nworship.  On that basis, can we conclude that the Bible explains *all*\npractices which might have taken place, and that absence of such\ndescriptions proves they did not exist?\n\nMormon scholar Dr. Hugh Nibley offers us a list of scriptures from\nwhich I have taken a few:\n\n1. \"It is given unto you to know the mysteries of the kingdom of\nheaven, but to them it is not given\" (Matt. 13:11).\n\n2. \"All men cannot receive this saying, save they to whom it is given\"\n(Matt. 19:11).\n\n3. \"I have yet many things to say unto you, but ye cannot bear them\nnow\" (John 16:12).\n\n4. \"The time cometh, when I shall no more speak unto you in proverbs,\nbut I shall shew you plainly of the Father\" (John 16:25).\n\n5. \"... unspeakable words, which it is not lawful for a man to utter\"\n(1 Cor. 3:1-2).\n\n6. \"Many things ... I would not write with paper and ink; but I ...\ncome unto you and speak face to face\" (2 Jn. 1:12).\n\n(Nibley, _Since Cumorah_, pp. 92-94)\n\nAgain, these can also be interpreted many different ways.  I believe\nthey serve to show that not all doctrines which could have been taught\nwere actually taught openly.\n\n| I have heard that Joseph Smith took the entire\n| practice (i.e. both the ritual and the secrecy surrounding the ritual)\n| from the Freemasons.  Anybody in the know have any authoritative\n| information on whether or not this claim is true?\n\nHistorically, Joseph Smith had been adiministering the temple\nendowment ceremony for nearly a year before joining the Freemasons.\nThere is diary evidence which supports a claim that the rite did not\nchange after Smith became a Mason.  It can be argued that Smith had\nample exposure to Masonic proceedings through the burlesque of his\ntime and through his brother Hyrum (a Mason), though no specific\nconnection has yet been established.\n\nMy conversations with Masons (with respect to temple rite\ntranscriptions which have appeared on the net) have led me to believe\nthat the connection from Masonry to Mormonism is fairly tenuous.  As\nour moderator notes, most of what was similar was removed in the\nrecent revisions to the temple ceremony.  I believe that critics who\ncharge that Mormon rites were lifted from Freemasonry do not have\nadequate knowledge of the rites in question.\n-- \n------------------------------------------------------------------------\n         Jay Windley  *  University of Utah  *  Salt Lake City\n                    jwindley@asylum.cs.utah.edu\n------------------------------------------------------------------------\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4711, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: Bikes vs. Horses (was Re: insect impacts f\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 41\n\nJonathan E. Quist, on the Thu, 15 Apr 1993 14:26:42 GMT wibbled:\n: In article <txd.734810267@Able.MKT.3Com.Com> txd@ESD.3Com.COM (Tom Dietrich) writes:\n: >>In a previous article, egreen@east.sun.com (Ed Green - Pixel Cruncher) says:\n\n: [lots of things, none of which are quoted here]\n\n: >>>In article rgu@usenet.INS.CWRU.Edu, ai598@cleveland.Freenet.Edu (Mike Sturdevant) writes:\n: >>>  You think your *average* dirt biker can jump\n: >>>a 3 foot log? \n: >\n: >How about an 18\" log that is suspended about 18\" off of the ground?\n: >For that matter, how about a 4\" log that is suspended 2.5' off of the\n: >ground?\n\n: Oh, ye of little imagination.\n\n:You don't jump over those -that's where you lay the bike down and slide under!\n: -- \n: Jonathan E. Quist\n\nThe nice thing about horses though, is that if they break down in the middle of\nnowhere, you can eat them.  Fuel's a bit cheaper, too.\n--\n\nNick (the 90 HP Biker)   DoD 1069   Concise Oxford   Giddy-Up!\n\nM'Lud.\n\n  ___\t___   ___   ___\n {\"_\"} {\"_\"} {\"_\"} {\"_\"}\t  Nick Pettefar, Contractor@Large.\n  ' `\t` '   ' `   ` '\t\t  Currently incarcerated at BNR,\n  ___\t___   ___   ___\t\t  Maidenhead, The United Kingdom.\n |\"_\"| |\"_\"| |\"_\"| |\"_\"|\t  npet@bnr.ca  '86 BMW K100RS \"Kay\"\n  ` '\t' `   ` '   ' `\t\t  Pres. PBWASOH(UK),  BS 0002\n\t    .\n   _ _\t\t_  __ .\n  / ~ ~~\\   |  / ~~  \\\n |_______|    [_______|\n\t   _:_\n\t  |___|\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4712, "properties": {"category": "comp.sys.mac.hardware", "text": "From: breedsa@wkuvx1.bitnet\nSubject: Tempest and Cyclone info. NEEDED\nOrganization: Western Kentucky University, Bowling Green, KY\nLines: 8\n\nIf anyone has any information about the upcoming new computers\n(Cyclone and Tempest), I am in need of some info. Anything would be\ngreatly appreciated.\n\nThanks,\n\n-Shawn\nbreedsa@wkuvx1.bitnet\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4713, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: Ancient islamic rituals\nOrganization: Monash University, Melb., Australia.\nLines: 29\n\nIn <ednclark.734054731@kraken> ednclark@kraken.itc.gu.edu.au (Jeffrey Clark) writes:\n\n>cfaehl@vesta.unm.edu (Chris Faehl) writes:\n\n>>Why is it more reasonable than the trend towards obesity and the trend towards\n>>depression? You can't just pick your two favorite trends, notice a correlation \n>>in them, and make a sweeping statement of generality. I mean, you CAN, and \n>>people HAVE, but that does not mean that it is a valid or reasonable thesis. \n>>At best it's a gross oversimplification of the push-pull factors people \n>>experience.  \n\n[...]\n>Basically the social interactions of all the changing factors in our society\n>are far too complicated for us to control. We just have to hold on to the\n>panic handles and hope that we are heading for a soft landing. But one\n>things for sure, depression and the destruction of the nuclear family is not\n>due solely to sex out of marriage.\n\nNote that I _never_ said that depression and the destruction of the\nnuclear family is due _solely_ to extra-marital sex.  I specifically\nsaid that it was \"a prime cause\" of this, not \"the prime cause\" or \"the\nonly cause\" of this -- I recognize that there are probably other factors\ntoo, but I think that extra-marital sex and subsequent destabilization\nof the family is probably a significant factor to the rise in\npsychological problems, including depression, in the West in the 20th\ncentury.\n\n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4714, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: Shane Cheney Wang <sw3n+@andrew.cmu.edu>\nSubject: conner 120mb problem\nOrganization: Freshman, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 14\nNNTP-Posting-Host: po5.andrew.cmu.edu\n\n\nHI,\n    Recently, when I run the Norton Disk surface test, I realize a slow\ndown in harddisk accessing.  At begining of the test, the harddisk will\nbe checked at the speed that usually is.  As the surface test scaned\nhalf way through my harddisk, a tremendous slow down occured.  The\nexpected time for operation will jump from 3 to 6 minutes.  I try to use\nsome of the harddisk tools to check if there is any physical damage to\nmy harddisk and report always turn out to be none.  The surface test\nonly slow down for a certain section of the disk and turn back to the\noriginal speed after it gets over the section.  I am wondering whether\nit is a harddisk problem or some other problems. Anyway help or comment\nwill be appriciate....\n                                                 Shane Cheney Wang\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.227+0000", "event": "documents", "entityId": 4715, "properties": {"category": "rec.sport.baseball", "text": "From: iacs3650@Oswego.EDU (Kevin Mundstock)\nSubject: My Predictions For 1993\nReply-To: iacs3650@oswego.Oswego.EDU (Kevin Mundstock)\nOrganization: Instructional Computing Center, SUNY at Oswego, Oswego, NY\nLines: 62\n\nSince everyone else seems to be running wild with predictions, I've\ndecided to add my own fuel to the fire:\nThey might seem a bit normal, but there are a few (albeit, small) surprises.\n\nAmerican League East\t W\t L\tGB\n1)New York Yankees\t93\t69\t--\n2)Baltimore Orioles\t90\t72\t 3\n3)Toronto Blue Jays\t86\t76\t 7\n4)Cleveland Indians     84      78       9\n5)Boston Red Sox\t77\t85\t16\n6)Milwaukee Brewers\t74\t88\t19\n7)Detroit Tigers\t73\t89\t20\n\nAmerican League West\t W\t L\tGB\n1)Minnesota Twins\t94\t68\t--\n2)Kansas City Royals\t92\t70\t 2\n3)Texas Rangers     \t85\t77\t 9\n4)Chicago White Sox\t77\t85\t17\n5)Oakland Athletics\t74\t88\t20\n6)Seattle Mariners\t70\t92\t24\n7)California Angels\t65\t97\t29\n\nAL MVP-Kirby Puckett\nAL Cy Young-Kevin Appier\nAL Rookie of the Year-Tim Salmon\nAL Manager of the Year-Buck Showalter\nAL Comeback Player of the Year-Ozzie Guillen\n\nNational League East\t W\t L\tGB\n1)St. Louis Cardinals\t91\t71\t--\n2)Philadelphia Phillies 89\t73\t 2\n3)Montreal Expos\t88\t74\t 3\n4)New York Mets\t\t84\t78\t 7\n5)Chicago Cubs\t\t79\t83\t12\n6)Pittsburgh Pirates\t73\t89\t18\n7)Florida Marlins\t54     108\t37\n\nNational League West\t W\t L\tGB\n1)Atlanta Braves\t96\t66\t--\n2)Cincinnati Reds\t94\t68\t 2\n3)Houston Astros\t89\t73\t 7\n4)Los Angeles Dodgers\t82\t80\t14\n5)San Francisco Giants\t81\t81\t15\n6)San Diego Padres\t75\t87\t21\n7)Colorado Rockies\t59     103\t37\n\nNL MVP-Barry Larkin\nNL Cy Young-John Smoltz\nNL Rookie of the Year-Wil Cordero\nNL Manager of the Year-Joe Torre\nNL Comeback Player of the Year-Eric Davis\n\nNL Champions-St. Louis Cardinals\nAL Champions-Minnesota Twins\nWorld Champions-St. Louis Cardinals\n\nThe St. Louis picks are what my heart says.\nWhat my brain says, is they will win the division, lose to the Braves\nin the NLCS, and the Braves will win the Series against Minnesota.\nBut for now, I'll stick with the Cards all the way.\n\nKevin\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4716, "properties": {"category": "talk.politics.mideast", "text": "Subject: Re: If You Feed Armenians Dirt -- You Will Bite Dust!\nFrom: senel@vuse.vanderbilt.edu (Hakan)\nOrganization: Vanderbilt University\nSummary: Armenians correcting the geo-political record.\nNntp-Posting-Host: snarl02\nLines: 18\n\nIn article <1993Apr5.194120.7010@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n\n>In article <1993Apr5.064028.24746@kth.se> hilmi-er@dsv.su.se (Hilmi Eren) \n>writes:\n\n>David Davidian says: Armenians have nothing to lose! They lack food, fuel, and\n>warmth. If you fascists in Turkey want to show your teeth, good for you! Turkey\n>has everything to lose! You can yell and scream like barking dogs along the \n\nDavidian, who are fascists? Armenians in Azerbaijan are killing Azeri \npeople, invading Azeri soil and they are not fascists, because they \nlack food ha? Strange explanation. There is no excuse for this situation.\n\nHerkesi fasist diye damgala sonra, kendileri fasistligin alasini yapinca,\n\"ac kaldilar da, yiyecekleri yok amcasi, bu seferlik affedin\" de. Yurrruuu, \nyuru de plaka numarani alalim......\n\nHakan\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4717, "properties": {"category": "sci.electronics", "text": "From: cjp1@aber.ac.uk (Christopher John Powell)\nSubject: Fujitsu 8\" HDD\nKeywords: M2321K, M2322K, Fujitsu, Microdisk (-:\nOrganization: University of Wales, Aberystwyth\nLines: 23\n\nI have a Fujitsu M2322K which has been removed (I believe) from a digital\nX-Ray machine (takes X-Ray pictures without film).  The Fujitsu part number\nis B03B-4745-B002A.\n\nI have obtained some data on the device, it is 8-inch winchester-type\nof 168 megabyte capacity (though I was told it was over 800 megabytes).\nHowever, there is very little information on the interface standard used.\nIt appears to use two balanced-line connections, but what each connection\ncorresponds to I know not. One connection is a 30-way IDC, the other a\n60-way IDC.\n\nIf anyone has any information on this device, I would be most grateful\nif you could provide it.\n\nThanks.\n\n\nChris Powell.\n-- \n+------------------------------------------------------------------------+\n|  THE MAN FROM :  #####  #######  | JANET    : cjp1@uk.ac.aber          |\n|                 #     #     _#   | Internet : cjp1@aber.ac.uk          |\n|                 #     #  _#      | NYX      : cpowell@nyx.cs.du.edu    |\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4718, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kluskens@radar.nrl.navy.mil (Michael S Kluskens)\nSubject: Re: Quadra SCSI Problems???\nOrganization: Naval Research Laboratory\nLines: 39\n\nIn article <1993Apr19.131311.25871@mintaka.lcs.mit.edu>, nodine@lcs.mit.edu\n(Mark H. Nodine) wrote:\n> \n> In article <C5L39p.2qz@news.udel.edu>, johnston@me.udel.edu (Bill Johnston) writes:\n> |> In article <1993Apr16.144750.1568@mintaka.lcs.mit.edu> nodine@lcs.mit.edu (Mark H. Nodine) writes:\n> |> >I don't know about the specific problem mentioned in your\n> |> >message, but I definitely had SCSI problems between my\n> |> >Q700 and my venerable Jasmine Megadrive 10 cartridge\nstuff deleted\n> |> \n> |> I doubt this is a Quadra-specific problem.  I had to get\n> |> rid of my \"venerable\" Bernoulli 20 last year (with enough \nstuff deleted\n> |> might fix the problem - in my case the cartridges wouldn't \n> |> format/mount/partition for A/UX.  \n> \n> All I know is that the Megadrives worked perfectly on both my\n> Mac Plus and my Powerbook 140.  It was for this reason I assumed\n> the problem had something to do with the Quadra.  Even with the\n> Quadra, they mostly worked OK.  The problem occurred when I ejected\n> a cartridge from a drive: it would start popping up dialog boxes\n> saying \"This cartridge must be formatted with Jasmine Driveware\"\n> even though there was no cartridge in the drive.\n> \n> \t--Mark\n\nThe problem mentioned last is a known Quadra SCSI problem, it was heavily\ndiscussed last year and an Apple employee pointed out that there was a\none byte error in the SCSI driver routine for the Quadra's (at least the\n700\nand 900).  System 7.1 should not have that problem, for most people the \nsolution was to get an updated driver from the drive manufactor.  In my\ncase MASS Microsystems wrote a new driver which fixed the problem on my\nQuadra\n700, all that occured early last year.\n\nMichael S. Kluskens\nkluskens@radar.nrl.navy.mil\nOpinions expressed are the author's and not those of his employer.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4719, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nArticle-I.D.: gap.1ppu9hINNl0v\nDistribution: na\nOrganization: California Institute of Technology, Pasadena\nLines: 57\nNNTP-Posting-Host: sandman.caltech.edu\n\nmanes@magpie.linknet.com (Steve Manes) writes:\n\n>hambidge@bms.com wrote:\n>: In article <C4psoG.C6@magpie.linknet.com>, manes@magpie.linknet.com (Steve Manes) writes:\n\n>: >: Rate := per capita rate.  The UK is more dangerous.\n>: >: Though you may be less likely to be killed by a handgun, the average\n>: >: individual citizen in the UK is twice as likely to be killed\n>: >: by whatever means as the average Swiss.  Would you feel any better\n>: >: about being killed by means other than a handgun? I wouldn't.\n>: \n>: >What an absurd argument.  Switzerland is one-fifth the size of the\n>: >UK with one-eigth as many people therefore at any given point on\n>: >Swiss soil you are more likely to be crow bait.  More importantly,\n>: >you are 4x as likely to be killed by the next stranger approaching\n>: >you on a Swiss street than in the UK.\n\nKilled by handgun, or killed?  If I'm dead, I don't much care if it\nwas by being shot or stabbed to death.\n\n>: You are betraying your lack of understanding about RATE versus TOTAL\n>: NUMBER. Rates are expressed, often, as #/100,000 population.\n>: Therefore, if a place had 10 deaths and a population of 100,000, the\n>: rate would be 10/100,000.  A place that had 50 deaths and a population\n>: of 1,000,000 would hav a rate of 5/100,000.  The former has a higher\n>: rate, the latter a higher total.  You are less likely to die in the\n>: latter.  Simple enuff?\n\n>For chrissakes, take out your calculator and work out the numbers.\n>Here... I've preformatted them for you to make it easier:\n\n>\t\t\thandgun homicides/population\n>\t\t\t----------------------------\n>\tSwitzerland :\t24 /  6,350,000\n>\t         UK :    8 / 55,670,000\n\n>... and then tell me again how Switzerland is safer with a more\n>liberal handgun law than the UK is without...by RATE or TOTAL NUMBER.\n>Your choice.\n>-- \n>Stephen Manes\t\t\t\t\t   manes@magpie.linknet.com\n>Manes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\nI don't think you can get an accurate indicator of how safe England is\ncompared to Switzerland by concentrating only on handgun murders and  \ncompletely ignoring murders by other weapons, not to mention the rate of\nother violent crimes.  If there are more guns in circulation, if follows\nthat more people will be killed with them 'cause they are available to\nthe person intent on committing a crime _regardless_ of whether they\nhave to do it with a gun, knife, or bare hands.  \n\nThe gun control lobby doesn't seem to understand this point.  If people\nare intent on committing a crime, they will do it with whatever means\nare available to them.  \n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4720, "properties": {"category": "comp.windows.x", "text": "From: howardy@freud.nia.nih.gov (Howard Wai-Chun Yeung)\nSubject: need shading program example in X\nOrganization: (Natl. Institutes of Health, Bethesda, MD)\nLines: 7\n\nDo anyone know about any shading program based on Xlib in the public domain?\nI need an example about how to allocate correct colormaps for the program.\n\nAppreciate the help.\n\nHoward.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4721, "properties": {"category": "sci.med", "text": "From: ns14@crux3.cit.cornell.edu (Nathan Otto Siemers)\nSubject: Re: Analgesics with Diuretics\nIn-Reply-To: dyer@spdcc.com's message of Tue, 6 Apr 1993 03:28:57 GMT\nNntp-Posting-Host: crux3.cit.cornell.edu\nOrganization: Department of Chemistry, Cornell Univ.\nLines: 34\n\n>>>>> On Tue, 6 Apr 1993 03:28:57 GMT, dyer@spdcc.com (Steve Dyer) said:\n\n | In article <ofk=lve00WB2AvUktO@andrew.cmu.edu> Lawrence Curcio <lc2b+@andrew.cmu.edu> writes:\n|>I sometimes see OTC preparations for muscle aches/back aches that\n|>combine aspirin with a diuretic.\n\n | You certainly do not see OTC preparations advertised as such.\n | The only such ridiculous concoctions are nostrums for premenstrual\n | syndrome, ostensibly to treat headache and \"bloating\" simultaneously.\n | They're worthless.\n\n|>The idea seems to be to reduce\n|>inflammation by getting rid of fluid. Does this actually work? \n\n | That's not the idea, and no, they don't work.\n\n\tI *believe* there is a known synergism between certain\nanalgesics and caffiene.  For treating pain, not inflammation.\n\n\tNow that I am an ibuprofen convert I haven't taken it for some\ntime, but excedrin really works! (grin)\n\nNathan\n\n\n\n | -- \n | Steve Dyer\n | dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n--\n  ......:bb|`:||,\tnathan@chemres.tn.cornell.edu\n    ...  .||:   `||bbbbb\n   ..   ,:`     .``\"P$$$\n      .||. ,  .  `  .`P$\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4722, "properties": {"category": "comp.graphics", "text": "From: cs89ssg@brunel.ac.uk (Sunil Gupta)\nSubject: Re: RTrace 8.2.0\nOrganization: Brunel University, Uxbridge, UK\nLines: 12\nX-Newsreader: TIN [version 1.1 PL8]\n\nComp. Graphics/CAD (cgcad@bart.inescn.pt) wrote:\n: There is a new version of the RTrace ray-tracing package (8.2.0) at\n: asterix.inescn.pt [192.35.246.17] in directory pub/RTrace.\n: Check the README file.\n\ncant seem to reach the site from over here:\n\n>#ping 192.35.246.17\n>ICMP Net Unreachable from gateway nsn-FIX-pe.sura.net (192.80.214.253)\n>for icmp from ccws-24.brunel.ac.uk (134.83.176.30) to 192.35.246.17\n\nIs it possible for you to upload to a more mainstream ftp place?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4723, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: catone@compstat.wharton.upenn.edu (Tony Catone)\nSubject: Re: 17\" Monitors\nOrganization: University of Pennsylvania\nLines: 12\nNntp-Posting-Host: compstat.wharton.upenn.edu\nIn-reply-to: zrdf01@trc.amoco.com's message of 20 Apr 93 15:56:06 GMT\n\nIn article <C5sHLJ.ErE@trc.amoco.com> zrdf01@trc.amoco.com (Rusty Foreman) writes:\n\n   Has anyone taken a look at the new ViewSonic 17? They claim\n   1280x1024 at 76Hz.  How does it compare with the T560i in terms of\n   price, and quality of display?\n\nI'm interested in the new ViewSonic 17 as well.  Has anyone seen one\nof these monitors in the flesh?\n\n\n- Tony\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4724, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: was:Go Hezbollah!\nOrganization: The Department of Redundancy Department\nLines: 39\n\nIn article <Apr15.175334.72079@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n\n>Most of the \n>people in my village are regular inhabitants that go about their daily\n>business, some work in the fields, some own small shops, others are\n>older men that go to the coffe shop and drink coffee.  Is that so hard to\n>imagine ????\n\n...quickly followed by...\n\n>SOME young men, usually aged between 17 to 30 years are members of\n>the Lebanese resistance.  Even the inhabitants of the village do not \n>know who these are, they are secretive about it, but most people often\n>suspect who they are and what they are up to.  \n\nThis is the standard method for claiming non-combatant status, even\nfor the commanders of combat.\n\n>These young men are\n>supported financially by Iran most of the time.  They sneak arms and\n>ammunitions into the occupied zone where they set up booby traps\n>for Israeli patrols.  Every time an Israeli soldier is killed or injured\n>by these traps, Israel retalliates by indiscriminately bombing villages\n>of their own choosing often killing only innocent civilians.  \n\n\"Innocent civilians\"???  Like the ones who set up the booby traps or\nengaged in shoot-outs with soldiers or attack them with grenades or\naxes? \n\n>We are now accustomed to Israeli tactics, and we figure that this is \n\nAnd the rest of the world is getting used to Arab tactics of claiming\ninnocence for even the most guilty of the vile murderers among them.\nKeep it up long enough and it will backfire but good.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4725, "properties": {"category": "comp.sys.mac.hardware", "text": "From: leapman@austin.ibm.com (Scott Leapman)\nSubject: Re: Half-page hand scanners?\nOriginator: leapman@junior.austin.ibm.com\nReply-To: $LOGIN@austin.ibm.com\nOrganization: IBM Austin\nLines: 8\n\n\nI have a Lightening Scan Pro 256 hand scanner.  It came with scanning/editing\nsoftware, OCR software, and some plug-in modules for Photoshop et al.  The\nscanner was a tad on the pricey side ($480), but the scans are incredibly\naccurate, in 256 level, 300 dpi grayscale.  It also has dithered and line art\nsettings when grayscale isn't desired.  Great scanning software, easy to use.  I\nfrequently write letters to my neices, and spontaneouly include a scanned image\nin the note.  Hope this helps!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4726, "properties": {"category": "sci.electronics", "text": "From: hl00@ns1.cc.lehigh.edu (HOU-SHENG LIN)\nSubject: Laser vs Bubblejet?\nOrganization: Lehigh University\nLines: 12\n\nWell, I'm not too sure if this would be the right place to post this, but\nanyway, here goes:  I was just noticing that some of the current bubblejet\nprinters offers up to 360x360 resolution while a lot of lower end laser\nprinters only offer 300x300.  However, the laser printers still seems to be\nsignificantly pricier than the bubblejets... how is this?  Or am I missing\nsomething about the resolution thing?\n\n-- \n-Sheng\nhl00@pl122.eecs.lehigh.edu\nhl00@m180k.cc.lehigh.edu\nhl00@lehigh.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4727, "properties": {"category": "sci.med", "text": "Subject: Ovarian cancer treatment centers\nFrom: <RBPRMA@rohvm1.rohmhaas.com>\nOrganization: Rohm and Haas Company\nLines: 9\n\nA relative of mine has recently been diagnosed with \"stage 3 papillary cell\novarian cancer\".  We are urgently seeking the best place in the country for\ntreatment for this.\n\nDoes anyone have any suggestions?\n\nAs you might suspect, time is of the essence.\n\nThanks for your help.                                      Bob\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4728, "properties": {"category": "soc.religion.christian", "text": "From: tcsteven@iaserv.b1.ingr.com (Todd Stevens)\nSubject: Rebuilding the Temple (was Re: Anybody out there?)\nOrganization: ingr\nLines: 14\n\nChuck Petch writes:\n\n>Now it appears that nothing stands in the way of rebuilding and resuming\n>sacrifices, as the Scriptures indicate will happen in the last days.\n>Although the Israeli government will give the permission to start, I think\n>it is the hand of God holding the project until He is ready to let it\n>happen. Brothers and sisters, the time is at hand. Our redemption is\n>drawing near. Look up!\n\nHow is a scriptural Levitical priesthood resumed?  Are there any Jews who \ncan legitimately prove their Levite bloodline?\n\nTodd Stevens\ntcsteven@iaserv.b1.ingr.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4729, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nSummary: Feasibility considered\nOrganization: Free the Barbers, Inc.\nLines: 72\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <16APR199317391664@rigel.tamu.edu> gmw0622@rigel.tamu.edu (Mr. Grinch) writes:\n>In article <1993Apr16.124824.29405@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes...\n>\n>> \n>:On a case by case basis, the cost/benefit ratio of government regulation\n>:is obviously worthwhile.  The libertarian agenda, however, does not call\n>:for this assessment.  It assumes that the costs of regulation (of any\n>:kind) always outweigh its benefits.  This approach avoids all sorts of \n>:difficult analysis, but it strikes many of the rest of us as dogmatic, \n>:to say the least.\n>>\n>\n>I assume you mean that analyzing the cost/benefit ratio of government\n>regulation on a case by case basis is worthwhile.  Let me suggest that\n>this is not an option.  Regulators regulate,  it's what they do.\n\nI'm not sure why you don't consider it an option.  No one suggests that\nsuch analysis should be left to \"regulators.\"  In fact, the \"re-inventing\ngovernment\" movement provides just such a cost/benefit approach to the\nanalysis of public spending.  Libertarians would do well to learn more\nabout it. \n\n>\n>\tIt might be possible to pass an amendment which would prevent\n>any liscensing laws from being valid,  assuming you could convince people that\n>it would overall be a good idea.  Eliminating the liscensing laws which\n>serve no good purpose (the vast majority of them) while maintaining the\n>worthwhile ones (assuming there are any) is not  feasible.\n\nSorry, but it strikes me that it is the only \"feasible\" approach.  What is\nnot feasible is a wholesale attack on all government regulation and \nlicensing that treats cutting hair and practicing medicine as equivalent\ntasks.\n\n>\n>:I have no objection to an analysis of medical care, education, \n>:national defense or local police that suggests a \"free market\" can provide\n>:a more effective, efficient means of accomplishing social objectives\n>:than is provided through \"statist\" approaches.   With some notable\n>:exceptions, however, I do not see such nitty-gritty, worthwhile \n>:analysis being carried out by self-professed libertarians.  \n>: \n>:jsh\n>\n>I note that the above examples tend to be among the few government areas \n>likely to win some approval among libertarians anyway.  \n\nActually, the only areas of public spending above that strike me as \ngenerating substantial support among libertarians are police and defense.\n(It is an interesting aside that as committed as libertarians claim to\nbe to a principle of non-coercion, the only areas of public spending\nthat they frequently support involve hiring people with guns....hmmm...)\n\n>The most objectionable government expenditures are entitlements,  which\n>also are the biggest.  Certain individuals will suggest that these should be\n>considered defense on the grounds that they are a sort of Danegeld to\n>would-be revolutionaries,  but I personally don't feel we have much to fear\n>from an alliance of geezers and unwed mothers.  Maybe I've led too\n>sheltered a life.\n\nPerhaps you have.  May I suggest that you consider that revolutionaries\nfrequently generate support by acting as protectors of \"geezers,\" \nmothers and children.  Governments that ignore such people on the grounds\nthat \"we don't have much to fear\" from them do so at their own peril.\n\njsh\n>\n>Mr. Grinch\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4730, "properties": {"category": "rec.motorcycles", "text": "From: rmugele@oracle.com (Robert Mugele)\nSubject: Re: How to act in front of traffic jerks\nOrganization: Oracle Corporation, Belmont, CA\nLines: 21\nIn-Reply-To: nielsmm@imv.aau.dk's message of 15 Apr 93 08:54:34 GMT\nNntp-Posting-Host: oasun1.us.oracle.com\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\n\nIn article <nielsmm-150493114522@nanna.imv.aau.dk> nielsmm@imv.aau.dk (Niels Mikkel Michelsen) writes:\n\n>   The other day, it was raining cats and dogs, therefor I was going only to\n>   the speed limit, on nothing more, on my bike. This guy in his BMW was\n>   driving 1-2 meters behind me for 7-800 meters and at the next red light I\n>   calmly put the bike on its leg, walked back to this car, he rolled down the\n>   window, and I told him he was a total idiot (and the reason why).\n>\n>   Did I do the right thing?\n\nAbsolutely, unless you are in the U.S.  Then the cager will pull a gun\nand blow you away.\n\n==================================================================\n| Bob Mugele  (Jungle Bob)      | Email: rmugele@oracle.com      |\n| Senior Computational Linguist | Phone: 214-401-5875            |\n| Oracle Corp.                  | Moto: '81 GS450ES '87 Concours |\n| Irving, Texas                 | DoD#: 283                      |\n|    If vegetarians eat vegetables, beware of the humanitarians  |\n|          --Dr. Bob                                             |\n==================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4731, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Mac & IBM Info-Version 1.7.7\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 753\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\n{Send follow ups to comp.sys.mac.advocacy. Sorry about the header but the \nPnews here does not let one easily change the headers and I gave up after a \nyear of trying. This sheet is also available by FTP on sumex-aim.stanford.edu \n(36.44.0.6) in the info-mac/report as mac-ibm-compare177.txt.}\nMac & IBM Info-Version 1.7.7\n\nThe reason for this general data sheet is to consolidate and condense the \ninformation out there, so that people in both camps can be clear and accurate \nabout what they are saying about their machines.  Since computer technology \nis always changing there are always going to be points in which the sheet will \nbe lacking or incorrect on information.  So, please just don't say the sheet \nis incomplete or incorrect but also give me clear and concise information to \nmake the needed corrections.  All prices are in US dollars.\nTo keep this data sheet organized please provide, if possible, article \ncitations for the information provided or corrected and keep the opinions to \na minimum.  As this is a general data sheet, keep the info provided simple so \nI can understand what is being talked about and can explain it to others. \nFinally, keep the information relevant to the section corrected {For example, \nOS code in ROM is software contained in hardware, so no more of the 'but it \nis supported in OS disk software' data for the hardware section, please}. \nThank you.\nNote:  for proper reading off line this document should be in 9 point Monaco.\n\nSpecial thanks to ANDREW@aardvark.ucs.uoknor.edu (Chihuahua Charlie), \nandrew@frip.wv.tek.com (Andrew Klossner), bell-peter@YALE.EDU (Peter Bell), \nbcoleman@hayes.com (Bill Coleman), cj00+@andrew.cmu.edu (Carl B Jabido), d88-\njwa@nada.kth.se (Jon Wtte) ephraim@Think.COM (Ephraim Vishniac), \nfj05+@andrew.cmu.edu (Faisal Nameer Jawdat), gsidler@cafe.eecs.nwu.edu \n(Gabriel Sidler), julian@deepthnk.kiwi.gen.nz (Julian Harris), \nErick.Krueger@um.cc.umich.edu, krueger@engin.umich.edu, \nmatt@wardsgi.med.yale.edu (Matt Healy), mark@bilpin.co.uk (Mark Allerton), \njokim@jarthur.claremont.edu (John H. Kim), mem@jhufos.pha.jhu.edu (Mel \nMartinez), nan@matt.ksu.ksu.edu (Nan Zou), pwagner%us.oracle.com, \ns_fuller@iastate.edu, strobl@gmd.de (Wolfgang Strobl), \njkirvin@pafosu1.hq.af.mil, phill@ichips.intel.com, \nshaikha@duvm.ocs.drexel.edu, sxjcb@orca.alaska.edu (Jay C. Beavers), Lewis \nKawecki@novell.com, lamont@catfish16.rtsg.mot.com (Bradley Lamont), \ncerro@mbcl.rutgers.edu (\"Cerro, Joseph A\"), mpark@utmem1.utmem.edu (Mel Park), \nlogullo@applelink.apple.com (Jeff Logullo), zrai02@hou.amoco.com (Robert \nIrlbeck), and mikew@apple.com for providing some of the information that made \nthis list possible.\n Contents\nCPUs\nHardware\n Monitor support\n Expansion\nOperating system\n OS Number Crunching\nNetworking & Printing\n\nThe CPUs\n Note: I am only showing Motorola & Intel CPUs used in Mac and most IBM/PC \nclone machines. For example, since Apple never used the Motorola 68008 and \n68010 in the Mac these chips are not listed. Years only appear with dead CPUs \nand indicate first to last year used as a CPU.\nCache note:  both IBM and Mac use caches external to the CPUs. These external \ncaches increase the speed of the CPU but are not a part of it.  In most of \nthe present Macs there are external caches built-in while with IBM they are \noptional {Though machines are generally sold with them installed}.  Since \nthere are many different external caches {CPU-Mac and IBM; SCSI, video, disk \nand static RAM-Mac}, each having a different effect on CPU performance, and \nthey are machine {32KB static RAM cache in IIci, IIfx, and IIvx}, seller \n{cache card installed in some IIcis} or expansion {IIci cache cards go up to \n128KB} dependent, I have decided to leave them out of the list.\nNote:  ALU is industry's de-facto standard for CPU bit classification.\nIBM     ALU  Registers    External     CPU     Features/\nCPU                     bus  address  cache    Notes\n8088(6) 16      16    8 (16)   20     none     {1981-9} {198?-9}\n80186   16      16      16     20     none     {198?-9?} segmenting\n80286   16      16      16     24     none     80186 + Protected Mode\n80386   32      32      32     32     none     MMU & 32-bit Protected Mode \n486sx   32      32      32     32    one 8K    80486 - FPU\n80486   32      32      32     32    one 8K    80386 & FPU\n486dx2  32      32      32     32    one 8K    doubled internal clock rate*\n486dx3  being demoed. 20/60 MHz, 25/75 MHz, and 33/99 MHz planned.\nPentium 32      32      64     32    16K code, CISC chip with RISC-like  \n   5                                 16K data  features, 2-issue superscalar, \n [P 5]                                         386 Write-Back, 64-bit\n                                               FPU path, pipelining; Speed:\n                                               SPECint92: 64.5; SPECfp92:\n                                               56.9**\n\n386sx: 386 chip with 32-bit internal/16-bit external architecture.\n286 and 386sx chips can address to 16MB maximum RAM.\n386sl: low power(3.3V) 386sx with built-in power management.  Used mainly on \nlaptops.\n386slc: IBM 5V 386sx with a 16k on-chip cache added (John H. Kim).  As far as \nJohn H. Kim knows it is only used on IBM models.\n486slc: Neither of two chips that have this name have a FPU.  Cyrix: basically \n486sx in 386sx socket with 1k cache and improved integer math speed.  IBM: \nequivalent to the 486sx except it has a 16k on-chip cache.\n\n* ex. for 486dx2/50, chip runs 50 MHz rest of machine runs at 25 MHz.\n***(PC Week 04/12/93; PC Mag 4/27/93:138) \"The latest in a line of CISC chips\" \n(PC Mag 4/27/93:110)  Samples released March 22, 1993, but machines will not \nbe announced until at least May 1993 (PC Week 2/08/93).  $1000 a CPU; systems \n$5000 and up (PC Mag 4/27/93:110). \n\nMac     ALU  Registers    External     CPU     Features/\nCPU                     bus  address  cache*   Notes\n68000   16      32      16     24      none    {1984-1993} 16MB limit**\n68020   32      32      32     32    256 code  {1987-1992} parallel processing\n68030   32      32      32     32    two 256   68020 + MMU, 16K burst mode\n68LC040 32      32      32     32     two 4K   68040 - FPU\n68040   32      32      32     32     two 4K   MMU, FPU, pipelining, doubled \n                                               internal clock rate***\n68050\tdevelopment discontinued in favor of 68060\n68060   32      32      32     32     Branch   68040 + a better FPU,  \n                                      target   superscaler pipelining, cache \n                                               line bursts, equivalent \n                                               capabilities & speeds to \n                                               Pentium*#\n\n*includes data and instruction {code} caches.  The 68030, 68LC040, & 68040 \nhave built-in caches for both.\n**68000 Mac designs created a 4MB limit.\n***The 040 has 2 clocks, an internal processor clock [PCLK] that is 2x freq of \nexternal bus clock [BCLK] which is the one used to rate the chips \n(Bradley Lamont; Motorola 68040 data book).  Some compilers produce programs \nsensitive to the PCLK and so they act as if the 68040 was a clock doubler \nchip, but this very compiler and program dependent.  Compliers maybe written \nto allow programs to take consitant advantage of the 68040's PCLK in the \nfuture.  As it is now, studies such as one in a Byte article {which showed \n040/25 ~486/50 and roughly ~486dx2/50} are very dependent on the machine, OS, \nand programs tested and as such are not representative of general performance.\n*#Motorola claims (PC Week 09/07/92; 09/14/92).\n\nAs the PowerPCs are to be in both IBM and Mac machines I have listed them \nseparately to eliminate redundancy.  They are Motorola CPU RISC chips.\n\nPowerPC ALU  Registers    External     CPU     Features/\nCPU                     bus  address  cache    Notes\nMC98601 32      32    32 int   64     32K      Speed:  SPECint92: 50; \n [601]                32 fp         combined   SPECfp92: 80*\n                                      I/D      \nMC98603: low power MC98601 for desktop & portable systems. Out by end of 1993.\n [603]\nMC98604: high performance MC98601 for high end machines. Out by 1st Q 1994.\n [604]\nMC98620 64      64    32 int   64     32K      Out by mid 1994.\n [620]                32 fp         combined    \n                                      I/D      \n\n*(PC Week 04/12/93; PC Mag 4/27/93:138).  Select venders were sent sample \nMC98601 chips by Motorola 2/93 (PC Week 2/08/93), and some NuBus boards \ncontaining early samples of PowerPC 601 have been given to Apple's \"A-list\" \ndevelopers (PC Week 12/7/92; MacWeek 12/14/92).  MC98601/50MHz-$280;\nMC98601/66MHz-$374 (PC Week 4/12/93).  Systems: ~$3500 with ~$2000 versions\nout by mid 1994 (PC Week 4/12/93).\n\nCPUs Comparison List\nAs a general rule of thumb Motorola chips are faster than Intel chips at the \nsame frequency {030/25 ~= 386/33; 040/25 ~= 486dx/50}, but Intel has chips at \nhigher frequencies than Motorola, so this evens out.  The Macintosh Bible 4th \ned. supports the comparisons between Intel and Motorola chips for the 68020 \nand above.\n\n<=80186    ~ 68000 {16-bit vs 16/24/32-bit chip [data path/address \nlines/data & address registers].  The 4MB limit on the 68000 Macs brings it \ndown to the 80186 and lower chips, otherwise it would compare to the 80286.}\n\n286        ~ 68020 {hardware segmenting vs. 68020's 32-bit ALU and these chips \ncome have no usable built-in MMU unlike their successors [80386, 68030].  The \nhardware segmenting's protected mode is used by OS/2 1.0 => and Windows 3.X. \nThe use of the hardware segmenting and their 16-bit nature put the 286 between \nthe 60000 and 68030 in features and the LC's 16-bit data path strenghthens the \n286 ~ 68020 comparison.}\n\n386       ~ 68030 {Two 32-bit chips with MMUs, and protected memory.  A/UX 3.0 \nis at present the only Mac OS to use the 68030's protected memory feature for \napps.  System 7.x uses this feature to protect a RAM disk created by the \nMemory control panel but this is supported only on Powerbooks and Quadras.  \nThe Color Classic and LCII 16-bit hardware data paths makes the 68030s in them \ncomparative to 386sxs.}\n\n486sx   ~ 68LC040 {same as 486 and 68040 without the FPU; used as a low cost \nsolution for people who do not need the FPU.  Only with programs sensitive to  \nPCLK & pipelining does the 68LC040 behave like 486dx2 - FPU or a '486dx2sx'.}\n\n486     ~ 68040 {two 32-bit microprocessors with built-in FPU, MMU, 8K \ninternal cache (which is implemented as two 4K caches in the 68040 and one in \nthe 486).  Only with programs sensitive to PCLK & pipelining does the 68040 \nbehave like a 486dx2.}\n\nPentium   ~ 68060 {Both are planned to be superscalar but both have heat \nproblems.  These chips may flounder against the cheaper (PC Week 3/08/93; \n4/12/93; PC Mag 4/27/93:110), earlier released (PC Week 12/7/92; MacWeek \n12/14/92; PC Week 2/08/93), less leat producing {160 degrees F for Pentium\n(PC Mag 4/27/93:118)}, and partly ported to PowerPC chips.} \n\nPowerPC   = PowerPC {This CPU line is planned to run programs from DOS, \nWindows 3.x, OS/2 and Mac OS on top of PowerOpen-A/UX 4.0 [UNIX] and later \nPink [Taligent OS] by using emulators or, if necessary, the OSes themselves in \na 'shell' a.k. how SoftPC or OS/2 does DOS.}\n\nHardware \n{In an effort to remove the 'reconfiguring the system almost every time you \nadd something' requirement for add-in cards, drivers, video, and operating \nsystems in the IBM world, Intel, Microsoft and 12 other hardware and software \ndevelopers are working out 'plug and play' standards (PC Week 03/08/93).}\nColor Support/Display\n Mac: 30.24 MHz Pixel Clock standard.  All present Macs support the use of \n32-bit color through 32-bit color QuickDraw in ROM.  32-bit color QuickDraw \nallows an almost transparent capability to display and edit X-bit images in Y-\nbit color and retain ALL the colors of Y-bit color [Where X and Y \nindependently are 1, 2, 4, 8, 16, or 32] regardless of monitor resolution {63 \ndpi [12\" color] to 94 dpi [PaletteBook]} or monitor type {including \nautosynchronous VGA, MCGA and SVGA monitors with ranges including 66.7 hz \nvertically and 35 kHz horizontally and only a hardware video adaptor (MacUser \nAug 1992: 158-176).  Older machines that supported color {SE/30, II, IIX, and \nIIcx} had only 8-bit color in ROM and needed a software patch to use 32-bit \ncolor (MacUser Special 1993:28-29).  \nTo keep costs down and speed up most Macs have only 8 or 16 bit display \ncapability built-in, but most of those can be expanded to display 24-bit \ncolor.    Presently QuickDraw is optimized for 72 dpi display; QuickDraw QX \nwill change this.\nIn addition, QuickDraw allows, in Macs with a NuBus slot, more then one \nmonitor to be used in any combination, from two monitors showing the same \nthing to multiple monitors acting as one large large monitor with any degree \nof overlap of the pictures.\nVRAM: Video RAM.  Standard for present non-PowerBook Mac's handling of \n built-in video {from a 32-bit color palette}. VRAM provided runs a 8-bit\n color 640x480 display; expandable to 16-bit color or a 8-bit 832x624 display. \nSound output:  Standard in all Macs since the 128K.  Stereo sound became \n standard with the SE/30.\n\nIBM:  Even though PCs have ROM BIOS definitions of how the operating system \ninteracts with the video hardware (Nan Zou), the use of drivers bypassing \nBIOS, video hareware inconsitancies {see Super VGA below} and nonstanderzation\nof clone BIOS have left resolution of video display hardware, OS and program \ninteraction up to the OS and video hardware in question (Faisal Nameer \nJawdat). In addition, IBM and clone makers never bothered to provide a \nstandard hardware mechanism for software to determine what display mode is \nactually present (Matt Healy) nor a standardized screen-drawing toolbox {like \nMac's QD}. As a result the OS must be very well written to detect some modes, \nespecially with some third party cards or to use them consitantly {At present \nthings are so dependent on the interaction of the program, OS, print driver \nand monitor card that editing 32-bit pictures regardless of color mode, OS, \nand monitor type/card combination as one can do on the Mac is impossible with \nan IBM.  For example, one cannot edit a 32-bit color picture done on a OS/2 \n486 with a SVGA monitor on a 386 with VGA {18-bit color palette} and DOS 5.0 \nand still have ALL the colors one started out with}.\nLater IBM machines will have integrated graphics accelerators, faster \nprocessors, and modular upgradeability and may have built-in sound cards, CD \nROM, and Ethernet (PC Week 12/14/92).  \nMDA: Monocrome Display Adapter\n original character-mapped video mode, no graphics, 80x25 text.\nCGA: Color Graphics Array\n 320x200 4 colors or 640x200 b/w, 16 color palette, bad for the eyes.\nEGA:  Enhanced Graphics Array\n 640x350 16 colors from 64 color palette [and some lower res]; some versions \n could run at 256 colors, bearable on the eyes.\nVGA:  Video Graphics Array*\n 320x200 at 256 colors, 640x480 at 16 colors, and some others, these two are \n the most commonly used.  All modes have a 256K CLUT, from a \n 18 to 24-bit {IBM} or a 32-bit {Mac} color palette.  25.175 MHz Pixel Clock\n (Mel Martinez).  Monitors use analog input, incompatible with TTL signals\n from EGA/CGA etc. \nMCGA:  Multi-Color Graphics Array*\n subset of VGA that provides all the features of MDA & CGA, but lacks some EGA \n and VGA modes, like VGA 640x480x16 (Dictionary of Computer Terms-DCT).  \n Common on the initial PS/1 implementation from IBM and some PS/2 Models.\nSVGA:  Super VGA*\n This is not a standard in the way the others were, but instead was a 'catch \n all' category for a group of video cards.  As such, with each manufacturer \n using their own implementation scheme, SVGA was chaos with people debating\n as to what is SVGA and what is not.  In an effort to make SVGA more of a \n standard VESA was established and is used in the newer units, but things\n are still a mess.  Video is either 512K [~1990] or 1M [today], resolution\n of 800x600 and 1024x768 at 16 and 256 colors are common, newer ones [since \n 1990] have the Sierra HiColor RAMDAC, giving 15-bit 32,768 colors at 800x600, \n some of the very newer ones [~6/92] can do 24 bits per pixel [usually \n at 640x480].  Speedwise, too much variation, some very slow [Western Digital \n Paradise based, for example], some very fast [S3 86C911 based, for example], \n some are so-so [like Tseng ET4000, a very popular chipset].  Some limiting \n factors overcome by 40MHz VL Bus & 386's linear address mapping were: \n 8.33 MHz ISA bus, AT architecture where the CPU looks at the card through a \n 64K \"window\", etc.\nOther non-SVGA standards: \n8514/a:\n IBM's own standard, interlacing graphics accelerator with graphics functions \n like linedraw, polygon fill, etc. in hardware. Some clone implementations \n from ATI are the fastest video available today, though some clone models do \n not have interlacing. \nTMS34010/34020: high end graphics co-processors, usually >$1000, some\n do 24-bit, speeds up vector-oriented graphics like CAD.\nXGA:  eXtended Graphics Array\n newer and faster than 8514/a, only available for MCA bus-based PS/2s, clones \n are coming out soon.  Emulates VGA, EGA, and CGA (DCT).  Max resolution at \n 1024x768x8b, same as 8514/a, also some 16 bpp modes.\nXGA-2\n Accelerates graphics functions up to 20 times faster than standard VGA in\n Windows and OS/2, including line draws, bit and pixel-block transfers, area\n fills, masking and X/Y addressing. Has an intelligent way to detect and co-\n exist with other XGA-2 cards, so multiple desktops like on the Mac may not be \n far away.  Since this is an architecture, its resolution and color depth \n isn't fixed {IBM implements only 16-bit [65,536] color, while other \n companies can have 24-bit color through IBM technical licenses}. Refresh \n rates up to 75 Hz, ensures flicker free, rock solid images to reduce visual \n discomfort, and is VGA compatible. Up to 1280x1024 on OS/2.\n*some monitor types usable by Mac-See Mac section above for specific details.\n\nExpansion\nBoth Mac & IBM\nSCSI: only external device expansion interface common to both Mac and IBM.\n Allows the use of any device: hard drive, printer, scanner, Nubus card \n expansion {Mac Plus only}, some monitors, and CD-ROM.  \n Main problem:  there are a lot of external devices which are internal \n terminated which causes problems for more then two devises off the SCSI port \n {A SCSI chain is supposed to be terminated ONLY at the begining and at the \n end.  Any other set up causes problems for either Mac or IBM}. \nSCSI-1:  7 devices per SCSI controller.  8-bit asynchronous {~1.5MB/s ave}\n and synchronous {5MB/s max} transfers.  Difference is due to SCSI-1 software\n drivers.  \"Fast SCSI-1\" is a misname for 8-bit SCSI-2 in SCSI-1 mode\n {see SCSI-2 for details}.\nSCSI-2: 10 devices per SCSI controller in SCSI-2 mode.  SCSI-2 is fully\n SCSI-1 compliant and 8-bit SCSI-2 tends to be implemented as a very fast\n SCSI-1 since it does not require the different controller interfaces in  \n hardware and software that 16 and 32-bit SCSI-2 do.  Transfer speeds are\n 4-6MB/s with 10MB/s burst {8-bit}, 8-12MB/s with 20MB/s burst {16-bit}, and\n 15-20MB/s with 40MB/s burst {32-bit/wide and fast}.  Since 8-bit SCSI-2 can\n use SCSI-1 software drivers and hardware at 8-bit SCSI-2 speeds and as such\n is limited to 7 devices sometimes it is mistakenly called \"fast SCSI-1\". \n 16-bit fast SCSI-2 requires a SCSI-2 software driver and SCSI-2 electronics\n but can still use the SCSI-1 ports.  Wide 16-bit and 32-bit SCSI-2 require a\n different SCSI port, electronics, and software driver from SCSI-1 {Which\n makes them more expensive than other SCSI interfaces}.\nMac SCSI: asynchronous SCSI-1 built-in standard since the Plus.  Even though \n Apple developed some specifications for SCSI controlers, the OS SCSI Manager\n needs to be rewritten to take full advantage of the features of both SCSI\n interfaces.  As a result present SCSI-2 Macs use 8-bit SCSI-2 as a fast \n asynchronous SCSI-1.  Presently Quadras are the only Macs with a SCSI-2\n controller chip built-in (Digital Review, Oct 21, 1991 v8 n33 p8(1)) \n though they lack some other parts of the hardware, like the wide SCSI-2 port \n interface.  Since other Macs require a NuBus card to use SCSI-2, older NuBus \n Macs had a bottleneck due to the speed of the NuBus and CPU.  Rumor-some\n Cyclone Macs {June} will come with a wide & fast SCSI-2 port standard \n and have a rewritten OS SCSI manager.\nIBM SCSI:  SCSI-1 is not too wide spread yet, generally not bundled with \n systems, except as add-on {EISA and VESA Local Bus adapters avalable}.\n Like the Mac, 8-bit SCSI-2 is used as a very fast SCSI-1 by most controllers\n out there.  Unlike the Mac, IBM has no exact SCSI controller specifications\n which results in added incompatibilities for SCSI.\n\nMac\nMemory expansion: with a few exceptions the Mac has used non-parity 30-pin \n 8-bit SIMM memory expansion since the Plus.  While 32-pin 9-bit parity SIMMs\n could be used in these Macs, only special IIcis could make use of the parity \n feature {By convension both SIMM types are called 32-pin SIMMs}.  The IIfx \n used 64-pin parity SIMMs.  The LC III, C610/650 and Q800 all use a new \n 72-pin SIMM that is accessable by 32-bits at a time and is used in IBMs.\n The Mac does a complete memory check at startup by writing/reading every\n memory location; if something is seriously wrong with a SIMM the Mac will\n not boot and give a sound chord indicating what the problem is.\n Since Macs made before Feb 15, 1993 managed memory baced on data path, SIMMs \n had to be installed in pairs {16-bit} or in sets of 4 {32-bit}.  The Centris \n 650 and Quadra 800 eliminate this with a new memory management setup that \n allows memory to be upgraded one SIMM at a time.  If the SIMMs are the same \n size are used then the memory is 'interleaved' across the two SIMMs resulting \n in a 10-15% performance boost on RAM access (MacWorld Apr 93: 108-109).\nPrinters, ADBs, and modems: built-in interfaces standard.\nMonitor interface and sound input: built-in on most present macs. \nPDS: Available in SE & all present non-Powerbook Macs. 16-bit {SE, \n Portable, LC, LC II, Classic line} and 32-bit.  Operates at CPU's MHz.  \n Maximum through put: data path in bytes*CPU's MHz {Q700/900 & C650: \n 4 * 25Mhz = 100MB/s; Q800 & Q950: 4 * 33Mhz = 132MB/s}. Standardized with\n the LC and 040 bus designs.  With an adapter one NuBus card can be used in \n IIsi and C610.  Problem: some cards have timing dependency which slows \n through put down.\nNuBus Mac II: 32-bit, 10 MHz bus clock, 1-to-1 transaction/bus cycle ratio,\n and contiguous, hand-shake transactions at ~10-20MB/s; theoretical peak:\n 40MB/s.  Built-in on all Modular Macs except the LC series, C610, and \n Performa 400.  The SE/30 could be adapted to use this and there was even a \n Mac Plus SCSI NuBus.  Supports every possible expansion from CPU to Ethernet \n to DMA.\nNuBus 90: NuBus Mac II back compatable. 20MHz bus clock, avg throughput:\n ~30MB/s; burst mode: 80MB/s.  Future card designs will be 7\" instead of the \n old 12\".\nQuickRing:  A peer-to-peer bus used in parallel with NuBus 90.  Apple's \n VLBus - \"Architecture is identical to that of VLBus\" (Byte 10/92:128).\n Burst mode: 350MB/s (Byte 10/92:128). In development.\nCPU expansion: handled either through the PDS or the NuBus.  Unlike PDS,  \n Nubus CPU cards {example-Radius Rocket} allow use of multiple processors at \n the same time.  This is like having two or more Macs in the same box able to \n dual task or joinly process depending on the card or software involved {Each \n NuBus card needs its own memory but most NuBus cards of this type come with \n 8MB RAM SIMMs on the card standard}.\n\nIBM\nMemory expansion:  parity SIMMs, non-parity SIMMs {some newer models do a Mac-\nlike SIMM memory check}, or a dozen or so different types of memory boards.\n\nHD Interfaces {limited to hard drives by design or lack of development}: \nMFM:  Modified Frequency Modulation, RLL:  Run Length Limited\n only used with smaller [\u00b2 60mb] hard drives.\nIDE:  Integrated Device Electronics \n Asynchronous {~5MB/s max} and synchronous {8.3MB/s max} transfer.\n currently the most common standard, and is mainly used for medium sized \n drives. Can have more than one hard drive. \nESDI:  Enhanced Small Device Interface\n ~1.25MB/s throughput. generally considered better interface than SCSI-1 in\n many ways but not common enough for practical consideration.  Outside of\n hard drives, device choices are very limited compared to SCSI-1. \n\nBUS interfaces\n{New 'plug and play' ISA and EISA compatable cards may have problems working \nwith old cards (InfoWorld; PC Week 03/08/93; Vaporware 4/93).}\nISA\n 8 & 16-bit interfaces common. Has 24-bit data path limit {which produces a\n 16MB limit for which there are software workarounds} (PC Mag 4/27/93:105).\n 1.5 MB/s (Byte 3/93:132).  Uses edge-triggered interrupts, can't share them,\n hence comes the IRQ conflict.  Limited busmastering capabilities, some cards\n aren't bandwidth limited {COM  ports, LPT ports, game ports, MIDI card, etc.}\n while others are {video and disk controllers}.  Dominant factor, but it's\n showing its age.  Most ISA motherboard designs are 16-bit\n (PC World Feb 1993: 144-5)}.  \nMCA {Micro Channel}\n IBM's 16 and 32-bit bus; \"allows use of more than one CPU in a computer\" \n (DCT) and anything can talk to anything, as fast as the two components \n involved can handle it. Never took off because it was incompatible with ISA \n and EISA.  Planned to be bus interface of IBM PowerPC 601 (Carl Jabido).\nEISA {NuBus Mac II is closest Mac equivalent}\n 32-bit, 8.33 MHz, burst mode: 33MB/s.  It also has the ability to \n self-configure cards like MCA and allows multiple bus masters, sharable \n interrupt and DMA channels and multiple CPU use.\nVESA Local Bus: VLB {Sometimes mistakenly refereed to as PDS}\n Local Bus standard. Runs at CPU clock rate,  Burst modes: ~130 MB/s{32-bit}\n 250 MB/s{64-bit} (Byte 10/92:128).  Limited to three slots but allows bus \n mastering and will coexist with either ISA or EISA. Consitered ideal for \n video and disk I/O.  DELL has filled a claim that this violates one of\n their patents (Mel Martinez).\nQuickRing: Apple's faster {350 MB/s burst} version of VLB architecture\n (Byte 10/92:132).  Might show up in some IBM and PowerPC machines\n (Byte 10/92:132-133). In development.\nPCI\n Intel's version of Local Bus that is intended to totally replace \n ISA/EISA/MCA.  In development.\n\nOSes {assumes full installation [print drivers, fonts, Multifinder, etc.]\nand multiple application use.}\nMac\n512K to 1MB of OS and hardware commands have been put into ROM.  This allows \nApple to control its machine by putting key hooks for the Mac OS {QuickDraw, \nmenu commands, print, mouse, SCSI & sound drivers, etc} in ROM, which require \nclone makers to use the ROM chip or read ROM on to disks {Which requires \naccess to the proper Mac since different Macs have slightly different ROM \nchips; Plus vs Classic for example.}  With key hooks for the OS support \ninterface in ROM, programers do not have to worry as much whether the disk OS \nhas the necessary hardware commands or that those commands are consitant and \ntherefore can write smaller programs.  This also allows Apple greater control \nover hardware-software standards and that the disk OS can be smaller and, with \nsome of the tookbox command code in ROM, with lower RAM requirements then a \ntotally disk based OS.  Macs use Masked ROM which is as fast as DRAM (Jon \nWtte).\n6.0.7: Single program usage base requirements: 1 MB and DD floppy, \n cooperatively-multitasking base requirements: 2MB and HD floppy.  \n Features a GUI, cooperative-multitasker [MultiFinder], standard program \n interface, & standard stereo sound support [snd]. Network receiving part of \n AppleShare software is bundled with the OS. Has a 8MB RAM barrier and is a \n 24-bit OS. Some third party products allow 14MB of Virtual Memory as long as \n real RAM is below 8MB.\n6.0.8: 6.0.7 with 7.0.0 print drivers.\n6.0.8L:  System 6 for some Macs that require System 7.0.X.\n7.0.X: Base requirements: 2MB, 40MB Hard Drive, and 68000; De-facto standard \n to run all features well: 4MB, 80MB Hard Drive, and 68030 {lowest present \n non-portable Mac configuration}.  Using up to 10.08MB {This is EVERYTHING on\n system disks} of hard disk space this has 6.0.7 features plus program linking \n within and between computers [IAC], built-in server capabilities {Filesharing \n can be used by older OSes using AppleShare Client software and can be \n accessed by 10 macs max; 4-5 is more speed practical, IAC requires 7.X}, \n Virtual Memory in machines with MMU{1.6 times real RAM for least noticeable \n IIsi speed degradation}, drag and drop, QuickTime & built-in TrueType \n support.  Supports sound input [AIFF and snd formats] for most present \n machines.  Can access up to 1GB of true RAM and 4GB of virtual memory and is \n both a 24 and 32-bit OS.  To use real RAM beyond 8MB it must be in 32-bit \n mode and on older machines requires the 'Mode 32' extension.  Apple's last \n 'free' OS.\n7.1.0: 7.0.1 with WorldScript support, speedier, and less RAM usage than \n 7.0.dot (MacWeek 8/24/92; 9/14/92; PC Week 9/7/92). To run in 32-bit mode \n on older machines it requires the 'Mode 32' or '32-Bit Enabler' extension. \n Marks the start of Apple saling its Mac OS instead of allowing free upgrades\n {Bundled with new machines, $49 for 7.0.X upgrades, $99 otherwise}.\n [The installer has a bug that when upgrading it may keep some old system \n fonts from the previous system inside the system file.  This can eat up any \n RAM benefits and cause other problems.  Apple itself recommends removing all \n fonts from the system file.]\nA/UX 3.0 [UNIX]: Needs 8MB RAM {12-20MB suggested}, 160MB hard drive, and \n a 68030 or 68040 equivalent to run.  This 32-bit preemptive multitasking OS \n is large due to being UNIX and needing translators between it and the Mac \n ROMs.  Price: $709.\nNote: sound output was supported in OSes 3.2 to 6.0.5 by many formats \nincluding the following:  snd, WAVE, ASND, FSSD, QSSN, SMSD, SOUN, dc2d, and \nDCFL.  In 6.0.7 the sound manager was optimized for the sound standards 'snd' \nand AIFF which causes some playback problems for the old formats, though most \nstill play.\n\nIBM\n Machiness have little GUI code, data, and hooks present in hardware for \nprogrammers to work with, so most of the coding must be provided in the OS.  \nSince hard disks were slow the disk OS code is read into RAM.  In addition, \nwhat little ROM code there is also read into RAM {a process called Shadow ROM}  \nThis results in faster implementation since RAM is faster then PROMS or \nEPROMS.  Having most of the OS code on disk has the advantage of being able to \nbetter optimize the code given a certain piece or collection of hardware which \nis harder with a ROM based system due to the 'patches' needed.  In addition it \nreduces the need for and size of patches if a major revision of the hardware \nsupport is needed.\nSide note:  The FTC charged that MicroSoft formed a OS trust by not providing \nall feature documentation for its OSes to developers outside MS and designing \nits Windows and DOS apps to fail under OS/2 (\"Undocumented Windows\") and \n\"There is deliberate code in [Windows] NT Beta which causes the install to \nabort if OS/2 Boot Manager is present\" (Gregory Hicks, Info-IBMPC Digest V92 \n#201).  Due to a conflict of intrest by one member the vote of the FTC \njudicial council for action against Microsoft was a tie which resulted in no \naction.  Rumors-the FTC will presue the matter, likely to the point of \nchoosing a new member or whole new council.  In addition the government has \nturned down Microsoft's copyright of \"Windows\" which would allow it to charge \na fee for developers using their hooks (PC Week 03/08/93).\nMicroSoft OSes\nDOS 5.0: Has a 640K barrier with its own memory manager, a 1 MB barrier \n with third party memory managers.  This 16-bit OS requires that each program \n must provide its own print drivers and be 16-bit {Programs need to be DOS \n Protected Mode Interface (DPMI) compliant and running on a 386dx [32-bit \n Protected Mode] to break these barriers}.  Contains the GUI shell present in\n DOS 4.0.\nDOS 6.0: DOS 5.0 with the added features of a built-in file compresion, disk \n defragmenter, debugger for the CONFIG.SYS file. It needs a $80 module for \n networking {Cost: $50 through 5/93, after that $129.99} \n (Byte April 1993:44-46).\nDOS 7.0: 32-bit DOS. In development (PC Week 04/05/93).\nWindow 3.0: Runs on top of DOS.  Breaks 640K and 1M barriers but still has to \n deal with DOS file structure.  Base requirements: 1MB, floppy and 286; to\n run well 2MB, hard drive, 386sx and fast display adapter {> 8-bit}.  Has the\n equivalent of Mac's QD called Windows GDI [Graphics Device Interface].\n This does not have a consistent application interface {Like early Mac\n programs  (1984-1985)} nor a very large program base {compared to DOS} and\n still tends to slow the machine down (Info-IBMPC Digest V92 #186) with speed\n is more dependent on the display adapter then on the CPU (Bill Coleman).\n Window programs tend to be disk and memory hogs compared to their DOS\n counterparts (Byte April 1993:98-108).\nWindow 3.1: A faster version of Window 3.0 with better memory managment. Base \n requirements 1 MB, hard drive and a 286 ;to run well 2MB, hard drive, 386sx. \n Apple plans to release its print drivers for this (PC Week 12/28/92).\nWindows for Workgroups:  To run well: 4MB RAM and 386dx (PC World Feb/93:160).  \n Intermediary between Win 3.1 and Windows NT.  It is basically Windows 3.1 \n with built-in peer to peer networking support.\nWindows NT:  Beta release takes about 50MB of disk space [including the \n swap file], and 12MB RAM {Betas are notorious for RAM usage especially in \n the interaction between debuging code and program compliers, hence the \n reports of 24MB requirements}.  Released version supposed to need 8MB RAM \n but, Gates himself now recommends 16MB RAM (PC Week 04/15/92).\n This 32-bit OS has Protected mode multitasking, multithreading, symmetric \n multiprocessing, a recoverable file system, and 32-bit GDI.  Has built in\n networking that is OSF DCE compliant and can handle up to 4GB of RAM.  Even\n though some people see a July 4 release date (InfoWorld Nov 16/92), rumor\n is that the final version will not be available before Oct 1993\n (InfoWorld May 25/92; July 6/92; Vaporware 07/92; 08/92) or 4th quarter 1993\n (PC Week 09/28/92). Windows upgrades will be $295, otherwise $495\n (PC Week 04/15/92; 03/15/93).\nOther OSes\nPC-DOS 6.0: IBM's version of DOS 6.0.  It runs Windows much faster then DOS \n 6.0 due to faster file I/O and video handling (InfoWorld Feb 1, 93).\nDR DOS 6.0: same as DOS 5.0 with some extras {like built-in data compression} \n and memory management enhancements. Still has 640K/1MB barrier.  A later \n version {Novell DOS} of this may use a version of the Mac finder and Apple \n file management system (PC Week 12/14/92; InfoWorld Dec 14/92).\nOS/2 2.0: Unix like features and unix like requirements; 8-16MB RAM,\n 60MB {uses 17-33MB} hard drive, and 386dx CPU. This 32-bit multithreaded, \n multitasking OS can address up to 4GB of RAM but has to use a fast swap file \n to use more than 16 MB RAM on ISA systems using DMA {Direct Memory Access}. \n IBM plans to use Taligent's OOPS in future versions of this \n (InfoWorld Oct 26/92).\nAIX:  IBM's UNIX system, planned to be a subset of PowerOpen and Taligent OS.\nNeXTStep: GUI UNIX to provide NeXT features on IBM machines.  Beta out, final \n version to be out by May 25, 1993.\nSolaris OS for x86: a SunSoft port.  A 32-bit OS with symmetric \n multiprocessing and multithreading, built-in networking capabilities with \n tools to allow remote configuring and adminstration features, and \n communication package.  Client: $795,  50 users server: $1,995, 1000s users\n server: $5,995.  Developer kits-software: $495, hardware: $195.\nMac 7.1 [working name: Star Trek]:  Apple had System 7.0 running off Intel \n Chips and is looking at making a 7.1 version available for IBM \n (ComputerWorld Nov 2/92; MacWeek 03/22/93). At present this is planned to run \n on top of Novell's DR DOS, require a 486 or equivalent to run and that apps \n will need to be recompiled (MacWeek 03/22/93).  Viewed as Novell's answer to \n Windows NT.  The complexity of PC hardware set ups is one reason for slow \n progress {This seems to Apple/IBM's way of leading to the PowerPC line out in \n late 1993/early 1994 and Pink OS in late 1994-early 1995.}\n\nPowerPC\nRumor-IBM will build its PowerPC 601 by late 1993 (InfoWorld June 8 & 15, 92; \nMacWeek 7/13/92; PC Week 3/15/93).  It will have MicroChannel bus and XGA \nvideo (Carl B Jabido), and will run native version AIX and Mac apps (PC Week \n3/15/93); there have been no comments on compatablity of DOS or Windows apps.\nApple's PowerPC 601 machine {Tesseract} is planned to be out Jan 24, 1994 and \nto have MC98601/50 MHz, 4/8MB RAM, a 2.8-Mbyte floppy drive and expected to \nsale near LC line prices {~$2000, down from projections of ~$3000 (MacUser \n9/92:146)}\n(MacWeek 3/22/93).\nPowerOpen [A/UX 4.0]: A 32-bit preemtive multitasking OS planned to run on\n PowerPCs and 68030/40 Macs (MacWeek 7/13/92).  Intel compatibility uncertain\n (See Mac 7.1 above).  Planned base requirements:  68030, 8MB RAM, 80MB hard\n drive (MacWeek 4/19/93). Rumor-ahead of schedule; COULD be out by mid 1993.\n Rumor-this could be the OS for IBM's PowerPC 601 which is due by late 1993.\nPink [Taligent OS]: Expecting delivery in 1994 (Wall Street Journal 1/12/92) \n and may have some parts shipping in OS/2 and AIX in 1993 and Mac OS and \n PowerOpen with the PowerPCs (MacWeek 01/25/93).\nWindows NT: Possible port (MacWeek 04/05/93).  See IBM OS section for details.\nSolaris OS: Version of this Sun Microsystems Inc UNIX OS to run on the\n Power PCs in 1994 (MacWeek 04/05/93).  One of the few OSes to directly state \n that it will run Windows/DOS programs.  IBM OS section for details\nNeXTStep: possible port see IBM OS section for details.\n\nOS Number Crunching (Mel Park)\nMac\n Arithmetic is done in a consistent numerical environment {SANE or Standard \nApple Numerics Environment}. Floating point numbers are 96 bits long when an \nFPU is present and 80 bits otherwise. Exceptions, such as dividing by zero or \ntaking the square root of a negative number, do not cause an abort but are \nhandled in a logically consistent manner. 1/0 produces the internal \nrepresentation for infinity (INF).  1/(1/0) produces zero. The above treatment \nof 1/(1/0) occurs in an FPU-equipped machine even when SANE is bypassed and \nthe FPU programmed directly.\n\nIBM\n Floating point numbers are 80-bits with a hardware FPU, 64-bits when \nemulated.  The way they are handled is dependent on the coding of whatever \ncompiler or assembler was used for a program. On older DOS complilers \nexceptions could cause program aborts; 1/0 and 1/(1/0) would abort to the DOS \nprompt at the point where they occured.  Most present compilers handle this \nbetter.  Result: there is little consistent handling of numbers between DOS, \nWindows and OS/2 programs nor between programs for just one OS.\n\nNetworking [Includes printing]\nWYSIWYG printing can be a problem with either Mac of IBM machines especially \nif one sends TrueType fonts to a older style PostScript printer.\nMac\nHardware: Built-in LocalTalk network port and a built-in printer port.  \nLocalTalk has moderate speeds (230.4 Kb/s) requires special connectors for \neach machine ($15 and up) and can be run off of either the printer port {to \ninclude very old macs} or the network port {standard today}.  Built-in \nEthernet is becoming common but many older Macs require a PDS or Nubus card at \nabout $150-$300 for each machine.  These cards provide three connectors and \ntransceivers {thick, thin, and 10BaseT} for Ethernet.\nThe Macintosh Quadra family and some Centris models includes Ethernet \ninterface on motherboard, with transceivers available. TokenRing has been a \nnetwork option since 1989.\nSoftware: AppleTalk {the suite of protocols} standard with Mac OS, which can \nuse variety of media types.  AppleShare client software included with the OS \nas well and can connect to file servers such as Novell Netware, 3Com 3+Open, \nBanyan Vines, DEC Pathworks, Apple's AppleShare servers, System 7 File Sharing \nmachines, and AFP servers running on variety of UNIX hosts.  MacTCP allows \ntypical TCP/IP communications (telnet, ftp, NFS, rlogin).  A later version \nwill have Unix X/Open Transport Interface (XTI) built-in by the end of 1993 \n(MacWeek 04/12/93).  Third-party software to connect to NFS servers.  DEC \nPathworks provides DECnet support.  Peer-to-peer file sharing software \nbuilt-in to System 7.1 (See OS section).  Full server software is extra. \nPrinting requires connection of the printer and the printer being selected in \nthe chooser.  Changing printers is by selecting a different name in the \nchooser.  The same is true of connecting to servers.\nPrinting bugs:  Monaco TrueType font is different then the screen bitmap font.\n {QuickDraw QX is suppossed to fix this and similar problems.}\n\nIBM  \nHardware: LocalTalk [not widely used], Ethernet,  and TokenRing.\nSoftware: Novell Netware, Banyan Vines, DECNet, Windows/Work Groups, AppleTalk \nprotocols, and AppleShare {subset of AppleTalk}.\nEach of the MS-DOS networking schemes are, in general, totally incompatible \nwith the others. Once you have chosen one, you are pretty much locked-in to \nthat product line from then on.  Windows/Work Groups is a little more \nforgiving and removes some of this problem.  Novell Netware is the biggest, \n{~80 percent of the corporate market.} and in general is more powerful and \noffers better control/management/security than AppleShare, but it's also more \ncomplex to set up and manage.  This will change due to the use of the Mac \nfinder and file management system by Novell. (PC Week 12/14/92 & 12/28/92;  \nInfoWorld Dec 14/92; MacWeek 3/22/93)\nPrinting {Very OS dependent}\nDOS: If it's a single user, then you plug the printer into the parallel port, \n and don't worry about it {Tweeking may be needed with poorly written \n software}.  Network Printing is not controlled by the system, but is mostly \n implemented by the actual program, therefore performance varies from one \n software program to the next.\nWindows 3.x: supports standard drivers and can do a good job of showing \"jobs\" \n in the print queue, but it always lists printers as \"active\"... even if they \n are not.  This becomes a problem if there are several incompatible printers \n on the same net, because there's no way for software to reliably determine \n which printer is active right now.  Windows for Workgroups is more Mac-like \n and intelligent about this.\nOS/2: Mac-like; the os deals with printers, with apps making calls to the OS.\nPrinting bugs: due to poor programing some programs for all the above OSes do \nnot have WYSIWYG printing.  This is the fault of the programs in question and \nnot that of the OS involved.\n\nPrice issue: This is very dynamic with Mac providing more build-in features \nthan IBM and IBM being more 'get only what you need' then Mac and price wars \nby both worlds.\nThe IBM machines' modualar nature prevents any kind of true hardware \nstandarization, which in turn requires OSes and programs to be very complex to \nhandle ALL the variation in hardware.  When one adds all the standard Mac \nhardware features to an IBM {built-in input/output sound support, SCSI, PDS,  \nbuilt-in monitor support, built-in networking, standard mouse interface, and \nNuBus 90 in higher machines} the Mac tends to be cheaper then an equivalent \nequipted IBM machine {Especially since some IBM monitors can be used with Macs \nwhich cuts some more of the Mac's cost (MacUser Aug 1992:158-176)}.\n Some prices using some of the info in this sheet and MacUser April 1993.\nAll Macs below come with a PDS slot, VRAM, and SCSI-1 built in.  Except where \nnoted, monitor is extra and a built-in monitor interface is provided {no card \nneeded except for 24-bit color display}.\nIBM planned a $1,200 386SLC/25MHz model with a 60MB hard drive and color VGA \nmonitor {~VRAM} (MacWeek 8/17/92) {sounds like a Color Classic without SCSI-1, \nsound support, built-in network support, FPU socket, built-in expansion to \n16-bit color, etc}.\nColor Classic:  $1,389 - 030/16MHz with 16-bit data bus {~386sx/20MHz \nequivalent}, 4/80, FPU socket, and built-in monitor.\nLCIII: $1,499 - 030/25MHz {~386dx/33MHz equivalent}, and 4/160.\nCentris 610: $2,899 - 68LC040/20MHz {Depending on the program ~486sx/40 or \n~'486dx2sx'/20[40]MHz equivalent}, 8/230, built-in ethernet, 300i CD-ROM, a \nPDS/NuBus 90 slot and VRAM for 16-bit color.\nCentris 650: 040/25MHz {Depending on the program ~486dx/50 MHz or 486dx2/50 \nMHz equivalent} with a PDS and 3 NuBus 90 slots. $3,189 {ethernet, 8/80}; \n$3,559 {ethernet, 8/230}; $3,999 {ethernet, 8/230, CD-ROM, VRAM for 16-bit \ncolor}\n\nBibliography notes\n'Vaporware' is available in the digest/vapor directory by FTP on sumex-\naim.stanford.edu [36.44.0.6] and was by Murphy Sewall {last issue: April 93.}\n'Info-IBMPC Digest' back issues are available from wsmr-simtel20.army.mil in \ndirectory PD2:<ARCHIVES.IBMPC>\n'Dictionary of Computer Terms 3rd ed.' (ISBM 0-8120-4824-5)\n\nThese are the facts as they were known to me on 4/15/93 and may be changed by \nnew developments, announcements, or corrections.  Corrections to the \ninformation are welcome.\nPlease email corrections to \nCompuServe ID: 72130,3557\nAOL: BruceG6069\nInternet:  bgrubb@dante.nmsu.edu\n\nFinal note: Since there is NO comp.sys.ibm.pc.advocacy group this has been \nposted to the closest relevent groups {comp.os.ms-windows.advocacy, \ncomp.os.os2.advocacy, and comp.sys.ibm.pc.misc}.  Also since some Mac vs IBM \narticles have been showing up in comp.sys.mac.hardware I have included that \nnewsgroup in the posting. {Don't site the comp.sys.mac.* FAQ as a reason not \nto post to comp.sys.mac.hardware, since the FAQ itself does not follow \ninternet guidelines, especially the de-facto \"[all] the FAQs for a newgroup \nhierarchy should be posted to ALL newsgroups in the hierarchy\" standard.}\n\n\"Eliminate the impossible and what ever remains, no matter how improbable,\nis the truth\" -- Sir Arthur Conan Doyle through Sherlock Holmes in The \nAdventure of the Beryl Coronet, The Adventure of the Blanched Soldier, Sign of \nFour and The Adventure of the Bruce-Partington Plans.\n\n\"The Computer is your friend\"--Parinoia RPG\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4732, "properties": {"category": "talk.politics.mideast", "text": "From: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nSubject: Re: Nazi Eugenic Theories Circulated by CPR => (unconventianal peace)\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nOrganization: Columbia University\nLines: 36\n\nIn article <1993Apr19.223054.10273@cirrus.com> chrism@cirrus.com (Chris Metcalfe) writes:\n>Now we have strong evidence of where the CPR really stands.\n>Unbelievable and disgusting.  It only proves that we must\n>never forget...\n>\n>\n>>A unconventional proposal for peace in the Middle-East.\n>\n>Not so unconventional.  Eugenic solutions to the Jewish Problem\n>have been suggested by Northern Europeans in the past.\n>\n>  Eugenics: a science that deals with the improvement (as by\n>  control of human mating) of hereditory qualities of race\n>  or breed.  -- Webster's Ninth Collegiate Dictionary.\n>\n>>I would be thankful for critical comments to the above proposal as\n>>well for any dissemination of this proposal for meaningful\n>>discussion and enrichment.\n>>\n>>Elias Davidsson Post Box 1760 121 Reykjavik, ICELAND\n>\n>Critical comment: you can take the Nazi flag and Holocaust photos\n>off of your bedroom wall, Elias; you'll never succeed.\n>\n>-- Chris Metcalfe\n\nChris, solid job at discussing the inherent Nazism in Mr. Davidsson's post.\nOddly, he has posted an address for hate mail, which I think we should\nall utilize.  And Elias,\n\nWie nur dem Koph nicht alle Hoffnung schwindet,\nDer immerfort an schalem Zeuge klebt?\n\nPeace,\npete\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.228+0000", "event": "documents", "entityId": 4733, "properties": {"category": "rec.motorcycles", "text": "From: joe@rider.cactus.org (Joe Senner)\nSubject: Re: For JOHS@dhhalden.no (1)\nReply-To: joe@rider.cactus.org\nDistribution: na\nOrganization: NOT\nLines: 20\n\ndavet@interceptor.cds.tek.com (Dave Tharp CDS) writes:\n]In article <1076@rider.UUCP> joe@rider.cactus.org writes:\n]>cookson@mbunix.mitre.org (Cookson) writes:\n][bozo posts GIFS to rec.moto]\n]>he and his postmaster are also gonna get 500 copies of the post in their \n]>mailboxes.\n]\n]   Hey, it's a great picture.  You can't fault his taste, only his\n]technique.  Chill out and educate instead of getting your panties in a\n]bunch.\n\nditto to you Dave. I'm using the picture as the bacground on my sun, and\nI haven't sent a single message to the guy. looks like you get to keep the\npanties.\n\n-- \nJoe Senner -- joe@Rider.Cactus.Org                                 Austin, TX\n\nWARNING: DO NOT LOOK INTO LASER WITH REMAINING EYE.\n                   -- Posted in a radioactive isotope research lab (from r.h.f)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4734, "properties": {"category": "sci.space", "text": "From: wallacen@CS.ColoState.EDU (nathan wallace)\nSubject:  ORION space drive\nReply-To: wallacen@CS.ColoState.EDU\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University -=- Computer Science Dept.\nLines: 16\n\nAn excellent reference for non-technical readers on the ORION system is\n\"The Starflight Handbook\", by Eugene Mallove and Gregory Matloff, ISBN\n0-471-61912-4. The relevant chapter is 4: Nuclear Pulse Propulsion.\n\nThe book also contains lots of technical references for the more academically\ninclined. \n\nEnjoy!\n---\nC/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/\nC/    Nathan F. Wallace                   C/C/           \"Reality Is\"         C/\nC/    e-mail: wallacen@cs.colostate.edu   C/C/    ancient Alphaean proverb    C/\nC/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/\n \n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4735, "properties": {"category": "misc.forsale", "text": "From: fierro@uts.amdahl.com (Doug Fierro)\nSubject: Squaw lift tickets available for $32 each\nDistribution: ba\nOrganization: Amdahl Corporation, Sunnyvale CA\nLines: 14\n\n\n   POSTING FOR A FRIEND- I do not have these tickets.\n\n\tInterested parties can call John at (408) 522-1904 for more\n\tinformation.  There are three lift tickets and they are good\n        for anytime this season at Squaw Valley ski resort.\n\n-- \n                                                     Doug Fierro\n                                      |\\             UTS System Software\n  O                         __________|_\\______      CASE tools development\n  \\_.______________________| * * * * * * * * */      fierro@uts.amdahl.com\n __\\____                   |=================/       (408)746-7102\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4736, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: The [secret] source of that announcement\nLines: 19\n\n\tEven more interesting: the SMTP server at csrc.ncsl.nist.gov no longer\n\trecognizes the 'expn' and 'vrfy' commands...\n\n\t   telnet csrc.ncsl.nist.gov smtp\n\t   Trying 129.6.54.11...\n\t   Connected to csrc.ncsl.nist.gov.\n\t   Escape character is '^]'.\n\t   220 first.org sendmail 4.1/NIST ready at Tue, 20 Apr 93 17:01:34 EDT\n\t   expn clipper\n\t   500 Command unrecognized\n\n\tSeems like sombody didn't like your snooping around, Marc.\n\nOr mine.  Or the dozen or so other people who probably had the same idea :-)\n\nSo does this rush to shut it down imply that some of the names on that\nlist *are* heavy-duty spooks? :-)))\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4737, "properties": {"category": "sci.electronics", "text": "From: dp@cec1.wustl.edu (David Prutchi)\nSubject: Re: Long distance IR detection\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nLines: 88\n\nIn article <1993Apr20.183416.18744@dres.dnd.ca> sburton@dres.dnd.ca (Stan Burton) writes:\n>\n>--\n>\n>I would like to be able to detect the angular position (low accuracy) of an\n>IR emitting source at a distance of about 100 meters (more is better) in\n>daylight.  The IR source could be emitting a signature; I'm leaning toward\n>30 KHz square wave with 50% duty cycle.\n>\n>I am considering the use of a quadrant detector from Centronic Inc. to give\n>information to a pan/tilt head to point the sensor and thus determine the\n>angles.  For the source I am considering wazing the heck out of an IR LED(s),\n>possibly an Optek OP290 or Motorola MLED81.  Wazing would mean at least 1 Amp\n>current pulses.  At this current the duty cycle of the LED drops to 10% and I\n>would need to cycle five of them in turn to get the 50% required.\n>\n>Has anyone done something like this?\n>\n>Stan Burton (DND/CRAD/DRES/DTD/MSS/AGCG)                 sburton@dres.dnd.ca\n>(403) 544-4737     DRE Suffield, Box 4000, Medicine Hat, AB, Canada, T1A 8K6\n\nA method which will directly (almost) provide you with the information that\nyou require is that which is commonly used for coordinate measurements of \nhuman body landmarks (eg. the SELSPOT system by SELSPOT AB, Sweden, and the\nWATSMART System ??).  These use lateral photoeffect detectors [Lindholm and\nOberg, 1974; Woltring and Marsolais, 1980] to determine the position of a\nspot of light projected (using a camera lens) over its surface.  In escence,\nthe detector is a large photodiode with four cathodes (one on each of the\nfour sides of the square detector crystal) and a single anode (the back of\nthe crystal).  A spot of light will produce currents which are proportional\nto the position of the spot on the detector's face.  Let's try some ASCII\ngraphics in 2-D (so the detector has two cathodes to detect linear position)\n\n\n\n              -------------------------> 1\n             |                       |\n             |                       |       |\\\n           -----   cathode 1         |       |  \\\n           XXXXX                     ________| +  \\\n           XXXXX|                            |      \\        -------\n    light >XXXXX|                            |        \\_____ divider __ output\n           XXXXX|     |                      |        /      -------\n           XXXXX|-----| |--                  |      /           |\n           XXXXX|   + |    |         ________| -  /           1 + 2\n           XXXXX|         --- gnd    |       |  /\n           XXXXX|         \\ /        |       |/\n           XXXXX| anode              |\n           XXXXX                     |\n           ----- cathode 2           |\n             |                       |\n             |                       |\n             --------------------------> 2\n\nIf the dot of light from the LED is the ONLY source of light, then the position\nof the projection is given by this circuit regardless of the level of illumina-\ntion (the divider is used to normalize relative to total received power).  When\nthis circuit is used in the presence of other sources of light, then the way of\n\"tuning\" to it is to sample for a few msec the background signal, light the LED\nfor an equal time and sample that signal separately.  The difference between\nthe two is the position of the LED.\n\nHamamatsu photonics sells linear and 2-D lateral photoeffect detectors, and\nthey also sell the required signal processing electronics.  The ready-made\nsystems by SELSPOT and others are NOT cheap ... \n\nLindholm, L.E., and K.E. Oberg, \"An Optoelectronic Instrument for Remote\nOn-Line Movement Monitoring\", Biotelemetry, 1, 94-95, 1974.\n\nWoltring, H.J., and E.B. Marsolais, \"Opto-Electronic (SELSPOT) Gait Measure-\nments in Two and Three Dimensional Space - A Preliminary Report\", Bull. Pros-\nthetics Research, 46-52, 1980.\n\nMost probably this technique can provide you with a much more accurate\nmeasurement than you need, but I think that its simplicity beats scanning\na quadrant detector with a pan/tilt system until you reach zero difference.\n\n            - David\n\n\n\n+------------------------------------------------------------+\n|  David Prutchi                 HC1DT                       |\n|  Washington University         <prutchi@mesun4.wustl.edu>  |\n|  Campus Box 1185               <dp@cec1.wustl.edu>         |\n|  One Brookings Drive                                       |\n|  St. Louis, MO  63130-4899                                 |\n+------------------------------------------------------------+\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4738, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: s106275@ee.tut.fi (Anssi Saari)\nSubject: Re: 80386 and 80486: What's the difference?\nOrganization: Tampere University of Technology, Computing Centre\nLines: 38\nDistribution: inet\nNNTP-Posting-Host: ee.tut.fi\n\nIn <joedal.735221221@dfi.aau.dk> joedal@dfi.aau.dk (Lars Joedal) writes:\n\n>Except from clock frequency, what are the differences between the\n>various types of 386 and 486 processors?\n>The following is a list with what I know (or perhaps only what I\n>think I know!). Can anybody extend & correct?\n\n\n>80386:  True 32 bit processor.\n>        (cache?)\nNo cache.\n\n>80386SX:  Emulates 80386 with a 16 bit bus.\n\n>80486:  True 32 bit processor.\n>        Internal mathematical coprocessor (Correct?)\nCorrect.\n>        Internal cache (Correct? How big?)\n8kB.\n>        (extended instruction set in any way?)\nWas it six instructions?\n\n>80486SX:  Probably sorta like 80486...\n80486DX without the mathematical coprocessor (FPU).\n>80486DX:  Probably sorta like 80386...\n\nActually, the 80486 you described above is 80486DX.\n(There is no separate 80486 nor 80386, either).\n\nThis is for Intel processors. Does anyone have a complete\nlist with Cyrix and Ibm products?\n\nAnssi\n-- \nAnssi Saari s106275@ee.tut.fi                \nTampere University of Technology \nFinland, Europe                  \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4739, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 09/15 - Mission Schedules\nSupersedes: <schedule_730956538@cs.unc.edu>\nOrganization: University of North Carolina, Chapel Hill\nLines: 177\nDistribution: world\nExpires: 6 May 1993 19:59:07 GMT\nNNTP-Posting-Host: mahler.cs.unc.edu\nKeywords: Frequently Asked Questions\n\nArchive-name: space/schedule\nLast-modified: $Date: 93/04/01 14:39:23 $\n\nSPACE SHUTTLE ANSWERS, LAUNCH SCHEDULES, TV COVERAGE\n\n    SHUTTLE LAUNCHINGS AND LANDINGS; SCHEDULES AND HOW TO SEE THEM\n\n    Shuttle operations are discussed in the Usenet group sci.space.shuttle,\n    and Ken Hollis (gandalf@pro-electric.cts.com) posts a compressed version\n    of the shuttle manifest (launch dates and other information)\n    periodically there. The manifest is also available from the Ames SPACE\n    archive in SPACE/FAQ/manifest. The portion of his manifest formerly\n    included in this FAQ has been removed; please refer to his posting or\n    the archived copy. For the most up to date information on upcoming\n    missions, call (407) 867-INFO (867-4636) at Kennedy Space Center.\n\n    Official NASA shuttle status reports are posted to sci.space.news\n    frequently.\n\n\n    WHY DOES THE SHUTTLE ROLL JUST AFTER LIFTOFF?\n\n    The following answer and translation are provided by Ken Jenks\n    (kjenks@gothamcity.jsc.nasa.gov).\n\n    The \"Ascent Guidance and Flight Control Training Manual,\" ASC G&C 2102,\n    says:\n\n\t\"During the vertical rise phase, the launch pad attitude is\n\tcommanded until an I-loaded V(rel) sufficient to assure launch tower\n\tclearance is achieved. Then, the tilt maneuver (roll program)\n\torients the vehicle to a heads down attitude required to generate a\n\tnegative q-alpha, which in turn alleviates structural loading. Other\n\tadvantages with this attitude are performance gain, decreased abort\n\tmaneuver complexity, improved S-band look angles, and crew view of\n\tthe horizon. The tilt maneuver is also required to start gaining\n\tdownrange velocity to achieve the main engine cutoff (MECO) target\n\tin second stage.\"\n\n    This really is a good answer, but it's couched in NASA jargon. I'll try\n    to interpret.\n\n    1)\tWe wait until the Shuttle clears the tower before rolling.\n\n    2)\tThen, we roll the Shuttle around so that the angle of attack\n\tbetween the wind caused by passage through the atmosphere (the\n\t\"relative wind\") and the chord of the wings (the imaginary line\n\tbetween the leading edge and the trailing edge) is a slightly\n\tnegative angle (\"a negative q-alpha\").\tThis causes a little bit of\n\t\"downward\" force (toward the belly of the Orbiter, or the +Z\n\tdirection) and this force \"alleviates structural loading.\"\n\tWe have to be careful about those wings -- they're about the\n\tmost \"delicate\" part of the vehicle.\n\n    3)\tThe new attitude (after the roll) also allows us to carry more\n\tmass to orbit, or to achieve a higher orbit with the same mass, or\n\tto change the orbit to a higher or lower inclination than would be\n\tthe case if we didn't roll (\"performance gain\").\n\n    4)\tThe new attitude allows the crew to fly a less complicated\n\tflight path if they had to execute one of the more dangerous abort\n\tmaneuvers, the Return To Launch Site (\"decreased abort maneuver\n\tcomplexity\").\n\n    5)\tThe new attitude improves the ability for ground-based radio\n\tantennae to have a good line-of-sight signal with the S-band radio\n\tantennae on the Orbiter (\"improved S-band look angles\").\n\n    6)\tThe new attitude allows the crew to see the horizon, which is a\n\thelpful (but not mandatory) part of piloting any flying machine.\n\n    7)\tThe new attitude orients the Shuttle so that the body is\n\tmore nearly parallel with the ground, and the nose to the east\n\t(usually).  This allows the thrust from the engines to add velocity\n\tin the correct direction to eventually achieve orbit.  Remember:\n\tvelocity is a vector quantity made of both speed and direction.\n\tThe Shuttle has to have a large horizontal component to its\n\tvelocity and a very small vertical component to attain orbit.\n\n    This all begs the question, \"Why isn't the launch pad oriented to give\n    this nice attitude to begin with?  Why does the Shuttle need to roll to\n    achieve that attitude?\"  The answer is that the pads were leftovers\n    from the Apollo days.  The Shuttle straddles two flame trenches -- one\n    for the Solid Rocket Motor exhaust, one for the Space Shuttle Main\n    Engine exhaust.  (You can see the effects of this on any daytime\n    launch.  The SRM exhaust is dirty gray garbage, and the SSME exhaust is\n    fluffy white steam.  Watch for the difference between the \"top\"\n    [Orbiter side] and the \"bottom\" [External Tank side] of the stack.) The\n    access tower and other support and service structure are all oriented\n    basically the same way they were for the Saturn V's.  (A side note: the\n    Saturn V's also had a roll program.  Don't ask me why -- I'm a Shuttle\n    guy.)\n\n    I checked with a buddy in Ascent Dynamics.\tHe added that the \"roll\n    maneuver\" is really a maneuver in all three axes: roll, pitch and yaw.\n    The roll component of that maneuver is performed for the reasons\n    stated.  The pitch component controls loading on the wings by keeping\n    the angle of attack (q-alpha) within a tight tolerance.  The yaw\n    component is used to determine the orbital inclination.  The total\n    maneuver is really expressed as a \"quaternion,\" a grad-level-math\n    concept for combining all three rotation matrices in one four-element\n    array.\n\n\n    HOW TO RECEIVE THE NASA TV CHANNEL, NASA SELECT\n\n    NASA SELECT is broadcast by satellite. If you have access to a satellite\n    dish, you can find SELECT on Satcom F2R, Transponder 13, C-Band, 72\n    degrees West Longitude, Audio 6.8, Frequency 3960 MHz. F2R is stationed\n    over the Atlantic, and is increasingly difficult to receive from\n    California and points west. During events of special interest (e.g.\n    shuttle missions), SELECT is sometimes broadcast on a second satellite\n    for these viewers.\n\n    If you can't get a satellite feed, some cable operators carry SELECT.\n    It's worth asking if yours doesn't.\n\n    The SELECT schedule is found in the NASA Headline News which is\n    frequently posted to sci.space.news. Generally it carries press\n    conferences, briefings by NASA officials, and live coverage of shuttle\n    missions and planetary encounters. SELECT has recently begun carrying\n    much more secondary material (associated with SPACELINK) when missions\n    are not being covered.\n\n\n    AMATEUR RADIO FREQUENCIES FOR SHUTTLE MISSIONS\n\n    The following are believed to rebroadcast space shuttle mission audio:\n\n\tW6FXN  - Los Angeles\n\tK6MF   - Ames Research Center, Mountain View, California\n\tWA3NAN - Goddard Space Flight Center (GSFC), Greenbelt, Maryland.\n\tW5RRR  - Johnson Space Center (JSC), Houston, Texas\n\tW6VIO  - Jet Propulsion Laboratory (JPL), Pasadena, California.\n\tW1AW Voice Bulletins\n\n\tStation    VHF\t   10m\t   15m\t   20m\t  40m\t 80m\n\t------\t ------  ------  ------  ------  -----\t-----\n\tW6FXN\t 145.46\n\tK6MF\t 145.585\t\t\t 7.165\t3.840\n\tWA3NAN\t 147.45  28.650  21.395  14.295  7.185\t3.860\n\tW5RRR\t 146.64  28.400  21.350  14.280  7.227\t3.850\n\tW6VIO\t 224.04\t\t 21.340  14.270\n\tW6VIO\t 224.04\t\t 21.280  14.282  7.165\t3.840\n\tW1AW\t\t 28.590  21.390  14.290  7.290\t3.990\n\n    W5RRR transmits mission audio on 146.64, a special event station on the\n    other frequencies supplying Keplerian Elements and mission information.\n\n    W1AW also transmits on 147.555, 18.160. No mission audio but they\n    transmit voice bulletins at 0245 and 0545 UTC.\n\n    Frequencies in the 10-20m bands require USB and frequencies in the 40\n    and 80m bands LSB. Use FM for the VHF frequencies.\n\n    [This item was most recently updated courtesy of Gary Morris\n    (g@telesoft.com, KK6YB, N5QWC)]\n\n\n    SOLID ROCKET BOOSTER FUEL COMPOSITION\n\n    Reference: \"Shuttle Flight Operations Manual\" Volume 8B - Solid Rocket\n    Booster Systems, NASA Document JSC-12770\n\n    Propellant Composition (percent)\n\n    Ammonium perchlorate (oxidizer)\t\t\t69.6\n    Aluminum\t\t\t\t\t\t16\n    Iron Oxide (burn rate catalyst)\t\t\t0.4\n    Polybutadiene-acrilic acid-acrylonitrile (a rubber) 12.04\n    Epoxy curing agent\t\t\t\t\t1.96\n\n    End reference\n\n    Comment: The aluminum, rubber, and epoxy all burn with the oxidizer.\n\nNEXT: FAQ #10/15 - Historical planetary probes\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4740, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 14\nNNTP-Posting-Host: punisher.caltech.edu\n\nkcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n\n>>No, that's just what you thought the theory meant.  While all humans\n>>are generally capable of overpowering their instincts, it does not\n>>follow that those who do this often are necessarily more intelligent.\n>Ok, so why aren't animals \"generally capable of overpowering their instincts\"?\n\nGood question.  I'm sure some biologist could answer better than I,\nbut animals brains are just set up differently.\n\nAnimals *can* be trained, but if they're instincts serve them well, there is\nno reason to contradict them.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4741, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Orion drive in vacuum -- how?\nOrganization: U of Toronto Zoology\nLines: 12\n\nIn article <1993Apr17.053333.15696@sfu.ca> Leigh Palmer <palmer@sfu.ca> writes:\n>... a high explosive Orion prototype flew (in the atmosphere) in San\n>Diego back in 1957 or 1958...   I feel sure\n>that someone must have film of that experiment, and I'd really like to\n>see it. Has anyone out there seen it?\n\nThe National Air & Space Museum has both the prototype and the film.\nWhen I was there, some years ago, they had the prototype on display and\nthe film continuously repeating.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4742, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nLines: 23\n\n: The cops/feds do *not* need to be able to get hold of your private key to\n: listen in to cellular conversations.  Encryption is not end-to-end, but \n: cellphone to base-station - it *has* to be this way so that cellular users\n: and fixed installations can talk to each other.  For cellular to cellular\n: calls, the transmission is decrypted at the base-station, passed to another\n: base-station and re-encrypted.  The cops/feds can listen to the unscrambled\n: call *provided* they get a warrant to tap into the cellular provider's\n: equipment.  The only reason for wanting a crackable system is so they can\n: listen without having to obtain a warrant.\n\n: But, maybe the Clipper system is secure, and they really do need a warrant\n: to get the key out of escrow before they can listen in using a scanner (see\n: above - they don't *have* to go down this route anyway).  I have my doubts,\n: but even if true once they have the key they will *never* again need a\n: warrant to tap into that particular phone whenever they want.  `Well, Judge,\n: it appears he wasn't a drug-dealer after all, so naturally we'll stop\n: listening in'...\n\nThat was true for the UK Paul, but I'm fairly sure they're talking about\nbuilding end-to-end encryption phones out of this chip.  It's *not* for\ncellular (though it certainly could be used there in the way you suggest)\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4743, "properties": {"category": "rec.sport.baseball", "text": "From: carrd@iccgcc.decnet.ab.com\nSubject: Re: David Wells\nLines: 5\n\nHas David Wells landed with a team yet?  I'd think the Tigers with their \nanemic pitching would grab this guy pronto!\n\nDC\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4744, "properties": {"category": "rec.motorcycles", "text": "From: bgardner@pebbles.es.com (Blaine Gardner)\nSubject: Re: FJ1100/1200 Owners: Tankbag Suggestions Wanted\t  \nNntp-Posting-Host: 130.187.85.70\nOrganization: Evans & Sutherland Computer Corporation\nLines: 13\n\nIn article <1993Apr20.195116.10738@ncsu.edu> martenm@chess.ncsu.edu (Mark Marten) writes:\n>\n>I am looking for a new tank bag now, and I wondered if you, as follow \n>FJ1100/1200 owners, could make some suggestions as to what has, and has \n>not worked for you. If there is already a file on this I apologize for \n>asking and will gladly accept any flames that are blown my way!\n\nWith the FJ's large, flat gas tank, I'd imagine that almost anything\nwould work. Personally, I'm quite happy with my Eclipse standard tank\nbag.\n-- \nBlaine Gardner @ Evans & Sutherland\nbgardner@dsd.es.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4745, "properties": {"category": "rec.autos", "text": "From: Kurt Godden <godden@gmr.com>\nSubject: GM May Build Toyota-badged Car\nOrganization: GM R&D\nLines: 13\nDistribution: world\nNNTP-Posting-Host: ksg.cs.gmr.com\nX-UserAgent: Nuntius v1.1.1d16\nX-XXMessage-ID: <A7F46B03C301085E@ksg.cs.gmr.com>\nX-XXDate: Fri, 16 Apr 93 13:54:11 GMT\n\nThis appeared today in the \n\nThe Japan Economic Journal reported GM plans to build a Toyota-badged car\nin the US for sale in Japan.  Bruce MacDonald, VP of GM Corporate\nCommunications, yesterday confirmed that GM President and CEO Jack Smith\nhad a meeting recently with Tatsuro Toyoda, President of Toyota.  \nthis meeting the two discussed business opportunities to increase GM\nexports to Japan, including further component sales as well as completed\nvehicle sales,\nparts sales, the two presidents agreed conceptually to pursue an\narrangement whereby GM would build a Toyota-badged, right-hand drive\nvehicle in the US for sale by Toyota in Japan.  A working group has been\nformed to finalize model specifications, exact timing and other details.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4746, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ubs@carson.u.washington.edu (University Bookstore)\nSubject: Re: Ghost on Apple 12\" Color -> user=insane!!\nOrganization: University of Washington, Seattle\nLines: 42\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <bettsC5nq84.6uu@netcom.com> betts@netcom.com (Jonathan Betts) writes:\n>Dear Netters,\n>\n>My sister has an Apple 12\" Color Display hooked up to an LC.\n>\n>Problem:  There is an annoying, horizontal, ghost-like stripe that \n>precesses vertically about once per second.  It is about 1 cm high.\n>She is in grave danger of going insane because of it.\n>\n>Any ideas of what it might be and how I might cure it for her?\n>\n>-Joe Betts\n>betts@netcom.com\n>\n>PS: if I pick up the display (I thought it might be RFI from the LC) it \n>seems to get worse!\n>\n\nThis can be caused by two one of two things.  The first and easiest to fix is\ninterference from something around the monitor, such as another monitor or\nother electrical device.  Try moving the system to another location to fix\nthat problem.\n\nSecond, because of the scan rate of the monitor, it tends to synchronize with\nroom lights and can cause the interference you are seeing.  Try turning off\nall lights in the room(s) around the system and see if that helps.  If not,\ntry moving the system somewhere else.\n\nA third solution would be to get a 14\" Apple Color Display - It should not\nhave the same problem the 12\" Color is more suceptible to.\n\nYou can try calling Apple's new support number (in the U.S.) at 1-800-SOS-APPLE.\nThis number is for ANYONE who has questions regarding Macintosh setup and\ncompatibility and just went into effect for this extended support on Monday,\nApril 5, 1993.\n\nGood luck -\n\n****\nKevin Lohman, Buyer, University Book Store\nUniversity of Washington, Seattle\nApple Computers for Education Program\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4747, "properties": {"category": "sci.electronics", "text": "From: caryd@a.cs.okstate.edu (CARY DAVID ALLEN)\nSubject:  Self-modifying hardware\nOrganization: Oklahoma State University, Computer Science, Stillwater\nLines: 70\n\nPermit me to quote fragments of \npraetzel@sunee.uwaterloo.ca's article\nout of context.\n\n-Newsgroups: sci.electronics,comp.lsi.cad\n-From: praetzel@sunee.uwaterloo.ca (Eric Praetzel)\n-Date: 10 Feb 93 15:46:41 GMT\n\n-  Currently the XNF format is propierty and I know of at least on person at\n-a university who was able to get it after signing a non-disclosure agreement.\n-The Xilinx-bit map format is pretty well top secret.  I would love to know it\n-because then you could make self_modifying_hardware  ;-)  As it is I had to\n-reverse eng. the Xilinx tools to dump the bit map to the FPGA because it only\n-runs on the computer with the hardware key.\n\nself-modifying hardware could be *very* interesting --\n computers that could write thier own programs (assemblers, compilers)\nwere an immense breakthrough from calculators that couldn't.\n\n-  I eagerly await a programmable gate array which uses a PD format and does\n-not cost your first born to program.  Till then we will keep on reverse\n-engineering whatever we can.  As it is one company that I worked at has gone\n-under.  FPGAs are what they needed to make their product competitive.  They\n-could not afford them.  In the end you could say that they could not afford\n-to not use them but the management discovered that too late. \n-   - Eric \n\nmy condolences.\n\ni can't even imagine what i could do with self-modifing hardware.\ni *can* imagine self-modifying software,\nand even though *all* my teachers say that's BAD, even Worse than GOTO,\ncheck out what the experts *used* to say about self-modifying code:\n(he uses \"orders\" rather than \"opcodes\")\n\n\n\"On the Principles of Large Scale Computing Machines\"\nby Goldstine and von Neumann,\ncollected in \n_John von Neumann: Collected Works, Vol. V_\nreprinted here with absolutely no permission from anyone.\n\"We plan... to have a full size (40 binary digit) word hold\neither contain\n1 full size number (... equivalent to 12 decimal digits,\nbut we will use the first binary digit to denote the sign)\nor two (20 binary digit) orders.\n....\n\tIt should be added that this technique of\nautomatic substitutions into orders,\ni.e. the machine's ability to modify its own orders\n(under the control of other ones among its orders)\nis absolutely necessary for a flexible code. Thus, if\npart of the memory is used as a \"function table\", then\n\"looking up\" a value of that function for a value of the \nvariable which is obtained in the course of the computation\nrequires that the machine itself should modify, or\nrather make up, the reference to the memory in the order which\ncontrols this \"looking up\", and the machine can only make this\nmodification after it has already calculated the value of the \nvariable in question.\n\tOn the other hand, this ability of the machine to modify its\nown orders is one of the things which makes coding\nthe non-trivial operation which we have to view it as.\"\n\ndavid cary, tenor, e- and comp. engineering (finger caryd@a.cs.okstate.edu).\n227 S. 163 E. Ave, Tulsa, OK  74108-3310, USA, Sol 3, Universe v. 1.2\n\n-- \ndavid cary, tenor, e- and comp. engineering (finger caryd@a.cs.okstate.edu).\n227 S. 163 E. Ave, Tulsa, OK  74108-3310, USA, Sol 3, Universe v. 1.2\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4748, "properties": {"category": "talk.politics.misc", "text": "From: garrett@Ingres.COM (THE SKY ALREADY FELL. NOW WHAT?)\nSubject: Bush's WI (was Clinton's Wiretapping Initiative\nSummary: BUSH'S wiretapping initiative  \nNews-Software: VAX/VMS VNEWS 1.4-b1  \nKeywords: \nOrganization: ASK Computer Systems, Ingres Product Division\nLines: 29\n\nIn article <9304161803.AA23713@inet-gw-2.pa.dec.com>, blh@uiboise.idbsu.edu (Broward L. Horne)         writes...\n>\tIf you look through this newsgroup, you should be \n>\table to find Clinton's proposed \"Wiretapping\" Initiative\n>\tfor our computer networks and telephone systems.\n> \n>\tThis 'initiative\" has been up before Congress for at least\n>\tthe past 6 months, in the guise of the \"FBI Wiretapping\"\n>\tbill.\n\nI guess your strength isn't in math. Clinton hasn't been president for\n6 months. In other words, it's BUSH'S Wiretapping Initiative.\n> \n>\tI strongly urge you to begin considering your future.\n>\tI strongly urge you to get your application for a passport\n>\tin the mail soon.\n> \n>\tI strongly urge you to consider moving any savings you \n>\thave overseas, into protected bank accounts, while \n>\tyou are still able.\n> \nHave you?\n> \n\n------------------------------------------------------------------------------\n\"Who said anything about panicking?\" snapped Authur.           Garrett Johnson\n\"This is still just culture shock. You wait till I've       Garrett@Ingres.com\nsettled into the situation and found my bearings.\nTHEN I'll start panicking!\" - Douglas Adams  \n------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4749, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mwgordon@nyx.cs.du.edu (Mike Gordon)\nSubject: Gateway ethernet card drivers needed\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 20\n\n\n\n\nHi all,  \n   \n    \n    Could anybody please tell me where I might be able to find device drivers \nfor a couple of older Gateway ethernet cards?  I don't have the model number\noff hand, but they have only a BNC connector, and a header connector for \na Novell keycard (one has one installed).\n \n    I'm looking at using these with a 2 node copy of 10-net that I picked up\nat a swap meet.  (I'd love to do Lantastic or Netware lite, but I'm a poor\ncollege student and the price was right.)\n\n    Please reply via email, as I haven't had a lot of time for news because\nof exams and such.  \n\nMike Gordon   N9LOI  mwgordon@nyx.cs.du.edu\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4750, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ggeorge@bu.edu (Gerry George)\nSubject: Partition table disappeared!! Help\nArticle-I.D.: bu.115970\nLines: 20\nX-Newsreader: Tin 1.1 PL5\n\nMy computer won't recognise my disk after a reboot (Windows crash - Grrr!!)\nAre there any options to restore everything, without losing data? \n\n\nThe drive previously had 3 partitions, but I do not remember the exact\nsettings.\n\nI have copies of the boot data from the disk (PC-tools rescue disk).  I do not\nwant to lose my data - 340MB IDE drive.  Do I have any options?\n\n\n--\n\n\n===========================================================================\nGerry George                          | Anything good in life is either\nSchool of Management, Boston Univ.    | illegal, immoral or fattening.\nInternet: ggeorge@acs.bu.edu          | Any item not in the above three\nCompu$erve: 72607.2560@compuserve.com | categories causes cancer in rats!\n===========================================================================\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4751, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jonni@rhi.hi.is (Jon Ingi Thorvaldsson)\nSubject: Can I only insert 16 color pics in WfW2.0\nLines: 9\nNntp-Posting-Host: hengill.rhi.hi.is\n\n\nwell, the subject says just about all I intended to ask:\n\nIs there no way to insert a 256 color into WfW 2.0 ?\n\nWhen I try it, the picture turns into a 16 color pic.\n\n\njonni.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4752, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Gaza and separation from Israel\nNf-ID: #N:cdp:1483500357:000:3740\nNf-From: cdp.UUCP!cpr    Apr 24 07:06:00 1993\nLines: 73\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Gaza and separation from Israel\n\n\nGaza and the idea of separation\n\nThe Israeli Left's inability to cope with the challenges it is\npresented with by reality becomes obvious at those moments when\nthe reality does not line up with the expectations of the left. We\nwere able to see this clearly during the Gulf War.  Because of the\nPalestinian's popular solidarity with Iraq, Yossi Sarid -\ncurrently Minister of the Environment - made his infamous\nstatement: \"You look for me !\", i.e., I'am not making any more\nefforts to speak with you. From Yossi Sarid's point of view,\nPalestinian reality during the Gulf War was not the lengthy curfew\nor the danger of hunger it brought with it, but whether or not the\nPalestinians accepted what was acceptable to the party. Similarly\nMERETZ, MK Deddi Tzuker, recently faced with criticism from\nresidents of the West Bank town of Beit Sahour over his\ngovernment's and his party's lack of action for human rights and\npeace, responded by asking those present at the discussion whether\nthey would rather have a Likud government. From the Leftists'\nperspective this is the best government because it is THEIR\ngovernment, regardless of what it does.\n\nThese members of the Israeli Left have already decided how the\nfuture of the Occupied Territories will look, and they want to\ndictate to the Palestinians how to get there. An essential step\ntowards this future is their participation in Yitzhak Rabin's\ngovernment, and from their point of view the expulsions were a\nmarginal byproduct of this \"government of peace\", which need not\ndisturb the routine course of events. Likewise the \"Rabinic\"\npolicies in Gaza - the blowing up of houses with anti-tank rockets\nand the significant increases in the number of persons injured in\nthe suppression of demonstrations - need not disturb it.\n\nBut the fact that reality is not as they would have it forces\nitself upon them when a mob in Gaza falls upon a settler who has\nlost his way, when a settler is stabbed by his Palestinian\nworkers, or when a Palestinian knifes people in the streets of Tel\nAviv. Then all hell breaks loose and the Israeli Left has nothing\nto propose except separation: Let's cut ourselves off from the\nPalestinians, let's build a fence so high that they won't be able\nto harm us - this is the cry of the Israeli Left. Let us erect a\nfence between us and the reality whith is the occupation.\n\nMeron Benvenisti writes about this in Ha'aretz (4-3-93): \"...The\nliberal Left. which does not differentiate between physical\nseparation and 'the future of the territories', must come to\nunderstand that the regime of magnetic cards, exclusion of Arab\nworkers, closure, and curfew are instruments of enforcement\ndesigned for the suppression of a population in revolt, and that\ntheir ideological support for separation only provides\n'humanitarian' arguments for the legitimization of the <status\nquo>.\n\nEnforced separation is carried out only to meet the need of the\nruling community, but it is only the ruled population which bears\nits burden. [.....].\n\n\"Whoover thinks that 'out of Gaza first' is a liberal,\nhumanitarian idea had best contemplate the question of whether\nthis position is also moral. It is very easy to shake off\nresponsibility for this concentration of human suffering, and to\nthus also disregard responsibility for it's creation. It is very\neasy to erect a fence between Jewish and Arab neighborhoods in\nJerusalem, when this fence has a gate - the keys to which are at\nthe disposal of one hand - which opens to allow the Jews to pursue\nall their interests, but is barred to the Arabs...\".\n------------------------------------------------------\n>From The OTHER Front, Jerusalem, 10 March 1993\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4753, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Migraines\nArticle-I.D.: pitt.19398\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 19\n\nIn article <DRAND.93Mar26112932@spinner.osf.org> drand@spinner.osf.org (Douglas S. Rand) writes:\n\n>So I'll ask this,  my neurologist just prescribed Cafergot and\n>Midrin as some alternatives for me to try.  He stated that\n>the sublingual tablets of ergotamine were no longer available.\n>Any idea why?  He also suggested trying 800 mg ibuprophen.\n>\n\nI just found out about the sublinguals disappearing too.  I don't\nknow why.  Perhaps because they weren't as profitable as cafergot.\nToo bad, since tablets are sometimes vomited up by migraine patients\nand they don't do any good flushed down the toilet.  I suspect\nwe'll be moving those patients more and more to the DHE nasal\nspray, which is far more effective.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4754, "properties": {"category": "comp.windows.x", "text": "From: deloura@cs.unc.edu (Mark A. DeLoura)\nSubject: Looking for X Window Server Frequency-of-Operations Data\nOrganization: The University of North Carolina at Chapel Hill\nLines: 22\nNNTP-Posting-Host: monet.cs.unc.edu\nKeywords: Frequency data X Server architecture\n\nHello--  I'm currently designing the architecture of a chip which is\nintended to help speed up common operations on a windowing system such as\nX.  A friend and I are designing the chip as the final course project for\nan advanced computer architecture course taught by Dr. Fred Brooks at\nUNC-Chapel Hill.  While we feel that we've got a pretty solid design\ncurrently, we'd really like to get ahold of some frequency data from an\nX-Windows server so that we can make the most effective use of our bit\nbudget.  \n\nUnfortunately, I've been unable to find anything of this sort in the\nvarious X FAQs, or X manuals that I've seen.  Does anyone have some type of\nfrequency data, like how many Copy-rectangle operations vs draw-lines, and\nthings of that sort?  Or, barring that, a program that records requests to\nthe server into a logfile that I can munge on myself?\n\nAny and all help would be very appreciated.\n\nMany thanks,\n    ---Mark\n\n===============================================================================\n Mark A. DeLoura       deloura@cs.unc.edu      U of North Carolina, Chapel Hill\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4755, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Maine System\nFrom: <IO21087@MAINE.MAINE.EDU>\nSubject: Grateful Dead?\nLines: 15\n\nBeing a baseball fan and a fan of the above mentioned band I was\nwondering if anyone could clue me in on whether the Dead (or members\nof) sang the national anthem at todays Giant opener?\n\nI would imagine that it is a bit too early for anyone to know, but\nan answer would be greatly appreciated.\n\n\n             Curious,\n                   Robert\n-----------------------------------------------------------------------\nROBERT MARGESSON                                   UMAINE HOCKEY\n156 PARK ST. C5                                     BLACK BEARS\nORONO, ME 04473                                   1993 NCAA CHAMPS\n(207)866-7342                                         42-1-2\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.229+0000", "event": "documents", "entityId": 4756, "properties": {"category": "talk.politics.mideast", "text": "From: backon@vms.huji.ac.il\nSubject: Re: Go Hezbollah!!\nDistribution: world\nOrganization: The Hebrew University of Jerusalem\nLines: 23\n\nIn article <1993Apr14.125813.21737@ncsu.edu>, hernlem@chess.ncsu.edu (Brad Hernlem) writes:\n>\n> Lebanese resistance forces detonated a bomb under an Israeli occupation\n> patrol in Lebanese territory two days ago. Three soldiers were killed and\n> two wounded. In \"retaliation\", Israeli and Israeli-backed forces wounded\n> 8 civilians by bombarding several Lebanese villages. Ironically, the Israeli\n> government justifies its occupation in Lebanon by claiming that it is\n> necessary to prevent such bombardments of Israeli villages!!\n>\n> Congratulations to the brave men of the Lebanese resistance! With every\n> Israeli son that you place in the grave you are underlining the moral\n> bankruptcy of Israel's occupation and drawing attention to the Israeli\n> government's policy of reckless disregard for civilian life.\n>\n> Brad Hernlem (hernlem@chess.ncsu.EDU)\n\n\nI'm sure the Federal Bureau of Investigation (fbi.gov on the Internet) is going\nto *love* reading your incitement to murder.\n\n\nJosh\nbackon@VMS.HUJI.AC.IL\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4757, "properties": {"category": "talk.politics.mideast", "text": "From: mau@herky.cs.uiowa.edu (Mau Napoleon)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nNntp-Posting-Host: herky.cs.uiowa.edu\nOrganization: University of Iowa, Iowa City, IA, USA\nLines: 63\n\nFrom article <1993Apr15.092101@IASTATE.EDU>, by tankut@IASTATE.EDU (Sabri T Atan):\n> Well, Panos, Mr. Tamamidis?, the way you put it it is only the Turks\n> who bear the responsibility of the things happening today. That is hard to\n> believe for somebody trying to be objective.\n> When it comes to conflicts like our countries having you cannot\n> blame one side only, there always are bad guys on both sides.\n> What were you doing on Anatolia after the WW1 anyway?\n> Do you think it was your right to be there?\n\nThere were a couple millions of Greeks living in Asia Minor until 1923.\nSomeone had to protect them. If not us who??\n\n> I am not saying that conflicts started with that. It is only\n> not one side being the aggressive and the ither always suffering.\n> It is sad that we (both) still are not trying to compromise.\n> I remember the action of the Turkish government by removing the\n> visa requirement for greeks to come to Turkey. I thought it\n> was a positive attempt to make the relations better.\n> \nCompromise on what, the invasion of Cyprus, the involment of Turkey in\nGreek politics, the refusal of Turkey to accept 12 miles of territorial\nwaters as stated by international law, the properties of the Greeks of \nKonstantinople, the ownership of the islands in the Greek lake,sorry, Aegean.\n\nThere are some things on which there can not be a compromise.\n\n\n> The Greeks I mentioned who wouldn't talk to me are educated\n> people. They have never met me but they know! I am bad person\n> because I am from Turkey. Politics is not my business, and it is\n> not the business of most of the Turks. When it comes to individuals \n> why the hatred?\n\nAny person who supports the policies of the Turkish goverment directly or\nindirecly is a \"bad\" person.\nIt is not your nationality that makes you bad, it is your support of the\nactions of your goverment that make you \"bad\".\nPeople do not hate you because of who you are but because of what you\nare. You are a supporter of the policies of the Turkish goverment and\nas a such you must pay the price.\n\n> So that makes me think that there is some kind of\n> brainwashing going on in Greece. After all why would an educated person \n> treat every person from a nation the same way? can you tell me about your \n> history books and things you learn about Greek-Turkish\n> encounters during your schooling. \n> take it easy! \n> \n> --\n> Tankut Atan\n> tankut@iastate.edu\n> \n> \"Achtung, baby!\"\n\nYou do not need brainwashing to turn people against the Turks. Just talk to\nGreeks, Arabs, Slavs, Kurds and all other people who had the luck to be under\nTurkish occupation.\nThey will talk to you about murders,rapes,distruction.\n\nYou do not learn about Turks from history books, you learn about them from\npeople who experienced first hand Turkish friendliness.\n\nNapoleon\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4758, "properties": {"category": "rec.motorcycles", "text": "From: chrispi@microsoft.com (Chris Pirih)\nSubject: Re: Riceburner Respect\nOrganization: Microsoft Corporation\nLines: 23\n\nIn rec.motorcycles klinger@ccu.umanitoba.ca (Jorg Klinger) writes:\n;In <1993Apr15.192558.3314@icomsim.com> mmanning@icomsim.com (Michael Manning) writes:\n;\n;>Most people wave or return my wave when I'm on my Harley.\n;>Other Harley riders seldom wave back to me when I'm on my\n;>duck. Squids don't wave, or return waves ever, even to each\n;>other, from what I can tell.\n;\n;  When we take a hand off the bars we fall down!\n\nThe problem is that Squids and BadAssBikers can't recognize\neach other's waves.  When you're riding a cruiser, you \"wave\"\nby lifting two or three fingers of the left hand, without\nfirst removing that hand from the handlebar.  When you're\nriding a crotch rocket, you lower the left hand to about\nankle level, palm forward, and call that a wave.\n\nGeneric bike riders actually seem to raise the hand entirely\noff the handlebar and wave it around, so it's easy to tell\nwhen they're waving.\n\n---\nchris\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4759, "properties": {"category": "comp.graphics", "text": "From: 235wardell@gw.wmich.edu\nSubject: VGA Passthrough Cables!\nOrganization: Western Michigan University\nLines: 14\n\n\n\tDoes anyone know the phone number to a place where i can get\na VGA passthrough?\n\n\tI want to hook up my VGA card to my XGA card (whcih you can can).\nAll I need is the cable that connects them.  It is the same type of\ncable that you would connect from your VGA card to say a Video Blaster\nor something.\n\n\tThanks.\n\t\t\t\t\t\t-Brad\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4760, "properties": {"category": "misc.forsale", "text": "From: warsaw@athena.mit.edu (Daniel Maung)\nSubject: CDs for $6\nOrganization: Massachusetts Institute of Technology\nLines: 29\nDistribution: usa\nNNTP-Posting-Host: alfredo.mit.edu\n\nI have the following CDs for sale for $6 each plus postage.\nAll CDs are in perfect condition.\n\n\nMichael Bolton        Time, Love & Tenderness      \nPaula Abdul          Forever Your Girl\nTaylor Dayne            Tell it to My Heart\nLionel Richie       The Composer\nElvis Presley      18 Number One Hits\nBobby Vinton       Greatest Hits\nSuper Hits of the 70's \n(includes  Yellow River, Rose Garden, For the Good Times, \nHelp Me Make it through the Night, Mr. Bojangles, Sweet Mary, \nOne Toke Over the Line, Put Your Hand in Hand, Stay Awhile,\nWoodstock, Silver Bird, I Ain't got time Anymore)\n\nNew Fashioned Love Songs  (import)\n(includes extended remixes and dance mixes for the following:\nI Know You Were Waiting - Aretha Franklin & George Michael,\nWalk Like an Egyptian, Live It Up - Mental As Anything\nIs this Love - Alison Moyet\nI'll be Alright Without You - Journey\nThe Rain - Oran Jones\nIn My Dreams - Reo Speedwagon\nShake You Down - Gregory Abbott\nFight For Ourselves - Spandau Ballet\nBetween Two Fires - Paul Young\nFalling in Love - Miami sound machine\nHeartache Away - Don Johnson  )\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4761, "properties": {"category": "talk.religion.misc", "text": "From: mimir@stein.u.washington.edu (Grendel Grettisson)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: The Friends of Loki Society\nLines: 27\nNNTP-Posting-Host: stein.u.washington.edu\n\nIn article <1qsqar$n8m@usenet.INS.CWRU.Edu> ch981@cleveland.Freenet.Edu (Tony Alicea) writes:\n>\n>In a previous article, ba@mrcnext.cso.uiuc.edu (B.A. Davis-Howe) says:\n>\n>>\n>>ON the subject of how many competing RC orders there are, let me point out the\n>>Golden Dawn is only the *outer* order of that tradition.  The inner order is\n>>the Roseae Rubeae et Aurae Crucis.  \n>>\n>\n>\tJust wondering, do you mean the \"Lectorium Rosicrucianum\"?\n>Warning: There is no point in arguing who's \"legit\" and who's not. *WHICH*\n>Golden Dawn are you talking about?\n\n Which Golden Dawn? How about the original from 100 years ago?\n\n>\tJust for the sake of argument, (reflecting NO affiliation)\n>I am going to say that the TRUE Rosicrucian Order is the Fraternitas\n>Rosae Crucis in Quakertown, Penn.,\n>\n>\tAny takers? :-)\n\n No. No Rosicrucian would ever admit or deny being such.\n\nWassail,\nGrendel Grettisson\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4762, "properties": {"category": "rec.autos", "text": "From: steve.dunham@uuserv.cc.utah.edu (STEVE LEE DUNHAM)\nSubject: Re: Car buying story, was: Christ, another dealer service scam...\nLines: 18\nOrganization: The University of Utah\nDistribution: usa\n\n\n>While not exactly a service incident, I had a similar experience recently  \n>when I bought a new truck.\n>\n>I had picked out the vehicle I wanted and after a little haggling we  \n>agreed on a price. I wrote them a check for the down payment plus tax\n>and license and told them I'd be back that evening to pick up the truck.  \n>When I returned, I had to wait about an hour before the finance guy could  \n>get to me. When I finally got in there, everything went smoothly until he  \n>started adding up the numbers. He then discovered that they had  \n>miscalculated the tax & license by about $150. \n\nThis seems to be a popular scam with dealers.  Last month my brother bought \na new Audi 90 series quatro from a local dealer.  They came back with the \nfinal price, tax and all, and he added it up for himself.  There happened to \nbe an extra $300 tagged on under the tax part. He pointed out their error \nand asked them to re-think their addition.  They came back with the right \nprice the next time.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4763, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: alanchem@csd4.csd.uwm.edu (Alan Scott Olson)\nSubject: Win NT - what is it???\nOrganization: Computing Services Division, University of Wisconsin - Milwaukee\nLines: 18\nDistribution: usa\nNNTP-Posting-Host: 129.89.7.4\nOriginator: alanchem@csd4.csd.uwm.edu\n\nTwo-part question:\n\n1)  What is Windows NT - a 'real' windows OS?\n\n2)  This past weekend, a local 'hacker' radio show metioned a new product\n    from Microsoft called 'Chicago' if I recall.  Anyone know what this is?\n\nThat is it -\n\nThanks a heap.\n\n- Alan\n\n-- \n ______________/ Alan S. Olson  Swanson Environmental, Inc. \\_________________\n/     e-mail to alanchem@csd4.csd.uwm.edu  OR  alan@alchemy.chem.uwm.edu      \\\n|          Want some good music?  Check out Milwaukee's own BoDeans           |\n+-----------------------------------------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4764, "properties": {"category": "comp.windows.x", "text": "From: mlee@eng.sdsu.edu (Mike Lee)\nSubject: Post script viewer\nOrganization: San Diego State University Computing Services\nLines: 8\nNNTP-Posting-Host: eng.sdsu.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nHello, recently I have been printing out a lot of files on school's laser printer and feeling guilty about it.  Please help me by showing me where to get a post script viewer for X-windows.  Thank you for your help.\n\n\n\n\n\nA student trying to enhence his cybernatic ability.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4765, "properties": {"category": "soc.religion.christian", "text": "From: shellgate!llo@uu4.psi.com (Larry L. Overacker)\nSubject: Re: The arrogance of Christians\nOrganization: Shell Oil\nLines: 109\n\nIn article <Apr.13.00.08.35.1993.28412@athos.rutgers.edu> caralv@caralv.auto-trol.com (Carol Alvin) writes:\n>vbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) writes:\n>>In article <Apr.10.05.32.29.1993.14388@athos.rutgers.edu> caralv@caralv.auto-trol.com (Carol Alvin) writes:\n>> > ...\n>> >\n>> >Are all truths also absolutes?\n>> >Is all of scripture truths (and therefore absolutes)?\n>> >\n>> The answer to both questions is yes.\n>\n>Perhaps we have different definitions of absolute then.  To me,\n>an absolute is something that is constant across time, culture,\n>situations, etc.  True in every instance possible.  Do you agree\n>with this definition?  I think you do:\n>\n>> Similarly, all truth is absolute.  Indeed, a non-absolute truth is a \n>> contradiction in terms.  When is something absolute?  When it is always\n>> true.  Obviously, if a \"truth\" is not always \"true\" then we have a\n>> contradiction in terms.  \n\nI agree with Carol here.  Determining absolutes is, practically speaking, a\nwaste of time.  And we easily forget that relative truth is, in fact relative.\n\nFor example, I recently was asking some children the question \"What temperature\ndoes water boil at?\"  I got the answer 212 degrees consistently.  I asked\nif they knew what scale, and was told \"It's just 212 degrees.  Any scale.\nThat's what all thermometers say.\"  Well, that's sincere, and may be\ntrue in the experience of the speaker, but it is simply wrong.  IT is NOT\nan absolute truth.  Similarly, Scripture is full of Truth, which we should\nnurture and cherish, but trying to determine which parts are Absolute Truth\nand which parts are the manifestations of that in the context of the time\nand culture in which the text was penned is missing the point.  Then religion\neasily becomes an intellectual head-trip, devoid of the living experience of \nthe indwelling Trinity and becomes dead scholasticism, IMO.\n \n[example of head-covering in Church deleted]\n\nThis was a good example.  There may be an Absolute Truth behind the\nwriting, but the simplest understanding of the passage is that the\ninstructions apply to the Corinthians, and not necessarily elsewhere.\nThe instructions may reflect Absolute Truth in the context of first\ncentury culture and the particular climate at Corinth, which was having\na LOT of trouble with order. Is it Absolute Truth to me?  No.  And I \nsee no compelling, or even reasonable, reason that it should be.\n \n>Evangelicals are clearly not taking this particular part of scripture \n>to be absolute truth.  (And there are plenty of other examples.)\n>Can you reconcile this?\n\nEven the most die-hard literalists do not take all of the Bible literally.\nI've yet to meet anyone who takes the verse \"blessed is he who takes your\nbabies and smashes their heads against the rocks\" literally.  The Bible\nwas not printed or handed to us by God with color codings to tell us\nwhat parts should be interpreted which way. \n \n>> Many people claim that there are no absolutes in the world.  Such a\n>> statement is terribly self-contradictory.  Let me put it to you this\n>> way.  If there are no absolutes, shouldn't we conclude that the statement,\n>> \"There are no absolutes\" is not absolutely true?  Obviously, we have a\n>> contradiction here.\n>\n>I don't claim that there are *no* absolutes.  I think there are very\n>few, though, and determining absolutes is difficult.\n\nI agree.  Very few.  And even if we knew them, personally, we may not be \nable to express that in a way that still conveys Absolute Truth to another.\nThe presence of absence of Absolutes may not make any difference, since I\nknow I can never fully apprehend an Absolute if it walks up and greets me.\n>\n>> >There is hardly consensus, even in evangelical \n>> >Christianity (not to mention the rest of Christianity) regarding \n>> >Biblical interpretation.\n>> \n>> So?  People sometimes disagree about what is true. This does not negate \n>> the fact, however, that there are still absolutes in the universe.  \n\nI can't prove the existence of absolutes.  I can only rely upon MY experience.\nI also trust God's revelation that WE cannot fully comprehend the infinite.\nTherefore we can't comprehend the Absolutes.  So I don't need them.  \nI can never know the essence of God, only the energies by and through which\nGod is manifested to God's creation.  So the reality can be that there ARE\nabsolutes, but it is of no practical importance.  It's like claiming that the\noriginal scriptural autographs were perfect, but copies may not be.  Swell.\nWho cares?  It doesn't affect me in any practical useful way.  I might as \nwell believe that God has made a lot of electric blue chickens, and that they\nlive on Mars.  Maybe God did.  So what? Is that going to have ANY effect on \nhow I deal with my neighbor, or God?  Whether or not I go to this or that\ncafeteria for lunch?  No.  \n\nThis attitude leads many non-Christians to believe that ALL Christians\nare arrogant idiots incapable of critical reasoning.  Christianity is true,\nwonderful and sensible.  It appeals to Reason, since Reason is an inner\nreflection of the Logos of God.  Explanations that violate that simply\nappear to be insecure authoritarian responses to a complex world.\n\nNOTE:  I'm NOT claiming there is no place for authority. That'd be silly.\n       There IS a world of difference between authoritative and authoritarian.\n       Authoritative is en expression of authority that respects others.\n       Authoritarian is en expression of authority that fails to do that,\n       and is generally agressive.  Good parents (like God) are authoritative.\n       Many Christians are simply authoritarian, and, not surprisingly, few \n       adults respond to this treatment.\n\nLarry Overacker (llo@shell.com)\n-- \n-------\nLawrence Overacker\nShell Oil Company, Information Center    Houston, TX            (713) 245-2965\nllo@shell.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4766, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: DOS 6.)\nFrom: darren.lavallee@cld9.sccsi.com (Darren Lavallee)\nDistribution: world\nOrganization: C-9 Comm. (CloudNine BBS) 713-855-4382\nLines: 11\n\n@EID:B486 85210000\nI have a 120 mb hard drive. What should I set the compression ratio at\nusing DOS'S double disk? Do I have to format erase everything to double\nthe full 120 mb to 240? Can I just make a mirror of my hard drive? Thanx\n4 the help!\n\nDarren Lavallee\n\n\n--- WM v2.08/92-0279\n * Origin: 705-256-CSRN 35,000+ FILES, 6 Lines, INTERNET/USENET, 1(1:222\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4767, "properties": {"category": "talk.religion.misc", "text": "From: david@terminus.ericsson.se (David Bold)\nSubject: Re: Question for those with popular morality\nReply-To: david@terminus.ericsson.se\nDistribution: world\nOrganization: Camtec Electronics (Ericsson), Leicester, England\nLines: 50\nNntp-Posting-Host: bangkok\n\nPaul Hudson Jr (hudson@athena.cs.uga.edu) writes:\n\n>I was not directly going to come up with a moral argument for the  existence\n>of God.  Rather, I was trying to show the absurdity of atheistic materialist\n>relatavists trying to embrace some common moral system as though it were\n>absolute.  Man knows in his heart that there is right and wrong.  We have\n>all inherited this knowledge.  \n\nNo matter how \"absurd\" it is to suggest that a common moral system created by\nmankind is absolute, it is not contrary to reason to suggest that a common\nmoral system created by mankind is sensible. In fact, for the Bible to be of\nany use to mankind as a moral code, it must be interpreted by mankind and a\nworkable moral system created for everyday use.\n\nThe Jewish Talmud is the result of centuries of Biblical scholars analysing\nevery word of the Torah to understand the morality behind it. The Children of\nIsrael were given a very strict set of Moral, Civil, Judicial and Ceremonial\nLaws to follow and yet this was clearly not enough to cover every instance\nof moral dilemma in their Society. For a Christian, the situation is no better.\n\nIt seems to me that the only code of morality that we have from the Judeo-\nChristian God is that which is contained in the Bible (which we can see from\nthe diverse opinions in the Christian newsgroups is not clear). There may well\nbe an absolute morality defined by the Judeo-Christian God for mankind to\nfollow but it seems that we only have a subset simply because the concept was\nwritten down by man.\n\nThis leads to the problem of defining morality for our society. If we take the\ndivine Morality then we have a code of practice which may be interpreted in many\ndifferent ways (as an example, consider the immolation of heretics in the\nfifteenth century and the interpretation of the Bible which allows a man to do\nthat to another man under the precept to administer Justice). If we take an\nagnostic Morality then we have a code of practice that can be modified to suit\nsociety (with all the danger that this implies). Alternatively, we could take\nthe basis of the Judeo-Christian morality and interpret/extend this to create\nand justify a code of morality which suits the society we live in and enables\nthe people to live Righteously (as many Christian and Non-Christian philosophers\nhave done).\n\nWhatever the driving force behind the definition of morality for our society, I\nthink the important aspect is the result.\n\nDavid.\n\n---\nOn religion:\n\n\"Oh, where is the sea?\", the fishes cried,\nAs they swam its clearness through.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4768, "properties": {"category": "sci.med", "text": "From: kfl@access.digex.com (Keith F. Lynch)\nSubject: Glutamate\nOrganization: Express Access Public Access UNIX, Greenbelt, Maryland USA\nLines: 10\nNNTP-Posting-Host: access.digex.net\n\nIn article <lso15qINNkpr@news.bbn.com> sher@bbn.com (Lawrence D. Sher) writes:\n> From the N.E.J.Med.  editorial:  \"The dicarboxylic amino acid glutamate\n> is not only an essential amino acid ...\n\nGlutamate is not an essential amino acid.  People can survive quite well\nwithout ever eating any.\n-- \nKeith Lynch, kfl@access.digex.com\n\nf p=2,3:2 s q=1 x \"f f=3:2 q:f*f>p!'q  s q=p#f\" w:q p,?$x\\8+1*8\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4769, "properties": {"category": "rec.autos", "text": "From: schludermann@sscvx1.ssc.gov\nSubject: RFI:Art of clutchless shifting\nLines: 18\nNntp-Posting-Host: sscvx1\nOrganization: Superconducting Super Collider Laboratory\n\nI'm wondering if anybody else out there is a clutchless shifter? I've been\ndoing it my self over 200,000 miles, on my current toyota truck I've got\nover 150k. I've heard people talk about how doing this can damage a\ntransmission. My experiences suggest otherwise. What techniques do you use?\n\nOn some old pieces of junk I drove, the transmission was so\nworn that pumping the clutch was the only way to shift, except clutchless.\nTo date I've driven rabbits, datsuns, comets, fords & a chevy. Some where\nharder than others to shift but generally the higher the milage the smoother\nquicker & easier they where to shift.\n\nMy technique is to ease back off the throttle and at the same time gently\nwrist back on the shift lever. If for some reason I miss the shift window,\nI lightly press the accelerator & try agian. I've found that clutchless\nshifting is eaiser/quicker at high rpms (4000-7000). I also skip gears some\ntimes using 1-3-5 ,1-2-4-5. \n\nkrispy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4770, "properties": {"category": "talk.politics.misc", "text": "From: s0xjg@exnet.co.uk (Xavier Gallagher)\nSubject: Re: So Why Does Clayton Cramer Fixate on Molesting Children\nOrganization: ExNet Systems Ltd Public Access News, London, UK\nLines: 32\n\nIn article <93093.073457RIPBC@CUNYVM.BITNET> RIPBC@CUNYVM.BITNET writes:\n>From: cramer@optilink.COM (Clayton Cramer)\n>-\n>-2. The homosexuals have gotten a law passed in California that\n>-makes it illegal to discriminate against a person in employment\n>-based on their sexual orientation -- and not defined sexual\n>-orientation.  Pedophilia is a sexual orientation.\n>-\n>\n\n\n\n\n\nGOT HIM!  Cramer is now claiming that pedophilia is a sexual orientation\nrather than a chronicly homosexual condition.  This changes the whole\nargument in as much that is pedophilia is a sexual orientation all\nof its own peds cannot be called homosexual.  Peds are peds who\nmay have a preference as to the sex of the child they molest (though\nmost do not have a preference) but that is a subset of their basic\nped nature.\n\nCramer has as much as admitted that peds and gay men are different\norientations.  All we need now is to get him to admit that\nthe apparent similarities he keeps on about are just optical illusions.\n\nxavier\n-- \n* Xavier Gallagher*************************** Play  ***************************\n*     Cheap       * Part time Dark Overlord *  by   ** s0xjg@exnet.co.uk ******\n* World Wide UUCP *    Of the universe      * email ***************************\n* Feeds & E-mail  *************************** =-->  Advanced Dungeons & Dragons\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4771, "properties": {"category": "soc.religion.christian", "text": "From: wagner@grace.math.uh.edu (David Wagner)\nSubject: Re: Deuterocanonicals, esp. Sirach\nOrganization: UH Dept of Math\nLines: 53\n\nddavis@cass.ma02.bull.com (Dave Davis)\nwrites:\n\n \tII. The deuterocanonicals are not in the canon because\n \t\tthey are not quoted by the NT authors.\n\nThat is not quite accurate.  Otherwise we would have the book\nof Enoch in the canon (as Dave noted).  One can say that the \napocrypha are not quoted by Christ.  \n\nDave also writes:\n\nIII. The deuterocanonicals are not in the canon because\n \t\tthey teach doctrines contrary to the (uncontroverted)\n \t\tparts of the canon.\n \n \tthen I answer: \n \t\tThese is a logically invalid *a priori*. \n \t\tBesides, we are talking about OT texts- \n \t\twhich in many parts are superceded by the NT\n \t\t(in the Xtian view). Would not this same\n \t\tprinciple exclude _Ecclesiastes_?\n \t\tThis principle cannot be consistently applied.\n \nI have to reject your argument here.  The Spirit speaks with one\nvoice, and he does not contradict himself.  \n\nThe ultimate test of canonicity is whether the words are inspired\nby the Spirit, i.e., God-breathed.  It is a test which is more\nguided by faith than by reason or logic.  The early church decided\nthat the Apocrypha did not meet this test--even though some books\nsuch as The Wisdom of Ben Sirach have their uses.  For example,\nthe Lutheran hymn \"Now Thank We All Our God\" quotes a passage\nfrom this book.\n\nThe deutero-canonical books were added much later in the church's\nhistory.  They do not have the same spiritual quality as the\nrest of Scripture.  I do not believe the church that added these\nbooks was guided by the Spirit in so doing.  And that is where\nthis sort of discussion ultimately ends.\n\nDavid H. Wagner\na confessional Lutheran\t\t\"Now thank we all our God\n\t\t\t\tWith heart and hands and voices,\n\t\t\t\tWho wondrous things hath done,\n\t\t\t\tIn whom His world rejoices;\n\t\t\t\tWho from our mother's arms\n\t\t\t\tHath blessed us on our way\n\t\t\t\tWith countless gifts of love,\n\t\t\t\tAnd still is our today.\"\n\t\t\t\t--\"Nun danket alle Gott\", v. 1\n\t\t\t\t--Martin Rinckart, 1636\n\t\t\t\t(compare Ben Sirach 50: 22-24)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4772, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Re: was: Go Hezbollah!!\nOrganization: University of Illinois at Urbana\nLines: 44\n\namehdi@src.honeywell.com (Hossien Amehdi) writes:\n\n>In article <C5HuBA.CJo@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n>>amehdi@src.honeywell.com (Hossien Amehdi) writes:\n>>\n>>>You know when Israelis F16 (thanks to General Dynamics) fly high in the sky\n>>>and bomb the hell out of some village in Lebanon, where civilians including\n>>>babies and eldery getting killed, is that plain murder or what?\n>>\n>>If you Arabs wouldn't position guerilla bases in refugee camps, artillery \n>>batteries atop apartment buildings, and munitions dumps in hospitals, maybe\n>>civilians wouldn't get killed.  Kinda like Saddam Hussein putting civilians\n>>in a military bunker.  \n>>\n>>Ed.\n\n>Who is the you Arabs here.  Since you are replying to my article you\n>are assuming that I am an Arab.  Well, I'm not an Arab, but I think you\n>are brain is full of shit if you really believe what you said.  The\n>bombardment of civilian and none civilian areas in Lebanon by Israel is\n>very consistent with its policy of intimidation.  That is the only\n>policy that has been practiced by the so called only democracy in\n>the middle east!\n\nWhat the hell do you know about Israeli policy?  What gives you the fiat\nto look into the minds of Israeli generals?  Has this 'policy of intimidation'\nbeen published somewhere?  For your information, the actions taken by Arabs,\nspecifically the PLO, were not uncommon in the Lebanon Campaign of 1982.  My\nbrain is full of shit?  At least I don't look into the minds of others and \nmake Israeli policy for them!\n\n>I was merley pointing out that the other side is also suffering.\n>Like I said, I'm not an Arab but if I was, say a Lebanese, you bet\n>I would defende my homeland against any invader by any means.\n\nYeah, yeah, yeah.  We all suffer.  It's too bad that civilians get killed but\nI will blame their Arab leaders who put them in positions of danger before I\nwill blame the Israelis.  Just like Palestinians who send their children into\nwarzones to throw rocks at armed Israeli soldiers.  What irresponsible parents!\nAs Golda Meir said, peace will only come when the Arabs start loving their\nchildren more than they hate the Jews.\n\nEd.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4773, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rkimball@athena.qualcomm.com (Robert Kimball)\nSubject: VLB bus master problem?\nSummary: Is there a problem with VLB and bus master devices?\nKeywords: VLB Bus Master Controller SCSI\nOrganization: Qualcomm, Inc., San Diego, CA\nLines: 16\nNntp-Posting-Host: athena.qualcomm.com\n\nI am trying to put together a new PC with VESA Local Bus.  I would like\nto get VLB cards for Video and SCSI but I have heard of a problem with\nbus mastering controllers on VLB.  Something to the effect that they will\nactually slow down a system.  Anyone heard of this problem?\n\nSpecifically, I am interested in the Ultrastor 34F VLB SCSI controller.\nBefore I shell out the bucks for this thing I would like to get the\nstraight scoop from someone who knows.  Does anyone have this controller?\nAny problems with it?\n\n\n-- \n\n\nBob Kimball\nrkimball@qualcomm.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4774, "properties": {"category": "comp.windows.x", "text": "From: mcc@timessqr.gc.cuny.edu (George McClintock)\nSubject: Re: XDM & DECnet ?\nIn-Reply-To: mahan@TGV.COM's message of 21 Apr 1993 00:59:04 -0400\nOrganization: Graduate School and University Center, C.U.N.Y, New York\nLines: 24\n\nWhile I cannot answer questions about running XDM over a DECnet, I can\nsay that the following defines must be added to the site.def before\nbuilding R5 before any X clients will work over a DECnet.\n\nFrom site.def\n\n#define ConnectionFlags -DTCPCONN -DUNIXCONN -DDNETCONN\n#define ExtraLibraries -ldnet\n\nHoping this helps,\n\nGeorge\n\n--\n/*******************************************************************\n* The opinions expressed are those of the author and in no way     *\n* represent the opinions of the CUNY Graduate School, its agencies *\n* or personnel.  mcc@timessqr.gc.cuny.edu  ||  CMCGC@CUNYVM.BITNET *\n*******************************************************************/\n-- \n/*******************************************************************\n* The opinions expressed are those of the author and in no way     *\n* represent the opinions of the CUNY Graduate School, its agencies *\n* or personnel.  mcc@timessqr.gc.cuny.edu  ||  CMCGC@CUNYVM.BITNET *\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4775, "properties": {"category": "talk.politics.mideast", "text": "From: ptg2351@uxa.cso.uiuc.edu (Panos Tamamidis )\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nArticle-I.D.: news.C5Jowp.KJG\nOrganization: University of Illinois at Urbana\nLines: 58\n\n<FINAID2@auvm.american.edu> writes:\n\n>                  Mr. Tamamidis:\n\n>Before repling your claims, I suggest you be kind to individuals\n>who are trying to make some points abouts human rights, discriminations,\n>and unequal treatment of Turkish minority in GREECE.I want the World\n>know how bad you treat these people. You will deny anything I say but\n>It does not make any difrence because I will write things that I saw with\n>my eyes.You prove yourself prejudice by saying free insurance, school\n>etc. Do you Greeks only give these things to Turkish minority or\n>everybody has rights to get them.Your words even discriminate\n>these people. You think that you are giving big favor to these\n>people by giving these thing that in reality they get nothing.\n\n No. I do not thing we are doing them a favor.  I have simply stated that\n they are not treated as a second class citizens. That was my point.\n I fail to see how my words show discrimination. And what do you mean that\n they do not get nothing? Is, for example, helth insurance, food, and tuition\n nothing?\n\n>If you do not know unhuman practices that are being conducted\n>by the Government of the Greece, I suggest that you investigate\n>to see the facts. Then, we can discuss about the most basic\n>human rights like fredom of religion, fredom of press of Turkish\n>minority, ethnic cleansing of all Turks in Greece,fredom of\n>right to have property without government intervention,\n>fredom of right to vote to choose your community leaders,\n>how Greek Government encourages people to destroy\n>religious places, houses, farms, schools for Turkish minority then\n>forcing them to go to turkey without anything with them.\n\n I'm sorry, but I cannot see any logical order in the above argument.\n\n>Before I conclude my writing, let me point out how Greeks are\n>treated in Turkey. We do not consider them Greek minority, instead\n>we consider a part of our society.\n\n What part exactly is this one? The people cannot even sell their property\n if they want to leave Turkey.  The patriarch could not get a permision to\n renovate some buildings for decades; it needed a special agreement between\n the two goverments for this. Talk about a part of the society? Why has the\n size of the Greek community reduced to 1,500 old people and priests then?\n\n>There is no difference among people in Turkey.\n\n Yeah, you bet.\n\n>All big businesses\n>belong to Greeks in Turkey and we are proud to have them.unlike the\n>Greece which tries to destroy Turkish minority, We encourage all\n>minorities in Turkey to be a part of Turkish society.\n\n You are far off from the reality.\n\n>Aykut Atalay Atakan\n\n Panos Tamamidis\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4776, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: Mental Illness\nOrganization: University of Wisconsin Eau Claire\nLines: 13\n\n[reply to dabbott@augean.eleceng.adelaide.edu.AU (Derek Abbott)]\n \n>Are there any case histories of severe mental illness cases remarkably\n>recovering after a tragic accident or trauma (eg. through nobody's fault,\n>being trapped in a fire and losing your legs, say)?\n \nI know of a patient who was severely and chronically depressed and tried\nto kill himself with a bullet to the temple.  He essentially gave\nhimself a prefrontal lobotomy, curing the depression.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4777, "properties": {"category": "misc.forsale", "text": "From: ibeshir@nyx.cs.du.edu (Ibrahim)\nSubject: Terminal for sale\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nDistribution: usa\nLines: 5\n\nI have a vt200 and vt100 compatible terminal\nwith 1200 external hyess modem\namber screens 101 keyboard,cable\nmake an offer\n0\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4778, "properties": {"category": "talk.politics.guns", "text": "From: HADCRJAM@admin.uh.edu (MILLER, JIMMY A.)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: University of Houston Administrative Computing\nLines: 37\nDistribution: world\nNNTP-Posting-Host: uhad2.admin.uh.edu\nX-News-Reader: VMS NEWS 1.24\nIn-Reply-To: jmd@cube.handheld.com's message of 20 Apr 1993 12:34:13 GMT\n\nIn <1r0qk5INNc5m@clem.handheld.com> jmd@cube.handheld.com writes:\n\n> In article <C5rynw.Iz8@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n> writes:\n> > I balance my gut reaction to question authority together with the \n> > independent facts as I see them on video.  I usually adopt the \n> > scenario that is simplest and most plausible.  I do not generally \n> > believe in conspiracy theories that involve complicated and unlikely \n> > scenarios.\n> > \n> Then answer the question:  Why was NO ONE ELSE permitted to talk to Koresh, \n\n  Koresh had a lawyer, Deguin(?) who he spoke to in person several times during\nthe last few weeks. \n\n> It cannot be denied that if they had left them alone, there would have been \n>no fire yesterday.\n\n  This strikes me as a tad ingenous.  \"If X had done/note done Y, then Z would\nnever have happened.\"  I tend to place tha responsibility on the group/person\nactually committing the act, not on those whon \"forced them to do it\".\n\n  After all, to take an extreme example, if the British were not in Northern\nIreland, the IRA would not be forced to place bombs in shopping centers.\n\n  That said, this whole sorry story was a totally unecessary, utterly fucked\nup mess from the get go.\n\nsemper fi,\n\nJammer Jim Miller \nTexas A&M University '89 and '91\n________________________________________________________________________________\n I don't speak for UH, which is too bad, because they could use the help.     \n\"Become one with the Student Billing System. *BE* the Student Billing System.\"\n \"Power finds its way to those who take a stand.  Stand up, Ordinary Man.\"    \n      ---Rik Emmet, Gil Moore, Mike Levine: Triumph \t\t              \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4779, "properties": {"category": "alt.atheism", "text": "From: \"Robert Knowles\" <p00261@psilink.com>\nSubject: Re: Amusing atheists and agnostics\nIn-Reply-To: <timmbake.735175045@mcl>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Kupajava, East of Krakatoa\nX-Mailer: PSILink-DOS (3.3)\nLines: 19\n\n>DATE:   18 Apr 93 23:17:25 GMT\n>FROM:   Bake Timmons <timmbake@mcl.ucsb.edu>\n>\n>\tThese Bible-lovers have got to chill out.  If we all could just relax\n>and see atheism for what it is, the funny pages could have more material.\n>\n>\tAtheism denies the existence of God.  This is logically bankrupt --\n>where is the proof of this nonexistence?  It's a joke.\n>\n>\tSo nobody can take the above sense of atheism seriously.  Perhaps\n\nPerhaps because you just made it up?\n\nNow put your skateboard away and read the FAQ.  Learn something about atheism\nbefore you get off on these tangents.\n\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.230+0000", "event": "documents", "entityId": 4780, "properties": {"category": "comp.sys.mac.hardware", "text": "From: especkma@reed.edu (Erik. A Speckman)\nSubject: What is  \"ROM accelerated video\"?\nArticle-I.D.: reed.1993Apr15.182206.12714\nOrganization: Reed College, Portland, OR\nLines: 11\n\nIn the MacUser article on the new centris and quadra machines mentioned\nthat the C650 and the Q800, and not the C610, had ROM accelerated video.\n\nIt didn't seem to make much difference in their \"benchmark\" test.\n\nWhat is it?  I don't recall seeing it in Dale Adams post.\n\n-Erik Speckman\n\nP.S.  could someone tell me if Dale's posts on video and memory are\narchived somewhere.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4781, "properties": {"category": "rec.autos", "text": "From: shantanu@risc.sps.mot.com (Shantanu Ganguly)\nSubject: Re: Are BMW's worth the price?\nOrganization: Motorola, Inc. -- Austin,TX\nLines: 86\nNNTP-Posting-Host: daffy.sps.mot.com\n\nIn article <9866@ceylon.gte.com> hhd0@harvey.gte.com (Horace Dediu) writes:\n>In article <1pvjlnINNckf@daffy.sps.mot.com>, shantanu@risc.sps.mot.com (Shantanu Ganguly) writes:\n\n>|> \n>|> Some comments:\n>|> \n>|> a) Good performance and mid and high speeds can be obtained by adjusting the\n>|>    top gear and final drive ratios. Contrary to popular misperception, a \n>|>    number of Japanese cars have quite good performance from 70+ in top\n>|>    gear. \n>\n>No problem with that.  The question is:  do they perform consistently in all\n>conditions (roads, winds and curves) at that speed and do so for hours on end, \n>year after year without giving the driver white knuckles?  From my experience on \n>the Autobahns/Autostrade, a good touring car can be easily distinguished by its \n>\"poise\" at >100mph.  The best stay on cruise control at 155 for hours.  I've\n>seen the typical boy racer in a Fiat try to keep up.  Sure they hit the century\n>mark, but if the wind blows the wrong way they change lanes, and if on an\n>overpass, they may fly right into a guardrail.  The buffeting at 125 can be\n>severe enough to  make the hood bend.  Tires at 155 can melt, and a pothole can\n>kill.  Many German cars are designed for this environment, even if they can't\n>seem to get out of their own way from a stop light (Mercedes come to mind in\n>particular.)  And another design point is fuel economy at those speeds.  The\n>Germans gear the car for very good high speed efficiency (a typical M-B 300E turns\n>1500 at 55, almost a stall :-)\n\nGood point. I have no idea how either of my Hondas will handle at 100+ mph,\nnor do they reach 155. However, using `high' to be 70-90 mph:\n\na) They are quite amenable to long high speed drives. I've done several\n1k mile+ trips in my Civic with no problems whatsoever. The last big trip\nI made was driving from New York to Texas. I remember driving 700-800\nmiles a day at typically 75-85 mph  without any problems. I'm sure I  \nwould have been more comfortable driving a benz, but no white knuckles.\nNo problems with winds and curves. \n\nThen there was the trip back from New Orleans after Mardi Gras - where\nwe were doing 80+ all the way to Houston. No problems.\n\nb) Both my cars have surprising good fuel economy at high speeds. I see\nno difference between sustained 60 mph and sustained 80mph. On the trip\nback from New Orleans, we got about 30 mpg in my Integra, quite ok. Mind\nyou, the engine revs to almost 4k at 80. The civic is markedly better\nthan the Integra in fuel economy. 50k miles down the road, I still\nget 35 mpg at 70-75 mph driving.\n\n\n>|> b) I can't understand why these high-scale European marquees are afraid\n>|>    to design engines that can be repeatedly revved to near redline in\n>|>    the low gears. I have been doing that for that last 50k miles with\n>|>    my lowly Civic, with no detriment to either the engine or the clutch,\n>|>    and getting excellent mpg to boot. I'd call this an engineering hack\n>|>    to cover up design deficiencies.\n>\n>At 50k miles you'd still be breaking-in a \"high-scale European marquee\"  They \n>typically are designed to last 300,000 miles per engine, 500,000 mi. per\n>chassis. (The record is now over 1,500,000 miles on a Benz diesel, and I've\n>read about *transmissions* lasting 700,000 miles.)  Speaking of\n\nNow now, you can't compare a diesel with a gasoline engine. I see enough\nbmws and gasoline mercs for sale that have 100-150k miles on them and advertise \nrebuilt engines. If honda was to build an accord for 30k, I'd darn well\nexpect the sucker to last 300k miles.\n\n>diesels, they have very good efficiency at the cost of acceleration, and are very\n>popular in all European cars (diesel is considered the \"green\" fuel) from the\n>smallest econoboxes to the luxo-barges.  Again, we see a difference in mentality.\n>Diesels in the US are considered slightly worse than useless, and extremely\n>\"dirty\" to boot so you can't give them away.\n\nEver got caught behind a early 80's 300SDL at a stop light? It's not\npleasant. The newer MB's are a lot better though. The diesel Volvos\nand VWs are probably the smelliest offenders.\n\nAs for economy, why should we care? Gas is cheap! I personally wouldn't\nbuy a diesel car for any reason - what does it buy me?\n\nShantanu Ganguly\nSomerset (Motorola)\n\nphone : (512) 795-7146                  Motorola Inc, Mail Drop OE 513\nfax   : (512) 795-7513                  6501 William Cannon Drive W.\n                                        Austin TX 78735-8598\nemail : shantanu%ibmoto.com@oakhill.sps.mot.com\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4782, "properties": {"category": "sci.space", "text": "From: asimov@wk223.nas.nasa.gov (Daniel A. Asimov)\nSubject: Re: Sunrise/ sunset times\nOrganization: NAS, NASA Ames Research Center, Moffett Field, California\nLines: 19\n\nIn article <1993Apr21.141824.23536@cbis.ece.drexel.edu> jpw@cbis.ece.drexel.edu (Joseph Wetstein) writes:\n>\n>Hello. I am looking for a program (or algorithm) that can be used\n>to compute sunrise and sunset times.\n>\n>Joe Wetstein\n\nThere is a wonderful book by Jean Meeus called\n\"Astronomical Algorithms,\" (1991) which I am fairly sure\ncontains an algorithm for sunrise and sunset times.\n\n\nDan Asimov\nMail Stop T045-1\nNASA Ames Research Center\nMoffett Field, CA 94035-1000\n\nasimov@nas.nasa.gov\n(415) 604-4799\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4783, "properties": {"category": "talk.politics.guns", "text": "Subject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nFrom: steiner@jupiter.cse.utoledo.edu (Jason 'Think!' Steiner)\nNntp-Posting-Host: jupiter.cse.utoledo.edu\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 26\n\nBrent Irvine (irvine@uxh.cso.uiuc.edu) writes:\n> cdt@sw.stratus.com (C. D. Tavares) writes:\n> >mfrhein@wpi.WPI.EDU (Michael Frederick Rhein) writes:\n> >\n> >> >napalm, then let the wood stove inside ignite it.\n> >>                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> >> As someone else has pointed out, why would the stove be in use \n> >> on a warm day  in Texas. \n> >\n> >Do YOU eat all your food cold?\n\n> Ever hear of electric ovens or microwaves?  Very popular.\n> Electric stoves outside metro-areas especially.\n\noh, i see. electricity is a natural right & our wonderful government\nwould -never- cut off the power to the people they were besieging.\nare you really this dumb, or just acting like it for the sake of\nargument?\n\njason\n\n--\n`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`\n`,` \"True love is better than anything, except cough drops.\"            `,`\n`,`                     - The Princess Bride (book), by William Goldman `,`\n`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,` steiner@jupiter.cse.utoledo.edu `,`,`,`\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4784, "properties": {"category": "sci.med", "text": "From: wright@duca.hi.com (David Wright)\nSubject: Re: Name of MD's eyepiece?\nOrganization: Hitachi Computer Products, OSSD division\nLines: 21\nNNTP-Posting-Host: duca.hi.com\n\nIn article <19387@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>In article <C4IHM2.Gs9@watson.ibm.com> clarke@watson.ibm.com (Ed Clarke) writes:\n>>|> |It's not an eyepiece.  It is called a head mirror.  All doctors never\n>>\n>>A speculum?\n>\n>The speculum is the little cone that fits on the end of the otoscope.\n>There are also vaginal specula that females and gynecologists are\n>all too familiar with.\n\nIn fairness, we should note that if you look up \"speculum\" in the\ndictionary (which I did when this question first surfaced), the first\ndefinition is \"a mirror or polished metal plate used as a reflector in\noptical instruments.\"\n\nWhich doesn't mean the name fits in this context, but it's not as far\noff as you might think.\n\n  -- David Wright, Hitachi Computer Products (America), Inc.  Waltham, MA\n     wright@hicomb.hi.com  ::  These are my opinions, not necessarily \n     Hitachi's, though they are the opinions of all right-thinking people\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4785, "properties": {"category": "rec.sport.hockey", "text": "From: grogers@slacvx.slac.stanford.edu (Greg Rogers)\nSubject: Hockey on TV in the Bay area, NOT!\nReply-To: grogers@slacvx.slac.stanford.edu (Greg Rogers)\nOrganization: Stanford Linear Accelerator Center\nLines: 9\n\nHi all,\n\nI don't get the sport's channel and I'm desparate for some playoff action\n(especially the Cannucks).  Does anyone know of a sports bar on the Bay\nPeninsula that will be showing hockey games.  I'm looking for something \nbetween redwood City and Mountain View.\n\nThanks a lot,\nGreg\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4786, "properties": {"category": "talk.politics.mideast", "text": "From: dzk@cs.brown.edu (Danny Keren)\nSubject: Hamza Salah, the Humanist\nOrganization: Brown University Department of Computer Science\nLines: 13\n\ncl056@cleveland.Freenet.Edu (Hamaza H. Salah) writes:\n\n# Well said Mr. Beyer :)\n\nHe-he. The great humanist speaks. One has to read Mr. Salah's posters,\nin which he decribes Jews as \"sons of pigs and monkeys\", keeps\npromising the \"final battle\" between Muslims and Jews (in which the\nstons and the trees will \"cry for the Muslims to come and kill the\nJews hiding behind them\"), makes jokes about Jews dying from heart\nattacks etc, to realize his objective stance on the matters involved.\n\n-Danny Keren.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4787, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Young Catchers\nFrom: rsmith@strobe.ATC.Olivetti.Com (Russ Smith)\nOrganization: Olivetti ATC; Cupertino CA, USA\nLines: 27\n\nIn article <mssC52qMx.768@netcom.com> mss@netcom.com (Mark Singer) writes:\n>Now, Keith Mitchell.  As I recall (no stat books handy - surprise!)\n>he jumped from AA to Atlanta in 1991.  He did so well that he was\n>returned to the minors, where he didn't do very well at all.  Now\n>his career is in jeopardy.  So how does he fit in with your \n>point.  Good MLE's in AA.  Moved him right to the big club.  Now\n>he's one step away from being traded or moved out of baseball.\n>Duh.\n\nMethinks you recall wrong. Mitchell hit close to .300 in Atlanta and \ncontinued to walk alot after his promotion. He was then (I think) left\noff the playoff roster, and started the next year in the minors where\neven the Braves will tell you he underperformed because he was so mad\nat going back down. \n\nhe struggled last year, no doubt, but even the Braves blamed part of it\non the demotion. I'd much rather have Mitchell than say Mark Whiten on\nthe Cards.\n\n\n\n\nRuss Smith\n*******************************************************************************\n\"I don't know anything about X's, but I know about some O.\"              \n                  George Gervin on being an assistant coach\n********************************************************************************\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4788, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rash@access.digex.com (Wayne Rash)\nSubject: Re: 17\" Monitors\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 20\nNNTP-Posting-Host: access.digex.net\n\nmikey@sgi.com (Mike Yang) writes:\n\n>In article <1qslfs$bm1@access.digex.net> rash@access.digex.com (Wayne Rash) writes:\n>>I also reviewed a new Nanao, the F550iW, which has just\n>>been released.\n\n>What's the difference between the F550i and the new F550iW?  I'm\n>about to buy a Gateway system and was going to take the F550i\n>upgrade.  Should I get the F550iW instead?\n\n>-----------------------------------------------------------------------\n>                 Mike Yang        Silicon Graphics, Inc.\n>               mikey@sgi.com           415/390-1786\n\nThe F550iW is optimized for Windows.  It powers down when the screen\nblanker appears, it powers down with you turn your computer off, and it\nmeets all of the Swedish standards.  It's also protected against  EMI from\nadjacent monitors. \n\nPersonally, I think the F550i is more bang for the buck right now.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4789, "properties": {"category": "comp.windows.x", "text": "From: sivap-s@cs.buffalo.edu (S. Suresh)\nSubject: Re: screen problem in unix/xwindows/solaris\nOrganization: UB\nLines: 16\nNntp-Posting-Host: talos.cs.buffalo.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nSHONKWILER R W (ma201rs@prism.gatech.EDU) wrote:\n: Experiment: From a Sun openwindows 4.1.3 xterm window log into a\n: Solaris 2.x machine using rlogin; now do an \"ls\" and get the first\n: character of each line display in the last column of the display\n: with the rest of the line wrapped to the next line of the display.\n\n: Log out and the condition persists.  Check stty all, try reset\n: with no effect.\n\nThe condition happens  when the TAB is not  set  to 8 spaces,  set and\nthen check out.\n\n-- \nSuresh Sivaprakasam                    \nDepartment of Computer Science,    SUNY Buffalo,    Amherst,   NY - 14260-0001\nInternet :sivap-s@cs.Buffalo.EDU               Bitnet : sivap-s@SUNYBCS.BITNET\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4790, "properties": {"category": "rec.motorcycles", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Shaft-drives and Wheelies\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 15\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, xlyx@vax5.cit.cornell.edu () says:\n\nMike Terry asks:\n\n>Is it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n>\nNo Mike.  It is imposible due to the shaft effect.  The centripital effects\nof the rotating shaft counteract any tendency for the front wheel to lift\noff the ground.\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4791, "properties": {"category": "rec.sport.hockey", "text": "From: c5ff@jupiter.sun.csd.unb.ca (COOK  Charlie)\nSubject: NHL Summary parse results for games played Mon, April 5, 1993\nArticle-I.D.: jupiter.1993Apr6.131610.17465\nOrganization: University of New Brunswick\nLines: 39\n\nHartford                         1 1 3--5\nNY Rangers                       1 2 1--4\nFirst period\n     1, Hartford, Cunneyworth 5 (Janssens, Greig) 12:21.\n     2, NY Rangers, Graves 34 (Turcotte, Zubov) 18:39.\nSecond period\n     3, NY Rangers, Kovalev 19 (Turcotte, Graves) 2:12.\n     4, Hartford, Sanderson 44 (Cassels) pp, 4:54.\n     5, NY Rangers, Amonte 30 (Andersson, Vanbiesbrouck) pp, 19:13.\nThird period\n     6, NY Rangers, M.Messier 25 (Amonte, Andersson) 2:26.\n     7, Hartford, Sanderson 45 (Cassels) sh, 5:23.\n     8, Hartford, Nylander 6 (Ladouceur) 8:35.\n     9, Hartford, Verbeek 36 (Zalapski) 17:43.\n\nHartford: 5    Power play: 4-1   Special goals:  pp: 1  sh: 1  Total: 2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nCassels            0    2    2\nCunneyworth        1    0    1\nGreig              0    1    1\nJanssens           0    1    1\nLadouceur          0    1    1\nNylander           1    0    1\nSanderson          2    0    2\nVerbeek            1    0    1\nZalapski           0    1    1\n\nNY Rangers: 4    Power play: 4-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAmonte             1    1    2\nAndersson          0    2    2\nGraves             1    1    2\nKovalev            1    0    1\nMessier M          1    0    1\nTurcotte           0    2    2\nVanbiesbrouck      0    1    1\nZubov              0    1    1\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4792, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss)\nSubject: 21 Apr 93   God's Promise in 2 Chronicles 15:2\nOrganization: University at Buffalo\nLines: 10\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\n\n\tAnd he went out to meet Asa,\n\tAnd said unto him,\n\tHear ye me, Asa,\n\tAnd all Judah and Benjamin;\n\tThe LORD is with you, while ye be with him;\n\tand if ye seek him, he will be found of you;\n\tbut if ye forsake him, he will forsake you.\n\n\t2 Chronicles 15:2\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4793, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Iowa State University, Ames IA\nLines: 125\n\nThomas Parsli <thomasp@ifi.uio.no> writes:\n\n>\tObservations from a naive norwegian:\n\nYup, you said it.  I admire such honesty. ;-)\n\n>\t1) Guns are made to KILL people, not to shoot target or to \n>\thave something more macho than stamps to collect.....\n\nFire an Anschutz .22, then come back and talk to us.  You're letting\nignorance and possibly fear cloud your thinking.  Either that, or this\nis sour grapes because we beat you in the Olympic shooting events.\nFunny, you'd think biathalon would be a natural sport for the norse. ;-)\n\n>\t2) It IS more easy to kill/injure someone with a gun than\n>\twith a knife or a bat (as in baseball).\n\nPrecisely.  That makes them the best method of defense for the citizenry.\nNot everybody has the time to train with a gladius, you know, but for\nsome reason those who prey on others seem to have more free time.  To\nextend this a bit further, you need only a certain level of competence\nto beat another with a range weapon.  Getting in their face with a\nweapon and winning is much more difficult, and requires more training\ntime the average citizen just does not have.  I've spent a few years\npracticing with a sword.  I can take the common person armed with one\n(though self-defense isn't the reason I own one).  My kid sister would\nhave an even chance of beating me, gun vs. gun, with only a month of\ntraining.  That makes firearms much better, in our eyes.\n\n>\t3) It's not very wise to compare two completely different\n>\tcountries like USA and, let's say, Island on issues like\n>\tcrime and violence.\n\nExcellent point.  Perhaps you aren't so naive after all?\n\n>\t4) Yes, the problem is  people committing crimes, not the tools\n>\tbeeing used, but 1) should be taken into concideration.\n\nTaken into consideration in what respect?  Though quite wrong, let's\nmake it a blanket statement for weapons in general.  This has been\ntaken into consideration.  We call use of them aggrivated assault,\nassault with a deadly weapon, assault with intent to kill, attempted\nmurder, and a whole host of others, and tack on extra prison time.\n\n>\tWe have a very strict gun-legislation in Norway, but until recently\n>\tit was possible for enyone over 18 years to buy a shotgun.\n>\tShotguns are used mainly for hunting in Norway(...), but because it\n>\twas so easy to accuire one, it was THE most used gun in crimes.\n\nIn Norway I suspect it was about the only weapon available.  You conquered\nyour land (among others) a full millenia before we were thought of, and\nshortly thereafter weapons weren't quite so common.  I suspect that a few\nworld wars made a difference too, since in times of emergency weapons\ntend to be turned in or donated to needy causes.  I'm curious, though,\nwere the weapons used in the crimes bought shortly before the crime, or\nwere they aquired by other means?  Any requirements other than just\nregistering the shotgun?\n\n>\tAnd -unbelievable- the use of guns in crime fell.....\n>\tThere are now a new law against wearing long knives in public,\n>\tand why should it be allowed ??\n\n\"Come on down to honest Erik's Used Swords!  Here's a slightly-used\nshort sword, *THE* battlefield supremacy weapon of the eleventh\ncentury!  Only $39.95 with trade-in.  Easy financing!\"  Sorry, I\ncouldn't resist.  You guys still slicing each other with long knives,\nor is this really not a problem?\n\n>\tWhat I, as an scandinavian, have problems to understand is that \n>\tyou (Americans) have a more liberal view on guns and violence\n>\tthan on nudity and sex.\n>\tTry showing a bare breast on tv insted of violence and murder...\n\nI'm all for that.  What gets me is that scandanavians (and yes, I'm only\na couple generations off the longship) used to be some of the most\nfeared warriors on the planet a mere millenia ago, yet now seem to\nspend their time sitting in spas and doing a bit of topless sunbathing.\nMaybe you had a bit more time, and a more homogeneous culture, to become\ncivilized with?\n\n>\tYes, I know a little American history, but is it a civil/human\n>\tright to have an assault gun in your home and/or an handgun\n>\tin your car??\n\nYes.  We're too damned violent, partially I believe because we are not\na homogeneous culture and don't identify ourselves as \"Americans\" first\nand foremost.  I'm rather proud of my Norwegian and Danish heritage,\nwhereas I suspect you couldn't care less about that 2% Welsh blood in\nyour veins thanks to a raid in Ireland back in 1055?  The time scale\nand the homogeneous culture are important.  Equally important is a\nbasic philosophical difference in personal versus collective good.\nIn America, the individual is more important than the masses.  Personal\nliberties are prized above all.  This is, sadly, changing of late, but\nI trust you notice how this call for freedom makes laws that restrict\nindividuals for little collective benefit hateful to Americans.  I'd\nhazard a guess that, were America less interested in freedom and\npersonal liberty and more interested in collective good we never would\nhave sent our armed forces anywhere.  One poor effect of this culture\nwe have is that we're looking out for ourselves and it is quite easy\nto identify with only a small segment of the population.  My grandmother\ntells of being discriminated against back in Denmark because she spoke\n\"low Dane,\" whereas others spoke \"high Dane.\"  It was shortly after\nWorld War II, as I remember, that \"low Dane\" was abolished so there was\none common dialect.  We cannot fathom such a minor thing being a problem,\nbecause we have even more obvious means of identifying an \"outsider.\"\n\n>\t\t\tThe bad english is not my fault, it's probably\n>\t\t\tthe keyboard-software or the quality of the\n>\t\t\tsubtext on tv......\n\nTake heart, yours is better than 90% of what gets posted by native speakers.\nAny helpful hints for our educational system?  People have this annoying\ntendency to drop out of school and sell drugs over here.\n\n[ ;-) And what kind of name is Thomas Parsli?  Here, you can use my great\ngrandfather's before he changed it: Christian Aarskog.  That's a\ngreat one for getting mispronounced.  I think that's why he changed it.\nI don't think he needs it anymore ;-) ]\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4794, "properties": {"category": "talk.politics.misc", "text": "From: cdm@pmafire.inel.gov (Dale Cook)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: WINCO\nLines: 25\n\nIn article <1993Apr15.193603.14228@magnus.acs.ohio-state.edu> rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) writes:\n>In article <stevethC5JGCr.1Ht@netcom.com> steveth@netcom.com (Steve Thomas) wri\n>tes:\n>\n>>Just _TRY_ to justify the War On Drugs, I _DARE_ you!\n>\n>A friend of mine who smoke pot every day and last Tuesday took 5 hits of acid \n>is still having trouble \"aiming\" for the bowl when he takes a dump.  Don't as \n>me how, I just have seen the results.\n>\n>Boy, I really wish we we cut the drug war and have more people screwed up in \n>the head.\n\nI'm sorry about your friend.  Really.  But this anecdote does nothing to\njustify the \"war on drugs\".  If anything, it demonstrates that the \"war\"\nis a miserable failure.  What it demonstrates is that people will take\ndrugs if they want to, legal or not.  Perhaps if your friend were taking\nlegal, regulated drugs under a doctors supervision he might not be in the\nposition he's in now.\n\n--------------------------------------------------------------------------\n...Dale Cook    \"Any town having more churches than bars has a serious\n                   social problem.\" ---Edward Abbey\nThe opinions are mine only (i.e., they are NOT my employer's)\n--------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4795, "properties": {"category": "misc.forsale", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Star Trek (TOS) novels: 3/$8 package\nSummary: Price of the Phoenix; Fate of the Phoenix; Memory Prime\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nDistribution: usa\nLines: 16\n\n\nSome reading from a recent interview trip ... waiting all day at\nO'Hare a month ago, waiting out the storm here in New York!\n\n\tThe Price of the Phoenix; \n\tThe Fate of the Phoenix; \n\tMemory Prime\n\nTake the package for $8, or in trade for a good used CD ...\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4796, "properties": {"category": "comp.windows.x", "text": "From: fkk@stasys.sta.sub.org (Frank Kaefer)\nSubject: Re: xterm build problem in Solaris2.1\nOrganization: Stasys News Server, Starnberg, Germany\nLines: 22\nDistribution: inet\nNNTP-Posting-Host: stasys.sta.sub.org\n\ndla@se05.wg2.waii.com (Doug Acker) writes:\n\n|..continuing on my build problems, I got stuck here build xterm...\n\n|gcc -fpcc-struct-return -o xterm main.o input.o charproc.o cursor.o util.o tabs.o  screen.o scrollbar.o button.o Tekproc.o misc.o  VTPrsTbl.o TekPrsTbl.o data.o menu.o -O2   -R/usr/wgep/X11R5.sos5/lib${LD_RUN_PATH+\\:$LD_RUN_PATH} -L../.././lib/Xaw\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4797, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: prayers and advice requested on family problem\nOrganization: Indiana University\nLines: 34\n\nJulie, it is a really trying situation that you have described.  My\nbrother was living with someone like that and things were almost as bad\n(although he left after a considerably shorter amount of time due to\nother problems with the relationship).  Anyway, the best thing to do\nwould be to get everyone in the same room together (optimally in a room\nwith nothing breakable), lock the door behind you, throw the key out\nunderneath the door (just as far as the longest hand can reach.  You\nwould like to get out after the conclusion, I would imagine), and hash\nthings out.  More than likely, there will be screaming, crying, and\npossibly hitting (unless of course someone decided to bring some rope to\ntie people down).  Some of the best strategies in keeping things calmer\nwould include:\n   have each individual own their own statements (ie, I feel that this\nrelationship is hurting everyone involved because.... or I really don't\nunderstand where you're coming from.)\n   reinforce statements by paraphrasing, etc. (ie, So you think that we\ndid this because of...?  Well, let me just say that the reason for this\nwas ....)\n   don't accuse each other (It was your fault that ... happened!)\n   find a common ground about SOMETHING (Lampshades really are\ndecorational and functional at the same time.)\n   Guaranteed, in a situation like this, there is going to be some\ngunnysacking (re-hashing topics which were assumed resolved, but were\ntruly not and someone feels someone else is to blame).  However, this\nshould be kept to a minimum and simply ask for forgiveness or apologize\nabout each situation WITHOUT holding a smoldering grudge.  \n\nThe relationship really can work.  It's just a matter of keeping things\nsmooth and even.  It's sort of like making a peace treaty between\nwarring factions:  you can't give one side everything; there must be a\ncompromise.  Breaks can be taken, but communication between everyone\ninvolved must continue if the relationships here are to survive.\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4798, "properties": {"category": "rec.sport.baseball", "text": "From: mike@cunixf.cc.columbia.edu (Michael Chen)\nSubject: Re: Mel Hall\nNntp-Posting-Host: cunixf.cc.columbia.edu\nReply-To: mike@cunixf.cc.columbia.edu (Michael Chen)\nOrganization: Columbia University\nLines: 17\n\nIn article <1993Apr17.212119.13901@coe.montana.edu> warped@cs.montana.edu (Doug Dolven) writes:\n>\n>Has anyone heard anything about Mel Hall this season?  I'd heard he wasn't\n>with the Yankees any more.  What happened to him?\n>\n>\t\t\t\tDoug Dolven\n>-- \n>Doug Dolven\n>warped@cs.montana.edu\n>gdd7548@trex.oscs.montana.edu\n\nMel Hall signed with a Japanese team.\n\n\n-Mike\n/mike@columbia.edu\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4799, "properties": {"category": "talk.politics.guns", "text": "From: tmh@expert.cc.purdue.edu (Todd M. Helfter)\nSubject: Re: BATF/FBI revenge\nOrganization: Purdue University Computing Center\nLines: 172\n\n\n>Does anyone have any idea about the size of Waco?  I'm just curious because\n>if it were a small town that may have something to do with it.  Possibly not.\n>It sure didn't take it very long to burn down though.  I was watching ABC and\n>it only took like a little over 30 minutes to burn down.\n\n\tWaco is a city of about 100,000 people.  The population temporarily\n   raised to about 102,000 people when all the feds, and state police officers\n   arrived.\n\n\tI tell you what, I stayed in a hotel room about 4 miles from the BD\n   compound around 3 weeks ago.  I have never felt more paranoid in my whole\n   life.  There were at least 100 state police in the hotel.\n\n\n\n\n\n>\n>>The claim \"we had the water turned off, so the fire engines had to bring\n>>their own\" doesn't hold up:  If they had cut off the water, they surely\n>>could have turned it back on just as quickly.  They just didn't want to:\n>>There were some scores to settle.  Message to anybody else is very clear:\n>>\"DON'T FUCK WITH US.  WE WILL DO YOU IN...\"\n>>\n>Not that I am one to believe that everything that the government tells us is\n>true but if that was the message they wanted to send why did they wait 51 days?\n>I think the message would be better sent by charging in there right away - not\n>waiting for 51 days and pounding them with sound, etc.\n>\n>>A bunch of dead BD members are not going to be so able to tell their\n>>side of the story, so now all we have is the story according to the BATF\n>>and FBI.  Also, Mr \"care about the rights of people\" Clinton, or his\n>>administration approved this action (FBI said 'Washington had approved\n>>it').  They FBI said the gas masks used by the BDs have a finite life,\n>>and were close to running out.  WHY COULDN'T THEY HAVE JUST WAITED?\n>\n>Well, there are 9 people supposedly alive.  They can tell their story.  As far\n>as Bill Clinton is concerned don't you think he has more pressing matters to\n>attend to besides some small group of people in Texas?  How about Bosnia?  Now\n>there's a problem......    Why couldn't they have waited?  They waited too long\n>as it is.  Something should have been done earlier.\n>\n>>\n>>They gov is trying to say it was a mass suicide.  In the past they had\n>>expressed this was a real possibility, but now they decided it wasn't\n>>a possibility so they could go on with the raid.  Apparantly what they\n>>feel Korash was or was not capable of or going to do was driven by\n>>what was most convenient at the time...\n>>\n>>Now this means that:\n>>\n>>1: The public and media will forget about all this - having become weary of\n>>it.\n>\n>This has already happened for many people.\n>\n>>2: There will be no investigation (independent or otherwise) or a whitewash.\n>\n>Very much a possibility.\n>\n>>3: There will be no unsealing of the warrant and related documents.\n>>4: What anybody will know about this incident will be the BATF version.\n>\n>With the way our government is I wouldn't doubt it.\n>\n>>5: The BATF has just been given Carte Blanche for further abuses, with\n>>   the effective support and approval of the Administration.\n>\n>Clinton said on the news that he knew about what was happening but that it was\n>all in the hands of the FBI.  That is if you choose to believe the media.\n>\n>>6: There WILL BE more abuses, with no concern of Administration censure.\n>>7: The precident has been established that the Feds can kill in quantity\n>>   to achieve their aims.  Especially if the target is excercising their\n>>   rights under the Second Amendment, and the rest of the Bill of Rights,\n>>   and is a government-declared un-nice fellow.\n>\n>If they had rocket launchers and such (as the press and gov claims) why\n>shouldn't they have done something?  What possible use would a religious cult\n>have for a rocket launcher?  Also, is child abuse covered by the Bill of\n>Rights?\n>\n>> : LLs and CLAMs will be pleased.  Dung Tsow Ping(sp) will be pleased.\n>>   Saddam Hussein(sp) will be pleased.  Idi Amin would be pleased.  Stalin\n>>   would be pleased.  Even Hitler would be pleased.  Any self-respecting\n>>   despot would nod and say \"Well Done, Bill Clinton!!\"\n>>\n>Well, then there are probably a lot of self-respecting despots in the US cause\n>I'm sure they feel the same way.\n>\n>>God Bless America - Land of the Free!!!  (past tense).\n>>\n>>Well, maybe I AM overreacting.  But I see on the TV as I am typing where\n>\n>Maybe, maybe not.  There are a lot of questions that should be raised about\n>this incident.  The problem is, who will do it and be heard?\n>\n>>govt spoksewoman (the new attorney general, known to be almost rabid\n>>about private ownership of guns - wants to ban 'assault guns' and just\n>>about everything else), is saying the FBI had \"amazing restraint\", then\n>>falls back into the official goverenment line about how the BD were\n>>guity of child abuse, and were into it in an on-going basis, and so on.\n>>Note that according to the Liberal Elite, giving a child a spanking is\n>>regarded as child abuse (seriously - if it gets known, the STATE can\n>>take your child away from you if you spank your kid).  She also is saying\n>\n>Which state is that?  The federal government  or an individual state government\n>?\n>\n>>CLINTON PERSONALLY APPROVED THIS OPERATION - she \"told him it was\n>>appropriate and so on, and he SAID OK, DO IT\".  Somehow, I am not\n>>surprised - the people MUST KNOW WHO IS BOSS - WHO IS IN CHARGE!!!\n>>And it is obviouly no longer the people.\n>>\n>It seems to me that the people haven't been in charge for a long time.  If they\n>really were I don't think the government would be doing as many things as it\n>has in the past.\n>\n>>And I maintain the appropriate response, as far as this raid by BATF is\n>>concerned, regarding child abuse is \"so what?\".  BATF are not our Child\n>>Protective Services Police.  Yet.  After all the BD had been TRIED on\n>>that charge before and found NOT GUILTY.  The gov't people have pretty\n>>much gone silent on the terrible illegal guns BD supposedly has, and\n>>stress the \"continued child abuse\" (apparantly to make it a seem as sort\n>>of a 'rescue' operation, figuring everyone hates child abusers, and\n>>anything is OK to use against them).  Occasional references to ammunition\n>>possesed by the BDs and so on is irrelevant: it is NOT ILLEGAL to have\n>>ammunition (yet).\n>>\n>True but is it illegal to have a rocket launcher?\n>\n>>Am I having a vain hope that an honest investigation will occur on this\n>>thing?  Or will it simply be whitewashed under the rug, and Business\n>>as Usual will continue to be the Order of the Day in the New Order?\n>>Who will be given the official title of \"Thought Police\", I wonder...?\n>>\n>>And if Clinton and friends have their way, (highly likely at this point)\n>>the New Order Government will also have all the guns...  So what if\n>>\"1984\" is going to be ten years late...  I think we are going to discover\n>>that we will be paying DEARLY for putting this fellow in office for decades\n>>to come.  Even some die-hard supporters are having serious doubts about\n>>their Savior.\n>>\n>Shit, if people dont get what they want right away there is an instant problem.\n>Clinton has only been in office for a few months.  Give him a chance to get\n>something done.  The guy had a lot of shit thrown in his lap in the beginning.\n>Give him a chance to work on things a little.  As they say - Rome wasn't built\n>in a day.\n>\n>>Yes, I am UPSET.  I see NO GOOD as far as civil/individual rights to\n>>come of any of his proposals/decisions for the last month or so...\n>>We have really been HAD.  Or Bill of Rights is now nothing but a quaint\n>>curiosity.\n>>\n>I highly doubt that it is that bad yet.  How about the Rodney King trial?  The\n>two people who were most responsible got the axe.  How bad the axe falls tho\n>is yet to be seen.\n>\n>>Anybody for impeachment?\n>>\n>Nope.   I would prefer to give Bill a little more than four or five months to\n>solve the nations problems.\n>>--\n>>pat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n>>         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\n>>WISDOM: \"Only two things are infinite; the universe and human stupidity,\n>>         and I am not sure about the former.\"              - Albert Einstien\n>\n>Jason - u28037@uicvm.cc.uic.edu\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4800, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jmilhoan@magnus.acs.ohio-state.edu (JT)\nSubject: Re: A StyleWriter II question\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 10\n\nIn article <egaillou.734894813@miniac> egaillou@etu.gel.ulaval.ca (Eric Gailloux) writes:\n>I just read an article on the SWII. One thing puzzles me: the article says the\n>SWII is a serial-only device. Does that mean I'll have to unplug my modem each\n>time I want to print something???\n\nNo.  Plug the printer in the printer port, and the modem in the modem\nport. ;)\n\nJT\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.231+0000", "event": "documents", "entityId": 4801, "properties": {"category": "sci.med", "text": "From: fulk@cs.rochester.edu (Mark Fulk)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: University of Rochester\n\nIn article <C5Kv7p.JM3@unx.sas.com> sasghm@theseus.unx.sas.com (Gary Merrill) writes:\n>\n>In article <1993Apr15.200344.28013@cs.rochester.edu>, fulk@cs.rochester.edu (Mark Fulk) writes:\n>What is wrong with the above observation is that it explicitly gives the\n>impression (and you may not in fact hold this view) that the common (perhaps\n>even the \"correct\") approach for a scientist to follow is to sit around\n>having flights of fancy and scheming on the basis of his jealousies and\n>petty hatreds.\n\nFlights of fancy, and other irrational approaches, are common.  The crucial\nthing is not to sit around just having fantasies; they aren't of any use\nunless they make you do some experiments.  I've known a lot of scientists\nwhose fantasies lead them on to creative work; usually they won't admit\nout loud what the fantasy was, prior to the consumption of a few beers.\n\n(Simple example: Warren Jelinek noticed an extremely heavy band on a DNA\nelectrophoresis gel of human ALU fragments.  He got very excited, hoping that\nhe'd seen some essential part of the control mechanism for eukaryotic\ngenes.  This fantasy led him to sequence samples of the band and carry out\nbinding assays.  The result was a well-conserved, 400 or so bp, sequence\nthat occurs about 500,000 times in the human genome.  Unfortunately for\nWarren's fantasy, it turns out to be a transposon that is present in\nso many copies because it replicates itself and copies itself back into\nthe genome.  On the other hand, the characteristics of transposons were\nmuch elucidated; the necessity of a cellular reverse transcriptase was\nrecognized; and the standard method of recognizing human DNA was created.\nOther species have different sets of transposons.  Fortunately for me,\nWarren and I used to eat dinner at T.G.I. Fridays all the time.)\n\n>It further at least implicitly advances the position that\n>sciences goes \"forward\" (and it is not clear what this means given the\n>context in which it occurs) by generating in a completely non-rational\n>and even random way a plethora of hypotheses and theories that are then\n>weeded out via the \"critical function\" of science.\n\nI'm not sure that it's random.  But there is no known rational mechanism\nfor generating a rich set of interesting hypotheses.  If you are really\nworking in an unknown area, it is unlikely that you will have much sense\nof what might or might not be true; under those circumstances, the best\nthing to do is just follow whatever instincts you have.  If they are wrong,\nyou will find out soon enough; but at least, you will find out _something_.\nIf you try to do experiments at random, with no prior conceptions at all\nin mind, you will probably get nowhere.\n\n>(Though why this critical\n>function should be less subject to the non-rational forces is a mystery.\n\nUnfortunately, the critical function does sometimes become hostage to\nnon-rational forces.  Then we get varieties of pathological science:\nLysenko, Mirsky's opposition to DNA-as-gene, cold fusion, and so forth.\n\n>If experimental design, hypotheses creation, and theory construction are\n>subject to jealousies and petty hatreds, then this must be equally true\n>of the application of any \"critical function\" concerning replication.\n>This is what leads one (ala Feyerabend) to an \"anything goes\" view.)\n\nI don't agree that this follows.  In fact, this is _exactly_ the point at\nwhich I disagree with Feyerabend.  It is a most important part of the\nculture of science that one keeps one's jealousies out of the refereeing\nprocess.  Failures there are aplenty, but, on the whole, things work out.\n\nAnother point: there are a couple of senses of the phrase ``experimental\ndesign''.  I'd say that the less rational part is in experimental _choice_,\nnot design.  Alexander Fleming (Proc. Royal Soc., 1922) chose to look for\nbacteriophage in his own mucus for strange reasons (Phage had previously\nbeen found in locust diarrhea; Fleming probably thought runny bottom, runny\nnose, what the hell, it's worth a try.) but his method of looking for phage\nwas well-designed to detect anything phage-like; in fact, he found lysozyme.\n\n>True, the generation part *can* be totally irrational.  But typically it is\n>*not*.  Anecdotes concerning instances where a hypothesis seems to have\n>resulted in some way from a dream or from one's political views simply\n>do not generalize well to the actual history of science.\n\nIt is not clear to me what you mean by rational vs. irrational.  Perhaps\nyou can give a few examples of surprising experiments that were tried out\nfor perfectly rational reasons, or interesting new theories that were first\nadvanced from logical grounds.  The main examples I can think of are from\nmodern high-energy physics which is not typical of science as a whole.\n-- \nMark A. Fulk\t\t\tUniversity of Rochester\nComputer Science Department\tfulk@cs.rochester.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4802, "properties": {"category": "rec.autos", "text": "From: awds_ltd@uhura.cc.rochester.edu (Adam Edwards)\nSubject: Re: 86 chevy sprint\nNntp-Posting-Host: uhura.cc.rochester.edu\nOrganization: University of Rochester - Rochester, New York\nLines: 34\n\nIn <wfnMBJG00WBOE3L2c0@andrew.cmu.edu> Srinagesh Gavirneni <sg48+@andrew.cmu.edu> writes:\n\n>I have a 86 chevy sprint with a/c and 4doors. It's odometer turned 90k\n>and the sensor light started blinking. I went to the dealer and he said\n>it was a maintenance light saying I need to change the Oxygen sensor. He\n>said, It is to be changed every 30k, but since I bought the car when it\n>had 77k, I don't know if the same thing happened at 30k and 60k.  He\n>quoted $198 for the part and $50 to install it. The part cost $30\n>outside, but the mechanic I went to could not fix it saying the sensor\n>is placed too deep in the engine parts. He suggested I wait till it\n>malfunctions before I do anything.  If anyone out there owns a chevy\n>sprint, I want to know how they got their Oxygen sensors changed. Also,\n>did you face any problem with fixing it without the dealer's help. Also,\n>what are the results of the oxygen sensor malfunction. \n>  Any help would be greatly apprecisted\n>   Thanks\n\n\n\n\nI sold my '86 Sprint last April with 95k on it.  I'd driven it since\nthe previous July, putting 20k miles on it.  The sensor light used to\nlight up regularly, starting about 5k miles after I bought it.  \nMy brother and I rebuilt the engine but used all of the original equipment,\nso I suppose the sensor could have used replacement.  Performance (hah,\nif you could call it that) did not change.  Perhaps emissions increased,\nbut how much emissions could a CA-registered 3 cylinder engine produce?\nThat was a neat car, I held the engine block easily in one hand!  Has\nanyone ever driven the 'Turbo' variant?  Just curious...\n\n\tAdam Edwards\nawds_ltd@uhura.cc.rochester.edu\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4803, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Wanted:  Advice on CB900 Custom purchase\nKeywords: CB900, purchase\nOrganization: NEC Systems Laboratory, Inc.\nLines: 22\n\nIn article <1993Apr14.204821.8497@linus.mitre.org> cookson@mbunix.mitre.org (Cookson) writes:\n>In article <93Apr14.185235.31833@acs.ucalgary.ca> parr@acs.ucalgary.ca (Charles Parr) writes:\n>>My mechanic once commented that the 'dual range' transmission was\n>>pure junk. One mans opinion...\n>>\n\n\tI had a friend in Pittsburgh who had a CB1000C with the dual-range\ntranny on it.  He usually only used the \"economy\" range to get an overdrive\nsixth gear out of it.  He had 59000 miles on it when it was stolen.  It was\nrecovered shortly after that, repaired, and, for all I know, it's still going\nstrong.\n\n\tThe CB1000C was a shaft-driven overbore version of the CB900 and was\nmade for exactly one year (yep, head and base gaskets are VERY expensive).\nHelluva bike.\n\nA data point,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4804, "properties": {"category": "talk.religion.misc", "text": "From: daveb@pogo.wv.tek.com (Dave Butler)\nSubject: Re: NEW BIBLICAL CONTRADICTIONS [still not] ANSWERED (Judas)\nOrganization: Tektronix, Inc., Wilsonville,  OR.\nLines: 180\n\nMr DeCenso, in spite of requiring Scholarly opinion on the hanging of Judas,\nrejects that the scholarly opinion of the those scholars and then rephrases\nthose scholars opinion on the subject:\n\n> ...we do know from Matthew that he did hang himself and Acts probably records\n> his death.  Although it's possible and plausible that he fell from the hanging\n> and hit some rocks, thereby bursting open, I can no longer assume that to be\n> the case.  Therefore, no contradiction.  Matthew did not say Judas died as a\n>                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> result of the hanging, did he?  Most scholars believe he iprobably did, but..?\n> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> \n> I quoted all that to show that I highly regard the scholars' explanations, but\n> in looking at the texts initially, we can't assume Judas died.  It is, \n> however, highly probable.                   ^^^^^^\n\nand \n\n> Also, there is nothing in the Greek to suggest success or failure.  It simply\n> means \"hang oneself\".\n\nActually, if you do further research as to the Greek word \"apacgw,\" you will\nfind that it does denote success.  Those scholars did indeed have an excellent\nreason to assume that the suicide was successful.  As I pointed out, I\nrecently checked several Lexicons:\n\n\t\"Greek English Lexicon of the New Testament,\" Louw and Nida\n\t\"Robinson's Greek and English Lexicon of the New Testament\"\n\t\"Greek English Lexicon of the New Testament,\" Grimm\n\t\"Word study Concordance,\" Tynsdale\n\t\"A Greek English Lexicon of the New Testament and other \n\t early Christian Writings,\" Bauer-Arndt-Gingrich\n\t\"The New Analytical Greek Lexicon,\" Perschbacher\n\nA couple simply stated \"hanged oneself\", and a couple were more explicit \nand stated that \"apacgw\" means specifically \"kill yourself by hanging.\" A\ncouple also noted that the meaning of one the root words for \"apacgw\" is\n\"strangle, throttle or choke\" (which pretty much invalidates the guy who\nsuggested to David Joslin that Judas was hung upside down).  One of the best\nreferences though, \"Robinson's Greek and English Lexicon of the New\nTestament,\" not only stated the translation, it gave both the root words, the\nliteral translation, related greek words which use the same roots, and also\nother presented specific examples of the word in greek literature (to give\nfurther context).  \n\nThe word \"apagchw\" has two root words: \"gchw\" is the \"to strangle\" root, and\nthe root word \"apo\" means literally \"away.\" This root words is included in\nwords which denote a transition.  It can mean a transition in place (eg: the\ngreek word \"apagello\" means to send a message).  \"Apo\" can also denote a\nchange in state and specifically the change from life to death.  Robinson\nspecifically makes comparison to the word \"apokteiuo,\" which means \"to kill.\"\nIn literal meaning the word \"apacgw\" means \"to throttle, strangle to put out\nof the way,\" and implicitly denotes a change in life state (ie: away from\nlife, to death).  So while the word \"apacgw\" does mean \"to hang,\" it\nspecifically denotes a death as well.  Thus Robinson is quite specific when he\nstate that it means \"to hang oneself, to end one's life by hanging.\" He then\nnotes the the use of \"apacgw\" in Homers Odessy 19:230 to denote context.  He\npresents that example of \"apacgw\" as being used to explicitly mean \"suicide by\nhanging.\" Now since there is a perfectly good word for strangling, without the\nadded denotation of \"death,\" and as you insist that the Bible was written by\nGod, and every word is precicely correct, you are stuck with the complete\nmeaning of \"apacgw\" (ie: Since the word \"apacgw\" was used, then death is\ndenoted as the result). \n\nBy the way, I note that Mr DeCenso also presents an example of \"apacgw\":\n\n> In the Septuagint (the Greek translation of the OT used at the time of Jesus),\n> it's only used in 2 Samuel 17:23 : \"Now when Ahithophel saw that his advice \n> was not followed, he saddled a donkey, and arose and went home to his house,\n> to his city. Then he put his household in order, and hanged himself, and \n> died; and he was buried in his father's tomb.\"   ^^^^^^^^^^^^^^^^^^^^^^^\n> ^^^^ \n> Notice that not only is it stated that Ahithophel \"hanged himself\" [Gr. Sept.,\n> APAGCHO], but it explicitly adds, \"and died\".  Here we have no doubt of the\n> result.\n> In Matthew, we are not explicitly told Judas died.\n\nNote Mr DeCenso, as you say, the Septuagint was a translation from Hebrew to\nGreek, and you have not shown the original meaning of the Hebrew (ie\" the the\nHebrew say \"and died\"), and thus whether it was simply echoed in the Greek. \nIt should also be pointed out that, regardless of the added \"and died\", the\ncorrect translation would still be \"apacgw,\" as the man did indeed die from\nstrangulation (redundant, but correct).  Further, we have evidence that the\nSeptuagint was repeatedly rewritten and reedited (which included versions\nwhich contradicted each other), and such editing was not even necessarily\nexecuted by Greeks.  Thus I am not sure that you can use the Septuagint as it\nnow stands, as a paragon of ancient greek.  So, what you really need to prove\nyour point Mr DeCenso, is an example, in ancient greek, of someone committing\n\"apacgw\" and surviving.  Otherwise I would see you as simply making worthless\nassertions without corresponding evidence. \n\nNow I would note Mr DeCenso, that everytime I go out of my way to research it\none of your apparently contrived exegisis, I pretty much find it false.  Thus,\nI think that if you are going to add to the text, something over and above\nwhat the source clearly says, then you had better have an explicit Greek or\nhistorical source to justify it. \n\nBy the way, as to Mr Rose's statement about trees around the Potter's Field:\n\n> There are still trees around the ledges and a rocky pavement at the bottom.\n\nUnless Mr Rose can show that these trees are two thousand years old, or that\nthere are 2000 year old stumps there, or has a 2 thousand year old description\nof the area which mentions such trees, then it is inappropriate for him to\nassert that the present placement of trees prove the location of the trees two\nthousand years ago (after all, things change). \n\nNow as to your other argument, ie: that the money Judas used is not the same\nas the 30 silvers:\n\n> As to your second question Mr DeCenso, you ask how we could be sure that the\n> money with which Judas purchased the land, was indeed for the betrayal, rather\n> than some other source.  I would point out that in Acts, where it specifically\n> mention \"the reward of iniquity\" [Acts 1:18], it also specifically mentions\n> what act of iniquity they were talking about (ie: Acts 1:16 \"...concerning\n> Judas who was guide to those who arrested Jesus.\").  Now I would point out\n> that when the Bible describes an act of \"iniquity,\" and then immediately\n> discusses \"*the* reward of iniquity,\" it would be rather inane to suggest that\n> it was an action of iniquity other than the one discussed.\"\n> \n>  \n> Notice that in verse 16, the word \"iniquity\" is not used.  Rather, it states\n> that Judas \"became a guide to those who arrested Jesus\".\n> But the writer DID NOT stop there...vs. 17, \"for he was numbered with us and\n> obtained a part in this ministry.\"  What part did Judas play in their ministry?\n>          ^^^^^^\n\nTrue, Peter (or the author of Acts) does not specifically call Judas' betrayal\n\"an iniquity,\" but for that matter, neither does John specifically call Judas'\nactions \"an iniquity\" either.  Further John 13:29 did not say that Judas took\nthe money box, but rather said:\n\n    \"Some thought that because, Judas had the money box, Jesus was telling\n     him \"Buy what we need for the feast\"; or that he should give something\n     to the poor, So after receiving the morsel he immediately went out, and\n     it was night.\"\n\nNote that it is said that Judas left, it does not say that he took the money\nbox.  Thus when I see your explanation it still seems to me you would choose\nthe a an unproven iniquity, mentioned by another author, in a different\nbook, written at a different time, over the iniquity explicitly mentioned by\nthe author of acts.  I find this forced and contrived. \n\nOf course this particular argument becomes moot, since we have have seen\nevidence that \"apacgw\" means suicide.  You see, since Judas' hanging was\nsuccessful, he could not have spent the money mentioned in John 13:29, because\nMatthew and Mark explicitly say the betrayal was on the high holy day (ie:\nPassover), and thus he could not have spent the money before killing himself\nthe next day.  Thus the money which bought the \"Field of Blood\" would have to\nhave been the 30 pieces of silver (Of course he got the 30 pieces of silver\nthat night as well, and thus couldn't have spent that either.  Oh dear, I\nbelieve that the house of cards is comming down). \n\nMaybe we should at this point, discuss now whether Jesus was crucified on\nFriday or Saturday as that is now part of the argument about Judas.\n\nBy the way, as to where the prophesy of the Potter's field came from (ie: the\nmention of it in Matthew), you say:\n\n> Please, when we are done with this study on his death, remind me to discuss\n> this with you.\n\nI am reminding you now to discuss it now. It's all part of the same verse we\nare discussing, and I wish you would quit procrastinating and sidestepping \nthese issues.\n \n\t\t\t\tLater,\n\n\t\t\t\tDave Butler\n\n\tA wise man proportions his belief to the evidence.\n\t\t\t\tDavid Hume, Philosopher\n\t\t\t\tAn Inquiry Concerning Human Understanding\n\n    PS. I would note again, that you are not stating that that Bible\n    is not possibly inerrant; you are stating that it *IS* inerrant.\n    Since you have been, by your own admission, presenting merely \"possible\"\n    reconciliations (I of course don't rate them that highly), then the \n    best you can do is say that the Bible is \"possibly\" inerrant, not that \n    it *is* inerrant.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4805, "properties": {"category": "comp.graphics", "text": "From: seth@north1.acpub.duke.edu (Seth Wandersman)\nSubject: Oak Driver NEEDED (30d studio)\nReply-To: seth@north1.acpub.duke.edu (Seth Wandersman)\nLines: 8\nNntp-Posting-Host: north1.acpub.duke.edu\n\n\n\tHi, I'm looking for the 3-D studio driver for the\n\tOak card with 1 M of RAM.\n\tThis would be GREATLY (and I mean that) appreciated\n\n\tMaybe I should have just gotten a more well know card.\nthanks\nseth@acpub.duke.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4806, "properties": {"category": "talk.politics.guns", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: Clinton wants National ID card, aka USSR-style \"Internal Passport\"\nLines: 40\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <1993Apr15.201756.29141@CSD-NewsHost.Stanford.EDU> andy@SAIL.Stanford.EDU (Andy Freeman) writes:\n\n>In article <1993Apr14.175931.66210@cc.usu.edu> slp9k@cc.usu.edu writes:\n>>> (BTW - Which parts should be secure?  Criminal\n>>> records, ie convictions, are typically considered public information,\n>>> so should that info be secure?  Remember, the population includes\n>>> parents checking prospective childcare worker.)\n>\n>>\tParent's checking a babysitter shouldn't need access to the information\n>>stored in the card.\n>\n>Sure they do.  The prospective sitter may have a nasty habit of molesting\n>kids three or four months into the job.  The references may not have\n>known him long enough or may not have picked up on this yet.\n>\n>Remember, criminal conviction info is public, so if you're going to\n>argue for an ID card, other people are going to have a strong argument\n>that it disclose public info.\n\n       As perhaps some insight into how this sort of thing works, the\nlocal college newspaper had a big crusade to have the U.T. police\nrelease crime stats.  (The school claimed that to do so would violate\nfederal education records privacy laws).  They swore up and down they\nweren't interested in student discipline records, only for stats so people\ncould make an evaluation of how safe the campus was.\n\n       It was barely a week after crime stats were released before the\nDaily Beacon had an editorial calling for student disciplinary stats\nto be released, because they complained certain segments of the campus\npopulation were treated administratively rather than turned over to the\npolice and therefore the criminal states weren't accurate.\n\n       What people say they want public today may not be what they\nsay tomorrow.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4807, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: Dumbest automotive concepts of all time\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 26\n\nIn article <1993Apr15.223029.23340@cactus.org> boyle@cactus.org (Craig Boyle) writes:\n>In article <C5JnK3.JKt@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>>\tWasn't the original intent of the reverse lights for the driver, so he\n>>could see where he was backing up???  Although reverse lights on the sides\n>\n>No. reverse lights are to warn others that you are backing up. They\n>aren't bright enough to (typically) see by without the brake and tail\n>lights. \n\nI don't know where you live, but I couldn't get out of my driveway\nat night without reverse lights. As someone said, out in the country\nyou notice neat little things like stars and the difference between\nday and night. At night around my house (which is amongst a forest of\nrather tall oaks) it is DARK, except for nights with full moons.\nReverse lights illuminate my path very well when backing up; I greatly\nprefer cars with them to cars without operational reverse lights.\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4808, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Tie Breaker....(Isles and Devils)\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 35\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <lrw509f@rpi.edu> wangr@rpi.edu writes:\n>\n>\tAre people here stupid or what??? It is a tie breaker, of cause they\n>have to have the same record. How can people be sooooo stuppid to put win as\n>first in the list for tie breaker??? If it is a tie breaker, how can there be\n>different record???? Man, I thought people in this net are good with hockey.\n>I might not be great in Math, but tell me how can two teams ahve the same points\n>with different record??? Man...retard!!!!!! Can't believe people actually put\n>win as first in a tie breaker......\n\nGolly, I love stupid people. :-)\nListen, Rex, this is hockey.  The NHL, to be precise.  And in the NHL,\nthere exist these things called \"ties\".  A tie occurs when a game ends\nwith the score for each team equal.  Each team gets one point for a tie. \nThere also exits these things called \"wins\".  A win is when one team has a\nhigher score than the opponent.  (Oh yeah, only two teams play each other\nat a time, so I can say \"the opponent\".)  A team gets two points for a\nwin.  So, let's say that a team has a record of 38 wins, 36 losses, and 10\nties.  Another team has a record of 40 wins, 38 losses and 6 ties.  The\nfirst team has (38*2)+10 = 86 points.  The second team has (40*2)+6 = 86\npoints.  WOW!  They *both* have the same number of points, but the number\nof wins is different!  How did they do that??!?!?!?!  That's amazing.  So,\nRex, when people talk about wins being the first tiebreaker, well, then\nthat's what it means.  In our example, the second team would win the\ntiebreaker and therefore have the \"better\" record, even though both teams\nhad the same number of points.  If you didn't understand this post, Rex,\nmaybe you should go back and read it again, very slowly.\n:-) :-) :-) :-) :-) :-)\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4809, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bergen@vaxb.acs.unt.edu\nSubject: Re: Need help with WP for Windows\nLines: 26\nOrganization: University of North Texas\nDistribution: usa\n\nIn article <1993Apr17.224402.92@kirk.msoe.edu>, narlochn@kirk.msoe.edu writes:\n> I have two questions:\n> \n> 1) I have been having troubles with my Wordperfect for Windows.\n>    When I try to select and change fonts, etc. some of the text\n>    disappears.  I tried to center two lines once, and the second\n>    line disappeared.  I can not find the error, and I do not\n>    know how to correct it.\n> \n> 2) Is this the right newsgroup?  Where should I go?\n> \n> E-mail prefered...\n>                               \n> '/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/'\n\nI know you said E-mail preferred but because this is a common problem\nwith WPWin I'll post it here.\n\nThe screen only LOOKS like the text is gone. Usually you can just\npage-up then page-down and when it does a complete refresh the\ntext reappears. I have had--on \"rare\" occasions--to completely \nexit (save first) the program. When I reopened the file, all chaos\nhad been resolved. I don't know WHY it does this, but it is annoying.\nThe graphics problems have now made me a Word for Windows user!!\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4810, "properties": {"category": "comp.graphics", "text": "From: oehler@picard.cs.wisc.edu (Eric Oehler)\nSubject: Translating TTTDDD to DXF or Swiv3D.\nArticle-I.D.: cs.1993Apr6.020751.13389\nDistribution: usa\nOrganization: University of Wisconsin, Madison -- Computer Sciences Dept.\nLines: 8\n\nI am a Mac-user when it comes to graphics (that's what I own software and hardware for) and\nI've recently come across a large number of TTTDDD format modeling databases.  Is there any\nsoftware, mac or unix, for translating those to something I could use, like DXF?  Please\nreply via email.\n\nThanx.\nEric Oehler\noehler@picard.cs.wisc.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4811, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: Quadras VRAM Question\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nLines: 39\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\n\nDaniel Salber <salber@imag.fr> writes:\n\n>I have a question regarding Quadras VRAM. I have tried to find info on this\n>but I could not get precise answers.\n\n>On one hand, we have a Quadra 950 with a 16\" monitor, which is capable of\n>32-bit color. How much VRAM does it have?\n\n    To display Millions of colors on a 16\" monitor you need 2MB of VRAM\nin the Q950.\n\n>On the other hand, we have a Quadra 800 with a 16\" monitor, which is capable\n>of 8-bit color only, so it must have 512 Ko of VRAM.\n\n    Correct. This is the amount of on-board VRAM that the Q800 comes\nwith.\n\n>I would like to take VRAM SIMMs for the 950 and put them in the 800 so that\n>both machines have 16-bit color capability.\n>Is it possible, and if yes, how many VRAM SIMMs should I take from the 950?\n\n    Yes this is possible. Technically, you only need to take out 2 of\nthe VRAM SIMMs but leaving in the other two will not get you anything\nbecause the 950 cannot really do anything with 1.5MB of VRAM. It only\nknows 1MB and 2MB.\n\n>From the documentation I have, the Quadra 800 must get 1 Mo VRAM to have\n>16-bit color, is that correct?\n\n    Yes, this is correct. You get to 1MB by putting 2 256k VRAM SIMMs\ninto the VRAM SIMM slots on the Q800's motherboard.\n\n>Bonus question: where do VRAM SIMMs hide? From the 950 documentation, they\n>seem to be *behind* the power supply. Do I really have to take off the power\n>supply to access the VRAM SIMMs?\n\n    Yup. You have to take off the power supply. It's only a couple of\nscrews so you should be ok. Just make sure that everything is\ndisconnected from it and watch out for static discharges.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4812, "properties": {"category": "sci.electronics", "text": "From: andrew.payne@hal9k.ann-arbor.mi.us (Andrew Payne) \nSubject: WANTED:  TCM3105 chips, small quantities\nDistribution: world\nOrganization: HAL 9000 BBS, W-NET HQ, Ann Arbor, Michigan, USA\nReply-To: andrew.payne@hal9k.ann-arbor.mi.us (Andrew Payne) \nKeywords: rec mod\nSummary: Reposted by Keith Petersen\nLines: 29\n\nFrom: payne@crl.dec.com (Andrew Payne)\nMessage-ID: <1993Apr20.004418.11548@crl.dec.com>\nOrganization: DEC Cambridge Research Lab\nDate: Tue, 20 Apr 1993 00:44:18 GMT\n\n\nDoes anyone know if a source for the TCM3105 modem chips (as used in the\nBaycom and my PMP modems)?  Ideally, something that is geared toward \nhobbyists:  small quantity, mail order, etc.\n\nFor years, we've been buying them from a distributor (Marshall) by the\nhundreds for PMP kits.  But orders have dropped to the point where we can\nno longer afford to offer this service.  And all of the distributors I've\nchecked have some crazy minimum order ($100, or so).\n\nI'd like to find a source for those still interested in building PMP kits.\nAny suggestions?\n\n-- \nAndrew C. Payne\nDEC Cambridge Research Lab\n---\n . R110B:Wnet HAL_9000\n                                                                                                                             \n----\n| HAL 9000 BBS:  QWK-to-Usenet gateway  | Four 14400 v.32bis dial-ins    |\n| FREE Usenet mail and 200 newsgroups!  | PCBoard 14.5aM * uuPCB * Kmail |\n| Call +1 313 663 4173 or 663 3959      +--------------------------------+\n| Member of EFF, ASP, ASAD  * 1500MB disk * Serving Ann Arbor since 1988 |\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4813, "properties": {"category": "sci.electronics", "text": "From: kennehra@logic.camp.clarkson.edu (Rich\"TheMan\"Kennehan)\nSubject: subliminal message flashing on TV\nOrganization: Clarkson University\nLines: 11\nNntp-Posting-Host: logic.clarkson.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\n\n\nHi.  I was doing research on subliminal suggestion for a psychology\npaper, and I read that one researcher flashed hidden messages on the\nTV screen at 1/200ths of a second.  Is that possible?  I thought the\nmaximum rate the TV was even capable of displaying images was 1/30th\nof a second.  (or 1/60th of a second for an image composed of only odd\nor even scan lines)\n\n- Rich\n  kennehra@logic.camp.clarkson.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4814, "properties": {"category": "rec.motorcycles", "text": "From: wrs@wslack.UUCP (Bill Slack)\nSubject: Re:  Shaft-drives and Wheelies\nDistribution: world\nOrganization: W. R. Slack\nLines: 20\n\n\nVarious posts about shafties can't do wheelies:\n\n>: > No Mike.  It is imposible due to the shaft effect.  The centripital effects\n>: > of the rotating shaft counteract any tendency for the front wheel to lift\n>: > off the ground\n>\n>Good point John...a buddy of mine told me that same thing when I had my\n>BMW R80GS; I dumped the clutch at 5,000rpm (hey, ito nly revved to 7 or so) and\n>you know what? He was right!\n\nUh, folks, the shaft doesn't have diddleysquatpoop to do with it. I can get\nthe front wheel off the ground on my /5, ferchrissake!\n\nBill    \n__\nwrs@gozer.mv.com (Bill Slack) DoD #430\nBut her tears were shed in vain and her every word was lost\nIn the rumble of his engine and the smoke from his exhaust! Oo..o&o\n    \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4815, "properties": {"category": "rec.sport.baseball", "text": "From: ragraca@vela.acs.oakland.edu (Randy A. Graca)\nSubject: Sparky Anderson Gets win #2000, Tigers beat A's\nOrganization: Oakland University, Rochester, Michigan, U.S.A.\nLines: 36\nNNTP-Posting-Host: vela.acs.oakland.edu\n\nTigers' manager Sparky Anderson gets his 2,000th career win as moments ago,\nthe Tigers completed a two game sweep over the Oakland A's at Tiger Stadium\nby beating the A's 3-2. Here are the highlights:\n\n\n\t\t\t\tR    H   E    \n             Oakland\t\t2    9   0\n\t     Detroit            3    7   1\n\nChad Krueter scored Skeeter Barnes from 1st with an RBI double in the \nbottom of the ninth against none other than Dennis Eckersley to give the\nTigers the victory.  Barnes also had an RBI single to score Thurmond to\ntie the score in the ninth, also off Eckersley (sp?).\n\nThe A's got their runs on an RBI single by McGwire in the 1st and a solo\nhomer by Reuben Sierra in the 6th.  Deer doubled home Kirk Gibson in the\n7th for the other Tiger run.\n\nJohn Doherty pitched another strong game for the Tigers, once again lasting\nthrough the seventh inning.  He was relieved by Bolton and then David Haas\nin the 8th, and Haas got the win.  Bobby Witt started for the A's, and was\nreplaced by Honeycutt in the 6th, followed by Goose Gossage in the 8th, and\nfinally Eckersly in the 9th.  Doherty gave up both of the A's runs, while\nWitt gave up the first Tiger run and Eckerseley gave up the last two.\n\nIn the post game interview (on WJR radio in Detroit), Sparky Anderson said\nits one of the few times he's gotten emotional in his managing career.  It\nwas a big moment for him, and I'm sure all of us Tiger fans are unanimously\nvery happy for him.  And what a way to get number 2,000!.\n\nConsidering the circumstances, I think it might be appropriate to say:\n\n                WOOF!      Go Tigers!\n\n--Randy\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4816, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Too Many Europeans in NHL\nArticle-I.D.: news.1993Apr6.204743.21314\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 17\nNntp-Posting-Host: cunixb.cc.columbia.edu\n\n\nYou're right ... I'm sick of seeing all those white guys on skates\nmyself ... the Vancouver Canucks should be half women, and overall \none-third Oriental.\n\n\f\n\n(-; (-; (-; (-; (-; (-; \n\nAnd I'll gladly volunteer myself for the overage draft. (-;\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4817, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: Doug Ward\nSubject: Drivers for Stealth 24\nReply-To: doug@sun.sws.uiuc.edu\nOrganization: University of Illinois at Urbana\nLines: 7\n\nI recently purchased a Diamond Stealth 24 Video card and received\nthe wrong drivers.  Does anyone know where I can ftp the proper\ndrivers?  The dstlth file at cica does not work with\nthis video card.  Please respond to doug@sun.sws.uiuc.edu\n\nThank you\nDoug Ward\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4818, "properties": {"category": "rec.sport.hockey", "text": "From: jrmst8+@pitt.edu (Joseph R Mcdonald)\nSubject: Re: Wirtz is a weenie\nOrganization: University of Pittsburgh\nLines: 27\n\nIn article <wfozwMi00Uh_E1kyE=@andrew.cmu.edu> rp16+@andrew.cmu.edu (Robert Angelo Pleshar) writes:\n>In other TV news, the Penguins announced yesterday that they will have 3\n>fewer broadcast TV games, and will have 22(!) games on some sort of\n>subscription / pay-per-view system. Yuck.\n\nThis is incorrect.  This year the Pens had 61 games on \"free\" TV and 6\ngames on PPV.  Next year they will have 62 games on free TV and 22 on \na subscription basis.  \n\nYou actually get 1 more free game than last year, and there will be no\nmore \"radio-only\" games.\n\nIts a good deal.  Last year, everybody bitched about Baldwin \"breaking\nup the team\".  Now, he goes out of his way to keep the nucleus of this\nteam together and that takes money.  He comes up with a creative way\nto generate more revenue so he can afford this team, and people bitch\nsome more.\n\nEverybody wants something for nothing.\n\nDean\n\n-- \n-------------------------------------------------------------------------------\nDean J. Falcione                                      \"Badges? What badges? We \n(using jrmst8 by permission                            Don't need no stinkin'\n of the owner, Joe McDonald)                           badges!\"\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4819, "properties": {"category": "talk.politics.mideast", "text": "From: arf@genesis.MCS.COM (Jack Schmidling)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nOrganization: MCSNet Contributor, Chicago, IL\nLines: 19\nNNTP-Posting-Host: localhost.mcs.com\n\nIn article <C5ut1s.3xA@bony1.bony.com> jake@bony1.bony.com (Jake Livni) writes:\n>through private contributions on Federal land\".  Your hate-mongering\n>article is devoid of current and historical fact, intellectual content\n>and social value.  Down the toilet it goes.....\n>\n\nAnd we all know what an unbiased source the NYT is when it comes to things\nconcerning Israel.\n\nNeither the Times nor the trained seals who have responded thus far seem to\nrecognize the statement that these \"private funds\" were all tax exmpt.  In\notherwords, American taxpayers put up at least 30% of the money.  And\nfinalyy, how does \"Federal land\" mitigate the offensiveness of this alien\nmonument dedicated to perpetuating pitty and the continual flow of tax money\nto a foreign entity?\n\nThat \"Federal land\" and tax money could have been used to commerate\nAmericans or better yet, to house homeless Americans.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4820, "properties": {"category": "soc.religion.christian", "text": "From: mdw33310@uxa.cso.uiuc.edu (Michael D. Walker)\nSubject: Re: Question about Virgin Mary\nOrganization: University of Illinois at Urbana\nLines: 19\n\n\n\tTwo follow up's to Mark's last posting:\n\n\t1.  As far as current investigations, the Church recently declared the\n\t    crying statue and corresponding messages from Mary at Akita,\n\t    Japan as approved (I found this out about a month ago.)\n\n\t2.  Again in the proof department, start with the appearances of Mary\n\t    at Fatima.  Among other things, there were pictures taken of the\n\t    \"miracle of the sun\" that appeared in some major American newspaper\n\t    (The New York Times, I believe) as well as most of the major\n\t    European newspapers.  \n\n\t    I could talk (or post) for hours on this topic, but... \n\t\t(I have a thesis to write).\n\t\t\t\t\t\tGod Bless,\n\t\t\t\t\t\t\t- Mike Walker\n\t\t\t\t\t\t\t \nP.S.  Anyone want info, I have more.  mdw33310@uxa.cso.uiuc.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4821, "properties": {"category": "rec.autos", "text": "From: pp29616@dcl-nextsc.cso.uiuc.edu (Paul Park)\nSubject: Re: Integra GSR (really about other cars)\nArticle-I.D.: news.C51Fs3.37C\nOrganization: University of Illinois at Urbana\nLines: 21\n\nIn article <1993Apr5.212645.15988@nntpd.lkg.dec.com>  \nkenyon@xqzmoi.enet.dec.com (Doug Kenyon (Stardog Champion)) writes:\n> \n> It's great that all these other cars can out-handle, out-corner, and  \nout-\n> accelerate an Integra.\n> \n> But, you've got to ask yourself one question: do all these other cars  \nhave\n> a moonroof with a sliding sunshade?  No wimpy pop-up sunroofs or power\n> sliding roofs that are opaque.  A moonroof that can be opened to the  \nair,\n> closed to let just light in, or shaded so that nothing comes in.\n> \n> You've just got to know what's important :^).\n> \n> -Doug\n> '93 Integra GS\nhahaha ... my sentiments exactly.  \n\n--\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4822, "properties": {"category": "rec.autos", "text": "From: rremaley@bcm.tmc.edu\nSubject: Re: $6700 for hail damage - a record?\nOrganization: Baylor College of Medicine, Houston, Tx\nLines: 8\nDistribution: usa\nNNTP-Posting-Host: 128.249.27.175\n\nI was in the great storm.....my Mazda MPV was damaged so bad they are \ngoing to replace the top, doors and hood. It is Black so they will repaint \nthe entire vehicle...estimated cost around $7000 and repair time approx. 3 \nto 4 weeks.\n\n\nrremaley@bcm.tmc.edu\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4823, "properties": {"category": "sci.space", "text": "Organization: ESOC European Space Operations Centre\nFrom: <TNEDDERH@ESOC.BITNET>\nSubject: Re: Apollo Training in Iceland\nDistribution: sci\nLines: 10\n\nThe Apollo astronauts also trained at (in) Meteor Crater in the Flagstaff\narea (Arizona).  There is now a museum with a space shop.\nCaution: they ease you by 6$. Compared to a KSC visit it's not worth.\n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nThorsten Nedderhut             |  Disclaimer:\nmbp Software & Systems GmbH    |\nc/o ESA/ESOC/FCSD/OAD/STB      |  Neither ESA nor mbp is responsible\nDarmstadt, Germany             |  for my postings!\ntnedderh@esoc.bitnet           |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.232+0000", "event": "documents", "entityId": 4824, "properties": {"category": "misc.forsale", "text": "From: ergo@wam.umd.edu (Laurice)\nSubject: Brand New Software Packages for Sale\nNntp-Posting-Host: rac3.wam.umd.edu\nOrganization: University of Maryland, College Park\nDistribution: um\nLines: 6\n\nLooking for people to buy brand new software packages including Microsoft\nWindows, Harvard Graphics, Pagemaker, Paradox, Lotus, etc. at 20-25% off\nlist price.\n\nE-mail IMMEDIATELY to \"ergo@wam.umd.edu\" with name, phone #, email address,\nand software names.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4825, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: csd25@keele.ac.uk (C.M. Yearsley)\nSubject: Re: CTX\nLines: 22\nDistribution: world\nNNTP-Posting-Host: seq1.cc.keele.ac.uk\nX-Newsreader: TIN [version 1.1 PL6]\n\nI started a similar thread about a month ago, and got many replies.\nThe summary:\n\nCTX 14\": Nasty, low quality. Avoid.\n\nCTX 15\" Proscan: Not as good as some other makes; however, cheap.\n  Main problem seems poor quality control. Some reported pincushioning\n  (the problem I had), others poor focus, etc, etc.\n\nI complained about mine and it was 're-tuned' (I dodn't even pay\nshipping) and returned to me in 2 days. \n\nIt's now clear, well-focussed and has no pincushioning or barrel\ndistortion at all. I'm very happy with it, and the digital\ncontrols and mode memory are nice. Certainly, a Trinitron\n(say) would be much nicer, but that's well out of my price range.\n\nConclusion: If you're on a budget, get one and be prepared to\nsend it back if it's not perfect. It probably won't be when you get it,\nbut has good potential.\n\nChris\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4826, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: An invisible God!\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 14\n\nIn article <1993Apr17.152833.7811@maths.tcd.ie> \npmoloney@maths.tcd.ie (Paul Moloney) writes:\n>jmeritt@mental.MITRE.ORG (Jim Meritt - System Admin) writes:\n>> God CAN be seen:\n>>        \"And I will take away my hand, and thou shalt see my backparts.\"\n>Wot? God's a mooner? \n\nSuch lunacy!\n\n>(Gee, maybe there's something in this Christianity thing after all -\n>maybe God is John Belushi from \"Animal House\")\n\nThe SuperNatural One wants to have a personal relationship with you.\nJHVH-1, come quick!\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4827, "properties": {"category": "talk.politics.mideast", "text": "From: hm@cs.brown.edu (Harry Mamaysky)\nSubject: Re: Deir Yassin\nIn-Reply-To: aurag@ERE.UMontreal.CA's message of Fri, 23 Apr 1993 18:48:15 GMT\nOrganization: Dept. of Computer Science, Brown University\nLines: 44\n\nIn article <martinb.735590895@brise.ERE.UMontreal.CA> aurag@ERE.UMontreal.CA (Aurag Hassan) writes:\n\n   Are you trying to say that there were no massacres in Deir Yassin\n   or in Sabra and Shatila? If so then let me tell you some good jokes:\n\n   There is not and was not any such thing like jewish killing in WWII\n\n   Palestinians just did what Davidians did for fourty years and more.\n\n   In fact no one was killed in any war at any time or any place.\n\n   People die that is all. No one gets killed.\n\n   Maybe also vietamiese didn't die in Vietnam war killed by american\n   napalm they were just pyromaniacs and that's all.\n\n   Maybe jews just liked gas chambers and no one forced them to get in there.they \n   may be thought it was like snifing cocaine. No?\n\n   What do you think of this ? Isn't it stupid to say so?\n   Well it is as stupid as what you said .Next time you want to lie do it\n   intelligently.\n\n   Sincerely yours.\n\n   Hassan\n\nArab civilians did die at Dir yassin. But there was no massacre. First\nof all, the village housed many *armed* troops. Secondly, the Irgun\nand Stern fighters had absolutely no intentions of killing civilians.\nThe village was attacked only for its military significance. In fact,\na warning was given to the occupants of the village to leave before\nthe attack was to begin.\n\nBy all rational standards, Dir Yassin was not a massacre. The killing\nwas unintentional. The village housed Arab snipers and Arab troops.\nThus it was attacked for its military significance. It was not\nattacked with intentions of killing any civilians.\n\nTo even compare Dir Yassin, in which some 120 or so Arabs died, to the\nHolocaust is absurd. The Irgun did not want to kill any civilians. The\nvillage had almost 1000 inhabitants, most of whom survived.\n\nHarry.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4828, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: If Drugs Should Be Legalized, How?\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 32\n\nIn article <1qrohrINNipe@senator-bedfellow.MIT.EDU> wdstarr@athena.mit.edu (Wil\nliam December Starr) writes:\n>\n>In article <1993Apr18.003848.21571@magnus.acs.ohio-state.edu>,\n>rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) said:\n>\n>>>> However, legalizing it and just sticking some drugs in gas stations to\n>>>> be bought like cigarettes is just plain silly.  [Ryan C Scharfy]\n>>>\n>>> Or, the government could adopt the radical and probably unAmerican\n>>> idea that citizens are free to live their lives as they wish, and\n>>> simply decriminalize cocaine, marijuana, heroin, LSD, etc.  Please\n>>> explain why the idea of allowing recreational drugs to be \"bought like\n>>> cigarettes\" is \"just plain silly.\"  After all, it works just fine for\n>>> nicotine...  [wdstarr]\n>>\n>> Yeah, Cancer is pretty cool, isn't it.\n>\n>Ryan, please explain how the \"coolness\" or lack thereof of cancer is\n>relevant to a discussion of the legalization of currently illegal\n>recreational drugs.  For that matter, please explain how it's even\n>relevant to a discussion of currently _legal_ recreational drugs such as\n>tobacco. [wdstarr]\n\nYou said it worked so well with tobacco.  I was being fascisious(I can't spell \nworth a damn)\n\nLook, this is getting ridiculous, first, I think tobacco should be legal.  \nAnybody who can't see the difference between tobacco and marijuana has got to \nbe high.\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4829, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ray@netcom.com (Ray Fischer)\nSubject: Re: x86 ~= 680x0 ?? (How do they compare?)\nOrganization: Netcom. San Jose, California\nLines: 11\n\nd88-jwa@hemul.nada.kth.se (Jon Wtte) writes ...\n>But the interesting comparision is how fast clock-cycle chips\n>you can get - an Alpha is WAY slow at 66 MHz, but blazes at\n>200 MHz.\n\nThe only problem is going to be finding someone who can make a 200MHz\ncomputer system.  Could be tough.\n\n-- \nRay Fischer                   \"Convictions are more dangerous enemies of truth\nray@netcom.com                 than lies.\"  -- Friedrich Nietzsche\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4830, "properties": {"category": "rec.autos", "text": "From: toml@miles.ca.boeing.com (Tom Locke)\nSubject: $22600 Subaru SVX -  Good deal?\nOrganization: BoGART Graphics Development\nLines: 20\n\nHi netters,\n\nMy friend is seriously thinking of getting the Subaru SVX. There is\na local dealer here in Seattle selling them for $22600, with\nTouring package, that's $7400 off from MSRP. He thinks it's a \nvery good deal (and I think so too). Since he knows I have access to\nthe net, he would like to get anyone's opinion about this car, especially\nin the area of reliability and maintenanability.\nPlease send e-mail to me as my friend doesn't have access to the net.\n\nMy opinion about this car is, you get a lot for $22600:\nauto everything (tranny, climate control, windows, locks, folddow rear seet),\nfull wheel drive, 2+2, fast (143 top spped), heavy (3580lb);-)\n\nThanks in advacne!\n-- \nTom Locke                         Work: (206) 865-6568\nBoeing Computer Services        E-mail: toml@voodoo.boeing.com \nP.O. Box 24346  M/S 7K-20           or: uunet!bcstec!voodoo!toml\nSeattle, WA  98124-0346\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4831, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Ancient Books\nOrganization: Indiana University\nLines: 8\n\nOf course, I'd still recommend that Michael read _True and Reasonable_\nby Douglas Jacoby.\n\nJoe Fisher\n\nOh, and Michael, I wait to see any dents in any armor and my faith\nhasn't wavered since the day I became a disciple.  You may want to try\nit sometime.  It's life-changing!\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4832, "properties": {"category": "comp.graphics", "text": "From: Lars.Jorgensen@p7.syntax.bbs.bad.se (Lars Jorgensen)\nSubject: Externel processes for 3D Studio\nReply-To: Lars.Jorgensen@p7.syntax.bbs.bad.se (Lars Jorgensen)\nDistribution: world\nOrganization: Nr. 5 p} NatR}b \nOD-Comment-To: Internet_Gateway\nLines: 13\n\nTo:All\n\nHi,\n\nDoes anybody have the source code to the externel processes that comes with 3D \nStudio, and mabe som kind of DOC for writing the processes your self.\n\n\n/Lars\n\n+++ Author: Lars_Jorgensen@p7.syntax.bbs.bad.se, Syntax BBS, Denmark\n\n--- GoldED 2.41\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4833, "properties": {"category": "sci.med", "text": "From: wsun@jeeves.ucsd.edu (Fiberman)\nSubject: erythromycin\nOrganization: University of California, San Diego\nLines: 4\nNntp-Posting-Host: jeeves.ucsd.edu\n\nIs erythromycin effective in treating pneumonia?\n\n-fm\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4834, "properties": {"category": "sci.space", "text": "From: MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF)\nSubject: Into Infinity?(WAS:Re: *Doppelganger* (was Re: Vulcan?)\nIn-Reply-To: sysmgr@king.eng.umd.edu's message of 15 Apr 1993 22:22:19 GMT\nOrganization: Abo Akademi University, Finland\nX-News-Reader: VMS NEWS 1.24\nLines: 36\n\nIn <1qkn6rINNett@mojo.eng.umd.edu> sysmgr@king.eng.umd.edu writes:\n\n> In article <1993Apr15.170048.1@fnalf.fnal.gov>, higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey) writes:\n> \n> >This was known as *Journey to the Far Side of the Sun* in the United\n> >States and as *Doppelganger* in the U.K... Later, they went\n> >on to do more live-action SF series: *UFO* and *Space: 1999*.\n> >\n> >The astronomy was lousy, but the lifting-body spacecraft, VTOL\n> >airliners, and mighty Portugese launch complex were *wonderful* to\n> >look at.\n\nExactly. Some of the SPACE:1999 effects remain first-rate even today. \n \n> They recycled a lot of models and theme music for UFO.  Some of the\n> concepts even showed up in SPACE: 1999. \n> \n\nLater on, the Andersons tried to shed their reputation as creators of some\nof the worst pseudo-scientific shows in TV history by flying \"Into Infinity.\"\nThis was a one-off thing done as part of BBC's \"educational SF\" series \"The\nDay After Tomorrow.\" The Anderson episode dealt with a spaceship capable of\nreaching the speed of light (\"lightship Altares\"), the four-man crew eventually \njourneyed into a black hole and ended up on the far side of the galaxy (I\nthink). I saw this as a 9-year-old back in 1976 and liked it very much, but\nthen again I was a fan of SPACE:1999 so I guess I was easily satisfied in those\ndays:-)\n---\nDoes anyone know if \"Into Infinity\" has been released on video? I have some\nSPACE:1999 shows on VHS and know that Thunderbirds etc. also are available in\nEngland.\n \nMARCU$\n> \n>     Software engineering? That's like military intelligence, isn't it?\n>   -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4835, "properties": {"category": "sci.electronics", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Ungrounded GFCIs; was: Re: A question about 120VAC outlet wiring.\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 22\n\nIn article <1qmisf$odp@sdl.Warren.MENTORG.COM> garyg@warren.mentorg.com writes:\n>>\n>>What you CAN do if you want three-prong outlets without additional wiring is \n>>to use a GFCI outlet (or breaker, but the outlet will be cheaper).  In fact,\n>>depending on where you are putting your new outlet(s), a GFCI may be *required*.\n>\n>You still need to supply a proper ground for a Ground Fault Circuit Interrupter!\n\nOddly enough, you don't, at least according to the wiring FAQ that\nis regularly posted on misc.consumers.house.\n\nA GFCI senses discrepancies between the live and neutral wire currents,\nand cuts them both off if a discrepancy is found.  No ground connection\nis needed for it to function.\n\n\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4836, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: brown@NCoast.ORG (Stan Brown)\nSubject: WinWord -- Spelling Dictionaries for non-US English ?\nOrganization: Oak Road Systems, Cleveland Ohio USA\nLines: 17\n\nWord for Windows lets me designate text as being in a language other\nthan US English.  (Alt-F L, Format | Language, as I recall.)  So I mark\nit for English (UK), but it still accepts \"rumor\" and squawks at\n\"rumour\".  As far as I can see, Microsoft didn't include the English\n(UK) dictionary on my disks.  (I don't mean to imply that I was singled\nout; I assume that nobody in the U.S got them.)  I dialed the Microsoft\nBBS, but nothing in the Word for Windows section looked helpful.\n\nCan anyone tell me where or how to obtain the UK spelling dictionary for\nWinword 2.0?  The file name would be SPELL_UK.LEX or something similar.\n\nEmail please; I'll post a summary.\n-- \nStan Brown, Oak Road Systems                    brown@Ncoast.ORG\nEnglish is my native language and I love it.  But don't try to tell me\nthat it's easy to learn or that it makes sense.  If it were, \"baseline\"\nwould rhyme with \"vaseline\".\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4837, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\nLines: 22\n\nIn article <myers.735287742@peach.cs.scarolina.edu> myers@cs.scarolina.edu (Daniel Myers) writes:\n>I am under the impression that MSG \"enhances\" flavor by causing the\n>taste buds to swell.\n\nNo, that's not how it works.\n\n>If this is correct, I do not find it unreasonable\n>to assume that high doses of MSG can cause other mouth tissues to swell.\n\nThis may be through a different mechanism.\n\n>Also, as the many of the occurances (including two of the above)\n>involved beef, and as beef is frequently tenderized with MSG, this is\n>what I suspect as being the cause.\n\nTenderizing beef involves sprinking or marinading it in papain, an enzyme.\n\"Meat tenderizer\" packets might contain papain and MSG and seasonings, but\nMSG doesn't act as a tenderizer.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4838, "properties": {"category": "rec.sport.hockey", "text": "From: alvstad@mari.acc-admin.stolaf.edu (Mad Dog)\nSubject: Truly a sad day for hockey\nOrganization: St. Olaf College; Northfield, MN\nLines: 19\n\n\nA fine 26 year history came to a close tonight, as the Minnesota North Stars, \nor Norm's Stars (whichever you prefer) lost to the Red Wings by a score of\n5-3.  The Stars goals were scored by Mike McPhee and Ulf Dahlen, who netted\ntwo including the final one in franchise history, with less than a minute to\nplay.\n\nTonight, on the air on the Stars TV telecast, announcer Al Shaver, the voice\nof the North Stars, stated basically that he will not follow the team to \nDallas.  Shaver, when asked by his son (who was doing the broadcast with him),\n\"What will you do now?\" responded, \"First I'm going to get me a new pair of\nslippers.  Then I'm going to sit in my easy chair and watch the world go by.\"\n\nThank you North Stars, and thank you Al Shaver, for 26 years of Minnesota\nmemories.\n\nJoel Alvstad\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4839, "properties": {"category": "sci.space", "text": "From: jaskew@spam.maths.adelaide.edu.au (Joseph Askew)\nSubject: Re: Small Astronaut (was: Budget Astronaut)\nOrganization: Statistics, Pure & Applied Mathematics, University of Adelaide\nLines: 25\n\nIn article <1pfkf5$7ab@access.digex.com> prb@access.digex.com (Pat) writes:\n\n>Only one problem with sending a corp of Small astronauts.\n>THey may want to start a galactic empire:-)   Napoleon\n>complex you know.  Genghis Khan was a little guy too.  I'd bet\n>Julius caesar never broke 5'1\".\n\nI think you would lose your money. Julius was actually rather tall\nfor a Roman. He did go on record as favouring small soldiers though.\nThought they were tougher and had more guts. He was probably right\nif you think about it. As for Napoleon remember that the French\navergae was just about 5 feet and that height is relative! Did he\nreally have a complex?\n\nObSpace :  We have all seen the burning candle from High School that goes\nout and relights. If there is a large hot body placed in space but in an\natmosphere, exactly how does it heat the surroundings? Diffusion only?\n\nJoseph Askew\n\n-- \nJoseph Askew, Gauche and Proud  In the autumn stillness, see the Pleiades,\njaskew@spam.maths.adelaide.edu  Remote in thorny deserts, fell the grief.\nDisclaimer? Sue, see if I care  North of our tents, the sky must end somwhere,\nActually, I rather like Brenda  Beyond the pale, the River murmurs on.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4840, "properties": {"category": "rec.motorcycles", "text": "From: jrwaters@eos.ncsu.edu (JACK ROGERS WATERS)\nSubject: Re: The quest for horndom\nOrganization: North Carolina State University, Project Eos\nLines: 30\n\nIn article <1993Apr5.171807.22861@research.nj.nec.com> behanna@phoenix.syl.nj.nec.com (Chris BeHanna) writes:\n>In article <1993Apr4.010533.26294@ncsu.edu> jrwaters@eos.ncsu.edu (JACK ROGERS WATERS) writes:\n>>No laughing, please.  I have a few questions.  First of all, do I\n>>need a relay?  Are there different kinds, and if so, what kind should\n>>I get?  Both horns are 12 Volt.\n>\n>\tI did some back-of-the-eyelids calculations last night, and I figure\n>these puppies suck up about 10 amps to work at maximum efficiency (i.e., the\n>cager might need a shovel to clean out his seat).  Assumptions:  125dBA at one\n>meter.  Neglecting solid angle considerations and end effects and other\n>acoustic niceties from the shape of the horn itself, this is a power output\n>of 125 Watts.  125Watts/12Volts is approx. 10 Amps.\n>\n>\tYes, get a relay.\n>\n>\tYes, tell me how you did it (I want to do it on the ZX).\n>\n>Later,\n\nI'll post a summary after I get enough information.  I'll include\ntips like \"how to know when the monkey is pulling your leg\".  Shouldn't\nmonkey's have to be bonded and insured before they work on bikes?\n\nJack Waters II\nDoD#1919\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~ I don't fear the thief in the night.  Its the one that comes in the  ~\n~ afternoon, when I'm still asleep, that I worry about.                ~\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4841, "properties": {"category": "talk.politics.misc", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: The Tories could win the \"lottery\"...Clinton GST?\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 41\n\nPhill Hallam-Baker (hallam@zeus02.desy.de) writes:\n>gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>|>cmk@world.std.com (Charles M Kozierok) writes:\n>|>>gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>|>>} \n>|>>} Secondly, any Canadian who has worked and participates in the\n>|>>} insurance (it's a negative option, you have to explicitly decline\n>|>>} it) knows that the premium is deducted separately ...\n>|>>\n>|>>yes, and some Americans actually have a problem with having more\n>|>>of their money taken from them to pay for others' health care...\n>|>\n>|>But note again, the Canadian and German health insurance is\n>|>voluntary\n>\n>Not true. I am required to have insurance by law. the method of\n>collection effectively makes it a tax.\n\nCould it be because you're British, Phill, and living in Germany?\nWhile the EC working rules are more liberal than what we have in\nthe 1989 US-Canada FTA, there's probably a law about that (having\nhealth insurance coverage is a condition of my being down here,\nfor example).\n\nYou have mentioned this once before, yet both the NY Times profile on\nthe German sickness funds (late Jan.) and pamphlets that my girlfriend\ngives to her language students from the German consulate both say that\nit is \"voluntary\" (okay, there were quotation marks (-;) and that only\n90% of the population is covered by the sickness funds (analogous to\nour provincial health insurances, but not divided by province/state).\n\nAnother guy in health care policy says that the Turkish guest workers\naren't covered ... he's written to me a couple of times (he's not a\npost-er).  I'll ask him ...\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4842, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: I've found the secret!\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 15\n\n\nWhy are the Red Sox in first place?  Eight games into the season, they\nalready have two wins each from Clemens and Viola.  Clemens starts\nagain tonight, on three days rest.\n\nWhat's up?  Are the Sox going with a four-man rotation?  Is this why\nHesketh was used in relief last night?\n\nHm.\n\nCheers,\n-Valentine\nP.S. I was wrong.  The Sox have already scored 18 runs in two games\nthis week.  They should reach 25 without trouble.  I still think it's\na fluke.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4843, "properties": {"category": "rec.sport.hockey", "text": "From: ayari@judikael.loria.fr (Ayari Iskander)\nSubject: NHLPA poll (Stats/3rd uptade)\nOrganization: Crin - Inria-Lorraine\nLines: 54\n\n3rd uptade:\n\nHere are the standings for the poll after 39 votes: 5 points for 1st, 4 for 2nd,... 1 point for 5th: \n\nEA/ NHLPA game\n\n1. DET 102\n2. CHI  97 \n3. NY   74\n4. VAN  73\n5. MTL  69\n6. PIT  33\n7. WSH  29\n8. BOS  21\n9..ASW  16 \n10.CGY  10\n11.QUE   9\n12.ASE   8\n13.WPG   7\n14.LA    5\n   OTW   5\n   STL   5\n   TOR   5\n18.BUF   3\n   PHI   3\n   TBY   3\n21.SJ    2\n22.MIN   1\n   Atlanta to win Turner Cup 1 (not in the game, but 1 person vote)\n24.EDM   0\n   HTF   0\n   LI    0\n   NJ    0\n\n4 teams have no point\nContinue to send your votes in this format (until April 20th, approximately)\n------------------------------------------------\n1.\n2.\n3.\n4.\n5.\n------------------------------------------------\n\n\nKeywords: \n\n\n-- \n_____________________________________________________\n\n  Email : Iskander.Ayari@loria.fr ou ayari@loria.fr\n_____________________________________________________\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4844, "properties": {"category": "comp.graphics", "text": "From: markus@octavia.anu.edu.au (Markus Buchhorn)\nSubject: Re: HDF readers/viewers\nOrganization: Australian National University, Canberra\nLines: 22\nDistribution: world\nNNTP-Posting-Host: 150.203.5.35\nOriginator: markus@octavia\n\n\nI wrote...\n> \n> G'day all,\n> \n> Can anybody point me at a utility which will read/convert/crop/whatnot/\n> display HDF image files ? I've had a look at the HDF stuff under NCSA \n> and it must take an award for odd directory structure, strange storage\n> approaches and minimalist documentation :-)\n\nand it has since turned out that all the mirror sites I looked at were \nfooled by a restructuring at the original site - zaphod.ncsa.uiuc.edu - \nand hence were in a mess. That and a pointer to 'imconv' should get\nme started. Ta muchly.\n\nCheers\n\tMarkus\n-- \nMarkus Buchhorn, Parallel Computing Research Facility\nemail = markus@octavia.anu.edu.au\nAustralian National University, Canberra, 0200 , Australia.\n[International = +61 6, Australia = 06] [Phone = 2492930, Fax = 2490747]\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4845, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: chen@citr.uq.oz.au (G. Chen)\nSubject: Help on bitmaps\nSummary: Bitmap size\nKeywords: Bitmap, windows 3.1, SDK\nOrganization: Prentice Centre, University of Queensland\nLines: 18\n\nI wonder if anyone can tell me whether or not I can create a bitmap\nof any size?  I followed the bitmap creation example in SDK manual\nand specified a 24x24 bitmap (set the width/height to 24) and supplied\na byte string with 72 chars.  But I just cannot get the right bitmap\nimage.  I changed the width/height to 32x32 and used the same value\nstring (padded with zero byets to make up to the right size) and\ngot the image.\n\nThe example in the manual is 64x32 size, which are multiple of 2 bytes.\nCan you define a bitmap image of any size?\n\nThanks very much.\n\nG Chen chen@citr.uq.oz.au\n--\nG. Chen, Centre for Information Technology Research, University of\nQueensland, Australia 4072\nchen@citr.uq.oz.au  Tel: +61 7 365 4325, Fax +61 7 365 4399\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4846, "properties": {"category": "rec.sport.hockey", "text": "From: J056600@LMSC5.IS.LMSC.LOCKHEED.COM\nSubject: Re: Lindros will be traded!!!\nArticle-I.D.: LMSC5.93096.46336.J056600\nOrganization: Lockheed Missiles & Space Company, Inc.\nLines: 19\n\nIn <1993Apr5.163209.576@r-node.hub.org>, Jay Chu writes:\n\n>True rumor.  Fact!  A big three way deal!\n\n>Eric Lindros going to Ottawa Senators.  And Senators get $15mill from\n>Montreal.\n\n>Montreal gets Alexander Daigle (the first round pick from Senators)\n\n>Philly gets Damphousse, Bellow, Patrick Roy and a draft pick.\n\nSheesh.  The rumor mill strikes again.  But let's just assume this were true.\nMy question is this:\n\nWhat would Montreal give San Jose if the Sharks got first pick and took Daigle?\n\n\nTim Irvin\n*****************************************************************************\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4847, "properties": {"category": "rec.motorcycles", "text": "From: frahm@ucsu.colorado.edu (Joel A. Frahm)\nSubject: Re: Identify this bike for me\nArticle-I.D.: colorado.1993Apr6.153132.27965\nReply-To: frahm@ucsu.colorado.edu\nOrganization: Department of Rudeness and Pomposity\nLines: 17\nNntp-Posting-Host: sluggo.colorado.edu\n\n\nIn article <1993Apr6.002937.9237@adobe.com> cjackson@adobe.com (Curtis Jackson) writes:\n>In article <1993Apr5.193804.18482@ucsu.Colorado.EDU> coburnn@spot.Colorado.EDU (Nicholas S. Coburn) writes:\n>}first I thought it was an 'RC31' (a Hawk modified by Two Brothers Racing),\n>}but I did not think that they made this huge tank for it.  Additionally,\n>\nI think I've seen this bike.  Is it all white, with a sea-green stripe\nand just 'HONDA' for decals, I've seen such a bike numerous times over\nby Sewall hall at CU, and I thought it was a race-prepped CBR. \nI didn't see it over at the EC parking lot (I buzzed over there on my \nway home, all of 1/2 block off my route!)  but it was gone.\n\nIs a single sided swingarm available for the CBR?  I would imagine so, \nkinda neccisary for quick tire changes.  When I first saw it, I assumed it\nwas a bike repainted to cover crash damage.\n\nJoel.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.233+0000", "event": "documents", "entityId": 4848, "properties": {"category": "sci.electronics", "text": "From: whit@carson.u.washington.edu (John Whitmore)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nArticle-I.D.: shelley.1qngqlINNnp8\nOrganization: University of Washington, Seattle\nLines: 25\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <C5L5x0.KJ7@vcd.hp.com> johne@vcd.hp.com (John Eaton) writes:\n>-s87271077-s.walker-man-50- (swalker@uts.EDU.AU) wrote:\n\n>During the nuclear fission reaction the uranium fuel can get hot enough\n>to melt. When this happens the liquid uranium is pumped to the cooling\n>tower where it is sprayed into the air. \n\n\tNonsense.  First, the uranium fuel is sealed in zirconium\nalloy cylinders (which don't melt in any circumstances short of \nmajor failure of the power plant).  Second, the primary water\n(that circulates inside the reactor core) is never pumped into the\ncooling tower (it's the SECONDARY water cycle that goes \nthrough the cooling tower).  Third, liquid uranium would burst\ninto flame on contact with air.\n\n>Contact with the cool outside air\n>will condense the mist and it will fall back to the cooling tower floor.\n>There it is collected by a cleaning crew using shop vacs and is then\n>reformed into pellets for reactor use the next day.\n\n\tCleaning crew working in a mist of uranium?  This is a\ntoxic heavy metal, even if it WEREN'T radioactive.  Shouldn't there\nbe some smileys here?  Or frowneys? \n\n\tJohn Whitmore\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4849, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Braves Pitching UpdateDIR\nFrom: grabiner@math.harvard.edu (David Grabiner)\nOrganization: /etc/organization\nNntp-Posting-Host: boucher.harvard.edu\nIn-reply-to: drw3l@delmarva.evsc.Virginia.EDU's message of Fri, 16 Apr 1993 16:19:23 GMT\nLines: 41\n\nIn article <C5L40C.9LC@murdoch.acc.Virginia.EDU>, David Robert Walker writes:\n\n> In article <8994@blue.cis.pitt.edu> traven@pitt.edu (Neal Traven) writes:\n\n>>One also has to separate offense into batting and baserunning, with the\n>>split probably somewhere around 49.5% and 0.5%.\n\n> I'd give baserunning a little more credit than that, maybe 45-5, or\n> even 40-10. Give a team of Roberto Alomar and a team of John Oleruds\n> identical batting stats (which wouldn't be that unreasonable), and\n> even if you don't let Roberto steal a single base, they'll score a lot\n> more than the Oleruds by going first-to-third more often. (No offense,\n> Gordon).\n\nI wouldn't give baserunning that much value.\n\nThe above effect is clear, but there are other effects as well.  If\nOlerud hits a double, any runner on first will score; if Alomar legs an\nextra base onto a hit in the gap, the runner on first may need to hold\nat third.  Thus Olerud's doubles have more advancement value than\nAlomar's.  (Of course, Alomar is more likely to score after hitting a\ndouble.)\n\nAnother reason not to give too much extra value to baserunning is that\nthe runs created formulas work for very fast and very slow teams.  No\nteam in the 1950's ran much, but some teams certainly had faster players\nthan others.  Still, the current runs created formulas work just as well\nin the 1950's for all teams.  \n\nBill James gives the 1955-1958 Senators as an example.  They used Harmon\nKillebrew regularly as a pinch runner, and in 1957, stole 13 bases with\n38 times caught stealing.  Yet they scored slightly more runs than\npredicted by Runs Created.\n\n\n\n--\nDavid Grabiner, grabiner@zariski.harvard.edu\n\"We are sorry, but the number you have dialed is imaginary.\"\n\"Please rotate your phone 90 degrees and try again.\"\nDisclaimer: I speak for no one and no one speaks for me.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4850, "properties": {"category": "rec.motorcycles", "text": "From: karish@gondwana.Stanford.EDU (Chuck Karish)\nSubject: Re: Recommended bike for a tall beginner.\nOrganization: Mindcraft, Inc.\nDistribution: usa\nLines: 13\n\nIn article <47116@sdcc12.ucsd.edu> jtozer@sdcc3.ucsd.edu (John Tozer) writes:\n>\tI am looking for advice on what bikes I should check out.  I\n>am 6'4\" tall, and find my legs/hips uncomfortably bent on most of\n>the bikes I have ridden (not many admittedly).  Are there any bikes\n>out there built for a taller rider?\n\nThere's plenty of legroom on the Kawasaki KLR650.  A bit\nshort in the braking department for spirited street riding,\nbut enough for dirt and for less-agressive street stuff.\n--\n\n    Chuck Karish          karish@mindcraft.com\n    (415) 323-9000 x117   karish@pangea.stanford.edu\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4851, "properties": {"category": "misc.forsale", "text": "From: Wil.Chin@launchpad.unc.edu (Wilson Chin)\nSubject: 386 Motherboard for sale!\nKeywords: 386 motherboard computer forsale cheap\nNntp-Posting-Host: lambada.oit.unc.edu\nOrganization: University of North Carolina Extended Bulletin Board Service\nLines: 25\n\nI've got a 386 motherboard for sale:\n\n    i386-25DX processor w/2Mb RAM\n    AMI BIOS w/setup\n    Math Coprocessor socket\n    8 expansion slots\n    Full sized motherboard--fits any full-sized case\n    All manuals included\n\n    Make me an offer!\n\n\nReason for sale: I've got a new HP workstation to play with now :)\n\nAlso: other peripherals (VGA card/moditor, TEAC Disk Drives, printer, etc)\n      available.\n\nE-mail for more info.  \n\n\n--\n   The opinions expressed are not necessarily those of the University of\n     North Carolina at Chapel Hill, the Campus Office for Information\n        Technology, or the Experimental Bulletin Board Service.\n           internet:  laUNChpad.unc.edu or 152.2.22.80\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4852, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wild@access.digex.com (wildstrom)\nSubject: Re: Win NT - what is it???\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 21\nNNTP-Posting-Host: access.digex.net\n\nrmohns@vax.clarku.edu writes:\n\n>Chicogo is what I want to use.  It is, like NT, a true OS with thrue \n>multitasking and multithreading, but has much smaller hardware requirements, \n>and does not meet DOD security specs (but that's okay since it will probably \n>be more of a client OS).  there are a few otehr differences, but those are the \n>main ones.  There was an article about Chicogo in PC Week last August.\n>\tThe Chicogo and NT development groups at Micro$oft are in intense \n>competition, so it is said.  However, I think a different relationship will \n>arise: NT will be the server (*N*etowrk *T*echonology), Chicogo will be the \n>client machine.  It is entirely possible for different OS's to work together, \n>partly because Chicogo is just a small NT (think of it that way, anyway).  \n>(Novell Netware creates an OS on the server that is truly not DOS, so don't\n>scorn the concept.)\n>\tAnyway, don't expect it soon.  Windows 4 and DOS 7 are supposed to be \n>released next year (read: see it in 95), so I expect that Chicogo won't be out \n>til '96.\nHow does Chicago differ from the (sort of) announced Windows 4. My understand-\ning, at least from the InbfoWorld accound of Windows 4 is that it's sort\nof NT Lite--a full-fledged operating system but lacking server and security\nfeatures that make NT such a bear. Is W4 not true multithreading?\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4853, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rene@hardy.u.washington.edu (Rene Magritte)\nSubject: Re: Win NT - what is it???\nArticle-I.D.: shelley.1qnaesINNemf\nOrganization: University of Washington\nLines: 30\nNNTP-Posting-Host: hardy.u.washington.edu\n\nwild@access.digex.com (wildstrom) writes:\n\n>rmohns@vax.clarku.edu writes:\n\n>>Chicogo is what I want to use.  It is, like NT, a true OS with thrue \n>>multitasking and multithreading, but has much smaller hardware requirements, \n>>and does not meet DOD security specs (but that's okay since it will probably \n>>be more of a client OS).  there are a few otehr differences, but those are the \n>>main ones.  There was an article about Chicogo in PC Week last August.\n>>\tThe Chicogo and NT development groups at Micro$oft are in intense \n>>competition, so it is said.  However, I think a different relationship will \n>>arise: NT will be the server (*N*etowrk *T*echonology), Chicogo will be the \n>>client machine.  It is entirely possible for different OS's to work together, \n>>partly because Chicogo is just a small NT (think of it that way, anyway).  \n>>(Novell Netware creates an OS on the server that is truly not DOS, so don't\n>>scorn the concept.)\n>>\tAnyway, don't expect it soon.  Windows 4 and DOS 7 are supposed to be \n>>released next year (read: see it in 95), so I expect that Chicogo won't be out \n>>til '96.\n>How does Chicago differ from the (sort of) announced Windows 4. My understand-\n>ing, at least from the InbfoWorld accound of Windows 4 is that it's sort\n>of NT Lite--a full-fledged operating system but lacking server and security\n>features that make NT such a bear. Is W4 not true multithreading?\n\n \n\tCan anyone tell me how Chicago/Windows 4 would differ from\nOS/2 2.x?  Believe it or not, I'm not trying to start a flame war,\nhere.   I'm simply curious  if there is going to be any feature\nadvantage in either of these products (I do not consider the fact that\nit has uncle bills seal of approval much of a feature...)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4854, "properties": {"category": "misc.forsale", "text": "From: minh@bigwpi.WPI.EDU (Minh Anh Pham)\nSubject: <><><><>SIPPs MEMORY FORSALE<><><><>\nOrganization: Worcester Polytechnic Institute\nLines: 23\nNNTP-Posting-Host: bigwpi.wpi.edu\n\n                        <><><><> SIPPs FOR SALE <><><><>\n\nI have 16 SIPPs for sale.  I upgraded a few systems memory, so I don't need \nthese no more.  They are:\n\n     11- 256x9 SIPPs @70NS\n     5-  256X9 SIPPs @80NS\n     --------------------\n     4 MEG TOTAL          ALL FOR $110\n                      OR  4 (1 MEG) FOR $27\nNOTE:  SIPPs are gernally more expensive then SIMMs\n\nThese SIPPs are in good working condition........\n\nBuyer pay shipping/handling.\n\nIf interested reply to:\n\t\t\tminh@wpi.wpi.edu\n-- \n\n  Minh Pham    \n  E-mail: minh@wpi.wpi.edu           \n  Worcester Polytechnical Institute\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4855, "properties": {"category": "rec.sport.baseball", "text": "From: scott@asd.com (Scott Barman)\nSubject: Re: BaseballIsDead\nOrganization: American Software Development Corp., West Babylon, NY\nLines: 29\n\nIn article <1993Apr8.195853.10650@midway.uchicago.edu> as16@midway.uchicago.edu writes:\n>My question to you all is why does the media seem to embrace the theme of the\n>death of baseball so strongly?  I have seen articles of a similar vein in \n>the Chicago Tribune and in sports editorials on tv.\n\nMaybe because baseball is the only business where those who are\nresponsible for the fiscal aspects of the game preach gloom and doom. \nThese allegedly intelligent people seem to predict bad times, losing\nmoney, bankruptcies at an alarming rate, and there's going to be an\nincreased degradation of the product they produce.  Could you imagine\nIBM, with all their problems, promoting themselves the way Major League\nBaseball does?  Their stock would plummet to unthinkable depths (not\nthat they are too far from it now :-).  What would happen at GM?  Where\nwould GM be if they admitted to cutting corners and producing an\ninferior product because of alleged labor problems? I think it shows a\nlack of confidence for the people who run the game.\n\n>Anyway, it just frustrates me when the media says such things, because it\n>inevitably leads to owners trying quick fixes like increasing play-offs to\n>satisfy television or trying interleague play to drum up interest.  \n\nForget it.  Word has it three divisions with a wild card is just about\na done deal.  It has to be decided soon since negotiations with the\nnetworks also have to begin soon.\n-- \nscott barman    | Mets Mailing List (feed the following into your shell):\nscott@asd.com   |            mail mets-request@asd.com <<!\n                |            subscribe\n Let's Go Mets! |            !\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4856, "properties": {"category": "sci.med", "text": "From: julkunen@messi.uku.fi (Antero Julkunen)\nSubject: What about sci.med.chemistry\nOrganization: University of Kuopio, Finland\nLines: 10\n\n\nThere is this newsgroup sci.med.physics and there has been quite a lot\ndiscussion in this group about many chemical items e.g. prolactin\ncholesterol, TSH etc. Should there also be a newsgroup sci.med.chemistry?\n\n\n-- \nAntero Julkunen, Dept Clinical Chemistry, University of Kuopio, Finland\ne-mail: julkunen@messi.uku.fi, phone +358-71-162680, fax +358-71-162020\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4857, "properties": {"category": "sci.electronics", "text": "From: Mike Diack <mike-d@staff.tc.umn.edu>\nSubject: Anyone know about DATA I/O device proggers ?\nX-Xxmessage-Id: <A7F5DAE6E6026550@dialup-slip-1-80.gw.umn.edu>\nX-Xxdate: Sat, 17 Apr 93 16:03:50 GMT\nNntp-Posting-Host: dialup-slip-1-80.gw.umn.edu\nOrganization: persian cat & carpet co.\nX-Useragent: Nuntius v1.1.1d7\nLines: 9\n\nI keep finding these programmers in local junk shops. This may\nmean that they are indeed junk - but i'd like to hear from anyone \nelse that may have met up with them. The basic device is a\n\"Data I/O 29A universal programmer\", and the usual pod is a \n\"LogicPak 303A-Vo4\" with a \"303A-001\" programming tester/\nadapter. I'd really like to hear from anyone who knows whether\nthese monsters are worth bothering with. All i want to do is blast\nPALCE22V10s. - Ideas, folks\nMike.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4858, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Catholic Lit-Crit of a.s.s.\nFrom: NUNNALLY@acs.harding.edu (John Nunnally)\nDistribution: world\nOrganization: Harding University, Searcy, AR\nNntp-Posting-Host: acs.harding.edu\nX-News-Reader: VMS NEWS 1.24In-Reply-To: dlphknob@camelot.bradley.edu's message of 16 Apr 93 18:57:20 GMTLines: 45\nLines: 45\n\nIn <dlphknob.734986640@camelot> dlphknob@camelot.bradley.edu writes:\n\n> In <1993Apr14.101241.476@mtechca.maintech.com> foster@mtechca.maintech.com writes:\n> \n> >I am surprised and saddened. I would expect this kind of behavior\n> >from the Evangelical Born-Again Gospel-Thumping In-Your-Face We're-\n> >The-Only-True-Christian Protestants, but I have always thought \n> >that Catholics behaved better than this.\n> >                                   Please do not stoop to the\n> >level of the E B-A G-T I-Y-F W-T-O-T-C Protestants, who think\n> >that the best way to witness is to be strident, intrusive, loud,\n> >insulting and overbearingly self-righteous.\n> \n> (Pleading mode on)\n> \n> Please!  I'm begging you!  Quit confusing religious groups, and stop\n> making generalizations!  I'm a Protestant!  I'm an evangelical!  I don't\n> believe that my way is the only way!  I'm not a \"creation scientist\"!  I\n> don't think that homosexuals should be hung by their toenails!  \n> \n> If you want to discuss bible thumpers, you would be better off singling\n> out (and making obtuse generalizations about) Fundamentalists.  If you\n> compared the actions of Presbyterians or Methodists with those of Southern \n> Baptists, you would think that they were different religions!\n> \n[Sarcasm on]\nBe sure we pick on the \"correct groups\" here.  \"Bible thumpers\",\n\"fundamentalists\", and Southern Baptists *deserve* our hasty generalizations\nand prejudicial statements.  Just don't pick on the Presbyterians\nand the Methodists!\n[Sarcasm off] \n> Please, prejudice is about thinking that all people of a group are the\n> same, so please don't write off all Protestants or all evangelicals!\n> \n> (Pleading mode off.)\n> \n> God.......I wish I could get ahold of all the Thomas Stories......\n> --\n> \t\"Fbzr enval jvagre Fhaqnlf jura gurer'f n yvggyr oberqbz, lbh fubhyq\n> nyjnlf pneel n tha.  Abg gb fubbg lbhefrys, ohg gb xabj rknpgyl gung lbh'er \n> nyjnlf znxvat n pubvpr.\"\n> \t\t\t--Yvan Jregzhyyre\n> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n>         Jemaleddin Sasha David Cole IV - Chief of Knobbery Research\n>                         dlphknob@camelot.bradley.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4859, "properties": {"category": "comp.windows.x", "text": "From: stevedav@netcom.com (Steve Davidson)\nSubject: MOOLIT and OLIT\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 10\n\nDoes anyone know the difference between MOOLIT and OLIT?  Does Sun\nsupport MOOLIT?  Is MOOLIT available on Sparcstations?\n\nI have recntly downloaded a copy of wkshTree written by Eric Wallengren\nof Univel.  There are many widgets that are apparently available only\nto MOOLIT but not OLIT.\n\nIs there a wkshTree program available under OLIT?\n\nsteved@cfcl.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4860, "properties": {"category": "rec.motorcycles", "text": "From: jeq@lachman.com (Jonathan E. Quist)\nSubject: Re: GGRRRrrr!! Cages double-parking motorc\nNntp-Posting-Host: birdie.i88.isc.com\nOrganization: Lachman Technology, Incorporated, Naperville, IL\nLines: 27\n\nIn article <1qjmf6$d0i@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n>In article 34211@castle.ed.ac.uk, wbg@festival.ed.ac.uk (W Geake) writes:\n>>\n>>Ultra sticky labels printed with your\n>>favourite curse are good - even our local hospitals use them instead of\n>>wheel clamps, putting one (about A5 size) on each window of the cage.\n>\n>An apartment complex where I used to live tried this, only they put the\n>thing over the driver's window, \"so they couldn't miss it.\"  A friend\n>damned near wrecked on the way home one night, her vision blocked by\n>the sticker.  I suggested to the manager the ENORMOUS liability they\n>were assuming by pulling that stunt.  She claimed it was the driver who\n>was at fault for illegally parking in the first place.  That would\n>probably be good for a laugh or two in court, before they found her\n>liable for $Serious.\n>\n>Be careful about putting stickers on cages' windows.\n\nYeah, make darn sure you cover all the glass, so the driver can't\nreasonably expect to be able to drive with the things on the car.\n\n\n-- \nJonathan E. Quist        jeq@lachman.com       Lachman Technology, Incorporated\nDoD #094, KotPP, KotCF '71 CL450-K4 \"Gleep\"                 Naperville, IL\n __       There's nothing quite like the pitter-patter of little feet,\n \\/                   followed by the words \"Daddy!  Yay!\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4861, "properties": {"category": "rec.motorcycles", "text": "From: jjd1@cbnewsg.cb.att.com (james.j.dutton)\nSubject: Re: Question: Arai Quantum-S\nOrganization: AT&T\nDistribution: na\nLines: 30\n\nIn article <C4zqEL.E9B@ms.uky.edu> amir@ms.uky.edu (Amir Sadr) writes:\n>they way I want it to.  However, I have the following problem:  My chin hangs\n>out from the bottom of the helmet.  I am curious to know whether I would still\n>have this problem if I were to switch to the extra large size?  In particular,\n>can anyone tell me \"for certain\", if the outer shell of the \"Arai Quantum-S\" in\n>size X-large is any different (larger-rounder-etc.) than the same helmet in size\n>large?  Or if the inner padding/foam on the X-large is such that one's head\n>fits a little deeper in the helmet, and thus one's chin would not stick out?\n>This is true for the very old Arthur-Fulmer helmets that I have.  Namely, my\n>chin hangs out a little from the bottom of the Large helmet, and not at all\n>from the X-large (but the X-large is not as snug as the large).  The dealer\n>is willing to replace the helmet at no additional cost (i.e. shipping), but\n>I want to make sure that 1) the X-large is in fact a little bigger or linered\n>such that my chin will not hang out and 2) how much looser will my head fit in\n>the X-large?  If anyone has recent experience with this helmet, please let me\n>hear (E-mail) from you ASAP.  Thank you so much.  Amir-\n\nI'm not sure about the helmet but for chin questions you might\nwant to write to a:\n\n Jay Leno\n c/o Tonight Show \n Burbank Calif.\n \nGood luck.\n \n================================================================================\n Steatopygias's 'R' Us.          doh#0000000005 That ain't no Hottentot.\n Sesquipedalian's 'R' Us. ZX-10. AMA#669373 DoD#564. There ain't no more.\n================================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4862, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: holland@ug.cs.dal.ca (Shane A Holland)\nSubject: Comments on Xtree for Windows ????\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nLines: 15\nNntp-Posting-Host: ug.cs.dal.ca\n\n\n   I am looking for comments on Xtree (Pro ??) for Windows.  I am \nthinking of buying the product but I have not even seen it yet.\n\nThank you...\n\n     Shane Holland\n\n                            holland@ug.cs.dal.ca\n\n\n-- \n\n-----------------------------------------------------------------------\nholland@ug.cs.dal.ca maurack@ac.dal.ca\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4863, "properties": {"category": "rec.sport.baseball", "text": "From: woods@ncar.ucar.edu (Greg Woods)\nSubject: Re: Rockies spoon-feed game to Mets\nOrganization: Scientific Computing Division/NCAR Boulder, CO\nLines: 18\n\nIn article <4200416@hpcc01.corp.hp.com> boell@hpcc01.corp.hp.com (Donald P Boell) writes:\n>Is it just me, or does Bichette look totally lost in the outfield?\n\nHe's been playing horrible defense. Baylor said after Wednesday's game that\nhe wanted to shake up the lineup a little, because Bichette has been\nhaving a rough time defensively and Jerald Clark has not been hitting.\nHe was true to his word; I went to Thursday's game and Gerald Young\nwas in right and Daryl Boston (who has a very hot bat) was in left.\nBaylor was careful to say though that he didn't necessarily mean for\nthese changes to be permanent but he wanted to give these other two\na shot while Clark and Bichette were not playing well.\n\nIn defense of Bichette, it looks like right field in Mile High Stadium\nis a bitch to play. Some of the visiting outfielders have been having\nsome problems too (although Bobby Bonilla made a great catch crashing into\nthe wall to rob Daryl Boston of an extra base hit in Thursday's game)\n\n--Greg\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4864, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Re: plus minus stat\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 56\n\n\nIn article 6143@ramsey.cs.laurentian.ca, maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n>In <1993Apr14.201910.13370@sol.UVic.CA> gballent@vancouver.UVic.CA (Greg  Ballentine) writes:\n\n>>1. You have completely missed the point with the Selke trophy.  It goes\n>>to the best defensive forward.  This is the forward who forgoes points\n>>to help his team out defensively.  It is an unsung hero of sorts.  Yes,\n>>Lemieux and Gilmour are good defensive players, but they play a more\n>>offensively oriented style than a true defensive forward.  This year,\n>\n>You mean guys that check but can't score?  The guys who can both check\n>and score shouldn't be candidates?  Is that right?\n\nThe Selke candidate forwards main purpose on a shift is to prevent goals\nfrom being scored- not to score them.  When Lemieux or Gilmour play their\nnumber one purpose is to score- defence is secondary- especially considering\nthe line that plays against them is probably a defensive one.  That is\nwhy they are not Selke candidates.\n\n>>2. When Tarasov called Bob Gainey the best player in the world, it was\n>>assumed that he meaned the best _technical_ player- the one who knew\n>>every intricacy about playing hockey and never made a technical error.\n>\n>And who was it that made this assumption?  All of your friends maybe?\n>Sorry Greg, but 2 people aren't enough...you can \"assume\" all that you\n>want to, but if you think Tarasov was serious then you are an idiot.\n\nSomeone posted something about this assumption being lost in translation\n(it was a few months ago).  Whoever this was please repost it.\n\n>>I agree with this assessment.  Bob Gainey may have been the best technical\n>>player ever.\n>\n>Right Greg.  Did you see this in the Sun or something?  What did you think\n>of Claude Provost?  Gainey was nothing more than a journeyman player who's\n>outstanding abilities were entirely political.  He might have had a col-\n>lection of defensive skills but he had absolutely no offensive skills at\n>all.  None.  But perhaps you think that the abilities to pass the puck, shoot\n>the puck and deke a goalie or defenseman are not technical skills?  \n\nGainey is the best defensive forward ever.  I stand by that assessment.\nHe was a very good player who belongs in the hall of fame.  Did you\never watch him play? He never made a technical error.\n\n<Babbling deleted>\n\n>Gee Greg, the pundits were calling Gilmour the best two-way player in the\n>league way back when he was with St. Louis.  I would have expected you to\n>have picked up on that. \n\nWho are these pundits??  Gilmour was good with St Louis- but he was not the\nbest two-way player in the game when he was with them.  You have overhyped\nGilmour on this net for months.  He is a very good forward- but hardly the\nbest in the NHL.\n\nGregmeister\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4865, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Who's next? Mormons and Jews?\nFrom: \"Casper C. Knies\" <ISSCCK@BYUVM.BITNET>\nOrganization: Brigham Young University\nLines: 148\n\n\nIsaac Kuo (saackuo@spam.berkeley.edu) writes:\n\n#In article <93109.231733ISSCCK@BYUVM.BITNET> \"Casper C. Knies\" <ISSCCK@BYUVM#.B\n#>Gedaliah Friedenberg (friedenb@maple.egr.msu.edu) writes:\n#>As a Latter-day Saint, I found John's statement *not at all* ludicrous...\n#>\n#>Please allow me to explain myself.  In 1838, the governor of Missouri,\n#>governor Boggs, issued his so-called \"Mormon extermination order.\"  The\n#>only crime (\"illegal activity\") the Latter-day Saints had committed, was\n#>their religious affiliation, their anti-slave stance (Missouri still\n#>allowed slave practices), and their growing numbers/influence in Missouri.\n#>\n#>I guess the Mormons \"got what they deserved,\" because they refused to bow\n#>to the will of (corrupt and evil) secular authorities. This \"disobedience\"\n#>brought upon them persecution, murder, and finally forced expulsion from\n#>their lands and settlements...\n#\n#It is significant to remember that these secular positions were held by\n#\"average\" people, and that at the time, almost all Americans were pretty\n#homogeonously Christian. It was largely the mainstream Christian's disgust\n#at such practices as polygamy which resulted in their irrational hatred.\n\nTrue, but that is exactly the \"problem\": the Mormon extermination order\nwas issued not just by a Christian, it was ALLOWED under the Constitution\nof the United States, which was instituted precisely to prevent incidents\nlike this \"order\" from occurring in the first place...  As I indicated in\nan earlier posting, your \"irrational hatred\" is clearly evidenced by\nindividuals like Robert Weiss (who could have been Gov. Boggs' Lieutenant;\nhe would have fitted right in, drewling et al), and seems a modern-day\noccurrence, based on results (slander, persecution, misrepresentation,\nlies, denying Mormons representation in their own user group, etc. etc.\n\nIn intent and purpose, what really has changed?\n\n#The situation is not entirely different today.  Many irrational feelings\n#and beliefs are justified through religion.  I don't think most of them\n#are started because of religion, but religion certainly helps justify and\n#perpetuate prejudices and practices by providing a neat justification\n#which discourages critical thought.\n\nTrue, as evidenced by numerous examples, as I am sure you're aware.\n\n#>In any regard, Mormon history alone indicates that secular authorities (and\n#>I don't even discuss how Uthan's were suckered into allowing part of their\n#>lands in becoming nerve-gas and atomic bomb testing grounds...) is far from\n#>being trusted or righteous.  Have things really changed for the better?  I\n#>may be a born cynic, but I have NO reason whatsoever that such has been the\n#>case. In the early 1980s, I believe, the late President Kimball (lds church\n#>leader) strongly protested federal attempts to locate the MX-\"Peace Keeper\"\n#>missile maze from being built in Utah (yet another \"inspired\" decision from\n#secular authorities).  Fortunately, his opposition was influential enough\n#for the feds to back off.\n#\n#Do you mean that the \"secular authorities\" are some continuous group of\n#people with the common and uninterrupted goal of harrassing/eradicating the\n#Mormons?  Do you honestly believe that the main reason for using Utah for\n#nuclear testing etc.. was to \"get them thar Mormons\"?  And what about the\n#majority of Uthan's who aren't Mormons?  You seem to be searching for enemy\n ^^^^^^^^\n(Correction: the majority of Utahn's ARE Mormon (60-70% I believe, up to a\n 100% in many cities and settlements throughout the Western states.)\n\n#conspiracies.  It is paranoid to believe that everything that affects you\n#badly must have been done primarily for that purpose.\n\nWhat I mean is that secular authorities are to be watched, as we believe\nthat Satan has been given some power and dominion over the earth to divert\ntruth, judgment, and justice.  In addition, we believe that the adversary\nhas power to influence the unjust and idolatrous (greed for money would be\na good example) in order to bring about persecution, war, oppression, and\nevil combinations.  As an intelligent being, don't you suppose that the\ndestroyer would yield his influence foremost on those with political power?\n\nAs far as Utah is concerned, what I pointed out were some horrible examples\nof environmental nightmares imposed upon by secular authorities, which have\nbrought death, disease, (i.e. the \"downwinders\") and environmental contami-\nnation.  I am hardly \"paranoid,\" I am just not \"expecting\" too much from a\nsecular government that may not share our values and faith, and which indeed\n(as Gov. Boggs et al.) may be out to harm and destroy us.  As a matter of\nfact, prophecies in my church indicate that in future years, (global)\npersecution against Mormons will so increase in intensity and scope, that\n(paraphrasing) \"all those who wish to escape persecution and murder must\nflee to Zion.\"  Zion (the \"pure in heart\") will be re-established in those\ndays, and it AIN'T our current secular authorities who will rule over it...\n\n#>...  David Koresh did NOT pose a great\n#>threat to the federal authorities or the security of this nation, and with\n#>John, I too wonder who or what's next...\n#\n#I personally feel that we should try to stop anyone who is a threat to the\n#life of even one person.  Sure, he did not pose a threat to the security of\n#this nation.  But he did pose a threat to the lives of his followers.  That\n#much is definite.\n\nHmmm.  \"definite\" by whom?  --Until such has been established beyond reason-\nable doubt, this alleged \"threat\" may have been less than the \"threat\"\nimposed upon him and his followers by the BATF and FBI...\n\n#>Who killed who?  What constitutional right did the ATF officers have to\n#>invade upon private land and to force themselves into the compound?\n#>What REALLY caused the \"murder\" of the little children?  Could it be that\n#>the ATF/FBI presence has any bearing upon the events?  How would you\n#>interpret the Mt. Masada events?  --Blame the Jews?  (What the heck did\n#>the Romans do there anyway?  What business did the ATF/FBI has in Waco,\n#>Texas???)  The Branch Davidians NEVER posed any threat to society.\n#\n#This is like asking who REALLY caused the deaths of the Israeli Olympic\n#team in 1976?  In that case, the police botched the job as well.  But to\n#lay a heavier burden on them than the terrorists would be a terrible\n#mistake.  I think the same sort of reasoning applies in this case.\n#Certainly, if David Koresh chose any peaceful option, the ATF and FBI\n#would have complied.  The responsibility is more his than the authorities.\n\nCome now, at issue is in how much the authorities escalated an otherwise\npeaceful stand-off: \"let's get it over with, and \"force\" David Koresh to\ncome out???\"  --By gassing them???  Were they naive, or what?  They played\nright into the hands of an apocalyptic-thinking individual (he had prepared\nhis people for this eventuality for years), and not *one* firetruck or plan\nwas in place to deal with this scenario???  I feel that the authorities\nhad \"some\" responsibility to protect their own citizens, even if they were\nreligious zealots, and guilty of ... not paying a $200 gun license???\n(Has the BATF become an extension of the local tax-collectors?)\n\n#>David Koresh, no doubt, will be described as the \"evil\" guy (by the\n#>executioners), while the actions of all those \"valiant and brave\" officers\n#\n#Characterizing the ATF/FBI as executioners is inaccurate and unfair.  In\n#order to be an executioner, the least one must have done is have the intent\n#to kill.\n\nQue?? --Intrusion into private property with semi's, loaded with life\nammunition, isn't that implicit \"intent (or at least \"prepared\") to kill\"?\nI ask you, would the BATF warrant stand up in a civil court of justice?\nI do not mind if criminals (such as dangerous drug lords) are brought to\njustice, but escalating events to the point of allowing to, if not compli-\ncity with, the destruction of a people?\n\n#--\n#*Isaac Kuo (isaackuo@math.berkeley.edu)                   *        _____\n#*\"How lucky you English are to find the toilet so amusing.* ______//_o_\\\\__\n#* For us, it is a mundane and functional item.  For you,  *(==(/___________\n#* the basis of an entire culture!\" Manfred von Richtofen  * \\==\\/         \\\n\n\nCasper C. Knies              isscck@byuvm.bitnet\nBrigham Young University     isscck@vm.byu.edu\nUCS Computer Facilities\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4866, "properties": {"category": "comp.graphics", "text": "From: andrey@cco.caltech.edu (Andre T. Yew)\nSubject: Re: 16 million vs 65 thousand colors\nOrganization: California Institute of Technology, Pasadena\nLines: 28\nNNTP-Posting-Host: punisher.caltech.edu\n\nd9hh@dtek.chalmers.se (Henrik Harmsen) writes:\n\n>1-4 bits per R/G/B gives horrible machbanding visible in almost any picture.\n\n>5 bits per R/G/B (32768, 65000 colors) gives visible machbanding\n\n>color-gradient picture has _almost_ no machbanding. This color-resolution is \n\n>see some small machbanding on the smooth color-gradient picture, but all in all,\n>There _ARE_ situiations where you get visible mach-banding even in\n>a 24 bit card. If\n>you create a very smooth color gradient of dark-green-white-yellow\n>or something and turn\n>up the contrast on the monitor, you will probably see some mach-banding.\n\n    While I don't mean to damn Henrik's attempt to be helpful here,\nhe's using a common misconception that should be corrected.\n\n    Mach banding will occur for any image.  It is not the color\nquantization you see when you don't have enough bits.  It is the\nhuman eye's response to transitions or edges between intensities.\nThe result is that colors near the transistion look brighter on\nthe brighter side and darker on the darker side.\n\n--Andre\n\n-- \n             Andre Yew andrey@cco.caltech.edu (131.215.139.2)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4867, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: shenoy@iastate.edu (Shiva Shenoy)\nSubject: Re: Windows Help\nOrganization: Iowa State University, Ames IA\nLines: 53\n\nIn <1993Apr20.072905.21404@fel.tno.nl> mveraart@fel.tno.nl (Mario Veraart) writes:\n\n>umyin@ccu.umanitoba.ca (Qing Yin) writes:\n\n>>Hi, it's an *easy* question for you Windows gurus.  I'd appreciate any help.\n\n>>We need to write an on-line help for our application.  We don't have\n>>Windows Software Developer's Toolkit (yet :-) ). Since we just want to build\n>>a .HLP file around Windows' help engine, I hope it won't be that complicated?\n>>Anyway, could someone kindly give me some hints of how to build such an\n>>on-line help, if it does not take 100 pages to explain? Or if it is complicated,\n>>would you help to point out what I would need to do it?\n>>-- \n\n\n>>Vincent Q. Yin\n>>umyin@ccu.umanitoba.ca\n\n>Hi,\n\n>If you have developed your own windows application you must have a \n>SDK of some sort that contains the HC.EXE or HC31.EXE file to \n>compile and generate .HLP files out of .RTF files.\n>RTF files are generated by a wordprocessor like Word for Dos or W4W.\n\nYou do not need the SDK. What you need (and can get free) are\n\nLocation: ftp.cica.indiana.edu\nindex:      /pub/pc/win3/INDEX\n\nFirst get /pub/pc/win3/uploads/what.zip (~1.3M) This contains the help\ncompiler among other things. It is free from Microsoft.\n\nThen get these (I think these are free too)\n\ndir:\t/pub/pc/win3/programr\nfiles:  hag.zip, whag.zip wfwhlp.zip\n\nThese are shareware\n\ndir:    /pub/pc/win3/util\nfiles:\thwab21.zip, qdhelp.zip, qdtool.zip\n\ndir:\t/pub/pc/win3/winword\nfiles:\tdrhelpev.zip (macros for word 2.0 to convert doc to hlp files).\n\n--------------------------------------------------------------------\nShiva Shenoy                              | e-mail: shenoy@iastate.edu \n2066 Black,Dept of AEEM,ISU,Ames,IA 50010 | Office: (515)-294-0082\n-- \n--------------------------------------------------------------------\nShiva Shenoy                              | e-mail: shenoy@iastate.edu \n2066 Black,Dept of AEEM,ISU,Ames,IA 50010 | Office: (515)-294-0082\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4868, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: marka@hcx1.ssd.csd.harris.com (Mark Ashley)\nSubject: tape backup for windows\nOrganization: Harris CSD, Ft. Lauderdale, FL\nLines: 18\nNNTP-Posting-Host: hcx1.ssd.csd.harris.com\n\nI'm looking for a complete hw/sw solution:\nI need an ISA/VLB scsi controller (e.g Ultrastor 34F)\nplus a tape drive (500Mb or less like Archive) plus a Windows\nprogram that will work on these.\n\nMy intended system will have 32Mb RAM so\nplain ISA controllers will no longer do.\nBut I also hear that the SCSI world\nis not very organized.\n\nSo does anybody have a tape backup setup\nlike what I'm looking for ? Please\ndescribe it.\n\nThanks. e-mail please.\n\n-- \nmarka@gcx1.ssd.csd.harris.com  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4869, "properties": {"category": "comp.windows.x", "text": "From: ccgwt@trentu.ca (Grant Totten)\nSubject: Re: PostScript on X-terminal\nLines: 42\nReply-To: ccgwt@trentu.ca (Grant Totten)\nOrganization: Trent University\n\n\nI tried to e-mail you but it bounced so...\n\nHi there,\n\nIn article <4263@his.UUCP> you write:\n>From: sp1henhj@edit (Henrik Balthazar Hjort)\n>Subject: PostScript on X-terminal\n>\n>\n> I have a problem when I'm using PostScript. When I am working local\n>on a SUN SPARCstaton IPC the PostScript works good, but when I connect\n>to the SUN from a X-terminal I just get error messages that the\n>PostScript cannot connect to the news-display.\n>\n> Why doesn't PostScript work on an X-terminal?\n>\n> Is there any way to make it work?\n>\n\nIt might be that the X terminal doesn't support the \"Postscript\nExtensions to X\" product.  I use the 'dxpsview' program on a \nDECstation 5000 to view postscript files but when I moved to an\nNCD X terminal, I couldn't use it any more.  So I ftp'd and\ncompiled GhostScript (GNU software).  Now we can view postscript\nfiles on our X terminals.\n\nHope this helps.\n\nGrant\n\n>\n> Henrik \"Henrik Hjort\" Hjort\n>\n>\n>\n>\n--\nGrant Totten, Programmer/Analyst, Trent University, Peterborough Ontario\nGTotten@TrentU.CA            Phone: (705) 748-1653   FAX: (705) 748-1246\n========================================================================\nTake everything in stride.  Trample anyone who gets in your way.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4870, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: brand@s1.gov (Hal R. Brand)\nSubject: Request For Input: MultiSpin CD-ROM Drives\nOrganization: LLNL\nLines: 9\nDistribution: world\nReply-To: brand@s1.gov (Hal R. Brand)\nNNTP-Posting-Host: s1.gov\nKeywords: CD-ROM\n\n\nI'm looking into getting an external, reasonably fast (<350 ms avg access time)\nMultispin CD-ROM drive that supports \"Photo CD Multi Session\", has audio\noutput, and SCSI interface for connection to the PAS16 SCSI port. Does anyone\nhave any comments/experiences/warnings/recommendations they'd like to share\nconcerning the Texel DM-5024 and/or Toshiba TXM-3401E and/or others. THANKS!\n\n\t\t\t\t\t\tHal R. Brand\n\t\t\t\t\t\tbrand@s1.gov\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.234+0000", "event": "documents", "entityId": 4871, "properties": {"category": "sci.space", "text": "From: rjungcla@cbnewsd.cb.att.com (R. M. Jungclas)\nSubject: Re: Big amateur rockets\nOrganization: AT&T Bell Labs - Naperville, IL.\nDistribution: usa\nLines: 48\n\nIn article <C5Ky9y.MKK@raistlin.udev.cdc.com> pbd@runyon.cim.cdc.com (Paul Dokas) writes:\n>I was reading Popular Science this morning and was surprised by an ad in\n>the back.  I know that a lot of the ads in the back of PS are fringe\n>science or questionablely legal, but this one really grabbed my attention.\n>It was from a company name \"Personal Missle, Inc.\" or something like that.\n>\n>Anyhow, the ad stated that they'd sell rockets that were up to 20' in length\n>and engines of sizes \"F\" to \"M\".  They also said that some rockets will\n>reach 50,000 feet.\n>\n>Now, aside from the obvious dangers to any amateur rocketeer using one\n>of these beasts, isn't this illegal?  I can't imagine the FAA allowing\n>people to shoot rockets up through the flight levels of passenger planes.\n>Not to even mention the problem of locating a rocket when it comes down.\n>\n>And no, I'm not going to even think of buying one.  I'm not that crazy.\n>\n>\n>-Paul \"mine'll do 50,000 feet and carries 50 pounds of dynamite\" Dokas\n\nCould it be Public Missile, Inc in Michigan?\n\nFrom the description of ad here, it sounds like they're talking about\n\"High Power Rocketry\", an outgrowth of model rocketry.  This hobby\nuses non-metallic structural compoments and commerically manufactured\nengines ranging in impulse classification from G to P.  The hobby\nhas been flourishing from early 1980s and is becoming increasing popular.\nTechnically this is not consider amateur rocketry.\n\nAny rocket with a liftoff weight greater than 3.3 pounds OR using a\ntotal impulse of G or greater, REQUIRES an FAA waiver to launch.\nTypically, a group of people get an FAA waiver for specified period\nof time (ie week, weekend, etc.) at a designated site and time, and\nall of the launches are then covered under this \"blanket waiver\".\nThere is also a \"High Power Safety Code\" which designates more\nspecific rules such as launch field size, etc.\n\nFinally, in order to purchase any of the larger (Class B) rocket \nmotors you need to certified through either the National Association\nof Rocketry or Tripoli Rocketry Association. Certification procedures\nrequire a demonstarted handling and \"safe\" flight at a total impulse\nlevel.\n\nFor more information, watch rec.models.rockets newsgroup.\n\nR. Michael Jungclas                    UUCP:      att!ihlpb!rjungcla \nAT&T Bell Labs - Naperville, IL.       Internet:  rjungcla@ihlpb.att.com\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4872, "properties": {"category": "rec.sport.hockey", "text": "From: steveg@cadkey.com (Steve Gallichio)\nSubject: Re: WC 93: Results, April 18\nOrganization: Cadkey, Inc.\nLines: 19\nNNTP-Posting-Host: access.digex.net\n\n\n\nGerald Olchowy (golchowy@alchemy.chem.utoronto.ca) writes:\n> Podein is an interesting case...because he was eligible to\n> play in Cape Breton in the AHL playoffs like Kovalev, Zubov,\n> and Andersson...obviously Sather and Pocklington are not\n> the total scrooges everyone makes them out to be...certainly\n> in this case they've massively outclassed Paramount and the\n> New York Rangers.\n\nWhat is the policy regarding players and the minor league playoffs versus WC?\nI know that the Rangers are holding back Kovalev, Zubov, and Andersson for\nBinghamton, but I also know that the Whalers wanted Michael Nylander to play\nfor Springfield, while Nylander wanted to play for Sweden. The Whalers allowed\nthe NHL to decide, and the NHL chose the WCs. How does this differ from the\nRangers and Oilers? Did the Whalers have to go through the league, or could\nthey have forced Nylander to play in Springfield?\n\n-SG\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4873, "properties": {"category": "rec.autos", "text": "From: jitloke@tekig5.pen.tek.com (Jit-Loke Lim)\nSubject: Re: BRAINDEAD Drivers Who Don't Look Ahead--\nKeywords: bad drivers\nDistribution: usa\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 33\n\n>In article <1993Apr14.140642.19875@cbnewsd.cb.att.com> hhm@cbnewsd.cb.att.com (herschel.h.mayo) writes:\n>anybody is going anywhere. So, I block the would-be passers. Not only for my own\n>good , but theirs as well even though they are often too stupid to realize it.\n\nAh, we are looking for good people just like you. We are a very concerned\ngroup of citizens who are absolutely disgusted at the way that the majority\nof drivers simply disobey traffic rules like going above the speed limit,\npassing on our right, and riding our tails, while all the while we respectfully\nabide by the rules of this great country and maintain the mandated speed\nlimits with our calibrated, certified cruise controls, while keeping the\nrespectful 1.5 car length distance/10 mph speed. How many times have you been\nticked off by some moron who jumps ahead in the (5.5 * 1.5)8.25 car lengths \nthat you have left between you and the vehicle ahead of you while driving\n55 mph? Finally you have an option. We are a totally member supported group\nthat perform functions for our own good, for the good of this great country  but MOST of all for those unfortunate ones that are too stupid to realize it,\nbless their souls. For a paltry $10, you can join Citizens for Rationally \nAdvanced Piloting(C.R.A.P), a non-profit, members only, society. But, but,but,\nthere is a slight hitch, the initiation rite. To be a full fledged member of\nthis exclusive club, you must proof that you are able to be in the fast lane of\nthe busiest interstate in your area, keep the correct 1.5 car lenth/10 mph speedand I know this can be difficult with those morons around, NOT let anybody pass\nyou, not in the next lane, not in the slow lane, not in the breakdown lane,\nnot NOWHERE. For a complete list of acceptable interstates and times, send $5.\nAnd by the way, over 90% of our members are highly regarded attorneys in the\nauto field and they are completely, absolutely positively in the business ONLY\nto serve your best interests. As a testament to their virtues, they will give\nmembers 90% off the initial consultation fee. Feel free to drop me a line at\nyour earliest convenience and remember, only SPEED kills!\n\nJit\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4874, "properties": {"category": "comp.sys.mac.hardware", "text": "From: chungkuo@umcc.umcc.umich.edu (Shawn FitzGerald)\nSubject: Quadra 900 startup w/out monitor...ya right.\nOrganization: UMCC, Ann Arbor, MI\nLines: 11\nDistribution: world\nNNTP-Posting-Host: umcc.umcc.umich.edu\n\nIs there a fix for this? We have a Quadra 900 that will NOT finish startup\nunless there is a monitor connected. This would be no problem, but since\nwe're running it as a file server, there is no need to have a monitor\nconnected all the time.\n\n\n-- \nHorsefeathers?\nShawn FitzGerald     UMCC (U of M Computing Club)   Michigan\nchungkuo@umcc.umich.edu  \"Whether you are quiet and alive, or\nquiet and dead makes no difference to Cerebus.\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4875, "properties": {"category": "rec.sport.baseball", "text": "From: drw3l@delmarva.evsc.Virginia.EDU (David Robert Walker)\nSubject: Re: Braves Pitching UpdateDIR\nOrganization: University of Virginia\nLines: 34\n\nIn article <8994@blue.cis.pitt.edu> traven@pitt.edu (Neal Traven) writes:\n>\n>One of the chapters in Palmer and Thorn's 'Hidden Game' is titled\n>'Pitching is 44% of Baseball,' implying that fielding is 6%.  How do\n>they determine that?  Beats me -- it's been a long, long time since I\n>read it.\n\nThis was (my opinion) the stupidest thing in the Hidden Game. The\nargument was\n\n1) Defense, or runs allowed, is 50% of the game.\n2) Unearned runs amount to 12% of the runs allowed; earned runs, 88%.\n\n3) Since unearned runs are the result of fielding, not pitching, and\nearned runs are the product of pitching, not fielding, fielding is 12%\nof defense and pitching is 88% of defense.\n4) Caombining with #1, pitching is 44% of the game, fielding 6%.\n\nPete is usually sharper than that. My own feel is that fielding is in\nthe 25-33% of defense range; call it 30-70 between fielding and\npitching.\n\n>One also has to separate offense into batting and baserunning, with the\n>split probably somewhere around 49.5% and 0.5%.\n\nI'd give baserunning a little more credit than that, maybe 45-5, or\neven 40-10. Give a team of Roberto Alomar and a team of John Oleruds\nidentical batting stats (which wouldn't be that unreasonable), and\neven if you don't let Roberto steal a single base, they'll score a lot\nmore than the Oleruds by going first-to-third more often. (No offense,\nGordon).\n\nClay D.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4876, "properties": {"category": "talk.politics.mideast", "text": "From: hernlem@chess.ncsu.edu (Brad Hernlem)\nSubject: Re: Basil, opinions? (Re: Water on the brain)\nReply-To: hernlem@chess.ncsu.edu (Brad Hernlem)\nOrganization: NCSU Chem Eng\nLines: 44\n\n\nIn article <1qmdtlINNkrc@early-bird.think.com>, shaig@Think.COM (Shai Guday) writes:\n\n|> In article <1993Apr15.204930.9517@thunder.mcrcim.mcgill.edu>, hasan@McRCIM.McGill.EDU  writes:\n|> |> \n|> |> In article <1993Apr15.055341.6075@nysernet.org>, astein@nysernet.org (Alan Stein) writes:\n|> |> |> I guess Hasan finally revealed the source of his claim that Israel\n|> |> |> diverted water from Lebanon--his imagination.\n|> |> |> -- \n|> |> |> Alan H. Stein                     astein@israel.nysernet.org\n|> |> Mr. water-head,\n|> |> i never said that israel diverted lebanese rivers, in fact i said that\n|> |> israel went into southern lebanon to  make sure that no \n|> |> water is being used on the lebanese\n|> |> side, so that all water would run into Jordan river where there\n|> |> israel will use it  !#$%^%&&*-head.\n|> \n|> Of course posting some hard evidence or facts is much more\n|> difficult.  You have not bothered to substantiate this in\n|> any way.  Basil, do you know of any evidence that would support\n|> this?\n|> \n|> I can just imagine a news report from ancient times, if Hasan\n|> had been writing it.\n|> \n|> Newsflash:\n|> Cairo AP (Ancient Press).  Israel today denied Egypt acces to the Red\n|> Sea.  In a typical display of Israelite agressiveness, the leader of\n|> the Israelite slave revolt, former prince Moses, parted the Red Sea.\n|> The action is estimated to have caused irreparable damage to the environment.\n|> Egyptian authorities have said that thousands of fisherman have been\n|> denied their livelihood by the parted waters.  Pharaoh's brave charioteers\n|> were successful in their glorious attempt to cause the waters of the\n|> Red Sea to return to their normal state.  Unfortunately they suffered\n|> heavy casualties while doing so.\n\nHehehe.\n\nBTW, does the Litani River not flow West and not South? I think that its waters\nstay entirely within Lebanese territory and so what Hasan says about the Jordan\nRiver makes no sense, in any case. The Hasbani River, on the other hand, flows\ninto the Jordan, if I am not mistaken.\n\nBrad Hernlem (hernlem@chess.ncsu.EDU)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4877, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: FORGED POSTING -- FORGED POSTING -- FORGED POSTING\nSummary: usually generated by those who can't live with themselves! \nOrganization: S.D.P.A. Center for Regional Studies\nLines: 37\n\n\nTHE FOLLOWING POSTING WAS FORGED IN MY NAME! PLEASE IGNORE SUCH POSTINGS!\n\n[FORGED] Newsgroups:soc.culture.turkish,talk.politics.mideast,talk.politics.\n[FORGED] soviet,soc.culture.greek\n[FORGED] From: dbd@urartu.sdpa.org (David Davidian)\n[FORGED] News-Software: VAX/VMS VNEWS 1.41    \n[FORGED] Organization: University of Tennessee Computing Center\n[FORGED] Date: Fri, 16 Apr 1993 21:36:00 GMT\n[FORGED] Lines: 293\n[FORGED]\n[FORGED] Dear friends,\n[FORGED]\n[FORGED] I am a graduate student in Education at the University of Tennessee. \n[FORGED]\n  .\n  .\n  .\n[FORGED]\n[FORGED]\n[FORGED]                         __QUESTIONNAIRE__\n[FORGED]                  Teaching Music for deaf children.\n[FORGED]\n[FORGED] NAME ________________________________\n[FORGED] ADDRESS/ E-MAIL _____________________\n[FORGED] EMPLOYING INSTITUTION _______________\n[FORGED] YEARS OF EXPERIENCE_________ GRADE LEVEL(S)____\n[FORGED] EDUCATIONAL BACKGROUND:BACHELOR__ MASTERS__ DOCTORATE__\n[FORGED] PROFESSIONAL FIELD:SPECIAL EDUC.__  MUSIC EDUC.__ OTHER*__\n\nTHE ABOVE POSTING WAS FORGED IN MY NAME! PLEASE IGNORE SUCH POSTINGS!\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4878, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Zionism is Racism\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 17\n\nIn article <20APR93.23565659.0109@VM1.MCGILL.CA> B8HA000 <B8HA@MUSICB.MCGILL.CA> writes:\n>In Re:Syria's Expansion, the author writes that the UN thought\n>Zionism was Racism and that they were wrong.  They were correct\n>the first time, Zionism is Racism and thankfully, the McGill Daily\n>(the student newspaper at McGill) was proud enough to print an article\n>saying so.  If you want a copy, send me mail.\n>\n>Steve\n>\n\nI know this paper well, and see it for the exercise in selective morality \nand judgement it is. Until such time as it recognizes that *any* religiously\nbased government is racist, exclusionary and simply built on a philosophy\nof \"separate but equal\" second-class treatment of minorities, it will \ncontinue to be known for its bias. If Jewish nationalism is racism, so is \nIslam; anywhere where people are allotted \"different rights\" according to \nrace, religion or culture is \"racist\".\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4879, "properties": {"category": "rec.sport.baseball", "text": "From: iacs3650@Oswego.EDU (Kevin Mundstock)\nSubject: Joe Robbie Stadium \"NOT FOR BASEBALL\"\nReply-To: iacs3650@oswego.Oswego.EDU (Kevin Mundstock)\nOrganization: Instructional Computing Center, SUNY at Oswego, Oswego, NY\nLines: 16\n\nDid anyone notice the words \"NOT FOR BASEBALL\" printed on the picture\nof Joe Robbie Stadium in the Opening Day season preview section in USA\nToday? Any reason given for this?\n\nAlso, I just noticed something looking at the Nolan Ryan timeline in\nthe preview. On 8/22/89, Rickey Henderson became Nolan's 5000th strikeout.\nOn 6/11/90 he pitched his 6th no-hitter against Oakland. I believe the\nlast out in the game was made by Rickey Henderson. And on 5/1/91, Nolan\npitched his 7th no-hitter on the same day a certain someone stole his\n939th base, which overshadowed it. It seems that Nolan is having a lot of\npublicity at Rickey's expense. IMO, Rickey deserves it, and it seems as\nmost of the net agrees with me from what I've seen on it lately. They are\nboth great players, but IMO, Nolan has outclassed Rickey, both in playing\nand more importantly, in attitude. Just my thoughts.\n\n\t\t\t\t\t\tKevin\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4880, "properties": {"category": "rec.motorcycles", "text": "From: small@tornado.seas.ucla.edu (James F. Small)\nSubject: Re: Here's to the assholes\nOrganization: School of Engineering and Applied Sciences, UCLA\nLines: 26\n\nIn article <JROBBINS.93Apr15103031@kingston.cs.ucla.edu> you rambled on about:\n)In article <9953@lee.SEAS.UCLA.EDU> small@thunder.seas.ucla.edu (James F. Small) writes:\n)>   Here's to the 3 asshole scooter owners who TRIPLE PARKED behind my\n)>    bike today. \n)\n)Jim calling other prople assholes, what's next?\n                   ^^^^^^\n\nIf you're going to flame, learn to spell.\n\n)Besides, assholeism is endemic to the two-wheeled motoring community.\n\nWhy I do believe that Jason, the wise, respected (hahahha), has just made a\nstereotypical remark.  How unsophisticated of you.  I'm so sorry you had to\ncome out of your ivory tower and stoop (as you would say), to my , obviously,\nlower level.\n\nBesides, geekism is endemic to the albino-phoosball playing community (and\nthose who drive volvos)\n\n\nRemember ,send your flames to jrobbins@cs.ucla.edu\n-- \nI need what a formal education can not provide.\n---\nDoD# 2024\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4881, "properties": {"category": "sci.med", "text": "From: janet@ntmtv.com (Janet Jakstys)\nSubject: Exercise and Migraine\nNntp-Posting-Host: pegasus\nOrganization: Northern Telecom Inc, Mountain View, CA\nLines: 24\n\nWe were talking about Migraine and Exercise (I'm the one who can't\nfathom the thought of exercise during migraine...).  Anyway, turning\nthe thread around, the other day I played tennis during my lunch\nhour.  I'm out of tennis shape so it was very intense exercise.  I\ngot overheated, and dehydrated.  Afterwards, I noticed a tingling\nsensation all over my head then about 2 hours later, I could feel\na migraine start.  (I continued to drink water in the afternoon.)\nI took cafergot, but it didn't help and the pain started although\nit wasn't as intense as it usually is and about 9pm that night, the\npain subsided.\n\nThis isn't the first time that I've had a migraine occur after exercise.\nI'm wondering if anyone else has had the same experience and I wonder\nwhat triggers the migraine in this situation (heat buildup? dehydration?).\nI'm not giving up tennis so is there anything I can do (besides get into \nshape and don't play at high noon) to prevent this?\n\nThanks,\n-- \n**********************************************************************\nJanet Jakstys         UUCP:{ames,mcdcup}!ntmtv!janet\nNorthern Telecom      INTERNET:janet@ntmtv.com\nMtn. View, CA.\n**********************************************************************\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4882, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Do we need the clipper for cheap security?\nLines: 25\n\n: There are chips which perform the voice compression/expansion.  They can't\n: be expensive, because they exist in many phones connected to PBXs or on the\n: PBX line cards, as well as in a lot of equipment which compresses\n: voice-grade circuits to save the cost of long-distance, leased T1s or\n: satellite circuits.\n\n: I can't remember the generic term for these chips.  My impression is that\n: this was a big deal 10 years ago, but circuits have gotten so cheap that\n: it isn't done much now.\n\nCodecs.  They have to get about 6:1 compression on 8 bit samples to squeeze\nthem down v32bis.  I played around with the lossless 'shorten' program\nlast night, but it only managed 2.5:1.  I've got some specimen CELP code\nbut it's not obvious that it runs in real time; I think it's just proof-of-\nconcept code, and I have some mucking about with file formats to do before\nI can put my own sample through it.\n\nLooks like the current option is to use a voice-mail modem with built-in\nDSP chip to do this in hardware.  That means two modems for a system,\nputting the cost at $600 upwards.  Ouch.  Maybe soon we'll be able to\ndo it in software on high-powered games consoles - isn't the 3DO an\nAcorn RISC machine inside?  That cpu runs like shit off a shovel... and\nwill be nicely mass-market too.\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4883, "properties": {"category": "talk.politics.misc", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: The state of justice (GM trial)\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 40\n\nIn article <1993Apr15.143320.8618@desire.wright.edu> demon@desire.wright.edu (Not a Boomer) writes:\n>\tA judge denied GM's new trial motion, even though GM says it has two\n>new witnesses that said the occupant of the truck was dead from the impact, not\n>from the fire.\n>\n>\tThoughts?\n>\n>\tIt's kind of scary when you realize that judges are going to start\n>denying new trials even when new evidence that contradicts the facts that led\n>to the previous ruling appear.\n\nOn the other hand, it would be kind of scary if there were *never* a final\nverdict, because a party to litigation could keep saying \"Oops!  I forgot\nto bring up this evidence,\" and demand a new trial.  You get one bite at\nthe apple.\n\n>\tOr has the judge decided that the new witnesses are not to be believed? \n>Shouldn't that be up to a jury?\n\nIt's up to General Motors to find those witnesses in the first litigation.\nYou'd be up in arms if a plaintiff suing General Motors pulled the same\nstunt and made them relitigate an issue that they already lost.  It's not\nas if General Motors couldn't file enough discovery motions to delay the\ntrial until they found all the witnesses they wanted.\n\n>\tAnd what about members of the previous jury parading through the talk\n>shows proclaiming their obvious bias against GM?  \n\nDefine \"obvious bias.\"\n\n>Shouldn't that be enough for\n>a judge to through out the old verdict and call for a new trial?\n\nDid GM move for a new trial on those grounds?  No?  Perhaps they had a \nreason?  \n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4884, "properties": {"category": "talk.politics.misc", "text": "From: paul@hsh.com (Paul Havemann)\nSubject: Re: Clinton's immunization program\nDistribution: usa\nOrganization: HSH Associates\nLines: 47\n\nIn article <C5FJsL.6Is@ncratl.AtlantaGA.NCR.COM>, mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson) writes:\n> On the news last night Clinton was bashing the republicans for stonewalling\n> his so called stimulus package.\n> It seems that one small item within this package was going to pay for free\n> immunizations for poor kids.\n> So now Clinton is claiming that the republicans are holding the health of\n> poor kids hostage for blatantly political gains.\n> \n> Aside from the merits (or lack thereof) of another free immunization program,\n> just what is such a program doing in a bill that is supposedly about\n> creating jobs.\n\nJobs?  What the hell have jobs to do with it?  It's another touchy-feely \nprogram from the new, vapid administration.  The fact is, the major claim\nmade for \"universal\" immunization -- that \"all children will be immunized\" --\nhas absolutely no validity.  Several states already have U.I. programs, have\nhad these programs for _years_. The result: on average, their success rates\nare no better than the national average.  It seems that the gummint hasn't\nyet figured out a way to MAKE parents bring their kids in.  Yet another case\nof shameless demagoguery from the \"new\" Democrats, the \"agents of change.\" \n \n> If Clinton is so hot to get this immunization program, why doesn't he and\n> the democrats just introduce it as a stand alone bill. Isn't it possible\n> that Clinton is the one doing the blatant political (read pork) manipulations\n> here. He is telling the republicans, pass my muti-billion dollar package,\n> or I will go to the people and tell them that you are opposed to\n> immunizing poor kids.\n\nWhat?  Clinton using this issue for _partisan gain_?  Do tell.\n \n> I have never thought highly of Clinton, but stunts like this lower my\n> opinion of him even further.\n> \n> I thought one of Clinton's campaign themes was that he was going to be\n> a new kind of politician. This kind of manuevering would have made LBJ\n> proud.\n\nAll together now... c'mon, you know the words... \"Meet the new boss! Same as \nthe old boss!\"  And the chorus: \"We won't get fooled again!\"\n\n------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ \n\nPaul Havemann   (Internet: paul@hsh.com)\n\n   * They're not just opinions -- they're caffeine for the brain! *\n         ** (Up to 50 milligrams per cynical observation.) **\n     Recommended Minimum Daily Requirement: 1,000 mg.  Keep reading.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4885, "properties": {"category": "comp.windows.x", "text": "From: dsk@ravl.rice.edu (Dan S. Kirkpatrick)\nSubject: Installation problem with X11R5\nOrganization: Rice University\nLines: 32\n\nI am in the process of installing X11R5 on my Sun Sparcstation 2 and\nhave run into a problem.  I imagine it has something to do with a missing\nscreen driver, or something along those lines, but figured someone out there\nin Internet land might be able to help.\n\nI am installing it on a machine that already has OpenLook installed, and would\nlike to have both installed concurrently.  Thus, I set it up to compile to my\n/usr/X11R5 directory.  I worked out all the kinks in getting it compiled (with\ngcc), so that it compiles without any warnings.  I need it installed for PEX-SI,\nso I set all those appropriate flags.  When I run it, however, I get a message\nalong the lines of:\n\nGetting interface configuration : Operation not supported on socket\n\nsunOpenFrameBuffer : Inappropriate ioctl for device\n\nFatal server error : no screens found \n\n\nAny ideas on how I can fix it?  Please respond by e-mail at the below\naddress.\n\nThanks in advance.\n\n-Dan\n-- \n\"I do not want to be immortalized through my works; I want to be \nimmortalized through not dying.\"  -Woody Allen\n\nDan Kirkpatrick                 | Dept of Electrical & Computer Engineering\n~dsk@rice.edu                   | Rice University\nuunet!rice.edu!dsk@uunet.uu.net | Houston, TX\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4886, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rnichols@cbnewsg.cb.att.com (robert.k.nichols)\nSubject: Re: how to search for bad memory chips.\nOrganization: AT&T\nDistribution: na\nLines: 29\n\nIn article <N5s42B8w165w@c-cat.UUCP> david@c-cat.UUCP (Dave) writes:\n>i came upon this idea i would like to share with everyone.\n>\n>to check for bad memory chips\n>\n>1. create a boot disk with emm386 himem.sys and ramdrive.sys in the\n>   config/autoexec.bat.\n>\n>2. boot the PC to create a RAM drive as large as possible.\n>\n>3. use a disk repair utility ( I use NDD ). Run it on the RAM\n>        drive, yes it will run, its only a device driver\n>\n>4. run 1000 or so passes, they go very quick\n>\n>5. if your machine fails, there is a definate bad memory chip\n>\n>6. if your machine passes, there is a conflict with programs you\n>        are loading in memory.\n...\n\nIt's an interesting idea, but the worst-case data patterns developed to\ntest magnetic media are totally different than the patterns used to detect\ncommon faults in memory chips.\n\n--\nBob Nichols\nAT&T Bell Laboratories\nrnichols@ihlpm.ih.att.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4887, "properties": {"category": "comp.sys.mac.hardware", "text": "From: scot@jlc.mv.com (Scot Salmon)\nSubject: NuTek Email?\nOrganization: John Leslie Consulting, Milford NH\nLines: 9\n\nDoes NuTek (or anyone at NuTek) have an email address?\n\nIf not, why not? =)\n\n-- \n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nGood Things: Books by Robert Heinlein, Music by Enya, Computers by Apple,\n             Humor by Dave Barry, Thursday nights on NBC, and Scotland.\n-=-=-=-=-=-=-=-=-=-=-=- Scot Salmon (scot@jlc.mv.com) -=-=-=-=-=-=-=-=-=-=-=-=-\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4888, "properties": {"category": "misc.forsale", "text": "From: foxfire@access.digex.com (foxfire)\nSubject: Sega CD [Forsale]\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 35\nNNTP-Posting-Host: access.digex.net\n\nOk folks... \n\nI am in need for some money to purchase a Video Game Backup-Unit, so I\nhave decided to let go my SEGA CD unit... Heres the deal:\n\nSega Genesis CD/Rom Unit:\n------------------------\n  o Playes Sega CD games\n  o Playes Regular CD's\n  o Playes CD-G's (Cd's w/graphics)\n  o Comes w/ 5 Cd's (Pack-Ins)\n     o Sega's Hot Hits (Regular CD w/ music)\n     o Rock Paintings (CD-G - music w/Graphics Karoki like)\n     o Sol-Feace (Shooter)\n     o Sherlock Holmes (Mystery) - Clue Book, No Docs.\n     o Sega Classics (Streets of Rage, Revenge of Shinobi, Columns,\n                      & Golden Axe) - No Docs.\n  o Box and Documents (CD Unit) Included. All games comes w/Jewels and   \n    documentation unless otherwise specified.\n\n\nOther Games:\n-----------\n     o Cobra Command (Docs have water dammage)\n     o Road Avenger *2 Weeks old!!\n     o Night Trap (No Docs.)\n     o All games come w/Jewels and documentation unless otherwise specified.\n\n  Im going to sell all of this to the HIGHEST bidder as of 4/30/93. I\nwould like to start all of the above at $250.00 or Trade for a Genesis/Snes\nVideo Backup-Unit. If you would like to bid or make an offer, just drop me\nsome mail... I will keep everone informed of what the current bids are..\n\nFoxfire \nfoxfire@access.digex.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4889, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: taybh@hpsgm2.sgp.hp.com (Beng Hang TAY)\nSubject: Re: Cirrus Logic 5426 Graph Card\nOrganization: HP Singapore Notes-Server\nLines: 17\n\nIn comp.os.ms-windows.misc, gardner_a@kosmos.wcc.govt.nz (andy gardner) writes:\n\n    In article <1qms3c$37t@news.cs.tu-berlin.de>, wong@cs.tu-berlin.de (Wolfgang Jung) writes:\n\n    >Version 1.3 drivers are due to be release by Cirrus soon.\n    >Unfortunately, their not available via FTP, you have to dial\n    >up their BBS in the USA.  I do this from NZ using a 14.4k modem\n    >to cut down on phone bills.  It took me around 7 minutes to \n    >download the v1.2 driver.\n\n\tCould you please upload to any of the ftp sites (such as\n\tftp.ciaca.indiana.edu) and announce it here? This will benefit\n\tpeople does not have access to their BBS in USA (like me :-))?\n\n\tThanks a lot.\n\n- Beng Hang Tay\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4890, "properties": {"category": "rec.autos", "text": "From: wdh@grouper.mkt.csd.harris.com (W. David Higgins)\nSubject: '93 Ford Probe GT -- Engine problems?\nOrganization: Harris CSD, Ft. Lauderdale, FL\nLines: 21\nDistribution: world\nNNTP-Posting-Host: grouper.mkt.csd.harris.com\n\nOne of the local dealers has a used (7k miles) '93 Probe GT\non the lot with a photocopy of a document taped to the\nwindow saying the dealership bought the car back from\nthe previous owner because of \"Engine noises\", but that\nthe Ford district rep had OK'ed the car saying those\nnoises were \"normal\".  I thought it was worth looking\ninto (the car seems otherwise clean) and mentioned this\nto a co-worker, who proceeded to tell me a horror story\nabout her son's '93 Probe GT, which had several problems,\nending with engine noises which she said \"was something\nwith the heads\", that Ford acknowledged the noise, said\nthey were working on it, but didn't have a cure as of\nyet.  Her son traded the car in (and I checked -- not\nthe same car).  So I have some evidence of a reoccuring\nproblem with the V6 in the Probe GT's, and by extension\nwith the Madza 626 and MX-6.\n\nAnything to this?  I'd love to consider buying the GT (I'm\nturning 40 -- time for my scheduled mid life crisis :-)\nbut I'd hate to find out I just became the proud owner\nof a Lemon.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4891, "properties": {"category": "talk.religion.misc", "text": "From: starowl@rahul.net (Michael D. Adams)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nReply-To: starowl@rahul.net\nOrganization: Southeast Alabama Society of Warm and Fuzzy Star Worshippers\nLines: 14\nNntp-Posting-Host: bolero\nX-Newsreader: TIN [version 1.1 PL8]\n\nOn 15 Apr 1993 22:34:40 GMT, Eric Sieferman observed:\n\n: Christian:  washed in the blood of the lamb.\n: Mithraist:  washed in the blood of the bull.\n\n: If anyone in .netland is in the process of devising a new religion,\n: do not use the lamb or the bull, because they have already been\n: reserved.  Please choose another animal, preferably one not\n: on the Endangered Species List.  \n\nHow about \"washed in the blood of Barney the Dinosaur\"?  :)\n\n--\nMichael D. Adams  (starowl@a2i.rahul.net)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4892, "properties": {"category": "rec.motorcycles", "text": "From: sanjay@kin.lap.upenn.edu (Sanjay Sinha)\nSubject: Re: New to Motorcycles...\nOrganization: University of Pennsylvania, Language Analysis Center\nLines: 18\nNntp-Posting-Host: kin.lap.upenn.edu\n\nIn article <13612@news.duke.edu> infante@acpub.duke.edu (Andrew  Infante) writes:\n:>Curtis JAckson pens...\n:>\n:>\"MSF course...$140\"\n:\n:Shyah!\n:\n:The one here only costs $35!\n:\n:(Izzat a deal or what?! :)\n\n\nThey are free in Philadelphia....   :-)\n\n-- \n   '81 CB650 \t\t\t\t\t\tDoD #1224\n\n\t   I would give my right arm to be ambidextrous!\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4893, "properties": {"category": "talk.politics.mideast", "text": "From: jim@specialix.com (Jim Maurer)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nOrganization: Specialix Inc.\nLines: 25\n\narf@genesis.MCS.COM (Jack Schmidling) writes:\n\n>In article <C5ut1s.3xA@bony1.bony.com> jake@bony1.bony.com (Jake Livni) writes:\n>>through private contributions on Federal land\".  Your hate-mongering\n>>article is devoid of current and historical fact, intellectual content\n>>and social value.  Down the toilet it goes.....\n>>\n\n>And we all know what an unbiased source the NYT is when it comes to things\n>concerning Israel.\n\n>Neither the Times nor the trained seals who have responded thus far seem to\n>recognize the statement that these \"private funds\" were all tax exmpt.  In\n>otherwords, American taxpayers put up at least 30% of the money.  And\n>finalyy, how does \"Federal land\" mitigate the offensiveness of this alien\n>monument dedicated to perpetuating pitty and the continual flow of tax money\n>to a foreign entity?\n\n>That \"Federal land\" and tax money could have been used to commerate\n>Americans or better yet, to house homeless Americans.\n\nThe donations are tax deductible like any donations to a non-profit\norganization.  I've donated money to a group restoring streetcars\nand it was tax deductible.  Why don't you contribute to a group\nhelping the homeless if you so concerned?\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4894, "properties": {"category": "sci.space", "text": "From: apryan@vax1.tcd.ie\nSubject: Cosmos 2238\nLines: 11\nNntp-Posting-Host: vax1.tcd.ie\nOrganization: Trinity College Dublin\nLines: 11\n\nI need as much information about Cosmos 2238 and its rocket fragment (1993-\n018B) as possible. Both its purpose, launch date, location, in short,\nEVERYTHING! Can you help?\n\n-Tony Ryan, \"Astronomy & Space\", new International magazine, available from:\n              Astronomy Ireland, P.O.Box 2888, Dublin 1, Ireland.\n6 issues (one year sub.): UK 10.00 pounds, US$20 surface (add US$8 airmail).\nACCESS/VISA/MASTERCARD accepted (give number, expiration date, name&address).\n\n   (WORLD'S LARGEST ASTRO. SOC. per capita - unless you know better? 0.033%)\nTel: 0891-88-1950 (UK/N.Ireland) 1550-111-442 (Eire). Cost up to 48p per min\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.235+0000", "event": "documents", "entityId": 4895, "properties": {"category": "comp.sys.mac.hardware", "text": "From: erik@cheshire.oxy.edu (Erik Adams)\nSubject: HELP!!  My Macintosh \"luggable\" has lines on its screen!\nOrganization: Occidental College, Los Angeles, CA 90041 USA.\nDistribution: comp\nLines: 20\n\nOkay, I don't use it very much, but I would like for it to keep working\ncorrectly, at least as long as Apple continues to make System software\nthat will run on it, if slowly :-)\n\nHere is the problem:  When the screen is tilted too far back, vertical\nlines appear on the screen.  They are every 10 pixels or so, and seem\nto be affected somewhat by opening windows and pulling down menus.\nIt looks to a semi-technical person like there is a loose connection\nbetween the screen and the rest of the computer.\n\nI am open to suggestions that do not involve buying a new computer,\nor taking this one to the shop.  I would also like to not have\nto buy one of Larry Pina's books.  I like Larry, but I'm not sure\nI feel strongly enough about the computer to buy a service manual\nfor it.\n\nOn a related note:  what does the monitor connector connect to?\n\nErik\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4896, "properties": {"category": "alt.atheism", "text": "From: anthropo@carina.unm.edu (Dominick V. Zurlo)\nSubject: Re: [soc.motss, et al.] \"Princeton axes matching funds for Boy Scouts\"\nOrganization: University of New Mexico, Albuquerque\nLines: 30\nNNTP-Posting-Host: carina.unm.edu\n\nIn article <1993Apr5.011255.7295@cbnewsl.cb.att.com> stank@cbnewsl.cb.att.com (Stan Krieger) writes:\n>Now can we please use rec.scouting for the purpose for which it was\n>established?  Clearly we netnews voters decided that we did not want to\n>provide a scouting newsgroup to give fringe groups a forum for their\n>anti-societal political views.\n\nOk, this is the only thing I will comment on from Stan at this time...\npart of this forum we call rec.scouting is for policy discussions and\nrelated topics.  This is a policy discussion, and involves related \ntopics.  this is not a \"fringe\" group discussion.  obviously, it \nengenders strong feelings from all sides of the issues at hand. \nWether a particular view is anti-societal or not is your opinion, \nand yours alone, don't try to make it seem otherwise. \nIf you do not wish to engage in this discussion, use a kill file. \nIf you wish to continue in this discussion, please do so, knowing \nfull well the implications that apply.\nI know for myself that I plan on continuing with the discussion when \ni have the wish to have input.  I for one am tired of people trying to \nsay that this is not a matter significant for this group!  It is, and \nquite so. Especially for those of us who feel the impact more closely.\n\n\n****************************************************************\n*  Dominick V. Zurlo              *    \"If the world's an      *\n*  WWW                            *    oyster, why am I        *\n*  Eagle Scout '87                *    allergic to Mollusks?\"  *\n*  blacklisted '88                *                            *\n****************************************************************\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4897, "properties": {"category": "rec.autos", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: BRAINDEAD Drivers Who Don't Look Ahead--\nKeywords: bad drivers\nOrganization: Corporation for Open Systems\nDistribution: usa\nLines: 52\n\nIn <1993Apr14.230524.9578@ctp.com> bpita@ctp.com (Bob Pitas) writes:\n\n>In article <zdem0a.734707529@hgo7> zdem0a@hgo7.hou.amoco.com (Donna Martz) writes:\n\n>[Stuff Deleted]\n\n>>\n>>Excuse me, but I understood what Mr. Smith meant.  AND, I have often observed \n>>when traffic is \"blocked solid\", that if a few people yeild to the \"moron\"\n>>who is impatiently riding bumpers, the slug at the front of the pack will\n>>miraculously wake up, change lanes, and viola! no more jam.  Granted the\n>>situation here does not apply to rush hour in a crowded city.  But I have\n>>observed this situation regularly on your average interstate, six or \n>>eight sets of cars, side by side, bunched up in a \"pack\" with open \n>>freeway fore and aft as far as you can see.  The people who refuse to\n>>yeild as a \"point of honor\" are just as annoying as the slug in the front.\n\n>I agree that if traffic is all blocked up and you want to pass, you might\n>not feel like moving over for someone behind you because you don't want to\n>give them that one car-length, when they should just wait like you are.\n>BUT, if you're one of those people that just sit's behind the person, and\n>doesn't flash them with the high beams, or pull left and flash them, or\n>ride their bumper, or otherwise tell them that you *do* in fact want to \n>go by, and you're not just drafting them, then get the hell out of the \n>way of someone who will!  I especially hate it when you flash someone at\n>the back of a line and they don't 'pass it on'.  \n\nSo after I've flashed my lights at the chap in front and he doesn't\n'pass it on' (and few if any do), what next? On major highways, 3 or more\nlanes in each direction, keeping to the extreme right blocks folks who\nare entering. Also, as someone posted in this thread, here in the D.C.\narea we have a few left lane exits (sounds like 66). If you wait until\nthe last minute to get in the left lane you won't, cause these yoyos\nwon't make room.\n\nWe have a particularly bad strech here in Merryland just over the Cabin\nJohn bridge. There are two very long entry ramps which all the hurry-up\nyahoos dive into cause they want to get ahead. When we get to the point\nwhere these ramps merge, all hell breaks lose. The result is that traffic\nwhich was moving at 55 on the VA side of the bridge, stalls on t'other\nside. If these dingbats had stayed in lane, allowed the folks coming up\nthe two ramps to merge, we would still be doing 55. Instead we do start-\nstop for 4 miles. Dave Barry's idea of a laser equipped car would be\nreal useful here.\n\nBob\n\nPS: If you drive the beltway and want to merge, look for a brown Probe\nwith a silver haired driver, then use your signals - I don't read minds,\nbut I do try to be courteous. They told me courtesy was contagious, but\nI guess the folks around here have had their shots :-/\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4898, "properties": {"category": "sci.med", "text": "From: solmstead@PFC.Forestry.CA (Sherry Olmstead)\nSubject: Re: Heat Shock Proteins\nNntp-Posting-Host: pfc.pfc.forestry.ca\nReply-To: solmstead@PFC.Forestry.CA\nOrganization: Forestry Canada (Pacific Forestry Centre)\nLines: 25\n\nrousseaua@immunex.com writes about heat shock proteins (HSP's) and DNA.\n\nI hate to be derogatory, but in this case I think it's warranted.\n\nHSP's are part of the cellular response to stress.  The only reason they\nare called 'heat shock proteins' is because they were first demonstrated\nusing heat shock.  Dead tissue (ie. meat) is not going to produce ANY\nprotein- because it's DEAD!  \n\nAlso, who cares if the DNA you are ingesting is mutated!?  It will be \ncompletely digested in your stomach, which is about pH 2.  \n\nSome of you worry WAY too much.  Eat a healthy, balanced diet and relax.\n\nMy advice is, if you don't know what you are talking about, it is better\nto keep your mouth shut than to open it and remove all doubt about your\nignorance.  Don't speculate, or at least get some concrete information\nbefore you do!\n\nSherry Olmstead\nBiochemist\n\n  SHERRY OLMSTEAD                   Title: Lab Technician\n  Forestry Canada                   Phone: (604) 363-0600\n  Victoria, B.C.                    Internet: SOLMSTEAD@A1.PFC.Forestry.CA\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4899, "properties": {"category": "talk.politics.mideast", "text": "From: ab4z@Virginia.EDU (\"Andi Beyer\")\nSubject: Re: Israeli Terrorism\nOrganization: University of Virginia\nLines: 4\n\nI think the Israeli press might be a tad bit biased in\nreporting the events. I doubt the Propaganda machine of Goering\nreported accurately on what was happening in Germany. It is\ninteresting that you are basing the truth on Israeli propaganda.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4900, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: msmith@volcano.ma30.bull.com (Mike Smith)\nSubject: DLL's and RegisterClass/CreateWindow\nReply-To: M.Smith@ma30.bull.com\nOrganization: Bull HN, Worldwide Information Systems, Billerica, Mass., USA\nDistribution: comp\nLines: 28\n\n\nHi all,\n\nI have a DLL in which I Register a class and create a window of that\nclass type.  Both calls require a module instance handle, hInstance.\n\nPetzold's 3.1 book says that it is best to use the module instance\nhandle of the calling program, not the module instance handle of the\nDLL (page 934).\n\nI have two questions:\n\n1)  Is there a way to find out the module instance handle of a module?\n\n2)  What are the possible problems with using the instance handle of\n    the DLL?\n\nThanks in advance,\nMike\n--\n-----------------------------------------------------------------------\n\n    Mike Smith                          e-mail:  M.Smith@ma30.bull.com\n    Bull HN Information Systems Inc.     phone:  (508) 294-2049\n    300 Concord Road  MA30 - 815A          fax:  (508) 294-3807\n    Billerica, MA 01821  USA\n\n-----------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4901, "properties": {"category": "comp.sys.mac.hardware", "text": "From: b91926@fnclub.fnal.gov (David Sachs)\nSubject: Re: Apple Tape backup 40SC under System 7.x\nOrganization: Fermi National Accelerator Laboratory, Batavia IL\nLines: 15\nDistribution: usa\nNNTP-Posting-Host: fnclub.fnal.gov\nKeywords: backup, tape,\n\nIn article <generous.734035090@nova>, generous@nova.sti.nasa.gov (Curtis Generous) writes:\n|> \n|> I need to get an Apple 40SC tape backup unit working under\n|> Sys 7.0.x, but do not have any drivers/software to access\n|> the device.  Does anyone know where I can fidn the tools\n|> to access this device?\n|> \n|> Appreciate any info/comments.\n|> \n|> --curtis\n|> -- \n|> Curtis C. Generous\tgenerous@sti.nasa.gov\t\t(703) 685-1140\n|> NASA STI, Code JTT, Washington, DC 20546\n\nRetrospect (Dantz) works nicely with this combination. You can buy it from the mail order vendors.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4902, "properties": {"category": "talk.religion.misc", "text": "From: rich.bellacera@amail.amdahl.com\nSubject: Walter?\nLines: 15\nReturn-Path: <amail.amdahl.com!rich.bellacera@juts.ccc.amdahl.com>\n\nWalter-\n\nI tried several times in the past to communicate with you and Susan, but\nyou ignored me, and I don't honestly believe my letters were mean.  Rather\nI thought they were thoughtful and compassionate, but I see now what I should\nhave seen then.  Call me naive.\n\nI give up on this group.  As my Lord advised, that if you are unwelcome in\na city then brush the dust of your feet and go on.\n\nIf anyone cares about the topic they write to me direct, if not, well,\nmay God bless you as well.\n\nBye to this group.\nPAX\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4903, "properties": {"category": "rec.sport.hockey", "text": "From: shah@pitt.edu (Ravindra S Shah)\nSubject: Re: ABC coverage\nDistribution: usa\nLines: 28\nX-Newsreader: TIN [version 1.1 PL8]\n\nJoseph B Stiehm (joe13+@pitt.edu) wrote:\n\n\n: I have one complaint for the cameramen doing the Jersey-Pitt series:  Show\n: the shots, not the hits.  On more than one occassion the camera zoomed in\n: on a check along the boards while the puck was in the slot.  They panned\n: back to show the rebound.  Maybe Mom's camera people were a little more \n: experienced.\n\n\n\n: Joseph Stiehm\n\nExactly.  That is my biggest complaint about the coverage so far.\nFollow that damn puck!\n\n\n\n\n--\nRavi Shah\nshah+@pitt.edu\n\n\"La mu'sica ideas portara'  \tapprox. translation: \"Music will bring ideas\ny siempre continuara'\t\t\t\t     and will continue forever\nsonido electro'nico\t\t\t\t     electronic sound\ndecibel sinte'tico\"\t-Musique non stop-\t     synthetic decibel\"\n                           -Kraftwerk\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4904, "properties": {"category": "rec.motorcycles", "text": "From: infante@acpub.duke.edu (Andrew  Infante)\nSubject: Re: LONG TRIPS\nOrganization: Duke University; Durham, N.C.\nLines: 27\nNntp-Posting-Host: north1.acpub.duke.edu\n\nIn article <18859.1076.uupcb@freddy.ersys.edmonton.ab.ca> mark.harrison@freddy.ersys.edmonton.ab.ca (Mark Harrison) writes:\n>I am new to motorcycliing (i.e. Don't even have a bike yet) and will be\n>going on a long trip from Edmonton to Vancouver. Any tips on bare\n>essentials for the trip? Tools, clothing, emergency repairs...?\n\nEr, without a bike (Ed, maybe you ought to respond to this...), how\nyou gonna get there?\n\nIf yer going by cage, what's this got to do with r.m?\n\n>\n>I am also in the market for a used cycle. Any tips on what to look for\n>so I don't get burnt?\n>\n>Much appreciated\n>Mark\n>                                                                 \n\nMaybe somebody oughta gang-tool-FAQ this guy, hmmm?\n\n\n\n-- \nAndy Infante  | You can listen to what everybody says, but the fact remains   |\n'71 BMW R60/5 | that you've got to get out there and do the thing yourself.   | \nDoD #2426     |                             -- Joan Sutherland                | \n==============| My opinions, dammit, have nothing to do with anyone else!!!   | \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4905, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mb4008@ehibm6.cen.uiuc.edu (Morgan J Bullard)\nSubject: Hard drive compression ie, stacker.superstor etc.\nSummary: looking for comparsions between the various hard drive compression utilitys\nKeywords: stacker superstor doubledisk doublespace\nArticle-I.D.: news.C5w8r9.EBu\nDistribution: comp.os.ms-windows comp.os.ms-windows.apps\nOrganization: University of Illinois at Urbana\nLines: 6\n\n\nI was wondering if any one knew how the various hard drive compression utilities work.  My hard\ndrive is getting full and I don't want to have to buy a new one.  What I'm intrested in is speed\n,ease of use, amount of compression, and any other aspect you think might be important as I've never\nuse one of these things before. thanks  Morgan Bullard mb4008@coewl.cen.uiuc.edu\n\t\t\t\t\t\tor     mjbb@uxa.cso.uiuc.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4906, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: kxn3796@hertz.njit.edu (Ken Nakata CIS stnt)\nSubject: Re: difference between VLB and ISA/EISA\nOrganization: New Jersey Institute of Technology, Newark, N.J.\nLines: 17\nNntp-Posting-Host: hertz.njit.edu\n\nIn article <734874577snx@finbol.toppoint.de> jschief@finbol.toppoint.de (Joerg Schlaeger) writes:\n>[......]\n>Better OSs (OS/2 & iX) are able to handle more than 16MB of DRAM,\n>if you use EISA-Bus.\n>Has someone experience with VLB ??\n>I think of SCSI-VLB-Busmaster. The problem is the 16bit Floppy DMA\n>controller, which is unable to reach more than 16MB.\n\nI don't think FD is a problem.  Since FD is much sloooooooowwwwwwer\nthan HD, the overhead of double buffering doesn't matter.\n\nKen Nakata\n-- \n/* I apologize if there are incorrect, rude, and/or impolite expressions in\nthis mail or post. They are not intended. Please consider that English is a\nsecond language for me and I don't have full understanding of certain words\nor each nuance of a phrase.  Thank you. -- Ken Nakata, CIS student, NJIT */\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4907, "properties": {"category": "talk.religion.misc", "text": "From: rjl+@pitt.edu (Richard J. Loether)\nSubject: Re: Who's next?  Mormons and Jews?\nDistribution: usa\nOrganization: University of Pittsburgh\nLines: 38\n\nIn article <1r1et6INNh8p@ctron-news.ctron.com> king@ctron.com (John E. King) writes:\n:\n: pmy@vivaldi.acc.Virginia.EDU (Pete Yadlowsky) writes:\n:\n:::Didn't Christ tell his disciples to arm them selves, shortly \n:::before his crusifiction? (I believe the exact quote was along the\n:::lines of, \"If you have [something] sell it and buy a sword.\")\n:\n::This from a guy who preached love, deference of power to God and\n::renunciation of worldly life in exchange for a life of the spirit? If\n::Jesus did in fact command his disciples to arm themselves, I would\n::take that as yet another reason to reject Christian doctrine, for\n::whatever it's worth.\n\nLike most religions, the doctrine has good and bad in it.  I would \ncertainly reject the current implementations of the doctrine.\n:\n:No.  The above is a classic example of taking a scripture out of context.\n:It's taken from Luke 22:36.  But note vs 37; \"For I tell you that this\n:which is written must be accomplished in me, namely, 'and he will be reckoned\n:with lawless ones'...\".  He then stated that two swords were enough\n:for the group to carry to be counted as lawless.  \n\nSo having more than the politically correct number of weapons was\ncause to be arresed and killed even then, huh?\n\n:Jesus' overiding message was one of peace (turn other cheek; live by \n:sword die by sword; etc).\n\nYes, of course, as in Matthew 10:34-35 \"Do not suppose that I have come to \nbring peace to the earth; it is not peace I have come to bring but a sword...\"\n:\nRJL\n-- \nRich Loether          Snail mail: University of Pittsburgh     The Ideas:\nEMail: rjl+@pitt.edu              Computing and Info Services      Mine,\nVoice: (412) 624-6429             600 Epsilon Drive                   all\nFAX  : (412) 624-6426             Pittsburgh, PA 15238                  Mine.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4908, "properties": {"category": "comp.windows.x", "text": "From: moore@halley.est.3m.com (Richard Moore)\nSubject: Using message passing with XtAddInput \nOrganization: 3M Company, 3M Center, Minnesota, USA\nDistribution: comp.windows.x\nLines: 7\n\nIn the past, I have used named pipes to communicate between processes using\nthe XtAddInput function to set up the event handling in Motif. Does anybody\nknow of a way to do this with message passing ( IPC ) ? I tried it here and\nno luck so far.\n\nThanks\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4909, "properties": {"category": "talk.politics.guns", "text": "From: crrob@sony1.sdrc.com (Rob Davis)\nSubject: Re: Insane Gun-toting Wackos Unite!!!\nSummary: backcountry\nDistribution: na\nLines: 16\n\n\n  fcrary@ucsu.Colorado.EDU (Frank Crary @ University of Colorado, Boulder):\n\n>I don't know about animal attacks, but there are 23,500 murders\n>each year and under 500 die in the manner you suggest. If only\n>2.1% of the murders were killings by \"wacko\"s, you would be\n>wrong. Worse, there are also 102,500 rapes and 1,055,000 aggravated\n>assaults each year. These numbers make violent attacks, and\n>preventing them, thousands of times more significant than the\n>accidents you are worried about.\n \n These stats are invalid; we're talking BACKCOUNTRY. These stats for\n rapes/assaults/deaths do not represent the backcountry singularly; the\n great majority represent urban incidents. You should have pointed this out.\n\n  -Rob\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4910, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: re: Its still cold, but...\nOrganization: University College of Wales, Aberystwyth\nLines: 23\nNntp-Posting-Host: 144.124.112.30\n\n>first ride of the season.\n>\nOne thing is certain, though, its still too cold.  After about 40\n>minutes, I had to stop and hold my muffler for a while.  When I got\n>home after a few hours, I kept all my gear on for about a half hour\n>in the house.  40F, 100% humidity, no wind protection, and 75mph\n>do not mix well.\n>\n\nHell! This is WARM. I retired my fleece from under the Aerostich last \nmonth when the temperature got aboce 40. Try living a couple of years \non the dole, so you cant afford any heating. You put the gear on in\nOctober, abd you take it off again in May. Getting out on the bike \nseems like a luxury in comparison cos oyur usuallu going somewhere \nwarm. \n\nIts all relative.\n\n>\n>Happy cold riding.\n>\n\nWho are you trying to kid - its the pain that makes it all worthwhile.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4911, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cfdeb01@ux1.cts.eiu.edu (Dixon Berry)\nSubject: Mail_Order Sales, Billing, Receivables program\nOrganization: Eastern Illinois University\nLines: 20\n\n\nSurely some one of you is familiar with what a mail-order company goes\nthrough. This company has only a few products, but thousands of clients.\nI need a Sales, Billing, and Receivables program to handle the thing,\nbut I need to be able to customize it myself, own the source, etc. Anyone\nwilling to sell me the basic stuff (in ANY development language) I'll\nbe willing to pay about $1,000 to. \n\nIt has to be ready now. I need this sort of solution immediately. With more\ntime I'll just develop one myself. If you can have me a prototype in\ntwo weeks, you can make some quick cash.\n\n*************************************************************************\n| Dixon Berry                       \"I see the light                    |\n| cfdeb01@ux1.cts.eiu.edu              at the end of the tunnel, now,   |\n| Eastern Illinois University        [thanks Bill Clinton]              |\n| Booth Library                      Someone please tell me             |\n| Computer Resource Center             it's not a train                 |\n|                                                -- Cracker             |\n*************************************************************************\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4912, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: <<Pompous ass\nOrganization: sgi\nLines: 28\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1ql6jiINN5df@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n|> \n|> >>Look, I'm not the one that made those Nazi comparisons.  Other people\n|> >>compared what the religious people are doing now to Nazi Germany.  They\n|> >>have said that it started out with little things (but no one really knew\n|> >>about any of these \"little\" things, strangely enough) and grew to bigger\n|> >>things.  They said that the motto is but one of the little things \n|> >You just contradicted yourself.  The motto is one of those little things that\n|> >nobody has bothered mentiopning to you, huh?\n|> \n|> The \"`little' things\" above were in reference to Germany, clearly.  People\n|> said that there were similar things in Germany, but no one could name any.\n|> They said that these were things that everyone should know, and that they\n|> weren't going to waste their time repeating them.  Sounds to me like no one\n|> knew, either.  I looked in some books, but to no avail.\n\nThat's not true.    I gave you two examples.   One was the rather\npevasive anti-semitism in German Christianity well before Hitler\narrived.   The other was the system of social ranks that were used\nin Imperail Germany and Austria to distinguish Jews from the rest \nof the population.\n\nNeither of these were very terrible in themselves, but both helped\nto set a psychology in which the gradual disenfranchisement of Jews\nwas made easier.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4913, "properties": {"category": "sci.electronics", "text": "From: ragee@vdoe386.vak12ed.edu (Randy Agee)\nSubject: Radar detector DETECTORS?\nOrganization: Virginia's Public Education Network (Richmond)\nLines: 50\n\nHere's one I hope some knowledgeable readers will make a comment or\ncontribution to:\n\nIn the State of Virginia radar detectors are illegal, period.  If\nyou are caught with one it will be confiscated on the spot and will\nnot be returned until after you appear in court and pay your fine. \nThe fine for having a radar detector accessible in a motor vehicle\n(even if it is not on) is $250.00.  Sorry, tourist, ignorance of\nthe law is no excuse - they will get you too!\n\nIt used to be that the only way the law could be enforced was for\nan officer to actually see the radar detector.  Not any more!  Many\nlaw enforcement agencies are now using radar detector detectors. \nRight, a super sensitive receiver that is capable of picking up RF\nfrom the radar detector itself.  My first reaction was \"no way!\" \nBut, guess again, these little buggers really work and the police\nare writing citations right and left for people using radar\ndetectors.  One news story quoted an officer as saying that he had\nfound the radar detector in all of the cars he stopped except one,\nand he could never figure out where it was - but he knew it was\nthere.  This tends to make one assume there are few false arrest.\n\nNow, before I get flamed, please understand that I do drive at or\nnear the speed limit.  I do not need a radar detector to keep me\nfrom getting a speeding ticket.  But, I do like to know when my\nspeed is being clocked or a speed trap is functioning.  My radar\ndetector now stays locked in my trunk when I am in Virginia (which\nis what they want - and yes, what the law says, and I intend to\nobey the law!) and is only used in states where it is legal.\n\nFor my fellow hams, I am not a microwave person - my mind only\nworks in the HF spectrum between 10 and 80 meters.  Microwave\nenlightment may be necessary.\n\nSo, the questions are -\n  What do the radar detector detectors actually detect?\n  Would additional shielding/grounding/bypassing shield stray RF generated by\n  a radar detector, or is the RF actually being emitted by the detector\n  antenna?\n  Are any brands \"quieter\" than others?\n\n==============================================================================\nRandy T. Agee - ARS WB4BZX       | At some point, you probably pondered The \nP.O. Box 2120 - 20th floor       | Meaning of Life, and you came up with a \nVirginia Department of Education | satisfactory answer, which has or has not\nRichmond, VA 23216-2120          | stood the test of time, or you shrugged\nPhone (804) 225-2669             | mightily, muttered \"Beats the heck out of\nragee@vdoe386.vak12ed.edu        | me,\" and ordered a cheeseburger.\n=============================================================================\n \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4914, "properties": {"category": "talk.politics.misc", "text": "From: mvp@netcom.com (Mike Van Pelt)\nSubject: Re: Anyone interested in facts?  Here's a few\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 19\n\nOops, I forgot to set read permission.  It's fixed now.\n\nftp netcom.com\nlogin: anonymous\npassword: your@email.address\ncd pub/mvp\nbinary\nget clinton.zip\n\nYou need pkzip 2.x or the latest net.zip to un-\"deflate\" this.\n\nEconomic stats since Day One, plus all of the myriad ways Slick Willie\nand the Gang of 535 are preparing to do it to us.  From Ron Brown's\ndesk, so any distortion is pro-Democrat, can you believe it?\n-- \nLet's face it, when it comes to utilities,  Microsoft has | Mike Van Pelt\nperformed about as well as a savings and loan.  These are | mvp@netcom.com \nthe guys,  remember,  who put BACKUP and RESTORE - not to | mvp@lsil.com     \nmention EDLIN - on your hard disk.  - Lincoln Spector     +----\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4915, "properties": {"category": "misc.forsale", "text": "From: zeno@ccwf.cc.utexas.edu (S. Hsieh)\nSubject: Video/Audio/Computer equipment for sale..\nOrganization: The University of Texas at Austin, Austin TX\nLines: 49\nDistribution: na\nReply-To: zeno@ccwf.cc.utexas.edu (S. Hsieh)\nNNTP-Posting-Host: mickey.cc.utexas.edu\nOriginator: zeno@mickey.cc.utexas.edu\n\nTime for some spring cleaning, so the following items are up\nfor sale:\n\nRoland MT-32 Multi-Timbre Sound module.  \n  LA synthesis, upto 32 simultaneous voices, 128 preset timbres,\n  20-char backlit LCD display, MIDI in/out/thru, reference card,\n  stereo output, etc\n\n  Great for games that support it (music on the MT32 is far\n  superior to any sound card), experimenting with MIDI, or\n  for adding additional sounds to your MIDI setup.\n\n  $235 + shipping\n\nCanon RC-250 Xapshot still video camera system.\n  Includes: camera, carrying pouch, battery pack, battery charger,\n  ac adapter, video cables, two 2.5\" floppies (each disk holds\n  50 pictures for 100 pics total), manuals, etc\n\n  Video output is standard NTSC composite and can be sent to any\n  NTSC device (e.g. to a television for direct viewing of your\n  pictures, to a VCR to record a slideshow, to a computer video\n  digitizer to save/manipulate the pictures on a computer system)\n\n  $295 + shipping\n\nAmbico Video Enhancer/Audio Mixer\n  Three-line stereo audio mixer with microphone input and master\n  volume slider w/video enhancer to boost & sharpen video images\n  when dubbing from VCR->VCR, camcorder->VCR, etc\n\n  $38 + shipping\n\n2400 baud PC internal modem\n\n  $25 + shipping\n\nQuantum 105MB 3.5\" internal ProDrive hard disk\n  This unit has recently turned unreliable and erratic in usage.\n  Could be a simple easily fixed problem or a major problem,\n  but at any rate I don't have the time to find out where the\n  problem lies.  If you want to take a risk on it, you can have\n  it for $45 + shipping.\n\nIf interested in any of the above items, please Email me.\n\n-S. Hsieh\nzeno@ccwf.cc.utexas.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4916, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Entire Muslim population was subjected to genocide by Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 76\n\nIn article <48090@sdcc12.ucsd.edu> hminassi@sdcc13.ucsd.edu (HM) writes:\n\n>     Azeri President Abulfaz Elchibey said Azerbaijan had recovered\n>the bodies of some 500 \"terrorists including blacks, Mongols and\n>fighters recently brought to (the Armenian capital) Yerevan from Lebanon.\"\n\nYou can dream whatever you wish. We have demands from the Armenians.\nWith the Government of x-Soviet Armenia, we would sit down, go over\nall our outstanding issues, whether it's land or reparations or\nrecognition, whatever it is. We'd like to sit down and ask for it.\nBy all means, lands and properties were taken away from us and they\nshould be returned to the rightful owners, the Turkish and Kurdish \npeople, who were there 3,000 years, long before the Armenians ever\nshowed up in that area. Entire population of the region was subjected \nto genocide beyond belief; genocide which was planned to exterminate \nthe whole Turkish people of the region to the last man, woman and child. \nArmenians tortured and massacred millions of defenseless civilians. To \nassemble innocent civilians in the mosques and burn them in the buildings \nwas one of their methods. Even today the traveler in that region is seldom \nfree from the evidence of these Armenian crimes.\n\nIf you have the stomach, I would strongly recommend the following\nreferences on the Armenian genocide of the Muslims. Many more of them\nare also available in the 'Erzurum and Van Turkish Genocide Museums.'\n\n1. Neside Kerem Demir, \"Bir Sehid Anasina Tarihin Soyledikleri: \n   Turkiye'nin Ermeni Meselesi,\" Hulbe Basim ve Yayin T.A.S., \n   Ankara, 1982. \n\n2. Veysel Eroglu, \"Ermeni Mezalimi,\" Sebil Yayinevi, Istanbul, 1978.\n\n3. A. Alper Gazigiray, \"Osmanlilardan Gunumuze Kadar Vesikalarla Ermeni\n   Teroru'nun Kaynaklari,\" Gozen Kitabevi, Istanbul, 1982.\n\n4. Dr. Kirzioglu M. Fahrettin, \"Kars Ili ve Cevresinde Ermeni Mezalimi,\"\n   Kardes Matbaasi, Ankara, 1970. \n\nBut more than that. \n\nA Final Goodbye in Azerbaijan:\n\n[Photo by Associated Press]: \"At a cemetery in Agdam, Azerbaijan, family \nmembers and friends grieved during the burial of victims killed in the \nfighting in Nagorno-Karabagh. Chingiz Iskandarov, right, hugged the \ncoffin containing the remains of his brother, one of the victims. A copy \nof Koran lay atop the coffin.\"\nThe New York Times, 3/6/92\n\nFinal Embrace :\n\n[Photo by Associated Press]: \"Chingiz Iskenderov, right, weeps over \ncoffin holding the remains of his brother as other relatives grieve \nat an Azarbaijani cemetery yesterday amid burial of victims killed \nin fighting in Nagorno-Karabagh.\"\nThe Washington Post, 3/6/92\n\nNagorno-Karabagh Victims Buried in Azerbaijani Town :\n\n\"Refugees Claim Hundreds died in Armenian Attack...Of seven bodies seen \n here today, two were children and three were women, one shot through \n the chest at what appeared to be close range.  Another 120 refugees \n being treated at Agdam's hospital include many with multiple stab \n wounds.\"\n Thomas Goltz\n The Washington Post, 2/28/92\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4917, "properties": {"category": "misc.forsale", "text": "From: steve@titan.tsd.arlut.utexas.edu (Steve Glicker)\nSubject: 2 5V 200A Power Supplies f/$350 obo\nNntp-Posting-Host: rooster\nOrganization: Applied Research Labs, The University of Texas at Austin\nDistribution: usa\nLines: 12\n\nTwo LH Research SM11-1 power supplies (series SM10).\n\n1000W, 5V, 200A (currently wired for 115VAC)\n\nControl lines: +/- sense, on/off, pwr. fail, high/lo margin, current monitor\n\n(List price from LH Research $824.00 each, qty. 1-9)\n\nAsking $350.00 for the pair obo\n\nSteve Glicker\n(steve@titan.tsd.arlut.utexas.edu)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4918, "properties": {"category": "talk.politics.misc", "text": "From: wiggins@cecer.army.mil (Don Wiggins)\nSubject: Re: Top Ten Responses to Ed's Top Ten Lists\nOrganization: US Army Corps of Engineers Construction Engineering Research Labs\nLines: 16\n\n>>roby@chopin.udel.edu (Scott W Roby) writes:\n>>\n>>The real question: Should the Feds bail-out Steve Jobs & NeXT (a la Chrysler)\n>>so that important manufacturing jobs wouldn't be lost?\n\n\"...a la Chrysler\"??  Okay kids, to the nearest thousand, how many\ndollars did the government spend to \"bail out\" Chrysler?  More than zero\nyou say?  \n\nBzzzzzzzzzt.  Wrong answer.\n\n|===========================================================================|\n|Don Wiggins, German-Irish-American    | Success is getting what you want.  |\n| & Lead Scout for the Baby Boomers    | Happiness is wanting what you get. |\n|Internet: wiggins@osiris.cso.uiuc.edu |     -- Brother Dave Gardner        |\n|===========================================================================|\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4919, "properties": {"category": "alt.atheism", "text": "From: MANDTBACKA@FINABO.ABO.FI (Mats Andtbacka)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Unorganized Usenet Postings UnInc.\nLines: 24\nIn-Reply-To: frank@D012S658.uucp's message of 15 Apr 1993 23:15:09 GMT\nX-News-Reader: VMS NEWS 1.24\n\nIn <1qkq9t$66n@horus.ap.mchp.sni.de> frank@D012S658.uucp writes:\n\n(Attempting to define 'objective morality'):\n\n> I'll take a wild guess and say Freedom is objectively valuable.  I base\n> this on the assumption that if everyone in the world were deprived utterly\n> of their freedom (so that their every act was contrary to their volition),\n> almost all would want to complain.\n\n      So long as you keep that \"almost\" in there, freedom will be a\nmostly valuable thing, to most people. That is, I think you're really\nsaying, \"a real big lot of people agree freedom is subjectively valuable\nto them\". That's good, and a quite nice starting point for a moral\nsystem, but it's NOT UNIVERSAL, and thus not \"objective\".\n\n> Therefore I take it that to assert or\n> believe that \"Freedom is not very valuable\", when almost everyone can see\n> that it is, is every bit as absurd as to assert \"it is not raining\" on\n> a rainy day.\n\n      It isn't in Sahara.\n\n-- \n  Disclaimer?   \"It's great to be young and insane!\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.236+0000", "event": "documents", "entityId": 4920, "properties": {"category": "soc.religion.christian", "text": "From: fraseraj@dcs.glasgow.ac.uk (Andrew J Fraser)\nSubject: Re: God-shaped hole (was Re: \"Accepting Jeesus in your heart...\")\nOrganization: Glasgow University Computing Science Dept.\nLines: 14\n\n[Several people were involved in trying to figure out who first used\nthe phrase \"God-shaped hole\".  --clh]\n\n\"There is a God shaped vacuum in all of us\" (or something to that effect) is\ngenerally attributed to Blaise Pascal.\nWhat I want to know is how can you have a God shaped vacuum inside of you if\nGod is in fact infinite (or omnipresent)?\n\n=========================================================================\n||     Name: Andrew James Fraser  E-mail: fraseraj@dcs.gla.ac.uk       ||\n||     ESE-3H student, University of Glasgow.\t\t\t       ||\n||     Standard disclaimers...                                         ||\n\n[Don't you think you're being a tad too literal with this metaphor?  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4921, "properties": {"category": "rec.sport.baseball", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Jack Morris\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 33\n\nIn <1993Apr19.024222.11181@newshub.ariel.yorku.ca> cs902043@ariel.yorku.ca (SHAWN LUDDINGTON) writes:\n\n>Hey Valentine, I don't see Boston with any world series rings on their\n>fingers.  Damn, Morris now has three and probably the Hall of Fame in his \n>future.  Therefore, I would have to say Toronto easily made the best \n>signing.  And don't tell me Boston will win this year.  They won't \n>even be in the top 4 in the division, more like 6th.\n\nYeah Valentine, how many rings does Clemens have? \n\nNothin' like good old fashioned Canadian logic...\n\nBTW: The only good thing I can say about the Jay's rotation this year\nis that it could have been worse.  Stewart might have stayed healthy.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n-- \n\ncordially, as always,                      maynard@ramsey.cs.laurentian.ca \n                                           \"So many morons...\nrm                                                   ...and so little time.\" \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4922, "properties": {"category": "misc.forsale", "text": "From: craigb@rs6312.ecs.rpi.edu (Brian Craig)\nSubject: Polk S4 's forsale\nNntp-Posting-Host: rs6312.ecs.rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY\nDistribution: misc.forsale\nLines: 14\n\n\n\nPair of Polk S4 for sale \n\nBrand New never opened\n\n$220.00\n\ncraigb@rpi.edu\n\n \n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4923, "properties": {"category": "sci.electronics", "text": "From: hanavin@huey.udel.edu (Chuck Hanavin)\nSubject: Re: HeathKit/Zenith\nNntp-Posting-Host: huey.udel.edu\nOrganization: University of Delaware, Newark\nLines: 7\n\nIn article <C52EGz.27t3@austin.ibm.com> $LOGIN@austin.ibm.com writes:\n>\n>Does anyone out there have the toll-free (catalog request and order line) for\n>Heathkit/Zenith?  Please post the number if you've got it!  Thanks.\n\n----------------------------------------------------\n1-800-253-0570\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4924, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: pushing the envelope\nOrganization: Texas Instruments Inc\nDistribution: na\nLines: 35\n\nIn <1993Apr3.233154.7045@Princeton.EDU> lije@cognito.Princeton.EDU (Elijah Millgram) writes:\n\n\n>A friend of mine and I were wondering where the expression \"pushing\n>the envelope\" comes from.  Anyone out there know?\n\nEvery aircraft has flight constraints for speed/AOA/power.  When\ngraphed, these define the 'flight envelope' of that aircraft,\npresumably so named because the graphed line encloses (envelopes) the\narea on the graph that represents conditions where the aircraft\ndoesn't fall out of the sky.  Hence, 'pushing the envelope' becomes\n'operating at (or beyond) the edge of the flight (or operational)\nenvelope'. \n\nNote that the envelope isn't precisely known until someone actually\nflies the airplane in those regions -- up to that point, all there are\nare the theoretical predictions.  Hence, one of the things test pilots\ndo for a living is 'push the envelope' to find out how close the\ncorrespondence between the paper airplane and the metal one is -- in\nessence, 'pushing back' the edges of the theoretical envelope to where\nthe airplane actually starts to fail to fly.  Note, too, that this is\ndone is a quite calculated and careful way; flight tests are generally\ncarefully coreographed and just what is going to be 'pushed' and how\nfar is precisely planned (despite occasional deviations from plans,\nsuch as the 'early' first flight of the F-16 during its high-speed\ntaxi tests).\n\nI'm sure Mary can tell you everything you ever wanted to know about\nthis process (and then some).\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4925, "properties": {"category": "alt.atheism", "text": "From: cobb@alexia.lis.uiuc.edu (Mike Cobb)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: University of Illinois at Urbana\nLines: 36\n\nIn <kmr4.1576.734879396@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n\n>In article <1qj9gq$mg7@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank \nO'Dwyer) writes:\n\n>>Is good logic *better* than bad?  Is good science better than bad?  \n\n> By definition.\n\n\n> great - good - okay - bad - horrible\n\n>    << better\n>       worse >>\n\n\n> Good is defined as being better than bad.\n\n>---\nHow do we come up with this setup?  Is this subjective, if enough people agreed\nwe could switch the order?  Isn't this defining one unknown thing by another? \nThat is, good is that which is better than bad, and bad is that which is worse\nthan good?  Circular?\n\nMAC\n>   Only when the Sun starts to orbit the Earth will I accept the Bible. \n>        \n\n--\n****************************************************************\n                                                    Michael A. Cobb\n \"...and I won't raise taxes on the middle     University of Illinois\n    class to pay for my programs.\"                 Champaign-Urbana\n          -Bill Clinton 3rd Debate             cobb@alexia.lis.uiuc.edu\n                                              \nWith new taxes and spending cuts we'll still have 310 billion dollar deficits.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4926, "properties": {"category": "talk.politics.misc", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: Re: fillibuster\nLines: 43\nReply-To: hallam@zeus02.desy.de\nOrganization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n\n\nIn article <C5Dsyr.325@ncratl.AtlantaGA.NCR.COM>, mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson) writes:\n\n|>|In article <C5BupH.FCp@dscomsa.desy.de>\n|>|hallam@dscomsa.desy.de (Phill Hallam-Baker) writes:\n|>\n|>|>The filibuster does not make sense because the senate is elected as a last\n|>|>gasp assembly. It is designed to be the repository of doddery old men with\n|>|>no power.\n|>\n|>|       Phill, I don't know which Senate you're discussing, but it ain't\n|>|ours.\n|>\n|>Phill probably thinks that the US senate is supposed to be the equivalent\n|>to the UK's House of Lords.\n\nThe status of the House of Lords today is quite different to its status \nin 1789. \n\n\n|>Which just goes to show that where the US is concerned Phill still has no\n|>idea what he is talking about.\n\nMaddison and Hamilton were both studying existing forms of government for\nseveral years before they wrote the federalist papers. That the US system\nis based to a considerable degree on the UK model is pretty widely accepted.\nAt the time there was no other major country with a representative body.\nThe French plebicite had been suppressed for 140 years and its restoration\neight years later would mark the start of the French revolution. \n\nAfter the UK system the major influences were the Dutch system and of course\nthe classical systems. Nobody seriously suggests that Rome or Greece were \nmodels though because the political systems of both countries were acknowleged\ndisasters. The main lesson learnt from Greece was that unless a federal\nstate was constructed a war would be inevitable. The Greek democracies were\nalways fighting amongst themselves which is how Rome managed to invade. Had\nthe federal consitution been rejected the new Roman empire in the shape of\nBritain would quite certainly have reabsorbed much of the colonies in due\ncourse. Moreover the states would have been at each others throats as soon\nas the Louisiana purchase situation arose during the Napoleonic period.\n\n\nPhill Hallam-Baker\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4927, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: what are the problems with nutrasweet (aspartame)\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\nLines: 30\n\nIn article <1993Apr17.181013.3743@uvm.edu> hbloom@moose.uvm.edu (*Heather*) writes:\n>Nutrasweet is a synthetic sweetener a couple thousand times sweeter than\n>sugar.  Some people are concerned about the chemicals that the  body produces \n>when it degrades nutrasweet.  It is thought to form formaldehyde and known to\n>for methanol in the degredation pathway that the body uses to eliminate \n>substances.  The real issue is whether the levels of methanol and formaldehyde\n>produced are high enough to cause significant damage, as both are toxic to\n>living cells.  All I can say is that I will not consume it.  \n\nAspartame is the methyl ester of a dipeptide, so a product of its\nhydrolysis is going to be methanol, which can then be oxidized to\nformaldehyde.  The amounts of methanol formed from the ingestion of\naspartame-containing foods are completely in the metabolic noise,\nsince you're forming equally minute amounts of methanol from other\ncomponents of food all the time.  In studies involving administration\nof high doses of the additive, blood methanol levels were undetectable.\nMethanol is a poison only in quantities seen in human poisonings,\nsay 5ml and above.  This is a consequence of its oxidation to formaldehyde\nand formic acid, two quite reactive compounds which at high enough levels\ncan damage tissues like the retina and kidney, because at such high doses\nthe body's detoxification system is overwhelmed.  Interestingly, one\ntreatment for early methanol poisoning is to get the person drunk on\nethyl alcohol--vodka or an equivalent.  That's because ethanol is\nmetabolized preferentially over methanol by the enzymes in the liver.\nIf the methanol stays as methanol and isn't metabolized to formaldehyde,\nit is actually relatively non-toxic.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4928, "properties": {"category": "misc.forsale", "text": "From: kedz@bigwpi.WPI.EDU (John Kedziora)\nSubject: Motorcycle wanted.\nOrganization: Worcester Polytechnic Institute\nLines: 11\nExpires: 5/1/93\nNNTP-Posting-Host: bigwpi.wpi.edu\n\nFollowup-To:kedz@wpi.wpi.edu \nDistribution: ne\nOrganization: Worcester Polytechnic Institute\nKeywords: \n\nI am looking for an inexpensive motorcycle, nothing fancy, have to be able to do all maintinence my self. looking in the <$400 range.\n\nif you can help me out, GREAT!, please reply by e-mail.\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4929, "properties": {"category": "talk.politics.misc", "text": "From: dmeier@casbah.acns.nwu.edu (Douglas Meier)\nSubject: Re: Hate Crimes Laws\nArticle-I.D.: news.1993Apr6.052552.18045\nOrganization: Northwestern University, Evanston Illinois.\nLines: 25\nNntp-Posting-Host: unseen1.acns.nwu.edu\n\nIn article <1993Apr6.043935.27366@midway.uchicago.edu> thf2@midway.uchicago.edu writes:\n>In article <1993Apr5.050127.22304@news.acns.nwu.edu> dmeier@casbah.acns.nwu.edu (Douglas Meier) writes:\n>>\n>>I think what you meant to say here was, \"With the current mutation of the US\n>>Constitution under the current police state, someone may be charged multiple\n>>times for one act if the victim in question is of the right shade.\"  A single\n>>act should never merit more than on charge.  \n>\n>So if I set off a bomb in the World Trade Center, I can only be charged with\n>more than one murder, and not the other five deaths and extensive property\n>damage?  After all, the bomb was a single act.\n>\n>ted frank                 | \"However Teel should have mentioned that though \n\nAgain, Mr. Frank has come to the rescue with his cool headed reason.  How\nabout, \"One charge per victim?\"  Of course I'll think about it in a few days\nand find a case where this doesn't apply either.  \n\nWhat the heck, I don't study law, I just hate lawyers. :)\n\n-- \nDouglas C. Meier\t\t|  You can't play Electro-magnetic Golf\nNorthwestern University, ACNS \t|  according to the rules of Centrifugal\nThis University is too Commie-\t|  Bumblepuppy. -Huxley, Brave New World\nLib Pinko to have these views.\t|  dmeier@casbah.acns.nwu.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4930, "properties": {"category": "talk.politics.guns", "text": "Nntp-Posting-Host: surt.ifi.uio.no\nFrom: Thomas Parsli <thomasp@ifi.uio.no>\nSubject: Re: Rewording the Second Amendment (ideas)\nIn-Reply-To: arc@cco.caltech.edu (Aaron Ray Clements)'s message of 21 Apr\n        1993 12:34:51 GMT\nOrganization: Dept. of Informatics, University of Oslo, Norway\n        <1993Apr20.083057.16899@ousrvr.oulu.fi>\n        <viking.735378520@ponderous.cc.iastate.edu>\n        <1993Apr21.091130.17788@ousrvr.oulu.fi>\n        <1r3f1bINN3n6@gap.caltech.edu>\nLines: 24\nOriginator: thomasp@surt.ifi.uio.no\n\n\n\nChemical weapons are not concidered a *very* effectiv weapon against\nmillitary forces. On civillians on the other hand....\n\nThat's one GOOD reason for banning it.\n\nYou need VAST amounts of chemicals to be affective, so the best reason\nto have/use it is price. (that's why it's called The Poor Mans A-bomb)\n\nAny thoughts on Bio-weapons ??\t\n\nIf this discusion is about civillians having chem-weapons;\nWhat should they use them on?? Rob a bank ??\n\n\n\n\tThis is not a .signature.\n\tIt's merely a computergenerated text to waste bandwith\n\tand to bring down the evil Internet.\n\n\n                        Thomas Parsli\n                        thomasp@ifi.uio.no\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4931, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: swyatt@bach.udel.edu (Stephen L Wyatt)\nSubject: Re: WinBench\nNntp-Posting-Host: bach.udel.edu\nOrganization: University of Delaware\nLines: 12\n\nOk, so if everyone is cheating.. is there any tests that run some \nmacro (to load a huge drawing, etc...) on the SAME machine that might \nthen tell us what the REAL world results are?\n\nI mean, run the tests on the same machine with different video cards\nrunning word, excel, or something like that to see how fast the cards are?\n\n-- \n----------------------------------------------------------------------------\nswyatt@brahms.udel.edu  !!! no disclaimer...I blame everything on someone else \n----------------------------------------------------------------------------\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4932, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: \"Brain abscess\" definition needed\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 16\n\nIn article <1993Apr8.123213.1@tardis.mdcorp.ksc.nasa.gov> fresa@tardis.mdcorp.ksc.nasa.gov writes:\n>Could someone please define a \"brain abscess\" for me? A relative has one near\n>his cerebellum.\n\n\nA brain abscess is an infection deep in the brain substance.  It is\nhard to cure with antibiotics, since it gets walled off, and usually,\nit needs surgical drainage.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4933, "properties": {"category": "talk.politics.misc", "text": "From: kennejs@a.cs.okstate.edu (KENNEDY JAMES SCOT)\nSubject: We're winning the war on drugs.  Not!\nOrganization: Oklahoma State University, Computer Science, Stillwater\nKeywords: drugs DEA WOD legalization\nLines: 140\n\nThe DEA and other organizations would have the American people\nbelieve that we are winning the \"war on drugs\".  I'm going to\ndispel the propaganda that the DEA is putting out by showing\nyou the drug war's *real* status. To help prove my assertions\nI've also posted two articles from USA Today that clearly\ndemonstrate that drug use among certain age groups *is* on the\nrise.  If WOD is working, as we're led to believe, then drug\nabuse should have gone down substantially by now.  The reality\nis, is that it has not gone down very much.  If anything,\nsubstance abuse is on the rise.  I'm also going to supply a\npossible solution to this problem.\n\nThe following text is an excerpt from an article about rock music\nand pot entitled \"Hello Again, Mary Jane\" which appears in the\ncurrent issue of Time magazine (April 19, 1993, p. 59).\n\n    Law-enforcement officials say pot advocates are just blowing\n    smoke when they talk about the comeback of the weed.  \"Perhaps\n    because of the change of administrations, the marijuana lobby\n    is out in full force,\" says Robert Bonner, head of the Drug\n    Enforcement Administration.  \"The fact is, they're losing the\n    battle.\"  In 1985 more than 23% of youths ages 12 to 17 said\n    they smoked marijuana; in 1991 that figure was 13%, and Bonner\n    says it is still falling.  Bonner also offers a reminder that\n    studies confirm such marijuana health risks as destruction of\n    nerve cells in the brain and lung damage.\n\nThe chart that follows was taken from the Wednesday, April 14, 1993\nissue of USA Today (\"Drug Use Up Among U.S. Eigth-graders\" by Mike\nSnider, p. 6D).\n\n    Adolescents' choices\n\n    Drugs used by eighth graders in the last month:\n                      Estimated, per 100 students\n                             1991     1992   Pct. chg.\n    Alcohol                  25.1     26.1        +4%\n    Cigarettes               14.3     15.5        +8%\n    Marijuana                 3.2      3.7       +16% \n    Amphetamines              2.6      3.3       +27%\n    LSD                       0.6      0.9       +50%\n    Cocaine                   0.5      0.7       +40%\n    Crack                     0.3      0.5       +67%\n\n    Source:  University of Michigan Institute for Social Research,\n    1993 report\n\nWe are not winning the \"war on drugs\".  I think you can see that one\nof the tactics that the DEA employs to give people the impression that\nthe \"war on drugs\" is being won is to selectively quote statistics---\nonly statistics that support their contention that drug use has gone\ndown.  The excerpt from Time magazine that I included in this post is\nan excellent example of how organizations like the DEA attempt to\ndeceive the public.\n\nUsage of *one* particular drug may have gone down but at the same\ntime usage of other drugs may have gone *up* (a.k.a. substitution).\nAlso, drug usage among *one* particular age group may have gone down\nbut drug usage among another age group may have gone *up*.  Therefore,\nif one takes a look at the big picture, taking into consideration *all*\nthe statistics, then it's obvious that the so-called \"war on drugs\" is\nbeing lost.  Perhaps the drug war is being won as far as illegal drugs\ngo, but if one factors in alcohol abuse, smoking, and use of inhalants,\nthen the magnitude of the drug problem in this country can then placed\nin its true perspective.\n\nFor those of you who don't consider alcohol to be a drug then try\ndrinking a fifth of whiskey sometime and then come back and tell me\nthat it's not a drug.  Agencies like the DEA only go after *illegal*\ndrugs.  This is one of the reasons why the drug war is a fruitless\nattempt at preventing substance abuse---people will merely switch to\nanother drug if the one they were using becomes scarce or unpopular.\n\nThe solution to the drug abuse problem in this country may be to\nlegalize some---not all---drugs whose toxicity has been shown to be\nwithin reasonable limits (you won't drop dead after using it a few\ntimes) and then couple this with a massive drug education program.\nThe reason why I think legalization is *part* of the solution is\nbecause people seem to be able to easily obtain drugs despite the\ngovernment's efforts to the contrary---the money spent on drug\ninterdiction could be spent more effectively elsewhere (e.g., drug\neducation).  Additionally, legalization would reduce crime because\nthe profit motive would be taken out of drug trafficking which often\ngoes along with other kinds of crime.  Not to mention the fact that\naddicts would have less reason to prey on innocent people for their\nmoney and posessions in order to support their expensive habit;\nlegalization would cause the street price of drugs to fall\nsubstantially so drugs would be much more affordable to addicts.\n\nIMHO, the way to reduce substance abuse is to do to drugs what has been\ndone to smokers:  make drug use socially unacceptable rather than try to\nemploy heavy-handed law enforcement and punish people by incarcerating\nthem.  As you already know, people in the U.S. smoke a lot less than\nthey used to.  This reduction in the number of smokers has been brought\nabout by public awareness campaigns, laws restricting where people can\nlight up, warning labels on cigarette packages, taxation on tobacco in\norder to reduce consumption, and so on.  I propose that similar methods\nbe used to reduce substance abuse after legalization has been carried\nout.  They are as follows:\n\n    * Drugs being sold must come with clear, concise information which\n      states the possible health hazzards involved with using this\n      product and recommendations on how the drug should be used.\n      Things like dosage levels and how long the drug should be used\n      ought to accompany the packaging the drug is contained in.\n\n    * All drugs should be taxed at a rate that generates a lot of\n      revenue but not so high as to encourage people to acquire drugs\n      through illegal channels.  Part of the revenue collected from\n      drug taxes should be used to fund drug education and law\n      enforcement.\n\n    * Make it a felony to sell drugs to minors (people under the age of\n      18).  Anyone can sell drugs but they must not dodge paying the\n      taxes on drugs or sell drugs with the warning information absent.\n      Failure to pay the appropiate taxes on drugs or omitting warning\n      information should also be a felony.\n\n    * Establish a government agency whose job is to insure that the\n      purity and safety of all drugs is as high as possible.  This\n      agency would try to prevent people from getting a hold of bad\n      drugs---something that is a fairly serious problem now.\n\nI'm sure that many of the things I've discussed in this article have\nbeen hashed out before in this newsgroup.  Nevertheless, I thought\nit was a good idea to give my two cents (actually a buck and a half...)\nall at once so you could get a good idea of where I currently stand on\nWOD.  Go ahead and tear into my post; I'm sure there is something in it\nthat you may wish to take a different view on or flame. :) :) :)  BTW,\nI posted the articles from USA Today to not only help prove my\nassertions but also to provide information on LSD usage among youths---\nsomething which I noticed some posters to this group were interested in.\n\nScott Kennedy,  Brewer and Patriot\n\nBefore:  \"David Koresh is a cheap thug who interprets\n          the Bible through the barrel of a gun...\"  --ATF spokesman\nAfter:   \"[The ATF] is a cheap thug who interprets\n          [the Constitution] through the barrel of a gun...\"  --Me\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4934, "properties": {"category": "sci.electronics", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Radar detector DETECTORS?\nOrganization: U of Toronto Zoology\nLines: 17\n\nIn article <1993Apr20.022922.11861@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>>No restriction was placed\n>>on receiving RADAR (or, curiously, cordless phones.)  Enforcement\n>>of the Virginia law is in violation of the FCA of 1934.\n>\n>Isin't there some kind of rule (regulation, law, whatever) in some\n>juristictions that prohibit the use of *police band* recievers\n>in vehicles?  And that radar transmissions are included in the police band \n>so they get covered by the same regulation?\n\nThose rules/regulations/laws would be subject to the same attack:  that\nthey are attempting to preempt federal authority to regulate (or not)\nradio communications.  Of course, as the original poster noted, court\nchallenges of this kind can get expensive.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4935, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenian-Nazi Collaboration During World War II.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 51\n\nIn article <2BC0D53B.20378@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n\n>Is it possible to track down \"zuma\" and determine who/what/where \"seradr\" \n>is? \n\nDone. But did it change the fact that during the period of 1914 to 1920, \nthe Armenian Government ordered, incited, assisted and participated \nin the genocide of 2.5 million Muslim people because of race, religion\nand national origin? By the way, you still haven't corrected yourself.\nDuring World War II Armenians were carried away with the German might and\ncringing and fawning over the Nazis. In that zeal, the Armenian publication\nin Germany, Hairenik, carried statements as follows:[1]\n\n\"Sometimes it is difficult to eradicate these poisonous elements (the Jews)\n when they have struck deep root like a chronic disease, and when it \n becomes necessary for a people (the Nazis) to eradicate them in an uncommon\n method, these attempts are regarded as revolutionary. During the surgical\n operation, the flow of blood is a natural thing.\" \n\nNow for a brief view of the Armenian genocide of the Muslims and Jews -\nextracts from a letter dated December 11, 1983, published in the San\nFrancisco Chronicle, as an answer to a letter that had been published\nin the same journal under the signature of one B. Amarian.\n\n \"...We have first hand information and evidence of Armenian atrocities\n  against our people (Jews)...Members of our family witnessed the \n  murder of 148 members of our family near Erzurum, Turkey, by Armenian \n  neighbors, bent on destroying anything and anybody remotely Jewish \n  and/or Muslim. Armenians should look to their own history and see \n  the havoc they and their ancestors perpetrated upon their neighbors...\n  Armenians were in league with Hitler in the last war, on his premise \n  to grant them self government if, in return, the Armenians would \n  help exterminate Jews...Armenians were also hearty proponents of\n  the anti-Semitic acts in league with the Russian Communists. Mr. Amarian!\n  I don't need your bias.\"  \n\n  Signed Elihu Ben Levi, Vacaville, California.\n\n[1] James G. Mandalian, 'Dro, Drastamat Kanayan,' in the 'Armenian\n    Review,' a Quarterly by the Hairenik Association, Inc., Summer:\n    June 1957, Vol. X, No. 2-38.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4936, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nSubject: Re: I don't understand SI\nDistribution: world\nOrganization: HAL 9000 BBS, W-NET HQ, Ann Arbor, Michigan, USA\nReply-To: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nLines: 54\n\nMG>joohwee students (neural@iss.nus.sg) wrote:\nMG>> \tI went buying SIMMs recently, and the sales person told me that \nthe\nMG>> are 9-chip SIMMs and 3-chip SIMMs, and one cannot use them interchan\nMG>> If you use one, you have to use all of the same type.\n\ndon't believe everything you are told.  I can tell you that mixing them \nbetween 'banks' ok, and I can't see why mixing in one bank is not unless \nthey are of different speeds ( e.g. mixing of 60ns and 100ns SIMMs in one \nbank ).  The two only differ in the type of chips it uses.  Assuming that \nthe SIMMS are 1Mx9 ( 9 bit wide ), here is the two equivalent \nconfiguration.  The 3-chip SIMM uses two 4-bit wide 4Mbit (1M of 4-bit \nnibbles ) and one 1-bit wide 1Mbit chip ( for a total of 9-bit wide 1Mbyte \n).  The 9-bit SIMM uses nine 1-bit wide 1Mbit chips.  These are equivalent \nbecause of the way that it is 'pinned' on the SIMM board.  At the SIMM \ninterface, they both act as 9-bit wide 1MByte SIMMS ( 2*4+1=9*1 ).  [sorry \nif too techie for ya].\n\n\nMG>> \tSimilarly, one cannot plug in two 1MB SIMMs and one 4MB SIMMs to \ngi\nMG>> the system a total of 6 MEG. Why is that so ?? If my system supports\nMG>> of 8 MEG (it has 8 SIMM slots), can I plug in 4 4MB SIMMs to give my\nMG>> 16MB ??\n\nThat sounds correct.  the problem is that if your computer takes 9-bit \nwide SIMMs, you can not mix different sizes in one bank.  Why you ask?  \nSimple,  if you understand why there is banks.  Assuming you have a 32-bit \nCPU ( 386DX or 486 ), the data bus (e.g. the mechanism to retrieve data \nfrom memory ) is 32-bits wide, so the computer expects to see 32 bits when \nit asks for data.  To get that bandwidth ( 32-bit wide ), the motherboard \nlinks 4 1Mx9 ( one bit is not data, but parity, so I will ignore that in \nthis simple explaination ) to get 32bits [ (9-1)*4=32 bits ].  That means \nthat a SIMM in a bank stores only 1/4 of the 32 bit wide data.  If you \nhave a 16-bit bus, two 1Mx9 SIMMs are linked together to get 16-bit wide \ndata, which is the reason why 286 banks are 2 SIMMs wide, and 32-bit banks \nare 4 SIMMs wide.  If your computer required 1Mx36 ( e.g. 32-bit wide data \nwith 4 parity bits, used in some PS/2s and ASTs ), you could upgrade by \none SIMM at a time.\n\nHope that this message is not over your head, but the answer to your \nquestion was not simple.  I could of just said, 'because I said so.'\n\n-rdd    \n\n---\n . WinQwk 2.0b#0 . Unregistered Evaluation Copy\n * KMail 2.95d W-NET HQ, hal9k.ann-arbor.mi.us, +1 313 663 4173 or 3959\n                                                  \n----\n| HAL 9000 BBS:  QWK-to-Usenet gateway  | Four 14400 v.32bis dial-ins    |\n| FREE Usenet mail and 200 newsgroups!  | PCBoard 14.5aM * uuPCB * Kmail |\n| Call +1 313 663 4173 or 663 3959      +--------------------------------+\n| Member of EFF, ASP, ASAD  * 1500MB disk * Serving Ann Arbor since 1988 |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4937, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: space news from Feb 15 AW&ST\nOrganization: U of Toronto Zoology\nLines: 23\n\nIn article <1993Apr23.155313.4220@dazixco.ingr.com> jbreed@ingr.com writes:\n>|> [Pluto's] atmosphere will start to freeze out around 2010, and after about\n>|> 2005 increasing areas of both Pluto and Charon will be in permanent\n>|> shadow that will make imaging and geochemical mapping impossible.\n>\n>Where does the shadow come from?  There's nothing close enough to block\n>sunlight from hitting them.  I wouldn't expect there to be anything block\n>our view of them either.  What am I missing?\n\nYou're assuming that their normal rotation carries all areas of the surface\ninto sunlight.  Not so.  Even on Earth, each pole gets several weeks without\nsunlight in mid-winter.  Pluto and Charon have much more extreme axial\ntilt and a much longer orbit.  Pluto's north pole, for example, gets over\na century of darkness followed by over a century of perpetual light.\n\nAt the moment, we're in luck -- Pluto and Charon are just past their\nequinox, when the Sun was just on the horizon at both poles (of each).\nIf we get probes there soon, only the immediate vicinity of one pole\n(on each) will be in long-term shadow.  This will get steadily worse the\nlonger we wait.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4938, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: Vlad's Playoff Picks\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nLines: 156\n\nIn article <vzhivov.734637613@cunews> vzhivov@alfred.carleton.ca (Vladimir Zhivov) writes:\n\nWales Conference, Adams Division, Semifinal\n>Boston vs. Buffalo:\n>The Bruins are playing some excellent hockey, and with Cam Neely back\n>and Moog his old self again this should be a cake-walk.  BRUINS IN 5.\n\nI'm hoping for a Fuhr miracle, but I agree that Boston will likely win the\nseries.  Goaltending is about equal, top offensive players are about equal\n(Mogilny-LaFontaine vs. Oates-Juneau), but Buffalo has no answer to Neely\n(not to imply that Neely is not a top offensive player btw, in fact he's one\nof my favourites even though he's a damn Bruin :) ).  And the rest of the\nmatchup wrt lineup favours Boston anyway.  But I think it will go six.\n\n>Quebec vs. Montreal:\n>This one is very tough to call. Montreal certainly has the experience\n>factor, but Quebec is more talented IMHO. It'll come down to the\n>goalies.  I'll go with experience and Roy. CANADIENS IN 7.\n\nAgreed here...but Montreal will be pushed to the limit.  Is it just me, or\ndoes everything Montreal does in the playoffs come down to Roy?  Go Habs!!\n\nFinal\n>Boston vs. Montreal:\n>Will Bruin domination continue in this rivalry? Yes. Moog has\n>consistently outperformed Roy in the playoffs (after 1986)..[other stuff]\n> Bruins in five.\n\nI can't predict a Montreal victory because I've been watching them play for\n6 weeks and IMO they severly need some tougher players, especially to play\nin the Garden.  Last time they beat the B's 5-2 but Boston had a clear\nterritorial advantage; the victory was Roy's.  At the same time, I can't\nbring myself to predict the possibility of a loss, so I'll just say I will\nnot be putting money on this series. :-)\n\n>Patrick Division, semifinal\n\n>Pittsburgh vs. NY Islanders:\n>What can I say? The Pens are flying high and have the most talent in\n>the league. \n\nAgreed.  NY doesn't have the goaltending to stop the onslaught, independent\nof the trouble they have given Pittsburgh this year.  Pens in five, which is\ncredit to NY.\n\n>Washington vs. New Jersey:\n>CAPITALS IN 5.\n\nAgreed here too, but I think it will go at least six.  Jersey has a decent\nteam, and Washington has done poorly against the division this year.\n\n>Pittsburgh vs. Washington:\n>If the Caps had Bill Ranford I might see an upset, but Don Beaupre\n>just doesn't inspire my hopes.  PENGUINS IN 6.\n\nI think they will use Tabaracci more after Beaupre gets shelled.  I don't\nthink it will go six either...*maybe* five.\n\n>CONFERENCE FINAL:\n>Pittsburgh vs. Boston:\n>A replay of last year. The Penguins are just as good as 12 months ago,\n>and the Bruins are much improved. But... PENGUINS IN 6.\n\nIf Pittsburgh plays Boston, IMO they win in likely five, possibly six.  They\nown the Bruins.  If they play Montreal, I think it will go to seven, and once\nagain I won't be putting money on the seventh game.  I say seven because the\nHabs have played Pittsburgh very tough this season.\n\n>Campbell Conference, Norris Division, semifinal\n\n>Chicago vs. St. Louis (or Minnesota):\n> BLACKHAWKS IN 5.\n\nChicago will win, but I think in at least six.  Chicago is not that good,\nIMO.  And remember that they take ridiculous numbers of penalties.\n\n>Detroit vs. Toronto:\n>The Leafs have had an excellent season, but they've been playing\n>playoff hockey all year - the Habs under Burns were the same way and\n>always wilted in the playoffs.  RED WINGS IN 5.\n\nVery true.  The Leafs have much to be proud of, but they will soon find out\nwhy Montreal did so lousy in the playoffs.  Toronto might win two or three \nat MLG though.  Wings in six, maybe even seven.\n\n>FINAL:\n>Chicago vs. Detroit:\n> This will be a war. Fedorov will win it in OT. RED WINGS IN 7.\n\nIt _will_ be a war...possibly the most intense playoff series of them all. \nAnd yes, I think Detroit will win.  Probert will have to come up big though.\n\n>Smythe Division SEMI-FINALS:\n\n>Vancouver vs. Winnipeg:\n> CANUCKS IN 7.\n\nOur first disagreement.  Canucks are playing like shit.  They don't use their\nsize *at* *all*, which may explain why they get hammered 8-1 by a team\nchasing them (Calgary)....Winnipeg in six.\n\n>Calgary vs. Los Angeles:\n>This would have been tough to call, except for three things. 1/ The\n>Kings don't have a goalie; 2/ Gary Roberts will be back; 3/ the Kings\n>shot themselves in the foot by trading a proven winner (Paul Coffey)\n>for a proven loser (Jimmy Carson). Gretzky is just too weary to carry\n>this group. FLAMES IN 5.\n\nThis is also tough for me to call, because I haven't seen the Smythe enough. \nI don't think Roberts will be well enough to figure in, Coffey is a\nnon-issue, who cares what Carson has done before, and *never* underestimate\nGretzky.  LA in six.\n\n>FINAL:\n>Vancouver vs. Calgary:\n> FLAMES IN 6.\n\nIf it is these two, Calgary will not need six games.  But I think it will be\nLA-Winnipeg anyway, and LA in seven, because of home ice.\n\n>COFERENCE FINAL:\n>Detroit vs. Calgary:\n> RED WINGS IN 7.\n\nWow, must've been tough to go against your team.  But let's see, I picked\nLA-Detroit.  Detroit will win, probably in six.\n\n>STANLEY CUP FINAL:\n>Pittsburgh vs. Detroit:\n>Three in a row and official 'dynasty' status for the Pens? Or can the\n>Wings complete a dream season? Well, the Wings are better in goal (not\n>sufficiently so though IMHO) and have better D-men. However, Mario and\n>the boys can sure score. Look for Jagr to shine in the playoffs,\n>though I sure would love to see Probert beat some sense into him. The\n>Pens are just too much, especially since Detroit will have a tougher\n>battle to get here. PENGUINS IN 5.\n\nIf Pittsburgh plays Detroit, it will go longer than five, and I wouldn't bet\nagainst the Wings.  They are very strong, IMO, and nobody knows *how* strong\nbecause they've been underachieving most of the year.  If forced to choose,\nthough, I'd have to take the Penguins.\n\nA side note.  Vlad, last week you said that Selanne was a better player than\nGilmour.  NO WAY.  He is a more talented pure goal scorer...but aside from\nthe age difference, there is no way I would take him over Gilmour on my team.\nI'm not asking for flames, either, btw....I've spent more than enough time\narguing on behalf of Selanne and I still say he's a great player.  But while\nhe and Gilmour are both dangerous offensively (give Teemu an edge),\nGilmour *does* *it* *all*.  I know a lot of Gilmour-bashing goes on, esp.\nfrom Flame fans.  But IMO you guys are letting your dislike of Gilmour cloud\nyour judgement when it comes to his skill.  He is easily one of the best\nall-round players in the NHL.\n\n\n\ndchhabra@stpl.ists.ca\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4939, "properties": {"category": "soc.religion.christian", "text": "From: tp0x+@cs.cmu.edu (Thomas Price)\nSubject: Re: Serbian genocide Work of God?\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 17\n\nIn article <Apr.24.01.09.19.1993.4263@geneva.rutgers.edu> revdak@netcom.com (D. Andrew Kille) writes:\n>James Sledd (jsledd@ssdc.sas.upenn.edu) wrote:\n>: Are the Serbs doing the work of God?  Hmm...\n>:\n>\n>Are you suggesting that God supports genocide?\n>Perhaps the Germans were \"punishing\" Jews on God's behalf?\n>\n>Any God who works that way is indescribably evil, and unworthy of\n>my worship or faith.\n\nYou might want to re-think your attitude about the Holocaust after\nreading Deuteronomy chapter 28.\n\n      Tom Price   |    tp0x@cs.cmu.edu   |   Free will? What free will? \n *****************************************************************************\n  plutoniumsurveillanceterroristCIAassassinationIranContrawirefraudcryptology\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4940, "properties": {"category": "comp.windows.x", "text": "From: drand@spinner.osf.org (Douglas S. Rand)\nSubject: Re: Drawing Lines (inverse/xor)\nIn-Reply-To: singg@alf.uib.no's message of Wed, 21 Apr 93 11:19:19 GMT\nOrganization: Open Software Foundation\nLines: 47\n\nIn article <1993Apr21.111919.5281@alf.uib.no> singg@alf.uib.no (Kurt George Gjerde) writes:\n\n   In article <1993Apr19.191531.15865@news.media.mit.edu>, dyoung@media.mit.edu (David Young) writes:\n\n     :\n     :\n\n   |>    XSetFunction( myDisplay, gc, GXxor);\n   |>    XSetForeground( myDisplay, gc, drawIndex);\n   |> \n   |> Then to draw I do:\n   |> \n   |>    XDrawLine( myDisplay, XtWindow( drawingArea1), gc, x1, y1, x2, y2);\n   |>    XFlush( myDisplay);\n   |> \n   |> And when I'm all done, to return things to normal I do:\n   |> \n   |>    XSetFunction( myDisplay, gc, GXcopy);\n   |> \n   |> \n   |> What I'd like to happen is for the lines I draw to be the inverse of\n   |> whatever I'm drawing over.  Instead what happens is I get white lines.  If\n   |> the lines are over a white background - nothing shows up.  If the lines are\n   |> over a black area - nothing shows up!  It's very strange.  But the GXxor\n   |> function seems right - since if I do a rubber-banding box, it erases and\n   |> redraws itself correctly (ie. not disturbing the underlying image).\n   |> \n   |> Any suggestions what I'm doing wrong?\n   |> \n   |> david\n\n\n      Try change the GXxor to GXequiv.  I have to do this for programs that\n      are to run on NCD terminals (on Sun terminals I have to change it\n      back to GXxor)...\n\nThere is a small section in the O'Reilly Xlib books that describes\nthe right thing to do.  The key is to set the plane_mask in the\nGC to the OR of the foreground and background pixel values.\n\n\n\n--\nDouglas S. Rand <drand@osf.org>\t\tOSF/Motif Dev.\nSnail:         11 Cambridge Center,  Cambridge,  MA  02142\nDisclaimer:    I don't know if OSF agrees with me... let's vote on it.\nAmateur Radio: KC1KJ\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4941, "properties": {"category": "comp.windows.x", "text": "From: jmartin@egret.imagesRus (John Martin)\nSubject: Re: Animation with XPutImage()?\nNntp-Posting-Host: suw3v.ess.harris.com\nReply-To: jmartin@egret.imagesRus\nOrganization: Sun Microsystems, Inc.\nLines: 39\n\n> Hi, I'm new to this group so please bear with me!\n> \n> Two years ago I wrote a Sunview application for fast animation\n> of raster files. With Sunview becoming rapidly obselete, I've\n> finally decided to rewrite everything from scratch in XView.\n> I put together a quick test, and I've found that XPutImage()\n> is considerably slower (factor of 2 on average?) than the\n> Sunview command pw_rop() which moves image data from memory\n> pixrects to a canvas. This was on a Sparc IPX. It seems that:\n> (1) the X protocol communication is slowing things down; or\n> (2) XPutImage is inefficient...or both! My question is, what\n> is the fastest way in X11R5 to dump 8 plane image data to\n> a window? Can I take advantage of the fact that the client is\n> running on the same machine as the server? Or am I stuck with\n> XPutImage() (in which case I might as well give up now...)?\n> \n> All help appreciated...thanks!\n> \n> Derek\n> \n>In article 16330@infodev.cam.ac.uk, dcr@mail.ast.cam.ac.uk (Derek C. Richardson) writes:\n -----------------------------------------------------------\n> | Derek C. Richardson    | Tel: (0223) 337548 x 37501     |\n> | Institute of Astronomy | Fax: (0223) 337523             |\n> | Cambridge, U.K.        |                                |\n> | CB3 0HA                | E-mail: dcr@mail.ast.cam.ac.uk |\n> -----------------------------------------------------------\n> \n\n\n\nAnimation is most frequently done by copying the the client resident XImages into \nserver resident Pixmap(s) using XPutImage.  Once this is done, the original XImages\ncan be deleted and the animation loop can be performed using XCopyArea from the Pixmaps to the windows drawable.\n\nHope this is helpfull.\n\nJohn\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.237+0000", "event": "documents", "entityId": 4942, "properties": {"category": "soc.religion.christian", "text": "From: ab4z@virginia.edu (Andi Beyer)\nSubject: Translations\nOrganization: University of Virginia\nLines: 2\n\nWhich Version of the Bible do you consider to be the most\naccurate translation?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4943, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Riceburner Respect\nOrganization: NEC Systems Laboratory, Inc.\nLines: 14\n\nIn article <1993Apr15.141927.23722@cbnewsm.cb.att.com> shz@mare.att.com (Keeper of the 'Tude) writes:\n>Huh?\n>\n>- Roid\n\n\tOn a completely different tack, what was the eventual outcome of\nBabe vs. the Bad-Mouthed Biker?\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4944, "properties": {"category": "talk.politics.misc", "text": "From: bmich@cs.utexas.edu (Brian Keith Michalk)\nSubject: Re: high speed rail is bad\nOrganization: CS Dept, University of Texas at Austin\nLines: 14\nDistribution: tx\nNNTP-Posting-Host: coltexo.cs.utexas.edu\n\nIn article <1993Apr13.150740.6221@iqsc.COM> rex@iqsc.COM (Rex Black) writes:\n>rail in Texas.  Being from California, I have come to the conclusion \n>that one has two choices for preventing economic strangulation through\n>traffic:  High speed rail or growth limits.\n>\n>Rex\n\nGrowth limits?  How will HSR help with the traffic congestion?  From what\nI understand, the rail will not stop in places like Waco, or Bryan, or\nlots of intermediate places in between.  Even though I live in Austin,\nI don't see myself using the train except on rare occasions.  probably\ntwice a year.  And at $65 dollars a ticket I could probably drive for \ncheaper also. (even if the price of gas went up)\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4945, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: President's Remarks on Trip to Baltimore 4.5.93\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 74\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\n\n\n                           THE WHITE HOUSE\n\n                    Office of the Press Secretary\n\n____________________________________________________________________\nFor Immediate Release                                  April 5, 1993 \n\n                       REMARKS BY THE PRESIDENT\n        EN ROUTE TO CAMDEN YARDS FOR ORIOLES OPENING DAY GAME\n\t     \n                              MARC Train\n                       En Route to Camden Yards\n\n\n\n11:45 A.M. EDT\n\t     \n\t     Q\t  Mr. President, what do you think of Jesse Jackson's \nprotest today?\n\t     \n\t     THE PRESIDENT:  I think it's an informational protest.  \nI think it's fine.  The owners put out a statement few days ago, \nwhich they say was the first step in, you know, efforts to increase \nminority ownership and minority increases in management.  I think we \nshould.  I'm encouraged by Don Baylor's appointment out in Colorado.  \nAnd I think it's time to make a move on that front.  So, I think it's \na legitimate issue, and I think it's -- like I said, it's an \ninformational picket and not an attempt to get people not to go to \nthe game.  So, I think it's good.\n\t     \n\t     Q\t  Do you think they're moving fast enough?\n\t     \n\t     THE PRESIDENT:  Well, I think that it was a good first \nstep.  And I think you'll see some movement now.  And I think it's an \nissue that deserves some attention, and they're obviously going to \ngive it some.  And I think that Reverend Jackson being out there will \nhighlight the issue.  So I think it's fine.\n\t     \n\t     Q\t  Mr. President, how about the logjam in the Senate \non the economic stimulus plan?  Do you think they'll be able to break \nthat and get cloture?\n\t     \n\t     THE PRESIDENT:  I don't know, we're working at it.  I \nmean, it's a classic -- there was an article in the paper today, one \nof the papers I saw, which pretty well summed it up.  They said, you \nknow, this is a -- it's just a political power play.  In the Senate \nthe majority does not rule.  It's not like the country.  It's not \nlike the -- it's not like the House.  If the minority chooses, they \ncan stop majority rule.  And that's what they're doing.  There are a \nlot of Republican senators who have told people that they might vote \nfor the stimulus program but there's enormous partisan political \npressure not to do it.  \n\t     \n\t     And, of course, what it means is that in this time when \nno new jobs are being created, even though there seems to be an \neconomic recovery, it means that for political purposes they're \nwilling to deny jobs to places like Baltimore and Dallas and Houston \nand Pittsburgh and Philadelphia and Portland and Seattle.  It's very \nsad.  I mean, the block grant program was designed to create jobs in \na hurry based on local priorities, and it's one that the Republicans \nhad always championed.  Just about the only Democrat champions of the \nprogram were people like me who were out there at the grassroots \nlevel, governors and senators.  I just think it's real sad that they \nhave chosen to exert the minority muscle in a way that will keep \nAmericans out of work.  I think it's a mistake.\n\t     \n\t     THE PRESS:  Thank you.\n\n                                 END11:50 A.M. EDT\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4946, "properties": {"category": "sci.space", "text": "From: 18084TM@msu.edu (Tom)\nSubject: Level 5?\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 13\n\n\nNick Haines sez;\n>(given that I've heard the Shuttle software rated as Level 5 in\n>maturity, I strongly doubt that this [having lots of bugs] is the case).\n\nLevel 5?  Out of how many?  What are the different levels?  I've never\nheard of this rating system.  Anyone care to clue me in?\n\n-Tommy Mac\n-------------------------------------------------------------------------\nTom McWilliams 517-355-2178 wk   \\\\ As the radius of vision increases,\n18084tm@ibm.cl.msu.edu 336-9591 hm \\\\ the circumference of mystery grows.\n-------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4947, "properties": {"category": "rec.motorcycles", "text": "From: gharriso@hpcc01.corp.hp.com (Graeme Harrison)\nSubject: Re: Goldwing performance\nOrganization: the HP Corporate notes server\nLines: 36\n\n/ hpcc01:rec.motorcycles / Stafford@Vax2.Winona.MSUS.Edu (John Stafford) / 11:06 am  Apr  1, 1993 /\nIn article <1pf2hs$b4d@transfer.stratus.com>, cdodson@beast.cac.stratus.com\n(R. Craig Dodson) wrote:\n \n> From the summary in the back of Motorcyclist, they run the 1/4 in\n> 13.07 at about 100 mph. Interestingly enough, this Winnebago of bikes\n> is faster than any of the Harleys listed. \n\n  It depreciates much faster, too.\n   \n====================================================\nJohn Stafford   Minnesota State University @ Winona\n                    All standard disclaimers apply.\n----------\nThe '84 GL1200A hit the traps at 13.34 according to Cycle magazine. Yeah,\nthey depreciate faster than Harleys for the first couple of years then\nthey bottom out. Got my '86 GL1200I w/ 2275 miles on the odometer for\njust under $5K in May of 1990 and would ask for $4500 now with almost\n16K miles onnit....that's about 50% of what a new GL1500I would cost.\n\nThink the '86 GL1200I originally sold for $6500 brand new, not sure. \nIf that's the case then it depreciated 30.77% over 7 years or a mere\n$2000. Big Fat Hairy Deal! Based on what I know, Harleys tend to\ndepreciate your monies far more than the initial depreciation of\nthe bike itself when it comes to parts and service. All this about\nHarleys holding their value better doesn't always wash away the\nknocks on them...such as being much slower. ;-) \n\nAccording to Peter Egan in the just released Cycle World his FLHS is a\nreal dog when he pillions his 120lb wife. All that money for a dog that\ndoesn't defecate much. =:-]  \n--------------------------------------------------------------------------\nGraeme Harrison, Hewlett-Packard Co., Communications Components Division,\n350 W Trimble Rd, San Jose, CA 95131 (gharriso@hpcc01.corp.hp.com) DoD#649 \n--------------------------------------------------------------------------\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4948, "properties": {"category": "sci.electronics", "text": "From: frankh@scraps.uucp (Frank Holden KA3UWW)\nSubject: Re: What's a good IC for RS232 -> TTL signals??\nOrganization: None\nLines: 34\n\nIn <C57zsC.9FL@news.cso.uiuc.edu> rky57514@uxa.cso.uiuc.edu (Tall Cool One ) writes:\n\n\n\n>I'm looking for an IC that will convert RS232 voltage levels to TTL voltage \n>levels.  Something relatively inexpensive would be nice, too.  Anyone have\n>a suggestion??  Thanks.\n\n\nWell it looks as if Digi-Key sells a chip with the number ICL232 that does what\nyou want.  They are selling it for about $3.50...\n\nHope this helps...\nFrank\n\n-- \n\n**************************************************************************\n* Customer asked \"What's that thing?\".                                   *\n* I answered chuckling \"Well, it's a highly technical, sensitive         *\n* instrument I use in computer repair! Being a layman, you probably      *\n* cann't grasp exactly what it does. I call it a B.F.H.....              *\n* Frank W. Holden - KA3UWW - \"The Radio Doctor\"                          *\n* - - - - - - - - - - - - - - - - - | - - - - - - - - - - - - - - - - -  *\n* SnailMail:                        | Inter-Net:                         *\n* 685 Addison St.                   | frankh@scraps.pittsburgh.sgi.com   *\n* Washington, Pa. 15301-5601        | Packet:ka3uww@n3idi.#wpa.pa.usa.na *\n**************************************************************************\nDISCLAIMER:<disclaimer.h> - I confess, you did it!!!\n-- \n\n**************************************************************************\n* Customer asked \"What's that thing?\".                                   *\n* I answered chuckling \"Well, it's a highly technical, sensitive         *\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4949, "properties": {"category": "sci.space", "text": "From: hdsteven@solitude.Stanford.EDU (H. D. Stevens)\nSubject: Re: Proton/Centaur?\nOrganization: stanford\nLines: 59\n\nIn article <1993Apr21.190156.7769@lmpsbbs.comm.mot.com>, dennisn@ecs.comm.mot.com (Dennis Newkirk) writes:\n|> In article <1993Apr20.211638.168730@zeus.calpoly.edu> jgreen@trumpet.calpoly.edu (James Thomas Green) writes:\n|> >Has anyone looked into the possiblity of a Proton/Centaur combo?\n|> >What would be the benefits and problems with such a combo (other\n|> >than the obvious instability in the XSSR now)?\n|> \n|> \n|> The Centaur for the Altas is about 3 meters dia. and the Proton \n|> is 4 so that's a good fit for their existing upper stage, the Block-D\n|> which sets inside a shround just under 4 meters dia. I don't know about\n|> launch loads, etc.. but since the Centaur survives Titan launches which\n|> are probably worse than the Proton (those Titan SRB's probably shake things\n|> up pretty good) it seems feasible. EXCEPT, the Centaur is a very fragile\n|> thing and may require integration on the pad which is not available now.\n|> Protons are assembled and transported horizontially. Does anyone know \n|> how much stress in the way of a payload a Centaur could support while\n|> bolted to a Proton horizontally and then taken down the rail road track\n|> and erected on the pad?  \n\nThe Centaur that is being built for T4 would be a better bet to integrate \nonto the Proton as the T4/Centaur is designed for the Extremely Harsh \nenvorinment of the T4 launch. It is also closer to 4 m in diameter. \n\nYou've hit on the real kicker, however. The Centaur is pressure stabilized. \nIt cannot hold up its own weight without pressure in the tanks. Additionally, \nthe pressure difference between the two tanks must be maintained to ~+/- 5 psi. \nThat is rather tight to be rocking and rolling on the train. The pressure \nstabilization is how centaur achieves the performance. On numerous occasions\n(when I was there 88-91) the AF wanted to see what it would take to make \na non-pressure stabilized centaur. The answer -- a centaur not worth launching. \n\nThe Atlas/Centaur does not require on-pad integration, however the T4/Centaur\ndoes. I believe the on-pad integration is to a great extent due to the \ncleanliness requirements and PFL configuration, so maybe something can be \ndone there........\n\n\n|> \n|> They would also need LOX and LH facilities added to the Proton pads \n|> (unless the new Proton second stage is actually built), and of course\n|> any Centaur support systems and facilities, no doubt imported from the\n|> US at great cost. These systems may viloate US law so there are political\n|> problems to solve in addition to the instabilities in the CIS you mention. \n\nThe addition of LOX/LH facilities is critical as the centaur tops off as it \nlifts off. A LHe facility is also needed. I don't know what the proton uses \nfor fuel, but since they are derived from ICBM's I would suspect that they \nuse storable propellants which don't have the ullage problem that cryo's \ndo. If there is no cryo at the sight at all, the addition of these systems \ncould be big $$, not to mention the real tech transfer issues involved with \nproviding centaur GSE to Russia. That issue alone might be enough to kill \nthis idea. \n\n-- \nH.D. Stevens\nStanford University\t\t\tEmail:hdsteven@sun-valley.stanford.edu\nAerospace Robotics Laboratory\t\tPhone:\t(415) 725-3293  (Lab)\nDurand Building\t\t\t\t\t(415) 722-3296  (Bullpen)\nStanford, CA 94305\t\t\tFax:\t(415) 725-3377\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4950, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: A Remarkable Admission\nLines: 19\n\nJon Livesey writes:\n\n>I'm certainly not going to attempt to distinguish between different\n>flavours of Christian, all loudly claiming to be the One True Christian.\n\nWell, it's obvious that you *don't* attempt, otherwise you would be aware\nthat they *don't* all \"loudly [claim] to be the One True Christian\".\n\nI've tried to avoid using the phrase \"is/is not christian\" because of these\nownership issues; instead, I've tried the phrase \"Nicene christianity\" in an\nattempt to identify the vast majority of \"christianity\" which has roughly\nsimilar viewpoints on the core theological issues.  The JWs do not fall\nwithin this group and in fact espouse a position known as Arianism, which is\nrejected by all the nicene churches and virtually everyone else as well.\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4951, "properties": {"category": "sci.electronics", "text": "From: ddr@flux.isr.alaska.edu (Donald D Rice)\nSubject: Heavy-duty antenna simulation software\nNntp-Posting-Host: flux.isr.alaska.edu\nOrganization: Geophysical Institute, Fairbanks, AK\nLines: 21\n\n\nI would be interested in hearing from anyone who knows of good software for\nantenna simulation, particularly in source form suitable for Unix workstations\n(though good PC software would also be of interest).\nI'm aware of the numerous mininec mutations, and have been using MN for\nsome time now.  I'm primarily interested in HF, VHF, and low UHF (< 500 MHz)\ndesigns, mostly wire antennas, but for thick wires and mesh surfaces as well\nas for your basic thin wire assumption.\nIs anything interesting happening with NEC itself?  I've seen a version\nthat was mutilated to run (sort of) under Microsoft Fortran, but I'm not\nsure how many \"new and improved\" versions of the code might be out there\nsomewhere.\nI'd also be interested in non-NEC derivatives.  The ones I've seen have\nbeen aimed at microwave applications, but if there is something out there\nuseful at the lower frequencies, I'd like to know about it.\nThanks,\n-- \nDon Rice                   E-mail: ddr@flux.isr.alaska.edu    (Internet)\nGeophysical Institute              fnddr@alaska               (BITNET)\nUniversity of Alaska               flux::ddr                  (SPAN)\nFairbanks, AK 99775        Phone:  (907) 474-7569        Loran: 64.86N 212.16E\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4952, "properties": {"category": "rec.sport.hockey", "text": "From: jimg@cybernet.cse.fau.edu (Jim Gorycki)\nSubject: New Franchise name\nOrganization: Cybernet BBS, Boca Raton, Florida\nLines: 31\n\nThe new name is Florida Panthers.  \nThe panther is an endangered species, mostly located in the Everglades.\nA couple of years ago, there were license plates made with Panthers on\nthem (part of the revenue were to go to some protection fund).\n\nThe name of the new President of the Panthers should be announced today.\n\nAs of yesterday's paper, Huizenga's new hockey team will take the ice at\nthe Miami Arena this fall.  The team has a guaranteed two-year lease with\nthe arena, with four one-year options that could run through 1999.\n\n\"It's not our choice\", James Blosser, a lawyer and Huizenga Aid said\nabout ruling out the arena as a long term option.  \"The NHL told us we \ncan't stay there.  It's not economically feasible.\"\n\nOne reason is because the Miami Heat basketball team controls skybox\nand advertising revenue at the arena, reducing the hockey team's profit\npotential.\n\nThe hockey team is attracting arena site proposals from Broward, Dade, \nand Palm Beach counties.\n\nA leading site is vacant land near Joe Robbie Stadium, where residents\n10 days ago agreed to drop their opposition to a hockey arena, ending\nan eight-year battle of wills.\n\nCompliments of the News/Sun-Sentinel.\n\nJim G.\n\n\"Fitz...Sanchez...Castranova...\"\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4953, "properties": {"category": "comp.graphics", "text": "From: havardn@edb.tih.no (Haavard Nesse,o92a)\nSubject: HELP!!! GRASP\nReply-To: havardn@edb.tih.no\nPosting-Front-End: Winix Conference v 92.05.15  1.20 (running under MS-Windows)\nLines: 13\n\nHi!\n\nCould anyone tell me if it's possible to save each frame\nof a .gl (grasp) animation to .gif, .jpg, .iff or any other\npicture formats.\n\n(I've got some animations that I'd like to transfer to my Amiga)\n \nI really hope that someone can help me.\n\nCheers\n\nHaavard Nesse - Trondheim College of Engineering, Trondheim, Norway\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4954, "properties": {"category": "sci.crypt", "text": "From: A. Charles Gross <acg@eff.org>\nSubject: I have seen the lobby, and it is us\nX-Xxmessage-Id: <A7FAF1313A01AC87@l-b-johnson.eff.org>\nX-Xxdate: Wed, 21 Apr 93 17:40:17 GMT\nNntp-Posting-Host: l-b-johnson.eff.org\nOrganization: Electronic Frontier Foundation\nX-Useragent: Nuntius v1.1.1d17\nLines: 22\n\nIn article <1993Apr21.113152.395@gems.vcu.edu> , langford@gems.vcu.edu\nwrites:\n>However, it's likely to be as hard or harder to exercise this right as it\n>is getting to exercise the other rights that the government is slowly\n>restricting.  Maybe the NRA _would_ be the best existing organization?\n>(Although I think a new one might be better, but perhaps would take too\nlong\n>to start up.  I would certainly join.)\n\nThe NRA is successful because (among a number of things), on the drop of\na hat, they can get a congresspersons office flooded with postcards,\nfaxes and phone calls.  Certainly, with our way-cool Internet powers of\norganization, we can act in the same way, if such action is appropriate.\n\nAs long as we are kept informed of events, anyone on this bboard can make\na call to action.  Hopefully, we're a strong enough community to act on\nthose calls.  I realize this is a little optomistic, and I'm glad EFF is\nworking in the loop on these issues, but don't underestimate the\npotential of the net for political action.\n\nAdam\n* I speak for myself\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4955, "properties": {"category": "comp.windows.x", "text": "From: gerard@dps.co.UK (Gerard O'Driscoll)\nSubject: Re: Asynchronous X Windows?\nOrganization: The Internet\nLines: 55\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\n\n>> No, it isn't.  It is the \"X Window System\", or \"X11\", or \"X\" or any of\n>> a number of other designations accepted by the X Consortium.  In fact,\n>> doing \"man X\" on pretty much any X11 machine will tell you:\n>> \n>>      The X Consortium requests that the following names  be  used\n>>      when referring to this software:\n>> \n>>                                   X\n>>                            X Window System\n>>                              X Version 11\n>>                      X Window System, Version 11\n>>                                  X11\n>> \n>> There is no such thing as \"X Windows\" or \"X Window\", despite the repeated\n>> misuse of the forms by the trade rags.  This probably tells you something >> about how much to trust the trade rags -- if they can't even get the NAME\n>> of the window system right, why should one trust anything else they have \n>> to say?\n\nI used to think this way, and not just about X. For example, incorrect\nEnglish constructs such as \"its raining\" or \"it's window id\" annoy me.\nHowever, there comes a time when popular usage starts to dictate the way\nthings really are in the world. Indeed, the fact that X won out over NeWS\nwas really down to popular opinion (I know, we all think it's(!) technically\nsuperior as well!).\n\nOn a related topic, who is to say that \"color\" is more or less correct\nthan \"colour\" - being Irish, and hence using English English as opposed\nto American English, I always use the latter except, of course, for API\nterms such as \"XAllocColor\" and \"colormap\".\n\nIn a world that uses the term \"Windows\" to refer to Microsoft Windows,\nperhaps the time has come to accept \"X Windows\" as a valid term for X.\nI think that this is a more concise and uncluttered term than, say,\n\"the X Window System\" and, let's face it, almost everyone uses it.\nUltimately, we all need product sales to more than just X-literate\npeople. In this respect, product recognition is important and a short,\nsnappy, descriptive title (\"X\" is positively obscure) will help\nwhen dealing with the average punter (it's sad - I thought I was a\nsoftware engineer!). Indeed it is unfortunate that X did not become\npopularly known as Windows and let MS worry about whether it should\nbe called \"Microsoft Windows\" or \"the Microsoft Window System\" or\nhow about just plain \"Microsoft\"!\n\nTo summarise (or should that be \"summarize\") the point of this message:\nI think there are far more pressing issues facing the X community than\nworrying about subtle distinctions in the naming of the window system\n(or should that be \"windowing system\"). Whatever gets recognised is\nfine by me. I agree that one should be careful in interpreting what\ntrade papers say. However, I would be reluctant to come to this\nconclusion purely on the basis of how they name the X Window System.\n\n\n\t\t\tGerard O'Driscoll (gerard.odriscoll@dps.co.uk)\n\t\t\tDu Pont Pixel Systems Ltd.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4956, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: delman@mipg.upenn.edu (Delman Lee)\nSubject: Tandberg 3600 + Future Domain TMC-1660 + Seagate ST-21M problem??\nDistribution: comp\nOrganization: University of Pennsylvania, USA.\nLines: 37\nNntp-Posting-Host: mipgsun.mipg.upenn.edu\n\nI am trying to get my system to work with a Tandberg 3600 + Future\nDomain TMC-1660 + Seagate ST-21M MFM controller. \n\nThe system boots up if the Tandberg is disconnected from the system,\nand of course no SCSI devices found (I have no other SCSI devices).\n\nThe system boots up if the Seagate MFM controller is removed from the\nsystem. The Future Domain card reports finding the Tandberg 3660 on\nthe SCSI bus. The system then of course stops booting because my MFM\nhard disks can't be found.\n\nThe system hangs if all three (Tandberg, Future Domain TMC-1660 &\nSeagate MFM controller) are in the system. \n\nLooks like there is some conflict between the Seagate and Future\nDomain card. But the funny thing is that it only hangs if the Tandberg\nis connected.\n\nI have checked that there are no conflict in BIOS addresses, IRQ & I/O\nport. Have I missed anything?\n\nI am lost here. Any suggestions are most welcomed. Thanks in advance.\n\nDelman.\n\n\n\n--\n______________________________________________________________________\n\n  Delman Lee                                 Tel.: +1-215-662-6780\n  Medical Image Processing Group,            Fax.: +1-215-898-9145\n  University of Pennsylvania,\n  4/F Blockley Hall, 418 Service Drive,                         \n  Philadelphia, PA 19104-6021,\n  U.S.A..                            Internet: delman@mipg.upenn.edu\n______________________________________________________________________\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4957, "properties": {"category": "rec.sport.baseball", "text": "From: davewood@bruno.cs.colorado.edu (David Rex Wood)\nSubject: Re: BOB KNEPPER WAS DAMN RIGHT!\nNntp-Posting-Host: bruno.cs.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 24\n\nIn article <1993Apr19.035406.11473@news.yale.edu> (Austin Jacobs) writes:\n>Don't you GUYS think so?  I mean, c'mon!  What the heck are women doing\n>even THINKING of getting into baseball.  They cause so many problems.  Just\n>look at Lisa Olson.  Remember that feisty reporter that entered the New\n>England Patriots locker room?  She started crying like a LITTLE GIRL!  I\n>just don't think women belong in a man's sport.  Before you smart guys\n>flame me for this, I know the given example was about football.  Who cares?\n> It still applies to other MALE sports.  How can we have women umpires? \n>Jeez!  Look at Pam Postema.  Just because she's a woman, everybody on the\n>face of the earth thinks it's great that she's getting an opportunity to\n>ump.  If you even watched the games and had an IQ greater than that of\n>roast beef, you'd see that she is not nearly as good as most AAA umpires.\n>Besides, she is probably more worried about cracking a fingernail with a\n>foul tip off of Wade Boggs' bat. Or Jose Oquendo's bat. Either way, there\n>are too many complications.\n>\n>\n>\u00d1Austin Jacobs (Bob Knepper Fan Club Member #12)\n\nSomeone tell me there's a :-) hidden here somewhere... ???\n-- \n-------------------------------------------------------------------------------\nDavid Rex Wood -- davewood@cs.colorado.edu -- University of Colorado at Boulder\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4958, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 12\nNNTP-Posting-Host: punisher.caltech.edu\n\nmathew <mathew@mantis.co.uk> writes:\n\n>>Perhaps we shouldn't imprision people if we could watch them closely\n>>instead.  The cost would probably be similar, especially if we just\n>>implanted some sort of electronic device.\n>Why wait until they commit the crime?  Why not implant such devices in\n>potential criminals like Communists and atheists?\n\nSorry, I don't follow your reasoning.  You are proposing to punish people\n*before* they commit a crime?  What justification do you have for this?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4959, "properties": {"category": "comp.graphics", "text": "From: pallis@server.uwindsor.ca (PALLIS  DIMITRIOS        )\nSubject: Re: Genoa Blitz 24 hits 1600x1200x256 NI !\nLines: 3\n\ni am sorry, but this genoa card does nothing that the ATI ultra plus 2mb\ncan't do, PLUS the ATI costs 330$US street price ....\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4960, "properties": {"category": "talk.politics.misc", "text": "From: riggs@descartes.etl.army.mil (Bill Riggs)\nSubject: Losers (Was Re: Stop putting down white het males.)\nKeywords: racism, sexism, mysogyny\nOrganization: LNK Corporation, Riverdale, MD\nLines: 152\nNntp-Posting-Host: descartes.tec.army.mil\n\nIn article <1993Apr2.180839.14305@galileo.cc.rochester.edu> as010b@uhura.cc.rochester.edu (Tree of Schnopia) writes:\n>In <1993Apr2.064804.29008@jato.jpl.nasa.gov> michael@neuron6.jpl.nasa.gov (Michael Rivero) writes:\n>\n>\n>>  I don't know what you as a white male did. I do know what white males,\n>>as a class, have done.\n>\n>>  They've invented the light bulb, the automobile, the airplane, printing with\n>>movable type, photography, computers, the electric guitar. anasthesia, rocket\n>>powered space flight, the computer, electricity, the telephone, TV, motion\n>>pictures, penecillin(sp), telescopes, nylon, and the X-Ray machine.\n>\n>Two glaring errors here.  First, white males don't do anything as a \"class.\" \n>INDIVIDUAL white males invented those things, which means nothing to white\n>males as a whole.  Second, you neglected to mention Charles Manson, Hitler,\n>McCarthy, Jack the Ripper, Ted Bundy, and a whole slew of individuals who\n>have done horrible, evil things.  If white males can take the credit for\n>our fellow white males' boons, we must also take the blame for our\n>fellows' blights.  I claim we deserve neither credit nor blame for these\n>things.\n>\n>\n>>  We are told, by U.S. congresswoman Barbara Jordan, that we are biologically\n>>incapable of compassion.\n>\n>She's full of shit.\n>\n>>  We are told by Susan Brownmiller that we're all rapists and that's ALL\n>>we are.\n>\n>She's full of shit.\n>\n>>  We're told by Catherine Comins that a false rape charge is actually good \n>>for us.\n>\n>She's full of shit.\n>\n>>  We are told by the feminist lawyers that we are not to be trusted with \n>>children. \n>\n>They're full of shit.\n>\n>>  We are told, by Newsweek magazine, that we are \"poor sports\" if we complain.\n>\n>Newsweek is full of shit.\n>\n>The point, ladies and gents?  Michael is not entirely correct in his theory\n>that because members of our race and gender made great advances, the race\n>and gender as a whole deserve more respect than they receive.  White males\n>DO deserve to be treated better than they are being treated, but not for\n>that reason.  And the male-bashers he quoted are repugnant hate-mongers, no\n>better than the chauvinists they despise.  So no one's right, as usual.\n>\n>White males need to wake up and realize that they're being unfair, yes.  But\n>everyone else needs to wake up and realize that being unfair right back is\n>disgusting, racist and sexist.\n>\n>Why can't we learn to treat everyone fairly, without generalizing?  What\n>stupidity gene makes this so difficult?  \"I'd like to buy the world a\n>clue...\"\n\n\n\tThe word that is missing in this whole discourse is not the \"B\"\nword, or the \"H\" word, or even the \"N\" or \"W\" words. It is the \"L\" word -\nLOSER !!\n\n\tThat's right. When we boil all the crap out of this argument, it\nis all about WINNING and LOSING, and nothing else. Let me explain.\n\n\tRemember the eighties ? No excuses. Nobody who can handle a mail\nbuffer can claim they are \"too young\" to remember Ronald Reagan - yet.\nThe eighties were about \"How America Learned to Win Once Again\". Then\n(wouldn't you know), we won so well that there was nothing left to win.\nNo Cold War to endure. No nuclear holocaust. No more worlds to conquer\n(We forgot about outer space long ago). The kind of overwhelming, no\nholds barred success that killed Alexander the Great. Yes, there were a\nfew \"little\" problems along the way - stock market meltdown here, an\nS&L bailout there, a few revolts and crazy Middle Eastern dictators to\ncontend with, but as Tacitus would tell ya', the God Augustus never had\nit so good. \n\n\tIn the meantime, there is guilt for winning, maybe a fear that one\ndoesn't deserve one's bounty - or success. So there is a \"kinder and gentler\ntype of politician these days, Bill Clinton, affirmative action, and lots of\ndiscourse about people who \"don't get it\". For those of us in the winning\nbusiness, this kind of talk is mildly irritating, but there is still no \nsuggestion of losing.\n\n\tBut what do we find now ? To put it mildy, the stereotype of our \n\"white male\" non-winner is Woody Hayes in the Rose Bowl, punching out \nphotojournalists when those California fruits and nuts steal another one\nwith a \"Hail Mary\" pass in the Fourth Quarter. (The whole idea behind 'three\nyards and a cloud of dust' is to wear your opponent down until he collapses\nin the final period) But Woody just used his fists - Uzzies seem to be the \nweapon of choice these days. \n\t\n\tWho is D-FENS, anyway ? The answer is as plain as the horn rims on \nyour face. The guy is MICHAEL DOUGLAS, posing as a LOSER. This \nis known as controversial casting. But that baggy short-sleeved white shirt \nsure does look natural on Mike doesn't it. Gordon Gekko will never look the \nsame. (Though Woody always dressed that way.) Did we really expect Gekko to \ntake it easy and enjoy that kind of wardrobe, without putting up a fuss ?\n\n\tWhat we are starting to lose sight of is, that bashing D-FENS is \nthe same game as bashing that poor African American slug that Clint Eastwood\nused to blow away all the time. As that arch-WASP (male gender) George C. Scott\ndeclaimed, \"Americans traditionally LOVE TO WIN. They love a winner, and will \nnot tolerate a loser.\" And so on. \n\n\tThe political implications are simple. If, as many socialists - and\nDemocrats - do, you consider society a finite pie to a apportioned in some \n\"equitable\" way, then you have to worry about who is a winner and who is a \nloser to tell whose side you are on. That could be black women today, Asian\nhomosexuals tommorrow, and yes indeed, white men some yet to be determined\nday when the balance of the pie has finally swung against that (39%) \nminority.\n\n\tOr you can just blow the whole thing off and say - as do most\nconservatives and all the libertarians - and act is if you didn't care\nwho's winning and who's losing. In some cases, you might say something\nabout make sure the game is fair (equality of opportunity, not of condition).\nIn the latter case, you might be able to identify yourself as a \n\"neoconservative\" or a \"neoliberal\" depending on how much you want to limit\nthe pot.\n\n\tEither way you go, the way of the Winner is no longer the way to be\npopular - at least after you graduate from High School (but you'll still\nbe popular at High School reunions). But it beats being a Nerd, as I \nwould imagine Michael Douglas would now agree, and in the long run, it\nis the only way to go. (Even in Hollywood, which treats Losers worse than any\nother place in America except for New York and Washington, D.C. - and even in\nColumbus, Ohio, which produced Alex Keaton, but no champion football teams in\nthe eighties and the first quarter of the nineties) I'd like to \nsee more Winners in this society, regardless of race, gender, religious \npreference, and sexual orientation. Maybe we should even let a few more of \nthem be white men !! (We should DEFINITELY let the Buckeyes win the Rose Bowl\nsomeday)\n\n\n\nBill R.\n\n--\n\n\"The only proposals in the Senate that I         \"My opinions do not represent\nhave seen fit to mention are particularly        those of my employer or\npraiseworthy or particularly scandalous ones.    any government agency.\"\nIt seems to me that the historian's foremost     - Bill Riggs\nduty is to ensure that virtue is remembered,\nand to deter evil words and deeds with the\nfear of posterity's damnation.\"\n- Tacitus, _Annals_ III. 65\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4961, "properties": {"category": "talk.politics.mideast", "text": "From: maler@vercors.imag.fr (Oded Maler)\nSubject: Re: Unconventional peace proposal\nNntp-Posting-Host: pelvoux\nOrganization: IMAG, University of Grenoble, France\nLines: 43\n\nIn article <1483500348@igc.apc.org>, cpr@igc.apc.org (Center for Policy Research) writes:\n|> \n|> From: Center for Policy Research <cpr>\n|> Subject: Unconventional peace proposal\n|> \n|> \n|> A unconventional proposal for peace in the Middle-East.\n|> ---------------------------------------------------------- by\n|> \t\t\t  Elias Davidsson\n\n|> \n|> 1.      A Fund should be established which would disburse grants\n|> for each child born to a couple where one partner is Israeli-Jew\n|> and the other Palestinian-Arab.\n|> \n|> 2.      To be entitled for a grant, a couple will have to prove\n|> that one of the partners possesses or is entitled to Israeli\n|> citizenship under the Law of Return and the other partner,\n|> although born in areas under current Isreali control, is not\n|> entitled to such citizenship under the Law of Return.\n|> \n|> 3.      For the first child, the grant will amount to $18.000. For\n|> the second the third child, $12.000 for each child. For each\n|> subsequent child, the grant will amount to $6.000 for each child.\n...\n\n|> I would be thankful for critical comments to the above proposal as\n|> well for any dissemination of this proposal for meaningful\n|> discussion and enrichment.\n|> \n|> Elias Davidsson Post Box 1760 121 Reykjavik, ICELAND\n\nMaybe I'm a bit old-fashioned, but have you heard about something\ncalled Love? It used to play some role in people's considerations\nfor getting married. Of course I know some people who married \nfictitiously in order to get a green card, but making a common\nchild for 18,000$? The power of AA is limited. Your proposal is\nindeed unconventional. \n\n===============================================================\nOded Maler, LGI-IMAG, Bat D, B.P. 53x, 38041 Grenoble, France\nPhone:  76635846     Fax: 76446675      e-mail: maler@imag.fr\n===============================================================\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4962, "properties": {"category": "comp.graphics", "text": "From: rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter)\nSubject: Please Recommend 3D Graphics Library For Mac.\nOrganization: Boeing Computer Services\nLines: 15\n\nHi Netters,\n\nI'm building a CAD package and need a 3D graphics library that can handle\nsome rudimentry tasks, such as hidden line removal, shading, animation, etc.\n\nCan you please offer some recommendations?\n\nI'll also need contact info (name, address, email...) if you can find it.\n\nThanks\n\n(Please Post Your Responses, in case others have same need)\n\nBob Carpenter\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4963, "properties": {"category": "sci.electronics", "text": "From: wb9omc@dynamo.ecn.purdue.edu (Duane P Mantick)\nSubject: Re: Long distance IR detection\nOrganization: Purdue University Engineering Computer Network\nLines: 44\n\nsburton@dres.dnd.ca (Stan Burton) writes:\n\n>I would like to be able to detect the angular position (low accuracy) of an\n>IR emitting source at a distance of about 100 meters (more is better) in\n>daylight.  The IR source could be emitting a signature; I'm leaning toward\n>30 KHz square wave with 50% duty cycle.\n\n>I am considering the use of a quadrant detector from Centronic Inc. to give\n>information to a pan/tilt head to point the sensor and thus determine the\n>angles.  For the source I am considering wazing the heck out of an IR LED(s),\n>possibly an Optek OP290 or Motorola MLED81.  Wazing would mean at least 1 Amp\n>current pulses.  At this current the duty cycle of the LED drops to 10% and I\n>would need to cycle five of them in turn to get the 50% required.\n\n>Has anyone done something like this?\n\n\n\tYeesh, you WILL be nailing those IRLEDs.  May I suggest getting your\nmitts on the Siemens SFH484-2 IRLED?  This unit is designed to take some big\ncurrent pulses if you can get your duty cycle down a bit.  It will output\nnearly a watt (975 mW) with REAL short duty cycle times.\n\n(nice thing about the SFH484-2 is that it is CHEAP.  I got mine for about\n50 cents a piece, even though I had to buy 100 of them....)\n\n\tBTW, I have seen IRLEDs with outputs up to 6 watts...honest,\n6 WATTS.  I don't have the book here at work so I can't recall the company\nname.  The 6 watter ain't cheap, around $108 but if you want some power,\nmamamia, that's pretty hot.  They also have a 4 watt, a 2 watt and a\n1 watt device in their line, and will sell small quan. to individuals.\nIf you are interested, I can find the book at home and get the\npertinent info.\n\n\tNow, as for the position detector, you might try ELTEC in Florida.\nPhone number listed in the 92/93 ETID is 904-253-5328.  They seem like \nnice people.  Their specialty is passive infrared detection devices,\nso they might be able to help you out.\n\n\tI'm curious about your applications if you don't mind saying.\nThe device sounds like it could be useful in a lasertag game, although you'd\nneed to up your carrier signal concept to 58.8 KHz......\n\nDuane\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4964, "properties": {"category": "rec.sport.baseball", "text": "From: kbanaian@bernard.pitzer.claremont.edu (King Banaian)\nSubject: Re: 15-day, 30-day, 60-day disabled list questions\nArticle-I.D.: bernard.kbanaian.448.734117444\nOrganization: Pitzer College\nLines: 25\n\nIn article <derichC52GJE.FJA@netcom.com> derich@netcom.com (Scotty*Tissue) writes:\n>\n>  Whenever a person is put on the 15-day, 30-day or 60-day, \n> the person is on the list longer than the specificed time\n>\n>  I've seen a person on the 15-day for maybe 4 months last year, I don't\n> remember what...\n>\n> I just need a little clarification on the disabled list specifications.\n>\nI believe we are down to two:  the 15-day and the 60-day.  (I don't remember \na 30-day, but rather a 21-day.  Anyways, it's gone now.)  The period length \nis a minimum, not a maximum.  You can keep a guy on the 15-day for as long \nas you want, IF he's still certified as injured.  The player must be \nperiodically re-evaluated to determine if he's still injured (thus you \ncannot park a player on the DL who maybe is out of options and you do not \nwish to expose to waivers).  If you get someone qualified for the 60-day \nthat reduces the frequency of re-evaluations.  There is no longer, I \nbelieve, any limit to the number of players you can place on the DL.  When \nthere was, you often had to choose and juggle your injured players between \nthe lists.\n--King \"Sparky\" Banaian\t\t\t\t|\"No taxes:  No new taxes,\nkbanaian@pitzer.claremont.edu\t\t\t|no old taxes, we are taxed\nDept. of Economics, Pitzer College\t\t|enough.\" -- Rep. Alan Keyes\nLatest 1993 GDP forecast:  2.4%\t\t| (please run, Alan!)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.238+0000", "event": "documents", "entityId": 4965, "properties": {"category": "rec.motorcycles", "text": "From: ewm@cbnews.cb.att.com (edward.w.mcfarland)\nSubject: Re: Speeding ticket from CHP\nOrganization: AT&T\nDistribution: usa\nLines: 53\n\nIn article <dmatejkaC51DMB.LH6@netcom.com> dmatejka@netcom.com (Daniel Matejka) writes:\n>In article <1pq4t7$k5i@agate.berkeley.edu> downey@homer.CS.Berkeley.EDU (Allen B. Downey) writes:\n>>       Fight your ticket : California edition by David Brown 1st ed.\n>>       Berkeley, CA : Nolo Press, 1982\n>>\n>>The second edition is out (but not in UCB's library).  Good luck; let\n>>us know how it goes.\n>>\n>  Daniel Matejka writes:\n>  The fourth edition is out, too.  But it's probably also not\n>very high on UCB's \"gotta have that\" list.\n>\n>In article <65930405053856/0005111312NA1EM@mcimail.com> 0005111312@mcimail.com (Peter Nesbitt) writes:\n>>Riding to work last week via Hwy 12 from Suisun, to I-80, I was pulled over by\n>>a CHP black and white by the 76 Gas station by Jameson Canyon Road.  The\n>>officer stated \"...it <looked> like you were going kinda fast coming down\n>>highway 12.  You <must have> been going at least 70 or 75.\"  I just said okay,\n>>and did not agree or disagree to anything he said. \n>\n>  Can you beat this ticket?  Personally, I think it's your Duty As a Citizen\n>to make it as much trouble as possible for them, so maybe they'll Give Up\n>and Leave Us Alone Someday Soon.\n\nRight on, it is every citizen's right and duty to FORCE government\naccountability.\n\n(anecdotes deleted)\n\n>  I've never tried proving the cop was mistaken.  I did get to see\n>some other poor biker try it.  He was mixing up various facts like\n>the maximum acceleration of a (cop) car, and the distance at which\n>the cop had been pacing him, and end up demonstrating that he couldn't\n>possibly have been going as fast as the cop had suggested.  He'd\n>brought diagrams and a calculator.  He was Prepared.  He lost.  Keep\n>in mind cops do this all the time, and their word is better than yours.\n\nAlso keep in mind that cops will LIE in court to get their way! (don't get\nme started by asking how I know ;) If you decide to fight you have to be ready\nfor this as well as devise strategy to make the cop's story doubtful in the\njudge/jury's mind.\n\n>Maybe, though, they don't guess how fast bikes are going all the time.\n>Besides, this guy didn't speak English very well, and ended up absolutely\n>confounding the judge, the cop, and everyone else in the room who'd been\n>recently criminalized by some twit with a gun and a quota.\n>  Ahem.  OK, I'm better now.  Maybe he'd have won had his presentation\n>been more polished.  Maybe not.  He did get applause.\n                                                  |~~~~~|  \n                                                  |_____|\n  Ed McFarland  ewm@mvuzr.att.com            (_) /|\n  US Marshalls #9 (corner marshals)         /| |/\n  The best seat in the house to watch        |_|\n  motorcycle roadracing!                    /   \\  NO Passing on Waving Yellow\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4966, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: Mogilny must be benched.\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nLines: 36\n\nIn article <C5C68r.5sq@acsu.buffalo.edu> v057p7nk@ubvmsb.cc.buffalo.edu \n(Andrew W Korbut) writes:\n\n>Anyway, this game continued a trend that has sadly been taking shape for\n>a couple of weeks now.  I had hoped it was fatigue, or an aberration, but\n>I can't snow myself any longer.  Alex Mogilny must be benched as a\n>disciplinary action, and soon.\n\n>His explanation for Ysebaert jumping between him and LaFontaine to score the\n>winning goal yesterday?  \"Wasn't my guy, ask Patty about it.\"\n\nActually this stuff from Mogilny doesn't surprise me all that much.  About 4\nor 5 weeks ago I read in the Toronto Sun a quote from Alex; it went something\nlike [sarcastically]:\n\n\"Yep, Patty's the man.  He's responsible for the team's success...I'm a \nnobody around here.\"\n\nI was going to post it at the time...I must have forgot since nobody else \nwas talking about him being a problem.\n\n>If I heard that in the locker room, I'd beat the shit out of him on the spot.\n>Patty took responsibility in the press, taking the heat off of Alex.  That's\n>because LaFontaine is the epitome of class, and a consummate team player.\n\nYep, I'd beat the shit out of him too.  LaFontaine really must be a team\nplayer...makes you wonder what the Islander management was thinking.\nMy question is what the hell is Muckler doing?  Whether he wishes to admit it\nor not, the team is his to coach, and if he can't do the job then maybe the\njob should be given to somebody who can.  \n\nGee, kinda like Alex's spot on the team, isn't it?\n\n> Dr.D [The Devils Advocate]        \n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4967, "properties": {"category": "soc.religion.christian", "text": "From: cs89mcd@brunel.ac.uk (Michael C Davis)\nSubject: Re: When are two people married in God's eyes?\nOrganization: Brunel University, Uxbridge, UK\nLines: 62\n\nRobert Anderson (randerso@acad1.sahs.uth.tmc.edu) wrote:\n: I would like to get your opinions on this: when exactly does an engaged\n: couple become \"married\" in God's eyes?  Some say that if the two have\n: publically announced their plans to marry, have made their vows to God, and\n: are unswervingly committed to one another (I realize this is a subjective\n: qualifier) they are married/joined in God's sight.\n\nThe way I read Scripture, a couple becomes married when they are *physically*\nmarried, i.e. when they first have sexual intercourse.\n\ne.g. the end of Genesis 2 (quoted from memory) ``for this reason, a man shall\nleave his parents and be joined to his wife, and they will become one flesh''\n(Jesus also quotes this scripture referring to marriage).\n\nIf you read through Genesis in particular, you will often come across the\nphraseology: ``[man] lay with [woman], and she became his wife''. This\nimplies that she became his wife when they lay together, i.e. at the\npoint of intercourse.\n\nCompare this with Jewish tradition: Joseph, when he heard that Mary\nwas pregnant, had it in mind to divorce her quietly -- but Mary and Joseph were\n*betrothed*, not married. i.e., they were in a binding relationship (which\nrequired a divorce to get out of), but *marriage* would not occur until Mary\nand Joseph went to bed together.\n\nCompare with Christ and the Church (Ephesians 5, Revelation 19): the church is\ndescribed as the ``bride'' of Christ, but the *marriage* of the Lamb takes \nplace when Jesus returns. i.e., we are in a binding love-relationship with\nJesus, but we are still looking forward to the time when the marriage will\ntake place. I see this as the spiritual equivalent of sexual intercourse,\nbecause it represents the most intimate fellowship possible between man and God.\n\nIn summary, engagement should be honoured as a binding relationship, but it is\nnot marriage. A civil ceremony is not marriage either. Marriage occurs at the\npoint when the betrothed couple go to bed together. (I don't mean to demean the\ncivil or church ceremony -- ours was great! I don't mean to be too pedantic.)\nHistorically, I think I am correct in stating that the civil ceremony (i.e. a\nmarriage recognised by the state), has only been around in the West since\nNapoleon, who introduced it to keep tabs on the people (although I'm ready to be\ncorrected on that point!)\n\nThis view obviously raises some questions:\n\nWhat about those who have had sex with one or more partners, without considering\nmarriage. Are those people also ``married''?\n\nIf it is true that marriage occurs at the point of intercourse, is it necessary\nto be married in the eyes of the state? (I would say Yes, because this honours\nthe laws of our nations in the West. Although it is not illegal to sleep\ntogether though unmarried in most Western countries, I believe that it is God-\nhonouring to proclaim our marriage to the state and to our friends before\nactually consummating our marriage. Its to do with our being salt and light, and\nalso to do with how people will perceive us; i.e. it is culturally insensitive\nto declare yourself married without going through a civil ceremony.)\n\n-- \n\n-----\nMichael Davis (cs89mcd@brunel.ac.uk)\n\n\tAnd hast thou slain the Jabberwock?\n\tCome to my arms, my beamish boy!\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4968, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: Re: Is it good that Jesus died?\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 71\n\nIn article <bskendigC5L782.JM5@netcom.com> bskendig@netcom.com (Brian Kendig) writes:\n\n>John 12:24-26: \"Most assuredly, I say to you, unless a grain of wheat\n>falls onto the ground and dies, it remains alone; but if it dies, it\n>produces much grain.\n>  \"He who loves his life will lose it, and he who hates his life in\n>this world will keep it for eternal life.\n>  \"If anyone serves Me, let him follow Me; and where I am, there My\n>servant will be also.  If anyone serves Me, him My Father will honor.\"\n>\n>Why would I want an eternal life if I hate this one?\n\nAgain, you missed Jesus's point.  If you read the surrounding passages\nyou would understand what Jesus means by \"life in the world.\"  But\nas is, you bumbled around, asserted your standard axiom that the Bible is bunk,\nand came up with the wrong idea.  Also, you do not know exactly\nwhat Jesus means by eternal life.  \n\nBrian K., do you expect to jump in the middle of the quantum mechanics\nbook and understand Hermite polynomials having not read the surrounding\nmaterial?  Why do you such with the Bible?  For an idea what Jesus\nmeans by the world, look up references to it in your concordance.  For\na good description, the whole Book of Ecclesiastes is game.  For \neternal life, check out John 17:3, John 3:15-16.  You will find that\neternal life is quite different than what you think.  Eternal life\nstarts NOW--an infinitely high quality of life living in fellowship\nwith God.\n\n\n>In short: even if your deity *does* exist, that doesn't automatically\n>mean that I would worship it.  I am content to live my own life, and\n>fend for myself, so when I die, I can be proud of the fact that no\n>matter where I end up, it will be because of *my* actions and *my* choices.\n>\n>If your god decides to toss me into a flaming pit for this, then so be\n>it.  I would much rather just cease to exist.  But if your god wants\n>my respect and my obedience, then it had better earn these; and if it\n>does, then they will be very strong and true.\n\nIf my diety exists, you would not just cease to exist.  Jesus talks of\nhell in Luke 16:19-31.  \n\n\n>You've got to understand my point-of-view: I see Christians spouting\n>Bible verse all the time as if it were some sort of magic spell that\n>will level all opposition.  Truth is, it's not.  Robert has never\n>demonstrated that he actually understands what the verses imply; he\n>just rattles them off day by day.  Some brazenly fly in the face of\n>common sense and reality, and I point these out where I can.\n\n\nThe truth is, is that it is not some sort of magic spell.  The truth\nis is that you do not understand it, and enjoy not understanding it.\n\n>Christanity is a very nice belief set around a very nice book. \n\n\nWrong again.  Christianity is supposed to be relationship.  You\ndo not even know what Christianity is and you are arguing against\nit.\n\n>And in my opinion, you're bumbling about blindly making up entities\n>where there aren't any, and depriving yourself of a true understanding\n>and enjoyment of your life.  As long as you keep your beliefs to\n>yourself, I'll keep my beliefs to myself -- but as soon as you start\n>waving them around, expect me to toss in my opinions, too.\n\nJust as I make up such places as Jericho, Jerusalem, Babylon, Corinth,\nEphesus, Susa, and such kings as Nebuchanezzar, David, Solomon,\nSennacherib, Herod, Pontius Pilate . . . .   But I guess then\nthat you treat Abraham Lincoln as a myth like you do Odin and Zeus.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4969, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: djserian@flash.LakeheadU.Ca (Reincarnation of Elvis)\nSubject: speeding up windows\nKeywords: speed\nLines: 19\n\nI have a 386/33 with 8 megs of memory\n\nI have noticed that lately when I use programs like WpfW or Corel Draw\nmy computer \"boggs\" down and becomes really sluggish!\n\nWhat can I do to increase performance?  What should I turn on or off\n\nWill not loading wallpapers or stuff like that help when it comes to\nthe running speed of windows and the programs that run under it?\n\nThanx in advance\n\nDerek\n\n--\n$_    /|$Derek J.P. Serianni $ E-Mail : djserian@flash.lakeheadu.ca           $ \n$\\'o.O' $Sociologist         $ It's 106 miles to Chicago,we've got a full tank$\n$=(___)=$Lakehead University $ of gas, half a pack of cigarettes,it's dark,and$\n$   U   $Thunder Bay, Ontario$ we're wearing sunglasses. -Elwood Blues        $  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4970, "properties": {"category": "rec.autos", "text": "From: sorlin@magnus.acs.ohio-state.edu (Steven J Orlin)\nSubject: Re: Changing oil by self.\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: usa\nLines: 22\n\n\nIn article <C5LMtr.Mo7@mentor.cc.purdue.edu> marshatt@feserve.cc.purdue.edu (Za\nuberer) writes:\n>>>In article <1qgi8eINNhs5@skeena.ucs.ubc.ca>, yiklam@unixg.ubc.ca (Yik Chong\nLam) writes:\n>>>|> Hello,\n>>>|>     Does anyone know how to take out the bolt under the engine\n>>>|> compartment?  Should I turn clockwise or counter?  I tried any kind\n>>>|> of lubricants, WD-40,etc, but I still failed!\n>>>|>     Do you think I can use a electric drill( change to a suitable\n>>>|> bit ) to turn it out?  If I can succeed, can I re-tighten it not too\n>>>|> tight, is it safe without oil leak?\n>>>|> Thank you very much in advance------  Winson\n\nDon't worry about leaks.  Don't worry about which way to turn the damn thing.\nTake a good claw hammer and pry it straight out.  Now, you'll notice, after\nall the oil pours out, that there are no theads where there used to be.\n\nThats why 'heli coils' were invented.  Yes, buy a few of these gems, and\nrethread the hole a little larger each time you change the oil.\nWhen the hole gets too big for any heli coil you can buy, its time to trade in\nthe car...\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4971, "properties": {"category": "comp.graphics", "text": "From: yoo@engr.ucf.edu (Hoi Yoo)\nSubject: Ribbon Information ?\nOrganization: engineering, University of Central Florida, Orlando\nDistribution: usa\nLines: 20\n\n\n\nDoes anyone out there have or know of, any kind of utility program for\n\nRibbons?\n\n\nRibbons are a popular representation for 2D shape.  I am trying to\nfind symmetry axis in a given any 2D shape using ribbons.\n\n\nAny suggestions will be greatly appreciated how to start program. \n\n\nThanks very much in advance,\nHoi\n\n\nyoo@engr.ucf.edu\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4972, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rnichols@cbnewsg.cb.att.com (robert.k.nichols)\nSubject: Re: Simple Windows question\nOrganization: AT&T\nLines: 15\n\nIn article <1993Apr23.214110.15315@sarah.albany.edu> jr0930@eve.albany.edu (DIAMOND) writes:\n>When running DOS 5.0 under Windows 3.0, I lose the ability to do a\n>print-screen.\n>I have no problem with this when I'm running DOS not under Windows.\n...\n\nOpen up the .PIF file with the PIF Editor, click on the \"Advanced\" button,\nand then reserve the PrtSc key for the application.  Any keys that you\nselect in this section will be passed along to the application rather than\nbeing processed by Windows.\n\n--\nBob Nichols\nAT&T Bell Laboratories\nrnichols@ihlpm.ih.att.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4973, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: drp@camelot.bradley.edu (Douglas Pokorny)\nSubject: ISA bus pin question; re: Diamond Speedstar 24X\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Bradley University\nLines: 33\n\n\nToday I recieved a in-warranty replacement for my\nDiamond Speedstar 24X.  On the card I've noticed a few\nchanges; mostly there is a new jumper labeled JP5.\n(The card is revision 5A)\n\nMy detective work has shown that this jumper simply\nconnects/disconnects the BALE line on the 64-pin part\nof the ISA bus.\n\nThe question I have is simple:\nTo those people who own this revision of the Speedstar 24X,\nwhat does the manual claim that this jumper does?\n\nTo anyone with an ISA-reference, what is the function of the\nBALE line?\n\nOn a related note:\nAre there any FTP sites which contain a descriptive reference to\nthe ISA bus?  My motherboard manual has a simple pin-to-signal-name\nchart, but that is it.\n\n-Douglas\n\n\n_________________________________________________________\n ________   ___    ___  \n|_   __  \\ |   |  |   |   Douglas R. Pokorny\n  | |__| /  | |    | |    drp@camelot.bradley.edu\n  |  __  \\  | |    | |    CS major/Geisert Hall Resident\n _| |__|  | |  \\__/  |    \n|________/   \\______/     \"Conveniently located in the \n  Bradley   University     armpit of Illinois... Peoria\" \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4974, "properties": {"category": "comp.windows.x", "text": "From: jlong@brtph368.BNR.CA (John Long P205)\nSubject: Need xman source\nReply-To: jlong@brtph368.BNR.CA (John Long P205)\nOrganization: Bell-Northern Research Ltd.\nLines: 3\n\n   Where can I get xman source?  I would rather get \nxman for an HP 9000/700, but source will do.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4975, "properties": {"category": "rec.autos", "text": "From: CONRADIE@firga.sun.ac.za (Gerrit Conradie)\nSubject: Re: Dealer cheated me with wrong odometer reading. Need help!\nOrganization: University of Stellenbosch, SA\nDistribution: usa\nLines: 26\n\nIn article <1qvrnpINNnid@shelley.u.washington.edu> yongje@hardy.u.washington.edu (Yong Je Lim) writes:\n>Subject: Dealer cheated me with wrong odometer reading. Need help!\n\n>Here is a story.  I bought a car about two weeks ago.  I finally can\n>get hold of the previous owner of the car and got all maintanence\n>history of the car.  In between '91 and '92, the instrument pannel \n>of the car has been replaced and the odometer also has been reset\n>to zero.  Therefore, the true meter reading is the reading before\n>replacement plus current mileage.  That shows 35000 mile difference\n>comparing to the mileage on the odometer disclosure from.  The \n>dealer never told me anything about that important story.\n>\n>I hope that I can return the car with full refund.  Do u think this\n>is possible?  Does anyone have similar experiences?  Any comments\n>will be appreciated.  Thanks.\n\nSomething that happened in South AFrica about a year ago: A dealer sold a \nMercedes with an odometer reading of 150K kilometers to a lady. Turned out \nthat the actual reading should have been 160K. Court case followed because\nlady said she wouldn't have bought a car with that much km's. Dealer found \nquilty, fined and had to take back the car.\n\nI think you have a case if you can get a sworn statement from the previous\nowner. Take the car back to the dealer and threaten him or something.\n\n- gerrit\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4976, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Playoff pool entry form\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 45\nNntp-Posting-Host: mail.sas.upenn.edu\n\nWell, thanks to everyone who has entered so far.  There are at least 40\nentries, and hopefully more people will enter before the deadline, which\nis 7:30 pm Today, Sunday, April 18, 1993!  In the interest of fairness,\nsince I will win anyway, I feel it is only right to actually tell everyone\nmy picks, so that you all won't cry \"rigged\" after I declare myself the\nwinner.  Here they are:\n\n\n\tSeries\t\t\tYour Pick\t\tGames\n\n   Division Semifinals\n\nPittsburgh-New Jersey\t\tPittsburgh\t\t5\nWashington-NY Islanders\tNY Islanders\t\t6\n\nBoston-Buffalo\t\t\tBoston\t\t\t5\nQuebec-Montreal\t\t\tQuebec\t\t\t7\n\nChicago-St. Louis\t\tChicago\t\t\t4\nDetroit-Toronto\t\t\tDetroit\t\t\t6\n\nVancouver-Winnipeg\t\tWinnipeg\t\t7\nCalgary-Los Angeles\t\tCalgary\t\t\t7\n\n   Division Finals\n\nPatrick\t\t\t\tPittsburgh\t\t6\nAdams\t\t\t\tQuebec\t\t\t7\nNorris\t\t\t\tChicago\t\t\t7\nSmythe\t\t\t\tCalgary\n\n   Conference Finals\n\nWales\t\t\t\tPittsburgh\t\t5\nCampbell\t\t\tChicago\t\t\t4\n\n\nStanley Cup winner\t\tPittsburgh\t\t6\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4977, "properties": {"category": "soc.religion.christian", "text": "From: christian@geneva.rutgers.edu\nSubject: end of discussion: Easter\nLines: 2\n\nI just about closed this once before.  I'm now doing so for real, after\ntonight's posting.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4978, "properties": {"category": "misc.forsale", "text": "From: klwright@eos.ncsu.edu (KENNETH LEE WRIGHT)\nSubject: Case, MFM Contr., Game card, Sound Card\nOriginator: klwright@c00391-346dan.eos.ncsu.edu\nReply-To: klwright@eos.ncsu.edu (KENNETH LEE WRIGHT)\nOrganization: North Carolina State University, Project Eos\nLines: 29\n\n\nForsale\n\n1     Desktop Case, 200 Watt power supply 2 internal 5 1/4\" bays and \n      2 external 5 1/4\" origanaly Dell System 200 case. looks real good\n      all hardware included.\n      I would like $80 + shipping or best offer.\n\n1     Western Digital MFM controler, 16 bit 2 floppy 2 hard, never had a\n      problem with it. \n      I would like  $30 + shipping or best offer.\n\n1     Game card, works well nothing fancy just a joystick port. \n      I would like $10 + shipping or best offer.\n\n1     INNOVATION Game / Sound Card, Has one game port and an adlib port.\n      I never used it. ( I got a soundblaster cheep before I installed it)\n      I would like $5 + shipping\n\n All offers considered, Buyer pays shipping.\n\n\nplease resopnd to \nklwright@eos.ncsu.edu\nor\n(919) 834-3290 \n\nthanks\nken\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4979, "properties": {"category": "comp.windows.x", "text": "From: tim@hssc.scarolina.edu (Tim White)\nSubject: Re: X11 load on the Network\nOrganization: USC  Department of Computer Science\nLines: 18\n\nbkline%occs.nlm.nih.gov (Bob Kline) writes:\n\n>Can someone point me in the direction of any papers (not necessarily\n>formally conducted studies) discussing how much traffic X apps generate\n>for the network, particularly in comparison with curses-bases apps \n>over telnet?  Also, does an X server typically buffer up user keyboard\n>input a line at a time?  Can the X client control this, asking for\n>keystrokes immediately?  Thanks in advance for any feedback!\n\n\n   Ncd has an excellent document titled \"Host Loading Considerations in the X \n  environment\". I received my copy by emailing support@ncd.com. This may\n  help out.\n--\n==============================================================================\nTim White\t\t\t\t University of South Carolina\ntim@otis.hssc.scarolina.edu\t   Humanities and Social Sciences Laboratory\n(803)-777-7840 \t\t  \t\t     Columbia, S.C. 29208\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4980, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: louray@seas.gwu.edu (Michael Panayiotakis)\nSubject: Re: Wallpaper in Windows 3.1\nOrganization: George Washington University\nLines: 22\n\nIn article <1qvpdo$q7i@bigboote.WPI.EDU> bigal@wpi.WPI.EDU (Nathan Charles Crowell) writes:\n>Hi there,\n>\n>Is there any utility available that will make Windows\n>randomly select one of your windows directory's .BMP\n>files as the wallpaper file?\n>\n>Nate\n> [nate's sig]\n\nThere are a couple.  I am personally using screenpeace, which is a\nscreen saver which will also select your wallpaper from a specified\ndirectory (not necessarily the windows dir.).  Let me know if you want\ninfo.  I've been pretty happy with screenpeace, and the latest version\n(3) is *not* at cica, but  oak, /windows3/scrpc3or.something\n\nMickey\n-- \npe-|| ||  MICHAEL PANAYIOTAKIS: louray@seas.gwu.edu \nace|| ||                                   ...!uunet!seas.gwu.edu!louray\n|||| \\/|  *how do make a ms-windows .grp file reflect a HD directory??*\n\\\\\\\\   |  \"well I ain't always right, but I've never been wrong..\"(gd)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4981, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: Matthew_J._Wilson@mcontent.apana.org.au\nOrganization: MacContent BBS, Doncaster, Victoria, Australia\nReturn-Receipt-To: Matthew_J._Wilson@mcontent.apana.org.au\nSubject: Colour card for the LC\nLines: 8\n\nwouldany one know afair price for an LC Color card in Aussie dollars??\njust wondering...\n\n***************************************************************************\n The views expressed in this posting those of the individual author only. \n[BBS Number:(613) 848-1346      MacContent is Victoria\u00d5s first Iconic BBS!]\n***************************************************************************\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4982, "properties": {"category": "sci.space", "text": "From: palmer@cco.caltech.edu (David M. Palmer)\nSubject: Re: Gamma Ray Bursters. WHere are they.\nOrganization: California Institute of Technology, Pasadena\nLines: 53\nNNTP-Posting-Host: alumni.caltech.edu\n\nprb@access.digex.com (Pat) writes:\n\n>  What  evidence  indicates that Gamma Ray bursters are very far away?\n\n>Given the enormous  power,  i was just wondering,  what if they are\n>quantum  black holes or something  like that  fairly close by?\n\n>Why would they have to be at  galactic ranges?   \n\nGamma Ray Bursts (GRBs) are seen coming equally from all directions.\nHowever, given the number of bright ones, there are too few faint\nones to be consistent with being equally dense for as far\nas we can see--it is as if they are all contained within\na finite sphere (or a sphere with fuzzy edges) with us at the\ncenter.  (These measurements are statistical, and you can\nalways hide a sufficiently small number of a different\ntype of GRB with a different origin in the data.  I am assuming\nthat there is only one population of GRBs).\n\nThe data indicates that we are less than 10% of the radius of the center\nof the distribution.  The only things the Earth is at the exact center\nof are the Solar system (at the scale of the Oort cloud of comets\nway beyond Pluto) and the Universe.  Cosmological theories, placing\nGRBs throughout the Universe, require supernova-type energies to\nbe released over a timescale of milliseconds.  Oort cloud models\ntend to be silly, even by the standards of astrophysics.\n\nIf GRBs were Galactic (i.e. distributed through the Milky Way Galaxy)\nyou would expect them to be either concentrated in the plane of\nthe Galaxy (for a 'disk' population), or towards the Galactic center\n(for a spherical 'halo' population).  We don't see this, so if they\nare Galactic, they must be in a halo at least 250,000 light years in\nradius, and we would probably start to see GRBs from the Andromeda\nGalaxy (assuming that it has a similar halo.)  For comparison, the\nEarth is 25,000 light-years from the center of the Galaxy.\n\n>my own pet theory is that it's  Flying saucers  entering\n>hyperspace :-)\n\nThe aren't concentrated in the known spacelanes, and we don't\nsee many coming from Zeta Reticuli and Tau Ceti.\n\n>but the reason i am asking is that most everyone assumes  that they\n>are  colliding nuetron stars  or  spinning black holes,  i just wondered\n>if any mechanism could exist  and place them  closer in.\n\nThere are more than 130 GRB different models in the refereed literature.\nRight now, the theorists have a sort of unofficial moratorium\non new models until new observational evidence comes in.\n\n-- \n\t\tDavid M. Palmer\t\tpalmer@alumni.caltech.edu\n\t\t\t\t\tpalmer@tgrs.gsfc.nasa.gov\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4983, "properties": {"category": "comp.windows.x", "text": "From: etxmesa@eos.ericsson.se (Michael Salmon)\nSubject: Re: Title for XTerm\nKeywords: XTerm\nNntp-Posting-Host: eos6c02.ericsson.se\nReply-To: etxmesa@eos.ericsson.se (Michael Salmon)\nOrganization: Ericsson Telecom AB\nLines: 21\n\nIn article <1r3fe2INN10d@fbi-news.Informatik.Uni-Dortmund.DE>\nmarkhof@ls12r.informatik.uni-dortmund.de (Ingolf Markhof) writes:\n[...]\n|> I have an\n|> \n|> \talias precmd echo -n '^[]2\\;${HOST}:$cwd^G'\n|> \n|> in my ~/.tcshrc. This is a special alias for tvtwm. \n\nI presume that you meant to say tcsh here ------^^^^^\n\n-- \n\nMichael Salmon\n\n#include\t<standard.disclaimer>\n#include\t<witty.saying>\n#include\t<fancy.pseudo.graphics>\n\nEricsson Telecom AB\nStockholm\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4984, "properties": {"category": "sci.med", "text": "From: dpc47852@uxa.cso.uiuc.edu (Daniel Paul Checkman)\nSubject: Re: Is MSG sensitivity superstition?\nArticle-I.D.: news.C5wI4F.Dt\nOrganization: University of Illinois at Urbana\nLines: 22\n\nbruce@Data-IO.COM (Bruce Reynolds) writes:\n\n>Anecedotal evidence is worthless.  Even doctors who have been using a drug\n>or treatment for years, and who swear it is effective, are often suprised\n>at the results of clinical trials.  Whether or not MSG causes describable,\n>reportable, documentable symptoms should be pretty simple to discover.  \n\nI tend to disagree- I think anecdotal evidence, provided there is a lot of it,\nand it is fairly consistent, will is very important.  First, it points to the\nnecessity of doing a study, and second, it at least says that the effects are\nall psychological (or possibly allergy in this case).  As I've pointed out \nbefore, pyschological effects are no less real than other effects.  One       \nperson's \"make-believe\" can easily be another person's reality.  Using \npsychadelic drugs in a bizarre and twisted example, the hallucinations one\nperson experiences on an acid trip cannot be guaranteed to another person on\nan acid trip- there is no clinical evidence that those effects are always going\nto happen.  Anyhow, that was a pretty lame example, but hopefully I made my\npoint- it's all a matter of perception, and as long as someone ingesting MSG\nperceives it as causing bad effects, then s/he can definitely experience those\naffects.  On the other hand, it could just be an allergy to the food it's in,   or something.  Still, anecdotal evidence is not worthless- it's the stuff that\nleads to the study being done.\n-Dan\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4985, "properties": {"category": "sci.space", "text": "From: loss@fs7.ECE.CMU.EDU (Doug Loss)\nSubject: Re: Death and Taxes (was Why not give $1 billion to...\nOrganization: Electrical and Computer Engineering, Carnegie Mellon\nLines: 55\n\nIn article <1993Apr23.000021.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>In article <1993Apr22.162501.747@indyvax.iupui.edu>, tffreeba@indyvax.iupui.edu writes:\n>> [...]  Somebody pointed out, quite correctly, that such rights are\n>> not anybody's to grant (although I imagine it would be a fait accompli\n>> situation for the winner.)  So how about this?  Give the winning group\n>> (I can't see one company or corp doing it) a 10, 20, or 50 year\n>> moratorium on taxes.\n>> \n>> Tom Freebairn \n>\n>\n>Who says there is no mineral rights to be given? Who says? The UN or the US\n>Government? \n\nTom's right about this.  It's only a grantable right if the granter has\nthe will and the ability to stop anyone from taking it away from you.\nNever mind the legal status.\n\n>Major question is if you decide to mine the moon or Mars, who will stop you?\n>The UN can't other than legal tom foolerie.. Can the truly inforce it?\n\nNick's right about this.  It's always easier to obtain forgiveness than\npermission.  Not many people remember that Britain's King George III\nexpressly forbid his american subjects to cross the alleghany/appalachian\nmountains.  Said subjects basically said, \"Stop us if you can.\"  He\ncouldn't.\n\n>If you go to the moon as declare that you are now a soverign nation, who will\n>stop you from doing it. Maybe not acknowledge you? \n\nThat's how the USA started.  Of course, that's also how the Bolivarian\nRepublic started (ca. 1800-1820) in central america.  It didn't have\nquite the staying power of the USA.  I'm sure there are more examples of\ngoing far away and then ignoring authority, but none jump to mind right\nnow.\n\n>What can happen is to find a nation which is acknowledged, and offer your\n>services as a space miner and then go mine the asteroids/mars/moon or what\n>ever.. As long as yur sponsor does not get in trouble..\n\nOr do as some whaling nations do: define whatever activities you want to\ncarry out as \"scientific research\" which just coincidentally requires\nthe recovery of megatonnes of minerals (or whatever), then go at it.\n\n>Basically find a country who wants to go into space, but can't for soem reason\n>or another, but who will give you a \"home\".. Such as Saudia Arabia or\n>whatever..\n\nLute Keyser had just this sort of arrangement with Libya (I think) in\nthe late '70's for his commercial space launch project (one of the very\nearliest).  It was killed by Soviet propaganda about NATO cruise\nmissiles in Africa, which made Libya renege on the arrangement.\n\n\nDoug Loss\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4986, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Keenan signs with the Rangers!!\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 19\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <1993Apr16.175300.98134@ns1.cc.lehigh.edu> cpc4@ns1.cc.lehigh.edu (CONNIN PATRICK COLGAIN) writes:\n>Just heard on the news that Mike Keenan formerly of the Blackhawks, Flyers,\n>and General of a Siberian Prison has just signed to coach the Rangers.  The\n>Rangers, who won the President's Cup last year have slipped just a bit at the\n>end of the season and are destined to finish last behind the lowly Flyers.\n>The Flyers' fans are going to be disappointed on Keenans decision, because\n>they were very interested in him.  Oh well.\n\nAt least we got somebody the Flyers wanted ;-)\n\nIs this really true?  I have not been keeping up with any news.  If it is,\nwhat's the deal with Neil Smith?  Is he gone, too?\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4987, "properties": {"category": "comp.sys.mac.hardware", "text": "From: vincent@cad.gatech.edu (Vincent Fox)\nSubject: Noisy SE: What can I do?\nOrganization: Deep Thirteen, Gizmonics Institute\nLines: 14\nDistribution: usa\nNNTP-Posting-Host: cae.cad.gatech.edu\n\nThere's this old SE here. It's got the older-style fans that remind\nme of a house-ventilator. A cylindrical drum instead of the bladed rotor\nI usually see. Anyway, the SE makes this loud buzzing noise due\nto vibration somewheres. If I remove the screws and loosen the front\nfrom the back, it quiets down. I can only assume that the fan housing\nfrom this goofy thing is touching the back of the case and vibrating\nagainst it. \n\nAnyway, any suggestions for where to get replacement fans and how to\n\"stealth\" this guy? Your experiences welcome.....\n\n-- \n\"If everything had gone as planned, everything would have been perfect.\"\n\t-BATF spokesperson on CNN 3/2/93, regarding failed raid attempt in TX.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4988, "properties": {"category": "soc.religion.christian", "text": "From: mmh@dcs.qmw.ac.uk (Matthew Huntbach)\nSubject: Re: proof of resurection\nOrganization: Computer Science Dept, QMW, University of London, UK.\nLines: 22\n\nIn article <Apr.21.03.26.18.1993.1352@geneva.rutgers.edu> reedr@cgsvax.claremont.edu writes:\n>following Christ.  From Captialist who have polluted the enviorment in strict\n>obedience to the Gensis command to subdue the earth, to Nazi's who have\n>\"justly\" punished the Jews for the killing Christ\n\nIt is funny how this one little quote from Genesis is treated\nby certain anti-Christians as if Christians have been given a\nfirm command to destroy the earth. You could prove almost\nanything by taking little quotes out of context from the Bible\n- it's a big book, you know. I doubt you could find a single\ncase of a anti-ecological action taking place specifically\nbecause teh perpetrator was motivated by a Christian belief.\n\nAs for the Nazis, they were motivated by German Nationalism,\nnot by Christianity. In fact they despised Christianity as a\nweak pacifist religion, and were much more keen on pagan\nglorification of strength and warfare. They killed the Jews\nbecause they were not Germans, not because they were\n\"Christ-killers\" - they were just as keen on killing the other\nnon-German ethnic minority, the Romanies or Gypsies.\n\nMatthew Huntbach\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.239+0000", "event": "documents", "entityId": 4989, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Name of MD's eyepiece?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 13\n\nIn article <C4IHM2.Gs9@watson.ibm.com> clarke@watson.ibm.com (Ed Clarke) writes:\n>|> |It's not an eyepiece.  It is called a head mirror.  All doctors never\n>\n>A speculum?\n\nThe speculum is the little cone that fits on the end of the otoscope.\nThere are also vaginal specula that females and gynecologists are\nall too familiar with.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4990, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 62\nNNTP-Posting-Host: punisher.caltech.edu\n\n(reference line trimmed)\n\nSSAUYET@eagle.wesleyan.edu (SCOTT D. SAUYET) writes:\n\n>First, I'll make the assumption that you agree that a murderer is one\n>who has commited murder.\n\nWell, I'd say that a murderer is one who intentionally committed a murder.\nFor instance, if you put a bullet into a gun that was thought to contain\nblanks, and someone was killed with such a gun, the person who actually\nperformed the action isn't the murderer (but I guess this is actually made\nclear in the below definition).\n\n>I'd be interested to see a more reasonable definition. \n\nWhat do you mean by \"reasonable?\"\n\n>Otherwise, your inductive definition doesn't bottom out:\n>Your definition, in essence, is that\n>>Murder is the intentional killing of someone who has not commited \n>>murder, against his will.\n>Expanding the second occurence of `murder' in the above, we see that\n[...]\n\nYes, it is bad to include the word being defined in the definition.  But,\neven though the series is recursively infinite, I think the meaning can\nstill be deduced.\n\n>I assume you can see the problem here.  To do a correct inductive\n>definition, you must define something in terms of a simpler case, and\n>you must have one or several \"bottoming out\" cases.  For instance, we\n>can define the factorial function (the function which assigns to a\n>positive integer the product of the positive integers less than or\n>equal to it) on the positive integers inductively as follows:\n\n[math lesson deleted]\n\nOkay, let's look at this situation:  suppose there is a longstanding\nfeud between two families which claim that the other committed some\ntravesty in the distant past.  Each time a member of the one family\nkills a member of the other, the other family thinks that it is justified\nin killing a that member of the first family.  Now, let's suppose that this\nsequence has occurred an infinite number of times.  Or, if you don't\nlike dealing with infinities, suppose that one member of the family\ngoes back into time and essentially begins the whole thing.  That is, there\nis a never-ending loop of slayings based on some non-existent travesty.\nHow do you resolve this?\n\nWell, they are all murders.\n\nNow, I suppose that this isn't totally applicable to your \"problem,\" but\nit still is possible to reduce an uninduced system.\n\nAnd, in any case, the nested \"murderer\" in the definition of murder\ncannot be infintely recursive, given the finite existence of humanity.\nAnd, a murder cannot be committed without a killing involved.  So, the\nfirst person to intentionally cause someone to get killed is necessarily\na murderer.  Is this enough of an induction to solve the apparently\nunreducable definition?  See, in a totally objective system where all the\ninformation is available, such a nested definition isn't really a problem.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4991, "properties": {"category": "misc.forsale", "text": "From: artc@iplmail.orl.mmc.com (Art)\nSubject: Re: Brand new IDE/Floppy/2S/2P/1G card for sale\nOrganization: MMC\nLines: 34\n\nIn article <bitzm.124.0@columbia.dsu.edu>, bitzm@columbia.dsu.edu (MICHAEL BITZ) writes:\n|> \n|>                 For Sale\n|>                 ********\n|> \n|>         IDE Multi I/O Card -- Brand new\n|> \n|>         Controls:\n|>         * (2) IDE hard drives\n|>         * (2) floppy drives (3.5\" or 5.25\", high\n|>               or low density\n|>         * (2) serial ports\n|>         * (1) parallel port\n|>         * (1) game port\n|> \n|>         All in one card, measuring 2.5\" x 6\"!!\n|> \n|>         This card is *brand* new (never been opened, much \n|>         less used at all).  \n|> \n|>         **** $35.00 (including all shipping charges!) *****\n|>         \n|>         bitzm@columbia.dsu.edu\n|> \n|>        \n|> \n|> \n|> ------------------------------------------------------------\n|> Mike Bitz                   Internet: bitzm@columbia.dsu.edu\n|> Research and Development              bitzm@dsuvax.dsu.edu\n|> Dakota State University       Bitnet: s93020@sdnet.bitnet\n|> \n\nA friend of mine is selling the same thing for $25.00!!! ( NEW )\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4992, "properties": {"category": "sci.electronics", "text": "From: fmg@alpha.smi.med.pitt.edu (Filip Gieszczykiewicz)\nSubject: Scope questions\nSummary: What is [a] \"Storage scope\"\nDistribution: na\nOrganization: Medical Informatics, Pittsburgh, PA USA\nLines: 33\n\n\n\tGreetings. I've been seeing the word \"storage\" mentioned\n\taround oscilliscopes but I'm curious, what does it mean?\n\n\tIf my life depended on it, I'd say that it's a scope that\n\tuses long-persistance phosphor to keep the successive\n\ttaces on the screen for some unit of time - \"store\" them.\n\tDo I get to live?\n\n\tAlso, I've been shopping for a decent, used, [old] scope\n\tsince my Tek 514A (portable...NOT!) and my Heathkit O-1000\n\tare all single trace and I need more... like 2 or 3 and at\n\tleast 50MHz (maybe 100...)\n\n\tDuring my shopping at hamfests etc. I've run into the \n\tproblem of \"old scope\" terminology. I can imagine what\n\ta \"mainframe\" and \"plug-in\" are but some things like\n\tthe above \"storage\", \"coax input\" (Hey, where do I get a \n\tprobe that fits this? I had to fiddle with mine for a week \n\tbefore I got anything resembling \"a good trace\" - they all\n\tcome with BNC connectors!), \"unblanking\" (huh?), and, oh,\n\tjust like my 514 manuals, MANY changes were made along the\n\tway to the schematic - scopes, even with IDENTICAL model \n\tnumbers, have different (better?) response/performance than\n\tothers - how can I pick the better one? Does the rule of the\n\thigher SN the better apply?\n\n\tTake care.\n-- \n/ Filip \"I'll buy a vowel\" Gieszczykiewicz. | Best e-mail \"fmgst+@pitt.edu\"  \\\n| All ideas are mine but they can be yours for only $0.99 so respond NOW!!!! | \n| I live for my EE major, winsurfing, programming, SCA, and assorted dreams. |\n\\ 200MB Drive - Linux has 100MB and MS-DOS has 100MB. MS-DOS is worried ;-)  /\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4993, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: RE: Does God love you?\nOrganization: Kulikauskas home\nLines: 32\n\ndavem@bnr.ca (Dave Mielke) writes,\n\n>  However, God's love is qualified.  The Bible says:\n> \n>      The way of the wicked is an abomination unto the LORD:  but he\n>      loveth him that followeth after righteousness.   Proverbs 15:9\n> \n>      For  the LORD knoweth the way of the righteous: but the way of\n>      the ungodly shall perish.                            Psalm 1:6\n \n  \nI am extremely uncomfortable with this way of phrasing it.  God's love \nis unconditional, unqualified, unfathomable.  We are capable of \nrejecting God's love but He never fails to love us.\n\nThese verses do not show that God's love is qualified but rather that He \nis opposed to evil.\n\nI am uncomfortable with the tract in general because there seems to be \nan innappropriate emphasis on Hell.  God deserves our love and worship \nbecause of who He is.  I do not like the idea of frightening people into \naccepting Christ.  \n\nI see evangelism as combining a way of living that shows God's love with \nputting into words and explaining that love.  Preaching the Gospel \nwithout living the Gospel is no better than being a noisy gong or a \nclanging cymbal.\n\nHere's a question:  How many of you are Christians because you are \nafraid of going to Hell?  How many are responding to God's love?\n\nJayne Kulikauskas/jayne@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4994, "properties": {"category": "sci.space", "text": "From: dfegan@lescsse.jsc.nasa.gov (Doug Egan)\nSubject: Re: *** HELP I NEED SOME ADDRESSES ***\nOrganization: LESC\nLines: 19\n\nIn <1993Apr20.041300.21721@ncsu.edu> jmcocker@eos.ncsu.edu (Mitch) writes:\n\n>    I'm trying to get mailing addresses for the following\n>companies.  Specifically, I need addresses for their personnel\n>offices or like bureau.  The companies are:\n\n>\t- Space Industries, Inc.  (Somewhere in Houston)\n          101 Courageous Dr. \n          Leage City, TX  77573\n          Phone: (713) 538-6000   \n\n         \nGood Luck!\nDoug \n--\n Doug Egan                                  \"It's not what you got -\n Lockheed Engineering and Sciences Co.       It's what you give.\"          \n Houston, TX                                                  -Tesla      \n ***** email:  egan@blkbox.com  *****                                    \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4995, "properties": {"category": "misc.forsale", "text": "From: srscnslt@telesciences.com (SRS Consultant)\nSubject: Bunch-O-PC-Stuff for sale\nOrganization: TeleSciences CO Systems, Inc.\nDistribution: na\nLines: 35\n\n\n\n    Got a few things I want to get rid of...\n\n    Paradise EGA480/Casper EGA Monitor\n\n    1 12 MHz '286 motherboard (DRAM/SIPP)\n    1 16 MHz '286 momboard (DRAM only)\n\n    1 Hayes \"Prodigy special\" 2400b external modem\n\n    1 1Meg SIPP\n    1 256K SIPP\n\n    about 2 Megs DRAM (I believe there's 1M of 120ns, and one of 100 or\n    80ns, but not absolutely sure).\n\n    Also have an XT with 640K, serial board, Hercules board and amber\n    monitor.  The only thing this system is missing is the power supply.\n\n\n    Make an offer on any/all of this stuff, and thanx for contributing\n    to Mitch's V.32bis modem fund.\n\n\n        Mitch\n\n\nNOTE:  Cross-posted to several forsale froups; followups redirected back to me!\n\t\tThere's a reason for that - I don't read these groups.\n-- \nMitch Gorman\tsrscnslt@telesciences.com\t\"Things are not what they seem.\"\n\"Through a crack in Mother Earth,\n\tBlazing hot, the molten rock spills out over the land.\n\t\tAnd the lava's the lover who licks your boots away...\"\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4996, "properties": {"category": "comp.windows.x", "text": "From: gutenkun@fzi.de (Kai Gutenkunst)\nSubject: Archie-Client ?\nOrganization: Forschungszentrum Informatik (FZI), Karlsruhe, Germany\nLines: 4\nDistribution: world\nReply-To: gutenkun@fzi.de\nNNTP-Posting-Host: ikarus.fzi.de\n\nxgetftp-1.2 needs an archie client program.\nDoes anybody know, where I can get it?\n\nThanks in advance, Kai\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4997, "properties": {"category": "sci.crypt", "text": "From: amolitor@nmsu.edu (Andrew Molitor)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Department of Mathematical Sciences\nLines: 16\nDistribution: na\nNNTP-Posting-Host: moink.nmsu.edu\n\nIn article <C5so84.Hxv@demon.co.uk> Graham Toal <gtoal@gtoal.com> writes:\n>Actually, I am *completely* baffled by why Dorothy Denning has chosen\n>to throw away her academic respectability like this.  It looks to me\n>like a *major* Career Limiting Move.  There can be very few people\n>who know what she's been saying who take her seriously any more.\n\n\tActually, I've been following her remarks for some time, with\ninterest. I'm also a member of academia, and her remarks have nothing\nbut elevate her respectability in my eyes. It remains to be seen whether\nyou are the radical fringe, or I.\n\n\tIt is generally an error to assume that your beliefs are held by\nthe majority, or even a sizable minority. Especially when you're seeing\ntens, nay dozens, of people on usenet agreeing with you.\n\n\tAndrew Molitor\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4998, "properties": {"category": "talk.politics.mideast", "text": "From: cl056@cleveland.Freenet.Edu (Hamaza H. Salah)\nSubject: Re: Israeli Terrorism\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 20\nReply-To: cl056@cleveland.Freenet.Edu (Hamaza H. Salah)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nm.z.magil writes:\n\n>It surprises me that this \"story\" has not yet made it to\n>the front pages of the major newspapers (which love to make the State of\n>Israel look as evil as humanly possible)!  Such a story would be \"eaten up\"\n>by some of the papers over here.  So please explain to me why I have never\n>seen nor heard of it before!  - Believe me, I'm not expecting a reply because\n>we both know where the story came from... YOUR DREAMS!!!!\n\ni would like to remind my jewish colleague mzm that much of the\nstories of the holocaust (including the ones in the u.s. holocaust\nmemorial museum) were *not* eaten up by some of the papers.\n\nwe just have to wait to build muesums for it..\n   \n-- \n                  ___________________ cl056@cleveland.Freenet.Edu _____________\n                 (______   _  |   _  |_    \n_____ H A M Z A ________) |-| |_ |-| | |    foo i.e. most foo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 4999, "properties": {"category": "rec.autos", "text": "From: balsamo@stargl.enet.dec.com (Antonio L. Balsamo (Save the wails))\nSubject: Re: Advise needed in buying Automobile\nReply-To: balsamo@stargl.enet.dec.com (Antonio L. Balsamo (Save the wails))\nOrganization: Digital Equipment Corporation\nLines: 20\n\n\nFrom: thwang@mentor.cc.purdue.edu (Tommy Hwang)\nSubject: Advise needed in buying Automobile\n\n   >I am in search of a dependable automobile to purchase.  Below\n   >are its requirements:\n   >\t5. V6 or above\n\n       Most of the cars you mentioned are below (smaller than) V6 engine.\n\n   Tony\n--\n\n                  +--------------------------------------+\n                  |   Name: Antonio L. Balsamo           |\n                  |Company: Digital Equipment Corp.      |\n                  |         Shrewsbury, Mass.            |\n                  | Work #: (508) 841-2039               |\n                  | E-mail: balsamo@stargl.enet.dec.com  |\n                  +--------------------------------------+\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5000, "properties": {"category": "rec.sport.baseball", "text": "From: gspira@nyx.cs.du.edu (Greg Spira)\nSubject: Re: BaseballIsDead\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 10\n\nscott@asd.com (Scott Barman) writes:\n\n>Forget it.  Word has it three divisions with a wild card is just about\n>a done deal.  It has to be decided soon since negotiations with the\n>networks also have to begin soon.\n\nPreliminary negotiations started already, I believe.  Though the word\nis that they are going slooooooooooooooooooooooowly.\n\nGreg \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5001, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Re: Gospel Dating\nLines: 48\n\n>So then, you require the same amount of evidence to believe that I \n>a) own a pair of bluejeans and b) have superhuman powers?\n\nWell, I could use the argument that some here use about \"nature\" and claim\nthat you cannot have superhuman powers because you are a human; superhuman\npowers are beyond what a human has, and since you are a human, any powers\nyou have are not beyond those of a human.  Hence, you cannot have superhuman\npowers.  Sound good to you?\n\nAnyway, to the evidence question: it depends on the context.  In this group,\nsince you are posting from a american college site, I'm willing to take it\nas given that you have a pair of blue jeans.  And, assuming there is some\ncoherency in your position, I will take it as a given that you do not have\nsuperhuman powers.  Arguments are evidence in themselves, in some respects.\n\n>When you say the \"existence of [ sic ] Jesus\", I assume that you \n>mean just the man, without any special powers, etc.\n\nYep.\n\n>Many will agree that it is very possible that a man called Jesus DID \n>in fact live. In fact, I am willing to agree that there was some man named \n>Jesus. I have no reason to believe that there wasn't ever a man.\n\nGood.\n\n>However, most of the claims ARE extradinary: eg virgin birth \n>[ virgin in the sense of not having any sexual intercourse ], resurection, \n>Son of God, etc. THOSE claims require extra evidence.\n\n\"Extra\" evidence?  Why don't we start with evidence at all?\n\nI cannot see any evidence for the V. B. which the cynics in this group would\never accept.  As for the second, it is the foundation of the religion.\nAnyone who claims to have seen the risen Jesus (back in the 40 day period)\nis a believer, and therefore is discounted by those in this group; since\nthese are all ancients anyway, one again to choose to dismiss the whole\nthing.  The third is as much a metaphysical relationship as anything else--\neven those who agree to it have argued at length over what it *means*, so\nagain I don't see how evidence is possible.\n\nI thus interpret the \"extraordinary claims\" claim as a statement that the\nspeaker will not accept *any* evidence on the matter.\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5002, "properties": {"category": "sci.electronics", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Public-domain circuits in commercial applications\nOrganization: U of Toronto Zoology\nLines: 16\n\nIn article <C5GE03.LIF@athena.cs.uga.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>... Patent law says you can build anything\n>you want to, for your own personal noncommercial use...\n\nI'm not up on the details of US patent law, but I think this is incorrect.\nThere is a \"reasonable use\" exemption for *copyright*.  There is none for\n*patents*.  The exemptions from patent licensing are quite narrow; R&D work\nis exempt but personal use is not.  That is, it's okay to experiment with\na patented idea, but not to put it to practical use (e.g. to improve your\nstereo), even if it's only your own private practical use.\n\nOf course, it is unlikely that discreet personal use will ever be detected\nor that you will ever be sued over it.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5003, "properties": {"category": "talk.religion.misc", "text": "From: smithw@col.hp.com (Walter Smith)\nSubject: Re: Part 1 and part 2  (re: Homosexuality)\nOrganization: Colorado Springs IT Center\nLines: 23\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\nhudson@athena.cs.uga.edu (Paul Hudson Jr) writes:\n> In article <m0njXCg-0000VEC@juts.ccc.amdahl.com> rich.bellacera@amail.amdahl.com writes:\n> \n> >Why don't we just stick to the positive and find ways to bring people\n> >to Jesus istead of taking bullwhips and driving them away?\n> \n> Certainly we should not use a bullwhip to drive people from Jesus.\n> But we shouldn't water down the gospel to draw people in. \n\nVery well put.  And, in the case of someone who calls himself a Christian\nbrother yet continues in his sin (and claims that his sin is not a sin at \nall, but perfectly acceptable), what should be done?  Should Christians \njust ignore a sinful lifestyle in order to not offend the person?  By \nreaffirming that the lifestyle is sinful according to the Bible, are \nthey using \"a bullwhip to drive people from Jesus\"? \n\nFrankly, I find the occurance of a homosexual Christian attempting to \npass himself off as a 'straight' Christian in order to have other \nChristians accept his chastisement better a *lot* more serious than \npeople reaffirming that the Bible teaches homosexuality is a sin.  \n\nWalter\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5004, "properties": {"category": "misc.forsale", "text": "From: Tami Grudzinski <tg2n+@andrew.cmu.edu>\nSubject: Your Custom Resume on Disk!!\nOrganization: Freshman, Mathematics, Carnegie Mellon, Pittsburgh, PA\nLines: 29\nNNTP-Posting-Host: po5.andrew.cmu.edu\n\n                       Your Custom Resume On Disk!\n \n                     *Macintosh or IBM compatible!*\n \n\t   Never pay the high cost of copy service again. We will completely\ndevelop and format your custom resume package and mail you the disk or\ntransmit the information via electronic mail within 48 hours! With over\n25 years experience in  the employment industry and a member of the\nNational Resume Writer's Association you can leave the burden of\ndeveloping your resume to us!  You can easily custom edit all\ninformation to target each company and position.\n \n                   Complete $40.00 package includes:\n                   -> Custom developed resume\n                   -> Custom cover letter\n                   -> Custom follow-up letter\n                   -> Custom interview thank you letter\n                   -> Custom job acceptance letter\n                   -> Custom job decline letter\n                   -> Custom resignation letter\n \nLaser printed copies on high-quality paper available upon request. \n    \n                      Contact Vicki Burns via:\n\t\t               E-mail:  tg2n@unix.andrew.cmu.edu\n\t\t\t                  Telephone: (216) 493-6303    \n \n \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5005, "properties": {"category": "comp.os.ms-windows.misc", "text": "Nntp-Posting-Host: 134.58.96.14\nFrom: wimvh@liris.tew.kuleuven.ac.be (Wim Van Holder)\nDistribution: world\nOrganization: K.U.Leuven - Applied Economic Sciences Department\nSubject: Trumpet for Windows & other news readers\nLines: 18\n\nI'm looking for a decent Windows news reader. I've given up on winvn 0.76\nsince it doesn't work very well with the winsock.dll of the IBM TCP/IP for\nDOS 2.1.\n\nWhat the status of Trumpet for Windows? Will it use the Windows sockets ?\nI liked it in DOS but had to abandon it since I started using NDIS to access\nour token ring (results in invalid class error :(\n\n\nBye!\n\nWim Van Holder\nKatholieke Universiteit Leuven          Tel: ++32 (0)16/28.57.16\nDepartement T.E.W.                      FAX: ++32 (0)16/28.57.99\nDekenstraat 2\nB-3000 Leuven                           E-mail: wimvh@liris.tew.kuleuven.ac.be\nBELGIUM                                         fdbaq03@cc1.kuleuven.ac.be\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5006, "properties": {"category": "rec.autos", "text": "From: george.howell%goucher@wb3ffv.ampr.org (George Howell) \nSubject: RE: IMPALA SS GOING INTO\nDistribution: world\nOrganization: Goucher College, Towson, MD\nReply-To: george.howell%goucher@wb3ffv.ampr.org (George Howell) \nLines: 9\n\n-> Does that mean that they're gonna bring back the Biscayne and Bel\n-> Air?\n\nOr how about the 210?\n\ngeorge.howell%goucher@wb3ffv.ampr.org\n\nGeorge\n                                                                                                             \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5007, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: YOU WILL ALL GO TO HELL!!!\nOrganization: Technical University Braunschweig, Germany\nLines: 18\n\nIn article <93108.020701TAN102@psuvm.psu.edu>\nAndrew Newell <TAN102@psuvm.psu.edu> writes:\n \n>>In article <93106.155002JSN104@psuvm.psu.edu> <JSN104@psuvm.psu.edu> writes:\n>>>YOU BLASHEPHEMERS!!! YOU WILL ALL GO TO HELL FOR NOT BELIEVING IN GOD!!!!  BE\n>>>PREPARED FOR YOUR ETERNAL DAMNATION!!!\n>>\n>>readers of the group.  How convenient that he doesn't have a real name...\n>>Let's start up the letters to the sysadmin, shall we?\n>\n>His real name is Jeremy Scott Noonan.\n>vmoper@psuvm.psu.edu should have at least some authority,\n>or at least know who to email.\n>\n \nPOSTMAST@PSUVM.BITNET respectively P_RFOWLES or P_WVERITY (the sys admins)\nat the same node are probably a better idea than the operator.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5008, "properties": {"category": "comp.graphics", "text": "From: cptully@med.unc.edu (Christopher P. Tully,Pathology,62699)\nSubject: Re: TIFF: philosophical significance of 42\nNntp-Posting-Host: helix.med.unc.edu\nReply-To: cptully@med.unc.edu\nOrganization: UNC-CH School of Medicine\nLines: 40\n\nIn article 8HC@mentor.cc.purdue.edu, ab@nova.cc.purdue.edu (Allen B) writes:\n>In article <1993Apr10.160929.696@galki.toppoint.de> ulrich@galki.toppoint.de  \n>writes:\n>> According to the TIFF 5.0 Specification, the TIFF \"version number\"\n>> (bytes 2-3) 42 has been chosen for its \"deep philosophical \n>> significance\".\n>> Last week, I read the Hitchhikers Guide To The Galaxy,\n>> Is this actually how they picked the number 42?\n>\n>I'm sure it is, and I am not amused.  Every time I read that part of the\n>TIFF spec, it infuriates me- and I'm none too happy about the\n>complexity of the spec anyway- because I think their \"arbitrary but\n>carefully chosen number\" is neither.  Additionally, I find their\n>choice of 4 bytes to begin a file with meaningless of themselves- why\n>not just use the letters \"TIFF\"?\n>\n>(And no, I don't think they should have bothered to support both word\n>orders either- and I've found that many TIFF readers actually\n>don't.)\n>\n>ab\n\nWhy so up tight?  FOr that matter, TIFF6 is out now, so why not gripe\nabout its problems?  Also, if its so important to you, volunteer to\nhelp define or critique the spec.\n\nFinally, a little numerology:  42 is 24 backwards, and TIFF is a 24 bit\nimage format...\n\nChris\n---\n*********************************************************************\nChristopher P. Tully\t\t\t\tcptully@med.unc.edu\nUniv. of North Carolina - Chapel Hill\nCB# 7525\t\t\t\t\t(919) 966-2699\nChapel Hill, NC 27599\n*********************************************************************\nI get paid for my opinions, but that doesn't mean that UNC or anybody\n                     else agrees with them.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5009, "properties": {"category": "comp.windows.x", "text": "From: jmg@dxcoms.cern.ch (J.M. Gerard)\nSubject: Re: Xterm w. ansi color/mouse support\nOrganization: CERN European Lab for Particle Physics\nLines: 24\n\nbrown@ftms.UUCP (Vidiot) writes:\n\n>In article <1993Apr4.183419.584@vms.huji.ac.il> klony@vms.huji.ac.il writes:\n><I've had several requests to post any information I've gathered regarding my\n><search for ansi mouse/color xterm source.\n><\n><My only response was from Larry W. Virden who writes:\n><\n><> the mit x11 r4 and r5 both provide mouse escape sequences now.  There\n><> are several color xterm enhancements on export.lcs.mit.edu:/contrib .\n><\n><Indeed I found color_xterm.tar.Z in that directory along with lots of other\n><FUN stuff for X. Thanks Larry.\n\n>I also found it on uunet in /pub/window-sys/X/contrib, for those that can\n>only do anonuucp (like me).  But I noticed that the thing is dated 9/12/90,\n>making it over two years old.  Is this really the latest version?\n\nAre we talking about an xterm which would accept the same escape sequences\nas that for VT340 (or colour decterm/dxterm)? I thought that was called\ncolxterm (and my testing of it shows some oddities that might be bugs or\nmight be my program going wrong).\n\nI'm also unsure of what is meant by \"ansi mouse xterm\"!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5010, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 17\n\n\nIn article <1993Apr13.093300.29529@omen.UUCP> caf@omen.UUCP (Chuck Forsberg WA7KGX) writes:\n>\n>\"Weight rebound\" is a term used in the medical literature on\n>obesity to denote weight regain beyond what was lost in a diet\n>cycle.  There are any number of terms which mean one thing to\n\nCan you provide a reference to substantiate that gaining back\nthe lost weight does not constitute \"weight rebound\" until it\nexceeds the starting weight?  Or is this oral tradition that\nis shared only among you obesity researchers?\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5011, "properties": {"category": "soc.religion.christian", "text": "From: aaronc@athena.mit.edu (Aaron Bryce Cardenas)\nSubject: Re: Questions from a newbie\nOrganization: Massachusetts Institute of Technology\nLines: 7\n\nJerry Kaufman writes:\n\n>The Bible says that He looks on the heart as the\n>final measure. From that perspective, in a grading context, the heart is\n>the final test.\n\nVery true.  One might also say that life is an Open Book Test.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5012, "properties": {"category": "talk.politics.guns", "text": "From: jfs@cco.caltech.edu (Johanes F. Swenberg)\nSubject: Re: My Gun is like my....\nOrganization: California Institute of Technology, Pasadena\nLines: 63\nNNTP-Posting-Host: punisher.caltech.edu\n\nIn article <1993Apr16.194708.13273@vax.oxford.ac.uk> jaj@vax.oxford.ac.uk writes:\n>What all you turkey pro-pistol and automatic weapons fanatics don't seem to\n>realize is that the rest of us *laugh* at you. You don't make me angry, you\n>just make me chuckle -\n\nSteve,\n     It's nice that you find me laughable but I don't quite\nunderstand.  Is it because you think my firearms clash with\nwhat I'm wearing, or that my NRA sticker isn't on straight?\nPlease state your judgement! \n     I find it sad that people won't accept the responsibility\nto defend themselves.  And I laugh with the same contempt you\nhave for me at the sheep who expect the government to protect\nthem.\n\n>What he didn't realize was that we took a photo of the back of his truck, and\n>showed it to our friends when we got back to Vancouver,  Canada (where I'm from\n>originally). People were guffawing at the basic stupidity of such a\n>sticker, and the even greater stupidity of the person who put it there in the\n>first place! :)\n\nYou and your friends sound like a bunch of smug intellectuals.\n\n>Now that I live in Britain, I can see how the rest of the civilized world\n>perceives you gun-nut morons. \n\nOh,   I guess you are.  I'm still waiting for you all-knowing\nacademic-likes to solve the worlds problems.  Let us know when\nyou have the answers or punch lines as this case may be.\n\n>The only problem is that Canada, I hear, is suffering from your national\n>eccentricity, in that easy to purchase weapons are being smuggled cross the\n>border.\n\nSo it's not a \"Yankee\" thing?\nAre Canadians actually as uncivilized as we Americans?\n\n>Hell, here in Britain, the cops don't even carry guns. \n\nWell if it's anything like here it wouldn't matter if they\ndid; they wouldn't be able to use them.\n\n>Hell, as I recall, in People's Court, even Rusty carried a gun! Never\n>know, some plaintiff might go nuts. :)  )\n\nYou shouldn't waste your time watching TV, Steve. It will corrupt\nyour mind.\n\n>\n>Anyway, all you gun nut Rush Limbaugh fans, please *keep* up your diatribes\n>against Brady and other  evil \"Liberal media\" plots  - you 're so damn funny!\n>You provide endless amounts of entertainment in your arguments and examples of\n>why someone should be allowed to carry a piece! Keep us all chuckling!\n\nDitto to you, Self Righteous One.\nLay your derogatory tirade on thick, Steve.  Y'all can keep laughing and\nI'll keep feeling safe and secure.\n\n>\n>Steve\n\n\nJohanes \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.240+0000", "event": "documents", "entityId": 5013, "properties": {"category": "talk.politics.guns", "text": "From: dswartz@osf.org (Dan Swartzendruber)\nSubject: Re: Ax the ATF\nOrganization: Open Software Foundation - Research Institute\nDistribution: usa\nLines: 64\n\n\nA few comments on the ATF's botched handling of this case:\n\n1. Attempting to storm the compound in broad daylight?  The explanation\n   we were given (at least at one point) was that they thought the cult\n   members would be at religious services.  My only comment on this bit\n   of idiocy is that if you're going to operate as a quasi-military unit,\n   you'd better understand basic military tactics.  One cardinal rule\n   is that only a fool plans an operation where if one assumption is\n   incorrect, the operation will fail disastrously.\n\n2. We were told that ATF got four agents killed because they were\n   outgunned, they didn't expect such heavy resistance.  When\n   questioned about why such an overwhelming military-style assault\n   was planned, we were told that it was because the cultists were\n   thought to be heavily armed.  Can you say contradictory?  I knew\n   you could!\n\n3. The BATF has had a bad reputation for years as a bunch of arrogant,\n   hotdoggers.  I was talking to relatives a couple of weeks ago and\n   referred to them as a bunch of Crockett and Tubbs wannabes.  I'm\n   more than ever convinced that's right on target.  An anecdote not\n   related to the Waco fiasco is that apparently the BATF screwed up\n   some of the evidence in the World Trade Center bombing.  There's\n   now an excellent chance some of the forensic evidence gathered by\n   the FBI will not be admissible in court.  This is not hearsay.  I\n   was told this by a relative of my wife's who happens to be an FBI\n   agent.  His opinion of the BATF was, ummm, well, let's just say\n   uncomplimentary.\n\n4. I have *still* not been presented with one iota of evidence that\n   the BD's had *any* of the alleged illegal weaponry which was the\n   reason for the raid in the first place.  BTW, we're *still* hearing\n   this justification.  AG Reno, on CNN yesterday, made references\n   to this issue, without any substantiation.  She also waved around\n   the \"He's a child abuser and we heard he was beating the children!\"\n   flag.  Sigh.\n\n5. A point re the Feds in general: their handling of the whole siege\n   reflected a complete lack of understanding of the probable thought\n   processes of the cultists.  AG Reno said they pushed the button\n   because they were afraid a mass suicide was in the offing.  My\n   only comment on that is that if the cultists were that close to\n   the edge, what the hell did she think their reaction would be to\n   an hours-long assault on the compound where holes were punched in\n   the walls and CS gas pumped in?  If I were a BD, I'd expect the\n   forces of the godless government to assault me at any time.  In\n   that light, whether they torched themselves or drank Jim Jones\n   Kool-Aid is irrelevant.  Also, look at how the siege was conducted:\n   Bright lights, loud rock music, cutting off communications and\n   other contact with the outside.  All measures designed to make the\n   BD's feel more and more isolated and threatened.  This might have\n   been a great strategy - if they were dealing with criminals.  As it\n   was, it looks to me like everything they did fed into Koresh's\n   paranoid delusions.\n\n\n\n\n-- \n\n#include <std_disclaimer.h>\n\nDan S.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5014, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kasajian@netcom.com (Kenneth Kasajian)\nSubject: Re: How can I use the mouse in NON-Windows applications under MS-WINDOWS ?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 23\n\nwnkretz@ikesg1.energietechnik.uni-stuttgart.de (Oliver Kretzschmar) writes:\n\n\n\n>   Hey,\n\n>   could somebody tell me, how it is possible to work with the mouse\n>   in a NON-Windows application, which runs in an window. We use\n>   MS-WINDOWS 3.1 and have CLIPPER applications. Exists there any\n>   routines or something else ? Please mail me your informations.\n\n>   Thanks for your efforts,\n\n>     Oliver\n>-- \n> NAME : O.Kretzschmar                      Inst.IKE / University Stuttgart\n> PHONE: +49 711 685 2130                           Pfaffenwaldring 31\n> FAX  : +49 711 685 2010                            7000 Stuttgart 80\n> EMAIL: wnkretz@ikesg1.energietechnik.uni-stuttgart.de\n\nVery simple.  You have to have the MOUSE.COM or MOUSE.SYS loaded in DOS\nbefore you run Windows.  Note that you don't need to have these files loaded\nto use the mouse in Windows.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5015, "properties": {"category": "misc.forsale", "text": "From: cliff@engin.umich.edu (clifford  kaminsky)\nSubject: Monitor, add on card, Apple IIe computer\nKeywords: monitor I/O Apple computer\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 30\n\nI need to sell the following items:\n\nan Apple IIe computer\nincludes:\n  300 baud modem\n  80 columns\n  Zenith green monitor\n  tons of software and manuals\n\ncontroller & I/O card\n  a Western Digital WDAT-440\nincludes:\n  Winchester controller\n  Floppy controller\n  2 serial ports\n  parallel port\n\n  No docs, but jumper settings are printed on the card.\n\nAn AAMAZING  1024x768 .28 dot pitch SVGA monitor\ninterlaced 14\" unlimited colors\nincludes:\n  Documentation\n  power cord and connecting cable\n\nMust sell these items by May 4.  Make me an offer on any of them.\n\n-Cliff Kaminsky\ncliff@engin.umich.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5016, "properties": {"category": "rec.autos", "text": "From: tomm@hank.ca.boeing.com (Tom Mackey)\nSubject: Re: WARNING.....(please read)...\nOrganization: BoGART Graphics Development\nLines: 33\n\nIn article <NEILSON.93Apr15135919@seoul.mpr.ca> neilson@seoul.mpr.ca (Robert Neilson) writes:\n>[sorry for the 0 auto content, but ... ]\n>\n>> That is why low-abiding citizens should have the power to protect themselves\n>> and their property using deadly force if necessary anywhere a threat is \n>> imminent.\n>>\n>> Steve Heracleous\n>\n>You do have the power Steve. You *can* do it. Why don't you? Why don't you\n>go shoot some kids who are tossing rocks onto cars? Make sure you do a good\n>job though - don't miss - 'cause like they have big rocks - and take it from\n>me - those kids are mean.\n\nThat is absolutely correct.  They have a streak of meanness that runs much\ndeeper and stronger than anything I ever experienced even during the height\nof the 60's racial struggles.  I am absolutely convinced that there are\nkids out there today that have no concept of right and wrong, but have the\nhuman intelligence which is turning them into the greatest predators that\nhave ever walked the earth.  They will prevail unless the rest of humanity\ndecides that it is in their best interest to stand up against these feral\nhumans, and for individuals to start taking some responsibility for their\nown protection.  In a state in which the individuals turn to the authorities\nand police for protection, the police and government is soon composed of\nthe very feral humans that they originally sought protection from.\n\nGee, I guess you touched my hot button.  I'd better go cool off somewhere.\n\n\n-- \nTom Mackey          (206) 865-6575        tomm@voodoo.ca.boeing.com\nBoeing Computer Services               ....uunet!bcstec!voodoo!tomm\nM/S 7K-20,       P.O. Box 24346,       Seattle, WA       98124-0346\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5017, "properties": {"category": "comp.windows.x", "text": "From: tim@kimba.catt.citri.edu.au (Tim Liddelow)\nSubject: Help building X11R5 with gcc\nKeywords: X11R5, gcc\nOrganization: CATT Centre at CITRI, Melbourne, Australia\nLines: 16\n\nCan people please send me any hints on building X11R5 with gcc 2.3.3 ?  Is\nthere any pitfalls to be avoided ?  Any hints ?  I would appreciate hearing other\npeoples' stories on this.\n\n--tim\n\n\n-- \n________________________________________________________________________________\n  Tim Liddelow                                          for(;;) fork();\n  Systems Programmer\n  Centre of Advanced Technology in Telecommunications   My brain on a bad day.\n  CITRI, Melbourne, Australia                           \n  internet : tim@kimba.catt.citri.edu.au                \n  Phone : +61 3 282 2455   Fax : +61 3 282 2444\t        \n________________________________________________________________________________\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5018, "properties": {"category": "rec.sport.hockey", "text": "From: mac18@po.CWRU.Edu (Michael A. Cornell)\nSubject: Hey FLYERS Fans!\nArticle-I.D.: usenet.1pqvti$74p\nReply-To: mac18@po.CWRU.Edu (Michael A. Cornell)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 23\nNNTP-Posting-Host: slc12.ins.cwru.edu\n\n\nDid you ever notice how many people on the net have trouble in the\ncomparitively easy task of spelling the nick name of our fair city?  I\nnever knew that Philadelphia becomes Phillie or Philli when spoken of.  So\nfor all you who don't know yet here's a _little_ clue.\n\n\tIT IS SPELLED:       P H I L L Y\n\nOK...thank you.\n\nOh yeah, about that drug-induced trade rumor....I don't think the Sniders\nare that stupid...the rumor you should be looking into is Mike Keenan\ncoming back to coach the FLYERS.\n\nlater\n\nMike\n\n-- \nMike Cornell     | \"There are a great many people in the country today who,\nmac18@po.cwru.edu|  through no fault of their own, are sane.\" -Monty Python\n----------------------------------------------------------------------------\nLet's Go Flyers!  Stanley Cup in '94!  \"OH! My brain hurts!\"- Mr D. P. Gumby\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5019, "properties": {"category": "sci.crypt", "text": "Subject: Re: text of White House announcement and Q&As on clipper chip encryption\nFrom: uni@acs.bu.edu (Shaen Bernhardt)\nDistribution: na\nOrganization: Boston University, Boston, MA, USA\nLines: 51\n\nIn article <1qmugcINNpu9@gap.caltech.edu> hal@cco.caltech.edu (Hal Finney) writes:\n>The key question is whether non-Clipper encryption will be made illegal.\n>\n>>     The Administration is not saying, \"since encryption\n>>     threatens the public safety and effective law enforcement,\n>>     we will prohibit it outright\" (as some countries have\n>>     effectively done); nor is the U.S. saying that \"every\n>>     American, as a matter of right, is entitled to an\n>>     unbreakable commercial encryption product.\"  There is a\n>>     false \"tension\" created in the assessment that this issue is\n>>     an \"either-or\" proposition.  Rather, both concerns can be,\n>>     and in fact are, harmoniously balanced through a reasoned,\n>>     balanced approach such as is proposed with the \"Clipper\n>>     Chip\" and similar encryption techniques.\n>\n>The clear middle ground implied by these statements is to say that Americans\n>have the right to Clipper encryption, but not to unbreakable encryption.\n>This implies that, ultimately, non-Clipper strong encryption must become\n>illegal.\n\n[Text deleted, no value judgement implied]\n\n>It's shocking and frightening to see that this is actually happening here.\n>\n>Hal Finney\n>hal@alumni.caltech.edu\n\nMore than shocking.  What this says to me is no less than that government\nis very interested in monitoring the public.  This does more than scare me,\nit mortifies me.\n\nPGP and RIPEM must become widespread enough to resist what Mr. Finney has\n[IMHO correctly] identified as the next logical step.  What was once an\nacademic discussion with regard to concealing cyphertext, has now become\na real consideration.\n\nThe rhetoric that the clinton administration seems obsessed with, harmony,\neither or propositions, tension, tells me that they know how difficult\nit will be to sell this proposition.\n\nThe phrase I hear more and more is \"I can't believe this is actually happening\nhere.\"  Call me conserative, Clinton was a huge mistake that we'll all be\npaying for tommorow and many years from now.\n\nHave we approached the age of speakeasy public key depositiories?\n\nuni (Dark)\n-- \nuni@acs.bu.edu  ->  Public Keys by finger and/or request\nPublic Key Archives at <pgp-public-keys@junkbox.cc.iastate.edu>\nSovereignty is the sign of a brutal past.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5020, "properties": {"category": "sci.med", "text": "From: jcherney@envy.reed.edu (Joel Alexander Cherney)\nSubject: Epstein-Barr Syndrome questions\nArticle-I.D.: reed.1993Apr23.034226.2284\nReply-To: jcherney@reed.edu\nOrganization: Reed College, Portland, OR\nLines: 19\n\nOkay, this is a long shot.\n\nMy friend Robin has recurring bouts of mononucleosis-type symptoms, very  \nregularly.  This has been going on for a number of years.  She's seen a  \nnumber of doctors; six was the last count, I think.  Most of them have  \nsaid either \"You have mono\" or \"You're full of it; there's nothing wrong  \nwith you.\"  One has admitted to having no idea what was wrong with her,  \nand one has claimed that it is Epstein-Barr syndrome.\n\nNow, what she told me about EBS is that very few doctors even believe that  \nit exists.  (Obviously, this has been her experience.)  So, what's the  \nstory?  Is it real?  Does the medical profession believe it to be real?\n\nHas anyone had success is treating EBS?  Or is it just something to live  \nwith?  Thanks for your assistance.\n\nJoel \"The Ogre\" Cherney\njcherney@reed.edu\nOf the Horde\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5021, "properties": {"category": "comp.windows.x", "text": "Subject: Automated X testing\nFrom: mark@trident.datasys.swri.edu (Mark D. Collier)\nOrganization: Southwest Research Institute\nLines: 13\n\nDoes anyone know what is available in terms of automated testing\nof X/Motif applications. I am thinking of a system which I could\nprogram (or which could record events/output) with our verification\ntest procedures and then run/rerun each time we do regression\ntesting. I am interested in a product like this for our UNIX\nprojects and for a separate project which will be using OpenVMS.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nMark D. Collier                      Southwest Research Institute\nSenior Research Analyst              Automation and Data Systems Division\nVoice: (512) 522-3437                Data Systems Department\nFAX:   (512) 522-5499                Software Engineering Section\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5022, "properties": {"category": "sci.space", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: How many read sci.space?\nLines: 11\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nThere are actually only two of us.  I do Henry, Fred, Tommy and Mary.  Oh yeah,\nthis isn't my real name, I'm a bald headed space baby.\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\npyron@skndiv.dseg.ti.com          |solutions, not gestures.\nPADI DM-54909                     |\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5023, "properties": {"category": "alt.atheism", "text": "From: MANDTBACKA@FINABO.ABO.FI (Mats Andtbacka)\nSubject: Re: YOU WILL ALL GO TO HELL!!!\nIn-Reply-To: <JSN104@psuvm.psu.edu>'s message of Fri, 16 Apr 1993 15:50:02 EDT\nOrganization: Unorganized Usenet Postings UnInc.\nX-News-Reader: VMS NEWS 1.24\nLines: 12\n\nIn <93106.155002JSN104@psuvm.psu.edu> <JSN104@psuvm.psu.edu> writes:\n\n      Who cares what the fellow wrote anyway? I mean, it came from\nPSUVM, so how could it possibly have been of any importance?\n\n=====\n\n(disperse smileys until no longer offended)\n\n\n-- \n  Disclaimer?   \"It's great to be young and insane!\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5024, "properties": {"category": "misc.forsale", "text": "From: klj@titan.ucs.umass.edu (KATHERINE L JEFFERS)\nSubject: MAC SE FORSALE\nOrganization: University of Massachusetts, Amherst\nLines: 11\nDistribution: usa\nNNTP-Posting-Host: titan.ucs.umass.edu\n\nThis is a repost of an earlier.  Thanks to several of you for\noffering advise on realistic prices.\n\nMAC SE/ 2.5 megs ram, 20 meg hard disk, 800 K Floppy.\nIn absolutely perfect condition. \n\nIncludes Word 5, pagemaker, quark xpress, quicken and the \nlatest versions of about a dozen other programs.\n\nPrice: 475.00\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5025, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nDistribution: na\nLines: 35\n\nIn article <C4tsHu.Ew6@magpie.linknet.com>, manes@magpie.linknet.com (Steve Manes) writes:\n\n>\n>What relevance are ALL homicides in this debate?  What do you think gun\n>control advocates are saying: that if we get rid of all handguns we will\n>live in a homicide-free world?\n\nThey sure make it sound like that.\n\n>\n>The issue is guns, not baseball bats.  Even a simpleton knows that\n>he stands a better chance of surviving an attack with a baseball bat...\n>certainly of outrunning a bat-wielding assailant.\n>\n\nEven a simpleton knows a baseball bat is considered a deadly weapon. \nIf one cannot run away (e.g. old, infirm, even middle-aged if the\nassailant is younger), a handgun is the most effective means of\ndefense. You won't even have to fire a shot 98% of the time.\n\n>As for knives, see my earlier post.  I'd much rather face a knife\n>than a gun, thanks.  Fortunately, the best defense against a knife isn't\n>another knife.  Anyone trained in unarmed self-defense won't have\n>much of a problem disarming a knife assailant untrained in knife\n>assault (which probably means 99.9% of knife assailants).\n\nAny real streetfighter (and there are LOTS of them), with or without a\nknife, will kick the living sh** out of most people \"trained in\nunarmed self defense\".  For the majority of people, a gun is the most\neffective form of self defense.\n\nAl\n[standard disclaimer]\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5026, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: Yankees win home opener\nDistribution: usa\nLines: 7\n\nIn article <1993Apr14.175545.3528@alleg.edu>, millits@yankee.org (Sam\nMillitello) says:\n\ni'm telling you, sam, three l's.  call up mom and ask.\n\nbob vesterman.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5027, "properties": {"category": "misc.forsale", "text": "From: stxtnt@rs733.GSFC.NASA.Gov (Nigel Tzeng)\nSubject: Re: << AMIGA 3000, etc FOR SALE >> as of 4/2/93\nIn-Reply-To: dwilson@csugrad.cs.vt.edu's message of 2 Apr 93 20:09:59 GMT\nOrganization: Goddard Space Flight Center, Greenbelt, Md, USA\nLines: 26\n\nIn article <1pi6in$isg@csugrad.cs.vt.edu> dwilson@csugrad.cs.vt.edu (David Wilson) writes:\n\n\n   ~~~~~~~~~~FOR SALE as of 5PM 4/02/93~~~~~~~~~~\n\n   1       AMIGA 3000UX    25mhz, unix compatible machine w/100 meg Hard\n\t\t   Drive, 4 meg RAM, no monitor, keyboard (ESC and ~ keys \n\t\t   broken)\n\t\t   ASKING PRICE:   $1700 OBO.\n\nMind my asking why you're selling a used machine with a damaged\nkeyboard for the about the same price as a brand new A4000/030\n(A4000-EC030/4 megs/120meg IDE HD/HD Floppy/v3.0 OS - $1899)?\n\nI'd like to get an A3000 locally for something reasonable like less\nthan 1K without monitor.  Brand new the A3000-25mhz/50 meg HD/HD\nfloppy/2.1 ROM isn't running for more than $1400 or so.\n\nConsidering it's damaged, probabably has a real old version of the OS\nI'll offer $700.  Don't laugh...my A2000 isn't worth more than\n$250-$300 these days.\n\nN. Tzeng\n--\nNigel Tzeng\n.sig under construction\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5028, "properties": {"category": "talk.politics.misc", "text": "From: andersom@spot.Colorado.EDU (Marc Anderson)\nSubject: response\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 113\n\nFucking news reader... I don't think this got posted...  If it did, ignore\nit this time.\n\n(A response to Korey)\n\n------------ begin my response -----------------\nIn article <1plorlINNslt@matt.ksu.ksu.edu> kkruse@matt.ksu.ksu.edu (Korey J. Kruse) writes:\n>lamontg@u.washington.edu writes:\n>[...]\n>>\n>>well, i just did a quick medline scan and came up with the following article\n>>by Tashkin that reviews the literature, i'd probably start here...\n>\n>>         Document 13\n>>AN   90273700.  9007A.\n>>AU   Tashkin-D-P.\n>>IN   Department of Medicine, University of California, School of Medicine,\n>>     Los Angeles 90024.\n>>TI   Pulmonary complications of smoked substance abuse.\n>>RF   REVIEW ARTICLE: 61 REFS.\n[...]\n>Why isn't this information in the FAQ on marijuana ?    If we expect\n>people to think we are telling them the truth about drugs, why does\n>this group constantly refute every negative thing about almost all\n>drugs.     \n\nMaybe because the claims deserve refute?  The above abstract lists various\npossible links to cannabis use (unfiltered almost guaranteed) and lung\nproblems.  Someone may get overly excited when they see that article, but \nwithout actually digging up the study and seeing how the studies gathered \ntheir data it really doesn't tell you shit.  I'm going to track down that\nstudy hopefully tomarrow.\n\n[...]\n\n>I never claimed pot was more or less damageing than\n>cigarettes......I was just trying to keep ourselves honest.   If we are\n>going to educate kids...and adults...and tell them the truth about drugs\n>don't you think a much better approach would be to list the pro's and\n>con's of each type of drug.   \n\nWhat justifies _the_ truth about drugs?  Research?  What sort of \nresearch?  Correlational data can help establish a theory, but it does not\nprove anything.\n\n>How can you expect someone to make a\n>decision when the PDFA on one hand says that all drugs are absolutely\n>BAD BAD BAD.....and this newsgroup consistently refuses to admit that\n>drugs like heroin even have negative side effects.    \n\nHeroin _is_ a relatively safe drug.  What makes it unsafe are IV administration\nand shit like adulterants.  There are side effects, like withdrawal, but they\neffect people differently.  \n\n>I've seen numerous\n>posts claiming heroin has lower addiction rates that cigarettes, which\n>might be true, but it is very deceiving, because heroin is much more\n>harmful drug to be addicted to than cigarettes.   Heroin addicts are\n>far more prone to end up in the gutter and destroy their family and\n>friends than people addicted to just cigarettes.    \n\nStereotypical statement.  I know people who use heroin and opiates that \nfunction just fine in society.  \n\n>This group does\n>provide some very good information to people, but I am worried that\n>the pro-legalization/pro-decriminalization movement is being hurt when\n>it refuses to admit that any/some drugs are VERY harmful....\n\nName some of these drugs so we can debate about them more specifically.\n\n[...]\n>      I'm all for legalization of most drugs, but when someone asks me\n>about relative risks of certain drugs or possible bad side effects, I\n>would like to know them....and not be given the run-around by this\n>group....which recently tried to tell me that pot was not harmful in\n>any manner to people's lungs.     \n\nNO, NO, NO.  (or at least I haven't been arguing this).  there is not enough\ndata to form a scientific conclusion.  that _doesn't_ mean that cannabis\nis benign to users' lungs.  we can form all the theories we want, but they\nare only theories.  some theories are supported by more evidence than others,\nand that makes them stronger.  \n\n>I think it's time y'all re-examined\n>your positions and try to understand that you cannot fight the PDFA\n>by calling them a bunch of liars....\n\nthe hell I can't!  they state *UN-JUSTIFIED CONCLUSIONS* *AS FACT* as\na *POLITICAL* strategy to stop drug use.\n\n[...]\n\nIn general, I somewhat see what you're saying.  And people like Jack Herer\ncontribute to this.  This has been quite a big mind-fuck for me recently,\nand I've pretty came to the conclusion that you can't trust _ANYBODY_ by\nword of mouth alone -- my attitude about the general population has\ndecreased significantly.  \n\ngotta run to class..\n\n-marc\nandersom@spot.colorado.edu\n\n\n>    _   _   _                _       _   _    kkruse@ksuvm.bitnet\n>|/ | | |_) |_ \\ /     |  |/ |_) | | (_` |_    kkruse@ksuvm.ksu.edu\n>|\\ |_| | \\ |_  |    (_|  |\\ | \\ |_| ._) |_    kkruse@matt.ksu.edu\n\n\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5029, "properties": {"category": "misc.forsale", "text": "From: keith@radio.nl.nuwc.navy.mil\nSubject: Tektronix 453 scope for sale\nArticle-I.D.: radio.621\nLines: 19\nX-Received: by usenet.pa.dec.com; id AA26712; Tue, 6 Apr 93 14:51:58 -0700\nX-Received: by inet-gw-1.pa.dec.com; id AA16134; Tue, 6 Apr 93 14:51:53 -0700\nX-To: misc.forsale.usenet\n\nTektronix 453 scope for sale:\n\n  - 50MHz bandwidth\n  - portable (NOT one of the 5xx series boatanchors! :^)\n  - delayed sweep\n  - works fine\n  - I don't have the manual (they are available from various places)\n  - no probes\n\n  - $275 + shipping\n\nEmail me for more info...\n\nRegards,\nKeith\n\n----\nKeith Kanoun, WA2Q\nkdk@radio.nl.nuwc.navy.mil\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5030, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: buckel@winx06.informatik.uni-wuerzburg.de (bernhard buckel)\nSubject: Re: HELP! MY HARD DRIVE ID MESSED!\nOrganization: University of Wuerzburg, Germany\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 42\n\nDave (david@c-cat.UUCP) wrote:\n: vazzag@vccnw13.its.rpi.edu (Gregory Anthony Vazzana) writes:\n\n: {> \n: {> \tHowdy,\n: {> \n: {> \tThe other day I was using Norton's SpeedDisk to optimize my Seagate(125MB) h\n: {> problem persisted.  I backed up all essential data and decided to reformat\n: {> my hard drive.  When I attempted this it got to the 279th clylinder 8th\n: {> head and gave me an error message saying that it \"Could not find the sector\"\n: {> I have tried everything I can think of.  Now I can't even access my hard driv\n: {> to write information to it.  I tried to boot up with my MS-DOS disks but MS-D\n: {> tries to reformat my hard drive and gets 29% of the way through to say \"Error\n: {> formatting hard drive. Press f3 to exit\"  I tried to scan my hard drive\n: {> for viruses but I can;t access it and I get a message (When I try to do a dir\n: {> saying \"Error INT 24\"  Can anyone Help me?  I have no idea what to do. \n: {> \n: {> Thanks in advance for any help!\n: {> \n: {> \t\t\t\tGreg\n\n: try a bios level format via the debug command.\n: -G=xxxx:5  where xxxx is the Hex address of the hd controller bios\n: location.\n: if this will not work, a last resort would be to take a large magnet\n: to the hard disk, but this has to be done properly or you will cause\n: or could cause more damage than has been done already.\n\n: disclaimer: I am not responsible for your actions by directly applying\n: a large magnet to your hard disk.\n\n: if done correctly the magnet trick will wipe out everything on the\n: hard disk _COMPLETELY_ and a low level BIOS format might succeed\n\n\n:                                                        -David\n\n: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n: China Cat BBS                               c-cat!david@sed.csc.com\n: (301)604-5976 1200-14,400 8N1               ...uunet!mimsy!anagld!c-cat!david \n: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5031, "properties": {"category": "sci.crypt", "text": "From: cme@ellisun.sw.stratus.com (Carl Ellison)\nSubject: Re: Clipper Crypto\nOrganization: Stratus Computer, Software Engineering\nLines: 26\nDistribution: inet\nNNTP-Posting-Host: ellisun.sw.stratus.com\nKeywords: crypto, EFF\n\nI sent a response to the White House at\n\n\t0005895485@MCIMAIL.COM (White House)\n\nand received a nice, automatic reply from MICMAIL noting, in passing, that\nif I had included a SNail address, I would get a reply in due course.\n\nFor those who care, my reply was:\n\n\t1.\tyes, let's protect the voice network\n\n\t2.\tprivately-developed crypto has always been available and\n\t\talways will be -- so let's think about how to do law\n\t\tenforcement given that fact not about how to hope to\n\t\tlegislate against it\n\n\t3.\tmy needs for crypto as a system designer are not met by the\n\t\tClipper Chip.  I want freely to export uses of algorithms\n\t\t(like DES & RSA) which are already freely available in the\n\t\tdestination country\n\n-- \n - <<Disclaimer: All opinions expressed are my own, of course.>>\n - Carl Ellison                                        cme@sw.stratus.com\n - Stratus Computer Inc.       M3-2-BKW                TEL: (508)460-2783\n - 55 Fairbanks Boulevard ; Marlborough MA 01752-1298  FAX: (508)624-7488\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5032, "properties": {"category": "soc.religion.christian", "text": "From: s0612596@let.rug.nl (M.M. Zwart)\nSubject: catholic church poland\nOrganization: Faculteit der Letteren, Rijksuniversiteit Groningen, NL\nLines: 10\n\nHello,\n\nI'm writing a paper on the role of the catholic church in Poland after 1989. \nCan anyone tell me more about this, or fill me in on recent books/articles(\nin english, german or french). Most important for me is the role of the \nchurch concerning the abortion-law, religious education at schools,\nbirth-control and the relation church-state(government). Thanx,\n\n                                                 Masja,\n\"M.M.Zwart\"<s0612596@let.rug.nl>\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5033, "properties": {"category": "misc.forsale", "text": "From: danj@iat.holonet.net (dana james)\nSubject: Re: trade my 14.4k modem for your PC/XT\nOrganization: HoloNet National Internet Access System\nLines: 5\n\n\n\nemail your replies to:\n\ndanj@holonet.net\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5034, "properties": {"category": "rec.autos", "text": "From: wrat@unisql.UUCP (wharfie)\nSubject: Re: SHO clutch question (grinding noise?)\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 9\n\nIn article <C5H6F8.LDu@news.rich.bnr.ca> jcyuhn@crchh574.NoSubdomain.NoDomain (James Yuhn) writes:\n>   That's not the clutch you're hearing, its the gearbox. Early SHOs have\n>   a lot of what is referred to as 'gear rollover' noise. You can generally\n\n\tI have one of the first SHOs built, and _mine_ doesn't make\nthis noise.\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5035, "properties": {"category": "sci.crypt", "text": "From: neuhaus@vier.informatik.uni-kl.de (Stephan Neuhaus (HiWi Mattern))\nSubject: Re: Do we need the clipper for cheap security?\nNntp-Posting-Host: vier.informatik.uni-kl.de\nOrganization: University of Kaiserslautern, Germany\nLines: 39\n\ngtoal@gtoal.com (Graham Toal) writes:\n\n>Can someone tell me if hardware compression is or is not needed to run\n>digital speech down 14.4K?  I think it is; I've heard it's not.  Lets\n>say 8 bit samples.  Would *raw* data at the corresponding sampling rate\n>be usable?  If not, how fancy does the compression need to be?\n\nNote: I am *not* a cable freak, so I might have completely\nmisunderstood what you said.  Also, my math is frequently noted for\nbeing wrong, so you'll better check the calculations yourself.\n\nI assume that 14.4K means 14.4K Bits.  So if we assume one start and\none stopbit, and no protocol overhead, the effective number of bytes\nper second is 1.44K.\n\nLet's also assume that you do not want to transmit your speech in\nstereo, so that you can send 1,440 samples/sec.  This corresponds to a\nNyquist frequency of 720 Hz, which should be too low, especially if\nyou think about the 8-bit low quality sound.  Furthermore, your D/A\nconverter will probably not present you with a signal that has been\ncut off at 720 Hz, but will instead alias in all the higher\nfrequencies.  (Although you can definitely build a filter to overcome\nthat problem.)\n\nOn the other hand, speech should be easily compressible.  For example,\nyou could form power spectra, or you could simply band-pass filter and\nthen linearize the fourier transforms.  It won't be CD quality sound,\nbut it'll be discernible.  The power spectrum method is very good in\nthat respect.  I have once programmed such a software compressor, and\ncompression rates of 90% with relative errors due to linearization of\nless than 5% were common.  Although I must say that these were musical\nsounds, not speech.\n\nHave fun.\n\n-- \nStephan <neuhaus@informatik.uni-kl.de>\nsig closed for inventory.  Please leave your pickaxe outside.\nPGP 2.2 public key available on request.  Note the expiration date.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5036, "properties": {"category": "rec.sport.hockey", "text": "From: jca2@cec1.wustl.edu (Joseph Charles Achkar)\nSubject: Re: Numerical Nothingness\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nLines: 38\n\nIn article <1993Apr18.140401.18439@freenet.carleton.ca> ad684@Freenet.carleton.ca (Bob Wilson) writes:\n>\n>Mario averaged 2.66666666666666666666666666666666666666666666\n>points per game ... the Antigretz\n\nGretzky averaged 2.69 pts/game\n\n>Mario projected over 80 games.\n>213 points (beats Wayne's record by 1)\n\nCheck your information before posting, Gretzky's record is 215 pts in 80 games.\n\n\n>Over 84 games 97 g + 127 a = 224 points.\n>\nOver 84 games, Gretzky's total projected 226 points.\n\n>Pitt's winning percentage with Mario (45-10-5) over 84 games\n>-> 133 points.   Would this have been a record?\n>I know Mtl had 132 one year.\n\nThe 76-77 Canadiens had .825 percentage, 132 pts in 80 games. (60-8-12).\nThe 29-30 Bruins had a .875 winning percentage.\nAlso the 77-78 Canadiens had a .806 percentage with a 59-10-11 record.\n\n>Bob Wilson\n>ad684@freenet.carleton.ca\n\n  %*%*%*%**%*%%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*\n  *   __  ______________         ____________________________________    % \n  %   \\ \\_)____________/         A L L E Z   L E S   B L U E S  ! ! !    * \n  *    \\    __________/          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    % \n  %     \\    ________/                                                   *\n  *      \\   _______/                  Joe Ashkar                        % \n  %       \\  \\                         Contact for the Blues             *\n  *        \\  \\  SAINT LOUIS           jca2@cec1.wustl.edu               % \n  %        (___)             BLUES                                       * \n  *%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*% \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.241+0000", "event": "documents", "entityId": 5037, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jmilhoan@magnus.acs.ohio-state.edu (JT)\nSubject: HELP: Need modem info for Duo 210\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 10\n\n\nHi... what alternatives to the Express modem do Duo owners have (if\nthey want to go at least 9600 baud)?\n\nEvery place in town says they are back ordered, and part of the reason\nI want a laptop mac is so I can use it as a remote terminal from\nwherever I am, but I really would hate to have to wait 2 months to get\na modem in or have to settle with 2400 baud.\n\nThank you,\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5038, "properties": {"category": "talk.religion.misc", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: The fact of the theory\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 74\n\nIn article <C5u6p5.5nx@usenet.ucs.indiana.edu>, adpeters@sunflower.bio.indiana.edu (Andy Peters) writes:\n\n[...stuff deleted...]\n\nAndy-- I think we do agree, given your clarification of how we were \neach using the terms fact and theory.  I'll only add that I\nthink perhaps I feel more strongly about separating them,\nthough your usage is quite valid.\n\n>Note that the fact of evolution is still a theory.  In other words, it\n>could, theoretically, still be falsified and rejected.  But since it's\n>so predictive, and so consistently supported by evidence, it seems\n>pointless to explicitly try to falsify it anymore.\n\nI'll add here that any falsification or rejection does not in any way\nreduce its current usefulness.  So long as it accurately predicts or \ndescribes things we can observe.\n\nNot to be a pain in the ass, but is there any reason you don't\njust say _the theory of evolution_ rather than the _fact of evolution\nis still a theory_.  I'm asking because this whole thread got started\nbecause I was bothered by a post that referred to _the fact of evolution_,\nbasically leaving off the phrase _is still a theory_.  Without a \nclarification, like the one you just gave, just saying _the fact of\nevolution_ has a very different meaning to me.\n>\n>[description of atomic theory, and alternative theories of gravity, deleted]\n>>Both are very useful models that \n>>have no religious overtones or requirements of faith, unless of course you \n>>want to demand that it is a factual physical entity described exactly \n>>the way the theory now formulated talks about it.\n>\n>Here is where you fail to make an important distinction.  You have\n>shoehorned the _facts_ of the _existence_ of gravity and atoms and\n>evolution into one category with the _theories_ which have been\n>proposed to explain the _mechanisms_.  The existence of these things\n>is so predictive as to be considered fact.  The mechanisms, on the\n>other hand, are still worth discussing.  \n\nI'm not sure I agree here.  Again, it may be because I feel stronger\nabout separating terms.  I was trying to say that the _theories_\nproposed to explain the _mechanisms_ and the _mechanisms_ themselves\nare the only realities here.  It is the existence of mechanisms, not \nthe things themselves, that are so predictive as to be considered \nfact (as you would say).  There aren't really little planetary particle \nsystems called atoms out there.  Or I should say, and more to my original \npoint, it would be a leap of faith to say there are, because we observe only \nthe mechanisms.  There is no need to _believe_ there are _actually_\natoms out there as we have decided to think about them.  It's enough\nto discuss the mechanisms.  At any rate, I'm not sure I am being \nany clearer than before, but I thought it was worth a shot.\n\nThe bottom line, though, is I think we agree on two fundamental ideas:\n\n   1. --evolution is a theory supported by observational evidence (my way)\n      --the fact of evolution is a theory supported by observational\n        evidence (your way)\n\n   2. --creation is just an opinion.  If a theist wants to call it\n        a theory then he can.  I won't:  it has no supporting evidence \n\tand it neither predicts nor supports any observations that can\n        be made.  With no mechanisms to talk about, there really isn't\n\tmuch to say.\n\nDo you agree?\n\n-- \n jim halat         halat@bear.com     \nbear-stearns       --whatever doesn't kill you will only serve to annoy you--\n   nyc             i speak only for myself\n\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5039, "properties": {"category": "talk.politics.mideast", "text": "From: arf@genesis.MCS.COM (Jack Schmidling)\nSubject: NEWS YOU MAY HAVE MISSED, Apr 20\nOrganization: MCSNet Contributor, Chicago, IL\nLines: 111\nDistribution: world\nNNTP-Posting-Host: localhost.mcs.com\n\n \n            NEWS YOU MAY HAVE MISSED, APR 19, 1993\n \n          Not because you were too busy but because\n            Israelists in the US media spiked it.\n \n                     ................\n \n \n                  THOSE INTREPID ISRAELI SOLDIERS\n  \n \n Israeli soldiers have sexually taunted Arab women in the occupied Gaza Strip \n during the three-week-long closure that has sealed Palestinians off from the \n Jewish state, Palestinian sources said on Sunday.\n \n The incidents occurred in the town of Khan Younis and involved soldiers of\n the Golani Brigade who have been at the centre of house-to-house raids for\n Palestinian activists during the closure, which was imposed on the strip and\n occupied West Bank.\n \n Five days ago girls at the Al-Khansaa secondary said a group of naked\n soldiers taunted them, yelling: ``Come and kiss me.'' When the girls fled, \n the soldiers threw empty bottles at them.\n     \n On Saturday, a group of soldiers opened their shirts and pulled down their\n pants when they saw girls from Al-Khansaa walking home from school. Parents \n are considering keeping their daughters home from the all-girls school.\n     \n The same day, soldiers harassed two passing schoolgirls after a youth\n escaped from them at a boys' secondary school. Deputy Principal Srur \n Abu-Jamea said they shouted abusive language at the girls, backed them \n against a wall, and put their arms around them.\n \n When teacher Hamdan Abu-Hajras intervened the soldiers kicked him and beat\n him with the butts of their rifles.\n \n On Tuesday, troops stopped a car driven by Abdel Azzim Qdieh, a practising\n Moslem, and demanded he kiss his female passenger. Qdieh refused, the \n soldiers hit him and the 18-year-old passenger kissed him to stop the \n beating.\n \n On Friday, soldiers entered the home of Zamno Abu-Ealyan, 60, blindfolded\n him and his wife, put a music tape on a recorder and demanded they dance. As\n the elderly couple danced, the soldiers slipped away. The coupled continued\n dancing until their grandson came in and asked what was happening.\n \n     The army said it was checking the reports.\n \n                ....................\n \n \n      ISRAELI TROOPS BAR CHRISTIANS FROM JERUSALEM\n \n Israeli troops prevented Christian Arabs from entering Jerusalem on Thursday \n to celebrate the traditional mass of the Last Supper.\n     \n Two Arab priests from the Greek Orthodox church led some 30 worshippers in\n prayer at a checkpoint separating the occupied West Bank from Jerusalem after\n soldiers told them only people with army-issued permits could enter.\n \n     ``Right now, our brothers are celebrating mass in the Church of the Holy\n Sepulchre and we were hoping to be able to join them in prayer,'' said Father\n George Makhlouf of the Ramallah Parish.\n \n     Israel sealed off the occupied lands two weeks ago after a spate of\n Palestinian attacks against Jews. The closure cut off Arabs in the West Bank\n and Gaza Strip from Jerusalem, their economic, spiritual and cultural centre.\n \n    Father Nicola Akel said Christians did not want to suffer the humiliation\n of requesting permits to reach holy sites.\n \n     Makhlouf said the closure was discriminatory, allowing Jews free movement\n to take part in recent Passover celebrations while restricting Christian\n celebrations.\n \n     ``Yesterday, we saw the Jews celebrate Passover without any interruption.\n But we cannot reach our holiest sites,'' he said.\n \n     An Israeli officer interrupted Makhlouf's speech, demanding to see his\n identity card before ordering the crowd to leave.\n \n                   ...................\n \n              \n \n If you are as revolted at this as I am, drop Israel's best friend email and \n let him know what you think.\n \n \n           75300.3115@compuserve.com (via CompuServe)\n           clintonpz@aol.com         (via America Online)\n           clinton-hq@campaign92.org (via MCI Mail)\n \n \n Tell 'em ARF sent ya.\n \n                  ..................................\n \n If you are tired of \"learning\" about American foreign policy from what is \n effectively, Israeli controlled media, I highly recommend checking out the \n Washington Report.  A free sample copy is available by calling the American \n Education Trust at:\n                      (800) 368 5788\n \n                  Tell 'em arf sent you.\n \n js\n \n \n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5040, "properties": {"category": "sci.crypt", "text": "Subject: text of White House announcement and Q&As on clipper chip encryption \nFrom: oleg@gd.cs.CSUFresno.EDU (Oleg Kibirev)\nDistribution: na\nOrganization: Computer Science Departement of California State University inFresno\nNntp-Posting-Host: gd.cs.csufresno.edu\nIn-reply-to: clipper@csrc.ncsl.nist.gov's message of Fri, 16 Apr 1993 15:17:33 GMT\nLines: 299\n\nIn article <C5L15A.GF6@dove.nist.gov> clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement) writes:\n\n\nHere is an article I found today in comp.security.misc. I'll send my reply in\na separate post to comp.off.eff.org so thayt you guys can get original text.\nHave fun! ;(\n\nOleg\n\n   Relay-Version: VMS News - V6.1B5 17/9/92 VAX/VMS V5.5-2; site nic.csu.net\n   Path: nic.csu.net!csus.edu!netcom.com!netcomsv!decwrl!uunet!dove!csrc.ncsl.nist.gov!clipper\n   Newsgroups: comp.security.misc\n   From: clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement)\n   Date: Fri, 16 Apr 1993 15:17:33 GMT\n   Sender: news@dove.nist.gov\n   Distribution: na\n   Organization: National Institute of Standards & Technology\n   Lines: 280\n\n   Note:  This file will also be available via anonymous file\n   transfer from csrc.ncsl.nist.gov in directory /pub/nistnews and\n   via the NIST Computer Security BBS at 301-948-5717.\n\t---------------------------------------------------\n\n\t\t\t    THE WHITE HOUSE\n\n\t\t     Office of the Press Secretary\n\n   _________________________________________________________________\n\n   For Immediate Release                           April 16, 1993\n\n\n\t\t   STATEMENT BY THE PRESS SECRETARY\n\n\n   The President today announced a new initiative that will bring\n   the Federal Government together with industry in a voluntary\n   program to improve the security and privacy of telephone\n   communications while meeting the legitimate needs of law\n   enforcement.\n\n   The initiative will involve the creation of new products to\n   accelerate the development and use of advanced and secure\n   telecommunications networks and wireless communications links.\n\n   For too long there has been little or no dialogue between our\n   private sector and the law enforcement community to resolve the\n   tension between economic vitality and the real challenges of\n   protecting Americans.  Rather than use technology to accommodate\n   the sometimes competing interests of economic growth, privacy and\n   law enforcement, previous policies have pitted government against\n   industry and the rights of privacy against law enforcement.\n\n   Sophisticated encryption technology has been used for years to\n   protect electronic funds transfer.  It is now being used to\n   protect electronic mail and computer files.  While encryption\n   technology can help Americans protect business secrets and the\n   unauthorized release of personal information, it also can be used\n   by terrorists, drug dealers, and other criminals.\n\n   A state-of-the-art microcircuit called the \"Clipper Chip\" has\n   been developed by government engineers.  The chip represents a\n   new approach to encryption technology.  It can be used in new,\n   relatively inexpensive encryption devices that can be attached to\n   an ordinary telephone.  It scrambles telephone communications\n   using an encryption algorithm that is more powerful than many in\n   commercial use today.\n\n   This new technology will help companies protect proprietary\n   information, protect the privacy of personal phone conversations\n   and prevent unauthorized release of data transmitted\n   electronically.  At the same time this technology preserves the\n   ability of federal, state and local law enforcement agencies to\n   intercept lawfully the phone conversations of criminals. \n\n   A \"key-escrow\" system will be established to ensure that the\n   \"Clipper Chip\" is used to protect the privacy of law-abiding\n   Americans.  Each device containing the chip will have two unique\n\n\n\t\t\t\t   2\n\n\n   \"keys,\" numbers that will be needed by authorized government\n   agencies to decode messages encoded by the device.  When the\n   device is manufactured, the two keys will be deposited separately\n   in two \"key-escrow\" data bases that will be established by the\n   Attorney General.  Access to these keys will be limited to\n   government officials with legal authorization to conduct a\n   wiretap.\n\n   The \"Clipper Chip\" technology provides law enforcement with no\n   new authorities to access the content of the private\n   conversations of Americans.\n\n   To demonstrate the effectiveness of this new technology, the\n   Attorney General will soon purchase several thousand of the new\n   devices.  In addition, respected experts from outside the\n   government will be offered access to the confidential details of\n   the algorithm to assess its capabilities and publicly report\n   their findings.\n\n   The chip is an important step in addressing the problem of\n   encryption's dual-edge sword:  encryption helps to protect the\n   privacy of individuals and industry, but it also can shield\n   criminals and terrorists.  We need the \"Clipper Chip\" and other\n   approaches that can both provide law-abiding citizens with access\n   to the encryption they need and prevent criminals from using it\n   to hide their illegal activities.  In order to assess technology\n   trends and explore new approaches (like the key-escrow system),\n   the President has directed government agencies to develop a\n   comprehensive policy on encryption that accommodates:\n\n\t--   the privacy of our citizens, including the need to\n\t     employ voice or data encryption for business purposes;\n\n\t--   the ability of authorized officials to access telephone\n\t     calls and data, under proper court or other legal\n\t     order, when necessary to protect our citizens;\n\n\t--   the effective and timely use of the most modern\n\t     technology to build the National Information\n\t     Infrastructure needed to promote economic growth and\n\t     the competitiveness of American industry in the global\n\t     marketplace; and \n\n\t--   the need of U.S. companies to manufacture and export\n\t     high technology products.\n\n   The President has directed early and frequent consultations with\n   affected industries, the Congress and groups that advocate the\n   privacy rights of individuals as policy options are developed.\n\n\n\n\t\t\t\t   3\n\n   The Administration is committed to working with the private\n   sector to spur the development of a National Information\n   Infrastructure which will use new telecommunications and computer\n   technologies to give Americans unprecedented access to\n   information.  This infrastructure of high-speed networks\n   (\"information superhighways\") will transmit video, images, HDTV\n   programming, and huge data files as easily as today's telephone\n   system transmits voice.\n\n   Since encryption technology will play an increasingly important\n   role in that infrastructure, the Federal Government must act\n   quickly to develop consistent, comprehensive policies regarding\n   its use.  The Administration is committed to policies that\n   protect all Americans' right to privacy while also protecting\n   them from those who break the law.\n\n   Further information is provided in an accompanying fact sheet. \n   The provisions of the President's directive to acquire the new\n   encryption technology are also available.  \n\n   For additional details, call Mat Heyman, National Institute of\n   Standards and Technology, (301) 975-2758.\n\n   ---------------------------------\n\n\n   QUESTIONS AND ANSWERS ABOUT THE CLINTON ADMINISTRATION'S\n   TELECOMMUNICATIONS INITIATIVE\n\n\n\n\n   Q:   Does this approach expand the authority of government\n\tagencies to listen in on phone conversations?\n\n   A:   No.  \"Clipper Chip\" technology provides law enforcement with\n\tno new authorities to access the content of the private\n\tconversations of Americans.\n\n   Q:   Suppose a law enforcement agency is conducting a wiretap on\n\ta drug smuggling ring and intercepts a conversation\n\tencrypted using the device.  What would they have to do to\n\tdecipher the message?\n\n   A:   They would have to obtain legal authorization, normally a\n\tcourt order, to do the wiretap in the first place.  They\n\twould then present documentation of this authorization to\n\tthe two entities responsible for safeguarding the keys and\n\tobtain the keys for the device being used by the drug\n\tsmugglers.  The key is split into two parts, which are\n\tstored separately in order to ensure the security of the key\n\tescrow system.\n\n   Q:   Who will run the key-escrow data banks?\n\n   A:   The two key-escrow data banks will be run by two independent\n\tentities.  At this point, the Department of Justice and the\n\tAdministration have yet to determine which agencies will\n\toversee the key-escrow data banks.\n\n   Q:   How strong is the security in the device?  How can I be sure\n\thow strong the security is?  \n\n   A:   This system is more secure than many other voice encryption\n\tsystems readily available today.  While the algorithm will\n\tremain classified to protect the security of the key escrow\n\tsystem, we are willing to invite an independent panel of\n\tcryptography experts to evaluate the algorithm to assure all\n\tpotential users that there are no unrecognized\n\tvulnerabilities.\n\n   Q:   Whose decision was it to propose this product?\n\n   A:   The National Security Council, the Justice Department, the\n\tCommerce Department, and other key agencies were involved in\n\tthis decision.  This approach has been endorsed by the\n\tPresident, the Vice President, and appropriate Cabinet\n\tofficials.\n\n   Q:   Who was consulted?  The Congress?  Industry?\n\n   A:   We have on-going discussions with Congress and industry on\n\tencryption issues, and expect those discussions to intensify\n\tas we carry out our review of encryption policy.  We have\n\tbriefed members of Congress and industry leaders on the\n\tdecisions related to this initiative.\n\n   Q:   Will the government provide the hardware to manufacturers?\n\n   A:   The government designed and developed the key access\n\tencryption microcircuits, but it is not providing the\n\tmicrocircuits to product manufacturers.  Product\n\tmanufacturers can acquire the microcircuits from the chip\n\tmanufacturer that produces them.\n\n   Q:   Who provides the \"Clipper Chip\"?\n\n   A:   Mykotronx programs it at their facility in Torrance,\n\tCalifornia, and will sell the chip to encryption device\n\tmanufacturers.  The programming function could be licensed\n\tto other vendors in the future.\n\n   Q:   How do I buy one of these encryption devices? \n\n   A:   We expect several manufacturers to consider incorporating\n\tthe \"Clipper Chip\" into their devices.\n\n   Q:   If the Administration were unable to find a technological\n\tsolution like the one proposed, would the Administration be\n\twilling to use legal remedies to restrict access to more\n\tpowerful encryption devices?\n\n   A:   This is a fundamental policy question which will be\n\tconsidered during the broad policy review.  The key escrow\n\tmechanism will provide Americans with an encryption product\n\tthat is more secure, more convenient, and less expensive\n\tthan others readily available today, but it is just one\n\tpiece of what must be the comprehensive approach to\n\tencryption technology, which the Administration is\n\tdeveloping.\n\n\tThe Administration is not saying, \"since encryption\n\tthreatens the public safety and effective law enforcement,\n\twe will prohibit it outright\" (as some countries have\n\teffectively done); nor is the U.S. saying that \"every\n\tAmerican, as a matter of right, is entitled to an\n\tunbreakable commercial encryption product.\"  There is a\n\tfalse \"tension\" created in the assessment that this issue is\n\tan \"either-or\" proposition.  Rather, both concerns can be,\n\tand in fact are, harmoniously balanced through a reasoned,\n\tbalanced approach such as is proposed with the \"Clipper\n\tChip\" and similar encryption techniques.\n\n   Q:   What does this decision indicate about how the Clinton\n\tAdministration's policy toward encryption will differ from\n\tthat of the Bush Administration?  \n\n   A:   It indicates that we understand the importance of encryption\n\ttechnology in telecommunications and computing and are\n\tcommitted to working with industry and public-interest\n\tgroups to find innovative ways to protect Americans'\n\tprivacy, help businesses to compete, and ensure that law\n\tenforcement agencies have the tools they need to fight crime\n\tand terrorism.\n\n   Q:   Will the devices be exportable?  Will other devices that use\n\tthe government hardware?\n\n   A:   Voice encryption devices are subject to export control\n\trequirements.  Case-by-case review for each export is\n\trequired to ensure appropriate use of these devices.  The\n\tsame is true for other encryption devices.  One of the\n\tattractions of this technology is the protection it can give\n\tto U.S. companies operating at home and abroad.  With this\n\tin mind, we expect export licenses will be granted on a\n\tcase-by-case basis for U.S. companies seeking to use these\n\tdevices to secure their own communications abroad.  We plan\n\tto review the possibility of permitting wider exportability\n\tof these products.\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5041, "properties": {"category": "rec.sport.hockey", "text": "From: tervio@katk.Helsinki.FI (TERVI| MARKO J)\nSubject: Realignment in 2000\nOrganization: University of Helsinki, Computing Centre\nLines: 43\n\n   Well, here it is, NHL in the year 2000.\nI got these from a very reliable source in a dream some years ago and \nalthough I initially thought I had just been taking too many too strong \ndrugs now it seems the realization has really begun...  You can see the \nleague has already started to move to this direction.\n\n   *The Walt Disney Conference*\nAnaheim Mighty Chipmunks    -Franchise name to be changed after each new \nLA Kings                      hockey movie         \nLA Flames                   -We've seen some of that\nSan Jose Sharks\nSan Diego Bruins\nTijuana Red Wings   -Detroit's hockey team will follow its car industry...\nDallas Stars           \nHouston Oilers\nTexas Rangers\nSeattle Canucks\n\n   *The Norm Green Conference*\nAlabama White Hawks\nBiloxi Blues\nTampa Bay Lightning\nMiami Blades\nHelsinki Jets        -You've heard them starting getting used to the anthem\nMontreal Quebecois (sp?)                 -There will be no 'Canada'\nAtlanta Devils\nOrlando Penquins\nKey West Islanders\nHartford Whalers                        The Whalers will never move, huh?\nPalm Beach Capitals\n\n  Now that the Anahaim team is becomming real I'm really beginning to believe\nthe rest of the 'message'.  I'm sure the future will turn you into believers \ntoo.  After 2000 the NHL will abandond ice-rinks.  It's so expensive to cool \ndown the rinks in the subtropics and the locals hardly know what ice is \nanyway.  NHL will become a roller skating hockey league.  That way it can \ncreate more public interest in the game when local supporteres can play the \ngame in their back yards !\n\n         I hope I'm just out of my mind.\n        There won't REALLY be a Disney team in Anaheim, will there?\n        The Stars aren't REALLY moving...\n        \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5042, "properties": {"category": "soc.religion.christian", "text": "From: jkellett@netcom.com (Joe Kellett)\nSubject: Re: Opinions asked about rejection\nOrganization: Netcom\nLines: 22\n\nWilliam Mayne (mayne@pipe.cs.fsu.edu) wrote:\n: In article <Apr.1.02.34.21.1993.21547@athos.rutgers.edu> jayne@mmalt.guild.org (Jayne Kulikauskas) writes:\n\n: >People who reject God don't want to be wth Him in heaven.  We spend our \n: >lives choosing to be either for Him or against Him.  God does not force \n: >Himself on us.\n\n: I must say that I am shocked. My impression has been that Jayne Kulikaskas\n: usually writes this much less offensive and ludicrous than this. I am not\n: saying that the offensiveness is intentional, but it is clear and it is\n: something for Christians to consider.\n\nJayne stands in pretty good company.  C.S. Lewis wrote a whole book\npromoting the idea contained in her first sentence quoted above.  It is\ncalled \"The Final Divorce\".  Excellent book on the subject of Heaven and\nHell, highly recommended.  It's an allegory of souls who are invited, indeed\nbeseeched to enter Heaven, but reject the offer because being with God in\nHeaven means giving up their false pride.\n\n-- \nJoe Kellett\njkellett@netcom.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5043, "properties": {"category": "soc.religion.christian", "text": "From: bassili@cs.arizona.edu (Amgad Z. Bassili)\nSubject: Copt-Net Newsletter[4]\nLines: 18\n\nThis is to let you know that the fourth issue of the Copt-Net Newsletter \nhas been issued. The highlights of this issue include:\n\n\n 1. Easter Greating: Christ is risen; Truly he is risen!\n 2. The Holy Family in Egypt (part 1)\n 3. Anba Abraam, the Friend of the Poor (part 4)\n 4. A review of the Coptic Encyclopedia\n 5. A new Dictionary of the Coptic Language\n\n\nThis Newsletter has been prepared by  members  of  Copt-Net,  a  forum\nwhere news, activities, and services of  the  Coptic Orthodox Churches\nand  Coptic communities outside Egypt are coordinated  and  exchanged.\nIf you want your name to be included in the mailing  list, or have any  \nquestions please contact Nabil Ayoub at <ayoub@erctitan.me.wisc.edu>.\n\nCopt-Net Editorial Board\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5044, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Blow up space station, easy way to do it.\nArticle-I.D.: aurora.1993Apr5.184527.1\nOrganization: University of Alaska Fairbanks\nLines: 28\nNntp-Posting-Host: acad3.alaska.edu\n\nThis might a real wierd idea or maybe not..\n\nI have seen where people have blown up ballons then sprayed material into them\nthat then drys and makes hard walls...\n\nWhy not do the same thing for a space station..\n\nFly up the docking rings and baloon materials and such, blow up the baloons,\nspin then around (I know a problem in micro gravity) let them dry/cure/harden?\nand cut a hole for the docking/attaching ring and bingo a space station..\n\nOf course the ballons would have to be foil covered or someother radiation\nprotective covering/heat shield(?) and the material used to make the wals would\nhave to meet the out gasing and other specs or atleast the paint/covering of\nthe inner wall would have to be human safe.. Maybe a special congrete or maybe\nthe same material as makes caplets but with some changes (saw where someone\ninstea dof water put beer in the caplet mixture, got a mix that was just as\nstrong as congret but easier to carry around and such..)\n\nSorry for any spelling errors, I missed school today.. (grin)..\n\nWhy musta  space station be so difficult?? why must we have girders? why be\nconfined to earth based ideas, lets think new ideas, after all space is not\nearth, why be limited by earth based ideas??\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\ngoing crazy in Nome Alaska, break up is here..\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5045, "properties": {"category": "comp.graphics", "text": "From: joshuaf@yang.earlham.edu\nSubject: TIFF -> Anything?!\nOrganization: Earlham College, Richmond, Indiana\nLines: 10\n\nAre there any TIFF to anything programs out there for the IBM?\nOur scanner works into TIFF, and I can view it on CSHOW 8.1, but \nall of my other programs read errors.  Are there any basic Tiff to \nJPEG, GIF, PCX, BMP, etc...?\n\nThanks for the time...Email or post acceptable.\nJoshuaf\n\n\"That Geiger scan looks like dookie!\"\n\"I know it's a TIFF!!!!\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5046, "properties": {"category": "comp.graphics", "text": "From: wbdst+@pitt.edu (William B Dwinnell)\nSubject: Diamond Stelth 24- any good?\nOrganization: University of Pittsburgh\nLines: 4\n\n\nI am in the market for a 24-bit graphics card for a PC (ISA bus), and\nwas wondering if anyone had any comments (good? bad? otherwise?) regarding\nthe Diamond Stealth 24?  \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5047, "properties": {"category": "rec.motorcycles", "text": "From: nrmendel@unix.amherst.edu (Nathaniel Mendell)\nSubject: Re: Bike advice\nOrganization: Amherst College\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 11\n\n\nUmmm...did you have any bikes other than that KX80? If not, I'd suggest you \nlook for an '89 ZX-7, since they only have about 90 horsepower, whereas the\n'90 has over 100 and might be a bit much for you...\n\nSincerely,\nNathaniel\n\nZX-10 \nDoD 0812\nAMA\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5048, "properties": {"category": "talk.politics.guns", "text": "From: meyers@leonardo.rtp.dg.com (Bill Meyers)\nSubject: Re: Some more about gun control...\nOrganization: N/I\nLines: 16\n\nIn article <1993Apr14.232806.18970@beaver.cs.washington.edu> graham@cs.washington.edu (Stephen Graham) writes:\n[ ... ]\n>It's worth noting that US vs. Miller sustained Miller's conviction\n>of possession of an illegal firearm, noting that a sawed-off shotgun\n>was not a proper militia weapon. Therefore, US vs. Miller supports\n>limited government regulation of firearms.\n\nThen it also supports basing such regulations on ignorance.\n\nMiller had disappeared, and nobody bothered to present _his_\nside to the Supreme Court -- in particular, that sawed-off\nshotguns were used in the World War I trenches, and in other\ntight spots ever since guns had been invented.  Would _you_\nturn one down if you had to \"clean\" an alley in E. St. Louis?\n--------\nVegetarians kill, too\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5049, "properties": {"category": "talk.politics.guns", "text": "From: crphilli@hound.dazixca.ingr.com (Ron Phillips)\nSubject: Randy Weaver Trial - Day 2 \nNntp-Posting-Host: hound\nReply-To: crphilli@hound.dazixca.ingr.com\nOrganization: \"Intergraph Electronics, Mountain View, CA\"\nDistribution: usa\nLines: 89\n\nThis was posted to the firearms-politics mailing list.\n==============================================================\nHi Folks;\n\nWednesday marked day 2, the beginning of the trial.  Opening\nstatements were given by both the prosecution and the defense,\neach side presenting its version of what happenned last August.\n\nThe prosecution argued that Weaver and his family moved to\nIdaho in 1983 anticipating a battle with the \"evil\" federal\ngovernment.  The prosecution alleges that Weaver sold federal\nagents \"sawed off\" shotguns and later failed to appear for\ntrial: Despite repeated \"good faith\" efforts to get Weaver\nto surrender peacefully, Weaver refused.  The shootout erupted\nwhen Weaver discovered agents on a surveillance mission and\nbegan firing.  According to the prosecution, three people\nwere taking an \"offensive action\" against an FBI helicopter\nwhen an FBI sniper killed Vicki Weaver.\n\nThe defense argued that Weaver and his family moved to northern\nIdaho in 1983 to practice their religion in peace.  They wanted\nsimply to be left alone.  Weaver was induced by federal agents to\nsell the short-barrelled shotgun (and did not, as the prosecution\nalleged, want to become a \"regular supplier\").  The defense also\nargued that the federal government sought to arrest Weaver when\nhe wouldn't become an informant [it is not specified explicitly,\nbut I assume that this is a reference to the white separatist\nangle of the story.  We'll know more as things develop].  The\nfailure to appear in court happenned because Weaver was given\nan incorrect court date and then indicted before that date.\nThe shootout occurred when federal agent Arthur Roderick killed\nWeaver's dog that was in proximity to Weaver's son, Samuel.  Weaver\nthen fired in self-defense.  In the ensuing battle, federal\nagent William Degan was killed (when his gun was later found,\nthere were 7 .223 cases nearby and the gun was on semi-automatic:\nHowever, agents were near the body for an extended period of\ntime and could have played with the select-fire - this will\nhave to be more fully explained).  Finally, the defense claims\nthat Vicki Weaver was only going to \"look at the body\" [not recover?]\nof her son when she was cut-down by an FBI sniper.\n\nProsecution quote: \"Weaver wanted that confrontation, and he made\nthat confrontation.\" -- Asst. U.S. Attorney Kim Lindquist\n\nDefense quote: \"The evidence in this case is going to show that\nthis is a case where Randy Weaver and Kevin Harris are charged\nwith crimes they didn't commit in order to cover crimes that\nthe government did commit.\"  -- Gerry Spence  [nice soundbite!]\n\nNotes: The _Idaho Statesman_ claims that Weaver supporters\nheeded a call from Spence not to repeat yesterday's protests\noutside the courthouse.  However, the local NBC affiliate\nagain had footage on the 10:00 news with 5 supporters including\n\"Tim\" again.  \"Tim\" claimed he was a skinhead, who were \"ordinary,\nworking class people.\"  He also claimed he was for \"white pride,\nnot white power.\"\n\nOutside the courthouse the television crew had an impromptu interview\nwith Bo Gritz, who charged that the neo-nazi protestors are exactly\nwhat the government wants to smear Randy Weaver.\n\nIn an affiliated article carried in the _Idaho Statesman_, about\na dozen lawyers were among the 70 or so people packed into the\ncourthouse.  These lawyers were present to watch Gerry Spence\nin action, and to perhaps learn something from him.  Some\ntidbits: Spence flatly told the jurors that he and his son Kent\nwere volunteering their time to represent Weaver because they\nbelieved in him.  Spence, during his 90-minute opening statement,\nrepeatedly walked behind Weaver and placed his hands on the\ndefendants shoulders (Weaver broke down and cried during the\nrecounting of his wife's death), and Spence compared the \"sawed\noff\" shotgun to driving 56 mph when the limit was 55 (another\ngood one!).\n\nToday (Thursday, April 15th) the prosecution was scheduled to\nbegin presenting evidence.\n\nDrew\n=============================================================\n\n\n-- \n**************************************************************\n* Ron Phillips               crphilli@hound.dazixca.ingr.com *\n* Senior Customer Engineer                                   *\n* Intergraph Electronics                                     *\n* 381 East Evelyn Avenue               VOICE: (415) 691-6473 *\n* Mountain View, CA 94041              FAX:   (415) 691-0350 *\n**************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5050, "properties": {"category": "sci.med", "text": "From: marco@sdf.lonestar.org (Steve Giammarco)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: sdf public access Unix, Dallas TX 214/436-3281\nLines: 27\n\nIn article <1qk1taINNmr4@calamari.hi.com> rogers@calamari.hi.com (Andrew Rogers) writes:\n>In article <1993Apr15.153729.13738@walter.bellcore.com> jchen@ctt.bellcore.com writes:\n>>Chinese, and many other Asians (Japanese, Koreans, etc) have used\n>>MSG as flavor enhancer for two thousand years. Do you believe that\n>>they knew how to make MSG from chemical processes? Not. They just\n>>extracted it from natural food such sea food and meat broth.\n>\n>And to add further fuel to the flame war, I read about 20 years ago that\n>the \"natural\" MSG - extracted from the sources you mention above - does not\n>cause the reported aftereffects; it's only that nasty \"artificial\" MSG -\n>extracted from coal tar or whatever - that causes Chinese Restaurant\n>Syndrome.  I find this pretty hard to believe; has anyone else heard it?\n\nI was under the (possibly incorrect) assumption that most of the MSG on\nour foods was made from processing sugar beets. Is this not true? Are \nthere other sources of MSG?\n\nI am one of those folx who react, sometimes strongly, to MSG. However,\nI also react strongly to sodium chloride (table salt) in excess. Each\ncauses different symptoms except for the common one of rapid heartbeat\nand an uncomfortable feeling of pressure in my chest, upper left quadrant.\n\n\n-- \nSteve Giammarco/5330 Peterson Lane/Dallas TX 75240\nmarco@sdf.lonestar.org\nloveyameanit.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5051, "properties": {"category": "talk.religion.misc", "text": "From: f_gautjw@ccsvax.sfasu.edu\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Stephen F. Austin State University\nLines: 24\n\nIn article <1993Apr21.164554.1@ccsua.ctstateu.edu>, parys@ccsua.ctstateu.edu writes:\n> I told some friends of mine two weeks ago that Koresh was dead.  The FBI and\n> the BATF could not let a man like that live.  He was a testimonial to their\n> stupidity and lies.    \n> \n\t[...deleted...]\n\nUnfortunately, I think you've got it figured pretty well.  I also ask\nmyself the question \"Why did they plan for so many months.  Why was\nthis so important to them?  What was the government really up to?\nWhy did they seal the warrant?  Were they after Koresh or were they after      \nthe first and second amendments, among others?\n\n> \n> We waited 444 days for our hostages to come home from Iran.  We gave these\n> people 51 days.  \n> \n-- \n *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *\n Joe Gaut                    |   In the super-state, it really does not\n <f_gautjw@ccsvax.sfasu.edu> |   matter at all what actually happened.\n     Remember the Alamo      |   Truth is what the government chooses to \n       Remember Waco         |   tell you.  Justice is what it wants to happen.\n                                        --Jim Garrison, New Orleans, La.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5052, "properties": {"category": "misc.forsale", "text": "From: zborowsk@spot.Colorado.EDU (ZBOROWSKI  BRANDON WALTER)\nSubject: PaintBall Gun ForSale!!\nDistribution: usa\nOrganization: University of Colorado, Boulder\nLines: 22\nNntp-Posting-Host: spot.colorado.edu\n\n\nPaintball Gun for Sale\n\nTIPPMAN SL-68II (In Great Condition)\n\n11\" Micro-honed Barrel\nBarrel Squeegie\n16\" Barrel\n140 Round Sight Feeder with Elbow\n7 oz. Constant Air Tank with Valve Protector and Buttplate\nShoulder Strap\n3-7X Bushnell Sportview Scope\n40 Round Ammo Box with Flip Top Lid\nBarrel Plug\nInstruction Manual\nAllen Wrenches\n\nContact me at:\n\nzborowsk@spot.colorado.edu\n\nand make me an offer.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5053, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: Sixty-two thousand (was Re: How many read sci.space?)\nOrganization: Fermi National Accelerator Laboratory\nLines: 67\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <1993Apr15.072429.10206@sol.UVic.CA>, rborden@ugly.UVic.CA (Ross  Borden) writes:\n> In article <734850108.F00002@permanet.org> Mark.Prado@p2.f349.n109.z1.permanet.org (Mark Prado) writes:\n>>\n>>One could go on and on and on here, but I wonder ... how\n>>many people read sci.space and of what power/influence are\n>>these individuals?\n>>\n> \tQuick!  Everyone who sees this, post a reply that says:\n> \n> \t\t\t\"Hey, I read sci.space!\"\n> \n> Then we can count them, and find out how many there are! :-)\n> (This will also help answer that nagging question: \"Just what is\n> the maximum bandwidth of the Internet, anyways?\")\n\nA practical suggestion, to be sure, but one could *also* peek into\nnews.lists, where Brian Reid has posted \"USENET Readership report for\nMar 93.\" Another posting called \"USENET READERSHIP SUMMARY REPORT FOR\nMAR 93\" gives the methodology and caveats of Reid's survey.  (These\npostings failed to appear for a while-- I wonder why?-- but they are\nnow back.)\n\nReid, alas, gives us no measure of the \"power/influence\" of readers...\nSorry, Mark.\n\nI suspect Mark, dangling out there on Fidonet, may not get news.lists\nso I've mailed him copies of these reports.\n\nThe bottom line?\n\n        +-- Estimated total number of people who read the group, worldwide.\n        |     +-- Actual number of readers in sampled population\n        |     |     +-- Propagation: how many sites receive this group at all\n        |     |     |      +-- Recent traffic (messages per month)\n        |     |     |      |      +-- Recent traffic (kilobytes per month)\n        |     |     |      |      |      +-- Crossposting percentage\n        |     |     |      |      |      |    +-- Cost ratio: $US/month/rdr\n        |     |     |      |      |      |    |      +-- Share: % of newsrders\n        |     |     |      |      |      |    |      |   who read this group.\n        V     V     V      V      V      V    V      V\n  88  62000  1493   80%  1958  4283.9    19%  0.10   2.9%  sci.space \n\nThe first figure indicates that sci.space ranks 88th among most-read\nnewsgroups.\n\nI've been keeping track sporadically to watch the growth of traffic\nand readership.  You might be entertained to see this.\n\nOct 91   55  71000  1387   84%   718  1865.2    21%  0.04   4.2%  sci.space\nMar 92   43  85000  1741   82%  1207  2727.2    13%  0.06   4.1%  sci.space\nJul 92   48  94000  1550   80%  1044  2448.3    12%  0.04   3.8%  sci.space\nMay 92   45  94000  2023   82%   834  1744.8    13%  0.04   4.1%  sci.space\n(some kind of glitch in estimating number of readers happens here)\nSep 92   45  51000  1690   80%  1420  3541.2    16%  0.11   3.6%  sci.space \nNov 92   78  47000  1372   81%  1220  2633.2    17%  0.08   2.8%  sci.space \n(revision in ranking groups happens here(?))\nMar 93   88  62000  1493   80%  1958  4283.9    19%  0.10   2.9%  sci.space \n\nPossibly old Usenet hands could give me some more background on how to\ninterpret these figures, glitches, or the history of Reid's reporting\neffort.  Take it to e-mail-- it doesn't belong in sci.space.\n\nBill Higgins, Beam Jockey              | In a churchyard in the valley\nFermi National Accelerator Laboratory  | Where the myrtle doth entwine\nBitnet:           HIGGINS@FNAL.BITNET  | There grow roses and other posies\nInternet:       HIGGINS@FNAL.FNAL.GOV  | Fertilized by Clementine.\nSPAN/Hepnet:           43011::HIGGINS  |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5054, "properties": {"category": "sci.crypt", "text": "From: scs@lokkur.dexter.mi.us (Steve Simmons)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: Inland Sea\nLines: 17\n\nsmb@research.att.com (Steven Bellovin) writes:\n\n>Thousands?  Tens of thousands?  Do some arithmetic, please...  Skipjack\n>has 2^80 possible keys.  Let's assume a brute-force engine like that\n>hypothesized for DES:  1 microsecond per trial, 1 million chips.  That's\n>10^12 trials per second, or about 38,000 years for 2^80 trials.  Well,\n>maybe they can get chips running at one trial per nanosecond, and build\n>a machine with 10 million chips.  Sure -- only 3.8 years for each solution.\n\nNormally I'd be the last to argue with Steve . . . but shouldn't that\nread \"3.8 years for *all* solutions\".  I mean, if we can imagine the\nmachine that does 1 trial/nanosecond, we can imagine the storage medium\nthat could index and archive it.\n-- \n \"Shadwell hated all southerners and, by inference, was standing at the\n  North Pole.\"\n\t-- \"Good Omens\", by Neil Gaiman and Terry Pratchett\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5055, "properties": {"category": "sci.space", "text": "From: flb@flb.optiplan.fi (\"F.Baube[tm]\")\nSubject: Vandalizing the sky\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 12\n\nFrom: \"Phil G. Fraering\" <pgf@srl03.cacs.usl.edu>\n> \n> Finally: this isn't the Bronze Age, [..]\n> please try to remember that there are more human activities than\n> those practiced by the Warrior Caste, the Farming Caste, and the\n> Priesthood.\n\nRight, the Profiting Caste is blessed by God, and may \n freely blare its presence in the evening twilight ..\n\n-- \n* Fred Baube (tm)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5056, "properties": {"category": "talk.politics.misc", "text": "From: drieux@wetware.com (drieux, just drieux)\nSubject: History, Its Dangerous\nNntp-Posting-Host: vladimir.wetware.com\nReply-To: drieux@wetware.com\nOrganization: Castle WetWare Philosopher and Sniper\nLines: 43\n\nIn article AJv@usenet.ucs.indiana.edu, mrynders@bronze.ucs.indiana.edu (Maurice Rynders) writes:\n>In article <1993Apr12.143224.23273@alleg.edu> meyerj (Jon Meyer) writes:\n>>In article <1993Apr5.073813.5246@nwnexus.WA.COM> pyotr@halcyon.com (Peter  \n>>D. Hampe) writes:\n>>> drieux@wetware.com (drieux, just drieux) writes:\n>>> \n>>> >pps: Why is there Still NO CALL to end Clinton's Illegal\n>>> >war in Somalia????? \n>>> \n>>> Hold on there tex - it's not his war.  Everybody knows that\n>>> its Part of the ReaganBushLegacy.\n>                   ^^^^^^?\n>>\n>>Yeah, sure.  They created the starvation there.  They put the warlords  \n>>there.  Yep.  Sure.  Been brainwashed by the media, haven't you?\n>\n>He probably is. By the way: what has Reagan to do with this any way? I\n>bet most people had never even heard of Somalia, during the Reagan\n>administration!\n\nOk boys and girls,\n\n\"What was the 'Ogadan War'????\"\n\nThe Money Raised in Band-Aid covered How Much of\nthe Cost of Which Soviet Client State to replace what\ncatagory of weapon system lost in the aforementioned war?\n\nWhy was the Joke: \"We arm the World.\" Really Not that funny?\n\nGonzo Station is the designation for WHICH USN Op Area?\nand the primary threat targets in the Area Were:.....\n\nciao\ndrieux\n\n\n\n---\n\"All Hands to the Big Sea of COMedy!\nAll Hands to the Big Sea of COMedy!\"\n\t\t-Last Call of the Wild of the Humour Lemmings\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5057, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lance@hartmann.austin.ibm.com (Lance Hartmann)\nSubject: Re: Diamond Stealth 24 & Windows problems!!!\nSummary: Users complain of service from Diamond.\nReply-To: lance%hartmann.austin.ibm.com@ibmpa.awdpa.ibm.com\nOrganization: IBM, Austin\nKeywords: diamond video s3 windows\nLines: 43\n\nIn article <1pifisINNhsr@dns1.NMSU.Edu> jdiers@dante.nmsu.edu (DIERS) writes:\n>\n>I own a Stealth 24 card from diamond.  When using the 640X480x16.7mil win 3.1\n>driver the card and driver work but are not very fast.  ALL of the other\n>windows drivers have a number of bugs.  Shadows remain when windows are\n>erased and text boxes are often unreadable.  All attempts to get help from\n>Diamond have failed.  I have called the Tech support and never been able\n>to get past the hold line (a toll call) in a reasonable time (ie 10min).\n>Leaving voice mail has not helped either.  The BBS is a joke! It always\n>has too many people on to download anything.  You cannot even get a file\n>listing (it considers that a download!).  I have faxed the tech support group.\n>All this with no reponse.\n>\n>The bottom line is if you are looking for a fast card and want to use it\n>for windows, DO NOT get a Diamond product.  Try another vendor, I wish I had.\n\nWhile others here may have had better experiences, I, too, share the\nsentiments posted above.  Though I have the original Stealth/VRAM,\nit is only \"relatively\" recent that the Windows drivers for this card\nhave evolved to a point of decent performance.  Note that there are\nSTILL a couple of modes I cannot use (ie. will not) due to shadowing,\nmis-drawn check boxes, etc.  I believe the version I have is 2.01.\nIf there's a more recent release, I'd appreciate if someone would\ndrop me a note to let me know -- I haven't been able to get on their\nBBS lately to check again.  Naturally, Diamond doesn't even bother\nnotifying me of fixes/releases.\n\nDiamond was helpful when I finally reached the \"right\" person in curing\nsome of my Windows' problems due to an address conflict.  The conflicting\naddresses (2E0, 2E8) were OMITTED in at least my version of the\nDiamond/VRAM manual.  I hope it has been corrected by now.  The tech rep\nexplained that ALL S3-based boards use these addresses.  I have not\nconfirmed the validity of that statement.\n\nWhen I upgrade my motherboard in the near future (hopefully with some\nform of local bus), I'll seek a video solution from someone other than\nDiamond.\n\nLance Hartmann (lance%hartmann.austin.ibm.com@ibmpa.awdpa.ibm.com)\n               Yes, that IS a '%' (percent sign) in my network address.\n------------------------------------------------------------------------------\nAll statements, comments, opinions, etc. herein reflect those of the author\nand shall NOT be misconstrued as those of IBM or anyone else for that matter.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5058, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: Windows for WorkGroups and LAN Workplace\nFrom: Flint.Waters@uwyo.edu (Flint Waters)\nDistribution: comp.os.ms-windows.apps,comp.os.ms-windows.misc,world\nOrganization: University of Wyoming\nNntp-Posting-Host: sheriff.uwyo.edu\nLines: 18\n\n>Hey, sounds great. Does that mean that W4WG works with ODI? I thought it    \n>uses NDIS.        \n\nWFWG does use NDIS but it cooperates well with the NDIS shim for ODI.\n(I've heard that it is as fast as NDIS direct)\n                            \n>                                                \n>My problem is that Lan Workplace with all its drivers uses up most of my    \n>UMBs, so I'd hate to have to load many more drivers to make W4WG work       \n>along.           \n\nThe additional TSR load is minimal.  I think I eat another  20K total.\nThis is worth it to me since it allows me to get to my Windows NT \nbox.  Novell hasn't released a decent NT Novell client yet so I share\nthrough my WFWG box.         \n                                               \nThis solution is very usable.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.242+0000", "event": "documents", "entityId": 5059, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jenski@cae.wisc.edu (Anders Jenski)\nSubject: Quadra 950/900 case source wanted\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 12\n\nHello all,\n\nIf anyone knows of a place to get the case to hold the power supply and\nmotherboard of a Quadra 950 please let me know.  I have tried some mail\norder places and some local stores.  Both groups would prefer that I part\nwith over $1000 to get just the case.  In my eyes this seems about $600-$700\nto much.  Any comments?  I currently own the guts of a 950.\n\nPlease email me or post to this group w/ info,\n\nThanks in advance,\nAndy\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5060, "properties": {"category": "talk.politics.misc", "text": "From: gsmith@lauren.iwr.uni-heidelberg.de (Gene W. Smith)\nSubject: Re: Mr. Cramer's 'Evidence'\nOrganization: IWR, University of Heidelberg, Germany\nLines: 17\n\nIn article <philC5HsII.GFt@netcom.com> phil@netcom.com (Phil Ronzone)\nwrites:\n\n>Naw, I think you are. While both organizations may, on paper, support the\n>abolition of the age of consent, there the resemblance stops.\n\n>One supports the removal of a coercive law, the other a paper facade\n>to \"legitimize\" sexual relations with children.\n\nI get it.  One organization wants to abolish age of consent laws,\nwhereas in contrast the other wants to abolish age of consent laws.\nThis makes it respectable to belong to one organization, but not the\nother.\n\n-- \n     Gene Ward Smith/Brahms Gang/IWR/Ruprecht-Karls University \n               gsmith@kalliope.iwr.uni-heidelberg.de\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5061, "properties": {"category": "sci.electronics", "text": "From: acm@Sun.COM (Andrew MacRae)\nSubject: Re: arcade style buttons and joysticks\nReply-To: acm@Sun.COM (Andrew MacRae)\nOrganization: Sun Microsystems, Mountain View CA\nLines: 14\nNNTP-Posting-Host: grendal.corp.sun.com\n\nIn article <1993Apr21.024036.7394@lynx.dac.northeastern.edu>, dnewman@lynx.dac.northeastern.edu (David F. Newman) writes:\n > Hi there,\n > Can anyone tell me where it is possible to purchase controls found\n > on most arcade style games.  Many projects I am working on would\n > be greatly augmented if I could implement them.  Thanx in advance.\n\n\nHAP controls just outside Chicago sells these.  I don't remember which\nsuburb they are in.  The prices are pretty reasonable and they are\neasy to hook up.  I bought a new coin mechanism from them for $25.00\na couple of years ago.\n\n\t\t\t\t\t\tAndrew MacRae\n\t\t\t\t\t\t\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5062, "properties": {"category": "soc.religion.christian", "text": "From: salaris@niblick.ecn.purdue.edu (Rrrrrrrrrrrrrrrabbits)\nSubject: Re: Hell_2:  Black Sabbath\nOrganization: Purdue University Engineering Computer Network\nLines: 25\n\nIn article <Apr.20.03.02.07.1993.3791@geneva.rutgers.edu>, REXLEX@fnal.fnal.gov writes:\n> [In looking through my files this weekend, I ran across some lyrics from\n> various rock groups that have content.  Here are two from Black Sabbath's\n> \"Master of Reality\".  I'll say this much for the music of the '60's and early\n> '70's, at least they asked questions of significance.  Jethro Tull is another\n> to asked and wrote about things that caused one to wonder. --Rex] \n> \n\nIt is interesting that you posted those lyrics, because just the\nother day I was thinking of doing the same.  I like those lyrics,\nsince whenever I am approached by judgemental, pharisitical,\nevangelical fundamentalists who throw the Bible at me because\nI have long hair, wear a black leather jacket, and listen to Black\nSabbath, I have something to throw back.  Usually their chins drop\nand they come up speechless over those not very satanic lyrics.\n\nIt just goes to show that there are more important evils in the\nworld to battle than rock lyrics...........\n\n\n--\nSteven C. Salaris                We're...a lot more dangerous than 2 Live Crew\nsalaris@carcs1.wustl.edu         and their stupid use of foul language because\n\t\t\t\t we have ideas.  We have a philosophy.\n\t\t\t\t\t      Geoff Tate -- Queensryche\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5063, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 11\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\npdc@dcs.ed.ac.uk (Paul Crowley) writes:\n> As for the cleaners, I'll stick with my 850W Electrolux and damn the \n> carpet. \n\nNah.  Nothing sucks like a VAX :)...\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5064, "properties": {"category": "comp.graphics", "text": "From: ranjan@cs.ubc.ca (Vishwa Ranjan)\nSubject: Complex (i.e. with real and imaginary parts) bio-medical images..\nOrganization: Computer Science, University of B.C., Vancouver, B.C., Canada\nLines: 7\nDistribution: world\nNNTP-Posting-Host: ironduke.cs.ubc.ca\n\nAre  complex  bio-medical  images  available  anywhere on the net for \nexperimentation?  By complex I mean that every sampled data point has \na magnitude and phase information both. \n\nThanks for any pointers,\n--Vishwa\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5065, "properties": {"category": "sci.electronics", "text": "From: skipper@traider.ersys.edmonton.ab.ca (Mark Bevan)\nSubject: Re: Need to find out number to a phone line\nReply-To: skipper@traider.ersys.edmonton.ab.ca (Mark Bevan)\nOrganization: Traiders of the Lost .ARC! - Edmonton, Alberta, Canada\nLines: 21\n\nalee@ecs.umass.edu writes:\n\n> \n> Greetings!\n>       \n>         Situation:  I have a phone jack mounted on a wall.  I don't\n>                     know the number of the line.  And I don't want\n>                     to call up the operator to place a trace on it.\n> \n>         Question:   Is there a certain device out there that I can\n>                     use to find out the number to the line?\n>         Thanks for any response.\n>                                                     Al\n> \n>   \n\nDial 511 and it sound tell you the number.\n\n---\nskipper@traider.ersys.edmonton.ab.ca (Mark Bevan)\nTraiders of the Lost .ARC! - Edmonton, Alberta, Canada\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5066, "properties": {"category": "sci.med", "text": "From: sbishop@desire.wright.edu\nSubject: Re: Hismanal, et. al.--side effects\nOrganization:  Wright State University \nLines: 22\n\nIn article <1993Apr21.024103.29880@spdcc.com>, dyer@spdcc.com (Steve Dyer) writes:\n> In article <1993Apr20.212706.820@lrc.edu> kjiv@lrc.edu writes:\n>>Can someone tell me whether or not any of the following medications \n>>has been linked to rapid/excessive weight gain and/or a distorted \n>>sense of taste or smell:  Hismanal; Azmacort (a topical steroid to \n>>prevent asthma); Vancenase.\n> \n> Hismanal (astemizole) is most definitely linked to weight gain.\n> It really is peculiar that some antihistamines have this effect,\n> and even more so an antihistamine like astemizole which purportedly\n> doesn't cross the blood-brain barrier and so tends not to cause\n> drowsiness.\n\nIt also gave me lots of problems with joint and muscle pain.  Seemed to\ntrigger arthritis-like problems.\n\nSue\n\n> \n> -- \n> Steve Dyer\n> dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5067, "properties": {"category": "rec.sport.baseball", "text": "From: fester@island.COM (Mike Fester)\nSubject: Re: Notes on Jays vs. Indians Series\nOrganization: /usr/local/rn/organization\nDistribution: na\nLines: 38\n\nIn article <1993Apr13.221704.4291@midway.uchicago.edu> thf2@midway.uchicago.edu writes:\n>In article <rudyC5FxC8.DEu@netcom.com> rudy@netcom.com (Rudy Wade) writes:\n>>In article <1993Apr13.195301.22652@CSD-NewsHost.Stanford.EDU> nlu@Xenon.Stanford.EDU (Nelson Lu) writes:\n>>>Guess which line is which:\n>>>\tBA\tOBP\tSLG\tAB\tH\t2B\t3B\tHR\tBB\n>>>X\t.310\t.405\t.427\t571\t177\t27\t8\t8\t87\n>>>Y\t.312\t.354\t.455\t657\t205\t32\t1\t20\t35\n>>\n>>>The walks should give it away.  OBP's, in general, somewhat more valuable than\n>>>slugging, and Alomar's edge in OBP was quite a bit larger than Baerga's edge\n>>>in slugging.\n>>\n>>I'm no SDCN, but what's more valuable:\n>>\n>>28 hits w/5 more doubles, 12 more HRs   OR\n>>7 more triples and 52 BBs?  (Let's not forget the 39 extra SBs. How many CS?)\n>\n>Alomar had 9 CS.  Baerga had 2.\n>\n>Don't forget the 59 more outs Baerga had (his GIDP balances out his CS, and\n>he had one more sacrifice than Alomar).   A replacement level second baseman\n>could have had 17 hits, 5 walks, and a couple of XBH for the additional\n>outs Baerga had.  A triple is little different than a home run.  We're talking\n>exchanging almost 60 walks for six or seven home runs and four doubles.  I \n>would say the almost-60 walks are more valuable.\n\nAlso, Alomar got a FAR greater boost from his home park than Baerga did from \nhis. And \"six or seven home runs\"? Hmm.\n\nSo, if you wanted to pick a second baseman to play in Toronto, you'd take \nAlomar. Anywhere else, and you'd probably take Baerga.\n\nMike\n-- \nDisclaimer - These opiini^H^H damn! ^H^H ^Q ^[ .... :w  :q  :wq  :wq! ^d  ^X ^?\nexit X Q  ^C ^? :quitbye  CtrlAltDel   ~~q  :~q  logout  save/quit :!QUIT\n^[zz ^[ZZZZZZ ^vi  man vi ^@  ^L  ^[c  ^# ^E ^X ^I ^T ? help  helpquit ^D  ^d !!\nman help ^C ^c :e! help exit ?Quit ?q CtrlShftDel \"Hey, what does Stop L1A d...\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5068, "properties": {"category": "rec.sport.baseball", "text": "From: cmeyer@bloch.Stanford.EDU (Craig Meyer)\nSubject: Re: Jack Morris\nOrganization: DSO, Stanford University\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 27\n\nMichael Chen (mike@cunixf.cc.columbia.edu) wrote:\n\n: In any case, I think Viola would have made a better signing.  Why?\n: Viola is younger, and is left handed (how many left handed starters does\n: Toronto have?\n\nWell, I agree that Viola is a better signing.  However, why does\neveryone say that you want lefthanded starters?  I understand lefthanded\nspot relievers, even though they usually face more righthanded batters\nthan lefthanded batters.  I just don't understand why people insist\non lefthanded starters, unless there is a park effect (e.g., Yankee Stadium).\nMost batters in MLB are righthanded, so righthanded starters will have\nthe platoon advantage more often than lefthanded starters.\nI guess one argument for lefty starters is that certain teams\nmay be more vulnerable to LHP's than RHP's.  However, this is probably\nonly a factor in the postseason, because teams seldom juggle their starters\nfor this reason during the regular season.\n\nI think you just want the best starters you can get, regardless of\nwhether they are lefties or righties.  Lefthanded starters tend to have\nhigher ERA's than righthanded starters, precisely because managers\ngo out of their way to start inferior lefties (or perhaps because of\nthe platoon advantage).\n\nAm I missing something here?\n\n--Craig\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5069, "properties": {"category": "sci.med", "text": "From: fulk@cs.rochester.edu (Mark Fulk)\nSubject: Re: Breech Baby Info Needed\nOrganization: University of Rochester\nLines: 89\n\nIn article <1993Apr5.151818.27409@trentu.ca> xtkmg@trentu.ca (Kate Gregory) writes:\n>In article <1993Apr3.161757.19612@cs.rochester.edu> fulk@cs.rochester.edu (Mark Fulk) writes:\n>>\n>>Another uncommon problem is maternal hemorrhage.  I don't remember the\n>>incidence, but it is something like 1 in 1,000 or 10,000 births.  It is hard\n>>to see how you could handle it at home, and you wouldn't have very much time.\n>>\n>>thing you might consider is that people's risk tradeoffs vary.  I consider\n>>a 1/1,000 risk of loss of a loved one to require considerable effort in\n>>the avoiding.\n>\n>Mark, you seem to be terrified of the birth process\n\nThat's ridiculous!\n\n>and unable to\n>believe that women's bodies are actually designed to do it.\n\nThey aren't designed, they evolved.  And, much as it discomforts us, in\nhumans a trouble-free birth process was sacrificed to increased brain and\ncranial size.  Wild animals have a much easier time with birth than humans do.\nDomestic horses and cows typically have a worse time.  To give you an idea:\nmy family tree is complicated because a few of my pioneer great-great-\ngrandfathers had several wives, and we never could figure out which wife\nhad each child.  One might ask why this happened.  My great-great-\ngrandfathers were, by the time they reached their forties, quite prosperous\nfarmers.  Nonetheless, they lost several wives each to the rigors of\nchildbirth; the graveyards in Spencer, Indiana, and Boswell, North Dakota,\ncontain quite a few gravestones like \"Ida, wf. of Jacob Liptrap, and\nbaby, May 6, 1853.\"\n\n>You wanted\n>to section all women carrying breech in case one in a hundred or a\n>thousand breech babies get hung up in second stage,\n\nMore like one in ten.  And the consequences can be devastating; I have\ndirect experience of more than a dozen victims of a fouled-up breech birth.\n\n>and now you want\n>all babies born in hospital based on a guess of how likely maternal\n>hemorrhage is and a false belief that it is fatal.\n\nIt isn't always fatal.  But it is often fatal, when it happens out of\nreach of adequate help.  More often, it permanently damages one's health.\n\nClearly women's bodies _evolved_ to give birth (I am no believer in divine\ndesign); however, evolution did not favor trouble-free births for humans.  \n\n>You have your kids where you want. You encourage your wife to\n>get six inch holes cut through her stomach muscles, expose herself\n>to anesthesia and infection, and whatever other \"just in case\" measures\n>you think are necessary.\n\nMy, aren't we wroth!  I haven't read a more outrageous straw man attack\nin months!  I can practically see your mouth foam.\n\nWe're statistically sophisticated enough to balance the risks.  Although\nI can't produce exact statistics 5 years after the last time we looked\nthem up, rest assured that we balanced C-section risks against other risks.\nI wouldn't encourage my wife to have a Caesarean unless it was clearly\nindicated; on the other hand, I am opposed (on obvious grounds) to waiting\nuntil an emergency to give in.\n\nAnd bear this in mind: my wife took the lead in all of these decisions.\nWe talked things over, and I did a lot of the leg work, but the main\ndecisions were really hers.\n\n>But I for one am bothered by your continued\n>suggestions, especially to the misc.kidders pregnant for the first\n>time, that birth is dangerous, even fatal, and that all these\n>unpleasant things are far better than the risks you run just doing\n>it naturally.\n\nI don't know of very many home birth advocates, even, that think that\na first-time mother should have her baby at home.\n\n>I'm no Luddite. I've had a section. I'm planning a hospital birth\n>this time. But for heaven's sake, not everyone needs that!\n\nBut people should bother to find out the relative risks.  My wife was\nunwilling to take any significant risks in order to have nice surroundings.\nIn view of the intensity of the birth experience, I doubt surroundings\nhave much importance anyway.  Somehow the values you're advocating seem\nall lopsided to me: taking risks, even if fairly small, of serious\npermanent harm in order to preserve something that is, after all,\nan esthetic consideration.\n-- \nMark A. Fulk\t\t\tUniversity of Rochester\nComputer Science Department\tfulk@cs.rochester.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5070, "properties": {"category": "sci.space", "text": "From: John Lussmyer <dragon@angus.mi.org>\nSubject: Re: DC-X update???\nOrganization: Mystery Spot BBS\nReply-To: dragon@angus.mi.org\nLines: 12\n\nhenry@zoo.toronto.edu (Henry Spencer) writes:\n\n> The first flight will be a low hover that will demonstrate a vertical\n> landing.  There will be no payload.  DC-X will never carry any kind\n\nExactly when will the hover test be done, and will any of the TV\nnetworks carry it.  I really want to see that...\n\n--\nJohn Lussmyer (dragon@angus.mi.org)\nMystery Spot BBS, Royal Oak, MI --------------------------------------------?--\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5071, "properties": {"category": "rec.sport.baseball", "text": "From: C558172@mizzou1.missouri.edu\nSubject: Re: The 1964 Phillies: deja vu?\nOrganization: University of Missouri\nX-Posted-From: mizzou1.missouri.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 16\n\nIn article <1993Apr14.222601.21160@cabell.vcu.edu>\ncsc2imd@cabell.vcu.edu (Ian M. Derby) writes:\n \n>\n>\n>After reading my local paper today, I found out that the Phillies\n>started the 1964 season at 10-2.  I am not as old as 1964, but I've\n>heard many talk about the serious choke job the Phillies did that\n>season. They were ahead of the Cardinals by 15 games that season in\n>mid-August.  They managed to lose a bunch from then on and the\n>Cardinals took the division.  15!!! games ahead and lost it.... I\n>hope this season is MUCH different.\n>\n \nI don't.\n--Shannon \"Cardinals fan\" Kohl\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5072, "properties": {"category": "rec.sport.baseball", "text": "From: hbrooks@uiatma.atmos.uiuc.edu (Harold_Brooks)\nSubject: RBI, RISP, and SLG\nOrganization: Bill's Safety Cab and Record Bar, Chickasha, OK\nLines: 49\n\nOff and on over the last several months, threads about RBIs and\nrelated topics have gotten me to thinking about how well we can \npredict a player's RBIs using information about his overall\nperformance and the number of runners in scoring position (RISP)\nthat he bats with.  In the Brock2 model, Bill James calculated\npredicted RBIs as RBI=.235*(Total Bases) + Home Runs.  This \ncompletely ignores the context, which was all that Brock2 \ncould do, since context was unknown to it.  So I thought I'd\ntake that idea as a starting point and look how good a fit to\nthe data you get by comparing (RBI-Home Runs) to SLG*RISP.\n\nI've started with team data, using data from the Elias's that\nI've picked up over the years when a) I could afford them and\nb) I could stomach the thought of increasing Elias's profits.\nThat gave me the years 1984-1986, 1988, and 1990.  (I don't \nhave team RBIs for '87 or I could add that year.)  If you\nrun a simple least squares fit to the data you get \n\n(RBI-Home Runs) = 0.81*SLG*RISP.\n\nThe correlation between the LHS and the RHS is 0.86, which is\nsignificant at a ridiculously high level.  So, I feel like the\nfit is good at the team level.  I've no started to move on to \nthe player level and have looked at 4 players (Will Clark,\nOzzie Smith, Joe Carter, and Don Mattingly).  I hope to \nadd quite a few more during my copious free time this year.\n\nIt doesn't do too badly, except the equation underpredicts the\nlow HR hitter (Smith), which may be a fault of the model or it\ncould just be Ozzie.  The results:\n\n                           RBI-HR\n         Years        Actual   Predicted\nCarter  (84-88,90)     400       402.6\nClark   (87,88,90,92)  269       269.6\nMatt'ly (84-88,90)     471       460.8\nSmith   (84-88,90)     317       280.6\n\nI think we can make a case (and I hope to make it stronger) that\nRBIs can be predicted simply from knowing how a player slugs overall\nand how many men are in scoring position when he comes up.\n\nMore later,\nHarold\n-- \nHarold Brooks                    hbrooks@uiatma.atmos.uiuc.edu\nNational Severe Storms Laboratory (Norman, OK)\n\"I used to work for a brewery, too, but I didn't drink on the job.\"\n-P. Bavasi on Dal Maxvill's view that Florida can win the NL East in '93\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5073, "properties": {"category": "rec.autos", "text": "From: welty@cabot.balltown.cma.COM (richard welty)\nSubject: rec.autos: Frequently Asked Consumer/Automotive Questions\nKeywords: Monthly Posting\nReply-To: welty@balltown.cma.com\nOrganization: New York State Institute for Sebastian Cabot Studies\nExpires: Thu, 20 May 1993 04:04:03 GMT\nLines: 508\n\nArchive-name: rec-autos/part5\n\n[this article is one of a pair of articles containing commonly\nasked automotive questions; the other article contains questions\nmore geared to the automotive enthusiast, and so is not crossposted\nto misc.consumers.  -- rpw]\n\n   [changes as of 14 April 1993: revised brake fluid section, as\n    non-silicone DOT-5 fluids are now apparently available -- rpw]\n\n                 Commonly Asked Automotive Questions\n\n\nTire Questions:\n\nQ:  What do the funny numbers on the sides of my tires mean?\n\nA:  Typically, you will see something like 195/60HR14.  the 195 is the\n    overall width of the tire in millimeters, the tread is usually\n    narrower.  The 60 is the `aspect ratio'; it indicates the height of the\n    sidewall of the tire relative to the overall width.  Our example tire\n    has a sidewall height of 0.60 * 195 ~= 117 mm.  The 14 is the wheel\n    diameter in inches; there are also some special tires called `TRX'\n    tires which have three digit metric wheel diameter designations, like\n    390, which is in millimeters.  The R means Radial, and the H is a speed\n    rating indicating the highest speed at which the tire, when properly\n    inflated and carrying an appropriate load, may safely operate.  Common\n    speed ratings are S (112MPH), T (118MPH), H (130MPH), and V (up to\n    150MPH.)\n\n    Recent changes to the method for specifying tire sizes move the speed\n    rating to a different part of the designation; you may therefore find\n    designations like 195/60R14 85H; the 85 indicates the per-tire load\n    associated with the speed rating -- exceeding this load in continuous\n    operation at the rated speed is dangerous practice.  What follows is\n    a table showing a number of `load indices' and corresponding maximum\n    per-tire loads:\n\n    Load Index       50   51   88   89   112   113   145   149   157\n    Max Load (Kg)   190  195  560  580  1120  1150  2900  3250  4125\n\n    Note that the usual mass vs. weight confusion occurs in this table.\n\n    In some cases, the letters P or LT may be found in front of a tire\n    size; the LT designation indicates Light Truck, and the P designation\n    indicates Passenger car.  If no letter is given, then the application\n    of the tire is Passenger car usage.  As far as I know, these letters\n    only appear in the US market.  The LT designation is prinicipally of\n    interest to owners of light trucks and other utility vehicles.  For\n    the owner of a passenger vehicle, there is no meaningful difference\n    between a tire with a P designation and one with no designation at\n    all.\n\n    If the aspect ratio is omitted, it is probably 80, but may be 78.\n\n    Tires with an MS (mud/snow) designation may have their speed rating\n    reduced by 20 km/h (about 12mph.)\n\n    There is an additional set of ratings on tires for temperature,\n    traction, and treadwear.  Temperature and Traction are graded\n    A, B, and C (with A the best and C the worst); treadwear is\n    a numeric rating.  These values are of limited value, as they\n    are assigned somewhat arbitrarily by tire manufacturers and are\n    thus not useful in comparing different brands of tires.\n\nQ:  My car has tires with a funny size designation:  185/65HR390; can i put\n    normal tires on the car?\n\nA:  Your tires are called TRX tires; they were devised by Michelin.\n    Because of a somewhat different bead design, they are incompatible\n    with normal tires; Michelin used a different diameter wheel for them\n    so that they could not be mounted on the wrong type wheel (and so that\n    more conventional tires could not be mounted on TRX type wheels.)\n    You will need to aquire different wheels to put a normal tire on your\n    car; it is barely possible to fit normal tires on TRX wheels, and horribly\n    dangerous to do so (the tires may simply peel off the rims in a corner,\n    or possibly blow out at high speed.)  TRX type tires are becoming hard\n    to find; in addition to Michelin, Avon makes suitable tires.  Goodyear\n    has apparently discontinued their line of TRX tires.\n\nQ:  Can I rotate radials from side to side, or rotate them only on one side\n    of my car?\n\nA:  Car and tire manufacturers have differing views on this subject; many\n    say that swapping radials between the left and right hand sides of a\n    car is now ok (this group includes Michelin and Goodyear); others\n    (for example, Pirelli and Nokia) will void warranties if such swapping\n    is done.  The best advice is to read your tire manual carefully before\n    rotating your tires, and stick to the manufacturer's recommendations.\n\nQ:  How many snow tires should I buy, and if I buy 2, which end of the\n    car should I put them on?\n\nA:  In short, 4, and both ends.  To explain, many drivers in areas that don't\n    get excessive snow or who don't drive agressively (or at all) in snow\n    conditions get away with only two snows on the drive wheels, but there\n    are circumstances where this can be dangerous practice.  With a rear\n    wheel drive car, you can choose between being able to start the car\n    going (a function of the rear axle) or stopping and turning the car\n    (a function of the front axle.)  In a front wheel drive car, you start,\n    stop, and turn with the front end.  The primary risk of putting the\n    snow tires on the front only is that if you have to put on the brakes\n    while going downhill, you run a serious risk of going downhill backwards.\n\nRadar Detectors and Speed Limits:\n\nQ:  Why aren't there any comments on Radar Detectors and Speed Limits\n    in this Q&A posting?\n\nA:  Because questions about detectors and speed limits crossposted between\n    misc.consumers and rec.autos.* always start long, tedious, and pointless\n    flame wars.  If you want to talk about either of these topics, please\n    subscribe to rec.autos or alt.flame and keep it there.\n\nSafety Equipment:\n\nQ:  Do airbags really work?\n\nA:  Preliminary statistics suggest the following:  Airbags work much\n    better than no belts; good 3 point belts alone work much better than\n    Airbags alone, and AirBags + 3 point belts work slightly better than\n    3 point belts alone.  The con to airbags is that some designs tend\n    to burn the driver's hands when venting the byproducts of the\n    explosion that occurs inside the bag, and that some designs (but\n    not all) may knock the driver's hands from the wheel, making retention\n    of control of the vehicle after the bag deflates more difficult.\n\nBrake Questions:\n\nQ:  Do I always need to get the rotors on my disk brakes turned?  Midas\n    always wants to do this.\n\nA:  No.  There are specific conditions that mandate turning or replacing\n    rotors; some shops try and make a little extra money by replacing rotors\n    more often than is strictly necessary.  if the rotors are not warped\n    warped, and only lightly grooved, then there is no need to replace or\n    to turn them.  Note also that some rotors (the rotors on many Hondas\n    are a good example) are so narrow to begin with that it is not practical\n    to turn them; they must be replaced when they become too thin, warped,\n    or badly grooved.\n\nQ:  They tell me I should downshift when braking to slow my car down.  Is\n    this really a good idea?\n\nA:  It used to be a very good idea, back in the days of mediocre, fade\n    prone drum brakes.  In modern disc brake equipped cars, use of\n    downshifting to slow the car is not really necessary, except in cases\n    of long, steep downhill runs.  Otherwise, modern disc brakes are more\n    than adequate to stop a passenger car in all circumstances, and they\n    are much cheaper to repair than clutch linings.\n\n    On the other hand, many standard driver's license tests in the USA\n    still specify that the driver being tested downshift under braking; I\n    suggest that before taking a US driver's test, you either 1) learn to\n    do this smoothly (which takes some time and practice) or 2) borrow a\n    car with an automatic to take the test.\n\nQ:  How often should I replace my brake fluid?\n\nA:  Probably more often than you do.  Traditional brake fluids tend to\n    absorb water; this water can corrode internal parts of the brake\n    system and also lower the boiling point of the fluid.  DOT-3 type\n    are older fluids; DOT-4 and DOT-5 are newer specifications.  The\n    principal differences are in wet and dry boiling points; the dry\n    boiling point is important in fresh brake fluid, but the wet boiling\n    point is important in older brake fluid.  DOT-3 fluids have the lowest\n    wet and dry boiling point _requirements_; DOT-4 fluids have better\n    boiling point requirements; and DOT-5 fluids have the best boiling\n    point requirements (but DOT-5 fluids are not clearly superior; see\n    the next Q&A for more details.)  While the requirements imply that\n    DOT-4 fluids are better than DOT-3 fluids, there may be specific\n    cases where a DOT-3 fluid is preferable, but these are mostly\n    competition applications.  Otherwise, DOT-4 type fluids offer _much_\n    improved brake pedal feel.  Replacement once a year is recommended for\n    DOT-4 fluids, although agressive drivers may profit by changing out\n    fluid more frequently, or at least bleeding a modest amount of fluid\n    out of the brake calipers fairly regularly.\n\nQ:  What about DOT-5 brake fluids?\n\nA:  This breaks down in to two parts.  The DOT-5 specification looks\n    excellent for performance, but the first DOT-5 fluids were Silicone\n    based.  Silicone fluids are a tricky proposition.  Unlike DOT-3 and\n    DOT-4 fluids, they do not absorb water at all.  While this may sound\n    like a feature, the problem is that any water present pools up in\n    such systems, interfering with braking performance and corroding any\n    metals at the spot where the pooling is occuring.  The water will tend\n    to migrate downwards in the braking system to the brake calipers, where\n    most of the corrosion occurs.\n\n    Because of this phenomenon, it is essential when converting to\n    Silicone to empty the entire brake system and flush it throughly\n    beforehand; some even recommend replacing all rubber parts in the\n    brake system when converting to Silicone fluids.\n\n    Two other issues that come up with silicone fluids:  1) they are\n    difficult to pour cleanly (that is, without air bubbles), which\n    interferes with getting a good brake pedal feel, and 2) while they\n    generally have much higher boiling points than DOT-4 fluids, they\n    do have high temperature failure modes which are indistinguishable\n    in effect from boiling DOT-4 fluids.  SIlicone fluids may make sense\n    in some street car applications, but they are certainly not\n    recommended for high performance driving applications, and the\n    economics are questionable for street use.\n\n    I have recently become aware of new fluids that meet the DOT-5 standard\n    that do not contain Silicones; these fluids appear to be reasonably\n    compatible with the older DOT-3 and DOT-4 fluids, but I have little\n    information at this time.\n\nQ:  ABS is available on some of the cars I'm looking at, but it costs\n    more.  Is it worth it?\n\nA:  This does not have a cut and dried answer; therefore, this answer will\n    be quite long in order to cover the pros and cons.  The short answer\n    is that ABS costs more, both initially, and to maintain, will generally\n    work better for the `average driver' (that is to say, a driver who does\n    not have extensive experience in high performance driving techniques),\n    and may require the `unlearning' of some obsolete braking techniques\n    like pump braking which should be unlearned in any case.\n\n    Now for the long answer.  ABS works by monitering the wheels of the\n    car, looking for signs of locked brakes.  It may or may not be able\n    be able to distinguish between the different wheels (there are several\n    systems on the market.)  It cannot detect impending lockup (which is\n    what you would really want in an ideal world), but only the existence\n    of lockup.  The sensors used vary; some of the less well designed\n    sensors are sensitive to tire size, and to brake pad material, and\n    may cease to function properly if the owner deviates from original\n    equipment or OE-equivalent components.\n\n    When the sensors detect lockup, the ABS system responds by unlocking\n    the brakes (either individually, or all at once, depending on the\n    system.)  If the driver keeps their foot firmly planted, the ABS\n    will end up cycling between the locked and unlocked states (if a\n    sensor existed that could detect _impending lockup_, then we could\n    sit right at that point, which is where maximum braking effect is\n    achieved.)  This pulsing can often be felt in the brake pedal, as\n    the system cycles.  The percentage of the time that the brakes are\n    truly engaged is called the `duty cycle'; typically in an ABS system\n    this is about 40%  On dry pavement, a trained driver can beat this\n    duty cycle quite reliably using a technique called threshold braking;\n    on wet pavement, braking is so chancy that ABS will outperform\n    threshold braking nearly every time.  Unfortunately, on mud and on\n    snow, often maximum braking effect can be acheived with the brakes\n    locked; only Audi, of the manufacturers producing ABS-equipped cars,\n    has seen fit to provide a disable switch for the ABS system for this\n    eventuality.\n\n    A particularly important feature of ABS is that it preserves\n    steering control.  This is the case simply because, if you are\n    braking near the limit and turn the wheel, the ABS will release\n    the brakes if it sees steering-triggered lockup, and back off\n    on the percentage of the time that the brakes are applied.\n    Braking distances will lengthen accordingly.\n\n    An important caution:  ABS cannot exceed the maximum theoretical\n    braking force in any given situation; if you start sliding on\n    glare ice, don't expect an ABS system to help you out very much.\n    The coefficient of friction is not changed by the presence of an\n    ABS system in your car.\n\n    As far as maintenence goes, in addition to the potential\n    restrictions I've listed above, you have to worry about the\n    following:  1) parts costs are much higher; the OE master cylinder\n    for my obscure european sedan lists for $185, but the OE master\n    cylinder for the ABS-equipped version of the same car lists for\n    over $1000.  Most manufacturers explicitly forbid use of DOT-5\n    (silicone) brake fluids in ABS-equipped vehicles.  Because of\n    the potential cost of replacement of corroded brake system\n    components, regular (I suggest annual) replacement of brake fluid\n    becomes very important.\n\nQ:  What about this threshold braking business?\n\nA:  [normally, I'd not put this in the consumers Q&A, but recent\n    publicity about a number of accidents involving police drivers\n    in ABS-equipped Chevy Caprices suggests that this section is\n    needed here -- rpw]\n\n    Threshold braking is a technique practiced by all serious high\n    performance drivers; if made a habit, it replaces the `stab\n    the pedal and lock 'em up' panic habit entirely, and is much\n    to be prefered.  Basically, the premise is that tires generate\n    maximum braking force when they have just started to slide, but\n    just before the wheels lock up entirely.  Drivers who threshold\n    brake learn to feel what this `threshold' feels like, and learn\n    to search for it and hit it on the application of the brake\n    pedal.  In many cars, you can feel that you are near the\n    threshold when the pedal starts to firm up as you depress it.\n    In any case, if you can't hear the tires whine just a bit, you're\n    not very near the threshold.\n\n    In a car with ABS, often there is a twinge in the pedal just\n    before the system starts cycling; if the driver backs off on\n    the pedal just a tad when the twinge is felt, then they are very\n    close to the threshold and they'll probably achieve better\n    stopping distances than if they just punched it and let the ABS\n    take over.\n\n    Recently, there has been a rash of publicity over a number of\n    accidents, and one death, involving police cars equipped with\n    ABS systems.  The police departments in question quickly blamed\n    the new ABS systems, but according to Autoweek magazine, it now\n    seems clear that the problem was a lack of training; none of the\n    involved officers had any recent performance driving training.\n    There is reason to believe that the drivers reacted to the pulsing\n    brake pedal by `pump braking', an old and discredited technique\n    of stabbing and releasing the brake pedal, the goal being to\n    try and get brakes back with a failing hydraulic system.  If you\n    think about it for a minute, you'll realize that pump braking must\n    cut the effective operation of a working brake system by at least\n    1/2, so if you cut the 40% duty cycle of an ABS system by that\n    much, you are giving up most of your brakes for the wrong reason.\n    Threshold braking has the advantage in that it is an effective\n    and useful technique regardless of whether your car has ABS; if\n    you do fear a failed hydraulic system, then one or two stabs at\n    the pedal will be sufficient.    \n\nGas Questions:\n\nQ:  Does High Octane gasoline help?\n\nA:  Maybe, maybe not.  Some cars have knock sensors, and can adjust the\n    engine timing or turbocharger boost to suit the gasoline being used.\n    On most cars, however, you should use the cheapest gas that makes your\n    car run well.  Check your owner's manual for details on what your car\n    needs.\n\nQ:  My car was made for leaded gasoline.  Will unleaded gas hurt it?\n\nA:  It is possible that unleaded gas may *slightly* increase valve wear,\n    although the Amoco Oil company argues otherwise.  The actual increase\n    in valve wear will be almost unnoticeable, however, as modern leaded\n    gasolines actually contain very little lead.  You should, however,\n    check your owner's manual; many cars from the early 1970s do not\n    actually require leaded gasoline.\n\nQ:  Do fuel treatments help?  What kind should I use?\n\nA:  Some do and some don't.  During the winter, it is a good idea to use\n    dry gas; however, some may be harmful to fuel injection systems.\n    Never use an additive containing Methanol (sometimes called Methyl\n    Alcohol); such additives may damage fuel systems in cars with carbs\n    and almost certainly will damage cars with fuel injection.\n\n    Manufacturer's opinions vary on additives containing Ethanol (sometimes\n    called Ethyl Alcohol); if your car has fuel injection, check the owner's\n    manual on your car before  using these.  Most manufacturers consider\n    10% Ethanol acceptable in gasoline.  Additives with Isopropyl Alcohol\n    (Isopropanol), and Petroleum  Distillates are fine in fuel injected\n    cars.\n\n    An occasional bottle of fuel injector cleaner is helpful in cars with\n    fuel injectors, although many premium gasolines contain detergents that\n    do the same job.  Some off brands of fuel injector cleaners contain\n    Ethanol or Methanol; always check the ingredients before putting anything\n    in your gas tank.\n\n    There are a small number of particularly good additives; these are\n    noticeably more expensive that the run-of-the-mill ones, but work\n    much, much better.  Among these are Chevron Techron, Redline SL-1,\n    Wurth `Lubrimoly Ventil Sauber', and BG 44K.  A bottle of one of these,\n    once every six months, is highly recommended.\n\nQ:  What about detergent gasolines?\n\nA:  The quality of detergent packages in gasolines varies somewhat; BMW\n    has instituted a testing program, and gasoline brands which pass this\n    test may advertise that fact.  Stickers indicating passage of the test\n    are now beginning to appear on fuel pumps at gas stations.  If such\n    gasolines are used, then fuel injector cleaners are probably optional.\n    Beforewarned that while use of BMW approved gasolines will keep a clean\n    engine clean, they may not clean a motor with bad valve deposits.\n\nLubrication Questions:\n\nQ:  What do the numbers and letters in a motor oil designation mean?\n\nA:  There are several different items encoded.  There is a two-letter\n    code indicating the type of detergent package that the manufacturer\t\n    uses in the oil; this looks like SE,SF,CD or such.  The S codes are\n    for gasoline engine applications; the C codes are for diesel engine\n    applications.  The second letter is assigned in sequence as new levels\n    of protection are developed; thus SF is considered better than SE,\n    SE is considered better than SD, and so forth.\n\n    The more noticeable designation is the oil weight.  This is either\n    a single number (e.g., 30 weight) or a pair of numbers separated by\n    the letter W (e.g., 10W30.)  The latter type is much more commonly\n    used these days, and are the only type that most automobile\n    manufacturers specify in operators manuals.  The first number in the\n    designation (10W) is the apparent viscosity of the oil when it is cold;\n    the W stands for `winter'.  The second number (30) is the viscosity\n    of the oil when hot.  There is a trick here; the oil doesn't actually\n    get thicker (turn from 10 weight to 30 weight) as it gets hotter.  What\n    is actually happening is that when the oil is cold, it has the viscosity\n    of a cold 10 weight oil.  as it gets hotter, it doesn't get thin as fast\n    as a 10W oil would; by the time it is up to temperature, it has the\n    viscosity of a hot 30 weight oil.\n\n    Note that these numbers actually specify ranges of viscosities; not\n    all 10W oils have exactly the same viscosity when cold, and not all\n    30 weight oils have the same viscosity when hot.  Note also that the\n    novel behaviour of multi-grade oils is caused by additives, and it has\n    been reported that with the sole exception of Castrol GTX, 10W40 oils\n    do not retain their multi-grade characteristics well over time.  10W30,\n    15W40, and 20W50 oils work very well, though.\n\nQ:  Are `quick lube' places any good?\n\nA:  Some do adequate work, but there are quite a few incompetent ones out\n    there.  Let the buyer beware, watch them while they work, make sure\n    that they don't overtorque the oil drain plug, and keep your hand on\n    your wallet at all times.\n\nQ:  Are oil additives like Slick-50 or Tufoil any good?\n\nA:  Slick-50 and Tufoil are PTFE-based additives.  Many of these have\n    come onto the market recently; they are different from the moly-based\n    additives that have been around since the early 50's.  PTFE is the\n    chemical name for Teflon(TM), a trademark owned by DuPont. In general,\n    auto manufacturers do not recommend use of these products.  Most USENET\n    responses to questions on these additives are favorable (slight\n    increase of MPG after application, smoother revving) but long term\n    results (whether PTFE additives are effective after 5K miles) are\n    debatable.  Some manufacturers (such as Saab) claim that either the\n    product or the engine flush that preceeds application causes\n    deterioration of the oil seals and eventual leakage.  Some BMW owners\n    have reported death of valve seals shortly after the addition of\n    Slick 50 to their cars.  This writer has been cautioned by a Slick-50\n    Dealer (!) that Slick-50 should _not_ be used in Japanese motors, as\n    it may clog the oil return passages in the engine.  Otherwise, there are\n    no known reports of damage caused by PTFE additives.\n\n    On the other hand, there are satified Slick 50 customers in the world.\n\nQ:  Do synthetic oils really work?\n\nA:  Yes, but.  More specifically, most auto manufactuers accept synthetics,\n    but disagree with the extremely long oil change intervals claimed by\n    oil manufacturers.  Auto manufacturers recommend that you continue to\n    change oil at the intervals recommended in the owners manual for your\n    car.  Even if you decide to try the longer intervals, at least change\n    the oil filter at regular intervals, as synthetics get just as dirty\n    as conventional oils.\n\n    Synthetic gear lubricants for manual transmissions are another matter\n    entirely; Amsoil, Redline, and AGIP are very highly regarded and very\n    effective.  Mobil 1 synthetic gear lube gets mixed reviews, however.\n\nQ:  Manufacturers are specifying longer and longer oil change intervals.\n    How often should I change my oil?\n\nA:  It depends on how you drive.  If your car always (or nearly always)\n    gets warmed up, and you don't drive it very hard and keep the revs\n    down, the manufacturer's recommendation is probably fine.  If, however,\n    you drive it hard, drive it at high revs, or alternatively, if you\n    only drive it to and from the supermarket so that it doesn't get up\n    to temperature, then you may wish to change oil much more often,\n    perhaps at 3000 mile intervals (given that most manufacturers are\n    now specifying 7500 mile intervals.)  If you don't drive your car\n    much at all (say 7500 miles a year), then you probably want to change\n    oil every six months anyway.  If you are storing a car during the winter,\n    then change oil before storing it and change oil when you bring it out\n    of storage.\n\nMisc. Questions:\n\nQ:  My car has a timing belt.  I hear that bad things happen when they\n    break.  What's the story?\n\nA:  It depends on the internal design of the motor.  Early Ford Escorts,\n    for example, will suffer severe valve damage if the belt breaks, but\n    the newer cars will just require a tow and installation of a new belt.\n    Some Honda motors will not be damaged, but others will be.\n\n    If no replacement interval is specified for your car, then change the\n    belt at least every 60,000 miles; some cars may require more frequent\n    replacement.  Ask your dealer or independent mechanic.  Also, ask if\n    there are any related repairs that should take place at the same time\n    (for example, the same Ford Escorts that suffer valve damage also have\n    a timing belt driven water pump, which has been known to seize,\n    destroying the timing belt, and which then causes major valve damage\n    as a side effect.  Replacing the timing belt while ignoring the water\n    pump can be a costly mistake.)\n\nQ:  Why would anyone be stupid enough to design a motor so that it\n    self destructs when the timing belt breaks?\n\nA:  For performance reasons.  Compromising piston design so that the\n    valves and pistons will not collide requires that the compression\n    ratio of the engine be reduced significantly; this is why you are\n    more likely to avoid valve damage in economy cars than in performance\n    oriented vehicles.\n\nQ:  What causes Unintended Acceleration?\n\nA:  The final report of the National Highway, Transportation, and Safety\n    Administration concluded that unintended acceleration could not be\n    caused by any mechanical failure of the vehicle in question and at the\n    same time be consistent with the physical evidence.  The NHTSA report\n    goes on to conclude that `pedal misapplication' by the vehicle operator\n    is probably the cause.\n-- \nrichard welty        518-393-7228       welty@cabot.balltown.cma.com\n``Nothing good has ever been reported about the full rotation of\n  a race car about either its pitch or roll axis''  -- Carroll Smith\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5074, "properties": {"category": "alt.atheism", "text": "Subject: Re: Americans and Evolution\nFrom: halat@pooh.bears (Jim Halat)\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 10\n\nIn article <j0=5l3=@rpi.edu>, johnsd2@jec322.its.rpi.edu (Dan Johnson) writes:\n>In article 143048IO30436@MAINE.MAINE.EDU, <IO30436@MAINE.MAINE.EDU> () writes:\n\nDan Johnson-\n\nYou don't know me, but take this hand anyway.  Bravo for GO(DS) = 0. \nBeautiful!  Simply beautiful!\n\n-jim halat\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5075, "properties": {"category": "sci.electronics", "text": "From: wex@cs.ulowell.edu (Paul M. Wexelblat)\nSubject: Re: what to do with old 256k SIMMs?\nReply-To: wex@cs.ulowell.edu\nOrganization: Univ. of Lowell CS Dept.\nLines: 11\n\nIn article <1993Apr15.100452.16793@csx.cciw.ca>, u009@csx.cciw.ca (G. Stewart Beal) writes:\n|> >\tI was wondering if people had any good uses for old\n|> >256k SIMMs.  I have a bunch of them for the Apple Mac\n|> >and I know lots of other people do to.  I have tried to\n|> >sell them but have gotten NO interest.\n\nWe use them as Christmas tree decorations, the cat doesn't eat these.\n\n-- \n\n\t...Wex\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5076, "properties": {"category": "rec.sport.hockey", "text": "From: andrew@idacom.hp.com (Andrew Scott)\nSubject: USENET Hockey Draft week 26 standings\nOrganization: Hewlett-Packard, IDACOM Telecommunications Division\nLines: 279\n\nHere are the standings after the April 6 update.  I'll be leaving for Japan\nin 1.5 hours, and I won't be back until April 17.  Consequently, I will not\npost  the week 27 results until April 18.  Email sent between April 13 and\nApril 18 will be processed using the numbers available April 18.\n\n\t- Andrew\n\nUSENET Hockey Draft Standings\nWeek 26\n\nPosn\tTeam\t\t\t\tPts\tProj\tCash\tLast Posn\n\n1.\tDave Wessels                    1478\t1575.3\t1.9\t(1)\n2.\tGilles Carmel                   1389\t1533.8\t56.3\t(5)\n3.\tBob Hill                        1418\t1530.8\t24.0\t(2)\n4.\tThe Awesome Oilers              1366\t1509.9\t68.6\t(3)\n5.\tSeppo Kemppainen                1372\t1508.9\t47.2\t(6)\n6.\tMak \"The Knife\" Paranjape       1376\t1501.8\t31.0\t(4)\n7.\tHillside Raiders                1397\t1490.7\t7.0\t(7)\n8.\tJan Stein                       1354\t1478.8\t35.3\t(9)\n9.\tRangers Of Destiny              1346\t1472.5\t42.0\t(10)\n10.\tthis years model                1368\t1471.8\t17.6\t(8)\n11.\tTapio Repo                      1354\t1461.0\t19.6\t(12)\n12.\tFRANK'S BIG FISH                1341\t1448.3\t22.0\t(14)\n13.\tThe Underachievers              1309\t1446.5\t65.4\t(16)\n14.\tOn Thin Ice                     1333\t1445.5\t32.3\t(11)\n15.\tLindros Losers                  1349\t1436.9\t1.7\t(13)\n16.\tlittlest giants                 1319\t1435.7\t35.6\t(15)\n17.\tGo Flames                       1290\t1422.6\t64.4\t(17)\n18.\tMopar Muscle Men                1328\t1411.7\t3.7\t(19)\n19.\tDIE Penguin Bandwaggoners       1304\t1409.7\t20.2\t(18)\n20.\tSamuel Lau (Calgary, Alberta)   1298\t1383.2\t4.9\t(21)\n21.\tGeneral Accounting Office       1272\t1373.8\t20.9\t(22)\n22.\tMigods Menschen                 1259\t1367.0\t31.6\t(20)\n23.\tBoomer's Boys                   1285\t1366.1\t0.2\t(23)\n24.\tDelaware Wombats                1285\t1356.2\t1.3\t(24)\n25.\tWellsy's Buttheads DEC NH       1223\t1354.4\t52.6\t(27)\n26.\tRocky Mountain High             1270\t1349.3\t1.8\t(29)\n27.\tFife Flyers                     1232\t1346.3\t31.4\t(26)\n28.\tGerald Olchowy                  1231\t1343.0\t33.7\t(25)\n29.\tFluide Glacial                  1246\t1338.5\t18.0\t(28)\n30.\tGaoler                          1227\t1318.3\t11.2\t(30)\n31.\tSmegHeads                       1238\t1313.0\t0.3\t(32)\n32.\tThe Young And The Skateless     1185\t1299.7\t42.9\t(31)\n33.\tArtic Storm                     1179\t1291.8\t39.3\t(43)\n34.\tSam & His Dogs                  1206\t1289.0\t11.6\t(33)\n35.\tNeural Netters                  1199\t1287.9\t11.3\t(35)\n36.\tYoungbucs                       1157\t1286.6\t101.7\t(34)\n37.\tSoft Swedes                     1154\t1275.3\t46.9\t(58)\n38.\tJeff Horvath                    1188\t1262.7\t5.6\t(39)\n39.\tYan The Man Loke                1180\t1261.3\t0.7\t(40)\n40.\tMilton Keynes Kings             1180\t1259.6\t2.8\t(42)\n41.\tHamster from Hoboken            1178\t1257.5\t8.7\t(36)\n42.\tLe Fleur de Lys                 1159\t1257.3\t25.3\t(46)\n43.\tice legion                      1157\t1256.6\t28.8\t(37)\n44.\tSimmonac                        1133\t1254.4\t87.6\t(44)\n45.\tKuehn Crushers                  1137\t1253.1\t45.1\t(72)\n46.\tThe Finnish Force               1149\t1249.4\t22.5\t(48)\n47.\tStreaks                         1117\t1247.1\t54.8\t(38)\n48.\tLegion of Hoth                  1156\t1246.3\t15.8\t(52)\n49.\tGoaldingers                     1146\t1240.6\t22.0\t(45)\n50.\tGrant Marven                    1155\t1236.0\t2.9\t(50)\n51.\tbemybaby                        1161\t1235.2\t7.3\t(49)\n52.\tT C OverAchievers               1162\t1232.8\t2.9\t(47)\n53.\tSkriko Wolves                   1151\t1232.4\t5.4\t(53)\n54.\tBozrah Bruins                   1117\t1230.7\t45.2\t(41)\n55.\tBrian Bergman                   1132\t1229.3\t23.3\t(51)\n56.\tLIPPE                           1132\t1214.7\t13.9\t(65)\n57.\tRandy Coulman                   1140\t1214.5\t5.2\t(56)\n58.\tLAMP LIGHTERS                   1138\t1214.2\t5.9\t(66)\n59.\tDave Snell                      1089\t1212.5\t182.5\t(60)\n60.\tSteven And Mark Dream Team      1133\t1210.6\t3.1\t(53)\n61.\tHoudini's Magicians             1126\t1209.9\t18.3\t(59)\n62.\tReal Bad Toe Jam                1096\t1208.6\t48.9\t(63)\n63.\trec.sport.hockey choices        1137\t1208.3\t1.3\t(63)\n64.\tIowa Hockeyes                   1118\t1205.7\t16.3\t(55)\n65.\tbuffalo soldiers                1085\t1204.6\t62.1\t(57)\n66.\tIndianapolis Bennies            1114\t1200.6\t20.8\t(67)\n67.\tBloom County All Stars          1121\t1199.2\t4.3\t(61)\n68.\tTom                             1109\t1194.0\t13.1\t(68)\n69.\tPhil and Kev's Karma Dudes      1121\t1192.6\t0.8\t(69)\n70.\tAIK Exiles                      1078\t1188.1\t34.5\t(70)\n71.\tDoug Bowles                     1099\t1186.4\t20.0\t(62)\n72.\tBruins                          1117\t1184.9\t0.1\t(75)\n73.\tsmithw                          1095\t1184.3\t21.0\t(71)\n74.\tThe Great Pumpkin               1057\t1178.6\t54.4\t(73)\n75.\tshooting seamen                 1111\t1177.8\t0.1\t(77)\n76.\tFrank Worthless                 1099\t1176.6\t6.3\t(82)\n77.\tNON!                            1089\t1175.7\t16.4\t(74)\n78.\tInvisible Inc                   1104\t1173.5\t1.1\t(79)\n79.\tBrad Gibson                     1075\t1169.0\t27.2\t(89)\n80.\tChubby Checkers                 1074\t1165.6\t16.3\t(85)\n81.\tPLP Fools                       1092\t1164.8\t0.1\t(76)\n82.\tJohn Zupancic                   1063\t1164.2\t27.1\t(78)\n83.\tStaffan Axelsson                1082\t1163.0\t15.1\t(80)\n84.\tDavid Wong                      1038\t1162.5\t66.1\t(87)\n85.\tKortelaisen Kovat               1041\t1160.7\t164.1\t(92)\n86.\tChocolate Rockets               1083\t1158.9\t2.5\t(83)\n87.\tKen DeCruyenaere                1078\t1158.8\t5.0\t(94)\n88.\tCougarmania                     1061\t1154.7\t24.8\t(86)\n89.\tgarryola                        1073\t1152.9\t9.7\t(81)\n90.\tDerrill's Dastardly Dozen       1062\t1149.6\t22.1\t(88)\n91.\tNo Namers                       1033\t1147.6\t58.2\t(91)\n92.\tThe Campi Machine               1022\t1145.8\t65.3\t(90)\n93.\tGary Bergman Fan Club           1071\t1145.1\t5.1\t(98)\n94.\tFisher Dirtbags                 1073\t1144.1\t0.7\t(93)\n95.\tKODIAKS                         1076\t1141.0\t1.3\t(84)\n96.\tArsenal Maple Leafs             1066\t1136.0\t3.8\t(99)\n97.\tThe Kamucks                     1020\t1134.1\t76.1\t(105)\n98.\tBSC Oranienburg                 1067\t1132.1\t7.1\t(102)\n99.\tBloodgamers                     1018\t1127.1\t42.1\t(97)\n100.\tEllis Islanders                 1055\t1125.5\t7.6\t(100)\n101.\tMombasa Mosquitos               1053\t1125.4\t6.1\t(95)\n102.\tEdelweiss                       1049\t1122.8\t2.9\t(101)\n103.\tZachmans Wingers                1006\t1117.7\t49.8\t(103)\n104.\tWormtown Woosbags               1001\t1114.6\t72.6\t(96)\n105.\tDirty White Socks               1008\t1113.6\t43.4\t(106)\n106.\tHurricane Andrew                1040\t1113.5\t7.6\t(104)\n107.\tLarry                           1034\t1113.2\t11.8\t(109)\n108.\tVoteNoOct26                     1010\t1108.5\t31.8\t(108)\n\tBruce's Rented Mules            1033\t1108.5\t11.9\t(110)\n110.\tKing Suke                       1042\t1108.2\t0.1\t(112)\n111.\tTeem Kanada                     1030\t1105.3\t16.0\t(115)\n112.\tBjoern Leaguen                  987\t1104.7\t61.4\t(123)\n113.\tFrank's Follies                 1020\t1101.2\t24.2\t(117)\n114.\tNeil Younger                    985\t1100.9\t77.7\t(120)\n115.\tHet Schot Is Hard               1027\t1100.8\t18.1\t(121)\n116.\tPSV Dartmouth                   1033\t1100.7\t7.1\t(107)\n117.\tPond Slime                      1034\t1096.8\t0.7\t(111)\n118.\tStanford Ice Hawks              1008\t1096.5\t28.2\t(114)\n119.\tSPUDS                           1019\t1096.4\t12.6\t(113)\n120.\tMark Sanders                    1020\t1091.9\t11.1\t(116)\n121.\tOklahoma Stormchasers           1004\t1089.9\t28.3\t(137)\n122.\tTimo Ojala                      1015\t1084.2\t0.3\t(130)\n123.\tNesbitt                         1025\t1083.0\t1.1\t(118)\n124.\tAye Carumba!!!                  1016\t1082.4\t3.9\t(124)\n125.\tKokudo Keikaku Bunnies          976\t1081.2\t40.3\t(119)\n126.\tBlue Talon                      1007\t1080.0\t13.3\t(129)\n127.\tApricot Fuzzfaces               1001\t1078.3\t23.3\t(125)\n128.\tHaral                           1013\t1077.8\t7.3\t(122)\n129.\tgarys team                      995\t1076.5\t17.1\t(126)\n130.\tLate Night with David Letterman 1013\t1075.3\t0.0\t(133)\n131.\tArctic Circles                  974\t1075.2\t37.6\t(132)\n132.\tThe Lost Poots                  1000\t1072.9\t6.7\t(127)\n\tSeattle PFTB                    988\t1072.9\t22.9\t(134)\n134.\tboutch 92-93                    987\t1071.5\t20.0\t(135)\n135.\tDirty Rotten Puckers            1001\t1071.2\t1.2\t(147)\n136.\tFlying Kiwis                    998\t1069.8\t9.1\t(130)\n\tCluster Buster                  996\t1069.8\t7.6\t(136)\n138.\tScott Glenn                     999\t1068.7\t10.2\t(142)\n139.\tDree Hobbs                      988\t1068.5\t13.4\t(146)\n140.\tGO BRUINS                       999\t1066.6\t6.2\t(144)\n141.\tLe Groupe MI                    975\t1065.4\t30.2\t(141)\n142.\tteam gold                       992\t1065.1\t16.7\t(128)\n143.\tCloset Boy's Boys               955\t1063.4\t48.0\t(140)\n144.\tGary Bill Pens Dynasty          982\t1063.2\t19.6\t(151)\n\tMcKees Rocks Rockers            998\t1063.2\t5.1\t(151)\n146.\tTim Rogers                      987\t1061.9\t8.1\t(148)\n147.\tAndy Y F WONG                   982\t1061.1\t21.5\t(143)\n148.\tButtered Waffles                947\t1059.6\t46.0\t(145)\n149.\tBob's Blues                     951\t1059.2\t46.8\t(139)\n150.\tPrinceton Canucks               945\t1058.9\t124.2\t(154)\n151.\tGO HABS GO                      989\t1058.7\t8.0\t(149)\n152.\tWembley LostWeekenders          998\t1057.6\t0.3\t(157)\n153.\tWild Hearted Sons               993\t1057.5\t4.9\t(138)\n154.\tEinstein's Rock Band            994\t1054.8\t0.0\t(160)\n155.\tTap                             989\t1053.0\t0.5\t(150)\n156.\tGoddess Of Fermentation         964\t1051.0\t30.2\t(156)\n157.\tHUNTERS & COLLECTORS            945\t1050.6\t42.4\t(163)\n158.\tDr Joel Fleishman               985\t1048.7\t3.7\t(159)\n159.\tfurleys furies                  983\t1048.6\t3.6\t(153)\n160.\tconvex stars                    979\t1047.9\t5.6\t(161)\n161.\tLes Nordiques                   939\t1046.9\t60.4\t(155)\n162.\tMY TEAM                         932\t1045.3\t174.8\t(167)\n163.\tHubert's Hockey Homeboys        980\t1043.9\t0.6\t(162)\n\tBook 'em Danno's Bushbabies     977\t1043.9\t10.5\t(169)\n165.\triding the pine                 956\t1038.7\t20.7\t(158)\n166.\tSundogs                         975\t1037.1\t0.4\t(166)\n167.\tJeff Nimeroff                   927\t1037.0\t48.8\t(172)\n168.\tSlap Shot Marco                 930\t1036.0\t51.8\t(164)\n169.\tDaryl Turner                    976\t1035.8\t2.4\t(179)\n170.\tThe Dreamers                    921\t1033.1\t63.7\t(180)\n171.\tEast City Jokers                919\t1031.6\t69.1\t(173)\n172.\tFlowers                         921\t1031.4\t113.6\t(168)\n173.\tSatan's Choice                  961\t1030.1\t14.5\t(171)\n174.\tThe Leafs Rule!!!!              943\t1030.0\t25.8\t(165)\n175.\tPierre Mailhot                  969\t1029.9\t2.6\t(174)\n176.\tvoyageurs                       968\t1029.4\t2.7\t(170)\n177.\tSpinal Tap                      928\t1029.1\t41.4\t(176)\n178.\tSan Jose Mahi Mahi              939\t1026.7\t31.8\t(185)\n\tStimpy ADG Zeta                 949\t1026.7\t21.0\t(182)\n180.\tJeff Bachovchin                 916\t1024.7\t46.7\t(175)\n181.\tBulldogs                        941\t1024.5\t23.4\t(184)\n182.\tLANA Inc                        940\t1021.0\t27.3\t(177)\n183.\tBig Bad Bruins                  939\t1020.6\t18.5\t(186)\n184.\tMike Mac Cormack Sydney NS CAN  904\t1019.1\t107.2\t(183)\n185.\tDarse Billings                  925\t1017.8\t34.7\t(178)\n186.\tChappel's Chumps                934\t1017.6\t24.0\t(181)\n187.\tJimParker                       903\t1014.5\t179.0\t(192)\n188.\tRepublican Dirty Tricksters     894\t1008.0\t66.0\t(189)\n189.\tEnforcers                       924\t1007.8\t28.1\t(191)\n190.\tAbsolut Lehigh                  937\t1007.7\t8.9\t(190)\n191.\tYellow Plague                   933\t1005.0\t14.2\t(187)\n192.\tDr.D And The S.O.D.             929\t1003.8\t17.1\t(198)\n193.\tBunch of Misfits                916\t1003.3\t23.8\t(188)\n194.\tNinja Turtles                   942\t1000.8\t1.3\t(194)\n195.\tGreat Expectations              934\t999.3\t2.3\t(196)\n196.\tCherry Bombers                  939\t998.1\t1.2\t(200)\n197.\tHenry's Bar B Q                 941\t998.0\t0.7\t(195)\n198.\tRobyns Team                     907\t993.5\t30.0\t(198)\n199.\tTeam Melville                   891\t991.8\t46.9\t(202)\n200.\tUmpire 4 life                   919\t990.9\t11.1\t(193)\n201.\tAcadien                         914\t988.9\t18.3\t(197)\n202.\tKaufbeuren Icebreakers          894\t988.2\t37.6\t(207)\n203.\tFirebirds                       926\t986.5\t3.9\t(201)\n204.\tJayson's Kinky Pucks            904\t986.1\t26.9\t(203)\n205.\tCobra's Killers                 891\t982.5\t31.7\t(208)\n206.\tOutlaws                         871\t981.6\t164.9\t(206)\n207.\tKuta Papercuts                  912\t981.5\t18.5\t(204)\n208.\tKiller Apes                     902\t979.9\t24.3\t(205)\n209.\tDARMAN'S Dragons                896\t979.4\t28.3\t(211)\n210.\tRoger Smith                     882\t978.2\t39.6\t(212)\n211.\tThose 1st few weeks hurt!       862\t975.1\t55.9\t(210)\n212.\tThundering Herd                 860\t972.8\t163.6\t(218)\n213.\tIKEA Wholesale                  910\t970.2\t1.7\t(214)\n214.\tBelieve it or dont              895\t968.7\t21.1\t(215)\n215.\tfred mckim                      861\t966.8\t93.0\t(217)\n216.\t400 Hurricane                   880\t966.4\t32.1\t(216)\n217.\tCreeping Death                  886\t965.0\t21.3\t(220)\n218.\tKnee Injuries                   897\t964.9\t10.4\t(213)\n219.\tThe 200 Club                    902\t964.7\t6.8\t(209)\n220.\tCrazy Euros                     888\t962.1\t17.9\t(219)\n221.\tFrack Attack                    875\t961.8\t27.3\t(226)\n222.\tTodd's Turkeys                  898\t957.0\t1.9\t(229)\n223.\tRyan's Renegades                858\t956.4\t50.9\t(225)\n224.\tCafall and Crew                 862\t955.9\t38.3\t(222)\n225.\tpig vomit                       894\t955.2\t1.3\t(227)\n226.\tIce Strykers                    848\t954.4\t105.4\t(221)\n227.\tFighting Geordies               850\t954.1\t141.6\t(223)\n228.\tCDN Stuck in Alabama            886\t945.7\t10.3\t(231)\n229.\tShip's Way                      884\t943.4\t8.7\t(233)\n230.\tSwillbellies                    870\t942.8\t18.7\t(228)\n231.\tOz                              851\t941.8\t35.0\t(235)\n232.\tChris of Death                  835\t939.3\t83.6\t(234)\n233.\tBanko's Beer Rangers            875\t938.6\t4.2\t(230)\n234.\tNY Flames                       872\t938.1\t7.8\t(232)\n235.\tLaubsters II                    828\t937.4\t201.6\t(237)\n236.\tdayton bomber                   882\t935.1\t0.0\t(241)\n237.\tZipper Heads                    847\t931.7\t33.9\t(224)\n238.\tNinja Bunnies                   826\t928.1\t44.9\t(236)\n239.\tJoliet Inmates                  832\t926.0\t45.8\t(239)\n240.\tWidefield White Wolves          832\t924.1\t36.9\t(242)\n241.\tDaves Team                      834\t920.9\t32.0\t(238)\n242.\tGreat Scott                     814\t917.8\t73.3\t(240)\n243.\tSouth Carolina Tiger Paws       806\t915.1\t78.4\t(243)\n244.\tSANDY'S SABRES                  854\t910.8\t4.7\t(245)\n245.\tFlorida Tech Burgh Team         809\t904.6\t49.3\t(250)\n246.\tThe Ice Holes                   850\t903.9\t2.7\t(246)\n247.\tLeos Blue Chips                 845\t902.9\t10.4\t(244)\n248.\tFor xtc                         837\t897.8\t8.2\t(248)\n249.\troadrunners                     826\t895.9\t18.5\t(249)\n250.\tMudville Kings                  816\t894.0\t27.6\t(251)\n251.\tRedliners                       820\t890.8\t15.9\t(253)\n252.\tPat Phillips                    827\t889.1\t10.1\t(247)\n253.\tNew Jersey Rob                  835\t883.0\t0.7\t(252)\n254.\tStewart Clamen                  821\t869.4\t1.6\t(255)\n255.\tDemon Spawn                     782\t860.1\t25.0\t(254)\n256.\tSunnyvale Storm                 772\t813.5\t0.2\t(256)\n257.\tAllez les Blues                 713\t810.7\t476.9\t(257)\n258.\tUp For Sale Hockey Club         725\t795.0\t23.0\t(260)\n259.\tPetes Picks                     689\t788.1\t168.5\t(258)\n260.\tRINACO                          682\t781.6\t114.0\t(259)\n261.\tBrenz Revenge                   669\t718.5\t4.0\t(261)\n262.\tDinamo Riga                     571\t663.8\t571.6\t(262)\n-- \nAndrew Scott                    | andrew@idacom.hp.com\nHP IDACOM Telecom Operation     | (403) 462-0666 ext. 253\n\nDuring the Roman Era, 28 was considered old...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5077, "properties": {"category": "rec.motorcycles", "text": "From: lotto@laura.harvard.edu (Jerry Lotto)\nSubject: Re: where to put your helmet\nOrganization: Chemistry Dept., Harvard University\nLines: 25\nDistribution: world\nNNTP-Posting-Host: laura.harvard.edu\nIn-reply-to: ryan_cousineau@compdyn.questor.org's message of 19 Apr 93 18:25:00 GMT\n\n>>>>> On 19 Apr 93 18:25:00 GMT, ryan_cousineau@compdyn.questor.org (Ryan Cousineau)  said:\nCB>        DON'T BE SO STUPID AS TO LEAVE YOUR HELMET ON THE SEAT WHERE IT CAN\nCB>        FALL DOWN AND GO BOOM!\n\nRyan> Another good place for your helmet is your mirror (!). I kid you not.\n\nThis is very bad advice.  Helmets have two major impact absorbing\nlayers... a hard outer shell and a closed-cell foam impact layer.\nMost helmets lose their protective properties because the inner liner\ncompacts over time, long before the outer shell is damaged or\ndelaminates from age.  Dr. Hurt tested helmets for many years\nfollowing his landmark study and has estimated that a helmet can lose\nup to 80% of it's effectiveness from inner liner compression.  I have\na video he produced that discusses this phenomenon in detail.\n\nPuncture compression of the type caused by mirrors, sissy bars, and\nother relatively sharp objects is the worst offender.  Even when the\ncomfort liner is unaffected, dents and holes in the foam can seriously\ndegrade the effectiveness of a helmet.  If you are in the habit of\n\"parking your lid\" on the mirrors, I suggest you look under the\ncomfort liner at the condition of the foam.  If it is significantly\ndamaged (or missing :-), replace the helmet.\n--\nJerry Lotto <lotto@lhasa.harvard.edu>         MSFCI, HOGSSC, BCSO, AMA, DoD #18\nChemistry Dept., Harvard Univ.  \"It's my Harley, and I'll ride if I want to...\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5078, "properties": {"category": "soc.religion.christian", "text": "From: PETCH@gvg47.gvg.tek.com (Chuck)\nSubject: Daily Verse\nLines: 5\n\n\n   When he came near the place where the road goes down the Mount of Olives,\nthe whole crowd of disciples began joyfully to praise God in loud voices for\nall the miracles they had seen: \nLuke 19:37\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5079, "properties": {"category": "sci.med", "text": "From: caf@omen.UUCP (Chuck Forsberg WA7KGX)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nOrganization: Omen Technology INC, Portland Rain Forest\nLines: 33\n\nIn article <19687@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>\n>In article <1993Apr13.093300.29529@omen.UUCP> caf@omen.UUCP (Chuck Forsberg WA7KGX) writes:\n>>\n>>\"Weight rebound\" is a term used in the medical literature on\n>>obesity to denote weight regain beyond what was lost in a diet\n>>cycle.  There are any number of terms which mean one thing to\n>\n>Can you provide a reference to substantiate that gaining back\n>the lost weight does not constitute \"weight rebound\" until it\n>exceeds the starting weight?  Or is this oral tradition that\n>is shared only among you obesity researchers?\n\nNot one, but two:\n\nObesity in Europe 88,\nproceedings of the 1st European Congress on Obesity\n\nAnnals of NY Acad. Sci. 1987\n\n\n>-- \n>----------------------------------------------------------------------------\n>Gordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\n>geb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n>----------------------------------------------------------------------------\n\n\n-- \nChuck Forsberg WA7KGX          ...!tektronix!reed!omen!caf \nAuthor of YMODEM, ZMODEM, Professional-YAM, ZCOMM, and DSZ\n  Omen Technology Inc    \"The High Reliability Software\"\n17505-V NW Sauvie IS RD   Portland OR 97231   503-621-3406\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.243+0000", "event": "documents", "entityId": 5080, "properties": {"category": "sci.med", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Twitching eyelid\nSummary: Different cause\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 9\n\nI'm surprised nobody mentioned that twitching of the eyelid can be a\nsymptom of an infection, especially if it also itches or stings.\n(It happened to me, and antibiotic eyedrops cleared it up nicely.)\n\n-- \n:-  Michael A. Covington         internet mcovingt@ai.uga.edu :    *****\n:-  Artificial Intelligence Programs       phone 706 542-0358 :  *********\n:-  The University of Georgia                fax 706 542-0349 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5081, "properties": {"category": "comp.windows.x", "text": "From: eanders@cthulhu.sura.net (Eric Anderson)\nSubject: Re: Is Xlib thread safe?\nOrganization: SURAnet, College Park, MD, USA, NA, Earth, Milky Way\nLines: 26\nNNTP-Posting-Host: cthulhu.sura.net\nKeywords: thread safe mutexes LockDisplay\n\nIn article <9304132134.AA24803@alex.lcs.mit.edu> gildea@expo.lcs.mit.EDU (Stephen Gildea) writes:\n>No, the R5 Xlib is not thread-safe.  But we are working on it.\n>See my article in The X Resource, issue 5.  Consortium members\n>will have a multi-threaded version soon, and it will be part\n>of R6.\nThere is a multi threaded xlib version written.\nDo an archie search for mt-xlib:\nHost export.lcs.mit.edu\n\n    Location: /contrib\n      DIRECTORY drwxr-xr-x        512  Jul 30 1992  mt-xlib\n    Location: /contrib/mt-xlib-1.1\n           FILE -rw-r--r--     106235  Jan 21 14:02  mt-xlib-xhib92.ps.Z\n           FILE -rw-r--r--    1658123  Jan 21 14:03  mt-xlib.tar.Z\n    Location: /contrib/mt-xlib\n           FILE -rw-r--r--     106235  Jul 30 1992  mt-xlib-xhib92.ps.Z\n           FILE -rw-r--r--    1925529  Jul 30 1992  mt-xlib.tar.Z\n\net.al.\n          -Eric \n*********************************************************\n\"Overhead, without any fuss, the stars were going out.\"\n           -The Nine Billion Names of God\n\"Yes, you're very smart.  Shut up.\"\n           -In \"The Princess Bride\"\n*********************************************************\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5082, "properties": {"category": "misc.forsale", "text": "From: fml2@cunixb.cc.columbia.edu (Francis M Lee)\nSubject: *** Dayna EtherPrint 10BASE-T (New & Cheap) ***\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: fml2@cunixb.cc.columbia.edu (Francis M Lee)\nOrganization: Columbia University\nLines: 28\n\nPosting for a friend.\nContact directly or leave e-mail and I can forward.\n\nBrand spanking new.\nStill in original package.\nNever opened.\n\nDayna EtherPrint-T.\nRJ-45 connector to support 10BASE-T-compliant networks.\nConnect LocalTalk-compatible printers directly to Ethernet networks.\nWill work with _ANY_ LocalTalk-compatible network printer, such as\n   LaserWriter\n   ImageWriter\n   IBM 4216 Personal Page Printer II\n   Hewlett-Packard DeskWriter\n   Hewlett-Packard LaserJet printer family\n   QUME printers\nCan daisy-chain a maximum of 4 LocalTalk devices, such as\n   workstations\n   modems\n   printers\nto a single EtherPrint device.\nSupport AppleTalk Phase 1 and Phase 2 protocols.\n\n$300 + shipping.\nCheap ... $329 new without 10BASE-T in MAC World.\n\nContact Kam Poon at 718-332-2993 after 6 PM EST.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5083, "properties": {"category": "rec.sport.hockey", "text": "From: hammerl@acsu.buffalo.edu (Valerie S. Hammerl)\nSubject: Re: Goalie Mask Update\nOrganization: UB\nLines: 19\nNntp-Posting-Host: lictor.acsu.buffalo.edu\n\nIn article <93289@hydra.gatech.EDU> gtd597a@prism.gatech.EDU (Hrivnak) writes:\n>\n>\tHere are the results after three days of voting. Remember 3pts for \n>1st, 2 for 2nd, and 1 for 3rd. Also, you can still turn in votes! And.. if\n>the guy isn't a regular goalie or he is retired, please include the team! \n>Thanks for your time, and keep on sending in those votes!\n\n> Glenn Healy (NYI), Tommy Soderstron (???), Ray LeBlanc (USA).\n                     ^^^^^^^^^^^^^^^^^^^^^^\n\nSoderstrom plays with Philly, but he doesn't have a moulded mask.\nHe's got the helmet and cage variety, in white.  Or at least that's\nwhat he wore thirteen hours ago.\n\n-- \nValerie Hammerl\t\t\t\"Some days I have to remind him he's not \nhammerl@acsu.buffalo.edu\tMario Lemieux.\"  Herb Brooks on Claude\nacscvjh@ubms.cc.buffalo.edu\tLemieux, top scorer for the Devils, but \nv085pwwpz@ubvms.cc.buffalo.edu  known for taking dumb penalties.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5084, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: Put ex. syquest in Centris 610?\nFrom: kmoffatt@cstp.umkc.edu\nOrganization: UM - Kansas City, Computer Science\nNNTP-Posting-Host: vax2.cstp.umkc.edu\nLines: 17\n\nI remember reading a thread a few days ago that mentioned removing an external\nsyquest drive from its case and dropping it in the internal drive of a Centris.\n. . I was going to do that with my 610, but had a couple of questions.  My\nPLI 80M syquest drive has a wire from the drive to an id# switch on the\noutside of the case.  Where do I connect this switch??  Can the computer just\n\"tell\" with internal drives?  \n\tI noticed that the drive will lay over part of the motherboard (I\ndidn't look closely, but I seem to recall it laying over the ram that's\nsoldered onto the motherboard?  Would that cause problems?\n\tOne last question!  Is there anywhere to order a faceplate cover?  \nthe drive's front panel is smaller than the space left in the case (the\ndrive's panel is the same size as the spotsBM clone's cases).  Should I just\ncut a hole in the plastic panel that is currently holding tmpty place?\n\nAns are welcomed!  Thanks!\nKeith Moffatt\nKMOFFATT@VAX2.CSTP.UMKC.EDU\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5085, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: hearing sinners\nLines: 18\n\nOn the question, \"Does God hear the prayers of sinners?\" we need to\ndistinguish.\n\nIf we say that He never hears the prayers of any who have sinned, we\nmake pointless all prayers by anyone born less than 19 centuries\nago.\n\nBut if we consider the prayers of the impenitent sinner, of someone\nwho says, \"Lord, I want you to do this for me, but don't expect me\nto change my way of life,\" that is a different matter. Even here, I\nwould not venture to say that God never grants such petitions (just\nas He sends sun and rain on the evil and on the good). However, if\nsomeone we know well is praying to God in that spirit, we might have\nthe responsibility to say, \"Remember, if God's help is real, then so\nare His commands.\"\n\n Yours,\n James Kiefer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5086, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: Steve Frampton <frampton@vicuna.ocunix.on.ca>\nSubject: Is \"Kermit\" available for Windows 3.0/3.1?\nSummary: Looking for Windows Kermit.\nKeywords: windows kermit comm app\nReply-To: frampton@vicuna.ocunix.on.ca\nDistribution: world\nOrganization: Vicuna Systems, Kingston, Ontario, CANADA\nLines: 16\nContent-Type: text/plain; charset=us-ascii\n\nHello all:\n\nI was wondering, is the \"Kermit\" package (the actual package, not a\ndifferent program with Kermit file transfers) available for Microsoft\nWindows 3.0/3.1?\n\nAny information would be greatly appreciated.  Please e-mail or post.\n\nThanks in advance!\n\n+--------+< Unabashed Shabba Ranks Fan! >+------+--------------------+\n| Steve Frampton - frampton@vicuna.ocunix.on.ca | Steve Frampton     |\n| I collect postcards!  If you send me one from | 501-A Princess St. |\n| your area, I'll send one in return.  Send to >| Kingston, Ontario  |\n| (Don't forget both email and mailing address) | CANADA   K7L 1C3   |\n+-----------------------------------------------+--------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5087, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rlister@cti.com (Russell Lister)\nSubject: Re: Why is my mouse so JUMPY? (MS MOUSE)\nOrganization: Comprehensive Technologies Int., Inc.\nLines: 49\n\necktons@ucs.byu.edu (Sean Eckton) writes:\n\n>I have a Microsoft Serial Mouse and am using mouse.com 8.00 (was using 8.20 \n>I think, but switched to 8.00 to see if it was any better).  Vertical motion \n>is nice and smooth, but horizontal motion is so bad I sometimes can't click \n>on something because my mouse jumps around.  I can be moving the mouse to \n>the right with relatively uniform motion and the mouse will move smoothly \n>for a bit, then jump to the right, then move smoothly for a bit then jump \n>again (maybe this time to the left about .5 inch!).  This is crazy!  I have \n>never had so much trouble with a mouse before.  Anyone have any solutions?  \n\n>Does Microsoft think they are what everyone should be? <- just venting steam!\n\n  I had the same problem.  At first, I thought it was the video driver and \n  made sure I had the most current drivers, because the problem was most\n  evident at SVGA resolution modes.  It didn't help and after a bit of\n  experimentation, determined that the problem existed in standard VGA\n  resolution mode. It was just much less noticeable.\n  \n  My mouse was an older MS serial version I bought second hand in 1990. It\n  worked just fine in DOS and DOS based graphic applications.  On the \n  guess that the problem was with the resolution of the mouse, I borrowed\n  a new mouse (a MS bus model) and tried it.  That solved the problem.\n  So, if your mouse is old, you may want to try replacing it for a newer\n  one.\n  \n>---\n>Sean Eckton\n>Computer Support Representative\n>College of Fine Arts and Communications\n\n>D-406 HFAC\n>Brigham Young University\n>Provo, UT  84602\n>(801)378-3292\n\n>hfac_csr@byu.edu\n>ecktons@ucs.byu.edu\n-- \nsignoff\n------------------------------------------------------------------------------\nRuss Lister  rlister@cti.com  -or-  {well connected systen}!uunet!cti1!rlister \nComprehensive Technologies Int'l Inc., Arlington, VA\n==============================================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5088, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Slavery (was Re: Why is sex only allowed in marriage: ...)\nOrganization: sgi\nLines: 37\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1993Apr15.081303.16532@Cadence.COM>, mas@Cadence.COM (Masud Khan) writes:\n|> \n|> Leonard, I'll give you an example of this....\n|> \n|> My father recently bought a business, the business price was 150,000 pounds\n|> and my father approached the people in the community for help, he raised\n|> 60,000 pounds in interest free loans from friends and relatives and \n|> Muslims he knew, 50,000 had cash and the rest he got a business loan, after\n|> paying off the Muslim lenders many of them helped him with further loans\n|> to help him clear the bank debt and save him from further intrest, this\n|> is an example of a Muslim community helping one another, why did they help\n|> because of their common identity as Muslims. In turn my father has helped\n|> with people buying houses to minimise the amount of intrest they pay \n|> and in some cases buy houses intrest free with the help of those more\n|> fortunate in the community. \n\nSorry.   Wrong.    This is how banks got started in the first place.\nSooner or later your father and his pals will lend money to someone\nwho eventually goes broke, and then they will realise that they\nhavn't been managing risk very well.   Then they will ask themselves\nwhat it is that they need to quantify risk, and to persuade borrowers\nnot to take on greater loans than they can carry.    And since they\ndon't all want the worry of doing the calculations and handling the\nmoney, some of them will specialise in that.\n\nThen they'll reinvent interest, but like good Muslims, they'll call\nit something else.\n\n|> \n|> The fact is Leonard it DOES work without a fluffy bunny in sight!\n|> iThat is the beauty of Islam.\n\nRiiiight.   That's why John Major opened a new government department\na couple of months ago to help to promote minority business.   Because\nthey can do it all themselves by lending one another cups of sugar.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5089, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenian slaughter of defenseless Muslim children and pregnant women.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 81\n\nIn article <1993Apr20.232449.22318@kpc.com> henrik@quayle.kpc.com  writes:\n\nBM] Gimme a break.  CAPITAL letters, or NOT, the above is pure nonsense.  \nBM] It seems to me that short sighted Armenians are escalating the hostilities\n\t\t        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n>   Again, Armenians in KARABAKH are SIMPLY defending themselves. What do\n\nThe winding down of winter puts you in a heavy 'Arromdian' mood? I'll \nsee if I can get our dear \"Mehmetcik\" to write you a letter giving\nyou and your criminal handlers at the ASALA/SDPA/ARF Terrorism and\nRevisionism Triangle some military pointers, like how to shoot armed\nadult males instead of small Muslim children and pregnant women.\n\n\nSource: 'The Times,' 3 March 1992\n\nMASSACRE UNCOVERED....\n\nBy ANATOL LIEVEN,\n\nMore than sixty bodies, including those of women and children, have \nbeen spotted on hillsides in Nagorno-Karabakh, confirming claims \nthat Armenian troops massacred Azeri refugees. Hundreds are missing.\n\nScattered amid the withered grass and bushes along a small valley \nand across the hillside beyond are the bodies of last Wednesday's \nmassacre by Armenian forces of Azerbaijani refugees.\n\nFrom that hill can be seen both the Armenian-controlled town of \nAskeran and the outskirts of the Azerbaijani military headquarters \nof Agdam. Those who died very nearly made it to the safety of their \nown lines.\n\nWe landed at this spot by helicopter yesterday afternoon as the last \ntroops of the Commonwealth of Independent states began pulling out. \nThey left unhindered by the warring factions as General Boris Gromov, \nwho oversaw the Soviet withdrawal from Afghanistan, flew to Stepanakert \nto ease their departure.\n\nA local truce was enforced to allow the Azerbaijaines to collect their \ndead and any refugees still hiding in the hills and forest. All the \nsame, two attack helicopters circled continuously the nearby Armenian \npositions.\n\nIn all, 31 bodies could be counted at the scene. At least another \n31 have been taken into Agdam over the past five days. These figures \ndo not include civilians reported killed when the Armenians stormed \nthe Azerbaijani town of Khodjaly on Tuesday night. The figures also \ndo not include other as yet undiscovered bodies\n\nZahid Jabarov, a survivor of the massacre, said he saw up to 200 \npeople shot down at the point we visited, and refugees who came \nby different routes have also told of being shot at repeatedly and \nof leaving a trail of bodies along their path. Around the bodies \nwe saw were scattered possessions, clothing and personnel documents. \nThe bodies themselves have been preserved by the bitter cold which\nkilled others as they hid in the hills and forest after the massacre. \nAll are the bodies of ordinary people, dressed in the poor, ugly \nclothing of workers.\n\nOf the 31 we saw, only one policeman and two apparent national \nvolunteers were wearing uniform. All the rest were civilians, \nincluding eight women and three small children. TWO GROUPS, \nAPPARENTLY FAMILIES, HAD FALLEN TOGETHER, THE CHILDREN CRADLED \nIN THE WOMEN'S ARMS.\n\nSEVERAL OF THEM, INCLUDING ONE SMALL GIRL, HAD TERRIBLE HEAD \nINJURIES: ONLY HER FACE WAS LEFT. SURVIVORS HAVE TOLD HOW THEY \nSAW ARMENIANS SHOOTING THEM POINT BLANK AS THEY LAY ON THE GROUND.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5090, "properties": {"category": "soc.religion.christian", "text": "From: bfinnert@chaph.usc.edu (Brian Finnerty)\nSubject: Mary's assumption\nOrganization: University of Southern California, Los Angeles, CA\nLines: 34\n\nA few points about Mary's being taken into heaven at the end of her life on\nearth:\n\nOne piece of evidence for Mary's assumption into heaven is the fact\nthat no Christian church ever claimed to be the sight where she was\nburied. Some Christian churches claimed to be located at the final\nresting places of Peter, Mark, and other saints, but no one ever\nclaimed to possess the body of Mary, the greatest of the saints. Why?\nBecause everyone knew that she had been taken up into heaven.\n\nAlthough there is no definitive scriptural proof for the assumption of\nMary, some passages seem suggestive, like the passage in Revelation\nthat describes a woman giving birth to a Son and later being crowned\nin the heavens. Of course, the woman in this passage has other\ninterpretations; she can also be taken a symbol for the Church.\n\nThe assumption of Mary makes sense because of her relationship to\nChrist.  Jesus, perfect God and perfect man, fulfilled the\nrequirements of the law perfectly.  Under the law God gave to us, we\nare to honor our mother and father, and Christ's act of taking his\nmother into heaven is part of his fulfillment of that law. Also, he\ntook his flesh from her, so it seems appropriate that he decide not to\nallow her flesh to rot in the grave.\n\nOne last point: an ex-Catholic attempted to explain Catholic doctrine\non the assumption by asserting it is connected to a belief that Mary\ndid not die. This is not a correct summary of what Catholics believe.\nThe dogma of the assumption was carefully phrased to avoid saying\nwhether Mary did or did not die. In fact, the consensus among Catholic\ntheologians seems to be that Mary in fact did die. This would make\nsense: Christ died, and his Mother, who waited at the foot of the\ncross, would want to share in his death.\n\nBrian Finnerty\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5091, "properties": {"category": "sci.electronics", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: how can 0.022 uF be different from two 0.047 in series?!\nOrganization: U of Toronto Zoology\nLines: 13\n\nIn article <1993Apr19.185326.9830@Princeton.EDU> mg@cs.princeton.edu (Michael Golan) writes:\n>The board itself is also identical, with room for all three caps. The\n>US/Can versions is clearly indicated in both places.\n>\n>How does that make sense? 0.047/2 is 0.0235, essentially 0.022 for caps\n>(there are just standard caps, no special W/type/precision). \n\nThis may be a safety issue; the CSA is more paranoid in certain areas than\nUL and such.  Two caps in series means that you don't have a short if one\nof them shorts.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5092, "properties": {"category": "rec.sport.baseball", "text": "From: sbp002@acad.drake.edu\nSubject: Re: Braves Pitching UpdateDIR\nLines: 41\nNntp-Posting-Host: acad.drake.edu\nOrganization: Drake University, Des Moines, Iowa, USA\n\nIn article <1993Apr14.200649.12578@pts.mot.com>, ep502dn@pts.mot.com (Dave Naehring X2079 P7630) writes:\n> In article 2482@adobe.com, snichols@adobe.com (Sherri Nichols) writes:\n>>Every single piece of evidence we can find points to Major League Baseball\n>>being 50% offense, 50% defense.  A run scored is just as important as a run\n>>prevented.  \n>>\n> This certainly passes the \"common sense test\" for me, but is there any\n> statistical evidence to say what percent of defense is pitching and what\n> percent is fielding?  I'd really like to know.  BTW, Sherri, thanks for \n> the DA data I find it fascinating.\n\nOf course a run scored is just as important as a run prevented.\nJust as a penny saved is a penny earned.  Enough with the cliches.\nMy point is that IF the Braves starters are able to live up to\ntheir potential, they won't need much offensive support.\nI realize this is a BIG IF.  This staff leaves the '92 BoSox in the dust.\nThere is no legitimate comparison.  Two Cy Young winners, and three other\npitchers that most any team in the league would kill to have as their first\nor second starter.  It seems to me that when quality pitchers take the\nmound, the other teams score less runs.  The team that scores the most \nruns wins.  This puts the team with the better pitching at the advantage\n(providing they can stop the opposing team from scoring runs).  A low \nscoring game would clearly benefit the Braves.  They should have many \nlow scoring games due to their excellent pitching and below average hitting.\nOn the flip side, if you had a starting lineup of great offensive players,\nI would be arguing that this team would not need great pitchers.\nThey would have an advantage because they could simply outscore their\nopponent.  The name of the games is to win.  Even Ray Knight knows that\nyou do this by putting more runs up on the scoreboard.\nAll I'm trying to say is that if you assemble the quality pitchers\nlike the Braves have, the offense doesn't need to be as strong.\n\n\nSam\n> \n> -Dave\n> \n> \n>>Sherri Nichols\n>>snichols@adobe.com \n>                                                          \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5093, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 10/15 - Planetary Probe History\nSupersedes: <probe_730956556@cs.unc.edu>\nOrganization: University of North Carolina, Chapel Hill\nLines: 527\nDistribution: world\nExpires: 6 May 1993 19:59:36 GMT\nNNTP-Posting-Host: mahler.cs.unc.edu\nKeywords: Frequently Asked Questions\n\nArchive-name: space/probe\nLast-modified: $Date: 93/04/01 14:39:19 $\n\nPLANETARY PROBES - HISTORICAL MISSIONS\n\n    This section was lightly adapted from an original posting by Larry Klaes\n    (klaes@verga.enet.dec.com), mostly minor formatting changes. Matthew\n    Wiener (weemba@libra.wistar.upenn.edu) contributed the section on\n    Voyager, and the section on Sakigake was obtained from ISAS material\n    posted by Yoshiro Yamada (yamada@yscvax.ysc.go.jp).\n\nUS PLANETARY MISSIONS\n\n\n    MARINER (VENUS, MARS, & MERCURY FLYBYS AND ORBITERS)\n\n    MARINER 1, the first U.S. attempt to send a spacecraft to Venus, failed\n    minutes after launch in 1962. The guidance instructions from the ground\n    stopped reaching the rocket due to a problem with its antenna, so the\n    onboard computer took control. However, there turned out to be a bug in\n    the guidance software, and the rocket promptly went off course, so the\n    Range Safety Officer destroyed it. Although the bug is sometimes claimed\n    to have been an incorrect FORTRAN DO statement, it was actually a\n    transcription error in which the bar (indicating smoothing) was omitted\n    from the expression \"R-dot-bar sub n\" (nth smoothed value of derivative\n    of radius). This error led the software to treat normal minor variations\n    of velocity as if they were serious, leading to incorrect compensation.\n\n    MARINER 2 became the first successful probe to flyby Venus in December\n    of 1962, and it returned information which confirmed that Venus is a\n    very hot (800 degrees Fahrenheit, now revised to 900 degrees F.) world\n    with a cloud-covered atmosphere composed primarily of carbon dioxide\n    (sulfuric acid was later confirmed in 1978).\n\n    MARINER 3, launched on November 5, 1964, was lost when its protective\n    shroud failed to eject as the craft was placed into interplanetary\n    space. Unable to collect the Sun's energy for power from its solar\n    panels, the probe soon died when its batteries ran out and is now in\n    solar orbit. It was intended for a Mars flyby with MARINER 4.\n\n    MARINER 4, the sister probe to MARINER 3, did reach Mars in 1965 and\n    took the first close-up images of the Martian surface (22 in all) as it\n    flew by the planet. The probe found a cratered world with an atmosphere\n    much thinner than previously thought. Many scientists concluded from\n    this preliminary scan that Mars was a \"dead\" world in both the\n    geological and biological sense.\n\n    MARINER 5 was sent to Venus in 1967. It reconfirmed the data on that\n    planet collected five years earlier by MARINER 2, plus the information\n    that Venus' atmospheric pressure at its surface is at least 90 times\n    that of Earth's, or the equivalent of being 3,300 feet under the surface\n    of an ocean.\n\n    MARINER 6 and 7 were sent to Mars in 1969 and expanded upon the work\n    done by MARINER 4 four years earlier. However, they failed to take away\n    the concept of Mars as a \"dead\" planet, first made from the basic\n    measurements of MARINER 4.\n\n    MARINER 8 ended up in the Atlantic Ocean in 1971 when the rocket\n    launcher autopilot failed.\n\n    MARINER 9, the sister probe to MARINER 8, became the first craft to\n    orbit Mars in 1971. It returned information on the Red Planet that no\n    other probe had done before, revealing huge volcanoes on the Martian\n    surface, as well as giant canyon systems, and evidence that water once\n    flowed across the planet. The probe also took the first detailed closeup\n    images of Mars' two small moons, Phobos and Deimos.\n\n    MARINER 10 used Venus as a gravity assist to Mercury in 1974. The probe\n    did return the first close-up images of the Venusian atmosphere in\n    ultraviolet, revealing previously unseen details in the cloud cover,\n    plus the fact that the entire cloud system circles the planet in four\n    Earth days. MARINER 10 eventually made three flybys of Mercury from 1974\n    to 1975 before running out of attitude control gas. The probe revealed\n    Mercury as a heavily cratered world with a mass much greater than\n    thought. This would seem to indicate that Mercury has an iron core which\n    makes up 75 percent of the entire planet.\n\n\n    PIONEER (MOON, SUN, VENUS, JUPITER, and SATURN FLYBYS AND ORBITERS)\n\n    PIONEER 1 through 3 failed to meet their main objective - to photograph\n    the Moon close-up - but they did reach far enough into space to provide\n    new information on the area between Earth and the Moon, including new\n    data on the Van Allen radiation belts circling Earth. All three craft\n    had failures with their rocket launchers. PIONEER 1 was launched on\n    October 11, 1958, PIONEER 2 on November 8, and PIONEER 3 on December 6.\n\n    PIONEER 4 was a Moon probe which missed the Moon and became the first\n    U.S. spacecraft to orbit the Sun in 1959. PIONEER 5 was originally\n    designed to flyby Venus, but the mission was scaled down and it instead\n    studied the interplanetary environment between Venus and Earth out to\n    36.2 million kilometers in 1960, a record until MARINER 2. PIONEER 6\n    through 9 were placed into solar orbit from 1965 to 1968: PIONEER 6, 7,\n    and 8 are still transmitting information at this time. PIONEER E (would\n    have been number 10) suffered a launch failure in 1969.\n\n    PIONEER 10 became the first spacecraft to flyby Jupiter in 1973. PIONEER\n    11 followed it in 1974, and then went on to become the first probe to\n    study Saturn in 1979. Both vehicles should continue to function through\n    1995 and are heading off into interstellar space, the first craft ever\n    to do so.\n\n    PIONEER Venus 1 (1978) (also known as PIONEER Venus Orbiter, or PIONEER\n    12) burned up in the Venusian atmosphere on October 8, 1992. PVO made\n    the first radar studies of the planet's surface via probe. PIONEER Venus\n    2 (also known as PIONEER 13) sent four small probes into the atmosphere\n    in December of 1978. The main spacecraft bus burned up high in the\n    atmosphere, while the four probes descended by parachute towards the\n    surface. Though none were expected to survive to the surface, the Day\n    probe did make it and transmitted for 67.5 minutes on the ground before\n    its batteries failed.\n\n\n    RANGER (LUNAR LANDER AND IMPACT MISSIONS)\n\n    RANGER 1 and 2 were test probes for the RANGER lunar impact series. They\n    were meant for high Earth orbit testing in 1961, but rocket problems\n    left them in useless low orbits which quickly decayed.\n\n    RANGER 3, launched on January 26, 1962, was intended to land an\n    instrument capsule on the surface of the Moon, but problems during the\n    launch caused the probe to miss the Moon and head into solar orbit.\n    RANGER 3 did try to take some images of the Moon as it flew by, but the\n    camera was unfortunately aimed at deep space during the attempt.\n\n    RANGER 4, launched April 23, 1962, had the same purpose as RANGER 3, but\n    suffered technical problems enroute and crashed on the lunar farside,\n    the first U.S. probe to reach the Moon, albeit without returning data.\n\n    RANGER 5, launched October 18, 1962 and similar to RANGER 3 and 4, lost\n    all solar panel and battery power enroute and eventually missed the Moon\n    and drifted off into solar orbit.\n\n    RANGER 6 through 9 had more modified lunar missions: They were to send\n    back live images of the lunar surface as they headed towards an impact\n    with the Moon. RANGER 6 failed this objective in 1964 when its cameras\n    did not operate. RANGER 7 through 9 performed well, becoming the first\n    U.S. lunar probes to return thousands of lunar images through 1965.\n\n\n    LUNAR ORBITER (LUNAR SURFACE PHOTOGRAPHY)\n\n    LUNAR ORBITER 1 through 5 were designed to orbit the Moon and image\n    various sites being studied as landing areas for the manned APOLLO\n    missions of 1969-1972. The probes also contributed greatly to our\n    understanding of lunar surface features, particularly the lunar farside.\n    All five probes of the series, launched from 1966 to 1967, were\n    essentially successful in their missions. They were the first U.S.\n    probes to orbit the Moon. All LOs were eventually crashed into the lunar\n    surface to avoid interference with the manned APOLLO missions.\n\n\n    SURVEYOR (LUNAR SOFT LANDERS)\n\n    The SURVEYOR series were designed primarily to see if an APOLLO lunar\n    module could land on the surface of the Moon without sinking into the\n    soil (before this time, it was feared by some that the Moon was covered\n    in great layers of dust, which would not support a heavy landing\n    vehicle). SURVEYOR was successful in proving that the lunar surface was\n    strong enough to hold up a spacecraft from 1966 to 1968.\n\n    Only SURVEYOR 2 and 4 were unsuccessful missions. The rest became the\n    first U.S. probes to soft land on the Moon, taking thousands of images\n    and scooping the soil for analysis. APOLLO 12 landed 600 feet from\n    SURVEYOR 3 in 1969 and returned parts of the craft to Earth. SURVEYOR 7,\n    the last of the series, was a purely scientific mission which explored\n    the Tycho crater region in 1968.\n\n\n    VIKING (MARS ORBITERS AND LANDERS)\n\n    VIKING 1 was launched from Cape Canaveral, Florida on August 20, 1975 on\n    a TITAN 3E-CENTAUR D1 rocket. The probe went into Martian orbit on June\n    19, 1976, and the lander set down on the western slopes of Chryse\n    Planitia on July 20, 1976. It soon began its programmed search for\n    Martian micro-organisms (there is still debate as to whether the probes\n    found life there or not), and sent back incredible color panoramas of\n    its surroundings. One thing scientists learned was that Mars' sky was\n    pinkish in color, not dark blue as they originally thought (the sky is\n    pink due to sunlight reflecting off the reddish dust particles in the\n    thin atmosphere). The lander set down among a field of red sand and\n    boulders stretching out as far as its cameras could image.\n\n    The VIKING 1 orbiter kept functioning until August 7, 1980, when it ran\n    out of attitude-control propellant. The lander was switched into a\n    weather-reporting mode, where it had been hoped it would keep\n    functioning through 1994; but after November 13, 1982, an errant command\n    had been sent to the lander accidentally telling it to shut down until\n    further orders. Communication was never regained again, despite the\n    engineers' efforts through May of 1983.\n\n    An interesting side note: VIKING 1's lander has been designated the\n    Thomas A. Mutch Memorial Station in honor of the late leader of the\n    lander imaging team. The National Air and Space Museum in Washington,\n    D.C. is entrusted with the safekeeping of the Mutch Station Plaque until\n    it can be attached to the lander by a manned expedition.\n\n    VIKING 2 was launched on September 9, 1975, and arrived in Martian orbit\n    on August 7, 1976. The lander touched down on September 3, 1976 in\n    Utopia Planitia. It accomplished essentially the same tasks as its\n    sister lander, with the exception that its seisometer worked, recording\n    one marsquake. The orbiter had a series of attitude-control gas leaks in\n    1978, which prompted it being shut down that July. The lander was shut\n    down on April 12, 1980.\n\n    The orbits of both VIKING orbiters should decay around 2025.\n\n\n    VOYAGER (OUTER PLANET FLYBYS)\n\n    VOYAGER 1 was launched September 5, 1977, and flew past Jupiter on March\n    5, 1979 and by Saturn on November 13, 1980. VOYAGER 2 was launched\n    August 20, 1977 (before VOYAGER 1), and flew by Jupiter on August 7,\n    1979, by Saturn on August 26, 1981, by Uranus on January 24, 1986, and\n    by Neptune on August 8, 1989. VOYAGER 2 took advantage of a rare\n    once-every-189-years alignment to slingshot its way from outer planet to\n    outer planet. VOYAGER 1 could, in principle, have headed towards Pluto,\n    but JPL opted for the sure thing of a Titan close up.\n\n    Between the two probes, our knowledge of the 4 giant planets, their\n    satellites, and their rings has become immense. VOYAGER 1&2 discovered\n    that Jupiter has complicated atmospheric dynamics, lightning and\n    aurorae. Three new satellites were discovered. Two of the major\n    surprises were that Jupiter has rings and that Io has active sulfurous\n    volcanoes, with major effects on the Jovian magnetosphere.\n\n    When the two probes reached Saturn, they discovered over 1000 ringlets\n    and 7 satellites, including the predicted shepherd satellites that keep\n    the rings stable. The weather was tame compared with Jupiter: massive\n    jet streams with minimal variance (a 33-year great white spot/band cycle\n    is known). Titan's atmosphere was smoggy. Mimas' appearance was\n    startling: one massive impact crater gave it the Death Star appearance.\n    The big surprise here was the stranger aspects of the rings. Braids,\n    kinks, and spokes were both unexpected and difficult to explain.\n\n    VOYAGER 2, thanks to heroic engineering and programming efforts,\n    continued the mission to Uranus and Neptune. Uranus itself was highly\n    monochromatic in appearance. One oddity was that its magnetic axis was\n    found to be highly skewed from the already completely skewed rotational\n    axis, giving Uranus a peculiar magnetosphere. Icy channels were found on\n    Ariel, and Miranda was a bizarre patchwork of different terrains. 10\n    satellites and one more ring were discovered.\n\n    In contrast to Uranus, Neptune was found to have rather active weather,\n    including numerous cloud features. The ring arcs turned out to be bright\n    patches on one ring. Two other rings, and 6 other satellites, were\n    discovered. Neptune's magnetic axis was also skewed. Triton had a\n    canteloupe appearance and geysers. (What's liquid at 38K?)\n\n    The two VOYAGERs are expected to last for about two more decades. Their\n    on-target journeying gives negative evidence about possible planets\n    beyond Pluto. Their next major scientific discovery should be the\n    location of the heliopause.\n\n\nSOVIET PLANETARY MISSIONS\n\n    Since there have been so many Soviet probes to the Moon, Venus, and\n    Mars, I will highlight only the primary missions:\n\n\n    SOVIET LUNAR PROBES\n\n    LUNA 1 - Lunar impact attempt in 1959, missed Moon and became first\n\t     craft in solar orbit.\n    LUNA 2 - First craft to impact on lunar surface in 1959.\n    LUNA 3 - Took first images of lunar farside in 1959.\n    ZOND 3 - Took first images of lunar farside in 1965 since LUNA 3. Was\n\t     also a test for future Mars missions.\n    LUNA 9 - First probe to soft land on the Moon in 1966, returned images\n\t     from surface.\n    LUNA 10 - First probe to orbit the Moon in 1966.\n    LUNA 13 - Second successful Soviet lunar soft landing mission in 1966.\n    ZOND 5 - First successful circumlunar craft. ZOND 6 through 8\n\t     accomplished similar missions through 1970. The probes were\n\t     unmanned tests of a manned orbiting SOYUZ-type lunar vehicle.\n    LUNA 16 - First probe to land on Moon and return samples of lunar soil\n\t      to Earth in 1970. LUNA 20 accomplished similar mission in\n\t      1972.\n    LUNA 17 - Delivered the first unmanned lunar rover to the Moon's\n\t      surface, LUNOKHOD 1, in 1970. A similar feat was accomplished\n\t      with LUNA 21/LUNOKHOD 2 in 1973.\n    LUNA 24 - Last Soviet lunar mission to date. Returned soil samples in\n\t      1976.\n\n\n    SOVIET VENUS PROBES\n\n    VENERA 1 - First acknowledged attempt at Venus mission. Transmissions\n\t       lost enroute in 1961.\n    VENERA 2 - Attempt to image Venus during flyby mission in tandem with\n\t       VENERA 3. Probe ceased transmitting just before encounter in\n\t       February of 1966. No images were returned.\n    VENERA 3 - Attempt to place a lander capsule on Venusian surface.\n\t       Transmissions ceased just before encounter and entire probe\n\t       became the first craft to impact on another planet in 1966.\n    VENERA 4 - First probe to successfully return data while descending\n\t       through Venusian atmosphere. Crushed by air pressure before\n\t       reaching surface in 1967. VENERA 5 and 6 mission profiles\n\t       similar in 1969.\n    VENERA 7 - First probe to return data from the surface of another planet\n\t       in 1970. VENERA 8 accomplished a more detailed mission in\n\t       1972.\n    VENERA 9 - Sent first image of Venusian surface in 1975. Was also the\n\t       first probe to orbit Venus. VENERA 10 accomplished similar\n\t       mission.\n    VENERA 13 - Returned first color images of Venusian surface in 1982.\n\t\tVENERA 14 accomplished similar mission.\n    VENERA 15 - Accomplished radar mapping with VENERA 16 of sections of\n\t\tplanet's surface in 1983 more detailed than PVO.\n    VEGA 1 - Accomplished with VEGA 2 first balloon probes of Venusian\n\t     atmosphere in 1985, including two landers. Flyby buses went on\n\t     to become first spacecraft to study Comet Halley close-up in\n\t     March of 1986.\n\n\n    SOVIET MARS PROBES\n\n    MARS 1 - First acknowledged Mars probe in 1962. Transmissions ceased\n\t     enroute the following year.\n    ZOND 2 - First possible attempt to place a lander capsule on Martian\n\t     surface. Probe signals ceased enroute in 1965.\n    MARS 2 - First Soviet Mars probe to land - albeit crash - on Martian\n\t     surface. Orbiter section first Soviet probe to circle the Red\n\t     Planet in 1971.\n    MARS 3 - First successful soft landing on Martian surface, but lander\n\t     signals ceased after 90 seconds in 1971.\n    MARS 4 - Attempt at orbiting Mars in 1974, braking rockets failed to\n\t     fire, probe went on into solar orbit.\n    MARS 5 - First fully successful Soviet Mars mission, orbiting Mars in\n\t     1974. Returned images of Martian surface comparable to U.S.\n\t     probe MARINER 9.\n    MARS 6 - Landing attempt in 1974. Lander crashed into the surface.\n    MARS 7 - Lander missed Mars completely in 1974, went into a solar orbit\n\t     with its flyby bus.\n    PHOBOS 1 - First attempt to land probes on surface of Mars' largest\n\t       moon, Phobos. Probe failed enroute in 1988 due to\n\t       human/computer error.\n    PHOBOS 2 - Attempt to land probes on Martian moon Phobos. The probe did\n\t       enter Mars orbit in early 1989, but signals ceased one week\n\t       before scheduled Phobos landing.\n\n    While there has been talk of Soviet Jupiter, Saturn, and even\n    interstellar probes within the next thirty years, no major steps have\n    yet been taken with these projects. More intensive studies of the Moon,\n    Mars, Venus, and various comets have been planned for the 1990s, and a\n    Mercury mission to orbit and land probes on the tiny world has been\n    planned for 2003. How the many changes in the former Soviet Union (now\n    the Commonwealth of Independent States) will affect the future of their\n    space program remains to be seen.\n\n\nJAPANESE PLANETARY MISSIONS\n\n    SAKIGAKE (MS-T5) was launched from the Kagoshima Space Center by ISAS on\n    January 8 1985, and approached Halley's Comet within about 7 million km\n    on March 11, 1986. The spacecraft is carrying three instru- ments to\n    measure interplanetary magnetic field/plasma waves/solar wind, all of\n    which work normally now, so ISAS made an Earth swingby by Sakigake on\n    January 8, 1992 into an orbit similar to the earth's. The closest\n    approach was at 23h08m47s (JST=UTC+9h) on January 8, 1992. The\n    geocentric distance was 88,997 km. This is the first planet-swingby for\n    a Japanese spacecraft.\n\n    During the approach, Sakigake observed the geotail. Some geotail\n    passages will be scheduled in some years hence. The second Earth-swingby\n    will be on June 14, 1993 (at 40 Re (Earth's radius)), and the third\n    October 28, 1994 (at 86 Re).\n\n\n    HITEN, a small lunar probe, was launched into Earth orbit on January 24,\n    1990. The spacecraft was then known as MUSES-A, but was renamed to Hiten\n    once in orbit. The 430 lb probe looped out from Earth and made its first\n    lunary flyby on March 19, where it dropped off its 26 lb midget\n    satellite, HAGOROMO. Japan at this point became the third nation to\n    orbit a satellite around the Moon, joining the Unites States and USSR.\n\n    The smaller spacecraft, Hagoromo, remained in orbit around the Moon. An\n    apparently broken transistor radio caused the Japanese space scientists\n    to lose track of it. Hagoromo's rocket motor fired on schedule on March\n    19, but the spacecraft's tracking transmitter failed immediately. The\n    rocket firing of Hagoromo was optically confirmed using the Schmidt\n    camera (105-cm, F3.1) at the Kiso Observatory in Japan.\n\n    Hiten made multiple lunar flybys at approximately monthly intervals and\n    performed aerobraking experiments using the Earth's atmosphere. Hiten\n    made a close approach to the moon at 22:33 JST (UTC+9h) on February 15,\n    1992 at the height of 423 km from the moon's surface (35.3N, 9.7E) and\n    fired its propulsion system for about ten minutes to put the craft into\n    lunar orbit. The following is the orbital calculation results after the\n    approach:\n\n\tApoapsis Altitude: about 49,400 km\n\tPeriapsis Altitude: about 9,600 km\n\tInclination\t: 34.7 deg (to ecliptic plane)\n\tPeriod\t\t: 4.7 days\n\n\nPLANETARY MISSION REFERENCES\n\n    I also recommend reading the following works, categorized in three\n    groups: General overviews, specific books on particular space missions,\n    and periodical sources on space probes. This list is by no means\n    complete; it is primarily designed to give you places to start your\n    research through generally available works on the subject. If anyone can\n    add pertinent works to the list, it would be greatly appreciated.\n\n    Though naturally I recommend all the books listed below, I think it\n    would be best if you started out with the general overview books, in\n    order to give you a clear idea of the history of space exploration in\n    this area. I also recommend that you pick up some good, up-to-date\n    general works on astronomy and the Sol system, to give you some extra\n    background. Most of these books and periodicals can be found in any good\n    public and university library. Some of the more recently published works\n    can also be purchased in and/or ordered through any good mass- market\n    bookstore.\n\n    General Overviews (in alphabetical order by author):\n\n      J. Kelly Beatty et al, THE NEW SOLAR SYSTEM, 1990.\n\n      Merton E. Davies and Bruce C. Murray, THE VIEW FROM SPACE:\n       PHOTOGRAPHIC EXPLORATION OF THE PLANETS, 1971\n\n      Kenneth Gatland, THE ILLUSTRATED ENCYCLOPEDIA OF SPACE\n       TECHNOLOGY, 1990\n\n      Kenneth Gatland, ROBOT EXPLORERS, 1972\n\n      R. Greeley, PLANETARY LANDSCAPES, 1987\n\n      Douglas Hart, THE ENCYCLOPEDIA OF SOVIET SPACECRAFT, 1987\n\n      Nicholas L. Johnson, HANDBOOK OF SOVIET LUNAR AND PLANETARY\n       EXPLORATION, 1979\n\n      Clayton R. Koppes, JPL AND THE AMERICAN SPACE PROGRAM: A\n       HISTORY OF THE JET PROPULSION LABORATORY, 1982\n\n      Richard S. Lewis, THE ILLUSTRATED ENCYCLOPEDIA OF THE\n       UNIVERSE, 1983\n\n      Mark Littman, PLANETS BEYOND: DISCOVERING THE OUTER SOLAR\n       SYSTEM, 1988\n\n      Eugene F. Mallove and Gregory L. Matloff, THE STARFLIGHT\n       HANDBOOK: A PIONEER'S GUIDE TO INTERSTELLAR TRAVEL, 1989\n\n      Frank Miles and Nicholas Booth, RACE TO MARS: THE MARS\n       FLIGHT ATLAS, 1988\n\n      Bruce Murray, JOURNEY INTO SPACE, 1989\n\n      Oran W. Nicks, FAR TRAVELERS, 1985 (NASA SP-480)\n\n      James E. Oberg, UNCOVERING SOVIET DISASTERS: EXPLORING THE\n       LIMITS OF GLASNOST, 1988\n\n      Carl Sagan, COMET, 1986\n\n      Carl Sagan, THE COSMIC CONNECTION, 1973\n\n      Carl Sagan, PLANETS, 1969 (LIFE Science Library)\n\n      Arthur Smith, PLANETARY EXPLORATION: THIRTY YEARS OF UNMANNED\n       SPACE PROBES, 1988\n\n      Andrew Wilson, (JANE'S) SOLAR SYSTEM LOG, 1987\n\n    Specific Mission References:\n\n      Charles A. Cross and Patrick Moore, THE ATLAS OF MERCURY, 1977\n       (The MARINER 10 mission to Venus and Mercury, 1973-1975)\n\n      Joel Davis, FLYBY: THE INTERPLANETARY ODYSSEY OF VOYAGER 2, 1987\n\n      Irl Newlan, FIRST TO VENUS: THE STORY OF MARINER 2, 1963\n\n      Margaret Poynter and Arthur L. Lane, VOYAGER: THE STORY OF A\n       SPACE MISSION, 1984\n\n      Carl Sagan, MURMURS OF EARTH, 1978 (Deals with the Earth\n       information records placed on VOYAGER 1 and 2 in case the\n       probes are found by intelligences in interstellar space,\n       as well as the probes and planetary mission objectives\n       themselves.)\n\n    Other works and periodicals:\n\n    NASA has published very detailed and technical books on every space\n    probe mission it has launched. Good university libraries will carry\n    these books, and they are easily found simply by knowing which mission\n    you wish to read about. I recommend these works after you first study\n    some of the books listed above.\n\n    Some periodicals I recommend for reading on space probes are NATIONAL\n    GEOGRAPHIC, which has written articles on the PIONEER probes to Earth's\n    Moon Luna and the Jovian planets Jupiter and Saturn, the RANGER,\n    SURVEYOR, LUNAR ORBITER, and APOLLO missions to Luna, the MARINER\n    missions to Mercury, Venus, and Mars, the VIKING probes to Mars, and the\n    VOYAGER missions to Jupiter, Saturn, Uranus, and Neptune.\n\n    More details on American, Soviet, European, and Japanese probe missions\n    can be found in SKY AND TELESCOPE, ASTRONOMY, SCIENCE, NATURE, and\n    SCIENTIFIC AMERICAN magazines. TIME, NEWSWEEK, and various major\n    newspapers can supply not only general information on certain missions,\n    but also show you what else was going on with Earth at the time events\n    were unfolding, if that is of interest to you. Space missions are\n    affected by numerous political, economic, and climatic factors, as you\n    probably know.\n\n    Depending on just how far your interest in space probes will go, you\n    might also wish to join The Planetary Society, one of the largest space\n    groups in the world dedicated to planetary exploration. Their\n    periodical, THE PLANETARY REPORT, details the latest space probe\n    missions. Write to The Planetary Society, 65 North Catalina Avenue,\n    Pasadena, California 91106 USA.\n\n    Good luck with your studies in this area of space exploration. I\n    personally find planetary missions to be one of the more exciting areas\n    in this field, and the benefits human society has and will receive from\n    it are incredible, with many yet to be realized.\n\n    Larry Klaes  klaes@verga.enet.dec.com\n\nNEXT: FAQ #11/15 - Upcoming planetary probes - missions and schedules\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5094, "properties": {"category": "misc.forsale", "text": "Subject: items 4sale, received from a award giving company\nFrom: koutd@hiramb.hiram.edu (DOUGLAS KOU)\nOrganization: Hiram College\nNntp-Posting-Host: hiramb.hiram.edu\nLines: 23\n\nI participated in a promotion by a company called Visual Images.\nI attempted to cancel my order before the package arrived. I was\nnot able to stop them and now I have a package which I do not need.\n\nNishika 3D camera, wide angle flesh, film, carring case, instruction\ntapes, and some jewelrys.\n\n3 vacation vouchers to Bahama, Cancun, Las Vegas, Orlando.\n\nI paid $697 for the promotion package, and the vacation vouchers\ncame as gift. I really want to sell them, so make me an offer for\nthe whole package. If you are participating in a award, $697 is how\nmuch you would end up paying. And I strongly believe that you would\nget the same award as I do. If you are interested in those items,\nyou could get them from me for a cheaper price.\n\nLet me know, and make me an offer. No flames please, I have got enough.\n\nYou could reach me at koutd@hirama.hiram.edu\n\nDouglas Kou\nHiram College\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5095, "properties": {"category": "misc.forsale", "text": "From: dwilson@csugrad.cs.vt.edu (David Wilson)\nSubject: COMPUTER/AUDIO/VIDEO/FURNITURE needed as of 4/18\nLines: 60\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 60\n\nUnless otherwise noted, I am mainly interested in USED items.\nIf you have (any of) the following for sale, please contact me:\n        EMail           mbeck@vtssi.vt.edu\n        Phone           (703)552-4381\n        USMail          Michael Beck\n                        1200 Progress Street #5500E\n                        Blacksburg, Virginia 24060\n \nPlease give as much info as possible (brand, age, condition, etc)\n~~~~~~~~~~WANTED as of 12AM, 4/16/93~~~~~~~~~~\n \nCOMPUTER EQUIP:\n \n1       CHEAP tape drive - pretty much any kind (Used)\n \n1       Memory for PS/2 Model 50Z (New or Used)\n \n1       Macintosh computer\n \n1       486 66mhz chip (New or Used)\n \n1       COLORADO tape drive, 250 megabyte, preferr. w/ 5 tapes (Used)\n \n1       101 key-AT keyboard\n \n1       High Density (1.2 mb) 5 1/4 disk drive\n \n1       Printer - OMS410 or HP LASER or HP DESKJET series\n \n1       Printer - 24 pin or DESKJET\n \n1       High Density (1.2 mb) 5 1/4 disk drive EXTERNAL\n \n1       Adaptec 1542 SCSI 16-bit HD/FD controller (Used)\n \n1       Piggy back memory expansion for INTEL INBOARD 386       \n \n1       130 MB IDE Hard Drive\n \n2       17\" monitor, 1280 resolution, .28 dot pitch or better, digital\n \n \nNON-COMPUTER EQUIP:\n \n1       drum set       \n \nmult.   amps for a band\n \n1       TV - 27\" or bigger, stereo\n \n1       VCR - 4 Heads, stereo\n \n1       Receiver - 100 Watts or more w/ Dolby Prologic Surround Sound\n                capability\n \n1       Bed - Full or Queen sized - LOCAL OFFERS only, please\n \n1       Desk - LOCAL OFFERS only, please due to shipping constraints\n \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5096, "properties": {"category": "talk.religion.misc", "text": "From: \"David R. Sacco\" <dsav+@andrew.cmu.edu>\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Misc. student, Carnegie Mellon, Pittsburgh, PA\nLines: 8\n\t<1qh49m$mg9@kyle.eitech.com>\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <1qh49m$mg9@kyle.eitech.com>\n\nAfter tons of mail, could we move this discussion to alt.religion?\n=============================================================\n--There are many here among us who feel that life is but a joke. (Bob Dylan)\n--\"If you were happy every day of your life you wouldn't be a human\nbeing, you'd be a game show host.\" (taken from the movie \"Heathers.\")\n--Lecture (LEK chur) - process by which the notes of the professor\nbecome the notes of the student without passing through the minds of\neither.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5097, "properties": {"category": "rec.sport.hockey", "text": "Subject: College Hockey All-Star Roster\nFrom: bdhissong@miavx1.acs.muohio.edu\nOrganization: Miami University Academic Computer Service\"\nLines: 2\n\nCould someone please post the rosters for the College Hockey All-Star game East\nand West Rosters?  Thanks in advance.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5098, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: thoughts on christians\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 24\n\nKent Sandvik (sandvik@newton.apple.com) wrote:\n\n\n: > This is a good point, but I think \"average\" people do not take up Christianity\n: > so much out of fear or escapism, but, quite simply, as a way to improve their\n: > social life, or to get more involved with American culture, if they are kids of\n: > immigrants for example.  Since it is the overwhelming major religion in the\n: > Western World (in some form or other), it is simply the choice people take if\n: > they are bored and want to do something new with their lives, but not somethong\n: > TOO new, or TOO out of the ordinary.  Seems a little weak, but as long as it\n: > doesn't hurt anybody...\n\n: The social pressure is indeed a very important factor for the majority\n: of passive Christians in our world today. In the case of early Christianity\n: the promise of a heavenly afterlife, independent of your social status,\n: was also a very promising gift (reason slaves and non-Romans accepted\n: the religion very rapidly).\n\nIf this is a hypothetical proposition, you should say so, if it's\nfact, you should cite your sources. If all this is the amateur\nsociologist sub-branch of a.a however, it would suffice to alert the\nunwary that you are just screwing around ...\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5099, "properties": {"category": "talk.religion.misc", "text": "From: joslin@pogo.isp.pitt.edu (David Joslin)\nSubject: Apology to Jim Meritt (Was: Silence is concurance)\nDistribution: usa\nOrganization: Intelligent Systems Program\nLines: 39\n\nm23364@mwunix.mitre.org (James Meritt) writes:\n>}So stop dodging the question.  What is hypocritical about my\n>}criticizing bad arguments, given that I do this both when I agree\n>}with the conclusion and when I disagree with the conclusion?  \n>\n>You are the one who has claimed to possess the fruits of precognition,\n>telepathy, and telempathy.  Divine it yourself.\n\nAnother dodge.  Oh well.  I'm no match for your amazing repertoire\nof red herrings and smoke screens.  \n\nYou asked for an apology.  I'm not going to apologize for pointing out\nthat your straw-man argument was a straw-man argument.  Nor for saying\nthat your list of \"bible contradictions\" shows such low standards of\nscholarship that it should be an embarrassment to anti-inerrantists,\njust as Josh McDowell should be an embarrassment to the fundies.  Nor\nfor objecting various times to your taking quotes out of context.  Nor\nfor pointing out that \"they do it too\" is not an excuse. Nor for calling\nyour red herrings and smoke screens what they are.\n\nI'm still not sure why you think I'm a hypocrite.  It's true that I\nhaven't responded to any of Robert Weiss' articles, which may be due in\npart to the fact that I almost never read his articles.  But I have\nresponded to both you and Frank DeCenso (a fundie/inerrantist.)  Both\nyou and Frank have taken quotes out of context, and I've objected to\nboth of you doing so.  I've criticized bad arguments both when they\nwere yours and I agreed with the conclusion (that the Bible is not\ninerrant), and when they were Frank's and I disagreed with the\nconclusion.  I've criticized both you and Frank for evading questions,\nand for trying to \"explain me away\" without addressing the objections\nI raise (you by accusing me of being hypocritical and irrational, Frank\nby accusing me of being motivated by a desire to attack the Bible.) I\ndon't see that any of this is hypocritical, nor do I apologize for it.\n\nI do apologize, however, for having offended you in any other way.\n\nHappy now?\n\ndj\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5100, "properties": {"category": "rec.sport.baseball", "text": "Subject: Phillies: A New Ballpark in Future?\nFrom: csc2imd@cabell.vcu.edu (Ian M. Derby)\nExpires: Sat, 1 May 1993 04:00:00 GMT\nOrganization: Virginia Commonwealth University\nKeywords: Phillies\nSummary: Phillies\nLines: 17\n\n\nATTN: Those who live inthe Philadelphia Metro area...\n\nBack in September I was listening to WIP, and I remember the morning\nguys were talking with Mayor Ed Rendell.  The topic of conversation\nwas a new ball park for the Phillies.  The location for this new park\nwas suggested to be near 30th St Station.  At the time, the mayor was\noptimisitic that in the future this could become a reality.  Has\nthere been any new news on this subject or is it still a pipe dream?\nI know the city of Philadelphia has other projects ahead, such as the\nnew convention center and the upcoming Spectrum II.  But it would be\nnice to see this a reality.  It is planned that the Phillies leave\nthe VET and leave it solely to the Eagles (and if that's the case,\nthe Eagles should make the VET a grass stadium, but that's another\nstory).  I want to see that day!\n\ncomments?\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.244+0000", "event": "documents", "entityId": 5101, "properties": {"category": "misc.forsale", "text": "From: victorf@babbage.seas.ucla.edu (Victor Friedman)\nSubject: Re: Apartment in Moscow for Rent!!!\nOrganization: SEASnet, University of California, Los Angeles\nLines: 19\n\nIn article <1993Apr7.134501.4632@magnus.acs.ohio-state.edu> vsloutsk@magnus.acs.ohio-state.edu (Vladimir Sloutsky) writes:\n>\n>                Apartment for rent in downtown Moscow!!!\n>\n>2- room furnished apartment in a very nice location. 5 minutes walk to\n>Belorusskaya subway station. Walking distance to Kremlin, major shopping\n>centers, theaters, restaurants, and government buildings.\n>\n\nHmmm... Interesting. What do you mean by WALKING distance? I lived in\nMoscow for 21 years, and if I am 5 minutes walk to Belorusskaya\nsubway station, I CANNOT be walking distance to Kremlin. Unless\n1 hour of walking is what you mean. By the way, what is\nthe price? I may plan a trip there (not sure yet, though) in\nlate summer.\n\n\t\t\t\t\t\t\tVick\n\t\t\t\t\t(victorf@seas.ucla.edu)\n\t\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5102, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: Guns GONE. Good Riddance !\nOrganization: The University of Texas at Austin, Austin TX\nLines: 22\nDistribution: world\nNNTP-Posting-Host: louie.cc.utexas.edu\n\ncdt@sw.stratus.com (C. D. Tavares) writes:\n:jrm@gnv.ifas.ufl.edu writes:\n:> Surrender your arms. Soon enough, officers will be around to collect\n:> them. Resistance is useless. \n:\n:Don't tell me -- you're the \"Borg Warner,\" right?\n\nHAAAAAAAAAAHAHAHAHAHAHAHAHAHAHAHA.  Hee, hee.  <chuckle>\n\nThis was absolutely fabulous.  I nearly fell out of my chair laughing.\nWonderful!  Mr. Tavares, my hat is off to you again!\n\n\nMike Ruff\n\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5103, "properties": {"category": "rec.motorcycles", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Re: Fat Boy versus ZX-11 (new math)\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 32\n\nIn article <1pimfd$cre@agate.berkeley.edu> robinson@cogsci.Berkeley.EDU (Michael Robinson) writes:\n>In article <C4v3s7.MCz@ccu.umanitoba.ca> klinger@ccu.umanitoba.ca (Jorg Klinger) writes:\n>>In <1993Apr1.130432.11009@bnr.ca> npet@bnr.ca (Nick Pettefar) writes:\n>>>Manual Velcro, on the 31 Mar 93 09:19:29 +0200 wibbled:\n>>>: But 14 is greater than 11, or 180 is greater than 120, or ...\n>>>No!  10 is the best of all.\n>>No No No!\n>>  It should be obvious that 8 is the best number by far. Last year 10\n>>was hot but with the improvements to 8 this year there can be no\n>>question.\n>\n>Hell, my Dad used to have an old 5 that would beat out today's 8 without \n>breaking a sweat.\n>\n>(Well, in the twisties, anyway.)\n>\n>This year's 8 is just too cumbersome for practical use in anything other \n>than repeating decimals.\n>\nRemember the good old days, when Hexadecimals, and even Binaries\nwere still legal? Sure, they smoked a little blue stuff out the\npipes, but I had a hex 7 that could slaughter any decimal 10 on\nthe road. Sigh, such nostalgia!\n\nRegards, Charles\nDoD0,001\nRZ350\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5104, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: westes@netcom.com (Will Estes)\nSubject: Diamond Stealth 24 giving 9.4 Winmarks?\nOrganization: Mail Group\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 56\n\nI have just installed a Diamond Stealth 24 ISA card in\na '486DX2-66 system with 256K cache, and 16 megs of memory,\nthat gets about a 126 SI 6.0 CPU Benchmark rating.  Using\nthe 1024x768x16 color driver under Windows, I am getting a\nWinbench Winmarks rating of only about 9.5 Million.  Since\nI have heard that others get 15-to-16 million for this card,\nI assume that something is very wrong with my setup.\n\nWhat are some possible causes of the card slowing down like this?\n\nI ran the Qualitas ASQ diagnostic program on memory, and I noted\nthe following memory timings on my machine:\n\nASQ v1.30 by Qualitas  SYSTEM ANALYSIS  Mon Apr 19, 1993  11:43:49AM    page: 1\n-------------------------------------------------------------------------------- \nACCESS TIMING \n\n    Hex     KB     KB   Access Speed Ratio (%)\n  Start  Start   Size  Time us 0   25   50  75  100\n  \n  00000      0     32      396 ******************\n  00800     32     32      598 *****************\n  01000     64     32      157 ********************\n  01800     96     32      180 ********************\n  02000    128     64      157 ********************\n  03000    192     32      165 ********************\n  03800    224    128      156 ********************\n  05800    352     96      169 ********************\n  07000    448     32      153 ********************\n  07800    480     32      188 ********************\n  08000    512     96      158 ********************\n  09800    608     32      171 ********************\n  0A000    640     96     1221 **************\n  0B800    736     32     1581 ************\n  0C000    768     32      312 *******************\n  0C800    800     96      154 ********************\n  0E000    896     64     3957 *\n  0F000    960     64      312 *******************\n\nNote two things on this chart:\n\n1) The video memory appears to be many orders of magnitude slower than\nsystem memory.  Are there wait states being inserted here, and what would\ncause that?\n\n2) The EMS Page frame seems to be ridiculously slow, even though\nit is being mapped to the fast XMS memory in my system through\nEMM386.  What's going on there?\n\nNote that my Stealth 24's video BIOS at C000-C7FF is being shadowed\nthrough the AMI BIOS.  \n\nAny ideas on what might be happening here?\n\n-- \nWill Estes\t\tInternet: westes@netcom.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5105, "properties": {"category": "rec.sport.hockey", "text": "From: stamber@rainbow.ecn.purdue.edu (Kevin L. Stamber)\nSubject: Re: How difficult is it to get Penguin tickets?\nOrganization: Purdue University Engineering Computer Network\nLines: 27\n\nIn article <1993Apr18.201811.28965@magnus.acs.ohio-state.edu>, dmoney@magnus.acs.ohio-state.edu (Dean R Money) writes:\n> The subject line says it all.  Is it terribly difficult to get tickets\n> to Penguins games, especially now that they are in the playoffs?  Would\n> it be easy to find scalpers outside of the Igloo selling tickets?\n> \n> Dean Money\n> dmoney@magnus.acs.ohio-state.edu\n\n     Here is my traditional experience with tickets, playoffs and otherwise,\nat the Civic Arena.\n\n     Scalping is illegal but nonetheless present outside the Arena.  Best \nstrategy, given that you don't mind missing the Anthem (which is OK if B.E.\nTaylor decides to come back ever again :) ) is to wait until 7:40 or 7:45,\nwhen the game is rolling; the scalpers are at this point desperate to sell\nand will reduce to near or at face value to get rid of their tickets.\n\n     Playoffs are a little different in that good seats will go early on; \nwhat's left at 7:45 may be nosebleed material (D, E sections).\n\nOthers can add on their opinions as well.\n\nKevin L. Stamber\nPurdue University\nPENGUINS 6 DEVILS 3 -- Pens lead series 1 game to none\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5106, "properties": {"category": "rec.sport.baseball", "text": "From: apanjabi@guvax.acc.georgetown.edu\nSubject: PHILS, NL EAST NOT SO WEAK\nDistribution: world\nOrganization: Georgetown University\nLines: 16\n\nI Love it how all of these people are \"blaming\" the Phillies success \non a weak division.  Why don't we look at the record of the teams in \neach division (READ: Inter-Divisional Play), we'll see that the East \nis really kicking the shit out of the West.  I know it is early, but \nthat is all we have to go on.  Atlanta is just so strong with their \n.188 BA, Cincinnati is 2-7 coming off a sweep at Veteran's Stadium in \nPhiladelphia, and Houston was swept in it's first three games by the \nPhillies in the Astrodome.  That, my Western Division friends, shows \nthat the three best teams in your division may not be as strong as you \nthink!!\n\nPHILS ALL THE WAY IN '93\nBRAVES HIT LIKE A AAA CLUB\nREDS NEED MARGE\n\n\t\t\t\t\t\t-BOB\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5107, "properties": {"category": "sci.electronics", "text": "From: fritzm@panix.com (Fritz Mueller)\nSubject: electronic parts in NYC?\nOrganization: PANIX Public Access Unix, NYC\nLines: 18\n\nHey all:\n\nI just moved to NYC and wondered if there are any electronics hackers\nout there who could point me to places in NYC that sell individual\nelectronic components (switches, pots, transformers, caps,\ntransistors, etc.)  \"Radio Shack\" doesn't count (they have almost no\nselection, and their prices are outrageous!)\n\nI have particular interest in audio components (amplifier IC's, power\nMOSFETS, output transformers, tubes and tube sockets, pan pots,\nfaders, etc.)\n\nI have checked out a lot of 48th street and Canal street so far with\nno luck.  Am I missing places, looking in the wrong place, or do I\nhave to resort to mail order?\n\n\t\t\t\t\tthanks in advance,\n\t\t\t\t\t  --FritzM.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5108, "properties": {"category": "rec.motorcycles", "text": "From: kens@lsid.hp.com (Ken Snyder)\nSubject: Re: Should I buy a VRF 750?\nArticle-I.D.: hpscit.1qkcrt$2q9\nOrganization: Hewlett Packard Santa Clara Site\nLines: 47\nNNTP-Posting-Host: labkas.lsid.hp.com\nX-Newsreader: TIN [version 1.1 PL8.10]\n\nMark N Bricker (mnb4738@cs.rit.edu) wrote:\n: I am in the market for a bike and have recently found a 1990\n: Honda VRF 750 at a dealership. The bike has about 47,000 miles\n: and is around $4500. It has had two previous owners, both employees\n: of the dealership who, I have been told, took very good care of the\n: bike.\n\n: I have two questions: 1) Is this too many miles for a bike? I know this\n: would not be many miles for a car but I am unfamiliar with the life\n: span of bikes. 2) Is this a decent price? I am also unfamilar with\n: prices for used bikes. Is there a blue book for bikes like there is\n: for cars?.\n\n: Thanks for any advice you can give.\n\n:                             --Mark\n--\n\nMark,\n\n  47k is not too many miles on a VFR750.  I sold my (well maintained)\n'87 VFR700 with 52k miles on it and the engine was in mint condition.\nAll that the bike needed was steering head bearings and fork bushings\nand seals.  The guy who bought it had a mechanic pull the valve covers\nto look at the top end, do a compression check etc.  He confirmed it was\nmint.\n\n   As for price, $4500 seems a little steep.  I bought my '90 with 12k\nmiles on it a year ago (and in absolutely cherry condition) for $4800.\nThere is a bluebook, ask your bank or credit union for the going price.\nI've seen a couple of ads for VFR's in the $4500 dollar range.  They all\nsaid low miles & mint condition but I didn't actually go look at them.\n\n   A VFR is a very sweet bike and will last you forever if you maintain\nit at all.  One thing to look for, BTW, is a soft front end.  If my\nVFR is any indication, at 12k miles the fork springs were totally shot.\nProgressive springs ($55) fixed it right up.\n\nGood luck,\n\n _______________________ K _ E _ N ____________________________\n|                                                              |\n| Ken Snyder              ms/loc: 330 / UN2                    |\n| Hewlett-Packard Co.     LSID  : Lake Stevens Instrument Div. |\n| 8600 Soper Hill Road    gte/tn: (206) 335-2253 / 335-2253    |\n| Everett, WA 98205-1298  un-ix : kens@lsid.hp.com             |\n|______________________________________________________________|\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5109, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: JOEL@jach.hawaii.edu (Joel Aycock)\nSubject: Re: page setup in Notepad\nIn-Reply-To: krh@cbnewsh.cb.att.com's message of Tue, 13 Apr 1993 20:05:08 GMT\nOrganization: UK Infrared Telescope, Joint Astronomy Centre, Hawaii\nX-News-Reader: VMS NEWS 1.20\nLines: 22\n\nIn <1993Apr13.200508.5167@cbnewsh.cb.att.com> krh@cbnewsh.cb.att.com writes:\n> I often use Notepad to view and print \"read.me\" type files. I often find\n> myself rushing to get to Print Manager to stop the printer and delete\n> the file from the print queue because I've forgotten to reset the print\n> margins from .75 inches (left and right) to 0 inches. The resulting printed\n> text looks all chopped up because of the hard returns in the source file.\n> \n[...]\n\n\tI struggled with the margin problem for ages as well, until I\nfinally got hold of the shareware binary editor BEAV133, and dug into\nNOTEPAD.EXE (there is no SETUP facility to force NOTEPAD to default to \n0.0 margins- it's hardwired into code!!!). \n\n\tDo a SEARCH for \".75\", then change the offending bytes to \".00\", \net viola. Who are the guys who hardcode these \"options\" anyway?\n\n\tI'm interested in whether the problem only rears it's ugly head for \ncertain printers- I'm using an old Epson LX-800 (or is that EX-800? never can \nremember).\n\naloha.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5110, "properties": {"category": "sci.med", "text": "From: des@helix.nih.gov (David E. Scheim)\nSubject: Re: Burzynski's \"Antineoplastons\"\nOrganization: NIH\nLines: 58\n\nIn article <jschwimmer.123.735362184@wccnet.wcc.wesleyan.edu> jschwimmer@wccnet.wcc.wesleyan.edu (Josh Schwimmer) writes:\n\n>I've recently listened to a tape by Dr. Stanislaw Burzynski, in which he \n>claims to have discovered a series naturally occuring peptides with anti-\n>cancer properties that he names antineoplastons.  Burzynski says that his \n>work has met with hostility in the United States, despite the favorable \n>responses of his subjects during clinical trials.\n\n>What is the generally accepted opinion of Dr. Burzynski's research?  He \n>paints himself as a lone researcher with a new breakthrough battling an \n>intolerant medical establishment, but I have no basis from which to judge \n>his claims.  Two weeks ago, however, I read that the NIH's Department of \n>Alternative Medicine has decided to focus their attention on Burzynski's \n>work.  Their budget is so small that I imagine they wouldn't investigate a \n>treatment that didn't seem promising.\n\n>Any opinions on Burzynski's antineoplastons or information about the current \n>status of his research would be appreciated.\n\n>--\n>Joshua Schwimmer\n>jschwimmer@eagle.wesleyan.edu\n\nThere's been extensive discussion on the CompuServe Cancer Forum about Dr. \nBurzynski's treatment as a result of the decision of a forum member's father \nto undertake his treatment for brain glioblastoma.  This disease is \nuniversally and usually rapidly fatal.  After diagnosis in June 1992, the \ntumor was growing rapidly despite radiation and chemotherapy.  The forum \nmember checked extensively on Dr. Burzynki's track record for this disease.  \nHe spoke to a few patients in complete remission for a few years from \nglioblastoma following this treatment and to an NCI oncologist who had \naudited other such case histories and found them valid and impressive.  \nAfter the forum member's father began Dr. Burzynski's treatment in \nSeptember, all subsequent scans performed under the auspices of his \noncologist in Chicago have shown no tumor growth with possible signs of \nshrinkage or necrosis.\n\nThe patient's oncologist, although telling him he would probably not live \npast December 1992, was vehemently opposed to his trying Dr. Burzynski's \ntreatment.  Since the tumor stopped its rapid growth under Dr. Burzynski's \ntreatment, she's since changed her attitude toward continuing these \ntreatments, saying \"if it ain't broke, don't fix it.\"\n\nDr. Burzynski is an M.D., Ph.D. with a research background who found a \nprotein that is at very low serum levels in cancer patients, synthesized it, \nand administers it to patients with certain cancer types.  There is little \nunderstanding of the actual mechanism of activity.\n\n/*********************************************************************/\n/*                      --- David E. Scheim ---                      */\n/* BITNET: none                                                      */\n/* INTERNET: desl@helix.nih.gov          PHONE: 301 496-2194         */\n/* CompuServe: 73750,3305                  FAX: 301 402-1065         */\n/*                                                                   */\n/* DISCLAIMER: These comments are offered to share knowledge based   */\n/*   upon my personal views.  They do not represent the positions    */\n/*   of my employer.                                                 */\n/*********************************************************************/\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5111, "properties": {"category": "rec.autos", "text": "From: madman@austin.ibm.com (Steve Heracleous)\nSubject: Re: WARNING.....(please read)...\nOriginator: madman@suave.austin.ibm.com\nOrganization: IBM Austin\nLines: 20\n\n\nThis is a two-sided problem. Unfortunately our culture has been deteriorating over time.\nThe \"breeding\" of these low-life's is getting worse; our justice system is at best\nextremely weak to handle these problems. That is why low-abiding citizens should have\nthe power to protect themselves and their property using deadly force if necessary \nanywhere a threat is imminent.\n\nMy Camaro (my pride and joy) got stolen right out of my driveway a few years back.\nThe persons that did that were eventually caught (lucky for me!) but not before\nhaving trashed the car.\n\nOn another occasion, on my way from Texas to Florida, I had stopped in a small motel\nfor the night in a small town somewhere in Florida. About 5 youths were disturbing my\ncar, setting off the alarm and challenging me to come out. When I and another tenant\nwalked out with a 357 Magnum and a 45 automatic respectively, they vanished. \nNeedless to say, I immediately packed-up and left.\n\nWatch out for car-jacking and staged accidents. They can be deadly!\n\nSteve Heracleous\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5112, "properties": {"category": "sci.med", "text": "From: ls8139@albnyvms.bitnet (larry silverberg)\nSubject: podiatry School info?\nReply-To: ls8139@albnyvms.bitnet\nOrganization: University of Albany, SUNY\nLines: 21\n\nHello,\n\nI am planning on attending Podiatry School next year.\n\nI have narrowed my choices to the Pennsylvania College of Podiatric\nMedicine, in Philadelphia, or the California College of Podiatric\nMedicine in San Francisco.  \n\nIf anyone has any information or oppinions about these two schools, please\ntell me.  I am having a hard time deciding which one to attend, and must\nmake a decision very soon.  \n\nthank you, Larry\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nLive From New York, It's SATURDAY NIGHT...\n\nTonight's special guest:\nLawrence Silverberg from The State University of New York @ Albany\naka:ls8139@gemini.Albany.edu\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5113, "properties": {"category": "rec.autos", "text": "From: hacker@cco.caltech.edu (Jonathan Bruce Hacker)\nSubject: Re: Auto air conditioning without Freon\nArticle-I.D.: gap.1qnb5rINN281\nDistribution: usa\nOrganization: California Institute of Technology, Pasadena\nLines: 39\nNNTP-Posting-Host: sandman.caltech.edu\n\nmarkm@bigfoot.sps.mot.com (Mark Monninger) writes:\n\n>In article <1993Apr15.222600.11690@research.nj.nec.com>  \n>behanna@syl.nj.nec.com (Chris BeHanna) writes:\n>>  ...\n>> \tSeveral chemists already have come up with several substitutes for\n>> R12.  You don't hear about them because the Mobile Air Conditioning  \n>Society\n>> (MACS), that is, the people who stand to rake in that $300 to $1000 per\n>> retrofit per automobile, have mounted an organized campaign to squash  \n>those\n>> R12 substitutes out of existence if not ban them altogether (on very  \n>shaky\n>> technical grounds, at best, on outright lies at worst).\n>>  ...\n\n>Now, I'm not saying you're wrong because I know that the R-12 substitutes  \n>exist, but this sounds a lot like the 200mpg carbs that the oil companies  \n>keep us all from getting.\n\nThese substitutes exist, and at this time are available. Its the future\navailability that is in doubt.\n\n1) GHG-12\n\nGet it from People's Welding Supply 800-382-9006\n\n\n2) butane/propane  \n\nYou can mix this yourself so no one can ever regulate it away.\nJust make sure you use good quality (dry) gases.\n\n\nI don't know of any 200mpg carb distributors :-)\n-- \nJon Hacker                         |  Get the OS/2 2.1 March Beta CD-ROM \nCaltech, Pasadena CA               |  for $20  ---  Call 1-800-3-IBM-OS2 \nhacker@tumbler-ridge.caltech.edu   |  Read about it in comp.os.os2.beta\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5114, "properties": {"category": "comp.sys.mac.hardware", "text": "From: pino@gammow.berkeley.edu (Jose L. Pino)\nSubject: Re: wrong RAM in Duo?\nOrganization: U. C. Berkeley\nLines: 53\nDistribution: world\nNNTP-Posting-Host: gammow.berkeley.edu\n\nHere is the MacWeek article describing the DUO ram situation.\n(w/o permission.  I hope that is ok)\n\nJose\n\nBad RAM brings some Duos down. (random access memory boards for Apple\nMacintosh PowerBook Duos) \nMacWEEK v7, n7 (Feb 15, 1993):132.\n\nCOPYRIGHT Coastal Associates Publishing L.P. 1993\n\nBy Raines Cohen\n\n     Austin, Texas - Some third-party memory-expansion cards for PowerBook\nDuos depart from Apple specs in ways that could cause crashes, data loss\nand other problems.\n\n     Technology Works Inc., a RAM and network vendor based here, last week\nissued a warning about three problems it said it had found in Duo RAM\nproducts from some competing vendors, which it declined to identify.\nOther vendors and an Apple spokeswoman confirmed that the problems exist.\n\n     > Self-refresh.  The Duos require a kind of dynamic RAM called\nselfrefreshing, which can recharge itself while the system sleeps.  But\nTechnology Works said some vendors have sold Duo cards with\nnonselfrefreshing DRAM, which can cause the system to lose data or fail to\nwake from sleep.\n\n     Most leading memory manufacturers include the letter V in the part\nnumber stamped on their self-refreshing chips; nonself-refreshing chips\ninstead have an L, according to TechWorks.  The chip label, however, may\nnot tell the whole story.  Newer Technology of Wichita, Kan., said it uses\nnonself-refreshing chips but adds its own circuitry to keep them refreshed\nwhile the Duo sleeps.\n\n     > Speed.  Some RAM-card vendors have put 80-nanosecond DRAM on Duo\ncards rather than the 70-nanosecond type the 230 requires, Technology\nWorks said.  However, some chips labeled as 80- or 85-nanosecond are\ncertified by the manufacturer to run at a higher speed.\n\n     Kingston Technology Corp. of Fountain Valley, Calif., said it offers\nDuo RAM cards with 80-nanosecond chips, but only for the Duo 210, which is\ncompatible with the slower chips.\n\n     > Space.  Technology Works charged and Apple officials confirmed that\nsome third-party cards are too large to fit properly, forcing the corner\nof the Duo keyboard up and preventing the system from starting up normally\nwhen in a Duo Dock.\n\n     Lifetime Memory Products Inc. of Huntington Beach, Calif., said it\noriginally shipped cards with this problem but has since offered all\ncustomers free upgrades to cards that fit.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5115, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: acifuent@isluga.puc.cl (Alejandro Cifuentes)\nSubject: Q: Change icons forever???\nNntp-Posting-Host: isluga.puc.cl\nOrganization: Pontificia Universidad Catolica de Chile\nX-Newsreader: Tin 1.1 PL5\nLines: 8\n\nHi!\n\tAnyone knows how can i change an icon forever and ever??????\n\tI mean, not only in the program manager... \n\n\tThanks in advance!\n\n\tAlejandro Cifuentes H.\n\tacifuent@isluga.puc.cl\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5116, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Eric.Choi@p5.f175.n2240.z1.fidonet.org (Eric Choi)\nSubject: Re: HONGKONG\nOrganization: FidoNet node 1:2240/175.5 - Association Mac BBS, Grand Blanc MI\nLines: 25\n\n  ku> From: kinau@mondrian.CSUFresno.EDU (Kin Hung Au) Date: 13 Apr 93\n  ku> 07:22:05 GMT Organization: California State University, Fresno\n  ku> Message-ID: <C5Ev4t.G0A@zimmer.CSUFresno.EDU> Newsgroups:\n  ku> comp.sys.mac.hardware\n  ku> \n  ku> In Hong Kong , you can buy a cheap PC 386 or 486 based computer.\n  ku> However, it is very experience to buy a Macintosh. Last winter, I was\n  ku> back to Hong Kong. I saw the price of Mac Classic in Hong kong is same\n  ku> price to buy a LC in the U.S.\n  ku> \n  ku> I am not recommended to buy MAc in Hong Kong since Mac is not popular\n  ku> in HK.\n  ku> \n  ku> Kin Hung Au\n  \nHello Mr. Au,\n\nI have to disagree regarding your assessment of Macintosh in Hong Kong. The Mac has a sizeable share of the typesetting market, as in the U.S. A local magazine, Next Magazine (similar to Newsweek here), uses the Mac extensively. I have seen Sir Speedy and other franchises in Hong Kong equipped with Mac-based systems. True, the discount is not as steep as here because customers in Hong Kong cannot buy from gray market, nor are Mac being sold thru mass merchandisers like Apple does here with the Performa lin\n\n\ne. At this point the sale of Mac is handled by one exclusive distributor. On the other hand, you can always get a PC clone or in the earlier days, illegal clones of the Apple IIe.\n\nYour perception of the Mac not being too popular in Hong Kong is simply because most hobbyists and users find it much cheaper to go to one of those basement stores that sell PC clones with probably illegal copies of BIOS than to pay for a Mac.\n\nSimilarly you cannot say Lotus 1-2-3 surely is not well accepted in Hong Kong because the sale is so low. May be it is because of all those places in Kowloon where illegal copies of Lotus 1-2-3 can be bought for $20 and $10 for a professional looking but illegal copies of the manuals.\n--  \n=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n Eric Choi - Internet: Eric.Choi@p5.f175.n2240.z1.fidonet.org\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5117, "properties": {"category": "rec.sport.hockey", "text": "From: yaska@eecg.toronto.edu (Yaska Sankar)\nSubject: Re: Nords 3 - Habs 2 in O.T. We was robbed!!\nOrganization: CSRI, University of Toronto\nLines: 92\n\nIn article <1993Apr19.141842.18456@newshub.ists.ca> dchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n>In article <18APR93.25909598.0086@VM1.MCGILL.CA> JBE5 <JBE5@MUSICB.MCGILL.CA> writes:\n>>Aargh!\n>>\n>>Paul Stewart is the worst and most biased ref. presently in the NHL.\n>>He called a total of 4 penalties on the Habs and one on the Nordiques.\n>>The Nords' penalty came in O.T.  Stewart, being an ex-Nordique himself,\n>>was looking to call penalties on the Habs while letting the Nords\n>>get away with murder...WE WAS ROBBED!!!!\n>\n>No.  Patrick Roy is the reason the game was lost, and Ron Hextall is the\n>reason Quebec won.  Everybody said it would come down to goaltending, that\n>goaltending was the key, etc etc.  Well, the key doesn't quite fit if you're\n>Montreal.  \n\nI don't buy this at all. Roy was the reason the game was tied... and that\nwould *not* have been the case had Dionne kept his cool. \nHextall gave up 2 very questionable goals himself ...\nBoth Dionne's and Bellows' shots were misplayed by Hextall, but just because\nhis gaffes were early in the game, no one seems to care. Roy stood on his head \nfor the first 15 minutes of the game when the Nords were rushing from \nend-to-end. Kamensky's mini-break after the tying goal and the first shot by \nYoung in OT were both excellent chances stopped by Roy. Roy outplayed Hextall \nfor most of the game, but Roy becomes the villain and Hextall the hero \nbecause Roy's team didn't make full use of their opportunities.\n\nHextall, on the other hand, had a lot of lucky bounces ... he played very \nwell, but the Haller shot off the post in OT, the rebound bouncing over \nBellows' stick, the Brunet breakaway, the 3 chances for LeClair ... all \nthose opportunities were *not* finished off by Montreal, and it cost them.\nHextall wasn't particularly brilliant on those plays ... \n\n>Blaming Stewart is just an\n>excuse to avoid facing the fact that Roy allowed what was one of the worst\n>goals he could possibly allow.  He even saw the whole shot, dammit.\n\nSure, no excuse ... but it was just the 1 goal. The timing stank, but against\nan explosive team like Quebec, they gave them 1 opportunity too many with\na powerplay that was totally unnecessary.\n\n>Montreal played a solid game (although they still don't know how to clear\n>traffic in front of the net; the loss of Schneider will hurt even more). \n\nI disagree. Roy played well because he wasn't screened the whole night. \nThe defense, for the 1st time this season, played remarkably, keeping Sakic,\nNolan, and Sundin  out of the slot most of the night.\n\n>Normally I would say that any team that blows a 2-goal lead with less than \n>five, let alone two, minutes to go in regulation time IN A PLAYOFF GAME \n>ESPECIALLY needs to be smacked upside their collective heads. But I don't\n>think this was a team loss (although Keane should have been able to clear \n>the zone just prior to the first Quebec goal).  \n\nThis most certainly was a team loss... Leclair missed his opportunities,\nas did Bellows and Brunet. Dionne took a bad penalty. Damphousse and Lebeau\nwere *silent*. Carbonneau and Savard were a step behind all night. Roy gave\nup the bad goal. Roy, by no means, can be singled out for this loss.\n\n>Roy is paid big money to \n>play.  He looked like a player in an industrial league on Sakic's shot.\n\nAnd Hextall didn't on Dionne's goal? Please. Roy is paid big money because\nthat is his value compared to other goalies ... and he still is in the top 5,\nwhen you consider the defense, or lack of one, that played in front of him\nfor most of the season.\n\n>Demers should start Racicot in the next game.  If not that, he should let\n>the damn team read the papers for the next day or two....and maybe this\n>article, if possible.\n\nThe Montreal media is the quickest to heap praise and then hurl derogatory\ncomments against the Habs. They are no better than uninformed fans. Why should\nthey read the papers? They played 58 minutes of \"Burnsian\" hockey to shut\ndown Quebec. All they need tonight, and for the rest of the series is the \nextra 2.\n\nRed Light to face Quebec...rubbish. That's a guaranteed way to end the\nseries 4-0. Who would be taught a lesson by this ?\nThe fans, the media, and Racicot, perhaps. Certainly not the rest of the team.\n\n>I didn't think the wrap-around was as bad as the second goal.  I also didn't\n>think Scott Young should have gotten around the defender (can't remember who)\n>in the first place.  But you are correct, it shouldn't have gone in\n>regardless.\n\nIf you mean the goal should never have gone in, because there should never\nhave been an OT, then I agree. But the goal itself was a great piece of work\nby Young. Roy had both the near and far posts covered, but Young flipped the\npuck up under Roy's arm as he wrapped-around the net ... not a bad goal at all.\n\nYaska  ! yaska@eecg.toronto.edu ! Dept. of Electrical & Computer Engineering\nSankar !                        ! University of Toronto, Toronto, Canada\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5118, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: The University of Texas at Austin, Austin TX\nLines: 28\nNNTP-Posting-Host: louie.cc.utexas.edu\n\nirvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n:cdt@sw.stratus.com (C. D. Tavares) writes:\n:>mfrhein@wpi.WPI.EDU (Michael Frederick Rhein) writes:\n:>>\n:>> As someone else has pointed out, why would the stove be in use on a warm \n:>> day in Texas. \n:>\n:>Do YOU eat all your food cold?\n:\n:Ever hear of electric ovens or microwaves?  Very popular.\n:Electric stoves outside metro-areas especially.\n\nHey, Einstein, ever tried to use an electric stove or microwave WITHOUT\nELECTRICITY?  It's been shut off for weeks now, courtesy of your local FBI\nassault squad.\n\nNow, are you going to put your foot in your mouth or shall I get a crowbar\nand assist you?\n\n\nMike Ruff\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5119, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: mysterious TV problem -- source?\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 19\n\nIf the set is direct line powered, try checking the [likely to be\nthere] hybrid regulator module down stream from the 170 volt\nsupply.  Several sets I've looked at use a 135 volt regulator.  The\nregulators have a tendency to short out, making the safety circuits\nshut down the EHT supply section.\n\nTry putting the set on a Variac or adjustable transformer and lower\nthe AC input voltage to the set to about 90 volts.  If the set\noperates nromally, then you know you've got a shorted regulator.\n\nThere are myriad other areas for problems, but I've seen the one\nabove several times.  Also, if the set uses one, the trippler\nmodule may be shot; that's fairly common.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5120, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mpalmer@encore.com (Mike Palmer)\nSubject: Re: Windows On A RAMDRIVE??? Help...\nOrganization: Encore Computer Corporation\nNntp-Posting-Host: sysgem1.encore.com\nLines: 31\n\nf_langleyrh@ccsvax.sfasu.edu writes:\n\n\n>[...] Stuff del'd for bandwidth's sake.\n\n>Why?  *sigh*  If you don't have more than 16MBs of memory using a RAMDrive\n>with windows is a _waste_ of memory.  Windows will access upto 16MB RAM better\n>as memory.  As to why what you did didn't work, it is because driveletters\n>and paths are stored inside the group/pif/ini files.  All of the sudden things\n>went from drive c: to drive e:!  However, if you wanted to copy an application\n>up to the RAMDrive and re-setup it up, that should work normally, but as\n>previously stated, this will only hurt things unless you've got more than 16MBs\n>of RAM and are using whats above 16 as the RAMDrive.\n\n>I personally have 20MB's of RAM and run a ~4MB RAMDrive with a great deal of\n>success.  However, if you are looking to speed up windows, the three things\n>I've noted that work the best are:\n>\t1) A graphics accellerator card\n>\t2) A co-processor (Even an emulator helps!)\n>\t3) Some other disk-cache besides Smartdrive (I've tried several,\n>\t   and Lightning for Windows and Norton Cache give me major\n>\t   headaches as well.).\n\nI think the purpose the original poster was trying to serve is to avoid the\nSIGNIFICANT amount of disk access that Windows does on startup.  It's like\nit's trying to it's bit in wearing the damn drive out.  I estimate it's only\nreading a Mb of programs & data, but from the performance the drive gives, it\nsounds like they are scattered all over the drive (my drive is however\nregularily compressed).  What is it that takes so much fuss.  Perhaps if MS \nwould take the trouble to optimize this startup process, less people would \nbe wanting to find a solution themselves.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5121, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Method employed by the Armenians in 'Genocide of the Muslim People'.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 28\n\nSource: \"Men Are Like That\" by Leonard Ramsden Hartill. The Bobbs-Merrill\nCompany, Indianapolis (1926). (305 pages). \n(Memoirs of an Armenian officer who participated in the genocide of 2.5 \n million Muslim people)\n\n\np. 133 (first paragraph)\n\n\"In this movement we took with us three thousand Turkish soldiers who\n had been captured by the Russians and left on our hands when the Russians\n abandoned the struggle. During our retreat to Karaklis two thousand of\n these poor devils were cruelly put to death. I was sickened by the\n brutality displayed, but could not make any effective protest. Some,\n mercifully, were shot. Many of them were burned to death. The method\n employed was to put a quantity of straw into a hut, and then after\n crowding the hut with Turks, set fire to the straw.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5122, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Who's next? Mormons and Jews?\nFrom: <ISSCCK@BYUVM.BITNET>\nOrganization: Brigham Young University\nLines: 160\n\n\nDan Sorenson (viking@iastate.edu) writes:\n\n#In <mcclaryC5snpq.KB1@netcom.com> mcclary@netcom.com (Michael McClary)\n#writes:\n#        Just thought I'd clear up a few of the murky areas...\n#\n#>Actually, after surviving being driven out of Nauvoo, and later Carthage,\n#>the Mormons DID fortify Utah.  They still arm themselves to \"defend the\n#>faith\", and stockpile food as well.  They have been involved in quite a\n#>lot of illegal activity - including multiple (and often underage) wives\n#>for the leaders - a practice still in vogue with some splinters of their\n#>sect.  The parallels between Koresh and Joseph Smith are striking.\n#                                         ^^^^^^^^^^^^\n\nBy \"they,\" you mean the leaders of the lds church?  I grant you that when\nJoseph Smith was still alive, plenty of \"accusations\" were filed, most of\nwhich had little bearing with reality, as evidenced by various verdicts.\nI have studied lds history for 15 years now, and I have yet to see prove\nthat the lds leadership was involved, in quote: \"illegal activities.\"\nPlural marriage, yes, but your charge of \"underage\" wives sounds like it\ncould have originated from a tabloid, and discredits the high moral\nstandards which characterized these leaders and families, unlike, as it\nappears, those of David Koresh.\n\n#        Joseph Smith started the sect.  After he and his brother Hyram\n#were murdered in a Nauvoo, Il. jail cell, church membership split over\n#who to follow.  Initially, Smith was considered a prophet (just like\n#Mohammed, a rather interesting parallel considering Muslims consider\n#Christ to be a prophet the same as Jews, I'm led to understand.  Make\n#no mistake, this was no messiah we're talking about in Smith).  The\n\nAnd neither did he claim he was.  As the church reflects the moral\naptitude of its leaders (and especially those of Joseph Smith), I have\nnothing but the highest respect for this inspired man, whose only \"crime\"\nwas that he refused to deny that he had seen a vision...  Many have tried\nto explain the \"Smith phenomenon\" away, but the bold presence of an 8.5\nmillion member strong church stands as a witness that Joseph Smith's\ntestimony had enough resilience and power to carry on the message.\n\n#thought at the time was that the gift of prophecy was to be handed\n#down father to son.  After Joseph Smith died, his son was only\n#entering his teens.  Brigham Young and a few others claimed to have\n#been bequeathed the gift and leadership prior to his death.  The\n#Council of Twelve, the Church governing body, wasn't of much help\n#here, and this basic conflict is still a wedge between the sects.\n#Brigham Young took his followers to Salt Lake.  The rest waited\n#for Smith Jr. to grow up enough to assume leadership.  The other\n#claimants to the leadership were soon ignored, like Mike Dukakis. ;-)\n\n\"The rest\" were apostates and excommunicated members of the Church,\nwhile the great majority of the membership, the Twelve, and the various\nauxiliary organizations, chose to accept Brigham Young as the new\nprophet and leader of the Church.  If you knew your lds scriptures and\ndoctrine, you would have known that Brigham Young was the FIRST in\nline to fill the prophet Joseph Smith's vacancy: he was the senior\napostle in the Quorum, and various comments made by Joseph indicated\nthat it was Brigham who would lead the latter-day exodus to the West.\n\nOther rightful \"heirs\" were either dead (Hyrum Smith) or excommunicated\n(Oliver Cowdery), and while persecutions abounded and intensified,\nJoseph Smith had already given orders to look for a new place, an empty\nland beyond the boundaries of the United States (at that time).  This\n\"Rekhabite\" principle (pseudographia) was well understood and antipated\nby the great majority of lds faithful, and was not questioned by them.\n\nGranted, a couple of \"do-it-yourselfers\" stayed behind, unwilling to\nsacrifice and to undertake the perilous journey to the unknown, but\nthis also was necessary to separate the tares from the wheat.  The\nchurch benefitted from this purification process: they became even\nmore unified and willing to carry out their mission to the world.\n\n#        Both sects practiced the \"1-year food stockpile\" doctrine,\n#and this being frontier and farming country most carried or at\n#least owned weapons.  There is little evidence that they were a\n#militaristic sect, given that they tended to move on rather than\n#face large-scale opposition.  Brigham Young, having suffered a\n#great deal getting to Salt Lake, seems to have been quite\n#justified in making military training a good thing.  Remember,\n#this was far beyond where even the US Army went, and these people\n#had nobody to turn to save themselves.\n#\n#        Just a little context to put this all in perspective.\n\nBTW, since when is the Church of Jesus Christ of Latter-day Saints (one of\nthe largest denominations in the country) a \"sect\"???  It didn't \"splinter\"\nfrom any other religion, as did say, the Southern Baptists or Methodists.\n\n#>So what did the Mormons get?  It seems that J. Edgar Hoover was very\n#>impressed with the way they kept secrets.  (They're pledged to defend\n#>secrets with their lives and atone for sin with blood.  Many actually\n#>do - even to the point of suicide.)\n\nWhat a balloney.  Suicide is sinful and against the law of God.  I am\nnot comfortable with this alleged \"cosiness\" with Mammon: I assure you\nthat *many* among us reject this attitude categorically.  Period.  Our\nONLY true allegiance is to our God and to the leaders which He has\nappointed to represent Him.  In any regard, to read this TRASH (about\nsuicide and \"atone for sins with blood\") is yet another insulting\nmisrepresentation of what my church believes in and stands for...\n\n#\n#        The RLDS, the Reorganized LDS, are friendly rivals of the LDS\n#and delight in telling stories about them, which generates quick retorts\n#from the LDS members and everybody has a grand time.  At no time have\n#I ever even heard this hinted at.  I'm taking it with a salt block.\n\nMake it a really big salt mountain with a glacier on top.\n\n#>  So he hired virtually no one but\n#>Mormons, until the FBI was almost exclusively staffed by members of the\n#>Church of Later Day Saints.  Though J. Edgar is finally gone, the FBI\n#>personnel (especially the field agents) are still heavily Mormon.\n#>I have often wondered how this might affect the FBI's treatment\n#>of religious organizations a Mormon would consider heretical.\n\nPreposterous.  Even if this were true (reliable data, please), I\nam convinced that those officers would perform to the highest codes\nof honor and conduct (that's why they were selected for in the\nfirst place, remember?).  Besides, one of our Articles of Faith\nSTRONGLY states the principle of freedom of religion, and that all\npeople are free to worship \"*how*, *where*, or *what* they may.\"\n\n#        If it's true, there would be little affect.  LDS and RLDS\n#philosophy is that all other religions have strayed from the true\n#Church as set down by Jesus, but that God will judge each on his\n#own merits.  In addition, the RLDS also contend (and the LDS may\n#as well) that ignorance of the True Way (tm) is an excuse.  You\n#can only be condemned if you had been tought the way and rejected\n#it.  In short, LDS and RLDS suffer everybody from Lutherans to\n#Buddhists, secure in the knowledge that though they are wrong they\n#will not be penalized for ignorance.  It is more likely that Hoover\n#liked them because of their rather strict upbringings which forbade\n#alcohol, tobacco, hot drink (like coffee or tea), and the like.\n#These people are the \"salt of the Earth\" and as such are more\n#easily made to follow orders and have few vices to be used against them.\n\nA good explanation, I can accept that.  You are right that lds people\nare sometimes a little too cosy with Mammon's \"orders\" (the late\npresident Kimball, for example, was an exception with his strong\nopposition of the selection of the MX \"Peace Keeper\" missile maze\nin Utah).\n\n#        That's my somewhat educated guess, anyway.  Both sects have\n#splinter groups that don't mirror the masses, but these are small\n#and rare, and hardly worth noting their common ancestry.\n#\n#        None of this has any relevance to guns, though.  When a\n#man's religion is used to deny him the right of self-protection with\n#the weapons suitable for the job, he'll find an ally in me.\n#\n#< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n#<  ISU only censors what I read, not what I say.  Don't blame them.  >\n#<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n#<                 unusual people.  And flame them.                   >\n\n\nCasper C. Knies              isscck@byuvm.bitnet\nBrigham Young University     isscck@vm.byu.edu\nUCS Computer Facilities\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.245+0000", "event": "documents", "entityId": 5123, "properties": {"category": "rec.sport.hockey", "text": "Organization: Penn State University\nFrom: Robbie Po <RAP115@psuvm.psu.edu>\nSubject: Re: Aargh! Great Hockey Coverage!! (Devils)\n <1993Apr18.203823.28597@news.columbia.edu>\nLines: 31\n\nIn article <1993Apr18.203823.28597@news.columbia.edu>,\ngld@cunixb.cc.columbia.edu (Gary L Dare) says:\n>Locked away, waiting for the tape-delay to start ...\n\nI think this guy is going to be just a little bit disappointed.  Lemieux\ntwo, Tocchet, Mullen, Tippett, and Jagr.  I buzzed my friend because I forgot\nwho had scored Mullen's goal.  I said, \"Who scored?  Lemieux two, Tocchet,\nTippett, Jagr.\"  The funny part was I said the \"Jagr\" part non-chalantly as\nhe was in the process of scoring while I was asking this question!!! :-)\n\nAll in all ABC's coverage wasn't bad.  On a scale of 1-10, I give it about\nan 8.  How were the games in the Chi/St. Louis/LA area???\n\n>It's nice that the Devils are starting out their playoffs on network\n>television ... too bad that their playoff game has been preempted on\n>WABC-AM for an early-season Yankees baseball game!\n\nThat's stupid!!!  I'd complain to the television network!  If I were to even\nsee a Pirates game on instead of a Penguins game at this time of the year, I\nand many other Pittsburghers would surely raise hell!!!\n\n>It's a 12-2 win by the Texas Rangers ... and they're delaying the\n>tape-delay by another half-hour for the ballgame \"highlights\"!!!\n\nTexas is off to a good start, they may pull it out this year.  Whoops!  That\nbelongs in rec.sport.baseball!!!\n-------------------------------------------------------------------------\n** Robbie Po **          PGH PENGUINS!!!    \"We do what comes naturally!\nPatrick Division Semi's  '91 STANLEY CUP    You see now, wait for the\nPENGUINS 6, Devils 3     '92 CHAMPIONS      possibility, don't you see a\nPenguins lead, 1-0       12 STRAIGHT WINS!  strong resemblance...\"-DG '89\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5124, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ob00@ns1.cc.lehigh.edu (OLCAY BOZ)\nSubject: Re: Postscript view for DOS or Windows?\nOrganization: Lehigh University\nLines: 21\n\n\nWhere can I find the MS windows version of ghostscript? Thanks..\n\n\nIn article <HJSTEIN.93Apr15145240@sunrise.huji.ac.il>, hjstein@sunrise.huji.ac.i\nl (Harvey J. Stein) writes:\n>I've been using version 2.5.2 of ghostscript, and I'm quite satisfied\n>with it.  There are, actually, 3 versions:  a plain dos version, a 386\n>version, and a windows version.\n>\n>Harvey Stein\n>hjstein@math.huji.ac.il\n>\n-- \n____________________________________________________________________________\n****************************************************************************\n\n            _m_\n        _    0___\n         \\ _/\\__ |/\n            \\   /|\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5125, "properties": {"category": "comp.windows.x", "text": "From: r0506048@cml3 (Chun-Hung Lin)\nSubject: Re: xman source\nNntp-Posting-Host: cml3.csie.ntu.edu.tw\nReply-To: r0506048@csie.ntu.edu.tw\nOrganization: Communication & Multimedia Lab, NTU, Taiwan\nX-Newsreader: Tin 1.1 PL3\nLines: 15\n\njlong@b4pps40.Berkeley.EDU (John Long) writes:\n:    Where can I get xman source?  I would like to get the binaries for\n: xman for an HP 9000/700, but I would settle for source.  \n: \n: --\nTry xport.lcs.mit.edu, in direcotry /contrib.\n--\n--------------------------------\n=================================================================\nChun-Hung Lin ( \u00aaL\u00abT\u00a7\u00bb )                     \nr0506048@csie.ntu.edu.tw    \nCommunication & Multimedia Lab.\nDept. of Comp. Sci. & Info. Eng.\nNational Taiwan University, Taipei, Taiwan, R.O.C.\n=================================================================\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5126, "properties": {"category": "soc.religion.christian", "text": "From: djohnson@cs.ucsd.edu (Darin Johnson)\nSubject: Re: harrassed at work, could use some prayers\nOrganization: =CSE Dept., U.C. San Diego\nLines: 63\n\n(Well, I'll email also, but this may apply to other people, so\nI'll post also.)\n\n>I've been working at this company for eight years in various\n>engineering jobs.  I'm female.  Yesterday I counted and realized that\n>on seven different occasions I've been sexually harrassed at this\n>company.\n\n>I dreaded coming back to work today.  What if my boss comes in to ask\n>me some kind of question...\n\nYour boss should be the person bring these problems to.  If he/she\ndoes not seem to take any action, keep going up higher and higher.\nSexual harrassment does not need to be tolerated, and it can be an\nenormous emotional support to discuss this with someone and know that\nthey are trying to do something about it.  If you feel you can not\ndiscuss this with your boss, perhaps your company has a personnel\ndepartment that can work for you while preserving your privacy.  Most\ncompanies will want to deal with this problem because constant anxiety\ndoes seriously affect how effectively employees do their jobs.\n\nIt is unclear from your letter if you have done this or not.  It is\nnot inconceivable that management remains ignorant of employee\nproblems/strife even after eight years (it's a miracle if they do\nnotice).  Perhaps your manager did not bring to the attention of\nhigher ups?  If the company indeed does seem to want to ignore the\nentire problem, there may be a state agency willing to fight with\nyou.  (check with a lawyer, a women's resource center, etc to find out)\n\nYou may also want to discuss this with your paster, priest, husband,\netc.  That is, someone you know will not be judgemental and that is\nsupportive, comforting, etc.  This will bring a lot of healing.\n\n>So I returned at 11:25, only to find that ever single\n>person had already left for lunch.  They left at 11:15 or so.  No one\n>could be bothered to call me at the other building, even though my\n>number was posted.\n\nThis happens to a lot of people.  Honest.  I believe it may seem\nto be due to gross insensitivity because of the feelings you are\ngoing through.  People in offices tend to be more insensitive while\nworking than they normally are (maybe it's the hustle or stress or...)\nI've had this happen to me a lot, often because they didn't realize\nmy car was broken, etc.  Then they will come back and wonder why I\ndidn't want to go (this would tend to make me stop being angry at\nbeing ignored and make me laugh).  Once, we went off without our\nboss, who was paying for the lunch :-)\n\n>For this\n>reason I hope good Mr. Moderator allows me this latest indulgence.\n\nWell, if you can't turn to the computer for support, what would\nwe do?  (signs of the computer age :-)\n\nIn closing, please don't let the hateful actions of a single person\nharm you.  They are doing it because they are still the playground\nbully and enjoy seeing the hurt they cause.  And you should not\naccept the opinions of an imbecile that you are worthless - much\nwiser people hold you in great esteem.\n-- \nDarin Johnson\ndjohnson@ucsd.edu\n  - Luxury!  In MY day, we had to make do with 5 bytes of swap...\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5127, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kmembry@viamar.UUCP (Kirk Membry)\nSubject: Re: MS-Windows access for the blind?\nReply-To: rutgers!viamar!kmembry\nOrganization: Private System\nLines: 18\n\nIn <1993Apr22.235454.18199@seas.gwu.edu> louray@seas.gwu.edu (Michael Panayiotakis) writes:\n\n>AT the MICRO$OFT display at FOSE, there were a few computers running\n>windows, and win. apps for the  blind, I think.  Didn't pay much\n>attention to it, but it was there.\n\nIt seems that a particular program designed for blind people is more important\nthan trying to interface windows with a way for blind people to use it.\nIf someone made a voice recognition/multimedia (sound) oriented program,\nit would probably been more effective.  I don't know what the original\npurpose of interfacing windows was for the person who posted the question\nthough.\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nKirk Membry                                    \"Our Age is the Age of Industry\"\nrutgers!viamar!kmembry                         - Alexander Rodchenko\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5128, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Drag free satellites (was: Stephen Hawking Tours JPL)\nOrganization: Express Access Online Communications USA\nLines: 8\nNNTP-Posting-Host: access.digex.net\nKeywords: JPL\n\n\n\nJoe,\n\n\tyour description sounds like one of the  gravity probe  spacecraft\nideas.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5129, "properties": {"category": "sci.med", "text": "From: roos@Operoni.Helsinki.FI (Christophe Roos)\nSubject: Wanted: Rat cell line (adrenal gland/cortical c.)\nSummary: Where can I find a rat cell line\nKeywords: adrenal_gland cortical_cell cell_line rat\nOrganization: Institute of Biotechnology (Univ. Helsinki)\nLines: 14\n\nI am looking for a rat cell line of adrenal gland / cortical cell  -type. I \nhave been looking at ATCC without success and would very much appreciate any \nhelp.\n\nThank you for reading this.\n\nChristophe Roos\n\n-------------------------------------------------------------------------\nInstitute of Biotechnology          Fax:                   +358 0 4346028\nPOBox 45, Valimotie 7               E-mail:   Christophe.Roos@Helsinki.Fi\nUniversity of Helsinki              X-400:           /G=Christophe/S=Roos\nSF-00014 Finland                                /O=Helsinki/A=fumail/C=Fi\n-------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5130, "properties": {"category": "comp.windows.x", "text": "From: etxmesa@eos.ericsson.se (Michael Salmon)\nSubject: Re: XtShellStrings,XtStrings?\nNntp-Posting-Host: eos6c02.ericsson.se\nReply-To: etxmesa@eos.ericsson.se (Michael Salmon)\nOrganization: Ericsson Telecom AB\nLines: 28\n\nIn article <1993Apr5.145635.16857@Informatik.TU-Muenchen.DE>\nwilk@Informatik.TU-Muenchen.DE (Christian Wilk) writes:\n|> \n|> Hello,\n|> \n|> does somebody know the functions  XtShellStrings and XtStrings?\n|> I haven't found them in any librarys not Xm, Xt, nor X11, and I need\n|> them to install a tool.\n|> \n|> Any hints greatly appreciated! Please reply via e-mail.\n\nThey aren't functions, they are character arrays. The standard strings\nare either defined as string constants or character pointers into\nXtShellStrings and XtStrings determined by XTSTRINGDEFINES. Your\nlibraries were compiled with this defined and your application with it\nundefined so simply recompile one or the other. It is probably worth\nadding -DXTSTRINGDEFINES to your CFLAGS.\n\n-- \n\nMichael Salmon\n\n#include\t<standard.disclaimer>\n#include\t<witty.saying>\n#include\t<fancy.pseudo.graphics>\n\nEricsson Telecom AB\nStockholm\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5131, "properties": {"category": "rec.sport.baseball", "text": "From: brucek@Ingres.COM (Bruce Kleinman)\nSubject: Re: Jewish Baseball Players?\nArticle-I.D.: pony.1993Apr15.223040.8733\nOrganization: Ingres Corporation, A subsidiary of The ASK Group, Inc.\nLines: 12\n\nIn article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>Just wondering.  A friend and I were talking the other day, and\n>we were (for some reason) trying to come up with names of Jewish\n>baseball players, past and present.  We weren't able to come up\n>with much, except for Sandy Koufax, (somebody) Stankowitz, and\n>maybe John Lowenstein.  Can anyone come up with any more.  I know\n>it sounds pretty lame to be racking our brains over this, but\n>humor us.  Thanks for your help.\n\nHank Greenberg, Sid Gordon, Ron Blomberg.\n\nGuess it goes from the sublime to the ridiculous.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5132, "properties": {"category": "talk.politics.mideast", "text": "From: dzk@cs.brown.edu (Danny Keren)\nSubject: Re: Ten questions about Israel\nOrganization: Brown University Department of Computer Science\nLines: 21\n\ncpr@igc.apc.org (Center for Policy Research) writes:\n\n# 3.      Is it true that Israeli stocks nuclear weapons ? If so,\n# could you provide any evidence ?\n\nYes, Israel has nuclear weapons. However:\n\n1) Their use so far has been restricted to killing deer, by LSD addicted\n   \"Cherrie\" soldiers.\n\n2) They are locked in the cellar of the \"Garinei Afula\" factory, and since\n   the Gingi lost the key, no one can use them anymore.\n\n3) Even if the Gingi finds the key, the chief Rabbis have a time lock\n   on the bombs that does not allow them to be activated on the Sabbath\n   and during weeks which follow victories of the Betar Jerusalem soccer\n   team. A quick glance at the National League score table will reveal\n   the strategic importance of this fact.\n\n-Danny Keren.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5133, "properties": {"category": "comp.graphics", "text": "From: dwestner@cardhu.mcs.dundee.ac.uk (Dominik Westner)\nSubject: need a viewer for gl files\nOrganization: Maths & C.S. Dept., Dundee University, Scotland, UK\nLines: 10\nNNTP-Posting-Host: cardhu.mcs.dundee.ac.uk\nX-Newsreader: TIN [version 1.1 PL9]\n\nHi, \n\nthe subject says it all. Is there a PD viewer for gl files (for X)?\n\nThanks\n\n\nDominik\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5134, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: are we being hysterical? No!\nIn-Reply-To: amolitor@nmsu.edu's message of 17 Apr 1993 17:54:23 GMT\nReply-To: pmetzger@lehman.com\nOrganization: Lehman Brothers\n\t<1qpg8fINN982@dns1.NMSU.Edu>\nDistribution: na\nLines: 80\n\n\nIn article <1qpg8fINN982@dns1.NMSU.Edu> amolitor@nmsu.edu (Andrew Molitor) writes:\n\n>In article <tcmayC5M2xv.JEx@netcom.com>\n>\ttcmay@netcom.com (Timothy C. May) writes:\n>>\n>>But is it any worse than the current unsecure system? It becomes much\n>>worse, of course, if the government then uses this \"Clinton Clipper\"\n>>to argue for restrictions on unapproved encryption. (This is the main\n>>concern of most of us, I think. The camel's nose in the tent, etc.)\n>>\n\n>\tNot to pick on Mr. May in particular, of course, but isn't this\n>kind of the domino theory?\n\nAs John Gilmore has pointed out repeatedly, if you produce the\ninfrastructure that would permit a police state to function, all that\nis required to suddenly find yourself living in one is a change of\nattitude on the part of the government.\n\nOur constitution was built by men who had to risk their lives to\nensure freedom in our country. They designed the system to make it\ndifficult for tyranny to arise. For instance, one of the reasons the\nfourth amendment was put there was to make it harder for the\ngovernment to try to make smuggling a crime. Think I jest? John\nHancock made all his money smuggling rum, which is, after all, a drug.\n\nThink about it. The government has everyones keys in escrow, and the\nFBI gets their pet \"wiretap without leaving the office\" scheme. There\nis a coup, which happens every day all around the world. Within hours,\neveryone in the country who might oppose the tyrants is being\nmonitored more closely than ever before possible.\n\nWithout the tools being in place, a tyranny cannot stand. With tools\nlike this in place, a tyrannical dictatorship could actually be\nsuccessfully imposed.\n\nWhy give the government tools with which to enslave you? Maybe you can\ntrust Bill Clinton, but are you willing to tell me that you can trust\nEVERY government that will ever arise in the U.S. hereafter? I am not\nwilling to make that leap of faith.\n\n>>-Tim May, whose sig block may get him busted in the New Regime\n>                           ^^^^^^^^^^^^^^^^^^\n>\tIsn't this just a little melodramatic?\n\nI'm a political dissident. As such, I am acutely aware of what happens\nto political dissidents in most of the world. In most of the world, I\ncould be killed for my beliefs. Call Amnesty International some time\nto find out what happens to dissidents in most of the world.\n\nAll that seperates the U.S. from most of those places is a thin piece\nof parchment in the National Archives thats being constantly more and\nmore eroded by such farces as the war on drugs. Coups have happened in\ncountries that have had stable democracies for over a hundred years.\nGovernments throughout history have fallen. No government has lasted\nfor more than a few hundred years. Often, they are replaced by\ndictatorships. Do you really believe so intensely that it could never\never ever happen here that you are willing to bet your own life and\nthe lives of your children and other loved ones on it?\n\nIf we construct the tools with which tyranny could be enforced, we\nmake it orders of magnitude more likely that it could happen, because\nif it happened with the tools already in place it could actually\nstick. \n\nNaive fools such as our leadership believe they can protect us where\nhundreds that have gone before have failed. Thriving democracies led\nby men far more skillfull than Bill Clinton have fallen to\ndictatorship. Rome had a thriving republic run by exquisitely skilled\nmen before they became a tyranny.\n\nI, for one, am unwilling to trust that it could never happen here.\nOnly hubris would allow us to believe we are immune to what has\nhappened elsewhere.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5135, "properties": {"category": "rec.autos", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: Too fast\nOrganization: Corporation for Open Systems\nDistribution: world \nLines: 35\n\nIn <1993Apr14.045526.21945@cactus.org> boyle@cactus.org (Craig Boyle) writes:\n\n>In article <1qg19v$5ju@umcc.umcc.umich.edu> mhartman@umcc.umcc.umich.edu (Mark Hartman) writes:\n>>\n>> I don't know why you are complaining about 130.  Alot of us have cars that\n>>can easily top that. Most that go 130 are built to do it also and can handle\n>>the speed.  Why complain and just join in on the fast fun ?  Can I ask.\n>>Have any of you been at the speed of 130 ?  Its a rush.\n\n>Driving 130 in a straight line is fine, you very soon become aclimated \n>to it. It's only a rush when there are corners that you don't\n>think you can make.\n\n>On a clear autobahn, 130 is nothing. In the U.S. 99% of people and\n>all judges would label you insane and it is difficult to persuade\n>people otherwise.\n\nSure, but the surface condition of most good autobahns is far better\nthan most of the roads here. A dip in the asphalt that you test your\nshocks on at 60 will kill you at 130. Don't get me wrong, I love to\ndrive quickly and they say my Probe will do 130, but that's 30 more\nthan I've ever tried in it cause there isn't a decent enough piece\nof road hereabouts.\n\n>Craig\n>>\n>>-- \n>>   Mark Hartman         mhartman@umcc.umcc.umich.edu\n>>   Kalamazoo, MI        bk405@cleveland.freenet.edu\n>>    \"I'm naked in the school!\" - Sleepyhead -\n>>\n\nBob\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5136, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ccastco@prism.gatech.EDU (Constantinos Malamas)\nSubject: Re: ?? DOS font size in windows??\nOrganization: Georgia Institute of Technology\nLines: 25\n\nIn article <1993Apr18.024128.9119@ncsu.edu> ssa@unity.ncsu.edu (S. Alavi) writes:\n>\t(normal 8514/A font, not small).  In the 386 enhanced mode\n>\tthe DOS window font is too small for my 14\" monitor. Is there a \n>\tway to spacify the font size for the DOS window? You'll have to \n>\texcuse me if there is a trivial answer, since I am fairly new to\n>\tMS Windows world.\n>\tThanks.\n>\t======  S. Alavi    [ssa@unity.ncsu.edu]  (919)467-7909 (H)  ========\n\t\n\tFirst of all, without wanting to sound nagging and bossy, yes it is\na trivial answer and that's perfectly fine ( otherwise how is one supposed\nto move up to the complicated and challenging questions, we net readers so\nmuch enjoy :) ?), and the massive crossposting of your article was not\n justified...\nPlease refer to appropriate newsgroups next time (by the way c.o.msw.misc is\nOK :) ). Now as far as your problem is concerned: try playing around with\nthe settings in the 'Fonts...\" dialog box under the window control menu (that\nlittle square at the top left corner of the window..). \n\n\n-- \nCostas Malamas ____________________________________________________________\nGeorgia Institute of Technology \nOIT UA -- Opinions expressed are not necessarily OIT's... \nInternet: ccastco@prism.gatech.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5137, "properties": {"category": "sci.med", "text": "From: amigan@cup.portal.com (Mike - Medwid)\nSubject: Re: Emphysema question\nOrganization: The Portal System (TM)\nDistribution: na\n  <1993Apr15.180621.29465@radford.vak12ed.edu> <9072@blue.cis.pitt.edu>\nLines: 11\n\nThanks to all who replied to my initial question.  I've been away in \nNew Jersey all week and was surprised to see all the responses\nwhen I got back.  \n\nTo the person asking about nicotine patches, there are four on the\nmarket:\n\nHabitrol - Ciba Pharmaceuticals\nNicoderm - Marion Merill Dow (Alza made)\nNicotrol - Warner Lambert (Cygnus made)\nProStep - Made by Elan and marketed by ??\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5138, "properties": {"category": "talk.religion.misc", "text": "From: swaim@owlnet.rice.edu (Michael Parks Swaim)\nSubject: Re: OTO, the Ancient Order of Oriental Templars\nOrganization: Rice University\nLines: 33\n\nIn article <79615@cup.portal.com> Thyagi@cup.portal.com (Thyagi Morgoth NagaSiva) writes:\n\n>\"To all whom it may concern -\n>\n>\"It is known only to a few that there exists an external visible\n>organization of such men and women, who having themselves found\n>the path to real self-knowledge, and who, having travelled the\n>burning sands, are willing to give the benefit of their experience,\n>and to act as spiritual guides to those who are willing to be\n>guided.\n>\n>\"While numberless societies, associations, orders, groups etc.\n>have been founded during the last thirty years in all parts of\n>the civilised world, all following some line of occult study,\n>yet there is but ONE ancient organization of genuine Mystics\n>which shows the seeker after truth a Royal Road to discover\n>The Lost Mysteries of Antiquity, and to the Unveiling of the\n>One Hermetic Truth.\n>\n>\"This organization is known at the present time as the Ancient\n>Order of Oriental Templars.  Ordo Templi Orientis.  Otherwise:\n>The Hermetic Brotherhood of Light.\n\n  Up to this point, I was kinda hoping that this was a joke. Still,\nit would make a great premise for a bad syndicated TV show- \"These\nare the adventures of the Oriental Templars... dedicated to truth,\njustice, and good karma! (Dramatic music in the background.)\"\n  No doubt I've just horribly offended someone.\n-- \nMike Swaim            |Whenever the soft drink  machine needs to be \nswaim@owlnet.rice.edu |restocked, rather than getting angry,\nDisclamer: I lie      |meditate on the impermanence of all things\n                      |and the emptiness of coke.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5139, "properties": {"category": "sci.med", "text": "From: npm@netcom.com (Nancy P. Milligan)\nSubject: Re: Need advice with doctor-patient relationship problem\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 15\nX-Newsreader: TIN [version 1.1 PL8]\n\nI'd dump him.  Rude is rude and it seems he enjoys belittling and\nhumiliating you.  But don't just dump him, write to him and tell\nhim why you are firing him.  If you can, think about sending a copy\nof your letter to whoever is in charge of the clinic where he works, \nif applicable, or maybe even to the AMA.  Don't be vindictive in\nyour letter, be truthful but VERY firm.\n\nBut don't be a victim and just put up with it.  Take control!  It'll\nmake you feel great!\n\nNancy M.\n-- \nNancy P. Milligan\t\t\t\t\tnpm@netcom.com\n\t\t\t\t\t\t\t      or\n\t\t\t\t\t\t\tnpm@dale.cts.com\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5140, "properties": {"category": "rec.autos", "text": "From: dbak@elm.lle.rochester.edu (Douglas Baker)\nSubject: Performance of new Mustangs !!!!!!!!!!!!!!!!!!!!!\nArticle-I.D.: galileo.1993Apr6.170901.7684\nOrganization: University of Rochester, Rochester NY\nLines: 9\nNntp-Posting-Host: elm.lle.rochester.edu\n\n\n\tDoes anyone know the performance ratings for a 1992 or 1993\n5.0 L HO Mustang LX like the 0-60 time 1/4 mile and top end ???\nAlso can you tell me which magazine where these #'s come from so I\ncan look them up if possable ????  If you could the year and month and\neveen page # if you have it.\n\n\t\t\t\t\t\tThanks,\n\t\t\t\t\t\tDoug\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5141, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Roger Maynard\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 15\n\nDoes anyone recieve annoying email from Roger Maynard whenever they post an\narticle telling them to leave him alon and stop posting to the group??\nThese emails are filled with insults- more than are usual in Roger's posts\nand have little if any hockey info.\nI have recieved two in the last 2 days.\nI am just wondering if I am special or Roger trys to bully everyone who\ndisagrees with him.\n\nGregmeister\n\nObligatory hockey comment:\n\nIt is highly unlikely that the Maple Leafs will even get out of their\ndivision.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5142, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: Re: Conference on Manned Lunar Exploration.  May 7  Crystal City\nOrganization: Fermi National Accelerator Laboratory\nLines: 31\nDistribution: na\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <1993Apr19.230236.18227@aio.jsc.nasa.gov>, daviss@sweetpea.jsc.nasa.gov (S.F. Davis) writes:\n> In article <1quule$5re@access.digex.net>, prb@access.digex.com (Pat) writes:\n> |> \n> |> AW&ST  had a brief blurb on a Manned Lunar Exploration confernce\n> |> May 7th  at Crystal City Virginia, under the auspices of AIAA.\n> |> \n> |> Does anyone know more about this?  How much, to attend????\n> Here are some selected excerpts of the invitation/registration form they\n> sent me. Retyped without permission, all typo's are mine.\n\nThanks for typing that in, Steven.  Sounds like a \"fall back and\nregroup\" strategy session.\n\nI wanted to add that my copy of the brochure arrived with a flattering\ncover letter:\n\n\"Invitations are being extended to those who have demonstrated a\nstrong committment to space program development and have been\ninfluential in its advancement.  We sincerely hope you will be able to\nattend.\"\n\nWow! I wonder which of my contributions to the conquest of space\nconvinced them to send me this letter?\n\nI hope you decide to go, Pat.  The Net can use some eyes and ears\nthere...\n\nBill Higgins          |  If we can put a man on the Moon, why can't\nFermilab              |  we put a man on the Moon? -- Bill Engfer\nhiggins@fnal.fnal.gov |  If we can put a man on the Moon, why can't\nhiggins@fnal.Bitnet   |  we put a woman on the Moon? -- Bill Higgins\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5143, "properties": {"category": "rec.autos", "text": "From: kimata@convex.com (Hiroki Kimata)\nSubject: Re: Open letter to NISSAN\nDistribution: na\nNntp-Posting-Host: zeppelin.convex.com\nOrganization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 43\n\nIn <1qideqINNl79@sumax.seattleu.edu> smorris@sumax.seattleu.edu (Steven A. Morris) writes:\n\n>Hey, NISSAN, why aren't you guys making any station wagons?  You used\n>to make a wagon on every platform (SENTRA, STANZA, MAXIMA) and now\n>NONE AT ALL.\n\nIn fact, they make some ,but they just don't sell them here in U.S.\n\nSunny California is a 1.6l wagon based on Sentra.\nAvenil is a 2.0l 4WD/2WD wagon .(It looks like Infinity G20 \nbut actually it's independently designed to be a wagon.I mean, it's \nnot based on any sedans.) \n \nNissan had better consider to sell them here.\n\n>After buying my SE-R and really loving it, I would like to buy another\n>NISSAN product for my wife -- but prefer a wagon  (I've owned minivans\n>and don't prefer them.)\n\n>How about an ALTIMA wagon?  or a sentra wagon would do...\n\nSounds nice. But I doubt they have a plan. Coz Avenil was introduced \nto replace any sedan based wagon.\n\n>or, here's an even better suggestion, why don't you guys go ahead and\n>buy the rest of Fuji Heavy Industries (Subaru) and put either an\n>in-line 4 or V-6 into the LEGACY 4WD wagon.  I'd buy the Legacy in a\n>minute if it had a Nissan engine instead of the Horizontal 4 that they\n>seem sentimentally attached to.\n\n>With all the Camry, Accord, Taurus, Volvo and Subaru wagons out there\n>-- it's got to be a market segment that would be worthwhile!\n\n>I can wait a year or two -- but if you don't have something to compete\n>by the 1995 model I may have to go elsewhere.\n\n>Thanks.\n\n>-- \n>Steve Morris, M.A.    : Internet: smorris@sumax.seattleu.edu\n>Addiction Studies Pgm : uucp    :{uw-beaver,uunet!gtenmc!dataio}!sumax!smorris\n>Seattle University    : Phone   : (206) 296-5350 (dept) or 296-5351 (direct)\n>Seattle, WA 98122_____:________________________________________________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5144, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jartsu@hut.fi (Jartsu)\nSubject: Best frontplate for SyQuest in IIvi/IIvx/C650?\nNntp-Posting-Host: lk-hp-7.hut.fi\nReply-To: jartsu@vipunen.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 11\n\n\nCould someone tell me how to make/find/get the best frontplate for\nIIvi/IIvx/C650 with internal SyQuest drive?\n\nIs there one available or do I have to make one from the original or\nCD-ROM one or scratch?\n\nEvery suggestion welcome.\n\n--\nJartsu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5145, "properties": {"category": "rec.sport.baseball", "text": "From: st902415@pip.cc.brandeis.edu (Adam Levin)\nSubject: Early BBDDD Returns?\nReply-To: st902415@pip.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 13\n\nJust curious if anyone has started to standout early in the season in the\nBB DDD this year. I expect the Phillies staff, while getting the wins,\nwould have to rank up there. Luis Gonzalez and Derrick May are among\nthe early league leaders, and all 6 of their bombs have come at the\nPhils' expense. Neither of them have exactly been know for their tater\nprowess in the past. \n\nHow have the Rockies been early? I know Mile High has produced a ton of \nruns, but is it the launching pad everyone expected yet? \n\nA concerned fan of the BB DDD,\n\nAdam \"Witness to the Phillies lone loss of the season so far\" Levin\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5146, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: A Scoop of Waco Road, Please\nOrganization: Stratus Computer, Inc.\nLines: 13\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\nKeywords: topical, smirk\n\nYour \"lite\" posting for the day, from rec.humor.funny:\n\nIn article <S539.2adf@looking.on.ca>, bellas@tti.com (Pete Bellas) writes:\n> \n> There is a new Ice Cream Flavor inspired by the incident at Waco.\n> \n> It's called Mount Caramel, it's full of nuts but you can't get it out\n> of the carton.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.246+0000", "event": "documents", "entityId": 5147, "properties": {"category": "talk.politics.misc", "text": "From: dreitman@oregon.uoregon.edu (Daniel R. Reitman, Attorney to Be)\nSubject: Re: Defense against the detractors...\nOrganization: University of Oregon\nLines: 93\nDistribution: world\nNNTP-Posting-Host: oregon.uoregon.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr2.021154.18039@colorado.edu>,\n ajteel@dendrite.cs.Colorado.EDU (A.J. Teel) writes...\n>In article <C4tDAB.A4o@panix.com> eck@panix.com (Mark Eckenwiler) writes:\n>>In <1993Apr1.141455.16433@colorado.edu>, ajteel@dendrite.cs.Colorado.EDU sez:\n>>>\t(I would have thought you would have found better means\n>>>of refuting or responding to the substantive points and information in\n>>>the S.B. \n\n>>The S.B. needs no refutation by me.  The patent absurdity of your\n>>beloved Great Book speaks for itself.\n\n>\tYour ignorance is clearly showing itself again, Mark.\n>\tWhy don't you read the post and show us all where the\n>\tSilver Bulletin is wrong. It is an expose' of the\n>\tcorruption and fraud in government. Or do you feel\n>\tthat our wonderful state is just nifty and sweet?\n\nFine.  If you think it's an expose of corruption and fraud, \nplease prevent a jury question.  Don't just reassert your \nopening statement.\n\n>. . . \t\n>>For those in the dark, I wrote to Teel's sysadmin noting that a) he\n>>wastes bandwidth by posting identical messages (long ones) to several\n>>newsgroups independently (instead of cross-posting), and b) he has\n>>improperly used his posts to advertise goods for sale.  \n>\tA) I was requested to post to those groups\n>\tand they were getting deleted... By whom?\n>\tB) The \"goods for sale\" was a method of showing the\n>\tsource and obtaining further info...\n>\tAnd the message in question was retrieved in its entirety\n>\tfrom the net. I simply reposted it from one year ago.\n\n>\tWould there be a complaint if I had posted an article from\n>\t\"Newsweek\" then posted the address and subscription price?\n>\tHow about the subscription info for the American Law Review?\n>\tBit of a double standard? Yeah... think so...\n\nNo indication that was what happened until now.  Editing down is \nalways possible.\n\n>. . .  \n>>Readers more careful than A.J. will note that the complaint (appended\n>>below) expressly disclaims any wish to suppress Teel's postings merely\n>>because they are infantile, irrational, and tedious.\n>\tMore name calling, Mark? Is that your best shot?\n>\tOh, I see. The reason for your sending that letter\n>\thad nothing to do with your opinion of my information...\n>\tRight. Clearly your motivations were the best interest\n>\tof all of those poor users who could not speak for themselves.\n>\tIf we weren't talking about attempted censorship(sp?), it\n>\twould be funny...\n\n>\tFurther, your \"perception\" (for want of a better term) is not\n>\tthe feedback that I have been getting via email and others.\n>\t The \"keep it up!\"'s outnumber the \"Go away!\"'s at least 20 to 1.\n\nIt would be interesting to hear who the responding parties are.\n\n>\tI, for one, have no intention of being a slave. You may\n>\tbe so if you like. Just remember where you heard that\n>\ton Tribute Day (April 15). I am not a 14th Amendment\n>\ttaxpayer/slave/SSN holder/etc. Are you?\n\nFOR DISCUSSION PURPOSES ONLY:\n\nDon't let the IRS see this, Mr. Teel.\n\n>. . . .\n>\tAnd by the way, the reference to UCC 1-207 is made\n>\tin pari materia with my Common-Law Rights. 1-207\n>\tis the recourse and 1-103 is the remedy.\n\nAnd, as has been noted more times than we care to count, about as \nlikely to stand up in court as the twenty-seven eight by ten \ncolor glossy pictures the Stockbridge, Mass., police, took for \nuse as evidence against Arlo Guthrie.  (As anyone who knows \nAlice's Restaurant is aware, he pleaded guilty to littering, was \nfined $50, and told to pick up the garbage.)\n\n\t\t\t\t\t\tDaniel Reitman\n\nHOW NOT TO WRITE A DEED\n\nOne case involved the construction of a conveyance to grantees \"jointly, as \ntenants in common, with equal rights and interest in said land, and to the \nsurvivor thereof, in fee simple. . . . To Have and to Hold the same unto the \nsaid parties hereto, equally, jointly, as tenants in common, with equal rights \nand interest for the period or term of their lives, and to the survivor thereof \nat the death of the other.\"\n\nThe court held that the survivorship provision indicated an intent to create a \njoint tenancy.  Germain v. Delaine, 294 Ala. 443, 318 So.2d 681 (1975).\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5148, "properties": {"category": "alt.atheism", "text": "From: timmbake@mcl.ucsb.edu (Bake Timmons)\nSubject: Re: Amusing atheists and anarchists\nLines: 117\n\nmccullou@whipple.cs.wisc.edu writes:\n\n>My turn\n>I went back and reread your post.  All you did is attack atheism, and\n>say that agnosticism wasn't as funny as atheism.  Nowhere does that\n>imply that you are agnostic, or weak atheist.  As most people who post\n>such inflammatory remarks are theists, it was a reasonable assumption.\n\nSorry, you're right.  I did not clearly state it.\n\n>>Rule *2:  Condescending to the population at large (i.e., theists) will not\n>>win many people to your faith anytime soon.  It only ruins your credibility.\n\n>How am I being condescending to the population at large?  I am stating\n>something that happened to be true for a long time, I couldn't believe\n>that people actually believed in this god idea.  It was an alien concept\n>to me.  I am not trying to win people to my faith as you put it.  I have\n>no faith.  Religion was a non issue when I had the attitude above because\n>it never even occurred to me to believe.  Atheist by default I guess you\n>could say.\n\nThe most common form of condescending is the rational versus irrational\nattitude.  Once one has accepted the _assumption_ that there is no god(s),\nand then consider other faiths to be irrational simply because their\nassumption(s) contradict your assumption, then I would say there's a\nlack of consistency here.\n\nNow I know you'll get on me about faith.  If the _positive_ belief that God\ndoes not exist were a closed, logical argument, why do so many rational\npeople have problems with that \"logic\"?\n\nBut you, probably like me, seem to be a soft atheist.  Sorry for the flamage.\n\n>The line about atheists haveing something up their sleeves is what seemed\n>to imply that.  Sorry, been reading too much on the CLIPPER project lately,\n>and the paranoia over there may have seeped in some.\n\n;)  What is the CLIPPER project BTW?\n\n>>Rule #4:  Don't mix apples with oranges.  How can you say that the\n>>extermination by the Mongols was worse than Stalin?  Khan conquered >people\n>>unsympathetic to his cause.  That was atrocious.  But Stalin killed >millions of\n>>his own people who loved and worshipped _him_ and his atheist state!!  >>How can\n>>anyone be worse than that?\n\n>Many rulers have done similar things in the past, only Stalin did it\n>when there was plenty of documentation to afix the blame on him.  The\n>evidence is that some of the early European rulers ruled with an iron\n>fist much like Stalin's.  You threw in numbers, and I am sick of hearing\n>about Stalin as an example because the example doesn't apply.  You\n>managed to get me angry with your post because it appeared to attack\n>all forms of atheism.\n\nIt might have appeared to attack atheism in general, but its point was\nthat mass killing happens for all sorts of reasons.  People will hate who\nthey will and will wave whatever flag to justify it, be it cross or\nhammer&sickle.  The Stalin example _is_ important not only because it's\nstill a widely unappreciated era that people want to forget but also\nbecause people really did love him and his ideas, even after all that he\nhad wrought.\n\n>The evidence I am referring to is more a lack of evidence than negative\n>evidence.  Say I claim there are no pink crows.  I have never seen\n>a pink crow, but that doesn't mean it couldn't exist.  But, this person\n>here claims that there are pink crows, even though he admits he hasn't\n>been able to capture one or get a photo, or find one with me etc.\n>In a sense that is evidence to not believe in the existence of pink crows.\n>That is what I am saying when I look at the evidence.  I look at the\n>suppossed evidence for a deity, show how it is flawed, and doesn't show\n>what theists want it to show, and go on.\n\nFirst, all the pink crows/unicorns/elves arguments in the world will not\nsway most people, for they simply do not accept the analogy.  Why?\n\nOne of the big reasons is that many, many people want something\nbeyond this life.  You can pretend that they don't want this, but I for\none can accept it and even want it myself sometimes.\n\nAnd there is nothing unique in this example of why people want a God.\nCan love as a truth be proven, logically?\n\n>>themselves, namely, a god or gods.  So in principle it's hard to see how\n>>theists are necessarily arrogant.\n\n>Makes no sense to me.  They seem arrogant to make such a claim to me.\n>But my previous refutation still stands, and I believe there may be\n>another one on the net.\n\nJohn the Baptist boasted of Jesus to many people.  I find it hard to see\nhow that behavior is arrogant at all.  Many Christians I know also boast\nin this way, but I still do not necessarily see it as arrogance.  Of course,\nI do know arrogant Christians, doctors, and teachers as well.  Technically,\nyou might consider the person who originally made a given claim to be arrogant,\nJesus, for instance.\n\n>Are you talking about all atheism or just strong atheism?  If you are\n>talking about weak atheism which I believe in, then I refuse such a claim.\n>Atheism is a lack of belief.  I used good ol' Occam's Razor to make the\n>final rejection of a deity, in that, as I see things, even if I\n>present the hypothesises in an equal fasion, I find the theist argument\n>not plausible.\n\nI speak against strong atheism.  I also often find that the evidence\nsupporting a faith is very subjective, just as, say, the evidence supporting\nlove as truth is subjective.\n\n>I believe I answered that.  I apologize for the (as you stated) incorrect\n>assumption on your theism, but I saw nothing to indicate that you\n>were an agnostic, only that you were just another newbie Christian\n>on the net trying to get some cheap shots in.\n\nNo apology necessary.  :)\n--\nBake Timmons, III\n\n-- \"...there's nothing higher, stronger, more wholesome and more useful in life\nthan some good memory...\" -- Alyosha in Brothers Karamazov (Dostoevsky)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5149, "properties": {"category": "misc.forsale", "text": "From: jlz@sonata.cc.purdue.edu (Jian Zhen)\nSubject: computer stuff for sale\nOrganization: Purdue University\nLines: 93\n\n                      COMPUTER HARDWARE\n  \t   ( all are working fine last time checked ) \n\nTandy 360k external floppy drive with cable (hardly used)\n                                    ..................... $70  \n\n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n\n                       SOFTWARE\n\t  ( all software include original manual  ) \n\t  ( some even with registeration card.    )\n\nPer$onal Financial Accountant \n    - financial statements\n    - balance sheet\n    - income & expense\n    - etc ...                   ......................... $8\n\nAinsworth Keyboard Trainer (typing teacher) ............. $8\n\nEasy Working Tri-Pack (includes following ... )\n   - Filer -- database to store all kinds of information\n   - Planner -- Spreadsheet \n   - Writer -- an easy to use word processor\n   - great for simple calculations, work processing..etc.\n                                       .................. $8\n\n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n\n                         BOOKS\n\n\nInside the Norton Utilities, Revised and Expanded\n\n      - by Brady Books\n      - authored by Rob Krumm\n      - Introduction by Peter Norton, maker of Norton utilities\n      - Includes detachable Quick Reference Card to Norton utilities\n      - shows you how to get the most from\n            * The Norton Utilities - Standard Edition \n            * The Norton Utilities - Advanced Edition \n            * Norton Commander (1.0 - 3.0)\n            * Norton Editor\n            * Norton Disk Doctor\n            * Plus the Peter Norton On-Line Guides\n      - \"The only book that does full justice to the power and\n         variety of all the Norton Utility software\" - Peter Norton\n      - Price originally was $24.95\n                      asking .................................. $14.95\n\nTurbo Pascal Express revised (one disk)\n   - 250+ ready-to-run assembly language routines that make\n     turbo pascal faster, more powerful, and easier to use\n   - equipment determination routines and access to expanded memory\n   - extensive keyboard and mouse input functions\n   - extremely fast video facilities, including text-graphics\n     routines for fancy menus and windows\n   - routines for bit operations and data compression\n   - routines for elaborate printer control, formatting, and\n     error recovery\n   - powerful routines for searching directory trees and displaying\n     tree diagrams\n   - detailed information about writing other assembly routines for \n     assembly language programmers\n   - original price was $39.95\n                        asking  ........................ $22.95\n\nHard Disk Power w/ The Jamsa Disk Utilities (two disks)\n   - complete guide to hard disk efficiency\n   - power techniques for maximum PC performance\n   - understand how your hard disk works - beneath the surface\n   - original price was $39.95\n                        asking  ........................ $22.95\n    \n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n\n        * Prices does not include shipping\n        * Prices are negotiable\n\n\tPlease contact Jian at 1(317)495-3732 or \n\tE-mail to JLZ@SONATA.CC.PURDUE.EDU (preferred)\n\tif you are interested.\n\n--\n+---------------------------------------------------------------------------+\n| Jian Liang Zhen          | Lifeforms are extinct on other planets because |\n| jlz@sonata.cc.purdue.edu | their science is more advanced than ours.      |\n|____________/---| DOS < WINDOWS < DESQview = OS/2 < UNIX |---\\_____________|\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5150, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U23590@uicvm.uic.edu>\nSubject: Re: Waco dates - are these coincidental?\nDistribution: usa\n <1993Apr5.193927.19951@hplabsz.hpl.hp.com>\nLines: 19\n\nI do not think it is at all unlikely that Clinton ro his policy\nwonk facilitators arranged the Waco raid as a display piece for  the\nGun War on the Constitution.  Look at what the Bush administration did to\nget material for the Drug War on the Constitution--remember that baggie of\ncrack George waved at the cameras?  They took a dealer from the ghetto\nand brought him to the White House so they could say drugs had been\ndealt onb the White House Lawn.\nAnd I don't think anybody could honestly think Clinton would have any\nmoral qualms about the raid...\nThe only really worrisome thing is that the BD's heroic defense of\ntheir ranch will make Clinton's Gun War on the Constitution _more_\nsuccessfull--exactly as he wanted.  The media and politicians will\nfilter this so that the general public will think the BD's\nare bad guys!  Don't help them.  Stand up for the BD's with your\nfriends and family adnd in public anytime you can--their supposed\nmoral qualms are not important to the issue.  They are heroes in the\nfight against oppressive government;  it could just as well have been\nyou.\n-watkins@earth.eecs.uic.edu  (Brian E Watkins)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5151, "properties": {"category": "talk.politics.guns", "text": "From: brant@seq.uncwil.edu (AT-Dreamer)\nSubject: Re: Insane Gun-toting Wackos Unite!!!\nOrganization: Univ. of North Carolina @ Wilmington\nDistribution: na\nLines: 10\n\nAnyone who worries about his own gun should not have one.  If you carry\nany pistol with a empty chamber and safety the chances of it going off\nare about zero.  Unless you sit it on top of a lite stove for a couple\nof minutes or put it in a fire. :-)     \n\n-- \n+------------------------------------------------------------------------------+\n| \"What doesn't kill us makes us stronger\"  Spoken by many A.T. hikers         |\n|  Kilo Delta Four Zulu Papa Uniform -KD4ZPU 146.82                \n+------------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5152, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gjp@sei.cmu.edu (George Pandelios)\nSubject:  Help me select a Backup Solution\nOrganization: The Software Engineering Institute\nLines: 55\n\n\nHi Netters!\n\nI'm looking at purchasing some sort of backup solution.  After you read about\nmy situation, I'd like your opinion.  Here's the scenario:\n\n1.  There are two computers in the house.  One is a small 286 (40MB IDE drive).\n    The other is a 386DX (213 SCSI drive w/ Adaptec 1522 controller).  Both \n    systems have PC TOOLS and will use Central Point Backup as the backup / \n    restore program.  Both systems have 3.5\" and 5.25\" floppies.\n\n2.  The computers are not networked (nor will they be anytime soon).\n\nFrom what I have seen so far, there appear to be at least 4 possible\nsolutions (I'm sure there are others I haven't thought about).  For these \noptions, I would appreciate hearing from anyone who has tried them or sees \nany flaws (drive type X won't coexist with device Y, etc.) in my thinking \n(I don't know very much about these beasts):\n\n1.  Put 2.88MB floppy drives (or a combination drive) on each system.\n    Can someone supply cost and brand information?  What's a good brand?\n    What do the floppies themselves cost?\n\n\n2.  Put an internal tape backup unit on the 386 using my SCSI adapter, and\n    continue to back up the 286 with floppies.  Again, can someone recommend a\n    few manufacturers?  The only brand I remember is Colorado Memories.  Any\n    happy or unhappy users (I know about the compression controversy)?\n \n\n3.  Connect an external tape backup unit on the 386 using my SCSI adapter, and\n    (maybe?) connect it to the 286 somehow (any suggestions?)\n\n\n4.  Install a Floptical drive in each machine.  Again, any gotcha's or \n    recommendations for manufacturers?  \n\nI appreciate your help.  You may either post or send me e-mail.  I will\nsummarize all responses for the net.\n\nThanks,\n\nGeorge\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n  George J. Pandelios\t\t\t\tInternet:  gjp@sei.cmu.edu\n  Software Engineering Institute\t\tusenet:\t   sei!gjp\n  4500 Fifth Avenue\t\t\t\tVoice:\t   (412) 268-7186\n  Pittsburgh, PA 15213\t\t\t\tFAX:\t   (412) 268-5758\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nDisclaimer:  These opinions are my own and do not reflect those of the\n\t     Software Engineering Institute, its sponsors, customers, \n\t     clients, affiliates, or Carnegie Mellon University.  In fact,\n\t     any resemblence of these opinions to any individual, living\n\t     or dead, fictional or real, is purely coincidental.  So there.\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5153, "properties": {"category": "sci.med", "text": "From: Daniel.Prince@f129.n102.z1.calcom.socal.com (Daniel Prince)\nSubject: Re: Can men get yeast infections?\nLines: 13\n\n To: smithmc@mentor.cc.purdue.edu (Lost Boy)\n\n LB> I know from personal experience that men CAN get yeast infections. I \n LB> get rather nasty ones from time to time, mostly in the area of the\n LB> scrotum and the base of the penis. \n\nI used to have problems with recurrent athlete's foot until I \nstarted drying between my toes with my blow drier after each time \nI bathe.  I also dry my pubic area while I am at it to prevent \nproblems.  You might want to try it.\n\n... My cat types with his tail.\n * Origin: ONE WORLD Los Angeles 310/372-0987 32b (1:102/129.0)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5154, "properties": {"category": "comp.windows.x", "text": "From: kssingvo@immd4.informatik.uni-erlangen.de (Klaus Singvogel)\nSubject: xswarm enhancement?\nOrganization: CSD., University of Erlangen\nReply-To: kssingvo@immd4.informatik.uni-erlangen.de\nNNTP-Posting-Host: faui43.informatik.uni-erlangen.de\nLines: 8\n\nHas anybody the xswarm enhacemened to use it with more than one wasp?\n\nPlease E-Mail me, because I don't read this group any longer.\n\nThanks in advance,\n\tKlaus.\n---\nKlaus Singvogel   ---   E-Mail: kssingvo@immd4.informatik.uni-erlangen.de\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5155, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wild@access.digex.com (wildstrom)\nSubject: Re: Windows 3.1 keeps crashing: Please HELP\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 17\nNNTP-Posting-Host: access.digex.net\n\n\n\n>In article <1993Apr16.155637.15398@oracle.us.oracle.com> ebosco@us.oracle.com (Eric Bosco) writes:\n>>From: ebosco@us.oracle.com (Eric Bosco)\n>>Subject: Windows 3.1 keeps crashing: Please HELP\n>>Date: Fri, 16 Apr 1993 15:56:37 GMT\n>>\n>>As the subjects says, Windows 3.1 keeps crashing (givinh me GPF) on me of  \n>>late.  It was never a very stable package, but now it seems to crash every  \n>>day.  The worst part about it is that it does not crash consistently: ie I  \n\nThere is a way in SYS.INI to turn off RAM parity checking (unfortunately,\nmy good Windows references are at home, but any standard Win reference\nwill tell you how to do it. If not, email back to me.) That weird memory\nmay be producing phony parity errors. Danger is, if you turn checkling off,\nyou run the slight risk of data corruption due to a missed real error.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5156, "properties": {"category": "rec.autos", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Re: I'm getting a car, I need opinions.\nOrganization: Lehigh University\nLines: 47\n\nIn article <1qqp2o$5ba@usenet.INS.CWRU.Edu>, cf947@cleveland.Freenet.Edu (Chun-H\nung Wan) writes:\n>\n>In a previous article, ip02@ns1.cc.lehigh.edu (Danny Phornprapha) says:\n>\n>>I have $30,000 as my budget.  I'm looking for a sports or GT car.\n>>\n>>What do you think would be the best buy?  (I'm looking for specific models)\n>>\n>>Thanks,\n>>Danny\n>>--\n>>\n>>==============================================================================\n=\n>>=    \"Hey! You programmers out there!     |    Danny Phornprapha\n=\n>>=     Please consider this:               |    ip02@lehigh.edu\n=\n>>=                                         |\n=\n>>=     Bugs are another endangered earth   |    LUCC Student Konsultant\n=\n>>=     Species needing your protection.    |    Work: (215) 758-4141\n=\n>>\n>\n>For an all out sports car, I'd go for the RX-7 without the sports\n>suspension (which is too stiff.)  For a little more practicality and more\n>comfort, the Nissan 300ZX Turbo is a good buy.  And for a good dose of\n>luxury, the Lexus SC300 is perfect (with a manual transmission of course.)\n>However, the Toyota Supra is coming out soon and if you like it's looks,\n>the performance is supposed to be great, almost race car like.  I don't\n>particulary like the Mitsubishi 3000GT's or the Dodge Stealths as they are\n>too heavy and aren't very nimble handlers for a sports car.\n>--\n>A motion picture major at the Brooks Institute of Photography, CA\n>Santa Barbara and a foreign student from Kuala Lumpur, Malaysia.\n>\n>\"The mind is the forerunner of all states.\"\n>\n The only thing about the 300ZX turbo and new Supra is they're about $10K or\n more over his budget...\n-- \n                      \" Be good,\n                 and you will be lonely\"\n                                        Mark Twain\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5157, "properties": {"category": "comp.graphics", "text": "From: wbdst+@pitt.edu (William B Dwinnell)\nSubject: VESA as a graphics standard\nOrganization: University of Pittsburgh\nLines: 7\n\n\nIn the U\bIBM PC world, how much of a \"standard\" has VESA become for\nSVGA graphics?  I know there are lots of graphics-board companies out \nthere, as well as several graphics chips manufacturers- are they adhering to\nthe VESA standard, and what effect is/will the VESA Local Bus have on all\nof this?\nAnyone?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5158, "properties": {"category": "rec.motorcycles", "text": "From: klinger@ccu.umanitoba.ca (Jorg Klinger)\nSubject: Re: Riceburner Respect\nNntp-Posting-Host: ccu.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Canada\nLines: 28\n\nIn <1993Apr15.192558.3314@icomsim.com> mmanning@icomsim.com (Michael Manning) writes:\n\n>In article <oXZ12B1w164w@cellar.org> craig@cellar.org (Saint Craig)  \n>writes:\n>> shz@mare.att.com (Keeper of the 'Tude) writes:\n>> \n\n>Most people wave or return my wave when I'm on my Harley.\n>Other Harley riders seldom wave back to me when I'm on my\n>duck. Squids don't wave, or return waves ever, even to each\n>other, from what I can tell.\n\n\n  When we take a hand off the bars we fall down!\n\n__\n   Jorg Klinger            |       GSXR1100        | If you only new who\n   Arch. & Eng. Services   |\"Lost Horizons\"  CR500 | I think I am. \n   UManitoba, Man. Ca.     |\"The Embalmer\"   IT175 |           - anonymous\n\n                                --Squidonk--       \n\n\n\n\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5159, "properties": {"category": "misc.forsale", "text": "From: frp@table.NSD.3Com.COM (Frank R. Pereira)\nSubject: Moving Sale\nDistribution: ba\nOrganization: 3Com Corporation\nLines: 10\nNntp-Posting-Host: table.nsd.3com.com\n\nMoving Sale: Must sell before May 5:\nFuton:  high-end, oak, queen, like new -- $250\nComputer Desk:  roll-top, locks securely, like new -- $100\nColor TV:  13\", perfect cond., great for bedroom -- $50\t( ***SOLD)\nCoffee Tables/Dresser:  $40 or B.O.\nLamps:  $10\nMake an offer!!\n\nAsk for Esther: 415/571-6062 eve\n\t\t408/736-0490 day\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5160, "properties": {"category": "comp.graphics", "text": "From: schultz@schultz.kgn.ibm.com (Karl Schultz)\nSubject: Re: VESA standard VGA/SVGA programming???\nReply-To: schultz@vnet.ibm.com\nOrganization: IBM AWS Graphics Systems\nKeywords: vga\nLines: 45\n\n|> 1. How VESA standard works?  Any documentation for VESA standard?\n\n\tThe VESA standard can be requested from VESA:\n\tVESA\n\t2150 North First Street, Suite 440\n\tSan Jose, CA 95131-2029\n\n\tAsk for the VESA VBE and Super VGA Programming starndards.  VESA\n\talso defines local bus and other standards.\n\n\tThe VESA standard only addresses ways in which an application\n\tcan find out info and capabilities of a specific super VGA\n\timplementation and to control the video mode selection\n\tand video memory access.\n\n\tYou still have to set your own pixels.\n\n|> 2. At a higher resolution than 320x200x256 or 640x480x16 VGA mode,\n|>    where the video memory A0000-AFFFF is no longer sufficient to hold\n|>    all info, what is the trick to do fast image manipulation?  I\n|>    heard about memory mapping or video memory bank switching but know\n|>    nothing on how it is implemented.   Any advice, anyone?  \n\n\tVESA defines a \"window\" that is used to access video memory.\n\tThis window is anchored at the spot where you want to write,\n\tand then you can write as far as the window takes you (usually\n\t64K).  Windows have granularities, so you can't just anchor \n\tthem anywhere.  Also, some implementations allow two windows.\n\n|> 3. My interest is in 640x480x256 mode.  Should this mode be called\n|>    SVGA mode?  What is the technique for fast image scrolling for the\n|>    above mode?  How to deal with different SVGA cards?\n\n\tThis is VESA mode 101h.  There is a Set Display Start function\n\tthat might be useful for scrolling.\n\n|>   Your guidance to books or any other sources to the above questions\n|> would be greatly appreciated.  Please send me mail.\n\n\tYour best bet is to write VESA for the info.  There have also\n\tbeen announcements on this group of VESA software.\n\n-- \nKarl Schultz                             schultz@vnet.ibm.com\nThese statements or opinions are not necessarily those of IBM\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5161, "properties": {"category": "comp.graphics", "text": "From: morley@suncad.camosun.bc.ca (Mark Morley)\nSubject: VGA Mode 13h Routines Available\nNntp-Posting-Host: suncad.camosun.bc.ca\nOrganization: Camosun College, Victoria B.C, Canada\nX-Newsreader: Tin 1.1 PL4\nLines: 31\n\nHi there,\n\nI've made a VGA mode 13h graphics library available via FTP.  I originally\nwrote the routines as a kind of exercise for myself, but perhaps someone\nhere will find them useful.  They are certainly useable as they are, but\nare missing some higher-level functionality.  They're intended more as an\nintro to mode 13h programming, a starting point.\n\n*** The library assumes a 386 processor, but it is trivial to modify it\n*** for a 286.  If enough people ask, I'll make the mods and re-post it as a\n*** different version.\n\nThe routines are written in assembly (TASM) and are callable from C.  They\nare fairly simple, but I've found them to be very fast (for my purposes,\nanyway).  Routines are included to enter and exit mode 13h, define a\n\"virtual screen\", put and get pixels, put a pixmap (rectangular image with\nno transparent spots), put a sprite (image with see-thru areas), copy\nareas of the virtual screen into video memory, etc.  I've also included a\nsimple C routine to draw a line, as well as a C routine to load a 256\ncolor GIF image into a buffer.  I also wrote a quick'n'dirty(tm) demo program\nthat bounces a bunch of sprites around behind three \"windows\".\n\nThe whole package is available on spang.camosun.bc.ca in /pub/dos/vgl.zip \nIt is zipped with pkzip 2.04g\n\nIt is completely in the public domain, as far as I'm concerned.  Do with\nit whatever you like.  However, it'd be nice to get credit where it's due,\nand maybe an e-mail telling me you like it (if you don't like it don't bother)\n\nMark\nmorley@camosun.bc.ca\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5162, "properties": {"category": "talk.politics.misc", "text": "From: muellerm@vuse.vanderbilt.edu (Marc Mueller)\nSubject: Re: ABOLISH SELECTIVE SERVICE\nNntp-Posting-Host: irl2\nOrganization: Vanderbilt University School of Engineering, Nashville, TN, USA\nLines: 61\n\nIn article <1993Apr16.131508.9518@ra.msstate.edu> fpa1@Trumpet.CC.MsState.Edu (Fletcher P Adams) writes:\n>kmitchel@netcom.com (Kenneth C. Mitchell) writes:\n>>Dave Borden (borden@head-cfa.harvard.edu) wrote:\n>>: The Selective Service Registration should be abolished.  To start with, the\n>>: draft is immoral.  Whether you agree with that or not, we don't have one now,\n>>: and military experts agree that the quality of the armed forces is superior\n>>: with a volunteer army than with draftees.  Finally, the government has us\n>>: on many lists in many computers (the IRS, Social Security Admistration and\n>>: Motor Vehicle Registries to name a few) and it can find us if it needs to.\n>>: Maintaining yet another list of people is an utter waste of money and time.\n>>: Let's axe this whole department, and reduce the deficit a little bit.\n>\n>I'm really surprised Clinton hasn't already tried to do this.  He seems\n>to want to tackle other irrelevant issues first, so why not this one as well.\n\nConsidering that Clinton received a draft notice and got out of it (he admits it) the political feasibility of him abolishing it is not something he would\nbe inclined to risk any extra exposure on.\n\n>\n>>Let me say this about that, as a retired Navy officer; \n>>\n>>I agree. Cut it.  But let's not stop there. \n>>\n>>Eliminate the C-17 transport. \n>\n>Wrong.  We need its capability.  Sure it has its problems, very few\n>airplanes haven't, but getting rid of something we need is not the\n>answer.  What do you want to do, start over a rebuild a new airplane\n>from scatch?  It'll have its problems as well and there will be calls\n>again, for it to be scrapped.  THe other option is to try to extend\n>the life of the C-5s and C-141s that are getting extremely old.\n\nIf you read Aviation Week, the C-5 line can be reopened and the C-5s\nwould be delivered a year earlier and cost a billion less for the \nprogram. Politically, though, the C-17 is popular pork.\n\n>\n>>Scrap the Seawolf SSN-21 nuclear submarine. \n>>Ground the B-2 stealth bomber. \n>\n>It'll cost jobs, but I'm for it.  We especially don't need a B-2. THe\n>SSN-21, I know litttle about.\n>\nAgreed. Congress took money from NASA and FHA to fund the second Seawolf.\nThe shipyards are still building Los Angeles Class submarines and there\nis a lack of ASW foes to contend with. The Navy is considering reducing\nthe number of attack subs to 40 (Navy Times) and that would entail\ngetting rid of or mothballing some of the current Los Angeles class.\n\nPolitically, General Dynamics is in Connecticut and we will get\nSeawolf subs whether we need them or not.\n\nIn addition, more bases need to be closed. Probably Long Beach Naval Station\nand others. The Navy is talking about three main bases on each coast being \nrequired to home port a total fleet of 320 ships.\n\nThe question is whether Les Aspin and Clinton will be able to face down\na pork happy Congress.\n\n\n-- Marc Mueller\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5163, "properties": {"category": "comp.sys.mac.hardware", "text": "From: peba@snakemail.hut.fi (Petri Aukia)\nSubject: DIY - PhoneNET, MIDI adapt & MacRecorder\nNntp-Posting-Host: lk-hp-18.hut.fi\nOrganization: Helsinki University of Technology, Finland\nDistribution: comp\nLines: 7\n\nI remember seeing complete instructions for making PhoneNET adapters, \nMIDI adapters and a MacRecorder lookalike. After a short search through\nMac.archive and info-mac I failed to see any of the above. Any pointers?\n--\n--petri.aukia@hut.fi-----------\"Supreme Court Ruling: Bolo is an Illegal Drug!\"\n--peba@hut--\"Computer Programmer Steals Minds of Youths Through New Tank Game!\"\n--pa----\"Telephone Standards Rethought Because of New Addictive Computer Game!\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5164, "properties": {"category": "soc.religion.christian", "text": "From: mussack@austin.ibm.com (Christopher Mussack)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: IBM Austin\nLines: 12\n\nGeneral question: Since the world was discovered to be\nround, the definition of Saturday is, if not ambiguous,\nat least arbitrary. How would someone answer this?\n\nAlso, when the calendar was changed (Gregorian to Julian?)\nwas the day of the week changed or just the date? Once again\nthis points to the arbitrariness of the days.\n\nChris Mussack\n\n[When calendars change, there is no change in the 7-day weekly cycle,\njust months and dates.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5165, "properties": {"category": "comp.sys.mac.hardware", "text": "From: oelt0002@student.tc.umn.edu (Bret Oeltjen)\nSubject: Cheap video card for LC?  w/fpu?\nNntp-Posting-Host: dialup-slip-1-33.gw.umn.edu\nOrganization: University of Minnesota\nLines: 7\n\nJust wondering if anyone had info/experience with a video/fpu for a mac LC,\njust thinking of adding a second monitor, most likely grayscale.\n\n\nBret Oeltjen                 exp(Pi i) + 1 = 0\nUniversity of Minnesota\nElectrical Engineering\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5166, "properties": {"category": "alt.atheism", "text": "From: richard@harlqn.co.uk (Richard Brooksby)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Harlequin Ltd, Cambridge, UK\nLines: 21\n\nNanci Ann Miller <nm0w+@andrew.cmu.edu> writes:\n\n> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n> > More horrible deaths resulted from atheism than anything else.\n>\n> There are definitely quite a few horrible deaths as the result of\n> both atheists AND theists.  ...  Perhaps, since I'm a bit weak on\n> history, somone here would like to give a list of wars caused/led by\n> theists? ...\n\nThis thread seems to be arguing the validity of a religious viewpoint\naccording to some utilitarian principle, i.e. atheism/religion is\nwrong because it causes death.  The underlying `moral' is that death\nis `wrong'.  This is a rather arbitrary measure of validity.\n\nGet some epistemology.\n---\nrichard@harlequin.com\t\t  (Internet)\nrichard@harlequin.co.uk           (Internet)\nRPTB1@UK.AC.CAMBRIDGE.PHOENIX     (JANET)\nZen Buddhist\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5167, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kjetilk@stud.cs.uit.no (Kjetil Kolin)\nSubject: Proteced Mode\nOrganization: University of Tromsoe\nLines: 1\n\nI'm looking for information how W-NT uses Proteced Mode. (The HW support)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5168, "properties": {"category": "talk.politics.misc", "text": "From: wdstarr@athena.mit.edu (William December Starr)\nSubject: Re: Debating special \"hate crimes\" laws\nOrganization: Northeastern Law, Class of '93\nLines: 61\nNNTP-Posting-Host: nw12-326-1.mit.edu\nIn-reply-to: thf2@midway.uchicago.edu\n\n\nIn article <1993Apr4.235546.6450@midway.uchicago.edu>, \nthf2@midway.uchicago.edu said:\n\n> > This sort [of] separate treatment by the law has no place in an\n> > equal society; the solution to the fact that some classes are more\n> > vulnerable to attack or discrimination is to do what has always\n> > been done in response to imbalances in criminal activity and\n> > citizen protection: to allocate _law enforcement_ resources to\n> > more efficiently and effectively deal with the problems, not to\n> > rewrite the _law_ itself.  [wdstarr]\n>\n> So how do you feel about increased penalties for killing a policeman?\n> A federal employee?  Or to use both Scalia's and Stevens's example,\n> increased penalties for threatening the president?  (I'm assuming\n> that, like all good people, you oppose the marital exemption for rape,\n> so I won't bring that up.)\n\nIn order of your questions, I oppose it, I oppose it, I oppose it and\n(Huh?  Wha?  Where did _that_ topic come from and what's it got to do\nwith the discussion at hand? :-)\n\nWhen I was discussing the concept of different criminal laws for crimes\nagainst different classes of people (and yes, I do consider laws which\nallow/mandate enhanced penalties following conviction based upon the\nconvict's attitudes towards the class membership of the victim to fit\ninto that category), the category of classes I had in mind was that of\nthe standard civil rights discussion -- classes based upon race, gender,\nethnicity, religion, sexual orientation, etc.  Having you ask about\nclasses based upon one's _profession_ rather than one's personal\ncharacteristics caught me off guard, and I had to think out the question\nfrom scratch.\n\nWhat I finally decided was that the law should not recognize such\nclasses because to do so would be to formally and officially declare\nsome people to be of more worth than others, and that would be anathema\nto the underlying American concept of equal treatment under the law.\n\nLast year, when a federal crime bill was under consideration which would\nhave expanded the federal death penalty to an additional fifty-plus\ncrimes, including the murder of various federal officers hitherto not\nprotected by that \"aura of deterrence,\" critics pointed out the\nabsurdity of having laws which made the death penalty available for the\nmurder of a federal postal inspector but not for ther murder of a\ncivilian teacher, when the latter [arguably] provided a much more\nvalueable service and therefore would be the greater loss to society.\nThis was an emotionally compelling argument, but even the proponents of\nthat viewpoint appeared to tacitly assume that the state should judge\nsome lives as being more valuable than others on the basis of their\n\"contribution to society.\"  I view that doctrine as being both (a)\npersonally repugnant and (b) repugnant to the Equal Protection clause of\nthe 14th Amendment.\n\nAccordingly, I believe that there should be no laws which give any\nprofession-based class of people special protection (via the mechanism\nof supplying stronger statutory deterrence of crimes against members of\nthat class), not even police officers, federal officers or high-ranking\nmembers of the Executive Branch of the federal government.\n\n-- William December Starr <wdstarr@athena.mit.edu>\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5169, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jas@ISI.EDU (Jeff Sullivan)\nSubject: IIvx -> C650 Upgrade Question\nOrganization: USC-ISI\nLines: 10\nDistribution: comp\nNNTP-Posting-Host: tigger.isi.edu\n\n\nIf you get teh IIvx ->C650 upgrade, does it include a new sticker to\ncover the IIvx identifier with a Centris 650 indetifier?\n\njas\n--\n--------------------------------------------------------------------------\nJeffrey A. Sullivan             | Research Scientist et al.\njas@isi.edu (Internet)          | Information Sciences Institute\n72511,402    (Compuserve)       | University of Southern California\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.247+0000", "event": "documents", "entityId": 5170, "properties": {"category": "misc.forsale", "text": "From: dchurch@nmt.edu (Dan Church)\nSubject: *** Lots of CDs For Sale! ***\nArticle-I.D.: nmt.1993Apr19.213217.15250\nDistribution: na\nOrganization: New Mexico Tech\nLines: 43\n\n\nI have a lot of CDs for sale.  Prices are $7 per CD and $3 per CD Single.\nCDs are noted by (CD) and CD Singles by (CDS).  Please include $1 extra\nper CD for s/h costs.  IF you want to buy a lot of them, then we'll work \nout a deal with the shipping costs!\n\nType      Group                         Title\n---------------------------------------------\n\nCDS       Boys to Men                   Motown Philly\nCDS       C & C Music Factory           Keep it Comin'\nCDS       Moby                          Go (Remixes)\nCDS       Quadrophonia                  Schizophrenia\nCDS       Swing Out Sister              Not Gonna Change\nCDS       Recoil                        Faith Healer\nCDS       Seal                          The Beginning\nCDS       Transvision Vamp              Tranvision Vamp\nCDS       C & C Music Factory           Gonna Make U Sweat\nCDS       Nitzer Ebb                    Godhead\nCDS       Roxette                       How Do You Do!\nCDS       B-52's                        Good Stuff\nCDS       Duran Duran                   Violence of Summer\nCDS       Nitzer Ebb                    AS IS\nCDS       Vanessa Williams              Running Back to You\nCD        Seal                          SEAL\nCD        LFO                           Frequencies\nCD        Morissey                      Kill Uncle\nCD        Underworld                    Change the Weather\nCD        Jody Watley                   You Wanna Dance With Me?\nCD        Dead or Alive                 Fan the Flame\nCD        Transvision Vamp              Velveteen\nCD        Adam Ant                      Manners & Physique\nCD        Fine Young Cannibals          The Raw & the Remix\nCD        Black Box                     Dreamland\nCD        Civilles & Cole               Greatest Remixes Vol. 1\nCD        Black Box                     Mixed Up!\nCD        Scorpions                     The Best of Rockers &\n                                        Ballads\nCD        A & M Underground Dance       Jam Harder\n-- \nDan Church        | Quote -> \"Only God can make a tree, but it took a man\nBox 3268 CS       | <- Mail                     to invent dwarf tossing!\"\nSocorro, NM 87801 | Email -> dchurch@nmt.edu          - E. Hobbs\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5171, "properties": {"category": "sci.med", "text": "From: brandon@caldonia.nlm.nih.gov (Brandon Brylawski)\nSubject: Re: Should I be angry at this doctor?\nOrganization: National Library of Medicine\nX-Newsreader: Tin 1.1 PL4\nDistribution: na\nLines: 30\n\nmryan@stsci.edu writes:\n: Am I justified in being pissed off at this doctor?\n: \n: Last Saturday evening my 6 year old son cut his finger badly with a knife.\n: I took him to a local \"Urgent and General Care\" clinic at 5:50 pm.  The \n: clinic was open till 6:00 pm.  The receptionist went to the back and told the \n: doctor that we were there, and came back and told us the doctor would not \n: see us because she had someplace to go at 6:00 and did not want to be delayed \n: here.  During the next few minutes, in response to my questions, with several \n: trips to the back room, the receptionist told me:\n: \t- the doctor was doing paperwork in the back,\n: \t- the doctor would not even look at his finger to advise us on going\n: \t  to the emergency room;\n: \t- the doctor would not even speak to me;\n: \t- she would not tell me the doctor's name, or her own name;\n: \t- when asked who is in charge of the clinic, she said \"I don't know.\"\n: \n: I realize that a private clinic is not the same as an emergency room, but\n: I was quite angry at being turned away because the doctor did not want to\n: be bothered.  My son did get three stitches at the emergency room.  \n\nSpeaking as a physician who works in an urgent care center, the above\nbehavior is completely inappropriate. If a patient who requires extensive\ncare shows up at the last minute, we always see them and give them appropriate\ncare. It is reasonable for a clinic to refuse to see patients outside of its\nposted hours, but what you describe is misbehavior. Ask to speak to the\nclinic director, and complain. Whatever their attitude, they have nothing to\ngain from angering patients.\n\nBrandon Brylawski\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5172, "properties": {"category": "rec.motorcycles", "text": "From: maven@mavenry.altcit.eskimo.com (Norman Hamer)\nSubject: Electricty\nX-AltNet-ID: 222833\nLines: 30\n\n \n Sigha.\n \n 1) Trying to figure out a way to put a halogen beam on my CB360T... Are \nthere any easy ways to do this (i.e. a \"slip-in\" bulb replacement)?\n \n 2) Was told by a guy at the bike shop that my \"not damn near bright enough\" \nincandescent beam might be caused by a perma-low battery. So I went and \npicked up this cheapo \"Motorcycle battery and charging system tester\"... \nHook it up to the battery, it's got 3 lights on \"Very good charge\"... Start \nthe engine (to test the charging system), and it doesn't even REGISTER. It's \nsupposed to light 5 or 6 lights if everything is OK, but it stays down at \nthe same point as just the battery.\n \n My question here is, if indeed my charging system is just plain messed up, \nhow the HECK is the battery staying fully charged? I'd think it would be \ndarned near dead from supporting my lights, etc...\n \n Do the '75 CB360T's have a problem with their charging system? Are they \njust generally slower charging than what is normal for bigger bikes?\n \n Is there an easy fix for this?\n \n 3) Happy noise: Put 300 miles on my bike this weekend, finally got myass an \nendorsement.... which is REALLY GOOD, because my cage just quit running \nworth a damn and I won't have money to repair it until the first... ;) And \nthe weatherman says \"Bright and Sunny all week, 20% chance of rain on \nfriday\"...\n \n <big grin, bugs in teeth> \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5173, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: The religious persecution, cultural oppression and economical...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 161\n\nIn article <1993Apr21.202728.29375@news.uiowa.edu> mau@herky.cs.uiowa.edu (Mau Napoleon) writes:\n\n>You may not be afraid of anything but you act as if you are.\n\nI always like your kind of odds. The Greek governments must be held \nto account for the sub-human conditions of the Turkish minority living \nin the Western Thrace under the brutal Greek domination. The religious \npersecution, cultural oppression and economical ex-communication applied \nto the Turkish population in that area are the dimensions of the human \nrights abuse widespread in Greece.\n\n\"Greece's Housing Policies Worry Western Thrace Turks\"\n\n...Newly built houses belonging to members of the minority\ncommunity in Dedeagac province, had, he said, been destroyed\nby Evros province public works department on Dec. 4.\n\nSungar added that they had received harsh treatment by the\nsecurity forces during the demolition.\n\n\"This is not the first demolition in Dedeagac province; more\nthan 40 houses were destroyed there between 1979-1984 and \nmembers of that minority community were made homeless,\" he\ncontinued. \n\n\"Greece Government Rail-Roads Two Turkish Ethnic Deputies\"\n\nWhile World Human Rights Organizations Scream, Greeks \nPersistently Work on Removing the Parliamentary Immunity\nof Dr. Sadik Ahmet and Mr. Ahmet Faikoglu.\n\nIn his 65-page confession, Salman Demirok, a former chief of PKK\noperations in Hakkari confessed that high-level relations between\nPKK, Greece and Greek Cypriot administration existed.\n\nAccording to Demirok, Greek Cypriot administration not only \ngives shelter to PKK guerillas but also supplies them with \nfood and weapons at the temporary camps set up in its territory. \nDemirok disclosed that PKK has three safe houses in South Cyprus, \nused by terrorists such as Ferhat. In the camps, he added, \nterrorists were trained to use various weapons including RPG's \nand anti-aircraft guns which had been purchased directly from \nthe Greek government. Greek Cypriot government has gone to the \nextent of issuing special identification cards to PKK members so \nthat they can travel from one region to another without being \nconfronted by legal obstacles. Demirok's account was confirmed \nby another PKK defector, Fatih Tan, who gave himself over to \npolice in Hakkari after spending four years with PKK. Tan explained\nthat the terrorists went through a training in camps in South Cyprus, \nsometimes for a period of 12 weeks or more.\n\n         \"Torture in Greece: Hidden Reality\"\n\nCase 1: Kostas Andreadis and Dimitris Voglis.\n\n...Andreadis' head was covered with a hood and he was tortured\nby falanga (beating on the soles of the feet), electric shocks,\nand was threatened with being thrown out of the window. An \nofficial medical report clearly documented this torture....\n\nCase 2: Horst Bosniatzki, a West German Citizen.\n\n...At midnight he was taken to the beach, chains were put to his \nfeet and he was threatened to be thrown to the sea. He was dragged\nalong the beach for about a 1.5 Km while being punched on the \nhead and kidneys...Back on the police station, he was beaten\non the finger tips with a thin stick until one of the fingertips\nsplit open....\n\nCase 3: Torture of Dimitris Voglis.\n\nCase 4: Brothers Vangelis (16) and Christos Arabatzis (12),\n        Vasilis Papadopoulos (13), and Kostas Kiriazis (13).\n\nCase 5: Torture of Eight Students at Thessaloniki Police\n        Headquarters.\n\n       SOURCE: The British Broadcasting Corporation, Summary of\n               World  Broadcasting -July 6, 1987: Part 4-A: The\n               Middle East, ME/8612/A/1.\n\n              \"Abu Nidal's Advisers\" Reportedly Training\n                  \"PKK & ASALA Militants\" in Cyprus\n\n       Nicosia, Ankara,  Tel Aviv. The Israeli  secret service,\n       Mossad,  is   reported  to  have   acquired  significant\n       information in connection  with the camps set  up in the\n       Troodos  mountains   in  Cyprus  for  the   training  of\n       militants of the PKK and ASALA {Armenian Secret Army for\n       the Liberation  of Armenia}. According to  sources close\n       to Mossad, about 700 Kurdish, Greek Cypriot and Armenian\n       militants  are   undergoing  training  in   the  Troodos\n       mountains in  southern Cyprus.  The same  sources stated\n       that Abu  Nidal's special  advisers are  giving military\n       training to  the PKK and  ASALA militants in  the camps.\n       They added that the  militants leave southern Cyprus for\n       Libya, Lebanon, Syria, Greece  and Iran after completing\n       their training.  Mossad has established that  due to the\n       clashes  which were  taking  place  among the  terrorist\n       groups based  in Syria, the PKK  and ASALA organisations\n       moved to  the Greek Cypriot  part of Cyprus,  where they\n       would  be  more  comfortable. They  also  transferred  a\n       number of  their camps in  northern Syria to the Troodos\n       mountains.\n\n       Mossad  revealed that  the  Armenian National  Movement,\n       which is known as the MNA, has opened liaison offices in\n       Nicosia, Athens and  Tripoli in order to  meet the needs\n       of the  camps. The offices are used to provide  material\n       support for the  Armenian  camps. Meanwhile, the  leader\n       of the  Popular Front for  the Liberation of  Palestine,\n       George  Habash, is  reported  to  have ordered  his  men\n       not  to   participate  in  the  operations  carried  out\n       by  the  PKK &  ASALA, which  he  described  as \"extreme\n       racist,  extreme  nationalist  and   fascist.\"  Reliable\n       sources have said that  Habash believed that  the recent\n       operations carried  out by the PKK  militants  show that\n       organisation  to  be a  band  of  irregulars  engaged in\n       extreme  nationalist  operations.  They  added  that  he\n       instructed  his militants  to sever their links with the\n       PKK  and avoid clashing with it. It has been established\n       that George Habash  expelled ASALA  militants  from  his\n       camp  after ASALA's  connections  with  drug trafficking\n       were exposed.\n\nSource: Alan Cowell, 'U.S. & Greece in Dispute on Terror,' The New\n        York Times, June 27, 1987, p. 4.\n\n                    Special to The New York Times\n\nATHENS, June 26 - A dispute developed today between Athens and \nWashington over United States intelligence reports saying that \nAthens, for several months, conducted negotiations with the\nterrorist known as Abu Nidal...\n\nThey said the contacts were verified in what were termed hard\nintelligence reports.\n\nAbu Nidal leads the Palestinian splinter group Al Fatah \nRevolutionary Council, implicated in the 1985 airport \nbombings at Rome and Vienna that contributed to the Reagan \nAdministration's decision to bomb Tripoli, Libya, last year.\n\nIn Washington, State Department officials said that when\nAdministration officials learned about the contacts, the\nState Department drafted a strongly worded demarche. The\nofficials also expressed unhappiness with Greece's dealings\nwith ASALA, the Armenian Liberation Army, which has carried\nout terrorist acts against Turks....\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5174, "properties": {"category": "rec.sport.hockey", "text": "From:  (Proust)\nSubject: Re: Individual Winners (WAS: Re: WHERE ARE THE DOUBTERS NOW? HMM?)\nNntp-Posting-Host: td-college-kstar-node.net.yale.edu\nOrganization: Computing & Information Systems, Yale University\nLines: 15\n\nIn article <1993Apr15.170226.11074@cci632.cci.com>, dwk@cci632.cci.com\n(Dave Kehrer) wrote:\n> \n> Well, since you mentioned it...\n> \n> In article <1993Apr12.142028.6300@jarvis.csri.toronto.edu>, migod@turing.toronto.edu (Mike Godfrey) writes:\n>   \n> > Lemieux is clearly the MVP\n> \n> No question here.  Chip in the Masterson as well...\n\n\nLemieux for the Masterson? No doubt he had an awe inspiring season,\nbut what personal records did he set this year? Lemieux should have\nHart locked up...but how about Mike Gartner for the Masterson?\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5175, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: phoenix.Princeton.EDU!carlosn (Carlos G. Niederstrasser)\nSubject: MS Mouse Driver 8.2\nOriginator: news@nimaster\nNntp-Posting-Host: aisle.princeton.edu\nOrganization: Princeton University\nLines: 15\n\nDoes anyone have the documentation for the MS Mouse Driver 8.2?  I got it when  \nI got Windows 3.1, but my Windows manual does not come with the documentation.   \nIn particular I need to know how to turn it off, and how to speed it up  \noutside windows.  The greater sensitivity is needed so I can play various  \ngames, esp X-wing :)\n\n---\n---------------------------------------------------------------------\n| Carlos G. Niederstrasser        |  Only two things are infinite,  |\n| Princeton Planetary Society     |      the universe and human     |\n|                                 |   stupidity, and I'm not sure   |\n|                                 |   about the former. - Einstein  |\n| carlosn@phoenix.princeton.edu   |---------------------------------|\n| space@phoenix.princeton.edu     |    Ad Astra per Ardua Nostra    |\n---------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5176, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: 3 AIDS Related Questions\nArticle-I.D.: pitt.19428\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 17\n\nIn article <93088.130924PXF3@psuvm.psu.edu> PXF3@psuvm.psu.edu (Paula Ford) writes:\n\n>we know ours is not HIV+ and people need it.  I think my husband should give\n>blood, especially, because his is O+, and I understand that's a very useful\n>blood type.\n>\n\nIt's O- that is especially useful.  Still, he isn't punishing the\nRed Cross but some O+ person that needed his blood and couldn't\nget it.  You are right, nagging probably won't help.\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5177, "properties": {"category": "talk.politics.misc", "text": "From: drieux@wetware.com (drieux, just drieux)\nSubject: Return of the Know Nothing Party\nNntp-Posting-Host: vladimir.wetware.com\nReply-To: drieux@wetware.com\nOrganization: Castle WetWare Philosopher and Sniper\nLines: 38\n\nIn article 23791@organpipe.uug.arizona.edu, ece_0028@bigdog.engr.arizona.edu (David Anderson) writes:\n>In article <C56HDM.945@wetware.com> drieux@wetware.com (drieux, just drieux) writes:\n>>\n>>Well Actually its a case of Resolving whether one\n>>Supports Biblical Literalism, and the Enerrancy of the Bible,\n>>or Whether on wished to Jump On the SeXularHumanist, \n>>Detain all the True Christians in Death Camps approach\n>>of the Northern Liberal Abolitionists and their EFFORTS\n>>to Destroy the Bible, Corrupt the Moral Fibre of American\n>>and Lead the God Fearing into the Bondage of Liberal Degeneracy.\n>>\n>>But I guess one needs to know a little about the bible,\n>>christianity and american history.....\n>\n>Mt. St. Helens didn't spew such crap.  How do you manage,\n>drieux, day in & day out, to keep it up??\n\nSo which are you advocating?\n\nThat You know Nothing About American History, \nOr that You Know Nothing About the Bible?\n\nIs this a Restoration of the \"Know Nothing\" Party?\n\nciao\ndrieux\n\nps: what WAS the \"Free Negro Sailor Act\" about,\nand what was the Supreme Court's Ruling On it... and\nMore Importantly, how does this Complicate the Mythology\nthat all blacks were slaves????\n\n\n---\n\"All Hands to the Big Sea of COMedy!\nAll Hands to the Big Sea of COMedy!\"\n\t\t-Last Call of the Wild of the Humour Lemmings\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5178, "properties": {"category": "comp.sys.mac.hardware", "text": "From: akhiani@ricks.enet.dec.com (Homayoon Akhiani)\nSubject: Re: Recommendations for removable storage media wanted\nLines: 25\nNntp-Posting-Host: ricks\nReply-To: akhiani@ricks.enet.dec.com (Homayoon Akhiani)\nOrganization: Digital Equipment Corporation\nX-Newsreader: mxrn 6.18-2\n\n\nIn article <1993Apr14.115511.28278@kth.se> you write:\n|>>After having used both Syqyest and Bernoulli's, I most enthuiastically\n|>>recommend\n|>>Bernoulli's. Syquests (although more popular) are much slower, prone to\n|>>cartridge\n|>\n|>What does your friends have? Buy it.\n|>\n|>If you have no friends, buy a 128 MB optical and stop\n\nI bought a Bernoulli 90pro drive last year after comparing it with lots of\n diffrent storage solutions,\nOPTICAL drives are SLOW, very slow compared to 13 to 19ms access of Bernoulli.\n\nSince I needed additinol online storage (rather than just a backup or archiev\ne disk), I choosed Bernoulli drive. I use Adobe Preimere and Quicktime movies\nalot. you ran out of storage real fast.\n\nIMHO, the best buy currently is the Bernoulli 150Multidisk. 150MB per cartridge\n\nHomayoon Akhiani                               \"Turning Ideas into ... Reality\"\nDigital Equipment Corporation                        \"Alpha, The New Beginning\"\n77 Reed Rd. Hudson, MA 01701            \"All Rights Reserved. Copyright(c)1993\"\nEmail: akhiani@ricks.enet.dec.com     \"The words are mine, and not my employer\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5179, "properties": {"category": "rec.sport.baseball", "text": "From: zappala@pollux.usc.edu (Daniel Zappala)\nSubject: Angels win!\nArticle-I.D.: pollux.1psvouINNa2l\nDistribution: world\nOrganization: University of Southern California, Los Angeles, CA\nLines: 6\nNNTP-Posting-Host: pollux.usc.edu\n\n\nThe Angels won their home opener against the Brewers today before 33,000+ \nat Anaheim Stadium, 3-1 on a 3-hitter by Mark Langston.  J.T. Snow and \nGary Discarcina hit home runs for the Angels.\n\nDaniel\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5180, "properties": {"category": "rec.motorcycles", "text": "From: randy@megatek.com (Randy Davis)\nSubject: Re: V-max handling request\nReply-To: randy@megatek.com\nOrganization: Megatek Corporation, San Diego, California\nLines: 16\n\nIn article <1993Apr15.222224.1@ntuvax.ntu.ac.sg> ba7116326@ntuvax.ntu.ac.sg writes:\n|hello there\n|ican anyone who has handson experience on riding the Yamaha v-max, pls kindly\n|comment on its handling .\n\n  Depends on in what context you want it commented on.  It handles great\ncompared to some bikes, not so good compared to others.  What would you like\nit compared to?  (Yes, I've put a few miles on one, although I've never owned\none).\n\nRandy Davis                            Email: randy@megatek.com\nZX-11 #00072 Pilot                            {uunet!ucsd}!megatek!randy\nDoD #0013\n\n       \"But, this one goes to *eleven*...\" - Nigel Tufnel, _Spinal Tap_\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5181, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: Countersteering_FAQ please post\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 37\n\nMike Sixsmith, on the 16 Apr 93 10:07:55 GMT wibbled:\n\n[ very interesting (yawn) stuff deleted, because I'm like that... ]\n\n: Formal training is in my view absolutely essential if you're going to\n: be able to ride a bike properly and safely. But by including countersteering\n: theory in newbie courses we are confusing people unnecessarily, right at\n: the time when there are *far* more important matters for them to learn.\n: And that was my original point.\n\n: Mike\n\n\nI am in complete concordance with you there, Mike.  I was a Silver StarRider\ninstructor, for a while.  I learn't about countersteering last year\nand I have been riding bikes since 1976.  We were never told about\ncountersteering when being taught to instruct.  It doesn't seem to have\naffected me or my friends or pupils.  We just rode in blissful ignorance.\n--\n\nNick (the Biker)   DoD 1069   Concise Oxford\n\nM'Lud.\n\n  ___\t___   ___   ___\n {\"_\"} {\"_\"} {\"_\"} {\"_\"}\t  Nick Pettefar, Contractor@Large.\n  ' `\t` '   ' `   ` '\t\t  Currently incarcerated at BNR,\n  ___\t___   ___   ___\t\t  Maidenhead, The United Kingdom.\n |\"_\"| |\"_\"| |\"_\"| |\"_\"|\t  npet@bnr.ca  '86 BMW K100RS \"Kay\"\n  ` '\t' `   ` '   ' `\t\t  Pres. PBWASOH(UK),  BS 0002\n\t    .\n   _ _\t\t_  __ .\n  / ~ ~~\\   |  / ~~  \\\n |_______|    [_______|\n\t   _:_\n\t  |___|\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5182, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Riddle me this...\nOrganization: Stratus Computer, Inc.\nLines: 19\nDistribution: usa\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1993Apr20.050550.4660@jupiter.sun.csd.unb.ca>, j979@jupiter.sun.csd.unb.ca (FULLER  M) writes:\n\n> Yet, the FBI mouthpiece at this afternoon's press conference characterized\n> the quantity of CS gas pumped into the building as \"massive\", and speculated\n> that after a few hours of exposure any Davidian gas masks would become\n> useless.\n> \n> Does this sound \"not harmful\" to you?\n\nHm.  A previous poster argued that the fact that the BD's did not rush to\nescape the burning building indicated that it was they, and not any of the\ngovernment actions, that started the fire.  On the other hand, I wonder if,\nwith a face full of \"massive amounts of CS,\" *I* would be able to escape\na burning tinder-box like that ranch house assuming my best efforts.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5183, "properties": {"category": "talk.politics.mideast", "text": "From: tichauer@valpso.hanse.de (Manfredo Tichauer)\nSubject: Re: Israel's Expansion II\nOrganization: \"The Private Site of Manfredo Tichauer\"\nLines: 83\n\nab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n> I'm not ignorant of the Holocaust and know more\n> about Nazi Germany than most people (maybe including you). \n\n  You really belong to the 25-30% of ignorants in USA who don't know what\n  the Holocaust (\"Shoa\" should be the real word) was. First you write in \n\n Message-ID: <1993Apr24.203620.6531@Virginia.EDU>\n Date: Sat, 24 Apr 1993 20:36:20 GMT\n\n>  I think the Israeli press might be a tad bit biased in\n>  reporting the events. I doubt the Propaganda machine of Goering\n                                                           ^^^^^^^ \n\n   and later, as somebody informed you about your gross mistake, you\n   write in \n   \n Message-ID: <1993Apr25.181351.1373@Virginia.EDU>\n Date: Sun, 25 Apr 1993 18:13:51 GMT\n\n>  First let me correct myself in that it was Goerbels and\n                                              ^^^^^^^^\n>  not Goering (Airforce) who ran the Nazi propaganda machine.\n\n   instead of Joseph GOEBBELS. And you dare to say that you\n   \"know more about Nazi Germany than most people (maybe including \"us\")\" ? \n   I'm sure you learned the history of Nazi Germany AND Austria from\n   your family.  \n  \n> \tWhat I resent is ignorant statements that call people\n> names when they disagree with your position. Opposing the\n> atrocities commited by the Israeli governement hardly qualifies\n> as anti-semitism. If you think name calling is a valid form of\n> argument in intellectual circles, you need to get out more\n> often.\n \n  Trying to make comparisons between Israels politics and Nazi German-\n  Austrian politics shows only your degree of ignorance (high), intellect\n  (low), humanity (none) and antisemitism (average). I respect anybody\n  who dissagrees with me as long as he respects me and discusses in a\n  civilized manner. I would never say that anybody that critizises Israel\n  and/or its politics is an antisemite, except he uses antisemitic\n  vocabulary/terminology/demagogy. Israel is not a perfect country and\n  its politicians also commits errors, even some of them are corrupt\n  (like politicians in any other country), but they carry a huge burden:\n  to care for the safety of ALL its citizens, and that is really not an\n  easy task in a country that is surrounded by enemies who only expect\n  that Israel commits the ONE BIG ERROR and wipe the country (and its\n  Jewish citizens plus the so-called collaborators, arabs that wanted to\n  live in peace with their Jewish neighbours) of the map. As I said,\n  Israel is not a perfect country, but it is the ONLY democracy in the\n  whole Middle-East and the only country in the world where Jews from\n  everywhere can have a refuge in case of persecutions in the countries\n  they are living.\n  Our long history has taught us that we cannot rely on non-Jewish\n  nations and its governments: as soon as there are more or les big\n  social-economical-political problems in any country, the first ones\n  that pay for the broken glasses are the Jews, and later the other\n  minorities of the country.\n  \n> I don't think the suffering of some Jews during WWII\n                    ^^^^^^^^^^^^^^^^^^^^^^ \n> justifies the crimes commited by the Israeli government. Any\n> attempt to call Civil liberterians like myself anti-semetic is\n> not appreciated.\n\n  This is really outrageous: 6.000.000 murdered Jews, besides the\n  thousands  who survived the Shoa in some way or another, and the rest\n  of the living ones mourning for all of them ! I don't know what you\n  call a \"Civil Libertarian\" (never heard about them) but I know only\n  one thing: if all of them think like you do it, then \"Civil Libertarians\"\n  is a new denomination for Antisemites. May other Civil Libertarians come\n  to word to this group so that we can learn if A.Beyer and me are right\n  (that Civil Libertarians are Antisemites), or that I'm wrong and he is\n  missusing that word.\n  BTW, I couldn't care less for what Andi Beyer appreciates. \n \n -----------------------------------------------------------------------------\n  Manfredo Tichauer M.                       EMAIL : tichauer@valpso.hanse.de\n  Opitzstrasse 14                            VOICE :     (++ 49 40)  27.42.27\n  2000 Hamburg 60 - GERMANY                  FAX   :     (++ 49 40) 270.53.09\n -----------------------------------------------------------------------------\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5184, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: the usual\nOrganization: Iowa State University, Ames IA\nLines: 54\n\narc@cco.caltech.edu (Aaron Ray Clements) writes:\n\n>Yes, I am pro-gun, and yes, I do disagree with this statement.\n>Nuclear weapons in and of themselves are dangerous.  Radioactive\n>decay of plutonium and uranium, as well as the tritium in the\n>weapon, tends to be somewhat dangerous to living things.\n>(Can you say \"neutron flux\"?)\n\n\tCan you say, \"I get more background radiation from living in\nDenver or having an office in a limestone building than I do standing\nnext to a power reactor at full power or standing next to a nuclear\nwarhead that is armed?\"  Look up \"shielding\" in your dictionary.  You\ndon't need six feet of lead to make decent shielding; your dead skin\ncell layer does an excellent job on alpha particles, and neutrons\nare slowed by mere *water*.  What do you think 75% of you is?\n\n>  Plus these things have no self-\n>defense purposes.  It's kinda hard to justify their use as\n>a militia weapon when at best they are meant for battlefield use\n>(low-yield weapons) or at worst for industrial target obliteration\n>(translation:  cities and population centers).\n\n\tIf the militia has as its job the overthrow of an illegal\ngovernment, they are indeed useful weapons to the militia.  They\nwon't be too useful in certain areas, but leveling the Pentagon\nwould be a \"good thing\" for said overthrow and it's likely one man\ncarrying a backpack would stand a better chance than one thousand\narmed with Colt Peacemakers.  Don't let self-defense become the\nonly reason you can have a gun and your sole means of justification.\nMyself, I won't overthrow my government until it ceases to be my\nlegal government, but if I need to I want every weapon I can get.\n\n\tOne can just as easily say no rifle larger than a .22 is\nneeded to kill a human being.  They are right.  When that human\nbeing is wearing armor and riding in an APC, things get a bit\ndifferent.  I don't see where the weapon is a problem.  It's not.\nOnly the manner of use is in contention here.\n\n>  Not to mention that\n>for it to be used as a militia weapon and expect the user to live\n>requires some sort of launch vehicle . . .\n\n\tI guess you either don't have an alarm clock or have never\nheard the terms \"timer\" or \"martyr\" either.  Don't forget remote\ndetonation devices.  That CB radio in the pickup next to you can\neasily transmit ten miles in decent weather.  That's out of the\nblast radius of many portable nuclear devices.\n\n\tJust what is it about radioactive decay that has you worried?\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5185, "properties": {"category": "alt.atheism", "text": "From: edm@twisto.compaq.com (Ed McCreary)\nSubject: Re: Victims of various 'Good Fight's\nIn-Reply-To: 9051467f@levels.unisa.edu.au's message of 12 Apr 93 21: 36:33 +0930\nOrganization: Compaq Computer Corp\n\t<9454@tekig7.PEN.TEK.COM> <1993Apr12.213633.20143@levels.unisa.edu.au>\nLines: 12\n\n>>>>> On 12 Apr 93 21:36:33 +0930, 9051467f@levels.unisa.edu.au (The Desert Brat) said:\n\nTDB> 12. Disease introduced to Brazilian * oher S.Am. tribes: x million\n\nTo be fair, this was going to happen eventually.  Given time, the Americans\nwould have reached Europe on their own and the same thing would have \nhappened.  It was just a matter of who got together first.\n\n--\nEd McCreary                                               ,__o\nedm@twisto.compaq.com                                   _-\\_<, \n\"If it were not for laughter, there would be no Tao.\"  (*)/'(*)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5186, "properties": {"category": "rec.sport.hockey", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Re: LIST OF TEE TIMES AT METROPOLITAN TORONTO GOLF COURSES FOR MONDAY\nOrganization: Georgia Institute of Technology\nLines: 14\n\nIn article <1993Apr20.194441.23595@julian.uwo.ca> lee139@gaul.csd.uwo.ca (Steve Lee) writes:\n>Woops!  This is rec.sport.hockey! Not rec.sport.golf!  Hope you check the\n>newsgroup header next time before posting!\n\n\tDuh! He was making a joke about how long the Leafs would last in the\nplayoffs. (Y'know, hit the courses in the off season). Sheesh... People are\nso quick to complain...\n\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5187, "properties": {"category": "talk.politics.guns", "text": "From: meyers@leonardo.rtp.dg.com (Bill Meyers)\nSubject: Re: That silly outdated Bill (was Re: Koresh and Miranda)\nOrganization: N/I\nLines: 17\n\nIn article <1993Apr15.165952.25970@CSD-NewsHost.Stanford.EDU> andy@SAIL.Stanford.EDU (Andy Freeman) writes:\n>In article <1qibs0$flk@vela.acs.oakland.edu> awesley@vela.acs.oakland.edu (awesley) writes:\n[ ... ]\n>>Actually, there was only one confirmed sniper to >die< in Detroit,\n>>according to Sauter & Hines, _Nightmare in Detroit, A Rebellion & It's\n>\n>What sources did Sauter and Hines use?  In Congressional hearings\n>later, the newspaper folk admitted that their reports were completely\n>wrong.  (Some of their excuses are understandable, while others amount\n>to gross negligence.  Then there's their \"we lied\".)  As far as I\n>know, they never did the followup.\n\nThis, BTW, is normal behavior for newsie's.  The followup isn't \"news\" ...\n--------\n\"I am pleased to accept Life Membership in the National Rifle Association\nand extend to your organization every good wish for continued success.\"\n                -- President John F. Kennedy, March 20, 1961\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5188, "properties": {"category": "sci.electronics", "text": "From: kubovich@iastate.edu (Mark W Kubovich)\nSubject: Common-mode noise and small signals\nKeywords: noise common mode\nOrganization: Iowa State University, Ames IA\nLines: 20\n\nI have never worked with really small signals before and have a few \nquestions about low level noise.  I have noticed that the waveform \nsynthesizer that I am using (Analogic 2020) has some relatively large\ncommon mode noise on it.  I am using this synthesizer to 'null' out another\ntransient waveform and am amplifying the difference (~200uV) several hundred \ntimes.  The 2020 has about 1-3 mVp-p of common mode noise and this tends to\nmake my measurements hard to repeat.  (The noise is not quite in sync with \nline frequency, and on a spectrum analyzer, the main component is about 64Hz).\n\nHow can I get rid of the noise?  When I look at the spectrum using an\nHP 3582A (audio range analyzer), the noise goes away the minute I switch to \n'isolation' on the input.  I am guessing the anlayzer has a diff amp on the \ninput since it will read accurately down to DC.\n\nAlso, if I use a differential amplifier (IA) to solve the problem, \nhow important is it to use one of these 'shield drivers' (an amp connected \nto the shield in sort of a feedback loop to remove trouble caused \nby different cable capacitances)?  If anyone can suggest a good IC IA for \nuse with transient signals with content from 1KHz to about 300KHz, I would\nappreciate it.  \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5189, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: Re: Pleasant Yankee Surprises\nOrganization: Allegheny College\nLines: 22\n\nIn article <120399@netnews.upenn.edu> sepinwal@mail.sas.upenn.edu (Alan  \nSepinwall) writes:\n> \n> Some pleasant (and then some not so pleasant) surprises about the 1993\n> edition of the Bronx Bombers so far.\n> \n> \t4)Wickman. A friend made a comparison between Wickman and Jack\n> \t  Morris - they never have impressive stats but they always\n> \t  find some way to win (although Morris seems to be losing that\n> \t  ability). I figured that Wickman would be the least important\n> \t  part of the Steve Sax trade (best trade since we got that Ruth\n> \t  guy), maybe winding up as a good middle reliever. But I like  \nwhat\n> \t  I've seen so far. He doesn't pitch pretty, but he gets the job  \ndone.\n> \n\n\n\n     Actually, I kind of liked the Abott trade. We did trade the rookie of  \nthe year, SNOW, but with Don mattingly at first for another 8 years, Why  \nbother.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5190, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: estasic@ic.sunysb.edu (Edward Stasic)\nSubject: Re: IDE vs SCSI (here we go again.....)\nOrganization: State University of New York at Stony Brook\nLines: 13\nNNTP-Posting-Host: engws1.ic.sunysb.edu\n\nIn article <1993Apr16.205724.26258@mnemosyne.cs.du.edu> smace@nyx.cs.du.edu (Scott Mace) writes:\n>\n>If you don't belive what I said about busmastering and vlbus then pick\n>up a back issue of PC-week in whihc they tested vlbus, eisa and isa\n>busmastering cards.\n>\nDo you recall which issue this was in? I posted a message related to this a\nwhile back to provoke an argument so that I could get the straight dope on\nthis. This article would probably give me all the definitive answers that I\nwant.\n\nEd Stasic\nestasic@ic.sunysb.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5191, "properties": {"category": "sci.electronics", "text": "From: paula@nlbbs.com (Paula Stockholm)\nSubject: Re: Need to find out number to a phone line\nReply-To: paula@nlbbs.com <Paula Stockholm>\nOrganization: The Northern Lights BBS, Portland, ME  * 207-761-4782 *\nLines: 7\nX-Newsreader: ZipNews Reader/Mailer v0.92d (Beta)\n\n In most areas of the country, serviced by ESS (or CESS), your phone\n--\n\n      * * * * * * * * * * * * * * * * * * * * * * * * * * *\n      *               paula@nlbbs.com                     *\n      *  Paula Stockholm            Cumberland, Maine USA *\n      * * * * * * * * * * * * * * * * * * * * * * * * * * *\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5192, "properties": {"category": "sci.space", "text": "From: baez@guitar.ucr.edu (john baez)\nSubject: End of the Space Age\nArticle-I.D.: galaxy.29034\nOrganization: University of California, Riverside\nLines: 82\nNntp-Posting-Host: guitar.ucr.edu\n\nThere is an interesting opinion piece in the business section of today's\nLA Times (Thursday April 15, 1993, p. D1).  I thought I'd post it to\nstir up some flame wars - I mean reasoned debate.  Let me preface it by\nsaying that I largely agree that the \"Space Age\" in the romantic sense\nof several decades ago is over, and that projects like the space station\nmiss the point at this time.  Reading, for example, \"What's New\" -\nthe weekly physics update we get here on the net - it's clear that the\nromance of the day lies in the ever more fine-grained manipulation of\nmatter: by which I include biotechnology, condensed matter physics (with\nits spinoffs in computer hardware and elsewhere), and the amazing things\npeople are doing with individual atoms these days.  To a large extent, I\nthink, the romance some people still have with space is a matter of\nnostalgia.  I feel sure that someday we - or more precisely, our \"mind\nchildren\" - will spread across space (unless we wipe ourselves out); but\nI think that *manned* space exploration is not what is exciting about\nwhat we can do *now*.   \n\nAnyway, let me quote some of this article, but not all...\n\n\nSPACE AGE GLORY FADES FROM VIEW\n\nMicheal Schrage (writer, consultant, and research associate at MIT)\n\nAt 35, America's Space Age won't have to suffer through the angst of a\nmidlife crisis.\n\nThe reason is that the Space Age is already dead.  The technologies no\nlonger define our times, and the public has grown weary of the multibillion\n-dollar celestial investments that yield minimal psychic or economic\nrewards.  \n\nSpace exploration has mutated from a central focuse of America's science\nand technology debate into a peripheral issue.  Speace is not a\nmeaningful part of the ongoing industrial competitiveness debate, our\ntechnology infrastructure discussions or even our defense conversion\npolicy.  \n\nTo be sure, America should continue to invest in satellite technologies\nfor telecommunications and remote sensing - cheap deep-space probes\nwould be nice too - but the ideal of space as a meaningful driver of\nscientific and industrial innovation is now dead.\n\n.....\n\nBefore the change in administrations, it would have been foolish to\nwrite an obituary for the Space Age.  The Bush White House aggressively\nsupported the space program and proposed spending well over $30 billion\nto build space station Freedom alone.\n\nEven as he proposed budget cuts in other science and technology domains,\nOffice of Management and Budget Director Richard Darman was an outspoken\npublic champion of big-ticket space expenditures.  The reality that much\nof the civilian space program - from the shuttle to the Hubble telescope\nto the space station - was poorly conceived and unimpressively\nimplemented did not seem to matter much.\n\nPolitical inertia and a nostalgic sense of futurism - not a coherent\nvision or cost-effective sensibilities - determined multibillion-dollar\nspace budgets.\n\nIndeed, with few notable exceptions, such as Voyager, the post-Apollo\nera is the story of the gold-plated porkification of space exploration\nwith programs and promises that delivered less for more and more.  \n\n......\n\nWhile the Clinton Administration has kept on the highly regarded Daniel\nGoldin as administrator of the National Aeronautics and Space\nAdministration, it seems clear that space exploration is not being\npositioned as either a symbolic or substantive centerpiece of America's\ntechnological prowess.  The space station budget has - rightly - been\nslashed.  Space is virtually ignored when the Administration champions\nits competitiveness agenda.\n\n......\n\n\"I wish this had happened 10 years ago instead of starting to happen\nnow,\" says Bruce Murray, a Caltech professor who ran NASA's Jet\nPropulsion Lab in Pasadena.  \"We've put off a lot of things we shouldn't\nhave.... I would rather see a $10-billion NASA doing well than a\n$40-billion one filled with white elephants.\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.248+0000", "event": "documents", "entityId": 5193, "properties": {"category": "rec.sport.baseball", "text": "From: davewood@bruno.cs.colorado.edu (David Rex Wood)\nSubject: Baseball spreads?\nNntp-Posting-Host: bruno.cs.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 8\n\nHow does one read the betting spreads for baseball?  They tend to be something\nlike 8-9 which means it must not be runs!\n\nThanks.\n-- \n-------------------------------------------------------------------------------\nDavid Rex Wood -- davewood@cs.colorado.edu -- University of Colorado at Boulder\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5194, "properties": {"category": "alt.atheism", "text": "From: jbrown@batman.bmd.trw.com\nSubject: Re: Death Penalty / Gulf War\nLines: 232\n\nIn article <930419.115707.6f2.rusnews.w165w@mantis.co.uk>, mathew <mathew@mantis.co.uk> writes:\n> jbrown@batman.bmd.trw.com writes:\n>>In article <930414.121019.7E4.rusnews.w165w@mantis.co.uk>, mathew\n>><mathew@mantis.co.uk> writes:\n>>> Yes.  Fortunately we have right-thinking folks like your good self in power\n>>> and it was therefore deemed acceptable to slaughter tens or even hundreds o\n>>> thousands of Iraqis in order to liberate oil^H^H^HKuwait.  We won the war,\n>>> hurrah hurrah!\n>> \n>> The number of civilian Iraqi deaths were way over-exaggerated and \n>> exploited for anti-war emotionalism by the liberal news media.  The\n>> facts are that less Iraqis died in the Gulf War than did civilians \n>> in any other war of comparable size this century!\n> \n> Let's analyze this claim a little.  How is the \"size\" of a war defined?  By\n> number of participants?  Geographical area?  Number of countries involved? \n> Number of casualties?\n\nSize of armies, duration, numbers of casualties both absolute and as a\npercentage of those involved, geographical area and numbers of countries\ntoo, are all measures of size.  In this case I'd say the relevant\nstatistic would be the number of combatants (total troops) compared to\ntotal casualties from among the total civilian population in the\naffected geographical area.\n\n> \n> Which other \"comparable\" wars are we talking about?\n\nVietnam and Korea might make good comparisons.\n\n> \n> Which \"liberal news media\" are we talking about?\n> \n\nWestern news in general, but in particular the American \"mass media\":\nCBS, NBC, ABC, etc.  The general tone of the news during the whole\nwar was one of \"those poor, poor Iraqis\" along with \"look how precisely\nthis cruise missile blew this building to bits\".\n\n>>                                                    This was due mostly\n>> to the short duration coupled with precise surgical bombing techniques\n>> which were technically possible only recently.\n> \n> I suspect that medical advances may have something to do with it too.\n\nI agree.\n\n> \n>> How about all the innocent people who died in blanket-bombing in WW2?\n>> I don't hear you bemoaning them!\n> \n> Perhaps because the topic hasn't cropped up.  If you want my opinion, I think\n> that the blanket bombing of German cities at the end of World War Two was the\n> most appalling act of wholesale slaughter this country has committed in\n> centuries.  Bomber Harris was no hero of mine.\n\nPerhaps so.  And maybe the atomic bomb was a mistake too.  But that's easy\nto say from our \"enlightened\" viewpoint here in the 90's, right?  Back\nthen, it was *all-out* war, and Germany and Japan had to be squashed.\nAfter all, a million or more British had already died, hundreds of \nthousands of French, a couple hundread thousand or so Americans, and \nmillions of Russians, not to mention a few million Jews, Poles, and \nother people of slavic descent in German concentration camps.  All \nthings considered, the fire-bombings and the atomic bomb were\nessential (and therefore justified) in bringing the war to a quick\nend to avoid even greater allied losses.\n\nI, for one, don't regret it.\n\n> \n>>                                 War is never an exact science, but\n>> with smart bombs, it's becoming more exact with a smaller percentage\n>> of civilian casualties.  Sometimes mistakes are made; targets are\n>> misidentified; innocents die.  That's war the way it really is.\n> \n> Entrenched political rulers operating in their own selfish interests without\n> regard for the lives of other people, *that* is the way war really is.\n\nSure.  And it's the people who suffer because of them.  All the more\nreason to depose these \"entrenched political rulers operating in their\nown selfish interests\"!  Or do you mean that this applies to the allies\nas well??\n\n> \n> Why all the fuss about Kuwait and not East Timor, Bosnia, or even Tibet?  If\n> Iraq is so bad, why were we still selling them stuff a couple of weeks before\n> we started bombing?\n\nI make no claim or effort to justify the misguided foreign policy of the\nWest before the war.  It is evident that the West, especially America,\nmisjudged Hussein drastically.  But once Hussein invaded Kuwait and \nthreatened to militarily corner a significant portion of the world's\noil supply, he had to be stopped.  Sure the war could have been\nprevented by judicious and concerted effort on the part of the West\nbefore Hussein invaded Kuwait, but it is still *Hussein* who is\nresponsible for his decision to invade.  And once he did so, a\nstrong response from the West was required.\n\n> \n>> Mathew, your sarcasm is noted but you are completely off-base here.\n>> You come off sounding like a complete peace-nik idiot, although I\n>> feel sure that was not your intent.\n> \n> What's your intent?  To sound like a Loving Christian?  Well, you aren't\n> doing a very good job of it.\n\nWell, it's not very \"loving\" to allow a Hussein or a Hitler to gobble up\nnearby countries and keep them.  Or to allow them to continue with mass\nslaughter of certain peoples under their dominion.  So, I'd have to\nsay yes, stopping Hussein was the most \"loving\" thing to do for the\nmost people involved once he set his mind on military conquest.\n> \n>> So the Iraqi war was wrong, eh?  I'm sure that appeasement would have\n>> worked better than war, just like it did in WW2, eh?\n> \n> Who even mentioned appeasement?  And what makes you think the situation is\n> even remotely analogous to World War Two?\n\nI mentioned it.\n\nIf we hadn't intervened, allowing Hussein to keep Kuwait, then it would\nhave been appeasement.  It is precisely the lessons the world learned\nin WW2 that motivated the Western alliance to war.  Letting Hitler take\nAustria and Czechoslavkia did not stop WW2 from happening, and letting\nHussein keep Kuwait would not have stopped an eventual Gulf War to\nprotect Saudi Arabia.\n\n> \n>>                                                           I guess we\n>> shouldn't have fought WW2 either -- just think of all those innocent\n>> German civilians killed in Dresden and Hamburg.\n> \n> Yes, do.  Germans are human too, you know.\n> \n\nSure.  What was truly unfortunate was that they followed Hitler in\nhis grandiose quest for a \"Thousand Year Reich\".  The consequences\nstemmed from that.\n\n>> Tyrants like Hussein *have* to be stopped.  His kind don't understand\n>> diplomacy; they only understand the point of a gun.  My only regret is\n>> that Bush wimped out and didn't have the military roll into Baghdad, so\n>> now Hussein is still in power and the Iraqi people's sacrifice (not to\n>> mention the 357 Americans who died) was for naught.\n> \n> I look forward to hearing your incisive comments about East Timor and Tibet.\n> \nWhat should I say about them?  Anything in particular?\n\n\n>> And as for poor, poor Rodney King!  Did you ever stop and think *why*\n>> the jury in the first trial brought back a verdict of \"not guilty\"?\n> \n> Yes.  Amongst the things I thought were \"Hmm, there's an awful lot of white\n> people in that jury.\"\n\nSo?  It was the *policemen* on trial not Rodney King!!  And under American\nlaw they deserved a jury of *their* peers!  If there had been black\nofficers involved, I'm sure their would have been black jurors too.\nThis point (of allegedly racial motivations) is really shallow.\n\n> \n>> Those who have been foaming at the mouth for the blood of those\n>> policemen certainly have looked no further than the video tape.\n>> But the jury looked at *all* the evidence, evidence which you and I\n>> have not seen.\n> \n> When I see a bunch of policemen beating someone who's lying defenceless on\n> the ground, it's rather hard to imagine what this other evidence might have\n> been.\n\nSo?  It's \"hard to imagine\"?  So when has Argument from Incredulity\ngained acceptance from the revered author of \"Constructing a Logical\nArgument\"?  Can we expect another revision soon??  :)  (Just kidding.)\n\n> \n> If there is some wonderful evidence, why is it seemingly being kept secret? \n> Why not tell everyone what it is?  Then everyone could say \"Oh, yes, you're\n> right, King deserved a good beating\", and we could all live happily ever\n> after.\n\nI have to admit that I wonder this too.  But *neither* the prosecution\nnor the defense is talking.  So one cannot conclude either way due to\nthe silence of the principals.  \n\n> \n>> Law in this country is intended to protect the rights of the accused,\n>> whether they be criminals or cops.  One is not found guilty if there is\n>> a reasonable doubt of one's guilt, and only the jury is in a position\n>> to assess the evidence and render a verdict.\n> \n> Fine, but I'm still finding it hard to imagine what the \"reasonable doubt\"\n> was in this case.  I mean, the cops certainly seem to be beating someone\n> who's lying defenceless on the ground.  What's your explanation?  Mass\n> hallucination?  Orbital mind-control lasers?  Faked video footage?  Do tell.\n> \n\nOK.  It certainly seemed to me that there was excessive force involved.\nAnd frankly, the original \"not guilty\" verdict baffled me too.  But then\nI learned that the prosecution in the first case did not try to convict\non a charge of excessive force or simple assault which they probably\nwould have won, they tried to get a conviction on a charge of aggravated\nassault with intent to inflict serious bodily harm.  A charge, which\nnews commentators said, was akin to attempted murder under California\nlaw.  Based on what the prosecution was asking for, it's evident that \nthe first jury decided that the officers were \"not guilty\".  Note, \nnot \"not guilty\" of doing wrong, but \"not guilty\" of aggravated assault \nwith the *intent* of inflicting serious bodily harm.  The seeds of the \nprosecutions defeat were in their own overconfidence in obtaining a \nverdict such that they went for the most extreme charge they could.\n\nIf the facts as the news commentators presented them are true, then\nI feel the \"not guilty\" verdict was a reasonable one.\n\n> \n> mathew\n> [ \"Thou shalt not kill... unless thou hast a pretty good reason for killing,\n>    in which case thou shalt kill, and also kill anyone who gets in the way,\n>    as unfortunately it cannot be helped.\"\n>                                    -- Jim Brown Bible for Loving Christians ]\n\nThanks mathew, I like the quote.  Pretty funny actually.  (I'm a \nMonty Python fan, you know.  Kind of seems in that vein.)\n\nOf course, oversimplifying any moral argument can make it seem\ncontradictory.  But then, you know that already.  \n\nRegards,\n\nJim B.\nLoving Christian  :)\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5195, "properties": {"category": "comp.windows.x", "text": "From: oj@world.std.com (Oliver Jones)\nSubject: Re: A Question I Do Not Found In FAQ\nOrganization: Shawsheen Software\nLines: 11\n\nIn article <1993Apr26.122007.25760@relay.nswc.navy.mil> rchui@opal.nswc.navy.mil writes:\n>I created a pixmap or drawable window, then used XDrawLine() function \n>to draw a [clipped] line ... = 300\n...\n>I created the pixmap or drawable window only with size 300x300.\n>But I draw line from p1(x1=270,y1=100) to p2(x2=500,y2=800).\n>My question is, dose the XDrawLine function can finger out that correct\n>p3(x3 and y3) for me? If you calculate x3 and y3. \n\nIf you're asking, \"does the X server perform clipping\ncorrectly when drawing lines,\" the answer is \"yes.\"\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5196, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: Guns GONE. Good Riddance !\nLines: 18\n\nIn article <1993Apr18.000152.2339@gnv.ifas.ufl.edu>, jrm@gnv.ifas.ufl.edu says:\n\nAh I love posts like this.  Many people have already replied to this one as I\nknew they would.  I'm not going to say much as this just seems like baiting to\nme.  Someone decided to post to see how many people would get mad and reply.  I\nam just going to ignore it but I do have one thing to say.  See below.\n>\n>Surrender your arms. Soon enough, officers will be around to collect\n>them. Resistance is useless. They will overwhelm you - one at a time.\n       ^^^^^^^^^^^^^^^^^^^^^\n\nListen buddy, if you're going to quote Star Trek get the quote right.  It was\n\"Resistance is futile\".  Get it right the next time :-)\n\nJason - u28037@uicvm.cc.uic.edu\n\n\n>\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5197, "properties": {"category": "comp.graphics", "text": "From: jbickers@templar.actrix.gen.nz (John Bickers)\nSubject: Re: HELP!!! GRASP\nOrganization: TAP\nLines: 19\n\nQuoted from <1993Apr20.125147.10665@genes.icgeb.trieste.it> by oberto@genes.icgeb.trieste.it (Jacques Oberto):\n\n> file, check in the 'graphics' directories under *grasp.  The problem \n> is that the .clp files you generate cannot be decoded by any of \n> the many pd format converters I have used. Any hint welcome!\n\n    The gl2p1.lzh stuff under gfx/show on the Aminet sites includes a\n    utility called pic2hl, that is a filter for HamLab that can handle\n    the most commonly used kinds of .PIC and .CLP files.\n\n    The biggest problem is that the .CLP files don't usually contain a\n    palette, so you need to convert a .PIC with the right palette\n    first (which creates a \"ram:picpal\" file), and then convert the\n    .CLP files.\n\n> Jacques Oberto  <oberto@genes.icgeb.trieste.it>\n--\n*** John Bickers, TAP.                   jbickers@templar.actrix.gen.nz ***\n***    \"Radioactivity - It's in the air, for you and me\" - Kraftwerk    ***\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5198, "properties": {"category": "sci.space", "text": "From: gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nOrganization: University of Virginia\nLines: 13\n\nIn article <1r6aqr$dnv@access.digex.net> prb@access.digex.com (Pat) writes:\n#The better question  should be.\n#Why not transfer  O&M of all birds to a separate agency with continous funding\n#to support these kind of ongoing science missions.\n\nSince we don't have the money to keep them going now, how will\nchanging them to a seperate agency help anything?\n\n--\n-Greg Hennessy, University of Virginia\n USPS Mail:     Astronomy Department, Charlottesville, VA 22903-2475 USA\n Internet:      gsh7w@virginia.edu  \n UUCP:\t\t...!uunet!virginia!gsh7w\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5199, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: damien@b63519.student.cwru.edu (Damien Neil)\nSubject: Re: How hot should the cpu be?\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 16\nDistribution: na\nNNTP-Posting-Host: b63519.student.cwru.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nchristopher kushmerick (kushmer@bnlux1.bnl.gov) wrote:\n\n: How hot should the CPU in a 486-33 DX machine be?\n\n: Currently it gets so hot that I can not hold a finger on it for more than\n: 0.5 s. \n\nI seem to recall that 486s run somewhere close to the boiling point of water.\nAnyone have an exact temperature?\n\nAnyway, putting a CPU fan/heat sink on it won't hurt and could help. Depends\non how paranoid you are...\n--\nDamien Neil    dpn2@po.cwru.edu     \"Until someone debugs reality, the best\nCase Western Reserve University      I can do is a quick patch here and there.\"\nCMPS/EEAP       Linux -- the choice of a GNU generation.        -Erik Green\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5200, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bigal@wpi.WPI.EDU (Nathan Charles Crowell)\nSubject: Wallpaper in Windows 3.1\nOrganization: Worcester Polytechnic Institute\nLines: 14\nNNTP-Posting-Host: wpi.wpi.edu\n\nHi there,\n\nIs there any utility available that will make Windows\nrandomly select one of your windows directory's .BMP\nfiles as the wallpaper file?\n\nNate\n--------------------------\nNathan C. Crowell, Dept. of Materials Science/ACRL\n\nWorcester Polytechnic Institute     E-mail: bigal@wpi.wpi.edu\n\n\"A flower?\"-Genesis \"Supper's Ready\"\n--------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5201, "properties": {"category": "comp.windows.x", "text": "From: rj@rainbow.in-berlin.de (Robert Joop)\nSubject: Re: tvtwm & xsetroot, X11R5 and Sparc 10 keyboard\nLines: 26\nNNTP-Posting-Host: rainbow.in-berlin.de\nMime-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\n\nbarr@pop.psu.edu (David Barr) writes:\n\n>Did you install the sunkbd patch?  It's in the contrib directory on export.\n>All the keys on my keyboard send events properly, except the following:\n>The End, PageUp, PageDown on the 6-key cluster aren't recognized.\n>Even the compose key works.  (Though I can't seem to get the composed\n>characters in an xterm to get passed.)\n\n>Anyone have a fix for the last two?\n\nfix the table in .../X11R5/mit/server/ddx/sun/ or\nuse xmodmap(1).\n\nput\n  stty pass8; setenv LC_CTYPE iso_8859_1; setenv LESSCHARSET latin1\nin your .login. the first prevents the stripping of bit 7.\nthe second sets the locale. the third makes less(1) show the character\ninstead of the octal representation.\n\nrj\n\n-- \n__________________________________________________\nRobert Joop\n  rj@{rainbow.in-berlin,fokus.gmd,cs.tu-berlin}.de\n  s=joop;ou=fokus;ou=berlin;p=gmd;a=dbp;c=de\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5202, "properties": {"category": "rec.sport.baseball", "text": "From: kkeach@pomona.claremont.edu\nSubject: Re: SUPER TOUGH Baseball Trivia\nReply-To: kkeach@pomona.claremont.edu\nOrganization: Pomona College\nLines: 37\n\nIn article <1993Apr17.015908.10416@ncar.ucar.edu>, amj@rsf.atd.ucar.edu (Anthony Michael Jivoin) writes:\n>In the Bruce Springsteen video \"Glory Days\", from the Born\n>in the USA album, they show two quick shots of a baseball game\n>on television in the bar Bruce and the E-Street band are playing.\n>\n>Name the teams?\n>\n>Which Stadium?\n>\n>Who is the pitcher?\n>\n>What two batters go down swinging?\n>\n>Also at the end of the video Bruce is throwing at a wooden\n>\"strike zone\" and his last pitch a young boy lines a base\n>hit into center. As Bruce and the kid walk of the field the\n>kid asks him how he did today.\n>\n>Bruce mentions the team he was playing and that a certain\n>player got him in the bottom of the ninth.\n>\n>Name the player and the team!\nsandiego and graig nettles\n\n\n\n\n>\n>If anyone gets these I'll be impressed.\n>\n>Anthony M. Jivoin\n>National Center for Atmospheric Research\n>RSF/ATD - FL1\n>P.O. Box 3000\n>Boulder, CO 80307\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5203, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith)\nSubject: Re: IDE vs SCSI\nOrganization: The John P. Robarts Research Institute, London, Ontario\nNntp-Posting-Host: valve.heart.rri.uwo.ca\nLines: 15\n\nIn article <1993Apr18.035941.14697@grebyn.com> richk@grebyn.com (Richard Krehbiel) writes:\n>\n>Heck, if IDE used DMA, then you'd hear all kinds of complaints about\n>ISA bus systems with more than 16M RAM not working with their IDE\n>drives.  16M is the DMA addressing limit of the ISA bus, and if IDE\n>did DMA there would be trouble.\n\nThere would be no problems as long as the OS didn't set up a DMA transfer\nto an area above the 16 mb area (the DMA controller probably can't be\nprogrammed that way anyways, so there probably isin't a problem with this)\n\nBesides, like I said before, the FDD controller uses DMA channel #2.\nAnd I don't yet believe that the HDD controllers (any of them, MFM, RLL,\netc) don't also use DMA.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5204, "properties": {"category": "soc.religion.christian", "text": "From: rbutera@owlnet.rice.edu (Robert John Butera)\nSubject: Book Review Wanted\nOrganization: Rice University\nLines: 18\n\nI'm interested if anyone out here can point me towards a review of the\nfollowing book in any scholarly Christian journal, whether it be\nconservative or liberal, Protestant or Catholic.\n\n_The_Lost_Years_of_Jesus_ (documentary evidence for Jesus' 17 year\njourney to the East), by Elizabeth Clare Prophet.  Supposedly this\nis a theory that was refuted in the past, and she has re-examined it.\n\nI thought this was just another novel book, but I saw it listed as\na text for a class in religious studies here.  Also, the endorsements seem\nto come from some credible sources, so I'm wondering if scholars have\nreviewed it (or anyone on the net, for that matter).\n\n-- \nRob Butera        |\nECE Grad Student  |     \"Only sick music makes money today\" \nRice University   |\nHouston, TX 77054 |               - Nietzsche, 1888\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5205, "properties": {"category": "comp.sys.mac.hardware", "text": "From: feilimau@leland.Stanford.EDU (Christopher Yale Lin)\nSubject: mac IIsi power limitations\nSummary: what are they?\nOrganization: DSG, Stanford University, CA 94305, USA\nDistribution: usa\nLines: 17\n\nReaders,\n\nI own a Mac IIsi and am considering upgrades (cards, hard drive, etc).\nCan you tell me what the power limitations are for 1) the PDS slot\nand 2) the hard drive power feed. Secondly, Can you tell me if there\nis a separate limit for each, or if instead, there is a single limit\nfor both combined?\n\nPlease drop me a line if you know the answers to these questions.\nThanks,\n\nfelix lin\nfeilimau@leland.stanford.edu\n\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5206, "properties": {"category": "alt.atheism", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 33\n\nIn article <115288@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n>\n>He'd have to be precise about is rejection of God and his leaving Islam.\n>One is perfectly free to be muslim and to doubt and question the\n>existence of God, so long as one does not _reject_ God. I am sure that\n>Rushdie has be now made his atheism clear in front of a sufficient \n>number of proper witnesses. The question in regard to the legal issue\n>is his status at the time the crime was committed. \n\n\nI'd have to say that I have a problem with any organization, \nreligious or not, where the idea that _simple speech_ such\nas this is the basis for a crime.\n\n-jim halat                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n                                                                          \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5207, "properties": {"category": "soc.religion.christian", "text": "From: todd@nickel.laurentian.ca\nSubject: Re: Homosexuality issues in Christiani\nOrganization: Laurentian University\nLines: 27\n\n> Any one who thinks that Homosexuality and Christianity are compatible should \n> \n> ck       \n> out:  \n>         Romans 1:27\n>         I Corinthians 6:9           \n>         I Timothy 1:10\n>         Jude 1:7        \n>         II Peter 2:6-9\n>         Gen. 19\n>         Lev  18:22\n> (to name a few of the verses that pertain to homosexuality)\n> In Christ's Love,\n> Bryan Whitsell\n\nI was waiting for this. I think your question should be rephrased. The many\nverses of the Bible which condem homosexuality (by our beliefs) have been\nshoved down the throats of homosexuals for a long time by (well-meaning?)\nChristians. The question is how do they interpret these verses. Any discussion\nof any issue (this or any other issue) requires a proof of your case as well\nas a disproof of the opposing view. We are already familiar with those verses\nand many have proven to themselves that these condem homosexual behaviour. We\nmust now establish reasons for not believing this to be true based on the\ninterpretation of these scriptures given by someone who has come to grips with\nthem.\n\nTodd...\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5208, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 18\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, cdcolvin@rahul.net (Christopher D. Colvin) says:\n\n>I worked at AMORC when I was in HS.\n\nOK: So you were a naive teen.\n\n>He [HS Lewis] dates back to the 20's. \n\n\tWrong: 1915 and if you do your homework, 1909.\nBut he was born LAST century (1883).\n\n>\n>Right now AMORC is embroiled in some internal political turmoil. \n\nNo it isn't. \n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5209, "properties": {"category": "rec.sport.baseball", "text": "Subject: Mark Whiten\nFrom: rsmith@strobe.ATC.Olivetti.Com (Russ Smith)\nLines: 13\n\nI was on vacation all last week and didn't see any news at all. Could\nsomebody fill me in on how St. Louis ended up with Mark Whiten in a \ntrade? Who did we give up Arocha, Allen Watson, Dmitri Young, or did\nDal make a decent deal?\n\n:\n\n\nRuss Smith\n*******************************************************************************\n\"I don't know anything about X's, but I know about some O.\"              \n                  George Gervin on being an assistant coach\n********************************************************************************\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5210, "properties": {"category": "sci.med", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: food-related seizures?\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 12\n\nI'm told that corn allergy is fairly common.  My wife has it and it seems\nto be exacerbated if sugar is eaten with the corn.\n\nI suppose that in a person just on the verge of having epilepsy, an\nallergic reaction might cause a seizure, but I don't really know.\nGordon?\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5211, "properties": {"category": "sci.electronics", "text": "From: jeh@cmkrnl.com\nSubject: Re: Need help with car stereo....\nOrganization: Kernel Mode Systems, San Diego, CA\nLines: 38\n\nIn article <1qih53$9ho@usenet.INS.CWRU.Edu>, ae454@cleveland.Freenet.Edu\n (Paul Simundza) writes:\n> My friend has a nice Alpine car stereo, and it only has 2 channels,\n> but one of them does not work. It does not put out any current or voltage\n> at all, is that channel therefore blown?  I then shut the radio off and\n> ran continuity into the two speaker ouputs of the channel, and it charged\n> and discharged so I know the wires just aint bad.... \n\nThis probably only tells you that the DC blocking capacitor that's in series\nbetween the one-chip, single-ended audio amp and the speaker terminal is there.\n\n> any Ideas? \n\nOpen it up and look for the power amp \"ICs\".  They'll be fairly obvious. \nReplace the one connected to the dead output. \n\n> also,\n> how would I locate where the signal of the radio/tape unit is BEFORE it\n> gets amplified, because then couldn't I hook up RCA outputs to that signal\n> so then he could just use a little amplifier? \n\nWell, one thing you should do is poke around the terminals of the power amp\nchips.  Use a probe with a 10M resistor (like a scope probe) connected to the\ninput of a small audio amp w/speaker.  If you find line-level input to both\nchips, one of the chips is bad and can probably replaced pretty easily.  \n\nIf you want to pick off a near-line-level signal, suitable for feeding to an\noutboard amp, the outer legs of the volume control pot will often be good\nenough.  This is *before* the volume control (and usually before the tone and\nbalance controls too).  If you take off from the center and ground legs of\nthe volume pot, this will be after the volume control (but again, probably \nbefore the other controls).  \n\nIf the unit is a modern type with an electronic volume control chip, you should\nprobably forget the whole thing. \n\n\t--- Jamie Hanrahan, Kernel Mode Systems, San Diego CA\nInternet:  jeh@cmkrnl.com  Uucp: uunet!cmkrnl!jeh  CIS: 74140,2055\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5212, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 15\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\namanda@intercon.com (Amanda Walker) writes:\n> I don't get up in arms when \n> the government fails to protect the interests of the people, because in \n> my lifetime it never has--therefore, I have no expectation that it will. \n\nJust to make sure everyone is clear on this: \"it never has\" refers to \n\"protects\", not \"fails to protect\"; i.e., in my lifetime I have never seen \nthe U.S. government consistently protect the interest of U.S. citizens, \nexcept by accident.\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5213, "properties": {"category": "sci.electronics", "text": "From: franko@cco.caltech.edu (Frank Filipanits)\nSubject: Re: arcade style buttons and joysticks\nOrganization: California Institute of Technology, Pasadena\nLines: 19\nNNTP-Posting-Host: alumni.caltech.edu\n\n> > Can anyone tell me where it is possible to purchase controls found\n> > on most arcade style games.  Many projects I am working on would\n> > be greatly augmented if I could implement them.  Thanx in advance.\n\n>HAP controls just outside Chicago sells these.\n>\t\t\t\t\t\tAndrew MacRae\n\nActually, it's HAPP, and some of their equipment can be found in the \nParts Express catalog (1-800-338-0531).  They show switches for $2,\njoysticks for $13 and trackballs for $80.  They also have pinball parts.\n\nGood luck.\n\n\n-- \n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nFrank Filipanits Jr.    B.S. EE/Music, California Institute of Technology '92\nAudio Consultant          M.S. Music Engineering, University of Miami     '94\nfranko@alumni.caltech.edu   \"No, officer, I don't know how fast I was going.\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5214, "properties": {"category": "sci.electronics", "text": "From: geva@concave.cs.wits.ac.za (Geva Patz)\nSubject: How do I make me own really-short-run CD's\nSummary: I want a really short production run of homemade music CDs -- how?\nKeywords: CD mastering pressing homebrew short-run music \nLines: 13\nOrganization: Wits University Electrical Engineering\n\nI want to be able to take a bunch of home-made songs (from DAT or other \nsuitable master) and output them to a short run (10-20 off) of standard \nmusic CDs. Would one of the CD recorders designed for writeable CD ROMs work \nfor this purpose? Alternatively, is there a service that does this sort of \nthing for a fee? \n\nI'm after as much information as possible on the alternatives (cost, lead \ntime, equipment required, procedure to follow, etc.)  Email replies would be \nappreciated.\n\n%%%%     Geva Patz\n Geva    Department of Computer Science, WITS University\n  %%%%   geva@concave.cs.wits.ac.za\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5215, "properties": {"category": "rec.motorcycles", "text": "From: downey@homer.CS.Berkeley.EDU (Allen B. Downey)\nSubject: Re: Speeding ticket from CHP\nOrganization: University of California, Berkeley\nLines: 13\nDistribution: world\nNNTP-Posting-Host: homer.cs.berkeley.edu\n\nParaphrase of initial post:\n\n\tCan I fight a speeding ticket in court?\n\nMy reply:\n\n       Fight your ticket : California edition by David Brown 1st ed.\n       Berkeley, CA : Nolo Press, 1982\n\nThe second edition is out (but not in UCB's library).  Good luck; let\nus know how it goes.\n\nABD\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5216, "properties": {"category": "talk.politics.misc", "text": "From: cosc0000@ucssun1.sdsu.edu (Riyadh Al-hajmoosa)\nSubject: Re: How many homosexuals are there?\nOrganization: San Diego State University Computing Services\nLines: 16\nDistribution: usa\nNNTP-Posting-Host: ucssun1.sdsu.edu\n\nkaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n> Perhaps 1%, but most likely not more than 2%.  A new study\n> (discrediting Kinsey) says so.\n> -- \n>   The views expressed herein are   |  Theodore A. Kaldis\n>   my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n>   believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n>   as this would hold such views??? |\n\n\tMy understanding from my psycology classes is that the percentage is \n\tmore like 10-12% world wide.  I would really like to know your source\n\tfor the 1-2% figure.\n\n\t\t\t\t\t\tRiyadh Moosa.\n\t\t\t\t\t\tSDSU-Chemistry.\n\t\t\t\t\t\tcosc0000@ucssun1.sdsu.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.249+0000", "event": "documents", "entityId": 5217, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: taylor@mail  (Tim Taylor)\nSubject: Re: PKUNZIP2.04g\nNntp-Software: PC/TCP NNTP\nLines: 12        \nOrganization: Loral Data Systems\n\nIn article <1pn6tr$l70@dekalb.DC.PeachNet.EDU> kenneth@dekalb.DC.PeachNet.EDU (Kenneth Palmertree) writes:\n\n    Hey,\n    \n        Does anyone know of an ftp site where I can get pkunzip2.04g from.\n    I tried using archie with no such luck.  This version of pkunzip is suppose\n    to correct some promblems when using pkunzip within windows.  Thanks in\n    advance!  :-)\n    \n\nyou can get pk.... from ftp.cica.indiana.edu\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5218, "properties": {"category": "talk.politics.guns", "text": "From: cmort@NCoast.ORG (Christopher Morton)\nSubject: Re: What if the Dividians were black?\nArticle-I.D.: NCoast.C528ww.L5M\nReply-To: cmort@ncoast.org (Christopher Morton)\nOrganization: North Coast Public Access *NIX, Cleveland, OH\nLines: 35\n\nAs quoted from <1993Apr5.172734.8744@icd.ab.com> by kdw@icd.ab.com (Kenneth D. Whitehead):\n\n> oleary@cbnewsh.cb.att.com (brian.m.leary) writes:\n> \n> > Questions for the media and the politically correct:\n> > \n> > Try asking people who don't understand why anyone would worry about\n> > the tactics used against the \"child molesting, drug dealing, gun running, \n> > cop killing religious wackos in Waco\" (1) these questions:\n> > \n> > If the people in the compound were black and the guys in ninja suits\n> > charging in with assault weapons and grenades were LAPD \n> > what would you think?\n> \n> \n> The charges are essentially the same they used against Operation MOVE\n> in Philadelphia a few years back, where the cops dropped an incendiary\n> bomb on the roof of a tenement and burned down a whole block.\n> \n> MOVE was a black group.\n\nThere were some significant differences.  Whereas the Branch Davidians are\nreported to have gotten along rather well with their neighbors, the MOVE\npeople are generally conceded to have gone far out of the way to antagonize\ntheir BLACK neighbors, using loudspeakers to all hours of the night, keeping\nlarge piles of garbage, promoting rat and insect infestation, and allegedly\nthreatening to kidnap their neighbors' children.\n\nStill the same sort of questions regarding use of force remain in that case.\n\n-- \n===================================================================\n\"You're like a bunch of over-educated, New York jewish ACLU lawyers\nfighting to eliminate school prayer from the public schools in\nArkansas\" - Holly Silva\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5219, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: Re: DOS 6.0\nFrom: venable@faculty.coe.wvu.edu (Wallace Venable)\nOrganization: WVU College of Engineering\nNntp-Posting-Host: 157.182.80.85\nLines: 10\n\n\n>I know of two people who have horrer stories about the DOS 6.0.\n>That's 100% of the people I know with DOS 6.0. Both have\n>had to reformat their disks and start over.\n\n\tI used the standard installation program to put MS-DOS 6.0 on my\nmachine with Stacker 3.0 already installed.  No problems.  I kept Stacker,\nrather than switch.\n\tI am very pleased with the memory I gained since I did not have a\nmemory manager.  I also like the multiple boot feature.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5220, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Roe v. Wade\nDistribution: na\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 56\n\nIn article <lsm2fjINNlnf@exodus.Eng.Sun.COM>, chased@rbbb.Eng.Sun.COM (David Chase) writes:\n> >> In article <15230@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n# ## #I remain pro-choice, but when pro-choicers compare abortion in a\n# ## #clinic to a religious ritual in a church, you have to start wondering\n# ## #a bit if the pro-life criticism of abortion as modern human sacrifice\n# ## #doesn't have a grain of truth to it.\n# \n# #In article <ls8ruoINN54b@exodus.Eng.Sun.COM#, chased@rbbb.Eng.Sun.COM (David Chase) writes:\n# ## \n# ## Ah, Clayton, so I see that you have found someone new to bash.  Tell\n# ## me, how many pro-choicers have compared abortion in a clinic to a\n# ## religious ritual in a church?  I'll bet that you've seen \"overwhelming\n# ## support\" for this opinion in some newsgroup or another.\n# \n# In article <15313@optilink.COM# cramer@optilink.COM (Clayton Cramer) writes:\n# #No, but I've seen the comparison drawn by pro-choicers in ca.politics.\n# #It is worrisome to me.  But not to you?\n# \n# 1. I've been reading ca.politics for a while now, and I don't recall\n#    seeing such a comparison.\n\nYou don't read *my* postings very carefully; I'm not surprised.  It\nwas pretty shocking, and is part of why my sympathy (though not\nagreement) with the pro-lifers is increasing.\n\n# 2. A handful of lunatic opinions expressed in ca.politics does not\n#    make me think that the opinion is widely held.\n\nWhen did I say that it was?\n\n# Clayton, I wish I knew what made you tick.  Your math sucks, and you\n# take single instances of fringe opinions and proclaim the existence of\n# a pernicious trend.  There's about a quarter billion people living in\n# this country -- some small number of them are almost guaranteed to\n# hold opinions that you (and I) find positively repellent.  As long as\n# the small number is truly a small number, and as long as they're not\n# my neighbor (highly likely), I'm not worried about it.\n\nWhen they hold high public office, you should worry.\n\n# By the way, when you cite experts, remember that Carl Sagan and Paul\n# Ehrlich [sp?] are experts, too.  If I've never heard of your experts,\n# I'll consider the source (you, a man who is clearly unable to master\n# elementary statistics and uses of statistical inference) and ignore\n# them.\n# \n# David Chase\n\nYou mean, I don't come to the conclusions that your emotional\nstate requires.\n\n\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5221, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dppeak@matt.ksu.ksu.edu (David Paul Peak)\nSubject: FOR SALE: TelePort ADB 2400bps Modem w/Send Fax\nOrganization: Kansas State University\nLines: 12\nNNTP-Posting-Host: matt.ksu.ksu.edu\n\nI am selling my Global Village Teleport 2400 bps modem w/send fax. It\nconnects to the mac through the ADB port.  The software for sending\nfaxes is included.  I am asking $90.  However, I will consider other\nreasonable offers.  Please E-Mail me.\n\nDave\n\nDave Peak\nInternet -- dppeak@matt.ksu.ksu.edu\nAOL -- skibum7\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5222, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kuan@netcom.com (Kuan)\nSubject: Video Display\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 34\n\n\n   My mac monitor displays about 20 vertical lines when I use it.\nIt means that either my display memory goes wrong or monitor is bad\nor video card is bad.\n   I checked my monitor, it works fine with other Mac.\n   I checked my video card, it's also fine.\n   I replaced all the RAMs, it still didn't give me right answer.\n   Hence I assume something wrong with some part of my motherboard.\n\n   I don't know hardware architecture of the Macintosh.\n\n   Can anyone tell me what's the problem ????\n\n   It's a Mac IIcx.\n\n\n   MANY THANKS IN ADVANCE.\n\n\nkuan@netcom.netcom.com\n \n\n-- \n\n--------------------------------------------------------------------------------\nMy Name:    Kuan, Yihpyng\nBorn:       Taichung, Taiwan, R.O.C.\nWork Phone: 415-688-6774\nCompany:    Failure Analysis Associates, Inc.\n            149 Commonwealth Drive, P.O. Box 3015\n            Menlo Park, CA 94025\nMy Philosophy:\n            Where there is a will, there is a way!\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5223, "properties": {"category": "talk.religion.misc", "text": "From: Thyagi@cup.portal.com (Thyagi Morgoth NagaSiva)\nSubject: Re: O.T.O clarification\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 48\n\n930420\n\nDo what thou wilt shall be the whole of the Law.\nThe word of Sin is Restriction.\n\n\nKent (sandvik@newton.apple.com) writes:\n\nSorry, the San Jose based Rosicrucian order is called A.M.O.R.C, \nI don't remember for the time being what the A.M. stand for\nbut O.R.C is Ordo Rosae Crucis, in other words latin for\nOrder of the Rose Cross. \n\n\nResponse:\n\nYes, very true.  The entire title is 'The Ancient and Mystical Order\n Rosae Crucis'.  They are located at 1342 Naglee Avenue, San Jose,\nCalifornia, 95191-0001, USA.\n\nThey are considered different and largely unrelated by a number of\nsources.  I've seen documentation which links them through the figure\nof H. Spencer Lewis.  Lewis was apparently involved with Reuss, who\nwas the O.H.O. of Ordo Templi Orientis for many years.  Apparently it\nis also true that Lewis had a charter to form an O.T.O. body and then\ncreated A.M.O.R.C. (as a subsidiary?  an interesting question).\n\n\nKent:\n\nOtherwise their headquarters in San Jose has a pretty decent\nmetaphysical bookstore, if any of you are interested in such books.\nAnd my son loves to run around in their Egyptian museum.\n\n\nResponse:\n\nIndeed, and diagonally across the street is another metaphysical\nbook store called 'Ram Metaphysical', wherein I've purchased some\nwonderful works by Crowley and others.  Ram Metaphysical Books,\n1749 Park Ave., San Jose, CA.  (408) 294-2651.\n\n\nInvoke me under my stars.  Love is the law, love under will.\n\nI am I!\n\nFrater (I) Nigris (DCLXVI) CCCXXXIII\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5224, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Do we need the clipper for cheap security?\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 68\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\npmetzger@snark.shearson.com (Perry E. Metzger) writes:\n> If the Clipper chip can do cheap crypto for the masses, obviously one \n> could do the same thing WITHOUT building in back doors. \n\nI agree.  So why is Cylink the only (and expensive) game in town?\n\nNote: I think Cylink is great, and if my boss would double my salary, I'd buy \na bunch of their stuff :).\n\nOne thing that Clipper offers is interoperability, at a higher degree of \nsecurity than we currently have in non-proprietary voice encryption systems.\nThis means it will be cheaper than anyone's proprietary scheme, and easier to \ndeploy.  This is, of course, either a bug or a feature depending on how you \nlook at it :).\n\n> Indeed, even without special engineering, you can construct a good \n> system right now. A standard codec chip, a chip to do vocoding, a DES \n> chip, a V32bis integrated modem module, and a small processor to do \n> glue work, are all you need to have a secure phone.\n\nGreat!  Where can I buy it?\n\nAnother note: If \"Clipper\" increases the incentive to bring stronger \nencryption to the mass market, all the better.  It's far overpriced at \nthe moment.\n\n> Yes, cheap crypto is good -- but we don't need it from the government.\n\nI don't care where we *need* to get it from, I care where we *can* get it \nfrom, and whether it will interoperate with everyone else.\n \n> Indeed, were it not for the government doing everything possible to \n> stop them, Qualcomm would have designed strong encryption right in to \n> the CDMA cellular phone system they are pioneering. Were it not for the \n> NSA and company, cheap encryption systems would be everywhere. As it \n> is, they try every trick in the book to stop it. Had it not been for \n> them, I'm sure cheap secure phones would be out right now. \n\nYou can build them right now as long as you don't want to export (a \nrestriction I firmly oppose).  The only thing stopping people from making \ncheap encryption is greed: they want a lock on the market.\n\n> They aren't the ones making cheap crypto available. They are the ones \n> keeping cheap crypto out of people's hands. When they hand you a \n> clipper chip, what you are getting is a mess of pottage -- your prize \n> for having traded in your birthright. \n\nOh, come on.  Only if you trust it farther than it deserves.  A Clipper phone \n*IS NOT* a substitute for a Cylink phone, or a STU-III.  It's a substitute \nfor the \"voice scramblers\" advertised in the back of Radio Electronics.\n\n> Are we getting cheaper crypto \n> for ourselves? No, because the market would have provided that on its \n> own had they not deliberately sabotaged it.\n\nI disagree.  Modulo ITAR, it's not the government that has sabotaged the \nmarket.\n\n> Someone please tell me what exactly we get in our social contract in \n> exchange for giving up our right to strong cryptography? \n\nCan you tell me where exactly we have given up that right?\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5225, "properties": {"category": "talk.religion.misc", "text": "From: kilroy@gboro.rowan.edu (Dr Nancy's Sweetie)\nSubject: Re: Food For Thought On Tyre\nSummary: Another Inerrantist rewrites the Bible.\nKeywords: Scripture, implication, prophesy, `Woof!'\nOrganization: Rowan College of New Jersey\nDisclaimer: Brandy the WonderDog hopes his doghouse will be rebuilt.\nLines: 93\n\n\nThere has been a lot of discussion about Tyre.  In sum, Ezekiel prophesied\nthat the place would be mashed and never rebuilt; as there are a lot of\npeople living there, it would appear that Ezekiel was not literally correct.\n\nThis doesn't bother me at all, because I understand the language Ezekiel used\ndifferently than do so-called Biblical literalists.  For example, it sometimes\nhappens that someone says \"My grandson is the cutest baby!\" and then turns\naround and sees the granddaughter and says \"Oh!  Isn't she the cutest thing!?\"\n\nThis person is not literally claiming to have lined up all the babies in the\nworld according to cuteness and discovered his own grandchildren tied for\nfirst.  Rather, he is trying to express his emotions using words that are very\nobject-oriented.  Because this example is one that is common to many people,\nnobody misunderstands the intent of the statements; the Bible, however, is\noften at the mercy of people who assume that everything within must be exactly\nliterally true.  For those people, the existence of Tyre is a problem; for me,\nit is not.\n\n\nTurning to the latest person trying to defend Ezekiel, we read this from\nJohn E King:\n\n> The prophesy clearly implies that people would still be living in the\n> area[.]\n\nNo, it implies nothing of the kind.  If you had nothing but the prophecy from\nEzekiel, and you were told you interpret it literally, you would never say\n\"Oh, he means that there will be houses and businesses and plants and stuff\nlike that.\"  You would read \"I will make you a bare rock\" and \"You will never\nbe rebuilt\", and you'd conclude that Tyre would be a bare rock.  The only way\nto get from `fishing nets' to `houses and buildings and a medium-large\npopulation' is if you KNOW that all that latter stuff is there.\n\nIn other words, your answer means that Ezekiel misled everybody who read the\nprophecy at the time it was written.  There is no way that, given a literal\nreading, they could read this passage and conclude \"medium-size city\".\n\nYou seem to feel that \"Never be rebuilt\" means \"be rebuilt\" -- maybe so, but\nit is hardly a `clear implication'.\n\n\nMr King also writes:\n\n> So far I've seen stated figurers ranging from 15,000 to 22,000.\n> Let's assume the latter one is correct.  By modern standards\n> we are talking about a one-horse town.\n\nWell, no.  That's only a bit less than the population of Annapolis, where I'm\nfrom.  You know, the Naval Acadamy, the state capital, George Washington\nresigned his commission in the statehouse?  Annapolis may not be New York, but\nit's at least a two-horse town.\n\nBut supposing 22,000 people is a \"small town\" -- it's still 22,000 people\nMORE than Ezekiel predicted.\n\n\nAnd you've said nothing about the other problem.  In chapter 26, Ezekiel\npredicts that Nebuchadnezzar will will destroy Tyre and loot all their\nvaluables.  However, Nebuchadnezzar did NOT destroy Tyre, and in chapter 29\nEzekiel even quotes God as saying \"he and his army got no reward from the\ncampaign he led against Tyre.\"\n\nLet's ignore Alexander for a moment, and just pay attention to chapter 26.\nEzekiel says N. would destroy Tyre, and N. did NOT destroy Tyre.  Ezekiel says\nthat N. would plunder their valuables, but N. did NOT plunder their valuables.\n\nRegardless of what you think about Tyre _now_, the fact is that N. died before\nthe place was destroyed.  Ezekiel said N. was going to do it, and N. did not.\n\n *\n\nThis post is, of course, pointless.  Inerrantists have an amazing ability\nto rewrite the Bible as needed to fit whatever they want it to say.\n\nFor example, I expect Mr King to respond to the comments about Ezekiel 26\nby pulling some \"clear implications\" out of hat.\n\nWhen Ezekiel said that N. would \"demolish your towers\", that clearly implied\nthat the walls would still be standing so people would know where the towers\nused to be.  And when Ezekiel said that N. would \"demolish your fine houses\nand throw your stones, timber and rubble into the sea\", that clearly implied\nthat N. would never set foot on the island.  And when Ezekiel wrote that N.\nwould \"build a ramp up to your walls\", that clearly implies that N. would\nspend 13 years stomping around on the mainland and never get close to the\nwalls.\n\nSee?  A few \"clear implications\" that are totally contrary to the text, and\nyou can reconcile anything you want.\n\n\nDarren F Provine / kilroy@gboro.rowan.edu\n\"[Do] You know why I'm the enabler?  Because you demand it!\" -- Cliff Claven\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5226, "properties": {"category": "sci.crypt", "text": "Subject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nFrom: a_rubin@dsg4.dse.beckman.com (Arthur Rubin)\n <1r0ausINNi01@senator-bedfellow.MIT.EDU> <1993Apr20.145338.14804@shearson.com> <1r47l1INN8gq@senator-bedfellow.MIT.EDU>\nOrganization: Beckman Instruments, Inc.\nNntp-Posting-Host: dsg4.dse.beckman.com\nLines: 24\n\nIn <1r47l1INN8gq@senator-bedfellow.MIT.EDU> jfc@athena.mit.edu (John F Carr) writes:\n\n>In most cases information you come by properly is yours to use as you wish,\n>but there are certainly exceptions.  If you write a paper which includes\n>sufficiently detailed information on how to build a nuclear weapon, it is\n>classified.  As I understand the law, nuclear weapons design is\n>_automatically_ classified even if you do the work yourself.  I believe you\n>are then not allowed to read your own paper.\n\nThis has now been thrown out by the courts.  (The \"Progressive\" case.)\n\n>A less serious example: if you tell drivers about a speed trap they are\n>about to run into, you can be fined, even though you might argue that you\n>broke no law when you discovered the location of the policeman.  The charge\n>is interfering with a police officer, which is quite similar what you would\n>be doing by reverse engineering the Clipper chip.\n\nThis is outright illegal.  It DOES violate the first amendment.  If you\nwould, give a case in which your \"speed trap\" example has been upheld by\nthe courts.\n--\nArthur L. Rubin: a_rubin@dsg4.dse.beckman.com (work) Beckman Instruments/Brea\n216-5888@mcimail.com 70707.453@compuserve.com arthur@pnet01.cts.com (personal)\nMy opinions are my own, and do not represent those of my employer.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5227, "properties": {"category": "talk.politics.misc", "text": "From: schwarze@starbase1.caltech.edu (Erich Schwarz)\nSubject: Re: Top Ten Reasons Hillary and Chealsea Don't Like Men in Uniform\nOrganization: CalTech, Div. of Biology\nLines: 20\nDistribution: world\nNNTP-Posting-Host: anise.bio.caltech.edu\n\nIn article <C4vxvK.Bxr@newsserver.technet.sg>, ipser@solomon.technet.sg (Ed\nIpser) wrote: \n> Top Ten Reasons Hillary and Chealsea Don't Like Men in Uniform\n>                             ^^^^^^^^\n> [...]\n> \n> 6.  They keep saluting and stuff. Its embarassing.\n>                                   ^^^ ^^^^^^^^^^^\n> [...]\n> Copyright (c) Edward A. Ipser, Jr., 1993\n\n\n\nEd:\n\n    Before you ridicule the intelligence of other people, LEARN TO SPELL. \nYour typographical errors are, indeed, \"embarassing\" to those of us who\nread alt.politics.libertarian for its allegedly superior ideas and writing.\n\n--Erich Schwarz / schwarze@starbase1.caltech.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5228, "properties": {"category": "talk.politics.mideast", "text": "From: cy779@cleveland.Freenet.Edu (Anas Omran)\nSubject: Re: Israeli Terrorism\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 27\nReply-To: cy779@cleveland.Freenet.Edu (Anas Omran)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, tclock@orion.oac.uci.edu (Tim Clock) says:\n\n>In article <1993Apr24.203620.6531@Virginia.EDU> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n>>I think the Israeli press might be a tad bit biased in\n>>reporting the events. I doubt the Propaganda machine of Goering\n>>reported accurately on what was happening in Germany. It is\n>>interesting that you are basing the truth on Israeli propaganda.\n>\n>Since one is also unlikely to get \"the truth\" from either Arab or \n>Palestinian news outlets, where do we go to \"understand\", to learn? \n>Is one form of propoganda more reliable than another?\n\nThere are many neutral human rights organizations which always report\non the situation in the O.T.  But, as most people used to see on TV, the\nIsraelis do not allow them to go deep there in the O.T.  The Israelis \nused to arrest and sometimes to kill some of these neutral reporters.  \nSo, this is another kind of terrorism committed by the Jews in Palestine.\nThey do not allow fair and neutral coverage of the situation in Palestine.\n\n>to determine that is to try and get beyond the writer's \"political\n>agenda\", whether it is \"on\" or \"against\" our *side*.\n>\n>Tim \n\nAnas Omran\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5229, "properties": {"category": "sci.electronics", "text": "From: pyeatt@Texaco.com (Larry D. Pyeatt)\nSubject: Membrane keypad with custom legend.\nNntp-Posting-Host: 211.2.1.197\nOrganization: Texaco\nLines: 16\n\nI had a catalog with membrane keypads, but I dunno what\nhappened to it, and it was so long ago that I forget the\nname of the company.  Anyway, you could make your own\nlegend and slip it behind the bezel.  Really nice and \nreasonably priced.  Can anyone tell me where to get some\nmore of these critters?  I've tried several places, but\nnone of them seem to have keypads which allow you to use\nyour own legend.\n\nAny suggestion would be appreciated.\n\n-- \nLarry D. Pyeatt                 The views expressed here are not\nInternet : pyeatt@texaco.com    those of my employer or of anyone\nVoice    : (713) 975-4056       that I know of with the possible\n                                exception of myself.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5230, "properties": {"category": "rec.autos", "text": "From: sawicki@naspac.tc.faa.gov (Michael J. Sawicki CTA)\nSubject: Regal fiberglass parts ??\nOrganization: FAA Technical Center, Pomona, NJ\t\nLines: 10\nDistribution: world\nNNTP-Posting-Host: haydn.faa.gov\nSummary: Regal Fiberglass parts ??\nKeywords: Regal Fiberglass parts ??\n\n I have a 1982 Regal and I am interested in buying\na fiberglass hood, trunk, and bumpers for it.  Does anybody\nknow of a company who makes fiberglass parts for Regals ??\n\n\n\t\tThanks in advance,\n\n\n\t\t\t-Mike\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5231, "properties": {"category": "sci.med", "text": "From: king@reasoning.com (Dick King)\nSubject: Re: Selective Placebo\nOrganization: Reasoning Systems, Inc., Palo Alto, CA\nLines: 20\nNntp-Posting-Host: drums.reasoning.com\n\nIn article <1993Apr17.125545.22457@rose.com> ron.roth@rose.com (ron roth) writes:\n>\n>   OTOH, who are we kidding, the New England Medical Journal in 1984\n>   ran the heading: \"Ninety Percent of Diseases are not Treatable by\n>   Drugs or Surgery,\" which has been echoed by several other reports.\n>   No wonder MDs are not amused with alternative medicine, since\n>   the 20% magic of the \"placebo effect\" would award alternative \n>   practitioners twice the success rate of conventional medicine...\n\n1: \"90% of diseases\" is not the same thing as \"90% of patients\".\n\n   In a world with one curable disease that strikes 100 people, and nine\n   incurable diseases which strikes one person each, medical science will cure\n   91% of the patients and report that 90% of diseases have no therapy.\n\n2: A disease would be counted among the 90% untreatable if nothing better than\n   a placebo were known.  Of course MDs are ethically bound to not knowingly\n   dispense placebos...\n\n-dk\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5232, "properties": {"category": "sci.electronics", "text": "From: heuvel@neptune.iex.com (Ted Van Den Heuvel)\nSubject: Motorola MC14315 and MC143120 \nOriginator: heuvel@neptune.iex.com\nOrganization: iex\nLines: 12\n\n\nLet me try sending this message again, I botched up the margins the\nfirst time; *sorry* 'bout that :)\n\nDoes anyone out there know of any products using Motorola's Neuron(r)\nchips MC143150 or MC143120. If so, what are they and are they utilizing\nStandard Network Variable Types (SNVT)?\n________________________________________________________________________\n\nTed Van Den Heuvel   heuvel@neptune.iex.com\nKX5P\n________________________________________________________________________\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5233, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: Eco-Freaks forcing Space Mining.\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 16\n\nIn article <1993Apr21.212202.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>Here is a way to get the commericial companies into space and mineral\n>exploration.\n>Basically get the eci-freaks to make it so hard to get the minerals on earth..\n\nIf raw materials where to cost enough that getting them from space would\nbe cost effective then the entire world economy would colapse long\nbefore the space mines could be built.\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------55 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5234, "properties": {"category": "talk.religion.misc", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: Hand Held Products, Inc.\nLines: 78\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <1qvh8n$gf4@msuinfo.cl.msu.edu> friedenb@maple.egr.msu.edu (Gedaliah  \nFriedenberg) writes:\n> In article <1qvfik$6rf@usenet.INS.CWRU.Edu>, cj195@cleveland.Freenet.Edu  \n(John W. Redelfs) writes:\n> |> \n> |> Now that Big Brother has rubbed out one minority religion in Waco, who is\n> |> next?  The Mormons or Jews?\n> \n> Give me a break.  If the Mormons fortified Utah and armed it to the teeth,\n> and were involved in illegal activity, then they deserve whatever they get.\n> \n\nWhere were you brought up?  In the former USSR?  Is Innocent until proven  \nguilty by a jury of your peers, NOT Dan Rather, dead in this country?  Seems  \nso.  Is tax evasion, the only charge brought against the BDs, punishable by  \ndeath in this country, now?\n\n\n> You are making a ludicrous suggestion.\n> \nNot really.  You are a blind idiot.\n\n> |> We used to live in a country where everyone enjoyed the free exercise of\n> |> their rights to worship and bear arms.  Now we don't.\n> \n> Does that include the right to murder little children?  How about killing\n> ATF officers?  I do not know much about the gun laws in Texas, but \n> Koresh's folks claimed to have grenades, grenade launchers, and rocket\n> launchers.  I am not sure that the NRA feels that this falls under \n> \"right to bear arms.\"\n\n\"Not sure\", yet you condem them to death for it?  If the BATF had stayed home,  \nall would be alive, now.  So who murdered who?\n>  \n> |> Of course, to Jews and Mormons this is just a broken record.  It has\n> |> happened before.\n> \n> Please explain.  I do not remember Jews or Mormons (as a group) overtly \n> breaking a judicious (a.k.a. non-Nazi) law and being punished for it.\n>  \nYou have a short memory.\n\n> |> I'll bet all you cult haters are happy now, right?  Just hope you're not  \nnext.\n> \n> Followups to /dev/null  \n> \n> Alternative followups set to talk.religion.misc\n> \n\nSleep well, tonite, heartless idiot.  Sleep the sleep of the simple-minded.\n\nI shall weep for my country, myself.\n\n>  \n> |> ------------ John W. Redelfs, cj195@cleveland.freenet.edu -------------\n> |> --------- All my opinions are tentative pending further data. ---------\n>  \n> Gedaliah Friedenberg\n> -=-Department of Mechanical Engineering\n> -=-Department of Metallurgy, Mechanics and Materials Science\n> -=-Michigan State University\n> \n> \n>                    \n\nI'm short of patience tonite, but rabid dogs deserve and get better treatment  \nthan the BDs got.\n\nJim\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5235, "properties": {"category": "sci.med", "text": "From: dwebb@unl.edu (dale webb)\nSubject: Re: THE BACK MACHINE - Update\nOrganization: University of Nebraska--Lincoln\t\nLines: 15\nDistribution: na\nNNTP-Posting-Host: unlinfo.unl.edu\n\n   I have a BACK MACHINE and have had one since January.  While I have not \nfound it to be a panacea for my back pain, I think it has helped somewhat. \nIt MAINLY acts to stretch muscles in the back and prevent spasms associated\nwith pain.  I am taking less pain medication than I was previously.  \n   The folks at BACK TECHNOLOGIES are VERY reluctant to honor their return \npolicy.  They extended my \"warranty\" period rather than allow me to return \nthe machine when, after the first month or so, I was not thrilled with it. \nThey encouraged me to continue to use it, abeit less vigourously. \n   Like I said, I can't say it is a cure-all, but it keeps me stretched out\nand I am in less pain.\n--\n***********************************************************************\nDale M. Webb, DVM, PhD           *  97% of the body is water.  The\nVeterinary Diagnostic Center     *  other 3% keeps you from drowning.\nUniversity of Nebraska, Lincoln  *\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5236, "properties": {"category": "sci.space", "text": "Subject: Space FAQ 05/15 - References\nFrom: leech@cs.unc.edu (Jon Leech)\nExpires: 6 May 1993 19:56:44 GMT\nOrganization: University of North Carolina, Chapel Hill\nKeywords: Frequently Asked Questions\nSupersedes: <references_730956466@cs.unc.edu>\nNNTP-Posting-Host: mahler.cs.unc.edu\nLines: 665\n\nArchive-name: space/references\nLast-modified: $Date: 93/04/01 14:39:21 $\n\nREFERENCES ON SPECIFIC AREAS\n\n    PUBLISHERS OF SPACE/ASTRONOMY MATERIAL\n\n    Astronomical Society of the Pacific\n    1290 24th Avenue\n    San Francisco, CA 94122\n\n\tMore expensive but better organized slide sets.\n\n    Cambridge University Press\n    32 East 57th Street\n    New York, NY 10022\n\n    Crawford-Peters Aeronautica\n    P.O. Box 152528\n    San Diego, CA 92115\n    (619) 287-3933\n\n\tAn excellent source of all kinds of space publications. They publish\n\ta number of catalogs, including:\n\t    Aviation and Space, 1945-1962\n\t    Aviation and Space, 1962-1990\n\t    Space and Related Titles\n\n    European Southern Observatory\n    Information and Photographic Service\n    Dr R.M. West\n    Karl Scharzschild Strasse 2\n    D-8046 Garching bei Munchen\n    FRG\n\n\tSlide sets, posters, photographs, conference proceedings.\n\n    Finley Holiday Film Corporation\n    12607 East Philadelphia Street\n    Whittier, California 90601\n    (213)945-3325\n    (800)FILMS-07\n\n\tWide selection of Apollo, Shuttle, Viking, and Voyager slides at ~50\n\tcents/slide. Call for a catalog.\n\n    Hansen Planetarium (Utah)\n\n\tSaid to hold sales on old slide sets. Look in Sky & Telescope\n\tfor contact info.\n\n    Lunar and Planetary Institute\n    3303 NASA Road One\n    Houston, TX 77058-4399\n\n\tTechnical, geology-oriented slide sets, with supporting\n\tbooklets.\n\n    John Wiley & Sons\n    605 Third Avenue\n    New York, NY 10158-0012\n\n    Sky Publishing Corporation\n    PO Box 9111\n    Belmont, MA  02178-9111\n\n\tOffers \"Sky Catalogue 2000.0\" on PC floppy with information\n\t(including parallax) for 45000 stars.\n\n    Roger Wheate\n    Geography Dept.\n    University of Calgary, Alberta\n    Canada T2N 1N4\n    (403)-220-4892\n    (403)-282-7298 (FAX)\n    wheate@uncamult.bitnet\n\n\tOffers a 40-slide set called \"Mapping the Planets\" illustrating\n\trecent work in planetary cartography, comes with a booklet and\n\tinformation on getting your own copies of the maps. $50 Canadian,\n\tshipping included.\n\n    Superintendent of Documents\n    US Government Printing Office\n    Washington, DC 20402\n\n    Univelt, Inc.\n    P. O. Box 28130\n    San Diego, Ca. 92128\n\n\tPublishers for the American Astronomical Society.\n\n    US Naval Observatory\n\t202-653-1079 (USNO Bulletin Board via modem)\n\t202-653-1507 General\n\n    Willmann-Bell\n    P.O. Box 35025\n    Richmond, Virginia 23235 USA\n    (804)-320-7016 9-5 EST M-F\n\n\n    CAREERS IN THE SPACE INDUSTRY\n\n    In 1990 the Princeton Planetary Society published the first edition of\n    \"Space Jobs: The Guide to Careers in Space-Related Fields.\" The\n    publication was enormously successful: we distributed 2000 copies to\n    space enthusiasts across the country and even sent a few to people in\n    Great Britain, Australia, and Ecuador. Due to the tremendous response to\n    the first edition, PPS has published an expanded, up-to-date second\n    edition of the guide.\n\n    The 40-page publication boasts 69 listings for summer and full-time job\n    opportunities as well as graduate school programs. The second edition of\n    \"Space Jobs\" features strategies for entering the space field and\n    describes positions at consulting and engineering firms, NASA, and\n    non-profit organizations. The expanded special section on graduate\n    schools highlights a myriad of programs ranging from space manufacturing\n    to space policy. Additional sections include tips on becoming an\n    astronaut and listings of NASA Space Grant Fellowships and Consortia, as\n    well as NASA Centers for the Commercial Development of Space.\n\n    To order send check or money order made payable to Princeton Planetary\n    Society for $4 per copy, plus $1 per copy for shipping and handling\n    (non-US customers send an International Money Order payable in US\n    dollars) to:\n\n    Princeton Planetary Society\n    315 West College\n    Princeton University\n    Princeton, NJ  08544\n\n\n    DC-X SINGLE-STAGE TO ORBIT (SSTO) PROGRAM\n\n    SDI's SSRT (Single Stage Rocket Technology) project has funded a\n    suborbital technology demonstrator called DC-X that should fly in\n    mid-1993. Further development towards an operational single-stage to\n    orbit vehicle (called Delta Clipper) is uncertain at present.\n\n    An collection of pictures and files relating to DC-X is available by\n    anonymous FTP or email server in the directory\n\n\tbongo.cc.utexas.edu:pub/delta-clipper\n\n    Chris W. Johnson (chrisj@emx.cc.utexas.edu) maintains the archive.\n\n\n    HOW TO NAME A STAR AFTER A PERSON\n\n    Official names are decided by committees of the International\n    Astronomical Union, and are not for sale. There are purely commercial\n    organizations which will, for a fee, send you pretty certificates and\n    star maps describing where to find \"your\" star. These organizations have\n    absolutely no standing in the astronomical community and the names they\n    assign are not used by anyone else. It's also likely that you won't be\n    able to see \"your\" star without binoculars or a telescope. See the back\n    pages of Astronomy or other amateur astronomy publications for contact\n    info; one such organization may be found at:\n\n\tInternational Star Registry\n\t34523 Wilson Road\n\tIngleside, IL 60041\n\n    This is not an endorsement of ISR.\n\n\n    LLNL \"GREAT EXPLORATION\"\n\n    The LLNL \"Great Exploration\", a plan for an on-the-cheap space station,\n    Lunar base, and Mars mission using inflatable space structures, excited\n    a lot of interest on the net and still comes up from time to time. Some\n    references cited during net discussion were:\n\n\tAvation Week Jan 22, 1990 for an article on the overall Great\n\tExploration\n\n\tNASA Assessment of the LLNL Space Exploration Proposal and LLNL\n\tResponses by Dr. Lowell Wood LLNL Doc. No. SS 90-9. Their address\n\tis: PO Box 808 Livermore, CA 94550 (the NASA authors are unknown).\n\n\tBriefing slides of a presentation to the NRC last December may be\n\tavailable. Write LLNL and ask.\n\n\tConceptual Design Study for Modular Inflatable Space Structures, a\n\tfinal report for purchase order B098747 by ILC Dover INC. I don't\n\tknow how to get this except from LLNL or ILC Dover. I don't have an\n\taddress for ILC.\n\n\n    LUNAR PROSPECTOR\n\n    Lunar Exploration Inc. (LEI) is a non-profit corporation working on a\n    privately funded lunar polar orbiter. Lunar Prospector is designed to\n    perform a geochemical survey and search for frozen volatiles at the\n    poles. A set of reference files describing the project is available in\n\n\tames.arc.nasa.gov:pub/SPACE/LEI/*\n\n\n    LUNAR SCIENCE AND ACTIVITIES\n\n    Grant H Heiken, David T Vaniman, and Bevan M French (editors), \"Lunar\n    Sourcebook, A User's Guide to the Moon\", Cambridge University Press\n    1991, ISBN 0-521-33444-6; hardcover; expensive. A one-volume\n    encyclopedia of essentially everything known about the Moon, reviewing\n    current knowledge in considerable depth, with copious references. Heavy\n    emphasis on geology, but a lot more besides, including considerable\n    discussion of past lunar missions and practical issues relevant to\n    future mission design. *The* reference book for the Moon; all others are\n    obsolete.\n\n    Wendell Mendell (ed), \"Lunar Bases and Space Activities of the 21st\n    Century\", $15. \"Every serious student of lunar bases *must* have this\n    book\" - Bill Higgins. Available from:\n\n\tLunar and Planetary Institute\n\t3303 NASA Road One\n\tHouston, TX 77058-4399\n\tIf you want to order books, call (713)486-2172.\n\n    Thomas A. Mutch, \"Geology of the Moon: A Stratigraphic View\", Princeton\n    University Press, 1970. Information about the Lunar Orbiter missions,\n    including maps of the coverage of the lunar nearside and farside by\n    various Orbiters.\n\n\n    ORBITING EARTH SATELLITE HISTORIES\n\n    A list of Earth orbiting satellites (that are still in orbit) is\n    available by anonymous FTP in:\n\n\tames.arc.nasa.gov:pub/SPACE/FAQ/Satellites\n\n\n    SPACECRAFT MODELS\n\n    \"Space in Miniature #2: Gemini\" by\n\tMichael J. Mackowski\n\t1621 Waterwood Lane, St. Louis, MO 63146\n\t$7.50\n\n    Only 34pp but enough pictures & diagrams to interest more than just the\n    modelling community, I feel.\n\n    Marco's Miniatures of Dracut, Mass. have produced a 1/144 Skylab in an\n    edition of 500 & a 1/48 Lunar Rover (same scale as Monogram and Revell\n    Lunar Modules) in a similar edition. Prices are $45 for Skylab, $24 for\n    LRV. Check with them for postage etc. I have no connection with them,\n    but have found their service to be good and their stock of rare/old kits\n    *is* impressive. Prices range from reasonable ($35 for Monogram 1/32\n    scale Apollo CSM with cutaway details) to spectacular ($145 for Airfix\n    Vostok).\n\n\t Four Star Collectibles\n\t P.O. Box 658\n\t Dracut Mass 01826, USA.\n\t (508)-957-0695.\n\n    Voyager, HST, Viking, Lunar Rover etc. kits from:\n\n\tLunar Models\n\t5120 Grisham\n\tRowlett, Texas 75088\n\t(214)-475-4230\n\n    As reviewed by Bob Kaplow:\n\n\tPeter Alway's book \"Scale Model Rocketry\" is now available. Mine\n\tarrived in the mail earlier this week. To get your own copy, send\n\t$19.95 + $2.50 s/h ($22.45 total) to:\n\n\t\t\tPeter Alway\n\t\t\t2830 Pittsfield\n\t\t\tAnn Arbor, MI 48104\n\n\tThe book includes information on collecting scale data, construction\n\tof scale models, and several handy tables. Appendicies include plans\n\tfor 3 sport scale models, a 1:9.22 D Region Tomahawk (BT50), a 1/40\n\tV-2 (BT60), and a 1/9.16 Aerobee 150A (BT55/60).\n\n\tI've only begun to study the book, but it certainly will be a\n\tvaluable data source for many modellers. Most vehicles include\n\tseveral paragraphs of text describing the missions flown by the\n\trocket, various specs including \"NAR\" engine classification, along\n\twith a dimensioned drawing, color layouts & paint pattern, and a\n\tblack & white photograph.\n\n\tThe vehicles included are the Aerobee 150A, Aerobee 300, Aerobee Hi,\n\tArcas, Asp, Astrobee 1500, Astrobee D, Atlas Centaur, Atlas-Agena,\n\tAtlas-Score, Baby WAC, D-Region Tomahawk, Deacon Rockoon, Delta B,\n\tDelta E, Gemini-Titan II, Iris, Javelin, Juno 1, Juno 2, Little Joe\n\t1, Little Joe 2, Mercury-Atlas, Mercury-Redstone, Nike-Apache,\n\tNike-Asp, Nike-Cajun, Nike-Deacon, Nike-Tomahawk, RAM B, Saturn 1\n\tBlock 1, Saturn 1 Block 2, Saturn 1B, Saturn 5, Scout, Standard\n\tAerobee, Terrapin, Thor-Able, Titan III C, Titan III E, Trailblazer\n\t1, V-2, Vanguard, Viking Model 1, Viking Model 2, and Wac Corporal.\n\n\n    ROCKET PROPULSION\n\n\tGeorge P. Sutton, \"Rocket Propulsion Elements\", 5th edn,\n\tWiley-Interscience 1986, ISBN 0-471-80027-9. Pricey textbook. The\n\tbest (nearly the only) modern introduction to the technical side of\n\trocketry. A good place to start if you want to know the details. Not\n\tfor the math-shy. Straight chemical rockets, essentially nothing on\n\tmore advanced propulsion (although earlier editions reportedly had\n\tsome coverage).\n\n\tDieter K. Huzel and David H. Huang, \"Design of Liquid Propellant\n\tRocket Engines\", NASA SP-125.\n\tNTIS N71-29405\t\tPC A20/MF A01\t1971  461p\n\tOut of print; reproductions may be obtained through the NTIS\n\t(expensive). The complete and authoritative guide to designing\n\tliquid-fuel engines. Reference #1 in most chapters of Sutton. Heavy\n\temphasis on practical issues, what works and what doesn't, what the\n\ttypical values of the fudge factors are. Stiff reading, massive\n\tdetail; written for rocket engineers by rocket engineers.\n\n\n    SPACECRAFT DESIGN\n\n\tBrij N. Agrawal, \"Design of Geosynchronous Spacecraft\",\n\tPrentice-Hall, ISBN 0-13-200114-4.\n\n\tJames R. Wertz ed, \"Spacecraft Attitude Determination and\n\tControl\", Kluwer, ISBN 90-277-1204-2.\n\n\tP.R.K. Chetty, \"Satellite Technology and its Applications\",\n\tMcGraw-Hill, ISBN 0-8306-9688-1.\n\n\tJames R. Wertz and Wiley J. Larson (editors), \"Space Mission\n\tAnalysis and Design\", Kluwer Academic Publishers\n\t(Dordrecht/Boston/London) 1991, ISBN 0-7923-0971-5 (paperback), or\n\t0-7923-0970-7 (hardback).\n\n\t    This looks at system-level design of a spacecraft, rather than\n\t    detailed design. 23 chapters, 4 appendices, about 430 pages. It\n\t    leads the reader through the mission design and system-level\n\t    design of a fictitious earth-observation satellite, to\n\t    illustrate the principles that it tries to convey. Warning:\n\t    although the book is chock-full of many useful reference tables,\n\t    some of the numbers in at least one of those tables (launch\n\t    costs for various launchers) appear to be quite wrong. Can be\n\t    ordered by telephone, using a credit card; Kluwer's phone number\n\t    is (617)-871-6600. Cost $34.50.\n\n\n    ESOTERIC PROPULSION SCHEMES (SOLAR SAILS, LASERS, FUSION...)\n\n    This needs more and more up-to-date references, but it's a start.\n\n    ANTIMATTER:\n\n\t\"Antiproton Annihilation Propulsion\", Robert Forward\n\t    AFRPL TR-85-034 from the Air Force Rocket Propulsion Laboratory\n\t    (AFRPL/XRX, Stop 24, Edwards Air Force Base, CA 93523-5000).\n\t    NTIS AD-A160 734/0\t   PC A10/MF A01\n\t    PC => Paper copy, A10 => $US57.90 -- or maybe Price Code?\n\t    MF => MicroFiche, A01 => $US13.90\n\n\t    Technical study on making, holding, and using antimatter for\n\t    near-term (30-50 years) propulsion systems. Excellent\n\t    bibliography. Forward is the best-known proponent\n\t    of antimatter.\n\n\t    This also may be available as UDR-TR-85-55 from the contractor,\n\t    the University of Dayton Research Institute, and DTIC AD-A160\n\t    from the Defense Technical Information Center, Defense Logistics\n\t    Agency, Cameron Station, Alexandria, VA 22304-6145. And it's\n\t    also available from the NTIS, with yet another number.\n\n\t\"Advanced Space Propulsion Study, Antiproton and Beamed Power\n\t    Propulsion\", Robert Forward\n\n\t    AFAL TR-87-070 from the Air Force Astronautics Laboratory, DTIC\n\t    #AD-A189 218.\n\t    NTIS AD-A189 218/1\t  PC A10/MF A01\n\n\t    Summarizes the previous paper, goes into detail on beamed power\n\t    systems including \" 1) pellet, microwave, and laser beamed power\n\t    systems for intersteller transport; 2) a design for a\n\t    near-relativistic laser-pushed lightsail using near-term laser\n\t    technology; 3) a survey of laser thermal propulsion, tether\n\t    transportation systems, antiproton annihilation propulsion,\n\t    exotic applications of solar sails, and laser-pushed\n\t    interstellar lightsails; 4) the status of antiproton\n\t    annihilation propulsion as of 1986; and 5) the prospects for\n\t    obtaining antimatter ions heavier than antiprotons.\" Again,\n\t    there is an extensive bibliography.\n\n\t    \"Application of Antimatter - Electric Power to Interstellar\n\t    Propulsion\", G. D. Nordley, JBIS Interstellar Studies issue of\n\t    6/90.\n\n    BUSSARD RAMJETS AND RELATED METHODS:\n\n\tG. L. Matloff and A. J. Fennelly, \"Interstellar Applications and\n\tLimitations of Several Electrostatic/Electromagnetic Ion Collection\n\tTechniques\", JBIS 30 (1977):213-222\n\n\tN. H. Langston, \"The Erosion of Interstellar Drag Screens\", JBIS 26\n\t(1973): 481-484\n\n\tC. Powell, \"Flight Dynamics of the Ram-Augmented Interstellar\n\tRocket\", JBIS 28 (1975):553-562\n\n\tA. R. Martin, \"The Effects of Drag on Relativistic Spacefight\", JBIS\n\t25 (1972):643-652\n\n    FUSION:\n\n\t\"A Laser Fusion Rocket for Interplanetary Propulsion\", Roderick Hyde,\n\tLLNL report UCRL-88857. (Contact the Technical Information Dept. at\n\tLivermore)\n\n\t    Fusion Pellet design: Fuel selection. Energy loss mechanisms.\n\t    Pellet compression metrics. Thrust Chamber: Magnetic nozzle.\n\t    Shielding. Tritium breeding. Thermal modeling. Fusion Driver\n\t    (lasers, particle beams, etc): Heat rejection. Vehicle Summary:\n\t    Mass estimates. Vehicle Performance: Interstellar travel\n\t    required exhaust velocities at the limit of fusion's capability.\n\t    Interplanetary missions are limited by power/weight ratio.\n\t    Trajectory modeling. Typical mission profiles. References,\n\t    including the 1978 report in JBIS, \"Project Daedalus\", and\n\t    several on ICF and driver technology.\n\n\t\"Fusion as Electric Propulsion\", Robert W. Bussard, Journal of\n\tPropulsion and Power, Vol. 6, No. 5, Sept.-Oct. 1990\n\n\t    Fusion rocket engines are analyzed as electric propulsion\n\t    systems, with propulsion thrust-power-input-power ratio (the\n\t    thrust-power \"gain\" G(t)) much greater than unity. Gain values\n\t    of conventional (solar, fission) electric propulsion systems are\n\t    always quite small (e.g., G(t)<0.8). With these, \"high-thrust\"\n\t    interplanetary flight is not possible, because system\n\t    acceleration (a(t)) capabilities are always less than the local\n\t    gravitational acceleration. In contrast, gain values 50-100\n\t    times higher are found for some fusion concepts, which offer\n\t    \"high-thrust\" flight capability. One performance example shows a\n\t    53.3 day (34.4 powered; 18.9 coast), one-way transit time with\n\t    19% payload for a single-stage Earth/Mars vehicle. Another shows\n\t    the potential for high acceleration (a(t)=0.55g(o)) flight in\n\t    Earth/moon space.\n\n\t\"The QED Engine System: Direct Electric Fusion-Powered Systems for\n\tAerospace Flight Propulsion\" by Robert W. Bussard, EMC2-1190-03,\n\tavailable from Energy/Matter Conversion Corp., 9100 A. Center\n\tStreet, Manassas, VA 22110.\n\n\t    [This is an introduction to the application of Bussard's version\n\t    of the Farnsworth/Hirsch electrostatic confinement fusion\n\t    technology to propulsion. 1500<Isp<5000 sec. Farnsworth/Hirsch\n\t    demonstrated a 10**10 neutron flux with their device back in\n\t    1969 but it was dropped when panic ensued over the surprising\n\t    stability of the Soviet Tokamak. Hirsch, responsible for the\n\t    panic, has recently recanted and is back working on QED. -- Jim\n\t    Bowery]\n\n\t\"PLASMAKtm Star Power for Energy Intensive Space Applications\", by\n\tPaul M. Koloc, Eight ANS Topical Meeting on Technology of Fusion\n\tEnergy, special issue FUSION TECHNOLOGY, March 1989.\n\n\t    Aneutronic energy (fusion with little or negligible neutron\n\t    flux) requires plasma pressures and stable confinement times\n\t    larger than can be delivered by current approaches. If plasma\n\t    pressures appropriate to burn times on the order of milliseconds\n\t    could be achieved in aneutronic fuels, then high power densities\n\t    and very compact, realtively clean burning engines for space and\n\t    other special applications would be at hand. The PLASMAKtm\n\t    innovation will make this possible; its unique pressure\n\t    efficient structure, exceptional stability, fluid-mechanically\n\t    compressible Mantle and direct inductive MHD electric power\n\t    conversion advantages are described. Peak burn densities of tens\n\t    of megawats per cc give it compactness even in the\n\t    multi-gigawatt electric output size. Engineering advantages\n\t    indicate a rapid development schedule at very modest cost. [I\n\t    strongly recommend that people take this guy seriously. Bob\n\t    Hirsch, the primary proponent of the Tokamak, has recently\n\t    declared Koloc's PLASMAKtm precursor, the spheromak, to be one\n\t    of 3 promising fusion technologies that should be pursued rather\n\t    than Tokamak. Aside from the preceeding appeal to authority, the\n\t    PLASMAKtm looks like it finally models ball-lightning with solid\n\t    MHD physics. -- Jim Bowery]\n\n    ION DRIVES:\n\n\tRetrieve files pub/SPACE/SPACELINK/6.5.2.* from the Ames SPACE\n\tarchive; these deal with many aspects of ion drives and describe the\n\tSERT I and II missions, which flight-tested cesium ion thrusters in\n\tthe 1960s and 70s. There are numerous references.\n\n    MASS DRIVERS (COILGUNS, RAILGUNS):\n\n\tIEEE Transactions on Magnetics (for example, v. 27 no. 1, January\n\t1991 issue). Every so often they publish the proceedings of the\n\tSymposium on Electromagnetic Launcher Technology, including hundreds\n\tof papers on the subject. It's a good look at the state of the art,\n\tthough perhaps not a good tutorial for beginners. Anybody know some\n\tgood review papers?\n\n    NUCLEAR ROCKETS (FISSION):\n\n\t\"Technical Notes on Nuclear Rockets\", by Bruce W. Knight and Donald\n\tKingsbury, unpublished. May be available from: Donald Kingsbury,\n\tMath Dept., McGill University, PO Box 6070, Station A, Montreal,\n\tQuebec M3C 3G1 Canada.\n\n    SOLAR SAILS:\n\n\tStarsailing. Solar Sails and Interstellar Travel. Louis Friedman,\n\tWiley, New York, 1988, 146 pp., paper $9.95. (Not very technical,\n\tbut an adequate overview.)\n\n\t\"Roundtrip Interstellar Travel Using Laser-Pushed Lightsails\n\t(Journal of Spacecraft and Rockets, vol. 21, pp. 187-95, Jan.-Feb.\n\t1984)\n\n    TETHERS:\n\n\t_Tethers and Asteroids for Artificial Gravity Assist in the Solar\n\tSystem,_ by P.A. Penzo and H.L. Mayer., _Journal of Spacecraft\n\tand Rockets_ for Jan-Feb 1986.\n\n\t    Details how a spacecraft with a kevlar tether of the same mass\n\t    can change its velocity by up to slightly less than 1 km/sec. if\n\t    it is travelling under that velocity wrt a suitable asteroid.\n\n    GENERAL:\n\n\t\"Alternate Propulsion Energy Sources\", Robert Forward\n\t    AFPRL TR-83-067.\n\t    NTIS AD-B088 771/1\t  PC A07/MF A01   Dec 83 138p\n\n\t    Keywords: Propulsion energy, metastable helium, free-radical\n\t    hydrogen, solar pumped (sic) plasmas, antiproton annihiliation,\n\t    ionospheric lasers, solar sails, perforated sails, microwave\n\t    sails, quantum fluctuations, antimatter rockets... It's a wide,\n\t    if not deep, look at exotic energy sources which might be useful\n\t    for space propulsion. It also considers various kinds of laser\n\t    propulsion, metallic hydrogen, tethers, and unconventional\n\t    nuclear propulsion. The bibliographic information, pointing to\n\t    the research on all this stuff, belongs on every daydreamer's\n\t    shelf.\n\n\tFuture Magic. Dr. Robert L. Forward, Avon, 1988. ISBN 0-380-89814-4.\n\n\t    Nontechnical discussion of tethers, antimatter, gravity control,\n\t    and even futher-out topics.\n\n\n    SPY SATELLITES\n\n    *Deep Black*, by William Burrows;\n\t\"best modern general book for spysats.\"\n\n    1) A Base For Debate: The US Satellite Station at Nurrungar, Des Ball,\n    Allen and Unwin Australia, 1987 ISBN 0 04 355027 4 [ covers DSP early\n    warning satellites]\n\n    2) Pine Gap: Australia and the US Geostationary Signals intelligence\n    satellite program, Des Ball, Allen and Unwin Australia, 1988 ISBN 0 04\n    363002 5. [covers RHYOLITE/AQUACADE, CHALET/VORTEX, and MAGNUM signals\n    intelligence satellites]\n\n    3) Guardians: Strategic Reconnaissance Satellites, Curtis Peebles, 1987,\n    Ian Allan, ISBN 0 7110 17654 [ good on MOL, military Salyut and Soviet\n    satellites, less so on others. Tends to believe what he's told so flaws\n    in discussion of DSP, RHYOLITE et al..]\n\n    4) America's Secret Eyes In Space: The Keyhole Spy Satellite Program,\n    Jeffrey Richelson, 1990, Harper and Row, ISBN 0 88730 285 8 [ in a class\n    of its own, *the* historical reference on the KEYHOLE satellites]\n\n    5) Secret Sentries in Space, Philip J Klass, 1971.\n\t\"long out of print but well worth a look\"\n\n\n    SPACE SHUTTLE COMPUTER SYSTEMS\n\n    %J Communications of the ACM\n    %V 27\n    %N 9\n    %D September 1984\n    %K Special issue on space [shuttle] computers\n\n    %A Myron Kayton\n    %T Avionics for Manned Spacecraft\n    %J IEEE Transactions on Aerospace and Electronic Systems\n    %V 25\n    %N 6\n    %D November 1989\n    %P 786-827\n\n    Other various AIAA and IEEE publications.\n\n    Computers in Spaceflight: The NASA Experience\n    James E.  Tomayko\n    1988?\n\n\n    SETI COMPUTATION (SIGNAL PROCESSING)\n\n    %A D. K. Cullers\n    %A Ivan R. Linscott\n    %A Bernard M. Oliver\n    %T Signal Processing in SETI\n    %J Communications of the ACM\n    %V 28\n    %N 11\n    %D November 1984\n    %P 1151-1163\n    %K CR Categories and Subject Descriptors: D.4.1 [Operating Systems]:\n    Process Management - concurrency; I.5.4 [Pattern Recognition]:\n    Applications - signal processing; J.2 [Phsyical Sciences and Engineering]:\n    astronomy\n    General Terms: Design\n    Additional Key Words and Phrases: digital Fourier transforms,\n    finite impulse-response filters, interstellar communications,\n    Search for Extra-terrestrial Intelligence, signal detection,\n    spectrum analysis\n\n\n    AMATEUR SATELLIES & WEATHER SATELLITES\n\n    A fairly long writeup on receiving and interpreting weather satellite\n    photos is available from the Ames SPACE archive in\n    pub/SPACE/FAQ/WeatherPhotos.\n\n    The American Radio Relay League publication service offers the following\n    references (also see the section on AMSAT in the space groups segment of\n    the FAQ):\n\n\tARRL Satellite Experimenters Handbook,\t\t#3185, $20\n\tARRL Weather Satellite Handbook,\t\t#3193, $20\n\tIBM-PC software for Weather Satellite Handbook, #3290, $10\n\n\tAMSAT NA 5th Space Symposium,\t\t\t#0739, $12\n\tAMSAT NA 6th Space Symposium,\t\t\t#2219, $12\n\n\tShipping is extra.\n\n    The American Radio Relay League\n    Publications Department\n    225 Main Street\n    Newington, CT 06111\n    (203)-666-1541\n\n\n    TIDES\n\n    Srinivas Bettadpur contributed a writeup on tides, available from the\n    Ames SPACE archive in pub/SPACE/FAQ/Tides. It covers the following\n    areas:\n\n\t- 2-D Example of Tidal Deformation\n\t- Treatment of Tidal Fields in Practice\n\t- Long term evolution of the Earth-Moon system under tides\n\n    The writeup refers to the following texts:\n\n\t\"Geophysical Geodesy\" by K. Lambeck\n\t\"Tides of the planet Earth\" by P. Melchior\n\nNEXT: FAQ #6/15 - Constants and equations for calculations\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5237, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: miket@empros.com (Mike Tipton)\nSubject: Character Codes Problems\nReply-To: miket@empros.com\nNntp-Posting-Host: sbb1.empros.com\nOrganization: Empros Power Systems Control, a division of Siemens EA\nLines: 15\n\nHelp!\nI am working on a project that involves using text with foreign language\ncharacters (in this case Norwegian). I have been manipulating the data\nwith Excell 4.0 and then exporting the data as comma seperated variable\nfiles to an RS6000 workstation.  The Norwegian characters show up fine\nunder Windows, but appear as \"funny\" characters on the workstation.  The\nworkstation is setup for national language support and we have problem\nentering the Norwegian characters from the workstation keyboard. \nOn further investigation I found that the character codes used by\nWindows are different (for these characters) than those specified by the\nMSDOS code page.  The MSDOS codes seem to be the same as the\nworkstation.  What gives, and how can get around it.\nPlease reply by E-mail as I will be out of the office the next few days\nand will not be reading the news.\nThanks.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5238, "properties": {"category": "rec.motorcycles", "text": "From: James Leo Belliveau <jbc9+@andrew.cmu.edu>\nSubject: First Bike??\nOrganization: Freshman, Mechanical Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 17\nNNTP-Posting-Host: po2.andrew.cmu.edu\n\n Anyone, \n\n    I am a serious motorcycle enthusiast without a motorcycle, and to\nput it bluntly, it sucks.  I really would like some advice on what would\nbe a good starter bike for me.  I do know one thing however, I need to\nmake my first bike a good one, because buying a second any time soon is\nout of the question.  I am specifically interested in racing bikes, (CBR\n600 F2, GSX-R 750).  I know that this may sound kind of crazy\nconsidering that I've never had a bike before, but I am responsible, a\nfast learner, and in love.  Please give me any advice that you think\nwould help me in my search, including places to look or even specific\nbikes that you want to sell me.\n\n    Thanks  :-)\n\n    Jamie Belliveau (jbc9@andrew.cmu.edu)  \n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.250+0000", "event": "documents", "entityId": 5239, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: 2 questions about the Centris 650's RAM\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 10\n\npetere@tesla.mitre.org (Peter D. Engels) writes:\n\n>According to the (seen several times) postings from Dale Adams of Apple\n>Computer, both the 610 and the 650 require 80ns SIMMS - NOT 60 ns.  Only\n>the Centris 800 requires 60 ns SIMMs.\n\n    You're correct, except that's Quadra 800 not Centris 800.\n\n-Hades\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5240, "properties": {"category": "rec.autos", "text": "From: hacker@cco.caltech.edu (Jonathan Bruce Hacker)\nSubject: Re: Was \"Re: Safety\": From how far can you see a car ?\nArticle-I.D.: gap.1psle4INNkm2\nDistribution: na\nOrganization: California Institute of Technology, Pasadena\nLines: 105\nNNTP-Posting-Host: sandman.caltech.edu\n\nssave@ole.cdac.com (The Devil Reincarnate) writes:\n\n\n>>.... These\n>>lit up cars make non-illuminated things LESS visible (like pedistrians and\n>>bikes). Hopefully we're not going to mandate DRL's for people and bikes \n>>too.\n\nWell, DRL's are already mandatory for motorcycles...\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n-- \nJon Hacker                         |  Get the OS/2 2.1 March Beta CD-ROM \nCaltech, Pasadena CA               |  for $15 \nhacker@tumbler-ridge.caltech.edu   |  Call 1-800-3-IBM-OS2\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5241, "properties": {"category": "sci.electronics", "text": "From: fontana@cis.ohio-state.edu (Mark Fontana)\nSubject: Homemade projector automation\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 37\nDistribution: usa\nNNTP-Posting-Host: tomato.cis.ohio-state.edu\n\n\nHi all,\n\nI'm an assistant manager at a local art theater here in Columbus.  I'd\nlike to expand our show automation a bit- namely add the capability to\nuse cue tapes to bring the houselights up.  Our current automation\nconsoles date from the early 60's and don't provide this function.\n\nWe already have the combo failsafe/contact rollers to read the cuetapes,\nand our dimmer system will raise the houselights when its fade-up control\ncircuit (120 VAC) is momentarily closed, for at least 0.5 second.\n\nI've tried wiring the dimmer control to a 12V relay, activated when the\ncue tape completes the circuit.  Low tech and simple, but there's one\nproblem:  In order to get the 1/2 second pulse, there needs to be\na sh**load of cuetape on the film.  (35mm runs at 90 feet per minute,\nso to get a 1/2 second pulse, there needs to be at least 9 inches of solid\ncuetape!)\n\nIdeally, I would like to use a single cross-cue to accomplish this function.\n(A single strip of cuetape perpendicular to the length of the film)\nThis would give a pulse of approximately 1/100 of a second.\nWhat I need is a circuit to detect the short cue and activate the relay\nfor around 1/2 second.  The ability to adjust how long the relay\nis activated would be nice.  I figure this would require an RC circuit\nof some sort.  I'm sure some of you already have the solution figured\nout in your heads.  Any suggestions and schematics would be appreciated!\n\n\nThanks,\n\nMark Fontana\n\n-- \n \"Of all the arts, the cinema is  |  Mark A. Fontana\n  the most important.\"            |  Computer and Information Science\n                    --V.I. Lenin  |  THE Ohio State University\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5242, "properties": {"category": "talk.religion.misc", "text": "From: joslin@pogo.isp.pitt.edu (David Joslin)\nSubject: Re: Food For Thought On Tyre\nOrganization: Intelligent Systems Program\nLines: 10\n\naf664@yfn.ysu.edu (Frank DeCenso, Jr.) writes:\n>PPS...Am I giving you too many clues?\n\nToo many clues, not enough substance.  You ask a lot of\ngood questions, though, but they are questions *you* should\nbe worried about, not me.  I'm not the inerrantist here.\n\nLet me know when you are ready to get serious.\n\ndj\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5243, "properties": {"category": "misc.forsale", "text": "From: hgomez@magnus.acs.ohio-state.edu (Humberto L Gomez)\nSubject: MULTISYNC 3D NEC MONITOR FOR SALE\nArticle-I.D.: magnus.1993Apr6.012451.3540\nDistribution: usa\nOrganization: The Ohio State University\nLines: 8\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\n\n\nI have an NEC multisync 3d monitor for sale. great condition. looks new. it is\n.28 dot pitch\nSVGA monitor that syncs from 15-38khz\n\nit is compatible with all aga amiga graphics modes.\nleave message if interested. make an offer.\n-- \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5244, "properties": {"category": "sci.crypt", "text": "From: bear@tigger.cs.Colorado.EDU (Bear Giles)\nSubject: Re: The [secret] source of that announcement\nNntp-Posting-Host: tigger.cs.colorado.edu\nOrganization: National Oceanic & Atmospheric Adminstration / Boulder Labs\nDistribution: inet\nLines: 33\n\n>Andrew Molitor (amolitor@nmsu.edu) wrote:\n>: \n>: \t1) Monitor my phonecalls.\n>: \t2) Monitor usenet.\n\nThey may collect the data, but making sense of it is another matter.\n\nOn sci.crypt I'm a graduate CS major (with strong math background) and\nexperienced programmer taking a cryptology course.  (<< keyword for\nalleged NSA filters).\n\nOn sci.skeptic I'm an ex-physics major who's a new-age flake, talking\nabout silly things like how a person's expectations colors what he\nsees.\n\nOn talk.religion.newage I'm a physics geek who enjoys squashing\ninteresting idea with WASP science, although I do write occasional\nposts showing a minimal knowledge of Zen, mythology, etc.\n\nI could go on, but I'm sure you see my point.  I'm a single person,\nbut I react differently on different groups (admittedly, in part\nbecause I'm a contrarian you always shouts \"but, on the other hand...\").\nOn top of that, I _loath_ certainty and have taken public positions\nin the past for no reason other than to challenge \"conventional wisdom\".\nI wish them luck in figuring out who \"I\" am based on that information.\n\n(They can probably figure out I'm liberal, with a technical degree\nbut humanistic interests, from a common thread throughout my posts.\nBut that describes a fair portion of the users of Internet).\n\n-- \nBear Giles\nbear@cs.colorado.edu/fsl.noaa.gov\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5245, "properties": {"category": "sci.crypt", "text": "From: bear@kestrel.fsl.noaa.gov (Bear Giles)\nSubject: Re: Fifth Amendment and Passwords\nOrganization: Forecast Systems Labs, NOAA, Boulder, CO USA\nLines: 37\n\nIn article <1993Apr15.160415.8559@magnus.acs.ohio-state.edu> ashall@magnus.acs.ohio-state.edu (Andrew S Hall) writes:\n>I am postive someone will correct me if I am wrong, but doesn't the Fifth\n>also cover not being forced to do actions that are self-incriminating?\n>e.g. The police couldn't demand that you silently take them to where the\n>body is buried or where the money is hidden.\n\nBut they can make you piss in a jar, and possibly provide DNA, semen,\nand hair samples or to undergo tests for gunpowder residues on your hand.\n\n(BTW, that was why the chemical engineer arrested in the WTC explosion\nthrust his hands into a toilet filled with urine as the cops were breaking\ndown the door -- the nitrogen in the urine would mask any residue from\nexplosives.  I found it interesting the news reported his acts, but not\nhis reasons).\n\nSomewhere, perhaps a privacy group, they discussed the legal ramifications\nof using a password like\n\n  I shot Jimmy Hoffa and his body is in a storage locker in Camden\n\na while back.  The impression I got was that real judges would dismiss\narguments that this password is self-incrimination as first-year law\nschool sophistry -- the fact that you use a statement for a password has\nno bearing on the veracity of that phrase.\n\nYou are not being asked to incrimidate yourself (e.g., \"where did you\nbury the body?\"); you are being asked to provide information necessary\nto execute a legal search warrant.  Refusing to provide the password is\nakin to refusing to provide a key to a storage locker... except that they\ncould always _force_ their way into the locker.\n\nOf course, that doesn't mean you have to help them _understand_ what\nthey find, or point out things they overlooked in their search!\n\n-- \nBear Giles\nbear@fsl.noaa.gov\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5246, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Boston University Physics Department\nLines: 23\n\nIn article <1993Apr10.124753.25195@bradford.ac.uk> L.Newnham@bradford.ac.uk (Leonard Newnham) writes:\n\n>Gregg Jaeger (jaeger@buphy.bu.edu) wrote:\n\n>>Well, it seemed slightly incongruous to find the Union Jack flying\n>>at City Hall in Belfast. \n\n>May I ask why?  It's there not because the British want it there (NI\n>is just one big expensive problem), it's there because that is\n>what the majority of the population of NI want.  Is there some\n>problem with that?\n\nThe majority of those who can open their mouths in public perhaps.\nThere seems quite alot of incentive for the British to have control\nof NI, like using the North Channel and Irish Sea as a waste dump (I was\nappalled at the dumping I saw in the harbor in Belfast). It is my\nunderstanding that quite alot of radioactivity enters the water --\nit'd be quite a problem if NI got its independence from Britain and\nthen stopped accepting the waste. Are you suggesting that British\nindustry isn't making profit off the situation as well?\n\n\nGregg\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5247, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: FL2G@gandalf.fl.bs.dlr.de (Reiner Suikat)\nSubject: TrueType font mix-up Times=>Cyrillic\nOrganization: DLR Insitute of Flight Guidance\nLines: 13\nNNTP-Posting-Host: frodo.fl.bs.dlr.de\n\nHi\nI'm having a problem with TrueType fonts in WIndows 3.1. I have installed\nthe Cyrillic fonts I found on CICA and now a strange thing happens:\nSometimes windows uses Cyrillic when its supposed to use Times Roman.\nExamples: The PC-Tools Backup (version 7.1) has one line of Cyrillic text\nin its opening banner, the next to last line. Importing a Word for Windows\ntext written in Times into WP5.2 also results in Cyrillic.\nDoes anyone have an idea where to look for the problem?\nThanks\n--\nReiner Suikat                       |   Institute for Flight Guidance                  \nfl2g@gandalf.fl.bs.dlr.de           |   German Aerospace Research Establishment (DLR)\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5248, "properties": {"category": "sci.crypt", "text": "From: bill@Celestial.COM (Bill Campbell)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Celestial Software, Mercer Island, WA\nDistribution: na\nLines: 23\n\nIn <strnlghtC5p7zp.3zM@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n\n:In article <Apr18.194927.17048@yuma.ACNS.ColoState.EDU>\n:holland@CS.ColoState.EDU (douglas craig holland) writes:\n\n:>Note that measures to protect yourself from\n:>TEMPEST surveillance are still classified, as far as I know.\n\n:I think this to be inaccurate. One can buy TEMPEST equipment commercially.\n:Even Macs.\n\nSure you can buy a TEMPEST approved Mac -- if you have enough\nmoney.  I haven't had any reason to look at this type of pricing\nfor about 10 years, but a TEMPEST rating in 1982 would raise the\nprice of a $2,495.00 Radio Shack Model III to something around\n$15,000.00.\n\nBill\n-- \nINTERNET:  bill@Celestial.COM   Bill Campbell; Celestial Software\nUUCP:   ...!thebes!camco!bill   6641 East Mercer Way\n             uunet!camco!bill   Mercer Island, WA 98040; (206) 947-5591\nSPEED COSTS MONEY -- HOW FAST DO YOU WANT TO GO?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5249, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: craycrof@ruchbah.rtp.semi.harris.com (Bob Craycroft x629)\nSubject: [Q] ASUS Motherboards?\nNntp-Posting-Host: ruchbah.rtp.semi.harris.com\nOrganization: Harris Semiconductor, Research Triangle Park, NC\nKeywords: ASUS motherboard linux\nSummary: Seeking advice/experience with ASUS motherboards, eps. wrt linux\nLines: 9\n\nI'm considering the purchase of a 486DX-33 VLB system to run linux.\nThe system has an ASUS-brand motherboard.  Anyone have any comments\non ASUS motherboards?\n\nThanks,\n-- \nBob Craycroft\t\t\t   |    craycrof@rtp.semi.harris.com\nSystems Analyst\t\t\t   |    Phone: (919) 549-3629\nHarris Semiconductor - RTP, NC USA |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5250, "properties": {"category": "sci.crypt", "text": "From: msnyder@nmt.edu (Rebecca Snyder)\nSubject: public awareness (wasRe: text of White House announcement and Q&As on clipper chip encryption)\nOrganization: New Mexico Tech\nDistribution: na\nLines: 50\n\nIn article <2076@rwing.UUCP> pat@rwing.UUCP (Pat Myrto) writes:\n>I think this is no accident.  It comes from the same philosophy that\n>the government rules/controls the people, not the people controlling\n>the government, that the unconnected citizens are not sophisticated enough\n>to know what is best for them, so the government must tell the people\n>what they need or do not need ... \"we know best...\".  And the idea that\n>that a commoner can defend himself against government eavesdropping\n>or unlawful attack is totally unacceptable to people with this outlook.\n>\n>\n>Combine this all with pushing for national identity cards with 'smart\n>chips' to encode anything they please (internal passport) under the\n>guise of streamlining the State People's Health Care System, and with\n>(you can be certain) more jewels yet to come, and one sees an extremely\n>ominous trend.  So what if \"1984\" will be ten years late... it still is\n>turning out to be an amazingly accurate prophecy... unless a LOT of\n>people wake up, and in a hurry.\n>\n>One should ALWAYS have every red warning light and bell and danger flag\n>come up when the government seeks to set itself apart in regard to\n>rights, etc.  from the unconnected/unprivileged citizen (or should we\n>now be saying 'subject' instead?)...  Why SHOULDN'T the average person\n>have a good, secure system of data security, not dependent on nebulous\n>'safeguards' for maintaining that security?  Why SHOULDN'T the average\n>person be able to defend himself from an agency gone rogue?  0I am sure\n>the Feds could break into any data they really wanted to (but it would\n>take some WORK), and using the same logic, one should not be allowed to\n>have a good safe, unless a duplicate of the key(s) or combination are\n>submitted for 'safekeeping' by the government?  I don't really see a\n>difference, philosophically.  Encrypted data sure won't evaporate, not\n>with such high-tech tools as a TAPE RECORDER...\n>\n\nThe average amerikan today seems to think that the government should be\nable to eavesdrop on everyone (else).  Opinion polls show that most\npeople belive the Bill of Rights to grant too much freedom to people,\nwhen it is not identified as such (BTW, if anyone knows of a cite for that,\nI'd love to have it).  Not only does this mean that these people are \nwilling to give up everyone (else's) rights, they don't even know what \nthe Bill of Rights actually says.\n\nHow can we show the average person (not the average USENET reader) that\npeople are actually entitiled to these rights?  So many people don't\ncare if the government is taking more and more control of us all, a little \nat a time.  \n\nIf there was some sort of awareness of what the government is trying\nto do by a majority of the US population... Just think about what\ncould be accomplished - but there are so many that trust, unthinkingly,\nin whatever the media and government tell them.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5251, "properties": {"category": "rec.autos", "text": "From: tbigham@shearson.com (Tim Bigham)\nSubject: Re: Advice on BMWs and winter driving\nReply-To: tbigham@shearson.com\nOrganization: Lehman Brothers, Inc.\nLines: 26\n\nThis past winter I drove from NYC to Killington,VT 6 or 7 times in my\n1990 325i Convertible (talk about poor reputation in the snow!!)\nwith an EXCELLENT set of snow tires. I put 4 Noika NR10s on in Dec. and have been \nsure footed in some pretty severe weather conditions ever since. I've plowed through\n4 - 5 inch snow covered roads effortlessly, while other cars have been paralyzed\n(front wheel drive included).\n\nConcentrate more on \"where the rubber meets the road\" rather than driveability of cars\nin snowy conditions. Drive carefully, buy good snow tires, and most cars will perform\nadequately in less than ideal conditions.\n\nAn aside: \nI can't praise Noika NR10 snows enough. Absolutely the BEST snow tires I have ever\ndriven on. If you live in the snow belt, do yourself a favor and get a set of these\nnext winter. \n\n\nTim\n\n\n---\nTimothy J. Bigham\t\t\t| All opinions expressed above are my own\nLehman Brothers, Inc.\t\t\t| and should not be construed as those of \nAMEX Tower, World Financial Center\t| my employer.\nNew York, N.Y. \t\t\t\t| \n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5252, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Re: Fifth Amendment and Passwords\nIn-Reply-To: caronni@nessie.cs.id.ethz.ch's message of Tue, 20 Apr 1993 00:03:59 GMT\nReply-To: pmetzger@lehman.com\nOrganization: Lehman Brothers\n\t<1993Apr19.180049.20572@qualcomm.com>\n\t<1qv83m$5i2@geraldo.cc.utexas.edu>\n\t<1993Apr20.000359.20098@bernina.ethz.ch>\nLines: 21\n\n\nIn article <1993Apr20.000359.20098@bernina.ethz.ch> caronni@nessie.cs.id.ethz.ch (Germano Caronni) writes:\n\n\n   Just a question. \n   As a provider of a public BBS service - aren't you bound by law to gurantee\n   intelligble access to the data of the users on the BBS, if police comes\n   with sufficent authorisation ? I guessed this would be  a basic condition\n   for such systems. (I did run a bbs some time ago, but that was in Switzerland)\n\nYou are obliged to let the police search the equipment if they have a\nproper court order. You are under no legal obligation to keep the data\nintelligble. If you wish to run your BBS entirely with all data\nencrypted such that if the police show up they cannot read anything,\nwell, thats their problem. There are no legal restrictions on domestic\nuse of cryptography in the United States -- YET.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5253, "properties": {"category": "soc.religion.christian", "text": "From: nigel.allen@canrem.com (Nigel Allen)\nSubject: library of congress to host dead sea scroll symposium april 21-22\nLines: 96\n\n\n Library of Congress to Host Dead Sea Scroll Symposium April 21-22\n To: National and Assignment desks, Daybook Editor\n Contact: John Sullivan, 202-707-9216, or Lucy Suddreth, 202-707-9191\n          both of the Library of Congress\n\n   WASHINGTON, April 19  -- A symposium on the Dead Sea \nScrolls will be held at the Library of Congress on Wednesday,\nApril 21, and Thursday, April 22.  The two-day program, cosponsored\nby the library and Baltimore Hebrew University, with additional\nsupport from the Project Judaica Foundation, will be held in the\nlibrary's Mumford Room, sixth floor, Madison Building.\n   Seating is limited, and admission to any session of the symposium\nmust be requested in writing (see Note A).\n   The symposium will be held one week before the public opening of a\nmajor exhibition, \"Scrolls from the Dead Sea: The Ancient Library of\nQumran and Modern Scholarship,\" that opens at the Library of Congress\non April 29.  On view will be fragmentary scrolls and archaeological\nartifacts excavated at Qumran, on loan from the Israel Antiquities\nAuthority.  Approximately 50 items from Library of Congress special\ncollections will augment these materials.  The exhibition, on view in\nthe Madison Gallery, through Aug. 1, is made possible by a generous\ngift from the Project Judaica Foundation of Washington, D.C.\n   The Dead Sea Scrolls have been the focus of public and scholarly\ninterest since 1947, when they were discovered in the desert 13 miles\neast of Jerusalem.  The symposium will explore the origin and meaning\nof the scrolls and current scholarship.  Scholars from diverse\nacademic backgrounds and religious affiliations, will offer their\ndisparate views, ensuring a lively discussion.\n   The symposium schedule includes opening remarks on April 21, at\n2 p.m., by Librarian of Congress James H. Billington, and by\nDr. Norma Furst, president, Baltimore Hebrew University.  Co-chairing\nthe symposium are Joseph Baumgarten, professor of Rabbinic Literature\nand Institutions, Baltimore Hebrew University and Michael Grunberger,\nhead, Hebraic Section, Library of Congress.\n   Geza Vermes, professor emeritus of Jewish studies, Oxford\nUniversity, will give the keynote address on the current state of\nscroll research, focusing on where we stand today. On the second\nday, the closing address will be given by Shmaryahu Talmon, who will\npropose a research agenda, picking up the theme of how the Qumran\nstudies might proceed.\n   On Wednesday, April 21, other speakers will include:\n\n   -- Eugene Ulrich, professor of Hebrew Scriptures, University of\nNotre Dame and chief editor, Biblical Scrolls from Qumran, on \"The\nBible at Qumran;\"\n   -- Michael Stone, National Endowment for the Humanities\ndistinguished visiting professor of religious studies, University of\nRichmond, on \"The Dead Sea Scrolls and the Pseudepigrapha.\"\n   -- From 5 p.m. to 6:30 p.m. a special preview of the exhibition\nwill be given to symposium participants and guests.\n\n   On Thursday, April 22, beginning at 9 a.m., speakers will include:\n\n   -- Magen Broshi, curator, shrine of the Book, Israel Museum,\nJerusalem, on \"Qumran: The Archaeological Evidence;\"\n   -- P. Kyle McCarter, Albright professor of Biblical and ancient\nnear Eastern studies, The Johns Hopkins University, on \"The Copper\nScroll;\"\n   -- Lawrence H. Schiffman, professor of Hebrew and Judaic studies,\nNew York University, on \"The Dead Sea Scrolls and the History of\nJudaism;\" and\n   -- James VanderKam, professor of theology, University of Notre\nDame, on \"Messianism in the Scrolls and in Early Christianity.\"\n\n   The Thursday afternoon sessions, at 1:30 p.m., include:\n\n   -- Devorah Dimant, associate professor of Bible and Ancient Jewish\nThought, University of Haifa, on \"Qumran Manuscripts: Library of a\nJewish Community;\"\n   -- Norman Golb, Rosenberger professor of Jewish history and\ncivilization, Oriental Institute, University of Chicago, on \"The\nCurrent Status of the Jerusalem Origin of the Scrolls;\"\n   -- Shmaryahu Talmon, J.L. Magnas professor emeritus of Biblical\nstudies, Hebrew University, Jerusalem, on \"The Essential 'Commune of\nthe Renewed Covenant': How Should Qumran Studies Proceed?\" will close\nthe symposium.\n\n   There will be ample time for question and answer periods at the\nend of each session.\n\n   Also on Wednesday, April 21, at 11 a.m.:\n   The Library of Congress and The Israel Antiquities Authority\nwill hold a lecture by Esther Boyd-Alkalay, consulting conservator,\nIsrael Antiquities Authority, on \"Preserving the Dead Sea Scrolls\"\nin the Mumford Room, LM-649, James Madison Memorial Building, The\nLibrary of Congress, 101 Independence Ave., S.E., Washington, D.C.\n    ------\n   NOTE A: For more information about admission to the symposium,\nplease contact, in writing, Dr. Michael Grunberger, head, Hebraic\nSection, African and Middle Eastern Division, Library of Congress,\nWashington, D.C. 20540.\n -30-\n--\nCanada Remote Systems - Toronto, Ontario\n416-629-7000/629-7044\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5254, "properties": {"category": "soc.religion.christian", "text": "From: jenk@microsoft.com (Jen Kilmer)\nSubject: Re: sex education\nOrganization: Microsoft Corporation\nLines: 44\n\nIn article <Mar.26.02.54.26.1993.8940@athos.rutgers.edu> swansond@nextnet.ccs.csus.edu (Dennis Swanson) writes:\n>In article <Mar.22.02.52.49.1993.330@athos.rutgers.edu> heath@athena.cs.uga.edu (Terrance Heath) writes:\n>>[...]\n>>When I do programs, I spend\n>>about half the time talking about absitinence [...]\n>>I find that most people who object\n>>to sex education actually object to the teaching *anything* other than\n>>abstinencne, and that IMO is just as irresponsible as only talking\n>>about comdom use.\n>\n>I'm under the impression that most sex ed instructors and/or policy makers\n>actually object to making any more than a passing reference to abstinence,\n>wishing to spend time only on the \"realistic\" choices. \n\nIn the \"sex ed\" portion of the  high school \"health\" course I took\nin 1984, it was impressed that the only 100% positive way to *not*\nget pregnant was to *not* have sex.\n\nOther methods of contraception were discussed, in the framework of\na chart which showed both the _expected_ failure rate (theoretical,\nassumes no mistakes) and the _actual_ failure rate (based on research).\nTop of the chart was something like this:\n\n\n Method                  Expected         Actual \n ------                 Failure Rate    Failure Rate\n Abstinence                 0%              0% \n\n\nAnd NFP (Natural Family Planning) was on the bottom. The teacher even\nsaid, \"I've had some students tell me that they can't use anything for\nbirth control because they're Catholic. Well, if you're not married and\nyou're a practicing Catholic, the *top* of the list is your slot, not \nthe *bottom*.  Even if you're not religious, the top of the list is\nsafest.\"\n\nYes, this was a public school and after Dr Koop's \"failing abstinence,\nuse a condom\" statement on the prevention of AIDS.\n\n-jen\n\n-- \n\n#include <stdisclaimer>  //  jenk@microsoft.com  // msdos testing\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5255, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Re: Lezgians Astir in Azerbaijan and Daghestan\nKeywords: pis bogaz \nOrganization: S.D.P.A. Center for Regional Studies\nLines: 38\n\nIn article <94492@hydra.gatech.EDU> gt1091a@prism.gatech.EDU (gt1091a gt1091a \nKAAN,TIMUCIN) wrote:\n\n[KT] HELLO, shit face david, I see that you are still around. I dont want to \n[KT] see your shitty writings posted here man. I told you.\n\nSo ... close your eyes and walk away.\n\n[KT] You are getting itchy as your fucking country.\n\nI have been defending the history of the Armenians on this network for over\nsix years. I have seen the likes of you enter his forum, make fools of\nthemselves, and \"simply vanish\" as did the Armenians in 1915!  \n\n[KT] Hey , and dont give me that freedom of speach bullshit once more.\n\nRealize sir, you are not in Turkey! In the USA freedom of speech is not\nconsidered \"bullshit\". It is because of such freedoms that Turks like yourself\nare allowed to attend Georgia Tech.\n\n[KT] Because your freedom has ended when you started writing things about my \n[KT] people. And try to translate this \"ebenin donu butti kafa David.\".\n\nWhat's the problem? If you can't stand the heat -- leave! Your government\nmurdered 1.5 million Armenians and you would have me stay quiet to suit your\npersonal fancy or some fascist fetish regarding the greatness of Turkey! Well, \nthat is simply too bad. \n\n[KT] BYE, ANACIM HADE.\n[KT] TIMUCIN\n\nPis bogaz!\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"Armenia has not learned a lesson in\nS.D.P.A. Center for Regional Studies |  Anatolia and has forgotten the \nP.O. Box 382761                      |  punishment inflicted on it.\"  4/14/93\nCambridge, MA 02238                  |   -- Late Turkish President Turgut Ozal \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5256, "properties": {"category": "talk.religion.misc", "text": "From: pmy@vivaldi.acc.virginia.edu (Pete Yadlowsky)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: University of Virginia\nLines: 16\n\nBill Gripp writes\n\n>>Anyway, I've often wondered what business followers of Christ would have\n>>with weapons.\n\n>FYI, these people were not \"followers of Christ\".  David Koresh was\n>their messiah.\n\nok, but didn't Jesus figure somewhere into their beliefs? Anyway, my\noriginal question regarding christians and weaponry still stands. \n\n--\nPeter M. Yadlowsky              |  Wake! The sky is light!\nAcademic Computing Center       | Let us to the Net again...\nUniversity of Virginia          |    Companion keyboard.\npmy@Virginia.EDU                |                      - after Basho\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5257, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bishop@baeyer.chem.fsu.edu (Greg Bishop)\nSubject: RE Diamond SS 24X\nOrganization: Physics Department, FSU\nNews-Software: VAX/VMS VNEWS         \nReply-To: bishop@baeyer.chem.fsu.edu\nLines: 25\n\n>Has anyone experienced a faint shadow at all resolutions using this\n>card. Is only in Windows. I have replaced card and am waiting on \n>latest drivers. Also have experienced General Protection Fault Errors\n>in WSPDPSF.DRV on Winword Tools Option menu and in WINFAX setup.\n>I had a ATI Ultra but was getting Genral Protection Fault errors\n>in an SPSS application. These card manufactures must have terrible\n>quality control to let products on the market with so many bugs.\n>What a hassle. Running on Gateway 2000 DX2/50.\n>Thx Dave L\n\nI have used both version 1.17 drivers for Win 3.1 and the new 2.03 drivers.\nI have had none of these problems.  No GPF's at all.  I have a feeling that\nyour problems are not with the card or drivers.  The ATI Ultra drivers are\nconsidered some of the most reliable on the market, and the SS 24X ones \nseem quite good as well.  Maybe you should check BIOS problems in your\nGateway.  I know a few people with Gateway DX2's, and all of them have\nfound some problem or other with compatibility -- especially with graphics.\n\nThe only GPF's I have ever had can be directly attributable to using/\nabusing applications.  I even got the newest drivers from Diamond when \npeople started complaining.  I still only have one small problem with\nthem, and it is that the hardware cursor is slightly jumpy during writes/\nreads to the swap file.  \n\nGreg Bishop.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5258, "properties": {"category": "talk.politics.guns", "text": "From: kdw@icd.ab.com (Kenneth D. Whitehead)\nSubject: Letter to the President\nNntp-Posting-Host: sora.icd.ab.com\nOrganization: Allen-Bradley Company, Inc.\nLines: 46\n\nHere's a copy of a letter I'm e-mailing to the Slickster at\nhis address of 75300.3115@compuserve.com:\n\n____________________________________________________________________________\n\nTo: William J. Clinton\n    President of the United States of America\n\nMr. President:\n\nI am writing to express my utter outrage at the conduct of various\ngovernment agencies in regards to the tragedy in Waco.  I DEMAND\nthe dismissal or resignation of Lloyd Bensen, Secretary of the Treasury,\nwho bears responsibility for the initial helicopter and grenade attack \nby the ATF against the Branch Davidians, and of Janet Reno, who authorized \nthe final assault on the very day that we were commemorating the Warsaw\nghetto revolt.  And I would truly appreciate it if you would make\nsure something like this never happens again on your watch.\n\nRespectfully yours,\n\nKenneth D. Whitehead\n\n___________________________________________________________________________\n\n\nGet involved, gang.  It's your Republic.  Let's take it back.\n\n\n**************************************************************************\n*   I will be much more willing to believe the Government's side of the  *\n*   Waco story AFTER we are allowed to hear from the survivors.  So far, *\n*   all we've gotten has been censored by the very people who have the   *\n*   most to cover up.  And I'd REALLY like to know how they got the      *\n*   press, who complained so loudly about being kept off the front lines *\n*   during the Gulf War, be such obedient lap dogs in Waco...  Kind of   *\n*   makes me wonder if this so-called \"freedom of the press\" isn't       *\n*   highly overrated.                                                    *\n**************************************************************************\nKen Whitehead (kdw@odin.icd.ab.com)\n\n\n\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5259, "properties": {"category": "talk.politics.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: Top Ten Responses to Ed's Top Ten Lists\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 16\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, mconners@magnus.acs.ohio-state.edu (Michael R Conners) says:\n\n>In article <C4zrEH.C7s@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) write\n>s:\n>\n>The real question: Should the Feds bail-out Steve Jobs & NeXT (a la Chrysler)\n>so that important manufacturing jobs wouldn't be lost?\n\n\n      No.  The REAL question:  Should the Feds bail-out IBM ( a la Chrysler )\n  so that important $80K manufacturing jobs wouldn't be lost?\n\n       It could be part of the \"Jobs Bill\"\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.251+0000", "event": "documents", "entityId": 5260, "properties": {"category": "misc.forsale", "text": "From: jrm@elm.circa.ufl.edu (Jeff Mason)\nSubject: Marvel, DC, Valiant, Image, etc.. For Sale\nOrganization: Univ. of Florida Psychology Dept.\nLines: 460\nNNTP-Posting-Host: elm.circa.ufl.edu\n\nUpdated April 17, 1993.  \n\nTITLE                                                   PRICE   \n--------------------------------------------------------------\nAlpha Flight 13 (Wolverine appears)                   \t$ 8.40 \n\t     50 (Double Size)\t\t\t\t$ 1.05\n\t     51 (Jim Lee's first work at Marvel)\t$ 6.30\nAliens 1 (1st app Aliens in comics, 1st prnt, May 1988)\t$23.10\nAmazing Spider-Man 128 (3rd Vulture)                    $15.00\n                136 (Intro new Green Goblin)            $22.00\n                137 (Green Goblin appears)              $14.00\n                180 (Green Goblin appears)              $11.00\n                238 (1st appearance Hobgoblin)          $60.00\n                250 (Hobgoblin appears)                 $ 8.40\n                267 (Peter David script, Human Torch)   $ 2.45\n                275 (r/origin Spiderman, Hobgoblin)     $ 8.40\n                276 (Hobgoblin appears)                 $ 6.30\n                284 (Punisher, Hobgoblin appear)        $ 6.30\n                291 (Spiderslayer appears)              $ 3.15\n                293 (Kraven appears)                    $ 5.60\n                294 (Kraven appears)                    $ 5.60\n                306 (Todd McFarlane)                    $ 7.00\n                312 (Hobgoblin vs Green Goblin)         $12.60\n                315 (Venom appears)                     $10.50\n\t\t320 (Todd McFarlane art)\t\t$ 4.90\n\t\t321 (Todd McFarlane art)\t\t$ 4.90\n                323 (Silver Sable, Paladin, C. America) $ 4.90\n\t\t324 (Sabretooth appears)\t\t$ 8.40\n                325 (Red Skull, Captain America)        $ 4.90\n                328 (Hulk appears, last McFarlane)      $ 5.25\n                330 (Punisher appears)                  $ 2.80\n                331 (Punisher appears)                  $ 2.80\n                337 (Hobgoblin appears)                 $ 2.45\n\t\t338\t\t\t\t\t$ 1.75\n\t\t342\t\t\t\t\t$ 1.75\n\t\t343\t\t\t\t\t$ 1.75\n                344 (Intro Cletus Kassady - Carnage)    $ 4.90\n\t\t346 (Venom appears)\t\t\t$ 4.90\n\t\t347 (Venom appears)\t\t\t$ 4.90\n\t\t348\t\t\t\t\t$ 1.40\n\t\t349\t\t\t\t\t$ 1.40\n\t\t350 (52 pages)\t\t\t\t$ 2.10\n\t\t351\t\t\t\t\t$ 1.40\n\t\t352\t\t\t\t\t$ 1.40\n\t\t353 (Punisher, Darkbawk appear)\t\t$ 1.40\n\t\t354\t\t\t\t\t$ 1.40\n\t\t355 (Punisher appears)\t\t\t$ 1.40\n\t\t356 (Punisher appears)\t\t\t$ 1.40\n\t\t357 (Punisher appears)\t\t\t$ 1.40\n\t\t358 (Punisher appears)\t\t\t$ 1.40\n\t\t365 (1st App Spider-Man 2099, Holo-c)\t$ 4.20\n        Annual 24                                       $ 2.45\n        Annual 25 (1st solo Venom story)                $ 3.50 \n        Annual 26 (New Warriors, Venom)                 $ 3.50\nAnne Rice's Vampire Companion 1\t\t\t\t$ 5.00\nAnne Rice's Vampire Lestat 5\t\t\t\t$ 5.00\nArcher and Armstrong 1 (Frank Miller/Smith/Layton)\t$ 9.00\n\t\t     9 \t\t\t\t\t$ 2.50 \n\t\t     10\t\t\t\t\t$ 2.50\nAvengers 263 (1st appearance X-factor)                  $ 3.50\n\t 272 (Alpha Flight appears)\t\t\t$ 1.05\n\t 300 (68 Pages, new team)\t\t\t$ 1.75\n\t 306\t\t\t\t\t\t$ 0.70\n\t 324 (Alpha Flight appears)\t\t\t$ 0.70\n\t 329 (New team)\t\t\t\t\t$ 0.70\n\t Annual 15\t\t\t\t\t$ 2.45\n\t Annual 18\t\t\t\t\t$ 2.10\n\t Annual 19\t\t\t\t\t$ 1.75\nBatman Legends of the Dark Knight 1 (blue cover)        $ 3.85\n\t\t\t\t  3 \t\t\t$ 2.00\nBatman Shadow of the Bat 1 (still in polybag)           $ 5.00\nBatman Versus Predator 1 (Prestige edition, Predator)\t$ 5.00\n\t\t       1 (Prestige edition, Batman)\t$ 5.00\nBatman Year One (trade paperback, 1st printing)         $ 7.00\nBloodshot 1 (Chromium cover, BWSmith Cover/Poster)\t$ 7.00\n\t  3\t\t\t\t\t\t$ 2.50\n\t  4\t\t\t\t\t\t$ 2.50\n\t  5\t\t\t\t\t\t$ 2.50\nDaredevil 131 (Origin Bullseye)                         $16.00\n          138 (Ghost Rider, Death's Head early app)     $11.00\n          158 (Frank Miller art begins)                 $40.00\n          159 (Deathstalker appears, Frank Miller art)  $20.00\n          169 (Elektra 2nd appearance, Bullseye)        $ 5.60\n          170 (Bullseye, Kingpin appear)                $ 4.20\n          182 (Punnisher appears, Frank Miller art)     $ 8.40\n          183 (Punnisher appears, Frank Miller art)     $ 8.40\n          184 (Punnisher appears, Frank Miller art)     $ 8.40\n          196 (Wolverine appears)                       $ 8.40\nDarkhawk 2 (Spider-Man and Hobgoblin appear)            $ 7.00\nDark Horse Presents 1 (1st app Concrete, 1st printing)\t$ 8.40\n\t\t    5 (Concrete appears)\t\t$ 2.80\n\t\t    25 \t\t\t\t\t$ 2.10\n\t\t    32 (Annual)\t\t\t\t$ 2.80\n\t\t    37 \t\t\t\t\t$ 1.40\n\t\t    42 (Aliens appear)\t\t\t$ 3.50\nDazzler 1 (X-Men appear)\t\t\t\t$ 1.40\n\t40\t\t\t\t\t\t$ 0.70\n\t41\t\t\t\t\t\t$ 0.70\n\t42 (Beast appears)\t\t\t\t$ 0.70\nDeathlok 1                                              $ 2.80\nDeathstroke the Terminator 1 (1st printing)             $ 5.60\n                           2                            $ 3.50\nDefenders 125 (Intro New Defenders)                     $ 2.10\n\t  152 (Double size, X-Factor appears)\t\t$ 2.00\nDemon 13 (Lobo appears)\t\t\t\t\t$ 1.05\n      14 (Lobo appears)\t\t\t\t\t$ 1.05\n      15 (Lobo appears)\t\t\t\t\t$ 1.05\nEternal Warrior 1 (Miller cover)\t\t\t$11.00\n\t\t2 \t\t\t\t\t$ 7.00\n\t\t9\t\t\t\t\t$ 2.50\n\t\t10\t\t\t\t\t$ 2.50\n\t\t11\t\t\t\t\t$ 2.50\nFantastic Four 112 (Hulk vs. The Thing)                 $25.00\n\t       337 (Simonson art begins)\t\t$ 0.70\n\t       338 (Simonson art)\t\t\t$ 0.70\n\t       339 (Simonsom art)\t\t\t$ 0.70\n\t       344 (Simonson art)\t\t\t$ 0.70\n\t       345 (Simonson art)\t\t\t$ 0.70\n               347 (Art Adams cover art, Wolverine)     $ 3.50\n               348 (Ghost Rider/Wolverine appear)       $ 2.10\n               349 (Ghost Rider/Wolverine appear)       $ 2.10\n               350 (52 pages)                           $ 1.75\n\t       351 \t\t\t\t\t$ 0.70\n\t       352 (Simonson art)\t\t\t$ 0.70\n\t       353 (Simonson art)\t\t\t$ 0.70\n\t       354 (Simonson art)\t\t\t$ 0.70\n\t       355 \t\t\t\t\t$ 0.70\n\t       356 (Fantastic Four vs New Warriors)\t$ 0.70\n               358 (80 page 30th anniversary issue)     $ 2.25\n\t       359\t\t\t\t\t$ 0.70\n\t       360\t\t\t\t\t$ 0.70\n\t       361\t\t\t\t\t$ 0.90\n\t       362\t\t\t\t\t$ 0.90\n\t       Annual 24\t\t\t\t$ 1.40\nFlash 27\t\t\t\t\t\t$ 1.05\n      28\t\t\t\t\t\t$ 1.05\n      48\t\t\t\t\t\t$ 0.70\n      50\t\t\t\t\t\t$ 1.25\n      53 (Superman/Flash race)\t\t\t\t$ 0.70\nGhost Rider 16 (Spider-man/Hobgoblin cover and story)   $ 2.45\n            17 (Spider-man/Hobgoblin cover and story)   $ 2.45\nGhost Rider and Cable 1\t(Sam Keith cover)\t\t$ 4.00\nGhost Rider and Captain America: Fear\t\t\t$ 5.00\nGuardians of the Galaxy 25 (Prism foil cover)           $ 2.50\nHarbinger 10 (1st Appearance H.A.R.D. Corps)\t\t$ 7.00\n\t  16\t\t\t\t\t\t$ 3.00\n\t  17\t\t\t\t\t\t$ 2.50\n\t  18\t\t\t\t\t\t$ 2.50\nH.A.R.D. Corps 1 \t\t\t\t\t$ 5.00\n\t       6 \t\t\t\t\t$ 2.50\n\t       7\t\t\t\t\t$ 2.50\nHavok and Wolvreine: Meltdown 1\t\t\t\t$ 3.50\nIncredible Hulk 314 (Byrne art begins)                  $ 3.50\n                323                                     $ 1.40\n\t\t324 (1st app Grey Hulk since #1, 1962)\t$ 7.00\n                327                                     $ 1.40\n\t\t330 (1st McFarlane issue)\t\t$17.50\n\t\t331 (Grey Hulk series begins)\t\t$11.20\t\n                367 (1st Dale Keown art in Hulk)        $14.00\n\t\t372 (Green Hulk appears, Keown art)\t$12.60\n\t\t373 (Keown art)                         $ 4.20\n                376 (Keown art, Grey vs Green Hulk)     $ 4.20\n                377 (1st all new hulk, 1st prnt, Keown) $14.00\n\t\t381 (Keown c/a)\t\t\t\t$ 2.80\n                384 (Keown c/a)                         $ 2.80\n                385 (Keown c/a)                         $ 2.80\n                386 (Keown c/a)                         $ 2.80\n                387 (Keown c/a)                         $ 2.80\n                388 (Keown c/a)                         $ 2.80\n                389 (Keown c/a)                         $ 2.10\n                390 (Keown c/a)                         $ 2.80\n\t\t392 (Keown c/a)\t\t\t\t$ 2.80\n\t\t393 (Green foil stamped cover, Keown)\t$ 5.60\nInfinity Gauntlet 1 (Perez painted cover. Thanos)       $ 7.00\n                  2 (Thanos)                            $ 4.20\n                  3 (Thanos)                            $ 2.80\nJohn Byrne's Next Men 3\t\t\t\t\t$ 3.00\n                      4                                 $ 3.00\nJustice League America 46\t\t\t\t$ 0.70\n\t\t       47\t\t\t\t$ 0.70\n\t\t       50\t\t\t\t$ 1.25\n\t\t       52\t\t\t\t$ 0.70\nJustice League Quarterly 1\t\t\t\t$ 2.50\nJustice Society of America 1  (April 1991)\t\t$ 1.25\nKamandi 1 (Origin Kamandi, Kirby art)                   $25.00\n        2 (Kirby art)                                   $15.00\n        3 (Kirby art)                                   $ 9.00\n        7 (Kirby art)                                   $ 5.00\nLast Generation 1                                       $ 2.10\nMagnus Robot Fighter 21 (New direction & logo begins)\t$ 5.00\n\t\t     23\t\t\t\t\t$ 3.00\n\t\t     24\t\t\t\t\t$ 2.50\nMarc Spector Moon Knight 25 (Ghost Rider appears)\t$ 2.50\nMarvel Comics Presents 1 (Wolverine, Silver Surfer)     $ 7.00\n\t\t       2 (Wolverine, Master of KungFu)\t$ 3.50\n\t\t       3 (Wolverine, Master of KungFu)\t$ 3.50\n\t\t       4 (Wolverine, Master of KungFu)\t$ 3.50\n\t\t       5 (Wolverine, Daredevil)\t\t$ 3.50\n\t\t       6 (Wolverine, Hulk)\t\t$ 2.80\n\t\t       7 (Wolverine, Submariner)\t$ 2.80\n\t\t       10 (Wolverine, Man-Thing)\t$ 2.80\n\t\t       11 (Man-Thing, Ant-Man)\t\t$ 1.40\n\t\t       12 (Man-Thing, Colossus)\t\t$ 1.40\n\t\t       13 (Black Panther, Shanna)\t$ 1.40\n                       14 (Black Panther, Nomad)        $ 1.40\n\t\t       17 (Ron Lim art, Black Panther)\t$ 1.40\n\t\t       18 (Ron Lim art, Black Panther)\t$ 1.40\n\t\t       19 (Rob Liefeld art, Cyclops)\t$ 1.40\n\t\t       20 (Ron Lim art, Black Panther)\t$ 1.40\n\t\t       21 (Ron Lim art, Black Panther)\t$ 1.40\n\t\t       22 (Ron Lim art, Black Panther)\t$ 1.40\n                       25 (Nth Man, Havok, Blk Panther) $ 1.40\n\t\t       26 (Black Panther, Havok, Hulk)\t$ 1.40\n\t\t       27 (Black Panther, Havok)\t$ 1.40\n\t\t       28 (Black Panther, Havok)\t$ 1.40\n\t\t       29 (Black Panther, Havok)\t$ 1.40\n\t\t       30 (Black Panther, Havok)\t$ 1.40\n\t\t       31 (Erik Larsen, Excalibur)\t$ 1.40\n\t\t       42 (Wolverine)\t\t\t$ 2.10\n                       51 (Rob Liefeld, Wolverine)      $ 2.10\n                       52 (Rob Liefeld, Wolverine)      $ 2.10\n                       53 (Rob Liefeld, Silver Sable)   $ 2.10\n                       60 (Wolverine, Hulk)             $ 4.20\n                       62 (Jackson Guice, Deathlok)     $ 5.60\n                       63 (Poison, Thor, Scarlet Witch) $ 2.80\n                       64 (Mark Texiera, Ghost Rider)   $ 3.15\n                       65 (Mark Texiera, Ghost Rider)   $ 3.15\n                       66 (Mark Texiera, Ghost Rider)   $ 3.15\n                       67 (Mark Texiera, Ghost Rider)   $ 3.15 \n                       72 (B.W.Smith, Weapon X)         $ 5.60 \n\t\t       73 (B.W.Smith, Weapon X)\t\t$ 2.80\n\t\t       75 (B.W.Smith, Weapon X)\t\t$ 2.10\n\t\t       76 (B.W.Smith, Weapon X)\t\t$ 2.10\n                       77 (B.W.Smith, Weapon X,Dracula) $ 2.10 \n\t\t       80 (B.W.Smith, Weapon X)\t\t$ 2.10\n\t\t       81 (B.W.Smith, Weapon X)\t\t$ 1.75\n                       82 (B.W.Smith, Weapon X)         $ 1.75\n                       83 (B.W.Smith, Weapon X)         $ 1.75\n                       84 (B.W. Smith, Weapon X)        $ 1.75\n                       85 (1st Keith art and Jae Lee)   $ 4.20\n\t\t       88 (Keith, Wolverine, Beast)\t$ 2.80\n\t\t       97 (Ghost Rider, Cable)\t\t$ 1.40\n\t\t       104 (Wolverine, Ghost Rider)\t$ 1.05\n                       106 (Wolverine, Ghost Rider)     $ 1.05\nMaxx 1 (Sam Keith)                                      $ 3.00\nMetropol 1 (Ted McKeever)                               $ 3.00\nMighty Mouse 2\t\t\t\t\t\t$ 1.25\n\t     4\t\t\t\t\t\t$ 1.00\n\t     5\t\t\t\t\t\t$ 1.00\n\t     6\t\t\t\t\t\t$ 1.00\n\t     10\t\t\t\t\t\t$ 1.00\nMoon Knight 1 (1980)\t\t\t\t\t$ 3.00\n'Nam 6                                                  $ 1.70\n     7                                                  $ 1.70\n     52 (Frank Castle (Punisher))                       $ 3.15\nNew Mutants 18 (Intro new Warlock, Magus)               $ 6.30\n            85 (Rob Liefeld/Todd McFarlane cover)       $ 1.05\n\t    86 (McFarlane cover, 1st app Cable - cameo)\t$10.50\n            88 (Rob Liefeld, 2nd Cable)                 $14.00\n            89 (Rob Liefeld, 3rd Cable)                 $10.50\n            90 (Rob Liefeld, Sabretooth appears)        $ 8.40\n            91 (Rob Liefeld, Sabretooth appears)        $ 8.40\n\t    92 (Rob Liefeld cover)\t\t\t$ 3.50\n            93 (Rob Liefeld, Wolverine vs Cable)        $10.50 \n            94 (Rob Liefeld, Wolverine vs Cable)        $10.50\n            96 (Rob Liefeld, X-Tinction agenda)         $ 8.40 \n            97 (Rob Liefeld, Wolverine/Cable cover)     $ 8.40\n            98 (1st app Deadpool, Gideon, Domino)       $ 8.40\n\t    99 (1st app Feral of X-Force)\t\t$ 5.40 \n            100 (1st app X-Force)                       $ 6.30\n\t    Annual 4 (Evolutionary War)\t\t\t$ 2.10\n\t    Annual 5 (1st Liefeld art on New Mutants)\t$12.60\n\t    Annual 6\t\t\t\t\t$ 1.40\n            Annual 7 (2nd app X-Force)                  $ 8.40\n\t    Summer Special 1 (Art Adams art)\t\t$ 2.10\nOlympians 1 (McFarlane)                                 $ 2.80\nOmega Men 3 (1st appearance Lobo)                       $ 7.00\n          10 (1st full Lobo story)                      $ 7.00\n          Annual 1                                      $ 1.05\n                 2                                      $ 1.05\nPower Man & Iron Fist 78 (3rd appearance Sabretooth)    $25.00\n                      84 (4th appearance Sabretooth)    $20.00\nPower Pack 27 (Wolverine and Sabretooth appear)         $ 7.00\nPredator: Big Game 3 (Contains trading cards)           $ 2.10\nPunisher 9 (Wilce Portacio)                             $ 7.70\nPunisher and Captain America: Blood and Glory 1\t\t$ 5.00\n\t\t\t\t\t      2 \t$ 5.00\n\t\t\t\t\t      3\t\t$ 5.00\nPunisher P.O.V 1 (Starlin script, Wrightson art)        $ 5.00\n               2 (Starlin script, Wrightson art)        $ 5.00\n               3 (Starlin script, Wrightson art)        $ 5.00\nPunisher War Journal 16 (Jim Lee art)\t\t\t$ 3.50 \n                     29 (Ghost Rider appears)           $ 1.75\n                     30 (Ghost Rider appears)           $ 1.75\n                     31                                 $ 1.25\n                     32                                 $ 1.25\n                     35                                 $ 1.25\n                     36                                 $ 1.25 \n                     38                                 $ 1.25\n                     39                                 $ 1.25\n                     40                                 $ 1.25\nPunisher War Zone 1 (Die-cut cover)                     $ 2.45\n                  2                                     $ 1.75\nRagman 1 (Pat Broderick, Origin Ragman)                 $ 3.00\nRocketeer Special Edition (Dave Stevens art, 1984)\t$ 7.00 \nShadowman 13\t\t\t\t\t\t$ 2.50\n\t  14\t\t\t\t\t\t$ 2.50\nSimpsons Comics and Stories 1 (Polybagged special ed.)\t$10.00\nSolar Man of the Atom 18\t\t\t\t$ 3.00\n\t\t      19\t\t\t\t$ 2.75\n\t\t      20\t\t\t\t$ 2.75\n\t\t      21\t\t\t\t$ 2.50\n\t\t      22\t\t\t\t$ 2.50\nSpectacular Spider-Man 81 (Punisher appears)            $ 9.80\n                       93 (Answer appears)              $ 2.10\n                       94 (Cloak and Dagger appear)     $ 2.10\n                       95 (Cloak and Dagger appear)     $ 2.10\n                       99 (Spot appears)                $ 2.10\n                       116 (Sabretooth appears)         $ 3.50\n                       117 (Sabretooth appears)         $ 3.50\n                       119 (Sabretooth appears)         $ 3.50\n                       124 (Dr. Octopus appears)        $ 1.75\n                       130 (Hobgoblin appears)          $ 2.80\n                       131 (Kraven appears)             $ 4.20\n                       132 (Kraven appears)             $ 3.50\n                       140 (Punisher appears)           $ 2.10\n                       142 (Punisher appears)           $ 3.50\n                       143 (Punisher appears)           $ 3.50\n                       147 (1st app New Hobgoblin)      $14.00\n                       152 (Origin Lobo Bros, Punisher) $ 1.40\n\t\t       157\t\t\t\t$ 1.40\n\t\t       158 (Spider-Man gets new powers)\t$ 8.40\n\t\t       159 (Cosmic Spider-Man appears)\t$ 5.60\n\t\t       160\t\t\t\t$ 1.05\n                       189 (1st ed Hologram, Hobgoblin) $ 5.60\n                       Annual 10 (McFarlane story)      $ 1.75\nSpider-Man 1 (Gold edition, direct sale)                $ 3.50\n           1 (Regular edition, green, unbagged)         $ 3.50      \n           5 (Lizard, Calypso appear, McFarlane)        $ 2.80\n           6 (Hobgoblin, Ghost Rider appear)            $ 4.20\n           7 (Hobgoblin, Ghost Rider appear)            $ 4.20\n           13 (Black costume returns)                   $ 3.50\n           14 (Black costume, Morbius appear)           $ 5.00\n           16 (McFarlane/Liefeld art, X-Force appears)  $ 3.00\n           18 (Sinister Six, Hulk appear)               $ 2.00\n           19 (Hulk, Deathlok appear)                   $ 2.00\n\t   26 (Origin retold, hologram cover)\t\t$ 3.00\nStar Trek the Next Generation 1 (Feb 1988, DC mini)     $ 7.00 \nStar Trek the Next Generation 1 (Oct 1989, DC comics)   $ 6.30\n                              2                         $ 4.20\nStrange Adventures (dozens, but in varying high grades) ASK\nSwamp Thing 72                                          $ 1.25\n            73 (John Constantine appears)               $ 1.25\n            Annual 3                                    $ 1.40\nTales of the Teen Titans 44 (Deathstroke app/orogin)    $ 5.60\nTerminator 1 (Dark Horse)                               $ 4.20\nTerminator: Secondary Objectives 1                      $ 2.10\nTerminator 2 Judgement Day 1                            $ 1.00\nThor 374 (Mutant Massacre, X-Factor, Sabretooth app)    $ 5.60\n     432 (Eric Masterson becomes new Thor)              $ 2.10\nWarlock and the Infinity Watch 2 (Starlin scripts)\t$ 2.80\n\t\t\t       3\t\t\t$ 2.10\n                               4                        $ 1.60\n\t\t\t       5 \t\t\t$ 1.60\n\t\t\t       6\t\t\t$ 1.60\n                               7                        $ 1.25\n                               8                        $ 1.25\n                               9 (Gamora vs Thanos)     $ 1.25\nWeb of Spider-Man 2\t\t\t\t\t$ 4.90\n\t\t  3\t\t\t\t\t$ 4.90\n\t\t  4\t\t\t\t\t$ 3.50\n\t\t  5\t\t\t\t\t$ 3.50\n\t\t  8 (Thunder appears)                   $ 3.15\n                  16 (Magma appears)                    $ 2.30\n                  18                                    $ 2.30\n                  20                                    $ 2.30\n                  21                                    $ 2.30\n                  29 (Hobgoblin, Wolverine appear)      $ 9.10\n                  30 (Origin Rose, Hobgoblin appears)   $ 8.40\n\t\t  47 (Hobgoblin appears)\t\t$ 1.00\n\t\t  52\t\t\t\t\t$ 1.00\n\t\t  66 (Green Goblin as super-hero)\t$ 1.40\n\t\t  67 (Green Goblin as super-hero)\t$ 1.40\n\t\t  68 \t\t\t\t\t$ 1.00\n\t\t  71 \t\t\t\t\t$ 1.00\n\t\t  72 \t\t\t\t\t$ 1.00\n\t\t  73\t\t\t\t\t$ 1.00\n\t\t  74\t\t\t\t\t$ 1.00\n\t\t  75\t\t\t\t\t$ 1.00\n\t\t  76\t\t\t\t\t$ 1.00\n\t\t  77\t\t\t\t\t$ 1.00\n\t\t  78\t\t\t\t\t$ 1.00\n\t\t  79\t\t\t\t\t$ 1.00\n\t\t  80\t\t\t\t\t$ 1.00\n\t\t  81\t\t\t\t\t$ 1.00\n\t\t  82\t\t\t\t\t$ 1.00\n\t\t  83\t\t\t\t\t$ 1.00\n\t\t  84 (Rose & Hobgoblin story)\t\t$ 1.00\n\t\t  85 (Rose & Hobgoblin story)\t\t$ 1.00\n\t\t  86 (Rose & Hobgoblin story)\t\t$ 1.00\n\t\t  87 (Rose & Hobgoblin story)\t\t$ 1.00\n\t\t  90 (Hologram cover, polybagged)\t$ 4.20\n\t\t  91\t\t\t\t\t$ 1.00\n\t\t  Annual 3\t\t\t\t$ 2.00\nWerewolf by Night 33 (2nd appearance Moon Knight)       $20.00\n                  37 (Moon Knight appears)              $ 5.00\nWolverine 10 (Before claws, 1st battle with Sabretooth)\t$16.80\n\t  41 (Sabretooth claims to be Wolverine's dad)\t$ 7.00\n\t  42 (Sabretooth proven not to be his dad)\t$ 3.50\n\t  43 (Sabretooth/Wolverine saga concludes)\t$ 2.80\nWolverine 1 (1982 mini-series, Miller art)\t\t$21.00\nWonder Woman 267 (Return of Animal Man)                 $13.00\n             Annual 1                                   $ 2.00\n                    2                                   $ 2.00    \nX-Factor 47                                             $ 1.05\n         51 (Sabretooth appears)                        $ 3.50\n         52 (Sabretooth appears)                        $ 3.50\n         53 (Sabretooth appears)                        $ 3.50\n\t 57 \t\t\t\t\t\t$ 1.00\n\t 62 (X-Tinction Agenda, Jim Lee cover)\t\t$ 4.20\n\t 63 (Whilce Portacio art begins)\t\t$ 4.20 \n         69 (Whilce Portacio art)                       $ 1.40\n         70 (Last \"Old Team\" issue)                     $ 1.40\n         Annual 6 (New Warriors, X-Force appear)        $ 1.75\nX-Force 1 (Signed by Liefeld, Bagged, X-Force card)     $25.00\n        1 (Signed by Liefeld, Bagged, Shatterstar card) $15.00\n        1 (Signed by Liefeld, Bagged, Deadpool card)    $15.00\n        1 (Signed by Liefeld, Bagged, Sunspot/Gideon)   $15.00\n        1 (Bagged, Cable card)                          $ 4.20\nX-Men 210 (Mutant Massacre, Intro Marauders)            $12.60\n      211 (Mutant Massacre, Marauders appear)           $12.60\n      212 (Wolverine battles Sabretooth)                $22.00\n      213 (Wolverine battles Sabretooth)                $22.00\n      218 (Art Adams cover)\t\t\t\t$ 2.80\n      226 (Fall of the mutants)\t\t\t\t$ 5.60\n      239 (Inferno)\t\t\t\t\t$ 2.80\n      245 (Rob Liefeld art)\t\t\t\t$ 2.10\n      253 (All new X-Men begin)\t\t\t\t$ 2.80\n      267 (Jim Lee art series begins)\t\t\t$ 8.40\n      276 (Jim Lee art)\t\t\t\t\t$ 1.05\n      277 (Last Jim Lee art)\t\t\t\t$ 1.05\n      279\t\t\t\t\t\t$ 1.05\n      280\t\t\t\t\t\t$ 1.05\n      281 (New X-Men team, 1st printing)\t\t$ 4.20\nX-O Manowar 13\t\t\t\t\t\t$ 3.00\n            15\t\t\t\t\t\t$ 3.00\n\t    16\t\t\t\t\t\t$ 3.00\n\nAll comics are in near mint to mint condition, are bagged in shiny \npolypropylene bags, and backed with white acid free boards.  Shipping is\n$1.50 for one book, $3.00 for more than one book, or free if you order \na large enough amount of stuff.  I am willing to haggle.\n\nI have thousands and thousands of other comics, so please let me know what \nyou've been looking for, and maybe I can help.  Some titles I have posted\nhere don't list every issue I have of that title, I tried to save space.\n-- \nGeoffrey R. Mason\t\t|\tjrm@elm.circa.ufl.edu\nDepartment of Psychology\t|\tmason@webb.psych.ufl.edu\nUniversity of Florida\t\t|\tprothan@maple.circa.ufl.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5261, "properties": {"category": "rec.sport.baseball", "text": "From: spl2@po.cwru.edu (Sam Lubchansky)\nSubject: Re: Joe Robbie Stadium \"NOT FOR BASEBALL\"\nArticle-I.D.: po.spl2.114.734131045\nOrganization: Case Western Reserve University\nLines: 27\nNNTP-Posting-Host: b61644.student.cwru.edu\n\nIn article <1993Apr6.025027.4846@oswego.Oswego.EDU> iacs3650@Oswego.EDU (Kevin Mundstock) writes:\n>From: iacs3650@Oswego.EDU (Kevin Mundstock)\n>Subject: Joe Robbie Stadium \"NOT FOR BASEBALL\"\n>Date: 6 Apr 93 02:50:27 GMT\n>Did anyone notice the words \"NOT FOR BASEBALL\" printed on the picture\n>of Joe Robbie Stadium in the Opening Day season preview section in USA\n>Today? Any reason given for this?\n>\n\nI would assume that the words (I saw the picture) indicated that those \nSEATS will not be available for baseball games.  If you look at the picture \nof the diamond in the stadium, in relation to the areas marked \"NOT FOR \nBASEBALL\", those seats just look terrible for watching baseball.   Now, if \nthey should happen to reach the post-season, I would imagine that they \nwould consider opening some of those seats up, but that is surely a worry \nof the future.\n\n \n\n\nSam Lubchansky          spl2@po.cwru.edu\n\n\"In the champion, people see what they'd like to be.  In the loser,\n they see what they actually are, and they treat him with scorn.\"\n\n\"Sugary condiments secure initial pleasure, but fermented grain is\n decidedly more parsimonious of time.\" \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5262, "properties": {"category": "comp.windows.x", "text": "From: ianhogg@milli.cs.umn.edu (Ian J. Hogg)\nSubject: Re: How do I find my AppContext?\nKeywords: Context, Xt, motif, application\nNntp-Posting-Host: milli.cs.umn.edu\nOrganization: University of Minnesota, Minneapolis, CSci dept.\nLines: 16\n\nIn article <1qvatv$9ic@pandora.sdsu.edu> masc0442@ucsnews.sdsu.edu (Todd Greene) writes:\n>\n>\n>Is there an Xt call to give me my application context?\n>I am fixing up an X/Motif program, and am trying to use XtAppAddTimeOut,\n>whose first argument is the app_context.  What call can I use\n>to give me this value?\n>\n\n    You can get the ApplicationContext associated with a widget by calling\n    XtWidgetToApplicationContext.\n\n--\n===============================================================================\nIan Hogg\t\t\t\t\t\tianhogg@cs.umn.edu\n                                                        (612) 424-6332\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5263, "properties": {"category": "comp.windows.x", "text": "From: cwikla@morrison.wri.com (John Cwikla)\nSubject: Pixmaps and colormaps sent through selections...\nSummary: Selections and Pixmaps/Colormaps\nKeywords: Selections\nNntp-Posting-Host: morrison.wri.com\nOrganization: Wolfram Research, Inc.\nLines: 18\n\n\n\tI want to be able to send a Pixmap from one client to the next.\nAlong with this I want to send the Colormap and foreground and\nbackground pixel values.  So far not a problem, I can do\nthis with no problem.\n\n  However, once I have the Pixmap id and the Colormap id, how\ndo I go about telling the server that the second (receiving)\nclient now wants to have associations with the two id's?\n\n\tTIA,\n\n\tJohn\n--\no  John L. Cwikla                       o                            o\no  X Programmer                         o  X was never the first     o\no  Wolfram Research, Inc.               o   letter of the alphabet   o\no  cwikla@wri.com  (217) 398-0700       o                            o\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5264, "properties": {"category": "comp.graphics", "text": "From: dgf1@quads.uchicago.edu (David Farley)\nSubject: Re: Photoshop for Windows\nReply-To: dgf1@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 25\n\nIn article <C5uHIM.JFq@rot.qc.ca> beaver@rot.qc.ca (Andre Boivert) writes:\n>\n>\n>I am looking for comments from people who have used/heard about PhotoShop\n>for Windows. Is it good? How does it compare to the Mac version? Is there\n>a lot of bugs (I heard the Windows version needs \"fine-tuning)?\n>\n>Any comments would be greatly appreciated..\n>\n>Thank you.\n>\n>Andre Boisvert\n>beaver@rot.qc.ca\n>\nAn review of both the Mac and Windows versions in either PC Week or Info\nWorld this week, said that the Windows version was considerably slower\nthan the Mac.  A more useful comparison would have been between PhotoStyler\nand PhotoShop for Windows.  David\n\n\n-- \nDavid Farley                           The University of Chicago Library\n312 702-3426                              1100 East 57th Street, JRL-210\ndgf1@midway.uchicago.edu                         Chicago, Illinois 60637\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5265, "properties": {"category": "rec.sport.baseball", "text": "From: tek2q@Virginia.EDU (\"Todd Karlin\")\nSubject: New Uniforms\nOrganization: University of Virginia\nLines: 22\n\n\tUsually one or two teams changes their logo or a minor\nuniform change per season, but the past few seasons have been\nincredible.\n\tAny thoughts on the new (old) Reds uniforms.  I\nremember seeing a Pete Rose rookie card, and unless I miss my\nguess he was wearing the exact same duds.  \n\tThe Mets (HOW ABOUT DOC'S PERFORMANCE TODAY?!!!!!) have\nreinserted the Mets patch on the shoulder, and changed the Mets\ninsgnia on the front of the jersey.  To my knowledge it is the\nfirst time that has been changed since 1962, and it reminds me\na little of the Dodger logo.  \n\tMany teams have opted for a return to a previous style\nof uniform, or at least uniforms that look more traditional.\n(Phillies, Reds, Expos, White Sox, Padres, etc.) and the once\nbright colors have been altered to gray.  The trend has also\nseen the newer baseball fields resembling the parks of the\nearly years, as opposed to the cookie-cutter saucer stadiums\nconstrucrted throughout the sixties.\n\tWith salaries now reaching unbelievable highs, no one\nin the comissioner's office, and inter-league play on the\nhorizon, it's nice to see that baseball at least looks like it\nwas meant to be. \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5266, "properties": {"category": "comp.sys.mac.hardware", "text": "From: guykuo@carson.u.washington.edu (Guy Kuo)\nSubject: SI Clock Poll - Final Call\nSummary: Final call for SI clock reports\nKeywords: SI,acceleration,clock,upgrade\nArticle-I.D.: shelley.1qvfo9INNc3s\nOrganization: University of Washington\nLines: 11\nNNTP-Posting-Host: carson.u.washington.edu\n\nA fair number of brave souls who upgraded their SI clock oscillator have\nshared their experiences for this poll. Please send a brief message detailing\nyour experiences with the procedure. Top speed attained, CPU rated speed,\nadd on cards and adapters, heat sinks, hour of usage per day, floppy disk\nfunctionality with 800 and 1.4 m floppies are especially requested.\n\nI will be summarizing in the next two days, so please add to the network\nknowledge base if you have done the clock upgrade and haven't answered this\npoll. Thanks.\n\nGuy Kuo <guykuo@u.washington.edu>\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5267, "properties": {"category": "rec.sport.baseball", "text": "From: niguma@ug.cs.dal.ca (Gord Niguma)\nSubject: Re: Notes on Jays vs. Indians Series\nNntp-Posting-Host: ug.cs.dal.ca\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nDistribution: na\nLines: 22\n\nIn <C5HpCv.4HL@andy.bgsu.edu> klopfens@andy.bgsu.edu (Bruce Klopfenstein) writes:\n\n>cmk@athena.mit.edu (Charles M Kozierok) writes:\n>> In article <1993Apr13.195301.22652@CSD-NewsHost.Stanford.EDU> nlu@Xenon.Stanford.EDU (Nelson Lu) writes:\n>> } \n>> } Guess which line is which:\n>> } \tBA\tOBP\tSLG\tAB\tH\t2B\t3B\tHR\tBB\n>> } X\t.310\t.405\t.427\t571\t177\t27\t8\t8\t87\n>> } Y\t.312\t.354\t.455\t657\t205\t32\t1\t20\t35\n\n\n>I just love how the Alomar fans left RBIs off this list.  Give me a break!\n\n  Alomar fans left RBI fans and Runs off this list because they are dependant\non the team. (To a large extent). If Frank Thomas hit first, he'd lose a LOT\nof RBI's; and anyways how many 2nd place hitters have you known to drive\nin 100 runs? Doesn't happen that often.....very unlikely with Devon White's\n~.300 OBP in front of you...\n\n\t\t\t\t\t\tGord Niguma\n\t\t\t\t\t\t(fav player: John Olerud)\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5268, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ls116@cunixa.cc.columbia.edu (Lei  Shao)\nSubject: Re: TrueType fonts that display but do not print.\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: ls116@cunixa.cc.columbia.edu (Lei  Shao)\nOrganization: Columbia University\nDistribution: na\nLines: 31\n\nIn article <1993Apr17.134725.15882@mintaka.lcs.mit.edu> avinash@silver.lcs.mit.edu (Avinash Chopde) writes:\n>I just installed a new TrueType font under MS-Windows 3.1\n>but though all the applications display the font correctly on the\n>screen, quite a few of them fail to print out the document correctly\n>(on a LaserJet 4 - non-PostScript printer).\n>\n>When I use the font in CorelDRAW, the document prints correctly, so I assume\n>CorelDRAW knows that the font has to be downloaded to the printer.\n>\n>But when I use the Windows accessory Write, the printer prints square\n>boxes in place of the characters of the new font. Yet, Write does\n>display the font correctly on the screen.\n>\n>I looked through all the Windows and LaserJet manuals, but got nowhere.\n>All of them just make the statement that TrueType fonts will print\n>exactly as you see them on the screen---so I assume Windows knows that a font\n>has to be downloaded automatically---but, how to make it do that????\n>\n>Appreciate any help....\n\n\tI assume you're using the driver available from cica (hp4-v108.zip).\nBring up the setup screen of the printer through control panel. Click on the\n\"Options\" button brings up another screen of choices. Change the \"Graphics\nMode\" from \"HP-GL/2\" to \"Raster\" and check the box \"Print Truetype as graphics\n(this is only available when you choose \"Raster\"). Now you should be able to\nprint all your truetype fonts correctly. Good luck.\n\n\nLei Shao\nls116@cunixa.cc.columbia.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5269, "properties": {"category": "rec.sport.baseball", "text": "From: tek2q@Virginia.EDU (\"Todd Karlin\")\nSubject: Re: THE METS ARE RAPISTS!!\nOrganization: University of Virginia\nLines: 34\n\n  writes:\n> In the new book about the Mets it talks about how they like to rape little\n> girls before games.  Sick jerks!!!\n>                                     -Max\n\n\n\tIs this the book by Bob Klapisch (spelling?), \"The\nWorst Team Money Can Buy\"?  If it is, I wouldn't give the book,\nor anything in it any value whatsoever.  Klapisch wrote the\nbook to make money (obviously) and sensational literature is\ngoing to sell a lot better than what he usually writes for the\npapers.  I'm not calling him a liar, but if there was any proof\nthat a Met player had raped a little girl before a game (let\nalone doing it on a regular basis) they would be in jail, not\nShea.\n\tFor those people who do not know what the press is like\nin New York, it is probably more cut-throat than in just about\nany other part of the U.S.  Keith Hernandez said it very well on\nESPN a couple of days ago, they would much rather mention a\nclubhouse fight, than a two-run homer in the ninth to win a\ngame.  I do not read Klapisch's news columns regularly, but I\ndo know that he has been accused before as being an instigator\nthat enjoys (hopefully for only professional reasons) to drumb\nup a news story, even if there isn't one there.  Now as far as\nthe confrontation with Bobby Bonilla a few days ago, I almost\ntotally blame Bonilla.  No matter what a member of the press\ndoes, and no matter how much of a putrid individual he might\nbe, that does not give a ballplayer the right to threaten a\njournalist.  \n\tPersonally, I always thought that a beat writer that\nalways follows a club around should report the news, but not be\nlooking to degrade a team.  I don't know whether to blame\nKlapisch, because that may be the only way to keep a job in New\nYork.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5270, "properties": {"category": "soc.religion.christian", "text": "From: littlejs@nextwork.rose-hulman.edu (Jeffrey S Little)\nSubject: Re: Revelations - BABYLON?\nReply-To: littlejs@nextwork.rose-hulman.edu (Jeffrey S Little)\nOrganization: Computer Science Department at Rose-Hulman\nLines: 38\n\nIn article <Apr.21.03.25.41.1993.1322@geneva.rutgers.edu>  \nJBUDDENBERG@vax.cns.muskingum.edu (Jimmy Buddenberg) writes:\n> \n> Hello all.  We are doing a bible study (at my college) on Revelations.  We\n> have been doing pretty good as far as getting some sort of reasonable\n> interpretation.  We are now on chapters 17 and 18 which talk about the\n> woman on the beast and the fall of Babylon.  I believe the beast is the\n> Antichrist (some may differ but it seems obvious) and the woman represents\n> Babylon which stands for Rome or the Roman Catholic Church.  What are some\n> views on this interpretation?  Is the falling Babylon in chapter 18 the same\n> Babylon in as in chapter 17?  The Catholic church?\n> Hate to step on toes.\n> thanks\n\nAn interesting interpretation of Revelation 17 and 18 has been given by  \nevangelist David Wilkerson.  I am not saying that I totally agree with his  \ninterpretation, but it is certainly believable and good food for thought.  He  \ninterprets the Babylon of Revelation 17-18 as being none other than the good  \nold U. S. of A.  That's right, America.  He supports his claim in several ways.   \nThe Babylon of Revelation is THE world leader in trade and commerce, and the  \nWHOLE WORLD wept when Babylon fell.  The American dollar, despite the Japanese  \nsuccess of the 20th century, is STILL the most sought after currency in the  \nworld.  If the U.S. were destroyed, wouldn't the whole world mourn?  The bible  \nalso talks about Babylon being a home of harlots, sin, and adultery (I am  \nparaphrasing, of course).  Babylon's sin affected, or should I say, infected,  \nthe whole world.  It doesn't take much looking to see that the U.S. is in a  \nstate of moral decay.  Hasn't the American culture and Hollywood spread the \"do  \nit if it feels good\" mentality all over the world.  I think, though, that what  \nMr. Wilkerson uses as his strongest argument is the fact that Revelation calls  \nBabylon \"Babylon the Great\" and portrays it as the most powerful nation on  \nearth.  No matter how dissatisfied you are with the state of our country, I  \ndon't think you would have too much trouble agreeing that the U.S. is STILL the  \nmost powerful nation on earth.\n\nAgain, this interpretation is not NECESSARILY my own, but I do find it worthy  \nof consideration.\n\nJeffrey Little\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5271, "properties": {"category": "rec.autos", "text": "From: c23reg@kocrsv01.delcoelect.com (Ron Gaskins)\nSubject: Re: Dumbest automotive concepts of all tim\nOriginator: c23reg@koptsw21\nKeywords: Dimmer switch location (repost)\nOrganization: Delco Electronics Corp.\nLines: 22\n\n\nIn article <1993Apr8.233443.22590@exu.ericsson.se>, exulox@exu.ericsson.se (Lasse Ohlsson, T/TDT, 1129) writes:\n> In article 23250@cas.org, sdm24@cas.org () writes:\n> >IMHO, the dumbest thing we *ever* did in copying the Japanese was moving the\n> >dimmer switch from the floor to the lever controlling the turn signal/cruise\n \nThe federal government has mandated that all passenger cars by model year\n'95 return to the floor mounted dimmer switch.\n\nA study by the National Highway Traffic Safety Administration (NHTSA) has\nfound that an unacceptable percentage of after dusk collisions were the\ndirect result of unskilled drivers getting their left foot stuck in the\nsteering wheel :-)\n\n-- \nRon Gaskins                                 c23reg@koptsw21.delcoelect.com\nAutomotive Electronic Systems               Delco Electronics\nGM Hughes Electronics, Kokomo, IN 46904  \n-- \nRon Gaskins                                 c23reg@koptsw21.delcoelect.com\nAutomotive Electronic Systems               Delco Electronics\nGM Hughes Electronics, Kokomo, IN 46904  \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5272, "properties": {"category": "comp.graphics", "text": "From: edimg@willard.atl.ga.us (Ed pimentel)\nSubject: HELP! Need JPEG / MPEG encod-decode \nOrganization: Willard's House BBS, Atlanta, GA -- +1 (404) 664 8814\nLines: 41\n\nI am involve in a Distant Learning project and am in need\nof Jpeg and Mpeg encode/decode source and object code.\nThis is a NOT-FOR PROFIT project that once completed I\nhope to release to other educational and institutional\nlearning centers.\nThis project requires that TRUE photographic images be sent\nover plain telephone lines. In addition if there is a REAL Good\nGUI lib with 3D objects and all types of menu classes that can\nbe use at both end of the transaction (Server and Terminal End)\nI would like to hear about it.\n \nWe recently posted an RFD announcing the OTG (Open Telematic Group)\nthat will concern itself with the developement of such application\nand that it would incorporate NAPLPS, JPEG, MPEG, Voice, IVR, FAX\nSprites, Animation(fli, flc, etc...).\nAt present only DOS and UNIX environment is being worked on and it\nour hope that we can generate enough interest where all the major\nplatform can be accomodated via a plaform independent API/TOOLKIT/SDK\nWe are of the mind that it is about time that such project and group\nbe form to deal with these issues.\nWe want to setup a repository where these files may be access such as\nSimte20 and start putting together a OTG FAQ.\nIf you have some or any information that in your opinion would be \nof interest to the OTG community and you like to see included in our\nfirst FAQ please send it email to the address below.\n \nThanks in Advance\n \nEd\nP.O. box 95901\nAtlanta Ga. 30347-0901\n(404)985-1198 zyxel 14.4\nepimntl@world.std.com \ned.pimentel@gisatl.fidonet.org\n\n\n-- \nedimg@willard.atl.ga.us (Ed pimentel)\ngatech!kd4nc!vdbsan!willard!edimg\nemory!uumind!willard!edimg\nWillard's House BBS, Atlanta, GA -- +1 (404) 664 8814\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5273, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: Background BRiefing in Vancouver 4.4.93\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 993\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n                 (Vancouver, British Columbia) \n______________________________________________________________\n\n\n                       BACKGROUND BRIEFING\n                               BY\n                 SENIOR ADMINISTRATION OFFICIALS\n\n\n                          April 4, 1993\n\t     \n                          Canada Place\n                  Vancouver, British Columbia  \n\n\n9:40 A.M. PST\n\t     \n\t     \n\t     Folks, we're about to start the BACKGROUND BRIEFING \non the aid package.\n\n\t     SENIOR ADMINISTRATION OFFICIAL:  Good morning.  The \nPresident -- President Clinton and President Yeltsin agreed \nyesterday on a series of American initiatives to support economic \nand political reform in Russia, and it's valued at $1.6 billion.  \n\n\t     Before taking your questions and running through the \nbasic outlines of this package, I want to make a few points.  \nFirst, this is the maximum that the Clinton administration can do \nwith available funds to support Russian reform.  All of the funds \nhave been allocated and appropriated by the Congress.  There is \nno need for the administration to go back to the Congress to fund \nany of these programs.  All our Fiscal Year '93 funds currently \nare available, so in effect, all of these programs can begin \ntomorrow.\n\t     \n\t     The second point is that this package is designed to \nsupport Russian reformers.  All of the initiatives in the package \nare directed at reformers and for their benefit, and all have \nbeen worked out with prior consultation with the Russian \ngovernment.\n\t     \n\t     Third, the President is determined that we will \ndeliver on these commitments this year.  The package is designed \nto maximize our ability to support reform.  In designing it we \nwanted to avoid making commitments that we could not meet, and we \nfeel very confident that we can meet all of these commitments in \nfront of you.\n\t     \n\t     Fourth, I'd like to note the special importance of \ntrade and investment.  I think it's fair to say that Russia's \ncapital and technology needs throughout the next decade extend \nwell into the hundreds of billions of dollars.  No collection of \ngovernments can meet those needs; only the private sector can do \nso.  And so the President and President Yeltsin agreed to make \ntrade and investment a major priority in the relationship.  \n\t     \n\t     They also agreed that there would be a new joint \ncommission on energy and space formed, headed on the U.S. side by \nVice President Gore; on the Russian side by Prime Minister \nChernomyrdin.  And the goal of this effort is to break through \nthe barriers to trade and investment on both sides and to promote \na vastly expanded relationship.\n\t     \n\t     If it would be helpful I'd be prepared to run down \nthe first page, which is a summary of U.S. assistance, and just \ngive you some general background on what these programs are.  \nI'll do it quickly and then I'll be glad to take questions.\n\t     \n\t     The first group of initiatives are humanitarian food \nand medical assistance.  This is part of our effort which has \nbeen underway for several years to provide basic humanitarian \ngrant food assistance so that the Russian government can assure \nthere's at least a minimal amount of bread on the shelves in the \nmajor cities.  That's $194 million in grant -- that is from Food \nfor Progress, the grant portion of Food for Progress.  We'll also \nbe continuing our grant assistance in medicines and \npharmaceutical supplies, and that's $30 million.\n\t     \n\t     The second item is concessional food sales.  As you \nknow, the United States has had a long-term grain relationship \nwith Russia.  It's important to us and it's important to Russia \nthat we continue that relationship.  The President has chosen the \nFood for Progress program which is a concessional loan program.  \nThe value over the next seven months is $700 million.  These are \nconcessional terms.  The exact terms have not been worked out, \nbut I think it's fair to say there will be a grace period on \nprincipal of six or seven years, and concessional rates \nthereafter for the life of the deal.\n\t     \n\t     The third program is a collection of private sector \nsupport.  We think this is one of the most important things we're \ngoing to do.  Privatization and the creation of small businesses \nis the number one priority of the reform government in Moscow.  \nAnd so the President has decided to create a Russian-American \nenterprise fund capitalized this year at $50 million.  And the \ngoal of this fund is to make direct loans to small businesses in \nRussia, to take equity positions in those businesses.  \n\t     \n\t     The President has also decided to create a \nprivatization fund which would work directly with the Russian \ngovernment in its priority objective of trying to convert state \nenterprises from a state-owned basis to a private basis.  He has \nalso agreed -- the President has also agreed to establish a \nEurasia foundation.  This would be a private foundation led by \nprominent Americans to fund democratization projects in Russia.\n\t     \n\t     The fourth grouping you see there in the summary \npage is democratization itself.  I think it's fair to say that \nthis administration has given a new impetus to the goal of \npursuing democratization in Russia.  You see that we have a total \nof $48 million in programs, various programs.  The detailed \ntables give an indication of some of the programs that we're \nlaunching.  \n\t     \n\t     The President is also calling for the development of \na democracy corps, which will be an overarching umbrella group to \ntry to incorporate all of the disparate private and public \nefforts now underway from the United States to support reform in \nRussia.\n\t     \n\t     The fifth program you see is Russian office of \nresettlement.  This is a new initiative created and \nconceptualized by this administration.  This is a demonstration \nproject.  What we'd like to do is work with the Russian military \nto help resettle Russian officers returning from the Baltic \nstates and other parts of the former Soviet Union.  We want to \nmake sure that we work out the best way to do that, whether it's \nwith Russian labor and Russian materials or using prefab American \nconstruction.  And so we've decided to fund on a demonstration \nbasis the construction of 450 housing units.  We'll be working \nvery closely with the Russian military on this.  And I would say \nthat we have a long-term commitment to this project.  \n\t     \n\t     The sixth area is energy in the environment.  They \nare two issues that the President feels strongly about.  Our \ninitial efforts will be feasibility studies to look into the \npossibility of enhancing their energy production, both oil and \ngas; and equally important trying to cut down on the leakages in \nthe oil and gas pipeline systems, which cause so much \nenvironmental damage.\n\t     \n\t     I've talked a little bit about trade and investment, \nabout the new group being created that the Vice President will \nchair on our side.  Secretary Ron Brown will also be cochairing \nwith Deputy Prime Minister Shohkin, a business development \ncommittee, which will work in all other sectors of the economy, \nto break down the many barriers that currently exist and impede \ntrade and investment.  We are also going to appoint a full-time \ninvestment ombudsman in the American government to work on this \nproblem full-time.  \n\t     \n\t     And the point I'd like to make here is, trade and \ninvestment in the 1990s is every bit as important, to draw an \nanalogy, as arms reductions was in the '70s and '80s.  And we \njust thought that in looking at this we needed to make a \ncommitment within our own government to have people work on it -- \nsenior people on a full-time basis, because it is terribly \nimportant.\n\t     \n\t     You'll notice that the United States is going to \nsupport Russia's membership in the GATT.  Russia has had observer \nstatus.  Russia has requested our support and, in fact, requested \nour advice in becoming a member of the GATT.  We think that the \nlong-term goal of drawing Russia into the global economy is \nparamount, a very important goal.  And that is why we are \nsupporting the membership in the GATT.  We are also supporting \ntheir access to GSP, the Generalized System of Preferences.  \n\t     \n\t     You'll note that Ex-Im has extended $82 million in \ncredit for a caterpillar deal in Siberia, that OPIC has extended \n$150 million in credits and loan guarantees for a Conoco oil \nproject.  I'd like to emphasize that we are very close to an \nagreement between Russia and the United States for a $2-billion \nframework facility through the Ex-Im Bank that would finance \nRussian purchases of American oil and gas equipment and services. \nWe think this is a very important development.  We think we'll \nget there by April 14th, which is the opening day of the Tokyo \nconference, the G-7 conference.\n\t     \n\t     Before I take any further questions, I'd like to \ndefer to my colleague, who will review the security assistance \nobjectives with you.\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Our major \nunfinished agenda with the Russians and with their counterparts \nin Ukraine, Kazakhstan and Belarus is in the area of the safe and \nsecure dismantlement of the nuclear arsenals on their territory \nunder the terms of the START I and START II agreements.   \nRecently we completed in Moscow three, I think, very important \nagreements that devote a significant chunk of Nunn-Lugar funding \nto three important programs.  The first is the program of $130 \nmillion for the strategic nuclear delivery vehicle dismantlement \nprogram.  That is for submarines, for ICBM dismantlement and for \nbomber dismantlement -- $130 million.\n\t     \n\t     The second is a $75 million tranche of funding for \nthe construction of a facility to store nuclear materials removed \nfrom the warheads as they are dismantled.  This will essentially \ncontribute to the overall design and the early phases of the \nconstruction of that storage facility.  \n\t     \n\t     And finally, a $10-million tranche of money to help \nin the establishment of a monitoring system for the nuclear \nmaterials as they are withdrawn from the weapons system.  So we \nadd that $215-million total to the extant Nunn-Lugar assistance \nwhich has been flowing -- about $150 million for some overall \nsafety improvements for various kinds of equipment and safety \nmeasures that we have been working out with the Russians over the \nlast couple of years.  \n\t     \n\t     So this is an area where we will be going a lot more \nwork with not only the Russians but with the Ukrainians, Kazhaks, \nand Belarussians.  Belarus, for example, has just, in the last \ncouple of weeks, received up to $65 million in FY'93 funds for \nsafety, security and dismantlement programs on Belarussian \nterritory.  And this was in the wake of their ratification of \nSTART I, an agreement to accede to NPT. \n\t     \n\t     So we are working very hard with all the parties to \nthe Lisbon protocols, and will continue to work very hard with \nthem.  And I look upon these three recent agreements with Russia \nas a very important step in that process.\n\t     \n\t     Q\t  The OPIC funds to -- is that for the field in \nKazhakstan -- and Conoco already signed this deal with \nKazhakstan.  Why do you feel now it is necessary -- if it's the \nsame one, why do you feel it's necessary?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  It's not the same \ndeal.  Chevron signed a deal with Kazhakstan, the Tenges oil \nfield.  This is a new investment project.  It's a polar lights \noil development and renovation project, and it's being announced \ntoday.  So it's completely new.\n\t     \n\t     Q\t  Can you tell us more about what's involved?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Yes.  Conoco, like \nother American oil companies has been searching for ways to do \ntwo things.  One, to prospect for new oil in Siberia, west \nSiberia; and two, to try to get into the business of renovating \noil wells and renovating pipelines, both oil and gas, in Russia.  \nThe objective here, obviously, is to take advantage of the \nnatural resources in Russia, increase energy production, which \nwill, in turn, increase hard currency revenues, which is what \nRussia needs.\n\t     \n\t     So we think this deal is very, very good development \nfor Russia.  The Russians do as well, and it's good for an \nAmerican company.  And the American government has played a \nleading role in pulling this together through the credit facility \nin OPIC and through the loan guarantee.\n\t     \n\t     Q\t  So it's to search and also to renovate fields \nthat are already there?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  That's right.\n\t     \n\t     Q\t  On that point, should other American companies \nexpect to get administration support for such deals, or should \nthey now go to the Ex-Im and try to get the money out of the $2 \nbillion?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Well, as you know, \nEx-Im is part of the U.S. government and various parts of the \nU.S. government have been pushing, including the State Department \nand the White House for this deal to be consummated.  And we \nthink it will.  And if we arrive at this agreement by April 14th, \nthere will be $2 billion in financing available for American \ncompanies to sell their equipment and sell their services.\n\t     \n\t     Q\t  That should take up all of the rest of the \ndeals and their won't be -- and their will or there won't be \nsupport for OPIC sort of deals such as this Conoco?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  There's a \ntremendous amount of interest on the part of American oil and gas \ncompanies to invest in Russia.  We think that the Ex-Im oil and \ngas facility, the $2-billion facility, once it is concluded, will \nsoak up a lot of that interest.  But I think the interest may \neven extend beyond that.  And if so, the government will respond.\n\t     \n\t     Q\t  What's the current year budget costs of that \n$2-billion agreement should it go forward?  And is there any \ncurrent year budget costs --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  I'll have to refer \nyou to Ex-Im for that.  I don't know the details of that.\n\t     \n\t     Q\t  The concessional food sales -- is there any \ncurrent year costs to that, or is it delayed until the years in \nwhich the payments are due?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  The concessional \nfood sales are from Food for Progress, which is a USDA program.  \nUSDA has the funds, we don't need to go back to the Congress to \nexpend those funds.  There will be a hit in the budget.  I'd \nrefer you to USDA and OMB for the details on that.\n\t     \n\t     Q\t  Can you talk about the Democracy Corps?\n\t     \n\t     Q\t     and the private sector -- how many folks are \ngoing to be involved in that?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Why don't I start \nwith the Democracy Corps first.  I think the administration felt \ncoming into office that there were literally thousands of \norganization, private organizations in the United States that in \none way or another were working at the goal of trying to achieve \ndemocratization in Russia, helping on a farmer-to-farmer basis.  \nAnd there were literally 10 or 15 U.S. government agencies that \nhad a variety of programs in this area.  And so the \nadministration felt -- the President felt it was important to try \nto draw all of these initiatives together under one group to give \nsome coherence to the efforts and to give some impetus to the \nefforts.  And so this is a presidential initiative.\n\t     \n\t     It will be headed by Ambassador Tom Simons who will \nsoon take up his duties as the coordinator for U.S. assistance in \nthe former Soviet Union.  And we're very hopeful that we might \nuse this Democracy Corps not only to draw upon the resources of \nour own government, but the resources of the American private \nsector and schools and communities across the nation.\n\t     \n\t     Q\t     any kind of commitment yet, any kind of word \nyet on FY'94, and any new money that needs to be appropriated \nbesides the $300 million the President talked about?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  The administration \nis requesting additional funds in FY'94 of $700 million.  What \nthe President has done this weekend is to consult really \nintensively yesterday with President Yeltsin about additional \nmeasures the United States could take in some of these areas to \nsupport reform.  He'll be consulting with the Congress.  When he \nreturns to Washington, he'll be consulting also with the other \nally governments, and we'll make a decision at that time.\n\t     \n\t     Q\t  Two questions about the $700 billion \nagricultural money.  First of all, I thought it was the sort of \nconsensus that what Russia did not need was more loans for food.  \nSo why did you decide to do it that way?  Secondly, could you \nexplain -- agriculture has been stopped from making further loans \nfor food because of Russia's inability to pay.  How does this fit \ninto that situation?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  As you know, the \nUnited States for a long time has been a major supplier of grains \nand food commodities, agricultural products to Russia.  I think \nbetween 1991 and '92 we had extended -- a little bit of history \nhere -- about $5.5 billion in credits, credit guarantees, through \nthe Commodity Credit Corporation.  That was the principal vehicle \nto ensure the sale of American grain products.  On December 1 of \nlast year, '92, the Russian government stopped its payments on \nthat program.  They are now in arrears to us on that program, and \ntherefore, by law, the United States cannot continue that \nprogram.  And so the President, working with Secretary Espy and \nother officials in the Cabinet, looked for other ways that we \ncould promote American grain sales.  \n\t     \n\t     And I think we have two ways to do that.  We've \nannounced today $194 million in grant food assistance through the \nFood for Progress program.  But we do not have sufficient \nauthority to spend $700 million in grant food, and so we looked \nfor a concessional loan program.  \n\t     \n\t     I think everybody agrees that Russia -- that a \nshort-term loan program for Russia would not make sense now, but \na long-term concessional loan program would.  And that is what \nthis program is.  It will provide, once the final details are \nworked out, for a six to seven-year grace period on payments of \nprincipal.  And then from years seven through 15, which is the \nlife of the deal, it will provide for concessional rates of \ninterest -- generally around three to four percent.  And so we \nbelieve and the Russian government believes this is a good deal \nfor them because it will avoid the imperative of early payments \nand put them into the out years, but it will also continue this \nvery important grain relationship, which is important for them, \nand it's important for the American farm community.\n\t     \n\t     Q\t  I gather from what you say that this could make \nit explicit -- the Russians' failure to pay the interest on ECC \nloan does not in any way affect this kind of loan going through, \nis that right? \n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Let me be explicit \nabout that.  We are prevented under the law to from continuing  \nthe Commodity Credit Corporation short-term credit program \nbecause of Russia's arrearages to the United States.  All of you \nknow about those arrearages.  They total about, I think, around \n$640 million.  USDA can give you an exact figure.  So having \ntaken that into consideration and wanting to preserve American \nmarket share and a long-term grain relationship, wanting to \nrespond to a specific request from the Russian government for \nmajor food assistance, knowing that we couldn't take it from the \ngrant programs because we don't have sufficient authority there, \nwe looked at Food for Progress, which is a program we've used to \ngreat effect in other parts of the world.  And we consulted with \nthe Russian government and arrived at this solution.  \n\t     \n\t     I think the Russians are pleased because it provides \nthem with the food, but also gives them a little bit of relief on \nthe short-term payments.\n\t     \n\t     Q\t  Where do those funds actually come from?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  They come from the \nFood for Progress program, which is a program under USDA's \nauthority.  USDA has the authority to spend these funds.  We do \nnot need to go back to the Congress for these funds.  And I want \nto make that general point again:  Everything in this package, \nthe $1.6 billion package, comprises funds that have already been \nallocated and appropriated by the Congress.  The administration \ncan begin to spend these monies tomorrow.  And it's very \nimportant in our eyes that we expend all the funds this year, \nthat we meet these commitments.  And we are confident we'll be \nable to do so.\n\t     \n\t     Q\t  How did you arrive at the figure of $700 \nmillion -- does that max out that program, or did you actually \nhave a range from 0 to --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  There's a reason \nfor it.  The reason was that the Russian government told us \nthat's about the amount of grain that they needed between now and \nharvest time.  And so the idea is that we would begin the \nshipments probably $100 million per month from now until the \nharvest in the autumn, at which time Russia won't require the \nsame level of food imports from the West.\n\t     \n\t     Q\t  I would imagine there's going to be some \nconsiderable envy and jealousy on the part of some of the other \nrepublics because of the size and the scope of this with Russia.  \nHave you given any consideration to advancing negotiations for \nthe same kinds of projects with the Ukraine, with Georgia , with \nsome of the other republics?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL: Yes, we're very \nconscience of the fact that we also have an interest in extending \nAmerican support to the 11 other countries of the former Soviet \nUnion.  We have told ourselves, and we have planned that in the \narea of technical assistance, the grant technical assistance that \nyou see, roughly 50 percent of the funding will go to Russia and \nroughly 50 percent to the other countries. \n\t     \n\t     In the area of food sales, we have been active with \nUkraine, in grant food assistance with Georgia and Armenia.  We \nwill continue that.  And I think it's fair to say that after this \nsummit we will go back and look at all of our programs with the \nother countries to ensure that they are adequate and they are \nproductive and they're hard-hitting.\n\t     \n\t     Q\t  Has anything happened at the summit to lead \nAmerican energy companies and other companies to believe that \nRussia is going to be more user-friendly toward them in terms of \ntaxing, legalities, bureaucracy?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Well, one of our \nprimary objectives coming into this summit was to highlight,  not \nonly the economic agenda, but also trade and investment.  And I'd \nlike to refer to the point I made at the beginning.  We're \nconvinced in talking about this problem -- the problem of how to \nsupport Russia long-term -- we're convinced that no collection of \nWestern governments have the financial resources over the next \ndecade to fuel the continuation of reform, that only the private \nsector can do that.  \n\t     \n\t     We look at our own society and we see tremendous \ncapability in resources in the oil and gas sector.  It is a very \ngood match with what the Russians need now, which is financial \ninvestment in the existing oil and gas wells and pipeline and new \ntechnology and new capital to finance new production.  \n\t     \n\t     That's what the Russian government has told us it \nwants to do, and so that's why we have made such a major emphasis \non it.  That's why trade and investment was a prominent issue on \nthe first day of these talks, and in fact, figured prominently \nlast night in the meeting between President Yeltsin and President \nClinton.  And we're hoping that together we might send a strong \nsignal to the American business community that we support their \nefforts to invest in Russia, that the United States, through Ex-\nIm and OPEC and the Department of Commerce, will be there to \nsupport them.\n\t     \n\t     Q\t  My question is, is Yeltsin in any position to \ndeliver on making Russia a more --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  We think he is.  I \nwould note that President Yeltsin's Prime Minister, Mr. \nChernomyrdin, worked for 30 years in the Russian oil and gas \nsector.  He will now chair a high-level commission with the Vice \nPresident, Vice President Gore, to try to break through the \nbarriers that currently exist to Western investment in the oil \nand gas sector.  We believe we have a commitment to make that \ncommittee an important committee.  And we're looking forward to \nthe work.\n\t     \n\t     Q\t  What type of mechanism is already in place to \nadminister the private sector portion of the program?  And will \nthe U.S. be directly involved in the tail end of distribution of \nthe actual funds or is the money simply turned over to the \nRussian government for distribution at their will?\n\t     \t    \n\t     SENIOR ADMINISTRATION OFFICIAL:  Are you talking \nabout the variety of programs listed here?  It depends on the \nprogram itself.  In most cases, though, we are either working \nthrough American PBOs or American government agencies to ensure \nthat the money obviously is well spent, that the money gets to \nthe intended source.  That's an obligation we have to the \nCongress to ensure the money is well spent and that we can \naccount for the money.  We have done that in the last couple of \nmonths intensively and we will continue to do it for each of \nthese programs.\n\t     \n\t     But they are all quite different.  For instance, in \nthe area of grant food and medical assistance, for grant food it \nis carried out through USDA and USDA accounts for the delivery of \nthe food.  For grant medical assistance, we've been working \nthrough Project Hope which is a private organization.  For the \nhousing -- for instance, the resettlement of Russian officers, \nwe'll be working with a group of American PBOs.  On some of the \ndemocratization projects, we're working directly with Russian \nprivate individuals and private foundations.  We're working with \njournalists in Russia on a media project that you may have \nnoticed.\n\t     \n\t     So we literally have here 30 to 40 different \nactivities under all these rubrics and they're all going to be \ncarried out in slightly different ways.  Some directly with the \nRussian government, some with Russian citizens.\n\t     \n\t     Q\t  The Jackson-Vanik restrictions that remain and \non the COCOM restrictions that remain, can you tell us what the \nPresident has to do on that?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Well, as George \nnoted yesterday, President Yeltsin raised these as irritants in \nthe relationship.  The President has noted that.  I think it's \nfair to say we will go back now in our own government when we \nreturn to Washington and look at both of these questions, and \nwe'll get back to the Russian government.\n\t     \n\t     Q\t  You were not prepared for these questions when \nyou got here?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  We were prepared \nfor these questions.  We've looked at them.  But we're not \nprepared to make a quick decision this weekend.  They require --\nlet me just explain, particularly on Jackson-Vanik.  They require \nconsultation with the Congress.  They require consultation with \nthe American Jewish community.  And we're very sensitive to those \nconcerns.  And so we'll want to go back and talk to them before \nwe take any action.\n\t     \n\t     Q\t  Is this package designed so that you will not \nhave to go to Congress for anything at this point?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  As I said at the \nbeginning, the advantage of this particular package is that all \nthe funds have been allocated and appropriated by the Congress.  \nSo the administration will not have to go back to the Congress to \nseek any additional authority to fund any of these efforts.  In \neffect, they can all begin tomorrow, and I know that many of the \nagencies responsible for these projects will begin tomorrow.  And \nthat's the advantage of this particular initiative.\n\t     \n\t     Q\t  If this, as the President says, is a long-term, \nlong-haul thing, and members of Congress are at this moment \nheading for Moscow, why aren't you talking about going to \nCongress and suggesting to the President of Russia that you are \nprepared to go to Congress for various things?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  I think we've been \nclear about that.  The President is discussing this weekend with \nPresident Yeltsin some additional ideas that we have for American \nfunding of additional projects, and ideas that he has.  We have a \nmajor congressional delegation that left last night, headed by \nRepresentative Gephardt and we'll want to consult with that \ndelegation and other members of Congress before doing anything.  \nAnd we'll also want to consult with our allies.  So that's where \nit stands now.\n\t     \n\t     Q\t  We've been told repeatedly that a number of \nthese items represent different or new ways of spending the money \nalready appropriated.  Could you just tick off which of these \nitems represents reprogramming or at least spending money in ways \nthat it was not previously set to be?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  I think that we've \nsaid that these are all projects that either Congress had \nallocated money for through the Freedom Support Act; there were \nsome funds that were left over from FY'92.  And this \nadministration took office and had some new ideas about how the \nfunds might be expended.\n\t     \n\t     We didn't use just the Freedom Support Act funds or \nthe FY'92 funds.  We went into some of the agency allocations --\nEx-Im, OPIC, and USDA -- and tried to look for creative ways to \nfurther our programs.\n\t     \n\t     And example of that is the Food for Progress \nconcessional loans.  We had hit a brick wall with another type of \nfunding through USDA.  We could not go forward legally, and so we \nlooked for a more creative way to ensure continued American \nmarket share and ensure continued grain sales, and we think we \nfound it.\n\t     \n\t     Q\t  Where, for example, are you getting the money \nfor this Russian officer resettlement --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  That's from the \nFreedom Support Act funds.\n\t     \n\t     Q\t  In other words, all of the money is being \ndirectly spent in new ways, so to speak --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Most of the grant \nprojects that you see -- if you look at the general chart, the \nsecond chart, it's broken down into grant and credits.  And if \nyou look under grants, the technical cooperation projects that \ntotal $281.9 million -- that is almost all Freedom Support Act \nfunding.  A little bit of it is leftover funds from fiscal year \n'92.  The Nunn-Lugar funds, of course, you know about the \nlegislative history of those funds.\n\t     \n\t     Q\t     cooperation --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  From FY '92?  I \ndon't have the exact figure.  It was not a considerable figure.\n\t     \n\t     Q\t  Could you tell us please, has anything happened \nhere this weekend that will break the log jam between Ukraine and \nRussia over START -- for START I and II as a result of what's \nhappened here --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Both presidents, \nPresident Yeltsin and President Clinton, will be discussing this \nissue this morning.  In fact, we haven't yet gotten to security \nand arms control related issues.  That will be this morning's \nsession.  I know that President Clinton will be very strongly \nreinforcing that this is a top priority for us.  We've been \ntalking to the Russians and the Ukrainians over the last couple \nof weeks about ways that we might help to facilitate the \ndiscussions between them.  Up to this point, this has been a very \nimportant negotiation that's been going on essentially between \nMoscow and Kiev.  And we are at the point now of essentially \ndiscussing with them if there are ways that we could contribute \nto this discussion, help to move things forward essentially.  \n\t     \n\t     But in terms of what is coming out of this weekend, \nI don't yet know.  In a couple hours we'll know.\n\t     \n\t     Q?\t    Just a follow-up on the financing here.  Is \nany of this robbing Peter to pay Boris -- since it's all current \nyear appropriations, have you taken it from anyplace that's been \nearmarked and put it into this fund?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  There are smoke and \nmirrors here, and I think it's an important point to note.  We \ncould have given you a page of assistance numbers that included \nout-year funding.  We're going to make a long-term commitment to \nmany of these projects -- for instance, the enterprise funds, the \nprivatization effort, the housing effort.  And we've already \ntalked to the Russians about our long-term commitment.  \n\t     \n\t     We could have put in really big numbers and this \ncould have been a bigger package, but we wanted to make a point:  \nThis package is FY '93.  It's funds that we have.  And we're \ngoing to do what we say we're going to do.  And the President \nfeels very strongly about that.  In the past there is a legacy \nthat the western governments, the combination of governments, put \nup large budget figures and for any number of reasons we're not \nable to meet them, we're determined, and the President is \ndetermined, to carry out every single program in this package.  \nAnd we'll do it.  \n\t     \n\t     But we do have a longer-term commitment, and that's \npart of the discussions on economics this weekend.  We're looking \nfor Russian ideas on what it is we can do to most effectively \nsupport reform.  And we've told them that we do have a commitment \non some of these programs beyond this fiscal year.\n\t     \n\t     Q\t     taken it way from any --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  No, we haven't.  \nOkay, the question is, have we reprogrammed any of these funds; \nso have we taken it from other countries to pay for programs in \nRussia?  The answer is no, we have not done so.\n\t     \n\t     Q\t  In terms of funding, there is no available \nmonies left -- and you simply find a creative way to find money \nsomewhere else.  Doesn't that, in fact, support the -- theory?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Not at all.  I \ndon't think it does.  That's a particular example, and the \nexample is grain sales.  The Commodity Credit Corporation credit \nguarantee program was short-term loans that Russia had to pay \nback within 12 to 15 months.  You all know about Russia's debt \nproblem, and Russia was unable to meet those commitments.  So we \nlooked for a way to do two things:  to meet Russia's requirement \nfor grain.  They're a net grain importer on a massive scale, and \nalso meet our objective of making sure that the American farmers \nhave a chance to sell their products to Russia.  And we simply \nlook for another way to finance that.  And we have legislative \nauthority to do it.  This program has been successful in other \nareas.  We had not tried it before in the former Soviet Union, \nbut we thought we should now.\n\t     \t  \n\t     Q\t  Isn't this really the Bush-Clinton aid package \nfor Russia, since these funds were really first derived by \ninitiatives put forward by President Bush?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  No, I don't think \nthat's a fair characterization.  A lot of these funds were \nappropriated by the U.S. Congress is 1991, in 1992.  This \nadministration took office and inherited some obligations that \nthe Bush administration had made.  But we had a long six to seven \nweek review of this program.  We decided to meet the commitments \nthat had been made by the previous administration.  \n\t     \n\t     But we have gone well beyond them in funding the \nenterprise fund, which was just an idea, but the idea had not \nbeen filled out with a program.  There was no number attached to \nit.  In grouping together some projects and trying to make them \ninto a coherent whole in the privatization effort, I would say, \nis another Clinton initiative.  \n\t     \n\t     Further, we listened to the Russian government and \nlistened to the Russian military who told us that the \nresettlement of their officers was important to them for \npolitical and economic and social reasons.  And President Clinton \nhas responded to that.  And we are making a long-term commitment \nthat beyond this demonstration project we're going to figure out \na way to do much more in trying to settle those officers.  \n\t     \n\t     I would also say that the President has given \nimpetus to all of us in the agencies to think much more broadly \nabout what it is we can do on democratization, because there we \nhave some experience and some comparative advantage that lends \nitself to the Russian experience.  And in calling for the \ncreation of a democracy corps, which is another new initiative, \nwe're hopeful that we can take the resources of the private \nsector as well as the American government, to achieve that \nobjective.  \n\t     \n\t     So I would not characterize it that way at all.  And \nas most of you know, I am a career civil servant.  I was in the \nlast administration.  I'm very familiar with what the last \nadministration did.  And I would characterize this as a Clinton \nassistance package for Russia.\n\t     \n\t     Q\t  There's been a lot of criticism that aid in the \npast has not gotten to the people.  Is there anything in this \noutside of the ombudsman, that will guarantee that this money \nwill not just disappear because it's being administered by the \nRussian government?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  I think that -- I \nknow that the President and other senior officials of our \ngovernment are concerned that American money be spent wisely and \nthat it get to the source that it's intended -- for which it's \nintended.  And so we're going to take great care -- AID and the \nState Department will take great care in making sure that the \nfunds are expended properly and that they're reaching their \nsource.\n\t     \n\t     I would not that this package is not simply a \npackage of support solely to the Russian government.  Some of \nthese projects, especially in democratization and exchanges, are \ngoing to be worked out directly with Russian private individuals, \nwith businesses.  The private enterprise support is another \nexample of that.\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  If I could just add \na word on this point with regard to the SSD-related programs, one \narea that we've been looking at very, very closely is \nconsideration of actually using Russian firms in subcontracting \nfor these kinds of programs.  They would be working very closely, \nof course, with the American firms, who would be the prime \ncontractors.  But this is a fine example, I think, of a more --of \na imaginative and flexible approach toward getting some of that \nfunding down to the grassroots level, down to the ground in \nRussia; but at the same time ensuring that it is spent \nefficiently and for the purposes for which it was intended.\n\t     \n\t     Q\t  When would the democracy corps start?  Exactly \nwhen do you see this happening?  How would get it off the ground?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Well, the President \nis today calling for the creation of a democracy corps.  I think \nit's fair to say that we're going to work out its framework over \nthe next couple of weeks.  Ambassador Simons takes up his duties \non May 1st.  But in effect we've already started, because over \nthe last couple of weeks the administration has begun to reach \nout to people in the private sector who have come to us asking us \nto help facilitate their activities in Russia.  And we've said \nthat we will be helpful.  We've also tried to kind of coordinate \nin a much more effective way the activities of our own \ngovernment.  We do have 10 or 15 agencies that are active in \nRussia in one way or another.  We think it makes sense to draw \nthem together and to focus their efforts.\n\t     \n\t     Q\t  Excuse me.  How much of this $1.6 billion will \nactually be spent in the United States by American made goods?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  I don't have any \nfigures for you now, but perhaps we could try to work something \nup in the next couple of days on that.\n\t     \n\t     Q\t  This figure is larger than the figure that has \nbeen in the press -- did this program grow yesterday as a result \nof the discussions, or have we just been that far off the mark?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  No, I think --\nunfortunately the press has been a little bit off the mark, and \nI'm sorry to say that.  No, this package -- President Clinton put \nus to work about seven weeks ago on this package.  And he was \nbriefed intensively on this.  He contributed a lot of the \nintellectual leadership in this package.  He contributed a lot of \nthe ideas in the package.  And I think it's fair to say that we \nhad this rough package worked out about two weeks ago.  We have \nbeen refining it ever since.  We spent a couple of days last week \ngoing over it with the Russian government, both the embassy in \nWashington and the government in Moscow through our own embassy.  \nAnd so it's been evolving.  But this particular package has been \ntogether for about two weeks.\n\t     \n\t     Q\t  Where is Yeltsin's input into this then?  There \nwas so much talk before about the President wanted to get \nYeltsin's views about specifically what was needed and so forth.  \nIs that in the out years?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  No, it's both.  \nPresident Yeltsin has on several occasions told us, for instance, \nthat support for the creation of private businesses is important \nto him; that the resettlement of Russian military officers is \nimportant; and that first and foremost the effort to privatize \nthe state industries is important to them.  \n\t     \n\t     And so what we did was to try to make those the \ncenterpiece of our technical assistance part o the package.  We \nlistened to him.  On the privatization effort, we have been \nworking with the Russian government for months on this trying to \nwork out all the details.  So the Russian government on most of \nthese programs was involved every step of the way.  \n\t     \n\t     But let me get at the other part of your question.  \nThe President is also using this weekend to talk about a broader \nset of initiatives that we might undertake.  And we're looking \nfor his ideas.  The President has brought his own ideas to the \ntable -- for instance, on energy and the environment and in \nhousing.  But we're looking for Russian ideas not.  We need to \nconsult with the Congress; and we need to consult with the other \nallied governments that are also active.\n\t     \n\t     Q\t  There's essentially nothing that happened in \nthe last day and a half that measurably altered the package that \nyou came in with?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  This particular \npackage, as I said, was worked out and was ready about two weeks \nago.  We have since then consulted with the Russian government on \nthe final stages of its development, and so this weekend we've \nprimarily talked about future, about what more the United States \nand other Western countries can do to support reform in Russia, \nwhich is our base objective here.\n\t     \n\t     Q\t  I noticed that you -- that money appropriated \nto train bankers and businessmen and officers.  Can you tell me \nwhat about job training for workers who are displaced by \nprivatization?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  You're right; we \nhave a program to train Russian -- young Russians in banking and \nfinancial services in the United States.  Part of the housing \ninitiative, it's not just to build housing units, it's to retrain \nRussian officers who are retiring into other professions.\n\t     \n\t     Q\t     money for job training for workers whose \njobs are disappearing because of privatization --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  We have not yet \nallocated any money for that.\n\t     \n\t     Q\t  Why not?\n\t     \n\t     Q\t     of the $6 million is going to build 450 \nhousing units.  Isn't that a lot of money per unit given what the \nWestern dollar will buy in the former Soviet Union?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  If you want to do \nhousing the right way, it's not just the building the framework \nof a house, you've got to think about all the utilities.  You've \ngot to think about the purchase of land.  You've got to think \nabout sewage and gas and electricity and so forth.  And it's also \nretraining.  It's not enough to put retired -- an officer coming \nout of -- Riga or Tallin or Vilnius in a house in western Russia.  \nWe think we have an obligation to try to retrain those officers \nas well.  This is responding to a request from the Russian \ngovernment.\n\t     \n\t     Q\t     of the $6 million will go to retrain --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  That's right.\n\t     \n\t     Q\t  Are you talking about apartment buildings or \nsingle --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  We're talking about \nsingle, individual dwellings.\n\t     \n\t     Q\t  You're saying that only 450 families will be \nserved by this?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  What I want to -- I \nthought I pointed out earlier, this is a demonstration project.  \nWhat we didn't want to do -- given the experience that the \nGermans and the Turks and the Italians have had in building \nhousing in western Russian, we did not want to leap into it with \na huge amount of money.  What we want to do is work over the next \ncouple of months and try to figure out with American \norganizations in the private sector the best way to get this job \ndone.  \n\t     \n\t     I noted that we have a long-term commitment to that.  \nAnd so I would expect that we would put a lot more money into \nthis in the future .  But we want to do it wisely; we want to \nspend the money wisely.\n\t     \n\t     Q\t  What is it about this program that convinces \nyou that it will protect Russia's reforms and that Russia will be \nin a position to may back the money they're supposed to pay back, \nespecially considering their other debt problem?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Well, look, I think \nit's important to note that the United States on its own does not \nhave the capability to fuel a continuation of Russian reform.  \nIt's got to be a collective Western effort, and we're looking to \nour allies to do more as well.  But beyond that, it's really what \nthe Russians do that is going to decide the fate of reform.  We \ncan simply play a role, and we feel we have an obligation to do \nso, which is consistent with our national interests.\n\t     \n\t     Q\t  Did the President say that the value of the \nU.S. contribution was that it would create security and \nprosperity for the United States?  So what is it about this \nprogram that does this?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  I think you have to \ngo back to the fundamental objective of our policy toward Russia, \nand that is we want to do everything we can to support the \ncontinuation of reform.  We are convinced that if reformers stay \nin power, then we'll be able to continue the drawdown of nuclear \nforces, foreign policy cooperation and economic interaction, \nwhich are the three benefits to the United States from reform in \nRussia.  So it's not a simple question.  You can't just say that \nthis program is the answer.  It's a long-term question and we \nhave to make a long-term commitment to it.\n\t     \n\t     Q\t  And then on the question of Russia's ability to \nrepay, what convinces you they'll be able to pay seven to 15 \nyears from now?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  Well, the Russian \ngovernment has made a commitment to repay, and what we're hoping \nis that if reform continues, and if they can continue to improve \ntheir oil and gas sector and earn additional hard currency \nrevenues, that Russia will be in a position six or seven years \nfrom now to pay back those loans.\n\t     \n\t     Q\t     substantial government-to-government loan \nwe've ever gotten into with the Russians?\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  I don't want to \nanswer authoritatively on that.  I don't go back 20 or 30 years \non this.  But in the last four or five years, yes it is, because \nthe previous way that we financed grain exports was really to \njust ensure private bank loans.  This is a different type of \neffort.\n\t     \n\t     Q\t     government loans in any other sector that \nyou recall?  I know it wasn't done in --\n\t     \n\t     SENIOR ADMINISTRATION OFFICIAL:  I think it's fair \nto say this is a new and unique effort.\n\n                               END10:25 A.M. PDT\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5274, "properties": {"category": "sci.electronics", "text": "Subject: Re: Can Microwaves Be Used To Collect XYZ Coordinates\nFrom: sldf3@sol.ee.usu.edu (Weston R Beal)\nDistribution: world\nOrganization: Utah State Univ. EE\nNntp-Posting-Host: sol.ee.usu.edu\nLines: 32\n\nIn article <C5Hs5J.AG7@bcstec.ca.boeing.com>, rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter) writes:\n\n|> It seems reasonable to me that a microwave transmitter-receiver setup could \n|> do the job. For example, say you want to map an acre lot, it'd be convenient\n|> to place MW transmitters around the lot's periphery (either 2 or 3) and then\n|> carry a hand-held recorder and walk to a point on the lot, press a button and\n|> the coords of the recorder's location is stored as digital data.\n|> \n|> What's the chance of this working? Any systems like this already exist?\n|> What kind of accuracy could you expect? What would something like this\n|> cost to prototype? Is there a better alternative than microwaves?\n\nOf course you could develope this system, but there is already a system called Global\nPositioning Satellites.  It gives three dimensional coordinates anywhere on earth. \nMany surveyors use this system with a differential receiver/transmitter to get\ncoordinates within centimeters.  Basic receivers with resolution of a few meters (on\na good day) are available from many sources.\n\n\n-- \nWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMW\n\n  \\_      \\_  \\_\\_\\_    \\_\\_\\_               Weston R Beal\n   \\_      \\_  \\_    \\_  \\_    \\_         sldf3@sol.ee.usu.edu\n    \\_  \\_  \\_  \\_\\_\\_    \\_\\_\\_            sldf3@cc.usu.edu\n     \\_\\_  \\_\\_  \\_  \\_    \\_    \\_       Electrical Engineer\n      \\_      \\_  \\_    \\_  \\_\\_\\_       Utah State University\n\n  \"That's the wonderful thing about crayons; they can take you to\n   more places than a starship can.\"    - Guinon\n\n\u001a\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5275, "properties": {"category": "comp.windows.x", "text": "From: davewood@bruno.cs.colorado.edu (David Rex Wood)\nSubject: X Error of failed request:  BadPixmap (invalid Pixmap parameter)\nNntp-Posting-Host: bruno.cs.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 68\n\nCould someone PLEASE give a guess as to why this simple little program\ncauses a BadPixmap error on the FOURTH (bizarre???) call to XtRelaizeWidget()?\n\nHere is the code:\n\n\nint stoploop = 0;\n\nstatic void Callback(Widget, XtPointer, XtPointer);\n\nmain()\n{\n        XtToolkitInitialize();\n        XtAppContext app = XtCreateApplicationContext();\n        while (1)\n        {\n                int junk = 0;\n                Display *dis = XtOpenDisplay(app, NULL, NULL, NULL, NULL, 0,\n                                                &junk, NULL);\n\n                Widget top = XtAppCreateShell(NULL, NULL,\n                                applicationShellWidgetClass, dis, NULL, 0);\n\n                Widget box = XtVaCreateManagedWidget(\"x\",\n                                                        xmPushButtonWidgetClass,\n                                                        top,\n                                                        XmNheight, 25,\n                                                        XmNwidth, 25, NULL);\n\n                XtAddCallback(box, XmNactivateCallback, Callback, NULL);\n\n                XtRealizeWidget(top);\n                while (!stoploop)\n                {\n                        XEvent event;\n                        XtAppNextEvent(app, &event);\n                        XtDispatchEvent(&event);\n                }\n                stoploop = 0;\n                XtReleaseGC(top, XDefaultGCOfScreen(XtScreen(top))); // needed?\n                XtDestroyWidget(top);\n                XtCloseDisplay(dis);\n        }\n}\n\nstatic void Callback(Widget, XtPointer, XtPointer)\n{\n        stoploop = 1;\n}\n\n\nThe error I get (yes, the 4TH time I try to show the box) is:\n\nX Error of failed request:  BadPixmap (invalid Pixmap parameter)\n  Major opcode of failed request:  55 (X_CreateGC)\n  Resource id in failed request:  0xd0000d\n  Serial number of failed request:  71\n  Current serial number in output stream:  85\n\n\nPlease respond via email.  Thanks very, very much!\n\n(NOTE: I realize this program does nothing useful, its an ultra-trivialized\nversion fo a real library routine)\n-- \n-------------------------------------------------------------------------------\nDavid Rex Wood -- davewood@cs.colorado.edu -- University of Colorado at Boulder\n-------------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5276, "properties": {"category": "rec.sport.hockey", "text": "From: MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF)\nSubject: Re: expanding to Europe:Dusseldorf\nIn-Reply-To: pkortela@snakemail.hut.fi's message of 15 Apr 93 14:47:30 GMT\nOrganization: Abo Akademi University, Finland\nX-News-Reader: VMS NEWS 1.24\nLines: 75\n\nIn <PKORTELA.93Apr15164732@lk-hp-17.hut.fi> pkortela@snakemail.hut.fi writes:\n\n> \n> DEG has many german-born forwards in the team. In fact the majority of players\n> are german-born. 1992-93 DEG had 11150 average in 11800 spectator arena.\n\nInteresting! One of our German friends here (Robert?) told me their forwards\nwere all Canadian-Germans. Perhaps somebody can sort this out for us?\n \n> My Possible-NHL(European league)-site list:\n> Switzerland  : Berne, Zurich (Lugano and 1-2 others)\n\nOK, \"this ain't North America\" and so on, but I still doubt that _any_ city\nhaving a pop. of 500,000 and below could support an NHL team. Of course,\nSwitzerland probably should be judged as one large city because of small\ndistances between cities but still. \n\n> Germany      : Dusseldorf, Cologne, Berlin, Munich (Mannheim, Rosenheim)\n\nDusseldorf? YES, although the arena is an anachronism (an OPEN wall behind one\nof the goals - essentially an outdoor arena!). Cologne's arena only seats about\n7,000-8,000, Berlin is about 6,000 and no new facility will be built\nunless their Olympic bid is successful. Munich does have an arena. \n\n> Sweden       : Stockholm, Gothenburg (Malmo, Gavle)\n\nMalmo is big enough, but they also need a new arena...the current one has \n5,000 seats I think.\n\n> Finland      : Helsinki (Turku, Tampere)\n\nIf we're talking about the NHL, even Helsinki would struggle to make it work.\nTurku (despite an excellent arena) and Tampere are nowhere near big enough for\nmajor league hockey.\n\n> Italy        : Milan\n\n...Rome and the south are out of the question; this could as well be Africa\nto hockey fans. Romans were given the chance to host some WC'94 games but\nshowed no interest whatsoever. All teams in the Italian league come from Milan\nand the smaller cities in the north.\n\n> France       : Paris (Chamonix, Ruoen?)\n\nParis had their own \"Volans Francais\"(sp) pro team a couple of years ago.\nI believe they even made it to the European Club Championship finals \ntournament one year, but eventually folded due to lower-than-hoped-for \nattendances. The remaining cities seem to be too small to support a minor \nsport like hockey.\n\n> Norway       : (Oslo)\n> Austria      : (Vienna, Villach)\n> Chech        : (Prag)\n> Slovakia     : (Bratislava)\n> Russia       : (Moscow, St. Petersburg)\n\nThe easter cities lack the money and infrastructure to support pro hockey.\n\n> Great Britain: ?\n\nPerhaps . . . Most European teams will have to be like the Tampa Bay Lightning\nanyway; playing in a small 10,000 seat arena, backed by Japanese money, run by \nenthusiasts (Phil Esposito), heavy\nmarketing, fans that have difficulty telling what \"icing\" means... London has\nbeen mentioned, Sheffield and Birmingham also have large arenas and a new\nmega-facility (16,000 seats!) might be built in Bristol in a couple of years.\n\n> Netherlands  : ?\n\nNo facilities to speak of; their biggest arena (in Eindhoven) seats 2,500 \nfans for hockey. \n> \n> Petteri Kortelainen\n\nMARCU$\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5277, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: ClariNet Communications Corp.\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nLines: 21\n\nIn article <1993Apr18.032405.23325@magnus.acs.ohio-state.edu> jebright@magnus.acs.ohio-state.edu (James R Ebright) writes:\n>In article brad@clarinet.com (Brad Templeton) writes:\n>\n>[...]>\n>>The greatest danger of the escrow database, if it were kept on disk,\n>>would be the chance that a complete copy could somehow leak out.  You\n>[...]>\n>>Of course then it's hard to backup.  However, I think the consequences\n>>of no backup -- the data is not there when a warrant comes -- are worse\n>>than the consequences of a secret backup.\n>\n>If the data isn't there when the warrant comes, you effectively have\n>secure crypto.  If secret backups are kept...then you effectively have\n>no crypto.  Thus, this poster is essentialy arguing no crypto is better\n>than secure crypto.\n\nNo, the poster (me) has his brain in the wrong gear.  As you can infer\nfrom the first sentence, I meant the consequences of no backup are *better*\nthan the consequences of an easy to copy database.\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5278, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: Re: Date is stuck\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 7\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nI can't imagine why someone would leave their computer on all of\nthe time to start with. Its like leaving your lights tv, radio\nand everything in the house on all of the time to me.....Nuts\n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5279, "properties": {"category": "talk.religion.misc", "text": "From: bobsarv@microsoft.com (Bob Sarver)\nSubject: Re: Question for those with popular morality\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 123\n\n\n/(hudson)\n/Yes you do.  Who is to say that it is immoral for onesself to experience\n/pain or to be hurt in some other way.  Maybe unpleasant, but that doesn't\n/say anything about morality.\n\nIt violates free will, Hudson.\n\n\n\n(me)\n>You can derive the immorality of hurting someone else entirely from selfish\n>motives.  I can say, for example, that it is wrong to hurt other people\n>because that makes them less productive members of society.\n\n/(hudson)\n/Why is making someone a less productive member of society immoral?\n\nHudson, you are screwing up again.  Morality does not (I say again, DOES\nNOT) define only \"right and wrong\".  It also defines \"acceptable social\nbehavior\", without any overtones of good and evil.  Picking up your trash\nis not really a right/wrong moral issue in the eternal sense of Good\nand Evil.  Yet it is moral in the sense that it is acceptable social\nbehavior\".  \n\nYour definition of the word \"morality\" is what is causing you to trip over \nyourself here.\n\n\n\n\n/(me)\n/And since\n/>I, selfish being that I am, want to maximize my gains from society, I will\n/>not do anything to another member of society if that action might cut down\n/>on how much benefit I can derive from society.\n\n/(hudson)\n/Why is your benefit somehow related to morality.\n\nAgain, your definition is causing you to shoot yourself in the foot.\n\n\n\n\n\n/(hudson)\n/What about if someone feels that their own personal benefit is enhanced\n/more than it would be damaged by depleting the overall resources of society?\n/Maybe something might hurt society, but it would help him immensly?\n\nThat is irrational thinking.  \n\nThere may also be people out there who think that death by atomic \ndestruction is  a sublime and wonderful thing. I am not going to let them\nexecute that idea just because they want to do it. \n\nSimply because I let people make up their minds about what morals they\nhave doesn't prevent me from spotting and stopping a madman when I see\none, Hudson.  And even then, I will only stop him when he interferes \nwith me and my life.  That is the difference between me and you:  you\nwant to interfere in people's lives even when they aren't affecting\nyou.  \n\n\n\n\n\n/(hudson)\n/The central character in Dostoevsky's novel, Crime and Punishment, \n/(R something or other) reasoned that if killed this old Jewish woman and\n/stole her money to educate and establish himself financially, he could\n/make a great contribution to society.  He reasoned that she was not of \n/much profit to society.  She just collected rents, and hoarded money.\n\n\nOne of the central points of any (that's ANY) moral system is that is\nhas to be internally consistent.  \n\nBy killing her, the character had to accept the premise that the ends\njustify the means.  If he accepted that premise, then (in order to be\nconsistent), he must accept the idea that some day another person may\napply the same standard to HIS life.  Now, if he is unwilling to accept\nthis premise (which he will not be willing to accept), then he has\nbehaved inconsistently with his own moral standard.\n\n\n\n\n\n/(me)\n/[football example deleted]\n\n/(hudson)\n/Now suppose a freshman on the bench will only get to play if one of the\n/players in the field/on the court is injured (or killed.)  This freshman\n/wants to play in the big game so a talent scout can see him.  If he hurts\n/a player on the team, it might slightly lessen the chances of the team to\n/win, but he might gain great personal benefit.  So, operating on purely\n/selfish (immorally selfish) motives, he arranges for a sniper to shoot a\n/team player in the leg.  He gets to play in front of the talent scout.\n\n/Did that freshman behave morally?\n\n/Selfish intentions may sometimes generate (apparently) moral actions, but\n/not always.\n\n\n\nTwo problems right off the bat:\n\n1.  The problem with your analogy is that it doesn't address the goal\nthat I started with:  winning the game.  Playing in front of the talent\nscout != winning the game.  Try creating the same analogy and keep the\nultimate goal the same, will you?\n\n2.  The internal consistency question is also not addressed:  if the freshman\nwants to do this to other people, then he has to accept the fact that\nit may happen to him one day.  If he is unwilling, then he has violated\nhis own moral standard.\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.252+0000", "event": "documents", "entityId": 5280, "properties": {"category": "rec.sport.baseball", "text": "From: binkley@let.rug.nl (P.A. Binkley)\nSubject: Re: Jewish Baseball Players?\nLines: 7\nNntp-Posting-Host: pco204a.let.rug.nl\nOrganization: Faculteit der Letteren, Rijksuniversiteit Groningen, NL\n\nThere was an article on Jewish major leaguers in a recent issue of \"Elysian \nFields\", what used to be the \"Minnesota Review of Baseball\".  As I recall, \nit had an amazing amount of research, with a long list of players and a \nlarge bibliography.\n\nPeter Binkley\nbinkley@let.rug.nl\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5281, "properties": {"category": "rec.motorcycles", "text": "From: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nSubject: Re: Motorcycle Courier (S\nReply-To: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nDistribution: world\nOrganization: Computer Dynamics-Vancouver B.C.-(604)986-9937 (604)255-9937\nLines: 19\n\nJL-NS>Subject: Re: Motorcycle Courier (Summer Job)\n\nI'd like to thank everyone who replied. I will probably start looking in\nearnest after May, when I return from my trip down the Pacific Coast\n(the geographical feature, not the bike).\n\nRyan Cousinetc.|1982 Yamaha Vision XZ550 -Black Pig of Inverness|Live to Ride\nKotRB          |1958 AJS 500 C/S -King Rat                      |to Work to\nDoD# 0863      |I'd be a squid if I could afford the bike...    |Flame to\nryan.cousineau@compdyn.questor.org  |   Vancouver, BC, Canada   |Live . . .\n\n\n * SLMR 2.1a * Have bike, will travel. Quickly. Very quickly.\n                                   \n----\n+===============================================================+\n|COMPUTER DYNAMICS BBS    604-255-9937(HST)    604-986-9937(V32)|\n|Vancouver, BC, Canada -  Easy Access, Low Rates, Friendly Sysop|\n+===============================================================+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5282, "properties": {"category": "soc.religion.christian", "text": "From: mauaf@csv.warwick.ac.uk (Mr P D Simmons)\nSubject: Why religion and which religion?\nOrganization: Computing Services, University of Warwick, UK\nLines: 46\n\n\n        My family has never been particularly religious - singing Christmas\ncarols is about the limit for them. Thus I've never really believed in God and\nheaven, although I don't actually believe that they don't exist either -\nI'm sort of undecided, probably like a lot of people I guess.\n        Lately I've been thinking about it all a lot more, and I wondered how\nreligious people can be so convinced that there is a God. I feel as though\nI want to believe, but I'm not used to believing things without proof -\njust as I can't believe that there definitely isn't a God, so I can't\ndefinitely believe that there is. I wondered if most of you were brought up by\nreligious families and never believed any different. Can anyone help me to\nunderstand how your belief and faith in God can be so strong.\n\n        Another question that frequently crosses my mind is which religion is\ncorrect?? How do you choose a religion, and how do you know that the Christian\nGod exists and the Gods of other religions don't?? How do you feel about\npeople who follow other religions?? How about atheists?? And people like me -\nagnostics I suppose. Do you respect their religion, and accept their\nbeliefs as just as valid as your own?? Isn't there contradiction between\nthe religions?? How can your religion be more valid than any others?? Do\nyou have less respect for someone if they're not religious, or if they follow\na different religion than you would if they were Christian??\n\n        Also, how much of the scriptures are correct?? Are all events in\nthe bible really supposed to have happened, or are they just supposed to be\nstories with morals showing a true Christian how to behave??\n\n        I generally follow most of the Christian ideas, which I suppose are\nfairly universal throughout all religions - not killing, stealing, etc, and\n'Loving my neighbour' for want of a better expression. The only part I find\nhard is the actual belief in God.\n\n        Finally, what is God's attitude to people like me, who don't quite\nbelieve in Him, but are generally fairly 'good' people. Surely not\nbelieving doesn't make me a worse person?? If not, I find myself wondering why\nI so strongly want to really believe, and to find a religion.\n\n        Sorry if I waffled on a bit - I was just writing ideas as they came\ninto my head. I'm sure I probably repeated myself a bit too.\n\n                        Thanks for the help,\n                                Paul Simmons\n\n[There's been enough discussion about evidence for Christianity\nrecently that you may prefer to respond to this via email rather than\nas a posting.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5283, "properties": {"category": "talk.politics.misc", "text": "From: dunnjj@ucsu.Colorado.EDU (DUNN  JONATHAN JAMES)\nSubject: Re: ABOLISH SELECTIVE SERVICE\nOrganization: University of Colorado, Boulder\nLines: 42\n\nmuellerm@vuse.vanderbilt.edu (Marc Mueller) writes:\n\n>Considering that Clinton received a draft notice and got out of it (he admits it) the political feasibility of him abolishing it is not something he would\n>be inclined to risk any extra exposure on.\n\nAs a libertarian (with a small l) who voted for Clinton, I think that he\nshould abolish the Selective Service and the draft.  If his conscience\nforbade him to go to war in Vietnam, it should forbid him to perpetuate\nthis system of government-sanctioned slavery.\n\n>Agreed. Congress took money from NASA and FHA to fund the second Seawolf.\n>The shipyards are still building Los Angeles Class submarines and there\n>is a lack of ASW foes to contend with. The Navy is considering reducing\n>the number of attack subs to 40 (Navy Times) and that would entail\n>getting rid of or mothballing some of the current Los Angeles class.\n>Politically, General Dynamics is in Connecticut and we will get\n>Seawolf subs whether we need them or not.\n\nIf our government would pay attention to SERIOUS domestic issues (the ECONOMY)\nand choose to stay out of other people's wars (Iraq, Bosnia, Somalia),\nwe would not be in this fix.  An anyway, couldn't the jobs be replaced by\nimproving our domestic situation?  (I'm not for continued deficit spending,\nbut if Clinton and Congress want to spend, I'd rather they improve the \ninfrastructure than fight other people's wars.)\n\n>In addition, more bases need to be closed. Probably Long Beach Naval Station\n>and others. The Navy is talking about three main bases on each coast being \n>required to home port a total fleet of 320 ships.\n>The question is whether Les Aspin and Clinton will be able to face down\n>a pork happy Congress.\n\nA novel idea:  Getting away from naval bases, what about refurbishing\ndecommissioned Air Force bases as airports?  This would be SO much cheaper\nthan building them from the ground up (Denver's new airport is one of the \nmost appalling examples of pork-barreling and cronyism I have seen in\nmy lifetime).  Even if no more airports are needed, I'm sure Bill Gates\nor Ross Perot would LOVE to have their own private airfields, and the\nmoney from their purchases could be applied to the public debt.\n\n>Jon Dunn<\n\n* All E-mail flames will be deleted without reading *\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5284, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: htanabe@ponder.csci.unt.edu (Tanabe)\nSubject: terminal software\nArticle-I.D.: ponder.htanabe.734110579\nOrganization: University of North Texas\nLines: 10\n\nPlease reply via EMail...\n\nWhen I use the terminal software for Windows such as TERMINAL.EXE or \nCrossttalk, it doesn't use the whole window.  I mean, when the software's\nwindow size is max, it still scrolls around the 2/3 of window.  It does not\nuse whole window.  I set \"stty rows 30\", but still the same. Scrolls at 2/3\nfrom the top of the windows.  Could anyone tell me how to setup these software\nto use whole window?\n\nThanks in advance.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5285, "properties": {"category": "misc.forsale", "text": "From: jac2y@Virginia.EDU (\"Jonathan A. Cook <jac2y>\")\nSubject: Re: Classic CDs 4 sale!!\nOrganization: University of Virginia\nLines: 7\n\nHey, I can't send mail to you, so....\n\nCould you please resend me your address?  I lost it (for H. in\nMoscow)\n\nThanks,\nJon\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5286, "properties": {"category": "rec.sport.hockey", "text": "From: dscy@eng.cam.ac.uk (D.S.C. Yap)\nSubject: Re: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nOrganization: cam.eng\nLines: 12\nNntp-Posting-Host: club.eng.cam.ac.uk\n\nsmale@healthy.uwaterloo.ca (Bryan Smale) writes:\n\n>                        Team           Biggest       Biggest\n>Team:                   MVP:          Surprise:    Disappointment:\n>-----------------------------------------------------------------------\n>Washington Capitals     Hatcher        Bondra/Cote   Elynuik\n>Winnipeg Jets           Selanne        Selanne       Druce\n\n                                                      ^^^^^^^^\n                                                      weren't these two\n                                                      traded for each\n                                                      other?  Poetic justice.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5287, "properties": {"category": "comp.graphics", "text": "From: zyeh@caspian.usc.edu (zhenghao yeh)\nSubject: Re: Newsgroup Split\nOrganization: University of Southern California, Los Angeles, CA\nLines: 18\nDistribution: world\nNNTP-Posting-Host: caspian.usc.edu\n\n\nIn article <1quvdoINN3e7@srvr1.engin.umich.edu>, tdawson@engin.umich.edu (Chris Herringshaw) writes:\n|> Concerning the proposed newsgroup split, I personally am not in favor of\n|> doing this.  I learn an awful lot about all aspects of graphics by reading\n|> this group, from code to hardware to algorithms.  I just think making 5\n|> different groups out of this is a wate, and will only result in a few posts\n|> a week per group.  I kind of like the convenience of having one big forum\n|> for discussing all aspects of graphics.  Anyone else feel this way?\n|> Just curious.\n|> \n|> \n|> Daemon\n|> \n\nI agree with you. Of cause I'll try to be a daemon :-)\n\nYeh\nUSC\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5288, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jeffh@ludwig.cc.uoregon.edu (Jeff Hite )\nSubject: Re: Monitor Shut-down on 13\" Hi-Res\nOrganization: University of Oregon Network Services\nLines: 23\nNNTP-Posting-Host: ludwig.cc.uoregon.edu\n\nIn article <1993Apr15.183527.3365@guvax.acc.georgetown.edu>  \nhew@guvax.acc.georgetown.edu writes:\n> THere is a defect in the 13\" hi-res monitors, bring it to a dealer and \n> they will replace the flyback for free, I think.\n> \n> \n> \tI just heard of this problem at work today and we are fixing \n> them for free.\n> \n> \n> \t________________\n> \t- / o r r\n\nThe service notice on the 13\" hi-res monitors expired 3/23/93 after this  \ndate Apple will NOT reimburse service providers for the fix (replacement  \nof the hi-voltage capacitor). All you folks that have been putting up with  \nintermittant shutdowns without getting it to your service provider missed  \nout on the freebie. It was in force for a year. If you got it free after  \n3/23, you got a deal...\nJeff Hite\nComputing Center\nU of Oregon\njeffh@ludwig.cc.uoregon.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5289, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: Studies on Book of Mormon\nLines: 31\nOrganization: Walla Walla College\nLines: 31\n\nIn article <735023059snx@enkidu.mic.cl> agrino@enkidu.mic.cl (Andres Grino Brandt) writes:\n>From: agrino@enkidu.mic.cl (Andres Grino Brandt)\n>Subject: Studies on Book of Mormon\n>Date: Sun, 18 Apr 1993 14:15:33 CST\n>Hi!\n>\n>I don't know much about Mormons, and I want to know about serious independent\n>studies about the Book of Mormon.\n>\n>I don't buy the 'official' story about the gold original taken to heaven,\n>but haven't read the Book of Mormon by myself (I have to much work learning\n>Biblical Hebrew), I will appreciate any comment about the results of study\n>in style, vocabulary, place-names, internal consistency, and so on.\n>\n>For example: There is evidence for one-writer or multiple writers?\n>There are some mention about events, places, or historical persons later\n>discovered by archeologist?\n>\n>Yours in Collen\n>\n>Andres Grino Brandt               Casilla 14801 - Santiago 21\n>agrino@enkidu.mic.cl                        Chile\n>\n>No hay mas realidad que la realidad, y la razon es su profeta\nI don't think the Book of Mormon was supposedly translated from Biblical \nHebrew.  I've read that \"prophet Joseph Smith\" traslated the gold tablets \nfrom some sort of Egyptian-ish language.  \nFormer Mormons, PLEASE post.\n\nTammy \"no trim\" Healy\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5290, "properties": {"category": "talk.politics.mideast", "text": "From: henrik@quayle.kpc.com \nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: NONE\nLines: 100\n\nIn article <MUCIT.93Apr20144400@vein.cs.rochester.edu>, mucit@cs.rochester.edu (Bulent Murtezaoglu) writes:\n|> In article <1993Apr20.164517.20876@kpc.com> henrik@quayle.kpc.com writes:\n|> [stuff deleted]\n|> \nhenrik]  Country. Turks and Azeris consistantly WANT to drag ARMENIA into the\nhenrik]  KARABAKH conflict with Azerbaijan. \n\nBM] Gimme a break.  CAPITAL letters, or NOT, the above is pure nonsense.  It\nBM] seems to me that short sighted Armenians are escalating the hostilities\n\t\t     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n     Again, Armenians in KARABAKH are SIMPLY defending themselves. What do\n     want them to do. Lay down their ARMS and let Azeris walk all over them.\n\nBM] while hoping that Turkey will stay out.  Stop and think for a moment,\nBM] will you?  Armenia doesn't need anyone to drag her into the conflict, it\nBM] is a part of it.  \n\nArmenians KNEW from the begining that TURKS were FULLY engaged \ntraining AZERIS militarily to fight against  KARABAKHI-Armenians.\n\t\nhenrik] The KARABAKHI-ARMENIANS who have lived in their HOMELAND for 3000 \nhenrik] years (CUT OFF FROM ARMENIA and GIVEN TO AZERIS BY STALIN) are the \nhenrik] ones DIRECTLY involved in the CONFLICT. They are defending \nhenrik] themselves against AZERI AGGRESSION. \n\nBM]  Huh?  You didn't expect Azeri's to be friendly to forces fighting with them\nBM]  within their borders?  \n\n\tWell, history is SAD. Remember, those are relocated Azeris into \n        the Armenian LAND of KARABAKH by the STALIN regime.\n\nhenrik] At last, I hope that the U.S. insists that Turkey stay out of the \nhenrik] KARABAKH crisis so that the repeat of the CYPRUS invasion WILL NEVER \nhenrik] OCCUR again.\n\nBM] You're not playing with a full deck, are you?  Where would Turkey invade?\n\n   It is not up to me to speculate but I am sure Turkey would have stepped\n   into Armenia if SHE could.\n \nBM] Are you throwing the Cyprus buzzword around with s.c.g. in the header\nBM] in hopes that the Greek netters will jump the gun?  \n\n\tAbsolutely NOT ! I am merely trying to emphasize that in many\n        cases, HISTORY repeats itself. \n\nBM] Yes indeed Turkey has the military prowess to intervene, what she wishes \nBM] she had, however, is the diplomatic power to stop the hostilities and bring\nBM] the parties to the negotiating table.  That's hard to do when Armenians \nBM] are attacking Azeri towns.\n\n\tSo, let me understand in plain WORDS what you are saying; Turkey\n        wants a PEACEFUL END to this CONFLICT. NOT !!\n\n\tI will believe it when I see it.\n\n\tNow, as far as attacking, what do you do when you see a GUN pointing\n        to your HEAD ? Do you sit there and WATCH or DEFEND yoursef(fat chance)?\n\tDo you remember what Azeris did to the Armenians in BAKU ? All the\n\tBARBERIAN ACTS especially against MOTHERS and their CHILDREN. I mean\n\tBURNING people ALIVE !\n\nBM] Armenian leaders are lacking the statesmanship to recognize the \nBM] futility of armed conflict and convince their nation that a compromise that \nBM] leads to stability is much better than a military faits accomplis that's \nBM] going to cause incessant skirmishes.  \n\n\tArmenians in KARABAKH want PEACE and their own republic. They are \n        NOT asking much. They simply want to get back what was TAKEN AWAY \n\tfrom them and GIVEN to AZERIS by STALIN. \n\nBM] Think of 10 or 20 years down the line -- both of the newly independent \nBM] countries need to develop economically and neither one is going to wipe \nBM] the other out.   These people will be neighbors, would it not be better \nBM] to keep the bad blood between them minimal?\n\n\tDon't get me WRONG. I also want PEACEFUL solution to the\n\tconflict. But until Azeris realize that, the Armenians in\n\tKARABAKH will defend themselves against aggresion.\n\nBM] If you belong to the Armenian diaspora, keep in mind that what strikes\nBM] your fancy on the map is costing the local Armenians dearly in terms of \nBM] their blood and future. \n\n\tAgain, you are taking different TURNS. Armenia HAS no intension\n        to GRAB any LAND from Azerbaijan. The Armenians in KARABAKH\n        are simply defending themselves UNTIL a solution is SET.\n\nBM] It's easy to be comfortable abroad and propagandize \nBM] craziness to have your feelings about Turks tickled.  The Armenians\nBM] in Armenia and N-K will be there, with the same people you seem to hate \nBM] as their neighbors, for maybe 3000 years more.  The sooner there's peace in\nBM] the region the better it is for them and everyone else.  I'd push for\nBM] compromise if I were you instead of hitting the caps-lock and spreading\nBM] inflammatory half-truths.\n\n\tIt is NOT up to me to decide the PEACE initiative. I am absolutely\n        for it. But, in the meantime, if you do not take care of yourself,\n        you will be WIPED out. Such as the case in the era of 1915-20 of\n\tThe Armenian Massacres.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5291, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: Re: Level 5?\nOrganization: Fermi National Accelerator Laboratory\nLines: 20\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <19930422.121236.246@almaden.ibm.com>, Wingert@vnet.IBM.COM (Bret Wingert) writes:\n> 3. The Onboard Flight Software project was rated \"Level 5\" by a NASA team.\n>    This group generates 20-40 KSLOCs of verified code per year for NASA.\n\nWill someone tell an ignorant physicist where the term \"Level 5\" comes\nfrom? It sounds like the RISKS Digest  equivalent of Large, Extra\nLarge, Jumbo... Or maybe it's like \"Defcon 5...\"\n\nI gather it means that Shuttle software was developed with extreme\ncare to have reliablility and safety, and almost everything else in\nthe computing world is Level 1, or cheesy dime-store software.  Not\nsurprising.  But who is it that invents this standard, and how come\neveryone but me seems to be familiar with it?\n\nOf course, what Shakespeare        | Bill Higgins, Beam Jockey\nORIGINALLY wrote was \"First thing  | Fermi National Accelerator Laboratory  \nwe do, let's kill all the EDITORS.\"| Bitnet:           HIGGINS@FNAL.BITNET  \nBut for some reason it didn't      | Internet:       HIGGINS@FNAL.FNAL.GOV  \nsurvive past the first draft.      | SPAN/Hepnet:           43011::HIGGINS  \n-- David D. \"Laserdave\" Levine (davidl@ssd.intel.com)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5292, "properties": {"category": "sci.crypt", "text": "From: grady@netcom.com (1016/2EF221)\nSubject: Re: The [secret] source of that announcement\nOrganization: capriccioso\nX-Newsreader: TIN [version 1.1 PL6]\nDistribution: inet\nLines: 84\n\nAndrew Molitor (amolitor@nmsu.edu) wrote:\n: \n: \t1) Monitor my phonecalls.\n: \t2) Monitor usenet.\n: \t3) Provide only cryptosystems they can easily crack.\n: \t4) etc etc.\n: \n: \tThis is not to say that they *don't*, they might. But you don't\n: know that they do, and you have no evidence that they do, for almost\n: all values of you. It follows, therefore, that for most values of 'you',\n: your claims about the NSA border on paranoia.\n: \n: \tAndrew\n\nNow I wouldn't be the one to claim that you are injecting some\ndisinformation into the net, Andrew, but 'paranoia' refers to\nunwarranted or excessive suspicions or fear, not those that\nhave reasonable roots.\n\nLet's start with looking at the professionals, the NSA itself.\nIts birth was by secret executive order by Harry S Truman\nin 1952.  Until even 1976 not even one word of this executive\norder chartering the NSA was sealed.  Paranoia, right?\n\nOn the outside of the NSA complex is a ten foot Cyclone fence\nwith multiple rows of barbed wire, with high voltage, complete with signs\nprohibiting even making sketches under penalty of the Internal\nSecurity Act.  The area is completely scanned by closed circuit\ntelevision.  More paranoia.\n\nThese are professionals,  Maybe they know something we don't, eh?\n\nDo you think it would have helped Admiral Yamamoto if the Japanese\nhad been a little more 'paranoid' of their purple cipher?\n\nOr maybe the Germans should have been a little more 'paranoid' about\ntheir Engima with respect to Turing and the British.\n\nHow about the cracking of the Zimmerman telegram?  Would a little\nmore paranoia have helped the Germans here?\n\nMaybe the NSA should have been a little more 'paranoid' about\nEmma Woikin, or Joseph Sidney Petersen, Jr., or  ...\n\nMaybe you want to talk about Macmillan publishers cooperation\nwith the CIA and NSA to suppress Yardley's Japanese Diplomatic\nSecrets or even Kahn's The Codebreakers.. paranoia, right?\n\nThe most popular cipher systems in captured soviet spies was\nthe one-time pad, even with the necessity of keeping incriminating\nevidence about, is known to be the only proven unbreakable system.\nSoviet paranoia, right?\n\nAnd what do you think the NSA does with its Wullenwebers?  And \nhuge Rhombics pointed embassy row?  And their sites near\nsatellite uplink and downlink sites?  Duh.\n\nWhen I worked in a classified MITRE communications lab at one time\neven with a \"secret\" clearance I had to be escorted to the toilet\nand the entire site was built INTO a Mosler-type vault with *very*\nthick bomb-proof door.  MITRE paranoia?\n\nI could cite probably a hundred more facts which all support, as\nbest hypothesis, the notion that the NSA is grabbing as much as\nit can, as fast as it can.  One would be a fool to ignore the\npattern of facts and conclude that they were random...\n\nAnd we know the government is violent -- even against children as\nrecent events prove.  Judge William Sessions is a disgrace\nbut a solemn warning to those who ignore the web of evidence\nthat our government institutions have in their contempt for our\ncivil rights.\n\nAnd of course we have to err somewhat on the excessive side of\ncaution because that does much less harm than erring on the\nreckless side. As member of the crew of the USS Liberty might aver.\n\nI might suggest, Andrew, that you read Kahn's Codebreakers and\nBamford's Puzzle Palace and come back with some more facts to\nsupport your sheepish acquiescence to authority.\n \n-- \ngrady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5293, "properties": {"category": "comp.sys.mac.hardware", "text": "From: pilon@aix02.ecs.rpi.edu (T.J. Pilon)\nSubject: Re: My IIcx won't turn on...\nNntp-Posting-Host: aix02.ecs.rpi.edu\nLines: 7\n\nI've changed the battery in the thing (shortly after the problem first\nhappened) and I've noticed an inordinate number of Bus errors lately...\n\n\n\t\t\tT.J. Pilon\n\t\t\tpilon@rpi.edu\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5294, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 14\n\nIn article <1993Apr17.024646.28396@news.cs.brandeis.edu>, st923336@pip.cc.brandeis.edu (BLORT! eeeep! Hwaaah.) writes:\n> \tWouldn't one expect more heterosexual men than gay men to be \n> promiscuous simply due to a larger group of potential partners?\n> \n> \tJust a thought.\n> \n> \t\t\t\t\t\t-Matt\n\nYou might -- except that gay men are MUCH more promiscuous than\nstraight men -- which shows how damaged and screwed up gay men are.\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5295, "properties": {"category": "talk.religion.misc", "text": "From: foster@mtechca.maintech.com\nSubject: Catholic Lit-Crit of a.s.s.\nOrganization: MAINTECH, A division of Volt Delta Resources,Inc. Orange, CA.\nLines: 64\n\nIn article <1qevbh$h7v@agate.berkeley.edu>, dzkriz@ocf.berkeley.edu \n(Dennis Kriz) writes:\n\n[ a lot of religious opinions and quotations from the Bible and from \nmany Catholic theologians and Papal Bulls ]\n\n[ which, although introduced with a smiley, was not as funny as it\nmight have been (notable exception: subject headers such as \"ONE'S \nDICK IS ONE'S INSTRUMENT OF REDEMPTION.\" ]\n\n[ and indeed, the posting seemed to be more a vehicle for the\nreligious text than for any \"literary/moral analysis\" ]\n\nI am surprised and saddened. I would expect this kind of behavior\nfrom the Evangelical Born-Again Gospel-Thumping In-Your-Face We're-\nThe-Only-True-Christian Protestants, but I have always thought \nthat Catholics behaved better than this.\n\nFriend Dennis, I urge you to follow the example of your fellow\nCatholics, of who I count many dozens as my friends, and practice\nyour faith through good example and decent living and respect\nfor the common humanity of others. Please do not stoop to the\nlevel of the E B-A G-T I-Y-F W-T-O-T-C Protestants, who think\nthat the best way to witness is to be strident, intrusive, loud,\ninsulting and overbearingly self-righteous.\n\nThe imagery in the Song of Solomon is a little bit dated (get it? \nMiddle East - date palms - oh, never mind) but apparently acceptable, \non a steaminess level, to be accepted as part of the canon. From\nthis fact I derive that erotica itself is not incompatible with\nCatholic doctrine.\n\nIs there such a thing as Catholic erotica? Not necessarily a love\nstory between people of that faith, but a love story that is not\nexploitative, does not seek redemption through penis size, pays\nproper respect to the dignity of each partner, and is still erotic\nenough to have a place on a.s.s.\n\nI would submit that the _Darknites_ series of stories qualify, also\nmost of the _Journal Entries_, and _Rings I and II_.\n\nI would guess that your aim is to cut down on the pornography and\nincrease the erotica. I actually agree with you that nearly all of\nthe \"I've got an enormous dick, and I shot my wad all over her face\"\nstories are crap. I count them as noise, which makes my take on the\nsignal-to-noise ration much lower than many other people's.\n\nSince you are one of the few posters here who can actually write \ndecent prose, could you write a few stories for us instead of\noverwhelming us with commentary?  \n\n> Anyway, this is a big subject.  PLEASE add your comments,\n> additions and observations.\n> \n> Sincerely,\n> \n> dennis\n> dzkriz@ocf.berkeley.edu\n> \n-- \nThank you.\n\nJeff\nfoster@mtechca.maintech.com\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5296, "properties": {"category": "soc.religion.christian", "text": "From: topcat!tom@tredysvr.tredydev.unisys.com (Tom Albrecht)\nSubject: Re: old vs. new testament\nOrganization: Applied Presuppositionalism, Ltd.\nLines: 39\n\nREXLEX@fnal.fnal.gov writes:\n\n>We can jillustrate this by pointing to the way God administers His judgment. \n>In the OT, sins were not forgiven, but rather covered up.  In the age of the\n>Church not only are sins forgiven (taken away), but the power of SIN is put to\n>death.  ...\n\nMy, this distinction seems quite arbitrary.\n\n  Blessed is the man whose iniquities are forgiven, whose sin is covered.\n  (Ps. 32:1).\n\nand quoted by the apostle Paul:\n\n  Even as David also describeth the blessedness of the man, unto whom God\n  imputeth righteousness without works,\n  Saying, Blessed are they whose iniquities are forgiven, and whose sins\n  are covered.\n  Blessed is the man to whom the Lord will not impute sin.  (Rom. 4:6-8)\n\nThe biblical perspective seems to be that foregiveness and covering are\nparallel/equivalent concepts in both testaments.  The dispensational\ndistinction is unwarranted.\n\n>        During the millenium, we read that sins are dealt with immediately\n>under the present (ie that Christ is present on earth) rulership of Christ.\n\nI'm sure Rex has Scripture to back this up.  You're suggesting Jesus is\ngoing to travel around dealing with individual violations of His law -- for\nmillions perhaps billions of people.  Such activity for Moses the lawgiver\nwas considered unwise (cf. Ex. 18:13ff).  It makes for interesting\nspeculation, though.\n\nI'll leave comments on the so-called \"bema seat\" vs. \"throne\" judgments to\nsomeone else.  This also seems like more unnecessary divisions ala\ndispensationalism.\n\n--\nTom Albrecht\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5297, "properties": {"category": "misc.forsale", "text": "Subject: STAR TREK ORNAMENT\nFrom: danguye@eis.calstate.edu (Dang V Nguyen)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 10\n\n\n  Hey,\n   I have some Star Trek Christmas Ornaments for sale.  They are the the\nHallmark Shuttle Craft Galileo.  They went for $24.00 during christmas.  I\nam willing to sell it for that price + shipping.  If you are interested\nand have some questions, please reply... \n\n\ngive me a call at 714-539-4251.. DANG\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5298, "properties": {"category": "sci.electronics", "text": "From: sciamanda@edinboro.edu\nSubject: Re: Outdoor FM Antennas\nOrganization: Edinboro University of PA\nLines: 25\n\nIn article <beerb.9.0@ccmail.dayton.saic.com>, beerb@ccmail.dayton.saic.com (Bradlee Beer) writes:\n> I'm interested in buying or building an omnidirectional antenna for the \n> commercial FM band (88-108MHz).  The commonly sold ones are a folded dipole \n> bent in an \"S\" shape; and one with a pair of crossed dipoles.  I don't see \n> either of these designs as exhibiting any gain, and they probably aren't \n> truely omnidirectional.\n> \n> \n> I'm intrigued by the discone antenna.  Does anyone have detailed information\n> on how to design one for the FM band (with 75-ohm impedence)??  Is one\n> commercially available??  Are there other designs that have GAIN??  \n> \n> I already own a 10-element FM yagi.  It works great, but requires frequent \n> rotation for those distant stations.  \n> \n> Brad Beer,  4414 Castle Gate Drive,  Beavercreek, OH  45432-1814\n\nBrad,\n   For an antenna, gain is synonymous with directionality.  The only way \nto get gain (>1) out of an antenna is to design in directionality. The \n\"gain\" of an antenna is defined as the signal increase (for a preferred \ndirection) over the signal obtained by an isotropic antenna.\n\nBob Sciamanda\nEdinboro Univ of PA\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5299, "properties": {"category": "sci.med", "text": "From: dougb@comm.mot.com (Doug Bank)\nSubject: Re: Is MSG sensitivity superstition?\nReply-To: dougb@ecs.comm.mot.com\nOrganization: Motorola Land Mobile Products Sector\nNntp-Posting-Host: 145.1.146.35\nLines: 39\n\nIn article <1993Apr14.122647.16364@tms390.micro.ti.com>, david@tms390.micro.ti.com (David Thomas) writes:\n|> cnavarro@cymbal.calpoly.edu (CLAIRE) writes:\n\n|> >>Is there such a thing as MSG (monosodium glutamate) sensitivity?\n|> >>I saw in the NY Times Sunday that scientists have testified before \n|> >>an FDA advisory panel that complaints about MSG sensitivity are\n|> >>superstition. Anybody here have experience to the contrary? \n|> >>\n|> >>I'm old enough to remember that the issue has come up at least\n|> >>a couple of times since the 1960s. Then it was called the\n|> >>\"Chinese restaurant syndrome\" because Chinese cuisine has\n|> >>always used it.\n\n|> So far, I've seen about a dozen posts of anecdotal evidence, but\n|> no facts.  I suspect there is a strong psychological effect at \n|> work here.  Does anyone have results from a scientific study\n|> using double-blind trials?  \n\nHere is another anecdotal story.  I am a picky eater and never wanted to \ntry chinese food, however, I finally tried some in order to please a\ngirl I was seeing at the time.  I had never heard of Chinese restaurant\nsyndrome.  A group of us went to the restaurant and all shared 6 different\ndishes.  It didn't taste great, but I decided it wasn't so bad.  We went\nhome and went to bed early.  I woke up at 2 AM and puked my guts outs.\nI threw up for so long that (I'm not kidding) I pulled a muscle in\nmy tongue.  Dry heaves and everything.  No one else got sick, and I'm\nnot allergic to anything that I know of.  \n\nSuffice to say that I wont go into a chinese restaurant unless I am \nphysically threatened.  The smell of the food makes me ill (and that *is*\na psycholgical reaction).  When I have been dragged in to suffer\nthrough beef and broccoli without any sauces, I insist on no MSG.  \nI haven't gotten sick yet.\n\n-- \nDoug Bank                       Private Systems Division\ndougb@ecs.comm.mot.com          Motorola Communications Sector\ndougb@nwu.edu                   Schaumburg, Illinois\ndougb@casbah.acns.nwu.edu       708-576-8207                    \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.253+0000", "event": "documents", "entityId": 5300, "properties": {"category": "talk.politics.guns", "text": "From: ghm@sserve.cc.adfa.oz.au (Geoff Miller)\nSubject: Re: The 'pill' for Deer = No Hunting\nOrganization: Australian Defence Force Academy, Canberra, Australia\nLines: 61\n\njrm@gnv.ifas.ufl.edu writes:\n\n>Promising field experiments are being done this year in several areas of\n>the country relating to chemical contraceptive baits for deer. Preliminary\n>data suggests that this will be a cost-effective and humane method for\n>preventing over-population of habitats.\n\nPreliminary data regarding similar research into kangaroo overpopulation\nin Australia do not in any way support the cost-effectiveness of this\napproach.  It _may_ be cost-effective for deer--if you quietly overlook\nthe fact that the net cost to the state of deer hunting is _negative_\n(i.e. a profit) because the (majority of) hunters pay for licences.\nThe cost comparisons are probably being done assuming that people have\nto be employed to cull the animals, which is not in fact the case.\nYou figure people are going to pay for licences to implant contraceptive\npellets or spread baits?\n\nThere has been a fair bit of discussion about this here recently,\nbecause the kangaroo population in the grounds of the Governor-\nGeneral's residence has now reached plague proportions.  Despite the\nwhines of the rampant animal-libbers, the most effective method of\ncontrolling the population is still considered to be controlled\nshooting.\n\n>So, now why should we allow hunting ... to prevent over-population of\n>the deer/bear/<whatever> ? Sorry, but that 'justification' of blood-\n>lust is now gone with the wind. Once mass-production of this stuff\n>begins, animal populations can be easily managed without a shot being\n>fired.  This leaves only the fact that some people *like* to go out\n>in the woods and *kill* things.\n\nSome people take satisfaction (IMHO, legitimate satisfaction) in eating\nfood that they have harvested themselves.  The pleasure derived from\nhunting is the same as that you get from eating fruit and vegetables\ngrown in your own garden (and, in general, game meat is probably much \nfreer of unpleasant chemicals than what you buy from the butcher or\nthe supermarket).\n\n> That may be a motivation, but it\n>cannot now be justified. Expect PETA and like organizations to use\n>this argument to get hunting banned - period. \n\nBy \"cannot now be justified\" I guess you mean that you personally\ndon't see any justification.  Fine--but what makes your opinion\nso important?\n\n>With no legitimate hunting, with the papers filled with stories of\n>senseless murders ... I guess there won't be a chance in hell of\n>building a case for the RKBA that will withstand either public\n>opinion, necessity or scientific scrutiny. Don't give me that\n>\"silent majority wants guns\" crap ... they are and will be 'silent'.\n>No votes for RKBA, no RKBA. \n\nCertainly the last point is correct.  If politicians don't see any\nvotes for themselves in opposing stupid legislation or in developing\nand supporting measures which might be effective in reducing the \nincidence of violent crime they won't do these things.\n\nGeoff Miller  (g-miller@adfa.edu.au)\nComputer Centre, Australian Defence Force Academy\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5301, "properties": {"category": "soc.religion.christian", "text": "From: MANDTBACKA@finabo.abo.fi (Mats Andtbacka)\nSubject: Re: Hell_2: Black Sabbath\nOrganization: Unorganized Usenet Postings UnInc.\nLines: 12\n\nIn <Apr.22.00.57.03.1993.2118@geneva.rutgers.edu> jprzybyl@skidmore.edu writes:\n\n> I may be wrong, but wasn't Jeff Fenholt part of Black Sabbath?  He's a\n> MAJOR brother in Christ now.  He totally changed his life around, and\n\n      Why should he have been any different \"then\"? Ozzy Osbourne,\nex-singer and main character of the Black Sabbath of good ole days past,\nis and always was a devout catholic. Or so I've heard over on the\nalt.rock-n-roll.metal newsgroups, an' I figure those folks oughta know..\n\n-- \n  Disclaimer?   \"It's great to be young and insane!\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5302, "properties": {"category": "talk.religion.misc", "text": "From: lance@wolves.Durham.NC.US (Lance A. Brown)\nSubject: Re: Religion and homosexuality\nDistribution: usa\nOrganization: Wolves Den UNIX\nLines: 20\nX-Md4-Signature: c6a7a6853f7ccbdf5ccfea6cc9d0a079\n\nIn article <C4uzus.FKp@mailer.cc.fsu.edu> dlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n>lfoard@hopper.Virginia.EDU (Lawrence C. Foard) writes:\n>> Unlike kleptomaniacs and adulterers homosexuals hurt no one by having sex\n>> with the same sex. \n>\n>What about the homosexual whose family does not accept that decision and\n>is hurt (emotionally) by it?\n\nGood question.  I don't have a nice concise answer, though.  What about the\nchild whose parents are crushed emotionally because he/she starts a carerr\ndoing something they greatly dislike.  It is the same kind of harm, and\nis probably \"caused\" by the same thing:  The desire of the child to be \ntrue to his or her self.\n\nWhat is more important, being true to yourself or burying that truth within\nyou in order to maintain peace in the family?\n\nhard question, no good answer.\n\nLance\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5303, "properties": {"category": "rec.motorcycles", "text": "From: ivan@erich.triumf.ca (Ivan D. Reid)\nSubject: Re: Carrying crutches (was Re: Living\nOrganization: TRIUMF: Tri-University Meson Facility\nLines: 16\nDistribution: world\nNNTP-Posting-Host: erich.triumf.ca\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1pqhkl$g48@usenet.INS.CWRU.Edu>,\n\t ai598@cleveland.Freenet.Edu (Mike Sturdevant) writes...\n>\tWhen I got my knee rebuilt I got back on the street bike ASAP. I put\n>the crutches on the rack and the passenger seat and they hung out back a\n>LONG way. Just make sure they're tied down tight in front and no problemo.\n ^^^^\n\tHmm, sounds like a useful trick -- it'd keep the local cagers at least\na crutch-length off my tail-light, which is more than they give me now.  But\ndo I have to break a leg to use it?\n\n\t(When I broke my ankle dirt-biking, I ended up strapping the crutches\nto the back of the bike & riding to the lab.  It was my right ankle, but the\nbike was a GT380 and started easily by hand.)\n\nIvan Reid, Paul Scherrer Institute, CH.     \t\t\tivan@cvax.psi.ch\nGSX600F, RG250WD.     \"Beware drainage ditches on firetrails\"\tDoD #484\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5304, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: Countersteering_FAQ please post\nOrganization: Ontario Hydro - Research Division\nLines: 73\n\nIn article <1qjn7i$d0i@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n>In article 26051@rd.hydro.on.ca, jlevine@rd.hydro.on.ca (Jody Levine) writes:\n>>In article <1qc529$c1r@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n>\n>>>Single-track snow vehicles with front skis, and snow skis attached to\n>>>skiers' legs, deform the surface of the snow, creating their own bank.\n>>>Ice skates alter the phase of the ice, and also \"carve\" out their own\n>>>tracks.\n>>So what? \n>\n>So they have bugger all to do with motorcycles.  Hence, any apparent\n>similarity in handling characteristics may, or may *not* be analagous\n>in its underlying physics to that behind motorcycle handling\n>characteristics.\n\nOK, as one last attempt, I'll take a different tack.\n\nWe all seem to be in agreement that there are two explanations for why\none can use the handlebars to lean a moving motorcycle. The question is,\nis one of the effect dominant, and which one is it? The idea would be to\ndesign an experiment which would seaprate the two characteristics, and\nsee which effect produces a similar result to the one with which those of\nus who have bikes are familiar.\n\nLet's look at the one that, so far, has sparked no controversy on its\nown, gyroscopic precession. To examine this alone, we would have to\nget rid of the contact patch effect, by not allowing the contact patches\nto transmit any force. The wheels and steering mechanism would have to\nremain, and be attached to a vehicle with about the same weight as a bike,\nthrough suspension (so that the wheels transmit forces to the bike the\nsame way) similar to a bikes. An experiment would be to ride a bike along \na dry road to get moving and to get the wheels spinning, then change \nsurfaces to something that won't transmit forces through the contact \npatches, and try a steering manoeuvre to see if the bike leans. It \nprobably would, since some of us know how easy it is to fall down on ice, \nbut we wouldn't get a good idea of how well or what it feels like \nbecause, without the contact patches, we can't turn.  Maybe there's a \nbetter way. Besides, even ice doesn't get rid of the contact patch\nforces altogether, so we'd have to find a really frictionless surface.\nYou'd have to try it again with the wheels locked to really know if it\nwas the rotation that did it.\n\nLooking at the contact-patch effect only, however, is fairly simple.\nNow we have to find a vehicle that gets the about the same magnitude and\ndirection of cantact patch forces as a motorcycle, and transmits them\nabout the same way to the vehicle, but without rotating wheels.\nHow it gets the contact patch forces is irrelevant, we're just looking\nfor something that has contact patches that can go straight and not\nsideways, and skis or skates would do fine. I don't know of any snow-ski\nor skate bikes, but up here we have the Suzuki Wetbike that is arranged\nlike a motorcycle but has fat water skis where there should be wheels.\nI think the propellor is in front of the rear ski, or something like\nthat, but we could try it at a coast to get rid of most of its effect.\nNow I admit that this is second hand info (although I'd love to try\none of these), but the review in the local cycle rag and a guy in\na bike shop that sells them both say that this machine handles very\nmuch like a motorcycle, in that you countersteer it to turn.\nSo we have contact patches that transmit similar forces to a bike's,\na similar suspension arrangement, and no gyroscopes, but we do have\ncountersteering.\n\nConclusion: you don't need gyroscopes to countersteer vehicles that have\nmotorcycle-like contact patch arrangements. We still don't know what\nreal effect the gyroscopes have when they're there, but from my observations\nof how handlebar angle, force, etc. relate to steering in general, I'm \nwilling to bet that they're not the dominant factor in countersteering. \n\nIf you don't like this conclusion, then don't accept it, but my motorcycle's\nbehaviour is consistent with it. If someone can prove otherwise, go ahead.\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5305, "properties": {"category": "comp.graphics", "text": "From: dotzlaw@ccu.umanitoba.ca (Helmut Dotzlaw)\nSubject: Anti-aliasing utility wanted\nNntp-Posting-Host: murphy.biochem.umanitoba.ca\nOrganization: University of Manitoba\nLines: 10\n\nI am currently using POVRay on Mac and was wondering if anyone in netland\nknows of public domain anti-aliasing utilities so that I can skip this step\nin POV, very slow on this machine.  Any suggestions, opinions about\npost-trace anti-aliasing would be greatly appreciated.\n\n             Helmut Dotzlaw\nDept. of Biochemistry and Molecular Biology\n         University of Manitoba\n            Winnipeg, Canada\n        dotzlaw@ccu.umanitoba.ca\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5306, "properties": {"category": "sci.space", "text": "From: sichase@csa2.lbl.gov (SCOTT I CHASE)\nSubject: Re: Vandalizing the sky.\nOrganization: Lawrence Berkeley Laboratory - Berkeley, CA, USA\nLines: 22\nDistribution: world\nNNTP-Posting-Host: 128.3.254.197\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <pgf.735606045@srl02.cacs.usl.edu>, pgf@srl02.cacs.usl.edu (Phil G. Fraering) writes...\n>Jeff.Cook@FtCollinsCO.NCR.COM (Jeff Cook) writes:\n>....\n>>people in primitive tribes out in the middle of nowhere as they look up\n>>and see a can of Budweiser flying across the sky... :-D\n> \n>Seen that movie already. Or one just like it.\n>Come to think of it, they might send someone on\n>a quest to get rid of the dang thing...\n\nActually, the idea, like most good ideas, comes from Jules Verne, not\n_The Gods Must Be Crazy._  In one of his lesser known books (I can't\nremember which one right now), the protagonists are in a balloon gondola,\ntravelling over Africa on their way around the world in the balloon, when\none of them drops a fob watch.  They then speculate about the reaction\nof the natives to finding such a thing, dropped straight down from heaven.\nBut the notion is not pursued further than that.\n\n-Scott\n--------------------                          New .sig under construction\nScott I. Chase                                     Please be patient\nSICHASE@CSA2.LBL.GOV                                   Thank you \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5307, "properties": {"category": "talk.religion.misc", "text": "From: agr00@ccc.amdahl.com (Anthony G Rose)\nSubject: Re: Who's next?  Mormons and Jews?\nReply-To: agr00@JUTS.ccc.amdahl.com (Anthony G Rose)\nOrganization: Amdahl Corporation, Sunnyvale CA\nLines: 18\n\nIn article <1993Apr20.142356.456@ra.royalroads.ca> mlee@post.RoyalRoads.ca (Malcolm Lee) writes:\n>\n>In article <C5rLps.Fr5@world.std.com>, jhallen@world.std.com (Joseph H Allen) writes:\n>|> In article <1qvk8sINN9vo@clem.handheld.com> jmd@cube.handheld.com (Jim De Arras) writes:\n>|> \n>|> It was interesting to watch the 700 club today.  Pat Robertson said that the\n>|> \"Branch Dividians had met the firey end for worshipping their false god.\" He\n>|> also said that this was a terrible tragedy and that the FBI really blew it.\n>\n>I don't necessarily agree with Pat Robertson.  Every one will be placed before\n>the judgement seat eventually and judged on what we have done or failed to do\n>on this earth.  God allows people to choose who and what they want to worship.\n\nI'm sorry, but He does not!  Ever read the FIRST commandment?\n\n>Worship of money is one of the greatest religions in this country.\n\nYou mean, false religion!\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5308, "properties": {"category": "soc.religion.christian", "text": "From: coffey@cptc2.neep.wisc.edu (Robert L. Coffey)\nSubject: Re: Questions...\nOrganization: Univ. of Wisconsin,Madison., NEEP Department\nLines: 35\n\n>4. Who exactly is \"The Lord\"?  \"God\" or Jesus Christ?\n\nJohn 1:1 says (NKJV - the little green gideon someone forced on me one day)\n\"In the beginning was the Word, and the Word was with God, and the Word was \nGod.\"  The Word refers to Jesus Christ so from this John declares that God\nand Jesus are one.  Therefore, \"The Lord\" refers to both.  Also, David in the\nPsalms refers to both God in heaven and the coming messiah as his Lord.  Once\nagain this refers to God and Jesus.\n\n>5. What is the definition of a \"Truly religious\" person? Should he/she not \n   swear/curse?  Does it say anything about this in the bible?\n\nSome of the most \"truly religious\" people I've known have not been Christians\nand some of the greatest Christians I've known have been truly irreligious.\nHowever, to answer your question:\nThe bible speaks of this in many places, A previous post to James is a good\none.  Another is Psalm 15:\n\"Lord, who may abide in your tabernacle?  Who may dwell in your holy hill?  He\nwho walks uprightly, and works righteousness, and speaks the truth in his heart\nHe who does not backbite with his tongue, nor does evil to his neighbor, nor\ndoes he take up a reproach against his friend; I whose eyes a vile person is\ndespised, but he honors those who fear the Lord; he who swears to his own hurt\nand does not change; He who does not put out money at usury, nor does he take\na bribe aginst the innocent.  He who does these things shall never be moved.\"\n\n------------------------------------------------------------\nRob Coffey                    \"Indeed the safest road to \ncoffey@cptc1.neep.wisc.edu     Hell is the gradual one- the\n(if you send mail to cptc2     gentle slope, soft underfoot,\n I'll never read it)           without sudden turnings, \n                               without milestones, without\n                               signposts.\"  -- Screwtape\n------------------------------------------------------------\nThe day Techwood meets the wrecking ball the world shall rejoice.\nBut I'll have lost a former home.  \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5309, "properties": {"category": "comp.sys.mac.hardware", "text": "From: maynard@leah.msc.cornell.edu (Maynard J. Handley)\nSubject: QuickDraw GX (was Re: When are the rest of the Inside Mac's due?)\nOrganization: Cornell-Materials-Science-Center\nLines: 21\n\n>>\n>>We'll be releasing a whole new suite of QuickDraw GX-related docs. If\n>>you're going to be at the WWDC next month you'll get a preliminary\n>version\n>>of most of this documentation on the CD. We're talking multiple\n>thousands\n>>of pages, I'm afraid; GX (comprising graphics, layout and printing)\n>has\n>>LOTS of new API calls and other functionality, all of which need\n>documenting...\n>>\n>>Dave Opstad\n>>GX Line Layout Weenie\n\nDoes GX take the place of 32 bit QD or add to it? Right now 32 bit is\nkinda aesthetically a pain in a few places because of hacks upon hacks\nto maintain compatibility with original QD---I think of things like\nwhere you have to cast CGrafPorts to GrafPorts and such. It would be a\nlot cleaner to ditch this entire mess and start over---do we get that?\n\nMaynard\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5310, "properties": {"category": "sci.space", "text": "From: cain@geomag.gly.fsu.edu (Joe Cain)\nSubject: Drag free satellites (was: Stephen Hawking Tours JPL)\nKeywords: JPL\nOrganization: Florida State University Geology Dept.\nLines: 23\n\nIn article <1raee7$b8s@access.digex.net> prb@access.digex.com (Pat) writes:\n>In article <23APR199317325771@kelvin.jpl.nasa.gov> baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n>> In answer\n>>to a question from Hawking, Chahine described a proposed\n>>drag-free satellite, but confirmed that at this point, \"it's only\n>>a concept.\" \n>\n>SO what's a drag free satellite?   coated with WD-40?\n\n\tI am puzzled by the term \"concept.\" Drag free may already have\nbeen flown. It was the idea behind putting up a spacecraft that would\nmore accurately respond to motions from the Earth's gravity field and\nignore drag. It was proposed many years ago and involved a ball\nfloating between sensors whose job it was to signal to little\nadjustment jets to keep the ball away from them. The ball itself would\nthen be in a drag free condition and respond only to gravity\nanisotropies, whereas the spacecraft itself would be continuously\nadjusting its position to compensate for drag.\n\n\nJoseph Cain\t\tcain@geomag.gly.fsu.edu   \ncain@fsu.bitnet\t\tscri::cain\n(904) 644-4014\t\tFAX (904) 644-4214 or -0098\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5311, "properties": {"category": "talk.politics.guns", "text": "From: manes@magpie.linknet.com (Steve Manes)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nOrganization: Manes and Associates, NYC\nDistribution: na\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 38\n\nhambidge@bms.com wrote:\n: In article <C4psoG.C6@magpie.linknet.com>, manes@magpie.linknet.com (Steve Manes) writes:\n\n: >: Rate := per capita rate.  The UK is more dangerous.\n: >: Though you may be less likely to be killed by a handgun, the average\n: >: individual citizen in the UK is twice as likely to be killed\n: >: by whatever means as the average Swiss.  Would you feel any better\n: >: about being killed by means other than a handgun? I wouldn't.\n: \n: >What an absurd argument.  Switzerland is one-fifth the size of the\n: >UK with one-eigth as many people therefore at any given point on\n: >Swiss soil you are more likely to be crow bait.  More importantly,\n: >you are 4x as likely to be killed by the next stranger approaching\n: >you on a Swiss street than in the UK.\n\n: You are betraying your lack of understanding about RATE versus TOTAL\n: NUMBER. Rates are expressed, often, as #/100,000 population.\n: Therefore, if a place had 10 deaths and a population of 100,000, the\n: rate would be 10/100,000.  A place that had 50 deaths and a population\n: of 1,000,000 would hav a rate of 5/100,000.  The former has a higher\n: rate, the latter a higher total.  You are less likely to die in the\n: latter.  Simple enuff?\n\nFor chrissakes, take out your calculator and work out the numbers.\nHere... I've preformatted them for you to make it easier:\n\n\t\t\thandgun homicides/population\n\t\t\t----------------------------\n\tSwitzerland :\t24 /  6,350,000\n\t         UK :    8 / 55,670,000\n\n... and then tell me again how Switzerland is safer with a more\nliberal handgun law than the UK is without...by RATE or TOTAL NUMBER.\nYour choice.\n-- \nStephen Manes\t\t\t\t\t   manes@magpie.linknet.com\nManes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5312, "properties": {"category": "sci.electronics", "text": "From: scst83@csc.liv.ac.uk (Mr. C.D. Smith)\nSubject: Re: Homebuilt PAL (EPLD) programer?\nOrganization: Computer Science, Liverpool University\nLines: 27\nNntp-Posting-Host: goyt.csc.liv.ac.uk\n\nIn sci.electronics timd@fenian.dell.com writes:\n\n>Anyone know a reasonable circuit for programming PALs?  I am interested\n>in programming a wide range of EPLDs but would be happy with something \n>that could handle a 22V10 or thereabouts.\n\nI too would be interested in ANY information on the subject of programing\nPALS etc.....\n\n  Better to know what your on about before you start something, I always\nsay. Often saves you a packet as well !!\n\nThanks in advance..\n\nChris ;-)\n\n  +====================================================================+\n  |Name : Mr Chris Smith       |     Twang on that 'ole guitar !       |\n  |Addrs: scst83@uk.ac.liv     |                                       |\n  |Uni  : Liverpool University |Quest: To build more and more hardware |\n  |Dgree: Computer Science     |                                       |\n  +====================================================================+\n\n \"What ever the Sun may be, it is certainly not a ball of flaming gas!\"\n  -- D.H. Lawrence.\n\n * All views expressed are my own, and reflect that of private thought. *\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5313, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bilan@cps.msu.edu (Thomas J Bilan)\nSubject: W4WG & Novell\nOrganization: Dept. of Computer Science, Michigan State University\nLines: 23\nDistribution: world\nNNTP-Posting-Host: walnut.cps.msu.edu\nOriginator: bilan@walnut.cps.msu.edu\n\nI installed Windows for Workgroups on my network and I'm having problems \nmapping drives in the file-manager.\n\nSituation:\nIf I put LASTDRIVE = Z in my config.sys, NETX will run but I can't access\ndrive f: to log in to Novell.  \nIf I don't put LASTDRIVE = Z in my config.sys I can't access other W4WG \ndrives from the file-manager.\n\nIt seems that there should be a way to make NETX work with the LASTDRIVE = \nstatement in my Config.Sys.\n\nI would appreciate any help.  It's probably an easy problem that all you \nWindows guru's solved many many moons ago...\n\nThanks,\nTom Bilan\n\n-- \n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\\n$ Department of Death by Engineering   ^   Surgeon General's Warning:        $\n$ Michigan State University            ^   Graduate School may cause brain   $\n$ bilan@cps.msu.edu                    ^   damage and sporadic loss of hair  $\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5314, "properties": {"category": "comp.graphics", "text": "From: daniel@lclark.edu (Daniel Snodgrass)\nSubject: Re: stand alone editing suite.\nArticle-I.D.: lclark.1993Apr20.191542.9392\nOrganization: Lewis & Clark College, Portland OR\nLines: 63\n\nIn article <1qvkaeINNgat@shelley.u.washington.edu> eylerken@stein.u.washington.edu (Ken Eyler) writes:\n>I need some help.  We are upgrading our animation/video editing stand. We\n>are looking into the different type of setups for A/B roll and a cuts only\n>station.  We would like this to be controlled by a computer ( brand doesnt matter but maybe MAC, or AMIGA).  Low end to high end system setups would be very\n>helpful. If you have a system or use a system that might be of use, could you\n>mail me your system requirements, what it is used for, and all the hardware and\n>software that will be necessary to set the system up.  If you need more \n>info, you  can mail me at   eylerken@u.washington.edu\n>\n>thanks in advance.\n>\n>:ken\n>:eylerken@u.washington.edu\n\n\nHere at Lewis and Clark College we have recently installed a Digital Film\nsystem (based on the Mac Quadra) that does non-linear, full digital editing.\n\nIf you're considering such a system, here are the pros and cons:\n\nFor the educational environment, this system is excellent.  We use it to\nproduce a variety of educational materials for disemination on our local\nnetwork.  Because this programming is going to be viewed on other Macs, the\nimage quality is not as important as the ability to directly export the\nvideo to the Net.\n\nWe also use it to produce orientiation and promotional video programs for\nuse by the Lewis & Clark community.  Since these programs are not meant for\ncommercial or broadcast use, image quality is not critical.\n\nThe Digital Film system, for those of you who are uninitiated, is an A/B roll\ndigitizing system on one $5000 JPEG compression card.  It was promoted as\nan inexpensive online editing system with SVHS quality.  SuperMac, the maker\nof the card, is trying to achieve this quality level, but as yet, has been\nunable to deliver.  Our system produces \"near VHS\" quality at 30 fields per\nsecond (640x480 overscan).  The card repeats every other field to get 60\nfields per second.  This results in a kind of Super 8 film look that some\nfind distracting.\n\nIf you can get past this problem, you'll find the Adobe Premier editing \nsoftware quite enjoyable with which to work.  It produces thousands of\ndifferent effects from crystalize filters to DVE transitions to color matting.\n\nBecause of its non-linear nature, editing is fast and easy.  If you've ever\nused (or seen used) an AVID or Montage system, you'll recognize the methodology\nand the user interface.\n\nThe total system with Quadra 950 (40Megs of RAM), 1 gig drive, 21\" Apple mon-\nitor, Panasonic SVHS 1960 edit deck, audio gear (cassette, CD, EQ, mixer, etc),\nComposite monitor, Digital Film card will set you back about $20,000.\n\nFor you video cowboys and girls, this system will not output at a quality\nthat will satisfy most of your clients.  Even though you can perform more\neffects than a toasterhead can imagine, an Amiga based off-line based system\nwill look better.\n\nWe use both Macs and Amigas for our video work.  Each for what each does best!\n\n\nDan Snodgrass\nMedia Services\nLewis & Clark College\nPortland\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5315, "properties": {"category": "rec.sport.baseball", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: Braves Pitching UpdateDIR\nOrganization: Adobe Systems Incorporated\nLines: 21\n\nIn article <1993Apr15.214032.1@acad.drake.edu> sbp002@acad.drake.edu writes:\n> \n>> Not clear to me at all.  I'd certainly rather have a team who was winning\n>> 4-1 games than 2-1 games.  In the 2-1 game, luck is going to play a much\n>> bigger role than in the 4-1 game. \n>\n>But you still need the pitching staff to hold the opposing team to\n>one run.\n\nYeah, but what's your point?  You still need the offense to score more runs\nthan you allow, too.  \n\nThe Braves do have a fine pitching staff.  But that's still only half the\ngame.  \n\nSherri Nichols\nsnichols@adobe.com\n\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5316, "properties": {"category": "talk.politics.mideast", "text": "From: amehdi@src.honeywell.com (Hossien Amehdi)\nSubject: Re: was: Go Hezbollah!!\nNntp-Posting-Host: tbilisi.src.honeywell.com\nOrganization: Honeywell Systems & Research Center\nLines: 27\n\nIn article <BRADSKI.93Apr15210934@retina.bu.edu> bradski@retina.bu.edu (Gary Bradski) writes:\n>>>>>> On 15 Apr 93 03:13:49 GMT, amehdi@src.honeywell.com (Hossien Amehdi) said:\n>\n>>> I was merley pointing out that the other side is also suffering.\n>>> Like I said, I'm not an Arab but if I was, say a Lebanese, you bet\n>>> I would defende my homeland against any invader by any means.\n>                                       ^^^\n>The Syrians?  Iranian agents?  Or just Israeli invaders?\n>--\n>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   ---------------\n>Gary Bradski                  I'net: bradski@park.bu.edu       | reverberate |  \n>Cognitive and Neural Systems                                   ---------------\n>Boston University.                                                 |  V V\n>111 Cummington St, Boston MA 02215                                 ^   Y\n>617/ 353-6426                                                     ^ ^  | \n>                                                               --------------\n>            I don't even agree with some of my opinions        |   or die!  |\n>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   --------------\n>\n\nI did say *any* invader, didn't I?  What do you want from me, perhaps a neural\nnet design with all countries involved in Lebanon as its nodes? :-)  (You are\nin Cognitive and Neural Systems)\n\nIf that's the case, I would put different weights for each country in my\nnet.  \n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5317, "properties": {"category": "sci.crypt", "text": "From: Rick Miller - former spook <rick@ee.uwm.edu>\nSubject: Alternate *legal* wiretaps.\nOrganization: Just me.\nLines: 43\nNNTP-Posting-Host: 129.89.2.33\nSummary: Nothing spooky, it's an Executive Order.\n\ntuinstra@signal.ece.clarkson.edu.soe writes:\n[...]\n>  It would be a strong incentive, as Vesselin points out, for more\n>police agencies to \"go rogue\" and try to get keys through more efficient\n>(but less Constitutional) means.  Notice what the release said:\n>\n>   Q:   Suppose a law enforcement agency is conducting a wiretap on\n>        a drug smuggling ring and intercepts a conversation\n>        encrypted using the device.  What would they have to do to\n>        decipher the message?\n>\n>   A:   They would have to obtain legal authorization, normally a\n>                                                       ^^^^^^^^^^\n>        court order, to do the wiretap in the first place.\n>        ^^^^^^^^^^^\n\n>The clear implication is that there are \"legal\" authorizations other\n>than a court order.  Just how leaky are these?  (And who \n>knows what's in those 7 pages that authorized the NSA?).  There\n[...]\n\nI was a cryptologic tech in the US Navy (CTRSN, nothing big).  All 'spooks'\nin the Navy are required to know the \"gist\" of \"USSID 18\", the Navy-way of\nnaming a particular Presidential \"Executive Order\".  It outlines what spooks\ncan and can't do with respect to the privacy of US nationals.\n\nThe following information is (of course) UNCLASSIFIED.\n\nThe whole issue hangs about what you mean by \"wiretap\".  If the signal can\nbe detected by \"non-intrusive\" means (like radio listening), then it may be\nrecorded and it may be \"analyzed\".  \"Analyzed\" means that it may be either\ndeciphered and/or radio-location may be used to locate the transmitter.\n\nThe catch is this:  Any and all record of the signal and its derivatives\nmay only be kept for a maximum of 90 days, after which they are destroyed\nunless permission is obtained from the US Attorney General to keep them.\n\nDidn't you ever wonder how Coast Guard cutters *find* those drug-runners\nin all those tens of thousands of square miles of sea, even in the dark?!?\n\nRick Miller  <rick@ee.uwm.edu> | <ricxjo@discus.mil.wi.us>   Ricxjo Muelisto\nSend a postcard, get one back! | Enposxtigu bildkarton kaj vi ricevos alion!\n          RICK MILLER // 16203 WOODS // MUSKEGO, WIS. 53150 // USA\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5318, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: perry@wswiop13.win.tue.nl (Perry Egelmeers)\nSubject: Will somebody create a Messie DOS 6.0 FAQ, please? (Was: Dos 6.0 question)\nOrganization: Eindhoven University of Technology, The Netherlands\nLines: 9\nDistribution: world\nNNTP-Posting-Host: wswiop13.win.tue.nl\n\n\nHi there,\n\nI think it is time to create a MS DOS 6.0  FAQ since lots of questions\nabout it are actually flooding the net.  I won't be able to write it\nmy self because of the lack of time/knowledge/experience.\n\n\nPerry Egelmeers\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5319, "properties": {"category": "talk.politics.guns", "text": "From: manes@magpie.linknet.com (Steve Manes)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nOrganization: Manes and Associates, NYC\nDistribution: na\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 39\n\nSteve Kao (k@hprnd.rose.hp.com) wrote:\n: Frank Crary posted:\n: : Sure, but the difference in per-capita crime rates predates the\n: : gun control laws: The homicide rate in England was a tenth that\n: : of America, back when anyone in England could buy a gun without\n: : any paperwork at all.\n\n: Steve Manes asks:\n: > Got a citation for this?\n\n: Colin Greenwood from Scotland Yard did a study that showed that gun\n: control has had no effect on crime or murder rates in the UK.  His book,\n: _Firearms_Controls_, has been published in London by Keegan Paul (name\n: may be misspelled).\n\nOthers dispute that, like Richard Hofstadter, <America As A Gun Culture>,\nand Newton and Zimring's <Firearms and Violence in American Life>.  But,\nagain, statistics between too dissimilar cultures are difficult to\nquantify.\n\nI don't know how anyone can state that gun control could have NO\neffect on homicide rates.  There were over 250 >accidental< handgun\nhomicides in America in 1990, most with licensed weapons.  More\nAmerican children accidentally shot other children last year (15)\nthan all the handgun homicides in Great Britain.  (Source: National\nSafety Council.  Please... no dictionary arguments about RATES vs\nTOTAL NUMBERS, okay?  They're offered for emphasis, not comparison).\n\nIf Mr. Greenwood believes that Brits are much too sober and\ncoordinated to make such mistakes I'd like to introduce him to my\nfriend, Amanda from Brighton.  I used to have some pretty nice\ncrystal in my place until she moved in.  I've gotten used to the\nsnide comments from guests about the clown motif on my rubber\nwine glasses.\n\n-- \nStephen Manes\t\t\t\t\t   manes@magpie.linknet.com\nManes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.254+0000", "event": "documents", "entityId": 5320, "properties": {"category": "sci.crypt", "text": "From: ld231782@LANCE.ColoState.Edu (L. Detweiler)\nSubject: An Open Letter to Mr. Clinton\nNntp-Posting-Host: dolores.lance.colostate.edu\nOrganization: Colorado State University, Fort Collins, CO  80523\nLines: 123\n\n\nI'm quite astonished, shocked, and appalled at this serious frontal \nassault on emerging American freedoms.  The Clinton administration \nnor any other government agency has any legitimate role whatsoever \nin regulating cryptography. To do so is tantamount to regulating \n`acceptable' speech, and is blatantly unconstitutional. Perhaps we \nshould rename this year `1984' in honor of such an illustrious \nproposal.  Let the Crappy Chip live in infamy, and the adminstration\nreceive great shame and discredit for this bizarre misadventure.\n\nI am outraged that my tax money is being used to develop technology\nto restrict my freedoms far beyond reasonable measures.  The U.S.\ngovernment will have my full uncooperation and disobedience on any\nserious threat to my liberties such as this, and I call on everyone\nwith an interest in a sensible government to resist and defy this \nproposal.  The administration does not seem to understand that they\nare merely a subservient instrument to implement the will of the\npublic, and hence anyone involved in this proposal in this respect is \nwholly negligent and remiss in performing their lawful duty.\n\n>While encryption\n>technology can help Americans protect business secrets and the\n>unauthorized release of personal information, it also can be used\n>by terrorists, drug dealers, and other criminals.\n\nIt seems to me that U.S. Diplomatic communications should be \ntappable by the U.N. whenever any countries produce a warrant to\nthe U.N.  In fact, I think we should stop paying the NSA billions\nof dollars a year to produce unbreakable codes for this reason.\nThese actions violate the sovereignity of international law. (I hope\nMr. Clinton is shrewd enough to recognize my sarcasm and satire here.\nBut if he isn't, it's a modest and reasonable proposal, so he should\nfind merit with it nevertheless.)\n\nCryptography is neutral technology. If everybody has strong \ncryptography (including policemen, bureacrats, businessmen, \nhousewives, thugs and hoodlums), we have a sustainable \nequilibrium.  Anything less is an unworkable anti-egaltarian \narrangement, intrinsically antithetical to American freedoms, and\nguaranteed to collapse under its own weight of inherent \nimpracticality. We don't need to compromise on issues of freedom.\n\n>For too long there has been little or no dialogue between our\n>private sector and the law enforcement community to resolve the\n>tension between economic vitality and the real challenges of\n>protecting Americans.\n\nFor too long our government has demonstrated itself to be \nincreasingly hostile and a serious obstacle to economic vitality \nand protecting Americans.\n\n>Since encryption technology will play an increasingly important\n>role in that infrastructure, the Federal Government must act\n>quickly to develop consistent, comprehensive policies regarding\n>its use.  The Administration is committed to policies that\n>protect all Americans' right to privacy while also protecting\n>them from those who break the law.\n\nIt is not possible for the Federal Government\nto ``act quickly'' or develop ``consistent, comprehensive\npolicies'' PERIOD.  And even if by some grandiose miracle such\na thing were possible, it would only be an efficient way to\ndeprive American citizens of fundamental and inalienable rights.\n\nThe administration has to be committed to leaving private \nindustries alone, esp. on this issue.  The government has no \nlegitimate role in regulating the content of communications.\nLaw enforcement agencies must be prepared to forfeit their\nsurveillance bludgeon; they are soon and inevitably to be \ndisarmed of it. \n\n>Q:   If the Administration were unable to find a technological\n>     solution like the one proposed, would the Administration be\n>     willing to use legal remedies to restrict access to more\n>     powerful encryption devices?\n\nNo such laws can be constitutionally sound, and this is equivalent\nto a veiled threat, which I don't appreciate.  This kind of \nextortion tends to agitate me and others into radicalism. I will\ntrade threats for threats, and violation for violation.\n\n>     The Administration is not saying, \"since encryption\n>     threatens the public safety and effective law enforcement,\n>     we will prohibit it outright\" (as some countries have\n>     effectively done);\n\nIf the administration did say this, it would find itself \nimpeached for reckless and outrageous disregard of essential,\nestablished, entrenched, and explicit constitutional privacy \nguarantees. The administration would have no legal standing \nwhatsoever; such an action would be egregiously illegal and\ncriminal, and wholly untolerated and disregarded by vast \nsegments of the population.\n\n>     nor is the U.S. saying that \"every\n>     American, as a matter of right, is entitled to an\n>     unbreakable commercial encryption product.\" \n\nThe U.S., comprised of a vast majority of people fanatically \ncommitted to preserving their privacy in the face of an \nincreasingly totalitarian government, is saying just that.  \nTake your chips and give them to NSA employees as Christmas bonuses.\nWe can run any algorithm on our computers we damn well please, \nand we will make any chips we please, and we will send any bit \npattern over our data highways we please. And if you try to stop \nus, you will be gradually or abruptly dissolved into nothingness.\n\n[privacy vs. law enforcement]\n>     There is a\n>     false \"tension\" created in the assessment that this issue is\n>     an \"either-or\" proposition. \n\nThis is an outright Dingaling Denning lie.  The two aims of\nprivacy and surveillance are intrinsically and fundamentally \nincompatible, and you have to work for the NSA to think otherwise. \nAmericans are about to discover ways, through the use of technology, \nto preserve their inalienable but forgotten freedoms that have slowly \nbeen eroded away by an increasingly distant and unresponsive and \n*unrepresentative* government.\n\n--\n\nld231782@longs.LANCE.ColoState.EDU\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5321, "properties": {"category": "comp.graphics", "text": "From: ricardo@rchland.vnet.ibm.com (Ricardo Hernandez Muchado)\nSubject: Re: Newsgroup Split\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: rs43873.rchland.ibm.com\nOrganization: IBM Rochester\nLines: 21\n\nIn article <1quvdoINN3e7@srvr1.engin.umich.edu>, tdawson@engin.umich.edu (Chris Herringshaw) writes:\n|> Concerning the proposed newsgroup split, I personally am not in favor of\n|> doing this.  I learn an awful lot about all aspects of graphics by reading\n|> this group, from code to hardware to algorithms.  I just think making 5\n|> different groups out of this is a wate, and will only result in a few posts\n|> a week per group.  I kind of like the convenience of having one big forum\n|> for discussing all aspects of graphics.  Anyone else feel this way?\n|> Just curious.\n|> \n|> \n|> Daemon\n|> \n\n   I agree with you.\n\n--------------------------------------\nRaist  New A1200 owner   320<->1280 in x, 200<->600 in y\nin 256,000+ colors from a 24-bit palette.  **I LOVE IT!**<- New Low Fat .sig\n*don't e-mail me* -> I don't have a valid address nor can I send e-mail\n\n  \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5322, "properties": {"category": "soc.religion.christian", "text": "From: Desiree_Bradley@mindlink.bc.ca (Desiree Bradley)\nSubject: Being right about messiahs\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 39\n\nI must have missed the postings about Waco, David Koresh, and the Second\nComing.  How does one tell if a Second Coming is the real thing, unless the\nperson claiming to be IT is obviously insane?\n\nI'm not saying that David Koresh is the Second Coming of Christ.  How could\nsomebody who breaks his word be the Second Coming?  Koresh did promise that\nhe would come out of his compound if only he was allowed to give a radio\nbroadcast.  He didn't.  Still it seems to me that he did fool some people.\n\nAnd, from my meagre knowledge of the Bible, it seems that Christians have\nbeen hard on the Jews of Christ's day for being cautious about accepting\nsomebody that their religious authorities didn't accept as the Messiah.\n\nSo I was surprised that nobody had discussed the difficulty of wanting to be\nearly to recognize the Second Coming while, at the same time, not wanting to\nbe credulously believing just anybody who claims to be God.\n\n[Mark 13:21   And then if any one says to you, 'Look, here is the Christ!' \nor 'Look, there he is!' do not believe it. \nMark 13:22   False Christs and false prophets will arise and show signs and \nwonders, to lead astray, if possible, the elect. \nMark 13:23   But take heed; I have told you all things beforehand. \nMark 13:24    \"But in those days, after that tribulation, the sun will be \ndarkened, and the moon will not give its light, \nMark 13:25   and the stars will be falling from heaven, and the powers in \nthe heavens will be shaken. \nMark 13:26   And then they will see the Son of man coming in clouds with \ngreat power and glory. \n\nMy understanding of Jesus' answer is that, unlike his first coming,\nwhich was veiled, the second coming will be quite unmistakeable.  He's\ntelling us not to be misled by the other things that have to happen\nbefore his second coming -- the actual second coming will make his\npower openly visible.\n\nBy the way, from Koresh's public statement it's not so clear to me\nthat he is claiming to be Christ.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5323, "properties": {"category": "comp.graphics", "text": "From: freemant@dcs.glasgow.ac.uk (Toby Freeman,TJF,G151,3344813,OCT95, )\nSubject: Re: CorelDraw Bitmap to SCODAL\nNntp-Posting-Host: speedwell\nReply-To: freemant@dcs.glasgow.ac.uk\nOrganization: Dept. of Computing Science, Glasgow University, Glasgow.\nLines: 38\n\n>Does anyone know of software that will allow\n>you to convert CorelDraw (.CDR) files\n>containing bitmaps to SCODAL, as this is the\n>only format our bureau's filmrecorder recognises.\n>\n>Jeff Lyall\n\nI used this combination for a while - A QCR-Z recorder,\nI think - and as far as I remember Corel can EXPORT in\nSCODAL (.scd) format.  Just select 'EXPORT' on the main\nfile menu.  This may not be implemented in earlier versions,\nof course, in which case you're on your own!!!\n\nAlso, I seem to think that the s/w for the QCR-Z (at the time)\ndid strange (and very undesirable) things if ANY part of the\npic was outside the screen area on Corel.  I once spent an\nafternoon painfully discovering that ONE pixel had somehow\nstrayed off-screen, causing my whole slide to be blank!!!\n\nThe QCR-Z also couldn't handle grad-fill over grad-fill -\nso if you use a graduated colour background, if you then\ngrad-fill an object on top of this, the fill appears on the\nfinal slide as a circle (I think) and TOTALLY IGNORES the\nshape of the object being filled!!!\n\nOf course, if the recorder isn't a QCR, you can ignore all\nthis and feel suitably :-)\n\nCheers, Toby.\n____________________________________._.____._.__________._.__________._.______\n____________________________________!  \\__/  !__________!_!__________! !______\n___!                            !___! . \\/ . !___.__.___._.___.___._.! !__.___\n___! Toby Freeman               !___! !\\  /! !__/ __ \\__! !__/ .__!_!. .__!___\n___! Glasgow University         !___! !_\\/_! !_! !__! !_! !_! <__.___! !______\n___! freemant@uk.ac.glasgow.dcs !___! !____! !_! !__! !_! !__\\___ \\__! !______\n___!____________________________!___! !____! !_! !__! !_! !_.____> !_! !__.___\n____________________________________!_!____!_!__\\____/__!_!_!_____/___\\___!___\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5324, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu The Liberalizer (Michael Lurie)\nSubject: Re: YANKKES 1 GAME CLOSER\nArticle-I.D.: alleg.1993Apr6.210350.2865\nOrganization: Allegheny College\nLines: 29\n\nIn article <002251w.5.734117130@axe.acadiau.ca> 002251w@axe.acadiau.ca  \n(JASON WALTER WORKS) writes:\n>     The N.Y.Yankees, are now one game closer to the A.L.East pennant.   \nThey \n> clobbered Cleveland, 9-1, on a fine pitching performance by Key, and two \n> homeruns by Tartabull(first M.L.baseball to go out this season), and a  \nthree \n> run homer by Nokes.  For all of you who didn't pick Boggs in your pools, \n> tough break, he had a couple hits, and drove in a couple runs(with many  \nmore \n> to follow).  The Yanks beat an up and coming team of youngsters in the \n> Indians.  The Yankees only need to win 95 more games to get the  \ndivision.\n>  GO YANKS., Mattingly for g.glove, and MVP, and Abbot for Cy Young.\n> \n>                                              ---> jason.\n\nJason, I am going to a yankee game wed night at cleveland stadium. I am so  \nhappy.\n\n\nBut Cleveland is a very bad team who lost severalrs. They were an up and  \ncoming team, now they are just a sad excuse for a better average.\n\n\n\nABBOT WILL NOT WIN THE CY.!!!!!! MELIDO PEREZ WILL. as bold a prediction  \nas they come., Well herOT be in last place by the end of the season. Mike  \nlurie Speaks, and the world listens.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5325, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: 2a42dubinski@vms.csd.mu.edu\nSubject: Re: Can I Change \"Licensed To\" Data in Windows 3.1?\nOrganization: Marquette University - Computer Services\nLines: 19\nReply-To: 2a42dubinski@vms.csd.mu.edu\nNNTP-Posting-Host: vmsd.csd.mu.edu\n\nIn article <1993Apr15.180633.3437@trintex.uucp>, charles@tinman.dev.prodigy.com () writes:\n>Have you tried re-installing the software?   Otherwise I would be dubious about\n>simple ways to change that screen. Is it not designed to be an embarassment to\n>would be pirates?\n>\n\n\tahh, yes, this is a fun topic.  No, once the name is incribed on the\ndisk, that is it, it is encoded.  Not even a HEX editor will find it.  You can\nwrite over the \"Licensed to:\", but you can't change the name underneth it.  I\nthink if you wish to change this you would have to be a pirate, and we're not\ngoing to promote that here.\n\n  ------------------------------------------------------------------------\n  | Robert S. Dubinski |  Aliases include:  Robb, Regal, Sir, Mr., and I |\n  ------------------------------------------------------------------------\n  | Marquette University ||||||||||| Math / Computer Science Double-Major|\n  ------------------------------------------------------------------------\n  | Internet Address: 2A42Dubinski.vms.csd.mu.edu  |\tMilwaukee, WI    |\n  ------------------------------------------------------------------------  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5326, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: guns in backcountry? no thanks\nOrganization: The University of Texas at Austin, Austin TX\nLines: 34\nNNTP-Posting-Host: louie.cc.utexas.edu\n\nreimer@uinpla.npl.uiuc.edu (Paul E. Reimer) writes:\n|There are a lot of automobile accidents, but atleast there is some\n|regulation to try to combat this.  When I got my drivers license, I HAD\n|to take a drivers safety class.  I HAVE to be licensed to drive.  My car\n|MUST be registered.  I MUST (at least where I live) have liability\n|insurance on both myself driving and my car (if someone else had an\n|accident with it).  Hmm, wouldn't manditory saftey classes, registration\n|of both the owner and gun, and manditory liability insurance be nice for\n|gun owners.\n\nAs I'm sure others will have pointed out to you by now, none of the above\nmeasures are required for you *on your own property*.  You do not have to\nhave a license, your car does not have to be registered or inspected, and\nyou do not have to have insurance or safety training classes, when you own\nand operate that vehicle on your own premises.  If you are going to make use\nof this dubious analogy, at least make it accurate.  And by the way, in Texas\nyou can drive a car in public (with the proper credentials), but an ordinary\ncivilian can't carry a gun legally in public to save his/her life.\n\nSo I won't even consider registration, *manadatory* safety classes, or\n*manadatory* liability insurance unless I get a federal law repealing\nall local, state, and federal gun control laws which abridge the Second\nAmendment, and a non-discretionary federal weapons carry permit, good\nanywhere in the United States.  Come on, you wanted the analogy.\n\n\nMike Ruff\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5327, "properties": {"category": "misc.forsale", "text": "From: rob@mother.bates.edu (Rob Spellman)\nSubject: 3M DC6150s for sale\nOrganization: Bates College, Lewiston, ME\nLines: 10\n\n\nWe no longer use quarter inch tape for backups, and have a case of\nunopened DC6150s for sale.  I'll sell the lot, or in boxes of 5 tapes\neach.\n\n-- \nRob Spellman\nrob@mother.bates.edu\nComputing Support Services\nBates College\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5328, "properties": {"category": "rec.motorcycles", "text": "From: egreen@east.sun.com (Ed Green - Pixel Cruncher)\nSubject: Re: Observation re: helmets\nOrganization: Sun Microsystems, RTP, NC\nLines: 12\nDistribution: world\nReply-To: egreen@east.sun.com\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article 734919391@u.washington.edu, moseley@u.washington.edu (Steve L. Moseley) writes:\n>\n>So what should I carry if I want to comply with intelligent helmet laws?\n\nTake up residence in a fantasy world. \n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5329, "properties": {"category": "rec.sport.hockey", "text": "Organization: Penn State University\nFrom: Robbie Po <RAP115@psuvm.psu.edu>\nSubject: Did The Blues Pull It Out?\nLines: 10\n\nWhen I left, it was 4-3, Blues with 2:00 to go!  As I predicted in\n\"@#$%! I was right in the first place!!!\"  Blues in 6!  YES!!!\n\nOf course it's only one game -- that could be the 'Hawks stab in the face to\nwake them up -- that's what playoffs are about, on any given day... :-)\n-------------------------------------------------------------------------\n** Robbie Po **          PGH PENGUINS!!!    \"We do what comes naturally!\nPatrick Division Semi's  '91 STANLEY CUP    You see now, wait for the\nPENGUINS 6, Devils 3     '92 CHAMPIONS      possibility, don't you see a\nPenguins lead, 1-0       12 STRAIGHT WINS!  strong resemblance...\"-DG '89\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5330, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: NHL team leaders in +/-\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nLines: 42\n\nIn article <1993Mar29.190650.28940@ramsey.cs.laurentian.ca> maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n\n>The Jets use the \"breakaway pass\" scheme to create a scoring sensation\n>in order to generate interest.  If teams score as many or more goals\n>against Winnipeg when Selanne is on the ice as Winnipeg scores when\n>he is on the ice then I can't see how his contribution can be described\n>as impressive.  \n\nImplicitly you are assuming that goals scored against Winnipeg with Selanne\non the ice can be blamed on him...Roger, he is a FORWARD.  Winnipeg has a\nlousy defensive record anyway.  Let's put it another way.  John Cullen's +/-\nis terrible.  What's your excuse for him?  That his powerplay points don't\ncount?  Neither do Selanne's... \n\n>The object of the game is not to feed Selanne - it is \n>to win.  And feeding Selanne does not contribute in any meaningful way\n>to winning.\n\nKnowledgeable hockey observers the world over would agree that\nfeeding Selanne so he can score does contribute in a meaningful way to\nwinning. \n\n>Pat Burns wouldn't have a goal suck like this on his team.\n\nYou're worried about Teemu when you have Glenn Anderson on your team?\n\n>We DON'T KNOW what Selanne does best.  We do know what Jet's management\n>wants.  And again, the object of the exercise is not to allow Selanne to\n>do what he does best, it is to win hockey games.\n\nWhat he does best is score...so I refer you to my comment above.\n\n>As it is now, Selanne\n>is a grandstanding goal suck.  Did you see the way he parades around\n>with his arms outstretched after scoring a goal?  You would think the\n>Messiah had returned...\n\nNope, didn't see it.  I was too busy watching Foligno jump up and down after\n_his_ goal....\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5331, "properties": {"category": "sci.space", "text": "From: Mark.Perew@p201.f208.n103.z1.fidonet.org\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nX-Sender: newtout 0.08 Feb 23 1993\nLines: 15\n\nIn a message of <Apr 19 04:55>, jgarland@kean.ucs.mun.ca writes:\n\n >In article <1993Apr19.020359.26996@sq.sq.com>, msb@sq.sq.com (Mark Brader) \n >writes:\n\nMB>                                                             So the\nMB> 1970 figure seems unlikely to actually be anything but a perijove.\n\nJG>Sorry, _perijoves_...I'm not used to talking this language.\n\nCouldn't we just say periapsis or apoapsis?\n\n \n\n--- msged 2.07\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5332, "properties": {"category": "rec.sport.hockey", "text": "From: icop@csa.bu.edu (Antonio Pera)\nSubject: request for list of Boston Univ. players in NHL\nDistribution: na\nOrganization: Computer Science Department, Boston University, Boston, MA, USA\nLines: 6\nOriginator: icop@csa\n\n\n\tBeing a proud BU alumnus, I'd like to get a list of BU players in \nthe NHL so I can keep an eye on their progress. A lot of Terriers are\ngraduating this year so I hope to see them soon in the NHL. If somebody\ncould post or send me a list, I'd appreciate it. Please note if the player\ngraduated from here or not.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5333, "properties": {"category": "rec.sport.baseball", "text": "From: z_millerwl@ccsvax.sfasu.edu\nSubject: ASTROS FOR REAL?\nOrganization: Stephen F. Austin State University\nLines: 6\n\n\n\n\nWHO THINKS THE ASTROS ARE GOING PLACES???\nTHEY'RE CURRENTLY FIRST PLACE.\nTHEY'RE 5-4, 5-1 ON THE ROAD! \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5334, "properties": {"category": "sci.electronics", "text": "From: system@garlic.sbs.com (Anthony S. Pelliccio)\nSubject: Re: arcade style buttons and joysticks\nOrganization: Antone's Italian Kitchen and Excellence in Operating Network\nX-Newsreader: rusnews v1.02\nLines: 26\n\ndnewman@lynx.dac.northeastern.edu (David F. Newman) writes:\n\n> Hi there,\n> Can anyone tell me where it is possible to purchase controls found\n> on most arcade style games.  Many projects I am working on would\n> be greatly augmented if I could implement them.  Thanx in advance.\n> \n> -Dave\n> dnewman@lynx.dac.northeastern.edu\n> \n\nContact Chris Arthur at Chris_Arthur@pennies.stratus.com\nHe restores lots of old video and arcade games and knows where to get\nparts.\n\nTony\n\n-----------------------------------------------------------------------\n-- Anthony S. Pelliccio, kd1nr/ae    // Yes, you read it right, the  //\n-- system @ garlic.sbs.com          // man who went from No-Code    //\n-----------------------------------// (Thhhppptt!) to Extra in     //\n-- Flame Retardent Sysadmin       // exactly one year!            //\n-------------------------------------------------------------------\n-- This is a calm .sig! --\n--------------------------\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5335, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: christen@astro.ocis.temple.edu (Carl Christensen)\nSubject: 8 cards on a 6 card motherboard?\nOrganization: Temple University\nLines: 16\nNntp-Posting-Host: astro.ocis.temple.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nThis may be the dumbest question of the year, but is there a\nway to 'piggyback' or expand a 6-slot motherboard (all 16-bit)\nto get the usual 8?  My case has slots for 8, and I'd like to\nget a scanner, but with all my other cards I'm already max'd out!\nI'm hoping that a simple solution exists, e.g. an adapter that turns\none slot into three.  I don't mind if it turns it into 8-bit slots,\nas I can put my I/O card, MIDI card, and Soundblaster card there.\nMy other cards are 16 bit (IDE/Floppy, SVGA, modem).\n\nIf there is such an expander, does that screw up performance of\neverything else?  I'd hate to buy a new motherboard! :-( \n\n--\nCarl Christensen                /~~\\_/~\\        ,,,  Dept. of Computer Science\nchristen@astro.ocis.temple.edu |  #=#==========#   | Temple University        \n\"Curiouser and curiouser!\" - LC \\__/~\\_/        ```  Philadelphia, PA  USA   \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5336, "properties": {"category": "comp.windows.x", "text": "From: banz@umbc.edu (Rob Banz)\nSubject: Looking for an R5 Xserver for HP9000/385\nOrganization: University of Maryland, Baltimore County Campus\nLines: 14\nDistribution: na\nNNTP-Posting-Host: umbc7.umbc.edu\nX-Auth-User: banz\n\n\nSubject says it all...\nAnyone know where I can find one.  Binaries are nice, but source would\ndo to.  \n\nThanks in advance,\n\n\n\n-- \nRob Banz (banz@umbc.edu)\n\t\"If we give people an alternative to Microsoft...it will have been\n\t a greater good.\"\t         -Steve Jobs (UnixWorld, April 1993)\n\t\"Yes, Bill, we are your father!\" -IBM OS/2 Presentation, FOSE'93\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5337, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Should patients read package inserts (PDR)?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 48\n\nIn article <1993Mar29.113528.930@news.wesleyan.edu> RGINZBERG@eagle.wesleyan.edu (Ruth Ginzberg) writes:\n\n>Hmmmm... here's one place where I really think the patient ought to take more\n>responsibility for him- or herself.  There is absolutely no reason why you\n>can't ask the pharmacist filling the prescription for the \"Physicians' Package\n>Insert\" for the medication when you pick it up at the pharmacy.  Make sure to\n>tell the pharmacist that you want the \"Physicians' Package Insert\" *NOT* the\n\nIf people are going to do this, I really wish they would tell me first.\nI'd be happy to go over the insert (in the PDR) with them and explain\neverything.  All too many patients read the insert and panic and then\non the next visit sheepishly admit they were afraid to take the drug\nand we are starting over again at square one.  Some of them probably\ndidn't even come back for followup because they didn't want to admit\nthey wouldn't take the drug or thought I was trying to kill them or\nsomething.  What people don't understand about the inserts is that they\nreport every adverse side effect ever reported, without substantiating\nthat the drug was responsible.  The insert is a legal document to slough\nliability from the manufacturer to the physician if something was to\nhappen.  If patients want to have the most useful and reliable information\non a drug they would be so much better off getting hold of one of the\nAMA drug evaluation books or something similar that is much more scientific.\nThere are very few drugs that someone hasn't reported a death from taking.\nPatients don't realize that and don't usually appreciate the risks\nto themselves properly.  I'm sure Herman is going to \"go ballistic\",\nbut so be it.  Another problem is that probably most drugs have been\nreported to cause impotence.  Half the males who read that will falsely assume\nit could permanently cause them to lose sexual function and so will\nrefuse to take any drug like that.  This can be a real problem for\nPDR readers.  There needs to be some way of providing patients with\ntools geared to them that allow them to get the information they need.\nI am involved in a research project to do that, with migraine as the\ndomain.  It involves a computer system that will provide answers to questions\nabout migraine as well as the therapy prescribed for the patient.\nFor common illnesses, such as migraine and hypertension, this may help\nquite a bit.  The patient could spend as much time as needed with the\ncomputer and this would then not burden the physician.  Clearly,\nphysicians in large part fail to answer all the questions patients have,\nas is demonstrated over and over here on the net where we get asked\nthings that the patients should have found out from their physician\nbut didn't.  Why they didn't isn't always the physician's fault either.\nSometimes the patients are afraid to ask.  They won't be as afraid to\nask the system, we hope.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5338, "properties": {"category": "rec.sport.hockey", "text": "From: seth@cbnewsh.cb.att.com (peter.r.clark..jr)\nSubject: Re: Thumbs up to ESPN\nOrganization: AT&T\nDistribution: na\nKeywords: ESPN, Detroit, Toronto, Hockey Coverage\nLines: 16\n\nIn article <1993Apr20.032017.5783@wuecl.wustl.edu>, jca2@cec1.wustl.edu (Joseph Charles Achkar) writes:\n> \n>  It was nice to see ESPN show game 1 between the Wings and Leafs since\n> the Cubs and Astros got rained out. Instead of showing another baseball\n> game, they decided on the Stanley Cup Playoffs. A classy move by ESPN.\n\nWhat, did you leave the room each of the 100 or so times they said that\nthere WERE NO OTHER NIGHT BASEBALL GAMES? Every break they took back at\nthe studio mentioned it, followed by 'so...we're gonna show you hockey\ninstead.' My wife and I are hoping for rain at every baseball game they\nhave a feed for tommorrow night...\n\nPoint is, be glad they showed hockey, but if baseball was available\nanywhere else you can bet you would've watched baseball last night.\n\npete clark\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5339, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: joedal@dfi.aau.dk (Lars Joedal)\nSubject: 80386 and 80486: What's the difference?\nNntp-Posting-Host: dfi.aau.dk\nOrganization: Aarhus University, Denmark\nLines: 31\n\nExcept from clock frequency, what are the differences between the\nvarious types of 386 and 486 processors?\nThe following is a list with what I know (or perhaps only what I\nthink I know!). Can anybody extend & correct?\n\n\n80386:  True 32 bit processor.\n        (cache?)\n\n80386SX:  Emulates 80386 with a 16 bit bus.\n\n80486:  True 32 bit processor.\n        Internal mathematical coprocessor (Correct?)\n        Internal cache (Correct? How big?)\n        (extended instruction set in any way?)\n\n80486SX:  Probably sorta like 80486...\n\n80486DX:  Probably sorta like 80386...\n\n\nWell, it's not much, but I'm sure there is a lot of people out there\nwho can add a lot of information. Post or email as you prefer.\n\n+------------------------------------------------------------------------+\n| Lars J|dal                | Q: What's the difference between a quantum |\n| email: joedal@dfi.aau.dk  |    mechanic and an auto mechanic?          |\n| Physics student at the    | A: A quantum mechanic can get his car into |\n| University of Aarhus      |    the garage without opening the door.    |\n| Denmark                   |                    -- David Kra            |\n+------------------------------------------------------------------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5340, "properties": {"category": "rec.motorcycles", "text": "From: cbrooks@ms.uky.edu (Clayton Brooks)\nSubject: Re: Changing sprocket ratios (79 Honda CB750)\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 15\n\nkarish@gondwana.Stanford.EDU (Chuck Karish) writes:\n\n>That's a twin-cam, right?  \n\nYep...I think it's the only CB750 with a 630 chain.\nAfter 14 years, it's finally stretching into the \"replace\" zone.\n\n>Honda 750s don't have the widest of power bands.\n\n<Sigh> I know .... I know.\n-- \n Clayton T. Brooks       _,,-^`--.   From the heart          cbrooks@ms.uky.edu\n 722 POT U o'Ky    .__,-'    *    \\   of the blue           cbrooks@ukma.bitnet\n Lex. KY 40506   _/              ,/    grass and   {rutgers,uunet}!ukma!cbrooks\n 606-257-6807   (__,-----------''   bourbon country    AMA NMA MAA AMS ACBL DoD\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5341, "properties": {"category": "sci.crypt", "text": "From: koontzd@phobos.lrmsc.loral.com (David Koontz )\nSubject: Will FEDs troll for mutilated law enforcement blocks?\nOriginator: koontzd@phobos\nOrganization: Loral Rolm Computer Systems\nLines: 121\n\nFrom Denning:\n\n   the Skipjack encryption algorithm\n   F, an 80-bit family key that is common to all chips\n   N, a 30-bit serial number\n   U, an 80-bit secret key that unlocks all messages encrypted with the chip\n\n   E[M; K], the encrypted message stream, and \n   E[E[K; U] + N; F], a law enforcement block.  \n\nWhere the session key is K, and is transmitted encrypted in the unit Key U.\nWhich along with the serial number N is encrypted in the Family key F.\n\nPresumably the protocol can be recovered (if by nothing else, differential\nanalysis).\n\nPostulate if you will, a chip (or logic) sitting between the clipper chip\nand its communications channel.  The function of this spoof chip is twofold:\n    \n\t1) Transmit Channel\n\n\t    The spoof chip XORs the 30 bit encrypted serial number with\n\t    a secondary keying variable.  This renders the serial number\n\t    unrecoverable with just the family key\n\n\t2) Receive Channel\n\n\t    The spoof chip XORs the incoming encrypted serial number\n\t    with a secondary keying variable (assuming integrity of the\n\t    law enforcement block is necessary for local operation -\n\t    checksums, sequence control, etc.).\n\nThis has the net result of hiding the serial number.  It is probable theere is\na known plaintext pattern used as a filler in the block containing N (34 bits\nas used in generating U, U1,U2) correctness of the law enforcement block\ncan be determined with only the family key F.  Whereas, no one has proposed\nFederal Agencies be denied F, and because they could recover it themselves,\nThe correctness of the serial number can be tested by examining the pad bits\nof N in E[N; F].\n\nThe one could selectively alter the law enforcement block as above, but the\nmutilation could be detected.  A better approach would be to mutilate the\nentire law enforcement block.  If it were done with a group encryption scheme\nsuch as DES or (presumably) Skipjack, the chances the law enforcement block\ncan be recovered are lessened.\n\nWhat do you want to bet the transmission protocol can be recognized and the\nserial numbers decrypted in a target search?  When digital transmission\nbecomes widely available, would there be a requirement that clipper protocol\ntransmissions be refused when containing mutilated law enforcement blocks?\n\nOne way to avoid notice, would be to spoof protocol information of the block\ncontaining M, as well as spoofing the law enforcement block.\n\nThe goal is to use a secure communications scheme, without redress to \ndetection or key K interception (contained encrypted within the law\nenforcement block).  The data stream is returned to its original state\nfor use by the clipper chip (or system) if required, for proper operation.\n\nIt is somewhat improbable that the entire protocol will be contained within\nthe clipper chip, yet likely that sequence of events will be tested for,\nrequiring a valid law enforcement block to be received before accepting\nand decrypting E(M; K);\n\nThe spoof chip could be implemented anywhere in the protocols, including\non the resulting serial data stream.  Existing clipper products could\nbe subborned.  After all, they are high security encryption systems right?\n\nSuper encipherment/encryption could allow the chip to be used without\nredress to detection of the use of the chip, or disclosure of the serial\nnumber.  Security must be adequate to deny the serial number, which should\nnot be recoverable by other means.  One can see the use of cut outs for\nprocurring clipper phones, or once the number of units is high enough,\nstealing them.  It would be a mistake on the part of authority, but nice\nfrom a point of privacy, if the serial number N were not associated with\na particular clipper chip or lot of chips through the manufacturing and \ndistribution process.  Hopefully the list of known missing or stolen\nclipper serial numbers N encrypted with F, and the protocols are not \nsufficient plaintext to attact the super encrypted clipper stream.\nThis could be further made difficult by altering the temporal and or\nspatial relationship of the clipper stream to that of the super encrypted\nstream.\n\nDetection of an encrypted stream could tip off the use of the aforementioned\nscheme.\n\n******************************************************************************\n\nIf you could capture valid law enforcement blocks not your own, and use\nthem in a codebook sustitution with your own, where they point to a valid\nlaw enforcement block stored in a library utilizing a session key matching\nthe remainder of the transmission, you could simply out and out lie, yet\ndeliver to monitoring and/or hostile forces a seemingly valid law enforcement\nblock.   These captured law enforcement blocks would be used as authenticators,\nsuch as in a manually keyed encryption system.  Fending this off would require\nescalation in examining the protocols and blocks in the transmission.\n\nThe M code stream  might be independently attacked based on knowledge of\nclipper chip protocols as revealed plaintext.  This could be invalidated\nby changing the temporal and or spatial relationship of the clipper M stream\nand the actual transmitted stream, under the control of a secure key\ngenerator synchronized between endpoints.\n\nThe useful life time of captured law enforcement blocks might be limited\nbased on hostile forces using them as targets following transmission\ninterception.  You would need a large number of them, but, hey there's\nsupposed to be millions of these things, right?  Adding time stamps to\nthe encrypted law enforcement block is probably impractical, who wants\nan encryption chip with a real time clock?\n\n*****************************************************************************\n\nThe entire idea of the law enforcement block can be invalidated.\n\n\n\n\n\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5342, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: help with internet!!!\nFrom: dfmorgan@acs.harding.edu\nReply-To: dfmorgan@acs.harding.edu\nOrganization: Harding University\nNntp-Posting-Host: acs.harding.edu\nLines: 10\n\nI know this isn't the EXACT right place to put this, but im desperate!\n\nI'll be going home for the summer, and wont have direct access to my\nVAX account....My problem is, i need a service that doesn't charge body\nparts, vital organs, or my first born son, that allows me access to the\ninternet!  All i really need is to be able to TELNET to my school account,\nand from there I can do anything I need to do.   ANY HELP WILL BE GREATLY\nAPPRECIATED!!!!!!!!!!!\n\nPlease! E-MAIL to DFMORGAN@acs.harding.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.255+0000", "event": "documents", "entityId": 5343, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: Re: Soundblaster IRQ and Port settings\nFrom: ARowatt@massey.ac.nz (A.J. Rowatt)\nOrganization: Massey University, Palmerston North, New Zealand\nX-Reader: NETNEWS/PC Version 2c\nLines: 17\n\nThey don't have a conflict because technically LPT1: does not use\nIRQ7!.\n     The Parallel printer processor (the actual number escapes\nme) contains a printer control register which enables the chip\nto transmit an interrupt to the interrupt controller as IRQ7,\nthen onto the main processor as Int 0x0F. By default the parallel\nprinter processor does not enable it's interrupt line therefore\nno Int 0x0F's will be sourced from the printer controller chip,\nthus enabling other devices to use the actual IRQ7.\n\n     Note, this applies to COM ports also which by default do not\nroute interrupts to the system bus, although COM's software\nusually enable this feature as it make monitoring COM port\nactivity easier than polling the serial UART, thus probably\ngetting the sound card slighty confused!.\n\nWindows may be a different story....\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5344, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: Re: 17\" Monitors\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 10\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nI have a Sony 1604S 17\" monitor and I don't see any lines across\nthe screen and am only using the non interlaced mode.\nBut because of the hor. lines and poping that I do see and hear\nwhen I am usinf 800x600x256 and 1024x768x256 modes and switch back\nto anything of less. I would not buy another Sony at what ever price.\nOh ya this is I guess a 15\" viewing area. It don't impress me one bit!   Sam\n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5345, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: National Crime Survey\nOrganization: University of Tennessee Division of Continuing Education\nLines: 19\n\n      Well, I dropped by the library yesterday, and picked up back copies\nof the National Crime Survey (1986-1990) in an effort to examine what\nit said about self-defense with a firearm.\n\n      I haven't ground through much in the way of numbers yet, but a couple\nof things jumped out at me.  First only 1986 and 1987 specify the type of\nweapon used in self defense.  1988, 1989, and 1990 refer only to \"weapon.\"\nThe second is that while assaults rose about 3% from 1986 to 1987, w/gun\ndefenses reported *fell* by almost 25%.  Unless there's an explanation for\nthis, I'm tempted to mark it as a reporting problem, and as such going \nahead with any examination of the numbers would be a waste of time.\n\n      Anybody have an idea what might have cause a real difference, and\nnot just a reporting difference?  The survey doesn't appear to have\nchanged significantly between 1986 and 1987.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu  \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5346, "properties": {"category": "rec.autos", "text": "From: eliot@stalfos.engr.washington.edu (eliot)\nSubject: Re: Ultimate AWD vehicles\nOrganization: clearer than blir\nLines: 27\nDistribution: usa\nNNTP-Posting-Host: 192.42.145.4\n\nIn article <C5L86z.E73@cbnewsj.cb.att.com> rdb1@cbnewsj.cb.att.com (ronald.j.deblock..jr) writes:\n>Yes, I saw a 200 Turbo Quattro wagon on I-287 in NJ on Monday.  I thought\n>Audi stopped selling wagons in the US after the 5000.  This is exactly the\n>type of vehicle I would like to own.  I bet its price is 4-5 times my\n>car budget.\n\nthink again!!  thanks to 60 minutes (tick tick tick), used 200\nquattros are bargains.. '89s go for about $15K, '90s go for perhaps 1\nor 2K more, the 20 valve 91's are quite a bit more because of an\nenormous hp and torque gain.. i think they go for about $23 to $25K if\nyou can find one.  i have seen quite a lot of '89-'90 200 quattros (not\nthat many wagons though) at the dealer lot.. they use very high\nquality paint and the entire car is zinc galvanized, so it will never\nrust.\n\nin short, typically a 4 yr old 200 looks no more older than a 1 year\nold and the 5 bangers are bullet proof engines.  200K out of one is\nnot rare, even for a turbo, which is watercooled for the 200s.  then\nthere are aftermarket chips that you can buy to bump up turbo boost...\n\nif you are into luxo-gizmos.. the cars are loaded with just about\neverything too..\n\nthe price of parts is a different story though...\n\n\neliot\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5347, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gsnow@clark.edu (Gary Snow)\nSubject: Re: The C650 fan is NOISY!  Any solutions?\nArticle-I.D.: clark.1993Apr6.213229.26970\nOrganization: Clark College, Vancouver, Wa.  USA\nLines: 18\n\nIn article <summeral.733798199@rintintin.Colorado.EDU> summeral@rintintin.Colorado.EDU (Summerall  Thomas G) writes:\n>Is it me, my 650, or all 650s?  It doesn't seem to broken.  It isn't making\n>grinding noises or anything, it's just LOUD!  Much louder that the fan in\n>the IIci I just sold.\n>\n>Anybody else have this problem?  How about a solution?  Is there a good\n>replacement fan that's a lot quieter but moves the same air?  Any easy\n>way to insulate the sound but not the cooling air?  (Hah!)\n\nI can't even hear the fan on my 650.....gee I wonder if its working.....yup,\njust checked, its exhausting air out the back just fine.\n\nGary\n\n-- \n-----\nGary Snow\nuunet!clark!gsnow  or  gsnow@clark.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5348, "properties": {"category": "sci.space", "text": "From: wats@scicom.AlphaCDC.COM (Bruce Watson)\nSubject: Re: Boom!  Whoosh......\nOrganization: Alpha Science Computer Network, Denver, Co.\nLines: 14\n\nIn article <1993Apr21.024423.29182@mnemosyne.cs.du.edu+ wdwells@nyx.cs.du.edu (David \"Fuzzy\" Wells) writes:\n+\n+I love the idea of an inflatable 1-mile long sign.... It will be a\n+really neat thing to see it explode when a bolt  (or even better, a\n+Westford Needle!) comes crashing into it at 10 clicks a sec.  \n+\nPageos and two Echo balloons were inflated with a substance\nwhich expanded in vacuum. Once inflated the substance was no longer\nneeded since there is nothing to cause the balloon to collapse.\nThis inflatable structure could suffer multiple holes with no \ndisastrous deflation.\n\n-- \nBruce Watson (wats@scicom.alphaCDC.COM) Bulletin 629-49 Item 6700 Extract 75,131\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5349, "properties": {"category": "comp.graphics", "text": "From: joth@ersys.edmonton.ab.ca (Joe Tham)\nSubject: Where can I find SIPP?\nOrganization: Edmonton Remote Systems #2, Edmonton, AB, Canada\nLines: 11\n\n        I recently got a file describing a library of rendering routines \ncalled SIPP (SImple Polygon Processor).  Could anyone tell me where I can \nFTP the source code and which is the newest version around?\n        Also, I've never used Renderman so I was wondering if Renderman \nis like SIPP?  ie. a library of rendering routines which one uses to make \na program that creates the image...\n\n                                        Thanks,  Joe Tham\n\n--\nJoe Tham              joth@ersys.edmonton.ab.ca \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5350, "properties": {"category": "sci.med", "text": "Subject: STARGARDTS DISEASE\nFrom: kmcvay@oneb.almanac.bc.ca (Ken Mcvay)\nOrganization: The Old Frog's Almanac\nKeywords: stargardts\nLines: 12\n\nThanks to aldridge@netcom.com, I now know a bit more about Stargardt's\ndisease, aka juvenile macular distrophy, but I would like to learn more.\n\nFirst, what is the general prognosis - is blindness the result?\nSecond, what treatments, if any, are available?\n\n\n-- \nThe Old Frog's Almanac - A Salute to That Old Frog Hisse'f, Ryugen Fisher \n     (604) 245-3205 (v32) (604) 245-4366 (2400x4) SCO XENIX 2.3.2 GT \n  Ladysmith, British Columbia, CANADA. Serving Central Vancouver Island  \nwith public access UseNet and Internet Mail - home to the Holocaust Almanac\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5351, "properties": {"category": "sci.space", "text": "From: nickh@CS.CMU.EDU (Nick Haines)\nSubject: Re: Shuttle Launch Question\nIn-Reply-To: jcm@head-cfa.harvard.edu's message of Sun, 18 Apr 1993 22:44:14 GMT\nOriginator: nickh@SNOW.FOX.CS.CMU.EDU\nNntp-Posting-Host: snow.fox.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon University\n\t<1993Apr18.224414.784@head-cfa.harvard.edu>\nDistribution: sci\nLines: 17\n\nIn article <1993Apr18.224414.784@head-cfa.harvard.edu> jcm@head-cfa.harvard.edu (Jonathan McDowell) writes:\n\n   My understanding is that the 'expected errors' are basically\n   known bugs in the warning system software - things are checked\n   that don't have the right values in yet because they aren't\n   set till after launch, and suchlike. Rather than fix the code\n   and possibly introduce new bugs, they just tell the crew\n   'ok, if you see a warning no. 213 before liftoff, ignore it'.\n\nGood grief. And I thought the Shuttle software was known for being\nwell-engineered. If this is actually the case, every member of the\nprogramming team should be taken out and shot.\n\n(given that I've heard the Shuttle software rated as Level 5 in\nmaturity, I strongly doubt that this is the case).\n\nNick Haines nickh@cmu.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5352, "properties": {"category": "sci.electronics", "text": "From: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nSubject: Re: PC Parallel I/O\nDistribution: world\nOrganization: HAL 9000 BBS, W-NET HQ, Ann Arbor, Michigan, USA\nReply-To: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nLines: 24\n\n\nR >>>JD> ALL PC parallel ports that are compatable with the IBM standard,\nR >>>JD> including the original IBM adaptor, are bi-directional.\n\nNOT ALL PARALLEL PORTS ARE BI-DIRECTIONAL WITHOUT MODIFICATION.\n\nMy experience with the standard old zenith parallel port in their \noriginal 286s proves that.  They had the input direction disactiviated by \ntieing them R/W select line of the circuit to Vcc.  To make it bi ( which \nI did ) I had to modify it by scraping off the trace and solder a jump to \nthe proper location.  I thought that this was just lazy on the part of \nZenith ( they were not Zenith-Bull Group at that time).\n\n-rdd\n\n---\n . WinQwk 2.0b#0 . Unregistered Evaluation Copy\n * KMail 2.95d W-NET HQ, hal9k.ann-arbor.mi.us, +1 313 663 4173 or 3959\n           \n----\n| HAL 9000 BBS:  QWK-to-Usenet gateway  | Four 14400 v.32bis dial-ins    |\n| FREE Usenet mail and 200 newsgroups!  | PCBoard 14.5aM * uuPCB * Kmail |\n| Call +1 313 663 4173 or 663 3959      +--------------------------------+\n| Member of EFF, ASP, ASAD  * 1500MB disk * Serving Ann Arbor since 1988 |\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5353, "properties": {"category": "rec.sport.baseball", "text": "From: brian@meaddata.com (Brian Curran)\nSubject: TIGER STADIUM GIF?\nOrganization: Mead Data Central, Dayton OH\nLines: 9\nDistribution: world\nNNTP-Posting-Host: taurus.meaddata.com\n\nDoes anybody have a GIF of the Tiger Stadium seating chart?  Thanks!\n-- \n------------------------------------------------------------------------------\nBrian Curran                 Mead Data Central              brian@meaddata.com \n------------------------------------------------------------------------------\n             \"I didn't think I should've been asked to catch\n\t              when the temperature was below my age.\"\n               - Carlton Fisk, Chicago White Sox catcher, \n              on playing during a 40-degree April ball game\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5354, "properties": {"category": "rec.sport.baseball", "text": "From: jrogoff@scott.skidmore.edu (jay rogoff)\nSubject: Re: Expanded NL Strike Zone? (Was Re: A surfeit of offense?)\nOrganization: Skidmore College, Saratoga Springs NY\nLines: 5\n\nIt was my impression watching the Mets & Rockies that umpires were\ncalling strikes above the belt, too, but not as far up as the letters.\nIt would be nice if this were the case.\n\nJay\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5355, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: Question about helmets\nOrganization: Ontario Hydro - Research Division\nLines: 22\n\nIn article <1qmnp8INN31v@mojo.eng.umd.edu> oconnor@eng.umd.edu (Mark O'Connor) writes:\n>\n>On the other side of the fence, I owned a Bieffe off-road helmet.\n>Took what I would consider a minor fall, and had visible damage\n>to the shell.  Yes, the helmet did its job.  But the damage/impact\n>ratio was scary.  I own Bell Moto-5 now, have taken impacts on\n>order of twice the Bieffe impact (we do this frequently in MX),\n>and don't even have a scratch on it after two seasons.  My\n>recommendation is to buy _high_ quality gear.  YMMV.\n\nWhen your helmetted nogin hits an immoveabe object, there are only four things\nto dissipate the energy: the immoveable object, the helmet shell, the helmet\nliner, the rider's head, the rider's ego (ok, five). Assuming that the helmet/\nhead assembly takes the same impact, if the shell cracks in one case, then in\nthe other the liner must be dented, or the head gets jiggled. If it's the\nthe liner that's dented, the helmet is just as toast as if the shell were\ncracked, it won't absorb energy form an impact in that area. If it's the head\nthat's getting jiggled, maybe the new gear isn't of as high quality after all?\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5356, "properties": {"category": "alt.atheism", "text": "From: kv07@IASTATE.EDU (Warren Vonroeschlaub)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nReply-To: kv07@IASTATE.EDU (Warren Vonroeschlaub)\nOrganization: Ministry of Silly Walks\nLines: 28\n\nIn article <C5L184.Jo9@news.cso.uiuc.edu>, cobb@alexia.lis.uiuc.edu (Mike Cobb)\nwrites:\n>In <1qlapk$d7v@morrow.stanford.edu> salem@pangea.Stanford.EDU (Bruce Salem) \n>writes:\n>>In article <C5JrDE.M4z@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike \n>Cobb) writes:\n>>>Theory of Creationism: MY theistic view of the theory of creationism, (there\n>>>are many others) is stated in Genesis 1.  In the beginning God created\n>>>the heavens and the earth.\n>\n>> Wonderful, now try alittle imaginative thinking!\n>\n>Huh? Imaginative thinking? What did that have to do with what I said? Would it\n>have been better if I said the world has existed forever and never was created\n>and has an endless supply of energy and there was spontaneous generation of \n>life from non-life?  WOuld that make me all-wise, and knowing, and\nimaginative?\n\n  No, but at least it would be a theory.\n\n |  __L__\n-|-  ___  Warren Kurt vonRoeschlaub\n |  | o | kv07@iastate.edu\n |/ `---' Iowa State University\n/|   ___  Math Department\n |  |___| 400 Carver Hall\n |  |___| Ames, IA  50011\n J  _____\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5357, "properties": {"category": "rec.sport.baseball", "text": "From: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nSubject: Re: Gotta a Question....\nOrganization: Computer Science Department at Rose-Hulman\nLines: 24\nDistribution: usa\nReply-To: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nNNTP-Posting-Host: g215a-1.nextwork.rose-hulman.edu\n\nIn article <47844@sdcc12.ucsd.edu> demers@cs.ucsd.edu (David DeMers) writes:\n>In article <cjkuo.68.0@symantec.com>, cjkuo@symantec.com (Jimmy Kuo) writes:\n> |> gt0523e@prism.gatech.EDU (Michael Andre Mule) writes:\n> ....\n> |> >>What is the maximum runs allowed before a stopper can get credit for a\n> |> >>relief? i.e. if a stopper comes in with a 5 run lead does he getcredit\n> |> >> with the save.\n> |> >If you come in and pitch the last three innings,and your team was ahead \n> |> >when you got out there and wins the game, you get a save.\n> |> Sort'a correct. If you pitched at least 3 innings,entered with your team \n> |> in the lead, was the pitcher when the game ended,the game was never tied \n> |> during your stint, and your team won, you get a save.\n> Well, the rulebook says that in the opinion of the scorer, you must have\n> \"pitched effectively\" for your 3 innings - this save is not automatic,\n> unlike the others.\n\nSomeone in SABR actually looked at these games a few years ago \nand found that the official scorer awarded the save in every one \nof the games - even those in which the pitcher had pitched badly \n(allowing 4 or 5 runs).\n\nseeing, hearing (my two sense worth)\njohn rickert\nrickert@nextwork.rose-hulman.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5358, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: The systematic genocide of the Muslim population by the Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 226\n\nIn article <1993Apr5.091410.4108@massey.ac.nz> CBlack@massey.ac.nz (C.K. Black) writes:\n\n>Mr. Furr does it again,\n\nVery sensible.\n\n>  He says \n\n>>>How many Mutlus can dance on the head of a pin?\n\n>And lo and behold, he invokes the Mr.666 of the net himself,  our beloved\n>Serdar,  a program designed to seek out the words TERRX and GHEX in the\n>same sentence and gets the automated reply....\n\nMust you rave so? Fascist x-Soviet Armenian Government engaged in \ndisgusting cowardly massacres of Azeri women and children. I am\nreally sorry if that fact bothers you.\n\n>>Our \"Mutlu\"? Oboy, this is exciting. First you discuss your literature \n>>tastes, then your fantasies, and now your choices of entertainment. Have \n>>you considered just turning on the TV and leaving those of us who aren't\n>>brain dead to continue to discuss the genocide of 2.5 million Muslim \n>>people by the x-Soviet Armenian Government? \n\n>etc. etc. etc........\n\nMore ridicule, I take it? Still not addressing the original points made.\n\n>Joel,  don't do this to me mate!  I'm only a poor plant scientist, I don't\n>know how to make 'kill' files.  My 'k' key works overtime as it is just to\n\nThen what seems to be the problem? Did you ever read newspaper at all?\n\n\n\"PAINFUL SEARCH ..\"\n\nTHE GRUESOME extent of February's killings of Azeris by Armenians\nin the town  of Hojali is at last emerging  in Azerbaijan - about\n600 men,  women and  children dead  in the  worst outrage  of the\nfour-year war over Nagorny Karabakh.\n\nThe figure  is drawn  from Azeri investigators,  Hojali officials\nand casualty lists published in the Baku press. Diplomats and aid\nworkers say the death toll is in line with their own estimates.\n\nThe 25  February attack on Hojali  by Armenian forces was  one of\nthe last moves  in their four-year campaign to  take full control\nof Nagorny Karabakh,  the subject of a new  round of negotiations\nin Rome on Monday. The bloodshed was something between a fighting\nretreat and  a massacre, but  investigators say that most  of the\ndead were civilians. The awful  number of people killed was first\nsuppressed by  the fearful  former Communist government  in Baku.\nLater  it  was blurred  by  Armenian  denials and  grief-stricken\nAzerbaijan's wild  and contradictory  allegations of up  to 2,000\ndead.\n\nThe State Prosecuter, Aydin Rasulov,  the cheif investigator of a\n15-man  team  looking  into  what Azerbaijan  calls  the  \"Hojali\nDisaster\", said  his figure of 600  people dead was a  minimum on\npreliminary  findings.  A similar  estimate  was  given by  Elman\nMemmedov, the mayor of Hojali. An  even higher one was printed in\nthe Baku newspaper  Ordu in May - 479 dead  people named and more\nthan 200 bodies reported unidentified.  This figure of nearly 700\ndead is quoted as official by Leila Yunusova, the new spokeswoman\nof the Azeri Ministry of Defence.\n\nFranCois Zen  Ruffinen, head  of delegation of  the International\nRed Cross  in Baku, said  the Muslim imam  of the nearby  city of\nAgdam had reported a figure of  580 bodies received at his mosque\nfrom  Hojali, most  of  them  civilians. \"We  did  not count  the\nbodies. But  the figure seems  reasonable. It is no  fantasy,\" Mr\nZen Ruffinen said. \"We have some idea since we gave the body bags\nand products to wash the dead.\"\n\nMr  Rasulov endeavours  to give  an unemotional  estimate of  the\nnumber of  dead in the  massacre. \"Don't  get worked up.  It will\ntake  several months  to  get a  final  figure,\" the  43-year-old\nlawyer said at his small office.\n\nMr Rasulov  knows about these  things. It  took him two  years to\nreach  a firm  conclusion that  131  people were  killed and  714\nwounded  when  Soviet  troops  and tanks  crushed  a  nationalist\nuprising in Baku in January 1990.\n\nThose  nationalists, the  Popular  Front, finally  came to  power\nthree weeks  ago and  are applying pressure  to find  out exactly\nwhat  happened when  Hojali, an  Azeri town  which lies  about 70\nmiles from the border with Armenia, fell to the Armenians.\n\nOfficially, 184 people have so  far been certified as dead, being\nthe  number of  people that  could be  medically examined  by the\nrepublic's forensic department. \"This  is just a small percentage\nof the dead,\" said Rafiq Youssifov, the republic's chief forensic\nscientist. \"They were the only bodies brought to us. Remember the\nchaos and the fact that we are  Muslims and have to wash and bury\nour dead within 24 hours.\"\n\nOf these 184 people, 51 were women, and 13 were children under 14\nyears old.  Gunshots killed  151 people,  shrapnel killed  20 and\naxes or  blunt instruments  killed 10.  Exposure in  the highland\nsnows killed the last three.  Thirty-three people showed signs of\ndeliberate mutilation, including ears,  noses, breasts or penises\ncut off and  eyes gouged out, according  to Professor Youssifov's\nreport. Those 184 bodies examined were less than a third of those\nbelieved to have been killed, Mr Rasulov said.\n\nFiles  from  Mr  Rasulov's  investigative  commission  are  still\ndisorganised -  lists of 44  Azeri militiamen are dead  here, six\npolicemen there,  and in handwriting  of a mosque  attendant, the\nnames of  111 corpses brought to  be washed in just  one day. The\nmost heartbreaking account from  850 witnesses interviewed so far\ncomes  from Towfiq  Manafov,  an Azeri  investigator  who took  a\nhelicopter  flight  over  the  escape route  from  Hojali  on  27\nFebruary.\n\n\"There were too many bodies of  dead and wounded on the ground to\ncount properly: 470-500  in Hojali, 650-700 people  by the stream\nand the road and 85-100  visible around Nakhchivanik village,\" Mr\nManafov  wrote in  a  statement countersigned  by the  helicopter\npilot.\n\n\"People waved up  to us for help. We saw  three dead children and\none  two-year-old alive  by  one  dead woman.  The  live one  was\npulling at her arm for the mother to get up. We tried to land but\nArmenians started a barrage against  our helicopter and we had to\nreturn.\"\n\nThere  has been  no consolidation  of  the lists  and figures  in\ncirculation because  of the political  upheavals of the  last few\nmonths and the  fact that nobody knows exactly who  was in Hojali\nat the time - many inhabitants were displaced from other villages\ntaken over by Armenian forces.\n\nTHE INDEPENDENT, London, 12/6/'92\n\n\nHEROES WHO FOUGHT ON AMID THE BODIES\n\nAREF  SADIKOV sat  quietly  in the  shade of  a  cafe-bar on  the\nCaspian Sea  esplanade of Baku and  showed a line of  stitches in\nhis trousers, torn  by an Armenian bullet as he  fled the town of\nHojali just over three months ago, writes Hugh Pope.\n\n\"I'm still  wearing the same  clothes, I don't have  any others,\"\nthe  51-year-old carpenter  said,  beginning his  account of  the\nHojali disaster. \"I was wounded in five places, but I am lucky to\nbe alive.\"\n\nMr Sadikov and  his wife were short of  food, without electricity\nfor more than a month, and cut off from helicopter flights for 12\ndays. They  sensed the  Armenian noose was tightening  around the\n2,000 to  3,000 people left in  the straggling Azeri town  on the\nedge of Karabakh.\n\n\"At about 11pm  a bombardment started such as we  had never heard\nbefore,  eight  or  nine   kinds  of  weapons,  artillery,  heavy\nmachine-guns, the lot,\" Mr Sadikov said.\n\nSoon neighbours were  pouring down the street  from the direction\nof  the  attack. Some  huddled  in  shelters but  others  started\nfleeing the town,  down a hill, through a stream  and through the\nsnow into a forest on the other side.\n\nTo escape, the  townspeople had to reach the Azeri  town of Agdam\nabout 15  miles away. They  thought they  were going to  make it,\nuntil at  about dawn  they reached a  bottleneck between  the two\nArmenian villages of Nakhchivanik and Saderak.\n\n\"None of my group was hurt up to then ... Then we were spotted by\na  car on  the road,  and the  Armenian outposts  started opening\nfire,\" Mr Sadikov said.\n\nAzeri militiamen fighting their way  out of Hojali rushed forward\nto force  open a  corridor for the  civilians, but  their efforts\nwere mostly  in vain.  Mr Sadikov  said only  10 people  from his\ngroup of  80 made it  through, including his wife  and militiaman\nson.  Seven  of  his  immediate  relations  died,  including  his\n67-year-old elder brother.\n\n\"I only had time to reach down  and cover his face with his hat,\"\nhe said, pulling his own big  flat Turkish cap over his eyes. \"We\nhave never got any of the bodies back.\"\n\nThe first groups were lucky to have the benefit of covering fire.\nOne hero  of the  evacuation, Alif  Hajief, was  shot dead  as he\nstruggled to change  a magazine while covering  the third group's\ncrossing, Mr Sadikov said.\n\nAnother hero,  Elman Memmedov, the  mayor of Hojali, said  he and\nseveral others  spent the whole day  of 26 February in  the bushy\nhillside, surrounded by  dead bodies as they tried  to keep three\nArmenian armoured personnel carriers at bay.\n\nAs the  survivors staggered the  last mile into Agdam,  there was\nlittle comfort  in a town from  which most of the  population was\nsoon to flee.\n\n\"The night  after we reached  the town  there was a  big Armenian\nrocket attack. Some people just  kept going,\" Mr Sadikov said. \"I\nhad to  get to the  hospital for treatment. I  was in a  bad way.\nThey even found a bullet in my sock.\"\n\nVictims of  war: An  Azeri woman  mourns her  son, killed  in the\nHojali massacre in February  (left). Nurses struggle in primitive\nconditions  (centre)  to  save  a  wounded  man  in  a  makeshift\noperating  theatre set  up  in a  train carriage.  Grief-stricken\nrelatives in  the town of Agdam  (right) weep over the  coffin of\nanother of the massacre victims. Calculating the final death toll\nhas been  complicated because Muslims  bury their dead  within 24\nhours.\n\nPhotographs: Liu Heung / AP\n             Frederique Lengaigne / Reuter\n\nTHE INDEPENDENT, London, 12/6/'92\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5359, "properties": {"category": "sci.crypt", "text": "From: amolitor@nmsu.edu (Andrew Molitor)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Department of Mathematical Sciences\nLines: 58\nDistribution: na\nNNTP-Posting-Host: moink.nmsu.edu\n\nal@escom.COM (Al Donaldson) writes:\n>amolitor@nmsu.edu (Andrew Molitor) writes:\n>>Yes, those evil guys in the FBI can probably, with some\n>>effort, abuse the system. I got news for you, if the evil guys in\n>>the FBI decide they want to persecute you, they're gonna, ...\n>\n>And if Richard Nixon had had this kind of toy, he wouldn't have had\n>to send people into the Watergate.\n>\n\n\tThis appears to be generic calling upon the name of the anti-christ.\nJust for the hell of it, let's destroy this remark. Let us imagine that\nthe executive branch actually could extract keys from the escrow houses\nwithout anyone knowing, or telling. Now what? Dick has 80 bits of data.\nWhat the hell's he gonna do with it?\n\n\t1) Trot around to the telco and say 'we'd like an unauthorised\ndecrypting tap'. Uh huh.\n\t2) Break in to watergate and install his own tap (so his people still\ndo have to break in, neat, huh?) record some noise, then get the Executive\nBranch Phone Decryption Box (huh? they've got one? Goodness, wait 'til the\nwashington post gets hold of this) and decrypt the noise.\n\t3) More likely, stare at the key, and say 'Oh, hell it's not\nworth all this bloody hassle'\n\n\tTruth is, even granted *lots* of covert power on the part of\nthe Executive Branch, this system is *more* difficult to tap with than\nPOTS gear. The fact that it is easier to tap than some hypothetical\nsystem neither you nor I am going to place on our phones is neither\nhere nor there.\n\n\tThe only rational concerns I am seeing raised are:\n\n\ta) is the key really just chopped in half, and not some XOR\narrangement? That is, has some egregious technical error been built\nin to the plan?\n\tb) is this is the first step toward strict regulation of strong\nencryption?\n\n\n>But that's not really the issue.  The real issue is whether this \n>will be used to justify a ban against individuals' use of private \n>(i.e., anything else) encryption methods.\n\n\tThis is b), of course. I suspect not. If the government actually\nwanted to make such regs, they'd just do it. A few hundred people on Usenet\nyelling about it wouldn't even slow the machine down.\n\n\tBesides, who is this mysterious 'they' who's going to take away\nall our rights the instant we let our guard down? Congress? That gang\nof buffoons can't even balance their checkbooks. The FBI? But.. they\ndon't make the laws. The NSA? Ditto. The white house? Bill Clinton\nis probably still looking for the bathroom. It's a big place, after all.\n\n\tAndrew\n\n>\n>Al\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5360, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dave@angmar.llnl.gov (Dave Fuess)\nSubject: WinQVT/Net V3.4?\nArticle-I.D.: lorien.354\nDistribution: usa\nOrganization: UC LLNL\nLines: 11\nNntp-Posting-Host: angmar.llnl.gov\n\nAn earlier article in this newsgroup made reference to\nWinQVT/Net version 3.4. Realy? Where? I tried archie\nwith no luck. It's probably just a typo.\nBut I sure would like to get one if it's real as I too\nhave a printer problem in WinQVT.\n\n-- \n    _/      _/     _/    _/  _/  | David A. Fuess      \n   _/      _/     _/_/  _/  _/   | Dir, Center for EECS\n  _/      _/     _/  _/_/  _/    | Phone: (510)423-2436\n _/_/_/  _/_/_/ _/    _/  _/_/_/ | Fax:   (510)422-9343\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5361, "properties": {"category": "soc.religion.christian", "text": "From: by028@cleveland.freenet.edu (Gary V. Cavano)\nSubject: Pantheism & Environmentalism\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 21\n\nHi...\n\nI'm new to this group, and maybe this has been covered already,\nbut does anybody out there see the current emphasis on the\nenvironment being turned (unintentionally, of course) into\npantheism?\n\nI've debated this quite a bit, and while I think a legitimate\nconcern for the planet is a great thing, I can easily see it\nbeing perverted into something dangerous.\n\nAs evidence, may I quote THE WALL STREET JOURNAL (of all\nthings!), April 2 (Editorial page):\n\"We suspect that's because one party to the (environmental)\ndispute thinks the Earth is sanctified.  It's clear that much\nof the environmentalist energy is derived from what has been\ncalled the Religious Left, a SECULAR, or even PAGAN fanaticism\nthat now WORSHIPS such GODS as nature and gender with a\nreverence formerly accorded real religions.\"  (EMPHASIS MINE).\n\nThoughts?  Reactions?  Harangues?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5362, "properties": {"category": "sci.space", "text": "From: tffreeba@indyvax.iupui.edu\nSubject: Death and Taxes (was Why not give $1 billion to...\nArticle-I.D.: indyvax.1993Apr22.162501.747\nLines: 10\n\nIn my first posting on this subject I threw out an idea of how to fund\nsuch a contest without delving to deep into the budget.  I mentioned\ngranting mineral rights to the winner (my actual wording was, \"mining\nrights.)  Somebody pointed out, quite correctly, that such rights are\nnot anybody's to grant (although I imagine it would be a fait accompli\nsituation for the winner.)  So how about this?  Give the winning group\n(I can't see one company or corp doing it) a 10, 20, or 50 year\nmoratorium on taxes.\n\nTom Freebairn \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5363, "properties": {"category": "rec.motorcycles", "text": "From: laszlo@eclipse.cs.colorado.edu (Laszlo Nemeth)\nSubject: Re: BMW MOA members read this!\nNntp-Posting-Host: eclipse.cs.colorado.edu\nOrganization: University of Colorado Boulder, Pizza Disposal Group\nLines: 27\n\nIn article <1993Apr19.193331.11327@sarvax.cmhnet.org>, frog@sarvax.cmhnet.org (Jeff 'Frog' Campbell) writes:\n|> From article <C5px3n.Kw0@murdoch.acc.Virginia.EDU>, by cdw2t@dayhoff.med.Virginia.EDU (Dances With Federal Rangers):\n|> > \n|> > ObMotoWashing: Is it just me, or does everyone cut their finger(s) on the\n|> > Evil Cotterpin (tm), lurking somewhere in the dark recesses of the back end\n|> > of the bike, when giving the prized moto a bath?  I seem to slice the pinkie\n|> > of one hand or the other *every* time (*both* of them this time!).\n|> \n|> It's you. Beemers have no EC (tm).\n\nOH yes they do! but considering i never wash my BMW (unless i need\nto work on it) i never get cuts untill the tools come out.....\naltho the best scar (now faded) was from the exhaust piper,\nwhile try to change the oil, after overheating the engine (watch\nout for idiot drivers that won't let you pass in the mountains\nwhen you have a rider, case of oil (it was on sale), and case of \nbeer), with a drain bolt that decided to seize.\n\njust how does everyone else clean out the area under the transmission\non a BMW R bike? they only way i have found is to remove the\nengine and transmission. that and the clutch arm are impossible to\nclean (which is wear one of the EC (s&m) are located).\n\n\nlaz\nPs anyone know where i can get the heads polished and ported\ncheap. also how much should that run.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5364, "properties": {"category": "talk.politics.mideast", "text": "From: dzk@cs.brown.edu (Danny Keren)\nSubject: Re: Desertification of the Negev\nOrganization: Brown University Department of Computer Science\nLines: 12\n\nThis is nonsense. I lived in the Negev for many years and I can say\nfor sure that no Beduins were \"moved\" or harmed in any way. On the\ncontrary, their standard of living has climbed sharply; many of them\nnow live in rather nice, permanent houses, and own cars. There are\nquite a few Beduin students in the Ben-Gurion university. There are\ngood, friendly relations between them and the rest of the population.\n\nAll the Beduins I met would be rather surprised to read Mr. Davidson's\nposter, I have to say.\n\n-Danny Keren.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5365, "properties": {"category": "soc.religion.christian", "text": "From: gifford@oasys.dt.navy.mil (Barbara Gifford)\nSubject: The Mystery in the Paradox\nReply-To: gifford@oasys.dt.navy.mil (Barbara Gifford)\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 9\n\nI have been looking for a book that specifically addresses\nthe mystery of God in the paradox.  I have read some that touch\non the subject in a chapter but would like a more detailed read.\n\nIs anyone aware of any books that deal with this subject.\n\nPlease e-mail me.  Thanks.\n\nBarbara\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5366, "properties": {"category": "misc.forsale", "text": "From: clim@cis.ohio-state.edu (chia-fang lim)\nSubject: Vacation\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 24\nDistribution: usa\nNNTP-Posting-Host: maple.cis.ohio-state.edu\n\nHi netters,\n\nI have the following  vacation  packages  for  sale:\n\n1>  Bahamas  Vacation.\n     2  round  trip  tickets to freeport,  Grand Bahamas.\n     Double  occupancy, hotel accomodation.\n     at  $ 27  per person  per  night.\n\n2>  Orlando Florida  + \n    Las  Vegas  +\n    Reno/ Lake Tahoe  Vacation\n\n    One round trip airline ticket.\n    (from  major  US  airports to the 3 of the above mentioned\n     destinations)\n    Hotel  Accomodation  for 1 or 2 people.\n    (for 3 days/ 2 Nights).\n\nFor  those  who  are  interested,\ndrop  me  a mail  at  clim@cis.ohio-state.edu.\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.256+0000", "event": "documents", "entityId": 5367, "properties": {"category": "rec.sport.baseball", "text": "From: dkl@cs.arizona.edu (David K. Lowenthal)\nSubject: Re: Braves & Giants\nOrganization: U of Arizona CS Dept, Tucson\nLines: 13\n\n>>\tThe situation with the Giants' bleachers is a case in point for the\n>>need for a commissioner.\n\nThis is true, but the main thing the commish i.e. Selig needs to do\nis to suspend Bobby Cox.  You *cannot* allow a team to come out at\nthe ump as the Braves did.  I usually rip umps, but in this case,\nthe players were dead wrong.  Cox should go for 5 games.  If I\nhad ever umped a game where that happened, I'd have ejected every\nplayer that came out.  Only Cox and Gant would have been spared, and\nthen Cox would have gone in the ensuing argument.\n\n--dave\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5368, "properties": {"category": "sci.med", "text": "From: matthews@Oswego.EDU (Harry Matthews)\nSubject: Re: GETTING AIDS FROM ACUPUNCTURE NEEDLES\nReply-To: matthews@oswego.Oswego.EDU (Harry Matthews)\nOrganization: Instructional Computing Center, SUNY at Oswego, Oswego, NY\nLines: 22\n\nIn article <1r4f8b$euu@agate.berkeley.edu> romdas@uclink.berkeley.edu (Ella I Baff) writes:\n>\n>   someone wrote in expressing concern about getting AIDS from acupuncture\n>   needles.....\n>\n>Unless your friend is sharing fluids with their acupuncturist who   \n>themselves has AIDS..it is unlikely (not impossible) they will get AIDS        \n>from acupuncture needles. Generally, even if accidently inoculated, the normal\n>immune response should be enough to effectively handle the minimal contaminant \n>involved with acupuncture needle insertion. \n>\nIsn't this what HIV is about - the \"normal immune response\" to an exposure?\n\n>Most acupuncturists use disposable needles...use once and throw away.\n\nI had electrical pulse nerve testing done a while back.  The needles were taken\nfrom a dirty drawer in an instrument cart and were most certainly NOT\nsterile or even clean for that matter.  More than likely they were fresh\nfrom the previous patient.  I WAS concerned, but I kept my mouth shut.  I\nprobably should have raised hell!\n\nAny comments?  No excuses.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5369, "properties": {"category": "sci.med", "text": "From: todamhyp@charles.unlv.edu (Brian M. Huey)\nSubject: Krillean Photography\nOriginator: todamhyp@charles.cs.unlv.edu\nOrganization: University of Nevada at Las Vegas, College of Engineering\nLines: 20\n\nI think that's the correct spelling..\n\tI am looking for any information/supplies that will allow\ndo-it-yourselfers to take Krillean Pictures. I'm thinking\nthat education suppliers for schools might have a appartus for\nsale, but I don't know any of the companies. Any info is greatly\nappreciated.\n\tIn case you don't know, Krillean Photography, to the best of my\nknowledge, involves taking pictures of an (most of the time) organic\nobject between charged plates. The picture will show energy patterns\nor spikes around the object photographed, and depending on what type\nof object it is, the spikes or energy patterns will vary. One might\nextrapolate here and say that this proves that every object within\nthe universe (as we know it) has its own energy signature.\n\n\n-- \n_\bD_\bI_\bS_\bC_\bL_\bA_\bI_\bM_\bE_\bR_\b: I can neither confirm nor deny any opinions\nexpressed in this article directly reflect my own personal or\npolitical views and furthermore, if they did, I would not be at\nliberty to yield such an explanation of these alleged opinions.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5370, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jon@chopin.udel.edu (Jon Deutsch)\nSubject: NEC P5200 Printer question!\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware - What state is that in?\nLines: 14\n\nI just picked up a second-hand \"color option\" for the NEC P5200\n24pin dot matrix printer.  Alas, there were no installation instructions,\nso I am totally confused on WHY it WON'T GO IN!\n\nDo I have to remove the actaual print head?  It seems *almost* to fit,\nbut not quite.\n\nPlease... any info would be most appreciated!\n\n\n       X-------------------+--------------+-----------------------X\n       |  |   |\\       |>jon@chopin.udel.edu<|  \"For my 2 cents,  |\n       | \\|on |/eutsch |>>-----------------<<|  I'd pay a dollar\" |\n       X------+--------------------+--------------------+---------X\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5371, "properties": {"category": "sci.med", "text": "From: caf@omen.UUCP (Chuck Forsberg WA7KGX)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nOrganization: Omen Technology INC, Portland Rain Forest\nLines: 29\n\nIn article <1r3ks8INNica@lynx.unm.edu> bhjelle@carina.unm.edu () writes:\n>In article <1993Apr21.091844.4035@omen.UUCP> caf@omen.UUCP (Chuck Forsberg WA7KGX) writes:\n>>In article <19687@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>>>\n>>>Can you provide a reference to substantiate that gaining back\n>>>the lost weight does not constitute \"weight rebound\" until it\n>>>exceeds the starting weight?  Or is this oral tradition that\n>>>is shared only among you obesity researchers?\n>>\n>>Not one, but two:\n>>\n>>Obesity in Europe 88,\n>>proceedings of the 1st European Congress on Obesity\n>>\n>>Annals of NY Acad. Sci. 1987\n>>\n>Hmmm. These don't look like references to me. Is passive-aggressive\n>behavior associated with weight rebound? :-)\n>\n>Brian\n\nI purposefully left off the page numbers to encourage the reader to\nstudy the volumes mentioned, and benefit therefrom.\n\n-- \nChuck Forsberg WA7KGX          ...!tektronix!reed!omen!caf \nAuthor of YMODEM, ZMODEM, Professional-YAM, ZCOMM, and DSZ\n  Omen Technology Inc    \"The High Reliability Software\"\n17505-V NW Sauvie IS RD   Portland OR 97231   503-621-3406\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5372, "properties": {"category": "comp.graphics", "text": "From: N020BA@tamvm1.tamu.edu\nSubject: Re: Help! Need 3-D graphics code/package for DOS!!!\nOrganization: Texas A&M University\nLines: 32\nNNTP-Posting-Host: tamvm1.tamu.edu\n\nIn article <1993Apr19.101747.22169@ugle.unit.no>\nrazor@swix.nvg.unit.no (Runar Jordahl) writes:\n>\n>N020BA@tamvm1.tamu.edu wrote:\n>:     Help!! I need code/package/whatever to take 3-D data and turn it into\n>: a wireframe surface with hidden lines removed. I'm using a DOS machine, and\n>: the code can be in ANSI C or C++, ANSI Fortran or Basic. The data I'm using\n>: forms a rectangular grid.\n>: is a general interest question.\n>:    Thank you!!!!!!\n \n      I'm afraid your reply didn't get thru. I do appreciate you trying to\nreply, however. Please try again.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5373, "properties": {"category": "sci.electronics", "text": "From: carlos@math.lsa.umich.edu (Carlos Montenegro)\nSubject: Low voltage lighting and X10 questions.\nOrganization: University of Michigan, Mathematics Department, Ann Arbor\nLines: 12\nNNTP-Posting-Host: sirius.math.lsa.umich.edu\n\n1. Can low Voltage lights be controlled with an X10  module by putting it \nbefore the transformer? It seems to work, even the dimmer works. Not very \nreliable. Will it damage the module? Can it be done reliably?\n\n2. I put a motion switch (Heath) to a low voltage light, it worked but now it is\nbroken, too much current? How can I get arround that? \n  \n3. How can I increase the intensity of a light using the X10 PC computer\ninterface without having it go 100% on first and then down. I am doing\nmy own programing, not the X10 program.\n\nThanks   C. Montenegro \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5374, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: brad@ravel.udel.edu (Brad Cain)\nSubject: Changing system fonts\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nLines: 18\n\nI would like to change all of the system fonts in windows... I have a \nprogram that will generate system fonts from truetype, but i was \nwondering if there is a problem to help you set up all your system\nfonts.\n\nAlso, how do i change the icon text color... all of my icon text is black,\nand i want to change it... couldn't find any options in control panel or\nin win.ini\n\nbrad  cain\nbrad@bach.udel.edu\n\n\n-- \n****************************************************************************\nbrad@bach.udel.edu             Brad Cain \t\t\t       N3NAF\ncain@snow-white.ee.udel.edu    University of Delaware Electrical Engineering\ncain@freezer.cns.udel.edu      \"Blah, blah, blah\"                   alt.blah \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5375, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: ISLAM BORDERS vs Israeli borders\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 56\n\nIn article <C50wJJ.J4r@newsflash.concordia.ca> ilyess@ECE.Concordia.CA (Ilyess Bdira) writes:\n>In article <4805@bimacs.BITNET> ehrlich@bimacs.BITNET (Gideon Ehrlich) writes:\n>>\n>>What are the borders the Islamic world dreams about ??\n>\n>The Islamic world dreams of being the whole planet, but not by kicking\n>the current inhabitant out, we rather deam of the day everybody converts.\n>If Jews had the same dream, I would not feel threatened a bit.\n\nThere certainly are muslims who *do not* believe that their dream of \na global Islamic community should be achieved through force. There are, \nhowever, others (and, they are often far more visible/vocal than the \nformer) who *do* accept the establishment of global Islam through force. \nI  would *not* feel threatened by those only accepting or pursuing \n\"Islamicization\" through peaceful means, nor by Jews advocating the same\napproach. Those advocating force as a means of expanding their side's\npower are certainly a threat.\n\nTo Palestinians, Israel is doing just that; maintaining its dominance\nof those *outside* its own \"group\". If I am told that \"I am not one of\nyou\" but you then impose your control on me, damn right you are a threat.\nIf I am a member of a non-muslim minority *inside* the Islamic\nworld and *actively did not* accept my \"minority\" status, I *would also \ncertainly* see Islam's domination as having been acheived, and maintained, \nthrough the powerful coercive force all majorities wield over minorities\nwithin their ranks.\n>>\n>>Islamic readers, I am waiting to your honest answer.\n>\n>I want also a honest answer from Zionists for the following questions:\n\nI am not a zionist, but do feel that *both* Jewish and Palestinian\nnationalist desires need, at this juncture, to be accepted in some way.\n>\n>1)why do jews who don't even believe in God (as is the case with many\n>of the founders of secular zionism) have a right in Palestine more\n>than the inhabitants of Palestine, just because God gave you the land?\n>\t\t\t\t\t\t***\nFor the same reason that some muslims believe it is proper and righteous\nfor Islam to be spread by force upon those who DO NOT WANT THAT. \n\n>2)Why do most of them speak of the west bank as theirs while most of\n>the inhabitants are not Jews and do not want to be part of Israel?\n\n[I refer to the \"most\" you also refer to] \nBecause they are scared, and feel very threatened, as well feeling that \nthis area *is* to some degree part of their belief/religion/heritage/\nidentity/etc.\n\nI too strongly object to those that justify Israeli \"rule\" \nof those who DO NOT WANT THAT. The \"occupied territories\" are not\nIsrael's to control, to keep, or to dominate.\n>\nTim\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5376, "properties": {"category": "comp.graphics", "text": "From: kai_h@postoffice.utas.edu.au (Kai Howells)\nSubject: Re: Ray tracer for ms-dos?\nOrganization: University of Tasmania\nLines: 33\n\nIn article <1r1cqiINNje8@srvr1.engin.umich.edu>,\ntdawson@llullaillaco.engin.umich.edu (Chris Herringshaw) wrote:\n> \n> \n> Sorry for the repeat of this request, but does anyone know of a good\n> free/shareware program with which I can create ray-traces and save\n> them as bit-mapped files?  (Of course if there is such a thing =)\n> \n> Thanks in advance\n> \n> Daemon\n\nPPPPP    OOOOO  V     V  Persistance Of Vision Raytracer.\nP    P  O     O V     V\nP    P  O     O V     V\nPPPPP   O     O V     V\nP       O     O  V   V\nP       O     O   V V\nP        OOOOO     V\n\nAvailable on archie and wuarchive in graphics type directories.\n\nPS It's freeware.\n\n--\n\n      _/_/_/                         \n    _/                                        Kai Howells.\n   _/         _/_/_/   _/ _/_/   _/  _/_/_/  kai_h@postoffice.utas.edu.au\n    _/_/    _/     _/ _/_/   _/ _/ _/       35 Mortimer Ave\n       _/  _/     _/ _/     _/ _/ _/       New Town TAS 7008\n      _/  _/     _/ _/     _/ _/ _/       Ph. Within Australia 002 286 110\n_/_/_/     _/_/_/  _/     _/ _/   _/_/_/  Elsewhere:        +61 02 286 110\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5377, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: umeister@hardy.u.washington.edu (Starfleet Command)\nSubject: 256 Color Drivers\nArticle-I.D.: shelley.1r2p1pINNp6\nReply-To: umeister@u.washington.edu\nDistribution: pnw\nOrganization: University of Washington, Seattle\nLines: 5\nNNTP-Posting-Host: hardy.u.washington.edu\n\nI would appreciate the driver name from CICA which functions as a 256\ncolor driver for a Quadtel video card. The type of chip or chipset used\nwould suffice as well.\n\n                                          umeister@u.washington.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5378, "properties": {"category": "rec.autos", "text": "From: c23st@kocrsv01.delcoelect.com (Spiros Triantafyllopoulos)\nSubject: Re: bullet proof luxury sedans\nDistribution: usa\nOrganization: Delco Electronics Corp.\nLines: 51\n\nIn article <1pnigoINN5in@senator-bedfellow.MIT.EDU> chsu@mtl.mit.edu (Charles H. Hsu) writes:\n>I am interested to find out if there is any domestic car manufacturer\n>(especially GM and FORD) which produces \"bullet-proof\" luxury sedans.\n\nI understand Caddy is working on one, double battery, super high perf\nengine, more gauges, a bit 'stretched', etc, lots of communication equipment,\nthe works. Color selection is limited though. \n\nThe problem is that the guy at 1600 Penn. Avenue is about to get it\n(Pres. Clinton) (Last time it was a Lincoln, this time a Caddy). \n\n>I am just wondering if this so-called \"bullet-proof\" (perhaps reinforced\n>windows, special materials for the body/engine/etc.) luxury car - Lincoln\n>and Cadillac models - is readily available to the public.  \n\nNot to my knowledge; I know GM does conversion work for things like \nhot climates (i.e. the Chevy Caprices sold to the Middle East) but \nthings like that are always done by third parties, NOT the manufacturer.\nMaybe you will need to buy a specific package that has beefed-up everything,\nperhaps the police cruiser package on the Caprice/Crown Vic and start from\nthere. \n\n>Do we have\n>to go through any special dealership to obtain these cars?  I would really\n>like to hear from anyone who has experience with the \"bullet-proof\" cars.\n\n\"And I wuz drivin' along in my armored Seville STS and this punk pulls out\nof nowhere with an RPG (Rocket Propelled Grenade) but the bulletproof\nwindshield stopped him\" :-) Don't think many people on the net have a need\nfor bulletproof cars. \n\nCheck with local armored service companies/security/bodyguard places. They'd\nknow best. I think your average luxury car dealer will have a coronary if\nyou told them \"I'll take the blue Caprice, with options FZ01 (Fuzzy Dice),\nPR11 (power everything), and AR007 (Armor). \n\n>Any information regarding the dealers and after-market shops that have\n>\"bullet-proof\" Lincoln's and Cadillac's is greatly appreciated.  You may\n>email me at chsu@mtl.mit.edu or post the message in this newsgroup if\n>you believe other netters might be interested as well.  BTW, same information\n>on Mercedes-Benz, BMW, Lexus, and Infiniti luxury sedans is needed\n>as well if you have it.\n\nI believe an article on the conversion process appeared in the car press within\nthe last few months.\n\nSpiros\n-- \nSpiros Triantafyllopoulos                    c23st@kocrsv01.delcoelect.com\nSoftware Technology, Delco Electronics       (317) 451-0815\nGM Hughes Electronics, Kokomo, IN 46904      [A Different Kind of Disclaimer]\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5379, "properties": {"category": "sci.med", "text": "From: dozonoff@bu.edu (david ozonoff)\nSubject: Re: food-related seizures?\nLines: 22\nX-Newsreader: Tin 1.1 PL5\n\nSharon Paulson (paulson@tab00.larc.nasa.gov) wrote:\n: \n{much deleted]\n: \n: \n: The fact that this happened while eating two sugar coated cereals made\n: by Kellog's makes me think she might be having an allergic reaction to\n: something in the coating or the cereals.  Of the four of us in our\n: immediate family, Kathryn shows the least signs of the hay fever, running\n: nose, itchy eyes, etc. but we have a lot of allergies in our family history\n: including some weird food allergies - nuts, mushrooms. \n: \n\nMany of these cereals are corn-based. After your post I looked in the\nliterature and located two articles that implicated corn (contains\ntryptophan) and seizures. The idea is that corn in the diet might\npotentiate an already existing or latent seizure disorder, not cause it.\nCheck to see if the two Kellog cereals are corn based. I'd be interested.\n--\nDavid Ozonoff, MD, MPH\t\t |Boston University School of Public Health\ndozonoff@med-itvax1.bu.edu\t |80 East Concord St., T3C\n(617) 638-4620\t\t\t |Boston, MA 02118 \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5380, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jenkinch@ccmail.orst.edu\nSubject: Re: Adaptec SCSI Device Driver for Win3.1\nOrganization: University Computing Services - OSU\nLines: 1\nDistribution: world\nNNTP-Posting-Host: jenkinsc.ads.orst.edu\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5381, "properties": {"category": "talk.politics.guns", "text": "From: cathy@LANCE.ColoState.Edu (Cathy Smith)\nSubject: Letter to a Liberal Colleague -- L. Neil Smith\nDistribution: usa\nNntp-Posting-Host: blanca.lance.colostate.edu\nOrganization: Colorado State University, Fort Collins, CO  80523\nLines: 147\n\nPosted by Cathy Smith for L. Neil Smith\n\n                   LETTER TO A LIBERAL COLLEAGUE\n\n[AUTHOR'S NOTE:  \"Adrian\" -- name changed to protect the guilty -- \nand the author are science fiction novelists who once worked with \nthe same editor at a famous New York publishing house.]\n\nDear Adrian:  \n\nI'm way behind schedule on my current book again, so this reply to \nyour note -- criticizing the recent magazine interview I gave and \ngenerally attacking gun ownership -- will necessarily consist \nmostly of assertions you're free to believe (or not) I can back \nwith evidence and logic I've neither time nor energy to present \nnow.  I've written fully on this topic before and will again in the \nfuture.  When I do, I'll make sure you get copies.  \n\nThere are many arguments I might make, from the futility and danger \nof delegating self-defense to the police (see Don Kates in the Jan. \n10, 1985 WALL STREET JOURNAL) to the real effect of prohibition, \nshifting consumers from newly-outlawed handguns or semiautomatic \nrifles to items like sawed-off shotguns or homemade bombs, but I'll \nlimit myself here to commenting on the newspaper clipping you sent \nwith your note.  \n\nFirst, the freedom to own and carry the weapon of your choice is a \nnatural, fundamental, and inalienable human, individual, civil, and \nConstitutional right -- subject neither to the democratic process \nnor to arguments grounded in social utility.  \n\nSecond, publication of some latter-day \"scientific study\" doesn't \nalter the fact that the gun prohibitionists I discussed in my \ninterview -- annoying you so much in the process -- were lying.  \n\nThird, the freedom to own and carry the weapon of your choice is a \nnatural, fundamental, and inalienable human, individual, civil, and \nConstitutional right -- subject neither to the democratic process \nnor to arguments grounded in social utility.  \n\nFourth, as often happens with these things, the \"study\" doesn't \nsupport the gun prohibitionists' original numerical contentions \nanyway, but simply adds a new layer of spurious claims to an older \nbody of lies, omissions, and distortions.  \n\nFifth, the freedom to own and carry the weapon of your choice is a \nnatural, fundamental, and inalienable human, individual, civil, and \nConstitutional right -- subject neither to the democratic process \nnor to arguments grounded in social utility.  \n\nSixth, the fact that gun prohibitionists have been caught lying on \ncountless occasions (Carl Bakal, author of NO RIGHT TO KEEP AND \nBEAR ARMS, even confessed to it publicly) makes the value of this \npresent \"study\" dubious, to say the least.  \n\nSeventh, the freedom to own and carry the weapon of your choice is \na natural, fundamental, and inalienable human, individual, civil, \nand Constitutional right -- subject neither to the democratic \nprocess nor to arguments grounded in social utility.  \n\nEighth, given your own lifelong service as a federal bureaucrat \n(not to mention the cynical sophistication of your fiction), you \nshould be better aware than most people how \"progress\" -- in \ndesigning \"studies\" to prove whatever you want -- outstrips our \nability to collect meaningful data.  A case in point we might agree \non is the fact that it took another kind of prohibitionist 20 or 30 \nyears to create \"studies\" \"proving\" that pornography causes crime.  \nMore naive (and probably more honest) efforts in the 50s and 60s \nclearly indicate the contrary.  \n\nNinth, the freedom to own and carry the weapon of your choice is a \nnatural, fundamental, and inalienable human, individual, civil, and \nConstitutional right -- subject neither to the democratic process \nnor to arguments grounded in social utility.  \n\nTenth, another reason to doubt all such \"studies\" is that human \nbehavior (as the Austrian School of economics demonstrates) is far\ntoo complex and unpredictable to be meaningfully quantified.  The \nattempt to do so -- and then create public policy based on the \nresulting pseudo-information -- is wrecking our civilization.  \n\nEleventh, the freedom to own and carry the weapon of your choice is \na natural, fundamental, and inalienable human, individual, civil, \nand Constitutional right -- subject neither to the democratic \nprocess nor to arguments grounded in social utility.  \n\nTwelfth, the \"study\" is also worthless because it incorporates \nfigures for suicide, which is not necessarily a tragedy but \nbasically another individual right, sometimes with ancillary social \nbenefits.  If anything, perhaps suicide INTERVENTION should be a \ncriminal offense.  \n\nThirteenth and finally, the National Rifle Association officials \nquoted in the article, whatever their shortcomings (and they are \nmany), are correct in this instance:  the \"study\" is meaningless \nbecause the freedom to own and carry the weapon of your choice is a \nnatural, fundamental, and inalienable human, individual, civil, and \nConstitutional right -- subject neither to the democratic process \nnor to arguments grounded in social utility.  \n\nAnd because of that, Adrian, even if the \"study\" were valid, it \nwouldn't deter me from a lifelong personal objective of seeing that \nanyone can own any weapon he or she prefers and carry it however, \nwhenever, and wherever he or she desires without asking anybody's \npermission. In this I'm ably assisted by gun prohibitionists \nthemselves, whose yawping invariably moves previously unarmed \npeople to go out and buy their first gun \"while they still can\".  \nBefore the '68 Gun Control Act, most of the \"shooting fraternity\" \nviewed handguns (incorrectly, as it turned out) as inaccurate, \nineffective toys.  There probably weren't six million of them in \nthe whole country.  Now, thanks to Kennedy, Metzenbaum, the Bradys, \nand their ilk -- AMERICA'S GREATEST SPORTING GOODS SALES TEAM -- we \nprobably manufacture at least that many every year.\n\nThe fascinating datum is that Handgun Control, et al. are perfectly \naware of this -- so I guess you'll have to ask them yourself what \ntheir real motives are.  \n\nLook:  gun-making isn't an arcane or difficult art (and by the way, \nit's easier to make a fully automatic weapon than a semiautomatic; \nthe fact that I can still obtain my own weapon of preference, the \nself-loading pistol, is the only thing which keeps me from pursuing \nthis further).  Even if it were difficult, there are already a \nquarter billion firearms in America, with an estimated \"half life\" \nof 1000 years -- possibly more for stainless steel.  Guns are gonna \nbe around a long time, Adrian, whether you like it or not.\n\nAs for me, to paraphrase Elmer Keith, regardless of what the law \nprovides or any court decides, I'm always going to be armed.  And I \nwill always work to see that others are, as well.  The bad news is \nthat there are thousands more -- perhaps even hundreds of thousands \n-- where I come from.  We can't be stopped by passing laws, we can \nonly be forced to arm ourselves and others secretly and -- given \nboth the practical and alleged differences between full automatics \nand semiautomatics -- perhaps more efficiently.  \n\nSo what's the point?  \n\nL. Neil Smith\nAuthor:  THE PROBABILITY BROACH, THE CRYSTAL EMPIRE, HENRY MARTYN, \nand (forthcoming) PALLAS\nLEVER ACTION BBS (303) 493-6674, FIDOnet: 1:306/31.4\nLibertarian Second Amendment Caucus\nNRA Life Member\n\nMy opinions are, of course, my own.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5382, "properties": {"category": "rec.sport.baseball", "text": "From: spira@panix.com (Greg \"Sarcasm Is A Way Of Life\" Spira)\nSubject: Re: And America's Team is....But Why?\nOrganization: Boo!\nLines: 36\n\nIn <1qsk9d$dck@usenet.INS.CWRU.Edu> jdl6@po.CWRU.Edu (Justin D. Lowe) writes:\n\n\n>In a previous article, steinman@me.utoronto.ca (David Steinman) says:\n\n>>cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>>\n>>>\tThe defenition of the Underdog is a team that has no talent and comes\n>>>out of nowhere to contend.  The '69 Mets and '89 Orioles are prime examples,\n>>>not the Cubs. \n>>\n>>Sorry, but it is *virtually* impossible to win a division with \"no talent\"\n>>over 162 games.\n>>\n>>I would amend your definition to:\n>>\n>>underdog:  a team expected to lose, but which wins thanks to underestimated\n>>           talent.\n>>--\n>>Dave!\n>>\n\n>OK, the Mets and O's are good examples, but what about the '90 Reds?  Do you\n>really think that anyone expected them to sweep the A's?  I know people who\n>didn't even think they'd win a game, let alone win the Series. \n\nThese people were very silly.  Any team that gets to the World Series\ncan win the World Series, and anybody who ever expects a sweep is\ncrazy.  If you put the best team in baseball in the Series against\nthe worst team in baseball, the worst team would win at least a game\nmost of the time and very well could win the Series, though the odds\nwould certainly be against them.\n\nGreg \n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5383, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ua020@freenet.Victoria.BC.CA (Toby Sinats)\nSubject: Accelerator for Classic II?\nNntp-Posting-Host: freenet.victoria.bc.ca\nOrganization: Camosun College, Victoria B.C, Canada\nLines: 4\n\n\nDoes one exist, who makes it, and how much?\nThanks:)\n-- \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5384, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: carter@photon.cem.msu.edu (Tom Carter <carter@photon.cem.msu.edu>)\nSubject: Re: WinQVT/Net V3.4?\nOrganization: Michigan State University, Chemistry Department, E. Lansing, MI\nLines: 28\nNNTP-Posting-Host: exciton.cem.msu.edu\n\n\nIn article <ashok.661.0@biochemistry.cwru.edu> ashok@biochemistry.cwru.edu (Ashok Aiyar) writes:\n>In article <354@lorien.OCF.LLNL.GOV> dave@angmar.llnl.gov (Dave Fuess) writes:\n>\n>>An earlier article in this newsgroup made reference to\n>>WinQVT/Net version 3.4. Realy? Where? I tried archie\n>>with no luck. It's probably just a typo.\n>\n>Not a typo.  It was uploaded to ftp.cica.indiana.edu a couple days back.\n>\n>>But I sure would like to get one if it's real as I too\n>>have a printer problem in WinQVT.\n>\n>Version 3.4 uses standard Windows printer drivers.\n>\n>Ashok\n>\n\nIt's still in the pub/pc/win3/uploads directory as qvtnet34.zip.\n\n\nNOTE: NEW EMAIL ADDRESS!\n===========================================================================\n|               Tom Carter             |     carter@photon.cem.msu.edu    |\n|        Michigan State University     |     carter@msucem.bitnet         |\n|          Chemistry Department        |                                  |\n===========================================================================\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5385, "properties": {"category": "talk.politics.mideast", "text": "From: spinoza@next06wor.wam.umd.edu (Yon Bonnie Laird of Cairn Robbing)\nSubject: Re: ISLAM BORDERS. ( was :Israel: misisipi to ganges)\nNntp-Posting-Host: next03wor.wam.umd.edu\nOrganization: Workstations at Maryland, University of Maryland, College Park\nLines: 20\n\nIn article <1993Apr5.183555.20163@thunder.mcrcim.mcgill.edu>  \nhasan@McRCIM.McGill.EDU writes:\n> \n> In article <4805@bimacs.BITNET>, ehrlich@bimacs.BITNET (Gideon Ehrlich)  \nwrites:\n> |> \n> |> Hassan and some other seemed not to be a ware that Jews celebrating  \non\n> |> these days Thje Passover holliday the holidy of going a way from the\n> |> Nile.\n> |> So if one let his imagination freely work it seemed beter to write\n> |> that the Zionist drean is \"from the misisipi to the Nile \".\n> \n> the question is by going East or West from the misisipi. on either  \nchoice\n> you would loose Palestine or Broklyn, N.Y.\n> \n> I thought you're gonna say fromn misisipi back to the misisipi !\n> \nNonononnononono....its \"From the Nile to the Nile.....the Long way!\" ;-)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5386, "properties": {"category": "sci.med", "text": "From: evanh@sco.COM (Evan Hunt)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: The Santa Cruz Operation, Inc.\nDistribution: usa\nLines: 18\n\n\nIn article <1993Apr19.215342.16930@sco.com> evanh@sco.COM (Evan Hunt) writes:\n \n>In article <1993Apr13.201942.26058@iscnvx.lmsc.lockheed.com> sharen@iscnvx.lmsc.lockheed.com (Sharen A. Rund) writes:\n \n>>restaurants advertize \"No MSG\") - many restaurants that feature salad\n>>bars use MSG to \"keep\" the veggies looking fresh longer, also, a number\n \n>This brings up an important question for me - could pre-made salads, the\n>kind sold in supermarkets, have MSG added without mentioning it? Legally,\n>I mean - anyone know what the law is in this area?\n\n\nSteve Dyer points out that Sharen was probably thinking of Sulfites. But\nthe question still stands.\n-- \nEvan Hunt, Asst. Editor, THE WEB\nFor more information about THE WEB, e-mail to evanh@sco.COM.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5387, "properties": {"category": "rec.sport.hockey", "text": "From: atkinsj@reis59.alleg.edu (Joshua Atkins)\nSubject: Re: Goalie Mask Update\nOrganization: Allegheny College\n\nIn article <C5L3EC.F2v@acsu.buffalo.edu> hammerl@acsu.buffalo.edu (Valerie  \nS. Hammerl) writes:\n> In article <93289@hydra.gatech.EDU> gtd597a@prism.gatech.EDU (Hrivnak)  \nwrites:\n> >\n> >\tHere are the results after three days of voting. Remember 3pts for \n> >1st, 2 for 2nd, and 1 for 3rd. Also, you can still turn in votes! And..  \nif\n> >the guy isn't a regular goalie or he is retired, please include the  \nteam! \n> >Thanks for your time, and keep on sending in those votes!\n> \n> > Glenn Healy (NYI), Tommy Soderstron (???), Ray LeBlanc (USA).\n>                      ^^^^^^^^^^^^^^^^^^^^^^\n> \n> Soderstrom plays with Philly, but he doesn't have a moulded mask.\n> He's got the helmet and cage variety, in white.  Or at least that's\n> what he wore thirteen hours ago.\n> \nYeah but Soderstrom's mask has always appeared to be a lot bigger than the  \naverage helmet-and-cage variety.  It has a certain appeal on its own\n\njosh\n\n\n> -- \n> Valerie Hammerl\t\t\t\"Some days I have to remind him  \nhe's not \n> hammerl@acsu.buffalo.edu\tMario Lemieux.\"  Herb Brooks on Claude\n> acscvjh@ubms.cc.buffalo.edu\tLemieux, top scorer for the Devils, but \n> v085pwwpz@ubvms.cc.buffalo.edu  known for taking dumb penalties.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5388, "properties": {"category": "misc.forsale", "text": "From: tammy@uclink.berkeley.edu (Tammy Chen)\nSubject: Toolwork: MPC Encyclopedia on CD-ROM\nOrganization: University of California, Berkeley\nLines: 14\nNNTP-Posting-Host: uclink.berkeley.edu\n\nI have the following program on CD ROM forsale:\n\n\n\tToolwork MPC Encyclopedia on CD-ROM\n\t- Multimedia\n\t- Brand new\n\t  - Shrink-wrapped\n\n\nAsking : $50 / obo\n\nSend reply to : sam@ocf.berkeley.edu\n\nThank you\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5389, "properties": {"category": "soc.religion.christian", "text": "From: MNHCC@cunyvm.bitnet (Marty Helgesen)\nSubject: Public/Private Revelation (formerly Re: Question about Virgin Mary\nOrganization: City University of New York\nLines: 35\n\nMark Ashley's account of private revelation does not, as some might\nthink, contradict my posting in which I said that the Catholic Church\nbelieves that public revelation, on which Catholic doctrine is based,\nended with the death of St. John, the last Apostle.  In that posting\nI made sure I used the word \"public\".  Public revelation contains\nGod's truth intended for everyone to believe.  The revelation contained\nin the Bible is a significant subset of public revelation.  Private\nrevelation is revelation that God gives to an individual.  He may speak\ndirectly to the individual, He may send an angel, or He may send the\nVirgin Mary or some lesser saint.  The only person who is required to\nbelieve a private revelation is the person to whom it is revealed.\nDevotional practices may be based on reported private revelations,\nbut doctrines can not.\n\nWhen an alleged private revelation attracts sufficient attention, the\nChurch may investigate it.  If the investigation indicates a likelihood\nthat the alleged private revelation is in fact from God, it will be\napproved.  That means that it can be preached in the Church.  However,\nit is still true that no one is required to believe that it came from\nGod.  A Catholic is free to deny the authenticity of even the most\nwell attested and strongly approved private revelations, such as those\nat Fatima and Lourdes.  (I suspect that few if any Catholics do reject\nFatima and Lourdes, but if any do their rejection of them does not\nmean they are not orthodox Catholics in good standing.)\n\nI do not have at hand a list of the criteria the Church uses in\nevaluating an alleged private revelation--it's not something I need\nevery day--but I know that one of the primary requirements is that\nnothing in the alleged private revelation can contradict anything\nknown through public revelation\n-------\nMarty Helgesen\nBitnet: mnhcc@cunyvm   Internet: mnhcc@cunyvm.cuny.edu\n\n\"What if there were no such thing as a hypothetical situation?\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5390, "properties": {"category": "sci.electronics", "text": "From: mycal@NetAcsys.com (Mycal)\nSubject: ATARI 2600 Processors \nDistribution: world\nOrganization: ACSYS, Inc.\nLines: 19\n\n\nFor all people that are interested in every aspect of the 2600 try the\nzine:\n\n2600 connection\n$1 cash to :\nTimothy Duarte\nPO Box N, 664\nWestport, MA 02790\n\nfor sample\n\n\n\n---------------------------------------------------------------------------\nPGP key on request.       mycal@netacsys.com\n                                                              \\ //\nMycal's way of skiing moguls:                                 // \\\nturn, turn, turn, air, survive, survive, survive...     No Risk, No Rush\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.257+0000", "event": "documents", "entityId": 5391, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Re: The infamous Gateway 2000 video/monitor problem: info requested!\nOrganization: Ford Motor Company Research Laboratory\nLines: 32\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\nGreg Spath (GKS101@psuvm.psu.edu) wrote:\n: In article <C4uEoM.EvF@odin.corp.sgi.com>, mikey@sgi.com (Mike Yang) says:\n: >So, by going mailorder through Gateway, I save ~13%.  Plus, I get\n: >technical support over the phone, free software package.\n: >\n: Have fun trying to get hold of technical support over the phone.  At least\n: locally you can walk right up to the dealer and tell him what is wrong, and\n: he has to fix it.\n\nPhone support is quick and competent from many mail order firms, but not so\nquick and not so competent from others (Gateway included).  But my experience\nwith computer retailers (which is significant) has lead to the conclusion that\nsales personnel and retail-technical personnel are forbidden to actually learn\nabout the products they sell.  Talk about incompetent!  O.K., so a few percent\nof their answers are correct, but those salesmen don't even realize how stupid\nthey are.   ...  .......  O.K.  ...I'll settle down now....  .... let me\ncatch my breath.....  ..\n\nFact: retail stores never provide a better value in terms of price per product.\n\nRetail outlets are desirable, however, to those people who aren't interested\nin learning about computers enough to make their own decisions.  This is fine;\nfor example most of my education about carpeting, wall paper, lawn mowers,\nmicrowave ovens, etc. has come from sales personnel.  I assume I must be an\nidiot.  But I don't care about those things.  I do, however, care about my\ncomputer - i.e. I demand features and performance, and I'll be damned if I'll\npay some high-school drop out commission on an over-rated, over-priced system\nand in the process be subjected to his distorted B.S.\n\nG.L.\n\nare generally so \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5392, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: Allen.Gervais@ttlg.UUCP (Allen Gervais)\nSubject: Mountain Tape Backup\nLines: 18\n\nDH>>Does anyone out their have a mountain tape backup that I could compare\nDH>>notes with, (jumper settings, software, ect...)\nDH>>or does anyone know where I could contact the makers of this drive ?\n\nDH>You can contact Mountain Network Solutions at:\nDH>800-458-0300 (general number)\nDH>408-438-7897 (tech support)\nDH>408-438-2665 (bbs)\n\nThanks very much for the info David !\nEspecially for their tech and BBS lines.\nThis should get me going...\n\nBye !\n___\n X SLMR 2.1a X It's only a hobby ... only a hobby ... only a\n\n * Origin: The Keep BBS (1:342/13)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5393, "properties": {"category": "soc.religion.christian", "text": "From: atterlep@vela.acs.oakland.edu (Cardinal Ximenez)\nSubject: Re: Opinions asked about rejection\nOrganization: National Association for the Disorganized\nLines: 23\n\n\n  Here's how I talk to non-Christians who are complaining about Hell.\n\nME:\t\"Do you believe you're going to Heaven?\"\nHIM:\t\"I don't believe in Heaven.\"\nME:\t\"So are you going there?\"\nHIM:\t\"If there was a heaven, I would.\"\nME:\t\"But since there isn't a Heaven, you're not going there, are you?\"\nHIM:\t\"No.\"\n\n  The point is that Heaven is based on faith--if you don't believe in heaven,\nthere's no way you're going to be in it.\n  Of course, the next step is, \"I don't believe in Hell either, so why will I\nbe there?\"  It seems to me that Hell is eternal death and seperation from God.\nMost atheists do believe that when they die they will die forever, and never\nsee God--so they do, in fact, believe that they're going to Hell.\n  Hell doesn't have to be worse than earth to be Hell--because it's eternal, \nand it's a lot worse than Heaven.  That's the only comparison that matters.\n\nAlan Terlep\t\t\t\t    \"Incestuous vituperousness\"\nOakland University, Rochester, MI\t\t\t\natterlep@vela.acs.oakland.edu\t\t\t\t   --Melissa Eggertsen\nRushing in where angels fear to tread.\t\t\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5394, "properties": {"category": "talk.politics.misc", "text": "From: gadfly@cbnewsi.cb.att.com (Gadfly)\nSubject: Re: California Insurance Commissioner Endorses Federal Legislation to Protect Consumers from Scam Insurance Companies\nOrganization: AT&T\nDistribution: usa\nSummary: \"Talkin about my g-g-generation.\"\nLines: 41\n\nIn article <RLM.93Apr2050627@helen.surfcty.com>, rlm@helen.surfcty.com\n(Robert L. McMillin) rants:\n> The left likes to dodge the issues of morality and behavior, crying that\n> anyone who raises them \"blames the victim.\"  Nonetheless, as a recent\n> editorial in the {Los Angeles Times} pointed out, the free love\n> advocates of the 1960's have demolished the poor.  It's one thing to\n> have children out of wedlock if you're, say, Murphy Brown (or someone\n> like her), turning over a six figure salary -- and quite another if\n> you're sixteen, have no skills, and no income.\n\nAnd how did the \"free love advocates of the 1960's\" manage to perform\nthis demolition--forced breeding programs or something?\n\n> By accepting and even celebrating single, out-of-wedlock parenthood, the\n> 1960's radicals espousing free love set the stage for catastrophe among\n> the poor. They must account for this...\n\nNow let me get this straight.  After a nice, long rant about how\npeople need to take personal responsibility for their economic and\nsocial lives, all of a sudden 1960's radicals (such as me, I guess)\nare responsible for poor people's lifestyles?  Tell me how that\nworks--or do you think that poor people are just too dumb to think\nfor themselves?\n\nThere are many reasons for the disintegration of the family and\nsupport systems in general among this nation's poor.  Somehow I\ndon't think Murphy Brown--or Janis Joplin--is at the top of any \nsane person's list.\n\nYou want to go after my generation's vaunted cultural revolution for\na lasting change for the worse, try so-called \"relevant\" or \"values\"\neducation.  Hey, it seemed like a good idea at the time.  How were\nwe to know you needed a real education first--I mean, we took that\nfor granted.\n\n               *** ***\nKen Perlow   ***** *****\n05 Apr 93   ****** ******   16 Germinal An CCI\n            *****   *****   gadfly@ihspc.att.com\n             ** ** ** **\n...L'AUDACE!   *** ***   TOUJOURS DE L'AUDACE!  ENCORE DE L'AUDACE!\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5395, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mirsky@hal.gnu.ai.mit.edu (David Joshua Mirsky)\nSubject: Re: Desktop rebuild and Datadesk keyboard?\nOrganization: dis\nLines: 32\nNNTP-Posting-Host: hal.ai.mit.edu\n\nIn article <C5I77w.3oE@cs.uiuc.edu> tthiel@cs.uiuc.edu (Terry Thiel) writes:\n>Ijust got a new Datadesk 101E keyboard to go with my new Centris 610 and have a\n>problem doing desktop rebuilds.  I hold down the Command and Option keys and\n>restart but nothing happens.  The DIP switches are set the right way and the\n>Command and Option keys seem to work on anything else.  I'm running 7.1 btw.\n>Anyone know what the problem is?\n>-Terry\n\n\nI am resending this message because my news program may have goofed the first\ntime.\n\nTerry, I recently bought an LCIII and a Datadesk 101E. I don't\nremember trying to rebuild the desktop with it, however it did give me\na strange problem.  When I held down shift during startup to disable\nall extensions, nothing happened. I tried it with another keyboard, using\nthe same adb connector cable- and it worked with the other keyboard.\nThe shift key on the Datadesk keyboard worked well otherwise. I checked\nthe dipswitches and they are fine.  Try disabling your extensions and tell\nme if it works.\n             \nI am annoyed with Datadesk.  I sent them the keyboard in the mail for\ninspection/repair/replacement.  The technician on the phone said they\nhave a 10-14 day turn around time- meaning you should receive the\ninspected/repaired keyboard in that time.  Well, they have had the          \nkeyboard for over 3 weeks and I still have gotten very little info\nfrom them about it. It's annoying because it cost me $12 to send them\nthe keyboard and their technical support line is not toll free. tell me\nif you have a similar experience with them.\n\n-David Mirsky\nmirsky@gnu.ai.mit.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5396, "properties": {"category": "rec.autos", "text": "From: tomacj@opco.enet.dec.com (THUNDERBIRDS ARE GO !!!)\nSubject: MR2 - noisy engine.\nOrganization: Digital Equipment Corporation\nLines: 19\nNNTP-Posting-Host: OPCO\n\n\nG'day people,\n\t\n\tAre there any MR2 owners or motor-head gurus out there, that know why\nmy MR2's engine sounds noisy? The MR2's engine is noisy at the best of times, \nbut not even a nice nose - it's one of those very ugly noises. \n\tI do an oil change every 2-3 months, and for about 2 months the engine\nnoise sounds relatively quiet during driving and idling. At around the 3 month\nmark, after an oil change (I've been tracking this very thoroughly for months\nnow) it starts to get that very disgusting noise, not so much during driving,\nbut more so during idling. \n\tWhat's its problem? \n\tAlso.. I don't know if it's just me, but if noticed a little\nperformance drop. It just hasn't got the acceleration it used to. \n\n\tAny help/tips would be appreciated!!\n\n\nWorried.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5397, "properties": {"category": "rec.autos", "text": "From: rseymour@reed.edu (Robert Seymour)\nSubject: Re: WHAT car is this!?\nArticle-I.D.: reed.1993Apr21.032905.29286\nReply-To: rseymour@reed.edu\nOrganization: Reed College, Portland, OR\nLines: 26\n\nIn article <1993Apr20.174246.14375@wam.umd.edu> lerxst@wam.umd.edu (where's my  \nthing) writes:\n> \n>  I was wondering if anyone out there could enlighten me on this car I saw\n> the other day. It was a 2-door sports car, looked to be from the late 60s/\n> early 70s. It was called a Bricklin. The doors were really small. In  \naddition,\n> the front bumper was separate from the rest of the body. This is \n> all I know. If anyone can tellme a model name, engine specs, years\n> of production, where this car is made, history, or whatever info you\n> have on this funky looking car, please e-mail.\n\nBricklins were manufactured in the 70s with engines from Ford. They are rather  \nodd looking with the encased front bumper. There aren't a lot of them around,  \nbut Hemmings (Motor News) ususally has ten or so listed. Basically, they are a  \nperformance Ford with new styling slapped on top.\n\n>    ---- brought to you by your neighborhood Lerxst ----\n\nRush fan?\n\n--\nRobert Seymour\t\t\t\trseymour@reed.edu\nPhysics and Philosophy, Reed College\t(NeXTmail accepted)\nArtificial Life Project\t\t\tReed College\nReed Solar Energy Project (SolTrain)\tPortland, OR\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5398, "properties": {"category": "sci.electronics", "text": "From: keith@radio.nl.nuwc.navy.mil\nSubject: Tektronix 453 scope for sale\nArticle-I.D.: radio.623\nLines: 19\nX-Received: by usenet.pa.dec.com; id AA26719; Tue, 6 Apr 93 14:52:02 -0700\nX-Received: by inet-gw-1.pa.dec.com; id AA16140; Tue, 6 Apr 93 14:51:56 -0700\nX-To: sci.electronics.usenet\n\nTektronix 453 scope for sale:\n\n  - 50MHz bandwidth\n  - portable (NOT one of the 5xx series boatanchors! :^)\n  - delayed sweep\n  - works fine\n  - I don't have the manual (they are available from various places)\n  - no probes\n\n  - $275 + shipping\n\nEmail me for more info...\n\nRegards,\nKeith\n\n----\nKeith Kanoun, WA2Q\nkdk@radio.nl.nuwc.navy.mil\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5399, "properties": {"category": "talk.politics.guns", "text": "From: jon@atlas.MITRE.org (J. E. Shum)\nSubject: Re: Change of name ??\nOriginator: jon@atlas\nNntp-Posting-Host: atlas.mitre.org\nOrganization: The MITRE Corp. McLean Va.\nLines: 33\n\n\nIn article <CMM.0.90.2.735315429.thomasp@holmenkollen.ifi.uio.no>, Thomas Parsli <thomasp@ifi.uio.no> writes:\n> \t1. Make a new Newsgroup called talk.politics.guns.PARANOID or \n> \ttalk.politics.guns.THEY'R.HERE.TO.TAKE.ME.AWAY\n> \n> \t2. Move all postings about waco and burn to (guess where)..\n> \n> \t3. Stop posting #### on this newsgroup\n> \n> \tWe are all SO glad you're trying to save us from the evil \n> \tgoverment, but would you mail this #### in regular mail to\n> \tlet's say 1000 people ????\n> \t\n> \n> \n> \n> \tThis is not a .signature.\n> \tIt's merely a computergenerated text to waste bandwith\n> \tand to bring down the evil Internet.\n> \n> \n>                         Thomas Parsli\n>                         thomasp@ifi.uio.no\n\nHow about a group called talk.that.thomas.parsli.approves?\n-- \nClinton Administration e-mail addresses | clintonhq@campaign92.org (MCIMail)\n    provided as a public service by     | 75300.3115@compuserve.com (CompuServe)\n    Jon Edward Shum (jon@mitre.org)     | clintonpz@aol.com (America Online)\n-- \nClinton Administration e-mail addresses | clintonhq@campaign92.org (MCIMail)\n    provided as a public service by     | 75300.3115@compuserve.com (CompuServe)\n    Jon Edward Shum (jon@mitre.org)     | clintonpz@aol.com (America Online)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5400, "properties": {"category": "talk.politics.mideast", "text": "From: flax@frej.teknikum.uu.se (Jonas Flygare)\nSubject: Re: 18 Israelis murdered in March\nOrganization: Dept. Of Control, Teknikum, Uppsala\nLines: 195\n\t<FLAX.93Apr5224449@frej.teknikum.uu.se>\n\t<1993Apr5.221759.28472@thunder.mcrcim.mcgill.edu>\nNNTP-Posting-Host: frej.teknikum.uu.se\nIn-reply-to: hasan@McRCIM.McGill.EDU 's message of Mon, 5 Apr 93 22:17:59 GMT\n\nIn article <1993Apr5.221759.28472@thunder.mcrcim.mcgill.edu> hasan@McRCIM.McGill.EDU  writes:\n\n[ stuff deleted ]\n   |> I wrote:\n   |> Are you calling names, or giving me a title? If the first, read your \n   |> paragraph above, if not I accept the title, in order to let you get into the\n   |> um, well, debate again.\n\n   Hasan replies:\n   I didnot know that \"Master of wisdom\" can be \"name clling\" too,\n   unless you consider yourself deserve-less !\n\nUnless you are referring to someone else, you have in fact given me a name \nI did not ask for, hence the term 'name calling'.\n\n   Hasan writes:\n   |>    So what do you expect me to tell you to tell you, Master of Wsidom, \n   |> \t\t\t\t\t\t\t       ^^^\n   |> ------------------------------------------------------------------\n   I replied:\n   |> If you insist on giving me names/titles I did not ask for you could at\n   |> least spell them correctly. /sigh.\n\n   Hasan gloats:\n   That was only to confuse you! (ha ha ha hey )\n\nHell-bent on retarding into childhood, no? \n\n   |>when you are intentionally neglecting the MOST important fact that \n   |>the whole israeli presence in the occupied territories is ILLEGITIMATE, \n   |>and hence ALL their actions, their courts, their laws are illegitimate on \n   |>the ground of occupied territories.\n   |> \n   >No, I am _not_ neglecting that, I'm merely asking you whether the existance\n   >of Israeli citicens in the WB or in Gaza invalidates those individuals \n   >right\n               ^^^^^^^ are you trying to retaliate and confuse me here.\n\nNo, I really do try to spell correctly, and I apologize if I did confuse you.\nI will try not to repeat that.\n\n   |> to live, a (as you so eloquently put it) human right. We can get back to the \n   |> question of which law should be used in the territories later. Also, you have \n   |> not adressed my question if the israelis also have human rights.\n\n\n   First, my above statement doesnot say that \"the existence of israeli citizens\n   in the WB revoke their right of life\" but it says \"the israeli occupation\n   of the WB revoke the right of life for some/most its citizens - basically\n   revokes the right of for its military men\". Clearly, occupation is an\n   undeclared war; during war, attacks against military targets are fully legitimate. \n\nOk, let me re-phrase the question. I have repeatedly asked you if the \nIsraelis have less human rights than the palestinians, and if so, why.\nFrom your posting (where you did not directly adress my question) I inferred\nthat you thought so. Together with the above statement I then assumed that the\nreason was the actions of the state of Israel. Re: your statement of \noccupation: I'd like you to define the term, so I don't have to repeat this\n'drag the answer out of hasan' procedure more than neccesary.\n\n   Secondly, surely israeli have human rights, but they ask their goverment to\n   protect it by withdrawing from the occupied terretories, not by further oppressing\n   Palestinean human rights.\n\nI'm sorry, but the above sentence does not make sense. Please rephrase it.\n\n\n   |> If a state can deprive all it's citizens of human rights by its actions, then \n   |> tell me why _any_ human living today should have any rights at all?\n\n\n   Because not all states are like Israel, as oppressive, as ignorant, or as tyrant.\n\nOh, ok. So how about the human rights of the Syrians, Iraqis and others?\nDoes the name of Hama sound familiar? Or how about the kurds in Iraq and\nTurkey? \nHow about the Same in Sweden (Ok, maybe a bit farfetched..) the Russians in\nthe Baltic states or the Moslem in the old USSR and Yugoslavia?\nDo the serbs have any human rights remainaing, according to you?\n\n\n   |>    |> And which system do you propose we use to solve the ME problem?\n   |> \n   |>    The question is NOT which system would solve the ME problem. Why ? because\n   |>    any system can solve it. \n   |>    The laws of minister Sharon says kick Palestineans out of here (all palestine). \n   |> \n   |> I asked for which system should be used, that will preserve human rights for \n      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n   |> all people involved. I assumed that was obvious, but I won't repeat that \n   |> mistake. Now that I have straightened that out, I'm eagerly awaiting your \n   |> reply.\n\n   So you agree that that an israeli solution wouldnot preserve human rights.\n   (i am understanding this from your first statement in this paragraph).\n\nNo, I'm agreeing that to just kick all the Palestinians out of Israel proper \nwould probably lead to disaster for both parties. If that's what you refer \nto as the 'Israeli solution' then so be it.\n\n   |>    Joseph Weitz (administrator responsible for Jewish colonization) \n   |>    said it best when writing in his diary in 1940:\n   |> \t   \"Between ourselves it must be clear that there is no room for both\n   |> \t   peoples together in this country.... We shall not achieve our goal\n   |> \t\t\t\t\t\t^^^                  ^^^\n   |> \t   of being an independent people with the Arabs in this small country.\n   |> \t   The only solution is a Palestine, at least Western Palestine (west of\n   |> \t   the Jordan river) without Arabs.... And there is no other way than\n   |> \t   to transfer the Arabs from here to the neighbouring countries, to\n   |> \t   transfer all of them; not one village, not one tribe, should be \n   |> \t   left.... Only after this transfer will the country be able to\n   |> \t   absorb the millions of our own brethren. There is no other way out.\"\n   |> \t\t\t\t   DAVAR, 29 September, 1967\n   |> \t\t\t\t   (\"Courtesy\" of Marc Afifi)\n   |> \n|> Just a question: If we are to disregard the rather obvious references to \n|> getting Israel out of ME one way or the other in both PLO covenant and HAMAS\n|> charter (that's the english translations, if you have other information I'd\n|> be interested to have you translate it) why should we give any credence to \n|> a _private_ paper even older? I'm not going to get into the question if he\n|> wrote the above, but it's fairly obvious all parties in the conflict have\n|> their share of fanatics. Guess what..? Those are not the people that will\n|> make any lasting peace in the region. [more deleted stuff]\n\n>Exactly, you are right. I guess that the problem is that the israeli goverment>is full with  men like Joseph Weitz. \n\nOh? Have you met with them personally, to read their diaries? Fascinating.\nWhat do you _do_ for a living?\n\n|>    \"We\" and \"our\" either refers to Zionists or Jews (i donot know which). \n|> \n|>    Well, i can give you an answer, you Master of Wisdom, I will NOT suggest the \n|>    imperialist israeli system for solving the ME problem !\n|> \n|>    I think that is fair enough .\n|> \n|> No, that is _not_ an answer, since I asked for a system that could solve \n|> the problem. You said any could be used, then you provided a contradiction.\n\n   Above you wrote that you understood what i meant (underlined by ^ ): \n   any system can be used to solve the conflict , but not any system would \n   resolve it JUSTLY.\n\nAn unjust solution would be a non-solution, per definition, no?\nYou said the following:\n\nFor all A it holds that A have property B.\nThere exists an A such that property B does not hold.\n\nThus, either or both statements must be false.\n\n   |> Guess where that takes your logic? To never-never land. \n\n>You are proving yourself as a \" \". First you understood what i meant, but then\n>you claim you didnot so to claim a contradiction in my logic. \n>Too bad for you, the Master of Wisdom.\n\nI was merely pointing out a not so small flaw in your reasoning.\nSince you claim to be logical I felt it best to point this out\nbefore you started using your statements to prove a point or so.\nAm I then to assume you are  not logical?\n\n|>    \"The greatest problem of Zionism is Arab children\".\n|> \t\t\t   -Rabbi Shoham.\n|> \n|> Oh, and by the way, let me add that these cute quotes you put at the end are\n|> a real bummer, when I try giving your posts any credit.\n\n>Why do you feel ashamed by things and facts that you believe in , \n>if you were a Zionists. If you believe in Zionist codes and acts, \n>well i feel sorry for you, because the same Rabbi Shoham had said \n>\"Yes, Zionism is racism\".\n>If you feel ashamed and bothered by the Zionist codes, then drop Zionism.\n>If you are not Zionist, why are you bothered then. You should join me in\n>condemning these racist Zionist codes and acts.\n\nAny quote can be misused, especially when used to stereotype all \nindividuals by a statement of an individual. If you use the same\nmethods that you credit 'Zionists' with, then where does that place you?\n\nOh, by the way, I'd advice you not to assume anything about my 'loyalties'.\nI will and am condemning acts I find vile and inhuman, but I'll try as \nlong as I can not to assume those acts are by a whole people.\nBy zionist above do you mean the state of Israel, the government of Israel, \nthe leaders of Israel (political and/or religious) or the jews in\ngeneral? If you feel the need to condemn, condemn those responsible\ninstead. How would you feel if we started condemning you personally\nbased on the bombings in Egypt? \n\n--\n\n--------------------------------------------------------\nJonas Flygare, \t\t+ Wherever you go, there you are\nV{ktargatan 32 F:621\t+\n754 22 Uppsala, Sweden\t+\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5401, "properties": {"category": "soc.religion.christian", "text": "From: chips@astro.ocis.temple.edu (Charlie Mathew)\nSubject: Interdisc. Bible Research Inst.\nOrganization: Temple University\nLines: 27\n\n\n \nHi!\n\n\tAnyone know anything about the Interdisciplinary Bible Research\nInstitute, operating out of Hatfield, Pa?\n\n\tI'm really interested in their theories on old-earth\n(as opposed to young earth) and what they believe about evolution.\n\n\tThanks,\n\t\tIn the Master,\n\n\t\tCharley.\n\n\n--\n       Seek God and you will find, among other things,\n                          piercing pleasure.\n       \n       Seek pleasure and you will find boredom, disillusionment        \n                      and enslavement.\n       \n                               John White (Eros Defiled).\t\n\n[Note that I do not accept discussions of evolution here, as there\nis a dedicated group for that, talk.origins.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5402, "properties": {"category": "sci.electronics", "text": "From: einari@rhi.hi.is (Einar Indridason)\nSubject: Re: How to the disks copy protected.\nLines: 31\nNntp-Posting-Host: hengill.rhi.hi.is\n\nIn <1993Apr21.085848.12704W@lumina.edb.tih.no> ketil@edb.tih.no (Ketil Albertsen,TIH) writes:\n\n>May we interpret this as an offer to volunteer as editor for a\n>\"Copy protection FAQ\" ? I am quite sure that I am not alone welcoming such\n>an initiative! *I* will volunteer to ask some of the questions, if you will\n>provide the answers :-)\n\n\nOk, here could be the first question or answer or something:\n\nQ: I want to copyprotect a program I wrote.  How should I do it?\nA: You would be wise not to copyprotect that program.  You see, those \n   people that wants to get a cracked copy of your program will go to \n   various length to crack your program, and some of those crackers \n   are good, and know the common tricks.\n   So, the copy protection wouldn't stop those.\n   Ok, then.  What about legitimate users?  Copy protection can be a hassle\n   for legitimate users, and can hinder them in their work, expecially\n   if there is some \"key\" item that can get lost.\n   So, the copy protection wouldn't help much of the legitimate users, but\n   would make life somewhat of a misery for them.\n\n\n\n(This is my opinion, and I speak as a legitimate user :-)\nYou are of course free to have your opinion about this subject....\n\n\n\n--\neinari@rhi.hi.is\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5403, "properties": {"category": "rec.sport.baseball", "text": "From: dtate+@pitt.edu (David M. Tate)\nSubject: Re: Torre: The worst manager?\nOrganization: Department of Industrial Engineering\nLines: 19\n\nDAK988S@vma.smsu.edu said:\n\n>No....Hal McRae is the worst manager in baseball.  I've never seen a guy who\n>can waste talent like he can.  One of the best raw-talent staffs in the league,\n>and he's still finding a way to lose.  I'll be surprised if he makes it through\n>the next 2 weeks, unless drastic improvement is made.\n\nI'm confused.  How is it Hal McRae's fault that he can't win with a team \nwhose best offensive player is Phil Hiatt?  I mean, let's be real.  Kansas\nCity will have to get outstanding years from their entire staff just to end\nup near .500; they have less offense than any other team in baseball, even\nif you count the expansion teams.\n\n\n-- \n   David M. Tate   (dtate+@pitt.edu) |  Greetings, sir, with bat not quick \n     member IIE, ORSA, TIMS, SABR    |  Hands not soft, eye not discerning\n                                     |  And in Denver they call you a slugger?\n   \"The Big Catullus\" Galarraga      |  And compare you to my own Mattingly!?\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5404, "properties": {"category": "rec.autos", "text": "From: tommy@boole.att.com (Tommy Reingold)\nSubject: Re: Where can I get a New York taxi?\nReply-To: tommy@boole.att.com\nOrganization: AT&T Bell Labs, Holmdel, NJ, USA\nDistribution: na\nOriginator: tommy@hoodlum\nNntp-Posting-Host: hoodlum.l1135.att.com\nLines: 18\n\nwrat@unisql.UUCP (wharfie) writes:\n\n$ [...]\n$ \tActually, you want a Checker Special if you can find one.\n\n$ \tGood luck.  I'm sorry I let mine go...\n\nI grew up in New York City so I rode in many Checker cabs.  The jump\nseats were fun as a kid.  Although the cars were roomy -- a good trait\nfor a taxi -- they had a design flaw that I don't understand they never\nfixed: the rear passengers tended to fall out of their seats when the\ndriver braked.  I wouldn't want to take a long ride in the back seat of\none of these vehicles.  Why did you like yours?  I never drove one, so\nI have to ask.\n-- \nTommy Reingold\nAT&T Bell Labs, Holmdel, NJ\ntommy@boole.att.com or att!boole!tommy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5405, "properties": {"category": "rec.autos", "text": "From: maynard@convex.com (Mark Maynard)\nSubject: Re: Opel owners?\nNntp-Posting-Host: trojan.convex.com\nOrganization: CONVEX Computer Corporation, Richardson, Tx., USA\nDistribution: rec.autos\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 22\n\nIn article <C5sxI4.J9B@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>gibbonsa@fraser.sfu.ca (Darren Gibbons) writes:\n>\n>>I'm looking for information on Opel cars.  Now you ask, which model?\n>>Well, the sad truth is, I'm not entirely sure, but it's a two-seater,\n>>with roll-over headlights, hard top, and really sporty looking.\n>>gibbonsa@sfu.ca\n>\t\n>\tThis would be the manta, would it not???  Sold through Buick dealers in the mid '70's as the price leader????\n>\tChintan Amin\n\n\nSounds more like an Opel GT.  Neat cars, fun to drive.  Sold through\nBuick from 196? through 1973 (if I remember correctly).  I believe it\nwas in '72 that there were some engine mods made such that parts\nwere not interchangeable with the older models.  Parts are thus much\nharder to come by for the later models.  Parts in general are not\ntoo difficult to find.  At one time JC Whitney carried some stuff\nincluding a brand new (not remfg) long block.  Either a GT or a\nKharman Ghia (hmm that spelling looks hosed) will be my next project.\n\nMark\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5406, "properties": {"category": "talk.politics.mideast", "text": "From: warren@itexjct.jct.ac.il (Warren Burstein)\nSubject: Re: Serdar Argic\nOrganization: ITEX, Jerusalem, Israel\nLines: 42\n\nIn <1993Apr13.194543.225925@fourd.com> bill_paxton@fourd.com writes:\n\n>Hello Serdar,\n>              I would like very much to meet you. Where are you located?\n>Let me know as soon as possible where we can meet. I am looking forward to\n>meeting you.\n\nI don't know how to reach Serdar, but you might be able to reach his\nsysadmin by email, phone, or snail-mail.\n\nHere is information from rs.internic.net:\n\nAhmet Cosar (ANATOLIA-DOM)\n   1530 S. 6th St.\n   Suite C705\n   Minneapolis, Minnesota, 55454\n\n   Domain Name: ANATOLIA.ORG\n\n   Administrative Contact, Technical Contact, Zone Contact:\n      Cosar, Ahmet  (AC234)  cosar@ANATOLIA.ORG\n      612-376-7873\n\nAnd here is what \"finger cosar@umn.edu\" gets you:\n\n            name: Ahmet Cosar-1\n            info: Last registered 1993 Winter Qtr\nInternet mailbox: cosa0001@student.tc.umn.edu\n   other mailbox: PROFS: COSA0001@UMNTCML\n  postal address: 1530 So 6th St Apt C705\n                  Minneapolis\n                  MN 55454\n         surname: Cosar\n       telephone: +1 612-376-7873\n           title: Grad\n          userid: cosa0001\n   X.400 mailbox: /G=Ahmet/S=Cosar-1/OU=mail/O=tc/PRMD=umn.edu/ADMD= /C=us/\n-- \n/|/-\\/-\\      \n |__/__/_/    \n |warren@     \n/ nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5407, "properties": {"category": "talk.politics.mideast", "text": "From: perlman@qso.Colorado.EDU (Eric S. Perlman)\nSubject: Re: Who should be spied on...\nKeywords: hypocritical pig\nNntp-Posting-Host: qso.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 49\n\nIn article <C5vzDv.Mxw.1@cs.cmu.edu> anwar+@cs.cmu.edu (Anwar Mohammed) writes:\n>In article <C5sDCK.38n@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n>>anwar+@cs.cmu.edu (Anwar Mohammed) writes:\n>>\n>>>In article <4815@bimacs.BITNET> ehrlich@bimacs.BITNET (Gideon Ehrlich) writes:\n>>>>The readers of this forum seemed to be more interested in the contents\n>>>>of those files.\n>>>>So It will be nice if Yigal will tell us:\n>>>>1. Why do American authorities consider Yigal Arens to be dangerous?\n>>\n>>>ADL authorities seem to view a lot of people as dangerous, including\n>>>the millions of Americans of Arab ancestry.  Perhaps you can answer\n>>>the question as to why the ADL maintained files and spied on ADC members\n>>>in California (and elsewhere??)?  Friendly rivalry perhaps?\n>>\n>>Come on!  Most if not all Arabs are sympathetic to the Palestinian war \n>>against Israel.  That is why the ADL monitors Arab organizations.  That is\n>>the same reason the US monitored communist organizations and Soviet nationals\n>>only a few years ago.  \n>>\n>\n>The ADC is an organization of Arab-*AMERICANS*.\n>\n>Let me see...you're saying that \"most if not all\" Arab-AMERICANS should be\n>spied on?  You're also saying that \"most if not all\" Arab-AMERICANS\n>should be views as a national security threat to Israel (and the US, \n>as you gratuitously imply in your reference to the WTC bombing, in \n>which no Arab-AMERICANS were involved)?  By inference, can we assume \n>that you think that anyone of Arab lineage anywhere in the world poses \n>a threat to Israel and, therefore, should be spied on?\n\nLike it or not, Edward, Anwar has a very good, valid point.  Obviously,\nin presenting it, he (quite legitimately and deliberately) takes a point\nof view to an extreme which might not have been what you intended, but\nthat is one of the best ways to demonstrate a \"slippery slope\" type of\nargument, which I believe was his aim.\n\nI very frankly believe that the ADL will be proved innocent in this\ncase.  I doubt there's enough evidence to weigh against them even in a\ncivil court, where preponderance of the evidence, not evidence beyond\nany reasonable doubt, is the standard for \"winning\" such a case.  That,\nhowever, does not prevent me from seeing the merit in Anwar's point. \n\nRest deleted.\n-- \n\"How sad to see/A model of decorum and tranquillity/become like any other sport\nA battleground for rival ideologies to slug it out with glee.\" -Tim Rice,\"Chess\"\n     Eric S. Perlman \t\t\t\t <perlman@qso.colorado.edu> \n  Center for Astrophysics and Space Astronomy, University of Colorado, Boulder\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5408, "properties": {"category": "rec.sport.baseball", "text": "From: pjtier01@ulkyvx.louisville.edu\nSubject: Re: Finnally, the Phils have support\nLines: 75\nNntp-Posting-Host: ulkyvx.louisville.edu\nOrganization: University of Louisville\n\nIn article <C4yxMJ.BLE@news.udel.edu>, philly@bach.udel.edu (Robert C Hite) writes:\n> In article <1993Apr3.182452.1@ulkyvx.louisville.edu> pjtier01@ulkyvx.louisville.edu writes:\n> \n>>>Everytime I have written on the net about the possibility of a\n>>>successfuls season by the Philadelphia Phillies, I have gotten ripped\n>>>from everybody from Pittsburgh to Calcutta.  But if all the\n>>>ignoramouses, care to look at this week's Baseball Weekly, they will see\n>>>  ^^^^^^^^^^^^                              ^^^^^^^^^^^^^^^\n>>>that I'm not the only one who considers then as division winners - the\n>>>rest of the most respected baseball writers in the country do as well.\n>>\n> \n>>And what was the reasoning of this genius writer?  That, even though their\n>>pitching is at best \"sound\", they will win on the strength of their offense.\n>>Lesse:\n>>           '93 offense = '92 offense + (Thompson & Incaviglia)\n>> \n>>                     '92 offense = 72 wins\n>>                     '93 division winners = (at least) 88 wins\n>>            \n>>So,              \n>>               88 wins = 72 wins + (Thompson & Incaviglia)\n>>\n>>Therefore,\n>>               16 wins = Thompson & Incaviglia\n>>\n>>What did you learn in school today?\n>>\n>>If you take a math course and your teacher turns out to be Rob Rains, run,\n>>don't walk, to drop/add.\n>>                                                                 P. Tierney\n> \n> You obviously don't know what the hell you're talking about.  No,\n> Thompson and Incaviglia don't equal 16 wins, but I'll take the two\n> of them over Stan Javier and Ruben Amaro (.249 1HR, 334AB &\n> .219 7HR 374 AB)  I'd say this improvement should equate to 6or 7\n> wins at least.\n> \n> Then, I'll take Lenny Dykstra who played 85 games last year and\n> project his numbers (.301, 104 hits, 18 2B's, 6 HR, 39RBI, 30 SB)\n> over 150 games. Thus(.301, 188 hits, 32 2B's, 11HR, 70RBI, 54 SB)\n> Okay, now we'll put these numbers in the leadoff hole and thus\n> I have to bump Kruk, Hollins, Daulton RBI numbers up just a tad...\n> now lesse... they knocked in 70, 93, and 109 respectively.  Don't\n> you think it's fair to add about 5 or 6 RBI to each?  They managed\n> to knock in a pretty nice amount of runs with a .219 leadoff hitter.\n> Okay bozo, do you think it's fair to add maybe 7 or 8 more wins\n> now?    Oh, and how can I forget Wes Chamberlain, 275 AB's 9 HR, \n> 41 RBI even WITH a month and 1/2 in AAA and a horrible first half.\n> Well project that over a full season to get 18 HR and 80 RBI or so.\n> Is that worth a win or two?  \n> \n> Finally, take the *worse* pitching staff in the NL last year, add\n> the worse injury decimation of 1992.  Okay, now we add Danny\n> jackson, some health, and a full season for Schilling... is that\n> worth at least 3 wins?\n> \n> Okay we've been conservative and added about 18 wins so far.  Now\n> we're adding about 4 more wins thanks to the expansion teams...\n> Okay, thats 22 wins.  Lesse dipshit math genuious, 72 + 22 = 94\n> Hmmm... I think thats good enough to win the worse division in\n> baseball?\n> \n> Next time, before you say something foolish, get a clue first!\n> \n>  \n\nActually, I was simply relaying the reasoning of this so-called genius BW\nwriter.  I agree.  The reasoning was foolish.  \n\nNext time, before you say something foolish, be aware what you are responding\nto.\n\nBTW, 94 wins.  Very funny.\n                                                                   P. Tierney\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5409, "properties": {"category": "rec.autos", "text": "From: nataraja@rtsg.mot.com (Kumaravel Natarajan)\nSubject: Dirty Diesels?\nNntp-Posting-Host: opal12\nOrganization: Motorola Inc., Cellular Infrastructure Group\nDistribution: na\nLines: 17\n\nI heard the diesels are considered cleaner-burning than\ngas engines because the emit less of: Carbon Monoxide,\nHydrocarbons, and Oxides of Nitrogen.  (CO, HC, NOX).\n\nBut they can put out a lot of particulate matter.  I heard\nsomething about legislation being discussed to \"clean up\ndiesel emissions\".  Is there anything in the works to\ninstall \"scrubbers\" for diesels?  How about the feasibility\nof installing them on trucks and cars?  Would it be any\ndifferent than a catylitic converter?  I'd assume easier,\nsince we're removing particulate matter instead of converting\ngasses.  Let's hear people's opinions...\n\n-- \n--------------------------------------------------------------------------------\n-- Vel Natarajan  nataraja@rtsg.mot.com  Motorola Cellular, Arlington Hts IL  --\n--------------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5410, "properties": {"category": "talk.politics.misc", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: Trickle down (Was: 1937 was: Dan Quayle, genius\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 36\n\ngarrett@Ingres.COM  writes:\n\n>rn11195@medtronic.COM (Robert Nehls)             writes...\n\n>>Jason K. Schechner (jks2x@holmes.acc.Virginia.EDU) wrote:\n\n>>: In article <1pf22mINNd7c@srvr1.engin.umich.edu> jwh@citi.umich.edu writes:\n\n>>: >What decade did you live in?  Unemployment dropped during the 80's, \n>>: >inflation dropped during the 80's and interest rates dropped during\n>>: >the 80's.\n \n>>: \tThis all may be true, but we're paying for it now, through the\n>>: nose.  Our current recession (and some would argue the world's\n                     ^^^^^^^^^\n>>First off, we're not in a recession.  We've had a record number of months of\n>>straight economic growth.  Even the democrats are admitting that the\n>>recession ofcicially ended in March of 1991.\n\n>This months's unemployment rate in California was 9.4%\n>Sure feels like a recession to me.\n\nMaybe we should ask the 83,103 people who were laid off this January whether\nor not we're in a recession. That was a figure that was reported in the\nNew York Times. There is no official figure, because the Bureau of Labor\nStatistics stopped government tracking of layoffs eight months ago due to\nbudget cuts.\n\n(The above information was published in Harper's Index, Harper's magazine.)\n\n-----\nEric Smith\t\t|  The day Dan Quayle is our President is the day\nerics@netcom.com\t|  Shelley Winters runs with the bulls in Pamplona.\nerics@infoserv.com\t|             - Dennis Miller\nCI$: 70262,3610\t\t|\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5411, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Re: Clipper will corrupt cops (was WH proposal from Police point of view)\nOrganization: AT&T Bell Laboratories\nLines: 65\n\nIn article <1993Apr21.041033.16550@news.clarkson.edu>, tuinstra@signal.ece.clarkson.edu.soe (Dwight Tuinstra) writes:\n> The clear implication is that there are \"legal\" authorizations other\n> than a court order.  Just how leaky are these?\n\nI don't have the wiretap statute handy.  But here's what the law says\non pen registers.  This is all from Title 18 of the U.S. Code.  Note\nhow vague S. 3125(a)(1)(B) is....  I haven't had a chance to check\nout 50 U.S.C. 1801 yet.\n\n----\n\n18 USC  S. 3121 Pen Registers (as of 4/93)\n\n\nS. 3121. General prohibition on  pen register  and trap and trace device\nuse; exception\n\n   (a) In general. Except as provided in this section, no person may\ninstall or use a  pen register  or a trap and trace device without first\nobtaining a court order under section 3123 of this title or under the\nForeign Intelligence Surveillance Act of 1978 (50 U.S.C. 1801 et seq.).\n\n.....\n\nS. 3125.  Emergency  pen register  and trap and trace device\ninstallation\n\n   (a) Notwithstanding any other provision of this chapter , any\ninvestigative or law enforcement officer, specially designated by the\nAttorney General, the Deputy Attorney General, the Associate Attorney\nGeneral, any Assistant Attorney General, any acting Assistant Attorney\nGeneral, or any Deputy Assistant Attorney General, or by the principal\nprosecuting attorney of any State or subdivision thereof acting pursuant\nto a statute of that State, who reasonably determines that--\n\n   (1) an emergency situation exists that involves--\n\n   (A) immediate danger of death or serious bodily injury to any person;\nor\n\n   (B) conspiratorial activities characteristic of organized crime,\n\n   that requires the installation and use of a  pen register  or a trap\nand trace device before an order authorizing such installation and use\ncan, with due diligence, be obtained, and\n\n   (2) there are grounds upon which an order could be entered under this\nchapter to authorize such installation and use \"may have installed and\nuse a  pen register  or trap and trace device if, within forty-eight\nhours after the installation has occurred, or begins to occur, an order\napproving the installation or use is issued in accordance with section\n3123 of this title.\"\n\n   (b) In the absence of an authorizing order, such use shall\nimmediately terminate when the information sought is obtained, when the\napplication for the order is denied or when forty-eight hours have\nlapsed since the installation of the  pen register  or trap and trace\ndevice, whichever is earlier.\n\n   (c) The knowing installation or use by any investigative or law\nenforcement officer of a  pen register  or trap and trace device\npursuant to subsection (a) without application for the authorizing order\nwithin forty-eight hours of the installation shall constitute a\nviolation of this chapter.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5412, "properties": {"category": "sci.electronics", "text": "From: schuch@phx.mcd.mot.com (John Schuch)\nSubject: Re: Need pinouts for a G8870 dtmf decoder chip\nNntp-Posting-Host: bopper2.phx.mcd.mot.com\nOrganization: Motorola Computer Group, Tempe, Az.\nDistribution: usa\nLines: 59\n\nIn article <montC5qs9A.3wB@netcom.com> mont@netcom.com (Mont Pierce) writes:\n>\n>I bought this chip from Suncoast Technology and tried to build their\n>dtmf decoder circuit.  But it's not working...\n>\n>If anyone has the pinouts and possibly the voltage specs I'd sure\n>appreciated it.  \n\nI presume it is the M-8870 from Teltone Corporation.\n\nPin\tDescription\n\n1\t+ input\n2\t- input\n3\tGS (gain select through use of feed back resistor)\n4\tVref (reference voltage OUTPUT, about Vdd/2)\n5\tconnect to Vss\n6\tconnect to Vss\n7\tosc1 clock input\n8\tosc2 clock output (connect crystal across pins 7 and 8)\n9\tVss\n10\tOE output enable (logic high allows data output)\n11\tQ1 data output\n12\tQ2 data output\n13\tQ3 data output\n14\tQ4 data output\n15\tStD Delayed Steering Output (any other company would call this 'data valid'.)\n16\tESt Early Steering output, sort of like \"I'm starting to hear a tone\".\n17\tSt/GT Steering input/guard time output\n18\tVdd\n\nPower Supply\t: 4.75V min., 5.25V max.\nCurrent\t\t: 3.0mA Typ, 7.0mA max.\n\nBUT.......\n\nYou really should have bought the Motorola part from me.  :-)\n(I still have them in stock)\n\nJohn\n\n\n\nIf someone could fax, email, or snail mail a copy\n>of the spec sheet for this chip that would be even better. :)\n>\n>Please email me if you can help.  \n>\n>Thanks in advance,\n>-- \n>Mont Pierce\n>\n>+-------------------------------------------------------------------------+\n>| Ham Call: KM6WT             Internet:  mont@netcom.com                  |\n>|    bands: 80/40/20/15/10/2  IBM vnet:  mont@vnet.ibm.com                |\n>|    modes: cw,ssb,fm                                                     |\n>+-------------------------------------------------------------------------+\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5413, "properties": {"category": "comp.graphics", "text": "From: lewism@aix.rpi.edu (Michael C. Lewis)\nSubject: Re: Delaunay Triangulation\nNntp-Posting-Host: aix.rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY\nLines: 16\n\nIn article <lsk1v9INN93c@caspian.usc.edu> zyeh@caspian.usc.edu (zhenghao yeh) writes:\n>\n>Does anybody know what Delaunay Triangulation is?\n>Is there any reference to it? \n>Is it useful for creating 3-D objects? If yes, what's the advantage?\n\nIt is used to create a TIN (triangulated irregular network), which is\nbasically a bunch of triangles which form a surface over a group of\npoints.  What is special about it is that the triangles formed are the \nmost equalateral possible.  Check out \"Proceedings of AutoCarto N\" where\nN is 8..10.  Sorry, I don't have a specific reference describing the\nprocess.\n-Michael\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.258+0000", "event": "documents", "entityId": 5414, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith)\nSubject: Re: Recommendations for a Local BUS (Cached) IDE Controller\nOrganization: The John P. Robarts Research Institute, London, Ontario\nDistribution: usa\nNntp-Posting-Host: valve.heart.rri.uwo.ca\nLines: 33\n\nIn article <1993Apr16.074836.6819@sol.ctr.columbia.edu> penev@venezia.rockefeller.edu writes:\n>| I would like to hear the net.wisdom and net.opinions on IDE Controllers.\n>| I would liek to get a IDE controller card for my VLB DX2 66 Motherboard.\n>| What are good options for this (preferably under $200). It MUST also work\n>| under OS/2 and be compatible with Stacker (and other Disk Compression S/W).\n\n>I have a Maxtor 212MB on an ISA IDE controller, although my machine is\n>DX2/66 VLB. I has the save transfer rate of 0.647 MB/s regardless of\n>the variations of the ISA bus speed. I tested it with speed between\n>5.5MHz and 8.33MHz. Not _any_ difference. The problem is not the\n>interface between the controller and the memory.\n>\n>My advice: Buy 4Megs of RAM, save $70 and enjoy performance.\n\nComputer: 286-25 mhz\nBus: ISA (12.5 mhz)\nDrive: Maxtor 7213A (213 mb)\n\n                                    config.sys / autoexec.bat\n\n                     MS DOS 5             no           WIN 3.1\n                     smartdrv.sys        cache         smartdrv.exe\n\nCORE (V 2.7)         6950 k/sec          1390 k/sec     1395 k/sec\nNorton SI (V 5.0)     730 k/sec           980 k/sec      982 k/sec\n\nI'd still like to here from people with VLB-IDE.\nI still want to know what VLB bus speed is used with IDE drives.\nI still want to know if some (most ?) IDE drives can handle bus speeds > 8 mhz.\n\nPS: A friend with a 286-20 and a new Maxtor 7245 (245 meg IDE) drive gets\nbetween 800 - 1000 k/sec (can't remember exactly).  I think the bus is running\nat 8 mhz in this case.  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5415, "properties": {"category": "comp.windows.x", "text": "From: coe@leopard.cs.uidaho.edu (Mike Coe)\nSubject: window manager\nOrganization: /users/student/coe/.organization\nLines: 19\nDistribution: world\nNNTP-Posting-Host: leopard.cs.uidaho.edu\n\n\n\n\nI currently use a window manager called ctwm which\nis very similar to hp's vuewm. (i.e. \nit has multiple workspaces).  Is there a \nmotif based window manager that has this \nsame feature and is not a memory pig like vue?\n\n\n\nmike\n\n--\nMichael L Coe                 |  \"A mind is a terrible thing.\"\nLaboratory of Applied Logic   | \nUniversity of Idaho           | \ncoe@leopard.cs.uidaho.edu     | \ncoe861@snake.cs.uidaho.edu                      \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5416, "properties": {"category": "soc.religion.christian", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Revelations\nOrganization: Florida State University\nLines: 11\n\nhudson@athena.cs.uga.edu (Paul Hudson Jr) writes:\n\n> Biblical prophecy tends to be somewhat cyclical.  For example, the virgin\n> prophecy of Isaiah also prophecied of Christ.  How does this apply to the \n> book of Revelation in regard to the perterist view?\n\nMuch of the OT prophecies have a double application: to the Jewish\ncaptivity, and to the end of time.  But if Rev. is dated at AD96 its\nprophecies could not apply to the AD70 destructioin of Jerusalem.\n\nDarius\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5417, "properties": {"category": "soc.religion.christian", "text": "From: mserv@mozart.cc.iup.edu (Mail Server)\nSubject: Re: phone number of wycliffe translators UK\nLines: 37\n\n>  I'm concerned about a recent posting about WBT/SIL.  I thought they'd\n>pretty much been denounced as a right-wing organization involved in\n>ideological manipulation and cultural interference, including Vietnam\n>and South America. A commission from Mexican Academia denounced them in\n>1979 as \" a covert political and ideological institution used by the\n>U.S. govt as an instrument of control, regulation, penetration, espionage and\n>repression.\"\n>  My concern is that this group may be seen as acceptable and even\n>praiseworthy by readers of soc.religion.christian. It's important that\n>Christians don't immediately accept every \"Christian\" organization as\n>automatically above reproach.\n> \n>                                                                  mp\n\nGood heavens, you mean my good friend Wes Collins, who took his wife and two \nsmall children into the jungles of Guatemala, despite dangers from primitive \nconditions and armed guerillas, so that the indigenous people groups their \ncould have the Bible in their native languages--the young man who led Bible \nstudies in our church, who daily demonstrated and declared his deep abiding \nfaith in the Lord of Love--you mean he really was a sneaky imperialistic *SPY* \nwhose _real_ reason for going was to exploit and oppress the ignorant and \nunsuspecting masses?  Imagine my surprise!  I never would have thought it of \nhim.\n\nHow was this terrible deceit discovered?  What exactly was the \"cultural \ninterference\" they were caught committing?  Attempting to persuade the locals \nthat their ancestral gods were false gods, and their sacrifices (including \nhuman sacrifices in some cases) were vain?  Destroying traditional lifestyles \nby introducing steel tools, medical vaccines, and durable clothes?  Oh and by \nthe way, who did the denouncing?\n\nI am terribly shocked to hear that my friend Wes, who seemed so nice, was \nreally such a deceitful tool of the devil.  Please provide me with specific \ndocumentation on this charge.  There is some risk that I may not believe it \notherwise.\n\n- Mark\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5418, "properties": {"category": "talk.politics.guns", "text": "From: jaf@a2.cim.cdc.com (James Foster x2912)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Control Data\nDistribution: usa\nLines: 197\n\nIn article <1qie2rINN1b9@cae.cad.gatech.edu>, vincent@cad.gatech.edu (Vincent Fox) writes:\n|> In <93104.173826U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n|> [deleted]\n|> []       And as far as fully-automatic weapons, you can be a lot better\n|> []armed if you want to hit what you aim at.\n|> []\n|> >What seems to be happening here is the situation getting totally blown out of\n|> >proportion.  In my post I was referring to your regular patrolman in a car\n|> >cruising around the city vs. gang members.  Of course the police have access\n|> >to the things that you mentioned but do they use tanks and such all of the\n|> >time?  Of course they don't and that's the point I was trying to make.  Every\n|> >day when I go out to lunch I always see cops coming in.  The majority that I\n|> >see are still carrying revolvers.  Not that there is anything wrong with a\n|> >revolver but if you're a cop that is up against some gang member with a couple\n|> >of automatics in his coat (I mean semi-auto handguns) you're going to be at a\n|> >disadvantage even with training.  I have been at a shooting range where gang\n|> >gang members were \"practicing\" shooting.  They were actually practicing\n|> >taking out their guns as quick as possible and shooting at the target\n|> >and they weren't doing too badly either.   The University cops here (who are\n|> >are state cops) are armed better than the Chicago police.  It seems most\n|> >state cops are.\n\nEvery city and suburban police officer I've seen around the Twin Cities in the\nlast two years has carried a semi-auto of some type (different brands though\nI haven't seen any Glock's). \n\nWith regard to this discussion:  We are getting dangerously far from the usual\nrantings of t.p.g, and close to the realm of r.g, but I'd like to put my two\ncents worth in.  While there's nothing wrong with a revolver (especially a \nlarge frame S&W in .357 magnum - my favorite) there are valid advantages to\nsemi-autos.  I suggest reading Massad Ayoob's (I know, some people can't stand\nhim and think he's full of bull, but I think that in general his material is\nvery valid and useful) book _The Semi Auto Pistol in Police Work_ (or something \nlike that).  He defines a number of ways that semi-auto's are different, and that\n\"different is good\".  The main advantage is not in increased firepower, but in \nmore accurate followup shots when you go to single action mode.  There is also a\ncertain \"propriatory nature\" of each gun that takes some familiarity to \nlearn.  This may have diminished with time as more criminals become familiar\nwith different models of semi-autos, but it was cited as stopping or at least\nslowing down criminals who had grabbed a police officers gun.\n\n|> \n|> Define \"armed better\". Go shoot a revolver and a semi-auto like the\n|> Colt .45. Does one fires faster than the other? Nope. Aside from which\n|> faster rate of fire is usually not desirable. Sure it makes the other\n|> guys duck for cover, but just *YOU* trying hitting anything with a Thompson\n|> in hose-mode. This is why the military is limiting it's M-16 now to\n|> 3-round burst-fire. Simple semi-auto would be better, but the troops\n|> like to be able to rock and roll even if it is wasteful of ammo (something\n|> often in short supply when the enemy is plentiful).\n|> \n|> A revolver is equally capable as a semi-auto in the same caliber.\n|> \n|> - A revolver also has the advantage that if it misfires you just pull\n|>   the trigger again.\n|> - A double-action revolver (almost all of them) can be hand-cocked first,\n|>   but will fire merely by pulling the trigger.\n\nYes, but this is best done with a two hand hold.  With a single hand you either\npull the gun far off target to cock, or must fire double action.  The DA semi\nauto has the same advantages plus is always SA after the first shot.\n\n\n|> - A misfire in a revolver merely means you must pull the trigger again\n|>   to rotate to the next round.\n\nI'm not sure if this is meant to be different from your first point.  In a DA\nsemi-auto you can pull the trigger again to try dropping the hammer on the same\nround - an advantage you don't have in a revolver where the next trigger pull will\nalways go to the next round (discussing this point now).  This is fine with a dud\nbut what about a hangfire situation?  Granted it's very rare, but your round will\nnow go off confined in the cylinder with no place to go.  Slingshotting the slide\non a misfire takes very little time.\n\n\n|> - A revolver can be carried with the 6th chamber empty and under the\n|>   hammer for maximum safety, but still can be drawn and fired with an\n|>   easy motion, even one handed.\n\nActually with modern revolver designs incorporating hammer blocks this is not\nnecessary or usually recommended.  A revolver would have to fall hard enough and\nat the right angle to actually break the hammer and driver the firing pin into the\nround to set it off.\n\n|> - Speedloaders for a revolver allow reloads almost as fast as magazines\n|>   on semi-autos. Can be faster depending on users.\n\nThe best speedloader users, especially those using the spring loaded speed\nloaders are very fast.  A problem is that ejecting the spent cases is a two\nhanded job where dropping the expended magazine is one handed.  This means that\nwhile you can be inserting a fresh magazine as soon as the old one clears the\ngun, with a speed loader you have to go through more motions that will always \ntake more time.  You also don't have the advantage of tactical reloads (replacing\na partial magazine to bring you back to full capacity - the partial magazine can\nstill be used if needed later).  \n\n|> \n|> - A misfire in a semi-auto will require you to clear a jammed shell\n|>   first, time spent which can be fatal. And a vital second or so is often\n|>   lost as you realize \"hey, it's jammed!\" before starting to do anything\n|>   about clearing it.\n\nYes, the time to recognize the problem is just as important as the time to clear\nit.  Really though, in either a revolver or semi-auto the odds of an actual misfire\nwith factory ammo are awfully small.  You are more likely to get a jam in a semi-auto\nbut even these are exceptionally rare with modern quality guns (Sigs, Glocks, et.al.).\n\n\n|> - Most semi-autos must have the slide worked to chamber the first round\n|>   and cock the hammer. Some police carry their semi-autos with the \n|>   chamber loaded and hammer cocked, but a safety engaged. I do not consider\n|>   this safe however. You must trade-off safety to get the same speed\n|>   of employment as a revolver.\n\n|> - There are some double-action semi-autos out there, but the complexity of\n|>   operation of many of them requires more training.\n\nAll common semi-auto's can be carried with a round in their chamber without any\nsafety problems.  While I put that out as a statement that I believe, I should\nsay that this applies to all of the ones I've looked at.  For the DA semi's it's\nno different from the revolver situation:  The guns all have hammer or firing\npin blocks.  They also have a safety.  Because there's no real advantage\ncarrying one of these cocked and locked you have the same safety and speed\nof employment as a revolver, plus the advantage of SA followup shots.  I'm\nnot familiar with SA semi-autos except for the 1911-A1.  I admit that I was\ninitially skeptical about carrying this cocked and locked, but after examining\nthe design, trying to defeat the safeties (gun unloaded of course), and \nshooting it a lot, I see no inherent safety problems with it, especially in\na thumbreak holster with the strap under the hammer.  This design also gets\nyou more speed for an accurate first shot than a revolver.\n\n|> \n|> Some police departments switched to Glocks, and then started quietly\n|> switching many officers back to the old revolvers. Too many were having\n|> accidents, partly due to the poor training they received. Not that Glocks\n|> require rocket scientists, but some cops are baffled by something as complex\n|> as the timer on a VCR.\n\nYeah, the infamous Glock.  I still can't figure out how it's worse than a revolver\nfor safety.  If you don't pull the trigger it doesn't go off.  I imagine that if all\nyour revolver shooting was done double action then you could pull the Glock trigger\nfar enough to fire before you realized it.  In addition, if you had developed that\nnasty habit of keeping your finger on the trigger when holstering your gun and\nrelying on your thumb on the hammer to remind you to take it off before you blew\noff your foot then you'd have problems when the hammer wasn't there.\n\n|> \n|> Anyone who goes anyone saying that the criminals obviously outgun\n|> the police don't know nothing about firearms. Turn off COPS and Hunter\n|> and pay attention. I do not seek here to say \"semi-autos are junk\"\n|> merely that assuming they are better for all jobs is stupid. A cop\n|> with a revolver on his hip and a shotgun in the rack is more than\n|> equipped for anything short of a riot.\n\nI think this is even okay for a riot (as long as it's a small one B^)).\n\n|> \n|> Gun control is hitting what you aim at. If you whip out a \n|> wonder-nine and fire real fast you may find you don't hit anything.\n|> Good controlled fire from a revolver is more likely to get you a hit.\n|> I own a 9mm Beretta myself but consider it inferior as a carry weapon\n|> to something like the Ruger Security Six revolver. If I haven't hit\n|> what I'm aiming at in the first 5 shots, something is quite seriously\n|> wrong somewheres. While I might like having the backup capacity of those\n|> extra shots in certain cases, overwhelmingly the # of shots fired in\n|> criminal encounters is less than 5.\n\nI have the poor man's Beretta (Taurus 99) and consider it inferior as a carry\nweapon to the Springfield .45 (oops, 9mm vs. 45 arguments are relegated to\nr.g).  You are right, though.  If you don't hit what you aim at then the\nshooter/gun combination has failed.  I don't ascribe failures in the the\nfire real fast with a wonder-nine scenario you mention to the gun.  This is\na shooter failure, whether through lack of discipline or lack of training.\n\n\n|> \n|> What do crooks overwhelmingly use in crime? Why the same nice simple\n|> .38 revolvers that the police often use. Well actually some police \n|> prefer the much heftier .357 Magnum, but anyway.....\n\n9mm's are becoming more popular with crooks too, though the .38 does still\nlead the list.  And like I said, around here semi-auto's seem the rule for the\nstreet cop.  Don't know about the State Patrol however, they may still carry\nthe \"Highway Patrolman\".\n\n|> \n|> ObPlea: Don't flame me, I prefer semi-autos for most things. But they \n|>         introduce unneccessary complications to something as nerve-wracking\n|>         as an abrupt encounter with a lone criminal.\n\nVincent, please don't take any of this as a flame.  Just my $0.02 (whoops, looks more\nlike $2.00) worth.  And much of it is IMHO, but do check Ayoob's book.\n\n|> \n|> -- \n|> \"If everything had gone as planned, everything would have been perfect.\"\n|> \t-BATF spokesperson on CNN 3/2/93, regarding failed raid attempt in TX.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5419, "properties": {"category": "rec.sport.hockey", "text": "From: jbrown@vax.cns.muskingum.edu\nSubject: Blackhawks win!!! \nOrganization: Muskingum College\nLines: 10\n\nThe Hawks win!!  Jermey Roenick scored his 50 th goal and the Hawks put the\nLeafs in their place, the losers column.  If the Leafs can not even beat the\nHawks in a match that had little or no meaning I will hate to see them against\nthe Wings.  \n\nOh btw I laugh at rm, that jerky!!!\n\nGO HAWKS!!!\n\nJB\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5420, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cl238405@ulkyvx.louisville.edu (Steve W Brewer)\nSubject: How do I make GhostScript work?\nLines: 12\nNntp-Posting-Host: ulkyvx.louisville.edu\nOrganization: University of Louisville\n\nWhat files do I need to download for GhostScript 2.5.2?  I have never used\nGhostScript before, so I don't have any files for it.  What I *do* have is\ngs252win.zip, which I downloaded from Cica.  Unfortunately, it doesn't seem to\nwork on it's own, but needs some more files that I don't have.  I want to run\nGhostScript both in Windows 3.1 and in MS-DOS on a 386 PC (I understand there's\nversions for both environments).  What are all the files I need to download and\nwhere can I get them?  Any info would be appeciated.\n\n--------------------------------------------------------------------------------\n  Steve W Brewer                                                rewerB W evetS\n  cl238405@ulkyvx.louisville.edu                ude.ellivsiuol.xvyklu@504832lc\n--------------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5421, "properties": {"category": "rec.autos", "text": "From: tquinn@heartland.bradley.edu (Terry Quinn)\nSubject: Waxing a new car\nOrganization: UTexas Mail-to-News Gateway\nLines: 18\nReply-To: tquinn@heartland.bradley.edu\nNNTP-Posting-Host: cs.utexas.edu\n\n\n\nI have just taken delivery on a new GM car (Firebird) with a \nclearcoat finish.  I assume that it is probably urethane since the \nindustry has moved in that direction in paints.\n \nIn years past, it used to be recommended that owners wait up to \n60 days before you wax a car, for the paint to \"cure.\"  The dealer \nshop manager said this also, but I'm not sure that he wasn't just \nbasing it on past tradition.  Does anyone know if this is still a \nrecommended practice, or is it better to go ahead and wax right \naway (non-abrasive new car wax) with the newer finishes? \n\n--\n                                    Terry Quinn\n                                     Germantown Hills, IL\n                                      tquinn@heartland.bradley.edu\nfrom Compuserve . . .                  >INTERNET: tquinn@heartland.bradley.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5422, "properties": {"category": "talk.politics.misc", "text": "From: lwb@cs.utexas.edu (Lance W. Bledsoe)\nSubject: URGENT **** TED FRANK WANTED FOR KILLING AJ TEEL...\nArticle-I.D.: im4u.1pspp7INN3ea\nOrganization: CS Dept, University of Texas at Austin\nLines: 307\nNNTP-Posting-Host: im4u.cs.utexas.edu\n\n...His account that is.\n\nMany important issues, and some not-so important ones, are discussed here\non the net on a daily basis.  I have just been informed of what I feel is\none of the most important things that we could ever discuss -- The \nout-and-out censorship of one of our fellow posters because some people\ndon't like what he says or thinks.\n\nWe have all seen the postings here by AJ Teel.  Although many of us have\nnot agreed with their content, I'm sure most of us have been at least\nsomewhat interested in them.  I, for one, am greatful to live (I thought)\nin a country where people like Mr. Teel are allowed to say what they please.\nIf I don't wan't to read it, I can just skip on by, or unsuscribe.  But,\nunfortunately, some people cannot let others live and let live.  They feel\nan overwhelming need to snuff out the little bastards.  Now it seems that\nMr. Teel will be with us no more, due mainly to our brother, and cheif\nnet police, Ted Frank.\n\n\nPLEASE HELP AJ TEEL REGAIN NET (POST) ACCESS AND CORRECT THIS INJUSTICE. \n\n                      ARE YOU ON TED'S HIT LIST?  \n                      ARE YOUR THOUGHTS CORRECT?  \n                        IS YOUR ACCOUNT SAFE?\n         HAS YOUR SYSADMIN BEEN CONTACTED BY THE THOUGHT POLICE?\n\nI thought the NLG and the ACLU supported people with diverse opinions. NOT!\n\n \nPlease read the following forwarded messages from AJ Teel so that \nyou may understand this vial act for what it is...\n\n------------------------------ forwarded ---------------------------------\n\nNewsgroups: alt.activism,alt.conspiracy,talk.politics.misc,misc.legal\nSubject: Officer Ted Frank, Thought Police Badge Number NWO-666\nSummary: Ted wins the argument by killing his opponent!\nExpires: \nDistribution: \nOrganization: University of Colorado, Boulder\nKeywords: NWO Ted Frank\n\nWell, well, well... Thanks to eck@panix.com (Mark Eckenwiler) and\nthf2@kimbark.uchicago.edu (Ted Frank), my account is to be axed.\nI guess that the information I am presenting is just toooo difficult\nfor them to deal with. They (ONLY Ted and Mark) have complained to my\nsysadmin some unknown number of times to get me off the net. (In his\ndefense, Mark sent only one message and it was not THAT bad; it has\nbeen posted in one of the newsgroups; However, it *was* not directed\nat me as would be common practice and I am VERY good at responding\nvia netmail...)\n\nWhile I disagree with Ted, I would not send mail to his sysadmin\nto get him axed. Name-calling was not enough; jumping on every post\nI made was not enough; ignoring specific points when they were not\nwhat the desired picture was not enough; SIMPLY IGNORING ME IF I\nAM SUCH A KOOK WAS NOT ENOUGH. Even now I do not wish to have him\naxed, but I do wish to express my disgust about this. \"Argumentum\nad silence-your-opponent-um\"?! I would have thought he would have\nwanted me to stay around just to have someone to yell about and\nseem sooo wise... (to himself, I think).\n\nThe issue that seems to be: \"Is the following an advertisement?\"\nApparently, Ted and Mark think so...\n\n1) I Posted an article from around one year ago as it was taken \n\t*off the net* from last year. If reposting an article\n\tconstitutes posting an ad, then I am guilty. This post\n\tdid have a name and address and, yes, a price. If one\n\thad posted the address and subscription price of \"Newsweek\",\n\twould that be an ad? I get nothing from showing this stuff.\n2) I Posted a list of documents showing examples of the kind of\n\t\"proof\" that was REQUESTED BY TED FRANK. He then complains\n\tto my sysadmin saying that I am advertising and, lo and\n\tbehold, \"poof\", there goes my account. This one had an\n\taddress in it! Oh, no! I Guess that means it is an ad!\n\nIf you value the alternative view I have been discussing, or VALUE\nITS DISCUSSION even if you do not agree with it, I ask that you send\na note saying as much to me to show to the sysadmin. They rarely get\n\"Ya know, that user on your net was real helpful...\" or whatever; they\nonly get \"I don't like what that user is doing because...\".\nPlease do not send the note to the sysadmin. I need to take it to them\nin a manner that has at least a chance of getting through.\n\nIn my files here are hundreds of responses from people saying \"Thanks for\nthe info\" or \"Could you send me such and such?\" or \"Your posts are\nvery interesting... keep it up.\" and only a handfull of \"Go aways\". But,\nI guess the fact that I have decided not to waste my time trying to\nconvince Ted is a Net Offense[TM] of such magnitude as to warrant\na message complaining about me. (Knock, knock...\"My name is Ted and\nand this is Mark... We're from the thought police. Seems you have\nsome pretty dangerous ideas here, and we're here to confiscate them...\")\nNWO Indeed!\n\nGuess I will have to go back to the drawing board and come up with\na new plan... Thanks Ted and Mike. Hope you are happy.\nI will be on for a few more days and then... that's all folks!\nYour comments and support are requested. I can no longer post\nto news. I ask what this has accomplished... Is there some benefit\nfrom making alternative views simply vanish? Not in my book. \nSeems the easiest way to win an argument is to make the opposing side\nshut up. Images of Waco.... ah, but alas... And all this when I am in the\nprocess of typing in a letter to me from the Tax Collector saying that\na lien was removed due to a letter that I wrote challenging jurisdiction.\nOh, well... It takes time to come up with the info requested, and I\nwas just getting started.\n\nIt should be noted that Ted Frank has been accused publicly over 40\ntimes of being an NWO supporter and has never made an statements to the\ncontrary. Further, what ARE Ted Frank's motivations for getting me axed?\nWe all know that SOME PEOPLE are getting paid to collect info on people\non the net that are of \"interest\" to the government, and Ted sure seems\nto have a *personal* interest in debunking me. Hmmm... just who does\nhe work for? The University of Chicago which he \"attends\"(?) is well\nknown as one of the biggest NWO supporters...\n\nAnd finally, if anyone would be able to help me find a new account here\nin the Boulder/Denver area, I would greatly appreciate it. I am in the\nprocess of installing Linux and so will be able to do UUCP or maybe\na TC/IP connection. Any help here would be greatly appreciated. Since I\nam longer be able to post news and will no longer have email VERY\nsoon, I hope that anyone who wishes to contact me will do so via:\n\n\tA. J. Teel, Sui Juris\n\tc/o USPS Box 19043\n\tBoulder, Colorado, U.S.A.\n\tPostal Zone: 80308-9043\n\t\n\tor leave me voice mail at: c/o (408) 281-0434\n\n\n-------------------------------------------------------------------------------\nSelected messages from Ted Frank via sysadmin follows:\n-------------------------------------------------------------------------------\n\nWith Explicit Reservation Of All Rights (U.C.C. 1-207)\nRegards, -A. J. Teel-, Sui Juris (ajteel@dendrite.cs.Colorado.EDU)\n\n\n---------------------------\n\n>From barb@locutus.cs.colorado.edu Mon Apr  5 14:39:21 1993\nReceived: from locutus.cs.colorado.edu by dendrite.cs.Colorado.EDU with SMTP id AA14777\n  (5.65c/IDA-1.4.4 for <ajteel@dendrite.cs.Colorado.EDU>); Mon, 5 Apr 1993 14:39:19 -0600\nReceived: by locutus.cs.colorado.edu with SMTP id AA15908\n  (5.65c/IDA-1.4.4 for <ajteel>); Mon, 5 Apr 1993 14:36:54 -0600\nMessage-Id: <199304052036.AA15908@locutus.cs.colorado.edu>\nTo: \"Ted Frank\" <thf2@midway.uchicago.edu>\nSubject: Re: List of documents \nCc: cstmr@locutus.cs.colorado.edu, csops@locutus.cs.colorado.edu,\n        ajteel@locutus.cs.colorado.edu, vaxops@locutus.cs.colorado.edu\nReply-To: trouble@cs.colorado.edu\nIn-Reply-To: Your message of Mon, 05 Apr 93 13:29:06 CDT\nDate: Mon, 05 Apr 93 14:36:51 -0600\nFrom: barb@locutus.cs.colorado.edu\nStatus: OR\n\n--------\n\n    Please ask ******* to stop advertising his wares on the network. Thank you.\n\t\t\t[Editor's Note:    ^^^???]\n    \n    In article <1993Apr5.154256.5169@colorado.edu> ajteel writes:\n    >[START OF DOCUMENT: doclist.txt.lis ]\n    >DOCUMENTS NOW AVAILABLE\n    >\n    >BILL MEDINA, Sui Juris\n    >Post Office Box 70400\n    >Sunnyvale, California, U.S.A.\n    >Postal Zone: 94086-0400\n    \n    (79 lines deleted).\n\n---------------\n  Resolution:\n---------------\n\nThank you.  He has been warned before.  We are taking action.\n\n\nBarbara J. Dyker                       Department of Computer Science\nManager, Computer Operations           Campus Box 430B, ECEE00-69\nbarb@cs.colorado.edu                   University of Colorado\n(303) 492-2545                         Boulder, CO  80309-0430\n\n--------------------\n>From barb@locutus\n.cs.colorado.edu Mon Apr  5 15:50:36 1993\nReceived: from locutus.cs.colorado.edu by dendrite.cs.Colorado.EDU with SMTP id AA15809\n  (5.65c/IDA-1.4.4 for <ajteel@dendrite.cs.Colorado.EDU>); Mon, 5 Apr 1993 15:50:34 -0600\nReceived: by locutus.cs.colorado.edu id AA16069\n  (5.65c/IDA-1.4.4 for ajteel); Mon, 5 Apr 1993 15:50:27 -0600\nDate: Mon, 5 Apr 1993 15:50:27 -0600\nFrom: Barbara Dyker <barb@locutus.cs.colorado.edu>\nMessage-Id: <199304052150.AA16069@locutus.cs.colorado.edu>\nReceived: by NeXT.Mailer (1.87.1)\nReceived: by NeXT Mailer (1.87.1)\nTo: ajteel@locutus.cs.colorado.edu\nSubject: your account\nCc: vaxops@locutus.cs.colorado.edu, usenet@locutus.cs.colorado.edu,\n        mozer@locutus.cs.colorado.edu\nStatus: OR\n\n[...]\n\nI had already warned you that your inappropriate use of\nyour account here must stop.  You have used your account\nhere as a soapbox for your political \"sui juris\" agenda.\n\n[...]\n\n> Date: Tue, 23 Mar 93 13:26:43 -0700\n> From: barb@locutus.cs.colorado.edu\n> To: ajteel@locutus.cs.colorado.edu\n> \n\n> Also, if you are reported for any more commercial\n> announcements, your account may be disabled. \n\n[Editor's note: What commercial advertisemnets are we talking about?]\n\n> From: barb@bruno.cs.colorado.edu\n> To: \"A.J. Teel\" <ajteel@dendrite.cs.colorado.edu>\n> Date: Tue, 23 Mar 93 17:26:40 MST\n> \n\n[...]\n\n> As long as\n> they aren't causing any problems, we typically don't\n> mind. ...We have received two complaints about the\n> content of your messages so far (at least one of which I\n> consider valid) - which already constitutes excessive\n> in my book.  Just don't let it happen again. \n\n[Editor's note: I *wonder* who the other post was from??!]\n\n>From laszlo@eclipse.cs.colorado.edu Thu Mar 18 01:40:15 1993\nTo: \"Ted Frank\" <thf2@midway.uchicago.edu>\nSubject: Re: Bouncing \n\nCc: cstmr@eclipse.cs.colorado.edu, csops@eclipse.cs.colorado.edu\nReply-To: trouble@cs.colorado.edu\nIn-Reply-To: Your message of Wed, 17 Mar 93 21:05:59 CST\nDate: Thu, 18 Mar 93 08:40:15 MST\nFrom: laszlo@eclipse.cs.colorado.edu\n\n--------\n\nIn article <1993Mar18.012344.6213@colorado.edu> ajteel@dendrite.cs.Colorado.EDU\n    >Bounced names:\n    >   garry@research.att.com\n    >   bill@kean.usc.mun.ca\n    >   jad@hopper.Virginia.EDU\n    >   kima@gator.rational.com\n    >\n    >Hello All:\n    >   I am having trouble reaching the following (keeps bouncing).\n    >   If you sent me mail and haven't gotten a response, check here.\n    >   Also, can anyone tell me why these are bouncing? I used\n    >   the reply in elm which should send it right back, right?\n    >With Explicit Reservation Of All Rights (U.C.C. 1-207)\n    >Regards, -A. J. Teel-, Sui Juris (ajteel@dendrite.cs.Colorado.EDU)\n    >\n[...]\n\n[Editor's Note: The reason for posting the header lines from the bounced\nmessages was to show what the problem was and hopefully correct it.]\n\n[Ted Frank] It's inexcusable to post 150 lines of bounced mail headers to four\nnewsgroups.\n    A simple four-line post would have been sufficient.\n\n---------------\n  Resolution:\n---------------\n[Lazlo]\nyes i agree. BUT our policy is to not watch everypost someone  here  \nmakes.\nwe generally let the net itself take care of inappropriate postings\nby flaming the user into shape (which i assume this is ment to be).\nwe (CS operations) don't like to get involved in this stuff (unless\nits illegal, repetitive posts of 1gig gifs, harassment, or something\nelse that offends the community in general). my suggestion is that\nyou take it to email and explain what a post for bounces should look  \nlike or tell him to RTFM\n\nlaz\n[Editor's note: Obviously, Ted had no such intention of doing so...]\n\nted frank                 | \"However Teel should have mentioned that though \nthf2@kimbark.uchicago.edu |  his advice is legally sound, if you follow it \nthe u of c law school     |  you will probably wind up in jail.\"\nstandard disclaimers      |                    -- James Donald, in misc.legal\n\n[Editor's Note: From this .sig, it seems obvious that Ted Frank has an\naxe to grind... Why that particular quote?.... Hmmm... Sure makes me wonder.]\n\n\n-- \n+------------------------------------------------------------------------+\n|  Lance W. Bledsoe        lwb@im4u.cs.utexas.edu        (512) 258-0112  |\n|  \"Ye shall know the TRUTH, and the TRUTH shall make you free.\"         |\n+------------------------------------------------------------------------+\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5423, "properties": {"category": "rec.autos", "text": "From: rjwade@rainbow.ecn.purdue.edu (Robert J. Wade)\nSubject: Re: Integra GSR\nOrganization: Purdue University Engineering Computer Network\nLines: 21\n\n>\n>Quad 4 reliable, yeah, what's your definition of reliable- if that's reliable,\n>then its safe to say that integra engines in general are near perfect\n> (not to mention, a hell of alot smoother and quieter - balance shafts.The Acura has the engine\n>   wins the reliablity contest hands down. You can rev that car all day, everyday,\n>and you'll never blow a hose, or crack the block, or anything else. (I speak\n>from expierence!)\n>I'm not saying the Quad 4 is a bad engine, but don't highlight reliability when you\n>comparing it to a Acura Engine.  AND while the Integra costs alot more, it is a\n\na couple of things:  blowing a hose doesn't speak of engine reliability, and \nwhile it is true that quad4's have a problem with head gasket leaks, that was\na design flaw in the gasket and has been corrected.  also i know pontiac is\nreplacing head gaskets that leak for free for 6year/60k miles.  other than\nthat i have found my quad4 to be completely solid and the direct ignition \nsystem means no wires/rotor/rotor-cap to ever deal with.  also hydrolic lifters\nmean no valve adjustments ever.  i'm not badmouthing the integra engine, i just\nthink you are going overboard on slamming the quad4.  you are quite correct\nthat the integra engine is quieter, although i would not say smoother, my\nquad4 loves to rev, especially at the high-end.  do you have any evidence\nof blocks cracking on quad4s?  i have not heard of this.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5424, "properties": {"category": "rec.sport.baseball", "text": "From: dwarner@journalism.indiana.edu (David J.)\nSubject: mlb.c\nNntp-Posting-Host: clove.journalism.indiana.edu\nReply-To: dwarner@journalism.indiana.edu\nOrganization: Indiana University\nLines: 8\n\nCould some kind soul out there e-mail me the 411 on where I can find the mlb.c  \nprogram?  I'm interested in some road trips this year....\n\n--\nDavid J.(dwarner@journalism.indiana.edu)*****Blue Riddle Productions 1993\n*-------------------------------It's on.--------------------------------*\n***\"THE RAP IS AN ART EP\" is coming out on tape -- this time for real.***\n*------------------------E-mail me for the 411.-------------------------*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5425, "properties": {"category": "misc.forsale", "text": "From: alin@nyx.cs.du.edu (ailin lin)\nSubject: LD ext. floppy drive for MAC(extremely cheap)\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 10\n\nI have a brand new low density 5.25\" floppy drive for MAC.\nIt comes with a brand new Apple Macintosh II PC drive card, so \nthat you can hook the drive up to the card.\nIt allows you to use DOS formatted disks.\nI am selling it for $90 (abt 1/3 retail price).\n\nAilin\n803-654-8817\n\nbuyers pay shipping.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5426, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Should liability insurance be required?\nOrganization: NEC Systems Laboratory, Inc.\nDistribution: usa\nLines: 32\n\nIn article <tcora-140493155620@b329-gator-3.pica.army.mil> tcora@pica.army.mil (Tom Coradeschi) writes:\n>In article <1993Apr14.125209.21247@walter.bellcore.com>,\n>fist@iscp.bellcore.com (Richard Pierson) wrote:\n>> \n>> Lets get this \"No Fault\" stuff straight, I lived in NJ\n>> when NF started, my rates went up, ALOT. Moved to PA\n>> and my rates went down ALOT, the NF came to PA and it\n>> was a different story. If you are sitting in a parking\n>> lot having lunch or whatever and someone wacks you guess\n>> whose insurance pays for it ? give up ?  YOURS.\n>\n>BZZZT! If it is the other driver's fault, your insurance co pays you, less\n>deductible, then recoups the total cost from the other guy/gal's company\n>(there's a fancy word for it, which escapes me right now), and pays you the\n>deductible. Or: you can go to the other guy/gal's company right off - just\n>takes longer to get your cash (as opposed to State Farm, who cut me a check\n>today, on the spot, for the damage to my wife's cage).\n\n\tThe word is \"subrogation.\"  Seems to me, if you're willing to wait\nfor the money from scumbag's insurance, that you save having to pay the\ndeductible.  However, if scumbag's insurance is Scum insurance, then you may\nhave to pay the deductible to get your insurance co.'s pack of rabid, large-\nfanged lawyers to recover the damages from Scum insurance's lawyers.\n\n\tSad, but true.  Call it job security for lawyers.\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5427, "properties": {"category": "soc.religion.christian", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 86\n\nIn article <Apr.20.03.02.26.1993.3803@geneva.rutgers.edu> clh writes:\n>Re: Are you Christian or Pauline?\n>Both.\n\nSure, why not? But, are you using Paul to correct the words of Jesus?\n\n>There is no doubt in my mind about what is sin and what is\n>not, at least not in this case.  Jesus did not deal explicitly with\n>the question of whether the Law was binding on Gentiles. \n\n\"So *anyone* who dissolves even one of the smallest commands and teaches\nothers the same way, will be known as the lowest in the kingdom of the\nskies; whereas *anyone* who keeps the commands and teaches them too, will\nbe known as *someone* great in the kingdom of the skies.\" Mat5:19 (Gaus)\n\nAre you an \"anyone\" or are you a \"no one?\"\n\nWhy not assume, that since Jesus didn't say that his words apply only to\nJews, that they apply to all human beings, irregardless of race or sex?\n\nWhy not assume, that even though Jesus did not mention your name, still\nJesus was talking directly to you?\n\n>That's why I\n>have to cite evidence such as the way Jesus dealt with the Centurion.\n>As to general Jewish views on this, I am dependent largely on studies\n>of Pauline theology, one by H.J. Schoeps, and one whose author I can't\n>come up with at the moment.  Both authors are Jews.  Also, various\n>Christian and non-Christian Jews have discussed the issue here and in\n>other newsgroups.\n>Mat 5:19 is clear that the Law is still valid.  It does not say that\n>it applies to Gentiles.\n\nDoes it say that it applies to *you*? Are you anyone or no one?\n\n>And yes, I say that the specific requirement for worship on the\n>Sabbath in the Ten Commandments is a ceremonial detail, when you're\n>looking at the obligations of Gentiles.\n\nEx20:8-11(JPS) Remember the sabbath day and keep it holy. Six days you\nshall labor and do all your work, but the seventh day is a sabbath of\nthe LORD your God; you shall not do any work - you, your son or\ndaughter, your male or female slave, or your cattle, or the stranger who\nis within your settlements. For in six days the LORD made heaven and\nearth and sea, and all that is in them, and He rested on the seventh\nday; therefore the LORD blessed the sabbath day and hollowed it.\n\nNote: There is no specific requirement for worship here, however I for\none would not be so bold as to call these verses a \"ceremonial detail.\"\n\n>Similarly circumcision.\n\nDon't many Christians still practice circumcision?\n\n>I'm not sure quite what else I can say on this subject.  Again, it's\n>unfortunate the Jesus didn't answer the question directly.\n\nIt's unfortunate that Jesus didn't use your name directly, or maybe\nJesus did? Are you somebody or nobody?\n\n>However we\n>do know (1) what the 1st Cent. Jewish approach was, (2) how Jesus\n>dealt with at least one Gentile, and (3) how Jesus' disciples dealt\n>with the issue when it became more acute (I'm referring to Acts 15\n>more than Paul).  Given that these are all in agreement, I don't see\n>that there's a big problem.\n\nIf you don't see a problem, then perhaps there is none. As Paul closes\nRomans 14 (Gaus):\n\n  In short, pursue the ends of peace and of building each other up.\nDon't let dietary considerations undo the work of God. Everything may be\nclean, but it's evil for the person who eats it in an offensive spirit.\nBetter not to eat the meat or drink the wine or whatever else your\nbrother is offended by. As for the faith that you have, keep that\nbetween yourself and God. The person is in luck who doesn't condemn\nhimself for what he samples. On the other hand, the person with doubts\nabout something who eats it anyway is guilty, because he isn't acting on\nhis faith, and any failure to act on faith is a sin.\n\n[As far as I know, Christians (except specific Jewish Christian\ngroups, and maybe some of the sabbatarians -- both of which are very\nsmall groups) do not practice circumcision on religious grounds.  In\nsome countries it has been done for supposed health reasons, but I've\nnot heard it argued that it is being done because of the Biblical\ncommandment.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5428, "properties": {"category": "comp.graphics", "text": "From: u895027@franklin.cc.utas.edu.au (Mark Mackey)\nSubject: Raytracers: which is best?\nOrganization: University of Tasmania, Australia.\nLines: 15\n\nHi all!\n\tI've just recently become seriously hooked on POV, but there are a few\nthing that I want to do that POV won't do (penumbral shadows, dispersion\netc.). I was just wondering: what other shareware/freeware raytracers are\nout there, and what can they do? I've heard of Vivid and Polyray and \nRayshade and so on, but I'd rather no wade through several hundred pages of \nmanual for each trying to work out what their capabilities are. Can anyone\nhelp? A comparison of tracing speed between each program would also be \nmucho useful.\n\t\t\t\t\t\t\t\t\t\t\tMark.\n\n-------------------------------------------------------------------------------\nMark Mackey                 | Life is a terminal disease and oxygen is         \nmmackey@aqueous.ml.csiro.au | addictive. Are _you_ hooked?                  \n-------------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5429, "properties": {"category": "comp.windows.x", "text": "From: klee@synoptics.com (Ken Lee)\nSubject: Re: Property problems\nReply-To: klee@synoptics.com\nOrganization: SynOptics Communications, Santa Clara CA\nLines: 19\nNntp-Posting-Host: bugsbunny.synoptics.com\n\nIn article ( ), wsmart@tay.mcs.dundee.ac.uk (Bill Smart) writes:\n> To get the number back, the other client does:\n>\n>  AppAtom = XInternAtom(display,\"ApplicationWindow\",True);\n>  XGetWindowProperty(display,DefaultRootWindow(display),AppAtom,0,8192,\n>                     False,XA_WINDOW,&return_type,&return_format,\n>                     &nitems_return,&bar,&return_place);\n>\n> and appears to get back something valid (just not the right number).\n> It always seems to return the same number, regardless of the window\n> number stored in the property.\n\n\"return_place\" is probably incorrect.  It should be a pointer, not an\ninteger.  XGetWindowProperty() allocates memory, copies the data there,\nand returns a pointer to the memory.  You should free the memory when\nyou're done.\n\n---\nKen Lee, klee@synoptics.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5430, "properties": {"category": "rec.sport.hockey", "text": "Subject: Re: NHLPA poll (partial stats/results)\nFrom: caldwell8102@mtroyal.ab.ca\nOrganization: Mount Royal College, Calgary, Alberta\nLines: 10\n\nIn article <ofnmaO_00iV1A6kYd2@andrew.cmu.edu> Young-Soo Che <yc25+@andrew.cmu.edu> writes:\n>All these people who send in their polls should take a closer look at\n>NJD, they are a very deep team, with two very capable goalies, and\n>excellent forwards and defensemen.  Shooter in Richer, an all around do\n>it all in Todd, chef Stasny-master of a thousand dishes, power play\n\nKevin Todd is an Oiler and has been one for months. How closely do you follow\nthe Devils, anyway? Jeez....\n\n\t\t\t\t\t\t\t\tAlan\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5431, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: Re: HELP: is my monitor dying???\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 5\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nIt sounds like a MAGNAVOX with a sick flyback on its way out!\n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5432, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: David_A._Schnider@bmug.org\nOrganization: BMUG, Inc.\nSubject: Re: Monitor for LCIII\nLines: 21\n\nJeff,\n  I have answers to both of your questions.  First, I recommend the Sony\nCPD-1320 monitor.  It is a 14\" Trinitron VGA monitor, but it is designed\nspecifically for use with the LC.  It works only with Macs with specific video\ncapabilities which means only the LC's and anything after the ci.  All it\ntakes is a MAC<->VGA cable (I recommend one from James Engineering which is\nabout $20).  These cost about $335 as compared to the much higher prices of\ncomparable monitors because they are not multisynch.  I have used one for half\na year and I love it.  \nSecond, I have used Syex and found them to be decent.  I had a backorder on a\nSupra modem which I cancelled.  They were helpful in explaining the reasons\nwhy there were delays and they had Supra's number ready for me.  The only\ncomplaint was that they did not always return my calls.  \nI have been told that the CPD-1320 is selling for $339 from J&R's\n(800)221-8180.  I think Syex is a little more, but I don't know.\n\n-David\n\n**** From Planet BMUG, the FirstClass BBS of BMUG.  The message contained in\n**** this posting does not in any way reflect BMUG's official views.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5433, "properties": {"category": "rec.motorcycles", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: Flashing anyone?\nKeywords: flashing\nOrganization: Iowa State University, Ames IA\nLines: 29\n\nbehanna@syl.nj.nec.com (Chris BeHanna) writes:\n\n>>Just before arriving at a toll booth I\n>>switch the hazards on.  I do thisto warn other motorists that I will\n>>be taking longer than the 2 1/2 seconds to make the transaction.\n>>My question, is this a good/bad thing to do?\n\n>\tThis sounds like a VERY good thing to do.\n\n\tI'll second that.  In addition, I find my hazards to be more\noften used than my horn.  At speeds below 40mph on the interstates,\nquite common in mountains with trucks, some states require flashers.\nIn rural areas, flashers let the guy behind you know there is a tractor\nwith a rather large implement behind it in the way.  Use them whenever \nyou need to communicate that things will deviate from the norm.  \n\n>-- \n>Chris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\n>behanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\n>Disclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\n\n\tIs that ZX-11 painted green?  Since the green Triumph 650 that\na friend owned was sold off, her name is now free for adoption.  How\ndoes the name \"Thunderpickle\" grab you?\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5434, "properties": {"category": "misc.forsale", "text": "From: michaelq@tlaloc.sw.stratus.com (Michael Quicquaro)\nSubject: For Sale:  1990 Pontiac Grand Prix SE\nOrganization: Stratus Computer, Software Engineering\nLines: 45\nDistribution: usa\nNNTP-Posting-Host: tlaloc.sw.stratus.com\n\nFor Sale:  1990 Pontiac Grand Prix SE\n\nWhite, White rims, Gray interior.\n58K miles (mostly highway),\n3.8 Litre V6 multi-port fuel-injected engine,\n5 speed manual transmission.\n\nOptions include:\n\nA/C,\nRear defogger,\nPower steering,\nPower brakes,\nPower windows,\nPower locks,\nPower mirrors,\nCruise control,\nPower glass moonroof with sunshade,\nPower seat/recliner (driver's),\nPower seat/comfort/lumbar/headrest (both),\nAM/FM cassette stero,\nElectronic monitor/service system\nwith graphic compass,\nStereo controls duplicated on\nsteering wheel,\nRemote-keyless entry,\nand others.\n\nAsking $11,500.\n\nThe car looks and rides like it just rolled off\nof the dealers lot.  It has been garaged and pampered.\nIt gets an average of 27.5 mpg highway, sometimes better;\ncity is around 19-23 mpg, depending on how it is driven.\n\nSelling because of baby coming soon.  Need 4-door family\ncar.  Will consider trade or partial trade with Ford Taurus,\nMercury Sable, or 4-door Pontiac Grand Am or similar American\ncar.\n\nContact:\nMike at Home: (508) 881-6312\n        Work: (508) 490-6963, or\nmichaelq@tlaloc.sw.stratus.com\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5435, "properties": {"category": "rec.motorcycles", "text": "From: zowie@daedalus.stanford.edu (Craig \"Powderkeg\" DeForest)\nSubject: Re: Need advice for riding with someone on pillion\nDistribution: na\nOrganization: Stanford Center for Space Science and Astrophysics\nLines: 61\nNNTP-Posting-Host: daedalus.stanford.edu\nIn-reply-to: raible@nas.nasa.gov's message of 20 Apr 93 19:32:39\n\nIn article <C5t759.DsC@well.sf.ca.us> rwert@well.sf.ca.us (Bob Wert) writes:\n   I need some advice on having someone ride pillion with me on my 750 Ninja.\n   This will be the the first time I've taken anyone for an extended ride\n   (read: farther than around the block  :-).  We'll be riding some twisty, \n   fairly bumpy roads (the Mines Road-Mt.Hamilton Loop for you SF Bay Areans).\n\nCommunication:  work out your own system.  Or just slow down and holler\nback every once in a while.  At reasonable speeds, even on my under-muffled\nMagna, we can hear each other.  It's only above, say, 45 MPH that you \ncan't really communicate.\n\nBalance: New passengers are a real pain, because you never know how\nthey're going to react to steering.  Some people catch on immediately\nand lean with me.  Others are completely skittish about the leaning\nthing, and keep their bodies perpendicular to the horizon.  This is a\npain while turning, but manageable.  The WORST are the passengers who stay\nperpendicular to the horizon, then REMEMBER in the middle of a turn\nand WHIP AROUND until they're in the `correct' position.  This always\nscrews up the line I've picked out.\n\nHere's my personal checklist of things to tell passengers:\n\t- attire: helmet, long pants, boots/heavy shoes, jacket.\n\t- Keep feet on pegs at all times, unless I say otherwise.  Do not\n\t  get on/off unless I say you can.  (I've had people try to dismount\n\t  in traffic, just as I'm pulling in to a parking space!)\n\t- Muffler gets HOT! ('Nuff said)\n\t- We get *GOOD* traction.  We're not going to fall over.  (Many\n\t  first-time riders are surprised by how tightly you can turn!)\n\t- Turn dynamics:  sit so that you feel like you're sitting upright and\n\t  we're going straight.  Trust your butt, not your eyes -- if you're\n\t  confused, close your eyes for a couple of turns to get the feel\n\t  of it.  Or just hug me tight.  \n\t- Please, no sudden moves -- shift your weight as desired, but be \n\t  gradual, so I can compensate.\n\t- Your faceplate is yours to open/close as desired.\n\t- Trust is essential.  Trust the driver (me) to do the right \n\t  thing -- I've driven many miles on this thing, and know how\n\t  to operate it.  Enjoy the ride.  (This is important to\n\t  stress.  For example, one of my first-time passwngers seemed to \n\t  watch the speedo like a hawk:  I drove her to the beach down 84, \n\t  and whever we topped 35 mph, she'd holler, \"SLOW DOWN! I'M SCARED\" \n\t  I humored her for a while, then simply covered the speedometer with \n\t  the spare piece of duct tape I keep stuck to the top of the cluster.\n\t  Problem solved:  she watched the scenery instead of the\n\t  instruments, and had a much better time.  Based on her\n\t  experience driving a Lincoln Continental, she was unwilling to \n\t  trust my ability to choose a safe speed for the bike.)\n\nUsually I'll point out the controls, engine, transmission, brakes, \ntires, etc. and discuss motorcycle physics a bit too for first-timers.\nHelps calm their nerves, and gives the bike a chance to warm up.\n\nWatch out for gravel on the Mt. Hamilton road:  there were lots of little\nmudslides after the last big rain; by now, many of the blind corners will\nbe nicely covered with a carpet of little, round, nearly invisible stones.\nIt doesn't help build trust when you slide out on a blind corner, on the \nfirst trip!\n\nGood luck -- have fun!\n--\nDON'T DRINK SOAP! DILUTE DILUTE! OK!\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.259+0000", "event": "documents", "entityId": 5436, "properties": {"category": "sci.space", "text": "From: dante@shakala.com (Charlie Prael)\nSubject: Re: army in space\nOrganization: Shakala BBS (ClanZen Radio Network) Sunnyvale, CA +1-408-734-2289\nLines: 23\n\nktj@beach.cis.ufl.edu (kerry todd johnson) writes:\n\n> Is anybody out there willing to discuss with me careers in the Army that deal\n> with space?  After I graduate, I will have a commitment to serve in the Army,\n> and I would like to spend it in a space-related field.  I saw a post a long\n> time ago about the Air Force Space Command which made a fleeting reference to\n> its Army counter-part.  Any more info on that would be appreciated.  I'm \n> looking for things like: do I branch Intelligence, or Signal, or other?  To\n> whom do I voice my interest in space?  What qualifications are necessary?\n> Etc, etc.  BTW, my major is computer science engineering.\n\nKerry-- I'm guessing a little at this, because it's been a few years \nsince I saw the info, but you will probably want to look at Air Defense \nArtillery as a specialty, or possibly Signals.  The kind of thing you're \nlooking for is SDI-type assignments, but it'll be pretty prosaic stuff.\nThings like hard-kill ATBM missiles, some of the COBRA rigs -- that kind \nof thing.  \n\nHope that gives you some ideas on where to look, though.\n\n------------------------------------------------------------------\nCharlie Prael  - dante@shakala.com \nShakala BBS (ClanZen Radio Network) Sunnyvale, CA +1-408-734-2289\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5437, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: File Server Mac\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 10\n\nPKR@SLACVM.SLAC.STANFORD.EDU (Patrick Krejcik) writes:\n\n>I saw once an article about a new line of Macs configured to\t\n>work more optimally as file servers. \t\n>Anyone know any more details?\n\n    Check out the May issue of MacWorld; the new servers are on the\ncover. Should be at your favorite newstand.\n\n-Hades\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5438, "properties": {"category": "rec.motorcycles", "text": "From: klinger@ccu.umanitoba.ca (Jorg Klinger)\nSubject: Re: Traffic morons\nNntp-Posting-Host: ccu.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Canada\nLines: 27\n\nIn <10326.97.uupcb@compdyn.questor.org> ryan_cousineau@compdyn.questor.org (Ryan Cousineau)  writes:\n\n>NMM>From: nielsmm@imv.aau.dk (Niels Mikkel Michelsen)\n>NMM>Subject: How to act in front of traffic jerks\n\n>I've found that an effective strategy is to flash my brake light by\n>pumping the pedal. You will, obviously need a bit of free play in your\n>brake pedal to do this. It seems that even the most brain dead idiot can\n>usually discern that a flashing red light directly in front of\n>him/her/it may mean that something is wrong.\n\n\n  I see one thing wrong with your strategy.\nThe boy who cried wolf.\n\n__\n   Jorg Klinger            |       GSXR1100        | If you only new who\n   Arch. & Eng. Services   |\"Lost Horizons\"  CR500 | I think I am. \n   UManitoba, Man. Ca.     |\"The Embalmer\"   IT175 |           - anonymous\n\n                                --Squidonk--       \n\n\n\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5439, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Orion drive in vacuum -- how?\nOrganization: U of Toronto Zoology\nLines: 17\n\nIn article <1quh78INNf45@elroy.jpl.nasa.gov> pjs@euclid.jpl.nasa.gov writes:\n>> >The National Air & Space Museum has both the prototype and the film.\n>> >When I was there, some years ago, they had the prototype on display...\n>> Great! I'll visit the National Air and Space Museum at the end of the\n>> month...\n>\n>Sorry to put a damper on your plans, but I was there three weeks ago and\n>it wasn't there.  Not that I would have known to look for it, of course,\n>but I combed the space exhibits pretty thoroughly and something like that\n>would have caught my attention instantly.\n\nIt wasn't especially prominent, as I recall.  However, quite possibly it's\nno longer on display; NASM, like most museums, has much more stuff than it\ncan display at once, and does rotate the displays occasionally.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5440, "properties": {"category": "comp.windows.x", "text": "From: dsc3jfs@imc10 (John F Skoda)\nSubject: How do I change the Text cursor in xterm\nOrganization: {not speaking for the } National Naval Medical Center\nLines: 20\nNntp-Posting-Host: imc10.med.navy.mil\nX-Newsreader: TIN [version 1.1 PL8]\n\n\n I have just finished building X11R5 on a 386 running Interactive Unix (SysVR3)\nand I am having a problem with xterm.  On any font larger that 5x7 it messes up\ncharacters that are types, the cursor seems to be \"too\" large, or splits into\na 1/2 reverse video, 1/2 outline block (which changes when the pointer is moved\ninto the window).  I am trying to use monospaced fonts (not -p- fonts).  Is\nthere any way of changing the appearence of the block cursor is an Xterm?\n\n Thanks\n    \n\n--\n------------------------------------------------------------------------------\n-- John F Skoda                            | Windows NT, OS/2 for the 90's. \n-- electronic learning facilitators, inc.  | C++, Cobol for the 21st century.\n-- Bethesda, MD                            | Use Ada, Unix, and other socially\n-- dsc3jfs@imc10.med.navy.mil\t\t   | unacceptable systems. \n-- dsc3jfs@imc30.med.navy.mil              | (and before you flame, I'm an\n-------------------------------------------| Expos fan... ...need I say more?)\nwith DISCLAIMER_PACKAGE;\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5441, "properties": {"category": "rec.motorcycles", "text": "From: behanna@phoenix.syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Thoughts on a 1982 Yamaha Seca Turbo?\nArticle-I.D.: research.1993Apr6.175149.25051\nOrganization: NEC Systems Laboratory, Inc.\nLines: 19\n\nIn article <6APR93.15402582@skyfox> howp@skyfox writes:\n>I was wondering if anybody knows anything about a Yamaha Seca Turbo.  I'm \n>considering buying a used 1982 Seca Turbo for $1300 Canadian (~$1000 US)\n>with 30,000 km on the odo.  This will be my first bike.  Any comments?\n\n\tDon't just nab it, POUNCE on it.  These are fairly rare bikes, and\nthey are MORE than adequate for putting a big brown stripe in your shorts.\nDoes a 50mph power wheelie appeal to you?  I thought it would...\n\n\tOnly really bad things:  the stock clutch isn't up to the task.\nBarnett can take care of this.  The back tire wears quickly (gee, wonder why?),\nand the induction system is a bear to work on.\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - pending delivery\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5442, "properties": {"category": "rec.sport.baseball", "text": "From: gaf5@ns1.cc.lehigh.edu (Gail A. Fullman)\nSubject: Re: PHILLIES SIGN MARK DAVIS\nOrganization: Lehigh University\nLines: 19\n\n\n>> Does that mean they have to pay his salary?  Didn't they wait\n>> for him to clear waivers?  If not, why not?\n>>\nDavis will be paid by three clubs this year, I think the Phils are\nresponsbible for about $600,000 or so.  They didn't wait for him to clear\nwaivers as three other clubs were also very interested in him.  A gamble?\nYes.\n\n>> Oh, it will?  As a Royals fan, I am skeptical.  They say he pitched well\n>> in winter ball.  He also pitched well at Omaha while with KC.  He just\n>> didn't pitch well (or even acceptably) when in the majors.  (I don't have\n>> his Atlanta stats, but he must not have impressed them very much either.)\n>\n>What about the year when he got 40+ saves in San Diego, did he pitch well\n>then?  Ok, I know he was awful the next year when he went to KC but still...\n>\nWon the CY Young, too, for that year.\n-- \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5443, "properties": {"category": "sci.crypt", "text": "From: butzerd@maumee.eng.ohio-state.edu (Dane C. Butzer)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: The Ohio State University Dept of Electrical Engineering\nDistribution: na\nLines: 19\n\nIn article <1993Apr20.034724.3748@colnet.cmhnet.org> res@colnet.cmhnet.org (Rob Stampfli) writes:\n>>>\tWith E-Mail, if they can't break your PGP encryption, they'll just\n>>>call up one of their TEMPEST trucks and read the electromagnetic emmisions\n>>>from your computer or terminal.  Note that measures to protect yourself from\n>>\n>>2. I could independently invent about half a dozen right off\n>>the top of my head. If I had studied Advanced E & M a little better,\n>>I could probably come up with a _very_ good system.\n>\n>Wouldn't a a second monitor of similar type scrolling gibberish and adjacent\n>to the one being used provide reasonable resistance to tempest attacks?\n\nActually, old video games and pinball machines are supposed to work pretty\ngood (at blocking EM eavesdropping), too.  Those things put out a LOT of EM\nnoise.  Back in the 80's, I read about computer companies putting bunches\nof games in their buildings for just this purpose (not to mention the $$$).\n\n\nDane\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5444, "properties": {"category": "sci.crypt", "text": "From: hal@cco.caltech.edu (Hal Finney)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: California Institute of Technology, Pasadena\nLines: 23\nDistribution: na\nNNTP-Posting-Host: alumni.caltech.edu\n\nbrad@clarinet.com (Brad Templeton) writes:\n\n>Their strategy is a business one rather than legal one.  They are\n>pushing to get a standard in place, a secret standard, and if they\n>get it as a standard then they will drive competitors out of the market.\n>It will be legal to sell better, untapable encryption that doesn't have\n>registered keys, but it will be difficult, and thus not a plan for\n>most phone companies.\n\nIf Brad's analysis is correct, it may offer an explanation for why the\nencryption algorithm is being kept secret.  This will prevent competitors\nfrom coming out with Clipper-compatible phones which lack the government-\ninstalled \"back door.\"  The strategy Brad describes will only work as long\nas the only way to get compatible phones is to have ones with the government\nchips.\n\n(It would be nice, from the point of view of personal privacy, if Brad\nturns out to be right.  As long as people still have the power to provide\ntheir own encryption in place of or in addition to the Clipper, privacy\nis still possible.  But the wording of several passages in the announcement\nmakes me doubt whether this will turn out to be true.)\n\nHal Finney\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5445, "properties": {"category": "sci.crypt", "text": "From: jebright@magnus.acs.ohio-state.edu (James R Ebright)\nSubject: Re: WH proposal from Police point of view\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 34\n\nIn article <PMETZGER.93Apr19122105@snark.shearson.com> pmetzger@lehman.com writes:\n>\n>In article <strnlghtC5puor.704@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>\n>   There has been extensive discussion in the eff forum, for example, about\n>   inadmissible taps being used to develop information that could then lead to\n>   admissible evidence.  This might put a stop to such things, which must from\n>   time to time be simple fishing expeditions.\n>\n>Far more likely, these things will continue to be done no matter what\n>assurances we are given. \"Key Escrow\" is likely going to prove to be a\n>joke.\n\nI feel like Winston Churchill in 1941 :( ...... but,\nthe privacy Clipper will, TO THE EXTENT KEY ESCROW IS LEGITIMATE, stop\nmost of the abuse of wiretaps by local cops, company cops, angry husbands/\nwives, etc...  It is going to be hard for the keystone cops, the\nProctor&Gamble cops, etc. to bypass even a product as flawed as the ClipJob.\n\nNow I admit, I am hard pressed to find anything else good to say about it\nexcept that, if it actually takes off, someone will certainly come up with\na REAL crypto chip (pin compatable!) that we can buy... Unless, of course,\nBig Brother makes it illegal to have real crypto 'cause good honest law\nabiding citizens will be HAPPY to let the government listen to their\nevery word.... \"Me? Did I say THAT?\"\n\n        \"I am not a crook.\" - President Richard M. Nixon\n                              ^^^^^^^^^\n\n-- \n Information farming at...     For addr&phone: finger             A/~~\\A\n THE Ohio State University  jebright@magnus.acs.ohio-state.edu   ((0  0))____\n      Jim Ebright             e-mail: jre+@osu.edu                 \\  /      \\\n                                                                   (--)\\      \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5446, "properties": {"category": "misc.forsale", "text": "From: pcwood@astro.ocis.temple.edu (Paul Wood)\nSubject: Re: Forsale:  GENESIS GAMES\nOrganization: Temple University\nLines: 20\nNntp-Posting-Host: astro.ocis.temple.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nKelvin Williams (kwill@lunatix.uucp) wrote:\n\n: \tThese games are forsale (or trade):\n\n: \t\t\t* Sonic Hedgehog II (two copies)\n: \t\t\t  + manuals and cases ..\n: \t\t\t$25 each..\n: \t\t\t(brand new!)_\n\nHello, I am interested in Sonic II but when I send to the address below\nI get mail bounced back with \"Host unknow\" error.\n\n\n: \tPlease reply to : kwill@lunatix.UUCP \n: \t\t(subject: games)\n\n--\n\n                       -=( Paul Wood )=-\n              -=( pcwood@astro.ocis.temple.edu )=-\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5447, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ebosco@us.oracle.com (Eric Bosco)\nSubject: Help adding a SCSI Drive\nNntp-Posting-Host: monica.us.oracle.com\nReply-To: ebosco@us.oracle.com\nOrganization: Oracle Corp., Redwood Shores CA\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\nLines: 35\n\n\nI have a 486sx25 computer with a 105 Mg Seagate IDE drive and a controler  \nbuilt into the motherboard. I want to add a SCSI drive (a quantum prodrive  \n425F 425 MG formatted). I have no documentation at all and I need your  \nhelp!\n\nAs I understand it, here is the process of adding such a drive.  Could you  \nplease tell me if I'm right..\n\n1- Buy a SCSI contoler.  Which one? I know Adaptec is good, but they are  \nkind of expensive.  Are there any good boards in the $100 region? I want  \nit to be compatible with OS2 and Unix if possible.  Also, I have seen on  \nthe net that there are SCSI and SCSI2 drives. Is this true? Does the  \nadapter need to be the same as the drive? What type of drive is the  \nquantum?\n\n2- connect the drive to the adapter via a SCSI cable and the power cable.\nDo i have to worry about the power supply? I think I have 200 watts and  \nall I'm powering are two floppies and the seagate drive.\n\n3- Setup the BIOS to recognize the drive as the second drive.  What type  \nof drive is this? I don't have the numbers for this drive.\n\n4- Format and create partitions on the drive. Do I use format or fdisk? I  \nthink that IDE drives can't be low-level formatted. Is it the same with  \nSCSI? How exactly does fdisk work? I have a reduced msdos 5.0 manual  \n(clone obliges) and there is no mention of fdisk.  Ideally, I would want  \nthe drive partitioned in to two partitions D: and E: how do I do this?\n\nWell that seems to be all. Is there anythiing I'm forgetting? \nAny help is *really* appreciated, I'm lost...\n\n-Eric\n\nebosco@us.oracle.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5448, "properties": {"category": "rec.sport.hockey", "text": "From: steveg@cadkey.com (Steve Gallichio)\nSubject: The Most Average Player in the NHL\nOrganization: Cadkey, Inc.\nLines: 41\nNNTP-Posting-Host: access.digex.net\n\n\nAnd now, I interrupt your regularly scheduled news reading to bring you \nanother message sponsored by the Department of Really Mundane Statistics:\n\nI passed the final individual player stats posted here the other day through\na filter to average out games, goals, assists, points, and penalty minutes\nfor the mythical average NHL pro who played in the league this season. (Why?\nBecause it's Monday and I didn't feel like writing any REAL code...)\n\nAnyway, after I wiped out the 60-odd goalies in the list, I came up with:\n\nNHL average:\t\t55 GP      11 G      19 A      30 Pts      69 PIM\n\nThen I passed the list through a second time to come up with the players who\nhad the smallest percentage difference in each of the categories.\n\nMarty McInnis (NYI)\t56 GP (1%) 10 G (9%) 20 A (5%) 30 Pts (0%) 24 PIM (65%)\nIgor Kravchuk (EDM)\t55 GP (0%) 10 G (9%) 17 A (10%) 27 Pts (9%) 27 PIM (53%)\n\nThese two are close in games, goals, assists, and points, but are too far off\nin PIM. This leaves, as the most average player in the NHL:\n\nBobby Carpenter (WAS)\t65 GP (18%) 11 G (0%) 17 A (10%) 28 Pts (6%) 63 PIM (8%)\n\nWhat an honor.\n\nI also passed the list through with the goalies still included. Kravchuk and\nCarpenter were still in the top three, but Rob DiMaio came flying up from \nbehind to take the title:\n\nNHL average:\t\t53 GP      10 G      17 A      27 Pts      64 PIM\nIgor Kravchuk (EDM)     55 GP (3%) 10 G (0%) 17 A (0%) 27 Pts (0%) 27 PIM (50%)\nBobby Carpenter (WAS)   65 GP (22%) 11 G (10%) 17 A (0%) 28 Pts (3%) 63 PIM (1%)\nRob DiMaio (TB)\t\t54 GP (1%) 9 G (9%) 15 A (11%) 24 Pts (11%) 62 PIM (3%)\n\n\nIt's all really kind of underwhelming when you think about it.\n\n-SG\n\n\t    And now, back to our regularly scheduled programming...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5449, "properties": {"category": "comp.windows.x", "text": "From: rgasch@nl.oracle.com (Robert Gasch)\nSubject: Delayed Expose Events\nOrganization: Oracle Europe\nLines: 44\nX-Newsreader: TIN [version 1.1 PL8]\n\n\nI posted about this a while ago but without code excerpts noone was\nable to help me.\n\nThe problem is that main_win.win is doing fine, but when I create\ndetail_win.win, it does not receive it's initial expose events until\nmain_win.win receives an event. Here are the relevent calls:\n\nmain_win.win = XCreateSimpleWindow (mydisplay, DefaultRootWindow(mydisplay),\n                myhint.x, myhint.y, myhint.width, myhint.height,\n                main_win.line_thick, fg, bg);\nXSetStandardProperties(mydisplay, main_win.win, main_win.text,\n                main_win.text, None, argv, argc, &myhint);\nmain_win.gc = XCreateGC (mydisplay, main_win.win, 0, 0);\nXMapRaised (mydisplay, detail_win.win);\nXMapSubwindows (mydisplay, main_win.win);\nThe event mask for main_win is:\n        PPosition | PSize | StructureNotifyMask | ExposureMask| KeyPressMask |\n        EnterWindowMask | LeaveWindowMask;\nThe flags are\n        PPosition | PSize\n\nI then create detail_win.win with the following calls (hints has new values):\ndetail_win.win = XCreateSimpleWindow (mydisplay, DefaultRootWindow(mydisplay),\n                myhint.x, myhint.y, myhint.width, myhint.height,\n                detail_win.line_thick, fg, bg);\nXSetStandardProperties(mydisplay, main_win.win, detail_win.text,\n                detail_win.text, None, argv, argc, &myhint);\ndetail_win.gc = XCreateGC (mydisplay, detail_win.win, 0, 0);\nXMapRaised (mydisplay, detail_win.win);\nEvent Mask and flags are identical to main_win's flags and event mask.\n \nIf anybody has any idea why the initial expose events of detail_win.win\nare not received until main_win.win receives an event I'd love to hear\nfrom them. Other that that everything works great so there must be some\ndetail I'm overseeing.\n\nThanks for any tips\n---> Robert\nrgasch@nl.oracle.com\n\nPS: The same message was accidentally appended to the \"Expose Events\"\nthread. Sorry for any confusion caused.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5450, "properties": {"category": "rec.sport.hockey", "text": "From: seth@cbnewsh.cb.att.com (peter.r.clark..jr)\nSubject: Re: This year's biggest and worst (opinion)...\nOrganization: AT&T\nKeywords: NHL, awards\nLines: 34\n\nIn article <1993Apr5.221541.28537@alchemy.chem.utoronto.ca>, golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n> In article <C4zCII.Ftn@watserv1.uwaterloo.ca> smale@healthy.uwaterloo.ca (Bryan Smale) writes:\n> >\n> >                        Team           Biggest       Biggest\n> >Team:                   MVP:          Surprise:    Disappointment:\n> >-----------------------------------------------------------------------\n> >Philadelphia Flyers     Lindros/Recchi Fedyk/Galley  Eklund\n> \n> Fence-sitting...look at Philly's record with Eric and without...\n> there is no doubt.  Soderstrom is probably the biggest surprise.\n\nRe Eric: True, but fortunately we didn't get to find out what they would be\nlike without Recchi for 30 games.\n\nSoderstrom: Absolutely. 4 shutouts in 39 games for a rookie without a lot\nof defense in front of him. Runnerups to Galley and Fedyk who are scoring\na ton over their career best. But Galley thinks he's Paul Coffey (puts scoring\nahead of defending) and Fedyk has tailed off big time.\n\nEklund: Was a big question mark this year and was coming off injuries. 42\npoints in 49 games is not bad at all, and recently he's been a huge factor\nin the wins they've gotten. Eklund has never had a point a game season in\nhis career, his production is very typical for him. How does he qualify as\na disappointment? If anything he's a surprise.\n\nMy choice would be Roussel if I went strictly by what was expected of players,\nbut I never thought that he had what it takes to be a #1 goalie. My biggest\ndisappointment is Bill Dineen. I thought that he was going to be the perfect\ncoach for this young team, instead he's made too many bad moves and IMHO\nhas cost them enough games to keep them out of the playoffs this year. Any\ncoach that thinks putting Eric Lindros at the point on power plays is a\nbright idea needs to go back to coaching school.\n\npete clark jr - rsh FLYERS contact and mailing list owner\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5451, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Desertification of the Negev\nNf-ID: #N:cdp:1483500361:000:5123\nNf-From: cdp.UUCP!cpr    Apr 25 05:25:00 1993\nLines: 104\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Desertification of the Negev\n\n\nThe desertification of the arid Negev\n------------------------------------- by Moise Saltiel, I&P March\n1990\n\nI.      The Negev Bedouin Before and After 1948 II.     Jewish\nAgricultural Settlement in the Negev III.   Development of the\nNegev's Rural Population IV.    Economic Situation of Jewish\nSettlements in 1990 V.     Failure in Settling the Arava Valley\nVI.   Failure in Settling the Central Mountains VII.  Failure in\nMaking the Negev \"Bedouinenrein\" (Cleansing the Negev of Bedouins)\nVIII. Transforming Bedouin into Low-Paid Workers IX..    Failure\nin Settling the \"Development Towns\" X.      Jordan Water to the\nNegev: A Strategic Asset XI.     The Negev Becomes a Dumping\nGround XII.   The Dimona Nuclear Plant XIII.  The Negev as a\nMilitary Base XIV.  The Negev in the Year 2000\n\nJust after the creation of the State of Israel, the phrase \"the\nJewish pioneers will make the desert bloom\" was trumpeted\nthroughout the Western world. After the Six Day War in 1967, David\nBen-Gurion declared in a letter to Charles de Gaulle: \"It's by our\npioneering creation that we have transformed a poor and arid land\ninto a fertile land, created built-up areas, towns and villages in\nabandoned desert areas\".\n\nContrary to Ben-Gurion's assertion, it must be affirmed that\nduring the 26 years of the British mandate over Palestine and for\ncenturies previous, a productive human presence was to be found in\nall parts of the Negev desert - in the very arid hills and valleys\nof the southern Negev as well as in the more fertile north. These\nwere the Bedouin Arabs.\n\nThe real desertification of the Negev, mainly in the southern\npart, occurred after Israel's dispossession of the Bedouin's\ncultivated lands and pastures. Nowadays, the majority of the\n12,800 square-kilometer Negev, which represents 62 percent of the\nState of Israel (pre-1967 borders), has been desertified beyond\nrecognition. The main new occupiers of the formerly Bedouin Negev\nare the Israeli army; the Nature Reserves Authority, whose chief\nrole is to prevent Bedouin from roaming their former pasture\nlands; and vast industrial zones, including nuclear reactors and\ndumping grounds for chemical, nuclear and other wastes. Israeli\nJews in the Negev today cultivate less than half the surface area\ncultivated by the Bedouin before 1948, and there is no Jewish\npastoral activity.\n\nI. Agricultural and pastoral activities of the Negev Bedouin\nbefore and after 1948\n-------------------------------------------------- In 1942,\naccording to British mandatory statistics, the Beersheba\nsub-district (which corresponds more or less to Israel's Negev, or\nSouthern, district) had 52,000 inhabitants, almost all Bedouin\nArabs, who held 11,500 camels, 6,000 cows and oxen, 42,000 sheep\nand 22,000 goats.\n\nThe majority of the Bedouin lived a more or less sedentary life in\nthe north, where precipitation ranged between 200 and 350 mm per\nyear. In 1944 they cultivated about 200,000 hectares of the\nBeersheba district - i.e. 16 percent of its total area and *more\nthan double the area cultivated by the Negev's Jewish settlers\nafter 40 years of \"making the desert bloom\"*\n\nThe Bedouin had a very low crop yield - 350 to 400 kilograms of\nbarley per hectare during rainy years - and their farming\ntechniques were primitive, but production was based solely on\nanimal and human labor. It must also be underscored that animal\nproduction, although low, was based entirely on pasturing.\nProduction increased considerably during the rainy years and\ndiminished significantly during drought years. All Bedouin pasture\nanimals - goats, camels and sheep - had the ability to gain weight\nquickly over the relatively rainy winters and to withstand many\nwaterless days during the hot summers. These animals were the\nresult of a centuries-old process of natural selection in harsh\nlocal conditions.\n\nAfter the creation of the State of Israel, 80 percent of the Negev\nBedouin were expelled to the Sinai or to Southern Jordan. The\n10,000 who were allowed to remain were confined to a territory of\n40,000 hectares in a region were annual mean precipiation was 150\nmm - a quantity low enough to ensure a crop failure two years out\nof three. The rare water wells in the south and central Negev,\nspring of life in the desert, were cemented to prevent Bedouin\nshepherds from roaming.\n\nA few Bedouin shepherds were allowed to stay in the central Negev.\nBut after 1982, when the Sinai was returned to Egypt, these\nBedouin were also eliminated. At the same time, strong pressure\nwas applied on the Bedouin to abandon cultivation of their fields\nin order that the land could be transferred to the army.\n\nNo reliable statistics exist concerning the amount of land held\ntoday by Negev Bedouin. It is a known fact that a large part of\nthe 40,000 hectares they cultivated in the 1950s has been seized\nby the Israeli authorities. Indeed, most of the Bedouin are now\nconfined to seven \"development towns\", or *sowetos*, established\nfor them.\n\n(the rest of the article is available from Elias Davidsson, email:\nelias@ismennt.is)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5452, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: TDR plug-in\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 15\n\nIf anyone out there has an HP180 series scope or mainframe, I\nhave the TDR plug in (the 1810, I believe) for it and have no need\nto keep it. Interested? E-mail me.\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5453, "properties": {"category": "sci.space", "text": "From: chico@ccsun.unicamp.br (Francisco da Fonseca Rodrigues)\nSubject: New planet/Kuiper object found?\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 28\n\n\n\tTonigth a TV journal here in Brasil announced that an object,\nbeyond Pluto's orbit, was found by an observatory at Hawaii. They\nnamed the object Karla.\n\n\tThe program said the object wasn't a gaseous giant planet, and\nshould be composed by rocks and ices.\n\n\tCan someone confirm these information? Could this object be a\nnew planet or a Kuiper object?\n\n\tThanks in advance.\n\n\tFrancisco.\n\n-----------------------=====================================----the stars,----\n|    ._,               | Francisco da Fonseca Rodrigues    |       o   o     |\n|  ,_| |._/\\           |                                   |     o         o |\n|  |       |o/^^~-._   | COTUCA-Colegio Tecnico da UNICAMP |   o             |\n|/-'    BRASIL      | ~|                                   |  o      o o     |\n|\\__/|_            /'  | Depto de Processamento de Dados   |  o    o  o  o   |\n|      \\__  Cps   | .  |                                   |   o  o  o    o  |\n|        |   * __/'    | InterNet : chico@ccsun.unicamp.br |     o o      o  |\n|        >   /'        |            cotuca@ccvax.unicamp.br|             o   |\n|      /'   /'         | Fone/Fax : 55-0192-32-9519        | o         o     |\n|     ~~^\\/'           | Campinas - SP - Brasil            |    o   o        |\n-----------------------=====================================----like dust.----\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5454, "properties": {"category": "rec.sport.hockey", "text": "From: mmb@lamar.ColoState.EDU (Michael Burger)\nSubject: More TV Info\nDistribution: na\nNntp-Posting-Host: lamar.acns.colostate.edu\nOrganization: Colorado State University, Fort Collins, CO  80523\nLines: 36\n\nUnited States Coverage:\nSunday April 18\n  N.J./N.Y.I. at Pittsburgh - 1:00 EDT to Eastern Time Zone\n  ABC - Gary Thorne and Bill Clement\n\n  St. Louis at Chicago - 12:00 CDT and 11:00 MDT - to Central/Mountain Zones\n  ABC - Mike Emerick and Jim Schoenfeld\n\n  Los Angeles at Calgary - 12:00 PDT and 11:00 ADT - to Pacific/Alaskan Zones\n  ABC - Al Michaels and John Davidson\n\nTuesday, April 20\n  N.J./N.Y.I. at Pittsburgh - 7:30 EDT Nationwide\n  ESPN - Gary Thorne and Bill Clement\n\nThursday, April 22 and Saturday April 24\n  To Be Announced - 7:30 EDT Nationwide\n  ESPN - To Be Announced\n\n\nCanadian Coverage:\n\nSunday, April 18\n  Buffalo at Boston - 7:30 EDT Nationwide\n  TSN - ???\n\nTuesday, April 20\n  N.J.D./N.Y. at Pittsburgh - 7:30 EDT Nationwide\n  TSN - ???\n\nWednesday, April 21\n  St. Louis at Chicago - 8:30 EDT Nationwide\n  TSN - ???\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5455, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: badry@cs.UAlberta.CA (Badry Jason Theodore)\nSubject: Chaining IDE drives\nSummary: Trouble with Master/Slave drives\nNntp-Posting-Host: cab009.cs.ualberta.ca\nOrganization: University Of Alberta, Edmonton Canada\nLines: 16\n\nHi.  I am trying to set up a Conner 3184 and a Quantum 80AT drive.  I have\nthe conner set to the master, and the quantum set to the slave (doesn't work\nthe other way around).  I am able to access both drives if I boot from a \nfloppy, but the drives will not boot themselves.  I am running MSDOS 6, and\nhave the Conner partitioned as Primary Dos, and is formatted with system\nfiles.  I have tried all different types of setups, and even changed IDE\ncontroller cards.  If I boot from a floppy, everything works great (except\nthe booting part :)).  The system doesn't report an error message or anything,\njust hangs there.  Does anyone have any suggestions, or has somebody else\nrun into a similar problem?  I was thinking that I might have to update the bios\non one of the drives (is this possible?).  Any suggestions/answers would be\ngreatly appreciated.  Please reply to:\n\n\tJason Badry\n\tbadry@cs.ualberta.ca\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5456, "properties": {"category": "comp.sys.mac.hardware", "text": "From: klepa@leotech.mv.com (Kristen Lepa)\nSubject: New Duo Dock With Process\nLines: 15\n\n\n Seth> I fail to see any advantage whatsoever with this kind of\nset-up.\n Seth> What a DUMB idea.\n\nSo don't buy one.\n\nKristen\n\n\n This copy of Freddie 1.2.5 is being evaluated.\n\n\n * Origin: Leo Technology (603)432-2517/432-0922 (HST/V32)\n(1:132/189)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5457, "properties": {"category": "alt.atheism", "text": "From: timmbake@mcl.ucsb.edu (Bake Timmons)\nSubject: Re: Amusing atheists and agnostics\nLines: 19\n\nnancyo@fraser.sfu.ca (Nancy Patricia O'Connor) writes:\n\n>timmbake@mcl.ucsb.edu (Bake Timmons) writes:\n\n>>Rule #4:  Don't mix apples with oranges.  How can you say that the\n>>extermination by the Mongols was worse than Stalin?  Khan conquered people\n>>unsympathetic to his cause.  That was atrocious.  But Stalin killed millions of\n>>his own people who loved and worshipped _him_ and his atheist state!!  How can\n>>anyone be worse than that?\n\n>You're right.  And David Koresh claimed to be a Christian.\n\nYup.  I can hear the _millions_ cheering for DK right now!  Josef Stalin eat\nyour heart out!  :)\n--\nBake Timmons, III\n\n-- \"...there's nothing higher, stronger, more wholesome and more useful in life\nthan some good memory...\" -- Alyosha in Brothers Karamazov (Dostoevsky)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5458, "properties": {"category": "alt.atheism", "text": "From: kilman2y@fiu.edu (Yevgeny (Gene) Kilman)\nSubject: Re: USAToday ad (\"family values\")\nOrganization: Florida International University, Miami\nLines: 15\n\nIn article <C4rzz2.47J@unix.portal.com> danb@shell.portal.com (Dan E Babcock) writes:\n>There was a funny ad in USAToday from \"American Family Association\".\n>I'll post a few choice parts for your enjoyment (all emphases is in\n>the ad; I'm not adding anything). All the typos are mine. :)\n\n[Dan's article deleted]\n\nI found the same add in our local Sunday newspaper.\nThe add was placed in the ..... cartoon section!\nThe perfect place for it ! :-)\n\nY.K.\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5459, "properties": {"category": "rec.sport.baseball", "text": "From: CROSEN1@ua1vm.ua.edu (Charles Rosen)\nSubject: Lots of runs\nNntp-Posting-Host: ua1vm.ua.edu\nOrganization: The University of Alabama, Tuscaloosa\nLines: 4\n\nI have noticed that this year has had a lot of high scoring games (at least the\nNL has).  I believe one reason are the expansion teams.  Any thoughts?\n \nCharles\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.260+0000", "event": "documents", "entityId": 5460, "properties": {"category": "sci.crypt", "text": "From: duck@nuustak.csir.co.za (Paul Ducklin)\nSubject: Re: Do we need the clipper for cheap security?\nOrganization: CSIR, South AFrica\nLines: 27\nNNTP-Posting-Host: nuustak.csir.co.za\nX-Disclaimer: None of the opions expressed herein are the official\nX-Disclaimer: opinions of the CSIR or any of its subsidiaries.\nX-Disclaimer: **  So don't freak out at _us_ about anything  **\n\n\ngtoal@gtoal.com (Graham Toal) writes:\n\n>Can someone tell me if hardware compression is or is not needed to run\n>digital speech down 14.4K?  I think it is; I've heard it's not.  Lets\n>say 8 bit samples.  Would *raw* data at the corresponding sampling rate\n>be usable?  If not, how fancy does the compression need to be?\n\nIt's all easy with a DSP. The Olivetti Quaderno, for example [*great* 1kg\nsubnotebook/palmtop PC -- sorry for the plug, folks, but Olivetti don't\nseem to be doing a good job marketing it themselves :-)] includes sound\ndigitisation hardware; they provide vocoders for their DSP which produce\nvarous bit-rates. There's one which gives pretty acceptable voice\nquality at 13Kbit/sec, just right for a V.32bis modem.\n\nTheir DSP can play and record at the same time, too -- so you wouldn't\nneed to play \"two-way-radio\". You can also download code to the DSP\nsubunit, though you'd need a software development kit for the DSP in \nquestion [dunno which it is...] if you wanted to produce your own \nvocoder for, say, V.32 speeds.\n\nPaul\n\n    /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\\n    \\  Paul Ducklin                         duck@nuustak.csir.co.za  /\n    /  CSIR Computer Virus Lab + Box 395 + Pretoria + 0001 S Africa  \\\n    \\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5461, "properties": {"category": "comp.sys.mac.hardware", "text": "From: \"Altan J. Stalker\" <astalker@nickel.ucs.indiana.edu>\nSubject: SE/30 Hard Drive Problem\nContent-Type: text/plain; charset=US-ASCII\nContent-Transfer-Encoding: 7bit\nOrganization: Indiana University\nMime-Version: 1.0\nContent-Length: 1161      \nLines: 33\n\n\nI have an SE/30 with a 80 meg HD which dates back to April 1989.  When I\noriginally purchased it, I experienced the failure to boot problem.  This\nwas fixed soon after by a ROM upgrade on the hard drive.\n\nLately a similar problem has been occuring.  When the computer is\npowered on the HD light flashes a few times and then I am given\nthe \"no disk to boot from\" icon.  However, upon turing the\ncomputer off and on again the drive ALWAYS boots up just fine.  \nFurthermore, if instead of turning the power on and off I press the reboot \nbutton the same problem occurs.  But, as I said, turning the power\noff and on always works.\n\nThis problem is different from the 1989 boot problem in that before\nit often required several power off and ons to get it to boot.\n\nDoes anybody have any suggestions as to what the problem is or how\nit can be fixed?\n\nI'm wondering if it's getting old and requires more time to \n\"come up to speed\" now.  Is there a PRAM or SCSI setting that\nallows me to tell the computer to wait a little longer before \ntrying to access the HD?\n\nThanks!\n\n\nAltan J. Stalker\nastalker@nickel.ucs.indiana.edu\nIndiana University\nComputer Science Dept.\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5462, "properties": {"category": "sci.space", "text": "From: palmer@cco.caltech.edu (David M. Palmer)\nSubject: Re: Boom! Whoosh......\nOrganization: California Institute of Technology, Pasadena\nLines: 39\nNNTP-Posting-Host: alumni.caltech.edu\n\nmatthew@phantom.gatech.edu (Matthew DeLuca) writes:\n\n>In article <1993Apr21.024423.29182@mnemosyne.cs.du.edu> wdwells@nyx.cs.du.edu (David \"Fuzzy\" Wells) writes:\n\n>>I hear <insert favorite rumor here> that it will supposedly coincide\n>>with the Atlanta Olympics. \n\n>Even worse, the city of Atlanta has a proposal before it to rent space on this\n>orbiting billboard.  Considering the caliber of people running this city, \n>there's no telling what we're going to have leering down at us from orbit.\n\nI would just like to point out that it is much easier to place an\nobject at orbital altitude than it is to place it with orbital\nvelocity.  For a target 300 km above the surface of Earth,\nyou need a delta-v of 2.5 km/s.  Assuming that rockets with specific\nimpulses of 300 seconds are easy to produce, a rocket with a dry\nweight of 50 kg would require only about 65 kg of fuel+oxidizer.\nA small dispersal charge embedded in about 20 kg of sand or\nbirdshot (depending on the nature of the structure) would be\nthe payload.  I am sure the whole project is well within\nthe capability of the amateur rocketry community.\n\nIt sounds like a good Science Fair project--'Reduction\nof Light Pollution Through Applied Ballistics'.\nOr, it could be part of the Challenge Prize being discussed\nhere: $1 billion for the first person to spend 1 year\non the moon, $1 million for the first erradication of\nan orbital eyesore/CCD burner.  I wouldpledge $1000\nfor the first person to bring it down, and I am sure\nthere are at least 999 other astronomers, nature lovers,\nor just plain people of good taste who would do likewise.\n\nOf course, a  Gerald Bull solution might be simpler.\n(Either the solution Gerald Bull would apply--the use\nof a large caliber gun; or the solution which was applied\nto Gerald Bull--the use of a small caliber gun.)\n-- \n\t\tDavid M. Palmer\t\tpalmer@alumni.caltech.edu\n\t\t\t\t\tpalmer@tgrs.gsfc.nasa.gov\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5463, "properties": {"category": "comp.graphics", "text": "From: katkere@krusty.eecs.umich.edu (Arun Katkere)\nSubject: Re: cylinder and ray\nReply-To: katkere@engin.umich.edu\nOrganization: University of Michigan EECS Dept., Ann Arbor, MI\nLines: 19\n\nIn article <1qc1fgINNbv4@darkstar.UCSC.EDU>, koehler@secs.ucsc.edu writes:\n|> I would be most thrilled if some kind person could help me with the following\n|> Given a cylinder in 3D -defined as a line segment between two points and\n|> a radius (e.g. Sx,Sy,Sz to Ex,Ey,Ez and r), what is the easiest (and not\n|> too expensive) way to find if a ray -defined as another line through two\n|> points -cuts through this cylinder and if so where? \n\n|> I think the test for touching is rather simple: if the closest approach\n|> of the two lines is less than r, then the ray does penetrate the cylinder.\n\nNope, this won't work for a cylinder. You can have a line arbitrarily close\nto the the cylinder backbone, and yet not intersect it. The test works for a\npillbox, though. (a cylinder with two hemispheres attached at the ends.)\n\n|> Thanks,\n|> \tRyan \t(koehler@secs.ucsc.edu)\n\n-arun\n-- \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5464, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ferch@ucs.ubc.ca (Les Ferch)\nSubject: Re: LCD Overhead Projectors\nOrganization: The University of British Columbia\nLines: 25\nDistribution: na\nNNTP-Posting-Host: swiss.ucs.ubc.ca\n\nIn <1993Apr15.114208.2945@ug.eds.com> jan@camhpp12.mdcbbs.com (Jan Vandenbrande) writes:\n\n>I am looking for one of those color LCD screens you\n>place on an overhead projector and control the presentation\n>with a Mac.\n\n>Can you recommend me a particular brand?\n>What price are we talking about?\n\nFor a good display, you *must* get an active matrix panel and a *very*\nbright overhead projector designed to be used with an LCD panel (i.e.\nstage must not get too hot). I tried out a Proxima Ovation unit and liked\nit, but I needed a brighter projector (I used it with a 3M 920). It is\nalso too expensive for what you get, IMHO. Prices of active matrix panels\nare rumoured to drop substantially sometime this year (something to do\nwith tarrifs being lifted I think). \n\nIn Canadian dollars, the Proxima Ovation models ranged in price from about\n$5000 to $7000 and a good overhead projector about $1000 to $1500. For\nthat kind of money, you can get a brighter image from a three beam\nprojector, but sacrifice portability.\n\nOh yes, proper room lighting is extremely important, especially if you\nwant your audience to have enough light to read handouts and not have that\nlight wash out your display at the front of the room. Tricky to get right. \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5465, "properties": {"category": "soc.religion.christian", "text": "From: daveshao@leland.stanford.edu (David Shao)\nSubject: Divorce\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 72\n\nI deleted much of the following article in order to discuss the \nspecific issue of whether it is acceptable to divorce.  \n\nIn article <May.7.01.10.03.1993.14583@athos.rutgers.edu> crs@carson.u.washington.edu (Cliff Slaughterbeck) writes:\n>\n>Along the way, she was married, happily, to a wonderful and\n>supportive husband and gave birth to two sons.  Still, everything was not\n>perfect for Jane, since she could never open up the deepest part of her\n>soul to her husband.  She always found that she could be much closer to\n>her women friends than to her husband, as good and loing as a husband as\n>he might be.  She struggled very much with this until at the age of 38, she\n>decided that she was a lesbian.  When she came home to announce this \n>understanding of herself, her husband told her that he had come to the same\n>understanding several years before and was waiting for her to come to that\n>realization in her own time.  Her children ages 9 and 11 at the time were\n>also extremely supportive of her.  As the youngest put it, \"that just \n>means that you love people very much.\"  Jane and her husband agreed to\n>divorce but remain friends and still consider each other as part of the\n>extended family to this day.\n\n>One of the interesting things that Jane said in this whole discussion was\n>\"Homosexuality is not about what goes on in the bedroom.\"  She found that\n>she was much more able to have a deep, committed relationship with a woman\n>than a man.  Sex, in her mind, is only a part of the whole relationship.\n>The key thing is how one interconnects with other people.  She made a\n>specific point to say that it was not that she had never met a good man,\n>since she was married to a wonderful man for a dozen years.  (Take a few\n>seconds and honestly ponder that thought and it's implications!!!)\n\nI have thought about the implications, and it is scary.  \n\nWe have a whole generation of families broken up because some men have \ndecided that is is okay to leave their wives and children for the\nthrill of a younger, more attractive woman.  If we accept that it is\nlegitimate for Jane to have divorced, how can we not accept anyone's\ndecision to divorce because he has found someone with whom he can\nhave a more \"deep, committed relationship.\"\n\nMarriage is not a state of being, it is a mutual journey in life.\nLove is not a passive feeling, it must be actively willed.\n\nIs it acceptable for an older executive to dump his wife of many \nyears who stayed home to care for the children because he\ncan't be happy sexually unless he is with a beautiful\nyoung blonde?  The real solution for both in the couple to\nmake a renewed effort.  \n\nHold fast to the faith.  Has not the Lord repeatedly compared His\nrelation to His people as a faithful and enduring husband?  We\nlearn something very deep and very mystical when we marry and\nremain faithful through times of trial.\n\nMy spouse has a brain tumor that has left her partially paralyzed.\nIf it were to resume growing (it is in remission, thanks be to God!)\nthen perhaps the time would come when we could not have sexual\nrelations.  That's life...the Lord would certainly not give me\npermission to seek someone else to satisfy my \"needs.\"  \n\nThe idea that it is alright to divorce if a couple \"grows apart\"\nseems to me to lead to such a monstrous destruction of the meaning\nof marriage that I feel we must make every effort to avoid any hint\nof compromise.  We have become so petty and small-minded that\nsome husbands are threatening to divorce their wives unless the\nwives lose weight!\n\nI praise the Lord for guiding me to marry my wife.  She married me\nanyway despite the possibility that I could have a terrible illness.\nAnd it turned out that she was the one with the brain tumor, but\nhad I known I wouldn't have cared either.  And maybe I'll be in\na car accident tomorrow and become paralyzed from the neck down.\nA married couple should deal with these situations with the help\nof the Lord, not divorce and run away from them.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5466, "properties": {"category": "rec.sport.hockey", "text": "From: stamber@rainbow.ecn.purdue.edu (Kevin L. Stamber)\nSubject: Re: Radio stations\nOrganization: Purdue University Engineering Computer Network\nLines: 31\n\nIn article <ragraca.735252641@vela.acs.oakland.edu>, ragraca@vela.acs.oakland.edu (Randy A. Graca) writes:\n> greanias@texas.mitre.org (Steve Greanias) writes:\n> \n> \n> \n> >\tI do not have cable and on the nights the Caps don't play, I\n> >would like to tune in other games.  Does anyone have a list of\n> >the radio stations which broadcast the games for the NHL teams?\n> \n> \n> >\t\t\tThanks in advance\n> \n> I can give you a couple.  In Detroit, WJR (760) will be broadcasting\n> at least the first couple of games of the Wings-Toronto series, and \n> since they broadcast at 50000 Watts, you may be able to pick it up\n> after dark where you are at.  The Pittsburgh Penguins games used to be\n> broadcast on KDKA 1020, but I don't know whether they will be pre-empted\n> by baseball (and moved to another station) or not.  You can try those\n> if the local baseball teams aren't playing at the same time, anyway.\n> \n> --Randy\n> \n\nKDKA has first rights to Pirates games, and will split probably 50-50\nin conflicts; for Penguins games which are preempted, check out \n102.5 WDVE FM (that's right, DVE).  It is also 50,000 watts.\n\nKevin L. Stamber\nPurdue University\nno funny .sig today\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5467, "properties": {"category": "talk.politics.misc", "text": "From: ervan@rice.edu (Ervan Darnell)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nOriginator: ervan@dawn.cs.rice.edu\nReply-To: ervan@rice.edu (Ervan Darnell)\nOrganization: Rice University\nLines: 35\n\n\nIn article <1993Apr18.172531.10946@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes:\n|> In article <16APR199317110543@rigel.tamu.edu> gmw0622@rigel.tamu.edu (Mr. Grinch) writes:\n|> >In article <1993Apr15.170731.8797@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes...\n|> [.....]\n|> Of course, one again faces the question of how one circumscribes government\n|> power (and keeps it circumscribed) in a complex society when it is in the \n|> interest of neither capitalists nor consumers to refrain from using \n|> government power for their own ends.  But apart from that little \n|> conundrum...\n\n\nThis is a difficult problem for which there is no obviously good\nsolution.  One approach is simply to try and move political opinion\nand hope a new more libertarian consensus lasts for a while.  Another\napproach is to try and amend the constitution.  The original\nconstitution restrained the U.S. government from economic intervention\nfor 100 to 150 years, depending on just how one wants to count it.\nThe First Amendment, though weakened in many ways, still restrains\ngovernment (particularly state and local), even though on many\nparticular issues the majority is in favor of censorship.  I think\nlibertarians would be happy with another 100 years of restraint via\nan amendment or two (not that I think that's likely to happen).\n\nNot necessarily Mr. Hendricks, but other posters seem to see this as\na problem with libertarianism, that it cannot be stable.  That might\nbe true, but it is not an objection to libertarianism per se.  If\na libertarian political consensus forms for a decade or two and then\nfalls apart again, we would just be back where we are now.  This is\nunlike the case for socialism where a socialist consensus that held\nfor a while and then fell apart would not leave us where we are now,\nbut instead with lots of bureaucracy that would be hard to get rid of,\nif not tyranny as the end condition of a strong socialist consensus.\n-- \nErvan Darnell                                        ervan@cs.rice.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5468, "properties": {"category": "rec.autos", "text": "From: rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter)\nSubject: Thinking About Buying Intrepid - Good or Bad Idea?\nOrganization: Boeing Computer Services\nLines: 7\n\nI'm thinking of buying a new Dodge Intrepid - Has anyone had any\nexperiences that they'd like to share?\n\nThanks.\n\nBobC\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5469, "properties": {"category": "rec.motorcycles", "text": "From: bowmanj@csn.org (Jerry Bowman)\nSubject: Re: Women's Jackets? (was Ed must be a Daemon Child!!)\nNntp-Posting-Host: fred.colorado.edu\nOrganization: University of Colorado Boulder, OCS\nDistribution: usa\nLines: 48\n\nIn article <bethdC5Juzw.18F@netcom.com> bethd@netcom.com (Beth Dixon) writes:\n>In article <1993Apr14.141637.20071@mnemosyne.cs.du.edu> jhensley@nyx.cs.du.edu (John Hensley) writes:\n>>Beth Dixon (bethd@netcom.com) wrote:\n>>: new Duc 750SS doesn't, so I'll have to go back to carrying my lipstick\n>>: in my jacket pocket.  Life is _so_ hard.  :-)\n>>\n>>My wife is looking for a jacket, and most of the men's styles she's tried\n>>don't fit too well. If they fit the shoulders and arms, they're too\n>>tight across the chest, or something like that. Anyone have any \n>>suggestions? I'm assuming that the V-Pilot, in addition to its handy\n>>storage facilities, is a pretty decent fit. Is there any company that\n>>makes a reasonable line of women's motorcycling stuff? More importantly,\n>>does anyone in Boulder or Denver know of a shop that bothers carrying any?\n>\n>I was very lucky I found a jacket I liked that actually _fits_.\n>HG makes the v-pilot jackets, mine is a very similar style made\n>by Just Leather in San Jose. I bought one of the last two they\n>ever made.\n>\n>Finding decent womens motorcycling gear is not easy.  There is a lot\n>of stuff out there that's fringed everywhere, made of fashion leather,\n>made to fit men, etc.  I don't know of a shop in your area.  There\n>are some women rider friendly places in the San Francisco/San Jose\n>area, but I don't recommend buying clothing mail order.  Too hard\n>to tell if it'll fit.  Bates custom makes leathers.  You might want\n>to call them (they're in L.A.) and get a cost estimate for the type\n>of jacket your wife is interested in.  Large manufacturers like\n>BMW and H.G. sell women's lines of clothing of decent quality, but\n>fit is iffy.\n>\n>A while ago, Noemi and Lisa Sieverts were talking about starting\n>a business doing just this sort of thing.  Don't know what they\n>finally decided.\n>\n>Beth\n        Seems to me that Johns H.D. in Ft Collins used to carry some\n    honest to god womens garb.>\n>=================================================================\n>Beth [The One True Beth] Dixon                   bethd@netcom.com\n>1981 Yamaha SR250 \"Excitable Girl\"                      DoD #0384\n>1979 Yamaha SR500 \"Spike the Garage Rat\"             FSSNOC #1843\n>1992 Ducati 750SS                                     AMA #631903\n>1963 Ducati 250 Monza -- restoration project         1KQSPT = 1.8\n>\"I can keep a handle on anything just this side of deranged.\"\n>                                                        -- ZZ Top\n>=================================================================\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5470, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: div. and conf. names\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nDistribution: na\nLines: 63\n\nIn <C5pDGI.LJL@news.cso.uiuc.edu> epritcha@s.psych.uiuc.edu ( Evan Pritchard) writes:\n\n>\tI think that you are incorrect, Roger.  Patrick,\n>Smythe and Adams all played or coached in the league before becoming\n>front office types.  Hence, they did help build the league, although\n>they were not great players themselves.  \n\nPunch Imlach's contributions as a coach and GM were far greater than\nthose of the above combined.  Should we name a division or trophy after\nhim?  Smythe and Norris and the bunch were honoured purely because they\nwere powerful owners.  As owners they certainly did help to build the\nleague but whether they developed the game is another question altogether.\nAre we going to honour those who contributed to the league's evolution\nor are we going to honour those who contributed to the glory of the \nsport itself?   \n\n>\tI agree that a name is a name is a name, and if some people\n>have trouble with names that are not easily processed by the fans,\n>then changing them to names that are more easily processed seems like\n>a reasonable idea.  If we can get people in the (arena) door by being\n>uncomplicated, then let's do so.  Once we have them, they will realize\n>what a great game hockey is, and we can then teach them something\n>abotu the history of the game.  \n\nI can't disagree with you here.\n\n>>The history of the names can be put rather succinctly.  All of the aforemen-\n>>tioned used the game of hockey to make money.  Can you imagine a Pocklington\n>>division?  A Ballard division?  Or how about a Green division?\n\n>\tNo, I would not want to see a Ballard division.  But to say\n>that these owners are assholes, hence all NHL management people are\n>assholes would be fallacious.  Conn Smythe, for example, was a classy\n>individual (from what I have heard). \n\nWhat have you heard?  The Major was the *definitive* little asshole!  He\noriginated the phrase \"if you can't beat 'em in the alley you can't beat\n'em on the ice.\"  That was his idea of hockey.  Do you think, by chance,\nthat Don Cherry is a classy individual?\n\n>\tAlso, isn't the point of \"professional\" hockey to make money\n>for all those involved, which would include the players.  What I think\n>you might be saying is that the players have not made as much money as\n>should have been their due, and it is the players that are what make\n>the game great not the people who put them on the ice, so naming\n>division after management people rather than players is adding insult\n>(in the form of lesser recognition) to injury (less money than was\n>deserved).   \n\nThe money issue is irrelevant to the point that we would agree on, and\nthat is: \"it is the players that are what make the game great and not the\npeople who put them on the ice\"\n\nExactly true.  Naming divisions and trophies after Smythe and the bunch\nis the same kind of nepotism that put Stein in the hall of fame.  I have\nalways thought that this was nonsense.\n\n\n-- \n\ncordially, as always,                      maynard@ramsey.cs.laurentian.ca \n                                           \"So many morons...\nrm                                                   ...and so little time.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5471, "properties": {"category": "talk.politics.misc", "text": "From: blh@uiboise.idbsu.edu (Broward L. Horne)\nSubject: Clinton's Wiretapping Initiative \nX-Received: by usenet.pa.dec.com; id AA05890; Fri, 16 Apr 93 11:05:06 -0700\nX-Received: by inet-gw-2.pa.dec.com; id AA23713; Fri, 16 Apr 93 11:03:42 -0700\nX-Received: by uiboise.idbsu.edu\n\t(16.6/16.2) id AA29234; Thu, 15 Apr 93 13:23:52 -0600\nX-To: talk.politics.misc.usenet\nX-Cc: alt.politics.clinton.usenet\nX-Mailer: Elm [revision: 66.25]\nLines: 19\n\n\n\tIf you look through this newsgroup, you should be \n\table to find Clinton's proposed \"Wiretapping\" Initiative\n\tfor our computer networks and telephone systems.\n\n\tThis 'initiative\" has been up before Congress for at least\n\tthe past 6 months, in the guise of the \"FBI Wiretapping\"\n\tbill.\n\n\tI strongly urge you to begin considering your future.\n\n\tI strongly urge you to get your application for a passport\n\tin the mail soon.\n\n\tI strongly urge you to consider moving any savings you \n\thave overseas, into protected bank accounts, while \n\tyou are still able.\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5472, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Nicknames\nOrganization: Cookamunga Tourist Bureau\nLines: 21\n\nIn article <1993Apr18.231914.143616@zeus.calpoly.edu>,\njmunch@hertz.elee.calpoly.edu (John Munch) wrote:\n> >Mathew \"FAQ\" can't remember his last name\n> >Keith \"Lie Tally .sig\" Ryan\n> >Kent \"Finn-tastic\" Sandvick\n> >Cindy \"Popsicle Toes\" Kandolf\n> >Jim \"Face .sig\" Tims\n> >Simon \"Clip-that-theist\" Clippendale\n> >Umar \"Reasonable\" Khan\n> >Rob \"Argue with G-d\" Strom\n> >Dave \"Buckminster\" Fuller\n> >Maddi \"Never a useful post\" Hausmann\n> \n> Hey, what about an affectionate nickname for me?\n\nYou could take my wrongly spelled surname :-).\n\nCheers,\nKent Sandvik\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5473, "properties": {"category": "sci.electronics", "text": "From: scst83@csc.liv.ac.uk (Mr. C.D. Smith)\nSubject: Voltage Multiplier Problem.\nOrganization: Computer Science, Liverpool University\nLines: 53\nNntp-Posting-Host: goyt.csc.liv.ac.uk\n\nHi,\n\n   I've just built a valve preamp and use a diode/capacitor\nvoltage multiplier to step the 12vAC supply voltage up to approx \n260vDV. As the load resistance increases, the RC constant decreases\nand hence the output voltage drops. I need as high an output\nvoltage as possible. (about 260v).\n  The circuit consists of seven voltage multiplier stages\n(ie 14 diodes and 14 capacitors) each capacitor develops about 38v\nacross them, and I take the output from across seven capacitors=260v.\n  Each capacitor is 100mfd at 68v.\n If I increase each of the capacitors rating (220-470mfd), that will\nincrease the RC constant, and hence alleviate some of the problem.\nThese capacitors are going to be a little expensive as I need 14 of\nthem, So:\n\n1. What would happen if I connected a 470mfd at 400v capacitor in parallel \nwith the output (and hence in parallel with the seven 100mfd capacitors)?\n  Will it, as I assume, increase the C in circuit and hence increase\nthe RC time constant? If it does, and my output voltage becomes more\nstable by doing this, then I will have killed two birds with one stone...\nas I am experiencing some 50Hz ripple (and hence amp hum), and this new\ncapacitor will 'smooth' this out.\n\nand\n2. Can anyone recomend a suitable value for an inductor (choke) to\nbe placed in the output line of the power supply to filter out\nthe 50Hz mains hum. Lowest resistance possible !\n\n  I've not got my preamp with me at the moment because it is TOO MUCH\nof a distraction.... (I'm at university and I've got to get my \ndissertation finished in two weeks !!!!!!!) hence I'm mailing not\nplaying with my solderoing iron (it'll be cheaper too in the long\nrun... especially if 14 new large capacitors don't work as planned!)\n\nEmail please.... Can't always read the net.....\n\nThanks in advance..\n\n\nChris ;-)\n\n  +====================================================================+\n  |Name : Mr Chris Smith       |     Twang on that 'ole guitar !       |\n  |Addrs: scst83@uk.ac.liv.csc |                                       |\n  |Uni  : Liverpool University |Quest: To build more and more hardware |\n  |Dgree: Computer Science     |                                       |\n  +====================================================================+\n\n \"What ever the sun may be, it is certainly not a ball of flaming gas!\"\n  -- D.H. Lawrence.\n\n * All views expressed are my own, and reflect that of private thought. *\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5474, "properties": {"category": "sci.space", "text": "From: MUNIZB%RWTMS2.decnet@rockwell.com (\"RWTMS2::MUNIZB\")\nSubject: How do they ignite the SSME?\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 21\n\non Date: Sat, 3 Apr 1993 12:38:50 GMT, Paul Dietz <dietz@cs.rochester.edu>\nwrites:\n\n/in essence, holding a match under the nozzle, is just *nuts*.  One\n/thing you absolutely must do in such an engine is to guarantee that\n/the propellants ignite as soon as they mix, within milliseconds.  To\n/do otherwise is to fill your engine with a high explosive mixture\n/which, when it finally does ignite, blows everything to hell.\n\nDefinitely! In one of the reports of an early test conducted by Rocketdyne at \ntheir Santa Susanna Field Lab (\"the Hill\" above the San Fernando and Simi \nValleys), the result of a hung start was described as \"structural failure\" of \nthe combustion chamber.  The inspection picture showed pumps with nothing below\n, the CC had vaporized!  This was described in a class I took as a \"typical\nengineering understatement\" :-)\n\nDisclaimer: Opinions stated are solely my own (unless I change my mind).\nBen Muniz     MUNIZB%RWTMS2.decnet@consrt.rockwell.com    w(818)586-3578\nSpace Station Freedom:Rocketdyne/Rockwell:Structural Loads and Dynamics\n   \"Man will not fly for fifty years\": Wilbur to Orville Wright, 1901\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5475, "properties": {"category": "comp.graphics", "text": "From: geoffrey@cosc.canterbury.ac.nz (Geoff Thomas)\nSubject: Re: Help! 256 colors display in C.\nKeywords: graphics\nArticle-I.D.: cantua.C533EM.Cv7\nOrganization: University of Canterbury, Christchurch, New Zealand\nLines: 21\nNntp-Posting-Host: huia.canterbury.ac.nz\n\n\nYou'll probably have to set the palette up before you try drawing\nin the new colours.\n\nUse the bios interrupt calls to set the r g & b values (in the range\nfrom 0-63 for most cards) for a particular palette colour (in the\nrange from 0-255 for 256 colour modes).\n\nThen you should be able to draw pixels in those palette values and\nthe result should be ok.\n\nYou might have to do a bit of colourmap compressing if you have\nmore than 256 unique rgb triplets, for a 256 colour mode.\n\n\nGeoff Thomas\t\t\tgeoffrey@cosc.canterbury.ac.nz\nComputer Science Dept.\nUniversity of Canterbury\nPrivate Bag\t\t\t\t+-------+\nChristchurch\t\t\t\t| Oook! |\nNew Zealand\t\t\t\t+-------+\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5476, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: That Kill by Sword, Must be Killed by Sword\nOrganization: Cookamunga Tourist Bureau\nLines: 18\n\nIn article <20APR199306173611@utarlg.uta.edu>, b645zaw@utarlg.uta.edu\n(stephen) wrote:\n> tional as that is for so many). One direct benefit is being able to \n> keep things in perspective, KS.\n> \n> Such as who hurts more -- the ones who died, or the loved ones who \n> are left? Besides the lessons. It's also time for many to grieve.\n> Including those who've lost their faith in others, or in God.\n> \n> I'm learning to be patient, and let things heal. God willing.\n\nChristians through ages have had to learn to be patient. I do think\nit's time to face the reality. The events during the last 52 two\ndays showed what the world is really like.\n\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5477, "properties": {"category": "comp.graphics", "text": "From: dsnyder@falcon.aamrl.wpafb.af.mil\nSubject: Re: Real Time Graphics??\nDistribution: na\nOrganization: USAF AL/CFH, WPAFB, Dayton, OH\nLines: 27\n\nIn article <1993Apr5.114428.2061@falcon.aamrl.wpafb.af.mil>, dsnyder@falcon.aamrl.wpafb.af.mil writes:\n> In article <C4vA9r.KK7@taurus.cs.nps.navy.mil>, stockel@oahu.oc.nps.navy.mil (Jim Stockel) writes:\n>> Hi,\n>> \n>> \n\n\n Opps!  typed in the phone numbers wrong.  Here are the correct numbers.\n\n> \n>   For a commerical package try WAVE from  Precision Visuals\n\n\n                                            303-530-9000\n\n> \n>   For a free package try KHOROS from University of New Mexico\n\n\n                                       505-277-6563\n\n\n>                                    ftp from\n>                               ptrg.eece.unm.edu\n> \n>     Login in anonyomus or ftp  with a valid email address as the password\n>                cd /pub/khoros/release\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5478, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jim@jagubox.gsfc.nasa.gov (Jim Jagielski)\nSubject: Re: Quadra SCSI Problems???\nLines: 34\nReply-To: jim@jagubox.gsfc.nasa.gov (Jim Jagielski)\nOrganization: NASA/Goddard Space Flight Center\n\nnoah@apple.com (Noah Price) writes:\n\n>In article <1qm2hvINNseq@shelley.u.washington.edu>,\n>tzs@stein2.u.washington.edu (Tim Smith) wrote:\n>> \n>> > ATTENTION: Mac Quadra owners: Many storage industry experts have\n>> > concluded that Mac Quadras suffer from timing irregularities deviating\n>> > from the standard SCSI specification. This results in silent corruption\n>> > of data when used with some devices, including ultra-modern devices.\n>> > Although I will not name the devices, since it is not their fault...\n\n>That's fine, but would you name the \"industy experts\" so I can try to track\n>this down?\n\nWho knows... I just quoted what was \"written\" in SCSI Director...\n\n>> This doesn't sound right to me.  Don't Quadras use the 53C96?  If so, the\n>> Mac has nothing to do with the SCSI timing.  That's all handled by the\n>> chip.\n\n>Yup.  That's why I'm kinda curious... most SCSI problems I've encountered\n>are due to cabling.\n\nI've tried calling Transoft Corp about this and have either gotten the\nresponse \"Huh?\" to \"Yep\" to \"Nah\"... You would expect that a damaging state-\nment like this would have _some_ \"data\" to back it up...\n\nAnyone want Transoft's phone number?\n-- \n    Jim Jagielski               |  \"And he's gonna stiff me. So I say,\n    jim@jagubox.gsfc.nasa.gov   |   'Hey! Lama! How about something,\n    NASA/GSFC, Code 734.4       |   you know, for the effort!'\"\n    Greenbelt, MD 20771         |\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5479, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cca20@keele.ac.uk (J. Atherton)\nSubject: serial printing in Windows\nLines: 12\nDistribution: world\nNNTP-Posting-Host: seq1.cc.keele.ac.uk\nX-Newsreader: TIN [version 1.1 PL6]\n\nI am getting Garbled output when serial printing thru Windows & works\netc.  This has occurred on several systems and goes if a LaserJet 4 is\nused.  I suspect that there is no need for handshaking in this case due\nto the capacity (memory/speed) of it.  There is no problem printing from\nDOS.  Are there any obvious tweaks I'm missing.  I'm sure its not JUST\nme with this problem.  Thanks for reading....  John Atherton\n\n\n\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5480, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: egzondag@prl.philips.nl (Eddy Zondag)\nSubject: QUESTION: How to get serial mouse working on IBM notebook L40?\nOrganization: Philips Research Laboratories, Eindhoven, The Netherlands\nLines: 13\n\nDo you happen to know how I can get a serial mouse (9 pins) working on\nan IBM L40 notebook (which has a kind of bus mouse connection besides serial\nand parallel interfaces). The manual doesn't say anything about it.\n\nI've tried two drivers, with the result that left and right buttons are\nrecognized, but mouse movement is not. Should I cut or shortcut some\nwires to/from the mouse?\n\nThanks for your help.\n\nEddy Zondag\nPhilips Research\negzondag@prl.philips.nl\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5481, "properties": {"category": "comp.graphics", "text": "From: lee@luke.rsg.hac.com (C. Lee)\nSubject: Re: Crimson (Was: Kubota Announcement?)\nOrganization: Hughes Transportation Simulation Center, HAC; Culver City, CA\nLines: 30\n\nIn article <115072@bu.edu> kiki@PROBLEM_WITH_INEWS_GATEWAY_FILE (Keith Baccki) writes:\n>C. Lee (lee@obiwan.rsg.hac.com) wrote:\n>:  Did you say DEC Alpha?  Upgrade path from [...]\n>:  6xx0: replace.  Upgrade path from VAX 66x0 to Alpha: replace the system.\n\n>\tNot totally fair - you haven't mentioned the DECstation\n>series. I think if SGI made CISC mainframes they wouldn't provide\n>an upgrade path to an Onyx.\n\nI agree with you about the upgrade path; but I think I was fair.\n\nThe original posting complained (1) about SGI coming out with newer (and\nbetter) architectures and not having an upgrade path from the older ones,\nand (2) that DEC did.\n\nOn statement (1), I merely attempted to point out that all computer\ncompanies are constantly attempting to improve their product (& market\nposition/share).  In so doing, they eventually come to a point where they\nhave a new architecture, and the only upgrade path is to replace the\nsystem.  And the particular system he was complaining about was (in\ncomputer lifetimes) relatively old.\n\nOn statement (2), I felt DEC's history of providing upgrades was not far\nsuperior than the industry \"average\", and that, in my opinion, SGI's\nhistory is better than DEC's.\n\n(And what is DEC doing with it's MIPS based DECstation line?  Are they\ngoing to \"abandon\" it for their Alpha based line, or provide an upgrade\npath to R4400's and TFP's and R5's?)\n--\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5482, "properties": {"category": "sci.space", "text": "From: phoenix.Princeton.EDU!carlosn (Carlos G. Niederstrasser)\nSubject: Re: Jemison on Star Trek\nOriginator: news@nimaster\nNntp-Posting-Host: chroma.princeton.edu\nOrganization: Princeton University\nLines: 33\n\nIn article <1993Apr20.142747.1@aurora.alaska.edu> nsmca@aurora.alaska.edu  \nwrites:\n> In article <C5sB3p.IB9@fs7.ece.cmu.edu>, loss@fs7.ECE.CMU.EDU (Doug Loss)  \nwrites:\n> >    I saw in the newspaper last night that Dr. Mae Jemison, the first\n> > black woman in space (she's a physician and chemical engineer who flew\n> > on Endeavour last year) will appear as a transporter operator on the\n> > \"Star Trek: The Next Generation\" episode that airs the week of May 31.\n> > It's hardly space science, I know, but it's interesting.\n> > \n> > Doug Loss\n> \n> \n> Interesting is rigth.. I wonder if they will make a mention of her being an\n> astronaut in the credits.. I think it might help people connect the future  \nof\n> space with the present.. And give them an idea that we must go into space..\n> \n\n\nA transporter operator!?!?  That better be one important transport.  Usually  \nit is a nameless ensign who does the job.  For such a guest appearance I would  \nhave expected a more visible/meaningful role.\n\n---\n---------------------------------------------------------------------\n| Carlos G. Niederstrasser        |  Only two things are infinite,  |\n| Princeton Planetary Society     |      the universe and human     |\n|                                 |   stupidity, and I'm not sure   |\n|                                 |   about the former. - Einstein  |\n| carlosn@phoenix.princeton.edu   |---------------------------------|\n| space@phoenix.princeton.edu     |    Ad Astra per Ardua Nostra    |\n---------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.261+0000", "event": "documents", "entityId": 5483, "properties": {"category": "rec.motorcycles", "text": "From: mbeaving@bnr.ca (Michael Beavington)\nSubject: Re: Boom! Dog attack!\nNntp-Posting-Host: bmerh824\nReply-To: MBEAVING@BNR.CA\nOrganization: BNR Ottawa, DMS Software Design\nLines: 28\n\nIn article <Clarke.5.734991574@bdrc.bd.com>, Clarke@bdrc.bd.com (Richard Clarke) writes:\n|> final trajectory. Too bad it didn't notice the car approaching at 50+mph \n    ....\n|> from the other direction.\n|> \n|> I got a closeup view of the our poor canine friend's noggin careening off \n|> the front bumper, smacking the asphalt, and getting runover by the front \n|> tire. It managed a pretty good yelp, just before impact. (peripheral \n|> imminent doom?) I guess the driver didn't see me or they probably would have \n|> swerved into my lane. The squeegeed pup actually got up and headed back \n|> home, but I haven't seen it since. \n|> \n\nSame thing to me.  Everyday the same dog would chase my bicycle.\nThe owners thought it was cute.  Even after I got the moto,\nthe stupid dog would do the same thing.  Then one day, I was\ncoming home in the opposite lane...the fluff with teeth ran to\nget me and played momentum sharing with a 73 Dodge pick.\nThe owners tried to blame me for driving down street when I did.\nI lived in a wierd town.\n\n\n=============================================================================\n= The Beav |Mike Beavington|BellNorthernResearch Ottawa,Ont,Canada| Dod:9733=\n= Seca 400->Seca 400->RZ350->Seca750->Suzuki550->Seca650turbo->V65Sabre     =\n= (-> 1994 GTS1000 ...can't afford the '93) |  mbeaving@bnr.ca              =\n= Parking spaces? We don't need no steenkin' parking spaces!                =\n=============================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5484, "properties": {"category": "alt.atheism", "text": "From: mas@Cadence.COM (Masud Khan)\nSubject: Re: The Inimitable Rushdie\nOrganization: Cadence Design Systems, Inc.\nLines: 48\n\nIn article <16BAFA9D9.I3150101@dbstu1.rz.tu-bs.de> I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n> \n> \n>Yes, but, fortunately, religions have been replaced by systems\n>that value Human Rights higher.\n\nSecular laws seem to value criminal life more than the victims life,\nIslam places the rights of society and every member in it above \nthe rights of the individual, this is what I call true human rights.\n\n> \n>By the way, do you actually support the claim of precedence of Islamic\n>Law? In case you do, what about the laws of other religions?\n\nAs a Muslim living in a non-Muslim land I am bound by the laws of the land\nI live in, but I do not disregard Islamic Law it still remains a part of my \nlife. If the laws of a land conflict with my religion to such an extent\nthat I am prevented from being allowed to practise my religion then I must \nleave the land. So in a way Islamic law does take precendence over secular law\nbut we are instructed to follow the laws of the land that we live in too.\n\nIn an Islamic state (one ruled by a Khaliphate) religions other than Islam\nare allowed to rule by their own religious laws provided they don't affect\nthe genral population and don't come into direct conflict with state \nlaws, Dhimmis (non-Muslim population) are exempt from most Islamic laws\non religion, such as fighting in a Jihad, giving Zakat (alms giving)\netc but are given the benefit of these two acts such as Military\nprotection and if they are poor they will receive Zakat.\n\n> \n>If not, what has it got to do with Rushdie? And has anyone reliable\n>information if he hadn't left Islam according to Islamic law?\n>Or is the burden of proof on him?\n>   Benedikt\n\nAfter the Fatwa didn't Rushdie re-affirm his faith in Islam, didn't\nhe go thru' a very public \"conversion\" to Islam? If so he is binding\nhimself to Islamic Laws. He has to publicly renounce in his belief in Islam\nso the burden is on him.\n\nMas\n\n\n-- \nC I T I Z E N  +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+\n_____   _____  | C A D E N C E  D E S I G N  S Y S T E M S  Inc. |\n     \\_/       | Masud Ahmed Khan mas@cadence.com All My Opinions|\n_____/ \\_____  +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5485, "properties": {"category": "comp.windows.x", "text": "From: pfuetz@igd.fhg.de (Matthias Pfuetzner)\nSubject: Re: Available memory to the Xserver. How to get the actual size?\nReply-To: pfuetz@igd.fhg.de (Matthias Pfuetzner)\nOrganization: Zentrum fuer Graphische Datenverarbeitung, Darmstadt, FRG\nLines: 78\n\nHello!\n\nIn article <1993Apr17.144246.29806@thunder.mcrcim.mcgill.edu>,\nmouse@mcrcim.mcgill.edu (der Mouse) writes:\n>In article <1965@igd.fhg.de>, pfuetz@igd.fhg.de (Matthias Pfuetzner) writes:\n>\n>> Is there a possibility to determine via X protocol calls the size of\n>> free memory available to the Xserver?\n>\n>No.  Even if you could, the answer could be out of date even before you\n>get it (even if you grab the server, it could be taken up by buffering\n>user actions).  You should just try to do whatever you want; a BadAlloc\n>error is your indication that insufficient server memory is available.\n>\n>\t\t\t\t\tder Mouse\n\nThis isn't of much help! Especially when doing Phigs (PEX) via the libphigs as\nsupplied by MIT, I have much trouble together with PEX-terminals that don't\nhave enough memory!\n\nPerforming the following:\n\n   visual.visualid = CopyFromParent;\n\n   bg_pix = WhitePixel( grafik_display, DefaultScreen( grafik_display ) );\n   \n   xswa.backing_store      = NotUseful;\n   xswa.event_mask         = ExposureMask | StructureNotifyMask;\n   xswa.background_pixel   = bg_pix;\n\n   graphic_window =\n         XCreateWindow( graphic_display,\n                       RootWindow( graphic_display,\n                                  DefaultScreen( graphic_display ) ),\n                       0,\n                       0,\n                       DisplayWidth(graphic_display, \n                                  DefaultScreen( graphic_display ) ),\n                       DisplayHeight(graphic_display, \n                                  DefaultScreen( graphic_display ) ),\n                       (unsigned int)0,\n                       8,\n                       InputOutput,\n                       &visual,\n                       CWEventMask | CWBackingStore | CWBackPixel,\n                       &xswa );\n   XMapWindow( graphic_display, graphic_window );\n   \n   /** sync and wait for exposure event **/\n   XSync( graphic_display, False );\n   XWindowEvent( graphic_display, graphic_window, ExposureMask, &exposureEvent );\n\n   conn.display     = graphic_display;\n   conn.drawable_id = graphic_window;\n\n   xinfo.display = graphic_display;\n   xinfo.flags.no_monitor = 0;      /* False -> Monitor is running! */\n   xinfo.flags.force_client_SS = 0; /* False! */\n\n   popen_xphigs( NULL, 0, PXPHIGS_INFO_FLAGS_NO_MON |\n                          PXPHIGS_INFO_FLAGS_CLIENT_SS |\n                          PXPHIGS_INFO_DISPLAY, &xinfo );\n\n   popen_ws( 1, (Pconnid)(&conn), phigs_ws_type_x_drawable );\n\nI get core dumps in the popen_ws call! (No BadAlloc, etc.! Simply a core\ndump!) So I need some way of getting info about the maximal available memory\nto the Xserver!\n\nBut thanks!\n\nSincerly,\n        Matthias\n-- \n    Matthias Pfuetzner  |  @work:  +49 6151 155-150  | @home: +49 6151 75717\n    6100 Darmstadt, FRG | ZGDV, Wilhelminenstrasse 7 | Lichtenbergstrasse 73\n      pfuetzner@igd.fhg.de, pfuetzner@zgdvda.UUCP    |  Keith Packard said:\n      R5 is different from R4. That's why we changed the release number :-)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5486, "properties": {"category": "talk.politics.mideast", "text": "From: stssdxb@st.unocal.com (Dorin Baru)\nSubject: Re: ISLAM BORDERS vs Israeli borders\nOrganization: Unocal Corporation\nLines: 38\n\n\nIlyess Bdira writes:\n\n\n>>The Islamic world dreams of being the whole planet, but not by kicking\n>the current inhabitant out, we rather deam of the day everybody converts.\n>If Jews had the same dream, I would not feel threatened a bit.\n\n\nSo I should be very comfortable that 500,000,000 people want to convert me to\nIslam. Or, to convert me to ANYTHING. \n\nThere are many types of violence, physical murder is only one.\n\n'Trying' to convert is an insult. It's like trying to tell me that me and/or\nmy God/my lack of God are just crap, that I need a new, 'converted' one.\n\nThis does not apply for muslims only, of course. Same for jews and for some\nfriendly, nicely dressed neighbours who show on sunday with empty speaches\nand cheap booklets about some church ....\n\nAnd when the objective is (I think, however that you are wrong) to convert \neverybody, it's just a matter of time when violence will occur.\n\n\nAren't we able to learn anything from thouthands of years of 'conversion related\nviolence' ? \n\nWhy not let 'the other, more inferiour' people live as they wish and take care \nyour business?. You do assume that they are inferiour (or their beliefs are)\nas long as you want to change their thinking.\n\n\n\nDorin \n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5487, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon W\u00e4tte)\nSubject: Re: Interesting ADB behaviour on C650\nNntp-Posting-Host: hemul.nada.kth.se\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 23\n\nIn <1993Apr16.091202.15500@waikato.ac.nz> ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes:\n\n>I have heard of no such warnings from anybody at Apple. Just to be sure, I\n>asked a couple of our technicians, one of whom has been servicing Macs for\n>years. There is *no* danger of damaging logic boards by plugging and unplugging\n>ADB devices with the power on.\n\nThe problem is that the pins in the ADB connector \nare close to each other, and if you happen to bend the\ncable a little while inserting it, you short the ADB\nport. If you take it to an Apple Repair Centre, that\nmeans a new motherboard (though a component replace IS\nphysically possible)\n\nSame goes for serial ports (LocalTalk as well)\n\nCheers,\n\n\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n\n   This article printed on 100% recycled electrons.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5488, "properties": {"category": "comp.sys.mac.hardware", "text": "From: guykuo@carson.u.washington.edu (Guy Kuo)\nSubject: Re: Adding int. hard disk drive to IIcx\nOrganization: University of Washington\nLines: 15\nNNTP-Posting-Host: carson.u.washington.edu\nKeywords: Mac IIcx, internal, hard disk drive, SCSI\n\nYes, it is possible to add a second hard drive to a mac IIcx internally. This\nis definitely not a recommended procedure by Apple but I have done the equivalent to my CX after upgrading it to a Quadra 700. The power supply is still the\nstock CX's and it was able to power two Quantum LPS drives, a PLI SCSI \naccelerator, a Micron technologies 24 bit video board, Daystar QuickCache,\nNew Technologies Overdrive and 20 meg of RAM simultaneously.\n\nI added a new mount for the drive by attaching angle brackets to the drive\ntower. The internal SCSI cable was changed to a longer flat ribbon cable onto\nwhich I added an extra connector about midway. The final HD was internally\nterminated and the drive between the motherboard and final HD had its terminator resistor packs removed. Cooling has not been a problem and no SCSI problems\noccur with either the PLI SCSI chain or motherboard SCSI hooked into the two\ninternal hard drives.\n\nIt works very well for me, but proceed cautiously if you wish to do the same.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5489, "properties": {"category": "misc.forsale", "text": "From: tlin@badger.Berkeley.EDU (Tony Lin)\nSubject: WANTED:  SPI's \"War of the Ring\"\nOrganization: Statistics Dept., U. C. Berkeley\nLines: 9\nDistribution: world\nNNTP-Posting-Host: badger.berkeley.edu\n\nThe subject line says it all -- I'm trying to locate a copy of SPI's\nboard game \"War of the Ring.\"  Anyone have a copy with which they are\nwilling to part?\n\nThanks a million ...\n\n-- Tony\n(tlin@stat.berkeley.edu)\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5490, "properties": {"category": "sci.electronics", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: Exploding TV!\nOrganization: The Portal System (TM)\nDistribution: usa\nLines: 6\n\nSounds like the picture tube lost vacuum.  This would cause the filament\nto ignite and could actually turn the tube from a vacuum to a pressure\nvessel, followed by an explosion when the neck assembly (mostly likely\ncracked to begin with) blows off.  During the whole sequence of events,\nthe other circuits may continue functioning, which accounts for not\nlosing sound.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5491, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: slg@slgsun.att.com (The Idealistic Cynic)\nSubject: How do I quickly switch between Windows screen resolutions?\nOrganization: AT&T Bell Labs, Columbus, Ohio\nDistribution: na\nNntp-Posting-Host: slgsun.cb.att.com\nLines: 18\n\n \nCan someone out there tell me how to switch Window's screen resolution\nquickly and easily?  I know that I can go back into install to do it,\nbut what I'd really like is to have is the ability to just change a\ncouple of startup or configuration files and have the resolution\nchanged.  I already have both video drivers that I need on my system,\nso that isn't a problem.\n \nThanks,\n \nSean.\n \n---\nSean L. Gilley\nsean.l.gilley@att.com  <-- USE THIS ADDRESS, ALL OTHERS BOUNCE!\n614 236 5031 (h), 614 860 5743 (w)\n \n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5492, "properties": {"category": "talk.politics.guns", "text": "From: tms@cs.umd.edu (Tom Swiss (not Swift, not Suiss, Swiss!))\nSubject: Re: Fwd: FREE NRA MEMBERSHIP OFFER\nOrganization: The Reality Liberation Front (pixels to the people!)\nLines: 28\n\nandy@SAIL.Stanford.EDU (Andy Freeman) writes:\n>\n>The NRA supports anyone who's pro-gun and has a chance of winning\n>election, regardless of their other positions.  Is it their fault that\n>some drug-legalizers are anti-gun?  Is it their fault that the\n>drug-legalizers who are pro-gun can't get elected?\n\n     It's not the NRA's fault; but it is something to consider if you are\nconsidering contributing to the NRA. If candidate B is a complete asshole\nwhose only saving grace is that he opposes unnecessary restrictions on\nfirearms, I wouldn't want my membership dues funding efforts to get him\nre-elected.\n\n     I have other problems with the NRA (as an organization; the individual\nmembers I've met have been loyal, trustworthy, honest, brave, etc.,\nespecially my boss who probably reads this newsgroup B->); they are\ndefinitely pro-hunting, and I recall seeing a pro-Desert Storm NRA bumper\nsticker. Sometimes they come on too strong in the political arena, which\ncontributes to their reputation as \"bad guys\" amoung many people.\n\n===============================================================================\nTom Swiss/tms@cs.umd.edu  |  \"Born to die\"   |   Keep your laws off my brain!\n     \"What's so funny 'bout peace, love and understanding?\" - Nick Lowe \n     This .sig contains no animal products and was not tested on animals.\n\"I would feel more optimistic about a bright future for man if he spent\n less time proving that he can outwit Nature and more time tasting her\n sweetness and respecting her seniority.\" -- E.B. White\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5493, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 14\nNNTP-Posting-Host: lloyd.caltech.edu\n\nsandvik@newton.apple.com (Kent Sandvik) writes:\n\n>So how do you then explain sudden violent behavior of human beings?\n>Your theory would state that the more the human is detached from \n>primitive behavior, the more violent and non-moralistic the human\n>becomes (please correct me if my understanding was wrong). So\n>you have this bifurcation point where a madman is killing people\n>from the roof of a campus. Could you explain how your 'theory'\n>explains such a situation?\n\nMadmen are mad.  Do we try to explain the output from a broken computer?\nI think not.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5494, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 08/14\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 956\n\n\n------------ Part 8 of 14 ------------\nMAX>'AX>'AX>'AX>'AYZ>8=#0T\"L!A%(!*]#0T\"4E)<-N;@+(U,C(;CZ;1-/3\nMTXU*IH?4JH!75\\B`P2&((F[JZ$/Q[/&J3;YJ+2WE<\"3T*0:4E,SUAX>'AY\\*\nMFYL^/J\"@PR4E)=#0T\"4E2VY+)1$1D&[4U-34U-34AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<Y824E%!17@$JN%!1-(;GO?NKHM:=:6FQ*\nMKNSL\\3ND\\>QJ+2F'AX>'AX&!UM8DFYL^/CZ@B+40B*`^/IN;FYN;)24E)6%A\nMT-#0T-!A)25+P\\/#-L#`P%L45U?R(>#@AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>$J0&>P'5U=75U\nM=9Z>`0$!`81VO!-V`2O0)24EPVYN;FYN;FYN;@+(U-3(U-3(R`)N2R70AX>'\nMAY[/S]0%TZX\"P$V^:C#:N(/6C\"DP8^$D]-DKGI[0*WA9`8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX=V$W:\"=E(`86&02QVQ?EI::/':C,Q145%1]?51\nM8(>'AX>'AX>'AX>'AX>'AX>'AW6IGIZ>Y7`D*ZE0@R3T]\"O-@R0I+=KE<\"0I\nM+2T^K.SLK/&LK/'LL<C4U,@\";B70*P&$=A.\\=H0!G@$!AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'GH0K*RLK*P%V$Q-V`2LKT\"4E\nM)<-NPP(\"R,C(;B4EFT1*2NCHIJ;4JL]75\\B`P2&(\\6Z`1$/Q[/&J3;YJ+2WE\nM<\"3T*08WS&#UAX>'%X$DFYL^/FYN;FY+)6%A824E2VYN2TN0D$L\"U-1KU-34\nMU(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<!*V$E%!2B@$JN\nMHA1-(=RQL8!?#,9:?FQ*KNS&\\3YD[.QJ+2F'AX>'AX&!@=;6FYN;/CZ@KH@0\nMM8B@/CX^/CX^/CX^/IN;FPH*\"@H*\"@H*\"@HD)\"0D)\"0D2/+R(2'@AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>$=7B>P'5U=75UJ9Z>`0$!A':\\$W8!*]!A)25+PVYN`@(\"`@(\"`LC(\nMU,C(R`(\";L,E)=`KAX>'AX?/5\\@%2JYNP$V^L[/:N(,D*3`P8W`D*=DKJ9[0\nM*W@'`8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>\"$[R\"@@``86'#2\\C(\nM?EI^'60P!F#U]?7U4<P&C\"F'AX>'AX>'AX>'AX>'AX>'AW6IGIZ>Y7`DT*E0\nM@R3T,\"OP@R0I+=KE<\"3:9\"T^K.SL(NRL\\>P\"U-34U,C(`B4ET\"L!O+R$`0$K\nMT\"5U`82'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW@!GMFI\nMJ0<'`82\\$Q,3O`$KT&$E)25A)6X\"R,C4`L-+)3Y$1$3!P:;(JL]75\\B`P3NN\nMK,.J1\"'Q[/&J3;YJ+2WE<\"3T*0;,8/7UAX?U]8$DFSX^PVYN;F[#2R4E)24E\nM)4MN;FYND&Y+U-34U&MKU`*'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'A[QV`2MA6Q2BJDJN%%M-(8AH:(#H0QU:[VQ*KNS&\\3ZL[,:@9-J'AX>'\nMAX&!@=;6))N;FSX^H*ZU$+6(H*`^/CX^/CX^/CZ;FR0*\"@H*\"@H*)\"0D)\"0D\nM)\"28OO+@(2'@AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX=2=9Z>P'5U=76IGIZ>>'@!`5*$`7B>GG5A\nM)25+2VYN`@(\"`LC(R,C4U,@\";DLE8=`K`81VAX>'AX?J5\\CI2J!NP$V^LRTM\nMJJ8DVBTMSG`D*=G0J:G0*WB5O(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAP%V$[QV4@`K86%+R-3(U%I^'60P!E'U45',E(PPVBUD9(>'AX>'AX>'AX>'\nMAX>'AW6>GIZ>Y7`DT-!0@R0I,-#P@R3:9\"WE<\"3:9\"T^K.SL'6CQ;@+4U-34\nMU,C(:ULV-MD'4I4'V=G9-FMKP#@!AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>>`0&IJ:F>!Y65>`%24E)24E)XGJFIJ0$K825N`M34R`)NP\\/#\nMIJ9-34W(JM175]3(P3NNK,.J1\"&L[*RJ34AJ+=KEX22,]#=@45%1AQ?U]9\\*\nMFR4EPVYN;F[#2R4E)24E)4M+;FX\";DM+`FO4U-34U`*'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AQP<.>Y&;EL4JDJN%%M-.XC&:(#H0\\9:[VQ*\nMKNSL\\3ZL[&BNK\"V'AX>'A];6UB0D))L^FSX^H*Z(M1\"UB*Z@/CX^/CX^/CZ;\nMFR0*\"@H*\"@H*)\"28F)B8F)AJOO+@(>#RAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<!=9YXP'5U=:F>\nMGIZ>>'@!`82$`9Z>=74E)4M+2VYN`@+(R-3(R-34R`)N2R70*P$!A':\\AX>'\nMAPW/HF[I2J##P$V^I\"UDJF4^+61DSG!JVMG0J:DK*W@!=H>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'`5*\\$Q.\\4BLK)4M+R-34U-3O'60PE%%@S#>,C-ID\nMK*RLK&2'AX>'AX>'AX>'AX>'AW6>GIZ>Y>$D*^Y0920IVF'I93XM9\"WE<&K:\nM+2T^K.SL:.]N`LC4U-34U,AK:VLV-MD'E94'V=DV-FMKS\\];6W6>AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'`812E0<'GIYX`5(!`82$`0$!4H0!>)Z>\nMGA.$*R5+;LC(U-0\"`FYNPV'EY>7(JM175]3(P3NNK,.J1#NL\\:RJ34B8VMKD\nMX22,!LQ145%@WO7U]1<KT\"4E)27#;F[#2TM+2R5+)4MN;@)N`@(\"`M34U-34\nMU-34AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'.5D<.>Y&2UL4JDI#\nM%&Y-.XC&:(#H0\\9:[VQ*KNSL\\3ZL[&BN\\2V'AX>'AX'6UB0D)&H^/CX^H*Z(\nMB!`0M8B@H*`^/CX^/CX^FYL*\"@H*\"@H*)\"28F)AJ:FIJ._+@(>#@AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<!=:D!P'5UJ9Z>GIZ>GG@!`80!>)ZI=74E2TM+PVX\"`LC4R,C4R-3(\nM`F[#)=`K`0&$O!,3AX>'A^O/%,/I1#Y+.$V^I&2LJD0^K*RLSDAJVJDKJ9XK\nM*W@!=C@EAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>\"=A,3$Q.\\4BLK)9!N`LC4\nMU,C(`F2,S/7,E(PI+:SL[.SL\\:RLAX>'AX>'AX>'AX>'AW6>GIZ>Y>$D*^Y0\nM923:+27I1#YDK&3E<&HM9&2@K.SL[UH\"R,C4U,C(R-1K:VLV-MG965)9V=DV\nM-FL)S\\_/SU=75Q2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A`&$`0$!`94'>'@!\nMA(2$A(12`0$!`82$`0$!*P$3`=`E;@+(U-3(R`(\";B4E*V.J`H!75]2`P2&(\nM\\</I1\"&L\\62J34B8VMJ<X0J,E&!146`W%Q<74E)9J=G9HS9;:VNBS\\^BH@)N\nM2TMNR,C4R,@\"`@+4U-34`M34U(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX?N.5D<6>Y&)<!;JDJ@%*I-.XAH:(!?#,9:?FS3KNSL[#ZL[+&N\\62'AX>'\nMAX'6UB0D)#X^/CX^H*\"NB+40$(BNH*\"@H#X^/CX^FYL*\"H&!@0H*)\"0DF)AJ\nM:FJ@.^#@(?+@AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<!=:D!P'5UJ9Z>GIZ>>'@!`80!GIYU=3A+\nM2TM+\\2(=:+'(U-3(U,@\";L,E8=`K`7:\\$[QVAX<!J76B6R7I1#XE.$V^I&2L\nMJD2@K/'QSDAJVJDK*YXK`7@!O)Z>`0&$`0%X>)Z>AX>'AX>'AX>'AX>'AW83\nM$[R\\$[QV``$K*R7#`LC(R-3(;B4!45%@E/0MK.SL[.SLK*RL\\>R'AX>'AX>'\nMAX>'AZF>GIYXG.$*`>Y0@R3:9\"7I1*\"L\\:SE2&IDK*R@\\<8=6EJB5U=75Z*B\nM5PEK:VLV-MG9!Y65!]DV-FL)S\\_/S\\_/5ULXP%=7AX>'AX>'AX>'AX>'AX>>\nM>)YX`8124@$!`0$!`0&$4@$!`0$!`7AX>`&$A(2'T\"MV`=`EPV[(R-3(U,_/\nM:ULVV:FJR(!75]2`P2&((FX%1\"&L\\61&34B8VBF<X0J4-U%14<Q6%Y65E5*5\nM!ZFIV77`6UNBSU=7R`)N2TMNR-34R,C(`@)_(-34(`)_:]2'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<!A(0!`7AX>)Z>8<!;;C9;`FY-(=RQL8!?M:=:6FS3\nMB.S&[#[QQK&N\\61X>(>'AX'6UB0D:CX^/CX^H*Z(B+40$+6(KJ\"@H*\"@/CX^\nMFYL*\"H&!@8$*)\"0DF)AJ:FJ@.R$A(?+@AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'=76$P'5UJ9Z>\nMGGAX>'@!A%)XGG5U.,!+2TMN(AUHL7[4R,C(R`)N;DLET(19J75U=<#`6Q04\nM5U=NP\"5U=3XE)4V^LV2LJD0^K/'QSD1JVJDK*YX!`0&$O`%2A`$!GIZ>J:EU\nMJ9Z>>`&$`7@!AX>'O!,3@H*\"@H*\"O((`*]`E;@(\"R,C(;B4!O&!@E\"ED\\>S&\nMQNSL\\?'Q[.S&L8>'AX>'AX>'AYZ>GIYXG.$*`>Y0@R3:9\"7I2J#Q[\")-2J#Q\nM(O&@[+%H6EI75U=7%!04AX=K:S8VV=D'!Y52!]DV-FL)S\\_/S\\_/SX#/S\\!U\nM=77`%%O`P#C`P,!;6\\!U=9YX`5)24@$!`0$!`5*$`0$!`0$!>'AXGG@!`8>'\nMA]F56=DV6VO/S^K/S\\_/SVLVH]FJR(!75]2`Z\"&Y'0(%1\"'Q[&2J34B8VBF<\nMX0HWS!=14<P&E0$!`0%2`7@'J=EUP%L4HE?(`@)N2R5+`M3(U-3(R']_(-34\nMU-1_?R#4AX>'AX>'AX>'AX>'AUO`P,`X.#AU=76IGGA24@%XGJEUT\"7#2S9;\nM`DLV%!34U,B-M>^]6FS3B.QH(J#Q:+&N\\9IXGJEU=74XP%L45U>@/J\"@KHB(\nMM1`0$+6(B*ZNH*\"@H#X^FYL*\"H&!@8$*\"B0D))AJ:J\"@.R$A(?(0AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AW4!.'5UJ9Z>GGAX>`&$A`%XGG5U.,!+;FX\"'6BQ?G[(U,C(GGB\\\nM=@$Y[D:C6UM;%!2B5U=75Z)NPR4E825A)24E)24E)<,^9*Q+)25AT\"LK*P$!\nM`5)VO!,3$Q,3$Q,3O((K*RLK*RLK*RL!AX>\\$Q.\"@H*\"O!,3$X(!`2LE2\\-N\nMR,C4;B4!>%)2>-JL\\>SLQNSL[.SQ\\>SL[&BQAX>'AX>'AYZ>GIYXG\">!`>Y0\nM@R3:9\"7I2J#Q[.Q-2J[L'>RN:%KO6EI75U=7%!2'AX>'-C;9V0<'65)2!]G9\nM-FMKS\\_/S\\_/S\\_/S\\_/S\\_/%!04%!175U=7%,!UJ7@!A(12`0$!`0$!4H2$\nM`0$!`7AX>)Z>GIYXAX>'AX>56=DV-FNBS\\_/S\\_/SVLVH]FJU(!75]2`Z`RY\nM:,@%2D/Q[&2J34B8VBF<X8',4?514<Q<`0$!`965E5)2>*EUP%M;HL]U;@(\"\nM;FX\"R-34R,C(R,A+?R#4U-0@?W\\@(-2'AX>'AX>'AX>'AVP%!;23S<TH*```\nM`(*\"O!,3@@`K827#2TMN;FYN`LC(U-34U-34U-34R,@\"`@(\"`@)NPR5U=3C`\nMP%M;%*)75U?4U-3/@(`\"\\1\"UB(B(B(BNKJZ@H#X^FYL*\"H&!@8$*\"B0D))AJ\nM:J\"N(3LA(1`0AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'=75UGIZ>>'@!`82$`7B>GG4XP,!N\nM;@(\":+%^?N_(R`(\"GGB$GG7`6Q175U=7%!046UM;P#@E)6'0825A)24E)24E\nM)4M+2R4E86'0*RLK*RL!`0%VO!,3$Q-V=H12`0$!*RLK*RLK*RLKA[P3$Q.\"\nM@H*\\$[R\\@H2$`2O0)27#`LC4;B4K>%)2>'5UP.SL[,;&[.SL\\?'L[.RQ[UKO\nMSU=75YZ>GIYXG\">!`>Y0@R0I+27I2J#Q[!U-TZ[&:!VUL;U:6EH45U=75X>'\nMAX>'AS;9V0<'65)2!]G9-FMK\"<_/S\\_/SX#/S\\_/S\\_/SU=76EJ]O5JB6W5U\nMGG@!A(0!`0$!4H2$A(0!`0$!`0%X>)Z>GIZ'AX>'AX>'6:G9=<!;HL_/S\\_/\nMSZ);=76JU.I75]2`Z`RVL<@.7T/Q[*RJ34B8VBF<H9]@4?7U8#<P`5)2`7@'\nMGGA2`7BI=<!;%*D'HVX\"`@+(U,C(R`+(R,C((\"#4U-34U']_?P)+AX>'AX>'\nMAX>'A^+B!07I!`3-S<TH*\"@H.3FKJX*\"*]!A827#;FX\"R-34U-34U-34U-34\nMR,C(R,C(R`(\"`FY;6Q04%!04%%M;6^SL:+%:O5IH\\8B(B(B(B(B(KJZ@H#X^\nMFYLD\"@H*@0H*\"@HD))AJ:J\"N(3L0$!\"UAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW6IGIYX\nM`0$!4A.\\=GAXGJEU=<#`P,!;6[U:S\\^BHFLV>`$!GG7`6Q175U<46\\#`.'5U\nMJ2O086$E2\\-N;FYN;L,E)24E1D;N!P=9.5*4E)24-W9VO!,3$Q.\\=G9VA(0!\nM`0$!*RLKT-`K4@\"5O!-VO+QV4C,K`79VA`'0)25+`M34;B5X`80!GG4XP,!;\nM6^S&[.SL\\?'L[.RQ[UKO[*S:])Z>GIYXG.$*`>Y0@R0I+27I1*#Q[!U-TXAH\nM[[$06KU^6EI;%%=7AX>'AX>'AX?9V0<'65)2!P?9-C9K:PG/S\\_/SX#/S\\_/\nMS\\_/S\\]:6KV]O5IH6W5UGG@!A%(!`0&$A(12`0%X>`$!`0%X>'B>AX>'AX>'\nMAX>'AUFIJ75U6Q2BSU?/S\\];P,\"J5^I75QN`7PRVL<@.7T,B[*RJ34B8VBF<\nMH9_,41=1S)0PE0%2`0>>J0<!4GB>J77`J:EUAX<\"`LC4U,C(`FX\"R,C(R-34\nMU\"`@(\"`@?W]+2X>'AX>'AX>'A^+BXFSIZ>D$!`3-S2@H*#D<'*LH4&-C8\\[.\nMSDMN;@(\"`LC(U-3(U-3(R,C4R,@\"`H\"J@(!_?UJQ:&AH:,;L[.QHL>]:O>_&\nM[.EHB-R(B&XI]/2,C(R,C(R,]-HM\"@H*\"B0D))AJH*Z((;40M;6(AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AW79V0<'69524E)9!P?9V=DV-C9K:VMK:[U:5Z(46\\!U`80!\nMGG4XP!175U<46\\#`.'5UJ:EU=3C`6UM;6S:JJJI&)=DP,\"DIC(R,5I0&!@:4\nME(1VO!,3$Q,3$[R\\O':$`0$!*RO0T\"LK82LK=A,3$Q-V,S,!A+P3O`'0825+\nM`M34;ME24H0!GG5UP,#`P,#`P,#`\\>SL[,:Q[^^Q[*Q_?YZ>GIZ>Y>$*`>Y0\nM@R0I+27I1*#Q[&A-(8BQ6GX06KVQ6K'`6U>'AX>'AX>'AX>'V0<'65)260?9\nMV38V:VL)\"<_/SX\"`S\\_JS\\_/6EI:6KV]6EJQ[#AUGIX!4H12`82$4@$!>)Z>\nMGIZ>GIZ>GIZ'AX>'AX>'AX>'AX<!E7BI=<!;%!2BS\\^B%%N`5X!75]3J7PRV\nML=0.7T/Q[*RJ34AJVBGKH9]@45%@-P:S```!E0<'G@>54@$'J76IJ8>'AX?(\nMR,C4R,@\";FX\"`@(\"`LC(U-0@(']_`G\\\"`@)+AX>'AX>'A^+BX@X%Z>GIZ00$\nM!,W-*\"@Y'*LH4&-CSL[.SL[.!04%!04%!8\"`@&L)@(\"`@+V]O5JQL;'O[^^Q\nM:&AH:,;L[,:Q6EJ]O>_&[(B(B(B(B,,I*?2,C(R,C(R,C\"G:9*SQ[#L[.SL[\nM(8BUB+40M8B(AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A]G9!P>54E)2`95X>)Z>J:EU=3@X\nMP,!;6[V]5\\C(2\\,EA`%XGG5UP%L45U=7%%O`.'5UJ75U=<#`6UM;6UO`=2TM\nM+2TMVMHI*2GTC(R,C(P&!@&$O!,3$Q,3$Q,3$[QVA`$!*RLK*RL!86$``\"L!\nM=A-V`0$!=KP3O`$K827#`M34AP<V!U(!GJEU.,#`P,`X.#C`P,#`6Q04[^]_\nM?R#4U-\">GJF>Y>$D*^Y0@R0I+27I1*#Q[&C!(1!:6GZUL>\\=?K$@?W]_?\\C(\nMR,C(`@)+2TM\\E5)260?9V=DV:VMK\"<_/S\\_JZNK/S\\]:O5I:O;V]O5I::.S`\nM=:F>`0&$A%(!`0%XGIZIJ:F>J:EU=8>'AX>'AX>'AX>';C:JJC:JJJJJJJJ`\nM\"7]_?W^`U(!75]3J7PRVL=0.7T/Q[*RJ34AJVBGKH1=18&#,!HPV@H*\"@H('\nM>`>5`5*5>*FIAX>'AX>'R,C(R,@\";FYN`FYN`LC(R-34(\"!_`G]_?W\\@(\"#(\nMAX>'A^+BXN(.!07IZ>GI!`3-S2@Y'*LH4%!C8\\[.SL[.SL[.SFQL;&QL!05L\nM6KV]O;V]O5JQL;&Q[^^QL6AH:,;LQFCO6KV]6K'&[*Z(B(B(KDO:*?3TC(P&\nM!@:,C/0IVF1DK+Z^OKZ^.XB(B+6UB*ZNAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A]D'6952\nM4@$!>'AX`9Z>GJEU=<!;6UM;%%I:U-0\";CAU4GB>GJEU=<!;HE=7%%O`.'5U\nMJ75U=<!;6UM;6\\#`=2TM+2TM+=K:VMHI*?3T](R,C`$!=A,3O+R\\$Q,3$Q-V\nMA`$!`2LK*P$!)2LK``\"$$W:\\O(2$O!.\\$P$K825N`M3(AX>'V=D!>)YU=74X\nM.#@X.#C`P,!;6W]_?W\\@(\"`@(-#0*W6IY7`D*RM0@R3:9\"7I1*#Q[&C!(1!:\nM6K&(';$BU,A+PY!A84M+2VYN;FYNN8A\\4E(S!P?9V=DV-FMK:\\_/S\\_/S\\_/\nMS^_O6KU:O;U:6KU:6N]HP'6IGGAX`0$!`0%XGJEU=75U=76'AX>'AX>'AX>'\nMAX>';FXE81%&1D9&JJJJ\"0)_?W_4U(!7R,CJ7PRV[]0%7T/Q[*RJY4AJVHSK\nMWA=146`W!@<E)25A)24ED)`!`5)2V=F'AX>'AX>'A\\C(`@(\";FYN;FYN;LC(\nMU,C(?W]_`M34U-0@U-34U\"!_A^(.#N+B#@4%!>GIZ00$S2@Y'!PH4&-C8\\[.\nMSL[.SLYLSFQL;&QL;&QL6EJ]O;V]O5KOL;'O6EKOL6AH:&C&:+%:O;U:6K'&\nM[&ZNKHBNKB7:*2GTC(P&!@8&C(ST*=HMOKZ^OCN^OJZNKHB(KJ\"@AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AW@!`82$`0$!>'AX`9Z>GJEU=3C`P%M;%+V]5U>B6UNC`9Z>\nMGIZI=77`%%=7HEO`=75UJ75U.,!;6UM;6\\`X==HM+=HM+2TM9&0M+=K:*3`P\nM,\"L!E&#U]5%145'U]5%@-P$!`0$!`0$!`5)V$Q,!A':\\$Q,3$[R\\$X0!T\"5N\nMR,B'AX>'AW@V>)ZI=75U.,`X.#C`P,/#D)\"0D\"4E)24E)=#0T-#0T'70T\"LK\nMJ74E)24EP,!N`LC4R-34R,C(`@)NR,A_?W]_?P)K`JJJI*2(W*Y<AX<'!P?9\nMV38V-C9K:PG/S\\_/S\\_/L;&Q[UJ]O5I:6EJ]O5I:QL!UGIZ>>`$!4@%XGIYU\nM=75UAX>'AX>'AX>'AX>'AX>';FY+)270[NY&1C:J\"0)_(\"#4U`+(R-34U-34\nMU-2`Z$/QK*RJY4B8*8R$#?51S`$!*]`ED)`E)24E86$K*RL!AX>'AX>'AX>'\nMAX?(`@(\"`FYN;L/#;@+4R,C4R`)N2\\L\"?R#4(-345U?/5P4%#@[BXFP%!>GI\nMZ>D$S2@Y'!PYS6-C8\\[.SL[.;&QL;&QL;&QL;&QL6EJ]O;V]O;U:[^]:6EI:\nM[[&Q:&AH:+%:O5I:[[%H[&ZNKJZNH\"4P*?3TC(R,C(R,C(R,]\"EP&$A(OKZ^\nMOJ\"NKJZNKJ\"@AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AP$!A(0!`7AX>)Z>*RN>GG5U=3C`\nMP%L4HKU^U']+;I`1>)Z>GIZ>=77`%%=75UO`=75UGJEU.,!;6Q046\\`X==HM\nM+2UD9&2LK/'QK&1D,#`P,#\",C)1@]5%18%'U]5',-X2$`0$!`0&$$Q,3A`$!\nM>`%2A(2$`0$!O(0KT\"5N`H>'AX>'AX>'==FIV75U=<#`P.XK*RL````````K\nM*RLK*RO0T\"4E)24E8=#0T\"4E)4M+P\\-N`LC(U-34U,C(`@)N;FY+2TM+RW\\)\nMR+F(I*2(W*Y<AX>'AP?9V=DV-C8V:VMK\"<_/SVAH[.SL:'Y:6EI:6EJ]O5I:\nM:/$MJ9Z>GG@!`0%XGIYU=76'AX>'AX>'AX>'AX>'AX>';FXE)25AT\"70[NY&\nM-B4E)9!N;FX\"`LC(U!O4U-34R`)N2R4E)270*RMVO!.\\A`$!*]!A86%A86$K\nM*RLK*RL!4G:'AX>'AX>'AX>'`@(\"`@+#PTM+PVX\"R,C4U,@\"%*)75U=75U=7\nM5U=75P4%#@[BXN(.!07IZ>D$S2@H'!PY*%!C8\\[.SLYL;&QL;&QL;&QL;&QL\nM[UJ]O;V]O;U:6EI:O;U:6K&QL6AHL;%:O5KO[[%H[`*(KJZ@H\"4P,/2,C(R,\nMC/3T]/3T*2D8&$B^OKZ^OJ\"@KJZNKJ`^AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AP&$A`$!\nM>'B>GIZ>*RN>J75U=3C`6UL4HGY^U`)N;I`1GIZ>GIZ>=77`%%=75UO`=76I\nMGJEUP,!;%!046\\`X=2TM+2UDK/'L[.SL[.SQ9\"TMVC`PC(PW4?5145'U46`W\nM-X2$A(2$=KP3A(12`0%X>'@!4H2$`0%24GB>=3A;AX>'AX>'AX>'AX?`V=FC\nM=94<'!P3$Q.\\O+P3$Q,3$Q.\\@@$!*]#0T-#0T-#0824E)24E2\\/#2VX\"R,C(\nMU-34U-2`@(!+2TM+PZ2DW+F(I*2(B*16AX>'AX>'V38V-C8V-FMK:VMK[.PB\nM\\?'Q[!VQL;'O6EJ]O5I::/%DVJF>GIZ>GIZ>GJFE1T??>BHJ>D>E\"V9FQ#&'\nMAX>';L,E)25A8270)6Z`SW]_('_4U-3(R,C4U!O4U-34R`)NPR4E)270T\"L!\nM`7:\\$W8!`=!A824ED)`E)6%A*RLK*U*\\$[R'AX>'AX>'A\\C(R`)NPTLE)<!;\nM%!175U=75U=75U=75U=75U=75P4%!0[BXN(.#@7IZ>D$!,TH.1P<.2AC8\\[.\nMSFQL;&QL;&QL;&P%!05LL>]:O;V]O;V]O;V]O;V]6N^QL;&Q[UI:O5KO[[%H\nM[,B(B*Z@H$OTC(P&E`:,C(ST]/3T].%P&$B^.SL[.Z\"@KJZNH*!JAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX2$`0%XGIZ>GIZ>*RO0=77`P%M;:Z+/SUI^:S9N;A$1GIZ>\nMGIZ>=77`%%=7HELX=76>GIYUP%M;%!046\\`X=2TM9&1D\\>SL:+&QL6@BK*QD\nM9\"TP*8P&S%'U]?7U4<PW-X1V=G:\\O!-V`0$!`0$!>'AX`0%2A(0!>)YU=3B'\nMAX>'AX>'AX>'AX>'A\\#9H:&AH:&AH:&AH:&AH:&AY.2<G.OKZ^OKG)SD`2O0\nM)24E2TM+2R4E824E)<.JJJJJJJJJ@(!_(-2G(J2DW+F(I*ZNKK,*AX>'AX>'\nMAX<V-C;9V38V-JRL\\?&LK&1D9*SQ\\>QHL>]:6KU::.RL9\"UU=76IGIZ>Q`NE\nM1]_?WT<+9H>'AX>'AX>'AX>'P\\,E82708270)6[4U-34U-34U-34U-34&QL;\nMU-34R,@\"`DLE)=`K`3E24G914?51S`:,*2UDK*RL9&0M+=HI](R,E&!1AX>'\nMAX>'AX?(R`);P#@X.#C`6UL45U=75U=75U=75U=75U=7HND%!0X.XN+B#@7I\nMZ>D$!,TH.1P<.2C-8\\[.SFQL;&QL;&QL;`4%!04%:.]:O;V]O;V]O;V]O;V]\nM6EKOL>]:6EJ]O5JQL;%H[-2(B*Z@H$N,C`:4E)0&C(ST]/3AX>$82$B^.SL[\nM.ZZNKJZ@H*`DAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AU(!!P>IJ=G9V=DK*]#0839;6VMK\nMHL_/SWY^-C8V[NX1J:FIJ:FI=77`%%=7%,`X=76>GIYUP%L4%!046\\`X=61D\nM9*RL[.RQ[UI:6K$=(O&LK&0M,#\",!LQ145%1S#>4-W9VO'5UGIYX`0%X>'AX\nM>)YX>'AX>'B>J75U.(>'AX>'AX>'AX>'AX>'AX>'Y.2AH:&AH:&AH:&AH>3D\nMG)R<Z^NKZ^OKG)SDH8.#IF5E1$1E98.#@X.#965E941$1$1*2DK3(K;O(J2D\nM(KF(KJZNKGR?=74X.,!;6Q04%%<'!]G9,##:+2TM+=HP,-K:+63Q[&BQ[UI:\nML<;L\\60M=75U=74XP%M;P,`X=75UGG@!4H0!GG4XP,!;P\\,E8270825A)6[(\nMR-3(6EI:6EI:6EI:6EI:6EI:[Z?&[/%DVBF,!C?,8%%145',E(ST*2UDK*RL\nMK&1D+=K:*?2,!C=@AX>'AX>'AX>'HA1;6\\#`.#@XP%L45U=75U=75U=75U=7\nM5Q046\\#`6Q17XN+B#@X%Z>GI!`3-*#D<'\"@HS<[.SFQL;&QL;&QL;&P%!04%\nM:+%:O;V]O;V]O;V]O;V]6EI:6EI:6EJ]O5JQ:&AH[-2(0T-#0TN,!I0W-Y0&\nMC(R,].'AX7`82+X[.SL[.XBNB*Z@H#XDAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AP%XGIZ>\nMGIZ>GI[0T-!A827`P%M;%!2B5UI^\"38V[NX1$5E\\?'QU=3A;HE=7%,`X=76I\nMGJEUP%L4%!046\\#`.*RLK/$B[+'OO;V]O;%H'2(B\\:QDLS`IC`8W8*RLK*QD\nM9'5U=75U=9YX`0%X>)Z>GIZ>GIZ>GJEU=<#`AX>'AX>'AX>'AX>'AX>'AX>'\nMG)SDY.3DY.3DG)R<G)R<G.OKZ^OKZ^OKG)R<H8.#@V5E1$1E98.#@X.#965E\nM965E1$1$2DI*(AWO(J2D(K;<B(BNI'Q@%!04HJ)75U=75Q1;P#A18,PW!HST\nM](R,C(ST*=ID\\>S&L5J][VCL[*QDGIZ>GG4XP%L4%%L4%!1;6\\`X=75UGIZ>\nM>`&$PTLE825A)24E)0+(R,C(6EI:6EI:6EI:6EI:6EI:IVCL\\:PM*?2,E,Q@\nM45%18,R4C(PIVBUDK/&LK&1D+2W:*2GTC`8WAX>'AX>'AX>'AQ046UM;P#AU\nM.,!;%%=75U=75U=75U=75Q1;6\\#`6Q175U=7%%LX=77I!`3-*#D<'#DHS03.\nMSLYL;&QL;&QL;&P%!04%:+%:O;V]O;V]O;V]O;U:6EI:6EI:6EJ]6N^QL25+\nMP]0,0T-#0TN,E#<W-Y24!HR,X>'AX7`82$B^.SL[.XB(B*\"@/B0DAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AYZ>GJEU=75U=75A824E2TLV6UL4%!175WY^\"38V[NX1$3-\\\nM?'R'AX>'AX?4U,`X=75UJ74X6Q04HA046UO`P*SQ\\2(=:%J]O;V]?GZQ:!T=\nM(DM+)?#U45'U+62LK*PM+2UU=75U=9Z>>'AXGIZ>GIZ>GIYU=74XP%N'AX>'\nMAX>'AX>'AX>'AX>'AX>'G)R<G)R<G)R<G.OKZ^OKZ^OKJ^OKZ^OKZ^N<Y*&#\nM@Z9E965E98.#@X.#@X.#965E941$2DI*\\;GO(JRLN;;<B-RNI'Q@GG@!`0%X\nMGIZ>GIZ>GIZ>GIY24E%@8,S,-Y0&C%PPLV3Q';%:L0G(;EO`=76>GIYX>`$!\nM`0%XGIZ>GIZI=77`P%L4%%M;2TLE)24E)24EPP+(R,B`6EI:6EI:6EI:6EI:\nM6EJGI^SLK\"W:](P&-V!146#,E`:,]\"G:+62LK/&LK&1D+2W:*2GT](R,AX>'\nMAX>'AX>'AX<46UM;P,!U=3C`6Q2B5U=75U=75Z)7HA1;P,#`6U=75U=7%,`X\nM=76>GGAX>'AV=APH*,T$/\\X%!04%!05L;&QL!04%:+%:O;V]O;V]O;V]6EI:\nM6EJ]6N_O6KV]O5KOL24E)<@,0T-#*TL&-S<W-S<W-R<GX>'A<!@82$B^.SL[\nMB(B(B*`^:B2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AYZI=75U=75U=74E)25+2S8V-C84\nM%*)75WY^\"38V[NX1$0%\\?'QJAX>'ATM_(\"`@(']_?W5U6Q2B%!04%%O`P/'Q\nM[!VQ?EJ]O;U:U.I^L;%H'1T=[\"+Q4?51+2UDK&0MVMK:=75U=76>GGAXGIZ>\nMGIZ>GIYU=74XP(>'AX>'AX>'AX>'AX>'AX>'AX>'G)R<G)R<G.OKZ^OKJZNK\nMJZNKZ^OKZ^OKZ^OKG.2#@X-E965E966#@X.#@X.#@X.#965$1$I*K+GON?'Q\nMMK;<W-RLFEQ@GIYX>'AX`7B>=3A;6V[9V0<'E783$QP<.3F7EY=&1JJJ@`G/\nMSQL):\\@V;FX46ULX=76IGIZI=75U=76>>`&$A(12`0%X)24E)24E)4LE;LC(\nMJJJ`6EI:6EI:6EI:6EI:[Z=H[/&L+=KTC`8WS%%18#<&C(ST*=HM+62LK/&L\nMK&0M+2W:VBDI]/2,AS$QQ&9F9L0QAX>'%%M;6\\!U=74XP%L4HE=75U=7%!04\nM%!1;P,#`%%=75U<46\\`X=76>>`$!`;QV*V%+;M17AX>'SLX%!04%!04%!04%\nM:.]:O;V]O;V]O;WL[.SL:+&QL>_O6KV]O5KO[R5AT`(,0T-#*R4WS,PWS,S>\nMWB<G)^'A<!@82$B^.SL[B*Z(KJ`^FR2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW5U=75U\nM=75U=3A+)4M+-C8V-C8VHE=75WY^\"38V[N[0*P$E?'R@I(>'89!+?W]_?W]_\nM('5U=<!;%*(4%%O`P/$B'5I:O;V]O;V]6EI^[[%H:&AH'>PB45%@*2UD+=HI\nM*2G:VG5U=75UGIZ>GIZ>GGAXGJEU=77`AX>'AX>'AX>'AX>'A\\!;6UM;P'6I\nMZ^OKZ^OKZ^OKJ^OKZ^OKZ^OKZ^OKZ^OKZ^OKG)RA@X-E965E966#@X.#@X.#\nM@X.#@V5E1$1$K+GON2(BMK;<W\")D,%Q@GG@!4H0!`0&$`80!`0&5E1P<'!P<\nM.9>71D9&JJJJJJJJJJJJJJJJJFXV:\\]KR&[`=75UGIZ>=76IGIZ>GIYX4H0!\nM>)Z>)24E)4LE2TLE;LB`JJJ`6EI:6EI:6EI:6N^GI\\;L\\:PMVO2,!C=@45%@\nM-P:,]\"G:+2UD9&2LK*RL9&0M+2W:VMHI*2DIS\\_/@(#JZNK/SRHJ>GI;6\\!U\nM=74XP%M;%!04%*(46\\!;%%O`.#C`%%=7HA1;6\\`X=76IG@%2$[P!84L\"U%>'\nMAX>'A^2<ZZNKJ^ML;&QLL>]:JZOK4ED'V?'L[.SL:+&QL;&Q[UJ]O;U:6F$K\nM*VX,#`Q#*V',8&!@W@T-WMXGX>'A<!@82$B^OCL[B*ZNKJ`^:B2'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AW4X.#@X=74X.,##PR4V-C8V-C8)\"0E75X!^U#9N$6'0*P%+\nM);.DI*01D&X\"U\"#4U\"#4U'5U=<!;%*(4%`4%[,9H[UJ]O;V]O;U:6GY^[^^Q\nM:&AH'1TBS,PW-RG:VBF,C/0IVMIU=75UGIZ>GIZ>>'B>GG5U.(>'AX>B%!04\nM%!04%%O`P'5U=9Z>>`&$Z^OKZ^OKZ^NKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZYRA\nM@X.F965$965E@X.#@X.#@X.#@X-E1$1$K+FGN2(BMK8B(B*:?%:$A(2$A%(!\nM`5*$`7B>GIXI*?2,E&!1E(ST*2G:+61D9&1D+=K:+62LK/'L[UJQ[*PPC#?,\nM-Y0'J:F>GIZ>GGA2`0%XGIZ>GB4EP\\/#PTLEJJJ`JJJ`6EI:6EI:6N_OIZ?&\nM[.SQK\"TI](R4S%%146`W!HST*=HM9&2LK*RLK*RL9&0M+2TMVMK:VMK::VMK\nM:VLV-C:JJJIK:Z+/P#AU=77`6UM;6UM;2DI;P,#`6UO`=3C`%%=7%%O`P,!U\nM=75UG@$!A'8K)6X\"AX>'AX>'A^3DG.OKJZNKJZNKJZNKJZNK4ED'V?'L[.SL\nM:+&QL;&QL>^]O;V]O2L!`6X,#$-#*V$WS`T-#0T-WJ$GX>$8&'`82$B^OCL[\nMKJ\"NH#X^/IN'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\#`P,`X.#@X.,!N;C8V-C9K:VL)\nM\"0D)\"0FQ:VY+)6'0*P'#P\\.NKJZ@?]34U\"`@(-34U'5U=3A;%!046P4%[,9H\nM[UJ]O;V]O;U:6GY^?N^QL6AH'1TB!@8&!O0I](P&!HST*=K:VJFIGIZ>GIZ>\nM>'B>=74XHJ(46UO`P,#`P#AU=75U=9Z>>%*$>)YUG.OKZ^OKZZOKZYR<G)R<\nMG.N<G)R<G.OKZ^OKZYSD@X.F965E965E@X.#@X.#@X.#@X-E941$K+FGN2(B\nMMK;<W-RS>`&$A(2$A(2$A(0!>)Z>VBUD9\"W:](S,43<&C/0IVBUD9&1D+=K:\nM+62LK/$=?EIH(BTIE%%1S)2,V:F>GIZ>GGB$`9Z>J75U=75UPVYN;DLE;LC4\nMR,B`6EI:6N_O[Z>G:,;L[/%D+2F8C#=@45%1S#<&C/3:+62LK/'Q\\?'Q\\?&L\nMK&1D+2TM+2TM+2TMS\\_/S\\_/:VMK:ZJJJH#/S\\]A=77`6UM;6T1$1$1$.#@X\nMP,#`.#C`%%=7%%O`P#AU=74KT\"MV$X0K826'AX>'AX>'AZ'DY)SKZZNKJZNK\nMJZNKZZL3=I4'!_'Q\\>SL[&BQL;&QL;'O6KV]O=`K`6X,#\"$A*]\"AH:&A#0VA\nMH:'AH>$8<!A(2$A(OCL[KJ\"@H#X^/FJ'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\#`P,#`\nM.#@X.,`\"`C8V-FMK:PD)\"0D)\"0D=;DLE86'0T\"LK;FX\"B(AJ7)O4U-34U-34\nMR'5U=77`6Q046P4%[.S&L>]:O;V]O;V]?GY^?N_O[[&Q:!TI]\"DI!O0I]`:4\nME(ST*2DI*2FIGIZIJ:F>GIYU=12B5U=75U=75U=75U=75U=7HELX=9YX`5*$\nMG)SKZ^OKJ^OKG)SDY.2<G)R<G)R<G)R<G.OKZYSD@X.#@V5E965E@X.#@X.#\nM@X.#@X-E1$1$\\;:VN2(BN;G<(G5UGG@!4H124@$!`7B>GMHM+:SQ\\?%D+2F,\nM-U%1S)2,*=HM9&0MVBDI+62L\\>RQ6K'LK-J,S%%18)2,C(R>>`$!`0&$>)Z>\nM=75U.'5U=75U`FY+;M34U,C46EKO[Z>GIVC&'>SQ\\60M*9@&S%'U4<PWE`:,\nM]\"DM9*SQ\\>SL[/'Q\\?'QK*RL9&1D9&1D9&1DHJ*B:VMK:VO/S\\_/SX\"`@.K/\nMSV$E2V5$1$1$1&5E975U.,#`P,!;%%=7HEO`P,!U==#0*RL!=KR'AX>'AX>'\nMAX>'AZ&AY.2<Z^NKJZNKJ^OKZ^MV=I4'N*RLK/'Q[.S&:&C&[,9H[UJ]8=`K\nM`6[@(2$A*X.#H:&AH:&AH:&AH>$891B^2+Z^ODB^H*\"@/CZ@/CZ'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<Q,3$Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'A\\#`P,#`.#@X.,`\"R&MKU`D)\"0D)\"0EK`@)N2TLE)25A86'0\nM@`+(R`)J7\"0DF]34U,AN2W5U=75UP%M;6P4%\\>SLQK'O6EI:6GY:?GY^?EI:\nM?G[OL1TM+=HI*0:,!I24!O3T*2DI*?2,GIZIJ:FIJ:G`6Q175U=7HA1;6\\`X\nM=75U=77`6Q175U=76\\!UG)R<Z^NKZ^N<G.2AH:'DY)R<G.3DY.2<G)R<G)RA\nM@X.#@X-E966#@X.#@X.#@X.#@X-E1$1*(K&Q(O'Q(G_I%,!U=:F>>`$!`7AX\nMGI[:+62LK/'L[/%D+=HI]`;,45',!O3:+2TM*?3T*2VL[&A:6AWQ9#\",S%%1\nM4<S,-\\Q@482$A(0!>)Z>=74X.,#`.#@X.,\"JJH\"`@(\"`[^_OIZ>GQL;L[/'Q\nM9\"TI](PW45%@-Y0&C(ST*=HM9*SQ[.SL[.SL[.SL\\?&LK*RLK*RL\\?'QV=FI\nMJ:G9HS9KHL_/HFMKJJJJ@(\"`IJ:FIJ:FIJ9E965U.#C`P%M;%%=75Q3`P\"70\nM*]#0`1.'AX>'AX>'AX>'AX>'AZ'DY.3DG.NKJZNKJ^OKZP%2=I4'$61D9*RL\nM\\>SL[.SL[.SL:.]:8=`K`6XN(=/3*V5E98.#@X.#@X.#X7!P<'!P2$A(2+ZN\nMH*\"@/CZ@H#Z'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS'$9F8+\"PL+\"PL+9F9F9F9F9F9F9@L+I:4+\"V;$,3'$,3$Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVMK:VMK:S8V-L,\"U`D)\"0D)\"0D)\nM:\\@\";FYN;FY+)24E86'0@(\"`R`)+T)N;?&HE)24E=75U=:EU=<!;P+2TK/'Q\nM[,9HL>_O6EJQ6GY^6EI:6EI^L1VL9\"TMVF#,8,R4!O0I*2DI*?2,C/2I*RLK\nMGIZ>J75U=75U=:FIGIZ>J75U.,!;HE=75U>B%%O`Y)R<Z^OKZYR<H:&AH:&A\nMH>3DY.3DH:&AH>3DY.2A@X.#@X.#@X.#@X.#@X.#@X.#@V5E1$1*(N\\=K*1+\nMJJIDHEO`.'5UGIZ>GIZ>VBUD\\>SL[.SL[/%D+2W:VO2,!C=1492,]\"DI]/3T\nM*2VL[+%:[^RL+3\",-U%145%@S,PW-S>4>'B>GIYU=74XP%M;P,#`P%L4HH\"`\nM@(\"`IZ>GIVC&QNSL\\?%D+=KTC#=@]6`WE`:,C/0IVBUDK/'Q[.SL[.SL[.SL\nM[.SQ\\?'Q\\?'L[.SL=77`=75UV:D'695260<'J=G91JJJJJJJ@X.F@Z:#@Z:F\nMIB4XP%L4HE=75Q1+;DL\":S;9!U)2`8>'AX>'AX>'AX>'AZ'DY.3DG.NKJZNK\nMZ^N<G'@!4GB>=60M+61DK/'L[.SQ\\?'Q[,:QT-`K*P+4T]-*`41$1&5E965E\nM965E965P<'!(2$A(OKZ@H*\"@/CZ@/CZ'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,3$Q\nM,8>'AX>',3$Q,<3$Q&9F\"PNE1T??W]_?W]]Z>M_?1T='I:6EI4='1T='W]_?\nMWT='1T='I:6E\"PMFQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVMK:\\C(\nMR,C(R&[(U-0)\"0G/S\\C(`@)N;FYN;DM+)25A8270@(\"`@`)+8=#0824E)24E\nM=75UJ9Z>=77`P+3E9*RL\\>S&:+&QL<%HL>]^6EI:6EI^L1WL\\:QD+6!@8%',\nME(ST*2F,C(P&!@:,*P%XGG5U=75U=75U=:F>GIZ>=3A;%%=75U?/SZ);6\\`X\nM=9YX`:OKZYSDH8.#@X.#H:&AH:&AH:&AH:&AH:&A@X.#@X.#@X.#@X.#@X.#\nM@X.#965E1$1*(GXB2V1DFMK:HA1;P#AU=75U==HM9*SL[&BQ:&AH[.RL9\"TM\nMVMHI]/0&S/5@E(R,C(ST*2VL[+%:[QWQ9-J,E%%1S`:,*2GT])B8F)CT=75U\nM=3C`6Q04%%M;6Q175U=7@(\"`IZ=HQL8=[.SL\\:PMVBF,!LQ14<R4C(ST]\"G:\nM+61DK/'Q[.SL[.SL[.SL[.SL[.SL[.SL[.R>=3C`P,!U=75UJ:FIJ0=94@?9\nMHZ-&1D;N[NX'@X.#@Z:FIJ8EPP+(R,C(R,_/S^K/SZ(VV:E94EG9=5L4HE>'\nMAX>'AX.AH>3DG.OKJZNKZ^N<GG@!4@&>J2TM+2UD9*SQ\\?&LK*RL\\>SL*RLK\nM*P+4U,A*`4I*2D1$1$1$1$1$1$1$1'!P<'!P2$AJH*`^/CX^/H>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,<1F\"Z6E1T='W]_?W]_?W]]Z>BHJN[M>7EY>`P,#`YF9F9D#`P->7EY>7EZ[\nMN[M>7EY>7EY>7EY>7KN[N[N[*BIZWT='I:4+9F;$,3$QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AVMK:VMK:VO(R&[(U-2`S\\_/U,@\"`FYN2TM+)25AT-!A86%A\nM@(\"`JJI+)25A825+)24E=76IGIZ>GG5U=;0M+2UD\\>SL:+&Q:$U-:.]^6EI^\nM?EI^L1WL[/%D9\"T&-V#U43<&C(R,C(R,!@&>GIZ>GIZ>J:F>GIYU=75U=75U\nM-FMK:\\_/S\\_/HEM;P,`X=9YX`81XJ75U=75U=75UJ9Z>GIYU=75U.%L4;&QL\nM55555>Z#@X.#@X.#@X.#@X-E965E1$1*(K'LK\"W:,#`PHA1;6\\#`.#BLK*RL\nM\\>QHL>_O[[&Q:,;LK&1D+60M+=HIC)1@45',E`:,]-ID[+%:6K'L\\2TPC,Q1\nM-_0M9&0M+=HPVMHMI*1DP%M;%!04%%M;%%=75U=75U>`:,;&'>SL[.SQK&0M\nM*?2,-V#U8#<&=@$K:FJDI*2NKJZNB(C<W+FYN;FYN;G<W-S<B(B(B`&>J77`\nMP,`X=75UJ9Z>GIYX`0&\\A\"O0V3:JJJJJ-C:CHS9N;FYN2VX\"R,C4U-3(;FLV\nMV0>54I59!]G9-EMKS\\_/S\\_/SZ:F@Z'DY.2<Z^OKG)PSGIX!4GB>==K:VBTM\nM9*RLK*QD9&1D9*SQ*RLKT,C(R`)N2DI*2DI*2D1$1$1$1$1$1$1E965$1'!J\nM:FH^:IN;/H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<QQ&8+I4??>GHJ*BJ[NUY>7@,#`P,#`P.9/3W2TG%Q&1D9&;\"PL+\"P\nM4U-34U.PL!D9&1EQ<7'2TM+2TM+2TM+2TCT]/3V9F0->7KLJ>M_?1Z4+\"PL+\nM9F9FQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVMK&QL;&VMK:P+(U%?(R'\\\"`FY+\nM2TM+D)\"086%A86$K*RL``*(4JJJJ1B5A)25+)6$E=76IGIYXGIZI=9/:VMHM\nMK/'LQF@='4U-:+%:6EI:6EI^L1WQ\\:SQK\"V,!C=14<P&C(R,EY>7EY>7!P<E\nMV=E;P,#`P%LV-C;9V=FCHS9K:\\_/S\\_/HEM;P,`X=9X!A`&>J75U=9Z>GIZ>\nMGG@!>)Z>GJEU=<`4;&QL55555555555555555555555555555?%H6FBL,#!<\nMC%:,%!1;6UM;[.SL[.SL:+%:6KU:6EI:[['&[/&LK*RLK&0M*8PWS%%1S)0&\nMC\"DM[&A:6N]H(JS:C)11-_0M\\?'QK&1D9*SQ\\?'Q\\?$B%!046UM;%*)75U=7\nM5U=7HELX=9YX4@&>=<!;HE=7`0$!4G9VE5DK:J2DI*2NKJZNB-RYN;FYN;FV\nMN;FYN=S<W-S<W%)XGG4XP,`X=75UJ9Z>GIZ>GGA2`:EU6Q2BHH\"JJJJJJJJJ\nMJJJJ-C;(R-34U,AN2R70V:D'69524I59!]DV:\\_/ZL_/HFM$IJ:#@Z'DY.3D\nMY#DK,Y5V$U*>VMK:VBTM9&2LK&1D+=K:+62LT&%A)0+(JJIN2DI*2DI*2DI$\nM1$1$1$1$1$1E9::FIJ8D:FHD)\"0D)(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>',3'$9@NEI4??>BJ[7@,#F9F9/3T]F9D]/3T]/=+2<7$9&1FP\nML%-3[>WMBXN+BXN+-#0TQ<4T-#0TBXOM[>WM[>WM[5-34[\"PL+\"PL+\"P&1EQ\nM<=(]F0->7KN[NRIZ>GK?WT='\"V9FQ#$Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ04%**B\nM%!04%,C4R%?4:VO4`@)N;FZ0P\\/#D&%A86$K`````*(4%,`X=3@E)4M+)=#0\nM=76>GG@!`7B>GE`I*2DM9/'L[.P='4U-QFCO6EI:6EI^L1WQK.SQK)H',U)V\nMO!P<'!PY.9=&JJHV-C8V:,9H:&@46S8V-MG9V=FIV77`:\\_/@,_/HEO`P,!U\nMJ9X!A`&>J75UGIZ>GG@!`812`7B>GIYU=<`4;&QL;%555555555555555555\nM555555555?%H?B*:,(R,!@8&HA04HN_O6N_O[^_O6KV]O;V]O;U:6N^Q:.SL\nM\\?'Q\\:PM*8R4S%%1S)2,C/0M\\<:Q6EJQ[*PM](Q@8(PM\\>SL[/'Q[.SL[.SQ\nM\\?'Q\\?'QP,#`6Q2B5U=75U=75Q1;=9YX4@&>=3A;%%=7`0&$=A.\\A`$KI*2D\nMKJZNKJZ(B-RYN;:VMK:VMKFYN;G<W-S<W(1XGG5U.#AU=75UJ9Z>GIZ>GIX!\nM`9YUP$I*TU]?7U^-C8V`@,_/S\\_/S\\_/U,@\"2R5A8=\"CV=E94I59V:-;HL_/\nMZL_/SZ)$1$1EIJ:#H:&AESF7,Y5V$U(KVMK:VBTM9&1D9&0MVBDI*=HM2TLE\nM)0+(JJJJ2DK3T]-*2DI$1$1$1$1$1&5E965E920D)\"0D)\"36)(>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<QQ&9F9@NE1T??WWHJ*KM>`YF9/3W2TG%Q<7%Q<7%Q\nM&1D9L+!34^WM[8N+BS0T-,7%Q6=G9\\5G9V=G9V=G9V=G9V?%Q<7%Q<7%-#0T\nM-#0TBXN+BXN+BXOM[5.PL!D9<=+2/9F9`P->7EY>NRIZ>M_?W]_?W]_?WT='\nM1T='I:4+\"V9F9F9F9F;$Q,0Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AQ04%!2BHJ*BHM345Z(\":P(\"`FYN;FYN;FYN2Y!A86%A*P``\nM`!046\\!U=3C`P,`X==`K=76>G@$!`0$!GLV,]/3:,)JL\\>SL[$U-[\")HL>]:\nM?GZQ:!VL(B*LK)IV$QP<'#DY.9>71JJJ:&BQL6CL[.SL[.SL\\76CV=G9V:F>\nMGG5U6Z)7S\\_/6\\#`P'5UGGA24@&>GJFIGGAX`0%2A(2$`0&>GIYU=5L4;&QL\nM;%5555555555555555555555555552+O[_&SC`:4-\\PW5[V]O;V]O;V]O;V]\nMO;U:6EI:6KV]O;U:6K'&[.SL\\:PM*?0&S%%1E(R,]\"DMK.RQ6EIH[*PM*8Q@\nM48PM\\>SL[.SL'<;&[.SL\\?'Q\\:RL9&1DK!2B5U=75U=75Z);.'6>`0&>=3C`\nM6Q17>)656;R\\`0'0I*2NKJZNKHB(W-RYN;:VMK:VMKFYN=S<W-S<W%)XGG5U\nM=75U=9Z>GIZ>GIZ>GIX!A*&#94I*2E]?7U^-C8V-7U_HZ,'(-C8V-FYN)25A\nMT-`K*ZFI695260?9V38V-FMKS\\]*1$1$1&6F@Y?NE^Z7EUEVO)4K*2DIVMK:\nM+2UD+2W:*?3T]\"G#2TLE86[(1D9&2HV-C=-*2DI$1$1$1$1$965E965E@R0D\nM)\"0D)-:!UH>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@NE1]]Z>BJ[N[M>7@.9F3W2<7$9\nM&1FPL%-34U-34U-34^WMBXN+-#0T-,7%Q<7%9V</#P],#P\\/#P\\/#P\\/#P],\nM3$Q,3$Q,3`\\/#V=G9\\7%Q<7%-#0T-#2+BXN+[>U34[\"P&1EQ<=+2TM+2/3V9\nMF9F9F9F9F9F9F0,#`UY>N[LJ*GIZW]_?W]_?WT='I:4+9F9FQ#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ04%!2B5U=7R-345Q04`@(\"`FYN\nM;FYN`@(\"`FYN86%A86$K*P!;6SAU=77`6ULX=9YX=76>>`&$A(0!`2B4!HR,\nM,\"UD\\?'Q[$WE(B(B'6AHL6AH'2+QK&1DFK.SEY>71JJJJNSL:&CL[.S&QNSQ\nM\\?'Q[.SL\\60MV=FIGIZ>GJEUP!175U>BP#AUP'5UGGA24@%XGIZ>GG@!`5*$\nMA(2$4@%XGG5UP%L4$FQL;&QL;&QL;&QL;&Q5;&Q555555555;!U^:*PPC.',\nM8%%@O;V]6EI:6EI:6EKOL<;L[.SL:+'OO;V]6K'L[/&L9\"TM*?2,-U%1E(R,\nM]\"DMK.RQ6EIH[/$M*8S,48S:K\"+L'1T=:*=HQAWL[.PB\\?'Q\\?'Q\\>P=MN^V\nMHA04%!04P'6>`81X=77`6Q17G@$!`5)2!ZG0:J2DKJZNB(B(W-RYN;FVMK:V\nMN;FYW-S<B(B(B`&>J75U=75UGIYX>'AX`0%XH:&<ZYRA@T1*2E]?7U]?7U^-\nMC5]?Z,%-34WE36YN;F[9)25AT`%V4@$'J75UP%M;HL_/S\\]*2DI*1$1$1D9&\nM[I<Y.1P<=I4K*2GT*2G:VBTM+=HI]/3T]\"E+2R5A827([D:-C=/3TXV-2DI*\nM1$1$1$1E9::F@X.#@R0*\"B0DUI^?AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F\"T??>BJ[7EX#`YD]TM)Q\nM<1D9&1D9&1FPL%-3[>WMBXN+BS0T-,7%Q<7%9V=G9V=G9V</#P\\/#P\\/#P\\/\nM#P\\/#P\\/#TQ,3$Q,3$Q,3$Q,3$Q,3$P/#V=G9V=GQ<7%Q<7%Q<4T-#2+BXN+\nM[>WM4U-34U-34U-3L+\"PL+\"P&1D9<7'2TCT]/3V9F9D#7EY>NUY>N[N[*BHJ\nM>M_?1Z4+9F;$Q,0Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<4%*)7\nM5U?4U-345Q1;`@(\"`@)N;@(\"`@+4`@)N;FYN86%A86'`P'5U=77`6\\!UJ9X!\nM=76>`82$4E*$.2C,-U:,,#`M9&2LY>7E;*SQ\\2(B(AWL(O'Q9*R:9)JSERTM\nM9&2LK/'LQNSL\\>SL[*QD9&1DK/'Q\\60M*?2>GIYXGJEUP!175U<4P#@X.'5U\nMGGA2A`%XGIZ>GG@!`82$A(2$A`%XGG5UP%L4$DU-;&QL;&QL;&QL;&QL;&QL\nM;&Q5;&QL;&A^(BV,C\"=145%1L;%H:&AH:,;&[.SL\\:QD9&1D\\>RQ6KV]6FCL\nM[/%D+=HI*?0&S%%@E(R,C/3:K.RQ6EI7%%O`=9X!`9YU.%L4%!045U=75U=7\nM5U=7HJ*B5U=75U=75U=7%!04%!1;P'6>>`%2GG5UP!17GG@!4H12>)[0:J2D\nMKJZNB(B(W-RYN;FYN;FYN;G<W(B(B(B(B'B>=75U=76IG@%24@T-#0WKG)SK\nMZ^NA@V5$2E]*7U]?7U]?7XU?Z.A-3>7EY4U-34W.50<S`783$U(!GJEUP%L4\nMSU?/S\\]*2DI*2FNJ-D;91D;NESD<'`#T]/2,]/0IVMHM+=HI]/3T]\"E+)6%A\nMT&$\".3F-C8V-C8V-2DI*1$1$1&6FIJ:#@X.#)`J!\"B0DUM[UAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\"Z5'1]]Z*KL#\nMF3W2TG%Q&1FP4^WMBXN+-#0T-#0TQ<7%Q<7%Q<7%Q<5G9P\\/3$Q,#P\\/#TQ,\nM3$Q,3`],3`\\/#P]G9P\\/#P\\/3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3`\\/9\\7%Q<7%\nMQ<7%Q<7%Q<7%Q30T-#0T-(N+BXN+BXOM[>WM[5-3L+\"PL+`9&7%Q<7'2TCT]\nMF9F9F9F9F0,#`P->7KN[*BHJ>M_?1T='I:4+\"V9FQ,0Q,3$Q,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>BSU?/R-34U-175Z(4`@(\"`@(\"`@(\"U-34U-34`@)N;FZ0\nM86$X=75U=77`6\\!UGGC`=76>`80!`0&$.3E1S)0&7#`PLRTMY>5C!9J:9*RL\nM\\?'Q\\:RL9)JLFIJS]-HM+2UD9*SL[.RLK*RL9\"TMVMK:+63QK&3:](R,C)YX\nMGJEUP%NB5U<46\\`X.'5UGG@!A%(!`7B>GG@!4H2$4E*$A%)XGG5UP%L4$A(2\nM34U-34U-34U-36QL;&QL;&QL;&Q-['ZQ\\3`&E-Y@45%1\\>SL[.SL[.SQK&0M\nMVBGT]\"DM9.P=G9V=G9V=G9V=G9V=G9V=G9V=G4+5U=625!;)3`\\T[;`9&7'2\nMF0.[>D=N6Q04HE=75U=75U=75U=75U=75U=75U<4%%M;6UM;.'6>GGB$>)YU\nMP!17GG@!`812>\"MJ:FJ@KJZNB(B(W-RYN;FYN;FYN=S<B(B(B(B(B)ZI=75U\nM=76>>(12A(2$A(2$A%+KZYRA@X-$2DI*2E]?7U]?7U]?Z.C!34WEY4U-34U-\nM5;10.2A0`2MU=3C`%%=75U=75U=*2DI_`DMN-JI&JJ-&61P<.>[TC(P&C(ST\nM*=HM+=HI]/3T*=IN)25A8=!N!XV-C8V-C8V-C5_H1$1$1&6FIJ:FIJ:#)`J!\nM\"B36G_7>AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\"Z6E\nM1]_?WWHJNUX#F9D]TM)Q&;\"P4^WMBXLT-,7%9V</#P\\/#P\\/#P\\/#V=G9V=G\nM9P\\/#P],3$Q,3`\\/#P\\/#P\\/9V=G9\\7%Q<7%Q<7%Q<7%9V=G9V</#TQ,3$Q,\nM3`]G9V?%-#0TBXN+BS0T-#0T-,7%Q<7%Q<7%Q<7%-#0TBXOM[5-34[\"PL!D9\nM&1D9&1EQ<7%QTM+2/3T]/3V9F9F9F9D#`P,#7EY>7EZ[NRHJ*BIZ>GK?WT>E\nMI0MF9L0Q,8>'AX>'AX>'AX>'AX>'AX>'AX?/5U?(R-34U-175U<4%`(\"`@(\"\nM`M34U-34U-1KU-34`@)N;L.0=75U=77`6\\!UG@'`.'6>`80!`0&$'!Q18#<&\nM!HPP,#`PY>5559J:FIJ:9/'Q9&2:9)J:FIJS?/3:VMHM+:SQ\\:QD+2UD+=HI\nM]\"DIVBUD9-KTC(R,C(R,GJEU.,`45U=7%%O`=75UGG@!A(2$`0%X>'@!4H12\nM4H2$A(0!GIYU=<!;$A(2$A(2$A(2$A(2$A)-34U-34U-34T2L5KLK\"D&)PU1\nM45&4%A865%14DM75U=5\"0IV=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nM0M75U9)45!;)R8E,9S13L!EQ<=(]`P->7KLJWT<+9C&'AX>'AX>'AX>'AX>'\nMAX>'AUO`.'6>G@&$>*EUP!175YYX`812>\"N8:FJ@H*ZNB(B(W-S<$!`0N1#<\nMW(B(B(B(B(B(KJEU=3@X=76>`80!`0$!`0$!A(2$`7B>GG4X6Q1;%!2B5U=?\nM7U]?Z.C!34WEY4U-34U-5;10*#G-4+0X6\\!;%!2BHA04%!1_?W\\\"`DM+)25&\nM8>Z7.1R5.0?TC`:4!HSTVBTM+2W:*2DIVBT\"`@(\"?RM+T%]?7U]?C8V-C5]?\nMZ$1$1*:FIJ:FIJ:F)`J!\"B36WI^!AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$Q&9F\"PNEI:6EI:6EI4='\nM1T??W]]Z>GIZ*BJ[7@,#F9D]TM)Q<1D9L+!3[>V+BS0T-#3%Q<5G9V</#P],\nM3$Q,3$P/#V=G9V=G#P\\/#P\\/#P]G9V=G9\\4T-#0T-(N+[>WM[>WM[5-34^V+\nMBXLT-,7%Q<5G9\\4T-#2+BXN+[>U34[\"PL%-3[>V+BXN+BXN+B^WM[>WM[>WM\nM[>U34U-34U-3L+`9&7%QTM+2/3T]/9F9F9F9F9F9F9F9F9F9F0.9F9D#`P,#\nM`UY>7EY>N[N[*BIZW]]'1Z6E\"PMFQ#&'AX>'AX>'AX>'AX>'AX>'AX>B5\\C(\nMR,C4U%=75U>B%`(\"`@+4U-1KU-34U-34U-34U-34`@)+=75U=77`P'5U>(3`\nM.'6>`80!`0&$'!Q18#=6C(R,,#`PY>7.SLZSL[.:9&2L9)J:L[.SL[.S?(PI\nM*2G:VBUD9&0MVBTMVO2,C/3T*=K:VBF,!HR,]/2,]\"DM=3A;5U=7HEO`=75U\nMJ9X!4E*$A%(!`0$!A(2$A(12A(0!>'B>J757$A(2$A(2$A+!P<'!$A(234U-\nM31(2$A+!O>_L+?0WW@WU43?TB<G)%E14DM75U=5\"0D)\"G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G4)\"0M75U=75DA;)R8E,Q32+B^U3L+`9<7$]F0->\nM7BI'9H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AYYX`80!>\"N8:FIJ\nMH*ZNKHB(B-S<W!`0$!#<W(B(B(B(B*ZNL75U=3@X=:F>`5)XGIZ>GIYX>`$!\nM`7B>=77`6Q04%!175U=75U=7HA1;P'5U=77E34U-5;10S3DH4%\"T!6LVV9YX\nM>'B>G@(\";DM+2TM+)25AT.Z5'!Q9[O2,C`:4!O0IVBUD9\"TMVMHM9-34U-34\nMC2LET.CHZ.A?7XV-C8U?7T1$1$2FIJ:FIJ9J)`H*\"@J?]8'6AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<#\nMF0,#7EY>7EY>7@,#7EY>`P.9F3T]/3W2<7$9&1D9&1D9L+!3[>V+-#3%Q6=G\nM9\\7%9V=G9V</#P\\/#P]G9\\7%Q<7%Q30T-#0T-(N+BXOM[5-34U.PL!D9&1D9\nM&1D9<7%Q<1D9L%-3[>V+-#0TBXOM[>WM[5-3L!D9<7%QTM+2TG%Q&1D9&1D9\nM&1D9&1D9&7%QTM)Q<1D9&1D9<7%Q<7%Q<=+2/9F9F0,#7EY>7EY>`P,#`P,#\nM`P.9F9F9F9F9F9F9F9F9`P,#`P->7EZ[NRHJ*GK?WT='I:4+\"V;$Q#$QAX>'\nMAX>'AX>'AX>'AX>BR,C(R,C4U%=75U=7HM34U-34U-34U-34U-34U-34U-34\nMU-34GIZ>J75U=76>=G;`.'6>`80!`0&$'!Q18#<&!HR,,##EY6/.SLXP,#\"S\nMLYJ:9+.SL[.SLWQ\\?%:,]/3T*=HM+2W:VMHM*8R,C/0I*?3T*?2,C(ST*2GT\nM*=HM9*SLHE=75UO`=75U=9YX`0$!`812`0$!A(2$4@$!A(12`0$!GK`2P<'!\nMP<'!P<'!P<'!P<'!$A(2$L'!P>CH6L:LVHQ@#=Z?-XS:B<D6%A945)*2DM75\nMU=750D*=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9U\"0D+5U9)4%A;)\nMR8E,9XM3L!D9<=+2/3T]F5XJ>GIZWZ4+Q(>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AZF>`80!`=!J:FIJH*\"NKHB(B-S<W!`0N1#<W(B(B(B(KJZN[*EU=75U\nM=9X!A`&>GJEU=76IGIZ>GIZI=77`6Q04%*)75U=75U=7%!046SAU=:FI=75U\nM=:F>>`&$*%\"3!07.V0<!A`$!`4M+2TM+;FZ0)25A*RN$''8Y.?3TC(P&C/0I\nMVBUD9&0M+61DK-34P<'/S^IAZ.CHZ.CH7U^-C8V-Z.C!P<&FIJ:FIH-J)\"0*\nM\"I_UG]:'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>PL+`9&1D9&1D9<7%Q<7%Q&1FPL+\"PL+\"PL+\"P4U-3\nM[>WMBXLT-#3%Q<7%Q<7%Q<7%Q<4T-#0TBXOM[5.P&1D9&1D9&1D9&1D9<7'2\nMTM+2TCT]/3T]/3T]TM+2TM+2TM)Q<1FPL%/M[>WM4U.P&1D9&1EQ<=+2TCT]\nMF9F9F0,#7EY>7EY>7EY>7EZ[N[N[N[N[N[N[N[N[NUY>7EY>`P,#7EZ[N[LJ\nM*BHJ*BHJ*KN[NUY>7@,#`P,#F9F9F9F9F9F9F9F9`P,#`P,#7EZ[NRHJ>GK?\nMWT='1Z6E\"PL+9F;$Q,3$Q#$Q,3&'AX>'AX?(R,A_R-345U=75U=75U?4U-34\nMU-34U-34U-34U-34U-34U-34U'B>GJEUT\"L!O`+`.'6I>%*$`0&$'!Q1S#<&\nMC(PI,##EY<[.SLXP,#\"SLYJSL[-\\?%Q\\?'Q<7%8&C(R,C\"G:VBW:VMHMVO2,\nM]\"DI](R,]/3T]\"G:VMK:VBUDK/'&6KV][ULX=75U=9Z>>'AX>`&$4@&$A`$9\nM&1FPL%-34U-34U/!P<'!Z.CHZ.CHZ.CHZ.C!P<'!P>CHZ.CH[R)D,#=1#9_6\nMC#`8B8F)B8G)R186%E14DI+5U=75U4)\"0D*=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9U\"U=75U9*25%06%LF)3$QGQ<4T[5.P&1EQ<=(]F0.[>M]'I0MFQ#&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AW6>`80!*V%J:FIJH*\"NKJZ(B-S<$!\"YN1#<\nMW(B(B(B(KJZD[)ZI=:F>G@%24GB>=75U=75U=76IGIYU=3C`6Q04%*)75U=7\nM5U=7HJ*B%%MU=9Z>GJEU=:F>>`&$`9ZIP&MKHP<Y4E(!;FY+D)`E)24E)1$1\nM*P&\\$U)9*_3TC(R,]/3:+2UD9&1D9*SQ[*=;%!04%%?0P<'!Z.CHZ%]?7XU?\nMZ.C!P<&FIJ:F@^1J)`H*@1?>@22'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?%Q<7%Q30T-(N+B^WMBXN+\nM-#0T-(N+BXN+BXLT-#0TBXN+BXN+-#0T-(N+[5-34[`9&7%Q<=+2/9F9`P->\nM7EY>7@,#`YF9F0,#7EY>7KN[N[N[NUX#F3T]/3T]TM+2TG%Q&1D9&1D9&1EQ\nM<1D9&7'2TCV9F0->N[N[*BHJ*GK?1T>EI0L+I:6EI:6EI:6E\"PL+\"PL+\"PNE\nMI4='W]_?W]_?W]_?1T='1]_?WWIZ>BHJ*KN[NUY>7EY>7@,#`P,#`P,#`P,#\nMF0,#F0,#`UY>N[LJ*GIZ>M]'1Z6E\"PL+9F9F9F9F\"V9F9F9F9L3$,3'(R-34\nMU-175U=75U=75U?4U-1KU-34U-34U-34U-34U-34U-34U`%X`2LK*P&$$UO`\nM.'5UG@&$`0%2'/51S#<&C(PP,##E8\\[.SL[.,'PP,'PP?%Q<7%965E965I1@\nM!@8&C(ST*=HI*=K:VBDIVMHI](R,]\"DI*=HM9&1DK/'Q[.RQO;U::.RL9&1D\nM=9Z>G@$#F3W2TG%Q<7%Q<7%Q<1D9&1D9&1G!P>CHZ.CHZ.CHZ.CHZ.CHZ.CH\nMZ.CHP<'!':S:C&#UWH'6\"F2^-&=,3(F)B8G)R<G)R1865%22DI*2DM75U=75\nMU=750D)\"0IV=G9V=G9V=G9U\"0D+5U=75U=75DI*25%06%LG)B8E,3&?%BU,9\nMTM(]F0,#`P->NWK?W]]'I68QAX>'AX>'AX>'AX>'AX>'AW6>>(0!T&IJ:FIJ\nMH*\"NKJZ(B(C<W!\"YN;D0W-R(B(B(KJZD\\:R>GIX!4H2$`7B>=77`P#@X=75U\nM=75U.,!;%!04%!2B5U=75\\_/5\\_/HEO`=9Z>>)ZIJ9Z>>`%24GBIHUM;HP=2\nM4H2$;MF0D!$186%A86$K*U)VO((`*2GT]/3T]\"G:+2UD9&1DK/'L[Z>XN,#`\nM6U=-3<'!Z.CHZ.CHZ%]?Z.C!P<%-34WDY\"1J)`J!G_6!UB2'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>)\nMB4Q,3$Q,3$Q,3$Q,3$P/9V=GQ<7%Q<7%-#0TBXOM[>WM[>U34[`9&7'2/3V9\nM`P,#`UY>NRIZ>GHJ*BHJ*BIZ>GHJ*BIZ*BIZ>GIZ>GIZ*KM>7@,#`P,#F9D]\nMTG%Q<=+2/3T]/=+2TM+2/3V9F0,#7BIZ>M_?WT>EI:4+9F;$,3&'AX>'AX>'\nM,8>'AX>'AX>'AX>',3$Q,<1F9F9F9F9F9F9F9F8+\"PL+I:6E1T??>GIZ>BHJ\nM*KN[NUY>7EX#`P,#`P,#`P,#7EY>7EY>7EZ[N[LJ*GIZW]_?WT='1T='1Z6E\nMI:6E\"PL+\"V;$,3'(U-34U-175U=75U=75U?4U-34U-34U-34U-34U-34U-34\nMU-34U-1V`0$K*P&\\=EO`P#AUG@&$`0$Y.?51S)2,C#`P,+/ESL[.SL[.,%Q<\nM7%Q<7%Q65E:4-S<W-Y\\7E)24E)2,]-HI*=K:*2DIVBW:]/3T*=HM+62L\\?'L\nM[.SL[&A:O5JQ[/'?W]_?>GIZ>GHJ*KN[N[M>7@,#`P,#7EX#`P,#7EX2P>CH\nMZ.CHZ.CHZ.CHZ.CHZ.CHZ,'!P<%-\\60IE%'>GX'6)*P[OAFP[8N+-,5G9P\\/\nM3$R)B<G)%A945%145%14DI*2U=75U=75U=750D)\"0D)\"0D)\"0D)\"U=75U=62\nMDE06%LG)B4Q,9\\4TB^VP&=(]/9F9`P->7EY>NRHJ>M\\+Q(>'AX>'AX>'AX>'\nMAX>'AX=UJ1,!)6IJ:FJ@H*\"NKJZ(B(C<W+FYN;FY$-S<B(B(KJ2DK&2'AX>'\nMAX>'`7B>=3C`P,`XP,#`P,#`P%M;%!04%!04HE=7S\\_/S\\_/SZ);=:F>>'B>\nMGIZ>!Y524@>IV38VHP=2`0&0$1$1$1$1$1$1$2LK*U(3O``S*2GT]/3T]\"G:\nM+2UD9&2LK.SL[\\;/S\\_/S\\]-34W!P<'!Z.CHZ.CHZ.C!P<%-3>7DY\"1J)`J?\nM%Y_6)\"2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>)B8F)B8F)3$Q,3$Q,3`\\/9\\7%Q30T-#2+B^U34U.P\nM&1D9<7'2F0->N[LJ*BIZ>GIZ>M_?W]_?W]_?1T='1T='1T='1Z6EI:6EI:6E\nM1]_?WT='1]_?WWIZ*BJ[NUY>`P,#`P,#`UY>N[N[*BHJ*GK?I0L+9F;$AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS$QQ,3$9@L+I4='1]_?WWIZ*BJ[NUY>7EY>7EY>7EY>`P,#`P->7EY>N[N[\nMN[N[*BIZ>GK?W]_?W]_?W]_?1T='I0L+9L34U-34U-175U=75U=75U>BU-34\nMU-34U-34U&O4U-34U-0\"`@(\"`@*\\=@$!*X0385O`P,!UG@&$`0$Y.?51S)2,\nMC#`PL^7ESL[.SL[.?'Q<7%Q<5E96E)]@%Q<7%Q?U$S?,S,P&]-K:*2DI*2G:\nMVMK:]/0IVBTM9*SQ[,9HL;%HQ,3$9L3$Q,3$Q,3$Q&9F9F;$Q&9F\"Z6E1T='\nMI0MF9F9F9F9F9A(2P>CHZ.CHZ.CHZ.CHZ.C!P<'!P<'!34U-K\"V,S%'>@=;6\nMUCZ^(=+2<7%Q&;!3[>V+BXLT-,7%9TQ,3(F)B<G)R<G)%A865%14DI*2DI*2\nMDI*2U=75U=75U9*25!86R<F)B8E,3&<T4[`9&7'2/9D#7KMZWT>E\"\\0QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<VV;PK)6IJH*\"@H*ZNKJZ(B(C<$+FYN;FY\nMN;D0W(B(KJ2L9&2'AX>'AX>'AX>'AX>'AX?`6Q046UM;6UM;%!04%!04HE?/\nMS\\_/S\\_/SZ);-MFI!WAX>)Z>GI52`0>IV=FCHZF54@$1$1$S,S,S,Q$1$1$S\nM,W83@@#:*2GT]/3T]\"DIVBUD9&2L\\>QH?L;QSU?/5^7E34U-P<'!P<'!Z.CH\nMZ.C!P<%-34WE)\"0D)(&?]0HD)(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>)B8F)B8E,3$Q,3$P/9\\7%\nM-#2+[>U34U.PL!D9&7%QTCV9`UXJ*GK?WT>E\"PMF9F9F9L3$,3$QQ,1F9L3$\nMQ#$Q,3&'AX>'AX>',<3$Q,1F9L3$Q#'$Q&8+\"Z6E1]_?W]_?W]_?W]]Z>GIZ\nMWT>E\"\\0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q&8+\"Z6E1T??>GHJ*BJ[N[N[NUY>\nM7EY>7@,#7EY>7EY>7EZ[N[LJ*BHJ*BIZ>GIZ>GIZW]_?W]]'1Z6EI0O(U-34\nMU-175U=75Z*B5U=7U-34U-34U-34U-34U-34U-0\"?P(\"`@)_`82$=KP3%%O`\nMP,`XJ0&$`0$H.?51S)0&C#`PL^7ESL[.SL[.SEQ<5E965@HW8!<7]?7U]?7U\nM]6!146`&*=K:*2DI]/0I*=HI*2G:+2UDK/'PAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ(2P<'HZ,'!P<'!P<'!P<'!P<'!\nMP4U-34WQ9\"F446\"?@=;6UKX[(;Y>7EZ[7@,#`YF9F9D]/=)Q&;!3[8O%9P],\nM3$Q,B8F)R<G)R<G)%A86%A86%A86%A86%A;)R<F)B8E,3`]G-(OM4[`9TCV9\nM7BK?WT>E\"\\0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<X*W;0:FIJH*\"N\nMKJZNKHB(B-S<$+FYMK:VMK:Y$-R(KJ1D9&0MAX>'AX>'AX>'AX>'AX>'AX>'\nMAX<\"%!04%!2B5Z*BHE=7S\\_/S\\_/SVMK-MG9J0<'>`>I!P&56:G9V=G9H]FI\nM`6'0*P`K*S,S,S,S,S,KE783`\"O:*?3T](ST]/0IVBTM9&2L\\>RG[^RL%%<4\nMSL[.SDU-34U-P<'!P>CHP<'!P<%-34WE)\"0D)($7GR0D)(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=,\nM3$Q,3$Q,#V?%Q30TB^WM4QD9<7%Q<7'2TM(]/9F9`UXJ>M]'I0MFQ,3$Q#$Q\nM,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F\nM\"Z5'1T='1]]Z>GK?1T>EI0O$AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<3$9F8+\nM\"Z5'W]]Z>BHJ*BJ[N[N[N[N[NUY>N[N[N[N[NRHJ*BHJ*BHJ*BHJ*GIZ>M_?\nMW]]'1Z6E\"PL+9F;(R,C(R,A75U<4%!04HE=75]34U-34:]34U`(\"`@(\"`G_4\nM`@(\"`G]_`783$[QV%%O`P,!UG@&$`0$H.?51S)0&C#`PY6/.SL[.SL[.59M6\nM5E96\"C=@%_7U]?47%Q<7%Y51]5$&*=K:*2DI](ST*2G:VG6'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ(2P<'H\nMZ,'!P<'!P<'!P<$2$A(234U-34UDVHQ@492!UM;6UA@A.SNE\"PL+\"PMF\"Z6E\nM1T='W]]Z*KM>F=)Q&;#MBS0TQ6</3$Q,3(F)B8F)B8F)B8F)B8F)B8F)B8E,\nM3`]G9\\4TBXOM4[`9<3U>*GI'\"\\0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AVY+4H1A:FIJH*\"NKJZNB(B(B-S<N;FVMK:VMK:YN=R(KJ1D+2TMAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U=75U?/S\\_/S\\]K:VMK-MG9V0<'\nME5D'65('J:G9V:.C-J/9G@```8*\"@H(`*RLK*RLK@A.\\*]HI*?2,C(R,C(ST\nM*=HM9&2L[.RGI^QD:G6>SL[.SFQL34U-31+!P<'HP<'!P<%-34V@)\"0D\"H'U\nM@20D)(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=,3`]GQ<7%-(OM4U.P&7%QTCV9F9F9`P->7KN[NRIZ\nMWT>E\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS'$Q&9F\"Z6EWWIZ>GHJ*GIZWT<+9C&'AX>'AX>'AX>'AX>'\n-------- End of part 8 of 14 --------\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5495, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Jemison on Star Trek (Better Ideas)\nOrganization: Express Access Online Communications USA\nLines: 11\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr25.154449.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n|\n|Better idea for use of NASA Shuttle Astronauts and Crew is have them be found\n|lost in space after a accident with a worm hole or other space/time glitch..\n|\n|Maybe age Jemison a few years (makeup and such) and have her as the only\n>survivour of a failed shuttle mission that got lost.. \n\n\nOf course that asumes the mission was able to launch :-)\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5496, "properties": {"category": "rec.autos", "text": "From: brandt@cs.unc.edu (Andrew Brandt)\nSubject: 4Runner and Pathfinder recent changes.\nOrganization: The University of North Carolina at Chapel Hill\nLines: 9\nNNTP-Posting-Host: axon.cs.unc.edu\nKeywords: 4runner, pathfinder, change, update\n\nI am interested in finding out how the 4Runner and Pathfinder have\nbeen updated in the past few years.  Like new engine, suspension and\nthe like.  I noticed that the 1993 and 1992 4Runners are identical,\nfor example, and was looking into buying a used one.\n\nAny info would be appreciated, esp. models/years to check out or\navoid.\n\nThx, Andy (brandt@cs.unc.edu)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5497, "properties": {"category": "talk.politics.guns", "text": "From: ndallen@r-node.hub.org (Nigel Allen)\nSubject: FBI Director's Statement on Waco Standoff\nOrganization: R-node Public Access Unix - 1 416 249 5366\nLines: 26\n\nIn the interests of completeness, I thought readers of these \nnewsgroups would want to see FBI Director William Sessions'\nstatement, as released by the FBI press office.\n\n FBI Director's Statement On Waco Standoff\n To: National Desk\n Contact: Federal Bureau of Investigation, Press Office,\n          202-324-3691\n\n   WASHINGTON, April 19 -- The following is a statement by \nFBI Director William S. Sessions regarding the Branch Davidian \nincident in Waco, Texas:\n\n   \"I had hoped to be making a very different statement this evening.\nAfter very careful planning and extensive preparation we all thought\nthat today's efforts by the FBI to bring the Branch Davidians out of\ntheir compound would result in the peaceful resolution of the\nstand-off or at least meaningful negotiation.\n   \"Instead, we are faced with devastation and death.  However, I\nhave no question that our plan was correct and was conducted with\nextreme professionalism and care.  I applaud the restraint shown by\nagents in the face of life-threatening gunfire, and I thank them for\nrisking their lives to try to end this peacefully.  I have only the\ngreatest admiration for the courage and professionalism of all\ninvolved.\"\n -30-\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5498, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rmohns@vax.clarku.edu\nSubject: RE: Need Windows-logo\nOrganization: Clark University\nLines: 46\n\nIn a previous article, dmmatt@cajun wrote:\n>In article <1qjqed$1ft@access.digex.net>, holland@access.digex.com (Brian Holland) writes:\n>> Markus Maier (S_MAIER_M@rzmain.rz.uni-ulm.de) wrote:\n>> : Hi,\n>> \n>> : Well I'm searching for the Ms-Windows logo, u know the picture when u\n>> : start Windows, in some suitable grafics-format, like gif or jpg,...\n>> \n>> C:\\windows\\system\\vgalogo.rle.  If my memory serves me correctly,\n>> *.rle is a compressed *.bmp format.  \n>> \n>  An is readable by WinGif, Paintshop Pro, Paint, and god knows how\n>many other programs.\n\nThat isn't enough to change your Windows startup logo.  vgalogo.rle is not \nneeded after you have installed Windows.  It is incorporated as a part of \nwin.com.\n\tTo make a new win.com, you have to concatinate three files together, \nusing the /b option for a binary concatonation.  I beleive it is\n\ncopy /b win.cnf+vgalogo.lgo+vgalogo.rle mywin.com\n\nMake sure you backup your win.com file in anotehr directory before you do this \n-- I absent-mindedly typed win.com instead of mywin.com and had to resinstall \nWindows!\n\tAnyway, substitute whatever .RLE file you want.  The win.cnf has the \ninfo needed to start Windows (think of it as a bootstrap) and vgalogo.vga has \nvideo information.  Just make sure that the .RLE file doesn't tip the whole \nCOM file size over the 64k limit of a .COM file!\n\tSo anyway, I use mywin.com to startup MS Windows.  Now instead of that \nannoying Micro$oft advertisment, I have the Joker (yes, from Batman) taking \nyoru picture from the screen, saying \"Smile!\"  Also a little bit of text: \n\"Micro$oft Windows: The world's first commercially sucessful virus.\"  I added \nthat because of the frequency of crashes. <grin>\n\nRob\n\n __   \t\t\t\t   +------------------+\n/  \\ --\t\t--===---\t   |     a post by    |\n\\__/ ---------\t\t\t   |     Rob Mohns    |\n\t\t\t\t   |      rmohns@     |\n\tI had no water, so\t   |  vax.clarku.edu  |\n\tI drowned in sand.\t   +------------------+\n\t\t\t\t           | |\n\t\t  \\|/\t\t           | |\n__\\\\\\|/____________|_______________\\//___\\\\|_|/________\\|/_________\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5499, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: downs@helios.nevada.edu (Lamont Downs)\nSubject: Re: Win NT - what is it???\nLines: 18\nNntp-Posting-Host: cat.lv-lib.nevada.edu\nOrganization: UNLV\n\n>\tCan anyone tell me how Chicago/Windows 4 would differ from\n>OS/2 2.x?  Believe it or not, I'm not trying to start a flame war,\n>here.   I'm simply curious  if there is going to be any feature\n>advantage in either of these products (I do not consider the fact that\n>it has uncle bills seal of approval much of a feature...)\n\nOne difference will _probably_ be the same difference as between OS2 and\nWindows 3.x now--one will likely have a lot of software available for\nit and one won't (emulation, with the inevitable incompatibilities that\ncrop up in spite of all the contrary claims, just doesn't count when you\n_have_ to use a certain software package that doesn't quite run properly\nunder the emulation...). Developers want to channel their resources toward\na platform that has a large installed base, and in a case like that the\nplatform that is most successfully _marketed_ (regardless of its relative\nsophistication) will win.\n\nLamont Downs\ndowns@nevada.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5500, "properties": {"category": "talk.politics.guns", "text": "From: strait@cheetah.csl.uiuc.edu (Jeffrey C. Strait)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: The University of Illinois\nLines: 25\nDistribution: world\nNNTP-Posting-Host: cheetah.csl.uiuc.edu\n\nIn article <C5sv88.HJy@news.cso.uiuc.edu>, irvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n\n> >> >napalm, then let the wood stove inside ignite it.\n> >>                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> >> As someone else has pointed out, why would the stove be in use on a warm day  \n> >> in Texas. \n> >\n> >Do YOU eat all your food cold?\n> \n> Ever hear of electric ovens or microwaves?  Very popular.\n> Electric stoves outside metro-areas especially.\n> \n\nMicrowaves don't work very well with no electricity Mr Engineer.\n\n> -- \n> <><><><><><><><><><> Personal opinions? Why,  <><><><><><><><><><><><><><><>\n> <>  BRENT IRVINE  <> yes.  What did you think <> irvine@uxh.cso.uiuc.edu  <>\n> <><><><><><><><><><> they were?.......        <><><><><><><><><><><><><><><>\n\n-- \n| Jeff Strait                       | strait@uicsl.csl.uiuc.edu        |\n| University of Illinois            | PHONE: (217) 333-6444            |\n| \"If you ladies leave this island, if you survive basic recruit       |\n| training, you will be a weapon, a minister of death praying for war\" |\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5501, "properties": {"category": "sci.crypt", "text": "From: mkagalen@lynx.dac.northeastern.edu (michael kagalenko)\nSubject: Some thoughts on Clipper proposal \nOrganization: Division of Academic Computing, Northeastern University, Boston, MA. 02115 USA\nLines: 25\n\n\nI envision incorporation of new standart into\nvarious communication systems, thus making it prevalent on the market & \ntherefore cheap. The way to do that may be detaching crypto chip from \ncommunication equipment. It seems logical to provide Clipper chip \nto the end-user not as a part of phone, fax, modem & like but in the\nform of smart-card compatible with various telecomm. products. Banks \nwill encourage extensive use of new cards to make transactions by phone.\nNatural step will be to cross-reference this card to the person in the \ngovernment databases - or else this new version of \"wiretap proposal\" \nmake no sence at all; one wish to eavesdrop (spell.) on the particular \nperson, not on the particular modem or phone.\n \nAs a side note, I disagree with one poster, who said he won't care about\nability of the government to eavesdrop, since they can do that now \nanyway. Clipper will take away electronic survelliance from citizens, \nmaking it monopoly of the government. May be, we can find examples when\ninterceptions made by (unauthorised) people uncovered crimes of \nstate officials ?\n\n\n-- \n--------------------------------------------------------------------------------\n      For PGP2.1 public key finger mkagalen@lynx.dac.northeastern.edu\n--------------------------------------------------------------------------------\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.262+0000", "event": "documents", "entityId": 5502, "properties": {"category": "rec.autos", "text": "From: etjet@levels.unisa.edu.au\nSubject: Aussie needs info on USA car shows/swap meets\nReply-To: johnt@spri.levels.unisa.edu.au\nOrganization: University of South Australia\nLines: 54\n\n\n\nHi from Australia,\n\nI am a car enthusiast in Australia.\n \nI am particularly interested in American Muscle cars of the \n1960s and 1970s. ALL MAKES: AMC, Ford, Chrysler/Mopar, GM.\n\nI will be in the USA for 6 weeks from May 2nd to -June 14 1993.\n\nChicago: Sun May 2 -Thursday May 6\nDenver:  Friday May 7 - Sunday May 9\nAustin, Texas: Monday May 10- Friday May 21\nOklahoma City: Friday May 21 - Monday May 24\nAnaheim, California: Tuesday May 25-Thursday May 27\nLas Vegas, Nevada:  Friday May 28- Sunday May 30\nGrand Canion, Monday May 31 - Tuesday June 1\nLas Angeles, San Diego and vicinity: Wednesday June 3-Sunday June 6 June\nSouth Lake Tahoe, Cal: Sunday June 6 - Wednesday June 9\nReno: Thursday June 10\nSan Fransisco: Thursday June 10 - Sunday June 13\n\n\nI was wondering if anyone could send me any information of \ncar shows, swap meets, drag meets, model car shows etc. during this period.\nCan anybody tell me when the Pomona Swap meet is on this year?\n\nAlso, any places to visit (eg. car museums, private collections, \nyour collection? etc. Any bit of information is appreciated!\n\nI am also interested in finding some model cars (scale Models). \nI am intersted in 1968-1974 AMC cars. Of particular interest is:\n1968-1970 AMX\n1968-1974 Javelin\n1969 SCRAMBLER\n1970 Rebel Machine\nand others\n\nIf you have any kits, plastics, diecast etc and are interested in selling them,\ntell me, I will be interested.\n\nI can also send/bring you models of Australian High performance cars if \nyou are interested.\n\n\nPlease reply by email to: johnt@spri.levels.unisa.edu.au\n\n\nThanks,\n\nJohn Tsimbinos \n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5503, "properties": {"category": "rec.sport.hockey", "text": "From: monack@helium.gas.uug.arizona.edu (david n monack)\nSubject: Re: ESPN Tonight\nOrganization: University of Arizona - Tucson, Arizona\nLines: 17\n\nIn <1qkj1kINN3g1@master.cs.rose-hulman.edu> swartzjh@RoseVC.Rose-Hulman.Edu writes:\n\n>Has anyone heard what game ESPN is showing tonight.  They said they will\n>show whatever game means the most playoff-wise. I would assume this would\n>be the Blues-Tampa game or the Minnesota-Red Wings game...  Anyone heard for\n>sure???\n\n>\t\tJeff Swartz\n\nI heard it will be the Minnesota-Detroit game. Don't know the time\nthough.\n\nDave\n\n--\nDavid Monack        e-mail: monack@gas.uug.arizona.edu\n\"Love is the delusion that one woman differs from another.\" H.L. Mencken\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5504, "properties": {"category": "soc.religion.christian", "text": "From: topcat!tom@tredysvr.tredydev.unisys.com (Tom Albrecht)\nSubject: Re: Revelations\nOrganization: Applied Presuppositionalism, Ltd.\nLines: 30\n\nhudson@athena.cs.uga.edu (Paul Hudson Jr) writes:\n\n> >Now, as to the suggestion that all prophecy tends to be somewhat cyclical,\n> >can you elaborate?  I'm not exactly sure what you mean.  How does the\n> >suggestion relate to Isaiah's prophecy of the birth of Christ by a virgin? \n> >I don't see any cycles in that prophecy.\n> \n> Maybe cyclical is not the best word.  ...\n> \n> Another example would be the Scripture quoted of Judas, \"and his bishoprick\n> let another take.\"  Another example is something that Isaiah said of His\n> disciples which is also applied to Christ in Hebrews, \"the children thou\n> hast given me.\"\n> \n> How does the preterist view account for this phenomenon.\n\nAh, double-fulfillment.  First of all I would say that I'm not sure all\nthe prophecies had double-fulfillment, e.g., the Isaiah 7:14 prophecy.\n\nI would say that just because this happens on some occasions does not mean\nit will occur always, especially with regard to NT prophecies. The apostles\nwho quoted the OT and applied those passages to Jesus were acting as divine\nmessengers and giving the inerrant Word of God to the Church.  No one has\nthat authority today.  No one has the apostolic authority to say that\nsuch-and-such a prophecy has double-fulfillment.  If the imagry of\nRevelation fits with events of the 1st century, it is folly for us to try\nand make it apply to events 20 centuries later.\n\n--\nTom Albrecht\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5505, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lioness@oak.circa.ufl.edu\nSubject: int15h for joysticks is slow....\nOrganization: Center for Instructional and Research Computing Activities\nLines: 14\nReply-To: LIONESS@ufcc.ufl.edu\nNNTP-Posting-Host: oak.circa.ufl.edu\n\n\nI'm using int15h to read my joystick, and it is hideously slow.  Something\nlike 90% of my CPU time is being spent reading the joystick, and this\nis in a program that does nothing but printf() and JoyRead().\n\nThe problem is that a lot of programs trap int15h ( like SMARTDRV ) and\nso it is a slow as hell interface.  Can I read the joystick port in\na reasonably safe fashion via polling?  And that isn't platform or\nclockspeed specific?\n\nThanks,\n\nBrianzex\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5506, "properties": {"category": "rec.motorcycles", "text": "From: ant@palm21.cray.com (Tony Jones)\nSubject: Re: Insurance discount\nLines: 12\nNntp-Posting-Host: palm21\nOrganization: Cray Research Inc, Eagan, MN\nX-Newsreader: TIN [version 1.1 PL6]\n\nErik Asphaug x2773 (asphaug@lpl.arizona.edu) wrote:\n: Unless... some insurance agent offers a multi-vehicle discount.  They\n: do this all the time for cars, assuming that you're only capable of \n\nProgressive offers multi-vehicle discounts.\nGood prices too IMHO.\n\ntony\n--\nTony Jones (ant@cray.com, ..!uunet!cray!ant)\nCMCS Codegeneration Group, Software Division\nCray Research Inc, 655F Lone Oak Drive, Eagan, MN 55121\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5507, "properties": {"category": "talk.politics.misc", "text": "From: b645zaw@utarlg.uta.edu (Stephen Tice)\nSubject: Re: US Government Sanctions Sacrilege\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: utarlg.uta.edu\nOrganization: The University of Texas at Arlington\nLines: 82\n\nWilliam December Starr writes...\n\nin a typical lawyer baiting fashion, as usual. \n\n(All the while ignoring every principle of the ACLU.)\n\nGood to see your still out there WDS. Surely we've\nbeen around the ring enough by now, that you know \nyou can't spin me up with expletives. \n\nLet's see if there's anything left worth responding to...\n\n>Cyrus' \"Achy Breaky Heart\" ad infinitum until either Koresh surrenders or\n>the rest of the state of Texas is totally depopulated... :-)\n\nE for effort. Heard about the folks who live around foghorns and \nairports?\n\n>> Erect an Inverted Cross, or a Star of David broken asunder, out in\n>> front of the Davidians to provoke them. Or boom out Islamic prayers.\n>> Or worse. What temple would you destroy?  What books would you burn?\n>> Will you kill clergy? Will you mock the Spirit of GOD before the\n>> innocent??\n> \n>Sure I would.  Why not?\n\nSeems right in character to me -- creature of the state. \nBtw, are you still happy with your presidents?\n\n>> If you in government have no respect for other's faith, and no respect\n>> for the lives and well being of those innocent children caught in this\n>> hell you've created -- why should anyone respect your lipservice of\n>> \"rule of law?\"\n> \n>What does rule of law have to do with respect for anyone's religious\n>faith?  \n\nSee the part about the children following the \"and\" in the first line\nabove. \n\nAs to a connection, your \"cult\" is \"faith in rules\". \n\n>> No matter who the criminals are, or what they've done (and it looks\n>> like there are criminals on both sides of the matter) -- their\n>> conviction is not worth the abuse you're causing.\n> \n>What abuse?  Please be specific.\n\nSure. My concern is the well being of the children.  \n\n>> If you are willing to ignore the children, or heap abuse, insult, and\n>> sacrilege on the children inside the Davidian house -- then GOD REBUKE\n>> YOU. Best you learn directly from the Lord the corruption you're\n>> committing. In GOD's good time and way, the LORD judge you -- I can\n>> not. For truth be told I would send you all straight to hell -- and\n>> GOD would be right in sending me right along with you.\n> \n>Oh, fuck you and the God you rode in on, Stephen.  If you can show the\n>legitimacy of God's claim of sovereignty over man, please do so.\n>Otherwise stop ranting and raving about him already.\n> \n>-- William December Starr <wdstarr@athena.mit.edu>\n\n{Interesting that you would respond \"emotionally\" in defense of the \ngovernment. Maybe there is a beating heart there.}\n\nFor the record though, the biggest-baddest goverment on earth claims \nthe most sovereignty over man. Best I can tell God allows anyone to\ngo to hell who wants to. Omnipotency logically determines that \"allowing\"\nand \"sending\" mean the same thing.  (Mere human concepts of course.)\n\nSo come on WDS. Why bother to try some flimsy facade of logic. Waco\nproves it's not needed -- the demonstration that government can walk\nover it's own rules in the name of justice has been made. No problem \nby me. Noted and announced -- for the record. Just giving the govern-\nment it's due, and getting back to more worthwhile non-government \nconcerns. \n\n   |\n-- J --\n   |\n   | stephen\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5508, "properties": {"category": "talk.politics.guns", "text": "From: dlo@druwa.ATT.COM (OlsonDL)\nSubject: Re: Ban All Firearms !\nLines: 16\n\nIn article <1qc5sa$obl@pandora.sdsu.edu>, chiu@io.nosc.mil (Francis Chiu) writes:\n}     A note on the lighter side, I've noticed most gun-banners (some of my\n}   friends included) are the one who make comments that indicate they are \n}   more likely to resort to violent.  So are they really banning guns so they \n}   wouldn't end up shooting someone else?\n\nCould be.\n\nIt is also likely that since they feel they are more likely to resort to\nviolence, they have a hard time believing that anyone else would react\notherwise.\n--\nDavid Olson            dlo@drutx.att.com\n\"Well, I did say we'll put it out and we'll put it out when we can.\n But I don't know what we can put out or when we can put it out.\"\n -- George Stephanopolous.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5509, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nIn-Reply-To: amanda@intercon.com's message of Fri, 16 Apr 1993 23:50:03 -0500\nReply-To: pmetzger@lehman.com\nOrganization: Lehman Brothers\nLines: 36\n\n\nIn article <1qnupd$jpm@news.intercon.com> amanda@intercon.com (Amanda Walker) writes:\n\n   From: amanda@intercon.com (Amanda Walker)\n\n   jhesse@netcom.com (John Hesse) writes:\n   > Oh great. Wonderful news. Nobody can listen in--except the feds. \n\n   Hey, it's better than the status quo.\n\n   I am far less worried about \"the feds\" tapping my phone than high school \n   scanner surfers who get their kicks out of eavesdropping on cellular and \n   cordless phone calls.\n\nI'm a political dissident. I'm scared shitless of the feds listening\nin on my calls. My opinions are the sort that would get me\n\"disappeared\" in a slightly less free society -- and who knows what\nsort of society we will be in in five or ten years? I have friends who\nhave had their phones tapped -- none of this is theoretical to me.\n\nAs for \"its better than the status quo\", well, first of all, you can\nget a cryptophone from companies like Cylink today -- and they work\nwell. In addition, a number of groups are now working on building\nsoftware to turn any PC into a privacy enhanced phone right now -- and\nthey are all working in overdrive mode.\n\n   And yes, I'd rather just see all crypto restrictions lifted, but this is at \n   least an incrememental improvement for certain applications...\n\nThere ARE no crypto restrictions... yet. You can use anything you want\nRIGHT NOW. The point is to maintain that right.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5510, "properties": {"category": "soc.religion.christian", "text": "From: daniels@math.ufl.edu (TV's Big Dealer)\nSubject: Prayer in Jesus' name\nOrganization: Me\nLines: 5\n\n\n\tHmm...makes you wonder whether prayer \"in Jesus' name\" means\n\"saying Jesus' name\" or whether we're simply to do all things with the\nattitude that we belong to Jesus.\n\t\t\t\t\tFrank D.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5511, "properties": {"category": "sci.crypt", "text": "From: zrepachol@cc.curtin.edu.au (Paul Repacholi)\nSubject: Re: How do they know what keys to ask for? (Re: Clipper)\nLines: 19\nOrganization: Curtin University of Technology\n\nIn article <johnson.735023704@trwacs>, johnson@trwacs.fp.trw.com (Steve Johnson) writes:\n> brad@clarinet.com (Brad Templeton) writes:\n>>And of course you have to identify yourself to the phone company, and\n>>since the phone company complies with court orders, they will know the\n>>magic number of your chip when they sign out a warrant on you, and\n>>then can present the warrant to the key escrow house.\n\n\nLets hope. Years ago a Telecom tech refused to tap a line unless he saw the \nwarrant. The managment type who told him to do it fired him. The appeal\nagainst the dismissal was lost.\n\n>   Who makes them forget and destroy all copies of the key once they've\n> decided you're not a criminal today?  Just curious.\n\nGood luck.\n\n~Paul\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5512, "properties": {"category": "comp.windows.x", "text": "From: theslim@anathema.engin.umich.edu (Eric Michael Slimko)\nSubject: Real-Time Data Display Tool\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 12\nDistribution: world\nNNTP-Posting-Host: anathema.engin.umich.edu\nOriginator: theslim@anathema.engin.umich.edu\n\n\nHi,\n\nI'm looking for a X-Windows tool that can display data (in a\n2D plot) in real time with a couple different signals.  \nAnybody know of such a gem?  Please Email me as I do not read\nthis group often.\n\nThanks much!\nEric Slimko\ntheslim@caen.engin.umich.edu\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5513, "properties": {"category": "sci.electronics", "text": "From: moffatt@bnr.ca (John Thomson)\nSubject: Re: Telephone on hook/off hok ok circuit \nNntp-Posting-Host: bcarhdd\nOrganization: Bell-Northern Research, Ottawa, Canada\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 37\n\nTony Kidson (tony@morgan.demon.co.uk) wrote:\n: In article <oHZs2B2w164w@k5qwb.lonestar.org> lrk@k5qwb.lonestar.org writes:\n: \n: >mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n: >\n: >> In article <1ptolq$p7e@werple.apana.org.au> petert@zikzak.apana.org.au (Peter\n: >> >\n: >> >Just a thought of mine here:\n: >> >Since an on-hook line is aprox 48-50V, and off-hook it usually drops below 1\n: >> >How about an LED in series with a zener say around 30V.\n: >> >On-hook = LED on\n: >> >Off-hook = LED off.\n: >> >Would this work? If anyone tries/tried it, please let me know.\n: >>\n: >> Aye, there's the rub -- if you draw enough current to light an LED, the\n: >> equipment at the phone company will think you've gone off hook.\n: >> In the on-hook state you're not supposed to draw current.\n: >\n: >Which means you should just use your Digital VoltMeter. You can use an\n: >old VOM but the phone company equipment can detect that and might think\n: >there's something wrong with the cable.\n: >\n: \n: Look Guys, what's the problem here?  If you want a light that goes on when \n: the 'phone is *Off* hook, all you need it to run it in *series* with the \n: line, as I mentioned in my previous post.  If you want a light that goes on \n: when the 'phone is *on* hook, all you need is a voltage threshold detector.\n\nIf you're going to do the series Diode thing (which is the easiest), just\nmake sure that the LED can take the current (I can't recall it off-hand, but\nit's something like 100mA or more?)\n\nGreggo.\n\nGreg Moffatt  moffatt@bnr.ca\nBell-Northern Resarch Inc., Ottawa Canada\n\"My opinions; not BNR's\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5514, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hayesj@rintintin.Colorado.EDU (HAYES JAMES MICHAEL JR)\nSubject: Windows Disk Drive Test availabel?\nNntp-Posting-Host: rintintin.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 28\n\n\n\n\nIs their a pd/freeware hard drive utility that can handle\na compressed IDE drive without screwwing it up?\n\nNeed to document occasional failures in reading/writing,\ncheck overall integrity of disk's hardware and sectors.\n\nI believe that all of my problems with DOS/Windows can\nbe isolated to my drive.  Getting occasional corrupted\nfiles, even with smartdrive, 32 bit access turned off.\nHad these problems under DOS 5.  Only with drive C.\nDrive D may have had one failure, but that file was\nunder the control of Win/Winword on drive C.\n\nAll utilities available to me report no problems.\nDOS, NDD (NU4.5).  Another symptom, SD took forever\non C, and kicked me out with a suspension till NDD run\n6 to 8 times.\n\nThanks.\n\n-- \n  Mike Hayes             |\"Knowledge is good.\"  - Faber College Motto\n  WWW                    |\"Knowledge and Thoroughness\" -Rensselear Poly Motto\n  Unemployed Tech,       |\"No, thank YOU!\"  -Groucho Marx, 'A Day at the Races'\n  Driven to banging my head against engineering physics for 4 years.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5515, "properties": {"category": "sci.med", "text": "From: eulenbrg@carson.u.washington.edu (Julia Eulenberg)\nSubject: Re: Arythmia\nArticle-I.D.: shelley.1r7mfbINNhvu\nOrganization: University of Washington\nLines: 2\nNNTP-Posting-Host: carson.u.washington.edu\n\nAlexis Perry asked if low blood potassium could be dangerous.  Yes.\nZZ\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5516, "properties": {"category": "rec.sport.hockey", "text": "From: willis@oracle.SCG.HAC.COM (Stan Willis)\nSubject: Kings playoff notes: Stauber, TV ratings, etc.\nReply-To: willis@empire.dnet.hac.com (Stan Willis)\nOrganization: none\nLines: 112\n\n1992-93 Los Angeles Kings notes.\n--------------------------------\nPlayoffs:\n---------\n*Stauber disturbed by third-man theme\nby Rick Sadowski, Daily News\n\nBarry Melrose's decision to stick Robb Stauber in the stands rather than in the\ncrease or even on the bench for the Stanley Cup playoffs does not sit well with\nthe rookie goaltender.\n\n\"I want to be a part of the team at the most crucial time of the year, the most\nfun time of the year, and I'm not,\"  Stauber said with some emotion Monday.  \"I\nthink I have worked hard enough for that.\"\n\nStauber said he accepts Melrose's choice of Kelly Hrudey as the teams top goalie\nin their playoff series with the Calgary Flames. Hrudey made 21 saves in Sundays\n6-3 opening victory.\n\nBut Stauber clearly is upset with his sudden status as the No. 3 man behind Rick\nKnickle.  Stauber had a 4-1-2 record and 2.98 goals-against average down the\nstretch in the regular season and nearly wrestled the No. 1 job from Hrudey.\n\nKnickle?  He won 2 of 3 decisions but had a bloated 5.26 average, twice was \nyanked from games (once for stomach cramps) and hasn't played since March 29.\n\nYet, when the series resumes Wednesday, Knickle will serve as Hrudey's backup\nagain and Stauber will have to satisfy his playoff hunger by munching on Olympic\nSaddledome popcorn.\n\n\"If I'm supposedly close to being the starter or could have been the starter...I\ndropped too. 3.  What happened to No. 2?\"  Stauber wondered.  \"Not that I'd be\nhappy with No. 2, but I feel I should at least be a part of this team in the\nplayoffs.\"\n\nPerhaps Stauber eventually will get his chance, but Melrose apparently is not\nconvinced the 25-year old is capable of handling playoff pressure.\n\nWhile insisting he is the Kings' \"goalie of the future,\" Melrose said Stauber\nflubbed all four of the big games he was asked to win this season.  They were,\naccording to Melrose: a 7-2 loss to San Jose on Dec. 26; An 8-3 loss to the New\nYork Rangers on Jan. 23; a 6-6 tie with Detroit on Feb. 11; an 8-6 loss to \nVancouver on Thursday.\n\n\"Four times this season Robb could have emerged as the elite goalie, he could\nhave taken it away from Kelly Hrudey, and he didn't do it,\" Melrose said.  \"An\nelite goaltender has to carry the ball when you give it to him.  The mark of a\ngreat goalie is that he isn't satisfied to be a backup.\"\n\n\"I'm not blaming Robb for the losses, but if you're going to be No. 1, you've\ngot to be able to walk your talk.  You've got to be able to play when everything\nis on the line.  Robb Stauber has a great deal of ability, but maybe I expect\nmore from him than he does.\"\n\nOuch.  That remark stung Stauber.  He began the season 9-0-1, struggled when the\nteam hit a mid-season slump, didn't play for a month after Knickle was signed\noff the San Diego Gulls roster, then came on at the end.\n\n\"I expect more from myself than anybody, including Barry Melrose,\" said Stauber,\na three-year star at the University of Minnesota who left school in 1989, only \nto have his development hampered by a string of serious injuries.\n\n\"What I've been through the last four years - two knee operations, a herniated\ndisk in my back, shoulder surgery - what more can I go through?  I obviously do\nexpect a lot from myself, otherwise I wouldn't be here.\"\n\n\"Anybody who would disagree with that doesn't know me.  I'm not saying Barry \ndoesn't know me, but don't say I've been without expectations.  If anything, I'm\na perfectionist.\"\n\nStauber acknowledged he played poorly in the four games Melrose mentioned. \"But \neven though I didn't play well, I get knocked down from maybe on to three? It's \na bit of a jump,\" he said.  \"You're almost No. 1, or if you play a good game \nyou're No. 1 and if you don't you're No. 3?  Why does Jack Nicklaus shoot a 67 \nand then a 75?  Can you explain that?  That's what barry wanted me to explain \nto him, why I didn't come through when he counted on me.  I don't know. What I \ndo know is, it's a sport.  I'll be there.\"\n\nMelrose's \"goalie of the future\" statement doesn't mean much to Stauber. \"Before\nyou know it, I'll be 30 and there will be no future,\" he said.\n\n------\n\n*Game 1 of the Kings @ Flames playoff series drew a 4.2 Nielsen rating on ABC \nChannel 7 here in LA.  The Kings averaged a 2.1 Nielsen rating in the 10 regular\nseason games aired on Channel 5.\n\nAround the NHL:\n---------------\n*San Jose fired Coach George Kingston, who lead the team to a 11-71-2 mark in \ntheir 2nd NHL season.  Kingston was 28-129-7 over the past 2 years with the\nSharks.\n\n------\n\n*Former Islander executive Bill Torrey was named as President of the expansion\nFlorida Panthers.  Bobby Clarke was named as the clubs General Manager.\n\n*Last nights games:\n-------------------\nWIN  2 @ VAN  4 (VAN leads 1-0)\nTOR  3 @ DET  6 (DET leads 1-0)\n\n===============================================================================\nStan Willis (willis@empire.dnet.hac.com)\nnet contact: L.A. Kings\n\n >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n      talk with the L.A. Kings Mailing List ...... kings@cs.stanford.edu\n      to subscribe or unsubscribe: ....... kings-request@cs.stanford.edu\n <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n===============================================================================\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5517, "properties": {"category": "sci.med", "text": "From: bhjelle@carina.unm.edu ()\nSubject: Re: Barbecued foods and health risk\nOrganization: University of New Mexico, Albuquerque\nLines: 18\nNNTP-Posting-Host: carina.unm.edu\n\nIn article <C5sqv8.EDB@acsu.buffalo.edu> SFEGUS@ubvm.cc.buffalo.edu writes:\n>In article <79857@cup.portal.com>\n>mmm@cup.portal.com (Mark Robert Thorson) writes:\n> \n>>\n>>No, there is something called the \"Delany Amendment\" which makes carcinogenic\n>>food additives illegal in any amount.  This was passed by Congress in the\n> \n>I think what we have to keep in mind is that even though it may be illegal to\n>commercially produce/sell food with carcinogenic substances, it is not illegal\n>for people to do such to their own food (smoking, etc).  Is this true?\n> \nWhoa. What did you say your name was? Address, SSN? Smoking foods, eh?\nI think the gov't would like to know about this...\n\nBrian\n:-) \n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5518, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: The University of Texas at Austin, Austin TX\nLines: 18\nDistribution: world\nNNTP-Posting-Host: louie.cc.utexas.edu\n\njmd@cube.handheld.com (Jim De Arras) writes:\n:An 'edu'er not towing the \"party\" line, thank you!\n:\n:Jim\n\nYou're welcome!  ;)  Actually, I'm probably something of an outcast, because\nI've committed the ultimate college-student heresy:  I'm not a liberal.\n(This is NOT liberal-bashing.)\n\n\nMike\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5519, "properties": {"category": "comp.graphics", "text": "From: tessmann@cs.ubc.ca (Markus Tessmann)\nSubject: Re: Rumours about 3DO ???\nOrganization: Computer Science, University of B.C., Vancouver, B.C., Canada\nLines: 16\nNNTP-Posting-Host: larry.cs.ubc.ca\n\nstgprao@st.unocal.COM (Richard Ottolini) writes:\n\n>They need a hit software product to encourage software sales of the product,\n>i.e. the Pong, Pacman, VisiCalc, dBase, or Pagemaker of multi-media.\n>There are some multi-media and digital television products out there already,\n>albeit, not as capable as 3DO's.  But are there compelling reasons to buy\n>such yet?  Perhaps someone in this news group will write that hit software :-)\n\nI've just had the good fortune to be hired by Electronic Arts as Senior\nComputer Graphics Artist at the Vancouver, Canada office.  :^)\n\nThe timing has a lot to do with the 3DO which EA is putting a lot of resources\ninto.  I do not know of any titles to be developed as yet but will be happy to\npost as things develop.  I start there May 3.\n\n\tMarkus Tessmann\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5520, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: downs@helios.nevada.edu (Lamont Downs)\nSubject: Re: Windows gripe...\nArticle-I.D.: helios.downs.189.734061833\nOrganization: UNLV\nLines: 19\nNntp-Posting-Host: cat.lv-lib.nevada.edu\n\n>     There's one thing about Windows that really frosts me.\n>I have 20MB of RAM installed in my system. I use a 5MB (2.5MB\n>under Windows) disk-cache, and a 4MB permanent swap file.\n>\n>     While I can never fill the memory up, I still have problems\n>sometimes because I run out of GDI resources. What gives?\n>I think Windows could manage these resources a little better.\n>\nAre you using Windows 3.0 or 3.1? If you're still on 3.0, 3.1 devotes about\ntwice as much memory to these and runs out much less frequently. If 3.1,\nyou might use one of the resource monitors (such as the one that comes with\nthe Windows 3.1 Resource Kit or one of the many shareware ones available)\nto see which programs are hogging the resources (every icon, internal\ngraphics brush, etc. in every program running uses a certain amount of\nthis limited memory area. Also, some don't give it back when they're\nfinished).\n\nLamont Downs\ndowns@nevada.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5521, "properties": {"category": "talk.politics.misc", "text": "From: dsh@eceyv.ncsu.edu (Doug Holtsinger)\nSubject: Pro-abortion feminist leader endorses trashing of free speech rights\nOrganization: NCSU\nLines: 38\n\n---\n51 Arrested for Defying Judge's Order at Abortion Protest Rally\nThe Miami Herald, April 11, 1993\n\n   Melbourne, Florida --   [...]\n\n   Circuit Judge Robert McGregor's order prohibits anti-abortion pickets\n   within 36 feet of the property line of Aware Woman Center for Choice.\n   Even across the street, they may not display pictures of dead fetuses\n   or sing or chant loud enough to be heard by patients inside the clinic.\n\n   The protesters say the ruling all but wiped out the First Amendment\n   to the Constitution.\n\n   ``This is our sidewalk,'' said Joe Carroll, 33, a landscaper who\n   marched with his children, Mary Grace, 8, and John, 7.\n\n   ``I am not a rescuer.  I am not a trespasser.  It's just that this is\n   my sidewalk.  I am not really protesting abortion.  We are protesting\n   denial of our rights of assembly, religion, speech.  This judge is\n   trashing the Constitution.''\n\n   The children's grandmother led them away, sobbing, as Carroll and\n   his father were arrested.\n\n   Outside the clinic, Eleanor Smeal, president of the Washington,\n   D.C.-based Feminist Majority Foundation, called for the Florida\n   Legislature and Congress to pass laws as tough as the judge's\n   order, which covers only Brevard and Seminole counties.\n\n   ``This cannot go on,'' she said.  ``This is not freedom of speech,\n   this is total psychological warfare with violence.  It is ridiculous\n   to have to ask clinics to go court-by-court . . . to get protection.''\n\n   [...]\n\n---\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5522, "properties": {"category": "talk.religion.misc", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 43\n\nIn article <1993Apr15.071814.27960@wam.umd.edu>, judi@wam.umd.edu (Jay T Stein -- objectively subjective) writes:\n>> = <1qhn7m$a95@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer)\n>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n>[culled from a discussion on Christianity and objective morals]\n>\n>Question:  Is there any effective difference between:\n>\n>\"Objective values exist, and there is disagreement over what they are\"\n>\n>and\n>\n>\"Values are subjective?\"\n>\n>I don't see any.\n>\n\n\n\nIs there any difference in saying \n\n\"Absolute Truth exists, but some people think its a lie\"\n\nand\n\n\"Truth is relative\" ?\n\nI think there is:  in both examples, the first statement is a\nfundamental disagreement between at least two people; the \nsecond statement is agreed upon by all.\n\nTo put it another way, someone who says objective values exist\ndoes not agree that values are subjective.\n\n-jim halat\n\n                                                                           \n                                                                           \n                                                                           \n                                                                           \n                                                                           \n                                                                           \n                                                                           \n                                                                           \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5523, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: steinark@edb.tih.no (Steinar Kleven)\nSubject: Re: Windows Help\nNntp-Posting-Host: beta.edb.tih.no\nOrganization: Trondheim College of Engineering\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 38\n\nMario Veraart (mveraart@fel.tno.nl) wrote:\n: umyin@ccu.umanitoba.ca (Qing Yin) writes:\n\n: >Hi, it's an *easy* question for you Windows gurus.  I'd appreciate any help.\n\n: >We need to write an on-line help for our application.  We don't have\n: >Windows Software Developer's Toolkit (yet :-) ). Since we just want to build\n: >a .HLP file around Windows' help engine, I hope it won't be that complicated?\n: >Anyway, could someone kindly give me some hints of how to build such an\n: >on-line help, if it does not take 100 pages to explain? Or if it is complicated,\n: >would you help to point out what I would need to do it?\n: >-- \n\n\n: >Vincent Q. Yin\n: >umyin@ccu.umanitoba.ca\n\n: Hi,\n\n: If you have developed your own windows application you must have a \n: SDK of some sort that contains the HC.EXE or HC31.EXE file to \n: compile and generate .HLP files out of .RTF files.\n\n****------->  No, U can download what??.zip from ftp.cica.indiana.edu\n              This package from MS is all U need to buid (simple?) .HLP\n              files from Rich Text Format Files (.RTF). This package\n              also contains .DOT tamplates for MS Word4Win.\n \n: RTF files are generated by a wordprocessor like Word for Dos or W4W.\n\n: If this is not the solution be more specific about your application.\n\n: Mario\n: -- \n: Mario Veraart                  TNO Physics and Electronics Laboratory\n: email: rioj7@fel.tno.nl        The Hague       The Netherlands\n: \"If all else fails, show pretty pictures and animated videos, \n:  and don't talk about performance\",  David Bailey\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5524, "properties": {"category": "talk.politics.guns", "text": "From: bressler@iftccu.ca.boeing.com (Rick Bressler)\nSubject: Re: The 'pill' for Deer = No Hunting\nOrganization: Boeing Commercial Airplane Group\nLines: 37\n\n/ iftccu:talk.politics.guns / jrm@gnv.ifas.ufl.edu /  6:26 am  Apr 14, 1993 /\n\n>\tThe vast majority get through life without ever having to\n>\town, use or display a firearm.\n\n\nI suppose that depends on how you define 'vast' majority....\n\nYou are correct about 'majority.'  Somewhere between 1 out of three and \none out of 10 will at some period in their lives experience a violent \nassault.  The risk is generally higher than emergency medical problems\nlike heart attack and stroke.\n\n'Vast' is probably too loose a term.  With approximately 1,000,000 Americans\nusing firearms each year, over a 30 year period we get (roughly, since some\nmay have to do this more than once) 30 MILLION Americans with experience in \nusing firearms for self defense.  30/250 yields 12 percent of the population.\n(Yes, I know that is a REAL rough estimate.  We're closer to 270 million now, \nbut many of these are minors and should be included etc, thus the percentage\nif anything is low.)\n\nAt any rate, most minority groups in this range are not usually referred \nto as 'tiny' minorities, so I don't see how the other part of the group \ncan be referred to as the 'vast' majority.  A little more work might \nsupport a 'simple' majority of Americans never use, own or display a firearm.\n\nCertainly when you are talking about OWNERSHIP you are wrong.  Nearly half\nof your fellow citizens own one or more firearms.  \n\n>\t                               Besides, there are other\n>\tmeans of self-protection which can be just as effective\n>\tas firearms. \n\nPlease provide a list of other means that are as effective.  Then you might \nconvince your local police departments to switch.  Good luck.\n\nRick.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5525, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: r8102009@ccms.ntu.edu.tw (Chia-Yi Lee)\nSubject: Re: ?? DOS font size in windows??\nNntp-Posting-Host: ccms.ntu.edu.tw\nOrganization: NTUTaiwan\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 20\n\nS. Alavi (ssa@unity.ncsu.edu) wrote:\n: \n: \tI have an 8514/A card, and I am using windows in 1024x768 mode \n: \t(normal 8514/A font, not small).  In the 386 enhanced mode\n: \tthe DOS window font is too small for my 14\" monitor. Is there a \n: \tway to spacify the font size for the DOS window? You'll have to \n: \texcuse me if there is a trivial answer, since I am fairly new to\n: \tMS Windows world.\n: \n: \tThanks.\n: \n: \t(Please include this message for reference)\n: \t======  S. Alavi    [ssa@unity.ncsu.edu]  (919)467-7909 (H)  ========\n: \t\t\t\t\t\t  (919)515-8063 (W)\n\nAs I can recall, you can click on the upper left button of dos window, then \nchoose font to change. Also there is a demo window to show you in advance how\nthe font you choose will affect the size of dos window. Make  a try! \n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.263+0000", "event": "documents", "entityId": 5526, "properties": {"category": "rec.autos", "text": "From: wrat@unisql.UUCP (wharfie)\nSubject: Re: Too fast\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 9\n\nIn article <1993Apr14.152328.15997@magnus.acs.ohio-state.edu> jnielsen@magnus.acs.ohio-state.edu (John F Nielsen) writes:\n>There may be a case where a speed limit sign is not necessary. But take\n>them away entirely?\n\n\tYeah, you're right.  Doing away with speed limits would just\nmean huge tax increases as municipalities tried to make up for the\nrevenue they used to gouge from passing motorists.\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5527, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jon@umcc.umcc.umich.edu (Jon Zeeff)\nSubject: S3 video card at different address\nOrganization: UMCC, Ann Arbor, MI\nLines: 7\nDistribution: usa\nNNTP-Posting-Host: umcc.umcc.umich.edu\n\nI'd like to add a second S3 based video card to my system.  Does anyone\nknow of a company that sells a card that can coexist with another one?\nAll I really need is color text on one monitor and fast color graphics\non the other.\n\nProbably just a configurable address would do it.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5528, "properties": {"category": "comp.windows.x", "text": "From: drand@spinner.osf.org (Douglas S. Rand)\nSubject: Re: Writing a Motif widget\nIn-Reply-To: nicholas@ibmpcug.co.uk's message of Thu, 22 Apr 1993 17:17:40 GMT\nOrganization: Open Software Foundation\nLines: 40\n\nIn article <C5wApJ.DD7@ibmpcug.co.uk> nicholas@ibmpcug.co.uk (Nicholas Young) writes:\n\n   I need (probably) to write one or more new Motif widgets on the HP-UX\n   platform. Do I need the Motif private header files and source,\n   or can I make do with the public headers that are provided?\n   \"Motif\" includes Xt in this context.\n\nYes.  You'll find it almost impossible without the source\nat this point.  It does depend on how ambitious you are and\nhow concerned you are about compliance with the general\ninterface and items like traversal.\n\n   One widget is a multi-column list (which lots of people have\n   already written, I am sure), and would therefore be probably be\n   a subclass of List rather than something simple like an Xt class.\n   Is this more difficult (in principle, not lines of code)?\n\nI'm not sure what you're asking.  You could create something\nwhich is very much like a true multi-column list by placing\nseveral lists within a geometry manager,  and putting that\nmanager within an automatic scrolled window.  This wouldn't\nbe good for very large lists,  but you might consider this\nas an alternative.\n\n   Alternatively, if anyone has a multi-column list widget they\n   could sell me, this might save me from having to write one!\n   Does it by any chance exist in Motif 1.2 already (I do not\n   yet have the spec)?\n\nMotif 1.2 does not have a multi-column list in it.  Have you\nlooked at commercial sets?  There are also some PD \nwidget sets,  one of these might have a multi-column list\nyou could port.\n\n\n--\nDouglas S. Rand <drand@osf.org>\t\tOSF/Motif Dev.\nSnail:         11 Cambridge Center,  Cambridge,  MA  02142\nDisclaimer:    I don't know if OSF agrees with me... let's vote on it.\nAmateur Radio: KC1KJ\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5529, "properties": {"category": "misc.forsale", "text": "From: mkbaird@david.wheaton.edu (marcus k baird)\nSubject: CD-ROMS 4-SALE (NEW)  UPDATE!!!\nOrganization: Wheaton College, IL\nLines: 102\n\nI'm looking to find some people interested in getting some cd-rom's. Below\nis a list with their prices. If you are interested in any of these, send me\nsome mail and I can guarantee this price. If you are not local their will be\na shipping cost, and cod cost if you prefer it to be shipped that way.\nMarcus\n\nUpdated prices from last post.\n\n      \nAmerican Business Phonebook             DOS             $20.00\nAnimals                                 DOS             $30.00\nAnimals                                 MPC             $18.00\nAudoban Birds                           DOS             $20.00\nAudoban Mammals                         DOS             $20.00\nBarney Bear Goes to School              DOS             $30.00\nBible Library                           DOS             $45.00\nBibles and Religion                     DOS             $15.00\nBook of Lists                           DOS             $30.00\nBritannicas Family Choice               DOS             $23.00\nBritamrica Select                       DOS             $24.33\nBusiness & Economics                    DOS             $19.00\nBusiness Backgrounds                    DOS             $20.00\nBusiness Master                         DOS             $20.00\nCarmen San Diego (Where is ...)         MPC             $22.00\nCD PLay/Launch                          DOS             $25.00  \nCD ROM  Software Jukebox                DOS             $20.00\nCIA Vorld Taur                          DOS             $35.00\nChess Master 3000 MPC                   DOS             $20.00\nCLassic Collection                      DOS             $40.00\nCLipert Goliath \t                DOS             $15.00\nColossal Cookbook                       DOS             $15.00\nDeLorme's Atlas USA                     WIN             $25.00\nDesert Storm                            MPC             $25.00\nDeathstar Arcade Battles                DOS             $15.00\nDictionaries & Language                 DOS             $15.00\nEducation Master                        DOS             $20.00\nELectronic Home Library                 DOS             $35.00\nFamily Doctor                           DOS             $16.00\nFamily Encyclopedia by Comptons         DOS             $49.00\nFamily Encyclopedia by Comptons         MPC             $49.00\nGame Master                             DOS             $15.00\nGame Pack II                            DOS             $25.00\nGolden Immortal                         DOS             $25.00\nGreat Cities of the World               DOS             $25.00\nGreet Cities of the World               MPC             $30.00\nGreat Cities of the World II            DOS             $25.00  \nGreat Cities of the World II            MPC             $30.00\nGroliers Encyclopedia                   DOS             $40.00\nGroliers Encyclopedia                   MPC             $40.00\nGuiness Disc 1992                       DOS             $13.00\nHam Radio\t\t                DOS             $15.00\nInformation USA\t                        DOS\t        $35.00\nIslands Designs\t\t       \t        DOS\t        $20.00\nJets & Props                            DOS\t        $18.00\nJones ... Fast Lane\t\t        DOS/MPS\t        $17.00\nKGB/CIA  World Fact Book\t        DOS\t        $25.00\nKings  Quest  5:\t                DOS/MPC         $20.00\nLibrary of the  Future\t                DOS\t        $90.00\nLoom\t\t\t                DOS\t        $22.00\nMPC  Wizard\t\t                MPC\t        $15.00\nMacMillan  Kids  Dictionary\t        MPC             $48.00\nMagazine  Rack\t\t                DOS\t        $25.00\nMajestic  Places\t\t        DOS\t        $20.00\nMavis Beacon Teaches Typing             MPC\t        $35.00\nMixed Up Mother Goose    \t        DOS/MPC\t        $18.00\nMoney,Money,Money,                      DOS\t        $20.00\nMonkey Island\t                        DOS             $22.00\nOak CD Stand\t\t                DOS\t        $15.00\nOur Solar System\t\t        DOS\t        $15.00\nPresidents\t\t                DOS\t        $85.00\nPublish It v 3.0                        DOS\t        $20.00\nReference  Library\t\t        DOS\t        $35.00\nSecret  Weapons/Luftwaffe\t        MPC\t        $22.00\nShereware Games\t\t                DOS\t        $35.00\nShereware  Overload\t\t        DOS\t        $15.00\nSher Holmes/Consul Det\t                MPC\t        $35.00\nSleeping  Beauty\t\t        DOS\t        $20.00\nStrd. CD Software Bundle - 4 Titles     N/A\t        $90.00\nStellar  7\t\t\t        DOS/MPC\t        $17.00\nStory  Time - Interactive               DOS\t        $14.00\nThe CD  ROM  Collection\t                DOS\t        $15.00\nTime Magazine Almanac Current           DOS\t        $22.00\nTime Table of Hist/Sci/Innovation\tDOS\t\t$25.00\nTons & Gigs\t\t\t\tDOS\t\t$49.00\nToo Many Typefonts\t\t\tDOS\t\t$15.00\nTotal  Baseball\t\t\t\tDOS\t\t$30.00\nUS  Atlas/w Automap\t\t\tDOS\t\t$22.00\nUS  History\t\t\t\tDOS\t\t$28.00\nUS/World  Atlas\t\t                DOS/MPC\t        $18.00\nUS Wars:Civil War\t\t\tDOS\t\t$25.00\nWild Places\t\t\t\tDOS\t\t$20.00\nWing Com/Ultima VI\t\t\tDOS/MPC\t        $22.00\nWorld View\t\t\t\tDOS\t\t$25.00     \n\n\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\nE-Mail mkbaird@david.wheaton.edu -- mkbaird%david.bitnet@uunet.uu.net --  \nVoice  708-752-8847 - Internet 192.138.89.15 -- mkbaird%david@uunet.uu.net                    \n-- \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\nE-Mail mkbaird@david.wheaton.edu -- mkbaird%david.bitnet@uunet.uu.net --  \nVoice  708-752-8847 - Internet 192.138.89.15 -- mkbaird%david@uunet.uu.net                    \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5530, "properties": {"category": "rec.autos", "text": "From: lmann@jjmhome.UUCP (Laurie Mann)\nSubject: Clothing (Was  Re: male/female mystery [ Re: Dumbest automotive...])\nLines: 41\n\nIn article <1pima2INN180@gap.caltech.edu>, wen-king@cs.caltech.edu (Wen-King Su) writes:\n> This has me thinking.  Is there a biological reason why women can't put\n> their keys in their pants pockets like men do?  I have two pockets on the\n> back of each of my pants.  I put my keys in one and wallent in another.\n> Many of the pockets even have a botton on them so I can close them securely.\n> Everything is that much simpler for me.  Why can't women do the same?\n> Is is biological (ie, not enough room for a bigger bottom plus keys and\n> a wallet) or is it the way they are raised by the parents? \n\nOh PULLEEZE!\n\nIt's not biology at all, it's clothing design.  Women's clothing is\ngenerally designed to be as non-functional as possible.  It's only been\nin the last five years or so that you could buy women's pants with\npockets deep enough to carry anything in.  Previously, deep pockets were\nvirtually unknown in women's clothing.  Skirts generally have better\npockets now, too.  Dresses, espcially fancy dresses, are still pretty\nhopeless.  I often hand my driver's license over to my husband if we're\ndressed up to go out somewhere, so I don't have to be encumbered by a\npurse.\n\nIf women consistently bought functional clothing, and boycotted the\nmanufacturers who refuse to make functional women's clothing, I think\nmanufacturers would tend to bow to market pressures.  There's\nan interesting chapter in Susan Faludi's Backlash that described\nwhat happened the LAST time clothing manufacturers ignored the\nneed for functional women's clothing.  The manufactuing industry\nlost millions.\n\nFrom a woman who would rather buy men's clothing WITH decent pockets and\nlong legs and high waists than women's clothing without....\n\n\n\n\n\n\n-- \n******** lmann@jjmhome.uucp (Internet) Laurie.Mann (GEnie) *********\n** Claiming that sex education leads to irresponsible sex is like **\n*****  claiming that driver education leads to car accidents.  *****\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5531, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: Jewish Baseball Players?\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 16\n\nIn article <1993Apr16.200100.23703@scott.skidmore.edu> jrogoff@scott.skidmore.edu (jay rogoff) writes:\n\n>There is a book that you can find in sale catalogues occasionally\n>called _Jewish Baseball Stars_, and baseball mavin Peter Bjarkman has\n>compiled a pretty definitive list of Jewish ballplayers in the bigs.  \n\nI wish I hadn't sold my copy of Jewish Baseball Stars.  It's a Short Shelf\n(i.e., the one on top of the toilet tank) Special.  The writing in that \nbooks is so astonishingly awful -- every sportswriting cliche taken to\nthe nth degree and then mangled -- that it's funny.\n\nRusinow is the author, I think.\n\nRoger\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5532, "properties": {"category": "comp.graphics", "text": "From: ferdinan@oeinck.waterland.wlink.nl (Ferdinand Oeinck)\nSubject: Re: detecting double points in bezier curves\nOrganization: My own node in Groningen, NL.\nLines: 34\n\nrenner@adobe.com (John Renner) writes:\n\n> In article <19930420.090030.915@almaden.ibm.com> capelli@vnet.IBM.COM (Ron Ca\n> >In <ia522B1w165w@oeinck.waterland.wlink.nl> Ferdinand Oeinck writes:\n> >>I'm looking for any information on detecting and/or calculating a double\n> >>point and/or cusp in a bezier curve.\n> >\n> >See:\n> >   Maureen Stone and Tony DeRose,\n> >   \"A Geometric Characterization of Parametric Cubic Curves\",\n> >   ACM TOG, vol 8, no 3, July 1989, pp. 147-163.\n> \n> I've used that reference, and found that I needed to go to their\n> original tech report:\n> \n> \tMaureen Stone and Tony DeRose,\n> \t\"Characterizing Cubic Bezier Curves\"\n> \tXerox  EDL-88-8, December 1988\n> \n\nFirst, thanks to all who replied to my original question.\n\nI've implemented the ideas from the article above and I'm very satisfied\nwith the results. I needed it for my bezier curve approximation routine.\nIn some cases (generating offset curves) loops can occur. I now have a\nfast method of detecting the generation of a curve with a loop. Although\nI did not follow the article above strictly. The check if the fourth control\npoint lies in the the loop area, which is bounded by two parabolas and\none ellips is too complicated. Instead I enlarged the loop-area and\nsurrounded it by for straight lines. The check is now simple and fast and\nmy approximation routine never ever outputs self-intersecting bezier curves\nagain!\nFerdinand.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5533, "properties": {"category": "misc.forsale", "text": "From: george@cs.umass.edu (KOSHY GEORGE)\nSubject: WANTED/Summer Housing/Seattle(Univ of Washington)\nOrganization: University of Massachusetts, Amherst\nLines: 25\nDistribution: usa\nNNTP-Posting-Host: giane.cs.umass.edu\n\nSummer Housing needed-at University of Washington, Seattle.\n----------------------------------------------------------\nHi\n\n         I am looking for a place to stay for the summer \nat the University of Washington, Seattle, where I would be \ndoing an  internship. If any of you from UofW Seattle, has \ngot some kind of space for summer sublet, please send an \nemail/call to me.\n\n        I expect to start my internship in the first week \nof June.\n\n\n                                            -Koshy George\n                                       george@cs.umass.edu\n\nKoshy George,\n54, Puffton Village,\nAmherst, MA, 01002.\n413-549-7373 H\n413-545-2014 O\n-------------------\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5534, "properties": {"category": "misc.forsale", "text": "From: spooge@carson.u.washington.edu (Jeff Barrett)\nSubject: Printer Paper Tray\nOrganization: University of Washington, Seattle\nLines: 5\nDistribution: world\nNNTP-Posting-Host: carson.u.washington.edu\n\nI have a Hewlett-Packard LaserJet Series II Paper Tray for sale.\nIts letter size (8.5 - 11), brand new in the box and never used.\nI'm asking $40.00 (bought new at Ballard Computer for $65.95)\n\nplease reply to Jeffo at spooge@u.washington.edu or (206)543-0340\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5535, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Alt.Atheism FAQ: Frequently Asked Questions\nSummary: Please read this file before posting to alt.atheism\nKeywords: FAQ, atheism\nExpires: Fri, 14 May 1993 09:39:55 GMT\nDistribution: world\nOrganization: Mantis Consultants, Cambridge. UK.\nSupersedes: <19930315114603@mantis.co.uk>\nLines: 733\n\nArchive-name: atheism/faq\nAlt-atheism-archive-name: faq\nLast-modified: 5 April 1993\nVersion: 1.1\n\n                    Alt.Atheism Frequently-Asked Questions\n\nThis file contains responses to articles which occur repeatedly in\nalt.atheism.  Points covered here are ones which are not covered in the\n\"Introduction to Atheism\"; you are advised to read that article as well\nbefore posting.\n\nThese answers are not intended to be exhaustive or definitive. The purpose of\nthe periodic FAQ postings is not to stifle debate, but to raise its level. If\nyou have something to say concerning one of these questions and which isn't\ncovered by the answer given, please feel free to make your point.\n\nOverview of contents:\n\n   \"What is the purpose of this newsgroup?\"\n   \"Hitler was an atheist!\"\n   \"The Bible proves it\"\n   \"Pascal's Wager\"\n   \"What is Occam's Razor?\"\n   \"Why it's good to believe in Jesus\"\n   \"Why I know that God exists\"\n   \"Einstein and \"God does not play dice\"\"\n   \"Everyone worships something\"\n   \"Why there must be a causeless cause\"\n   \"The universe is so complex it must have been designed\"\n   \"Independent evidence that the Bible is true\"\n   \"Godel's Incompleteness Theorem\"\n   \"George Bush on atheism and patriotism\"\n   \"I know where hell is!\"\n   \"Biblical contradictions wanted\"\n   \"The USA is a Christian nation\"\n   \"The USA is not a Christian nation\"\n\n----------------------------------------------------------------------\n\nSubject: What is the purpose of this newsgroup?\n\nTypical posting:\n\nWhy have a newsgroup about atheism?  Why do atheists organize in groups?  \nWhat is there to discuss?\n\nResponse:\n\nMany things are discussed here, including:\n\n* Whether it is reasonable to feign theism in order to avoid upsetting one's\n  family\n* Prayer in schools\n* Discrimination against atheists\n* Sunday trading laws\n* The Satanic Child Abuse myth\n* Whether one should be an overt atheist or 'stay in the closet'\n* How religious societies prey (sic) on new college students\n* How to get rid of unwanted proselytizers\n* Whether religion is a danger to society and/or the individual\n* Why people become atheists\n\nOf course, inevitably alt.atheism tends to attract evangelical Christians\nlooking for someone to convert.  Most readers of the newsgroup don't \nwant to be preached to, although a few seem to derive perverse pleasure \nfrom tearing apart particularly ill-considered or uninformed postings.\n\n------------------------------\n\nSubject: Hitler was an atheist!\n\nTypical posting:\n\nHitler was an atheist, and look at what he did!\n\nResponse:\n\nAdolf Hitler was emphatically not an atheist.  As he said himself:\n\n   The folkish-minded man, in particular, has the sacred duty, each in\n   his own denomination, of making _people_stop_just_talking_\n   superficially_of_God's_will,_and_actually_fulfill_God's_will,_and_\n   not_let_God's_word_be_desecrated._[orig. ital.]\n\n   For God's will gave men their form, their essence, and their\n   abilities.  Anyone who destroys His work is declaring war on the\n   Lord's creation, the divine will.  Therefore, let every man be\n   active, each in his own denomination if you please, and let every\n   man take it as his first and most sacred duty to oppose anyone who\n   in his activity by word or deed steps outside the confines of his\n   religious community and tries to butt into the other.\n\n   [...]\n\n   Hence today I believe that I am acting in accordance with the will\n   of the Almighty Creator: _by_defending_myself_against_the_Jew,_I_am_\n   fighting_for_the_work_of_the_Lord._[orig. ital.]\n\n          -- Adolf Hitler, from \"Mein Kampf\", trans. Ralph Mannheim.\n\nOf course, someone bad believing something does not make that belief\nwrong.  It's also entirely possible that Hitler was lying when he claimed \nto believe in God.  We certainly can't conclude that he's an atheist, \nthough.\n\n------------------------------\n\nSubject: The Bible proves it\n\nTypical posting:\n\nIn the Bible it says that...\n\nResponse:\n\nMost of the readers of alt.atheism feel that the Bible is of questionable\naccuracy, as it was written thousands of years ago by many authors who were\nrecording oral tradition that existed many years before.  Thus, any claimed\n'truth' in it is of questionable legitimacy.  This isn't to say that The\nBible has no truth in it; simply that any truth must be examined before being\naccepted.\n\nMany of the readers of this group also feel that because any passage is\nsubject to \"interpretation\", any claim that a passage 'means' one thing and\none thing only is not legitimate.\n\nNote that this feeling tends to extend to other books.\n\nIt is also remarkable to many atheists that theists tend to ignore other\nequally plausible religious books in favour of those of their own religion.\n\n------------------------------\n\nSubject: Pascal's Wager\n\nTypical posting:\n\nIf you believe in God and turn out to be incorrect, you have lost nothing --\nbut if you don't believe in God and turn out to be incorrect, you will go to\nhell. Therefore it is foolish to be an atheist.\n\nResponse:\n\nThis argument is known as Pascal's Wager.  It has several flaws.\n\nFirstly, it does not indicate which religion to follow.  Indeed, there are\nmany mutually exclusive and contradictory religions out there.  This is often\ndescribed as the \"avoiding the wrong hell\" problem.  If a person is a\nfollower of religion X, he may end up in religion Y's version of hell.\n\nSecondly, the statement that \"If you believe in God and turn out to be\nincorrect, you have lost nothing\" is not true.  Suppose you're believing in\nthe wrong God -- the true God might punish you for your foolishness.\nConsider also the deaths that have resulted from people rejecting medicine in\nfavour of prayer.\n\nAnother flaw in the argument is that it is based on the assumption that \nthe two possibilities are equally likely -- or at least, that they are of \ncomparable likelihood.  If, in fact, the possibility of there being a God \nis close to zero, the argument becomes much less persuasive.  So sadly the\nargument is only likely to convince those who believe already.\n\nAlso, many feel that for intellectually honest people, belief is based on \nevidence, with some amount of intuition.  It is not a matter of will or \ncost-benefit analysis.\n\nFormally speaking, the argument consists of four statements:\n\n  1. One does not know whether God exists.\n  2. Not believing in God is bad for one's eternal soul if God does\n     exist.\n  3. Believing in God is of no consequence if God does not exist.\n  4. Therefore it is in one's interest to believe in God.\n\nThere are two approaches to the argument.  The first is to view 1 as an\nassumption, and 2 as a consequence of it.  One problem with this approach, in\nthe abstract, is that it creates information from no information.  This is\nconsidered invalid in information theory.  Statement 1 indicates one has no\ninformation about God -- but statement 2 indicates that beneficial information\ncan be gained from the absolute lack of information about God.  This violates\ninformation entropy -- information has been extracted from no information, at\nno \"cost\".\n\nThe alternative approach is to claim that 1 and 2 are both assumptions.  The\nproblem with this is that 2 is then basically an assumption which states the\nChristian position, and only a Christian will agree with that assumption. The\nargument thus collapses to \"If you are a Christian, it is in your interests\nto believe in God\" -- a rather vacuous tautology, and not the way Pascal\nintended the argument to be viewed.\n\nThe biggest reason why Pascal's wager is a failure is that if God is\nomniscient he will certainly know who really believes and who believes as\na wager.  He will spurn the latter... assuming he actually cares at all\nwhether people believe in him.\n\n------------------------------\n\nSubject: What is Occam's Razor?\n\nTypical posting:\n\nPeople keep talking about Occam's Razor.  What is it?\n\nResponse:\n\nWilliam of Occam formulated a principle which has become known as Occam's \nRazor.  In its original form, it said \"Do not multiply entities \nunnecessarily.\"  That is, if you can explain something without supposing\nthe existence of some entity, then do so.\n\nNowadays when people refer to Occam's Razor, they generally express it \nmore generally, for example as \"Take the simplest solution\".\n\nThe relevance to atheism is that we can look at two possible explanations \nfor what we see around us:\n\n1. There is an incredibly intricate and complex universe out there, which\ncame into being as a result of natural processes.\n\n2. There is an incredibly intricate and complex universe out there, and \nthere is also a God who created the universe.  Clearly this God must be \nof non-zero complexity.\n\nGiven that both explanations fit the facts, Occam's Razor might suggest \nthat we should take the simpler of the two -- solution number one.\nUnfortunately, some argue that there is a third even more simple solution:\n\n3. There isn't an incredibly intricate and complex universe out there.  \nWe just imagine that there is.\n\nThis third option leads us logically towards solipsism, which many people \nfind unacceptable.\n \n------------------------------\n\nSubject: Why it's good to believe in Jesus\n\nTypical posting:\n\nI want to tell people about the virtues and benefits of my religion.\n\nResponse:\n\nPreaching is not appreciated.\n\nFeel free to talk about your religion, but please do not write postings that\nare on a \"conversion\" theme.  Such postings do not belong on alt.atheism and\nwill be rejected from alt.atheism.moderated (try the newsgroup\ntalk.religion.misc).\n\nYou would doubtless not welcome postings from atheists to your favourite\nnewsgroup in an attempt to convert you; please do unto others as you would\nhave them do unto you!\n\nOften theists make their basic claims about God in the form of lengthy\nanalogies or parables.  Be aware that atheists have heard of God and know the\nbasic claims about him; if the sole purpose of your parable is to tell\natheists that God exists and brings salvation, you may as well not post it,\nsince it tells us nothing we have not been told before.\n\n------------------------------\n\nSubject: Why I know that God exists\n\nTypical posting:\n\nI *know* from personal experience and prayer that God exists.\n\nResponse:\n\nJust as many theists have personal evidence that the being they worship\nexists, so many atheists have personal evidence that such beings do not\nexist.  That evidence varies from person to person.\n\nFurthermore, without wishing to dismiss your evidence out of hand, many\npeople have claimed all kinds of unlikely things -- that they have been\nabducted by UFOs, visited by the ghost of Elvis, and so on.\n\n------------------------------\n\nSubject: Einstein and \"God does not play dice\"\n\nTypical posting:\n\nAlbert Einstein believed in God.  Do you think you're cleverer than him?\n\nResponse:\n\nEinstein did once comment that \"God does not play dice [with the universe]\". \nThis quotation is commonly mentioned to show that Einstein believed in the\nChristian God.  Used this way, it is out of context; it refers to Einstein's\nrefusal to accept the uncertainties indicated by quantum theory. Furthermore,\nEinstein's religious background was Jewish rather than Christian.\n\nA better quotation showing what Einstein thought about God is the following:\n\"I believe in Spinoza's God who reveals himself in the orderly harmony of\nwhat exists, not in a God who concerns himself with fates and actions of\nhuman beings.\"\n\nEinstein was unable to accept Quantum Theory because of his belief in an\nobjective, orderly reality; a reality which would not be subject to random\nevents and which would not be dependent upon the observer.  He believed that\nQM was incomplete, and that a better theory would have no need for\nstatistical interpretations.  So far no such better theory has been found,\nand much evidence suggests that it never will be.\n\nA longer quote from Einstein appears in \"Science, Philosophy, and Religion, A\nSymposium\", published by the Conference on Science, Philosophy and Religion\nin Their Relation to the Democratic Way of Life, Inc., New York, 1941.  In\nit he says:\n\n  \"The more a man is imbued with the ordered regularity of all events\n   the firmer becomes his conviction that there is no room left by the side\n   of this ordered regularity for causes of a different nature.  For him\n   neither the rule of human nor the rule of divine will exists as an\n   independent cause of natural events.  To be sure, the doctrine of a\n   personal God interfering with natural events could never be\n   *refuted* [italics his], in the real sense, by science, for this\n   doctrine can always take refuge in those domains in which scientific\n   knowledge has not yet been able to set foot.\n\n   But I am convinced that such behavior on the part of representatives\n   of religion would not only be unworthy but also fatal.  For a doctrine\n   which is to maintain itself not in clear light but only in the dark,\n   will of necessity lose its effect on mankind, with incalculable harm\n   to human progress.  In their struggle for the ethical good, teachers\n   of religion must have the stature to give up the doctrine of a personal\n   God, that is, give up that source of fear and hope which in the past\n   placed such vast power in the hands of priests.  In their labors they\n   will have to avail themselves of those forces which are capable\n   of cultivating the Good, the True, and the Beautiful in humanity\n   itself.  This is, to be sure, a more difficult but an incomparably\n   more worthy task...\"\n\nEinstein has also said:\n\n  \"It was, of course, a lie what you read about my religous convictions,\n   a lie which is being systematically repeated.  I do not believe in a\n   personal God and I have never denied this but have expressed it clearly.\n   If something is in me which can be called religious then it is the\n   unbounded admiration for the structure of the world so far as our\n   science can reveal it.\"\n\nThe latter quote is from \"Albert Einstein: The Human Side\", edited by Helen \nDukas and Banesh Hoffman, and published by Princeton University Press.  \nAlso from the same book:\n\n  \"I do not believe in immortality of the individual, and I consider ethics\n   to be an exclusively human concern with no superhuman authority behind \n   it.\"\n\nOf course, the fact that Einstein chose not to believe in Christianity does \nnot in itself imply that Christianity is false.\n\n------------------------------\n\nSubject: Everyone worships something\n\nTypical posting:\n\nEveryone worships something, whether it's money, power or God.\n\nResponse:\n\nIf that is true, everyone is a polytheist.  Theists care just as much about\nthose things that atheists care about.  If the atheists' reactions to (for\nexample) their families amount to worship then so do the theists'.\n\n------------------------------\n\nSubject: Why there must be a causeless cause\n\nTypical posting:\n\nSets of integers that have a lower bound each have a smallest member, so\nchains of causes must all have a first element, a causeless cause.\n\nResponse:\n\nThe set of real numbers greater than zero has a definite lower bound, but has\nno smallest member.\n\nFurther, even if it is true that there must be a causeless cause, that does\nnot imply that that cause must be a conscious supernatural entity, and\nespecially not that any such entity must match the description favoured by\nany particular religion.\n\n------------------------------\n\nSubject: The universe is so complex it must have been designed\n\nTypical posting:\n\nThe presence of design in the universe proves there is a God.  Surely you\ndon't think all this appeared here just by chance?\n\nResponse:\n\nThis is known as the Argument From Design.\n\nIt is a matter of dispute whether there is any element of design in the\nuniverse. Those who believe that the complexity and diversity of living\ncreatures on the earth is evidence of a creator are best advised to read the\nnewsgroup talk.origins for a while.\n\nThere is insufficient space to summarize both sides of that debate here.\nHowever, the conclusion is that there is no scientific evidence in favour of\nso-called Scientific Creationism. Furthermore, there is much evidence,\nobservation and theory that can explain many of the complexities of the\nuniverse and life on earth.\n\nThe origin of the Argument by Design is a feeling that the existence of\nsomething as incredibly intricate as, say, a human is so improbable that\nsurely it can't have come about by chance; that surely there must be some \nexternal intelligence directing things so that humans come from the chaos\ndeliberately.\n\nBut if human intelligence is so improbable, surely the existence of a mind\ncapable of fashioning an entire universe complete with conscious beings must\nbe immeasurably more unlikely?  The approach used to argue in favour of the\nexistence of a creator can be turned around and applied to the Creationist\nposition.\n\nThis leads us to the familiar theme of \"If a creator created the universe,\nwhat created the creator?\", but with the addition of spiralling \nimprobability.  The only way out is to declare that the creator was not\ncreated and just \"is\" (or \"was\").\n\nFrom here we might as well ask what is wrong with saying that the universe\njust \"is\" without introducing a creator?  Indeed Stephen Hawking, in his book\n\"A Brief History of Time\", explains his theory that the universe is closed\nand finite in extent, with no beginning or end.\n\nThe Argument From Design is often stated by analogy, in the so-called \nWatchmaker Argument.  One is asked to imagine that one has found a watch on\nthe beach.  Does one assume that it was created by a watchmaker, or that it\nevolved naturally?  Of course one assumes a watchmaker.  Yet like the \nwatch, the universe is intricate and complex; so, the argument goes, the \nuniverse too must have a creator.\n\nThe Watchmaker analogy suffers from three particular flaws, over and above \nthose common to all Arguments By Design.  Firstly, a watchmaker creates \nwatches from pre-existing materials, whereas God is claimed to have \ncreated the universe from nothing.  These two sorts of creation are \nclearly fundamentally different, and the analogy is therefore rather weak.\n\nSecondly, a watchmaker makes watches, but there are many other things in \nthe world.  If we walked further along the beach and found a nuclear \nreactor, we wouldn't assume it was created by the watchmaker.  The argument \nwould therefore suggest a multitude of creators, each responsible for a \ndifferent part of creation.\n\nFinally, in the first part of the watchmaker argument we conclude that \nthe watch is not part of nature because it is ordered, and therefore \nstands out from the randomness of nature.  Yet in the second part of the \nargument, we start from the position that the universe is obviously not \nrandom, but shows elements of order.  The Watchmaker argument is thus \ninternally inconsistent.\n\n------------------------------\n\nSubject: Independent evidence that the Bible is true\n\nTypical posting:\n\nThe events of the New Testament are confirmed by independent documentary\nevidence.  For example...\n\nResponse:\n\nThe writings of Josephus are often mentioned as independent documentary\nevidence.\n\nEarly versions of Josephus's work are thought not to have mentioned Jesus or\nJames; the extant version discusses John in a non-Christian context.  Many\nscholars believe that the original mentioned Jesus and James in passing, but\nthat this was expanded by Christian copyists.  Several \"reconstructions\" of\nthe original text have been published to this effect.\n\nMuch information appears in the Ecclesiastical History of Eusebius (about 320\nC.E.).  It is worthless as historical material because of the deliberate\nfalsification of the wily Eusebius who is generally acknowledged as 'the\nfirst thoroughly dishonest historian of antiquity.' It is Eusebius who is\ngenerally given the title of authorship for this material.\n\nAside from the New Testament, the biographical information about Jesus is\nmore well-documented.  For further information, please consult the Frequently\nAsked Questions file for the newsgroup soc.religion.christian.\n\n------------------------------\n\nSubject: Godel's Incompleteness Theorem\n\nTypical posting:\n\nGodel's Incompleteness Theorem demonstrates that it is impossible for the\nBible to be both true and complete.\n\nResponse:\n\nGodel's First Incompleteness Theorem says that in any consistent formal \nsystem which is sufficiently expressive that it can model ordinary \narithmetic, one can formulate expressions which can never be proven to be \nvalid or invalid ('true' or 'false') within that formal system.  (Technically\nspeaking, the system must also be recursive; that is, there must be a decision\nprocedure for determining whether a given string is an axiom within the formal \nsystem.)\n\nEssentially, all such systems can formulate what is known as a \"Liar \nParadox.\"  The classic Liar Paradox sentence in ordinary English is \"This \nsentence is false.\"  Note that if a proposition is undecidable, the formal \nsystem cannot even deduce that it is undecidable.\n\nThe logic used in theological discussions is rarely well defined, so claims\nthat Godel's Incompleteness Theorem demonstrates that it is impossible to\nprove or disprove) the existence of God are worthless in isolation.\n\nOne can trivially define a formal system in which it is possible to prove the\nexistence of God, simply by having the existence of God stated as an axiom. \nThis is unlikely to be viewed by atheists as a convincing proof, however.\n\nIt may be possible to succeed in producing a formal system built on axioms\nthat both atheists and theists agree with.  It may then be possible to show\nthat Godel's Incompleteness Theorem holds for that system.  However, that\nwould still not demonstrate that it is impossible to prove that God exists\nwithin the system.  Furthermore, it certainly wouldn't tell us anything about\nwhether it is possible to prove the existence of God generally.\n\nNote also that all of these hypothetical formal systems tell us nothing about\nthe actual existence of God; the formal systems are just abstractions.\n\nAnother frequent claim is that Godel's Incompleteness Theorem demonstrates\nthat a religious text (the Bible, the Book of Mormon or whatever) cannot be\nboth consistent and universally applicable. Religious texts are not formal\nsystems, so such claims are nonsense.\n\n------------------------------\n\nSubject: George Bush on atheism and patriotism\n\nTypical posting:\n\nDid George Bush really say that atheists should not be considered citizens?\n\nResponse:\n\nThe following exchange took place at the Chicago airport between Robert I.\nSherman of American Atheist Press and George Bush, on August 27 1988. Sherman\nis a fully accredited reporter, and was present by invitation as a member of\nthe press corps.  The Republican presidential nominee was there to announce\nfederal disaster relief for Illinois.  The discussion turned to the\npresidential primary:\n\n RS: \"What will you do to win the votes of Americans who are atheists?\"\n\n GB: \"I guess I'm pretty weak in the atheist community.  Faith in\n      God is important to me.\"\n\n RS: \"Surely you recognize the equal citizenship and patriotism of\n      Americans who are atheists?\"\n\n GB: \"No, I don't know that atheists should be considered as citizens,\n      nor should they be considered patriots.  This is one nation under\n      God.\"\n\n RS: \"Do you support as a sound constitutional principle the separation\n      of state and church?\"\n\n GB: \"Yes, I support the separation of church and state.  I'm just not\n      very high on atheists.\"\n\nUPI reported on May 8, 1989, that various atheist organizations were\nstill angry over the remarks.\n\nThe exchange appeared in the Boulder Daily Camera on Monday February 27,\n1989.  It can also be found in \"Free Enquiry\" magazine, Fall 1988 issue,\nVolume 8, Number 4, page 16.\n\nOn October 29, 1988, Mr. Sherman had a confrontation with Ed Murnane,\ncochairman of the Bush-Quayle '88 Illinois campaign.  This concerned a\nlawsuit Mr. Sherman had filed to stop the Community Consolidated School\nDistrict 21 (Chicago, Illinois) from forcing his first-grade Atheist son to\npledge allegiance to the flag of the United States as \"one nation under God\"\n(Bush's phrase).  The following conversation took place:\n \n RS: \"American Atheists filed the Pledge of Allegiance lawsuit yesterday.\n      Does the Bush campaign have an official response to this filing?\"\n \n EM: \"It's bullshit.\"\n \n RS: \"What is bullshit?\"\n \n EM: \"Everything that American Atheists does, Rob, is bullshit.\"\n \n RS: \"Thank you for telling me what the official position of the Bush\n      campaign is on this issue.\"\n\n EM: \"You're welcome.\"\n\nAfter Bush's election, American Atheists wrote to Bush asking him to retract\nhis statement.  On February 21st 1989, C. Boyden Gray, Counsel to the\nPresident, replied on White House stationery that Bush substantively stood by\nhis original statement, and wrote:\n\n  \"As you are aware, the President is a religious man who neither supports\n   atheism nor believes that atheism should be unnecessarily encouraged or\n   supported by the government.\"\n\nFor further information, contact American Atheist Veterans at the American\nAtheist Press's Cameron Road address.\n\n------------------------------\n\nSubject: I know where hell is!\n\nTypical posting:\n\nI know where Hell is!  Hell is in Norway!\n\nResponse:\n\nThere are several towns called \"Hell\" in various countries around the\nworld, including Norway and the USA.  Whilst this information is mildly\namusing the first time one hears it, readers of alt.atheism are now \ngetting pretty fed up with hearing it every week.\n\n------------------------------\n\nSubject: Biblical contradictions wanted\n\nTypical posting:\n\nDoes anyone have a list of Biblical contradictions?\n\nResponse:\n \nAmerican Atheist Press publish an atheist's handbook detailing Biblical\ncontradictions. See the accompanying posting on Atheist Resources for\ndetails.\n\nThere is a file containing some Biblical contradictions available from the\narchive-server@mantis.co.uk. See the contacts file for more information.\n\n------------------------------\n\nSubject: The USA is a Christian nation\n\nTypical posting:\n\nBecause of the religious beliefs of the founding fathers, shouldn't the\nUnited States be considered a Christian nation?\n\nResponse:\n\nBased upon the writings of several important founding fathers, it is clear\nthat they never intended the US to be a Christian nation.  Here are some\nquotes; there are many more.\n\n  \"What influence, in fact, have ecclesiastical establishments had on society?\n   In some instances they have been seen to erect a spiritual tyranny on the\n   ruins of the civil authority; on many instances they have been seen\n   upholding the thrones of political tyranny; in no instance have they been\n   the guardians of the liberties of the people.  Rulers who wish to subvert\n   the public liberty may have found an established clergy convenient\n   auxiliaries. A just government, instituted to secure and perpetuate it,\n   needs them not.\"\n      - James Madison, \"A Memorial and Remonstrance\", 1785\n\n  \"I almost shudder at the thought of alluding to the most fatal example of\n   the abuses of grief which the history of mankind has preserved--the Cross.\n   Consider what calamities that engine of grief has produced!\"\n      - John Adams, in a letter to Thomas Jefferson\n\n  \"History I believe furnishes no example of a priest-ridden people\n   maintaining a free civil government.  This marks the lowest grade of\n   ignorance, of which their political as well as religious leaders will\n   always avail themselves for their own purpose.\"\n\n      - Thomas Jefferson to Baron von Humboldt, 1813\n\n  \"I cannot conceive otherwise than that He, the Infinite Father, expects or\n   requires no worship or praise from us, but that He is even infinitely\n   above it.\"\n\n      - Benjamin Franklin, from \"Articles of Belief and Acts of Religion\",\n        Nov. 20, 1728\n\n------------------------------\n\nSubject: The USA is not a Christian nation\n\nTypical posting:\n\nIs it true that George Washington said that the United States is not in any\nsense founded upon the Christian religion?\n\nResponse:\n\nNo.  The quotation often given is in fact from Article XI of the 1797 Treaty\nof Tripoli (8 Stat 154, Treaty Series 358):\n\n   Article 11\n\n   As the government of the United States of America is not in any sense\n   founded on the Christian Religion, -- as it has in itself no character of\n   enmity against the laws, religion or tranquility of Musselmen, -- and as\n   the said States never have entered into any war or act of hostility\n   against any Mehomitan nation, it is declared by the parties that no\n   pretext arising from religious opinions shall ever produce an interruption\n   of the harmony existing between the two countries.\n\nThe text may be found in the Congressional Record or in treaty collections\nsuch as Charles Bevans' \"Treaties and Other International Agreements of the\nUnited States of America 1776-1949\", vol. 11 (pp. 1070-1080).\n\nThe English text of the Treaty of Tripoli was approved by the U.S. Senate on\nJune 7, 1797 and ratified by President John Adams on June 10, 1797.  It was\nrecently discovered that the Arabic version of the treaty not only lacks the\nquotation, it lacks Article XI altogether.\n\nThe person who translated the Arabic to English was Joel Barlow, Consul\nGeneral at Algiers, a close friend of Thomas Paine -- and an opponent of\nChristianity.  It is possible that Barlow made up Article XI, but since there\nis no Arabic version of that article to be found, it's hard to say.\n\nIn 1806 a new Treaty of Tripoli was ratified which no longer contained the\nquotation.\n\n\nEnd of FAQ Digest\n*****************\n\u00ff\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5536, "properties": {"category": "sci.crypt", "text": "From: kepley@photon.phys.unca.edu (Brad Kepley)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: University of North Carolina at Asheville\nDistribution: na\nLines: 13\n\nIn article <1993Apr20.161838.13213@coop.com> felixg@coop.com (Felix Gallo) writes:\n>pat@rwing.UUCP (Pat Myrto) writes:\n>\n>>If the Clinton Clipper is so very good, [...]\n>\n>Please note that Bill Clinton probably has little if anything to do\n>with the design, implementation or reasoning behind this chip or behind\n\nCan't we move the political bickering to a more appropriate group?\n-- \nBrad Kepley                  Internet         kepley@photon.phys.unca.edu\nWork-days                    Voice            (704)252-8330\n--\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5537, "properties": {"category": "sci.med", "text": "From: news&aio.jsc.nasa.gov (USENET News System)\nSubject: Re: Oily skin - problem?\nArticle-I.D.: aio.1993Apr6.133244.14717\nDistribution: sci.med\nOrganization: Lockheed Engineering & Sciences Co.\nLines: 17\n\nIn article <1993Apr5.044140.1@vaxc.stevens-tech.edu>, u92_hwong@vaxc.stevens-tech.edu writes:\n> \n> Hi there,\n> \n> \tI have a very oily skin.  My problem is when I wash my face, it becomes\n> oily in half an hour.  Especially in the nose region.  Is this an illness?  How\n> can I prevent it from occuring in such short time?  Is there a cleanser out\n> there that will do a better job -- that is after cleaning, my face won't become\n> oily in such a short time.\n> \n> \tThank you for any suggestion.\n> \n>if this is a disease, everyone should have it.  My skin has always been oily -\ni used to say \"if i were hot enough, you could fry an egg on my oily face\".\ni am now 50 yrs old and my skin looks younger (i'm told) than some people's\nskin at 30 (it's still oily).  i have only a very few tiny wrinkles.  Thank\nyour lucky stars for that skin. \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5538, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 32\n\n\nIn article <1r0ejoINNjfj@owl.csrv.uidaho.edu>, lanph872@crow.csrv.uidaho.edu (Rob Lanphier) writes:\n|> Malcolm Lee (mlee@post.RoyalRoads.ca) wrote:\n|> : What bothers me most is why people who have no religious affiliation \n|> : continue to persecute Jews?  Why this hatred of Jews?  The majority of\n|> : people who persecute Jews are NOT Christians (I can't speak for all \n|> : Christians and there are bound to be a few who are on the anti-Semitism\n|> : bandwagon.)\n|> \n|> Do you even have anecdotal evidence to back this up?  The most blatent\n|> persecution of the Jews in history was of course done by the Nazis before\n|> and during World War II, a predominately Lutheran crowd.  Sure, many\n|> Muslims in the Middle East consider the Israelites to be a thorn in their\n|> side, but the most of the modern persecution of Jews has been at the hands\n|> of Christians (at least as far as I'm aware).\n|> \n|> Rob Lanphier\n|> lanph872@uidaho.edu\n\nDo you consider Neo-Nazis and white supremists to be Christian?  I'd hardly\nclassify them as Christian.  Do they follow the teachings of Christ?  Love\none another.  Love your neighbour as yourself.  Love your enemies.  Is Jesus\nChrist their Lord and Saviour?  By the persecution of Jews, they are violating\nall the precepts of what Christ died for.  They are in direct violation of\nthe teachings of Christ.  Even Jesus who was crucified by the Jewish leaders\nof that time, loved His enemies by asking the Father for forgiveness of their\nsins.  I am a Christian and I bear no animosity towards Jews or any one else.\nThe enemy is Satan, not our fellow man.\n\nGod be with you,\n\nMalcolm Lee  :)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5539, "properties": {"category": "sci.med", "text": "From: kilty@ucrengr (kathleen richards)\nSubject: Re: Lyme vaccine\nReply-To: karicha@eis.calstate.edu\nLines: 12\nNntp-Posting-Host: ucrengr\nX-Newsreader: TIN [version 1.1 PL8]\n\nJeff, \n\nIf you have time to type it in I'd love to have the reference for that\npaper!  thanks!\n\n--\n\nkathleen richards   email:  karicha@eis.calstate.edu\n\n   ~Sometimes you're the windshield, sometimes you're the bug!~\n                                                  -dire straits\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5540, "properties": {"category": "talk.politics.guns", "text": "From: pitargue@cisco.com (Marciano Pitargue)\nSubject: Re: guns in backcountry? no thanks\nOrganization: cisco\nLines: 58\nDistribution: world\nNNTP-Posting-Host: lager.cisco.com\nOriginator: pitargue@cisco.com\n\n\nIn article <1qkcok$s9i@usenet.INS.CWRU.Edu>, ci946@cleveland.Freenet.Edu (John K. Gever) writes:\n|> \n|> Do you Rambos who worry so much about rape and murder in the\n|> wilderness also carry your guns all the time at home too?  You\n|> should, since you're in a hell of a lot more danger there than\n|> in the backcountry.\n\nwhen does carrying a tool classify someone as a rambo.  so all the\npioneers that came west were rambo's?  adrienne!!!  :-)\n\n|> \n|> Does anybody reading this group have an actual, honest-to-God\n|> experience with violent crime in the backcountry to tell about?\n|> \n|> I can sort of understand the people who want to protect themselves\n|> from bears and such, although there are, what, maybe a dozen or\n|> two bear attacks on people in North America each year?  But to\n|> worry about being raped by some buck-toothed Bubba in overalls\n|> is just irrational.  I think we'd all be a lot safer if all the\n|> videocassettes of \"Deliverance\" were gathered up and burned.\n\nwould your tune change if you were one of the \"dozen or two bear attacks\"?\nbelieve me, when you need a firearm, you NEED a firearm.\n\n|> \n|> Public health experts will tell you that you are far more likely\n|> have your gun stolen, use it yourself on a family member or\n|> have it used on you than you are to use it on an actual criminal.\n\nplease cite your references.   i'll let others (please note followup)\ncite valid references to show you that this is an untruth.\n\n|> The Rambo warriors we've heard from here undoubtedly consider\n|> themselves exempt from this statistical reality -- they're much\n|> too smart and responsible.  Living in a city where there's a\n|> drive-by shooting every couple of days, and working in a medical\n|> center where a day doesn't go by without a shooting victim coming\n|> into the ER, I'm just a bit skeptical about the value of gun\n|> ownership.  I go to the backcountry to get away from this \n|> environment, and I don't want to find other people there who\n|> insist on bringing the urban environment along with them -- boom\n|> boxes, computers, or guns.\n\nwell, you might as well go naked.  forget the matches, backpack, sleeping\nbag and all the rest that's is a modern convenience.  a firearm is just\na tool.  as some people won't carry gaiters, some people do.  firearms\nshould be in the same category.  it should be a personal choice.\n\nand your factoid about shooting victims in the ER.  count how many come in\ndue to automobile accidents and automobile crimes.  maybe we should outlaw\ncars.\n\n|> \n|> Please post flaming responses to rec.guns.rabid  >:-(\n|> - J. Gever, B'ham, Ala.\n\nmarciano pitargue@cisco.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5541, "properties": {"category": "comp.graphics", "text": "From: diablo.UUCP!cboesel (Charles Boesel)\nSubject: Is there an FTP achive for USGS terrain data\nOrganization: Diablo Creative\nReply-To: diablo.UUCP!cboesel (Charles Boesel)\nX-Mailer: uAccess LITE - Macintosh Release: 1.6v2\nLines: 6\n\nIs there an FTP archive for United States Geological Services (USGS)\nterrain data? If so, where?\n\n--\ncharles boesel @ diablo creative |  If Pro = for   and   Con = against\ncboesel@diablo.uu.holonet.net    |  Then what's the opposite of Progress?\n+1.510.980.1958(pager)           |  What else, Congress.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5542, "properties": {"category": "comp.windows.x", "text": "From: matt@centerline.com (Matt Landau)\nSubject: Re: Asynchronous X Windows?\nOrganization: CenterLine Software, Inc.\nLines: 42\nNNTP-Posting-Host: 140.239.1.32\n\nIn <1382.9304261508@zztop.dps.co.uk> gerard@dps.co.UK (Gerard O'Driscoll) writes:\n>>> No, it isn't.  It is the \"X Window System\", or \"X11\", or \"X\" or any of\n>>> a number of other designations accepted by the X Consortium....\n>>> \n>>> There is no such thing as \"X Windows\" or \"X Window\", despite the repeated\n>>> misuse of the forms by the trade rags.  \n\n>I used to think this way, and not just about X. For example, incorrect\n>English constructs such as \"its raining\" or \"it's window id\" annoy me.\n>However, there comes a time when popular usage starts to dictate the way\n>things really are in the world. \n\nWell, yes and no.  I don't particularly want this discussion to spark\na lengthy debate, but I do think it's worth pointing out that \"popular\nusage\" is not always sufficient excuse.  \n\nIn this case, for example, I think an appropriate parallel may be found\nin the pronunciation of proper names: if people commonly misspelled or \nmispronounced your name, would you feel compelled to change it?  Probably\nnot.  \n\nThe same is true of X.  \"The X Window System\", \"X\", \"X11\", and related\nmonickers are proper names in the same sense that any product name is a\nproper name.  In fact, some of them are *trademarked* names.  The fact \nthat many people get them wrong is largely beside the point.  \n\nAs for the trade publications that promulgate things like \"X Window\" or\n\"X.windows\" or any of the other nonsensical variants one often sees, \nconsider the fact that these publications are supposedly written by \n*journalists*.  Would you trust the facts of a journalist who couldn't\nbe bothered to get the name of his/her source right?  Would you trust\na product review by someone who got the name of the product wrong?\n\nPopular usage is as it may be, but I for one am all for holding people\nwho claim to be journalists to a higher standard of correctness.\n\n>Indeed, the fact that X won out over NeWS\n>was really down to popular opinion (I know, we all think it's(!) technically\n>superior as well!).\n\nX11 technically superior to NeWS?  Well, in *some* alternate universe\nperhaps ...\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5543, "properties": {"category": "comp.graphics", "text": "From: raymaker@bcm.tmc.edu (Mark Raymaker)\nSubject: graphics driver standards\nOrganization: Baylor College of Medicine, Houston, Tx\nLines: 21\nNNTP-Posting-Host: bcm.tmc.edu\nKeywords: graphics,standards\n\nI have a researcher who collecting electical impulses from\nthe human heart through a complex Analog to Digital system\nhe has designed and inputting this information into his EISA\nbus HP Vectra Computer running DOS and the Phar Lap DOS extender. \n\nHe want to purchase a very high-performance video card for\n3-D modeling. He is aware of a company called Matrox but\nhe is concerned about getting married to a company and their\nvideo routine library. He would hope some more flexibility:\nto choose between several card manufacturers with a standard\nvideo driver. He would like to write more generic code- \ncode that could be easily moved to other cards or computer operating\nsystems in the future. Is there any hope?\nAny information would be greatly appreciated-\nPlease, if possible, respond directly to internet mail \nto raymaker@bcm.tmc.edu\n\nThanks\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5544, "properties": {"category": "misc.forsale", "text": "From: jlange%radian@natinst.com (John Lange)\nSubject: WANTED: Used audio mixer\nDistribution: usa\nNntp-Posting-Host: zippy.radian.com\nOrganization: Radian Corporation, Austin, Texas\nLines: 9\n\n\nI'm looking for a used/inexpensive audio mixer.  I need at least \n4 channels of stereo input and 1 channel of stereo output, but I would\nprefer 8 or more input channels.  Each channel needs to have at least a \nvolume control.  I'll consider buying broken equipment.  The mixer needs \nto be fairly small (I haven't got a lot of space for it).  \n\nJohn Lange (jlange@zippy.radian.com)\nRadian Corp. (512)454-4797      Box 201088      Austin, TX 78720-1088\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5545, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: Armenians will not get away with the genocide of Azeri people.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 47\n\nIn article <C5yxLE.4ov@cbfsb.cb.att.com> enis@cbnewsg.cb.att.com (enis.surensoy) writes:\n\n>>From article <9304202021@zuma.UUCP>, by sera@zuma.UUCP (Serdar Argic):\n>>Armenians will not get away with the genocide of 204,000 Azeri people.\n\n>\tOn the contrary, Armenians will get away with the genocide of \n>\t204,000 Azeri people.\n\n>\tArmenians already got away with raping, torturing, and massacering \n>\tmillions of innocent Moslem peoples of Eastern Anatolia. \n\nNot this time, Enis. Furthermore, a new generation has risen - equipped \nwith a deep sense of commitment, politically mature and conscious, who \ndeterminedly pursue the Turkish Cause, through all necessary means, \nranging from the political and diplomatic to the armed struggle. In \nother words, what we have is a demand from the fascist government of\nx-Soviet Armenia to redress the wrongs that were done against our\npeople. \n\n\n \"The crime of systematic cleansing by mass killing and extermination \n  of the Muslim population in the Soviet Republic of Armenia, Karabag, \n  Bosnia and Herzegovina is an 'Islamic Holocaust' comparable to the \n  extermination of 2.5 million Muslims by the Armenian Government \n  during the WWI and of over 6 million European Jews during the WWII.\"\n                  (Tovfik Kasimov - Azeri Leader - September 25, 1992)\n                 \n\n \"Today's ethnic cleansing policies by the Serbian dictatorship against\n  Croatians and Muslims of Yugoslavia, as well as the Soviet Republic\n  of Armenia's against the Muslim population of neighboring Azerbaijan,\n  are really no different in their aspirations than the genocide \n  perpetrated by the Armenian Government 78 years ago against the\n  Turkish and Kurdish Muslims and Sephardic Jews living in these\n  lands.\"         (Cebbar Leygara - Kurdish Leader - October 13, 1992)\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5546, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Zionism\nOrganization: University of Illinois at Urbana\nLines: 24\n\nThe following flyer was distributed at AIPAC's 34th annual Policy Conference:\n\nBecause when we're not in Israel, we're told to go back where we came from and\nwhen we come back to Israel we're told to go back to where we came from and \nwhen we're vocal we have too much influence and when we are quiet we can afford\nto be because we we control everything anyway and when we buy something we can\nafford to because Jews are so rich and when we don't buy something it's because\nwe're cheap and because when we are poor we're called dirty Jew and ignorant\nand when we're not we're called called rich Jew and JAP and when we are visibly\norganized it's because there is a secret Jewish conspiracy and when we're not it\nis because there is a secret Jewish conspiracy and because we're told we're not\na people and when we say we are we're still told that we're not and when we\nmarry our own people we're called racist and we don't we're contaminating \nsomeone else's \"race\" and because we're under fire from the Left and from the \nRight and because there are whites who hate us for not being white and because\nthere are non-whites who hate us for being white  and because anti-semitic \nincidents are rising every year but we're told that anti-semitism doesn't \nexist or that we're paranoid and because we're told to shut up about the \nHolocaust and yet Holocaust revisionism is risng every year and when we are\n\"obnoxious\" we're called JAPs and when we are \"nice\" we're told we don't act\nJewish and because anti-semitism is now world-wide and because our people is\nnot yet free and because we do not have to complete the work but neither are\nwe free to desist from it for these reasons and many many more we are part of\nthe Jewish National Liberation Movement: ZIONISM.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.264+0000", "event": "documents", "entityId": 5547, "properties": {"category": "rec.sport.hockey", "text": "From: ayari@judikael.loria.fr (Ayari Iskander)\nSubject: Re: Lemieux, NHLPA'93, and other thoughts\nOrganization: Crin - Inria-Lorraine\nLines: 16\n\nI think that NHLPA' 93 is the best video game available now.\nof course many things could be done better, but i really appreciate that\nthe names of players are the real ones, no matter if it lacks some logos...\nI am still playing it since November leading different teams to the finals\nand making scorers from the same team compete for the top scoring:\nYesterday I won the title using Toronto against Hartford (4 games to two),\nI played the playoffs in a 7 games fashion (5 minutes for each period) and\nthe best scorer and shooter was Gilmour (116 shots if I remember well)\n-- \n_____________________________________________________\n\n  Iskander AYARI\n \n  Email : Iskander.Ayari@loria.fr ou ayari@loria.fr\n_____________________________________________________\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5548, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: How to Diagnose Lyme... really\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 20\n\n\nIn article <1993Apr12.201056.20753@ns1.cc.lehigh.edu> mcg2@ns1.cc.lehigh.edu (Marc Gabriel) writes:\n\n>Now, I'm not saying that culturing is the best way to diagnose; it's very\n>hard to culture Bb in most cases.  The point is that Dr. N has developed a\n>\"feel\" for what is and what isn't LD.  This comes from years of experience.\n>No serology can match that.  Unfortunately, some would call Dr. N a \"quack\"\n>and accuse him of trying to make a quick buck.\n>\nWhy do you think he would be called a quack?  The quacks don't do cultures.\nThey poo-poo doing more lab tests:  \"this is Lyme, believe me, I've\nseen it many times.  The lab tests aren't accurate.  We'll treat it\nnow.\"  Also, is Dr. N's practice almost exclusively devoted to treating\nLyme patients?  I don't know *any* orthopedic surgeons who fit this\npattern.  They are usually GPs.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5549, "properties": {"category": "rec.motorcycles", "text": "From: ant@palm21.cray.com (Tony Jones)\nSubject: Re: MOTORCYCLE DETAILING TIP #18\nLines: 28\nNntp-Posting-Host: palm21\nOrganization: Cray Research Inc, Eagan, MN\nX-Newsreader: TIN [version 1.1 PL6]\n\nChuck Kuczaj (csk@wdl50.wdl.loral.com) wrote:\n: mbeaving@bnr.ca (Michael Beavington) writes:\n: \n: McGuire's makes a plastic scratch/removing compound and a plastic\n: polishing compound which really work great as well.\n\nA useful tip.\n\nHow about someone letting me know MOTORCYCLE DETAILING TIP #19 ?\n\nThe far side of my instrument panel was scuffed when the previous owner\ndumped the bike. Same is true for one of the turn signals.\n\nBoth of the scuffed areas are black plastic.\n\nI recall reading somewhere, that there was some plastic compound you could coat\nthe scuffed areas with, then rub it down, ending with a nice smooth shiny \nfinish ?\n\nAnyone any ideas.\n\nthanks\n\ntony\n--\nTony Jones (ant@cray.com, ..!uunet!cray!ant)\nCMCS Codegeneration Group, Software Division\nCray Research Inc, 655F Lone Oak Drive, Eagan, MN 55121\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5550, "properties": {"category": "talk.politics.guns", "text": "From: dbernard@clesun.Central.Sun.COM (Dave Bernard)\nSubject: Re: Ax the ATF\nOrganization: Sun Microsystems\nLines: 14\nDistribution: world\nReply-To: dbernard@clesun.Central.Sun.COM\nNNTP-Posting-Host: clesun.central.sun.com\n\n>True, Congress has said that possesion of an unlicensed automatic \n>weapon is a violation of the law.  Congress did not, however, say\n>that such possesion was a capital offense or a transgression worth\n>getting four good government agents killed and 16 others wounded.\n\n\nEven if it were a capital offense, the warrant was not even an arrest warrant,\nbut a search warrant.  In other words, there was no evidence of illegal\narms, just enough of a suggestion to get a judge to sign a license to\nsearch for illegal evidence.\n\nQuestion:  As in the Rodney King case, will the US DOJ institute\ncriminal civil rights proceedings against the BATF?  Or at least an\ninvestigation?  OK, sorry I asked.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5551, "properties": {"category": "rec.motorcycles", "text": "From: mcguire@cs.utexas.edu (Tommy Marcus McGuire)\nSubject: Re: Live Free, but Quietly, or Die\nOrganization: CS Dept, University of Texas at Austin\nLines: 29\nDistribution: world\nNNTP-Posting-Host: cash.cs.utexas.edu\n\nIn article <1qmi34$g2n@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n>In article 5049@cvbnetPrime.COM, tjohnson@tazmanian.prime.com (Tod Johnson (617) 275-1800 x2317) writes:\n[...]\n>>Sure there are horns but my hand is already on the throttle. Should we\n>>get into how many feet a bike going 55mph goes in .30 seconds; or\n>>how long it would take me to push my horn button??\n>\n[...]\n>\n>The answer is 161.33 feet.\n>\n>---\n>Ed Green, former Ninjaite |I was drinking last night with a biker,\n[...]\n\nTry something like 24.2 feet. \n\nEdGetACalculator\n\n\n\n-----\nTommy McGuire\nmcguire@cs.utexas.edu\nmcguire@austin.ibm.com\n\n\"...I will append an appropriate disclaimer to outgoing public information,\nidentifying it as personal and as independent of IBM....\"\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5552, "properties": {"category": "comp.windows.x", "text": "From: wilk@Informatik.TU-Muenchen.DE (Christian Wilk)\nSubject: XtShellStrings,XtStrings?\nOriginator: wilk@kiss.informatik.tu-muenchen.de\nOrganization: Technische Universitaet Muenchen, Germany\nLines: 19\n\n\nHello,\n\ndoes somebody know the functions  XtShellStrings and XtStrings?\nI haven't found them in any librarys not Xm, Xt, nor X11, and I need\nthem to install a tool.\n\nAny hints greatly appreciated! Please reply via e-mail.\n\nThanks in advance!\n_______________________________________________________________________________\n\nchristian wilk\t\t\t I've seen things you people wouldn't believe.\ntechnical university of munich\t Attack ships on fire off the shoulder of Orion.\nmunich, germany\t\t\t I watched C-beams glitter in the dark near the\n\t\t\t\t Tannhauser gate. All those moments will be lost\nwilk@informatik.tu-muenchen.de   in time - like tears in rain. Time to die.\n\t\t\t\t\t\t\t\t-- Roy Batty\n_______________________________________________________________________________\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5553, "properties": {"category": "sci.electronics", "text": "From: mvanmeet@ua.d.umn.edu (Mike VanMeeteren)\nSubject: Re: electronic odometers (was: Used BMW Question ..... ???)\nOrganization: University of Minnesota, Duluth\nLines: 28\nNNTP-Posting-Host: ua.d.umn.edu\n\nIn article <C5HHKo.1ry@vu-vlsi.ee.vill.edu> mobasser@vu-vlsi.ee.vill.edu (Bijan Mobasseri) writes:\n>> There are two simple procedures for alterating any odometer.\n>>\n>>1. Mechanical driven odometer:\n>>    Remove the speedo cable from the transmission.\n>>    Attach a drill and run at max speed until the speedo turns over.\n>>    Continue until the desired mileage is reached.\n>====================================\n>Admittedly an irrelavent question:for how long should the drill be running?\n>\n>Bijan\n\nA verrrrrry long time, like on the order of days.  I had the pleasure of\ndoing that once (playing with the speedo cable) and with my B&D heavy duty at\nfull speed (600 rpm) all the speedo ever got up to was 30 MPH.  Now if you go\na high speed drill and ran it at say 4000 rpm, you could get 200 MPH out of\nit.  (If you speedo doesn't burn out.)  Anyways, to roll a 100000 Mile\nodometer would take 22 days or so.  Much easier just to take the speedo\napart.\n\nThought I'd share.  BTW, all this info was obtained legally  :-)\n\n\n-- \n(~)~)~) o /)  _     Computer Lesson One: There is no \"any\" key, alternate keys\n / / / / /_) /_)                         are <shift>,<ctrl>,<caps lock>,<alt>\n/ / (_(_/ (_/\\_                          and sometimes <tab>.\nmvanmeet@ub.d.umn.edu                                -consultant at lab\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5554, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nDistribution: world,public\nOrganization: Boston University Physics Department\nLines: 40\n\nIn article <1993Apr15.163317.20805@cs.nott.ac.uk> eczcaw@mips.nott.ac.uk (C.Wainwright) writes:\n>In article <115437@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n \n>|> The authorities I am referring to is the authority of the world\n>|> Islamic community over itself. My point was simply that Islamic\n>|> law does apply to muslims wherever they are despite the fact that \n>|> Islamic law may not be enforcable in non-Islamic countries.\n\n>Muslims residing in the UK may decide to be 'tried' (or whatever) by the\n>Islamic community, but their rulings have no legal consequences in these\n>isles.  \n\nIt's not really their _decision_ to be tried. The rulings _do_ have\nlegal consequences, but only in Islamic law and not in UK law (this\nshould be obvious). Enforcing a judgment is distinct from the making\nof a judgment. Take for example the judgments of the World Court. This\nis an internationally recognized tribunal whose judgments often have no\nphysical or economic effect but which _are_ important despite the fact\nthat their judgments cannot be enforced\n\n>The person may be excommunicated (or similar) but if it decided to \n>mete out violent laws such as the fatwa then it would be breaking UK laws\n>itself, and the persons doing such would be liable to prosecution. \n\n\nOf course, have you read any of this thread before this post? \n\n\n> To ignore\n>the country's laws in preference to religious laws which are not indigenous\n>to the country in question is an absurd and arrogant notion.\n\nOf course, it is a sort of anarchism. Anarchism is explicitly against\nIslam. Thank you for your well reasoned response, but it is beside the\npoints I've been making in this thread. \n\n\nGregg\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5555, "properties": {"category": "soc.religion.christian", "text": "From: noye@midway.uchicago.edu (vera shanti noyes)\nSubject: Re: Satan kicked out of heaven: Biblical?\nReply-To: noye@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 42\n\nIn article <May.7.01.09.04.1993.14501@athos.rutgers.edu> easteee@wkuvx1.bitnet writes:\n>Hello all,\n>     I have a question about Satan.  I was taught a long time ago\n>that Satan was really an angel of God and was kicked out of heaven\n>because he challenged God's authority.  The problem is, I cannot\n>find this in the Bible.  Is it in the Bible?  If not, where did it\n>originate?\n\ni did a workshop on this for an episcopalian student gathering a\ncouple months ago because i wanted to know the answer too.  as far as\ni could tell, although that story was never specifically _told_ in the\nbible, many references are made to it, primarily in the new testament.\nin the old testament there is actually an entirely different view of\nsatan as a (excuse the pun) \"devil's advocate\" for yahweh.  see the\nbook of job.  getting back to the fallen angel story, there are _no_\nreferences to \"lucifer\" in the bible except for a mistranslation of\n\"the morning star\" in the king james version (isaiah 14:12), which\nprobably referred to a babylonian monarch much in the same was as \"the\nsun king\" referred to louis xiv.  \n\nall in all, i don't know where the story _came from_; it may have been\nrolling around for a long time, or milton (_paradise lost_) may have\ninvented it.  sorry for the sketchiness of the rest of this, but i am\nin a hurry and need to eat lunch!  feel free to email me about the\nother stuff i found out....  (although a lot of it is just the result\nof a bible concordance program called \"quickverse\" -- it's really\nlousy, by the way -- don't buy it.) \n\n>Wondering,\n>Eddie\n>______ __   ___  ___           o  __   ___  |    Western  Kentucky    |\n>  /   /__) /__  /__  /     )  /  /__) /__   |       University        |\n> /   /  \\ (___ (___ (__/__/  /  /  \\ (___   |  EASTEEE@WKUVX1.BITNET  |\n\nhope this helped!\nvera\n______\nje cherche une ame, qui\t\t\tof course i don't agree with  \npourra m'aider\t\t\t\tmylene farmer's religious views;\nje suis\t\t\t\t\ti just think they're interesting.\nd'une generation desenchantee\t\t(vera noyes)\n    - mylene farmer\t\t\tnoye@midway.uchicago.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5556, "properties": {"category": "alt.atheism", "text": "From: marshall@csugrad.cs.vt.edu (Kevin Marshall)\nSubject: Re: some thoughts.\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 72\nNNTP-Posting-Host: csugrad.cs.vt.edu\nKeywords: Dan Bissell\n\nbissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n\n>\tSome reasons why he wouldn't be a liar are as follows.  Who would \n>die for a lie?  Wouldn't people be able to tell if he was a liar?  People \n>gathered around him and kept doing it, many gathered from hearing or seeing \n>someone who was or had been healed.  Call me a fool, but I believe he did \n>heal people.  \n\nAnyone who dies for a \"cause\" runs the risk of dying for a lie.  As for\npeople being able to tell if he was a liar, well, we've had grifters and\ncharlatans since the beginning of civilization.  If David Copperfield had\nbeen the Messiah, I bet he could have found plenty of believers.  \nJesus was hardly the first to claim to be a faith healer, and he wasn't the\nfirst to be \"witnessed.\"  What sets him apart?\n\n>\tNiether was he a lunatic.  Would more than an entire nation be drawn \n>to someone who was crazy.  Very doubtful, in fact rediculous.  For example \n>anyone who is drawn to David Koresh is obviously a fool, logical people see \n>this right away.\n\nRubbish.  Nations have followed crazies, liars, psychopaths, and \nmegalomaniacs throughout history.  Hitler, Tojo, Mussolini, Khomeini,\nQadaffi, Stalin, Papa Doc, and Nixon come to mind...all from this century.\nKoresh is a non-issue.\n\n\n>\tTherefore since he wasn't a liar or a lunatic, he must have been the \n>real thing.  \n\nTake a discrete mathematics or formal logic course.  There are flaws in your\nlogic everywhere.  And as I'm sure others will tell you, read the FAQ!\n\n\n>\tSome other things to note.  He fulfilled loads of prophecies in \n>the psalms, Isaiah and elsewhere in 24 hrs alone.  This in his betrayal \n>and Crucifixion.  I don't have my Bible with me at this moment, next time I \n>write I will use it.\n\nOf course, you have to believe the Bible first.  Just because something is\nwritten in the Bible does not mean it is true, and the age of that tome plus\nthe lack of external supporting evidence makes it less credible.  So if you\ndo quote from the Bible in the future, try to back up that quote with \nsupporting evidence.  Otherwise, you will get flamed mercilessly.\n\n\n>\tI don't think most people understand what a Christian is.  It \n>is certainly not what I see a lot in churches.  Rather I think it \n>should be a way of life, and a total sacrafice of everything for God's \n>sake.  He loved us enough to die and save us so we should do the \n>same.  Hey we can't do it, God himself inspires us to turn our lives \n>over to him.  That's tuff and most people don't want to do it, to be a \n>real Christian would be something for the strong to persevere at.  But \n>just like weight lifting or guitar playing, drums, whatever it takes \n>time.  We don't rush it in one day, Christianity is your whole life.  \n>It is not going to church once a week, or helping poor people once in \n>a while.  We box everything into time units.  Such as work at this \n>time, sports, Tv, social life.  God is above these boxes and should be \n>carried with us into all these boxes that we have created for \n>ourselves.  \t  \n\nJust like weight lifting or guitar playing, eh?  I don't know how you \ndefine the world \"total,\" but I would imagine a \"total sacrafice [sp]\nof everything for God's sake\" would involve more than a time commitment.\n\nYou are correct about our tendency to \"box everything into time units.\"\nWould you explain HOW one should involove God in sports and (hehehe)\ntelevision?\n-- \n---                      __  _______                              ---\n||| Kevin Marshall       \\ \\/ /_  _/  Computer Science Department |||\n||| Virginia Tech         \\  / / /     marshall@csugrad.cs.vt.edu |||\n--- Blacksburg, Virginia   \\/ /_/                  (703) 232-6529 ---\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5557, "properties": {"category": "sci.crypt", "text": "From: clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement)\nSubject: White House Public Encryption Management Fact Sheet\nOrganization: National Institute of Standards & Technology\nDistribution: na\nLines: 94\n\n\n\nNote:     The following was released by the White House today in\n          conjunction with the announcement of the Clipper Chip\n          encryption technology.\n\n                           FACT SHEET\n\n                  PUBLIC ENCRYPTION MANAGEMENT\n\nThe President has approved a directive on \"Public Encryption\nManagement.\"  The directive provides for the following:\n\nAdvanced telecommunications and commercially available encryption\nare part of a wave of new computer and communications technology. \nEncryption products scramble information to protect the privacy of\ncommunications and data by preventing unauthorized access. \nAdvanced telecommunications systems use digital technology to\nrapidly and precisely handle a high volume of communications. \nThese advanced telecommunications systems are integral to the\ninfrastructure needed to ensure economic competitiveness in the\ninformation age.\n\nDespite its benefits, new communications technology can also\nfrustrate lawful government electronic surveillance.  Sophisticated\nencryption can have this effect in the United States.  When\nexported abroad, it can be used to thwart foreign intelligence\nactivities critical to our national interests.  In the past, it has\nbeen possible to preserve a government capability to conduct\nelectronic surveillance in furtherance of legitimate law\nenforcement and national security interests, while at the same time\nprotecting the privacy and civil liberties of all citizens.  As\nencryption technology improves, doing so will require new,\ninnovative approaches.\n\nIn the area of communications encryption, the U. S. Government has\ndeveloped a microcircuit that not only provides privacy through\nencryption that is substantially more robust than the current\ngovernment standard, but also permits escrowing of the keys needed\nto unlock the encryption.  The system for the escrowing of keys\nwill allow the government to gain access to encrypted information\nonly with appropriate legal authorization.\n\nTo assist law enforcement and other government agencies to collect\nand decrypt, under legal authority, electronically transmitted\ninformation, I hereby direct the following action to be taken:\n\nINSTALLATION OF GOVERNMENT-DEVELOPED MICROCIRCUITS\n\nThe Attorney General of the United States, or her representative,\nshall request manufacturers of communications hardware which\nincorporates encryption to install the U.S. government-developed\nkey-escrow microcircuits in their products.  The fact of law\nenforcement access to the escrowed keys will not be concealed from\nthe American public.  All appropriate steps shall be taken to\nensure that any existing or future versions of the key-escrow\nmicrocircuit are made widely available to U.S. communications\nhardware manufacturers, consistent with the need to ensure the\nsecurity of the key-escrow system.  In making this decision, I do\nnot intend to prevent the private sector from developing, or the\ngovernment from approving, other microcircuits or algorithms that\nare equally effective in assuring both privacy and a secure key-\nescrow system.\n\nKEY-ESCROW\n\nThe Attorney General shall make all arrangements with appropriate\nentities to hold the keys for the key-escrow microcircuits\ninstalled in communications equipment.  In each case, the key\nholder must agree to strict security procedures to prevent\nunauthorized release of the keys.  The keys shall be released only\nto government agencies that have established their authority to\nacquire the content of those communications that have been\nencrypted by devices containing the microcircuits.  The Attorney\nGeneral shall review for legal sufficiency the procedures by which\nan agency establishes its authority to acquire the content of such\ncommunications.\n\nPROCUREMENT AND USE OF ENCRYPTION DEVICES\n\nThe Secretary of Commerce, in consultation with other appropriate\nU.S. agencies, shall initiate a process to write standards to\nfacilitate the procurement and use of encryption devices fitted\nwith key-escrow microcircuits in federal communications systems\nthat process sensitive but unclassified information.  I expect this\nprocess to proceed on a schedule that will permit promulgation of\na final standard within six months of this directive. \n\nThe Attorney General will procure and utilize encryption devices to\nthe extent needed to preserve the government's ability to conduct\nlawful electronic surveillance and to fulfill the need for secure\nlaw enforcement communications.  Further, the Attorney General\nshall utilize funds from the Department of Justice Asset Forfeiture\nSuper Surplus Fund to effect this purchase.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5558, "properties": {"category": "rec.autos", "text": "From: aas7@po.CWRU.Edu (Andrew A. Spencer)\nSubject: Re: Too fast\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 53\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, callison@uokmax.ecn.uoknor.edu (James P. Callison) says:\n\n>In article <1qn4ev$3g2@usenet.INS.CWRU.Edu> aas7@po.CWRU.Edu (Andrew A. Spencer) writes:\n>>\n>>In a previous article, wrat@unisql.UUCP (wharfie) says:\n>>\n>>>In article <1qkon8$3re@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>>>>larger engine.  That's what the SHO is -- a slightly modified family\n>>>>sedan with a powerful engine.  They didn't even bother improving the\n>>>>*brakes.*\n>>>\n>>>\tThat shows how much you know about anything.  The brakes on the\n>>>SHO are very different - 9 inch (or 9.5? I forget) discs all around,\n>>>vented in front.  The normal Taurus setup is (smaller) discs front, \n>>>drums rear.\n>>\n>>one i saw had vented rears too...it was on a lot.\n>>of course, the sales man was a fool...\"titanium wheels\"..yeah, right..\n>>then later told me they were \"magnesium\"..more believable, but still\n>>crap, since Al is so m uch cheaper, and just as good....\n>>\n>>i tend to agree, tho that this still doesn't take the SHO up to \"standard\"\n>>for running 130 on a regular basis.  The brakes should be bigger, like\n>>11\" or so...take a look at the  ones on the Corrados.(where they have\n>>braking regulations).\n>\n>Well, let's see...my T-Bird SC has a computer-controlled adjustable\n>suspension, 4-wheel ABS disks (11\" vented front, 10\" (?) rear), 3-point\n>belts, sturdy passenger compartment, aerodynamics good enough for \n>NASCAR without too much change, 210 hp/310 ft-lb supercharged 3.8l V6,\n>4-wheel independent suspension (plus limited-slip differential), with \n>a top speed in excess of 130mph, and rides on V-rated tires (I have yet\n>to find 225/60-R16s in any other speed rating). \n>\n>Is that \"up to standard\"? If not, why not?\n>\n>\t\t\t\tJames\n\njames, i really hate to do this, but try reading the damn posts!\nnever was a t'bird mentioned.  The discussion was about SHO's and\n'stangs not being up to spec.  I do not know about t'birds.  I\nonly know that the specs quoted for the SHO by previous poster sounded\na little anemic for me to say that it was up to snuff.  This does not\nin any way  disencourage* me from wishing to own one, nor does it make it\na bad car.  It merely means that i think Ford could have added that extra\nbit of safety  and tossed in larger brakes, as the wheels are plenty large\nenough for them to fit (if memory serves right, which it may very well not)\nand the motor plenty powerful enough to need it.\n\n\nc ya\nDREW\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5559, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: \"liver\" spots\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 13\n\nIn article <1993Apr19.162502.29802@news.eng.convex.com> cash@convex.com (Peter Cash) writes:\n>What causes those little brown spots on older people's hands? Are they\n>called \"liver spots\" because they're sort of liver-colored, or do they\n>indicate some actual liver dysfunction?\n\nSenile keratoses.  Have nothing to do with the liver.\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5560, "properties": {"category": "misc.forsale", "text": "From: tligman@bgsu.edu (Simurgh)\nSubject: Nintendo games and control deck\nArticle-I.D.: andy.C52JzL.DD4\nDistribution: na\nOrganization: Bowling Green State Univ.\nLines: 35\n\nForsale:\nNintendo control Deck with two controllers and gun, one controller has\ngrips attached. \nthe NES will only connect to a composite monitor or TV with audio and\nvideo RCA Input jacks and needs some repairs. \n25$ or best offer\n\ngames for sale \n15$  Tecmo Baseball\n15$  Techmo Bowl\n15$  Double Dribble\n15$  Wayne Gretzky Hockey\n15$  Golf\n10$  Super Mario/Duck Hunt\n15$  Super Mario II\n20$  Super Mario III\n15$  Teenage Mutant Ninja Turtles the Arcade game\n15$  MegaMan 3\n10$  Toobin'\n10$  Spelunker\n25$  Tecmo Super Bowl\n============\n175$ total, I'll give all of them to you for the best offer and throw\nin the control deck...\n\nI'll also accept the best offer for each of the games individually.\n\nthe oldest of these is two years old, most of them are less than a year old.\n\nEmail at tligman@andy.bgsu.edu\nPhone at 1 (419) 372-5954\n\n-- \n-Tom\n<<<>>>Warning, signature under construction, ENTER at your own RISC<<<>>>\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5561, "properties": {"category": "sci.med", "text": "From: km@cs.pitt.edu (Ken Mitchum)\nSubject: Re: Lung disorders and clubbing of fingers\nArticle-I.D.: pitt.19424\nReply-To: km@cs.pitt.edu (Ken Mitchum)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 36\n\nIn article <SLAGLE.93Mar26205915@sgi417.msd.lmsc.lockheed.com> slagle@lmsc.lockheed.com writes:\n>Can anyone out there enlighten me on the relationship between\n>lung disorders and \"clubbing\", or swelling and widening, of the\n>fingertips?  What is the mechanism and why would a physician\n>call for chest xrays to diagnose the cause of the clubbing?\n\nPurists often distinguish between \"true\" clubbing and \"pseudo\"\nclubbing, the difference being that with \"true\" clubbing the\nangle of the nail when viewed from the side is constantly\nnegative when proceeding distally (towards the fingertip).\nWith \"pseudo\" clubbing, the angle is initially positive, then\nnegative, which is the normal situation. \"Real\" internists\ncan talk for hours about clubbing. I'm limited to a couple\nof minutes.\n\nWhether this distinction has anything to do with reality is\nentirely unclear, but it is one of those things that internists\nlove to paw over during rounds. Supposedly, only \"true\" clubbing\nis associated with disease. The problem is that the list of\ndiseases associated with clubbing is quite long, and includes\nboth congenital conditions and acquired disease. Since many of\nthese diseases are associated with cardiopulmonary problems\nleading to right to left shunts and chronic hypoxemia, it is\nvery reasonable to get a chest xray. However, many of the \ncongenital abnormalities would only be diagnosed with a cardiac\ncatheterization. \n\nThe cause of clubbing is unclear, but presumably relates to\nsome factor causing blood vessels in the distal fingertip to\ndilate abnormally. \n\nClubbing is one of those things from an examination which is\na tipoff to do more extensive examination. Often, however,\nthe cause of the clubbing is quite apparent.\n\n-km\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5562, "properties": {"category": "sci.crypt", "text": "From: prz@sage.cgd.ucar.edu (Philip Zimmermann)\nSubject: Fighting the Clipper Initiative\nSummary: Ways to fight it \nOrganization: Climate and Global Dynamics Division/NCAR, Boulder, CO\nLines: 71\n\nHere are some ideas for those of you who want to oppose the White\nHouse Clipper chip crypto initiative.  I think this is going to be a\ntough measure to fight, since the Government has invested a lot of\nresources in developing this high-profile initiative.  They are\nserious about it now.  It won't be as easy as it was defeating Senate\nBill 266 in 1991.\n\nPossible actions to take in response:\n\n1)  Mobilize your friends to to all the things on this list, and\nmore.\n\n2)  Work the Press.  Talk with your local newspaper's science and\ntechnology reporter.  Write to your favorite trade rags.  Better yet,\nwrite some articles yourself for your favorite magazines or\nnewspapers.  Explain why the Clipper chip initiative is a bad idea. \nRemember to tailor it to your audience.  The general public may be\nslow to grasp why it's a bad idea, since it seems so technical and\narcane and innocent sounding.  Try not to come across as a flaming\nlibertarian paranoid extremist, even if you are one. \n\n3)  Lobby Congress.  Write letters and make phone calls to your\nMember of Congress in your own district, as well as your two US\nSenators.  Many Members of Congress have aides that advise them of\ntechnology issues.  Talk to those aides.\n\n4)  Involve your local political parties.  The Libertarian party\nwould certainly be interested.  There are also libertarian wings of\nthe Democrat and Republican parties.  The right to privacy has a\nsurprisingly broad appeal, spanning all parts of the political\nspectrum.  We have many natural allies.  The ACLU.  The NRA.  Other\nactivist groups that may someday find themselves facing a government\nthat can suppress them much more efficiently if these trends play\nthemselves out.  But you must articulate our arguments well if you\nwant to draw in people who are not familiar with these issues.\n\n4)  Contribute money to the Electronic Frontier Foundation (EFF) and\nComputer Professionals for Social Responsibility (CPSR), assuming\nthese groups will fight this initiative.  They need money for legal\nexpenses and lobbying.\n\n5)  Mobilize opposition in industry.  Companies that will presumably\ndevelop products that will incorporate the Clipper chip should be\nlobbied against it, from within and from without.  If you work for a\ntelecommunications equipment vendor, first enlist the aid of your\ncoworkers and fellow engineers against this initiative, and then\npresent your company's management with a united front of engineering\ntalent against this initiative.  Write persuasive memos to your\nmanagement, with your name and your colleagues' names on it.  Hold\nmeetings on it.\n\n6)  Publicize, deploy and entrench as much guerrilla\ntechno-monkeywrenching apparatus as you can.  That means PGP,\nanonymous mail forwarding systems based on PGP, PGP key servers,\netc.  The widespread availability of this kind of technology might\nalso be used as an argument that it can't be effectively suppressed\nby Government action.  I will also be working to develop new useful\ntools for these purposes. \n\n7)  Be prepared to engage in an impending public policy debate on\nthis topic.  We don't know yet how tough this fight will be, so we\nmay have to compromise to get most of what we want.  If we can't\noutright defeat it, we may have to live with a modified version of\nthis Clipper chip plan in the end.  So we'd better be prepared to\nanalyze the Government's plan, and articulate how we want it\nmodified.\n\n\n-Philip Zimmermann\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5563, "properties": {"category": "sci.med", "text": "From: SASTLS@MVS.sas.com (Tamara Shaffer)\nSubject: Re: seizures ( infantile spasms )\nNntp-Posting-Host: sdcmvs.mvs.sas.com\nOrganization: SAS Institute Inc.\nLines: 16\n\nIn article <1993Apr20.184034.13779@dbased.nuo.dec.com>,\ndufault@lftfld.enet.dec.com (MD) writes:\n \n>\n>        The reason I'm posting this article to this newsgroup is to:\n>1. gather any information about this disorder from anyone who might\n>   have recently been *e*ffected by it ( from being associated with\n>   it or actually having this disorder ) and\n>2. help me find out where I can access any medical literature associated\n>   with seizures over the internet.\n \nI tried to e-mail you but it bounced back.  Please e-mail me and\nI will give you someone's name who might be very helpful.  You might\nalso post your message to misc.kids.\nTAMARA\nsastls@mvs.sas.com\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5564, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tbdrude@infonode.ingr.com (Ted B. Drude)\nSubject: Local Dealer Service (WAS: The infamous Gateway 2000 video/monitor problem: info requested!)\nArticle-I.D.: infonode.1993Apr6.215651.15518\nOrganization: Intergraph Corporation, Huntsville, AL.\nLines: 42\n\nIn article <93092.143450GKS101@psuvm.psu.edu> Greg Spath <GKS101@psuvm.psu.edu> writes:\n>In article <C4uEoM.EvF@odin.corp.sgi.com>, mikey@sgi.com (Mike Yang) says:\n>>So, by going mailorder through Gateway, I save ~13%.  Plus, I get\n>>technical support over the phone, free software package.\n\n>Have fun trying to get hold of technical support over the phone.  At least\n>locally you can walk right up to the dealer and tell him what is wrong, and\n>he has to fix it.\n    ^^^\nHow long does he have to take in fixing it?  Does he have to use new\nparts when he repairs it or can he substitute used parts without your\nknowledge?  Can he charge you for repairs that should be under warranty\nbut he claims are due to improper maintenance on your part? \n\nWhen it comes to local dealers:\n\n- Have fun getting consistently good support.  Most of their \"techs\" are\nre-treaded salesmen, not trained technicians, with a high turnover rate.\n\n- Have fun getting in-warranty work done quickly and courteously.\n\n- Have fun getting out-of-warranty work done cheaply, or even done\nperiod, unless you are on a paid service contract.\n\nHaving been both a service technician, and a service manager, at a\nComputerLand franchise and another retail computer place, I know what\nI'm talking about. \n\nI also know the \"local service\" scam that retail computer dealers like\nto push when they're selling.  It's that same old song that car dealers\nhaving been singing for years -- \"Buy from me and you'll get good\nservice. We always treat our customers right!  Buy from my competition\nand you'll be sorry if you need service.\" \n\nExperienced mail order buyers know that there are some mail order\ncompanies that give excellent service, including overnight replacement parts, \non-site calls, etc. There are probably some local dealers that can give you\ngood service, too. But if you think all local dealers give consistenly good \nservice, you are wrong.  I have many anectdotes to prove my point, \nbut I'm sure there are others on the net can do a better job than I can.\n\n- Ted Drude (tbdrude@infonode.ingr.com)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5565, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: richk@grebyn.com (Richard Krehbiel)\nSubject: Re: IDE vs SCSI\nIn-Reply-To: wlsmith@valve.heart.rri.uwo.ca's message of Sat, 17 Apr 1993 20:42:47 GMT\nLines: 30\nOrganization: Grebyn Timesharing, Inc.\n\nIn article <1993Apr17.204247.6741@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n\n>   In article <wayne.02uv@amtower.spacecoast.org> wayne@amtower.spacecoast.orgX-NewsSoftware: GRn 1.16f (10.17.92) by Mike Schwartz & Michael B. Smith writes:\n>\n>   >> but I still want to know why it intrinsically better\n>   >> (than IDE, on an ISA bus) when it comes to multi-tasking OS's when\n>   >> managing data from a single SCSI hard drive.\n>   >\n>   >A SCSI controller that transfers data by DMA allows the cpu to request data\n>   >from the hard drive and continue working while the controller gets the data\n>   >and moves it to memory. \n>\n>   IDE also uses DMA techniques.  I believe floppy controller also uses DMA,\n>   and most A/D boards also use DMA.  DMA is no big deal, and has nothing to\n>   do directly with SCSI.\n\nIDE does not do DMA.  This is because it's like te PC AT hard disk\ninterface.  The controller moves a sector to some buffer memory on the\ncontroller card, then the CPU moves the data from the buffer to main\nmemory where it's needed.  If IDE doesn't work this way, then it's not\ncompatible.\n\nHeck, if IDE used DMA, then you'd hear all kinds of complaints about\nISA bus systems with more than 16M RAM not working with their IDE\ndrives.  16M is the DMA addressing limit of the ISA bus, and if IDE\ndid DMA there would be trouble.\n\n(BTW, there are DMA-enabling signals in the IDE cable spec, but the\nlast report I heard was that they are never implemented, because it\nwould require a different kind of IDE adapter and different drivers.)\n-- \nRichard Krehbiel                                 richk@grebyn.com\nOS/2 2.0 will do for me until AmigaDOS for the 386 comes along...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5566, "properties": {"category": "comp.os.ms-windows.misc", "text": "Organization: University of Central Florida - Computer Services\nFrom: Mark Woodruff <CDA90038@UCF1VM.BITNET>\nSubject: Why I'm not using Dos 6 anymore\nLines: 18\n\nI've been running Dos 6 for about a month.  I was generally impressed with\nthe improvements:  the multiple boot configurations were great, the\nnew commands were nice, and DoubleSpace worked fine (twice as slow for\nlarge data transfers, twice as fast for small with SmartDrv).\n\nUntil now.\n\nThis morning at 4 am while I was working on my research paper, I had to\nreboot a hung Dos program (that did no disk i/o) from within Windows 3.1.\nWhen my machine finished rebooting, I found my windows directory and about two\nthirds of my other directories were irreversibly corrupted.\n\nI cannot afford problems like this.  I'm returning to Dos 5.\n\nmark\n\nP.S.  I've also noticed bad sector errors from DoubleSpace where none should\n      exist.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5567, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: finn@convex.com (Tom Finn)\nSubject: Re: multiple desktops\nNntp-Posting-Host: eugene.convex.com\nOrganization: CONVEX Computer Corporation, Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 22\n\nIn article <C56BHt.7qF@news.Hawaii.Edu> dmcgee@uluhe.soest.hawaii.edu (Don McGee) writes:\n>\n>Is there a free/share( ware) package that will allow multiple\n>desktops in windows 3.1.  What is desired is to have a desk top\n>for several people that each can personalize by name and choice\n>of programs etc. \n\n\nThere's a package called Workspace on cica that has 5 desktops; I\nhaven't done much with it yet, but it seems to be able to do what you\nwant it to.\n\nDon't have the exact archive name handy, but it's something like\nwspace<blah>.zip.\n\nTom\n\n-- \n finn@convex.com           \t\t\t      I speak only for myself.\n -----------------------------------------------------------------------------\n \"Peace is the name of the ideal we have deduced from the fact that there have\n been pauses between wars.\"                 Jerry Pournelle in \"The Mercenary\"\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5568, "properties": {"category": "sci.electronics", "text": "From: jvannes@vms.macc.wisc.edu\nSubject: Re: Long distance IR detection\nOrganization:  University of Wisconsin Academic Computing Center\nDistribution:  na\nLines: 26\n\nIn article <wb9omc.735430855@dynamo.ecn.purdue.edu>, wb9omc@dynamo.ecn.purdue.edu (Duane P Mantick) writes...\n\n>\tBTW, I have seen IRLEDs with outputs up to 6 watts...honest,\n>6 WATTS.  I don't have the book here at work so I can't recall the company\n>name.  The 6 watter ain't cheap, around $108 but if you want some power,\n>mamamia, that's pretty hot.  They also have a 4 watt, a 2 watt and a\n>1 watt device in their line, and will sell small quan. to individuals.\n>If you are interested, I can find the book at home and get the\n>pertinent info.\n> \n\nYou are probably referring to the products of\n\t\t\n\t\tOpto Diode Corp.\n\t\t750 Mitchell Road\n\t\tNewbury Park Ca 91320\n\t\t805 499-0335\n\nThe make some amazing IRLED's.  The really high-powered devices are arrays of\n3, 6, or 9, LED's on a TO-66 header.  The 9-chip model puts out 6.5 Watts in\nresponse to a 5 Amp, 10 uS. pulse at a .5% duty cycle.  I think  these are\ndesigned as illuminators for IR vision systems.\n\nI would also be interested in the application here.  I work with a Dance and\nTechnology program, and want to build something to track dancers on a 30 foot\nwide stage from 50 feet away.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5569, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Re: Plus minus stat...\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 33\n\n\nIn article 1443@ramsey.cs.laurentian.ca, maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n\n>Certainly pluggers are an integral part of any team.  And that is\n>simply because there are not enough solid two-way players to go \n>around.  Who would you rather have as your \"checking\" centre?  Doug\n>Gilmour or Doug Jarvis?  For that matter I would take either Gretzky\n>or Mario as my \"checking\" centres.  Do you think Gretzky could cover\n>Bob Gainey? \n\nGretzky, Lemieux, Gilmour etc do not play the role of checking centreman.\nThey play an offensive role as opposed to a defensive one.  If they\nwere used as defensive centres it would be a waste of their offensive\nabilities. \n\nWhen you compare Gretzky et al to Jarvis, Gainey etc you are comparing \napples and oranges.  It is like me telling you that Felix Potvin isn't \nvery good because a team would be better if the had Lemieux instead of\nhim.  Sure Lemieux is a better player, but he is a different type of\nplayer.  For a team to be successful, they need to have all types of\nplayers- this includes defensive forwards.\n\nWhen compared with other defensive forwards, Bob Gainey is the greatest\ndefensive forward ever.  He is the player who's talents best suited being\na defensive forward- who completely dominated the game when he played.\n\nMaybe if a more talented player such as Gretzky had decided to waste his\noffensive talents and play defensively, he could have been a better\ndefensive forward, but he wasn't.\n\nBob Gainey is the best defensive forward that has ever played hockey.\n\nGregmeister\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.265+0000", "event": "documents", "entityId": 5570, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Fungus \"epidemic\" in CA?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nDistribution: na\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 19\n\n>In article steward@cup.portal.com (John Joseph Deltuvia) writes:\n>\n>>There was a story a few weeks ago on a network news show about some sort\n>>of fungus which supposedly attacks the bone structure and is somewhat\n>>widespread in California.  Anybody hear anything about this one?\n>\n\nThe only fungus I know of from California is Coccidiomycosis.  I\nhadn't heard that it attacked bone.  It attacks lung and if you\nare especially unlucky, the central nervous system.  Nothing new\nabout it.  It's been around for years.  THey call it \"valley\nfever\", since it is found in the inland valleys, not on the coast.\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5571, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Re: Hamza Salah, the Humanist\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 8\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nMr. Salah, why are you such a homicidal racist?  Do you feel this\nsame hatred towards Christans, or is it only Jews?  Are you from\na family of racists?  Did you learn this racism in your home?  Or\nare you a self-made bigot?  How does one become such a racist?  I\nwonder what you think your racism will accomplish.  Are you under\nthe impression that your racism will help bring peace in the mid-\neast?  I would like to know your thoughts on this.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5572, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: paladin@world.std.com (Thomas G Schlatter)\nSubject: Re: More Cool BMP files??\nOrganization: The World Public Access UNIX, Brookline, MA\nDistribution: usa\nLines: 22\n\nIn article <1993Apr24.062055.7123@seas.gwu.edu> louray@seas.gwu.edu (Michael Panayiotakis) writes:\n>>\n>>\n>>>BEGIN ----------------------- CUT HERE ---------------\n>>>begin 666 ntreal.bmp\n>>>M0DTV5P<      #8$   H    ( ,  %@\"   !  @                     \n>>>M            $    ! @@P![( @ \"!A> #!_F   #CD ,56# #D.  !=>_D \n>>>M4PA: &4H@P\"L,1  $U); &N+L0 ($!@ +4WA !,J.0 B/%H 9TJ3 $KKZP 0\n>>>M,;, TD4I /ZGB0!)#UH (0A.  \"6E@ I !@ 4B!I \" !  !BBZX #!E1 )BV\n>>\n>>Deleted a lot of stuff!!!!!!!\n>>How do you convert this to a bit map???\n>\n>You're supposed to delete everything above the \"cut here\" mark, and\n>below the lower cut here mark, and uudecode it.  but \n>*I was not able to: unexpected end of file encountered at the last line.\n>\n>could you please re-post it, or tell be what I'm doing wrong?\n\nSounds like the original poster of the bitmap uuencoded the file\non a DOS machine, and you tried to uudecode it on a Un*x machine, and your\nuudecode program balked at the carraige-returns.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5573, "properties": {"category": "alt.atheism", "text": "From: \"Robert Knowles\" <p00261@psilink.com>\nSubject: Re: Amusing atheists and agnostics\nIn-Reply-To: <timmbake.735261806@mcl>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Kupajava, East of Krakatoa\nX-Mailer: PSILink-DOS (3.3)\nLines: 18\n\n>DATE:   19 Apr 93 23:23:26 GMT\n>FROM:   Bake Timmons <timmbake@mcl.ucsb.edu>\n>\n>My my, there _are_ a few atheists with time on their hands.  :)\n>\n>OK, first I apologize.  I didn't bother reading the FAQ first and so fired an\n>imprecise flame.  That was inexcusable.\n>\n\nHow about the nickname Bake \"Flamethrower\" Timmons?\n\nYou weren't at the Koresh compound around noon today by any chance, were you?\n\nRemember, Koresh \"dried\" for your sins.  \n\nAnd pass that beef jerky.  Umm Umm.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5574, "properties": {"category": "sci.electronics", "text": "From: wayne@uva386.schools.virginia.edu (Tony Wayne)\nSubject: Pink Noise\nOrganization: Virginia's Public Education Network (Charlottesville)\nLines: 4\n\nWhat is Pink noise and how is it used in sound experiments?\n-tony\n wayne@uva386.schools.virginia.edu\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5575, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: richk@grebyn.com (Richard Krehbiel)\nSubject: Re: IDE vs SCSI\nIn-Reply-To: ez033672@rocky.ucdavis.edu's message of Thu, 15 Apr 1993 03:02:20 GMT\nLines: 26\nOrganization: Grebyn Timesharing, Inc.\n\nIn article <C5I8Fx.8FC@ucdavis.edu> ez033672@rocky.ucdavis.edu (The Great Randalli!) writes:\n\n>     Can anyone explain in fairly simple terms why, if I get OS/2, I might \n>   need an SCSI controler rather than an IDE.  Will performance suffer that\n>   much?  For a 200MB or so drive?  If I don't have a tape drive or CD-ROM?\n>   Any help would be appreciated.\n>\n>   Richard Randall -- <ez033672@hamlet.ucdavis.edu>\n\nThere is a way in which a multi-tasking computer actually gives you\nmore CPU power then you had before, and that is with I/O overlap.\nWith I/O overlap, your CPU can continue to \"think\" while disk\noperations are underway, whereas without overlap, your CPU sits idly\nwaiting for each disk operation to finish - and disk operations take\nan *eternity*, compared to a fast CPU.\n\nSo, when you've got multi-tasking, you want to increase performance by\nincreasing the amount of overlapping you do.\n\nOne way is with DMA or bus mastering.  Either of these make it\npossible for I/O devices to move their data into and out of memory\nwithout interrupting the CPU.  The alternative is for the CPU to move\nthe data.  There are several SCSI interface cards that allow DMA and\nbus mastering.  IDE, however, is defined by the standard AT interface\ncreated for the IBM PC AT, which requires the CPU to move all the data\nbytes, with no DMA.\n-- \nRichard Krehbiel                                 richk@grebyn.com\nOS/2 2.0 will do for me until AmigaDOS for the 386 comes along...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5576, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: Wanted: Advice for New Cylist\nOrganization: Ontario Hydro - Research Division\nLines: 18\n\nIn article <C5r7Ey.7Mq@srgenprp.sr.hp.com> blaisec@sr.hp.com (Blaise Cirelli) writes:\n>\n>I'm thinking of buying a motorcycle. Whenever I tell people\n>this I usually get an answer like \"Why do you want to do that\n>My brother, sister, cousin knows somebody who had a motorcycle\n>and now they are brain dead as a result of an accident?\"\n>\n>So the question I have is \"HOW DANGEROUS IS RIDING\"?            \n\nIt's exactly as dangerous as it looks. You're hard to see and have little\nprotection. Keeping out of trouble means knowing your limits, keeping your\nmachine in good shape and being able to predict and make up for every stupid\nmove that drivers make out there. We deal with it because it's fun, but\nstaying alive takes a conscious effort.\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5577, "properties": {"category": "sci.electronics", "text": "From: young_dick@macmail2.rtsg.mot.com (Dick Young)\nSubject: ATTN: H. Wheaton, UCal Davis\nNntp-Posting-Host: 136.182.211.36\nOrganization: Motorola, Inc. (Cellular Infrastructure)\nDistribution: usa\nLines: 11\n\nI tried to E-mail you, but the message bounced.\n\nMotorola has a University Support Program through which (I've been told) folks\nat schools can get sample quantities of parts.  If you'd like to try this \nroute, e-mail me for the address/phone #...I don't wish to post it for all the\nworld to see.\n\nDick Young\nMotorola, Inc.\n(Who doesn't have a thing to do with my opinions: They're my own fault.)\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5578, "properties": {"category": "sci.med", "text": "From: kxgst1+@pitt.edu (Kenneth Gilbert)\nSubject: Re: Do we need a Radiologist to read an Ultrasound?\nOrganization: University of Pittsburgh\nLines: 31\n\nIn article <1993Apr20.180835.24033@lmpsbbs.comm.mot.com> dougb@ecs.comm.mot.com writes:\n:My wife's ob-gyn has an ultrasound machine in her office.  When\n:the doctor couldn't hear a fetal heartbeat (13 weeks) she used\n:the ultrasound to see if everything was ok.  (it was)\n:\n:On her next visit, my wife asked another doctor in the office if\n:they read the ultrasounds themselves or if they had a radiologist\n:read the pictures.  The doctor very vehemently insisted that they\n:were qualified to read the ultrasound and radiologists were NOT!\n:\n:[stuff deleted]\n\nThis is one of those sticky areas of medicine where battles frequently\nrage.  With respect to your OB, I suspect that she has been certified in\nultrasound diagnostics, and is thus allowed to use it and bill for its\nuse.  Many cardiologists also use ultrasound (echocardiography), and are\nin fact considered by many to be the 'experts'.  I am not sure where OBs\nstand in this regard, but I suspect that they are at least as good as the\nradioligists (flame-retardant suit ready).\n    \n   \n   \n   \n   \n\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!\" =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5579, "properties": {"category": "comp.graphics", "text": "From: omar@godzilla.osf.org (Mark Marino)\nSubject: WANTED: Playmation Info\nOrganization: Open Software Foundation\nLines: 21\n\nHi Folks,\n\n   Does anyone have a copy of Playmation they'd be willing to sell me.  I'd \nlove to try it out, but not for the retail $$$.  If you have moved onto \nsomething bigger (3DS) or better (Imagine), I'd love to buy your table scraps.\n\n   If noone is selling, can anyone recommend a place to buy Playmation \nmail-order for cheap?  \n\n   Thanks in advance,\n\n   Mark\n\n\n\n-- \n ----------------------------------------------------------------------------- \n|                                                                             |\n| Mark Marino              | omar@osf.org           |  uunet!osf!omar         |\n| Open Software Foundation | 11 Cambridge Center    |  Cambridge, MA 02142    |\n|_____________________________________________________________________________|\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5580, "properties": {"category": "comp.graphics", "text": "From: ds@aris.nswc.navy.mil (Demetrios Sapounas)\nSubject: 3D display software\nOrganization: NSWC\nLines: 19\n\n\n\n   I have the need for displaying 2 1/2 D surfaces under X, using only\nXlib, Xt and Xm.  Does anyone know of a package, available on internet,\nwhich will be able to do the work?\n\n   I am looking for a STAND-ALONE package providing similar functions\nto \"xprism3\" available with Khoros, but without the numerous libraries\nrequired for it.  I want to be able to recompile it and run it on\nvarious platforms, from SGIs to i486s (UNIX).\n\n   Any help will be appreciated.\n\n\n=======================================================================\nDemetrios Sapounas                         Tel        +1 (703) 663.8332\nL 115, NSWC                                Fax        +1 (703) 663.1939\nDahlgren, VA 22448-5000, USA               email  ds@aris.nswc.navy.mil\n=======================================================================\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5581, "properties": {"category": "soc.religion.christian", "text": "From: revdak@netcom.com (D. Andrew Kille)\nSubject: Re: Easter: what's in a name? (was Re: New Testament Double Stan\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 40\n\nDaniel Segard (dsegard@nyx.cs.du.edu) wrote:\n\n[a lot of stuff deleted]\n\n:      For that matter, stay Biblical and call it Omar Rasheet (The Feast of\n: First Fruits).  Torah commands that this be observed on the day following\n: the Sabbath of Passover week.  (Sunday by any other name in modern\n: parlance.)  Why is there so much objection to observing the Resurrection\n: on the 1st day of the week on which it actually occured?  Why jump it all\n: over the calendar the way Easter does?  Why not just go with the Sunday\n: following Passover the way the Bible has it?  Why seek after unbiblical\n: methods?\n:  \nIn fact, that is the reason Easter \"jumps all over the calendar\"- Passsover\nitself is a lunar holiday, not a solar one, and thus falls over a wide\npossible span of times.  The few times that Easter does not fall during or\nafter Passover are because Easter is further linked to the Vernal Equinox-\nthe beginning of spring.\n\n[more deletions]\n:  \n:       So what does this question have to do with Easter (the whore\n: goddess)?  I am all for celebrating the Resurrection.  Just keep that\n: whore out of the discussion.\n:  \nYour obsession with the term \"whore\" clouds your argument.  \"Whore\" is\na value judgement, not a descriptive term.\n\n[more deletions]\n\nOverall, this argument is an illustration of the \"etymological fallacy\"\n(see J.P. Louw: _Semantics of NT Greek_).  That is the idea that the true\nmeaning of a word lies in its origins and linguistic form.  In fact, our\nown experience demonstrates that the meaning of a word is bound up with\nhow it is _used_, not where it came from.  Very few modern people would\nmake any connection whatsoever between \"Easter\" and \"Ishtar.\"  If Daniel\nSeagard does, then for him it has that meaning.  But that is a highly\nidiosyncratic \"meaning,\" and not one that needs much refutation.\n\nrevdak@netcom.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5582, "properties": {"category": "rec.motorcycles", "text": "From: csundh30@ursa.calvin.edu (Charles Sundheim)\nSubject: Re: story \nKeywords: PARTY!!!!\nNntp-Posting-Host: ursa\nOrganization: Calvin College\nLines: 12\n\nlynn@pacesetter.com (Lynn E. Hall) writes:\n\n>allowed (yes, there is a God). No open containers on the street was the\n>signs in the bars. Yeah, RIGHT! The 20 or so cops on hand for the couple of\n>thousand of bikers in a 1 block main street were not citing anyone. The\n>street was filled with empty cans at least 2 feet deep in the gutter. The\n>crowd was raisin' hell - tittie shows everywhere. Can you say PARTY?\n\n\nAnd still we wonder why they stereotype us...\n\n-Erc.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5583, "properties": {"category": "rec.autos", "text": "From: johnson@spectra.com (boyd johnson)\nSubject: Re: Automotive crash test, performance and maintenance stats?\nOrganization: Spectragraphics Corporation\nDistribution: usa\nLines: 23\n\n<<I wrote>\n<Is there a resource available to the consumer comparing all of the makes\n<and models of automobiles, trucks, vans, etc. for survivability in a\n<crash of different severities?\n<...\n<Also, I've found very little objective data comparing different\n<vehicles for handling, pick-up, braking, expected maintenance, etc.\n<I recall years ago Consumer Reports annual buyer's guide was much more\n<informative in those aspects than it is now.\n\nThanks to a reply from someone I looked a little further and found what\nI was looking for.  The April CR magazine has most of the above things.\nDespite recent articles here the ratings looked pretty good for\nrelative comparison purposes.  Unfortunately the crash test comparisons\ndidn't include half of the cars I'm comparing.\nAnybody know how '93 Honda Civic hatchbacks and Toyota Tercels fare in\nan accident?\n\n\n-- \n====== Boyd Johnson   nosc!spectra.com!johnson  San Diego, California ======\n\tIntermittent newsfeed at best and only to selected groups.\n\tMy opinions certainly don't match those of my employer.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5584, "properties": {"category": "comp.graphics", "text": "From: davidr@rincon.ema.rockwell.com (David J. Ray)\nSubject: Re: Fractals? what good are they?\nOrganization: Rockwell International\nX-Newsreader: Tin 1.1 PL5\nLines: 16\n\nIn regards to fractal commpression, I have seen 2 fractal compressed \"movies\".\nThey were both fairly impressive.  The first one was a 64 gray scale \"movie\" of\nCasablanca, it was 1.3MB and had 11 minutes of 13 fps video.  It was a little\ngrainy but not bad at all.  The second one I saw was only 3 minutes but it\nhad 8 bit color with 10fps and measured in at 1.2MB.\n\nI consider the fractal movies a practical thing to explore.  But unlike many \nother formats out there, you do end up losing resolution.  I don't know what\nkind of software/hardware was used for creating the \"movies\" I saw but the guy\nthat showed them to me said it took 5-15 minutes per frame to generate.  But as\nI said above playback was 10 or more frames per second.  And how else could you\nput 11 minutes on one floppy disk?\n\ndavidr@rincon.ema.rockwell.com\nMy opinions are my own except where they are shared by others in which case I \nwill probably change my mind.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5585, "properties": {"category": "comp.windows.x", "text": "From: dshaker@qualix.com (Doug Shaker)\nSubject: Re: MacX 1.2 color problem\nReply-To: dshaker@qualix.com\nOrganization: QUALiX Group, Inc.\nLines: 43\n\nIn article KuL@ux1.cso.uiuc.edu, kerr@ux1.cso.uiuc.edu (Stan Kerr) writes:\n>I have a peculiar color problem with MacX, Apple's Macintosh X server.\n>I'd like to know if others have seen the same problem. It's happened\n>with the current version (1.2), and with version 1.1.7.\n>When some types of client windows are displayed, parts of the windows\n>are in the wrong color; if the window is moved slightly, forcing the server\n>to repaint it, it is repainted in the correct colors. It doesn't happen\n>for xterm windows, but has happened for graphic windows and with some\n>Motif clients.\n\nI expect what is going on here is that your colormap is full and, when the new application starts up, it cannot add the colors that it needs to the colormap.\nIt therefore has to pick and choose from the existing colors.  This makes it look\nugly until it's window gets priority.  Then Macx changes the colormap so that\nthe selected app is getting the exact colors it wanted, but now other applications\nare having to make do with it's colormap.\n\nThis is a problem with all color X servers (or at least all color Xservers I have\nseen) when the demands of the applications exceed the size of the colormap.\nMy solution is usually to (1) avoid colormap-greedy apps and (2) display\napplications where color is just icing on the cake in monochrome mode rather\nthan in color (if this is an option for the application).\n\n - Doug Shaker\n\tvoice:\t415/572-0200\n\tfax:\t415/572-1300\n\temail:\tdshaker@qualix.com\n\tmail:\tQualix Group\n\t\t1900 S. Norfolk St., #224\n\t\tSan Mateo, CA 94403\n\nQualix maintains a mailserver with information files and demo\nversions of products.  If you would like more information on\nthe mailserver, send an email to qfacts@qualix.com (or \nuunet!qualix!qfacts).  The email should take the following\nform:\n\tBEGIN\n\tsend help\n\tsend index\n\tEND\n\tName\n\tAddress\n\tPhone\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5586, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: syshtg@gsusgi2.gsu.edu (Tom Gillman)\nSubject: Re: Please Refresh On Internet Access To CompuServe\nOrganization: Georgia State University\nLines: 22\n\ncheong@solomon.technet.sg (SCSTECH admin) writes:\n\n>Hi,\n\n>sometime ago there are some discussions on gaining CompuServe access thru\n>the Internet. But I seem to misplace those articles. Can someone please\n>refresh me where (which site) I can telnet to to gain access.\n\n>Hopefully I can download files as well.\n\nThis should be in the FAQ, it only get asked about twenty times a month\n\nThere is *NO*, that's right, *NO* telnet access to Compuserve, no ftp access,\nno gopher access....no Internet services except e-mail.\n\nYou can telnet to hermes.merit.edu, but that routes you through Sprintnet,\nwhich is horrendously expensive. \n-- \n Tom Gillman, Systems Programmer       | \"AAAAAGGGGHHHH\" \n Wells Computer Center-Ga. State Univ. |    -- Any \"Classic\" Star Trek Security\n (404) 651-4503 syshtg@gsusgi2.gsu.edu |       officer sometime during the show\n GSU doesn't care what I say on the Internet, why should you?\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5587, "properties": {"category": "comp.graphics", "text": "From: bryanw@rahul.net (Bryan Woodworth)\nSubject: Re: CView answers\nNntp-Posting-Host: bolero\nOrganization: a2i network\nLines: 14\n\nIn <1993Apr16.114158.2246@whiting.mcs.com> sean@whiting.mcs.com (Sean Gum) writes:\n\n>A stupid question, but what will CView run on and where can I get it? I\n>am still in need of a GIF viewer for Linux. (Without X-Windows.)\n>Thanks!\n> \n\nHo boy. There is no way in HELL you are going to be able to view GIFs or do\nany other graphics in Linux without X windows!  I love Linux because it is\nso easy to learn..  You want text?  Okay.   Use Linux. You want text AND\ngraphics?  Use Linux with X windows.  Simple.  Painless.  REQUIRED to have\nX Windows if you want graphics!  This includes fancy word processors like\ndoc, image viewers like xv, etc.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5588, "properties": {"category": "misc.forsale", "text": "From: fields@cis.ohio-state.edu (jonathan david fields)\nSubject: Misc. Stuff for Sale\nArticle-I.D.: penguin.1po5lqINN749\nDistribution: usa\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 46\nNNTP-Posting-Host: penguin.cis.ohio-state.edu\n\n\nMisc. Items for sale:\n\n\nWalkman:  Aiwa Model HS-T30, 1 year old, mint condition, hardly used, \n          autoreverse, 3 band Equalizer, Super Bass, Dolby Noise Reduction,\n          AM FM tuner..........Paid $70.......Asking $40+shipping.\n\nMount Plate:  Sony Model CPM-203P, mounting plate for Sony portable CD players\nfor Portable: plugs into car lighter, snaps onto the bottom of any Sony\nCD Player:    Portable CD player, perfect condition. Will also throw in a \n\t      cassette adapter in SO SO condition.\n\t      Paid $45...............Asking $30+shipping.\n\nAM FM:\t    Factory Stereo from Toyota with AM FM radio, autoreverse cassette\nCassette:   deck, digital tuning, like new condition only in car 6 months,\nCar Stereo: Asking $60+shipping.\n\nCar Speakers:\tSherwood 5 1/4\" two way car speakers, in car for 7 months,\n5 1/4 inch:\texcellent condition, Paid $65............Asking $40+shipping.\n\n4 inch:\t    Factory Speakers from Toyota excellent condition \n\t    Asking $20+shipping.\n\n\nNintendo:   Nintendo Game Boy, Light Boy, Tetris, Super Mario Land,  \nGameboy:    NFL Football, Castlevania Adventure, Hyper Lode Runner, 4 years\n+ games:    old\tall in working condition, Asking $70+shipping.\nAccessories:\n\n\nWhole Internet:\tThe Whole Internet: User's Guide and Catalog by ED Krol,\nbook:\t\tguide to using the internet, where to fing information and \n\t\tresources.   Paid $30..........Asking $20+shipping.\n\nMicroSoft:    Never Used, came with my computer, Asking $ 60+shipping.\nVisual Basic:\n\nMicroSoft:  For Windows, never used, came with my computer, \nQuick C:    Sells new Student edition for $95............Asking $70+shipping.\n\nPlease resond to fields@cis.ohio-state.edu\n\n\t\t\t\tThanks,\n\n\t\t\t\tJonathan D. Fields\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5589, "properties": {"category": "rec.sport.hockey", "text": "From: scialdone@nssdca.gsfc.nasa.gov (John Scialdone)\nSubject: CUT Vukota and Pilon!!!\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: NASA - Goddard Space Flight Center\nLines: 32\n\nI have been to all 3 Isles/Caps tilts at the Crap Centre this year, all Isles\nwins and there is no justification for Vukota and Pilon to play for the Isles.\nVukota is absolutely the worst puck handler in the world!! He couldn't hit a\nbull in the ass with a banjo!! Al must remember a few years back when Mick \nscored 3 goals in one period against the Caps in a 5-3 Isles win. I was there\nand was astonished as was the rest of the crowd. Wake-up Al!!! Years later he's\ngotten worse. He's a cheap shot artist and always ends up getting\nstupid/senseless penalties. I think he would make a good police officier!!!\n\nAs for Pilon, he can't carry the puck out to center ice by himself. He either\nmakes a bad pass resulting in a turnover, or he attempts to bring the puck \ntowards the neutral zone and skates right into an opposing skater. He can't\nstay on his skates with most forwards or centers. He either falls down or \ncommitts a penalty. Call up somebody from Capital District AL!!!!!\n\nAs far as the playoffs, the Isles are as difficult to figure out as the Caps.\nTwo good teams with talent but so inconsistent. They should meet in the first\nround. The Isles seem to play up to the level of their competition so they\nshould play well against Jersey tonite. It'll probably be another tight 1-goal\ngame as the last 20 games hve been for the Isles. I wish when the get a lead\nthey could continue to pour it on instead of settling back into a defensive\nshell and letting the opposition get back in the game. Al MUST understand he\ncan't do with this team what he did with the 80-83 Isles. maybe Al should got\nto. Where is Bobby Nystrom?? Clark Gilles?? John Tonelli?? These are the kind\nof young minds we need behing the bench!!    FIRE AL!!!!\n\nJohn Scialdone\nSCIALDONE@NSSDCA.GSFC.NASA.GOV\n\n**********When your ship comes in, first man takes the Sail********************\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5590, "properties": {"category": "comp.windows.x", "text": "From: lakshman@ms.uky.edu (Lakshman K)\nSubject: Realtime X-tensions\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 8\n\nHi,\n\tIam looking for information on any work that deals with real-time\nsupport in X-windows????!!\n\tWould be happy if you could provide any pointers or information\nthanks\nLakshman\nlakshman@ms.uky.edu \n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5591, "properties": {"category": "talk.politics.mideast", "text": "From: aa229@Freenet.carleton.ca (Steve Birnbaum)\nSubject: Re: Israeli Expansion-lust\nReply-To: aa229@Freenet.carleton.ca (Steve Birnbaum)\nOrganization: The National Capital Freenet\nLines: 24\n\n\nIn a previous article, zbib@bnr.ca (Sam Zbib) says:\n\n>IMHO, it does not really matter who started any individual battle within \n>the Arabs/Isreal war context. The real question is who/what  started the \n>War. Does anyone have any doubts it was the creation of Israel on Arab \n>land ? \n\nWhere the hell do you get off calling it \"Arab land\"?  Jews have been\nliving there for a long time.  Jews didn't just start arriving in 1900,\nthey've been living there for thousands of years, except for periods when\nthey were expelled but they always returned home.\n\n   Steve\n-- \n------------------------------------------------------------------------------\n|   Internet: aa229@freenet.carleton.ca              Fidonet: 1:163/109.18   |\n|             Mossad@qube.ocunix.on.ca                                       |\n|    <<My opinions are not associated with anything, including my head.>>    |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5592, "properties": {"category": "comp.graphics", "text": "From: highlndr@ux1.cso.uiuc.edu (The Highlander)\nSubject: Re: TIFF: philosophical significance of 42\nOrganization: University of Illinois at Urbana\nLines: 23\n\ncptully@med.unc.edu (Christopher P. Tully,Pathology,62699) writes:\n\n>Why so up tight?  FOr that matter, TIFF6 is out now, so why not gripe\n>about its problems?  Also, if its so important to you, volunteer to\n>help define or critique the spec.\n\nHEAR HEAR!!!\n\n>Finally, a little numerology:  42 is 24 backwards, and TIFF is a 24 bit\n>image format...\n\nREALLY? i thought that the reason it was 42 was that it is REALLY 24, but\nwritten as 42 so that on Intel chips you could get the proper value :)\n\n-pete\n\nhelp stomp out the endian wars... break some eggs on their sides!\n\n-- \nPeter Mueller (TheBishop)          | When a person commits a violation and sins\nhighlndr@ux1.cso.uiuc.edu          | unintentionally in regard to any of the\npmueller@mrcnext.cso.uiuc.edu      | Lord's holy things, he is to bring to the\n                                   | Lord as a penalty, a ram from the flock...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5593, "properties": {"category": "alt.atheism", "text": "From: ednclark@kraken.itc.gu.edu.au (Jeffrey Clark)\nSubject: Re: some thoughts.\nKeywords: Dan Bissell\nNntp-Posting-Host: kraken.itc.gu.edu.au\nOrganization: ITC, Griffith University, Brisbane, Australia\nLines: 70\n\nbissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n\n>\tThe book says that Jesus was either a liar, or he was crazy ( a \n>modern day Koresh) or he was actually who he said he was.\n\nOr he was just convinced by religious fantasies of the time that he was the\nMessiah, or he was just some rebel leader that an organisation of Jews built\ninto Godhood for the purpose off throwing of the yoke of Roman oppression,\nor.......\n\n>\tSome reasons why he wouldn't be a liar are as follows.  Who would \n>die for a lie? \n\nAre the Moslem fanatics who strap bombs to their backs and driving into\nJewish embassies dying for the truth (hint: they think they are)? Were the\nNAZI soldiers in WWII dying for the truth? \n\nPeople die for lies all the time.\n\n\n>Wouldn't people be able to tell if he was a liar?  People \n\nWas Hitler a liar? How about Napoleon, Mussolini, Ronald Reagan? We spend\nmillions of dollars a year trying to find techniques to detect lying? So the\nanswer is no, they wouldn't be able to tell if he was a liar if he only lied\nabout some things.\n\n>gathered around him and kept doing it, many gathered from hearing or seeing \n>someone who was or had been healed.  Call me a fool, but I believe he did \n>heal people.  \n\nWhy do you think he healed people, because the Bible says so? But if God\ndoesn't exist (the other possibility) then the Bible is not divinely\ninspired and one can't use it as a piece of evidence, as it was written by\nunbiased observers.\n\n>\tNiether was he a lunatic.  Would more than an entire nation be drawn \n>to someone who was crazy.  Very doubtful, in fact rediculous.  For example \n\nWere Hitler or Mussolini lunatics? How about Genghis Khan, Jim Jones...\nthere are thousands of examples through history of people being drawn to\nlunatics.\n\n>anyone who is drawn to David Koresh is obviously a fool, logical people see \n>this right away.\n>\tTherefore since he wasn't a liar or a lunatic, he must have been the \n>real thing.  \n\nSo we obviously cannot rule out liar or lunatic not to mention all the other\npossibilities not given in this triad.\n\n>\tSome other things to note.  He fulfilled loads of prophecies in \n>the psalms, Isaiah and elsewhere in 24 hrs alone.  This in his betrayal \n\nPossibly self-fulfilling prophecy (ie he was aware what he should do in\norder to fulfil these prophecies), possibly selective diting on behalf of\nthose keepers of the holy bible for a thousand years or so before the\ngeneral; public had access. possibly also that the text is written in such\nriddles (like Nostradamus) that anything that happens can be twisted to fit\nthe words of raving fictional 'prophecy'.\n\n>and Crucifixion.  I don't have my Bible with me at this moment, next time I \n>write I will use it.\n             [stuff about how hard it is to be a christian deleted]\n\nI severely recommend you reconsider the reasons you are a christian, they\nare very unconvincing to an unbiased observer.\n\nJeff.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.266+0000", "event": "documents", "entityId": 5594, "properties": {"category": "rec.sport.baseball", "text": "From: G.R.Price@cm.cf.ac.uk (and thats a fact)\nSubject: Sax\nOrganization: University of Wales College of Cardiff, Cardiff, WALES, UK.\nLines: 5\n\nAny more news on Steve's status since he lost the starting job\nwould be appreciated\n\nThanks \ngwyn\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5595, "properties": {"category": "talk.religion.misc", "text": "From: gpalo@digi.lonestar.org (Gerry Palo)\nSubject: Re: Ignorance is BLISS, was Is it good that Jesus died?\nOrganization: DSC Communications Corp, Plano, TX\nLines: 20\n\nIn article <sandvik-180493131125@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n>In article <f1682Ap@quack.kfu.com>, pharvey@quack.kfu.com (Paul Harvey)\n>wrote:\n>> In article <sandvik-170493104859@sandvik-kent.apple.com> \n>> sandvik@newton.apple.com (Kent Sandvik) writes:\n>> >Ignorance is not bliss!\n> \n>> Ignorance is STRENGTH!\n>> Help spread the TRUTH of IGNORANCE!\n>\n>Huh, if ignorance is strength, then I won't distribute this piece\n>of information if I want to follow your advice (contradiction above).\n>\n>\n>Cheers,\n>Kent\n>---\n>sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n\nHe was quoting Big Brother from Orwell's 1984.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5596, "properties": {"category": "sci.med", "text": "From: bj368@cleveland.Freenet.Edu (Mike E. Romano)\nSubject: Home Medical Tests\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 21\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nI am looking for current sources for lists of all the home\nmedical tests currently legally available.\nI believe this trend of allowing tests at home where\nfeasible, decreased medical costs by a factor of 10 or\nmore and allows the patient some time and privacy to\nconsider the best action from the results of such tests.\nIn fact I believe home medical tests and certain basic\ntests for serious diseases such as cancer, heart disease,\nshould be offered free to the American public.\nThis could actually help to reduce national medical costs\nsince many would have an earlier opportunity to know\nabout and work toward recuperation or cure.\nMike Romano\n\n\n-- \nSir, I admit your gen'ral rule\nThat every poet is a fool;\nBut you yourself may serve to show it,\nThat every fool is not a poet.    A. Pope\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5597, "properties": {"category": "talk.politics.guns", "text": "From: bixledn@eng.auburn.edu (David N. Bixler)\nSubject: Re: criminals & machineguns\nNntp-Posting-Host: mosquito.eng.auburn.edu\nReply-To: bixledn@eng.auburn.edu\nOrganization: Auburn University Engineering\nLines: 14\n\n   There's only one way I know of to tell an AR-15 from an M-16.\n   Pick it up, hold it about a foot from your face and look closely\n   at the saftey lever.  If it has two positions, its an AR-15, if\n   it has three, its an M-16.  There are numerous internal differences\n   as well, but since one would have to field strip the weapon to see\n   them, they are not valid in this discussion.  So, in conclusion,\n   there is very little external differences to distinguish an AR-15\n   from an M-16 except at close (very close) range.\n\n   David Bixler\n   Auburn University\n\n   All standard disclaimers apply.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5598, "properties": {"category": "soc.religion.christian", "text": "From: mdbs@ms.uky.edu (no name)\nSubject: tuff to be a Christian?\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 63\n\nbissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n\n>\tI don't think most people understand what a Christian is.  It \n>is certainly not what I see a lot in churches.  Rather I think it \n>should be a way of life, and a total sacrafice of everything for God's \n>sake.  He loved us enough to die and save us so we should do the \n\n\tTypical statement from an irrational and brainwashed person.\nThe bible was written by some male chavnist thousands of years ago\n(as were all of the \"holy\" books). Follow the parts that you think are\nsuitable for modern life. Ignore the others. For heaven's (!) sake don't\ntake it literally.\n\n>same.  Hey we can't do it, God himself inspires us to turn our lives \n>over to him.  That's tuff and most people don't want to do it, to be a \n\t\t\t\t^^^^^^^^^^^^^^^\n>real Christian would be something for the strong to persevere at.  But \n\n\tSo you think it is easy to be a Muslim? Or be a Buddhist?\nThe Buddha's commandments are 500 yrs older than Christ's and in\nmy opinion tougher to follow. Moreover the Buddha says that we are \nintrinsically good (as against Christ's \"we are all sinners\").\n Only we allow ourselves to be distracted. By meditating we can awaken \nourselves (etc etc). Also there is no concept of God in Buddhism. \n(In my opinion you can be an Atheist and a Buddhist).\nBut to \"awaken\" yourself is no easy task. Can you stay away from eating meat?\nCan you sit still and think of nothing (meditate) for sometime everyday?\nBuddhists do (or are supposed to). Can you pray five times a day? \nCan you fast for a month every year (Ramzan). Are you willing\nto give 1/6 th of your income as tithe? Muslims do. In fact I think \nJesus was an ordinary man (just as Buddha and Mohamed) probably with a \nphilosopy ahead of the times (where he lived). \nConsidering the fact that Christianity is a young religion\n(compared to Hindiusm, Judaism, Zorasterism, Buddihsm) it is also very\nprobable that the Bible is merely a collection of borrowed ideas.\n(There was a good deal of trade between the eastern lands and the\nmiddle east at the time of Christ).\nAnd perhaps some more. But leave the crap in it out (\"woman was created\nafter man, to be his helper\" etc).\naras\n\n\t\n\n>just like weight lifting or guitar playing, drums, whatever it takes \n>time.  We don't rush it in one day, Christianity is your whole life.  \n>It is not going to church once a week, or helping poor people once in \n>a while.  We box everything into time units.  Such as work at this \n>time, sports, Tv, social life.  God is above these boxes and should be \n\n\tWhen ever I turn on my TV there is this Pat Robertson and\nother brain washers (Oh boy, what an act they put on!) with an\n1-800 number to turn in your pledges.\nGod it seems is alive and well inside these boxes.\n\n>carried with us into all these boxes that we have created for \n>ourselves.  \t  \n\n\n\tParting Question:\n\t\tWould you have become a Christian if you had not\nbeen indoctrinated by your parents? You probably never learned about\nany other religion to make a comparative study. And therefore I claim\nyou are brain washed.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5599, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tzs@stein2.u.washington.edu (Tim Smith)\nSubject: Re: Quadra SCSI Problems???\nOrganization: University of Washington School of Law, Class of '95\nLines: 21\nNNTP-Posting-Host: stein2.u.washington.edu\nKeywords: Quadra SCSI APS\n\n> ATTENTION: Mac Quadra owners: Many storage industry experts have\n> concluded that Mac Quadras suffer from timing irregularities deviating\n> from the standard SCSI specification. This results in silent corruption\n> of data when used with some devices, including ultra-modern devices.\n> Although I will not name the devices, since it is not their fault, an\n> example would be a Sony 3.5 inch MO, without the special \"Mac-compatible\"\n> firmware installed. One solution, sometimes, is to disable \"blind writes\"\n\nThis doesn't sound right to me.  Don't Quadras use the 53C96?  If so, the\nMac has nothing to do with the SCSI timing.  That's all handled by the\nchip.  About the only the timing could be wrong is if Apple programs the\nclock registers wrong on the 96.  That, however, should only really hurt\nsynchronous transfer, which is not used by the Mac SCSI Manager.\n\nFurthermore, disabling blind writes should be meaningless on a Quadra.\nOn Macs that used the 5380, which is a much lower level SCSI chip, the\nMac was responsible for the handshake of each byte transferred.  Blind\nmode affected how the Mac handled that handshake.  On the 5396, the\nhandshake is entirely handled by the chip.\n\n--Tim Smith\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5600, "properties": {"category": "comp.sys.mac.hardware", "text": "From: walsteyn@fys.ruu.nl (Fred Walsteijn)\nSubject: built-in video problems on Mac IIsi !!??!!\nOrganization: Physics Department, University of Utrecht, The Netherlands\nLines: 30\n\nDear Mac-friends,\n\nI've seen the following problem om three Mac IIsi machines\nall with 17 Mb RAM installed (70 or 80 ns SIMMs).\n\nIf the contents of a window are being calculated and updated\na lot of strange horizontal lines are temporarily generated\non the screen.  The lines translate to the top of the screen and\nhave a slightly lower brightness than their surroundings (they\nare a few millimeters apart).\nI admit that they are vague, but they can still be distinguished clearly,\nespecially if the environment (i.e. the rest of the room) is a bit dark.\nApplications which produce this effect are:\n- the previewer of DirectTeX 1.2 (i.e. DVIReader 1.2)\n- Kaleidagraph 2.1.1/FPU\n\nThe machines use their built-in video and drive the old \nApple Hires Monochrome screen (two monitors/cable sets tried).  \nThe effect is independent of the settings in the following control \npanels: Memory (adressing mode, disk cache) \n        and Monitors (nr of greys/colors).\n\nHave you ever seen this effect too ?   Is there a solution ?\n\nThanks,\nFred\n-----------------------------------------------------------------------------\nFred Walsteijn                                | Internet: walsteyn@fys.ruu.nl\nInstitute for Marine and Atmospheric Research | FAX:      31-30-543163\nUtrecht University, The Netherlands           | Phone:    31-30-533169\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5601, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ray@netcom.com (Ray Fischer)\nSubject: Re: 68040 Specs.\nOrganization: Netcom. San Jose, California\nLines: 43\n\npatrickd@wpi.WPI.EDU (Lazer) writes ...\n>I'd appreciate it greatly if someone could E-mail me the following:\n>(if you only know one, that's fine)\n>1) Specs for the 68040 (esp. how it compares to the Pentium)\n\nSpecs for the 68040 can fill a 500 page book.  Some highlights are...\n32-bit address space w/ 32-bit data width.  18 32-bit integer registers \n& 8 80-bit floating point registers.  8K copyback capable caches,\n4-way set associative.  Typical 1.2 clocks/integer instruction.  5\nclocks for a floating point multiply.\n\n(interesting aside: the 68040 can multiply two 80-bit floating point\nnumbers in less time than it can multiply two 32-bit integers)\n\n>2) Specs for the 68060 with estimated cost, release date, etc...\n\nMore of the same but with multiple instruction dispatching.  Figure\nabout 0.8 clocks per instruction typical (my guess).  But the Motorola\nguys are pretty bright, it may be less.\n\n>I'm interested in speeds, systems it can run (Windows NT, RISC, or whatever),\n>costs, bus info, register info.  All the technical info.\n\nCall Motorola.  I'm not typing it all in.\n\n>I am hoping that the 68040 can win yet another battle against the intel people.\n\nI'm predicting that both the 680x0 and x86 lines are reaching their\nends.  New experimental processors have 64-bit data pathways and can\nschedule up to 8 out of 32 instructions each clock cycle.  That sort\nof trick can't really be done with CISC architectures.\n\nI finally saw some details on the 586/Pentium and was not greatly\nimpressed.  They've finally done some work on the FPU to get it up to\nspeed, but otherwise it's only going to be a 2x speedup.  And to get\nthat they're using two integer units, larger caches, and a branch\ntarget buffer.  Yes, I know they're talking about 100MHz processors.\nBig whoop.  Designing a 100MHz board is difficult and really\nexpensive.  Priced 15ns memory chips lately?\n\n-- \nRay Fischer                   \"Convictions are more dangerous enemies of truth\nray@netcom.com                 than lies.\"  -- Friedrich Nietzsche\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5602, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: RIMSAT, US/Russian joint venture\nOrganization: University of Illinois at Urbana\nLines: 121\n\n\nI've been to three talks in the last month which might be of interest. I've \ntranscribed some of my notes below.  Since my note taking ability is by no means\ninfallible, please assume that all factual errors are mine.  Permission is \ngranted to copy this without restriction.\n\nMichael Sternberg, Cheif of Operations of RIMSAT, was invited to speak at an\ninformal lunch held by ACDIS here on the campus of the University of Illinois.\nACDIS is an organization on campus that deals with Arms Control, Disarmament and\nInternational Security.  RIMSAT was considered an appropriate topic because the\ncompany is using Russian launchers and satellites.  I think it also helped that\nhis daughter is a grad student in the International Relations program.\n\nThe concept behind RIMSAT apparently began when Matt Neilson (?) went to Tonga\nto visit a friend.  While he was there, he somehow ended up visiting the king,\nwho happened to be a big TV fan.  Matt bought the King a satellite dish, which \nthe king thought was really nifty.  Since Tonga has a GNP of about $70 million,\nHis Majesty asked if there was any way to make money off this.  Matt thought\nthere probably was, so at his suggestion, Tonga applied for 31 geosynchronous\nsatellite slots.  While this isn't entirely off the wall, it was very unusual,\nseeing as Tonga was a tiny kingdom with no space program, and 31 is a lot of\nslots.\n\nThe whole thing was debated in the appropriate regulatory agency and Carl\nHilliard (who is apparently a respected space lawyer) wrote several opinions\nsupporting Tonga's case.  Eventually Tonga ended up with 7 slots, ranging from \n70 E to 170 E (slots are designated by the longitude over which they reside).\nAccording to Sternberg, four of these, from 130 E to 142 E are the best in the\nworld because they are excellently placed for communications between Hawaii and \nthe Pacific Rim. \n\nRIMSAT was formed to use these slots. It was officially formed in Nevis as a tax\nhaven.  They tried for a few years to raise funds in the west, however, to\nfill 7 slots with western satellites launched on western launchers would have\ncost approximately $2 billion.  It's not easy to raise that kind of money.\nEventually, they hit upon the idea of using Russian hardware.  They began \nnegotiating with Glavkosmos for hardware.  Mr Sternberg describes operating in \nMoscow in such harsh terms that I don't think I'll visit there for a long time.\nBesides a significant lack of creature comforts, he was not happy with the way\nthat people operate.  For example \"everybody can sell you everything.\"  \nEveryone can show the proper documents and licenses that indicate they are the\nonly ones who have the authority to sell what ever you want to by.\n\nEventually, RIMSAT arranged a deal with Glavkosmos for 6 satellites at a cost\nof $150 million.  However, Glavkosmos lost favor after the coup.  Sternberg\nsays that this is because they were basically a bunch of KGB operatives who \nwent to trade shows and picked up lots of brochures.  Since Glavkosmos was\nout of power, he had to renegotiate the deal with the new authorities.  He\nagain described life in a Moscow hotel in rather unfavorable terms.  Eventually,\nhe worked out a deal and on Dec 4, 1992 he met with Koptev, who heads the \nRussian space program, to sign the deal.  Koptev insisted on a few concessions\nbefore signing and according to Sternberg he arranged these new rules to \nallow himself to form another company to do the exact same thing as RIMSAT.\n\nThe next step was to meet with the builders of the hardware, NPO Applied \nMechanics -- NPO PM to use their acronym.  This organization is located in \nSiberia (can't figure out how to spell the town, I need an atlas) and has built\nabout 1500 vehicles since the dawn of the space age.  Sternberg commented that\nsiberians are very different from Musovites.  They are hard workers, honest\npeople who team up to get things done, very much like midwesterners.  At this\npoint there were some comments from the audience that agreed with his opinion on\nboth siberians and midwesterners :-)\n\nSternberg had lots of good things to say about NPO PM.  His company is \napparently lookng for $100 million to invest in the firm to become 50% partners.It apparently costs the Russians about $4 million to build a satellite that\nwould sell for $50 million in the west.  If you want to give them \nspecifications, they'll build you a satellite.  For the particular satellites\nthat RIMSAT will be using, costs run about $378,000 per transponder year.  This\ncompares to $810,000 t/y in the U.S.  They can sell their time for about $1.1\nmillion compared to $2.6 million in the U.S.  RIMSAT will launch their \nsatellites on Protons.  To get the best prices, they bought in bulk.  They \nhave the rights to twelve launches, so if any of you need a lift I can give\nyou their address.  The first launch is scheduled for October and they are\ngetting one used satellite from the Russians, which is being moved into place\nnow.\n\nTidbits:\n\n*  Sternberg says this kind of thing has to be done by entrepreneurs, not big\nbusiness because big business is just like what they have over there, except\nthat \"we have better paper, both in the bathroom and in the copier.\"\n\n*  Russian launches are self insured.  The promise to replace a failed launch\nwithin 9 months.\n\n*  Major investors in RIMSAT include Russell 20/20, which is a huge retirement\nfund organization, Cellsat, which is a big telecom business in southeast Asia,\nand a fund operated by some of the big names in U.S aerospace which he says is\nsort of an insurance policy for them if this really takes off.\n\n*  He downplayed the instabilites in the ex-USSR saying that we are worried\npartly because we aren't used to seeing Russia as anything but an unvarying\nmonolith.  Italy gets a new government \"every two weeks\" but we don't worry \nbecause we're used to it.  He predicted that once we get used to seeing what\nreally goes on in Russia we won't worry about their stability as much.\n\n*  Part of the problem with cooperative ventures is the problem of transfering\nmoney.  The central bank has a policy of taking hard currency payments, putting\n25% in their coffers and replacing the rest with the \"equivalent\" value in \nrubles.  To get around this, RIMSAT pays their hard currency into an Austrian\nbank account.  NPO PM then pays their contractors with foreign currency so that\nthe only the contractors get swindled by the government.\n\n*  One of the big problems RIMSAT has had is stonewalling by the western \nsatellite industry.  However, Intelsat recently bought three of the same type\nof satellites, which was rather reassuring.\n\n*  The biggest worry most people have about russian satellites is the primitive\ntechnology and shorter lifetime.  The older Gorizont (Horizon) satellites have\na lifetime of about 5 years, while the more modern Express satellites compare\nwell with western technology and last about 8 years.  While this is much \nshorter than 15 years for western satellites, Sternberg downplayed the \ndifference.  At these prices they can afford to launch new ones.  In addition,\nshorter lifetimes mean that they can replace their equipment with newer\ntechnology so they will be able to compete better than older, out of date\nhardware.\n\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n\t\t    \"Find a way or make one.\"\n\t             -attributed to Hannibal\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5603, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Stephen Hawking Tours JPL\nOrganization: Express Access Online Communications USA\nLines: 23\nDistribution: world\nNNTP-Posting-Host: access.digex.net\nKeywords: JPL\n\nIn article <23APR199317325771@kelvin.jpl.nasa.gov> baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n>     Using a model of Mars Observer, Albee spent several minutes\n>describing the project and the spacecraft's features. In answer\n>to a question from Hawking, Chahine described a proposed\n>drag-free satellite, but confirmed that at this point, \"it's only\n>a concept.\" Chahine, who had met Hawking at Caltech about five\n\n\nToo bad they didn't  give him a tour of the CGRO data?\n\nI think he'd be fascinated by the Gamma ray bursters.  The mind of\nhawking might even propose a mechanism.\n\n\nSO what's a drag free satellite?   coated with WD-40?  carries an\naluminum-gold  set of grateful dead albums?   inquiring minds\nwant to know?\n\nAnd why would MO  carry any features for being drag free?  I thought\naero-braking was a possible MO  experimental activity?\n\npat\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5604, "properties": {"category": "comp.windows.x", "text": "From: VANDAMME@NMR.RUG.AC.BE\nSubject: XmScale & XtAddEventHandler\nOrganization: The Internet\nLines: 29\nTo: xpert@expo.lcs.mit.edu\n\nDear Xperts,\n\nI'm developing an application that uses a Motif slider to select\nan image file out of a directory. Now I would like to display the\nname of the file corresponding to the value of the dragged scale\nbutton (i.e. with the MB1 pressed). As XmNshowValue only displays\nthe current value of the scale button and not the actual corresponding\nimage file name, I thought of using an XtAddEventHandler to do\nthe mapping between the scale value and the file name:\n\nXtAddEventHandler(scaleImage,Button1MotionMask,  FALSE, SliderMoved, NULL);\n\n\nand in the eventhandler do a:\n\n  while (XCheckTypedWindowEvent (display, event->window, MotionNotify, &Return))\n   ;\n  XmScaleGetValue(scaleImage,&value);\n  /*map value to file entry in directory and finally obtain file name to open*/\n\n\nHowever, when I move the pointer in the scale widget I get callbacks, with of co\n   urse\na null effect as my MB1 is not pressed to move the scale button. So what is goin\n   g wrong?\nOr is the a wrong approach to this problem?\nAny hints are highly appreciated.\n---\nPhil\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5605, "properties": {"category": "talk.politics.guns", "text": "From: bbs.billand@tsoft.net (Bill Anderson)\nSubject: Handgun Restrictions\nOrganization: The TSoft BBS and Public Access Unix, +1 415 969 8238\nLines: 7\n\nI would like to know what restrictions there are on purchasing handguns \n(ie waiting periods, background check etc..) in the states of Nevada and \nOregon. Thanks.\n                                                -Bill\n\n--\nBill Anderson (bbs.billand@tsoft.net)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5606, "properties": {"category": "sci.space", "text": "From: dante@shakala.com (Charlie Prael)\nSubject: Re: Commercial mining activities on the moon\nOrganization: Shakala BBS (ClanZen Radio Network) Sunnyvale, CA +1-408-734-2289\nLines: 10\n\ndietz@cs.rochester.edu (Paul Dietz) writes:\n\n> Which merely evades the issue of why those lunatics are\n> there at all (and, why their children would want to stay.)\n\nPaul-- for the same reason that many other colonies are founded. Why not?\n\n------------------------------------------------------------------\nCharlie Prael  - dante@shakala.com \nShakala BBS (ClanZen Radio Network) Sunnyvale, CA +1-408-734-2289\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5607, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Israel's Expansion II\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 20\n\nIn article <93111.225707PP3903A@auvm.american.edu> Paul H. Pimentel <PP3903A@auvm.american.edu> writes:\n>What gives Isreal the right to keep Jeruseleum?It is the home of the muslim a\n>s well as jewish religion, among others.Heck, nobody ever mentions what Yitza\n>k Shamir did forty orfifty yearsago which is terrorize westerners much in the\n> way Abdul Nidal does today.Seems Isrealis are nowhere above Arabs, so theref\n>ore they have a right to Jerusaleum as much as Isreal does.\n\nIf \"ownership\" were rightly based on \"worthiness\" there wouldn't be any owners.\nWhat is your point?\n\nAs I understand it, Israel's \"claim\" on Jerusalem is based on 1) possession,\nand 2) the absolutely CENTRAL (not second, not third) role it plays in jewish \nidentity. \n\n\n--\n______________________________________________________________________________\nTim Clock                                 Ph.D./Graduate student\n[tclock@orion.oac.uci.edu]                Department of Politics and Society\n\"We have met the                          tel:(714)8565361/Fax:(714)8568441\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5608, "properties": {"category": "comp.graphics", "text": "From: jk87377@lehtori.cc.tut.fi (Kouhia Juhana)\nSubject: Re: More gray levels out of the screen\nOrganization: Tampere University of Technology\nLines: 21\nDistribution: inet\nNNTP-Posting-Host: cc.tut.fi\n\nIn article <1993Apr6.011605.909@cis.uab.edu> sloan@cis.uab.edu\n(Kenneth Sloan) writes:\n>\n>Why didn't you create 8 grey-level images, and display them for\n>1,2,4,8,16,32,64,128... time slices?\n\nBy '8 grey level images' you mean 8 items of 1bit images?\nIt does work(!), but it doesn't work if you have more than 1bit\nin your screen and if the screen intensity is non-linear.\n\nWith 2 bit per pixel; there could be 1*c_1 + 4*c_2 timing,\nthis gives 16 levels, but they are linear if screen intensity is\nlinear.\nWith 1*c_1 + 2*c_2 it works, but we have to find the best\ncompinations -- there's 10 levels, but 16 choises; best 10 must be\nchosen. Different compinations for the same level, varies a bit, but\nthe levels keeps their order.\n\nReaders should verify what I wrote... :-)\n\nJuhana Kouhia\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5609, "properties": {"category": "talk.religion.misc", "text": "From: royc@rbdc.wsnc.org (Roy Crabtree)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Red Barn Data Center\nLines: 26\n\nIn article <C5s9CK.2Bt@apollo.hp.com> nelson_p@apollo.hp.com (Peter Nelson) writes:\n>  who would be alive today if they had been released back when we were\n\n\tThe word \"released\" is loaded:  until convicted in CXOurt,\n\tmy children are my own.\n\n\tWHen the Feds use this type of loaded logic, you cannot win:\n\t\t1)  we accuse you\n\t\t2) we shoot a couple of your kids\n\t\t3)  we blame you for those shots\n\t\t4) we harrass you for 51 days\n\t\t5) we tell you to come out or die\n\t\t6) we gas you\n\t\t7) you burn to death\n\t\t8)  we blame you (prior to trial) for all of it\n>  debating this a few weeks ago.\n>\n>\n>---peter\n>\n>\n>\n>\n>\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5610, "properties": {"category": "talk.politics.mideast", "text": "From: aa229@Freenet.carleton.ca (Steve Birnbaum)\nSubject: Re: rejoinder. Questions to Israelis\nReply-To: aa229@Freenet.carleton.ca (Steve Birnbaum)\nOrganization: The National Capital Freenet\nLines: 34\n\n\nIn a previous article, cpr@igc.apc.org (Center for Policy Research) says:\n\n>today ?  Finally, if Israel wants peace, why can't it declare what\n>it considers its legitimate and secure borders, which might be a\n>base for negotiations? Having all the above facts in mind, one\n>cannot blame Arab countries to fear Israeli expansionism, as a\n>number of wars have proved (1948, 1956, 1967, 1982).\n\nOh yeah, Israel was really ready to \"expand its borders\" on the holiest day\nof the year (Yom Kippur) when the Arabs attacked in 1973.  Oh wait, you\nchose to omit that war...perhaps because it 100% supports the exact \nOPPOSITE to the point you are trying to make?  I don't think that it's\nbecause it was the war that hit Israel the hardest.  Also, in 1967 it was\nEgypt, not Israel who kicked out the UN force.  In 1948 it was the Arabs\nwho refused to accept the existance of Israel BASED ON THE BORDERS SET\nBY THE UNITED NATIONS.  In 1956, Egypt closed off the Red Sea to Israeli\nshipping, a clear antagonistic act.  And in 1982 the attack was a response\nto years of constant shelling by terrorist organizations from the Golan\nHeights.  Children were being murdered all the time by terrorists and Israel\nfinally retaliated.  Nowhere do I see a war that Israel started so that \nthe borders could be expanded.\n \n   Steve\n-- \n------------------------------------------------------------------------------\n|   Internet: aa229@freenet.carleton.ca              Fidonet: 1:163/109.18   |\n|             Mossad@qube.ocunix.on.ca                                       |\n|    <<My opinions are not associated with anything, including my head.>>    |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5611, "properties": {"category": "comp.windows.x", "text": "From: jgealow@mtl.mit.edu (Jeffrey C. Gealow)\nSubject: Standard Colormaps\nOrganization: MIT Microsystems Technology Laboratories\nLines: 49\nDistribution: world\nNNTP-Posting-Host: mtl.mit.edu\n\nI'm working on an X11R5 application and have concerns regarding \nstandard colormaps.\n\nThe X11R5 documentation says: \"Usually, a window manager creates \nthese colormaps.\"  I wonder what window manager the writer had \nin mind.  Neither twm or mwm seem to create standard colormaps.\n\nOf course, one can use xstdcmap to create standard colormaps.  \nHowever, xstdcmap doesn't seem to try very hard to avoid \nconflicts with the default colormap.  When I use standard \ncolormaps created by xstdcmap, the rest of my display goes black.  \nSo it seems as if use of standard colormaps causes the very \nproblem standard colormaps are intended to avoid.  Perhaps \nif every application used standard colormaps, things would \nbe wonderful.  But not many applications seem to use \nstandard colormaps.\n\nFinally, the operation of the functions XmuGetColormapAllocation, \nXmuStandardColormap, and XmuCreateColormap seem inconsistent \nwith the section 14.3 of the X11R5 XLIB documentation.\n\n    According to the section 14.3 of the X11R5 XLIB documentation (p. 436):\n\n    For GrayScale colormaps, only the colormap, red_max, red_mult, and \n    base_pixel members are defined.  The other members are ignored.  \n    To compute a GrayScale pixel value, use the following expression:\n\n            (gray * red_mult + base_pixel) &0xFFFFFFFF\n\n    XmuGetColormapAllocation, defined in mit/lib/Xmu/CmapAlloc.c, is \n    used by XmuLookupStandardColormap, defined in mit/lib/Xmu/LookupCmap.c\n    to select red_max, green_max, and blue_max values for the \n    call to XmuStandardColormap.  When the RGB_GRAY_MAP property is \n    specified, XmuGetColormapAllocation sets red_max to 30% of the \n    total number of cells in the gray scale, sets green_max to 59% \n    of the total number, and sets blue_max ot 11% of the total number.\n    Referring to section 14.3, one would expect XmuGetColormapAllocation \n    to set red_max to the total number of cells in the gray scale.\n\n    When the RGB_GRAY_MAP property is specified, XmuStandardColormap, \n    defined in mit/lib/Xmu/StdCmap.c, sets red_mult, green_mult, \n    and blue_mult all equal to 1.  Referring to section 14.3, \n    one would expect green_mult and blue_mult to be ignored.\n\n    When red_mult, green_mult, and blue_mult all equal 1, \n    XmuCreateColormap, defined in mit/lib/Xmu/CrCmap.c, constructs \n    a gray map. The sum of red_max, green_max, and blue_max gives \n    the maximum gray value.  Referring to section 14.3, on would \n    expect red_max to give the maximum gray value.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5612, "properties": {"category": "talk.politics.misc", "text": "From: deane@binah.cc.brandeis.edu (David Matthew Deane)\nSubject: Re: PUBLIC HEARINGS on Ballot Access, Vote Fraud and Other Issues\nReply-To: deane@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 10\n\nAck! Sorry for the repeat posts: I thought I was posting to the newsgroup\non which this appeared. Couldn't figure out why it wasn't appearing in\nmy newsgroup. Stupid of me. Slap my hands. Bang my head against the wall.\nSorry! Bloody public anouncements...mumble mumble mumble...\n============================================================================\nDavid Matthew Deane (deane@binah.cc.brandeis.edu)\n     \nWhen the words fold open,\nit means the death of doors;\neven casement windows sense the danger.   (Amon Liner)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5613, "properties": {"category": "rec.sport.hockey", "text": "From: c5ff@jupiter.sun.csd.unb.ca (COOK  Charlie)\nSubject: NHL Summary parse results for games played Fri, April 16, 1993\nOrganization: University of New Brunswick\nLines: 123\n\nPhiladelphia                     1 1 2 1--5\nHartford                         1 2 1 0--4\nFirst period\n     1, Hartford, Nylander 10 (unassisted) 8:51.\n     2, Philadelphia, Recchi 53 (Lindros, Brind'Amour) pp, 19:59.\nSecond period\n     3, Hartford, Burt 6 (Cunneyworth, Kron) 2:00.\n     4, Philadelphia, Bowen 1 (Eklund, Recchi) 7:09.\n     5, Hartford, Nylander 11 (Zalapski, Sanderson) 9:38.\nThird period\n     6, Hartford, Kron 14 (Sanderson, Cassels) pp, 1:24.\n     7, Philadelphia, Beranek 15 (Lomakin, Yushkevich) 3:11.\n     8, Philadelphia, Faust 2 (Brind'Amour, Roussel) 3:38.\nOvertime\n     9, Philadelphia, Yushkevich 5 (Faust) 1:15.\n\nPhiladelphia: 5    Power play: 4-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBeranek            1    0    1\nBowen              1    0    1\nBrind'Amour        0    2    2\nEklund             0    1    1\nFaust              1    1    2\nLindros            0    1    1\nLomakin            0    1    1\nRecchi             1    1    2\nRoussel            0    1    1\nYushkevich         1    1    2\n\nHartford: 4    Power play: 4-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBurt               1    0    1\nCassels            0    1    1\nCunneyworth        0    1    1\nKron               1    1    2\nNylander           2    0    2\nSanderson          0    2    2\nZalapski           0    1    1\n\n-----------------------------------------\nNew Jersey                       0 3 1--4\nNY Islanders                     3 3 2--8\nFirst period\n     1, NY Islanders, Turgeon 56 (unassisted) 4:11.\n     2, NY Islanders, Thomas 36 (Malakhov, King) pp, 5:58.\n     3, NY Islanders, Ferraro 14 (Dalgarno, Malakhov) 18:16.\nSecond period\n     4, New Jersey, Niedermayer 11 (Richer, Nicholls) 0:41.\n     5, NY Islanders, Mullen 18 (Vaske, Dalgarno) 1:15.\n     6, NY Islanders, Thomas 37 (Hogue, Norton) 2:12.\n     7, New Jersey, Zelepukin 23 (unassisted) 17:11.\n     8, New Jersey, Richer 38 (Nicholls, Daneyko) 17:23.\n     9, NY Islanders, Hogue 33 (Flatley, Ferraro) 18:42.\nThird period\n     10, NY Islanders, Turgeon 57 (unassisted) 3:45.\n     11, New Jersey, Semak 37 (Lemieux, Driver) 9:06.\n     12, NY Islanders, Turgeon 58 (King, Pilon) 10:21.\n\nNY Islanders: 8    Power play: 4-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nDalgarno           0    2    2\nFerraro            1    1    2\nFlatley            0    1    1\nHogue              1    1    2\nKing               0    2    2\nMalakhov           0    2    2\nMullen             1    0    1\nNorton             0    1    1\nPilon              0    1    1\nThomas             2    0    2\nTurgeon            3    0    3\nVaske              0    1    1\n\nNew Jersey: 4    Power play: 2-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nDaneyko            0    1    1\nDriver             0    1    1\nLemieux            0    1    1\nNicholls           0    2    2\nNiedermayer        1    0    1\nRicher             1    1    2\nSemak              1    0    1\nZelepukin          1    0    1\n\n-----------------------------------------\nNY Rangers                       1 0 1--2\nWashington                       1 1 2--4\nFirst period\n     1, NY Rangers, Graves 36 (Zubov, Andersson) 6:17.\n     2, Washington, Ridley 26 (unassisted) 18:33.\nSecond period\n     3, Washington, Hatcher 34 (Johansson) 12:19.\nThird period\n     4, Washington, Jones 12 (May) 2:49.\n     5, Washington, Cote 21 (Khristich, Pivonka) pp, 18:55.\n     6, NY Rangers, Gartner 45 (Amonte, Andersson) pp, 19:50.\n\nWashington: 4    Power play: 7-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nCote               1    0    1\nHatcher            1    0    1\nJohansson          0    1    1\nJones              1    0    1\nKhristich          0    1    1\nMay                0    1    1\nPivonka            0    1    1\nRidley             1    0    1\n\nNY Rangers: 2    Power play: 4-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAmonte             0    1    1\nAndersson          0    2    2\nGartner            1    0    1\nGraves             1    0    1\nZubov              0    1    1\n\n-----------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5614, "properties": {"category": "talk.politics.guns", "text": "From: lwb@cs.utexas.edu (Lance W. Bledsoe)\nSubject: Re: Threatening Gun Owners\nOrganization: CS Dept, University of Texas at Austin\nLines: 47\nNNTP-Posting-Host: im4u.cs.utexas.edu\n\nIn article <7178@blue.cis.pitt.edu> gswst@cislabs.pitt.edu (Gary S. Wachs) writes:\n>\n>Hello,\n>\n>I'm writing a story on the future of Gun Control.  There are a\n>few points I would welcome your opinion on.  It's wonderful having a\n>resource like this newsgroup to take advantage of and I thank you in advance\n>for your feedback!\n>\n>1. What do you believe are the most serious threats to gun-owners in the\n>future?  \n\t* The Government\n\t* Liberals\n\t* BATF, FBI, DEA, etc.  (see #1)\n\n>2. Are you concerned that the 2nd ammendment could be reinterpreted to\n>apply to the armed forces only, barring civilians from owning arms of\n>any kind?\n\tWell...\n\t\tcontributions == taxes\n\t\tabortion == elimination of fetal tissue\n\t\tClinton == president\n\t\tfaggot == spouse\n\tIt could happen...\n\n>3. If you did have control over what types of arms people would be allowed\n>to buy, which types would you feel compelled to restrict to military\n>uses only (ie. bazooka, M16, grenade, atomic bomb, etc.)\n\tHydrogen Bomb, perhaps.\n\t\n>4. Would you describe HCI and all other gun control activists as being\n>determined to make it illegal for a civilian to own or use a firearm?\n\tYep.\n\n>5. Have you personally read the Brady Bill in its entirety?\n\tYep.\n\n>Thank again,\n>\n>Gary\n\n\n-- \n+------------------------------------------------------------------------+\n|  Lance W. Bledsoe        lwb@im4u.cs.utexas.edu        (512) 258-0112  |\n|  \"Ye shall know the TRUTH, and the TRUTH shall make you free.\"         |\n+------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5615, "properties": {"category": "rec.motorcycles", "text": "From: SHICKLEY@VM.TEMPLE.EDU\nSubject: For Sale (sigh)\nOrganization: Temple University\nLines: 34\nNntp-Posting-Host: vm.temple.edu\nX-Newsreader: NNR/VM S_1.3.2\n\n\n                 FOR SALE (RELUCTANTLY)\n                  ---- Classic Bike -----\n                 1972 YAMAHA XS-2 650 TWIN\n \n<6000 Original miles. Always stored inside. 1979 front end with\naftermarket tapered steering head bearings. Racer's supply rear\nbronze swingarm bushings, Tsubaki chain, Pirrhana 1/4 fairing\nwith headlight cutout, one-up Carrera racing seat, superbike bars,\nvelo stacks on twin carbs. Also have original seat. Tank is original\ncherry/white paint with no scratches, dents or dings. Needs a\nnew exhaust as original finally rusted through and was discarded.\nI was in process of making Kenney Roberts TT replica/ cafe racer\nwhen graduate school, marriage, child precluded further effort.\nWife would love me to unload it. It does need re-assembly, but\nI think everything is there. I'll also throw in manuals, receipts,\nand a collection of XS650 Society newsletters and relevant mag\narticles. Great fun, CLASSIC bike with over 2K invested. Will\nconsider reasonable offers.\n___________________________________________________________________________\n \nTimothy J. Shickley, Ph.D.   Director, Neurourology\nDepartments of Urology and Anatomy/Cell Biology\nTemple University School of Medicine\n3400 North Broad St.\nPhiladelphia, PA 19140\n(voice/data) 215-221-8966; (voice) 21-221-4567; (fax) 21-221-4565\nINTERNET: shickley@vm.temple.edu     BITNET: shickley@templevm.bitnet\nICBM: 39 57 08N\n      75 09 51W\n_________________________________________________________________________\n \n \nw\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5616, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: An Anecdote about Islam\nOrganization: Technical University Braunschweig, Germany\nLines: 28\n\nIn article <114127@bu.edu>\njaeger@buphy.bu.edu (Gregg Jaeger) writes:\n \n>>When they are victimized they are Muslims. When they victimize others\n>>they are not True Muslims (tm) or no Muslims at all.\n>\n>>Quite annoying.\n>\n>I don't understand the point of this petty sarcasm. It is a basic\n>principle of Islam that if one is born muslim or one says \"I testify\n>that there is no god but God and Mohammad is a prophet of God\" that,\n>so long as one does not explicitly reject Islam by word then one _must_\n>be considered muslim by all muslims. So the phenomenon you're attempting\n>to make into a general rule or psychology is a direct odds with basic\n>Islamic principles. If you want to attack Islam you could do better than\n>than to argue against something that Islam explicitly contradicts.\n>\n \nIt was no criticism of Islam for a change, it was a criticism of the\narguments used. Namely, whenever people you identify as Muslims are\nthe victims of the attacks of others, they are used an argument for\nthe bad situation of Muslims. But whenever deeds by Muslim that victimize\nothers are named, they do not count as an argument because what these\npeople did was not done as a true Muslims. No mention is made how Muslims\nare the cause of a bad situation of another party.\n \nDouble standards.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5617, "properties": {"category": "rec.sport.baseball", "text": "From: rcasteto@watsol.uwaterloo.ca (Ron Castelletto)\nSubject: Orioles Phillies Red Sox\nKeywords: orioles phillies red sox baltimore philadelphia boston bosox\nOrganization: University of Waterloo\nDistribution: na\nLines: 20\n\n\nCan someone send me ticket ordering information for the\nfollowing teams:  Baltimore, Philadelphia and Boston.\n\nAlso, if you have a home schedule available - can you tell me the dates\nfor all home games between July26-Aug6 and between Aug30-Sept10 and if\nany of these games are promotion nights or special discount nights?\n\nThanks !!!  Ron\n\nPS: and also who the opponents are for these games :-)\n\nDo NOT reply to this account,\nplease reply to:  ronc@vnet.ibm.com\n\n __        _                 IBM Canada Lab Database Technology\n|  \\      / \\                Associate Development Analyst\n|__/ on   |  astelletto      (416) 448-2546 Tie Line: 778-2546\n| \\_      \\_/                Internal Mail: 51/843/895/TOR\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.267+0000", "event": "documents", "entityId": 5618, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gtonwu@Uz.nthu.edu.tw (Tony G. Wu)\nSubject: Need video drivers for Tseng True-color \nOrganization: National Tsing Hua University (HsinChu)\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 18\n\n\nHello.\n\n     I purchased a video card called ET-4000 true color card which\n     can provide about 1700K colors. But the question is I can't find\n     the corresponding drivers for windows 3.1 , I am now using 65k\n     colors driver for win31. It works fine , but I think it will be\n     better if I use 1700k driver. So, please tell me whether such a\n     driver is available !\n\n     Thanks in advance.\n\n\n-- \n===================== ( Forever  23,  Michael Jordan.) =====================\n    Tony G. Wu                                     gtonwu@uz.nthu.edu.tw \n    CAE/Rheology Lab.  NTHU.                       tony@che.nthu.edu.tw\n   \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5619, "properties": {"category": "comp.sys.mac.hardware", "text": "From: chyang@engin.umich.edu (Chung Hsiung Yang)\nSubject: Re: x86 ~= 680x0 ??  (How do they compare?)\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 55\nDistribution: world\nNNTP-Posting-Host: leghorn.engin.umich.edu\n\nIn article <27837.2BD08C3A@zeus.ieee.org> Michael.Ameres@f204.n2603.z1.fidonet.org (Michael Ameres) writes:\n>I believe it goes or will go:\n>680060\n>powerPC\n>Pentium\n>680040\n>486\n>680030\n>386\n>680020\n>286=680000\n>\n\n\n\tI think this kind of comparison is pretty useless in general.  The\nprocessor is only good when a good computer is designed around it adn the\ncomputer is used in its designed purpose.  Comparing processor speed is\npretty dumb because all you have to do is just increase the clock speed\nto increase speed among other things.\n\n\tI mean how can you say a 040 is faster than a 486 without \ngiving is operational conditions?  Can you say the same when \nyou are running a program that uses a lot of transidental functions.\nKnowing that 040 does not have transidental functions building in to \nits FPU and 486 does, can you say that 040 is still faster?\n\n\tAnyway, I hope people do not decided upon wether a computers\nis good or not solely on its processor.  Or how fast a processor is\nbased on its name, because one can alway do a certain things to a\nprocessor to speed it up.  \n\n\tBut if we restrict our arguements to, for example, pure\nprocessor architectural issues.  Or how one processor will work\nwell and another will not based on its design, then we can get\nsomewhere with our discussions.  \n\n- Chung Yang\n\n>In a resent article in one of the macMags I think a 50mHz 030 accelerator was\n> slightly slower than a 25mHz 040 accel. But, this is using a system designed\n> for the 030. So, It stands to reason that a system designed for an 040 ie\n> quadra) would do better. So overall I'd figure 040 = 030 * 2.5 or so.\n>    Along the same lines the new POwerPC stuff is supposed to run the system\n> at the level of a fast quadra, but system 8 or whatever will allow 3 times the\n> speed of a 040 in the powerPC based systems. and wait for the 680060. I think\n> it laps the pentium.\n>\n>pro-life pro-women\n>\n>\n>--  \n>=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n> Michael Ameres - Internet: Michael.Ameres@f204.n2603.z1.fidonet.org\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5620, "properties": {"category": "talk.religion.misc", "text": "From: bskendig@netcom.com (Brian Kendig)\nSubject: Re: Is it good that Jesus died?\nOrganization: Starfleet Headquarters: San Francisco\nLines: 42\n\njburrill@boi.hp.com (Jim Burrill) writes:\n>Brian Kendig (bskendig@netcom.com) wrote:\n>: \n>: Can you please point to something, anything, that proves to me that\n>: the universe cannot possibly be explained without accepting as a fact\n>: the existence of a god in precisely the way your holy book describes?\n>: \n>: Can you please convince me that your religion is more than a very\n>: cleverly-constructed fable, and that it does indeed have some bearing\n>: on my own personal day-to-day life?\n>\n>Would you consider the word of an eye-witness (Peter) to testify to the\n>events surrounding Jesus' life?\n\nNo.  There are two problems here:\n\n(1) Peter died two millenia ago.  The original letters he wrote have\nlong since decayed into dust.  If he were alive today and I could\nquestion him, then this might lend credibility to your claims (but\nprobably not much, because after all, I've heard people claim with all\nsincerity that they've spoken with Elvis recently).  But after his\ndeath, Peter's writings were transcribed by monks for centuries, and I\nfind it hard to believe that one of them somewhere didn't decide to\nchange the wording of something to make it (in his opinion) a little\neasier to understand.\n\n(2) Even if Peter did witness the miracles of Jesus two millenia ago,\nthat doesn't mean that your deity is what the Bible says it is (God\nmight just be Satan, trying to convince everyone that he's a nice\nguy), or even that your deity is still alive and active in the world\ntoday.\n\nNice try, but it just isn't enough to convince me, especially since\nyour wild claims about your deity seem to fly in the face of the way\nI've observed the world to work.  Please find something more compelling.\n\n-- \n_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n_/_/                            n'etre fait comme aucun de ceux qui existent.\n  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n /    is that it ends.                                           -- Rousseau\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5621, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 14\nNNTP-Posting-Host: lloyd.caltech.edu\n\nbobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>To show that the examples I and others\n>have provided are *not* counter examples of your supposed inherent\n>moral hypothesis, you have to successfully argue that\n>domestication removes or alters this morality.\n\nI think that domestication will change behavior to a large degree.\nDomesticated animals exhibit behaviors not found in the wild.  I\ndon't think that they can be viewed as good representatives of the\nwild animal kingdom, since they have been bred for thousands of years\nto produce certain behaviors, etc.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5622, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dbd@icf.hrb.com (Douglas B. Dodson)\nSubject: Windows 3.1 or DOS 5.0 or SMARTDRV or ???\nOrganization: HRB Systems, Inc.\nLines: 59\n\nHello,\n\nI thought this problem might have something to do with Windows 3.1 SMARTDRV and\na VESA video card...any ideas???\n\nI recently purchased a 486DX-33 machine and am having problems where the \nmachine will suddenly freeze or reboot.  This may happen in Windows 3.1 or DOS \n5.0.  Sometimes it is after printing a document, sometimes after using the \nmouse, and sometimes just when I am sitting there.  Twice when it happened, the \nmachine rebooted and sounded seven beeps.  I looked in the documentation and \nthe seven beep code meant a problem with interrupts.  The machine has the \nfollowing configuration and files:\n\n486DX-33\nAMI BIOS\n5.25 and 3.5 floppies\n170 Meg IDE hard drive\n256k cache\nMicrosoft compatible mouse on com1\nCitizen GSX-145 on lpt1\nNI SuperVGA Monitor with VESA Windows Accelerator Card w/ 1Meg\nTwo VESA slots\nWindows 3.1\nDOS 5.0\n\nCONFIG.SYS\n==========\nDEVICE=C:\\WINDOWS\\HIMEM.SYS\nDOS=HIGH\nDEVICEHIGH=C:\\DOS\\SETVER.EXE\nFILES=20\nBUFFERS=20\nSTACKS=9,128\n\nAUTOEXEC.BAT\n============\n@ECHO OFF\nLH C:\\WINDOWS\\SMARTDRV.EXE 1024\nPROMPT $p$g\nPATH C:\\DOS;C:\\WINDOWS;C:\\MOUSE\nLH C:\\MOUSE\\MOUSE\nSET TEMP=C:\\DOS\nLH C:\\DOS\\DOSKEY \n\n\nWhen the machine freezes, I can't use the mouse or keyboard or use Ctrl-Alt-Del \nto reboot.  If any one can give me any help, I would greatly appreciate it.  If \nanyone can help configure this machine for the best efficiency (memory wise) I \nwould appreciate that also.\n-- \nDouglas B. Dodson\t\t \tInternet:\tDBD@ICF.HRB.COM\nHRB Systems, Inc.\t\t\t\nState College, PA  USA\t\t\t\n16804\n\nDisclaimer!\n===========\nAny ideas or opinions expressed here do not necessarily reflect the ideas or \nopinions of HRB.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5623, "properties": {"category": "rec.sport.baseball", "text": "From: st1ge@Jane.UH.EDU (Edward Hui)\nSubject: Re: Bonds vs. Maddux\nOrganization: University of Houston\nLines: 55\nReply-To: st1ge@Jane.UH.EDU\nNNTP-Posting-Host: jane.uh.edu\n\nIn article <C5L99L.HFz@cup.hp.com>, loos@cup.hp.com (Joe Loos) writes:\n>I've been following the Giants closely over the off-season -- newspapers,\n>notesgroup, etc -- but I had my first up close and personal last night at\n>the Stick.\n>\n>After watching Giants hitters struggle last year, Barry's swing was \n>very impressive -- he's very quick and his swing seems effortless, even\n>compared to Clark (particularly Clark as of late).\n>\n>It was interesting to see Bonds hit Maddux so well.  I'm not sure if\n>Barry was after revenge against the Braves or what but he stroked\n>three very pretty hits (1b, 2b, hr) for 5 rbi's.\n\n     The Giants always hit Maddux well, but it was interesting that Maddux\ndid not pitch around Bonds to get to Clayton last night.  He threw 2 straight\nfastballs over the plate to Bonds in the 1st last night, got away with the\nfirst one, but Bonds hit the second one out of the park.  Then in the 3rd,\nwhen Clark was at third base with one out, Maddux did not intentionally\nwalk Bonds, and Bonds dropped a single to left-center.\n\n>\n>The Giants as a team are doing a lot of surprising things this year in\n>addition to Bonds.  There has been some good pitching and some hitters\n>seem to be swinging much better.  Clayton's defense has been superb.\n>McGee seems to like leading off this year.  Manwaring is driving the ball.\n>So on & so forth.\n>\n     The Braves announcers pointed out that McGee as a leadoff hitter has\nnot scored a run yet.  He will always hit around .300, but I'm concerning\nabout his on-base percentage.  The key in the lineup is Matt Williams, he\nhas to stay hot so that Bonds can hit with runners on base.\n\n\n>I hope it continues...I think they need to continue well into June before\n>people are really sold that they are for real--particularly the pitching.\n\n     The pitching gets a set back as Bud Black is placed on the DL.  Burba\nhas done a superb job filling in so far, he looks like a different pitcher\nfrom last year.  However, Swift is terrible in both of his starts.  With\nBurba moving into the rotation, Mike Jackson is the only right-handed\nreliever aside from Rod Beck, he'll get a lot of actions.  I also hope that\nDusty can manage his bullpen better than Roger Craig, especially on Beck.\nI was concerned when Beck was used for 3 straight days earlier this week.\n\n\n>For myself, I think the fresh start of Magowan/Baker/etc has really wiped\n>out a lot of negatives from the last few years and will be a real factor\n>in helping them significantly improve over last year.\n\n     So far so good!\n\n\nEdward Hui\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5624, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: My Gun is like my American Express Card\nOrganization: California Institute of Technology, Pasadena\nLines: 34\nNNTP-Posting-Host: sandman.caltech.edu\n\nHADCRJAM@admin.uh.edu (MILLER, JIMMY A.) writes:\n\n>In <1r3efjINN3jj@gap.caltech.edu> arc@cco.caltech.edu writes:\n\n>> Thomas Parsli <thomasp@ifi.uio.no> writes:\n>> >I also believe Texas has some of the most liberal 'gun-laws' in USA......\n>> \n>> In Texas, you cannot carry a handgun.  Period.  Either concealed or open.\n\n>  Currently, there is a bill before the Texas legislature that would make it\n>legal for some ordinary folks to carry concealed weapons.  I don't have the\n>details, sorry.\n\n>semper fi,\n\n>Jammer Jim Miller \n>Texas A&M University '89 and '91\n>________________________________________________________________________________\n> I don't speak for UH, which is too bad, because they could use the help.     \n>\"Become one with the Student Billing System. *BE* the Student Billing System.\"\n> \"Power finds its way to those who take a stand.  Stand up, Ordinary Man.\"    \n>      ---Rik Emmet, Gil Moore, Mike Levine: Triumph \t\t              \n\nIf I recall correctly, the bill would provide for concealed carry if\nthe person takes a 15-hr DPS safety course in firearms and pays a $150\nfee for the license.  The bill is apparently veto-proof in the House,\nbut LtGov Bullock has said it will never come to the floor of the\nSenate and Dreamboat Annie has vowed to veto it if it comes to her\ndesk.  *shrug*\n\naaron\narc@cco.caltech.edu\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5625, "properties": {"category": "alt.atheism", "text": " howland.reston.ans.net!europa.eng.gtefsd.com!uunet!mcsun!Germany.EU.net!news.dfn.de!tubsibr!dbstu1.rz.tu-bs.de!I3150101\nSubject: Re: Gospel Dating\nFrom: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nOrganization: Technical University Braunschweig, Germany\nLines: 35\n\nIn article <66015@mimsy.umd.edu>\nmangoe@cs.umd.edu (Charley Wingate) writes:\n \n(Deletion)\n>I cannot see any evidence for the V. B. which the cynics in this group would\n>ever accept.  As for the second, it is the foundation of the religion.\n>Anyone who claims to have seen the risen Jesus (back in the 40 day period)\n>is a believer, and therefore is discounted by those in this group; since\n>these are all ancients anyway, one again to choose to dismiss the whole\n>thing.  The third is as much a metaphysical relationship as anything else--\n>even those who agree to it have argued at length over what it *means*, so\n>again I don't see how evidence is possible.\n>\n \nNo cookies, Charlie. The claims that Jesus have been seen are discredited\nas extraordinary claims that don't match their evidence. In this case, it\nis for one that the gospels cannot even agree if it was Jesus who has been\nseen. Further, there are zillions of other spook stories, and one would\nhardly consider others even in a religious context to be some evidence of\na resurrection.\n \nThere have been more elaborate arguments made, but it looks as if they have\nnot passed your post filtering.\n \n \n>I thus interpret the \"extraordinary claims\" claim as a statement that the\n>speaker will not accept *any* evidence on the matter.\n \nIt is no evidence in the strict meaning. If there was actual evidence it would\nprobably be part of it, but the says nothing about the claims.\n \n \nCharlie, I have seen Invisible Pink Unicorns!\nBy your standards we have evidence for IPUs now.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5626, "properties": {"category": "rec.motorcycles", "text": "From: Dave Dal Farra <gpz750@bnr.ca>\nSubject: Re: CB750 C with flames out the exhaust!!!!---->>>\nX-Xxdate: Tue, 20 Apr 93 14:15:17 GMT\nNntp-Posting-Host: bcarm41a\nOrganization: BNR Ltd.\nX-Useragent: Nuntius v1.1.1d9\nLines: 49\n\n\nIn article <1993Apr20.045032.9199@research.nj.nec.com> Chris BeHanna,\nbehanna@syl.nj.nec.com writes:\n>In article <1993Apr19.204159.17534@bnr.ca> Dave Dal Farra <gpz750@bnr.ca>\nwrites:\n>>Reminds me of a great editorial by Bruce Reeve a couple months ago\n>>in Cycle Canada.\n>>\n>>He was so pissed off with cops pulling over speeders in dangerous\n>>spots (and often blind corners) that one day he decided to get\n>>revenge.\n>>\n>>Cruising on a factory loaner ZZR1100 test bike, he noticed a cop \n>>had pulled over a motorist on an on or off ramp with almost no\n>>shoulder.  Being a bright lad, he hit his bike's kill switch\n>>just before passing the cop, who happened to be bending towards\n>>the offending motorist there-by exposing his glutes to the\n>>passing world.\n>>\n>>With his ignition system now dead, he pumped his throtle two\n>>or three times to fill his exhaust canister's with volatile raw fuel.\n>>\n>>All it took was a stab at the kill switch to re-light the ignition\n>>and send a 10' flame in Sargeant Swell's direction.\n>>\n>>I wonder if any cycle cops read Cycle Canada?\n>\n>\tAlthough I agree with the spirit of the action, I do hope that\n>the rider ponied up the $800 or so it takes to replace the exhaust system\n>he just destroyed.  The owner's manual explicitly warns against such\n>behavior for exactly that reason:  you can destroy your muflers that way.\n>\n>Later,\n>-- \n>Chris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\n>behanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\n>Disclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\n>agree with any of this anyway?    I was raised by a pack of wild corn dogs.\n\nYa, Fat Chance.  The \"offending\" rider was a moto journalist.  Those\nguys can sell hundreds of bikes with one stroke of the pen and\nas such get away with murder when it comes to test bikes.\n\nOne way or the other, it was probably worth the early expiration of \none mufler to see a bone head get his butt baked.\n\nDave D.F.\n\"It's true they say that money talks.  When mine spoke it said\n'Buy me a Drink!'.\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5627, "properties": {"category": "rec.sport.hockey", "text": "From: willis@oracle.SCG.HAC.COM (Stan Willis)\nSubject: 1992-93 NHL Regular Season Final Attendance Report\nReply-To: willis@empire.dnet.hac.com (Stan Willis)\nOrganization: none\nLines: 40\n\n\n                        *** NATIONAL HOCKEY LEAGUE ***\n                                 92-93 SEASON\n\n                            HOME ATTENDANCE REPORT\n\n Each Qtr. represents 10 home games,   Qtr. 4 will have 11 home games.\n Neutral site games are not included.  S/O indicates the number of sell-outs.\n\nTeam\nName   Qtr. 1   S/O  Qtr. 2   S/O  Qtr. 3   S/O  Qtr. 4   S/O   Totals   Average\n================================================================================\nBOS    140,573   5   142,694   7   142,768   6   152,468   8    578,503   14,109\nBUF    144,701   0   148,516   3   152,133   5   168,878   4    614,228   14,981\nCAL    190,125   1   196,174   3   196,982   4   217,346   5    800,627   19,527\nCHI    176,372  10   176,746   9   177,981  10   196,749  11    727,848   17,752\nDET    196,330  10   196,670  10   197,228  10   217,167  10    807,395   19,692\nEDM    139,038   0   149,422   2   152,831   2   165,384   2    606,675   14,796\nHAR     92,994   0   110,670   2   108,651   0   122,123   0    434,438   10,596\nLA     154,065   5   159,014   8   160,050  10   176,055  11    649,184   15,833\nMIN    130,710   2   140,933   3   139,986   1   160,213   4    571,842   13,947\nMON    168,097   8   169,671  10   168,784  10   190,186  11    696,738   16,993\nNJ     127,053   0   124,011   2   145,856   2   163,050   1    559,970   13,657\nNYI    114,706   1   108,502   1   123,167   3   139,946   0    486,321   11,861\nNYR    178,200   7   179,990   6   182,000  10   199,337   8    739,527   18,037\nOTT    104,713  10   105,000  10   104,602  10   115,330  11    429,645   10,479\nPHI    172,372   4   172,967   3   172,613   2   190,520   5    708,472   17,279\nPIT    160,379   6   161,475   8   161,280   6   177,705  10    660,839   16,118\nQUE    149,452   3   147,911   3   147,394   2   168,830   8    613,587   14,965\nSJ     110,890  10   110,374   8   110,120   7   121,745  10    453,129   11,051\nSTL    156,313   3   170,531   5   171,249   5   187,849   7    685,942   16,730\nTB      97,269   5    99,621   6    99,611   4   114,059   9    410,560   10,013\nTOR    155,500   4   157,779   9   157,014   8   172,888  11    643,181   15,687\nVAN    144,120   0   154,184   4   157,094   6   176,751   8    632,149   15,418\nWAS    153,209   0   163,563   1   161,479   2   171,711   2    649,962   15,852\nWIN    131,072   0   135,902   1   133,414   1   154,956   2    555,344   13,544\n \n     3,488,253     3,582,320     3,624,287     4,021,246     14,716,106\n \nAvg.    14,534        14,926        15,101        15,231                  14,955\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5628, "properties": {"category": "comp.windows.x", "text": "From: queloz@bernina.ethz.ch (Ronald Queloz)\nSubject: Store/Post events\nOrganization: Swiss Federal Institute of Technology (ETH), Zurich, CH\nLines: 31\n\n\nstore and reply of mouse and keyboard events\n--------------------------------------------\n\nTo produce regression tests or automatic demo's\nwe would like to store all mouse and keyboard events\nproduced by a user. It should be possible to filter\nthe mouse and keyboard events from the server's queue\nan to store them in a file.\nThis sequence of events, stored in a file, should be given \nto the server's queue as if a user is working.\n\n\n1. Exists a tool that is capable to save and reply all\n   mouse and keyboard events (where)?\n\n2. Where one can catch these events to store them ?\n   In our case the server's queue is on a X Terminal (HP).\n   Where can we catch all events coming from a given\n   server.\n   If this is not possible, can we catch all events given\n   to a certain client and how ?\n   \n3. Where one can send a stored sequence of events to simulate a user ?\n   Is there a central dispatcher on the clients machine who manages\n   all incoming events from a given server and how can we reach it ?\n\n\nThanks in advance\n\nRon.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5629, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 76\nNNTP-Posting-Host: lloyd.caltech.edu\n\nkcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n\n>>>How many contridictions do you want to see?\n>>Good question. If I claim something is a general trend, then to disprove this,\n>>I guess you'd have to show that it was not a general trend.\n>No, if you're going to claim something, then it is up to you to prove it.\n>Think \"Cold Fusion\".\n\nWell, I've provided examples to show that the trend was general, and you\n(or others) have provided some counterexamples, mostly ones surrounding\nmating practices, etc.  I don't think that these few cases are enough to\ndisprove the general trend of natural morality.  And, again, the mating\npractices need to be reexamined...\n\n>>Try to find \"immoral\" non-mating-related activities.\n>So you're excluding mating-related-activities from your \"natural morality\"?\n\nNo, but mating practices are a special case.  I'll have to think about it\nsome more.\n\n>>Yes, I think that the natural system can be objectively deduced with the\n>>goal of species propogation in mind.  But, I am not equating the two\n>>as you so think.  That is, an objective system isn't necessarily the\n>>natural one.\n>Are you or are you not the man who wrote:\n>\"A natural moral system is the objective moral system that most animals\n> follow\".\n\nIndeed.  But, while the natural system is objective, all objective systems\nare not the natural one.  So, the terms can not be equated.  The natural\nsystem is a subset of the objective ones.\n\n>Now, since homosexuality has been observed in most animals (including\n>birds and dolphins), are you going to claim that \"most animals\" have\n>the capacity of being immoral?\n\nI don't claim that homosexuality is immoral.  It isn't harmful, although\nit isn't helpful either (to the mating process).  And, when you say that\nhomosexuality is observed in the animal kingdom, don't you mean \"bisexuality?\"\n\n>>>>Because we can't determine to what end we should be \"moral.\"\n>Are you claiming to be a group?  \"We\" usually implies more than one entity.\n\nThis is standard jargon.  Read any textbook.  The \"we\" forms are used\nthroughout.\n\n>>Well, I'm saying that these goals are not inherent.  That is why they must\n>>be postulates, because there is not really a way to determine them\n>>otherwise (although it could be argued that they arise from the natural\n>>goal--but they are somewhat removed).\n>Postulate: To assume; posit.\n\nThat's right.  The goals themselves aren't inherent.\n\n>I can create a theory with a postulate that the Sun revolves around the\n>Earth, that the moon is actually made of green cheese, and the stars are\n>the portions of Angels that intrudes into three-dimensional reality.\n\nYou could, but such would contradict observations.\n\n>I can build a mathematical proof with a postulate that given the length\n>of one side of a triangle, the length of a second side of the triangle, and\n>the degree of angle connecting them, I can determine the length of the\n>third side.\n\nBut a postulate is something that is generally (or always) found to be\ntrue.  I don't think your postulate would be valid.\n\n>Guess which one people are going to be more receptive to.  In order to assume\n>something about your system, you have to be able to show that your postulates\n>work.\n\nYes, and I think the goals of survival and happiness *do* work.  You think\nthey don't?  Or are they not good goals?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5630, "properties": {"category": "soc.religion.christian", "text": "From: REXLEX@fnal.fnal.gov\nSubject: Re: Hell_2:  Black Sabbath\nOrganization: FNAL/AD/Net\nLines: 20\n\nIn article <Apr.21.03.25.03.1993.1292@geneva.rutgers.edu>\nsalaris@niblick.ecn.purdue.edu (Rrrrrrrrrrrrrrrabbits) writes:\n\n>I like those lyrics,\n>since whenever I am approached by judgemental, pharisitical,\n>evangelical fundamentalists who throw the Bible at me because\n>I have long hair, wear a black leather jacket, and listen to Black\n>Sabbath, I have something to throw back....\n\n>It just goes to show that there are more important evils in the\n>world to battle than rock lyrics...........\n\n\nIt just goes to show that not all evangelical fundamentalists are pharisitical!\nI wear a black leather jacket, like classic rock, but no longer have the long\nlocks I once had.  However,  I too rely upon the Bible as a basis for Christian\nethics.\n\na fundamentalistic evangelical,\n--Rex \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5631, "properties": {"category": "talk.politics.mideast", "text": "From: albert@olizei.aiva.lt (Albert Meltser)\nSubject: Re: How many israeli soldiers... What are you ``joking'' dark so much for?\nDistribution: world\nOrganization: Lithuanian-Israeli Joint Stock Company OLIZEI\nReply-To: albert@olizei.aiva.lt\nKeywords: Ani ohev et kolkhem  -- 'Uhibbu kullukum -- I love you all\nLines: 32\n\n>   Q: How many occupying israeli soldiers (terrorists) does it\n>      take to kill a 5 year old native child?\n>\n>   A: Four\n>\n>   Two fasten his arms, one shoots in the face,\n>   and one writes up a false report.\n>\n>   --\n>                     /       ..                          /  .\n>                   /_______/_/__________/_/_/      _<  /____/\n>            /___ /       ..                     /____/\n>\n\n1. There is a similar idea here in ex-USSR about how many militioners it needs\n   to place a new electric lamp. The answer is nine: one stays on a table and\n   holds the lamp, four hold the table and turn it and yet four run around the\n   table in opposite direction not to make the first feel bad (when being\n   turned). Pitily, it lacks this kind of dark humour as Nick's msg does.\n2. To my mind the signature should be smth like:\n\n                  /       _                     __        /  .\n                /_______/_/_______________    /________ /____/\n         /___ /      _                  /\n\n                                          Albert\n\n-- \n                                        _   ..   I   _      ..        II\n                                ___I__/__)____I__I__(_)  I____I ___I__II\n                              __)    '                        __) .\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5632, "properties": {"category": "rec.sport.hockey", "text": "From: kfrank@magnus.acs.ohio-state.edu (Kevin D Frank)\nSubject: NHL Team Items...\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 17\n\nI live in the desolate MidWest (as far as hockey is concerned) and our \"sports\"\nstores around here carry VERY LITTLE hockey stuff, except for San Jose, Tampa\nBay, L.A., Pittsburgh, and if you're lucky Chicago.\n\nI would like to know if anyone knows of any m,ail order, phone order stores that\nI might be able to get in contact with.  I am dying for some real hockey stuff\n(hats, shirts, key chains, etc.) for some other teams (Edmonton, Montreal, etc.)\nso if you have any information, PLEASE e-mail me DIRECTLY.  Most appreciated!\n\nGood luck to your teams in the Stanley Cup playoffs!\n\nGO EDMONTON (likely...NOT!!)  Maybe next year...\n-- \n\t\"If you assult someone you get 5 years--In hockey, 5 minutes.\n\t\t\tIs this a great sport or what?!\"\n\nKevin D. Frank\t\t\t\t\tkfrank@magnus.acs.ohio-state.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5633, "properties": {"category": "rec.sport.baseball", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: The 1964 Phillies: deja vu?\nKeywords: Phillies\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 112\n\nPreviously I wrote:\n\n>Yeah, the Phillies played over their heads almost the whole year,\n>but it all caught up to them in one 10-game streak. I *am* as old as\n>1964 (man!) and I was a big Phillies fan at the time (age 13).\n>September '64 is still a painful thing to remember. But I can tell you\n>that the Phillies never led the league by 15 that year. Going by memory\n>alone, I believe their biggest lead was 7 1/2 games, and they were\n>6 1/2 ahead when the famous 10-game losing streak began, a streak\n>during which it seemed that they found just about every way to lose\n>known to man. Anyway, I think they rebounded just before the end and\n>won their last couple games and were still in the thing until the\n>final day, but finished tied with the Giants one game out. And didn't\n>the Dodgers or somebody else finish two games back? That has to be\n>one of the closest last minute scrambles ever.\n\nOK, you guys stirred up my childhood memories, so I went and did\nsome research on the final month or so of the 1964 season. It turns\nout that my recollections were pretty darn accurate, at least as\nfar as the Phillies record goes. On September 1 1964 this was the\ntop of the N.L. standings:\n\n                 W     L    GB\nPhiladelphia    79    51    -\nCincinnati      74    57    5 1/2\nSt. Louis       72    59    7 1/2\nSan Francisco   73    60    7 1/2\n\nThis is a game-by-game description of the remainder of the Phillies'\nseason:\n\nDate  Score Opponent        Lead      Pitcher (starting and winner/loser)\n9/1   4-3   Houston         5 1/2     Bunning (15-4)\n9/2   2-1   Houston         5 1/2     Short (15-7)\n9/3   0-6   Houston         5 1/2     Bennett (9-12)\n9/4   5-3   San Francisco   6 1/2     Mahaffey; Baldschun (6-5)\n9/5   ??Win San Francisco   6 1/2     Bunning (16-4)\n9/6   3-4   San Francisco   5 1/2     Short; Baldschun (6-6)\n9/7   5-1   Los Angeles               Bennett (10-12)\n      1-3   Los Angeles     6 1/2     Wise (5-3)\n9/8   2-3   Los Angeles     6         Mahaffey (12-7)\n9/9 5-10/11 St. Louis       5         Bunning; Baldschun (6-7)\n            (Cardinals take over 2nd place from Cincinnati)\n9/10  5-1   St. Louis       6         Short (16-7)\n9/11  1-0   San Francisco   6         Bennett (11-12)\n9/12  1-9   San Francisco   6         Mahaffey (12-8)\n            (Giants move into a tie for 2nd with St. Louis)\n9/13 4-1/10 San Francisco   6         Bunning (17-4)\n            (Cardinals back in sole possesion of 2nd place)\n9/14  4-1   Houston         6 1/2     Short (17-7)\n9/15  1-0   Houston         6         Bennett (12-12)\n9/16  5-6   Houston         6         Bunning (17-5)\n9/17  4-3   Los Angeles     6 1/2     Wise; Schantz (2-4)\n9/18  3-4   Los Angeles     6         Short; Baldschun (6-8)\n9/19 3-4/16 Los Angeles     5 1/2     Bennett; Baldschun (6-9)\n9/20  3-2   Los Angeles     6 1/2     Bunning (18-5)\n            (Reds move back into tie for 2nd with Cardinals)\n\nWell so far so good for the Phillies. But now it all falls apart ...\n\n9/21  0-1   Cincinnati      5 1/2     Mahaffey (12-9)\n            (Reds take sole possesion of 2nd place)\n9/22  2-9   Cincinnati      4 1/2     Short (17-8)\n9/23  4-6   Cincinnati      3 1/2     Bennett (12-13)\n9/24  3-5   Milwaukee       3         Bunning (18-6)\n9/25 5-7/12 Milwaukee       1 1/2     Short; Boozer (3-4)\n            (Cards now 2 1/2 back in 3rd, Giants 3 1/2 in 4th)\n9/26  4-6   Milwaukee         1/2     Mahaffey; Schantz (2-5)\n9/27  8-14  Milwaukee      -1         Bunning (18-7)\n            (Phils lose 7 1/2 games in 7 days; Reds take over 1st,\n             Cardinals 1 1/2 back in 3rd)\n9/28  1-5   St. Louis      -1 1/2     Short(17-9)\n            (Cardinals take over 2nd place, Phils drop to 3rd)\n9/29  2-4   St. Louis      -1 1/2     Bennett (12-14)\n            (Reds and Cardinals now tied for 1st)\n9/30  5-8   St. Louis      -2 1/2     Bunning (18-8)\n            (Cardinals take 1/2 game lead over Reds)\n10/1  4-3   Cincinnati     -1 1/2     Short; Roebuck (5-3)\n            (Phillies halt 10-game losing streak; Cards lead Reds by 1/2 game)\n10/2  Did not play; Cards lose to Mets, Reds tied for 1st, Phils 1 game back\n10/3  10-0  Cincinnati     -1         Bunning (19-8)\n            (Cards beat Mets, take first by 1 from Reds and Phillies)\n\nWhew! what a finish! And the final standings were:\n\n                 W     L    GB\nSt. Louis       93    69    -\nPhiladelphia    92    70    1\nCincinnati      92    70    1\nSan Francisco   90    72    3\n\nNow it doesn't appear to me that Phillies pitchers Bunning and Short\nwere really overused, at least by the four-man rotation standard of\nthe day, until well along into the 10-game losing streak, at which\ntime Mauch was probably desperate for a win at any cost because the\nPhillies substantial lead had evaporated. The way they were used at\nthat time may have made the problem worse, although Bunning had one\nof his sharpest games of the year in the final day 10-0 shutout of\nthe Reds that cost the Reds a share of the pennant. Bunning pitched\na complete game six-hitter, striking out five and walking one. It\nwould be inetersting to see, though, how the total innings for the\nyear for Bunning and Short stacks up against the rest of the league.\nAlso notice that the Phillies played every day from at least September 1\nthrough October 1; while they didn't play substantially more games than\nthe other teams, the other teams each had a couple days off during that\nstretch.\n\n-----\nEric Smith\nerics@netcom.com\nerics@infoserv.com\nCI$: 70262,3610\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5634, "properties": {"category": "talk.politics.mideast", "text": "From: waldo@cybernet.cse.fau.edu (Todd J. Dicker)\nSubject: Re: Israel's Expansion II\nOrganization: Cybernet BBS, Boca Raton, Florida\nLines: 21\n\nab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n> First of all I never said the Holocaust. I said before the\n> Holocaust. I'm not ignorant of the Holocaust and know more\n> about Nazi Germany than most people (maybe including you). \n\nUh Oh!  The first sign of an argument without merit--the stating of one's \n\"qualifications\" in an area.  If you know something about Nazi Germany, \nshow it.  If you don't, shut up.  Simple as that.\n\n> \tI don't think the suffering of some Jews during WWII\n> justifies the crimes commited by the Israeli government. Any\n> attempt to call Civil liberterians like myself anti-semetic is\n> not appreciated.\n\nALL Jews suffered during WWII, not just our beloved who perished or were \ntortured.  We ALL suffered.  Second, the name-calling was directed against\nYOU, not civil-libertarians in general.  Your name-dropping of a fancy\nsounding political term is yet another attempt to \"cite qualifications\" \nin order to obfuscate your glaring unpreparedness for this argument.  Go \nback to the minors, junior.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5635, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: Countersteering_FAQ please post\nOrganization: Ontario Hydro - Research Division\nLines: 18\n\nIn article <ls1v14INNjml@earth.cs.utexas.edu> mcguire@cs.utexas.edu (Tommy Marcus McGuire) writes:\n>\n>Obcountersteer:  For some reason, I've discovered that pulling on the\n>wrong side of the handlebars (rather than pushing on the other wrong\n>side, if you get my meaning) provides a feeling of greater control.  For\n>example, rather than pushing on the right side to lean right to turn \n>right (Hi, Lonny!), pulling on the left side at least until I get leaned\n>over to the right feels more secure and less counter-intuitive.  Maybe\n>I need psychological help.\n\nI told a newbie friend of mine, who was having trouble from the complicated\nexplanations of his rider course, to think of using the handlebars to lean,\nnot to turn. Push the right handlebar \"down\" (or pull left up or whatever)\nto lean right. It worked for him, he stopped steering with his tuchus.\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5636, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: re: Pantheism and Environmentalism\nOrganization: Kulikauskas home\nLines: 31\n\nKEVXU@cunyvm.bitnet writes:\n\n[deleted]\n> first paragraph and the mention of pantheism.  Is pantheism \"perverted\"\n> and \"dangerous\", or just not one's cup of tea?  None of this is clear.\n\nI can't speak for Mr. Cavano, but I understood his comment to refer to \nthe idea that unrecognized pantheism is dangerous to Christians.  If we \nunthinkingly adopt pantheistic ideas that are opposed to Christianity, \nwe can pervert our faith.  When we clearly recognize pantheism when we \nencounter it we have the opportunity to embrace what is consistent with \nChristianity and reject what isn't.    \n\nWe need to be alert, always thinking and questioning.  We must examine \nthe underlying assumptions of every book we read, tv program we watch \nand socio-political movement we participate in.  Ideas are important.  \nPhilosophies and doctrines are what give form to the events of our \nlives.  They are the basis from which we live our lives of love and \nservice.  The command to love God with all one's mind means no fuzzy-\nheaded drifting from idea to idea. \n\n> and that consumerism and our rapacious style of living\n> are so rarely called by their appropriate name: Greed.\n\nOne Christian who acknowledges this is the Pope.  It is a frequent theme \nin his writings.  Indeed, thoughtful Christians from most traditions \nrecognize that consumerism has no place in the lives of Christians.  It \ntoo is a perversion and dangerous to our faith.  Thank you, Jack, for \npointing out the parallel. \n\nJayne Kulikauskas/ jayne@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5637, "properties": {"category": "rec.motorcycles", "text": "From: gunning@cco.caltech.edu (Kevin J. Gunning)\nSubject: stolen CBR900RR\nOrganization: California Institute of Technology, Pasadena\nLines: 12\nDistribution: usa\nNNTP-Posting-Host: alumni.caltech.edu\nSummary: see above\n\nStolen from Pasadena between 4:30 and 6:30 pm on 4/15.\n\nBlue and white Honda CBR900RR california plate KG CBR.   Serial number\nJH2SC281XPM100187, engine number 2101240.\n\nNo turn signals or mirrors, lights taped over for track riders session\nat Willow Springs tomorrow.  Guess I'll miss it.  :-(((\n\nHelp me find my baby!!!\n\nkjg\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5638, "properties": {"category": "soc.religion.christian", "text": "From: tsmith@cs.stanford.edu (Todd Michael Smith)\nSubject: God-shaped hole (was Re: \"Accepting Jeesus in your heart...\")\nOrganization: Computer Science Department, Stanford University.\nLines: 16\n\nIn article <Apr.14.03.07.38.1993.5420@athos.rutgers.edu>, johnsd2@rpi.edu (Dan Johnson) writes:\n\n|> >Those who have an empty spot in the God-shaped hole in their hearts must \n|> >do something to ease the pain.\n|> \n|> I have heard this claim quite a few times. Does anybody here know\n|> who first came up with the \"God-shaped hole\" business?\n|> \n\nWas it Pascal, or maybe Descartes, who first used this figure of speech? \nI seem to have some vague recollections from reading some of their essays,\nbut I certainly couldn't say it was one of them for sure.\n\n----\nTodd Smith\ntsmith@cs.stanford.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5639, "properties": {"category": "rec.autos", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: Dumbest Driver Action\nOrganization: Corporation for Open Systems\nDistribution: usa \nLines: 41\n\nIn <C5Dq2n.5uB@news.cso.uiuc.edu> mwbg9715@uxa.cso.uiuc.edu (Mark Wayne Blunier) writes:\n\n>jimf@centerline.com (Jim Frost) writes:\n\n>>I wish I had the figures with me to back me up, but I recall\n>>statistics showing that women tended to have more accidents than men\n>>but the damage was generally quite minor.  Men had fewer but far more\n>>expensive accidents.  The rate of total vehicle destruction was\n>>*significantly* higher for men than women, particularly in the younger\n>>male age groups.\n\n>>IMHO social considerations are probably the strongest influence here,\n>>possibly more so than any difference between the sexes.  Social\n>>influences often affect the type of car that's bought and the\n>>situations the car is used in, and the type of car and driving\n>>situations have a major effect on accident risk.  Thus if society\n>>expects you to buy a Mustang and race it on the street you're more\n>>likely to do it, and our society expects that of males more than\n>>females.\n\n>I agree with some of your social influences, such as driving conditions,\n>but lets get real here.  Guys don't drag race becuase there expected too,\n>we do it becuase its fun!  (and we find out whose car is faster).  \n>Guys drive different than women becuase there men.  When a driver is  \n>driving 'unusually', I can usually figure out if it is a male or female\n>driver without looking at the driver.\n>Social influences may give a person more reason to buy a vehicle that\n>has a certain amount of character which he or she would like associated\n>with.  Do you change your driving habits when no one is around?\n\nSheesh! I don't know what kind of women they have where you guys live,\nbut there are some ladies here who will blow your doors off. Or at least\nthey will try to, but we just can't let the youngsters get too uppity\nwith us old folks :-).\n>>My $.02.\n>Mark B.\n\n>>jim frost\n>>jimf@centerline.com\n Bob\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.268+0000", "event": "documents", "entityId": 5640, "properties": {"category": "sci.med", "text": "From: andrew@calvin.dgbt.doc.ca (Andrew Patrick)\nSubject: Any Interest in a Mailing List on Epilepsy and Seizures?\nNntp-Posting-Host: calvin.dgbt.doc.ca\nOrganization: Communications Research Centre, Ottawa, Canada\nLines: 36\n\n\nI have seen a fair bit of traffic recently concerning Epilepsy and\nseizures.  I am also interested in this subject -- I have a son with\nEpilepsy and I am very active with the local association.  I posted a\nmessage like this a few months ago and received no replies, but here it\nis again.\n\nIs anyone interested in participating in a mailing list on Epilepsy and\nseizures?  This would allow us to hold discussions and share\ninformation via electronic mail.  I already run a Listserver for two\nother groups, so the mechanics would be easy.\n\nIf you are interested, mail me a note.  If I get enough replies, I will\nmake it happen and provide you with the details.\n\nBTW, I have also started a database on Epilepsy.  This is part of my\nresearch on natural language question answering systems.  Users of this\nservice are able to ask questions about Epilepsy and the program\nsearches the database and retrieves its best response.  The technology\nworks by comparing your question against a set of questions that have\nbeen seen before.  All new questions that are not answered are recorded\nand used to improve the system.\n\nThis database is still small and sparse, but we are adding new\ninformation.  To try it out, do the following\n\n\ttelnet debra.dgbt.doc.ca\n\tlogin: chat\n\n\tThen select the Epilepsy item from the menu of databases.\n\n-- \nAndrew Patrick, Ph.D.       Communications Research Centre, Ottawa, CANADA\n                       andrew@calvin.dgbt.doc.CA\n                       \n  For a good time, run \"telnet debra.dgbt.doc.ca\" and login as \"chat\".\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5641, "properties": {"category": "misc.forsale", "text": "From: crane@coral.bucknell.edu (Curt Crane)\nSubject: Raichle ski boots for sale, size 11-11.5\nOrganization: Bucknell University, Lewisburg, PA, USA\nLines: 11\nDistribution: world\nNNTP-Posting-Host: coral.bucknell.edu\n\n\nI also have a pair of size 11-11.5 Raichle Flexon Comps.\nThese boots are black and yellow.  they are in good condition.\nI would like around $100 for them also but feel\nfree to make an offer.\n\nPlease reply to:  crane@coral.bucknell.edu\n\nThanks,\n\nCurt\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5642, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Update (Help!) [was \"What is This [Is it Lyme's?]\"]\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 30\n\nIn article <1993Apr7.221357.12533@lamont.ldgo.columbia.edu> brenner@ldgo.columbia.edu (carl brenner) writes:\n>> see the ulterior motive here.  It is easy for me to see it the\n>> those physicians who call everything lyme and treat everything.\n>> There is a lot of money involved.\n>\n>\tYou keep bringing this up. But I don't understand what's in it\n>financially for the physician to go ahead and treat. Unless the physician\n>has an investment in (or is involved in some kickback scheme with) the\n>home infusion company, where is the financial gain for the doctor?\n\nWell, let me put it this way, based on my own experience.  A\ngeneral practitioner with no training in infectious diseases,\nby establishing links to the \"Lyme community\", treating patients\nwho come to him wondering about lyme or having decided they\nhave lyme as if they did, saying that diseases such as MS\nare probably spirochetal, if not Lyme, giving talks at meetings\nof users groups, validating the feelings of even delusional\npatients, etc.  This GP can go from being a run-of-the-mill\n$100K/yr GP to someone with lots of patients in the hospital\nand getting expensive infusions that need monitoring in his\noffice, and making lots of bread.  Also getting the adulation\nof many who believe his is their only hope (if not of cure,\nthen of control) and seeing his name in publications put out\nby support groups, etc.  This is a definite temptation.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5643, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mau@herky.cs.uiowa.edu (Mau Napoleon)\nSubject: 2nd RFD: comp.databases.ms-access\nArticle-I.D.: rodan.1qkma9INNmbn\nOrganization: cs.uiowa.edu\nLines: 31\nNNTP-Posting-Host: rodan.uu.net\n\nThis is the 2nd Reguest for Discussion ( RFD ) for the creation of \ncomp.databases.ms-access \n\nThe discussion period started on April 6 and it will last until April 28,\n( 22 days ).\n\nThis is an official RFD for the creation of a new newsgroup for the\ngeneral discussion of the Microsoft Access RDMS.\n\nNAME: COMP.DATABASES.MS-ACCESS\n\nMODERATION: UNMODERATED. At this time, no need for a moderator has been\nassertained. Future evaluation will determine if one is needed.\n\nPURPOSE: \nAccess is a new RDBMS for the Windows Operating System. It includes WYSIWYG\ndesign tools for easy creation of tables, reports, forms and queries and a\ndatabase programming language called Access Basic.\nTHe purpose of the group will be to provide help to people who use Access's \nWYSIWYG design tools to create simple databases as well as to people who use \nAccess Basic to create complex databases.\n\nRATIONALE:\nEventhough Access is a new RDBMS, it is very popular because of its Graphical\nDevelopment enviroment and its initial low price.\nBeen a version 1.0 product means that all Access users are Novices.\nFor that reason a newsgroup is needed where Access users can discuss \ntheir experiences with the product and answer each other's questions.\n-- \nNapoleon\nmau@herky.cs.uiowa.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5644, "properties": {"category": "comp.graphics", "text": "From: g9134255@wampyr.cc.uow.edu.au (Coronado Emmanuel Abad)\nSubject: Need polygon splitting algo...\nOrganization: University of Wollongong, NSW, Australia.\nLines: 11\nNNTP-Posting-Host: wampyr.cc.uow.edu.au\nKeywords: polygons, splitting, clipping\n\n\nThe idea is to clip one polygon using another polygon (not\nnecessarily rectangular) as a window.  My problem then is in\nfinding out all the new vertices of the resulting \"subpolygons\"\nfrom the first one.  Is this simply a matter of extending the\nusual algorithm whereby each of the edges of one polygon is checked\nagainst another polygon???  Is there a simpler way??\n\nComments welcome.\n\nNoel.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5645, "properties": {"category": "rec.autos", "text": "From: tedebear@leland.Stanford.EDU (Theodore Chen)\nSubject: Re: Ultimate AWD vehicles\nOrganization: DSG, Stanford University, CA 94305, USA\nDistribution: usa\nLines: 7\n\nIn article <Apr16.215151.28035@engr.washington.edu> eliot@stalfos.engr.washington.edu (eliot) writes:\n>the price of parts is a different story though...\n\nyou can say that again.\nhow does $23 for a new thermostat sound?\n\n-teddy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5646, "properties": {"category": "talk.politics.mideast", "text": "From: ab4z@Virginia.EDU (\"Andi Beyer\")\nSubject: Re: Freedom In U.S.A.\nOrganization: University of Virginia\nLines: 23\n\njaa12@cunixa.cc.columbia.edu  writes:\n> Dear Mr. Beyer:\n> \n> It is never wise to confuse \"freedom of speech\" with \"freedom\"\n> of racism and violent deragatory.\"\n> \n> It is unfortunate that many fail to understand this crucial \n> distinction.\n\n\tIn fact, if a speach was not offensive to some, its\nprotection under Freedom of speach laws would be useless. It is\nspeach that some find questionable that must be protected, be\nit religiously blasphemous or inherently racist. It is only\nthrough civilized discourse and not scare tactics that one can\nenlighten those that one perceives to be ignorant. That is the\nidea behind freedom of expression.\n\tWhat you find offensive might be perceived as truth by\nsome and what they might find offensive might be your belief.\nIt is only through free exchange of ideas (and insults as the\ncase seems to be with this channel) that one can change\nanother's erring ways.That is why Jefferson said that here \nwe are not afraid to \"tolerate error so long as reason is left to \ncombat it\". \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5647, "properties": {"category": "misc.forsale", "text": "From: oauld@ponder.csci.unt.edu (Orion Auld)\nSubject: 386-40 for $500!\nOrganization: University of North Texas\nLines: 18\n\n\n\nFOR SALE: ****************************************************************\n\n386-40 with VGA Color Monitor, dual floppy, VGA card with 1MB on board, joystick,\nmouse, 2 MB RAM, no hard drive.\n\n\nFOR ONLY $500!  Respond quickly!\n\n\n\n\n-- \n***** Orion Auld *****     *----------------------------------------------*\n\"We are only fabulous      |     If you're not part of the solution,      |\n beasts, after all.\"       |       You're part of the precipitate.        |\n -- John Ashberry          *----------------------------------------------*\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5648, "properties": {"category": "sci.med", "text": "From: egb7390@ucs.usl.edu (Boutte Erika G)\nSubject: M. contagiosem\nOrganization: The Wild Wacky World of Dolly Parton Clones in Zero Gravity \nLines: 16\n\n\nI was wondering if anyone had any information about Molluscous contagiosem.\nI acquired it, and fortunately got rid of it, but the question still lingers\nin my mind: Where did it come from?  The little bit of info that I have \nreceived about it in the past states that it can be transmitted sexually, but\nalso occurs in small children on the hands, feet and genitalia.\n\nAny information will be greatly appreciated.\n\n\n\n\"I grow old, I grow old;\nI shall wear my trousers rolled.\"\n\n               -T. S. Eliot\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5649, "properties": {"category": "comp.sys.mac.hardware", "text": "From: CSP1DWD@MVS.OAC.UCLA.EDU (CSP1DWD)\nSubject: Re: Can I get more than 640 x 480 on 13\" monitor?\nNntp-Posting-Host: mvs.oac.ucla.edu\nLines: 12\n\nIn article <carsona.734880998@sfu.ca>,\ncarsona@fraser.sfu.ca (Debra Carson) writes:\n\n>Would a virtual screen of larger size be of use to you? I have been\n>using Stepping Out v?.? for some time. It still is working now on a\n>PowerBook with System 7.1, minor problem with menubar icons at right edge.\n\nWhat's the latest version of Stepping Out that works ok with S7.1?\n\n-- Denis \n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5650, "properties": {"category": "comp.sys.mac.hardware", "text": "Organization: University of Maine System\nFrom: Jon Carr <IO91748@MAINE.MAINE.EDU>\nSubject: Re: Accelerator for SE\nLines: 30\n\nIn article <1993Apr15.114602.27275@ifi.uio.no>, oec@ifi.uio.no (\\ystein\nChristiansen) says:\n>\n>Has anyone out there in netland any experience with accelerators\n>for SE? I am specially interested in:\n>  - speed up rate (% or compared to e.g. SE/30)\n>  - need for new SIMMs (speed in ns)\n>  - maximum RAM after upgrade\n>  - compatibility (I am mainly using FrameMaker)\n>  - can I use an additional, big b&w screen (15\" to 21\")\n>  - can I install the accellerator myself (no soldering)\n>  - price/where to buy\n>\nI have no experience with this particular hardware, but\njust about every month in Macworld there is an add for\nan combined SE accelerator/Video board.  This item sells\nfor about $1000 and comes with a 25MHz 68030/68882 pair,\neight SIMM slots, and a grayscale 21\" monitor.\n\nThis accelerator plugs into the SE's lone expansion port\nand thus no soldering.  You will however, need a long\nTORX wrench to get the case open (but that's not really\na big deal).\n\nDoes that sound like what you were looking for?\n\n    -----> Jon                                     Jon Carr\n    -----> IO91748@MAINE.MAINE.EDU                 UMaine '93\n    1993 NCAA Champions! How about those 42-1-2 Black Bears!!\n    M   -   A   -   I   -   N   -   E   -   GO BLUE!!!!!!!!!!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5651, "properties": {"category": "comp.graphics", "text": "From: jbulf@balsa.Berkeley.EDU (Jeff Bulf)\nSubject: Re: detecting double points in bezier curves\nReply-To: jbulf@balsa.Berkeley.EDU (Jeff Bulf)\nOrganization: Kubota Pacific Computers Inc.\nLines: 20\n\nIn article <ia522B1w165w@oeinck.waterland.wlink.nl>, ferdinan@oeinck.waterland.wlink.nl (Ferdinand Oeinck) writes:\n|> I'm looking for any information on detecting and/or calculating a double\n|> point and/or cusp in a bezier curve.\n|> \n|> An algorithm, literature reference or mail about this is very appreciated,\n\nThere was a very useful article in one of the 1989 issues of\nTransactions On Graphics. I believe Maureen Stone was one of\nthe authors. Sorry not to be more specific. I don't have the\nreference here with me.\n\nThe article actually was more general than this, giving a way to decide\nwhether a given (cubic) Bezier curve contains cusps, intersection points\nor whatever wierdness. The same treatment is also available in SIGGRAPH 89\ncourse notes for the course called \"Math for Siggraph\" or something like\nthat.\n\n-- \n\tdr memory\n\tjbulf@kpc.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5652, "properties": {"category": "rec.sport.hockey", "text": "From: c5ff@jupiter.sun.csd.unb.ca (COOK  Charlie)\nSubject: Re: AHL Season in review (off ice stuff)\nOrganization: University of New Brunswick\nLines: 14\n\nIn article <1993Apr16.001323.10308@news.clarkson.edu> farenebt@craft.camp.clarkson.edu (Droopy) writes:\n>==================================================\n>SENATORS SOLD\n<stuff deleted>\n>\n>The Senators are currently in serious negotiations with Charlottetown\n>New Brunswick and are expected to move there.\n>==================================================\n\nIt has been announced that the Senators will move their AHL franchise to\nCharlottetown, P.E.I. (Prince Edward Island), not New Brunswick.\n\nCharlie Cook\ncharlie@calvin.cs.unb.ca\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5653, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: kxn3796@hertz.njit.edu (Ken Nakata CIS stnt)\nSubject: Re: Help with SIMMs\nKeywords: SIMM questions answers\nOrganization: New Jersey Institute of Technology, Newark, N.J.\nLines: 53\nNntp-Posting-Host: hertz.njit.edu\n\nIn article <C5Fu1u.pxx@austin.ibm.com> guyd@austin.ibm.com (Guy Dawson) writes:\n>\n>In article <10998@lhdsy1.lahabra.chevron.com>, jjctc@lhdsy1.lahabra.chevron.com (James C. Tsiao) writes:\n>> In article <1993Apr12.172751.27270@fct.unl.pt> fcm@diana.fct.unl.pt (Fernando Correia Martins (MEI 1)) writes:\n>> >Spectre (spectre@nmt.edu) wrote:\n>> >: When I look at a magazine ad that says:\n[deleted]\n>> >: what exactly do the numbers mean?  (i.e.  which is the MB, ns...)\n>> >\n>> >The numbers 60, 70 and 80 refers to nanoseconds. Could someone explain\n>> >*exactly* what this numbers means? (Time spent bettwen processor's request\n>> >and answer retrieved (in case of reading)? )\n>> \n>> It means the time required for the memory to refresh,  i.e. a 1x9-60\n>> needs 60ns before it is ready to be read again.\n>\n>Nope! It's the time taken to read data from memory. It's the read time.\n>The memory will still have to be refreshed. The whole phase is called\n>a cycle, the cycle time being about twice the access time.\n\nI'm sorry if I'm misunderstanding your post, but DRAM *does not* have to\nbe refreshed on *each access cycle*.  So cycle time does *not* have to be\ntwice the access time *because of refresh phase*.\n\nThe access time usually means the delay time from falling edge of raw\naddress strobe (RAS) to data bus driven.\n\nDRAM access cycle timing chart can be roughly shown as following (some\nsignals are intentionally omitted);\n\nADDR --<RA><CA>-------<RA><CA>--------- RA=Raw Address, CA=Column Address\nRAS  ~~~~\\________/~~~~~\\________/~~~~~\t\t~=High, _=Low, -=Floating\nCAS  ~~~~~~~\\_______/~~~~~~\\_______/~~~\t\t<..>=driven either H or L\nDATA ---------<VALID>--------<VALID>---\n         |-------+------|\n         |-+--|  |\n           |     +----------- cycle time\n           +---- access time (or RAS access time)\n\nYes, the cycle time is more than twice as the access time but *not*\nbecause of the refresh phase.  The refresh can be done either as a\ntrailing phase of normal access cycle or as an individual cycle.\n\n>\n[other stuff deleted]\n>\n\nKen Nakata\n-- \n/* I apologize if there are incorrect, rude, and/or impolite expressions in\nthis mail or post. They are not intended. Please consider that English is a\nsecond language for me and I don't have full understanding of certain words\nor each nuance of a phrase.  Thank you. -- Ken Nakata, CIS student, NJIT */\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5654, "properties": {"category": "comp.graphics", "text": "From: cormackj@access.digex.com (John Cormack)\nSubject: Re: VESA on the Speedstar 24\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 8\nNNTP-Posting-Host: access.digex.net\nSummary: Speedstar 24X\nKeywords: VESA driver for Speedstar 24X\n\nI need a VESA driver for the Diamond Speedstar 24X that works. I've tried\nseveral and none work for the hicolor modes.\n\nJohn Cormack\nCormackj@access.digex.com\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5655, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Re: More technical details\nOrganization: Partnership for an America Free Drug\nLines: 15\n\nsrt@duke.cs.duke.edu (Stephen R. Tate) writes:\n>\n>Now, I'm not one of the people who distrusts the government at every\n>turn, but taking someone's word for it that the S1/S2 pairs are not kept\n>around is pushing what I'm willing to believe just a little bit too far.\n>\n\nEven if they somehow address this issue it is unlikely to be the only\nback door in -- they might even have a few intentionally visible to\ndistract from the ones that aren't visible.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5656, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 01/10 - Overview\nOrganization: The Crypt Cabal\nLines: 138\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 1 of 10 of the sci.crypt FAQ, Overview. A table of \n contents for subsequent sections.  Contributors, feedback, archives,\n administrivia.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part01\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 1: Overview\n\nThis is the first of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read this part before the rest. We\ndon't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in the last part.\n\nDisclaimer: This document is the product of the Crypt Cabal, a secret\nsociety which serves the National Secu---uh, no. Seriously, we're the\ngood guys, and we've done what we can to ensure the completeness and\naccuracy of this document, but in a field of military and commercial\nimportance like cryptography you have to expect that some people and\norganizations consider their interests more important than open\nscientific discussion. Trust only what you can verify firsthand.\nAnd don't sue us.\n\nMany people have contributed to this FAQ. In alphabetical order:\nEric Bach, Steve Bellovin, Dan Bernstein, Nelson Bolyard, Carl Ellison,\nJim Gillogly, Mike Gleason, Doug Gwyn, Luke O'Connor, Tony Patti,\nWilliam Setzer. We apologize for any omissions.\n\nIf you have suggestions, comments, or criticism, please let the current\neditors know by sending e-mail to crypt-comments@math.ncsu.edu.  We don't\nassume that this FAQ is at all complete at this point.\n\nArchives: sci.crypt has been archived since October 1991 on\ncl-next2.cl.msu.edu, though these archives are available only to U.S. and\nCanadian users. Please contact crypt-comments@math.ncsu.edu if you know of\nother archives.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers \nevery 21 days.\n\n\nTable of contents:\n\n1 Overview\n\n2 Net Etiquette\n* What groups are around? What's a FAQ? Who am I? Why am I here?\n* Do political discussions belong in sci.crypt?\n* How do I present a new encryption scheme in sci.crypt?\n\n3 Basic Cryptology\n* What is cryptology? Cryptography? Plaintext? Ciphertext? Encryption? Key?\n* What references can I start with to learn cryptology?\n* How does one go about cryptanalysis?\n* What is a brute-force search and what is its cryptographic relevance?\n* What are some properties satisfied by every strong cryptosystem?\n* If a cryptosystem is theoretically unbreakable, then is it\n  guaranteed analysis-proof in practice?\n* Why are many people still using cryptosystems that are\n  relatively easy to break?\n\n4 Mathematical Cryptology\n* In mathematical terms, what is a private-key cryptosystem?\n* What is an attack?\n* What's the advantage of formulating all this mathematically?\n* Why is the one-time pad secure?\n* What's a ciphertext-only attack?\n* What's a known-plaintext attack?\n* What's a chosen-plaintext attack?\n* In mathematical terms, what can you say about brute-force attacks?\n* What's a key-guessing attack? What's entropy?\n\n5 Product ciphers\n* What is a product cipher?\n* What makes a product cipher secure?\n* What are some group-theoretic properties of product ciphers?\n* What can be proven about the security of a product cipher?\n* How are block ciphers used to encrypt data longer than the block size?\n* Can symmetric block ciphers be used for message authentication?\n* What exactly is DES?\n* What is triple DES?\n* What is differential cryptanalysis?\n* How was NSA involved in the design of DES?\n* Is DES available in software?\n* Is DES available in hardware?\n* Can DES be used to protect classified information?\n* What are \"ECB\", \"CBC\", \"CFB\", and \"OFB\" encryption?\n\n6 Public-Key Cryptography\n* What is public-key cryptography?\n* What's RSA?\n* Is RSA secure?\n* How fast can people factor numbers?\n* What about other public-key cryptosystems?\n\n7 Digital Signatures and Hash Functions\n* What is a one-way hash function?\n* What is the difference between public, private, secret, shared, etc.?\n* What are MD4 and MD5?\n* What is Snefru?\n\n8 Technical Miscellany\n* How do I recover from lost passwords in WordPerfect?\n* How do I break a Vigenere (repeated-key) cipher?\n* How do I send encrypted mail under UNIX? [PGP, RIPEM, PEM, ...]\n* Is the UNIX crypt command secure?\n* How do I use compression with encryption?\n* Is there an unbreakable cipher?\n* What does ``random'' mean in cryptography?\n* What is the unicity point (a.k.a. unicity distance)?\n* What is key management and why is it important?\n* Can I use pseudo-random or chaotic numbers as a key stream?\n* What is the correct frequency list for English letters?\n* What is the Enigma?\n* How do I shuffle cards?\n* Can I foil S/W pirates by encrypting my CD-ROM?\n* Can you do automatic cryptanalysis of simple ciphers?\n* What is the coding system used by VCR+?\n\n9 Other Miscellany\n* What is the National Security Agency (NSA)?\n* What are the US export regulations?\n* What is TEMPEST?\n* What are the Beale Ciphers, and are they a hoax?\n* What is the American Cryptogram Association, and how do I get in touch?\n* Is RSA patented?\n* What about the Voynich manuscript?\n\n10 References\n* Books on history and classical methods\n* Books on modern methods\n* Survey articles\n* Reference articles\n* Journals, conference proceedings\n* Other\n* How may one obtain copies of FIPS and ANSI standards cited herein?\n* Electronic sources\n* RFCs (available from [FTPRF])\n* Related newsgroups\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5657, "properties": {"category": "comp.windows.x", "text": "From: huub@cwi.nl (Huub Bakker)\nSubject: waiting for a specific event/callback\nKeywords: event handling\nReply-To: Huub.Bakker@cwi.nl\nOrganization: CWI, Centre for Mathematics & Computer Science\nLines: 30\n\nHello world,\n\nI want to write my Xt-application code like this:\n\n{\n    do_some_work();\n    /* now I need some user input */\n    XmCreateDialog();\n    wait_for_user_input(input);\n    if (input == \"OK\") {\n       more_work();\n    } else {\n       other_work();\n    }\n}\n\nSo \"more_work() and other_work()\" are not in callback functions but the\napplication simply waits for the user to answer the question.\n\nHow can I code this in my Xt/Motif-application?\n\nThanks very much in advance.\n\nGreetings, Huub.\n\n-- \nCWI, P.O. Box 4079 \t\t\tHuub Bakker (huub@cwi.nl)\n1009 AB Amsterdam\nThe Netherlands\nTel. 31 20 5924080\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5658, "properties": {"category": "comp.graphics", "text": "From: ch41@prism.gatech.EDU (claye hart)\nSubject: graphics libraries\nKeywords: graphics, libraries\nOrganization: Georgia Institute of Technology\nLines: 16\n\nI am interested in a 2d/3d graphics library which will allow our design\nteam to write graphics software for Unix workstations and be as portable as \npossible.  Eventually this software will have to be moved to Microsoft\nWindows.  It is my opinion that a good API with hooks to PEX underneath\nwould prove most portable.\n\nDoes anyone out there have any experience with Figaro+ form TGS or\nHOOPS from Ithaca Software?  I would appreciate any comments.\n\n- Claye Hart\n\n-- \nClaye K. Hart 404-894-9729\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!ch41\nInternet: claye.hart@gtri.gatech.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5659, "properties": {"category": "sci.crypt", "text": "From: \"Douglas Johnson\" <p00450@psilink.com>\nSubject: Unix crypt for DOS\nNntp-Posting-Host: 127.0.0.1\nOrganization: Class Technology Corporation\nX-Mailer: PSILink-DOS (3.4)\nLines: 4\n\nI've recently moved from Unix to a DOS box and have a number of files \nthat I used crypt to \"protect\".  Does anyone know of a DOS version of \ncrypt?  I've found one, but it insists on six letter keys and I used \nsome shorter ones.  Thanks for your help.  -- Doug\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5660, "properties": {"category": "soc.religion.christian", "text": "From: REXLEX@fnal.fnal.gov\nSubject: Re: Certainty and Arrogance\nOrganization: FNAL/AD/Net\nLines: 110\n\nIn article <Apr.17.01.11.29.1993.2278@geneva.rutgers.edu>\nkilroy@gboro.rowan.edu (Dr Nancy's Sweetie) writes:\n\n>Someone called `REXLEX' has claimed that there IS a way out of the loop, but\n>he did not bother to explain what it was, preferring instead to paraphrase\n>Sartre, ramble about Wittgenstein, and say that the conclusion of my argument\n>leads to relativism.\n\nI will answer this as I find time.\n\n>\n>`REXLEX' suggested that people read _He is There and He is Not Silent_, by\n>Francis Schaeffer.  I didn't think very highly of it, but I think that\n>Mr Schaeffer is grossly overrated by many Evangelical Christians.  Somebody\n>else might like it, though, so don't let my opinion stop you from reading it.\n>\n>If someone is interested in my opinion, I'd suggest _On Certainty_, by\n>Ludwig Wittgenstein.\n>\n>\n>Darren F Provine / kilroy@gboro.rowan.edu\n>\"If any substantial number of  [ talk.religion.misc ]  readers read some\n> Wittgenstein, 60% of the postings would disappear.  (If they *understood*\n> some Wittgenstein, 98% would disappear. :-))\" -- Michael L Siemon\n>\n\nNotice what I said about this book.  I called it \"Easy reading.\"  The reason I\ndropped philosphy as my major was because I ran into too many pharisaical\nSimon's.  I don't know how many walking encyclopedia's I ran across in\nphilosphy classes.  The problem isn't in knowing sooooo much more than your\naverage lay person, the problem comes when you become puffed up about it. \nSchaeffer is just fine for the average lay person.  That was who he was\nwritting to.  I suppose that you would have criticised John that his gospel was\nto simple.  I've talked with Schaeffer one on one.  I've been in lectures with\nthe man when he was being drilled by philosphy students and prof's from secular\nas well as Christian universities. (ND alone would fill both those catagories) \nHis answers were enough that the prof's themselves often were taken back and\ncaused to re-think what their question was.  I saw this time and time again at\ndifferent open forums.  So yes, Schaeffers books are by in large, well,\nsimplistic.  It certainly isn't grad level reading.  But we must get off our\nhigh horses when it comes to recommended reading.  Do you seriously think most\npeople would get through the first chapter of Wittgenstein?  I may have more to\nsay about this secular scientist at another time.\n\nAlso, one must finally get beyond the doubt caused by *insistent*\ninquisitiveness.  One cannot live his life constantly from a cartisian doubt\nbase.  \n\nLook, the Christian wholeheartedly supports genuine rationality.  But we must\nadd a qualification to give this balance.  Christianity is second to none in\nkeeping reason in its place.  We never know the value of a thing until we know\nits limits.  Put unlimited value on something and in the end you will exhaust\nit of all value!\n\nTHis is why Xianity is thoroughly rational but not the least bit rationalistic.\n It also explains the curious fact that it is rationalism, and not Christian\nfaith, which leads to irrationality.  If we forget the limits of a thing, we\nfly in the face of reality and condem ourselves to learn the simple ironic\nlesson of life: \n\n\"More without limits is less;  less with limits is more.\"  \n\nOr as I have so often stated it, freedom without form soon becomes form w/o\nfreedom.\n\nLet's put it another way.  The rationality of faith is implacably opposed to\nabsurdity but has no quarrel with mystery. Think about that.  It can tell the\ndifference between the two if you will let it.  Christianity's contention with\nrationalism is not that it has too much reason in it, but that it has very\nlittle else.  When a Christian comes to faith his understanding and his trust\ngo hand in hand, but as he continues in faith his trust may sometimes be called\nto go on by itself without his understanding.\n\nThis is where the principle of suspended judgment applies.  At such time if the\nChristian faith is to be itself and let God be God, it must suspend judgment\nand say, \"Father I do not understand you but I trust you.\"  Now don't read all\nyour objections of me into that statement.  I wasn't saying I do not understand\nyou at all, but I trust you anyway.\" It means that \"I do not understand You *in\nthis situation* but I do understand *why I trust You* anyway\"  Therefore I can\ntrust that you understand even though I do not. The former is a mystery\nunrelieved by rationality and indistinguishable from absurdity.  The latter is\na statement of rationality of faith walking hand in hand with the mystery of\nFaith.  So.... the principle of suspended judgment is not irrational.  It is\nnot a leap of faith but a walk of faith.  As believers we cannot always know\nwhy, but we canalways know why we trust God who knows why and this makes all\nthe difference.\n\nNow, there is one obvious snag to all this and this is where I have parted\ncompany with philosophy- what is eminently reasonable in theory is a rather bit\nmore difficult in practice.  In practice the pressure of mystery acts on faith\nlike the insistent \"whying\" of a 3 year old.  It isn't just that we would like\nto know what we do not know but that we feel we *must* know what we cannot\nknow.  The one produces frustration because curiosity is denied; the other\nleads to genuine anguish.  More specifically the poorer our understanding is in\ncoming to faith the more necessary it will be to understand everything after\ncoming to faith.  If we do not know why we trust God, then we will always need\nto know exactly what God is doing in order to trust him.  Failing to grasp\nthat, we may not be able to trust him, for anything we do not understand may\ncount decisevely against what we are able to trust.  \n\nIf, on the other hand, we do know why we trust God, we will be able to trust\nhim in situations where we do not understand what He is doing. (Too many Xian\nleaders teach as if the Christian had a window in the back of his head which\nallows for understanding at every foot fall)  For what God is doing may be\nambiguous, but it will not be inherently contradictory!  It may be mystery to\nus, but mystery is only inscrutable; what would be insufferable is absurdity.\nAnd that my friend, was the conclusion of Nietzche both in theory and in\npractice.   \n\n--Rex\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5661, "properties": {"category": "sci.med", "text": "From: km@ky3b.pgh.pa.us (Ken Mitchum)\nSubject: Re: tuberculosis\nOrganization: KY3B - Vax Pittsburgh, PA\nLines: 19\n\nIn article <1993Mar25.085526.914@news.wesleyan.edu>, RGINZBERG@eagle.wesleyan.edu (Ruth Ginzberg) writes:\n|> \n|> But I'll be damned, his \"rights\" to be sick & to fail to treat his disease & to\n|> spread it all over the place were, indeed preserved.  Happy?\n\nSeveral years ago I tried to commit a patient who was growing Salmonella out of his\nstool, blood, and an open ulcer for treatment. The idea was that the guy was a\nwalking public health risk, and that forcing him to receive IV antibiotics for\na few days was in the public interest. I will make a long story short by saying\nthat the judge laughed at my idea, yelled at me for wasting his time, and let\nthe guy go.\n\nI found out that tuberculosis appears to be the only MEDICAL (as oppsed to psychiatric)\ncondition that one can be committed for, and this is because very specific laws were\nenacted many years ago regarding tb. I am certain these vary from state to state.\n\nAny legal experts out there to help us on this?\n\n-km\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5662, "properties": {"category": "talk.politics.misc", "text": "From: hagenjd@wfu.edu (Jeff Hagen)\nSubject: Re: Will Italy be the Next Domino to Fall?\nOrganization: Wake Forest University\nLines: 51\nNNTP-Posting-Host: ac.wfunet.wfu.edu\n\n(NOTE: cross-posted to alt.politics.italy and talk.politics.misc\n This is a reply to an article by Ed Ipser which also appeared in\n alt.politics.usa.misc and alt.politics.libertarian, but no longer belongs)\n\n\nI hate to defend Ed (the article was very poorly written) but here goes:\n\nhallam@dscomsa.desy.de (Phill Hallam-Baker) writes:\n>Ed should take a look at the budget deficit Regan and Bush created together\n>before he starts to make claims about europe collapsing based on the budget\n>deficits here. None of them are serious on the USA scale.\n\nItaly's per-capita debt is much higher than USA's.\n\n\n>We do not want our countries to be run by a narrow elite of rich lawyers\n>for the benefit of the super wealthy.\n\nThis is *exactly* what the public in France & Italy perceive to be the\nproblem-- thus the French election and Italian pulizia.\n\n\nRegarding the post-pulizia Italy:\n>What looks likely to happen is the fringe parties are going to do much\n>better in the next election. Most of the parliamentary deputies are going\n>to get replaced and the parties are going to be forced to look to people\n>who are free of any hint of corruption. Look out for a parliament of\n>Pavarotti's and porn stars.\n\nWrong.  This is true perhaps only for the Lega Nord.\nThe referendum Sunday is expected to establish a British/American style\nfirst-past-the-post system in the Senate.  If implemented, it would\nencourage a two- (or perhaps three-) party system in Italy.\nMost likely the DC and PSI will not be these parties; rather there will\nbe a shakeup of the entire party structure from which 2 new parties\nwill emerge to dominate.  Will Lega Nord be one of these?  Who knows.\n\n(The Camera dei Deputati (lower house) will likely remain with\nProportional Representation for a while, but there is talk of switching a\nportion of that house, too. Maybe as much as 40% first-past-the-post)\n\nOverall, the electoral reform in Italy is a welcome change.  Italians\nare tired of having crappy government.  Porn stars, Pavarotti's and\nHunters & Fishers won't gain seats because PR is dead.  A good two-party\nsystem will bring Italy efficient, accountable government.\n\nIt's about time.\n\nJeff Hagen\nhagenjd@ac.wfu.edu\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.269+0000", "event": "documents", "entityId": 5663, "properties": {"category": "sci.electronics", "text": "From: randy@ve6bc.ampr.ab.ca (Randy J. Pointkoski)\nSubject: Needed 24 volt 4 circuit Flasher\nOrganization: Amateur Radio VE6BC\nLines: 17\n\n\nI am looking for a source for a 4 circuit Sequence flasher.\n\nInput 24 Volts AC, 8 amps\n\nOutput: sequence to 4 channels (knob to vary frequency) (max 2 amps \n\tper leg)\n\tSwitch to put all channels on full time\n\nPlease Email any assistance you can provide.\n\nRandy \t\t\tEmail:  randy@ve6bc.ampr.ab.ca\n-- \n   __\n  /  )                                               Randy J Pointkoski P.Eng\n /    __________  _   __  _  _   _   o ________      Compression Technologies \n(__/ (_) / / / <_/_)_/ (_</_/_)_/_)_<_(_) / / <_     7141 77 ave\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5664, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: Don't knock the Glock (was Re: My Gun is like my Am Ex Card)\nDistribution: usa\n <93104.231049U28037@uicv <1993Apr15.152834.16638@mksol.dseg.ti.com>\nLines: 46\n\nIn article <1993Apr15.152834.16638@mksol.dseg.ti.com>, pyron@skndiv.dseg.ti.com\n(Dillon Pyron) says:\n>>>Some police departments switched to Glocks, and then started quietly\n>>>switching many officers back to the old revolvers. Too many were having\n>>>accidents, partly due to the poor training they received. Not that Glocks\n>>>require rocket scientists, but some cops are baffled by something as complex\n>>>as the timer on a VCR.\n>>\n>>Hell, a Glock is the last thing that should be switched to.  The only thing\n>>that I know about a Glock is the lack of a real safety on it.  Sure there is\n>>that little thing in the trigger but that isn't too great of a safety.\n>\n>Ahem!!!  Hrumph!!!!  You have encurred the wrath of Glock owners.  We will\n>beat\n>you with our hammers.  Oooops, don't have any  :-)\n>\n>Seriously.  There is no difference in the safeties betweena Glock and any DA\n>revolver.  Intellectually, think of the Glock as a very high cap revolver.\n>Ignoring stove pipes, misfeeds and all the other bonus exercises that\n>autoloaders give you, that is.\n>\n>Every gun has its safe moment and its dangerous moment.  If you just learn how\n>to handle it, it becomes a lot less dangerous (to you).\n>--\n>Dillon Pyron                      | The opinions expressed are those of the\n>TI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n>(214)462-3556 (when I'm here)     |\n>(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\n>pyron@skndiv.dseg.ti.com          |solutions, not gestures.\n>PADI DM-54909                     |\n>\n\nAll very true.  I'm going on what I have read and heard from friends.\nBasically the Glock is great but I have heard/read that it is a lot harder to\nlearn proper handling because of the type of safety that it has.  I was\nlooking at a Glock .40S&W and the S&W 4006 a couple of weeks ago and the\nsafties on the guns were very different.  The saftey on the 4006 seemed a lot\nmore \"safe\"  (for lack of a better word) than the one on the Glock.  Of course\nthis could also be a bad thing if you were to pull the gun on somebody.  You\nwould spend more time fiddling around turning the safety off.  Personally I\nlike the Glocks because they are very light and I think they look really cool\n(guess that's why they use them in so many movies) but I wouldn't get one as\nmy first semi-auto because of the safety.  I would prefer more training with\na \"traditional\" semi-auto (ala Colt .45) but of course that's just my opinion.\n\nJason\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5665, "properties": {"category": "comp.sys.mac.hardware", "text": "From: anthonyp@extro.ucc.su.OZ.AU (Anthony Pun)\nSubject: Re: Why HP printers rated so low?\nArticle-I.D.: extro.anthonyp.735036446\nOrganization: Sydney University Computing Service, Sydney, NSW, Australia\nLines: 16\nNntp-Posting-Host: extro.ucc.su.oz.au\n\negaillou@etu.gel.ulaval.ca (Eric Gailloux) writes:\n\n>I'm about to purchase a laser printer for my Mac and I read the MacUser\n>Buying Guide special issue. All HP printers (except IIISI) are rated very low\n>compared to other noname bargain-priced printers. Why is that so? On the PC,\n>HP printers are THE standard amongst printer manufacturers.\n\n>PS: My personnal favorite -budgetwise- would be the IIIP.\n\nThe IIIP has just been superseded by the 4M, which is the one I am using at\nwork.  The quality of the print is execellent, beating 300 dpi printers hands\ndown.  In Australia the price of the 4M is about comparable with that of the\nIII-series, so HP are trying to get people to buy the new one !!!\n\nAnthony Pun\nanthonyp@extro.ucc.su.oz.au\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5666, "properties": {"category": "misc.forsale", "text": "From: wsyu@nyx.cs.du.edu (Wei-Yun Yu)\nSubject: Windows 3.1(new) for sale $35\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nDistribution: usa\nLines: 4\n\nI have a Windows 3.1 package for sale. New stil in shrink wrapped. I am\nasking for $35. I will consider to trade a used 1.44M floppy drive. Leave\na message if interested.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5667, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: DESIGNATED HITTER RULE\nFrom: holsend@mhd.moorhead.msus.edu\nReply-To: holsend@mhd.moorhead.msus.edu\nOrganization: Moorhead State University, Moorhead, MN\nNntp-Posting-Host: 134.29.97.2\nLines: 14\n\n\n\n\nIn article <ekdfc.14.0@ttacs1.ttu.edu>, ekdfc@ttacs1.ttu.edu (David Coons) writes:\n>In article <1993Apr4.221228.17577@bsu-ucs> 00ecgillespi@leo.bsuvc.bsu.edu \n>writes:\n>>I AM DOING A POSTITION PAPER ON THE DESIGNATED HITTER RULE. ANY INFORMATION\n>>OR EVEN OPINIONS WOULD BE GREATLY APPRECITATED. 00ECGILLESPIE \"MAGIC\"\n>\n>Should be rescinded.  The rules say baseball is a game between two teams of \n>nine players each.  Let's keep it that way.\n\nLast weeks Sports Illustrated has a couple of big articles on the designated\nhitter.  It is the 1993 baseball issue.                                                                            Th                        is weeks Sports Illustrated\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5668, "properties": {"category": "rec.autos", "text": "From: jimf@centerline.com (Jim Frost)\nSubject: Re: Too fast\nArticle-I.D.: armory.1qkon8$3re\nOrganization: CenterLine Software, Inc.\nLines: 56\nNNTP-Posting-Host: 140.239.3.202\n\nwrat@unisql.UUCP (wharfie) writes:\n>>Compare either to the Porsche 911 and you tell me which was designed\n\n>\tOh, right.  Only 120,000 dollar cars should be driven fast.\n>They drive goddamn Rabbits at 120 MPH in Europe, pal, and I reckon\n>a Taurus is at least as capable as a Rabbit.\n\nMy whole point was not to say that the cars *couldn't* go that fast,\nbut that they *shouldn't* go that fast.  A family sedan designed to be\noperable at 85mph doesn't suddenly become operable at 130mph because\nyou added some plastic aero effects, slightly wider tires, and a much\nlarger engine.  That's what the SHO is -- a slightly modified family\nsedan with a powerful engine.  They didn't even bother improving the\n*brakes.*\n\nThe Mustang is essentially the same deal as the SHO -- a big power\nplant stuck in a mid-size sedan, with almost no other modifications.\nI have real-life experience with the Mustang -- it handles like a\nbrick (except when you're invoking oversteer, of course, something I\npersonally avoid doing on the highway) and stopping power is\ninadequate even from 80mph.  Lots of accelleration -- but the rest of\nthe car is not up to par.\n\nI picked the Porsche example because they are designed with speed in\nmind.  It didn't have to be the 911 -- it could have been the much\ncheaper 944 or one of several Mercedes or Audi models.  All of these\ncars are fairly expensive -- but so are the parts that make them\ndrivable at high speed.  This should be elementary.\n\nThere are a few things to keep in mind about Europe, since you brought\nit up.  My Autobahn knowledge is admittedly second-hand, but I believe\nthe following to be true:\n\n1. Drivers are much better disciplined in Europe than they are here.\n2. The roads comprising the Autobahn are much better designed than\n   they are here, and usually include animal fences.  This makes them\n   far more predictable than most US highways.\n3. Not all of Europe is the Autobahn.  Most places in Europe have\n   speed limits that aren't out-of-line with what we used to have in\n   the US -- if my friends weren't lying to me they're typically not\n   much higher than 120km/h.\n\nI strongly suspect you won't find a lot of Rabbit owners doing 120mph\n(nearly 200km/h) on the Autobahn, but I could be wrong.  Some people\nhave no respect for their own lives.\n\n>>You certainly haven't convinced me.\n\n>\tOf course not.  \"Speeding-is-bad.  Speeding-is-illegal. \n>I-will-not-speed.  I-love-Big-Brother.\"  You had your mind made up\n>already.\n\nIf you think so you sure don't pay attention to my postings.\n\njim frost\njimf@centerline.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5669, "properties": {"category": "comp.sys.mac.hardware", "text": "From: chen@nuclear.med.bcm.tmc.edu (ChenLin)\nSubject: Re: Can I get more than 640 x 480 on 13\" monitor?\nOrganization: Baylor College of Medicine\nLines: 5\nDistribution: na\nReply-To: chen@nuclear.bcm.tmc.edu\nNNTP-Posting-Host: nuclear.med.bcm.tmc.edu\nKeywords: 13\" monitor, 8*24 resolution\n\n\nTry MaxAppleZoom ( a shareware init ) if your monitor is not driven by internal\nvideo.\n\nchen\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5670, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cl238405@ulkyvx.louisville.edu (Steve W Brewer)\nSubject: How do I make GhostScript work?\nOrganization: University of Louisville\nApparently-To: gnu-ghostscript-bug@rutgers.edu\nDistribution: world\nLines: 14\n\nWhat files do I need to download for GhostScript 2.5.2?  I have never used\nGhostScript before, so I don't have any files for it.  What I *do* have is\ngs252win.zip, which I downloaded from Cica.  Unfortunately, it doesn't seem to\nwork on it's own, but needs some more files that I don't have.  I want to run\nGhostScript both in Windows 3.1 and in MS-DOS on a 386 PC (I understand there's\nversions for both environments).  What are all the files I need to download and\nwhere can I get them?  Any info would be appeciated.\n\n--------------------------------------------------------------------------------\n  Steve W Brewer                                                rewerB W evetS\n  cl238405@ulkyvx.louisville.edu                ude.ellivsiuol.xvyklu@504832lc\n--------------------------------------------------------------------------------\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5671, "properties": {"category": "comp.graphics", "text": "From: deweeset@ptolemy2.rdrc.rpi.edu (Thomas E. DeWeese)\nSubject: Finding equally spaced points on a sphere.\nArticle-I.D.: rpi.4615trd\nOrganization: Rensselaer Polytechnic Institute, Troy, NY\nLines: 8\nNntp-Posting-Host: ptolemy2.rdrc.rpi.edu\n\n\n  Hello, I know that this has been discussed before.  But at the time\nI didn't need to teselate a sphere.  So if any kind soul has the code\nor the alg, that was finally decided upon as the best (as I recall it\nwas a nice, iterative subdivision meathod), I would be very \nappreciative.\n\t\t\t\t\t\t\tThomas DeWeese\ndeweeset@rdrc.rpi.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5672, "properties": {"category": "comp.graphics", "text": "From: mogal@deadhead.asd.sgi.com (Joshua Mogal)\nSubject: Re: SGI sales practices (Was: Crimson (Was: Kubota Announcement?))\nOrganization: Silicon Graphics, Inc.\nLines: 123\nNNTP-Posting-Host: deadhead.asd.sgi.com\n\n|> My\n|> comment regarding DEC was to indicate that I might be open to other\n|> vendors\n|> that supported OpenGL, rather than deal further with SGI.\n\nOpenGL is a graphics programming library and as such is a great, portable\ninterface for the development of interactive 3D graphics applications. It\nis not, however, an indicator of performance, as that will vary strongly\nfrom machine to machine and vendor to vendor.  SGI is committed to high\nperformance interactive graphics systems and software tools, so OpenGL\nmeans that you can port easily from SGI to other platforms, there is no\nguarantee that your performance would be comparable.\n\n|> \n|> What I *am* annoyed about is the fact that we were led to believe that\n|> we *would* be able to upgrade to a multiprocessor version of the\n|> Crimson without the assistance of a fork lift truck.\n\nIf your sales representative truly mislead you, then you should have a\nvalid grievance against us which you should carry up to your local SGI\nsales management team. Feel free to contact the local branch manager...we\nunderstand that repeat sales come from satisfied customers, so give it a\nshot.\n\n|> \n|> I'm also annoyed about being sold *several* Personal IRISes at a\n|> previous site on the understanding *that* architecture would be around\n|> for a while, rather than being flushed.\n\nAs one of the previous posts stated, the Personal IRIS was introduced in\n1988 and grew to include the 4D/20, 4D/25, 4D/30 and 4D/35 as clock rates\nsped up over time. As a rule of thumb, SGI platforms live for about 4-5\nyears. This was true of the motorola-based 3000 series ('85-'89), the PI\n('88-'93), the Professional Series (the early 4D's - '86-'90), the Power\nSeries parallel systems ('88-'93). Individual CPU subsystems running at a\nparticular clock rate usually live for about 2 years. New graphics\narchitectures at the high end (GT, VGX, RealityEngine) are released every\n18 months to 2 years.\n\nThese are the facts of life.  If we look at these machines, they become\nalmost archaic after four years, and we have to come out with a new\nplatform (like Indigo, Onyx, Challenge) which has higher bus bandwidths,\nfaster CPUs, faster graphics and I/O, and larger disk capacities. If we\ndon't, we become uncompetitive.\n\nFrom the user perspective, you have to buy a machine that meets your\ncurrent needs and makes economic sense today.  You can't wait to buy, but\nif you need a guaranteed upgrade path for the machine, ask the Sales Rep\nfor one in writing. If it's feasible, they should be able to do that. Some\nof our upgrade paths have specific programs associated with them, such as\nthe Performance Protection Program for older R3000-based Power Series\nmultiprocessing systems which allowed purchasers of those systems to obtain\na guaranteed upgrade price for moving to the new Onyx or Challenge\nR4400-based 64-bit multiprocessor systems.\n\n|> \n|> Now I understand that SGI is responsible to its investors and has to\n|> keep showing a positive quarterly bottom line (odd that I found myself\n|> pressured on at least two occasions to get the business on the books\n|> just before the end of the quarter), but I'm just a little tired of\n|> getting boned in the process.\n|> \n\nIf that's happening, it's becausing of misunderstandings or\nmis-communication, not because SGI is directly attempting to annoy our\ncustomer base.\n\n|> Maybe it's because my lab buys SGIs in onesies and twosies, so we\n|> aren't entitled to a \"peek under the covers\" as the Big Kids (NASA,\n|> for instance) are.  This lab, and I suspect that a lot of other labs\n|> and organizations, doesn't have a load of money to spend on computers\n|> every year, so we can't be out buying new systems on a regular basis.\n\nMost SGI customers are onesy-twosey types, but regardless, we rarely give a\ngreat deal of notice when we are about to introduce a new system because\nagain, like a previous post stated, if we pre-announced and the schedule\nslipped, we would mess up our potential customers schedules (when they were\ncounting on the availability of the new systems on a particular date) and\nwould also look awfully bad to both our investors and the financial\nanalysts who watch us most carefully to see if we are meeting our\ncommitments.\n\n|> The boxes that we buy now will have to last us pretty much through the\n|> entire grant period of five years and, in some case, beyond. That\n|> means that I need to buy the best piece of equipment that I can when I\n|> have the money, not some product that was built, to paraphrase one\n|> previous poster's words, 'to fill a niche' to compete with some other\n|> vendor.  I'm going to be looking at this box for the next five years.\n|> And every time I look at it, I'm going to think about SGI and how I\n|> could have better spent my money (actually *your* money, since we're\n|> supported almost entirely by Federal tax dollars).\n|> \n\nFive years is an awfully long time in computer years. New processor\ntechnologies are arriving every 1-2 years, making a 5 year old computer at\nleast 2 and probably 3 generations behind the times. The competitive nature\nof the market is demanding that rate of development, so if your timing is\nreally 5 years between purchases, you have to accept the limited viability\nof whatever architecture you buy into from any vendor.\n\nThere are some realities about the computer biz that we all have to live\nwith, but keeping customers happy is the most important, so don't give up,\nwe know it.\n\nJosh   |:-)\n\n-- \n\n\n**************************************************************************\n**\t\t\t\t     **\t\t\t\t\t**\n**\tJoshua Mogal\t\t     **\tProduct Manager\t\t\t**\n**\tAdvanced Graphics Division   **\t  Advanced Graphics Systems\t**\n**\tSilicon Graphics Inc.\t     **\tMarket Manager\t\t\t**\n**\t2011 North Shoreline Blvd.   **\t  Virtual Reality\t\t**\n**\tMountain View, CA 94039-7311 **\t  Interactive Entertainment\t**\n**\tM/S 9L-580\t\t     **\t\t\t\t\t**\n**\t\t\t\t     *************************************\n**\tTel:\t(415) 390-1460\t\t\t\t\t\t**\n**\tFax:\t(415) 964-8671\t\t\t\t\t\t**\n**\tE-mail:\tmogal@sgi.com\t\t\t\t\t\t**\n**\t\t\t\t\t\t\t\t\t**\n**************************************************************************\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5673, "properties": {"category": "comp.sys.mac.hardware", "text": "From: franks@ntrc25.ntrc.ntu.ac.sg (Frank Siebenlist)\nSubject: Powerbook 170 freezes after 18 seconds; Help!\nNntp-Posting-Host: ntrc25.ntrc.ntu.ac.sg\nOrganization: /home/franks/.organization\nDistribution: comp\nLines: 20\n\n\nA few days ago, my powerbook starts to freeze after appr. 18 seconds of inactivity.\nIt stays alive as long as a program is actively running or as long as the mouse is moved.\n\nDid anyone experience similar problems?\nAny known fixes?\n\nPlease reply by email as I can't read this newsgroup normally.\n\nRegards, Mike Fisher (efisher@ntu.ac.sg)\n--\n---------------------------------------------------\nFrank Siebenlist                 <franks@ntu.ac.sg>\nSenior Research Fellow\nGINTIC Institute of Manufacturing Technology (GIMT)\nNanyang Technological University (NTU)\nNanyang Avenue\nSingapore 2263\nTel: +65 799-1215                 Fax: +65 791-6377\n---------------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5674, "properties": {"category": "rec.sport.hockey", "text": "From: lee139@gaul.csd.uwo.ca (Steve Lee)\nSubject: Re: LIST OF TEE TIMES AT METROPOLITAN TORONTO GOLF COURSES FOR MONDAY\nOrganization: Computer Science Dept., Univ. of Western Ontario, London, Canada\nNntp-Posting-Host: obelix.gaul.csd.uwo.ca\nLines: 18\n\n\nIn article <C5spEC.EuC@noose.ecn.purdue.edu> stamber@rainbow.ecn.purdue.edu (Kevin L. Stamber) writes:\n\n>Kevin L. Stamber\n>Purdue University\n>...and Phil Kirzyc (The Kielbasa Kid) will roam the Arena for interviews.\n\n\nWoops!  This is rec.sport.hockey! Not rec.sport.golf!  Hope you check the\nnewsgroup header next time before posting!\n\nSteve\n\n-------------------------------------------------------------------------------\nSteve Lee      *      University of Western Ontario      *      London, Canada \n                      lee139@obelix.gaul.csd.uwo.ca          \n_______________________________________________________________________________\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5675, "properties": {"category": "rec.autos", "text": "From: klui@corp.hp.com (Ken Lui)\nSubject: Re: LICENSE PLATES\nOrganization: Hewlett-Packard Company\nLines: 16\nDistribution: na\nNNTP-Posting-Host: klui.corp.hp.com\n\nIn article <1993Apr14.143750.120204@marshall.wvnet.edu> edf003@marshall.wvnet.edu writes:\n>Hi, I'm interested in getting the list for license plate numbers.  If anyone\n>has a listing I'd appreciate getting a copy of it.  Thanks!\n\nYou can go to the DMV and ask for their listing.  Although I\ndon't know where you may actually buy a copy, you can use theirs\nfor your perusal.  In California, the listing of personalized\nlicense plates run 3 volumes, each about 1.5\" thick.  I hope this\nis what you're asking for.\n\n\nKen\n-- \nKenneth K.F. Lui, klui@corp.hp.com                  3000 Hanover Street MS20BJ\nCorporate Administrative Information Systems        Palo Alto, CA  94304   USA\nCore Application Technologies                1(415)857-3230 Fax 1(415)852-8026\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5676, "properties": {"category": "talk.politics.mideast", "text": "From: tankut@IASTATE.EDU (Sabri T Atan)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nReply-To: tankut@IASTATE.EDU (Sabri T Atan)\nOrganization: Iowa State University\nLines: 43\n\nIn article <C5IF8u.3Ky@news.cso.uiuc.edu>, ptg2351@uxa.cso.uiuc.edu (Panos\nTamamidis ) writes:\n>  Yeah, too much Mutlu/Argic isn't helping.  I could, one day, proceed and\n\nYou shouldn't think many Turks read Mutlu/Argic stuff.\nThey are in my kill file, likewise any other fanatic.\n \n> >(I have nothing against Greeks but my problem is with fanatics. I have met\n> >so many Greeks who wouldn't even talk to me because I am Turkish. From my\n> >experience, all my friends always were open to Greeks)\n> \n>  Well, the history, wars, current situations, all of them do not help.\n\nWell, Panos, Mr. Tamamidis?, the way you put it it is only the Turks\nwho bear the responsibility of the things happening today. That is hard to\nbelieve for somebody trying to be objective.\nWhen it comes to conflicts like our countries having you cannot\nblame one side only, there always are bad guys on both sides.\nWhat were you doing on Anatolia after the WW1 anyway?\nDo you think it was your right to be there?\nI am not saying that conflicts started with that. It is only\nnot one side being the aggressive and the ither always suffering.\nIt is sad that we (both) still are not trying to compromise.\nI remember the action of the Turkish government by removing the\nvisa requirement for greeks to come to Turkey. I thought it\nwas a positive attempt to make the relations better.\n\nThe Greeks I mentioned who wouldn't talk to me are educated\npeople. They have never met me but they know! I am bad person\nbecause I am from Turkey. Politics is not my business, and it is\nnot the business of most of the Turks. When it comes to individuals \nwhy the hatred? So that makes me think that there is some kind of\nbrainwashing going on in Greece. After all why would an educated person \ntreat every person from a nation the same way? can you tell me about your \nhistory books and things you learn about Greek-Turkish\nencounters during your schooling. \ntake it easy! \n\n--\nTankut Atan\ntankut@iastate.edu\n\n\"Achtung, baby!\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5677, "properties": {"category": "sci.electronics", "text": "From: verity@jack.sns.com (Steve Verity)\nSubject: Need help with video detection circuit\nOrganization: Systems'n'Software\nLines: 55\n\n\n\nI am trying to build a circuit that detects the presence of video (Vs.\na blank screen) by monitoring the R,G, and B outputs of a graphics\ncard.  It should be able to detect the presence of a single pixel at\n65 MHz, which would mean detecting a 15 NS pulse.  It should also be\nable to tell the difference between a blank screen (about 300 mv)\nand a dim screen (say, around 310 mv).  Oh yes, it also needs to be\ncheap.  \n\nMy first circuit was a dismal failure.  I used 3 compariators; each\ncompariator had the + input going to one of the guns, the - input\nwent to a reference created by a voltage divider(a potentiometer).\n\nThe first problem was that the compariator was way too slow.. I\nneeded to get several pixels in a row before it would fire the\ncompariators, so I could have a whole screen full of text, but my\ncircuit would not detect it.   \n\nThe second problem is that there was more noise on the reference then\nthe smallest difference between a blank screen and a dim screen.  In\nfact the difference between completely black and completely white is\nonly 650 mv.  I am wondering if I am going to have to amplify the\nvideo signals to make this work.  \n\nThere are faster compariators, but they are expensive, and require \nsplit supplies.   I would need to replace my .49 quad compariator\nwith three 1.89 compariators, and create a whole new power supply\ncircuit.  \n\nAt this point, I think what I need is some sort of transistor\ncircuit.  Transistors are fast and cheap and should do the trick...\n\nUnfortunately, I am way out of my league when It comes to designing\ntransistor circuits, so I am appealing to the net for help.  Any\nideas, tips, circuits, pointers, references, etc. would be greatly\nappreciated.  \n\nOh yes, I only sample the output of this thing every second or so, so\nI don't need a fast response time at all, however, I haven't found a\nway to take advantage of that fact.\n\nThanks a lot for any help anybody might be able to give. Of course,\nyou will have my undying gratitude.\n\n\nSteve Verity\n\n\n\n\n-- \n..........>.........>........>......>...>...>..>..>..>..>.>.>.>>>>>>>>+ .   \nSteve Verity                  +   +             ...Maxed on MIDI        + .\n                                    +      verity@jack.sns.com      + ..   +\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5678, "properties": {"category": "rec.sport.hockey", "text": "From: lange@reg.triumf.ca (THREADING THE CANADIAN TAPESTRY)\nSubject: Detroit Playoff Tradition\nOrganization: TRIUMF: Tri-University Meson Facility\nLines: 11\nDistribution: world\nNNTP-Posting-Host: reg.triumf.ca\nKeywords: Octopi\nNews-Software: VAX/VMS VNEWS 1.41    \n\nWay back in the early years (~50's) it took 8 wins to garner the Stanley Cup. \nSoooooo, a couple of local fish mongers (local to the Joe Louis Arena, that is)\nstarted the tradition of throwing an octopi onto the ice with every win.  After\neach victory, one leg would be severed before the octopus found its way to the\nice.  (They are dead by the way.)  It was a brilliant marketing strategy to\nshore up the demand for one of their least popular products.\n\nHope this helps.\n\nJ. Lange\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5679, "properties": {"category": "talk.politics.guns", "text": "From: manes@magpie.linknet.com (Steve Manes)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nOrganization: Manes and Associates, NYC\nDistribution: na\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 44\n\nJim De Arras (jmd@cube.handheld.com) wrote:\n: In article <C4u3x5.Fw7@magpie.linknet.com> manes@magpie.linknet.com (Steve  \n: Manes) writes:\n: [...]\n: > I don't know how anyone can state that gun control could have NO\n: > effect on homicide rates.  There were over 250 >accidental< handgun\n: > homicides in America in 1990, most with licensed weapons.  More\n: > American children accidentally shot other children last year (15)\n: > than all the handgun homicides in Great Britain.  (Source: National\n: > Safety Council.  Please... no dictionary arguments about RATES vs\n: > TOTAL NUMBERS, okay?  They're offered for emphasis, not comparison).\n: > \n\n: You're a great debater.  You chose your sources of information, claim them\n: to  be superior,\n\nI've made no such claim.  Please direct my attention towards any\nposting of mine where I claimed superior sources of information.\nIt's probably because I bothered to post any references at all while\nothers seem content to post numbers pulled from the ozone, that\nyou've confused it with fact-twisting.  If so, I apologize.  \n\n: then take those twisted numbers and twist them further by trying  \n\nWell then, here's fair opportunity for you to prove that I've \"twisted\nnumbers.\"  On what grounds do you contradict those references?  Do you have\nany citations... any sources of your own that I can take similar\ngratuitous shots at?\n\n: to compare absolute numbers between two countries that have major population  \n: differences, the USA and GB, and then whine that you are afraid someone might  \n: attack your process, and so claim the numbers are for \"emphasis, not  \n: comparison\"?  Emphasis of what?\n\nNitpicking and scolding is a whiney debating style, Jim.\n\n: Anything else is blowing smoke.\n\nYou seddit, brudda.\n \n-- \nStephen Manes\t\t\t\t\t   manes@magpie.linknet.com\nManes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5680, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: free moral agency and Jeff Clark\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 21\n\nIn article <sandvik-140493185248@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n>\n>This is the reason I like the controversy of post-modernism, the\n>issues of polarities -- evil and good -- are just artificial \n>constructs, and they fall apart during a closer inspection.\n>\n>The more I look into the notion of a constant struggle between\n>the evil and good forces, the more it sounds like a metaphor\n>that people just assume without closer inspection.\n>\n\n  More info please.  I'm not well exposed to these ideas.\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5681, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: Partnership for an America Free Drug\nLines: 32\n\njfc@athena.mit.edu (John F Carr) writes:\n>In article <19930419.155204.305@almaden.ibm.com>\n>\tameline@vnet.IBM.COM (Ian Ameline) writes:\n>\n>>  I also believe that someone will reverse engineer the clipper chip,\n>>and knowlege of the algorithm will likely be fairly widespread.\n>\n>The chip and algorithm are classified.  If you reverse engineer it and\n>tell people, you are likely to go to jail.\n\nWell, I'm not a lawyer, but from what I can tell this is completely\nand utterly untrue.\n\nYou see, this country has this thing called a \"constitution\".\n\nIf you legitimately aquire the device, and you yourself are\nnot a government employee or otherwise encumbered, I don't think they\ncan stop you from revealing anything about the device you can\ndetermine. Remember the Pentagon Papers precedent? The First Amendment\napplies here.\n\nThe U.S. does NOT have an official secrets act. We do have laws that\nwill punish you for revealing what classified information you learned\nin your capacity as a government official, contractor, etc, and we\nhave laws that prohibit stealing such information. However, if they\nsell you the chip, I can't see that they can make reverse engineering\nit and revealing the details illegal.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5682, "properties": {"category": "sci.electronics", "text": "From: jeh@cmkrnl.com\nSubject: Re: Police radar....Just how does it work??\nDistribution: sci.electronics\nOrganization: Kernel Mode Systems, San Diego, CA\nLines: 14\n\nIn article <afgE02Wb3dVu01@JUTS.ccc.amdahl.com>,\n dws30@p1ps110cd.amdahl.com (David Sharpe) writes:\n> There are a few more details to radar and some\n> rumors that are not true.  A common one is that two beams are sent one\n> reading the car speed and one the ground speed.  If this were true then\n> calabration would be murder.  Hope this helps (Flame On)\n\nGee, then I guess the extra horn that's mounted in the floor of some SDPD cars,\nfiring at the ground at a shallow angle, is just for show, huh?\n\n(For calibration, they simply turn off one horn or the other.) \n\n\t--- Jamie Hanrahan, Kernel Mode Systems, San Diego CA\nInternet:  jeh@cmkrnl.com  Uucp: uunet!cmkrnl!jeh  CIS: 74140,2055\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5683, "properties": {"category": "comp.sys.mac.hardware", "text": "From: feilimau@leland.Stanford.EDU (Christopher Yale Lin)\nSubject: Mac IIsi Cache options\nOrganization: DSG, Stanford University, CA 94305, USA\nDistribution: usa\nLines: 15\n\nReaders,\n\nI have found that the cache upgrade options for the Mac IIsi include the\nfollowing:\t1) AE QuickSilver\n\t\t2) Daystar Fastcache IIsi\n\t\t3) Daystar ComboCache IIsi\n\t\t4) LogiCache IIsi 64k cache\n\nI'd be interested in hearing opinions on any or all of these options.\nThe other alternative is to upgrade to a CPU accelerator such as the\nLogiCache 50 MHz. Ideas, comparisions?\n\nfelix lin\nfeilimau@leland.stanford.edu\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5684, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: begolej@csgrad.cs.vt.edu (James Begole)\nSubject: 16MB ISA limit?\nOrganization: VPI&SU Computer Science Department, Blacksburg, VA\nLines: 13\n\nI was just reading in PC Magazine that the peripherals in a PC with an\nISA bus can only access 16MB of memory.  Also, that some video cards on\nthe ISA bus look for a memory aperture to map their memory to.  So that\nif I wanted to put 16MB of memory on my PC, my video card wouldn't have\nanywhere to map it's memory to.\n\nCan someone explain this in more detail.  Is there a way around this\nlimit.\n\nIf you email me a response, I will summarize.\n\t-Bo\tbegolej@csgrad.cs.vt.edu\n-- \n\t--James \"Bo\" Begole\t\tbegolej@csgrad.cs.vt.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5685, "properties": {"category": "talk.politics.misc", "text": "From: deane@binah.cc.brandeis.edu (David Matthew Deane)\nSubject: Re: PUBLIC HEARINGS on Ballot Access, Vote Fraud and Other Issues\nReply-To: deane@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 10\n\nWell, the message was interesting (and long), but TWICE? Oh Well. Personally,\nI loathe libertarianism, but my disagreement is philisophical, not tactical.\nElection law reform is a good idea. You would not believe what kind of stunts\nthe creatures of the 2 party system are capable of pulling.\n============================================================================\nDavid Matthew Deane (deane@binah.cc.brandeis.edu)\n     \nWhen the words fold open,\nit means the death of doors;\neven casement windows sense the danger.   (Amon Liner)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5686, "properties": {"category": "talk.politics.mideast", "text": "From: tankut@IASTATE.EDU (Sabri T Atan)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nReply-To: tankut@IASTATE.EDU (Sabri T Atan)\nOrganization: Iowa State University\nLines: 81\n\nIn article <1993Apr15.174657.6176@news.uiowa.edu>, mau@herky.cs.uiowa.edu (Mau\nNapoleon) writes:\n> From article <1993Apr15.092101@IASTATE.EDU>, by tankut@IASTATE.EDU (Sabri T\nAtan):\n> > Well, Panos, Mr. Tamamidis?, the way you put it it is only the Turks\n> > who bear the responsibility of the things happening today. That is hard to\n> > believe for somebody trying to be objective.\n> > When it comes to conflicts like our countries having you cannot\n> > blame one side only, there always are bad guys on both sides.\n> > What were you doing on Anatolia after the WW1 anyway?\n> > Do you think it was your right to be there?\n> \n> There were a couple millions of Greeks living in Asia Minor until 1923.\n> Someone had to protect them. If not us who??\n> \n> > I am not saying that conflicts started with that. It is only\n> > not one side being the aggressive and the ither always suffering.\n> > It is sad that we (both) still are not trying to compromise.\n> > I remember the action of the Turkish government by removing the\n> > visa requirement for greeks to come to Turkey. I thought it\n> > was a positive attempt to make the relations better.\n> > \n> Compromise on what, the invasion of Cyprus, the involment of Turkey in\n> Greek politics, the refusal of Turkey to accept 12 miles of territorial\n> waters as stated by international law, the properties of the Greeks of \n> Konstantinople, the ownership of the islands in the Greek lake,sorry, Aegean.\n> \n> There are some things on which there can not be a compromise.\n> \n> \n> > The Greeks I mentioned who wouldn't talk to me are educated\n> > people. They have never met me but they know! I am bad person\n> > because I am from Turkey. Politics is not my business, and it is\n> > not the business of most of the Turks. When it comes to individuals \n> > why the hatred?\n> \n> Any person who supports the policies of the Turkish goverment directly or\n> indirecly is a \"bad\" person.\n> It is not your nationality that makes you bad, it is your support of the\n> actions of your goverment that make you \"bad\".\n> People do not hate you because of who you are but because of what you\n> are. You are a supporter of the policies of the Turkish goverment and\n> as a such you must pay the price.\n> \n> > So that makes me think that there is some kind of\n> > brainwashing going on in Greece. After all why would an educated person \n> > treat every person from a nation the same way? can you tell me about your \n> > history books and things you learn about Greek-Turkish\n> > encounters during your schooling. \n> > take it easy! \n> > \n> > --\n> > Tankut Atan\n> > tankut@iastate.edu\n> > \n> > \"Achtung, baby!\"\n> \n> You do not need brainwashing to turn people against the Turks. Just talk to\n> Greeks, Arabs, Slavs, Kurds and all other people who had the luck to be under\n> Turkish occupation.\n> They will talk to you about murders,rapes,distruction.\n> \n> You do not learn about Turks from history books, you learn about them from\n> people who experienced first hand Turkish friendliness.\n> \n> Napoleon\n\n\nWell, Napoleon. It is your kind of people who are preventing peace \non the world. First of all, you didn't answer the question I asked\nat the end of my posting. And then you told me some bullshit\nthroughout your posting which had no positive point about the issue,\nfilled with hatred, and filled with emotions. Why am I doing this?\nForget it, I don't think you are worth it to discuss the issue.\n \n\n--\nTankut Atan\ntankut@iastate.edu\n\n\"Achtung, baby!\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.270+0000", "event": "documents", "entityId": 5687, "properties": {"category": "comp.graphics", "text": "From: schwartz@ils.nwu.edu (diane schwartz)\nSubject: SIGKids Research Showcase Call\nOrganization: institute for the learning sciences\nLines: 250\nDistribution: world\nNNTP-Posting-Host: schwartz.ils.nwu.edu\n\n\t\tSIGKIDS CALL FOR PARTICIPATION\nSIGKids Research Showcase is where learning is hip.  Pushing the edge in\neducation, computer graphics, and new technologies, the SIGKids Research\nShowcase will provide SIGGRAPH's attendees with the latest in applying\ncomputer technology to form state of the art educational experiences.  So\nhop to it!  Submit any works which converge the disciplines of education\nand computer technology.\n\nPossible categories and domains include but are NOT LIMITED to:\n\n-Interactive/stand-alone applications\n-Self-Run demonstrations and tutorials\n-Museum Installations\n-Groupware/Collaborative systems\n-Hypermedia\n-Virtual Reality\n-Scientific Visualization\n-Interactive Art\n-Microworlds\n\nDeadlines:\n\nMay 21, 1993 submissions due  \n\n\nSubmit to:\n\nDiane Schwartz\nSIGGRAPH '93 SIGKids Committee\nc/o The Institute for the Learning Sciences\n1890 Maple Avenue, Suite 150\nEvanston, Illinois 60201\nFax:\t708.491.5258\nschwartz@ils.nwu.edu\n\nElectronic Submission Form:\nschwartz@ils.nwu.edu\n\nHow to Submit:\n1. Fill out the 'Permission to Use' form (see page 19 of the SIGGRAPH '93\nCall for Participation or send email to schwartz@ils.nwu.edu to have one\nfaxed to you.)\n\n2. Fill out the SIGKids '93 Research Showcase Submission Form (below).\n\n3. Send an abstract/description of the submission (approximately 100 words)\nin one of the following ways:\n\n    A. Send 3 hard copies to Diane Schwartz (via surface mail) at the above\n       address\n\t\t\t\t\t\t\t                    OR\n    B. Fax 1 copy to Diane Schwartz at (708)491-5258\n                           OR\n    C. Email 1 copy to Diane Schwartz at schwartz@ils.nwu.edu\n\n4. If it is necessary to explain the project, additional support material\nsuch as videotapes and slides that will assist the selection committee in\nreaching a decision are highly reccommended. \n\nFax and email submissions are acceptable.\n\nPLEASE SEND ALL OF YOUR SUBMISSION MATERIAL IN THE SAME FORM (either\nsurface mail, email, or fax. The only exception to this should be the\nadditional support material which should only be sent via surface mail). \n\nNOTE: Due to our very limited budget, if the submitter chooses to have a\ndedicated machine for their work, they will have to pay rental fees\nfor the hardware personally.\n\nNOTE: Contributors outside for the United States should be aware of customs\nand carrier delays and send submissions early.\n\n______________________________________cut\nhere__________________________________\n\n         ACM SIGGRAPH '93 SIGKIDS RESEARCH SHOWCASE ENTRY FORM\n\n\nA copy of this form must accompany each proposal you submit.  Send SIGKids\nResearch Showcase Entries to:\n\nDiane Schwartz\nSIGGRAPH '93 SIGKids Committee\nc/o The Institute for the Learning Sciences\n1890 Maple Avenue, Suite 150\nEvanston, Illinois 60201\nFax:\t708.491.5258\nschwartz@ils.nwu.edu\n\nPlease print legibly.\n\nContact Information: \nName________________________________________________\n\nCompany______________________________________________\n\nAddress______________________________________________\n\nCity_________________________________________________\n\nState_____________Postal code______________Country_________________ \n\nDaytime phone_____________________Evening phone____________________\n\nFax_____________________________Email______________________________\n\nAdditional Information:\n\nTitle or Theme of Piece__________________________________ \n\nParticipant(s') name(s)___________________________________\n\nCollaborator(s') name(s)__________________________________ \n\nHardware (platform and periferals):\n\n1. What is\nneeded:_____________________________________________________________\n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\n2. Supplied by Participant:\n\n\t\t___ Yes  ___ No\n\n\t3. Dedicated machine?\n\n\t\t___ Yes  ___ No\n\nNOTE:  Due to our very limited budget the participant must pay the rental\nfees for any dedicated hardware.\n\n___Need assistance\n(specify)____________________________________________________ \n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\n\nSoftware________________________________________________________________________\n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\nStatement - Please tell us the significance of the work.\n(less than 50 words)\n________________________________________________________________________________\n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\nMedium:\n\n___Other (describe - i.e. virtual reality, virtual sculpture, interactive\nmultimedia installation,\netc.)__________________________________________________\n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\n\nSpecial Requirements:\n\nPhysical\ndescription____________________________________________________________ \n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\nPower___________________________________________________________________________\n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\nDimensions______________________________________________________________________\n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\nOther__________________________________________________________________________\n\n________________________________________________________________________________\n\n________________________________________________________________________________\n\nAuthorization\n\nPermission to use visual and audio:  In the event that materials used in my\nACM SIGGRAPH'93 SIGKids Research Showcase Entry contain the work of other\nindividuals or organizations (including any copyrighted musical\ncompositions or excerpts thereof), I understand that it is my\nresponsibility to secure any necessary permissions and/or liscenses.  \n\n\t___Yes ___No  My piece contains images, audio, or video components.\n               If yes:\n\t              ___Yes ___No  I have the necessary rights and/or permissions\nto\n                             use the images, audio, or video components in\nmy\n                             piece.\n\nConference presentation release:  By signing this form, I grant SIGGRAPH'93\npermission to consider my piece for the SIGKids Research Showcase.  I\nmaintain the copyright to my work and will receive full credit wherever\nthis work is used.\n\nConference promotional material:  I grant ACM SIGGRAPH the right to use my\nslides for conference and organization publicity, both now and in the\nfuture.  This includes usage on posters, brochures, catalogs, promotional\nitems, or media broadcast. In exchange, SIGGRAPH provides full\nauthor/artist credit information on all promotional material.\n\n___Yes ___No  I grant ACM SIGGRAPH permission to use slides of my work\n              for conference and organization publicity.\n\nSignature______________________________________Date_________\n\nACM SIGGRAPH makes every attempt to respect and protect intellectual \nproperty rights of people and organizations preparing material for \nSIGGRAPH conferences. This entry form explains the uses SIGGRAPH will \nmake of the material and requires you to acknowledge that you have \npermission to use this material.  This may involve seeking clearance from \nyour employer or from others who have loaned you material, such as \nvideotapes and slides.  This form helps prevent situations whereby \nSIGGRAPH'93 presentations include material without permission that \nmight lead to complaints or even legal action.\n\nThis form also asks you to grant SIGGRAPH the right to distribute your\nwork, while you maintain the copyright.  Slide sets and catalogs are\npublications for which you grant SIGGRAPH nonexclusive worldwide\ndistribution rights.  SIGGRAPH marks each item in these publications with a\nproper copyright notice, which informs viewers that these items may not be\ncopied, reproduced, broadcast, or used for commercial purposes without the\nexplicit permission of the indivicual copyright owners.  In addition, this\nform asks if  ACM SIGGRAPH may  use the your materials for conference and\norganizational promotional material in exchange for full author/artist\ncredit information.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5688, "properties": {"category": "comp.windows.x", "text": "From: swick@news.Colorado.EDU (Ross Swick)\nSubject: Books on I.C.C other than I.C.C.M.\nNntp-Posting-Host: nsidc2.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: cu\nLines: 21\n\nCan anyone recomend a good book or article on inter-client communications\nBESIDES I.C.C.M.?\n\nI've looked everywhere I can and it seems everyone tells you how to do it\nbut nobody SHOWS you how.  O'Reilly has no examples, ICCM has no examples,\nAsente & Swick give no examples - in fact most of the books I've looked at,\nif they discuss ICC at all, simply give a condensed version of the ICCM and\nthen refer you to the ICCM.  I did find one example of how to use Atoms and \nProperties in Young's book and five hours after I bought Young's book I had\nmy applications talking to each other.\n\nI am not sure, however, if thats the best way.  I'd like to stay independent \nof Unix so pipes and/or sockets probably aren't the way to go.  But within X\none can also use messages, the clipboard, and perhaps window groups.\n\nI need a text that discusses the various methods, discusses which method is best\nfor which purpose, and gives examples.  Without examples it's all just words.\n\nThanks in advance\n\nRoss\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5689, "properties": {"category": "sci.crypt", "text": "From: metatron!joe@dogface.austin.tx.us (Joe Zitt)\nSubject: Re: Fighting the Clipper Initiative\nOrganization: Metatron Press / Human Systems Performance Group, Austin, TX\nX-Newsreader: rusnews v1.01\nLines: 17\n\nsteve-b@access.digex.com (Steve Brinich) writes:\n\n>  >As a flaming libertarian paranoid extremist (:-), I'at a loss for\n>  >specific objections that don't sound frighteningly technical.\n> \n>   The idea that foisting the Cripple Chip standard on US manufacturers would\n> result in saying \"Sayonara\" to yet another high-tech market isn't technical,\n> isn't in the least difficult to understand, and plays on a concern lots of\n> people are worried about already....\n> \n>\n\nCould you expand on this? I have a feeling you're right, but I don't quite\nunderstand.\n-- \n\"You could be an ocarina salesman going  | Metatron Press | Austin, Texas!\nfrom door to door...\" -- Laurie Anderson | Human Systems Performance Group\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5690, "properties": {"category": "alt.atheism", "text": "From:  (Rashid)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nNntp-Posting-Host: 47.252.4.179\nOrganization: NH\nLines: 34\n\n> What about the Twelve Imams, who he considered incapable of error\n> or sin? Khomeini supports this view of the Twelve Imans. This is\n> heresy for the very reasons I gave above. \n\nI would be happy to discuss the  issue of the 12 Imams with you, although\nmy preference would be to move the discussion to another\nnewsgroup.  I feel a philosophy\nor religion group would be more appropriate. The topic is deeply\nembedded in the world view of Islam and the\nesoteric teachings of the Prophet (S.A.). Heresy does not enter\ninto it at all except for those who see Islam only as an exoteric\nreligion that is only nominally (if at all) concerned with the metaphysical\nsubstance of man's being and nature.\n\nA good introductory book (in fact one of the best introductory\nbooks to Islam in general) is Murtaza Mutahhari's \"Fundamental's\nof Islamic Thought - God, Man, and the Universe\" - Mizan Press,\ntranslated by R. Campbell. Truly a beautiful book. A follow-up book\n(if you can find a decent translation) is \"Wilaya - The Station\nof the Master\" by the same author. I think it also goes under the\ntitle of \"Master and Mastership\" - It's a very small book - really\njust a transcription of a lecture by the author.\nThe introduction to the beautiful \"Psalms of Islam\" - translated\nby William C. Chittick (available through Muhammadi Trust of\nGreat Britain) is also an excellent introduction to the subject. We\nhave these books in our University library - I imagine any well\nstocked University library will have them.\n\nFrom your posts, you seem fairly well versed in Sunni thought. You\nshould seek to know Shi'ite thought through knowledgeable \nShi'ite authors as well - at least that much respect is due before the\ncharge of heresy is levelled.\n\nAs salaam a-laikum\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5691, "properties": {"category": "sci.electronics", "text": "From: mont@netcom.com (Mont Pierce)\nSubject: Re: 8051 Microcontroller\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 31\n\nIn article <1qppr5INNaqa@dns1.NMSU.Edu> mcole@spock (COLE) writes:\n>I would like to experiment with the INTEL 8051 family.  Does anyone out  \n>there know of any good FTP sites that might have compiliers, assemblers,  \n>etc.?\n\nWell, it's not an FTP site, but I got an 800 number for Signetics BBS.\n\nThe Signetics BBS contain some pretty good items for the 8051.  I am\ncurrently using the following files which I downloaded from them:\n\n    ml-asm51.zip      MetaLink's 8051 family macro assembler\n    bootstrp.zip      Hex file Load-and-Go using 8051 uart\n                      (allows you to download your program into a RAM\n                       and then execute from RAM.  Works great.  Tell\n                       me if you want more details).\n    tutor51.zip       TSR for 8051 feature help screens\n    \nThey have lots of coding examples, assemblers, and misc. tools.\n\nSignetics BBS numbers are:    (800) 451-6644\n                              (408) 991-2406\n\nHave fun,\n-- \nMont Pierce\n\n+-------------------------------------------------------------------------+\n| Ham Call: KM6WT             Internet:  mont@netcom.com                  |\n|    bands: 80/40/20/15/10/2  IBM vnet:  mont@vnet.ibm.com                |\n|    modes: cw,ssb,fm                                                     |\n+-------------------------------------------------------------------------+\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5692, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jeroeng@blade.stack.urc.tue.nl (Jeroen Gremmen)\nSubject: Re: DOS 6 vfintd.386 and Windows sys.ini\nOrganization: MCGV Stack, Eindhoven University of Technology, the Netherlands.\nLines: 16\nNNTP-Posting-Host: blade.stack.urc.tue.nl\nX-Newsreader: TIN [version 1.1 PL6]\n\nPeter P. Lei (lei@rtsg.mot.com) wrote:\n: \n: Does anyone know what the vfintd.386 device is used for in windows 3.1?\n: It's under the [386enh] section as\n: \tdevice=c:\\dos\\vfintd.386\n: \nI know Norton Desktop for Windows includes this file and its help file \nmentioned something about floppy-disk access.\n\nJeroen\n\n-- \n========================================================================\nJ.C.A. Gremmen              Email: jeroeng@blade.stack.urc.tue.nl\nGildelaan 34                Phone: 04255-3411 (No modem or fax pleez!)\n5081 PH  Hilvarenbeek               \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5693, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Too Many Europeans in NHL\nArticle-I.D.: alchemy.1993Apr6.141557.8864\nOrganization: University of Toronto Chemistry Department\nLines: 77\n\nIn article <rauser.734062608@sfu.ca> rauser@fraser.sfu.ca (Richard John Rauser) writes:\n>   Ten years ago, the number of Europeans in the NHL was roughly a quarter\n>of what it is now. Going into the 1992/93 season, the numbers of Euros on\n>NHL teams have escalated to the following stats:\n>\n>Canadians: 400\n>Americans: 100\n>Europeans: 100\n>\n>   Please note that these numbers are rounded off, and taken from the top\n>25 players on each of the 24 teams. My source is the Vancouver Sun.\n>\n>   Here's the point: there are far too many Europeans in the NHL. I am sick\n>of watching a game between an American and a Canadian team (let's say, the\n>Red Wings and the Canucks) and seeing names like \"Bure\" \"Konstantinov\" and\n>\"Borshevshky\". Is this North America or isn't it? Toronto, Detriot, Quebec,\n>and Edmonton are particularly annoying, but the numbers of Euros on other\n>teams is getting worse as well. \n>\n\nFrom where I come from in Canada, Borshevsky sounds more Canadian than\nSmith! -)\n\nAnyways, crawl back into the hole you crawled out of...the NBA doesn't\ncare where they get basketball players from, major league baseball\ndoesn't give a damn where they get baseball players from (except Cuba,\nthat is).\n\nCanada is in no imminent danger of being overtaken as the primary \nsupplier of players...Sweden, Finland, the Czech Republic, and Slovakia\nare all relatively small countries, and cannot really produce players\nat a greater rate than they are already producing them, and the\npotential influx from the former Soviet Union is severely blunted\nbecause the system has been raided and is starved for finances and\nwill take a decade or two, to recover and become a real threat, and\nthe US will just maintain its slow increase.  Canada should continue\nto supply 60% plus of the top hockey players in the world for the\nforseeable future.\n\nBesides we need the European hockey market if hockey is to take\nits rightful place besides soccer as the two predominant world\nsports...and since soccer is essentially boring, unlike hockey.\n\n>    I live in Vancouver and if I hear one more word about \"Pavel Bure, the\n>Russian Rocket\" I will completely throw up. As it is now, every time I see\n>the Canucks play I keep hoping someone will cross-check Bure into the plexiglassso hard they have to carry him out on a stretcher. (By the way, I'm not a\n>Canucks fan to begin with ;-). \n>\n>    Okay, the stretcher remark was a little carried away. But the point is that\n>I resent NHL owners drafting all these Europeans INSTEAD of Canadians (and\n>some Americans). It denies young Canadians the opportunity to play in THEIR\n>NORTH AMERICAN LEAGUE and instead gives it to Europeans, who aren't even\n>better hockey players. It's all hype. This \"European mystique\" is sickening,\n>but until NHL owners get over it, Canadian and American players will continue\n>to have to fight harder to get drafted into their own league.\n>\n>    With the numbers of Euros in the NHL escalating, the problem is clearly\n>only getting worse.\n>\n\nCanadians are under no threat...the European numbers will soon saturate,\nif they haven't already...and by the time Russia comes online again,\nthe NHL should be a world league, and there will be many more teams\nto stock and many more jobs for Canadian hockey players.  In the near\nteam, the percentage of Canadians will mostly decline because of \nAmericans, not because of Europeans.\n\n>    I'm all for the creation of a European Hockey League, and let the Bures\n>and Selannes of the world play on their own continent.\n>\n>    I just don't want them on mine.\n>\n\nCrawl into a hole and die...   \n\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5694, "properties": {"category": "comp.graphics", "text": "From: stefan@lis.e-technik.tu-muenchen.de (Stefan Eckart)\nSubject: dmpeg10.zip info: Another DOS MPEG decoder/player posted\nKeywords: MPEG, DOS\nReply-To: stefan@lis.e-technik.tu-muenchen.de\nOrganization: Technische Universitaet Muenchen, Germany\nLines: 74\n\n\nI have posted a DOS MPEG decoder/player to alt.binaries.pictures.utilities.\n\nHere is a short description and some technical information, taken from the\naccompanying documentation:\n\n\n                              DMPEG V1.0\n\n                       Public Domain MPEG decoder\n\n                           by Stefan Eckart\n\n\n0. Features\n===========\n\nDMPEG/DMPLAY is another MPEG decoder/player for the PC:\n\n\n - decodes (nearly) the full MPEG video standard\n   (I,P,B frames, frame size up to at least 352x240 supported)\n\n - saves decoded sequence in 8 or 24bit raw file for later display\n\n - optional on-screen display during decoding (requires VGA)\n\n - several dithering options: ordered dither, Floyd-Steinberg, grayscale\n\n - color-space selection\n\n - runs under DOS, 640KB RAM, no MS-Windows required\n\n - very compact (small code / small data models, 16 bit arithmetic)\n\n - real time display of the raw file by a separate player for\n   VGA and many Super-VGAs\n\n...\n\n4. Technical information\n========================\n\nThe player is a rather straightforward implementation of the MPEG spec [1].\nThe IDCT is based on the Chen-Wang 13 multiplication algorithm [2]\n(not quite the optimum, I know). Blocks with not more than eight non-zero\ncoefficients use a non-separated direct multiply-accumulate 2D-IDCT\n(sounds great, doesn't it?), which turned out to be faster than a 'fast'\nalgorithm in this (quite common) case. Dithering is pretty standard. Main\ndifference to the Berkeley decoder (except for the fewer number of supported\nalgorithms) is the use of 256 instead of 128 colors, the (default) option to\nuse a restricted color-space and the implementation of a color saturation\ndominant ordered dither. This leads to a significantly superior quality of\nthe dithered image (I claim, judge yourself).\n\nRestricted color-space means that the U and V components are clipped to\n+/-0.25 (instead of +/-0.5) and the display color-space points are distributed\nover this restricted space. Since the distance between color-space points\nis thus reduced by a factor of two, the color resolution is doubled at the\nexpense of not being able to represent fully saturated colors.\n\nSaturation dominant ordered dither is a method by which a color, lying\nsomewhere between the points of the display color space, is approximated\nby primarily alternating between two points of constant hue instead of\nconstant saturation. This yields subjectivly better quality due to the\nlower sensitivity of the human viewing system to saturation changes than\nto hue changes (the same reasoning as used by the PAL TV standard to improve\non NTSC). The improvement is particularly visible in dark brown or redish\nareas.\n\n...\n\n--\nStefan Eckart, stefan@lis.e-technik.tu-muenchen.de\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5695, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Re: Wings will win\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 25\n\n\nIn article 735249453@vela.acs.oakland.edu, ragraca@vela.acs.oakland.edu (Randy A. Graca) writes:\n\n>I also think that they will have a hard time with Pittsburgh if they\n>face them in the finals (which is what all the Detroit sportswriters \n>are predicting).  Although I think Bryan Murray is probably the best GM\n>I have ever seen in hockey\n\nHow do you figure that??  When Bryan Murray took over the Wings they were\na pretty good team that was contending for the Stanley Cup but looked\nunlikely to win it.  Now they are a pretty good team that is contending for\nthe Stanley Cup but looks unlikely to win it.  A truly great GM would\nhave been able to make the moves to push the team to the upper echelon\nof the NHL and maybe win the Stanley Cup.  A good GM (like Murray) can\nmaintain the team's success but can't push them to the next level.\n\nIn the history of hockey there have been several better GM's than Murray-\nway too many to name.  Murray isn't even the best GM in the league today.\nHe fails in comparison to Sinden, Sather, Savard, Caron, Fletcher and\nQuinn in my estimation.\n\nI can't imagine how Bryan Murray can be the best GM anyone has ever seen\nin hockey- unless they have seen VERY few GM's.\n\nGregmeister\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5696, "properties": {"category": "talk.politics.guns", "text": "From: wwarf@silver.ucs.indiana.edu (Wayne J. Warf)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 32\n\nIn article <1993Apr20.142131.27347@rti.rti.org> jbs@rti.rti.org writes:\n>In article <C5rpoJ.IJv@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>>\n>>Well they had over 40 days to come out with their hands up on national tv \n>>to get the trial they deserved.  Instead they chose to set fire to their \n>>compund hours after the tanks dropped off the tear gas.\n>\n>This is about the third person who's parroted the FBI's line about the\n>fires being set \"six hours after the tear gas was injected.\"  Suppose you\n>want to explain to us the videotape footage shown on national TV last night\n>in which a tank with the gas-injecting tubes is pulling its injection tubes\n>out of the second story of a building as the building begins to belch smoke\n>and then fire?\n>\n>Do tell.\n>\n>  -joe\n\nNot to mention that the story was rewritten today. Those two BD's who\n\"admitted to starting the fire\", forget 'em, they don't exist anyone.\nToday, \"a few saw someone starting a fire\" and \"our aerial surveillance\nshowed them starting fires\" at this morning's press conference. \nTomorrow, even this excuse may evaporate. A reporter pointed out\nthat a BD being brought to arraingement shouted that tanks knocking\nover lanterns started the fire. Curiouser and curiouser.\n\n\n-- \n +   Wayne J. Warf -- WWARF@ucs.indiana.edu -- I speak for myself only   +\n |*Clinton*Gore*CIA*FBI*DEA*Assassinate*Bomb*WoD*BoR*ATF*IRS*Resist*NSA* |\n |*Christian*God*Satan*Apocalypse*ZOG*Nazi*Socialist*Communist*Explosive*|\n +*fundamentalist*revolution*NSC*Federal Reserve*Constitution*gold*FEMA* +\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5697, "properties": {"category": "alt.atheism", "text": "From: cobb@alexia.lis.uiuc.edu (Mike Cobb)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: University of Illinois at Urbana\nLines: 42\n\nIn <1qjahh$mrs@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) \nwrites:\n\n>In article <pww-140493214334@spac-at1-59.rice.edu> pww@spacsun.rice.edu \n(Peter Walker) writes:\n>#In article <1qie61$fkt@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank\n>#O'Dwyer) wrote:\n>#> Objective morality is morality built from objective values.\n>#\n>#But where do those objective values come from? How can we measure them?\n>#What mediated thair interaction with the real world, a moralon? Or a scalar\n>#valuino field?\n\n>Science (\"the real world\") has its basis in values, not the other way round, \n>as you would wish it.  If there is no such thing as objective value, then \n>science can not objectively be said to be more useful than a kick in the head.\n>Simple theories with accurate predictions could not objectively be said\n>to be more useful than a set of tarot cards.  You like those conclusions?\n>I don't.\n\n>#And how do we know they exist in the first place?\n\n>One assumes objective reality, one doesn't know it.  \n\n>-- \n>Frank O'Dwyer                                  'I'm not hatching That'\n>odwyer@sse.ie                                  from \"Hens\",  by Evelyn Conlon\n\nHow do we measure truth, beauty, goodness, love, friendship, trust, honesty, \netc.?  If things have no basis in objective fact then aren't we limited in what\nwe know to be true?  Can't we say that we can examples or instances of reason,\nbut cannot measure reason, or is that semantics?\n\nMAC\n--\n****************************************************************\n                                                    Michael A. Cobb\n \"...and I won't raise taxes on the middle     University of Illinois\n    class to pay for my programs.\"                 Champaign-Urbana\n          -Bill Clinton 3rd Debate             cobb@alexia.lis.uiuc.edu\n                                              \nWith new taxes and spending cuts we'll still have 310 billion dollar deficits.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5698, "properties": {"category": "comp.windows.x", "text": "From: proberts@informix.com (Paul Roberts)\nSubject: How to mask the left button?\nOrganization: Informix Software, Inc.\nLines: 32\nOriginator: proberts@moose\n\n[I am posting this for a friend whose news service is \"fubared as usual\".\n I will forward replies to him, or if you want to try to reply directly,\n try: Return-Path: <uunet!sunfse.ese.lmsc.lockheed.com!mcfar>    PR ]\n\n\nI have an event handler working for a ButtonPressMask like:\n\n  XtAddEventHandler( plot_data->display, ButtonPressMask, FALSE,\n                    show_mouse_position, plot_data);\n\nbut I would like to be able to have two types of actions: one to occur\nwith the left mouse, the other the right, and perhaps one with the\nmiddle.  So my event handler would look more like:\n\n\n  XtAddEventHandler( plot_data->display, left-ButtonPressMask, FALSE,\n                    show_left_mouse_position, plot_data);\n\n  XtAddEventHandler( plot_data->display, right-ButtonPressMask, FALSE,\n                    show_right_mouse_position, plot_data);\n\nHowever I don't know how to make my left-ButtonPressMask.  There didn't seem\nto be one in the event mask lists I had on hand (although Button1MotionMask\nlooked promising).  My references also mentioned using \"|\" to or two\nmask events.  Can you  use \"&\" to and two masks?  Would I want to in this\ncase? \n\nAny help would be appreciated.\n\nThanks, \n\n-lrm\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5699, "properties": {"category": "talk.politics.guns", "text": "From: green@plains.NoDak.edu (Bill Green)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nArticle-I.D.: ns1.C5tEnu.112F\nOrganization: North Dakota Higher Education Computing Network\nLines: 23\nNntp-Posting-Host: plains.nodak.edu\n\nJust to shed some light on the fire, it was widely reported (AP, etc.) that\nthere WERE several witnesses to BD folks starting the fires.  It has also\nbeen reported that the fires broke out in several places at once, which\nrules out a Bradley knocking over a lamp, etc. as the cause.\n\nWhat I would like to see is some serious discussion of this incident.  I\nbelieve the moves made were right and proper, but I still have some problems\nwith some of the tactics.  After watching the ABC special on it tonight, as\nwell as CNN and Nightline, I question some of the ATF and FBI actions.\n\n1) Could it have been possible to have taken Koresh outside the compound at\nsome time before the Feb. 28th raid?\n\n2) Could a further wait have resulted in a different outcome.\n\n3) Were FBI actions (blaring loudspeakers, etc.) the \"right\" course of action?\n\nAnd a few other questions.  Like I said, I believe the actions taken, in\ngeneral, were proper.  But I still have some reservations.\n\nOne other point, I'm no fan of Janet Reno, but I do like the way she had the\n\"balls\" to go ahead and take full responsibility.  Seems like the waffle boy\nhad problems figuring out just where he stood on the issue.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5700, "properties": {"category": "rec.motorcycles", "text": "From: harmons@.WV.TEK.COM (Harmon Sommer)\nSubject: Re: BMW MOA members read this!\nLines: 22\n\nSender: \nReply-To: harmons@gyro.WV.TEK.COM (Harmon Sommer)\nDistribution: \nOrganization: /usr/ens/etc/organization\nKeywords: \n\n\n>>: As a new BMW owner I was thinking about signing up for the MOA, but\n>>: right now it is beginning to look suspiciously like throwing money\n>>: down a rathole.\n\n>>let my current membership lapse when it's\n>>up for renewal.\n\n>In my case that's not for another 3+ years, so I'd appreciate any\n>hints on what will keep the organization in business that long.  (And\n>preferably longer, of course, and worth being part of.)\n\nBecome an activist: campaign for an MC insurance program; for universal\ndriver/rider training before licensing. Pick a topic dear to your heart\nand get the organization to act on it. Barnacles don't move ships.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5701, "properties": {"category": "alt.atheism", "text": "Subject: Re: Biblical Rape\nFrom: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\n <1p387f$jh3@fido.asd.sgi.com> <1993Mar29.010116.18203@watson.ibm.com> \n <16BA0D964.I3150101@dbstu1.rz.tu-bs.de> \n <1993Apr01.184110.33851@watson.ibm.com> \n <16BA4ADAC.I3150101@dbstu1.rz.tu-bs.de> \n <1993Apr03.012536.18323@watson.ibm.com> <16BA6C534.I3150101@dbstu1.rz.tu-bs.de> <1993Apr04.225107.39364@watson.ibm.com>\nOrganization: Technical University Braunschweig, Germany\nLines: 154\n\nIn article <1993Apr04.225107.39364@watson.ibm.com>\nstrom@Watson.Ibm.Com (Rob Strom) writes:\n \n(Deletion)\n>\n>The thread \"Biblical Rape\" was initiated by David O Hunt.\n>Here is his posting:\n>In article <8feu_KO00XsF0kpc5p@andrew.cmu.edu>, David O Hunt <bluelobster+@CMU.EDU> writes:\n>|> I'm pretty sure I've seen biblical rules for when it's allowable to rape\n>|> prisoners, what the codes are about that, etc.  Could some more\n>|> knowledgable soul than I please let me know some references?\n>\n>He asked a very narrow question, and I gave a very narrow answer.\n>\n \nYes, sorry. I have got that wrong. My apology.\n \n \n(Deletion)\n \n>No. David Hunt's post didn't mention a god, nor did my response.\n>You were the first to bring up the idea of the Bible being \"given\n>by god\".  Most Jews don't believe this in any literal sense.\n>\n \nSo? No fun, but I must have met the minority then.\nAnd \"given by god\" refers to any action whereby a god\ngod causes or better effects something.\n \n \nRob, I am not intimate with Jewish theology, but I understand\nthat you are a Messianic Jew. Correct me if I am wrong, but\nit appears that the views of Messianic Jews on metaphysics\nis different to that of the majority of Jews. While Jewish\ntheology overall is quite distinct from the Christianic god\nviews, I have heard that it is possible for Jews to attribute\nevil to their god, an no-no for Christians, the Bible is\nstill seen as effect of the interaction of some god with man.\n \n \n(Deletion)\n>No.  I thought we agreed that though Jews disagree,\n>there are a set of core beliefs that they do agree upon,\n>one of which is that the commandments are accessible\n>and written in the language of the time, and another\n>of which is that there must be a legal system to update them.\n>\n \nThe context was metaphysics, even when the process of adapting\nthe commandments is not transcendent, the justification of the\nprocess lie in metaphysic specualtion. I wonder how you break\nout of the shackles of having metaphysics in your system.\n \n \n(Deletion)\n>Could you explain this with respect to the original commandments\n>being discussed --- that is, the commandment that says if\n>you feel like raping a woman prisoner, you should instead\n>wait and marry her?  What about \"the way this commandment\n>is given\" invalidates it?\n>\n \nIs is in a book that commands to commit genocide among other\nreprehensible deeds. The context is repulsive, and it is\nfoul play, IMO, to invoke some relatively enlightened passages\nas an example for the content of the whole book.\n \n \n(Big deletion)\n>|>\n>|> The point is that I see that there is a necessary connection\n>|> between the theology you use and the interpretation of the Bible.\n>|>\n>\n>Only very loosely.  My interpretation of the Bible is\n>based on a long tradition of Jewish scholars interpreting\n>the Bible.  Theology doesn't really enter into it ---\n>there are Jewish atheists who interpret the laws of\n>charity essentially the same way I do.\n>\n \nNo, not the interpretation of some laws, but the interpretation of\nthe bible. As in the example that Sodom and Gomorrha mean argue\nwith god. The whole idea that it is metaphorically and yet allows\nyou to argue with a god (whatever that means, that alone is a theo-\nlogic question) is proof of a theology used.\n \n \n>|> >You pose another metaphysical riddle!\n>|>\n>|> No, you do.\n>|>\n>\n>Well, you wrote this:\n>|> Fine. So we have some major spirit with neither absolute power\n>|> nor absolute knowledge. And, as it appears, limited means or will\n>|> to communicate with us. Some form of spiritual big friend.\n>|> Do you admit that using god in this context is somewhat unusual?\n>|>\n>|> Am I right in the assumption that it cannot have created the\n>|> universe as well? And that the passages in the Bible referring\n>|> to that or its omnipotence are crap?\n>\n>That's what I meant by the \"riddle\".\n>\n \nIt is an important question in the light of what for instance the\npassage witrh Sodom and Gomorrha means. Either there is some connection\nbetween the text, the fact that it exists, and your interpretation of\nit, or it is purely arbitrary.. Further, the question is why is has\none to carry the burden of Biblical texts when one could simply write\nother books that convey the message better. You might answer that one\ncan't becuase  some peculiar Biblical information might be lost, but\nthat holds true of every other book, and the question remains why has\nthe Bible still a special place? Can't it be replaced somehow? Is it\nok to bargain the dangerous content of the Bible against some other\nmessage that is included as well?\n \n \n(Deletion)\n>|> Do you see the danger in doing so? Especially with the metaphers used\n>|> in the Bible?\n>\n>I think the danger of doing so is less than either the\n>danger of having a frozen system of laws, or having no laws.\n>\n \nSorry, but there are worse systems does not say anything about if\none could not have a better system.\n \n(Deletion)\n>If we\n>read two stories about the importance of helping the poor,\n>and in one God is a spirit, and in the other God has a body,\n>which is more important, helping the poor, or resolving\n>the contradiction about the corporeal nature of God?\n>\n \nIf we read two stories in the Bible, one that god commands people\nto kill children for being idolaters and another where god kills\nchildren directly, what is more important to resolve, the message that\nchildren are to be killed or if it has  to be done by god?\n \n \nAnd the argument you have given is a fallacy, while it may not be important\nin the context you have given to find out if god is corporeal or not, it\ncan be crucial in other questions. Religious believers resolve contradictions\nwith that they choose one of the possibilities given in an arbitrary way,\nand have the advantage of being able to attribute their decision to some\ngod.\n \nOne cannot resolve questions by the statement do what is good when what\nis good depends on the question.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5702, "properties": {"category": "rec.sport.hockey", "text": "From: rvpst2+@pitt.edu (Richard V Polinski)\nSubject: Re: Winning Streaks\nOrganization: University of Pittsburgh\nLines: 24\n\nIn article <93105.053748RAP115@psuvm.psu.edu> RAP115@psuvm.psu.edu (Robbie Po) writes:\n \n>\n>      The Penguins 18 game unbeaten streak carries over to next season.\n>Meaning, if they start the season with another 18 game unbeaten streak, they\n>will have eclipsed the Flyers record.  Right now, the Penguins are on an 11\n>game winning streak, as streaks carry over from one year to another.\n\nHmmmm, I'm not sure this is true.  According to Mike Lang and good old\nStagie, along with the rest of the TV crews in pittsburgh, they \nwinning streak could have stopped because it is a regular season mark.\nI would think this would also hold with an unbeaten streak for regular\nseason games.\n\nHowever, you are right that the playoff streak does carry over from\nlast year.  And with 1 more win, I believe they tie an Edmonton record\n(but don't quote me on that one).\n>-------------------------------------------------------------------------\n>** Robbie Po **          PGH PENGUINS!!!    \"It won't be easy, but it\n>Contact for the '93-'94  '91 STANLEY CUP    will have greater rewards.\n>Penn State Lady Lions    '92 CHAMPIONS      Mountains and Valleys are\n>rap115@psuvm.psu.edu     11 STRAIGHT WINS!  better than nothing at all!\"\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5703, "properties": {"category": "alt.atheism", "text": "From: ednclark@kraken.itc.gu.edu.au (Jeffrey Clark)\nSubject: Re: Ancient islamic rituals\nNntp-Posting-Host: kraken.itc.gu.edu.au\nOrganization: ITC, Griffith University, Brisbane, Australia\nLines: 27\n\ncfaehl@vesta.unm.edu (Chris Faehl) writes:\n\n>Why is it more reasonable than the trend towards obesity and the trend towards\n>depression? You can't just pick your two favorite trends, notice a correlation \n>in them, and make a sweeping statement of generality. I mean, you CAN, and \n>people HAVE, but that does not mean that it is a valid or reasonable thesis. \n>At best it's a gross oversimplification of the push-pull factors people \n>experience.  \n\nI agree, I reckon it's television and the increase in fundamentalism.. You\nthink its the increase in pre-marital sex... others thinks its because\npsychologists have taken over the criminal justice system and let violent\ncriminals con them into letting them out into the streets... others think\nit's the increase in designer drugs... others think it's a communist plot.\nBasically the social interactions of all the changing factors in our society\nare far too complicated for us to control. We just have to hold on to the\npanic handles and hope that we are heading for a soft landing. But one\nthings for sure, depression and the destruction of the nuclear family is not\ndue solely to sex out of marriage.\n\nJeff.\n\n>> \n>>  Fred Rice <-- a Muslim, giving his point of view.\n>>  darice@yoyo.cc.monash.edu.au \n\n>cfaehl@vesta.unm.edu  \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5704, "properties": {"category": "soc.religion.christian", "text": "From: seanna@bnr.ca (Seanna (S.M.) Watson)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nOrganization: Bell-Northern Research, Ottawa, Canada\nLines: 38\n\n{Dan Johnson asked for evidence that the most effective abuse \nrecovery programs involve meeting people's spiritual needs.\n\nI responded:\n In 12-step programs (like Alcoholics Anonymous), one of the steps\n involves acknowleding a \"higher power\".  AA and other 12-step abuse-\n recovery programs are acknowledged as being among the most effective.}\n\nDan Johnson clarified:\n>What I was asking is this:\n>\n>Please show me that the most effective substance-absure recovery\n>programs involve meetinsg peoples' spiritual needs, rather than\n>merely attempting to fill peoples' spiritual needs as percieved\n>by the people, A.A, S.R.C. regulars, or snoopy. \n\nYou are asking me to provide objective proof for the existence of\nGod.  I never claimed to be able to do this; in fact I do not believe\nthat it is possible to do so.  I consider the existence of God to\nbe a premise or assumption that underlies my philosophy of life.\nIt comes down to a matter of faith.   If I weren't a Christian, I\nwould be an agnostic, but I have sufficient subjective evidence to\njustify and sustain my relationship with God.  Again this is a matter\nof premises and assumptions.  I assume that there is more to \"life, the\nuniverse and everything\" than materialism; ie that spirituality exists.\nThis assumption answers the question about why I have apparent spiritual\nneeds.  I find this assumption consistent with my subsequent observat-\nions.  I then find that God fills these spiritual needs.  But I cannot \nobjectively prove the difference between apparent filling of imagined \nspiritual needs and real filling of real spiritual needs.  Nor can I\nprove to another person that _they_ have spiritual needs.\n==\nSeanna Watson   Bell-Northern Research,       | Pray that at the end of living,\n(seanna@bnr.ca) Ottawa, Ontario, Canada       | Of philosophies and creeds,\n                                              | God will find his people busy\nOpinion, what opinions? Oh *these* opinions.  | Planting trees and sowing seeds.\nNo, they're not BNR's, they're mine.          |\nI knew I'd left them somewhere.               |  --Fred Kaan\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5705, "properties": {"category": "alt.atheism", "text": "From: chrisb@tafe.sa.edu.au (Chris BELL)\nSubject: Re: Don't more innocents die without the death penalty?\nOrganization: South Australian Regional Academic and Research Network\nLines: 19\nDistribution: world\nNNTP-Posting-Host: baarnie.tafe.sa.edu.au\n\n\"James F. Tims\" <p00168@psilink.com> writes:\n\n>By maintaining classes D and E, even in prison, it seems as if we \n>place more innocent people at a higher risk of an unjust death than \n>we would if the state executed classes D and E with an occasional error.\n\nI would rather be at a higher risk of being killed than actually killed by\n                              ^^^^                      ^^^^^^^^\nmistake.  Though I do agree with the concept that the type D and E murderers\nare a massive waste of space and resources I don't agree with the concept:\n\n\tkilling is wrong\n\tif you kill we will punish you\n\tour punishment will be to kill you.\n\nSeems to be lacking in consistency.\n\n--\n\"I know\" is nothing more than \"I believe\" with pretentions.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5706, "properties": {"category": "rec.motorcycles", "text": "From: davet@interceptor.cds.tek.com (Dave Tharp CDS)\nSubject: Re: uh, der, whassa deltabox?\nOrganization: Tektronix - Colorado Data Systems, Englewood, CO\nLines: 21\n\nIn article <5227@unisql.UUCP> ray@unisql.UUCP (Ray Shea) writes:\n>\n>Can someone tell me what a deltabox frame is, and what relation that has,\n>if any, to the frame on my Hawk GT?  That way, next time some guy comes up\n>to me in some parking lot and sez \"hey, dude, nice bike, is that a deltabox\n>frame on there?\" I can say something besides \"duh, er, huh?\"\n\n   Deltabox (tm) is a registered trademark of Yamaha, used to describe\ntheir aluminum perimeter frame design, used on the FZR400 and FZR1000.\nIn cross-section, it has a five-sided appearance, so it probably really\nshould be called a \"Pentabox\".\n\n-----------------------------------------------------------------------------\n| Dave Tharp                      | DoD #0751   | \"You can't wear out       |\n| davet@interceptor.CDS.TEK.COM   | MRA #151    |   an Indian Scout,        |\n| '88 K75S  '48 Indian Chief      | AHRMA #751  |  Or its brother the Chief.|\n| '75 R90S(#151) '72 TR-2B(#751)  | AMA #524737 |  They're built like rocks |\n| '65 R50/2/Velorex  '57 NSU Max  |             |   to take the knocks,     |\n|       1936 BMW R12              | (Compulsive | It's the Harleys that     |\n| My employer has no idea.        |   Joiner)   |   give you grief.\"        |\n-----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5707, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mveraart@fel.tno.nl (Mario Veraart)\nSubject: Re: Windows Help\nOrganization: TNO Physics and Electronics Laboratory\nLines: 31\n\numyin@ccu.umanitoba.ca (Qing Yin) writes:\n\n>Hi, it's an *easy* question for you Windows gurus.  I'd appreciate any help.\n\n>We need to write an on-line help for our application.  We don't have\n>Windows Software Developer's Toolkit (yet :-) ). Since we just want to build\n>a .HLP file around Windows' help engine, I hope it won't be that complicated?\n>Anyway, could someone kindly give me some hints of how to build such an\n>on-line help, if it does not take 100 pages to explain? Or if it is complicated,\n>would you help to point out what I would need to do it?\n>-- \n\n\n>Vincent Q. Yin\n>umyin@ccu.umanitoba.ca\n\nHi,\n\nIf you have developed your own windows application you must have a \nSDK of some sort that contains the HC.EXE or HC31.EXE file to \ncompile and generate .HLP files out of .RTF files.\nRTF files are generated by a wordprocessor like Word for Dos or W4W.\n\nIf this is not the solution be more specific about your application.\n\nMario\n-- \nMario Veraart                  TNO Physics and Electronics Laboratory\nemail: rioj7@fel.tno.nl        The Hague       The Netherlands\n\"If all else fails, show pretty pictures and animated videos, \n and don't talk about performance\",  David Bailey\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5708, "properties": {"category": "sci.electronics", "text": "From: cab@col.hp.com (Chris Best)\nSubject: Re: Uninterruptible Power Supply\nOrganization: your service\nLines: 17\nNNTP-Posting-Host: hpctdkz.col.hp.com\n\nI'm no expert at UPS's, but you said something that made it sound like\nyou didn't realize something.  On a typical UPS (well, on ours, anyway),\nthere is NO switchover from AC to DC.  All the protected equipment is\nALWAYS running from the batteries (via an inverter), with the usual \ncondition of also having them on charge.  If the power fails, big deal - \nthe computers never see it (until the batteries start to droop, but \nthere's something like 60 car-sized batteries in that cabinet, so it \ntakes a while).\n\nIf you were gonna run the guts on straight DC instead of an inverter,\nwhy not do it all the time?  Then there'd be no switchover to screw\nthings up, and no having to sense the failure fast.  Just keep the DC\non charge when the power is on, and it'll be there in zero time when\nyou \"need\" it.\n\nJust some ideas.  Can't guarantee what'll work or not, but hope at least\nSOME of this helped.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.271+0000", "event": "documents", "entityId": 5709, "properties": {"category": "sci.med", "text": "From: bls101@keating.anu.edu.au (The New, Improved Brian Scearce)\nSubject: Re: Krillean Photography\nOrganization: Australian National University\nLines: 44\nNNTP-Posting-Host: 150.203.126.9\nIn-reply-to: todamhyp@charles.unlv.edu's message of Mon, 19 Apr 93 20:56:15 GMT\n\nIn-reply-to: todamhyp@charles.unlv.edu's message of Mon, 19 Apr 93 20:56:15 GMT\nNewsgroups: sci.energy,sci.image.processing,sci.anthropology,alt.sci.physics.new-theories,sci.skeptic,sci.med,alt.alien.visitors\nSubject: Re: Krillean Photography\nReferences: <1993Apr19.205615.1013@unlv.edu>\nDistribution: \n--text follows this line--\ntodamhyp@charles.unlv.edu (Brian M. Huey) writes:\n\n\t   I am looking for any information/supplies that will allow\n   do-it-yourselfers to take Krillean Pictures. I'm thinking\n   that education suppliers for schools might have a appartus for\n   sale, but I don't know any of the companies. Any info is greatly\n   appreciated.\n\t   In case you don't know, Krillean Photography, to the best of my\n   knowledge, involves taking pictures of an (most of the time) organic\n   object between charged plates. The picture will show energy patterns\n   or spikes around the object photographed, and depending on what type\n   of object it is, the spikes or energy patterns will vary. One might\n   extrapolate here and say that this proves that every object within\n   the universe (as we know it) has its own energy signature.\n\nThere have been a number of scientific papers (in peer-reviewed journals)\npublished about Kirlian photography in the early 1970s.  Sorry I can't be\nmore specific but it is a long time since I read them.  They would describe\nwhat is needed and how to set up the apparatus.  \n\nThese papers demonstrate that the auras obtained by Kirlian photography can\nbe completely explained by the effect of the electric currents used on the\nmoisture in the object being photographed.  It has nothing to do with the\n\"energy signature\" of organic objects.\n\nI did a science project on Kirlian photography when I was in high school.\nI was able to obtain wonderful auras from rocks and pebbles and the like by\nfirst dunking them in water.\n\nBarbara\n--\n\n\n\n--\nbls101@syseng.anu.edu.au\n\"I generally avoid temptation unless I can't resist it.\"                \n - Mae West \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5710, "properties": {"category": "misc.forsale", "text": "From: pat@wrs.com (Patrick Boylan)\nSubject: Airline ticket R/T between US/Canada and Europe/Carrib/LatinAm\nKeywords: airline ticket\nLines: 69\nNntp-Posting-Host: delaware\nReply-To: pat@wrs.com\nOrganization: Wind River Systems\n\nI have one round-trip ticket good for travel between USA or Canada and\nEurope, Hawaii, Latin America, or the Caribbean.  It is fully transferable \nand can be used originating here or there.\n\nI had intended  to use it to visit my grandfather who was sick, but he died \nbefore I got there so I have no use for it now.\n\nI'm looking for $500 or best offer, but act fast it will be gone on April 15\nno matter what.\n\n-Patrick (pat@wrs.com)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5711, "properties": {"category": "rec.sport.hockey", "text": "From: tvartiai@vipunen.hut.fi (Tommi Vartiainen)\nSubject: Re: TPS will stay on the top...\nNntp-Posting-Host: vipunen.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 15\n\nIn <1993Apr6.171611.1@tnclus.tele.nokia.fi> hahietanen@tnclus.tele.nokia.fi writes:\n>BTW. Is Juha Yl|nen (centre, HPK) drafted by the Jets?? During last year\n>he has reached the top level among Finnish centres. He had very good\n>playoff games against TPS!\n\nI'm not sure about Juha, but another top center, Rauli Raitanen([ss{t)\nis drafted by Jets. Raitanen had very good year and he has played in the\nFinnish nationalteam. I believe that he'll be one of the best finns in\nthis year's WC, if Matikainen(Head coach) elects him to the team.\n\n>  Hannu\n\n   Tommi\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5712, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: axa12@po.CWRU.Edu (Ashok Aiyar)\nSubject: Re: Beta testers required for winsock version of Windows Trumpet\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 19\nReply-To: axa12@po.CWRU.Edu (Ashok Aiyar)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, peter@psychnet.psychol.utas.edu.au (Peter R. Tattam) says:\n\n>Contact me for details.\n>\n>   peter@psychnet.psychol.utas.edu.au\n>\n>Peter\n\nThis is posted on behalf of Peter Tattam.  There is a North American\nmirror with the beta test version of WinTrumpet for Winsock.  Please\ncontact me or Peter for details.\n\nAshok\n-- \n  Ashok Aiyar   Department of Biochemistry, CWRU   axa12@po.cwru.edu\nFor Internet Access (Telnet/FTP) in Cleveland, contact info@wariat.org\n           Telnet to wariat.wariat.org and login as bbs\n   Dial (216) 481-9425/9445 (V.32bis) or (216) 481-9436 (2400 bps)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5713, "properties": {"category": "rec.autos", "text": "From: rjwade@rainbow.ecn.purdue.edu (Robert J. Wade)\nSubject: Re: RE Aftermarket A/C units\nOrganization: Purdue University Engineering Computer Network\nDistribution: usa\nLines: 29\n\n>Les Bartel's comments:\n>>>>Sorry I can't help you with your question, but I do have a comment to\n>>make concerning aftermarket A/C units.  I have a Frost-King or Frost-Temp\n>>(forget which) aftermarket unit on my Cavalier, and am quite unhappy with\n>>it.  The fan is noisy, and doesn't put out much air.  I will never have\n>>an aftermarket A/C installed in any of my vehicles again.  I just can't\n>>trust the quality and performance after this experience.\n>> - les\n>\n>Let me add my .02 in. I had a A/C installed by the Ford garage and it did not\n>work as well as the A/C that was installed by the factory in pickups \n>identical to mine. I have talked to other people that have had the same\n>result. Don't know if this is just a probable with Ford or what??\n>\n>\tErnie Smith\n\ni agree, *never* have the dealer add anything to your car.  if you want a/c\nmake sure it is factory installed(honda's maybe excluded, many can't be \nbought with a/c installed at the factory, but i think, maybe, they actually\nuse all the needed parts for a true factory install when they put one in...as\nin bigger radiator etc...or are designed properly for this in the 1st place),\nanyway, my point is the dealer installed a/c won't be anywhere near as good\nas factory *and* the service bums will mess up your car when installing it...\nscratches, screwdriver holes in seats...parts not reinstalled correctly or \nwith all the screws etc.  i know a guy who has been service manager at a gm\ndealer for 18 years...he said never have a dealer add anything to your car...\nexcept, maybe, floormats...\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5714, "properties": {"category": "comp.windows.x", "text": "From: slosser@ntsc-rd.navy.MIL (Steve Slosser)\nSubject: UNIX interest group:  Where is it?\nOrganization: The Internet\nLines: 17\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: \"xpert\" <xpert@expo.lcs.mit.edu>\n\nI know that this is not the correct place to post this, but I have \nexhausted all other logical options.  I used to be on the INFO-UNIX \nnewsgroup mailer.  The mailers mysteriously quite coming around the end of\nlast year.  All e-mails requesting that I be placed back on the list have\nbeen ignored.  I have been unable to locate the administrator of this list.\n\nIf anyone knows of the internet address that I can send a the request to\nget back on this list, can you please send it to me.  If you don't know\nof this specific newsgroup mailer, I would appreciate the address of *any*\nUNIX-related newsgroup.  Thanks.\n\n                                       Cutoff,\n                                       Steve\n                                       slosser@ntsc-rd.navy.mil\n\nPS - Sorry for the non-X-related question.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5715, "properties": {"category": "talk.religion.misc", "text": "From: jmeritt@mental.mitre.org\nSubject: God's promise of Peace\nOrganization: UTexas Mail-to-News Gateway\nLines: 6\nNNTP-Posting-Host: cs.utexas.edu\n\nPSA 145:9  The LORD is good to all: and his  tender  mercies  are\nover all his works.\n\nJER 13:14  And I will dash them one against another, even the fa-\nthers and the sons together, saith the LORD: I will not pity, nor\nspare, nor have mercy, but destroy them.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5716, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re: Dr. Demento\nOrganization: University College of Wales, Aberystwyth\nLines: 12\nNntp-Posting-Host: 144.124.112.30\n\n\nIn article <1993Mar31.194202.7809@cs.brown.edu> jdk@cs.brown.edu (Jennet Kirschenbaum) writes:\n>\n>I haven't heard Dr. Demento in years.  Does anyone know if it \n>plays on any stations around Prov, RI (such as WBCN)?\n>\n>I'd love to pay for shipping and recording of the show too.\n\nThe best Boring-Old-Farts prefer The Breeze, 97.9FM, Salt\nLake City. Wonderfully catatonic. I wanted to take the whole station\nback with me in my flight bag. (Especially the girlie with the sexy\nvoice who did the Morning Show.)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5717, "properties": {"category": "talk.politics.mideast", "text": "From: bds@uts.ipp-garching.mpg.de (Bruce d. Scott)\nSubject: Re: News briefs from KH # 1026\nOrganization: Rechenzentrum der Max-Planck-Gesellschaft in Garching\nLines: 21\nDistribution: world\nNNTP-Posting-Host: uts.ipp-garching.mpg.de\n\nMack posted:\n\n\"I know nothing about statistics, but what significance does the\nrelatively small population growth rate have where the sampling period\nis so small (at the end of 1371)?\"\n\nThis is not small. A 2.7 per cent annual population growth rate implies\na doubling in 69/2.7 \\approx 25 years. Can you imagine that? Most people\nseem not able to, and that is why so many deny that this problem exists,\nfor me most especially in the industrialised countries (low growth rates,\nbut large environmental impact). Iran's high growth rate threatens things\nlike accelerated desertification due to intensive agriculture, deforestation,\nand water table drop. Similar to what is going on in California (this year's\nrain won't save you in Stanford!). This is probably more to blame than \nthe current government's incompetence for dropping living standards\nin Iran.\n-- \nGruss,\nDr Bruce Scott                             The deadliest bullshit is\nMax-Planck-Institut fuer Plasmaphysik       odorless and transparent\nbds at spl6n1.aug.ipp-garching.mpg.de                 -- W Gibson\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5718, "properties": {"category": "rec.sport.hockey", "text": "From: bks2@cbnewsi.cb.att.com (bryan.k.strouse)\nSubject: NHL RESULTS FOR GAMES PLAYED 4-05-93\nOrganization: AT&T\nKeywords: monday night's boxscore\nLines: 55\n\n\n\nNHL RESULTS FOR GAMES PLAYED 4/05/93.\n\n--------------------------------------------------------------------------------\n                                  STANDINGS\n      PATRICK              ADAMS              NORRIS              SMYTHE\n TM    W  L  T  PT   TM    W  L  T  PT   TM    W  L  T  PT   TM    W  L  T  PT\n \nxPIT  53 21  6 112  yMON  47 27  6 100  yDET  44 28  9  97  yVAN  42 28  9  93\n WAS  40 31  7  87  yBOS  46 26  7  99  yCHI  43 25 11  97  yCAL  40 29 10  90\n NJ   38 35  6  82  yQUE  44 25 10  98  yTOR  42 26 11  95  yLA   37 33  9  83\n NYI  37 34  6  80  yBUF  38 31 10  86   STL  35 34 10  80  yWIN  37 35  7  81\n NYR  34 33 11  79   HAR  24 49  5  53   MIN  34 35 10  78   EDM  26 45  8  60\n PHL  30 37 11  71   OTT   9 66  4  22   TB   22 51  5  49   SJ   10 68  2  22\n\nx - Clinched Division Title\ny - Clinched Playoff Berth\n\n--------------------------------------------------------------------------------\n\nHartford Whalers   (24-49-5)   1   1   3   -   5\nNew York Rangers  (34-33-11)   1   2   1   -   4\n\n1st period: HAR, Cunneyworth 5 - (Janssens, Greig) 12:21\n\t    NYR, Graves 34 - (Turcotte, Zubov) 18:39\n\n2nd period: NYR, Kovalev 19 - (Turcotte, Graves) 2:12\n\t    HAR, Sanderson 44 - (Cassels) (pp) 4:54\n\t    NYR, Amonte 30 - (Andersson, Vanbiesbrouck) (pp) 19:13\n\n3rd period: NYR, M.Messier 25 - (Amonte, Andersson) 2:26\n\t    HAR, Sanderson 45 - (Cassels) (sh) 5:23\n\t    HAR, Nylanders 6 - (Ladouceur) 8:35\n\t    HAR, Verbeek 36 - (Zalapski) 17:43\n\nPowerplay Opportunities-Whalers 1 of 4\n\t\t\tRangers 1 of 4\n\nShots on Goal-\tWhalers   7   8   8  -  23\n\t\tRangers   9  10  12  -  31\n\nHartford Whalers--Gosselin (4-7-1) (31 shots - 27 saves)\nNew York Rangers--Vanbiesbrouck (20-18-7) (23 shots - 18 saves)\n\nATT-17,806\n\n--------------------------------------------------------------------------------\n\n\n\\|||||/\n-SPIKE-\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5719, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: csd25@keele.ac.uk (C.M. Yearsley)\nSubject: Re: Can I Change \"Licensed To\" Data in Windows 3.1?\nLines: 13\nDistribution: world\nNNTP-Posting-Host: seq1.cc.keele.ac.uk\nX-Newsreader: TIN [version 1.1 PL6]\n\n: write over the \"Licensed to:\", but you can't change the name underneth it.  I\n: think if you wish to change this you would have to be a pirate, and we're not\n: going to promote that here.\n: \n\nNot so! My computer was supplied with my name in an 'interesting'\nmix of upper and lower case, and my workplace mis-typed. I'm\ngetting fed up with being 'CMyearslEY' at 'KEEL UNVERSITY'!\nIt took me 20 (!) phone calls to the supplier to get the computer\nworking at all. I really can't face tackling them again....\n\n\nChris\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5720, "properties": {"category": "rec.motorcycles", "text": "From: speedy@engr.latech.edu (Speedy Mercer)\nSubject: Re: Fortune-guzzler barred from bars!\nOrganization: Louisiana Tech University\nLines: 19\nNNTP-Posting-Host: bhm116e-spc.engr.latech.edu\n\nIn article <1993Apr16.104158.27890@reed.edu> mblock@reed.edu (Matt Block) writes:\n\n>(assuming David didn't know that it can be done one-legged,) I too would \n\nIn New Orleans, LA, there was a company making motorcycles for WHEELCHAIR \nbound people!  The rig consists of a flat-bed sidecar rig that the \nwheelchair can be clamped to.  The car has a set of hand controls mounted on \nconventional handlebars!  Looks wierd as hell to see this legless guy \ndriving the rig from the car while his girlfriend sits on the bike as a \npassenger!\n\n ----===== DoD #8177 = Technician(Dr. Speed) .NOT. Student =====----\n\n                          Stolen Taglines...\n              * God is real, unless declared integer. *\n            * I came, I saw, I deleted all your files. *\n         * Black holes are where God is dividing by zero. *\n        * The world will end in 5 minutes. Please log out. *\n       * Earth is 98% full.... please delete anyone you can. *\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5721, "properties": {"category": "sci.crypt", "text": "From: grady@netcom.com (1016/2EF221)\nSubject: IDEA vectors?\nOrganization: capriccioso\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 11\n\nI am testing IDEA block cipher implementations for correctness\nand needs some golden test vectors.  I've looked through\nthe postscript IDEA chapter but the single example gives me\nzero degrees of freedom.  I'll contact the inventor if necessary\nbut since we are NOT paying him money for use of his invention,\nI'd like to offload this from him.  Anybody got vectors?\n(No disease vectors, please).\n\n-- \ngrady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5722, "properties": {"category": "rec.autos", "text": "From: gregl@zimmer.CSUFresno.EDU (Greg Lewis)\nSubject: Re: WARNING.....(please read)...\nKeywords: BRICK, TRUCK, DANGER\nNntp-Posting-Host: zimmer.csufresno.edu\nOrganization: CSU Fresno\nLines: 33\n\nIn article <1qh336INNfl5@CS.UTK.EDU> larose@austin.cs.utk.edu (Brian LaRose) writes:\n>This just a warning to EVERYBODY on the net.  Watch out for\n>folks standing NEXT to the road or on overpasses.   They can\n>cause SERIOUS HARM to you and your car.  \n>\n>(just a cliff-notes version of my story follows)\n>\n>10pm last night, I was travelling on the interstate here in\n>knoxville,  I was taking an offramp exit to another interstate\n>and my wife suddenly screamed and something LARGE hit the side\n>of my truck.  We slowed down, but after looking back to see the\n>vandals standing there, we drove on to the police station.\n>\n>She did get a good look at the guy and saw him \"cock his arm\" with\n>something the size of a cinderblock, BUT I never saw him. We are \n>VERY lucky the truck sits up high on the road; if it would have hit\n>her window, it would have killed her. \n>\n>The police are looking for the guy, but in all likelyhood he is gone. \nStuff deleted...\n\nI am sorry to report that in Southern California it was a sick sport\nfor a while to drop concrete blocks from the overpasses onto the\nfreeway.  Several persons were killed when said blocks came through\ntheir windshields.  Many overpass bridges are now fenced, and they\nhave made it illegal to loiter on such bridges (as if that would stop\nsuch people).  Yet many bridges are NOT fenced.  I always look up at a\nbridge while I still have time to take evasive action even though this\n*sport* has not reached us here in Fresno.\n___________________________________________________________________\nGreg_Lewis@csufresno.edu\nPhotojournalism sequence, Department of Journalism\nCSU Fresno, Fresno, CA 93740\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5723, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Surgery of damaged tendons and median nerve\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 27\n\nIn article <BHATT.93Apr12161425@wesley.src.honeywell.com> bhatt@src.honeywell.com writes:\n>I thought I will explore the net wisdom with the following questions:\n>\n>  Is there any better way to control the pain than what the surgeon suggested?\n>  How long will such pain last?  Will the pain recur in the future?\n>\nNo one can answer that.  If she gets reflex sympathetic dystrophy,\nit could last forever.  Just hope she does not.  Most don't.\n\n>  Do damaged (partially cut) tendons heal completely and is all of the finger\n>  strength regained?  How long does it take for the complete healing process?\n>\n\nSometimes they do and sometimes they don't.  You just have to do the\nbest job you can reattaching and hope.  You should know in a few\nmonths.\n\n\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5724, "properties": {"category": "rec.sport.baseball", "text": "From: admiral@jhunix.hcf.jhu.edu (Steve C Liu)\nSubject: Baseball Stats\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 17\nDistribution: usa\nExpires: 5/5/93\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\nSummary: 1992 EWB II Stats wanted\n\n\tHello, my friends and I are running the Homewood Fantasy Baseball\nLeague (pure fantasy baseball teams). Unfortunely, we are running the league\nusing Earl Weaver Baseball II with the Comm. Disk II and we need the stats\nfor the 1992 season. (Preferably the 1992 Major League Stat Disk) We have\nthe '92 total stats but EWB2 needs the split stats otherwise we have 200\ninning games because the Comm. Disk turns total stats into vs. L's stats\nunless you know both right and left -handed stats.\n\n\tSo, if anyone has the EWB2 '92 Stat Disk please e-mail me!\n__________________________________________________________________________\n|Admiral Steve C. Liu        Internet Address: admiral@jhunix.hcf.jhu.edu|\n|\"Committee for the Liberation and Intergration of Terrifying Organisms  |\n|and their Rehabilitation Into Society\" from Red Dwarf - \"Polymorph\"     |\n|****The Bangles are the greatest female rock band that ever existed!****|\n|   This sig has been brought to you by... Frungy! The Sport of Kings!   |\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5725, "properties": {"category": "alt.atheism", "text": "From: kempmp@phoenix.oulu.fi (Petri Pihko)\nSubject: Re: Is Morality Constant (was Re: Biblical Rape)\nOrganization: University of Oulu, Finland\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 187\n\nBill Conner (bil@okcforum.osrhe.edu) wrote:\n \n: There are a couple of things about your post and others in this thread\n: that are a little confusing. An atheist is one for whom all things can\n: be understood as processes of nature - exclusively.\n\nThis definition does not include all atheists (see the FAQ). However,\nI (for one) do think there is no need to invoke any divine or\nspiritual explanations. \n\nIt makes a big difference to claim that all things can be understood\nas natural processes, and to claim that our observations do not\nrequire us to postulate any divine intervention, or anything spiritual,\nfor that matter. Humans are not omnipotent, and neither is science.\nHowever, science has one advantage theology doesn't: it is self-\ncorrecting, with nature as its judge. \n\nIt is delightful to see how scientific inquiry is revealing a self-\nconsistent, simple picture of our universe. Science is no longer\na bunch of separate branches, it is one. From particle physics to\npsychology. And no aspect of our life, or our universe, is safe\nfrom its stern and stony eye. Not even our consciousness.\n\n There is no need\n: for any recourse to Divnity to describe or explain anything. There is\n: no purpose or direction for any event beyond those required by\n: physics, chemistry, biology, etc.; everything is random, nothing is\n: determnined.\n\nActually, determinism vs. indeterminism is a philosophical question,\nand science cannot say whether the whole thing is actually somehow\nsuperdeterministic or not. I think the question does not have\nany meaning, as far as individual human beings go. If their apparent\nfree will is an illusion, it does not appear to be so from their\nperspective. Bill, can you say _for sure_ whether you have a free\nwill or not? \n\n: This would also have to include human intelligence of course and all\n: its products. There is nothing requiring that life evolve or that it\n: acquire intelligence, it's just a happy accident.\n\nMaybe. Who are we to tell? It seems intelligence is useful - when\nduring the history of Earth has _one species_ been able to control\none third of the whole biosphere? This can still be a result of \nnumerous happy accidents our genetic machinery blindly replicates\nand preserves. Even that machinery can be result of the same\nprinciple - only the systems that can start replicating will\nsurvive, those which don't don't make it. (Recommended reading: t.o)\n\n: For an atheist, no\n: event can be preferred to another or be said to have more or less\n: value than another in any naturalistic sense, and no thought -about-\n: an event can have value. \n\nFrom whose perspective? I value events and things subjectively, from\nmy perspective. Nature does not have values, because it does not have\na perspective - values arise from awareness. If I have a subjective\nperspective, it is easy to assume that other people also do, and if\nI think about what it would it be like in their position, I will\neventually discover the Golden Rule. Morality is not necessarily\na gift from heavens, in fact, it may be a product of evolution.\nPerhaps we are aware of ourselves because a sense of identity\nis helpful, allows us to play the roles of others and make us respect\nothers who seem to have identity, too. \n\nBill, have you ever read Aristotle? Try his Ethica Nikomakhea (sp.)\nfor starters.\n\n: How then can an atheist judge value? What is the basis for criticizing\n: the values ennumerated in the Bible or the purposes imputed to God? On\n: what grounds can the the behavior of the reliogious be condemned? It\n: seems that, in judging the values that motivate others to action, you\n: have to have some standard against which conduct is measured, but what\n: in nature can serve that purpose? What law of nature can you invoke to\n: establish your values.\n\nC.S. Lewis tells us that this argument was the main reason why\nhe abandoned his atheism and became Christian. The argument is\nseverely flawed.\n\nSome values, such as the Golden Rule, can have a rational basis. Some\nothers, like the basic idea of wanting to live, has probably its\nroots in the way our brains are wired. Lewis ignored the very real\npossiblity that natural selection could also favour altruistic\nbehaviour, and morality as well. Indeed, as humans evolved better\nand better in building and using tools, they also became better\nat killing each other. It is a logical necessity that evolution could\nonly favour those who knew how to use tools, but not against one's\nown people.\n\nThe Bible reveals quite nicely that the morality of the early Jews\nwas not beyond this. A simple set of rules to hold the people\ntogether, under one god. Their god did not care much about people\nof other nations. \n\nAt the time of the NT, things were quite different - the Jews\nwere under rule of an _empire_, and could no longer simply ignore\nthe Gentiles. A new situation required a new morality, and along\nwith it a new religion was born. (A mutation in a meme pool.)\n\n: Since every event is entirely and exclusively a physical event, what\n: difference could it possibly make what -anyone- does, religious or\n: otherwise, there can be no -meaning- or gradation of value. The only\n: way an atheist can object to -any- behaviour is to admit that the\n: objection is entirely subjective and that he(she) just doesn't like it\n: - that's it. Any value judgement must be prefaced by the disclaimer\n: that it is nothing more than a matter of personal opinion and carries\n: no weight in any \"absolute\" sense.\n\nIt looks like you haven't bothered to read philosophy. Whenever there\nis an observer, there is a subjective point of view, which may \nvalue its existence and happiness (even if that were just a result\nof some physical event), and other's happiness, too, if the observer\ncomes to think about it. In an absolutely objective sense, that is,\nwithout any observers or subjects, moral judgments lose their\nmeaning. \n\nIt is not possible for a value to simply exist without a point of\nview. This includes gods, too, their values are only _their_ \npersonal judgments, not absolute truths, since such truths\ndo not exist. \n\nThe fact that most people do not deliberately want to hurt others\nis a manifestation of the way we have fought for our existence\nby becoming social beings who can think and value others'\nexistence.\n\nMorality is not property of humans alone - chimps, dolphins and\nmany other species show great care for each other. Dolphins have\nsometimes saved humans from drowning, a good deed indeed. \n\n: That you don't like what God told people to do says nothing about God\n: or God's commands, it says only that there was an electrical event in your\n: nervous system that created an emotional state that your mind coupled\n: with a pre-existing thought-set to form that reaction. That your\n: objections -seem- well founded is due to the way you've been\n: conditioned; there is no \"truth\" content. The whole of your\n: intellectual landscape is an illusion, a virtual reality.\n\nThe last statement does not logically follow. In fact, there is\nevery reason to believe our thoughts can model reality very\nwell, and our senses can convey reliable information. Solipsism\nis still a logical possibility, but not a very likely one.\n\nYou are continuously mixing two different views: the subjective\npoint of view (which we all share) and an objective point of view,\n_which does not exist_. Any observer or thinker, any personal being,\nhas its own point of view. It does not matter whether this point\nof view is a result of some physical events or not, it does not\ncease to be subjective. \n\nFrom a non-observers non-point of view, values do not exist. Neither\ndoes pain, or pleasure, or beauty, or love. Such things are \ninherently subjective. \n\nOnce again, if god wants wives to submit to their husbands, or even\nto make a leap of faith into the unknown, or wants to punish us if\nwe don't, I disagree with his morals. I do not think my morals come\nfrom any supreme being - to remove my morals means the same than\nto make me a zombie, a machine without a single thought. If god\ngave us morality to judge, but I disagree with him, it is not my\nfault. He is free to replace my morals. I cannot see what is the\npoint of giving someone a moral system which disagrees with one's\nown and then to get mad at this. \n\nGod must be schizophrenic.\n\n: All of this being so, you have excluded\n: yourself from any discussion of values, right, wrong, goood, evil,\n: etc. and cannot participate. Your opinion about the Bible can have no\n: weight whatsoever.\n\nNeither can the opinion of any god, for that matter. I cannot understand\nwhy a subjective opinion of a thing made of matter is in any way\nless credible than an opinion of a thing made of something else.\n\nBill, take note: Absolute values must be independent of _any_ being,\n_including_ gods. If god has a subjective viewpoint, it is his\nown point of view, and his morals are his own. \n\nPetri\n\n--\n ___. .'*''.*        Petri Pihko    kem-pmp@          Mathematics is the Truth.\n!___.'* '.'*' ' .    Pihatie 15 C    finou.oulu.fi    Physics is the Rule of\n       ' *' .* '*    SF-90650 OULU  kempmp@           the Game.\n          *'  *  .*  FINLAND         phoenix.oulu.fi  -> Chemistry is The Game.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5726, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: was:Go Hezbollah!\nOrganization: Aiken Computation Lab, Harvard University\nLines: 57\n\nIn article <Apr15.175334.72079@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n\n[most of Brads post deleted.]\n\n>we have come to accept and deal with, the Lebanese Resistance\n>on the other hand is not going to stop its attacks on OCCUPYING \n>ISRAELI SOLDIERS until they withdraw, this is the only real \n>leverage that they have to force Israel to withdraw.\n\n\tTell me, do these young men also attack Syrian troops?\n\n\n>with the blood of its soldiers.  If Israel is interested in peace,\n>than it should withdraw from OUR land.\n\n\tThere must be a guarantee of peace before this happens.  It\nseems that many of these Lebanese youth are unable to restrain\nthemselves from violence, and unable to to realize that their actions\nprolong Israels stay in South Lebanon.\n\n\tIf the Lebanese army was able to maintain the peace, then\nIsrael would not have to be there.  Until it is, Israel prefers that\nits soldiers die rather than its children.\n\n\n>If Israel really wants to save some Israeli lives it would withdraw \n>unilaterally from the so-called \"Security Zone\" before the conclusion\n>of the peace talks.  Such a move would save Israeli lives,\n>advance peace efforts, give Israel a great moral lift, better Israel's \n>public image abroad and give it an edge in the peace negociations \n>since Israel can rightly claim that it is genuinely interested in \n>peace and has already offered some important concessions.\n\n\tIsrael should withdraw from Lebanon when a peace treaty is\nsigned.  Not a day before.  Withdraw because of casualties would tell\nthe Lebanese people that all they need to do to push Israel around is\nkill a few soldiers.  Its not gonna happen.\n\n>Along with such a withdrawal Israel could demand that Hizbollah\n>be disarmed by the Lebanese government and warn that it will not \n>accept any attacks against its northern cities and that if such a\n>shelling occurs than it will consider re-taking the buffer zone\n>and will hold the Lebanese and Syrian government responsible for it.\n\n\n\tWhy should Israel not demand this while holding the buffer\nzone?  It seems to me that the better bargaining position is while\nholding your neighbors land.  If Lebanon were willing to agree to\nthose conditions, Israel would quite probably have left already.\nUnfortunately, it doesn't seem that the Lebanese can disarm the\nHizbolah, and maintain the peace.\n\nAdam\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5727, "properties": {"category": "misc.forsale", "text": "From: jyow@desire.wright.edu\nSubject: CAMERA: Olympus Stylus, super small\nOrganization:  Wright State University \nLines: 9\n\nOlympus Stylus, 35mm, pocket sized, red-eye reduction, timer, fully automatic.\nTime & date stamp, carrying case.  Smallest camera in its class.\nRated #2 in Consumer Reports.  Excellent condition and only 4 months old.\nWorth $169.95.  Purchased for $130.  Selling for $100.  \n-- \n************************************************************************\nJason Yow\t\t\t\tHuman Factors Psychology Program\nWright State University, Dayton, OH\tE-mail: jyow@desire.wright.edu\n************************************************************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5728, "properties": {"category": "soc.religion.christian", "text": "From: smayo@world.std.com (Scott A Mayo)\nSubject: Re: proof of resurection\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 33\n\njsledd@ssdc.sas.upenn.edu (James Sledd) writes:\n\n>Finally:\n>There is no proof of the resurrection of Christ, except in our spirits\n>communion with his, and the Father's.  It is a matter of FAITH, belief\n>without logical proof.  Incedently one of the largest stumbling blocks for\n>rational western man, myself included.\n>I hope that this is taken in the spirit it was intended and not as a \n>rejection of the resurrection's occurance.  I beleive, but I wanted to point \n>out the weakness of logical proofs.\n\nTerms are being used in a loaded way here.\n\n\"Logical proof\" is an extremely messy thing to apply to real\nlife. If you think otherwise, try to construct a proof that\nyesterday happened. Obviously it did; anyone old enough to be\nreading this was there for it and remembers that it happened.\nBut *proof*? A proof starts with axioms and goes somewhere.\nYou need axioms to talk about logical proof. You can say that\nyou remember yesterday, and that you take as axiom that anything\nyou clearly remember happened. I could counterclaim that you\nhallucinated the whole thing.\n\nTo talk about proofs of historical events, you have to relax the\nterms a bit. You can show evidences, not proofs. Evidences of the\nresurrected Jesus exist. Proofs do not.\n\nI think Christianity goes down in flames if the resurrection is\never disproved. I also think that this will not happen, as\nthe evidence for the resurrection is quite good as these things\ngo. It is not entirely fair to claim that you can only take\nthe resurrection on faith. There are reasons to believe it\nthat appeal to the mind, too.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5729, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: caldwell@brahms.udel.edu (David L Caldwell)\nSubject: Re: Borland's Paradox Offer\nNntp-Posting-Host: brahms.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 19\n\n>I am considering buying Borland's Paradox for Windows since I\n>would like to use a database with Windows (I don't have/use\n>one yet) for both work/home use.  I would like to advantage\n>of Borland's \"$129.95 until April 30\" offer if this package\n>is everything that Borland claims it to be.  So, I was\n>wondering ... has anybody used this and/or have any opinions?\n>\n>-- Tom Belmonte\n\nI've been using MS Access (still available from some stores for $99.00)\nand I am quite pleased with it.  It's relatively easy to learn, very easy\nto use and somewhat easy to program.  I highly recomend it, particularly\nat $99.00!  I have not used Paradox for Windows, but I don't expect it to\nbe $30.00 better than Access (IMHO).\n\n\n\t\t\t\t--Dave\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5730, "properties": {"category": "sci.electronics", "text": "From: msf@skaro.as.arizona.edu (Michael Fulbright)\nSubject: Re: Analog switches/Balanced Demodulators\nDistribution: na\nOrganization: University of Arizona UNIX Users Group\nLines: 13\n\ncaadams@atlas.cs.upei.ca (Kenny Adams) writes:\n\n>hi,\n>\tinstead of using a +15vdc supply for the 4066 try using a +7 and -7\n>volt supply.  i have some commercial audio equipment that uses this approach\n>for ground referenced audio.  they use the -7 volt supply as the logic\n>ground.\n\nIn this case would the switch control voltages be -7V to turn the switch\noff and >0V to turn the switch on?\n\nmichael fulbright\nmsf@as.arizona.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5731, "properties": {"category": "soc.religion.christian", "text": "From: whitsebd@nextwork.rose-hulman.edu (Bryan Whitsell)\nSubject: Re: \"Accepting Jesus in your heart...\"\nReply-To: whitsebd@nextwork.rose-hulman.edu\nOrganization: Computer Science Department at Rose-Hulman\nLines: 20\n\nstuff deleted ...\n\n> Religion (especially Christianity) is nothing more than a DRUG.\n> Some people use drugs as an escape from reality.  Christians inject\n> themselves with jeezus and live with that high. \n \nYour logic is falty.  If Christianity is a DRUG, and once we die we\ndie, then why would you be reluctant to embrase this drug so that\nwhile you are alive you enjoy yourself.\n\nI also question your overall motives for posting this article.  Why\nwould you waste your presious fews seconds on this earth posting your\nopinon to a group that will generally reject it.\n\nIf you die, never having acepting Christ as your savior, I hope you\nhave a fantastic life that it is all you evver dreamed because it is\nal of heaven you will ever know.\n\nIn Christ's Love,\nBryan\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.272+0000", "event": "documents", "entityId": 5732, "properties": {"category": "talk.politics.mideast", "text": "From: aa229@Freenet.carleton.ca (Steve Birnbaum)\nSubject: Re: How many israeli soldiers does it take to kill a 5 yr old child?\nReply-To: aa229@Freenet.carleton.ca (Steve Birnbaum)\nOrganization: The National Capital Freenet\nLines: 27\n\n\nIn a previous article, steel@hal.gnu.ai.mit.edu (Nick Steel) says:\n\n>Q: How many occupying israeli soldiers (terrorists) does it \n>   take to kill a 5 year old native child?\n>\n>A: Four\n>\n>Two fasten his arms, one shoots in the face,\n>and one writes up a false report.\n\nThis newsgroup is for intelligent discussion.  I want you to either smarten\nup and stop this bullshit posting or get the fuck out of my face and this\nnet.\n\n   Steve\n\n-- \n------------------------------------------------------------------------------\n|   Internet: aa229@freenet.carleton.ca              Fidonet: 1:163/109.18   |\n|             Mossad@qube.ocunix.on.ca                                       |\n|    <<My opinions are not associated with anything, including my head.>>    |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5733, "properties": {"category": "talk.politics.misc", "text": "From: starowl@bolero.rahul.net (Michael D. Adams)\nSubject: Re: How many heterosexuals are there?\nNntp-Posting-Host: bolero\nReply-To: starowl@a2i.rahul.net\nX-Header: IGNORE ignore Ignore IgNoRe this line\nOrganization: D Service Actuarial Consulting\nLines: 11\n\nkaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n\n>_TOO_ many.\n\nAgreed.  We need more folks to admit they're bi.\n\n-- \nMichael D. Adams\t(starowl@a2i.rahul.net)\t  Champaign, IL / southeast AL\n\n   \"THRUSH believes in the two-party system: The masters and the slaves.\"\n\t\t-- Napoleon Solo (from The Man from U.N.C.L.E)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5734, "properties": {"category": "sci.med", "text": "From: Donald Mackie <Donald_Mackie@med.umich.edu>\nSubject: Re: REQUEST: Gyro (souvlaki) sauce\nOrganization: UM Anesthesiology\nLines: 11\nDistribution: world\nNNTP-Posting-Host: 141.214.86.38\nX-UserAgent: Nuntius v1.1.1d9\nX-XXDate: Fri, 23 Apr 93 14:56:04 GMT\n\nIn article <1993Apr22.205341.172965@locus.com> Michael Trofimoff,\ntron@fafnir.la.locus.com writes:\n>Would anyone out there in 'net-land' happen to have an\n>authentic, sure-fire way of making this great sauce that\n>is used to adorn Gyro's and Souvlaki?\n\nI'm not sure of the exact recipe, but I'm sure acidophilus is one of\nthe major ingredients.   :-)\n\nDon Mackie - his opinions\nUM Anesthesiology will disavow\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5735, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rem@buitc.bu.edu (Robert Mee)\nSubject: Diamond Speedstar Driver for v3.1\nOrganization: Boston University, Boston, MA, USA\nLines: 16\n\n\nI am looking for a WIN31 driver (or set) for my Diamond \nSpeedstar 1MB video card. Does anybody know of an archive\nsite that has these? I looked at CICA and it had drivers for\nthe Stealth card and for Generic ET4000 cards but not one \nspecifically for the Speedstar. Is there one? Or has Diamond\ndropped the Speedstar out of the driver development loop.\n\nThanks for any info,\n\nRob\n-- \n\nRobert Mee     Boston University Information Technology      (rem@bu-it.bu.edu)\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5736, "properties": {"category": "comp.graphics", "text": "From: george@ccmail.larc.nasa.gov (George M. Brown)\nSubject: Re: PCX\nOrganization: Client Specific Systems, Inc.\nLines: 41\nNNTP-Posting-Host: thrasher.larc.nasa.gov\n\nIn article <1993Apr14.220100.17867@freenet.carleton.ca> ad994@Freenet.carleton.ca (Jason Wiggle) writes:\n>From: ad994@Freenet.carleton.ca (Jason Wiggle)\n>Subject: PCX\n>Date: Wed, 14 Apr 1993 22:01:00 GMT\n>\n>Hello\n>\tHELP!!! please\n>\t\tI am a student of turbo c++ and graphics programming\n>\tand I am having some problems finding algorithms and code\n>\tto teach me how to do some stuff..\n>\n>\t1) Where is there a book or code that will teach me how\n>\tto read and write pcx,dbf,and gif files?\n>\n>\t2) How do I access the extra ram on my paradise video board\n>\tso I can do paging in the higher vga modes ie: 320x200x256\n>\t800x600x256\n>\t3) anybody got a line on a good book to help answer these question?\n>\n>Thanks very much !\n>\n>send reply's to : Palm@snycanva.bitnet\n>\n>Peace be\n>Blessed be\n>Stephen Palm\n\nA book that I can somewhat recommend is :\n                     \n                     Pratical Image Processing in C\n                     by Craig A. Lindley\n                     published by Wiley\n\nIt addresses reading/writing to/from PCX/TIFF files; image acquisition, \nmanipulation and storage; and has source code in the book. The source is \nprimarily written in Turbo C and naturally has conversion possibilities. I \nhave converted some of it to Quick C. Naturally, the code has some problems \nin the book - as usuall. Typos, syntax, etc. are problems. It can be a good \nlearning experience for someone who is studying C. There is also a companion \ndisk with source available for order and $50.00. Overall, the book is not \nbad. I acquired the book at WaldenSoftware.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5737, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Unconventional peace proposal\nOrganization: The Department of Redundancy Department\nLines: 85\n\nIn article <1483500348@igc.apc.org> cpr@igc.apc.org (Center for Policy Research) writes:\n>\n>From: Center for Policy Research <cpr>\n>\n>A unconventional proposal for peace in the Middle-East.\n>---------------------------------------------------------- by\n>\t\t\t  Elias Davidsson\n\nOf all the stupid postings you've brought here recently, it is\nilluminating that you chose to put your own name on perhaps the\nstupidest of them.\n\n>The following proposal is based on the following assumptions:\n>\n>1.      Fundamental human rights, such as the right to life, to\n>education, to establish a family and have children, to human\n>dignity, the right to free movement, to free expression, etc. are\n>more important to human existence that the rights of states.\n\nDoes this mean that you are calling for the dismantling of the Arab\nstates? \n\n>2.      In the event of a conflict between basic human rights and\n>rights of collectivities, basic human rights should prevail.\n\nApparently, your answer is yes.\n\n>6.      Attempts to solve the Israeli-Arab conflict by traditional\n>political means have failed.\n\nAttempts to solve these problem by traditional military means and\nnon-traditional terrorist means has also failed.  But that won't stop\nthem from trying again.  After all, it IS a Holy War, you know.... \n\n>7.      As long as the conflict is perceived as that between two\n>distinct ethnical/religious communities/peoples which claim the\n>land, there is no just nor peaceful solution possible.\n\n\"No just solution possible.\"  How very encouraging.\n\n>Having stated my assumptions, I will now state my proposal.\n\nYou mean that it gets even funnier?\n\n>1.      A Fund should be established which would disburse grants\n>for each child born to a couple where one partner is Israeli-Jew\n>and the other Palestinian-Arab.\n[...]\n>3.      For the first child, the grant will amount to $18.000. For\n>the second the third child, $12.000 for each child. For each\n>subsequent child, the grant will amount to $6.000 for each child.\n>\n>4.      The Fund would be financed by a variety of sources which\n>have shown interest in promoting a peaceful solution to the\n>Israeli-Arab conflict, \n\nNo, the Fund should be financed by the Center for Policy Research.  It\nIS a major organization, isn't it?  Isn't it?\n\n>5.      The emergence of a considerable number of 'mixed'\n>marriages in Israel/Palestine, all of whom would have relatives on\n>'both sides' of the divide, would make the conflict lose its\n>ethnical and unsoluble core and strengthen the emergence of a\n>truly civil society. \n\nYeah, just like marriages among Arabs has strengthened their\nsocieties. \n\n>The existence of a strong 'mixed' stock of\n>people would also help the integration of Israeli society into the\n>Middle-East in a graceful manner.\n\nThe world could do with a bit less Middle Eastern \"grace\".\n\n>Objections to this proposal will certainly be voiced. I will\n>attempt to identify some of these:\n\nBoy, you're a one-man band.  Listen, if you'd like to Followup on your\nown postings and debate with yourself, just tell us and we'll leave\nyou alone.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5738, "properties": {"category": "sci.space", "text": "From: simon@cyklop.nada.kth.se (Simon Tardell)\nSubject: Re: Sunrise/ sunset times\nNntp-Posting-Host: cyklop.nada.kth.se\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 14\n\nIn <1993Apr21.141824.23536@cbis.ece.drexel.edu> jpw@cbis.ece.drexel.edu (Joseph Wetstein) writes:\n\n>Hello. I am looking for a program (or algorithm) that can be used\n>to compute sunrise and sunset times.\n\n>I would appreciate any advice.\n\nI once thought it would be easiest fitting a sine to the times. But not.\nThis gave  discrepancy of upto six minutes. If you fit a sine series\nyou'll get a very good fit after just three or four terms though. This\npresumably has to do with the eccentricity of the Earths orbit.\n\n-- \nSimon Tardell, Ff88, simon@nada.kth.se              V}ga v{gra cgs!\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5739, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <<Pompous ass\nOrganization: California Institute of Technology, Pasadena\nLines: 57\nNNTP-Posting-Host: punisher.caltech.edu\n\nAndrew Newell <TAN102@psuvm.psu.edu> writes:\n\n>>I think you should support your first claim, that people will simply\n>>harass me no matter what, as I doubt this is true. I think *some* of the\n>>theists will be at a loss, and that is enough reason for me.\n>Because \"IN GOD WE TRUST\" is a motto on the coins, and the coins\n>are a representation of the government, christians are given\n>ammunition here to slander atheists as unpatriotic.\n\nSo, we should ban the ammunition?  Why not get rid of the guns?\n\n>And yes, I have heard this used in conversation with christians.\n>Sure, they may fall back on other things, but this is one they\n>should not have available to use.\n\nIt is worse than others?  The National Anthem?  Should it be changed too?\nGod Bless America?  The list goes on...\n\n>Imagine if the next year's set of coins were labeled with\n>the motto:   \"GOD IS DEAD\".\n>Certainly, such a statement on U.S. coins would offend almost\n>every christian.  And I'd be tempted to rub that motto in the\n>face of christians when debunking their standard motto slinging\n>gets boring.\n\nThen you'd be no better than the people you despise.\n\n>Any statement printed on an item that represents\n>the government is an endorsement by the government.\n\nOh?\n\n>The coin motto is an endorsement of trusting in god.\n\nAn endorsement, or an acknowledgement?  I think gods are things that people\nare proud of, but I don't think the motto encourages belief.\n\n>I don't particularly feel like trusting in god,\n>so the government IS putting me down with every\n>coin it prints.\n\nIs it?\n\n[...]\n>For the motto to be legitimate, it would have to read:\n>   \"In god, gods, or godlessness we trust\"\n\nWould you approve of such a motto?\n\n>Whether the motto was intended to be anti-atheist or not,\n>it turns up as an open invitation to use as an anti-atheist tool.\n\nAnd removing the tool will solve the problem?\n\nOr will it increase the problem?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5740, "properties": {"category": "comp.windows.x", "text": "From: drisko@ics.com (Jason Drisko)\nSubject: Re: app-defaults files\nKeywords: app-defaults Xdefaults\nNntp-Posting-Host: sunburn.ics.com\nOrganization: Integrated Computer Solutions, Inc.\nLines: 30\n\nHello,\n\n   When starting bx if you recieve an error message saying\n\"cannot load app-defaults file...\" check your XAPPLRESDIR\nenvironment variable and then put the file BuilderXcessory \n( this is the app-defaults file for BX ) in the directory\nspecified by the XUSERFILESEARCHPATH environment variable.\n\n   If you don't have an XUSERFILESEARCHPATH environment variable\nthen set XUSERFILESEARCHPATH to be the directory where the\nBuilderXcessory file is. You can do this using the setenv\ncommand under csh. Note that the name ends in .ad so you will\nhave to set XUSERFILESEARCHPATH to {BX}/%N.ad to get the\napp-defaults to load correctly.\n\n   To make sure the the app-defaults file can be read by all\nthe users, make sure that a copy of or a link to the app-defaults\nfile exists in /usr/lib/X11/app-defaults or \n/usr/openwin/lib/app-defaults, depending on how your system is\nset up.\n\n   Once you have taken care of this set the *systemDirectory\nresource to be the directory in which you have installed BX. \nFor example let's say I've installed BX in /t then my system\ndirectory resource should be set like this :\n\n*systemDirectory: /t/builderXcessory\n\n    Thanks,\n      ICS Tech Support\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5741, "properties": {"category": "sci.electronics", "text": "From: oxenreid@chaos.cs.umn.edu ()\nSubject: Re: Radar detector DETECTORS?\nNntp-Posting-Host: chaos.cs.umn.edu\nOrganization: University of Minnesota\nLines: 23\n\nIn <1993Apr06.173031.9793@vdoe386.vak12ed.edu> ragee@vdoe386.vak12ed.edu (Randy Agee) writes:\n\n>So, the questions are -\n>  What do the radar detector detectors actually detect?\n>  Would additional shielding/grounding/bypassing shield stray RF generated by\n>  a radar detector, or is the RF actually being emitted by the detector\n>  antenna?\n>  Are any brands \"quieter\" than others?\n\nOk, so your a HAM.   Well, tune in 10.7Mhz or 455Khz.  These numbers sound \nlike some you have herd before?   Thats right, you guessed it, they are \ncommon IF numbers.   Every Super-Het receiver has a local oscillator(s)\nwhich generates an IF.  This is what your detector detector is detecting (the\nlocal oscillator). \n\nSome of these have two or more local oscillator which generate more ways to\nreceiver you.  If you want to receiver something at say 10.525Ghz you must \ngenerate a local oscillator signal of 10.525Ghz - 10.7Mhz = your local osc\nfrequency.  This 10.7Mhz IF is then fed into a normal AGC ckt.  \nThe detector is keyed uppon the AGC voltage (your mileage may vary).  Since\nthe AGC is a negative feed back device, a positive voltage sets off a ...\nI think you get the picture.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5742, "properties": {"category": "comp.windows.x", "text": "From: trevor@telesoft.com (Trevor Bourget @ignite)\nSubject: Re: REPOST: Accelerators/Translations\nKeywords: Accelerator, case\nOrganization: Alsys Group, San Diego, CA, USA\nLines: 75\n\nIn <sdennis.735423404@aa.cad.slb.com> sdennis@osf.org writes:\n\n>I posted this a while ago and didn't receive one reply, and now we\n>have another bug report on the same subject. Can anybody help me out?\n\nThe problem is that Motif uses XGrabKey to implement menu accelerators,\nand these grabs are specific about which modifiers apply.  Unfortunately,\nthe specification for XGrabKey doesn't allow AnyModifier to be combined\nwith other modifiers, which is exactly what would be desired in this case:\n\"Ctrl Any<Key>q\".\n\n>In ORA Vol. 6, in the section on accelerators it says \"For information\n>on how to specify translation tables see Vol. 4...\", this is so you\n>know what to put for the XmNaccelerator resource.  If you go to\n>Vol. 4 it says, \"Likewise, if a modifier is specified, there is\n>nothing to prohibit other modifiers from being present as well. For\n>example, the translation:\n>\tShift<Key>q:\tquit()\n>will take effect even if the Ctrl key is held down at the same time as\n>the Shift key (and the q key).\n\nThis is true for accelerators and mnemonics, which are implemented using\nevent handlers instead of grabs; it's not true for menu accelerators.  If\nyou're a Motif implementor, I'd suggest lobbying to get the Xlib semantics\nchanged to support the feature I described above.  Otherwise, change the\ndocumentation for menu accelerators to properly set the user's\nexpectations, because menu accelerators are NOT the same thing as\ntranslations.\n\n>Is it possible to supply > 1 accelerator for a menu entry?\n\nIf you mean \"menu accelerator\", no it's not possible.  That's according to\nthe definition of the XmNaccelerator resource in the XmLabel manual page.\n\n>Keep in mind when answering this question that when using Motif you\n>can't use XtInstallAccelerators().\n\nI can't think of a reason why not.\n\n>How can you ensure that accelerators work the same independent of\n>case?  What I want is Ctrl+O and Ctrl+o to both be accelerators on one\n>menu entry.\n\nThere is a workaround for Motif users.  In addition to the normal menu\naccelerator you install on the XmPushButton[Gadget], set an XtNaccelerators\nresource on the shell (TopLevel or Application).  Install the shell's\naccelerators on itself and all of its descendants with\nXtInstallAllAccelerators (shell, shell).\n\nFor example,\n\n  applicationShell - mainWindow - menuBar - fileCascade\n\t\t\t\t\t  -- filePulldown - openPushbutton\n\t\t\t\t\t\t\t  - exitPushbutton\n\n  *openPushbutton.accelerator = Ctrl<Key>O\n  *openPushbutton.acceleratorText = Ctrl+O\n  *exitPushbutton.accelerator = Ctrl<Key>Q\n  *exitPushbutton.acceleratorText = Ctrl+Q\n\n  *applicationShell.accelerators = #override\\n\\\n    Ctrl<Key>O: PerformAction(*openPushbutton, ArmAndActivate)\\n\\\n    Ctrl<Key>Q: PerformAction(*exitPushbutton, ArmAndActivate)\n\nYou have to write and add the application action PerformAction, which you\ncan implement by using XtNameToWidget on the first argument and then\nXtCallActionProc with the rest of the arguments.\n\nI tested out something similar to this.  To shorten development time, I\nused TeleUSE's TuNinstallAccelerators resource to install the accelerators\non the shell, and I directly invoked the Open and Quit D actions instead\nof asking the pushbuttons to do it for me, but the more general approach I\ndescribed above should work.\n\n-- Trevor Bourget (trevor@telesoft.com)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5743, "properties": {"category": "comp.sys.mac.hardware", "text": "From: guykuo@carson.u.washington.edu (Guy Kuo)\nSubject: SI clock reports\nSummary: Request for SI clock poll\nKeywords: SI,clock,upgrade,oscillator,chip\nArticle-I.D.: shelley.1qokppINNree\nOrganization: University of Washington\nLines: 18\nNNTP-Posting-Host: carson.u.washington.edu\n\nI am continuing to collect user results to produce a more comprehensive\nreport on IIsi clock oscillator upgrades. I you have attempted the modification\nplease drop me a note with details of your experience. The more reports \nobtained, the more accurate the numbers I will generate.\n\nIf possible, please include the following:\n  1) Top speed achieved\n  2) System configuration at top Mhz setting\n       a) speed rating of the CPU (the last two digits printed on CPU #)\n       b) presence of additional heat sinks\n       c) Nubus & FPU cards used\n       d) floppy drive functionality on both 800 and 1.4 M disks\n  3) Damage incurred during modification\n  4) Damage due to higher speed use\n  5) Average length of time the CPU is on. (i.e. 8 hours a day)\n  6) Unusual other modifications to the usual procedure\n\nGuy Kuo <guykuo@u.washington.edu>\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5744, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Rosicrucian Order(s) ?!\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 22\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nKent:\n\n     You say that\n\n>There are about 4-10 competing Rosicrucian orders existing today,\n                      ^^^^^^^^^\n>most of them are spin-offs from OTO and other competing organizations\n>from the 19th century France/Germany. Maybe I should write an article\n                        Please don't!  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>about all this, I spent some time investigating these organizations\n>and their conceptual world view systems.\n\n     Name just three *really* competing Rosicrucian Orders. I have\nprobably spent more time than you doing the same. \n\n     None of them are spin-offs from O.T.O. The opposite may be the\ncase. \n\nStudy Harder,\n\nTony\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5745, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Steed.Bell@macrocosm.omahug.org (Steed Bell)\nSubject: [ NETWORKING ] How to get 10 Ma\nReply-To: steed.bell@macrocosm.omahug.org\nOrganization: The MacRocosm BBS, Lawrence, KS\nLines: 10\n\nPeter, I'm sure someone out there has a better/easier way to do what you want\nto do, but I'll tell you how we do it where I work. We have about 15 Macs\nnetworked together using Appletalk and PhoneNet connectors. To chat we use a\nprogram called 'Broadcast'. With it we can send brief messages to all or\nselected machines within the network.\n\nHope that helps...\n\nSteed\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5746, "properties": {"category": "talk.politics.guns", "text": "From: HADCRJAM@admin.uh.edu (MILLER, JIMMY A.)\nSubject: Re: My Gun is like my American Express Card\nOrganization: University of Houston Administrative Computing\nLines: 20\nDistribution: world\nNNTP-Posting-Host: uhad2.admin.uh.edu\nX-News-Reader: VMS NEWS 1.24\nIn-Reply-To: arc@cco.caltech.edu's message of 21 Apr 1993 12:25:23 GMT\n\nIn <1r3efjINN3jj@gap.caltech.edu> arc@cco.caltech.edu writes:\n\n> Thomas Parsli <thomasp@ifi.uio.no> writes:\n> >I also believe Texas has some of the most liberal 'gun-laws' in USA......\n> \n> In Texas, you cannot carry a handgun.  Period.  Either concealed or open.\n\n  Currently, there is a bill before the Texas legislature that would make it\nlegal for some ordinary folks to carry concealed weapons.  I don't have the\ndetails, sorry.\n\nsemper fi,\n\nJammer Jim Miller \nTexas A&M University '89 and '91\n________________________________________________________________________________\n I don't speak for UH, which is too bad, because they could use the help.     \n\"Become one with the Student Billing System. *BE* the Student Billing System.\"\n \"Power finds its way to those who take a stand.  Stand up, Ordinary Man.\"    \n      ---Rik Emmet, Gil Moore, Mike Levine: Triumph \t\t              \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5747, "properties": {"category": "comp.windows.x", "text": "From: ethan@cs.columbia.edu (Ethan Solomita)\nSubject: Re: X protocol packet type\nArticle-I.D.: cs.C52I2q.IFJ\nOrganization: Columbia University Department of Computer Science\nLines: 7\n\nIn article <93091.144124DEP@SLACVM.SLAC.STANFORD.EDU> <DEP@SLACVM.SLAC.STANFORD.EDU> writes:\n>Is there a way to identify an X-protocol packet under DECNET? Under\n>TCP/IP?\n>\n\tThe information in the packets isn't necessarily\ndistinctive -- you need to know that it is an X11 connection.\n\t-- Ethan\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5748, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: WINBENCH 3.11 help -- graphics comparison?!?\nFrom: franklig@helium.gas.uug.arizona.edu (Gregory C Franklin )\nOrganization: University of Arizona, Tucson\nLines: 32\n\nIn article <1pqd9hINNbmi@zephyr.grace.cri.nz> srg3sir@grv.grace.cri.nz writes:\n>\n>\n>In article <C4zoGD.C56@news.udel.edu> swyatt@bach.udel.edu (Stephen L Wyatt) writes:\n>>I have a question about WINBENCH (pc labs thing) 3.11..\n>>\n>>I have a 386/33 and a Ahead B (512k) card and got these results-\n>>\n>>windows vga driver - 2.44 million\n>>ahead B (640-480-256) driver - 455,000 winmarks\n>>windows svga (800-600-16) driver - 1.68 million winmarks...\n>>\n>>I was thinking about upgrading to a diamond 24x card.. I read it had about\n>>8 million winmark..\n>\n>On my 386dx 33Mhz 4Mb RAM\n>Winbench 2.5\n> 24x v2.02 16.7M        1,668,274\n>     v2.03 16.7M        1,668,985\n>     v2.03 16           4,602,428\n>     v2.03 256          7,635,278\n\nBe very careful with these results!  As I recall, numbers from Winbench\n2.5 are calculated differently from 3.1, and so these figures are not\ncomparable.\n\nHowever, to answer Stephen's question, replacing the Ahead B card with\na Diamond 24x will yield a cost-effective, dramatic speed increase for\nWindows.  That or the ATI Graphics Ultra Plus....\n--\nGreg Franklin\nfranklig@gas.uug.arizona.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5749, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: j_manning@csc32.enet.dec.com (John Manning)\nSubject: Mitsumi and SB Pro\nOrganization: Digital Equipment Corporation\nDistribution: usa\nLines: 18\n\n\nHi,\n\nI just bought a Mitsumi CD-ROM drive and a SB Pro soundcard.  The pin outs on\nthe CD-ROM line-out and the SB Pro CD-IN are not the same.  I am considering\ntaking the RCA output jacks on the Mitsumi interface card and routing them to\nthe line-in input on the SB Pro.  Will this work with multi-media software\nthat uses the CD-ROM and the SB Pro or do I need to go to the CD-IN pins on\nthe SB-Pro.\n\nThanks,\n\nJohn\n\n-------------------------------------------------------------------------------\n|    John Manning                       |  Opinions expressed are my own.     |\n|    j_manning@csc32.enet.dec.com       |  I do not represent Digital Equip.  |\n-------------------------------------------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5750, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: tonyd@ssc60.sbwk.nj.us (Tony DeBari)\nSubject: Re: FileManager: strange sizes in summary line\nOrganization: Lost In Space\nLines: 32\n\nIn <1993Apr21.143250.14692@bmers145.bnr.ca> masika@bnr.ca (Nicholas Masika) writes:\n>I have just noticed my FileManager doing something strange recently.\n>Usually, the line at the bottom of the FileManager (the status bar, I\n>guess) displays the total disk space and the total number of bytes for\n>the current selection.  If I select a whole bunch of files, I will get\n>an exact byte count.\n\n>Recently, I notice it incorrectly displays this count; it's truncating!\n>If I select a file that is, say, 532 bytes, it correctly displays '532 bytes'.\n>If I select select a file that is 23,482 bytes, it displays '23 bytes', \n>not 23 Kbytes, just 23 bytes!  If I select 893,352 it will report only\n>893 bytes in the selection.  If I select over a Meg worth of files, say\n>3,356,345 it reports 3 bytes!  It's as if it's got a problem with displaying\n>more than 3 characters!\n\n>My system: 486DX/33, 8M memory, Stacker 3.0, DOS 5, Win 3.1.  I've run\n>the latest virus scanners (scan102, f-prot) and they didn't report anything.\n>Could I have unknowingly altered something that controls the formatting\n>of the status bar in the FileManger?\n\nIt sounds like something/one may have set the 1000's separator to \".\" in\nContol Panel (under International).  This makes 23,482 look like 23.482\nand File Manager is chopping off what it thinks is the decimal part of\nthe file size. 3,356,345 becomes 3.356.345, and again, File Manager is\nconfused by the decimal points where there should be commas, chopping\noff everything to the right of the first period.\n\n-- \nTony DeBari          FQDN: tonyd@ssc60.sbwk.nj.us     CI$: 73117,452\n                     UUCP: ...!uunet!ssc60!tonyd      *P*: GHRW14B\n\na.k.a. Skip Bowler, captain of USENET Fantasy Bowling League Team 9.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5751, "properties": {"category": "alt.atheism", "text": "From: trajan@cwis.unomaha.edu (Stephen McIntyre)\nSubject: Re: The Problem of Satan (used to be: islamic authority over women)\nOrganization: University of Nebraska at Omaha\nLines: 103\n\nIn article <1993Apr5.165233.1007@news.unomaha.edu> trajan@cwis.unomaha.edu \n     (Stephen McIntyre) writes:\n\n> Of course, Bobby then states that Satan has no free will, that\n>    he does as God wants him to.  This brings up a host of\n>    paradoxes:  is God therefore evil; do I have free will\n>    or is God directing me also; if God is evil, which part\n>    of his infinite self is good and which is evil; etc.?\n\n> I would like for once a solid answer, not a run-about.\n\n# I hope I gave you a fairly solid answer to this one: I simply don't agree\n# with the embodied version of a Satan who is a separate creation or a force.\n# I wrote:\n\n>> The belief to which I ascribe is that evil is not a creation;\n>> rather, it is \"the absence of good.\"  This fits with all the\n>> logic about things having dual use: e.g., a knife can be used\n>> to sculpt and it can be used to kill.  Like entropy, evil is\n>> seen in this view as neither force nor entity.  Satan is,\n>> therefore, metaphorical.  In fact, there are several verses\n>> of the Holy Qur'an which appear to support this view and several\n>> Traditions as well.\n>\n>> For example, there is a Tradition that food should never be left open\n>> on a shelf or table overnight, lest \"Satan\" enter it.  It appears\n>> that this is a reference to as yet undiscovered germs; thus, the\n>> evil effect of spoiled food is described as \"Satan.\"\n\n>But there are many examples of Satan personified.  Which am I\n>     to believe?\n\n# And there are quite physical descriptions of Heaven and Hell in the\n# Holy Qur'an, the Bible, etc.  There have been times in the spiritual\n# and intellectual evolution of the modern human when these physical\n# descriptions of Heaven, Hell, and Satan were taken quite literally\n# and that *worked* for the time.  As I mentioned in the Tradition\n# cited above, for example, it was sufficient in the absence of a theory\n# about germs and disease spread by worms to simply describe the \"evil\"\n# which was passed to a consumer of spoiled food as \"satanic.\"\n\n     Which begs the question: if Satan in this case is\n     metaphorical, how can you be certain Allah is not\n     the same way?\n\n# The bottom line here, however, is that describing a spiritual plane\n# in human language is something like describing \"color\" to a person\n# who has been blind from birth.  You may want to read the book\n# FLATLAND (if you haven't already) or THE DRAGON'S EGG.  The first\n# is intended as a light hearted description of a mathematical con-\n# cept...\n\n[some deleted for space saving]\n\n# When language fails because it cannot be used to adequately describe\n# another dimension which cannot be experienced by the speakers, then\n# such conventions as metaphor, allegory, and the like come to be\n# necessary.  The \"unseen\" is described in terms which have reference`\n# and meaning for the reader/listener.  But, like all models, a compro-\n# mise must be made when speaking metaphorically: clarity and directness\n# of meaning, equivalence of perception, and the like are all\n# crippled.  But what else can you do?\n\n     This is why I asked the above.  How would you then\n     know God exists as a spirit or being rather than\n     just being metaphorical?  I mean, it's okay to say\n     \"well, Satan is just metaphorical,\" but then you\n     have to justify this belief AND justify that God is\n     not some metaphor for something else.\n\n     I say this because there are many, many instances of\n     Satan described as a being (such as the tormentor in \n     the Old Testament book of Job, or the temptor in the\n     New Testament Gospels).  In the same way, God too is\n     described as a being (or spirit.)  How am I to know\n     one is metaphorical and not the other.\n\n     Further, belief in God isn't a bar to evil.  Let's\n     consider the case of Satanists: even if Satan were\n     metaphorical, the Satanist would have to believe\n     in God to justify this belief.  Again, we have a \n     case where someone does believe in God, but by\n     religious standards, they are \"evil.\"  If Bobby\n     does see this, let him address this question also.\n\n[deleted some more on \"metaphor\"]\n\n>> Obviously more philosophizing on this issue is possible, but I'm\n>> not sure that the readers of this newsgroup would want to delve\n>> into religious interpretation further.  However, if anyone wishes\n>> to discuss this, I'm certainly willing (either off line - e-mail - or\n>> on line - posting).\n\nStephen\n\n    _/_/_/_/  _/_/_/_/   _/       _/    * Atheist\n   _/        _/    _/   _/ _/ _/ _/     * Libertarian\n  _/_/_/_/  _/_/_/_/   _/   _/  _/      * Pro-individuality\n       _/  _/     _/  _/       _/       * Pro-responsibility\n_/_/_/_/  _/      _/ _/       _/ Jr.    * and all that jazz...\n\n\n-- \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5752, "properties": {"category": "sci.space", "text": "From: pmolloy@microwave.msfc.nasa.gov (G. Patrick Molloy)\nSubject: Re: Eco-Freaks forcing Space Mining.\nNntp-Posting-Host: 128.158.30.103\nReply-To: pmolloy@microwave.msfc.nasa.gov (G. Patrick Molloy)\nOrganization: NASA/MSFC\nLines: 40\n\nIn article <1993Apr21.212202.1@aurora.alaska.edu>, nsmca@aurora.alaska.edu \nwrites:\n> Here is a way to get the commericial companies into space and mineral\n> exploration.\n> \n> Basically get the eci-freaks to make it so hard to get the minerals on earth..\n> You think this is crazy. Well in a way it is, but in a way it is reality.\n> \n> There is a billin the congress to do just that.. Basically to make it so\n> expensive to mine minerals in the US, unless you can by off the inspectors or\n> tax collectors.. ascially what I understand from talking to a few miner friends \n> of mine, that they (the congress) propose to have a tax on the gross income of\n> the mine, versus the adjusted income, also the state governments have there\n> normal taxes. So by the time you get done, paying for materials, workers, and\n> other expenses you can owe more than what you made.\n> BAsically if you make a 1000.00 and spend 500. ofor expenses, you can owe\n> 600.00 in federal taxes.. Bascially it is driving the miners off the land.. And\n> the only peopel who benefit are the eco-freaks.. \n> \n> Basically to get back to my beginning statement, is space is the way to go\n> cause it might just get to expensive to mine on earth because of either the\n> eco-freaks or the protectionist.. \n> Such fun we have in these interesting times..\n> \n> ==\n> Michael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\nThe current mining regulations and fees were set in the 1800's!\nWhat the so-called \"eco-freaks\" want to do is to simply bring those\nfees in line with current economic reality.  Currently, mining companies\ncan get access to minerals on public lands for ridiculously low prices --\nsomething like $50!  The mining lobby has for decades managed to block\nany reform of these outdated fees.  In fact, the latest attempt to reform\nthem was again blocked -- President Clinton \"compromised\" by taking the\nmining fee reforms out of his '94 budget, and plans to draft separate\nlegislation to fight that battle.\nIf you want to discuss this further, I suggest you take this to talk.environment.\n\nG. Patrick Molloy\nHuntsville, Alabama\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5753, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rnichols@cbnewsg.cb.att.com (robert.k.nichols)\nSubject: Need info on PS/2 mouse port\nOrganization: AT&T\nDistribution: na\nLines: 11\n\nWould someone please email me the pinout for a PS/2 6-pin mini DIN mouse\nport?  I'm trying to make an adapter for a serial mouse, and the dealer who\nknows what adapter works with the mouse I bought doesn't have it in stock.\nI have several different adapters, but none of them make sense based on\nwhat sketchy information I have about the port (they have connections to\n\"reserved\" pins).\n\n--\nBob Nichols\nAT&T Bell Laboratories\nrnichols@ihlpm.ih.att.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5754, "properties": {"category": "rec.motorcycles", "text": "From: moseley@u.washington.edu (Steve L. Moseley)\nSubject: Re: Observation re: helmets\nOrganization: Microbial Pathogenesis and Motorcycle Maintenance\nLines: 20\nDistribution: world\nNNTP-Posting-Host: microb0.biostat.washington.edu\n\nIn article <1qk5oi$d0i@sixgun.East.Sun.COM>\n egreen@east.sun.com (Ed Green - Pixel Cruncher) writes:\n\n>If your primary concern is protecting the passenger in the event of a\n>crash, have him or her fitted for a helmet that is their size.  If your\n>primary concern is complying with stupid helmet laws, carry a real big\n>spare (you can put a big or small head in a big helmet, but not in a\n>small one).\n\nSo what should I carry if I want to comply with intelligent helmet laws?\n\n(The above comment in no way implies support for any helmet law, nor should \nsuch support be inferred. A promise is a promise.)\n\nSteve\n__________________________________________________________________________\nSteve L. Moseley                                  moseley@u.washington.edu\nMicrobiology SC-42                                Phone: (206) 543-2820\nUniversity of Washington                          FAX:   (206) 543-8297\nSeattle, WA 98195\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5755, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks \n\tonly\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 35\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\njhart@agora.rain.com (Jim Hart) writes:\n> You don't care that people are being lied to, fooled into believing the \n> chip gives \"privacy\" when it fact it allows wiretaps?\n\nIt does give privacy, just not absolute privacy.  The announcement was very \nup front about this, and about allowing wiretaps.  How is this \"fooling\" \nanyone?\n\n> are you so smart that you know when you're talking \n> to somebody who has a wiretap chip on their phone instead of a privacy \n> chip with private keys?) \n\nSure.  The two don't interoperate.  You couldn't talk to, say, a Cylink phone \nfrom a Clipper phone.  I would expect even multiprotocal phones to come with \nindicators saying which kind of link encryption is in use...\n\n> We *do* need an alternative to NSA-bugged telephones, but \n> we're talking inexpensive *telephones* here, including hand-sized \n> cellulars, that need strong crypto, real privacy.\n\nSo start a company and build them.  This is still mostly a capitalist \neconomy...\n\n> What we need is a true *privacy chip*.  For example, a real-time \n> voice-encryption RSA, put it into a silicon compiler and spit out \n> ASIC.  Put this chip on the market as a de facto standard for \n> international business, diplomats, and private communications.\n\nI agree.  Go for it.\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.273+0000", "event": "documents", "entityId": 5756, "properties": {"category": "talk.politics.misc", "text": "From: phil@netcom.com (Phil Ronzone)\nSubject: Re: Part 4 (Re: Looks like Clayton must retract\nOrganization: Generally in favor of, but mostly random.\nDistribution: ca\nLines: 48\n\nIn article <1ppi1gINNg19@elroy.jpl.nasa.gov> carlos@beowulf.Jpl.Nasa.Gov (Carlos Carrion) writes:\n    >>>Does the greatly increased rates of incarceration amongst\n    >>>blacks show that they are dysfunctional or that the majority\n    >>>of them support criminal activity?\n    >>>\n    >Isn't this a matter of demographics? Doesn't this simply show\n    >that since criminal behaviour is common (or apt to be common)\n    >in the 18-34 (insert your favorite correct numbers here) year\n    >old range and since the percentage of blacks in this range is\n    >higher than in other groups, then it follows statistically\n    >that more blacks in prison is an expected result?\n    >\n    >Note that I haven't said anything about blacks being given\n    >stiffer or longer sentences than other groups. I'm sure this\n    >has to have an effect on the issue of over-representation of\n    >blacks in prison...\n\nBlacks have the same (+- 2%) crime report rate, arrest rate, and incarceration\nrate for violent crimes.\n\nSo I doubt that for violent crimes, that there is any inherent bias mechanism\npresent.\n\nThere is a wider discrepancy for all crimes for blacks wrt to 3 categories.\n\nInterestingly enough, the discrepancy is the largest in the Southern\nUnited States -- where blacks are incarcerated well BELOW the average in\nthe rest of the United States! Which points to an anti-bias-against wrt\nblacks.\n\nIn any case, for violent crimes and burglary and drug selling, blacks are\nreported 53%, arrested 44%, and are present in jails/prisons 47% (1988).\n\nConsidering that 12% of the population is black, 6% are black males, and\nsome percentage of that is out of the high/low age groups, we do have a\nsituation where (if I remember my old calculations right) 4% of the\npopulation commits almost half of the really nasty crimes.\n\nBlacks with similar histories (crime) to whites get the same sentences,\nexcept in the South, where they receive around 20% less on paper!!\n\n\n\n-- \nThere are actually people that STILL believe Love Canal was some kind of\nenvironmental disaster. Weird, eh?\n\nThese opinions are MINE, and you can't have 'em! (But I'll rent 'em cheap ...)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5757, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re: Drinking and Riding\nOrganization: University College of Wales, Aberystwyth\nLines: 10\nNntp-Posting-Host: 144.124.112.30\n\n\n>So, you can't ride the bike, but you will drive truck home? The\n>judgement and motor skills needed to pilot a moto are not required in a\n>cage? This scares the sh*t out of me.\n>  \nThis is a piece of psychology its essential for any long term biker to\nunderstand. People do NOT think 'if I do this will someone else suffer?'.\nThey assess things purely on' if I do this will I suffer?.\n\nThis is a vital concept in bike-cage interaction.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5758, "properties": {"category": "rec.autos", "text": "From: music@erich.triumf.ca (FRED W. BACH)\nSubject: Re: WARNING.....(please read)...\nOrganization: TRIUMF: Tri-University Meson Facility\nLines: 33\nDistribution: world\nNNTP-Posting-Host: erich.triumf.ca\nKeywords: BRICK, TRUCK, DANGER\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <C5JoIt.E31@bcstec.ca.boeing.com>, neil@bcstec.ca.boeing.com\n (Neil Williams) writes...\n\n# \n#As long as we're on the subject... Several years ago myself and two others\n#were riding in the front of a Toyota pickup heading south on Interstate 5\n#north of Seattle, WA. Someone threw a rock of an overpass and hit our\n#windshield. Not by accident I'm sure, it was impossible to get up to the\n#overpass quickly to see who did it. We figured it was kids, reported it and\n#left.\n#A couple of years ago it happend again and killed a guy at my company. He was\n#in his mid-fourties and left behind a wife and children. Turned out there was\n#a reformatory for juviniles a few blocks away. They caught the 14 year old\n#that did it. They put a cover over the overpass, what else could they do?\n#I don't think I'll over forget this story.\n#Neil Williams, Boeing Computer Services, Bellevue WA.\n#..\n# \n\n  Neil, what did they do to the 14-year-old who they caught?  What did\n the man's insurance company do?  This could be significant and in any case\n very interesting.\n\n  Followups to alt.parents-teens.\n\n\n Fred W. Bach ,    Operations Group        |  Internet: music@erich.triumf.ca\n TRIUMF (TRI-University Meson Facility)    |  Voice:  604-222-1047 loc 327/278\n 4004 WESBROOK MALL, UBC CAMPUS            |  FAX:    604-222-1074\n University of British Columbia, Vancouver, B.C., CANADA   V6T 2A3\n\n These are my opinions, which should ONLY make you read, think, and question.\n They do NOT necessarily reflect the views of my employer or fellow workers.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5759, "properties": {"category": "misc.forsale", "text": "From: Wil.Chin@launchpad.unc.edu (Wilson Chin)\nSubject: Re: DATman for sale.\nNntp-Posting-Host: lambada.oit.unc.edu\nOrganization: University of North Carolina Extended Bulletin Board Service\nLines: 19\n\nIn article <bdavisC4yuM3.K3J@netcom.com> bdavis@netcom.com (Bryan Davis)\nwrites:  \n>Sony TCD-D3 DAT walkman for sale.  Hardly used, still under\n>warrantee.  Comes with optical digital input/output as well as standard\n>RCA analog cables. Includes recharable battery, charger, and AC adaptor. \n>$650.00 or best offer. \n\nJust to inform the readers of newsrc Sony has just introduced a new DATman,\nthe TCD-D7 which is smaller and less expensive than the D3.  Also, the D7\nhas a coaxial jack which the D3 lacks.  Oh, the D3 has always been\navailable through mail-order houses for less than $700 dollars new... with\nthe new model coming out, I suspect the now obsolete D3 will be selling for \neven less. \n  \n--\n   The opinions expressed are not necessarily those of the University of\n     North Carolina at Chapel Hill, the Campus Office for Information\n        Technology, or the Experimental Bulletin Board Service.\n           internet:  laUNChpad.unc.edu or 152.2.22.80\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5760, "properties": {"category": "misc.forsale", "text": "Subject: Price quote wanted\nFrom: sam.halperin@cccbbs.UUCP (Sam Halperin) \nReply-To: sam.halperin@cccbbs.UUCP (Sam Halperin) \nDistribution: world\nOrganization: Cincinnati Computer Connection - Cincinnati, OH - 513-752-1055\nLines: 46\n\nFrom: sam.halperin@cccbbs.uceng\n\n\n\n\n\n486 DX 50 mHz in Zero Insertion Force Socket\nEmpty over-drive socket\nEISA motherboard with 256k cache\n-->2 32 bit EISA Slots\n-->2 32 bit VESA local bus slots\n-->4 16 bit ISA slots\n8 MB 70ns RAM\n-->8 SIMMS sockets filled with 1mb strips (0 sockets open)\n32 bit EISA IDE hard drive controller\n330 Meg IDE hard disk drive w/ 64k cache (12ms)\nDiamond Viper Weitek 9000 VESA local bus graphics card w/ 2mb\n15\" MAG MX15F monitor\n2 Serial(NS16550AFN UART), 1 parralell & 1 game ports\nFull tower case\n-->250 Watt power supply\n-->5 X 5.25\" bays\n-->2 X 3.5\" bays\n-->2 X Hard Drive bays\n1.2MB 5.25\" & 1.33MB 3.5\" Floppy Drives\nEnhanced 101 key keyboard\nHi-Resolution 400 DPI Serial Mouse\nMS DOS 5.0 and MS Windows 3.1 or newer\n\n    AMI BIOS\n    Joint Data Motherboard\n    30 Day Money Back Gaurantee\n    Unconditional 2 Year Parts Warranty\n    Lifetime Labor Warranty\n    One year Nationwide on site service\n\n\nThis system is currently availble from Comtrade, the company that\nwon some of the highest (over dell, gateway and IBM) awards in\nrecent PC magazine reviews.  Your price must be highly\ncompetitive, without sacrificing any of the quality standards\nlisted above.\n\n    PLEASE RESPOND TO sam.halperin@cccbbs.uceng\n    VIA E-MAIL\n                                                                                                                        \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5761, "properties": {"category": "comp.windows.x", "text": "From: cverond@nyx.cs.du.edu (Cristiano Verondini)\nSubject: Image plotting source code needed\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 7\n\nHi,\n\n\tI'm looking for source sample on how to create a window with an image\nin it (actually a 2dim matrix of unsigned char). Any help will be appreciated!\n:))\n\n\t\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5762, "properties": {"category": "rec.autos", "text": "From: mark@ve6mgs.ampr.org (Mark G. Salyzyn)\nSubject: Re: Do it yourself front-end alignment possible?\nArticle-I.D.: ve6mgs.1993Apr6.200818.10500\nDistribution: na\nOrganization: ADEC Systems Inc.\nLines: 44\n\ndavidd@lonestar.utsa.edu (David . De Leon) writes:\n\n>In article <113364@bu.edu> selick@csa.bu.edu (Steven Selick) writes:\n>>I've got an 86 Plymouth Colt that I'd like to do a front-end alignment\n>>on. Is it possible to do without all of the fancy schmancy gadgets the\n>>pros have? How?\n>>-Steve\n>NO.NO.NO.NO.\n>If you do so, you are putting the lives of others on the road at consider-\n>able risk.  Why do you think mechanics are ASE certified??  Anyway you put\n>it, you need those *fancy scmancy* gadgets...\n\nAwww, right, you want all the home mechanics lined up against a wall and\nshot eh?\n\nBull Pucky you chicken! Read the service manual and get your head out of the\nsand! Certainly there are tools for the job that are cheaper than an alignment\nrack, that do the job as competently (albeit, not as swiftly), if not\nmore accurate, due to the natural pride an owner/mechanic places on his work.\nYou can do an `acceptable' job of aligning a car using simple tools and\nsome imaginative work that would *never* have the effect of endangering\nanyones life. The worst that happens is that your tires wear oddly (well,\nyou could have the wheels aiming TOTALLY pigeon toed and not be able\nto steer the car, raise your hands those that think their vision is\nso poor that they would screw up this badly!)\n\nI bet you are one of those people that feels that honing a cylinder wall\nwith sand paper will kill millions of people. It aint magic. Go take the\ncertification course, and look at the people that have never learned to add\nin their whole life that are taking the certification!\n\nBTW, I am disgusted at the Colt (and some of the other Chrysler offerings)\nbecause they go out of alignment if you sneaze at them. My '84 Chrysler\nLaser (Similar to the Daytona, a reskinned Colt) needed a realignment every\n3 months ... Bolt a good grade 12' 2x4 to each wheel, using a carefully welded\nspacer jig. Measure toe in, adjust to manufacturer specs. Camber a bit more\ndifficult to adjust and measure ... I used a micrometer to measure the\nspace between the rim and a funky bent up pipe that could be placed on\nupper and lower portions of the rim on the inside of wheel (hard to explain).\nThis same tool could be used instead of the 2x4s.  I had made these tools up\n*right* after the last alignment done professionally so I had a reference that\nthe original poster might not ...\n\nCiao -- Mark\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5763, "properties": {"category": "rec.motorcycles", "text": "From: oconnor@eng.umd.edu (Mark O'Connor)\nSubject: Re: Question about helmets\nOrganization: University of Maryland, College Park, MD\nLines: 10\nDistribution: world\nNNTP-Posting-Host: coffee.eng.umd.edu\nOriginator: oconnor@coffee.eng.umd.edu\n\n\nOn the other side of the fence, I owned a Bieffe off-road helmet.\nTook what I would consider a minor fall, and had visible damage\nto the shell.  Yes, the helmet did its job.  But the damage/impact\nratio was scary.  I own Bell Moto-5 now, have taken impacts on\norder of twice the Bieffe impact (we do this frequently in MX),\nand don't even have a scratch on it after two seasons.  My\nrecommendation is to buy _high_ quality gear.  YMMV.\n\n-mark\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5764, "properties": {"category": "sci.electronics", "text": "From: depolo@eniac.seas.upenn.edu (Jeff Depolo)\nSubject: Need manual for HP 1740 scope\nOrganization: University of Pennsylvania\nLines: 14\nNntp-Posting-Host: eniac.seas.upenn.edu\n\n\nI have a HP 1740 scope that (I think) has a problem in the HV section.\nSymptom: started turning on and off on its own, making intermittant\nbright flashes on the CRT, and then finally, passed away.  If you\nhave a manual (or any suggestions), please send me mail.  Will gladly\npay reproduction/shipping costs plus a little $ for your efforts for\nthe manual.  Thanks in advance.\n\n\t\t\t\t\t\t\t\t--- Jeff\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n Jeff DePolo  WN3A              Twisted Pair: (215) 337-7383H  387-3059W  \n depolo@eniac.seas.upenn.edu    RF: 443.800+ MHz    442.700+ MHz    24.150 GHz\n University of Pennsylvania     \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5765, "properties": {"category": "sci.space", "text": "From: shag@aero.org (Rob Unverzagt)\nSubject: Re: space food sticks\nKeywords: food\nArticle-I.D.: news.1pscc6INNebg\nOrganization: Organization?  You must be kidding.\nLines: 35\nNNTP-Posting-Host: aerospace.aero.org\n\nIn article <1pr5u2$t0b@agate.berkeley.edu> ghelf@violet.berkeley.edu (;;;;RD48) writes:\n> I had spacefood sticks just about every morning for breakfast in\n> first and second grade (69-70, 70-71).  They came in Chocolate,\n> strawberry, and peanut butter and were cylinders about 10cm long\n> and 1cm in diameter wrapped in yellow space foil (well, it seemed\n> like space foil at the time).  \n\nWasn't there a \"plain\" flavor too?  They looked more like some\nkind of extruded industrial product than food -- perfectly\nsmooth cylinders with perfectly smooth ends.  Kinda scary.\n\n> The taste is hard to describe, although I remember it fondly.  It was\n> most certainly more \"candy\" than say a modern \"Power Bar.\"  Sort of\n> a toffee injected with vitamins.  The chocolate Power Bar is a rough\n> approximation of the taste.  Strawberry sucked.\n\nAn other post described it as like a \"microwaved Tootsie Roll\" --\nwhich captures the texture pretty well.  As for taste, they were\nlike candy, only not very sweet -- does that make sense? I recall\nliking them for their texture, not taste. I guess I have well\ndeveloped texture buds.\n\n> Man, these were my \"60's.\"\n\nIt was obligatory to eat a few while watching \"Captain Scarlet\".\nDoes anybody else remember _that_, as long as we're off the\ntopic of space?\n\nShag\n\n-- \n----------------------------------------------------------------------\n       Rob Unverzagt        |\n  shag@aerospace.aero.org   |       Tuesday is soylent green day.\nunverzagt@courier2.aero.org | \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5766, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Sad day for hockey\nArticle-I.D.: netnews.118520\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 39\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <1pq50fINN15b@abyss.West.Sun.COM> dvb@ick (David Van Beveren) writes:\n>NO NO NO! since all the penalties fall into three classes, there should\n>only be three penalties:\n>\n>1. Foul (Any illegal contact with the other player or his stick with your\n>   body or stick). If you get 5 you are out for the game.\n>\n>2. Unsportsmanlike contact. (An intentional foul). This inlcludes all the\n>   current flavours of roughing, fighting and boarding. If you get two you\n>   are thrown out of the game, and fined.\n>\n>3. Technical foul. Bad mouthing the ref, by player or coach. Penalty shot\n>   is awarded. Two and you are thrown out of the game.\n>\n>Besides the penalty shot for one technical, if the team gets 5 penalties\n>in a period, the opposing team gets a penalty shot for every additional one,\n>until the end of the period. The victim gets two shots if he/she was in\n>the act of shooting when the foul ocured.\n\nThese new rule changes are great!  However, I think that your rules are\nMUCH too complicated.  How will the normal average fan be able to count\nhow many fouls a player has?  And then we would even have to remember the\nnames of the players, in order to determine who drew the foul!  And, of\ncourse, there will have to be new \"sub-positions\", like the power center\nwho just sits in the slot until the (blue, of course) puck comes near him,\nand the \"shooting defenseman\" and the \"point defenseman\".  Finally, we'll\nbe able to keep stats on the best and the worst penalty-shot takers. \nSince almost everyone on the ice will be getting fouled, we'll be able to\nsee Ulf Samuellson (sp?) and Tie Domi miss penalty shots like crazy.  \n\n;-) ;-) ;-)\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n\"Next time you go over my head, I'll have yours on a platter.\"\n\t\t\t\t\t\t-- Cmdr. Benjamin Sisko, 1993\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5767, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rsrodger@wam.umd.edu (Yamanari)\nSubject: Turbomodem+ (Complete Pc) question\nNntp-Posting-Host: rac2.wam.umd.edu\nOrganization: University of Maryland, College Park\nLines: 43\n\n\n\tI'm trying to transfer some software between two machines \n\tand I'm having real trouble.  My own Intel 14.4k (\n\tv32/v32bis/v42/v42bis) works fine--I just talk to it\n\tat 56k and everything comes out clear.  This other modem,\n\tat the other machine, is a \"Turbomodem+\" from \"The \n\tComplete PC\" (the machines are in seperate houses, \n\tso a direct serial link is impossible, and copying this\n\tmuch data to disk is a pain--easier to turn the machines\n\ton for a few hours and go see a movie--no, this is not\n\tpirated software).\n\n\tI am having no end of trouble trying to set it up.  It will\n\tdial and connect just fine--at 9600 baud.  But if I try to\n\tset the comm at 19k2, 38.4k or 56kbps, the stupid thing\n\tconnects, but just gives garbage (it connects 14.4k).  \n\tHis machine (a dx48633) has a 16550AFN UART, so that's\n\tnot the problem.\n\n\tIt seems to me that the stupid thing wants to talk to \t\n\ta comm program _at_ 14.400bps, even though it will take\n\tdialing instructions at 56k (and respond OK, etc. to \n\tother commands).  I don't have a comm program that can\n\tdo precisely 14.4k.  \n\n\tI looked at the manual but it was unclear.  All I know is,\n\tI didn't have this trouble with the Intel--it came\n\tready to connect this way.  Do I need to initialize it\n\tany way in particular?\n\n\tAlso, it's _using_ V.42bis and V.42 (and MNP5) when connecting\n\there (i.e., at 9600, since our tests at 14k4 are zip so far)\n\tbut it doesn't _say_ so there.  any ideas?\n\n\t(BTW:  I tried the initialization string that I use for\n\tmy modem, but it just gives ERROR on that one)\n\n\n-- \nMOSCOW: A grandfather who taught literature in an orphanage has gone on trial\nin Rostov-on-the-Don after confessing to more than 50 gruesome sexual murders\nwhose victims included children as young as eight.\n\t-- Events in modern history, from the Sunday Mail, 19-Apr-92\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5768, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: lipman@oasys.dt.navy.mil (Robert Lipman)\nSubject: CALL FOR PRESENTATIONS: Navy SciViz/VR Seminar\nExpires: 30 Apr 93 04:00:00 GMT\nReply-To: lipman@oasys.dt.navy.mil (Robert Lipman)\nDistribution: usa\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 66\n\n\n\t\t\tCALL FOR PRESENTATIONS\n\t\n      NAVY SCIENTIFIC VISUALIZATION AND VIRTUAL REALITY SEMINAR\n\n\t\t\tTuesday, June 22, 1993\n\n\t    Carderock Division, Naval Surface Warfare Center\n\t      (formerly the David Taylor Research Center)\n\t\t\t  Bethesda, Maryland\n\nSPONSOR: NESS (Navy Engineering Software System) is sponsoring a \none-day Navy Scientific Visualization and Virtual Reality Seminar.  \nThe purpose of the seminar is to present and exchange information for\nNavy-related scientific visualization and virtual reality programs, \nresearch, developments, and applications.\n\nPRESENTATIONS: Presentations are solicited on all aspects of \nNavy-related scientific visualization and virtual reality.  All \ncurrent work, works-in-progress, and proposed work by Navy \norganizations will be considered.  Four types of presentations are \navailable.\n\n     1. Regular presentation: 20-30 minutes in length\n     2. Short presentation: 10 minutes in length\n     3. Video presentation: a stand-alone videotape (author need not \n\tattend the seminar)\n     4. Scientific visualization or virtual reality demonstration (BYOH)\n\nAccepted presentations will not be published in any proceedings, \nhowever, viewgraphs and other materials will be reproduced for \nseminar attendees.\n\nABSTRACTS: Authors should submit a one page abstract and/or videotape to:\n\n     Robert Lipman\n     Naval Surface Warfare Center, Carderock Division\n     Code 2042\n     Bethesda, Maryland  20084-5000\n\n     VOICE (301) 227-3618;  FAX (301) 227-5753  \n     E-MAIL  lipman@oasys.dt.navy.mil\n\nAuthors should include the type of presentation, their affiliations, \naddresses, telephone and FAX numbers, and addresses.  Multi-author \npapers should designate one point of contact.\n\nDEADLINES: The abstact submission deadline is April 30, 1993.  \nNotification of acceptance will be sent by May 14, 1993.  \nMaterials for reproduction must be received by June 1, 1993.\n\nFor further information, contact Robert Lipman at the above address.\n\n\t  PLEASE DISTRIBUTE AS WIDELY AS POSSIBLE, THANKS.\n\n\n\n\nRobert Lipman                     | Internet: lipman@oasys.dt.navy.mil\nDavid Taylor Model Basin - CDNSWC |       or: lip@ocean.dt.navy.mil\nComputational Signatures and      | Voicenet: (301) 227-3618\n   Structures Group, Code 2042    | Factsnet: (301) 227-5753\nBethesda, Maryland  20084-5000    | Phishnet: stockings@long.legs\n\t\t\t\t   \nThe sixth sick shiek's sixth sheep's sick.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5769, "properties": {"category": "sci.electronics", "text": "From: cyberman@toz.buffalo.ny.us (Cyberman)\nSubject: CRT driver transistors\nLines: 28\nX-Maildoor: WaflineMail 1.00r\n\nDevice........ LT1839   @ IC (mA)..... 50\nV(BR)CEO (V).. 70       CCB (pF)...... 2.5\nV(BR)CBO (V).. 120      VCE (V)....... 15\nIC (mA) max... 300      Polarity...... NPN\nhFE min....... 20       Package....... 79-04\nhFE max....... 60       Material...... Metal\nfT (GHz)...... 1        Price (100+)..\n\nDevice........ LT5839   @ IC (mA)..... 60\nV(BR)CEO (V).. 65       CCB (pF)...... 1.5\nV(BR)CBO (V).. 80       VCE (V)....... 10\nIC (mA) max... 300      Polarity...... PNP\nhFE min....... 15       Package....... 79-04\nhFE max....... 60       Material...... Metal\nfT (GHz)...... 1.5      Price (100+)..\n@ VCE (V)..... 10\n\nAnyone know of a source for these parts (other than straight from\nMotorolla)?  I need 4 Lt1839's and 2 Lt5839 I've tried standard\nand they said \"We are out!\"\n\n                Stephen Cyberman@Toz.Buffalo.NY.US\n             Mangled on Fri  04-16-1993  at 13:50:28\n\n... If there's one thing I can't stand, it's intolerance.\n---\n * Blue Wave/QWK v2.12 *\n                                                       \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5770, "properties": {"category": "sci.space", "text": "From: MAILRP%ESA.BITNET@vm.gmd.de\nSubject: message from Space Digest\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 62\n\n\n\n\n\nPress Release No.19-93\nParis, 22 April 1993\n\nUsers of ESA's Olympus satellite report on the outcome of\ntheir experiments\n\n\"Today Europe's space telecommunications sector would not\nbe blossoming as it now does, had OLYMPUS not provided\na testbed for the technologies and services of the 1990s\". This\nsummarises the general conclusions of 135 speakers and 300\nparticipants at the Conference on Olympus Utilisation held in\nSeville on 20-22-April 1993. The conference was organised by\nthe European Space Agency (ESA) and the Spanish Centre for\nthe Development of Industrial Technology (CDTI).\n\nOLYMPUS has been particularly useful :\n-      in bringing satellite telecommunications to thousands of\n       new users, thanks to satellite terminals with very small\n       antennas (VSATs). OLYMPUS experiments have tested\n       data transmission, videoconferencing, business television,\n       distance teaching and rural telephony, to give but a few\n       examples.\n\n-      in opening the door to new telecommunications services\n       which could not be accommodated on the crowded lower-\n       frequency bands; OLYMPUS was the first satellite over\n       Europe to offer capacity in the 20/30 GHz band.\n\n-      in establishing two-way data relay links  OLYMPUS\n       received for the first time in Europe, over several months,\n       high-volume data from a low-Earth orbiting spacecraft and\n       then distributed it to various centres in Europe.\n\nWhen OLYMPUS was launched on 12 July 1989 it was the\nworld's largest telecommunications satellite; and no other\nsatellite has yet equalled its versatility in combining four\ndifferent payloads in a wide variety of frequency bands.\n\nOLYMPUS users range from individual experimenters to some\nof the world's largest businesses. Access to the satellite is\ngiven in order to test new telecommunications techniques or\nservices; over the past four years some 200 companies and\norganisations made use of this opportunity, as well as over\n100 members of the EUROSTEP distance-learning\norganisation.\n\n\n\nAs the new technologies and services tested by these\nOLYMPUS users enter the commercial market, they then\nmake use of operational satellites such as those of\nEUTELSAT.\n\nOLYMPUS utilisation will continue through 1993 and 1994,\nwhen the spacecraft will run out of fuel as it approaches the\nend of its design life.\n\n       \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5771, "properties": {"category": "sci.electronics", "text": "From: cmh@eng.cam.ac.uk (C.M. Hicks)\nSubject: Re: How do DI boxes work?\nOrganization: cam.eng\nLines: 36\nNntp-Posting-Host: tw100.eng.cam.ac.uk\n\nlancer@oconnor.WPI.EDU (Stephe Lewis Foskett) writes:\n\n\n>I'm doing sound for a couple of bands around here and we need Direct\n>Input boxes for the keyboards.  These are the little boxes that take a\n>line level out of the keyboard and transform it into low-Z for the run\n>to the mixer.  Sadly they cost like $50 (or more) each and I'm going\n\nThis is indeed one function, but more sophisticated ones do level control\nand ground-lift (separating the keyboard and mixer earths) aswell.\n\n>to need like 5 or 10 of them!  I looked inside one (belonging to\n>another band) and it looks like just a transformer.  Does anyone have\n\nSimple ones are just that - a transformer. A decent quality audio trans-\nformer will cost most of that $50. They are wired thus...\n\n\n       HOT   --------------|  |----------------- HOT\n                           )||(\n     Input from            )||(                Balanced out to mixer\n     Keyboard              )||(\n                           |  |----------------- COLD\n                           |\n       GND   --------------|-------------------- GND\n\nThe ground-lift switch disconnects the GND line from the mixer. The\ntransformer ratio depends on the precise application, but around 10:1\nturns ratio may be a good place to start.\n\nChristopher\n--\n ==============================================================================\n  Christopher Hicks    |      Paradise is a Linear Gaussian World\n  cmh@uk.ac.cam.eng    |    (also reported to taste hot and sweaty)\n ==============================================================================\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5772, "properties": {"category": "sci.crypt", "text": "From: lbrintle@news.weeg.uiowa.edu (Lee Brintle)\nSubject: Re: Re-inventing Crypto Policy?  An EFF Statement\nSummary: 40-bit key-half is way too small\nOrganization: Project Panda, Inc.\nLines: 23\n\nIn article <1993Apr16.204207.24564@eff.org> Danny Weitzner <djw@eff.org> \nwrites:\n>The 80-bit key will be divided between two escrow agents, each of whom\n>hold 40-bits of each key. \n\nPresumably, the key split is so that no one group controls the privacy\nof the key, and that it would be infeasible to illicitly gain access from\nboth agents.\n\nHowever, if one agent wishes to break the crypto without the cooperation\nof the other agent, a 40-bit key is not going to stand in the way of a\nbrute force attack.  If an agency (for example, the NSA) were to hold one\nof the two key-halves, then I don't imagine they really need the other half of\nthe key to start listening in.\n\nOr was that the point?   <grin>\n\n\n(This is not to imply, at all, that I like the idea of the rest of the\nsystem.)\n-- \nLee Brintle                    | ``And so, I leave you with this final word:\nDirector, Project Panda        |     twang.''\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5773, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: anik@crhc.uiuc.edu (Sadun Anik)\nSubject: Losing dark colors of my icons\nOrganization: Center for Reliable and High-Performance Computing\nLines: 19\nNNTP-Posting-Host: lyra.crhc.uiuc.edu\n\n\n  Here is an annoying problem. Whenever I save an icon which contains dark\ncolors like dark red or dark purple, these colors are converted to the\nbright colors. This happens with every icon editor including the image\neditor that came with SDK. I don't have this problem with .BMP files\neither; only with .ICO files or icon libraries. The problem is with\nthe icon colormap field in the icon file header. Checking the file\nwith a binary editor, I can see that the masks are OK. By editing the\ncolormap manually (copying from another icon that I didn't edit) I can\nfix the colors. Does anybody know what may be causing this problem? \n\nThanks.\n\n\n\n--\nSadun Anik, U of Illinois at Urbana-Champaign\nCenter for Reliable and High-performance Computing\ne-mail: anik@crhc.uiuc.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5774, "properties": {"category": "misc.forsale", "text": "From: bitzm@columbia.dsu.edu (MICHAEL BITZ)\nSubject: Adlib sound board for sale!\nLines: 17\nOrganization: Dakota State University\nLines: 17\n\n\n\tI have an Adlib sound board for sale.  It includes\n\tthe original disks, and I'll throw in a Windows 3.1\n\t.WAV sound file driver.  For those of you that are\n\tusing your PC Speaker for games, this will be a much\n\twelcomed board for your PC!\n\n\t$70.00 includes shipping to your home or office.\n\n\tEmail: bitzm@columbia.dsu.edu\n\n\n------------------------------------------------------------\nMike Bitz                   Internet: bitzm@columbia.dsu.edu\nResearch and Development              bitzm@dsuvax.dsu.edu\nDakota State University       Bitnet: s93020@sdnet.bitnet\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5775, "properties": {"category": "rec.motorcycles", "text": "From: kurt@oddjob.uchicago.edu (Kurt Henriksen)\nSubject: BRAKE ROTORS..CROSS DRILLING...1-312-702-8323\nOrganization: University of Chicago, Astronomy and Astrophysics\nDistribution: na\nLines: 1\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5776, "properties": {"category": "talk.politics.mideast", "text": "From: nstramer@supergas.dazixco.ingr.com (Naftaly Stramer)\nSubject: Re: How many israeli soldiers does it take to kill a 5 yr old child?\nNntp-Posting-Host: supergas\nReply-To: nstramer@dazixco.ingr.com\nOrganization: Intergraph Electronics\nLines: 40\n\n\nIn article <1993Apr13.164305.701@bernina.ethz.ch>, nadeem@p.igp.ethz.ch (Nadeem Malik) writes:\n\n>\n>Actually, if can remember correctly, was it not reported and even on camera\n>some time during the Israeli invasion of Lebanon, or when the itifada began,\n>that CNN caught regular uniformed Israeli soldiers breaking the arms of \n>some Arab youngsters in a very professional and brutal manner, (someone \n>please give full details if they can remember). \n\nSo was it on CNN or not? \n\n>This is one of the few\n>occassions on which such a scene has been transmitted to the West and \n>in the USA ... it caused uproar and was one of the factors that has significantly\n>changed the preception of the Israeli army's role in the mid-east.\n>\n>So there is proof for you!\n\n\nWhat proof. You said above: \"was it not reported...\" and \"someone please give \nfull details if they can remember\". Hear say is not proof. \n\n\n>It is obvious that is a systematic policy of the\n>Israelis which must be occurring on a massive scale behind the scenes.\n\nYes, like the 700 or more Palestinians brutally murdered by their brothers.\n\n\n>\n>Nadeem\n>\n\n\n-----\nNaftaly Stramer \t\t\t | Intergraph Electronics\nInternet: nstramer@dazixco.ingr.com      | 6101 Lookout Road, Suite A    \nVoice: (303)581-2370  FAX: (303)581-9972 | Boulder, CO 80301\n\"Quality is everybody's job, and it's everybody's job to watch all that they can.\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5777, "properties": {"category": "sci.space", "text": "From: steinly@topaz.ucsc.edu (Steinn Sigurdsson)\nSubject: Re: Vandalizing the sky\nOrganization: Lick Observatory/UCO\nLines: 23\nNNTP-Posting-Host: topaz.ucsc.edu\nIn-reply-to: flb@flb.optiplan.fi's message of Fri, 23 Apr 1993 12:01:38 GMT\n\nIn article <C5xr2w.Dnw.1@cs.cmu.edu> flb@flb.optiplan.fi (\"F.Baube[tm]\") writes:\n\n   From: \"Phil G. Fraering\" <pgf@srl03.cacs.usl.edu>\n\n   > Finally: this isn't the Bronze Age, [..]\n   > please try to remember that there are more human activities than\n   > those practiced by the Warrior Caste, the Farming Caste, and the\n   > Priesthood.\n\n   Right, the Profiting Caste is blessed by God, and may \n    freely blare its presence in the evening twilight ..\n\nThe Priesthood has never quite forgiven\nthe merchants (aka Profiting Caste [sic])\nfor their rise to power, has it?\n\n;-)\n\n*  Steinn Sigurdsson   \t\t\tLick Observatory      \t*\n*  steinly@lick.ucsc.edu \t\t\"standard disclaimer\"  \t*\n*  Ya know... you penguin types offend me. ...\t\t\t*\n*  My Gosh... Life is offensive!!   \t\t\t\t*\n*  Offensensitivity.\t\t- BB 1984\t\t\t*\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5778, "properties": {"category": "sci.space", "text": "From: dnadams@nyx.cs.du.edu (Dean Adams)\nSubject: Ariane v.56 Mission Data\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 114\n\n\n\nARIANESPACE FLIGHT 56\n\n(Flight V.56 was originally intended to carry the Hughes HS-601 series \nGalaxy IV satellite, but the payload was withdrawn just prior to flight.)\n\nThe 56th Ariane launch is now scheduled to place the ASTRA 1C and ARSENE \nsatellites into an improved geostationary transfer orbit (GTO), with \ninclination reduced to 5 degrees and apogee altitude increased by 150 km.\nThis will be the 28th launch of an Ariane 4 and the first in the 42L \nconfiguration, with 2 liquid strap-on boosters (PAL).  It will be launched\nfrom the newly refurbished Ariane launch complex ELA 2, in Kourou - French \nGuiana.\n\nThe launch vehicle performance requirement for this mission is 3,147 kg\nof which 2,944 kg represents the satellite mass.  The total vehicle mass\nat liftoff is 361,778 kg.\n\n\nRequired Orbit Characteristics:\n  Perigee Altitude ..... 200 km\n  Apogee Altitude ...... 36,160 km at injection \n  Inclination ..........   5 degrees\n\n\nThe Ariane 42L lift-off for Flight 56 is scheduled on Thursday,\nApril 29, 1993, as soon as possible within the following launch \nwindow:\n\n     Kourou Time        GMT (04/30/93)      Washington, DC\n     21:52 - 22:50      00:52 - 01:50       20:52 - 21:50\n\n\nLAUNCH VEHICLE:\n\nAriane 42L.  This is a three-stage liquid fueled launcher with two liquid \nfueled strap-on boosters.  The first stage (L220) is built by Aerospatiale,\nand is powered by 4 liquid fueled Viking V engines.  The second stage (L33)\nis built by MBB Erno and is powered by a single Viking IV engine.  Both the\nViking IV and V engines are manufactured by SEP.  The first and second stages\nuse a biliquid UH25/N2O4 fuel. The third stage (H10) is built by Aerospatiale,\nand is powered by a cryogenic H2/O2 fueled HM-7B engine built by SEP. The two\nstrap-on boosters (PAL) are each powered by a Viking VI engine, also built \nby SEP, which use the same biliquid fuel as the first and second stages.  \nThe fully assembled launch vehicle stands 56 meters high on the pad.  \nIt uses the Type 01 Ariane Short payload fairing.\n\n\nFlight Profile:\n\n +02:21  Liquid strap-on booster jettison\n +03:11  First stage separation\n +03:18  Second stage ignition\n +04:10  Fairing jettison\n +05:21  Second stage separation\n +05:26  Third stage ignition\n +17:30  Third stage shutdown / orbit injection\n +19:56  ASTRA 1C separation\n +22:36  Cyclade adapter separation\n +24:26  ARSENE separation\n +28:47  End of Ariane mission 56\n\n\nPAYLOADS:\n\nASTRA 1C is the third spacecraft in the fleet of \"Societe Europeenne\ndes Satellites\" to broadcast direct TV to homes all over Europe.\nBuilt by Hughes, it will be the second HS-601 launched by Ariane.\n\n  Total mass at lift-off .... 2,790 kg\n  Mass at GEO insertion ..... 1,700 kg\n  Dry mass .................. 1,180 kg     \n  On-board power ............ 3,300 W (end of life)\n  Nominal lifetime .......... 15 years     \n  Span of solar panels ...... 21 m\n  On-Orbit position ......... 19.2 degrees east, over Africa.\n\n Transmission capacity:  \n   34 channels in Ku-band, via 18 transponders.\n\n In-flight operations:\n   Solar array deployment ............ about 6 days after lift-off\n   First of 3 apogee motor firings ... about 40 hours after lift-off \n                                       at 4th apogee\n\n\nARSENE is the first spacecraft built by the European Space Industry\nfor the benefit of the world amateur radio community.  \n\n  Total mass at lift-off .... 154 kg\n  Mass at GEO insertion .....  98 kg\n  Dry mass ..................  97 kg     \n  On-board power ............ 42 W (end of life)\n  Nominal lifetime .......... 3 years     \n  Spacecraft dimensions ..... 1.1m x .96m\n  Orbital parameters ........ 20000/36000 km, 0 inclination, period 17:30.\n\n Transmission capacity:  \n   S-band:  1 transponder at 2.446 ghz\n   VHF/UHF: 145/435 mhz \n\n\nLAUNCH COVERAGE:\n\nAll Ariane missions are broadcast live via satellite from Kourou. \nCoverage begins at 30 minutes before launch and continues until \nall payloads have been deployed.  This mission will likely be carried\nin the US on Galaxy 6, however it could be Galaxy 7 or another satellite.\n(What is the European satellite normally used for Ariane coverage?)\n \n\n-{ Dean Adams }-\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5779, "properties": {"category": "sci.electronics", "text": "From: pauls@trsvax.tandy.com\nSubject: Re: Need Info on DSP project\nNf-ID: #R:ee.ualberta.ca:735344986:trsvax:288200082:000:164\nNf-From: trsvax.tandy.com!pauls    Apr 21 09:31:00 1993\nLines: 6\n\n\nMotorola has a good app note on a 10 band equalizer using a 56000 DSP. It\ncould be easily ported to an Ariel board, or even a Turtle Beach 56K\ndevelopment system.\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.274+0000", "event": "documents", "entityId": 5780, "properties": {"category": "sci.med", "text": "From: Daniel.Prince@f129.n102.z1.calcom.socal.com (Daniel Prince)\nSubject: Re: Is MSG sensitivity superstition?\nLines: 12\n\n To: milsh@nmr-z.mgh.harvard.edu (Alex Milshteyn)\n\n AM> Having said that, i might add, that in MHO, MSG does not enhance\n AM> flavor enoughf for me to miss it.  When I go to chinese places,\n AM> I order food without MSG.  \n\nTo me, MSG tastes just like a mixture of salt and sugar.  I don't \nthink that is the case with most people.  What does it taste like \nto you? \n\n... If wishes were horses, we'd all have to wear hip boots!\n * Origin: ONE WORLD Los Angeles 310/372-0987 32b (1:102/129.0)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5781, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Dale_Adams@gateway.qm.apple.com (Dale Adams)\nSubject: Re: Adding VRAM to Quadra 800 ?\nOrganization: Apple Computer, Inc.,  Cupertino, CA\nLines: 13\n\nIn article <wstuartj.735273842@lucky.ecn.purdue.edu> \nwstuartj@lucky.ecn.purdue.edu (W Stuart Jones) writes:\n> I want to go from 512K to 1M VRAM on my Quadra 800.  How many 512K SIMMS \n> do I\n> need to buy?  Is the current 512K soldered on the board or do I need to take\n> out the current VRAM before I add more?\n\nYou need to add two 256K VRAM SIMMs;  512K VRAM SIMMs will not work in any \nof the Quadra or Centris machines.  There is already 512K of VRAM soldered \nto the logic board.  You add the two 256K SIMMs to this to give you a \ntotal of 1 MB.\n\n- Dale Adams\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5782, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ladd.morse@his.com (Ladd Morse)\nSubject: Mac oriented BBSs in Chicago\nLines: 8\n\nA member of the local BBS I frequent is looking for Mac oriented BBSs based in\nChicago.\n\nAny leads would be most appreciated.\n\n\n\n#! \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5783, "properties": {"category": "rec.sport.hockey", "text": "From: lli+@cs.cmu.edu (Lori Iannamico)\nSubject: Re: Goalie masks\nNntp-Posting-Host: lli.mach.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 21\n\n\nTom Barrasso wore a great mask, one time, last season.  He unveiled it\nat a game in Boston.  \n\nIt was all black, with Pgh city scenes on it.  The \"Golden Triangle\"\n(Pgh's downtown area where the 3 rivers meet) graced the top, along\nwith a steel mill on one side and the Civic Arena (I think) on the \nother.   On the back of the helmet was the old Pens' logo (the really\nfat little penguin with the blue scarf) the current (at the time) Pens\nlogo, and a space for the \"new\" (now current) logo.\n\nTommy had designed the mask, and his mother (an artist) painted it\nfor him.  \n\nBut while wearing the mask, the Pens got thumped by the Bruins.  The\nvery next game, Tommy was back to the old paint job.  A great mask\ndone in by a goalie's superstition.\n\nLori\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5784, "properties": {"category": "sci.space", "text": "From: steinly@topaz.ucsc.edu (Steinn Sigurdsson)\nSubject: Re: New planet/Kuiper object found?\nOrganization: Lick Observatory/UCO\nLines: 23\nDistribution: sci\n\t<1r9de3INNjkv@gap.caltech.edu>\nNNTP-Posting-Host: topaz.ucsc.edu\nIn-reply-to: jafoust@cco.caltech.edu's message of 23 Apr 1993 18:44:19 GMT\n\nIn article <1r9de3INNjkv@gap.caltech.edu> jafoust@cco.caltech.edu (Jeff Foust) writes:\n\n   In a recent article jdnicoll@prism.ccs.uwo.ca (James Davis Nicoll) writes:\n   >\tIf the  new  Kuiper belt object *is*  called 'Karla', the next\n   >one  should be called 'Smiley'.\n\n   Unless I'm imaging things, (always a possibility =) 1992 QB1, the Kuiper Belt\n   object discovered last year, is known as Smiley.\n\nAs it happens the _second_ one is Karla. The first one was\nSmiley. All subject to the vagaries of the IAU of course,\nbut I think they might let this one slide...\n\n*  Steinn Sigurdsson   \t\t\tLick Observatory      \t          *\n*  steinly@lick.ucsc.edu\t\t\"standard disclaimer\"  \t          *\n*  \"The worst thing you can say to a true revolutionary is that his \t  *\n*  revolution is unnecessary, that the problems can be corrected without  *\n*  radical change. Telling people that paradise can be attained without   *\n*  revolution is treason of the vilest kind.\"  -- H.S. 1993\t\t  * \n\n\nJust had to try out my new .sig# on this forum ;-)\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5785, "properties": {"category": "talk.religion.misc", "text": "From: system@kalki33.lakes.trenton.sc.us (Kalki Dasa)\nSubject: Bhagavad-Gita 2.44\nOrganization: Kalki's Infoline BBS, Aiken, SC, USA\nLines: 42\n\n                                TEXT 44\n\n                       bhogaisvarya-prasaktanam\n                           tayapahrta-cetasam\n                        vyavasayatmika buddhih\n                          samadhau na vidhiyate\n  \nbhoga--to material enjoyment; aisvarya--and opulence; prasaktanam--for\nthose who are attached; taya--by such things;\napahrta-cetasam--bewildered in mind; vyavasaya-atmika--fixed in\ndetermination; buddhih--devotional service to the Lord; samadhau--in\nthe controlled mind; na--never; vidhiyate--does take place.\n    \n                              TRANSLATION\n\n\tIn the minds of those who are too attached to sense enjoyment and\nmaterial opulence, and who are bewildered by such things, the resolute\ndetermination for devotional service to the Supreme Lord does not take\nplace.\n  \n                                PURPORT\n\n\tSamadhi means ``fixed mind.'' The Vedic dictionary, the Nirukti,\nsays, samyag adhiyate 'sminn atma-tattva-yathatmyam: ``When the mind is\nfixed for understanding the self, it is said to be in samadhi.''\nSamadhi is never possible for persons interested in material sense\nenjoyment, nor for those who are bewildered by such temporary things.\nThey are more or less condemned by the process of material energy.\n\nBhagavad-Gita As It Is\nBooks of A.C. Bhaktivedanta Swami\n\n\n       ---------------------------------------------------------\n      |                Don't forget to chant:                   |\n      |                                                         |\n      |  Hare Krishna Hare Krishna, Krishna Krishna Hare Hare   |\n      |       Hare Rama Hare Rama, Rama Rama Hare Hare          |\n      |                                                         |\n      |    Kalki's Infoline BBS Aiken, South Carolina, USA      |\n      |          (system@kalki33.lakes.trenton.sc.us)           |\n       ---------------------------------------------------------\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5786, "properties": {"category": "rec.sport.hockey", "text": "From: jake@rambler.Eng.Sun.COM (Jason Cockroft)\nSubject: Re: \"Give Blood\" Tee Shirts\nArticle-I.D.: jethro.1pqkfp$d96\nReply-To: jake@rambler.Eng.Sun.COM\nDistribution: world\nOrganization: Sun Microsystems, Inc.\nLines: 11\nNNTP-Posting-Host: rambler.eng.sun.com\n\n\n>The shirts are believe or not from a Bob Probert line of clothes.\n>The whole shirt says \"Give Blood - Fight Probie\".\n\n\nCool.  They sound like a cult classic.  Can someone post a address or\nphone # of a store that sells these?\n\nThanks,\n\n-jake.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5787, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: guns in backcountry? no thanks\nLines: 67\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <0096B294.AAD9C1E0@uinpla.npl.uiuc.edu> reimer@uinpla.npl.uiuc.edu (Paul E. Reimer) writes:\n\n>In article <1qkftjINNoij@cronkite.cisco.com>, pitargue@cisco.com (Marciano Pitargue) writes:\n>\n>[stuff deleted about causes of people in ER]\n>\n>>and your factoid about shooting victims in the ER.  count how many come in\n>>due to automobile accidents and automobile crimes.  maybe we should outlaw\n>>cars.\n>>marciano pitargue@cisco.com\n>\n>There are a lot of automobile accidents, but atleast there is some\n>regulation to try to combat this.  When I got my drivers license, I HAD\n>to take a drivers safety class.  \n\n      Tennessee, at least, does not require any sort of safety class to\nget a driver's license.  All that is required is one twenty question\nquiz and to drive a car around the block without crashing.\n\n>I HAVE to be licensed to drive.  \n\n      In all probability, no you don't.  You are required to be licensed\nto drive on public roads.  A license is not necessary on private property.\n\n>My car\n>MUST be registered.  \n\n       Most states do not require the registration of cars that are\nnot used on public roads.  Those that do (California I know of) do\nso for tax purposes more than anything else.\n    \n>I MUST (at least where I live) have liability\n>insurance on both myself driving and my car (if someone else had an\n>accident with it).  \n\n       Many states do not currently require this, and most, again,\nonly make this requirement for public roads.  A car sitting unused \nis not required to have insurance.\n\n>Hmm, wouldn't manditory saftey classes, registration\n>of both the owner and gun, and manditory liability insurance be nice for\n>gun owners.\n\n       The two are not the same, as I pointed out above.  There are\nsignificant difference between making rules for *use on public property*\nand *making rules for ownership*.\n\n       The other half of the objection is trust.  Similar things to this\nhave been tried in many local jurisdications across the country, and\nhave been abused in far too many cases.   Safety classes which are\nnever sheduled, never funded, or only one or two is held a year for\na limited number of participants.  Registration lists in New York,\nChicago, and California have been used for confiscation.  *Many* gun\nowners would, in theory, support these planes.  (Although the\nnumbers overwhelmingly show that competence is not the problem, that\nintentional misuse is).  They've simply seen it abused and are leery of\nthe next person who comes down the pike with a \"reasonable\" suggestion\nthey've already seen abused.\n\n\n\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5788, "properties": {"category": "sci.med", "text": "From: david@stat.com (David Dodell)\nSubject: HICN610 Medical News Part 3/4\nReply-To: david@stat.com (David Dodell)\nDistribution: world\nOrganization: Stat Gateway Service, WB7TPY\nLines: 708\n\n\n------------- cut here -----------------\nUniversity of Arizona\nTucson, Arizona\n\n\n\n                               Suggested Reading\n\nTan SL, Royston P, Campbell S, Jacobs HS, Betts J, Mason B, Edwards RG (1992).  \nCumulative conception and Livebirth rates after in-vitro fertilization. Lancet \n339:1390-1394. \n\nFor further information, call:\n                        Physicians' Resource Line\n                             1-800-328-5868\n                               in Tucson:\n                                694-5868\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 28\nVolume  6, Number 10                                           April 20, 1993\n\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n                                   Articles\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n                    LOW LEVELS OF AIRBORNE PARTICLES LINKED\n                           TO SERIOUS ASTHMA ATTACKS\n                           American Lung Association \n\n     A new study published by the American Lung Association has shown that \nsurprisingly low concentrations of airborne particles can send people with \nasthma rushing to emergency rooms for treatment.  \n     The Seattle-based study showed that roughly one in eight emergency visits \nfor asthma in that city was linked to exposure to particulate air pollution.  \nThe actual exposure levels recorded in the study were far below those deemed \nunsafe under federal air quality laws.  \n     \"People with asthma have inflamed airways, and airborne particles tend to \nexacerbate that inflammation,\" said Joel Schwartz, Ph.D., of the Environmental \nProtection Agency, who was the lead author of the study.  \"When people are on \nthe threshold of having, a serious asthma attack, particles can push them over \nthe edge.\" \n     The Seattle Study correlated 13 months of asthma emergency room visits \nwith daily levels of PM,,,. or particulate matter with an aerodynamic diameter \nof 10 microns or less.  These finer particles are considered hazardous because \nthey are small enough penetrate into the lung.  Cities are considered out of \ncompliance with clean air laws if the 24-hour average concentration of PM10 \nexceeds 150 micrograms per cubic millimeter of air.  \n     In Seattle however, a link between fine particles and asthma was found at \nlevels as low as 30 micrograms.  The authors concluded that for every 30 \nmicrogram increase in the four-day average of PM10, the odds of someone with \nasthma needing emergency treatment increased by 12 percent.  \n     The findings were published in the April American Review of Respiratory \nDisease, an official journal of the American Thoracic Society, the Lung \nAssociation's medical section.  \n     The study is the latest in a series of recent reports to suggest that \nparticulate matter is a greatly under appreciated health threat.  A 1992 study \nby Dr. Schwartz and Douglas Dockery, Ph.D., of Harvard found that particles \nmay be causing roughly 60,000 premature deaths each year in the United States.  \nOther studies have linked particulate matter to increased respiratory symptoms \nand bronchitis in children.  \n     \"Government officials and the media are still very focused on ozone,\" \nsays Dr. Schwartz.  \"But more and more research is showing that particles are \nbad actors as well.\"      One problem in setting, standards for particulate \nair pollution is that PMIO is difficult to study.  Unlike other regulated \npollutants such as ozone and carbon monoxide, particulate matter is a complex \nand varying mixture of substances, including carbon, hydrocarbons, dust, and \n\nHICNet Medical Newsletter                                              Page 29\nVolume  6, Number 10                                           April 20, 1993\n\nacid aerosols.  \n     \"Researchers can't Put people in exposure chambers to study the effects \nof particulate air pollution,\" says Dr. Schwartz.  \"We have no way of \nduplicating the typical urban mix of particles.  \" Consequently, most of what \nis known about particulates has been learned through population-based research \nlike the Seattle study.  \n     Given that the EPA's current priority is to review the ozone and sulfur \ndioxide standards, the agency is unlikely to reexamine the PM10 standard any \ntime soon.  Until changes are made, there appears to be little people with \nasthma can do to protect themselves from airborne particles.\n     \"In some areas, you can get reports on air quality, but the reports only \ncover the pollutant that is closest to violating its standard, and that's \nrarely particulate matter,\" says Dr.  Schwartz.  \"However, PM10 doesn't have \nto be near its violation range to be unhealthy.\"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 30\nVolume  6, Number 10                                           April 20, 1993\n\n               NIH Consensus Development Conference on Melanoma\n\nThe National Institutes of Health Consensus Development Conference on \nDiagnosis and Treatment of Early Melanoma brought together experts in \ndermatology, pathology, epidemiology, public education, surveillance \ntechniques, and potential new technologies as well as other health care \nprofessionals and the public to address (1) the clinical and histological \ncharacteristics of early melanoma; (2) the appropriate diagnosis, management, \nand followup of patients with early melanoma; (3) the role of dysplastic nevi \nand their significance; and (4) the role of education and screening in \npreventing melanoma morbidity and mortality.  Following 2 days of \npresentations by experts and discussion by the audience, a consensus panel \nweighed the scientific evidence and prepared their consensus statement. \n \nAmong their findings, the panel recommended that (1) melanoma in situ is a \ndistinct entity effectively treated surgically with 0.5 centimeter margins; \n(2) thin invasive melanoma, less than 1 millimeter thick, has the potential \nfor long-term survival in more than 90 percent of patients after surgical \nexcision with a 1 centimeter margin; (3) elective lymph node dissections and \nextensive staging evaluations are not recommended in early melanoma; (4) \npatients with early melanoma are at low risk for relapse but may be at high \nrisk for development of subsequent melanomas and should be followed closely; \n(5) some family members of patients with melanoma are at increased risk for \nmelanoma and should be enrolled in surveillance programs; and (6) education \nand screening programs have the potential to decrease morbidity and mortality \nfrom melanoma. \n \nA copy of the full text of the consensus panel's statement is available by \ncalling the NIH Office of Medical Applications of Research at (301) 496-1143 \nor by writing to:  Office of Medical Applications of Research, National \nInstitutes of Health, Federal Building, Room 618, Bethesda, MD 20892.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 31\nVolume  6, Number 10                                           April 20, 1993\n\n                         NCI-Designated Cancer Centers\n\nThe Cancer Centers Program is comprised of 55 NCI-designated Cancer Centers \nactively engaged in multidisciplinary research efforts to reduce cancer \nincidence, morbidity, and mortality.  Within the program, there are four types \nof cancer centers:  basic science cancer centers (14), which engage primarily \nin basic cancer research; clinical cancer centers (12), which focus on \nclinical research; \"comprehensive\" cancer centers (28), which emphasize a \nmultidisciplinary approach to cancer research, patient care, and community \noutreach; and consortium cancer centers (1), which specialize in cancer \nprevention and control research. \n \nAlthough some cancer centers existed in the late 1960s and the 1970s, it was \nthe National Cancer Act of 1971 that authorized the establishment of 15 new \ncancer centers, as well as continuing support for existing ones.  The passage \nof the act also dramatically transformed the centers' structure and broadened \nthe scope of their mission to include all aspects of basic, clinical, and \ncancer control research.  Over the next two decades, the centers' program grew \nprogressively. \n \nIn 1990, there were 19 comprehensive cancer centers in the nation. Today, \nthere are 28 of these institutions, all of which meet specific NCI criteria \nfor comprehensive status. \n \nTo attain recognition from the NCI as a comprehensive cancer center, an \ninstitution must pass rigorous peer review.  Under guidelines newly \nestablished in 1990, the eight criteria for \"comprehensiveness\" include the \nrequirement that a center have a strong core of basic laboratory research in \nseveral scientific fields, such as biology and molecular genetics, a strong \nprogram of clinical research, and an ability to transfer research findings \ninto clinical practice. \n \nMoreover, five of the criteria for comprehensive status go significantly \nbeyond that required for attaining a Cancer Center Support Grant (also \nreferred to as a P30 or core grant), the mechanism of choice for supporting \nthe infrastructure of a cancer center's operations.  These criteria encompass \nstrong participation in NCI-designated high-priority clinical trials, \nsignificant levels of cancer prevention and control research, and important \noutreach and educational activities--all of which are funded by a variety of \nsources. \n \nThe other types of cancer centers also have special characteristics and \ncapabilities for organizing new programs of research that can exploit \nimportant new findings or address timely research questions. \n \n\nHICNet Medical Newsletter                                              Page 32\nVolume  6, Number 10                                           April 20, 1993\n\nOf the 55 NCI-designated Cancer Centers, 14 are of the basic science type.  \nThese centers engage almost entirely in basic research, although some centers \nengage in collaborative research with outside clinical research investigators \nand in cooperative projects with industry to generate medical applications \nfrom new discoveries in the laboratory. \n \nClinical cancer centers, in contrast, focus on both basic research and \nclinical research within the same institutional framework, and frequently \nincorporate nearby affiliated clinical research institutions into their \noverall research programs.  There are 12 such centers today. \n \nFinally, consortium cancer centers, of which there is one, are uniquely \nstructured and concentrate on clinical research and cancer prevention and \ncontrol research.  These centers interface with state and local public health \ndepartments for the purpose of achieving the transfer of effective prevention \nand control techniques from their research findings to those institutions \nresponsible for implementing population-wide public health programs.  \nConsortium centers also are heavily engaged in collaborations with \ninstitutions that conduct clinical trial research and coordinate community \nhospitals within a network of cooperating institutions in clinical trials. \n \nTogether, the 55 NCI-Designated Cancer Centers continue to work toward \ncreating new and innovative approaches to cancer research, and through \ninterdisciplinary efforts, to effectively move this research from the \nlaboratory into clinical trials and into clinical practice. \n \nComprehensive Cancer Centers (Internet addresses are given where available) \n \nUniversity of Alabama at Birmingham Comprehensive Cancer Center\nBasic Health Sciences Building, Room 108\n1918 University Boulevard\nBirmingham, Alabama 35294\n(205) 934-6612\n \nUniversity of Arizona Cancer Center\n1501 North Campbell Avenue\nTucson, Arizona 85724\n(602) 626-6372\nInternet:  syd@azcc.arizona.edu\n \nJonsson Comprehensive Cancer Center\nUniversity of California at Los Angeles\n200 Medical Plaza\nLos Angeles, California 90027\n(213) 206-0278\n\nHICNet Medical Newsletter                                              Page 33\nVolume  6, Number 10                                           April 20, 1993\n\nInternet:  rick@jccc.medsch.ucla.edu\n \nKenneth T. Norris Jr. Comprehensive Cancer Center\nUniversity of Southern California\n1441 Eastlake Avenue\nLos Angeles, California  90033-0804\n(213) 226-2370\n \nYale University Comprehensive Cancer Center\n333 Cedar Street\nNew Haven, Connecticut 06510\n(203) 785-6338\n \nLombardi Cancer Research Center\nGeorgetown University Medical Center\n3800 Reservoir Road, N.W.\nWashington, D.C. 20007\n(202) 687-2192\n \nSylvester Comprehensive Cancer Center\nUniversity of Miami Medical School\n1475 Northwest 12th Avenue\nMiami, Florida 33136\n(305) 548-4800\nInternet:  hlam@mednet.med.miami.edu\n \nJohns Hopkins Oncology Center\n600 North Wolfe Street\nBaltimore, Maryland 21205\n(410) 955-8638\n \nDana-Farber Cancer Institute\n44 Binney Street\nBoston, Massachusetts 02115\n(617) 732-3214\nInternet:  Kristie_Stevenson@macmailgw.dfci.harvard.edu\n \nMeyer L. Prentis Comprehensive Cancer Center of Metropolitan\nDetroit\n110 East Warren Avenue\nDetroit, Michigan 48201\n(313) 745-4329\nInternet:  cummings%oncvx1.dnet@rocdec.roc.wayne.edu\n \nUniversity of Michigan Cancer Center\n\nHICNet Medical Newsletter                                              Page 34\nVolume  6, Number 10                                           April 20, 1993\n\n101 Simpson Drive\nAnn Arbor, Michigan 48109-0752\n(313) 936-9583\nBITNET:  kallie.bila.michels@um.cc.umich.edu\n \nMayo Comprehensive Cancer Center\n200 First Street Southwest\nRochester, Minnesota 55905\n(507) 284-3413\n \nNorris Cotton Cancer Center\nDartmouth-Hitchcock Medical Center\nOne Medical Center Drive\nLebanon, New Hampshire 03756\n(603) 646-5505\nBITNET:  edward.bresnick@dartmouth.edu\n \nRoswell Park Cancer Institute\nElm and Carlton Streets\nBuffalo, New York 14263\n(716) 845-4400\n \nColumbia University Comprehensive Cancer Center\nCollege of Physicians and Surgeons\n630 West 168th Street\nNew York, New York 10032\n(212) 305-6905\nInternet:  janie@cuccfa.ccc.columbia.edu\n \nMemorial Sloan-Kettering Cancer Center\n1275 York Avenue\nNew York, New York 10021\n(800) 525-2225\n \nKaplan Cancer Center\nNew York University Medical Center\n462 First Avenue\nNew York, New York 10016-9103\n(212) 263-6485\n \nUNC Lineberger Comprehensive Cancer Center\nUniversity of North Carolina School of Medicine\nChapel Hill, North Carolina 27599\n(919) 966-4431\n \n\nHICNet Medical Newsletter                                              Page 35\nVolume  6, Number 10                                           April 20, 1993\n\nDuke Comprehensive Cancer Center\nP.O. Box 3814\nDurham, North Carolina 27710\n(919) 286-5515\n \nCancer Center of Wake Forest University at the Bowman Gray School\nof Medicine\n300 South Hawthorne Road\nWinston-Salem, North Carolina 27103\n(919) 748-4354\nInternet:  ccwfumail@phs.bgsm.wfu.edu\n \nOhio State University Comprehensive Cancer Center\n300 West 10th Avenue\nColumbus, Ohio 43210\n(614) 293-5485\nInternet:  dyoung@magnus.acs.ohio-state.edu\n \nFox Chase Cancer Center\n7701 Burholme Avenue\nPhiladelphia, Pennsylvania 19111\n(215) 728-2570\nInternet:  s_davis@fccc.edu\n \nUniversity of Pennsylvania Cancer Center\n3400 Spruce Street\nPhiladelphia, Pennsylvania 19104\n(215) 662-6364\n \nPittsburgh Cancer Institute\n200 Meyran Avenue\nPittsburgh, Pennsylvania 15213-2592\n(800) 537-4063\n \nThe University of Texas M.D. Anderson Cancer Center\n1515 Holcombe Boulevard\nHouston, Texas 77030\n(713) 792-3245\n \nVermont Cancer Center\nUniversity of Vermont\n1 South Prospect Street\nBurlington, Vermont 05401\n(802) 656-4580\n \n\nHICNet Medical Newsletter                                              Page 36\nVolume  6, Number 10                                           April 20, 1993\n\nFred Hutchinson Cancer Research Center\n1124 Columbia Street\nSeattle, Washington 98104\n(206) 667-4675\nInternet:  sedmonds@cclink.fhcrc.org\n \nUniversity of Wisconsin Comprehensive Cancer Center\n600 Highland Avenue\nMadison, Wisconsin 53792\n(608) 263-8600\nBITNET:  carbone@uwccc.biostat.wisc.edu\n \n \n \nClinical Cancer Centers\n \n \nUniversity of California at San Diego Cancer Center\n225 Dickinson Street\nSan Diego, California 92103\n(619) 543-6178\nInternet:  dedavis@ucsd.edu\n \nCity of Hope National Medical Center\nBeckman Research Institute\n1500 East Duarte Road\nDuarte, California 91010\n(818) 359-8111 ext. 2292\n \nUniversity of Colorado Cancer Center\n4200 East 9th Avenue, Box B188\nDenver, Colorado 80262\n(303) 270-7235\n \nUniversity of Chicago Cancer Research Center\n5841 South Maryland Avenue, Box 444\nChicago, Illinois 60637\n(312) 702-6180\nInternet:  judith@delphi.bsd.uchicago.edu\n \nAlbert Einstein College of Medicine\n1300 Morris Park Avenue\nBronx, New York 10461\n(212) 920-4826\n \n\nHICNet Medical Newsletter                                              Page 37\nVolume  6, Number 10                                           April 20, 1993\n\nUniversity of Rochester Cancer Center\n601 Elmwood Avenue, Box 704\nRochester, New York 14642\n(716) 275-4911\nInternet:  rickb@wotan.medicine.rochester.edu\n \nIreland Cancer Center Case Western Reserve University\nUniversity Hospitals of Cleveland\n2074 Abington Road\nCleveland, Ohio 44106\n(216) 844-5432\n \nRoger Williams Cancer Center\nBrown University\n825 Chalkstone Avenue\nProvidence, Rhode Island 02908\n(401) 456-2071\n \nSt. Jude Children's Research Hospital\n332 North Lauderdale Street\nMemphis, Tennessee 38101-0318\n(901) 522-0306\nInternet:  meyer@mbcf.stjude.org\n \nInstitute for Cancer Research and Care\n4450 Medical Drive\nSan Antonio, Texas 78229\n(512) 616-5580\n \nUtah Regional Cancer Center\nUniversity of Utah Health Sciences Center\n50 North Medical Drive, Room 2C110\nSalt Lake City, Utah 84132\n(801) 581-4048\nBITNET:  hogan@cc.utah.edu\n \nMassey Cancer Center\nMedical College of Virginia\nVirginia Commonwealth University\n1200 East Broad Street\nRichmond, Virginia 23298\n(804) 786-9641\n \n \nConsortia\n\nHICNet Medical Newsletter                                              Page 38\nVolume  6, Number 10                                           April 20, 1993\n\n \nDrew-Meharry-Morehouse Consortium Cancer Center\n1005 D.B. Todd Boulevard\nNashville, Tennessee 37208\n(615) 327-6927\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 39\nVolume  6, Number 10                                           April 20, 1993\n\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n                             General Announcments\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n                 THE UCI MEDICAL EDUCATION SOFTWARE REPOSITORY \n\nThis is to announce the establishment of an FTP site at the University of \nCalifornia, for the collection of shareware, public-domain software and other \ninformation relating to Medical Education.  \n\nSpecifically, we are interested in establishing this site as a clearinghouse \nfor personally developed software that has been developed for local medical \neducation programs.  We welcome all contributions that may be shared with \nother users.  \n\nTo connect to the UCI Medical Education Software Repository, ftp to: \n\n                     FTP.UCI.EDU\n\nThe Repository currently offers both MSDOS and Macintosh software, and we hope \nto support other operating systems (UNIX, MUMPS, AMIGA?).  \n\nUploads are welcome.  We actively solicit information and software which you \nhave personaly developed or have found useful in your local medical education \nefforts, either as an instructor or student.  \n\nOnce you have connected to the site via FTP, cd (change directory) to either \nthe med-ed/mac/incoming or the med-ed/msdos/incoming directories, change the \nmode to binary and \"send\" or \"put\" your files.  Note that you won't be able to \nsee the files with the \"ls\" or \"dir\" commands.  Please compress your files as \nappropriate to the operating system (ZIP for MSDOS; Compactor or something \nsimilar for Macintosh) to save disk space.  \n\nAfter uploading, please send email to Steve Clancy (slclancy@uci.edu) (for \nMSDOS) or Albert Saisho (saisho@uci.edu) (for MAC) describing the file(s) you \nhave uploaded and any other information we might need to describe it.\n\nNote that we can only accept software or information that has been designated \nas shareware, public-domain or that may otherwise be distributed freely.  \nPlease do not upload commercial software!  Doing so may jeopardize the \nexistence of this FTP site.  \n\nIf you wish to upload software for other operating systems, please contact \neither Steve Clancy, M.L.S. or Albert Saisho, M.D. at the addresses above.\n\nHICNet Medical Newsletter                                              Page 40\nVolume  6, Number 10                                           April 20, 1993\n\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n                              AIDS News Summaries\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n                              AIDS Daily Summary\n\nThe Centers for Disease Control and Prevention (CDC) National AIDS  \nClearinghouse makes available the following information as a public  service \nonly. Providing this information does not constitute endorsement  by the CDC, \nthe CDC Clearinghouse, or any other organization. Reproduction  of this text \nis encouraged; however, copies may not be sold.  Copyright 1993, Information, \nInc., Bethesda, MD \n\n      ==================================================================    \n                                April 12, 1993 \n      ==================================================================    \n\n\"NIH Set to Test Multiple AIDS Vaccines\" Reuters (04/08/93)  (Frank, \nJacqueline) \n\n     Washington--The Clinton administration will permit the National  \nInstitutes of Health to test multiple AIDS vaccines instead of  only allowing \nthe Army to test a single vaccine, administration  sources said Thursday.  The \ndecision ends the controversy between Army AIDS researchers who had hoped to \ntest a vaccine made by  MicroGeneSys Inc. and the National Institutes of \nHealth, which  contended that multiple vaccines should be tested.  Health and  \nHuman Services Secretary Donna Shalala said a final announcement  on the \ntherapeutic vaccine trials was expected to be made last  Friday.  Companies \nincluding Genentech Inc., Chiron Corp., and  Immuno AG have already told NIH \nthat they are prepared to  participate in the vaccine tests.  The testing is \nintended to  demonstrate whether AIDS vaccines are effective in thwarting the  \nreplication of HIV in patients already infected.  Shalala refuted last week's \nreports that the Clinton administration had decided  the Army's test of the \nMicroGeneSys VaxSyn should proceed without tests of others at the same time.  \n\"The report was inaccurate,  and I expect there to be some announcement in the \nnext 24 hours  about that particular AIDS research project,\" said Shalala.   \nAdministration sources subsequently confirmed that NIH director  Dr. Bernadine \nHealy and Food and Drug Administration Commissioner David Kessler had \nconvinced the White House that multiple  vaccines should be tested \nsimultaneously.  But MicroGeneSys  president Frank Volvovitz said a test of \nmultiple vaccines could  triple the cost of the trial and delay it by two \nyears.\n\n==================================================================    \n\n\nHICNet Medical Newsletter                                              Page 41\nVolume  6, Number 10                                           April 20, 1993\n\n\"The Limits of AZT's Impact on HIV\" U.S. News & World Report (04/12/93) Vol. \n114, No. 14, P. 18 \n\n     AZT has become the most widely used drug to fight AIDS since it  was \napproved by the Food and Drug Administration in 1987.   Burroughs Wellcome, \nthe manufacturer of AZT, made $338 million  last year alone from sales of the \ndrug.  However, a team of  European researchers recently reported that \nalthough HIV-positive patients taking AZT demonstrated a slightly lower risk \nof  developing AIDS within the first year of treatment, that benefit  \ndisappeared two years later.  The Lancet published preliminary  findings of \nthe three-year study, which could give more reason  for critics to argue the \ndrug's cost, side effects, and general  efficacy.  Even though U.S. \nresearchers concede the study was  more comprehensive than American trials, \nmany argue the European  researchers' suggestion that HIV-positive patients \nexperience  little improvement in their illness before the development of  \nAIDS symptoms.  In addition, researchers have long been familiar  with the \n--------- end of part 3 ------------\n\n---\n      Internet: david@stat.com                  FAX: +1 (602) 451-1165\n      Bitnet: ATW1H@ASUACAD                     FidoNet=> 1:114/15\n                Amateur Packet ax25: wb7tpy@wb7tpy.az.usa.na\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5789, "properties": {"category": "sci.space", "text": "From: yamauchi@ces.cwru.edu (Brian Yamauchi)\nSubject: DC-X: Choice of a New Generation (was Re: SSRT Roll-Out Speech)\nOrganization: Case Western Reserve University\nLines: 27\nDistribution: world\nNNTP-Posting-Host: yuggoth.ces.cwru.edu\nIn-reply-to: jkatz@access.digex.com's message of 21 Apr 1993 22:09:32 -0400\n\nIn article <1r4uos$jid@access.digex.net> jkatz@access.digex.com (Jordan Katz) writes:\n\n>\t\t   Speech Delivered by Col. Simon P. Worden,\n>\t\t\tThe Deputy for Technology, SDIO\n>\n>\tMost of you, as am I, are \"children of the 1960's.\"  We grew\n>up in an age of miracles -- Inter-Continental Ballistic Missiles,\n>nuclear energy, computers, flights to the moon.  But these were\n>miracles of our parent's doing. \n\n>                          Speech by Pete Worden\n>          Delivered Before the U.S. Space Foundation Conference\n\n>     I'm embarrassed when my generation is compared with the last\n>generation -- the giants of the last great space era, the 1950's\n>and 1960's.  They went to the moon - we built a telescope that\n>can't see straight.  They soft-landed on Mars - the least we\n>could do is soft-land on Earth!\n\nJust out of curiousity, how old is Worden?\n--\n_______________________________________________________________________________\n\nBrian Yamauchi\t\t\tCase Western Reserve University\nyamauchi@alpha.ces.cwru.edu\tDepartment of Computer Engineering and Science\n_______________________________________________________________________________\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5790, "properties": {"category": "sci.electronics", "text": "From: engp2254@nusunix1.nus.sg (SOH KAM YUNG)\nSubject: Re: Protection of serial (RS232) lines\nOrganization: National University of Singapore\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 39\n\nMartin John Gregory (mgregory@flash.pax.tpa.com.au) wrote:\n: I've started to look at some devices doing serial data transmission\n: over fairly decent distances in fairly noisy environments, and have\n: seen a variety of schemes for protecting the RS232 transceivers (and\n: the rest of the circuit) from transients on the serial lines.  I'm\n: left wondering what is the best way of doing this?  How necessary is\n: it?\n: [stuff deleted]\n: What is the wisdom on this out there?\n: \n: Ta,\n: \n: Martin.\n: \n: \nFrom what I know, protection is necessary, esp. if you plan to route\nthe cables into an unknown environment (out of your control). Things\nlike accidental shorts between the signal lines and power cables, or\neven lightning strikes are very likely and I don't think you like to see\nthe sight of your computer going up in smoke! [Even ethernet cards are\nprotected. I've looked at the one in my PC and the connector is\nprotected by a gas discharge tube!]\n\n{But if you plan to use the serial cables for internal routings (i.e. in\ncontrolled environments), it should be reasonably safe not to have\nthem.}\n\nSuggestion: look in the RS data book. They have several RS232\ntransceivers that have overvoltage protection. Among them include the\nLT1080, LT1081 and MAX250 and MAX251. The Maxims are suppose to be\nelectrically isolated ones but still need opto-isolators to work (don't\nask me why. I've never used them before.\n\nAnother alternative is an RS232 surge protector. Two are listed in the\nRS catalogue. If you need additional info (i.e. stock nos.), just e-mail\nme.\n\nSoh Kam Yung,\nengp2254@nusunix1.nus.sg\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5791, "properties": {"category": "rec.autos", "text": "From: SteveWall@aol.com (Steve Wall)\nSubject: Re: WARNING.....(please read)...\nOrganization: Anhedonics Anonymous\nLines: 22\nNntp-Posting-Host: hipmac1.pica.army.mil\n\nIn article <1993Apr15.173851.25846@convex.com>, tobias@convex.com (Allen\nTobias) wrote:\n> \n> \n> Society, as we have known it, it coming apart at the seams! The basic reason\n> is that human life has been devalued to the point were killing someone is\n> \"No Big Deal\". Kid's see hundreds on murderous acts on TV, we can abort \n> children on demand, and kill the sick and old at will. So why be surprised\n> when some kids drop 20 lbs rocks and kill people. They don't care because the\n> message they hear is \"Life is Cheap\"!\n> \nI think this is getting a little overheated.  Highway robbers have been a\npart of life since the Middle Ages at least.  It's human nature to look\nat history through rose colored glasses, but random acts of violence have\nbeen a ceaseless part of our heritage.  Overall, life is better now than it\never was then.  It's just that random individual acts of violence have\nnever\nbeen historically significant, and record keeping in the past was never\ngood\nenough to retain them all.  \n\nSteve Wall\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5792, "properties": {"category": "rec.sport.hockey", "text": "From: andrew@idacom.hp.com (Andrew Scott)\nSubject: USENET Hockey Draft week 27 price list\nOrganization: Hewlett-Packard, IDACOM Telecommunications Division\nLines: 264\n\nHere is the price list for the week April 13 to April 19.\n\n\t- Andrew\n\nBuy\tSell\tPts\tTeam\tPlayer\n158.9\t143.0\t157\tPIT\tMario_Lemieux\n148.5\t133.7\t145\tBUF\tPat_LaFontaine\n142.7\t128.4\t141\tBOS\tAdam_Oates\n137.6\t123.8\t136\tDET\tSteve_Yzerman\n132.1\t118.9\t129\tWPG\tTeemu_Selanne\n131.7\t118.5\t127\tNYI\tPierre_Turgeon\n130.1\t117.1\t127\tTOR\tDoug_Gilmour\n126.0\t113.4\t123\tBUF\tAlexander_Mogilny\n123.4\t111.1\t119\tPHI\tMark_Recchi\n121.9\t109.7\t119\tLA\tLuc_Robitaille\n113.3\t102.0\t112\tQUE\tMats_Sundin\n111.3\t100.2\t110\tPIT\tKevin_Stevens\n110.6\t99.5\t108\tVAN\tPavel_Bure\n108.6\t97.7\t106\tSTL\tCraig_Janney\n108.3\t97.5\t107\tPIT\tRick_Tocchet\n107.6\t96.8\t105\tCHI\tJeremy_Roenick\n105.3\t94.8\t104\tQUE\tJoe_Sakic\n103.5\t93.2\t101\tSTL\tBrett_Hull\n102.4\t92.2\t100\tCGY\tTheoren_Fleury\n101.2\t91.1\t100\tPIT\tRon_Francis\n100.4\t90.4\t98\tTOR\tDave_Andreychuk\n100.2\t90.2\t99\tBOS\tJoe_Juneau\n98.3\t88.5\t96\tWPG\tPhil_Housley\n98.3\t88.5\t96\tMTL\tVincent_Damphousse\n96.3\t86.7\t94\tMTL\tKirk_Muller\n96.1\t86.5\t95\tDET\tDino_Ciccarelli\n95.3\t85.8\t93\tBUF\tDale_Hawerchuk\n95.3\t85.8\t93\tMIN\tMike_Modano\n94.4\t85.0\t91\tNYR\tMark_Messier\n93.2\t83.9\t91\tSTL\tBrendan_Shanahan\n93.1\t83.8\t92\tPIT\tJaromir_Jagr\n88.1\t79.3\t86\tMTL\tBrian_Bellows\n88.1\t79.3\t86\tLA\tJari_Kurri\n88.0\t79.2\t87\tDET\tSergei_Fedorov\n87.1\t78.4\t85\tCGY\tRobert_Reichel\n87.0\t78.3\t86\tDET\tPaul_Coffey\n86.1\t77.5\t83\tWSH\tPeter_Bondra\n86.1\t77.5\t83\tHFD\tGeoff_Sanderson\n86.0\t77.4\t84\tTB\tBrian_Bradley\n85.0\t76.5\t82\tNYI\tSteve_Thomas\n84.0\t75.6\t83\tPIT\tLarry_Murphy\n84.0\t75.6\t81\tPHI\tRod_Brind'Amour\n83.0\t74.7\t82\tBOS\tRay_Bourque\n83.0\t74.7\t82\tQUE\tSteve_Duchesne\n83.0\t74.7\t80\tHFD\tAndrew_Cassels\n82.0\t73.8\t80\tLA\tTony_Granato\n81.9\t73.7\t79\tWSH\tDale_Hunter\n81.9\t73.7\t79\tWSH\tMike_Ridley\n80.9\t72.8\t78\tHFD\tPat_Verbeek\n80.9\t72.8\t79\tMTL\tStephan_Lebeau\n80.9\t72.8\t79\tCGY\tGary_Suter\n78.9\t71.0\t77\tVAN\tCliff_Ronning\n78.9\t71.0\t77\tNJ\tClaude_Lemieux\n78.9\t71.0\t78\tQUE\tMike_Ricci\n77.9\t70.1\t76\tVAN\tMurray_Craven\n77.9\t70.1\t76\tSTL\tJeff_Brown\n77.8\t70.0\t75\tWSH\tKevin_Hatcher\n77.8\t70.0\t75\tNYR\tTony_Amonte\n76.9\t69.2\t76\tSJ\tKelly_Kisio\n76.8\t69.1\t75\tNJ\tAlexander_Semak\n76.8\t69.1\t75\tMIN\tRuss_Courtnall\n75.8\t68.2\t74\tMIN\tDave_Gagner\n75.8\t68.2\t74\tTOR\tNikolai_Borschevsky\n75.7\t68.1\t73\tPHI\tEric_Lindros\n74.8\t67.3\t73\tLA\tJimmy_Carson\n73.8\t66.4\t72\tCGY\tJoe_Nieuwendyk\n73.8\t66.4\t72\tVAN\tGeoff_Courtnall\n73.8\t66.4\t72\tMIN\tUlf_Dahlen\n73.6\t66.2\t71\tNYI\tDerek_King\n73.6\t66.2\t71\tWSH\tMichal_Pivonka\n72.9\t65.6\t72\tQUE\tOwen_Nolan\n72.9\t65.6\t72\tBOS\tDmitri_Kvartalnov\n72.7\t65.4\t71\tSTL\tNelson_Emerson\n72.7\t65.4\t71\tCHI\tChris_Chelios\n72.6\t65.3\t70\tNYI\tBenoit_Hogue\n71.7\t64.5\t70\tNJ\tStephane_Richer\n71.7\t64.5\t70\tWPG\tThomas_Steen\n71.7\t64.5\t70\tWPG\tAlexei_Zhamnov\n71.7\t64.5\t70\tCHI\tSteve_Larmer\n69.8\t62.8\t69\tPIT\tJoe_Mullen\n69.5\t62.6\t67\tNYR\tMike_Gartner\n68.6\t61.7\t67\tVAN\tPetr_Nedved\n68.6\t61.7\t67\tVAN\tTrevor_Linden\n68.6\t61.7\t67\tLA\tMike_Donnelly\n68.4\t61.6\t66\tWSH\tDmitri_Khristich\n68.4\t61.6\t66\tWSH\tAl_Iafrate\n66.8\t60.1\t66\tDET\tRay_Sheppard\n66.8\t60.1\t66\tQUE\tAndrei_Kovalenko\n66.4\t59.8\t64\tHFD\tZarley_Zalapski\n66.4\t59.8\t64\tNYR\tAdam_Graves\n65.8\t59.2\t65\tSJ\tJohan_Garpenlov\n64.5\t58.1\t63\tTOR\tGlenn_Anderson\n63.5\t57.2\t62\tLA\tWayne_Gretzky\n63.5\t57.2\t62\tOTT\tNorm_Maciver\n62.2\t56.0\t60\tPHI\tGarry_Galley\n61.7\t55.5\t61\tDET\tSteve_Chiasson\n61.7\t55.5\t61\tDET\tPaul_Ysebaert\n61.5\t55.4\t60\tNJ\tValeri_Zelepukin\n61.5\t55.4\t60\tMTL\tMike_Keane\n61.2\t55.1\t59\tPHI\tBrent_Fedyk\n60.7\t54.6\t60\tPIT\tShawn_McEachern\n60.4\t54.4\t59\tLA\tRob_Blake\n60.1\t54.1\t58\tNYI\tPat_Flatley\n59.7\t53.7\t59\tQUE\tScott_Young\n59.4\t53.5\t58\tWPG\tDarrin_Shannon\n59.1\t53.2\t57\tPHI\tKevin_Dineen\n58.4\t52.6\t57\tNJ\tBernie_Nicholls\n58.4\t52.6\t57\tCGY\tSergei_Makarov\n58.4\t52.6\t57\tCHI\tSteve_Smith\n58.1\t52.3\t56\tWSH\tPat_Elynuik\n57.4\t51.7\t56\tVAN\tGreg_Adams\n57.4\t51.7\t56\tNJ\tScott_Stevens\n57.4\t51.7\t56\tTB\tJohn_Tucker\n56.3\t50.7\t55\tWPG\tFredrik_Olausson\n56.0\t50.4\t54\tNYR\tSergei_Nemchinov\n55.0\t49.5\t53\tNYR\tDarren_Turcotte\n55.0\t48.9\t53\tCGY\tAl_MacInnis\n55.0\t48.9\t53\tCHI\tChristian_Ruuttu\n55.0\t48.0\t52\tCHI\tBrent_Sutter\n55.0\t47.6\t51\tHFD\tTerry_Yake\n55.0\t47.0\t51\tVAN\tDixon_Ward\n55.0\t47.0\t51\tWPG\tKeith_Tkachuk\n55.0\t46.4\t51\tBOS\tStephen_Leach\n55.0\t46.1\t50\tTOR\tJohn_Cullen\n55.0\t46.1\t50\tMTL\tDenis_Savard\n55.0\t45.7\t49\tNYR\tEd_Olczyk\n55.0\t45.2\t49\tVAN\tAnatoli_Semenov\n55.0\t44.8\t48\tWSH\tSylvain_Cote\n55.0\t44.8\t48\tNYI\tVladimir_Malakhov\n55.0\t44.8\t48\tNYI\tJeff_Norton\n55.0\t44.8\t48\tHFD\tPatrick_Poulin\n55.0\t44.6\t49\tBOS\tDave_Poulin\n55.0\t44.3\t48\tLA\tTomas_Sandstrom\n55.0\t44.3\t48\tEDM\tPetr_Klima\n55.0\t44.3\t48\tNJ\tJohn_MacLean\n55.0\t44.3\t48\tEDM\tDoug_Weight\n55.0\t43.3\t47\tMTL\tGilbert_Dionne\n55.0\t43.3\t47\tLA\tAlexei_Zhitnik\n55.0\t43.3\t47\tEDM\tShayne_Corson\n55.0\t42.8\t47\tQUE\tMartin_Rucinsky\n55.0\t42.4\t46\tWPG\tEvgeny_Davydov\n55.0\t42.4\t46\tSTL\tKevin_Miller\n55.0\t42.4\t46\tEDM\tCraig_Simpson\n55.0\t42.0\t45\tWSH\tKelly_Miller\n55.0\t42.0\t45\tPHI\tPelle_Eklund\n55.0\t40.6\t44\tCHI\tMichel_Goulet\n55.0\t40.6\t44\tEDM\tDave_Manson\n55.0\t39.6\t43\tOTT\tSylvain_Turgeon\n55.0\t38.7\t42\tCGY\tPaul_Ranheim\n55.0\t38.7\t42\tMTL\tMathieu_Schneider\n55.0\t38.7\t42\tMIN\tMark_Tinordi\n55.0\t38.3\t42\tDET\tBob_Probert\n55.0\t37.8\t41\tEDM\tTodd_Elik\n55.0\t37.4\t40\tNYR\tEsa_Tikkanen\n55.0\t37.4\t41\tBOS\tVladimir_Ruzicka\n55.0\t36.9\t40\tOTT\tBob_Kudelski\n55.0\t36.9\t40\tNJ\tPeter_Stastny\n55.0\t36.9\t40\tTOR\tDave_Ellett\n55.0\t36.9\t40\tOTT\tBrad_Shaw\n55.0\t36.5\t40\tDET\tNiklas_Lidstrom\n55.0\t36.0\t39\tNJ\tBobby_Holik\n55.0\t36.0\t39\tTOR\tWendel_Clark\n55.0\t35.5\t38\tNYR\tAlexei_Kovalev\n55.0\t35.0\t38\tBUF\tYuri_Khmylev\n55.0\t35.0\t38\tMIN\tMike_McPhee\n55.0\t34.1\t37\tTOR\tRob_Pearson\n55.0\t34.1\t37\tVAN\tSergio_Momesso\n55.0\t33.6\t36\tNYR\tBrian_Leetch\n55.0\t33.2\t36\tCHI\tDirk_Graham\n55.0\t33.2\t36\tTB\tAdam_Creighton\n55.0\t32.8\t36\tQUE\tValery_Kamensky\n55.0\t32.3\t35\tEDM\tZdeno_Ciger\n55.0\t32.3\t35\tLA\tCorey_Millen\n55.0\t31.9\t35\tBOS\tTed_Donato\n55.0\t31.3\t34\tTOR\tPeter_Zezel\n55.0\t30.4\t33\tMIN\tNeal_Broten\n55.0\t29.5\t32\tMTL\tGary_Leeman\n55.0\t29.5\t32\tEDM\tScott_Mellanby\n55.0\t29.5\t32\tBUF\tWayne_Presley\n55.0\t29.2\t32\tDET\tKeith_Primeau\n55.0\t28.9\t31\tNYI\tBrian_Mullen\n55.0\t28.9\t31\tPHI\tJosef_Beranek\n55.0\t28.6\t31\tCHI\tStephane_Matteau\n55.0\t28.3\t31\tBOS\tSteve_Heinze\n55.0\t28.0\t30\tPHI\tDmitri_Yushkevich\n55.0\t28.0\t30\tHFD\tMikael_Nylander\n55.0\t27.6\t30\tBUF\tRichard_Smehlik\n55.0\t27.6\t30\tTOR\tDmitri_Mironov\n55.0\t25.8\t28\tCHI\tBrian_Noonan\n55.0\t25.5\t28\tSJ\tPat_Falloon\n55.0\t24.9\t27\tSTL\tIgor_Korolev\n55.0\t24.3\t26\tWSH\tBob_Carpenter\n55.0\t24.3\t26\tNYR\tJames_Patrick\n55.0\t23.9\t26\tBUF\tPetr_Svoboda\n55.0\t23.0\t25\tOTT\tMark_Lamb\n55.0\t22.4\t24\tNYI\tScott_LaChance\n55.0\t22.1\t24\tMTL\tBenoit_Brunet\n55.0\t22.1\t24\tTB\tMikael_Andersson\n55.0\t21.2\t23\tEDM\tMartin_Gelinas\n55.0\t21.2\t23\tWPG\tSergei_Bautin\n55.0\t21.2\t23\tTOR\tBill_Berg\n55.0\t21.2\t23\tEDM\tKevin_Todd\n55.0\t19.6\t21\tNYI\tDavid_Volek\n55.0\t19.6\t21\tNYI\tRay_Ferraro\n55.0\t19.4\t21\tMIN\tBrent_Gilchrist\n55.0\t18.6\t20\tHFD\tYvon_Corriveau\n55.0\t18.6\t20\tNYR\tPhil_Bourque\n55.0\t18.6\t20\tNYI\tDarius_Kasparaitis\n55.0\t18.2\t20\tDET\tJim_Hiller\n55.0\t17.7\t19\tPHI\tAndrei_Lomakin\n55.0\t17.6\t19\tBUF\tDonald_Audette\n55.0\t16.6\t18\tTB\tRoman_Hamrlik\n55.0\t15.5\t17\tBOS\tCam_Neely\n55.0\t15.5\t17\tSJ\tMark_Pederson\n55.0\t14.6\t16\tPIT\tMartin_Straka\n55.0\t13.9\t15\tCHI\tJoe_Murphy\n55.0\t12.2\t13\tNYR\tPeter_Andersson\n55.0\t12.0\t13\tOTT\tTomas_Jelinek\n55.0\t12.0\t13\tNJ\tJanne_Ojanen\n55.0\t10.2\t11\tTB\tSteve_Kasper\n55.0\t10.2\t11\tMIN\tBobby_Smith\n55.0\t9.1\t10\tSJ\tRay_Whitney\n55.0\t8.4\t9\tHFD\tRobert_Petrovicky\n55.0\t8.3\t9\tBUF\tViktor_Gordijuk\n55.0\t7.4\t8\tTOR\tJoe_Sacco\n55.0\t7.3\t8\tQUE\tMikhail_Tatarinov\n55.0\t7.3\t8\tSJ\tPeter_Ahola\n55.0\t6.5\t7\tCHI\tRob_Brown\n55.0\t6.4\t7\tBOS\tGlen_Murray\n55.0\t5.6\t6\tHFD\tTim_Kerr\n55.0\t5.5\t6\tMIN\tBrian_Propp\n55.0\t4.7\t5\tWSH\tReggie_Savage\n55.0\t4.6\t5\tSTL\tVitali_Prokhorov\n55.0\t4.6\t5\tLA\tRobert_Lang\n55.0\t4.6\t5\tEDM\tShaun_Van_Allen\n55.0\t3.7\t4\tMIN\tDan_Quinn\n55.0\t3.6\t4\tDET\tViacheslav_Kozlov\n55.0\t3.6\t4\tBOS\tJozef_Stumpel\n55.0\t3.6\t4\tPIT\tBryan_Fogarty\n55.0\t2.8\t3\tMTL\tOlav_Petrov\n55.0\t2.8\t3\tTB\tStan_Drulia\n55.0\t1.9\t2\tWSH\tJason_Woolley\n55.0\t1.8\t2\tNJ\tClaude_Vilgrain\n55.0\t0.0\t0\tMTL\tPatrick_Kjellberg\n55.0\t0.0\t0\tOTT\tAlexei_Yashin\n55.0\t0.0\t0\tWSH\tRandy_Burridge\n55.0\t0.0\t0\tEDM\tDean_McAmmond\n55.0\t0.0\t0\tCGY\tCory_Stillman\n55.0\t0.0\t0\tTB\tBrent_Gretzky\n55.0\t0.0\t0\tBUF\tJason_Dawe\n55.0\t0.0\t0\tWSH\tBrian_Sakic\n55.0\t0.0\t0\tVAN\tIgor_Larionov\n55.0\t0.0\t0\tCHI\tSergei_Krivokrasov\n55.0\t0.0\t0\tQUE\tPeter_Forsberg\n-- \nAndrew Scott                    | andrew@idacom.hp.com\nHP IDACOM Telecom Operation     | (403) 462-0666 ext. 253\n\nDuring the Roman Era, 28 was considered old...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5793, "properties": {"category": "misc.forsale", "text": "From: 02106@ravel.udel.edu (Samuel Ross)\nSubject: Books for sale cheap!!!\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 28\n\n\nSOMEONE PLEASE BUY THESE BOOKS!!!!!  I AM NOT ASKING MUCH!!!!!!\n\nJUST MAKE ME AN OFFER AND I WILL PROBABLY TAKE IT!!!!!\n\n* Calculus w/ Analytic Geometry by Authur B. Simon (copyright date 1982), below avg condition but still readable! \n\n* Writing good software in Fortran, Graham Smith. \n\n* The Holt Handbook by Kirszner & Mandell (copyright 1986) 720+ page writing guide. \n\n* Algebra & Trigonometry, A problem Solving Approach, 3rd edition by W. Flemming and D. Varberg.  Very good condition.\n\n* General Chemistry Principles & Modern Applications, R. Petrucci, fourth\n  edition.  Big Book! Very good condition!\n\n* Solutions manual for Chemistry book.  Paperback.\n\n* Study guide for Chemistry book.  Paperback.\n\n\nSend me your offers via email at 02106@chopin.udel.edu\n\n\n\nSam\n02106@chopin.udel.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5794, "properties": {"category": "sci.med", "text": "From: rgasch@nl.oracle.com (Robert Gasch)\nSubject: Re: Homeopathy: a respectable medical tradition?\nOrganization: Oracle Europe\nLines: 47\nX-Newsreader: TIN [version 1.1 PL8]\n\nGordon Banks (geb@cs.pitt.edu) wrote:\n: In article <3794@nlsun1.oracle.nl> rgasch@nl.oracle.com (Robert Gasch) writes:\n: >\n: >: From a business point of view, it might make sense.  It depends on\n: >: the personality of the practitioner.  If he can charm the patients\n: >: into coming, homeopathy can be very profitable.  It won't be covered\n: >: by insurance, however.  Just keep that in mind.  Myself, I'd have \n: >^^^^^^^^^^^^^^^^^^^^^^^\n: >\n: >In many European countries Homepathy is accepted as a method of curing\n: >(or at least alleiating) many conditions to which modern medicine has \n: >no answer. In most of these countries insurance pays for the \n: >treatments.\n: >\n\n: Accepted by whom?  Not by scientists.  There are people\n: in every country who waste time and money on quackery.\n: In Britain and Scandanavia, where I have worked, it was not paid for.\n: What are \"most of these countries?\"  I don't believe you.\n\nIn Holland insurences pay for Homeopathic treatment. In Germany they do\nso as well. I Austria they do if you have a condition which can not be \nhelped by \"normal\" medicine (happened to me). Switzerland seems to be \nthe same as Austria (I have direct experience in the Swiss case).\n\nAt the Univeristy of Vienna (I believe Innsbruck as well) homeopathy\ncan be taken in Med. school.\n\nI found that in combination with Acupuncture it changed my life from\nliving hell to a condition which enables me to lead a relatively \nnormal life. I found that modern medicine was powerless to cure me\nof a *severe* case of Neurodermitis (Note: I mean cure, not \nsurpress the symptoms, which is what modern medicine attempts to \ndo in the case of Neurodermitis). \n\nI'm not saying that Homeopathy is scientific, but that it can offer \nhelp in areas in which modern medicine is absolutely helpless.\n\nFrom reading your aritcle it seems that your have some deeply rooted\nbeliefs about this issue (this is not intended to be offensive or \nsarcastic - it just sounded like that to me) which makes me doubt \nif you can read this with an open mind. If you do/can, please excuse\nmy last comment.\n\n---> Robert\nrgasch@nl.oracle.com\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5795, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Why not concentrate on child molesters?\nArticle-I.D.: optilink.15210\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 29\n\nIn article <1993Apr3.165155.1@kosmos.wcc.govt.nz>, quirke_a@kosmos.wcc.govt.nz writes:\n> cramer@optilink.COM (Clayton Cramer) writes:\n# # I thought I was clear.  Because homosexuals support laws to force\n# # employment of homosexuals against the will of some employers, they\n# # are attempting to interfere with private acts between mutually consenting\n# # adults.\n# \n#    Ok, I'll leave others to discuss your use of statistics, but I think I'm\n# able to discuss liberterian ideas.\n#    The ideas are good. They seek to maximise individual rights by keeping\n# governments out of transactions between consenting adults. If an employer wants\n# to discriminate against a group, she/he should be allowed to to maximise their\n# freedom. The discriminatees can go elsewhere.\n#    Unfortunately, it doesn't relate to maximising total individual rights\n# within a community. If an employer or shopkeeper or whatever can discriminate\n# in this way, then the freedom of the discriminatee goes down. Because people do\n# not live in perfect economic conditions, with perfect mobility, unlimited\n# numbers of potential employers of their skills, unlimited places to buy goods,\n# the liberterian argument leads to a *decrease* in the amount of liberty in the\n# community. \n\nYou mean, if a large part of the population supports discrimination \nagainst homosexuals, they will be injured.  But if a large part of the\npopulation supports such discrimination, how did that law get passed?\n\n# Tony Quirke, Wellington, New Zealand. Quirke_a@kosmos.wcc.govt.nz\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5796, "properties": {"category": "sci.crypt", "text": "From: pla@sktb.demon.co.uk (\"Paul L. Allen\")\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nReply-To: pla@sktb.demon.co.uk\nOrganization: Chaos\nLines: 70\nX-Newsreader: Archimedes ReadNews\n\n-----BEGIN PGP SIGNED MESSAGE-----\n\nIn message <9304190956.AA10390@pizzabox.demon.co.uk> you write:\n\n> : The cops/feds do *not* need to be able to get hold of your private key to\n> : listen in to cellular conversations.  Encryption is not end-to-end, but \n> : cellphone to base-station\n[...]\n\n> That was true for the UK Paul, but I'm fairly sure they're talking about\n> building end-to-end encryption phones out of this chip.  It's *not* for\n> cellular (though it certainly could be used there in the way you suggest)\n\nI'd lost the White House's deathless prose when I posted (that's what happens\nwhen you read news at home when you're rat-arsed), but I did have a bunch\nof follow-ups going on about cellular/cordless comms.  The original article\nhas reappeared, so:\n\n    The President today announced a new initiative that will bring\n    the Federal Government together with industry in a voluntary\n    program to improve the security and privacy of telephone\n    communications while meeting the legitimate needs of law\n    enforcement.\n\nHmm, telephone communications could indeed include end-to-end encryption on\nordinary landlines.\n\n    The initiative will involve the creation of new products to\n    accelerate the development and use of advanced and secure\n    telecommunications networks and wireless communications links.\n\nBut the next paragraph says telecoms networks and wireless communications\nlinks.\n\nOK, it's far from clear exactly what Cripple (what an apposite anagram) will\nbe applied to, but the reason Joe Public wants secure comms is to stop\npeople listening in to his cellular or cordless phones (and he wouldn't\neven be bothered about that were it not for Wingnut and Squidqy's\nmisfortunes).\n\nYes, Cripple *might* be for end-to-end encyption, dropping to clear\nwhen the other end doesn't have Cripple.  But then a cordless-to-ordinary\nconversation would be in clear leaving the cordless end just as vulnerable\nas at present.  Nope, I suspect that Cripple will only be used on radio\nlinks.\n\nOK, it's possible `telecommunications networks' could mean `ordinary phone\nlines', but I'm betting it means the microwave links used by the telcos.\n\nMy apologies if I'm wrong, particularly if the turgid Press Release makes it\nclear that I'm wrong and I missed it, but as far as I can see it was full of\nobfuscation, and anyone expecting end-to-end encryption is in for a surprise\n(IMHO).\n\n\nBTW, Graham, I've posted questions to alt.security.pgp and not seen any\nreplies/followups from outside Europe - how about you?  Have I made it into\neveryone's kill file, or is there some problem?\n\n- --Paul\n\n-----BEGIN PGP SIGNATURE-----\nVersion: 2.2\n\niQCVAgUBK9SPBmv14aSAK9PNAQGJBwP/ZoKyrm0gemlyYsNj8bqoH8l8qLJoMRBo\neOCClpKsTavebtdCLIGqHNzoWC6Ar2K1blIbpUa2tWnqwRGVa15OgOc7XXKJJ093\nyb7P/vWvQbXYiA6zDJ5zkQsDeP7X6ckIDVDRz5CdIS+oNXtiOtHk3s3B3wjQBjCU\nvks8KOV8gfg=\n=gVy0\n-----END PGP SIGNATURE-----\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5797, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc2.arc.nasa.gov (Curt Howland)\nSubject: Re: Countersteering_FAQ please post\nOrganization: NASA Science Internet Project Office\nLines: 12\n\nIn article <C4zKCL.FGC@ux1.cso.uiuc.edu>, \nEric@ux1.cso.uiuc.edu (93CBR900RR) writes:\n|> Would someone please post the countersteering FAQ...\n|> \t\t\t\teric\n\nLike, there's a FAQ for this?\n\n---\nCurt Howland \"Ace\"       DoD#0663       EFF#569\nhowland@nsipo.nasa.gov            '82 V45 Sabre\n     Meddle not in the afairs of Wizards,\n for it makes them soggy and hard to re-light.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.275+0000", "event": "documents", "entityId": 5798, "properties": {"category": "comp.graphics", "text": "From: michael_maier@qmgate.anl.gov (Michael Maier)\nSubject: Round VS Elliptical DOT Screens\nOrganization: ANL\nLines: 15\n\nWhen using Photoshop is there anyway to get an elliptical dot for the\nhalftone screen rather than a round dot ? My printer would prefer an\nelliptical dot, but I'm not sure how to set it up. I'm sending from a Mac\nIIci to a Linotronic L300 imagesetter and I am using Photoshop 2.0.1 to\nmake my separations.\n\nAny help would be greatly appreshed. T.I.A. \n\nMichael (Unscene) \n\n\nMichael Maier, Computer Artist, ANL  |  [|\u00da]---*Z* Glued to the veiw.      \n            \nEmail michael_maier@qmgate.anl.gov   | \"TV is the milk of Amnesia.\"  \nPhone 708 252 5298                   | \u00d1 Michael Maier\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5799, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rda771v@monu6.cc.monash.edu.au (A.B. Wuysang)\nSubject: Re: exit codes (dos--sorry for wrong group : (\nOrganization: Monash University, Melb., Australia.\nLines: 48\n\nIn article <1993Apr19.170631.17598@seas.gwu.edu> louray@seas.gwu.edu (Michael Panayiotakis) writes:\n>\n>Hey now.  First of all, sorry to post this DOS question in a WINDOWS\n>group, but I'm in kinda a hurry, so I can't scramble to find the dos\n>groups' names.  \n>\n>Anyway, anyone know where I ccan find the exit codes to DOS commands?\n\nThere are 3 alternatives:\n1. You can try to write a small C program something like:\n\n   int my_int_var;\n   my_int_var = system(\"command\");\n\n   and display my_int_var value (which is the exit code of the command).\n\n2. Or use 4dos.com instead of command.com (it has built in move command)\n   you can also get any program exist code by using the exec function\n   of 4dos:\n\n   c:\\>echo %@exec[command]\n\n   will display the exit code of the command.\n\n3. Get DOS 6, not worth buying if you already have QEMM/PCTools/Norton,\n   and you only need the move utility.\n\n>the manual doesn't seem to have all of them.  I'm particularly looking\n>for COPY, in order to make a \"move\" batch file, such that if the file\n>wasn't coppied properly, it won't be deleted.\n>\n>\n>please e'mail louray@seas.gwu.edu\n>Thanks, I.A,\n>Mickey\n>-- \n>pe-|| ||  MICHAEL PANAYIOTAKIS: louray@seas.gwu.edu \n>ace|| ||                                   ...!uunet!seas.gwu.edu!louray\n>|||| \\/|  *how do make a ms-windows .grp file reflect a HD directory??*\n>\\\\\\\\   |  \"well I ain't always right, but I've never been wrong..\"(gd)\n\n\n+---------------------------------------------------+\n| Agus Budy Wuysang                                 |\n| Digitech Student                                  |\n| Monash University (Clayton)                       |\n| Melbourne, Australia                              |\n+---------------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5800, "properties": {"category": "sci.med", "text": "From: ab961@Freenet.carleton.ca (Robert Allison)\nSubject: Bursitis and laser treatment\nReply-To: ab961@Freenet.carleton.ca (Robert Allison)\nOrganization: The National Capital Freenet\nLines: 20\n\n\nMy family doctor and the physiotherapist (PT) she sent me to agree that the\npain in my left shoulder is bursitis. I have an appointment with an orthpod\n(I love that, it's short for 'orthopedic surgeon, apparently) but while I'm\nwaiting the PT is treating me.\n\nShe's using hot packs, ultrasound, and lasers, but there's no improvement\nyet. In fact, I almost suspect it's getting worse.\n\nMy real question is about the laser treatment. I can't easily imagine what\nthe physical effect that could have on a deep tissue problem. Can anyone\nshed some light (so to speak) on the matter?\n-- \nRobert Allison\nOttawa, Ontario CANADA\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5801, "properties": {"category": "rec.motorcycles", "text": "From: randy@megatek.com (Randy Davis)\nSubject: Re: A Miracle in California\nArticle-I.D.: megatek.1993Apr5.223941.11539\nReply-To: randy@megatek.com\nOrganization: Megatek Corporation, San Diego, California\nLines: 15\n\nIn article <1ppvof$92a@seven-up.East.Sun.COM> egreen@East.Sun.COM writes:\n|Bikers wave to bikers the world over.  Whether or not Harley riders\n|wave to other bikers is one of our favorite flame wars...\n\n  I am happy to say that some Harley riders in our area are better than most\nthat are flamed about here: I (riding a lowly sport bike, no less) and my\ngirlfriend were the recipient of no less than twenty waves from a group of\nat least twenty-five Harley riders.  I was leading a group of about four\nsport bikes at the time (FJ1200/CBR900RR/VFR750).  I initiated *some* of the\nwaves, but not all.  It was a perfect day, and friendly riders despite some\nbrand differences made it all the better...\n\nRandy Davis                            Email: randy@megatek.com\nZX-11 #00072 Pilot                            {uunet!ucsd}!megatek!randy\nDoD #0013\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5802, "properties": {"category": "talk.politics.mideast", "text": "From: gt1091a@prism.gatech.EDU (gt1091a gt1091a KAAN,TIMUCIN)\nSubject: Re: Public Service Translation No.2\nKeywords: effective Greek & Armenian postings\nOrganization: Georgia Institute of Technology\nLines: 19\n\nI see that our retarded translator, David, is still writing things that\ndon't make sense. Hey David I can see where you are.. May be one day,\nWe will have the chance to talk deeply about that freedom of speach of\nyours.. And you now, killing or torture, these things are only easy\nways out.. I have different plans for you and all empty headeds like \nyou...\n\nLets get serious, DAVE, don't ever write bad things about Turkish people\nor especially Cyprus.. If I hear a word from you again that I consider\nto be a curse to my people I will retalliate...\n\nMuccccukkk..\nTIMUCIN.\n\n-- \nKAAN,TIMUCIN\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt1091a\nInternet: gt1091a@prism.gatech.edu\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5803, "properties": {"category": "talk.politics.guns", "text": "From: feustel@netcom.com (David Feustel)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: DAFCO: OS/2 Software Support & Consulting\nLines: 10\n\nIt's truly unfortunate that we don't have the Japanese tradition of\nHari-Kari for public officials to salvage some tatters of honor after\nthey commit offenses against humanity like were perpetrated in Waco,\nTexas today.\n-- \nDave Feustel N9MYI <feustel@netcom.com>\n\nI'm beginning to look forward to reaching the %100 allocation of taxes\nto pay for the interest on the national debt. At that point the\nfederal government will be will go out of business for lack of funds.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5804, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Michael Robert Peck <mp5j+@andrew.cmu.edu>\nSubject: 800x600 video on a IIci?\nOrganization: Freshman, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 6\nNNTP-Posting-Host: po4.andrew.cmu.edu\n\n   What do I need to do to be able to run an NEC 3FGx in 800x 600 mode\non my IIci?  Can it be done with the right video card?  If so, which\nvideo card?\n\n\n                                                           -Michael\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5805, "properties": {"category": "comp.sys.mac.hardware", "text": "From: aris@psssun (Aris Gerakis)\nSubject: Pixel disappear on Powerbook 140 screen\nOrganization: Michigan State University\nLines: 10\nNNTP-Posting-Host: psssun.pss.msu.edu\nKeywords: Powerbook, 140, pixel, screen\n\nSome pixels on my PB 140 display disappear intermittently.  They are not in\na particular place but random.  If anybody has suggestions I would appreciate\ne-mailings.  Thanks.\n\n\n--\naris@psssun.pss.msu.edu          #############              (beware of the 3 s)\n                                 |  /\\   /\\  |            \n                                [|   o   o   |]\n______________________nnnnn______|_____U_____|______nnnnn______________________\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5806, "properties": {"category": "soc.religion.christian", "text": "From: JJMARVIN@pucc.princeton.edu\nSubject: Re: Losing your temper is not a Christian trait\nOrganization: Princeton University\nLines: 25\n\nIn article <Apr.15.00.58.22.1993.28891@athos.rutgers.edu>\nruthless@panix.com (Ruth Ditucci) writes:\n \n> One of the tell tale signs/fruits that give non-christians away - is\n>when their net replies are acrid, angry and sarcastic.\n>\n>We in the net village do have a laugh or two when professed, born again\n>christians verbally attack people who might otherwise have been won to\n>christianity and had originally joined the discussions because they were\n>\"spiritually hungry.\"  Instead of answering questions with sweetness and\n>sincerity, these chrisitan net-warriors, \"flame\" the queries.\n \nAlthough I certainly agree with the basic sentiment that snideness is\nunloving and ineffective, I'm a little disturbed by the formulation that\nill temper is not a Christian trait. It seems like a false argument to\nsay that anyone who displays trait X must not be a Christian. Could\nwell be a sinning Christian, but a Christian nonetheless.\nAnger is human, and Christians are\nhuman: Christians get angry and defensive and react badly just like\neveryone else. It's not perfect righteousness but the effort of seeking\nrighteousness that marks a dedicated Christian. And one of the greatest\ngifts of faith to me is that of seeking and accepting forgiveness for\nmy failures. Expecting flawless behavior from self or others isn't\nChristianity: it's perfectionism.\n \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5807, "properties": {"category": "rec.sport.hockey", "text": "From: mjacques@flute.calpoly.edu (Michael Jacques)\nSubject: Re: Playoff Predictions\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 51\n\nIn article <1pn4qhINNsm1@senator-bedfellow.MIT.EDU> boudreau@athena.mit.edu (Carol V. Boudreau) writes:\n>\n\n\n>\n>In the Smythe:\n>This one is the toughest for me to call, because I have to put\n>personal bias aside (Go Calgary).  I think a lot depends on who\n>wins the division.  Winnipeg will move into third by the end of\n>the season, and the first place winner will have a clear advantage.\n>It will be a lot easier to build momentum against a team like the\n>Kings.  Whoever plays the Kings in the first round will take the\n>division.  Much as it hurts, I have to pick,\n>Division Winner - Vancouver Canucks\n\nI'll have to disagree with you on this one. I think Vancouver will go as\nBure goes, and if he continues on his goal scoring slump, then they\nwon't even make it out of the first round. I think the Kings will make\nit out of the first round, regardless of who they play. They seem to be\ndoing pretty well, even with that bad game against Minnesota on\nSaturday. I think it'll be either Calgary or Los Angeles to win the\nSmythe (i.e. go on to the conference finals). \n>\n>Wales Conference Trophy:\n>Islanders and Bruins will fight to the end, but I think the\n>Islanders have enough steam to overtake the Bruins in seven.\n>\n>Campbell Conference Trophy:\n>a walk for Vancouver, maybe in 5 or 6 but definately not 7.\n>\n>Stanley Cup Final:\n>Islanders and Vancouver.  Islanders will have nothing left by\n>this point and will succumb fairly easily to the Canucks.\n>\n>Stanley Cup Champion: Vancouver Canucks\n\nStill have to disagree with you here. I think it'll be Pittsburg to\nget the hat trick in Stanley Cups. They just look\ntoooooooooooooooooooooooooooooooooooooooooooooo good. \n>\n>I hope you have enjoyed my predictions.  I hope they are not\n>all correct (Go Calgary).\n>\nNeither do I. Well, may the best team win it all (Pittsburg). That's\njust my $.02 worth.\n>\n>-- \n>----------------------------------------------------------------------------\n>message from the terminal of:\n>Carol Boudreau  <boudreau@Athena.mit.edu>\n>----------------------------------------------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5808, "properties": {"category": "sci.crypt", "text": "From: stan@tacobel.UUCP (stan)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryp\nOrganization: The Temple of Stan - TBS World HQ - Concord, Mass, USA\n\nbrad@clarinet.com (Brad Templeton) writes:\n> Let's assume, for the moment, that the system really is secure unless\n> you get both halves of the encryption key from the two independent\n> escrow houses.  Let's say you even trust the escrow houses -- one is\n> the ACLU and the other is the EFF.  (And I'm not entirely joking about\n> those two names)\n> \nHi, I'm new to Internet, so this is a bit of a test message, so even a \ntoken reply would be very appreciated.\n\nAnyways, reading this I'd figure this would be as excellent a method of \ncorrupting the ACLU and the EFF as could be wished for.  \"Who Gaurds the \nGuardians?\", etc...\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5809, "properties": {"category": "alt.atheism", "text": "From: acooper@mac.cc.macalstr.edu\nSubject: Idle questions for fellow atheists\nOrganization: Macalester College\nLines: 26\n\n\nI wonder how many atheists out there care to speculate on the face of the world\nif atheists were the majority rather than the minority group of the population. \nIt is rather a ridiculous question in some ways, I know, but my newsreader is\ndown so I am not getting any new postings for a bit, so I figure I might as\nwell post something new myself.\n\nAlso, how many atheists out there would actually take the stance and accor a\nhigher value to their way of thinking over the theistic way of thinking.  The\ntypical selfish argument would be that both lines of thinking evolved from the\nsame inherent motivation, so one is not, intrinsically, different from the\nother, qualitatively.  But then again a measuring stick must be drawn\nsomewhere, and if we cannot assign value to a system of beliefs at its core,\nthan the only other alternative is to apply it to its periphery; ie, how it\nexpresses its own selfishness.\n\nIdle thoughts...\n\n\nAdam\n\n********************************************************************************\n* Adam John Cooper\t\t\"Verily, often have I laughed at the weaklings *\n*\t\t\t\t   who thought themselves good simply because  *\n* acooper@macalstr.edu\t\t\t\tthey had no claws.\"\t       *\n********************************************************************************\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5810, "properties": {"category": "sci.med", "text": "From: cfaks@ux1.cts.eiu.edu (Alice Sanders)\nSubject: Frozen shoulder and lawn mowing\nOrganization: Eastern Illinois University\nLines: 12\n\nIhave had a frozen shoulder for over a year or about a year.  It is still\npartially frozen, and I am still in physical therapy every week.  But the\npain has subsided almost completely.  UNTIL last week when I mowed the\nlawn for twenty minutes each, two days in a row.  I have a push type power\nmower.  The pain started back up a little bit for the first time in quite\na while, and I used ice and medicine again.  Can anybody explain why this\nparticular activity, which does not seem to stress me very much generally,\nshould cause this shoulder problem?\n\nThanks.\n\nAlice\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5811, "properties": {"category": "sci.med", "text": "From: cdm@pmafire.inel.gov (Dale Cook)\nSubject: Re: MORBUS MENIERE - is there a real remedy?\nOrganization: WINCO\nLines: 19\n\nIn article <19607@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>>A recent movie, Lorenzo's Oil, offers a perfect example of what\n>>I'm talking about.  If you haven't seen it, you should.  It's not\n>\n>I saw it.  It is almost a unique case in history.  First, ALD\n>is a rare but fatal disease. [...] \n>Their accomplishment was significant.  (Of course, it was overplayed\n>in the movie for dramatic effect.  The oil is not curative, and doesn't even\n>prevent progression, only slows it.) \n\nThere's a pretty good article in the the March 6, 1993 New Scientist titled\n\"Pouring cold water on Lorenzo's oil\".  The article states that research\nhas shown that the oil has no discernable effect on the progression of the\ndisease in patients in which demyelination has begun.  In patients with\nAMN (a less acute form of the same disease) there is some improvement\nseen in the ability of nerve fibres to conduct impulses.  In ALD patients\nwho have not yet begun demyelination, the jury is still out.\n\n---Dale Cook\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5812, "properties": {"category": "rec.autos", "text": "From: tedebear@leland.Stanford.EDU (Theodore Chen)\nSubject: Re: MGBs and the real world\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 11\n\nIn article <1qlg02$iu6@uniwa.uwa.oz.au> scott@psy.uwa.oz.au (Scott Fisher) writes:\n>Have you driven a TURBO converted\n>MX5?  Now they are starting to perform!  I've often thought a Mazda rotary\n>would go well in the XM5 too....anyone done it?\n\nno, but somebody's dropped a ford 302 V-8 into the miata, somewhat\nreminiscent of the shelby cobra.  the car's obviously not as nimble\nas before, but it's supposed to have a near 50/50 weight distribution\nand handle very well.  i'd sure love to drive one.\n\n-teddy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5813, "properties": {"category": "talk.politics.misc", "text": "From: roy@panix.com (Roy Radow)\nSubject: Re: A loathesome subject\nOrganization: PANIX Public Access Unix, NYC\nLines: 59\n\nIn <1ppjruINNhnt@elroy.jpl.nasa.gov> carlos@beowulf.Jpl.Nasa.Gov (Carlos Carrion) writes:\n\n>In article <C4y3DD.L1n@panix.com> roy@panix.com (Roy Radow) writes:\n>>     But this does not imply that ALL relationships between youth\n>>     and adults are exploitative and abusive.\n\n>>The critical factor here is whether the sexual activity is \"forced\" \n>>or whether it is an activity that is consensually agreed upon and \n>>freely engaged in by the people involved.\n\n>>When a child is \"forced\" there is often \"damage\", on the other hand,\n\n>\tWholeheartedly agree here.\n\n>>\"consensual\" relationships are often found to be \"positive experiences\" \n>>for all concerned.\n\n>\tWhy do I find this hard to believe?\n>\tCare to convince us?\n\nCarlos,\n\n   Why not check out some of the scientific research that has been\ndone in this area and convince yourself.\n\n   Research around the world indicates that the issue of coercion is\nthe critical factor. \n\nFor those interested in research on the topic I can suggest, Li et al\n(England), Constantine (United States), and Sandfort (The Netherlands).\nI especially like Sandfort's research for he actually quotes what the\nboys who are involved in the relationships have to say.\n\n\n\nChildren and Sex: New Findings, New Perspectives by Larry Constantine\n  & Floyd M. Martinson (eds.). Little Brown & Co., Boston, 1980.\nBoys On Their Contacts With Men by Theo Sandfort, Global Academic\n  Publishers, Elmhurst, New York, 1987.\nPerspectives on Paedophilia by Brian Taylor (ed.). Batsford Academic &\n  Educational Ltd., London, 1981.\nPaedophilia: A Factual Report by Frits Bernard. Enclave, Rotterdam,\n  The Netherlands, 1985.\nSexual Experience Between Men and Boys by Parker Rossman. Maurice\n  Temple Smith Ltd., Middlesex, Great Britain, 1985.\nChildren's Sexual Encounters With Adults by C.K. Li, D.J. West & T.P.\n  Woodhouse. Gerald Duckworth & Co., London, 1990.\n\n\nYours in Liberation,\n\nRoy\n\n\n-- \nRoy Radow               roy@panix.com         ...rutgers!cmcl2!panix!roy\nNorth American Man/Boy Love Association -For a packet containing a sample\nBulletin, publications list and membership information send $1.00 postage\nto: NAMBLA Info,  Dept.RR,  PO Box 174,  Midtown Station,  NYC NY  10018.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5814, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: randy@lynx.msc.cornell.edu.UUCP (Randall Jay Ellingson,199 Clark,55915,)\nSubject: Re: IDE vs SCSI\nOriginator: randy@msc2.msc.cornell.edu\nOrganization: Cornell-Materials-Science-Center\nLines: 47\n\nFrom article <1qq7i1INNdqc@dns1.NMSU.Edu>, by bgrubb@dante.nmsu.edu (GRUBB):\n> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) write:\n> \n>>In article <1qpu0uINNbt1@dns1.NMSU.Edu> bgrubb@dante.nmsu.edu (GRUBB) writes:\n>>>wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>>>Since the Mac uses ONLY SCSI-1 for hard drives YES the \"figure includes a\n>>>hundred $$$ for SCSI drivers\"  This is sloppy people and DUMB.\n>>What group is this?  This is not a MAC group.\n> Nice of you to DELETE BOTH YOUR responce and the item that prompted it.\n> to whit:\n>>>I just bought at Quantum 240 for my mac at home.  I paid $369 for it.  I\n>                                       ^^^\n\n[Tons of stuff deleted on SCSI vs. IDE question...]\n\nWow, you guys are really going wild on this IDE vs. SCSI thing, and I think\nit's great!\n\nLike lots of people, I'd really like to increase my data transfer rate from\nthe hard drive.  Right now I have a 15ms 210Mb IDE drive (Seagate 1239A), and\nwhat I would say is a standard (not special, no cache I believe) IDE controller\ncard on my ISA 486-50.\n\nI'm currently thinking about adding another HD, in the 300Mb to 500Mb range.\nAnd I'm thinking hard (you should hear those gears a-grinding in my head)\nabout buying a SCSI drive (SCSI for the future benefit).  I believe I'm getting\nsomething like 890Kb/sec transfer right now (according to NU).  How would this\nnumber compare if I bought the state-of-the-art SCSI card for my ISA PC, and\nthe state-of-the-art SCSI hard drive (the wailing-est system I could hope for)?\nObviously money factors into this choice as well as any other, but what would\nYOU want to use on your ISA system? And how much would it cost?\n\nAlong those lines, what kind of transfer rate could I see with my IDE HD's if I\nwere to buy the top-of-the-line IDE caching controller for my 200Mb, 15ms HD?\nAnd how much would it cost?\n\nI actually have a PAS-16, and could (what a waste I guess it would be...) hook\nup a SCSI HD through it's SCSI port which yields an optimum of 690Kb/sec.\nActually, I have a borrowed 12ms Fujitsu HD hooked up through it now (and\nown the Trantor HD drivers for the PAS-16 SCSI port).  Is this SCSI port a\nSCSI-2 port?  How could I tell?  Is the Fujitsu 2623A a SCSI-2?  Are all SCSI\nHD's SCSI-2?\n\nThanks for any comments on these rephrased questions.\n\nRandy\n  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5815, "properties": {"category": "rec.motorcycles", "text": "From: leavitt@cs.umd.edu (Mr. Bill)\nSubject: Re: How Big Is Too Big (was Re: 1st bike)\nOrganization: The Cafe at the Edge of the Universe\nLines: 42\n\nazw@aber.ac.uk(Andy Woodward) writes:\nazw>Weight and size over rough roads is a definite no-no. If is starts to\nazw>drift, you aint going to catch it.\n\nleavitt@cs.umd.edu (Mr. Bill) says:\nmrb>If you're riding hard enough for this to be of concern, then yes, a\nmrb>lighter bike is more beneficial.\n\nai598@cleveland.Freenet.Edu (Mike Sturdevant) writes:\nms>If you're not riding hard enough for this to be a concern, are you\nms>having any fun?\n\nSure.  I've never been much of a racerboy, as anybody who's attended the\nMinibike Spectacular can attest.  ;^)  I get a great deal of satisfaction\nin riding fast, yet now so fast as to be overly concerned about not being\nable to maintain a clean line.  And while I'm still known to slide the\noccasional tire, I much prefer to stay just to the sticky side of that\nline.  I've found that I don't heal as well as I used to in days of yore.\n\nBTW, how's the knee?\n\nmrb>anyway.  Am I more likely to catch a 400 than a 250?  Not necessarily.\nmrb>Tires, road surface and rider ability are a much more important criteria.\n\nms>Actually, big horsepower is just as likely to get you out of trouble\nms>when it \"Starts to Drift\" as your puny body mass pushing on stuff. A well\nms>placed push from 80 or 90 horsepower can do a lot to straighten or change\nms>in a beneficial way the trajectory of the bike/rider system. That's a \n\nQuite true.  Another plus for a 500+ bike, the original thread, I think.\nDamn circular threads...  ;^)\n\nms>Go fast. Take chances.\nms>\nms>\tMike S.\n\nMr. Bill\n-- \n+ Bill Leavitt, #224 +   '82 CBX \"White Lightning\", '82 GS850G \"Suzibago\"   +\n+ leavitt@cs.umd.edu + '76 CJ360 \"Little Honda\", '68 Lone Star \"Sick Leave\" +\n+  DoD AMA ICOA NIA  + '69 Impala convertible \"The Incredible Hulk\", others +\n+ \"Hmmm, I thought bore and stroke *was* the technique!\" Michael Bain, #757 +\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5816, "properties": {"category": "soc.religion.christian", "text": "From: sciysg@nusunix1.nus.sg (Yung Shing Gene)\nSubject: Mission Aviation Fellowship\nOrganization: National University of Singapore\nLines: 3\n\nHi,\n\tDoes anyone know anything about this group and what they\ndo? Any info would be appreciated. Thanks!\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5817, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jmgree01@starbase.spd.louisville.edu (Jude M. Greer)\nSubject: Gateway 2000 and ATI LB problem.\nNntp-Posting-Host: starbase.spd.louisville.edu\nOrganization: University of Louisville\nLines: 25\n\nI was wondering if anyone out there has had the same problem I am having with\nmy Gateway 2000 486-33DX VL-Bus system with ATI Graphics Ultra Pro LB.  \nWhen I have my computer in any resolution other than 800x600, everything is\nfine, but whenever I use it in 800x600 (Windows, AutoCAD, GIFs) the screen \ngets about 1 1/2 inches shorter.  At the very top and very bottom of the screen\nthere is about a 3/4\" bar of black.  The screen isn't cut off, it just squeezes\neverything into the smaller space and messes up the aspect ratio.  While I can\nmanually change the V-Size on the back, this is a pain in the ass, and it just\nshouldn't happen anyway.  I've called Gateway numerous times and they haven't \nbeen able to help me at all.  Two different times they sent me a new card, and\nboth times the new card didn't work at all in my computer.  They even tried\nto bill me for the first card because they didn't get it back in a couple of\ndays, when they TOLD me over the phone that they would wait more than 2 weeks\nbefore billing my card.  But their customer support is a different story...\nSo, if anyone has had this same problem, please let me know if you know what\nto do.  Hell, let me know if you don't have a solution, just so I know I'm\nnot the only one with this problem.  Thanks in advance.\n\nJude M. Greer\njmgree01@starbase.spd.louisville.edu\n\nP.S.  I already tried going into the MACH 32 install program and manually set-\nting up the card.  Doesn't work.  Whenever I try to increase the vertical size\nof the 800x600 screen, it just starts to cut off the top and bottom.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5818, "properties": {"category": "rec.motorcycles", "text": "From: cbrooks@ms.uky.edu (Clayton Brooks)\nSubject: Re: V-max handling request\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 13\n\nbradw@Newbridge.COM (Brad Warkentin) writes:\n\n>............. Seriously, handling is probably as good as the big standards\n>of the early 80's but not compareable to whats state of the art these days.\n\nI think you have to go a little further back.\nThis opinion comes from riding CB750's GS1000's KZ1300's and a V-Max.\nI find no enjoyment in riding a V-Max fast on a twisty road.\n-- \n Clayton T. Brooks       _,,-^`--.   From the heart          cbrooks@ms.uky.edu\n 722 POT U o'Ky    .__,-'    *    \\   of the blue           cbrooks@ukma.bitnet\n Lex. KY 40506   _/              ,/    grass and   {rutgers,uunet}!ukma!cbrooks\n 606-257-6807   (__,-----------''   bourbon country    AMA NMA MAA AMS ACBL DoD\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5819, "properties": {"category": "sci.crypt", "text": "From: trussell@cwis.unomaha.edu (Tim Russell)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: University of Nebraska at Omaha\nDistribution: na\nLines: 18\n\ngeoff@ficus.cs.ucla.edu (Geoffrey Kuenning) writes:\n\n>It always amazes me how quick people are to blame whatever\n>administration is current for things they couldn't possibly have\n>initiated.  This chip had to take *years* to develop, yet already\n>we're claiming that the Clinton administration sneaked it in on us.\n\n    No kidding.  The most recent post I saw in alt.privacy.clipper (and I\nhope anyone interested in this topic ends up there) states that Clipper\nhas been in development for over four years.\n\n    I am, however, more than a little PO'd that Clinton put his name on\nthis monstrosity, or even allowed it to get out the door, for that matter.\nHe's already heard from me, and I hope you'll all take the time to voice\nyour extreme displeasure as well.\n\n--\n   Tim Russell                 Omaha, NE              trussell@unomaha.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5820, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: Jews in LATVIA - some documents\nArticle-I.D.: zuma.9304052018\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 407\n\nIn article <C4zvvG.50D@unix.amherst.edu> nwbernst@unix.amherst.edu (Neil Bernstein) writes:\n\n: Pardon me? Here is to an amherst-clown:\n: \n: \"Your three chiefs, Dro, Hamazasp and Kulkhandanian are the ringleaders\n:  of the bands which have destroyed Tartar villages and have staged \n:  massacres in Zangezour, Surmali, Etchmiadzin, and Zangibasar. This is\n:  intolerable.\n\n>This is about Armenia.\n\nWere you expecting a different response? Here is another one:\n\nSource: K. S. Papazian, \"Patriotism Perverted,\" Baikar Press, Boston, 1934, \n        (73 pages with Appendix).\n\np. 25 (third paragraph)\n\n\"Some real fighters sprang up from among the people, who struck terror\n into the hearts of the Turks.\"\n\n\n\"Within a few months after the war began, these Armenian guerrilla\n forces, operating in close coordination with the Russians, were\n savagely attacking Turkish cities, towns and villages in the east,\n massacring their inhabitants without mercy, while at the same time\n working to sabotage the Ottoman army's war effort by destroying roads\n and bridges, raiding caravans, and doing whatever else they could to\n ease Russian occupation. The atrocities committed by the Armenian \n volunteer forces accompanying the Russian army were so severe that the \n Russian commanders themselves were compelled to withdraw them from the \n fighting fronts and sent them to rear guard duties. The memoirs of many\n Russian officers who served in the east at this time are filled with \n accounts of the revolting atrocities committed by these Armenian \n guerrillas, which were savage even by relatively primitive standards of\n war then observed in such areas.[1]\"\n\n[1] \"Journal de Guerre du Deuxieme d'Artillerie de Forteresse Russe \n     d'Erzeroum,\" 1919, p. 28.\n\n: >honored me by reproducing my text.  Unfortunately, he has still not produced\n: >the \"documents\" on \"Jews in LATVIA.\"  Instead, he asks for my views on the\n: >\"Turkish Genocide.\"  Well, that debate seems to be going on in a few hundred\n: >other threads.  I'll let other people bring the usual charges, try to debunk\n: >Mutlu/Argic/Cosar (a net-wide Terrorism Triangle?) and their spurious evidence.\n: \n: When that does ever happen, look out the window to see if there is a\n: non-fascist x-Soviet Armenian Government in the East. Now, where is\n: your non-existent list of scholars? What a moronian. During the First \n: World War and the ensuing years - 1914-1920, the Armenian Dictatorship \n: through a premeditated and systematic genocide, tried to complete its \n: centuries-old policy of annihilation against the Turks and Kurds by \n: savagely murdering 2.5 million Muslims and deporting the rest from \n: their 1,000 year homeland.\n\n>This paragraph is well-written and interesting, Serdar baby, but it has nothing\n>to do with Jews in LATVIA.  I have not presented a list of scholars.  \n\nHow could you? Because there is none.\n\n>I am not\n>interested in an ex-Soviet (why do you write x-?  It's very cute) Armenian\n>Government, non-fascist or otherwise.  You are not responding to what I am\n>writing.  Instead, you are autoposting your own particular brand of bullshit.\n\nLike conversing with a brick wall. And you are not responding to what I \nam writing. By the way, that \"bullshit\" is justly regarded as the first \ninstance of Genocide in the 20th Century acted upon an entire people.\nFor nearly one thousand years, the Turkish and Kurdish people lived \non their homeland - the last one hundred under the oppressive Soviet \nand Armenian occupation. The persecutions culminated in 1914: The \nArmenian Government planned and carried out a Genocide against its \nMuslim subjects. 2.5 million Turks and Kurds were murdered and the \nremainder driven out of their homeland. After one thousand years, \nTurkish and Kurdish lands were empty of Turks and Kurds. \n\nThe survivors found a safe heaven in Turkiye.\n\nToday, x-Soviet Armenian government rejects the right of Turks and \nKurds to return to their Muslim lands occupied by x-Soviet Armenia.\n\nToday, x-Soviet Armenia covers up the genocide perpetrated by its \npredecessors and is therefore an accessory to this crime against \nhumanity.\n\nx-Soviet Armenia must pay for its crime of genocide against the Muslims \nby admitting to the crime and making reparations to the Turks and Kurds.\n\n>You have now done so four times in a row.  May I legitimately conclude that\n>you are not, indeed, a regular net-user, but an auto-posting computer program?\n>(which, for convenience, I have called MUTLU.EXE.)\n\nYou may assert whatever you wish.\n\n>Here we go with MUTLU.EXE's famed list of sources:\n\nDitto.\n\n: The attempt at genocide is justly regarded as the first instance\n: of Genocide in the 20th Century acted upon an entire people.\n: This event is incontrovertibly proven by historians, government\n: and international political leaders, such as U.S. Ambassador Mark \n: Bristol, ...\n\n>(and on and on for 46 lines)\n\nAnd still anxiously awaiting...\n\n: .......so the list goes on and on and on.....\n: \n: >I'm still trying to find out about those Jews in LATVIA.  Can you post those \n: >documents PLEEEEEEEASE, Mr. Argic?  Puh-leeze could you?  C'mon, it's my\n: >birthday in three weeks... post them for me as a birthday present.\n: \n: Remember, the issue at hand is the cold-blooded genocide of 2.5 million \n: Muslim people by the Armenians between 1914-1920, and the Armenian-Nazi \n: collaboration during World War II. Anything to add?\n\n>No, darling, READ what I post!  Other people are asking you about the Turkish\n>genocide.  I am asking you to produce the documents on Jews in Latvia.  No\n>matter how many times you erase what I post, I will still post the same\n>question.  Post the documents on Jews in Latvia.  Do not autopost the same\n>block of text about the Turkish genocide.  \n\nRemember, the issue at hand is the Armenian-Nazi collaboration during \nWorld War II and the Turkish Genocide. And I still fail to see how\nyou can challenge the following western sources.\n\nSource: John Dewey: \"The New Republic,\" Vol. 40, Nov. 12, 1928, pp. 268-9.\n\n\"Happy the minority [Jews] which has had no Christian nation to protect it.\n And one recalls that the Jews took up their abode in 'fanatic' Turkey\n when they were expelled from Europe, especially Spain, by Saintly Christians,\n and they have lived here for centuries in at least as much tranquility and\n liberty as their fellow Turkish subjects, all being exposed alike to the\n rapacity of their common rulers. To one brought up, as most Americans have \n been, in the Gladstonian and foreign-missionary tradition, the condition of \n the Jews in Turkey is almost a mathematical demonstration that religious\n differences have had an influence in the tragedy of Turkey only as they\n were combined with aspirations for a political separation which every \n nation in the world would have treated as treasonable. One readily \n reaches the conclusion that the Jews in Turkey were fortunate...\" \n\nHe also stated that:\n\n\"they [Armenians] traitorously turned Turkish cities over to the Russian \n invader; that they boasted of having raised an army of one hundred and\n fifty thousand men to fight a civil war, and that they burned at least\n a hundred Turkish villages and exterminated their population.\"\n\n: >I want the documents of Jews in Latvia.  I think several other\n: >people on soc.culture.greek are already disputing with you about the Turkish\n: >Genocide.\n: \n: Is this the joke of the month? Who, when, how, where? What a clown...\n\n>No, sweetie, the joke of the month is that you have now posted the same\n>block of text four times, but you still have not produced the documents on\n>Jews in Latvia.  Instead, you post the same text you post in every other\n>message, that same old McCarthy table: (how appropriate it's named \"McCarthy!\")\n\nHow about Prof Shaw, a Jewish scholar?\n\nSource: Stanford J. Shaw, on Armenian collaboration with invading Russian\narmies in 1914, \"History of the Ottoman Empire and Modern Turkey (Volume\nII: Reform, Revolution & Republic: The Rise of Modern Turkey, 1808-1975).\"\n(London, Cambridge University Press 1977). pp. 315-316.\n\n\"In April 1915 Dashnaks from Russian Armenia organized a revolt in the city \n of Van, whose 33,789 Armenians comprised 42.3 percent of the population, \n closest to an Armenian majority of any city in the Empire...Leaving Erivan \n on April 28, 1915, Armenian volunteers reached Van on May 14 and organized \n and carried out a general slaughter of the local Muslim population during \n the next two days while the small Ottoman garrison had to retreat to the\n southern side of the lake.\"\n\n\"Knowing their numbers would never justify their territorial ambitions,\n Armenians looked to Russia and Europe for the fulfillment of their aims.\n Armenian treachery in this regard culminated at the beginning of the First\n World War with the decision of the revolutionary organizations to refuse\n to serve their state, the Ottoman Empire, and to assist instead other\n invading Russian armies. Their hope was their participation in the Russian\n success would be rewarded with an independent Armenian state carved out of\n Ottoman territories. Armenian political leaders, army officers, and common\n soldiers began deserting in droves.\"\n\n\"With the Russian invasion of eastern Anatolia in 1914 at the beginning of\n World War I, the degree of Armenian collaboration with the Ottoman's enemy\n increased drastically. Ottoman supply lines were cut by guerilla attacks,\n Armenian revolutionaries armed Armenian civil populations, who in turn\n massacred the Muslim population of the province of Van in anticipation of\n expected arrival of the invading Russian armies.\"\n\nSource: Stanford J. Shaw, \"History of the Ottoman Empire and Modern Turkey,\"\n        Vol II. Cambridge University Press, London, 1979, pp. 314-317.\n\n\"...Meanwhile, Czar Nicholas II himself came to the Caucasus to make final\n plans for cooperation with the Armenians against the Ottomans, with the \n president of the Armenian National Bureau in Tiflis declaring in response:\n\n 'From all countries Armenians are hurrying to enter the ranks of the \n  glorious Russian Army, with their blood to serve the victory of Russian\n  arms...Let the Russian flag wave freely over the Dardanelles and the\n  Bosporus. Let, with Your will, great Majesty, the peoples remaining\n  under the Turkish yoke receive freedom. Let the Armenian people of Turkey\n  who have suffered for the faith of Christ receive resurrection for a new\n  free life under the protection of Russia.'[155]\n\nArmenians again flooded into the czarist armies. Preparations were made\nto strike the Ottomans from the rear, and the czar returned to St. Petersburg\nconfident that the day finally had come for him to reach Istanbul.\"\n\n[155] Horizon, Tiflis, November 30, 1914, quoted by Hovannisian, \"Road to\nIndependence,\" p. 45; FO 2485, 2484/46942, 22083.\n\n\"Ottoman morale and military position in the east were seriously hurt, and\n the way was prepared for a new Russian push into eastern Anatolia, to be\n accompanied by an open Armenian revolt against the sultan.[156]\"\n\n[156] Hovannisian, \"Road to Independence,\" pp. 45-47; Bayur, III/1, \npp. 349-380; W.E.D. Allen and P. Muratoff, \"Caucasian Battlefields,\"\nCambridge, 1953, pp. 251-277; Ali Ihsan Sabis, \"Harb Hahralaram,\" 2 vols.,\nAnkara, 1951, II, 41-160; FO 2146 no. 70404; FO 2485; FO 2484, nos.\n46942 and 22083.\n\n\"An Armenian state was organized at Van under Russian protection, and it \n appeared that with the Muslim natives dead or driven away, it might be\n able to maintain itself at one of the oldest centers of ancient Armenian\n civilization. An Armenian legion was organized 'to expel the Turks from\n the entire southern shore of the lake in preparation for a concerted\n Russian drive into the Bitlis vilayet.'[162] Thousands of Armenians from\n Mus and other major centers in the east began to flood into the new \n Armenian state...By mid-July there were as many as 250,000 Armenians\n crowded into the Van area, which before the crisis had housed and fed\n no more than 50,000 people, Muslim and non-Muslim alike.[163]\"\n\n[162] Hovannisian, \"Road to Independence,\" p. 56; FOP 2488, nos. 127223 and\n58350.\n\n[163] BVA, Meclis-i Vukela Mazbatalari, debates of August 15-17, 1915; \nBabi-i Ali Evrak Odasi, no. 175, 321, \"Van Ihtilali ve Katl-i Ami,\"\nZilkade 1333/10 September 1915.\n\n:     Muslim population exterminated by the Armenians:\n\n>(31 lines deleted)\n\nWhy?\n\n: Who gives a thunder about your pseudo-scholar jokes? I'am arguing about \n: the Armenian-Nazi colaboration during World War II. Any comment?\n\n>Argue it with someone else or do not reply to my posts, Argic my love.  I \n>am not arguing about the Armenian-Nazi collaboration.  I do not give a \n>thunder about it.  I want you to do one of three things:\n>a) admit that you are not a regular user, but a computer autoposting Turkish\n>propaganda, or,\n>b) post the documents on Jews in Latvia, or,\n>c) run away, like the coward without a real address that you are, and do not\n>reply to my posts.\n\nIt could be, perhaps, your head wasn't screwed on just right. In 1941, \nwhile the Jews were being assembled for their doom in the Nazi concentration \ncamps, the Armenian volunteers in Germany formed the first Armenian \nbattalion to fight alongside the Nazis. In 1943, this battalion had \ngrown into eight battalions of 20,000-strong under the command of the\nformer guerilla leader Dro (the butcher), who was the former dictator of the\nshort-lived Armenian Dictatorship (1918-1920) and the architect of the \ncold-blooded genocide of 2.5 million Turks and Kurds between 1914-1920.\nAn Armenian National Council was formed by the notorious Dashnak Party \nleaders in Berlin, which was recognized by the Nazis. Encouraged by \nthis, the Armenians summarily formed a provisional government that endorsed \nand espoused fully the principles of the Nazis and declared themselves as the \nmembers of the Aryan super race and full participants to Hitler's policy of \nextermination of the Jews.\n\nThis Armenian-Nazi conspiracy against the Jews during WWII was an \"encore\"\nperformance staged by the Armenians during WWI, when they back-stabbed and\nexterminated 2.5 million Turks by colluding with the invading Russian army.\n\nFurthermore, as McCarthy put it, the Armenian dictatorship was granted\na respite when the Ottomans admitted defeat and signed the Mudros\nArmistice with the Allies (October 30, 1918). The Allies had decided\nto create a Greater Armenia, including the old Russian province\nof Yerevan and adjoining areas, as well as most parts of Anatolia\nclaimed by the Armenian fanatics. Only the area called Cilicia\n(around the Ottoman province of Adana) was to be excluded, as it\nhad already been claimed by the French. The Allies quickly set\nabout attempting to disarm Ottoman soldiers and other Turks, who\ncould be expected to oppose their plans. \n\nOn April 19, 1919 the British Army occupied Kars, gave civilian\nand military power over to the Armenians, then withdrew. The British\nplanned for Kars to be included in the Armenian Dictatorship, even \nthough the Russian pre-war census had shown Kars Province to be over\n60% Muslim. The Turks of Kars were effectively disarmed, but the \nBritish could not disarm the Kurds of the mountains. The fate of\nthe Turks was almost an exact replica of what had occurred earlier\nin Eastern Anatolia. Murder, pillage, genocide and the destruction\nof Turkish homes and entire Turkish villages drove the Turks of\nKars to the mountains or south and west to the safety afforded\nby remaining units of the Ottoman Army. The British had left \nthe scene to the Armenian genocide squads. Therefore, few \nEuropeans were present to observe the genocide. One British\nsoldier, Colonel Rawlinson, who was assigned to supervise the\ndisarmament of Otoman soldiers, saw what was occurring. \n\nRawlinson wired to his superiors, \n\n\"in the interest of humanity the Armenians should not be left in\n independent command of the Moslim population, as, their troops \n being without discipline and not being under effective control,\n atrocities were constantly being committed.\" \n\n>Instead, you post more Armenian nonsense:\n\nCome again?\n\n: \"These European Dashnags, with headquarters in Berlin, appealed to...\n>(34 lines deleted)\n\nWhy?\n\n: No wonder you are in such a mess. Here are the Armenian sources on the\n: Turkish Holocaust.\n>(30+ lines deleted) \n\nWhy?\n\n>(list of dead Armenians, 100+ lines, deleted): \n\nObrother. Spell it out, \"list of dead Muslims\":\n\nSource: Documents: Volume I (1919).\n        \"Document No: 64,\" Archive No: 1/2, Cabin No: 109, Drawer \n        No: 4, File No: 359, Section No: 103(1435), Contents No: 3-20.\n        (To Acting Supreme Command - Socialist Salah Cimcoz, Socialist \n        Nesim Mazelyah)\n\n\"Armenian gangs have been murdering and inflicting cruelties on\n innocent people of the region. This verified information, supported\n by clear statements of reliable eyewitnesses, was also confirmed by\n General Odishelidje, Commander of the Russian Caucasian Army.\n\n Armenians are entering every place evacuated by Russians carrying out\n murders, cruelties, rape and all kind of atrocities which cannot be\n expressed in writing, murdering all the women, children, aged people\n who happen to be in the street. These barbarous murders repeated \n every day with new methods continue and the Russian Army has been urged\n to intervene to terminate these atrocities. Public opinion is appalled\n and horrified. Newspapers are describing the happenings as shocking.\n We have decided to inform all our friends urgently about the situation.\"\n\n        \"Document No: 65,\" Archive No: 4/3671, Cabin No: 163, Drawer \n        No: 5, File No: 2947, Section No: 628, Contents No: 3-1, 3-3.\n        (To Acting Supreme Command - Commander, 3rd Army General)\n\n\"The situation in the cities of Erzincan and Erzurum which we have \n recently taken over is given below:\n\n These two beautiful cities of our country which are alike in the\n calamities and destruction which they suffered, have been destroyed,\n as the specially designed and built public and private buildings of\n these cities were deliberately burnt by Armenians apart from the \n destruction suffered during the two-year Russian occupation.\n\n All barracks buildings of Erzincan, the cavalry barracks in Erzurum,\n the Government building and Army Corps Headquarters are among those\n burnt. In short, both cities are burnt, destroyed and trees cut down.\n\n As to the people of these cities:\n\n All people old enough to use weapons rounded up, taken to the Sarikamis\n direction for road building and were slaughtered. The remaining people,\n were subject to cruelties and murder by Armenians following the \n withdrawal of Russians and were partly annihilated the corpses thrown \n into wells, burnt in houses, mutilated by bayonets, their abdomens\n ripped open in slaughterhouses, their lungs and livers torn out, girls\n and women hung up by their hair, after all kinds of devilish acts.\n The few people who were able to survive these cruelties, worse than\n those of the 'Spanish Inquisition,' are in poverty more dead than alive,\n horrified, some driven insane, about 1500 in Erzincan and 30,000 in\n Erzurum. The people are hungry and in poverty, for whatever they had\n has been taken away from them, their lands left uncultivated.\n\n The people have just been able to exist with some provisions found in\n stores left over from the Russians. The villages round Erzincan and \n Erzurum are in the worst condition. Some villages on the road, have \n been leveled to the ground, leaving no stone, the people completely\n massacred.\n\n Let me submit to your information with deep grief and regret that\n history has never before witnessed cruelties at such dimensions.\"\n\n:  (a long list)\n:  (a long list)\"\n\nAnd still anxiously awaiting...\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.276+0000", "event": "documents", "entityId": 5821, "properties": {"category": "sci.electronics", "text": "From: gleasokr@rintintin.Colorado.EDU (Kris Gleason)\nSubject: Re: Electric power line \"balls\"\nNntp-Posting-Host: rintintin.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: usa\nLines: 23\n\nfsset@bach.lerc.nasa.gov (Scott Townsend) writes:\n\n>I got a question from my dad which I really can't answer and I'd appreciate\n>some net.wisdom.\n\n>His question is about some 18-24\" diameter balls which are attached to\n>electric power lines in his area.  He's seen up to a half dozen between\n>two poles.  Neither of us have any experience with electric power distribution.\n>My only guess was that they may be a capacitive device to equalize the\n>inductance of the grid, but why so many between two poles?.\n\n>Anyone know what they really are?  Is there a related FAQ for this?\n>Is there a better group to submit to?\n\n>We'd both appreciate some enlightenment.\n\nI think those are to make the lines more visible to airplanes and\nhelicopters... cheaper than blinking red lights.\n\n'course I could be wrong.\n\nKris\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5822, "properties": {"category": "rec.sport.hockey", "text": "From: farenebt@craft.camp.clarkson.edu (Droopy)\nSubject: AHL playoff results, 4/16\nNntp-Posting-Host: craft.clarkson.edu\nOrganization: Clarkson University\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 96\n\nAHL CALDER CUP PLAYOFF GAME(S) PLAYED ON 4/16\nProvidence 3\tSPRINGFIELD 2\t(OT)\t\nBaltimore 4\tBINGHAMTON 3\t\t\nUtica 3\t\tROCHESTER 2\t(OT)\t\nCape Breton 5\tFREDERICTON 2\t\t\n\nGAME(S) SCHEDULED FOR 4/17\nCapital District at Adirondack\t\t\nProvidence at Springfield\nBaltimore at Binghamton\nUtica at Rochester\t\t\t\nMoncton vs St John's at Halifax\t\t\n\t\t\t\t\t\nSERIES STATI (plural of status? :)\nAdirondack leads CDI, 1-0\nSpringfield leads Providence, 2-1\nBaltimore leads Binghamton 1-0\nUtica leads Rochester, 1-0\nSt John's leads Moncton, 1-0\nCape Breton tied w/Fredericton, 1-1\n\t\n=================================================\n=================================================\nFULL 1993 CALDER CUP PLAYOFF SCHEDULE AND RESULTS\t\nhome team in CAPS\t\t*=if necesary\n\nFIRST ROUND\t\t\t\t\t\nSpringfield Indians vs Providence Bruins\nGm 1:\tSpringfield 3\tPROVIDENCE 2\t\nGm 2:\tSpringfield 5\tPROVIDENCE 4\nGm 3:\tProvidence 3\tSPRINGFIELD 2\nGm 4:\t4/17\tProvidence at Springfield\nGm 5:\t4/22\tSpringfield at Providence\t\nGm 6:\t4/24\tProvidence at Springfield\t*\nGm 7:\t4/27\tSpringfield at Providence\t*\n\nCD Islanders vs Adirondack Red Wings\nGm 1:\tADIRONDACK 6\tCDI 2\nGm 2:\t4/17\tCDI at Adirondack\nGm 3:\t4/18\tAdirondack at CDI\nGm 4:\t4/21\tAdirondack at CDI\nGm 5:\t4/23\tCDI at Adirondack\t*\nGm 6:\t4/24\tAdirondack at CDI\t*\nGm 7:\t4/26\tCDI at Adirondack\t*\n\nBaltimore Skipjacks at Binghamton Rangers\nGm 1:\tBaltimore 4\tBINGHAMTON 3\t\nGm 2:\t4/17\tBaltimore at Binghamton\nGm 3:\t4/23\tBinghamton at Baltimore\nGm 4:\t4/24\tBinghamton at Baltimore\nGm 5:\t4/26\tBaltimore at Binghamton\t*\nGm 6:\t4/28\tBinghmaton at Baltimore\t*\nGm 7:\t4/30\tBaltimore at Binghamton\t*\n\t\t\nUtica Devils vs Rochester Americans\nGm 1:\tUtica 3\t\tRochester 2\t(OT)\nGm 2:\t4/17\tUtica at Rochester\nGm 3:\t4/20\tRochester at Utica\nGm 4:\t4/22\tRochester at Utica\nGm 5:\t4/24\tUtica at Rochester\t*\nGm 6:\t4/26\tRochester at Utica\t*\nGm 7:\t4/28\tUtica at Rochester\t*\n\nMoncton Hawks vs St John's Maple Leafs\nGm 1:\tSt John's 4\tMoncton 2\nGm 2:\t4/17\tMoncton vs St John's at Halifax\nGm 3:\t4/21\tSt John's at Moncton\nGm 4:\t4/23\tSt John's at Moncton\nGm 5:\t4/26\tMoncton vs St John's at Halifax\t*\nGm 6:\t4/28\tSt John's at Moncton\t\t*\nGm 7:\t4/30\tMoncton vs St John's at Halifax\t*\n\nCape Breton Oilers vs Fredericton Canadiens\nGm 1:\tFREDERICTON 4\tCape Breton 3\t(2OT)\nGm 2:\tCape Breton 5\tFREDERICTON 2\nGm 3:\t4/20\tFredericton at Cape Breton\nGm 4:\t4/22\tFredericton at Cape Breton\nGm 5:\t4/24\tCape Breton at Fredericton\t\nGm 6:\t4/26\tFredericton at Cape Breton\t*\nGm 7:\t4/28\tCape Breton at Fredericton\t*\n\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n    + Bri Farenell\t\t\tfarenebt@craft.camp.clarkson.edu   +\n    + AHL and ECAC contact for rec.sport.hockey\t\tGo USA Hockey!\t   +\t\n    + Adirondack Red Wings, Calder Cup Champs: '81  '86  '89  '92\t   +\n    + Clarkson Hockey, ECAC Tournament Champs: '66  '91  '93\t\t   +\n    + Glens Falls High Hockey, NY Division II State Champs: '90  '91       +\n    + AHL fans: join the AHL mailing list: ahl-news-request@andrew.cmu.edu +\n    + CONGRATS TO THE BOSTON BRUINS, 1992-93 ADAMS DIVISION CHAMPIONS      +\n    + PHOENIX SUNS, 1992-93 PACIFIC DIVISION CHAMPIONS\t\t\t   +\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5823, "properties": {"category": "sci.crypt", "text": "From: jdailey@asic.sc.ti.com (Jim Dailey)\nSubject: Re: Once tapped, your code is no good any\nNntp-Posting-Host: tidss2.asic.sc.ti.com\nReply-To: jdailey@asic.sc.ti.com\nOrganization: Design Automaton Div., Texas Instruments, Inc.\nLines: 36\n\n>amolitor@nmsu.edu (Andrew Molitor) writes:\n>>\tNot to pick on Mr. May in particular, of course, but isn't this\n>>kind of the domino theory? When one little country falls, its neighbor\n>>will surely follow, and before you know it, we're all mining salt\n>>in Siberia for not turning in our Captain Crunch Secret Decoder Rings.\n\nThere was an interesting column on the editorial page of the Dallas\nMorning News on Saturday by Walter Williams, who I believe is a\nprofessor at Georgetown (I wonder if he knows of Dorothy \"you're not in\nKansas anymore\" Denning).  The article was titled \"Government slowly\neroding our liberties\", and in it he tells a story attributed to the\nlate Leonard Read who\n\n        explained that if you wanted to take liberty away from\n        Americans, you had to know how to cook a frog.  Mr. Read\n        said you can't cook a frog by boiling a pot of water and\n        then throwing the frog in.  His reflexes are so quick that\n        as soon as his feet touch the water, he will leap away.\n        You must put the frog in a pot of cold water and heat it\n        up bit by bit.  By the time the frog realizes he's being\n        cooked, it is too late.  It is the same with Americans.\n        If anyone tried to take our freedoms all at once, we\n        would naturally rebel and suppress the tyrant.  But as\n        with successful frog cooking, our liberties can be taken\n        a little bit at a time.\n\nThe last line of the article says, \"It's not too late for us, but the\nwater is getting pretty warm.\"  I'd have toagree that it's warm and the\nClipper is keeping the temperature on an upward course.\n\nNOTE: followups redirected to alt.privacy.clipper\n\n---\nJim  jdailey@asic.sc.ti.com\n   TI pays absolutely no attention to me or my opinions; therefore,\n   the foregoing information cannot possibly represent TI's viewpoint.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5824, "properties": {"category": "talk.politics.guns", "text": "From: dlb5404@tamuts.tamu.edu (Daryl Biberdorf)\nSubject: Latest on Texas HB 1776 (CCW)\nOrganization: Texas A&M University, College Station\nLines: 9\nNNTP-Posting-Host: tamuts.tamu.edu\n\n\nI called the Texas bill tracking people (800/253-9693) again today \nregarding HB 1776 -- Concealed Carry.  Well, it was supposed to come\nup for a vote this past Wednesday, but the bill got sent back to\nthe Public Safety Committee.  The PSC gave it a favorable rating\nAGAIN, and the bill must now be scheduled for debate by\nthe Calendars Committee AGAIN.\n             Daryl Biberdorf  N5GJM    d-biberdorf@tamu.edu\n               + Sola Gratia + Sola Fide + Sola Scriptura\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5825, "properties": {"category": "talk.politics.misc", "text": "From: mwalker@novell.com (Mel Walker)\nSubject: Re: Top Ten Ways Slick Willie Could Improve His Standing With Americans\nNntp-Posting-Host: mwalker.npd.provo.novell.com\nOrganization: Novell, Inc\nLines: 23\n\nIn article <C5KMz5.Hy4@newsserver.technet.sg>, ipser@solomon.technet.sg (Ed\nIpser) wrote:\n> \n> \n> Top Ten Ways Slick Willie Could Improve His Standing With Americans\n> \n> \n[deleted for a very good reason which I'm sure you can guess]\n>\n\n0. Enact a law that bans people without a sense of humor from\n   posting allegedly humorous items. If he did this, I think\n   his approval rating would go through the roof!\n\n> Copyright (c) Edward A. Ipser, Jr., 1993\n\nThis means we can't quote Ed without his permission. No using these lists\nin your .sigs, folks!\n\n----------------------------------------------------------------\nMel Walker                                    mwalker@novell.com\nAll opinions expressed are of the author.\nNovell, Inc. is not responsible for the content of this article.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5826, "properties": {"category": "rec.sport.baseball", "text": "From: atchison@cis.ohio-state.edu (mark edward atchison)\nSubject: Re: Cleveland tragedy\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 12\nNNTP-Posting-Host: cowardlylion.cis.ohio-state.edu\n\nIn article <1993Apr5.121202.100648@ns1.cc.lehigh.edu> gaf5@ns1.cc.lehigh.edu (Gail A. Fullman) writes:\n\n > I wonder if Ojeda will sue anyone - because his career may be over.\n\nNot due to the accident -- he just got a (really) bad haircut.  Now, if you\nmeant due to his floating fastball, well...\n\n-- \n_______________________________________________________________________________\n Mark Atchison, a.k.a. <atchison@cis.ohio-state.edu>; Graduate Student in the\nComputer Science Dept, THE Ohio State University (NOT an Ohio State University)\n\t\tAny plagiarisms seen above are not my own...\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5827, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: vangus nerve (vagus nerve)\nArticle-I.D.: pitt.19397\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 16\n\nIn article <52223@seismo.CSS.GOV> bwb@seismo.CSS.GOV (Brian W. Barker) writes:\n\n>mostly right. Is there a connection between vomiting\n>and fainting that has something to do with the vagus nerve?\n>\nStimulation of the vagus nerve slows the heart and drops the blood\npressure.\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5828, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kaul@watson.ibm.com\nSubject: DMQS files for XGA-2 (was Re: CatsEye/X XGA-2! (extra modes?))\nNews-Software: IBM OS/2 PM RN (NR/2) v0.17h by O. Vishnepolsky and R. Rogers\nLines: 557\nReply-To: kaul@vnet.ibm.com\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: kaul.bocaraton.ibm.com\nOrganization: IBM T.J. Watson Research\n\n(NOTE: The followups are set to comp.os.os2.misc.  DMQS files describe\nmonitors and valid modes to be used by the XGA-2 under both Windows and\nOS/2.)\n\nTHESE FILES ARE UNSUPPORTED!  IBM has nothing to do with these files or\nthis post.  It's personal this time (and every time I post -- see the\nsignature).\n\nDue to demand and requests, here are some additional DMQS files I've\ncollected for the XGA-2.  These files function with the latest revision\nof the drivers for the XGA-2.  Not all these files will work under Windows\nwith the drivers available to the general public at this time.  All files\nwill function under the most recent OS/2 2.1 beta and those I've tried have\nworked under OS/2 2.0+SP.  Not all files have been fully tested.\n\nTHESE FILES ARE UNSUPPORTED!  They represent a personal collection, not\nanything resembling an officially supported set.\n\nAs a standard disclaimer I would like to point out the following facts:\n1) Some of these files may run your adapter out of spec.  Doing so can\n   stress the ICs on the card and may result in incorrect operation or in\n   shorter life (how short depends on how much out of spec [boom!] :-).\n2) Some of these files may run your adapter in a region that is out of\n   spec for your monitor, resulting in damage to your monitor.\n3) You should be knowledgable about your monitor and adapter's ability\n   to use the mode you select.  Using these files represents hacking\n   in a very true sense, so practice safe computing and don't play\n   around too much if you don't like the risks and aren't knowledgable\n   about what you're doing.\n4) If you feel uncomfortable with all the warnings, use the DMQS files\n   you have or wait until IBM releases official, tested DMQS files.\n   Although you should be aware of warning 2) even with the IBM files.\n\nTHESE FILES ARE UNSUPPORTED!  By using them you may invalidate your\nwarrenty.  Not all have been fully tested -- I don't have that many\nmonitors.\n\nInstallation: unpack in your DMQSPATH environment variable, usually\nc:\\xga$dmqs.  Then use the methods described in your XGA-2 installation\ndiskette to change your adapter or settings.\n\nPacking: these files have been packed with the latest INFOZIP utility.  \nYou will need PKZip 2.x if you don't have the INFOZIP utilities.\n\nSubmitting:  feel free to send me uuencoded versions of your favorite DMQS\nfiles for your favorite monitors.  I'm always interested in collecting more.\n\nArchive:  these files have been uploaded to ftp-os2.nmsu.edu in\npub/uploads/xga2dmqs.zip.\n\nbegin 644 xga2dmqs.zip\nM4$L#!!0``@`(`)I%EQJ!0#0BN`````4!```&````<F5A9&UE38[!:L-`#$3O\nM!O_#_$!2R!\\4`CWU$)I`>E1VY7A)O%JT6HS_/G*:0$$@&,T\\S7%,%3Z$JTHK\nMD`'[[\\,/AG3GBD$4-C+.7Y^;'2A2,58$TK@%CB,O(.6^RV*HK111XXB+JWF1\nMS.XY5089%FD*F3,TU9O+O](PT0)M^7GKNS>;<OSPIY/D9+ZEV5JI%@YI2($L\nM2<:<;%QK.?NOIH?0=Y$FNC),P&Y862_F?Y[B(IX.TNX1$D+3;=\\]`%!+`P04\nM``(`\"`!]0I<:1.T:\\HX!``#X`@``\"P```&UO;CDU9CDN9&=SG=$]2UMA&,;Q\nM^_\\<;:23]L67:N7)T9@7(IR$P_$LW2PM.\"30E*0OFT/`(@@N0>&8Z\"(N9G$0\nM1;H)?@HWAWZ!;HIT*.0+I$O3Y&[!I+2+%]S#-?VXN5K3S>?R<OG-.^G%6BOB\nM2NM!\\R<@+9KM+VWSX^CA,-*6-<GYKLW[82T7!NOK61MXK[=LSLO[M:4@_%-#\nMSZL%GI>U2_EN\"WROYH>>_\">[W8M$AL1QAGO=R*0,\\8V*$:$(16'TG#'AT0Z/\nMA2<[/!7&SYD0)O>9$IX=,RW,\"+.\"31!W<#O,&>8[)`P+\"9(.*4/:(3-\"ML-B\nMAQ)L\")4ZI0;%JTBL4S%W^F?9YD.?OJ?ZJNJKJN^I_DGU;=4MLP:[2=S@EE4O\nMJ[Y)TI\"JD#9D/@[J!4IUBK%(ZN:&.SWJZE_[]*KJ!=4+JE=5?ZOZ^SX]IOHU\nM<S!_30(68JI_)PV9UJ#^0O6KGM[\\2U]Q[J-?$@?W4/5#U2])0NI4];-_Z:\\B\nM&1W8?81;RGV_7ZC>4+VA^H7J!ZJ?W'?WQN_=?P%02P,$%``\"``@`?4*7&H7S\nM+]\")`0``^`(```L```!M;VXY.68Y+F1G<YW1/TM;<13&\\?/]W:H@#M:J]4^5\nM7Z[&1%&X\"?&:#MTL[6;`@\"ET$.[0*9`QB\"1>AU*ZF$4A(+X$%5^!FT.7CMWL\nMW!2%4HHNWC:GBHGHXH$S/-.'<Y[&:&U,7B\\NOY/F6&M%7&ETUJX`:5\"[^')A\nM+NO='4B,;Y+R79O.OBRG4WZQ.&L7YM^NV927SI07_.QUS'I>V?>\\Z^1GO'(F\nMZ\\D#L_EO*R)/Q'$ZFMG(D!0(S!\\C0@YR0N\\!3X6^*L^$_BH#PN`!SX6ACPP+\nM(_N,\"B^$<<'&B3FX$1.&R8BX82I.PB$9,6V8Z6(V8BXB#R6AL$T^)-=5$>L4\nMS*W^57YSWJ*'J@>J!ZJ'JI=4K[;H=6(&=T7U%=7K)`S)==4WV_4/-_J&^<ZM\nM7I'/G+7H@>I+JB^I'JB>5WU5=<NXP?:H?LH$3)X2AZD>U7\\P#3,_V_57Y#?(\nMG33UVAV]Z#Q&/R8&[I;J6ZH?DX#DKNI[]^EO*M+;UOM[5LVOEMN/5`]5#U4_\nM4OV3ZH>/[7WG_^?_`E!+`P04``(`\"`!]0I<:_!HX=4`!``!T`@``\"P```&UO\nM;C5F9C4N9&=SG<_-2@)A%`;@\\W[V`^&B_RQ+/L=_,?BL:1BH96$[A2;4-AE#\nMBP)!HL700J4;<\"X@NI7<N>@B;)UM`U?9>#::%$@OG,6[.0]O+^CNT,GQ69F&\nMD5(2:=2;<[\\`4`]N__5>?%XNS(#Z=$M979-[NNED3:-:S<B)'!BG#])4RC&4\nMRDA#><W0E:.;BO[(HW=UDKZ2\\,T.NZ``N53!OB!\"`2@0%AM8(BS;6\"&LVE@C\nMK#>P00C<8).P=8<@85LB)\"!K\"`MH140$HD7$!.(U)`22):0$TA?(#+`[@`74\nM\"*4<K\"8*\\W5JBC>,]&LZ0GE,MUG/LYYGW6;=8KTRIOM9[R(\"1+N(`7$_Z^](\nM`>F/GWJ4]8[#.OE&^B&*4^CGK%^Q3@C1M+I'6][SSG\"U.['ZY5^KVP@#6HO=\nM%KMM)(#D$[O/OZW.?0-02P,$%``\"``@`?4*7&F4;5/H]`0``=`(```L```!M\nM;VXU9C`P+F1G<YW/S4H\"81@%X',^^X%PT7^6)9_COQB,(<-`+8O:*32A4E`Q\nMM\"F$P!9#@DA>@',!$=U)[EQT$;;.+L!5IE\\+30JD`^_B;-Z'T_&[6SC8/RYB\nM$\"DEH*$SXWZ21(=N]_5.X'QNBNCB&NF,)G<RII,VC5(I)<=BZ$?WTM1UQ]#U\nMU'<S,KJ3,77\\D8?^52$]!>&9'G0!'YY1X:D`F\"-SX'R=\"^\"BS25PV>8*N%KG\nM&NB[X3JX4:$?W)0,\",HR@X):GB'!<)X1P6B9,<%X@0G!Y!E3/6[W:)&W8\"%+\nMJ\\;<;!4U\\<:A?H4]%D=T6^E9I6>5;BO=4OK%B.Y5>ILA,MQFA(QZE?[.!)G\\\nM^*F'E=YRE`[/4-]E?@+]1.F72@<#F%3OTU;_>6NPVAU;_?*OU4T&2:VAW(9R\nMFXR1\\4?E/OVV^O`+4$L#!!0``@`(`'U\"EQI(@QBPD0$``/@\"```+````;6]N\nM-34U-2YD9W.=T3UK4V$8QO'[_QQKQ*F^M%9KRY/3IGDAPI-P3,_B(%@4'!IH\nM8E_6#(%\"H6/0<I+32>K0K$%Q*_0K=\"AT:\\'-R:VZ%?(%,AG36Z&).O6&>[BF\nM'Q=7=[H](TLO5M;E\\JRU(KYT;[9_`M*EW?O2,]7J[3&D)YOR9FGEN2T$OBT&\nM8:,0EK:V\\G;1O7IK\"ZX8-!9+X2`6!S%TKE%R[D\\J!:X1A$[^O=W!1R(WQ//&\nM+K.1*<GSU!P;$<I0%L8/N\"/<;7)/N-]D0I@\\X($P]9Z'PJ,.T\\)C85:P*9(>\nM?I\\YPWR?E&$A1=HC8\\AZY&Z1[_.D3P6VA;4]*C'ETTBLMV:N]#/YP=<A/5:]\nMIGI-]5CU;=6;0WJ'I,%?57U5]0YI0V:'K\"&W.ZK75$]$TC+?N=(C><>W(;VN\nM^K+JRZK75:^JOJ&Z9=9@$ZJ?,P?SYZ1@(:'Z!5G(=4?U9U1:VKUEVG_IK[WK\nMZ\"<DP=]7?5_U$]*0^:3ZY__I+R,9']G=431'0]T/58]5CU4_5'U/]8_7W?W#\nM[]U_`5!+`P04``(`\"`!]0I<:@(N,\\2@!``#\\`0``\"P```&UO;F8U9F8N9&=S\nMG<T[2\\)A&(;QYWJEA*;.69:\\G@\\8_!4Q&QJ\"I*!!04MK=7`2'*7\"U\"^@JQ!]\nM%K>\"MB8W:PN<@X;(\\FVHK*D+[N&>?D-G9T/2>[D3&:>U%O'(<+KS!LB0SLO=\nM*Z/G&1OBIB_'Z=RNCB4].I[:KL5CR4HEJB?:BA^<Z91EU9*6%?U\\R8152Z0L\nM^5WK8W71MJ*R38V_$H?<RB/W2H0L9(79)G/\"?(D%8;'$DK#<9$5P5%D5UBYQ\nM\"NN\"2]!=W`I/`:_\"5\\\"O\"'0)*D(7A!61%M$1FR/R4!6*)?)-LO:Z--0#7WI=\nMSNE_T\\M&SQ@]8_2RT8^,?FITC4NA[48?X`7?`#\\$[$9_(@R1X4]]AWR#[,U8\nM[TSHA[;_Z#W<X&D;O6WT'D$(71G]^B]]_QU02P,$%``\"``@`?4*7&B/F0^R/\nM`0``^`(```L```!M;VXP-3`P+F1G<YW1/4]381C&\\?O_'$N)$R@JB)*G!TI?\nM4I.G)_50!P<3B\"0.-*'RXMJ!B82Q`7/:PT1@H&NC<2/A*SB8L&GBYL2&;B3]\nM`DS4<F-\"JT[<R3U<TR]7KLYDZZDLS\"^OR]59:T5\\Z0RU+@'IT+KX?F$D<3>!\nMI#B5E87E5[88^C8HOZ@'Q7!SLV#GW.*V+;J@5)\\+R[T8]&+9N7KHW)\\4EER]\nM5';R[^WV/A*Y(YZ7N,I&QJ7`<_/%B%\"!BC!RQ*APK\\%]8:S!`^'A$8^$\\3TF\nMA,=M)H4GPI1@TZ0\\_\"[3AIDN:<-LFHQ'UI#SR`]3Z/*L2Q6VA+5]JC&5KY%8\nM;\\W<Z-_D%S_Z]%CUFNHUU6/5MU1O].EM4@9_5?55U=MD#-GWY`SYW4&]IGHR\nMDJ;YR8T>R0ZG??J&ZDNJ+ZF^H?I;U=^I;IDRV*3J9TS#S!EIF$VJ?DX.\\IU!\nM_275IG9OFM9?^AOO-OH)*?`/53]4_80,9#^J_NE_^NM(1@9V=P3F<U_W8]5C\nMU6/5CU7?5_W#;7<_N-[]-U!+`P04``(`\"`!]0I<:?LU(V8L!``!:!```\"P``\nM`&UO;F8P,&8N9&=SI=([2R-1&(?Q]YF)BZ!B7*_K)4QB-(DHI/`&:R&BA\"V6\nM!!S9C942[2U3Q41![4PK&/T0BIVLG<5^\"*V-A:65<?+.KIN$+29Z#J>98GX\\\nM\\\"\\/%4=D97DU+=5C699(2,J?BB^`E\"D^_U[W=3ZUM8ILT<:WI>_6_$Q\\;M*:\nMGXU/RX?/GO-R(CXQS1;WRX!<.M(E(J0@)?A+=`F?=^D6>G;I%?I*]`L#^WP1\nM!D\\8$H8M`@96G*!)J,*H0;C\"F,%XG(A)5(B93+0R66&J@@T[PL\\T=IY49U9U\nMY[[I&2X\\Z`>JGZJ^2,#G57=HN\\-Q<Y(W[G&K#<?=E@72QC\\WHVY2W:2Z&75M\nM=3=JJML)&H3N&(7P'6,PWD[$(/I`#\"8>ZZO#6GV;5=VM=O6O_/\"@KZF^J;H0\nM$*]ZM=KY^6VUNMA0_>M=U3<$(72L[K&Z-T0@>JKNV?^J$UG5ZZNOWU7M3?]3\nMG<B)OV[A5PT;.U>WH&Y!W7-UC]0]JW&;6O@Z=D$7[O>P\\%K=7?BAZJ6F];\\+\nM?P502P,$%``\"``@`?4*7&JA:;W6(`0``6@0```L```!M;VYF,&8P+F1G<Z72\nMOR]K81S'\\>_[G!(1-\\KUZRK-:966D)!HW(1!A(A!-'&$=G)3=F.G4A)LNDJ4\nM/X+8Y-H,=[T[LQJ,)G7Z/7ZT8CAXGCS+&<XK[^13#.2[969Z,2GE8UF62%B*\nMM?E'0(KD'_ZE?/?W]75(@/\\R-S5O_8Z/C`Y:8_'XJ'S[;#LO*^(3TZQQOW3(\nMF:QQA@@)2`C^`DU\"\\R8_A99-6H6V`NU\"QPZ_A,Y#`D*71=#`&B9D$B[18Q`I\nMT6O0-TS4)\";TFPS4,5ABJ(0-&\\)*$GN+1&-&=>>^ZFE./>B[JA^I/DG0YU5W\nM:/N'XV9ER[C!K38<=UTF2!IO;EK=!747U$VK:ZN[6E'=0,@@?$T/1*[IA;X&\nMH@:Q6_IAX*ZZ.J+55QG5W6I7'V?9@[ZD^A_5A:!XU<O5SL^ORM7Y=]5_OU1]\nM20C\"!^H>J'M)%&)'ZAY_5#V;4;VZ^N)+U=[TY^K9K/BK%G[^;F,GZN;4S:E[\nMHNZ^NL<5[J<6GL+.Z<+]'A9>J;L+WU.]\\&G]9>%/4$L#!!0``@`(`\"-N5QD,\nM6RBON0$``-@$```+````;6]N9C!F9BYD9W.=T[]K$V$8P/'G^UX4A8KQ=[4:\nMWJ1)\\X,6SJ&E4`<1I3A(`T;2.\"FGH)N#8J:T<;\"\"0_,'-.T_X-;@(F*W#OX#\nM;G4V#H[BX'EYKFDO5>&:][@;;K@/W_?>ISO6NB*W;MZM26]9:T4RTCW:^@U(\nME];/SU\\2_@__./)+/LCM&W?L[/35Z<G><\\:^?/K\\B9UUW?J,Z\\HPZU5P-T02\nMXCA'PC>CTI%'=!\"A#&4AV>:4<'J),\\+9)<X)Y]M<$$9?<U&XM,:8<%E(\"=8E\nM[9#Q&3=D?7*&\"9>\\0T$H.I2.,>DSY5.!9\\)BC4J3\\LFZZL&UIWML'E*_3BH1\nM5P_HRHG`;8AU%DU8;?Y;[:GK1=P7ZKY5UY(R?;>J;C7BOJ-H*'7^JEY6?=E\\\nM95]_+->HF7W=4WU!]075/=4KJC^(Z\".D#9D=QB&[0PXF1L@;\"M\\H0NG[H)Y5\nM?;NN>KCGH3Y'-89^3_6'D3\\>3^_M>?#Q[5YUZT#UIZ&JMTA#9E7=576WR$-A\nM3=WU?U7/UU4?K/XX5'4\\?;=ZOB')@?EZ?^\"$;ZC;5+>I[H:Z;]1='W:^[O?G\nM*QECOJ)Z>,Y75&\\?6N_/UQ]02P,$%``\"``@`@T*7&F-_U2,#`0``;@(```L`\nM``!M;VYF9C!F+F1G<Z7/OTJ\"41C'\\=_W6\"T)_2_+DJ-96A@(&08U12$-H=`;\nMY5:(:S0ZA70#OM`:W4GD)M1%V)Q=0%/F>PBB:!![X'G@+.?#MQ/UEW2P?UQ6\nM,-9:*:'.B/\\!J(/__GQIQKJC0]*3;G6X=V2WM[*;F>#F,C:7S^;UC[GI[;7J\nMYH70</`VBJBJ7<I&H@0E,5YA0DP6F1+316;$;(4Y$?&8%POG1,6B)6:P8>*&\nM1)ME2+99@=4P*4/ZE358?R/39:.+!U?B+(E7I]2J.5VA;WV'TS[T$Z=?.%W$\nMU*_>H[W>YZV@VO]5_3A0=9,X)!K.;3BW20K2=\\Z]_ZNZ4'/ZS^J'@:K[T[^J\nM\"Y]02P,$%``\"``@`@T*7&H-U),$)`0``;@(```L```!M;VYF9F8P+F1G<YW/\nMOTJ\"41C'\\=_W6-'@T/\\L2XYF:6&#I234%$4TA$)OE%LAK='H%-(-^%Y`=\",1\nMN3ET$39G0V,T9+Z'((H&\\X'SP+.<#]]VU)_7[LYA6<%8:Z6$VD/^!Z`V_MOC\nMA7GM#`^@=]UI?_O`%O+9;\";8:VZONUW(V(U\\+J=_SG7W7:EFG@@-!K=11.?:\nMHFPD2E`2(Q5&Q5B1<3%19%),59@6$8\\9,7M*5,Q98@8;)FY(M%B`9(M%6`J3\nM,J2?68:5%S(=5CMX<\"E.DG@U2LVJTQ7ZUC<Y[D$_<OJ9TT5,O>I=VNM^W@RJ\nM_5_5#WU5-XA#HN[<NG,;I\"!]X]S;OZKWJD[_67W?5W5O^E?UWB=02P,$%``\"\nM``@`@T*7&L/V+P9H`0``5@(```L```!M;VYF.68P+F1G<ZV/O4M\"813&S_-*\nM!>%@WY85KU;V00U!00U!F\"%\"HJ%D-GFI6TI7\"S/\")=ZY15<A_`]J:&VY6T/^\nM#SI%9(1C-?3FO9)!-$7/]GO.@=\\Y-4=AA-:]X1@9X9P3N:C67O@`0#447N^W\nM6/VMDX'>Z9;\\G@!?7IQ?HG_*#EP$6B@58P]4IRM?L7C-ZO3HYK9P@SLV:IN/\nMECK=$\".ODCGD'NU4Y>:-PN2UG)(V68B(JFC<EU%5HU@5S7F#<\\8\\'H\\'DGLM\nMY$*(D**IK4+7]8WD02+[593+Y:B22?&8JFE'9YQ+V=S_YG)P?Y]'$\\FL>8^4\nM57\\ZJZ9/U&8GI20Z)\\&JL+09?S*R-_@\"+XP((2!$L.VBB]`=1`^A-X@^0O\\N\nM!@CV\"`8)0W$X\",,<HPS<\"B>#JX(Q8+R\"\"<!MQ23#U!.F@9EGS$K,242`8\\+V\nM\"B(\"H3O#7OAA3UG^8M?A!%QYTYXW[3HF@:E+TU[ZS>[[!%!+`P04``(`\"`\"#\nM0I<:EHL*P8\\!``#X`@``\"P```&UO;CDY.3DN9&=SG=$]2YMA%,;Q\\[\\?7TIQ\nM\\*6VMEJY\\VC,\"Q'NA/@8![<6NR5@P)0Z\"!E+H.`2*CR:ND@ZF#6TE\"Z\"7Z%#\nMP<W!+^\"FLRF=G1J3T\\%$=/'`&2[.\\.-PM:8;K^7MF_7WTAUKK8@OK:'&/T!:\nM-*[/KDVS^700B7`NZ<\"WF=Q*-9,.*I6477;O/MNTRV2KRT$N98-NS#E7#9SK\nM')<Z*<BZ:C;GY('YTME09$`\\;[\";C4Q)BB7SVXA0@((P>L28,+[+A/!LETGA\nM^1$OA*D#7@JOFDP+,\\*L8*-$//PV<X;Y-E'#0I281]R0\\$@^(=5FL4T1/@FE\nM.L4:A=-0K%<RM_I/V>%#C[ZO>EGULNK[JG]4?4=URZS!;A,Q^!NJ;ZB^3<P0\nM+Y$P)#?[]3S%/0K#H>R92V[U4.K\\[='+JN=5SZM>5KVH^E://J+Z!7,P?T$4\nM%D94OR(!R3_]^JKJIUV]<4>O>(_13XB`?ZCZH>HGQ\"#^7?4?]^EKH8SV]>[(\nMF%\\]OQ^K7E.]IOJQZG75OSVV]Z__>[\\!4$L#!!0``@`(`(-\"EQIC=KSICP$`\nM`/@\"```+````;6]N.3DU-2YD9W.=T;]+6V$4QO'S?:_:4AQL[0];J[RY&O.#\nM%-Z$Z_4N;BVZ)=`4(SH(V5H\"!9=0X6KJ4M+!K-)2N@C^\"QT*;@[](W0VI7.F\nMQN1T,\"FZ>.`,#V?X<'C:TZT9>?7R];KTQUHKXDM[K/47D#:MSJ^.>7-X;Q3I\nMR%O)![XM!%$]'X6U6LXNN=4/-N\\*07TIC'(V[,?(N7KH7.^XV$MAX.I!Y.2&\nM^=C;6&1$/&^TGXU,28Y%\\].(4(*2,''$?>'!+I/\"PUT>\"8^/>\"),?>*I\\.R0\nM:>&Y,\"O8)`D/O\\N<8;Y+TK\"0).61-F0\\LG?)=7G1I0SOA4J3<H/2:2S6JY@K\nM_;OLL#&@[ZM>5;VJ^K[J[U3?4=TR:[#;)`S^FNIKJF^3,J0K9`S9S6&]2'F/\nMTIU8]LPY5WHL3?X,Z%75BZH75:^J7E9]:T`?5_V,.9@_(PD+XZI?D('L[V%]\nM6?73OM[Z3Z]YM]%/2(!_H/J!ZB>D(/U5]6_7Z2NQ3`SU[BB8'P._'ZO>4+VA\nM^K'J3=6_W+;WS_]ZOP102P,$%``\"``@`@T*7&I?T>V2U`0``V`0```L```!M\nM;VXY,&8P+F1G<ZW3OT\\381C`\\>?[7A4E&`%_(6AS+87^\"!(<#(TP&`(A#H8F\nMGM%ND,+NV*E0390%N=6$NHMA@H%!`QL#_X`;L%(&1B?/ZW-&KF+BV?A>;KCE\nM/OF^[_/6^]R[,C7YM\"B-9=NV2%+J%]WO@-1QO^U_C9VZ[9>1(8[D\\<03.__@\nM_JC\\I_7*?RLB,;&L\"XUO(SV2YZ'Y;$0H0$'H7*=+Z%[DFG!]D1O\"S75N\"3UO\nMN\"WT?J1/N\"/$!7N8A$72H]^0\\A@P#`Z3MLAX9`VY-H8\\[GDX\\%)XL8)3I=`6\nMUL77MV2>+<[TVCF]IOIKU=^K;A,WV\"/G]!'5A:Q%[E*S7L19HG\"UK+K__-)+\nM;$;0@_8UU1\\1CT75?=JYXKL563*'G.WY@HQ3#.UY2=T9=6?4+:GKJ#L;JNX@\nM84@>T`^I`P9@L(.T(7-,%G(GS=4IK=XKJQY4!_H8SR/HSU2?\"YUX-+U1[?]\\\nMKU'M_E:]TU+U+@E(KJJ[JNXN:<BLJ?OA3]739=6;J[^T5!U-_UD]79'.IOLU\nM3MYLA]P-=:OJ5M7=4'=9W4^MWJ]WP?TJJ_ZW\"0_KP82_5;T6TO]MPG\\`4$L#\nM!!0``@`(`(-\"EQKY8\"&;T@$``%(#```+````;6]N.3EF,\"YD9W.MT+]K$V$8\nM!_#O][UJ%#JT:K5:+6^N;9*6.CB(\"`K2IH1\"2ZYZ$%L0<M1K&[Q&B1'IDEX6\nM00=[HX*X9V@'_0=N<S\"\"HUOK)IY(1EU\\S;W!_A\"GXK.\\?)_GA<_[/M%`<`%3\nMV5OSB$M*\"9B(C@:_2\")B\\./]3:/U\\E@7,<[/F)Z8E5<O7[J\"_U0+-$&HG\\<+\nMG]#\"9F[NQ5O1/M-1[YUV3LQ$<U^,%MY`(.M4[LD)[Y$K]1M]G2?7G++.OF^[\nMCB=S%=>-&S?\\SKR=U^)YL5B<+=W=C=+W?<OQW-U&&(8SI>65ZI]&L]DL.)55\nM.>]ZWOW'4BK5N;^7F_FE)5E8*57U>Y3:F2Y7W?)#M]-32@$UH`N&<23^IT`_\nMKG%*?!0`+=(\">QKL!4^L\\R1X:IU]X.D&SX#]3W@6/-?@`'@>'`1EBDF#IN*0\nMX+#BB&`JQ;3!C.*HX%B\"XXH7%6WR`7C[.>TZK40-OMCAGE[#,W[?IR]J/:_U\nMO-87M6YKO:AUR4%!V<VDH+G-(7)XFR-DJIMIP<Q7CI)CWP[JUVG[M-[%>O\"7\nMOFH<1@^9),T-K6]H/62:S+S2^NM_Z;D:>@YL/LM)\\6'?W[>T7M=Z7>M;6G^J\nM]<W#;C[H;/XW4$L#!!0``@`(`(-\"EQKU%5#0D`$``/@\"```+````;6]N,#4P\nM9BYD9W.=T3U/4V$8QO'[_QQK#8N@H\"!*GAXH?4E-'@^UIXN#B403!YI0Y67M\nMP$1\"G!HAISU,!@>Z-A(W$KZ\"`PD;)FY,;.AFTB_`9\"VW)+3JQ)W<PS7]<N7J\nM3+8>R?R+Q16Y.&NMB\"^=FZU?@'1HG7\\[-[<30PGD'6.\\G5]\\;@/GV[G0U8,P\nM7%\\OV-\"]>F^?N*!8#TOE7@QZL>Q<O>3<92H57;U8=O+O;?<^$KDAGI>XR$;&\nMI<!3<VA$J$!%&-YG1+C3X*XPVF!,N+?/?6'\\`Q/\"@S:3PD-A2K!I4AY^EVG#\nM3)>T839-QB-KR'GD;U'H\\KA+%3:$Y1VJ,97C2*RW;*[TK_*#DSX]5KVF>DWU\nM6/4-U1M]>IN4P5]2?4GU-AE#=HN<(;\\]J-=43T;2--^YTB/9Y+1/7U-]0?4%\nMU==4?Z/ZJNJ6*8--JG[&-,R<D8;9I.H_R4&^,Z@_H]K4[DW3^DM_[5U'/R(%\nM_J[JNZH?D8'LGNJ?_Z>_C&1X8'='8+[T=3]0/58]5OU`]1W5/UUW]X]_=O\\-\nM4$L#!!0``@`(`(-\"EQH`UO.#U@$``&`$```+````;6]N-69F9BYD9W.=TD]/\nM$T$8!O#WF:U\"#,;Z!T309KJT]$]*,FTV:PT>.$CTUB:N::LF8A9.A,2$RP:2\nM0FF\"WNC5A(+?P88KO7'P\"WB#,_4#>'+=OJNR)9ILG<D<WCG,+\\_DZ4VW'M#B\nMD^<UZB\\I)9%.O:NM'P\"HA];W+TL1]\\VU45`<7REOZK)0?.04\\N;:6DX:QK,-\nMF5<%PWEH%G/25-Y85,HQE?HUF89RC**B?ZP=[]2)(J1I5_R;2>K0,CH@0ADH\nM$Z)MW\"3<VL)MPITMC!,FVKA+F&SB'F'J(Z8)]R5B`E(AKD%W,2.0<)$4F%5(\nM:4@3,AJRH\\BYF'-A`>\\(U1JL;91O.*Q[^X]NXW,(?9?U?=87$(N$U3W:NNZY\nM=9):5?BIA>=^HDV\\$A=NDUV;79O=)KNK[&X&4J\\C+J!7V*VPNXZ40+J*C$#V\nM]6#J$J<>J=.V.,.%OD*/40OH-NLEUDNLVZQ;K\"\\%]#'63S$#)$Z1!&;'6#]'\nM!LA^&]03K)\\XK/M_[NOSJ(307[#^EG5\"C,+J_3_W'C_IIVY=2GW\\7ZF[B`/Z\nM'KM[[':1`M+[[![\\+?73.D4'>GYTJ6F'K#=8;[!^R/H'U@\\\"J8?J^4M8#>YY\nM-$3/@[K?\\_>LMX?6?_?\\)U!+`P04``(`\"`\"#0I<:MY=-LST!``!T`@``\"P``\nM`&UO;C5F-3`N9&=SG<^]2H)A&,;Q^__8!X1#WUE6/)KYA<&KR(M18U&;0H9*\nM084TA1#8(`DB>0!Z`!&=26X.G4\";S=D!-&7Z-&12$%UP#]=R_[@Z[L:*[.X<\nMY*0?K;6(5SICC7=`.C3>'J]4ZF1B!/'P)%';JV.)S5(L:A<*$3T4V]J_U@G+\nM*MF6%?EL=MPJQ1.6_)*;WE5$.[+*,=KO2EQR+V6.E`@I2`F3-::$Z3PSPFR>\nM.6&^QH+@NF!16\"KC%I8UJPI=Q*/P9EA3^#*L*_Q%`HI@EI`B?$RDRT:7-%P*\nMV23I*JGQBE35,U_ZN6R3&]#S1D\\:/6GTO-'31C\\=T)U&;[,&OC;KX'<:_840\nMA%^_ZSZCMTI&%\\>7OD7F#_JAT<^,+JS*7_4>G>X];_57-X96/_QK=1,/>.O&\nMK1NW20\"\"M\\:]^VGUW@=02P,$%``\"``@`@T*7&N=G+_+4`0``8`0```L```!M\nM;VXU9CDP+F1G<YW23TL;01@&\\/>93:N(Q:AMM5K#9(WF#RE,9%D7VD,/+>TM\nM`;<D44%E]=(B%+PL%:)IH'ISKX+1?H>*UWKST`]ASTT_@*>FFW=MW4B%M3/,\nMX9W#_'B&IS7N3=#+%W-5ZBPI)9%.K;O>+P#4@G?Q;3GF+?7U@B[H+14,7<X8\nMEENPS/7UO#2,UQ]D0<T8[JQIY:6I_-%2RC65NIQ,0[F&I>B&]=$_-:(8:=J=\nMX&:4CFD5QR!\"\"2@1XDT,$H:V,$RXOX4'A(=-C!!&&WA$&-O'..&Q1$)`*B0U\nMZ&U,\"J3:F!*85DAKR!\"R&G*]R+?QI`T;>$^H5&%OHS3@LN[OO[J#+Q'T3ZP?\nML/X<B5A4W:?M>[Y;(ZE51)!:^.YGVL2\"N'(;[#KL.NPVV'W'[F8H]0:2`GJ9\nMW3*[&T@+9\"K(\"N06NU,7.75/C;;%=USI:_0,U9#NL%YDO<BZP[K-^G)([V?]\nM')-`ZAQ3P'0_ZS^0!7(_N_44ZV<NZ\\&?!_I3E\"/H;UA?89V0H*AZY\\_]Q\\\\Z\nMJ;UKJ;_^5^I3)`%]C]T]=D^1!C('[![^*_6K&L6[>GYRK6E'K-=9K[-^Q/HN\nMZX>AU+?J^3SL.O<\\'J'G83WH^0[KS5OK?WK^&U!+`P04``(`\"`\"#0I<:EZ-D\nM=M4```!^`0``\"P```&UO;C5F9C`N9&=SK<V_2D)A`(;Q]_E.Y=!B?[6L^+).\nM5BCH(KB*#0W!@1P,@H)NH\"LX<AJB\\2QV&1G>1I=R&J(AFOS2KZ56\\8%W>*=?\nM5DIW==:YO-(T:ZU45K:4C@%EI-]O,1\\WRP95>-=Y^\\(VZZU&K=YH:@X]3!9+\nM\"PJ\"Q>DW*JK'G?DR$A%$(C]D1:SV61/K?3;$YI\"\"*#ZR);9?*(D=L2=LR'Y`\nMV7%@.'2$AJ.02L\"QX\\1PFJ/JJ#FZ<\"]Z`[H)42Y6_I]^S:WY_*./O)YX/?'Z\nMR.M/7G^=57_^U7\\`4$L#!!0``@`(`(-\"EQIE<J0]*0$``/P!```+````;6]N\nM.34Y.2YD9W.=S;U*@F$<AO'_]4@)37UG6?'X_8'!JXBY-`1)08.\"EO:Q-0B%\nM$+A(@D@>@\"X-042'XM;0\";39&+PGX!\"9/DMF35UP#_?TL]V=#<GLY4]DE-9:\nMQ\"OV=.<3$)M._^6#^[L9!]*72SG.Y'=U/.G5B62Z%D^G*I68GBAE'=SHM&75\nM4I85T]N)X4LEK5HR;<GO;H=KB':4E&-J])6XY$GJG\"D1<I`39EO,\"?,7+`B+\nM%RP)RRU6!-<5J\\):';>PKME4Z\"H>A;>(3^$O$E`$JX04X1(11?2<V(\"M`06X\nM%DI9\"DURSH8TU1O?>F.HOX[I9:-GC9XU>MGH1T8_'=.=1N_A`W^/``2=1G\\G\nM`E'[I[YC].>1WIG0#QW_T;MXP-LV>MOH74(0?C#ZXU_Z_A=02P,$%``\"``@`\nM@T*7&A_L\\771`0``4@,```L```!M;VYF.69F+F1G<ZW036L3410&X/>]4PU(\nM%_&[6BTWT^:C11>\"7;@0I%9\"H26C'6@C+F:(TS8XC1(CTDTZV8BX:38*`>D_\nML)5LW<S.A?D/[4J*$0DN1%UX[=S0+W%5>G;O.1>>>TZ[OWX9=\\:G\\XA*2@F8\nM:!^O_R&)-NL_/]TSU*\\3/<1O?,#$V)2\\,7IM%$=4]VF\"N+[:R']&!^^RC<::\nMZ&`K)>/3VSDVV;Z[9730A,\"X6WXDQ_QGGM1_#'2^O>26=`X\"VW-]F2U[7M2X\nM%73GVWDIFCN.,U5\\N!ME$`26ZWN[C3`,)XOS\"Y6=1JO5FG'+BS+O^?[CYU(J\nMU7V_EUNYN3DYLU\"LZ/\\HM3E1JGBEIUZWIY0\"JD`/#.-8M*=`'V99$#\\$0(NT\nMP/@Z3X*GEGD:/+/,L^\"Y=9X'^U[P`GAQC?W@)7``E$DF#)J*@X)#BDG!5))I\nM@QG%8<&1&*\\H7E6TR2?@[&O:-5JQ*@*QR3V]BE?\\MD\\O:#VG]9S6\"UJWM>YH\nM77)`4/8R(6AN<)`<VF\"23/4R+9CYPF%RY.M!_2;M@-;'2*__HR\\:A]%#)DAS\nM1>LK6@^9)C-OM;[Z/SU;1?S`Y1_0$=_W[=[4>DWK-:TWM?Y2Z^\\/>_DWW<O_\nM!5!+`P04``(`\"`\"#0I<:UXIOVY`!``#X`@``\"P```&UO;C`U,#4N9&=SG=&_\nM3U-A%,;Q\\WVOM<0XH\"*@\"'E[H?1':O+VII0N#B0031QH0A5D[<!$PM@@N>UE\nM,G5HUT;C1L*_X&#\"IL;-R0W<2/H/,%'+@816G3C)&9[IDR=/=ZH]+2O+:V_D\nMXJRU(KYT;[?/`>G2/OMQ9F*Q.S'D+M_E]<K:DLTO^#8HEFJ!RV]OY^RB>[%K\nM\\RXHU!:+I7X,^K'D7*WHW%4J%ERM4'+R[^WW/Q2Y)9X7N\\A&)B7'@OEB1\"A#\nM61@]X)YPO\\X#8:S.0V'\\@`EA\\AV/A,<=IH0GPHQ@DR0\\_!ZSAKD>2<-\\DI1'\nMVI#QR(Z0Z_&T1P5VA(TFE8CRUU\"LMV&N]6_RFY\\#>J1Z5?6JZI'J.ZK7!_0.\nM\"8._KOJZZAU2AO0>&4-V?UBOJAX/I6%.N-9#><NO`7U+]5755U7?4OV5ZINJ\nM6V8,-J[Z,;,P=TP2YN.JGY*!;'=8?T:EH=T;IOV7_M*[B7Y$`OR6ZBW5CTA!\nM^J/JG_ZG/P]E=&AW1V`^#W0_5#U2/5+]4/6FZA]NNOO[R]W_`%!+`P04``(`\nM\"`\"#0I<:OSX.&9`!``#X`@``\"P```&UO;C`U,#DN9&=SG=$]3U-A&,;Q^_\\<\nM:]4)WQ&0/#U0^I*:/!Q*6P8'$X@F#C2ARLO:@8FD8Z/FM*>3P8&NC<:-A*_`\nM8,*FB1L3&[J1]`LP6<JM\"2TX<2?W<$V_7+FZX^VGLK2XLB[G9ZT5\\:5[L_T'\nMD\"[MTY^GYG;L3@R9YT3>+JV\\L+-%W\\ZYA7HP%VQMY6S1O7IG9UV0KQ<+I7X,\nM^K'D7+W@W+]4R+MZON3DZK7Z'XK<$,^+G6<CHY)CWGPS(I2A+(SL<E>XU^\"^\nM\\*#!0^'1+H^%T8\\\\$<8ZC`L3PJ1@DR0\\_!Y3AND>2<-,DI1'VI#QR-XBU^-9\nMCPK4A+5M*A'E[Z%8;\\U<Z#_D-X<#>J1Z5?6JZI'J-=4;`WJ'A,%?57U5]0XI\nM0_H#&4.V-:Q758^'TC2_N-!#><_1@+ZI^K+JRZIOJOY&]0W5+9,&&U?]F\"F8\nM/B8),W'53\\A`MCNL/Z?2U.Y-T[ZDO_:NHQ^0`']']1W5#TA!^HOJ7_^GOPQE\nM9&AW1V#V![KOJ1ZI'JF^I_JVZI^ON_NGO[N?`5!+`P04``(`\"`\"#0I<:O,&7\nMXI(!``#X`@``\"P```&UO;C`U-68N9&=SG=$]3U-A&,;Q^_\\<2XT3\"BJ*D*<'\nM2E]2DX=#+65@,)%@XD`3RHLN#AV82!@;(:<]#,;@0-=&PD;\"5W`P89.$S<D-\nMV4CZ!9BHY=:$5IFXDWNXIE^N7*WAQHC,O5I\\*U=GK17QI=77N`2D1>/BY,*\\\nMC]V+(1])LCRW^-(&D[Z=FG'58&9J?3UGI]WK#W;2!?GJ=*'8B4$G%IVK%IS[\nMFPIY5\\T7G?Q_VYT/1>Z(Y\\6NLI$AR?'\"?#,BE*`D]!]P7WA08T`8K/%0>'3`\nM8V'H$T^$ITV&A6?\"J&\"3)#S\\-F.&\\39)PT22E$?:D/'(WB77YGF;,FP(JSN4\nM(TK?0['>JKG6C^6,'UUZI'I%]8KJD>H;JM>Z]\"8)@[^B^HKJ35*&]!890W:[\nM5Z^H'@^E;GYQK8>RR<\\N?4WU!=475%]3?4GU=ZI;1@TVKOHI8S!^VEF*B;CJ\nMYV0@V^K59RG7M7O=-/[1WWBWT8](@+^K^J[J1Z0@O:?Z_DWZ?\"C]/;L[`O.U\nMJ_NAZI'JD>J'JN^H_N6VNW_^L_MO4$L#!!0``@`(`'U\"EQK?YO^,S0$``'($\nM```+````;6]N9C5F8BYD9W.ETSUH4V$4QO'S?V\\T`8?&[VJUW*1-\\T&+5<'-\nM37%PR(5&DU872:6(HL7:J27);19Q:=:@;=T*70W.W2JX.;E5Q4'(XB((@C$Y\nM('EO;Q?K@7=XIQ_/X3GMH<9YN7YM:EIZX[JN2%+:AQN_`6G3^/G^:>37CR,Q\nMY+NTQ)NZ</O>H\\7[WI,'CY^Y5RY?O\"3_-2O=5Q&)B.,<ZOV-#$J$KY2,\"!YX\nM0GR3H\\*Q*L>%$U5.\"J<V.2T,/N>,<+;)D'!.&!;<%`F'9(<1PVB'E&$L1=HA\nM8\\@ZY&*,=YCH4(!YH52CX./MV+IT]9;,TJ*OKX7T-=7KENXR;'`G0_JDZK*?\nM/DVAAC=0$=<IF7[VU[+$'2M[7?6RZF75ZZH_5'W)TA=(&))%U8NJ+Y`V9$ID\nM#;F[03VO>G2O_DX^\\\\'2_9#NJSZO>M7:?#.D-U5?5GTEJ)=U\\UV]9C[1URO=\nM[!\\M?4[UO.IYU>=4OZ7ZC)4]JOHN(S\"Z2PK&HJI_(PNY=E\"_JMEW>GICCW[3\nM.8B^30*2JZJOJKY-&C*O5%_?3[]1D7B@\\S&^4+2R;ZGNJ^ZKOJ7Z\"]5?'K3S\nM_M_.QP.=?RMEWEB=WPCI&];%K5OZ/W5^1O6!/U!+`P04``(`\"`\"#0I<:S,3\"\nM]7$\"``!J!@``\"P```&UO;F8U9F,N9&=SI=--2%11'`7P_[GOJ5&\"]FU9\\F;4\nM^:+(2-IH8312NWG@D&.V**;HNP1K98R.0F5$3E\"+@73:Q2R2(HDVHKD)C$B7\nMX<*6E5&;A!;1-)Z2N<]7\"^W\"W=S-CW,X=ZXRM5V:PRUMLG`LRQ+QREQQZB<`\nMF4/J^^MSQ3_FUY1\"YN6%V\"V[CIRX</64??GLI2O6WCV[Z^6_3F_^)L0N$M,H\nM^OU2(3%\\Q$N(P`9L0?D,U@K69;%>L\"&+C8)-,]@LJ'B*+8*M[U`IV\":H$EA-\nM\\)CPYE!MH\":'6@.^)OA-!!2\")D*KL2.'G3E$@0Y![#ZB2=B1A(A#/XP/&-/T\nM:>H9ZAGJT]0?47^KZ6&7'OZW?K>@CQL%O1Z3&%V1;E(?HSY&W:0^@:\"!T*13\nMO[VHVV;C'UWE]3.PU1-5T$>I]U/OISY*_1[UQYK>#H\\!;P/U!NKM\\!L([*=^\nMP*FGJ=_(9S=%TQO1K*8T/4N]FWHW]2SUZ]2SFNZCGF]>L7D%GX]Z#D&%4(E3\nMOT.]1-<7FA^1DQC1FA]TZ8/4^ZBGJ5NH4K#J7'H==6'V54Z]#=$>V&4)L8R8\nM*F1_*%UHU[+W48]3CU/OHWZ>>I>F=\\*CX&VEWDJ]$WZ%0(S9CSGU\"/62I?J4\nM?,-734^Z]\"3U#NK=6O-IEYZF?HUZKU,_O=A\\CWJ/@IZ06_BBZ7'J$>H1ZG'J\nM4>K'M>REU&=1#=3,HA;PE5+_A\"`0^NS4]S'[JP4]M42_:*Q$'X<'\\`Y0'Z`^\nM#C\\0>$!]Z&_ZH824.S8?QD'U1LL^3#U)/4E]F'J_Z\\<M:_.IQ>;+'9M_+G$\\\nMTS:?<>D9ZC>I#VGZLC9_E'K9+U!+`P04``(`\"`\"$0I<:/*-PX7$\"``!J!@``\nM\"P```&UO;F8U9F0N9&=SI=--2%11'`7P_[GOJ5&\"]FU9\\F;4^:+(*(+0PFBD\nM=O/`(<>F13%%WR58*V-T%\"HC<H):#*33+F:1%$D[T]H$1J3+<&'+RJA-09N:\nMQE,R]_EJH5VXF[OY<0[GSE:G-TM+N+5=YHYE62)>F2U-_P0@LTA_?W6F],>W\nM%>40$\\_$;MUVZ-BYRR?LBZ<O7+)V[=B^6_[K]!9N4NP2,8V2WR]5$L,'/(<(\nM;,`65$YCI6!5#JL%:W)8*U@WC?6\"JL?8(-CX%M6\"38(:@=4,CPEO'K4&ZO*H\nM-^!KAM]$0\"%H(K0<6_+8FD<4Z!#$[B*:@AU)BCCT@WB/,4V?HIZEGJ4^1?T!\nM]3>:'G;IX7_KMXOZN%'4=V(\"HTO23>ICU,>HF]1?(&@@-.'4;\\[KMMGT1U<%\nM_11L]4@5]5'J_=3[J8]2OT/]H:;'X3'@;:3>2#T.OX'`7NK[G'J&^K5\"=E,T\nMO0DM:E+3<]2[J7=3SU&_2CVGZ3[JA>85FU?P^:CG$50(E3GU6]3+='VN^1$Y\nMCA&M^4&7/DB]CWJ&NH4:!:O!I3=0%V9?YM3;$>V!79$4RXBI8O;[TH6XEKV/\nM>H)Z@GH?];/4NS2]$QX%;QOU-NJ=\\\"L$8LQ^Q*E'J)<MU\"?E*[YH>LJEIZAW\nM4._6FL^X]`SU*]1[G?K)^>9[U#L4]:3<P&=-3U\"/4(]03U\"/4C^J92^G/H-:\nMH&X&]8\"OG/I'!('0)Z>^A]E?SNGI!?IY8RGZ.#R`=X#Z`/5Q^('`/>I#?],/\nM)*72L?DP]JO76O9AZBGJ*>K#U/M=/VY1FT_/-U_IV/Q32>\")MOFL2\\]2OTY]\nM2-,7M?G#U\"M^`5!+`P04``(`\"`\"$0I<:NZ!AP_4```!^`0``\"P```&UO;C4P\nM,#$N9&=SE<V]3L)@`(7A\\])BHI/_HJBI^$<))BU6HAN#)FXVD0'NPI$X--'9\nMH8LSHV'T`@SJB(-A-%R!Z0TX6?'#1!Q]D[.<Y4GR\\9I.CL^;^LYQ'*F@9\"+^\nM!)00?[Q$$$YF4!,+?[_JM7RO$CC%X.#TTBT[?N70:QU5O9]#_^MZN$AA5K:5\nM'3TY-7CG\"8EP\"(OI`3-BML.<F.^P(!8'+(G</<MBY8V\\6!7KPJFQ85-(V;38\nM2MFVV*FQ:U/,X-J4IBBG[*74X4(T;JE?$9Y%4O;1^M4#>CR,Z7VCMXW>-GK?\nMZ'=&?QW3;:-WC=XUNFWT9UR+4N^O?C/2OP!02P,$%``\"``@`A$*7&LF*LRBV\nM``````$```L```!M;VXU9F8Q+F1G<Z6(,4[\"8`!&OV>+\"0Q&10%%S\"\\JM@02\nM2C#A`\"7I9HT==/(*C(3!1$]03]#18W``!]-;F'1B8Z*4<`1>\\H;WLF;<TL1_\nM>=,68XS45G88KP%EQ*M?L7PO%_',$=YP/)AY@^'(.*/'8.YJ3[X*/Z22;*NT\nM.PT%_+-`(H10'*><B-.$JCA+.!>UE+IH_'`A+O]HBBMQ+8S/C4T[Y];B+N?>\nMHN/S8.,<X-IT*_1R^CD13,7K-]$GX=,&4$L#!!0``@`(`(1\"EQJ'X5QXF0$`\nM`$8#```+````;6]N,&9F,\"YD9W.MCTU+&U$8A<^9J=U4:-5:;;5RC1JM*+@1\nMD7914MN@5!)T)(UN9K!7#8Y18HJZ*?<?F!]0Q-_0?>FX<F&@BVX#NA.:4ERZ\nM\\IJY\\8.*BR\"^NW/>RWW>I]Q6>(GW8]-IA\".$`\"(H/RR<D429A=.##_;)XT</\nM;/S&#L9CDV)T>&@$]S2SC(\"([?Y*[:&$O8G8KF8)/=%_[6XEKTX=SPF[A.^P\nM,.;EED7,_R*%N5&9_&[+RYJLE\",]7\\1S4H;%6U7=5_)6N'===S+S^2H*I532\nM\\^55$03!Q\\SB4OZR*!:+*2^W(M+2]U<WA-\"Z^OXZ%Q,+\"R*UE,F;>[0^&L_F\nM979=5CNM-?`5RCJB71=Z6FB%Q!NF+8!),@D^F6<#V)A@$_@TP6;PV3Q;P%:'\nMS\\$7+MO`=L$.BZ*>G18CA^PBNP_90T;KV6NQ[P]?D?U_.:`YJ.F0:^\"G;CJ*\nMR?U-0X=]37_-5`WT&4/W#!WL0*WT\"MJI?+X?6A=N6/^\\DW7`3C*R;;C;AANP\nME^S[9K@[MUG'-PW]?^L?=[*NC7YA'3\\'4$L#!!0``@`(`(1\"EQJ;Q^#@KP``\nM```!```+````;6]N,&8P9BYD9W.MC3U.PG``1W\\O_&5QJ(H?Q?KQMX`(*8F+\nMQIG`P&#2Q`YRA&XFC\"0F]@3U).T]6!FX0WL`PT\"I\\0J^Y\"UO>8677FLZ>9OK\nM%VNMY*MHICM`!>G/2CC.(=)&`;/QJWUY>GS6/Y'4?BILY*9Q\\%=<K;7EN_X1\nM0BB.$H[%24Q+G,:<B?.$\"^$N:(O+)9ZX$C?\"EMP9_(R.H9O1,]R7]`T/.0/#\nM\\):@8E01P8=XCXF^\")T]4$L#!!0``@`(`(1\"EQKF&7CG;P(``&H&```+````\nM;6]N9C5F92YD9W.ETDU(5%$<!?#_N>_I1`E.WY8E;T;'^:#(*&IAA8%1NWG@\nMD&.Z,*;HNP1K9<PX\"I41.$$%`^FT\"Q>EF;03M4U@BW(9+FQI&051T<II/\"5S\nMGV.+[,+=W,V/<^Z9*T]MER/U#4VR<\"S+$O'*7'%J'H#,(?7S]?GB^>]K2B\"U\nMF!6[8=?QDQ>OG;:OG+M\\U=JW9_=^^:_3E;MQL8O$-(I^OY1)%!\\P`1'8@\"UP\nM3V.M8-T`U@LV#&\"C8-,T-@O*GF&+8.L[E`NV\"2H$5AT\\)KQ95!JHRL)GH+H.\nM?A,!A:\")T&KLR&)G%A&@31\"]CT@2=C@NXM\"/819CFCY%/4,]0WV*^F/J;S2]\nMOD\"O_[M^-Z^/&WE]+R8QNB+=I#Y&?8RZ2?TE@@9\"DT[]SJ)NFP?^Z\"JGGX6M\nMAE1>'Z7>0[V'^BCU>]2?:'HS/`:\\M=1KJ3?#;R!PB/IAIYZF?C.7W11-CR*F\nM?FCZ(/4$]03U0>HWJ#_5=!_U7/.*S2M4^ZAG$50(N9;[=Y>N+S0_(J<PHC7?\nM5Z#W4>^FGJ9NH4+!JBG0:Z@+LZ]RZDV(=,(NC8ME1%4^^R/I0+.6O9MZC'J,\nM>C?U\"]0[-+T='@5O(_5&ZNWP*P2BS-[BU,/474OUM_(-7S0]6:`GJ;=13VC-\nMIPOT-/7KU+N<^IG%YCO5>^3UN-S&9TV/40]3#U./48]0;]6REU\"?0250-0,?\nM4%U\"_2.\"0.B34S_([*\\6]-02_9*Q$GT<'L#;2[V7^CC\\0.`A]?[E]*-Q<3LV\nMWX)6]57+/DP]23U)?9CZ+>I#*]W\\@\\7FW8[-OY`8GFN;SQ3H&4WOU_1_VOP)\nMZJ6_`%!+`P04``(`\"`\"$0I<:3<,F7G0!``#X`@``\"P```&UO;F8U9F$N9&=S\nMI=$[2YMQ&(;Q^_J_M7$0:EN/]<\";:,P!18M0NG2K.#CD!=,:;9>2%A%%!742\nM7HU9W,Q:\\-#O4.GBXN;@%W#34<@LB$/3^#B8E\"[:&Y[E67[#5>XJ]6CL_>2T\nM;N?[OA13^6GI-Z`RI>O3:W=SU=2`;G2D8'+XXY>%M6_!TMSBJO]F]/5;_=>V\nMJA=*3^1Y#7>?#AWJ*X=(!!\"(YCV>BQ<;O!0M&[2*MCW:14>13O'J.UVBVZ?7\nMX8\\0]8A5Z'/T5X@[!D9(>\"1%RB/=R&\"%H0I96!:Y:;*;!,]\"^5[.W>FNJO_0\nM.I_<O5XT/6]ZWO2BZ?.FK]?H*T0=L2G3ITQ?(>%(YD@YTI_K]8SID5\";[H)[\nM/:SJ9S7ZK.D9TS.FSYK^P?29&CUB^CE]T'].'`8BIE^2@G2Y7G]G^LFM7OI+\nMG_`>HQ\\3A=B.Z3NF'Y.`Y*[I^__2QT,UUW7_I3P_:[H?F%XPO6#Z@>G;IN^;\nM+GKUP.XS9`O5[G\\`4$L#!!0``@`(`(1\"EQH;ZU\"CM`(``&((```+````;6]N\nM,3`Q-\"YD9W.UTT](TV$<Q_'OY[>?34+(RLJRY.?<I@X#+0M!\"R.E;AMD.+6#\nMM,(DED,-`L/Y!RHEPJ`..XA=1'8H\"SP%P^IBV\"'M5'BPH(.UJ$N$I];\\R-CS\nM\\S=!)!]X#L_IQ?O[/$^\\8/2(--1?:);591B&B$/B.T;_`I`X1E?>7<[.R\\W)\nMA:S(2SE[L[NG,VA45CF,8U75MRJK3P:#1K#S1D=/9Y=L80TF=Y_T:Y]ARUH]\nM:Y*?/(_@IR8\"'^`3Y`:P6[#'B[V\"/\"_V\"?8'<$\"0WXB#@D-M*!`<-E\"HP<A!\nMD0;'$HH!YQ)<@#L')1I*OZ,,\\/Q`>0)'$V@$0@+_*33VPS=KU7OQ4=';+7H[\nM]8O46Q3=;M'MU)>IQS>E7Y5:-&]_NS.E&S:_EM:?)-M;%7V(>H!Z@/H0]>O4\nM>Q6]FWH3BC4XF^#2X.ZF[D>9!L\\EL^ZE;E^OS\\MO_%+T`8L^0#U$/4Q=4\"@P\nM(A8]0OTV]4&SWH[&@0SZ6_F\"#]NO!S+KH]*&XXH>MNAAZAW4NY3)ARQZ2)E\\\nMBUD_EYJ\\Z&)+ZWX$M#^*/D4]3#U,?8KZ'>K/E'87BFQP)*@GJ+M08D-I@KK=\nMK#].M9OU6C1H\\XH>M>A118\\JNMNBNS?6'V36RW%\"BRGZA$6?H'Z/>F03[1K*\nM;/!DF_41ZK/K=1U?X5?T28L^^3_T?JLN27U:KF`::7W,HH]1'U+TM5=78=$K\nMJ$LFO9FO;E>?^/1:I?T:?-ISI3U&?9CZ,/48]4?4GRKMK=1K4&R#LP8N&]RM\nMU$]3/V/6(VR_FVS/>J6T5V$.,:5]@?HX]7'J\"]0GJ;]7=!U%.APSU&>HZRC1\nM4?J&^IQ9OT_=NZJ+GM;/8QDS6]+KJ2>H)ZC74T_>NP[/3K/^,*7[3+H?W_!:\nMT1>I1ZE'J2]2?T']DZ+76?2ZC?6U_^[]!U!+`P04``(`\"`\"$0I<:?JEO\\[,\"\nM``!B\"```\"P```&UO;C$P,34N9&=SM=--2%11&,;Q][GWVD@,9!^69<EU=$8=\nM#-0R`BV,E-K-0!..VD*:PB0F10T\"P_$#*B5B@EJX$-N(S*(L<#M8;2I;I*T*\nM%Q:TL\"9J$]&J:7QDF'.]\"B)YX\"S.ZL?_/><D\\J.'I*'^7),L+],T15R2V!;]\nM\"T`2B/YY>S$[-\\>9`W'BC9R^WMW3$38KJUUFU;'C-ZHJ*L-A,]QQK;VGHTLV\nML093NT_ZM4_0LY;/FN2ESB/XH8G`#_@%.2'L%.SR8;=@CP^Y@KTA[!/D!;!?\nM<*`5^8*#)@HTF$X4:G`MH@@H7H0;\\#A1HJ'T&\\H`[W>4)W$XB0#0*0B>0*`?\nM_E=VO1<?%+W-IK=1/T^]6=$=-MU!?8EZ8D/Z9:E%T]:W%Z=U4P]J&?U1JKU%\nMT8>HAZB'J`]1OTJ]5]&[J3>B2$-Q(]P:/-W4@RC3X+U@U7W4':OU.?F%GXH^\nM8-,'J'=2CU`7%`C,49L^2OTF]4&KWH;`P!KZ:_F,]UNOA];6H]**(XH>L>D1\nMZNW4NY3)=]KT3F7RS5;]3'KR8HB>T8,(:;\\5?8IZA'J$^A3U6]2?*.UN%.IP\nM):DGJ;M1HJ,T2=UAU1^FVZUZ+1JT.46/V?28HL<4W6/3/>OK]];6RU&MQ15]\nMPJ9/4+]#?70#[1K*='BSK?H(]5>K=0-?$%3T29L^^3_T?KLN*7U:+F$:&7W,\nMIH]1'U+TE5=78=,KJ,M:>A-?W8X^\\1NU2OL5^+6G2GN<^C#U8>IQZ@^H/U;:\nM6ZC7H$A'<0W<.CPMU$]2/V751]E^.]6>]5QI/XI9Q)7V>>KCU,>ISU.?I/Y.\nMT0T4&G#-4)^A;J#$0.E+ZK-6_2YUW[(N1D8_BR7,;$JOIYZDGJ1>3SUU[P:\\\nMVZWZ_;3NM^A!?,4+15^@'J,>H[Y`_1GUCXI>9]/KUM=7_KOO'U!+`P04``(`\nM\"`\"$0I<:-$'^+;0\"``!B\"```\"P```&UO;C$P,38N9&=SM=-/2--A',?Q[^?Y\nM_6P20O;/+$M^F]O48:!64FAAI-1M@Q9.[2\"M,(FUH0:!X?P#E1*QH`X[B%U$\nM=B@+O`ZKBV&'M)/AP8(.UJ(N$9WZ-;\\R]OQ\\)HCD`\\_A.;UX?Y_G297$CE!S\nMT\\566EV&81`Y*+4C]A<`I1#[\\^Y*?E%A02'(CD4Z=ZNG-QPR:NH<1NW)4[=K\nM:^I\"(2,4OMG5&^ZF+:RA].ZG`?$)6M[J65!Q^CR*'X((/L!'*`QB-V&/%WL)\nM^[S83R@*X@\"AV(^#A$,=*\"$<-E`J8!3`+N!81AG@7(8+<!>@7*#B&RH!SW=4\nMF3AJP@]$\"('3\\`_`-ZOJ?5B4]$Y%[V3]$NMMDFY3=!OK*ZRG-J5?HP:T;G^[\nM,Z,;6D!D]:?I]G9)'V8]R'J0]6'6;[#>)^D]K+>@3,#9`I>`NX?U`\"H%/)>M\nMNI=UVWI]GG[AIZ0/*OH@ZQ'6HZP32@E&7-'CK-]A?<BJ=\\(_F$-_2Y_Q8?OU\nM8&X]1ATX)NE118^RWL5ZMS3YB*)'I,FW6?7SF<F33EI6#R`H?DOZ%.M1UJ.L\nM3[%^E_7G4KL+=@T.DW63=1?*-528K-NL^I-,NU5O0+.8E_2$HB<D/2'I;D5W\nM;ZP_S*U7X81(2OJ$HD^P?I_U^\";:!2HU>/*M^BCKL^MU'5\\0D/1)19_\\'_J`\nMJE-:GZ:KF$96'U/T,=:')7WMU54K>C7KE$MOY5>WJY]\\>H/4?AT^\\4)J3[(^\nMPOH(ZTG6'[/^3&IO9[T>91J<]7!I<+>S?H;ULU8]SNWWTNUYKZ3VXYA#4FI?\nM8'V<]7'6%UB?9/V]I.NPZW#,L#[#NHYR'15O6)^SZ@]8]Z[JI&?U\"UC!S);T\nM)M9-UDW6FUA/W[L.STZK_BBC^RQZ`%_Q6M*76$^PGF!]B?67K'^4]$9%;]Q8\nM7_OOWG]02P,$%``\"``@`A$*7&BM\"-%ZS`@``8@@```L```!M;VXQ,#$W+F1G\nM<[733TC381S'\\>_GMY]-0LC^:EGR<[JIP\\`TB=#\"2*G;!BV<VD%:81++H0:!\nMX?P#E1*QH`X[B%U$=B@+O`ZKBV&'M%/AP8(.UJ(N$9U:\\R-CS\\_?!)%\\X#D\\\nMIQ?O[_,\\B:+($6ENNM`JJ\\LP#!&')'9$_@*0!\")_WE[.+<C/RX?4847.WNSM\nMZPX:QTXXC-KJD[=J:FN\"02/8?:.KK[M'MK\"&4WM`!K5/L.6LGC4I3)W'\\$,3\nM@1?P\"O(#V\"W8X\\%>P3X/]@L.!%`@*/3AH.!0!XH$APT4:S#R4*+!L8Q2H&P9\nM3L\"5AW(-%=]0\";B_HRJ)HTGX@)#`?PJ^07CGK'H_/BAZIT7OI'Z1>INBVRVZ\nMG?H*]<2F]*O2@-;M;R]+ZX;-KV7T)ZGV=D4?H1Z@'J`^0OTZ]7Y%[Z7>@E(-\nM92UP:G#U4O>C4H/[DEGW4+>OUQ?D%WXJ^I!%'Z(>HAZF+B@6&%&+'J5^F_JP\nM6>^$;RB+_D8^X_WVZX'L>D0Z4*OH88L>IMY%O4>9?,BBAY3)MYGU<^G)BRZV\nMC.Y'0/NMZ-/4P]3#U*>IWZ'^3&EWHL0&1Y)ZDKH3Y394)*G;S?KC=+M9;T\"S\nMMJ#H,8L>4_28HKLLNFMC_4%VO0IU6ES1)RWZ)/5[U*.;:-=0:8,[UZR/49];\nMK^OX`K^B3UGTJ?^A#UIU2>DS<@4SR.CC%GV<^HBBK[VZ:HM>35VRZ:U\\=;L&\nMQ*LW*.W7X-6>*^UQZJ/41ZG'J3^B_E1I;Z=>CU(;RNKAM,'53OTT]3-F/<KV\nMNZGVG)=*^W',(ZZT+U*?H#Y!?9'Z%/5WBJZC1(=CEOHL=1WE.BI>4Y\\WZ_>I\nM>U9UT3/Z>:Q@=DMZ$_4D]23U)NJI>]?AWFG6'Z9UKTGWXRM>*?H2]1CU&/4E\nMZB^H?U3T1HO>N+&^]M\\]_P!02P,$%``\"``@`A$*7&DPF_;VR`@``8@@```L`\nM``!M;VXQ,#(P+F1G<[733TC381S'\\>_GMY]-0LC^6)8E/Z>;.@R&%AZT,%+J\nMMD$+IW:05IC$<JA!8#C_0*5$+*C##F(7D1W*`J_#ZF+8(>U4>+\"@@[6H2T2G\nMUOS(V//S-T$D'W@.S^G%^_L\\3[(D>DQ:FB^TR=HR#$/$(<E=T;\\`)(GHG[>7\nM\\XW\"@D)(+XIP]F9??T_(J/4XC+IZSZW:^OI0R`CUW.CN[^F5;:R1]!Z4(>T3\nM;'EK9TV*T^=Q_-!$X`-\\@L(@]@KV>;%?<,\"+(L'!(`X)BOTX+#C2B1+!40.E\nM&HP\"E&EPK*`<J%B!$W`5H%)#U3=4`^[OJ$GA>`I^(\"P(G()_\"+YYJSZ`#XK>\nM9=&[J%^DWJ[H=HMNI[Y*/;DE_:HTHFWGVRLRNF$+:%G]2;J]0]%'J0>I!ZF/\nM4K].?4#1^ZBWHEQ#12N<&EQ]U`.HUN\"^9-:]U.T;]47YA9^*/FS1AZF'J4>H\nM\"TH%1LRBQZC?ICYBUKO@'\\ZAOY'/>+_S>C\"W'I5.U\"EZQ*)'J'=3[U4F'[;H\nM867R[6;]7&;RHHLMJP<0U'XK^@SU\"/4(]1GJ=Z@_4]J=*+/!D:*>HNY$I0U5\nM*>IVL_XXTV[6&]&B+2IZW*+'%3VNZ\"Z+[MI<?Y!;K\\%)+:'H4Q9]BOH]ZK$M\nMM&NHML&=;];'J<]OU'5\\04#1IRWZ]/_0AZRZI/59N8)99/4)BSY!?531UU^=\nMQZ)[J$LNO8VO;L^@^/1&I?T:?-ISI3U!?8SZ&/4$]4?4GRKM'=0;4&Y#10.<\nM-K@ZJ)^F?L:LQ]A^-]V>]U)I/X$%))3V)>J3U\">I+U&?IOY.T764Z7#,49^C\nMKJ-21]5KZ@MF_3YU[YHN>E8_CU7,;4MOIIZBGJ+>3#U][SK<N\\WZPXSN,^D!\nM?,4K15^F'J<>I[Y,_07UCXK>9-&;-M?7_[OW'U!+`P04``(`\"`\"$0I<:.R\"Q\nMT;,\"``!B\"```\"P```&UO;C$P,C$N9&=SM=-/2)-Q',?Q[^?98Y,0LO^6)<_F\nM-G48F-9!M#!2ZK9!AE,[2\"M,8CG4(#\"<?\\!2(A;480>QB\\@.98'7874Q[)!V\nM*CQ8T,%:U\"6B4VM^9.SW^$R0R!_\\#K_3Z_?^/K\\G61P]*DV-%UIE;1F&(>*4\nMY([H'P\"21/3WF\\OYCL*\"0L@HW#A[L[>O.V14'W<:-;55MZIK:T(A(]1]HZNO\nMNT?^80VG]X`,:A]ARUL[:U*4/H_CNR8\"/^`7%`:Q6[#'A[V\"?3[L%QP(XJ\"@\nMJ!F'!(<[4\"PX8J!$@U$`AP;G\"DH!UTKZMO`4H$Q#^5=4`-YOJ$SA6`K-0%@0\nM.(7F0?CGK7H_WBMZIT7OI'Z1>INBVRVZG?HJ]>26]*M2C];M;W=E=,,6T++Z\nMXW1[NZ*/4`]2#U(?H7Z=>K^B]U)O0:D&5PO<&CR]U`.HT.\"]9-9]U.T;]47Y\nMB1^*/F31AZB'J4>H\"TH$1LRBQZC?ICYLUCO1/)1#?RV?\\&[[]6!N/2H=J%'T\nMB$6/4.^BWJ-,/FS1P\\KDV\\SZN<SD11=;5@\\@J/U2]!GJ$>H1ZC/41ZD_5=K=\nM<-C@3%%/47>CS(;R%'6[67^4:3?K]6C2%A4];M'CBAY7=(]%]VRNW\\^M5^*D\nMEE#T*8L^1?TN]=@6VC54V.#--^OCU.<WZCH^(Z#HTQ9]^G_H@U9=TOJL7,$L\nMLOJ$19^@/J+HZZ^NRJ)749=<>BM?W:X!\\>OU2OLU^+5G2GN\"^ACU,>H)Z@^I\nM/U':VZG7H=0&5QW<-GC:J9^F?L:LQ]A^)]V>]T)I/X$%))3V)>J3U\">I+U&?\nMIOY6T74X=#CGJ,]1UU&FH_P5]06S?H^Z;TT7/:N?QRKF_DEOI)ZBGJ+>2#W]\nMW75X=YKU!QG=;](#^(*7BKY,/4X]3GV9^G/J'Q2]P:(W;*ZO_^^^OU!+`0(4\nM`!0``@`(`)I%EQJ!0#0BN`````4!```&``````````$`(`````````!R96%D\nM;6502P$\"%``4``(`\"`!]0I<:1.T:\\HX!``#X`@``\"P````````````````#<\nM````;6]N.35F.2YD9W-02P$\"%``4``(`\"`!]0I<:A?,OT(D!``#X`@``\"P``\nM``````````````\"3`@``;6]N.3EF.2YD9W-02P$\"%``4``(`\"`!]0I<:_!HX\nM=4`!``!T`@``\"P````````````````!%!```;6]N-69F-2YD9W-02P$\"%``4\nM``(`\"`!]0I<:91M4^CT!``!T`@``\"P````````````````\"N!0``;6]N-68P\nM,\"YD9W-02P$\"%``4``(`\"`!]0I<:2(,8L)$!``#X`@``\"P``````````````\nM```4!P``;6]N-34U-2YD9W-02P$\"%``4``(`\"`!]0I<:@(N,\\2@!``#\\`0``\nM\"P````````````````#.\"```;6]N9C5F9BYD9W-02P$\"%``4``(`\"`!]0I<:\nM(^9#[(\\!``#X`@``\"P`````````````````?\"@``;6]N,#4P,\"YD9W-02P$\"\nM%``4``(`\"`!]0I<:?LU(V8L!``!:!```\"P````````````````#7\"P``;6]N\nM9C`P9BYD9W-02P$\"%``4``(`\"`!]0I<:J%IO=8@!``!:!```\"P``````````\nM``````\"+#0``;6]N9C!F,\"YD9W-02P$\"%``4``(`\"``C;E<9#%LHK[D!``#8\nM!```\"P`````````````````\\#P``;6]N9C!F9BYD9W-02P$\"%``4``(`\"`\"#\nM0I<:8W_5(P,!``!N`@``\"P`````````````````>$0``;6]N9F8P9BYD9W-0\nM2P$\"%``4``(`\"`\"#0I<:@W4DP0D!``!N`@``\"P````````````````!*$@``\nM;6]N9F9F,\"YD9W-02P$\"%``4``(`\"`\"#0I<:P_8O!F@!``!6`@``\"P``````\nM``````````!\\$P``;6]N9CEF,\"YD9W-02P$\"%``4``(`\"`\"#0I<:EHL*P8\\!\nM``#X`@``\"P`````````````````-%0``;6]N.3DY.2YD9W-02P$\"%``4``(`\nM\"`\"#0I<:8W:\\Z8\\!``#X`@``\"P````````````````#%%@``;6]N.3DU-2YD\nM9W-02P$\"%``4``(`\"`\"#0I<:E_1[9+4!``#8!```\"P````````````````!]\nM&```;6]N.3!F,\"YD9W-02P$\"%``4``(`\"`\"#0I<:^6`AF](!``!2`P``\"P``\nM``````````````!;&@``;6]N.3EF,\"YD9W-02P$\"%``4``(`\"`\"#0I<:]150\nMT)`!``#X`@``\"P````````````````!6'```;6]N,#4P9BYD9W-02P$\"%``4\nM``(`\"`\"#0I<:`-;S@]8!``!@!```\"P`````````````````/'@``;6]N-69F\nM9BYD9W-02P$\"%``4``(`\"`\"#0I<:MY=-LST!``!T`@``\"P``````````````\nM```.(```;6]N-68U,\"YD9W-02P$\"%``4``(`\"`\"#0I<:YV<O\\M0!``!@!```\nM\"P````````````````!T(0``;6]N-68Y,\"YD9W-02P$\"%``4``(`\"`\"#0I<:\nMEZ-D=M4```!^`0``\"P````````````````!Q(P``;6]N-69F,\"YD9W-02P$\"\nM%``4``(`\"`\"#0I<:97*D/2D!``#\\`0``\"P````````````````!O)```;6]N\nM.34Y.2YD9W-02P$\"%``4``(`\"`\"#0I<:'^SQ==$!``!2`P``\"P``````````\nM``````#!)0``;6]N9CEF9BYD9W-02P$\"%``4``(`\"`\"#0I<:UXIOVY`!``#X\nM`@``\"P````````````````\"[)P``;6]N,#4P-2YD9W-02P$\"%``4``(`\"`\"#\nM0I<:OSX.&9`!``#X`@``\"P````````````````!T*0``;6]N,#4P.2YD9W-0\nM2P$\"%``4``(`\"`\"#0I<:O,&7XI(!``#X`@``\"P`````````````````M*P``\nM;6]N,#4U9BYD9W-02P$\"%``4``(`\"`!]0I<:W^;_C,T!``!R!```\"P``````\nM``````````#H+```;6]N9C5F8BYD9W-02P$\"%``4``(`\"`\"#0I<:S,3\"]7$\"\nM``!J!@``\"P````````````````#>+@``;6]N9C5F8RYD9W-02P$\"%``4``(`\nM\"`\"$0I<:/*-PX7$\"``!J!@``\"P````````````````!X,0``;6]N9C5F9\"YD\nM9W-02P$\"%``4``(`\"`\"$0I<:NZ!AP_4```!^`0``\"P`````````````````2\nM-```;6]N-3`P,2YD9W-02P$\"%``4``(`\"`\"$0I<:R8JS*+8``````0``\"P``\nM```````````````P-0``;6]N-69F,2YD9W-02P$\"%``4``(`\"`\"$0I<:A^%<\nM>)D!``!&`P``\"P`````````````````/-@``;6]N,&9F,\"YD9W-02P$\"%``4\nM``(`\"`\"$0I<:F\\?@X*\\``````0``\"P````````````````#1-P``;6]N,&8P\nM9BYD9W-02P$\"%``4``(`\"`\"$0I<:YAEXYV\\\"``!J!@``\"P``````````````\nM``\"I.```;6]N9C5F92YD9W-02P$\"%``4``(`\"`\"$0I<:3<,F7G0!``#X`@``\nM\"P````````````````!!.P``;6]N9C5F82YD9W-02P$\"%``4``(`\"`\"$0I<:\nM&^M0H[0\"``!B\"```\"P````````````````#>/```;6]N,3`Q-\"YD9W-02P$\"\nM%``4``(`\"`\"$0I<:?JEO\\[,\"``!B\"```\"P````````````````\"[/P``;6]N\nM,3`Q-2YD9W-02P$\"%``4``(`\"`\"$0I<:-$'^+;0\"``!B\"```\"P``````````\nM``````\"70@``;6]N,3`Q-BYD9W-02P$\"%``4``(`\"`\"$0I<:*T(T7K,\"``!B\nM\"```\"P````````````````!T10``;6]N,3`Q-RYD9W-02P$\"%``4``(`\"`\"$\nM0I<:3\";]O;(\"``!B\"```\"P````````````````!02```;6]N,3`R,\"YD9W-0\nM2P$\"%``4``(`\"`\"$0I<:.R\"QT;,\"``!B\"```\"P`````````````````K2P``\nA;6]N,3`R,2YD9W-02P4&`````\"L`*P\".\"0``!TX`````\n`\nend\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nDick Kaul            | My opinions only, not official IBM positions, offers,\nIBM Visual Subsystems| data, or anything else -- if I were to speak for IBM\nBoca Raton, FL       | they'd make me wear a suit.\nkaul@vnet.ibm.com    | \"Beware of programmers carrying screwdrivers.\"\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5829, "properties": {"category": "rec.motorcycles", "text": "From: tcora@pica.army.mil (Tom Coradeschi)\nSubject: Re: Live Free, but Quietly, or Die\nOrganization: Elect Armts Div, US Army Armt RDE Ctr, Picatinny Arsenal, NJ\nLines: 24\nNntp-Posting-Host: b329-gator-3.pica.army.mil\n\nmcguire@cs.utexas.edu (Tommy Marcus McGuire) wrote:\n> \n> egreen@east.sun.com writes:\n> >tjohnson@tazmanian.prime.com (Tod Johnson (617) 275-1800 x2317) writes:\n> [...]\n> >>Sure there are horns but my hand is already on the throttle. Should we\n> >>get into how many feet a bike going 55mph goes in .30 seconds; or\n> >>how long it would take me to push my horn button??\n> [...]\n> >The answer is 161.33 feet.\n> [...]\n> \n> Try something like 24.2 feet. \n> \n> EdGetACalculator\n\nRight. ROM numbers (easy to remember) 100 mph ~= 150 ft/sec.\n\n                  tom coradeschi <+> tcora@pica.army.mil\n \n   \"Usenet is like a herd of performing elephants with diarrhea -- massive,\ndifficult to redirect, awe-inspiring, entertaining, and a source of mind-\nboggling amounts of excrement when you least expect it.\"\n                                                    --gene spafford, 1992\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5830, "properties": {"category": "soc.religion.christian", "text": "From: kene@acs.bu.edu (Kenneth Engel)\nSubject: Re: Why do people become atheists?\nOrganization: Boston University, Boston, MA, USA\nLines: 32\n\nLet me tell you my story.\nI grew up catholic. Up until I was 14, it wasn't an issue for me. Then I met\na born-again christian, a very sweet person, not proseletyzing(sp?), not \nimposing. I tried to get into being as christian as I could, as I felt I \n'should'.\n\nBut the more I tried, the more depressed I got. I felt guilty for some of my\nown personal, honest feelings. I tried so hard to reconcile this conflict.\nuntil I was 23.\n\nThen I taught myself to think rationally. I read a lot of books, pro and con \nreligion in general and, specifically, catholicism. I came to a crisis point,\nthen it finally clicked and now I am a staunch atheist. \n\nThis is a very loose explanation, but it's the gist of it.\n\nNow, (at 26) I feel better about myself, better self-esteem, a generally \nstronger person. I have well-defined goals. I have a strong and stable sense \nof morals and values. I am not a neo-nazi or a corrupt politicain, etc. I \nbelieve in human rights and 'live and let live' among other things. I am very \nanti-violent and anti-hatred. (This is to debunk the myth that atheists are\ndepraved.)\nReligion has no place in my system.\nTough.\n\nBertrand Russell said that we cannot *know* god doesn't exist, we can't prove \nit. So, in that sense, we can only truly be agnostic. But, for all practical\npurposes there is no god.\n\nThanqs \nken engel\nkene@acs.bu.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5831, "properties": {"category": "talk.politics.guns", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Re: Non-lethal alternatives to handguns?\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nKeywords: handgun mace pepper-spray taser tasp phaser\nLines: 102\n\nIn article <1993Apr13.221936.28301@watson.ibm.com> mjp@vnet.ibm.com (Michael J. Phelps) writes:\n>\n>In article <shepardC5FtLs.681@netcom.com>, shepard@netcom.com (Mark Shepard)\n>writes:\n>|> How effective are personal defense products like mace, pepper-spray,\n>|> tasers and other non-lethal \"stun\" devices compared to handguns?\n>|> Any statistics on #'s and types in use?\n>|> \n>|> These products seem very attractive compared to handguns\n>|> because, being non-lethal, they are more \"forgiving\" of accident or\n>|> mistakes/wrongful shooting (such as the Yoshi Hattori case), and\n>|> allow the justice system to deal with the criminal (rather than\n>|> criminals simply being _dead_, which has a certain \"vigilante feel\"\n>|> which seems to bother anti-gun people).\n>\n>The \"more forgiving\" nature also has its down side; it allows a criminal\n>to use them w/o the ADW [assault with a deadly weapon] charge.  They also\n>can have lethal or dangerous side effects -\n> - some people have violent reactions to mace/pepper sprays\n> - stun guns can harm people with weak hearts\n> - people have suffered eye damage from mace; the stuff that is available\n>   now is less concentrated than it used to be.\n> - some of the spray propellents are flammable\n>\n>|> \n>|> The arguments I see _against_ these non-lethal weapons compared to\n>|> handguns are lack of range, lack of \"stopping power\" or effectiveness,\n>|> and limited \"ammo\".  True?  How about cost?\n>\n>Sprays\n>\n>- using any of the spray based [eg mace, pepper] indoors is bound to\n>  affect anyone else in the room (like the victim) due to the nature\n>  of the stuff.\n>\n>- using the sprays outdoors in any sort of breeze mitigates its \n>  effectiveness.\n>\n>- from reading various articles, it appears that mace, especially the\n>  mace available to citizens, is pretty ineffective on people under\n>  the influence of drugs or alcohol.\n>\n>- pepper spray appears to be more effective, but has the inherent spray\n>  delivery problem.  It still does not appear to be anything better than\n>  a distraction that might buy you time to run like hell [if you can].\n>\n>Consider that running like hell isn't always a viable solution.  For\n>example, if you are dressed in boots and the assailent is dressed in\n>sneakers .. you might have a tough time outrunning them!\n>\n>Tasars and Stun Guns\n>\n>- require contact with skin for max effectiveness; a jacket [like a \n>  leather one] will mitigate its effectiveness\n>\n>- the user must be extremely close to the assailent; that puts them\n>  at a considerable risk of injury. \n>\n>- the user must keep the stun gun in contact with the assailent for some\n>  non negligible period of time.\n>\n>- tasar darts can be pulled out.\n>\n>Consider the problem a small women would have keeping a stun gun in \n>contact with a average size man for any length of time w/o sustaining\n>serious injury.\n>\n>|> \n>|> Have any anti-gun groups suggested non-lethal weapons, to counter\n>|> the pro-gun argument that people will be left defenseless?\n>\n>I haven't heard of any.  Generally they contend that people don't\n>need to [or aren't able] to defend themselves.\n>\n>|> \n>|> And, what legal restrictions/licensing apply to non-lethal devices?\n>\n>Civilian ownership of stun guns is frequently illegal [NY].  The sprays\n>are also illegal in some states.  Believe it or not, they are still \n>illegal in NY, although about half the state thinks they are legal!\n>[I believe that NY almost legalized them; i have heard that the reason\n>they didn't was due to their ineffectiveness]\n>\n>I feel that the sprays are better than nothing, but only if the user\n>does not believe the hype [\"this'll drop 'em in their tracks\" stuff]\n>and uses it as a diversion o_n_l_y .\n>- \n>|> \n>|> \tMarkS\n>|> --\n>|> Mark Shepard | shepard@netcom.com | Portola Valley, CA\n>\n>-- \n>Michael Phelps, (external) mjp@vnet.ibm.com ..\n>                (internal) mjp@bwa.kgn.ibm.com .. mjp at kgnvmy         \n> (and last but not least a disclaimer)  These opinions are mine..       \n\nWhat about guns with non-lethal bullets, like rubber or plastic bullets. Would\nthose work very well in stopping an attack?\n\n\t\t\t\t\t\tDoug Holland\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5832, "properties": {"category": "sci.space", "text": "From: n4hy@harder.ccr-p.ida.org (Bob McGwier)\nSubject: Re: NAVSTAR positions\nOrganization: IDA Center for Communications Research\nLines: 11\nDistribution: world\nNNTP-Posting-Host: harder.ccr-p.ida.org\nIn-reply-to: Thomas.Enblom@eos.ericsson.se's message of 19 Apr 93 06:34:55 GMT\n\n\nYou have missed something.  There is a big difference between being in\nthe SAME PLANE and in exactly the same state (positions and velocities\nequal).  IN addition to this, there has always been redundancies proposed.\n\nBob\n--\n------------------------------------------------------------------------------\nRobert W. McGwier                  | n4hy@ccr-p.ida.org\nCenter for Communications Research | Interests: amateur radio, astronomy,golf\nPrinceton, N.J. 08520              | Asst Scoutmaster Troop 5700, Hightstown\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5833, "properties": {"category": "rec.sport.baseball", "text": "From: lyford@dagny.webo.dg.com (Lyford Beverage)\nSubject: Re: Notes on Jays vs. Indians Series\nDistribution: na\nOrganization: Data General Corporation, Research Triangle Park, NC\nLines: 22\n\nIn article <1993Apr13.202037.9485@cs.cornell.edu>, tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n|> In article <rudyC5Fr3q.1CL@netcom.com> rudy@netcom.com (Rudy Wade) writes:\n|> >In article <C5FMxD.2pM@cs.dal.ca> niguma@ug.cs.dal.ca (Gord Niguma) writes:\n|> >>reference to history because he certainly didn't have the best season for    \n|> >>second basemen in history. He probably didn't even have as good a season as\n|> >>Alomar last year.\n|> >  \n|> >What?  Do you have some measure (like popularity in Toronto doesn't count)\n|> >that you are basing this statement on?\n|> \n|> Uh, yes.  Baerga has a lot of flash, but Alomar was the better hitter\n|> last year.\n|> \n|> BATTERS        BA   SLG   OBP   G  AB   R   H  TB 2B 3B HR RBI  BB  SO SB CS  E\n|> BAERGA,C     .312  .455  .354 161 657  92 205 299 32  1 20 105  35  76 10  2 19\n|> ALOMAR,R     .310  .427  .405 152 571 105 177 244 27  8  8  76  87  52 49  9  5\n|> \n\nThis is fascinating.  You say that Alomar was the better hitter last \nyear, and immediately follow that up with numbers showing that Baerga\nhad a better year.  The only category that I see which shows an advantage\nfor Alomar is OBP.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5834, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mikey@sgi.com (Mike Yang)\nSubject: Re: 17\" Monitors\nNntp-Posting-Host: eukanuba.wpd.sgi.com\nOrganization: Silicon Graphics, Inc.\nLines: 12\n\nIn article <1qslfs$bm1@access.digex.net> rash@access.digex.com (Wayne Rash) writes:\n>I also reviewed a new Nanao, the F550iW, which has just\n>been released.\n\nWhat's the difference between the F550i and the new F550iW?  I'm\nabout to buy a Gateway system and was going to take the F550i\nupgrade.  Should I get the F550iW instead?\n\n-----------------------------------------------------------------------\n                 Mike Yang        Silicon Graphics, Inc.\n               mikey@sgi.com           415/390-1786\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5835, "properties": {"category": "sci.crypt", "text": "From: wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705)\nSubject: White House Wiretap Chip Disinformation Sheet\nOrganization: Ministry of Truth\nIn-Reply-To: clipper@csrc.ncsl.nist.gov's message of Fri, 16 Apr 1993 20:44:58 GMT\nKeywords: Big Bubba Is Watching.\nNntp-Posting-Host: rainier.ho.att.com\nLines: 58\n\nFascinating.  Most of the content of the White House announcements was\nin what was *not* said.  It gives us almost nothing of value, threatens to\ntake away a lot, and does it with a sincere smile on its face,\nand the nice friendly word \"Management\".\n\n\t\t\t      FACT SHEET\n\t\t     PUBLIC ENCRYPTION MANAGEMENT\n\nThe first thing it doesn't say is \"We're giving you stronger encryption\".\nwhat it says is \n   the U. S. Government has developed a microcircuit that not only\n   provides privacy through encryption that is substantially more robust\n   than the current government standard, but also permits escrowing of\n   the keys needed to unlock the encryption.  The system for the\n   escrowing of keys will allow the government to gain access to\n   encrypted information only with appropriate legal authorization.\nBut DES is strong enough that only the government can break it now,\nso the major effect is to make it EASIER for government to break!\n*At best* it makes it more difficult for the NSA to break, since they\nneed to get one of the two escrowed keys to do a brute-force search\nfor the other 40-bit key.\n\nSimilarly, it didn't say \"We're making encryption is commercially available.\"\nbecause encryption *is* already commercially available, including\nforms the NSA may not be able to break, like triple-DES or IDEA.\nAnd phone companies could offer DES-based systems *now* if they were\nconvinced the government would let them and they could make enough money.\n\nThe next thing it didn't say is \"We're making encryption legal\",\nbecause of course encryption *has always been* legal, and the\nPresident can't change the First Amendment merely by decree.\nWhat it *did* say was:\n\tIn making this decision, I do not intend to prevent the\n\tprivate sector from developing, or the government from approving,\n\tother microcircuits or algorithms that are equally effective in\n\tassuring both privacy and a secure key- escrow system.\nwhich clearly means \"We're making encryption illegal unless we get your keys.\nSoon.  Once business buys into this.\"\n\nAnother thing it didn't say is \"We're going to ask Congress for money\nto do *lots* more wiretapping\", because of course, there's a budget crisis,\nand Congress might debate the policy issues or not give them the cash.\nWhat it *did* say was:\n   The Attorney General will procure and utilize encryption devices to\n   the extent needed to preserve the government's ability to conduct\n   lawful electronic surveillance and to fulfill the need for secure\n   law enforcement communications.  Further, the Attorney General\n   shall utilize funds from the Department of Justice Asset Forfeiture\n   Super Surplus Fund to effect this purchase.\nwhich means \"We've got money Congress can't control and we're going to\nbuy lots of wiretapping equipment with it to detect NON-APPROVED CRYPTO\n(that's what \"preserve the government's ability to conduct ... surveillance\" \nmeans.)  \n--\n#\t\t\t\tPray for peace;      Bill\n# Bill Stewart 1-908-949-0705 wcs@anchor.att.com AT&T Bell Labs 4M312 Holmdel NJ\n#\t              No, I'm *from* New Jersey, I only *work* in cyberspace....\n# White House Commect Line 1-202-456-1111  fax 1-202-456-2461\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5836, "properties": {"category": "comp.sys.mac.hardware", "text": "From: johnston@me.udel.edu (Bill Johnston)\nSubject: Re: Apple Tape backup 40SC under System 7.x\nKeywords: backup, tape,\nNntp-Posting-Host: me.udel.edu\nOrganization: University of Delaware\nLines: 22\n\nIn article <1pskkt$3ln@fnnews.fnal.gov> b91926@fnclub.fnal.gov (David Sachs) writes:\n>In article <generous.734035090@nova>, generous@nova.sti.nasa.gov (Curtis Generous) writes:\n\n>|> I need to get an Apple 40SC tape backup unit working under\n>|> Sys 7.0.x, but do not have any drivers/software to access the device. \n\n>Retrospect (Dantz) works nicely with this combination.\n\nI also use Retrospect, but I noticed that Central Point Software's\n\"MacTools Backup\" also supports the Apple tape drive under 7.x. \nThe Apple tape drive is quite slow, so the advantages of Retrospect\nrelative to the simpler MacTools Backup are less significant than \nmight be the case for someone backing up a large server to a DAT drive.  \n\nUsed Apple tape drives are going for ~$100, so it might make less\neconomic sense to pay an extra ~$140 for Retrospect when MacTools \nis cheaper and includes other worthwhile utilities.\n\nRetrospect is nice, though, and I'm probably going to upgrade to 2.0.\n-- \n-- Bill Johnston (johnston@me.udel.edu)\n-- 38 Chambers Street; Newark, DE 19711; (302)368-1949\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5837, "properties": {"category": "rec.sport.hockey", "text": "From: holland@geop.ubc.ca (Stephen Holland)\nSubject: Re: My Predictions of a classic playoff year!\nOrganization: Geophysics & Astronomy, U.B.C. Vancouver, Canada\nLines: 20\nDistribution: world\nReply-To: holland@geop.ubc.ca\nNNTP-Posting-Host: crisium.astro.ubc.ca\n\nIn article 12934@ac.dal.ca, 06paul@ac.dal.ca () writes:\n>\n>\tSTANLEY CUP FINALS\n>Toronto Maple Leafs    vs    Montreal Canadiens    \n>\t(The Classic Stanley Cup Final matchup!!) <---also a dream come true!\n>\tMontreal wins the Stanley cup in the 7th game 1 - 0 in double overtime.\n\nYou know... after I finished laughing I thought:  This would be a great\nfinal.  Two Canadian teams with lots of tradition and all that Don Cherry\nnonsense behind them and a nail-biter finish.\n\nOf course, I would prefer a Vancouver--Montreal final with Vancouver\nscoring the final goal....\n\nPity neither will happen.\n\nsteve holland\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5838, "properties": {"category": "comp.windows.x", "text": "From: marca@ncsa.uiuc.edu (Marc Andreessen)\nSubject: NCSA Mosaic for X 1.0 available.\nX-Md4-Signature: b912a4b59c6065f2e86a15751149a3f2\nOrganization: Nat'l Center for Supercomputing Applications\nLines: 79\n\nVersion 1.0 of NCSA Mosaic for the X Window System, a networked\ninformation systems and World Wide Web browser, is hereby released:\n\nfile://ftp.ncsa.uiuc.edu/Mosaic/xmosaic-source/xmosaic-1.0.tar.Z\n                            .../xmosaic-binaries/xmosaic-sun.Z\n                            .../xmosaic-binaries/xmosaic-sgi.Z\n                            .../xmosaic-binaries/xmosaic-ibm.Z\n                            .../xmosaic-binaries/xmosaic-dec.Z\n                            .../xmosaic-binaries/xmosaic-alpha.Z\n                            .../xmosaic-diffs/xmosaic-0.13-1.0-diffs.Z\n\nNCSA Mosaic provides a consistent and easy-to-use hypermedia-based\ninterface into a wide variety of networked information sources,\nincluding Gopher, WAIS, World Wide Web, NNTP/Usenet news, Techinfo,\nFTP, local filesystems, Archie, finger, Hyper-G, HyTelnet, TeXinfo,\ntelnet, tn3270, and more.\n\nThis release of NCSA Mosaic is known to compile on the following\nplatforms:\n\n  SGI (IRIX 4.0.2) \n  IBM (AIX 3.2)\n  Sun 4 (SunOS 4.1.3 with stock X11R4 and Motif 1.1, and GCC).\n  DEC Ultrix.\n  DEC Alpha AXP (OSF/1).\n\nDocumentation is available online.\n\nChanges since 0.13 include:\n\n o Added new resource, gethostbynameIsEvil, for Sun's that\n   coredump when gethostbyname() is called to try to find out what\n   their own names are. (Command-line flag is -ghbnie.) \n o Explicitly pop down all dialog boxes when document view\n   window is closed, for window managers too dull to do so\n   themselves. \n o Better visited anchor color for non-SGI's. \n o Added .hqx and .uu to list of file extensions handled like .tar files. \n o Added 'Clear' button to Open box, to allow more convenient\n   cut-n-paste entries of URL's. \n o New resource 'autoPlaceWindows'; if set to False, new document\n   view windows will not be automatically positioned by the\n   program itself (but it's still up to your window manager just how\n   they're placed). \n o Command-line flags -i and -iconic now have desired effect (new\n   resource initialWindowIconic can also be used). \n o Gif-reading code is a little more bulletproof. \n o Obscure infinite loop triggered by extra space in IMG tag fixed. \n o Eliminated nonintuitive error message when image can't be read\n   (inlined NCSA bitmap is indication enough that something's not\n   right for authors, and readers can't do anything about bad images\n   in any case). \n o Obscure parsing bug (for constructs like <ADDRESS><A\n   HREF=...>text<A></ADDRESS>) fixed. \n o Fixed mysterious stupid coredump that only hits Suns. \n o Fixed stupid coredump on URL's like '://cbl.leeds.ac.uk/'. \n o Fixed buglet in handling rlogin URL's. \n o New support for Solaris/SYSVR4 (courtesy\n   dana@thumper.bellcore.com). \n o Better support for HP-UX 8.x and 9.x (courtesy\n   johns@hpwarf.wal.hp.com). \n o Better support for NeXT (courtesy scott@shrug.dur.ac.uk). \n o Some miscellaneous portability fixes (courtesy\n   bingle@cs.purdue.edu). \n o Miscellaneous bug fixes and cleanups. \n\nComments, questions, and bug reports should be sent to\nmosaic-x@ncsa.uiuc.edu.  Thanks in advance for any feedback you can\nprovide.\n\nCheers,\nMarc\n\n--\n--\nMarc Andreessen\nSoftware Development Group\nNational Center for Supercomputing Applications\nmarca@ncsa.uiuc.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5839, "properties": {"category": "soc.religion.christian", "text": "From: marka@hcx1.ssd.csd.harris.com (Mark Ashley)\nSubject: Re: When are two people married in God's eyes?\nOrganization: FL\nLines: 22\n\n>I would like to get your opinions on this: when exactly does an engaged\n>couple become \"married\" in God's eyes? \n\nI'm waiting for an RC to speak up ! 8-)\nNobody has, so I will...\n\nThose with Bibles on hand can give the exact chapter & verse...\nAt the time Jesus told Peter that he was the \"rock\", He said\nwhatever you hold true on earth is held true in heaven, and \nwhatever you don't hold true won't be true in heaven.\n\nTherefore, with respect to marriage, the ceremony has to be\ndone by an RC priest. No big parties required. Just the priest,\nthe couple and witnesses. \"Divorce\" is not allowed. But anullments\nare granted upon approval by either the bishop or the Pope \n(not sure if the Pope delegates this function).\n\n-- \n-------------------------------------------------------------------------\nMark Ashley                        |DISCLAIMER: My opinions. Not Harris'\nmarka@gcx1.ssd.csd.harris.com      |\nThe Lost Los Angelino              |\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5840, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ob00@ns1.cc.lehigh.edu (OLCAY BOZ)\nSubject: Canon buble jet printer?\nOrganization: Lehigh University\nLines: 12\n\nHi,\n\nCan somebody tell me how much is Canon BJ200? And from where can I buy it for\nthe cheapest price? Thanks in advance..\n-- \n____________________________________________________________________________\n****************************************************************************\n            _m_\n        _    0___\n         \\ _/\\__ |/                                   //////\n            \\   /|                                   |     |\n        /-_-|_--_|--/                              o | 0 0 | o\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.277+0000", "event": "documents", "entityId": 5841, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: carolan@owlnet.rice.edu (Bryan Carolan Dunne)\nSubject: Re: Program manager ** two questions\nOrganization: Rice University\nLines: 4\n\nActually, with several sharware utilities, you cn change both.  My fav is\nPlug-In.\n\nbryan dunne\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5842, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gene@jackatak.raider.net (Gene Wright)\nSubject: sound recording on mac portable answer (or lead)\nOrganization: Jack's Amazing CockRoach Capitalist Ventures\nLines: 7\n\nWhatever equipment will work on a mac plus or a mac se will work fine on \na mac portable. It doesn't have a sound input, but there is equipment \nthat works fine with those models mentioned in macuser/macworld.\n\n--\n     gene@jackatak.raider.net (Gene Wright)\n------------jackatak.raider.net   (615) 377-5980 ------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5843, "properties": {"category": "talk.politics.mideast", "text": "From: mack@isl.Stanford.EDU (mack)\nSubject: Re: News briefs from KH # 1026\nOrganization: Stanford University\nLines: 19\n\nfarzin@apollo3.ntt.jp (Farzin Mokhtarian) writes:\n\n>From:  Kayhan Havai # 1026\n>--------------------------\n>                         \n>    [...]\n>\n>o Dr. Malekzadeh, the minister of health mentioned that\n>  the population growth rate in Iran at the end of 1371\n>  went below 2.7\n\nI know nothing about statistics, but what significance does the\nrelatively small population growth rate have where the sampling period\nis so small (at the end of 1371)? Is it adequete to suggest a trend or\nis it just noise?\n\n> - Farzin Mokhtarian\n\n    --mack\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5844, "properties": {"category": "sci.med", "text": "Subject: EXPERTS on PENICILLIN...LOOK!\nFrom: ndacumo@eis.calstate.edu (Noah Dacumos)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 8\n\nMy name is Noah Dacumos and I am a student at San Leandro High.  I am\ndoing a project for my physics class and I would like some info on the\ndiscovery of penicillin, its discoverer(Sir Alexander Fleming), and how it\nhelps people with many incurable bacterias.  Also how it effects those who\nare allergic to it.  Any info will be greatly appreciated.\n\n\t\t\t\t\tNoah Dacumos\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5845, "properties": {"category": "comp.graphics", "text": "Subject: Technical Help Sought\nFrom: jiu1@husc11.harvard.edu (Haibin Jiu)\nOrganization: Harvard University Science Center\nNntp-Posting-Host: husc11.harvard.edu\nLines: 9\n\nHi!  I am in immediate need for details of various graphics compression\ntechniques.  So if you know where I could obtain descriptions of algo-\nrithms or public-domain source codes for such formats as JPEG, GIF, and\nfractals, I would be immensely grateful if you could share the info with\nme.  This is for a project I am contemplating of doing.\n\nThanks in advance.  Please reply via e-mail if possible.\n\n--hBJ\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5846, "properties": {"category": "alt.atheism", "text": "Subject: Re: A visit from the Jehovah's Witnesses\nFrom: lippard@skyblu.ccit.arizona.edu (James J. Lippard)\n <SUOPANKI.93Apr6024902@stekt6.oulu.fi> <kmr4.1444.734058912@po.CWRU.edu>\nDistribution: world,local\nOrganization: University of Arizona\nNntp-Posting-Host: skyblu.ccit.arizona.edu\nNews-Software: VAX/VMS VNEWS 1.41    \nLines: 26\n\nIn article <kmr4.1444.734058912@po.CWRU.edu>, kmr4@po.CWRU.edu (Keith M. Ryan) writes...\n>In article <SUOPANKI.93Apr6024902@stekt6.oulu.fi> suopanki@stekt6.oulu.fi (Heikki T. Suopanki) writes:\n>>:> God is eternal.    [A = B]\n>>:> Jesus is God.      [C = A]\n>>:> Therefore, Jesus is eternal.  [C = B]\n>>\n>>:> This works both logically and mathematically.  God is of the set of\n>>:> things which are eternal.  Jesus is a subset of God.   Therefore\n>>:> Jesus belongs to the set of things which are eternal.\n\nThe first premise and the conclusion are not properly translated as identity\nstatements, since the \"is\" in those statements is the \"is\" of predication\nrather than of identity.  Instead, they should be translated using a\npredicate letter.  Using \"g\" to designate God and \"j\" to designate Jesus,\nand the predicate letter \"E\" for the property of being eternal, the\nfirst premise is Eg and the conclusion is Ej.\n    The second premise appears to contain an \"is\" of identity, in which\ncase it can be properly symbolized as j = g.  But your remark that \"Jesus\nis a subset of God\" suggests that strict identity is not desired here.\nIf, however, the first premise means that all members making up the set\nGod have the property of being eternal, the same conclusion follows.\n\nJim Lippard              Lippard@CCIT.ARIZONA.EDU\nDept. of Philosophy      Lippard@ARIZVMS.BITNET\nUniversity of Arizona\nTucson, AZ 85721\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5847, "properties": {"category": "talk.politics.mideast", "text": "From: siegfried_r@spcvxb.spc.edu\nSubject: Re: More on ADL spying case\nOrganization: St. Peter's College, US\nLines: 36\n\nIn article <ARENS.93Apr13161407@grl.ISI.EDU>, arens@ISI.EDU (Yigal Arens)\n writes:\n> Los Angeles Times, Tuesday, April 13, 1993.  P. A1.\n> NEW DETAILS OF EXTENSIVE ADL SPY OPERATION EMERGE\n> SAN FRANCISCO -- To the outside world, Roy Bullock was a small-time\n> art dealer who operated from his house in the Castro District.  In\n> reality, he was an undercover spy who picked through garbage and\n> amassed secret files for the Anti-Defamation League for nearly 40\n> years.\n> ..... \n> The Anti-Defamation League, a self-described Jewish defense and civil\n> rights organization, acknowledges it has long collected information on\n> groups that are anti-Semitic, extremist or racist. The ADL's\n> fact-finding division, headed by Irwinn Suall in New York, enjoys a\n> reputation for thoroughness and has often shared its information with\n> police agencies and journalists. \n\n\tThere is something almost comical in the fact that Yigal Arens is \nimportant enough to have the ADL and G-d knows who else sifting through his \ngarbage (which happens to be legal; you throw it out, it ain't yours any more).\n\n\tThis brings to mind a few possibilities other than the ADL connection:\n\n\t- it is all in Arens' mind.\n\t- Bullock may have been working for Arens' friend in the PLO\n\t- Arens' father (or is it brother?) Moshe Arens (former Israeli Defense \nMinister) was spying on him.\n\t- Arens hired Bullock to spy on him to get attention.\n\n\tIn any case, who cares?\n\n\t\t\t\t\tRobert Siegfried\n\t\t\t\t\tComputer Science Dept.\n\t\t\t\t\tSaint Peter's College\n\t\t\t\t\tJersey City, NJ  07306\n\t\t\t\t\tsiegfried_r@spcvxa.spc.edu\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5848, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Re: Why VESA Local-Bus ????\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 20\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\nguyd@austin.ibm.com (Guy Dawson) writes:\n>How about an VLB ethernet card? Move the data into the card at\n>130 odd MB/s and then wait for it to tickle onto the net at\n>just over 1Mb/s.\nHow about 250MB/s for 64-bit VLB or 350MB/s for QuickRing {Apple's\nimplimentation of VLB (Byte 10/92:132)} QuickRing is interesting in that\nit allows interleaving with other card so that the 350MB/s can be divided \namong many cards at the same time {NuBus 90 and MCA are about the only card \ninterfaces able to DO anything with that kind of speed and even NuBus 90\nditzes around at ~30MB/s with a burst mode: 80MB/s.\n\"MCA {Also called Micro Channel}\n IBM's 16 and 32-bit bus; \"allows use of more than one CPU in a computer\" \n (DCT) and anything can talk to anything, >>as fast as the two components \n involved can handle it.<< Never took off because it was incompatible with ISA \n and EISA.  Planned to be bus interface of IBM PowerPC 601 (Carl Jabido).\n\nIDA can't handle VLB speed never mind QuickRings's speed so it is out.\nEISA pokes along at NuBus Mac II speeds {~15MB/s burst mode: 33MB/s}\n so VLB and QuickRing are slowed down by it.\nPCI is a competing interface that is still in development.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5849, "properties": {"category": "alt.atheism", "text": " cs.utexas.edu!geraldo.cc.utexas.edu!portal.austin.ibm.com!awdprime.austin.ibm.com!karner\nSubject: Re: Islamic marriage?\nFrom: karner@austin.ibm.com (F. Karner)\n <C4qAv2.24wG@austin.ibm.com> <1993Apr2.103237.4627@Cadence.COM>\nOrganization: IBM Advanced Workstation Division\nOriginator: frank@karner.austin.ibm.com\nLines: 50\n\n\nIn article <1993Apr2.103237.4627@Cadence.COM>, mas@Cadence.COM (Masud Khan) writes:\n> In article <C4qAv2.24wG@austin.ibm.com> karner@austin.ibm.com (F. Karner) writes:\n> >\n> >Okay.  So you want me to name names?  There are obviously no official\n> >records of these pseudo-marriages because they are performed for\n> >convenience.  What happens typically is that the woman is willing to move\n> >in with her lover without any scruples or legal contracts to speak of. \n> >The man is merely utilizing a loophole by entering into a temporary\n> >religious \"marriage\" contract in order to have sex.  Nobody complains,\n> >nobody cares, nobody needs to know.\n> >\n> >Perhaps you should alert your imam.  It could be that this practice is\n> >far more widespread than you may think.  Or maybe it takes 4 muslim men\n> >to witness the penetration to decide if the practice exists!\n> >-- \n> >\n> \n> Again you astound me with the level of ignorance you display, Muslims\n> are NOT allowed to enter temporary marriages, got that? There is\n> no evidence for it it an outlawed practise so get your facts \n> straight buddy. Give me references for it or just tell everyone you\n> were lying. It is not a widespread as you may think (fantasise) in\n> fact contrary to your fantasies it is not practised at all amongst\n> Muslims.\n\nFirst of all, I'm not your buddy!  Second, read what I wrote.  I'm not\ntalking about what muslims are ALLOWED to do, merely what *SOME*\npractice.  They consider themselves as muslim as you, so don't retort\nwith the old and tired \"they MUST NOT BE TRUE MUSLIMS\" bullshit.  If I\ngave you the names what will you do with this information?  Is a fatwa\ngoing to be leashed out against the perpetrators?  Do you honestly think\nthat someone who did it would voluntarily come forward and confess? \nWith the kind of extremism shown by your co-religionaries?  Fat chance.\n\nAt any rate, there can be no conclusive \"proof\" by the very nature of\nthe act.  Perhaps people that indulge in this practice agree with you in\ntheory, but hope that Allah will forgive them in the end.\n\nI think it's rather arrogant of you to pretend to speak for all muslims\nin this regard.  Also, kind of silly.  Are you insinuating that because\nthe Koranic law forbids it, there are no criminals in muslim countries? \n\nThis is as far as I care to go on this subject.  The weakness of your\narguments are for all netters to see.  Over and out...\n-- \n\n         DISCLAIMER: The opinions expressed in this posting are mine\n            solely and do not represent my employer in any way.\n       F. A. Karner AIX Technical Support | karner@austin.vnet.ibm.com\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5850, "properties": {"category": "sci.crypt", "text": "From: ld231782@longs.lance.colostate.edu (L. Detweiler)\nSubject: Privacy & Anonymity on the Internet FAQ (1 of 3)\nSupersedes: <net-privacy/part1_733153240@GZA.COM>\nOrganization: TMP Enterprises\nLines: 1220\nExpires: 21 May 1993 04:00:06 GMT\nReply-To: ld231782@longs.lance.colostate.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Email and account privacy, anonymous mailing and posting, \n encryption, and other privacy and rights issues associated with use\n of the Internet and global networks in general.\nX-Last-Updated: 1993/03/04\n\nArchive-name: net-privacy/part1\nLast-modified: 1993/3/3\nVersion: 2.1\n\n\nIDENTITY, PRIVACY, and ANONYMITY on the INTERNET\n================================================\n\n(c) 1993 L. Detweiler.  Not for commercial use except by permission\nfrom author, otherwise may be freely copied.  Not to be altered. \nPlease credit if quoted.\n\nSUMMARY\n=======\n\nInformation on email and account privacy, anonymous mailing and \nposting, encryption, and other privacy and rights issues associated\nwith use of the Internet and global networks in general.\n\n(Search for <#.#> for exact section. Search for '_' (underline) for\nnext section.)\n\nPART 1\n====== (this file)\n\nIdentity\n--------\n<1.1> What is `identity' on the internet?\n<1.2> Why is identity (un)important on the internet?\n<1.3> How does my email address (not) identify me and my background?\n<1.4> How can I find out more about somebody from their email address?\n<1.5> Why is identification (un)stable on the internet? \n<1.6> What is the future of identification on the internet?\n\nPrivacy\n-------\n<2.1> What is `privacy' on the internet?\n<2.2> Why is privacy (un)important on the internet?\n<2.3> How (in)secure are internet networks?\n<2.4> How (in)secure is my account?\n<2.5> How (in)secure are my files and directories?\n<2.6> How (in)secure is X Windows?\n<2.7> How (in)secure is my email?\n<2.8> How am I (not) liable for my email and postings?\n<2.9> How do I provide more/less information to others on my identity?\n<2.10> Who is my sysadmin?  What does s/he know about me?\n<2.11> Why is privacy (un)stable on the internet?\n<2.12> What is the future of privacy on the internet?\n\nAnonymity\n---------\n<3.1> What is `anonymity' on the internet?\n<3.2> Why is `anonymity' (un)important on the internet?\n<3.3> How can anonymity be protected on the internet?\n<3.4> What is `anonymous mail'?\n<3.5> What is `anonymous posting'?\n<3.6> Why is anonymity (un)stable on the internet?\n<3.7> What is the future of anonymity on the internet?\n\n\nPART 2\n====== (next file)\n\nResources\n---------\n\n<4.1> What UNIX programs are related to privacy?\n<4.2> How can I learn about or use cryptography?\n<4.3> What is the cypherpunks mailing list?\n<4.4> What are some privacy-related newsgroups?  FAQs?\n<4.5> What is internet Privacy Enhanced Mail (PEM)?\n<4.6> What are other Request For Comments (RFCs) related to privacy?\n<4.7> How can I run an anonymous remailer?\n<4.8> What are references on privacy in email?\n<4.9> What are some email, Usenet, and internet use policies?\n<4.10> What is the MIT ``CROSSLINK'' anonymous message TV program?\n\nMiscellaneous\n-------------\n\n<5.1> What is ``digital cash''?\n<5.2> What is a ``hacker'' or ``cracker''?\n<5.3> What is a ``cypherpunk''?\n<5.4> What is `steganography' and anonymous pools?\n<5.5> What is `security through obscurity'?\n<5.6> What are `identity daemons'?\n<5.7> What standards are needed to guard electronic privacy?\n\nIssues\n------\n\n<6.1> What is the Electronic Frontier Foundation (EFF)?\n<6.2> Who are Computer Professionals for Social Responsibility (CPSR)?\n<6.3> What was `Operation Sun Devil' and the Steve Jackson Game case?\n<6.4> What is Integrated Services Digital Network (ISDN)?\n<6.5> What is the National Research and Education Network (NREN)?\n<6.6> What is the FBI's proposed Digital Telephony Act?\n<6.7> What other U.S. legislation is related to privacy on networks?\n<6.8> What are references on rights in cyberspace?\n<6.9> What is the Computers and Academic Freedom (CAF) archive?\n\nFootnotes\n---------\n\n<7.1> What is the background behind the Internet?\n<7.2> How is Internet `anarchy' like the English language?\n<7.3> Most Wanted list\n<7.4> Change history\n\n\nPART 3\n====== (last file)\n\nAnonymizing\n-----------\n\n<8.1> What are some known anonymous remailing and posting sites?\n<8.2> What are the responsibilities associated with anonymity?\n<8.3> How do I `kill' anonymous postings?\n<8.4> What is the history behind anonymous posting servers?\n<8.5> What is the value of anonymity?\n<8.6> Should anonymous posting to all groups be allowed?\n<8.7> What should system operators do with anonymous postings?\n<8.8> What is going on with anon.penet.fi maintained by J. Helsingius?\n\n\n* * *\n\n\nIDENTITY\n========\n\n_____\n<1.1> What is `identity' on the internet?\n\n  Generally, today people's `identity' on the internet is primarily\n  determined by their email address in the sense that this is their\n  most unchanging 'face' in the electronic realm.   This is your\n  login name qualified by the complete address domain information,\n  for example ``ld231782@longs.lance.colostate.edu''.  People see\n  this address when receiving mail or reading USENET posts from you\n  and in other situations where programs record usage.  Some obsolete\n  forms of addresses (such as BITNET) still persist.\n\n  In email messages, additional information on the path that a message\n  takes is prepended to the message received by the recipient.  This\n  information identifies the chain of hosts involved in the\n  transmission and is a very accurate trace of its origination.  This\n  type of identify-and-forward protocol is also used in the USENET\n  protocol to a lesser extent.  Forging these fields requires\n  corrupted mailing software at sites involved in the forwarding and\n  is very uncommon.  Not so uncommon is forging the chain at the\n  origination point, so that all initial sites in the list are faked\n  at the time the message is created.  Tracing these messages can be\n  difficult or impossible when the initial faked fields are names of\n  real machines and represent real transfer routes.\n\n_____\n<1.2> Why is identity (un)important on the internet?\n\n  The concept of identity is closely intertwined with communication,\n  privacy, and security, which in turn are all critical aspects of\n  computer networks. For example, the convenience of communication\n  afforded by email would be impossible without conventions for\n  identification.  But there are many potential abuses of identity\n  possible that can have very severe consequences, with massive\n  computer networks at the forefront of the issue, which can\n  potentially either exacerbate or solve these problems.\n\n  Verifying that an identity is correct is called `authentication',\n  and one classic example of the problems associated with it is\n  H.G.Well's ``War of the Worlds'' radio broadcast that fooled\n  segments of the population into thinking that an alien invasion was\n  in progress.  Hoaxes of this order are not uncommon on Usenet and\n  forged identities makes them more insidious.  People and their\n  reputations can be assaulted by forgery.\n\n  However, the fluidity of identity on the internet is for some one of\n  its most attractive features. Identity is just as useful as it is\n  harmful.  A professor might carefully explain a topic until he\n  finds he is talking to an undergraduate. A person of a particular\n  occupation may be able to converse with others who might normally\n  shun him.  Some prejudices are erased, but, on the other hand, many\n  prejudices are useful!  A scientist might argue he can better\n  evaluate the findings of a paper as a reviewer if he knows more\n  about the authors.  Likewise, he may be more likely to reject it\n  based on unfair or irrelevant criteria.  On the other side of the\n  connection,  the author may find identities of reviewers useful in\n  exerting pressure for acceptance.\n\n  Identity is especially crucial in establishing and regulating\n  `credit' (not necessarily financial) and `ownership' and `usage'. \n  Many functions in society demand reliable and accurate techniques\n  for identification. Heavy reliance will be placed on digital\n  authentication as global economies become increasingly electronic. \n  Many government functions and services are based on identification,\n  and law enforcement frequently hinges on it.  Hence, employees of\n  many government organizations push toward stronger identification\n  structures.  But when does identification invade privacy?\n\n  The growth of the internet is provoking social forces of massive\n  proportions. Decisions made now on issues of identity will affect\n  many future users, especially as the network becomes increasingly\n  global, universal, widespread, and entrenched; and the positive or\n  adverse affects of these actions, intended and inadvertent,  will\n  literally be magnified exponentially.\n\n_____\n<1.3> How does my email address (not) identify me and my background?\n\n  Your email address may contain information that influences people's\n  perceptions of your background.  The address may `identify' you as\n  from a department at a particular university, an employee at a\n  company, or a government worker.  It may contain your last name,\n  initials, or cryptic identification codes independent of both.  In\n  the US some are based on parts of social security numbers.  Others\n  are in the form 'u2338' where the number is incremented in the\n  order that new users are added to the system.\n\n  Standard internet addresses  also can contain information  on your\n  broad geographical location or nationhood.  However, none of this\n  information is guaranteed to be correct or be there at all.  The\n  fields in the domain qualification of the username are based on\n  rather arbitrary organization, such as (mostly invisible) network\n  cabling distributions.  The only point to make is that early fields\n  in the address are more specific (such as specific computer names\n  or local networks) and the later ones the most general (such as\n  continental domains).  Typically the first field is the name of the\n  computer receiving mail.\n\n  Gleaning information from the email address alone is sometimes an\n  inspired art or an inconsistent and futile exercise.  (For more\n  information, see the FAQs on email  addresses and known\n  geographical distributions below.)  However, UNIX utilities exist\n  to aid in the quest (see the question on this).\n\n  Common Suffixes\n  ---------------\n\n  .us    United States\n  .uk    United Kingdom\n  .ca    Canada\n  .fi    Finland\n  .au    Australia\n\n  .edu   university or college\n  .com   commercial organization\n  .org   'other' (e.g. nonprofit organization)\n  .gov   government\n  .mil   military site\n \n_____\n<1.4> How can I find out more about somebody with a given email address?\n\n  One simple way is to send email to that address, asking.  Another\n  way is to send mail to the postmaster at that address (i.e.\n  postmaster@address), although the postmaster's job is more to help\n  find user ID's of particular people given their real name and solve\n  mail routing problems.  The sysadmin (i.e. `root@address') may also\n  be able to supply information.  Users with related email address\n  may have information.  However, all of these methods rely on the\n  time and patience of others so use them minimally.\n\n  One of the most basic tools for determining identity over the\n  internet is the UNIX utility 'finger'.  The basic syntax is:\n\n    finger user@here.there.everywhere\n\n  This utility uses communication protocols to query the computer\n  named in the address for information on the user named.  The\n  response is generated completely by the receiving computer and may\n  be in any format.  Possible responses are as follows:\n\n  - A message `unknown host' meaning some aspect of the address is\n    incorrect, two lines with no information and '???'.\n  \n  - A message 'In real life: ???' in which case the receiving computer\n    could not find any kind of a match on the username. The finger\n    utility may return this response in other situations.\n  \n  - A listing of information associated with multiple users. Some\n    computers will search only for matching user IDs, others will\n    attempt to find the username you specified as a substring of all\n    actual full names of users kept in a local database.\n  \n  At some sites 'finger' can be used to get a list of all users on the\n  system with a `finger @address'.  In general this is often\n  considered weak security, however, because `attackers' know valid\n  user ID's to `crack' passwords.\n\n  More information on the fields returned by `finger' is given below. \n  More information on `finger' and locating people's email addresses\n  is given in the email FAQ (such as the WHOIS lookup utility).  Just\n  as you can use these means to find out about others, they can use\n  them to find out about you.  You can `finger' yourself to find out\n  what is publicly reported by your UNIX system about you.  Be\n  careful when modifying `finger' data; virtually anyone with\n  internet access worldwide can query this information.  In one\n  amazing case, the New York Times writer J. Markoff uncovered the\n  identity of R. Morris, author of the Internet Worm,  through\n  the use of an anonymous tip and 'finger'.  See the book Cyberspace\n  by K. Hafner and J. Markoff.\n\n_____\n<1.5> Why is identification (un)stable on the internet?\n\n  Generally, identity is an amorphous and almost nonexistent concept\n  on the Internet for a variety of reasons.  One is the inherent\n  fluidity of `cyberspace' where people emerge and submerge\n  frequently, and absences are not readily noted in the `community'. \n  Most people remember faces and voices, the primary means of casual\n  identification in the 'real world'.  The arbitary and cryptic \n  sequences of letters and digits comprising most email addresses are\n  not particularly noticeable or memorable and far from a unique\n  identification of an individual, who may use multiple accounts on\n  multiple machines anywhere in the world.\n\n  Currently internet users do not really have any great assurances\n  that the messages in email and USENET are from who they appear to\n  be. A person's mailing address is far from an identification of an\n  individual.  \n  \n  - Anyone with access to the account, e.g. they know the password,\n    either legitimately or otherwise, can send mail with that address\n    in the From: line.\n  \n  - Email addresses for an individual tend to change frequently as\n    they switch jobs or make moves inside their organizations. \n\n  - As part of current mailing protocol standards, forging the From:\n    line in mail messages is a fairly trivial operation for many\n    hackers.\n    \n  The status and path information prepended to messages by\n  intermediate hosts is generally unforgeable. In general, while\n  possible, forgeries are fairly rare on most newsgroups and in\n  email.  Besides these pathological cases abve there are many basic\n  problems with today's internet protocols affecting identification\n  on the internet:\n\n  - Internet mail standards, described in RFC-822, are still evolving\n    rapidly and not entirely orderly.  For example, standards for\n    mail address `munging' or `parsing' tend to vary slightly between\n    sites and frequently mean the difference between finding\n    addresses and bouncing mail.\n  \n  - Domain names and computer names are frequently changed at sites,\n    and there are delays in the propagation of this data.\n  \n  - Addresses cannot be resolved when certain critical computers\n    crash, such as the receiving computer or other computers involved\n    in resolving names into addresses called `nameservers'. \n  \n  - A whole slew of problems is associated with  `nameservers'; if\n    they are not updated they will not find name addresses, and even\n    the operation of what constitutes `updating' has different\n    interpretations at different sites.\n  \n  The current internet mailing and addressing protocols are slightly\n  anachronistic in that they were created when the network was\n  somewhat obscure and not widespread, with only a fraction of the\n  traffic it now sees.  Today a large proportion of internet traffic\n  is email, comprising  millions of messages.\n\n_____\n<1.6> What is the future of identification on the internet?\n\n  Some new technologies and standards are introducing facial images\n  and voice messages  into mail and these will improve the sense of\n  community that comes from the familiarity of identification.\n  However, they are not currently widespread, require large amounts\n  of data transfer, standardized software, and make some compromises\n  in privacy.\n\n  Promising new cryptographic techniques may make 'digital signatures'\n  and 'digital authentication' common (see below).  Also, the trend\n  in USENET standards is toward greater authentication of posted\n  information.  On the other hand, advances in ensuring anonymity\n  (such as remailers) are forthcoming.  See below.\n\n\nPRIVACY\n=======\n\n_____\n<2.1> What is `privacy' on the internet?\n\n  Generally, while `privacy' has multiple connotations in society and\n  perhaps even more on the internet, in cyberspace most take it to\n  mean that you have exclusive use and access to your account and the\n  data stored on and and directed to it (such as email), and you do\n  not encounter arbitrary restrictions or searches.  In other words, \n  others may obtain data associated with your account, but not\n  without your permission.  These ideas are probably both fairly\n  limiting and liberal in their scope in what most internet users\n  consider their private domains.  Some users don't expect or want\n  any privacy, some expect and demand it.\n\n_____\n<2.2> Why is privacy (un)important on the internet?\n\n  This is a somewhat debatable and inflammatory topic, arousing\n  passionate opinions.  On the internet, some take privacy for\n  granted and are rudely surprised to find it tenuous or nonexistent.\n  Most governments have rules that protect privacy (such as the\n  illegal search and seizure clause of the U.S. constitution, adopted\n  by others) but have many that are antithetical to it (such as laws\n  prohibiting secret communications or allowing wiretapping). These\n  rules generally carry over to the internet with few specific rules\n  governing it.  However, the legal repercussions of the global\n  internet are still largely unknown and untested (i.e. no strong\n  legal precedents and court cases).  The fact that internet traffic\n  frequently passes past international boundaries, and is not\n  centrally managed, significantly complicates and strongly\n  discourages its regulation.\n\n_____\n<2.3> How (in)secure are internet networks?\n\n  - `Theoretically' people at any site in the chain of sites with\n    access to hardware and network media that transmits data over the\n    Internet  could potentially monitor or archive it. However, the\n    sheer volume and general 'noise' inherent to this data makes\n    these scenarios highly improbable, even by government agencies\n    with supposedly vast funding and resources.\n  \n  - Technologies exist to `tap' magnetic fields given off by\n    electrical wires without detection.  Less obscurely, any machine\n    with a network connection is a potential station for traffic\n    detection, but this scenario requires knowledge and access to\n    very low-level hardware (the network card) to pursue, if even\n    possible.\n  \n  - A company Network General Inc. is one of many that manufactures\n    and markets sophisticated network monitoring tools that can\n    'filter' and read packets by arbitrary criteria for\n    troubleshooting purposes, but the cost of this type of device is\n    prohibitive for casual use.\n\n  Known instances of the above types of security  breaches at a major\n  scale (such as at network hubs) are very rare. The greatest risks\n  tend to emerge locally.  Note that all these approaches are almost\n  completely defused with the use of cryptography.\n    \n_____\n<2.4> How (in)secure is my account?\n\n  By default, not very.  There are a multitude of factors that may\n  reinforce or compromise aspects of your privacy on the internet. \n  First, your account must be secure from other users. The universal\n  system is to use a password, but if it is `weak' (i.e. easy to\n  guess) this security is significantly diminished.  Somewhat\n  surprisingly and frighteningly to some, certain  users of the\n  system, particularly the administrator, generally have unlimited\n  access regardless of passwords, and may grant that access to\n  others.  This means that they may read any file in your account\n  without detection.\n\n  Furthermore, not universally known, most UNIX systems keep fairly\n  extensive accounting records of when and where you logged in, what\n  commands you execute, and when they are executed (in fact, login\n  information is usually public). Most features of this `auditing' or\n   `process accounting' information are enabled by default after the\n  initial installation and the system administrator may customize it\n  to strengthen or weaken it to satisfy performance or privacy aims. \n  This information is frequently consulted for troubleshooting\n  purposes and may otherwise be ignored.  This data tracks\n  unsuccessful login attempts and other 'suspicious' activities on\n  the system. A traditional part of the UNIX system that tracks user\n  commands is easily circumvented by the user with the use of\n  symbolic links (described  in 'man ln').\n  \n  UNIX implementations vary widely particularly in tracking features\n  and new sophisticated mechanisms are introduced by companies\n  regularly. Typically system adminstrators augment the basic UNIX\n  functionality with public-domain programs and locally-developed\n  tools for monitoring, and use them only to isolate `suspicious'\n  activity as it arises (e.g. remote accesses to the 'passwd' file, incorrect\n  login attempts, remote connection attempts, etc.).\n  \n  Generally, you should expect little privacy on your account for\n  various reasons:\n  \n  - Potentially, every keystroke you type could be intercepted by\n    someone else. \n\n  - System administrators make extensive backups that are completely\n    invisible to users which may record the states of an account over\n    many weeks. \n\n  - Erased files can, under many operating systems, be undeleted. \n\n  - Most automated services keep logs of use for troubleshooting or\n    otherwise; for example FTP sites usually log the commands and\n    record the domain originations of users, including anonymous\n    ones.\n\n  - Some software exacerbates these problems.  See the section on\n    ``X Windows (in)security''.\n\n  Indepedent of malevolent administrators are fellow users, a much\n  more commonly harmful threat. There are multiple ways to help\n  ensure that your account will not be accessed by others, and\n  compromises can often be traced to failures in these guidelines:\n\n  - Choose a secure password.  Change it periodically.\n  - Make sure to logout always.\n  - Do not leave a machine unattended for long.\n  - Make sure no one watches you when you type your password.\n  - Avoid password references in email.\n  - Be conservative in the use of the .rhost file.\n  - Use utilities like `xlock' to protect a station, but be\n    considerate.\n\n  Be wary of situations where you think you should supply your\n  password.  There are only several basic situations where UNIX\n  prompts you for a password: when you are logging in to a system or\n  changing your password.  Situations can arise in which prompts for\n  passwords are forged by other users, especially in cases where you\n  are talking to them (such as Internet Relay Chat).  Also, be  aware\n  that forged login screens are one method to illegitimately obtain \n  passwords.\n\n\n  (Thanks to Jim Mattson <mattson@cs.ucsd.edu> for contributions\n  here.)\n\n_____\n<2.5> How (in)secure are my files and directories?\n\n  The most important privacy considerations are related to file\n  rights, and many lapses can be traced to their misunderstood nature\n  or haphazard maintenance. Be aware of the rights associated with\n  your files and directories in UNIX. If the `x' (`execute') right on\n  your parent directory is off for users, groups, and other, these\n  users cannot gain information on anything in your directories. \n  Anything less may allow others to read, change, or even delete\n  files in your home directory. The rights on a directory supersede\n  the rights associated with files in that directory. For a\n  directory, 'x' means that access to the files (or subdirectories)\n  in the directory is possible -- if you know their names.  To list\n  the contents of the directory, however, requires the 'r' right.\n \n  By default most accounts are accessable only to the owner, but the\n  initial configuration varies between sites based on administrator\n  preference.  The default file mode specifies the initial rights\n  associated with newly created files, and can be set in the shell\n  with `umask'.  The details of rights implementations tend to vary\n  between versions of UNIX.  Consult man pages on `chmod' and `ls'.\n\n  Examples\n  --------\n\n    traver.lance % ls -ld ~\n    drwx------ 15 ld231782     1536 Jan 31 21:22 /users/ld231782/\n\n  Here is a listing of the rights associated with a user's home\n  directory, denoted by `~'.  The columns at the left identify what\n  rights are available. The first column identifies the entry as a\n  directory, and the next three columns mean that read, write, and\n  execute rights, respectively, are permitted for that user.  For\n  directories, the `x' right means that contents (file and\n  subdirectory names) within that directory can be listed. The\n  subsequent columns indicate that no other users have any rights to\n  anything in the directory tree originating at that point.  They\n  can't even `see' any lower files or subdirectories; the hierarchy\n  is completely invisible to them.\n\n    traver.lance % ls -l msg\n    -rw-r--r--  1 ld231782   35661 Jan 29 23:13 msg\n    traver.lance % chmod u=rw,g=,o= msg\n    traver.lance % ls -l msg\n    -rw-------  1 ld231782   35661 Jan 29 23:13 msg\n\n  Here the modes on the file `msg' were changed to take away rights\n  from `group' and `other'. \n  \n  Note that `ls -l <file>' requires both the 'r' right to get the list\n  of files and subdirectories, and the 'x' right to access the files\n  and subdirectories in order to get their size, etc. For example,\n  suppose the directory `foo' has rights dr--r--r--,  the following\n  is possible:\n\n    ls foo\n\n  These commands would fail independent of file rights:\n  \n    ls -l foo\n    ls -l foo/file\n    cat foo/file\n    cd foo\n\n  If the directory `foo' has rights d--x--x--x, the following are\n  possible if it is known beforehand that `foo' contains an 'r'\n  readable file named `file':\n  \n    ls -l foo/file\n    cat foo/file\n    cd foo\n  \n  The following commands fail:\n  \n    ls foo\n    ls -l foo\n  \n\n  (Thanks to Uwe Waldmann <uwe@mpi-sb.mpg.de> for contributions here.)\n\n_____\n<2.6> How (in)secure is X Windows?\n\n  X Windows is the primary software developed by the MIT Athena\n  project which is funded by U.S. government grants to develop\n  applications to harness the power of networks in enhancing\n  computational tasks, particularly the human-computer interface. \n  The software implements a client-server interface to a computer via\n  graphical windows. In this case the `client' is the application\n  requesting or utilizing  graphical resources (such as windows or a\n  mouse) and the `server' is the machine that provides them.  In many\n  situations the client is an application program running on the same\n  machine as the server.\n\n  The great utility of X Windows comes from its complete dissociation\n  of the client and server so that windows may be `broadcast' to a\n  server at a remote location from the  client. Unfortunately this\n  dynamic power also introduces many deep, intricate, and complicated\n  security considerations.  The primary security and privacy issue\n  associated with X Windows is that much more sensitive data may be\n  sent over a network, and over wider regions, than in the case where\n  the human is situated near the host computer.  Currently there is\n  no encryption of data such as screen updates and keystrokes in X\n  Windows.\n\n  Due to either intentional design decisions or unintentional design\n  flaws,  early versions of the X Window system are extremely\n  insecure. Anyone with an account on the server machine can disrupt\n  that display or read it electronically based on access to the\n  device unix:0.0 by any regular user.   There are no protections\n  from this type of access in these versions.   The problem arises\n  because the security is completely based on machine addresses\n  rather than users, such that any user at a `trusted' machine is\n  himself trusted. Quoting from X documentation (man Xsecurity):\n  \n  > Any client on a host in the host access control list is allowed\n  > access to the X server. This system can work reasonably well in\n  > an environment where everyone trusts everyone, or when only a\n  > single person can log into a given machine...This system does not\n  > work well when multiple people can log in to a single machine and\n  > mutual trust does not exist. \n  \n  With the access control list, the `xhost' command may prevent some\n  naive attempts (i.e. those other than the direct-access unix:0.0\n  evasion); the syntax as typed on the host machine is  ``xhost\n  +[name]'' where [name] is the domain name or internet address of an\n  authorized client machine. By default clients running nonlocal to\n  the host are disabled.  Public domain programs to disrupt a display\n  momentarily (such as 'flip' or slowly mirror the screen image, or\n  cause pixels to 'melt' down to the bottom) have been circulating on\n  the internet among hackers for several years and played as pranks\n  on unsuspecting or inexperienced users.  Much more serious security\n  breaches are conceivable from similar mechanisms exploiting this\n  inherent weaknesses.  (The minimal, easily-bypassed `trusted'\n  security mode of `xhost' has been jokingly referred to as ``X\n  Hanging Open, Security Terrible.''). \n\n  New versions of the X Window system (X11R5 and higher) by default \n  make server access as secure as the file system using a .Xauthority\n  file and 'magic cookies'.  Remote machines must have a code in the\n  .Xauthority file in the home directory that matches the code\n  allowed by the server.  Many older programs and even new\n  vendor-supplied code does not support or is incompatible with\n  `magic cookies'. The basic magic cookie mechanism is vulnerable to\n  monitoring techniques described earlier because no encryption of\n  keys occurs in transmission.  X11R5 also includes other\n  sophisticated encryption mechanisms.  Try `man Xsecurity' to find\n  out what is supported at your site.  Even though improved security \n  mechanisms have been available in X Windows since ~1990, local\n  sites often update this software infrequently because installation\n  is extremely complex.\n\n\n  (Thanks to Marc Vanheyningen <mvanheyn@whale.cs.indiana.edu>, \n  Jim Mattson <mattson@cs.ucsd.edu>, and Bill Marshall\n  <marshall@cs.iastate.edu> for contributions here.)\n\n_____\n<2.7> How (in)secure is my email?\n\n  By default, not very.  The characters that you are reading are\n  almost certainly encoded in ASCII, the American Standard Code for\n  Information Interchange that maps alphabetic and symbolic\n  characters onto numeric codes and vice versa.  Virtually every\n  computer system uses this code, and if not, has ways of converting\n  to and from it.  When you write a mail message, by default it is\n  being sent in ASCII,  and since the standard is virtually\n  universal, there is no intrinsic privacy.  Despite milleniums worth\n  of accumulated cryptographic knowledge, cryptographic technologies\n  are only recently being established that afford high priority to\n  privacy as a primary criteria in computer and network design.  Some\n  potential pitfalls in privacy are as follows:\n\n  - The most serious threats are instances of immature or unscrupulous\n    system operators reading private mail in the `spool files' at a\n    local site (i.e. at the source or destination of the message),\n    such as a university. \n  \n  - System administrators may also release files to law enforcement\n    agencies, but conventions and protocols for warrants involving\n    computer searches have still not been strongly established and\n    tested legally.\n\n  - Note that bounced messages go to postmasters at a given site in\n    their entirety.  This means that if you address mail with an\n    incorrect address it has a good chance of being seen by a human\n    other than the recipient.\n\n  - Typically new user accounts are always set up such that the local\n    mail directory is private, but this is not guaranteed and can be\n    overridden.\n\n  - Finally, be aware that some mailing lists (email addresses of \n    everyone on a list) are actually publicly accessable via mail \n    routing software mechanisms.  This `feature' can be disabled.\n\n  Most potential compromises in email privacy can be thoroughly\n  avoided with the use of strong end-to-end cryptography, which has\n  its own set of caveats (for example, unscrupulous administrators\n  may still be a threat if the encryption site is shared or\n  nonlocal).  See the sections on ``email privacy'' and ``email\n  policies.''\n\n_____\n<2.8> How am I (not) liable for my email and postings?\n\n  As punishment or whatever, your system administrator can revoke\n  certain `privileges' such as emailing, USENET posting or reading\n  certain groups, file transferring, remote communications, or\n  generally any subset of capabilities available from your account. \n  This all is completely at the discretion of the local administrator\n  and under the procedures followed at a particular site, which in\n  many cases are haphazard and crisis-oriented.  Currently there are\n  virtually no widespread, uniform guidelines or procedures  for\n  restricting use to any internet services, and local administrators\n  are free to make arbitrary decisions on access.\n\n  Today punitive measures are regularly applied in various situations.\n  In the typical scenario complaint(s) reach a system adminstrator\n  regarding abuses by a user, usually but not necessarily preceded by\n  complaints to the user in email, regarding that person's\n  objectionable email or postings.  `abusive' posters to USENET are\n  usually first given admonitions from their system administrators as\n  urged by others on the `net'. (The debate persists endlessly on\n  many newsgroups whether this is also used  as a questionable means\n  of attacking or silencing `harmless crackpots' or censoring\n  unpopular opinions.)\n  \n  System administrators at remote sites regularly cooperate to\n  'squelch' severe cases of abuse.  In general, however, by tradition\n  Usenet readers are remarkably tolerant of diverse views and uses of\n  the system, but a colorful vocabularly of slang helps describe\n  their alternatives when this patience is sapped: the options\n  wielded by the individual user are to simply advance to the next\n  message (referred to as ``hitting the `n' key''), or to `plonk'\n  annoying posters (according to the Hacker's Dictionary, the sound a\n  jerk makes at the end of a fall to the bottom of a kill file).\n\n  In cases where punitive actions are applied, generally system\n  administrators are least likely to restrict email.  USENET postings\n  are much more commonly restricted, either to individual users or \n  entire groups (such as a university campus).  Restrictions are most\n  commonly associated with the following `abuses':\n\n  - harassing or threatening notes, `email terrorism'\n  - illegal uses, e.g. piracy or propagation of copyrighted material\n  - `ad hominem' attacks, i.e. insulting the reputation of the\n    poster instead of citing the content of the message\n  - intentional or extreme vulgarity and offensiveness\n  - inappropriate postings, esp. binary files in regular groups\n    `mail-bombing': inundating mail boxes with numerous or massive\n    files\n\n  Major problems originate from lack of distinctions in private and\n  official email or postings.  Most users have internet access via\n  accounts at businesses or universities and their activities on the\n  internet can be construed as representative of their parent\n  organizations. Many people put disclaimers in their `signatures' in\n  an attempt dissociate their identity and activities from parent\n  organizations as a precaution. A recent visible political case\n  involves the privacy of electronic mail  written by White House\n  staff members of the Bush administration.  Following are some\n  guidelines:\n\n  - Acquaint yourself with your company or university policy.\n  - If possible, avoid use of your company email address for private\n    communication.\n  - Use a disclaimer.\n  - Keep a low profile (avoid `flamewars' or simply don't post).\n  - Avoid posting information that could be  construed to be\n    proprietary or `internal'.\n\n  The following references are available from ftp.eff.com\n  (see also the section on ``internet use policies''):\n\n  /pub/academic/banned.1991\n  /pub/academic/banned.1992\n  ---\n    Computer material that was banned/challenged in academia in 1991\n    and 1992 including USENET hierarchies.\n\n  /pub/academic/cases\n  ---\n    This is an on-line collection of information about specific\n    computers and academic freedom cases. File README is a detailed\n    description of the items in the directory.\n\n  /pub/academic/faq/netnews.liability\n  ---\n    Notes on university liability for Usenet.\n\n_____\n<2.9> How do I provide more/less information to others on my identity?\n\n  The public information of your identity and account is mostly\n  available though the UNIX utility `finger' described above. \n  \n  - You have control over most of this information with the utility\n    `chfn', the specifics vary between sites (on some systems use\n    `passwd -f').\n   \n  - You can provide unlimited information in the .plan file which is\n    copied directly to the destination during the fingering. \n    \n  - A technique that works at some sites allows you to find out who is\n    'finger'ing you and even to  vary the .plan file sent to them.\n    \n  - Your signature is determined by the environment variable SIGNATURE\n    \n  - USENET signatures are conventionally stored in the .signature file\n    in your home directory.\n    \n  Providing less information on your online identity is more difficult\n  and involved.  One approach is to ask your system adminstrator to\n  change or delete information about you (such as your full name). \n  You may be able to obtain access on a public account or one from\n  someone unrelated to you personally.  You may be able to remotely\n  login (via modem or otherwise) to computers that you are not\n  physically near.  These are tactics for hiding or masking your\n  online activities but nothing is foolproof.  Consult man pages on\n  the 'chmod' command and the default file mode.  Generally, files on\n  a shared system have good safeguards within the user pool but very\n  little protection is possible from corrupt system administrators.\n\n  To mask your identity in email or on USENET you can use different\n  accounts. More untraceable are new `anonymous posting' and\n  remailing services that are very recently being established.  See\n  below.\n\n______\n<2.10> Who is my sysadmin?  What does s/he know about me?\n\n  The requirements and screening for getting a system administration\n  job (and thereby access to all information on a system) vary widely\n  between sites and are sometimes frighteningly lax, especially at\n  universities.  Many UNIX systems at universities are largely\n  managed by undergraduates with a background in computing and often\n  `hacking'.  In general, commercial and industrial sites are more\n  strict on qualifications and background, and government sites are\n  extremely strict.\n\n  The system adminstrator (root user) can monitor what commands you\n  used and at what times.  S/he may have a record (backups) of files\n  on your account over a few weeks. S/he can monitor when  you send\n  email or post USENET messages, and potentially read either.  S/he\n  may have access to records indicating what hosts you are using,\n  both locally and elsewhere.  Administrators sometimes employ\n  specialized programs to  track `strange' or `unusual' activity,\n  which can potentially be misused.\n\n______\n<2.11> Why is privacy (un)stable on the internet?\n\n  For the numerous reasons listed above, privacy should not be an\n  expectation with current use of the internet.  Furthermore, large\n  parts of the internet are funded by the U.S. NSF (National Science\n  Foundation) which places certain restrictions on its use (such as\n  prohibiting commercial use).  Some high-level officials in this and\n  other government agencies may be opposed to emerging techniques to\n  guarantee privacy (such as encryption and anonymous services).\n\n  Historically the major threats to privacy on the internet have been\n  local. Perhaps the most common example of this are the widespread\n  occurrences of university administrators refusing to carry some\n  portion of USENET newsgroups labelled as `pornographic'. The\n  `alternative' hierarchy in the USENET system, which has virtually\n  no restrictions on propagation and new group creation, is\n  frequently targeted (although this material may appear anywhere).\n\n  From the global point of view traffic is generally completely\n  unimpeded on the internet  and only the most egregious offenders\n  are pursued.  For example,  verbatim transcriptions of copyrighted\n  material (such as newspaper or magazine articles) are posted to\n  USENET with regularity without major consequences (some email\n  complaints may ensue).  More astonishing to some is that currently\n  significant portions of USENET traffic, and less so internet\n  traffic, is comprised of sexually-explicit digitized images almost\n  entirely originating from copyrighted material (newsgroups such as\n  `alt.sex' regularly have the  highest traffic).\n  \n______\n<2.12> What is the future of privacy on the internet?\n\n  Some argue that the internet currently has an adequate or\n  appropriate level of privacy.  Others will argue that as a\n  prototype for future global networks it has woefully inadequate\n  safeguards.  The internet is growing to become a completely global,\n  international superhighway for data, and this traffic will\n  inevitably entail data such as voice messages, postal mail, and\n  many other items of extremely personal nature. Computer items that\n  many people consider completely private (such as their local hard\n  drives) will literally be inches from global network connections.\n  Also, sensitive industrial and business information is exchanged\n  over networks currently and this volume may conceivably merge with\n  the internet.\n  \n  Most would agree that, for these basic but sensitive uses of the\n  internet, no significant mechanisms are currently in place to\n  ensure much privacy. New standards are calling for uniform\n  introduction of `privacy enhanced mail' (PEM) which uses encryption\n  technologies to ensure privacy, so that privacy protection is\n  automatic, and may significantly improve safeguards.\n\n  The same technology that can be extremely destructive to privacy\n  (such as with  surreptitious surveilance) can be overwhelmingly\n  effective in protecting  it (e.g. with encryption). Some government\n  agencies are opposed to unlimited privacy in general, and believe\n  that it should lawfully be forfeited in cases of criminal conduct\n  (e.g. court-authorized wiretapping).  However, powerful new\n  technologies to protect privacy on computers are becoming\n  increasingly popular, provoking some to say that ``the cat is out\n  of the bag'' and the ``genie can't be put back in the bottle''.  In\n  less idiomatic terms, they believe that the spread of strong\n  cryptography is already underway will be socially and technically\n  unstoppable.\n  \n  To date, no feasible system that guarantees both secure\n  communication and government oversight has been proposed (the two\n  goals are largely incompatible). Proposals for ``registration'' of\n  secret keys (by D. Denning on sci.crypt, for example) have been met\n  with hot controversy at best and ridicule and derision at worst,\n  mainly because of concerns for the right to privacy and objections\n  of inherent feasibility.  Electronic privacy issues, and\n  particularly the proper roles of networks and the internet, will\n  foreseeably become highly visible and explosive over the next few\n  years.\n\n\nANONYMITY\n=========\n\n_____\n<3.1> What is `anonymity' on the internet?\n\n  Simply stated, anonymity is the absence of identity, the\n  ultimate in privacy. However, there are several variations on\n  this simple theme.  A person may wish to be consistently\n  identified by a certain pseudonym or `handle' and establish a\n  reputation under it in some area, providing pseudo-anonymity.\n  A person may wish to be completely untraceable for a single\n  one-way message (a sort of `hit-and-run'). Or, a person may\n  wish to be openly anonymous but carry on a conversation with\n  others (with either known or anonymous identities) via an\n  `anonymous return address'.  A user may wish to appear as a\n  `regular user' but actually be untraceable.  Sometimes a user\n  wishes to hide who he is sending mail to (in addition to the\n  message itself). The anonymous item itself may be directed at\n  individuals or groups.  A user may wish to access some\n  service and hide all  signs of the association. \n  \n  All of these uses are feasible on the internet but are currently\n  tricky to carry out in practice, because of all the tracking\n  mechanisms inherent to operating systems and network protocols. \n  Officials of the NSF and other government agencies may be opposed\n  to any of these uses because of the potential for abuse. \n  Nevertheless, the inherent facelessness of large networks will\n  always guarantee a certain element of anonymity.\n\n_____\n<3.2> Why is `anonymity' (un)important on the internet?\n\n  Anonymity is another powerful tool that can be beneficial or\n  problematic depending on its use.  Arguably absence of\n  identification is important as the presence of it.  It may be the\n  case that many strong benefits from electronic anonymity will be\n  discovered that were unforeseen and unpredicted, because true\n  anonymity has been historically very difficult to establish.\n\n  One can use anonymity to make personal statements to a colleague\n  that would sabotage a relationship if stated openly (such as\n  employer/employee scenarios).  One can use it to pass information\n  and evade any threat of direct retribution.  For example,\n  `whistleblowers' reporting on government abuses (economic, social,\n  or  political) can bring issues to light without fear of stigma or\n  retaliation. Sensitive, personal, potentially damaging information\n  is often posted to some USENET groups, a risky situation where\n  anonymity allows conversations to be carried on completely\n  independent of the identities of the participants.  Some police\n  departments run phone services that allow anonymous reporting of\n  crimes; such uses would be straightforward on the network.\n  Unfortunately, extortion and harassment become more insidious with\n  assurances of anonymity.\n\n_____\n<3.3> How can anonymity be protected on the internet?\n\n  The chief means, as alluded to above, are masking identities in\n  email and posting. However, anonymous accounts (public accounts as\n  accessable and anonymous as e.g. public telephones) may be\n  effective as well, but this use is generally not officially\n  supported and even discouraged by some system adminstrators and NSF\n  guidelines.  The nonuniformity in the requirements of obtaining\n  accounts at different sites and institutions makes anonymous\n  accounts generally difficult to obtain to the public at large.\n\n  Many communications protocols are inherently detrimental to\n  anonymity.  Virtually every protocol in existence currently\n  contains information on both sender and receiver in every packet.\n  New communications protocols will likely develop that guarantee\n  much higher degrees of secure anonymous communication.\n\n_____\n<3.4> What is `anonymous mail'?\n\n  One approach to `anonymizing' mail has been to set up an `anonymous\n  server' that, when activated by email to its address, responds by\n  allocating and supplying an `anonymous ID' that is unique to the\n  person requesting it (based on his email address).  This will vary\n  for the same person for different machine address email\n  originations. To send anonymous mail, the user sends email directed\n  to the server containing the final destination. The server\n  `anonymizes' the message by stripping of identification information\n  and forwards the message, which appears to originate from the\n  anonymous server only from the corresponding anonymous user id. \n  This is the `interactive' use of anonymity or pseudonymity\n  mentioned above.\n\n  Another more `fringe' approach is to run a `cypherpunk' remailer\n  from a regular user account (no root system privileges are\n  required). These are currently being pioneered by  Eric Hughes and\n  Hal Finney <hal@alumni.caltech.edu>. The operator runs a process on\n  a machine that anonymizes mail sent to him with certain\n  characteristics that distinguish it from his regular incoming mail\n  (typically fields in the header). One has been implemented as a \n  PERL script running on UNIX.  Several of these are in existence\n  currently but sites and software currently are highly unstable;\n  they may be in operation outside of system administrator knowledge.\n  The remailers don't generally support anonymous return addresses. \n  Mail that is incorrectly addressed is received by the operator. \n  Generally the user of the remailer has to disavow any\n  responsibility for the messages forwarded through his system,\n  although actually may be held liable regardless.\n\n  These approaches have several serious disadvantages and weaknesses:\n  \n  - The anonymous server approach requires maintaining a mapping of\n    anonymous ID's to real addresses that must be maintained\n    indefinitely.  One alternative is to allow `deallocation' of\n    aliases at the request of the user, but this has not been\n    implemented yet.\n\n  - Although an unlikely scenario, traffic to any of these sites could\n    conceivably be monitored from the `outside', necessitating the\n    use of cryptography for basic protection,.\n\n  - Local administrators can shut them down either out of caprice or\n    under pressure from local, network, or government agencies.\n  \n  - Unscrupulous providers of the services can monitor the traffic\n    that goes through them.\n\n  - Most remailers currently keep logs that may be inspected. \n\n  - The cypherpunk approach tends to be highly unstable because these\n    operators are basically  network users who do not own the\n    equipment and are accountable  to their own system\n    administrators, who may be unaware of the use and unsympathetic\n    to the philosophy of anonymity when the operation is discovered,\n    regarding it as illicit use. \n\n  - In all cases, a high degree of trust is placed in the anonymous\n    server operator by the user.\n\n  Currently the most direct route to anonymity involves using SMTP\n  protocols to submit a message directly to a server with arbitrary\n  field information.  This practice, not uncommon to hackers, and the\n  approach used by remailers, is generally viewed with hostility by\n  most system administrators.  Information in the header routing data\n  and logs of network port connection information may be retained\n  that can be used to track the originating site.  In practice, this\n  is generally infeasible and rarely carried out.  Some\n  administrators on the network will contact local administrators to\n  request a message be tracked and its writer admonished or punished\n  more severely (such as revoking the account), all of this actually\n  happening occasionally but infrequently.\n\n  See the sections ``known anonymous mail and posting sites'' and \n  ``responsibilities associated with anonymity''.\n\n_____\n<3.5> What is `anonymous posting'?\n\n  Anonymous servers have been established as well for anonymous Usenet\n  posting with all the associated caveats above (monitored traffic,\n  capricious or risky local circumstances, logging).  Make sure to\n  test the system at least once by e.g. anonymous posting to\n  misc.test (however some operators don't recommend this because many\n  sites `autorespond' to test messages, possibly causing the\n  anonymous server to allocate anonymous IDs for those machines). \n  See the ``responsibilties associated with anonymous posting''\n  before proceeding.\n\n  Another direct route involves using NNTP protocols to submit a\n  message directly to a newserver with arbitrary field information.\n  This practice, not uncommon to hackers, is also generally viewed\n  with hostility by most system administrators, and similar\n  consequences can ensue.\n\n  See the sections ``known anonymous mail and posting sites'' and \n  ``responsibilities associated with anonymity''.\n\n_____\n<3.6> Why is anonymity (un)stable on the internet?\n\n  As noted, many factors compromise the anonymity currently available\n  to the general internet community, and these services should be\n  used with great caution.  To summarize, the technology is in its\n  infancy and current approaches are unrefined, unreliable, and not\n  completely trustworthy.  No standards have been established and\n  troubling situations of loss of anonymity and bugs in the software\n  are prevalent.  Here are some encountered and potential bugs: \n  \n  - One  anonymous remailer reallocated already allocated anonymous\n    return addresses. \n  - Others passed signature information embedded in messages\n    unaltered. \n  - Address resolution problems resulting in anonymized mail bounced\n    to a remailer are common.\n  - Forgeries to the anonymous server itself are a problem,  possibly\n    allowing unauthorized users to potentially glean anon ID - email\n    address  mappings in the alias file.  This can be remedied with\n    the use of passwords.\n  - Infinite mail loops are possible with chaining remailers.\n  \n  Source code is being distributed, tested, and refined for these\n  systems, but standards are progressing slowly and weakly.  The\n  field is not likely to improve considerably without  official\n  endorsement and action by network agencies.  The whole idea is\n  essentially still in its infancy and viewed with suspicion and\n  distrust by many on the internet, seen as illegitimate or favorable\n  to criminality.  The major objection to anonymity over regular\n  internet use  is the perceived lack of accountability to system\n  operators, i.e. invulnerability to account restrictions resulting\n  from outside complaints.  System adminstrators at some sites have\n  threatened to filter anonymous news postings generated by the\n  prominent servers from their redistribution flows.  This may only\n  have the effect of encouraging server operators to create less\n  characteristically detectable headers.  Probably the least\n  problematic approach, and the most traditional to Usenet, is for\n  individual users to deal with anonymous mail however they prefer,\n  e.g. ignoring it or filtering it with kill files.\n  \n_____\n<3.7> What is the future of anonymity on the internet?\n\n  New anonymous protocols effectively serve to significantly increase\n  safeguards of anonymity.  For example, the same mechanism that\n  routes email over multiple hosts, thereby threatening its privacy,\n  can also be used to guarantee it. In a scheme called `chaining' an\n  anonymous message is passed through multiple anonymous servers\n  before reaching a destination.  In this way generally multiple\n  links of the chain have to be `broken' for security to be\n  compromised. Re-encryption at each link makes this scenario even\n  more unlikely.  Even more significantly the anonymous remailers\n  could be spread over the internet globally so that local weaknesses\n  (such as corrupt governments or legal wiretapping within a nation)\n  would be more unlikely to sacrifice overall security by message\n  tracing. However, remailers run by corrupt operators are possible.\n  \n  The future of anonymous services on the internet is, at this time,\n  highly uncertain and fraught with peril. While specific groups seem\n  to benefit significantly from anonymous posting capabilities, many\n  feel that unlimited newsgroup scope for anonymous posting is a\n  disruptive and dangerous idea and detracts from discussions in\n  `serious' groups.   The introduction of unlimited group anonymity\n  may have fundamental repercussions on Usenet conventions and\n  distribution mechanisms such as moderated and `alt' groups have had\n  in the past. For example, as part of new group creation, the\n  charter may specify whether `anonymous' posting is (un)welcome. \n\n  Nevertheless, the widespread introduction and use of anonymity may\n  be inevitable. Based on traffic statistics, anonymous services are\n  in huge demand. Pervasive and readily available anonymity could\n  carry significant and unforeseen social consequences.  However, if\n  its use is continued to be generally regarded as subversive it may\n  be confined to the underground.  The ramifications of widespread\n  introduction of anonymity to Usenet are still largely unknown. It\n  is unclear whether it will provoke signficant amounts of new\n  traffic or, instead of expansion, cause a shift where a greater\n  portion of existing traffic is anonymized.  Conceivably the\n  services could play a role in influencing future mainstream social\n  acceptance of Usenet.\n\n\n* * *\n\nThis is Part 1 of the Privacy & Anonymity FAQ, obtained via anonymous\n  FTP to pit-manager@mit.edu:/pub/usenet/news.answers/net-privacy/ or \n  newsgroups news.answers, sci.answers, alt.answers every 21 days.\nWritten by L. Detweiler <ld231782@longs.lance.colostate.edu>.\nAll rights reserved.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5851, "properties": {"category": "rec.motorcycles", "text": "From: nelson@seahunt.imat.com (Michael Nelson)\nSubject: Re: Why I won't be getting my Low Rider this year\nKeywords: congratz\nArticle-I.D.: myrddin.C52EIp.71x\nOrganization: SeaHunt, San Francisco CA\nLines: 29\nNntp-Posting-Host: seahunt.imat.com\n\nIn article <1993Apr5.182851.23410@cbnewsj.cb.att.com> car377@cbnewsj.cb.att.com (charles.a.rogers) writes:\n>\n>Ouch. :-)   This brings to mind one of the recommendations in the\n>Hurt Study.   Because the rear of the gas tank is in close proximity\n>to highly prized and easily damaged anatomy, Hurt et al recommended\n>that manufacturers build the tank so as to reduce the, er, step function\n>provided when the rider's body slides off of the seat and onto the\n>gas tank in the unfortunate event that the bike stops suddenly and the \n>rider doesn't.  I think it's really inspiring how the manufacturers\n>have taken this advice to heart in their design of bikes like the \n>CBR900RR and the GTS1000A.\n\n\tWhen I'm riding my 900RR, my goodies are already up\n\tagainst the tank, because the design of the Corbin seat\n\ttends to move you forward.\n\n\tWouldn't the major danger to one's cajones be due to\n\taccelerating into and then being stopped by the tank?  If\n\tyou're already there, there wouldn't be an impact\n\tproblem, would there?\n\n\t\t\t\t- Michael -\n\n\n-- \n+-------------------------------------------------------------+\n| Michael Nelson                                1993 CBR900RR |\n| Internet: nelson@seahunt.imat.com                 Dod #0735 |\n+-------------------------------------------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5852, "properties": {"category": "talk.politics.misc", "text": "Subject: Re: New Funding Plan for the Military\nFrom: medkeffjs@hirama.hiram.edu (Jeff Medkeff)\nOrganization: Hiram College\nNntp-Posting-Host: hirama.hiram.edu\nLines: 20\n\nIn article <C4zI26.34D@wetware.com>, drieux@wetware.com \n  (drieux, just drieux) writes (about the armed services):\n> \n> ps: Maybe even privatize the organization, or consider\n> 'out sourcing' various aspects of the DOD as a part of\n> the current 'Down Sizing' - Who Knows, Maybe if we \n> Finally Allowed to \"Free Market\" to take control, we will\n> no longer have a military run by the same folks who are\n> running the post office.....\n> \n> pps: slow down, and think before you flame, Rhetoric is an ArtForm.\n\nWell, uh, actually I agree.\n\n\n-- \nJeffrey S. Medkeff      Bitnet-    medkeffjs@hiramb\nPO Box 1098             Internet-  medkeffjs@hiramb.hiram.edu\nHiram, OH 44234         Pale Ebenezer thought it wrong to fight. But\nU.S.A.                  Roaring Bill (who killed him) thought it right.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5853, "properties": {"category": "soc.religion.christian", "text": "From: noye@midway.uchicago.edu (vera shanti noyes)\nSubject: Re: Am I going to Hell?\nReply-To: noye@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 51\n\nIn article <Apr.24.01.09.10.1993.4254@geneva.rutgers.edu> stoney@oyster.smcm.edu (Stanley Toney) writes:\n> Muslims, i fear have been given a lie from the  \n>fater of lies, Satan. They need Christ as do us all.\n>\n>stan toney stoney@oyster.smcm.edu\n>my opinions are my own, you may borrow them\n\njust picked out this one point because it struck me....\nwhy do you believe this?  muslims believe in many of the same things\nthat christians and jews believe; they believe jesus, while not the\nmessiah, is a prophet.  this seems to me to be much closer to\nchristianity than other religions are.  (then again i tend to be\nsomewhat liberal about others' beliefs.)\n\nthis also relates to the serbian \"ethnic cleansing\" question.  i have\nbeen waiting for condemnations of this and have seen very few.  HOW\ncan we stand by and watch innocent people, even people whose beliefs\nwe condemn, if this is the case (and don't get me wrong, the things\nfundamenalist muslims have to say about women make my blood boil), be\ntortured, raped (the stories about that made me physically ill), and\nkilled?  jesus loves all, not just those who love him back -- and he\nwould advocate kindness toward them (in the hopes of converting them,\nif that's the way you want to put it) rather than killing them.  \n\ni'm sorry i got off the subject here -- maybe i should have used a\ndifferent title.  i did need to get this off my chest, however.\n\npeace (shalom),\nvera shanti\n_______________________________________________________________________________\nHand over hand\t\t\t\tnoye@midway.uchicago.edu\nDoesn't seem so much\t\t\t(Vera Noyes)\nHand over hand\t\t\t\t\nIs the strength of the common touch\tdrop me a line if you're in the mood\n\t- Rush, \"Hand Over Fist\"\n_______________________________________________________________________________\n\n[I am also worried about this issue.  I've made a posting under my own\nname earlier today.  I do not much want to discuss Moslem beliefs\nhere.  This isn't the right group for it.  Their beliefs about Jesus\nappear to come as much from the Koran as the Bible.  This means that\nwhile they honor him, what they think he did and stood for differs in\nmany ways from Christian beliefs about him.  But Moslem beliefs are\nan appropriate topic for soc.religion.islam.\n\nAs I'm sure you know, many Christians believe that you must accept\nChrist in order to be saved.  While Stanley's comment appears to be\nanti-Moslem, I would assume he would say the same thing about all\nreligions other than Christianity.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5854, "properties": {"category": "comp.graphics", "text": "From: HURH@FNAL.FNAL.GOV (Patrick Hurh)\nSubject: Rayshade to DXF,RIB,etc.. (Strata)?\nOrganization: FNAL\nLines: 30\nDistribution: world\nNNTP-Posting-Host: adnet13.fnal.gov\n\nI'm a mac user who wants to use some of the rayshade models I've built\nusing macrayshade (rayshade-M) with Stratavision 3d.  Since Stratavision\ncan import many different model files I thought this would be a cinch...\nbut I haven't been able to find a simple translator that will work on the\nmac.  Any ideas?\n\nStratavision 3d should be able to import:\n\nDXF\nMiniCAD\nSuper 3d\nSwivel 3d professional\n\nout of the box and:\n\nRIB\nIGS\n\nwith externals.\n\nAlso, if anyone knows of any other translator externals available for\nStratavision 3d (esp. Rayshade!) please e-mail me!\n\nBTW, I'm going to send mail to the rayshade usrs mailing list tomorrow (I\nmisplaced the address) but since most users of rayshade do not seem to\noperate with macs, I'm not getting my hopes up...\n\nthanks in advance,\n\n--patrick.                hurh@fnal.fnal.gov\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5855, "properties": {"category": "rec.sport.baseball", "text": "From: hbrooks@uiatma.atmos.uiuc.edu (Harold_Brooks)\nSubject: Re: Spanky Released\nKeywords: WHY!?!\nOrganization: Colorado Needs the Huckabay Kiteball Campaign Committee\nLines: 45\n\nIn article <1993Apr12.130652.22090@sei.cmu.edu> wp@sei.cmu.edu (William Pollak) writes:\n[Deletions]\n>\n>Spanky isn't very good defensively anymore, he's an offensive liability, and,\n>judging from his outburst this winter after the Bucs failed to sign Drabek,\n>he's a jerk with his head in the sand. Tommy Prince, on the other hand, can't\n>hit. In the paper, Simmons was citing the case of Tom Pagnozzi, who never hit\n>in the minors or majors, but suddenly somehow learned how. \n\nGeez, Dal must have slipped something into Ted's drink sometime.  Comparing\nPrince to Pagnozzi offensively is laughable.  Prince has never hit well in\nthe minors and he's now 27 years old, I think.  Pagnozzi was not a bad hitter\nin the minors.  (I'll bring in the numbers tomorrow assuming I don't have\nanother brain cramp and forget.)  He had a very good year at Louisville \nbefore coming up to the majors.  As I recall, the hype on Pagnozzi coming up\nin the organization was good hit, decent fielding.  When he got to the \nmajors and didn't hit as well as expected (not as much playing time?), he \nbecame Exhibit 312 in Nichols' Law of Catcher Defense and got the reputation \nas an outstanding defensive catcher.  It's not clear he ever learned to\nhit.  His four years with more than 100 AB--\n\nBorn 31 July 1962\nYear     AB      BA     SLG     OBA  \n1988    195    .282    .320    .328\n1990    220    .277    .373    .321\n1991    459    .264    .351    .317\n1992    485    .249    .359    .290 \n\nNo power, less-than-league-average walks, peak year when he turned 28, \nnow declining.  If Ted is going to invoke Pagnozzi as a model for Prince,\ngiven that Prince has underperformed Pagnozzi in the minors, it's not\na rosy picture.\n\nBTW, I'm still unhappy with moving Zeile, who had the same reputation \ncoming up in the Cardinal organization as Pagnozzi, except that he was\na much, much better hitter, to 3rd where he could be an average hitter\nand a below average fielder instead of a well-above average hitter\nas an average (or below average) fielding catcher.\n\nHarold\n-- \nHarold Brooks                    hbrooks@uiatma.atmos.uiuc.edu\nNational Severe Storms Laboratory (Norman, OK)\n\"I used to work for a brewery, too, but I didn't drink on the job.\"\n-P. Bavasi on Dal Maxvill's view that Florida can win the NL East in '93\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5856, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Cannanite genocide in the Bible\nLines: 6\nOrganization: Walla Walla College\nLines: 6\n\nexcuse me for my ignorance. But I remember reading once that the \nBiblical tribe known as the Philistines still exists...they are the modern \nday Palestinians.\nAnyone out there with more info, please post it!!!\n\nTammy\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5857, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: Free Moral Agency and Kent S.\nLines: 37\nOrganization: Walla Walla College\nLines: 37\n\nIn article <sandvik-140493185034@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n>From: sandvik@newton.apple.com (Kent Sandvik)\n>Subject: Re: Free Moral Agency and Kent S.\n>Date: Thu, 15 Apr 1993 01:51:57 GMT\n>In article <healta.135.734811375@saturn.wwc.edu>, healta@saturn.wwc.edu\n>(TAMMY R HEALY) wrote:\n>> Ezekiel 28:17 says, Your hart was filled with pride because of all your \n>> beauty; you corrupted your wisdom for the sake of your splendor.  Therefore \n>> I have cast you down the the ground and exposed you helpless before the \n>> curious gaze of Kings.\"\n>\n>> For those of you who are Bible scholars, you knowthat the 1st 11 verses \n>> refer to the Prince of Tyre.  This is a prophesy about and addressed to the \n>> human prince.  Verses 12-19 refer to the King of Tyre, which is a term for \n>> Satan.\n>\n>Tammy, what's the rationale to connect the prince of Tyre with Satan,\n>could you give us more rational bible cites, thanks? I'm afraid that\n>if this is not the case, your thinking model falls apart like a house\n>of cards. But let's see!\n>\n>Cheers,\n>Kent\n>---\n>sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n\nAt the time Ezekiel was written, Israel was in apostacy again and if I'm not \nmistaken, Tyre was about to make war on Israel.  Like I said, the Prince of \nTyre was the human ruler of Tyre.  He was a wicked man.  By calling Satan \nthe King of Tyre, Ezekiel was saying that Satan is the real ruler over Tyre.\n\nDon't think my interpretation is neccessarily the orthodox Christian one, \nalthough most Christian Bible commentaries interpret the King of Tyre as \nbeing a reference to Satan. (I haven't read Ezekiel throughly in a long \ntime.)\n\nTammy\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5858, "properties": {"category": "comp.graphics", "text": "From: DonH@cup.portal.com (Don - Hirschfeld)\nSubject: Re: MS-Windows graphics viewer?\nOrganization: The Portal System (TM)\nLines: 7\n\nCheck out Image Pals v1.2 from U-Lead (until May, special $99 intro price,\n310-523-9393). It has the basic image processing tools for all major formats,\ndoes screen grabbing, and allows all your image files to be calalogged into\na thumbnail database. It's great!\n\n\nDon\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5859, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: NAVSTAR positions\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 7\nNNTP-Posting-Host: access.digex.net\n\n  C-3's bird may be flaking out and expecting to die soon.\n\nor C-3  may orbit over  major users areas, and it may be\nneeded to provide  redundancy on that plane  while b-4  may orbit\nover hicksville, and not have muc of a user community.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5860, "properties": {"category": "sci.med", "text": "From: SFEGUS@ubvm.cc.buffalo.edu\nSubject: Re: Barbecued foods and health risk\nOrganization: University at Buffalo\nLines: 38\nNntp-Posting-Host: ubvm.cc.buffalo.edu\n\nIn article <79857@cup.portal.com>\nmmm@cup.portal.com (Mark Robert Thorson) writes:\n \n>\n>> I don't understand the assumption that because something is found to\n>> be carcinogenic that \"it would not be legal in the U.S.\".  I think that\n>\n>No, there is something called the \"Delany Amendment\" which makes carcinogenic\n>food additives illegal in any amount.  This was passed by Congress in the\n>1950's, before stuff like mass spectrometry became available, which increased\n>detectable levels of substances by a couple orders of magnitude.\n>\n>This is why things like cyclamates and Red #2 were banned.  They are very\n>weakly carcinogenic in huge quantities in rats, so under the Act they are\n>banned.\n>\n>This also applies to natural carcinogens.  Some of you might remember a\n>time back in the 1960's when root beer suddenly stopped tasting so good,\n>and never tasted so good again.  That was the time when safrole was banned.\n>This is the active flavoring ingredient in sassafras leaves.\n>\n>If it were possible to market a root beer good like the old days, someone\n>would do it, in order to make money.  The fact that no one does it indicates\n>that enforcement is still in effect.\n>\n>An odd exception to the rule seems to be the product known as \"gumbo file'\".\n>This is nothing more than coarsely ground dried sassafras leaves.  This\n>is not only a natural product, but a natural product still in its natural\n>form, so maybe that's how they evade Delany.  Or maybe a special exemption\n>was made, to appease powerful Louisiana Democrats.\n \nI think what we have to keep in mind is that even though it may be illegal to\ncommercially produce/sell food with carcinogenic substances, it is not illegal\nfor people to do such to their own food (smoking, etc).  Is this true?\n \n \n \n \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.278+0000", "event": "documents", "entityId": 5861, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: health care reform\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 20\n\nIn article <LMC006@wrc.wrgrace.com> custer@wrc.wrgrace.com (Linda Custer) writes:\n>\n>Also, I'm not sure that physician fees at the very, very highest levels\n>don't have to come down. (I'm not talking about the bulk of physicians\n>making good but not great salaries who have mega-loans from medical school\n>debts.) I'd also like to see some strong ethics with teeth for physicians\n\nI agree that some specialties have gotten way out of line.  The main\nproblem is the payment method for procedures rather than time distorts\nthe system.  I hope they will fix that.  But I'm afraid, as usual,\nthe local doc is going to take the brunt.  People grouse about paying\n$50 to see their home doctor in his office, but don't mind paying\n$20,000 to have brain surgery.  They think their local doc is cheating\nthem but worship the feet of the neurosurgeon who saved their life.\nWhat they don't realize is that we need more local docs and fewer\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5862, "properties": {"category": "talk.religion.misc", "text": "From: b645zaw@utarlg.uta.edu (stephen)\nSubject: Re: A KIND and LOVING God!!\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: utarlg.uta.edu\nOrganization: The University of Texas at Arlington\nLines: 45\n\nIn article <sandvik-160493205355@sandvik-kent.apple.com>, \nsandvik@newton.apple.com (Kent Sandvik) writes...\n\n>(stephen) wrote:\n>> sandvik@newton.apple.com (Kent Sandvik) quotes ML...\n\n>> >> Remember, these laws were written for a different time and applied\n>> >> only to God's chosen people.  But Jesus has changed all of that.  We\n>> >> are living in the age of grace.  Sin is no longer immediately punishable\n>> >> by death.  There is repentance and there is salvation through our\n>> >> Lord Jesus Christ.  And not just for a few chosen people.  Salvation\n>> >> is available to everyone, Jew and Gentile alike. \n>> >\n>> >Jews won't agree with you, Malcolm.\n>> \n>> Which Jews KS? \n> \n>Most religious Jews with the exception of the Messianic ones and \n>atheists/agnostics, Malcolm.\n\nKS, I see you're wanting Malcolm's response. Allow me one last inter-\njection then please:\n\nDistinguishing among the religious Jews, you've excepted the Messianic\nfor obvious reasons. Specifically, are you saying it's these religious \nJews, who trace their lineage back to Abraham by blood and orthodoxy, \nrather than by faith, who won't agree?  Orthodox Jews?  \n\nAs to the a/a (if I understand your direction), the issue remains \nunproven I suspect, considering how atheists and agnostics so often \nlook to reason. Atheist, it is reasonable to conclude will not agree.\nFor agnostics, a poll seems in order. Who knows?  Myself, I'm not so \nsure the atheists can be counted out. \n\nFor the orthodox, I wonder how many would follow Moses, or Abraham,\nor David in accepting God's Word? Is the particular covenant to which\none adheres, more important than God promisimg? I reckon for many it\ndepends on the ongoing dialogue. Under these considerations, you might \nunderstand why I think it's premature to assert who will and won't agree.\n\n   |\n-- J --\n   |\n   | stephen\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5863, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: guns in backcountry? no thanks\nOrganization: Hand Held Products, Inc.\nLines: 59\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <0096B294.AAD9C1E0@uinpla.npl.uiuc.edu> reimer@uinpla.npl.uiuc.edu  \n(Paul E. Reimer) writes:\n> In article <1qkftjINNoij@cronkite.cisco.com>, pitargue@cisco.com (Marciano  \nPitargue) writes:\n> \n> [stuff deleted about causes of people in ER]\n> \n> >and your factoid about shooting victims in the ER.  count how many come in\n> >due to automobile accidents and automobile crimes.  maybe we should outlaw\n> >cars.\n> >marciano pitargue@cisco.com\n> \n> There are a lot of automobile accidents, but atleast there is some\n> regulation to try to combat this.  \n\nSuch as?  Drunk drivers get back on the road in no time, to kill again.  Seems  \nthe driver's license process does not work for this.\n\n> When I got my drivers license, I HAD\n> to take a drivers safety class.  \n\nBecause you wanted one while you were underage.\n\n> I HAVE to be licensed to drive.  \n\nOnly on public roads.\n\n> My car\n> MUST be registered.  \n\nOnly if it is to be driven on public roads, other than between segments of my  \nproperty.\n\n> I MUST (at least where I live) have liability\n> insurance on both myself driving and my car (if someone else had an\n> accident with it).  \n\nOnly on public roads.\n\n> Hmm, wouldn't manditory saftey classes, registration\n> of both the owner and gun, and manditory liability insurance be nice for\n> gun owners.\n\nPerhaps, if it gave them permission to shoot in public roads and parks. :-)\n\n> \n> Paul Reimer\n> reimer@uinpluxa.npl.uiuc.edu\n\nJim\n\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5864, "properties": {"category": "soc.religion.christian", "text": "From: jdt@voodoo.ca.boeing.com (Jim Tomlinson (jimt II))\nSubject: An agnostic's question\nOrganization: BoGART To You Buddy, Bellevue, WA\nLines: 24\n\nPardon me if this is the wrong newsgroup.  I would describe myself as\nan agnostic, in so far as I'm sure there is no single, universal\nsupreme being, but if there is one and it is just, we will surely be\njudged on whether we lived good lives, striving to achieve that\ngoodness that is within the power of each of us.  Now, the\ncomplication is that one of my best friends has become very\nfundamentalist.  That would normally be a non-issue with me, but he\nfeels it is his responsibility to proselytize me (which I guess it is,\naccording to his faith).  This is a great strain to our friendship.  I\nwould have no problem if the subject didn't come up, but when it does,\nthe discussion quickly begins to offend both of us: he is offended\nbecause I call into question his bedrock beliefs; I am offended by\nwhat I feel is a subscription to superstition, rationalized by such\ncircular arguments as 'the Bible is God's word because He tells us in\nthe Bible that it is so.'  So my question is, how can I convince him\nthat this is a subject better left undiscussed, so we can preserve\nwhat is (in all areas other than religious beliefs) a great\nfriendship?  How do I convince him that I am 'beyond saving' so he\nwon't try?  Thanks for any advice.\n\n-- \nJim Tomlinson                          206-865-6578  \\  \"falling snow\nBoGART Project              jdt@voodoo.ca.boeing.com  \\  excellent snow\"\nBoeing Computer Services   ...uunet!bcstec!voodoo!jdt  \\  - Anderson/Gabriel\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5865, "properties": {"category": "rec.autos", "text": "From: zaphod@madnix.uucp (Ron Bean)\nSubject: Re: RFI: Art of clutchless shifting\nOrganization: ARP Software\nLines: 30\n\njong@halcyon.com (Barking Weasel) writes:\n \n>schludermann@sscvx1.ssc.gov writes:\n \n>>My technique is to ease back off the throttle and at the same time gently\n>>wrist back on the shift lever. If for some reason I miss the shift window,\n>>I lightly press the accelerator & try agian. I've found that clutchless\n>>shifting is eaiser/quicker at high rpms (4000-7000). I also skip gears some\n>>times using 1-3-5 ,1-2-4-5.\n>\n>        Sounds about right.  I usually slip it out during throttle-down\n>and then blip the throttle and wait until it feels like things are right\n>(usually about a second) and then slip it into gear...\n \n   So, how did you guys *learn* this? Is it something you were\nborn with, or did you make horrible grinding noises the first few\ntimes? (how many times?)\n \n   I would think you'd have to have a certain amount of \"feel\"\nfor it to begin with. Some people would never get it, and others\n(like me) would never have the guts to try it, unless maybe you\nwere planning to buy a new transmission anyway...\n \n   (BTW, I've heard that quite a few truckers and race car\ndrivers shift this way).\n \n==================\nzaphod@madnix.UUCP (Ron Bean)\nuwvax!astroatc!nicmad!madnix!zaphod\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5866, "properties": {"category": "rec.autos", "text": "From: vinlai@cbnewsb.cb.att.com (vincent.lai)\nSubject: Third party car antennas ...\nOrganization: AT&T\nDistribution: na\nLines: 32\n\n\nSince this posting, I've received no replies or followups, so I'm posting\nhere hoping for the feedback I didn't get in rec.audio.car:\n\narticle number - 9855\nNewsgroups: rec.audio.car\nPath: cbfsb!cbnewsb.cb.att.com!vinlai\nFrom: vinlai@cbnewsb.cb.att.com (vincent.lai)\nSubject: Third party car antennas ...\nMessage-ID: <1993Apr13.202333.28657@cbfsb.cb.att.com>\nSender: news@cbfsb.cb.att.com\nOrganization: AT&T\nDistribution: na\nDate: Tue, 13 Apr 1993 20:23:33 GMT\n\nI recently saw a particular third party antenna on a new Camry (not mine,\nbut it caught my interest) and a new 626.  It seems to replace the\nfactory power antenna and is about a foot long made of plastic tubing.  I\nhave seen them on quite a few cars, but I can't find anything more about\nthem in previous r.a.c articles nor in r.a articles.\n\nI'd like to know all I can, so any feedback is greatly appreciated.\n\n------------------------------------------------------------------\n\"Mom, we're hungry!\" - Bud Bundy        \"Why tell me?\" - Peg Bundy\n\nVincent Lai\n\nvinlai@cbnewsb.att.com forwards mail to\nvlai@attmail.com which eventually winds up in\nwcmnja!lai@somerset.att.com\n------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5867, "properties": {"category": "sci.crypt", "text": "From: schneier@chinet.chi.il.us (Bruce Schneier)\nSubject: Re: An Open Letter to Mr. Clinton\nOrganization: Chinet - Public Access UNIX\nLines: 13\n\nIn article <strnlghtC5M2Cv.8Hx@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>\n>Here's a simple way to convert the Clipper proposal to an unexceptionable\n>one: Make it voluntary.\n>\n>That is--you get high quality secure NSA classified technology if you agree\n>to escrow your key. Otherwise you are on your own.\n>\n\nAs long as \"you are on your own\" means that you can use your own encryption,\nI'm sold.\n\nBruce\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5868, "properties": {"category": "rec.motorcycles", "text": "From: svoboda@rtsg.mot.com (David Svoboda)\nSubject: Re: Happy Easter!\nNntp-Posting-Host: corolla18\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 14\n\nIn article <1qt0jo$2fj@vtserf.cc.vt.edu> ranck@joesbar.cc.vt.edu (Wm. L. Ranck) writes:\n|\n|Hey!  I wasn't picking on Morgan.  They use old technology.  That's all\n|I said.  There's nothing wrong with using old technology.  People still\n|use shovels to dig holes \n\nWell, you really can't dig a hole with a stock Shovel; you at least need some\nperformance mods like stroking and cams.  Besides, it's REAL bad on the\nrear tire.\n\nDave Svoboda (svoboda@void.rtsg.mot.com)    | \"I'm getting tired of\n90 Concours 1000 (Mmmmmmmmmm!)              |  beating you up, Dave.\n84 RZ 350 (Ring Ding) (Woops!)              |  You never learn.\"\nAMA 583905  DoD #0330  COG 939  (Chicago)   |  -- Beth \"Bruiser\" Dixon\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5869, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ccastco@prism.gatech.EDU (Constantinos Malamas)\nSubject: Re: More Cool BMP files??\nOrganization: Georgia Institute of Technology\nLines: 31\n\n>In article <1993Apr17.023017.17301@gmuvax2.gmu.edu> rwang@gmuvax2.gmu.edu writes:\n> > Hi, everybody:\n> >     I guess my subject has said it all.  It is getting boring\n> > looking at those same old bmp files that came with Windows.  So,\n> > I am wondering if there is any body has some beautiful bmp file\n> > I can share.  Or maybe somebody can tell me some ftp site for\n> > some bmp files, like some scenery files, some animals files,\n> > etc....  I used to have some, unfortunately i delete them all.\n>Eric\n\n\tHmmm, let's see: I could upload some .BMP files (I have around 15\nb/w and color ones), but I'd rather give you the fishing pole instead of the\nfish:Here it goes:  \n      Begginers guide to the coolest Windows backgrounds:\nStep 1: ftp to cica (ftp.cica.indiana.edu user:anonymous passwd: guest)\ncd to pub/pc/win3/(util?desktop?) and get one of these : wingif14.zip,\npspro??.zip gws?????.zip . They will scale, dither and convert GIFs to BMPs.\nget the index file from the win3 subdir too for future reference...\nStep 2: ftp to wuarchive.wustl.edu or plaza.aarnet.edu.au or archive.orst.edu\nand cd to graphics/gif GET THE INDEX FILE... Now GigaBytes of pictures\nare waiting to become your desktop... \nAdvice: If you have a slow computer (<486DX w/4MB RAM), make your bg b/w\nby selecting b/w dither in any of the abovementioned apps..\nHope it helps...\n\n\n-- \nCostas Malamas ____________________________________________________________\nGeorgia Institute of Technology \nOIT UA -- Opinions expressed are not necessarily OIT's... \nInternet: ccastco@prism.gatech.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5870, "properties": {"category": "sci.electronics", "text": "From: xandor@unixg.ubc.ca (John Gilbert )\nSubject: Re: Exploding TV!\nOrganization: The University of British Columbia\nLines: 4\nDistribution: usa\nNNTP-Posting-Host: unixg.ubc.ca\n\n Just as a not of possible interest on this subject ..\nIt is my understanding that exploding televisions were a major cause of\ndomestic accidents in the Soviet Union in past years!\n  \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5871, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsd.cc.buffalo.edu (Robert Weiss)\nSubject: [lds] Rick's reply\nOrganization: University at Buffalo\nLines: 201\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsd.cc.buffalo.edu\n\nRick Anderson replied to my letter with...\n\nra> In article <C5ELp2.L0C@acsu.buffalo.edu>,\nra> psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss) says:\nra>\nra> >     Well, Jason, it's heretical in a few ways. The first point is that\nra> >     this equates Lucifer and Jesus as being the same type of being.\nra> >     However, Lucifer is a created being: \"Thou [wast] perfect in thy\nra> >     ways from the day that thou wast created, till iniquity was found in\nra> >     thee.\" (Ezekiel 28:15). While Jesus is uncreated, and the Creator of\nra> >     all things: \"In the beginning was the Word, and the Word was with\nra> >     God, and the Word was God.  The same was in the beginning with God.\nra> >     All things were made by him; and without him was not any thing made\nra> >     that was made.\" (John 1:1-3) \"And he is before all things, and by\nra> >     him all things consist.\" (Colossians 1:17)\nra>\nra>    Your inference from the Ezekiel and John passages that Lucifer was\nra> \"created\" and that Jesus was not depends on a particular interpetation of\nra> the word \"create\" -- one with which many Christians may not agree.\nra> Granted the Mormon belief that all of God's children (including Christ\nra> and Lucifer) are eternally existent intelligences which were \"organized\"\nra> into spirit children by God, the term \"creation\" can apply equally well\nra> to both of those passages.\n\n     Just briefly, on something that you mentioned in passing. You refer to\n     differing interpretations of \"create,\" and say that many Christians may\n     not agree. So what? That is really irrelevant. We do not base our faith\n     on how many people think one way or another, do we? The bottom line is\n     truth, regardless of popularity of opinions.\n\n     Also, I find it rather strange that in trying to persuade that created\n     and eternally existent are equivalent, you say \"granted the Mormon\n     belief...\" You can't grant your conclusion and then expect the point to\n     have been addressed. In order to reply to the issue, you have to address\n     and answer the point that was raised, and not just jump to the\n     conclusion that you grant.\n\n     The Bible states that Lucifer was created.  The Bible states that Jesus\n     is the creator of all. The contradiction that we have is that the LDS\n     belief is that Jesus and Lucifer were the same.\n\nra> >     Your point that we all are brothers of Jesus and Lucifer is also\nra> >     heretical, since we are not innately brothers and sisters of Christ.\nra> >     We are adopted, \"For ye have not received the spirit of bondage\nra> >     again to fear; but ye have received the Spirit of adoption, whereby\nra> >     we cry, Abba, Father.\" (Romans 8:15); and not the natural children\nra> >     of God. It is only through faith that we even enter the family of\nra> >     God; \"For ye are all the children of God by faith in Christ Jesus.\"\nra> >     (Galatians 3:26). And it is only through the manifestation of this\nra> >     faith in receiving Jesus that we are become the sons of God.  \"But\nra> >     as many as received him, to them gave he power to become the sons of\nra> >     God, [even] to them that believe on his name: Which were born, not\nra> >     of blood, nor of the will of the flesh, nor of the will of man, but\nra> >     of God.\" (John 1:12-13)\nra>\nra>    Has it occured to you, Robert, that being \"born of\" someone or being\nra> of that person (or Person)'s \"family\" may be a symbolic term in the New\nra> Testament?  Mormons believe that we are \"adopted\" into the House of\nra> Israel through baptism and faith in Christ, although some have expressed\nra> belief that this does evince a physical change in our bodies.\n\n     The Mormon belief is that all are children of God. Literally. There is\n     nothing symbolic about it. This however, contradicts what the Bible\n     says. The Bible teaches that not everyone is a child of God:\n\n          The field is the world; the good seed are the children of the \n          kingdom; but the tares are the children of the wicked [one];\n          (Matthew 13:38)\n\n          I speak that which I have seen with my Father: and ye do that which \n          ye have seen with your father. (John 8:38)\n\n          Ye do the deeds of your father. Then said they to him, We be not \n          born of fornication; we have one Father, [even] God.  Jesus said \n          unto them, If God were your Father, ye would love me: for I \n          proceeded forth and came from God; neither came I of myself, but he \n          sent me.  Why do ye not understand my speech? [even] because ye \n          cannot hear my word.  Ye are of [your] father the devil, and the \n          lusts of your father ye will do. He was a murderer from the \n          beginning, and abode not in the truth, because there is no truth in \n          him. When he speaketh a lie, he speaketh of his own: for he is a \n          liar, and the father of it. (John 8:41-44)\n\n          And said, O full of all subtilty and all mischief, [thou] child of \n          the devil, [thou] enemy of all righteousness, wilt thou not cease \n          to pervert the right ways of the Lord? (Acts 13:10)\n\n          Wherein in time past ye walked according to the course of this \n          world, according to the prince of the power of the air, the spirit \n          that now worketh in the children of disobedience: (Ephesians 2:2)\n\n          In this the children of God are manifest, and the children of the \n          devil: whosoever doeth not righteousness is not of God, neither he \n          that loveth not his brother. (1 John 3:10)\n\n     One becomes a child of God...\n\n          But as many as received him, to them gave he power to become the\n          sons of God, [even] to them that believe on his name: (John 1:12)\n\n          Behold, what manner of love the Father hath bestowed upon us, that\n          we should be called the sons of God: therefore the world knoweth us\n          not, because it knew him not.  Beloved, now are we the sons of God,\n          and it doth not yet appear what we shall be: but we know that, when\n          he shall appear, we shall be like him; for we shall see him as he\n          is. (1 John 3:1-2)\n\n     ...when he is born again through faith in Jesus Christ:\n\n          Which were born, not of blood, nor of the will of the flesh, nor of\n          the will of man, but of God. (John 1:13)\n\n          Having predestinated us unto the adoption of children by Jesus\n          Christ to himself, according to the good pleasure of his will,\n          (Ephesians 1:5)\n\n          Of his own will begat he us with the word of truth, that we should\n          be a kind of firstfruits of his creatures. (James 1:18)\n\n          For as many as are led by the Spirit of God, they are the sons of\n          God. For ye have not received the spirit of bondage again to fear;\n          but ye have received the Spirit of adoption, whereby we cry, Abba,\n          Father. The Spirit itself beareth witness with our spirit, that we\n          are the children of God: (Romans 8:14-16)\n\n          Beloved, let us love one another: for love is of God; and every one\n          that loveth is born of God, and knoweth God. (1 John 4:7)\n\n          Whosoever believeth that Jesus is the Christ is born of God: and\n          every one that loveth him that begat loveth him also that is\n          begotten of him. (1 John 5:1)\n\n          For ye are all the children of God by faith in Christ Jesus.\n          (Galatians 3:26)\n\nra> >     We are told that, \"And this is life eternal, that they might know\nra> >     thee the only true God, and Jesus Christ, whom thou hast sent.\"\nra> >     (John 17:3). Life eternal is to know the only true God. Yet the\nra> >     doctrines of the LDS that I have mentioned portray a vastly\nra> >     different Jesus, a Jesus that cannot be reconciled with the Jesus of\nra> >     the Bible. They are so far removed from each other that to proclaim\nra> >     one as being true denies the other from being true. According to the\nra> >     Bible, eternal life is dependent on knowing the only true God, and\nra> >     not the construct of imagination.\nra>\nra>\nra>    Robert, with all due respect, who died and left you Chief Arbiter of\nra> Correct Biblical Interpretation?  I don't mean to be snotty about this,\nra> but the fact is that the Bible is so differently interpreted by different\nra> groups of Biblical scholars (what do you think of the Jehovah's\nra> Witnesses, for example?) that to make reference to the \"Jesus of the\nra> Bible\" is simply ridiculous.  Whose \"Jesus of the Bible\" do you mean?\n\n     This is really a red herring. It doesn't address any issue raised, but \n     rather, it seeks to obfuscate. The fact that some groups try to read \n     something into the Bible, doesn't change what the Bible teaches. For \n     example, the fact that the Jehovah's Witnesses deny the Deity of Christ \n     does not alter what the Bible teaches [ \"Looking for that blessed hope,\n     and the glorious appearing of the great God and our Saviour Jesus\n     Christ;\" (Titus 2:13),\"Simon Peter, a servant and an apostle of Jesus\n     Christ, to them that have obtained like precious faith with us through\n     the righteousness of God and our Saviour Jesus Christ:\" (2 Peter 1:1)] \n     on the Deity of Christ.\n\n     We first look to the Bible to see what it teaches. To discount, or not \n     even address, what the Bible teaches because there are some groups that \n     have differing views is self-defeating. To see what the Bible teaches, \n     you have to look at the Bible.\n\nra> >     \"Our Lord's mortality was essential to his own salvation\" (_The\nra> >     Promised Messiah_, p. 456), \"He had to work out his own salvation by\nra> >     doing the will of the Father in all things\" (ibid., p.54), \"he had\nra> >     to be baptized to gain admission to the celestial kingdom\" (_Mormon\nra> >     Doctrine_, p.71).\nra>\nra>    Welcome to the wonderful world of Mormon paradoctrine, Robert.  The\nra> above books are by the late Bruce R. McConkie, a former general authority\nra> of the LDS Church.  Those books were not published by the Church, nor do\nra> they constitute \"offical doctrine.\"  They consist of his opinions.  Now,\nra> does that mean that what he says is not true?  Not at all; I'll have to\nra> think about the idea of Christ's personal salvation before I come to any\nra> conclusions myself.  The conclusions I come to may seem \"heretical\" to\nra> you, but I'm prepared to accept that.\n\n     I find this rather curious. When I mentioned that the Mormon belief is\n     that Jesus needed to be saved, I put forward some quotes from the late\n     apostle, Bruce McConkie. The curious part is that no one addressed the\n     issue of `Jesus needing to be saved.' Rick comes the closest with his \"I\n     have my own conclusions\" to addressing the point.\n\n     Most of the other replies have instead hop-scotched to the issue of\n     Bruce McConkie and whether his views were 'official doctrine.' I don't\n     think that it matters if McConkie's views were canon. That is not the\n     issue.  Were McConkie's writings indicative of Mormon belief on this\n     subject is the real issue. The indication from Rick is that they may \n     certainly be.\n\n\n=============================\nRobert Weiss\npsyrobtw@ubvms.cc.buffalo.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5872, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Prayer in Jesus' Name\nOrganization: Indiana University\nLines: 42\n\nIn article <Apr.9.01.09.22.1993.16580@athos.rutgers.edu> munns@cae.wisc.edu (Scott Munns) writes:\n>I am doing a dormitory bible \"discussion\" with my Christian roommate and\n>in Jesus' name, what about the people before Jesus?  They prayed to God\n>and he listened then, in spite of their sins.  Why can't it be the same\n>way now?\"\n>\n\n[insert huge deletion of all following material since it had little\nrelevance to what I've found]\n\nOK.  The people before Jesus didn't have Jesus, right (so far, I've\nannounced that space is a vacuum)?  The people who lived during the time\nJesus lived (especially disciples) were taught this:  \"I tell you the\ntruth, anyone who has faith in me will do what I have been doing.  He\nwill do even greater things than these, because I am going to the\nFather.  And I will do whatever you ask in my name, so that the Son may\nbring glory to the Father.  You may ask me for anything in my name, and\nI will do it.\" (John 14:12-14)\nSo, Jesus asked them to pray for things in his name.  Since that time,\nthe request has been the same, not to ask for intercession from other\nbeings, but from Jesus.  Remember that \"there is one God and one\nmediator between God and men, the man Christ Jesus, who gave himself as\na ransom for all men--the testimony given in its proper time.\" (1\nTimothy 2:5-6.  Also, \"there have been many of those priests [talking\nabout priests among the Hebrews], since death prevented them from\ncontinuing in office; but because Jesus lives forever, he has a\npermanent priesthood.  Therefore he is able to save completely those who\ncome to God through him, because he always lives to intercede for them.\"\n(Hebrews 7:23-25).  Hebrews is also full of areas talking about Jesus\nbeing our mediator rather than any other man.\n\nJoe Fisher\n\n[\"The people before Jesus didn't have Jesus, right\" may not be as\nobvious as you think.  In what sense to you mean didn't have?\nChristian thought has generally said that they had Jesus in the sense\nthat they were saved by his death.  God is not bound by our\nchronology.  So in some real spiritual sense they did \"have Jesus\".\nEven in terms of knowledge, while they surely didn't have the explicit\nknowledge that we have, Christians have normally seen messianic\nprophecy as knowledge of Jesus, even if knowledge from afar.\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5873, "properties": {"category": "misc.forsale", "text": "From: gregh@hprnd.rose.hp.com (Greg Holdren)\nSubject: 40 Meg IDE Harddrive\nOrganization: Hewlett Packard Roseville Site\nLines: 12\nNNTP-Posting-Host: hprnd.rose.hp.com\nX-Newsreader: TIN [version 1.1 PL8.8]\n\n\n\n\nWestern Digital 3.5\" IDE 40 Meg Hard drive.\n$95 or BO.\n+ shipping\n\n\nGreg Holdren  (916)785-7481\ngregh@hprnd.rose.hp.com\ngeh@mothra.rose.hp.com\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5874, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: President's Public Schedule 4.15.93\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 51\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n                                                                  \nFor Immediate Release                              March 14, 1993\n\n\n          PUBLIC EVENTS ON THE PRESIDENT'S SCHEDULE FOR\n          THURSDAY, APRIL 15, 1993\n     \t     \n     10:20 am EST   The President meets with Leadership of Law \t  \n               enforcement organizations -- The Rose           \t  \n     Garden\n     \t       \t    \t \n     \t       \t    \t      OPEN PRESS\n\n     3:00 AM EDT    The President meets with the National      \t  \n     \t  Ambassador for the March of Dimes Birth      \t    \t \n     Defects Foundation -- The Oval Office\n     \t  \n     \t       \t    \t TV POOL, OPEN STILL PHOTO, WRITING POOL\n     \n     3:15 AM EDT    The President meets with Mosaic Minstrels of \n     \t       \t    New York, NY -- The Rose Garden\n\n     \t       \t    \t OPEN PHOTO, WRITING POOL\n\n     3:30 AM EDT    The President meets with the Berwick, PA, \t  \n     \t       High School Bulldogs, AAA State Football      \t  \n     \t  Champions -- The South Lawn\n\n     \t       \t    \t OPEN PHOTO, WRITING POOL\n\n     \t       \t               UPCOMING EVENTS ON THE PRESIDENT'S \nSCHEDULE\n\n     \t       \t    \t \n     \t       \n     \t       April 16, 1993      The President meets with \t \n     \t       \t    \t      Japanese Prime Minister  \t    \t \n     \t       \t    \t Miyazawa, The White House\n\n     \t       April 26, 1993      President Clinton meets with   \n     \t       \t    \t      President Amato of Italy, The \t \n     \t       \t    \t      White House\n\n                            -30-30-30\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5875, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rcampbel@weejordy.physics.mun.ca (Roderick Campbell)\nSubject: Re: PC/Geos, Windows, OS/2, and Unix/X11\nReply-To: rcampbel@weejordy.physics.mun.ca\nOrganization: Dept. of Physics, Memorial University\nLines: 61\n\nIn article <sehari.734022369@vincent2.iastate.edu>, sehari@iastate.edu (Babak Sehari) writes:\n|> ---\n|> \n|> \n|> \n|> With my limited knowladge about the PC Geos, I came out with following \n|> comparison:\n|> \n|>                  PC Geos      Windows       OS/2    Unix/X11\n|>                 ________      _______       ____    _______\n|> \n|> 1. Can run dos\n|>    programs        yes           yes         yes     yes(needed add.)\n|> \n\n[lines deleted]\n\n|> \n|> 7. price          $120          $70         $120     free-$1000s\n|>                                                      A good one\n|>                                                      costs $400-$700 \n|>                                                      avaliable on Ext.\n|>                                                      card too.\n|> \n|> 8. C compiler Don't think so    yap          yap     yap\n|> \n|> 9. C++           no             Yap          Yap     Yap\n|> \n|> 10. Fortran      no             yap          yap     yap\n|> \n|> 11. debuger      ?              yap           yap    yap\n|> \n|> 12. min to run   dos        2M & 10Mb-Hard     ?     386\n|> \n|> You guys and gals add to this list, so we do not throw our many down the \n|> tubes.\n|> \n|>                       With highest regards,\n|>                            Babak   Sehari.\n|> \n\nThis list appears to imply, that MS-windows that has a cost listed\nabove at $70, comes with a C compiler, C++ and Fortran. It does not, of\ncourse. These are expensive add-ons that drive the price WAY beyond $70.\n( I don't know if the same applies to OS/2 )\n\nAs far as unix is concerned;\nThere is a free unix, linux, that has cc, ~c++, fortran ( f2c ),\nXwindows and many other features besides, with a large number of utilities\nthat can be optionally added. And there is also a free 386BSD I believe.\nBoth these unix's are quite robust. You can check out comp.os.linux\n\nIf you don't want to \"throw our many down the tubes\", you've got to break\nthat list down a little more.\n\n-- \nRoderick Campbell\nDepartment of Physics\nMemorial University of Newfoundland\nSt. John's, NF, CANADA\ninternet: rcampbel@weejordy.physics.mun.ca\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5876, "properties": {"category": "soc.religion.christian", "text": "From: mdw33310@uxa.cso.uiuc.edu (Michael D. Walker)\nSubject: Re: Satan kicked out of heaven: Biblical?\nOrganization: University of Illinois at Urbana\nLines: 27\n\neasteee@wkuvx1.bitnet writes:\n\n>Hello all,\n>     I have a question about Satan.  I was taught a long time ago\n>that Satan was really an angel of God and was kicked out of heaven\n>because he challenged God's authority.  The problem is, I cannot\n>find this in the Bible.  Is it in the Bible?  If not, where did it\n>originate?\n\n>Wondering,\n>Eddie\n\n\tThe quick answer:  Revelation 12:7-9\n\n\t\"And there was war in heaven.  Michael and his angels fought against\n\tthe dragon and his angels who fought back.  But he [the dragon] was\n\tnot strong enough, and they lost their place in heaven.  The great\n\tdragon was hurled down--that ancient serpent, called the devil and\n\tSatan, who leads the whole world astray.  He was hurled down to the\n\tearth, and his angels with him.\"\n\n\tThe earlier part of chapter 12 deals (very symbolically) with why\n\tSatan rose up in battle against Michael and the good angels in the\n\tfirst place.\n\n\tHope this clears it up.  \n\t\t\t\t\t\t- Mike Walker\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5877, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cs3sd3ae@maccs.mcmaster.ca (Holly       KS)\nSubject: Re: Western Digital HD info needed\nNntp-Posting-Host: maccs.dcss.mcmaster.ca\nOrganization: Department of Computer Science, McMaster University\nLines: 11\n\nMy Western Digital also has three sets of pins on the back. I am using it with\nanother hard drive as well and the settings for the jumpers were written right \non the circuit board of the WD drive......MA SL ??\n\nI can't remember what the last one was. If you can't find these markings on the\ncircuit board, I'll open my machine and tell you what mine are.......\n\nKevin Holly\nMcMaster University, Hamilton, Ontario\nhollyk@mcmail.cis.mcmaster.ca\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5878, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Re: How to detect use of an illegal cipher?\nOrganization: ClariNet Communications Corp.\nLines: 16\n\nIn article <C5nMB1.CoF@news.claremont.edu> ebrandt@jarthur.claremont.edu (Eli Brandt) writes:\n>get their copy of your key.  Any criminal who's going to use\n>encryption will do it under cover of Clipper.  The only way to avoid\n>this will be to try to prohibit strong encryption.\n\nThis isn't true.  Today's criminals regularly use all sorts of unsafe\nmethods, from cordless phones to cellular phones to plain old copper\nwire analog phones that you can put alligator clips on to plan and\nexecute their crimes.\n\nIt is amazing how stupid they are, which is why the FBI was so keen on\nthe digital telphony law, and its successor the clipper chip.  They're\nhoping here that most crooks will remain stupid, feel safe using clipper\nchip phones and get caught.\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5879, "properties": {"category": "sci.med", "text": "From: thom@morgan.ucs.mun.ca (Thomas Clancy)\nSubject: Re: Thrush ((was: Good Grief! (was Re: Candida Albicans: what is it?)))\nOrganization: Memorial University of Newfoundland\nLines: 55\n\ndyer@spdcc.com (Steve Dyer) writes:\n\n>In article <21APR199308571323@ucsvax.sdsu.edu> mccurdy@ucsvax.sdsu.edu (McCurdy M.) writes:\n>>Dyer is beyond rude. \n\nI'll drink to that.\n\n>Yeah, yeah, yeah.  I didn't threaten to rip your lips off, did I?\n>Snort.\n\n>>There have been and always will be people who are blinded by their own \n>>knowledge and unopen to anything that isn't already established. Given what \n>>the medical community doesn't know, I'm surprised that he has this outlook.\n\n>Duh.\n\nNice to see Steve still has his high and almighty intellectual prowess \nin tact.\n\n>>For the record, I have had several outbreaks of thrush during the several \n>>past few years, with no indication of immunosuppression or nutritional \n>>deficiencies. I had not taken any antobiotics. \n\n>Listen: thrush is a recognized clinical syndrome with definite\n>characteristics.  If you have thrush, you have thrush, because you can\n>see the lesions and do a culture and when you treat it, it generally\n>responds well, if you're not otherwise immunocompromised.  Noring's\n>anal-retentive idee fixe on having a fungal infection in his sinuses\n>is not even in the same category here, nor are these walking neurasthenics\n>who are convinced they have \"candida\" from reading a quack book.\n\nYawn...\n\n>>My dentist (who sees a fair amount of thrush) recommended acidophilous:\n>>After I began taking acidophilous on a daily basis, the outbreaks ceased.\n>>When I quit taking the acidophilous, the outbreaks periodically resumed. \n>>I resumed taking the acidophilous with no further outbreaks since then.\n\n>So?\n\nExactly my question to you, Steve. What's your point? This person had\none, you didn't\n\n>-- \n>Steve Dyer\n\nNice to see that some things never change, Steve, if you aren't being\nignorant in one group [*.alternative] you're into another. One positive\nthing came out of it, you are no longer bothering the folks in \n*.alternative, it's just a shame that these people have to suffer so\nthat others may breath freely. \n \nSorry for wasting bandwidth folks. Don't forget to bow down once\nevery second day, and to offer your first born to the almight \nomniscient, omnipotent, Mr. Steve.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5880, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ab220@Freenet.carleton.ca (Michel Dozois)\nSubject: Re: PowerBook Batteries\nReply-To: ab220@Freenet.carleton.ca (Michel Dozois)\nOrganization: The National Capital Freenet\nLines: 20\n\n\nIn a previous article, gil@cc.gatech.edu (Gil Neiger) says:\n\n>I have a few questions about PowerBook batteries, specifically,\n>the NiCad batteries I have for my PB170.\n>\n>2.  Can the PowerBook run without any battery if the charger is\n>plugged in?\n\nNo problems.\n-- \nMichel Dozois - Gloucester, Ontario, Canada - ab220@freenet.carleton.ca\n\t- Membre du Club de cerf-volant de l'Outaouais {OVKC} \n\t\t- Membre du National Capital Macintosh Club {NCMC}\n\t\t\t- Membre du Jungle BBS {un babillard Macintosh}\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5881, "properties": {"category": "comp.windows.x", "text": "From: brown@ftms.UUCP (Vidiot)\nSubject: Re: Printing ASCII 128 and above\nReply-To: brown@ftms.UUCP (Vidiot)\nOrganization: Vidiot's Other Hangout\nLines: 19\n\nIn article <C5G1CE.8Is@noose.ecn.purdue.edu> achar@ecn.purdue.edu (Lakshminarayana Achar) writes:\n<Could some tell me how to print characters over ASCII 127 on a laser\n<printer? After being thrilled on being able to create them on my\n<screen, my enthusiasm has somewhat died down due to this setback.\n\nWell, more information is required...\n\n1) What computer are you using?\n2) What operating system are you using?\n3) What kind of printer are you using?\n\ta) PostScript?\n\tb) HP-PCL?\n\netc.\n-- \nharvard\\\n  ucbvax!uwvax!astroatc!ftms!brown  or  uu2.psi.com!ftms!brown\nrutgers/\nINTERNET: brown@wi.extrel.com  or  ftms!brown%astroatc.UUCP@cs.wisc.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5882, "properties": {"category": "rec.autos", "text": "From: andyh@chaos.cs.brandeis.edu (Andrew J. Huang)\nSubject: Re: Quick question\nKeywords: Removing panels.\nOrganization: Brandeis University\nLines: 12\n\nIn article <1993Apr5.211457.12789@ole.cdac.com> ssave@ole.cdac.com (The Devil Reincarnate) writes:\n> How do you take off the driver side door panel from the inside\n>on an '87 Honda Prelude?  The speaker went scratchy, and I want\n>to access its pins.\n>\n\nThere is something going on here.  It seems that once a month, the VW\ngroup must have get a specific detailed question about Hondas.  I\nwould like to ask that next month we get one about Hyundai instead of\nHonda.  Thank you.\n\n-andy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5883, "properties": {"category": "sci.space", "text": "From: xrcjd@resolve.gsfc.nasa.gov (Charles J. Divine)\nSubject: Science News article on Federal R&D\nOrganization: NASA/GSFC Greenbelt Maryland\nLines: 8\n\nJust a pointer to the article in the current Science News article\non Federal R&D funding.\n\nVery briefly, all R&D is being shifted to gaining current \ncompetitive advantage from things like military and other work that\ndoes not have as much commercial utility.\n-- \nChuck Divine\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.279+0000", "event": "documents", "entityId": 5884, "properties": {"category": "comp.windows.x", "text": "From: gpatapis@boyd.tansu.com.au (George Patapis)\nSubject: Re: DESQview/X on a PC?\nOrganization: AOTC - CSSC\nLines: 42\nDistribution: world\nReply-To: gpatapis@boyd.tansu.com.au\nNNTP-Posting-Host: boyd.cssc-syd.tansu.com.au\n\nIn article 14595639@wl.aecl.ca, harrisp@wl.aecl.ca () writes:\n>I use DESQview/X and I think it is great. Where it really shines (IMHO) is\n>to let unix users log into a pc and run dos and windows applications with\n>the display going to their screens.\n>You'll need to get:\n>DESQview/X v 1.1\n>DESQview/X v 1.1                           $275 suggested retail\n>DESQview/X to Other X Systems v 1.1        $200 suggested retail\n>\n>You also must be running a supported network (FTP softwares PCTCP,\n>Novell Lan workplace for dos, Sun Microsystems PC-NFS, Beame and WHiteside,\n>Wollongong pathway TCPIp or HP Microsoft Lan Manager)\n>\n>if you don't have any of this network stuff, Quarterdeck will give you a\n>copy of Novell TCPIP transprot for dos with the Network manager.\n>\n>You can get more info by sending email to (appropriately) info@qdeck.com.\n>\n>In my opinion, if you want to have other people logging in and running\n>applications at your pc, you'll want to have a 486 33 with 16 Megs of RAM.\n>Also, the Xwindows software in DESQviewX really seems to like an ET 4000\n>(TSENG Labs chipset) based graphics card. Personally, I found that things\n>ran better with a SCSI drive in the pc than with ESDI drives, but that is\n>my experience only\n>\n>                                Good Luck and Best Wishes\n>                                                Phil\n\nWhat sort of traffic is generated with the X-calls?  I am curious to find\nout the required bandwidth that a link must have  if one machine running\nDV/X is supporting multiple users (clients) and we require adequate response\ntime.  Anyone have any ideas ??  \n\n\n\n---\n__/ __/ George Patapis ---------------------PAN METRON ARISTON---------- __/ __/\n__/ __/ C.S.S.C Lane Cove-----------email:gpatapis@cssc-syd.tansu.com.au __/ __/\n__/ __/ P.O.Box A792 Sydney South --fax  :(02) 911 3 199---------------- __/ __/\n__/ __/ NSW, 2000, Australia.-------voice:(02) 911 3 121---------------- __/ __/\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5885, "properties": {"category": "comp.graphics", "text": "From: bolson@carson.u.washington.edu (Edward Bolson)\nSubject: Sphere from 4 points?\nOrganization: University of Washington, Seattle\nLines: 18\nDistribution: world\nNNTP-Posting-Host: carson.u.washington.edu\n\nBoy, this will be embarassing if it is trivial or an FAQ:\n\nGiven 4 points (non coplanar), how does one find the sphere, that is,\ncenter and radius, exactly fitting those points?  I know how to do it\nfor a circle (from 3 points), but do not immediately see a \nstraightforward way to do it in 3-D.  I have checked some\ngeometry books, Graphics Gems, and Farin, but am still at a loss?\nPlease have mercy on me and provide the solution?  \n\nThanks,\nEd\n\n\n-- \nEd Bolson\nUniversity of Washington  Cardiovascular Research               (206)543-4535\nbolson@u.washington.edu (preferred)\nbolson@max.bitnet                bolson@milton.u.washington.edu (if you must)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5886, "properties": {"category": "rec.sport.hockey", "text": "From: mre@teal.Eng.Sun.COM (Mike Eisler)\nSubject: Re: Schedule...\nOrganization: Sun Microsystems, Mountain View, CA  USA\nLines: 25\nNNTP-Posting-Host: teal\n\nIn article <1993Apr20.052907.1625@news.columbia.edu> gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>I can't believe that ESPN is making SportsChannel America look good.\n\nBut only in NY,NJ, Philadelphia, and Chicago. Everywhere else, the only\nreason SportsChannel was available was for local baseball broadcasts.\nAnd local baseball pre-empted the NHL playoffs. Thus far into this\nplayoff season, ESPN/ABC has given me more hockey in 2 days (1 game)\nthan SportsChannel did (0 games).\n\nIf people want hockey on TV, they should watch hockey on TV. I bet the\nratings for hockey on Sunday on ABC went into the toilet. Next week, there\nwill be far fewer ABC affiliates with hockey.\n\nSomeone in this thread said that he wouldn't watch the games even if\nthey were on TV, and this is a r.s.h. regular contributor!\n\nXenophobes north of border needn't fear the US-Americanization of \"our\"\ngame, because US-Americans will never figure out how to market hockey\nhere. Support your team; support your game.\n-- \n Mike Eisler, mre@Eng.Sun.Com  ``Not only are they [Leafs] the best team, but\n their fans are even more intelligent and insightful than Pittsburgh's.  Their\n players are mighty bright, too.  I mean, he really *was* going to get his\n wallet back, right?'' Jan Brittenson 3/93, on Leaf/Pen woofers in\n rec.sport.hockey\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5887, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Robert Everett Brunskill <rb6t+@andrew.cmu.edu>\nSubject: Re: $$$ to fix TRACKBALL\nOrganization: Freshman, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 5\nNNTP-Posting-Host: po2.andrew.cmu.edu\nIn-Reply-To: <93105.152944BR4416A@auvm.american.edu>\n\nThe little blue roller on the trackball interior is probably rubbing\nagainst its support, just push it down the pin so that it no longer\ntouches it.  I had a similar problem.\n\nRob\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5888, "properties": {"category": "comp.sys.mac.hardware", "text": "From: altheimm@nextnet.csus.edu (Murray Altheim)\nSubject: Re: $$$ to fix TRACKBALL\nOrganization: California State University Sacramento\nLines: 53\n\nIn article <93105.152944BR4416A@auvm.american.edu> <BR4416A@auvm.american.edu> writes:\n>The trackbal on my PB140 no longer moves in the horizontal direction.  When I\n>called the nearest Authorized Apple Service person I was told that it probably\n>needed replacing and that would cost me over $150!  Ouch!\n>  Can anyone recommend a less expensive way to fix this problem?  One strange\n>symptom of the problem is that when I take the ball out of the socket and shine\n>a light into the hole I can make the cursor move horizontally by moving the\n>wheel with my finger, it works fine that way but won't work if I turn off the\n>light.  Any suggestions or comments?\n>-------------------------------------------------------------------------------\n>Ben Roy .......just a poor college student.......internet<br4416a@american.edu>\n>-------------------------------------------------------------------------------\n\nBen,\n\nSince you're obviously adept enough to understand how the trackball works,\nthe only thing short of repairing it that I can think of is a thorough\ncleaning of all the parts, and then checking for the proper placement of\nthe little blue rollers. Since they aren't fixed in position on their\nstainless steel pins, you might try sliding them into a slightly different\nposition. On my PowerBook 100, I can slide them almost completely out of\ncontact with the trackball. In fact, one of the notes from sumex on fixing\nthe trackball advocates sliding the roller so that its _edge_ contacts the\nball, not the center cylindrical area.\n\nI've done this with my PB100, and it does seem to improve the feel, but\nneeds to be adjusted from time to time. I just popped open one of our\noffice's PB170s, and while there isn't as much latitude for movement, one\ncould still adjust the roller slightly. If your PB140 is the same it might\nhelp.\n\nI would suspect the most likely culprit to be a slippery blue roller. If\nyou can take it out, clean it with a mild soapy solution, or isopropyl \nalcohol. Also, be sure the ball is grease-free.\n\nIf you drop the ball in minus the retaining ring, roll the ball and see\nif it is actually causing the axle to spin. \n\nIf all this still doesn't solve it, then maybe a new one is in order. :-(\nIt could be an electrical connection, in which case replacement would be\nnecessary. But my experience with both mice and trackballs has been that\ndirt has been the normal problem, not an electrical malfunction.\n\nHope this helps,\n\nMurray\n \n\n-- \nMurray M. Altheim      \"Ils ont l'orteil de Bouc, & d'un Chevreil l'oreille,\nInstructional Consultant    La corne d'un Chamois, & la face vermeille\nCSU, Sacramento          Comme un rouge Croissant: & dancent toute nuict\naltheimm@csus.edu       Dedans un carrefour, ou pres d'une eau qui bruict.\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5889, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc2.arc.nasa.gov (Curt Howland)\nSubject: Re: A Miracle in California\nOrganization: NASA Science Internet Project Office\nLines: 23\n\n\n|> <Waving at fellow bikers stuff deleted>\n|> \n|> When I first started riding street bikes I was told it was common to recieve/\n|> give a wave to a fellow biker. \n\nWhat astounded me on moving to the left coast from\nthe right coast, was to actually get waves from\nHARLEY riders! No, Really! I remember the first time\nas a truely memorable event.\n\nIt might have something to do with the...\n\nNo. I refuse to bring that up again.\n\nThanks EVO, for being a Harley rider that waves\nfirst. \n\n---\nCurt Howland \"Ace\"       DoD#0663       EFF#569\nhowland@nsipo.nasa.gov            '82 V45 Sabre\n     Meddle not in the afairs of Wizards,\n for it makes them soggy and hard to re-light.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5890, "properties": {"category": "alt.atheism", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: Radical Agnostic... NOT!\nOrganization: University of Wisconsin Eau Claire\nLines: 51\n\n[reply to zazen@austin.ibm.com (E. H. Welbon)]\n \n>>>     There is no means that i can possibly think of to prove beyond doubt\n>>>that a god does not exist (but if anyone has one, by all means, tell me\n>>>what it is).  Therefore, lacking this ability of absolute proof, being an\n>>>atheist becomes an act of faith in and of itself, and this I cannot accept.\n>>> I accept nothing on blind faith.\n \n>>Invisible Pink Flying Unicorns!  Need I say more?\n \n>...I harbor no beliefs at all, there is no good evidence for god\n>existing or not.  Some folks call this agnosticism.  It does not suffer\n>from \"blind faith\" at all.  I think of it as \"Don't worry, be happy\".\n \nFor many atheists, the lack of belief in gods is secondary to an\nepistemological consideration:  what do we accept as a reliable way of\nknowing?  There are no known valid logical arguments for the existence\nof gods, nor is there any empirical evidence that they exist.  Most\nphilosophers and theologians agree that the idea of a god is one that\nmust be accepted on faith.  Faith is belief without a sound logical\nbasis or empirical evidence.  It is a reliable way of knowing?\n \nThere is probably nothing else most people would accept in the absence\nof any possibility of proof.  Even when we agree to take someone elses\nword \"on faith\", we just mean that having found this person to be\nreliable in the past, we judge him likely to be a reliable source now.\nIf we find faith less reliable than logic and empirical evidence\neverywhere else, why assume it will provide reliable knowledge about\ngods?\n \nThe difference between the atheist and the theist is fundamentally then\none of whether or not faith is held to be a reliable way of knowing,\nrather than, as some agnostic posters would have it, whether ones faith\nis in gods or no gods.  The theist believes that faith is an acceptable\nbasis for a belief in gods, even if he rejects faith as reliable at\nother times, for example in his work as a scientist.  The atheist\nbelieves that only logic and empirical evidence lead to reliable\nknowledge.  Agnosticism seems to me a less defensible position than\ntheism or atheism, unless one is a sceptic in regards to all other\nknowledge.  Without evidence, why should we believe in gods rather than\nSanta Claus or the Easter Bunny?\n \nI would also like to point out as others have that the atheist doesn't\nrequire absolute knowledge of the lack of gods.  I don't believe that\nthere is any such thing as absolute knowledge.  Atheism is the best and\nsimplest theory to fit the (lack of) facts and so should be held until\ncontrary evidence is found.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5891, "properties": {"category": "sci.electronics", "text": "From: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith)\nSubject: Re: Radar detector DETECTORS?\nOrganization: The John P. Robarts Research Institute, London, Ontario\nDistribution: na\nNntp-Posting-Host: valve.heart.rri.uwo.ca\nLines: 21\n\nIn article <1993Apr19.231050.2196@Rapnet.Sanders.Lockheed.Com> babb@rapnet.sanders.lockheed.com (Scott Babb) writes:\n>\n>The Federal Communications Act of 1934 made it *legal* for you to\n>operate a radio receiver of any kind, on any frequency (including\n>X, K, and Ka bands) in the United States.  The Electronic\n>Communications Privacy Act of 1989(?) restricted the FCA of 1934\n>by making it illegal to receive the land-mobile telephone service,\n>including (I believe) cellular phones.\n\nIllegal to receive land-mobile telephone service?  Don't you have to have a\nmobile reciever to even have land-mobile telephone service?  What about\nship-to-shore telephone service?\n\n>No restriction was placed\n>on receiving RADAR (or, curiously, cordless phones.)  Enforcement\n>of the Virginia law is in violation of the FCA of 1934.\n\nIsin't there some kind of rule (regulation, law, whatever) in some\njuristictions that prohibit the use of *police band* recievers\nin vehicles?  And that radar transmissions are included in the police band \nso they get covered by the same regulation?\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5892, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ICH344@DJUKFA11.BITNET\nSubject: Wanted: Slot card with VGA + HDD-Contr.\nOrganization: Forschungszentrum Juelich\nLines: 18\n\nHello,\n\nI am looking for a PC card with the following features:\n\n  - Controller for IDE(AT-Bus)-HardDiskDrive\n  - Controller for 2 FloppyDiskDrives\n  - Standard(256KB) VGA Graphics  INCLUDING FEATURE CONNECTOR (important!)\n                                  ===========================\n\nThere *are* some manufacturors/distributors of this kind of card, but I have\nnot found them yet.\n\nIf you can help me, please mail to:  ICH344@DJUKFA11\n                                     ICH344@zam001.zam.kfa-juelich.de\n\n\nThanks a lot,\n                                                   Martin Mueller\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5893, "properties": {"category": "comp.windows.x", "text": "From: lanzo@tekelec.com (Mark Lanzo)\nSubject: Re: Title for XTerm\nReply-To: lanzo@tekelec.com (Mark Lanzo)\nOrganization: Tekelec Inc., Raleigh NC\nLines: 65\n\nIn a prior article naoumov@physics.unc.edu (Sergei Naoumov) writes:\n\n  > Hey guys!\n  > I work on many stations and would like this name and current logname\n  > to be in a title of Xterm when it's open and a machine name only\n  > when it's closed. In other words, I want $HOST and $LOGNAME to appear\n  > as a title of opened XTerm and $HOST when XTerm is closed.\n  > How can I do it?\n\n[Apologies if I'm answering something already answered in the FAQ.\nOur news feed has been losing a lot of articles lately - so I haven't\nseen the FAQ lately to check.]\n\n\nTwo ways:\n \n 1) When you start the xterm, you can use command line options:\n         -n ICON_NAME           To set the icon label\n         -T WINDOW_TITLE        To set the window title\n         -title WINDOW_TITLE    Equivalent to -T WINDOW_TITLE\n\n 2) You can use escape sequences to change things on the fly:\n\n    The basic escape sequence is:\n\tESC ] <P> ; <SOME_ARBITARY_TEXT> BEL\n\n    where ESC and BEL are the ASCII ESCAPE and BELL characters,\n    <P> is an ASCII decimal digit -- '2', '1', or '0', depending\n    on whether you are trying to set the window or icon title,\n    or both, and <SOME_ARBITARY_TEXT> is your desired label string.\n\n    Hence, this command will set the window & icon title:\n         echo \"\\033]0;YOUR_TITLE_GOES_HERE\\007\\c\" \n\n    To set just the icon title:\n         echo \"\\033]1;YOUR_TITLE_GOES_HERE\\007\\c\" \n\n    To set just the window title:\n         echo \"\\033]2;YOUR_TITLE_GOES_HERE\\007\\c\" \n\n    Of course, you may have to fiddle with exact syntax,\n    depending on how the echo command works on your system\n    and what shell you are using (I've shown System-V semantics\n    under Bourne or Korn shells).\n\n    [Hint for Sun OS users:  use /usr/5bin/echo instead of\n    /bin/echo or Csh's built-in echo.  Otherwise you'll have\n    to embed literal ESC and BEL characters in the string\n    instead of using convenient octal sequences.]\n\n    If you want your titlebar updated continously, say to show\n    your current directory, hostname, or somesuch, then you'll\n    have to see if you can coerce your shell into spitting out\n    the appropriate escape sequences when it prompts for commands.\n    Sometimes you can just put the appropriate escape sequence\n    in the prompt string itself, sometimes not ...\n\n\n+-------------------------------------------------------+------- /// -----+\n| Mark Lanzo   KD4QLZ  lanzo@tekelec.com   919-460-5576 |    \\\\\\///       |\n+-------------------------------------------------------+---- \\XX/ -------+\n\n    \n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5894, "properties": {"category": "sci.crypt", "text": "From: elee9sf@menudo.menudo.UH.EDU (Karl Barrus)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: University of Houston\nLines: 27\nDistribution: na\n\t<strnlghtC5nrHw.1qB@netcom.com>\nNNTP-Posting-Host: menudo.uh.edu\nIn-reply-to: strnlght@netcom.com's message of Sun, 18 Apr 1993 02:41:55 GMT\n\n\nDavid Sternlight writes:\n\n> I'd trust something from the NSA long before I'd trust something from\n> some Swiss or anbody Japanese.\n\nWhat???  This is an incredible statement!  The NSA tried to suppress\npublic key crypto and RSA, and yet they claim to encourage use of\nstrong crypto for US citizens.\n\nWould you trust a black-box from the NSA versus an \"open system\" from\nelsewhere?\n\n/-----------------------------------\\\n| Karl L. Barrus                    |\n| elee9sf@menudo.uh.edu             | <- preferred address\n| barrus@tree.egr.uh.edu (NeXTMail) |\n\\-----------------------------------/\n\n\n\n--\n/-----------------------------------\\\n| Karl L. Barrus                    |\n| elee9sf@menudo.uh.edu             | <- preferred address\n| barrus@tree.egr.uh.edu (NeXTMail) |\n\\-----------------------------------/\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5895, "properties": {"category": "comp.graphics", "text": "From: valo@cvtstu.cvt.stuba.cs (Valo Roman)\nSubject: Re: Text Recognition software availability\nOrganization: Slovak Technical University Bratislava, Slovakia\nLines: 23\nNNTP-Posting-Host: sk2eu.eunet.sk\nReplyTo: valo@cvtstu.cvt.stuba.cs (Valo Roman)\n\nIn article <C4IHqM.7v3@mentor.cc.purdue.edu>, ab@nova.cc.purdue.edu (Allen B) writes:\n|> One more time: is there any >free< OCR software out there?\n|>\n|> I ask this question periodically and haven't found anything.  This is\n|> the last time.  If I don't find anything, I'm going to write some\n|> myself.\n|> \n|> Post here or email me if you have any leads or suggestions, else just\n|> sit back and wait for me. :)\n|> \n|> ab\n\nI'm not sure if this is free or shareware, but you can try to look to wsmrsimtel20.army.mil,\ndirectory PD1:<MSDOS.DESKPUB>  file OCR104.ZIP .\nFrom the file SIMIBM.LST :\nOCR104.ZIP    B   93310  910424  Optical character recognition for scanners.\n\nHope this helps.\n\nRoman Valo                                                          valo@cvt.stuba.cs\nSlovak Technical University\nBratislava \nSlovakia\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5896, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mcguire@utkvx.utk.edu (Michael A. McGuire)\nSubject: Re: 2 questions about the Centris 650's RAM\nOrganization: University of Tennessee Computing Center\nX-Newsreader: VersaTerm Link v1.1\nDistribution: usa\nLines: 27\n\nIn Article <1993Apr16.075822.22121@galileo.cc.rochester.edu>,\nhlsw_ltd@uhura.cc.rochester.edu (Dave Hollinsworth) wrote:\n>With a little luck, I could own a C650 sometime in the near future, and\n>so I was just wondering if someone could clear these two questions up for me:\n>\n>1.  What speed SIMMS does the C650 need/want?  (I know that it needs 80ns\n>VRAM...not sure for the main RAM.)\n>\n\n60ns 72 pin simms.\n\n>2.  I've heard two conflicting stories about the total expandibility of the\n>C650's RAM...132 and 136 megs.  Which is true?  (Perhaps another phrasing\n>would be better:  does the 8 meg version come with all 8 megs on the logic\n>board, or 4 megs + a 4 meg SIMM?)\n>\n2 configs: 4mb & 8mb. In each case the memory is soldered on the board\nleaving the 4 simm sockets open. 132mb is the total addressable memory for a\n650.\n\n>Just wondering....\n>\n\n\nMichael A. McGuire, :-)\nMCGUIRE@UTKVX.UTK.EDU\nUTCC - User Services\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5897, "properties": {"category": "sci.med", "text": "From: dufault@lftfld.enet.dec.com (MD)\nSubject: seizures ( infantile spasms )\nKeywords: seizures epilepsy\nReply-To: dufault@lftfld.enet.dec.com (MD)\nOrganization: Digital Equipment Corporation\nLines: 32\n\n\n\tThe reason I'm posting this article to this newsgroup is to:\n1. gather any information about this disorder from anyone who might\n   have recently been *e*ffected by it ( from being associated with\n   it or actually having this disorder ) and\n2. help me find out where I can access any medical literature associated\n   with seizures over the internet.\n\nRecently, I had a baby boy born with seizures which occured 12-15 hours\nafter birth. He was immediately transferred to a major hospital in Boston\nand has since been undergoing extensive drug treatment for his condition.\nThis has been a major learning experience for me and my wife not only in\nlearning the medical problems that faced our son but also in dealing with\nhospitals, procedures...etc.\n\nI don't want to go into a lot of detail, but his condition was termed \nquite severe at first then slowly he began to grow and put on weight\nas a normal baby would. He was put on the standard anti-convulsion drugs\nand that did not seem to help out. His MRI, EKG, cat-scans are all normal,\nbut the EEG's show alot of seizure activity. After many metabolic tests,\nbody structure tests, and infection/virus tests the doctors still do not\nknow quite what type of siezures he is having (although they do have alot\nof evidence that it is now pointing to infantile spasms ). This is where\nwe stand right now....\n\nIf anyone knows of any database or newsgroup or as I mentioned up above,\nany information relating to this disorder I would sure appreciate hearing\nfrom you. I am not trying to play doctor here, but only trying to gather\ninformation about it. As I know now, these particular types of disorders\nare still not really well understood by the medical community, and so I'm\ngoing to see now....if somehow the internet can at least give me alittle\ninsight. Thanks. \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5898, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: Goalie masks\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nLines: 21\n\nIn article <120666@netnews.upenn.edu> kkeller@mail.sas.upenn.edu (Keith Keller) writes:\n>My vote goes to John Vanbiesbrouck.  His mask has a skyline of New York\n>City, and on the sides there are a bunch of bees (Beezer).  It looks\n>really sharp.\n\nFunny you should mention this; one time on HNIC Don Cherry pointed out\nVanbiesbrouck's mask.  He _hated_ it.  I think he said something to the effect\nof:\n\"You see?  He was great last year; now he goes out and gets that dopey mask \nand he can't stop a beachball!\"\n\nYou may or may not take Cherry seriously at all, but I cracked up when I heard\nit.\n\nI think Ed Belfour has the current best mask in the NHL btw.  I also like\nMoog's, and I'll give Fuhr's new one an honourable mention, although I haven't\nseen it closely yet (it looked good from a distance!).  What's also neat is\nChevaldae's in Detroit; they call him \"Chevy\" so he has two checkered flags\npainted at the top as in an auto race.\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5899, "properties": {"category": "sci.electronics", "text": "Subject: Re: Looking for Electronics Dept Info in Austrailia\nFrom: MATGBB@LURE.LATROBE.EDU.AU (BYRNES,Graham)\nOrganization: La Trobe University\nIn-Reply-To: hjkim@hyowon.pusan.ac.kr's message of Mon, 19 Apr 93 00:38:00 GMT\nX-News-Reader: VMS NEWS 1.24\nLines: 20\n\nIn <1993Apr19.003800.18288@worak.kaist.ac.kr> hjkim@hyowon.pusan.ac.kr writes:\n\n> Hi Netters!\n> \n> I am looking for the list of universities in Austrailia, which has electronics department. \n> I am considering to spend a year for research in Austrailia about communication area.\u00fd\u00e9 I am interested in Mobile communication areas and spread spectrum communications etc. \n> But I don't have any information about Austrailian Universities.\n> Can anybody recommend a good university in co\u00fb\u00dfmmunic\u00f7\u00b3ation area?\n> Any comments will be welcomed!\n> \n> Bye.\n> \n> Jaehyung Kim\n> \nWell, I honestly don't know if they are good, bad or indifferent, but there\nis an electronics dept here at La Trobe:\nLa Trobe University, Bundoora VIC 3083 Australia\nFax +613 471 0524\nChairman is Prof Ian White. Sorry, don't have an email address.\nGraham B\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5900, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: FLORIDA SUCKS!\nFrom: csc2imd@cabell.vcu.edu (Ian M. Derby)\nExpires: Sat, 1 May 1993 04:00:00 GMT\nOrganization: Virginia Commonwealth University\nLines: 8\n\n\nThis talk about the Phillies winning the NL East is scary.  VERY\nscary!  Don't get me wrong, Im a Phillies fan but as late as last\nyear they looked helpless.  The funny thing was they did have a lot\nof injuries in '92 spring training that basically killed their\nchances.  Of course, don't forget the Dykstra wrist injury in the\nfirst or second game?  \n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5901, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Israel's Expansion II\nOrganization: The Department of Redundancy Department\nLines: 17\n\nIn article <1993Apr25.222120.3411@Virginia.EDU> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n>waldo@cybernet.cse.fau.edu  writes:\n\n>> ALL Jews suffered during WWII, not just our beloved who perished or were \n>> tortured.  We ALL suffered.  \n\n>\tAll humans suffered emotionally, some Jews and many\n>others suffered physically. \n\nI'm just waiting for Andi to tell us that African Americans should\nstart paying compensation to White Americans who \"suffered\" from being \nslave owners.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5902, "properties": {"category": "talk.politics.misc", "text": "From: kme@node_17aa4.bnr.ca (Ken Michael Edwards)\nSubject: Re: Economic Stimulus or Pork?\nOrganization: Bell-Northern Research, Research Triangle Park, NC\nLines: 73\n\n\nIn article <1993Apr2.201514.20021@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes: \n|> \n|> In fact, no one has such a list.  The Clinton package as presently proposed\n|> includes a variety of recommended spending areas and dollar amounts.  It \n|> does not include a line-by-line list of every project that would be funded.\n|> (Congress may include such line items in the bill when it passes.\n|> Likewise, it may prohibit spending for specific projects as amendments to\n|> the bill.  Such amendments, positive and negative, are often pointed to\n|> by those who propose a \"line item veto\" or \"enhanced recision\" power for\n|> the President.) \n|> \n|> Some of the $16 billion package is in the form of \"block grants\" to states\n|> and localities.  \n\nThis is why I asked to be 'enlightened'.  You are making claims about what\n'is' or 'is not' part of this program.  But if the \"block grants\" go to states\nand cities, the mayors list is VERY relivent.\n  \n|> \n|> I'd suggest contacting your local officials, reading a newspaper with\n|> good coverage of Congress (Washington Post, NY Times), or if you're \n|> serious about paying attention to these issues, get copies of Congressional\n|> Quarterly at your library or have your representative put you on the \n|> mailing list for the Congressional Record.  (It's free.)  But be prepared\n|> to invest more time in the effort than it takes to watch the evening\n|> news or read your local paper.\n\nOkay scarasm does deserve sacrasm, but I already contact my local officals, my\ncongress rep., senators, Watch evening news, news programs, and C-SPAN.\n  \n|> \n|> In addition to the cherry picking that went on with the Mayors' wish list,\n|> Congressional Republicans selected wish list projects from a variety of\n|> Federal agencies, based apparently upon how silly the names of the projects\n|> sounded.  I'm not even sure if they bothered to correlate a potential\n|> expenditure of an agency in Clinton's bill with a potential project from\n|> the same agency, but it is clear that the effort was to make Clinton's\n|> potential expenditures appear to be linked to projects with absurd \n|> names.  (Not to be taken seriously any more than equivalent tactics by\n|> Democrats would have been in the Reagan/Bush era.)\n\n\nThe fact is that Primetime (TM of ABC) has had numberous reposts on such waste\nprograms that already exist.  Again, if we are truely intrested in eliminating\nthe DEBT, we must REMOVE the DEFICIT, and do away with ALL PORK !!!  \n|> \n|> I realize that it is tempting to believe that government is in the hands\n|> of clowns who are dishonest at best.  But such simplistic analysis does\n|> little to advance the cause of public education.\n\nThere have been several books written on gov. waste, network news programs \nfrom time to time devote segments to this, and there have been bills proposed\nthat significantly reduces expenditures without touching external programs by \nchanging the way 'congress does business' (and make it more efficent).\n\nTrue, blame is easy, but also is spending someone else's money.  \n\nClinton ran on a platform that he would '...not raise taxes on the middle class\nto pay for these (his) programs'.  He has proposed a program that is not \nspecific, that counts on tax hikes to pay for.\n\n-- \n======================================================================\n\nKen M. Edwards, Bell Northern Research, Research Triangle Park, NC\n(919) 481-8476 email: cnc23a@bnr.ca    Ham: N4ZBB\n\nAll opinions are my own and do not necessarily reflect the views of\nmy employer or co-workers, family, friends, congress, or president.\n\n\"You'd better call my dad...My mom's pretty busy.\"\n             - Chelsea Clinton \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5903, "properties": {"category": "rec.sport.baseball", "text": "From: dholle15@ursa.calvin.edu (David Hollebeek)\nSubject: Phillies Mailing List?\nNntp-Posting-Host: ursa\nOrganization: Calvin College\nLines: 7\n\nAnyone know of a phillies mailing list out there? .... they don't get much\ncoverage up here in Grand Rapids, MI *sob*\n\n--\n-------------------------------------------------------------------------------\n\"Elaborate .signature files are for people who aren't as busy as I am\" -DH 1992\n---------------------David-Hollebeek---dholle15@ursa.calvin.edu----------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5904, "properties": {"category": "soc.religion.christian", "text": "From: will@futon.webo.dg.com (Will Taber)\nSubject: Re: Being right about messiahs\nLines: 41\n\nIn article 2262@geneva.rutgers.edu, Desiree_Bradley@mindlink.bc.ca (Desiree Bradley) writes:\n> I must have missed the postings about Waco, David Koresh, and the Second\n> Coming.  How does one tell if a Second Coming is the real thing, unless the\n> person claiming to be IT is obviously insane?\n\nOne rule of thumb is that if a person is making the claim, they are\nwrong.  I was just reading John 14 this morning (I think that is the\nright chapter, anyway it is close and I don't have a Bible at work to\ncheck with.) and in it Jesus is talking to his disciples about his\nimpending death and he says that he will be going away and then later\nhe will be with them.  He said something along the lines of \"I will\nbe in you and you will be in me.\"  (Again I cannot provide the exact\nquote or citation.)  Anyway, my understanding of this is that\nthe Second Coming will not be an outward event.  It is an inward\nevent, Christ will come to live in our hearts and we will live in him.\nIf you look for a person you will be deceived.\n\nIt seems to me that the Jews had been looking for a Messiah that would\nbe a political or military leader and so didn't recognize Jesus when\nhe came.  Jesus tried to show that his Kingdom was not of this earth.\nA lot of what I have seen written about the Second Coming seems to\nbased on an expectation of Christ coming back and finally taking over\nthe world and running it the way it should be.  It sounds a lot like\nwhat the Jews were looking for.  The First Coming wasn't like that and\nI see no reason for the Second Coming to be like that either.\n\nOh and by the way, I don't expect it to happen once.  There is no one\nSecond Coming, there are a lot of little ones.  Every time Christ\ncomes into someones heart, Christ has come again.\n\nPeace,\nWill.\n\n---------------------------------------------------------------------------- \n| William Taber         | Will_Taber@dg.com \t  | Any opinions expressed |\n| Data General Corp.    | will@futon.webo.dg.com  | are mine alone and may |\n| Westboro, Mass. 01580 |                         | change without notice. |\n|---------------------------------------------------------------------------\n| When all your dreams are laid to rest, you can get what's second best,   |\n|\tBut it's hard to get enough.\t\tDavid Wilcox               |\n----------------------------------------------------------------------------\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5905, "properties": {"category": "comp.windows.x", "text": "From: whaley@sigma.kpc.com (Ken Whaley)\nSubject: Re: XCopyPlane Question\nIn-Reply-To: nancie@neko.CSS.GOV's message of 19 Apr 1993 19:48:30 -0400\nOrganization: Kubota Pacific Computer Inc.\nLines: 52\n\n| \n| In article <BUZZ.93Apr19101538@lion.bear.com> buzz@bear.com (Buzz Moschetti) write\n| >In article <WHALEY.93Apr15103931@sigma.kpc.com> whaley@sigma.kpc.com (Ken Whaley) writes:\n| >>   Actually, I must also ask the FAQ's #1 most popular reason why graphics\n| >>   don't show up: do you wait for an expose event before drawing your\n| >>   rectangle?\n| >\n| >Suppose you have an idle app with a realized and mapped Window that contains\n| >Xlib graphics.  A button widget, when pressed, will cause a new item\n| >to be drawn in the Window.  This action clearly should not call XCopyArea() \n| >(or equiv) directly; instead, it should register the existence of the new\n| >item in a memory structure and let the expose event handler take care\n| >of rendering the image because at that time it is guaranteed that the\n| >Window is mapped.\n| >\n| >The problem, of course, is that no expose event is generated if the window\n| >is visible and mapped.  Do you know the best way to \"tickle\" a window so\n| >that the expose event handler will be invoked to draw this new item?\n| >\n| \n| What does this have to do with my original question???  I previously\n| stated that I did an XCopyArea of the depth-8 pixmap to the screen\n| just to make sure that my image had data, and it did.  This is NOT\n| a problem with expose events, it has to do with XCopyPlane not\n| working!!!\n| \n| Does anyone have a code fragment they could send demonstrating that\n| XCopyPlane works???  This would be very helpful!\n| \n| Thanks!\n\nWhat it has to do with your original question is this: many times \nbeginning X users (heck, experienced X users too!) write small test\nprograms.  Many times they forget to draw only in response to expose\nevents, and thus see unpreditable results whereby sometimes the application's\ngraphics show up, and sometimes they don't.  We're just trying to\neliminate all the \"easy\" explanations  for why you're not seeing your\ngraphics. \n\nThat being said, why don't you try copying different planes to your\nwindow other than 16 (== 1 << 4).  Try 1, 1<<1, 1<<2, ..., 1<<7\nto see it you get any output.  Since you're dipslaying only a single \nplane of your data, it's possible that all the pixel values in your\npixmap have the same value for that color plane.\n\n\tKen\n\n--\nKenneth Whaley\t\t\t (408) 748-6347\nKubota Pacific Computer, Inc.\t Email: whaley@kpc.com\n2630 Walsh Avenue\nSanta Clara, CA.  95051\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5906, "properties": {"category": "talk.politics.misc", "text": "From: julie@eddie.jpl.nasa.gov (Julie Kangas)\nSubject: Re: Top Ten Reasons Not to Aid Russians\nNntp-Posting-Host: eddie.jpl.nasa.gov\nOrganization: Jet Propulsion Laboratory, Pasadena, CA\nLines: 12\n\nIn article <C50FnH.Cvo@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>  [With a tip of the hat to David Letterman for making the Top Ten format \n>   so popular]\n>\n>Top Ten Reasons that Conservatives don't want to aid Russia:\n\n<looking around>  Who?  Where?\nDon't look at me.  I want to send aid to Russia.  Many other\nconservatives do as well.  \n\nJulie\nDISCLAIMER:  All opinions here belong to my cat and no one else\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5907, "properties": {"category": "sci.electronics", "text": "From: ba1634807@ntuvax.ntu.ac.sg\nSubject: pwm control thru software\nLines: 17\nNntp-Posting-Host: v9001.ntu.ac.sg\nOrganization: Nanyang Technological University - Singapore\n\n\ncurrently I am using the 8051 microcontroller with external eprom..\n\nIn order to drive the dc motor (with direction) I use the Pulse width modultion \n\nthru software control(Assembly language programming). However I am afraid that\n\nthey will be overheads and thus alter the pulse timing. My question is \n\nis the software pwm control reliable?. I understand that port 0 is a latch\n\nand so I vary the duty cycle by setting it high first and at the desire \n\nduty cycle then I set low..? Any improments ?\n \n\n \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.280+0000", "event": "documents", "entityId": 5908, "properties": {"category": "talk.politics.misc", "text": "From: rja@mahogany126.cray.com (Russ Anderson)\nSubject: Re: The state of justice\nOriginator: rja@mahogany126\nLines: 36\nNntp-Posting-Host: mahogany126\nOrganization: The 1991 World Champion Minnesota Twins!\n\n\nIn article <1993Apr15.143320.8618@desire.wright.edu>, demon@desire.wright.edu (Not a Boomer) writes:\n> \tA judge denied GM's new trial motion, even though GM says it has two\n> new witnesses that said the occupant of the truck was dead from the impact, not\n> from the fire.\n> \n> \tThoughts?\n> \n> \tIt's kind of scary when you realize that judges are going to start\n> denying new trials even when new evidence that contradicts the facts that led\n> to the previous ruling appear.\n\nWelcome to the conservative judiciary.\n\n> \tOr has the judge decided that the new witnesses are not to be believed? \n> Shouldn't that be up to a jury?\n\nI think Scalia's point was that you get one chance.  If new information\ncomes out later, tough.  If the conviced want justice, they have to hope\nthe governor is feeling charitable.\n\nThere's a guy on death row in Texas that was denied a new trial, dispite\nevidence of his inocents.\n\n> \tAnd what about members of the previous jury parading through the talk\n> shows proclaiming their obvious bias against GM?  Shouldn't that be enough for\n> a judge to through out the old verdict and call for a new trial?\n> \n> \tWhatever happened to jurors having to be objective?\n\nIt got swept away in the Reagan Revolution...\n\n-- \nRuss Anderson    |  Disclaimer: Any statements are my own and do not reflect\n------------------              upon my employer or anyone else.  (c) 1993\nEX-Twins' Jack Morris, 10 innings pitched, 0 runs (World Series MVP!)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5909, "properties": {"category": "comp.windows.x", "text": "From: dealy@narya.gsfc.nasa.gov (Brian Dealy - CSC)\nSubject: Re: Fresco status?\nOrganization: NASA/Goddard Space Flight Center\nLines: 34\nDistribution: world\nNNTP-Posting-Host: narya.gsfc.nasa.gov\nOriginator: dealy@narya.gsfc.nasa.gov\n\n\nIssue 5 of the X Resource (the published proceedings of the 7th Annual X\nTechnical Conference) has an paper by Mark Linton and Chuck Price\ntitled \"Building Distributed interfaces with Fresco\".\n\nThe summary describes Fresco (formerly known as XC++) as an X consortium effort.\nWithout doing a complete review of the paper, I'll just mention the goals\nas stated in one section of the article.  the effort has the goal of providing\nthe next generation toolkit with functionality beyond the Xt toolkit or Xlib.\nFeatures they want in FRESCO include:\n\nlightweight Objects, such as Interviews Glyphs\nStructured Graphics\nResolution independence\nNatural C++ programming interface\nedit-in-place embedding\ndistributed user interface components\nMultithreading\n\nThis by no means captures the complete content of the paper. The Conclusions\nsections mentions that a rough draft specification should be available in\nearly 93, with no schedule (paper presented in Jan 93) for a complete sample\nimplementation.\n\nI am not affiliated with any of the people or places mentioned above.\n\n-- \nBrian Dealy                |301-572-8267| It not knowing where it's at  \ndealy@kong.gsfc.nasa.gov   |            | that's important,it's knowing\n!uunet!dftsrv!kong!dealy   |            | where it's not at...  B.Dylan\n-- \nBrian Dealy                |301-572-8267| It not knowing where it's at  \ndealy@kong.gsfc.nasa.gov   |            | that's important,it's knowing\n!uunet!dftsrv!kong!dealy   |            | where it's not at...  B.Dylan\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5910, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wlieftin@cs.vu.nl (Liefting W)\nSubject: Re: 486/33 WIN3.1 HANG\nOrganization: Fac. Wiskunde & Informatica, VU, Amsterdam\nLines: 19\n\n10748539@eng2.eng.monash.edu.au (CHARLES CHOONG) writes:\n\n>HELP, PROBLEM 486/33MHZ HANGS IN EXTENDED MODE TRYING TO\n>ACCESS DRIVES A: OR B: , SOMETIMES IT WILL DO DIR , SOMETIMES WILL HANG\n>ON ACCESS SOMETIMES WILL WHEN TYING A TEXT FILE.\n\n>HARDWARE:\n>AMERICAN MEGATREND MOTHERBOARD\n>AMI BIOS 91\n>CONNER 85MB HARD DRIVE\n>TRIDENT 1 MEG SVGA\n\n>PLEASE HELP!!!\n>ITS OK IN STANDARD MODE!!!\n\nI have the same problem. Someone suggested it might be a BIOS bug.\nGonna check with my supplier tomorrow. I'll tell you if it helps.\n\nWouter.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5911, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kudla@acm.rpi.edu (Robert Kudla)\nSubject: Re: Diamond SS24X, Win 3.1, Mouse cursor\nNntp-Posting-Host: hermes.acm.rpi.edu\nLines: 16\n\nIn <1993Apr15.204845.24939@nlm.nih.gov> dabl2@nlm.nih.gov (Don A.B. Lindbergh) writes:\n>Anybody seen mouse cursor distortion running the Diamond 1024x768x256 driver?\n>Sorry, don't know the version of the driver (no indication in the menus) but it's a recently\n>delivered Gateway system.  Am going to try the latest drivers from Diamond BBS but wondered\n>if anyone else had seen this.\n\nSporadically, yes.  It seems to flicker, or change shape into snow\nbriefly.  Not enough to impair functionality, just call attention to\nDiamond's professional sloppiness.\n\nRob\n\n--\nRob kudla@acm.rpi.edu Keywords - Oldfield Jane's Leather Yes Win3.1 Phish\nlight blue right Bondage r.e.m. DTP Steely Dan DS9 FNM OWL Genesis In the\nspaceship, the silver spaceship, the lion takes control..... \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5912, "properties": {"category": "comp.windows.x", "text": "From: amit@aryeh.uchicago.edu (Yali Amit)\nSubject: Problems with OpenWindows\nOrganization: Dept. of Statistics\nLines: 22\n\n\n\n\n\n After having OpenWindows \n(Version 3 for SunOS 4.1) or Xwindows\nrunning continuously on my machine for 3-4 days,\nthe following message appears  when trying to open\na new window, or to run any program that needs to open windows.\n\nXView error: Cannot open connection to window server: :0.0 (Server\npackage)\n\nI would greatly appreciate any suggestions to solve this problem.\n\nYali Amit\nDepartment of Statistics\nUniversity of Chicago \nChicago IL 60615\n\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5913, "properties": {"category": "comp.sys.mac.hardware", "text": "From: nodine@lcs.mit.edu (Mark H. Nodine)\nSubject: Re: Quadra SCSI Problems???\nKeywords: Quadra SCSI APS\nOrganization: MIT Laboratory for Computer Science\nLines: 28\n\nIn article <C5L39p.2qz@news.udel.edu>, johnston@me.udel.edu (Bill Johnston) writes:\n|> In article <1993Apr16.144750.1568@mintaka.lcs.mit.edu> nodine@lcs.mit.edu (Mark H. Nodine) writes:\n|> >I don't know about the specific problem mentioned in your\n|> >message, but I definitely had SCSI problems between my\n|> >Q700 and my venerable Jasmine Megadrive 10 cartridge\n|> >drives.  My solution was to get Silverlining.  None of\n|> >the loops that involved blind writes worked to the drives;\n|> >in fact the only loop that worked was the \"Macintosh\n|> >Software\" loop (whatever that means).\n|> \n|> I doubt this is a Quadra-specific problem.  I had to get\n|> rid of my \"venerable\" Bernoulli 20 last year (with enough \n|> cartridges purchased at ~$90 each to make the whole thing \n|> worth more than my whole computer ;).  The tech support guys\n|> at Ocean Microsystems suggested that some third-party drivers \n|> might fix the problem - in my case the cartridges wouldn't \n|> format/mount/partition for A/UX.  \n\nAll I know is that the Megadrives worked perfectly on both my\nMac Plus and my Powerbook 140.  It was for this reason I assumed\nthe problem had something to do with the Quadra.  Even with the\nQuadra, they mostly worked OK.  The problem occurred when I ejected\na cartridge from a drive: it would start popping up dialog boxes\nsaying \"This cartridge must be formatted with Jasmine Driveware\"\neven though there was no cartridge in the drive.\n\n\t--Mark\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5914, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dkmiller@unixg.ubc.ca (Derek K. Miller)\nSubject: Gatewaying Microsoft Mail/Workgroups via 9600 modem?\nOrganization: University of British Columbia, Vancouver, B.C., Canada\nLines: 25\nDistribution: world\nNNTP-Posting-Host: unixg.ubc.ca\n\nOur student association runs a small Novell network which has a subnetwork\nof Windows for Workgroups and Microsoft Mail. The Director of Finance, en\nelectrical engineering student, would like to gateway this system, either\nvia SLIP or not, into the University's network and thus the Internet, at\nthe very least to exchange e-mail, but possibly also to do ftp's etc. For\nnow, this would be done via a 9600 bps modem.\n\nHe would like to set it up so that it would periodically call in to check\nmail, but would otherwise connect whenever needed.\n\nWhat is the best way to do this? Gatewaying software is available, but\nwhat works best?\n\nPlease reply to me: dkmiller@unixg.ubc.ca\n or the D of F    : dleung@ee.ubc.ca\n\nwith a cc: to the other. I don't read all of these groups regularly, so mail\nis best. If this is a common question, please pot me to a FAQ or ftp site.\n\n      :=:=> Derek K. Miller                 dkmiller@unixg.ubc.ca\n      Researcher, Alma Mater Society        thegrodd@tz.ucs.sfu.ca\n      University of British Columbia, Canada\n      Room 230B - 6138 SUB Blvd., Vancouver, B.C. V6T 1Z1\n      Campus Mail Zone 1  phone (604) 822-6868  fax (604) 822-9019\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5915, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Eco-Freaks forcing Space Mining.\nArticle-I.D.: aurora.1993Apr21.212202.1\nOrganization: University of Alaska Fairbanks\nLines: 24\nNntp-Posting-Host: acad3.alaska.edu\n\nHere is a way to get the commericial companies into space and mineral\nexploration.\n\nBasically get the eci-freaks to make it so hard to get the minerals on earth..\nYou think this is crazy. Well in a way it is, but in a way it is reality.\n\nThere is a billin the congress to do just that.. Basically to make it so\nexpensive to mine minerals in the US, unless you can by off the inspectors or\ntax collectors.. ascially what I understand from talking to a few miner friends \nof mine, that they (the congress) propose to have a tax on the gross income of\nthe mine, versus the adjusted income, also the state governments have there\nnormal taxes. So by the time you get done, paying for materials, workers, and\nother expenses you can owe more than what you made.\nBAsically if you make a 1000.00 and spend 500. ofor expenses, you can owe\n600.00 in federal taxes.. Bascially it is driving the miners off the land.. And\nthe only peopel who benefit are the eco-freaks.. \n\nBasically to get back to my beginning statement, is space is the way to go\ncause it might just get to expensive to mine on earth because of either the\neco-freaks or the protectionist.. \nSuch fun we have in these interesting times..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5916, "properties": {"category": "sci.med", "text": "From: banschbach@vms.ocom.okstate.edu\nSubject: Re: diet for Crohn's (IBD)\nLines: 34\nNntp-Posting-Host: vms.ocom.okstate.edu\nOrganization: OSU College of Osteopathic Medicine\nDistribution: usa\n\nIn article <1r6g8fINNe88@ceti.cs.unc.edu>, jge@cs.unc.edu (John Eyles) writes:\n> \n> A friend has what is apparently a fairly minor case of Crohn's\n> disease.\n> \n> But she can't seem to eat certain foods, such as fresh vegetables,\n> without discomfort, and of course she wants to avoid a recurrence.\n> \n> Her question is: are there any nutritionists who specialize in the\n> problems of people with Crohn's disease ?\n> \n> (I saw the suggestion of lipoxygnase inhibitors like tea and turmeric).\n> \n> Thanks in advance,\n> John Eyles\n\nAll your friend really has to do is find a Registered Dietician(RD).  While \nmost work in hospitals and clinics, many major cities will have RD's who \nare in \"private practice\" so to speak.  Many physicans will refer their \npatients with Crohn's disease to RD's for dietary help.  If you can get \nyour friend's physician to make a referral, medical insurance should pay for \nthe RD's services just like the services of a physical therapist.  The \nbetter medical insurance plans will cover this but even if your friend's \nplan doesn't, it would be well worth the cost to get on a good diet to \ncontrol the intestinal discomfort and help the intestinal lining heal.\nCrohn's disease is an inflammatory disease of the intestinal lining and \nlipoxygenase inhibitors may help by decreasing leukotriene formation but \nI'm not aware of tea or turmeric containing lipoxygenase inhibitors.  For \nbad inflammation, steroids are used but for a mild case, the side effects \nare not worth the small benefit gained by steroid use.  Upjohn is developing \na new lipoxygenase inhibitor that should greatly help deal with \ninflammatory diseases but it's not available yet.\n\nMarty B. \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5917, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: Clarification of personal position\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 26\n\nIn article <C5rBHt.Fw4@athena.cs.uga.edu> \nhudson@athena.cs.uga.edu (Paul Hudson Jr) writes:\n>In article <C5MuIw.AqC@mailer.cc.fsu.edu> \ndlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n>>If it were a sin to violate Sunday no one could\n>>ever be forgiven for that for Jesus never kept Sunday holy.  He only\n>>recognized one day of the seven as holy.\n>Jesus also recognized other holy days, like the Passover.  Acts 15 says \n>that no more should be layed on the Gentiles than that which is necessary.\n>The sabbath is not in the list, nor do any of the epistles instruct people\n>to keep the 7th day, while Christians were living among people who did not\n>keep the 7th day.  It looks like that would have been a problem.\n>Instead, we have Scriptures telling us that all days can be esteemed alike\n>(Romans 14:5) and that no man should judge us in regard to what kind of\n>food we eat, Jewish holy days we keep, or _in regard to the sabbath. (Col. 2.)\n>>The\n>>question is \"On what authority do we proclaim that the requirements of the\n>>fourth commandment are no longer relevant to modern Christians?\"\n>I don't think that the Sabbath, or any other command of the law is totally\n>irrelevant to modern Christians, but what about Collosions 2, where it says\n>that we are not to be judged in regard to the keeping of the sabbath?\n\nWhy are you running away from the word of Jesus? Has somebody superseded\nthe word of Jesus? If you don't follow the morality of the Ten\nCommandments and the Law and the Prophets and the word of Jesus, whose\nmorality do you follow?\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5918, "properties": {"category": "comp.graphics", "text": "From: spl@ivem.ucsd.edu (Steve Lamont)\nSubject: Re: Point within a polygon\nOrganization: University of Calif., San Diego/Microscopy and Imaging Resource\nLines: 15\nNNTP-Posting-Host: ivem.ucsd.edu\nKeywords: point, polygon\n\nIn article <1993Apr14.102007.20664@uk03.bull.co.uk> scrowe@hemel.bull.co.uk (Simon Crowe) writes:\n>I am looking for an algorithm to determine if a given point is bound by a \n>polygon. Does anyone have any such code or a reference to book containing\n>information on the subject ?\n\nSee the article \"An Efficient Ray-Polygon Intersection,\" p. 390 in\nGraphics Gems (ISBN 0-12-286165-5).  The second step, intersecting the\npolygon, does what you want.  There is sample code in the book.\n\n\t\t\t\t\t\t\tspl\n-- \nSteve Lamont, SciViGuy -- (619) 534-7968 -- spl@szechuan.ucsd.edu\nSan Diego Microscopy and Imaging Resource/UC San Diego/La Jolla, CA 92093-0608\n\"They are not Bolsheviks,\n        just bullshitviks.\"  - Yevgeny Yevtechenko, \"Again a meeting...\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5919, "properties": {"category": "sci.med", "text": "From: mjliu@csie.nctu.edu.tw (Ming-zhou Liu)\nSubject: H E L P   M E   ---> desperate with some VD\nOrganization: Dep. Computer Science & Engin. of Chiao Tung U., Taiwan, ROC\nLines: 20\n\nI have bad luck and got a VD called <Granuloma ingunale>, which involves\nthe growth of granules in the groin.  I found out about it by checking medicine\nbooks and I found the prescriptions.  And I know I can just go to a clinic to\nget it cured.  BUT unfortunately I am serving my duty in the army right now and\nI think it's impossible to prevent anyone from knowing this if I take leaves \nevery day for two weeks for treatment.  Thus I bought the prescribed tablets\nat some drugstore, but to cure it I must get INJECTION of <Streptomycin>, with\na dose of 1g every 12 hours, for at least 10 days.  I can probably buy the \ntools and this solution somewhere but I DON'T KNOW HOW TO DO INJECTION BY MYSELF\n!\nCan any kind people here tell me:\n\nIf it's possible to do it? Can I do it on my arm? or it must be done on the hip\nonly??  Any info is welcome and please write me or post your help SOON!! (I am\nalready taking the tablets ..and I can't wait!!)\n\nPlease don't flame me for posting this, and don't judge me. I've learned a \nlesson and all I need now is REAL MEDICAL HELP.\n\nDesperate from Taipei \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5920, "properties": {"category": "alt.atheism", "text": "Organization: Penn State University\nFrom: <JSN104@psuvm.psu.edu>\nSubject: YOU WILL ALL GO TO HELL!!!\nLines: 2\n\nYOU BLASHEPHEMERS!!! YOU WILL ALL GO TO HELL FOR NOT BELIEVING IN GOD!!!!  BE\nPREPARED FOR YOUR ETERNAL DAMNATION!!!\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5921, "properties": {"category": "comp.os.ms-windows.misc", "text": "Organization: Penn State University\nFrom: <DLS128@psuvm.psu.edu>\nSubject: Fall Comdex '93\nLines: 8\n\nDoes anyone out there have any info on the up and coming fall comdex '93? I was\nasked by one of my peers to get any info that might be available.  Or, could\nanyone point me in the right direction?  Any help would be appreciated.\n\n\nDave Stevens                              dls128@psuvm.psu.edu\nTraining and Multimedia Services          dls128@psuvm\nPenn State University\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5922, "properties": {"category": "sci.electronics", "text": "From: nagle@netcom.com (John Nagle)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 42\n\nWayne Alan Martin <wm1h+@andrew.cmu.edu> writes:\n>Excerpts from netnews.sci.electronics: 16-Apr-93 Re: What do Nuclear\n>Site's .. by R_Tim_Coslet@cup.portal. \n>> From: R_Tim_Coslet@cup.portal.com\n>> Subject: Re: What do Nuclear Site's Cooling Towers do?\n>> Date: Fri, 16 Apr 93 21:27:21 PDT\n>>  \n>> In article: <1qlg9o$d7q@sequoia.ccsd.uts.EDU.AU>\n>>         swalker@uts.EDU.AU (-s87271077-s.walker-man-50-) wrote:\n>> >I really don't know where to post this question so I figured that\n>> >this board would be most appropriate.\n>> >I was wondering about those massive concrete cylinders that\n>> >are ever present at nuclear poer sites. They look like cylinders\n>> >that have been pinched in the middle. Does anybody know what the\n>> >actual purpose of those things are?. I hear that they're called\n>> >'Cooling Towers' but what the heck do they cool?\n>Great Explaination, however you left off one detail, why do you always\n>see them at nuclear plants, but not always at fossil fuel plants.  At\n>nuclear plants it is prefered to run the water closed cycle, whereas\n>fossil fuel plants can in some cases get away with dumping the hot\n>water.  As I recall the water isn't as hot (thermodynamically) in many\n>fossil fuel plants, and of course there is less danger of radioactive\n>contamination.\n\n       Actually, fossil fuel plants run hotter than the usual \nboiling-water reactor nuclear plants.  (There's a gripe in the industry\nthat nuclear power uses 1900 vintage steam technology).  So it's\nmore important in nuclear plants to get the cold end of the system\nas cold as possible.  Hence big cooling towers.  \n\n       Oil and gas fired steam plants also have condensers, but they\nusually are sized to get the steam back into hot water, not most of the\nway down to ambient.  Some plants do cool the condensers with water,\nrather than air; as one Canadian official, asked about \"thermal \npollution\" de-icing a river, said, \"Up here, we view heat as a resource\".  \n\n       Everybody runs closed-cycle boilers.  The water used is \npurified of solids, which otherwise crud up the boiler plumbing when\nthe water boils.  Purifying water for boiler use is a bigger job than \ncooling it, so the boiler water is recycled.\n\n\t\t\t\t\tJohn Nagle\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5923, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kssimon@silver.ucs.indiana.edu (kenneth steven simon)\nSubject: Re: New Duo Dock info.\nSummary: You don't know the products \nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 27\n\n aw@camcon.co.uk (Alain Waha) writes:\n\n   >> nazario@pop.cis.yale.edu (Edgardo Nazario) writes:\n   >>The info I am about to give is not a rumour, it's the truth. The new\n   >>macintosh coming in the second quarter, will have a cpu of their own. \n\n ]Excuse me but... have not all Macs got a CPU!!!\n\n ]Alain\n\nAlain:\nGet your facts straight before you post something like this.  The Duo\nDock does not have a CPU of its own.  It is a docking station with \nports connecting various components, including the portable PowerBook\nwith its own CPU.  I guess these rumored new Duo Docks have a built-in\nCPU to perform functions of their own.  Interesting!  If they're not\ncompatible with the current Duo models, I think you'll be hearing a\nlot more \"screwed by Apple\" complaints.  Imagine a company obsoleting\n(ooh, a new verb!) a virtually brand new computer... sheesh...\n  \n Ken\n\n-- \n-----------------------------------------------------------------\nKenneth Simon               Dept of Sociology, Indiana University\nInternet: KSSIMON@INDIANA.EDU              Bitnet: KSSIMON@IUBACS \n-----------------------------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5924, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Why not concentrate on child molesters?\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 28\n\nIn article <C5oG5H.4DE@exnet.co.uk>, sys1@exnet.co.uk (Xavier Gallagher) writes:\n> In article <15409@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n> >In article <MJCUGLEY.93Apr14110319@glenturret.maths-and-cs.dundee.ac.uk>, mjcugley@maths-and-cs.dundee.ac.uk (Womble with Attitude) writes:\n# ## Absolutely nothing, seeing as there is no table for heterosexuals.\n# ## If, as you claim, the supposedly higher promescuity amongst homosexual\n# ## males makes them an insurance risk, you need to be show that\n# ## heterosexual males are less promiscuous than homosexual males.\n# ## Without the data on heterosexual males, we cannot make a comparison\n# ## between promiscuity rates of heterosexuals and homosexuals.\n# ## \n# ## *             mjcugley@maths-and-cs.dundee.ac.uk (world)\t\t*\n# ## *              or mjcugley@uk.ac.dund.maths-and-cs (UK)\t\t\t*\n# \n# Well, the obvious point to make is would straight men fuck like rabbits\n# if the oppertunity presented itself?\n# \n# I reckon *any* *man* would go wildly promiscuous if presented with a\n# huge variety of willing partners.  The question here is not of being\n\nThat, I suppose, says a lot about how screwed up you are.\n\n# #Clayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\n# Xavier\n\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5925, "properties": {"category": "sci.electronics", "text": "From: msunde01@mik.uky.edu (Mark  Underwood)\nSubject: Re: Police radar....Just how does it work??\nNntp-Posting-Host: nx35.mik.uky.edu\nReply-To: msunde01@mik.uky.edu\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 32\n\nIn article <1pqb8aINN9vg@hp-col.col.hp.com> cab@col.hp.com (Chris Best)  \nwrites:\n> \n> The manual also got into the \"cosine effect\", wherein the motorist \n> always gets the benefit of the doubt (effectively).  Depending on\n> relative directions of the radar gun and target car, the reading \n> will always be THE SAME AS or LOWER THAN the actual speed of the car.  \n> Never higher.\n> \n> And always remember that the cop doesn't even need radar to ticket you.\n> His (her?) word as a skilled observer is enough. \n\nThe father of a friend of mine is a police officer in West Virginia.  Not  \nonly is his word as a skilled observer good in court, but his skill as an  \nobserver has been tested to be more accurate than the radar gun in some  \ncases . . ..  No foolin!  He can guess a car's speed to within 2-3mph just  \nby watching it blow by - whether he's standing still or moving too!  (Yes,  \nI realize that calibrated guns are more accurate than this, but . . .).   \nHis ability is not that uncommon among people who watch moving things for a  \nliving, I have heard . . ..\n\nSo what good is a radar detector except to give you a split second warning  \nthat the guy who just cut you off to pass the guy ahead and to your left  \nis about to panic stop from 85 on a crowded freeway???\n\nMark S. Underwood\nEE Student, University of Kentucky\nLab Assistant, Boyd Hall Microlab \n\t(a tiny little division of UK Library Microlabs)\nE-Mail:  msunde01@mik.uky.edu\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5926, "properties": {"category": "alt.atheism", "text": "From: qpliu@phoenix.Princeton.EDU (q.p.liu)\nSubject: Re: free moral agency\nOriginator: news@nimaster\nNntp-Posting-Host: phoenix.princeton.edu\nReply-To: qpliu@princeton.edu\nOrganization: Princeton University\nLines: 26\n\nIn article <kmr4.1575.734879106@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n>In article <1993Apr15.000406.10984@Princeton.EDU> qpliu@phoenix.Princeton.EDU (q.p.liu) writes:\n>\n>>>So while Faith itself is a Gift, obedience is what makes Faith possible.\n>>What makes obeying different from believing?\n\n>\tI am still wondering how it is that I am to be obedient, when I have \n>no idea to whom I am to be obedient!\n\nIt is all written in _The_Wholly_Babble:_the_Users_Guide_to_Invisible_\n_Pink_Unicorns_.\n\nTo be granted faith in invisible pink unicorns, you must read the Babble,\nand obey what is written in it.\n\nTo obey what is written in the Babble, you must believe that doing so is\nthe way to be granted faith in invisible pink unicorns.\n\nTo believe that obeying what is written in the Babble leads to believing\nin invisible pink unicorns, you must, essentially, believe in invisible\npink unicorns.\n\nThis bit of circular reasoning begs the question:\nWhat makes obeying different from believing?\n-- \nqpliu@princeton.edu           Standard opinion: Opinions are delta-correlated.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5927, "properties": {"category": "comp.windows.x", "text": "From: mikell@cactus.org (Mikell Vanderlaan)\nSubject: Unisys 22403 emulation\nKeywords: xterm term emulation\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 11\n\n\nHas anyone seen source to an xterm package ready\nto perform UNISYS 22403 TERMINAL EMULATION. \nGot a clunker... and ...  Got a connect!\n\nreturn: mikell@cactus.org\n\n-- \n////////////////////////////mikell@cactus.org/////////////////////////\n////////////////////Calame Linebarger Graham & Pena///////////////////\n//////////////////////////////Attys AT Law////////////////////////////\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5928, "properties": {"category": "soc.religion.christian", "text": "From: Petch@gvg47.gvg.tek.com (Chuck Petch)\nSubject: Anybody out there?\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 30\n\nI seldom see any posts in this group. Is anyone out there in Christendom\nlistening? If so, why don't we get some dialog going here?\n\nHere's a topic to get things started. My daughter's Christian school sends\nhome a weekly update on school related topics. This week they sent\nsomething *very* interesting. It was an article written by the leader of a\nnational (US) Christian school organization about a trip he recently made\nto Jerusalem. While there, he was introduced to one of the rabbis who is\nworking on a project to rebuild the Temple at Jerusalem. The article\nincluded photos of the many furnishings that have already been made in\npreparation for furnishing the rebuilt temple according to the\nspecifications given in the Bible. \n\nWhat was even more striking is the fact that the plans for the temple are\ncomplete and the group is only awaiting permission from the Israeli\ngovernment before beginning the building. The other startling fact is the\nvery recent archeological discovery that the original site of the temple is\nunoccupied and available for building. Previously it has been thought that\nthe original site was underneath what is now a mosque, making rebuilding\nimpossible without sparking a holy war. \n\nNow it appears that nothing stands in the way of rebuilding and resuming\nsacrifices, as the Scriptures indicate will happen in the last days.\nAlthough the Israeli government will give the permission to start, I think\nit is the hand of God holding the project until He is ready to let it\nhappen. Brothers and sisters, the time is at hand. Our redemption is\ndrawing near. Look up!\n\n[Postings are in the range of 30 to 50 per day, except weekends.\nIf people aren't seeing that, we've got propagation problems.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5929, "properties": {"category": "misc.forsale", "text": "From: jorge@erex.East.Sun.COM (Jorge Lach - Sun BOS Hardware)\nSubject: Typewriter w/computer interface\nOrganization: Sun Microsystems Inc. - BDC\nLines: 17\nDistribution: usa\nReply-To: jorge@erex.East.Sun.COM\nNNTP-Posting-Host: erex.east.sun.com\n\nI have the following item for sale:\n\nElectronic Typewriter: Panasonic KT-32, with 22K memory, small LCD display. I'm\n\tselling it bundled with a Panasonic computer interface (RPK105) for this\n\ttypewriter. You can connect it to any PC parallel port (sorry, no\n\tcable). It works perfect, even in Windows (TTY printer). It's\n\tgreat if you need to send letter with \"typewriter look\". In\n\tstand-alone mode it has 3 pitches, and several \"effects\" like\n\tunderline, bold, overstrike. Built-in dictionary and character/word/\n\tline correction. Asking $150 for both the typewriter and the\n\tinterface\n\n-------------------------------------------------------------------------------\nJorge Lach\t\t\tSun Microsystems Computer Corporation\nJorge.Lach@East.Sun.Com\t\tEast Coast Division, Chelmsford, MA\n-------------------------------------------------------------------------------\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5930, "properties": {"category": "rec.autos", "text": "From: rjwade@rainbow.ecn.purdue.edu (Robert J. Wade)\nSubject: Re: '93 Grand Am (4 cyl)\nOrganization: Purdue University Engineering Computer Network\nLines: 16\n\nIn article <HOLCOMB.93Apr19073907@wgermany.ctron.com> holcomb@ctron.com (Edgar W. Ii Holcomb) writes:\n>In article <Apr.18.12.24.26.1993.19337@remus.rutgers.edu> wilmott@remus.rutgers.edu (ray wilmott) writes:\n>\n>   Hi all. A while back I was asking for info about a few different\n>   models, the Grand Am being one of them. Response was generally\n>   favorable; one thing often repeated was \"go for the V6 for some\n>   real power\". Point well taken, but...does anybody have any input\n>   on the 4 cylinders (both the standard OHC, and the \"Quad 4\")?\n>Ray,\n>\n>The High-Output Quad 4 delivers 175 hp (185 for the WF41 Quad 4), whereas\n>the 3.1L V6 offered in the Grand Am delivers 140 hp.  I own a Beretta GTZ\n\nooppss...the v6 in the grand am is the 3.3. litre, not the 3.1.  the 3.3 is\na downsized version of buicks 3.8 litre v6.  the 3.1 v6 goes in the beretta \nand corsica.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5931, "properties": {"category": "talk.politics.guns", "text": "From: diederic@spot.Colorado.EDU (Andrew Diederich)\nSubject: BATF Acronym\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: usa\nLines: 13\n\n  Haven't seen this one on here yet, so here it goes:\n\nB. arely\nA. dequate,\nT. otally\nF. ***ed!\n\n  I don't know about adequate, but it fits the acronym.  =)\n\n-- \nAndrew Diederich                    diederic@spot.colorado.edu\n\nThese opinions are only mine on alternate Tuesdays.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.281+0000", "event": "documents", "entityId": 5932, "properties": {"category": "sci.crypt", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: Re: Once tapped, your code is no good any more.\nLines: 63\nReply-To: hallam@zeus02.desy.de\nOrganization: Deutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\nDistribution: na\n\n\nIn article <1993Apr18.022011.15502@ringer.cs.utsa.edu>, whughes@lonestar.utsa.edu (William W. Hughes) writes:\n\n|>In article <1qpg8fINN982@dns1.NMSU.Edu> amolitor@nmsu.edu\n|>(Andrew Molitor) writes:\n|>>In article <tcmayC5M2xv.JEx@netcom.com>\n|>>tcmay@netcom.com (Timothy C. May) writes:\n|>>\n|>>>-Tim May, whose sig block may get him busted in the New Regime\n|>>                           ^^^^^^^^^^^^^^^^^^\n|>>Isn't this just a little melodramatic?\n|>\n|>Not at all. Two weeks ago I registered a concern about some programming\n|>that was being conducted by a student organisation here at the\n|>University of Texas at San Antonio.  As a result, I was interrogated\n|>by the capus police, who also attempted to create a positive-identification\n|>file (photo, fingerprints, etc.). I refused to permit this, and filed a\n|>complaint with the University administration.  The Vice-President for\n|>Business Affairs (the 'boss' of the campus police) stated that he had no\n|>interest in the legal/Constitutional implications of those actions.\n\nIn article <johnson.735025464@trwacs>, johnson@trwacs.fp.trw.com (Steve Johnson) writes:\n\n|>  A remark I heard the other day is beginning to take on increasingly\n|>frightening significance.  The comment was made that \"In other parts\n|>of the world the Democrats [note the big \"D\"] would be known as\n|>Socialists\" \n\nWe might get further if we begin by accepting that the government \nreally couldn't be bothered less about the political opinions of the \nright wing pro establishment types. Just about the only circumstances \nin which I could think that they would be interested in their political \nviews would be to recruit them as spooks. They can be guaranteed to give\nthe government line when it counts. In US history it has been the \nsocialists such as myself who have been persecuted. \n\n\nNow before people start asserting that there is no mechanism by which\nthe administration can get their new chip adopted without legal force\nlets try thinking.\n\nIn the first place the clipper chip must have existed for several years as\na defense project. Therefore this is not a party matter at all. George Bush\nwas in any case hardly adverse to tapping calls, he was chief spook \nremember.\n\nSecondly the govt can quite easily apply pressure. They simply \"ask\" their\nchums who they give huge defense contracts to (motorola etc) to be \"nice\"\nboys. After all Bill is giving them a nice little trade monopoly since the\nchips won't be avaliable to foreign firms.\n\nThirdly the people who consider the Democrats to be socialist are not the\nsame as the ones who consider socialists to be communist. People might know\nthis if the US education system did not suffer from the Mcarthyite and \nDewy version of political correctness - the sort with tribunals and show \ntrials. Ever seen Ed Meese pissed? I have, it was when he said that socialism\nand communism were the same thing and brought the house down with laughter.\nIt took several minutes before we realised that he was serious.\n\n\nPhill Hallam-Baker\n\nPhill Hallam-Baker\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5933, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Re: Nazi Eugenic Theories Circulated by\nNf-ID: #R:1993Apr19.223054.10273@cirrus.co:779683862:cdp:1483500351:000:2238\nNf-From: cdp.UUCP!cpr    Apr 21 04:44:00 1993\nLines: 42\n\n\nIn my postings I have made a proposal for comments and discussion.\nThose who don't want to discuss its merits and drawbacks are not forced to\ndo so.\n\nHowever I would make anybody who incites others to harm me or harass\nin a personal manner, legally responsible for their deeds. I cannot\naccept and will not accept threats to my personal integrity and I\nurge anybody who opposes terror to refrain from direct or indriect\nthreats.\n\nPS: My proposal has nothing to do with Nazi eugenics. It has to do with\nthe search for peace which would enable justice. I don't consider that\njustice is done, when non-Jews who fled or were expelled in 1948/1967\nare not permitted to return to their homeland. This can at best be called\npragmatism, a nice word for legitimizing the rule of the strong. It can\nnever be called justice. And peace without justice will never be peace.\nIt is my conviction that the situation in which a state, through the\nlaw, attempts to discourage mixed marriages (as Israel does), is not\nnormal. Such a state resembles more Nazi Germany and South Africa than\nWestern democracies, such as the United States, in which Jews are free to\nmarry whom they wish and do so in the thousands. My proposal may have\ndrawbacks but it is meant to force anybody to anything, just to\ncompensate for a certain time mixed couples for the hardships tehy\nendure in a society which disapproves of intermarriage.When the day\nwill come and Israel will become a truly civil and decmoractic society,\nin which the state is not concerned with the religious or ethnic\naffiliation of its constituency, such a Fund would not be needed any\nmore. I don't mind if Jews wish to marry Jews and keep their\ntraditions, why not ? But this is not the affairs of a state. Western\ndemocracy clearly separates these domains and I am certain that\nmost\nAmerican Jews enjoy this fact and would not love to live in a state termed\nChristian State and to have their Green cards stamped with a mark JEW.\n\nI would ask those who are genuinely interested in an exchange of views\nand personal experiencces to refrain from emotional, infantile\noutbursts which might leed readers to infer that Jews who respect\nJudaism are uncivilized. Such behaviour is not good for Judaism.\n\nElias\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5934, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Re: A Little Too Satanic\nOrganization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742\nLines: 43\n\nJon Livesey writes:\n\n>So why do I read in the papers that the Qumram texts had \"different\n>versions\" of some OT texts.   Did I misunderstand?\n\nReading newspapers to learn about this kind of stuff is not the best idea in\nthe world.  Newspaper reporters are notoriously ignorant on the subject of\nreligion, and are prone to exaggeration in the interests of having a \"real\"\nstory (that is, a bigger headline).\n\nLet's back up to 1935.  At this point, we have the Masoretic text, the\nvarious targums (translations/commentaries in aramaic, etc.), and the\nSeptuagint, the ancient greek translation.  The Masoretic text is the\nstandard Jewish text and essentially does not vary.  In some places it has\nobvious corruptions, all of which are copied faithfully from copy to copy.\nThese passages in the past were interpreted by reference to the targums and\nto the Septuagint.\n\nNow, the septuagint differs from the masoretic text in two particulars:\nfirst, it includes additional texts, and second, in some passages there are\nvariant readings from the masoretic text (in addition to \"fixing\"/predating\nthe various corrupted passages).  It must be emphasized that, to the best of\nmy knowledge, these variations are only signifcant to bible scholars, and\nhave little theological import.\n\nThe dead sea scroll materials add to this an ancient *copy* of almost all of\nIsaiah and fragments of various sizes of almost all other OT books.  There\nis also an abundance of other material, but as far as I know, there is no\nsign there of any hebrew antecdent to the apocrypha (the extra texts in the\nseptuagint).  As far as analysis has proceeded, there are also variations\nbetween the DSS texts and the masoretic versions.  These tend to reflect the\nseptuagint, where the latter isn't obviously in error.  Again, though, the\ndifferences (thus far) are not significant theologically.  There is this big\nexpectation that there are great theological surprises lurking in the\nmaterial, but so far this hasn't happened.\n\nThe DSS *are* important because there is almost no textual tradition in the\nOT, unlike for the NT.\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5935, "properties": {"category": "sci.space", "text": "From: thomsonal@cpva.saic.com\nSubject: What counntries do space surveillance?\nOrganization: Science Applications Int'l Corp./San Diego\nLines: 111\n\n      Ethnocentric USian that I am, I've assumed that we and the\nxUSSR were the only countries with significant capabilities to track\nnon-cooperative objects in low Earth orbit. Grazing in a couple of \ndatabases recently,  I found that Japan has some optical capabilities\nalong this line, and also uses a radar designed for other purposes\nfor orbital debris surveys (it isn't clear whether the radar can \ndetermine orbital elements for the objects it detects). Abstracts of \nthe articles are appended. \n\n\n    This leads to the more general question: do yet other people than \nthe US, Russia, and Japan do space surveillance, and if so, how and \nwhy? \n\nAllen Thomson              SAIC                        McLean, VA, USA\n-----------------------------------------------------------------------\n                         ABSTRACTS\n\nOptical tracking of the experimental geodetic satellite (EGS)\nTAKABE, MASAO; ITABE, TOSHIKAZU; ARUGA, TADASHI\nRadio Research Laboratory, Review (ISSN 0033-801X), vol. 34,\nMarch 1988, p. 23-34. In Japanese, with abstract in English.\n     This paper reports the optical tracking results of EGS\n(experimental geodetic satellite) which was launched on August 13,\n1986, by NASDA. The EGS optical tracking experiment process and an\noutline of the Radio Research Laboratory (RRL) optical ground       <----\nstation are discussed. A star tracking technique for optical\nequipment calibration and satellite tracking technique for orbit\nprediction improvement are also described. The accuracy of EGS\ntracking data obtained by RRL at the request of NASDA is also\ndiscussed. In addition, it is briefly demonstrated that the\nposition of the Japanese amateur satellite (JAS-1) which was\nlaunched with the EGS, was accurately determined by means of a      <----\nsatellite tracking video. It is clear from this experiment that     <----\noptical observation data (i.e., satellite direction data) are very  <----\nuseful for satellite orbit determination during initial launch      <----\nstages. Furthermore, the results confirm the effectivenes of these  <----\ntwo satellite optical tracking techniques.                          <----\n\n\nMU radar measurements of orbital debris\nSATO, TORU; KAYAMA, HIDETOSHI; FURUSAWA, AKIRA; KIMURA, IWANE\n(Kyoto University, Japan)\nAIAA, NASA, and DOD, Orbital Debris Conference: Technical Issues and \nFuture Directions, Baltimore, MD, Apr. 16-19, 1990. 10 p. \nRPN: AIAA PAPER 90-1343\n     Distributions of orbital debris versus height and scattering cross \nsection are determined from a series of observations made with a high-\npower VHF Doppler radar (MU radar) of Japan. An automated data \nprocessing algorithm has been developed to discriminate echoes of \norbiting objects from those of undesired signals such as meteor trail \nechoes or lightning atmospherics. Although the results are preliminary, \nthey showed good agreement with those from NORAD tracking radar      <----\nobservations using a much higher frequency. It is found that the     <----\ncollision frequency of a Space Station of 1 km x 1 km size at an \naltitude of 500 km with orbiting debris is expected to be as high as \nonce per two years. \n\n\nMonitoring of the MU radar antenna pattern by Satellite Ohzora (EXOS-C)\nSATO, T.; INOOKA, Y.; FUKAO, S. (Kyoto Univ., Japan); KATO, S.\nKyoto Univ., Uji (Japan). Radio Atmospheric Science Center.\nIn International Council of Scientific Unions, Middle Atmosphere Program.\nHandbook for MAP, Vol. 20 5 p\nPublication Date: Jun. 1986\n      As the first attempt among MST (mesosphere stratosphere \ntroposphere) type radars, the MU (middle and upper atmosphere) radar \nfeatures an active phased array system. Unlike the conventional large \nVHF radars, in which output power of a large vacuum tube is distributed \nto individual antenna elements, each of 475 solid state power amplifier \nfeeds each antenna element. This system configuration enables very fast \nbeam steering as well as various flexible operations by dividing the \nantenna into independent subarrays, because phase shift and signal \ndivision/combination are performed at a low signal level using \nelectronic devices under control of a computer network. The antenna \nbeam can be switched within 10 microsec to any direction within the \nzenith angle of 30 deg. Since a precise phase alignment of each element \nis crucial to realize the excellent performance of this system, careful \ncalibration of the output phase of each power amplifier and antenna \nelement was carried out. Among various aircraft which may be used for \nthis purpose artificial satellites have an advantage of being able to \nmake a long term monitoring with the same system. An antenna pattern \nmonitoring system for the MU radar was developed using the scientific \nsatellite OHZORA (EXOS-C). A receiver named MUM (MU radar antenna \nMonitor) on board the satellite measures a CW signal of 100 to 400 \nwatts transmitted from the MU radar. The principle of the measurement \nand results are discussed.\n\n\nEquatorial radar system\nFUKAO, SHOICHIRO;  TSUDA, TOSHITAKA; SATO, TORU; KATO, SUSUMU\n(Kyoto University, Uji, Japan)\n(COSPAR, IAGA, SCOSTEP, et al., Plenary Meeting, 27th,\nWorkshops and Symposium on the Earth's Middle Atmosphere,\nEspoo, Finland, July 18-29, 1988) Advances in Space Research\n(ISSN 0273-1177), vol. 10, no. 10, 1990, p. 151-154.\n     A large clear air radar with the sensitivity of an incoherent \nscatter radar for observing the whole equatorial atmosphere up to 1000 \nkm altitude is now being designed in Japan. The radar will be built in \nPontianak, West Kalimantan, Indonesia (0.03 deg N, 109.29 deg E). The \nsystem is a 47-MHz monostatic Doppler radar with an active phased array \nconfiguration similar to that of the MU radar in Japan, which has been \nin successful operation since 1983. It will have a PA product of about \n3 x 10 to the 9th W sq m (P = average transmitter power, A = effective \nantenna aperture) with a sensitivity of approximately 10 times that of \nthe MU radar. This system configuration enables pulse-to-pulse beam \nsteering within 20 deg from the zenith. As is the case of the MU radar, \na variety of operations will be made feasible under the supervision of \nthe radar controller. A brief description of the system configuration \nis presented. \n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5936, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jwjohn@ecst.csuchico.edu (Jerry W. Johnson)\nSubject: How to Transfer to Video Tape?\nOrganization: California State University, Chico\nLines: 11\nNNTP-Posting-Host: corpse.ecst.csuchico.edu\n\nHi All,\n  I'm asking for info on behalf of a friend. Is there, what would\nbe, the best way to copy the output of a monitor on to video \ntape? Any ideas? Please prescribe additional hardware and/or \nsoftware? (I'm just assuming an Intel/Windows environment).\nThanks in advance. --Jerry\n-- \n  ||=-=-=-=-=-=-=-=-=-=-|| Help Support DAM ||-=-=-=-=-=-=-=-=-=-=-=||\n  ||      Jerry W. Johnson       ||   Struggling CSCI Grad Student  || \n  ||  jwjohn@ecst.csuchico.edu   ||    (Is There Any Other Kind?)   || \n  ||=-=-=-=-=-=-=-=-|| Mothers Against Dyslexia ||-=-=-=-=-=-=-=-=-=||\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5937, "properties": {"category": "sci.electronics", "text": "From: mniederb@pws2.itr.ch (Niederberger Markus)\nSubject: Characterization of opamps\nOrganization: Interkantonales Technikum Rapperswil (ITR) Switzerland\nLines: 23\n\nHi,\n\nRight now I should do some characterization of opamps. Because I don't  \nhave\nspecial equipment for this task, I have to do this job with relativly  \nsimple\nequipments (Frequency sweeper, DSO, etc.). \nDoes anyone know good test circuitry for characterization of opamps? \nEspecially for measuring open-loop gain, phase margin, PSSR, CMMR and so  \non.\nAre there any books or application notes on this subject available?\n\nPlease reply vi e-mail or nn.\n\nThanks\nMark\n\n__________________________________________________________________________ \n_____\nMark Niederberger\nE-mail: mniederb@itr.ch\n__________________________________________________________________________ \n_____\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5938, "properties": {"category": "misc.forsale", "text": "From: suraj@apollo.cs.jhu.edu (Suraj Surendrakumar)\nSubject: ===> 10 MONTH OLD POLK SPEAKERS FOR SALE <==\nOrganization: The Johns Hopkins University CS Department\nDistribution: usa\nLines: 17\n\n\n\n\t*** 10 MONTH OLD POLK SYSTEM FOR SALE ***\n\nExcellent condition 10 month old (proof available) Polk Monitor 4.6 bookshelf\nspeakers are being offered for sale. The are excellent, and sound great. I am\ngoing for a higher model. So I need to sell these speakers. I paid $250 for\nthe pair of bookshelf speakers. I am willing to consider the best offer. \nSend me your offers. E-mail: suraj@cs.jhu.edu.\n\nAlso have excellent condition Luxman receiver R-351 and Onkyo tape deck\nTA-RW404 for sale. Both are in excellent condition and just 10 months old.\nMakes an excellent system. Paid $950 for receiver, tape deck and speakers\n10 months back, will consider the best offer. Each piece will be sold \nseperately if wanted. E-mail best offer to suraj@cs.jhu.edu\n\n-Suraj\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5939, "properties": {"category": "rec.motorcycles", "text": "From: lynn@pacesetter.com (Lynn E. Hall)\nSubject: Re: story \nKeywords: PARTY!!!!\nNntp-Posting-Host: camellia\nOrganization: Siemens Pacesetter, Inc.\nLines: 20\n\n>lynn@pacesetter.com (Lynn E. Hall) writes:\n>\n>>allowed (yes, there is a God). No open containers on the street was the\n>>signs in the bars. Yeah, RIGHT! The 20 or so cops on hand for the couple of\n>>thousand of bikers in a 1 block main street were not citing anyone. The\n>>street was filled with empty cans at least 2 feet deep in the gutter. The\n>>crowd was raisin' hell - tittie shows everywhere. Can you say PARTY?\n>\n>\n>And still we wonder why they stereotype us...\n>\n>-Erc.\n\n Whacha mean 'we'...ifin they (whom ever 'they' are) want to stereotype me\nas one that likes to drink beer and watch lovely ladies display their\nbeautiful bodies - I like that stereotype.\n  If you were refering 'stereotype' to infer a negative - you noticed we\ndidn't rape, pillage, or burn down the town. We also left mucho bucks as in\nMONEY with the town. Me thinks the town LIKES us. Least they said so.\n                         Lynn Hall - NOS Bros\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5940, "properties": {"category": "rec.motorcycles", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: V-max handling request\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 14\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, ba7116326@ntuvax.ntu.ac.sg () says:\n\n>hello there\n>ican anyone who has handson experience on riding the Yamaha v-max, pls kindly\n>comment on its handling .\n\nYou're kidding, right?  This is Flame bait in the extreme.  V-max handling?\nHar har har har....\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5941, "properties": {"category": "sci.crypt", "text": "From: jef@netcom.com (Jef Poskanzer)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nX-Face: uPIE),q]+zmF49L%(pdE;nX/8$/J22&&&C@_)8BouYx42Y--?*,\\]*MIeTY#mCM(x>FyD@+0D-Jm]S_8lxop(Q-$L#~b8!ha;eF[b+GOLyu<]4$\">NeVymJ@F#M?1O`ue4,h4`2S^KGjmP%no(d,:<Ur:+f6W8$J:'t9BxH\nReply-To: Jef Poskanzer <jef@netcom.com>\nOrganization: Paratheo-Anametamystikhood Of Eris Esoteric\nLines: 22\n\nbrad@clarinet.com (Brad Templeton):\n}And yes, this has to be a public key system or it would be almost\n}impossible to handle.  It might not be RSA, but that does not mean\n}that PKP doesn't get paid.  Until 1997, PKP has the patent on the\n}general concept of public key encryption, as well as the particular\n}implementation known as RSA.\n\nHmm, my first thought was that they're using Diffie-Hellman exponential\nsession key exchange, or an equivalent.  However, the Diffie-Hellman\npatent, like the Hellman-Merkle one on public key systems, claims\nall equivalents, so the basic point stands.\n\nInterestingly, a quote from Jim Bidzos showed up in the media real\nsoon after the announcement, and he sounded very pissed.  Maybe he hadn't\nyet realized that PKP might have just struck gold?  All they have to\ndo is get someone to admit the general scheme that the Clipper uses.\n---\nJef\n\n           Jef Poskanzer  jef@netcom.com  jef@well.sf.ca.us\n\"An object never serves the same function as its image - or its name.\"\n                           -- Rene Magritte\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5942, "properties": {"category": "talk.politics.mideast", "text": "From: adams@bellini.berkeley.edu (Adam L. Schwartz)\nSubject: Re: Israel's Expansion II\nNntp-Posting-Host: bellini.berkeley.edu\nOrganization: U.C. Berkeley -- ERL\nLines: 9\n\nIn article <93111.225707PP3903A@auvm.american.edu> Paul H. Pimentel <PP3903A@auvm.american.edu> writes:\n>What gives Isreal the right to keep Jeruseleum?  It is the home of the muslim a\n>s well as jewish religion, among others.  Heck, nobody ever mentions what Yitza\n>k Shamir did forty or fifty years ago which is terrorize westerners much in the\n> way Abdul Nidal does today.  Seems Isrealis are nowhere above Arabs, so theref\n>ore they have a right to Jerusaleum as much as Isreal does.\n\n\nWhat gives the United States the right to keep Washington D.C.? \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5943, "properties": {"category": "sci.electronics", "text": "From: cmwolf@mtu.edu (Engineer by Day - Asleep by Night)\nSubject: Re: A question about 120VAC outlet wiring.\nOrganization: Michigan Technological University\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 13\n\nDave Martindale (dave@imax.imax.com) wrote:\n: They require two separate grounds.  One ground goes to the ground pin\n: of the outlet, and the other ground wire is connected to the outlet's\n: mounting tabs (and thus grounds the box and faceplate screw and metal\n: faceplate, if any).\n\nI thought the ground WAS connected to the metal frame on the socket.\n\n-- \n------------------------------------------------------------------------------\nChristopher Wolf             Electrical Engineer                cmwolf@mtu.edu\n------------------------------------------------------------------------------\n         Remember, even if you win the Rat Race - You're still a rat.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5944, "properties": {"category": "talk.politics.mideast", "text": "From: mkramer@world.std.com (Mark W Kramer)\nSubject: Re: Seventh Century A.D. Armenian Math Problems\nKeywords: philosphy, Greece, Persians, math \nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 5\n\n\nA delightful message, interesting, and so kindly written.  Thanks.\n\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nProf. M. Kramer, Boston University\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5945, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ntaib@silver.ucs.indiana.edu (Iskandar Taib)\nSubject: Re: Is ms-windows a \"mature\" OS?\nKeywords: ms-windows\nNntp-Posting-Host: silver.ucs.indiana.edu\nReply-To: comp.os.ms-windows.advocacy\nOrganization: Indiana University\nDistribution: usa\nLines: 66\n\nIn article <cyen.735139934@ponder> Jesse writes:\n>hi,\n\n>  Have you used Mac system 6.x or 7.x? If the answer is positive, you would\n>know if ms-windows is a \"mature\" OS.\n\nThis is silly. Is Unix a mature OS? Depends on who you ask, and how\nyou define mature. System 7 is, if anything, less mature than Windows 3.1.\n\n>  Days ago people doubted that ms-windows is not a real OS. I can see why\n>they have such question. Ms-windows confuses many people. Microsoft\n>simulated Mac, but it did a lousy job.  For example:\n\n>(1) You can not create hierarchy groups. There is no way to create a group\n>    in a group. (If you know how, please tell me.)\n\nSo why do you need something like BeHierarchic to create groups under\nthe Apple Menu? Everyone knows that Apple Menu Items are a ripoff of\nthe Program Manager. If you want a hierarchic program launcher there\nare lots available.\n\n>(3) uncomplete documentation. It's not easy to find the reason why causes\n>    an unpredictable error.\n\nAnd this is easy on a Mac? Give me a break. Having spent hours moving\nSystem Extensions around and restarting the Mac to see why a certain\napp crashes all the time, I find this laughable.\n\n>(4) Group deleting/file deleting\n>    After deleting a group, users have to use file manager to delete files.\n>    But if users forget to delete some related files, the disk will be full\n>    of nonsense files.\n\nOh great. Ever hear of aliases? Wonder why Apple implemented them.\n\n>(5) share problem\n>    Once you create two windows doing compilation and editing in some\n>    language (w/o good editor), there will be a sharing problem. You just\n>    can not open or save the program if it is loaded. It makes sense to\n>    prevent from saving, but not opening.\n\nEh?? I don't follow.\n\n>  It's by no means easy to satisfy everybody, but if Microsoft want to\n>keep their reputations, they should evaluate the user interface more\n>carefully before products distribute.\n\nWhy is it that I find the Mac desktop incredibly annoying whenever I\nuse it? \n\n>  No flame, please.\n\nYeah right. You post flame bait, yet ask for no flames. \n\n\n\n\n\n\n\n\n-- \n-------------------------------------------------------------------------------\nIskandar Taib                          | The only thing worse than Peach ala\nInternet: NTAIB@SILVER.UCS.INDIANA.EDU |    Frog is Frog ala Peach\nBitnet:   NTAIB@IUBACS                 !\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5946, "properties": {"category": "rec.sport.hockey", "text": "From: rrmadiso@undergrad.math.uwaterloo.ca (*** CHUCK ***)\nSubject: CORRECTIONS --- Re: Playoff predictions\nOrganization: University of Waterloo\nLines: 29\n\n\nEveryone... Read this.  If you have already sent your predictions, please\ncorrect the Patrick division if you would like.  You have until midnight\non monday (my time.)\n\nYou may need to correct these games...\n\n\n3 - Pittsburgh vs. New Jersey\n4 - New York Islanders vs. Washington\n\n10 - Patrick Division Winner\n\n13 - Wales Conference Winner\n\n15 - Stanley Cup Winner\n\nPlease forward all corrections to\n\nRichard Madison\nrrmadiso@napier.uwaterloo.ca\n\n\n\n>1st rd:\tPens over Isles in 4.\n>\tDevils over Caps in 6.\n>2nd:\tPens over Devils in 7.\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5947, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Sunrise/ sunset times\nOrganization: Express Access Online Communications USA\nLines: 18\nNNTP-Posting-Host: access.digex.net\n\nIn article <1r6f3a$2ai@news.umbc.edu> rouben@math9.math.umbc.edu (Rouben Rostamian) writes:\n>how the length of the daylight varies with the time of the year.\n>Experiment with various choices of latitudes and tilt angles.\n>Compare the behavior of the function at locations above and below\n>the arctic circle.\n\n\n\nIf you want to have some fun.\n\nPlug the basic formulas  into Lotus.\n\nUse the spreadsheet auto re-calc,  and graphing functions\nto produce  bar graphs  based on latitude,  tilt  and hours of day light avg.\n\n\npat\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5948, "properties": {"category": "talk.politics.mideast", "text": "From: hilmi-er@dsv.su.se (Hilmi Eren)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES \nLines: 118\nNntp-Posting-Host: viktoria.dsv.su.se\nReply-To: hilmi-er@dsv.su.se (Hilmi Eren)\nOrganization: Dept. of Computer and Systems Sciences, Stockholm University\n\n\n Henrik?? and Hilmi writes:\n\n\n\n|>henrik]  The Armenians in Nagarno-Karabagh are simply DEFENDING their \n|>henrik]  RIGHTS to keep their homeland and it is the AZERIS that are \n|>henrik]  INVADING their homeland.\n\n\n\n|>HE]     Homeland? First Nagarno-Karabagh was Armenians homeland today\n|>HE]     Fizuli, Lacin and several villages (in Azerbadjan)\n|>HE]     are their homeland. Can't you see the\n|>HE]     the  \"Great Armenia\" dream in this? With facist methods like\n|>HE]     killing, raping and bombing villages. The last move was the\n|>HE]     blast of a truck with 60 kurdish refugees, trying to\n|>HE]     escape the from Lacin, a city that was \"given\" to the Kurds\n|>HE]     by the Armenians.\n\n\n\n|>Nagorno-Karabakh is in Azerbaijan not Armenia. Armenians have lived in Nagorno-\n|>Karabakh ever since there were Armenians. Armenians used to live in the areas\n|>between Armenia and Nagorno-Karabakh and this area is being used to invade \n|>Nagorno- Karabakh. Armenians are defending themselves. If Azeris are dying\n|>because of a policy of attacking Armenians, then something is wrong with this \n|>policy.\t\t************\n\n\n \tAttacking? Who is attacking who? Even the country you live in,USA, have condemned\n\tArmenia for it's attacking. And you start to say that the attackers\n\tare the Azeris?????\n \t\n\t|>Armenians have lived in Nagorno Karabakh ever since there were Armenians\n\n\t?????\n\tAzeris have lived in Nagorno Karabakh ever since there were Azeris...\n\tDon't come with nonsence, there is no reason to attack a people\n\tjust because a man called \"Gorbatjov and co.\" gave the \"freedom\" to the people\n\tin this area.\n\n\n|>If I recall correctly, it was Stalin who caused all this problem with land\n|>in the first place, not the Armenians.\n\n\t\n\n\tIt's easy for people like you to blame history. The were a lot of \n        Indians living in USA. There is no reason for these \n\tIndians to attack the \"American\"\n\tpeople and say:\"It was the fault of the government of Germany and Great \n\tBritain, because they made people come to our place......\" Armenians lived in\n\tharmony with the Azeris until \"Gorbatjov and co.\" gave \"freedom\" to the people\n\tin Karabag, then the Armenians started to kill, rape and torture the Azeris, not only\n\tin Karabag but also noe in Azerbadjan....\n\n|>henrik]  However, I hope that the Armenians WILL force a TURKISH airplane\n|>henrik]  to LAND for purposes of SEARCHING for ARMS similar to the one\n|>henrik]  that happened last SUMMER. Turkey searched an AMERICAN plane\n|>henrik]  (carrying humanitarian aid) bound to ARMENIA.\n\n\n\n|>HE]     Don't speak about things you don't know: 8 U.S. Cargo planes\n|>HE]     were heading to Armenia. When the Turkish authorities\n|>HE]     announced that they were going to search these cargo\n|>HE]     planes 3 of these planes returned to it's base in Germany.\n|>HE]     5 of these planes were searched in Turkey. The content of\n|>HE]     of the other 3 planes? Not hard to guess, is it? It was sure not\n|>HE]     humanitarian aid.....\n\n\n|>What story are you talking about? Planes from the U.S. have been sending\n|>aid into Armenian for two years. I would not like to guess about what were in\n|>the 3 planes in your story, I would like to find out.\n\n\n\n|>HE]     Search Turkish planes? You don't know what you are talking about.\n|>HE]     Turkey's government has announced that it's giving weapons\n|>HE]     to Azerbadjan since Armenia started to attack Azerbadjan\n|>HE]     it self, not the Karabag province. So why search a plane for weapons\n|>HE]     since it's content is announced to be weapons?\n\n\t|>It's too bad you would want Turkey to start a war with Armenia.\t\n \t\t\n\t  That's what i don't want, you couldn't imagine the result of a war.....\n\t  So France, Greece and  USA wants to start fighting with Azerbadjan???? \n\t  They give a lot more weapons to the Armenians without \n\t  saying it, that's no secret any more......\n\n\n\t  I must say that these Armenian Government is very shortsighted.\n\t  Do they think that they shall move from it's neigbours when the war\n \t  is over???? The neighbour around will be there and Armenia must \t \n\t  live in harmony with these if they don't want a \"stone-age\" country,\n\t  for that's what's will happen Armenia if the wars continues.\n\t\n\t  Look, The President of Turkey, Turgut Ozal, died and  Petrosyan\n\t  the Armenian Presindent is now in Turkey for the funeral. Is it because\n\t  he liked him? Sure NOT, because Armenia needs it's neighbours and must\n\t  live with these. But Armenia can't stop this war with continued ordertaking\n\t  from states like France and USA. With other words, if you love your people\n\t  you must think twice.....\n\n\t  And i wonder, \"Shoot down turkish planes\" WITH WHAT????? ohhh i forgot\n\t  the Armenians can't find food but there are a lot of arms from the mentioned\n\t  countries.....\n\n\n\n\n\nHilmi Eren\nStockholm University\nSweden\n\t  \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5949, "properties": {"category": "comp.windows.x", "text": "From: etxmesa@eos.ericsson.se (Michael Salmon)\nSubject: Re: Help building X11R5 with gcc\nKeywords: X11R5, gcc\nNntp-Posting-Host: eos6c02.ericsson.se\nReply-To: etxmesa@eos.ericsson.se (Michael Salmon)\nOrganization: Ericsson Telecom AB\nLines: 23\n\nIn article <1993Apr6.024257.8480@etrog.se.citri.edu.au>\ntim@kimba.catt.citri.edu.au (Tim Liddelow) writes:\n|> Can people please send me any hints on building X11R5 with gcc 2.3.3 ?  Is\n|> there any pitfalls to be avoided ?  Any hints ?  I would appreciate hearing other\n|> peoples' stories on this.\n\nI have been building X11 with gcc since 2.1 and the only time I had\ntrouble was when the position independant code option broke (so I\ncouldn't use gcc to build Sun shared libraries). The important thing to\ndo is to follow the tips given in the gcc release. Gcc generates code\nthat requires libgcc2 and you should take that into account when\ndeciding which compiler to use for the libraries.\n\n-- \n\nMichael Salmon\n\n#include\t<standard.disclaimer>\n#include\t<witty.saying>\n#include\t<fancy.pseudo.graphics>\n\nEricsson Telecom AB\nStockholm\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5950, "properties": {"category": "comp.graphics", "text": "From: sigma@rahul.net (Kevin Martin)\nSubject: Re: XV under MS-DOS ?!?\nNntp-Posting-Host: bolero\nOrganization: a2i network\nLines: 11\n\nIn <1993Apr20.083731.260@eicn.etna.ch> NO E-MAIL ADDRESS@eicn.etna.ch writes:\n>Do somenone know the solution to run XV ??? any help would be apprecied..\n\nI would guess that it requires X, almost certainly DV/X, which commonly\nuses the GO32 (DJGPP) setup for its programs.  If you don't have DV/X\nrunning, you can't get anything which requires interfacing with X.\n\n-- \nKevin Martin\nsigma@rahul.net\n\"I gotta get me another hat.\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5951, "properties": {"category": "misc.forsale", "text": "From: djk@ccwf.cc.utexas.edu (Dan Keldsen)\nSubject: ROK-STEADY keyboard stand FOR SALE - UPDATE\nArticle-I.D.: geraldo.1qodih$2t2\nReply-To: djk@ccwf.cc.utexas.edu (Dan Keldsen)\nDistribution: usa\nOrganization: The University of Texas at Austin, Austin TX\nLines: 29\nNNTP-Posting-Host: tramp.cc.utexas.edu\nOriginator: djk@tramp.cc.utexas.edu\n\nHello again folks!\n \nBeen a while since I last sold thangs, but the last time went with no problems,\nand I'm moving again, so I have a few keyboard stands that I don't need\nanymore and don't want to drag back across the country.\n \n---\nUltimate Support Stand:\n \n**Probably SOLD, will see if it is gone by Saturday (pick-up date).\n \n---\nRok-Steady 3-tier keyboard stand:\n$95 or best offer (try me)\none x-shaped bottom unit, with two sets of \"arms\" that attach\nto that to support keyboard (2) above the main \"X\". \n \n---\nShipping not included in the above prices, but details can be worked out\nif you're interested in these items.\n \ndan keldsen - djk@ccwf.cc.utexas.edu\n-- \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nDan Keldsen            |  Are you now, or have you ever been:\ndjk@ccwf.cc.utexas.edu |  a. A Berklee College student?\nUniv. of Texas, Austin |  b. A member/fan of Billy Death?\nMusic Composition, MM  |  c. a MAX programmer?\nM & M Consultant (ask) |  d. a Think-C & MIDI programmer?\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5952, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wil@shell.portal.com (Ville V Walveranta)\nSubject: Joystick suggestions?\nNntp-Posting-Host: jobe\nOrganization: Portal Communications Company\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 12\n\n\n\tI'm planning on buying a joystick (first time since I sold\n\tmy Amiga five years ago :) for a PC. I have no idea what \n\tkind of stick I should buy. Many people have recommended \n\tvariety of Gravis'es models. Are they any good/the best?\n\n\t-- Willy\n--\n   *    Ville V. Walveranta      Tel./Fax....: (510) 420-0729     ****\n   **   96 Linda Ave., Apt. #5   From Finland: 990-1-510-420-0729  ***\n   ***  Oakland, CA  94611-4838  (FAXes automatically recognized)   **\n   **** USA                      Email.......: wil@shell.portal.com  *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5953, "properties": {"category": "talk.politics.guns", "text": "From: vojak@icebucket.stortek.com (Bill Vojak)\nSubject: Letter To David Skaggs\nDistribution: usa\nOrganization: Storage Technology Corp.\nLines: 136\nOriginator: vojak@icebucket.stortek.com\nNntp-Posting-Host: icebucket.stortek.com\n\nHere is a letter I sent to David Skaggs, (Dem, CO).  Before anybody says\nsomething, yes the letter is a bit \"sharp\" in tone.  I have been writting\nreasonable and polite letters to him for years, and all I get in return\nin the HCI party line.  Since he already is NRA F rated, I don't think that\nupsetting him will harm the cause.  Sorry if you disagree, but recent events\nin Texas REALLY have me pissed.\n\n-------------------\n\t\t\t\t\t\t\tApril  20, 1993\nRepresentative Skaggs,\n\nRecently I wrote to you regarding my outrage over the tactics used by the\nBureau of Alcohol Tobacco and Firearms, (BATF), in Texas.  In your response\nyou stated that \"Events in Texas underscore the need for stricter gun control\nlegislation to keep guns out of the hand of groups such as the Branch Davidians.\nMy question to you is, \"what grounds would you use to deny them access to \nfirearms?\"  Best I can tell this statement underscores your apparent total\nignorance of the subject, and highlights your personal bias against firearms.\nI say this because there are only two possible paths of \"gun control\" which you\ncould have been referencing.\n\nEither:\n1) You were talking about their access to semi-automatics firearms.  In this\ncase I should point out that semi-automatic firearms are legal in most areas of\nthis Country, including Texas and Colorado.  In addition the members of the\n\"cult\" have never been convicted of any crimes which would deny them the ability\nto purchase these weapons.  So under what grounds would you deny them these\nguns?  Their religion?  The fact they they live in a large group alone by\nthemselves?  Because you consider them to be a cult?  Maybe I consider your\nChurch to be a cult!\n\nThis line of reasoning by you borders on the concept of \"thought crimes.\"  You\nand Pat Robertson should really get along.\n\n2) You were referring to the ALLEGED FULLY automatic weapons possessed by the\n\"cult.\"  Under current US law, FULLY automatic weapons have been covered by\nsome of the strictest gun control laws in this Nation.  So if David Koresh\nillegally possessed them, he would have had to circumvent some of the strictest\nlaws we have.  How will more laws help?  By the way, it has been reported that\nDavid Koresh possessed a Federal Firearms License which would have permitted \nhim to possess FULLY automatic weapons.  If true, the 85 people who perished\nMonday in the fire, died so that the Federal government could collect a couple\nhundred dollars in taxes on guns David Koresh didn't declare.\n\nI have heard claims that they were \"stockpiling weapons.\"  Yet considering the\nnumber of people in the complex, even 200+ weapons would not have been out of\nline with gun ownership statistics for all of Texas.  What's next?  A siege of\nDallas/Ft Worth for alleged \"stockpiling?\"\n\nFace it David Skaggs, You have voted for virtually EVERY gun control law that\nhas passed through Congress, yet you claim that you are only for \"reasonable\"\nrestrictions.  Bull****!   Handgun Control Inc. is struggling to maintain\n250,000 PAID members, while the NRA has just exceeded 3,000,000 members.  They\nare still growing at a rate of 2,000 new members per day.  Driving around YOUR\ndistrict I see NRA stickers every day.  In eight plus years of living here I\nhave only seen ONE HCI bumper sticker.  When you vote for your \"reasonable\"\ngun control laws, are you really representing your district, or are you\nrepresenting Sarah Bradys'?\n\n\n\t\t\t\t\tThank You,\n\n\n\n\n\t\t\t\t\tWilliam J. Vojak\n\n\n\n\n\n\t\t\t\t\t\t\tApril  20, 1993\nRepresentative Skaggs,\n\nRecently I wrote to you regarding my outrage over the tactics used by the\nBureau of Alcohol Tobacco and Firearms, (BATF), in Texas.  In your response\nyou stated that \"Events in Texas underscore the need for stricter gun control\nlegislation to keep guns out of the hand of groups such as the Branch Davidians.\nMy question to you is, \"what grounds would you use to deny them access to \nfirearms?\"  Best I can tell this statement underscores your apparent total\nignorance of the subject, and highlights your personal bias against firearms.\nI say this because there are only two possible paths of \"gun control\" which you\ncould have been referencing.\n\nEither:\n1) You were talking about their access to semi-automatics firearms.  In this\ncase I should point out that semi-automatic firearms are legal in most areas of\nthis Country, including Texas and Colorado.  In addition the members of the\n\"cult\" have never been convicted of any crimes which would deny them the ability\nto purchase these weapons.  So under what grounds would you deny them these\nguns?  Their religion?  The fact they they live in a large group alone by\nthemselves?  Because you consider them to be a cult?  Maybe I consider your\nChurch to be a cult!\n\nThis line of reasoning by you borders on the concept of \"thought crimes.\"  You\nand Pat Robertson should really get along.\n\n2) You were referring to the ALLEGED FULLY automatic weapons possessed by the\n\"cult.\"  Under current US law, FULLY automatic weapons have been covered by\nsome of the strictest gun control laws in this Nation.  So if David Koresh\nillegally possessed them, he would have had to circumvent some of the strictest\nlaws we have.  How will more laws help?  By the way, it has been reported that\nDavid Koresh possessed a Federal Firearms License which would have permitted \nhim to possess FULLY automatic weapons.  If true, the 85 people who perished\nMonday in the fire, died so that the Federal government could collect a couple\nhundred dollars in taxes on guns David Koresh didn't declare.\n\nI have heard claims that they were \"stockpiling weapons.\"  Yet considering the\nnumber of people in the complex, even 200+ weapons would not have been out of\nline with gun ownership statistics for all of Texas.  What's next?  A siege of\nDallas/Ft Worth for alleged \"stockpiling?\"\n\nFace it David Skaggs, You have voted for virtually EVERY gun control law that\nhas passed through Congress, yet you claim that you are only for \"reasonable\"\nrestrictions.  Bull****!   Handgun Control Inc. is struggling to maintain\n250,000 PAID members, while the NRA has just exceeded 3,000,000 members.  They\nare still growing at a rate of 2,000 new members per day.  Driving around YOUR\ndistrict I see NRA stickers every day.  In eight plus years of living here I\nhave only seen ONE HCI bumper sticker.  When you vote for your \"reasonable\"\ngun control laws, are you really representing your district, or are you\nrepresenting Sarah Bradys'?\n\n\n\t\t\t\t\tThank You,\n\t\t\t\t\tWilliam J. Vojak\n\n---------------------------\n\n                                Bill Vojak\n                                vojak@icebucket.stortek.com\n\t\t\t\tNRA, ILA,\n                                Colorado Firearms Coalition\n------------------------------------------------------------\nThe CBS Nightly Propaganda With Dan Rather. (RATHER NOT!)\nThe CBS Nightly Propaganda With Dan Rather. (RATHER BIASED!)\n------------------------------------------------------------\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5954, "properties": {"category": "misc.forsale", "text": "From: srfergu@rufus.erenj.com (Scott Ferguson)\nSubject: Re: What's wrong with this picture?\nNntp-Posting-Host: rufus.erenj.com\nOrganization: Exxon Research & Engineering Co.\nLines: 20\n\nIn article <1993Apr3.152922.12050@iscsvax.uni.edu>, harter5255@iscsvax.uni.edu writes:\n|> Fellow netters,\n|> \n|> Is anybody awake out there?  When someone posted a message telling people to\n|> stop posting computer ads to the misc.forsale group, he got about thirty\n|> response here, not to mention the rash of E-Mail I'm sure he received.  Yet,\n|> another person posts a message with the subject line \"blow me\" and an even \n|> worse text, and only 3 or 4 people have the guts to say anything.  The majority\n\nNot to mention the thread about selling someone's wife. I am a guy, therefore\nnot overly bummed by it, but a little common sense would dictate that this\nis offensive to many women, and not really necessary.\n\n-- \n----------------------------------------------------------------------\nScott Ferguson                        Exxon Research & Engineering Co.\nProject Engineer                      New Jersey\n----------------------------------------------------------------------\nAll opinions, not official view of Exxon.\n\"I must ask the question...are we going to play Stonehenge tonight?\"\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.282+0000", "event": "documents", "entityId": 5955, "properties": {"category": "rec.sport.hockey", "text": "From: brifre1@ac.dal.ca\nSubject: Yet more crazy predictions\nOrganization: Dalhousie University, Halifax, Nova Scotia, Canada\nLines: 36\n\n\nWell here it goes...my crazy predictions (which never come true, but hey..)\n\nAdams\n\tBos vs. Buf - Bos in 5 (cakewalk for the hot Bruins)\n\tQue vs. Mon - Que in 6 (best series of the first round)\n\nPatrick\n\tPit vs. NYI - Pit in 5 (NYI wins fourth game)\n\tWas vs. NJD - NJD in 7 (a grueling upset, possibly OT in game 7)\n\nNorris\n\tChi vs. StL - Chi in 5 (StL is no match for Keenan's Krew)\n\tDet vs. Tor - Tor in 6 (Clark steps it up in playoffs this year)\n\nSmythe (who cares?)\n\tVan vs. Win - Win in 7 (so I'm caught up in Teemu-mania, sue me!)\n\tCal vs. LAK - Cal in 5 (LA sucks!!!!!!!!! IMO)\n\nDivision finals\n\tBos vs. Que - Bos in 7 (killer games, watch for Cam to shine)\n\tPit vs. NJD - Pit in 6 (NJD go insane, kill all on ice, but Pit wins)\n\tChi vs. Tor - Tor in 7 (Tor defense finally get it together)\n\tCal vs. Win - Cal in 6 (Win too tired after 1st series)\n\nConference finals\n\tPit vs. Bos - Bos in 6 (Pit too beat up by NJD to play (I hope))\n\tCal vs. Tor - Tor in 6 (Vernon turns into a sieve)\n\nStanley Cup\n\tBos vs. Tor - Tor in 7 (Two totally different teams, who knows? Dreams\n\t\t\t\tcan come true, pig might one day evolve wings)\n\nFeel free to laugh at my predictions, I always do!\n\nBarfly\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5956, "properties": {"category": "rec.sport.hockey", "text": "Subject: canadian silver dollar-stanley cup centennial\nFrom: hammerl@acsu.buffalo.edu (Valerie S. Hammerl)\nOrganization: UB\nNntp-Posting-Host: lictor.acsu.buffalo.edu\nLines: 19\n\n\nHi.  According to my always questionable newspaper, there's a silver\ndollar being minted in Canada, the back of which commemorates the\nanniversary of the Stanley Cup.  Now, I know full well what coins are\nused every day in Canada.  I can easily fish a few out of my pocket\nchange right now, in fact.  My question is, since the loon is the only\ndollar coin that I know is legal tender, is this just a commemorative\ncoin with no monetary exchange value, or what?  Is it the sort of\nthing that only hockey buffs and coin collectors might covet, with no\nchance of it being circulated?  If it is an uncirculated coin, what's\nthe current cost and what's its potential value?  Just curious.  If no\none knows, I'll take this to soc.culture.canada and rec.collecting (or\nwhatever it is).  Thanks again\n\n-- \nValerie Hammerl\t\t\t\"Some days I have to remind him he's not \nhammerl@acsu.buffalo.edu\tMario Lemieux.\"  Herb Brooks on Claude\nacscvjh@ubms.cc.buffalo.edu\tLemieux, top scorer for the Devils, but \nv085pwwpz@ubvms.cc.buffalo.edu  known for taking dumb penalties.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5957, "properties": {"category": "misc.forsale", "text": "From: steveg@ravel.udel.edu (Steven N Gaudino)\nSubject: Dbase IV for sale (price dropped!)\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 3\n\nDbase IV, ver 1.5, 3.5 disks.  Manuals still shrinkwrapped, and all \nregistration materials present.  Asking $125.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5958, "properties": {"category": "talk.politics.guns", "text": "From: pes3@cunixf.cc.columbia.edu (Paul Eric Stoufflet)\nSubject: Re: Die Koresh Die!\nNntp-Posting-Host: cunixf.cc.columbia.edu\nReply-To: pes3@cunixf.cc.columbia.edu (Paul Eric Stoufflet)\nOrganization: Columbia University\nLines: 23\n\nIn article <1r04h8$q5a@umcc.umcc.umich.edu> tim@umcc.umcc.umich.edu (Tim Tyler) writes:\n>\tI was hoping that --however the situation was resolved-- the\n>property would remain intact, so the gov't could sell it to help pay for the\n>hundreds of thousands of dollars of expenses incurred having to babysit\n>Krazy Koresh & his flock of sheep.\n>\n\nIn some South American countries, after political undesirables disappeared,\nthe family would get a notice of death and a bill for the disposal\nof the body.  You apparently think that would be a good idea.\n\nThe Federal Government initiated this action against Koresh and his\nfollowers, surrounded them for 51 days, engaged in psychological\nwarfare, used heavy military equipment against US citizens on\nUS soil; and now that the compound caught fire while they were\npumping in CS gas after knocking holes in the building; disavows\nall responsibility.  Big Brother is NOT always right.\n\n\n ***   Paul Eric Stoufflet\n ***   Columbia Presbyterian Medical Center\n ***   internet: pes3@cunixf.cc.columbia.edu\n ***   All opinions are my own\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5959, "properties": {"category": "sci.electronics", "text": "Subject: Re: Looking for a good Spice book\nFrom: juhan@piko (Juhan Poldvere)\nOrganization: Tartu University, Department of Chemistry\nNntp-Posting-Host: piko.chem.ut.ee\nX-Newsreader: TIN [version 1.1 PL8]Lines: 17\nLines: 17\n\nIn <C5GIA7.7x9@acsu.buffalo.edu> NEIL B. GANDLER \n   (v064mb9k@ubvmsb.cc.buffalo.edu) wrote:\n\n:>   I am an electrical engineering student and its a must that I get familiar\n:> with spice. I have been using it and getting used to it but it would\n:> be great to have a good reference manual that explains everything in an\n:> organized and concise. I current have \"A guide to circuit simulation &\n:> Analysis using spice\". I feel it has the information is just randomly placed\n:> in the book and its not easy to look up small things when you just\n:> need a good reference book. I would appreciate any info. Thanks\n\nThere is a postscript manual at ic.berkeley.edu in pub/spice3/um.3f.ps\ndirectory (about 650kbytes, 126 pages).\n--\nJuhan Poeldvere, ES5QX                               | juhan@chem.ut.ee\nTartu University, Dept. of Chemistry                 | fax:   372 (34) 35440\n2 Jakobi St., EE-2400, Tartu, Estonia, via Stockholm | voice: 372 (34) 35429\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5960, "properties": {"category": "talk.religion.misc", "text": "From: rps@cbnewsh.cb.att.com (raj.sharma)\nSubject: Re: Bhagavad-Gita 2.32\nOrganization: AT&T\nDistribution: usa\nLines: 25\n\nA poster writes:\n\n> In the Kingdom of God (Vaikuntha) the tigers do not eat other living\n> beings. In the material world, everyone is trying to consume everyone\n> else. Therefore we all (even tigers, who are by no means invincible)\n> should try to get out of the miserable material situation and return to\n> the Kingdom of God.\n\n\tIs the so-called material world \"outside\" the Kingdom of God?\n\t\n> Right. But, unfortunately, acting like animals is the number one pastime\n> of modern human beings.\n\n\tAha, animals are inferior, and humans are superior.\n\tHuh?\n\n\t[Isn't the desire to be superior so \"overwhelming?\"]\n\t[that humans constantly \"put down\" even innocent animals.]\n\t\n\n---raj\n\n\t[P.S. - Request: please e-mail a copy of any response to\n\t        raj, as he does not read trm regularly.]\n\t\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5961, "properties": {"category": "sci.med", "text": "From: ndallen@r-node.hub.org (Nigel Allen)\nSubject: Water supplies vulnerable to Milwaukee-type disease outbreak\nOrganization: R-node Public Access Unix - 1 416 249 5366\nLines: 182\n\nHere is a press release from the Natural Resources Defense Council.\n\n New Data Show About 100 Major U.S. Water Supplies Vulnerable To\nMilwaukee-Type Disease Outbreak\n To: National Desk, Environment Writer\n Contact: Erik Olson or Sarah Silver, 202-783-7800, both\n          of the Natural Resources Defense Council\n\n   WASHINGTON, April 14  -- Internal EPA data released\ntoday by the Natural Resources Defense Council reveals that about\n100 large water systems -- serving cities from Boston to San\nFrancisco -- do not filter to remove disease-carrying organisms\nleaving those communities potentially vulnerable to a disease\noutbreak similar to the one affecting Milwaukee.\n   The EPA list is attached.\n   \"These internal EPA documents reveal that the safety of water\nsupplies in many American cities is threatened by inadequate\npollution controls or filtration,\" said Erik Olson, a senior\nattorney with NRDC.  \"Water contamination isn't just a problem in\nBangladesh, it's also a problem in Bozeman and Boston.\"\n   \"As of June 29, 1993, about 100 large surface water systems on\nEPA's list probably will be breaking the law.  The 1986 Safe\nDrinking Water Act requires all surface water systems to either\nfilter their water or fully protect the rivers or lakes they use\nfrom pollution,\" Olson continued.  Some systems are moving\ntowards eventually implementing filtration systems but are\nexpected to miss the law's deadline.\n   Olson pointed out that the threat of contamination is already\na reality in other cities.  A 1991 survey of 66 U.S. surface\nwater systems by water utility scientists found that 87 percent\nof raw water samples contained the Milwaukee organism\ncryptosporidium, and 81 percent contained a similar parasite\ncalled giardia.\n   Adding to the level of concern, a General Accounting Office\nstudy released today by House Health and Environment Subcommittee\nChairman Henry Waxman indicates serious deficiencies in the\nnation's system for conducting and following through on sanitary\nsurveys of water systems.\n   \"This new information raises a huge warning sign that millions\nof Americans can no longer simply turn on their taps and be\nassured that their water is safe to drink.  We must immediately\nput into place programs to protect water sources from\ncontamination and where this is not assured, filtration equipment\nmust be installed to protect the public,\" Olson noted.  \"The time\nhas come for many of the nation's water utilities to stop\ndragging their feet and to aggressively protect their water from\ncontamination; consumers are prepared to pay the modest costs\nneeded to assure their water is safe to drink.\"\n   NRDC is a national non-profit environmental advocacy organization.\n\n   Systems EPA Indicates Require Filtration and Do Not Adequately\nProtect Watersheds\n\n CONNECTICUT\n\n Bridgeport            Bridgeport Hydraulic Co.\n\n MASSACHUSETTS\n Boston                H2O Resource Author (MWRA)\n Medford               MWRA-Medford Water Dept\n Melrose               MWRA-Melrose Water Dept\n Hilton                MWRA-Hilton Water Dept\n Needham               MWRA-Needham Water Division\n Newtoncenter          MWRA-Newton Water Dept.\n Marblehead            MWRA-Marblehead Water Dept\n Quincy                MWRA-Quincy Water Dept\n Norwood               MWRA-Norwood Water Dept\n Framingham            MWRA-Framingham Water Div\n Cambridge             MWRA-Cambridge Water Dept\n Canton                MWRA-Canton Water Div-DPW\n Chelsea               MWRA-Chelsea Water Dept\n Everett               MWRA-Everett Water Dept\n Lexington             MWRA-201 Bedford (PUO WRKS)\n Lynn                  MWRA-Lynn Water & Sewer Co\n Malden                MWRA-Malden Water Division\n Revere                MWRA-Revere Water Dept\n Woburn                MWRA-Woburn Water Dept\n Swampscott            MWRA-Swampscott Water Dept\n Saugus                MWRA-Saugus Water Dept\n Somerville            MWRA-Somerville Water Dept\n Stoneman              MWRA-Stoneman Water Dept\n Brookline             MWRA-Brookline Water Dept\n Wakefield             MWRA-Same as Above\n Waltham               MWRA-Waltham Water Division\n Watertown             MWRA-Watertown Water Division\n Weston                MWRA-Weston Water Dept\n Dedham                MWRA-Dedham-Westwood District\n Winchester            MWRA-Winchester Water & Sewer\n Winthrop              MWRA-Winthrop Water Dept\n Boston                MWRA-Boston Water & Sewer Co\n S. Hadley             MWRA-South Hadley Fire Dist\n Arlington             MWRA-Arlington Water Dept\n Belmont               MWRA-Belmont Water Dept\n Clinton               MWRA-Clinton Water Dept\n Attleboro             Attleboro Water Dept\n Fitchburg             Fitchburg Water Dept\n Northampton           Northampton Water Dept\n North Adams           North Adams Water Dept\n Amherst               Amherst Water Division DPW\n Gardner               Gardner Water Dept\n Worcester             Worcester DPW, Water Oper\n Westboro              Westboro Water Dept\n Southbridge           Southbridge Water Supply Co\n Newburyport           Newburyport Water Dept\n Hingham               Hingham Water Co\n Brockton              Brockton Water Dept\n\n MAINE\n Rockland              Camden & Rockland Water Co\n Bath                  Bath Water District\n\n NEW HAMPSHIRE\n Keene                 City of Keene\n Salem                 Salem Water Dept\n\n VERMONT\n Barre City            Barre City Water System\n Rutland City          Rutland City Water Dept\n\n NEW YORK\n Glens Falls           Glens Falls City\n Yorktown Hts          Yorktown Water Storage & Dist\n Rochester             Rochester City\n Henrietta             Henrietta WD\n Rochester             MCWA Upland System\n Rochester             Greece Consolidated\n New York              NYC-Aquaduct Sys (Croton)\n Chappaqua             New Castle/Stanwood WD\n Beacon                Beacon City\n Mamaronek             Westchester Joint Water Works\n\n PENNSYLVANIA\n Bethlehem             Bethlehem Public Water Sys\n Johnstown             Greater Johnstown Water Auth\n Lock Haven            City of Lock Haven-Water Dept\n Shamokin              Roaring Creek Water Comp\n Harrisburg            Harrisburg City\n Hazleton              Hazleton City Water Dept\n Wind Gap              Blue Mt Consolidated\n Apollo                Westmoreland Auth\n Fayettville           Guilford Water Auth\n Humlock Creek         PG&W-Ceasetown Reservoir\n Springbrook           PG&W-Waters Reservoir\n Wilkes Barre          PG&W-Gardners Creek\n Wilkes Barre          PG&W-Hill Creek\n Wilkes Barre          PG&W-Plymouth Relief\n Altoona               Altoona City Auth\n Tamaqua               Tamaqua Municipal water\n Waynesboro            Waynesboro Borough Auth\n Pottsville            Schuykill Co Mun Auth\n\n VIRGINIA\n Covington             City of Covington\n Fishersville          South River Sa Dist-ACSA\n\n SOUTH CAROLINA\n Greenville            Greenville Water Sys\n\n MICHIGAN\n Sault Ste Marie       Sault Ste Marie\n Marquette             Marquette\n\n MONTANA\n Butte                 Butte Water Co\n Bozeman               Bozeman City\n\n CALIFORNIA\n San Francisco         City & County of San Fran\n\n NEVADA\n Reno                  Westpac\n\n IDAHO\n Twin Falls            Twin Falls City\n\n WASHINGTON\n Aberdeen              Aberdeen Water Dept\n Centralia             Centralia Water Dept\n\n -30-\n-- \nNigel Allen, Toronto, Ontario, Canada    ndallen@r-node.hub.org\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5962, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: Lavishly Funded \"Gun Epidemic\" Propaganda Campaign to Commence\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nDistribution: usa\nLines: 20\n\nIn article <C4txEK.FCq@magpie.linknet.com>, manes@magpie.linknet.com (Steve Manes) writes:\n>Morris the Cat (rats@cbnewsc.cb.att.com) wrote:\n>\n>: Well, as Neal Knox of the Firearms Coalition points out, the full\n>: force of the anti-gun ruling class, their multi-millions, their\n>: polling organizations, their schools, their news media, their\n>: \"entertainment\" media\n>\n>The entertainment media... a \"force of the anti-gun ruling class\"??\n>Is this the same media that's made billions producing films and\n>television that glorify guns and gun users?  Or is that another\n>anti-gun media?\n>\n>You've got to be kidding.\n\nI'm afraid he isn't.  They are a hypocritical lot.  \n\nAl\n[standard disclaimer]\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5963, "properties": {"category": "comp.windows.x", "text": "From: victor@hpfrcu03.FRance.hp.COM (Victor GATTEGNO FRENCH CRC)\nSubject: Re: Running dxterm's onto Apollo from DEC 5000/240\nOrganization: The Internet\nLines: 61\nTo: alf@st.nepean.uws.edu.au\nCc: xpert@expo.lcs.mit.edu\n\n\n> Apollo DN2500 (Domain/OS 10.3, X11R4, Motif ?.?).\n\nI think you are running Xapollo , it's a X11R3 server ...\n\nIf you want a X11R4 server you should install PSKQ3 (10.3.5) or 10.4\n  so you can run Xdomain . \n\n> \n> I get these errors appearing on the DECstation:\n> \n> > dxterm\n> X Toolkit Warning: Cannot convert string \"<Key>apCharDel        \" to type VirtualBinding\n> ...\n> Segmentation fault\n> \n> Any ideas? Is it a Motif problem...are the DEC and Apollo versions of Motif\n> incompatible? Or something to do with XKeysymDB?\n\nIn XKeysymDB you could add : \n!\t\tApollo specific keysyms\n!\napLineDel            : 1000FF00\napCharDel            : 1000FF01\napCopy               : 1000FF02\napCut                : 1000FF03\napPaste              : 1000FF04\napMove               : 1000FF05\napGrow               : 1000FF06\napCmd                : 1000FF07\napShell              : 1000FF08\napLeftBar            : 1000FF09\napRightBar           : 1000FF0A\napLeftBox            : 1000FF0B\napRightBox           : 1000FF0C\napUpBox              : 1000FF0D\napDownBox            : 1000FF0E\napPop                : 1000FF0F\napRead               : 1000FF10\napEdit               : 1000FF11\napSave               : 1000FF12\napExit               : 1000FF13\napRepeat             : 1000FF14\napKP_parenleft       : 1000FFA8\napKP_parenright      : 1000FFA9\n\n\n--\nVictor .\n\n                                            \\     /\n                                              ^ ^  \n______victor@hpfrcu03.france.hp.com_______oOOo_o_oOOo_________________\n\nVictor GATTEGNO \n\n                   \"Be Yourself and not what people expect you to be .\"\n______________________________________________________________________\n                                              (( \n                                               )) \n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5964, "properties": {"category": "comp.graphics", "text": "From: lex@optimla.aimla.com (Lex van Sonderen)\nSubject: Re: Rumours about 3DO ???\nNntp-Posting-Host: emerald\nOrganization: Philips Interactive Media of America\nLines: 20\n\nIn article <h1p4s4g@zola.esd.sgi.com> erik@westworld.esd.sgi.com (Erik Fortune) writes:\n>> better than CDI\n>*Much* better than CDI.\nOf course, I do not agree.  It does have more horsepower.  Horsepower is not\nthe only measurement for 'better'.  It does not have full motion, full screen\nvideo yet.  Does it have CD-ROM XA?\n\n>> starting in the 4 quarter of 1993\n>The first 3DO \"multiplayer\" will be manufactured by panasonic and will be \n>available late this year.   A number of other manufacturers are reported to \n>have 3DO compatible boxes in the works.\nWhich other manufacturers?\nWe shall see about the date.\n\n>All this information is third hand or so and worth what you paid for it:-).\nThis is second hand, but it still hard to look to the future ;-).\n\nLex van Sonderen\nlex@aimla.com\nPhilips Interactive Media\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5965, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Why not concentrate on child molesters?\nArticle-I.D.: optilink.15213\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 20\n\nIn article <7166@pdxgate.UUCP>, a0cb@rigel.cs.pdx.edu (Chris Bertholf) writes:\n> MCARTWR@auvm.american.edu (Martina Cartwright) writes:\n# #The official and legal term for rape is \"the crime of forcing a FEMALE \n# #to submit to sexual intercourse.\"\n# \n# Please, supply me with some references.  I was not aware that all states\n# had the word \"FEMALE\" in the rape statutes.  I am sure others are surprised\n# as well.  I know thats how it works in practice (nice-n-fair, NOT!!), but\n# was unaware that it was in the statutes as applying to FEMALES only,\n# uniformly throughout the U.S.\n# \n# -Chris\n\nThere may be some confusion here.  The Uniform Crime Reports program\nrun by the FBI defines rape as a female victim only crime -- even\nthough some states have the laws de-sexed.  I suspect that this causes\nmale victims of rape to be left out of the UCR data.\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5966, "properties": {"category": "comp.graphics", "text": "From: ajackson@cch.coventry.ac.uk (Alan Jackson)\nSubject: MPEG Location\nNntp-Posting-Host: cc_sysh\nOrganization: Coventry University\nLines: 11\n\n\nCan anyone tell me where to find a MPEG viewer (either DOS or\nWindows).\n\nThanks in advance.\n\n-- \nAlan M. Jackson      Mail : ajackson@cch.cov.ac.uk\n\n     Liverpool Football Club - Simply The Best\n              \"You'll Never Walk Alone\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5967, "properties": {"category": "misc.forsale", "text": "From: delliott@access.digex.com (David N. Elliott)\nSubject: Computer Stuff for sale\nArticle-I.D.: access.1psb9r$j8e\nDistribution: usa\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 25\nNNTP-Posting-Host: access.digex.net\n\nFor sale in the Baltimore - DC Area\n\nOne Mac 2X 8/80 with Radius 24 Bit Color Dual Page display and adapter\nMicrotek 300Z color scanner\nQMS ColorScript 10 Color Postscript Printer\n2400 Baud Modem\nDyanfile with 360 K and 1.2Meg Floppies\n30 Software packages including Pagemaker, Quark Express, Style, Photoshop, etc\n$7000 OBO\n\nOne Compaq LTE 286 with internal modem and 1.5 Meg ram 20 Hard drive \n$750 OBO\n\nOne Compaq SLT 286 with 5 Meg ram and 40 Meg Hard drive \n$950 OBO\n\nOne Compaq 386N motherboard only Make an offer \nthis has just returned from Compaq Service.\n\nSix Muxes with 9600 Baud modems built in.  Make an offer\n\n20 S-100 CPU from a Multi-user TurboDos system Offer\n\nContact Elliott @ (703) 329-7773 office (410) 992-1734 Home\nor delliott@digex.com internet\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5968, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Thumbs WAY WAY WAY DOWN to ESPN\nKeywords: Baseball, goddamn Baseball\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 36\n\ncdash@moet.cs.colorado.edu (Charles Shub) writes:\n>Tuesday, and the isles/caps game is going into overtime.\n>what does ESPN do.....\n>\n>Tom Mees says,  \"we are obligated to bring you baseball\"\n\nWe're probably stuck, as Mike Burger pointed out that the baseball\ndeal was made far in advance of the NHL contract.  WABC did the same\nthing; they were thankful that the Devils were wiped out by 9:30,\nbecause they had to switch over to Yankees baseball.  The proof of \nthe reasons for this is left to the reader ...\n\nIt's too bad, but I wonder if ESPN is stuck with other US local team\ncoverage for their alternate games?  We got NESN's coverage of the\nBruins-Sabres with the Boston homers ... they were awful!!!  I've read\nthat Derek Sanderson is the colour analyst ... I wonder if he spent\nhis early years after hockey as an intern at PRAVDA before landing\nthis job?  *Everything* had to be twisted into something good to say\nabout the Bruin(s) involved ... not even Bill Wirtz's shills on SC\nChicago (Pat Foley, Dale Tallon) were this bad.  And just to be fair,\nSC used to take their feed from ESN (Empire Sports Network), the Sabre\nhomers and they were horrible too ... but they were spacy.\n\nFrom the CNN highlights, I hear Chris Cuthbert's voice from the CBC\ncoverage of the Habs-Nords series.  Too bad that we couldn't get it\non ESPN, with all due respect to the Sabres and the Bruins.\n\nMike Emrick is substituting on the Devils SCNY team for Gary Thorne.\nMike was the original Devils TV play-by-play announcer, by the way.\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5969, "properties": {"category": "misc.forsale", "text": "From: Kam-Chung Cheung <kc35+@andrew.cmu.edu>\nSubject: Squirrel Hill Studio\nOrganization: Masters student, Industrial Administration, Carnegie Mellon, Pittsburgh, PA\nLines: 18\nNNTP-Posting-Host: po3.andrew.cmu.edu\n\n\nSquirrel Hill Studio/Efficiency available in mid May.  My lease is expiring on \n7/31/93.  Perfect for someone looking for temporary housing or someone\nwho wants\nto stay beyond July.\n\n- Nice short walk to CMU\n\n- $325/month\n\n- Plenty of parking space on street\n\n- Quiet neighborhood\n\n- nearly new carpet\n\n- Call 421-8466\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5970, "properties": {"category": "rec.sport.hockey", "text": "From: galvint@cs.nps.navy.mil (thomas galvin)\nSubject: Re: Re-Alignnment, Expansion\nOrganization: Naval Postgraduate School, Monterey\nLines: 33\n\nIn article <C4zHJ1.7xB@idacom.hp.com> andrew@idacom.hp.com (Andrew Scott) writes:\n>In article <1993Apr2.175946.7727@nntpd2.cxo.dec.com> nixdorf@etre (Eric Nixdorf) writes:\n>>\n>>     Looking at the way the divisions were re-aligned, there are six teams each\n>>in the Central (Norris) and Pacific (Smyth) divisions, while there are seven\n>>teams each in the Northeast (Adams) and Atlantic (Patrick) divisions.  The\n>>thought occurs to me that inherent in the realignment is expansion of one team\n>>in the Central division and one team in the Pacific division, although I've\n>>seen nothing published that indicates that.\n>\n>Actually, when the NHL expansion committee was formed a couple of years back\n>(before the Ottawa and Tampa Bay expansion), John Zeigler stated at the time\n>that it was the NHL's expansion plan to grow to 28 teams (7 per division) by\n>the turn of the century.\n>\n>-- \n>Andrew Scott                    | andrew@idacom.hp.com\n>HP IDACOM Telecom Division      | (403) 462-0666 ext. 253\n>\n>During the Roman Era, 28 was considered old...\n\nLast night during a Sharks' broadcast, Commissioner Bettman was\ninterviewed during the first intermission.  He made no bones about it,\nthe expansion to 28 is on permanent hold until he is satisfied that\nthe current allotment of 26 are fully stable.  This means that cities\nlooking for a club in the foreseeable future will have to wait until\none team in some location fails or looks to relocate.\n\nThis is good, IMO.  There's no sense in expanding if it only means\nmore failing franchises are in the mold.\n\n-Tom Galvin             galvint@taurus.cs.nps.navy.mil\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5971, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Re: plus minus stat\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 50\n\n\nIn article 1676@mala.bc.ca, apland@mala.bc.ca (Ron Apland) writes:\n>In article <1993Apr14.174139.6604@sol.UVic.CA>, gballent@vancouver.UVic.CA (Greg  Ballentine) writes:\n>> \n>> To adjust +/-:\n>> \n>> 1. First calculate a teams +/-.  (Goals Scored - PP Goals Scored) -\n>> (Goals allowed - PP Goals Allowed (when they were penalty killing)).\n>> \n>> 2.  Divide this number by 5 to take into account of the fact that there\n>> are 5 players on the ice and each is 1/5 responsible for the team +/-.\n>> \n>> 3.  A players adjusted +/- is (His raw +/-) - (Team Adjustment).\n>> \n>> BTW  If anyone could calculate and post adjusted +/- ratings it would be\n>> greatly appreciated.  I might find the time to do so- but don't count on\n>> it.\n>\n>I have a database filter set up for the player stats.  When it is posted for\n>the end of season I'll repost the team averages.  You don't need to go through\n>the complicated team adjustment you are using - all you need is the team\n>average by summing all the individual players' +\\- and divide by the total\n>number of players on the team.  This will be a little distorted because the\n>players who have been traded recently will have come with +\\- scores based\n>on their original teams.  This shouldn't distort it too bad though.  If you\n>want to look at individual players from this perspective then go ahead -\n>you'll require the original player stats though.\n\nQuestion:\nIf a team uses 40 players in a season do you merely divide the total +/-\nby 40?  If so, a player who plays in only 1 game is considered equally\nvaluable as a player who plays in all of them.\n\n>Another way of looking at the same thing is to compare the deviation from\n>the mean for the team of the player to the standard deviation for the team.\n>I'll post both.\n\nSince the standard deviation for each team is different, I am unsure how \n\"transferable\" between teams that these stats are.  Shouldn't the average\nstandard deviation in the league be used?\n\nI am interested in seeing each method.\nBut I still think that mine is the best. If for no other reason than familiarity.\n\nGregmeister\n\n\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5972, "properties": {"category": "talk.religion.misc", "text": "From: bobsarv@microsoft.com (Bob Sarver)\nSubject: Re: Question for those with popular morality\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 102\n\nIn article <1993Apr03.044958.15500@microsoft.com> bobsarv@microsoft.com (Bob Sarver) writes:\n>understand what the words mean.  Someone who inflicts pain on themselves\n>because they enjoy it is a masochist.\n>\n>And, no:  there is nothing wrong with it.  You may think it's gross or\n>bizarre (and I might agree with you here), but my/your disgust is not equal \n>to it being morally wrong.\n\n/(hudson)\n/If someone inflicts pain on themselves, whether they enjoy it or not, they\n/are hurting themselves.  They may be permanently damaging their body.\n\nThat is true.  It is also none of your business.  \n\nSome people may also reason that by reading the bible and being a Xtian\nyou are permanently damaging your brain.  By your logic, it would be OK\nfor them to come into your home, take away your bible, and send you off\nto \"re-education camps\" to save your mind from ruin.  Are you ready for\nthat?  \n\n\n\n\n\n/(hudson)\n/And why is there nothing wrong with it?  Because you say so?  Who gave you\n/the authority to say that, and set the standard for morality?\n\nWhy?\n\nBecause: \nI am a living, thinking person able to make choices for myself.\nI do not \"need\" you to show me what you think is the way; I have observed\ntoo many errors in your thinking already to trust you to make up the\nrules for me.\n\nBecause:\nI set the standard for my *own* morality, and I permit you to do \nthe same for yourself.  I also do not try to force you to accept my rules.\n\nBecause:\nSimply because you don't like what other people are doing doesn't give you\nthe right to stop it, Hudson.  We are all aware that you would like for \neveryone to be like you.  However, it is obnoxious, arrogant thinking like \nyours, the \"I-know-I'm-morally-right-so-I-can-force-it-on-you\" bullshit \nthat has brought us religious wars, pogroms against Jews, gay-bashing,\nand other atrocities by other people who, like you, \"knew\" they were\nmorally right.\n\n\n\n\n\n(me)\n>What is it with you, Hudson?  You think you know better than other people,\n>so you want to be able to tell them what they can and cannot do to \n>themselves?  Who died and made you God?  How come I can't do the same\n>thing?  \n\n/(hudson)\n/Aren't you?  Aren't you indicating that I should not tell other people what\nto do?  Aren't you telling me it is wrong for me to do that? \n\nIt is not a moral standard that I am presenting you with, Hudson.  It is\na key to getting along in life with other people.  It is also a point of\nrespect:  I trust other people to be intelligent enough to make their\nown choices, and I expect the same to be returned.  You, on the other\nhand, do not trust them, and want to make the choice for them--whether\nthey like it or not.\n\nIt is also a way to avoid an inconsistency:  if you believe that you have \nthe right to set moral standards for others and interfere in their lives, \nthen you must, by logic, admit that other people have the same right of \ninterference in your life.  \n(Yes, I know; you will say that your religion is correct and tells you that\nonly agents acting in behalf of your religion have the right of interference.\nHowever, other people will say that you have misinterpreted the Word of\nGod and that *they* are the actual true believers, and that you are\nacting on your own authority.  And so it goes).\n\n\n\n\n\n(hudson)\n/Who gave\n/you the authority to set such a moral standard for me to tell me that I \n/cannot set a moral standard for others?\n\n\nYou can set all the standards that you want, actually.  But don't be surprised\nif people don't follow you like rats after the Pied Piper.  \n\nAt the most basic form, I am not going to LET you tell me what to do;\nand if necessary, I will beat you to a bloody pulp before I let you actually\ninterfere in my life.\n\nNow, at a more humane level than that, I recognize that all people are\nsentient beings possessed of intelligence and capable of reason.  I also\nrecognize that they, like I, appreciate being treated with respect and\nallowed to make their own decisions.  \n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5973, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bcherkas@netcom.com (Brian Cherkas)\nSubject: Re: HELP! Duo 230 problems\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 41\n\nchess@cats.ucsc.edu (Brian Vantuyl Chess) writes:\n\n\n>  I just got a Duo 230, and I'm having some difficulties.\n>If the machine is plugged in to the wall adapter, put to sleep,\n>unplugged from the wall, and woken up, it crashes 75% of the time.\n>(There's nothing but the original system software on the machine.)\n\n>The battery has plenty of life - I think this must be a power manager\n>problem, but I don't know what to do about it.\n\n>Also, the speaker occasionally makes a high-pitched hiss.  The noise\n>is irregular, but seems to favor sleep and restart commands.\n\nI've had my Duo 230 for a few weeks now and suffer from both\nof the above problems. I reinstalled my system software twice\nin an effort to combat the problems - thinking they were\nsystem software problems. Initially reinstalling the system\nseemed to help but not anymore. Occasionally when I try to\nwake up the Duo I get a solid screen of horizontal lines on\nthe screen - it freezes.\n\nI also get the high-pitched hiss occasionally - but only at\nstartup.\n\nI've called the apple hotline (800 SOS-APPL) three times\nalready and finally they agreed something is astray after my\nDuo's screen would go dim and the hard drive spun down by\nitselft and put itself to sleep. This problem only occured\ntwice. Apple sent me a box to ship my Duo to be looked at in\nNew York but the problem now is intermittent and I can't\nafford to be without my Duo at this time.\n\nAnyone out there with these same problems?\n\n-- \nBrian Cherkas     * *    bcherkas@netcom.com\n                   I   \nAOL/BrianC22      \\_/    compuserve/71251,3253\nNetcom - Online Communication Services San Jose, CA\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5974, "properties": {"category": "rec.sport.hockey", "text": "From: montana@pinetree.org (David Wong)\nSubject: hockey playoff pool: LAST CHANCE!\nKeywords: hockey playoff pool: LAST CHANCE!\nOrganization: Gordon's Pinetree * Ottawa, Ontario, Canada\nLines: 66\n\nThis will be my last post ( promotion ) of the hockey pool.. I will \nupdate the pool ( or try to ) every wednesday\n \nSubject: Please join my hockey playoff pool. \nDeadline for pool: Midnight Saturday\nRules: Read on\nCost: NONE\nPRIZES: NONE\nSend replies to : Montana@pinetree.org\n \nNote: if your entries is send by midnight saturday it will be accepted\n      please include your name\n \n               Rules to the ACME hockey playoff pool \n \nCritierias\n Pick 9 forwards  ( as long as they are forwards LW=RW=C is okay)\n Pick 6 defensemen\n ( arrange them in a lines, 3 forwards and two defense = 1 line \n ( and arranged them in line order , which of your players would       \n ( play in the first line and which plays in the second line \n Pick 1 designated playmaker   \n      ( can be any positions...try a defensemen )\n Pick 1 designated scorer ( can be any positions )\n Pick 1 goal-tender\n Pick a team   ( the one you think may win the cup )           \n                 \n *note: players can only be chosen once !\n ie Cannot have Sakic as forward and again as designated passer\n -----------------------------------------------------------------        \n                 \n Calculation of points: \n  ( except for designated scorer and playmaker)\n   1 assist  = 1 pt   IXI  1 goal = 1 pt  II \n   ( for players in line 1, their pt totals will be *2 )\n          line 1 = pts * 2\n          line 2 = pts * 1.5\n          line 3 = pts * 1\n   1 win     = 2 pt  ( for goalies)\n   \n   The team that wins the Cup = 10 pts\n   \nFor the designated playmaker         Designated\nCalculation will be as follows       Scorer:Goal    = 3 pts\nEvery goal scored = 0.5 points             Assists = 0.5 pts\nEvery assists     = 2 points\n   \n  In the event of a tie, the tie will be broken by unmodified \n  Goal totals and then by game winning goals\n  ----SAMPLE-------------------------------------\n   eg designated scorer = Jeremy Roenick\n      Actual: G=12, A=10, Pts=22  Modified G=(12*3) + A=(10*0.5) = 41\n   .    \n       designated playmaker = Steve Smith\n      Actual: G=1,  A=11, Pts=12  Modified G=(1*0.5)  + A=(11*2) = 22.5\n   .\n   line 1 = J Murphy(24)- G Courtnall(14)- M Messier(14)\n                   Dave Manson(12)-  Iafrate(7)\n       Total points = 142 points for that line!\n\n\n--\n  Internet: montana@pinetree.org (David Wong)\n  UUCP: pinetree!montana\n  Gordon's Pinetree -- Ottawa, ON, Canada -- +1 613 526 0702 -- v.32bis/v.42bis\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5975, "properties": {"category": "rec.sport.baseball", "text": "From: niguma@ug.cs.dal.ca (Gord Niguma)\nSubject: Re: Notes on Jays vs. Indians Series\nNntp-Posting-Host: ug.cs.dal.ca\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nDistribution: na\nLines: 38\n\nIn <1993Apr15.123803.4618@webo.dg.com> lyford@dagny.webo.dg.com (Lyford Beverage) writes:\n\n>In article <1993Apr13.202037.9485@cs.cornell.edu>, tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n>|> In article <rudyC5Fr3q.1CL@netcom.com> rudy@netcom.com (Rudy Wade) writes:\n>|> >In article <C5FMxD.2pM@cs.dal.ca> niguma@ug.cs.dal.ca (Gord Niguma) writes:\n>|> >>reference to history because he certainly didn't have the best season for    \n>|> >>second basemen in history. He probably didn't even have as good a season as\n>|> >>Alomar last year.\n>|> >  \n>|> >What?  Do you have some measure (like popularity in Toronto doesn't count)\n>|> >that you are basing this statement on?\n>|> \n>|> Uh, yes.  Baerga has a lot of flash, but Alomar was the better hitter\n>|> last year.\n>|> \n>|> BATTERS        BA   SLG   OBP   G  AB   R   H  TB 2B 3B HR RBI  BB  SO SB CS  E\n>|> BAERGA,C     .312  .455  .354 161 657  92 205 299 32  1 20 105  35  76 10  2 19\n>|> ALOMAR,R     .310  .427  .405 152 571 105 177 244 27  8  8  76  87  52 49  9  5\n>|> \n\n>This is fascinating.  You say that Alomar was the better hitter last \n>year, and immediately follow that up with numbers showing that Baerga\n>had a better year.  The only category that I see which shows an advantage\n>for Alomar is OBP\n\n Hmmm...what about walks and SB? Baerga got clobbered by Alomar in OBP and\nbeat him in SLG by a lesser margin. Even putting aside any other factors,\na player with a 51 point edge in OBP is more productive than a player with\na 28 point edge in SLG. The issue has been studied before, and I doubt you\ncould come up with any convincing argument the other way.\n People see the batting average and the HR, but they don't really know  \ntheir value is worth unless they've studied the issue closely. The fact is that\nBaerga ate up a LOT more outs than Alomar; while Baerga was making outs,\nAlomar was drawing walks and being on base for Carter, Winfield et.al.\n\n\t\t\t\t\t\tGord Niguma\n\t\t\t\t\t\t(fav player: John Olerud)\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5976, "properties": {"category": "rec.motorcycles", "text": "From: leavitt@cs.umd.edu (Mr. Bill)\nSubject: Re: Countersteering_FAQ please post\nOrganization: The Cafe at the Edge of the Universe\nLines: 39\n\nmjs@sys.uea.ac.uk (Mike Sixsmith) writes:\nmjs>No No No No!! All I am saying is that you don't even need to tell people\nmjs>the technique of countersteering, cos they will do it intuitively the first\nmjs>time they try to go round a corner.\n\nkarr@cs.cornell.edu (David Karr) writes:\nkarr>Are you sure?  Remember that you *can* get around corners without\nkarr>countersteering.  In fact, my Experienced Rider Course instructors\nkarr>claimed that they could get on behind a new rider and make the bike\nkarr>turn to whichever side they wanted just by shifting their weight\nkarr>around, even when the operator was trying to turn in the opposite\nkarr>direction.  (I admit I've never actually seen this.)\n\nI've experienced this, back when I was young(er) and (more) foolish...\n\nMy first bike used to track extremely true.  Going down the highway,\nI would set the throttle tension screw up enough to hold the gas\nsteady, slide back on the seat and lean against the backrest, riding\nwithout any hands.  If I needed to turn, I'd shift my weight into the\nturn, and lo and behold, the bike would turn, sans touching the bars!\nGranted, it wouldn't turn very fast, but it proves that you can turn\na bike without countersteering, at least not in terms of the input\nto the bar normally associated with countersteering.\n\nAs I've said, I know many people who think all you do is lean, and any\ninput they're giving to the bar is totally unconscious.  Whereas that\nmay be sufficient to get you down the road under normal circumstances,\npossibly for years at a stretch, I can't think of anybody who'd argue\nthat this is preferable to properly knowing how to manipulate the bar\nin a turn, regardless of what you want to call it.\n\nExcept maybe for Mr. Sixsmith...  ;^)\n\nMr. Bill\n-- \n+ Bill Leavitt, #224 +   '82 CBX \"White Lightning\", '82 GS850G \"Suzibago\"   +\n+ leavitt@cs.umd.edu + '76 CJ360 \"Little Honda\", '68 Lone Star \"Sick Leave\" +\n+  DoD AMA ICOA NIA  + '69 Impala convertible \"The Incredible Hulk\", others +\n+ \"Hmmm, I thought bore and stroke *was* the technique!\" Michael Bain, #757 +\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.283+0000", "event": "documents", "entityId": 5977, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 85\n\nIn article <1993Apr15.093231.5148@news.yale.edu> (Steve Tomassi) writes:\n>     Hi, baseball fans! So what do you say? Don't you think he deserves it?\n>I\n\n>mean, heck, if Dave Winfield (ho-hum) is seriously being considered for it,\n>as\n\n>is Lee Smith (ha), then why don't we give Dave Kingman a chance? Or Darrell\n\n>Evans! Yeah, yeah! After the Hall of Fame takes in them, it can take in\n>Eddie\n\n>Murray and Jeff Reardon.\n\nUm, what?  Eddie Murray was a superb first baseman for a *long* time.\n\nWinfield as produced consistently for almsot 20 years, and excellently\non several occasions.  \n\nDave Kingman's *best* year was like Darryl Strawberry's *typical*\nyear with the Mets.  \n\nDarrell Evans, too, did a whole lot more than just hit homers, which \n*is* all that Kong did.  \n\n>     Well, in any case, I am sick and tired (mostly sick) of everybody\n>giving\n\n>Hall of Fame consideration to players that are by today's standards,\n>marginal.\n\nWhom are you talking about?  Yes, Eddie Murray is marginal, but that's\nbecause he's 38 years old.  He wasn't marginal for a *long* time.\n\n>Honestly, Ozzie Smith and Robin Yount don't belong there. They're both\n\n>shortstops that just hung around for a long time. Big deal.\n\nNot.  \n\nSmith has hung around for a long time AND fielded the position better \nthan anyone else ever has.\n\nYount stopped being a shortstop about a decade ago, in case you hadn't \nnoticed.\n\nOne of his two MVP awards was as a centerfielder.\n\n>     Let's be a little more selective, huh? Stop handing out these honors\n>so\n\n>liberally. Save them for the guys who really deserve it. Face it, if\n\nLike whom?  There are many players in the Hall who aren't anywhere near\nas goos as the guys you're running down.\n\n>something\n>isn't done, there will be little prestige in the Hall of Fame anymore. When\n\nThat's already the case, by some standards.  But the *bad* players in the \nHall are all from the 20's and 30's.  Recent picks have generally been\nexcellent.\n\n>certain individuals believe that Steve Garvey or Jack Morris are potential\n>candidates, the absurdity is apparent. Gee, can these guys even compare to\n>the more likely future Hall of Famers like Kirby Puckett or Nolan Ryan?\n\nNo, but who cares?  Was Stan Musial anywhere near as good as Babe Ruth?\nNot really.  But he obviously belongs there.\n\nThe Hall has generally had about the top 1% of major leaguers.  As \nmore players come through the game, more will be in that top 1%.  \n\nAnd, yes, it's pretty easy to argue that Smith,. Yount, Evans, Winfield,\netc. are in the top 1%.  Dave Kingman on the other hand, was a liability\nthroughout most of his career.\n\nOf course, Garvey *hasn't* gotten a lot of HOF press, so I don't know\nwhat you mean.  \n\nAs for Ryan, is his W-L better than Morris'?  That's what a lot of voters\ntend to look at.  And Morris *was* awfully good for a decade, and doesn't\nlead MLB history in walks allowed, either.\n\nRoger\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5978, "properties": {"category": "sci.med", "text": "Subject: \"STAR GARTDS\" <sp?> Info wanted\nFrom: kmcvay@oneb.almanac.bc.ca (Ken Mcvay)\nOrganization: The Old Frog's Almanac\nLines: 11\n\nA friend's daughter has been diagnosed with an eye disease called \"Star\nGartds\" (or something close) - it is apparently genetic, according to her,\nand affects every fourth generation.\n\nShe would appreciate any information about this condition. If anything is\navailable via ftp, please point me in the right direction..\n-- \nThe Old Frog's Almanac - A Salute to That Old Frog Hisse'f, Ryugen Fisher \n     (604) 245-3205 (v32) (604) 245-4366 (2400x4) SCO XENIX 2.3.2 GT \n  Ladysmith, British Columbia, CANADA. Serving Central Vancouver Island  \nwith public access UseNet and Internet Mail - home to the Holocaust Almanac\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5979, "properties": {"category": "talk.politics.misc", "text": "From: as010b@uhura.cc.rochester.edu (Tree of Schnopia)\nSubject: Re: New Study Out On Gay Percentage\nNntp-Posting-Host: uhura.cc.rochester.edu\nOrganization: University of Rochester - Rochester, New York\nLines: 26\n\nIn <15378@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n\n\n>The article also contains numbers on the number of sexual partners.\n>The median number of sexual partners for all men 20-39 was 7.3.\n>Compared to the table I have already posted from Masters, Johnson,\n>and Kolodny showing male homosexual partners, it is apparent that\n>homosexual men are dramatically more promiscuous than the general\n>male population.  It's a shame that we don't have a breakdown for\n>straight men vs. gay/bi men -- that would show even more dramatically\n>how much more promiscuous gay/bi men are.\n\nPossibly because gay/bi men are less likely to get married?\n\nWhat was the purpose of this post?  If it was to show a mindless obsession\nwith statistics, an incredibly flawed system of reasoning, and a repellent\nhatemonger agenda, then the purpose was accomplished with panache.\n\n(a) Get a clue.  (b) Get a life.  (c) Get out of my face.  I'm not in yours.\n\nDrewcifer\n-- \n----bi    Andrew D. Simchik\t\t\t\t\tSCHNOPIA!\n\\ ----    as010b@uhura.cc.rochester.edu\t\t\t\tTreeWater\n \\\\  /    \n   \\/     \"Words Weren't Made For Cowards\"--Happy Rhodes\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5980, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: Hismanal, et. al.--side effects\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\nLines: 15\n\nIn article <1993Apr20.212706.820@lrc.edu> kjiv@lrc.edu writes:\n>Can someone tell me whether or not any of the following medications \n>has been linked to rapid/excessive weight gain and/or a distorted \n>sense of taste or smell:  Hismanal; Azmacort (a topical steroid to \n>prevent asthma); Vancenase.\n\nHismanal (astemizole) is most definitely linked to weight gain.\nIt really is peculiar that some antihistamines have this effect,\nand even more so an antihistamine like astemizole which purportedly\ndoesn't cross the blood-brain barrier and so tends not to cause\ndrowsiness.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5981, "properties": {"category": "sci.electronics", "text": "From: johnh@macadam.mpce.mq.edu.au (John Haddy)\nSubject: Re: Oscilloscope triggering\nOrganization: Macquarie University\nLines: 86\nDistribution: world\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\n\nIn article <1993Apr5.120921.28985@dxcern.cern.ch>, jeroen@dxcern.cern.ch (Jeroen Belleman) writes:\n|> In article <C4vs0G.5ux@murdoch.acc.Virginia.EDU> dgj2y@kelvin.seas.Virginia.EDU (David Glen Jacobowitz) writes:\n|> >\tIs it just me, or does anybody else out there NOT like digital\n|> >scopes. My school has ...\n|> >\n|> >\t\t\t\t\tDavid Jacobowitz\n|> >\t\t\t\t\tdgj2y@virginia.edu\n|> \n|> Oh no you're not the only one. Analogue scopes give you (or me, at\n|> least) a fair idea of what's going on in a circuit. Digital scopes\n|> seem to have a habit of inventing a sizable part of it. E.g. even\n|> when there are only a few samples per period, our HP54510A displays a\n|> continuous waveform, complete with non-existing overshoots. I've\n|> waded through lots of manual pages and menus, but I haven't found yet\n|> how to turn this off. It doesn't show which points have actually\n|> been measured, as opposed to those which have been interpolated,\n|> either.\n\nPerhaps you're using the wrong brand! (Sorry all HP fans, but I have\na hard time being convinced that their scopes match the rest of their\n(excellent) gear).\n\nOne of the principal functions I look for when considering a DSO is\nwhether you can turn interpolation off. The other important feature\nis to disable repetitive waveform acquisition i.e. being able to lock\nthe instrument into real time capture mode.\n\n|> \n|> Secondly, I don't like menus. I want to see all common functions\n|> with their own button. (You'll have guessed I love analogue Tek\n|> scopes) I'd choose a knob with printed legend over an on-screen\n|> display with up-down buttons right away. The single knob of most\n|> digital instruments never seems to be connected to the right function\n|> at the right moment.\n|> \n\nI agree with you here. The only consolation is that manufacturers are\n_beginning_ to pay attention to ergonomics when designing the menus.\nHowever, to be fair, it seems that first time scope users (our students)\nseem to adjust to menus easier than navigating around the twenty or\nmore knobs required of a \"real\" scope :-)\n\n|> Last but not least, you never know if the waveform displayed is old\n|> or recent, noisy or just incoherently modulated, heck, you don't\n|> even know if it really looks the way it's displayed. Digital scopes\n|> only show you a tiny fraction of what's going on. Most of the time\n|> the're busy computing things.\n\nThis is one area that newer DSOs are addressing. I recently evaluated\nthe latest box from Tek - their TDS320 - which seems to be a worthy\nalternative to a standard 100MHz analogue CRO. This instrument has\na 100MHz, 500Ms/s spec, meaning that it is _always_ in real time\ncapture mode. The pricing also matches equivalent analogue scopes in\nthe range. The downer is that the instrument uses menus again, but at\nleast they appear to be logically laid out.\n|> \n|> There are only three situations for which I would prefer a digital\n|> scope: Looking at what happened before the trigger, looking at rare\n|> events, and acquiring the data to have my computer play with it.\n|> \n|> \n|> Let's hope scope manufacturers are listening...\n|> \n|> Best regards,\n|> Jeroen Belleman\n|> jeroen@dxcern.cern.ch\n\nOne more thing about the new, \"simpler\", front panels. These instruments\ntend to use digital rotary encoders as knobs now. This is a vast improvement\nover the old oak switch. The single most common cause of failure in our\nscopes (other than students blowing up inputs!) is mechanical wear on these\nswitches. I look at the new panels as a great step toward increasing the\nlongevity of the instruments.\n\nJohnH\n\n----------------------------------------------------------------------------\n\n      |  _  |_   _   |_|  _   _|  _|              Electronics Department\n    |_| (_) | | | |  | | (_| (_| (_| \\/           School of MPCE\n    ---------------------------------/-           Macquarie University\n                                                  Sydney, AUSTRALIA 2109\n\n    Email: johnh@mpce.mq.edu.au, Ph: +61 2 805 8959, Fax: +61 2 805 8983\n\n----------------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5982, "properties": {"category": "talk.politics.mideast", "text": "From: jaskew@spam.maths.adelaide.edu.au (Joseph Askew)\nSubject: Re: Israeli Expansion-lust\nOrganization: Statistics, Pure & Applied Mathematics, University of Adelaide\nLines: 46\n\nIn article <1993Apr15.090735.17025@news.columbia.edu> ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt) writes:\n>In article <2528@spam.maths.adelaide.edu.au> jaskew@spam.maths.adelaide.edu.au (Joseph Askew) writes:\n>>In article <1993Apr13.002118.24102@das.harvard.edu> adam@endor.uucp (Adam Shostack) writes:\n\n>>It depends entirely on how you define 'war'. The actual fighting largely\n>>predates the Arab invasions - after all Deir Yassin happened in midApril\n>>well before the Arab invasion.\n\n>How do you define war?  Do seiges and constant attacks on villiages\n>count as acts of war, or is that only when the Jews do them?\n\nI would hope that if you intend to have a reasonable discussion you might\nwait until I express an opinion before deciding I should be flamed for it.\nAs for 'war' I am not sure how I would define it. If you just look at attacks\non villages then there is no way of deciding when it started. Would you\ncount the riots in the 20's and 30's? Violence but not war. I personally\nthink that 'war', as opposed to civil disturbance or whatever, requires\norganisation, planning and some measure of regualr or semi-regular forces.\nPerhaps the Arab Liberation Army counts. I could easily be convinced it was\nso. From what I know they did not have a great deal of planning let alone\norganisation. The Haganah and Palmach certainly did. That is not a cause\nfor criticism, it merely reflects the great organisation generally in the\n'Zionist' camp.\n\n>Of course, this isn't war, since it's only the Arabs attacking.\n\nNow you are being silly aren't you? In any case the war did NOT start\nwith the invasion of the Arab Armies. You see we both agree on something.\nAnd the previous posters were wrong, no?\n\n>Just like last week when the Fatah launched Katyusha rockets\n>against Northern israel.  Where does uprising end and war begin?\n\nAgain I am not sure, I doubt you want my opinion anyway, but I think\nwar requires organisation as I said before. It needs a group to command\nand plan. If Fatah lauches rockets from Southern Lebanon (and are you\nsure you have the right group - not the Moslems again?) then that sounds\nlike war to me. Stone throwing does not.\n\nJoseph Askew\n\n-- \nJoseph Askew, Gauche and Proud  In the autumn stillness, see the Pleiades,\njaskew@spam.maths.adelaide.edu  Remote in thorny deserts, fell the grief.\nDisclaimer? Sue, see if I care  North of our tents, the sky must end somwhere,\nActually, I rather like Brenda  Beyond the pale, the River murmurs on.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5983, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: scanlonm@rimail.interlan.com (Michael Scanlon)\nSubject: 17\" monitor with RGB/sync to VGA ??\nKeywords: RGB VGA 17\"monitor\nLines: 13\nOrganization: none\nDistribution: usa\n\nI don't know if this is an obvious question, but can any of the current \nbatch of windows accelerator cards (diamond etc) be used to drive a monitor \nwhich has RGB and horizontal and vertical sync ( 5 BNC jacks altogether) \nconnectors out the back??  I might be able to get ahold of a Raster \nTechnologies 17\" monitor (1510 ??)cheap and I was wondering if it was \npossible to connect it via an adapter (RGB to vga ??) to my Gateway, would \nI need different drivers etc.  \n\n\nThanks\n\nMike Scanlon \nplease reply to scanlon@interlan.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5984, "properties": {"category": "comp.sys.mac.hardware", "text": "From: zia@castle.ed.ac.uk (Zia Manji)\nSubject: HELP: PowerBook 160 and Caere Typist Plus Graphics Hand Scanner\nArticle-I.D.: castle.33950\nOrganization: Edinburgh University\nLines: 43\nNNTP-Posting-Host: cs.utexas.edu\n\n\n\t|\n\t||  edited and forwarded by the csm.announce moderator;\n\t||  please respond to the originator by email ALSO; what he\n\t||  needs, besides a cable that works, is a phone-number and\n\t||  AppleLink address for Caere - and a smile and a pat on the\n\t||  back... :-)\n\t|\n\nPlease, I beg you. If you know anything about the Caere Typist Plus\nGraphics Hand Scanner, Please read and solve my problem. I will be\ntruely grateful for the rest of my life!\n\nThe problem is that My Caere Typist Plus Graphics Hand Scanner will not\nconnect to my PowerBook 160. The Cable on the Scanner will not fit into\nthe SCSI port on the PowerBook.\n\nI then got a cable assembled to adapt the original cable to fit the SCSI\nport. This, however, turned the computer into SCSI mode and treated it\nas a hard disk.\n\nI have asked an engineer in London to assembled a new cable. The idiot,\nout of sheer laziness has taken 14 weeks and has yet to solve the\nproblem. \n\nI am aware that Caere Co. in the US have a solution.\n\nDo you know of a cable that will solve this problem. Please help me if\nyou know the solution. I will be forever grateful to you.\n\nMy e-mail address is:\n\n\t\t\tzia@uk.ac.ed.castle\n\n\t|\n\t||  \"wrong side of the road\" syndrom;\t\t:-))\n\t||\n\t||  for us, that's  zia@castle.ed.ac.uk\n\t|\n\nThanking you in advance,\n\nZia.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5985, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jls@atglab.atg.com (Jerome Schneider)\nReply-To: jls@atg.com\nDistribution: world\nSubject: Re: Out of environment space running BAT files from Windows\nOrganization: Aspen Technology Group\nX-Mailer: UUPC/bsnews 2.1 modified\nLines: 42\n\n\n>I have a .BAT file that I run under a Windows Icon.  I have set up a PIF\n>file to run the BAT file in exclusive mode and to use the entire screen.\n>The first line of the BAT file sets an environment variable.\n>\n>My problem is that on some of our machines (running MS-DOS 5.0 and Windows\n>3.1 in enhanced mode), the SET command in the BAT file fails with the\n>OUT OF ENVIRONMENT SPACE error.  I have raised the amount of environment\n>space to 2048 bytes using the SHELL command in CONFIG.SYS so I know that\n>I am nowhere near to running out. \n\n(From the Windows Resource Toolkit (for Win4Workgroups)), add an entry to\nyour \"system.ini\" file under the [NonWindowsApp] section:\n\n    CommandEnvSize=NNNN\n\n\"This sets the COMMAND.COM env size, where NNNN must either be 0 or\nbetween 160 and 32768.  A value of 0 disables the setting.  If this\nvalue is too small or too big, it is rounded up to 160 or down to 32768.\nIf the value is less than the current size of the actual environment,\nthis setting is disabled, as if it were 0.  If you specify the\nenvironment size in a PIF file for COMMAND.COM, the PIF setting\noverrides this setting.  The default is 0 with MSDOS versions earlier\nthan 3.2.  Otherwise, the default value is the /e: option in the\nSHELL= command in CONFIG.SYS.  To set this value, you must edit your\nSYSTEM.INI [and reboot].\"\n\n\nI have used this entry, as well as relied on the default /e: from\nthe CONFIG.SYS shell= line, and both give larger environments.  If\nyou don't use one of these, then the environment passed by windows\nto each new DOS box is just a little bit bigger than the environment\n_variables_ present when windows was started.  (No matter how big\nthe DOS env was, when windows starts, it truncates all unused space\nexcept for a few bytes.)  This should allow your batch file to run,\nbut your mileage may vary.\n\n--\nJerome (Jerry) Schneider             Domain: jls@atg.COM \nAspen Technology Group               UUCP:   {uunet}!csn!atglab!jls\nPO Box 673, Ft. Collins, CO 80522    Voice:  (303) 484-1488\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5986, "properties": {"category": "talk.politics.misc", "text": "From: gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy)\nSubject: Re: Why not concentrate on child molesters?\nOrganization: University of Virginia\nLines: 13\n\nIn article <15407@optilink.COM> walsh@optilink.COM (Mark Walsh) writes:\n#There is a big difference between running one's business\n#affairs, and actively ripping people off.\n\nAnd charging homosexuals more becuase people think that AIDS is a \"gay\ndisease\" is actively ripping people off. \n\n\n--\n-Greg Hennessy, University of Virginia\n USPS Mail:     Astronomy Department, Charlottesville, VA 22903-2475 USA\n Internet:      gsh7w@virginia.edu  \n UUCP:\t\t...!uunet!virginia!gsh7w\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5987, "properties": {"category": "rec.sport.baseball", "text": "From: dan@danberg.llnl.gov (Dan Bergmann)\nSubject: Need software for baseball stats\nArticle-I.D.: danberg.1qkq0q$8rl\nDistribution: world\nOrganization: Lawrence Livermore National Laboratory\nLines: 10\nNNTP-Posting-Host: danberg.llnl.gov\n\n\nI'm looking for software (hopefully free and runs on Unix box) which will\nkeep track of statistics for my company softball team (batting avg. etc.).\n\nIf you know of any please post or respond to me by e-mail. Many thanks.\n\n-- \n**************************************************\n**  Dan Bergmann        dbergmann@llnl.gov      **                          \n**************************************************\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5988, "properties": {"category": "rec.motorcycles", "text": "From: mjs@sys.uea.ac.uk (Mike Sixsmith)\nSubject: Re: Countersteering_FAQ please post\nOrganization: University of East Anglia\nLines: 78\n\negreen@east.sun.com (Ed Green - Pixel Cruncher) writes:\n\n>In article 735207403@zen.sys.uea.ac.uk, mjs@sys.uea.ac.uk (Mike Sixsmith) writes:\n>>egreen@east.sun.com (Ed Green - Pixel Cruncher) writes:\n>>\n\n>1.  All of us that argue about gyroscopes, etc., throughly understand\n>the technique of countersteering.\n\nIncluding all the ones who think that they countersteer all the way\nthrough a corner??\n\n>The underlying physics are a\n>different matter, and need not be taught to beginners. \n\nAgreed!\n\n>Countersteering\n>(the technique), should be taught, for only with understanding of the\n>technique can one develop maximally effective emergency avoidance\n>manuvers.\n\nThis is really the only thing we disagree on. Maybe we should agree to\ndisagree?? I still think  that telling newbies to steer left to turn\nto the right is unnecessarily confusing, when they'll do it anyway if they\njust get on the bike and ride the damn thing.\n\n\n>2. *I* know exactly what's happening.  It's those *other* gits that\n>haven't a clue!  :^)\n\n\nMe too!!\n\n:-)\n\n\n>>Understanding the physics of traction is fine - but I cannot see how\n>>detailed theory like that has any place in a motorcyle training course.\n>>All you need to know is that maximum traction is obtained with the tyre\n>>*just* beginning to slide against the road.\n\n>Then we are in violent disagreement.  While what you state is true, it\n>is insufficient to form a traction management policy.  Available\n>traction increases with applied normal force, ie, traction available to\n>the front wheel increases as weight shifts under braking forces, and\n>correspondingly decreases at the rear.  Thus, a *technique* of applying\n>both brakes, and easing off the rear and increasing pressure on the\n>front, can best be learned with an understanding of weight shift and\n>available traction.\n\nJeez, Ed, when you started talking about traction management policies I\nthought you were making some weird reference to looking after railway\nlocomotives...\n\nThe official line here (though I do have my doubts about it) is that the\nfront brake is applied first, followed by the rear brake, the idea being\nthat you avoid locking up the rear after weight transfer takes place. In\npractice I suspect most people do what you describe.\n\n>Saying, \"brake until the tire just begins to slide\" is next to useless\n>advice to a newbie.  He has to go out and slide the tire to find out\n>where that is!  It also gives him zero information from which to\n>develop a braking technique that changes as the braking and\n>corresponding weight shift develop.\n\nIf you don't slide the tyre, you have no way of knowing whether you've\nachieved maximum braking or not. I'm not suggesting that you should always\naim to brake as hard as you possibly can - but if you want to find the\nlimits of the machine, you have to go beyond them. \n\nIn any case, for maximum braking, if (as I suggested) you aim to keep\nboth wheels just on the point of sliding, then you'll be doing\nexactly as *you* suggest!!\n\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5989, "properties": {"category": "comp.windows.x", "text": "From: jessea@u013.me.vp.com (Jesse W. Asher)\nSubject: X version of whois??\nOrganization: Varco-Pruden Buildings\nLines: 8\n\nHas an X version of whois been written out there?  If so, where can I ftp it\nfrom?  Thanks.\n\n-- \n      Jesse W. Asher                                          (901)762-6000\n                             Varco-Pruden Buildings\n                 6000 Poplar Ave., Suite 400, Memphis, TN  38119\n    Internet: jessea@vpbuild.vp.com                   UUCP: vpbuild!jessea\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5990, "properties": {"category": "rec.motorcycles", "text": "From: bgardner@bambam.es.com (Blaine Gardner)\nSubject: Re: Why I won't be getting my Low Rider this year\nKeywords: congratz\nArticle-I.D.: dsd.1993Apr6.044018.23281\nOrganization: Evans & Sutherland Computer Corporation\nLines: 23\nNntp-Posting-Host: bambam\n\nIn article <1993Apr5.182851.23410@cbnewsj.cb.att.com> car377@cbnewsj.cb.att.com (charles.a.rogers) writes:\n>In article <1993Mar30.214419.923@pb2esac.uucp>, prahren@pb2esac.uucp (Peter Ahrens) writes:\n \n>> That would be low drag bars and way rad rearsets for the FJ, so that the \n>> ergonomic constraints would have contraceptive consequences?\n>\n>Ouch. :-)   This brings to mind one of the recommendations in the\n>Hurt Study.   Because the rear of the gas tank is in close proximity\n>to highly prized and easily damaged anatomy, Hurt et al recommended\n>that manufacturers build the tank so as to reduce the, er, step function\n>provided when the rider's body slides off of the seat and onto the\n>gas tank in the unfortunate event that the bike stops suddenly and the \n>rider doesn't.  I think it's really inspiring how the manufacturers\n>have taken this advice to heart in their design of bikes like the \n>CBR900RR and the GTS1000A.\n\nI dunno, on my old GS1000E the tank-seat junction was nice and smooth.\nBut if you were to travel all the way forward, you'd collect the top\ntriple-clamp in a sensitive area. I'd hate to have to make the choice,\nbut I think I'd prefer the FJ's gas tank. :-)\n-- \nBlaine Gardner @ Evans & Sutherland\nbgardner@dsd.es.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5991, "properties": {"category": "soc.religion.christian", "text": "From: aaron@binah.cc.brandeis.edu (Scott Aaron)\nSubject: Re: iterations of the bible\nReply-To: aaron@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 24\n\nOFM replies to a question on the multiplicity of translations of the bible,\n\n>As far as I know, no Christians\n>believe that the process of copying manuscripts or the process of\n>translating is free of error.  \n\nUnfortunately, this isn't true.  On another news group earlier this year,\nsomeone posted that the King James Bible was the divinely inspired version\nof the Bible in English and was, therefore, inerrant; all other English\ntranslations were from Satan, trying to deceive the body of Christ.  A\nfew years ago, the pastor of a church I was attending showed me a poster\nadvertising the availability of a certain man to address congregations.\nVery prominantly on the poster was the fact that the man used only the KJV.\nThe idea that the KJV is THE English Bible is more prevalent than many\nmight think.\n\n  -- Scott at Brandeis\n\n\t\"But God demonstrates His     \"The Lord bless you, and keep you;\n\t own love for us, in that      the Lord make His face shine on you,\n\t while we were yet sinners,    and be gracious to you;\n\t Christ died for us.\"\t       the Lord lift up His countenance on you,\n\t\t\t\t       and give you peace.\"\n\t\t-- Romans 5:8 [NASB]\t\t-- Numbers 6:24-26 [NASB]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5992, "properties": {"category": "rec.motorcycles", "text": "From: jd@zorro.tyngsboro.ma.us (Jeff deRienzo)\nSubject: bike for sale in MA, USA\nKeywords: wicked-cool\nOrganization: ClickTech, Tyngsboro, MA\nLines: 15\n\nI've recently become father of twins!  I don't think I can afford\n to keep 2 bikes and 2 babies.  Both babies are staying, so 1 of\n the Harleys is going.\n\n\t1988 883 XLHD\n\t~4000 mi.  (hey, it was my wife's bike :-)\n\t4speed, chain secondary, laced wheels, buckhorns,\n\t tachometer, saddlebags & supports, sissy bar, SE\n\t high-flow air cleaner\n\tdark candy red\n\t$3700\n\n---\n Jeff deRienzo\n jd@zorro.tyngsboro.ma.us\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5993, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: various migraine therapies\nArticle-I.D.: pitt.19396\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 21\n\nIn article <C4HtMw.H3J@olsen.ch> lindy@olsen.ch (Lindy Foster) writes:\n>I've been treated to many therapies for migraine prophylaxis and treatment,\n>and it looks like they'll try a few more on me.  I have taken propanolol\n>(I think it was 10mg 3xdaily) with no relief.  I have just been started\n\n\n30mg per day of propranolol is a homeopathic dose in migraine. \nIf you got fatigued at that level, it is unlikely that you will\ntolerate enough beta blocker to help you.  \n>\n>If we go the antidepressant route, what is it likely to be?  How do\n>antidepressants work in migraine prophylaxis?\n>\n\nProbably a single nightime dose.  We don't know how they work in migraine, but\nit probably has something to do with seratonin.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5994, "properties": {"category": "talk.politics.guns", "text": "From: oldham@ces.cwru.edu (Daniel Oldham)\nSubject: Blast them next time\nOrganization: Computer Engineering and Science, Case Western Reserve University\nLines: 21\nDistribution: usa\nNNTP-Posting-Host: king.ces.cwru.edu\n\nWhat happened in Waco is not the fault of the BATF. If they would of\nhad the proper equipment and personal then they could of captured the\ncompound on the initial assault and none of this would of happened.\n\nThe BATF needs more people, better weapons and more armored\ntransports. When they meet hostile fire they should be able to use\nmore force instead of retreating to a stand off. If you are going to\ndo a job then do it right. The BATF is there to protect us and they\nmust have the proper equipment and people to do the job.\n\nWith the WoD and the increased crime in the streets the BATF is needed\nmore now then ever. If they blast away a few good fokes then that is\nthe price we all have to pay for law and order in this country. Look\nat all the good people that died in wars to protect this great country\nof ours.\n\nWith the arms build up in Waco they needed to hit that compound with\nmega fire power. They could of gone in there blasting and killed a few\nwomen and kids but it would of been better then letting them all burn\nto death 51 days later.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5995, "properties": {"category": "comp.windows.x", "text": "From: klee@synoptics.com (Ken Lee)\nSubject: Re: XAllocColor fails to return nearest match\nReply-To: klee@synoptics.com\nOrganization: SynOptics Communications, Santa Clara CA\nLines: 19\nNntp-Posting-Host: bugsbunny.synoptics.com\n\nIn article 54297@slate.mines.colorado.edu, agallagh@slate.mines.colorado.edu (GALLAGHER ANDREA J ) writes:\n>[posted for a friend]\n>\n>Okay, I looked through the FAQs and didn't see this, but I know its\n>come up before...\n>\n>XAllocColor is supposed to do the following in order:\n>    Try to find an exact match read-only color cell. (within hardware limits)\n>    Try to allocate a read-only colorcell and set it to match.\n>\tand when all else fails, \n>    Return the colorcell with the best match from the read-only colors \n>    already allocated in the colormap.\n\nWhere did you hear this?  If it is printed in a book somewhere,\nthrow away the book.  According to the MIT specs, only the first\n2 are true.\n\n---\nKen Lee, klee@synoptics.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5996, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Devils and Islanders tiebreaker????\nOrganization: University of Toronto Chemistry Department\nLines: 16\n\nIn article <C5LFA4.E10@murdoch.acc.Virginia.EDU> cal2d@csissun11.ee.Virginia.EDU (Craig Allen Lorie) writes:\n>According to the hockey gurus over at ESPN, should the Islanders win tonite\n>the two teams will have the same record, but the Devils will be playing the\n>Penguins.  This is because the Islanders have won the season series against\n>the Devils.  I think the rules for deciding a tie breaker include:\n>\n>1.  season series\n>2.  goals against\n>3.  goals for\n>\n>in this order (correct me if I'm wrong).  Anyone have anything to add?\n>\n\nI thought it was 1) wins 2) goals for.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5997, "properties": {"category": "comp.graphics", "text": "Organization: Penn State University\nFrom: <JER114@psuvm.psu.edu>\nSubject: Targa format-->text file\nLines: 7\n\n  Does anyone know how to convert a targa or similar 24 bit picture into a list\n of R G B values and then convert back to targa after doing operations on the p\nixels R G B codes.\nex.  Targa ---->000100255pixel 1\n001200201pixel 2etc....\nIf no one can help me with this could someone explain how the 24 bit data is st\nored in the targa file and also how its stored in the 8 bit targas.   Thanks\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5998, "properties": {"category": "comp.sys.mac.hardware", "text": "From: durtralp@ux1.isu.edu (Ralph Durtschi)\nSubject: Re: IIsi clock upgrade\nOrganization: Idaho State University, Pocatello\nLines: 47\n\nHi, I have been getting a lot of requests for this information so I thought\nI would post it for those interested parties. (Sorry for length).\n\nTo increase the MacIISi speed to 25MHz or 33MHz the clock must be changed\nfrom 40MHz to 50MHz or 64MHz respectively.\nThis is done by going to a static-free work station or putting some\naluminum foil down to work on.\n\t1. Open up the Si by lifting the tabs at the back of the case.\n\t2. Remove the Hard Disk by disconnecting the power and SCSI cables,\n\t\tspreading the tabs, and lifting the drive out.\n\t3. Remove the flopy drive.\n\t4. Remove the power supply by spreading the tab in front and lifting\n\t\tthe supply straight up and out.\n\t5. Remove the fan by pressing the ears together at the back, bottom\n\t\tside of the fan and lifting straight up and out.\n\t6. Remove the Mother Board by spreading the tabs on the left and\n\t\tright side of the board and sliding the board forward then\n\t\tlifting the board out. (all connectors on the back of the\n\t\tboard must be removed first)\n\t7. Desolder the 40MHz clock (the one closest to the memory modules).\n\t\tThis is not easy even for a skilled solderer.\n\t8. Get an IC socket with the round pins and remove four of the pins\n\t\tby pushing them up from the bottom with long nose pliers.\n\t9. Put the four pins in the holes vacated by the clock and solder \n\t\tthem in.\n\t10.Insert a 50MHz or 64MHz clock.\n\t11.Put large power transistor heat sink's on the processor chip and \n\t\tthe other large chip just to the right of the processor and\n\t\tfigure some way to hold the heat sync's in place. I made a\n\t\tsimple clamp by putting a four inch screw up through the hole\n\t\tin the board between the two chips. Mount the screw using\n\t\tinsulated washers. Screw a cross member down over the heat\n\t\tsync's to hold them in place. Don't use too much pressure.\n\n\t12. Put it all back together and go-for-it.\n\nDisclaimer: this is only the procedure I used and is not authorized by anyone.\n\t    You are on your own for this procedure. I'm quite sure it will\n\t    void your warentee.\n\nBye for now,\n************************************************\nRalph Durtschi    (208) 236-3256\nIdaho State University\nEMAIL:  durtralp@ux1.isu.edu\n************************************************ \n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 5999, "properties": {"category": "talk.politics.misc", "text": "From: mikea@zorba.gvg.tek.com (Michael P. Anderson)\nSubject: Re: Temper tantrums from the 1960's\nDistribution: usa\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 11\n\nIn article <15413@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n\n>What they broke in the DNC for is still open to serious question.\n\nSome tape archivists suggest what they were after had something to do with\nthe Kennedy assasination. Let's hear all of the tapes real soon, shall we?\n \n\n\t\t\t\t\t\t\t\t\tMPA\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 6000, "properties": {"category": "sci.electronics", "text": "From: schuch@phx.mcd.mot.com (John Schuch)\nSubject: Food Dehydrators\nNntp-Posting-Host: bopper2.phx.mcd.mot.com\nOrganization: Motorola Computer Group, Tempe, Az.\nDistribution: usa\nLines: 9\n\n  Does anybody out there have one of those food dehydrators I've been seeing\nall over late-night TV recently? I was wondering if they use forced air, heat,\nor both. If there's heat involved, anybody know what temperature they run at?\nMy wife would like one and I'm not inclined to pay >$100.00 for a box, a fan\nand a heater. Seems to me you should be able to throw a dehydrator together\nfor just a few bucks. Heck, the technology is only what? 1,000 years old?\n\nJohn\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 6001, "properties": {"category": "sci.space", "text": "From: dietz@cs.rochester.edu (Paul Dietz)\nSubject: Re: nuclear waste\nOrganization: University of Rochester\n\nIn article <844@rins.ryukoku.ac.jp> will@rins.ryukoku.ac.jp (William Reiken) writes:\n\n>\tOk, so how about the creation of oil producing bacteria?  I figure\n> that if you can make them to eat it up then you can make them to shit it.\n> Any comments?\n\nThey exist.  Even photosynthetic varieties.  Not economical at this\ntime, though.\n\n\tPaul F. Dietz\n\tdietz@cs.rochester.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.284+0000", "event": "documents", "entityId": 6002, "properties": {"category": "rec.autos", "text": "From: sergei@is.morgan.com (Sergei Poliakoff)\nSubject: Re: WARNING.....(please read)...\nNntp-Posting-Host: nyis113\nOrganization: Morgan Stanley - IS\nLines: 19\n\nmchaffee@dcl-nxt07 (Michael T Chaffee) writes:\n|> : be valued in terms of money because they are human beings, I submit \n|> that they are not human beings.  \n\nSuch submissions have been made before, e.g. regarding Jews.\n \nIn article <1993Apr21.042234.23924@nuscc.nus.sg>, matmcinn@nuscc.nus.sg (Matthew MacIntyre at the National University of Senegal) writes:\n|> Absolutely. A scratch on my car bothers me more than the death of any\n|> number of scum. All of you feel the same way---you just won't admit it.\n|> When are people going to realise that the mere fact that a piece of flesh\n|> moves and has the approximate shape of a human being does not in itself\n|> mean that it has \"rights\"?\n\nAll you Dirty Harry types, eager to pull a gun on  some scum guilty of \nscratching your stupid painted metal boxes on wheels : have you ever \nKILLED a human to speak so lightly about such matters  ?\n\nSergei\n \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6003, "properties": {"category": "talk.politics.guns", "text": "From: yoony@aix.rpi.edu (Young-Hoon Yoon)\nSubject: Re: JFFO has gone a bit too far\nNntp-Posting-Host: aix.rpi.edu\nDistribution: usa\nLines: 29\n\nrats@cbnewsc.cb.att.com (Morris the Cat) writes:\n\n\n>|>Would somebody please post evidence that the gun control act of\n>|>1968 is \"a verbatim transcription\" of a nazi law?\n\n>|The \"evidence\" is that the two laws are basically identical.\n>|However, that's not evidence that one is a copy of the other.\n\n>|There's no evidence that the 68 GCA's authors used the nazi law as a\n>|guide.  Yes, they ended up with roughly the same thing, but that comes\n>|from their shared goal, disarming those menacing minorities.\n\n>I thought the same thing too, until JPFO's RKBA article \n>in the latest Guns & Ammo\n>at the newstands. This article makes it certain that Sen. Thomas Dodd\n>(D-MD?) back before 1968 definitely asked for a translation of the \n>German weapons laws back then. Read the article, and see what you think\n>of JPFO's argument. They note that Ted Kennedy and John Dingell are\n>among the three of the originals left from the 1968 stuff, and they\n>are asking that folks request of John Dingell that he introduce \n>legislation to lift GCA '68, something which I would support whole-\n>heartedly!\n\n>|-andy\n\nCan someone post a general idea of what GCA '68 does?\nThanks.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6004, "properties": {"category": "sci.med", "text": "From: sjha+@cs.cmu.edu (Somesh Jha)\nSubject: What is \"intersection syndrome\" near the forearm/wrist?\nNntp-Posting-Host: gs73.sp.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 17\n\n\nHi:\n\nI went to the orthopedist on Tuesday. He diagnosed me as having\n\"intersection syndrome\". He prescribed Feldene for me. I want\nto know more about the disease and the drug.\n\nThanks\n\n\nSomesh\n\n\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6005, "properties": {"category": "comp.windows.x", "text": "From: jbore@cosmos.shearson.com (Joe Bore)\nSubject: Re: iconize a running application?\nIn-Reply-To: doomer@teal.csn.org's message of Thu, 15 Apr 1993 05:35:22 GMT\nOrganization: Lehman Brothers\nLines: 39\n\nit doesnt matter what window mgr you running under, you can use the X\nroutine:\n\tXIconfiyWindow(display, w, screen_number)\n\t\tDisplay *display;\n\t\tWindow w;\n\t\tint screen_number;\n\nas in\n\n\tXiconifyWindow( XtDisplay(w), XtWindow(w), 0);\n\ndoes that perform what you want??\n\n\nIn article <C5IFJ0.F2u@csn.org> doomer@teal.csn.org (John Dumais) writes:\n\n   Newsgroups: comp.windows.x\n   Path: shearson.com!uupsi!psinntp!uunet!haven.umd.edu!darwin.sura.net!wupost!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!csn!teal.csn.org!doomer\n   From: doomer@teal.csn.org (John Dumais)\n   Sender: news@csn.org (news)\n   Nntp-Posting-Host: teal.csn.org\n   Organization: Colorado SuperNet, Inc.\n   X-Newsreader: Tin 1.1 PL4\n   Date: Thu, 15 Apr 1993 05:35:22 GMT\n   Lines: 8\n\n   I've been trying to figure a way to programmatically iconize \n   an application running under a Motif window manager.  I have tried\n   several approaches includeing sending events to the application's\n   border window, but to no avail?  Anyone done this before?\n\n   Thanks,\n\n   doomer '85\n--\n-------------------------------------------------------------------------------\nJoe Bore\t\t\t\t\t | \"Life is Short...Code Hard\"\njbore@Shearson.COM | ...!uunet!shearson.com!jbore| \n(212)464-3431, Beeper:  (212)396-4248\t\t |\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6006, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: When are two people married in God's eyes?\nOrganization: AI Programs, University of Georgia, Athens\nLines: 17\n\nIn article <Apr.16.23.15.27.1993.1836@geneva.rutgers.edu> cs89mcd@brunel.ac.uk (Michael C Davis) writes:\n\n[it has to do with honoring the laws of the state, and]\n>also to do with how people will perceive us; i.e. it is culturally insensitive\n>to declare yourself married without going through a civil ceremony.)\n\nI would go further: if a couple are unwilling to have their commitment\npublicly witnessed and recorded, that's prima facie evidence that the\ncommitment isn't really there.\n\n\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6007, "properties": {"category": "soc.religion.christian", "text": "From: REXLEX@fnal.fnal.gov\nSubject: Re: RE: Does God love you?\nOrganization: FNAL/AD/Net\nLines: 70\n\nIn article <Apr.13.00.08.10.1993.28382@athos.rutgers.edu> jayne@mmalt.guild.org\n(Jayne Kulikauskas) writes:\n\n>I am uncomfortable with the tract in general because there seems to be \n>an innappropriate emphasis on Hell.  God deserves our love and worship \n>because of who He is.  I do not like the idea of frightening people into \n>accepting Christ.  \n\nAnd yet, Jayne,  as we read the Gospels and in particular the topics that Jesus\nhimself spoke on, Hell figures in a large % of the time -certainly more than\nheaven itself.  Paul, as we learn in I Thess, taught new believers and new\nchurches eschatology and did not hesitate to teach hell and damnation.  Rev,\nchapter 20:11-15 is very specific and cannot be allegorized.  I think the word\n\"throne\" is used 45 times in Rev and that the unbelieving come to receive the\nassignment of the severity of judgement, for in John 3 we read that they are\nalready judged.  Rom 3 speaks that every mouth will be shut.  There is no\nrecourse, excuse or defense.\n>\n>I see evangelism as combining a way of living that shows God's love with \n>putting into words and explaining that love.  Preaching the Gospel \n>without living the Gospel is no better than being a noisy gong or a \n>clanging cymbal.\n\nYes I agree with you.  Life is often like a pendulum where it swings to\nextremes before stopping at \"moderation.\"  I think we have seen the extreme of\nthe \"hell fire & brimstone\" preacher, but also we have seen the other extreme\nwhere hell not talked about at all for fear of offending someones\nsensibilities.\n\nI forget who founded the Word of Life Ministries, but I remember him telling a\nstory.  He was in a small town hardware store and some how a man got to the\npoint of telling him that he didn't believe in Satan or hell.  He believed\neverybody was going to heaven.  It was at this point that the man was asked to\npray to God that He would send his children to hell!  Of course the man\nwouldn't do it.  But the point was made.  Many people say they don't believe in\nhell but they are not willing to really place their faith in that it doesn't\nexist.  If this man had, he would of prayed the prayer because hell didn't\nexist and there would have been no fear in having his prayer answered.  And\nyet, they walk as if they believe they will never be sent there.\n\nI'd use a different illustration however.  I have to include myself in it. \nWhen I watch, say a Basketball (go Bulls!) game, and I see a blatant foul that\nisn't called, oi vey!.  What's with that ref that he didn't make that call. \nIt's unfair.  And just so in life, righteousness demands payment.  As the\nsurgeon takes knife in hand to cut the cancer away, so God cuts off that which\nis still of the old creation.  We must preach the Gospel in all its richness\nwhich includes the fact that if you reject The Way and The Truth and The Life,\nthen broad is the way to distruction.\n\n>\n>Here's a question:  How many of you are Christians because you are \n>afraid of going to Hell?  How many are responding to God's love?\n\nI think I would fall in there somewhere.  Actually it was both.  After all,\nrepentance isn't only a turning towards, but also a turning away from!\nNo, again, if Jesus used it in His ministry then I can surely see that we\nshould do it also.  In love, of course, but in truth most assuredly.  \n\nI have thought about writing something on this topic, but not now and here.  I\nwould say that there are some good reasons for its existence and its\neternality.\n\n1) God is Light.  Yes He is love, but His love has the boundary of Holiness.\n2) Dignity of Man.  Either a man is a robot or he is a responsible creature.\n   If responsible, then he is also accountable.\n3) The awfulness of sin.  Today we have a poor, poor concept of sin & God.\n4) Christ.  He was willing to die and go there Himself to offer an avenue to\n   the \"whosoever will.\"\n\n--Rex\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6008, "properties": {"category": "talk.politics.mideast", "text": "From: cpr@igc.apc.org (Center for Policy Research)\nSubject: Re: Investment in Yehuda and Shomron\nLines: 16\nNf-ID: #R:horenC5LDuz.5sE@netcom.com:1074830076:cdp:1483500346:000:733\nNf-From: cdp.UUCP!cpr    Apr 16 17:02:00 1993\n\n\nAryans who do not base their reasoning on Nazi ideology are racists...\n\nThus spoke an American citizen in the name of Judaism. If this is Judaism,\nI think Judaism should be combatted as any extremist and dangerous\nphilosophy.\n\nI suspect however that Martin Buber, Albert Einstein and other Jewish\nscholars would have rather converted to Christianity than stay Jews, if\nthey would have perceived Judaism as such a perverted philosophy.\n\nThose who wish to learn something about the perversion of Judaism,\nshould consult the masterly work by Yehoshua Harkabi, who was many\nyears the head of Israeli Intelligence and an opponent of the PLO. His\nlatest book was published in English and includes a very detailed analysis\nof Judeo-Nazism.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6009, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: x90sanson@gw.wmich.edu\nSubject: What's the diff.between mouse.sys/com??\nOrganization: Western Michigan University\nLines: 8\n\nWhat's the difference between loading mouse.com in autoexec.bat and\ndoing device=mouse.sys in config.sys??\n\nwhich one is better?\n\nThanks a lot\n\nenrique\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6010, "properties": {"category": "talk.religion.misc", "text": "From: dickeney@access.digex.com (Dick Eney)\nSubject: Re: Swastika (was: Hitler - pagan or Christian?)\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 15\nNNTP-Posting-Host: access.digex.net\n\nThe observation that the Tree of Life would rotate clockwise in the\nnorthern hemisphere and counterclockwise in the southern probably doesn't\ngive enough consideration to the feebleness of the Coriolis force compared\nto, say, the phototropism of vegetation.  A much more likely explanation\nis the classic one: that the clockwise swastika is the Sun-wheel, because\nthe sun progresses across the sky that way.  (Although that's not the\nhistorical way it happened; clocks were first made as little imitation\nimages of the sun moving thru the heavens.  So it's more valid to talk of\nthe clock going sunwise, but do the engineers listen to me?  Of course\nnot.)  Anyway, there is still much uncertainty about whether the\nanti-swastika goes counter-sunwise because that represents Evil, or\nbecause it is the Sun's twin-opposite, the Moonwheel.  The use of anti-Sun\nto represent Evil may be because humans are so strongly visually-oriented,\nbut I'm not going to try to settle THAT one just now.\n-- Diccon Frankborn (dickeney@access.digex.com)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6011, "properties": {"category": "comp.windows.x", "text": "From: rgs@megatek.com (Rusty Sanders)\nSubject: Re: X-server multi screen\nOrganization: Megatek Corporation, San Diego, California\nLines: 61\n\nFrom article <1993Apr17.010256.14372@eafs000.ca.boeing.com>, by ten0772@eafs000.ca.boeing.com (Timothy E. Neto):\n> rainer@sun3.eeam.elin.co.at (Rainer Hochreiter) writes:\n>>\n>>I've seen a lot of different terms, which seem to mean the same thing.\n>>Who can give an exact definition what these terms mean:\n>>\n>>\t-) multi-screen\n>>\t-) multi-headed\n>>\t-) multi-display\n>>\t-) X-Server zaphod mode\n>>\n>>Is there a limit how many screens/displays a single server can handle\n>>(in an articel a read something about an upper limit of 12) ?\n>>\n>>How is the capability called, if I want to move the cursor from one\n>>screen/display to another.\n> \n> As to how many clients may be display on a server, I believe the limit\n> would be how much memory is available to your server or allocated by the\n> server.\n> \n\nThis all sounds suspiciously like my company might have something to\ndo with this.\n\nBackground first: Megatek has a series of framebuffers designed as\nX accelerators. For the most part these are designed for Sun SBUS\nand Sun (and other vendor's) VME systems.\n\nThat said, Megatek products support multi-screen and/or multi-display\non a sigle workstation. Most of our cards have a keyboard/mouse port\nwhich can be used to provide additional displays. For example, say\nyou hade a Sparcstation with an Sbus expansion chassis. You could\nput in six frambuffers, allowing a total of six screens in the system.\nYou could then attach from 1 to 6 keyboard/mice, allowing you to\nmix and match any combination of screens and displays. You could\nhave 1 6-screen display, 3 2-screen displays, 6 1-screen displays,\nor 1 2-screen display and 1 4-screen display. Basically any\ncombination.\n\nBecause of this, we at Megatek try to be very careful about the use\nof the words multi-screen and multi-display. They are quite different\nin meaning, and (at least in X) have exact definitions.\n\nThe reason I ramble like this is the mention of an upper limit if 12\nscreens in a display. As it so happens, there's a define in the server\nthat determines the most screens supported (server/include/misc.h,\nMAXSCREENS). As released my MIT, this is 3. As released by Megatek,\nthis is 12.\n\nAs such, the most screens supported by a single Megatek display (i.e.\nX server) is 12. If someone construed this to be a limitation of X\nI'm sorry, but clearly (as pointed out so well by Mr. Neto) this is\nnot the case.\n\nWe just did it here because nobody has ever asked us for more. Of\ncourse, I could say \"Buy all you want, we'll support more.\"\n-- \n----\nRusty Sanders, Megatek Corp. --> rgs@megatek.com or...\n         ...ucsd!    ...hplabs!hp-sdd!    ...ames!scubed!   ...uunet!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6012, "properties": {"category": "comp.sys.mac.hardware", "text": "From: choo@ecs.umass.edu\nSubject: TechWorks -- What You Say?\nLines: 19\n\n\n\nGreetings!!\n\n\tI'm planning to upgrade my Mac IIsi:\n\n\t\t(1) from the present 5Megs to 17Megs;\n\tand\t(2) add a Math-Coprocessor.\n\n\tTechnology Works, of Austin (Texas) comes quite highly recommended by \nsome Mac magazines.  I was just wonderring if anyone could share with me \nanything about Tech Works (both good and bad experiences); or give any advice\nabout other mail-order companies that I may consider.\n\n\tYour reply would be very much appreciated.  Thanks in advance.\n\nSincerely\nPeter Choo\nchoo@sigma.ecs.umass.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6013, "properties": {"category": "comp.sys.mac.hardware", "text": "From: PKR@SLACVM.SLAC.STANFORD.EDU (Patrick Krejcik)\nSubject: File Server Mac\nArticle-I.D.: pkrmac.PKR-050493101102\nOrganization: SLAC\nLines: 3\n\nI saw once an article about a new line of Macs configured to\t\nwork more optimally as file servers. \t\nAnyone know any more details?\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6014, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: randy@msc.cornell.edu (Randy Ellingson)\nSubject: ISA bus:  SCSI or IDE??!!\nReply-To: randy@msc.cornell.edu\nOrganization: Cornell University\nLines: 38\n\nWow, you guys are really going wild on this IDE vs. SCSI thing, and I think\nit's great!\n\nHowever, I think that some people (such as myself) would benefit from answers\nto the simple(?) question:  Which would YOU choose, and why?\n\nLike lots of people, I'd really like to increase my data transfer rate from\nthe hard drive.  Right now I have a 15ms 210Mb IDE drive (Seagate 1239A), and\nwhat I would say is a standard (not special, no cache I believe) IDE controller\ncard on my ISA 486-50.\n\nI'm currently thinking about adding another HD, in the 300Mb to 500Mb range.\nAnd I'm thinking hard (you should hear those gears a-grinding in my head)\nabout buying a SCSI drive (SCSI for the future benefit).  I believe I'm getting\nsomething like 890Kb/sec transfer right now (according to NU).\n\nHow would this\nnumber compare if I bought the state-of-the-art SCSI card for my ISA PC, and\nthe state-of-the-art SCSI hard drive (the wailing-est system I could hope for)?\n\nObviously money factors into this choice as well as any other, but what would\nYOU want to use on your ISA system? And how much would it cost?\n\nAlong those lines, what kind of transfer rate could I see with my IDE HD's if I\nwere to buy the top-of-the-line IDE caching controller for my 200Mb, 15ms HD?\nAnd how much would it cost?\n\nI actually have a PAS-16, and could (what a waste I guess it would be...) hook\nup a SCSI HD through it's SCSI port which yields an optimum of 690Kb/sec.\nActually, I have a borrowed 12ms Fujitsu HD hooked up through it now (and\nown the Trantor HD drivers for the PAS-16 SCSI port).  Is this SCSI port a\nSCSI-2 port?  How could I tell?  Is the Fujitsu 2623A a SCSI-2?  Are all SCSI\nHD's SCSI-2?\n\nThanks for any comments.\n\nRandy\n  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6015, "properties": {"category": "talk.religion.misc", "text": "From: sieferme@stein.u.washington.edu (Eric Sieferman)\nSubject: Re: JUDAS, CRUCIFIXION, TYRE, Etc...\nOrganization: University of Washington, Seattle\nLines: 24\nNNTP-Posting-Host: stein.u.washington.edu\n\nIn article <1qe8qk$58t@news.ysu.edu> af664@yfn.ysu.edu (Frank DeCenso, Jr.) writes:\n>\n>I need to prioritize things in my life, and this board is not all that important\n>to me.  My personal relationship wife the Lord is first, my wife is second, and\n>my ministry at church is third.  (Not to mention my job!)\n\nHave you informed your wife of this prioritization?\n\nThis board will have\n>to wait until (if ever) I can organize my life to fit it in.  I tried dropping\n>out, but Sieferman coerced me to come back.  He won't this time.\n\nThou hast used my name in vain!  I never coerce.  Ridicule, maybe, but\nnever coerce.  Please take responsibility for your actions.\n\n(deletia)\n\n>I'm history.\n>Frank\n\nI appreciate your efforts.  Good luck.\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6016, "properties": {"category": "talk.politics.misc", "text": "Subject: Re: Top Ten Comments Overheard in the Secret Service Lounge\nFrom: Mark 'Mark' Sachs <MBS110@psuvm.psu.edu>\nOrganization: The Leader Desslok School of Diplomacy\nLines: 22\n\nIn article <1993Apr4.163015.10438@highlite.uucp>, croaker@highlite.uucp (Francis\nA. Ney) says:\n [of who else but President of the United States William Jefferson Clinton.]\n>It's a much better deal to have him end his term of office in disgrace, after\n>watching all his liberal democrat friends on his staff run this nation down\n>the toilet.\n\nTsk. Surely you don't wish for the Democrats to destroy our beloved country\njust so your party can get some trivial political advantage? That's rather\na petty way to think. (Not that this pettiness doesn't extend all the way\nto the U.S. Senate, I've noticed...)\n\nWhile Bush was president, I kept hoping and praying that he'd wise up. I\ncouldn't stand the man, but I wish he'd done a decent job; if so, we might\nnot be in the mess we are now, and that would be a small price to pay for\nsuffering through another term of Republican control. Similarily, YOU should\nbe hoping and praying that Clinton does a good job. Even if you're certain\nhe won't.\n\n   \"...so I propose that we destroy the moon, neatly solving that problem.\"\n[Your blood pressure just went up.]        Mark Sachs IS: mbs110@psuvm.psu.edu\n   DISCLAIMER: If PSU knew I had opinions, they'd try to charge me for them.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6017, "properties": {"category": "comp.sys.mac.hardware", "text": "From: djk@ccwf.cc.utexas.edu (Dan Keldsen)\nSubject: sony 1304 & Rasterops 24sx(si) for SALE! - UPDATE!!\nArticle-I.D.: geraldo.1qoddq$2p7\nReply-To: djk@ccwf.cc.utexas.edu (Dan Keldsen)\nDistribution: usa\nOrganization: The University of Texas at Austin, Austin TX\nLines: 64\nNNTP-Posting-Host: tramp.cc.utexas.edu\nOriginator: djk@tramp.cc.utexas.edu\n\nHello fellow humans, and other net creatures...\n \nIf you're at all interested in this merchandise, please e-mail me:\ndjk@ccwf.cc.utexas.edu\n \nI'm compacting my system and moving to a single monitor system, so I have\ntwo monitors and cards for sale. Nothing at all is wrong with these pieces,\nI'm just wanting to conserve desk space, and get all of my info from one\nscreen.\n \nI'd prefer to sell to people near Austin and surrounding areas (within\ndriving distance - like an hour away perhaps), but I CAN ship to you if you\ndon't live near here. Only problem is that I didn't keep the original boxes\nfor the monitors, but I'm confident that my few months of full-time service\nin the shipping room will enable me to safely package the monitors and\nflip it in your direction.\n \nDetails:\n \nMirror Full Page Display (monochrome) w/nubus card:\n---------------------------------------------------\n \n**SOLD**\n \nSony 1304 14\" color monitor:\n----------------------------\nWhat's to say? It got top ratings in last year's MacUser report. It's a SONY,\nTrinitron, arguably the best (but I'd rather not argue that point).\nIt's a great monitor, in great shape, but I'm going to a bigger screen,\nand although I'd like to keep it, finances don't justify it.\n \nStill selling for $599 at MacLand (where I bought it originally - not\nincluding shipping), will sell for **$475** (plus shipping). Again, make an\noffer if that sounds unreasonable.\n \n \nRasterOps 24si (24-bit accelerated, hardware zoom/pan, 4 meg RAM):\n------------------------------------------------------------------\nRenamed the 24sx a few months after I bought it, this board is for 13\"\nmonitors, providing **accelerated 24-bit**, hardware zoom/pan, NTSC mode\n(you can plug it into something like the RasterOps Video Expander and output\nNTSC), and 4 RAM slots that use 1 meg or 4 meg SIMMS for GWorld RAM, or a\nRAM disk. Software included for such functions. 4 meg of RAM included (1 meg\nSIMMS).\n \nSelling for $605 at Bottom Line (without the RAM - add $100), I'm asking\n**$525** (shipping included this time, it's just a card). Original box and\npackaging. I'd actually prefer to sell the Sony monitor and this card\ntogether, so if you want both, drop me e-mail and make a \"bundled offer\"\nfor these items.\n \n------------\n \nCheers. \n\ndan keldsen - djk@ccwf.cc.utexas.edu\n\n-- \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nDan Keldsen            |  Are you now, or have you ever been:\ndjk@ccwf.cc.utexas.edu |  a. A Berklee College student?\nUniv. of Texas, Austin |  b. A member/fan of Billy Death?\nMusic Composition, MM  |  c. a MAX programmer?\nM & M Consultant (ask) |  d. a Think-C & MIDI programmer?\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6018, "properties": {"category": "alt.atheism", "text": "From: jcopelan@nyx.cs.du.edu (The One and Only)\nSubject: Re: New Member\nOrganization: Salvation Army Draft Board\nLines: 28\n\nIn article <C5HIEw.7s1@portal.hq.videocart.com> dfuller@portal.hq.videocart.com (Dave Fuller) writes:\n>\n>  Hello. I just started reading this group today, and I think I am going\n>to be a large participant in its daily postings. I liked the section of\n>the FAQ about constructing logical arguments - well done. I am an atheist,\n>but I do not try to turn other people into atheists. I only try to figure\n>why people believe the way they do - I don't much care if they have a \n>different view than I do. When it comes down to it . . . I could be wrong.\n>I am willing to admit the possibility - something religious followers \n>dont seem to have the capability to do.\n>\n>  Happy to be aboard !\n>\n>Dave Fuller\n>dfuller@portal.hq.videocart.com\n\nWelcome.  I am the official keeper of the list of nicknames that people\nare known by on alt.atheism (didn't know we had such a list, did you).\nYour have been awarded the nickname of \"Buckminster.\"  So the next time\nyou post an article, sign with your nickname like so:\nDave \"Buckminster\" Fuller.  Thanks again.\n\nJim \"Humor means never having to say you're sorry\" Copeland\n--\nIf God is dead and the actor plays his part                    | -- Sting,\nHis words of fear will find their way to a place in your heart | History\nWithout the voice of reason every faith is its own curse       | Will Teach Us\nWithout freedom from the past things can only get worse        | Nothing\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6019, "properties": {"category": "talk.politics.mideast", "text": "From: ehrlich@bimacs.BITNET (Gideon Ehrlich)\nSubject: Why does US consider YIGAL ARENS to be a dangerous to humanity\nOrganization: Math department, Bar-Ilan University, Ramat-Gan, ISRAEL\nLines: 20\n\nIn article <ARENS.93Apr13161407@grl.ISI.EDU> arens@ISI.EDU (Yigal\nArens) writes:\n\n>Los Angeles Times, Tuesday, April 13, 1993.  P. A1.\n> ........\n\nThe problem if  transffering US government files about Yigal Arens\nand some other similar persons does or does not violate a federal\nor a local American law seemed to belong to some local american law\nforum  not to this forum.\nThe readers of this forum seemed to be more interested in the contents\nof those files.\nSo It will be nice if Yigal will tell us:\n1. Why do American authorities consider Yigal Arens to be dangerous?\n2. Why does the ADL have an interest in that person ?\n3. If one does trust either the US government or the ADL what an\n   additional information should he send them ?\n\n\nGideon Ehrlich\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6020, "properties": {"category": "comp.windows.x", "text": "From: bash@tware.com (Paul Bash)\nSubject: Re: X11R5 and Open Look\nOrganization: Techware Design, Boulder, CO. USA\nLines: 34\n\nIn article <1993Apr12.220600.10691@nrao.edu> rgooch@rp.CSIRO.AU (Richard Gooch) writes:\n>In article <1993Apr12.155820.82@aedc-vax.af.mil>, bonds@aedc-vax.af.mil writes:\n>> I am reposting this because I am not sure my first post ever made it out.\n>> I have built and installed X11R5 on my SPARCstation 2.  My aim is to run\n>> the MIT X server but retain the OpenLook Window Manager.  I am sure this\n>> is not uncommon, but I just want to make sure that I change and/or delete\n>> everything that I need to.  For instance, I can start xdm in rc.local, but\n>> how do I get rid of Xnews?\n>> \n>\n>  The OpenLook window manager source is available on the MIT contrib tapes\n>  or from  export.lcs.mit.edu  .I would suggest building this too, rather than\n>  using the version from OpenWindows. It is  olwm  v3.\n>\n\nI would suggest skipping olwm and getting olvwm instead. This version of the\nolwm window manager implements a virtual desktop that I find really handy even\non large monitors. \n\nThis version is also available at export.lcs.mit.edu:/contrib/olvwm3.tar.Z.\nThe README file also suggest getting the files in /contrib/xview3.\n\nIn my case, I built the X Server first, Xview second, then olvwm. All of these\nwere installed into /usr/X5. Once I verified the server worked correctly,\nI happily issued \"rm -rf /usr/openwin/*\".\n\nUsing gcc 2.3.3 to build all of the above resulted in a windowing system that \nis, for all intents and purposes, identical to OpenWindows 3.0 and that is     \nincredibly faster. There is a bit of tweaking you will have to do if you want\nthings to work _exactly_ like OpenWindows, but not much. \n\n-- \nPaul Bash                                                   Techware Design \nbash@tware.com                                              Boulder, CO  U.S.A.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6021, "properties": {"category": "soc.religion.christian", "text": "From: shredder@telerama.pgh.pa.us (Ed Sayre)\nSubject: Orthodox List\nOrganization: Telerama Public Access Internet, Pittsburgh, PA\nLines: 7\n\nI recently had to move and forgot to update my address to the Orthodox\nmailing list. Can anyone e-mail me the address for changes and what\nexactly I have to put in caps, etc? (please send the original\nsubscription address also). Thanks ahead of time! -Ed.\n-- \nEd \"Shredder\" Sayre              internet: shredder@telerama.pgh.pa.us\nUnemployment Studies major\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6022, "properties": {"category": "sci.med", "text": "Subject: prozac\nFrom: agilmet@eis.calstate.edu (Adriana Gilmete)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 3\n\nCan anyone help me find any information on the drug Prozac?  I am writing\na report on the inventors , Eli Lilly and Co., and the product.  I need as\nmuch help as I can get.   Thanks a lot, Adriana Gilmete.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6023, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wongda@eecg.toronto.edu (Daniel Y.H. Wong)\nSubject: Actix video card drivers for windows\nKeywords: actix graphics accelerator \nOrganization: Dept. of Electrical Engineering, University of Toronto, Canada\nLines: 20\n\nI am looking for the latest drivers for the Actix graphics accelerator card. \nThe driver I am currently using is version 1.21 and doesn't support more \nthan 256 colors in 1024x768 mode even you have 2MB memory. \n\nThe BBS support for Actix is unbelievable! They are still using 2400bps \nmodem! It will take you hours to download the drivers, it hurts when you\nare calling long distance. Is there any ftp site that has a collection\nof video drivers for windows?\n\nBTW, anyone using this card, and how do you like it so far?\n\nThanks.\n\n\n-- \n\n\nDaniel Y.H. Wong\t\t\t\t\tUofT:(416)978-1659\nwongda@picton.eecg.toronto.edu\t\t\t\tElectrical Engineering\n--\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6024, "properties": {"category": "sci.crypt", "text": "From: marc@tanda.isis.org (Marc Thibault)\nSubject: Re: PEM and MIME\nReply-To: marc@tanda.isis.org\nDistribution: world\nOrganization: Thibault & Friends\nLines: 34\n\nIn article <1qg8m2$2e5@nigel.msen.com> \n(Edward Vielmetti) writes: \n\n> I would suggest that 50 attractive MIME formatted news messages a day would be\n> sufficient to get a few people thinking about adding MIME support to news\n> readers, esp if the content is really worth it.\n\n        But that's just the problem. There is no such thing as\n        \"MIME-Formatted\". By analogy, MIME is a content-labelling\n        standard for the box, not a specification for the contents\n        themselves. It provides a standard for \"like-minded\"\n        individuals to exchange mail containing an agreed-upon data\n        format.\n\n        You say tomahto, I say tomaeto; you say postscript, I say\n        SGML...\n        \n        Cheers,\n                Marc\n\n---\n Marc Thibault        | CIS:71441,2226     |  Put another log\n marc@tanda.isis.org  | NC FreeNet: aa185  |  on the fire.\n\n-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: 2.0\n\nmQBNAiqxYTkAAAECALfeHYp0yC80s1ScFvJSpj5eSCAO+hihtneFrrn+vuEcSavh\nAAUwpIUGyV2N8n+lFTPnnLc42Ms+c8PJUPYKVI8ABRG0I01hcmMgVGhpYmF1bHQg\nPG1hcmNAdGFuZGEuaXNpcy5vcmc+\n=HLnv\n-----END PGP PUBLIC KEY BLOCK-----\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6025, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Legality of the Jewish Purchase\nOrganization: Aiken Computation Lab, Harvard University\nLines: 104\n\nIn article <1993Apr16.225910.16670@bnr.ca> zbib@bnr.ca writes:\n>Adam Shostack writes: \n>> Sam Zbib writes\n>   >>I'm surprised that you don't consider the acquisition of land by\n>   >>the Jews from arabs, for the purpose of establishing an exclusive\n>   >>state, as a hostile action leading to war.\n\n>>\tIt was for the purpose of establishing a state, not an\n>> exclusive state.  If the state was to be exclusive, it would not have\n>> 400 000 arab citizens.\n\n>Could you please tell me what was the ethnic composition of \n>Israel right after it was formed. \n\n\t100% Israeli citizens.  The ethnic composition depends on what\nyou mean by formed.  What the UN deeded to Israel?  What it won in war?\n\n>> \tAnd no, I do not consider the purchase of land a hostile\n>> action.  When someone wants to buy land, and someone else is willing\n>> to sell it, at a mutually agreeable price, then that is commerce.  It\n>> is not a hostile action leading to war.\n\n>No one in his right mind would sell his freedom and dignity.\n>Palestinians are no exception. Perhaps you heard about\n>anti-trust in the business world.\n\n\tWere there anti-trust laws in place in mandatory Palestine?\nSince the answer is no, you're argument, while interestingly\nconstructed, is irrelevant.  I will however, respond to a few points\nyou assert in the course of talking about anti-trust laws.\n\n\n>They were establishing a bridgehead for the European Jews.\n\n\tAnd those fleeing Arab lands, where Jews were second class\ncitizens. \n\n>Plus they paid fair market value, etc...\n\n\tJews often paid far more than fair market value for the land\nthey bought.\n\n>They did not know they were victims of an international conspiracy.\n\n\tYou know, Sam, when people start talking about an\nInternational Jewish conspiracy, its really begins to sound like\nanti-Semitic bull.\n\n\tThe reason there is no conspiracy here is quite simple.\nZionists made no bones about what was going on.  There were\nconferences, publications, etc, all talking about creating a National\nhome for the Jews.\n\n>>>Israel gave citizenship to the remaining arabs because it\n>>>had to maintain a democratic facade (to keep the western aid\n>>>flowing).\n\n>>\tIsrael got no western aid in 1948, nor in 1949 or 50...It\n>>still granted citizenship to those arabs who remained.  And how\n>>is granting citizenship a facade?\n\n>Don't get me wrong. I beleive that Israel is democratic\n>within the constraints of one dominant ethnic group (Jews).\n[...]\n>'bad' arabs. Personaly, I've never heard anything about the\n>arab community in Isreal. Except that they're there.  So\n>yes, they're there. But as a community with history and\n>roots, its dead.\n\n\tBecause you've never heard of it, its dead?  The fact is, you\nclaimed Israel had to give arabs rights because of (non-existant)\nInternational aid.  Then you see that that argument has a hole you\ncould drive a truck through, and again assert that Israel is only\ndemocratic within the (unexplained) constraints of one ethnic group.\nThe problem with that argument is that Arabs are allowed to vote for\nwhoever they please.  So, please tell me, Sam, what constraints are\nthere on Israeli democracy that don't exist in other democratic\nstates?\n\n\tI've never heard anything about the Khazakistani arab\npopulation.  Does that mean that they have no history or roots?  When\nI was at Ben Gurion university in Israel, one of my neighbors was an\nIsraeli arab.  He wasn't really all that different from my other\nneighbors.  Does that make him dead or oppressed?\n\n\n>I stand corrected. I meant that the jewish culture was not\n>predominant in Palestine in recent history. I have no\n>problem with Jerusalem having a jewish character if it were\n>predominantly Jewish. So there. what to make of the rest\n>Palestine?\n\n\tHow recent is recent?  I can probably build a case for a\nJewish Gaza city.  It would be pretty silly, but I could do it.  I'm\narguing not that Jerusalem is Jewish, but that land has no ethnicity.\n\nAdam\n\n\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.285+0000", "event": "documents", "entityId": 6026, "properties": {"category": "talk.politics.guns", "text": "From: vincent@cad.gatech.edu (Vincent Fox)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Deep Thirteen, Gizmonics Institute\nLines: 22\nDistribution: usa\nNNTP-Posting-Host: cae.cad.gatech.edu\n\nIn <93104.173826U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n[deleted]\n>The University cops here (who are\n>are state cops) are armed better than the Chicago police.  It seems most\n>state cops are.  I don't know where you are originally from David but you live\n>in Tennesse and I live in Chicago and see this crap everyday on the news\n>and in the papers.  I think the situation is just a tad different here\n>than there.\n\nWhich crap, the ridiculous assertions that Uzis are mowing down cops\nright and left? The assertions that dialing 911 should be the proper\nand only option available to the law-abiding citizens?\n\nA factoid:\n\n56 cops were killed in the whole country last year. This is down from\naround 100 in the early '80s. Wow, a real explosion in cop killings\nthere eh?  :-)\n\n-- \n\"If everything had gone as planned, everything would have been perfect.\"\n\t-BATF spokesperson on CNN 3/2/93, regarding failed raid attempt in TX.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6027, "properties": {"category": "comp.windows.x", "text": "From: tne@world.std.com (Thomas N Erickson)\nSubject: Re: TeleUse, UIM/X, and C++\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 20\n\nhubec@ctp.com (Hubert Chou) writes:\n\n>Does anyone have any good ideas on how to integrate C++ code elegantly\n>with TeleUse, UIM/X / Interface Architect generated code?\n\n>Source would be great, but any suggestions are welcome.\n\n\nAlsys has produced a paper outlining how to use C++ with TeleUSE.  You can\nget a copy from your local sales rep or call us at (619)457-2700.\n\nAs mentioned, it is very straight forward using the Dialog language\n(similar to Visual Basic).\n\n\n-- \n---------------------------------------------------------------------------\nTom Erickson\t\t\t\t\tAlsys\ntne@world.std.com\t\t\t\t67 South Bedford Street\n\t\t\t\t\t\tBurlington, MA 01803\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6028, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Poem by Erich Fried\nNf-ID: #N:cdp:1483500363:000:1387\nNf-From: cdp.UUCP!cpr    Apr 25 05:29:00 1993\nLines: 46\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Poem by Erich Fried \n\n\nPoem by German-Jewish poet Erich Fried (Holocaust survivor)\n\nEin Jude an die zionistischen Kaempfer - 1988\n\n    von Erich Fried\n\nWas wollt ihr eigentlich ?  Wollt ihr wirklich die uebertreffen\ndie euch niedergetreten haben vor einem Menschenalter in euer\neigenes Blut und in euren eigenen Kot ?\n\n\t *\n\nWollt ihr die alten Foltern jetzt an andere weitergeben mit allen\nblutigen dreckigen Einzelheiten mit allem brutalen Genuss die\nFolterknechte wie unsere Vaeter sie damals erlitten haben ?\n\n       *\n\nWollt jetzt wirklich ihr die neue Gestapo sein die neue Wehrmacht\ndie neue SA and SS und aus den Palaestinensern die neuen Juden\nmachen ?\n\n      *\n\nAber dann will auch ich weil ich damals vor fuenfzig Jahren selbst\nals ein Judenkind gepeinigt wurde von euren Peinigern ein neuer\nJude sein mit diesen neuen Juden zu denen ihr die Palaestinenser\nmacht\n\n       *\n\nUnd ich will sie zurueckfuehren helfen als freie Menschen in ihr\neigenes Land Palaestina aus dem ihr sie vertrieben habt oder in\ndem ihr sie quaelt ihr Hakenkreuzlehrlinge ihr Narren und\nWechselbaelge der Weltgeschichte denen der Davidstern auf euren\nFahnen sich immer schneller verwandelt in das verfluchte Zeichen\nmit den vier Fuessen das ihr nun nicht sehen wollt aber dessen Weg\nihr heut geht !\n\n------------------------------------------------------\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6029, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ardie@ux1.cso.uiuc.edu (Ardie Mack)\nSubject: Re: does dos6 defragment??\nArticle-I.D.: ux1.ardie.272.734097933\nOrganization: Department of Plant Pathology\nLines: 30\n\nIn article <1993Apr6.040254.8443@cs.brown.edu> ksl@engin1.NoSubdomain.NoDomain (Kiseok Lee  ) writes:\n>From: ksl@engin1.NoSubdomain.NoDomain (Kiseok Lee  )\n>Subject: Re: does dos6 defragment??\n>Date: Tue, 6 Apr 1993 04:02:54 GMT\n>In article <C51H9M.46p@news.cso.uiuc.edu>, rhc52134@uxa.cso.uiuc.edu (Richard) writes:\n>|> Geoffrey S. Elbo writes:\n>|> \n>|> >Yes, and it is the fastest defrag I've ever watched.  It did a 170MB \n>|> >hard disk in 20 minutes.\n>|> \n>|> \tI found the MS defrag looks very much like Norton Speedisk.\n>|> Is it just a strip-down version of the later?\n>|> \n>|> \tI have both Norton Speedisk and Backup, so I was wondering \n>|> if I need to install MS Backup?\n>|> \n>|> Richard\n>|> \n>\n>Yes, defragger IS come from Norton.\n>If you have Norton Utility, don't bother.\n\n\n     Don't bother if you have CPBackup or Fastback.  They all offer options \nnot available in the stripped-down MS version (FROM CPS!).  Examples - no \nproprietary format (to save space), probably no direct DMA access, and no \ntape drive!\n\n     You NEED MS Defrag if you use doublespace to work on the compressed \nvolume.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6030, "properties": {"category": "talk.religion.misc", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Case Western Reserve University\nLines: 23\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1993Apr16.173720.19151@scic.intel.com> sbradley@scic.intel.com (Seth J. Bradley) writes:\n\n>In article <C5L14I.JJ3@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike Cobb) writes:\n>>Why isn't this falsifiable? I.E. There is no God, the world has existed forever\n>>and had no starting point. ?\n>\n>How does one falsify God's existance?  This, again, is a belief, not a scien-\n>tific premise.  The original thread referred specifically to \"scientific\n>creationism\".  This means whatever theory or theories you propose must be\n>able to be judged by the scientific method.  This is in contrast to\n>purely philosophical arguments.\n\n\tIf given a definite definition of \"God\", it is sometimes possible to \nfalsify the existance of that God. \n\tBut, when one refuses to give an immutable definition, one can not.\n\n--- \n\n        \" Whatever promises that have been made can than be broken. \"\n\n        John Laws, a man without the honor to keep his given word.\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6031, "properties": {"category": "misc.forsale", "text": "From: khiet@crystallizer.ecn.purdue.edu (Peter Thanh Khiet Vu)\nSubject: WANTED:  FUTON\nKeywords: WANTED:  FUTON\nOrganization: Purdue University Engineering Computer Network\nLines: 5\n\n I am looking for a large futon and frame.\n\ncall Peter 495-2056\nor e-mail me \"khiet@cn.ecn\"\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6032, "properties": {"category": "alt.atheism", "text": "From: b711zbr@utarlg.uta.edu (JUNYAN WANG)\nSubject: Bible contradictions\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: utarlg.uta.edu\nOrganization: The University of Texas at Arlington\nLines: 2\n\nI would like a list of Bible contadictions from those of you who dispite\nbeing free from Christianity are well versed in the Bible.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6033, "properties": {"category": "sci.med", "text": "From: sheffner@encore.com (Steve Heffner)\nSubject: Hernia\nOrganization: Encore Computer Corporation\nNntp-Posting-Host: condor.encore.com\nLines: 20\n\nA bit more than a year ago, a hernia in my right groin was\ndiscovered.  It had produced a dull pain in that area.  The hernia\nwas repaired using the least intrusive (orthoscopic?) method and a\n\"plug and patch\".\n\nThe doctor considered the procedure a success.\n\nA few months later the same pain returned.  The doctor said that\nhe could find nothing wrong in the area of the hernia repair.\n\nNow the pain occurs more often.  My GP couldn't identify any\nspecific problem.  The surgen who performed the original procedure\nnow says that yes there is a \"new\" hernia in the same area and he\nsaid that he has to cut into the area for the repair this time.\n\nMy question to the net:  Is there a nonintrusive method to\ndetermine if in fact there is a hernia or if the pain is from\nsomething else?\n\nSteve Heffner\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6034, "properties": {"category": "rec.motorcycles", "text": "From: hesh@cup.hp.com (Chris Steinbroner)\nSubject: Re: BMW MOA members read this!\nReply-To: Chris Steinbroner <hesh@cup.hp.com>\nNntp-Posting-Host: hesh.cup.hp.com\nOrganization: HP-UX Kernel Lab, Cupertino, CA\nX-Newsreader: TIN [version 1.1 PL9.1]\nLines: 18\n\nWm. L. Ranck (ranck@joesbar.cc.vt.edu) wrote:\n: As a new BMW owner I was thinking about signing up for the MOA, but\n: right now it is beginning to look suspiciously like throwing money\n: down a rathole.\n\ni concur with this.\n\nthe politics and bickering going on has\nruined BMWMOA to me.  because of the\npolitics and fighting, i'm i'm going to\nlet my current membership lapse when it's\nup for renewal.\n\n\n-- hesh\n\np.s. BMWRA's On The Level is a far superiour\n     publication in my opinion.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6035, "properties": {"category": "rec.motorcycles", "text": "From: egreen@east.sun.com (Ed Green - Pixel Cruncher)\nSubject: Re: Countersteering_FAQ please post\nOrganization: Sun Microsystems, RTP, NC\nLines: 52\nDistribution: world\nReply-To: egreen@east.sun.com\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article 734954875@zen.sys.uea.ac.uk, mjs@sys.uea.ac.uk (Mike Sixsmith) writes:\n>\n>Secondly, it is the adhesion of the\n>tyre on the road, the suspension geometry  and the ground clearance of the\n> motorcycle which dictate how quickly you can swerve to avoid obstacles, and\n>not the knowledge of physics between the rider's ears. Are you seriously\n>suggesting that countersteering knowledge enables you to corner faster\n>or more competentlY than you could manage otherwise??\n\nIf he's not, I will.  Put two riders on identical machines.  It's the\none who knows what he's doing, and why, that will be faster.  It *may*\nbe possible to improve your technique if you have no idea what it is,\nthrough trial and error, but it is not very effective methodology.\nOnly by understanding the technique of steering a motorcycle can one\nimprove on that technique (I hold that this applies to any human\nendeavor).\n\n>that's all it is - an interesting bit of knowledge, and to claim that\n>it is essential for all bikers to know it, or that you can corner faster\n>or better as a result, is absurd.\n\nDo you consider an understanding of the physics of traction absurd?\nAre you seriously suggesting that one can form a traction management\npolicy without understanding what it is or what factors increase or\ndecrease available traction?  Braking?\n\nIt is highly unlikely that any biker is going to develop his maximum\nswerving ability without any knowledge of turning techniques.  For most\nof his riding life this may not be a problem, but in an emergency\nsituation it is very definately placing him at a disadvantage.\n\n>But by including countersteering\n>theory in newbie courses we are confusing people unnecessarily, right at\n>the time when there are *far* more important matters for them to learn.\n\nI disagree.  The existance and immense success of riding courses which\nteach the technique indicate that the concept can be taught in a manner\nthat is neither confusing, nor detracts from any other aspects of the\ncourse.\n\n>And that was my original point.\n\nPerhaps, but in the ensuing discussion, you strayed far from that\npoint, to claim that knowledge of steering technique is irrelevant to a\nrider's ability.  I find this assertion ludicrous.\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6036, "properties": {"category": "misc.forsale", "text": "From: al@qiclab.scn.rain.com (Alan Peterman)\nSubject: Photo \"Stuff\" Forsale\nArticle-I.D.: qiclab.1993Apr21.023937.8223\nDistribution: usa\nOrganization: SCN Research/Qic Laboratories of Tigard, Oregon.\nLines: 62\n\n\n \nTime to clear out some miscellaneous lenses, cameras and photo stuff\nthat's not being used.  Some are gems, some are mundane.\n \n \nMinolta AF 50/1.7 lens for Maxxum cameras.  New lens, but I guess it'd\nbe best to call it a \"demo\" since I did not get the literature, box or\nwarranty cards.  $30.\n \nVivitar 2X converter for Nikon F or AI lenses.  Pretty cute \"flip back\"\ntang so it will work with all manual focus Nikon lenses - and bodies.\nIt will even couple (and double) a non-AI lens to an AI body.  $15.\n \nPentax 50/1.4 screwmount lens.  Well actually it's a Super-Takumar which\nis what they all were back then.  Very mint condition.  $25. Nice hard\ncase for this lens $5 more..\n \nAlpex 135/2.8 lens.  Beautifully made, all metal construction with fine\noptics.  Minolta mount.  $25.  Another hard case that fits this with\nstrap can be added..call it $7 more.\n \nVivitar 283 flash.  The one that made Vivitar famous (until the 285\neclipsed it).  Tilt head, removable sensor, variable auto exposure.\n$30.\n \nUniversal \"Roamer 63\" folding old \"bellows\" camera with leather case.\nUses 120 or 620 film, 100mm F6.3 lens.  Kinda cool articulated shutter\nrelease.  Decent shape.  $20.\n \nWeston 540 lightmeter.  Nothin super fancy, but it works well, and is a\ngood cross check to built in meters.  $7 with case and strap.\n \nAnd finally..the \"gems\"\n \nPentax Auto 110 camera with 24mm F2.8 lens.  This is the little\n(and I do mean TINY) SLR that Pentax made.  Has interchangeable lenses,\nbut try and find the 20-40 zoom, true through the lens viewing with\nsplit image focus, and completely auto exposure.  $70.\n \nOlympus 35RC rangefinder camera.  A really cute little camera with 42mm\nlens (F2.8) with built in manual or auto exposure, self timer etc.  I\nthink this was the predecessor to the XA - and it's nearly all metal.\nI won't mind holding onto this one if it doesn't sell.  $60.\n \nOlympus OM-1 with flash shoe, leatherette case, 50/1.4 Zuiko lens, and\nTokina SD (Super Dispersion) 70-210 lens.  These are all in very nice to\nmint condition, except for one little ding on the OM body near the film\nadvance lever.  Lenses are perfect, and the Tokina is a very compact,\nand sharp lens.  $225 for the set.\n \n \nThat'll do to clean out some of the stuff.  Feel free to offer on this\nstuff, although the cheaper stuff is priced to cover my hassle in\nshipping it..\n \nFor more details call or email.\n \n-- \nAlan L. Peterman                                 (503)-684-1984 hm & work\n                       al@qiclab.scn.rain.com\nIt's odd how as I get older, the days are longer, but the years are shorter!\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6037, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Jack Morris\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 30\n\nIn article <1993Apr19.024222.11181@newshub.ariel.yorku.ca> cs902043@ariel.yorku.ca (SHAWN LUDDINGTON) writes:\n>\n>Hey Valentine, I don't see Boston with any world series rings on their\n>fingers.\n\nYah.  So?\n\n>Damn, Morris now has three and probably the Hall of Fame in his \n>future.\n\nHe certainly didn't earn his last one.  *HOW* many games did he blow\nin the World Series?  All of the ones he started?\n\n>Therefore, I would have to say Toronto easily made the best signing.\n\nOh, yes.  Definitely.  Therefore Morris is better than Clemens.\n\nDon't give me that shit.  If Boston had Alomar, Olerud, Henke, and\nWard while Toronto had Rivera, Jack Clark, Jeff Reardon, things would\nhave looked a little different last fall.  Give credit where credit is\ndue.  This lavishing of praise on Morris makes me sick.\n\n>And don't tell me Boston will win this year.  They won't \n>even be in the top 4 in the division, more like 6th.\n\nI'm willing to bet they don't finish sixth.  I'm also willing to bet\nthey don't finish first.  And if you give me 3-2 odds, I'm willing to\nbet that they finish ahead of the Blue Jays.\n\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6038, "properties": {"category": "talk.religion.misc", "text": "From: donc@microsoft.com (Don Corbitt)\nSubject: Re: Christian Owned Organization list\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 28\n\nIn article <1993Apr16.232149.22105@organpipe.uug.arizona.edu> ece_0028@bigdog.engr.arizona.edu wrote:\n> Sorry, but Mormons aren't generally considered to be Christians.\n> >--\n> >=kcochran@nyx.cs.du.edu | B(0-4) c- d- e++ f- g++ k(+) m r(-) s++(+) t | TSAKC=\n> >=My thoughts, my posts, my ideas, my responsibility, my beer, my pizza.  OK???=\n> >=\"Do you have some pumps and a purse in this shade?  A perfume that whispers, =\n> >='please come back to me'?  I'm looking for something in Green.\"-Laurie Morgan=\n\nSorry, but it doesn't matter what _you_ think, I am a Christian, who happens to\nbelong to the LDS Church.  [The Church of Jesus Christ of Latter-Day Saints].\n\nI don't usually read t.r.m.  It is truly informative to stop by, and see that there\nare still people in the world like those that forced my ancestors into the deserts\nof Utah, and then out of the country entirely.  (My grandmother was born in Mexico,\nwhere her family had moved to escape religious persecution in the US).  I'm willing\nto admit that members of other churches are Christians, if they believe in Christ and\n(try to) follow his teachings, even though they have different interpretations of \nthe bible.  And yet these other churches often go out of their way to define whether\nor not I am considered to be Christian.  Could someone mail me a set of rules/beliefs\nthat must be followed to be a Christian?  Does this set of rules exclude other large\nbodies of believers?  \n\nI know, this is a waste of everyone's time, this has probably been discussed N times,\netc.  I guess I'm more sensitive to this 'demonization' after what went on in Texas.\n--\nDon Corbitt, donc@microsoft.com\nMail flames, post apologies.   Support short .sigs, three lines max.\n(I consider this a rebuttal, not a flame...)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6039, "properties": {"category": "sci.electronics", "text": "From: coyne@thing1.cc.utexas.edu ()\nSubject: Re: Radar detector DETECTORS?\nOrganization: At UT? That's a joke.\nLines: 24\nNNTP-Posting-Host: thing1.cc.utexas.edu\n\nIt is illegal to use anything you eavedropped on for a business \nor for an illegal use.  Jurisdictions that ban radar detectors or\npolice monitors, are essentially making the claim that there is no\nother reason for a radar detector or police radio monitor. \n\nThe results of fighting these claims in courts have been mixed.\nThe federal courts are not anxious to intervene and state courts\nhave sometimes held that the feds have exclusive jurisdiction\nand sometimes they have not.  A lot of state courts do not have\nenough imagination to see any use for a radar detector besides\navoiding law enforcement action for speeding.\n\nWhen you buy a radar detector, amongst the guarrantees, instructions, \nexplanations, and other detritus, is an invitation to join an\nassociation dedicated to preserving your right to use a radar detector.\n(I promise I am not making this up!)\n\nI do not think radar detector manufacturers would be making any \nheadway at all in courtrooms if police departments enforced speed \nlaws with a strict eye to public safety and a blind eye to the fund\nraiser aspect of tickets.  \n\nMike Coyne\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6040, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: yaturner@netcom.com (D'arc Angel)\nSubject: Re: YOWZA: SLOOOOWWWW printing from dos\nOrganization: The Houses of the Holy\nLines: 11\n\n\nI also had a simular problem with by NEC P7, it went away when I turned\non the \"print directly to parallel port\" option in the printer setup\napallette.\n\n-- \n\n\nMencsh tract und Gott lacht\n\nyaturner@netcom.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6041, "properties": {"category": "soc.religion.christian", "text": "From: dsegard@nyx.cs.du.edu (Daniel Segard)\nSubject: Re: Easter: what's in a name? (was Re: New Testament Double Stan\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 98\n\n\n   seanna@bnr.ca (Seanna (S.M.) Watson) asks:\n > What is the objection to celebration of Easter?\n \n       The objection naturally is in the way in which you phrase it. \nEaster (or Eashtar or Ishtar or Ishtarti or other spellings) is the pagan\nwhore goddess of fertility.  Therefore, your question to me is \"what is\nthe objection to celebration of the pagan whore goddess?\"  When phrased\nthat way I suspect (or at least I would HOPE) that it becomes immeadiately\napparent what my objection to \"celebrating\" her would be.\n \n > It is celebration of the resurrection of Jesus.\n \n      No, you are thinking perhaps of \"Ressurection Sunday\" I think. \n(Though I'm not too crazy about the word \"Sunday\", but I certainly like\nthis phrasing much better than envoking the name of the whore goddess.)\n     For that matter, stay Biblical and call it Omar Rasheet (The Feast of\nFirst Fruits).  Torah commands that this be observed on the day following\nthe Sabbath of Passover week.  (Sunday by any other name in modern\nparlance.)  Why is there so much objection to observing the Resurrection\non the 1st day of the week on which it actually occured?  Why jump it all\nover the calendar the way Easter does?  Why not just go with the Sunday\nfollowing Passover the way the Bible has it?  Why seek after unbiblical\nmethods?\n \n > I don't recall a command in Scripture for us to celebrate\n > the resurrection, but it is the sole and only reason that\n > we are Christians--how could we not celebrate it?\n \n      So what does this question have to do with Easter (the whore\ngoddess)?  I am all for celebrating the Resurrection.  Just keep that\nwhore out of the discussion.\n \n > If it is only the name which is a problem, I suggest that if\n > we are too concerned about etymology, there are a lot of\n > words we are going to have to drop.  (As an aside, some\n > terminally PC people here in Ottawa want dictionaries to be\n > altered so that there are no negative definitions associated\n > with the word _black_, so as not to offend people of colour.\n \n       Yes, I have heard of your newspapers speaking of the need to repave\nstreets with \"Afro-Canadiantop\".  <grin> (I still think \"blacktop\" sounds\nbetter though.)\n \n > As a short person, I hope they will also remove the definition\n > \"curt or surly\" associated with my physical description.)\n \n       Fine by me.  And while we are at it, the left-handed people are\nboth \"sinister\" and \"gauche\" so we probably will have some objections from\nthat quarter as well.\n \n > In Quebec French, the word for the celebration of the\n > resurrection is \"Pa^ques\"--this is etymologically related\n > to Pesach (Passover) and the pascal lamb.  So is the\n > French Canadian (mostly Roman Catholic) celebration better\n > because it uses the right name?\n \n      Yes, that sounds much better to me.  Is there anyone out there would\nthinks that phrasing sounds worse?\n \n > So from this I infer that there are different rules for\n > Christians of Jewish descent?  What happened to \"there is\n > neither Jew nor Greek, slave nor free, male nor female, for\n > all are one in Christ Jesus\"?\n \n      Read the letter to Philemon.  Now tell me, was Philemon's \"slave\"\nreturned to him?  Were there different rules upon the slave than upon\nPhilemon?  How about male and female?  Are there different \"rules\" that\napply to them as well?  Or if there is no more \"male and female\" can Adam\nand Steve get married to each other in your congregation?  Yes, there are\ndifferences in form and function.  But the way we come to Salvation in\nMessiah remains the same no matter what our position in life.\n \n---------------------------------------\n\n[I am in general not in favor of continuing this discussion, as it\nseems repetitive, but this particular point is one that I believe is\nnew -- the objection is not to having a holiday but to its name.\n\nI'd like to suggest that people think very carefully about this\nargument.  Words often change their meaning over time.  The days of\nthe week are of course originally based on pagan gods.  Some\nChristians prefer to refer to \"first day\", \"second day\", etc.  However\nthe majority of Christians have not been persuaded.  The question\nseems to be whether it makes any difference what the dictionary shows\nas the derivation of a word, if what people mean by it and think when\nthey use it is different.\n\nIndeed I'd like to suggest that postings like this could themselves be\ndangerous.  Suppose people in general use Easter to mean the\ncelebration of Christ's resurrection.  Postings trying to convince\nthem that they really mean a celebration in honor of some godess run\nthe risk of creating exactly the situation that they claim to oppose.\nThey are doing their best to *create* a linkage in people's minds\nbetween their celebration and the pagan goddess.  It's not clear that\nthis is a healthy thing.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6042, "properties": {"category": "rec.autos", "text": "From: aas7@po.CWRU.Edu (Andrew A. Spencer)\nSubject: Re: It's a rush... (was Re: Too fast)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 25\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, gwm@spl1.spl.loral.com (Gary W. Mahan) says:\n\n>>>Dont get me wrong, I love to drive in the left lane fast but when I overtake>\n>>>cars who are on the right, I slow down a tad bit. If I were to rely on the j>udgement of the other car, to recognize the speed differential, I would be the stupid one.  \n>\n>>just to satiate my curiosity, why would this make you the stupid one?  It seems\n>>to me, everybody SHOULD be aware enough of what is going on.  You do not need\n>\n>I couldnt agree more.  That is how it SHOULD work. People should also ALWAYS see motorcycles too.\n>\n>I CONSTANTLY scan behind me (I have one of those wink mirrors) and two outside mirrors.  I actually spend just as much time checking my six (cops you know).\n>\n>I still get caught off guard every now and then. \n>\n>\n>Maybe I didnt word it right the first time.  What I was trying to say was that if you plan to blow by somebody at a very HIGH speed differential and you assume you are safe because the guy sees you, you are stupid (of course, it depends on the circumstances).  I have had some VERY scary instances when I assumed this and I dont think all of the fault was the other guy (now if he was going 25 in a 55 thats a whole different story)\n\nok.  I can agree to this, because, as we have both proved, what is ideally\nSUPPOSED to happen, isn't always.  And even though i'm rearely the one doing\nthe passing, i don't see where it makes you stupid, but i agree, that if you \nthink you are SAFE, because the other guy is SUPPOSED to have been paying \nattention, then yes, you are just as dumb as the other(maybe dumber?)\nhasta\nDREW\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6043, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dcoleman@ccwf.cc.utexas.edu (Daniel M. Coleman)\nSubject: Re: Diamond Stealth 24 giving 9.4 Winmarks?\nOrganization: The University of Texas at Austin, Austin, Texas\nLines: 25\nNNTP-Posting-Host: flubber.cc.utexas.edu\n\nIn article <westesC5qvAp.BGJ@netcom.com> westes@netcom.com (Will Estes) writes:\n>I have just installed a Diamond Stealth 24 ISA card in\n>a '486DX2-66 system with 256K cache, and 16 megs of memory,\n>that gets about a 126 SI 6.0 CPU Benchmark rating.  Using\n>the 1024x768x16 color driver under Windows, I am getting a\n>Winbench Winmarks rating of only about 9.5 Million.  Since\n>I have heard that others get 15-to-16 million for this card,\n>I assume that something is very wrong with my setup.\n\n>What are some possible causes of the card slowing down like this?\n\nMost importantly, which Winbench version are you using?  On my local bus ATI\nGraphics Ultra Pro, I've gotten various Winbench scores from 15.8 million to\n31 million winmarks, depending on the version.  Winbench 2.5 gives the most\noptimistic scores, 3.11 gives the least.  A winmark rating is meaningless\nwithout a corresponding version number.\n\nDan\n\n-- \nDaniel Matthew Coleman\t\t   |   Internet: dcoleman@ccwf.cc.utexas.edu\n-----------------------------------+---------- : dcoleman@utxvms.cc.utexas.edu\nThe University of Texas at Austin  |\t DECnet: UTXVMS::DCOLEMAN\nElectrical/Computer Engineering\t   |\t BITNET: DCOLEMAN@UTXVMS [.BITNET]\n-----------------------------------+------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6044, "properties": {"category": "rec.sport.hockey", "text": "From: lli+@cs.cmu.edu (Lori Iannamico)\nSubject: Pens playoff radio coverage (was:Re: Radio stations)\nKeywords: KDKA, WDVE, KBL\nNntp-Posting-Host: lli.mach.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 42\n\nIn article <ragraca.735252641@vela.acs.oakland.edu> ragraca@vela.acs.oakland.edu (Randy A. Graca) writes:\n>greanias@texas.mitre.org (Steve Greanias) writes:\n>\n>I can give you a couple.  In Detroit, WJR (760) will be broadcasting\n>at least the first couple of games of the Wings-Toronto series, and \n>since they broadcast at 50000 Watts, you may be able to pick it up\n>after dark where you are at.  The Pittsburgh Penguins games used to be\n>broadcast on KDKA 1020, but I don't know whether they will be pre-empted\n>by baseball (and moved to another station) or not.  You can try those\n>if the local baseball teams aren't playing at the same time, anyway.\n\nAccording to this morning's Post-Gazette:\n\nThe Pens will be carried by KDKA-Radio(1020 am), unless the Pirates\nare playing.  When the Pirates play, the games will be carried by \nWDVE(102.5 fm).  WDVE will carry 12 games, starting with tonight's\ngame.\n\nIn fact, after this season, KDKA will no longer be the flagship\nstation for the Pens.  The Penguins and KBL have struck a new \ndeal regarding the TV and radio rights to the games.  It seems\nmore than likely that WDVE will be the flagship radio station next \nseason.  KBL will carry 62 games on tv,  with 17 of the games to be \nsimulcast on KDKA-TV.  The remaining 22 games, as well as some of the \nearly round playoff games, will be available by \"subscription tv\" only.\nTo receive the games, you'll have to pay a one time hook up fee, and\nthen a monthly fee of $11-12 dollars.\n\nAlso, under the new deal, there will no longer be radio/tv \nsimulcasts.  There will be a TV broadcast team, and a radio\nbroadcast team.  \n\nNo word on who the announcers will be.  Mike Lange and Paul Steigerwald\nare both under contract with KDKA, but their contracts expire at the\nend of this season.  KBL President Bill Craig said he'd like to hire\nLange and Steigerwald.\n\nLori\nContact for the Penguins\nlli+@cs.cmu.edu\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6045, "properties": {"category": "misc.forsale", "text": "From: jrwaters@eos.ncsu.edu (JACK ROGERS WATERS)\nSubject: Portable Color Television For Sale\nOrganization: North Carolina State University, Project Eos\nLines: 17\n\n\nHello Everyone,\n\n    I have a Casio TV-470 LCD Color Television for sale.  It\nis in mint condition.  Retail is $199 but I'm looking to\nget about 1/2 of that for it, tops.  Highest bidder in \na week gets it, assuming the highest bidder is at least $60.\n\nTV comes with black case and uses 4 AA batteries.  They also\nsell AC adaptor.  It has external jack for phones and external\nantenna, etc.  The picture is very good and it has electronic\ntuning so you don't have to screw with tuning a picture in, etc.\nI have the box and all documentation.  This has seen less than\n3 hours use as I have all but sworn off TV.\n\nBest Regards\nJack Waters II\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6046, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: Countersteering_FAQ please post\nOrganization: Ontario Hydro - Research Division\nLines: 37\n\nIn article <1993Apr19.155551.227@cs.cornell.edu> karr@cs.cornell.edu (David Karr) writes:\n>In article <mjs.735230272@zen.sys.uea.ac.uk> mjs@sys.uea.ac.uk (Mike Sixsmith) writes:\n>>\n>>No No No No!! All I am saying is that you don't even need to tell people the \n>>technique of countersteering, cos they will do it intuitively the first\n>>time they try to go round a corner.\n\nSome will, and others will steer with their tuchuses. I don't know how much\nthe teaching of countersteering in the beginner course really helps the\ntuchus steerers. I was one, I guess that I always steered a bicycle that way,\nand I only got the hang of countersteering in normal riding *after* the course.\nI could do the countersteering swerves in the course no problem, but I only\nstarted using it in my normal riding when I decided that my turning at speed\n(off-ramps and the like) was a lot more difficult that it should have been.\nI knew how it works (although that's currently up for debate) definitely knew\n*that* it works, as I could do it in swerves, but only figured it out later\nin my normal riding. Just a data point. I think that it's not a bad idea to\nbring the idea up, but it's best to let everyone tuchus-steer for the first\nlesson or two, so they can learn to shift gears before they have to worry\nabout proper handlebar technique.\n\n>countersteering.  In fact, my Experienced Rider Course instructors\n>claimed that they could get on behind a new rider and make the bike\n>turn to whichever side they wanted just by shifting their weight\n>around, even when the operator was trying to turn in the opposite\n>direction.  (I admit I've never actually seen this.)\n\nI have. In our beginner course we had passenger training. Sometime during\nthe lesson the instructor would hop on the back of the bike, and the student\nwould take him for a ride. If the student did not give the instructor the\n\"you are a sack of potatoes\" passenger speech, the instructor would steer\nthe bike and make a general nuisance of himself. It was amusing to watch,\nI'm just happy that it didn't happen to me.\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6047, "properties": {"category": "sci.electronics", "text": "Subject: 68HC16 public domain software?\nFrom: murashiea@mail.beckman.com (Ed Murashie)\nOrganization: DSG Development Eng Beckman Instruments Inc.\nNntp-Posting-Host: 134.217.245.87\nLines: 11\n\nDoes anyone know of an FTP site where I might find public\ndomain software for the Motorola 68HC16 microprocessor?\nI am looking for a basic interpreter/compilier or a 'C'\ncompiler.  Thanks in advance.\n\t\t\t\t\tEd Murashie\n\n------------------\nEd Murashie                     US Mail :  Beckman Instruments Inc.\nphone: (714) 993-8895                      Diagnostic System Group \nfax:   (714) 961-3759                      200 S. Kraemer Blvd  W-361\nInternet: murashiea@mail.beckman.com       Brea, Ca 92621  \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6048, "properties": {"category": "comp.sys.mac.hardware", "text": "From: drlovemd@jhunix.hcf.jhu.edu (Steve Liu)\nSubject: Source for Deskwriter Ink Carts.\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 21\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\n\nCould someone please e-mail or post a cheap source for ink carts for the HP\nDeskwriter?  Original HP carts are preferred, but I will settle for\nthird-party brands if they are of good quality.\n\n+--------------------------------------------------------------------------+\n\n /~~~~~~~\\\n|         |\n|   _____/\n|   |\n|   |\n|   +----\\\n|         |\n\\_____    |\n      |   | TTTTTT EEEEE VV     VV EEEEE     |\n      |   |   TT   EE     VV   VV  EE        |\n /---/    |   TT   EEEE    VV VV   EEEE      | Steve Liu                    |\n|         |   TT   EE       VVV    EE    ..  | drlovemd@jhunix.hcf.jhu.edu  |\n|_________/   TT   EEEEE     V     EEEEE ..  | drlovemd@jhuvms.hcf.jhu.edu  |\n\n+---------------------------------------------------------------------------+   \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.286+0000", "event": "documents", "entityId": 6049, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 06/14\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 958\n\n\n------------ Part 6 of 14 ------------\nMAZ)75U=7R!1KP\"5A8=F>`7;UG)\\&V0&>*YZ>*W5&$'Z]M;T0AX>'AX>'AX>'\nMAX=7HLAL(;7(5U\\,MEIH@$H^,#\",4*&?8%'U#6#,-V`W!H>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A[0E9:0E97PM8]8M9#MH\nM6CNL]%&'AX>'AX>'AX>'AX>'AUL4SU=7Z/*V&U<2X!!:6M3BYK7L:.Q-TZ#Q\nM[/%#\\>SL[.R'AX>'A\\!$%$-:U`Q7S]1_S\\BB%!2B5Q2'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\\"@\nM`B'Q(DCQ[$H=L;FGO;5:X(>'AX>J\"<]75\\B`P;Z@,-\"X@^&?S%$<JPV?-P;K\nMH9\\WS!=@-XQ<AX>'AS'$9@L+I4=Z>BJ[P#9U)5L4`LA75P);V6$KGJEXE5-3\nM[>V+BXN+BXN+BXN+BXLT-,7%-#0T-#0T-#0T-#0TBXN+[>WM4[\"PSU?/@$H,\nM5\\]-(8AH:(#!0]QH:&S30QVQ:$,0L;&([/%'1T='W]_?W]_?W]^I=3:F:JQ2\nM`2NTOJYN#N`0:.SP99LI])0GGV!1%X&,]\"0M<(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9F8+I:5'1Z6E\nM\"V;$,3$QQ,3$9F8+\"PNEI0L+9L0Q,3$Q,3$Q,3'$Q&9F9@L+\"PL+\"PMF\"PL+\nM\"PL+9L3$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=4\nM5%22DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DI*25%145%145%145%145%14%A86%A86%LG)R<G)R<G)\nMR<G)R<G)R<G)R<G)R<G)R<G)R<F)B8F)B8F)B8F)B8F)B8G)R<G)R<G)B8F)\nMB8F)B8F)B8F)3$Q,3$P/9\\4T-(OM[>U3L!D9<3T]F0,#7KN[*BHJ*GIZ>M_?\nMW]]'1T='1T>EI:4+\"V;$Q,0Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AZ)75U=7U!3/P$LE)3:>`83UZY^4J0&>*YZ>T'5&\nM$'Z]M5J(AX>'AX>'AX>'AX=75]1L+A#45U\\,MN]H@$2^*3\",4*&?45%1WC>4\nM!LR4!F9F9F9F9F;$Q,0Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAU`'@VK0@US:8]8MFCOL6CNL]&\"'AX>'AX>'AX>'AX>'A\\`4SU=7Z/*VU%<2\nMX!!:6M3BY@SLQNQ-2J\"L[/%#\\>SL[.R'AX>'AQ1$%$-:U`Q7S]3(HLBB6UNB\nM5Q2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'A\\`^`CNL\\4BL[$3L:+FGO;5^(8>'AX>J\"<]7H@*J3;YJ\nM,-\"XH>&?8/5VZ]Z?!HSKH8$WS/4W!HQ<Q`NE1]\\JN[M>7EX#`YF9P#8X)5L4\nM`M17H@+`V6'0J:EX68N+-#0T-#0T-#0T-#0T-#0T-#2+BXN+[>WM[>U34U-3\nM4[\"P&1EQ/9D#@%>`@-.U5\\]-(1!H:(#!0[EH:&S3M1VQ:$.YL>^([/$+\"PNE\nMI:6E1T='1T>>=3:#:F25>\"NTOJYN#N`0:.SP99LI])0GGV!1%Y\\&C\"3:<(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q\nMQ&8+I4='WWIZ>BHJ*BHJ>GK?W]_?1T='1]_?W]_?W]]'1Z6EI4='1T='1T='\nM1T='1T='W]_?W]_?1T='I:6E1T='1Z6E1T>EI:6E\"V9FQ,3$,3$Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DI*2DE14DI*2DE145%145%145%145%145%145%14%A86\nM%A86%A;)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)B8F)B8F)B8F)B8F)B8F)\nMB8F)B<G)R8F)B<G)B8F)B8F)B8F)B8F)B8E,3$P/#V=GQ30TBXOM4U-3L+`9\nM<=(]F0,#7EZ[NRIZ>GIZ>GK?W]_?WT='1Z4+9F;$Q,3$Q,0QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ175U=7R!3/6TLE)3:I\nM`0'UZY\\WG@&>T)YU)3A&$+&]#+&NAX>'AX>'AS$Q,3%75\\AL+A#45U\\,MN]H\nM@$2^*8R,4*&?45%@)Y0&!C<&C$='W]_?W]_?WT='I:6E\"PMFQ,0QAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AU`'@Y@K@US:8]8MFCOL?B&L]%&'AX>'AX>'AX>'\nMAX>'A\\!;SZ)7Z/*VU%<2X!#O6M3BTT/L[\")-2J\"L\\?&@\\>SL[/&'AX>'AQ1$\nM%\"'OU`Q7S]345P*B6UL4HA2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\`^P[YDK$BL\\43L:+FGO;5^\nM(8>'AX=&\"<_/H@*J34AJ7\"NXY\"=@4?5VZR>!C(SKX8&4S/4W!HQ<>BJ[7@,#\nMF3W2TM+2TM)Q.*K`2UM;;@(46VXXV6'0=:F>E<7%Q<7%Q<7%-#0T-(OM[5.P\nML+\"P&1D9&1EQ<=(]/9F9`P->7KLJ>GK?SU>`@-.U5\\\\20Q\"QL>KH0[FQL6S3\nMM<:QIT.Y[UJ([*R',<1F\"Z6EI:5'1T>>J3:#:BV5>\"NTOJX\"#N`0:!WP1)LI\nM])0GG\\Q@]9\\W!M8I<(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<QQ,1F\"Z5'W]]Z>BJ[7@.9F9F9F9D]/=+2TM(]/9F9`P,#7EZ[\nMNRHJ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GHJ*BHJ>GK?W]_?WWIZWWIZ>GIZWT='\nMI:4+\"V9F9L3$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=45%145%145%145%145%22\nMDI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*25%145%145%145%145%145%06\nM%A86%A86%A86%A86%A86%LG)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)\nMR<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<F)B8F)3$Q,3$Q,3`\\/#P]G\nM9V?%Q<4T-(N+[>U34[\"P&1EQ/9D#7KLJ*BHJ*GIZ>GK?W]_?W]_?WT='I0L+\nM9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAUL45U=7R*+/6TLE)39U*P'UZ]XWG@&>T*EU2\\\"JB&A:0^R@Q,3$Q,3$Q,3$\nM,3%75]3BX!#45U\\,MN]H@$2^*8R,4*$745',)P8&!I2,C+N[N[N[N[N[N[N[\nM*BIZWT>E\"V;$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AU`S@Y@K@UPI4-8M+;[L\nM?B&L]%&'AX>'AX>'AX>'AX>'A\\!;SZ)7Z/*VU%<2X!#O?LCBTT,B[/'E2CYD\nMK*R@\\>SL[/&'AX>'AZ)*%\"'OU`Q7@-3(5\\BB6UM;HA2'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS@[\nM2SNLK$BL\\40B:+FGO;5^(8>'AX=&\"<_/%&ZJ34@DC\"NXY\"<74?5VZR<*C/3K\nMX=8&-_4W!HQ\\`YD]/=+2<7$9&;!3[>V+.*K`2UM;2VY;6TMUV=#0GIYX`6=G\nM9V?%Q<4TB^WM4[\"P&1EQ<=(]/9D#7EY>N[N[NRHJ*BHJ>GK?1Z4+SU>`@-.U\nM5\\\\20Q#OL>KH#+;O[VS3M<;OIT.Y[UJ([*R'AX<QQ&8+\"PNEI:6>GMF#?-I9\nMGM\"TOHC(#N`0:!WP1)LI*5:A@3?,%Q?,E('T<#$Q,3$Q,3'$Q#$Q,8>'AX>'\nMAX>'AX>'AX<Q,3$Q,3$Q,3$Q,3$Q,3'$Q,3$Q,3$Q&8+\"V9F9F;$Q,3$Q&9F\nM9@L+\"PL+\"PMF9F9F9F9F9F9F9@NEI4='W]]Z*BJ[7EX#F9D]TG$9&1FPL+\"P\nML+\"PL+`9&1D9&7%QTM+2TCT]/3T]/9F9F0,#7EY>N[N[N[N[*BIZ>GIZ>GHJ\nM*BHJ*GIZ>GIZW]]'1Z6E\"V9FQ,3$,3'$Q,3$,3$Q,3&'AX>'AX<Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=4\nM5%145%145%145%145%145%22DI*2DI*2DE145%145%145%145%145%145%14\nM5%145%145!86%A86%A86%A;)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R8F)B8F)\nMB8F)B8G)R<G)R<G)R<G)R<G)R<G)B8F)R<G)R<G)R<G)R<G)R<G)R<G)R<G)\nMR8F)B8F)B8E,3$Q,3`]G9V=GQ<4T-#2+[>U3L+`9<=(]/3V9F9F9F9F9`UY>\nMN[N[NRHJ>M_?W]]'1Z4+9F;$Q,0Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A\\`4HE=7U%?/6VXE)39U*P'UJ][,>\"NIT'5UPUNJ\nMB!UH0^R@Q,3$Q,3$9F9F9F975]02X!#45U\\,MK$=@$2^*8R,4*$746#,)P8&\nM!I2,C`,#`P,#`P,#`P,#`P->7BIZWZ4+9L0Q,3&'AX>'AX>'AX>'AX>'AX>'\nMA\\V5H08!@U;T4(':+;[L[R&L]%&'AX>'AX>'AX>'AX>'A\\!;SZ)7Z/(0R%<2\nM+A\"G[\\CBTT/Q[*SE2#XM9&2@K.SQ[/&'AX>'AU?35T/OU`Q7S]345\\BB%%M;\nM%!2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'ASB^)3MD9$BL\\40B:-S&O;5:(8>'AX=&\"<_/%&ZJ34@D\nM5@&XY\"<74?5VZR<*C/2<X=8&E/4WE%8PTG$9L%/M[8N+-#0TQ<7%P#;`2UM;\nMPVY;P\"5U)2LKGGB>>&=GQ30TB^U34U.P&7%QTM(]F0->NRIZW]_?1T>EI0L+\nM\"PMF9F9F9L0QSU?/ZM.U5\\\\2#!!:?NKHM;9:6FS3M:=:IT.Y[UJ([/&'AX<Q\nM,<1F9@L+I:6>GMGD7-I9GF&T.]S4#BX0:.SP2IO:*5:A\"@8W%Q=@S)^,X69F\nM9@L+\"PL+\"PMF9F9F9F9F9F9F9@L+\"PL+\"Z6EI:6EI:6EI:6EI:6EI4>E1T??\nM>GHJ*KN[*BHJ*BHJ>GHJ*BJ[NUY>7KN[7EY>N[N[N[N[N[N[7@,#`YD]/=)Q\nM&1FPL.WMBXN+BXN+-#0T-#0T-#0T-#2+B^WM[5-34^WM4U.PL+`9&1D9<7%Q\nM<7'2/9F9`P->7EY>N[N[NUZ[N[N[*BIZWT>EI0MF9L0Q,3$Q,3$Q,3'$Q&9F\nM9L0Q,3$Q,3'$Q#$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=45%145%145%145%145%145%145%145%145%145%14\nM5%145%145%145%145%145%145%145!86%A86%A;)R<G)R<F)B8F)B8F)B8F)\nMB8F)B8F)B8F)B8E,3$Q,B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B<G)R<G)\nMR<G)R<G)R<G)R<G)R<G)R<F)B8F)B8F)B8F)3$Q,3$P/9V?%-#2+[5.P&1EQ\nM<=(]/3T]F9F9/9F9F9F9`P->7EY>7KLJ>GIZW]_?WT>E\"V;$Q,3$Q,3$Q,3$\nM,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\`45U=7U%?/6VXE2S9U\nMT`'UZQ?,>`&IT'5UPUNJB\")H._$^\"PL+I:6EI:6EI4=75]02X!#45U\\,QK$=\nM@$2^*8R,4*$7]6`W)Y0&!C>,!IF9F9F9`P,#`P->7KN[*BIZW]^E\"V;$Q#$Q\nM,3$QAX>'AX>'AX>'AX>'A\\V5H08!H92,S8$IL[[LL2'LVO6'AX>'AX>'AX>'\nMAX>'A\\!;\":)7Z/(0R%<2+K6GL0)LTT/Q\\63E2#XM9\"T^K/'Q[/&'AX>'AU<N\nM5T-:U`Q75]345\\BB6UO`6Q2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW6^83N:VDCQ[$0B'=RGO;5:\nM(8>'AX=&\"<_/%&ZJ34@D5@&XY\"<745$<JR>!C/2<X=:,!A=@S#<P&5/MBS3%\nMQ6=G#P],3$Q,6ZK`2UM;PVY;6TMU)0$!>`&>GL4T[5.P&1EQ/9D#7EZ[NRIZ\nMWT='1T='1T='I:6E\"V;$,3&'AX>'AX>'SU?/ZM.U5\\\\2#+9:?NI?M;9:6A+F\nMM:=:[PRY6EJ([/&'AX>'AS$QQ&9F\"PN>GMGD7\"D'GF%5.]S4#B[<QNSP2IO:\nM*5:A\"HR4%_5@S)\\&X:6EI:6EI:6EI:5'1T='1T='1T='1T='1T??W]]Z>GIZ\nM*BHJN[N[N[N[N[M>`P.9F9D]/3T]/=+2TM+2<7$9&1D9&;\"PL%-3L+\"PL!D9\nM&1D9&1FPL%/MBXLT-#3%Q6=G#P\\/#P\\/#P\\/#TQ,3$Q,3$Q,3$Q,3`\\/#TQ,\nM3$P/#P]GQ<4T-(OM[5.P&1D9<7%QTM+2TCV9F0,#`UZ[NRHJ>GIZW]_?1T>E\nMI0MF9F9F9L3$Q&9F9L3$Q,3$,3$Q,3$QQ,3$9F9F9F9F9F9F\"Z6EI:6E\"PMF\nM9F9F9F;$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX<6%A86%E145%145%145%14\nM5%145%145%145%145%145%145%145%145%145%145%145%145!86%A86%A;)\nMR<G)R8F)B8F)3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$R)B8F)B8F)B8F)\nMB8F)B8F)B8F)R<G)R<G)R<G)R<G)R<G)R<G)R<G)B8F)B8F)B4Q,3$Q,#V=G\nM9V?%Q<4TB^U34[`9&1EQTCT]F9F9F9F9`P,#7EY>7KN[NRHJ*GIZ>M_?1T='\nM1T='1]_?W]]'1Z6E\"V9F9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA\\!;5U=7U%?/%&Y+PS9UT\"OUZQ=@>`&IT'5UPUNJB\"+L._$^1T='1T='1T='\nMI:575]3BX!#45U\\,';$=@$2^*8R,*\"<74<PW)Y0&!C<&!@,#`P,#`UY>N[LJ\nM*GIZWT='1T>E\"V;$AX>'AX>'AX>'AX>'AX>'AX>'A\\V5Y)0!G&\"4*($IL[[Q\nM:.#L+3>'AX>'AX>'AX>'AX>'AUL4\":)7Z/*VU%<2(;5HL0(%2J\"L\\63E2)O:\nM+2T^I*RL[/&'AX>'AU<N5PQ:U`Q75]3(5P);P,`X6UN'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW6^\nM8;Z:,$CQ[$3L:-RGO;5:X(>'AX=&\"<_/%&ZJ34@DC`&XY\"=@45%VJ]Z!C(R<\nMX=:,!F!18,PPBXLT-,5G9P],3$Q,3$Q,6ZK`;EM;PVY;6TMU)0$!`0&>GK!Q\nMTID#7BIZ1Z4+9F9F9L0QAX>'AX<QQ,0Q,8>'AX>'AX>'AX>'AX>'SU?/ZBZU\nM5\\\\2#+9:6NI?M>^]6A+F$.^][PRV6EJ(QNR'AX>'AX>'AX>'AX>>J=GD7\"D'\nMGB55.]S4#B[<QNSI1)O:VESA\"HP&8/51S)\\WX7IZ>GIZ>GIZ>GIZ>GIZ>GIZ\nM>GIZ*BHJ*KN[NUY>`P.9/3W2TM+2TM+2TM)Q<7%Q<1D9&1FPL%-3[8N+BXLT\nM-#0T-#0T-#3%Q6=G#P],3$Q,3$Q,B8F)B8F)B8F)B8F)B8F)B8E,3$Q,3$Q,\nMB8F)B8F)B8F)B8F)B8F)B8E,3$Q,3`]G9\\4TBXOM[>WM4U-34[\"PL!D9&1EQ\nMTCT]F0,#NRIZW]_?W]_?WT='1T>EI:4+I:6EI:6E\"PL+\"PL+\"PMF9F;$Q,3$\nMQ,1F9F9F\"PL+\"V9FQ,3$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=4\nM5%14%A86%A945%145%145%145%145%145%145%145%145%145%145%145%14\nM5%145%06%A86%A86%A86R<G)R<F)B8F)B4Q,3$Q,3$Q,3$Q,#P\\/#P\\/#TQ,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$R)B8F)B8F)B8G)R<G)R<G)R<G)R<G)R186R<G)\nMR<G)R8F)B8E,3$P/9V?%-#0T-(N+[5.PL+`9&7'2TCT]F9D#`P->N[N[*BHJ\nM*BHJ>GIZ>M]'1T>EI4='1T='1T??W]_?W]]'I0L+\"PL+\"PL+9F;$,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A\\!;5U=7U%?/%&Y+PS9UT\"L7Z_5@>`&IT'5UP\\!&\nMB\"+L.ZP^\"PL+9F9FQ,3$,3%75]3BX!#(5U\\,'6@=@$2^*8P&*-[U4<S,)S<&\nM!I2,C'IZ>GIZ>GHJ*GIZ>M]'I0O$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMARA2Y#>$G&`&*($I,$BL[/*QK(R'AX>'AX>'AX>'AX>'AUL4\"5>BZ/*VU%=L\nM(;4=:`(%2J!DK\"WE2\"3:+3\"^LV1D\\?&'AX>'AU<N5PR]U.!75]0\"6\\/`=75U\nM=3B'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AW6^8;ZS,$BL[$0B'=QHO;5:#(>'AX=&\"<_/%&ZJ34B8\nMC\"NXY\"<74?5VZR>!C(R<X=:,!F`746`PBS3%Q6=G9P\\/3$Q,3$Q,6ZI;;EM;\nMPVY;P\"5U)0$!`0&I=5Z[*M]'I0O$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'SU?/ZBX05X`2#+9:6NKHM;9:6A+F$%J]6@RV6KVUL<:'AX>'\nMAX>'AX>'AX>>J:.#?\"D'GF&T.]S4#N`0:!WI1)O:VESA\"HP&8/518-[,X;N[\nMN[N[7EY>7EY>7EY>7EY>7EX#`YF9/3T]TM)Q<1D9L+!34^WM[>WM[>WM[>V+\nMBXN+-#0TQ<7%9V</#P\\/#V=G9P\\/#TQ,3$Q,B8F)B8G)R<G)R<G)R<G)R<D6\nM%LG)R<G)R<G)R<F)B8F)B8F)B8F)B8F)B8G)B8F)B8F)B8F)B4Q,3$Q,#P]G\nM9V?%Q<4T-(N+[5.P&1D9<=(]F0,#7EZ[NRIZW]_?W]]Z>M_?>GIZ*BHJ*KN[\nMN[N[N[LJWT>E\"V9F9F9F9F9F9F9F9F9F9L3$,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<6%A86%A86%A86%A865%145%145%06%A86%A865%14\nM5%145%145%145%145%145%14%A86%A86%A86%LG)R<G)R<F)B8F)B8F)3$Q,\nM3$Q,#P\\/#P\\/9V=GQ<7%Q6=G9V=G#P\\/3$Q,3$Q,3$Q,B8F)B8F)B8F)B8F)\nMB8F)R<G)R<G)R<G)R<G)R<G)R<G)R<F)B8E,3`\\/9V?%Q<4T-(N+B^WM4U.P\nML!D9TM(]/9F9F0,#`UY>7KN[*BHJ>GK?WT='1T>EI:5'1T='I:6E\"PL+\"PL+\nM\"PNEI:4+9L3$,3$QAX>'AX>'AX>'AX>'AX>'AX>'AUL45U=7U%?/%&[#PS9U\nMT\"L7Z_51`0&>*YZI)3A&B\"+L.ZQJ,8>'AX>'AX>'AX=75]3B+A#(5^@,'6@=\nM@$2^*8P&ZPWU4<Q@WI^4!@:,C*6E\"PL+\"PL+\"Z4+\"PL+9F9FQ#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AQR\\Y)0!H3>,*-;:,!@M(N#O\\3\"'AX>'AX>'AX>'\nMAX>'AUL4&U>BZ/*VU%=LTZ[L'6X%2CZD9\"WE<\"0IVBG6:MK:K*R'AX>'AU<N\nM5PRQR\"$4%`)NP\"5UJ:F>GJF'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A]G68;ZS,$BL\\67Q[(C&O;7O\nM0X>'AX=&\"0G/%&ZJ34AJC\"NXY\"<74?4<ZR>!C(SKX=8&!F#U4<RS[>V+BS0T\nMQ<5G9V=G9V?%6ZI;;EO`2TM;.\"5U!P&$`0&IJ:4+\"V9F9L0QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'SU?/ZBX05X`2#+9:?NKHM;9:6A+F\nM$.^]6@RV6KT06J>'AX>'AX>'AX>'AX>>=76#?-H'GF&T.]S4#N\"Y:&CI2CXM\nM+5SA)(P&8/514?5@)P,#F9D]/3T]/3T]/3T]/3W2TG%Q<7%Q&1FPL+!3[>WM\nMBXN+-#3%Q<7%Q<7%Q<7%9V=G#P\\/3$Q,3$Q,3$R)B8F)B8F)B8F)B8F)B8F)\nMB<G)R<D6%A86%A86%A86%A86%A86R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)\nMR<F)B8F)B8F)B4Q,3$Q,3$P/#V=G9\\4T-(OM[5.P&7%QTCT]/9F9F9F9`UY>\nM7EX#`P,#7EY>`P,#`P,#`P,#7EZ[NRIZWT='I0MF9F9FQ,3$,3&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<6%A86%A86%A86%A86%A86\nM%A86%A86%A86%A86%A86%A86%A86%A865%145%145%06%A86%A86%A;)R<G)\nMR<G)R8F)B8F)B8F)B4Q,3$Q,3$Q,3`\\/9V=G9\\7%Q<7%9V=G#P\\/#P\\/3$Q,\nM3$Q,3$Q,3$Q,B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)3$Q,\nM3$P/#P]G9V=GQ<7%-#2+B^WM4U.PL!D9<7%QTM(]/9D#7KN[NRHJ>GIZW]_?\nMW]_?W]_?1T>EI:6EI:6EI:6E\"PL+9F9FQ,3$,3$QAX>'AX>'AX>'AX>'AX>'\nMAQ175U=7U%?/%`+#PS9UT\"L7Z_51`0&>*YZ>)75&KB+L.V2;AX>'AX>'AX>'\nMAX=75]3B+K7(5^@,';$=@$2^](P&JPWU46!1WI^4!HSTC(>'AX>'AX>',3$Q\nMQ,1F9F9FQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'ARAVY`8!H5;TS=;:,!@M\nM(N#O\\=J'AX>'AX>'AX>'AX>'AUL4SU=7Z/*VR*)LTT/Q(L,%1#ZD9-KE<\"0I\nM*?36F\"DI9&2'AX>'AQ0N5T/L;CM;P$LE=2N>>'A2A'B'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AZG6\nM8;ZS,'!DK*9D\\:[L[T,=(8>'AX=&SPG/%&ZJ3;YJ,\"NXY\"<74?4<Z^$*C(SK\nMH8&4E&`74<RS4U/M[8N+BXN+BXOM[5.PP*K`;L#`)24V==\">,W:\\4E*>GJ5F\nM9L2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'SU?/ZBZU\nM5X`2#!#O[^KH#,9:6A+F$.^]6@RV6EJYO5J'AX>'AX>'AX>'AS&>=76#?\"D'\nMGF&TOHC4#N\"VL6CI2CZLK+-P)/2,GQ=14?5@)ST]TM+2<7%Q<7%Q<7%Q&1D9\nM&;\"PL%-3[>V+BS0TQ6=G9V=G9P\\/#P],3$Q,3$Q,3$Q,3$Q,B8F)B8F)B8F)\nMB8F)R<G)R<G)R<G)R<G)R<D6%A86%A86%A86%A86%A86%A86%A86%LG)R<G)\nMR<G)R<G)R<G)R<G)R<G)R<F)B8F)B8F)B8F)B8F)B8F)B4Q,3$Q,3`]GQ30T\nMBXOM4[\"P&1D9&1D9&7%Q<7'2TCT]/9F9F9F9F9F9F0,#7EZ[NRHJ>GK?1T>E\nMI0L+9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q,<3)\nMR<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<D6%A86%A86%A86\nM%A86%A86%A86%A;)R<G)R<G)R8F)B8F)B4Q,3$Q,3$Q,#P\\/9V=G9V=G9V=G\nM9P\\/#P\\/#P\\/#TQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$R)B8F)B8F)B8F)B8E,3$Q,3$P/#V=G9\\7%Q<4T-#2+B^WM4U-3L+`9&7%Q\nMTM(]F0->7KN[NRHJ*BHJ*BIZ>GK?W]_?W]_?W]_?W]_?W]_?1T>EI:4+\"PMF\nM9F9FQ,3$Q#$QAX>'AX>'AZ)75U=7R%?/H@)N;EMUT\"N?G!?U4H1X`7B>T'7N\nMKB+L.V2;AX>'AX>'AX>'AX=75]3B+K7(5U\\,QK$=@$2^](R4JPWU45%1#9^4\nM!HSTC(>'AX>'AX>'AX>'AX>',<3$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMARB\\H8PK@UPI4-;:,!AD[/*Q\\62'AX>'AX>'AX>'AX>'AUL4SU=7Z/(0R!1L\nM2J\"L\\4L%1+ZS+3#E923T](R!!HR,VMJ'AX>'AQ0N5T/L2[[`.\"5AJ0&54E)2\nM`0&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'A]G6T+ZS,'`M+8,MK*3Q:*#Q.X>'AX=&SPG/%`*J3;YJ\nM,-\"XY-X745$<G.$*C`;KH9\\W-Q=1S)2STG%Q<7%Q<=+2/3T#7EZ[P#;`;L!U\nM)6$V=2MX4A,3A(2>>(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'@%>`@-.U5X`2#!#O[^KH#,9:6A+FM:=:[PRYL;$0O>^'AX>'\nMAX>'AX>'AX>>=76#?\"D'GF&TOHC(#N\"V6K'I2J#Q\\:1(FRGTE)_,8/51)]+2\nM<7%Q&1D9&;\"PL+!34U-3[>V+BS3%9V</#TQ,3$Q,3$Q,3$Q,3(F)B8F)B8F)\nMB8F)B8F)B8F)R<G)R<G)R<G)R<G)R<G)R<D6%A86%A86%A86%A86%A86%A86\nM%A86%LG)R<G)R<G)R<D6%A86%A;)R<G)R<G)R<G)R<G)R<G)B8F)B8F)B8F)\nM3$Q,3$Q,3$Q,3$Q,#P]GQ30TBXN+[>U34U-34[\"P&1EQ<=(]/9F9`P,#7EY>\nM7EY>NRHJ*GIZW]_?1T='1T='I0MF9F;$Q,3$,3$Q,3$Q,3&'AX>'AS$Q,3'$\nMQ,1F9@L+\"PL+\"PL+\"PO)R<G)R186%LG)R<G)R<G)R<G)R<G)R<G)R<G)R<G)\nMR<G)R<G)R<G)R<D6%LG)R<G)R<G)R<F)B8F)B8F)B4Q,3$Q,3$Q,3$Q,3$Q,\nM3`\\/#V=G9V=G9V=G9V=G9P\\/#TQ,3$Q,3$Q,3$P/#P],3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3(F)B8F)B8F)B8F)B8F)B8E,3$Q,3$P/#P\\/9V=G\nMQ<7%-#2+B^WM[5-3L+`9&7%QTM(]/9F9`P,#`P,#`P,#`UY>7EY>7EY>`P,#\nM`UY>7EZ[N[N[*BHJ*GIZW]_?WT='1T>EI0L+9F;$Q%=75U=7R%?/5P)N;EMU\nMT\"N?H1?UA'8!A'AX*ZGNKO'L.V1JAX>'AX>'AX>'AX>B5]3B(;7(5U\\,MN]H\nM@$2^F(PWJPWU]5'U#6`W!HR,C(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'ARA2@YC0@US:4-8ML[[Q'?+O\\:R'AX>'AX>'AX>'\nMAX>'AUNBSU=7Z.\"(`EL%2CYDK\"639;YJVHQCX=:,C`8G-Y24*2F'AX>'AQ0N\nM5R'Q);XX==`KGG92A)4!>%*'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AZG6T+ZS,'`M+8.SK*3QQCYD\nMOH>'AX=&\"0G/%`*J3;YJ,-\"XY-X745$<G.$*!@:K)Y_,S!=@S%8P*BHJ>M]'\nM1T>EI:4+\"V9FP#;`2W5UT-#9G@$!=KR\\4E(!`8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@%?/@-.U5X`2#!\"Q[^KH#,;O6A+F\nMM<;OL4/<:&B(6L:'AX>'AX>'AX>'AX>I=77D7\"D'GF&TOHC(#N\"V6GX.TXCL\nM[*Q(:MHI)`H&-]Y1)YD]TG$9L+\"P4U-3[>WM[>V+BS3%Q6</#TQ,3$Q,3(F)\nMB8F)B8F)B<G)R8F)B8F)B8F)B<G)R<G)R<G)R<G)R<G)%A86%A86%A86%A86\nM%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86R<G)R<G)\nMR<G)R8F)B8F)B4Q,3$Q,3$Q,3`\\/#P\\/#P\\/#P]G9V?%Q<4T-(N+B^WM4U.P\nM&1EQTM+2TCT]/9F9`P,#`P->7EZ[*GIZW]]'1Z6EI:6EI:6EI:6EI0L+\"Z6E\nMI4??WWIZW]_?W]_?WT='1T='1T='1]_?W]_?W]\\6%A86%A86%A86%A86%A86\nM%A;)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R8F)B8F)B8E,3$Q,\nM3$P/#P\\/#P\\/#P\\/#V=G9V=G9V=G9V=G9V=G9P\\/#TQ,3$Q,3$Q,3`\\/#P\\/\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$R)B8F)3(F)B8F)B8F)B8F)3$Q,\nM3$Q,3$Q,3$P/#P\\/9V=GQ<7%Q30TBXN+B^WM4U.PL!D9&;\"PL+\"P&1D9<7%Q\nMTM+2TM+2TM(]/=+2TM+2<=+2TM+2TM+2/3V9F0->7KN[NRIZ>M_?WT='I:4+\nM\"U=75U=7R%?/5P)N;EMUT-\"!H1?UA+P!A`%X*Y[NH*SQOF0DAX>'AX>'AX>'\nMAX>B5]3B(;7(5U\\,MEIH@$2^](R4ZPT745%1#1?,-P8&E(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\TS@VIA95S:8]8MFK[L\nM:/):[/&'AX>'AX>'AX>'AX>'AQ17SU=7Z\"&(;L\"T1#XM+6&3@]:8*8R<X8$&\nM!C?>8&#,C(R'AX>'AULN5T/Q)4AUJ2L!`1-2`5EXGE*'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AZF!\nM*[XP,'#:VJ&S9*2L[#YDOH>'AX=&\"0G/HLBJ3;YJ,-\"XY\"<745$<G.$*E)2K\nMWMY@8!=@-P8PQ&9F9F9FQ,2'AX>'AX>'P#8X)75UT\"L'>%(!=A,34@&$A(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'SU?/@-.U\nM5X`2#!#O[^KH0QWO?FS3M1VQ:$.([.RNL>R'AX>'AX>'AX>'AX>IJ77D7\"D'\nMGM\"TOHC(Z2&V6EH.YHAH:/%*H&0MF\"2,E-Y1)P,#F3W2<1FP4U/M[8N+BXLT\nMQ<5G9V=G9P\\/3$Q,3$Q,3(F)B8F)B8F)B8F)B8G)R<G)R<G)%A86%A86%A86\nM%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86\nM%A86%A86%A86%LG)R<G)R<G)B8F)B8F)B4Q,3$Q,3$Q,#P]G9P]G9V=G#P\\/\nM9V=GQ<4T-(N+B^WM[>WM4U.PL!D9&1D9&7%QTM(]/3V9F0,#`P,#7EZ[NRHJ\nM*BIZ>GIZ>GIZ>GIZ>GIZ>BHJ*KN[N[N[N[N[N[N[N[N[NRHJ*BHJ*BIZ>GH6\nM%A86%A86%A86%A86R<G)R<G)R<F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)\nMB8F)B8F)B4Q,3$Q,3`\\/#P]G9V=G9V=G9\\7%Q<4T-(N+BXN+BXN+BS0T-#0T\nM-#3%Q<7%Q<7%Q<7%9V=G9P\\/#TQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$R)\nMB8F)B8F)B4Q,3$Q,3$Q,3$Q,3$Q,3$P/#P]G9V=G9V=GQ<5G9V=GQ<7%Q30T\nM-#0T-#0T-#0TBXOM[5-34U.PL!D9&1EQ<7%Q<7%Q<1D9&1D9&1D9&1EQ<=(]\nM/9F9`UY>NRIZWT='I:6EI5=75U=7R%?/H@)N;EMUT-\"!H9]1A+P!=@%X*Y[N\nM:F2LOMHDAX>'AX>'AX>'AX=75]3B(;7(5U\\,IUJQ@$2^*8P&**&?8&!1#1=1\nM8,PW8(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAU`'IJ0E97PM8YMDK#OL:.\"]QB*'AX>'AX>'AX>'AX>'AU=7SU>BP3N@)76T\nM<\"0I,-!0@]:8](SKX8&4E,P-]5%1!HR'AX>'AUO35R'Q81BIG@%VA+P!`0>>\nMGI6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AP>?`1@PC.'T*:&8VK-D[#ZL.X>'AX=&:PG/5\\BJ33N@\nMLV&XY.%@4?4<G\">?-\\RK#?514?5@-XPPAX>'AX>'AX>'AX>'AX>'6S8X876I\nM*P&5`78!4KP34@%24H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'SU?/@-.U5\\\\2#+;O[^KH0^RQL6S30^S&[#NN[.R@:/&'AX>'\nMAX>'AX>'AX>>J=GD7\"D'GM\"TOJX\"Z2$06EH.YK6QL2+3KF1DF\"2,!MY1W@.9\nMF=)Q&;\"PL%-34^WMBXLT-,7%9V=G#P],3$Q,3$Q,B8F)B8F)B4R)B8F)B8F)\nMR<G)R<G)R<G)R186%A86%A86%A86%A86%A86%A86%E06%E145%145%145%14\nM5%06%A86%A86%A86%A86%A86%A86%A86%A;)R<G)R<F)B8F)B8F)B4Q,3$Q,\nM3$Q,3$Q,3$Q,3`\\/#V=G9V=GQ<7%-#0TBXN+BXN+BXN+[>U34U-3L+\"P&1D9\nM<7%Q<7%QTM(]/9F9F9D#`P,#`P,#`P,#`P,#`P,#`P,#`P,#`YF9F0,#`P->\nM7EY>7EY>7EY>7EY>`P/)R<G)R186%A;)R<G)R<G)R<F)B8F)B8F)B8F)B8F)\nMB8F)3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#P\\/9V=G9V?%Q<7%Q<7%-#0T-(N+\nM[>U34[\"PL+\"PL+!34U-3[>WMBXN+BXN+BXN+-#0TQ<7%Q<7%9V=G#P\\/#P\\/\nM#P\\/#P\\/#TQ,3$Q,3$Q,3$Q,3$Q,3$P/#P\\/#P\\/#P\\/#P\\/9V=G9V=G9V=G\nM9V=G9V=G9V=G9P\\/#P]G9V=G9V=GQ<7%-#0TBXN+[>WM4U.PL!D9&1EQ<7%Q\nM&1D9&1D9&1D9&1EQ<=(]F0,#7KN[NRIZWT='1Z6EI:)75U=7R%?/H@)NPUMU\nMT\"N?H9]1A!,!O`$!`9XYF[,M&\"G6AX>'AX>'AX>'AX=75]3B(;7(5U\\,IUJQ\nMZDH^VC\",4*&?S,Q@#?5145%148>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AU`'9:1+1+-D8YOQ\\3OL'2&][R*'AX>'AX>'AX>'\nMAX>'AU=7SQ1;3;YJT'50X=:,C`'-@]:,]`;KH9\\W-V`-]5%1-Y2'AX>'AULN\nM5SNLT.%X`1.\\`81X`:FI=:F'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AU(-O.%6E\">4!N0&C%PM\\:#L\nM(8>'AX=&:VO/5\\BJP3N@FB6X@^&?8/4<Z]Z?8%&K#?514?5@-XPPAX>'AX>'\nMAX>'AX>'AX>'6ZHX876>`812A+P!4G83`0$!`8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'SQ3/@-.U5\\\\2#+9:?NKH0^QH:`5*\nM0_'L\\3NN\\?&@[*R'AX>'AX>'AX>'AX>>GI[D)\"D'GM\"T2*1NZ=/<L7X.YA!:\nM6AW3KJQD:B2,!I_U)P.9/=)Q<7$9L+!3[>V+BXLT-,7%Q<5G9V=G9P\\/#TQ,\nM3$Q,3$Q,3$Q,3$R)B8F)B8F)B8F)R<G)R<G)%A86%A86%A86%A86%A86%A94\nM5%145%145%145%145%145%145%145%145%06%A86%A86%A86%A86%LG)R<G)\nMR<F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B4Q,3$Q,3$Q,3`\\/9V=G9V=G9V=G\nM9V=G9V?%Q<4T-(N+[>WM4U-3L+\"PL!D9<7%Q<7%Q<7$9&1D9&1EQ<7%Q<7%Q\nMTM+2TM+2TM+2/3T]F9F9F9F9F9F9F9F9F9F9F9G)R<G)R<G)R<G)R8F)B8F)\nMB8F)B8F)B4Q,3$Q,3$Q,#P]G9V=G9V=G#P\\/#P\\/9V=G9V=GQ<7%-#0TQ<7%\nM-#0TBXOM[>WM[>WM[5-34[\"PL!D9&1D9&1D9&;\"PL+\"P4U-34U/M[>V+BXLT\nMBXN+BS0T-#3%Q<5G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9\\7%Q<7%\nMQ<7%Q<7%Q30TQ<7%Q<7%Q<7%Q6=G9V=GQ6=G9V=G9V=G9V=GQ<7%-#0TBXN+\nMBXOM[>U34U-3L+`9&1D9&;\"PL+\"PL+`9<7'2/9F9`P->NRHJ>GIZW]]'1T>E\nM\"Q175U=7R%?/H@)NPVYUT\"N?H9]@`1.$O`$!A'A9)\"DIX0:!AX>'AX>'AX>'\nMAX=75]3B(1#(5U\\,IUKOZDJ@+;,P8Z&!E#=@#?7U]5%148>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AU`E1*1+1+.LSC[L(COL\nM[\"%:O>R'AX>'AX>'AX>'AX>'AU>B:UO`34@D*YY0H=8&!@'-H=8&C`;KH9_,\nMS%$-%V!1S,R'AX>'AQ0N5SMDT.%24G:$`819`=EU==F'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUG>\nMO-Y140U14>O,!ES:\\:`=0X>'AX=&:VO/5\\BJP3NN9\"6J@W`*E%$<JPWU]5&K\nM#=Y@8!=@-P8PAX>'AX>'AX>'AX>'AX>'%*K`)76>`;Q2A!-24G:\\`7AX>(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'SQ0)@-.U\nM5\\\\2#+9:?NKH0_'L[`5*H&2L9+Z@9*P^\\62'AX>'AX>'AX>'AX>>GI[K\"O0'\nMGM\"T2*1+Z4J(QK$.YA!:O1TAKJRL:ICTC)]1)P.9/=+2<1D9L+!3[8N+-#0T\nM-#0TQ<7%Q<7%Q<7%9V=G9V=G9V=G9V</3$Q,3$Q,3(F)B8F)B8F)B<G)R<G)\nMR<G)R186%A86%A86%A86%A86%A86%E145%145%145%145%145!86%A86%A86\nM%A86%A86%A86R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<F)B8F)B8F)\nMB8F)B4Q,3$Q,3$Q,3$Q,3$Q,#P\\/#P]G9\\7%Q<7%Q<4T-#0TBXOM[5-34U-3\nM4[\"PL+\"PL%-34U-34U-3L+\"P&1D9&1D9<7%Q<=+2TM+2TM+2/3T]/3T]/3V)\nMB8F)B8E,3$Q,3$Q,3$Q,#P\\/#P]G9V=G9V=G9V?%Q<7%-#0T-#0T-#0TQ<7%\nMQ<7%Q<7%Q30TBXN+BXN+BXN+[>U34U-34[\"P&1D9<7%Q<7%Q<7%Q<7%Q<=+2\nMTM)Q<7$9&1FPL+!34U/M[>V+BXN+-#0TQ<5G9P\\/#P\\/#V=G9V=GQ<7%Q<7%\nMQ<7%-#0T-#0T-(N+BXN+BXN+BXN+BXN+BXN+BS0T-#0T-#2+BXN+BXN+-#3%\nMQ<4T-#0T-(N+BXN+B^WM[>U34U/M4U.PL!D9&1EQ<7%Q<=+2TCT]F0->7KN[\nMN[LJ*GIZ>M_?1Z4+\"PL+9A175\\]7R%?/H@)NPVYU*P$7H9\\W`;R$O`$!=@$<\nM\"@:,WLR?AX>'AX>'AX>'AX=75]3B+A#45U\\,MEKOZDJ@9\"TP8^$*!I1@#1?U\nM]5%1S(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA[0E1&3#2J3LSJ#L(COQ\\3NQ[VB'AX>'AX>'AX>'AX>'AU<4R#AUY7`D`9[-\nMH9\\W-X0HH=8&C`;KH9_,8%$-46!@8,R'AX>'AU<N5SLM*]Z$`0$!>`$'`=FI\nMJ76'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AZF!`0U140W,8*L7E%8PK#X=0X>'AX=&:VO/5\\BJP2&(\nMK,.JIA@DC#<<ZPWU4<RKH9\\W-V!@-U8PAX>'AX>'AX>'AX>'AX>'%*I;)76>\nM`;Q24A.$=KQV>)YX>(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'HA0)@-.U5X`2#+9:?NK!0_'L\\55$OMHMVAAJ+60^9-J'AX>'\nMAX>'AX>'AX=X>'BKGXP'GF&32*1+Z4JN[&CIT[5:O6@AKO&L:I@IC)]1)P.9\nMF3T]/3W2<1D9L%/MBXLT-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#0TQ<5G9P],\nM3$Q,3$Q,3(F)B8F)B8F)B<G)R<G)R<G)R<G)R<D6%A86%A86%A86%E145%14\nM5%145%145%145%145%145%145%145%145%06%A86%A86%A86%A86%A86%A86\nM%A86%LG)R<G)R<G)R<G)R<F)B8F)B8F)B4Q,3$Q,3$Q,3$Q,3$P/#P\\/#P\\/\nM9V=G9V?%Q<7%-#0T-(N+BXN+B^WM[5-34U-34U-34U-34[\"PL+\"PL!D9&1D9\nM&1D9&1D9&7%Q<7'2TM),3`\\/#P\\/#P\\/9V=G9V=G9\\7%Q30T-#0TBXN+BXN+\nMBS0T-(N+-#0T-(N+B^WM[>WM[>WM[>WM4U-3L+`9&1D9&1D9<7%QTM+2TCT]\nM/3T]/3T]F9F9F9F9F9F9/3T]/3T]TM)Q<7$9&1FP4U/M[8N+-#0T-,7%Q6=G\nM9V=G9\\7%Q<4T-#0T-#2+BXN+BXOM[>WM[>WM[>WM[>WM[>WM[>WM[>WM4^WM\nM[>WM[>WM[>U34U-34U/M[>U34U-34U-34U.PL!D9&1D9&1D9&7%Q<7%QTM(]\nM/9F9F0,#7KN[*BIZ>M_?WT='1Z6E\"PMFQ#&'AX>'AUM75\\]7R%?/5P)NPVZI\nM*P$7H8$&GG:$$U(!O`$<GV#,#5'>AX>'AX>'AX>'AX=75]3B+A#(5U\\,MEJQ\nMZDJ@K&3:8^$*!I1@#?7U]5%@-X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A[0E1*QN2J3LSJ#L\\;ZL\\;YH:.^'AX>'AX>'AX>'\nMAX>'AU=;6W5UY>$*A'@HH9_,S'8HH=8&C)3K)]Y145$-46!18,R'AX>'AU<N\nM%+[:`0T!>`$KG@&I>`>>GG6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A]F!*R<W!B>4-ZM1S`HI9#[L\nM0X>'AX=&:S:`5\\BJZ\"&(\\<.JIAB8C`8YZPT7S)3KH8$&!LQ@-Y0PAX>'AX>'\nMAX>'AX>'AX>'%*I;876>`;Q24KQ2=KP!GIZ>GH>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'HEL)@-.U5X`2#+9:?NK!0ZSQK)-E\nMOBG:*1B8VBV;+2F'AX>'AX>'AX>'AX=X>'BK%P8'GF&32*1+Z4JN[!WIT[5:\nMO:<AKO&LLVK:](%1WGIZ*KN[7EX#F3W2<7$9&;\"P4U-34U-34U-34U-3[>WM\nM4U-34U-34U-3[8N+-,7%Q<5G9P\\/#P\\/#P],3$Q,3(F)B8F)R<G)R<G)R<G)\nMR186%A86%A86%A86%E145%145%145%145%145%145%145%145%145%145%14\nM5%145%14%A86%A86%A86%A86%A86%A86R<G)R<G)R<G)R<G)B8F)B8F)B8E,\nM3$Q,3$Q,#P\\/#P]G9V=G9\\7%Q<7%Q<7%Q30T-#0T-(N+BXN+[>WM4U-34U-3\nM4U-34U-34U-3[>WM4U-34U-34U-3L+\"PL!D9&7&+BXN+BXN+B^WM4U-34U.P\nM&1D9&;\"P4U-3L+`9&7%Q<1D9&;\"PL!D9&7%QTM+2TM)Q<7%Q<7%Q<=+2/9F9\nM`P,#`P->7EY>N[N[N[N[7EX#`P,#`P,#`P,#F9F9F9F9F9D]/=+2<7%Q&1D9\nM&;\"PL%-34U-3[>WMBXN+BXN+BXN+BXN+BXN+BXN+B^WM4U-34U-3L+\"PL+\"P\nML+\"PL+!34U-34U.PL+\"PL+\"P&1D9&1D9&1D9<7%Q<7%Q<7%Q<7%Q<7%QTM+2\nMTM+2TM+2/3T]/3V9F0->N[LJ>M_?1Z6EI0MF9L3$,3$QAX>'AX>'AX>'AX>'\nMAUNB5\\]7R%?/5P)NPVYUT`$7H0H&G@%2$X0!O%(<]?51#5'>AX>'AX>'AX>'\nMAX=75\\CB+A#(5^@,QN^QZDJ@9&0P8^$*!I1@#?7U]5%@-X>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A[0E1/$\"2JSL!3[LK+ZL\nM\\3MH:%J'AX>'AX>'AX>'AX>'AQ3`;G6IY>&?=@$HH=[,8':7H=8&C#>K#1=1\nM45'>46!18,R'AX>'AU?36[[TA`T!>`$KGBNI>`>>GEN'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW76\nMT.$&C.&,!NM149^,+3XB0X>'AX?N:S;/5\\BJZ\"'<(FZJIKZ8]`8YG-Z?-P;K\nMX=:,C#?,E)2SAX>'AX>'AX>'AX>'AX>'6ZI;876I`7924G8!4G8!GIZ>GH>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'%%O/@-.U\nM5\\\\2#+9:?NK!0ZSQ9&.#UICTC.$D*=J;*8R'AX>'AX>'AX>'AX=X>'BK%Y19\nMGF&T2*1+Z4JN[!WIT[5:O:<AB/'QI&K:*=91#6:E1T??>GHJ*KM>`P.9/3W2\nM<7$9&1D9L+`9&1D9&;`9&1D9&;\"PL%-3[>WM[8N+BXN+BS0T-#0T-,5G9P],\nM3$Q,B8F)B8G)R<G)R<D6%A86%A86%A86%E145%145%145%145%145%145%14\nM5%145%145%145%145%145%145%145%145%06%A86%A86%A86%A86%LG)R<G)\nMR<G)R<G)R<G)B8F)B8F)3$Q,3$Q,3$P/#P\\/9V=G9\\7%Q<7%-#0T-#0T-#0T\nM-(N+BXN+BXOM[>WM[>WM[>WM[>WM[>V+BXN+BXN+BXOM[>WM[>WM[>WM4U/2\nMTM+2/=(]/3T]/3T]/3T]F9D#`P->7EZ[NUY>7EX#`UY>N[LJ>GK?WT='I:6E\nMI4='W]_?W]]'I:5'1Z6EI4='I:6EI:4+\"PNEI:6E1T='1]_?>GIZ>GHJ*BHJ\nM*BHJNUY>7@,#`P,#`YF9F3T]/3T]TM+2<7%Q&1D9&1D9L+\"PL+\"PL+\"PL+`9\nM&1D9&1FPL!D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&7%Q<7%Q<7'2TM(]\nM/3T]F9F9F9F9F0,#`P,#`P,#`P,#`UY>N[LJ>GK?1Z6E\"PL+9L0QAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AUL45\\]7R%?/5\\@\";EMU82N!@R2,G@$!O(0!O(0<\nM%U%1#5'>AX>'AX>'AX>'AX=75\\CB+A#(5^A#[+$=@$H^+=HP8^&!E#=1#?51\nM]5%@-X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA[0E1/$\"2JSL!3[LK#OQ\\3MH:%J'AX>'AX>'AX>'AX>'AQ3`;G6>Y>&?O`$H\nMH=[,8'8HH=8&!F\"K#?518&#>8&!18&\"'AX>'AU=*=1B,O`T!>`$KGBO9>-F>\nMGFN'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AW6^)>&,,.&,].0W4?4W*9LB0X>'AX?N-C;/5]2JZ.#<\nM(FZJIKZ8](PYG\">?E(R<X=:,C)0W!HR:AX>'AX>'AX>'AX>'AX>'P#;`T'6I\nM`792A'8!4H0KJ76>GH>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'%!3/@-.U5\\\\2#+9:?NK!H&2L9%\"#UHSTC.$D]\"D*](R'AX>'\nMAX>'AX>'AX<!`0>K%Y19GM!02+,EZ4JN[!WIT[5:O:<AB.SLI*`MVM8WWC'$\nM9@NE1]_?>GIZ*KM>`YF9/=+2<7%Q&1D9&1D9&1D9&1D9&1D9&1D9L+!34U/M\nM[>WM[8N+-#3%Q<7%9P],3$Q,B8F)B8G)R<G)%A86%A86%A86%E145%145%14\nM5%145%145%145%145%145%145%145%145%145%145%145%145%145%145%14\nM5!86%A86%A86%A86%A86%A86R<G)R<G)B8F)B8F)3$Q,3$Q,3$P/#V=G9V?%\nMQ<7%Q30T-#0T-#0T-#0T-(N+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXLT-#0T\nM-#0T-#0T-#0T-#0T-#1Z>GIZW]]'1T='1T='WT='I:4+9L3$,3$Q,3$QQ,3$\nMQ,0Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q,<3$9F9F\"PL+I:5'1T='1]_?W]]Z>GIZ*KN[7EX#`P,#F9F9F3T]\nM/3T]/3T]TM+2TM+2TM+2TM+2<7%Q<7%Q<7%Q<1D9&1EQ<7%Q<7'2TM+2TM+2\nMTM+2TM(]/3T]F9F9`P,#7EZ[*BHJ*BIZ>GIZ>BHJ>GIZ>GIZ>GK?WT>E\"V9F\nMQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUL45\\]7R%?/5\\C(`FO`\nM)6$D920PG@%X=E)2=H19GV!1#5&?AX>'AX>'AX>'AX=75]3B(;7(5^A#(L8B\nM@$2^,#\",4.&!-\\Q1#1=145%@-X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A[0'1*P\"2O%H!:#L\\3NL\\3MH:%J'AX>'AX>'AX>'\nMAX>'AQ3`-G6>Y*&?O`$H)R?,8+PHH8&4-U&K#=Y@S,S>8&!145&'AX>'AQ1$\nM=1B,$PT!>`$!GBNI>-F>J<^'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW6^)7\",,.'T*>0&-Q=1C)LB\nM(8>'AX?N-C;/5]2`7_*Y'0*`9;Z8*8R7Y\">?E(R<X=:,](P&C(R:AX>'AX>'\nMAX>'AX>'AX>'=>YU*W6>`792A!,!4G8K=75U=8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'%!3/@-.U5U<2#+;O[X#!H*2L+5\"#\nMUHSTC.$D]/0*]`:'AX>'AX>'AX>'AX<!`5FK%Y19>-!0<&IAZ4J@\\>SIT[5:\nMO>_@W.SLK*YD+22,X8>'AX<Q9@NE1]]Z>BJ[7EX#`P.9F3T]/=+2TM+2TM+2\nMTM+2TM+2<7$9&1FPL%-3[>WM[8N+-#3%Q<5G#TQ,3$Q,B8F)B<G)R186%A86\nM%A945%145%145%145%145%145%145%145%145%145%145%145%145%145%14\nM5%145%145%145%145%145%145%06%A86%A86%A;)R<G)R<G)R8F)B8F)B4Q,\nM3$Q,3$Q,#P]G9V=GQ<7%Q<7%Q<4T-#0T-#0T-#0T-(N+BXN+BXN+BXN+-#0T\nM-#0T-#0T-#0TQ<7%Q<7%Q<7%Q<7%Q<7%Q<7%Q<6'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q\nMQ,3$9F8+\"Z5'1]]Z>BHJN[M>7EY>7@,#`P.9F9F9/3T]/3T]/3W2TM+2TG%Q\nM<=+2TM+2TM+2TM(]/3T]F9F9F9F9`P->7KN[N[N[*BIZ>M_?1T='WT='1T='\nM1T='1Z6E\"PL+\"V9FQ,2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAUL45\\]7R%?/5]3(R`E;;B5\\1&HPJ2N>`0&5A`$YGV!1#5&?AX>'AX>'AX>'\nMAX=75]3B(;4\"%,$A\\>RLJF76F(R,4*&?S&!1#1=145%@-X>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AU`'1&1N2O%H;*#&(CNL\nMK+YH:%J'AX>'AX>'AX>'AX>'AQ3`-G6>Y*&?O`$HH9\\W8+R7H8$WS/6KWI_,\nM-\\S>45%145&'AX>'AQ1$=1B,O`T!`0$!>\"NIGMEU=<^'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW76\nMT.%6C.'T*:&,!A=1C)LB(8>'AX<Y;FX)HLBJ7_*VL<B`1+YJVC\"7Y.$*C(R<\nMX22,](R,]\"FLAX>'AX>'AX>'AX>'AX>'J>ZI`9Z>`819`1.$=KP!J74X.(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5Z+/@-.U\nM5U<2#+GOL8#!/J1D+5\"#UICTC.$D]/0*C)2'AX>'AX>'AX>'AX>$4I6K%S<!\nM>\"M0<)C0\\$1JK/'ITXA:O7[@N6BQ\\:[Q9\"3:UH>'AX>'AS'$Q,1F\"Z5'1]]Z\nM*KN[7EY>7EX#`P.9F9F9/3T]/3T]/=+2<7$9&;!34U/M[8N+-#3%Q6=G#P],\nM3(F)B8F)R<G)R<D6%A86%A86%A865%145%145%145%145%145%145%145%14\nM5%145%145%145%145%145%145%145%145%14%A86%A86%A86%A86%A;)R<G)\nMR<G)B8F)B8F)B8F)3$Q,3$Q,3$Q,#P\\/9V=GQ<7%Q<7%Q<7%-#0T-#0T-#0T\nM-#0T-#0T-#0T-#0T-#0T-#0TQ<7%Q<7%Q<7%Q<5G9V</#P\\/3$Q,#P\\/#P^'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&9F\"PL+I:6E1T??W]]Z>BHJ\nMNUY>`P.9F9F9F9F9F9D]/3T]/3T]/3T]/9F9F9F9F9D#`P->7EZ[NRIZW]_?\nM1T>E\"V;$,3$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AUL45\\]7U%?/5]3(R,^B`FZ@2J\":==\"I*YX'`0$Y\nM@6!1#5&?AX>'AX>'AX>'AX=75]0%TZX\"6\\$[9*PMJH/6C`:4ZZ&?8%'U#1=1\nM45',E(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAU`'9:1+2O%H;$-H(COQK#MH:%J'AX>'AX>'AX>'AX>'AZ);-G6>Y.&?O'@H\nMH9\\W8+R7H9_,45&K)Y\\W-\\S>45%145&'AX>'AUM$=1CT=@T!`80!>\"NIGMEU\nM=<^'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AZF!*^&4!N&,*:&,-_5@])LB(8>'AX<YV1%K6\\BJZ/*V\nM[]2`1+YJ+2U&Y>$*C/2<<\"3T*3\"8VC\"LAX>'AX>'AX>'AX>'AX>'GNZI`9Z>\nM`0$'>'924A,!GG7`P(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'5U?/@-.U5U<2#+FQL8!-/K,M+5\"#)\"G:*1@D]/2!C)2'AX>'\nMAX>'AX>'AX>$A%*K]<P!>\"M0<)C0!&5J+63P2JZQ6J?@MEI:[(CLK#YDOH>'\nMAX>'AX>'AX>'AX<QQ,1F\"PNE1]]Z*KM>7@,#`YF9F3T]/3T]TG%Q&1FPL%-3\nM[>V+BXN+BXLT-,5G#P],3$R)B8G)R<G)R186%A86%A86%A86%A86%E145%14\nM5%145%145%145%145%145%145%145%145%145%145%145%145%06%A86%A86\nMR<G)R<G)R<G)B8F)B8F)B8E,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#P\\/9V=GQ<7%\nMQ<7%-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#3%Q<7%Q<7%Q<7%9V=G9V=G\nM9P\\/#TQ,3$Q,3$Q,3$R'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS$Q,<3$Q,3$9F8+\"Z6E1T='1]_?WWIZ*BHJ*BHJ*BHJN[N[*BHJ*GIZ\nM>M_?1T='1Z6EI0MFQ#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUL45U=7U%>`5]34U,]7\nMR`*NTZYD=6%UT)ZI*WCN@<Q@#5&?AX>'AX>'AX>'AX=75]0%TZYN6TT[I&0P\nMN*&!-S?,J]X745'U#1=146#,E(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AU`'IJ1+2O&Q;$.Q'2'L[\"%:[UJ'AX>'AX>'AX>'\nMAX>'AQ1;-G6IY>&!=GC-H9\\W41.7H2=@46#KH9\\W-V`-45%145&'AX>'AUM*\nMP+XI`0T!`80!GBNIGJ-U.`F'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AYZ!A-Y@8\">4C.244?64*3[L\nM(8>'AX<YV0=KP&ZJZ/*V?LCJ1#NDK*RJ37`D]\"GE<\"0IVC\"S+2WQAX>'AX>'\nMAX>'AX>'AX>'>.ZI*ZF>*P'9GE(!4A,!GG7`P(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U?/@-.U5U<2#+FQ:(!-/K,M+6-E\nM)#`MVA@D]/2!C)2'AX>'AX>'AX>'AX>$A%+K%U$!>\"M0<)@K\\&68+2WP2J#&\nML1TAMKV]'=SL[*#L.X>'AX>'AX>'AX>'AX>'AX?$Q&8+I4??>BJ[7@,#F3T]\nMTM)Q<7'2TG%Q&1D9&;!34U/M[8LT-,7%9V</3$Q,3$R)B8F)B<G)R<D6%A86\nM%A86%A945%145%145%145%145%145%145%145%145%145%145%145%145%14\nM5%145%06%A86%A;)R<G)R8F)B8F)B8F)B8F)B4Q,3$Q,3$P/#P\\/#P]G9V=G\nM9V=G9V=G9V=G9\\7%Q<7%Q<7%-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#3%\nMQ<7%Q<7%Q<7%Q6=G9V</#P],3$Q,3$Q,B8F)B8F'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3$Q\nMQ,0Q,3$Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAUL45\\]7U%>`5]34&X!7U,B(TZ[QP\"5U)779*WCN@3?,#5&?AX>'AX>'AX>'\nMAX=75\\@%TZ!NP$T[LRTPN*'>8&!@JPT745'U#1=14<PW!H>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AU`'9:1N2B*Q;$-::$.Q\nM?N\"]6EJ'AX>'AX>'AX>'AX>'AQ1;:W5UY>$*`9Y0X8$W41,YG-Y146#KH9_,\nMS%$-]5%18,R'AX>'AUM*P+[:`0T!`0$!GBNIJ=EU.`F'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AY[>\nM$PWU40W,-^M@]6\",+3X=(8>'AX<Y$1$VP&ZJP>\"V?M3J2CNN\\2*J34B8VMKE\nM2)O:+;.DK*SQAX>'AX>'AX>'AX>'AX>'>.YUT'6IT\"O9G@%XE;Q2GG7`P(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U?/@-.U\nM5U<2#+:Q:(!-/FHM+9-E/BUD+1B8*?2!C)2'AX>'AX>'AX>'AX>$A%+K%U%X\nMGBM0<)@K\\&68VMKP1#[L[\"(AN5J]IQ!H[*!H/H>'AX>'AX>'AX>'AX>'AX>'\nMAS'$9@NE1]]Z*BJ[7@.9/3W2<7%Q<7%Q&1D9L%-3[>V+BS0TQ<5G#P],3$Q,\nM3(F)B8G)R<G)R186%A86%A86%A865%145%145%145%145%145%145%145%14\nM5%145%145%145%145%145%14%A86%A;)R<G)R<F)B8F)B8F)B8F)3$Q,3$Q,\nM3$Q,3$Q,#P\\/#P]G9V=G9V=G9V=GQ<7%Q<7%Q<7%Q<7%-#0T-#0T-#0T-#0T\nM-#0T-#0T-#0T-#0T-,7%Q<7%Q6=G9V</#P],3$Q,3$Q,3(F)B8F)R<G)R<F'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AUM;5\\]7&U?/5\\C4U,]7U,BYYH@B6TO`)779*Y[N\nM@3<W#5&?AX>'AX>'AX>'AX=75\\@%TZ##P$V^L]HPN.3>45%1JPT745'U#1=1\nM8,PW!H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA[0'1*P\"TR):$K6]?@Q:?N!:6K&'AX>'AX>'AX>'AX>'AQ1;:W5UY7`D`9Y0\nMH8$W41,YG-X74<SKH9_,S%$-]5%1S#>'AX>'A\\!*6[[:`0T!>\"LKJ2NIJ=EU\nMP&N'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AP$-$PWU]0U14:OU8#>,+3YH#(>'AX=9$5DV.,.JP2&Y\nM?M3J2B&([!V`3;YJ+61-2#YDK&2L[\"(BAX>'AX>'AX>'AX>'AX>'`>YU875U\nMT-\"XJ2N>!W:$GJG`6X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'5U>`@-.U5U<2#+:Q:(!-.[,M9)-$/BVL9+YJVBF!C)2'AX>'\nMAX>'AX>'AX>$A%+KGU&>GBN3<)C0\\&68VC`H1#ZL[*S3B&A:[[:QL8BQ0X>'\nMAX>'AX>'AX>'AX>'AX>'AX<Q9@M'WWIZ>GHJNUX#F3T]TG$9&1D9L%-3[>WM\nMBS0TQ<5G9P\\/3$Q,3$Q,3(F)B<G)R<D6%A86%A86%A86%A86%A86%A86%A86\nM5%145%14%A86%A86%A945%145%14%A86%A86%A86%A86%A86%LG)R<G)R<F)\nMB8F)B8F)B8F)B4Q,3$Q,3$Q,#P\\/#V=G9V=G9V?%Q<7%Q<7%Q<7%Q<4T-#0T\nMQ30T-#0T-#0T-#0T-#0T-#0T-#0T-#0TQ<7%Q<7%Q<5G9V</#TQ,3$Q,B8F)\nMB8F)R<G)R<G)%A86%A:'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\!;5\\]7U%?/5]34R,]7\nMU-2Y+A`=%&[`2W79T)Y&\"I0W#6\"!AX>'AX>'AX>'AX=75]0%TZ##P$V^:BF,\nMEYP-45%1JPT745'U#1=1S&#,!H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A[0E1/'(TQV]$A\"]?@RQ:\"&Q:.R'AX>'AX>'AX>'\nMAX>'AQ1;:W5UY7`D`9Y0X=:48!,YG-X74<SKH9_,S%$-]5%1-P:'AX>'A\\!*\nMP+[:`0UXGBLK==!U=3;`6VN'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AP$-O-[U]0U14:M18)^,VCYH\nM#(>'AX=9V5DV=4NJP2&Y?M3J2B'QQFB`P3N@K/%-.Z\"L[*SQ[.PBAX>'AX>'\nMAX>'AX>'AX>'`>YU83AU)27`=6&I!P%VGI[`6X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U>`@\"&U5U<2#+FQ:(!-.Z1DK)-$\nM/F3QK+YJVBD*C)2'AX>'AX>'AX>'AX<!A%+K8%&>GBNT2&K0\\&68VC`H99MD\nMK)I*KNRQMK9:6K5:0X>'AX>'AX>'AX>'AX>'AX>'AX<Q9@NE1]]Z*KM>`YD]\nM/=+2<7$9&;\"P4U-3[>V+BS0TQ<5G#P\\/#P],3$Q,3$R)B8G)R<G)R186%A86\nM%A86%A86%LG)R<G)R<G)R<G)R<D6%A86%A86%A86%A86%A86%A86%A86%A86\nM%A86%LG)R<G)R<G)R8F)B8F)B8F)B8E,3$Q,3$Q,3`\\/#V=G9V=G9V?%Q<7%\nMQ<4T-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#0TQ<7%Q<7%9V=G\nM9P\\/3$Q,3$Q,B8F)B8G)R<G)%A86%A945%14DI*'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA\\!;5\\]7U%?/5]3(U,]7U-2V+A\"QH@);;L!N876J\"C<W#<R!AX>'AX>'AX>'\nMAX=75\\CI2J`E.$V^F\"F,.>L-45%1JPT78&!1#?51S%%@E(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AU791/'4YJ>]$K5:L4/&\nM(COL[*R'AX>'AX>'AX>'AX>'AQ1;:S@X37`D*ZE0@]8&S!,YG-X74<SKH9_,\nM8%$-]5%1E(R'AX>'ASA$.+[:`0UXGBLK==!U=39;%%N'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AP$-\nM=@WU]0U@S*N?-Y\\&VCX=#(>'AX<<$5DV=26JP2&Y[]3JC4,BL>_JZ#NN\\>S!\nM.Z[L[\"+L:&@=AX>'AX>'AX>'AX>'AX>'`>YUT,#`2TM;P\"5UV2L3>)XXP(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U>`ZBX0\nM5U<2#+FQ:(#!.Z2L\\55*H*SQK+YJ+=H*C)2'AX>'AX>'AX>'AX<!4E+K%U%U\nMJ=\"T2&IA\\$28VC`H1)MDK)I(KNS&[+E:O1!:#(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'Q`M'>KL#F3W2TM+2<7$9&;\"P4U/M[>V+BXLTQ<7%9V</3$Q,3$Q,3$Q,\nMB8F)B8F)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)\nMR<G)R<D6%A86%A86%A;)R<G)R<G)R<G)B8F)B8F)B8F)3$Q,3$Q,3$Q,3`\\/\nM#V=G9V=G9V?%Q<7%Q30T-#0T-#0T-#2+BXN+BXN+-#0T-#0T-#0T-#0T-#0T\nM-,7%Q<7%Q6=G9P\\/#TQ,3$Q,3$R)B8F)B8G)R<G)R186%A865%145%14DI*'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A\\!;5\\]7R%?/5\\C4R,^BU,BYX+;O5\\@4`L!;)76J\nM\"LQ@#6\"?AX>'AX>'AX>'AX=75\\CI2CXE=4T8F(P&.>L-45%1J]X7S,Q1#?51\nMS/51S(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAU5N1\"+4YGZ]$HCO'3OL\\4BLK+.'AX>'AX>'AX>'AX>'AUM;:\\`X34B8T'50\nM@]8&-[R7G-X746#KH9_,S%$-]5%1C(R'AX>'AW5A=:-U*X25>`$KJ2NI=39;\nM%&N'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AW@-O`U140V4!IP&C#<&VILB(8>'AX<<$1&C=26JP2&Y\nM[]3JTT/L6EKJZ\"&([,;!(8CL:.P=L6AHAX>'AX>'AX>'AX>'AX>'>.YU8<!;\nM;FX46\\,XV=\"\\`7@XP(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'5U>`ZN`05U<2#!!H'8#!.ZSQ(@5*H/'LK+YJ+=H*C)2'AX>'\nMAX>'AX>'AX>>`5+K%U%U=6%5OJ1A\\$1JVC`H1)MDK)I(H/'L\\=SOO1\"]#(>'\nMAX>'AX>'AX>'AX>'AX>',6:EWWJ[7ID]TM)Q<1D9L+!34U-34^V+-#3%Q6=G\nM9V</#TQ,3$Q,3$Q,3$Q,3(F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)R<F)B8F)\nMB8F)B<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)B8F)B8F)B8E,\nM3$Q,3$Q,3$Q,#P\\/#P\\/9V=G9V?%Q<7%Q<4T-#0T-#0T-#2+BXN+BXN+BXN+\nM-#0T-#0T-#0T-#0T-,7%Q<7%Q6=G9V</#TQ,3$R)B8F)B<G)R<G)%A86%A86\nM5%145%145)*2DI*2U=6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\!;5U=7R%?/5\\C(R,^B\nMU,BY+K9^5\\@4`EO(PSBJ\"LQ@#5'UAX>'AX>'AX>'AX=75\\CI2#XE=>5P!HR4\nM.>L-45%1J]Z?S#=1#?5@-V!@48>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVQN2NS(+J=:;$.Q(CNL9'#:*8R'AX>'AX>'AX>'\nMAX>'AUM;:\\`X34AJT'63@]:,E':7G-Y146#KH9_,S&#>45%1C(R'AX>'AW70\nM=:-U*RN5`0$!GBN>=3;`6VN'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AY[>$PU18\">,].28C`H&VIOQ\nM(8>'AX=V!P=U=26JP2&YL=0.TPRV6EKJ7R'<QFCH(;5HL1W&[[&QAX>'AX>'\nMAX>'AX>'AX>'GNYU)5L4`LBB%&[`;F&$A'@XP(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U?/ZN\"U5U<20]QH'8#!(:SL[`5*\nMH/'LK+YJ+2T*C`:'AX>'AX>'AX>'AX>>`5*K%U'`=24%OJ0E\\$1JVMHH1)MD\nMK)I(H*SQK(AH6K:]#(>'AX>'AX>'AX>'AX>'AS%FI4=ZNUZ9F3W2<7$9&;\"P\nML%-3[>WMBXLTQ6=G#TQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nMB8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8G)R<G)R<G)R<G)R<G)R<G)R<G)\nMR<F)B8F)B8F)B8F)3$Q,3$Q,3$Q,3$Q,3`\\/#V=G9V=G9\\7%Q<7%Q30T-#0T\nM-#2+BXN+BXN+BXN+BXN+-#0T-#0T-,7%Q<7%Q<7%Q<5G9V</#P],3$Q,B8F)\nMB<G)R<D6%A865%145%22DI*2DM75U=75U=75U=6'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA\\!;5U=7R%?/5\\C(R**BU,BY+K9^5]17R!1K;L\"J\"LQ@WI3>AX>'AX>'AX>'\nMAX=75\\@%1#XEJ>3A!@8W.>L-45%1J]Z?S#=@#1?,!I0&8(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVPV2NS(+FCO;$-H\\;XM\nM,.&,!C>'AX>'AX>'AX>'AX>'AUM;:\\#`34AJ876T@]:,!H27H=Y146#KH9\\W\nM-\\PG8%%1]\"F'AX>'AZG0=>XXT-`'A'8!G@&>=38XP`F'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AZF!\nM=@U@S.&,]*&8*5:,VIOQ(8>'AX=V!UEU=26JP2$0L=0.C0RGO5KJ7PP0:+'H\nMX+5H[Z>G6GZQAX>'AX>'AX>'AX>'AX>'=:,X2UL4R,A7HF[`;B4!A`%U.(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U?/ZN\"U\nM5U<2(=S&'8#!(?'L[`5*H/'LK+YJ+2T*C(R'AX>'AX>'AX>'AX>>>`&K]6!;\nMP$ML.ZQ+Z4AJ+=KP1#ZL\\9I(H*SQI*[&[Q\"]#(>'AX>'AX>'AX>'AX>',68+\nM1WHJNUX#F3T]TG$9L%/MBXN+-#0T-#3%Q<5G9V</#TQ,3$Q,3$Q,3`\\/#P],\nM3$P/#P\\/#P\\/#P\\/#P\\/3$Q,#P\\/#P\\/#P\\/#TQ,3$Q,3$Q,3$R)B8F)B8F)\nMB8F)B8F)B8F)B8F)B8F)B8F)B8F)B4Q,3$Q,3$Q,3$Q,3$Q,#P\\/#V=G9V=G\nMQ<7%Q<7%Q<4T-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#0T-#0T-,7%Q<7%Q<5G\nM9V</#TQ,3$Q,B8F)R<G)R186%A865%145%22DI*2DI+5U=75U=75U=75U=6'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A\\#`5U>BR%=7HLC(R*(4R,BYYK9^5]17R%<;`A2`\nM\"LS,)XR?AX>'AX>'AX>'AX=75\\@%1&HEJ>3AE`8W.>O>45%@JPV?S,Q1#6`W\nMC(STE(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAQ+(T\\;4+FCO;*#L9!@IC\"?,45&'AX>'AX>'AX>'AX>'AUM;6\\#`3;YJ)76T\nM9228C`$HY-Y14<SKH8&4E#>?S,Q@*3\"'AX>'AYYA=:/`)=`'`1-V>`&>J:-U\nM.`F'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AW6!A`W,-^'T*:&8*5:8VCXB(8>'AX=V!UFI==!&P2'<\nM:,@.V[7O6G[J7PRYL>_HX!\"Q6J?OO5I^AX>'AX>'AX>'AX>'AX>'P#9;;A17\nMU-175P);-B4!`0%U=8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'5U?/ZN\"U5U<2(=S&'8#!0R+L'05*H/'LK+YJ+=H*](R'AX>'\nMAX>'AX>'AX>>>`&K%S>B%&YL(?%NZ4IJ9\"WP1#[Q[&1(H*SQI*[&[Q\"]0X>'\nMAX>'AX>'AX>'AX>'A\\0+1]]Z*KM>`YD]TG%Q&1FP4U/MBXN+BXN+BXN+BXN+\nMBXN+BS0T-#3%Q<7%Q<7%Q<7%Q30T-#0T-#0T-#0TBXN+BXN+BXN+BXN+BXN+\nMBXN+-#3%Q6</#P\\/3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$P/\nM#P\\/#P\\/#P]G9V=G9\\7%Q<7%Q<4T-#0T-#0TBXN+BXN+BXN+BS0T-#0T-#0T\nM-#0TQ<7%Q<7%Q6=G9P\\/3$Q,3$Q,3(F)B8F)R<G)R186%A945%145)*2DI*2\nMDM75U=75U=75U=750D*'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\#`5U>B`A2B%`(\"`A04\nMR,C<YA!^5]17U%?/R%>`\"C?,)XR!AX>'AX>'AX>'AX=75P(%1#XEJ>7A!@:4\nM.>O>45%@JPT78&!1#9\\&C/0IC(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AQ)KT\\;4+J=:;*#L9!CTE`U14?6'AX>'AX>'AX>'\nMAX>'AUM;6UO`3;YJ)76T923TC`$HH=Y14<SKH8&4E#>!-\\S,*3\"'AX>'AYYA\nM=39;2R79`1,3`81XGG5U=0F'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW6!A-XWE.'T*:&8]%;T+3X=\nM0X>'AX<<65FIJ=!&32'<'=0.V[7O6K'J7PRYL5KHX!#O6N]:O5I^AX>'AX>'\nMAX>'AX>'AX>'6ZH4R%=7U!M75\\@4R$L!`82I=8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U=7ZN\"U5U<2(=QH'8#!0^S&'05*\nMH/'LK+YJ+=HD*?2'AX>'AX>'AX>'AX>>>`&KGP975\\AL(?$\"Z4J@9&3P2C[Q\nM[*Q(H/'Q9(AH[Q!:0X>'AX>'AX>'AX>'AX>'Q`M'WWHJNP.9/=+2<7$9&1D9\nM&1FPL+\"PL+\"PL+\"P4U/M[>WM[>U34U-3[>WM4U-34^WM[>WM4U-34U-34U.P\nML+\"PL+\"P&;\"PL+\"PL+\"PL%-34U/M[8N+-#0TQ<7%Q6=G9V=G#P\\/#P\\/#P\\/\nM#P\\/#P]G9V=G#P\\/9V=GQ<7%Q<7%Q<4T-#0T-#0T-(N+BXN+BXN+BXN+BXN+\nMBXN+BXN+BXN+BS0T-,7%Q<7%Q<5G9V=G9P\\/#TQ,3$Q,B8F)B8F)B8F)R<G)\nMR<G)%A865%145)*2DI*2U=75U=75U=5\"0D)\"0D*'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMA\\#`HJ(4`A046VYN;EM;`LB(TQ!^5]17U%?/R%?J@<S,)XR?AX>'AX>'AX>'\nMAX=75P(%1#XE=>5P)(P&.>O>45%1JPWU45%1WC>,,/3:](>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ)KT\\;4+N^];*#L9!CT\nME`U14?6'AX>'AX>'AX>'AX>'AUM;%%O`3;YJ)76T923TC`'-H=Y14<SKH8&4\nME)2!-S?,*3\"'AX>'AZEA=:H4;B79>+P3A+P!GMEU.,^'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW6!\nMA-XWE.'T].28C%8I9*\"Q##%F\"Z4<65F>J=!&32&('<CJC;6G6K'J7PRYL5KH\nMX!!:O7[OO5I^AX>'AX>'AX>'AX>'AX>'6ZJBU%=7U!M75\\@4R$L!`82IJ8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'%*)7ZBZU\nM5U<2(1!H:(#!0^QH:`5*0_'LK+YJ+=HDVBF'AX>'AX>'AX>'AX=X>`&KGXQ7\nM5]02(>P\"Z4J@K*SP2C[Q[*Q*H/'LK-RQ6A#O0X>'AX>'AX>'AX>'AX>'AV:E\nMWWHJNUX#`YF9/3W2TM)Q<7%Q<7%Q<7%Q<7%Q&1D9&1D9<7%Q<7%Q<7%Q<1D9\nM&;\"PL+\"PL!D9&1D9&1EQ<7%Q<7%Q<7%Q<7%Q<7%Q<7$9&1D9&1FPL+\"P4U-3\nM[>WM[>WM[8N+BXN+-#0T-#3%Q<7%Q<4T-#0T-(N+BXN+[>WM[>WM4U-34U-3\nM4U-34U-34U-34U-34U-3[>WM[>WM[8N+BXLT-,7%9V=G9V=G9V=G#P\\/3$Q,\nM3$R)B8F)B8G)R<G)%A86%A86%A865%14DI*2U=75U=75U=5\"0D*=G9V=G9V'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS@X%!04;EM;P&YN;L#`;@*(TQ#O5]17U%?/U%?J\nMGU%1#3?>AX>'AX>'AX>'AX>BH@(%2J`E=>5PF(P&.>L-4?7UJPT78,S,)P:,\nM,\"G:,(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAQ)KTZ?4+N^];*#L9!@I!@U145&'AX>'AX>'AX>'AX>'AQ04%%O`3;YJ)76T\nM923TC`'-H=Y14<SKH8&4E)2?-S<W*3\"'AX>'AZEA=:H4;B79>'83A!,!GMEU\nMP,^'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AW6!=@W,S.$&!IP&C%8PK*!^\\KN[7@-V!UFI==!&32&(\nM'<CJC;6G6N_J7PRY[UK!X+9:O7ZGO5I^AX>'AX>'AX>'AX>'AX>'6ZJBU%?/\nMU-175\\@4R$L!`82I=8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'%!04ZB&U5U<2(;FQ:(#H0QUH:`5*KNSL\\;YJ+=J;+=J'AX>'\nMAX>'AX>'AX=X`0&K@?175]02(>S(Z4JN\\:SP2C[Q[*Q*KNSL\\;E:O1\"Q0X>'\nMAX>'AX>'AX>'AX>',68+I4??WWIZ*BJ[7@,#F9F9F9D]F9F9F9F9F9D]/3T]\nM/3T]/3T]/3T]/3T]/3T]/3T]/3W2TM+2TM(]/3T]/3T]F9F9`P,#F9F9F9F9\nMF9F9/3T]/3T]/3W2TG%Q&1D9&1D9L+\"PL+!34U/M[>WM[>WM[>WM4U-34U-3\nML+\"PL!D9&1D9&1D9&1D9&1D9L+\"PL+\"PL+\"PL+\"PL%-34U-3[>WM[>V+BS0T\nM-,7%Q<5G9V=GQ<7%9V=G#P],3$Q,B8F)B<G)R<D6%A86%A865%145)*2U=75\nMU=5\"0D)\"G9V=G9V=G9V'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW5U6UM;;L#`P$O#P\\#`\nM;FZNTQ\"Q5]17U%?/U%?J%_51#5'UAX>'AX>'AX>'AX<4%`(%2J!+=>48F/0&\nM.>L-]?7UJPV?-P8&X9@I,\"G:,(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AQ+(T\\;4X&A:;#[Q+1@IC\"<W8%&'AX>'AX>'AX>'\nMAX>'AQ04%%O`3;Z@)76T920IC`'-H2=14<SKH8&4E)2?-S<W*3\"'AX>'AW5A\nM=:I;PR79GH1V4A,!>*EU6\\^'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'Q`NE1]]Z*JF!=@U142<WS.LW!E8P\\4-^\nM\\F?%Q<4<!UEU=6%&32'<'<CJC;6G6G[J7PRY[UK!X+9:O7ZG6EI^AX>'AX>'\nMAX>'AX>'AX>'6ZH4U%?/R-17H@+`;F$!`839=8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'6UL4@-.U5U<2X+GOL>KH#&BQL6S3\nMKNS&\\;YJ+=J;9\"V'AX>'AX>'AX>'AX<!`5+K\"BE75]02(>S(Z4JN\\:SP2#[Q\nM[*S3KFAH[+:]O1!H0X>'AX>'AX>'AX>'AX>'AX>'Q&9F\"PNEI4??>BHJ*BHJ\nM*KN[NUY>7EX#`P,#`P,#`P,#`P,#`P,#`YF9F9F9F0,#`P,#`P,#`P,#`P,#\nM`P->7EY>N[N[N[N[NUY>7KN[N[N[N[M>7EX#`YF9F3T]/=+2TM+2TM+2<7%Q\nM<7$9&1D9&1D9&1D9&1EQ<7%Q<7%Q<=+2TM+2TM+2TM)Q<7%Q<7%Q<7%Q&1D9\nM&1D9&1D9&1D9&;\"P4U/M[>WMBXN+BXN+-#0T-#0T-#3%9V</3$R)B8F)R<G)\nM%A86%A86%E145)*2DM75U=75U=750D)\"0D)\"0IV'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAW5UP,#`PS@X.$O#2\\#`;FZNT[6Q5]17U%?/U%>`%U',#<R?AX>'AX>'AX>'\nMAX<4%`(%2J##=>48F(P&.>L-45%1JZ&!C/2,UI@PLRG:,(>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AVS(TZ?4YB*Q!3ZL+1@I\nMC.$&-\\R'AX>'AX>'AX>'AX>'AU<4%%O`3;ZD)76T1\"0IC`'-H2=146#KH9\\W\nM-S>?-S<W]\"F'AX>'AW4EP*I;PR79G@$!`;R$`9YU6\\^'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'9D=Z7IF9/9XG\nM=@WU4=XWS.N?E%8I\\4-^\\HG)R<D<$0=U=26JP2'<'<CJC;6G6G[J7PRV[UK!\nMX+9:O5JG6EI^>D<+Q(>'AX>'AX>'AX>'6ZI7U%=7R`);6R5U!RMVA%+9=8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'6UM;@-.U\nMHE<2X+9:?NI?M:=:?FS3M1UH[+YJ+=J;9\"V'AX>'AX>'AX>'AX<!A(2<)\"U7\nM5]020^S(Z4JDK*SP2#[Q\\?'3B+'OQJ>]O;5H0X>'AX>'AX>'AX>'AX>'AX>'\nMAX<QQ&8+I:6EI:6EI:5'1]_?>GHJ*BJ[NUY>7EY>7EY>7EY>7EY>7@,#`P,#\nM7EY>7EY>7EY>7EY>7EY>N[N[N[N[N[N[N[LJ*BHJ*BHJ*BJ[N[N[N[N[7EY>\nM7@,#`P,#`P,#`YF9F9F9F9F9F9F9F9D#`P,#`P.9F9F9F3T]F9F9F9F9F9F9\nM`P,#`P.9F9F9F9F9F3T]/3T]/3W2TG%Q<1D9&1FPL+\"P4U-34U-3[>WMBXN+\nMBS0TQ<5G9P\\/3$Q,3$R)B8F)R<G)R186%E145)*2U=75U=75U=75U=5\"0D*'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AW5U.#@X)74X.$M+2\\#`;FZNTXBQ5]17U%?/U%>`\nMG\\R4)Y2?AX>'AX>'AX>'AX<4%`(%2J##=>5PC(P&.>L-45%1JZ$*]-HPUFJS\nM+?3:*8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAVPVT^\\;T_'L!3YDLQ@IC.&,E`:'AX>'AX>'AX>'AX>'AU<4%%M;3;ZD)3BT\nM1\"0I*0'-H2=@45&KG!=@S,R?-S<WC/2'AX>'A\\!N6ZH4;DLV==`KGH0!A'B>\nMHS:'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX?$I=\\JNYG2&5.+Q7C>$PU18\"<&E.N?E%:S[$-:\\E14DI(<V1$X.\"6JP2'L\nM'<CJC0RG6GX.7PRV[UKHX+9:O5KOO5I^F5XJ1PLQAX>'AX>'AX>'%(!7U**B\nM`L,X==\">E783A`$V=8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'6UM;@--#HE<2X+9:6NJ-M7Y:6FS3M<9H[#MJ+2V;K&2'AX>'\nMAX>'AX>'AX=2A`'D)&175]020^S(Z4JDK&3P1#[Q\\?'3B.]:I[9:6K5H0X>'\nMAX>'AX>'AX>'AX>'AX>'AX>',3'$Q&9F9F9F\"PL+I:6E1]_?>BJ[N[M>7EX#\nM`YF9F9F9F0,#`P,#`P,#`P->7EY>N[N[N[N[N[N[N[N[NRHJ*BHJ*BHJ*BHJ\nM*BHJ*BHJ*BHJ*BHJ*BJ[N[N[N[N[N[N[NUY>7EY>7EY>7EY>7EY>7KN[N[N[\nM7EY>7EY>7EY>7KN[N[N[N[N[N[N[N[N[N[N[N[N[NUY>7EX#`P.9F3W2TM)Q\nM<1D9&;\"PL%-34U/M[>V+BXLT-,7%Q<7%9V=G9P],3(F)B8G)R<G)R186%E14\nM5)*2U=75U=75U=75U=6'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW5U.'5U)74X.\"4E2SC`\nM;FZNTQ\"Q5]17U%?/U%?JGS<&X8S6AX>'AX>'AX>'AX<4%`(%2J##=>1P7(P&\nM.>L-45%1JZ$D*=K:UK,MFBG:*8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVS(T^_4TZSLSIMD,!CTC.&,!HR'AX>'AX>'AX>'\nMAX>'AU<4%%M;3;ZDPSBT1#XI*2O-H9_,8/6KZ_514<R?-S<W!HR'AX>'AQ3(\nM5X!7R&XV.\"70G@%X`80!!ZF'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX=FI7I>/7$94XO%#TR)B<G)%@$-$PU@S\">,!IPWC%RD[+5:\nMX)*2DM4Y;MG`P,.JP2&Y:,CJC0RG6EH.7PRV[UKHX+9:O7Y:O5I^TE[?\"\\2'\nMAX>'AX>'AX>'%(!7U!1;PR5UG@$!O':\\`7@VP(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'6UL4@-.U5U<2\\K:]6NI?M7Z]6FSF\nMM<:Q[#ND+2V;K&2'AX>'AX>'AX>'AX>$`7CD:O%75]020QW(Z4JDK&3P1#[Q\nM[/$AM5J][[9:6K5H0X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F\nM\"Z5'WWIZ*KN[7EY>7EX#`P,#F9F9F9F9`P,#`P,#`P->7KN[N[N[N[N[NRHJ\nM*BHJ*BHJ*BHJ>GIZ>BHJ*BHJ*BHJ*GIZ>GIZ>GIZ*BHJ*BHJ*BHJ*BHJ*BHJ\nM*KN[*BHJ*BHJ*BHJ*BHJN[N[NRHJ*BHJ*BHJ*BIZ>GIZ>GIZ>BHJ*BHJN[N[\nMN[N[N[N[7EY>`YF9/3T]/=+2<7$9&1D9&;\"P4U/M[8N+-#3%Q<7%Q<5G9P],\nM3$Q,3(F)B8G)R<G)%A86%E145)*2DI+5U=75U=6'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAW5U=75U)74X.\"4E)3C`;@*(TQ\"Q5]17U%?/R%>`GS>,X?36AX>'AX>'AX>'\nMAX<4%`(%2J!+=>3A!HP&.>L-45%@JZ$D*2TMOBUD9\"G:*8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ+(T^_42IKQSILM,!CT\nMC.'TC#\"'AX>'AX>'AX>'AX>'AU>B%!1;33MDP\\!51#[:,\"O-H8&4E&\"K#1=1\nM45$G-S<W-Y2'AX>'AU?45X!7U,AK6TLE==\">GGB$4E*'AX>'AX>'AX>'AX>'\nMAX<Q,3$QAX>'AX<Q,3'$Q#&',<1FI=]ZNP,]&5,T#TR)R<D6%A945)*2U80-\nM$PU@-^&,C.0D*7RLL;5:(=75U4(Y;MG`P&ZJZ$.V:-3JC0RV6EH.7PRV[UKH\nMX+GO6J?OO5I^&=)>*D<+,8>'AX>'AX>'%(!7`EO`)=\">`1-24@$!GIYK%(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'6Q04@\"&U\nMSU<2\\K9:6NKH#*>]6A+FM6BQ[#ND9\"U\\K&2'AX>'AX>'AX>'AX<!GIZFH.Q7\nM5]02#!W(Z4JN\\:SP1#[Q[\"(A$%J]I[9:6K6Q0X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS'$9@NE1]]Z*KN[N[M>7EY>7EX#`P.9F0,#`P,#`P,#\nM`UY>7EY>7EY>N[N[N[N[*BHJ*BHJ>GIZ>GIZ>GIZ>GIZ>GIZ>GK?W]_?W]_?\nMW]_?W]_?W]_?WWIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ\nMW]_?W]_?WWIZ>GIZ>BHJ*BHJ*BHJ*BJ[NUY>7@,#`P.9F3T]TM+2TG%Q&1FP\nM4^V+BS0T-#3%Q<7%9V=G#P\\/3$Q,3(F)B8F)R<G)R186%A945%145%145%2'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AW5U=75U)3@X.\"4E2\\#`;@*(TQ#O5]3/U%?/R%>`\nM@92,@2DDAX>'AX>'AX>'AX>B%`(%2J`E=>3A!HP&.>L-]?51JZ$DVF1DOF2L\nMK-K:*8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAQ+(V^_(2IJL8YLM,!CTC.'T]#\"'AX>'AX>'AX>'AX>'AU>B%!0433NL;L!5\nM2CXMVM#-@]:,C)2KH9\\WS%$G-S>4S#>'AX>'AU?45ZI7U-3/%&Y+P\"5U=9X!\nM4GB'AX>'AX>'AX>'A\\0+I=\\JNUY>N[M>`P->7@.9/=(94XLT-#3%#TR)R186\nM5%145)*2DI*2DI*2DE(-O`U1S.'T*:&8+;.LL;5:(9V=G9WN-FY;6VZJZ`RV\nML<@.C;6GO5H.7PRVL>_HX+FQ[Z>G6EI^L+`9TCT#NWH+,8>'AX>'%*H4;CAU\nM82L!A+P!E2L!GG7/5X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'%!2BZBX0SU<2(=QHL8#!0VA:6A+FM;&Q[#NDK*P^\\62'AX>'\nMAX>'AX>'AX>>J76FKNQ75]02#,;4Z=.N[/'P2J#L:\"(A$%J]MKGO6A!:0X>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q&8+\"Z5'1]_?>GIZ*KN[\nMN[M>7EY>7EY>7EZ[N[N[N[LJ*BHJ*BHJ*GIZ>GIZ>GIZ>GIZ>GIZW]_?W]_?\nMW]_?W]]'1T='1T='1T='1T='1T='1T='1T='1T??W]_?W]_?W]_?W]_?W]_?\nM1T='W]_?W]_?WWIZ>GIZ>GIZ>GIZ>M_?W]_?W]_?W]_?W]_?W]]Z>GIZ*BJ[\nMNUY>7@,#F9D]/=+2<7$9&1D9L+!34U/M[8N+-#0T-#0T-,5G#P],3$Q,3$R)\nMB8G)R<G)%A86%A86%A:'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW5U=75U)3@X.$O#2\\#`\nM`LC<YA!^5]3/U%?/U%>`\"HPIUMHDAX>'AX>'AX>'AX>B%`(%2CXE=>3A!HP&\nM.>L-]?51JZ$D+:QDOF3QK-HM*8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AQ+(V\\;(2IJL8];:,!@I,.':*3\"'AX>'AX>'AX>'\nMAX>'AU=7HA0433N(;L`%2J`M+6'P@]:,](SKH0J4-_4G-Y248&\"'AX>'AU?(\nM%*JBU-3/%`)N6\\/`=:F>J9Z'AX>'AX>'Q*5ZNP.9F3T]/3T]/7$9L%/MBS3%\nM9TQ,B8G)%A865)*2U=75U=75U=75U=75U=75U0$-O`U18.'TVH.S9*2L:`Q:\nM(4)\"0D+N;ME;6P*JZ`RV?M0.C;7OO5H.Z$.YL;'!(=QHL<9H[WY^[5-3L!D9\nM&7$]`[LJ>M_?%*K`)75UT`$!4@&>,]#0=77/5X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'HE=7ZBX0SU=L(8CL'8#!0^SO6A+F\nM$._O[#ZN\\?&@[*R'AX>'AX>'AX>'AX=U=3BFKNQ75]02#+;4ZM.('2+P2JZQ\nM[QW@MKV]MKE:6A!:0X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMQ,1F\"Z6E1T='1]_?>GIZ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*GIZ>GIZ>GIZ>GIZ\nM>GK?W]_?W]_?W]]'1T='1T='1T='1T='1T='1T='1T='1T='1T='1T='1T='\nM1T='1T='1T='1T='1T='1T='W]_?W]]Z>GIZ*BIZ>GIZ>M_?W]_?W]]'1T='\nM1T>EI4='1T='1T='W]_?>BHJN[N[7@,#`YF9F3W2TM)Q<7%Q<7%Q&1D9&1D9\nML+\"PL%-34^V+BXN+BXLTQ6=G9P],3$R)B8F)B8F'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAW5U=74X2\\#`.$O#P\\!;`LBYYK9^5]3/U%?/U%>`)\"G:&\"TDAX>'AX>'AX>'\nMAX=7H@(%2CXE=>36C(P&.>L-]?51JZ$D+:RLOJSQK-K:*8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ+(V^P\"2IJL8];:,!@M\nMVG`MVMJ'AX>'AX>'AX>'AX>'AU=75Z(4P3NL;L`%2J\"L9\"7I9;XIVBEC@PH&\nME%'>S)248%&'AX>'AU<\"%*H4U-3/%`(\"6VY;P'5UV9Z'AX>'Q*7?*EZ9TAE3\nMBS0TBS3%9P],3$Q,3$R)B<G)%E14DM75U=75U=75U=75U=75U=5\"0D)\"0@$-\nM=@U1S.$I+::DK*2LL;5:(=75U=7N;FY;%`*J7PRG?M0.V[7OO5KJZ\"'<:&C!\nM(=P=L1W&L;%^BS0T-#0TBXN+B^VP<9F[6ZHX)76>`7:$`0&I!R4E.,#/5X>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U=7ZB&U\nMSQ1LOJ[Q(JK!.R)H?A+F$%I::$.([.RN[/&'AX>'AX>'AX>'AX?`P%NFH.Q7\nM5]02#+;4#N;<:!WITXCO6J?@MEJ]MKE:6A\"]#(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>',<3$Q,1F\"Z6E1T='1T='1T??W]_?W]_?>GHJ*BHJ\nM*BHJ*BHJ*BHJ*BHJ*GIZ>GIZ>GK?W]_?W]]'1T='1T='1Z6EI:6EI:6EI4='\nM1T='1T='1T='1T='I:6EI:6EI:6EI:6E1T='1T='1T='W]_?>GIZ>GIZ>GIZ\nM>GIZW]_?1T='1T='1T>EI:6EI:6EI:6EI:5'1T='1T??W]]Z>BHJN[M>7EX#\nM`P,#F9F9/3T]/=+2TG%Q<1D9&1D9L+\"PL+\"PL+\"P4U-3[>V+BS3%Q<7%Q6>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AW5U=3C`P\\#`.$MNP\\!;`LBYYK9:5]3/U%?/U%>`\nM:MIDOF0DAX>'AX>'AX>'AX=7H@(%2J`E=>76F/2,E^L-]5%1JZ$DVJRLOJSQ\nMK\"G:](>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAQ+(TR)N2IJL8YMDFKZLK$BL9\"V'AX>'AX>'AX>'AX>'AU=75U<4P2&(`EML\nM2J[Q\\27I1#XM+3#E@R2,E%'>S#<W45&'AX>'AU=N6ZH4U-3/HL@\"%`(46\\`X\nM;IX+1]\\J`](9L%/M-&</3$Q,B8F)B8F)B8G)R<G)R<D6%E22U=75U=75U=75\nMU=75U=75U=5\"0D)\"0@$-$PWU8.':9*9D(J[L6K5:.]75DI)&;FY;%,BJ7PSO\nM6M0.C0RG6N_JZ\"'<[.S!T]SLL>P=:&BQL+\"P&7%Q<7$9&7$9<3U>=39UT*F>\nMA!,!GM!UV4M+6UN`5X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'5U=7@-.(S\\#.OFJL\\:I-._'&L6SF$%J][T/<:&B(L>R'AX>'\nMAX>'AX>'AX=;6Q2F:O%75]02#+;4#N;<L6CIT[5^O>_@MEJ]MKE:O;:]#(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$Q&8+\"Z6EI:5'1T='\nM1]_?W]]Z>BHJ*BHJ*KN[NRHJ*BJ[N[N[N[N[*BHJ*BHJ*BHJ>GIZ>M_?W]_?\nM1T='1T='1T>EI:6EI:6EI:6EI:6EI:6EI:6EI:6EI:6EI:6EI:6EI:6EI:5'\nM1T='1T='W]_?W]_?W]_?W]_?WT='1T>EI:6EI:6EI0L+\"PL+\"PL+\"PNEI:6E\nMI:5'1T='W]]Z>BHJ*KN[N[N[N[M>7@,#F3T]TM+2<7%Q<1EQ<7%Q<7'2TM+2\nMTM(]TM+2<1D9L+!34[\"'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW4X.,#`;L`X.$MNP\\!;\nM`M2YYK9:5]3/U%?/R**`H*SQ.ZP^AX>'AX>'AX>'AX=75P(%2J!+=4T8*?2,\nME^L-45%1JZ$DVF2LOF2LK/0IC(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AQ(VT_%N2IKQSIMD9#OQ\\4CQ9&2'AX>'AX>'AX>'\nMAX>'AU=75U>BP2&(`EML2J[L[,/I2J!DK-KE@R2,!E'>8,S,45&'AX>'AQ3#\nM6ZJBU-3/5]345\\BB%!1;R'5Z`SUQ&5-3[8LT-,5G#TQ,3$Q,3$R)B8F)B8F)\nMR<G)%E14DI+5U=75U=75U=75U=75U9*2DI*2DH0-$][U8.$MK&7Q:+FGO;7O\nM.U14%LE&;FX4HLB`7PRG?M3J7PS&L6B`Z\"&([.S!T]SLL1WL:&AHTG%QTID#\nM`P,#`YD#NWI'GNYU*YX!$X2>V27`;@(\"HE?/HH>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'5U=7@--#S\\#.2&ID9*I-.ZSL:&S3\nMM5J]6@RYL>_<6J>'AX>'AX>'AX>'AX=;%!2F:O%75]020\\;4#N80[['IT[5^\nMO7[@MEJ]MK9:O;:]#(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS$QQ&9F\"PNE1T??W]]Z>BHJ*BHJN[M>7EY>7EY>7EY>N[N[N[N[N[N[N[N[\nMNRHJ*BHJ>GIZ>GIZ>GK?W]_?WT='1T='1T>EI:6EI:6EI:6EI:6EI:6EI:6E\n-------- End of part 6 of 14 --------\n \n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6050, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Bill Conner:\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 6\n\n\nCould you explain what any of this pertains to? Is this a position\nstatement on something or typing practice? And why are you using my\nname, do you think this relates to anything I've said and if so, what.\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6051, "properties": {"category": "comp.windows.x", "text": "From: dnh@mfltd.co.uk (Des Herriott)\nSubject: XDM/xsession woes\nKeywords: xdm, xterm\nLines: 22\nReply-To: dnh@mfltd.co.uk\nOrganization: Micro Focus Ltd.\nX-Newsreader: mxrn 6.18-3\n\n\nI've just managed to get xdm running from an NCR 3000 (an SVR4 486 box\nrunning XFree86 1.2) to my NCD XDisplay.  It's pretty much working, but\nI'm encountering a weird error.  I'm attempting to start an xterm from\nmy .xsession file, but nothing happens.  Redirecting stderr to a file\nusing 'exec 2>$HOME/.xerrors' in .xsession reveals the error message:\n\n  \"xterm: Error 14, errno 1: Not owner\"\n\nNow, if I start xterm from the window manager, or from the command line,\nit works fine.  And starting other clients, like the window manager (mwm),\nand a clock, from my .xsession also works.\n\nAnyone encountered this?  Suggestions?\n\naTdHvAaNnKcSe\n-- \nDes Herriott,           /   As a wise man once said,\nMicro Focus, Newbury.  /\n+44 (0635) 565354     /  \"It takes a lot of brains to be smart, \ndnh@mfltd.co.uk      /    but it takes some neck to be a giraffe.\"\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6052, "properties": {"category": "sci.electronics", "text": "From: wellison@kuhub.cc.ukans.edu\nSubject: Re: electronic odometers\nArticle-I.D.: kuhub.1993Apr15.153153.49197\nOrganization: University of Kansas Academic Computing Services\nLines: 10\n\nI had the insturment panel go out in my car (a 1990 Lincoln Contenintal) which\nis a digital dash. They replaced the whole thing with a 1991 dash (thank god it\nwas under the warrenty ! :-) Anyway, the odometer was reading the exact milage\nfrom the old panel. It must have a EEPROM of some sort in it that is up-dated.\nSeems to me that removing the battery would erase it, but it doesn't. So I\nguess they swapped the NVM chip (non-volitile memory) and installed it in the\nnew dash. No, they wouldn't let me have the old dash to tinker with :-(\n\n\n-=-= Wes =-=-\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6053, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: The Cold War: Who REALLY Won?\nOrganization: Hand Held Products, Inc.\nLines: 28\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <1993Apr20.220335.9235@linus.mitre.org> glover@tafs2.mitre.org  \n(Graham K. Glover) writes:\n> If one reasons that the United States of America at one time represented \n> and protected freedom << individual liberty and personal responsibility >> \n> (and I do, in fact, think that this is true) and that totalitarianism << \n> absolute government control and tyranny >> represents freedom's opposite \n> (which it does), did the USA really win the cold war?\n\nOf course not.  The USA's only hope is for Yelsen (how ever you spell it) to  \nfail the referendum, and have the hard-liners take over again.\n\n> \n> Standard disclaimers ALWAYS apply!\n> \n> ----------------\n> Graham K. Glover\n> ----------------\n> \n> UNMUTUAL\n\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6054, "properties": {"category": "sci.crypt", "text": "From: ab@ersys.edmonton.ab.ca (Allan Brockman)\nSubject: I don't have FTP, live in Canada, how do i get RSA(RAS?) 4 my atariS\nOrganization: Edmonton Remote Systems #3, Edmonton, AB, Canada\nLines: 9\n\ni don't have FTP and i live in canada ( this means that it would be \nilleagle for a U.S. citizen to send the program to me. their gigerment \nwishes to restrict its dispersil ) but someone in europe must have ported \na coppy of RSA to the atariST by now.  how do i get a coppy of the RSA \nfrom a non-FTP news feed?\n\n\n--\nAllan Brockman              ab@ersys.edmonton.ab.ca \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6055, "properties": {"category": "sci.space", "text": "From: schumach@convex.com (Richard A. Schumacher)\nSubject: Re: DC-X update???\nNntp-Posting-Host: starman.convex.com\nOrganization: CONVEX Computer Corporation, Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 32\n\nIn <1993Apr15.234154.23145@iti.org> aws@iti.org (Allen W. Sherzer) writes:\n\n>As for the future, there is at least $5M in next years budget for work\n>on SSRT. They (SDIO) have been looking for more funds and do seem to have\n>some. However, SDIO is not (I repeat, is not) going to fund an orbital\n>prototype. The best we can hope from them is to 1) keep it alive for\n>another year, and 2) fund a suborbital vehicle which MIGHT (with\n>major modifications) just make orbit. There is also some money for a\n>set of prototype tanks and projects to answer a few more open questions.\n\nWould the sub-orbital version be suitable as-is (or \"as-will-be\") for use\nas a reuseable sounding rocket?\n\n\n>Better news comes from the new Spacelifter effort. The USAF managers of\n>this program are very open to SSTO and will have about $50M next\n>year for studies. This would be enough to bring DC-Y to PDR.\n\nThank Ghod! I had thought that Spacelifter would definitely be the\nbastard Son of NLS.\n\n\n(And just as a reminder:)\n>Now not all of this money will go to DC but a good case could be made\n>for spending half on DC.\n\n>Public support is STILL critical. Meet with your Congressperson (I'll\n>help you do it) and get his/her support. Also call your local media\n>and get them to cover the flight tests.\n\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6056, "properties": {"category": "sci.electronics", "text": "From: rainer@spot.Colorado.EDU (Rainer Malzbender)\nSubject: Re: HC11 blues -> no can find\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 10\n\nIn article <pat.734048757@fegmania.wustl.edu> pat@fegmania (Patrick Niemeyer) writes:\n>I too had trouble finding hc11's when I looked for them a while back.\n>I'd be interesting in hearing if anyone knows about their availability now...\n\nThe newest JDR Microdevices catalog has at least one variant of the HC11.\n\n-- \nRainer M. Malzbender\nFyzzicks, CU Boulder\n(303)492-1366             \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6057, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: creek-tm@aza.csc.ncsu.edu (Tobin M Creek)\nSubject: Re: umbdr522.zip : Any later version ?\nKeywords: umbdrv mem\nOrganization: NCSU\nLines: 27\n\nfombaron@ufrima.imag.fr (FOMBARON marc) writes:\n\n>Is there a more recent version of umbdr522.zip because it doesn't\n>work on my machine.\n>My motherboard has Symphony SL82C362 chips and they say it will be\n>supported in the later versions, so is it out ?\n\n>Thank you for helping.\n\n>Marc.\n\nThe last I heard, the author was having some problems in his immediate\nfamily and had delayed the continuation of development for a time.\nThis was some months ago.\n\nIt's a shame.  The driver is the best memory manager I have found\nANYWHERE.  It doesn't require V8086 mode (like QEMM) so it works with\nUltima 7.  It doesn't take ANY memory (runs, then exits).\n\nIf only the EMM provider were a little faster and more stable.\n\n\n--\ntmcreek@eos.ncsu.edu       \\   These views respresent no one.   /   Now you\ncreek-tm@aza.csc.ncsu.edu   \\   Even I won't claim them.       /   are here\n----------------------------------------------------------------------------\n#include \"std_funny_stuff.h\"  /* This is where I include some witty tripe */\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6058, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: Genocide is Caused by Theism : Evidence?\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 26\n\nIn article <1qid04$fct@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>\n>I don't see anything special about theism in general that makes it a \n>particular hazard (more so than say, stupidity, anarchy, or patriotism).   \n>Of course, it depends on the religion, but I see nothing about believing \n>in gods that in and of itself entails or even promotes xenophobia, genocide, \n>etc.  \n\n  If the emphasis is on the \"in general\", then of course you're\n  correct, since you haven't really said anything.  If we restrict\n  our observations to practiced religions, there are lots of\n  examples of god mandated genocide.  Just ask the Canaanites.  The\n  point is that if you believe in a god, and if you believe he has\n  ordered you to eliminate an entire race, you will likely make the\n  attempt.  After all, if it was OK in the past, it could surely be\n  OK in the present.\n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6059, "properties": {"category": "talk.religion.misc", "text": "From: rana@rintintin.Colorado.EDU (Nabeel Ahmad Rana)\nSubject: Re: New newsgroup: soc.religion.islam.ahmadiyya?\nNntp-Posting-Host: rintintin.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 68\n\n\nMr. Esam Abdel-Rahem writes:\n\n>I urge you all to vote NO to the formation of the news group ''AHMADYA.ISLAM''.\n>If they want to have their own group, the word ISLAM shouldnot be attached to \n>the name of such group. We don't consider them as Muslims.\n\n\nDr. Tahir Ijaz comments on Esam Abdel-Rahem's statement:\n\n>But the problem is We consider ourself to be Muslims, even though you don't.\n>Luckily, faith is determined by what one believes and is a personal matter.\n>You cannot declare the faith of someone else.\n\n\nMr. Jawad Ali then comments on Tahir Ijaz's statement:\n\n>You are not considering the consequences of your argument.  The converse\n>would be that the problem is that Muslims dont consider Ahmadies to be\n>Muslims.  Who one considers to be one's co-believer is also a personal\n>matter.  It would be just as wrong to tell the Muslims who should be\n>included in their self-defination.\n\n\nThe argument by Jawad Ali is funny, He writes:\n\"The converse would be that the problem is that Muslims dont consider\nAhmadies to be Muslims\"\n\nWhich is a wrong statement. In the light of Dr. Ijaz's statement, the\nabove statement should be corrected:\n\".......................................is that (some) non-Ahmadi Muslims\ndon't consider Ahmadi-Muslims as Muslims\"\n\nSo, the problem does not get solved:-) Who is a muslims and who is not?\nHumans cannot decide. Humans may not declare others faiths. Its that \nsimple. I don't understand, why the mere use of the word \"ISLAM\" is\nbecomming such a big issue. I have seen numorous postings on the net\non this subject, and all they say, \"No, NO, you cannot use ISLAM as \nthe name of your newsgroup\". ?? \n\nI haven't seen a single posting stating what right do they have in declaring\nthe name of other's faiths? Who gives them this authority? Quran? or\nHadith? or something else? I want to know this! \n\nJust a small reminder to all my Muslim Brothers, Did _EVER_ the \nHoly Prophet of Islam (Muhammad PBUH), say to anyone who called\nhimself a Muslim:\n\nNo, You are not a Muslim ! ???????\n\nNEVER! I challenge all my Muslim brothers to produce a single \nsuch evidence from the history of Islam!\n\nHence, if the Prophet Muhammad could never do that to anyone, how\ncould the Muslims, Mullahs or even Governments of today do\nit to anyone. Do you consider yourself above the Holy Prophet \nMuhammad (PBUH) ?? \n\n\nSincerely,\nNabeel.\n\n\n-- \n||\\\\  ||         //\\\\     ||\\\\         *******************    (Note: \n|| \\\\ ||        //==\\\\    ||//         * LOVE FOR ALL    *     views    \n||  \\\\||abeel  //    \\\\.  ||\\\\ana      * HATRED FOR NONE *      are \n[e-mail: rana@rintintin.colorado.edu]  *******************     mine) \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6060, "properties": {"category": "misc.forsale", "text": "From: ll12@quads.uchicago.edu (li  liu)\nSubject: Florida vacation package forsale\nArticle-I.D.: midway.1993Apr6.060213.211\nReply-To: ll12@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 24\n\nThe package is called Sun and Sand, it includes:\n\n        --5 days/ 4 nights(2+2) accommodations in Orlando and Daytona beach;\n\n        --hotels are selected from major hotel chains and family resorts;\n\n        --two adults and up to three children;\n\n        --fully transferable;\n\n        --expires at 09/93, $20 for extention of one more year;\n\n        --it needs a 45 days advance reservation (esp. for peak season),\n          the reservation department will offer a coupon book which may\n          give you saving up to $150.\n\n        --price: I bought it for $199, which is a good deal for peak\n          seasons. For now, I will not turn down any reasonable offers.\n          must sell.\n\nIt doesn't include transportation. And you have to pay $3/day for hotel\ntax.\n\nPlease e-mail your respond.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6061, "properties": {"category": "comp.sys.mac.hardware", "text": "From: welchg@cs.unc.edu (Gregory Welch)\nSubject: Re: TechWorks -- What You Say?\nOrganization: The University of North Carolina at Chapel Hill\nLines: 30\nDistribution: world\nNNTP-Posting-Host: sirius.cs.unc.edu\n\nWell, although this may be an uncommon occurrence (or not) I had a \"bad\"\nexperience with TechWorks.  This past summer I upgraded (increased) the memory in\na powerbook and a ci.   When I called to place the order for the PB RAM, I was\ntold by the sales person that they would give me a $50 rebate if I would return\nthe original RAM (which was also TechWorks RAM.)  I followed the instructions for\nreturning the old RAM, expecting to see a credit on my VISA within a few weeks.\n\nWell, months went by, and no credit.  After many calls (almost none of which were\never returned - arghhh) I finally found someone who told me \"Why we never\nreceived your old chips.\"  I then explained I the procedure that I had\nfollowed to return them, to which the person replied \"You mean you sent them\nUS Mail?\" (which I had, per the original sales person's instructions.)  I was\ntold that they their loss of US mail shipments is not uncommon (come on) and that\nI should have sent the stuff via FedEx, etc.  I reasoned that I had done exactly\nwhat I had been told to, but they would not budge, the people I spoke with were\nabsolutely no help.  I sent letters, copies of the original receipts, attempted\nto trace the package through the US mail, made *many* more phone calls to\nTechWorks, all to no avail (I wouldn't give-up because I was so disgusted.)\nSales/support people, supervisors, there was nothing I could do to pursuade them\nto \"make it right.\"\n\nI finally (in total disgust) wrote a letter to my credit card company, asking\nthem to investigate the problem.   Three weeks later, the credit miraculously\nappeared on my statement.  I have not (in recent memory) been so disgusted with\nthe service that I received from a company.  In all fairness, they had no way of\nknowing that was not trying to rip them off, but I went to *such* great lengths\nto prove to them that this really happened.  Oh well, c'est la vie.  I will never\nbuy another product from them again.\n\n(There - had to get that off my chest!)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6062, "properties": {"category": "sci.crypt", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U23590@uicvm.uic.edu>\nSubject: Cripple Chip\nLines: 19\n\nHow about this:  The\nTelCo has your Clipper key.  The TelCo\nhas your intended partner's key, if he is\nusing one.  Whenever you call, the message\ngets decrypted and reencrypted wihtout\ny key exchange.  I know it's a stupid\nsystem, but for the feds, it'd be\ngreat.  The point of this isn;t to\ntake over the crypto market, BTW.  Clinton\ndoen not want people to have any sort of crypto at\nall (just like Busch).  But he needs some support\nfor the \"technology initiative\" garbage he's\npushing (industrial policy stuff) and a computer\nhip designed by the gov't is just the thing.\n\nWho's going to thing about the (literal) Billions of\nDollars it took for a government agency to design?\n\n-watkins@earth.eecs.uic.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6063, "properties": {"category": "rec.autos", "text": "From: welty@cabot.balltown.cma.COM (richard welty)\nSubject: Re: Saturn's Pricing Policy\nOrganization: New York State Institute for Sebastian Cabot Studies\nLines: 20\n\nIn article <1993Apr5.230808.581@cs.brown.edu> cs012055@cs.brown.edu (Hok-Chung Tsang) writes:\n>Moreover, if Saturn really does reduce the dealer profit margin by $1000, \n>then their cars will be even better deals.  Say, if the price of a Saturn was\n>already $1000 below market average for the class of cars, then after they\n>reduce the dealer profit, it would be $2000 below market average.  It will:\n\n>1) Attract even more people to buy Saturns because it would SAVE THEM MONEY.\n\n>2) Force the competitors to lower their prices to survive.\n\nbut what is Saturn's motivation here?  they're already selling every\ncar they make, with multiple shifts in the plant.  given this, what\npossible motivation could they have to lower prices?\n\ncheers,\n  richard\n-- \nrichard welty        518-393-7228       welty@cabot.balltown.cma.com\n``Nothing good has ever been reported about the full rotation of\n  a race car about either its pitch or roll axis''  -- Carroll Smith\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6064, "properties": {"category": "comp.graphics", "text": "From: rknight@stiatl.salestech.com (Ray Knight)\nSubject: Re: CView answers\nKeywords: Stupid Programming\nOrganization: Sales Technologies, Inc.\nLines: 19\n\nuk02183@nx10.mik.uky.edu (bryan k williams) writes:\n\n>re: majority of users not readding from floppy.\n>Well, how about those of us who have 1400-picture CD-ROMS and would like to use\n>CVIEW because it is fast and it works well, but can't because the moron lacked\n>the foresight to create the temp file in the program's path, not the current\n>didrectory?\n\n\n  Actually the most flexible way to create temp files is to check for a TEMP or\nTMP environment variable and create the files on the drive and directory pointedto by the variable.  This is pretty much a standard for DOS, Windows and OS/2\napplications.\n\n\n-- \nWhat I have to say is my own opinion and has no bearing on any other person or\norganization including my employer.\n-----------------------------------------------------------------------------\nrknight@salestech.com        (404) 841-5316           Sales Technologies, Inc.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6065, "properties": {"category": "rec.sport.baseball", "text": "From: fls@keynes.econ.duke.edu (Forrest Smith)\nSubject: Re: Braves Pitching UpdateDIR\nDistribution: usa\nOrganization: Duke University; Durham, N.C.\nLines: 14\nNntp-Posting-Host: keynes.econ.duke.edu\n\nIn article <1993Apr14.153137.1@ulkyvx.louisville.edu> pjtier01@ulkyvx.louisville.edu writes:\n>\n>If the Braves \n>continue to average 3 runs a game, then 3 is where they will finish.\n>                                                                    P. Tierney\n\tSo, if the Braves run production falls to 1 per game, which is\ncertainly where it's headed (if they're lucky), does that mean they'll finish\nfirst?\n\n-- \n@econ.duke.edu     fls@econ.duke.edu     fls@econ.duke.edu    fls@econ.duke.\ns  To my correspondents:  My email has been changed.                       e\nl                         My new address is:  fls@econ.duke.edu            d\nf            If mail bounces, try fls@raphael.acpub.duke.edu               u\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6066, "properties": {"category": "rec.sport.baseball", "text": "From: John_Carson@mindlink.bc.ca (John Carson)\nSubject: Kansas City e-mail contact\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 11\n\nWould the person who is running the e-mail list for KANSAS CITY Royals please\ne-mail details regarding mailing list. If you on the list and know the info\nplease send me info as well.\n\nPlease e-mail as I don't have time always to read this group\n\nJohn\n--\n>>>>>>>>>>>>>>>>>>> John_Carson@MINDLINK.BC.CA <<<<<<<<<<<<<<<<<<<<<\n>>        D.John Carson    J & H Concepts   (604)589-5118         <<\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6067, "properties": {"category": "talk.politics.mideast", "text": "From: astein@nysernet.org (Alan Stein)\nSubject: Re: Anti-Zionism is Racism\nOrganization: NYSERNet, Inc.\nLines: 14\n\nB8HA000 <B8HA@MUSICB.MCGILL.CA> writes:\n\n>In Re:Syria's Expansion, the author writes that the UN thought\n>Zionism was Racism and that they were wrong.  They were correct\n>the first time, Zionism is Racism and thankfully, the McGill Daily\n>(the student newspaper at McGill) was proud enough to print an article\n>saying so.  If you want a copy, send me mail.\n\n>Steve\n\nJust felt it was important to add four letters that Steve left out of\nhis Subject: header.\n-- \nAlan H. Stein                     astein@israel.nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6068, "properties": {"category": "soc.religion.christian", "text": "From: wquinnan@sdcc13.ucsd.edu (Malcusco)\nSubject: Re: When are two people married in God's eyes?\nOrganization: University of California, San Diego\nLines: 59\n\nIn article <Apr.16.23.18.04.1993.1876@geneva.rutgers.edu> rob@ll.mit.edu writes:\n>I think it was Lewis who said that in a wedding, it's the principals  \n>that marry each other; the church and the state are present merely as  \n>witnesses.\n>\n>[This is not just Lewis -- it's a summary of standard Catholic\n>theology.  However this doesn't mean that the presence of those\n>witnesses is optional, except in odd situations like the standard\n>desert island.  --clh]\n\n\tI originally wrote to the person who asked this question\npersonally, but decided to post the information I had on the topic.\n\n\tI spoke to the pastor of my parish (Catholic) recently, \nby coincidence, on this subject.  His explaination was that \nwhile it is possible for a couple to marry without the presence\nof a priest, it is important to have it recognized by the \nChurch as soon as it is possible.  Because the Church \nrecoginizes itself as a community of believers, members\nof the church, to some degree, are to be held accountable\nto each other.  To be less hypothetical than that mythical\ncouple on the desert island, there are many places in the\nworld that do not have priests availible for marriages\non a regular basis.  Therefore, couples get married without\nthe priest being present, but get the priest to testify to\ntheir marriage when one comes through the area.  \n\n\tI remember a religion teacher in high school saying\nthat the marriage ceremony is not for the benefit of the couple\nas much as it is for the benefit of the community.  Thus,\nmarried couples have some responsibility to the community\nto stay married, as divorce sets a bad example for the\ncommunity.  Also, the couple has vowed to become one with\none another--the community should be able to rely on that \ncouple to be as one.\n\n\tWhile couples may marry without witnesses, they \nmay NOT get anulments without a priest present.  An \nanulment is simply an admission of the church that what\nthey had declared a marriage was not, in fact, a marriage\nat all, for whatever reason.  So don't start getting married\nin the back seat of a station wagon and giving yourselves\nanulments a half-hour later!!\n\n\tI tend to agree with the response back there that\nsaid couples become married as soon as they consumate their\nmarriage, but I would add that couples should consider their\nmarriage consumated if they have sex, whether or not they\nintended to be married, assuming they were both willing\npartners to the sexual act.  The couple must be prepared\nto raise any children they may have as a result of that\nsexual act with the benefit of both parents.  Sex IS a\ncommitment, I believe, in God's eyes.\n\n\tBut I'm digressing....\n\n\t\t\tGod be with you,\n\t\t\t\t\t\n\t\t\t\tMalcusco\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.287+0000", "event": "documents", "entityId": 6069, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: farley@access.digex.com (Charles U. Farley)\nSubject: Help with changing Startup logo\nOrganization: Express Access Online Communications USA: 800-546-2010\nLines: 21\nDistribution: usa\nNNTP-Posting-Host: access.digex.net\nSummary: Help with changing Startup logo\n\n\nI know this is probably a FAQ, but...\n\nI installed the s/w for my ATI graphics card, and it bashed my Windows\nlogo files.  When I start Windows now, it has the 3.0 logo instead of\nthe 3.1 logo.\n\nI thought the files that controlled this were\n\n\\WINDOWS\\SYSTEM\\VGALOGO.RLE\n\\WINDOWS\\SYSTEM\\VGALOGO.LGO\t\n\nI restored these files, but it didn't change the logo.  Anyone know what\nthe correct files are?\n\nThanks.\n\n\n-- \nfarley@access.digex.com  <Charles U. Farley>\nAverage IQ of Calgary Board of Ed. Employee: 65\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6070, "properties": {"category": "talk.politics.mideast", "text": "From: arens@ISI.EDU (Yigal Arens)\nSubject: Re: Why does US consider YIGAL ARENS to be a dangerous to humanity\nOrganization: USC/Information Sciences Institute\nLines: 43\nNNTP-Posting-Host: grl.isi.edu\nIn-reply-to: ehrlich@bimacs.BITNET's message of 19 Apr 93 14:58:49 GMT\n\nIn article <4815@bimacs.BITNET> ehrlich@bimacs.BITNET (Gideon Ehrlich) writes:\n>\n> In article <ARENS.93Apr13161407@grl.ISI.EDU> arens@ISI.EDU (Yigal\n> Arens) writes:\n>\n> >Los Angeles Times, Tuesday, April 13, 1993.  P. A1.\n> > ........\n>\n> The problem if  transffering US government files about Yigal Arens\n> and some other similar persons does or does not violate a federal\n> or a local American law seemed to belong to some local american law\n> forum  not to this forum.\n> The readers of this forum seemed to be more interested in the contents\n> of those files.\n> So It will be nice if Yigal will tell us:\n> 1. Why do American authorities consider Yigal Arens to be dangerous?\n\nI'm not aware that the US government considers me dangerous.  In any\ncase, that has nothing to do with the current case.  The claim against\nthe ADL is that it illegally obtained and disseminated information that\nwas gathered by state and/or federal agencies in the course of their\nstandard interaction with citizens such as myself.  By that I refer to\nthings such as: address and phone number, vehicle registration and\nlicense information, photographs, etc.\n\n> 2. Why does the ADL have an interest in that person ?\n\nYou should ask the ADL, if you want an authoritative answer.  My guess\nis that they collected information on anyone who did or might engage in\npolitical criticism of Israel.  I further believe that they did this as\nagents of the Israeli government, or at least in agreement with them.\nAt least some of the information collected by the ADL was passed on to\nIsraeli officials.  In some cases it was used to influence, or attempt\nto influence, people's access to jobs or public forums.  These matters\nwill be brought out as the court case unfolds, since California law\nentitles people to compensation if such actions can be proven.  As my\nprevious posting shows, California law entitles people to compensation\neven in the absence of any specific consequences -- just for the further\ndissemination of certain types of private information about them.\n--\nYigal Arens\nUSC/ISI                                                TV made me do it!\narens@isi.edu\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6071, "properties": {"category": "comp.windows.x", "text": "From: wpwood@darkwing.austin.ibm.com\nSubject: GCC and Building the HP Widget Set on Linux\nReply-To: wpwood@austin.ibm.com (Bill Woodward)\nOrganization: The Institute of Knowledge on Jinx\nLines: 30\n\n\nI am currently attempting to get a copy of the HP Widget set compiled\nunder Linux (SLS Release with kernel 99.6) and am running into some\nproblems.  Actually, it seems that this is more of a GCC question,\nbecause I got it to compile without trouble using cc on an RS/6000.\n\tBasically, there are a number of functions with prototypes\nset up in, let's say, CompositeP.h, for instance, the composite\nwidget's insert_child procedure is set up with the type :\n\n\ttypedef void (*XtWidgetProc) (Widget)\n\nbut in several places in the HP source code, they reference the\ninsert_child procedure and pass it multiple arguments instead of just\none, as the prototype suggests.  For example:\n\n\t(*superclass->composite_class.insert_child)(w, args, p_num_args)\n\nNow, GCC chokes on this, giving an error message that too many arguments\nare passed to the function.  So, does anyone have any suggestions as to\nhow to turn off this checking in GCC, or how I can go about changing the\ncode to accomodate this call without changing /usr/include/X11/CompositeP.h,\nor has anyone successfully built the HP widget set and have any suggestions.\n\tMany thanks in advance for any help.\n\n--\n<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>\nBill Woodward        | wpwood@austin.ibm.com   <-- Try this first\nAIX Software Support | billw@aixwiz.austin.ibm.com  \nGraphics Group       | 512-838-2834\nI am the terror that flaps in the night.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6072, "properties": {"category": "soc.religion.christian", "text": "From: tedr@athena.cs.uga.edu (Ted Kalivoda)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nOrganization: University of Georgia - UCNS\nLines: 32\n\nIn article <Apr.19.05.13.48.1993.29266@athos.rutgers.edu>,\nkempmp@phoenix.oulu.fi (Petri Pihko) wrote:\n> \n> Jason Smith (jasons@atlastele.com) wrote: \n \n> Another answer is that God is the _source_ of all existence.\n> This sounds much better, but I am tempted to ask: Does God\n> Himself exist, then? If God is the source of His own existence,\n> it can only mean that He has, in terms of human time, always\n> existed. But this is not the same as the source of all existence.\n> This argument sounds like God does not exist, but meta-exists,\n> and from His meta-existent perspective, He created existence.\n> I think this is actually a nonsolution, a mere twist of words.\n\nAlways existing and being the source of the existence of all other beings\nis not problematic.\n\nBut, as you put, Being the source of \"all\" existence, including one's own,\nwould mean that God came from nothing, a concept alien to Christianity and\nTheism.  It is better to understand the classical concepts of Necessary and\nContingent existence.  God exists necessarily, always.  God created\ncontingent beings.  This is a coherent solution to existence, so long as\nthe concept of God is coherent.\n \n> The best answer I have heard is that human reasoning is incapable\n> of understanding such questions. Being an atheist myself, I do not\n> accept such answers, since I do not have any other methods.\n\nNot a very good answer.  If reason cannot by any means understand something\nthen it is likely that \"it\" is a null concept, something not in reality.\n\nTed Kalivoda\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6073, "properties": {"category": "rec.sport.hockey", "text": "Subject: Paul Kuryia and Canadian World Team\nFrom: apland@mala.bc.ca\nOrganization: Malaspina College\nLines: 6\n\nHeard last night that Paul Kuryia will be playing for the Canadian World\nHockey team this year.  He was on a local radio station when a friend of\nthe familty called to congratulate him on the invitation.  Meekly Paul told\nthe host that he didn't think they wanted it out yet.  This morning I heard\nthat he is destined to play on a line with Lindros and Recci{unsure of this\none}.  If he plays well in this arena, he could go #1 or 2 in the draft.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6074, "properties": {"category": "rec.autos", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: Corporation for Open Systems\nDistribution: na\nLines: 37\n\nIn <24485@drutx.ATT.COM> klf@druwa.ATT.COM (FranklinKL) writes:\n\n>In article <C5HHGM.1rM@constellation.ecn.uoknor.edu>, callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>| In article <1993Apr13.215605.26252@slcs.slb.com> dcd@se.houston.geoquest.slb.com (Dan Day) writes:\n>| >In article <1q4466INNb85@ctron-news.ctron.com> smith@ctron.com writes:\n>| >>\n>| >>It's a big aftermarket business.  Almost no cars come from the factory with\n>| >>vynal any more, and any fake \"convertible\" job _definitely_ came from some\n>| >>aftermarket place.  What amazes me is how much people are willing to pay for\n>| >>bad taste\n>| >\n>| >How about those really ugly fake wheel compartments stuck onto the\n>| >trunk or side (or both sides!) of some tacky luxury cars?\n>| \n>| Some of 'em aren't fake (if you're talking about the Continental kit,\n>| named after the Lincoln Continental, the first car to sport one). I\n>| personally would _love_ to have a '56 T-Bird with a Continental kit\n>| (and the supercharged V-8 :-); that is one of the most beautiful\n>| cars ever built, IMHO.\n>| \n>| \t\t\t\tJames\n>| \n\n>The Continental may have been the first \"modern era\" auto to mount the\n>spare on the rear of the car but it was hardly the first car to sport one.\n>Various mounting techniques for rear mounting the spare were quite common\n>in early automobiles, both US and Foreign.\n>--\nRight. In the thirties both Buick and Packard had two spares mounted in\nwells in the front fenders. Of course that was back when the front\nfenders were long enough to provide room. There were a couple of other\nmarques that did this as well, but memory fades.\n\n>Ken Franklin \tThey say there's a heaven for people who wait\n>AMA     \tAnd some say it's better but I say it ain't\n>GWRRA           I'd rather laugh with the sinners than cry with the saints\n>DoD #0126       The sinners are lots more fun, Y'know only the good die young\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6075, "properties": {"category": "talk.politics.misc", "text": "From: tfarrell@lynx.dac.northeastern.edu (Thomas Farrell)\nSubject: Re: NC vs Hunt (Marine Gay Bashing in Wilmington NC) verdict\nArticle-I.D.: lynx.1993Apr15.222023.1521\nOrganization: Northeastern University, Boston, MA. 02115, USA\nLines: 10\n\nIn article <C5HFr2.CpA@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson) writes:\n>\n>So you feel that the defendents should have been convicted regardless of the\n>evidence. Now that would truely be a sad day for civil rights.\n\nI don't know about everybody else, but to me, they should have been\nconvicted BECAUSE of the evidence, which in my mind was quite\nsufficient.\n\n\t\t\tTom\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6076, "properties": {"category": "sci.crypt", "text": "From: howland@noc.arc.nasa.gov (Curt Howland)\nSubject: Re: White House Wiretap Chip Disinformation Sheet\nKeywords: Big Bubba Is Watching.\nOrganization: NASA Science Internet Project Office\nLines: 24\n\n\n\n|>    The Attorney General will procure and utilize encryption devices to\n|>    the extent needed to preserve the government's ability to conduct\n|>    lawful electronic surveillance and to fulfill the need for secure\n|>    law enforcement communications.  Further, the Attorney General\n|>    shall utilize funds from the Department of Justice Asset Forfeiture\n|>    Super Surplus Fund to effect this purchase.\n\nThis is the one part that really scares me. Without\nthe keys, it can likely be determined if a person\nis using the \"State Approved\" encryption method,\nand if not then that persons life is forfet, and\nthe profits go to making more busts, and more \nprofit. \n\n\"Power corrupts. Absolute power corrupts absolutely.\"\nHuman nature has not changed very much in only a few\nhundred years....\n\n---\nCurt Howland        howland@nsipo.nasa.gov \nNSI Operations Center      NASA Ames\n(800) 424-9920\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6077, "properties": {"category": "talk.politics.guns", "text": "From: f_gautjw@ccsvax.sfasu.edu\nSubject: RE: the truth starts to come out\nDistribution: usa\nOrganization: Stephen F. Austin State University\nLines: 28\n\nIn article <C5uA7r.DAD@da_vinci.it.uswc.uswest.com>, pprun@august.it.uswc.uswest.com writes:\n> \n> \n> I have just one thing to say about this: WRITE YOUR CONGRESSPERSON!\n> The FBI and BATF storm troopers must not be allowed to get away with\n> this.  Demand a full investigation of the Waco survivor's story of\n> the lantern being knocked over by the tank.  We can't bring anybody\n> back from the dead, but we may be able to send a few of them to\n> political hell.\n\nI heard over NPR yesterday morning that Arlan Specter, Senator from\nPennsylvania, has already called for a Congressional investigation.\nThe problem is that Specter was one of the key government attorneys several\nyears ago who did what he could to coverup facts in the assassinations\nof JFK and others.  That is to say, the Chief Fox wants to check out\nthe hen house.  Writing your representatives is a great idea.  When\nyou do ask that they keep Specter and his cronies far away from \nany investigation.\n> \n> Would someone please post the generic addresses for Congress and \n> Senate so that we can all write letters?\n-- \n *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *\n Joe Gaut                    |   In the super-state, it really does not\n <f_gautjw@ccsvax.sfasu.edu> |   matter at all what actually happened.\n Red-neck and proud of it.   |   Truth is what the government chooses to \n                             |   tell you.  Justice is what it wants to happen.\n\t\t\t\t\tJim Garrison, New Orleans, La.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6078, "properties": {"category": "comp.windows.x", "text": "From: envbvs@epb11.lbl.gov (Brian V. Smith)\nSubject: Re: I need source for splines\nArticle-I.D.: dog.30237\nDistribution: world\nOrganization: lbl\nLines: 21\nNNTP-Posting-Host: 128.3.12.123\n\nIn article <1ppvhtINN814@fmsrl7.srl.ford.com>, glang@slee01.srl.ford.com (Gordon Lang) writes:\n|> In the Xlib Programming Manual (O'Rielly Associates) it is pointed out\n|> that routines for drawing splines is not included in Xlib, but extensions\n|> are publicly available.  I need spline routines which work within the X\n|> environment.\n|> \n|> I have previously posted a similar request and got two responses, both\n|> directing me to the Interviews package at interviews.stanford.edu.  I\n|> got it, but it is too much.  It looks like too much work to try to\n|> identify, extract and modify relevant components.  I am looking for\n|> code that is not encumbered by a complex and extensive framework which\n|> is beyond our needs.  We just need the spline \"extensions\" to the Xlib.\n\nLook in xfig.  It has two types of spline algorithms and is relatively simple.\nXfig is available from export.lcs.mit.edu in\n/contrib/R5fixes/xfig-patches/xfig.2.1.6.tar.Z\n\n-- \nBrian V. Smith    (bvsmith@lbl.gov)\nLawrence Berkeley Laboratory\nI don't speak for LBL; they don't pay me enough for that.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6079, "properties": {"category": "sci.space", "text": "From: dbm0000@tm0006.lerc.nasa.gov (David B. Mckissock)\nSubject: Washington Post Article on SSF Redesign\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: tm0006.lerc.nasa.gov\nOrganization: NASA Lewis Research Center / Cleveland, Ohio\nLines: 52\n\n\"Space Station Redesign Leader Says Cost Goal May Be\nImpossible\"\n\nToday (4/6) the Washington Post ran an article with the\nheadline shown above. The article starts with \"A leader\nof the NASA team in charge of redesigning the planned\nspace station said yesterday the job is tough and may\nbe impossible.\" O'Connor is quoted saying whether it is\npossible to cut costs that much and still provide for\nmeaningful research \"is a real question for me.\"\nO'Connor said \"everything is fair game,\" including\n\"dropping or curtailing existing contracts with the\naerospace industry, chopping management of the space\nstation program at some NASA facilities around the\ncountry, working closely with the Russian space station\nMir, and using unmanned Titan rockets to supplement the\nmanned space shuttle fleet.\"\n\nO'Connor says his team has reviewed 30 design options\nso far, and they are sorting the serious candidates\ninto three categories based on cost.\n\nThe Post says O'Connor described the design derived\nfrom the current SSF as a high cost option (I believe\nKathy Sawyer, the Post writer, got confused here. I\nlistened in on part of O'Connor's briefing to the press\non Monday, and in one part of the briefing O'Connor\ntalked about how the White House wants three options,\nsorted by cost [low, medium, and high]. In another part\nof the briefing, he discussed the three teams he has\nformed to look at three options [SSF derivative @ LaRC,\nmodular buildup with Bus-1 @ MSFC, and Single Launch\nCore [\"wingless Orbiter\"] @ JSC. Later, in response to\na reporters question, I thought I heard O'Connor say\nthe option based on a SSF redesign was a \"moderate\"\ncost option, in between low & high cost options. Not\nthe \"high cost\" option as Sawyer wrote).\n\nThe article goes on to describe the other two options\nas \"one features modules that could gradually be fitted\ntogether in orbit, similar to the Russian Mir. The\nother is a core facility that could be deposited in\norbit in a single launch, like Skylab. That option\nwould use existing hardware from the space shuttle -\nthe fuselage, for example, in its basic structure.\"\n\nThe last sentence in the article contradicts the title\n& the first paragraph. The sentence reads \"He\n[O'Connor] said a streamlined version of the planned\nspace station Freedom is still possible within the\nadministration's budget guidelines.\"\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6080, "properties": {"category": "comp.windows.x", "text": "From: rogerskm@eplrx7.es.duPont.com (Karen Rogers)\nSubject: Remapping <return> key in a dialog\nOrganization: DuPont Central Research & Development\nLines: 58\n\nI am new to X programming, so please bear with me....\n\nI am trying to have a dialog box that returns it's value upon the\nuser entering a new value and hitting the <return> key. (don't want\nto have a \"done\" button).  The piece of code below will work if\nI exclude the XtNvalue argument but will not work as is. Can someone\nshed some light on this or suggest a better way?  Ultimately I will\nhave several areas active at the same time to allow a user to modify\nparameters in the program.  \n\n\nThanks for your help,\n\nKaren Rogers\nDupont\nrogerskm@pluto.es.dupont.com\n\n######### Code starts here ################\nvoid doit()\n{\nprintf(\"Entered the doit function\\n\");\nexit();\n}\n\nmain(argc, argv)\nint argc;\nchar **argv;\n{\nWidget toplevel;\nWidget outer;\nXtAppContext app_con;\nWidget samples;\nArg args[3];\nstatic XtActionsRec key_actions[]= \n    {\n    {\"doit\", doit},\n    };\n\ntoplevel = XtVaAppInitialize(&app_con, \"TEST\", NULL, 0,\n\t                       &argc, argv, NULL, NULL);\n\nouter = XtCreateManagedWidget( \"paned\", panedWidgetClass, toplevel,\n\t\t\t\t\tNULL, ZERO);\n\nXtAppAddActions(app_con, key_actions, XtNumber(key_actions));\n\nXtSetArg(args[0], XtNlabel, \"Enter value\");\nXtSetArg(args[1], XtNvalue, \"0\");\n\nsamples = XtCreateManagedWidget(\"samples\", dialogWidgetClass,outer,args,2);\n\nXtOverrideTranslations(samples, \n\t  XtParseTranslationTable(\"<Key>Return: doit()\"));\n   \nXtRealizeWidget(toplevel);\nXtAppMainLoop(app_con);\n}\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6081, "properties": {"category": "sci.med", "text": "From: ken@sugra.uucp (Kenneth Ng)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Private Computer, Totowa, NJ\nLines: 15\n\nIn article <szikopou.734725851@cunews: szikopou@superior.carleton.ca (Steven Zikopoulos) writes:\n:In <1993Apr13.144340.3549@news.cs.brandeis.edu> reynold@binah.cc.brandeis.edu (\"Susan Reynold (w/out the s)\") writes:\n:>I think the scientists are biased towards the food industry or something.\n:>Was the article long? Would anyone be interested in posting it?\n:a neuroscientist told me that MSG is used as a neurotoxin...that's\n:right...some labs use it to \"kill\" neurons in mice and rats\n\nVitamin A (and I think vitamin D) in strong enough amounts can kill.  The key\nwords are DOSAGE and EXPOSURE MECHANISM.\n\n-- \nKenneth Ng\nPlease reply to ken@blue.njit.edu for now.\n\"All this might be an elaborate simulation running in a little device sitting\non someone's table\" -- J.L. Picard: ST:TNG\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6082, "properties": {"category": "sci.electronics", "text": "From: jeh@cmkrnl.com\nSubject: Re: A question about 120VAC outlet wiring.\nDistribution: world\nOrganization: Kernel Mode Systems, San Diego, CA\nLines: 35\n\nIn article <1qmisf$odp@sdl.Warren.MENTORG.COM>, garyg@warren.mentorg.com (Gary Gendel) writes:\n> In article 1834@cmkrnl.com, jeh@cmkrnl.com writes:\n>>What you CAN do if you want three-prong outlets without additional wiring is \n>>to use a GFCI outlet (or breaker, but the outlet will be cheaper).  In fact,\n>>depending on where you are putting your new outlet(s), a GFCI may be *required*.\n> \n> You still need to supply a proper ground for a Ground Fault Circuit Interrupter!\n\nNot according to the NEC nor the CEC, as explained in the electrical wiring \nFAQ, which I posted here separately.  Note the material under the headings\n\n> Subject: How do I convert two prong receptacles to three prong?\n\nand\n\n> Subject: Are you sure about GFCIs and ungrounded outlets?\n> \tShould the test button work?\n\nOf course, as they said -- \"Local codes may vary\". \n\n> So rewiring is still a part of this job, however, the ground may be connected to\n> a local earth ground, rather than back at the breaker box.\n\nI'm not sure about this.  If the ground connections on the outlets are\nconnected to anything, they should be connected to a wire that runs back to the\nmain panel, where it is bonded to the neutral connector and to the house ground\nrod.  A connection to a local earth ground would not necessarily meet one of\nthe goals of the ground wire, which is that if a short develops from hot\nto the ground wire, enough current would flow to trip the breaker.  \n\nHmmm.  How are those orange \"isolated ground\" outlets (often used in\ncomputer rooms) wired?  \n\n\t--- Jamie Hanrahan, Kernel Mode Systems, San Diego CA\nInternet:  jeh@cmkrnl.com  Uucp: uunet!cmkrnl!jeh  CIS: 74140,2055\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6083, "properties": {"category": "comp.windows.x", "text": "From: dcc@dcs.ed.ac.uk (David Crooke)\nSubject: Bitplaned (\"non-chunky\" pixel) cfb????\nOrganization: Department of Computer Science, University of Edinburgh\nLines: 17\n\nIs there a PD version of cfb, or other PD server stuff, which has a colour frame\nbuffer implementation which works in bitplaned mode, i.e. where the screen\nmemory is grouped so that \"bit 0 of every pixel is here, bit 1 is there, etc.\"\n\nThe only such beast I know if at the moment is the GfxBase server for the\nCommodore Amiga, and it is commercial. I don't know if they wrote their own cfb,\nbut I suspect they did.\n\nPlease respond by email, as I don't read this group.\n\nMany thanks\nDave\n-- \nDavid Crooke, Department of Computer Science, University of Edinburgh\nJanet dcc@ed.dcs  :  Internet dcc@dcs.ed.ac.uk  :  IP talk dcc@129.215.160.2\nWork: JCMB Rm 3310, King's Bldgs, W Mains Rd., Edinburgh EH9 3JZ. 031 650 6013\nHome: 2FL, 39 Woodburn Terr, M'side, Edinburgh EH10 4ST. Tel: 031 452 9067\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6084, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Gospel Dating\nOrganization: Technical University Braunschweig, Germany\nLines: 102\n\nIn article <66020@mimsy.umd.edu>\nmangoe@cs.umd.edu (Charley Wingate) writes:\n \n>Assuming you are presenting it accurately, I don't see how this argument\n>really leads to any firm conclusion.  The material in John (I'm not sure\n>exactly what is referred to here, but I'll take for granted the similarity\n>to the Matt./Luke \"Q\" material) IS different; hence, one could have almost\n>any relationship between the two, right up to John getting it straight from\n>Jesus' mouth.\n>\n \nNo, the argument says John has known Q, ie a codified version of the logia,\nand not the original, assuming that there has been one. It has weaknesses,\nof course, like that John might have known the original, yet rather referred\nto Q in his text, or that the logia were given in a codified version in\nthe first place.\n \nThe argument alone does not allow a firm conclusion, but it fits well into\nthe dating usually given for the gospels.\n \n \n>>We are talking date of texts here, not the age of the authors. The usual\n>>explanation for the time order of Mark, Matthew and Luke does not consider\n>>their respective ages. It says Matthew has read the text of Mark, and Luke\n>>that of Matthew (and probably that of Mark).\n>\n>The version of the \"usual theory\" I have heard has Matthew and Luke\n>independently relying on Mark and \"Q\".  One would think that if Luke relied\n>on Matthew, we wouldn't have the grating inconsistencies in the geneologies,\n>for one thing.\n>\n \nNot necessarily, Luke may have trusted the version he knew better than the\nversion given by Matthew. Improving on Matthew would give a motive, for\ninstance.\n \nAs far as I know, the theory that Luke has known Matthew is based on a\nstatistical analysis of the texts.\n \n \n>>As it is assumed that John knew the content of Luke's text. The evidence\n>>for that is not overwhelming, admittedly.\n>\n>This is the part that is particularly new to me.  If it were possible that\n>you could point me to a reference, I'd be grateful.\n>\n \nYep, but it will take another day or so to get the source. I hope your German\nis good enough. :-)\n \n \n>>>Unfortunately, I haven't got the info at hand.  It was (I think) in the late\n>>>'70s or early '80s, and it was possibly as old as CE 200.\n>\n>>When they are from about 200, why do they shed doubt on the order on\n>>putting John after the rest of the three?\n>\n>Because it closes up the gap between (supposed) writing and the existing\n>copy quit a bit.  The further away from the original, the more copies can be\n>written, and therefore survival becomes more probable.\n>\n \nI still do not see how copies from 200 allow to change the dating of John.\n \n \n>>That John was a disciple is not generally accepted. The style and language\n>>together with the theology are usually used as counterargument.\n>\n>I'm not really impressed with the \"theology\" argument.  But I'm really\n>pointing this out as an \"if\".  And as I pointed out earlier, one cannot make\n>these arguments about I Peter; I see no reason not to accept it as an\n>authentic letter.\n>\n \nYes, but an if gives only possibilities and no evidence. The authencity of\nmany letters is still discussed. It looks as if conclusions about them are not\ndrawn because some pet dogmas of the churches would probably fall with them as\nwell.\n \n \n>>One step and one generation removed is bad even in our times. Compare that\n>>to reports of similar events in our century in almost illiterate societies.\n>\n>The best analogy would be reporters talking to the participants, which is\n>not so bad.\n>\n \nWell, rather like some newsletter of a political party reporting from the\nbig meeting. Not necessarily wrong, but certainly bad.\n \n \n>>In other words, one does not know what the original of Mark did look like\n>>and arguments based on Mark are pretty weak.\n>\n>But the statement of divinity is not in that section, and in any case, it's\n>agreed that the most important epistles predate Mark.\n \nYes, but the accuracy of their tradition is another problem.\n \nQuestion: Are there letters not from Paul and predating Mark claiming the\ndivinity of Jesus?\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6085, "properties": {"category": "rec.sport.hockey", "text": "From: lli+@cs.cmu.edu (Lori Iannamico)\nSubject: Re: Giveaways \nNntp-Posting-Host: lli.mach.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 13\n\nIn article <1993Apr14.173826.29856@philabs.philips.com> jpc@philabs.philips.com (John P. Curcio) writes:\n>\n\n>That's probably because they couldn't find anyone to sponser it... Maybe USS\n>could sponser the Pittsburgh Penguins/US Steel Steel Rod Night-- close enough?\n\nMaybe in the 60's, but not now.  Steel is a dead industry in Pgh. \n\nNo, a giveaway night in the 90's for Pgh would be \"Baboon Liver Night\"\nsponored by The Pittsburgh Zoo...\n\nLori\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6086, "properties": {"category": "rec.sport.hockey", "text": "From: umturne4@ccu.umanitoba.ca (Daryl Turner)\nSubject: Re: NHL Team Captains\nNntp-Posting-Host: ccu.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Manitoba, Canada\nLines: 30\n\nIn article <1993Apr20.113953.18879@jarvis.csri.toronto.edu> leunggm@odin.control.utoronto.ca (Gary Leung) writes:\n>In article <1993Apr20.151818.4319@samba.oit.unc.edu> Scott.Marks@launchpad.unc.edu (Scott Marks) writes:\n>>>And of course, Mike Ramsey was (at one time) the captain in Buffalo prior to\n>>>being traded to Pittsburgh.  Currently, the Penguins have 3 former captains\n>>>and 1 real captain (Lemieux) playing for them.  They rotate the A's during the\n>>>season (and even the C while Mario was out).  Even Troy Loney has worn the C\n>>>for the Pens.\n>>\n>\n>I think that Mike Foligno was the captain of the Sabres when he\n>got traded to the Leafs. Also, wasn't Rick Vaive the captain of\n>the Leafs when he got traded to Chicago (with Steve Thomas for\n>Ed Olcyzk and someone). Speaking of the Leafs, I believe that\n>Darryl Sittler was their captain (he'd torn the \"C\" off his\n>jersey but I think he re-claimed the captaincy later on) when he\n>was traded to the Flyers.\n>\n>Oh yeah, of course, Gretzky was the captain of the Oilers before\n>he was traded wasn't he? \n\nDale Hawerchuk and Troy Murray were both captains of the Jets\nwhen they were traded.  (Murray this year in mid-season, Hawerchuk\na few years ago in the off-season.)\n\nDaryl Turner : r.s.h contact for the Winnipeg Jets \nInternet: umturne4@ccu.umanitoba.ca  \nFidoNET: 1:348/701 -or- 1:348/4  (please route through 348/700)\nTkachuk over to Zhamnov, up to Sel{nne, he shoots, he scores! \nThe Jets win the Cup!  The Jets win the Cup!\nEssensa for Vezina!  Housley for Norris!  Sel{nne for Calder!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6087, "properties": {"category": "misc.forsale", "text": "From: HO@kcgl1.eng.ohio-state.edu (Francis Ho)\nSubject: 24-pin Printer\nNntp-Posting-Host: kcgl1.eng.ohio-state.edu\nOrganization: The Ohio State University\nLines: 9\n\nTOSHIBA P321SL\n-track/friction feeds\n-LCD display\n-3.5 months old\n-like new\n-sample print-out sheet (GEOWORKS) available\n-EMULASER (a 2-month old program by VERTISOFT\n   makes print-out look like an inkjet print-out)\n-$175 firm.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6088, "properties": {"category": "sci.space", "text": "From: wmiler@nyx.cs.du.edu (Wyatt Miler)\nSubject: Diaspar Virtual Reality Network Announcement\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 185\n\n\nPosted to the Internet by wmiler@nyx.cs.du.edu\n \n000062David42      041493003715\n \n             The Lunar Tele-operation Model One (LTM1)\n             =========================================\n                        By David H. Mitchell\n                          March 23, 1993\n \nINTRODUCTION:\n \nIn order to increase public interest in space-based and lunar operations, a\nreal miniature lunar-like environment is being constructed on which to test\ntele-operated models. These models are remotely-controlled by individuals\nlocated world-wide using their personal computers, for EduTainment\npurposes.\nNot only does this provide a test-bed for simple tele-operation and\ntele-presence activities but it also provides for the sharing of\ninformation\non methods of operating in space, including, but not limited to, layout of\na\nlunar colony, tele-operating machines for work and play, disseminating\neducational information, providing contests and awards for creativity and\nachievement and provides a new way for students worldwide to participate in\nTwenty-First century remote learning methods.\n \nBecause of the nature of the LTM1 project, people of all ages, interests\nand\nskills can contribute scenery and murals, models and structures,\ninterfacing\nand electronics, software and graphics. In operation LTM1 is an evolving\nplayground and laboratory that can be used by children, students and\nprofessionals worldwide. Using a personal computer at home or a terminal at\na participating institution a user is able to tele-operate real models at\nthe\nLTM1 base for experimental or recreational purposes. Because a real\nfacility\nexists, ample opportunity is provided for media coverage of the\nconstruction\nof the lunar model, its operation and new features to be added as suggested\nby the users themselves.\n \nThis has broad inherent interest for a wide range of groups:\n - tele-operations and virtual reality research\n - radio control, model railroad and ham radio operation\n - astronomy and space planetariums and science centers\n - art and theater\n - bbs and online network users\n - software and game developers\n - manufacturers and retailers of model rockets, cars and trains\n - children\n - the child in all of us\n \nLTM1 OVERALL DESIGN:\n \nA room 14 feet by 8 feet contains the base lunar layout. The walls are used\nfor murals of distant moon mountains, star fields and a view of the earth.\nThe \"floor\" is the simulated lunar surface. A global call for contributions\nis hereby made for material for the lunar surface, and for the design and\ncreation of scale models of lunar colony elements, scenery, and\nmachine-lets.\n \n The LTM1 initial design has 3 tele-operated machinelets:\n 1. An SSTO scale model which will be able to lift off, hover and land;\n 2. A bulldozerlet which will be able to move about in a quarry area; and\n 3. A moon-train which will traverse most of the simulated lunar surface.\n \n Each machinelet has a small TV camera utilizing a CCD TV chip mounted on\n it. A personal computer digitizes the image (including reducing picture\n content and doing data-compression to allow for minimal images to be sent\n to the operator for control purposes) and also return control signals.\n \nThe first machinelet to be set up will be the moon-train since model trains\nwith TV cameras built in are almost off-the-shelf items and control\nelectronics for starting and stopping a train are minimal. The user will\nreceive an image once every 1 to 4 seconds depending on the speed of their\ndata link to LTM1.\n \nNext, an SSTO scale model with a CCD TV chip will be suspended from a\nservo-motor operated wire frame mounted on the ceiling allowing for the\nSSTO\nto be controlled by the operator to take off, hover over the entire lunar\nlandscape and land.\n \nFinally, some tank models will be modified to be CCD TV chip equipped\nbulldozerlets. The entire initial LTM1 will allow remote operators\nworldwide\nto receive minimal images while actually operating models for landing and\ntakeoff, traveling and doing work. The entire system is based on\ncommercially\navailable items and parts that can be easily obtained except for the\ninterface electronics which is well within the capability of many advanced\nham radio operator and computer hardware/software developers.\n \nBy taking a graphically oriented communications program (Dmodem) and adding\na tele-operations screen and controls, the necessary user interface can be\nprovided in under 80 man hours.\n \nPLAN OF ACTION:\n \nThe Diaspar Virtual Reality Network has agreed to sponsor this project by\nproviding a host computer network and Internet access to that network.\nDiaspar is providing the 14 foot by 8 foot facility for actual construction\nof the lunar model. Diaspar has, in stock, the electronic tanks that can be\nmodified and one CCD TV chip. Diaspar also agrees to provide \"rail stock\"\nfor the lunar train model. Diaspar will make available the Dmodem graphical\ncommunications package and modify it for control of the machines-lets.\nAn initial \"ground breaking\" with miniature shovels will be performed for\na live photo-session and news conference on April 30, 1993. The initial\nmodels will be put in place. A time-lapse record will be started for\nhistorical purposes. It is not expected that this event will be completely\nserious or solemn. The lunar colony will be declared open for additional\nbuilding, operations and experiments. A photographer will be present and\nthe photographs taken will be converted to .gif images for distribution\nworld-wide to major online networks and bbs's. A press release will be\nissued\ncalling for contributions of ideas, time, talent, materials and scale\nmodels\nfor the simulated lunar colony.\n \nA contest for new designs and techniques for working on the moon will then\nbe\nannounced. Universities will be invited to participate, the goal being to\nfind instructors who wish to have class participation in various aspects of\nthe lunar colony model. Field trips to LTM1 can be arranged and at that\ntime\nthe results of the class work will be added to the model. Contributors will\nthen be able to tele-operate any contributed machine-lets once they return\nto\ntheir campus.\n \nA monthly LTM1 newsletter will be issued both electronically online and via\nconventional means to the media. Any major new tele-operated equipment\naddition will be marked with an invitation to the television news media.\nHaving a large, real model space colony will be a very attractive photo\nopportunity for the television community. Especially since the \"action\"\nwill\nbe controlled by people all over the world. Science fiction writers will be\ninvited to issue \"challenges\" to engineering and human factors students at\nuniversities to build and operate the tele-operated equipment to perform\nlunar tasks. Using counter-weight and pulley systems, 1/6 gravity may be\nsimulated to some extent to try various traction challenges.\n \nThe long term goal is creating world-wide interest, education,\nexperimentation\nand remote operation of a lunar colony. LTM1 has the potential of being a\nlong\nterm global EduTainment method for space activities and may be the generic\nexample of how to teach and explore in many other subject areas not limited\nto space EduTainment. All of this facilitates the kind of spirit which can\nlead to a generation of people who are ready for the leap to the stars!\n \nCONCLUSION:\n \nEduTainment is the blending of education and entertainment. Anyone who has\never enjoyed seeing miniatures will probably see the potential impact of a\nglobally available layout for recreation, education and experimentation\npurposes. By creating a tele-operated model lunar colony we not only create\nworld-wide publicity, but also a method of trying new ideas that require\nreal\n(not virtual) skills and open a new method for putting people's minds in\nspace.\n \n \nMOONLIGHTERS:\n \n\"Illuminating the path of knowledge about space and lunar development.\"\nThe following people are already engaged in various parts of this work:\nDavid42, Rob47, Dash, Hyson, Jzer0, Vril, Wyatt, The Dark One, Tiggertoo,\nThe Mad Hatter, Sir Robin, Jogden.\n \nCome join the discussion any Friday night from 10:30 to midnight PST in\n \nDiaspar Virtual Reality Network. Ideas welcome!\n \nInternet telnet to: 192.215.11.1 or diaspar.com\n \n(voice)  714-376-1776\n(2400bd) 714-376-1200\n(9600bd) 714-376-1234\n \nEmail inquiries to LTM1 project leader Jzer@Hydra.unm.edu\nor directly to Jzer0 on Diaspar.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6089, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: was:Go Hezbollah!\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 81\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <1993Apr16.130037.18830@ncsu.edu>, hernlem@chess.ncsu.edu (Brad Hernlem) writes:\n|> \n|> In article <2BCE0918.6105@news.service.uci.edu>, tclock@orion.oac.uci.edu (Tim Clock) writes:\n|> |> \n|> |> Are you suggesting that, when guerillas use the population for cover, Israel\n|> |> should totally back down? So...the easiest way to get away with attacking\n|> |> another is to use an innocent as a shield and hope that the other respects\n|> |> innocent lives?\n|> \n|> Tell me Tim, what are these guerillas doing wrong? Assuming that they are using\n|> civilians for cover, are they not killing SOLDIERS in THEIR country? If the\n|> buffer zone is to prevent attacks on Israel, is it not working? Why is it \n|> further neccessary for Israeli guns to pound Lebanese villages? Why not just\n|> kill those who try to infiltrate the buffer zone? You see, there is more to\n|> the shelling of the villages.... it is called RETALIATION... \"GETTING BACK\"\n|> ...\"GETTING EVEN\". It doesn't make sense to shell the villages. The least\n|> it shows is a reckless disregard by the Israeli government for the lives of\n|> civilians.\n\nIf you recall, a subject was raised some weeks ago that touched upon\nthis.  When someone claimed that guerillas were manifestations of\npopular sentiment, the topic arose:\"When does a civilian stop\nbecoming a civilian?\".  If he houses and shelters guerillas of\nhis own free will, aiding them, has he violated his \"civilian\" status?\n\n|> |> What? So the whole bit about attacks on Israel from neighboring Arab states \n|> |> can start all over again? While I also hope for this to happen, it will\n|> |> only occur WHEN Arab states show that they are *prepared* to take on the \n|> |> responsibility and the duty to stop guerilla attacks on Israel from their \n|> |> soil. They have to Prove it (or provide some \"guaratees\"), there is no way\n|> |> Israel is going to accept their \"word\"- not with their past attitude of \n|> |> tolerance towards \"anti-Israel guerillas in-residence\".\n|> \n|> If Israel is not willing to accept the \"word\" of others then, IMHO, it has\n|> no business wasting others' time coming to the peace talks. \n\nBut don't you see that the same statement can be made both ways?\nIf Lebanon was interested in peace then it should accept the word\nof Israel that the attacks were the cause for war and disarming the\nHizbollah will remove the cause for its continued occupancy.  Afterall,\nIsrael has already staged two parts of the withdrawal from areas\nit occupied in Lebanon during SLG.\n\n|> Tim, you are ignoring the fact that the Palestinians in Lebanon have been\n|> disarmed. Hezbollah remains the only independent militia. Hezbollah does\n|> not attack Israel except at a few times such as when the IDF burned up\n|> Sheikh Mosavi, his wife, and young son. Of course, if Israel would withdraw\n|> from Lebanon and stop assassinating people and shelling villages they wouldn't\n|> make the Lebanese so mad as to do that. Furthermore, with Hezbollah \n|> subsequently disarmed, it would not be possible.\n\nThat is not exactly true.  The Hizbollah and their affiliated groups\nhave made several attempts to infiltrate the border of Israel.\n\n|> |> It has not. Without the support, and active involvement, of Syria,\n|> |> Lebanon would not have been able to accomplish all that has occurred.\n|> |> Once Syria leaves who is to say that Lebanon will be able to retain \n|> |> control? If Syria stays thay may be even more dangerous for Israel.\n|> \n|> Tim, when is the last time that you recall any trouble on the Syrian border?\n|> Not lately, eh?\n|> \n|> Israel knows very well that the Syrians are able to restrain ALL who would use\n|> territory under their control to attack Israel. While Lebanon would be better\n|> off with Syria and Israel out of its borders, the presence of Syrian troops\n|> in Lebanon has meant a sharp decrease in attacks on Israeli territory (not on\n|> Israeli troops in Lebanon, however. Please note the distinction) in the\n|> past two years.\n\nTrue, but the Syrians did allow (until at least 1984) guerillas to operate\nin the areas that were under their control, provided that those guerillas\nwere attacking Israeli lines.\n\nThe problem is that Syria is also not as stable a partner for long term\npeace as others in the area might be.\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6090, "properties": {"category": "talk.religion.misc", "text": "From: weinss@rs6101.ecs.rpi.edu (Stephen Andrew Weinstein)\nSubject: New Religion Forming -- Sign Up\nSummary: Read it.  Worthwhile.  Laughs & serious questions about real religion.\nKeywords: Eveism, religion, \nNntp-Posting-Host: rs6101.ecs.rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy NY\nLines: 102\n\nLet me begin by saying I think this is the world's first religion to use\nthe net as its major recruitment medium.  Therefore, even if this\nreligion does not take off, its founding members will be very important\nhistorically as this method of soliciting membership will eventually become \ncommon.\n\nThe basis of this religion is to apply various aspects of current conventional\nmorality to the characters in Genesis and Exodus but assume that the Bible's\naccounts of the facts and historical events is correct.\n\nFor example,\n\nStory of Adam and Eve:\nAdam and Eve are in Garden of Eden naked and ignorant.  Have unlimited\nsupply of food provided, but no clothing, jobs, or knowledge.  God says\nnot to eat fruit of tree of knowledge.  They do anyway, then try to hide \nin bushes.  God finds them and forces them out of Garden.\n(There are several different stories on what they were doing while naked in\nthe bushes that might have angered God.)\n\nTraditional Philosophy:\n1. The only reason you need knowledge or a job is to eat.  If someone else will\nprovide you with food, then you can be stupid and unemployed and it's OK. This\nis why married women usually didn't work until recent decades.\n2. Authority figures, such as God, whoever was behind the Vietnam War, Hitler \nand slaveowners, are always right and should be blindly followed without \nquestion by ordinary people, who can't make decisions for themselves.\n\nInterpretation of events based on Traditional Philosophy:\nThey were not supposed to eat the fruit.  They should have done whatever God\ntold them to.  Like small children, they had their needs provided for and were\nobligated to do whatever their \"Father\" said to.  Being forced to leave the \nGarden and work in order to obtain food was a punishment.\n\nLessons from Traditional Interpretation:\n1.  Ignorance is good.  Knowledge is bad, but tempting.\n2.  Having food provided for you for nothing (read \"welfare\") is ideal.  Get-\nting a job and feeding yourself with what you earn is punishment.\n3.  Public nudity is good.  Covering up is bad.\n4.  Authority figures are intrinsically right.  Normal people are dumb and \nshould do whatever they are told without question.  They should not think for \nthemselves.\n5.  People in subordinate positions are especially obligated to refrain from\nlearning.  For example, it should be illegal for slaves to learn to read.\n\n1990's philosophy:\n1.  People should seek education and employment outside the home, unless\nnamed \"Hillary Clinton\" or \"Murphy Brown\".\n2.  People should use common sense.  They should not kill other people \n(binding of Issac, wars, Holocaust, etc.) just because they are told to.\n\nInterpretation of events based on current philosophy:\nThey were supposed to eat the fruit.  God gave wanted them to seek knowledge\nrather than be handed it on a silver platter.  Once they had gained knowledge\nand (by seeking it) showed their ability to make mature decisions for them-\nselves, they no longer needed to be treated like little children and were \nREWARDED by being allowed into the \"real world.\"\n\nLessons from new interpretation:\n1.  Ignorance is bad.  Knowledge is good, but must be sought.\n2.  Having food provided for you for nothing (read \"welfare\") is at best\na temporary measure.  Getting a job and feeding yourself with what you earn\nis ideal.\n3.  Public nudity is bad.  Covering up is good.\n4.  Authority figures are often wrong.  Normal people are intelligent and\nshould consider whether the instructions are really a good idea and \"alter\nor abolish\" bad governments.  They should think for themselves.\n5.  People in subordinate decisions are often discouraged from knowledge\nbut should seek it anyway, and all the harder.  For example, poor children \nwithout good schools should work especially hard in order to make a better\nlife for their children (and themselves).\n\nI have tentatively named this new philosophy \"The Church of Eveism\" because\nEve's decision to eat the apple is man[sic]kind's first good decision, instead\nof its first bad one, as traditionally believed.  She is therefore clearly\na protagonist.  God at first appears evil, for telling people not to seek \nknowledge but on deeper analysis is also a protagonist.  As God rewarded the\ndecision to defy him, and provided the tree in the first place, the intention\nand desire were clearly to have the knowledge be obtained, but to delay it \nuntil it was actively sought.\n\n---End serious discussion.  Begin humor.--\n\nSave this post to disk (or file server).  Someday it will be considered the\nmost important writing since the 10 Commandments.  You want an original copy.\n\nStay tuned for the RFD on soc.religion.eveism...\nCan I get a tax deduction for money I donate to this organization?\n\n--Return to serious discussion when posting follow-ups.--\n\nStephen Weinstein\nweinss@rpi.edu\n\n\n\n\n\n\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.288+0000", "event": "documents", "entityId": 6091, "properties": {"category": "rec.motorcycles", "text": "From: deeds@vulcan1.edsg.hac.com ( Dean Deeds)\nSubject: GS1100E (was Re: buying advice needed)\nReply-To: deeds@vulcan1.UUCP ( Dean Deeds)\nOrganization: Hughes Aircraft Co., El Segundo, CA\nLines: 45\n\nIn article <Afoi=te00j_jAnvopV@cs.cmu.edu> Dale.James@cs.cmu.edu writes:\n>GS1100E.  It's a great bike, but you'd better be damn careful!  \n>I got a 1983 as my third motorcycle, \n[...deleta...]\n>The bike is light for it's size (I think it's 415 pounds); but heavy for a\n>beginner bike.\n\nHeavy for a beginner bike it is; 415 pounds it isn't, except maybe in\nsome adman's dream.  With a full tank, it's in the area of 550 lbs,\ndepending on year etc.\n\n>You're 6'4\" -- you should have no problem physically managing\n>it.  The seat is roughly akin to a plastic-coated 2by6.  Very firm to very\n>painful, depending upon time in the saddle.\n\nThe 1980 and '81 versions had a much better seat, IMO.\n\n>The bike suffers from the infamous Suzuki regulator problem.  I have so far\n>avoided forking out the roughly $150 for the Suzuki part by kludging in\n>different Honda regulator/rectifier units from junkyards.  The charging system\n>consistently overcharges the battery.  I have to refill it nearly weekly.\n>This in itself is not so bad, but battery access is gained only after removing\n>the seat, the tank, and the airbox.\n\nMy regulator lasted over 100,000 miles, and didn't overcharge the battery.\nThe wiring connectors in the charging path did get toasty though,\ntending to melt their insulation.  I suspect they were underspecified;\nit didn't help that they were well removed from cool air.\n\nBattery access on the earlier bikes doesn't require tank removal.\nAfter you learn the drill, it's pretty straightforward.\n\n[...]\n>replacement parts, like all Suzuki parts, are outrageously expensive.\n\nHaving bought replacement parts for several brands of motorcycles,\nI'll offer a grain of salt to be taken with Dale's assessment.\n\n[...]\n>Good luck, and be careful!\n>--Dale\n\nSentiments I can't argue with...or won't...\n-- Dean Deeds\n\tdeeds@vulcan1.edsg.hac.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6092, "properties": {"category": "rec.sport.hockey", "text": "From: DMJEWLAL@CHEMICAL.watstar.uwaterloo.ca (Derrick M. Jewlal)\nSubject: Re: plus minus stat\nLines: 45\nOrganization: University of Waterloo\n\nIn article <1993Apr14.174828.13445@ramsey.cs.laurentian.ca> maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n>From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\n>Subject: Re: plus minus stat\n>Date: Wed, 14 Apr 1993 17:48:28 GMT\n>In <DREIER.93Apr14092901@jacobi.berkeley.edu> dreier@jacobi.berkeley.edu (Roland Dreier) writes:\n>\n>>Selanne's +7 leads the Jets; Teppo Numminen is +4.  Who do you think\n>>is better defensively?  Ron Francis of the Penguins is +5, although he\n>>has 97 points, while Jaromir Jagr has only 87 points but is +30.  Is\n>>Jagr really better on defense than Francis?  And how exactly should we\n>>interpret the fact that Mario Lemieux has by far the highest +/- in\n>>the league?  Does he get the Selke as well as the Ross?\n>\n>The plus/minus does not measure defense alone.  It attempts to measure\n>a  player's  total contribution to the team effort.  And certainly, it\n>is far from perfect and my posting never implied otherwise.  All  that\n>my  posting  suggested  was  that  the +/- was a better indicator of a\n>player's effectiveness, when examined in the context of that  player's\n>team's  performance, than mere scoring totals alone.  And as for Mario\n>getting the Selke - why not?  After Doug Gilmour, I would rather  have\n>Lemieux  on the ice in any situation (other than as an enforcer, obvi-\n>ously) than any player in the game.  I used to call the Selke the \"Bob\n>Gainey  Award\".   It  came  about as a result of the statement made by\n>Anatoli Tarasov: \"Bob Gainey is the best hockey player in the  world.\"\n>I am sure that Tarasov was either misquoted, originally, or had a tiny\n>bit too much Vodka and was toying with a reporter.  In any event,  the\n>NHL  decided  to honour one dimensional checkers along with one dimen-\n>sional scorers.  Maybe the league should start awarding the \"Doug Gil-\n>mour Award\" anually  to the league's most effective, all-round player.\n>\n>cordially, as always,\n>\n>rm\n>\n>-- \n>Roger Maynard \n>maynard@ramsey.cs.laurentian.ca \n\n\tHey, what about the \"Roger Maynard Award\" for the most\n\tannoying fan....?\n======================================================== \nDerrick M. Jewlal \n34 Laurel St. , Apt. #1 \nWaterloo \n747 4804 \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6093, "properties": {"category": "comp.windows.x", "text": "From: gerard@dps.co.UK (Gerard O'Driscoll)\nSubject: Re: Mix GL with X (Xlib,Xt,mwm)\nOrganization: The Internet\nLines: 12\nTo: xpert@expo.lcs.mit.edu\n\n\npyeatt@Texaco.com writes:\n\n>> There is a widget already defined for GL.  It is the GlxMDraw (motif) or\n>> GlxDraw (athena) widget.  It is similar to a XmDrawingArea, except that it\n>> allows you to use GL calls to render into the window.  Look at glxlink,\n>> glxunlink, glxgetconfig, and glxwinset in the man pages.\n\nWhere do I get hold of these widgets?\n\n \tGerard O'Driscoll (gerard.odriscoll@dps.co.uk)\n \tDu Pont Pixel Systems Ltd.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6094, "properties": {"category": "comp.graphics", "text": "From: emm@tamarack202.cray.com (Mike McConnell)\nSubject: Interleaf to CGM\nOriginator: emm@tamarack202\nKeywords: Interleaf, CGM, ileaf\nLines: 13\nNntp-Posting-Host: tamarack202.cray.com\nOrganization: Cray Research, Inc.\n\n\nHas anyone successfully converted Interleaf graphics to CGM, or even heard\nof it being done????\n\n\nWe'd love to hear about it.\n\n-Mike McConnell\n\nemm@cray.com\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6095, "properties": {"category": "sci.space", "text": "From: gnb@leo.bby.com.au (Gregory N. Bond)\nSubject: Re: Old Spacecraft as NAvigation Beacons!\nIn-Reply-To: nsmca@aurora.alaska.edu's message of 21 Apr 93 08:15:55 GMT\nNntp-Posting-Host: leo-gw\nOrganization: Burdett, Buckeridge & Young, Melbourne, Australia\nLines: 17\n\nIn article <1993Apr21.001555.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n   Other idea for old space crafts is as navigation beacons and such..\n   Why not??\n\nBecause to be any use as a nav point you need to know -exactly- where\nit is, which means you either nail it to something that doesn't move\nor you watch it all the time.  Neither of which is possible on a\ndeactivated spacecraft.  Then you have to know exactly how far away\nfrom it you are; this may or may not be possible with the hardware on\nboard. \n\nApart from which, there is absolutely no need for navigation beacons.\n--\nGregory Bond <gnb@bby.com.au> Burdett Buckeridge & Young Ltd Melbourne Australia\n   Knox's 386 is slick.            Fox in Sox, on Knox's Box\n   Knox's box is very quick.       Plays lots of LSL. He's sick!\n(Apologies to John \"Iron Bar\" Mackin.)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6096, "properties": {"category": "comp.sys.mac.hardware", "text": "From: st890123@pip.cc.brandeis.edu (Joe Dropkin)\nSubject: Re: Apple announce 3 new performas (versions of the 400)\nReply-To: st890123@pip.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 12\n\nIn article <1993Apr12.151718.8485@desire.wright.edu>, demon@desire.wright.edu (Not a Boomer) writes:\n>\tApple announced that it will start selling three new vesions of its\n>Performa 400.  The new machines will have built-in modems and bundled software.\n>\n>\tThe new models will be the 405, 430 and 450.\n>\n>\tPrices are not set by Apple, but by the retailer.  The prices of the\n>new machines are expected to range from $1300-$1900.\n\nWhat kind of post is this?  If you have something substantial to tell the world,\nthen at least give us details!  So what if they are coming out with new Macs,\nthey always do that... what's new about these models?  Etc...\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6097, "properties": {"category": "rec.motorcycles", "text": "From: jamesf@apple.com (Jim Franklin)\nSubject: Re: Tracing license plates of BDI cagers?\nOrganization: Apple Computer, Inc.\nLines: 30\n\nIn article <1993Apr09.182821.28779@i88.isc.com>, jeq@lachman.com (Jonathan\nE. Quist) wrote:\n> \n\n> You could file a complaint for dangerous operation of a motor vehicle,\n> and sign it.  Be willing to show up in court if it comes to it.\n\nNo... you can do this? Really? The other morning I went to do a lane change\non the freeway and looked in my mirror, theer was a car there, but far\nenough behind. I looked again about 3-5 seconds later, car still in same\nposition, i.e. not accelerating. I triple check with a head turn and decide\nI have plenty of room, so I do it, accelerating. I travel about 1/4 mile\nstaying ~200\nfeet off teh bumper of the car ahead, and I do a casual mirror check. This\nguy is RIGHT on my tail, I mean you couldn't stick a hair between my tire &\nhis fender. I keep looking in the mirror at him a,d slowly let off teh\nthrottle. He stays there until I had lost about 15mph and then comes around\nme and cuts me off big time. I follow him for about 10 miles and finally\nget bored and turn back into work. \n\nI can file a complaint about this? And actually have the chance to have\nsomething done? How? Who? Where?\n\njim\n\n*   Jim Franklin * jamesf@apple.com        Jim Bob & Sons                 *\n* 1987 Cagiva Alazzurra 650         |    .signature remodling       *\n* 1969 Triumph 650 (slalom champ) |     Low price$ Quality workman-     * \n* DoD #469               KotP(un) |               ship       * \n                                        Call today for free estimit\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6098, "properties": {"category": "misc.forsale", "text": "From: hickson@pop.psu.edu (Darryl Hickson)\nSubject: 16 Space Rack FOR SALE (Lower Price)\nArticle-I.D.: genesis.1prc8l$u63\nDistribution: usa\nOrganization: Penn State Population Research Institute\nLines: 7\nNNTP-Posting-Host: zelinski.pop.psu.edu\n\nI am posting this message for a friend of mine who does not have a computer\naccount, if you have any questions please call Dan at (814)238-1804.\n\nEquipment Rack For Sale\n=======================\n16 space EIA rack(19 in), carpet covered, on wheels.\n$125 + shipping\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6099, "properties": {"category": "rec.sport.hockey", "text": "From: nlu@Xenon.Stanford.EDU (Nelson Lu)\nSubject: SHARKS REVIEW Part 1: Goaltenders\nOrganization: Computer Science Department, Stanford University.\nLines: 80\n\nAs the Sharks' season came to a close tonight, I will start a series of posts,\ntrying to revisit the players, the trades, the moves, etc., that went through\nfor the Sharks for the past season.  If you are uninterested, since I will\nhave the words SHARKS REVIEW in the subject heading in these postings, you can\nkill them.\n\nI will first try to evaluate how the players did.  These ratings, of course,\nare subject to my own biases, but I hope that I can try to be as objective as\npossible.  I will evalute players who finished the season with the Sharks\nand/or did not play for another NHL team this season.\n\nThus, then, let's go to the goaltenders...\n\n#1\tBRIAN HAYWARD\t\tSeason:\t11th\nAcquired:\t'91-92 from Minnesota in dispersal draft\nGrade:\t\tP (D)\n\nIt is sad that his career has to come to this dim an end, a career that\nfeatured sharing three Jennings Trophies (with Patrick Roy, in '87, '88, and\n'89).  It would indeed be unfair for me to do anything but give him a passing\ngrade (and skip the letter grading), but he had simply been awful on ice this\nyear, save for a bright spot or two, and even if he had been healthy, he would\nnot be any more than the 3rd-string goalie.\n\nBut Hayward was a classy individual, who also figured in on the Sharks' first\never victory, the 3rd game of the season last year against the Calgary Flames.\nAs he retires, the fans will remember what a good guy he was.\n\n#30\tJEFF HACKETT\t\tSeason: 3rd\nAcquired:\t'91-92, from N. Y. Islanders in expansion draft\nGrade:\t\tC\n\nHackett, after (deservedly) winning the team MVP honors last season, simply\nwasted the year.  Other than a few good spots (57 saves against Los Angeles,\nalmost-shutout against Tampa Bay, etc.), Hackett, finishing with 85.6% save\npercentage and a 5.28 GAA, watched his status go from the team's #1 goalie to\nbench decoration at the end of the season.  He was expected, early, to carry\nthe team along; instead, he apparently became frustrated, but the an early\ninjury that forced him to miss 12 games may have been a contributing factor,\nbut upon return, he simply wasn't up to the task.  He may not return next\nyear.\n\n#31\tWADE FLAHERTY\t\tSeason: 1st (still eligible as rookie)\nAcquired:\t'91-92, signed as undrafted free agent\nGrade:\t\tI (A-)\n\nIt is pretty hard to evaluate a goaltender on just one game alone, thus the\nincomplete grade, but yet in the one start that he did get (against the Calgary\nFlames), Flaherty was nothing but sharp for at least two periods.  He started\nthe season poorly in Kansas City, but finished strong, prompting the Blades'\nowner Ron Parker to comment that he should be a candidate for the IHL MVP\nhonors.  The upcoming IHL playoffs would be a major challenge for him as he\ntries to make it into the NHL; last year, he was a capable backup for Arturs\nIrbe in the throughout the season and in the Turner Cup playoffs, picking up\nall-star honors along with Irbe; now it's time for him to show that he can\nshare the job with Irbe next year, because with prospects Dan Ryder, Trevor\nRobins, and Scott Cashman coming along, if he doesn't make it next year, he\nmay not ever.\n\n#32\tARTURS IRBE\t\tSeason:\t1st\nAcquired:\t'91-92, from Minnesota in dispersal draft\nGrade:\t\tB+\n\nI may yet be overly critical of Irbe in a year that he clearly established that\nhe's a bona fide NHL goaltender, perhaps a bona fide #1 goaltender.  He has\nprovided most of the little highlight footage that the Sharks team had, getting\nthe team's first ever shut-out against the Los Angeles Kings on December 26.\nHe has been fearless in and out of the net, aggressively playing the puck and\nmaking passes, reminding people of a young Ron Hextall (except, of course, the\ngoonism).  Yet he still needs to develop more consistency, which is hard to do\nwith such a bad defense in front of him, but if the Sharks are to challenge for\na playoff spot next season, Irbe's the key, as he demonstrated in being named\nas a star of the game 13 times in 32 starts.\n\n===============================================================================\nGO CALGARY FLAMES!  Al MacInnis for Norris!  Gary Roberts for Hart and Smythe!\nGO EDMONTON OILERS!  Go for playoffs next year!  Stay in Edmonton!\n===============================================================================\nNelson Lu (claudius@leland.stanford.edu)\nrec.sport.hockey contact for the San Jose Sharks\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6100, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: debrown@hubcap.clemson.edu (David E. Brown)\nSubject: Re: Drivers for Stealth 24\nOrganization: Clemson University\nLines: 16\n\nDoug Ward writes:\n\n>I recently purchased a Diamond Stealth 24 Video card and received\n>the wrong drivers.  Does anyone know where I can ftp the proper\n>drivers?  The dstlth file at cica does not work with\n>this video card.  Please respond to doug@sun.sws.uiuc.edu\n\n>Thank you\n>Doug Ward\n\nIf you want to get them and get them now (also the most up to date) use\nthe BBS at 1-408-439-9096.  They may take an hour to download so do it\nwhen rates are low.  Yeah, I know it costs but locking up your system\ngets old quick.  Maybe someone has them on the net.  I've got the\nStealth drivers.\n\t\t\t\t\tDavid\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6101, "properties": {"category": "sci.electronics", "text": "From: kludge@grissom.larc.nasa.gov (Scott Dorsey)\nSubject: Re: Log/stereo high quality pot (hi-fi)\nOrganization: NASA Langley Research Center and Reptile Farm\nLines: 20\nNNTP-Posting-Host: grissom.larc.nasa.gov\n\nIn article <1993Apr5.172839.22714@eng.cam.ac.uk> cmh@eng.cam.ac.uk (C.M. Hicks) writes:\n>cobust@seagoon.ee.sun.ac.za (Cobus Theunissen) writes:\n>\n>>Hi there,\n>\n>>I am looking for a high quality log/stereo 10k pot for an audio \n>>preamplifier.  The design specifies Alps RKGA-2 10k AX2, but I cannot\n>>find it anywhere!  Any suggestions?\n>\n>The best pots around (IMHO) are made by Penny & Giles in the UK. Their\n>basic model has a solid brass case, and conductive plastic elements\n>matched to 0.5dB across the whole rotation. The downside is that they\n>cost upwards of 50 quid each :-(\n\nThe P&G pots are very good.  The Alps ones are usually carried by\nthe same folks who run the Audio Amateur magazine.  \n\nI'll also recommend the Noble potentiometers, if you don't mind weird\nmetric sizes on everything.\n--scott\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6102, "properties": {"category": "alt.atheism", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: University of Wisconsin Eau Claire\nLines: 38\n\n[reply to frank@D012S658.uucp (Frank O'Dwyer)]\n \n>>I'm one of those people who does not know what the word objective means\n>>when put next to the word morality.  I assume its an idiom and cannot\n>>be defined by its separate terms.\n \n>>Give it a try.\n \n>Objective morality is morality built from objective values.\n \nFrom A Dictionary of Philosophy, by Anthony Flew:\n \n\"Objectivism:  The belief that there are certain moral truths that would\nremain true whatever anyone or everyone thought or desired.  For\ninstance, 'No one should ever deliberately inflict pain on another\nsimply to take pleasure in his suffering' might be thought of as a\nplausible example.  Even in a world of sadists who all rejected it, the\ncontention remains true, just as '5 + 7 = 12' remains correct even if\nthere is no one left to count.  The problem for the objectivist is to\ndetermine the status of moral truths and the method by which they can be\nestablished.  If we accept that such judgements are not reports of what\nis but only relate to what ought to be (see naturalistic fallacy) then\nthey cannot be proved by any facts about the nature of the world.  Nor\ncan they be analytic, since this would involve lack of action-guiding\ncontent;  'One ought always to do the right thing' is plainly true in\nvirtue of the vords involved but it is unhelpful as a practical guide to\naction (see analytic and synthetic).  At this point the objectivist may\ntalk of 'self-evident truths', but can he deny the subjectivist's claim\nthat self-evidence is in the mind of the beholder?  If not, what is left\nof the claim that some moral judgements are true?  THe subjectivist may\nwell feel that all that remains is that there are some moral judgements\nwith which he would wish to associate himself.  To hold a moral opinion\nis, he suggests, not to know something to be true but to have\npreferences regarding human activity.\"\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6103, "properties": {"category": "comp.graphics", "text": "Subject: E-mail of Michael Abrash?\nFrom: gmontem@eis.calstate.edu (George A. Montemayor)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 0\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6104, "properties": {"category": "rec.motorcycles", "text": "From: cervi@oasys.dt.navy.mil (Mark Cervi)\nSubject: Re: ++BIKE SOLD OVER NET 600 MILES AWAY!++\nOrganization: NSWC, Carderock Division, Annapolis, MD, USA\nLines: 15\n\nIn article <6130331@hplsla.hp.com> kens@hplsla.hp.com (Ken Snyder) writes:\n>\n>> Any other bikes sold long distances out there...I'd love to hear about\n>it!\n\nI bought my Moto Guzzi from a Univ of Va grad student in Charlottesville\nlast spring.\n\n\t     Mark Cervi, cervi@oasys.dt.navy.mil, (w) 410-267-2147\n\t\t DoD #0603  MGNOC #12998  '87 Moto Guzzi SP-II\n      \"What kinda bikes that?\" A Moto Guzzi. \"What's that?\" Its Italian.\n-- \n\n\tMark Cervi, CARDEROCKDIV, NSWC Code 852, Annapolis, MD  21402\n\t\t   cervi@oasys.dt.navy.mil, (w) 410-267-2147\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6105, "properties": {"category": "comp.graphics", "text": "From: tdawson@engin.umich.edu (Chris Herringshaw)\nSubject: Newsgroup Split\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 11\nDistribution: world\nNNTP-Posting-Host: po.engin.umich.edu\n\nConcerning the proposed newsgroup split, I personally am not in favor of\ndoing this.  I learn an awful lot about all aspects of graphics by reading\nthis group, from code to hardware to algorithms.  I just think making 5\ndifferent groups out of this is a wate, and will only result in a few posts\na week per group.  I kind of like the convenience of having one big forum\nfor discussing all aspects of graphics.  Anyone else feel this way?\nJust curious.\n\n\nDaemon\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6106, "properties": {"category": "sci.electronics", "text": "From: pauls@trsvax.tandy.com\nSubject: Re: Need source for old Radio Shack ste\nNf-ID: #R:acs.ucalgary.ca:27323:trsvax:288200083:000:125\nNf-From: trsvax.tandy.com!pauls    Apr 21 09:36:00 1993\nLines: 5\n\n\n It's made by Rohm. (as is all BAxxx parts). Call 714-855-2131 and ask if\n you can get a sample (it's only like a $2 part).\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6107, "properties": {"category": "talk.religion.misc", "text": "From: cj@eno.esd.sgi.com (C.J. Silverio)\nSubject: Re: ABORTION and private health coverage -- letters regarding\nReply-To: cj@sgi.com\nOrganization: SGI Developer Docudramas\nLines: 20\n\n\n<DGS4@psuvm.psu.edu> writes:\n| For an illustrative example in the opposite direction, it may be possible\n| to ADD services to an insurance contract and REDUCE the premium.  If you\n| add preventative services and this reduces acute care use, then the total\n| premium may fall.\n\nWomen who are known not to want abortion services, for example,\nmight be judged to be more likely to require prenatal care &\ncoverage for childbirth... which can be an order of magnitude\nmore expensive than abortion. \n\nThis topic should really be restricted to talk.abortion, which\nexists to relieve t.r.m & t.p.m of abortion flamage.  \n\n---\nC J Silverio\tcj@sgi.com\tceej@well.sf.ca.us\n\"In Melbourne, Fla., meanwhile, anti-abortion marchers rallied to \ncelebrate the death of Dr. David Gunn.  \"Praise God!\" they shouted.\"\n\t      (NY Daily News, Fri. March 12, p. 20)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6108, "properties": {"category": "sci.med", "text": "From: rind@enterprise.bih.harvard.edu (David Rind)\nSubject: Re: Candida Albicans: what is it?\nOrganization: Beth Israel Hospital, Harvard Medical School, Boston Mass., USA\nLines: 19\nNNTP-Posting-Host: enterprise.bih.harvard.edu\n\nIn article <1993Apr19.084258.1040@ida.liu.se> davpa@ida.liu.se\n (David Partain) writes:\n>Someone I know has recently been diagnosed as having Candida Albicans, \n>a disease about which I can find no information.  Apparently it has something\n>to do with the body's production of yeast while at the same time being highly\n>allergic to yeast.  Can anyone out there tell me any more about it?\n\nCandida albicans can cause severe life-threatening infections, usually\nin people who are otherwise quite ill.  This is not, however, the sort\nof illness that you are probably discussing.\n\n\"Systemic yeast syndrome\" where the body is allergic to\nyeast is considered a quack diagnosis by mainstream medicine.  There\nis a book \"The Yeast Connection\" which talks about this \"illness\".\n\nThere is no convincing evidence that such a disease exists.\n-- \nDavid Rind\nrind@enterprise.bih.harvard.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6109, "properties": {"category": "sci.electronics", "text": "From: cmwolf@mtu.edu (Engineer by Day - Asleep by Night)\nSubject: Re: Los Angeles Freeway traffic reports\nOrganization: Michigan Technological University\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 21\n\nCharlie Brett (cfb@fc.hp.com) wrote:\n: You were right the second time, it is KNX. Believe it or not, I also\n: listen to KNX in the evenings here in Colorado! It's kind of fun driving\n: through the country listening to traffic jams on the 405. Back to your\n: original question. Yes, there are sensors just past every on-ramp and\n: off-ramp on the freeways. They're the same sensors used at most stoplights\n: now (coils in the pavement). You might want to give CalTrans a call or\n: even ask Bill Keene (KNX's traffic reporter). I doubt if just anyone can\n: get the information, but it would be worth asking just in case you can\n: get it.\n\nI seem to remember that they sell the information (and a computer connection)\nto anyone willing to pay.\n\nOn the subject of the pavement sensors, can anyone tell me more about them?\n\n-- \n------------------------------------------------------------------------------\nChristopher Wolf             Electrical Engineer                cmwolf@mtu.edu\n------------------------------------------------------------------------------\n         Remember, even if you win the Rat Race - You're still a rat.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6110, "properties": {"category": "comp.graphics", "text": "From: tsa@cellar.org (The Silent Assassin)\nSubject: Re: Please Recommend 3D Graphics Library For Mac.\nOrganization: The Cellar BBS and public access system\nLines: 22\n\nrgc3679@bcstec.ca.boeing.com (Robert G. Carpenter) writes:\n\n> Hi Netters,\n> \n> I'm building a CAD package and need a 3D graphics library that can handle\n> some rudimentry tasks, such as hidden line removal, shading, animation, etc.\n> \n> Can you please offer some recommendations?\n\nIt's really not that hard to do.  There are books out there which explain\neverything, and the basic 3D functions, translation, rotation, shading, and\nhidden line removal are pretty easy.  I wrote a program in a few weeks witht\nhe help of a book, and would be happy to give you my source.\n\tAlso, Quickdraw has a lot of 3D functions built in, and Think pascal\ncan access them, and I would expect that THINK C could as well.  If you can\nfind out how to use the Quickdraw graphics library, it would be an excellent\nchoice, since it has a lot of stuff, and is built into the Mac, so should be\nfast.\n\nLibertarian, atheist, semi-anarchal Techno-Rat.\n\nI define myself--tsa@cellar.org\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6111, "properties": {"category": "sci.crypt", "text": "From: tcmay@netcom.com (Timothy C. May)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: Tin 1.1 PL5\nDistribution: na\nLines: 21\n\n\nWell, it now seems obvious what Professor Denning was doing last fall\nwhen this key escrow trial balloon was raised!\n\nAll the more need for end-to-end encryption schemes that bypass the\ngovernment-approved system.\n\nBy the way, the \"Clipper\" name...isn't this already used for the\nClipper processor from Intergraph? I doubt they're the ones making the\nchip, so a name conflict may be present.\n\n-Tim May\n\n-- \n..........................................................................\nTimothy C. May         | Crypto Anarchy: encryption, digital money,  \ntcmay@netcom.com       | anonymous networks, digital pseudonyms, zero\n408-688-5409           | knowledge, reputations, information markets, \nW.A.S.T.E.: Aptos, CA  | black markets, collapse of governments.\nHigher Power: 2^756839 | Public Key: PGP and MailSafe available.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6112, "properties": {"category": "rec.sport.baseball", "text": "From: pcaster@mizar.usc.edu (Dodger)\nSubject: Re: Dodger Question\nOrganization: University of Southern California, Los Angeles, CA\nLines: 31\nDistribution: usa\nNNTP-Posting-Host: mizar.usc.edu\n\nThe Dodgers have been shopping Harris to other teams in their\nquest for more left-handed pitching.  So far, no takers.\nPersonally, I think Harris is a defensive liability, and he\nhas also led the team in past years for hitting into double\nplays, or at least been among the leaders.\n \nSharperson showed last year that if given a chance to play\nevery day, he can get the job done.  If Sharpy played just\none base every day, say third, he'd also improve defensively.\n \nWallach has helped tremendously on defense, as has Reed.\nThe improved defense is quite noticeable and is having an\neffect on the pitching staff.  Both Astacio AND Martinez\nwere bailed out in recent starts by great defensive plays.\nMartinez pitched into the ninth in a game that might\nhave seen him lifted in the third in past years.\n \nAstacio lasted 7 innings the other day under similar circumstances.\nThe Dodgers are turning double plays, and keeping more balls\nin the infield than last year.  And Piazza has also been great\non defense.  He has thrown out 10 of 14 batters trying to\nsteal and has at least one pick off at first.\n \nWallach, clearly, has contributed to the over all improvement on\ndefense.  But his offense is awful and he has cost the Dodgers\nsome runs.  But I don't think he is as bad as his current average.\nI suspect he will come out of this slump much as Davis and Straw\nseem to have come out of theirs.\n \nDodger\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6113, "properties": {"category": "talk.politics.misc", "text": "From: nadja@weitek.COM (Nadja Adolf)\nSubject: Re: ProLifer Or Terrorist Threat\nOrganization: WEITEK Corporation, Sunnyvale CA\nLines: 16\n\nIn article <C4zA0H.IHD@wetware.com> drieux@wetware.com writes:\n>In article 1pamhpINN7d3@geraldo.cc.utexas.edu, taite@ccwf.cc.utexas.edu () writes:\n>>I'm prepared to instruct individuals in the proper use and \n>>handling of firearms.  \n\n>>As a Desert Storm vet with six years in the National Guard, I have a\n>>great deal of experience in handling weapons and tactical training. \n\n\n>ps: anyone up for a discussion of counter sniper operations?\n>Security drills, Your Friend the Counter Terrorist Operation.....\n\n\nIf twit promises to train them in tactics and weapons handlings, I doubt\nany of them will last long enough to become terrorists. Look for a sudden\nrise in firearms accidents among the Fiends of the Fetus, though.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6114, "properties": {"category": "misc.forsale", "text": "From: ralf@iqsc.COM (Ralf)\nSubject: Monitor For Sale\nOrganization: IQ Software Corp.\nLines: 5\n\n  For sale KFC SVGA Monitor 1024X768 .28DP Non-interlaced\n\n14\" Screen, still under warranty!   $ 295.00 or best offer!\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.289+0000", "event": "documents", "entityId": 6115, "properties": {"category": "talk.politics.mideast", "text": "From: sethr@cbnewsl.cb.att.com (seth.r.rosenthal)\nSubject: Re: Freedom In U.S.A.\nOrganization: AT&T Bell Laboratories\nLines: 51\n\nIn article <1993Apr25.221603.3260@Virginia.EDU>, ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n> jaa12@cunixa.cc.columbia.edu  writes:\n> > Dear Mr. Beyer:\n> > \n> > It is never wise to confuse \"freedom of speech\" with \"freedom\"\n> > of racism and violent deragatory.\"\n> > \n> > It is unfortunate that many fail to understand this crucial \n> > distinction.\n> \n> \tIn fact, if a speach was not offensive to some, its\n> protection under Freedom of speach laws would be useless. It is\n> speach that some find questionable that must be protected, be\n> it religiously blasphemous or inherently racist. It is only\n> through civilized discourse and not scare tactics that one can\n> enlighten those that one perceives to be ignorant. That is the\n> idea behind freedom of expression.\n> \tWhat you find offensive might be perceived as truth by\n> some and what they might find offensive might be your belief.\n> It is only through free exchange of ideas (and insults as the\n> case seems to be with this channel) that one can change\n> another's erring ways.That is why Jefferson said that here \n> we are not afraid to \"tolerate error so long as reason is left to \n> combat it\". \n\nThose who forward offensive posts to the sysadmin aren't curtailing\nanyones' freedom of speech.  The neo-nazi movement has a right to\nmake speeches, say anything they want.  They do not have a right\nto have these speeches published by the N.Y. Times.  That depends\non the Times analysis of the economic and to somewhat extent\nnewsworthy value of those speeches.  Likewise to the sysadmin\nof this fellows system.  If he feels his resources are being\nused in a manner that is not in his best interests, or are\nperhaps embarassing to his organization, he will act just as\nthe New York Times does, not to be a conduit for these ideas.\nThe poster is after all free-loading off of someone else's\npocket book when he posts.  He who controls the purse strings\nhas the right to make the decision how he wants those funds\nspent or not spent.\n\nNoone is going to put the poster in jail, unless he bombs a local\nbuilding as a symbol of his hatred.  Freedom of Speech in no\nway equates to accessibility to conduits of information.  The\nmarket of ideas has its own \"natural selection\" process that\nweeds out the ga-ga from the credible ideas that are of\nimportance.\n\n\n\t\tSeth Rosenthal\n\nDisclaimer: All opinions are my own not my employers'.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6116, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: uzun@crash.cts.com (Roger Uzun)\nSubject: WinMarks?  Where can I get it\nArticle-I.D.: crash.1993Apr05.152921.24454\nOrganization: CTS Network Services (crash, ctsnet), El Cajon, CA\nLines: 6\n\nWhere can I get the Winmarks benchmark to run on my PC?\nvia ftp would be best.\n-Roger\n--------------------------------------------------------------\nbix: ruzun\nNET: uzun@crash.cts.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6117, "properties": {"category": "sci.electronics", "text": "From: agodwin@acorn.co.uk (Adrian Godwin)\nSubject: Re: Single chip receiver for FSK?\nOrganization: Acorn Computers Ltd, Cambridge, UK\nLines: 26\n\nIn article <C5L0xM.E25@law7.DaytonOH.NCR.COM> jra@law7.DaytonOH.NCR.COM (John Ackermann x 2966) writes:\n\n>My goal is to come up with an inexpensive design for a receiver \"back\n>end\" with IF input on one end and an FSK demondulator on the other.  I'm\n>particularly interested in ways to use a higher IF than 10.7 -- do any\n>current chips work up to, say 150MHz with internal downconversion so a\n>normal IF filter can be used?\n>\n\nGEC/Plessey specify a series of FM demodulators (SL1454 etc) for use in\nsatellite TV receivers : 150 or 600MHz in, 10MHz of baseband video out.\nI think there's also a related data slicer / clock recovery circuit intended\nfor use in DMAC decoders, though that isn't used in the most common \nimplementation - it may not be in volume production.\n\nThe most easily available components probably vary with local satellite\nstandards, and I think the european systems vary rather widely from those\nin the US - so it may be worth investigating locally-available receiver\ndesigns to find out what's in common use.\n\n-adrian\n\n\n-- \nAdrian Godwin : agodwin@acorn.co.uk : adrian@fangorn.demon.co.uk : g7hwn@gb7khw\nObDisclaimer  : I believe this rubbish .. don't imagine that anyone else does.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6118, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: As Armenians celebrating the Genocide of 2.5 million Muslim people,...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 65\n\nIn article <48299@sdcc12.ucsd.edu> ma170saj@sdcc14.ucsd.edu (System Operator) writes:\n\n>or, as we have painfully witnessed in Azerbaijan, would like to see \n>it happen again...\n\nIs this the joke of the month? \n\n1. Your fascist grandparents exterminated 2.5 million Muslim people\nbetween 1914 and 1920.\n\n2. Your Nazi parents fully participated in the extermination of the\nEuropean Jewry during WWII.\n\n3. Your criminal cousins have been slaughtering Muslim women, children\nand elderly people in fascist x-Soviet Armenia and Karabag for the last \nfour years.\n\nThe entire population of x-Soviet Armenia now, as a result of the \nGenocide of 2.5 million Muslim people, are Armenians. \n\nFor nearly one thousand years, the Turkish and Kurdish people \nlived on their homeland - the last one hundred under the \noppressive Soviet and Armenian occupation. The persecutions\nculminated in 1914: The Armenian Government planned and carried \nout a Genocide against its Muslim subjects. 2.5 million Turks \nand Kurds were murdered and the remainder driven out of their \nhomeland. After one thousand years, Turkish and Kurdish lands \nwere empty of Turks and Kurds. \n\nThe survivors found a safe heaven in Turkiye.\n\nToday, x-Soviet Armenian government rejects the right of Turks and \nKurds to return to their Muslim lands occupied by x-Soviet Armenia.\n\nToday, x-Soviet Armenian government covers up the genocide perpetrated \nby its predecessors and is therefore an accessory to this crime against \nhumanity.\n\nx-Soviet Armenian government must pay for their crime of genocide \nagainst the Muslims by admitting to the crime and making reparations \nto the Turks and Kurds.\n\nTurks and Kurds demand the right to return to their lands, to determine \ntheir own future as a nation in their own homeland.\n\nDuring the 78th Anniversary, we come once again reiterate the\nunity of the Muslim People, the timelessness of the Turkish\nand Kurdish Demands and the desire to pursue the struggle\nfor that restitution - a struggle that unites all Turks and Kurds.\n\nToday, we appeal to all Turkish and Kurdish people in the United \nStates and Canada to participate en masse in the Commemorative \nEvents, be they cultural, political or religious.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6119, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kudla@acm.rpi.edu (Robert Kudla)\nSubject: Re: Can I Change \"Licensed To\" Data in Windows 3.1?\nNntp-Posting-Host: hermes.acm.rpi.edu\nLines: 65\n\nIn <0096B130.473B17C0@vms.csd.mu.edu> 2a42dubinski@vms.csd.mu.edu writes:\n>\tahh, yes, this is a fun topic.  No, once the name is incribed on the\n>disk, that is it, it is encoded.  Not even a HEX editor will find it.  You can\n\nBut a disk compare utility (old versus new) will.  And Windows 3.1 is\nalso flexible enough at install time that you can copy all the files\nonto your hard disk, which greatly speeds things up and makes them\nless annoying, if you can spare the 7 or so compressed megs.\n\n>write over the \"Licensed to:\", but you can't change the name underneth it.  I\n>think if you wish to change this you would have to be a pirate, and we're not\n>going to promote that here.\n\nNo, we're not.  But we're also not going to promote pandering to\ncorporate paranoia when the real issue is convenience.  I don't *like*\ndealing with floppies.  Personally, I have no use for changing the\nregistration info, but I see it as a valid need, and one that ought to\nbe solved using a quick little utility rather than a half-hour\nreinstall that's just about guaranteed to mess up your settings in one\nway or another.\n\nSo, while I'm not going to put much time into it myself, here's the\nprocedure for getting on your way to finding the encoded information:\n\n1.  Copy all your Windows disks into the directory from which you want\nto install it.  I've been using c:\\WINSTALL myself.\n\n2.  From there, copy that directory to something like c:\\WINORIG.\n\n3.  Install from c:\\winstall.\n\n4.  comp the two directories to determine changes.  \n    i.e., comp *.* \\winorig\\*.* >\\report.txt\n\n5.  Look in the report file for the file(s) that change.  Assuming\nthey didn't cover themselves covering their own tracks, at least one\nfile should have a difference noted at a particular offset.  Locate\nsaid offset in the original directory and see what's there using a hex\neditor, and do the same for the modified one.\n\n6.  You're on your own as far as breaking the code goes; I don't\nreally do cryptography.  It's probably just an xor key or something; I\nthink MS is more concerned with Joe Schmoe at the office personalizing\nhis copy than with \"real pirates\" who will probably just disassemble\nthe damned thing anyway.  This technique should work with just about\nany obnoxious corporate product that tries to write to the original\nfloppies when you install; in some extreme cases you may not be able\nto back the floppies up to hard disk, and will be stuck doing a\ncompare on floppies (Lotus stuff is probably like that).\n\nAs I noted before, if you can afford the space on the hard disk, and\ndon't do much in the way of customization, reinstalling from one\ndirectory to another may be less arduous.  Doing some of the stuff\nI've mentioned here may well void your license with Microsoft, as if\nthey'd ever find out.  If you aren't careful with the disk editor, you\ncould also mung something important... duh.  I guess that's a\ndisclaimer.\n\nHave at it....\n\nRob\n--\nRob kudla@acm.rpi.edu Keywords - Oldfield Jane's Leather Yes Win3.1 Phish\nlight blue right Bondage r.e.m. DTP Steely Dan DS9 FNM OWL Genesis In the\nspaceship, the silver spaceship, the lion takes control..... \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6120, "properties": {"category": "soc.religion.christian", "text": "From: shellgate!llo@uu4.psi.com (Larry L. Overacker)\nSubject: Re: christians and aids\nOrganization: Shell Oil\nLines: 49\n\nIn article <Apr.8.00.57.49.1993.28271@athos.rutgers.edu> marka@travis.csd.harris.com (Mark Ashley) writes:\n>In article <Apr.7.01.55.33.1993.22762@athos.rutgers.edu> kevin@pictel.pictel.com (Kevin Davis) writes:\n>>Many Christians believe in abstinence, but in a moment will be overcome\n>>by desire.  We all compromise and rationalize poor choices (sin).  Last\n>>week I was guilty of anger, jealousy, and whole mess of other stuff,\n>>yet I am forgiven and not condemned to suffer with AIDs.  To even\n>>suggest that AIDS is \"deserved\" is ludicrous.\n>\n>When man was told not to have sex with relatives, did they listen ?\n>NO! And man found out why !\n\nSo what's your point?  Mark's comment still is valid.  To suggest that\nAIDS is \"deserved\" IS ludicrous.  I sin.  I can resolve to abstain from \nsin, and do weekly (more often, actually).  Yet I routinely fail.\nI surely do deserve what I get, yet God compassionately provided \nthe Incarnate Logos, Jesus, as a rememdy and a way out of our situation.\nIf AIDS is deserved, I surely deserve instant death just as much, as do\nwe all, as St. Paul so cogently remids us.\n\nTo willingly judge \"others\" as deserving punishment seems to me\nto be the height of arrogance and lack of humility.  \n \n>I wonder if AIDS would be a problem now if people didn't get\n>involved in deviant sexual behaviour. Certainly, people who\n>received tainted blood are not to blame. But it just goes\n>to show that all mankind is affected by the actions of a few.\n\nSo what's the point here?  I can get AIDS and NEVER engage in\n\"deviant\" sexual behavior.  In fact, I could engage in LOTS\nof deviant sexual behavior with HIV+ people and never be\ninfected.  AIDS is a consequence of particular behaviors,\nmany of which are not sexual.  And not all sexual behaviors\ncarry the risk of transmission.  \n \n>In addition, IMHO forgiveness is not the end of things.\n>There is still the matter of atonement. Is it AIDS ?\n>I don't know.\n\nThe end of all things is to know, love and serve God, growing\ndaily closer through prayer, meditation and discipline.  Even so\nI could get AIDS.  Anyone could, unless they remain forever celibate,\nIV-drug-free, and transfusion free.\n\nLarry Overacker (llo@shell.com)\n-- \n-------\nLawrence Overacker\nShell Oil Company, Information Center    Houston, TX            (713) 245-2965\nllo@shell.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6121, "properties": {"category": "rec.sport.baseball", "text": "From: drw3l@delmarva.evsc.Virginia.EDU (David Robert Walker)\nSubject: Re: Young Catchers\nOrganization: University of Virginia\nLines: 70\n\nMost of this discussion has been between Mark Singer and David Tate,\nwith Valentine weighing in on the same side as Dave at various times.\nMy opinion, FWIW, to all:\n\nMark, age doesn't matter; ability does. I would rather have the untried\nrookie with great minor league numbers than the veteran who has proven\nhimself to be average at best. I don't care if he is 15; if he plays\nbetter than what I have, I want him out there. Sandy Alomar had decent\nminor league numbers, grossly inflated by the PCL in general and Las\nVegas in particular; he should have been projected as an average major\nleague hitter (which is good for a catcher, I'll admit). Santiago's\nnumbers would probably come out the same as Sandy's, but I don't have\nthe league data from the mid-80s to check it out.\n\nThat being said, I agree with sending Lopez to Richmond, at least to\nstart the season. As the box below shows, he has *one* minor league\nseason in which he hit well. He has two in which he hit very, very\npoorly. I want to see that the 92 Lopez is real. Olson and Berryhill\nare not complete mediocrities; for catchers, especially NL catchers,\nthey are essentially average hitters, with equivalent averages around\n.220. If he had hit well at prior levels, I would say he belongs on\nthe Braves; but there is a reasonable chance that Lopez last year was\njust as much a fluke as Alomar in 90 or Santiago in 87. One year at\nany level, at any age, doesn't satisfy MY standards of evidence.\n\n    JAVIER LOPEZ 1971         \n  1990 BUR    428  101  10   1   9    5    0   1  .179   33  .236  .245  .327\n  1991 DUR    389   84   8   1   9   14    7   2  .175   29  .216  .243  .311\n  1992 GRN    445  135  22   2  14   22    7   2  .271   71  .303  .336  .456\n  1992 ATL     16    6   2   0   0    0    0   0  .306    3  .375  .375  .500\n    MAJ        16    6   2   0   0    0    0   0  .306    3  .375  .375  .500\n    MIN      1262  320  40   4  32   41   14   5  .213  133  .254  .277  .368\n    TOT      1278  326  42   4  32   41   14   5  .214  136  .255  .278  .369\n    MAJ       650  244  81   0   0    0    0   0\n    MIN       630  160  20   2  16   20    7   2\n    TOT       630  161  21   2  16   20    7   2\n\nOn a similar note, I don't understand why more people are not\nsupportive of Neon Deion. Granted, I thought his behavior with\nMcCarver last year was completely bush. Last year was the first time\nhe ever got 300 AB in one place, so his lines are hard to read. But he\nhas a combined 720 OPS in minor league play; with his speed is more\nvaluable than the OPS alone indicates; and at a still young age (24),\nhad a monster year with an 868 OPS. He has a total, major and minor,\nEQA of .249; above major league average, and above average for CF\n(which was about .240 in the NL last year). He has shown at least the\npotential of going into the .290s, which would make him one of the 15\nbest hitters in the league. He has two full seasons before reaching\nhis \"prime\" season of 27. He should be considered as a legitimate\nprospect, and not as a simple side-show attraction.\n\n      DEION SANDERS 1968      \n  1988 FLA     21    8   2   0   0    1    1   0  .325    4  .381  .409  .476\n  1988 INT     20    3   1   0   0    1    1   1  .086    0  .150  .190  .200\n  1989 EAS    123   35   1   2   2    9   15   4  .257   19  .285  .333  .374\n  1989 NYY     47   11   1   0   2    3    1   0  .222    6  .234  .280  .383\n  1989 INT    263   70  11   4   6   18   15   6  .246   37  .266  .313  .407\n  1990 NYY    133   21   2   2   3   13    8   2  .161    9  .158  .233  .271\n  1990 INT     85   26   7   1   1   14    8   1  .312   18  .306  .404  .447\n  1991 ATL    110   20   2   1   4   12   10   3  .201   12  .182  .262  .327\n  1991 RIC    129   30   5   2   4    7   11   3  .230   17  .233  .272  .395\n  1992 ATL    306   92  10  12  11   22   24   9  .295   60  .301  .348  .520\n    MAJ       596  144  15  15  20   50   43  14  .245   87  .242  .300  .418\n    MIN       641  172  27   9  13   50   51  15  .252   96  .268  .321  .399\n    TOT      1237  316  42  24  33  100   94  29  .249  182  .255  .311  .408\n    MAJ       600  145  15  15  20   50   43  14\n    MIN       603  162  25   8  12   47   48  14\n    TOT       601  154  20  12  16   49   46  14\n\nClay D.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6122, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sra@idx.com\nSubject: Help w/ Greenleaf CommLib 4.0?\nOrganization: IDX Corporation, S. Burlington, VT\nLines: 8\n\nHas anyone had experience with the new Greenleaf CommLib 4.0?  I can't even\nget their demo winterm to run at 4800 baud without dropping characters.\n\ntnx, steve\n\n  /------------------------------------------------------------------------\\\n  >    Steve Alpert (W1GGN)  IDX Systems Corp.   Boston, Massachusetts     <\n  \\--------------------------- sra @ idx.com ------------------------------/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6123, "properties": {"category": "comp.windows.x", "text": "From: alf@st.nepean.uws.edu.au (Andrew Leahy)\nSubject: Running dxterm's onto Apollo from DEC 5000/240\nOrganization: University of Western Sydney, Nepean\nX-Newsreader: Tin 1.1 PL4\nLines: 36\n\n\nHelp!\n\nI'm trying to run dxterm's (DECs' xterm) on a DECstation 5000/240\n(Ultrix 4.3, X11R4, Motif 1.1.3) with the DISPLAY variable set to an\nApollo DN2500 (Domain/OS 10.3, X11R4, Motif ?.?).\n\nI get these errors appearing on the DECstation:\n\n> dxterm\nX Toolkit Warning: Cannot convert string \"<Key>apCharDel        \" to type VirtualBinding\nX Toolkit Warning: Cannot convert string \"<Key>apCopy   \" to type VirtualBinding\nX Toolkit Warning: Cannot convert string \"<Key>apCut    \" to type VirtualBinding\nX Toolkit Warning: Cannot convert string \"<Key>apPaste  \" to type VirtualBinding\nX Toolkit Warning: Cannot convert string \"<Key>apUpBox  \" to type VirtualBinding\nX Toolkit Warning: Cannot convert string \"<Key>apDownBox        \" to type VirtualBinding\nX Toolkit Warning: Cannot convert string \"<Key>apRightBar       \" to type VirtualBinding\nX Toolkit Warning: Cannot convert string \"<Key>apLeftBar        \" to type VirtualBinding\nSegmentation fault\n>\n\nAny ideas? Is it a Motif problem...are the DEC and Apollo versions of Motif\nincompatible? Or something to do with XKeysymDB?\n\n(xterms run fine on DEC displaying on Apollo..arggh)\n\nI need to run dxterm because the package we are using on the DEC's, Oracle Case,\nuses dxterm by default, and we have a lab of Apollo workstations we would like\nto run Oracle from.\n\nAndrew \"Alf\" Leahy, alf@st.nepean.uws.edu.au\n--\n__________________________________________________________________________\nAndrew \"Alf\" Leahy                  phone: (047) 360771 (W) irc: pepsi-alf\nUni. Western Sydney, Nepean.        Remote-email: alf@st.nepean.uws.edu.au\nSydney, Australia.                  Local-email: alf\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6124, "properties": {"category": "comp.graphics", "text": "From: IMAGING.CLUB@OFFICE.WANG.COM (\"Imaging Club\")\nSubject: Re: Signature Image Database\nOrganization: Mail to News Gateway at Wang Labs\nLines: 21\n\nContact Signaware Corp\n800-4583820\n800 6376564\n\n-------------------------------- Original Memo --------------------------------\nBCC:     Vincent Wall                   From:      Imaging Club\nSubject: Signature verification  ?      Date Sent: 05/04/93\n\nsci.image.processing\nFrom: yyqi@ece.arizona.edu (Yingyong Qi)\nSubject: Signature Image Database\nOrganization: U of Arizona Electrical and Computer Engineering\n\nHi, All:\n\nCould someone tell me if there is a database of handwriting signature\nimages available for evaluating signature verification systems.\n\nThanks.\n\nYY\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6125, "properties": {"category": "sci.electronics", "text": "From: kolstad@cae.wisc.edu (Joel Kolstad)\nSubject: Re: 8x oversampling CD player\nOrganization: U of Wisconsin-Madison College of Engineering\nKeywords: oversampling, CD, digitized audio\nLines: 40\n\nIn article <hcbC5un9L.DD0@netcom.com> hcb@netcom.com (H. C. Bowman) writes:\n>\n>Hello--\n>\n>I just bought a new portable CD player for the office, and I notice that\n>it proudly proclaims \"8 TIMES OVERSAMPLING\" on the box.  Now while I think\n>I understand what oversampling is (the rate of discrete \"samples\"\n>exceeds the highest frequency component of interest by some factor),\n>I don't understand this \"8 TIMES\" business...  It seems to me that when\n>I bought my first CD player (was it REALLY 10 years ago?!), the specs\n>said \"4 TIMES\" ...  Could someone please tell me whether I'm getting\n>senile?  If I'm not, then what good does it do for the player to take\n>samples at a higher rate?  If I really wanted better fidelity, wouldn't\n>I have to have the same higher rate of sampling during the recording\n>process?  Furthermore, am I wrong in interpreting the sampling rate\n>(from the player's point of view) as being the same thing as the data\n>rate for the bit stream coming off the optical medium?  Does this mean\n>that the data rate (related to the rotational speed of the disk) has \n>changed since 1983?\n\n[Note: I just tried to figure this stuff out about a month ago myself, from\nvarious people on the net, so I could be wrong.]\n\nThe data is only ever read once (barring mistracks and such, of course),\nand eventually gets turned into 44.1 KHz, 16 bit, two channel data.\nOversampling takes two discrete data points, and interpolates n-1 points\nbetween them for n times oversampling.  When I asked, people said that the\ninterpolation was not simply linear interpolation, but significantly more\ncomplicated.\n\nAnyway, then, the purpose of oversampling is to move the \"effective\"\nsampling rate up to n times 44.1 KHz, in order to use higher frequency\nantialiasing filters.  For the same quality filter, higher oversampling\nlets you build cheaper filters, whereas for the same price filter, higher\noversamplings lets you build better filters.  So, assuming the quality of\nall other components in a CD player remained the same, oversampling should\nallow a manufacturer to produce _slightly_ better sound due to anti-alias\nfiltering.\n\n\t\t\t\t\t---Joel Kolstad\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6126, "properties": {"category": "comp.windows.x", "text": "From: chongo@toad.com (Landon C. Noll)\nSubject: 10th International Obfuscated C Code Contest Opening (1 of 2)\nKeywords: ioccc\nArticle-I.D.: toad.32194\nExpires: 7 May 93 00:00:00 GMT\nReply-To: chongo@toad.com.UUCP (Landon C. Noll)\nDistribution: world\nOrganization: Nebula Consultants in San Francisco\nLines: 850\n\nEnclosed are the rules, guidelines and related information for the 10th\nInternational Obfuscated C Code Contest.  (This is part 1 of a 2 part\nshar file).\n\nEnjoy!\n\nchongo <Landon Curt Noll> /\\oo/\\ \nLarry Bassel\n\n=-=\n\n#!/bin/sh\n# This is a shell archive (shar 3.32)\n# made 03/01/1993 12:01 UTC by chongo@toad.com\n# Source directory /tmp\n#\n# existing files WILL be overwritten\n#\n# This shar contains:\n# length  mode       name\n# ------ ---------- ------------------------------------------\n#   8585 -r--r--r-- rules\n#  25375 -r--r--r-- guidelines\n#  33961 -r--r--r-- mkentry.c\n#   6257 -r--r--r-- obfuscate.info\n#\n# ============= rules ==============\necho \"x - extracting rules (Text)\"\nsed 's/^X//' << 'SHAR_EOF' > rules &&\nX10th International Obfuscated C Code Contest Rules\nX\nXCopyright (c) Landon Curt Noll & Larry Bassel, 1993.  \nXAll Rights Reserved.  Permission for personal, education or non-profit use is \nXgranted provided this this copyright and notice are included in its entirety \nXand remains unaltered.  All other uses must receive prior permission in writing \nXfrom both Landon Curt Noll and Larry Bassel.\nX\nX    Obfuscate:  tr.v.  -cated, -cating, -cates.  1. a.  To render obscure.\nX\t\tb.  To darken.  2. To confuse:  his emotions obfuscated his\nX\t\tjudgment.  [LLat. obfuscare, to darken : ob(intensive) +\nX\t\tLat. fuscare, to darken < fuscus, dark.] -obfuscation n.\nX\t\tobfuscatory adj.\nX\nX\nXGOALS OF THE CONTEST:\nX\nX    * To write the most Obscure/Obfuscated C program under the rules below.\nX    * To show the importance of programming style, in an ironic way.\nX    * To stress C compilers with unusual code.\nX    * To illustrate some of the subtleties of the C language.\nX    * To provide a safe forum for poor C code.  :-)\nX\nX\nXRULES:\nX\nX    To help us with the volume of entries, we ask that you follow these rules:\nX\nX    1) Your entry must be a complete program.\nX\nX    2) Your entry must be <= 3217 bytes in length.  The number of characters\nX       excluding whitespace (tab, space, newline), and excluding any ; { or }\nX       followed by either whitespace or end of file, must be <= 1536.\nX\nX    3) Your entry must be submitted in the following format:\nX\nX---entry---\nXrule:\t1993\nXfix:\ty or n   (n => this is a new entry, y => this replaces an older entry)\nXtitle:\ttitle of entry  \t\t    (see comments below)\nXentry:\tEntry number from 0 to 7 inclusive  (your 1st entry should by 0)\nXdate:\tDate/time of submission in UTC\t    (see comments below)\nXhost:\tMachine(s) and OS(s) under which your entry was tested\nX\tUse tab indented lines if needed\nX---remark---\nX    Place remarks about this entry in this section.  It would be helpful if\nX    you were to indent your remarks with 4 spaces, though it is not a\nX    requirement.  Also, if possible, try to avoid going beyond the 79th\nX    column.  Blank lines are permitted.\nX---author---\nXname:\tyour name\nXorg:\tSchool/Company/Organization\nXaddr:\tpostal address\nX\tuse tab indented lines to continue\nX\tdon't forget to include the country\nXemail:  Email address from a well known site or registered domain.\nX        If you give several forms, list them on separate tab indented lines.\nXanon:\ty or n   (y => remain anonymous, n => ok to publish this info)\nX---info---\nXIf your program needs an info file, place a uuencoded copy of it in\nXthis section.  In the case of multiple info files, use multiple info\nXsections.  If your entry does not need a info file, skip this section.\nX---build---\nXPlace a uuencoded copy of the command(s) used to compile/build your program\nXin this section.  It must uudecode into a file named 'build'.  The resulting\nXfile must be 255 bytes or less.\nX---program---\nXPlace a uuencoded copy of your program in this section.  It must uudecode\nXinto a file named is 'prog.c'.  The resulting file must follow rule #2.\nX---end---\nX\nX      Regarding the above format:\nX\nX\t* The title must match the expression: [a-zA-Z0-9_=][a-zA-Z0-9_=+-]*\nX\t  and must be 1 to 12 characters in length.\nX\nX\t  It is suggested, but not required, that the title should\nX\t  incorporate your username; in the case of multiple authors,\nX\t  consider using parts of the usernames of the authors.\nX\nX\t* The date in the ---entry--- section should be given with respect\nX\t  to UTC.  The format of the date should be as returned by asctime() \nX\t  using the C locale.  (see guidelines for more info)\nX\nX\t* You may correct/revise a previously submitted entry by sending\nX\t  it to the contest email address.  Be sure to set 'fix' in the \nX\t  ---entry--- section to 'n'.  The corrected entry must use the same \nX\t  title and entry number as submittion that is being corrected.  Be \nX\t  sure that you note the resubmittion in the ---remark--- as well.\nX\nX\t* With the exception of the header, all text outside of the above \nX\t  format may be ignored by the judges.  If you need tell the judges\nX\t  something, put it in the ---remark--- section, or send a separate\nX\t  Email message to the judges.\nX\nX\t* Information from the ---author--- section will be published unless \nX\t  'y' was given to the respective author's 'anon' line.\nX\nX\t* To credit multiple authors, include an ---author--- section for\nX\t  each author.  Each should start with ---author--- line, and\nX\t  should be found between the ---entry--- and ---build--- sections.\nX\nX\t* The entry's remarks should include:\nX\t    - what this program does\nX\t    - how to run the program (sample args or input)\nX\t    - special compile or execution instructions, if any\nX\t    - special filename requirements (see rule 4 and 5)\nX\t    - information about any ---data--- files\nX\t    - why you think the program is obfuscated\nX\t    - note if this entry is a re-submission of a previous entry.\nX\t    - any other remarks (humorous or otherwise)\nX\nX\t* Do not rot13 your entry's remarks.  You may suggest that certain\nX\t  portions of your remarks be rot13ed if your entry wins an award.\nX\nX        * Info files should be used only to supplement your entry.  They \nX\t  should not be required to exist.\nX\nX\t  If your entry does not need an info file, skip the ---info---\nX\t  section.  If your entry needs multiple info files, use multiple \nX\t  ---info--- sections, one per info file.  You should describe\nX\t  each info file in the ---remark--- section.\nX\nX    4) If your entry is selected as a winner, it will be modified as follows:\nX\nX\t   'build' is incorporated into a makefile, and 'build' is removed\nX\t   'prog.c' is renamed to your entry's title, followed by an optional\nX\t       digit, followed by '.c'\nX\t   your entry is compiled into a file with the name of your entry's\nX\t       title, possibly followed by a digit\nX\nX       If your entry requires that a build file exist, state so in your\nX       entry's remark section.  The makefile will be arranged to execute a\nX       build shell script containing the 'build' information.  The name of\nX       this build shell script will be your entry's title, possibly followed\nX       by a digit, followed by '.sh'.\nX\nX       If needed, your entry's remarks should indicate how your entry must\nX       be changed in order to deal with the new filenames.\nX\nX    5) The build file, the source and the resulting executable should be\nX       treated as read-only files.  If your entry needs to modify these files,\nX       it should make and modify a copy of the appropriate file.  If this\nX       occurs, state so in your entry's remarks.\nX\nX    6) Entries that cannot be compiled by an ANSI C compiler will be rejected.\nX       Use of common C (K&R + extensions) is permitted, as long as it does not \nX       cause compile errors for ANSI C compilers.\nX\nX    7) The program must be of original work.  All programs must be in the\nX       public domain.  All copyrighted programs will be rejected.\nX\nX    8) Entries must be received prior to 07-May-93 0:00 UTC.  (UTC is\nX       essentially equivalent to Greenwich Mean Time)  Email your entries to:\nX\nX\t\t...!{apple,pyramid,sun,uunet}!hoptoad!obfuscate\nX\t\tobfuscate@toad.com\nX\nX       We request that your message use the subject 'ioccc entry'.\nX\nX       If possible, we request that you hold off on Emailing your entries\nX       until 1-Mar-93 0:00 UTC.  Early entries will be accepted, however.\nX       We will attempt to email a confirmation to the the first author for\nX       all entries received after 1-Mar-93 0:00 UTC.\nX\nX    9) Each person may submit up to 8 entries per contest year.  Each entry\nX       must be sent in a separate Email letter.\nX\nX   10) Entries requiring human interaction to be built are not allowed.  \nX       Compiling an entry produce a file (or files) which may be executed.\nX\nX   11) Programs that require special privileges (setuid, setgid, super-user,\nX       special owner or group) are not allowed.\nX    \nX\nXFOR MORE INFORMATION:\nX\nX    The Judging will be done by Landon Noll and Larry Bassel.  Please send\nX    questions or comments (but not entries) about the contest, to:\nX\nX\t...!{apple,pyramid,sun,uunet}!hoptoad!judges\nX\tjudges@toad.com\nX\nX    The rules and the guidelines may (and often do) change from year to\nX    year.  You should be sure you have the current rules and guidelines\nX    prior to submitting entries.  To obtain all 3 of them, send Email\nX    to the address above and use the subject 'send rules'.\nX\nX    One may also obtain them via anonymous ftp from:\nX\nX\thost: ftp.uu.net\t(137.39.1.9)\nX\tuser: anonymous\nX\tpass: yourname@yourhost\nX\tdir:  /pub/ioccc\nX\nX\nXchongo <Landon Curt Noll> /\\cc/\\  \thoptoad!chongo\nXLarry Bassel\t\t\t  \t{uunet,ucbvax,cbosgd}|sun!lab\nSHAR_EOF\nchmod 0444 rules ||\necho \"restore of rules failed\"\nset `wc -c rules`;Wc_c=$1\nif test \"$Wc_c\" != \"8585\"; then\n\techo original size 8585, current size $Wc_c\nfi\n# ============= guidelines ==============\necho \"x - extracting guidelines (Text)\"\nsed 's/^X//' << 'SHAR_EOF' > guidelines &&\nX10th International Obfuscated C Code Contest Guidelines, Hints and Comments\nX\nXCopyright (c) Landon Curt Noll & Larry Bassel, 1993.  \nXAll Rights Reserved.  Permission for personal, education or non-profit use is \nXgranted provided this this copyright and notice are included in its entirety \nXand remains unaltered.  All other uses must receive prior permission in writing \nXfrom both Landon Curt Noll and Larry Bassel.\nX\nXABOUT THIS FILE:\nX\nX    This file is intended to help people who wish to submit entries to\nX    the International Obfuscated C Code Contest (IOCCC for short).\nX\nX    This is not the IOCCC rules, though it does contain comments about\nX    them.  The guidelines should be viewed as hints and suggestions.\nX    Entries that violate the guidelines but remain within the rules are\nX    allowed.  Even so, you are safer if you remain within the guidelines.\nX\nX    You should read the current IOCCC rules, prior to submitting entries.\nX    The rules are typically sent out with these guidelines.\nX\nX\nXWHAT IS NEW IN 1993:\nX\nX    The entry format is better (for us anyway).  The program mkentry.c\nX    has been updated.  See ENTRY FORMAT.\nX\nX    We will reject entries that cannot be compiled using an ANSI C\nX    compiler.  Certain old Obfuscation hacks that cause ANSI C compilers \nX    fits are no longer permitted.  Some of the new issues deal with \nX    non-integral array types, variable number of arguments, C preprocessor \nX    directives and the exit() function.  See OUR LIKES AND DISLIKES.\nX\nX\nXHINTS AND SUGGESTIONS:\nX\nX    You are encouraged to examine the winners of previous contests.  See\nX    FOR MORE INFORMATION for details on how to get previous winners.\nX\nX    Keep in mind that rules change from year to year, so some winning entries\nX    may not be valid entries this year.  What was unique and novel one year\nX    might be 'old' the next year.\nX\nX    An entry is usually examined in a number of ways.  We typically apply\nX    a number of tests to an entry:\nX\nX\t* look at the original source\nX\t* convert ANSI tri-graphs to ASCII\nX\t* C pre-process the source ignoring '#include' lines\nX\t* C pre-process the source ignoring '#define' and '#include' lines\nX\t* run it through a C beautifier\nX\t* examine the algorithm\nX\t* lint it\nX\t* compile it\nX\t* execute it\nX\nX    You should consider how your entry looks in each of the above tests.\nX    You should ask yourself if your entry remains obscure after it has been\nX    'cleaned up' by the C pre-processor and a C beautifier.\nX\nX    Your entry need not do well under all, or in most tests.  In certain\nX    cases, a test is not important.  Entries that compete for the\nX    'strangest/most creative source layout' need not do as well as\nX    others in terms of their algorithm.  On the other hand, given\nX    two such entries, we are more inclined to pick the entry that\nX    does something interesting when you run it.\nX\nX    We try to avoid limiting creativity in our rules.  As such, we leave\nX    the contest open for creative rule interpretation.  As in real life\nX    programming, interpreting a requirements document or a customer request\nX    is important.  For this reason, we often award 'worst abuse of the\nX    rules' to an entry that illustrates this point in an ironic way.\nX\nX    If you do plan to abuse the rules, we suggest that you let us know\nX    in the remarks section.  Please note that an invitation to abuse\nX    is not an invitation to break.  We are strict when it comes to the\nX    3217 byte size limit.  Also, abusing the entry format tends to\nX    annoy more than amuse.\nX\nX    We do realize that there are holes in the rules, and invite entries\nX    to attempt to exploit them.  We will award 'worst abuse of the rules'\nX    and then plug the hole next year.  Even so, we will attempt to use\nX    the smallest plug needed, if not smaller.  :-)\nX\nX    Check out your program and be sure that it works.  We sometimes make\nX    the effort to debug an entry that has a slight problem, particularly\nX    in or near the final round.  On the other hand, we have seen some\nX    of the best entries fall down because they didn't work.\nX\nX    We tend to look down on a prime number printer, that claims that\nX    16 is a prime number.  If you do have a bug, you are better off\nX    documenting it.  Noting \"this entry sometimes prints the 4th power\nX    of a prime by mistake\" would save the above entry.  And sometimes,\nX    a strange bug/feature can even help the entry!  Of course, a correctly\nX    working entry is best.\nX\nX\nXOUR LIKES AND DISLIKES:\nX\nX    Doing masses of #defines to obscure the source has become 'old'.  We\nX    tend to 'see thru' masses of #defines due to our pre-processor tests\nX    that we apply.  Simply abusing #defines or -Dfoo=bar won't go as far\nX    as a program that is more well rounded in confusion.\nX\nX    Many ANSI C compilers dislike the following code, and so do we:\nX\nX\t#define d define\nX\t#d foo\t\t   <-- don't expect this to turn into #define foo\nX\nX\tint i;\nX\tj;\t\t   <-- don't use such implicit type declaration\nX\tint k;\nX\nX    We suggest that you compile your entry with an ANSI C compiler.  If you \nX    must use non-ANSI C, such as K&R C, you must avoid areas that result in \nX    compile/link errors for ANSI C compilers.\nX\nX    Unfortunately, ANSI C requires array indexes to be of integral type.\nX    Thus, the following classical obfuscation hacks are no longer allowed:\nX\nX\tint i;\nX\tchar *c;\nX\ti[c];\t\t   <--- use c[i] instead\nX\t(i+3)[\"string\"];   <--- use \"string\"[i+3] instead\nX\nX    If your entry uses functions that have a variable number of\nX    arguments, be careful. Systems implement va_list as a wide variety\nX    of ways.  Because of this, a number of operations using va_list are\nX    not portable and must not be used:\nX\nX\t* assigning a non-va_list variable to/from a va_list variable\nX\t* casting a non-va_list variable into/from a va_list variable\nX\t* passing a va_list variable to a function expecting a non-va_list arg\nX\t* passing a non-va_list variable to a function expecting a va_list arg\nX\t* performing arithmetic on va_list variables\nX\t* using va_list as a structure or union\nX\nX    In particular, do not treat va_list variables as if they were a char **'s.\nX\nX    Avoid using <varargs.h>, use <stdarg.h> instead.\nX\nX    If you use C preprocessor directives (#define, #if, #ifdef, ...),\nX    the leading '#' must be the first character on a line.  While some\nX    C preprocessors allow whitespace the leading '#', many do not.\nX\nX    Because the exit() function returns void on some systems, entries\nX    must not assume that it returns an int.\nX\nX    Small programs are best when they are short, obscure and concise.\nX    While such programs are not as complex as other winners, they do\nX    serve a useful purpose.  They are often the only program that people\nX    attempt to completely understand.  For this reason, we look for\nX    programs that are compact, and are instructional.\nX\nX    One line programs should be short one line programs, say around 80\nX    bytes long.  Getting close to 160 bytes is a bit too long in our opinion.\nX\nX    We tend to dislike programs that:\nX\nX\t* are very hardware specific\nX\t* are very OS or Un*x version specific\nX\t     (index/strchr differences are ok, but socket/streams specific\nX\t      code is likely not to be)\nX\t* dump core or have compiler warnings\nX\t     (it is ok only if you warn us in the 'remark' header item)\nX\t* won't compile under both BSD or SYS V Un*x\nX\t* abusing the build file to get around the size limit\nX\t* obfuscate by excessive use of ANSI tri-graphs\nX\t* are longer than they need to be\nX\t* are similar to previous winners\nX\t* are identical to previous losers  :-)\nX\nX    Unless you are cramped for space, or unless you are entering the\nX    'best one liner' category, we suggest that you format your program\nX    in a more creative way than simply forming excessively long lines.\nX\nX    The build file should not be used to try and get around the size\nX    limit.  It is one thing to make use of a several -D's to help out,\nX    but it is quite another to use 200+ bytes of -D's in order to\nX    try and squeeze the source under the size limit.  You should feel\nX    free to make use of the build file space, but you are better off\nX    if you show some amount of restraint.\nX\nX    We allowed whitespace, and in certain cases ; { or } do not impact\nX    your program size (up to a certain point), because we want to get\nX    away from source that is simply a compact blob of characters.\nX\nX    Given two versions of the same program, one that is a compact blob\nX    of code, and the other that is formatted more like a typical C\nX    program, we tend to favor the second version.  Of course, a third\nX    version of the same program that is formatted in an interesting\nX    and/or obfuscated way, would definitely win over the first two!\nX\nX    We suggest that you avoid trying for the 'smallest self-replicating'\nX    program.  We are amazed at the many different sizes that claim\nX    to be the smallest.  There is nothing wrong with self-replicating\nX    programs.  In fact, a number of winners have been self-replicating.\nX    You might want to avoid the claim of 'smallest', lest we (or others)\nX    know of a smaller one!\nX\nX    X client entries should be as portable as possible.  Entries that\nX    adapt to a wide collection of environments will be favored.  Don't\nX    depend on a particular type of display.  For example, don't depend\nX    on color or a given size.  Don't require backing store.\nX\nX    X client entries should avoid using X related libraries and\nX    software that is not in wide spread use.  We ask that such X client\nX    entries restrict themselves to only the low level Xlib and the\nX    Athena widget set (libX11.a, libXaw.a, libXmu.a and libXt.a).\nX    Don't use M*tif, Xv*ew, or OpenL*ok toolkits, since not everyone\nX    has them.  Avoid depending on a particular window manager.  Not\nX    everyone has X11r5, and some people are stuck back in X11r4 (or\nX    earlier), so try to target X11r5 without requiring X11r5.  Better\nX    yet, try to make your entry run on all version 11 X Window Systems.\nX\nX    X client entries should not to depend on particular items on\nX    .Xdefaults.  If you must do so, be sure to note the required lines\nX    in the ---remark--- section.\nX\nX    We like programs that:\nX\nX\t* are as concise and small as they need to be\nX\t* do something at least quasi-interesting\nX\t* pass lint without complaint (not a requirement, but it is nice)\nX\t* are portable\nX\t* are unique or novel in their obfuscation style\nX\t* MAKE USE OF A NUMBER OF DIFFERENT TYPES OF OBFUSCATION\nX\t* make us laugh and/or throw up  :-)\nX\nX    Some types of programs can't excel in some areas.  Of course, your\nX    program doesn't have to excel in all areas, but doing well in several\nX    areas really does help.\nX\nX    We freely admit that interesting, creative or humorous comments in\nX    the ---remark--- section helps your chance of winning.  If you had to\nX    read of many twisted entries, you too would enjoy a good laugh or two.\nX    We think the readers of the contest winners do as well.\nX\nX    Be creative!\nX\nX\nXENTRY FORMAT:\nX\nX    In order to help us process the many entries, we must request your\nX    assistance by formatting your entries in a certain way.  This format,\nX    in addition, allows us to quickly separate information about the\nX    author from the program itself.  (see JUDGING PROCESS)\nX\nX    We have provided the program, mkentry, as an example of how to\nX    format entries.  You should be aware of the following warning that\nX    is found in mkentry.c:\nX\nX\tThis program attempts to implement the IOCCC rules.  Every\nX\tattempt has been made to make sure that this program produces\nX\tan entry that conforms to the contest rules.  In all cases,\nX\twhere this program differs from the contest rules, the\nX\tcontest rules will be used.  Be sure to check with the\nX\tcontest rules before submitting an entry.\nX\nX    You are not required to use mkentry.  It is convenient, however,\nX    as it attempts to uuencode the needed files, and attempt to check\nX    the entry against the size rules.\nX\nX    If you have any suggestions, comments, fixes or complaints about\nX    the mkentry.c program, please send Email to the judges.  (see below)\nX\nX    The following is a sample entry:\nX\nX---entry---\nXrule:\t1993\nXfix:\tn\nXtitle:\tchonglab\nXentry:\t0\nXdate:\tMon Mar  1 08:45:20 1993\nXhost:\tUn*x v6, pdp11/45\nX\t2.9BSD, pdp11/70\nX---remark---\nX    This is a non-obfuscated obfuscated C program.\nX\nX    It is likely not to win a prize.  But what do you expect from\nX    a short example!\nX---author---\nXname:\tLandon Curt Noll\nXorg:\tIOCCC Judging Group\nXaddr:\tToad Hall\nX\tPO Box 170608\nX\tSan Francisco, California\nX\t94117-0608\nX\tUSA\nXemail:\tchongo@toad.com\nXanon:\tn\nX---author---\nXname:\tLarry Bassel\nXorg:\tIOCCC Judging Group\nXaddr:\tToad Hall\nX\tPO Box 170608\nX\tSan Francisco, California\nX\t94117-0608\nX\tUSA\nXemail:\thoptoad!sun!lab\nX\tlab@sun.com\nXanon:\tn\nX---info---\nXbegin 444 info.file\nXM0V]P>7)I9VAT(\"AC*2!,86YD;VX@0W5R=\"!.;VQL+\"`Q.3DS+@I!;&P@4FEG\nXM:'1S(%)E<V5R=F5D+B`@4&5R;6ES<VEO;B!F;W(@<&5R<V]N86PL(&5D=6-A\nXM=&EO;B!O<B!N;VXM<')O9FET('5S92!I<PIG<F%N=&5D('!R;W9I9&5D('1H\nXM:7,@=&AI<R!C;W!Y<FEG:'0@86YD(&YO=&EC92!A<F4@:6YC;'5D960@:6X@\nXM:71S(&5N=&ER971Y\"F%N9\"!R96UA:6YS('5N86QT97)E9\"X@($%L;\"!O=&AE\nXM<B!U<V5S(&UU<W0@<F5C96EV92!P<FEO<B!P97)M:7-S:6]N(&EN('=R:71I\nXM;F<*9G)O;2!,86YD;VX@0W5R=\"!.;VQL+@H*5&AA=\"!T:&%T(&ES+\"!I<RX*\nXM5&AA=\"!T:&%T(&ES(&YO=\"P*(\"`@(&ES(&YO=\"!T:&%T('1H870@;F]T(&ES\nXM+@I4:&%T(&ES+\"!T:&%T('1H870@:7,@;F]T+\"!I<R$*\"@D)+2T@8VAO;F=O\nXM(#$Y-S0*\"DQA<W0@>65A<BP@;VYE('!E<G-O;B!T;VQD('5S('1H870@=&AE\nXM>2!A8W1U86QL>2!D96-O9&5D('1H:7,@9FEL92X*22!W;VYD97(@:&]W(&UA\nX9;GD@=VEL;\"!D;R!I=\"!T:&ES('EE87(_\"@``\nX`\nXend\nX---build---\nXbegin 444 build\nX28V,@<')O9RYC(\"UO('!R;V<*\nX`\nXend\nX---program---\nXbegin 444 prog.c\nXM;6%I;B@I\"GL*(VEF(&1E9FEN960H05]214=)4U1%4D5$7U9/5$527TE.7U-5\nXM3DY95D%,15]#04Q)1D]23DE!7U5302D*(\"`@('!R:6YT9B@B5F]T92!,86YD\nXM;VX@3F]L;\"!F;W(@4W5N;GEV86QE($-I='D@0V]U;F-I;\"!S96%T(\",Q+EQN\nX:(BD[\"B-E;F1I9@H@(\"`@97AI=\"@P*3L*?0H`\nX`\nXend\nX---end---\nX\nX    Typically the build file should assume that the source is prog.c\nX    and will compile into prog.  If an entry wins, we will rename\nX    its source and binary to avoid filename collision.  By tradition,\nX    we use the name of the entry's title, followed by an optional\nX    digit in case of name conflicts.\nX\nX    If the above entry somehow won the 'least likely to win' award,\nX    we would use chonglab.c and chonglab.\nX\nX    If your entry depends on, or requires that your build, source\nX    and/or binary files be a particular name, please say so in the\nX    ---remark--- section.  If this case applies, it would be be helpful\nX    if you did one of the following:\nX\nX\t* Tell us how to change the filename(s) in your entry.\nX\nX\t* Have the build file make copies of the files.  For example:\nX\nX\t\tcc prog.c -o special_name\t\tneed special binary\nX\nX\t    or  rm -f special_src.c\t\t\tneed special source\nX\t\tcp prog.c special_src.c\nX\t\tcc special_src.c -o special_name\nX\nX\t    or  rm -f special_build\t\t\tneed special build\nX\t\ttail +4 build > special_build\nX\t\tsh < special_build\nX\nX\t* Assume that we will use the entry title.  Send us a version of \nX\t  your build/program files that uses the name convention.  You \nX\t  should uuencode these files in ---data--- sections.\nX\nX    If your entry needs to modify its source, info or binary files,\nX    please say so in the ---remark--- section.  You should try to avoid\nX    touching your original build, source and binary files.  You should\nX    arrange to make copies of the files you intend to modify.  This\nX    will allow people to re-generate your entry from scratch.\nX\nX    Remember that your entry may be built without a build file.  We\nX    typically incorporate the build lines into a Makefile.  If the\nX    build file must exist, say so in the ---remark--- section.\nX\nX    If your entry needs special info files, you should uuencode them\nX    into ---info--- sections.  In the case of multiple info files,\nX    use multiple ---info--- sections.  If no info files are needed,\nX    then skip the ---info--- section.\nX\nX    Info files are intended to be input, or detailed information that\nX    does not fit well into the ---remark--- section.  For example, an\nX    entry that implements a compiler might want to provide some sample\nX    programs for the user to compile.  An entry might want to include a\nX    lengthy design document, that might not be appropriate for a\nX    'hints' file.\nX\nX    Info files should be used only to supplement your entry.  For\nX    example, info files may provide sample input or detailed\nX    information about your entry.  Because they are supplemental,\nX    the entry should not require them exist.\nX\nX    In some cases, your info files might be renamed to avoid name\nX    conflicts.  If info files should not be renamed for some reason,\nX    say so in the ---remark--- section.\nX\nX    Info files must uudecode into the current directory.  If they\nX    absolutely must be renamed, or moved into a sub-directory, say\nX    so in the ---remark--- section.\nX\nX    When submitting multiple entries, be sure that each entry has\nX    a unique entry number from 0 to 7.  Your first entry should\nX    have entry number 0.\nX\nX    With the exception of the header, all text outside of the entry\nX    format may be ignored.  That is, don't place text outside of the\nX    entry and expect the judges to see it.  (Our decoding tools aren't\nX    AI progs!) If you need tell the the something, put it in the \nX    ---remark--- section, or send a Email to the judges at:\nX\nX\t...!{apple,pyramid,sun,uunet}!hoptoad!judges\t(not the address for\nX\tjudges@toad.com\t\t\t\t\t submitting entries)\nX    \nX    The date should be given with respect to UTC.  (Some systems refer \nX    to this as GMT or GMT0)  The format of the date should be that as \nX    returned by asctime() in the C locale.  An example of such a string is:\nX\nX\tThr Apr 01 00:47:00 1993\nX\nX    This format is similar to the output of the date(1) command.  The\nX    string does not include the timezone name before the year.  On many \nX    systems, one of the following command will produce a similar string:\nX\nX\tdate -u \"+%a %h %d %T 19%y\"\nX\tdate -u | sed -e 's/... \\(19[0-9][0-9]\\)$/\\1/'\nX\tsh -c 'TZ=UTC date | sed -e \"s/... \\(19[0-9][0-9]\\)$/\\1/\"'\nX\tsh -c 'TZ=GMT date | sed -e \"s/... \\(19[0-9][0-9]\\)$/\\1/\"'\nX\tsh -c 'TZ=GMT0 date | sed -e \"s/... \\(19[0-9][0-9]\\)$/\\1/\"'\nX\nX    You are allowed to update/fix/revise your entry.  To do so, set\nX    the 'fix' line in the ---entry--- section to 'y' instead of 'n'.\nX    Be sure that the resubmittion uses the same title and entry number\nX    as well, as these are used to determine which entry is to be\nX    replaced.\nX\nX\nXJUDGING PROCESS:\nX\nX    Entries are judged by Larry Bassel and Landon Curt Noll.\nX\nX    Entries are unpacked into individual directories.  The Email message\nX    is unpacked into individual files, each containing:\nX\nX\t---entry--- section\nX\tall ---author--- sections\nX\tall ---info--- sections\nX\t---build--- section\nX\t---program--- section\nX\tany other text, including the Email message headers\nX\nX    Prior to judging, the 'any other text' file is scanned to be sure\nX    it does not contain useful information (or in case the entry was\nX    malformed and did not unpack correctly).  Information from the\nX    ---author--- sections are not read until the judging process is\nX    complete, and then only from entries that have won an award.\nX\nX    The above process helps keep us biased for/against any one particular\nX    individual.  We are usually kept in the dark as much as you are\nX    until the final awards are given.  We like the surprise of finding\nX    out in the end, who won and where they were from.\nX\nX    We attempt to keep all entries anonymous, unless they win an award.\nX    Because the main 'prize' of winning is being announced, we make all\nX    attempts to send non-winners into oblivion.  We remove all non-winning\nX    files, and shred all related paper.  By tradition, we do not even\nX    reveal the number of entries that we received.  (for the curious,\nX    we do indicate the volume of paper consumed when presenting the IOCCC\nX    winners at talks)\nX\nX    After the Usenix announcement, we attempt to send Email to the\nX    authors of the winning entries.  One reason we do this is to give\nX    the authors a chance to comment on the way we have presented their\nX    entry.  They are given the chance to correct mistakes, typos.  We\nX    often accept their suggestions/comments about our remarks as well.\nX    This is done prior to posting the winners to the wide world.\nX\nX    Judging consists of a number of elimination rounds.  During a round,\nX    the collection of entries are divided into two roughly equal piles;\nX    the pile that advances on to the next round, and the pile that does\nX    not.  We also re-examine the entries that were eliminated in the\nX    previous round.  Thus, an entry gets at least two readings.\nX\nX    A reading consists of a number of actions:\nX\nX\t* reading the ---entry--- section\nX\t* reading the uudecoded ---build--- section\nX\t* reading the uudecoded ---program--- section\nX\t* reading the uudecoded ---info--- section(s), if any\nX\t* passing the source thru the C pre-processor\nX\t    shipping over any #include files\nX\t* performing a number of C beautify/cleanup edits on the source\nX\t* passing the beautified source thru the C pre-processor\nX\t    shipping over any #include files\nX\nX    In later rounds, other actions are performed:\nX\nX\t* linting the source\nX\t* compiling/building the source\nX\t* running the program\nX\t* performing misc tests on the source and binary\nX\nX    Until we reduce the stack of entries down to about 25 entries, entries\nX    are judged on an individual basis.  An entry is set aside because it\nX    does not, in our opinion, meet the standard established by the round.\nX    When the number of entries thins to about 25 entries, we begin to form\nX    award categories.  Entries begin to compete with each other for awards.\nX    An entry often will compete in several categories.\nX\nX    The actual award category list will vary depending on the types of entries\nX    we receive.  A typical category list might be:\nX\nX\t* best small one line program\nX\t* best small program\nX\t* strangest/most creative source layout\nX\t* most useful obfuscated program\nX\t* best game that is obfuscated\nX\t* most creatively obfuscated program\nX\t* most deceptive C code\nX\t* best X client (see OUR LIKES AND DISLIKES)\nX\t* best abuse of ANSI C\nX\t* worst abuse of the rules\nX\t* <anything else so strange that it deserves an award>\nX\nX    We do not limit ourselves to this list.  For example, a few entries are so\nX    good/bad that they are declared winners at the start of the final round.\nX    We will invent awards categories for them, if necessary.\nX\nX    In the final round process, we perform the difficult tasks of\nX    reducing the remaining entries (typically about 25) down to 8 or 10\nX    winners.  Often we are confident that the entries that make it into\nX    the final round are definitely better than the ones that do not\nX    make it.  The selection of the winners out of the final round, is\nX    less clear cut.\nX\nX    Sometimes a final round entry good enough to win, but is beat out\nX    by a similar, but slightly better entry.  For this reason, it is\nX    sometimes worthwhile to re-enter an improved version of an entry \nX    that failed to win in a previous year.  This assumes, of course, \nX    that the entry is worth improving in the first place!\nX\nX    More often that not, we select a small entry (usually one line), a\nX    strange/creative layout entry, and an entry that abuses the contest\nX    rules in some way.\nX\nX    In the end, we traditionally pick one entry as 'best'.  Sometimes such\nX    an entry simply far exceeds any of the other entry.  More often, the\nX    'best' is picked because it does well in a number of categories.\nX\nX\nXANNOUNCEMENT OF WINNERS:\nX\nX    The first announcement, occurs at a Summer Usenix conference.  By tradition,\nX    this is done during the latter part of the UUNET/IOCCC BOF, just prior to\nX    the Berkeley BSD, and BSDI BOF.\nX\nX    Winning entries will be posted in late June to the following groups:\nX\nX\t    comp.lang.c\t\t  comp.unix.wizards\talt.sources\nX\nX    In addition, pointers to these postings are posted to the following\nX\nX\t    comp.sources.d\t  alt.sources.d\t\tmisc.misc\nX\t    comp.sources.misc\t  comp.windows.x\nX\nX    Winning entries will be deposited into the uunet archives.  See\nX    below for details.\nX\nX    Often, winning entries are published in selected magazines.  Winners \nX    have appeared in books (\"The New Hackers Dictionary\") and on T-Shirts.\nX\nX    Last, but not least, winners receive international fame and flames!  :-)\nX\nX\nXFOR MORE INFORMATION:\nX\nX    You may contact the judges by sending Email to the following address:\nX\nX\t...!{apple,pyramid,sun,uunet}!hoptoad!judges\t(not the address for\nX\tjudges@toad.com\t\t\t\t\t submitting entries)\nX\nX    Questions and comments about the contest are welcome.\nX\nX    One may obtain a copy of the current rules, guidelines or mkentry\nX    program.  To obtain all 3 of them, send Email to the address above \nX    and use the subject 'send rules'.\nX\nX    One may also obtain the above items, we well as winners of previous\nX    contests, via anonymous ftp from:\nX\nX\thost: ftp.uu.net\t(137.39.1.9)\nX\tuser: anonymous\nX\tpass: yourname@yourhost\nX\tdir:  pub/ioccc\nX\nX    Often, contest rules, guidelines and winners are available from\nX    archive sites.  Check comp.sources.unix archives, for example.\nX    You may also request previous winners by Email, using the judges\nX    Email address, though we ask that you do this as a last resort.\nX\nX\nXchongo <Landon Curt Noll> /\\cc/\\  \thoptoad!chongo\nXLarry Bassel\t\t\t  \t{uunet,ucbvax,cbosgd}|sun!lab\nSHAR_EOF\nchmod 0444 guidelines ||\necho \"restore of guidelines failed\"\nset `wc -c guidelines`;Wc_c=$1\nif test \"$Wc_c\" != \"25375\"; then\n\techo original size 25375, current size $Wc_c\nfi\necho \"End of part 1, continue with part 2\"\nexit 0\n-- \nSunnyvale residents: Vote Landon Noll for Sunnyvale City Council seat 1.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6127, "properties": {"category": "comp.sys.mac.hardware", "text": "From: news@news.claremont.edu (The News System)\nSubject: re: Dead mouse ?\nOrganization: Harvey Mudd College, Claremont CA 91711\nLines: 1\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6128, "properties": {"category": "rec.sport.hockey", "text": "From: c5ff@jupiter.sun.csd.unb.ca (COOK  Charlie)\nSubject: NHL Summary parse results for games played Mon, April 19, 1993\nOrganization: University of New Brunswick\nLines: 79\n\nToronto                          1 1 1--3\nDetroit                          1 4 1--6\nFirst period\n     1, Detroit, Yzerman 1 (Gallant, Ciccarelli) 4:48.\n     2, Toronto, Cullen 1 (Clark, Gill) 10:44.\nSecond period\n     3, Detroit, Sheppard 1 (Probert, Coffey) pp, 5:04.\n     4, Detroit, Burr 1 (Racine) sh, 6:42.\n     5, Detroit, Chiasson 1 (Coffey) pp,11:00.\n     6, Detroit, Howe 1 (Yzerman, Drake) 14:46.\n     7, Toronto, Gilmour 1 (Borschevsky, Ellett) pp, 19:59.\nThird period\n     8, Detroit, Racine 1 (Primeau, Drake) 5:10.\n     9, Toronto, Lefebvre 1 (Cullen, Pearson) 7:45.\n\nDetroit: 6    Power play: 6-2   Special goals:  pp: 2  sh: 1  Total: 3\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBurr               1    0    1\nChiasson           1    0    1\nCiccarelli         0    1    1\nCoffey             0    2    2\nDrake              0    2    2\nGallant            0    1    1\nHowe               1    0    1\nPrimeau            0    1    1\nProbert            0    1    1\nRacine             1    1    2\nSheppard           1    0    1\nYzerman            1    1    2\n\nToronto: 3    Power play: 5-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBorschevsky        0    1    1\nClark              0    1    1\nCullen             1    1    2\nEllett             0    1    1\nGill               0    1    1\nGilmour            1    0    1\nLefebvre           1    0    1\nPearson            0    1    1\n\n-----------------------------------------\nWinnipeg                         1 0 1--2\nVancouver                        2 0 2--4\nFirst period\n     1, Vancouver, Adams 1 (Linden, Bure) pp, 1:23.\n     2, Vancouver, Craven 1 (Bure, Murzyn) 9:56.\n     3, Winnipeg, Steen 1 (Shannon, Housley) pp, 17:53.\nSecond period\n     No scoring.\nThird period\n     4, Winnipeg, King 1 (Barnes) 3:43.\n     5, Vancouver, Linden 1(Courtnall, McLean) 12:16.\n     6, Vancouver, Ronning 1 (Courtnall) 18:31.\n\nVancouver: 4    Power play: 6-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAdams              1    0    1\nBure               0    2    2\nCourtnall          0    2    2\nCraven             1    0    1\nLinden             1    1    2\nMcLean             0    1    1\nMurzyn             0    1    1\nRonning            1    0    1\n\nWinnipeg: 2    Power play: 3-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBarnes             0    1    1\nHousley            0    1    1\nKing               1    0    1\nShannon            0    1    1\nSteen              1    0    1\n\n-----------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6129, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Hand Held Products, Inc.\nLines: 35\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <1993Apr20.151131.8531@news.uit.no> paale@stud.cs.uit.no (Paal  \nEllingsen) writes:\n> In article <1r0qsrINNc61@clem.handheld.com>, Jim De Arras writes:\n> |> Mr. Roby, you are a government sucking heartless bastard.  Humans died  \n> |> yesterday, humans who would not have died if the FBI had not taken the  \nactions  \n> |> they did.  That is the undeniable truth. \n> \n> ....the question is: for how long? Even if the FBI had done nothing, I guess  \nthe \n> BDs would have committed suicide, but maybe not until hunger and thirst gave  \nthem\n> the choice between sucide or surrender. \n> The BDs was warned in beforehand about the FBI action. They HAD the chance to\n> surrender and get a fair trial. No matter who started the fire, the BDs were \n> responsible for 80+ peole dying. No one else.\n> \n\nThis is, of course, your opinion.  I differ greatly.  There can be NO doubt the  \nFBI at least shares in the blame.\n\n> -- \n> ============================================================================\n> Paal Ellingsen       | Borgensvingen 67/102 | Tlf.: 083 50933\n> paale@stud.cs.uit.no | 9100 Kvaloeysletta   | DATA = Dobbelt Arbeid Til Alle\n> ============================================================================\n\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6130, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ez005997@othello.ucdavis.edu (Oppy)\nSubject: Info. on Genoa 8500 vlb card or other low-end vlb?\nOriginator: ez005997@othello.ucdavis.edu\nOrganization: University of California, Davis\nDistribution: usa\nLines: 16\n\nI am looking for an inexpensive vlb card, and have yet to run across any\nreal reviews of them. One of the cards the local stores are pushing is\nthe Genoa 8500 for $125-140. Apparently it uses a Cirrus Logic acc. chip,\nbut I don't know which one (GD5426?). One of the shops I've spoken with \nclaims the card out-performs the Diamond Stealth 24 vl and the Orchid\nFahrenheit 1280 plus vl cards (S3 86C805 based), but that can't be true\nif it is using the GD5426. I like the price of the Genoa 8500, but if it\nlags in performance behind the S3 cards, I'll pay the extra $50 for one \nof them.\n\nAny info. on low end vlb cards would be appreciated. If I get replies via\nemail, I'll post summary info. if anyone else is interested.\n\nThanks in advance,\nBrian Oppy  (bjoppy@ucdavis.edu)\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6131, "properties": {"category": "talk.politics.guns", "text": "From: scottj@magic.dml.georgetown.edu (John L. Scott)\nSubject: Apology (was: Luser!)\nOrganization: J. Random Misconfigured Site\nX-Posted-From: iamac-1.dml.georgetown.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 10\n\nI was shocked to see that the subject of my last rely to awesley was\n\"Luser!\"  That was certainly not my intention.  I meant to leave the\nsubject line unchanged.  I believe that the NNTP server I use at columbia\nmust have put in that subject line in protest over problems with my header.\n That was rather rude of them, but beggars can't be choosers, I suppose.\n\nIn any case, I didn't do it and I apologize to awesley for the apparent\ninsult.\n\n--John L. Scott\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6132, "properties": {"category": "comp.sys.mac.hardware", "text": "From: johnston@me.udel.edu (Bill Johnston)\nSubject: Re: Quadra SCSI Problems???\nKeywords: Quadra SCSI APS\nNntp-Posting-Host: me.udel.edu\nOrganization: University of Delaware\nLines: 19\n\nIn article <1993Apr16.144750.1568@mintaka.lcs.mit.edu> nodine@lcs.mit.edu (Mark H. Nodine) writes:\n>I don't know about the specific problem mentioned in your\n>message, but I definitely had SCSI problems between my\n>Q700 and my venerable Jasmine Megadrive 10 cartridge\n>drives.  My solution was to get Silverlining.  None of\n>the loops that involved blind writes worked to the drives;\n>in fact the only loop that worked was the \"Macintosh\n>Software\" loop (whatever that means).\n\nI doubt this is a Quadra-specific problem.  I had to get\nrid of my \"venerable\" Bernoulli 20 last year (with enough \ncartridges purchased at ~$90 each to make the whole thing \nworth more than my whole computer ;).  The tech support guys\nat Ocean Microsystems suggested that some third-party drivers \nmight fix the problem - in my case the cartridges wouldn't \nformat/mount/partition for A/UX.  \n-- \n-- Bill Johnston (johnston@me.udel.edu)\n-- 38 Chambers Street; Newark, DE 19711; (302)368-1949\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6133, "properties": {"category": "rec.autos", "text": "From: eliot@lanmola.engr.washington.edu (eliot)\nSubject: Re: MR2 - noisy engine.\nOrganization: clearer than blir\nLines: 20\nNNTP-Posting-Host: lanmola.engr.washington.edu\n\nIn article <1r1vofINN871@usenet.pa.dec.com> tomacj@opco.enet.dec.com (THUNDERBIRDS ARE GO !!!) writes:\n>\tAre there any MR2 owners or motor-head gurus out there, that know why\n>my MR2's engine sounds noisy? The MR2's engine is noisy at the best of times, \n>but not even a nice nose - it's one of those very ugly noises. \n\nassuming yours is a non turbo MR2, the gruffness is characteristic of\na large inline 4 that doesn't have balance shafts.  i guess toyota\ndidn't care about \"little\" details like that when they can brag about\nthe mid engine configuration and the flashy styling.\n\nmyself, i automatically cross out any car from consideration (or\nrecommendation) which has an inline 4 larger than 2 liters and no\nbalance shafts..  it is a good rule of thumb to keep in mind if you\never want a halfway decent engine.  \n\nif the noise really bugs you, there is nothing else that you can do\nexcept to sell it and get a V6.\n\n\neliot\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6134, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: Trident 8900 switch settings (someone archive this!)\nFrom: j3gum@vax1.mankato.msus.edu\nOrganization: Mankato State University\nLines: 109\n\nT8900DIP.TXT - Jeffrey E. Hundstad (j3gum@vax1.mankato.msus.edu)\n\n                     Switch Settings on the Trident 8900C\n\n----------------------------------\\         /-----------------|\n|                                  ---------                  |\n|                                        9                ----|\n| xx 8  8  8  8    -------                   -------      | 1\n| xx               |  6  |                   |  10 |      |---|\n|                  |     |  4                -------      | 2\n| xx               ------ j1 j2                           |---|\n| xx 8  8  8  8    -------       --------                 | 3\n|                  |   5 |       |   5  |                 |---|\n|--------------|   ------- |-|   --------    7   |-|          |\n               |-----------| |-------------------| |-----------\n                   VGA Graphics Adapter Layout #1 (8-DRAM)\n\n----------------------------------\\         /-----------------|\n|                                  ---------      4 j3        |\n|                  -------               9                ----|\n| 11 8  8  8  8    |     |                  --------      | 1\n|                  |  6  |                  |   10 |      |---|\n|                  -------  4     -------   --------      | 2\n|                          j2     |  5   |                |---|\n| 11 8  8  8  8                   -------                 | 3\n|                                 |  5   |           4 j1 |---|\n|--------------|           |-|    --------   7   |-|          |\n               |-----------| |-------------------| |-----------\n                VGA Graphics Adapter Layout #2 (2/4/8 - DRAM)\n\n----------------------------------\\         /-----------------|\n|                                  ---------        4 j3      |\n|                  -------               9                ----|\n| 11 8  8  8  8    |     |                  --------      | 1\n|                  |  6  |         -------  |   10  |     |---|\n|                  -------     4   |  5  |  --------      | 2\n|                              j2  -------                |---|\n| 11 8  8  8  8                    |  5  |                | 3\n|                    4 j3          -------                |---|\n|--------------|           |-|                   |-|   4 j1   |\n               |-----------| |-------------------| |-----------\n                VGA GRaphics Adapter Layout #3 (2/4/8 - DRAM)\n\n1.  Dip Switches\n2.  DB-15 connector: For analog monitors.\n3.  DB-9 connector: for TTL monitors. (* NOTE #1)\n4.  Jumers J1, J2, J3, J4 (J3 for layouts #2 and #3, J4 for layout #3)\n5.  Video BIOS: Basic Input/Ouput System.\n6.  TVGA 8900 Chip: VGA GRaphics chip.\n7.  Edge connector: For IBM PC/XT, PC/AT and compatible systems.\n8.  Video DRAM: up to 1MB\n9.  Feature connector: For special applications.\n10. Video DAC\n11. Jumper Blocks JP1 and JP2 (2/4/8 board only)\n* NOTE #1 - Hardware option.  Feature not present for all board versions.\n\nSwitch settings for the 6 switch dip box (#1 from figures).\n\nSwitch 3:  Scan Rate\n  On  - Less than 48KHz (default)\n  Off - 38-49Khz\n\nSwitch 5:  Fast and Slow Address Decode\n  Off - Fast address decode (default)\n  On  - Slow address decode\n\nSwitch 6:  8/16 bit Data Path\n  Off - 16-bit data path (default)\n  On  - 8-bit data path\n\n\nJumper settings\n\nJ1:  Settings for IRQ9\n 1 2 3     1 2 3\n   xxx     xxx\n Off (def)   On\n\nJ2:  Settings for Bus Size Detections\n1           1 x\n2 x         2 x\n3 x         3\nAutodetect  Standard Interface\n(def)\n\nJ3:  Settings for DRAM Configuration\n   1  2  3       1  2  3       1  2  3\n   ----          |  |             ----\n   ----          |  |             ----\n   4  5  6       4  5  6       4  5  6\n\n    Two DRAM      Four DRAM      Eight DRAM\n\nJ4:  DRAM Clock Select\n 1 2 3     1 2 3\n   xxx     xxx\n 40 MHz    48 MHz\nTwo DRAM   4/8 DRAM\n\n\nSW1 & SW2\n\nSwich Setings       | SW1 | SW2\n--------------------+-----+----\nVGA mode (default)  | On  | On\nEGA mode            | Off | On\nCGA mode            | On  | Off\nMDA/Hercules mode   | Off | Off\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.290+0000", "event": "documents", "entityId": 6135, "properties": {"category": "soc.religion.christian", "text": "From: news@cbnewsk.att.com\nSubject: Re: Bible Unsuitable for New Christians\nOrganization: AT&T Bell Labs\nLines: 8\n\nTrue.\n\nAlso read 2 Peter 3:16\n\nPeter warns that the scriptures are often hard to understand by those who\nare not learned on the subject.\n\nJoe Moore\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6136, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: 'Easter' not derived from 'Ishtar'\nOrganization: AI Programs, University of Georgia, Athens\nLines: 22\n\nSeveral recent posts have identified the English word 'Easter' with\nthe Babylonian goddess 'Ishtar'.\n\n'Easter' is a pagan word all right, but it has nothing to do with Ishtar.\nIf 'Easter' and 'Ishtar' were related, their history would show it.\nBut in Old English, Easter was 'Eostre', cognate with English 'East'\nand German 'Ost'.   The reconstructed Proto-Germanic form is 'Austron'.\nNot until after 1400 did 'Easter' have a high front vowel like 'Ishtar'.\nClearly, the two words have quite separate origins.\n\nThere may be neo-pagans who worship Ishtar at Easter, but if so, they\nare making either a mistake of etymology, or a deliberate play on words.\n\n-- Michael Covington  (Ph.D., linguistics)\n\n\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6137, "properties": {"category": "comp.sys.mac.hardware", "text": "From: aw@camcon.co.uk (Alain Waha)\nSubject: Re: New Duo Dock info.\nOrganization: Cambridge Consultants Ltd., Cambridge, UK\nLines: 7\n\n>> In article <nazario-040493023201@stiles-42-kstar-node.net.yale.edu>, nazario@pop.cis.yale.edu (Edgardo Nazario) writes:\n>> > The info I am about to give is not a rumour, it's the truth. The new\n>> > macintosh coming in the second quarter, will have a cpu of their own. \n\nExcuse me but... have not all Macs got a CPU!!!\n\nAlain\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6138, "properties": {"category": "comp.graphics", "text": "From: mogal@deadhead.asd.sgi.com (Joshua Mogal)\nSubject: Re: Hollywood Hits, Virtual Reality\nOrganization: Silicon Graphics, Inc.\nLines: 137\nNNTP-Posting-Host: deadhead.asd.sgi.com\n\nSorry I missed you Raymond, I was just out in Dahlgren last month...\n\nI'm the Virtual Reality market manager for Silicon Graphics, so perhaps I\ncan help a little.\n\nIn article <1993Mar17.185725.13487@relay.nswc.navy.mil>,\nrchui@nswc-wo.nswc.navy.mil (Raymond Chui) writes:\n|> Hello, the real reality. Our agency started to express interest in\n|> virtual reality(VR).  So far, we do not know much about VR.  All we\n|> know about are the Hollywood movies \"The Terminater 2\" and \"Lawnmover\n|> Man\".  We also know something about VR from ABC news magazine and\n|> Computer Graphics World magazine.\n\n\nUnfortunately, while SGI systems were used to create the special effects\nfor both Terminator 2 and Lawnmower Man, those are film-quality computer\ngraphics, rendered in software and written to film a frame at a time.  Each\nframe of computer animation for those films took hours to render on\nhigh-end parallel processing computer systems. Thus, that level of graphics\nwould be difficult, if not impossible, to acheive in real time (30 frames\nper second).\n\n\n|> \n|> We certainly want to know more about VR.  Who are the leading\n|> companies,\n|> agencies, universities?  What machines support VR (i.e. SGI, Sun4,\n|> HP-9000, BIM-6000, etc.)?\n\n\nIt depends upon how serious you are and how advanced your application is.\nTrue immersive visualization (VR), requires the rendering of complex visual\ndatabases at anywhere from 20 to 60 newly rendered frames per second.  This\nis a similar requirement to that of traditional flight simulators for pilot\ntraining. If the frame rate is too low, the user notices the stepping of\nthe frames as they move their head rapidly around the scene, so the motion\nof the graphics is not smooth and contiguous.  Thus the graphics system\nmust be powerful enough to sustain high frame rates while rendering complex\ndata representations.\n\nAdditionally, the frame rate must be constant.  If the system renders 15\nframes per second at one point, then 60 frames per second the next (perhaps\ndue to the scene in the new viewing direction being simpler than what was\nvisible before), the user can get heavily distracted by the medium (the\ngraphics computer) rather than focusing on the data. To maintain a constant\nframe rate, the system must be able to run in real-time.  UNIX in general\ndoes not support real-time operation, but Silicon Graphics has modified the\nUNIX kernel for its multi-processor systems to be able to support real-time\noperation, bypassing the usual UNIX process priority-management schemes. \nUniprocessor systems running UNIX cannot fundamentally support real-time\noperation (not Sun SPARC10, not HP 700 Series systems, not IBM RS-6000, not\neven SGI's uniprocessor systems like Indigo or Crimson). Only our\nmultiprocessor Onyx and Challenge systems support real-time operation due\nto their Symmetric Multi-Processing (SMP) shared-memory architecture.\n\nFrom a graphics perspective, rendering complex virtual environments\nrequires advanced rendering techniques like texture mapping and real-time\nmulti-sample anti-aliasing.  Of all of the general purpose graphics systems\non the market today, only Crimson RealityEngine and Onyx RealityEngine2\nsystems fully support these capabilities. The anti-aliasing is particularly\nimportant, as the crawling jagged edges of aliased polygons is an\nunfortunate distraction when immersed in a virtual environment.\n\n\n|>  What kind of graphics languages are used with VR\n|> (GL, opengl, Phigs, PEX, GKS, etc.)?\n\nYou can use the general purpose graphics libraries listed above to develop\nVR applications, but that is starting at a pretty low level. There are\noff-the- shelf software packages available to get you going much faster,\nbeing targeted directly at the VR application developer. Some of the most\npopular are (in no particular order):\n\n\t- Division Inc.\t\t    (Redwood City, CA) - dVS\n\t- Sens8 Inc.\t\t    (Sausalito, CA)    - WorldToolKit\n\t- Naval Postgraduate School (Monterey, CA)     - NPSnet (FREE!)\n\t- Gemini Technology Corp    (Irvine, CA)       - GVS Simation Series\n\t- Paradigm Simulation Inc.  (Dallas, TX)       - VisionWorks, AudioWorks\n\t- Silicon Graphics Inc.\t    (Mountain View,CA) - IRIS Performer\n\nThere are some others, but not off the top of my head...\n\n\t\n|> What companies are making\n|> interface devices for VR (goggles or BOOM (Binocular Omni-Orientational\n|> Monitor), hamlets, gloves, arms, etc.)?\n\nThere are too many to list here, but here is a smattering:\n\n\t- Fake Space Labs\t    (Menlo Park,CA)    - BOOM\n\t- Virtual Technologies Inc. (Stanford, CA)     - CyberGlove\n\t- Digital Image Design\t    (New York, NY)     - The Cricket (3D input)\n\t- Kaiser Electro Optics\t    (Carlsbad, CA)     - Sim Eye Helmet Displays\n\t- Virtual Research\t    (Sunnyvale, CA)    - Flight Helmet display\n\t- Virtual Reality Inc.\t    (Pleasantville,NY) - Head Mtd Displays, s/w\n\t- Software Systems\t    (San Jose, CA)     - 3D Modeling software\n\t- etc., etc., etc.\n\n\n|> What are those company's\n|> addresses and phone numbers?  Where we can get a list name of VR\n|> experts\n|> and their phone numbers and Email addresses?\n\n\nRead some of the VR books on the market:\n\n\t- Virtual Reality - Ken Pimental and Ken Texiera (sp?)\n\t- Virtual Mirage\n\t- Artificial Reality - Myron Kreuger\n\t- etc.\n\nOr check out the newsgroup sci.virtual_worlds\n\nFeel free to contact me for more info.\n\nRegards,\n\nJosh\n\n-- \n\n\n**************************************************************************\n**\t\t\t\t     **\t\t\t\t\t**\n**\tJoshua Mogal\t\t     **\tProduct Manager\t\t\t**\n**\tAdvanced Graphics Division   **\t  Advanced Graphics Systems\t**\n**\tSilicon Graphics Inc.\t     **\tMarket Manager\t\t\t**\n**\t2011 North Shoreline Blvd.   **\t  Virtual Reality\t\t**\n**\tMountain View, CA 94039-7311 **\t  Interactive Entertainment\t**\n**\tM/S 9L-580\t\t     **\t\t\t\t\t**\n**\t\t\t\t     *************************************\n**\tTel:\t(415) 390-1460\t\t\t\t\t\t**\n**\tFax:\t(415) 964-8671\t\t\t\t\t\t**\n**\tE-mail:\tmogal@sgi.com\t\t\t\t\t\t**\n**\t\t\t\t\t\t\t\t\t**\n**************************************************************************\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6139, "properties": {"category": "talk.politics.misc", "text": "From: thester@nyx.cs.du.edu (Uncle Fester)\nSubject: Re: New Study Out On Gay Percentage\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 23\n\nIn article <Apr.17.06.54.41.1993.15825@romulus.rutgers.edu> kaldis@romulu\n.rutgers.edu (Theodore A. Kaldis) writes:\n>> -- \n>> ------          Join the Pythagorean Reform Church!               .\n>> \\    /        Repent of your evil irrational numbers             . .\n>>  \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n>              ^^^^^^^^^^^\n>>   \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n>\n>The above smacks of antiHispanic bigotry.\n\n     Really?  What if it said \"lentil eating\" or \"legume eating\",\n     what then? \n     And I suppose \"Accept 10\" is anti-Octal bigotry?\n     Geez, how PC can you get!?\n\n     Uncle Fester\n\n--\n           :     What God Wants      :  God wants gigolos          :\n           :        God gets         :  God wants giraffes         :\n           :     God help us all     :  God wants politics         :\n           : *thester@nyx.cs.du.edu* :  God wants a good laugh     :\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6140, "properties": {"category": "sci.crypt", "text": "From: clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement)\nSubject: text of White House announcement and Q&As on clipper chip encryption\nOrganization: National Institute of Standards & Technology\nDistribution: na\nLines: 282\n\n\nNote:  This file will also be available via anonymous file\ntransfer from csrc.ncsl.nist.gov in directory /pub/nistnews and\nvia the NIST Computer Security BBS at 301-948-5717.\n     ---------------------------------------------------\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n\n_________________________________________________________________\n\nFor Immediate Release                           April 16, 1993\n\n\n                STATEMENT BY THE PRESS SECRETARY\n\n\nThe President today announced a new initiative that will bring\nthe Federal Government together with industry in a voluntary\nprogram to improve the security and privacy of telephone\ncommunications while meeting the legitimate needs of law\nenforcement.\n\nThe initiative will involve the creation of new products to\naccelerate the development and use of advanced and secure\ntelecommunications networks and wireless communications links.\n\nFor too long there has been little or no dialogue between our\nprivate sector and the law enforcement community to resolve the\ntension between economic vitality and the real challenges of\nprotecting Americans.  Rather than use technology to accommodate\nthe sometimes competing interests of economic growth, privacy and\nlaw enforcement, previous policies have pitted government against\nindustry and the rights of privacy against law enforcement.\n\nSophisticated encryption technology has been used for years to\nprotect electronic funds transfer.  It is now being used to\nprotect electronic mail and computer files.  While encryption\ntechnology can help Americans protect business secrets and the\nunauthorized release of personal information, it also can be used\nby terrorists, drug dealers, and other criminals.\n\nA state-of-the-art microcircuit called the \"Clipper Chip\" has\nbeen developed by government engineers.  The chip represents a\nnew approach to encryption technology.  It can be used in new,\nrelatively inexpensive encryption devices that can be attached to\nan ordinary telephone.  It scrambles telephone communications\nusing an encryption algorithm that is more powerful than many in\ncommercial use today.\n\nThis new technology will help companies protect proprietary\ninformation, protect the privacy of personal phone conversations\nand prevent unauthorized release of data transmitted\nelectronically.  At the same time this technology preserves the\nability of federal, state and local law enforcement agencies to\nintercept lawfully the phone conversations of criminals. \n\nA \"key-escrow\" system will be established to ensure that the\n\"Clipper Chip\" is used to protect the privacy of law-abiding\nAmericans.  Each device containing the chip will have two unique\n\n\n                                2\n\n\n\"keys,\" numbers that will be needed by authorized government\nagencies to decode messages encoded by the device.  When the\ndevice is manufactured, the two keys will be deposited separately\nin two \"key-escrow\" data bases that will be established by the\nAttorney General.  Access to these keys will be limited to\ngovernment officials with legal authorization to conduct a\nwiretap.\n\nThe \"Clipper Chip\" technology provides law enforcement with no\nnew authorities to access the content of the private\nconversations of Americans.\n\nTo demonstrate the effectiveness of this new technology, the\nAttorney General will soon purchase several thousand of the new\ndevices.  In addition, respected experts from outside the\ngovernment will be offered access to the confidential details of\nthe algorithm to assess its capabilities and publicly report\ntheir findings.\n\nThe chip is an important step in addressing the problem of\nencryption's dual-edge sword:  encryption helps to protect the\nprivacy of individuals and industry, but it also can shield\ncriminals and terrorists.  We need the \"Clipper Chip\" and other\napproaches that can both provide law-abiding citizens with access\nto the encryption they need and prevent criminals from using it\nto hide their illegal activities.  In order to assess technology\ntrends and explore new approaches (like the key-escrow system),\nthe President has directed government agencies to develop a\ncomprehensive policy on encryption that accommodates:\n\n     --   the privacy of our citizens, including the need to\n          employ voice or data encryption for business purposes;\n\n     --   the ability of authorized officials to access telephone\n          calls and data, under proper court or other legal\n          order, when necessary to protect our citizens;\n\n     --   the effective and timely use of the most modern\n          technology to build the National Information\n          Infrastructure needed to promote economic growth and\n          the competitiveness of American industry in the global\n          marketplace; and \n\n     --   the need of U.S. companies to manufacture and export\n          high technology products.\n\nThe President has directed early and frequent consultations with\naffected industries, the Congress and groups that advocate the\nprivacy rights of individuals as policy options are developed.\n\n\n\n                                3\n\nThe Administration is committed to working with the private\nsector to spur the development of a National Information\nInfrastructure which will use new telecommunications and computer\ntechnologies to give Americans unprecedented access to\ninformation.  This infrastructure of high-speed networks\n(\"information superhighways\") will transmit video, images, HDTV\nprogramming, and huge data files as easily as today's telephone\nsystem transmits voice.\n\nSince encryption technology will play an increasingly important\nrole in that infrastructure, the Federal Government must act\nquickly to develop consistent, comprehensive policies regarding\nits use.  The Administration is committed to policies that\nprotect all Americans' right to privacy while also protecting\nthem from those who break the law.\n\nFurther information is provided in an accompanying fact sheet. \nThe provisions of the President's directive to acquire the new\nencryption technology are also available.  \n\nFor additional details, call Mat Heyman, National Institute of\nStandards and Technology, (301) 975-2758.\n\n---------------------------------\n\n\nQUESTIONS AND ANSWERS ABOUT THE CLINTON ADMINISTRATION'S\nTELECOMMUNICATIONS INITIATIVE\n\n\n\n\nQ:   Does this approach expand the authority of government\n     agencies to listen in on phone conversations?\n\nA:   No.  \"Clipper Chip\" technology provides law enforcement with\n     no new authorities to access the content of the private\n     conversations of Americans.\n\nQ:   Suppose a law enforcement agency is conducting a wiretap on\n     a drug smuggling ring and intercepts a conversation\n     encrypted using the device.  What would they have to do to\n     decipher the message?\n\nA:   They would have to obtain legal authorization, normally a\n     court order, to do the wiretap in the first place.  They\n     would then present documentation of this authorization to\n     the two entities responsible for safeguarding the keys and\n     obtain the keys for the device being used by the drug\n     smugglers.  The key is split into two parts, which are\n     stored separately in order to ensure the security of the key\n     escrow system.\n\nQ:   Who will run the key-escrow data banks?\n\nA:   The two key-escrow data banks will be run by two independent\n     entities.  At this point, the Department of Justice and the\n     Administration have yet to determine which agencies will\n     oversee the key-escrow data banks.\n\nQ:   How strong is the security in the device?  How can I be sure\n     how strong the security is?  \n\nA:   This system is more secure than many other voice encryption\n     systems readily available today.  While the algorithm will\n     remain classified to protect the security of the key escrow\n     system, we are willing to invite an independent panel of\n     cryptography experts to evaluate the algorithm to assure all\n     potential users that there are no unrecognized\n     vulnerabilities.\n\nQ:   Whose decision was it to propose this product?\n\nA:   The National Security Council, the Justice Department, the\n     Commerce Department, and other key agencies were involved in\n     this decision.  This approach has been endorsed by the\n     President, the Vice President, and appropriate Cabinet\n     officials.\n\nQ:   Who was consulted?  The Congress?  Industry?\n\nA:   We have on-going discussions with Congress and industry on\n     encryption issues, and expect those discussions to intensify\n     as we carry out our review of encryption policy.  We have\n     briefed members of Congress and industry leaders on the\n     decisions related to this initiative.\n\nQ:   Will the government provide the hardware to manufacturers?\n\nA:   The government designed and developed the key access\n     encryption microcircuits, but it is not providing the\n     microcircuits to product manufacturers.  Product\n     manufacturers can acquire the microcircuits from the chip\n     manufacturer that produces them.\n\nQ:   Who provides the \"Clipper Chip\"?\n\nA:   Mykotronx programs it at their facility in Torrance,\n     California, and will sell the chip to encryption device\n     manufacturers.  The programming function could be licensed\n     to other vendors in the future.\n\nQ:   How do I buy one of these encryption devices? \n\nA:   We expect several manufacturers to consider incorporating\n     the \"Clipper Chip\" into their devices.\n     \nQ:   If the Administration were unable to find a technological\n     solution like the one proposed, would the Administration be\n     willing to use legal remedies to restrict access to more\n     powerful encryption devices?\n\nA:   This is a fundamental policy question which will be\n     considered during the broad policy review.  The key escrow\n     mechanism will provide Americans with an encryption product\n     that is more secure, more convenient, and less expensive\n     than others readily available today, but it is just one\n     piece of what must be the comprehensive approach to\n     encryption technology, which the Administration is\n     developing.\n\n     The Administration is not saying, \"since encryption\n     threatens the public safety and effective law enforcement,\n     we will prohibit it outright\" (as some countries have\n     effectively done); nor is the U.S. saying that \"every\n     American, as a matter of right, is entitled to an\n     unbreakable commercial encryption product.\"  There is a\n     false \"tension\" created in the assessment that this issue is\n     an \"either-or\" proposition.  Rather, both concerns can be,\n     and in fact are, harmoniously balanced through a reasoned,\n     balanced approach such as is proposed with the \"Clipper\n     Chip\" and similar encryption techniques.\n\nQ:   What does this decision indicate about how the Clinton\n     Administration's policy toward encryption will differ from\n     that of the Bush Administration?  \n\nA:   It indicates that we understand the importance of encryption\n     technology in telecommunications and computing and are\n     committed to working with industry and public-interest\n     groups to find innovative ways to protect Americans'\n     privacy, help businesses to compete, and ensure that law\n     enforcement agencies have the tools they need to fight crime\n     and terrorism.\n\nQ:   Will the devices be exportable?  Will other devices that use\n     the government hardware?\n\nA:   Voice encryption devices are subject to export control\n     requirements.  Case-by-case review for each export is\n     required to ensure appropriate use of these devices.  The\n     same is true for other encryption devices.  One of the\n     attractions of this technology is the protection it can give\n     to U.S. companies operating at home and abroad.  With this\n     in mind, we expect export licenses will be granted on a\n     case-by-case basis for U.S. companies seeking to use these\n     devices to secure their own communications abroad.  We plan\n     to review the possibility of permitting wider exportability\n     of these products.\n\n \n     \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6141, "properties": {"category": "rec.motorcycles", "text": "From: infante@acpub.duke.edu (Andrew  Infante)\nSubject: Insurance and lotsa points...\nOrganization: Duke University; Durham, N.C.\nLines: 15\nNntp-Posting-Host: north1.acpub.duke.edu\n\nWell, it looks like I'm F*cked for insurance.\n\nI had a DWI in 91 and for the beemer, as a rec.\nvehicle, it'll cost me almost $1200 bucks to insure/year.\n\nNow what do I do?\n\n(I could probably just sell the bike and return my DoD number,...\n)\n\n-- \nAndy Infante  | You can listen to what everybody says, but the fact remains   |\n'71 BMW R60/5 | that you've got to get out there and do the thing yourself.   | \nDoD #2426     |                             -- Joan Sutherland                | \n==============| My opinions, dammit, have nothing to do with anyone else!!!   | \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6142, "properties": {"category": "sci.med", "text": "From: romdas@uclink.berkeley.edu (Ella I Baff)\nSubject: Re: Good Grief!  (was Re: Candida Albicans: what is it?)\nOrganization: University of California, Berkeley\nLines: 9\nDistribution: world\nNNTP-Posting-Host: uclink.berkeley.edu\n\n   >If anybody, doctors included, said to me to my face that there is no\n   >evidence of the 'yeast connection', I cannot guarantee their safety.\n   >For their incompetence, ripping off their lips is justified as far as\n   >I am concerned.\n\nThis doesn't sound like Candida Albicans to me.\n\nJohn Badanes, DC, CA\nromdas@uclink.berkeley.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6143, "properties": {"category": "sci.electronics", "text": "From: conrad@spva.ph.ic.ac.uk (Conrad Winchester)\nSubject: Re: Motorola XC68882RC33 and RC50\nKeywords: Motorola, FPU, 68882, 68030, 33/50 MHz, problems (FPU exception)\nNntp-Posting-Host: prawn.sp.ph\nOrganization: Imperial College of Science, Technology, and Medicine, London, England\nLines: 25\n\nIn article <16APR199323531467@rosie.uh.edu>, st1my@rosie.uh.edu (Stich, Christian E.) writes:\n-| I just installed a Motorola XC68882RC50 FPU in an Amiga A2630 board (25 MHz\n-| 68030 + 68882 with capability to clock the FPU separately).  Previously\n-| a MC68882RC25 was installed and everything was working perfectly.  Now the\n-| systems displays a yellow screen (indicating a exception) when it check for\n-| the presence/type of FPU.  When I reinstall an MC68882RC25 the system works\n-| fine, but with the XC68882 even at 25 MHz it does not work.  The designer\n-| of the board mentioned that putting a pullup resistor on data_strobe (470 Ohm)\n-| might help, but that didn't change anything.  Does anybody have some\n-| suggestions what I could do?  Does this look like a CPU-FPU communications\n-| problem or is the particular chip dead (it is a pull, not new)?\n-| Moreover, the place I bought it from is sending me an XC68882RC33.  I thought\n-| that the 68882RC33 were labeled MC not XC (for not finalized mask design). \n-| Are there any MC68882RC33?\n-| \n-| Thanks\n-| \tChristian \n-| \n\n\n             Have you changed the crystal that clocks for the FPU. If you\n   haven't then it won't work.\n\n\n               Conrad\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6144, "properties": {"category": "rec.autos", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Open letter to NISSAN\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 17\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, smorris@sumax.seattleu.edu (Steven A. Morris) says:\n\n\n>or, here's an even better suggestion, why don't you guys go ahead and\n>buy the rest of Fuji Heavy Industries (Subaru) and put either an\n>in-line 4 or V-6 into the LEGACY 4WD wagon.  I'd buy the Legacy in a\n>minute if it had a Nissan engine instead of the Horizontal 4 that they\n>seem sentimentally attached to.\n\nWhat do you find so wrong with the flat 6 in the Subaru's, or the flat 4 for that\nmatter?\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6145, "properties": {"category": "sci.space", "text": "From: tom@igc.apc.org\nSubject: computer cult\nNf-ID: #N:cdp:1469100033:000:2451\nNf-From: cdp.UUCP!tom    Apr 24 09:26:00 1993\nLines: 59\n\n\nFrom: <tom>\nSubject: computer cult\n\nFrom scott Fri Apr 23 16:31:21 1993\nReceived: by igc.apc.org (4.1/Revision: 1.77 )\n\tid AA16121; Fri, 23 Apr 93 16:31:09 PDT\nDate: Fri, 23 Apr 93 16:31:09 PDT\nMessage-Id: <9304232331.AA16121@igc.apc.org>\nFrom: Scott Weikart <scott>\nSender: scott\nTo: cdplist\nSubject: Next stand-off?\nStatus: R\n\nRedwood City, CA (API) -- A tense stand-off entered its third week\ntoday as authorities reported no progress in negotiations with\ncharismatic cult leader Steve Jobs.\n\nNegotiators are uncertain of the situation inside the compound, but\nsome reports suggest that half of the hundreds of followers inside\nhave been terminated.  Others claim to be staying of their own free\nwill, but Jobs' persuasive manner makes this hard to confirm.\n\nIn conversations with authorities, Jobs has given conflicting\ninformation on how heavily prepared the group is for war with the\nindustry.  At times, he has claimed to \"have hardware which will blow\nanything else away\", while more recently he claims they have stopped\nmanufacturing their own.\n\nAgents from the ATF (Apple-Taligent Forces) believe that the group is\nequipped with serious hardware, including 486-caliber pieces and\npossibly Canon equipment.\n\nThe siege has attracted a variety of spectators, from the curious to\nother cultists.  Some have offered to intercede in negotiations,\nincluding a young man who will identify himself only as \"Bill\" and\nclaims to be the \"MS-iah\".\n\nFormer members of the cult, some only recently deprogrammed, speak\nhesitantly of their former lives, including being forced to work\n20-hour days, and subsisting on Jolt and Twinkies.  There were\nfrequent lectures in which they were indoctrinated into a theory of\n\"interpersonal computing\" which rejects traditional roles.\n\nLate-night vigils on Chesapeake Drive are taking their toll on\nfederal marshals.  Loud rock and roll, mostly Talking Heads, blares\nthroughout the night.  Some fear that Jobs will fulfill his own\napocalyptic prophecies, a worry reinforced when the loudspeakers\ncarry Jobs' own speeches -- typically beginning with a chilling \"I\nwant to welcome you to the 'Next World' \".\n\n- - -- \nRoland J. Schemers III              |            Networking Systems\nSystems Programmer                  |            G16 Redwood Hall (415) 723-6740\nDistributed Computing Group         |            Stanford, CA 94305-4122\nStanford University                 |            schemers@Slapshot.Stanford.EDU\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6146, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Aargh! Great Hockey Coverage!! (Devils)\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 37\n\nRobbie Po <RAP115@psuvm.psu.edu> writes:\n>gld@cunixb.cc.columbia.edu (Gary L Dare) says:\n>>>\n>>>I mean that the original poster was looking for a Devils victory\n>>>on the tape delay, and it didn't happen in game 1.\n>>\n>>I was the original poster, and it was just a complaint about the\n>>coverage (meaningless Yankee game before playoff Devils game).\n>\n>Oh!  I apologize then...I misinterpreted you!\n\nNo problem, no offence taken ...\n\n>Of all the teams in the Patrick, I least dislike the Devils.\n\nIt is sad, just as a lover of the sport, that this team can be in\nthe metro New York area for over a decade and still exist as just\na non-entity ...\n\n>How is ESPN's coverage anyways??? I think it starts tonight.\n\nWe're getting the Sabres-Bruins as the replacement game (and probably\nso are you) while the Devils-Penguins game is played on SCNY and the\nIslanders-Caps are the overflow game on the SCA (SCNY Plus).  If the\nSabres-Bruins ends early then we'll go to the Devils-Penguins game\n(assuming that ESPN follows their previous patterns; we got the last\nminute of the Islanders-Rangers and all of the overtime two weeks\nago).  ESPN's coverage started last night, by accident, but as one\nor more other writers have pointed out, they could've gone to wild\nhog wrestling for the evening instead ...\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6147, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: Aovai@qube.OCUnix.On.Ca (Aovai)\nSubject: Hard disk question\nDistribution: world\nOrganization: The QuBE BBS\nLines: 18\n\nHi,\n\nI just disassembled my old XT and get 2 disk drives - 30M hard drive and a \n360K floppy drive.  My questions are:\n\n -can I use these 2 drives as drives D & E on my 386SX25 ?  This 386SX25\n  currently has 80M hard drive, 1.2M & 1.44M floppy drives.\n\n -if I can, what s/w or h/w do I need ?\n\n Please send your advice/comments to aovai@qube.ocunix.on.ca\n\n Thanks a lot,\n\n AV\n\n-- Via DLG Pro v0.995\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6148, "properties": {"category": "sci.electronics", "text": "From: garyg@warren.mentorg.com (Gary Gendel)\nSubject: Re: A question about 120VAC outlet wiring.\nOrganization: Mentor Graphics Corp. -- IC Group\nLines: 42\nDistribution: world\nReply-To: garyg@warren.mentorg.com\nNNTP-Posting-Host: garyg.warren.mentorg.com\n\nIn article 1834@cmkrnl.com, jeh@cmkrnl.com writes:\n>In article <1993Apr14.172145.27458@ecsvax.uncecs.edu>, crisp@ecsvax.uncecs.edu (Russ Crisp) writes:\n>> SO..  Here's my question.  It seems to me that I'd have the\n>> same electrical circuit if I hooked the jumper from the neutral\n>> over to the ground screw on new 'three prong' grounding outlets.\n>> What's wrong with my reasoning here?  \n>\n>What you CAN do if you want three-prong outlets without additional wiring is \n>to use a GFCI outlet (or breaker, but the outlet will be cheaper).  In fact,\n>depending on where you are putting your new outlet(s), a GFCI may be *required*.\n\nYou still need to supply a proper ground for a Ground Fault Circuit Interrupter!\nSo rewiring is still a part of this job, however, the ground may be connected to\na local earth ground, rather than back at the breaker box.\n\nAs Jamie said, GFCI devices are required by code in a number of places, most\nnotably: bathrooms, and outside the house.  I do suggest the use of GFCI outlets,\nrather than the breakers.  You will end up with much less headaches.  Noise pickup\nin long cable runs is sometimes enough to cause frequent tripping of the breakers.\n\nGFCI devices do save lives, if you decide to install them, be sure to check them\nregularly (using the test button).\n\nRunning the family business (electrical supplies and lighting) for many years, I\nhave seen too many seasoned electricians fried, because they forgot to double check\ntheir common sense list.  Please exercise caution.\n---\n\t\t\tGary Gendel\nVice President:\t\t\t\tCurrent consulting assignment:\nGenashor Corp\t\t\t\tMentor Graphics Corporation\n9 Piney Woods Drive\t\t\t15 Independence Boulevard\nBelle Mead, NJ 08502\t\t\tWarren, NJ 07059\n\nphone:\t(908) 281-0164\t\t\tphone:\t(908) 604-0883\nfax:\t(908) 281-9607\t\t\temail:\tgaryg@warren.mentorg.com\n\n\n\n\n\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6149, "properties": {"category": "comp.graphics", "text": "From: alan@saturn.cs.swin.OZ.AU (Alan Christiansen)\nSubject: Re: Sphere from 4 points?\nOrganization: Swinburne University of Technology\nLines: 71\nNNTP-Posting-Host: saturn.cs.swin.oz.au\n\nspworley@netcom.com (Steve Worley) writes:\n\n>bolson@carson.u.washington.edu (Edward Bolson) writes:\n\n>>Boy, this will be embarassing if it is trivial or an FAQ:\n\n>>Given 4 points (non coplanar), how does one find the sphere, that is,\n>>center and radius, exactly fitting those points?  I know how to do it\n>>for a circle (from 3 points), but do not immediately see a \n>>straightforward way to do it in 3-D.  I have checked some\n>>geometry books, Graphics Gems, and Farin, but am still at a loss?\n>>Please have mercy on me and provide the solution?  \n\n>It's not a bad question: I don't have any refs that list this algorithm\n>either. But thinking about it a bit, it shouldn't be too hard.\n\n>1) Take three of the points and find the plane they define as well as\n>the circle that they lie on (you say you have this algorithm already)\n\n>2) Find the center  of this circle. The line passing through this center\n>perpendicular to the plane of the three points passes through the center of\n>the sphere.\n\n>3) Repeat with the unused point and two of the original points. This\n>gives you two different lines that both pass through the sphere's\n>origin. Their interection is the center of the sphere.\n\n>4) the radius is easy to compute, it's just the distance from the center to\n>any of the original points.\n\n>I'll leave the math to you, but this is a workable algorithm. :-)\n\nGood I had a bad feeling about this problem because of a special case\nwith no solution that worried me.\n\nFour coplanar points in the shape of a square have no unique sphere \nthat they are on the surface of.\nSimilarly 4 colinear point have no finite sized sphere that they are on the\nsurface of.\n\nThese algorithms being geometrical designed rather than algebraically design\nmeet these problems neatly.\n\nWhen determining which plane the 3 points are on if they are colinear\nthe algorithm should afil or return infinite R.\nWhen intersecting the two lines there are 2 possibilities\nthey are the same line  (the 4 points were on a planar circle)\nthey are different lines but parallel. There is a sphere of in radius.\n\nThis last case can be achieved with 3 colinier points and any 4th point\nby taking the 4th point and pairs of the first 3 parallel lines will be produced\n\nit can also be achieved by\n\nIf all 4 points are coplanar but are not on one circle. \n\nIt seems to me that the algorithm only fails when the 4 points are coplanar.\nThe algorithm always fails when the points are coplanar.\n(4 points being colinear => coplanar)\n\nTesting if the 4th point is coplanar when the plane of the first 3 points\nhas been found is trivial.\n\n\n>An alternate method would be to take pairs of points: the plane formed\n>by the perpendicular bisector of each line segment pair also contains the\n>center of the sphere. Three pairs will form three planes, intersecting\n>at a point. This might be easier to implement.\n\n>-Steve\n>spworley@netcom.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6150, "properties": {"category": "talk.politics.guns", "text": "From: gt6511a@prism.gatech.EDU (COCHRANE,JAMES SHAPLEIGH)\nSubject: Re: So much for \"infinite patience\"\nOrganization: Georgia Institute of Technology\nLines: 32\n\nIn article <1993Apr19.225700.3976@jupiter.sun.csd.unb.ca> j979@jupiter.sun.csd.unb.ca (FULLER  M) writes:\n:\n:So much for \"infinite patience.\"\n: \n;I find it hard to swallow that prolonged exposure to \"massive\" amounts of\n:\n:And they said that the bomb dropped on MOVE wouldn't start a fire, either.\n:\n:The real kicker, though, is the stated justification for the government's \n:sudden loss of patience: They wouldn't be able to \"rotate their teams\" \n:\n:This outcome could be foreseen a mile (or two) away, but Reno didn't even\n:\n:Malcolm Fuller, Surveying Engineering, University of New Brunswick\n\nThe really good part:  \"At this point we're not negotiating,\" FBI spokesman\nBob Ricks said at a news briefing about a half hour before the fire began. \n\"We're saying,'Come out.Come out with your hands up. This matter is over.'\"\n\nCriminal... so much for Billary saying we won't force the issue... anybody\nhave the WH information number?  Figure ol' Bill could use a lesson from the\nROTC he scorned: \"You are responsible for all that your unit/troops do or fail\nto do.\"  Want to ask him how he enjoys being responsible for violating the\nConstitutional rights of a group, resulting in the deaths of over a hundred of them, plus four Federal agents...\n\nJames\n\n-- \n********************************************************************************\nJames S. Cochrane        *  When in danger, or in doubt, run in * This space \ngt6511a@prism.gatech.edu *  circles, scream and shout.          * for rent\n********************************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6151, "properties": {"category": "talk.religion.misc", "text": "From: jmeritt@mental.mitre.org\nSubject: By the sword...\nOrganization: UTexas Mail-to-News Gateway\nLines: 13\nNNTP-Posting-Host: cs.utexas.edu\n\nDeuteronmy 20:13\nAnd when the Lord thy God hath delivered it into thine hands, thou shalt smite\nevery male thereof with the edge of the sword\n\nJoshua 6:21\nAnd they utterly destroyed all that was in the city, bith man and women,\nyoung and old, and ox, and sheep, and ass, with the edge of the sword.\n\nJoshua 10:32\nAnd the Lord delivered Lachish into the hand of Israel, which took it on the\nsecond day, and smote it with the edge of the sword, and all the souls that\nwere therein, according to all that he had done to Libnah\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6152, "properties": {"category": "rec.autos", "text": "From: laszlo@csd4.csd.uwm.edu (Tyson F Nuss)\nSubject: Re: Dumbest automotive concepts of all tim\nOrganization: University of Wisconsin - Milwaukee\nLines: 23\nReply-To: laszlo@csd4.csd.uwm.edu\nNNTP-Posting-Host: 129.89.7.4\nOriginator: laszlo@csd4.csd.uwm.edu\n\n> In article <1993Mar29.161044.1@uncavx.unca.edu>, bwillard@uncavx.unca.edu\n> wrote:\n>> \n>> 8. Saab 900 - ignition is on floor!?!\n\n\tActually, this started as a great idea.  Before steering-column\nlocks became popular, Saab installed a *gearshift* lock -- put the car\nin reverse, remove the key, and the car *stays* in reverse!\n\tAlso, suppose you get into your car, and a thug comes up and\ndemands your keys at gunpoint.  You hand them over, he gets in, and\nHAS NO IDEA WHERE TO PUT THE KEY!  At this, he will run away (or perhaps\nshoot you anyway  %-}).  I heard this actually happened somewhere...\n\tBtw, I hear that the Saab 900's new successor will have the\nignition on the console, between the seats, where it belongs.\n\n%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\\%\n___    A      laszlo@csd4.csd.uwm.edu\n| |   {*}     Redhead Afficionado Extraordinaire   *and*\n| |  __V__    Little Canadia's Minister of Fine Tobaccos\n|_|o_|%%%|0_  Cigaret brands sampled: 55 import/luxury, 17 handrolling\n   |       |\n   |       |  These opinions are not necessarily mine (or mine, either).\n   |_______| -----> Can anyone bum me a .sig?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6153, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ferch@ucs.ubc.ca (Les Ferch)\nSubject: Re: Why does Apple give us a confusing message?\nOrganization: The University of British Columbia\nLines: 22\nNNTP-Posting-Host: swiss.ucs.ubc.ca\n\nIn <C5nGII.BGx@news2.cis.umn.edu> bunt0003@student.tc.umn.edu (Monthian\nBuntan-1) writes: \n\n>Does anyone know why Apple has an ambiguous message for C650 regarding\n>fpu?  In all Mac price lists I've seen, every C650 as the message \"fpu:\n>optional\".  I know from what we've discussed in this newsgroup that all\n>C650 have the fpu built in except the 4/80 configuration.  Why would they\n>be so unclear about this issue in their price list? \n\nPerhaps the reason is simple--maybe the marketing people who put together\nthe brochures and price lists weren't clear on the FPU issue. \n\nAfterall, Apple's literature is not always 100% correct. A funny one I\nnoticed recently is that some of the brochures on the Macs with CD\ncapability refer to the \"auto inkjet\" feature. This should have read \"auto\ninject\" feature (as it does on some other correct brochures I've seen from\nApple). Since it was correct on some older brochures, I can only guess\nthat someone edited the copy, saw \"inject\" and thought it was a typo and\nchanged it to the more familiar word \"inkjet\".\n\nHmmm, what would that be? A printer built into the CD player? A way of\n*writing* information to a CD? :-) :-)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6154, "properties": {"category": "talk.politics.misc", "text": "From: garrett@Ingres.COM \nSubject: Re: Temper tantrums from the 1960's\nSummary: Pathelogical liars\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nKeywords: \nOrganization: ASK Computer Systems, Ingres Product Division\nDistribution: usa\nLines: 36\n\nIn article <1993Apr15.175829.22411@oracle.us.oracle.com>, mfriedma@us.oracle.com (Michael Friedman)        writes...\n>In article <1993Apr14.231117.21872@pony.Ingres.COM> garrett@Ingres.COM  writes:\n>>In article <philC5Ht1t.GwA@netcom.com>, phil@netcom.com (Phil Ronzone)                   writes...\n>>>Correct. JFK was quite disgusting in that way. The reports of the women that\n>>>he coerced via power of the office are now in the dozens. Today, we';d\n>>>call for immediate resignation for that kind of behaviour.\n> \n>>I guess coercing women into having sex is MUCH worse than stealing, breaking\n>>and entering, rigging national elections, starting secret wars that kill\n>>hundreds of thousands, and using the powers of your office for personal\n>>gain like Nixon did. NOT!\n> \n>Garrett, you are a really pathetic liar.\n\nIsn't name calling fun!\n> \n>Some of your charges are arguable, but most of them are obvious lies.\n>I challenge you to present us with any evidence that Nixon stole,\n>rigged a national election, never mind elections, or used the powers\n>of his office for personal gain.\n\nWhat do you think happened at Watergate? What do you think they broke into\nthe building for? It wasn't to just look around. Do I have to draw you \na picture?\n> \n>You can't because there is absolutely no evidence that any of these\n>events occurred.\n\nWhatever...\n\n------------------------------------------------------------------------------\n\"Who said anything about panicking?\" snapped Authur.           Garrett Johnson\n\"This is still just culture shock. You wait till I've       Garrett@Ingres.com\nsettled into the situation and found my bearings.\nTHEN I'll start panicking!\" - Douglas Adams  \n------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6155, "properties": {"category": "rec.autos", "text": "From: neil@bcstec.ca.boeing.com (Neil Williams)\nSubject: Re: WARNING.....(please read)...\nKeywords: BRICK, TRUCK, DANGER\nOrganization: Boeing Computer Services\nLines: 51\n\nlarose@austin.cs.utk.edu (Brian LaRose) writes:\n\n>This just a warning to EVERYBODY on the net.  Watch out for\n>folks standing NEXT to the road or on overpasses.   They can\n>cause SERIOUS HARM to you and your car.  \n\n>(just a cliff-notes version of my story follows)\n\n>10pm last night, I was travelling on the interstate here in\n>knoxville,  I was taking an offramp exit to another interstate\n>and my wife suddenly screamed and something LARGE hit the side\n>of my truck.  We slowed down, but after looking back to see the\n>vandals standing there, we drove on to the police station.\n\n>She did get a good look at the guy and saw him \"cock his arm\" with\n>something the size of a cinderblock, BUT I never saw him. We are \n>VERY lucky the truck sits up high on the road; if it would have hit\n>her window, it would have killed her. \n\n>The police are looking for the guy, but in all likelyhood he is gone. \n\n>I am a very good driver (knock on wood), but it was night-time and\n>I never saw the guy.  The police said they thought the motive was to\n>hit the car, have us STOP to check out the damage, and then JUMP US,\n>and take the truck.  \n\n>PLEASE BE AWARE OF FOLKS.  AND FOR YOUR OWN GOOD, PLEASE DON'T STOP!!!!\n\n>peace.\n\n\n>-- \n>--------------------------------------------------------------------------- \n>brian larose  larose@cs.utk.edu   #12, 3103 Essary Rd. Knoxville, TN 37918.\n\n>{}\n\nAs long as we're on the subject... Several years ago myself and two others\nwere riding in the front of a Toyota pickup heading south on Interstate 5\nnorth of Seattle, WA. Someone threw a rock of an overpass and hit our\nwindshield. Not by accident I'm sure, it was impossible to get up to the\noverpass quickly to see who did it. We figured it was kids, reported it and\nleft.\nA couple of years ago it happend again and killed a guy at my company. He was\nin his mid-fourties and left behind a wife and children. Turned out there was\na reformatory for juviniles a few blocks away. They caught the 14 year old\nthat did it. They put a cover over the overpass, what else could they do?\nI don't think I'll over forget this story.\nNeil Williams, Boeing Computer Services, Bellevue WA.\n.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6156, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: <Political Atheists?\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.01\nLines: 11\n\nmccullou@snake2.cs.wisc.edu (Mark McCullough) writes:\n> I think you mean circular, not recursive, but that is semantics.\n> Recursiveness has no problems, it is just horribly inefficient (just ask\n> any assembly programmer.)\n\nTail-recursive functions in Scheme are at least as efficient as iterative\nloops.  Anyone who doesn't program in assembler will have heard of optimizing\ncompilers.\n\n\nmathew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.291+0000", "event": "documents", "entityId": 6157, "properties": {"category": "sci.space", "text": "From: urf@icl.se (Urban F)\nSubject: Re: Orion drive in vacuum -- how?\nNntp-Posting-Host: sw2001\nOrganization: None. On USENET I speak only for myself.\nX-Alt.reply-Address: n.g.u.fredriksson@swe2001.wins.icl.co.uk\nLines: 14\n\nLeigh Palmer <palmer@sfu.ca> writes:\n> I feel sure\n>that someone must have film of that experiment, and I'd really like to\n>see it. Has anyone out there seen it?\n\nI've seen a film of it, my memory may be faulty, but as I\nremember it the vehicle was slightly over a meter long, with a\nthick baseplate 30-40 cm in diameter. I think the narrative said\nit was propelled by dynamite sticks. There were four detonations\nwithin about 2 s, the second coming after about 2 m of flight in.\nMax altitude seemed to be on the order of 50 m, but that is hard \nto judge.\n--\n Urban Fredriksson  urf@icl.se  \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6158, "properties": {"category": "comp.graphics", "text": "From: geigel@seas.gwu.edu (Joseph Geigel)\nSubject: Looking for AUTOCAD .DXF file parser\nOrganization: George Washington University\nLines: 16\n\n\n  Hello...\n\n    Does anyone know of any C or C++ function libraries in the public domain\n that assist in parsing an AUTOCAD .dxf file?  \n\n    Please e-mail.\n\n\n                                Thanks,\n\n-- \n\n                            -- jogle\n                               geigel@seas.gwu.edu\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6159, "properties": {"category": "comp.graphics", "text": "From: stgprao@st.unocal.COM (Richard Ottolini)\nSubject: Re: Rumours about 3DO ???\nOrganization: Unocal Corporation\nLines: 5\n\nThey need a hit software product to encourage software sales of the product,\ni.e. the Pong, Pacman, VisiCalc, dBase, or Pagemaker of multi-media.\nThere are some multi-media and digital television products out there already,\nalbeit, not as capable as 3DO's.  But are there compelling reasons to buy\nsuch yet?  Perhaps someone in this news group will write that hit software :-)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6160, "properties": {"category": "rec.sport.baseball", "text": "From: genetic+@pitt.edu (David M. Tate)\nSubject: Re: Young Catchers\nArticle-I.D.: blue.7975\nOrganization: Department of Industrial Engineering\nLines: 115\n\nmss@netcom.com (Mark Singer) said:\n>\n>We know that very, very few players at this age make much of an impact\n>in the bigs, especially when they haven't even played AAA ball.  \n\nYes.  But this is *irrelevant*.  You're talking about averages, when we\nhave lots of information about THIS PLAYER IN PARTICULAR to base our\ndecisions on.\n\nI might as well say \"We know that very, very few people are more than 7 feet\ntall, so chances are that Manute Bol is really only 6 foot 4.\"\n\n>No.  Maybe I need to improve my writing skills.  Lopez, who is very\n>ordinary defensively, is not likely to hit so well at age 22\n>(having not played at AAA level) that it is probably not a good idea\n>to rush him into the Braves lineup in 1993.\n\nWhy isn't Lopez likely to hit that well?  He hit that well last year (after\nadjusting his stats for park and league and such); he hit better (on an\nabsolute scale) than Olson or Berryhill did.  By a lot.\n\nAs for rushing...  If there really is a qualitative difference between the\nminors and the majors that requires a period of adjustment (and I don't\nbelieve there is), then wouldn't you rather waste Lopez's 22-year old good\nseason than his 23-year old very good season or his 24-year-old excellent\nseason?  The sooner you get him acclimated, the more of his prime you get to\nuse.\n\n>>Lopez was hitting .588 over 17 AB when he was cut from spring\n>>training.  What does he have to do to earn a chance?  Maybe not a full\n>>time job, but at least a couple starts and a few AB for him to prove\n>>his worth?\n>\n>Gee.  I don't know.  17 abs sounds pretty good to me!  About as good\n>as your reasoning that the kid should play a back-up role rather\n>than start every day at AAA.  Talk about *me* as a GM...\n\nThe point was not that 17 AB is a significant sample, but rather that he\nhadn't done anything in spring training to cause even a blockhead manager\nto question whether his minor league numbers were for real, or to send him\ndown \"until he gets warmed up\".\n\n>OK.  Most players are not ready for the bigs at age 22 \n\nMost players are *never* ready for the bigs.  What does this have to do\nwith Javy Lopez?\n\n>Most players \n>benefit, rather than being stagnant or hurt, by playing at AAA.\n\nSee above.  \n\n>Most catchers need to be solid defensively players to help their\n>clubs in the bigs.  Those are the arguments against Lopez for the\n>Braves for this year.\n\nBut I could apply the same reasoning to Frank Thomas or Barry Bonds.  Most\nplayers aren't that good, so they probably won't be that good this year\neither.\n\n>Now.  The Braves have two catchers who have demonstrated solid\n>abilities to call games, to work with the pitchers, to throw out\n>runners.  \n\nAnd demonstrated inabilities to hit their way out of a soap bubble.\n\n>Not superstars mind you, but solid, experienced veterans.\n\nNot superstars, not stars, not even good players.  Maybe average, if we're\nbeing charitable.\n\n>The Braves have a very solid lineup with two big bats in the\n>outfield, an excellent platoon at first, a solid MVP candidate\n>at third and one of the better hitting shortstops.  \n\nUmmm.  Justice is a very fine hitter.  Pendleton might have another big year\nin his bat, but he might also spend the season in Hamstring Hell.  Gant is a\nbig question mark.  The Bream/Hunter platoon is decent (not excellent) and\nhas rotten OBP or SLG (depending on who's in).  Blauser is a very valuable\nbat... for a shortstop.\n\n\n>The center\n>field platoon will probably hit .300.  However good Lopez'\n>bat *might* be (given the above) it won't be so much better than\n>what they have to offset the differential in experience and \n>defensive ability.  \n\nWanna bet?  The difference between Lopez's bat and Olson/Berryhill could be\n20 or 30 runs over the course of the season.  Given a choice between a player\nwith experience and a player who can play, I'll take the latter every time.\n\n>The kid *will* improve playing at AAA, \n\nJust like Keith Mitchell did?\n\n>I am just so surprised I have to spell all of this out.  My \n>goodness.  Do you believe the other poster who thinks Lopez\n>is being held down because of his future earning potential?\n\nThat was me, and you so far your only counter-proposal is that they\nreally don't understand how good Lopez is, or overvalue experience,\nor some combination of the two.  I think my interpretation was more\nflattering to the organization.\n\n>Are they idiots who have built this ballclub?  \n\n[Well-argued but inflammatory reply deleted.]\n\n\n-- \n  David M. Tate   |  (i do not know what it is about you that closes\n  posing as:      |  and opens; only something in me understands\n   e e (can       |  the pocket of your glove is deeper than Pete Rose's)\n     dy) cummings |  nobody, not even Tim Raines, has such soft hands\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6161, "properties": {"category": "alt.atheism", "text": "From: dewey@risc.sps.mot.com (Dewey Henize)\nSubject: Re: The Inimitable Rushdie\nOrganization: Motorola, Inc. -- Austin,TX\nLines: 43\nNNTP-Posting-Host: rtfm.sps.mot.com\n\n\nIs it just me, or has this part gotten beyond useful?\n\nGregg is not, as I understand his posts, giving any support to the bounty\non Rushdie's life.  If that's correct, end of one point...\n\nGregg is using the concept of legal in a way most Westerners don't accept.\nHis comments about Islamic Law I think make a great deal of sense to him,\nand are even making a _little_ sense to me now - if a person is a member\nof a group (religion or whatever) they bind themselves to follow the ways\nof the group within the bounds of what the group requires as a minimum.\nThe big bone of contention here that I'm picking up is that in the West\nwe have secular governments that maintain, more or less, a level of control\nand of requirements outside the requirements of optional groups.  I think\nthe majority of us reading this thread are in tune (note - I didn't say\n\"in agreement\") with the idea that you are finally responsible to the\nsecular government,  and within that to the group or groups a person may\nhave chosen.\n\nWith that in mind, it not possible under secular law (\"legally\" as most\npeople would define the term) to hold a person to a particular group once\nthey decide to separate from it.  Only if the secular authorities agree\nthat there is a requirement of some sort (contractual, etc) is there\nany secular _enforcement_ allowed by a group to a group member or past\ngroup member.\n\nA religion can, and often does, believe in and require additional duties\nof a group member.  And it can enforce the fulfillment of those duties\nin many ways - ostracism is common for example.  But the limit comes when\nthe enforcement would impose unwanted and/or unaccepted onus on a person\n_in conflict with secular law_.\n\nThis is the difference.  In a theocracy, the requirements of the secular\nauthorities are, by definition, congruent with the religious authorities.\nOutside a theocracy, this is not _necessarily_ true.  Religious requirements\n_may_ coincide or may not.  Similiarly, religious consequences _may_ or\nmay not coincide with secular consequences (if any).\n\nRegards,\n\nDew\n-- \nDewey Henize Sys/Net admin RISC hardware (512) 891-8637 pager 928-7447 x 9637\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6162, "properties": {"category": "comp.windows.x", "text": "From: mike@hopper.Virginia.EDU (Michael Chapman)\nSubject: Tektronix\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 6\n\nI remember seeing something in the X distribution mentioning support\nfor a Tektronix terminal in an X server.  Is this accurate? \n-- \nmike@hopper.acs.virginia.edu \n\n\"I will NOT raise taxes on the middle class.\" -Unknown\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6163, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Randy Weaver trial update: Day 4.\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 87\n\nNote: These trial updates are summarized from reports in the\n_Idaho Statesman_ and the local NBC affiliate television\nstation, KTVB Channel 7.\n\nRandy Weaver/Kevin Harris trial update: Day 4.\n\nFriday, April 16, 1993 was the fourth day of the trial.\n\nSynopsis: Defense attorney Gerry Spence cross-examined agent\nCooper under repeated objections from prosecutor Ronald\nHowen.  Spence moved for a mistrial but was denied.\n\nThe day was marked by a caustic cross-examination of Deputy\nMarshal Larry Cooper by defense attorney Gerry Spence.  Although\nSpence has not explicitly stated so, one angle of his stategy\nmust involve destroying the credibility of agent Cooper.  Cooper is\nthe government's only eyewitness to the death of agent Degan.\nSpence attacked Cooper's credibility by pointing out discrepancies\nbetween Cooper's statements last September and those made in court.\nCooper conceded that, \"You have all these things compressed into\na few seconds...It's difficult to remember what went on first.\"\n\nCooper acknowledged that he carried a \"9mm Colt Commando submachine\ngun with a silenced barrel.\" [I thought a Colt Commando was a revolver!]\nCooper continued by stating that the federal agents had no specific\nplans to use the weapon when they started to kill Weaver's dog.\n\nWhen Spence asked how seven cartridges could be fired by Degan's\nM-16 rifle when Degan was apparently dead, Cooper could not say for\nsure that Degan did not return fire before going down.\n\nSpence continued by asking with how many agents (and to what extent)\nhad Cooper discussed last August's events, Cooper responded, \"If\nyou're implying that we got our story together, you're wrong,\ncounselor.\"  Spence continued to advance the defense's version of\nthe events: Namely, that a marshal had started the shooting by\nkilling the Weaver's dog.  Cooper disagreed.\n\nAssistant U.S. Attorney Ronald Howen repeatedly objected to Spence's\nvirulent cross-examination of agent Cooper, arguing that the questions\nwere repetitive and Spence was wasting time.  Howen also complained \nthat Spence was improperly using a cross-examination to advance the\ndefense's version of the events.  U.S. District Judge Edward Lodge\nsustained many of the objections; however, both lawyers persisted\nuntil Judge Lodge had the jury leave the room and proceded to\nadmonish both attorneys.  \"I'm not going to play games with either\ncounsel.  This has been a personality problem from day 1, so start\nacting like professionals.\"\n\nSpence told the judge that, \"When all the evidence is in, we'll see\nthat ... his [agent Larry Cooper] testimony is not credible, that\nhe was panicked and cannot remember the sequence of events.\" \nSpence continued, \"We're going to find...that there is a very unlikely\nsimilarity - almost as if it had come out of a cookie cutter - between\nthe testimony of Mr. Cooper and the other witnesses.\"\n\nSpence then moved for a mistrial on the grounds that Howen's repeated\nobjections would prevent a fair trial, \"We can't have a fair trial if the\njury believes I'm some sort of charlatan, if the jury believes I'm\nbending the rules or engaging in some delaying tactic or that I'm\nviolating court orders.\"\n\nJudge Lodge called the notion that his repeated sustainings of Howen's\nobjections had somehow prejudiced the jury was \"preposterous\" and\ndenied the motion for a mistrial.  Lodge did tell Howen to restrict\nhis comments when objecting.\n\nThe trial resumed with the prosecution calling FBI Special Agent Greg\nRampton.  The prosecution's purpose was simply to introduce five\nweapons found in the cabin as evidence: However, the defense seized\non the opportunity to further address Cooper's credibility.\n\nDefense attorney Ellison Matthews (Harris' other attorney) questioned\nRampton about the dog.  Rampton stated that there were no specific\nplans to kill the Weaver's dog without being detected.  Matthews then\nhad Rampton read  a Septtember 15, 1992 transcript in which Rampton\nhad said that Cooper had said that the purpose of the silenced weapon\nwas to kill the dog without being detected, if the dog chased them.\nRampton then acknowledged that he believed that Cooper had said that,\nbut he could not remember when.  He then stated that, \"I did not conduct\nthe primary interview with Deputy Cooper, but I have had conversations\nwith him since the interview was conducted.\"\n\nMonday, April 19, 1993 will begin the fifth day of the trial.  Scheduled\nis the continued cross-examination of FBI agent Greg Rampton.\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6164, "properties": {"category": "misc.forsale", "text": "From: shaq@shelley.u.washington.edu (Chris Liu)\nSubject: Game Boy games wanted!\nOrganization: University of Washington, Seattle\nLines: 3\nNNTP-Posting-Host: shelley.u.washington.edu\n\nI'm looking for some Game Boy games.  Please e-mail me with your list and offers!  Thanks!  Also, if you have a game boy you want to get rid of, please tell me.  \n\n    Chris\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6165, "properties": {"category": "sci.med", "text": "From: filipe@vxcrna.cern.ch (VINCI)\nSubject: Re: Krillean Photography\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: European Organization for Nuclear Research, CERN\nLines: 14\n\nIn article <1993Apr20.125920.15005@ircam.fr>, francis@ircam.fr (Joseph Francis) writes...\n>In article <1993Apr19.205615.1013@unlv.edu> todamhyp@charles.unlv.edu (Brian M. Huey) writes:\n>>I think that's the correct spelling..\n> \n>Crullerian.\n> \n How about Kirlian imaging ? I believe the FAQ for sci.skeptics (sp?)\n has a nice write-up on this. They would certainly be most supportive\n on helping you to build such a device and connect to a 120Kvolt\n supply so that you can take a serious look at your \"aura\"... :-)\n\n Filipe Santos\n CERN - European Laboratory for Particle Physics\n Switzerland\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6166, "properties": {"category": "rec.sport.hockey", "text": "From: cal2d@csissun11.ee.Virginia.EDU (Craig Allen Lorie)\nSubject: Re: Devils and Islanders tiebreaker????\nOrganization: University of Virginia\nLines: 15\n\nAccording to the hockey gurus over at ESPN, should the Islanders win tonite\nthe two teams will have the same record, but the Devils will be playing the\nPenguins.  This is because the Islanders have won the season series against\nthe Devils.  I think the rules for deciding a tie breaker include:\n\n1.  season series\n2.  goals against\n3.  goals for\n\nin this order (correct me if I'm wrong).  Anyone have anything to add?\n\nCraig\n\nGo Islanders!\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6167, "properties": {"category": "comp.windows.x", "text": "From: joel@zodiac.z-code.COM (Joel Reymont)\nSubject: Xsun not finding default font (Sol2.1)\nOrganization: The Internet\nLines: 20\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nHi, netters!\n\nI've just built X11R5 pl 21 under Solaris 2.1. I've used the multi-screen \npatch, as well as the R5.SunOS... patch and everything builds great, except \nfor that error message Xsun gives me upon startup. It says: \n\"Cannot set default font path '[stuff deleted]'\" and \"Cannot set default font\n'fixed'\". If I supply the -fp option, it doesn't complain about the font path\nbut still complains about the font. I have symlinks from /usr/lib/ to the \nplace where my distribution lives.\n\nCould somebody help me?\n\n\t-joel\n\n-- \n-----------------------------------------------------------------------------\nJoel Reymont    !   Z-Code Software Corporation    ! e-mail: joel@z-code.com \n-----------------------------------------------------------------------------\n4340 Redwood Hwy, Suit B.50, San Rafael, CA 94903\n-----------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6168, "properties": {"category": "sci.med", "text": "From: ghilardi@urz.unibas.ch\nSubject: left side pains\nOrganization: University of Basel, Switzerland\nLines: 21\n\nHello to everybody,\nI write here because I am kind of desperate. For about six weeks, I've been\nsuffering on pains in my left head side, the left leg and sometimes the left \narm. I made many tests (e.g. computer tomography, negative, lyme borreliosis,\nnegative, all electrolytes in the blood in their correct range), they're\nall o.K., so I should be healthy. As a matter of fact, I am not feeling so.\nI was also at a Neurologist's too, he considered me healthy too.\n\nThe blood tests have shown that I have little too much of Hemoglobin (17.5,\ncommon range is 14 to 17, I unfortunately do not know about the units).\nCould these hemi-sided pains be the result of this or of a also possible\nblock of the neck muscles ?\n\nI have no fever, and I am not feeling entirely sick, but neither entirely \nhealthy. \n\nPlease answer by direct email on <ghilardi@urz.unibas.ch>\n\nThanks for every hint\n\nNico\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6169, "properties": {"category": "sci.med", "text": "From: fulk@cs.rochester.edu (Mark Fulk)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: University of Rochester\nLines: 53\n\nIn article <C5L9ws.Jn2@unx.sas.com> sasghm@theseus.unx.sas.com (Gary Merrill) writes:\n>\n>In article <1993Apr16.155919.28040@cs.rochester.edu>, fulk@cs.rochester.edu (Mark Fulk) writes:\n>|> genes.  This fantasy led him to sequence samples of the band and carry out\n>|> binding assays.  The result was a well-conserved, 400 or so bp, sequence\n>\n>But why do you characterize this as a \"flight of fancy\" or a \"fantasy\"?\n\nThe fantasy was that he had found something of fundamental importance to\none of the hot questions of the day ('77).  He really had very little\nreason to believe it, other than raw hope.  By fantasy, I certainly don't\nmean Velikovskian manias.\n\n>some other theory or domain).  I would offer some rather well known examples\n>such as Toricelli's Puy de Dome experiment done for the sake of his\n>\"sea of air\" hypothesis.\n\nI'm not familiar with the history of this experiment, although, arguably,\nI should be.\n\n>\"surprising\"?\n>Well, given the *prior* explanations of the phenomena involved it certainly\n>be counted as so.  Was the theory constructed (and the experiment designed)\n>out of \"perfectly rational grounds\"?  Well, there was a pretty successful and\n>well know theory of fluids.  The analogy to fluids by Toricelli is explicit.\n>The novelty was in thinking of air as a fluid (but this was *quite* a novelty\n>at the time).  Was the theory interesting?  Yes.  Was it \"new\"?  Well, one\n>could argue that it was merely the extension of an existing theory to a new\n>domain, but I think this begs certain questions.  We can debate that if you\n>like.\n\nI think that it is enough if his contemporaries found the result surprising.\nThat's not what I'd quibble about.  What I'd like to know are Toricelli's\nreasons for doing his experiment; not the post hoc _constructed_ reasons,\nbut the thoughts in his head as he considered the problem.  It may be\nimpossible to know much about Toricelli's thoughts; that's too bad if\nit is so.  One of Root-Bernstein's services to science is that he has gone\nrooting about in Pasteur's and Fleming's (and other people's) notes, and has\ndiscovered some surprising clues about their motivations.  Pasteur never\npublicly admitted his plan to create mirror-image life, but the dreams are\nright there in his notebooks (finally public after many years), ready for\nanyone to read.  And I and my friends often have the most ridiculous\nreasons for pursuing results; one of my best came because I was mad at\na colleague for a poorly-written claim (I disproved the claim).\n\nOf course, Toricelli's case may be an example of a rarety: where the\nfantasy not only motivates the experiment, but turns out to be right\nin the end.\n\nMark\n-- \nMark A. Fulk\t\t\tUniversity of Rochester\nComputer Science Department\tfulk@cs.rochester.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6170, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hsieh@ipld04.hac.com (Julia Hsieh)\nSubject: How to reach Micron\nDistribution: na\nLines: 15\n\n\nDoes anyone know how to reach Micron?  I am interested in getting some\nspecifics about what types of monitors work with their Micron Xceed\ncard for the se/30.  either e-mail or phone number would be prefered.\nOr if you have the answers to my questions, i'd appreciate a reply.\n\nThanks.\n\n\n\n-- \n----------------------------------------------------------------\njulia hsieh              My opinions are not intended to reflect\nhsieh@ipld01.hac.com     those of Hughes Aircraft Company.\n----------------------------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6171, "properties": {"category": "alt.atheism", "text": "From: bcash@crchh410.NoSubdomain.NoDomain (Brian Cash)\nSubject: Re: Ancient islamic rituals\nNntp-Posting-Host: crchh410\nOrganization: BNR, Inc.\nLines: 38\n\nIn article <1993Apr3.081052.11292@monu6.cc.monash.edu.au>, darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n|> There has been some discussion on the pros and cons about sex outside of\n|> marriage.\n  ...\n|> \n|> Where is the evidence for my opinions?  At the moment, there are just\n|> generalities I can cite.  For example, I read that in the 20th century,\n|> the percentage of youth (and people in general) who suffer from\n|> depression has been steadily climbing in Western societies (probably\n|> what I was reading referred particularly to the USA).  Similarly, one\n|> can detect a trend towards greater occurrence of sex outside of marriage\n|> in this century in Western societies -- particularly with the \"sexual\n|> revolution\" of the 60's, but even before that I think (otherwise the\n|> \"sexual revolution\" of the 60's would not have been possible),\n|> particularly with the gradual weakening of Christianity and consequently\n|> Christian moral teachings against sex outside of marriage.  I propose\n|> that these two trends -- greater level of general depression in society\n|> (and other psychological problems) and greater sexual promiscuity -- are\n|> linked, with the latter being a prime cause of the former.  I cannot\n|> provide any evidence beyond this at this stage, but the whole thesis\n|> seems very reasonable to me and I request that people ponder upon it.\n|> \n|>  Fred Rice <-- a Muslim, giving his point of view.\n|>  darice@yoyo.cc.monash.edu.au   \n\nI think this is a big leap sex->depression.  One example is myself,\nwhere no sex->depression :)  But, seriously 1) promiscuity is on a decline,\ndepression is not and 2) it might be more reasonable to say \ndepression->promiscuity.  I think depression is more likely to come\nfrom emotional problems (relationships, family, job, friends) and\npromiscuity is used as an escape.\nSince I see marriage as a civil and religious bond rather than an\nemotional bond, I don't see a problem with sex before (not outside of)\nmarriage so long as you have the same commitment and devotion as\nwhat is expected from a married couple.  Of course, this is just \nmy opinion.\n\nBrian /-|-\\\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6172, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nArticle-I.D.: qualcom.rdippold.735042679\nOrganization: Qualcomm, Inc., San Diego, CA\nLines: 11\nOriginator: rdippold@qualcom.qualcomm.com\nNntp-Posting-Host: qualcom.qualcomm.com\n\njhesse@netcom.com (John Hesse) writes:\n>Oh great. Wonderful news. Nobody can listen in--except the feds.\n\nAnd anybody who can get the keys from the escrow company.  This is a\ndatabase that's going to take plenty of updating - they think they can\nkeep it secure?  Please...  and that's just primary, not secondary\nsources, such as police using the key under a warrant.  Would anyone\nbe surprised if they just \"neglected\" to erase the key if it turned\nout they couldn't nail you on anything?\n-- \nNourish a waif and it will pick out your eyes.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6173, "properties": {"category": "sci.electronics", "text": "From: rg@futserv.austin.ibm.com (R.G. Keen)\nSubject: Re: All Electronics Press and Peel PCB transfer\nReply-To: ...futserv.austin.ibm.com!rg\nOrganization: IBM Coporation - Advanced Workstations and Systems.\nLines: 12\n\nI think there is a huge difference in the materials and \nprocess for printer/toner PCB's. I get first time, everytime\nresults from a local HP Postscript, and hardly ever works from\ncopies of the same artwork. The printer results are so good\nthat I have quit even looking for PC board processes. If I had\nto use the copier version, I would think I would look elsewhere.\nThe moral? Experiment and find what works. Toner transfer CAN\ngive excellent results. It, like any process, gives erratic \nresults with variable inputs.\n\nR.G.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6174, "properties": {"category": "comp.windows.x", "text": "From: cerna@ntep.tmg.nec.co.JP (Alexander Cerna (SV))\nSubject: transparent widgets--how?\nOrganization: The Internet\nLines: 8\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\nCc: cerna@ntep.tmg.nec.co.jp\n\nI need to write an application which does annotation notes\non existing documents.  The annotation could be done several\ntimes by different people.  The idea is something like having\nseveral acetate transparencies stacked on top of each other\nso that the user can see through all of them.  I've seen\nsomething like this being done by the oclock client.\nCould someone please tell me how to do it in Xt?\nThank you very much.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6175, "properties": {"category": "comp.graphics", "text": "Subject: XGA-2 info?\nFrom: rleberle@sparc2.cstp.umkc.edu (Rainer Leberle)\nDistribution: World\nOrganization: University of Missouri Kansas City\nNNTP-Posting-Host: sparc2.cstp.umkc.edu\nLines: 13\n\nHi,\nhas anyone more info about the XGA-2 chipset?\nHW-funcs, TrueColor, Resolutions,...\nAny boards with XGA-2 out yet?\n\nthanks\nRainer\n\n-- \nRainer Leberle\t                           rleberle@sparc2.cstp.umkc.edu\nUniversity of Kansas City, MO  \n\n>> New mail from clinton@whitehouse.dc.gov - (No Subject Specified)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6176, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tthiel@cs.uiuc.edu (Terry Thiel)\nSubject: Re: Desktop rebuild and Datadesk keyboard?\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 15\n\nsmith@pell.anu.edu.au (Michael Smith) writes:\n>Similarly, I have trained myself to hold down the RIGHT-HAND pair of\n>command-option for desktop rebuilds.\n\nI tried the right set and it didn't work.  I'm on the phone to their\ntech support right now and the guys doesn't know what a desktop\nrebuild is!!!  He's got me holding for someone else...............\nAnd holding, and holding, and holding.\n\nOk they finally got back to me and said basically \"it should work\".\nWell it doens't and they don't know why.  Guess it will go back to\nMacConnection and I'll buy something else.  I've got better things\nto do than play musical keyboards.\n-Terry\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6177, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pastor@vfl.paramax.com (Jon Pastor)\nSubject: Re: No 32-bit box on Gateway\nNntp-Posting-Host: athansor\nOrganization: not much...\nLines: 20\n\nI got this from GW2000:\n\nFrom: gateway@aol.com\nX-Mailer: America Online Mailer\nTo: pastor@vfl.paramax.com\nSubject: Re: 32-bit disk access\nDate: Mon, 29 Mar 93 14:26:45 EST\nMessage-Id: <9303291426.tn05643@aol.com>\nStatus: RO\n\nJon -\n\nTo get 32bit access in windows all you have to do is edit the system.ini...\nLook under the 386Enhanced section and add this line to it\n\"32bitdiskaccess=on\"... This will give you the 32bitdiskaccess that you\nneed... Thanks  :)\n\nRegards,\nScot Oehlerking (G2kScooter)\nGateway 2000\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6178, "properties": {"category": "sci.electronics", "text": "From: cgordon@vpnet.chi.il.us (gordon hlavenka)\nSubject: Re: what to do with old 256k SIMMs?\nOrganization: Vpnet Public Access\nLines: 14\n\n jhaines@eniac.seas.upenn.edu (Jason Haines) writes:\n>\tI was wondering if people had any good uses for old\n>256k SIMMs...  So, if you have an inovative use (or want to buy\n>some SIMMs  8-) ), I would be very interested in hearing\n>about it.\n\nAbout a month ago there was a photo posted on\nalt.binaries.pictures.misc of a 17.5-inch Northern Pike which had been\ncaught on a lure made of 256K SIMMs.\n\n-- \n----------------------------------------------------\nGordon S. Hlavenka           cgordon@vpnet.chi.il.us\nVote straight ticket Procrastination party Dec. 3rd!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6179, "properties": {"category": "misc.forsale", "text": "From: forman@ide.com (Bonnie Forman)\nSubject: Mac Classic II\nOriginator: forman@owl\nOrganization: Interactive Development Environments, SF\nLines: 13\n\n       Mac Classic 2 4/40  for sale\n       \n       1 year old, excellent condition\n       Includes dustcovers, freeware/shareware (including many fonts )\n               \n        $800.00 \n\n\temail or call 510/947-6987 (SF Bay Area)\n-- \n********************************************************************\n forman@ide.com   * ``Things that are Real are given and received  *\n !sun!ide!forman  *            in Silence''      M.B.              *\n********************************************************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6180, "properties": {"category": "sci.space", "text": "From: jdnicoll@prism.ccs.uwo.ca (James Davis Nicoll)\nSubject: Re: New planet/Kuiper object found?\nOrganization: University of Western Ontario, London\nDistribution: sci\nNntp-Posting-Host: prism.engrg.uwo.ca\nLines: 5\n\n\tIf the  new  Kuiper belt object *is*  called 'Karla', the next\none  should be called 'Smiley'.\n\n\t\t\t\t\t\t\tJames Nicoll\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.292+0000", "event": "documents", "entityId": 6181, "properties": {"category": "talk.politics.mideast", "text": "From: anwar+@cs.cmu.edu (Anwar Mohammed)\nSubject: Re: Remember those names come election time.\nKeywords: usa federal, government, international, non-usa government\nNntp-Posting-Host: gs135.sp.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 39\n\nIn article <C5u4qI.Mz4@apollo.hp.com> nelson_p@apollo.hp.com (Peter Nelson) writes:\n>                                \n>  BTW, with Bosnia's large Moslem population, why have nations like \n>  Turkey, Saudi Arabia, Syria, Egypt, and others with either money \n>  or strong military forces not spoken out more forcibly or offered \n>  to help out Bosnia?   \n\nObviously, you really don't know.\n\nThey *have* spoken out (cf Sec'y of State Christopher's recent trip to the ME),\nthey have provided millions in aid, and they have participated in the airlifts\nto Sarajevo.  They *would* supply military aid, if the UN would lift the embargo \non arms sales. \n\n>  The Turkish ambassador has ocassionally said\n>  a thing or two, but that's all; I see no great enthusism from any \n>  of those places to get *their* hands dirty.    Why does the US always\n>  get stuck with this stuff?\n>\n\nSee above.  (Kuwait has directly participated in the airlift of food to\nSarajevo.)\n\n>  Besides, there's no case that can be made for US military involvement\n>  there that doesn't apply equally well to, say, Liberia, Angola, or\n>  (it appears with the Khmer Rouge's new campaign) Cambodia.   Non-whites\n>  don't count?\n\nHmm...some might say Kuwaitis are non-white. Ooops, I forgot, Kuwaitis are\n\"oil rich\", \"loaded with petro-dollars\", etc so they don't count.\n\n>\n>\n>---peter\n>\n>\n>\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6182, "properties": {"category": "sci.electronics", "text": "From: mont@netcom.com (Mont Pierce)\nSubject: Need pinouts for a G8870 dtmf decoder chip\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nDistribution: usa\nLines: 19\n\n\nI bought this chip from Suncoast Technology and tried to build their\ndtmf decoder circuit.  But it's not working...\n\nIf anyone has the pinouts and possibly the voltage specs I'd sure\nappreciated it.  If someone could fax, email, or snail mail a copy\nof the spec sheet for this chip that would be even better. :)\n\nPlease email me if you can help.  \n\nThanks in advance,\n-- \nMont Pierce\n\n+-------------------------------------------------------------------------+\n| Ham Call: KM6WT             Internet:  mont@netcom.com                  |\n|    bands: 80/40/20/15/10/2  IBM vnet:  mont@vnet.ibm.com                |\n|    modes: cw,ssb,fm                                                     |\n+-------------------------------------------------------------------------+\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6183, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: Krillean Photography\nOrganization: University of Wisconsin Eau Claire\nLines: 21\n\n[reply to todamhyp@charles.unlv.edu (Brian M. Huey)]\n \n>I think that's the correct spelling..\n \nKirilian.\n \n>The picture will show energy patterns or spikes around the object\n>photographed, and depending on what type of object it is, the spikes or\n>energy patterns will vary. One might extrapolate here and say that this\n>proves that every object within the universe (as we know it) has its\n>own energy signature.\n \nThere turned out to be a very simple, conventional explanation for the\nphenomenon.  I can't recall the details, but I believe it had to do with\nthe object between the plates altering the field because of purely\nmechanical properties like capacitance.  The \"aura\" was caused by direct\nexposure of the film from variations in field strength.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6184, "properties": {"category": "comp.windows.x", "text": "From: dyoung@media.mit.edu (David Young)\nSubject:  Macro Recorder/Player for X?\nOrganization: MIT Media Laboratory\nLines: 18\n\n\n\nIs there aything available for X similar to QuicKeys for the Macintosh --\nsomething that will allow me to store and playback sequences of keystrokes,\nmenu selections, and mouse actions - directing them towards another\napplication?\n\nIf so, could someone send me information on its availability -- and if not,\nhow hard do we think it might be to send input to other X applications and,\nhopefully, deal with their responses appropriately?  (If an application is\ngoing to take a few seconds to process I probably have to wait  for it to\ncomplete before sending another command.)\n\nthanks,\n\ndavid,\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6185, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: FYI - BATF reply on Waco\nOrganization: Hand Held Products, Inc.\nLines: 52\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <C5L480.K7u@elite.intel.com> dgw@elite.intel.com (Dennis Willson)  \nwrites:\n[..]\n> \n> On February 28, 1993, the special agents attempting to serve the\n> Federal search warrant were all dressed in apparel clearly identified\n> with the letters \"ATF\" and a highly visible police-type badge.\n> Additionally, the special agents announced who they were and their\n> purpose for being at the compound.\n> \n> Immediately following this announcement, gunfire erupted from the\n> compound, resulting in the deaths of four ATF special agents and the\n> wounding of several others.  Through no fault of ATF, the element of\n> surprise was lost, which caused the tragedy.  \n\nThis statement simply amazes me!  \"Through no fault of ATF, the element of  \nsurprise was lost\"!  What element of surprise?  In the paragraph preceding this  \none, he said \"... the special agents announced who they were and their purpose  \nfor being at the compound\", which was to serve the federal warrant.  No element  \nof surprise was even needed for that.  \n\nNo, the element of surprise that they lost was that needed for a preemptive  \nfirst strike, without warning.  \n\n> Inasmuch as the warrants\n> remain sealed by a U.S. magistrate, and the investigation remains in an\n> active ongoung status, we are prohibited from disclosing any further\n> information at this time.\n> \n\nRead: They need to wait until they see how it comes out before they fabricate  \nanymore, which could get disproven.\n\n> We hope we have been responsive to your letter.  Please let us know\n> whenever we may be of service.\n> \n>                           Sincerely yours,\n> \n>                           Daniel M. H??l??tt  [can't make out signature]\n>                           Deputy Director\n\nAs always, no facts, just my opinions/observations.\n\nJim\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6186, "properties": {"category": "talk.politics.mideast", "text": "From: aa229@Freenet.carleton.ca (Steve Birnbaum)\nSubject: Re: Israeli Expansion-lust\nReply-To: aa229@Freenet.carleton.ca (Steve Birnbaum)\nOrganization: The National Capital Freenet\nLines: 24\n\n\nIn a previous article, hasan@McRCIM.McGill.EDU (M. Hasan AlHafez) says:\n\n>So the wars of 1948, 1956, 1967, 1968 (Karama), 1978, and 1982 were\n>all started by Arabs. \n\nThe wars of 1948, 1956, 1967, 1978 were definitely started by the Arabs.\nThe war in 1982 was instigated by the Arabs who continually murdered\nIsraeli children with their rocket attacks.  Israel was only trying to\nstop this.  \nLast what the heck are you talking about with \"1968 (Karama)\"?  There was \nno war in 1968!  \n\n   Steve\n-- \n------------------------------------------------------------------------------\n|   Internet: aa229@freenet.carleton.ca              Fidonet: 1:163/109.18   |\n|             Mossad@qube.ocunix.on.ca                                       |\n|    <<My opinions are not associated with anything, including my head.>>    |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6187, "properties": {"category": "talk.politics.guns", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: \"High Power\" Assault guns\nLines: 12\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nHigh power assault gun?  Why, you must be talking about the 155mm Howitzer.\n\nOr did you want to try a 16 incher?  Or one of the German railway guns?\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\npyron@skndiv.dseg.ti.com          |solutions, not gestures.\nPADI DM-54909                     |\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6188, "properties": {"category": "sci.space", "text": "From: dietz@cs.rochester.edu (Paul Dietz)\nSubject: Re: nuclear waste\nOrganization: University of Rochester\nLines: 41\n\nIn article <843@rins.ryukoku.ac.jp> will@rins.ryukoku.ac.jp (William Reiken) writes:\n\n>> The real reason why accelerator breeders or incinerators are not being\n>> built is that there isn't any reason to do so.  Natural uranium is\n>> still too cheap, and geological disposal of actinides looks\n>> technically reasonable.\n>>\n>\n>\tNovember/December, 1987 page 21 - \"Science and Technology in Japan\".\n>\t\t\tSeawater Uranium Recovery Experiment\n>\t\"The ground uranium reserves are estimated at about 3.6 million tons,\n> and it is anticipated that the demand and supply balance will collapse by the\n> end of the 20th century.  In Japan, a resources poor country, technological\n> development are now under way to economically collect uranium dissolved in\n> seawater.  The total quanity of uranium dissolved in seawater is estimated\n> to be about 4.6 billion tons, a huge amount when compared with ground uranium\n> reserves.......\"\n\n\nI hate to pour cold water on this, but currently seawater extracted\nuranium, even using the new, improved fiber absorbers from Japan, is\nabout 20 times more expensive than uranium on the spot market.\nUranium is *very* cheap right now, around $10/lb.  Right now, there\nare mines closing because they can't compete with places like Cigar\nLake in Canada (where the ore is so rich they present safety hazards\nto the mines, who work in shielded vehicles).  Plenty of other sources\n(for example, uranium from phosphate processing) would come on line before\nuranium reached $200/lb.\n\n\"Demand and supply balance will collapse\" is nonsense.  Supply and\ndemand always balance; what changes is the price.  Is uranium going\nto increase in price by a factor of 20 by the end of the century?\nNot bloody likely.  New nuclear reactors are not being built\nat a sufficient rate.\n\nUranium from seawater is interesting, but it's a long term project, or\na project that the Japanese might justify on grounds of\nself-sufficiency.\n\n\tPaul F. Dietz\n\tdietz@cs.rochester.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6189, "properties": {"category": "rec.sport.baseball", "text": "From: kirsch@staff.tc.umn.edu (Dave 'Almost Cursed the Jays' Kirsch)\nSubject: Re: Jose Canseco's swing - 1992 vs. 1986.\nNntp-Posting-Host: staff.tc.umn.edu\nOrganization: Li'l Carlos and the Hormones\nLines: 68\n\nIn article <C5r5B8.D1u@ucdavis.edu> ez027993@dale.ucdavis.edu (Gary 'Man From'\nVillanueva Huckabay) writes:\n>\n>It's certainly not very easy.  What I do is use frame advance on the tape,\n>and simply count the frames.  Five times, and try to throw out any outliers.\n>It's not perfect, but it's better than a blow to the head with a large\n>metal object.\n\n  Ah, so you finally found a use for that super slo-mo and frame advance\nother than scrutinizing \"Sorority Babes in Heat\". Congrats! \n\n>I wish I had FILMS instead of tapes, preferably at 48fps rather than 24,\n>but while I'm at it, I'd like to have ten million dollars, and be able\n>to eat anything I want and never gain any weight, either.\n\n  Trust me, you'd have a helluva time manipulating them. Besides, if you\nconverted the film to video you'd have all kinds of artifacts because of the\ndifference in frame rate (unless you're an expert at doing 3/2 pulldown for\na laserdisc company or something). \n\n>Gary's list of the ten slowest bats in baseball:\n\n  Hey, no fair! What about 'Fettucine' Alfredo Griffin? The guy practically\nhas to pivot the bat around along with his body. \n\n>Gary's list of \"How the HELL can he hit like that?\"\n>\n>1.  Julio Franco\n>2.  Phil Plantier\n>9.  Darren Daulton\n\n  Daulton doesn't strike me as all that strange. He's a little bit quiet at \nthe plate but, like Franco, gets the bat through the hitting zone on a level\nplane. The first time I watched Julio Franco, I didn't think *anyone* could\nhit like that. Now I marvel at how easy he makes it look; every time he makes\ncontact, it's *solid*. He's got good power to all fields and rarely is he\ncaught not ready for a pitch. \n\n  I wonder if Phil Plantier had a severe bout with hemorrhoids and had to\npractice his swing while 'on the throne'? :-) Sure looks like it :-) \n\n  How 'bout one to add to your list: Travis Fryman? The guy plants his front\nfoot and seems to swing *across* his body. He generates a lot of power, but\nI keep thinking he could generate even more if he could get a better pivot\nout of his hips. \n\n>Gary's list of \"I'd give Dave Kirsch's kidneys to have a swing like that.\"\n\n  Well, they're already spoken for (by several people), but .. \n\n  I'd add Robbie Alomar's name to the list, among others. I really like Dean\nPalmer's swing, for some twisted reason, as well as Pedro Munoz's swing. \n\n>That's all for now.  I'm looking at Derrick May's tapes tonight, along\n>with Troy Neel's.  That guy is a serious ox.\n\n  A thought about May: It looks like they've taught him to turn on the ball.\nIMHO, he's going to fall in love with his newfound power and start pulling\noff the ball to the point that he's going to see *lots* of sinkers/sliders\nlow and away. Unless he adjusts quickly and starts rifling doubles to left \nand left-center, IMHO you're going to see a good number of weak grounders to \nthe right side of the infield in the next month. \n\n-- \nDave Hung Like a Jim Acker Slider Kirsch      Blue Jays - Do it again in '93 \nkirsch@staff.tc.umn.edu                        New .. quotes out of context!\n\"Not to beat a dead horse, but it's been a couple o' weeks .. this \n disappoints me..punishments..discharges..jackhammering..\" - Stephen Lawrence \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6190, "properties": {"category": "sci.space", "text": "From: pgf@srl03.cacs.usl.edu (Phil G. Fraering)\nSubject: japanese moon landing/temporary orbit\nOrganization: Univ. of Southwestern Louisiana\nLines: 25\n\nrls@uihepa.hep.uiuc.edu (Ray Swartz (Oh, that guy again)) writes:\n\n>The gravity maneuvering that was used was to exploit 'fuzzy regions'.  These\n>are described by the inventor as exploiting the second-order perturbations in a\n>three body system.  The probe was launched into this region for the\n>earth-moon-sun system, where the perturbations affected it in such a way as to\n>allow it to go into lunar orbit without large expenditures of fuel to slow\n>down. The idea is that 'natural objects sometimes get captured without\n>expending fuel, we'll just find the trajectory that makes it possible\". The\n>originator of the technique said that NASA wasn't interested, but that Japan\n>was because their probe was small and couldn't hold a lot of fuel for\n>deceleration.\n\n\nI should probably re-post this with another title, so that\nthe guys on the other thread would see that this is a practical\nuse of \"temporary orbits...\"\n\nAnother possible temporary orbit:\n\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6191, "properties": {"category": "comp.windows.x", "text": "From: ianhogg@milli.cs.umn.edu (Ian J. Hogg)\nSubject: Re: how to put RPC in HP X/motif environment?\nNntp-Posting-Host: milli.cs.umn.edu\nOrganization: University of Minnesota, Minneapolis, CSci dept.\nLines: 15\n\nIn article <1993Apr19.200740.17615@sol.ctr.columbia.edu> nchan@nova.ctr.columbia.edu (Nui Chan) writes:\n>\n>has anybody implements an RPC server in the HP Xwindows? In SUN Xview, there\n>is a notify_enable_rpc_svc() call that automatically executes the rpc processes\n>when it detects an incoming request. I wonder if there is a similar function in\n>HP X/motif that perform the same function.\n>\n\nI've been using the xrpc package for about a year now.  I believe I got it from\nexport.  \n\n--\n===============================================================================\nIan Hogg\t\t\t\t\t\tianhogg@cs.umn.edu\n                                                        (612) 424-6332\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6192, "properties": {"category": "soc.religion.christian", "text": "From:  (Phil Bowermaster)\nSubject: C. S. Lewis is OK (was Ancient Books)\nOrganization: U S WEST Advanced Technologies\nLines: 49\n\nIn article <Apr.14.03.07.58.1993.5438@athos.rutgers.edu>,\nmayne@ds3.scri.fsu.edu (Bill Mayne) wrote:\n\n> \n> The last sentence is ironic, since so many readers of\n> soc.religion.christian seem to not be embarrassed by apologists such as\n> Josh McDowell and C.S. Lewis. The above also expresses a rather odd sense\n> of history. What makes you think the masses in Aquinas' day, who were\n> mostly illiterate, knew any more about rhetoric and logic than most people\n> today? If writings from the period seem elevated consider that only the\n> cream of the crop, so to speak, could read and write. If everyone in\n> the medieval period \"knew the rules\" it was a matter of uncritically\n> accepting what they were told.\n> \n> Bill Mayne\n> \n> [This may be unfair to Lewis.  The most prominent fallacy attributed\n> to him is the \"liar, lunatic, and lord\".  As quoted by many\n> Christians, this is a logical fallacy.  In its original context, it\n> was not.  --clh]\n\n\nExactly. \n\nC. S. Lewis has taken a couple of pretty severe hits in this group lately.\nFirst somebody was accusing him of being self-righteous and unconvincing.\nNow we are told that we Christians should be embarrassed by him. (As well\nas by Josh McDowell, about whom I have no comment, having never read his\nwork.)\n\nAnyone who thinks that C. S. Lewis was self-righteous ought to read his\nintroduction to The Problem of Pain, which is his theodicy. In it, he\nexplains that he wanted to publish the book anonymously. Why? Although he\nbelieved in the argument he was presenting, he did not want to seem to\npresume to tell others how brave they should be in the face of their own\nsuffering. He did not want people to think that he was presenting himself\nas some kind of model of fortitude, or that he was anything other than what\nhe considered himself to be -- \"a great coward.\" \n\nOFM has adequately handled the question of whether we ought to be\nembarrassed by Lewis' liar/lunatic/lord argument (which, by the way, is\npart of a *much* bigger discourse.) I would just like to add that, far from\nbeing embarrassed by Lewis, I am in a state of continual amazement at the\nsoundness and clarity of the arguments he presents. \n\n- Phil -\n\nHey, we're talking about the PHONE COMPANY, here. The Phone Company doesn't\nhave opinions on this kind of stuff. This is all me.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6193, "properties": {"category": "sci.electronics", "text": "From: cph@dmu.ac.uk (Chris Hand)\nSubject: Cheap LCD panels & seeking info\nOrganization: De Montfort University, Leicester, UK.\nLines: 37\n\nAttention hardware hackers and bargain seekers!\n\nI just bought a 640x200 pixel LCD panel for 25 UK pounds.  I have\na datasheet for a similar panel, but I'm looking for proper data.\n\nIf anyone can help with locating data for this device (before I start\nwith the routine on the phone to Hitachi and rummaging through the\nlibrary), then I'll pass on the source.\n\n\tType: LM225 (Hitachi)\n\tResolution: 640W x 200H (so can do 80x25 chars on 8x8 matrix)\n\nBought from:\n\n\tGreenweld Electronics Ltd\n\t27 Park Rd\n\tSouthampton SO1 3TB, UK\n\n\tTel. +44 703 23 63 63\n\tFax. +44 703 23 63 07\n\tEmail: Compuserve [100014,1463]\n\nNB: I only just bought this!  I don't even know if it works!\n\n\tPrice was 25 UK pounds including VAT (17.5%), which isn't\n\tpayable if you're outside the EC.\n\nThanks for any info!\n\n\nChris\n\n-- \nChris Hand, Lecturer                Internet mail: cph@dmu.ac.uk\nDept of Computing Science,          Voice: +44 533 551551 x8476\nDe Montfort University, The Gateway,  Fax: +44 533 541891  FIDOnet: 2:440/32.50\nLEICESTER, UK   LE1 9BH             >> Linux: *free* unix for IBM PCs! <<\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6194, "properties": {"category": "comp.windows.x", "text": "From: tomk@skywalker.bocaraton.ibm.com (Thomas Chun-Hong Kok)\nSubject: Re: Hypercard for UNIX\nOrganization: IBM Austin\nLines: 18\n\nIn article <1993Apr23.114028.17633@bernina.ethz.ch>, queloz@bernina.ethz.ch (Ronald Queloz) writes:\n> Hi netlanders,\n> \n> Does anybody know if there is something like Macintosh Hypercard for any UNIX \n> platform?\n> \n> \n> Thanks in advance\n> \n> \n> Ron.\n\n-- \n\nTry MetaCard - a HyperCard-like programming environment on X.\n\n\nChun Hong\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6195, "properties": {"category": "sci.crypt", "text": "From: srt@duke.cs.duke.edu (Stephen R. Tate)\nSubject: Re: More technical details\nOrganization: Duke University Computer Science Dept.; Durham, N.C.\nLines: 23\n\nIn article <1993Apr19.162936.7517@bernina.ethz.ch> caronni@nessie.cs.id.ethz.ch (Germano Caronni) (actually Dorothy Denning) writes:\n>The seeds S1 and S2 do not change.  \n\nLet me see if I have this straight --- if a person knows S1 and S2,\nand the serial number of the unit, it's easy to reconstruct UK.\nOf course, if they know SK, the \"family key\", they can easily get the\nserial number of any unit that has made a transmission.  So with S1 and\nS2 being used for a while \"batch\" of the unit keys, the number of\nused S1/S2 pairs will probably be fairly low.  Of course, you have to\nbelieve that the NSA/FBI/name-your-favorite-government agency will\nknow SK so all it needs is the S1/S2 pairs, and presto, nasty details \nlike court orders for wire taps are no longer necessary.\n\nNow, I'm not one of the people who distrusts the government at every\nturn, but taking someone's word for it that the S1/S2 pairs are not kept\naround is pushing what I'm willing to believe just a little bit too far.\n\n\n-- \nSteve Tate srt@cs.duke.edu | The reason why mathematics enjoys special esteem,\nDept. of Computer Science  | above all other sciences, is that its laws are\nDuke University     | absolutely certain and indisputable, while those of all\nDurham, NC  27706   | other sciences are to some extent debatable. (Einstein)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6196, "properties": {"category": "sci.med", "text": "From: jer@prefect.cc.bellcore.com (rathmann,janice e)\nSubject: Re: eye dominance\nOrganization: Bellcore, Livingston, NJ\nLines: 40\n\nIn article <1993Apr19.171938.17930@porthos.cc.bellcore.com>, jil@donuts0.uucp (Jamie Lubin) writes:\n> In article <19671@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n> >In article <C5E2G7.877@world.std.com> rsilver@world.std.com (Richard Silver) writes:\n> >>\n> >>Is there a right-eye dominance (eyedness?) as there is an\n> >>overall right-handedness in the population? I mean do most\n> >>people require less lens corrections for the one eye than the\n> >>other? If so, what kinds of percentages can be attached to this?\n> >\n> >There is eye dominance same as handedness (and usually for the\n> >same side).  It has nothing to do with refractive error, however.\n> \n> I recall reading/seeing that former baseball star Chris Chambliss' hitting\n> abilities were (in part) attributed to a combination of left-handedness &\n> right-eye dominance.\n \nI was part of a study a few years ago at the University of Arizona to\nsee whether cross dominant individuals (those with a particular handedness\nbut who had dominance in the opposite eye) were better hitters than\nthose with same side dominance of hand and eye.  I was picked from\nmy softball class because I was cross dominant (right hand, left eye)\nwhich put me in a small minority (and the grad student was trying to get\nan equal number of cross dominant and same side dominant people).  To\ncontrol the study, she used a pitching machine - fast pitch.  Since\nI was used to slow pitch, I didn't come close (actually I think\nI foul tipped a few) to hitting the ball.  If there were a lot of people\nlike me in her study (i.e., those who can't hit fast pitch, or are\nnot used to hitting off a machine),  I would seriously question the\nresults of that study!!  I think there have been some studies of major\nleague players (across a fairly large cross section of players) to test\nwhether eye dominance being the same or opposite side was \"better\" -\nbut I don't know the results.  (The woman who ran the study I was in\nsaid that there was a higher incidence of crossdominance in major\nleaguers than across the general population - but I'm not sure\nwhether I'd believe her.)\n\nJanice Rathmann\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6197, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: baseball@catch-the-fever.scd.ucar.edu (Gregg Walters)\nSubject: Mathcad 4.0 swap file?\nOrganization: Scientific Computing Divison/NCAR Boulder, CO\nLines: 119\n\nReposting and summarizing, for your information or additional comment.\n\n*** THIS IS LONG ***\n\nI have 16MB of memory on my 386SX (25 MHz), an Intel math coprocessor, and\na 120MB hard drive with 20MB free (no compression).  I have been running\nMathcad 3.1, under Windows 3.1 in enhanced mode, with a 5MB RAM drive,\n2MB/1MB Smart drive, and no swap file (permanent or temporary) for\nseveral months.\n\nI am interested in the faster Mathcad 4.0, but I am concerned about reported\nswap file requirements and the legitimacy of Mathsoft's claim about increased\nspeed.\n\nTO 386SX USERS:\n\n  Will Mathcad 4.0 run without a swap file, or insist that I use a swap file?\n\nSo far, in response to a less detailed description of my setup, or in\nunrelated postings, the more informed answers, on the net or by E-mail,\nappear to be:\n\n  1) by fuess@llnl.gov (David A. Fuess) >>\n\n   >> According to Mathsoft, no. Mathcad uses the swap file extensively so as\n   >> not to overburden the physical resources. They say this is actually a\n   >> win32s feature. A figure of 10MB was indicated to me as a minimum. But\n   >> you might try anyway!\n\n  2) by bert.tyler@satalink.com (Bert Tyler) >>\n\n   >> I'm not all that certain that Mathcad is the culprit here.\n   >>\n   >> I have a 486/66DX2 with 16MB of main memory (less 2MB for a RAMdisk and\n   >> a bit for a DOS session that is opened as part of the startup process),\n   >> which I have been running without any swapfile.  When I installed the\n   >> WIN32s subsystem from the March Beta of the NT SDK, the WIN32s subsystem\n   >> itself demanded the presence of a swapfile.  The only WIN32s program\n   >> I've run to date is the 32-bit version of Freecell that came with that\n   >> subsystem.\n   >>\n   >> I gave Windows a small temporary swapfile (I'm leery of files that must\n   >> remain in fixed locations on my hard disk), and all seems well.\n\n  3) by bca@ece.cmu.edu (Brian C. Anderson) >>\n\n   >> What is Win32?  I upgraded to Mathcad 4.0 and it installed a directory for\n   >> Win32 under \\windows\\system .  During the upgrade it told me that win32\n   >> was required.\n\n  4) by case0030@student.tc.umn.edu (Steven V Case-1) >>\n\n  >> MathCad 4.0 makes use of the Win32s libraries.  You've probably\n  >> heard about Win32s, it is a 32-bit Windows library that provides\n  >> much of the Windows NT functionality (no support for threads and\n  >> multitasking and such) but can be run under Windows 3.1.\n\n  5) by rhynetc@zardoz.chem.appstate.edu (Thomas C. Rhyne) >>\n\n   >> I also have 16 Mb of ram, and indeed Mathcad 4.0 insisted on a permanent\n   >> swapfile; it would not run otherwise.\n\n  6) by bishop@baeyer.chem.fsu.edu (Greg Bishop) >>\n\n   >> 3) MathCAD absolutely requires 4MB RAM (with 12MB swap file) or 8MB RAM\n   >> (with 8MB swap file).  It will give you a not enough memory error if the\n   >> swap file is less than 8MB.  It is a MAJOR resource hog.  If you do not\n   >> load the symbolic processor or the smart math, it takes about 5MB of RAM\n   >> (real or virtual) just to load (again, due to the win32s libraries.\n\n********************************************************************************\n*                                                                              *\n* So it seems that in addition to the system requirements shown on Mathsoft's  *\n* advertisement for 4.0, that you need a swap file, possibly as big as 12MB.   *\n* Looks like I would just need an 8MB swap file, and would need to choose (or  *\n* can I?) between a faster permanent swap file, or a slower temporary swap file*\n*                                                                              *\n* Apparently a Win32 subsystem ships with Mathcad 4.0 - how much disk space    *\n* does this require?                                                           *\n*                                                                              *\n********************************************************************************\n\nI also received these answers:\n\n  1) by mfdjh@uxa.ecn.bgu.edu (Dale Hample) >>\n\n   >> If you've got 16 megs of RAM, why not configure 10megs as a ram disk for\n   >> Mathcad?  DOS 6 permits different bootup configurations.\n\n********************************************************************************\n*                                                                              *\n* Can Mathcad 4.0 + Win32 be configured to use such a RAM drive instead of a   *\n* swap file?  If not, I don't see how using DOS 6.0 for an alternate bootup    *\n* would provide Windows with this swap file.   Some time back I remember a     *\n* discussion about the issues of using a RAM drive to support a swap file,     *\n* but I thought this involved slower, < 8MB systems.                           *\n*                                                                              *\n* I have DOS 6.0 but for various reasons have not yet done a full installation.*\n*                                                                              *\n* By the way, is a full installation of DOS 6.0 required to avail oneself of   *\n* the \"alternate bootup\" feature?  Which files from the installation disks are *\n* required?                                                                    *\n*                                                                              *\n********************************************************************************\n\n  2) by wild@access.digex.com (Wildstrom) >>\n\n   >> Presumeably, you mean without a _permanent_ swap file. If Windows needs a\n   >> swap file, it will upo and create one if a permanent one doesn't exist.\n   >> Permanent is generally faster though. I don't know why Mathcad wouldn't\n   >> be happy with either type--Ver. 3.0 is and so should any program conforming\n   >> to the Win specification.\n\n*********************************************************************************\n*                                                                               *\n* So far, 16MB has been enough RAM to avoid the overhead of running ANY swap    *\n* file - I have been running Mathcad 3.1 under Windows 3.1 without one.         *\n*                                                                               *\n*********************************************************************************\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6198, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: Gun Control\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nLines: 94\n\n\nIn article <C51L52.BGo@magpie.linknet.com>, manes@magpie.linknet.com (Steve Manes) writes:\n>\n>I would be surprised if there weren't contrary studies.  I might add that\n>Sloan and Kellerman was endorsed by the police departments of both Seattle\n>and Vancouver and is considered by most of the references I have at hand the\n>most exhaustive study of its kind, even by those who take issue with some of\n>the essay's conclusions.  S&K's statistics speak largely for themselves\n>without postulate.\n\nAnd, I might add, vitamin C has been endorsed by a Nobel Laureate as a\npanacea for almost everything from the common cold to cancer.  \n\n> In order to compare violent crime trends, S&K compared >all<\n>violent crime categories, from simple assault through various mechanisms of\n>homicide.  \n\nWait a minute. S&K did NOT compare trends.  If they did, they would\nhave seen that the advent of Canada's gun law had no effect on\nhomicides, total or handgun.  Without a pre- vs. post comparison, one\ncannot speculate as to the utility of anything.  All they have is a\ncorrelation, and correlation DOES NOT prove causality.\n\n\n>If your point is that non-whites commit more handgun crimes than whites\n>then yours is the dubious assumption.  Conventional social theory is that\n>economic status, not color, is the primary motivating factor for crime,\n>especially violent crime.  What's your point anyway, that white people\n>are more responsible gun owners?  Should we assume that it's a coincidence\n>that there are comparitively fewer white people earning below the poverty\n>line and living in tenement neighborhoods where most violent crime occurs?\n\nHold it again. You dismiss a point about demographics, then you ask\nabout socio-economic demographics? Very slick.\n>\n>:    Differences between the two cities in the\n>:    permit regulations render these two numbers strictly noncomparable.\n>\n>On the contrary, it's these differences that are the very basis of the study:\n>the easy availability of legal handguns in Seattle and the much more\n>difficult \"restricted-weapons\" permit required in Vancouver.\n\nOnce again, correlation does not prove causality.  Looking at pre-vs.\npost data, the Canadian gun law had no effect.\n\n>\n>Not so.  Cook measures suicides and assaultive homicides with\n>firearms against a survey-based estimate of the number of legal and\n>illegal guns in circulation within a city.  \n\nSir, if you were a Canadian, and owned a gun before the restrictive\ngun laws were passed, and decided to hide it rather than turn it in,\nwould you answer truthfully a question about gun ownership from\nsomeone who calls, writes, or asks you on the street?  That is one\nproblem with surveys.  Nobody will answer an incriminating question.\nAnother is that people will often tell you what they THINK you want to\nhere.\n\n>\n>Again, your author misses the core issue: that Vancouver citizens are\n>prohibited from purchasing handguns on the basis of self-defense.  They\n>don't have a choice in the matter.\n\nDoes that mean no Vancouver citizens have handguns? I think not. You\nare discounting guns purchased beforehand, and guns purchased for\npurposes other than self-defense, which can also be used for defense.\n\n>\n>Hmmm... sounds like your author might like a bumper sticker that reads \"Guns\n>don't kill people, black people kill people!\"  Honestly, his conjectures,\n>backed up by zero evidence, zero studies and even less common sense, aren't\n>worth the considerable time it must have taken you to type in.  His\n>assumptions look frighteningly close to those pseudo-scientific \"studies\"\n>that the white supremist assholes love... the crap that takes published\n>statistics, twisted around in an attempt to prove the inherent criminal\n>nature of black people.\n\nHe makes valid points about demographic differences.  You then resort\nto the kind of argument that the \"Politically Correct\" movement often\nuses to stifle any debate.  Nice, real nice.\n\n\n>This author's essay contains 0% independent study upon which to base his\n>conclusions, just some strained, disjointed statistical discourse attempting\n>to blame Seattle's murder rate on blacks. \n\nOne doesn't have to produce his own data in order to point out the\nflaws in the methodology and conclusions of another's study. Again,\nyou resort to PC tactics.\n\n\nAl\n[standard disclaimer]\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6199, "properties": {"category": "comp.graphics", "text": "From: mart4678@mach1.wlu.ca (Phil Martin u)\nSubject: Re: Newsgroup Split\nX-Newsreader: TIN [version 1.1 PL6]\nOrganization: Wilfrid Laurier University\nLines: 17\n\nChris Herringshaw (tdawson@engin.umich.edu) wrote:\n: Concerning the proposed newsgroup split, I personally am not in favor of\n: doing this.  I learn an awful lot about all aspects of graphics by reading\n: this group, from code to hardware to algorithms.  I just think making 5\n: different groups out of this is a wate, and will only result in a few posts\n: a week per group.  I kind of like the convenience of having one big forum\n: for discussing all aspects of graphics.  Anyone else feel this way?\n: Just curious.\n: \n: \n: Daemon\n: \n\nYes. I also like knowing where to go to ask a question without getting\nhell for putting it in the wrong newsgroup.\n\nPhil Martin.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6200, "properties": {"category": "rec.sport.hockey", "text": "From: andrew@idacom.hp.com (Andrew Scott)\nSubject: USENET Playoff Hockey Pool: Game 1 standings\nOrganization: IDACOM, A division of Hewlett-Packard\nLines: 224\n\nHere are the standings after game 1 of each of the divisional semi-finals.\n(Hey, look who's #4!)  I'll try to post the standings after \"each game\"\n(i.e. every two days).\n\nI managed to recover the email lost up to Saturday night, so all I'm missing\nis mail that arrived between early Saturday morning and Sunday afternoon.\nMany people re-sent their teams, so you may have received two replies back\nfrom me.  If your team name is not on this list, please resend your team\nto me and I'll see what I can do.  Any kind of \"proof\" you sent it on the\nweekend will help your case.  :-)  Seriously, this is only a fun pool and\nI trust each person to be honest.\n\nAgain, sorry for any inconvenience, and I hope the pool is still fun for you.\n\n\t- Andrew\n\n\nUSENET Hockey Playoff Draft Standings\n\nPosn\tTeam\t\t\t\tPts\tRem\tLast Posn\n\n1.\tSneddon Scorers                 43\t25\t(--)\n2.\tThe Borg                        42\t25\t(--)\n\tDave Wessels                    42\t25\t(--)\n4.\tBruce's Rented Mules            41\t25\t(--)\n\tGreat Expectations              41\t25\t(--)\n\tHurricane Andrew                41\t25\t(--)\n\tJerky Boys                      41\t24\t(--)\n\tHomesick Hawaiian               41\t25\t(--)\n9.\tgive you money monday           40\t25\t(--)\n\tEinstien's Punk Band            40\t25\t(--)\n11.\tZipper Heads                    39\t25\t(--)\n\tTapio Repo                      39\t25\t(--)\n\tDetroit Homeboy                 39\t25\t(--)\n\tthe dead ducks                  39\t25\t(--)\n\tMike Burger                     39\t25\t(--)\n\tTest Department                 39\t25\t(--)\n\tTeam Elvis                      39\t25\t(--)\n\tCraig team                      39\t25\t(--)\n19.\tSkate or Die                    38\t25\t(--)\n\tDebbie Bowles                   38\t25\t(--)\n\tFuzzfaces Galore                38\t25\t(--)\n\tsuds                            38\t25\t(--)\n\tThe Campi Machine               38\t25\t(--)\n\tzachmans wingers                38\t25\t(--)\n\tSean Forbes                     38\t25\t(--)\n\tThreepeat                       38\t25\t(--)\n\tFlamming Senators               38\t25\t(--)\n\tTeam Awesome                    38\t25\t(--)\n\tA.P. BURY                       38\t25\t(--)\n\tPURDUE RICKS PENS               38\t25\t(--)\n\tGB Flyers                       38\t25\t(--)\n\tSeppo Kemppainen                38\t25\t(--)\n33.\tPaige Faults                    37\t25\t(--)\n\tweenies                         37\t25\t(--)\n\tchris roney                     37\t25\t(--)\n\tRednecks from Hockey Hell       37\t25\t(--)\n\tDog's Hog's                     37\t25\t(--)\n\tMind Sweepers                   37\t25\t(--)\n\tTeem Kanada                     37\t25\t(--)\n\tNorthern Lights                 37\t25\t(--)\n\tFugazi                          37\t25\t(--)\n\tDelaware Destroyers             37\t25\t(--)\n\tMopar Muscle Men                37\t25\t(--)\n\tLance Hill The Boston Bruins Fa 37\t25\t(--)\n\tgarryola                        37\t25\t(--)\n\tOakville Brothers               37\t25\t(--)\n\tSam & His Dogs                  37\t25\t(--)\n\tCluster Buster                  37\t24\t(--)\n\tJan Stein                       37\t25\t(--)\n\tfrank's little wankers          37\t25\t(--)\n\tMilton Keynes Kings             37\t25\t(--)\n\tThe promise land                37\t25\t(--)\n\tRangers Of Destiny              37\t25\t(--)\n54.\tNew Zealand Leafs               36\t25\t(--)\n\tLoaded Weapons                  36\t25\t(--)\n\tBloom County All-Stars          36\t25\t(--)\n\tRobarts Research Rebels         36\t25\t(--)\n\tTiger Chung Lees                36\t25\t(--)\n\tgoddess of fermentation         36\t25\t(--)\n\tmake beliefs                    36\t25\t(--)\n\tRob Del Mundo                   36\t25\t(--)\n\tHeikki Salmi                    36\t25\t(--)\n\tThe Underwriters                36\t25\t(--)\n\tMuller n Walker                 36\t25\t(--)\n\tControversy Warriors            36\t25\t(--)\n\tBjorkloven                      36\t25\t(--)\n\tNorway Killerwhales             36\t25\t(--)\n\tHolsteins SFB                   36\t25\t(--)\n\tbuffalo soldiers                36\t25\t(--)\n\tLemon Pepper Grizzly Bears      36\t25\t(--)\n\tFRACK ATTACK                    36\t25\t(--)\n\tHoudini's Magicians             36\t25\t(--)\n\tThe ^&#@$#$% Rangers of 1940    36\t24\t(--)\n\tRangers Blow                    36\t25\t(--)\n75.\tDave Hiebert                    35\t25\t(--)\n\tYan Loke                        35\t25\t(--)\n\tCanadian Gladiators             35\t25\t(--)\n\tlittlest giants                 35\t25\t(--)\n\tAlf's All-Stars                 35\t25\t(--)\n\tThe Ice Kickers                 35\t25\t(--)\n\tBeer Makes Me An Expert         35\t25\t(--)\n\tForce 25                        35\t25\t(--)\n\tMr Creosote                     35\t25\t(--)\n\tThe Goobmeister                 35\t25\t(--)\n\tThe Mulberry Maulers            35\t25\t(--)\n\tRev's Rebels                    35\t25\t(--)\n\tBOSSE                           35\t25\t(--)\n\tZippety Doodah                  35\t25\t(--)\n\tKramer George and Jerry         35\t25\t(--)\n\tDehraDun Maawalis               35\t25\t(--)\n\tSludge                          35\t25\t(--)\n\tj's rock'em sock'ems            35\t25\t(--)\n\tbrians bloodletters             35\t25\t(--)\n\tGrant Marven                    35\t25\t(--)\n\tArctic Circles                  35\t25\t(--)\n\tall the kane's men              35\t25\t(--)\n\ttrevor's triumph                35\t25\t(--)\n\tMark And Steve Dreaming Again   35\t25\t(--)\n\tGoaldingers                     35\t25\t(--)\n\tBjoern Leaguen                  35\t25\t(--)\n\tHabs Playing Golf               35\t25\t(--)\n102.\tShigella                        34\t25\t(--)\n\tNew Jersey Rob                  34\t25\t(--)\n\tSteves Superstars               34\t25\t(--)\n\tBig Bay Bombers                 34\t25\t(--)\n\tDoug Bowles                     34\t25\t(--)\n\tNeural Netters                  34\t25\t(--)\n\tLIPPE                           34\t25\t(--)\n\tLets Go Pandas                  34\t25\t(--)\n\tLes Raisins                     34\t25\t(--)\n\tDaves knee jerk picks           34\t25\t(--)\n\tMonica Loke                     34\t25\t(--)\n\tJason team                      34\t25\t(--)\n\tRENEB                           34\t25\t(--)\n\tSchott Shooters                 34\t25\t(--)\n\tGilles Carmel                   34\t25\t(--)\n\tLewey's Lakers                  34\t25\t(--)\n\tsmithw                          34\t25\t(--)\n\tEast City Jokers                34\t25\t(--)\n\tDaryl Turner                    34\t25\t(--)\n\tDoug Mraz                       34\t25\t(--)\n\tSkriko Wolves                   34\t25\t(--)\n\tIceMachine                      34\t25\t(--)\n\tLamp Lighters                   34\t25\t(--)\n\tOn Thin Ice                     34\t25\t(--)\n\tJOE'S A CRAK HEAD               34\t25\t(--)\n127.\tSamuel Lau (Calgary, Alberta)   33\t25\t(--)\n\tComfortably Numb                33\t25\t(--)\n\tReksa fans of Oulu              33\t25\t(--)\n\tGail Hiebert                    33\t25\t(--)\n\tgee man                         33\t25\t(--)\n\tBut Wait Theres more            33\t25\t(--)\n\tmarcs maulers                   33\t25\t(--)\n\tDanielle Leblanc                33\t25\t(--)\n\tBobby Schmautz Fan Club         33\t25\t(--)\n\tOttawa Bearcats                 33\t25\t(--)\n\tBoops Bets                      33\t25\t(--)\n\ttriple X                        33\t25\t(--)\n\tTimo Ojala                      33\t25\t(--)\n\tFlying pigs                     33\t25\t(--)\n141.\tThe Eradicators                 32\t25\t(--)\n\tVan Isle Colonists              32\t25\t(--)\n\tCommitments                     32\t25\t(--)\n\tbure's blur                     32\t25\t(--)\n\tGreat Scott                     32\t25\t(--)\n\tweasels                         32\t25\t(--)\n\tTequila Shooters                32\t25\t(--)\n\tWhiters                         32\t25\t(--)\n\tFrasses Faceplants              32\t25\t(--)\n\tHigh Stickers                   32\t25\t(--)\n\tMak Paranjape                   32\t25\t(--)\n\tLord Stanley's Favourites       32\t25\t(--)\n\tSan Jose Mahi Mahi              32\t25\t(--)\n\tOz                              32\t25\t(--)\n\tE.I.S                           32\t25\t(--)\n\tMann Mariners                   32\t24\t(--)\n\tJFZ Dream Team                  32\t25\t(--)\n\tStacey Ross                     32\t25\t(--)\n\tLouisiana Psycho Killers        32\t25\t(--)\n\tLa Coupe Stainless              32\t25\t(--)\n161.\tfighting amish                  31\t25\t(--)\n\tEvan Pritchard                  31\t25\t(--)\n\tStanias Stars                   31\t25\t(--)\n\tPens Dynasty                    31\t25\t(--)\n\toceanweavers                    31\t25\t(--)\n\tgo go gagit                     31\t25\t(--)\n\tMyllypuro Hedgehogs             31\t25\t(--)\n\tArm & Hammer                    31\t25\t(--)\n\tLegzryx                         31\t25\t(--)\n\tChapman Chaps                   31\t25\t(--)\n\tDean Martin                     31\t25\t(--)\n\tCherry Bombers                  31\t25\t(--)\n173.\tSluggo's Hosers                 30\t25\t(--)\n\tAnson Mak                       30\t25\t(--)\n\tKnights on a Power Play         30\t25\t(--)\n176.\tCanuck Force                    29\t25\t(--)\n\tbutt ends                       29\t25\t(--)\n\tbeam team                       29\t25\t(--)\n\tJUKURIT                         29\t25\t(--)\n\tChapman Sticks                  29\t25\t(--)\n\tKen De Cruyenaere               29\t25\t(--)\n\tgax goons                       29\t25\t(--)\n\tTampere Salami                  29\t25\t(--)\n\tSparky's Select                 29\t25\t(--)\n185.\tHillside Raiders                28\t25\t(--)\n\tEldoret Elephants               28\t25\t(--)\n\tJane's World                    28\t25\t(--)\n\tthe ALarmers                    28\t25\t(--)\n189.\tRolaids Required                27\t25\t(--)\n\tChip n Dale                     27\t25\t(--)\n\tBrian Bergman                   27\t25\t(--)\n192.\tKiller Kings                    26\t25\t(--)\n\tMontys Nords                    26\t25\t(--)\n194.\tArsenal Maple Leafs             25\t18\t(--)\n\tMartin's Gag                    25\t25\t(--)\n196.\tEquipe Du Jour                  24\t25\t(--)\n197.\tlisa's luggers                  23\t25\t(--)\n\n-- \nAndrew Scott                    | andrew@idacom.hp.com\nHP IDACOM Telecom Operation     | (403) 462-0666 ext. 253\n\nDuring the Roman Era, 28 was considered old...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6201, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rvenkate@ux4.cso.uiuc.edu (Ravikuma Venkateswar)\nSubject: Re: x86 ~= 680x0 ?? (How do they compare?)\nDistribution: usa\nOrganization: University of Illinois at Urbana\nLines: 40\n\ndhk@ubbpc.uucp (Dave Kitabjian) writes:\n\n>I'm sure Intel and Motorola are competing neck-and-neck for \n>crunch-power, but for a given clock speed, how do we rank the\n>following (from 1st to 6th):\n>  486\t\t68040\n>  386\t\t68030\n>  286\t\t68020\n\nNot a good idea to compare processor power. Doesn't make sense for real\nworld applications. At least not for totally different lines of processors.\n\n>While you're at it, where will the following fit into the list:\n>  68060\n>  Pentium\n>  PowerPC\n\n>And about clock speed:  Does doubling the clock speed double the\n>overall processor speed?  And fill in the __'s below:\n>  68030 @ __ MHz = 68040 @ __ MHz\n\nAt least for x86 systems doubling the clock speed increases performance\nby about 70% .\n\n>Thanks very much.  I'd appreciate hearing any further explanations\n>from any experienced folks out there, too! \n\n> \n>P.S.  Folks have been having trouble replying to me lately with the \"reply\"\n>      command.  Try typing my address by hand and it should work.  Thanks!\n\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n>DAVE KITABJIAN (kit-ahb'-jyin)    Vital Statistics:\n\t\t\t\t   stuff deleted\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n-- \nRavikumar Venkateswar\nrvenkate@uiuc.edu\n\nA pun is a no' blessed form of whit.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6202, "properties": {"category": "sci.crypt", "text": "From: tcmay@netcom.com (Timothy C. May)\nSubject: \"Clipper\" an Infringement on Intergraph's Name?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: Tin 1.1 PL5\nLines: 28\n\nBesides being an infringement on our civil liberties (not the subject\nin this post), the name \"Clipper Chip\" seems very confusable with the\n\"Clipper\" chip of Intergraph.\n\nOriginally designed by a team at Fairchild Semiconductor, Clipper was\na 32-bit RISC microprocessor. It is still used in some workstations,\nnotably those from Intergraph, the supplier of CAD tools. Intergraph\nacquired the Clipper product line when Fairchild was sold to National\nSemiconductor several years back.\n\nWhen I first saw \"Clipper Chip\" in the announcement, I immediately\nthought the article was referring to the Clipper chip I know.\n\nThis seems to be grounds for Intergraph to sue, but then I'm not a\nlawyer. I'd say I'm a cryptologist, but I don't want to incriminate\nmyself under the laws of the new regime.\n\n-Tim May\n\n\n-- \n..........................................................................\nTimothy C. May         | Crypto Anarchy: encryption, digital money,  \ntcmay@netcom.com       | anonymous networks, digital pseudonyms, zero\n408-688-5409           | knowledge, reputations, information markets, \nW.A.S.T.E.: Aptos, CA  | black markets, collapse of governments.\nHigher Power: 2^756839 | Public Key: PGP and MailSafe available.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.293+0000", "event": "documents", "entityId": 6203, "properties": {"category": "rec.sport.baseball", "text": "From: drw3l@delmarva.evsc.Virginia.EDU (David Robert Walker)\nSubject: Re: Bo was a good player, you shorts (plus idiots)\nOrganization: University of Virginia\nLines: 35\n\nIn article <1993Apr5.101636.1@otago.ac.nz> guilford@otago.ac.nz writes:\n>In article <1993Apr4.030934.23187@Princeton.EDU>, roger@crux.Princeton.EDU (Roger Lustig) writes:\n>> In article <1993Apr4.133620.1@otago.ac.nz> guilford@otago.ac.nz writes:\n\n     BO JACKSON 1963          \n  1988 KCR    437  106  16   4  23   28   29   7  .253   67  .243  .288  .455\n  1989 KCR    517  134  19   5  33   41   27  10  .274   92  .259  .314  .507\n  1990 KCR    405  110  17   1  27   44   16   9  .286   77  .272  .343  .519\n  1991 CWS     71   16   3   0   3   12    0   1  .240   10  .225  .337  .394\n    MAJ      1430  366  55  10  86  125   72  27  .270  246  .256  .316  .489\n    MAJ       598  153  23   4  36   52   30  11\n\nThis is what Jackson looked like in 88-91, with everything converted\nto a neutral park, on the basis of run production. His equivalent\naverage started at .253 in 88, was up to .274 in 89 and 286 in 90. So\nlet us say he had established, in his last two seasons, a .280 level\nof play.\n\nThat is good. Very good, in fact. But it probably doesn't make the top\nten in the league. The 10th best EQA in the AL in 1992 was Dave\nWinfield's .296; Thomas was first at .350. First in the NL was Bonds,\nan incroyable .378; tenth was Bip Roberts, .297. But .280 is better\nthan any season in the past five years by Joe Carter; it is about what\nMattingly had in 1988 (.285); what Felix Jose had the last two years;\njust ahead of Time Raines' five-year average; better than Ryan\nKlesko's MLEs. \n\nHe got more attention from the media than was warranted from his\nbaseball playing, though; his hype was a lot better than his hitting.\nThat is the basis for the net.comments about him being overrated. The\nmedia would have you beleive he was a great hitter. I think he was a\ngood, maybe very good hitter. He was IMO, something like the 30th best\nhitter in the majors.\n\nClay D.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6204, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: New Study Out On Gay Percentage\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 75\n\nIn article <C5K5LC.CyF@murdoch.acc.Virginia.EDU> lfoard@hopper.Virginia.EDU (La\nwrence C. Foard) writes:\n>In article <15378@optilink.com> cramer@optilink.COM (Clayton Cramer) writes:\n>>\n>>\n>>From the Santa Rosa (Cal.) Press-Democrat, April 15, 1993, p. B2:\n>>\n>>    Male sex survey: Gay activity low\n>>\n>>    A new natonal study on male sexual behavior, the most thorough\n>>    examination of American men's sexual practices published since\n>>    the Kinsey report more than four decades ago, shows about 2\n>>    percent of the men surveyed had engaged in homosexual sex and\n>>    1 percent considered themselves exclusively homosexual.\n>>\n>>    The figures on homosexuality in the study released Wednesday\n>>    by the Alan Guttmacher Institute are significantly lower than\n>>    the 10 percent figure that has been part of the conventional\n>>    wisdom since it was published in the Kinsey report.\n>\n>1) So what?\n\nSo there are less gays, then the gays claim.\n>\n>2) It will be interesting to see the reaction when 2.5million queers\n>   gather in Washington DC. After all if there are only 6million of\n>   us then this is an event unprecidented in history...\n>\n\nDream on.  Abortion and African-American Civil rights rallies don't even bring\nin half of that.\n\n>>The article also contains numbers on the number of sexual partners.\n>>The median number of sexual partners for all men 20-39 was 7.3.\n>\n>Don't forget that 25% had 20 or more partners....\n>\n\nI was wondering why I wasn't getting laid.\n\n>>Compared to the table I have already posted from Masters, Johnson,\n>>and Kolodny showing male homosexual partners, it is apparent that\n>>homosexual men are dramatically more promiscuous than the general\n>>male population.\n>\n>And what did this study show for number of sexual contacts for those\n>who said they where homosexual? Or is that number to inconvient for\n>you....\n>\n\nIf it's more, then who cares?\n\n>>It's a shame that we don't have a breakdown for\n>>straight men vs. gay/bi men -- that would show even more dramatically\n>>how much more promiscuous gay/bi men are.\n>\n>Fuck off\n>\n\nActually, I bet you more gay/bi men are as not as promiscuous as gay men, \nbecause more of them could have the \"option\" of living a straight life, and \nwith social pressures, probably would at least try.\n\n>--\n>------          Join the Pythagorean Reform Church!               .\n>\\    /        Repent of your evil irrational numbers             . .\n> \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n>  \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n>\n\nDid you know that is is a fact that homosexuality was comparatively high in \nHitler's storm troopers (SA) before he came to power.  I wonder if they got to \nput the triangles on themselves......\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6205, "properties": {"category": "rec.motorcycles", "text": "From: paulb@harley.tti.com (Paul Blumstein)\nSubject: The best of times, the worst of times\nNntp-Posting-Host: harley.tti.com\nOrganization: Black Belt Motorcyclists Association\nLines: 26\n\n(note: this is not about the L.A. or NY Times)\n\nA few times a year, a funny thing happens: the bike engine runs\nperfectly.  Completely smooth.  Not that it runs poorly normally, but\non these days, it is exceptional.  My theory is that the air density\nand moisture content of the air are such that I get complete\ncombustion.  Needless to say, it puts me in a great mood.\n\nThe mood lasted for about 20 miles.  Heading north on the 405\nfreeway, about a mile or two south of the 10, my throttle stopped\nresponding.... and I was between lanes.  Nothing to do but make \nmy way over 4 lanes to the shoulder... initially by gliding, then\nby pushing.  At least traffic was heavy enough so that cars did\nnot mind stopping for me.\n\nTurned out to be a screw unscrewed inside my Mikuni HS40 \ncarb.  I keep hearing that one should keep all of the screws\ntight on a bike, but I never thought that I had to do that\non the screws inside of a carb.  At least it was roadside\nfixable and I was on my way in hardly any time.\n____________________________________________________________________________\n   Death is life's way of telling you you've been fired  -- R. Geis\n----------------------------------------------------------------------------\n   Paul Blumstein, paulb@harley.tti.com, DoD #36, ABATE, AMA, HOG, doh #2\n  KD6LAA, MARC, ARRL, Platypus #240, QRP-ARPCI, NASWA, LWCA, RCMA (CALA905)\n            Transaction Technology, Inc., Santa Monica, CA\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6206, "properties": {"category": "talk.politics.guns", "text": "From: chiu@io.nosc.mil (Francis Chiu)\nSubject: Re: Blast them next time\nOrganization: San Diego State University, College of Sciences\nLines: 39\nDistribution: usa\nNNTP-Posting-Host: io.nosc.mil\nX-Newsreader: TIN [version 1.1 PL7]\n\nDaniel Oldham (oldham@ces.cwru.edu) wrote:\n: What happened in Waco is not the fault of the BATF. If they would of\n: had the proper equipment and personal then they could of captured the\n: compound on the initial assault and none of this would of happened.\n                  ^^^^^^^^^^^^^^^\n    Initial assault on the \"compound\" ( more like a wooden farm house if\n  it burned to the ground like it did ) for WHAT?  Regardless of who\n  started/caused the fire, NONE of this would have happened if the\n  ATF can HONESTLY justify their initial assault and handled it \n  properly!  \n\n   QUESTION AUTHORITY!\n  \n<SNIP>\n: With the WoD and the increased crime in the streets the BATF is needed\n: more now then ever. If they blast away a few good fokes then that is\n: the price we all have to pay for law and order in this country. Look\n: at all the good people that died in wars to protect this great country\n: of ours.\n: \n: With the arms build up in Waco they needed to hit that compound with\n\n    Show me some evidenence instead of repeating what the FBI/ATF\n  told you.\n\n: mega fire power. They could of gone in there blasting and killed a few\n: women and kids but it would of been better then letting them all burn\n: to death 51 days later.\n\n    Then I'm sure you won't mind if the ATF or the DEA raid your house\n  someday on a bogus informant tip.  So what if they killed/wounded your \n  family \"accidentally\" during the raid, it's just a fair price to pay\n  for law and order in this country, right?  Answer this question \n  honestly before making anymore ignorant statements!\n\n    What is even more disturbing than out of control government agencies\n  are citizens who allow them to be irresponsible. \n\n--F. Chiu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6207, "properties": {"category": "soc.religion.christian", "text": "From: shd2001@andy.bgsu.edu (Sherlette Dixon)\nSubject: Was Jesus Black?\nOrganization: BGSU\nLines: 43\n\nThe people who post to this particular newsgroup are either too cowardly,\ntoo arrogant, or too apathetic to discuss this issue since I have yet to\nsee any discussion grace my computer screen.  While it holds PARTICULAR\ninterest to the African-American community, everyone has something to gain\nfrom discussing it.  As any knowledgable person should know, Christianity\nhas been used in this country to tighten the spiritual, emotional, & mental\nhold slavery placed on the minds, souls & hearts of African-Americans. \nThis was most effectively done by the display of white icons of Jesus in\nslave churches to encourage the godly superiority of slaveowners.  It\nwasn't enough that the slaveowner was your provider, but he was also your\nGOD, to be looked upon with unconditional love & loyalty and to be\nworshipped with great pride.  But how culturally & biblically accurate are\nthese icons?  Pictures & statues of a Black Jesus have been found in\nEuropean countries, as that of a Black Madonna.  But what about Biblical\nphysical descriptions of Jesus, His hair being compared to that of wool,\nHis feet to that of brass?  And think about the area of the world where all\nBiblical actions took place.  I welcome all intelligent commentary on this\nimportant topic; flamers need not reply.\n\nSherlette \n\nP.S.  I expect at least THIS type of response:  \"It doesn't matter what\ncolor His skin was; His actions & what He did for mankind are what counts.\"\n This is true; I am not questioning this.  But He walked the earth for 3\ndecades as a HUMAN; this part of His existence intrigues me.  And as for\nsaying that \"it doesn't matter...\"  to a member of a physically emancipated\npeople who is still struggling for MENTAL emancipation, believe me:  IT\nMATTERS.\n\n[The general attack on the members of this group seems unjustified.\nThere has been discussion of this issue in the past.  We can't discuss\neverything at once, so the fact that some specific thing hasn't been\ndiscussed recently shouldn't be taken as a sign of general cowardice,\narrogance or apathy.  In past discussions no one has been outraged by\nsuggestions that Jesus could be black (and it has been suggested by a\nfew scholars), but the concensus is that he was most likely Semitic.\nAs you probably know, there is a tradition that portrayals of Jesus in\nart tends to show him as one of the people.  Thus you wouldn't be\nsurprised to find African art showing him as black, and oriental art\nshowing him as oriental.  There are good reasons relating to Christian\ndevotion to think of him in such a way.  It's also good now and then\nto have that image challenged, and to think of Jesus as being a member\nof XXX, where XXX is the group you least respect.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6208, "properties": {"category": "soc.religion.christian", "text": "From: REXLEX@fnal.fnal.gov\nSubject: Babylon Book Offer\nOrganization: FNAL/AD/Net\nLines: 20\n\nFrom time to time I have made reference to a book called \"The Two Babylons\"\nwhich is a book written by Alexander Hislop (mid 1800's) about the Babylonian\nmystery religion and its flight through history.  I was unable to put it down\nthe first time I read it, but others have found it dry.  It has numberable\nreferences and illustrations.  If you are interested in purchasing your own\ncopy, you can call Moody Book Store @ (312)329-4352 and order it for $16.99 and\nthey will ship it to you.   \n  It is a good book just to get the reference titles for your own digs into the\nmystery religions.  I have found it invaluable for that purpose alone.  But for\nthose who only want to skim the subject, it comes highly recommended.  \n  Just a note to my RC brothers and sisters.  You may find this to be a\ndiatribe or you may find it to be a test to the origin and true nature of the\norigin of RCism.  If you are offended by anything that asks hard questions\nabout your denomination (as to whether or not it is \"Christian\") then perhaps\nyou should just passover this offer.  To those who are a little more\nadventurous, go for it and later, please contact me with you reasons pro or con\non the scholorship of this book.  I really would be interested.\n\nadelphoi ev Christos,\nRex \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6209, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: kudla@acm.rpi.edu (Robert Kudla)\nSubject: Re: Warning on Copy II PC Board + Help on Copying?\nKeywords: Mislead, Misinform, Misdirect, COPY\nArticle-I.D.: rpi.y3g53tr\nLines: 40\nNntp-Posting-Host: hermes.acm.rpi.edu\n\nIn <C4zwC0.6LK@acsu.buffalo.edu> v063kcbp@ubvmsd.cc.buffalo.edu (MITCH) writes:\n\n>Now, does anyone know a way to back up the masters of Word-Perfect 5.1 for\n>Windows, Windows 3.1, and Norton 6.0 so I can send another copy to my\n>permanent (non-college) address for safe-keeping?  Students keep borrowing\n>my masters, and I'm worried they'll get screwed up!  (Please don't tell me\n\nYou realize, of course, that inevitably some anal retentive moron is\ngoing to come along and wag his fingers and his jowls in outrage that\npersonal politics are more important than [SMCAP][BOLD][Font:God\n999pt.]The Law[smcap][bold][font].\n\nBut that's irrelevant to the problem here.  Windows came with my\nsystem, but on 5.25\" disks.  I hate using 5.25\" disks, so I copied\nthem over to high density 3.5\"'s using xcopy.  It worked fine.  In\nfact, for a while I was changing configurations and whatnot so much\nthat I decided to try putting them on the hard disk.  Not only can you\ncopy them over with one disk per directory, but if you want to, you\ncan simply copy them all into one directory.  Makes it a lot nicer\nwhen you're switching printer emulations around.\n\nNorton 6.0 I don't have much experience with, but when a friend's\nsystem crashed, we restored from a backup rather than from the\noriginals, and it worked fine.  This would imply that arj a -r norton\nc:\\nu would create a workable backup, and if you did a full install\nthe first time, you've got the whole thing.\n\nNever played with WP for Windows; I'm not too big of a fan of anything\nfrom Utah.\n\nGood luck....\n\nDisclaimer: Don't Copy That Floppy! (tm) Just Say No! (r) Respect Your Elders!\nFor The Wages Of Sin Is (sic) Death And A Hefty Legal Bill!  DO YOU OFFEND?\n\nRob\n--\nRob kudla@acm.rpi.edu Keywords - Oldfield Jane's Leather Yes Win3.1 Phish\nlight blue right Bondage r.e.m. DTP Steely Dan DS9 FNM OWL Genesis In the\nspaceship, the silver spaceship, the lion takes control..... \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6210, "properties": {"category": "comp.sys.mac.hardware", "text": "From: klein@math205.mathematik.uni-bielefeld.de (John R. Klein)\nSubject: Re: What happens if you completely flatten your PB's battery?\nNntp-Posting-Host: math205.mathematik.uni-bielefeld.de\nOrganization: Universitaet Bielefeld, Rechenzentrum\nLines: 32\n\nIn article <C5FoDG.on@raistlin.udev.cdc.com> swiers@chaos.aqeng.cdc.com  \n(Aaron Swiers) writes:\n> schuyler@netcom.com (Gabriel M. Schuyler) writes:\n> >stanger@otago.ac.nz (Nigel Stanger) writes:\n> >>Can running a PowerBook's battery completely flat have any\n> >>detrimental side effects (other than the PB not going :) I ask,\n> >\n> >Only two things I can think of.\n> >1.  Although NiCad (145,145,160,165c,170,180) batteries should be  \ncompletely\n> >    discharged about once a month, LeadAcid batteries (100) shouldn't  \never be\n> >    completely discharged (well, maybe ONCE in a while is OKAY).\n> >\n> This is a very common mis-conception dealing with Ni-cad batteries.  It  \nis \n> a good idea to completely discharge a ni-cad CELL periodically.  It is\n> NOT a good idea to completely discharge a ni-cad BATTERY.  The  \ndifference\n> being that a cell is only one cell (nicad puts out 1.2 volts) like a\n> rechargeable AAA, AA, C, or D.  A battery is defined as more than one\n> cell (9 volt, or 7.2 for nicad equivalent).  Due to differences in the\n> individual cells of a battery, complete discharge can actually harm\n> a nicad battery more than help it overcome the \"memory effect\".  The\n> most common problem is that over time an individual cell can develop\n> internal shorts, which will weaken other cells that are connected to\n> it, thus reducing the lifespan of your battery pack.\n> \netc....\n\nOkay, naive question: How does one discharge a cell without discharging  \nthe entire battery?\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6211, "properties": {"category": "rec.autos", "text": "From: mchaffee@dcl-nxt07 (Michael T Chaffee)\nSubject: Re: Manual Shift Bigots\nOrganization: University of Illinois at Urbana\nLines: 21\n\neliot@lanmola.engr.washington.edu (eliot) writes:\n\n>In article <C5LIw2.CAx@news.rich.bnr.ca> Peon w/o Email (Eric Youngblood) writes:\n>>In article <1qn2lo$c9s@vela.acs.oakland.edu>, mje@pookie.pass.wayne.edu (Michael J. Edelman) writes:\n>>The big disadvantage of automatics is the ~10% HP they consume that never\n>>gets to the wheels.  In this respect they are at a disadvantage to a manual.\n\n>only when the torque converter is not locked up.  there are autos out there\n>with converter lock up in 2nd, 3rd and 4th gears.\n\nW/r/t performance, converter lockup is purely irrelevant.  The lockup only\noccurs at light throttle settings and serves only to improve MPG.  Mind you,\na converter clutch does a lovely job of improving MPG, but the additional\nmechanical advantage of the converter gives you more acceleration (vs. locked\nconverter clutch) than its inherent losses take away.\n\n\nMichael T. Chaffee\nmchaffee@ux4.cso.uiuc.edu\t<----Email\nmchaffee@sumter.cso.uiuc.edu\t<----NeXTMail\n.sig under construction.\t<----Excuse\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6212, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: angcl@Nyongwa.CAM.ORG (Claude Angers)\nSubject: Re: WP-PCF, Linux, RISC?\nX-Advert: Mail/News feeds available -- email postmaster for details.\nOrganization: Radio Free Nyongwa -- public usenet in Montreal: (514) 284-6693\nLines: 32\n\nIn article <C5rx8B.Kzp@ecf.toronto.edu> leebr@ecf.toronto.edu (LEE BRIAN) writes:\n>In article <1qu8ud$2hd@sunb.ocs.mq.edu.au> eugene@mpce.mq.edu.au writes:\n>>In article <C5o1yq.M34@csie.nctu.edu.tw> ghhwang@csie.nctu.edu.tw (ghhwang) writes:\n>>>\n>>>Dear friend,\n>>>  The RISC means \"reduced instruction set computer\". The RISC usually has \n>>>small instruction set so as to reduce the circuit complex and can increase \n>>>the clock rate to have a high performance. You can read some books about\n>>>computer architecture for more information about RISC.\n>>\n>>hmm... not that I am an authority on RISC ;-) but I clearly remember\n>>reading that the instruction set on RISC CPUs is rather large.\n>>The difference is in addressing modes - RISC instruction sets are not\n>>as orthogonal is CISC.\n>>\n>>-- \n>\n>Theoretically supposed to be reduced.... not any longer.  That's why everyone\n>is arguing about RISC v.s. CISC.  Personally, I think CISC will win out.\n>Just take a look at the Pentium!  (Not that I like Intel architectures either,\n>but that's another story...)\n>\n>bye!\n>\n\nDo you mean that the Pentium is better than a Risc?  or that it will outsell\nthem all?  If the first, you have to remember that intel CISC (like the\npentium) are a always a generation away from the best riscs... also Riscs\ncpu are more costly because they are not sold in the same quantities (not\neven on the same order)...  but I remember reading about 3 years (maybe 2)\nabout a T800(?) from hypercube that did a 100 mips, was superscallar AND\nreordered its instruction itself so\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6213, "properties": {"category": "sci.space", "text": "From: tholen@newton.ifa.hawaii.edu (Dave Tholen)\nSubject: Re: Command Loss Timer (Re: Galileo Update - 04/22/93)\nOrganization: Institute for Astronomy, Hawaii\nLines: 23\n\nAlan Carter writes:\n\n>> 3.  On April 19, a NO-OP command was sent to reset the command loss timer to\n>> 264 hours, its planned value during this mission phase.\n\n> This activity is regularly reported in Ron's interesting posts. Could\n> someone explain what the Command Loss Timer is?\n\nThe name is rather descriptive.  It's a command to the spacecraft that tells\nit \"If you don't hear from Earth after 264 hours, assume something is wrong\nwith your (the spacecraft) attitude, and go into a preprogrammed search mode\nin an attempt to reacquire the signal from Earth.\"\n\nThe spacecraft and Earth are not in constant communication with each other.\nEarth monitors the telemetry from the spacecraft, and if everything is fine,\nthere's no reason to send it any new information.  But from the spacecraft's\npoint of view, no information from Earth could mean either everything is\nfine, or that the spacecraft has lost signal acquisition.  Just how long\nshould the spacecraft wait before it decides that something is wrong and\nbegins to take corrective action?  That \"how long\" is the command loss timer.\nDuring relatively inactive cruise phases, the command loss timer can be set\nto rather long values.  In this case, Earth is telling Galileo \"expect to\nhear back from us sometime within the next 264 hours\".\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6214, "properties": {"category": "talk.religion.misc", "text": "From: ST002649@brownvm.brown.edu (Alex Gottschalk)\nSubject: Re: 666, THE NUMBER OF THE BEAST, VIEWER DISCR\nOrganization: Brown University - Providence, Rhode Island  USA\nLines: 15\nNNTP-Posting-Host: brownvm.brown.edu\nX-News-Software: BNN via BNN_POST v1.0 beta\n\nIn article <C4J571.K3D@rice.edu>, swaim@owlnet.rice.edu (Michael Parks Swaim)\nsaid:\n>Posted on 27 Mar 1993 at 00:16:13 by Michael Parks Swaim\n>In article <C4HIM1.BrF@cs.psu.edu> jdh@math.psu.edu (Jeremy D Hall) writes:\n>>Well, I *WILL* do the math, and I get:  (6^6)^6=2,189,739,336\n>>\n>>This mean anything to anyone?  :^)\n\n5*1=5 thus fitting in neatly with something else.\n_________________________________________________________________________\n\u00ba...and everything under the sun is in tune...    \u00ba \"What was Jabba the \u00ba\n\u00band the sun is eclipsed by the moon.\"             \u00ba  Hut smoking?\"      \u00ba\n\u00ba                           --Pink Floyd          \u00ba         --Alex      \u00ba\n\u00ba                             \"Eclipse\"           \u00ba           curious   \u00ba\n\u00ba_________________________________________________\u00ba_____________________\u00ba\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6215, "properties": {"category": "sci.space", "text": "From: yamauchi@ces.cwru.edu (Brian Yamauchi)\nSubject: Griffin / Office of Exploration: RIP\nOrganization: Case Western Reserve University\nLines: 19\nDistribution: world\nNNTP-Posting-Host: yuggoth.ces.cwru.edu\n\nAny comments on the absorbtion of the Office of Exploration into the\nOffice of Space Sciences and the reassignment of Griffin to the \"Chief\nEngineer\" position?  Is this just a meaningless administrative\nshuffle, or does this bode ill for SEI?\n\nIn my opinion, this seems like a Bad Thing, at least on the surface.\nGriffin seemed to be someone who was actually interested in getting\nthings done, and who was willing to look an innovative approaches to\ngetting things done faster, better, and cheaper.  It's unclear to me\nwhether he will be able to do this at his new position.\n\nDoes anyone know what his new duties will be?\n--\n_______________________________________________________________________________\n\nBrian Yamauchi\t\t\tCase Western Reserve University\nyamauchi@alpha.ces.cwru.edu\tDepartment of Computer Engineering and Science\n_______________________________________________________________________________\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6216, "properties": {"category": "rec.motorcycles", "text": "From: speedy@engr.latech.edu (Speedy Mercer)\nSubject: Re: Ok, So I was a little hasty...\nOrganization: Louisiana Tech University\nLines: 30\nNNTP-Posting-Host: bhm116e-spc.engr.latech.edu\n\nIn article <1993Apr20.010734.18225@megatek.com> randy@megatek.com (Randy Davis) writes:\n\n>In article <speedy.155@engr.latech.edu> speedy@engr.latech.edu (Speedy Mercer) writes:\n>|In article <jnmoyne-190493111630@moustic.lbl.gov> jnmoyne@lbl.gov (Jean-Noel Moyne) writes:\n>|>       What does \"DWI\" stand for ? I thought it was \"DUI\" for Driving Under\n>|>Influence, so here what does W stand for ?\n>|\n>|Driving While Intoxicated.\n\n>  Actually, I beleive \"DWI\" normally means \"Driving While Impaired\" rather\n>than \"Intoxicated\", at least it does in the states I've lived in...\n\n>|This was changed here in Louisiana when a girl went to court and won her \n>|case by claiming to be stoned on pot, NOT intoxicated on liquor!\n\n>  One can be imparied without necessarily being impaired by liquor - drugs,\n>not enough sleep, being a total moron :-), all can impair someone etc...  I'm\n>surprised this got her off the hook...  Perhaps DWI in Lousiana *is* confined\n>to liquor?\n\nLets just say it is DUI here now!\n\n ----===== DoD #8177 = Technician(Dr. Speed) .NOT. Student =====----\n\n                          Stolen Taglines...\n              * God is real, unless declared integer. *\n            * I came, I saw, I deleted all your files. *\n         * Black holes are where God is dividing by zero. *\n        * The world will end in 5 minutes. Please log out. *\n       * Earth is 98% full.... please delete anyone you can. *\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6217, "properties": {"category": "comp.sys.mac.hardware", "text": "From: b-clark@nwu.edu (Brian Clark)\nSubject: Re: High Resolution ADC for Mac II\nNntp-Posting-Host: elvex34.acns.nwu.edu\nOrganization: Northwestern University\nLines: 28\n\nIn article <b-clark-160493183822@elvex33.acns.nwu.edu>, b-clark@nwu.edu\n(Brian Clark) wrote:\n> \n> I don't know about the Instrutech boards (though I plan to check them out),\n> but you need to be very careful checking the monotonicity and S/N ratio of\n> many of the \"16 bit\" boards out there. The NI boards are very clearly\n> specified in terms of monotonicity, S/N ratio, accuracy, etc; and the\n> NB-A2100 and NB-A2150 have all the dyynamic range and freedom from\n> distortion that you'd expect from a good, true 16 bit converter. This is\n> not true for the Spectral Innovations boards, for example.\n\nTo boorishly reply to myself, I found I did have the Instrutech information\nalready. The specs (to use the term loosely) are as follows:\n\nA/D: 16 bit converter, with 14 bit accuracy to 100 kHz, 12 bit accuracy to\n200 kHz. No specs for S/N, monotonicity, linearity. There are 8 multiplexed\ninputs sharing the single A/D, so that all inputs are not samples at the\nsame time, and in the above conversion specs the all-channel sample rate\nmust be used. Thus, for two channels, you only have 14 unknown quality bits\nat 50 kHz per channel. This is poorer quality than the national\nInstruments, at the same sample rate.\n\nD/A: 16 bit converter. No specs for S/N, monotonicity, linearity. Each of\nthe 4 output channels has its own converter.\n\nThe price for the external converter box (the ITC-16), the NuBus interface\nboard (the MAC-23), plus C driver software and Igor XOP's is $2695. Rather\nsteep.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6218, "properties": {"category": "misc.forsale", "text": "From: sandy47@cats.ucsc.edu ()\nSubject: Wargames/magazines Forsale\nOrganization: University of California; Santa Cruz\nLines: 107\nDistribution: usa\nNNTP-Posting-Host: si.ucsc.edu\n\n\nDiscounts!  Please take\t$2.00 off each item over $10.00\n                        $1.00 off each item over $ 5.00\n\nHere is the list of magazines, including asking price:\n--------------------------------------------------------------------\n\nStrategy & Tactics Magazine (All include unpunched games):\n===========================\n\nNEW (52 & 79-90 As mailed with games and all inclusions.)\n\nIssue:\tTitle:\t\t\t\t\t\t\tAsking:\n\n52\tOil War - American Intervention in The Persian Gulf\t35.00\n\n79\tBerlin '85 - The Enemy at the Gates\t\t\t20.00\n81\tTito - Partisan Army Yugoslavia, 1941-45\t\t20.00\n83\tKaiser's Battle - German Offensive March, 1918\t\t20.00\n84\tOperation Grenade - Rhineland Feb 23-Mar 5, 1945\t20.00\n89\tSicily - The Race to Messina Jul 10-Aug 17, 1943\t20.00\n90\tThe Battle of Monmouth - Colonies take Offensive 1778\t20.00\n\n----------End of an Era ---------------------------------------------\n\nNEW (113-127 As mailed with games and all inclusions in envelope.)\n\nIssue:\tTitle:\t\t\t\t\t\t\tAsking:\n\n113\tThe Battle of Abensberg (Magazine only)\t\t\t15.00\t\n115     Kanev - Russian Paratroops\t\t\t\t15.00\n116\tManchu - The Taiping Rebellion\t\t\t\t15.00\n117\tNorth German Plain - Modern Germany\t\t\t15.00\n118\tThe Tigers Are Burning - Camp. in the Ukraine '43-44\t15.00\n120\tNicararagua\t\t\t\t\t\t15.00\n122\tPegasus Bridge - The Beginning of D-Day\t\t\t15.00\n123\tCampaigns in the Valley\t\t\t\t\t15.00\n124\tFortress Stalingrad - Russian Winter Offensive '42-43\t15.00\n125\tThe Far Seas - German Cruiser Operations WWII\t\t15.00\n126\tBeirut 1982 - Arab Stalingrad\t\t\t\t15.00\n127\tRush for Glory - War with Mexico 1846-47\t\t15.00\n\n\nThe AH General Magazine:  (Many other articles included in each issue)\n=======================\n\nIssue\tTitle\t\t\t\tAsking  Vol. #\n\n7-80    Crescendo of Doom               8.00  \t17/2\n11-80\tFortress Europa\t\t\t8.00  \t17/4\n1-81\tCircus Maximus\t\t\t8.00  \t17/5\n3-81\tStalingra\t\t\t8.00  \t17/6\n5-81\tBismark, Squad Leader Clinic \t8.00  \t18/1\n\n\nCampaign Magazine: (Many other articles included in each issue)\n=================\n\nIssue\tTitle\t\t\t\tAsking\n\n97\tCrescendo of Doom\t\t 8.00\n101\tCross of Iron\t\t\t 8.00\n102\tCounterstroke at Inchon\t\t 8.00\n104\tSquad Leader Variant\t\t 8.00\n106\tGDW's 1941\t\t\t 8.00\n108     Battle for Leyte Gulf\t         8.00\n\nAll magazine prices include postage.  ALL ISSUES ARE IN NEW OR LIKE-NEW \nCONDITION.\n \n-----------------------------------------------------------------------\n\nGames and Books:\n===============\n\nYaquinto Publications, Inc.:\n===========================\n\nAttack of the Mutants - Introductory Game\t\t\t$ 5.00\n(Unpunched, new.)\n\n---\n\nThe Complete Book of Wargames (out of print)\t\t\t$30.00\n--------------------------------------------\nAuthor:  Jon Freeman\n(Part 1 Introduction 75 pages - \n\tincluding Ch. 4 Kassala: An Introductory Wargame)\n(Complete information on over 150 wargames as of 1980)\n[hardcover, 285 pages, large format]\n\n---\n\nShipping extra on books and games.\n\nPrefer money orders for payment, I'll allow personal checks to clear before\nshipping.  \n\n\t\t\t\t\tLarry\n\n\nLarry McElhiney\n1385 7th Avenue #10\nSanta Cruz, CA 95062\n\n(408)426-5858 x 358 (w)\n(408)475-8027       (h)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6219, "properties": {"category": "comp.graphics", "text": "From: thester@nyx.cs.du.edu (Uncle Fester)\nSubject: Re: CView answers\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 36\n\nIn article <5103@moscom.com> mz@moscom.com (Matthew Zenkar) writes:\n>Cyberspace Buddha (cb@wixer.bga.com) wrote:\n>: renew@blade.stack.urc.tue.nl (Rene Walter) writes:\n>: >over where it places its temp files: it just places them in its\n>: >\"current directory\".\n>\n>: I have to beg to differ on this point, as the batch file I use\n>: to launch cview cd's to the dir where cview resides and then\n>: invokes it.  every time I crash cview, the 0-byte temp file\n>: is found in the root dir of the drive cview is on.\n>\n>I posted this as well before the cview \"expert\".  Apparently, he thought\nhe\n>knew better.\n>\n>Matthew Zenkar\n>mz@moscom.com\n\n\n     Are we talking about ColorView for DOS here?  \n     I have version 2.0 and it writes the temp files to its own\n     current directory.\n     What later versions do, I admit that I don't know.\n     Assuming your \"expert\" referenced above is talking about\n     the version that I have, then I'd say he is correct.\n     Is the ColorView for unix what is being discussed?\n     Just mixed up, confused, befuddled, but genuinely and\n     entirely curious....\n\n     Uncle Fester\n\n--\n           :     What God Wants      :  God wants gigolos          :\n           :        God gets         :  God wants giraffes         :\n           :     God help us all     :  God wants politics         :\n           : *thester@nyx.cs.du.edu* :  God wants a good laugh     :\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6220, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: Re: Date is stuck\nFrom: phys169@csc.canterbury.ac.nz\nOrganization: University of Canterbury, Christchurch, New Zealand\nNntp-Posting-Host: cantva.canterbury.ac.nz\nLines: 25\n\nIn article <1993Apr14.132300.27816@kosman.uucp>, kevin@kosman.uucp (Kevin O'Gorman) writes:\n> Anybody seen the date get stuck?\n> \n> I'm running MS-DOS 5.0 with a menu system alive all the time.  The machine\n> is left running all the time.\n> \n> Suddenly, the date no longer rolls over.  The time is (reasonably) accurate\n> allways, but we have to change the date by hand every morning.  This involves\n> exiting the menu system to get to DOS.\n> \n> Anyone have the slightest idea why this should be?  Even a clue as to whether\n> the hardware (battery? CMOS?) or DOS is broken?\n\nI bet it suddenly started sticking when you  started leaving the PC running the\nmenu all night.  There is a limitation/bug in the date roll-over software in\nPC's that means you have to be doing something like waiting for keyboard input\nvia a DOS call rather than a BIOS call (as menus often use) otherwise the code\nto update the date after midnight never gets called. \n\nSomebody might be able to correct the details in case I've mis-rememberred\nthem, but I think you have to change the menu program (if you have the sources)\nor add a TSR or system patch or something.  As far as I know the CMOS clock\nkeeps the right time (in fact about 7 seconds/day better than DOS's clock).\n\nMark Aitchison, University of Canterbury.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6221, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: Title for XTerm\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 14\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nYet again,\n\nthe escape sequences you are speaking about here are non standard and\ndangerous. In fact, an ANSI compliant sequence parser HANGS on them.\n\nWhy are there such strange ESC sequences instead of compatible DSC ?\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6222, "properties": {"category": "talk.politics.guns", "text": "From: ron@hpfcso.FC.HP.COM (Ron Miller)\nSubject: Re: Boston Gun Buy Back\nOrganization: Hewlett-Packard, Fort Collins, CO, USA\nLines: 19\n\n> From: urbin@interlan.interlan.com (Mark Urbin)\n> \n> >RM:Just a short thought: \n> >When you ask the question of the \"authorities\" or sponsors of buyback\n> >programs whether they will check for stolen weapons and they answer\n> >\"no, it's total amnesty\".\n\n>     Please note that the $50 given for each firearm, in the Boston `buy \n> back' will not be in cash, but money orders.  How much `total amnesty\" can \n> you get if you leave paper trail behind?\n\nIn the latest case in Denver, they were giving away tickets to a Denver\nNuggets basketball game. \n\nHow traceable is a money order?  (I don't know. Haven't used one in 20 years)\n\nIs that even an issue if the weapons aren't checked for being stolen?\n\nRon\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6223, "properties": {"category": "misc.forsale", "text": "From: shapiro@sofbas.enet.dec.com (Steve Shapiro)\nSubject: MS C/C++ BOOK   ** FORSALE **\nNntp-Posting-Host: sofba2\nOrganisation: SKS Computer Consulting, Inc.\nOrganization: Digital Equipment Corporation - Marlboro, MA\nLines: 12\n\n\n\nRegards,\nSteve.\n\n/*******************************************************************\n* Steve Shapiro                 * All views and opinions expressed *\n* SKS Computer Consulting, Inc. * are my own and are offered as-is *\n********************************************************************\n* Steve.Shapiro@f440.n101.z1.fidonet.org  BBS: (508) 664-6354 N81  *\n*******************************************************************/\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6224, "properties": {"category": "rec.sport.hockey", "text": "From: nmcglynn@buffalo.axion.bt.co.uk (Neil A. McGlynn)\nSubject: British Championship Playoffs (16 Apr 93)\nOrganization: BT Labs, Martlesham Heath, Ipswich, UK\nLines: 45\nReply-To: nmcglynn@axion.bt.co.uk\nNNTP-Posting-Host: buffalo.axion.bt.co.uk\nOrganisation: BT Laboratories, Martlesham Heath, IPSWICH UK\n\nGroup A\t\t\t\t\tGroup B\n~~~~~~~\t\t\t\t\t~~~~~~~\n\nCardiff Devils  7-3  Bracknell Bees\tNottingham Panthers  8-3  Billingham\nHumberside      7-7  Whitley Warriors\tMurrayfield Racers  11-2  Fife Flyers\nWhitley Bay     6-9  Cardiff Devils     Billingham Bombers   6-8  Murrayfield\nHumberside      8-5  Bracknell Bees\tNottingham Panthers 11-5  Fife Flyers\nCardiff Devils 10-4  Humberside\t\tMurrayfield Racers   6-4  Nottingham\nBracknell Bees  4-9  Whitley Bay\tFife Flyers          2-5  Billingham\nBracknell Bees  3-8  Cardiff Devils\tBillingham Bombers   2-8  Nottingham\nWhitley Bay     5-7  Humberside\t\tFife Flyers          3-12 Murrayfield\n\n\t\tP W D L  F  A  P\t\t\t     P W D L  F  A  P\nCardiff Devils  4 4 0 0 34 16  8*\tMurrayfield Racers   4 4 0 0 37 15  8*\nHumberside      4 2 1 1 26 27  5\tNottingham Panthers  4 3 0 1 31 16  6*\nWhitley Bay     4 1 1 2 27 27  3\tBillingham Bombers   4 1 0 3 16 26  2\nBracknell Bees  4 0 0 4 15 32  0\tFife Flyers\t     4 0 0 4 12 39  0\n\n* indicates qualified for Championship Finals\n\nRelegation/Promotion A\t\t\tRelegation/Promotion B\n~~~~~~~~~~~~~~~~~~~~~~\t\t\t~~~~~~~~~~~~~~~~~~~~~~\n\nBasingstoke    10-4  Swindon Wildcats   Sheffield Steelers  12-8  Peterborough\nDurham Wasps   13-5  Romford Raiders\tSlough Jets          1-9  MK Kings\nBasingstoke     6-0  Durham Wasps\tSheffield Steelers   9-4  Milton Keynes\nSwindon         8-5  Romford Raiders    Milton Keynes Kings  4-6  Peterborough\nDurham Wasps   17-2  Swindon Wildcats\tSlough Jets          2-12 Sheffield\nRomford         4-10 Basingstoke \tPeterborough        10-2  Slough Jets\nRomford        *8-3* Durham Wasps\tPeterborough\t     8-5  Sheffield\nSwindon         7-11 Basingstoke        Milton Keynes Kings 10-4  Slough Jets\n\n\t\tP W D L  F  A  P\t\t\t     P W D L  F  A  P\nBasingstoke     4 4 0 0 37 15  8\tSheffield Steelers   4 3 0 0 38 22  6\nDurham Wasps    4 2 0 2 33 21  4\tPeterborough         4 3 0 1 32 23  6\nSwindon         4 1 0 3 21 43  2\tMilton Keynes Kings  4 2 0 2 27 20  4\nRomford Raiders 4 1 0 3 22 34  2\tSlough Jets\t     4 0 0 4  9 41  0\n\n\n  /-- / /-- /--   /-- / \\ / /-- /-/ --- o Neil A. McGlynn   +44 473 645659\n /-- / /__ /--   /-- /   / /-- /_/ /__  o nmcglynn@axion.bt.co.uk\n/   / /   /--   /   /__ / /-- /\\  ___/  o British Telecom Laboratories, \n---------------------------------------\t  Martlesham Heath, Ipswich, UK\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6225, "properties": {"category": "sci.space", "text": "From: nickh@CS.CMU.EDU (Nick Haines)\nSubject: Re: Vandalizing the sky.\nIn-Reply-To: todd@phad.la.locus.com's message of Wed, 21 Apr 93 16:28:00 GMT\nOriginator: nickh@SNOW.FOX.CS.CMU.EDU\nNntp-Posting-Host: snow.fox.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon University\n\t<1993Apr21.162800.168967@locus.com>\nLines: 33\n\nIn article <1993Apr21.162800.168967@locus.com> todd@phad.la.locus.com (Todd Johnson) writes:\n\n   As for advertising -- sure, why not?  A NASA friend and I spent one\n   drunken night figuring out just exactly how much gold mylar we'd need\n   to put the golden arches of a certain American fast food organization\n   on the face of the Moon.  Fortunately, we sobered up in the morning.\n\nHmmm. It actually isn't all that much, is it? Like about 2 million\nkm^2 (if you think that sounds like a lot, it's only a few tens of m^2\nper burger that said organization sold last year). You'd be best off\nwith a reflective substance that could be sprayed thinly by an\nunmanned craft in lunar orbit (or, rather, a large set of such craft).\nIf you can get a reasonable albedo it would be visible even at new\nmoon (since the moon itself is quite dark), and _bright_ at full moon.\nYou might have to abandon the colour, though.\n\nBuy a cheap launch system, design reusable moon -> lunar orbit\nunmanned spraying craft, build 50 said craft, establish a lunar base\nto extract TiO2 (say: for colour you'd be better off with a sulphur\ncompound, I suppose) and some sort of propellant, and Bob's your\nuncle.  I'll do it for, say, 20 billion dollars (plus changes of\nidentity for me and all my loved ones). Delivery date 2010.\n\nCan we get the fast-food chain bidding against the fizzy-drink\nvendors? Who else might be interested?\n\nWould they buy it, given that it's a _lot_ more expensive, and not\nmuch more impressive, than putting a large set of several-km\ninflatable billboards in LEO (or in GEO, visible 24 hours from your\nkey growth market). I'll do _that_ for only $5bn (and the changes of\nidentity).\n\nNick Haines nickh@cmu.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.294+0000", "event": "documents", "entityId": 6226, "properties": {"category": "sci.electronics", "text": "From: ardai@wizard.atb.teradyne.com (Michael Ardai)\nSubject: Re: Source for carbide pc board drills?\nOrganization: Teradyne, Inc. Boston MA\nLines: 18\n\nIn article <C5EJL7.LIn@news2.cis.umn.edu> Mike Diack <mike-d@staff.tc.umn.edu> writes:\n-In article <C5DGG7.5ox@wang.com> , pvr@wang.com writes:\n->   Who sells the special carbide drills used to drill pc boards?\n->I am looking for sizes smaller than #60, #65 or #70 would be good.\n\n-best deal i ever saw on carbides was at ELI electronics - Cambridge\n-Mass. Quite close to MIT, #70 drills @ $5.00 for a box of 50. ELI are\n-in the Boston fone book.\n\nActually, I think they are all #57.  Their phone number is 617 547 5005\nand I will probably have some over at the MIT Flea this Sunday.\n/mike\n\n\n-- \n\\|/     Michael L. Ardai     N1IST             Teradyne ATG Boston\n--- -------------------------------------------------------------------------\n/|\\                    ardai@maven.dnet.teradyne.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6227, "properties": {"category": "soc.religion.christian", "text": "From: gilham@csl.sri.com (Fred Gilham)\nSubject: Re: Prophetic Warning to New York City\nOrganization: Computer Science Lab, SRI International, Menlo Park, CA.\nLines: 16\n\nRegarding David Wilkerson's prophecies.  While I'm not real sure of\nhis credibility, I do remember a book he wrote, called A VISION or\nsomething like that.  He made a prediction that people who bought gold\nwould be hurt financially.  At the time, gold was up to about $800;\nnow it is less than half that.  This prediction stuck in my mind\nbecause a lot of people where I worked were buying gold.\n\nThe problem is, we tend to remember predictions that come true and\nforget ones that didn't (a la Jean Dixon).  Does anyone know if there\nany of his predictions, perhaps from the book I mentioned, that can\npretty definitely be said to have not come true?\n--\n-Fred Gilham    gilham@csl.sri.com\n\"Peace is only better than war when it's not hell too.  War being hell\nmakes sense.\"\n               -Walker Percy, THE SECOND COMING\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6228, "properties": {"category": "comp.windows.x", "text": "From: Markku.Savela@tel.vtt.fi (Markku Savela)\nSubject: Raster and Text Widgets (View only!), Xew-1.3 version\nOrganization: Technical Research Centre of Finland\nLines: 18\nDistribution: comp\nReply-To: savela@tel.vtt.fi (Markku Savela)\nNNTP-Posting-Host: tel4.tel.vtt.fi\nMime-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\n\n\nVersion 1.3 of Xew widgets is available at\n\n\texport.lcs.mit.edu: contrib/Xew-1.3.tar.Z\n\texport.lcs.mit.edu: contrib/Xew-1.3.README\n\nFor better details, check the README. (For extensive details, you have\nto with Xew-1.1.ps.Z, still haven't had time to update this one).\n\nNo new functionality has been added since 1.2 version. Raster widget\nhandles now expose events slightly more intelligently than before\n(really had to do this when I added a simple program that uses X11R5\nAthena Porthole and Panner widgets). The program demo/viewer.c is\nvery simple demonstration of panner/porthole usage (copied\nfrom'editres' actually :-)\n--\nMarkku Savela (savela@tel.vtt.fi), Technical Research Centre of Finland\nTelecommunications Laboratory, Otakaari 7 B, SF-02150 ESPOO, Finland\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6229, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ray@netcom.com (Ray Fischer)\nSubject: Re: x86 ~= 680x0 ?? (How do they compare?)\nOrganization: Netcom. San Jose, California\nDistribution: usa\nLines: 30\n\nrvenkate@ux4.cso.uiuc.edu (Ravikuma Venkateswar) writes ...\n>ray@netcom.com (Ray Fischer) writes:\n>>040 486 030 386 020 286\n>\n>How about some numbers here? Some kind of benchmark?\n\nBenchmarks are for marketing dweebs and CPU envy.  OK, if it will make\nyou happy, the 486 is faster than the 040.  BFD.  Both architectures\nare nearing then end of their lifetimes.  And especially with the x86\narchitecture: good riddance.\n\n>Besides, for 0 wait state performance, you'd need a cache anyway. I mean,\n>who uses a processor that runs at the speed of 80ns SIMMs? Note that this\n>memory speed corresponds to a clock speed of 12.5 MHz.\n\nThe point being the processor speed is only one of many aspects of a\ncomputers performance.  Clock speed, processor, memory speed, CPU\narchitecture, I/O systems, even the application program all contribute \nto the overall system performance.\n\n>>And roughly, the 68040 is twice as fast at a given clock\n>>speed as is the 68030.\n>\n>Numbers?\n\nLook them up yourself.\n\n-- \nRay Fischer                   \"Convictions are more dangerous enemies of truth\nray@netcom.com                 than lies.\"  -- Friedrich Nietzsche\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6230, "properties": {"category": "sci.electronics", "text": "From: andrei@labomath.univ-orleans.fr (Andrei Yakovlev)\nSubject: References to switched-capacitor filter ICs wanted.\nOrganization: University of Orleans, France.\nLines: 9\n\n\n   Hi All!\n\n   I would like to know what are the popular ICs of the type, their capabilities\n(# of channels et.c.) and prices :-)\n\n   Great thanks,\n\n Andrew.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6231, "properties": {"category": "talk.politics.mideast", "text": "From: casper@vxcrna.cern.ch (CASPER,DAVI./PPE)\nSubject: Re: American Jewish Congress Open Letter to Clinton\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: European Organization for Nuclear Research, CERN\nLines: 47\n\nIn article <C5wB46.I3o@blaze.cs.jhu.edu>, arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes...\n>In article <22APR199307534304@vxcrna.cern.ch> casper@vxcrna.cern.ch (CASPER,DAVI./PPE) writes:\n>>> [I said the fixation on Bosnia is due to it being in a European country,\n>>>  rather than the third world]\n\n>>> [Ken says intervention in Somalia is a counter-example]\n\n>>I am a staunch Republican, BTW.  The irony of arguing against military\n>>intervention with arguments based on Vietnam has not escaped me.  I was opposed\n>>to US intervention in Somalia for the same reasons, although clearly it was\n>>not nearly as risky.\n> \n>Based on the same reasons?  You mean you were opposed to US intervention in\n>Somalia because since Somalia is a European country instead of the third world,\n>the desire to help Somalia is racist?  I don't think this \"same reason\" applies\n>to Somalia at all.\n\nNo, you have completely misunderstood.  I was opposed to intervention in\nSomalia for the same reason I am opposed to intervention in Bosnia - there is\nno security interest of the United States there which justifies risking the\nlives of American servicemen, and there are too many crises in the world for us\nto take on all of them.  In the case of Bosnia, the risks are obviously much\ngreater, and there are other countries in a much better position and with far\nbetter reasons to take action than the US.\n\n>The whole point is that Somalia _is_ a third world country, and we were more\n>willing to send troops there than to Bosnia--exactly the _opposite_ of what\n>the \"fixation on European countries\" theory would predict.  (Similarly, the\n>desire to help Muslims being fought by Christians is also exactly the opposite\n>of what that theory predicts.)\n\nYou continue to misunderstand.  I did not say the reason why people want to\nintervene is because of racist (<- you seem to be overly fond of using this\nword, btw.  I said the phenomenon was race-related, which is not the same as\nracist.  Perhaps this distinction is too subtle for you to grasp) motives - I\nsaid the attention and outrage at the entire Yugoslavian situation was a result\nof it being 1) closer to home, 2) happening to people we can identify with, and\n3) relentlessly harped on by the media.  I never said anything about which side\nwould be preferred, which has a lot more to do with the presentation of the\nconflict than any psychological factors.  I think there is no doubt that despite\nthe fact we intervened in Somalia, the level of attention devoted to there was\nconsiderably less than what is devoted to Bosnia, if the newspapers and tv news\nI see are any guide.\n\n\nDave\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6232, "properties": {"category": "comp.windows.x", "text": "From: lungtt@gus.ecn.purdue.edu (Terence T. Lung)\nSubject: Re: Honors Degrees: Do they mean anything?\nOrganization: Purdue University Engineering Computer Network\nLines: 6\n\nI hear George Bush (remember him?) will receive an honors degree from\nsome Kuwaiti University for contributing to certain Kuwaiti interests\nnot too long ago.  Do you think it would add much to his resume? ;-)\n\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6233, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: Alaska Pipeline and Space Station!\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 20\n\nIn article <1993Apr5.160550.7592@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n\n>>Why can't the government just be a tennant?\n\n>I think this would be a great way to build it, but unfortunately\n>current spending rules don't permit it to be workable. \n\nActually, that is no longer true. In the last few years Congress has\nammended laws to provide whatever is needed. Note that both Spacehab\nand Comet are funded this way.\n\nThe problems aren't legal nor technical. The problem is NASA's culture.\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Allen W. Sherzer | \"A great man is one who does nothing but leaves        |\n|  aws@iti.org     |  nothing undone\"                                       |\n+----------------------71 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6234, "properties": {"category": "comp.graphics", "text": "From: steve@hcrlgw (Steven Collins)\nSubject: Sphere from 4 points\nOrganization: Central Research Lab. Hitachi, Ltd.\nLines: 24\nNntp-Posting-Host: hcrlgw\n\n>\n>Another method is to first find the center of the circle defined by 2 sets\n>of 3 points, and intersecting the normals from there.  This would also define\n>the circle center.  However, small numerical imprecisions would make the\n>lines not intersect.  Supposedly 3 planes HAVE to intersect in a unique\n>point if they are not parallel.\n>\n\nHaving thought about this, why don't you project the 2 lines onto the 2d\nplane formed by the lines.  Do an intersection calculation in the plane in\n2D, where you're guaranteed a unique solution (unless they're parallel which\nwon't happen in this case), and then use parametric distance along the lines\nfrom the circle centres to determine the exact point of interest.  This\nbypasses the messy error propogation required to do the calculation in 3d.\n\nHope I haven't put my foot in it again!\n\nsteve\n---\n-- \n+---------------------------------------+--------------------------------+\n| Steven Collins\t\t\t| email: steve@crl.hitachi.co.jp |\n| Visiting Computer Graphics Researcher\t| phone: (0423)-23-1111 \t |\n| Hitachi Central Research Lab. Tokyo.\t| fax:   (0423)-27-7742\t\t |\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6235, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: the usual\nOrganization: Iowa State University, Ames IA\nDistribution: na\nLines: 45\n\narc@cco.caltech.edu (Aaron Ray Clements) writes:\n\n>I was under the impression that to obtain fissionable materials (i.e.,\n>plutonium or reactor/weapons-grade uranium) one was required to obtain\n>a federal permit to own such materials.\n\n\tNo, you merely have to start working on yellowcake or else\ndevise a system to get it from other sources.  BTW: the DOE handles\nreactor fuel, and merely leases it to reactors.  The NRC certifies these\nreactors.  The military have their own sources.  A private citizen has\nnone of these official sources.\n\n>Actually, why bother looking it up?  From the material we covered last\n>term (in 10 weeks) of Ge/Ch 127 (Nuclear Chemistry), I could *derive*\n>what it would take to build a bomb.\n\n\tThat's freshman-level chemistry.  Big deal.  Can you make it\nwork?  That's PhD-level physics.  Big difference.\n\n>  And as far as the explosive charge,\n>I (as a chemist) could synthesize a variety of explosives from commonly\n>available chemicals in the garage if I felt like.  The electronics \n>behind the detonator and the shaped charges are a little trickier,\n>however . . . but not impossible using a few \"tricks of the trade.\"\n>And if I really wanted to be nasty, I could include a core of \n>hydrogen and deuterium . . .\n\n\tSo you admit that there's no law that could stop you?  Physics\naside, could you make one if you had the funds and time?  The answer\nis yes.  So, do we lock you up now because of this?  Surely you can\nsee where the comparison with anti-gun laws comes into play here?\n\n>Of course, the hardest part is getting the fissionable material\n>to start with, and living long enough to put a bomb together. \n>(Plutonium has some *nasty* properties . . .)\n\n\tPrecisely why it's not as readily utilized as you seem to have\nbeen lead to believe.  BTW: 98% U235 is far better for home-made bombs\nthan trying to use plutonium.  The laws of physics make the creation of\na device without serious manufacturing facilities very low in probability.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6236, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: Jewish Broadcasters (was Jewish Baseball Players?)\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 33\n\nIn article <C5Mu5z.HH8@unix.amherst.edu> ddsokol@unix.amherst.edu (D. DANIEL SOKOL) writes:\n>\n>Roger Lustig (roger@crux.Princeton.EDU) wrote:\n>> In article <1993Apr16.220309.1@acad.drake.edu> sbp002@acad.drake.edu writes:\n>> >In article <C5L9zs.44n@world.std.com>, Eastgate@world.std.com (Mark Bernstein) writes:\n>> >> For that matter, how many Gentleman of The Press Box have been Jewish? The\n>> >> only Jewish sportscaster that comes to mind is Steve Williams (?), who had\n>> >> a Phillies show on KYW in Philadelphia in the 80s.\n\n>> >Howard Cosell is one who comes to mind.\n\n>> Gee, d'ya think Len Berman's Jewish?\n\n>\n>How about Steve Stone of WGN who does the Cubs?\n\nWe already got him under Pitchers, Overrated, Jewish.\n\n>or Tony Korhiezer and Shirly Povich (Maury's dad) of the Washington Post?\n\nProbably.  Is SHirley P still alive?  Just wondering.\n\nRoger\n>-Danny\n>\n>\n>\n>\n>\n>\n>\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6237, "properties": {"category": "rec.autos", "text": "From: wrat@unisql.UUCP (wharfie)\nSubject: Re: Where can I get a New York taxi?\nDistribution: na\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 7\n\nIn article <C5r66A.6rB@srgenprp.sr.hp.com> almanb@sr.hp.com (Bob Alman) writes:\n>          \"hose\"  h-o-s-e\n\n\tDork.  d-o-r-k.\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6238, "properties": {"category": "rec.sport.baseball", "text": "From: 00bjgood@leo.bsuvc.bsu.edu\nSubject: Jim Lefebvre is an idiot.\nOrganization: Ball State University, Muncie, In - Univ. Computing Svc's\nLines: 14\n\nI just wanted to let everyone know that I have lost what little respect I have\nfor Jim LeFebvre after seeing today's Cubs game. First of all how could he\nstart Maldonado over May. After the way May played at the end of last year and\nthe way he tore up the Cactus League how could you let him sit the bench? Not\nto mention that a right hander (Maddux) started. I really blew my top when\nLefebvre pinch hit for Rick Wilkins with TOMMY SHIELDS! How can you do that\njust because of the lefty-righty thing, too much is made of that. Wilkins is\ntwice the hitter that Shields is. Then the next batter was Jose Vizcaino, one\nof the weakest hitters I have ever seen, and who had looked terrible at bat all\nday, and Lefebre let him hit, while May still sat the bench. I think even Arnie\nHarris was stunned by this because he showed May sitting in the dugout while\nVizcaino was batting. Face it Lefebvre has got to be the worst manager in\nbaseball.\n\t\t\t\t\t\tA dishard Cub fan\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6239, "properties": {"category": "rec.sport.baseball", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: MARLINS WIN! MARLINS WIN!\nArticle-I.D.: midway.1993Apr6.214406.29128\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 18\n\nIn article <lloyd-060493114752@128.32.250.77> lloyd@uclink.berkeley.edu (Lloyd Nebres) writes:\n>>>(Look at all that Teal!!!!  BLEAH!!!!!!!!!)\n>\n>Indeed, if the color teal on a team's uniforms is any indication of the\n>future, the Marlins are in dire trouble! Refer to the San Jose Sharks for\n>proof... But I have hope for the Marlins. I was a sometime member of the\n>Rene Lachemann fan club at the Oakland Coliseum, and have a deep respect\n>for the guy. He's a gem. And, of course, Walt Weiss gives that franchise\n>class. But yeah... whoever designed those uniforms was guilty of a paucity\n>of style and imagination. Ugghhh!\n\nMaybe I'm just a child of the 80's, but I really liked the Marlins' uniforms.\nThe helmets shine nicely in the sun.  It's enough to make me a fan.\n-- \nted frank                 | \"However Teel should have mentioned that though \nthf2@kimbark.uchicago.edu |  his advice is legally sound, if you follow it \nthe u of c law school     |  you will probably wind up in jail.\"\nstandard disclaimers      |                    -- James Donald, in misc.legal\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6240, "properties": {"category": "sci.med", "text": "Subject: Origin of Morphine\nFrom: chinsz@eis.calstate.edu (Christopher Hinsz)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 20\n\n\tI am sorry to once again bother those of you on this newsgroup. \nIf you have any suggestions as to where I might find out about the subject\nof this letter (the origin of Morphine, ie. who first isolsted it, and why\nhe/she attempted such an experiment).  Once agian any suggestion would be\nappreciated.\n\tCSH\np.s. My instructer insists that I get 4 rescources from this newsgroup, so\nplease send me and info you think may be helpful.  Facts that you know,\nbut don't know what book they're from are ok.\nATTENTION: If you do NOT like seeing letters such as this one on your\nnewsgroup direct all complaints to my instructor at <bshayler@eis.CalStat.Edu>\n\n\n--\n \"Kilimanjaro is a pretty tricky climb. Most of it's up, until you reach\nthe very, very top, and then it tends to slope away rather sharply.\"\n\t\t\t\t\tSir George Head, OBE (JC)\n------------------------------------------------------------------------------\nLOGIC: \"The point is frozen, the beast is dead, what is the difference?\"\n\t\t\t\t\tGavin Millarrrrrrrrrr (JC)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6241, "properties": {"category": "sci.space", "text": "From: clarke@acme.ucf.edu (Thomas Clarke)\nSubject: Re: Vandalizing the sky.\nOrganization: University of Central Florida\nLines: 19\n\nI posted this over in sci.astro, but it didn't make it here.\nThought you all would like my wonderful pithy commentary :-)\n\nWhat? You guys have never seen the Goodyear blimp polluting\nthe daytime and nightime skies?\n\nActually an oribital sign would only be visible near\nsunset and sunrise, I believe.  So pollution at night\nwould be minimal.\n\nIf it pays for space travel, go for it.  Those who don't\nlike spatial billboards can then head for the pristine\nenvironment of Jupiter's moons :-)\n\n---\nThomas Clarke\nInstitute for Simulation and Training, University of Central FL\n12424 Research Parkway, Suite 300, Orlando, FL 32826\n(407)658-5030, FAX: (407)658-5059, clarke@acme.ucf.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6242, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: X-Soviet Armenia denies the historical fact of the Turkish Genocide.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 61\n\nIn article <C5LxEw.9p0@panix.com> mpoly@panix.com (Michael S. Polymenakos) writes:\n\n> Maybe with the availability of anon servers some people are beginning to\n>speak out? \n\nI sure hope so. Because, the unspeakable crimes of the Armenians must \nbe righted. Armenian invaders burned and sacked the fatherland of \nUrartus, massacred and exterminated its population and presented to \nthe world all those left from the Urartus, as the Armenian civilization.\n\nAll reliable Western historians describe how Armenians ruthlessly\nexterminated 2.5 million Muslim women, children and elderly people of \nEastern Anatolia and how they collaborated with the enemies of the \nOttoman Empire between 1914-1920.\n\nIt is unfortunately a truth that Armenians are known as collaborators\nof the Nazis during World War II and that, even today, criminal/Nazi\nmembers of the ASALA/SDPA/ARF Terrorism Triangle preach and instigate\nracism, hatred, violence and terrorism among peoples. \n\nAnd x-Soviet Armenia continues its anti-Turkish policy in the following \nways:\n\n1. x-Soviet Armenia denies the historical fact of the Turkish Genocide\nin order to shift international public opinion away from its political\nresponsibility.\n\n2. x-Soviet Armenia, employing ASALA/SDPA/ARF Terrorism and Revisionism \nTriangle and criminal/Nazi Armenians, attempts to call into question the \nveracity of the Turkish Genocide.\n\n3. x-Soviet Armenia has also implemented state-sponsored terrorism through\nthe ASALA/SDPA/ARF Terrorism and Revisionism Triangle in an attempt to \nsilence the Turkish people's vehement demands and protests.\n\n4. Using all its human, financial, and governmental resources, x-Soviet\nArmenia and its tools in the United States attempt to silence through\nterrorism, bribery and other subversive methods, non-Turkish supporters\nof the Turkish cause, be they political, governmental and humanitarian.\n\nUsing all the aforementioned methods, the x-Soviet Armenian government \nis attempting to neutralize the international diplomatic community from\nmaking the Turkish Case a contemporary issue.\n\nYet despite the efforts of the x-Soviet Armenian government and its terrorist\nand revisionist organizations, in the last decades, thanks to the struggle \nof those whose closest ones were systematically exterminated by the Armenians,\nthe international wall of silence on this issue has begun to collapse, and \nconsequently a number of governments and organizations have become \nsupportive of the recognition of the Turkish Genocide.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6243, "properties": {"category": "comp.windows.x", "text": "From: karenb@westford.ccur.com (Karen Bircsak)\nSubject: lost in (TekHVC color) space\nArticle-I.D.: westford.1993Apr6.160748.3794\nOrganization: Concurrent Computer Corp.  Westford, MA\nLines: 33\n\n(please respond via email!)\n\nHas anybody actually seen the Tek color space stuff working?  I'm not\nhaving any luck with either the xtici editor from export.lcs.mit.edu or with\nO'Reilly's ftp-able example xcms from ftp.uu.net.\n\nThe O'Reilly example fails for almost every set of inputs because\nXcmsTekHVCQueryMaxV returns a smaller value than XcmsTekHVCQueryMinV does\n(which makes no sense to me).\n\nThe xtici editor fails in XcmsStoreColors, apparently because the\nmathematical manipulations of the color specs results in invalid values.  So\nyou can't actually edit any colors.\n\nWe have X11 R5 patch level 22; 8-bit pseudoColor visual.  I've poked around \nin the xcms code in Xlib, but without some understanding of the theory I have \nno idea what's going wrong.  Can somebody confirm if either of the \nabove-mentioned programs work on their systems, or let me know if they fail \nfor you too?  Please include what hardware/software/patch levels you have.\n\nAny hints?\n\nPlease respond with email as I don't regularly read this group.\n\nThanks,\nKaren\n\n-------------------------------------------------------------------------\nKaren Bircsak\nConcurrent Computer Corporation\n\nkarenb@westford.ccur.com\n-------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6244, "properties": {"category": "rec.sport.baseball", "text": "From: js1@Isis.MsState.Edu (Jiann-ming Su)\nSubject: Re: Rickey Henderson\nNntp-Posting-Host: isis.msstate.edu\nOrganization: Mississippi State University\nDistribution: usa\nLines: 21\n\nIn article <ls1d6vINNs65@appserv.Eng.Sun.COM> str@maredsous.Eng.Sun.COM (Todd Rader) writes:\n>Stay in school.  You have a lot to learn.\n\nLearn what?  I know that 3 million dollars is A LOT of money.  I know \nRickey Henderson doesn't have a career out of baseball.  I know if he \ndidn't have baseball, he wouldn't be making near the money he is now.\n\nI just don't understand how some athlete, who only plays a sport for a \nliving for millions of dollars, say he is not being paid enough.\n\nIf nobody will sign him for his asking price, he will be the one hurting.\nThe A's will still win without him.\n\nRemeber, many of these athletes have NOTHING if not for their athletic \nability.  NOTHING.  They are getting paid MUCH more than most hard working\ncitizens, and they are complaining of not enough pay.\n\nI don't have a problem with them making millions.  My problem is when the\nsay they aren't being paid enough, when they already get 3 million--also,\ntheir numbers get worse.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6245, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: etape@cwis.unomaha.edu (Elizabeth Harris Tape)\nSubject: Re: WINQVTNET with NDIS on Token Ring ?\nOrganization: University of Nebraska at Omaha\nLines: 0\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6246, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mirsky@hal.gnu.ai.mit.edu (David Joshua Mirsky)\nSubject: Re: Desktop rebuild and Datadesk keyboard?\nOrganization: dis\nLines: 30\nNNTP-Posting-Host: hal.ai.mit.edu\n\nIn article <C5I77w.3oE@cs.uiuc.edu> tthiel@cs.uiuc.edu (Terry Thiel) writes:\n>Ijust got a new Datadesk 101E keyboard to go with my new Centris 610 and have a\n>problem doing desktop rebuilds.  I hold down the Command and Option keys and\n>restart but nothing happens.  The DIP switches are set the right way and the\n>Command and Option keys seem to work on anything else.  I'm running 7.1 btw.\n>Anyone know what the problem is?\n>-Terry\n\n\nTerry, hi.  I recently bought an LCIII and a Datadesk 101E.  I can't\nremember trying to rebuild the desktop with it, however it did give me\na strange problem.  When I held down shift during startup to disable\nall extensions, nothing happened. I tried it with another keyboard, using\nthe same adb connector cable- and it worked with the other keyboard.\nThe shift key on the Datadesk keyboard worked well otherwise. I checked\nthe dipswitches and they are fine.  Try disabling your extensions and tell\nme if it works.\n\nI am annoyed with Datadesk.  I sent them the keyboard in the mail for\ninspection/repair/replacement.  The technician on the phone said they\nhave a 10-14 day turn around time- meaning you should receive the\ninspected/repaired keyboard in that time.  Well, they have had the\nkeyboard for over 3 weeks and I still have gotten very little info\nfrom them about it. It's annoying because it cost me $12 to send them\nthe keyboard (they do not refund the money) and their costumer service\nlines are toll calls. Tell me if you have a similar experience.\n\n-David\n\nmirsky@gnu.ai.mit.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6247, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: Canadians - another Stanley Cup\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nDistribution: na\nLines: 37\n\nIn article <93097.094815MECE7187@RyeVm.Ryerson.Ca> <MECE7187@RyeVm.Ryerson.Ca>\nwrites:\n\n>Im sorry to tell you this, but unless they pull off another 1986 miracle, there\n> is no way the HABS will win this year.   Ever since they traded for\n>Ramage, and since Savard came off injury, they have been playing shinny.  And\n>you cant blame Roy for the 4-0 loss to Washington, when 20 players could not\n>score one goal.  I know, you think\n>I am a Boston fan, but all of my years have been dedicated to Les HABS.\n\n>David Degan\n\nWell, it seems that the Habs have been much talked-about of late, so here's my\n$0.02.  These guys have absolutely no concept of how to play in front of the\ndamn net!!!  Watch them in the offensive zone, especially on the powerplay. \nDamphousse or Lebeau will skate all over the bloody zone, maybe pass to the\npoint, get it back, skate some more, pass it around....BUT WHERE'S THE SHOT??!\nAnswer: the shot is totally useless because they lack a forward who stands\nin front of the net a la` Neely, Shanahan, Tocchet, etc etc.  Too bad \nDemers won't put Dipietro or LeClair on the powerplay more often.  Dammit,\neven Ewen would at least cause some disruptions.  Montreal desperately needs\na power forward with some talent, IMO.\n\nThen watch them in their own zone. Patrick Roy is screened on everything. Say\nwhat you want about his performance; IMNSHO he cannot stop what he cannot see. \nAnd Montreal's defence does a miserable job of clearing the front of the net. \nLast night against Washington Roy played a *great* game.  The first goal came\non the most ridiculous goalmouth scramble I've seen in a long time, and he\ndidn't have a hope in hell of stopping the shot.  The second goal came on a\ndeflection of a shot he only partially saw anyway.  Pathetic defence.  The\nthird goal was EN.\n\nNo wonder he gets pissed off at his defencemen.\n\n\ndchhabra@stpl.ists.ca\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6248, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Wings take game one\nKeywords: The Detroit Red Wings - 6 ; The Toronto Maple Leafs - 3\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 19\n\nIn <1qvos8$r78@msuinfo.cl.msu.edu> vergolin@euler.lbs.msu.edu (David Vergolini) writes:\n\n>  The Detroit Red Wings put a lot of doubter on ice tonight with a 6 - 3\n>washing of the Toronto Maple Leafs.  All you Toronto fans have now seen the\n>power of the mighty Red Wing offense.  Toronto's defense in no match for the\n>Wing offense.  As for the defense, Probert, Kennedey and Primeau came out\n\nDid they move Probert back to defense?  Why did I see him parking his ass\nin front of Potvin all night?  Somebody is going to have to discipline\nProbert if the Leafs want to win the series.  Perhaps a fresh Clark should\nhit the ice at the end of a long Probert shift and straigten him out for\na while...\n\n\n-- \n\ncordially, as always,                      maynard@ramsey.cs.laurentian.ca \n                                           \"So many morons...\nrm                                                   ...and so little time.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6249, "properties": {"category": "sci.electronics", "text": "From: alan@apple.com (Alan Mimms)\nSubject: Re: UART needed (really BREAK detect)\nOrganization: Apple Computer, Inc.\nLines: 26\n\nIn article <jam.19.735404158@ameslab.gov>, jam@ameslab.gov (Jerry\nMusselman) wrote:\n> \n> I need to find a UART that will interface to an 8051 and do the following:\n> \t-250k baud, 8 data bits, 2 stop bits, no parity\n> \t-ability to do BREAK detect (IRQ or output pin)\n> \t-IRQ on character received\n> \n> I'm using a Dallas DS2250 at 16 Mhz (8051 clone), but it won't do \n> break detect.  I've looked at the 6850, 8251, 7201, 2661, etc...\n> \n> \tAny help would be appriciated!!!\n\nActually detecting a BREAK is done by watching for a \"character\" containing\nall zero bits with the framing error resulting from its receipt.  This\nmeans that the line stayed in the zero bit state even past the stop bit\ntime slot, which basically indicates a BREAK.  There is no special way to\ndetect BREAK that I have found other than this -- there's no magic signal\ngenerated by UARTs, etc.\n\nAlan Mimms (alan@apple.com, ...!apple!alan)   | My opinions are generally\nPortable Macintosh Software Group             | pretty worthless, but\nApple Computer                                | they *are* my own...\nArt without engineering is dreaming.  Engineering without art is\ncalculating.\n\t-- Steven K. Roberts in \"Computing Across America\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6250, "properties": {"category": "soc.religion.christian", "text": "From: dsegard@nyx.cs.du.edu (Daniel Segard)\nSubject: Re: Easter: what's in a name? (was Re: New Testament Double Stan\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 15\n\n\n  mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n > And the same goes for other cultural practices.  The festival\n > of Easter may possibly have some historical association with\n > some pagan festival, but *today* there are, as far as I know,\n > no Christians who *intend* to honor any kind of \"pagan\n > goddess\" by celebrating Easter.\n \n       That argument would be more compelling if it were not for the\nIshtar eggs and Ishtar bunnies.  Why mix pagan fertility symbols from the\nworship of the pagan goddess of fertility with Biblical belief?  What\nwould really be lost if all of you were to just drop the word \"Easter\" and\nreplace all such occurances with \"Resurrection Sunday\"?  Would you not\nshow up for services if they were called \"Resurrection Sunday Services\"\nrather than \"Easter Services\"?  \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.295+0000", "event": "documents", "entityId": 6251, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: Clipper considered harmful\nOrganization: Totally Unorganized\nLines: 72\n\nIn article <15469@optilink.COM> brad@optilink.COM (Brad Yearwood) writes:\n<If Clipper comes to cellular phones along with legal proscriptions against\n<using other cipher systems on these phones, a new and potentially dangerous\n<class of crime is created.\n\nAside from possession of \"terrorist tools\" (unapproved encryption devices\nor programs)...\n\n<Criminals who very badly want inscrutable tactical communications (specifically\n<the terrorists and drug dealers who proponents of key escrow cite as threats)\n<will be highly motivated to steal the cipher phone of a legitimate user, and\n<to kill this person or hold them hostage so discovery of compromise of the\n<device will be delayed.\n<\n<Once a suitable collection of devices is stolen, criminals can communicate\n<with impunity (assuming the cipher system carries no trapdoors apart from\n<key escrow) until and unless the compromise is discovered by some other means.\n<\n<Because life-is-cheap criminals are currently willing to kill people to steal\n<very large and conspicuous property (luxury cars), it is reasonable to assume\n<that they will be willing to kill people to steal small and inconspicuous\n<property (a cipher cellular phone).  Just as we have seen in the past with\n<\"blue box\" technology, and in the present with modified cellular phones,\n<we can expect to see among high-stakes criminals a lucrative market for\n<stolen cipher phones which can be used for a few days.  The high-stakes\n<criminals will pay the life-is-cheap types substantial amounts for stolen\n<instruments.\n<\n<Because a person is typically discovered as missing or dead in a few days,\n<a stolen instrument will be usable for only a few days.  There will be a\n<continuing demand for fresh phones: fresh bodies.\n\nAnd since Clinton is also going full-bore to deny unconnected citizens\nthe means to defend themselves (\"we will protect you ... 911 is good\nenough for you...\") by perverting or trashing the Second Amendment,\nthe targeted individuals will be GUARANTEED easy prey.  What is a few\nbodies compared to the \"greater good\" of the Fed being able to defeat\na citizen's security with impunity?  You don't think there doesn't\nexist a means by which the NSA can do their usual eavesdropping, scanning\nfor keywords, with OR WITHOUT a court order or any 'keys', do you?\nIf so, I got some great Florida real estate you might be interested in...\n\nPerhaps the idea of escrowed keys is meant to divert the discussion to\nhow they will be safeguarded, and away from the basic fact that the\ngovernment is systematically taking away our right to privacy, to be\nsecure, for the means of self-defense, and just about every other right\nspelled out in the Bill of Rights?\n\nNawwww - they are the GOVERNMENT!  \"Trust us...\"\n\n<In other words, Clipper and similar systems have the potential to turn a\n<current inconvenience to law enforcement into a direct, vicious, and\n<persistent threat to the general public.\n\nWhat is more important to the government?  Law Enforcement (people control)\nor the safety of the general public?  The gun control issue should answer\nthat one - look at how good that works in making cities safer:  The places\nthat are the worst in that regard are also the places with the 'best' gun\ncontrol.  Government is NOT about public good, it is about CONTROL.\n\nNever forget that.  Our Founding Fathers sure were concerned about it.\n\n<\n<  [ ... remainder deleted ... ]\n<\n\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6252, "properties": {"category": "sci.med", "text": "From: Daniel.Prince@f129.n102.z1.calcom.socal.com (Daniel Prince)\nSubject: Acutane, Fibromyalgia Syndrome and CFS\nLines: 11\n\n To: nyeda@cnsvax.uwec.edu (David Nye)\n\nThere is a person on the FIDO CFS echo who claims that he was \ncured of CFS by taking accutane.  He also claims that you are \nusing it in the treatment of Fibromyalgia Syndrome.  Are you \nusing accutane in the treatment of Fibromyalgia Syndrome?  Have \nyou used it for CFS?  Have you gotten good results with it?  Are \nyou aware of any double blind studies on the use of accutane in \nthese conditions?  Thank you in advance for all replies.\n\n... I think they should rename Waco TX to Wacko TX!\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6253, "properties": {"category": "rec.motorcycles", "text": "From: car377@cbnewsj.cb.att.com (charles.a.rogers)\nSubject: Re: dogs\nOrganization: AT&T\nSummary: abnormal canine psychology\nLines: 21\n\nIn article <MS-C.735160298.1147902781.mrc@Ikkoku-Kan.Panda.COM>, mrc@Ikkoku-Kan.Panda.COM (Mark Crispin) writes:\n> \n> With a hostile dog, or one which you repeatedly encounter, stronger measures\n> may be necessary.  This is the face off.  First -- and there is very important\n> -- make sure you NEVER face off a dog on his territory.  Face him off on the\n> road, not on his driveway.  If necessary, have a large stick, rolled up\n> newspaper, etc. (something the beast will understand is something that will\n> hurt him).  Stand your ground, then slowly advance.  Your mental attitude is\n> that you are VERY ANGRY and are going to dispense TERRIBLE PUNISHMENT.  The\n> larger the dog, the greater your anger.\n\nThis tactic depends for its effectiveness on the dog's conformance to\na \"psychological norm\" that may not actually apply to a particular dog.\nI've tried it with some success before, but it won't work on a Charlie Manson\ndog or one that's really, *really* stupid.  A large Irish Setter taught me\nthis in *my* yard (apparently HIS territory) one day.  I'm sure he was playing \na game with me.  The game was probably \"Kill the VERY ANGRY Neighbor\" Before \nHe Can Dispense the TERRIBLE PUNISHMENT.\n\nChuck Rogers\ncar377@torreys.att.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6254, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 34\n\nIn article <C5sJDp.F23@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:\n\n>>This prize isn't big enough to warrent developing a SSTO, but it is\n>>enough to do it if the vehicle exists.\n\n>Actually, there are people who will tell you that it *would* be enough\n>to do SSTO development, if done privately as a cut-rate operation.  Of\n>course, they may be over-optimistic.\n\nIn spite of my great respect for the people you speak of, I think their\ncost estimates are a bit over-optimistic. If nothing else, a working SSTO\nis at least as complex as a large airliner and has a smaller experience\nbase. It therefore seems that SSTO development should cost at least as\nmuch as a typical airliner development. That puts it in the $3G to $5G\nrange.\n\n>You can also assume that a working SSTO would have other applications\n>that would help pay for its development costs.\n\nTrue it and the contest would result in a much larger market. But I\ndon't think it would be enough to attract the investors given the\nrisks involved.\n\nIf you could gurantee the SSTO costs and gurantee that it captures\n100% of the available launch market, then I think you could\ndo it.\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------56 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6255, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: Remarks to Law Enforcement Leaders\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 227\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\t     \t  \n\n\n                           THE WHITE HOUSE\n\n                    Office of the Press Secretary\n______________________________________________________________\nFor Immediate Release                             April 15, 1993     \n\n\t     \n                       REMARKS BY THE PRESIDENT\n                   TO LAW ENFORCEMENT ORGANIZATIONS\n\t     \n\t     \n                           The Rose Garden \n\n\n2:52 P.M. EDT\n\n\n\t     THE PRESIDENT:  Good afternoon.  Ladies and gentlemen, \ntwo months ago I presented a comprehensive plan to reduce our \nnational deficit and to increase our investment in the American \npeople, their jobs and their economic future.  The federal budget \nplan passed Congress in record time, and created a new sense of hope \nand opportunity in the country.  \n\t     \n\t     Then, the short-term jobs plan I presented to Congress, \nwhich would create a half a million jobs in the next two years passed \nthe House of Representatives two weeks ago.  It now has the support \nof a majority of the United States Senate. \n\t     \n\t     All of these members of Congress know it's time to get \nthe economy moving again, to get job growth going again, to get a \nfast start on the investments we need to build a lasting prosperity.  \nUnfortunately, a minority of the members of the United States Senate \nhave used gridlock tactics to prevent their colleagues from working \nthe will of the majority on the jobs bill.\n\t     \n\t     When Congress returns, I ask every senator from every \nstate and from both parties to remember what is at stake.  The issue \nis not politics, it's people.  Sixteen million of them are looking \nfor full-time jobs and can't find them.  These men and women don't \ncare about who's up or down in Washington.  They care about paying \nthe rent and meeting the mortgage payment, about putting food on the \ntable and buying shoes for their children, about regaining a sense of \ndignity that comes from doing a day's work and supporting their \nfamilies and drawing a paycheck.\n\t     \n\t     They're asking those of us who have the privilege of \nserving to put aside politics and do something now to move our \neconomy forward.  I am prepared to do that.  And I have been working \nwith the Senate to come up with an adjusted package that meets some \nof the concerns of those who have been blocking action on the jobs \nplan.  I'm willing to compromise, so long as we keep the focus on \njobs, keep the focus on growth and keep the focus on meeting unmet \nnational needs.  \n\t     \n\t     Our opponents have been asking for a smaller package.  \nToday I ask them to join me in determining exactly what kind and what \nsize package Congress can approve that actually meets the needs of \nthe American people. \n\t     \n\t     But even as we make those reductions and the package \nwill be smaller, I believe we must address problems that are on the \nminds of millions of Americans, and one in particular, and that is \nthe need to toughen law enforcement in our society to deal with the \ndramatic rise in violent crime. \n\t     \n\t     So I will ask, even in this reduced package, for an \nadditional $200 million in federal funding to help local communities \nto rehire police officers who have been laid off because of the \nfiscal problems caused by the national recession.  Together, with a \nmatching effort by local governments, this could put as many as \n10,000 police officers back on the job, and back on the beat in \ncommunities all across our nation.\n\t     \n\t     At a time when too many of our people live in fear of \nviolent crime, when too many businesses have closed and too many \npeople have lost their jobs because people are afraid to leave their \nhomes, rehiring thousands of officers is one of the best investments \nAmerica can make.  And I ask both Houses of Congress to make that \ninvestment in our people's safety and in their piece of mind.  \n\t     \n\t     I believe in the need for strong federal action to keep \nthe economy going toward recovery and to create jobs.  Make no \nmistake about it:  I will fight for these priorities as hard as I \never have.  I will never forget that the people sent me here to fight \nfor their jobs, their future and for fundamental change.\n\t     \n\t     I want to thank the police officers who are here today \nand tell you that not a single one of them knew before they came here \nthat I had determined to ask for more money in this jobs bill to \nrehire police officers.  They came here because they believe in the \nsummer jobs portion of the package.  And I want them to be free to \ntalk about that.  They came here not out of any law enforcement \nconcern other than the fact that they wanted the kids in this country \nto have a chance to have jobs this summer, to have safer streets and \na brighter and more peaceful future.\n\t     \n\t     I say what I say today not just because it's good for \nlaw enforcement but because it's good for the people who live in \nthese communities.  I have always supported community policing not \nonly because it helps to prevent crime and to lower the crime rate, \nbut because it cements better relationships between people in law \nenforcement and the people that they're hired to protect.  It reduces \nthe chances of abusive action by police officers and increases the \nchances of harmony and safe streets at the same time.\n\t     \n\t     These are the kinds of things that we are trying to do.  \nI promised in my campaign that I'd do everything I could to put \nanother 100,000 police officers on the street over the next four \nyears.  This makes a good downpayment on that.  This keeps in mind \nthe core of the jobs package.  And this will help us to move forward.  \n\t     \n\t     So I ask the people in the Senate who have blocked the \njobs bill, let's work together.  I can accept a reduced package if \nyou will increase your commitment to safe streets.  I do not accept \nthe fact that we should reduce our commitment to summer jobs or to \nbuilding our infrastructure or to doing those other things that will \ncreate real and lasting  prosperity for our people.  I have done my \npart now to end the gridlock; I ask you to do yours.  \n\t     \n\t     I want now to give the people who are here with me on \nthe platform a chance to make some remarks and to be heard by the \nAmerican people -- beginning with Janet Reno, the distinguished \nAttorney General.\n  \n\t     \n\t     *   *   *   *   *   *   *   *   *   *   *   * \n\t     \n\t     Q\t  Mr. President, can you tell us -- do you think that \nthe jobs package could be put in further jeopardy by controversy over \nthe suggestion of a VAT tax at this point in the congressional \ndialogue?\n\t     \n\t     THE PRESIDENT:  Not at all.  I think it should have --\nthey wouldn't have any relationship one to the other.  First of all, \nI made absolutely no decision on that.  You should know that there's \na lot of support in the business community and the labor community -- \npeople have asked us to consider that because of the enormous burden \nof the present system on many of our major employers, particularly \nmany of those that we depend upon to generate jobs and to carry the \nstrength of this economy.  But I have made absolutely no decision \nthat would even approach that on that or any other kind of general \ntax.\n\t     \n\t     Q\t  Do you personally believe that the American public \nis ready to pay for -- to have another tax to pay for health care?  I \nmean, apart from what business and labor leaders have said --\n\t     \n\t     THE PRESIDENT:  I'm not going to speculate on that.  I \nwill say this:  The real issue is how quickly we can recycle the \nbenefits of all the savings to cover the cost.  I mean, that is --\neveryone knows that if you do what we're proposing to do, if you \nstreamline the insurance system, if you fix the system so that \nthere's no longer an enormous economic incentive to over-utilize or \nover-provide certain services, if you provide primary and preventive \ncare in places where it isn't now, every single analysis shows \nabsolutely massive savings to the health care system.\n\t     \n\t     The real question is whether you can transfer those \nsavings to cover those who have no coverage now or those who have \nvirtually no coverage so that you provide people the security.  I \nhave no idea.  The polls say that, but I don't know.  All I know is \nthe polls that I see in the press that many of you have commissioned, \nthey say overwhelmingly the American people want the security of an \naffordable health care system.\n\t     \n\t     But I don't think that has anything to do with this \nstimulus, and it certainly shouldn't have.  People want a job first \nand foremost.  They want that more than anything else.\n\t     \n\t     Q\t  Now that you've announced your willingness to \ncompromise on the stimulus package, can you tell us what parts of \nyour package you consider vital and uncompromisable?  I assume summer \njobs is one.\n\t     \n\t     THE PRESIDENT:  I want the summer jobs; I want the \nhighway program and I want the police program.  I still intend -- let \nme say this:  I still intend to fully and aggressively push the crime \nbill, which did not pass the Congress last year.  This is a \nsupplement to that, not a substitute for it in any way.  But I think \nwe need to do that.\n\t     \n\t     I think we need the Ryan White funds because of the \nenormous health care burdens to the communities that are inordinately \nand disproportionately affected by the problems of caring for people \nwith AIDS.  And there are several other things that I think should be \ndone.  We have to do the Agriculture Department meat inspectors; the \nsafety of the public depends on that.  \n\t     \n\t     There are a number of other things that I don't -- I \ndon't think any of it should be cut, but I have given Senator \nMitchell and Senator Byrd -- I talked to them.  And Senator Dole \ncalled me yesterday to discuss this, and I told him that I would call \nhim back.  I called him back last night in New Hampshire and we \ndiscussed this.  And I basically asked them to talk today, and said \nthat I would not make any statements about any specifics until at \nleast they had a chance to talk to see whether or not they could \nreach some accord.  \n\t     \n\t     So I don't want to be any more specific than I have been \nalready, and let's see if they can talk it out.\n\t     \n\t     Q\t  When you talked to Senator Dole and Senator \nMitchell did you tell them about your -- increase also, that $200 \nmillion, that you want that as part of the package?\n\t     \n\t     THE PRESIDENT:  I did -- I told Senator -- I left word \nfor Senator Mitchell last night about it.  When I talked to Senator \nDole -- I don't remember for sure -- I do not believe I mentioned it.  \nBut I did tell him that I was prepared to reduce the package and I \nwanted to break the gridlock, and I told him that I was working on a \nreformulation of it so that -- in the hope that it would become even \nmore focused on jobs and the kinds of issues that I thought the \nAmerican people wanted us to address.  And this is certainly \nconsistent with that.\n\t     \n\t     Thank you.\n\n                                 END3:12 P.M. EDT\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6256, "properties": {"category": "rec.motorcycles", "text": "From: jjd1@cbnewsg.cb.att.com (james.j.dutton)\nSubject: Re: bikes with big dogs\nOrganization: AT&T\nDistribution: na\nLines: 20\n\nIn article <1993Apr14.234835.1@cua.edu> 84wendel@cua.edu writes:\n>Has anyone ever heard of a rider giving a big dog such as a great dane a ride \n>on the back of his bike.  My dog would love it if I could ever make it work.\n>\tThanks\n>\t\t\t84wendel@cua.edu\n \n If a large Malmute counts then yes someone has heard(and seen) such\nan irresponsible childish stunt. The dog needed assistance straightening\nout once on board. The owner would lift the front legs of dog and throw\nthem over the driver/pilots shoulders. Said dog would get shit eating\ngrin on its face and away they'd go. The dogs ass was firmly planted\non the seat.\n \n My dog and this dog actively seek each other out at camping party's.\nThey hate each other. I think it's something personal.\n \n================================================================================\n Steatopygias's 'R' Us.          doh#0000000005 That ain't no Hottentot.\n Sesquipedalian's 'R' Us. ZX-10. AMA#669373 DoD#564. There ain't no more.\n================================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6257, "properties": {"category": "comp.windows.x", "text": "From: mahan@TGV.COM (Patrick L. Mahan)\nSubject: RE: XDM & DECnet ?\nOrganization: The Internet\nLines: 31\nTo: xpert@expo.lcs.mit.edu, btaylor@mcl.bdm.com\n\n#\n#Does XDM work with DECnet? I have an Ultrix machine running both TCP/IP\n#and DECnet. I have a number of X-terminals hanging off the Ultrix host also\n#running TCP/IP and DECnet. Presently I am using XDM for the login procedure\n#on the X-terminals using TCP/IP. Since XDM is basically just an X-windows\n#client, shouldn't I be able to run XDM on the DECnet protocol tower as well?\n#\n\nXDM is not just an X Window client.  XDM has its own protocol (XDMCP) that\noperates of UCP on port 177.  It does provide a Login window which is an\nX Window Client.  As to using DECnet protocol.  Looking through the source\nfor XDM from X11R5 that I have here, it seems that the bare bones code is\nthere but not completely there.\n\n#\n#My first inclination is that XDM is not your typical X client. It is making\n#TCP/IP specific socket calls. In this case the answer would be no; you can\n#not run XDM over DECnet. Is this right or not? Any feedback is appreciated.\n#Thanks.\n#\n\nFrom my look at the source, it seems you cannot run it over DECnet as shipped\nwith X11R5.\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6258, "properties": {"category": "misc.forsale", "text": "From:  dina@litana.obninsk.su (  )\nSubject: horse breeding and saling\nReply-To: dina@litana.obninsk.su\nOrganization: Litana Ltd.\nLines: 31\n\n  ???????????????????????????????????????????????????????????????????????????\n  ?     Dear Sirs,                                                          ?\n  ?                                                                         ?\n  ?     The  private  agricultural  firm  \"DINA\",  is  breeding  pedigree   ?\n  ?horses of \"sportmodel\"  class,  mainly  trakenensky,  gannoversky  and   ?\n  ?thoroughbred horses. We have 17 heads of dams, getters of  trakeninsky   ?\n  ?and thoroughbread breeds, colts of 1-2 years old, sport live-stock  of   ?\n  ?horses of concour class (for passing the route  with  obstacles).  The   ?\n  ?firm has a warm stable made of brick, arranged to place 60 horses.       ?\n  ?     We  have  possibility  to  expand  the  field  of  activity   and   ?\n  ?systematically prepare our horses of concour class for sale  for  hard   ?\n  ?currency. The experienced  staff  of  the  firm  (internetional  class   ?\n  ?master)  workes  for  breeding  and  training  of  horses.  Additional   ?\n  ?investments are  necessary  to  purchase  of  larger  dam  live-stock,   ?\n  ?construction of the riding-house for training, extra stables.            ?\n  ?     For two years our firm has been  organizing  hunting  tourism  of   ?\n  ?the territory of the national park not far from Moscow (about 100 km).   ?\n  ?     We are also concerned in the development of  trading connections    ?\n  ?on delivering food products, clothes, foot-wear etc. to Russia.          ?\n  ?                                                                         ?\n  ?                                                Our address:             ?\n  ?                                                Russia, Obninsk,         ?\n  ?                                                pr. Marksa, 34-130.      ?\n  ?                                                phone:(08439)3-49-42,    ?\n  ?                                                      (08439)3-42-30     ?\n  ?                                                fax:  (095)255-22-25     ?\n  ?                                                Electronic Mail:         ?\n  ?                                                dina@litana.obninsk.su   ?\n  ?                                                                         ?\n  ?                                                Vyacheslav Chereshnev.   ?\n  ???????????????????????????????????????????????????????????????????????????\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6259, "properties": {"category": "soc.religion.christian", "text": "From: u9126619@athmail1.causeway.qub.ac.uk\nSubject: Could anyone answer this question???\nOrganization: Free University of Berlin, Germany\nLines: 41\nCc: u9126619@athmail1.causeway.qub.ac.uk\n\n\n\tI've heard it said that the accounts we have of Christs life and\nministry in the Gospels were actually written many years after the event.\n(About 40 years or so). Is this correct?? If so, why the big time delay??\nI know all scripture is inspired of God, so the time of writing is I suppose\nun-important, but I still can't help be curious!\n\n---------------------------------------------------\nIvan Thomas Barr \n\nContact me at u9126619@athmail1.causeway.qub.ac.uk\n\n[The Gospels aren't dated, so we can only guess.  Luke's prolog is\nabout the only thing we have from the author describing his process.\nThe prolog sounds like Luke is from the next generation, and had to do\nsome investigating.  There are traditions passed down verbally that\nsay a few things about the composition of the Gospels.  There are\ndebates about how reliable these traditions are.  They certainly don't\nhave the status of Scripture, yet scholars tend to take some of them\nseriously.  One suggests that Mark was based on Peter's sermons, and\nwas written to preserve them when Peter had died or way about to die.\nOne tradition about Matthew suggests that a collection of Jesus words\nmay have been made earlier than the current Gospels.  \n\nIn the ancient world, it was much more common to rely on verbal\ntransmission of information.  I think many people would have preferred\nto hear about Jesus directly from someone who had known him, and maybe\neven from someone who studied directly under such a person, rather\nthan from a book.  Thus I suspect that the Gospels are largely from a\nperiod when these people were beginning to die.  Scholars generally do\nthink there was some written material earlier, which was probably used\nas sources for the existing Gospels.\n\nEstablishing the dates is a complex and technical business.  I have to\nconfess that I'm not sure how much reliance I'd put on the methods\nused.  But it's common to think that Mark was written first, around 64\nAD., and that all of the Gospels were written by the end of the\nCentury.  A few people vary this by a decade or so one way or the\nother.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6260, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Final Solution for Gaza ?\nNf-ID: #N:cdp:1483500354:000:5791\nNf-From: cdp.UUCP!cpr    Apr 23 15:10:00 1993\nLines: 126\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Final Solution for Gaza ?\n\n\nFinal Solution for the Gaza ghetto ?\n------------------------------------\n\nWhile Israeli Jews fete the uprising of the Warsaw ghetto, they\nrepress by violent means the uprising of the Gaza ghetto and\nattempt to starve the Gazans.\n\nThe Gaza strip, this tiny area of land with the highest population\ndensity in the world, has been cut off from the world for weeks.\nThe Israeli occupier has decided to punish the whole population of\nGaza, some 700.000 people, by denying them the right to leave the\nstrip and seek work in Israel.\n\nWhile Polish non-Jews risked their lives to save Jews from the\nGhetto, no Israeli Jew is known to have risked his life to help\nthe Gazan resistance. The only help given to Gazans by Israeli\nJews, only dozens of people, is humanitarian assistance.\n\nThe right of the Gazan population to resist occupation is\nrecognized in international law and by any person with a sense of\njustice. A population denied basic human rights is entitled to\nrise up against its tormentors.\n\nAs is known, the Israeli regime is considering Gazans unworthy of\nIsraeli citizenship and equal rights in Israel, although they are\nconsidered worthy to do the dirty work in Israeli hotels, shops\nand fields. Many Gazans are born in towns and villages located in\nIsrael. They may not live there, for these areas are reserved for\nthe Master Race.\n\nThe Nazi regime accorded to the residents of the Warsaw ghetto the\nright to self- administration.  They selected Jews to pacify the\noccupied population and preventing any form of resistance. Some\nJewish collaborators were killed. Israel also wishes to rule over\nGaza through Arab collaborators.\n\nAs Israel denies Gazans the only two options which are compatible\nwith basic human rights and international law, that of becoming\nIsraeli citizens with full rights or respecting their right for\nself-determination, it must be concluded that the Israeli Jewish\nsociety does not consider Gazans full human beings. This attitude\nis consistent with the attitude of the Nazis towards Jews. The\ncurrent policies by the Israeli government of cutting off Gaza are\nconsistent with the wish publicly expressed by Prime Mininister\nYitzhak Rabin that 'Gaza sink into the sea'. One is led to ask\noneself whether Israeli leaders entertain still more sinister\ngoals towards the Gazans ? Whether they have some Final Solution\nup their sleeve ?\n\nI urge all those who have slight human compassion to do whatever\nthey can to help the Gazans regain their full human, civil and\npolitical rights, to which they are entitled as human beings.\n\nElias Davidsson Iceland\n\nFrom elias@ismennt.is Fri Apr 23 02:30:21 1993 Received: from\nisgate.is by igc.apc.org (4.1/Revision: 1.77 )\n\tid AA00761; Fri, 23 Apr 93 02:30:13 PDT Received: from\nrvik.ismennt.is by isgate.is (5.65c8/ISnet/14-10-91); Fri, 23 Apr\n1993 09:29:41 GMT Received: by rvik.ismennt.is\n(16.8/ISnet/11-02-92); Fri, 23 Apr 93 09:30:23 GMT From:\nelias@ismennt.is (Elias Davidsson) Message-Id:\n<9304230930.AA11852@rvik.ismennt.is> Subject: no subject (file\ntransmission) To: cpr@igc.org Date: Fri, 23 Apr 93 9:30:22 GMT\nX-Charset: ASCII X-Char-Esc: 29 Status: RO\n\nFinal Solution for the Gaza ghetto ?\n------------------------------------\n\nWhile Israeli Jews fete the uprising of the Warsaw ghetto, they\nrepress by violent means the uprising of the Gaza ghetto and\nattempt to starve the Gazans.\n\nThe Gaza strip, this tiny area of land with the highest population\ndensity in the world, has been cut off from the world for weeks.\nThe Israeli occupier has decided to punish the whole population of\nGaza, some 700.000 people, by denying them the right to leave the\nstrip and seek work in Israel.\n\nWhile Polish non-Jews risked their lives to save Jews from the\nGhetto, no Israeli Jew is known to have risked his life to help\nthe Gazan resistance. The only help given to Gazans by Israeli\nJews, only dozens of people, is humanitarian assistance.\n\nThe right of the Gazan population to resist occupation is\nrecognized in international law and by any person with a sense of\njustice. A population denied basic human rights is entitled to\nrise up against its tormentors.\n\nAs is known, the Israeli regime is considering Gazans unworthy of\nIsraeli citizenship and equal rights in Israel, although they are\nconsidered worthy to do the dirty work in Israeli hotels, shops\nand fields. Many Gazans are born in towns and villages located in\nIsrael. They may not live there, for these areas are reserved for\nthe Master Race.\n\nThe Nazi regime accorded to the residents of the Warsaw ghetto the\nright to self- administration.  They selected Jews to pacify the\noccupied population and preventing any form of resistance. Some\nJewish collaborators were killed. Israel also wishes to rule over\nGaza through Arab collaborators.\n\nAs Israel denies Gazans the only two options which are compatible\nwith basic human rights and international law, that of becoming\nIsraeli citizens with full rights or respecting their right for\nself-determination, it must be concluded that the Israeli Jewish\nsociety does not consider Gazans full human beings. This attitude\nis consistent with the attitude of the Nazis towards Jews. The\ncurrent policies by the Israeli government of cutting off Gaza are\nconsistent with the wish publicly expressed by Prime Mininister\nYitzhak Rabin that 'Gaza sink into the sea'. One is led to ask\noneself whether Israeli leaders entertain still more sinister\ngoals towards the Gazans ? Whether they have some Final Solution\nup their sleeve ?\n\nI urge all those who have slight human compassion to do whatever\nthey can to help the Gazans regain their full human, civil and\npolitical rights, to which they are entitled as human beings.\n\nElias Davidsson Iceland\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6261, "properties": {"category": "comp.windows.x", "text": "From: bading@cs.tu-berlin.de (Tobias 'Doping' Bading)\nSubject: Re: Forcing a window manager to accept specific coordinates for a window\nOrganization: Technical University of Berlin, Germany\nLines: 30\nNNTP-Posting-Host: athene.cs.tu-berlin.de\nMime-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\nIn-reply-to: ethan@cs.columbia.edu's message of Mon, 19 Apr 1993 21:25:08 GMT\n\n\ntry this after XCreateWindow:\n-----------------------------\n\n#include <X11/Xutil.h>\n\nDisplay display;\nWindow window;\n\n{\n  XSizeHints *xsizehints = XAllocSizeHints ();\n  xsizehints->flags = USPosition | USSize;\t/* or = PPosition | PSize */\n  xsizehints->x = 42;\n  xsizehints->y = 42;\n  xsizehints->width = 100;\n  xsizehints->height = 100;\n  XSetWMNormalHints (display, window, xsizehints);\n  XFree (xsizehints);\n}\n\nThese hints tell the window manager that the position and size of the window\nare specified by the users and that the window manager should accept these\nvalues. If you use xsizehints->flags = PPosition | PSize, this tells the window\nmanager that the values are prefered values of the program, not the user.\nI don't know a window manager that doesn't place the window like you prefer if\nyou specify the position and size like above.\n\nGreetings from Berlin,\n\nTobias (bading@cs.tu-berlin.de)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6262, "properties": {"category": "sci.crypt", "text": "From: hal@cco.caltech.edu (Hal Finney)\nSubject: Re: Clipper chip -- technical details\nOrganization: California Institute of Technology, Pasadena\nLines: 19\nNNTP-Posting-Host: alumni.caltech.edu\n\ndjb@silverton.berkeley.edu (D. J. Bernstein) writes:\n\n>[Summary elided]\n>The system as described here can't possibly work. What happens when\n>someone plugs the above ciphertext into a receiving chip? To get M\n>the receiving chip needs K_P; to get K_P the receiving chip needs U_C.\n>The only information it can work with is C. If U_C can be computed\n>from C then the system is cryptographically useless and the ``key\n>escrow'' is bullshit. Otherwise how is a message decrypted?\n\nThe description of the chip's operation evidently leaves out some of the\nkey management aspects.  Either the K_P is the secret key corresponding\nto a public key which is broadcast at message initiation, or it is the\nresult of a Diffie-Hellman key exchange or something similar.  Either\nway there must be some protocols beyond those described here.  It isn't\nclear whether they are implemented in the Clipper wiretap chip or must\nbe provided by other system components.\n\nHal Finney\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6263, "properties": {"category": "rec.autos", "text": "From: buck@granite.ma30.bull.com (Ken Buck)\nSubject: Re: Do trains have radar?\nOrganization: Bull Information Systems Inc.\nLines: 16\n\nhhtra@usho72.hou281.chevron.com (T.M.Haddock) writes:\n> I came upon a \n> train parked on a trestle with its locomotive sitting directly over\n> the northbound lanes. [...] Just as I passed from underneath the trestle,\n> my radar detector went into full alert - all lights lit and all chirps,\n> beeps, and buzzes going strong.\n> Could this have been caused by the train's radio or what?\n\nrecently-manufactured locomotives have wheel-slip detection systems\nthat use frequencies shared with police radar (i forget which band).\nthese will set off your radar detector if you get close enough, though\ni believe the range is pretty short.\n\nBTW, railroad police sometimes use radar to check for speeding trains\n(just like regular police check for speeding cars), although the\nintent here is for safety, not revenue collection (unlike with cars).\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6264, "properties": {"category": "rec.sport.hockey", "text": "From: umturne4@ccu.umanitoba.ca (Daryl Turner)\nSubject: Re: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nNntp-Posting-Host: gibson.cc.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Manitoba, Canada\nLines: 24\n\nIn article <1993Apr5.212018.25066@eng.cam.ac.uk> dscy@eng.cam.ac.uk (D.S.C. Yap) writes:\n>smale@healthy.uwaterloo.ca (Bryan Smale) writes:\n>\n>>                        Team           Biggest       Biggest\n>>Team:                   MVP:          Surprise:    Disappointment:\n>>-----------------------------------------------------------------------\n>>Washington Capitals     Hatcher        Bondra/Cote   Elynuik\n>>Winnipeg Jets           Selanne        Selanne       Druce\n>\n>                                                      ^^^^^^^^\n>                                                      weren't these two\n>                                                      traded for each\n>                                                      other?  Poetic justice.\n\nThey were, and even if Washington might consider Patty a bust, I'd rework\nthat trade in a minute.  Druce has been a complete and utter bust here,\nonly 5 goals.\n\nDaryl Turner : r.s.h contact for the Winnipeg Jets \nInternet: umturne4@ccu.umanitoba.ca  \nFidoNET: 1:348/701 -or- 1:348/4  (please route through 348/700)\nTkachuk over to Zhamnov, up to Sel{nne, he shoots, he scores! \nThe Jets win the Cup!  The Jets win the Cup!\nEssensa for Vezina!  Housley for Norris!  Sel{nne for Calder!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6265, "properties": {"category": "rec.sport.baseball", "text": "From: mse@cc.bellcore.com (25836-michael evenchick(F113))\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nOrganization: Bellcore, Livingston, NJ\nLines: 128\n\nIn article <1993Apr15.093231.5148@news.yale.edu>,  (Steve Tomassi) writes:\n|> \n|>      Hi, baseball fans! So what do you say? Don't you think he deserves it?\n|> I\n|>  \n|> mean, heck, if Dave Winfield (ho-hum) is seriously being considered for it,\n|> as\n|> \n|> is Lee Smith (ha), then why don't we give Dave Kingman a chance? Or Darrell\n|> \n|> Evans! Yeah, yeah! After the Hall of Fame takes in them, it can take in\n|> Eddie\n|> \n|> Murray and Jeff Reardon.\n\nI am trying to think how to respond to this without involving personal feeling\nor perceptions and I can not without having stats to back up my points.\nHowever, I think you approached this the wrong way. I believe all of the\npeople mentioned here deserve the hall of fame more than Dave Kingman does. I\nfeel they were all much better players. I am not saying I fell they deserve to\ngo but that they would deserve it more. \n\nIMHO \nDave Kingman - definately not. They guy only had a couple of years were he\ncould hit with atleast a respectable averag. The rest of his career I do not\nthink he was very feared by pitchers. I also do not think he did a lot for the\ngame. I mean really I am a Met fan - he was a Met for part of his career and I\nstill would not back him for the Hall of Fame.\n\nDave Winfield - I think so. He is feared by pitchers, he has had several\nseason where he hit for a respectable average and his production numbers are\n(in my opinion - without stats) better than Kingman's (probably by quite a\nbit). I also perceive him to be a leader, maybe not as much as some other\npeople but none the less a leader. I think he has made substantial\ncontributions to the game of baseball and to society. Examples of this are\nsome of the charitable things he has done (I know some of this from when he\nwas with the Yankees). I think he the type of player that kids can look up to\nand while this is definately not the only criteria for the Hall of Fame I\nthink it deserves some consideration.\n\nLee Smith - Maybe, I would have to see his stats again but he definately would\ndeserve to go before the likes of Kingman.\n\nDarrell Evans - No.\n\nEddie Murray - Maybe, He has had a very good career, he is a leader (although\na silent one), he is a good role model. Are the stats good enough? I am not\nsure - but I would once again believe they are much better than Kingman's both\nthe average as well as the power numbers (but not as good as Winfield's). Just\nthink, Eddie did not have as much publicity for most of his great years.\n\nJeff Reardon - My guess is no, but it kind of depends on his numbers. Off the\ntop of my head I would take Lee Smith first.\n\n|> \n|>      Well, in any case, I am sick and tired (mostly sick) of everybody\n|> giving\n|> \n|> Hall of Fame consideration to players that are by today's standards,\n|> marginal.\n|> \n|> Honestly, Ozzie Smith and Robin Yount don't belong there. They're both\n|> \n|> shortstops that just hung around for a long time. Big deal.\n|> \n\nWell, I strongly disagree here. Both of these guys deserve it for sure. I\ntalked about leadership above, both of these guys are leaders and have been\ninstumental in leading their teams to the post season. Robin does have very\ngood offensive numbers both average and power and Ozzie has okay numbers\noffensively. The difference with Ozzie is that if you gave him a home run for\nevery run he saved by making an incredible play at shortstop - he would have\nshattered Aaron's home run mark by now. How many of those great plays saved\ngames? How many of those great plays motivated his team to rally and win a\ngame? While I believe both of these guys have numbers, baseball is about more\nthan numbers (or at least winning at baseball is about more than numbers).\nBoth of these guys are proven stars and belong in the Hall of Fame. As does\nGeorge Brett who also belongs in this class of player.\n\n|>      Let's be a little more selective, huh? Stop handing out these honors\n|> so\n|> \n|> liberally. Save them for the guys who really deserve it. Face it, if\n|> something\n|> \n|> isn't done, there will be little prestige in the Hall of Fame anymore. When\n|> \n|> certain individuals believe that Steve Garvey or Jack Morris are potential\n|> \n|> candidates, the absurdity is apparent. Gee, can these guys even compare to\n|> \n|> the more likely future Hall of Famers like Kirby Puckett or Nolan Ryan?\n|> \n\nSteve Garvey - I am not sure, probably not but I guess I could see someone\nmaking a case for him. \n\nJack Morris - Once again not my first choice but I can see why someone might\nbring up his name.\n\nKirby Puckett - Probably. The only reason I do not say definately is he still\nhas time left in his career. If he continues doing what he has been then my\nprobably will turn into a definately.\n\nNolan Ryan - Is there really any doubt? I think I heard something about him\nhaving some 53 records (maybe they were not all good - I don't know I did not\nhear any of them just the number). He has the numbers, he has the\ncontributions to the game and community and he is a great role model. I would\nnot say that he is the best pitcher to ever pitch the game (probably not even\ntop 20) but he would be the first pitcher I would put in the Hall of Fame\nbecause of his accomplishments (no-hitters, strikeouts, respectable numbers -\neven with some weaker teams) you can go on and on. I really hope he gets ALL\nthe possible votes.\n\nSo in summing up I have 3 groups, those that belong, those that probably do\nbut I am not sure and those that I lean towards saying don't belong at least\nnot without my seeing stats and possibly hearing reasons why they should go.\n\nYes -  Winfield, Yount, Brett(not in your mail), O. Smith, Puckett and Ryan\nMaybe - Murray and L. Smith\nNo - Reardon, Garvey, Morris, Evans and definately Kingman\n\nAs I said I do not have the stats around so I do not have numbers to back this\nup - these are entirely my opinions based on my perceptions.\n\nMike\n|> \n|>                                  Q Steve\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6266, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Boom! Whoosh......\nOrganization: U of Toronto Zoology\nLines: 21\n\nIn article <1r46ofINNdku@gap.caltech.edu> palmer@cco.caltech.edu (David M. Palmer) writes:\n>>orbiting billboard...\n>\n>I would just like to point out that it is much easier to place an\n>object at orbital altitude than it is to place it with orbital\n>velocity.  For a target 300 km above the surface of Earth,\n>you need a delta-v of 2.5 km/s.  Assuming that rockets with specific\n>impulses of 300 seconds are easy to produce, a rocket with a dry\n>weight of 50 kg would require only about 65 kg of fuel+oxidizer...\n\nUnfortunately, if you launch this from the US (or are a US citizen),\nyou will need a launch permit from the Office of Commercial Space\nTransportation, and I think it may be difficult to get a permit for\nan antisatellite weapon... :-)\n\nThe threshold at which OCST licensing kicks in is roughly 100km.\n(The rules are actually phrased in more complex ways, but that is\nthe result.)\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6267, "properties": {"category": "comp.windows.x", "text": "From: duvvuri@gudbransdal.cs.odu.edu (D.V.Prakash)\nSubject: Pointer Feature\nSummary: Multiple flushing of pointers\nKeywords: Pointers, Arrows, Cursors\nNntp-Posting-Host: gudbransdal.cs.odu.edu\nOrganization: Old Dominion University, Norfolk, Va\nLines: 23\n\n\nHi\n\nI am trying to implement a pointer feature in Xlib\n\nI have multiple windows and all can take input and \nshow output simultaneously on all other displays\n\nI want to implement a pointer feature \n\nI would like to get the pointer to come up on all windows once \nI choose pointer in the menu and every one should be able\nto see it\n\nCan you give me some hints as to how I should proceed \n\n\nreplies will be greatly appreciated\n\nThank you\nPrakash\n< duvvuri@cs.odu.edu >\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6268, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Re: Lindbergh and the moon (was:Why not give $1G)\nOrganization: University of Illinois at Urbana\nLines: 42\n\nmancus@sweetpea.jsc.nasa.gov (Keith Mancus) writes:\n\n>cook@varmit.mdc.com (Layne Cook) writes:\n>> All of this talk about a COMMERCIAL space race (i.e. $1G to the first 1-year \n>> moon base) is intriguing. Similar prizes have influenced aerospace \n>>development before. The $25k Orteig prize helped Lindbergh sell his Spirit of \n>> Saint Louis venture to his financial backers.\n>> But I strongly suspect that his Saint Louis backers had the foresight to \n>> realize that much more was at stake than $25,000.\n>> Could it work with the moon? Who are the far-sighted financial backers of \n>> today?\n\n>  The commercial uses of a transportation system between already-settled-\n>and-civilized areas are obvious.  Spaceflight is NOT in this position.\n>The correct analogy is not with aviation of the '30's, but the long\n>transocean voyages of the Age of Discovery.\n\nLindbergh's flight took place in '27, not the thirties.\n\n>It didn't require gov't to\n>fund these as long as something was known about the potential for profit\n>at the destination.  In practice, some were gov't funded, some were private.\n\nCould you give examples of privately funded ones?\n\n>But there was no way that any wise investor would spend a large amount\n>of money on a very risky investment with no idea of the possible payoff.\n\nYour logic certainly applies to standard investment strategies.  However, the\nconcept of a prize for a difficult goal is done for different reasons, I \nsuspect.  I'm not aware that Mr Orteig received any significant economic \nbenefit from Lindbergh's flight.  Modern analogies, such as the prize for a\nhuman powered helicopter face similar arguments.  There is little economic\nbenefit in such a thing.  The advantage comes in the new approaches developed\nand the fact that a prize will frequently generate far more work than the \nequivalent amount of direct investment would.  A person who puts up $ X billion\nfor a moon base is much more likely to do it because they want to see it done\nthan because they expect to make money off the deal.\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n\t\t    \"Find a way or make one.\"\n\t             -attributed to Hannibal\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6269, "properties": {"category": "rec.sport.hockey", "text": "From: stimpy@dev-null.phys.psu.edu (Gregory Nagy)\nSubject: Re: Good for hockey/Bad for hockey\nArticle-I.D.: dev-null.1praf3INNj2s\nOrganization: Penn State, Null Device Department\nLines: 35\nNNTP-Posting-Host: dev-null.phys.psu.edu\n\nIn article <91548@hydra.gatech.EDU> gtd597a@prism.gatech.EDU (Hrivnak) writes:\n>>>> > >I prefer the Miami Colons myself.  Headline: FLAMES BLOW OUT COLONS, 9-1\n>>>> > Would Kevin Dineen play for the Miami Colons???\n>>>> As a Flyers fan, I resent you making Kevin Dineen the butt of your\n>>>> jokes:-)!\n>>> Aw, just take a moment to digest it and I'm sure you'll see the humour...\n>>If anybody is having problems following the thread be sure to ask the\n>>origonal poster to rectify your misunderstanding.\n>\n>\tWhat about his rectum?\n\nIt's bad jokes like that which draws crohns, I mean groans from the crowd...\nDon't bother looking it up in the appendix, it's useless anyway.\n         \nJust one more word of advice...\n\nIf you go to a Miami game, stay away from any foods made with \"natural casings\"\n\n:)\n--\n\n      __-----__     _______________________\n     / _______ \\   /                       \\\n    |_// \\/ \\ \\_| / Hockey! Hockey! Hockey! \\\n    /__|O||O|__U\\ \\   Joy!    Joy!    Joy!  /\n   |/_ \\_/\\_/ _U | \\_______________________/\n   | | (____) | ||  //    Stimpson J Kat\n   \\/\\___/\\__/  // //     stimpy@dev-null.phys.psu.edu\n   (_/  _5_  ~~~| //      nagy@physci.psu.edu           \n    |   \\*/     |\\/       nagy@cs.psu.edu\n     \\___v_____/_/        nagy@crayola.cs.psu.edu\n      \\____/---//         nagy@love-shack.com\n     __|| _-----               and oh yeah...              \n    (____(____)           GGN100@psuvm.[psu.edu,bitnet]     \n     ~~~~ ~~~~\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.296+0000", "event": "documents", "entityId": 6270, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Symbiotics: Idiots-Antisemitism\nOrganization: Division of Applied Sciences, Harvard University\nLines: 27\n\n\nIn article <1483500355@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n\n>From: Center for Policy Research <cpr>\n>\n>Zionism and the Holocaust\n>-------------------------- by Haim Bresheeth\n>\n>The first point to note regarding the appropriation of the history\n>of the Holocaust by Zionist propaganda is that Zionism without\n>anti-semitism is impossible. Zionism agrees with the basic tenet\n>of anti-Semitism, namely that Jews cannot live with non- Jews.\n\n\tWrong.  Zionism *acknowledges* the fact that anti-Semites\nexist, and prevent Jews from living in peace.  That does not mean we\nagree that Jews are all greedy, that Jews kill Christian Children,\ncommited deicide, or anything else.  We acknowledge that there are\nmorons out there who do believe these things.\n\nAdam\n\n\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6271, "properties": {"category": "rec.motorcycles", "text": "From: karr@cs.cornell.edu (David Karr)\nSubject: Re: BMW MOA members read this!\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nDistribution: usa\nLines: 32\n\nIn article <3102@shaman.wv.tek.com> harmons@.WV.TEK.COM (Harmon Sommer) writes:\n>>>> As a new BMW owner I was thinking about signing up for the MOA, but [...]\n>>>let my current membership lapse when it's up for renewal.\n>>[...] hints on what will keep the organization in business that long.\n>\n>Become an activist: campaign for an MC insurance program; for universal\n>driver/rider training before licensing. Pick a topic dear to your heart\n>and get the organization to act on it. Barnacles don't move ships.\n\nYou're obviously not referring to any of the three above-quoted\nindividuals, because barnacles don't each send $20 to the crew of the\nship to keep it moving.\n\n\"Get the organization to act on it\" is easy to say, but says little\nabout what one really can and should do.  What the organization\nactually will do is largely determined by the president and directors,\nas far as I can see.  That's what makes it so important to vote in an\nelection of officers.\n\nIt does strike me that the BMWMOA is a lot less politically active (in\nthe state and national arenas, not infighting) than other M/C\norganizations.  Should we change this?  Or just join the other groups\nthat already are in politics?\n\n(Incidentally, the political hazards to motorcycle riders in the US at\nthe moment don't compare to the problems of some other groups like gun\nowners.  Just try to take up target pistol shooting in the Northeast\nor California, and I bet you'll wish you only had to worry about\nwearing a helmet.  (Why does every thread on rec.moto eventually come\naround to guns?))\n\n-- David Karr (karr@cs.cornell.edu)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6272, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Drinking and Riding\nFrom: bclarke@galaxy.gov.bc.ca\nOrganization: BC Systems Corporation\nLines: 11\n\nIn article <C514ut.A5I@magpie.linknet.com>, manes@magpie.linknet.com (Steve Manes) writes:\n{drinking & riding}\n> It depends on how badly you want to live.  The FAA says \"eight hours, bottle\n> to throttle\" for pilots but recommends twenty-four hours.  The FARs specify\n> a blood/alcohol level of 0.4 as legally drunk, I think, which is more than\n> twice as strict as DWI minimums.\n\n0.20 is DWI in New York?  Here the limit is 0.08 !\n-- \nBruce Clarke       B.C. Environment\n                   e-mail: bclarke@galaxy.gov.bc.ca\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6273, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ebosco@us.oracle.com (Eric Bosco)\nSubject: Windows 3.1 keeps crashing: Please HELP\nNntp-Posting-Host: monica.us.oracle.com\nReply-To: ebosco@us.oracle.com\nOrganization: Oracle Corp., Redwood Shores CA\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\nLines: 41\n\n\nAs the subjects says, Windows 3.1 keeps crashing (givinh me GPF) on me of  \nlate.  It was never a very stable package, but now it seems to crash every  \nday.  The worst part about it is that it does not crash consistently: ie I  \ncan't reproduce crashes, and they are not always GPF's in the same  \napplication. Sometimes I can recover by simply closing the application  \nthat caused an error, but other times, windows acts very strange, and I  \nneed to re-boot.\n\nSome background:  I have a Leading Edge 486sx25 with Phoenix BIOS.  When I  \nfirst got it it had 4Mg of memory.  It ran windows fine (not too many  \nGPF's).  Then, a couple of weekends ago, I installed Lotus 123 for windows  \n(with ATM), a game card and an additional 4  1Mg SIMMS.  The Leading edge  \nmachine is kind of strange, in that it has the IDE controler built into  \nthe motherboard, the CPU is actually on a sparate board that plugs into  \nthe motherboard and the SIMMS it uses are Macintosh SIMMS! Apparently I  \nwas told that the Leading Edge had the parity bit built into the mother  \nboard.  The original 4Mg 80ns SIMMS where of the 2 chip variety from  \nSAMSUNG, and the ones I installed are 8 chip SIMMS. They are recognized  \nfine by the BIOS RAM check. The game card is a generic $20 gamecard.\n\nThe reason why I mention the hardware like this is that sometimes  \nrebooting the machine using the reset button or ctl-alt-del still leaves  \nthe machine kind of flaky, but turning it on and off doesn't. \n\nI haven't tried taking out the RAM or the game card, because as I said  \nthese GPF are not reproducible at will.  I have gone through and entire  \nday using the computer with no problems and then I might get 5 or so GPF's  \nin the sppace of 20 minutes?\n\nWhat can I do.  This situation is most annoying... Are there any good  \ndiagnostic tools for hardware? Do you think that this might be a software  \nproblem (ie EMM386 etc.)? If it helps, i have manage to get GPF's on After  \nDark, quicken, Paint shop pro. A lot of them have been in user.exe or  \ngdi.exe.\n\nAny help is truly appreciated.....\n\n-Eric\n\nebosco@us.oracle.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6274, "properties": {"category": "talk.politics.guns", "text": "From: mhamilto@Nimitz.mcs.kent.edu (The Lawnmowerman)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nKeywords: Nata thing !!\nNntp-Posting-Host: nimitz.mcs.kent.edu\nReply-To: Matthew Hamilton\nOrganization: Kent State University CS\nLines: 68\n\nIn article <93109.13404334AEJ7D@CMUVM.BITNET>, <34AEJ7D@CMUVM.BITNET> writes:\n> I will be surprised if this post makes it past the censors,\n> but here goes:\n> \n> Monday, 19 April, 1993 13:30 EDT\n> \n>                     MURDER  MOST  FOUL!!\n> \n> CNN is reporting as I write this that the ATF has ignited all\n> the buildings of the Branch Dividian ranch near Waco, TX. The\n> lies from ATF say \"holes were made in the walls and 'non-lethal' tear\n> gas pumped in\". A few minutes after this started the whole thing went up.\n> ALL buildings are aflame. NO ONE HAS ESCAPED. I think it obvious that\n> the ATF used armored flame-thrower vehicles to pump in unlit\n> napalm, then let the wood stove inside ignite it.\n> \n> THIS IS MURDER!\n> \n> ATF MURDERERS!  BUTCHERS!!\n> \n> THIS IS GENOCIDAL MASS-SLAUGHTER OF INNOCENT PEOPLE, INCLUDING CHILDREN!\n> \n> I have predicted this from the start, but God, it sickens me to see\n> it happen. I had hoped I was wrong. I had hoped that there was\n> still some shred of the America I grew up with, and loved, left\n> alive. I was wrong. The Nazis have won.\n> \n> I REPEAT, AS OF THIS TIME THERE ARE **NO  SURVIVORS**!\n> \n> God help us all.\n> \n> \n> PLEASE CROSSPOST -- DON'T LET THEM GET AWAY WITH THE SLAUGHTER OF THE CHILDREN!\n> \n> \n> W. K. Gorman - an American in tears.\n\nFlame on!!\n\nIs this guy serious????\n\nIf he would ever really pay attention to the news (oops I forgot that the media\n   for the most part loves to jump right on top of a story before all the facts \n   are known, as well as to manipulate what we see and thus what we believe). \n   Any ways one of Koresh's DEVOTED followers that DID I REPEAT DID survive this\n   \"GENOCIDAL MASS-SLAUGHTER OF INNOCENT PEOPLE\".  Besides there are nine \n   survivors in the burn-unit of the local hospital and was reported that David\n   was in one of the towers when the shit hit the fan.  Besides, a majority of \n   these children were children that he was supposed to have been the father of,\n   this then makes them bastard children to a sacraligious zeloit (sp).  Also\n   someone should have told David and his followers that if they can't the heat\n   then they should stay out of the kitchen!! (pun intended)\n\nFlame off\n\n\" Aaah Daniaalson yah wanna fight,  fight me!!\"      \n-- \n+----------------------------------------------------------------------------+\n| Matthew R. Hamilton   | mhamilto@mcs.kent.edu    |      A.K.A              |\n| CS/ Physics Major     | 1499h751@ksuvxb.kent.edu |   (The Lawnmowerman)    |\n| Kent State University\t| 1299h751@ksuvxb.kent.edu |\t\t\t     |\n+----------------------------------------------------------------------------+\n|                                                                            |\n|                                                                            |\n|      Look here for future advice.quotes.sayings.jibberish.philosohy        |\n|                                                                            |\n+----------------------------------------------------------------------------+\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6275, "properties": {"category": "sci.space", "text": "From: kjenks@gothamcity.jsc.nasa.gov\nSubject: Re: Shuttle oxygen (was Budget Astronaut)\nOrganization: NASA/JSC/GM2, Space Shuttle Program Office \nX-Newsreader: TIN [version 1.1 PL8]\nLines: 29\n\n: henry@zoo.toronto.edu (Henry Spencer) writes:\n\n: >There is an emergency oxygen system that is capable of maintaining a\n: >breathable atmosphere in the cabin for long enough to come down, even\n: >if there is something like a 5cm hole in the wall that nobody tries\n: >to plug.\n\nJosh Hopkins (jbh55289@uxa.cso.uiuc.edu) replied:\n: Wow.\n\n: Double wow.  Can you land a shuttle with a 5cm hole in the wall?\n\nPersonnally, I don't know, but I'd like to try it sometime.\n\nProgrammatically, yes, we can land an Orbiter with a 5 cm hole in\nthe wall -- provided that the thing which caused 5 cm hole didn't\ncause a Crit 1 failure on some of the internal systems.  There are\na few places where a 5 cm hole would cause a Bad Day -- especially\nif the 5 cm hole went all the way through the Orbiter and out the\nother side, as could easily happen with a meteor strike.  But a\nhole in the pressure vessel would cause us to immediately de-orbit\nto the next available landing site.\n\n-- Ken Jenks, NASA/JSC/GM2, Space Shuttle Program Office\n      kjenks@gothamcity.jsc.nasa.gov  (713) 483-4368\n\n     \"NASA turns dreams into realities and makes science fiction\n      into fact\" -- Daniel S. Goldin, NASA Administrator\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6276, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenian admission to the crime of Turkish Genocide.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 34\n\nSource: \"Men Are Like That\" by Leonard Ramsden Hartill. The Bobbs-Merrill\nCompany, Indianapolis (1926). (305 pages). \n(Memoirs of an Armenian officer who participated in the genocide of 2.5 \n million Muslim people)\n\n\np. 19 (first paragraph)\n\n\"The Tartar section of the town no longer existed, except as a pile of\n ruins. It had been destroyed and its inhabitants slaughtered. The same \n fate befell the Tartar section of Khankandi.\"\n\np. 130 (third paragraph)\n\n\"The city was a scene of confusion and terror. During the early days of \n the war, when the Russian troops invaded Turkey, large numbers of the \n Turkish population abandoned their homes and fled before the Russian \n advance.\"\n\np. 181 (first paragraph)\n\n\"The Tartar villages were in ruins.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6277, "properties": {"category": "sci.med", "text": "From: debbie@csd4.csd.uwm.edu (Debbie Forest)\nSubject: Re: Hismanal, et. al.--side effects\nOrganization: Computing Services Division, University of Wisconsin - Milwaukee\nLines: 19\nNNTP-Posting-Host: 129.89.7.4\n\nIn article <1993Apr21.231301.3050@seas.gwu.edu> sheryl@seas.gwu.edu (Sheryl Coppenger) writes:\n<In article <1993Apr21.024103.29880@spdcc.com> dyer@spdcc.com (Steve Dyer) writes:\n<>Hismanal (astemizole) is most definitely linked to weight gain.\n<>It really is peculiar that some antihistamines have this effect,\n<>and even more so an antihistamine like astemizole which purportedly\n<>doesn't cross the blood-brain barrier and so tends not to cause\n<>drowsiness.\n<\n<The original poster mentioned fatigue.  I had that too, but it was\n<mostly due to the really bizarre dreams I was having -- I wasn't getting\n<any rest.  My doctor said that was a common reaction.  If astemizole\n<doesn't cross the blood-brain barrier, how does it cause that side\n<effect?  Any ideas?\n\nIt made me really BITCHY for the first few weeks.  Now that I think about\nit I was having some bizarre dreams too.  My doctor said it made him feel\nlike he had to be DOING something all the time.  But if you keep taking it,\nafter a few weeks these symptoms seem to go away, he said hang in there.  \nI did and they did.  \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6278, "properties": {"category": "talk.politics.misc", "text": "From: dans@uxa.cso.uiuc.edu (Dan S.)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: University of Illinois at Urbana\nLines: 51\n\nbrian@gab.unt.edu (Brian \"Drakula\" Stone) writes:\n\n>>The article also contains numbers on the number of sexual partners.\n>>The median number of sexual partners for all men 20-39 was 7.3.\n>>Compared to the table I have already posted from Masters, Johnson,\n>>and Kolodny showing male homosexual partners, it is apparent that\n>>homosexual men are dramatically more promiscuous than the general\n>>male population.  It's a shame that we don't have a breakdown for\n>>straight men vs. gay/bi men -- that would show even more dramatically\n>>how much more promiscuous gay/bi men are.\n>>-- \n\n>Isn't is funny how someone who seems to know nothing about homosexuality \n>uses a very flawed (IMHO) source of information to pass jusgement on all \n>homosexual and bisexual men.  It would seem more logical to say that since \n>the heterosexual group of men is larger then the chances of promiscuity \n>larger as well.  In my opinion, orientation has nothing to do with it.\n\nI don't understand what you are getting at here.  If the chances of \npromiscuity are larger, yet the rate of promiscuity is lower in the heterosexual\ncommunity, doesn't that imply that the homo/bi sexual population is then \neven more promiscuous than the raw statistics imply?  \n(No axe to grind here I'm just a scientist and I hate to see statistics abused.)\n\n>Men are men and they all like sex.  I am a gay male.  I have had sex three \n>times in my life, all with the same man.  Before that, I was a virgin.\n\nI am a hetero man and have had sex with one woman in my life (my wife).  It is \nvery pleasing to me to be able to say that.  I hope you have the same feeling\nas I do.  I also wish that you could (if you wanted) experience the joys and\ntrials of being committed to someone for life (there is something about marriage\nthat makes the commitment much greater than one might expect).\n\n>So... whose promiscuous?\n\n>Just because someone is gay doesn't mean they have no morals.  Just because \n>someone is heterosexual doesn't mean they do.  Look at the world....  \n>Statistics alone prove that most criminals are by default hetero...\n\nDon't forget about the culture.  Sadly, we don't (as a society) look upon\nhomosexuality as normal (and as we are all too well aware, there are alot\nof people who condemn it).  As a result, the gay population is not encouraged\nto develop \"non-promiscuous\" relationships.  In fact there are many roadblocks\nput in the way of such committed relationships.  It is as if the heterosexual\ncommunity puts these blocks there so as to perpetuate the claim that gays \nare immoral.  \"My, if we allowed gays to marry, raise children ... we might\njust find out they're as moral as we are, can't have that can we?\" \n\nJust some thoughts.  Flame away. :)\n\nDan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6279, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Re: DID HE REALLY RISE???\nOrganization: The Claremont Graduate School\nLines: 34\n\nIn article <Apr.19.05.11.36.1993.29109@athos.rutgers.edu>, ata@hfsi.hfsi.com ( John Ata) writes:\n\n> I think you are vastly oversimplifying things. We know that early Christians\n> suffered totures because of their witness to Christ.  For example:\n\n[ ACT 5:40 - 41 ]\n\n> It appears that the Jewish rulers of that time had a particular aversion\n> to even hearing Jesus's name.\n...\n> Finally, the first apostle's death, James of Zebedee was certainly\n> not by Rome's hand any more than the first martyr Stephen. \n...\n> The problem was that if one believed in the Resurrection, then one\n> must believe in Jesus as truly being the Son of God and what He\n> stood for and preached during His ministry on Earth.  That would\n> have been extremely difficult for some people, especially those\n> that had plotted to kill Him. \n\nThe basic problem with your argument is your total and complete reliance on\nthe biblical text.  Luke's account is highly suspect (I would refer you to\nthe hermeneia commentary on Acts).  Moreover Luke's account is written at\nleast 90 years after the fact.  In the meantime everyone he mentions has died\nand attempts to find actual written sources behind the text have come up\nwith only the we section of the later portion of acts as firmly established.\nMoreover, Pauls account of some of the events in Acts (as recorded in \nGalatians) fail to establish the acts accounts. \n\nWhat we need, therefore, is a reliable text, critically appreciated, which\ndocuments the death of Christians for belief in the Resurrection.  I would\nsuggest you look at some greek and roman historians.  I think you will be\ndisapointed.\n\nrandy\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6280, "properties": {"category": "comp.windows.x", "text": "From: zack@netcom.com (Zack T. Smith)\nSubject: Strange exposure problem\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 19\n\nHi, \n\nI'm trying to write a Motif program on an Interactive Unix machine, and I'm\nobserving very strange behavior when my program attempts to expose a\nDrawingArea. Namely, some Xlib operations work, and some do not. In\nparticular, the expose consist of two XFillRectangle calls followed by some\nXDrawPoint calls, and for reasons unknown to me the point calls are failing\nwhenever a pulldown or popup up menu is (clicked on and) moved in the\nrightward direction over the drawing area, but after the move, is still on\nsome part of the drawing area. This also happens less consistently when the\npulldown/popup is moved in the leftward direction.\n\nAssuming that my code is not doing anything incredibly odd, is this a server\nbug?\n\nThanks,\n\nZack T. Smith\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6281, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Cookamunga Tourist Bureau\nLines: 20\n\nIn article <1993Apr20.143754.643@ra.royalroads.ca>, mlee@post.RoyalRoads.ca\n(Malcolm Lee) wrote:\n> I understand and sympathize with your pain.  What happened in Waco was a very\n> sad tradgedy.  Don't take it out on us Christians though.  The Branch\n> Davidians were not an organized religion.  They were a cult led by a ego-maniac\n> cult leader.  The Christian faith stands only on the shoulders of one man,\n> the Lord of Lords and King of Kings, Jesus Christ.   BTW, David Koresh was NOT\n> Jesus Christ as he claimed.\n\nThe interesting notion is that (I watched TV tonight) Koresh never\nclaimed officially to be Jesus Christ. His believers hoped that \nhe would be, but he never took this standpoint himself.\n\nHe was more interested in breaking the seven seals of Revelation,\nand make sure that Armageddon would start. Well it did, and 19\nchildren died, and no God saved them.\n\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6282, "properties": {"category": "rec.sport.hockey", "text": "From: ragraca@vela.acs.oakland.edu (Randy A. Graca)\nSubject: Re: Wings will win\nOrganization: Oakland University, Rochester, Michigan, U.S.A.\nLines: 47\nNNTP-Posting-Host: vela.acs.oakland.edu\n\ngballent@hudson.UVic.CA (Greg  Ballentine) writes:\n\n>All of this is fine.  I never said that Murray was a bad GM.  I merely said\n>that he isn't the best GM in hockey- or even a contender for that honor.\n>If Murray is as great as you claim- the Wings would have won the Stanley Cup\n>by now- probably more than once.  If he was as great a GM as you claim\n\nI think you missed one of my points there.  It takes *more* than a great\nGM to win a stanley cup, even once.  Some of the guys on the list you\ngave earlier never won one.  I agree that you and I could probably argue\nback and forth for days to no avail about who is the best GM in hockey-\nthat is a matter of opinion, and who is to say my opinion is any better \nthan yours or yours than mine?  But the point of my *original* original\npost (if not well stated) was that Murray has the GM abilities but not\nthe coaching abilities.  Which leads to below:\n\n>and he was as poor a coach as you claim- he would have been intelligent\n>enough to hire the coach to push the team to the next level of success.\n\nI think at this point there's a personal, emotional element involved here\nwhich transcends Murray's logical thought.  As outsiders, it's fine for \nus to say, \"He should hire a different coach.\"  In fact, he has talked about\ndoing so in the past.  But, the press (here in Detroit, at least) has so\nbuilt up this business about Murray never getting past the second round of\nthe playoffs as a coach, that I think he has taken it upon himself to \nprove to the world that he *is* capable of coaching a team past the second\nround.  He needs to, as the papers say, \"get that monkey off his back.\"\nSo it becomes a matter not of intelligence, but of pride.  Is it foolish\nto let pride stand in the way of sound logic?  Perhaps, but we're all\na little that way from time to time.  I think eventually he'll step down\nfrom behind the bench and concentrate on his GM duties, and the team will\nimprove as a result.\n\nI think his coaching duties take away time he might have otherwise spent\non GM work.  In that sense, once he steps down as coach, we'll see how\ngood of a GM he really is.\n\n>But Murray is an average (unspectacular) NHL coach and a pretty good GM\n>so none of this is true anyway.\n\nI may not agree with everything you've said, but it's been fun discussing\nit with you.\n\n>Gregmeister\n\n--Randy\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6283, "properties": {"category": "rec.motorcycles", "text": "From: karr@cs.cornell.edu (David Karr)\nSubject: Re: Fortune-guzzler barred from bars!\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 23\n\nIn article <C5qtvL.M73@dartvax.dartmouth.edu> Russell.P.Hughes@dartmouth.edu (Knicker Twister) writes:\n>In article <1993Apr19.141959.4057@bnr.ca>\n>npet@bnr.ca (Nick Pettefar) writes:\n>\n>> With regards to the pub brawl, he might have a history of such things.\n>> Just because he was a biker doesn't make him out to be a reasonable\n>> person.  Even the DoD might object to him joining, who knows?\n\nIf he had a history of such things, why was it not mentioned in the\narticle, and why did they present the irrelevant detail of where he\ngot his drinking money from?\n\nI can't say exactly who is at fault here, but from where I sit is\nlooks like we're seeing the results either of the law going way out\nof hand or of shoddy journalism.\n\nIf the law wants to attach strings to how you spend a settlement, they\nshould put the money in trust.  They don't, so I would assume it's\nperfectly legitimate to drink it away, though I wouldn't spend it that\nway myself.\n\n-- David Karr (karr@cs.cornell.edu)\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6284, "properties": {"category": "sci.crypt", "text": "From: eldar@fraser.sfu.ca (Danny Eldar)\nSubject: Need help !!\nKeywords: Firewall gateway model, Kerberos\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 14\n\nI am currently writing a paper on computer protocols security. I would \nappreciate your help.  I currently have no insight into these topics except\nthat they relate to security in multilevel security network.  Please semd me\nany references, books, FAQs or contact persons names and Internet addresses.\nThe topics I am interested in:\n1.  The \"firewall gateway model\" as implemented in Internet gateways.\n2.  Kerberos Authentication Service\n\nPlease send me a private e-mail at eldar@sfu.ca and/or post it on the board.\n\nThanks a lot,\n\n      Danny \n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6285, "properties": {"category": "comp.sys.mac.hardware", "text": "From: egaillou@etu.gel.ulaval.ca (Eric Gailloux)\nSubject: A StyleWriter II question\nNntp-Posting-Host: miniac.etu.gel.ulaval.ca\nOrganization: Universite Laval\nLines: 3\n\nI just read an article on the SWII. One thing puzzles me: the article says the\nSWII is a serial-only device. Does that mean I'll have to unplug my modem each\ntime I want to print something???\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6286, "properties": {"category": "soc.religion.christian", "text": "From: dwatson@cser.encore.com (Drew Watson)\nSubject: Ethics vs. Freedom\nOrganization: Encore Computer Corporation\nLines: 70\n\nBeing a parent in need of some help, I ask that you bear with me while I\ndescribe the situation which plagues me...\n\nI am a divorced father. Chance would have it that \"my weekend\" with my \ndaughter has fallen upon Easter Weekend this year.\n\nAlthough I am Presbyterian, I had married a Catholic woman. We decided\nthat the Catholic moray of indoctrination of the spouse into the faith\nwas too confining (and restrictive due to time as we had already set a\ndate), and we were married in a Christian Church which was non-denominational.\n\nDuring the years of our marriage, we did not often attend church. \n\nWhen our daughter was born, some years later, my wife insisted that she \nbe baptised as Catholic. This wasn't a problem with me.\n\nDuring a separation of five years, my ex-wife was taken ill with a disease\nthat affected her mental capacities. She was confined to a mental ward for\ntwo months before it was diagnosed. It has since been treated \"effectively\".\n\nIn other words, professionals have deemed her a functioning member of society.\n\nDuring the recuperation, my ex-wife has embraced Buddism. Her influence over\nmy daughter has been substantial, and has primarily allowed me only Saturday\nvisitation for a number of years. During this period I have read Bible study\nbooks to my daughter, and tried to keep her aware of her Christian heritage.\n\nLast fall, our divorce was finalized after a year of viscious divorce hearings.\nAt that time I was awarded visitation rights every other weekend. At that time,\nI started taking my daughter to church quite often, although not every weekend.\nI did this to attempt to strengthen the Christian ethic and expose her to a\nreligious community.\n\nToday, Easter Sunday, I took my daughter to church. When it came time for \nCommunion, my daughter took the bread (The body of Christ) but left the wine\n(The blood of Christ) professing that she was too young for wine. She then\nballed the bread up in her hand and tried to descretely throw it under the\npew in front of us.\n\nI feel this was a slap in the face to me, my religion, and an afront to her\nreligious heritage. It can be construed as breaking several of the commandments\nif you try. I really felt dishonored by the action.\n\nMy daughter is only nine years old, but I think she should have been old and\nmature enough to realize her actions. I have difficulty blaming her directly\nfor religious teachings her mother swears to, but when I discussed this with\nmy daughter she made it clear she believed in Buddhism and not Christianity.\n\nMy initial response of anger (moderated) was to suggest if there is no faith\nin Christ then why does she celebrate Easter, or Christmas? I suggested I\nwould never force her to practice my religious beliefs by celebrating holidays\nwith her again.\n\nI do not want to \"drive her from the fold\", and would be willing to allow her\nto continue practicing Buddhism (as though I had a choice seeing her only\nfor two days out of fourteen) but I want her to want to embrace Christianity.\n\nAny suggestions?\n\nIf you have a response, please e-mail me a copy. (I'm not a regular reader\nof this newsgroup.) (Naturally, feel free to post too!)\n\nThanks, and I hope you've had a happy Easter.\n\nDrew\n\n-- \nDrew Watson                 Systems analysis             Encore Computer Corp\ndwatson@encore.com     (301)497-1800 || (703)691-3500       Customer services\n=============================================================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6287, "properties": {"category": "rec.motorcycles", "text": "From: mlj@af3.mlb.semi.harris.com (Marvin Jaster )\nSubject: FOR SALE\nNntp-Posting-Host: sunsol.mlb.semi.harris.com\nOrganization: Harris Semiconductor, Melbourne  FL\nKeywords: FOR SALE\nLines: 46\n\nI am selling my Sportster to make room for a new FLHTCU.\nThis scoot is in excellent condition and has never been wrecked or abused.\nAlways garaged.\n\n\t1990 Sportster 883 Standard (blue)\n\n\tfactory 1200cc conversion kit\n\n\tless than 8000 miles\n\n\tBranch ported and polished big valve heads\n\n\tScreamin Eagle carb\n\n\tScreamin Eagle cam\n\n\tadjustable pushrods\n\n\tHarley performance mufflers\n\n\ttachometer\n\n\tnew Metzeler tires front and rear\n\n\tProgressive front fork springs\n\n\tHarley King and Queen seat and sissy bar\n\n\teverything chromed\n\n\tO-ring chain\n\n\tfork brace\n\n\toil cooler and thermostat\n\n\tnew Die-Hard battery\n\n\tbike cover\n\nprice: $7000.00\nphone: hm 407/254-1398\n       wk 407/724-7137\nMelbourne, Florida\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6288, "properties": {"category": "alt.atheism", "text": "From: timmbake@mcl.ucsb.edu (Bake Timmons)\nSubject: Re: Amusing atheists and agnostics\nLines: 32\n\n\nMaddi Hausmann chirps:\n\n>timmbake@mcl.ucsb.edu (Bake Timmons) writes: >\n\n>>First of all, you seem to be a reasonable guy.  Why not try to be more >honest\n>>and include my sentence afterwards that\n\n>Honest, it just ended like that, I swear!\n\nThat's nice.\n\n>Hmmmm...I recognize the warning signs...alternating polite and\n>rude...coming into newsgroup with huge chip on shoulder...calls\n>people names and then makes nice...whirrr...click...whirrr\n\nYou forgot the third equality...whirrr...click...whirrr...see below...\n\n>Whirr click whirr...Frank O'Dwyer might also be contained\n>in that shell...pop stack to determine...whirr...click..whirr\n\n>\"Killfile\" Keith Allen Schneider = Frank \"Closet Theist\" O'Dwyer = ...\n\n= Maddi \"The Mad Sound-O-Geek\" Hausmann\n\n...whirrr...click...whirrr\n\n--\nBake Timmons, III\n\n-- \"...there's nothing higher, stronger, more wholesome and more useful in life\nthan some good memory...\" -- Alyosha in Brothers Karamazov (Dostoevsky)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6289, "properties": {"category": "misc.forsale", "text": "From: myoakam@cis.ohio-state.edu (micah r yoakam)\nSubject: BOAT for SALE\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 14\nDistribution: USA\nExpires: +60days\nNNTP-Posting-Host: eucalyptus.cis.ohio-state.edu\n\nBOAT For SALE\n1989 23' IMPERIAL FISHERMAN featuring\n        Walkaround Cuddy Cabin, 305 V8 with VOLVO DUO PROP OUTDRIVE /\\/\\/\\/\nAM-FM Cassette Stereo, VHF RADIO, 4x6 HUMMINGBIRD Fishfinder, ALL  Safty\nequipment, Covers, and MUCH MORE.  \n        18000 LB.  Capacity\n        includes Storage Trailer\n        Hardly used:  LESS Than 100 Hrs\n\nAsking: $15,000 OR Best OFFER.\nFor Further information contact Gerald at 1-(419)-756-2950\n                                        Mansfield, OH\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6290, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bchase@bigwpi.WPI.EDU (Bret Chase)\nSubject: Re: PDS vs. Nubus (was Re: LC III NuBus Capable?)\nOrganization: Worcester Polytechnic Institute\nLines: 44\nNNTP-Posting-Host: bigwpi.wpi.edu\n\nIn article <C5MqK0.F29@liverpool.ac.uk> wis@liverpool.ac.uk (Mr. W.I. Sellers) writes:\n>Bill Higgins-- Beam Jockey (higgins@fnalf.fnal.gov) wrote:\n>: In article <C5KzLs.KKB@dartvax.dartmouth.edu>, hades@coos.dartmouth.edu (Brian V. Hughes) writes:\n>: > mmiller@garnet.msen.com (Marvin Miller) writes:\n>: >>My friend recently purchased a LC III and he wants to know if there is\n>: >>such a demon called NuBus adapter for his PDS slot? \n>\n>: > The LC family of Macs can only\n>: > use PDS cards. They are not able to use NuBus.\n>\n>: Ah, but why?  Can some technically-hip Macslinger tell us what the\n>: difference is between PDS and Nubus?  \n>\n>: Is it impossible to make a gadget that plugs into PDS and ends in a\n>: Nubus card cage?  At least, Marvin's friend has not been able to\n>: locate one and neither have I.  What is the fundamental reason for\n>: this?\n>\n>I think that there do exist NuBus expansion cages (I'm sure I've seen\n>them advertised occassionally), but I think that the main problem is that\n>they cost much more than the difference in price between say a LC and IIvx\n>so unless you need lots of NuBus slots its not worth the bother.\n>\n>(Of course, it may be that these extra boxes are so expensive because\n>no one buys them because they are so expensive...)\n>\n>NuBus technology isn't a special Apple Proprietry thing (I have this\n>sneaky feeling that it is licensed from Texas Instruments???) so there\n>is no problem building an expansion box.\n\nApple uses the IEEE Nubus-90 standard for their 32 bit backplane bus.\n(I got this from a technote that I reada couple of weeks ago)\n\n>>>>>>>>>>other stuff deleted<<<<<<<<<\n\nHope this helps,\nBret Chase\n\n\n-- \ninternet:bchase@wpi.wpi.edu\t\t\tMacintosh!\nbellnet: (508) 791-3725                         Smile! It won't kill you!\nsnailnet: wpi box 3129                          :) :) :) :) :) :) :) :)\n          100 institute rd.\t\t\tWorcester, MA 01609-2280\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6291, "properties": {"category": "rec.autos", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: Re: No-Haggle Deals...Save $$???\nNntp-Posting-Host: wind.bellcore.com\nReply-To: jchen@ctt.bellcore.com\nOrganization: Bell Communications Research\nDistribution: usa\nLines: 2\n\nA local dealer is advertising \"No negotiation necessary!\"\nMake you wonder...\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6292, "properties": {"category": "rec.sport.hockey", "text": "From: mdell+@pitt.edu (Michael G Dellinger)\nSubject: Re: Stop predicting\nOrganization: University of Pittsburgh\nLines: 36\n\nIn article <1993Apr16.233148.9711@rose.com> jack.petrilli@rose.com (jack petrilli) writes:\n>On April 16,  cdkaupan@eos.ncsu.edu (CARL DAVID KAUPANG) wrote:\n>\n>C(--> It is really annoying to see all of these\n>C(--> predictions on the Net.  Who really cares\n>C(--> who you think will win?  Please stop with\n>C(--> the predictions, we all know the Caps are\n>C(--> going to win the Cup, so let it go at that.\n>C(--> \n>\n>Haa!!! That's one of the things I find **most** interesting in this \n>newsgroup. It's a good way of cluing into the \"collective wisdom\" of \n>the average hockey fans. That doesn't mean they're always right, \n>however. For example, the Habs are going to come out of the Adams and \n>hardly anyone believes that right now.\n>\n>- Jack\n>\n> * It's hard to be humble when you're perfect.\n\nWell, as long as we're being unduly cocky here, It's obvious that the Pens\nwill cone out of the Patrick Division *not* the Caps, and also that\nthey will win thier third Stanley Cup. \"Collective Wisdom\" is a very polite\nway of putting it, I don't know if I'd be so gracious.\nAnd, for what it's worth (Probably not much) I think the Habs will come out of\nthe Adams too.\n                       Not new, Long absent,\n                                       Mikey D.\n__\n*****************************************************************************\nMike Dellinger\nComputer Lab Consultant\nSutherland Hall Computer Lab and Grill\nUniversity of Pittsburgh\n****************************************************************************\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.297+0000", "event": "documents", "entityId": 6293, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: fragante@unixg.ubc.ca (Gv Fragante)\nSubject: Winjet accelerator card\nOrganization: The University of British Columbia\nLines: 5\nNNTP-Posting-Host: unixg.ubc.ca\n\nAnyone familiar with this video card? What chipset does the winjet use - S3?\nAs I am in the market for a VLG video card, what is the best chipset among\nS3, Cirrus Logic and Tseng Lab (ATI is out of the question - too expensive) ?\n\nThanks.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6294, "properties": {"category": "alt.atheism", "text": "Subject: Re: Bill Conner:\nFrom: kmr4@po.CWRU.edu (Keith M. Ryan)\nOrganization: Case Western Reserve University\nNNTP-Posting-Host: b64635.student.cwru.edu\nLines: 17\n\nIn article <C4y976.MLr@darkside.osrhe.uoknor.edu> bil@okcforum.osrhe.edu (Bill Conner) writes:\n\n>Could you explain what any of this pertains to? Is this a position\n>statement on something or typing practice? And why are you using my\n>name, do you think this relates to anything I've said and if so, what.\n>\n>Bill\n\n Could you explain what any of the above pertains to? Is this a position \nstatement on something or typing practice? \n--\n\n\n       \"Satan and the Angels do not have freewill.  \n        They do what god tells them to do. \"\n\n        S.N. Mozumder (snm6394@ultb.isc.rit.edu) \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6295, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ssa@unity.ncsu.edu (S. Alavi)\nSubject: Looking for Large MONO/COLOR VGA Monitor.\nOrganization: NC State University\nLines: 12\n\n\n\tI am looking for a monitor 17\" or larger that could do 1024x748\n\twith and 8514/A card (PS2/70)\n\n\tI guess I would prefere 19\" and MONO (later becuase of lower price)\n\n\tPlease email me the brand, model, condition and asking price...\n\n\t(Please include this message for reference)\n\t======  S. Alavi    [ssa@unity.ncsu.edu]  (919)467-7909 (H)  ========\n\t\t\t\t\t\t  (919)515-8063 (W)\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6296, "properties": {"category": "talk.politics.guns", "text": "From: gs26@prism.gatech.EDU (Glenn R. Stone)\nSubject: Re: my reply to NY Times editorial \"Dear Member of the NRA\"\nReply-To: glenns@eas.gatech.edu\nOrganization: The Group W Bench\nLines: 32\n\nIn <1993Apr20.004532.23086@husc3.harvard.edu> kim39@scws8.harvard.edu (John Kim) writes:\n\n\n>as a legal gun owner, I must disagree.  Even when I don't see eye-\n>to-eye with the N.R.A. on a particular issue, they are the only\n>national group which has effectively fought for my rights to target\n>shoot, hunt, and protect myself from dangerous criminals.  \n\nOne more time.\n\nIt ain't about duck hunting.\n\nIt ain't about lone perps on lonely streets.\n\nIt's about DEFENDING OUR RIGHTS from the *GOVERNMENT*, which \nhas seen fit to ignore history and attempt once again to take\nthem from us.  They WILL SUCCEED if we don't do something NOW.\n\nThat's why I think the NRA is a bunch of WEENIES, because they\nhave FORGOTTEN that fundamental fact.\n\nPardon all my shouting, but there seem to be a whole helluva lot\nof people on Condition White, fat, dumb, and happy, sucking that\nglass teat for all they're worth.... Wake up and smell the cordite,\ngang, they're shooting at us, and it's high time we shot back,\nat least with our keyboards..... \n\nmy two bits'\n\nGlenn R. Stone (glenns@eas.gatech.edu)\nfly your flags at half staff and upside down,\nto mourn and protest the death of the BoR.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6297, "properties": {"category": "talk.religion.misc", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: Religion and homosexuality\nKeywords: being liberal\nOrganization: University of Georgia, Athens\nDistribution: usa\nLines: 18\n\nIn article <1993Apr5.182411.7621@midway.uchicago.edu> dsoconne@midway.uchicago.edu writes:\n>First of all as far as I know, only male homosexuality is explicitly\n>mentioned in the bibles, so you're off the hook there,\n\nActually, there is one condemnation of lesbian acts in the Bible, Romans\n1:26.\n\nI think. In\n>any event, there are *plenty* of people in many denominations who\n>do not consider a person's sexual identification of gay/lesbian/bisexual\n>as an \"immoral lifestyle choice\"\n\nThere are plenty who don't read the Bible.\nOr pray for that matter.\n\nLink Hudson.\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6298, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: Win31 & doublespace\nFrom: edowdy@vax1.umkc.edu\nOrganization: University of Missouri - Kansas City\nNNTP-Posting-Host: vax1.umkc.edu\nLines: 33\n\nIn article <4363@hpwala.wal.hp.com>, chrisa@hpwarr.hp.com ( Chris Almy) writes:\n> \n> \tDoublespace, although I do not trust it for my hard disks, sounds\n> \tgreat for floppies. The thouoght of having to mount the disk\n> \tis anoying but something I can deal with. The problem arises \n> \twhen under windows. Is there a way to mount and unmount while\n> \tunder windows or is this part of the upgrades soon to be \n> \tavailable from other vendors?\n> \n> \n.Chris\n\n\nI can't see why you would not trust it because it is safer than any previous\ncompression programs. It integrates into the kernal and makes it nearly\nimpossible to delete. \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6299, "properties": {"category": "sci.crypt", "text": "From: res@colnet.cmhnet.org (Rob Stampfli)\nSubject: Re: The Old Key Registration Idea...\nOrganization: Little to None\nLines: 18\n\nIn article <1qn1ic$hp6@access.digex.net> pcw@access.digex.com (Peter Wayner) writes:\n>That leads me to conjecture that:\n...\n>2) The system is vulnerable to simple phone swapping attacks\n\nI seriously doubt that any practical implementation of this proposal would\nplace the onus on the individual to register keys.  Realistically, the\nClipper-Chip will probably emit an ID code which will serve as the identifier\nwhen requesting the key fragments.  The chip manufacturer would register\nthis identifier code vs. key combination when the chip is made and the\n(uninitiated) end-user can therefore remain completely outside the loop.\nThe chip could be used in a cellular phone, a modem, or other device --\nit really makes no difference:  When the authorities detect the use of this\nencryption standard during surveillance, they would then capture the ID\nand apply for the key in order to decrypt the data.\n-- \nRob Stampfli  rob@colnet.cmhnet.org      The neat thing about standards:\n614-864-9377  HAM RADIO: kd8wk@n8jyv.oh  There are so many to choose from.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6300, "properties": {"category": "sci.electronics", "text": "From: wagner@mala.bc.ca (TOM WAGNER, Wizzard of old Audio/Visual Equipment........Nanaimo Campus)\nSubject: correction re Audio relay followup\nOrganization: Malaspina College\nLines: 12\n\nGremilins have attacked my keyboard and the correction to my followup on audio\nrelays got fouled up.  \nVarying lamp resistance, should read, \"Varying lamp voltage\"\n-- \n73, Tom\n================================================================================\nTom Wagner, Audio Visual Technician.  Malaspina College Nanaimo British Columbia\n(604)753-3245, Loc 2230  Fax:755-8742  Callsign:VE7GDA Weapon:.45 Kentucky Rifle\nSnail mail to:  Site Q4, C2.   RR#4, Nanaimo, British Columbia, Canada, V9R 5X9  \n\nI do not recyle.....   I keep everything!       (All standard disclaimers apply)\n================================================================================\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6301, "properties": {"category": "rec.sport.hockey", "text": "From: juvirtan@klaava.Helsinki.FI (Jukka A Virtanen)\nSubject: Re: Plus minus stat\nOrganization: University of Helsinki\nLines: 24\n\nIn <1993Apr16.015936.11303@ramsey.cs.laurentian.ca> maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n\n>>>Good for you.  You'd only be displaying your ignorance of\n>>>course, but to each his own...\n>> \n>>Roger, I'm not sure here, but I think \"ignorance\" is really a\n>>function of \"a lack of knowledge\" and not \"formulating an\n>>opinion\"...but hey, if you need to take a cheap shot, then by all\n>>means go ahead...that's if it makes you feel better.\n\n>To knowledgeable observers of the game my meaning is obvious.  Your\n>hockey education is not my responsibility.\n \nJust curious, Roger, but since you have such a vast knowledge of the\ngame and the league, how come you haven't made a living out of it?\nThere must be a lot of demand for expertise in the field. I'm sure\nyou'd be of great help to, say, the Leafs as an assistant coach or\na scout. Or maybe try a career as a reporter or tv commentator...\n \nI might be wrong, of course, and you already have.\n-- \nJukka A Virtanen\n                                                    juvirtan@cc.helsinki.fi\n                       University of Helsinki\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6302, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Jokes and International Relations\nSummary: Re: ISRAIL'e sicak bakmayanlara aydinlatici bir not...\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 47\n\nIn article <1993Apr19.213345.28299@freenet.carleton.ca> aa624@Freenet.carleton.\nca (Suat Kiniklioglu) [a.k.a. Kubilay Kultigin] wrote:\n\n[KK] Bugunlerde \"jewish jokes\" muhabbetlerinden esinlenerek sunu\n[KK] yazayim dedim.\n[KK]\n[KK]        \"Israel was able to divert the Jewish lobby from the Greeks,\n[KK]        for example, by persuading it that supporting the Armenian\n[KK]        resolution which came before the Senate in February 1990\n[KK]        could help sour Turco-Israeli relations. In addition, the\n[KK]        Israeli embassy in Washington was active in ensuring that the\n[KK]        resolution failed, for instance by assisting Turkish Jews to\n[KK]        travel to Wahington to underline the affinity between Israel\n[KK]        and Turkey.\n[KK]\n[KK]        There was no doubt about the debt which Turkey felt it owed\n[KK]        to Israel over this matter. Even four months before the re-\n[KK]        solution came up for consideration, as enior member of the\n[KK]        Turkish Foreign Ministry said his country was \"very grateful\"\n[KK]        to Israel, the cooperation, in his view, refelecting the \n[KK]        maturity of the bilateral relationship. The experience over\n[KK]        the Armenian issue has convinced senior figures in Turkey\n[KK]        that the pro-Israel network in Washington can indeed deliver\n[KK]        the desired results.\n[KK]\n[KK]\t[Robins Philip, \"Turkey and the Middle East\" 1991 Chathm House\n[KK]\t Papers. p.\n[KK]\n[KK]        papers p.84]\n\n\n[KK] got to go now\n\nNot so fast! You have a rather warped sense of logic! You are telling us that\nbecause Israel wishes to have good relations with Turkey even at the expense\nof Armenians or Armenia, makes it bad for Turks to tell racist jokes against \nJews. Thus, we can infer, if Israel had poor relations with Turkey, it would\nbe alright to post such horrible jokes against Jews! \n\nYou impress nobody.\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6303, "properties": {"category": "sci.electronics", "text": "From: kolstad@cae.wisc.edu (Joel Kolstad)\nSubject: Re: Laser vs Bubblejet?\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 29\n\nIn article <1993Apr20.173742.99726@ns1.cc.lehigh.edu> hl00@ns1.cc.lehigh.edu (HOU-SHENG LIN) writes:\n>Well, I'm not too sure if this would be the right place to post this, but\n>anyway, here goes:  I was just noticing that some of the current bubblejet\n>printers offers up to 360x360 resolution while a lot of lower end laser\n>printers only offer 300x300.  However, the laser printers still seems to be\n>significantly pricier than the bubblejets... how is this?  Or am I missing\n>something about the resolution thing?\n\nBubblejets often splatter a little bit, whereas LaserJets (given half-way decent\ntoner, like HP's \"Microfine\" stuff) don't.  Both produce very good output,\nbut you don't have to look too closely at the two to tell that LaserJet\noutput is definitely superior.  \n\nOn the other hand, LaserJets which haven't been maintained properly and use\nthe cheapest toner the owner could find often produce awful output, much\nworse than a bubblejet. :-)\n\nOne other thing... there are bubblejets, and then there are BubbleJets.\nThere are a few bubblejets out there that produce rather mediocre output\n(such as HP's dinky little BubbleJet), whereas most produce really good\nlooking output (such as HP's DeskJets).  IBM and Canon both produce some of\nthe really good style bubblejets.\n\n\t\t\t\t\t---Joel Kolstad\n\nP.S. -- If you're in the market for a portable bublejet printer, I can\nhighly recommend the HP Portable DeskJet, although I've heard the portable\nCanons are good too (I needed PCL support, myself).  With the DeskJet\nPortable, you even get an undocumented PCMCIA card slot!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6304, "properties": {"category": "soc.religion.christian", "text": "From: alvin@spot.Colorado.EDU (Kenneth Alvin)\nSubject: Re: Certainty and Arrogance\nOrganization: University of Colorado, Boulder\nLines: 66\n\nIn article <Apr.13.00.08.33.1993.28409@athos.rutgers.edu> kilroy@gboro.rowan.edu (Dr Nancy's Sweetie) writes:\n>Dean Velasco quoted a letter from James M Stowell, president of\n>Moody Bible Institute:\n>\n>>  We affirm the absolutes of Scripture, not because we are arrogant\n>>  moralists, but because we believe in God who is truth, who has revealed\n>>  His truth in His Word, and therefore we hold as precious the strategic\n>>  importance of those absolutes.\"\n>\n>There has been a lot of discussion, but so far nobody seems to have hit on\n>exactly what the criticism of \"arrogance\" is aimed at.\n>\n> <lots of stuff deleted>\n>\n>This is where the \"arrogance of Christians\" arises: many people believe\n>that their own personal research can give them absolute certainty about the\n>doctrines of Christianity -- they are implicitly claiming that they are\n>infallible, and that there is no possibility of mistake.\n>\n>Claiming that you CANNOT have made a mistake, and that your thinking has led\n>you to a flawless conclusion, is pretty arrogant.\n\nI agree with what Darren has to say here, but would like to add a \npersonal observation.  What I see as arrogance and the problem I have \nwith it is not a sense of personal certainty, but a lack of respect for\nothers who come to differing conclusions.  Clearly, this is not just \nChristian vs. Non-Christian; there is a whole spectrum of belief systems\nwithin Christianity.  I do not tend to argue with others about matters\nof personal faith because, like aesthetics, it is not demonstable by\nobjective means.  \n\nChoosing what to believe and rely on are important areas of personal \nsovereignty.  What bothers me is when others suggest that, in these \nmatters of faith, their specific beliefs are not only true to them \nbut are absolute and should be binding on others.  It follows from this\nthat God must give everyone the same revelation of truth, and thus \nanyone who comes to a different conclusion is intentionally choosing\nthe wrong path.  This is the arrogance I see; a lack of respect for the\nhonest conclusions of others on matters which are between them and God.\nEven a personal certainty leaves room for the beliefs of others.  It is\nuniversalizing those matters of personal faith, coupled by a proud\nnotion that one's relationship with God is superior to other's, that\nleads to arrogance.  In my honest (and nonuniversal) opinion. :-)\n\n\n>Darren F Provine / kilroy@gboro.rowan.edu\n>\"At the core of all well-founded belief, lies belief that is unfounded.\"\n>                                                    -- Ludwig Wittgenstein\n\ncomments, criticism welcome...\n-Ken\nalvin@ucsu.colorado.edu\n\n[It is certainly reasonable to ask for some humility about our own\nability to know the truth.  There are also different paths in some\nareas of practice.  But I'd like to see more clarification about what\nyou mean when you reject the idea of saying \"their specific beliefs\nare not only true to them but are absolute and should be binding on\nothers.\"  If something is true, it is true for everyone, assuming that\nthe belief is something about God, history, etc.  Of course something\nof the form \"I believe that it's best for me not to xxx\" could be true\nfor some people and not others.  I have suggested in the past that God\nmay be less concerned about doctrinal agreement than many people are.\nBut that doesn't mean I doubt that there is a difference between\ntrue and false, nor that I think there is no benefit in finding out\nwhat is true.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6305, "properties": {"category": "rec.motorcycles", "text": "From: fist@iscp.bellcore.com (Richard Pierson)\nSubject: Re: Should liability insurance be required?\nNntp-Posting-Host: foxtrot.iscp.bellcore.com\nOrganization: Bellcore\nDistribution: usa\nLines: 13\n\nIf I have one thing to say about \"No Fault\" it would be\n\"It isn't\"\n-- \n##########################################################\nThere are only two types of ships in the NAVY; SUBMARINES \n                 and TARGETS !!!\n#1/XS1100LH\tDoD #956   #2 Next raise\nRichard Pierson E06584 vnet: [908] 699-6063\nInternet: fist@iscp.bellcore.com,|| UUNET:uunet!bcr!fist  \n#include <std.disclaimer> My opinions are my own!!!\nI Don't shop in malls, I BUY my jeans, jackets and ammo\nin the same store.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6306, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: free moral agency and Jeff Clark\nLines: 47\nOrganization: Walla Walla College\nLines: 47\n\nIn article <16BB112DFC.I3150101@dbstu1.rz.tu-bs.de> I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n>From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\n>Subject: Re: free moral agency and Jeff Clark\n>Date: Thu, 15 Apr 1993 20:28:27 GMT\n>In article <healta.136.734813153@saturn.wwc.edu>\n>healta@saturn.wwc.edu (TAMMY R HEALY) writes:\n> \n>(Deletion)\n>>You also said,\"Why did millions suffer for what Adam and Ee did?  Seems a\n>>pretty sick way of going about creating a universe...\"\n>>\n>>I'm gonna respond by giving a small theology lesson--forgive me, I used\n>>to be a theology major.\n>>First of all, I believe that this planet is involved in a cosmic struggle--\n>>\"the Great Controversy betweed Christ and Satan\" (i borrowed a book title).\n>>God has to consider the interests of the entire universe when making\n>>decisions.\n>(Deletion)\n> \n>An universe it has created. By the way, can you tell me why it is less\n>tyrannic to let one of one's own creatures do what it likes to others?\n>By your definitions, your god has created Satan with full knowledge what\n>would happen - including every choice of Satan.\n> \n>Can you explain us what Free Will is, and how it goes along with omniscience?\n>Didn't your god know everything that would happen even before it created the\n>world? Why is it concerned about being a tyrant when noone would care if\n>everything was fine for them? That the whole idea comes from the possibility\n>to abuse power, something your god introduced according to your description?\n> \n> \n>By the way, are you sure that you have read the FAQ? Especially the part\n>about preaching?\n>   Benedikt\n\nI don't feel that I'm preaching. I'm just trying to answer people's \nquestions and talking about my religion, my beliefs.\nWhen it comes to what I post, I don't do it with the intent of converting \nanyone.  I don't expect for the atheists in this newsgroup to take what I \nsay with a grain of salt if they so wish.\nI just state what I beleve, they ask me how I believeit and why and we all \ngo on. \nIf that's preaching, then I'm soory and I'll get off the soapbox.\n\nTammy\n\n  \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6307, "properties": {"category": "rec.sport.hockey", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: Too Many Europeans in NHL\nOrganization: Adobe Systems Incorporated\nLines: 17\n\nIn article <1993Apr6.141557.8864@alchemy.chem.utoronto.ca> golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n>Anyways, crawl back into the hole you crawled out of...the NBA doesn't\n>care where they get basketball players from, major league baseball\n>doesn't give a damn where they get baseball players from (except Cuba,\n>that is).\n\nMLB is perfectly willing to take players from Cuba.  They just have to\ndefect first.  \n\nSort of like the situation used to be with Russian/Czech/etc hockey\nplayers, until the political situation in those countries changed.\n\nSherri Nichols\nsnichols@adobe.com\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6308, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dfeldman@lookout.mtt.it.uswc.uswest.com (David Feldman)\nSubject: Trident 8900 *CL* 1280x1024 driver?\nNntp-Posting-Host: lookout\nOrganization: U S WEST Information Technologies\nLines: 8\n\nPlease excuse if FAQ but...\nNew Trident 8900CL based card claims to have 1280x1024 support.\nDrivers with card indicate several 1280x1024 drivers on diskette.\nWindows 3.1 does not make all drivers on diskette available to\nconfiguration dialog box. Any suggestion?\nThanx; please e-mail.\ndfeldman@uswest.com\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6309, "properties": {"category": "talk.politics.guns", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: Non-lethal alternatives to handguns?\nKeywords: handgun mace pepper-spray taser tasp phaser\nLines: 24\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nIn article <Apr15.032620.75908@yuma.ACNS.ColoState.EDU>, holland@CS.ColoState.EDU (douglas craig holland) writes:\n>\n>What about guns with non-lethal bullets, like rubber or plastic bullets. Would\n>those work very well in stopping an attack?\n\nAsk the Brits.  Enough people have been killed by rubber bullets that they now\nuse them under only certain \"controlled\" circumstances.  And they are fired\nfrom something that looks like a tear gas launcher.\n\nThere are smaller rubber bullets and pellets (for shotguns).  I understand that\nthey are only intended to be discouragers, ie. for the snapping but not truly\ndangerous animal.  In general, they do not seem capable of really stopping\nsomeone who wants you or past you.  They are fired at very low muzzle velocity\n(the .38 ball round is intended for a 400fps load).  Finally, as your mother\nwarned you, you can put an eye out with that thing.  :-)\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\npyron@skndiv.dseg.ti.com          |solutions, not gestures.\nPADI DM-54909                     |\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6310, "properties": {"category": "talk.politics.mideast", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: Re: Israel's Expansion\nLines: 147\nReply-To: hallam@zeus02.desy.de\nOrganization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n\n\nIn article <1993Apr18.212610.5933@das.harvard.edu>, adam@endor.uucp (Adam Shostack) writes:\n\n|>In article <18APR93.15729846.0076@VM1.MCGILL.CA> B8HA000 <B8HA@MUSICB.MCGILL.CA> writes:\n|>\n|>>1) Is Israel's occupation of Southern Lebanon temporary?\n|>\n|>\tIsrael has repeatedly stated that it will leave Lebanon when\n|>the Lebanese government can provide guarantees that Israel will not be\n|>attacked from Lebanese soil, and when the Syrians leave.\n\nNot acceptable. Syria and Lebanon have a right to determine if\nthey wish to return to the situation prior to the French invasion\nwhere they were both part of the same \"mandate territory\" - read\ncolony.\n\nIsrael has no right to determine what happens in Lebanon. Invading another\ncountry because you consider them a threat is precisely the way that almost\nall wars of aggression have started.\n\n\n|>>2) Is Israel's occupation of the West Bank, Gaza, and Golan\n|>>temporary?\n|>\n|>\tThe three are very different issues.  Israel has stated\n|>repeatedly that it will not give up the whole Golan, but may be\n|>willing to give part of it to Syria as part of a peace agreement.\n\nAgain territorial expansion by force.\n\n\n|>\tIsrael has already annexed areas taken over in the 1967 war.\n|>These areas are not occupied, but disputed, since there is no\n|>legitamate governing body.  Citizenship was given to those residents\n|>in annexed areas who wanted citizenship.\n\nThe UN defines them as occupied. They are recognised as such by every\nnation on earth (excluding one small caribean island).\n\n\n|>\tIsrael should keep control of parts of the West Bank, IMHO.\n|>The parts that should be kept are the westernmost mountain ridge,\n|>which contain few arab towns, and many suburbs, as well as overlooking\n|>the city of Tel Aviv.  The Eastern mountain ridge should be\n|>abandonded.  This is where most of the arabs live and it is less\n|>militarily relevant.  Israel should also maintain a presence in the\n|>Jordan valley.\n\nSo the Adam thinks that peace is possible with continued occupation and \na continued military presence? That is a completely unsustainable situation\nbecause the USA is bankrupt and simply cannot afford to finance the\nIsraeli ecconomy any more. There is no money for such an occupation.\n\n\n|>>If so (for those of you who support it), why were so\n|>>many settlers moved into the territories?  If it is not temporary,\n|>>let's hear it.\n|>\n|>\tThere are a number of reasons for people to move (they were\n|>not moved, but chose to move) into disputed areas.  Note that since\n|>these moves were made by free willed human beings, not \"settlers,\" I\n|>will address two aspects of your question, why the government would\n|>allow &/or encourage them to move, and second why they did move.\n\nThey were moved in as part of a deliberate policy to prevent the return\nof the occupied territories. Machiavelli described the reasoning in the\nPrince. The clear intention was to create a constituency which the Likud\nbeleived could not be deprived of the land stolen from the indigenous\npopulation.\n\nThe pretexts under which the settlers aquired land was through the \nredefinition of much land used in common as \"public land\". The assertion\nthat the village common on which the village depends for food belongs to\nan invader simply because no individual has title is clearly an\nexcuse. When the land is used to build a condominium for aliens brought\nin to occupy the land for a foreign power there is a clear breach of the\nGeneva convention which stipulates that land use in occupied territories\nmust not be changed. \n\nNo amount of self justifying on the part of Likud and hard linner appologists\nwill change the fact that the majority of world governments, and all of\nthose that actually have any power have condemned this practice.\n\n\n|>\tThe government had a number of reasons for encouraging people\n|>to move across the green line.  They included security and politics.\n|>\n|>\tThe first reason was security.  A large Jewish presense makes\n|>it difficult for terrorists to infiltrate.  A Jewish settlements also\n|>act as fortresses in times of war.\n\nTheyu also are a liability. We are talking about civilian encampments that\nwould last no more than hours against tanks,\n\n|>\tA second reason was political.  Creating \"settlements\" brought\n|>the arabs to the negotiation table.  Had the creation of new towns and\n|>cities gone on another several years, there would be no place left in\n|>Israel where there was an arab majority.  There would have been no\n|>land left that could be called arab.\n\nDon't fool yourself. It was the gulf war that brought the Israelis to the\nnegotiating table. Once their US backers had a secure base in the gulf\nthey insrtructed Shamir to negotiate or else.\n\nIf the creation of settlements had gone on any longer the USA would have\ncut the money supply.\n\n|>\tThe fact that there are a hundered thousands Jews in place\n|>changes the face of any peace settlement, and restricts what land can\n|>be given away.\n\nNot at all. They can chose to live in an arab state or return to Israel.\n\n|>\tSome of the communites created were religious.  They built\n|>their neighborhoods in areas where there were jews until the riots of\n|>the 30's and 40's.  There are communities like this in Hebron, Gaza,\n|>and all over.  There are also communities built near religious sites.\n\nThe existence of a comunity does not give the right for another country\nto annexe territory, not in Bosnia, not in the West Bank.\n\n|>\tThe point is, there are many reasons people moved over the\n|>green line, and many reasons the government wanted them to.  Whatever\n|>status is negotiated for disputed territories, it will not be an \"all\n|>or nothing\" deal.  New boundaries will be drawn up by negotiation, not\n|>be the results of a war.\n\nUnless the new boundaries drawn up are those of 48 there will be no peace.\nAraffat has precious little authority to agree to anything else.\n\n\nThe real issue is not the land treaty but the trade treaty. Since the\nPalestinians will remain heavily dependent on Israel indefinitely it\nis this that will be the guarantor of peace. another factor will be the\nreturn of lands confiscated by the Israeli state within Israel and the\ndismantling of the shadow structures which allow discrimination against\nnon-Jews within what is nominaly a secular state. \n\nThe irony is that in return for a guarantee that the palestinian state has\na non descrimination law in order to protect the remaining settlers the\nIsraeli state is going to be forced inot the same position. This will mean\noutlawing of discrimination such as that which prevents arabs from buying\nor using much of the land. \n\n\n\nPhill Hallam-Baker \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6311, "properties": {"category": "sci.med", "text": "From: neal@cmptrc.lonestar.org (Neal Howard)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: CompuTrac Inc., Richardson TX\nLines: 20\n\nIn article <1993Apr15.150550.15347@ecsvax.uncecs.edu> ccreegan@ecsvax.uncecs.edu (Charles L. Creegan) writes:\n>\n>What about Kekule's infamous derivation of the idea of benzene rings\n>from a daydream of snakes in the fire biting their tails?  Is this\n>specific enough to count?  Certainly it turns up repeatedly in basic\n>phil. of sci. texts as an example of the inventive component of\n>hypothesizing. \n\nI sometimes wonder if Kekule's dream wasn't just a wee bit influenced by\naromatic solvent vapors ;-) heh heh.\n\n\n-- \n=============================================================================\nNeal Howard   '91 XLH-1200      DoD #686      CompuTrac, Inc (Richardson, TX)\n\t      doh #0000001200   |355o33|      neal@cmptrc.lonestar.org\n\t      Std disclaimer: My opinions are mine, not CompuTrac's.\n         \"Let us learn to dream, gentlemen, and then perhaps\n          we shall learn the truth.\" -- August Kekule' (1890)\n=============================================================================\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6312, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mlipsie@rdm09.std.com (Mike Lipsie MPU)\nSubject: Re: Permanent Swap File\nOrganization: Mitsubishi Electric Research Laboratories, Inc.\nLines: 26\n\nIn article <1qlja7$i6b@usenet.INS.CWRU.Edu> ak333@cleveland.Freenet.Edu (Martin Linsenbigler) writes:\n>>\n>When I first setup windows using the self load mode It grabbed about\n>20 megs of swap file space, my 120 meg HD was nearly empty at that time.\n>I deleted windows for a time and recently reloaded, now my HD is nearly full\n>and windows just took 4 megs.\n\nOne of the rules for a permanent swap file is that it must be contiguous\n(non-fragmented) space.  I suspect that is more responsible for the\ndifference than the amount of free disk, in your case.\n\n>I have read somewhere that the best rule of thumb is have your\n>permanent swap file the same size as your regular RAM size.  I have 4 megs\n>of RAM and windows took 4 meg perm swap file.  Works very well.\n>In fact with my available HD space, about 20 megs it won't let me make\n>the swap file any bigger.\n>You should change your virtual mem swap file to 8 megs I think\n>that is what you said your RAM was.\n\nIt depends on what you are running.  We had to increase our swap\nfile (I think it is now 20MB) when some applications couldn't\nrun without *everything* else closed.\n\n-- \nMike Lipsie                                (work) mlipsie@ca.merl.com\nMitsubishi Electronic Research Laboratory  (home) mikel@dosbears.UUCP\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6313, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: eye dominance\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 16\n\nIn article <C5E2G7.877@world.std.com> rsilver@world.std.com (Richard Silver) writes:\n>\n>Is there a right-eye dominance (eyedness?) as there is an\n>overall right-handedness in the population? I mean do most\n>people require less lens corrections for the one eye than the\n>other? If so, what kinds of percentages can be attached to this?\n\nThere is eye dominance same as handedness (and usually for the\nsame side).  It has nothing to do with refractive error, however.\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6314, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Level 5?\nOrganization: U of Toronto Zoology\nLines: 31\n\nIn article <1993Apr21.134436.26140@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n>>>(given that I've heard the Shuttle software rated as Level 5 ...\n>>Level 5?  Out of how many? ...\n>\n>... Also keep in mind that it was\n>*not* achieved through the use of sophisticated tools, but rather\n>through a 'brute force and ignorance' attack on the problem during the\n>Challenger standdown - they simply threw hundreds of people at it and\n>did the whole process by hand...\n\nI think this is a little inaccurate, based on Feynman's account of the\nsoftware-development process *before* the standdown.  Fred is basically\ncorrect:  no sophisticated tools, just a lot of effort and painstaking\ncare.  But they got this one right *before* Challenger; Feynman cited\nthe software people as exemplary compared to the engine people.  (He\nalso noted that the software people were starting to feel management\npressure to cut corners, but hadn't had to give in to it much yet.)\n\nAmong other things, the software people worked very hard to get things\nright for the major pre-flight simulations, and considered a failure\nduring those simulations to be nearly as bad as an in-flight failure.\nAs a result, the number of major-simulation failures could be counted\non one hand, and the number of in-flight failures was zero.\n\nAs Fred mentioned elsewhere, this applies only to the flight software.\nSoftware that runs experiments is typically mostly put together by the\nexperimenters, and gets nowhere near the same level of Tender Loving Care.\n(None of the experimenters could afford it.)\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6315, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dschen@corona.hsc.usc.edu (Daniel S. Chen)\nSubject: Re: Buying a high speed v.everything modem\nOrganization: University of Southern California, Los Angeles, CA\nLines: 2\nNNTP-Posting-Host: corona.hsc.usc.edu\n\nWhat is hardware handshaking and when do I want to use it? Dan\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6316, "properties": {"category": "comp.windows.x", "text": "From: buzz@bear.com (Buzz Moschetti)\nSubject: Monthly Question about XCopyArea() and Expose Events\nReply-To: buzz@bear.com (Buzz Moschetti)\nOrganization: Bear, Stearns & Co. - FAST\nLines: 18\n\n(2nd posting of the question that just doesn't seem to get answered)\n\nSuppose you have an idle app with a realized and mapped Window that contains\nXlib graphics.  A button widget, when pressed, will cause a new item\nto be drawn in the Window.  This action clearly should not call XCopyArea() \n(or equiv) directly; instead, it should register the existence of the new\nitem in a memory structure and let the same expose event handler that handles\n\"regular\" expose events (e.g. window manager-driven exposures) take care\nof rendering the new image.  Using an expose event handler is a \"proper\" way\nto do this because at the time the handler is called, the Xlib Window is\nguaranteed to be mapped.\n\nThe problem, of course, is that no expose event is generated if the window\nis already visible and mapped.  What we need to do is somehow \"tickle\" the\nWindow so that the expose handler is hit with arguments that will enable\nit to render *just* the part of the window that contains the new item.\n\nWhat is the best way to tickle a window to produce this behavior?\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.298+0000", "event": "documents", "entityId": 6317, "properties": {"category": "soc.religion.christian", "text": "From: robp@landru.network.com (Rob Peglar)\nSubject: Re: DID HE REALLY RISE???\nReply-To: robp@landru.network.com\nOrganization: Network Systems Corporation\nLines: 71\n\nIn article 1373@geneva.rutgers.edu, parkin@Eng.Sun.COM (Michael Parkin) writes:\n>Another issue of importance.  Was the crucification the will of God or\n>a tragic mistake.  I believe it was a tragic mistake.  God's will can\n>never be accomplished through the disbelief of man.\n\nI finished reading a very good book, \"The Will of God\", Weatherhead.\nThis was very helpful to me in applying thought to the subject of the\nwill of God.\n\nWeatherhead broke the will of God into three distinct parts;\nintentional will, circumstancial will, and ultimate will.  He\n(Weatherhead) also refuted the last statement (above) by Michael\nParkin above quite nicely.\n\nSummarizing; _despite_ the failures of humankind, God's ultimate will\nis never to be defeated.  God's intentions may be interfered with,\neven temporarily defeated by the will of humankind, brought down by\ncircumstance.  His ultimate will (the reconcilication of all\nhumankind) will never be stopped.\n\nTime after time, Weatherhead used the Cross as the best description of\nthis process at work.  His points, paraphrased, were 1) God's\nintentional will was for Jesus, the Christ, to live out a full life\nand perform the work of the Living God.  2) The failures, sins, and\ndeviousness of humankind frustrated God's intent for His Son.  3)\nDespite the circumstance, God's ultimate will was revealed in the\nCross, as Jesus willingly (\"not my will, Lord, but yours\") died for\nthe redemption of all humankind.  The Cross was utterly triumphant,\novercoming even the most cruel of circumstances.\n\n>this world to build the kingdom of heaven on the earth.  He\n>desperately wanted the Jewish people to accept him as the Messiah.  If\n>the crucification was the will of God how could Jesus pray that this\n>cup pass from him.  Was this out of weakness.  NEVER.  Many men and\n>women have given their lives for their country or other noble causes.\n>Is Jesus less than these.  No he is not.  He knew the crucification\n>was NOT the will of GOD. \n\nIt was not the intentional will of God.  It was the circumstancial\nwill, thus enabling the victory of the ultimate will.\n\n\n> God's will was that the Jewish people accept\n>Jesus as the Messiah and that the kingdom of Heaven be established on\n>the earth with Jesus as it's head. \n\nRight, intentional will.\n\n(Just like the Jewish people\n>expected). If this had happened 2000 years ago can you imagine what\n>kind of world we would live in today.  It would be a very different\n>world.  And that is eactly what GOD wanted.  Men and women of that age\n>could have been saved by following the living Messiah while he was on\n>the earth.  Jesus could have established a sinless lineage that would\n>have continued his reign after his ascension to the spiritual world to\n>live with GOD.  Now the kingdom of heaven on the earth will have to\n>wait for Christ's return.  But when he returns will he be recognized\n>and will he find faith on this earth.  Isn't it about time for his\n>return.  It's been almost 2000 years.\n\nWe know neither the time nor the place.  He will return as a thief in the night.\n\nPeace.\n\nRob\n\n---\n-legal mumbo jumbo follows-\nThis mail/post only reflects the opinions of the poster (author), \nand in no manner reflects any corporate policy, statement, opinion,\nor other expression by Network Systems Corporation.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6318, "properties": {"category": "talk.politics.misc", "text": "From: ckincy@cs.umr.edu (Charles Kincy)\nSubject: Re: Pro-abortion feminist leader endorses trashing of free speech rights\nNntp-Posting-Host: next4.cs.umr.edu\nOrganization: University of Missouri - Rolla, Rolla, MO\nLines: 9\n\nDo the words \"chilling effect\" stimulate impulses within that\nsmall collection of neurons you call a brain?\n\ncpk\n-- \nIt's been 80 days.  Do you know where your wallet is?\n\nSlick Willy's already got his hand in my pocket.  I'm just afraid\nof what he might grab hold of.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6319, "properties": {"category": "comp.graphics", "text": "From: boebert@sctc.com (Earl Boebert)\nSubject: Removing Distortion From Bitmapped Drawings?\nOrganization: SCTC\nLines: 47\n\nLet's say you have a scanned image of a line drawing; in this case a\nboat, but it could be anything.  On the drawing you have a set of\nreference points whose true x,y positions are known.  \n\nNow you digitize the drawing manually (in this case, using Yaron\nDanon's excellent Digitize program).  That is, you use a program which\nconverts cursor positions to x,y and saves those values when you click\nthe mouse.\n\nUpon digitizing you notice that the reference point values that come\nout of the digitizing process differ in small but significant ways\nfrom the known true values.  This is understandable because the\nscanned drawing is a reproduction of the original and there are\nsuccessive sources of distortion such as differential expansion and\ncontraction of paper, errors introduced in the printing process,\nscanner errors and what have you.\n\nThe errors are not uniform over the entire drawing, so \"global\"\nadjustments such as stretching/contracting uniformly over x or y, or\nrotating the whole drawing, are not satisfactory.\n\nSo the question is: does any kind soul know of an algorithm for\nremoving such distortion?  In particular, if I have three sets of\npoints \n\nReference(x,y) (the known true values)\n\nDistortedReference(x,y) (the same points, with known errors)\n\nDistortedData(x,y) (other points, with unknown errors)\n\nwhat function of Reference and Distorted could I apply to\nDistortedData to remove the errors.\n\nI suspect the problem could be solved by treating the distorted\nreference points as resulting from the projection of a \"bumpy\" 3d\nsurface, solving for the surface and then \"flattening\" it to remove\nthe errors in the other data points.\n\nAny kind and informed soul out there have any ideas, or better yet,\npointers to treatments of the same or similar problems?\n\nThanks,\n\nEarl\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6320, "properties": {"category": "comp.graphics", "text": "From: hintmatt@cwis.isu.edu (HINTZE_MATTHEW)\nSubject: Re: Diamond Stelth 24- any good?\nOrganization: Idaho State University, Pocatello\nLines: 26\nNNTP-Posting-Host: cwis.isu.edu\n\n    I bought the diamond stealth 24 a few months ago.  it seems to be a\ngreat card especially with my multimedia presentations.  It runs graphics\nand animation as well as some near full motion video very well.  The only\nthing I can tell that it lacks is speed above 256 colors.  Its qualit in\nbetween 256 and 16.7 million collors un unreal but you definitly\ncompromise speed.  It seems to be a great card for graphics and it comes\nwith some great software, but Im not so sure about the excelerator\npart.  I used to own a paridise and it doesnt seem to be much faster\nthan that.  One thing I do like is that it loads its own vesa driver\nfrom ROM at startup, (I think) because I have never had to load it for\nlinks386 or any other programs that require special VESA drivers at\nstartup. \n\n\n\ngromi a16pd\n\n\n                                       HINTMATT@BA.BA.ISU.EDU\n\n\n\n-- \n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6321, "properties": {"category": "comp.windows.x", "text": "From: toml@blade.Boulder.ParcPlace.COM (Tom LaStrange)\nSubject: Re: Forcing a window manager to accept specific coordinates for a window\nReply-To: toml@boulder.ParcPlace.COM\nOrganization: ParcPlace Boulder\nLines: 40\n\nIn article <BADING.93Apr21134939@athene.cs.tu-berlin.de>, bading@cs.tu-berlin.de (Tobias 'Doping' Bading) writes:\n|> \n|> try this after XCreateWindow:\n|> -----------------------------\n|> \n|> #include <X11/Xutil.h>\n|> \n|> Display display;\n|> Window window;\n|> \n|> {\n|>   XSizeHints *xsizehints = XAllocSizeHints ();\n|>   xsizehints->flags = USPosition | USSize;\t/* or = PPosition | PSize */\n|>   xsizehints->x = 42;\n|>   xsizehints->y = 42;\n|>   xsizehints->width = 100;\n|>   xsizehints->height = 100;\n|>   XSetWMNormalHints (display, window, xsizehints);\n|>   XFree (xsizehints);\n|> }\n|> \n|> These hints tell the window manager that the position and size of the window\n|> are specified by the users and that the window manager should accept these\n|> values. If you use xsizehints->flags = PPosition | PSize, this tells the window\n|> manager that the values are prefered values of the program, not the user.\n|> I don't know a window manager that doesn't place the window like you prefer if\n|> you specify the position and size like above.\n\n\nYou are right but PLEASE DON'T DO THIS.  It makes my brain hurt.\nUSPosition and USSize should ONLY be set if the USER specified the\nposition and size.\n\nYou say: \"Tom, don't blow a gasket, what's the harm?\"\n\nSome window managers do very different things (besides positioning the window)\nwhen they see USPosition rather than PPosition.\n\n--\nTom LaStrange        toml@boulder.ParcPlace.COM\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6322, "properties": {"category": "sci.electronics", "text": "From: Mike Diack <mike-d@staff.tc.umn.edu>\nSubject: Re: RAMs &ROMs with ALE latches (for 8051's)\nX-Xxdate: Wed, 21 Apr 93 03:04:18 GMT\nNntp-Posting-Host: dialup-slip-1-88.gw.umn.edu\nOrganization: persian cat & carpet co.\nX-Useragent: Nuntius v1.1.1d7\nLines: 15\n\nIn article <1qg98sINNokf@sheoak.ucnv.edu.au> j. pethybridge,\njeff@redgum.ucnv.edu.au writes:\n> I asked this a year ago, but i am still looking.\n> I am getting sick of having to use a HC373 or a 8751/2.\nCheck out Xicor's new goodie in the April 12th edition of EETimes\nX88C64 - an 8k * 8 E2PROM with built in latch AND bootloader setup.\nYou hook it directly to your '51, power it up, the prom initialises the\nserial port on the '51, you load in your code via RXD, this gets blatted\nonto the E2PROM, then you reset and run - i'm sure Dallas also does\nsomething like this too, i suppose it would boil down to relative\nprices, and the Dallas part freeing up P0 & P2 completely. I wonder\nif ANYONE has ever managed to design a single sided PCB with an\n8051, 573, EPROM, SRAM and >>NO LINKS<< ?\ncheers\nMike.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6323, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: hwstock@snll-arpagw.llnl.gov (stockman harlan w)\nSubject: pentium clock counts\nOrganization: Sandia National Laboratories\nLines: 7\n\n\nDoes anyone have a list of the clock counts for pentium instructions --\nor know if the INTEGER mul is down to 1 tick?\n\n\nThanks, HW Stockman, hwstock@sandia.llnl.gov\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6324, "properties": {"category": "rec.motorcycles", "text": "From: bethd@netcom.com (Beth Dixon)\nSubject: Re: Women's Jackets? (was Ed must be a Daemon Child!!)\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nDistribution: usa\nLines: 44\n\nIn article <1993Apr14.141637.20071@mnemosyne.cs.du.edu> jhensley@nyx.cs.du.edu (John Hensley) writes:\n>Beth Dixon (bethd@netcom.com) wrote:\n>: new Duc 750SS doesn't, so I'll have to go back to carrying my lipstick\n>: in my jacket pocket.  Life is _so_ hard.  :-)\n>\n>My wife is looking for a jacket, and most of the men's styles she's tried\n>don't fit too well. If they fit the shoulders and arms, they're too\n>tight across the chest, or something like that. Anyone have any \n>suggestions? I'm assuming that the V-Pilot, in addition to its handy\n>storage facilities, is a pretty decent fit. Is there any company that\n>makes a reasonable line of women's motorcycling stuff? More importantly,\n>does anyone in Boulder or Denver know of a shop that bothers carrying any?\n\nI was very lucky I found a jacket I liked that actually _fits_.\nHG makes the v-pilot jackets, mine is a very similar style made\nby Just Leather in San Jose. I bought one of the last two they\never made.\n\nFinding decent womens motorcycling gear is not easy.  There is a lot\nof stuff out there that's fringed everywhere, made of fashion leather,\nmade to fit men, etc.  I don't know of a shop in your area.  There\nare some women rider friendly places in the San Francisco/San Jose\narea, but I don't recommend buying clothing mail order.  Too hard\nto tell if it'll fit.  Bates custom makes leathers.  You might want\nto call them (they're in L.A.) and get a cost estimate for the type\nof jacket your wife is interested in.  Large manufacturers like\nBMW and H.G. sell women's lines of clothing of decent quality, but\nfit is iffy.\n\nA while ago, Noemi and Lisa Sieverts were talking about starting\na business doing just this sort of thing.  Don't know what they\nfinally decided.\n\nBeth\n\n=================================================================\nBeth [The One True Beth] Dixon                   bethd@netcom.com\n1981 Yamaha SR250 \"Excitable Girl\"                      DoD #0384\n1979 Yamaha SR500 \"Spike the Garage Rat\"             FSSNOC #1843\n1992 Ducati 750SS                                     AMA #631903\n1963 Ducati 250 Monza -- restoration project         1KQSPT = 1.8\n\"I can keep a handle on anything just this side of deranged.\"\n                                                        -- ZZ Top\n=================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6325, "properties": {"category": "comp.windows.x", "text": "From: duvvuri@flashflood.cs.odu.edu (D.V.Prakash)\nSubject: Pointer/Cursor\nArticle-I.D.: cs.1993Apr6.151347.2339\nOrganization: Old Dominion University, Norfolk, Va\nLines: 25\nNntp-Posting-Host: flashflood.cs.odu.edu\n\n\nHi\n\nI am trying to implement a pointer feature in Xlib\n\nI have multiple windows and all can take input and \nshow output simultaneously on all other displays\n\nI want to implement a pointer feature \n\nI would like to get the pointer to come up on all windows once \nI choose pointer in the menu and every one should be able\nto see it\n\nCan you give me some hints as to how I should proceed \nI am new to Xlib\n\n\n\nreplies will be greatly appreciated\n\nThank you\n\nPrakash\n< duvvuri@cs.odu.edu >\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6326, "properties": {"category": "sci.crypt", "text": "From: mike@avon.demon.co.uk (\"Mike H.\")\nSubject: Re: Another data hiding scheme... \nDistribution: world\nOrganization: boring\nReply-To: mike@avon.demon.co.uk\nX-Mailer: Simple NEWS 1.90 (ka9q DIS 1.19)\nLines: 23\n\nIn article <1993Apr13.225348.6511@colorado.edu> bear@tigger.cs.Colorado.EDU writes:\n\n>since the price of 1.44 M 3.5\" floppies were still high until the last\n>few years.  If you store \"old\" data, with old file times, in the public\n>filesystem the casual observer may miss the \"HD\"... especially if you \n>\"accidently\" cover it with something).\n>\n>-- \n>Bear Giles\n>bear@cs.colorado.edu/fsl.noaa.gov\n>\n\nIt has been done already!\n\nIn the UK the Atari ST box was shipped with 360K disks in the first few\nyears and then later 720K disks. In order to make life less complicated,\nmany freebie disks on mags were double formatted like this. Side 0 of the\ndisk had 360K on it and could be read  by any ST. It also had a flip-side\nprogram. This would swap the sides around so that side 1 became side 0.\n\n-- \n\n                        Mike (mike@avon.demon.co.uk)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6327, "properties": {"category": "talk.politics.mideast", "text": "From: arf@genesis.MCS.COM (Jack Schmidling)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nOrganization: MCSNet Contributor, Chicago, IL\nLines: 26\nNNTP-Posting-Host: localhost.mcs.com\n\nIn article <C5wpAD.74K@specialix.com> jim@specialix.com (Jim Maurer) writes:\n>arf@genesis.MCS.COM (Jack Schmidling) writes:\n>>>\n>\n>\n>>recognize the statement that these \"private funds\" were all tax exmpt.  In\n>\n>The donations are tax deductible like any donations to a non-profit\n>organization.  I've donated money to a group restoring streetcars\n>and it was tax deductible.  Why don't you contribute to a group\n>helping the homeless if you so concerned?\n\nI do (did) contribute to the ARF mortgage fund but when interest\nrates plumetted, I just paid it off.\n\nThe problem is, I couldn't convince Congress to move my home to \na nicer location on Federal land.\n\nBTW, even though the building is alleged to be funded by tax exempt\nprivate funds, the maintainence and operating costs will be borne by \ntaxpayers forever.\n\nWould anyone like to guess how much that will come to and tell us why\nthis point is never mentioned?\n\njs\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6328, "properties": {"category": "rec.sport.baseball", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: The 1964 Phillies: deja vu?\nKeywords: Phillies\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 12\n\njerry@sheldev.shel.isc-br.com (Gerald Lanza) writes:\n\n>\tP.S. In 1964, a single team out of 8 won the pennant; no divisions.\n\nMake that ten, not eight. The Mets and Astros joined the N.L. in 1962.\n\n-----\nEric Smith\nerics@netcom.com\nerics@infoserv.com\nCI$: 70262,3610\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6329, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: What about SMARTDRV /DOUBLE_BUFFER?\nFrom: psweeney@miavx1.acs.muohio.edu\nOrganization: Miami University Academic Computer Service\"\nLines: 9\n\nI am curious:  what does the /double_buffer parameter in smartdrv actually do\nfor me?  I seem to have less problems in Windows when I leave it out.\n\nUsing a PS/2 with an ESDI drive, but also a PS/2 with a SCSI.\n\nAny response is welcome.\n\nPeter Sweeney\npsweeney@miavx1.acs.muohio.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6330, "properties": {"category": "talk.politics.misc", "text": "From: cdm@pmafire.inel.gov (Dale Cook)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: WINCO\nLines: 45\n\nIn article <C5L4rp.EBM@news.iastate.edu> jrbeach@iastate.edu (Jeffry R Beach) writes:\n>In article <1993Apr15.165139.6240@gordian.com> mike@gordian.com (Michael A. Thomas) writes:\n>>> I really don't want to waste time in\n>>> here to do battle about the legalization of drugs.  If you really want to, we\n>>> can get into it and prove just how idiotic that idea is!  \n>>\n>>  Read: I do not know what the fuck I'm talking about, and am\n>>not eager to make a fool of myself.\n>\n>Oh, you foolish person.  I do know what the fuck I'm talking about\n>and will gladly demonstrate for such ignorants as yourself if you\n>wish.\n>\n>The legalization of drugs will provide few if any of the benefits\n>so highly taunted by its proponents:  safer, cheaper drugs along\n>with revenues from taxes on those drugs; reduced crime and reduced\n>organized crime specifically; etc, etc\n\nAhhh, the classic Truth By Blatant Assertion technique.  Too bad it's\nso demonstrably false.  Take a look at Great Britain sometime for a \nnice history on drug criminalization.  The evidence there shows that\nduring periods of time when drugs (such as heroin) were illegal, crime\nwent up and people did die from bad drugs.  During times when drugs\nwere legalized, those trends were reversed.\n\n>\n>If you would like to prove how clueless you are, we can get into\n>why - again a lot of wasted posts that I don't think this group\n>was intended for and something easily solved by you doing a little\n>research.\n\nNow this is a great example of an ironclad proof.  Gosh, I'm convinced.\n( :-} for the humor impaired).  First, assert something for which you\nhave no evidence, then dodge requests for proof by claiming to know\nwhat this group was intended for.  As to research, if you'd done any\nat all, you'd realize that there is plenty of reason to believe that\nlegalizing drugs will have many benefits to society.  There are some\nplausible arguments against it, too, but they aren't enough to convince\nme that criminalization of drugs is the answer.  I'm willing to be\nconvinced I'm wrong, but I seriously doubt the likes of you can do it.\n--------------------------------------------------------------------------\n...Dale Cook    \"Any town having more churches than bars has a serious\n                   social problem.\" ---Edward Abbey\nThe opinions are mine only (i.e., they are NOT my employer's)\n--------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6331, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Rewording the Second Amendment (ideas)\nOrganization: Stratus Computer, Inc.\nLines: 40\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1993Apr20.083057.16899@ousrvr.oulu.fi>, dfo@vttoulu.tko.vtt.fi (Foxvog Douglas) writes:\n> In article <1qv87v$4j3@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n> >In article <C5n3GI.F8F@ulowell.ulowell.edu>, jrutledg@cs.ulowell.edu (John Lawrence Rutledge) writes:\n\n> >> The massive destructive power of many modern weapons, makes the\n> >> cost of an accidental or crimial usage of these weapons to great.\n> >> The weapons of mass destruction need to be in the control of\n> >> the government only.  Individual access would result in the\n> >> needless deaths of millions.  This makes the right of the people\n> >> to keep and bear many modern weapons non-existant.\n\n> >Thanks for stating where you're coming from.  Needless to say, I\n> >disagree on every count.\n\n> You believe that individuals should have the right to own weapons of\n> mass destruction?  I find it hard to believe that you would support a \n> neighbor's right to keep nuclear weapons, biological weapons, and nerve\n> gas on his/her property.  \n\n> If we cannot even agree on keeping weapons of mass destruction out of\n> the hands of individuals, can there be any hope for us?\n\nI don't sign any blank checks.\n\nWhen Doug Foxvog says \"weapons of mass destruction,\" he means CBW and\nnukes.  When Sarah Brady says \"weapons of mass destruction\" she means\nStreet Sweeper shotguns and semi-automatic SKS rifles.  When John\nLawrence Rutledge says \"weapons of mass destruction,\" and then immediately\nfollows it with:\n\n> The US has thousands of people killed each year by handguns,\n> this number can easily be reduced by putting reasonable restrictions\n> on them.\n\n...what does Rutledge mean by the term?\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6332, "properties": {"category": "alt.atheism", "text": "From: nrp@st-andrews.ac.uk (Norman R. Paterson)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Association Against Having Fun With Your Clothes On\nLines: 23\n\nIn article <1993Apr5.020504.19326@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n[...]\n>One of the reasons that you are atheist is that you limit God by giving\n>God a form.  God does not have a \"face\".\n\nWait a minute.  I thought you said that Allah (I presume Allah == God) was unknowable,\nand yet here you are claiming to know a very concrete fact about him.\n\nYou say that God does not have a \"face\".  Doesn't the bible say that God has hindparts?\n\nHow do you suggest I decide which (if any) of you is right?  Or are you both right?\nGod has hindparts but no face?  Or does your use of quotation marks:\n\n\tGod does not have a \"face\".\n\nallow you to interpret this to mean whatever you like?\n\n>\n>Peace,\n>\n>Bobby Mozumder\n\n-Norman\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6333, "properties": {"category": "rec.motorcycles", "text": "From: Wayne.Orwig@AtlantaGA.NCR.COM  (Wayne Orwig)\nSubject: Re: CB750 C with flames out the exhaust!!!!---->>>\nLines: 21\nNntp-Posting-Host: worwig.atlantaga.ncr.com\nOrganization: NCR Corporation\nX-Newsreader: FTPNuz (DOS) v1.0\n\nIn Article <C5quw0.Btq@ux1.cso.uiuc.edu> \"mikeh@ux1.cso.uiuc.edu (Mike Hollyman)\" says:\n> Hi, I have an 82 CB750 Custom that I just replaced the cylinder head gasket\n> on.  Now when I put it back together again, it wouldn't idle at all.  It was\n> only running on 2-3 cylinders and it would backfire and spit flames out the\n> exhaust on the right side.  The exhaust is 4-2 MAC.  I bought new plugs\n> today and it runs very rough and still won't idle.  I am quite sure the fine\n> tune knobs on the carbs are messed up.  I checked the timing, it was fine, so\n> I advanced it a little and that didn't help.  \n> \n> I assume the carbs need to be synched.  Can I buy a kit and do this myself?\n> If so, what kit is the best for the price.\n> \n> Any other suggestions?\n> \n> Thanks in advance.\n> Mike Hollyman\n> \nIt sounds like you got the cam timing off..........\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6334, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rbarclay@trentu.ca (ROSS BARCLAY)\nSubject: TWAIN drivers for Logitech Scanman\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: Trent Computing and Telecommunications Department\nLines: 11\n\nHi,\n        I was wondering if anyone knew whether or not Logitech had\nWindows TWAIN drivers for the Scanman. If so, are the drivers on the\nnet somewhere? My Scanman is the model one down from the Scanman 256.\n\n        Thanks in advance.\n\n                                Ross Barclay\n\n--------------------------------------------------------------------------------\nRoss Barclay -- RBarclay@TrentU.Ca                         Peterborough, Ontario\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6335, "properties": {"category": "talk.politics.mideast", "text": "From: gt1091a@prism.gatech.EDU (gt1091a gt1091a KAAN,TIMUCIN)\nSubject: Re: Lezgians Astir in Azerbaijan and Daghestan\nOrganization: Georgia Institute of Technology\nLines: 16\n\nHELLO, shit face david, I see that you are still around. I dont want to \nsee your shitty writings posted here man. I told you. You are getting\nitchy as your fucking country. Hey , and dont give me that freedom\nof speach bullshit once more. Because your freedom has ended when you started\nwriting things about my people. And try to translate this \"ebenin donu\nbutti kafa David.\".\n\nBYE, ANACIM HADE.\nTIMUCIN\n\n\n-- \nKAAN,TIMUCIN\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt1091a\nInternet: gt1091a@prism.gatech.edu\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6336, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rcaldrn@med.miami.edu (Richard Calderon)\nSubject: Re: moving icons\nNntp-Posting-Host: epistat.med.miami.edu\nOrganization: University Of Miami, Medical School\nLines: 17\n\nkmembry@viamar.UUCP (Kirk Membry) writes:\n\n>I remember reading about a program that made windows icons run away\n>from the mouse as it moved near them.  Does anyone know the name\n>of this program and the ftp location (probably at cica)\n\nAs I remember it, the name of the program your looking for is called icofrite. \n Cica was where I saw it last. It was quite a while ago.\n\n  \n*********************************************\nRichard Calderon:  rcaldrn@epi.med.miami.edu*\nUniversity of Miami School of Medicine      *\nInformation Systems Computing               *\n1029 NW 15 St.                              *\nMiami, Florida 33136                        *\n*********************************************\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6337, "properties": {"category": "misc.forsale", "text": "From: beb@media.mit.edu (Brian E. Bradley)\nSubject: 2-gig Fujitsu 5.25\" disk drive for sale\nOrganization: MIT Media Laboratory\nDistribution: usa\nLines: 11\n\n\n2-gigabyte Fujitsu 5.25\" disk drive\ninternal drive, model M26525A\n(uses either a SCSI or EDI interface on your disk controller card)\nbrand new, still in box, never used\n\n  only $1800 (compare to $2400 in cheapest mail-order catalogs)\n\nPOSTED FOR A FRIEND.  Pleade respond to:\n\t\tjbredt@athena\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6338, "properties": {"category": "sci.crypt", "text": "From: cuffell@spot.Colorado.EDU (Tim Cuffel)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 29\n\nIn article <strnlghtC5puCL.6Kp@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>In article <Apr18.204843.50316@yuma.ACNS.ColoState.EDU>\n>holland@CS.ColoState.EDU (douglas craig holland) writes:\n>\n>\n>>\tLet me ask you this.  Would you trust Richard Nixon with your\n>>crypto keys?  I wouldn't.\n>\n>I take it you mean President Nixon, not private citizen Nixon. Sure.\n>Nothing I'm doing would be of the slightest interest to President Nixon .\n>\n>David\n>\n>\n>-- \n>David Sternlight         Great care has been taken to ensure the accuracy of\n>                         our information, errors and omissions excepted.  \n>\n>\n\nErgo, if your life is sufficiently boring, you have no need for privacy?\n\n(This is not meant to be personal, just the logical conclusion of your\nstatement.)\n-- \n-Tim Cuffel\tFinger for PGP 2.1  The CIA has admitted that the assassination\n                                    of Saddam Hussien was one of their goals.\nThey failed, of course.  Seems as though that motorcade through downtown Dallas\ntrick only works once.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6339, "properties": {"category": "sci.med", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Frequent nosebleeds\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 17\n\nIn article <9304191126.AA21125@seastar.seashell> bebmza@sru001.chvpkh.chevron.com (Beverly M. Zalan) writes:\n>\n>My 6 year son is so plagued.  Lots of vaseline up his nose each night seems \n>to keep it under control.  But let him get bopped there, and he'll recur for \n>days!  Also allergies, colds, dry air all seem to contribute.  But again, the \n>vaseline, or A&D ointment, or neosporin all seem to keep them from recurring.\n>\nIf you can get it, you might want to try a Canadian over-the-counter product\ncalled Secaris, which is a water-soluble gel.  Compared to Vaseline or other\ngreasy ointments, Secaris seems more compatible with the moisture that's\nalready there.\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6340, "properties": {"category": "soc.religion.christian", "text": "From: atterlep@vela.acs.oakland.edu (Cardinal Ximenez)\nSubject: Re: The arrogance of Christians\nOrganization: National Association for the Disorganized\nLines: 35\n\nmhsu@lonestar.utsa.edu (Melinda . Hsu   ) writes:\n\n>I'd like to share my thoughts on this topic of \"arrogance of\n>Christians\" and look forward to any responses.  In my\n>encounters with Christians, I find myself dismayed by their\n>belief that their faith is total truth.  According to them,\n>their beliefs come from the Bible and the bible is the word of\n>God and God is truth - thus they know the truth.  This stance\n>makes it difficult to discuss other faiths with them and my own\n>hesitations about Christianity because they see no other way.\n>Their way is the 'truth.'\n\n>But I see their faith arising from a willful choice to believe\n>a particular way.  That choice is part faith and part reason,\n>but it seems to me a choice.\n\n  >[I'm sort of mystified about how a Christian might respond to this.]\n\n  I'll start with a parable.\n \n  A Christian woman hires a carpenter to build her a birdhouse.  When he comes\nover, they begin talking about religion.  \"So you believe that you understand\nGod?\" he asks.  \"Yes, I do,\" she replies.  \"Then have him build you the \nbirdhouse.\"\n\n  I don't think that Melinda is complaining about the basis of Christian \nbelief.  However, there is a tendency among Christians to say, \"I have all the \nanswers because God gave them to me.\"  This is simply not the case.\n  I believe that the Bible is inerrant.  However, our HUMAN interpretations of\nthe Bible are necessarily in error, because we are human and imperfect.  We\nhave to remember that we ALL make mistakes in faith, and that because we are\nhuman we have an imperfect understanding of the mind and will of God.  To\nclaim, as so many people do, that the existence of the Bible allows us to\ndetermine the answers to all questions is to claim that we humans can fully\nunderstand God's will.  This is hubris.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6341, "properties": {"category": "talk.politics.guns", "text": "From: jim.wray@yob.sccsi.com (Jim Wray)\nSubject: CNN for sale\nOrganization: Ye Olde Bailey BBS - Houston, TX - 713-520-1569\nLines: 18\nReply-To: jim.wray@yob.sccsi.com (Jim Wray)\nNNTP-Posting-Host: cs.utexas.edu\n\n\n Bill Vojak:\n\n BV>I read in the paper yestarday that Ted Turner wants to \"trim\" down\n BV>his media holdings and is putting CNN up for sale.  The #1 potential\n BV>bidder?  TIME/Warner of course.  Sigh . . . . . Just what we need. :-(\n\n Maybe now's the time for us, the NRA, GOA, CCRTKBA, SAF, et al to band\n together and buy CNN as *our* voice. Wouldn't that be sumpin....broadcast\n the truth for a change and be able to air a favorable pro-gun item or two....\n---\n . OLX 2.2 . There is no way they can get over here!        A. Maginot\n                                                                   \n----\n+------------------------------------------------------------------------+\n| Ye Olde Bailey BBS   713-520-1569 (V.32bis) 713-520-9566 (V.32bis)     |\n|   Houston,Texas          yob.sccsi.com       Home of alt.cosuard       |\n+------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.299+0000", "event": "documents", "entityId": 6342, "properties": {"category": "misc.forsale", "text": "From: cs3sd3ae@maccs.mcmaster.ca (Holly       KS)\nSubject: Eric Bosco where are you?!\nNntp-Posting-Host: maccs.dcss.mcmaster.ca\nOrganization: Department of Computer Science, McMaster University\nDistribution: usa\nLines: 4\n\nEric, send me email with your address, I lost it! I've reconsidered!\n\nKevin\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6343, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lord@andersen.com (Bob Lord)\nSubject: Re: Duo Dock problems\nOrganization: Andersen Consulting -- CSTaR\nLines: 37\nDistribution: usa\nNNTP-Posting-Host: grant.cstar.andersen.com\n\nIn <C52GE9.8Ks@compsci.liverpool.ac.uk> phil@csc.liv.ac.uk (Phil Jimmieson) writes:\n\n>Has anyone had any problems with their Duo Dock not ejecting the Duo\n>properly?\n\n>When I first got it, the Duo would come out of the Dock a couple of inches\n>when ejected, and I had to pull it the rest of the way. Nowadays (and I've\n>had the system for 4 months), the Duo doesn't come out *at* *all* - despite\n>the fact that the mechanism makes all the appropriate noises, and I have to\n>grab hold of it and pull it out myself. Is there a simple fix for this, or\n>do I have to return it to my Apple Dealer, where it will languish for weeks\n>while I have to make do with no colour display, no VRAM, no floppy or\n>SCSI etc. \n\n>(BTW, it's not that the Duo is locked into the Dock - it just doesn't\n>want to slide out any more).\n\n\n>-- \n>Phil Jimmieson,           ***********************************************\n>Computer Science Dept.,   * JANET    : phil@uk.ac.liv.csc               *\n>Liverpool University,     * INTERNET : phil@csc.liv.ac.uk               *\n>PO Box 147                ***********************************************\n>Liverpool  L69  3BX      \"I was head over heels in love until I got cramp\"\n>(UK) 051-794-3689          \n\n\nAlso, has anyone heard any rumors that the new docks (the ones with the CPU\n:-) will be better designed that this first batch?  I love my Duo, but\ninstalling cards in the dock is not much fun.\n\n-Bob\n-- \nBob Lord\t\t\t\t\t100 South Wacker Room 932\nNetwork Manager\t\t\t\t\tChicago IL, 60606\nCSTaR Group, Andersen Consulting\t\t312-507-5353\nlord@andersen.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6344, "properties": {"category": "sci.crypt", "text": "From: croley@magic.mcc.com (David Croley)\nSubject: Re: new encryption\nOrganization: MCC Experimental Systems Lab\nLines: 48\n\nIn article <1993Apr21.225435.6292@wam.umd.edu>, psionic@wam.umd.edu (Haywood J. Blowme) writes:\n|>    As promised, I spoke today with the company mentioned in a Washington\n|> Times article about the Clipper chip announcement. The name of the company\n|> is Secure Communications Technology (Information will be given at the end\n|> of this message on how to contact them).\n|>\n|>     ...\n|> \n|>    His belief is that AT&T was made known of the clipper well before the\n|> rest of the industry. This is for several reasons, several of which are:\n|> \n\tThis is a very good point.  AT&T obviously knew and participated in the\ndevelopment of the Clipper chip.  This amounts to unfair business practice and\ngives AT&T an early monopoly on the market [hopefully a non-existant market].\nOther companies that compete with AT&T in the cellular market (Motorola, NEC, etc)\nhave grounds to file a complaint over this.\n\n|> \n|> Right now the company is afraid that the new clipper chip will put them out\n|> of business. This is a very real possibility. So they really need help in\n|> stopping the clipper chip from becoming a standard. If you want to contact\n|> them, they can be reached at..\n|> \n|> Secure Communications Technology\n|> 8700 Georgia Ave. Suite 302\n|> Silver Spring, MD\n|> \n|> (301) 588-2200\n|> \n|>  ...\n\nIt would seem that the one fact that the government has overlooked in this\nwhole fiasco is the economic standpoint.  As others have mentioned, the most\ndifficulty the Clipper chip faces is an economic one.  Let's face it, the\naverage consumer doesn't care or know that the Clipper is a bad idea.  If\nthere is a perceived need for cellular encryption, then the companies will\nprovide one.  Most likely, a standard will emerge.  But if the Clipper is\ntoo expensive (and $25 a chip is way too much) then they will develope their\nown or buy a cheaper one.  I give SCT my full support, and hope the\nClipper chip goes the way of the Beta video tape format.\n\nAlso hope they get sued over re-using the name Clipper.\n\n-- \n ---------------------------------------Cyberspace:--------------------------\n| David T. Croley | MCC - Exp Sys Lab | A place not real, no stone, no steel.|\n| croley@mcc.com  | UT Austin, Texas  | A ghost unseen...the world \"between\".|\n ----------------------------------------------------------------------------\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6345, "properties": {"category": "sci.space", "text": "From: apryan@vax1.tcd.ie\nSubject: Order MOORE's book to restore Great Telescope\nLines: 41\nNntp-Posting-Host: vax1.tcd.ie\nOrganization: Trinity College Dublin\nLines: 41\n\nSeveral people have enquired about the availability of the book about the\nGreat 72\" reflector built at Birr Castle, Ireland in 1845 which remained the\nlargest in the world until the the start of the 20th century.\n\n\"The Astronomy of Birr Castle\" was written by Patrick Moore who now sits on\nthe committee which is going to restore the telescope. (The remains are on\npublic display all year round - the massive support walls, the 60 foot long\ntube, and other bits and pieces). This book is the definitivie history of\nhow one man, the Third Earl of Rosse, pulled off the most impressive\ntechnical achievement, perhaps ever, in the history of the telescope, and\nthe discoveries made with the instrument.\n\nPatrick Moore is donating all proceeds from the book's sale to help restore\nthe telescope. Astronomy Ireland is making the book available world wide by\nmail order. It's a fascinating read and by ordering a copy you bring the day\nwhen we can all look through it once again that little bit nearer.\n\n=====ORDERING INFORMATION=====\n\"The Astronomy of Birr Castle\" Dr. Patrick Moore, xii, 90pp, 208mm x 145mm.\nPrice:\nU.S.: US$4.95 + US$2.95 post & packing (add $3.50 airmail)\nU.K. (pounds sterling): 3.50 + 1.50 post & packing\nEUROPE (pounds sterling): 3.50 + 2.00 post and packing\nREST OF WORLD: as per U.S. but funds payable in US$ only.\n\nPAYMENT:\nMake all payments to \"Astronomy Ireland\".\nCREDIT CARD: MASTERCARD/VISA/EUROCARD/ACCESS accepted by email or snail\nmail: give card number, name & address, expiration date, and total amount.\nPayments otherwise must be by money order or bank draft.\nSend to our permanent address: P.O.Box 2888, Dublin 1, Ireland.\n\nYou can also subscribe to \"Astronomy & Space\" at the same time. See below:\n----------------------------------------------------------------------------\nTony Ryan, \"Astronomy & Space\", new International magazine, available from:\n              Astronomy Ireland, P.O.Box 2888, Dublin 1, Ireland.\n6 issues (one year sub.): UK 10.00 pounds, US$20 surface (add US$8 airmail).\nACCESS/VISA/MASTERCARD accepted (give number, expiration date, name&address).\n\n  (WORLD'S LARGEST ASTRO. SOC. per capita - unless you know better? 0.033%)\nTel: 0891-88-1950 (UK/N.Ireland) 1550-111-442 (Eire). Cost up to 48p per min\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6346, "properties": {"category": "rec.sport.baseball", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: Let's Talk Phillies\nOrganization: Adobe Systems Incorporated\nLines: 16\n\nIn article <1993Apr15.232551.14817@leland.Stanford.EDU> eechen@leland.Stanford.EDU (Emery Ethan Chen) writes:\n>One phrase for you....FUCK YOU!!!!\n>Thanks.\n\nPerhaps it's time to start rec.sport.baseball.graffiti, where the kiddies\ncan go yell taunts and insults at each other and leave the rest of us in\npeace.  \n\nSherri Nichols\nsnichols@adobe.com\n\n\n\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6347, "properties": {"category": "rec.motorcycles", "text": "From: prange@nickel.ucs.indiana.edu (Henry Prange)\nSubject: Re: BMW MOA members read this!\nNntp-Posting-Host: nickel.ucs.indiana.edu\nOrganization: Indiana University\nLines: 21\n\nI first heard it about academic politics but the same thought seems to\napply to the BMWMOA\n\n\"The politics is so dirty because the stakes are so small.\"\n\nWho cares? I get my dues-worth from the ads and occasional technical\narticles in the \"News\". I skip the generally drab articles about someone's\ntrek across Iowa. If some folks get thrilled by the power of the BMWMOA,\nthey deserve whatever thrills their sad lives provide.\n\nBTW, I voted for new blood just to keep things stirred up.\n\nHenry Prange\nPhysiology/IU Sch. Med., Blgtn., 47405\nDoD #0821; BMWMOA #11522; GSI #215\nride = '92 R100GS; '91 RX-7 conv = cage/2; '91 Explorer = cage*2\nThe four tenets of all major religions:\n1. I am right.\n2. You are wrong.\n3. Hence, you deserve to be punished.\n4. By me.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6348, "properties": {"category": "soc.religion.christian", "text": "From: heath@athena.cs.uga.edu (Terrance Heath)\nSubject: Re: Pantheism & Environmentalism\nOrganization: University of Georgia, Athens\nLines: 14\n\nIn article <Apr.11.01.02.34.1993.17784@athos.rutgers.edu> Steve.Hayes@f22.n7101.z5.fidonet.org writes:\n\n\tI realize I'm entering this discussion rather late, but I do\nhave one question. Wasn't it a Reagan appointee, James Watt, a\npentacostal christian (I think) who was the secretary of the interior\nwho saw no problem with deforestation since we were \"living in the\nlast days\" and ours would be the last generation to see the redwoods\nanyway?\n\n-- \nTerrance Heath\t\t\t\theath@athena.cs.uga.edu\n******************************************************************\nYOUR COMFORT IS MY SILENCE!!!!! ACT-UP! FIGHT BACK! TALK BACK!\n******************************************************************\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6349, "properties": {"category": "comp.windows.x", "text": "From: gse9k@uvacs.cs.Virginia.EDU (Scott Evans)\nSubject: MenuButton Widget Question\nReply-To: thrash@virginia.edu (Scott Evans)\nOrganization: make it stop\nLines: 9\n\nI'm trying to create a button that has both a label and a bitmap using\nthe MenuButton widget.  Is this possible?  Right now, all I get is the\nbitmap -- no sign of the label.\n\nAny help would be appreciated.\n\n\n\nscott\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6350, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lriggins@afit.af.mil (L. Maurice Riggins)\nSubject: LCIII Cache Card?\nSummary: Rumors? Announcements?\nNntp-Posting-Host: bat.afit.af.mil\nOrganization: Air Force Institute of Technology\nLines: 4\n\nAnyone seen any press releases or heard any rumors of a cache card\nfor the LCIII, now that it has the full data bus width on the PDS slot?\n-- \nMaurice               INTERNET:  lriggins@afit.af.mil\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6351, "properties": {"category": "sci.electronics", "text": "From: jeff@nsr.hp.com (Jeff Gruszynski)\nSubject: Re: digital voltmeter - how does it work?\nOrganization: Hewlett-Packard\nLines: 66\nDistribution: world\nNNTP-Posting-Host: hpmvd069.nsr.hp.com\nX-Newsreader: TIN [version 1.1.2 PL7]\n\nMAMISHEV, ALEXANDER VALENTINO (avm1993@sigma.tamu.edu) wrote:\n:      Hello, \n: \n:    Let me introduce a problem:\n: \n:    When I measure a sinusoidal wave (voltage) with a digital voltmeter, using \n: AC mode, my output is an rms value (a peak value over 2 squared). / Right? / \n:    When I measure a square wave in the same mode (AC), my output is equal \n: to a peak value, actually, to the upper flat boundary of the wave.\n:    I assumed, that a digital voltmeter makes some kind of integration of the \n: input value, and divides it over the wave period. / Right?/\n:    Now, I used it to measure the same  square wave as above, but distorted \n: by high-frequency harmonics. Ideally, output should be the same, but...\n: The output value was only about 10% of the previous one! \n:    Why? What is the nature of this output value? What does the voltmeter \n: actually measure? And what does it show?  \n\n\nRe: RMS readings\n\nUnless the DVM *says* it's measuring RMS, it's probably Average voltage.\nThe input is diode rectified and measured as DC.  If it says it's RMS\nand but measures square/triangle/etc.  incorrectly, it's measuring\naverage and multipling by a correction that's *only* true for sine waves\n(i.e.  Vave*(0.707/0.63) = Vrms).  If you want correct RMS for (most)\nany waveform, you need a \"True-RMS\" DVM/DMM which literally does the\nRoot-Mean-Square calculation in either analog or digital circuitry.\n\n: \n:    Related question (less important to me):\n:    What are advantages and disadvantages of digital voltmeters to compare with \n: analog ones? \n\nThe last significant advantage of analog (IMO) ** was ** being able to\n\"see\" the signal if it was changing over time (e.g.  checking\nelectrolytic capacitors).\n\nAnymore, most DMM have bargraphs, etc. that duplicate this.\n\n: \n:    Thank you for your attention, you could mail me your opinion at\n: avm1993@zeus.tamu.edu or open a discussion here. I would appreciate either \n: way.\n: \n: \n: Alexander V. Mamishev\n: \n: ____________________________________________________________________________\n: Power System Automation Laboratory    <>   phone office (409) 845-4623    \n: Department of Electrical Engineering  <>   phone home   (409) 846-5850\n: Texas A&M University                  <>   fax   (409) 862-2282\n: College Station, TX 77843, USA        <>   Internet: avm1993@zeus.tamu.edu\n: ----------------------------------------------------------------------------\n: \n\n--\n================================================================================\nJeff Gruszynski\nSemiconductor Test Equipment\nSystems Engineer\nHewlett-Packard\n================================================================================\n(415) or T 694-3381\njeff@hpmvd061.nsr.hp.com\njeff@hpuplca.nsr.hp.com\n================================================================================\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6352, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: smace@nyx.cs.du.edu (Scott Mace)\nSubject: Re: IDE vs SCSI (here we go again.....)\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 92\n\nIn article <1993Apr12.171250.486@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>In article <ercC57245.H2w@netcom.com> erc@netcom.com (Eric Smith) writes:\n>>\n>>SCSI is better because it has a better future, and it has a lot of\n>>minor advantages right now.  IDE cards are cheaper right now, but will\n>>be obsolete in a few years.  (In fact, IDE cards are so cheap, they\n>>might as well be free.  The real cost is in the IDE drives.)  SCSI\n>>cards cost more, but they are worth it.\n>\n\n>I almost got a hernia laughing at this one.\n\nYou'll probably get one when you realize that your $100 vesa super\ndooper local bus ultra high tech controller sucks...\n\n>If anything, SCSI (on a PC) will be obsolete-> killed off by Vesa Local\nWith any luck PC bus archeitecture will be doen any with by sbus.\n\nHave you ever seen what happens when you hook a busmaster controller to\na vesa local bus.  It actually  slows down your system\n>Bus IDE.  It must be real nice to get shafted by $20-$100 bucks for the\n>extra cost of a SCSI drive, then pay another $200-$300 for a SCSI controller.\n\nMaybe my workstation doesn't understand what your vesa local bus\nIDE is\n\nVesa local bus will be killed off by pcmi? whatever intels spec is.\nVLBUS it not good for much more than vga cards.\n\nTo each his own.  I'll laugh when you start crying over how much you\nspent for your 2 little ide drives and then finding out you need more\nspace.\n>\n>>The biggest advantage of SCSI right now is that you can add more\n>>different kinds of devices, such as tapes, etc., easily, and can add\n>>bigger disks.  The best and most cost effective hard disks available\n>>are SCSI.\n\nHere Here....\n\n\n>\n>Only of you need drives larger then 500 meg.  Oh yes, gotta have 10 megs/sec\n>transfer rate for those speedy tape backups and cd rom drives.\n\ndon't stick your foot in your mouth when you make a statement you know\nnothing about.\n\n\nI'd rather wait a second compared to the 5 minutes and ide would take.\n(obviously exaggerated).\n\nHave you ever tried to backup 2 gigs of disk?  Oh I forgot you can't\nbecause you have an ide and no one makes ide disks that big.\n\n>\n>Basically, if a person *has* to ask which one is better for him/her,\n>then they will *probably* never see the EXPENSIVE benefits from SCSI.\n\nI guess you probably bought a 486sx too\n\n>\n>Also, all this arm-waving about SCSI expandability is a moot point if\n>the user only has one or two drives on it.  And with SCSI those two\n>drives *may* be fast, but that speed is only due to the onboard memory\n>cache -> something I can duplicate with a caching IDE controller.\n\nWhat?  The SCSI-2 FAST,WIDE spec has much more bandwidth than any stupid\nvlbus ide crap....\n\nStop this thread now, Its just cluttering up bandwidth.  If you want\nto read about scsi vs ide just pay a visit to you local usenet archive.\n\nthe best SCSI-2 FAST,WIDE,etc is clearly faster than any the best ide drive.\nAll the response given are based upon personal experience with 1 or 2\ndrives.  You can't judge such completely different interfaces.  \nIDE has the low cost adavantage + a descent performance.\nSCSI has the ability for super high capacity expandibility and speed.\n\nneither one is better in all cases.\n\nIf you don't belive what I said about busmastering and vlbus then pick\nup a back issue of PC-week in whihc they tested vlbus, eisa and isa\nbusmastering cards.\n\nsend flames to /dev/null.....\n\n--\n*********************************************************************\n*    Scott Mace                internet:    smace@nyx.cs.du.edu     *\n*                                           emace@tenet.edu         *\n*********************************************************************\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6353, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: A visit from the Jehovah's Witnesses\nOrganization: Technical University Braunschweig, Germany\nLines: 114\n\nIn article <1993Apr5.091139.823@batman.bmd.trw.com>\njbrown@batman.bmd.trw.com writes:\n \n>> Didn't you say Lucifer was created with a perfect nature?\n>\n>Yes.\n>\n \nDefine perfect then.\n \n \n>> I think you\n>> are playing the usual game here, make sweeping statements like omni-,\n>> holy, or perfect, and don't note that they mean exactly what they say.\n>> And that says that you must not use this terms when it leads to\n>> contradictions.\n>\n>I'm not trying to play games here.  But I understand how it might seem\n>that way especially when one is coming from a completely different point\n>of view such as atheism.\n>\n \nTake your foot out of your mouth, I wondered about that already when I\nwas a Catholic Christian. The fact that the contradiction is unresolvable\nis one of the reasons why I am an atheist.\n \nBelieve me, I believed similar sentences for a long time. But that shows\nthe power of religion and not anything about its claims.\n \n \n>>>Now God could have prevented Lucifer's fall by taking away his ability\n>>>to choose between moral alternatives (worship God or worship himself),\n>>>but that would mean that God was in error to have make Lucifer or any\n>>>being with free will in the first place.\n>>\n>> Exactly. God allows evil, an evil if there ever was one.\n>>\n>\n>Now that's an opinion, or at best a premise.  But from my point of view,\n>it is not a premise which is necessary true, specifically, that it is\n>an evil to allow evil to occur.\n>\n \nIt follows from a definition of evil as ordinarily used. Letting evil\nhappen or allowing evil to take place, in this place even causing evil,\nis another evil.\n \n \n>> But could you give a definition of free will? Especially in the\n>> presence of an omniscient being?\n>>\n>\"Will\" is \"self-determination\".  In other words, God created conscious\n>beings who have the ability to choose between moral choices independently\n>of God.  All \"will\", therefore, is \"free will\".\n>\n \nThe omniscient attribute of god will know what the creatures will do even\nbefore the omnipotent has created them. There is no choice left. All is known,\nthe course of events is fixed.\n \nNot even for the omniscient itself, to extend an argument by James Tims.\n \n \n>>>If God is omniscient, then\n>>>clearly, creating beings with free moral choice is a greater good than\n>>>the emergence of ungodliness (evil/sin) since He created them knowing\n>>>the outcome in advance.\n>>\n>> Why is it the greater good to allow evil with the knowledge that it\n>> will happen? Why not make a unipolar system with the possibility of\n>> doing good or not doing good, but that does not necessarily imply\n>> doing evil. It is logically possible, but your god has not done it.\n>\n>I do not know that such is logically possible.  If God restrains a\n>free being's choice to choose to do evil and simply do \"not good\",\n>then can it be said that the being truly has a free moral choice?\n>And if \"good\" is defined as loving and obeying God, and avoiding\n>those behaviors which God prohibits, then how can you say that one\n>who is \"not good\" is not evil as well?  Like I said, I am not sure\n>that doing \"not good\" without doing evil is logically possible.\n \nAnd when I am not omnipotent, how can I have free will? You have said\nsomething about choices and the scenario gives them. Therefore we have\nwhat you define as free will.\n \nImagine the following. I can do good to other beings, but I cannot harm them.\nEasily implemented by making everyone appreciate being the object of good\ndeeds, but don't make them long for them, so they can not feel the absence\nof good as evil.\n \nBut whose case am I arguing? It is conceivable, so the omnipotent can do it.\nOr it would not be omnipotent. If you want logically consistent as well, you\nhave to give up the pet idea of an omnipotent first.\n \n(Deletion)\n>\n>Perhaps it is weak, in a way.  If I were just speculating about the\n>ubiquitous pink unicorns, then there would be no basis for such\n>speculation.  But this idea of God didn't just fall on me out of the\n>blue :), or while reading science fiction or fantasy.  (I know that\n>some will disagree)  :)  The Bible describes a God who is omniscient,\n>and nevertheless created beings with free moral choice, from which\n>the definitional logic follows.  But that's not all there is to it.\n>There seems to be (at least in my mind) a certain amount of evidence\n>which indicates that God exists and that the Biblical description\n>of Him may be a fair one.  It is that evidence which bolsters the\n>argument in my view.\n \nThat the bible describes an omniscient and omnipotent god destroys\nthe credibility of the bible, nothing less.\n \nAnd a lot of people would be interested in evidence for a god,\nunfortunately, there can't be any with these definitions.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6354, "properties": {"category": "sci.electronics", "text": "From: jdz1@Ra.MsState.Edu (John D. Zitterkopf)\nSubject: Info: NEC70001AB Amp. IC & ~20W AMP secs & possible PSPICE models\nKeywords: Audio, AMPS\nNntp-Posting-Host: ra.msstate.edu\nOrganization: Mississippi State University\nLines: 40\n\nHi,\n\n\tBeing a Electronic Engineering Student with only Electronic II under\nmy belt, I find myself *needing* to build a moderate wattage Audio Amp. So, \nI'll throw out a couple of question for the vast knowledge of the 'net'!\n\n\tPlease Explain how Watts are calculated in Audio Amp circuits. No,\nNot P=I*E, Just how it relates to one of the following:\n\n\tAi [Current Gain]\n\tAv [Voltage Gain]\n\tAp [Power Gain]\n\tor whatever.\n\nI already have a ?wonderful? cheap I.E <$20 schematic for a 20W amp, but\nI would like to Cross/improve the circuit. The problem is that the parts\nlist has IC1 and IC2 as NEC70001AB amplifiers. They look like ?11 pin? \nSIP packages with a heatsink. This schematic was published in a 1991 mag\nso it may be non-existant now. Anyway, I tried looking up a replacement in\nthe latest Digi-key Cat and found it  not listed 8(. The closes I could\nfigure was a 9 pin SIP as TDA1520BU. Anyone got any Ideas? \n\n\tI thought, hey I can rin a PSPICE simulation using 741 opamp \nmodels. Yea, great! It worked. But, I guess the 741 wasn't made for High\npower amps. As a result, I got a Voltage gain of ~15mV/V. Worse than\nI started with 8(... Does anyone have a PSPICE CKT file with cheap yet\ngood gain? How about some models for some of the chips listed in this \nE-mail? Any ASCII Chip info you guys can send me? \n\nI'm open to Suggestions/Ideas/Comments/Help!\nPlease E-mail since I have little time to search the News... \nAnd I'll post if there's and interest!\nJohn\n\n\n--\n ____________   _------_  |||IBM & |      EE majors Do it Best 8-)\n  --------\\\\ ] ~-______-~ |||Atari |~~~~~~~~~John D. Zitterkopf~~~~~~~~~~~~~\n     (~~~~~\\\\|_(__ ~~    / | \\Rules!jdz1@ra.MsState.edu  jdz1@MsState.bitnet\n      \\______| (        /  |  \\    |AOL: zitt@aol.com  jdz1@isis.MsState.edu \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6355, "properties": {"category": "sci.space", "text": "From: wats@scicom.AlphaCDC.COM (Bruce Watson)\nSubject: Quotation Was:(Re: <None|)\nOrganization: Alpha Science Computer Network, Denver, Co.\nLines: 12\n\nIn article <1993Apr16.155656.1@otago.ac.nz| bioccnt@otago.ac.nz writes:\n|\n|Can someone please remind me who said a well known quotation? \n|\n|He was sitting atop a rocket awaiting liftoff and afterwards, in answer to\n|the question what he had been thinking about, said (approximately) \"half a\n|million components, each has to work perfectly, each supplied by the lowest\n|bidder.....\" \n|\nSounds similar to something Wally Schirra said.\n-- \nBruce Watson (wats@scicom.alphaCDC.COM) Bulletin 629-49 Item 6700 Extract 75,131\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6356, "properties": {"category": "sci.space", "text": "From: jscotti@lpl.arizona.edu (Jim Scotti)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 33\n\nIn article <1993Apr21.170817.15845@sq.sq.com> msb@sq.sq.com (Mark Brader) writes:\n>\n>> > > Also, peri[jove]s of Gehrels3 were:\n>> > > \n>> > > April  1973     83 jupiter radii\n>> > > August 1970     ~3 jupiter radii\n>\n>> > Where 1 Jupiter radius = 71,000 km = 44,000 mi = 0.0005 AU. ...\n>\n>> Sorry, _perijoves_...I'm not used to talking this language.\n>\n>Thanks again.  One final question.  The name Gehrels wasn't known to\n>me before this thread came up, but the May issue of Scientific American\n>has an article about the \"Inconstant Cosmos\", with a photo of Neil\n>Gehrels, project scientist for NASA's Compton Gamma Ray Observatory.\n>Same person?\n\nNeil Gehrels is Prof. Tom Gehrels son.  Tom Gehrels was the discoverer\nof P/Gehrels 3 (as well as about 4 other comets - the latest of which\ndoes not bear his name, but rather the name \"Spacewatch\" since he was\nobserving with that system when he found the latest comet).  \n\n>-- \n>Mark Brader, SoftQuad Inc., Toronto\t\"Information! ... We want information!\"\n>utzoo!sq!msb, msb@sq.com\t\t\t\t-- The Prisoner\n\n---------------------------------------------\nJim Scotti \n{jscotti@lpl.arizona.edu}\nLunar & Planetary Laboratory\nUniversity of Arizona\nTucson, AZ 85721 USA\n---------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6357, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nOrganization: Hand Held Products, Inc.\nLines: 70\nDistribution: na\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <C519Mt.Apq@magpie.linknet.com> manes@magpie.linknet.com (Steve  \nManes) writes:\n> Jim De Arras (jmd@cube.handheld.com) wrote:\n> : In article <C4u3x5.Fw7@magpie.linknet.com> manes@magpie.linknet.com (Steve  \n> : Manes) writes:\n> : [...]\n> : > I don't know how anyone can state that gun control could have NO\n> : > effect on homicide rates.  There were over 250 >accidental< handgun\n> : > homicides in America in 1990, most with licensed weapons.  More\n> : > American children accidentally shot other children last year (15)\n> : > than all the handgun homicides in Great Britain.  (Source: National\n> : > Safety Council.  Please... no dictionary arguments about RATES vs\n> : > TOTAL NUMBERS, okay?  They're offered for emphasis, not comparison).\n> : > \n> \n> : You're a great debater.  You chose your sources of information, claim them\n> : to  be superior.  I'm not aware of using any numbers from the ozone, unless  \nyou consider those I got from you to be such.\n> \n> I've made no such claim.  Please direct my attention towards any\n> posting of mine where I claimed superior sources of information.\n> It's probably because I bothered to post any references at all while\n> others seem content to post numbers pulled from the ozone, that\n> you've confused it with fact-twisting.  If so, I apologize.  \n> \n\nYes, You state the reference, and then YOU claim it's a good or fair treatment.  \n\n> : then take those twisted numbers and twist them further by trying  \n> \n> Well then, here's fair opportunity for you to prove that I've \"twisted\n> numbers.\"  On what grounds do you contradict those references?  Do you have\n> any citations... any sources of your own that I can take similar\n> gratuitous shots at?\n> \n\nYou fail to see the differences between absolute numbers and rates.\n\n> : to compare absolute numbers between two countries that have major  \npopulation  \n> : differences, the USA and GB, and then whine that you are afraid someone  \nmight  \n> : attack your process, and so claim the numbers are for \"emphasis, not  \n> : comparison\"?  Emphasis of what?\n> \n> Nitpicking and scolding is a whiney debating style, Jim.\n> \n\nNo, you just miss the point.  By your methods, I can prove gun control to be a  \ntotal failure.  New York's total homocide count, with it's strict gun control,  \nis MUCH higher than Rhode Island's, with it's less strict gun control.  FAR  \nmore folks are killed in New York, than Rhode Island.  Therefore, according to  \nMane Logic(tm), gun control has made New York a much more dangerous place than  \nRhode Island.  Remember, it's \"Nitpicking\" and \"a whiney debating style\" to  \npoint out the differences between New York and Rhode Island that might defeat  \nmy argument.\n\n> : Anything else is blowing smoke.\n> \n> You seddit, brudda.\n\nNow you agree?  Wow, a break-through!\n>  \n> -- \n> Stephen Manes\t\t\t\t\t   manes@magpie.linknet.com\n> Manes and Associates\t\t\t\t   New York, NY, USA  =o&>o\n\n\n--\nJim\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6358, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nLines: 16\n\n: At the company I worked for previously, I received a file that was des encryped\n: and the person that had sent it, went on vaction.  Rather than wait two weeks\n: I set up a straight frontal attack with one key at a time.  It only took two(2)\n: days to crack the file.  No, I don't have any faith in DES.\n\n: A.G.\n\nFun!  Three questions:\n\n1) What hardware did you use?\n2) When you found the key, was there anything about it that was special\n   that meant you had been lucky to find it early? (Like the first 30 bits\n   all being 0)\n3) ... or did you mean a dictionary attack rather than a binary key attack?\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6359, "properties": {"category": "sci.med", "text": "Subject: good book\nFrom: RGINZBERG@eagle.wesleyan.edu (Ruth Ginzberg)\nDistribution: world\nOrganization: Philosophy Dept., Wesleyan University\nNntp-Posting-Host: wesleyan.edu\nX-News-Reader: VMS NEWS 1.20Lines: 48\nLines: 48\n\nHaving been gone for 10 days, I'm way behind on my News reading, so many\npardons if I am repeating something that has been said already.\n\nI read a good book while I was away, THE ANTIBIOTIC PARADOX: HOW MIRACLE DRUGS\nARE DESTROYING THE MIRACLE, Stuart B. Levy, M.D., 1992, Plenum Press,\nISBN:0-306-44331-7.\n\nIt is about drug resistant microorganisms & the history of antibiotics.  It\nis interesting & written at a level which I think many sci.med readers would\nappreciate -- which is:  it assumes an intelligent reader who is capable of\nunderstanding scientific concepts, but who may not yet have been exposed to\nthis particular information. I.e., it assumes you are smart enough to\nunderstand it, but it does not assume that you already have a degree in\nmicrobiology or medicine. Table of contents:\n\nChapter 1\n\tFrom Tragedy the Antibiotic Age is Born\nChapter 2\n\tThe Disease and the Cure:  The Microscopic World of Bacteria and\n\tAntibiotics\nChapter 3\n\tReliance on Medicine and Self-Medication: The Seeds of Antibiotic\n\tMisuse\nChapter 4\n\tAntibiotic Resistance:  Microbial Adaptation and Evolution\nChapter 5\n\tThe Antibiotic Myth\nChapter 6\n\tAntibiotics, Animals and the Resistance Gene Pool\nChapter 7\n\tFurther Ecological Considerations:  Antibiotic Use in Agriculture,\n\tAquaculture, Pets, and Minor Animal Species\nChapter 8\n\tFuture Prospects:  New Advances Against Potential Disaster\nChapter 9\n\tThe Individual and Antibiotic Resistance\nChapter 10\n\tAntibiotic Resistance: A Societal Issue at Local, National, and\n\tInternational Levels.\n\nIncludes bibliography and index.\n\nI personally found that it made very good Airplane-Reading.\n-rg\n\n------------------------\nRuth Ginzberg <rginzberg@eagle.wesleyan.edu>\nPhilosophy Department;Wesleyan University;USA\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6360, "properties": {"category": "rec.motorcycles", "text": "From: maven@mavenry.altcit.eskimo.com (Norman Hamer)\nSubject: Good Reasons to Wave at each other\nX-AltNet-ID: 222834\nLines: 11\n\n \n One of those \"morning, just getting the coffee in me\" thoughts:\n \n Waving at other bikers makes more sense than just \"Hey, how's it going, \nnice to meet you on the road, have a good ride\"\n \n 1) If you're watching for other bikes to wave to, it means your attention \nis on the road, where it should be, and you're more likely to see cages.\n \n 2) It keeps you in the habit of watching really carefully for bikes when \nyou're IN a cage. This is a Good Thing. \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6361, "properties": {"category": "comp.windows.x", "text": "From: rar@schooner.otra.COM (Rich Rollman)\nSubject: File Formats\nOrganization: The Internet\nLines: 15\nTo: xpert@expo.lcs.mit.edu\n\nHi folks,\n\nCan anyone give me some information, the location of some\ninformation, or some reference material for the following\nfile formats: WIFF, MO;DCA/IOCA, PCX.\n\nIf this is not quite the appropriate place to ask such\nquestions, please let me know a more appropriate one and\naccept my apologies in advance.\n\nThanks for your help,\n\nRich Rollman\nDogleg Systems, Inc.\n(908) 389-9597\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6362, "properties": {"category": "rec.motorcycles", "text": "From: fester@island.COM (Mike Fester)\nSubject: Re: Stolen  AARGHHHH.....\nOrganization: /usr/local/rn/organization\nLines: 43\n\nIn article <JPOLITO.93Apr15095753@sysgem1.encore.com> jpolito@sysgem1.encore.com (Jonathan Polito) writes:\n>\n>In article <1993Apr15.002222.23057@microunity.com> ericm@microunity.com (Eric Murray) writes:\n>\n>   Watch out.  Often when some scumbag steals the cover, that means\n>   that they were or are looking to steal the bike.  In my case, I\n>   had a faded cover stolen off a bmw R100RS that was stashed in an\n>   apartment carport and not visible from the street.  They evidently\n>   decided the beemer wasn't worth stealing, but did try the next night to\n>   steal a Honda Hurricane 600 parked in the next apartment building.\n>   A neighbor heard them wheeling it out and called the cops.\n>\n>\n>I know this is just setting myself up, but this is actually one of the\n>things that is really good about BMW bikes.  From all accounts I've\n>heard practically no one steals BMWs. Probably it is similar for Moto\n>Guzzis and other relative \"exotics\" since there isn't a large demand\n>for parts and the bike would be much easier to track down. It seems\n>that the most stolen bikes are Harleys and 600cc Jap sport bikes. \n\nWell, I'd say you're mostly right, but for different reasons. (BTW, as of a\ncouple years ago, the most stolen bikes in Orange County and SF were 750\nGSX's and Ninjas). Probably the biggest reason BMWs aren't ripped off is that\nmost people who buy BMWs will only deal with the actual BMW dealer, or mail-\norder types. Most of these can have their inventory checked fairly easily\nby law-enforcement types, and their mark-up is usually sufficient to keep \nthem honest about acquiring parts. \n\nFor Harleys and rice-rockets, you've got 2 different situations. There is a\nHUGE aftermarket in Harley parts, so a bike can be parted out fairly easily.\nDitto the non-sport Japanese bikes, but the prices on the parts for these are\nnot as high, comparatively. For the 'rockets', anytime a bike goes down, the \nplastic is usually cracked, and is expensive to replace. It's fairly easy,\nthen, for a disreputable shop to take a fairing from a stolen bike, slap it\non a bike in for repair, repaint it, and make a tidy profit. The other parts,\nmore traceable, can be used, or discarded if they are too traceable.\n\nMike\n-- \nDisclaimer - These opiini^H^H damn! ^H^H ^Q ^[ .... :w  :q  :wq  :wq! ^d  ^X ^?\nexit X Q  ^C ^? :quitbye  CtrlAltDel   ~~q  :~q  logout  save/quit :!QUIT\n^[zz ^[ZZZZZZ ^vi  man vi ^@  ^L  ^[c  ^# ^E ^X ^I ^T ? help  helpquit ^D  ^d !!\nman help ^C ^c :e! help exit ?Quit ?q CtrlShftDel \"Hey, what does Stop L1A d...\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6363, "properties": {"category": "comp.graphics", "text": "From: erikb@idt.unit.no (Erik Brenn)\nSubject: graphics formats\nReply-To: erikb@idt.unit.no (Erik Brenn)\nOrganization: Norwegian Institue of Technology\nLines: 14\n\nI'm currently looking for information about different graphics\nformats, especially PPM, PCX BMP and perhaps GIF.\nDoes anyone know if there exist any files at some site\nthat describes these formats ???\n\nThanks !\n\n\n-- \n          ~~~                       \n         (o o)           | Erik Brenn ,email: erikb@idt.unit.no\n        (  O  )   oOOO   | Faculty of Computer Science & Telematics\n         \\\\_//    / /    | The Norwegian Institute of Technology, Trondheim\n-oOOO--------------------| Not to make sense, just cents ! \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6364, "properties": {"category": "comp.sys.mac.hardware", "text": "From: noah@apple.com (Noah Price)\nSubject: Re: How long do RAM SIMM's last?\nDistribution: usa\nOrganization: (not the opinions of) Apple Computer, Inc.\nLines: 12\n\nIn article <1993Apr11.234818.1755@ultb.isc.rit.edu>,\njek5036@ultb.isc.rit.edu (J.E. King) wrote:\n> \n> Doesn't a 1 MB SIMM have about 1024 * 1024 * 8 moving flip-flops?\n\nThey don't move, to anybody much bigger than an electron :-)\n\nnoah\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nnoah@apple.com                                 Macintosh Hardware Design\n...!{sun,decwrl}!apple!noah   (not the opinions of) Apple Computer, Inc.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.300+0000", "event": "documents", "entityId": 6365, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: volkert@kub.nl (Volkert)\nSubject: Q: which of these CD-ROM players would you choose for OS/2?\nOrganization: Tilburg University, Tilburg, The Netherlands\nNntp-Posting-Host: itkdsh.kub.nl\nLines: 38\n\n-------------------------------------------------------------------------\nNetters!\n\nI need a cdrom drive as my order was cancelled and thought 'Why not ask\nthe net.community'? I was ordering a Nec CDR-74 but saw so much cheaper\nones that I want to know more.\nThe drive will be used to install software and (if available) for listening\nto CD's. Perhaps some day I'll want to use it to read the other CD's, but\nthat's not really relevant at the moment.\n\nI've been offered the following CD-ROM players, for the prices stated.\nThey all claim to have SCSI-I, and operate under OS/2.\nThe drives are not listed in the cdrom-faq and therefor, please give\nyour opinions on the drives, i've got the impression that they're not\nall SCSI. Actually the Nec was listed as non-scsi in the cdrom-faq and as\na compatible SCSI product in the os2faq.\n\nI've calculated the prices as having dutch guilders times 2. It's actually\nabout times 1.8.\n\nMitsumi CRMC     $240\nPhilips LMS-I    $300\nPhilips 205      $350\nToshiba ?        $370\nNec CDR-74       $650\n\nWho bought that Trantor that is in the faq? It's extremely cheap and SCSI,\nso what's the trick or where can I order it (Holland using MasterCard).\n\nTrantor T128     $200\n\nregards, JV\n                                                                /////\nname:    J-V Meuldijk                                          [ o o ]\naddress: gildelaar 4                                            \\_=_/\n         4847 hw teteringen       fax:     +3176-600220         _| |_ \n         holland                  e-mail:  volkert@kub.nl      / \\_/ \\\n_____________________________________________________________oOOO___OOOo__\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6366, "properties": {"category": "talk.politics.guns", "text": "From: hrubin@pop.stat.purdue.edu (Herman Rubin)\nSubject: Re: Gritz/JBS/Liberty Lobby/LaRouche/Christic Insitute/Libertarian/....\nOrganization: Purdue University Statistics Department\nLines: 49\n\nIn article <1993Apr17.082102.4155@ccsvax.sfasu.edu> f_gautjw@ccsvax.sfasu.edu writes:\n>In article <KCKLUGE.93Apr16155756@krusty.eecs.umich.edu>, kckluge@eecs.umich.edu (Karl Kluge) writes:\n\n>> \n>> ...and I'm sure that people who were big fans of fuedalism pissed and\n>> moaned about the emergence of the modern nation-state. Imagine, the King\n>> allowing serfs their freedom if they could live in the city for a year!\n>> Times change, technology changes, viable forms of social organization\n>> change. While concerns about preserving Western notions of civil liberties\n>> in the face of cultures with very different values is a valid one, it's\n>> a waste of effort to try to turn back the tide. It's much smarter to focus\n>> on trying to make sure that the emerging forms of social organization are\n\n>\n>\tYour response is yet another sign of the trend towards One World\n>Government.  Many people such as yourself, who are otherwise probably\n>likeable and intelligent, show every sign of having been successfully\n>brainwashed.  You don't recognize that your \"inevitable tide\" is rolling\n>into chaos and in no way represents an advance for civilization.  Some\n>of us do indeed \"lament the passing of old forms\", such as the Bill of\n>Rights, which are indeed inalienable rights of man that cannot be\n>changed, transferred or surrendered...rights of man that far transcend\n\n>\n>\tYes, Napoleon wanted a Grand New Order.  Hitler wanted a\n>Thousand Year Reich.  Lenin knew that Bolshevism would give us the\n>Universal New Man.  The New World Order is just so much of the same\n>old tired garbage.  The pathetic part is that so many Americans seem\n\n\"Put not your trust in princes\" is the Biblical proverb.  The modern\nanalog is governments.  At the time of the founding of the US, the\nidea that citizens had rights above those of the government was not\nthat common, but was explicit in the writings of the founders.  To a\nconsiderable extent, Englishmen also had those rights.\n\nYes, times change, and technology changes.  The possibility of \na few governments enserfing all of mankind was not possible until\nquite recently.  In the feudal system, the lord was almost as\nrestricted as the serfs, so having the people enserf themselves\ndoes not make anything better; most feudal lords, and even most\nslaveowners, did not mistreat those under them.\n\nFreedom of speech and freedom of religion are under real attack NOW.\n\n-- \nHerman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907-1399\nPhone: (317)494-6054\nhrubin@snap.stat.purdue.edu (Internet, bitnet)  \n{purdue,pur-ee}!snap.stat!hrubin(UUCP)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6367, "properties": {"category": "misc.forsale", "text": "From: suraj@apollo.cs.jhu.edu (Suraj Surendrakumar)\nSubject: ==> NEW STEREO SYSTEM/COMPONENTS FOR SALE <==\nOrganization: The Johns Hopkins University CS Department\nDistribution: usa\nLines: 29\n\n\n\n10 month old stereo system for sale. Luxman R-351 receiver, Onkyo TA-RW404\ntape deck, and Polk Monitor M4.6 book shelf speakers are for sale. Receiver\nhas 5 year warranty, and all equipment is in excellent condition. Paid $950\nfor the system and willing to consider the best offer. Will sell seperate\npieces also if desired. Please send best offer to suraj@cs.jhu.edu.\n\nSpeakers: Polk Monitor M4.6 bookshelf speakers\n\t  Paid $250 pair. Willing to consider best offer.\n\nReceiver: Luxman R-351 receiver with 5 year (yes 5 years) warranty.\n\t  Paid $475. Willing to consider best offer.\n\t  Full remote, 2 pairs of speaker connections,\n\t  60 watts per channel, but drives like a 150 watts per channel\n\t  Has all the standard features, and more.\n\nTape Deck: Onkyo TA-RW404 tape deck\n\t   Paid $275. Willing to consider best offer.\n\t   Dual cassette, Dolby B, C, and HX Pro.\n\t   Input level control for recording, auto reverse both sides.\n           Has all standard features.\n\nSend E-mail with best offer to suraj@cs.jhu.edu\n\n-Suraj\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6368, "properties": {"category": "misc.forsale", "text": "From: schroedj@cnsvax.uwec.edu\nSubject: ForSale 286 and Hard-drive\nOrganization: University of Wisconsin Eau Claire\nLines: 17\n\nPacker Bell 12MHZ 286\n  * 5 16bit expansion slots\n  * 2 5.25\" external drive bays (floppies)\n  * 1 3.5\" internal drive bay (hard-drive)\n  * 1.44MB 3.5\" floppy drive\n  * 1MB of RAM\n \n$140 or Best offer (including shipping)\n \nSegate 32MB ST138N SCSI Hard-drive\n  * Great shape\n  * Controller\n  * 32MB\n  * 3.5\" format\n \n$85 or best offer (including shipping)\n \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6369, "properties": {"category": "alt.atheism", "text": "From: cbrasted@physics.adelaide.edu.au (Charles Brasted)\nSubject: Re: some thoughts.\nOrganization: The University of Adelaide\nLines: 123\nDistribution: world\nNNTP-Posting-Host: adelphi.itd.adelaide.edu.au\nKeywords: Dan Bissell\n\nbissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n\n>\tFirst I want to start right out and say that I'm a Christian.  It \n>makes sense to be one.  Have any of you read Tony Campollo's book- liar, \n>lunatic, or the real thing?  (I might be a little off on the title, but he \n>writes the book.  Anyway he was part of an effort to destroy Christianity, \n>in the process he became a Christian himself.\n\nI assume you are posting to encourage comments - how much history has\nTony Campello read?  Not much it seems. \n\n>\tThe arguements he uses I am summing up.  The book is about whether \n>Jesus was God or not.  I know many of you don't believe, but listen to a \n>different perspective for we all have something to gain by listening to what \n>others have to say.  \n\nIt is good to hear that there are a few reasonable Christians about.\nIf only those christian \"scientists\" would take note.\n\n(In Australia there is a very strong movement, a bunch of christian \nscientists who believe that every single event in the bible is exactly\ntrue, and that there is a rational explanation for it all that can be justified\nby using the laws of physics.  For example, there are a few chaps who are \ntrying to prove that the age of the universe is 6000 years old, and that the\nerror in conventional calculations is the result of the fact that the speed \nlight has been rapidly decaying over the years, and this has not been \naccounted for. :-] )\n\n>\tThe book says that Jesus was either a liar, or he was crazy ( a \n>modern day Koresh) or he was actually who he said he was.\n\nOr (of course), that he never existed, and the bible was a story, and was never \nintended to become a manifesto for a billion people.  Did Tony follow that one\nup?\n\n>\tSome reasons why he wouldn't be a liar are as follows.  Who would \n>die for a lie?  Wouldn't people be able to tell if he was a liar?  People \n>gathered around him and kept doing it, many gathered from hearing or seeing \n>someone who was or had been healed.  \n\nMillions of people have \"died for a lie\".  This  point is difficult to \nsubstantiate since it is not well defined (a great many religious arguments\nwork in that way), but consider the many Aztec warriors who sacrificed \nthemselves to their gods in the belief that this act would bring them victory\nof the Spanish invaders.  The list is endless.  The Aztecs lost, BTW.\n\n>Call me a fool, but I believe he did heal people.\n  \nThat is perfectly reasonable, but it is not grounds for me (or anyone)\nto become a christian.  More to the point, it does not add weight to\nthe claim that Jesus was the \"real thing\".\n\n\n>\tNiether was he a lunatic.  Would more than an entire nation be drawn \n>to someone who was crazy.  Very doubtful, in fact rediculous.  For example \n>anyone who is drawn to David Koresh is obviously a fool, logical people see \n>this right away.\n\nHave you ever seen a documentary about the rise of Nazi Germany?  More to the\npoint, did Tony mention this?  One could hardly call Werner Heisenberg and his\nmany colleagues  fools, or  illogical men, their support of Hitler was based \n(I presume) upon an emotional issue rather than a rational agreement with \nhis principles.  Obviously my argument is invalid if Tony thought that Hitler\nwas sane....\n\n \n\n>\tTherefore since he wasn't a liar or a lunatic, he must have been the \n>real thing.  \n\nHmmm.... I don't think his arguments warrant the use of a \"Therefore...\"\n\n>\tSome other things to note.  He fulfilled loads of prophecies in \n>the psalms, Isaiah and elsewhere in 24 hrs alone.  This in his betrayal \n>and Crucifixion.  I don't have my Bible with me at this moment, next time I \n>write I will use it.\n\nThis is (unfortunately) what alot of religious discussions I have had with\npeople result in - quoting the bible.  The only reasonable way I think\npeople can look at the bible is to treat the stories as some sort of\nmetaphorical representation of the messages that the authors were trying to\npresent.  If someone tries to interpret parts of the bible literally, he or\nshe will end up in all sorts of shit.   \n\nTony's argument would be perfectly reasonable for people who believe\nthe events described in the bible took place, but to convince someone, \nwho thinks the bible is total fiction, that Jesus is real by quoting the\nbook is totally pointless.  For example, in mathematics you cannot say \"a is\nequal to b because a is equal to b\".\n\n  \n\n>\tI don't think most people understand what a Christian is.  \n\nThat would possibly explain why there have so many people being killed \nin religious wars, and why there are hundreds of different versions all\nclaiming to be correct.  \n\nIt \n>is certainly not what I see a lot in churches.  Rather I think it \n>should be a way of life, and a total sacrafice of everything for God's \n>sake.  He loved us enough to die and save us so we should do the \n>same.  Hey we can't do it, God himself inspires us to turn our lives \n>over to him.  That's tuff and most people don't want to do it, to be a \n>real Christian would be something for the strong to persevere at.  But \n>just like weight lifting or guitar playing, drums, whatever it takes \n>time.  We don't rush it in one day, Christianity is your whole life.  \n>It is not going to church once a week, or helping poor people once in \n>a while.  We box everything into time units.  Such as work at this \n>time, sports, Tv, social life.  God is above these boxes and should be \n>carried with us into all these boxes that we have created for \n>ourselves.  \t  \n\nI think if you posted this part to alt.religion you would get more flames\nthan here :-).  I have never really understood why the emotional sentiments\nof a stranger should be of interest to other people. \n\nSomeone famous said that there two evils in life, polititians and churchs, one\nrules by fear of the living, the other by fear of the dead.  If I am pressed I\ncould probably find the exact quotation.\n\nCheers,\nCharles.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6370, "properties": {"category": "sci.electronics", "text": "From: leapman@austin.ibm.com\nSubject: HeathKit/Zenith\nArticle-I.D.: austin.C52EGz.27t3\nReply-To: $LOGIN@austin.ibm.com\nOrganization: IBM Austin\nLines: 3\nOriginator: leapman@junior.austin.ibm.com\n\n\nDoes anyone out there have the toll-free (catalog request and order line) for\nHeathkit/Zenith?  Please post the number if you've got it!  Thanks.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6371, "properties": {"category": "talk.politics.misc", "text": "From: gmw0622@venus.tamu.edu (Mr. Grinch)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nOrganization: GrinchCo\nLines: 73\nDistribution: world\nNNTP-Posting-Host: venus.tamu.edu\nSummary: Feasibility considered\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr18.174237.11229@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes...\n> \n:I'm not sure why you don't consider it an option.  No one suggests that\n:such analysis should be left to \"regulators.\"  In fact, the \"re-inventing\n:government\" movement provides just such a cost/benefit approach to the\n:analysis of public spending.  Libertarians would do well to learn more\n:about it. \n\n\n\nOkay,  let me try to explain this.\n\nWhen one votes for such a creature as a Senator or,  worse yet,  a President,\none votes not for specific policies but for a general package which must cover\nall issues for 4 or 6 years.  As such,  one's influence is highly diluted.\nI might add that,  even if one were free to vote on individual regulations,\nthe vast amount of time required for considering a particular regulation,\ncombined with the very small chance of one's vote making a difference,  would\nmake it unreasonable to expect the voter to make an intelligent decision\nwith respect to specific regulations.     \n> \n> \n:Sorry, but it strikes me that it is the only \"feasible\" approach.  What is\n:not feasible is a wholesale attack on all government regulation and \n:licensing that treats cutting hair and practicing medicine as equivalent\n:tasks.\n\nI'm not sure what you mean by \"feasible\" in this case.  Do you mean that\n[] are impossible in priciple,  or merely that it would be undesirable in\nfact?\n\n\n:Actually, the only areas of public spending above that strike me as \n:generating substantial support among libertarians are police and defense.\n\n2 of the four you saw fit to  mention,  and education of minors is always\nanother possibility,  since minors are generally considered not to be\nresponsible to make their own decisions as adults are.\n\n:(It is an interesting aside that as committed as libertarians claim to\n:be to a principle of non-coercion, the only areas of public spending\n:that they frequently support involve hiring people with guns....hmmm...)\n\nYou say this as if it were surprising,  yet in fact a necessary consequence\nof libertarian philosophy.  All non-coersive functions should be dealt \nwith privately,  therefore it follows that the only functions remaining to\nthe state are the coersive ones.\n\n> \n:Perhaps you have.  May I suggest that you consider that revolutionaries\n:frequently generate support by acting as protectors of \"geezers,\" \n:mothers and children.  Governments that ignore such people on the grounds\n:that \"we don't have much to fear\" from them do so at their own peril.\n\nMuch more likely it's drunken teenagers.  The groups in questionare more \nlikely\nto be worse off during and after a revolution than before.  In the unlikely\nevent that you missed my earlier sarcasm,  let me say this directly:\nThe idea that such programs as Social Security or AFDC should be considered\n\"defense\" (an idea which has been advanced in ths and other newsgroups) is\nso absurd a lie as to be unworthy of consideration.  Do you seriously\ndispute this?\n\n\n\tI don't want to seem patronizing,  but you still seem to be laboring\nunder the delusion that under a socialized economic system it is reasonably\nintelligent and honest persons (like yourself) who make the decisions.\nI feel any third party added to a transaction is every bit as likely to be\nignorant or corrupt as the buyer or seller.  I don't expect you to agree\nwith me,  but you explain why you feel I'm wrong?\n\n\nMr. Grinch\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6372, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pdavies@alchemy.chem.utoronto.ca (Paul Davies)\nSubject: Help!! Video problems.\nOrganization: University of Toronto Chemistry Department\nLines: 13\n\nI am using a 8507 IBM monitor (19\" greysale) with a Trident (1MB) card.\n\nThe screen looks great (Windows) at 640x480 but total shit at 1024x768.\nThere are lots of lines and the image is sorta blurry.\n\nIs there anything I can do.  Do you think it is the monitor?  I know\nthat it is Interlaced at that res but still.\n\nthanks for the help\n\nPaul Davies\npdavies@alchemy.chem.utoronto.ca\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6373, "properties": {"category": "comp.graphics", "text": "From: kph2q@onyx.cs.Virginia.EDU (Kenneth Hinckley)\nSubject:   VOICE INPUT -- vendor information needed\nReply-To: kph2q@onyx.cs.Virginia.EDU (Kenneth Hinckley)\nOrganization: University of Virginia\nLines: 27\n\n\nHello,\n     I am looking to add voice input capability to a user interface I am\ndeveloping on an HP730 (UNIX) workstation.  I would greatly appreciate \ninformation anyone would care to offer about voice input systems that are \neasily accessible from the UNIX environment. \n\n     The names or adresses of applicable vendors, as well as any \nexperiences you have had with specific systems, would be very helpful.\n\n     Please respond via email; I will post a summary if there is \nsufficient interest.\n\n\nThanks,\nKen\n\n\nP.S.  I have found several impressive systems for IBM PC's, but I would \nlike to avoid the hassle of purchasing and maintaining a separate PC if \nat all possible.\n\n-------------------------------------------------------------------------------\nKen Hinckley (kph2q@virginia.edu)\nUniversity of Virginia \nNeurosurgical Visualization Laboratory\n-------------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6374, "properties": {"category": "sci.electronics", "text": "From: kehoe@netcom.com (Thomas David Kehoe)\nSubject: Re: Telephone Controlled Power Bar Needed\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 25\n\n\nI had a similar idea, for a fax/answering machine switch,\nto put both machines on one line.  You order distinctive\nringing from your phone company.  This is $3/month here.\nYou get a second (unpublished) phone number.  When\nsomeone calls this number, your phone rings with short\nrings instead of long rings.\n\nYou set up your answering machine on 4 rings and your fax\non six rings.  You'd give out the new # as your fax #.\nA device would measure the length of rings.  When it\ndetects a short ring, it turns off your answering machine.\nFive rings later your fax picks up the call.\n\nThis should be cheaper and more elegant than the $80\nswitches now available.\n\nBut that's not what I did.  I'm giving out the new\n# to my friends and customers.  This should leave the\nold # for telemarketers, etc.  I won't pick up the\nphone when I hear the long rings.\n-- \n\"Why my thoughts are my own, when they are in, but when they are out\nthey are another's.\" - Susannah Martin, hanged for witchcraft, 1692.\nThomas David Kehoe          kehoe@netcom.com         (408) 354-5926\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6375, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 25\nNNTP-Posting-Host: lloyd.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>> The probability that the \"automobile system\" will kill someone \n>> innocent in an accident goes asymptotically close to 1, just \n>> like the court system.\n>However, anyone who doesn't like the \"automobile system\" can\n>opt out, as I have.\n\nThis isn't true.  Many people are forced to use the \"automobile system.\"\nI certainly don't use it by choice.  If there were other ways of getting\naround, I'd do it.\n\n>Secondly, we do try to make the \"automobile system\" as safe\n>as possible, because we *do* recognize the danger to the \n>innocent, whereas the US - the current example - is not trying\n>to make the \"Court System\" safer, which it could fairly easily\n>do by replacing fatal punishments with non-fatal punishments.\n\nBut I think that the Court system has been refined--over hundreds of\nyears in the US, Britain, and other countries.  We have tried to make\nit as fair as possible.  Can it be made better (without removing the\ndeath penalty)?  Besides, life imprisonment sounds like a fatal punishment\nto me.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6376, "properties": {"category": "talk.politics.mideast", "text": "From: chrism@cirrus.com (Chris Metcalfe)\nSubject: Nazi Eugenic Theories Circulated by CPR => (unconventianal peace)\nOrganization: Cirrus Logic Inc.\nLines: 85\n\nNow we have strong evidence of where the CPR really stands.\nUnbelievable and disgusting.  It only proves that we must\nnever forget...\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\nIn article <1483500348@igc.apc.org> cpr@igc.apc.org (Center for Policy Research) writes:\n>\n>From: Center for Policy Research <cpr>\n>Subject: Unconventional peace proposal\n>\n>\n>A unconventional proposal for peace in the Middle-East.\n\nNot so unconventional.  Eugenic solutions to the Jewish Problem\nhave been suggested by Northern Europeans in the past.\n\n  Eugenics: a science that deals with the improvement (as by\n  control of human mating) of hereditory qualities of race\n  or breed.  -- Webster's Ninth Collegiate Dictionary.\n\n>5.      The emergence of a considerable number of 'mixed'\n>marriages in Israel/Palestine, all of whom would have relatives on\n>'both sides' of the divide, would make the conflict lose its\n>ethnical and unsoluble core and strengthen the emergence of a\n>truly civil society. The existence of a strong 'mixed' stock of\n>people would also help the integration of Israeli society into the\n>Middle-East in a graceful manner.\n\nThis is nothing more than Feisal Husseini's statement that the\nZionist entity must be disolved by forcing it to \"engage\" the\nsurrounding \"normal\" Arab society.\n\n\"a strong mixed stock\", \"integration of Israeli society into\nthe Middle East in a graceful manner,\" these are the phrases\nof Nazi racial engineering pure and simple.  As if Israeli\nsociety has no right to exist per se!\n\n>3.      Fundamentalist Jews would certainly object to the use of\n>financial incentives to encourage 'mixed marriages'. From their\n>point of view, the continued existence of a specific Jewish People\n>overrides any other consideration, be it human love, peace of\n>human rights.  The President of the World Jewish Congress, Edgar\n>Bronfman, reflected this view a few years ago in an interview he\n>gave to Der Spiegel, a German magazine. He called the increasing\n>assimilation of Jews in the world a <calamity>, comparable in its\n>effects only with the Holocaust. This objection has no merit\n>either because it does not fulfill the first two assumptions (see\n>above)\n\n\"the continued existance of a specific Jewish People overrides\nany other consideration, be it human love, peace of human\nrights.\"  Disolve the Jewish People and protect human values\nsuch as love and peace; yes ve have heard this before Her Himmler.\nNotice how the source of the problem seems to be accruing to\nthe Jews in this analysis.  Ya, Der Spiegal ist a gut sourcen...\n\n>5.      It may objected that such a Fund would need great sums to\n>bring about substantial demographic changes. This objection has\n>merits. However, it must be remembered that huge sums, more than\n>$3 billion, are expended each year by the United States government\n>and by U.S. organizations to maintain an elusive peace in the\n>Middle-East through armaments. A mere fraction of these sums would\n>suffice to launch the above proposal and create a more favorable\n>climate towards the existence of 'mixed' marriages in\n>Israel/Palestine, thus encouraging the emergence of a\n>non-segregated society in that worn-torn land.\n\nNice attempt to mix in a slam against U.S. aid to Israel.\n\n>I would be thankful for critical comments to the above proposal as\n>well for any dissemination of this proposal for meaningful\n>discussion and enrichment.\n>\n>Elias Davidsson Post Box 1760 121 Reykjavik, ICELAND\n\nCritical comment: you can take the Nazi flag and Holocaust photos\noff of your bedroom wall, Elias; you'll never succeed.\n\n-- Chris Metcalfe\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\nNow we'll find out where you fans really stand...\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6377, "properties": {"category": "sci.space", "text": "From: mwm+@cs.cmu.edu (Mark Maimone)\nSubject: How to read sci.space without netnews\nSummary: Space Digest address\nNntp-Posting-Host: a.gp.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 36\n\nIn article <734975852.F00001@permanet.org> Mark.Prado@p2.f349.n109.z1.permanet.org (Mark Prado) writes:\n>If anyone knows anyone else who would like to get sci.space,\n>but doesn't have an Internet feed (or has a cryptic Internet\n>feed), I would be willing to feed it to them.\t\n\n\tKudos to Mark for his generous offer, but there already exists a\nlarge (email-based) forwarding system for sci.space posts:  Space Digest.\nIt mirrors sci.space exactly, and provides simple two-way communication.\n\n\tTO SUBSCRIBE:\n\t   Send the following message in the *body* (not subject) of an\n\t   email message:\n\n\t\tsubscribe space John Q Public\n\n\t   to one of these addresses:\n\n\t\tlistserv@uga\n\t\tlistserv@uga.cc.uga.edu\n\t\tlistserv@finhutc\n\t\tlistserv@finhuc.hut.fi\n\t\tspace-request@isu.isunet.edu\n\n\t   You'll receive all the posts in \"digest\" form once a day.  Please\n\t   use a listserv if you can, the \"space-request\" address is handled\n\t   manually.\n\n\tTO POST MESSAGES:\n\t   Send your message (with a reasonable Subject line) to:\n\n\t\tspace@isu.isunet.edu\n\nQuestions, comments to space-request@isu.isunet.edu\n-- \nMark Maimone\t\t\t\tphone: +1 (412) 268 - 7698\nCarnegie Mellon Computer Science\temail: mwm@cmu.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6378, "properties": {"category": "rec.autos", "text": "From: ceng@mdd.comm.mot.com (Curtis Eng)\nSubject: Selling a car through a car hunter\nOrganization: Motorola, Mobile Data Division - Seattle, WA\nDistribution: na\nLines: 16\n\nAnybody got any good/bad experience with selling their car through one of\nthose car hunters?  I'm selling a 1991 Dodge Stealth R/T and I was contacted\nby this company called the Markham group based out of Illinois.  \n\nThey said they have 7-10 buyers in my area interested in my car or they wouldn't\nbe talking to me.  They talked to me for a good 20 minutes asking everything\nabout my car and said they could sell it no problem.  They guaranteed that if\nthey didn't sell my car in 75 days, I would get my money back ($389) and since\nI charged it, I'm protected by federal law which states that if I'm not satisfied,\nI would get a refund (which is true).  They federal expressed all the paperwork \nto me which had a contract stating their policy about the 75 days and such.\n\nI called up the BBB in Illinois and they do not have a file on them which is\ngood news.  So they definitely are a legitimate company but so far, it's been\nover week and I have gotten nothing.  So how effective are these types of \ncompanies? Anybody care to share their experiences?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6379, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Moonbase race\nOrganization: U of Toronto Zoology\nLines: 23\n\nIn article <3HgF3B3w165w@shakala.com> dante@shakala.com (Charlie Prael) writes:\n>Doug-- Actually, if memory serves, the Atlas is an outgrowth of the old \n>Titan ICBM...\n\nNope, you're confusing separate programs.  Atlas was the first-generation\nUS ICBM; Titan I was the second-generation one; Titan II, which all the\nTitan launchers are based on, was the third-generation heavy ICBM.  There\nwas essentially nothing in common between these three programs.\n\n(Yes, *three* programs.  Despite the similarity of names, Titan I and\nTitan II were completely different missiles.  They didn't even use the\nsame fuels, never mind the same launch facilities.)\n\n>If so, there's probably quite a few old pads, albeit in need \n>of some serious reconditioning.  Still, Being able to buy the turf and \n>pad (and bunkers, including prep facility) at Midwest farmland prices \n>strikes me as pretty damned cheap.\n\nSorry, the Titan silos (a) can't handle the Titan launchers with their\nlarge SRBs, (b) can't handle *any* sort of launcher without massive\nviolations of normal range-safety rules (nobody cares about such things\nin the event of a nuclear war, but in peacetime they matter), and (c) were\nscrapped years ago.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6380, "properties": {"category": "talk.politics.guns", "text": "From: <34AEJ7D@CMUVM.BITNET>\nSubject: Re: Who's next? Mormons and Jews?\nDistribution: world\nLines: 4\n\nAs a minor point of interest, earlier news reports claim to have\nbeen quoting the Governor of Texas when Her Holiness referred to\nthe Dividians as _Mormons_ and called for their expulsion\nfrom TX. Any Texans have details?\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6381, "properties": {"category": "comp.graphics", "text": "From: ricardo@rchland.vnet.ibm.com (Ricardo Hernandez Muchado)\nSubject: Re: Rumours about 3DO ???\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: rs43873.rchland.ibm.com\nOrganization: IBM Rochester\nLines: 35\n\nIn article <1993Apr19.121925.14451@microware.com>, jejones@microware.com (James Jones) writes:\n|> In article <1993Apr15.164940.11632@mercury.unt.edu> Sean McMains <mcmains@unt.edu> writes:\n|> >In article <1993Apr15.144843.19549@rchland.ibm.com> Ricardo Hernandez\n|> >Muchado, ricardo@rchland.vnet.ibm.com writes:\n|> >>   And CD-I's CPU doesn't help much either.  I understand it is\n|> >>a 68070 (supposedly a variation of a 68000/68010) running at something\n|> >>like 7Mhz.  With this speed, you *truly* need sprites.\n|> >\n|> >Wow! A 68070! I'd be very interested to get my hands on one of these,\n|> >especially considering the fact that Motorola has not yet released the\n|> >68060, which is supposedly the next in the 680x0 lineup. 8-D\n|> \n|> Don't get too excited; Signetics, not Motorola, gave the 68070 its number.\n|> The 68070, if I understand rightly, uses the 68000 instruction set, and has\n|> an on-chip serial port and DMA.  (It will run at up to 15 MHz--I'm typing\n|> at a computer using a 68070 running at that rate, so I know that it can\n|> do so--so I seriously doubt the clock rate that ricardo@rchland.vnet.ibm.com\n|> claims.)\n|> \n|> \tJames Jones\n\n   Just because the 68070 can run upto 15Mhz doesn't mean the CD-I\nis running at that speed.  I said -> I understand it is a 68070 running\nat something like 7Mhz.  I am not sure, but I think I read this a long\ntime ago.\n\n   Anyway, still with 15Mhz, you need sprites for a lot of tricks for\nmaking cool awesome games (read psygnosis).\n\n--------------------------------------\nRaist  New A1200 owner   320<->1280 in x, 200<->600 in y\nin 256,000+ colors from a 24-bit palette.  **I LOVE IT!**<- New Low Fat .sig\n*don't e-mail me* -> I don't have a valid address nor can I send e-mail\n\n  \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6382, "properties": {"category": "talk.religion.misc", "text": "From: rjk@world.std.com (Robert J. Kolker)\nSubject: Odds and Ends\nKeywords: Cheap shots a Christianity\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 46\n\nJust a few cheap shots a Christianity:\n\nRiddle: What is the shortest street in Jerusalem?\nAnswer: The Street of the Righteous Poles.\n\nLimrick:\n\nThere was an archeologist Thostle\nWho found an amazing fossil\nBy the way it was bent\nAnd the knot it the end\n'twas the penis of Paul the Apostle.\n\nJingle:\nChristianity hits the spot\nTwelve Apostles thats a lot\nJesus Christ and a Virgin too\nChristianity's the faith for you\n(with apologies to Pepsi Cola and its famous jingle)\n\nRiddle:\nHow many Christians does it take to save a light bulb.\nAnswer: None, only Jesus can save.\n\nAphorism:\nJesus Saves\nMoses Invests\n\nProof that Jesus was Jewish:\n1. He lived at home till he was 33\n2. He went into his fathers business\n3. He thought he mother was a virgin\n4. His mother thought he was God.\n\nQED.\n\nSo long you all\n\nBob Kolker\n\"I would rather spend eternity in Hell with interesting people \nthan eternity in Heaven with Christians\"\n\n\n-- \n\"If you can't love the Constitution, then at least hate the Government\"\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6383, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 17\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\nstrnlght@netcom.com (David Sternlight) writes:\n> Chances are the government has thought of this, and \"just anyone\" won't \n> be permitted access to enough of the internals to make a \"fake\" clipper \n> chip. \n\nOnce the chips are released (in phones, or whatever), they are vulnerable to \nphsyical inspection and observation.  Now, I will grant that there will no \ndoubt be safeguards against \"peeling\" the chip, but the NSA has no monopoly \non cleverness.  The chip, and the algorithms it uses, will not remain secret \nfor very long.  Any university with a VLSI lab has the required equipment, as \ndoes any offshore semiconductor manufacturer.\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6384, "properties": {"category": "rec.autos", "text": "From: keys@starchild.ncsl.nist.gov (Lawrence B. Keys)\nSubject: Re: Alarm systems: are they worthwhile?\nOrganization: National Institute of Standards & Technology\nDistribution: usa\nLines: 50\n\nIn article <1993Apr19.164451.3744@news.eng.convex.com> dodson@convex.COM (Dave Dodson) writes:\n>Is it worthwhile to get an alarm system on a new car?\n\n\nAlthough, others have in the past and will continue to disagree\ni think that it is worthwhile to get an alarm.\n\n\n>What features are important?\n\nI think that it is important to protect your trunk, engine bay, all\ndoors.  I'd get flashing lights, LED's mounted on the drivers and\npassenger door and a relay to disable engine operation. Toss in \na glass break sensor, and shock sensor. Door lock and unlock,\ntwo remotes and panic feature are also nice to have.\n\nMost important is where you have the installation done!  Some places\nmay cost a little more, but a poorly installed alarm (no matter how\nmuch it cost) will be a major burden.\n\n\n>What features are unimportant?\n\nIMO, things like engine starters, voice alarms, window/sunroof open\nand close, and most other conveniences.\n\n>\n>----------------------------------------------------------------------\n>\n>Dave Dodson\t\t                             dodson@convex.com\n>Convex Computer Corporation      Richardson, Texas      (214) 497-4234\n\n                                                  .  \n                                                 /                \nLarry                            __/    _______/_                 \nkeys@csmes.ncsl.nist.gov       /                  \\               \n                          _____     __     _____    \\------- ===\n            ----------- / ____/   /  /   /__  __/              \\\n         /     ___    /  / ___   /  /      / /    ____          |\n        |    /      \\/ /__ /  | /  /__  __/ /__ /       \\      / \n        /___         \\_______/ /_____/ /______/            ====OO\n            \\       /                           \\       /         \n                -            1990 2.0 16v           -\n\n\n       ---------------- FAHRVERGNUGEN FOREVER! --------------------            \n            The fact that I need to explain it to you indicates\n            that you probably wouldn't understand anyway!\n       ------------------------------------------------------------\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6385, "properties": {"category": "comp.graphics", "text": "From: mini@csd4.csd.uwm.edu (Padmini Srivathsa)\nSubject: WANTED : Info on Image Databases\nOrganization: Computing Services Division, University of Wisconsin - Milwaukee\nLines: 15\nDistribution: world\nNNTP-Posting-Host: 129.89.7.4\nOriginator: mini@csd4.csd.uwm.edu\n\n  Guess the subject says it all.\n  I would like references to any introductory material on Image\n  Databases.\n  Please send any pointers to mini@point.cs.uwm.edu\n\n  Thanx in advance!\n   \n\n\n\n-- \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n-< MINI >-           mini@point.cs.uwm.edu | mini@csd4.csd.uwm.edu \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6386, "properties": {"category": "comp.graphics", "text": "From: cgcad@bart.inescn.pt (Comp. Graphics/CAD)\nSubject: RTrace 8.2.0\nKeywords: ray tracing\nNntp-Posting-Host: bart\nOrganization: INESC-Porto, Portugal\nLines: 83\n\nThere is a new version of the RTrace ray-tracing package (8.2.0) at\nasterix.inescn.pt [192.35.246.17] in directory pub/RTrace.\nCheck the README file.\n\nRTrace now can use the SUIT toolkit to have a nice user interface.\nCompile it with -DSUIT or modify the Makefile.\nSUIT is available at suit@uvacs.cs.virginia.edu\nI have binaries of RTrace with SUIT for SUN Sparc, SGI Indigo\nand DOS/GO32.\nPlease contact me if interested.\n\n****************************************\n\nThe MAC RTrace 1.0 port is in directory pub/RTrace/Macintosh\nThanks to Reid Judd (reid.judd@east.sun.com) and\nGreg Ferrar (gregt@function.mps.ohio-state.edu).\n\n****************************************\n\nSmall changes were done since version 8.1.0, mainly:\n\n1. Now it is possible to discard backface polygons and triangles\n   for fast preview...\n\n2. The support program scn2sff has been reworked to use temp files.\n\n****************************************\n\nHere goes a short description of current converters from\nCAD/molecular/chemistry packages to the SCN format.\n\nThe package programs are related as below (those marked with * have been\nmodified)\n\n\t       irit2scn\n     IRIT ----------------|\n                          |               NFF (nffclean, nffp2pp)\n\t        sol2scn   |                |\n    ACAD11 ---------------|                | nff2sff\n                          |                |\n\t        mol2scn\t  v    scn2sff*    v\trtrace*\n   ALCHEMY  -----------> SCN -----------> SFF ----------> PIC or PPM\n\t\t\t  ^      cpp                           |\n\t        pdb2scn   |                                 picmix\n     PDB -----------------|                                 picblend\n\t\t\t  |                                 ppmmix*\n\t       chem2scn   |                                 ppmblend*\n   CHEMICAL --------------|\n                          |\n                3ds2scn*  |\n  3D STUDIO --------------|\n                          |\n                iv2scn*   |\n IRIS Inventor -----------|\n\n****************************************\n\nThe DOS port of RTrace is in pub/RTrace/PC-386 (rtrac820.arj,\nutils820.arj and image820.arj). See the README file there.\nRequires DJGPP GO32 DOS extender (version 1.09 included), which can be\nfound in directory pub/PC/djgpp (and in many sites around netland).\nThere are also demo scenes, manuals and all the source code...\n\n****************************************\n\nPlease feel free to get it and use it.\nHope you like it.\n\nRegards,\nAntonio Costa.\n.........................................................................\n     O     O\n    /     /                        I N E S C\n   | O   |        Antonio Costa        | E-Mail   acc@asterix.inescn.pt\n   | |\\  |   O                         |\n   | | \\ |  /  O  Comp. Graphics & CAD | DECnet   porto::acosta\n   | |  \\| /  /                        |\n   | |  /  | |    Largo Mompilher 22   | UUCP     {mcvax,...}!...\n   O | |-O | |    4100 Porto PORTUGAL  | Bell     +351+02+321006\n    /   \\ /   \\\n   O     O     O          \"Let the good times roll...\"\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6387, "properties": {"category": "rec.sport.hockey", "text": "From: ac942@Freenet.carleton.ca (Marc Gregoire)\nSubject: Re: Too Many Europeans in NHL\nReply-To: ac942@Freenet.carleton.ca (Marc Gregoire)\nOrganization: The National Capital Freenet\nLines: 52\n\n\nSomebody wrote:\n>I'd *LOVE* to see a European NHL division but can't see it happen for some\n>time. There's simply not enough fan interest at the moment in several\n>\"crucial\" markets like Germany, Italy and France while Sweden and Finland\n>probably can't afford to shell out $20-$30 for tickets the way\n>American/Canadian fans do. Call it \"the Minnesota North Stars\" effect:\n>Scandinavians do love hockey but we prefer to watch local, inexpensive\n>hockey to the NHL. The National Hockey League should love the idea, though.\n>Pan-European TV channels such as Eurosport could bring in the millions the\n>American networks likely never will pay.\n\nThis brings up a question I asked myself (no answer) when it was mentionned\nthat the NHL could expand in Europe.\n\nWould most of the North-americans now playing in the NHL be willing\nto play for a team in Europe?\n\nI do not think that the majority of hockey players are necessarily\ninterested in expanding their cultural experience to that level.\n(I know I would but I am not a pro hockey player)\n\nWhen one recalls some players remarks in the last few years it makes\nme wonder how a European expansion could be achieved.  Remember these:\n\n- Lindros did not want to play in Quebec (for more than $ reasons)\n- Nicholls ... in Edmonton.\n- R. Courtnall wanted to be traded to LA only.\n- C. Lemieux said he would refuse to go to Edmonton earlier this year.\n\nI know there are many non-cultural reasons behind these but there is more:\n\n- Some american players who played for the Expos complained about the french\n  fact and that the city was not quite like the other US cities.  One\n  players' wife trying to make her point went on to complain that she could\n  not even find her favorite brand of nacho chips in Montreal.\n\nAnybody knows what happened when all these US football players moved\nto London, Spain, etc .. for the one year of that new football league\n(2 years ago?)\n\nI wonder what the players association thinks about going to Europe.\n\nMyself I would like to see some European teams, but what would be \nthe best way to do it? \n\nMarc\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.301+0000", "event": "documents", "entityId": 6388, "properties": {"category": "rec.sport.hockey", "text": "From: mfoster@alliant.backbone.uoknor.edu (Marc Foster)\nSubject: Re: Expansion\nOriginator: news@midway.ecn.uoknor.edu\nDistribution: na\nNntp-Posting-Host: midway.ecn.uoknor.edu\nOrganization: University of Oklahoma, Norman, OK\nLines: 33\n\nIn article <PATRICK.93Apr2201529@blanco.owlnet.rice.edu> patrick@blanco.owlnet.rice.edu (Patrick L Humphrey) writes:\n>On Fri, 2 Apr 1993 22:05:16 GMT, vamwendt@atlas.cs.upei.ca (Michael Wendt) said\n\n>>16.   Albany (New York), Boise (Idaho)--A couple of cities with fair interest\n>>but size and closeness to other teams is a question.\n\n>Albany has their AHL franchise (though it goes by the Capital District label),\n>but Boise?  Forget it.  The CHL made an attempt at that part of the country in\n>1983-84, with a franchise in Great Falls -- and no one showed up.  Folks up in\n>that part of the PNW just aren't interested in hockey.\n\nHey Patrick, the Montana Magic played in Billings, not Great Falls...\n\n>--PLH, I know where I'd put the next two NHL expansion teams: Phoenix and\n>Houston, assuming the Whalers don't pack up and move in the meantime...\n\nMarc, Phoenix and Houston it is... \n-------------------------------------------------------------------------------\n        _/_/    _/         _/_/   _/_/_/_/ _/_/_/_/   _/_/     _/_/_/ \n     _/    _/  _/       _/    _/      _/  _/       _/    _/  _/\n    _/    _/  _/       _/    _/     _/   _/       _/    _/  _/\n   _/_/_/    _/       _/_/_/_/    _/    _/_/_/   _/_/_/      _/_/\n  _/    _/  _/       _/    _/   _/     _/       _/    _/        _/\n _/    _/  _/       _/    _/  _/      _/       _/     _/       _/    _ _ _____\n_/_/_/    _/_/_/_/ _/    _/ _/_/_/_/ _/_/_/_/ _/      _/ _/_/_/     - - /____/\n...............................................................................\nMarc Foster, r.s.h contact for the Oklahoma City Blazers, 1993 Central Hockey\nUniversity of Oklahoma Geography Department               League Adams Cup\nInternet: mfoster@geohub.gcn.uoknor.edu                   Champions\n          mfoster@alliant.backbone.uoknor.edu \n\nTo be placed on the CHL Mailing List, send email to either address above.\n-------------------------------------------------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6389, "properties": {"category": "comp.windows.x", "text": "From: victor@hpfrcu03.FRance.hp.COM (Victor GATTEGNO FRENCH CRC)\nSubject: Re: High order bit of a character in xterm .\nOrganization: The Internet\nLines: 33\nTo: kavitsky@hsi.com\nCc: xpert@expo.lcs.mit.edu\n\n> \n> Does anyone know why the high order bit is being filtered and what\n> I can do to make sure that the entire 8bits make it through to\n> the final application? Any help is greatly appreciated.\n> \n\n1. You need these resources :\n\tXTerm*EightBitInput:    true\n\tXTerm*EightBitOutput:    true\n\n2. In the shell you need to do : \n        stty cs8 -istrip \n\n\nGood luck .\nVictor .\n\n                                                              |\n                                                              *\n                                                              X\n                                                              X\n                                                              X\n                                                              X\n______________________________________________________________X________\n                                                              X\n  Victor Gattegno     Email: victor@hpfrcu03.france.hp.com   XXX\n  Hewlett-Packard France   Hpdesk: HP8101/RC                X X X  \n  1, Avenue du Canada      Phone : 33-1-69-82-60-60        X  X  X \n  91947 - Les Ulis Cedex   Telnet: 770-1141               X   X   X  \n\n \n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6390, "properties": {"category": "misc.forsale", "text": "From: kohli@ecs.umass.edu\nSubject: Mazda GLC for Sale.\nLines: 5\n\nWant to sell a 1980 MAZDA GLC for $300 or b.o. Excellent working condition. Just\npassed inspection. Has a sun roof. No marks on body.\nContact soon kohli@ecs.umass.edu or (413_549-4738.\n\nkohli \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6391, "properties": {"category": "talk.religion.misc", "text": "From: popec@brewich.hou.tx.us (Pope Charles)\nSubject: Re: Merlin, Mithras and Magick\nOrganization: The Brewers' Witch BBS, +1 713 272 7350, Brewich.Hou.TX.US\nLines: 42\n\ncaldwell@facman.ohsu.edu (Larry Caldwell) writes:\n\n> kosinski@us.oracle.com (Kevin Osinski) writes:\n> \n> >I recall reading in Michael (?) Rutherford's novel \"Sarum\" a scene in\n> >which the son of a Roman nobleman living in Britain takes part in a\n> >secret ceremony involving a bull.  He stands naked in a pit covered\n> >with some sort of scaffolding while assistants coax a bull to stand on\n> >the scaffolding.  They then fatally stab the bull, which douses the\n> >worshipper in the pit with blood.  This is supposedly some sort of\n> >rite of passage for members of the bull cult.  I wonder if this is\n> >related to the Mithras cult?\n> >\n> >I don't know where Rutherford got his information for this chapter.\n> >The book is historical fiction, and most of the general events which\n> >take place are largely based on historical accounts.\n> \n> There is a rite like this described in Joseph Campbell's\n> _Occidental_Mythology_.  He also described levels of initiation, I think\n> 6?  I don't know where Campbell got his info, but I remember thinking he\n> was being a little eclectic.\n> \n> >I also wonder what if any connection there is between the ancient bull\n> >cults and the current practice of bullfighting popular in some\n> >Mediterranean cultures.\n> \n> Quite a bit.  If you haven't read Campbell, give him a try.  \n> \n> -- \n> -- Larry Caldwell  caldwell@ohsu.edu  CompuServe 72210,2273\n> Oregon Health Sciences University.  (503) 494-2232\n\n\nYes.  I cannot remeber which works I read about this in, as it was many \nyears ago.  This ritual was called The Tarobaullum I believe, (The \nspelling may be off).\n\nPope Charles\n\n------------------\npopec@brewich.hou.tx.us (Pope Charles)\nOrigin: The Brewers' Witch BBS -- Houston, TX -- +1 713 272 7350\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6392, "properties": {"category": "rec.motorcycles", "text": "From: mbeaving@bnr.ca (The Beav)\nSubject: DoD Confessional\nNntp-Posting-Host: bmerh824\nReply-To: MBEAVING@BNR.CA\nOrganization: Bell-Northern Research, Ottawa, Canada\nLines: 31\n\nI can't help myself.\nI've tried to be rational, \nto look the other way,\nbut everytime it happens, \nits uncontrollable.\n\nI hate pre'80s motorcycles.\n\nAt first I thought it was a phase.  I though I would\nget used to them.  It didn't happen.  I tried gazing\nat CB750s and 900 customs, but each time I sadistically\npictured them being hurled off of large precipice\n(I also picture a swarm of german tourists cheering and\ntaking holiday snaps, but I can't figure that part out).\n\nWhat am I to do?  Everytime I read a .sig containing \nsome spoked wheel wonder, I shudder and feel pity that\nthe poor soul has suffered enough.  I imagine the owner\nscrapping out his (or her) living in a discarded Maytag\nrefridgerator box, tucked in next to their CX500.\n\nI'm hoping for some deliverance.  I had in the past loathed\nthe Milwaukee machine, but I can actually begin to understand\nsome of the preaching.  There must be hope. \n\n-- \n===================================================\n= The Beav |Mike Beavington| Dod:9733             =\n= V65Sabre     mbeaving@bnr.ca                    =\n= My employer has no idea what I'm talking about! =\n===================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6393, "properties": {"category": "soc.religion.christian", "text": "From: halsall@murray.fordham.edu (Paul Halsall)\nSubject: Catholic Liturgy\nReply-To: halsall@murray.fordham.edu\nOrganization: J. Random Misconfigured Site\nLines: 60\n\n\n\tThe problems with Catholic liturgy are likely to continue for\nsome time.  The problem is, in a nutshell, this: the Liturgy is a\nsymbolic action - in other words Catholics do [or should] believe that\nthe _signs_ during the mass - Water, Blessings, Vestments, Altar,\nRelics, etc - are real. That is the sprinkling of water bestows real,\nalmost tangible, holiness, the Vestments are a real indication of real\nsacred time. The point of a _symbol_ is that it is understood by all\nto be connected to an underlying REAL referent. This kind of thinking\nprecludes analysis; holy water is not holy because of anything, it\nsimply IS holy.\n\nBut, modern westerners find it extremely difficult, especially if\nwell- educated, to think of the mass as a symbol. We are more likely\nto see it as a _sign_, ie an action that represents grace, but which\ncould be replaced with other signs. In concrete terms, this means the\nmass has become a commercial for God's grace rather than the real\nthing. You can mess around with a commercial in a way you wouldn't\ndare with the real thing [ask Coca-Cola Co.!]. These attitudes have\nbeen encouraged by Liturgy workshops, etc. which instead of focusing\non _how_ to do do liturgy, have focused on how to create a meaning in\nliturgy. You can only create signs, symbols have to come from God [or\nthe heart, or somewhere deeper than analysis. The most dramatic\nexample of this shift in understanding has been in the treatment of\nthe sacred species [the consecrated host and wine]. Now, with pita\nbread etc, it is common to come away from the altar with hands covered\nin particles. If the Host is a sign of Grace, this isnt and issue; but\nCatholics in the past would have been distraught at this real\ndesacration of the real symbol of Jesus' body.\n\nModern Catholic liturgy  is caught in this epistemological shift. We\ntry to perfrom the old rites, but then we have some liturgomaniac\npriest get up and 'explain' what we are doing - so we stop doing it and\nstart pretending to do it. This is not a soul filling experience.\nIt doesn't help BTW that we have got stuck witha huge amount of two and\nthree chord ersatz-folk music [again a result of mis-analysis: complicated\ntunes are in fact easier to remember than simple ones - this was the\ngenius of Wesley and the 19C Anglican hymn writers]. Taize' is only\nslightly better.\n\nWhat are we to do? Well I suggest rejecting the parish system if it\ndoesn't work for you. Search out a Church where the liturgy is well\nprepared not well-explained. They exist in every city. This is not BTW\na matter of particular style: the music might be old or new. It is\nthe attitude of the church that counts. Also, note that a conservative\nliturgy - harking back to pre-Vatican II days, does not necessarily mean\nthe Church will be socially conservative.\n\nIn NYC I can recommend:\n\tCorpus Christi - W 12st St.\n\tCorpus Christi - W 12st St. - very conservative liturgy, \n\tSt. Joseph's, Greenwich Village.  - Modern, \"clean\", largely gay\n\tOratorian Church, Brooklyn - Very beautiful\n\nAvoid, anywhere, anytime a church with electric candles.\n\nHappy Easter: Christos Aneste', Christos Voskrezhne, Christ is Risen\n\nPaul Halsall\nHalsall@murray.fordham.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6394, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: srowe@fulcrum.co.uk (Simon Rowe)\nSubject: Re: exit codes (dos--sorry for wrong group : (\nOrganization: Fulcrum Communications\nLines: 13\n\nInternal DOS commands (certainly 3.3 and before) do not set the exit\ncode. This is a royal pain if you want to do anything which checks for\nsuccessful deletions etc. The best suggestion is to use 4dos which\ndoes return you exit codes. It also has move command,\n\n\tSimon.\n\n-------------------------------------------------------------------------------\nSimon Rowe,                                   srowe@fulcrum.co.uk\nFulcrum Communications Ltd,\nBirmingham,\t\t\t         Condition \"BRAIN_OVERLOAD$\" raised at\nENGLAND.\t\t\t\t 5412(0)/12234\n------------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6395, "properties": {"category": "misc.forsale", "text": "From: his3rrb@cabell.vcu.edu (Robert R. Bower)\nSubject: Re: VHS movie for sale\nOrganization: Virginia Commonwealth University\nExpires: Sat, 15 May 1993 04:00:00 GMT\nLines: 19\n\n\nDidn't McDonald's sell copies of \"Dances with Wovies\" for $7 not too\nlong ago?\n\nThey were also selling \"Babes in Toyland\" (the SCOTT BAIO version!)\nand something even more forgettable.\n\nJust think:  video drive-thru........\n\n\n\"I'll take a McRib, a McChicken, and a copy of Debbie Does McDallas\nto go\"\n\n\"Do you want fries and napkins with that?\"\n\n\n\n--Bob  (his3rrb@caball.vcu.edu)\n\"After this post, I'm really going to start studying.......really...\"\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6396, "properties": {"category": "talk.politics.guns", "text": "From: klm@gozer.mv.com (Kevin L. McBride)\nSubject: The Holocaust Revisited\nOrganization: GhostBuster Central - Southern NH Usenet Access, Nashua, NH\nLines: 17\n\nThe U.S. Government's campaign of persecution and genocide against the\nBranch Davidians was a resounding success.\n\nHeil Clinton!  Heil Reno!  The Gestapo is alive and well and living in\nWashington, D.C.\n\n-- \nKevin, who agrees that David Koresh was probably a first-rate nutcase\n       but who firmly believes that the Bill of Rights guaranteed his\n       his right to be a religious fanatic and that the government is\n       guilty of violating his civil rights and of 1st degree murder.\n\n       OK, which small, under-represented-in-congress religious group\n       are we going to persecute next and are we going to torch their\n       church with a rolled up copy of the Constitution?\n\n       I think I'm going to be sick now. . .\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6397, "properties": {"category": "rec.motorcycles", "text": "From: 0005111312@mcimail.com (Peter Nesbitt)\nSubject: Thanks for the speeding ticket advice!\nArticle-I.D.: mcimail.85930406235158/0005111312NA1EM\nOrganization: UTexas Mail-to-News Gateway\nLines: 37\nNNTP-Posting-Host: cs.utexas.edu\n\nI'd like to thank everyone who took the time to respond to my post about \nfighting my ticket.\n\nMany of you wrote to say that you have successfully fought and won your \ncase in court.  Others lost due to the cop outright lying to the judge \nabout the circumstances surrounding your ticket, while one fellow lost\nbecause the judge just didn't appear to be in the mood for such foolishness.\n\nSeveral of you suggested that I obtain a book called \"Fight Your Ticket\".\n\nThe general theme from those who said \"go for it\", was to be prepared.  \nI should do as much research as possible, go back and review the scene, \ntranscribe what happened to tape or paper, use any witnesses that may \nhave been around, have a list of questions to ask the cop and/or the judge,\nand to be positive and assertive.  I am innocent until proven guilty! <gulp>\n\nA few people suggested trying to get my court date changed, as this might \ntrip up the arresting officer, he may not show up if the date is on his day\noff or if he feels/knows that he doesn't have a chance to win against you.\n\nOne individual stated that an Officer could be an Expert Witness, and if he\nsays I was speeding, then by damn, I was speeding.\n\nAnother says that I must have been paced or clocked with a radar gun.\n\nLots of good suggestions and ideas from you all.  I'll let you know what\nhappens after the big day!\n\n/-----------------------------------------------------------------------------\\\n\n| Peter D. Nesbitt |     Air Traffic Controller     | PNESBITT@MCIMAIL.COM    |\n\n|                  |       Oakland Bay TRACON       |                         |\n\n\\-----------------------------------------------------------------------------/\n\n \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6398, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Devils and Islanders tiebreaker????\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 21\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <C5LFA4.E10@murdoch.acc.Virginia.EDU> cal2d@csissun11.ee.Virginia.EDU (Craig Allen Lorie) writes:\n>According to the hockey gurus over at ESPN, should the Islanders win tonite\n>the two teams will have the same record, but the Devils will be playing the\n>Penguins.  This is because the Islanders have won the season series against\n>the Devils.  I think the rules for deciding a tie breaker include:\n>\n>1.  season series\n>2.  goals against\n>3.  goals for\n>\n>in this order (correct me if I'm wrong).  Anyone have anything to add?\n\nI think that they go to divisional records before goals, but I could be\nwrong, too.\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6399, "properties": {"category": "alt.atheism", "text": "From: ray@netcom.com (Ray Fischer)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Netcom. San Jose, California\nLines: 91\n\nfrank@D012S658.uucp (Frank O'Dwyer) writes ...\n> ray@netcom.com (Ray Fischer) writes:\n>#frank@D012S658.uucp (Frank O'Dwyer) writes ...\n>#>Plus questions for you:  why do subjectivists/relativists/nihilists get so \n>#>het up about the idea that relativism is *better* than objectivism? \n>#\n>#To the degree that relativism is a more accurate decription of the\n>#truth than is objectivism, it provides more power and ability to\n>#control events.\n>\n>I think you lose the right to talk about THE truth once you say values are\n>relative.   Accuracy is a value judgement, too.  It so happens I agree with \n>the substance of what you say below, but it's clear to me that at least \n>*some* values are objective.  Truth is better than falsehood, peace is\n>better than war, education is better than ignorance.  We know these things,\n>if we know anything.\n\nWhile I'll agree that these are generally held to be \"good things\", I\nquestion whether they come very close to being objective values.\nEspecially considering that at one time or another each has been\nviewed as being undesirable.  I doubt you could even come up with\nanything that could be said to be universally \"good\" or \"bad\".\n\nAnd when I referred to \"the truth\" I was using the term\nhypothetically, realizing full well that there may not even be such a\nthing.\n\n>#Assuming, for the moment, that morals _are_ relative, then two\n>#relativists can recognize that neither has a lock on the absolute\n>#truth and they can proceed to negotiate a workable compromise that\n>#produces the desired results.\n>\n>No they cannot, because they acknowledge up front that THE desired\n>results do not exist.  That, after all, is the meaning of compromise.\n>\n>Plus some problems: If the relativists have no values in common, compromise \n>is impossible - what happens then?    Who, if anyone, is right?  What happens \n>if one relativist has a value \"Never compromise?\".  A value \"plant bombs in \n>crowded shopping areas\"?  After all, if morals are relative, these values \n>cannot *meaningfully* be said to be incorrect.\n\nTrue enough.  But they cannot be said to be anything more than\npersonal morals.  One thing notably lacking in most extremists is any\nsense of _personal_ accountability - the justification for any\nsocially unacceptable behaviour is invariably some \"higher authority\"\n(aka, absolute moral truth).\n\n>#Assuming that there is an absolute morality, two disagreeing \n>#objectivists can either be both wrong or just one of them right; there\n>#is no room for compromise.  Once you beleive in absolute morals,\n>#you must accept that you are amoral or that everyone who disagrees\n>#with you is amoral.\n>\n>Untrue.  One can accept that one does not know the whole truth.  Part\n>of the objective truth about morality may well be that flexibility is\n>better than rigidity, compromise is better than believing you have a lock\n>on morals, etc.  In the same way, I can believe in an objective reality\n>without claiming to know the mechanism for quantum collapse, or who shot\n>JFK.\n\nAn objective truth that says one cannot know the objective truth?\nInteresting notion.   :-)\n\nCertainly one can have as one's morals a belief that compromise is\ngood.  But to compromise on the absolute truth is not something most\npeople do very successfully.  I suppose one could hold compromise as\nbeing an absolute moral, but then what happens when someone else\ninsists on no compromise?  How do you compromise on compromising?\n\n>#Given a choice between a peaceful compromise or endless contention,\n>#I'd say that compromise seems to be \"better\".\n>\n>And I would agree.   But it's bloody to pointless to speak of it if it's\n>merely a matter of taste.  Is your liking for peace any better founded\n>than someone else's liking for ice-cream?  I'm looking for a way to say\n>\"yes\" to that question, and relativism isn't it.\n\nAlmost invariably when considering the relative value of one thing\nover another, be it morals or consequences, people only consider those\naspects which justify a desired action or belief.  In justifying a\ncommitement to peace I might argue that it lets people live long &\nhealthy and peaceful lives.  While that much may well be true, it is\nincomplete in ignoring the benefits of war - killing off the most\nagressive member of society, trimming down the population, stimulating\nproduction.  The equation is always more complex than presented.\nTo characterize relative morals as merely following one's own\nconscience / desires is to unduly simplify it.\n\n-- \nRay Fischer                   \"Convictions are more dangerous enemies of truth\nray@netcom.com                 than lies.\"  -- Friedrich Nietzsche\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6400, "properties": {"category": "rec.sport.baseball", "text": "From: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nSubject: mile high runs\nArticle-I.D.: master.1psq90INNh93\nReply-To: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nOrganization: Computer Science Department at Rose-Hulman\nLines: 35\nNNTP-Posting-Host: g215a-1.nextwork.rose-hulman.edu\n\nHow many runs will be scored in Denver?\nI don't know.\n\nbut some idea can be gotten by looking at the runs scored in \nMile High Stadium during the last few years of the Bears/Zephyrs \ntenure in the American Association.\n\nHere's the total runs scored per game in Zephyrs games, \nall league games and the ratio. I found the same ratios for HR.\n\nYear  rpg   lea  ratio  hrpg lea ratio   \n1992 10.22  9.10 1.12   1.65 1.58 1.04\n1991  9.53  8.87 1.07   1.41 1.26 1.12\n1990 10.71  8.72 1.23   1.49 1.24 1.20\n1989  9.07  8.34 1.09   1.27 1.11 1.14\n1988  9.90  8.37 1.18   1.29 1.08 1.19\n1987 12.55 10.70 1.17   2.39 1.92 1.24\n1986  9.45  9.33 1.01   1.35 1.38  .98\n1985  9.50  8.54 1.11   1.53 1.34 1.14\n1984  9.99  9.10 1.10   1.55 1.59  .97\n1983 10.60  9.99 1.06   2.03 1.74 1.17\n1982 11.29 10.35 1.09   2.24 1.91 1.17\n1981 10.29  9.25 1.11   1.43 1.49  .96\n1980 10.59  9.43 1.12   1.63 1.46 1.12\n      1446/13-->1.11     1444/13-->1.11\n\nIt seems pretty clear that Denver will have a large effect \non runs scored (I'll stick with my prediction from last year \nthat it'll be one of the top 3 in the NL this year) \nand a fairly large effect on Homeruns - though apparently not as large as \nAtlanta, Wrigley, Cincinnati and San Diego.\nStill it ought to be a pretty decent home run park.\n\njohn rickert\nrickert@nextwork.rose-hulman.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6401, "properties": {"category": "rec.motorcycles", "text": "From: scs8@cunixb.cc.columbia.edu (Sebastian C Sears)\nSubject: Re: Need advice for riding with someone on pillion\nKeywords: advice, pillion, help!\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: scs8@cunixb.cc.columbia.edu (Sebastian C Sears)\nOrganization: Columbia University\nDistribution: na\nLines: 44\n\nIn article <C5t759.DsC@well.sf.ca.us> rwert@well.sf.ca.us (Bob Wert) writes:\n\t<...>\t<...>\n>This person is <100 lbs. and fairly small, so I don't see weight as too much\n>of a problem, but what sort of of advice should I give her before we go?\n>I want her to hold onto me  :-)   rather than the grab rail out back, and\n>I've heard that she should look over my shoulder in the direction we're\n>turning so she leans *with* me, but what else?  Are there traditional\n>signals for SLOW DOWN!! or GO FASTER!! or I HAFTA GO PEE!! etc.???\n\n\tI've never liked my passengers to try and shift their weight with the\n\tturns at all... I find the weight shift can be very sudden and\n\tunnerving. It's one thing if they're just getting comfortable or\n\tdecide to look over your other shoulder, but I don't recommend having\n\thim/her shift her weight with each turn... too violent.\n\t\n\tAlso (I think someone already said this) make sure your passenger\n\twears good gear. I sometimes choose to ride without a helmet or\n\tlacking other safety gear (depends on how squidly I feel) but I\n\twon't let passengers do it. What I do to myself I can handle, but\n\tI wouldn't want to hurt anyone else, so I don't let them on without\n\tgloves, jacket, (at least) jeans, heavy boots, and a helmet that *fits*\n\n>I really want this to be a positive experience for us both, mainly so that\n>she'll want to go with me again, so any help will be appreciated...\n\n\tGo *real* easy. It's amazing how solid a grip you have on the\n\thandle bars that your passenger does not. Don't make her feel like\n\tshe's going to slide off the back, and \"snappy\" turns for you are\n\tsickening lurches for her. In general, it feels much less controlled\n\tand smooth as a passenger. I can't stand being on the back of my\n\tbrother's bike, and I ride aggressively when i ride and I know he's\n\ta good pilot... still, everything feels very unsteady when you're\n\ta passenger. \n\n\n>Thanks,\n>        -Bob-\n\n\tShow off by not showing off the first time out...\n\n-------\n\"This is where I wanna sit and buy you a drink someday.\" - Temple of the Dog\nSea-Bass Sears --> scs8@cunixb.cc.columbia.edu --> DoD#516 <-- |Stanley, ID.|\n '79 Yamaha XS750F -- '77 BMW R100S -- '85 Toyota 4Runner --   |  NYC, NY.  |\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6402, "properties": {"category": "talk.religion.misc", "text": "From: spl@pitstop.ucsd.edu (Steve Lamont)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: University of Calif., San Diego/Microscopy and Imaging Resource\nLines: 24\nNNTP-Posting-Host: pitstop.ucsd.edu\n\nIn article <C5stEL.K0E@boi.hp.com> dianem@boi.hp.com (Diane Mathews) writes:\n>>Dear Brother Bill,\n>>\n>>One way or another -- so much for patience. Too bad you couldn't just \n>>wait. Was the prospect of God's Message just too much to take?\n>\n>  So do you want the president to specifically order each and every activity\n>of the FBI, or what?  And how willing are you to blame Reagan and Bush,\n>directly, for the incidents that took place in the War on Drugs in their\n>administration?  Are you going to blame Bush for the fact that Weaver's wife,\n>infant, son were killed?  It happened while he was president.\n\n... or consider the thousands in Central America killed by those brave\nCIA/NSC sponsored \"Freedom Fighters.\"\n\nThus far, Slick Willie is a piker.\n\n\t\t\t\t\t\t\tspl\n\n-- \nSteve Lamont, SciViGuy -- (619) 534-7968 -- spl@szechuan.ucsd.edu\nSan Diego Microscopy and Imaging Resource/UC San Diego/La Jolla, CA 92093-0608\n\"My other car is a car, too.\"\n                 - Bumper strip seen on I-805\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6403, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Serbian genocide Work of God?\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 61\n\nVera Shanti Noyes writes;\n\n>this is what indicates to me that you may believe in predestination.\n>am i correct?  i do not believe in predestination -- i believe we all\n>choose whether or not we will accept God's gift of salvation to us.\n>again, fundamental difference which can't really be resolved.\n\nOf course I believe in Predestination.  It's a very biblical doctrine as\nRomans 8.28-30 shows (among other passages).  Furthermore, the Church\nhas always taught predestination, from the very beginning.  But to say\nthat I believe in Predestination does not mean I do not believe in free\nwill.  Men freely choose the course of their life, which is also\naffected by the grace of God.  However, unlike the Calvinists and\nJansenists, I hold that grace is resistable, otherwise you end up with\nthe idiocy of denying the universal saving will of God (1 Timothy 2.4). \nFor God must give enough grace to all to be saved.  But only the elect,\nwho he foreknew, are predestined and receive the grace of final\nperserverance, which guarantees heaven.  This does not mean that those\nwithout that grace can't be saved, it just means that god foreknew their\nobstinacy and chose not to give it to them, knowing they would not need\nit, as they had freely chosen hell.\n\t\t\t\t\t\t\t  ^^^^^^^^^^^\nPeople who are saved are saved by the grace of God, and not by their own\neffort, for it was God who disposed them to Himself, and predestined\nthem to become saints.  But those who perish in everlasting fire perish\nbecause they hardened their heart and chose to perish.  Thus, they were\ndeserving of God;s punishment, as they had rejected their Creator, and\nsinned against the working of the Holy Spirit.\n\n>yes, it is up to God to judge.  but he will only mete out that\n>punishment at the last judgement. \n\nWell, I would hold that as God most certainly gives everybody some\nblessing for what good they have done (even if it was only a little),\nfor those He can't bless in the next life, He blesses in this one.  And\nthose He will not punish in the next life, will be chastised in this one\nor in Purgatory for their sins.  Every sin incurs some temporal\npunishment, thus, God will punish it unless satisfaction is made for it\n(cf. 2 Samuel 12.13-14, David's sin of Adultery and Murder were\nforgiven, but he was still punished with the death of his child.)  And I\nneed not point out the idea of punishment because of God's judgement is\nquite prevelant in the Bible.  Sodom and Gommorrah, Moses barred from\nthe Holy Land, the slaughter of the Cannanites, Annias and Saphira,\nJerusalem in 70 AD, etc.\n\n> if jesus stopped the stoning of an adulterous woman (perhaps this is\nnot a >good parallel, but i'm going to go with it anyway), why should we\nnot >stop the murder and violation of people who may (or may not) be more\n>innocent?\n\nWe should stop the slaughter of the innocent (cf Proverbs 24.11-12), but\ndoes that mean that Christians should support a war in Bosnia with the\nU.S. or even the U.N. involved?  I do not think so, but I am an\nisolationist, and disagree with foreign adventures in general.  But in\nthe case of Bosnia, I frankly see no excuse for us getting militarily\ninvolved, it would not be a \"just war.\"  \"Blessed\" after all, \"are the\npeacemakers\" was what Our Lord said, not the interventionists.  Our\nactions in Bosnia must be for peace, and not for a war which is\nunrelated to anything to justify it for us.\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6404, "properties": {"category": "comp.graphics", "text": "From: markus@octavia.anu.edu.au (Markus Buchhorn)\nSubject: HDF readers/viewers\nOrganization: Australian National University, Canberra\nLines: 33\nDistribution: world\nNNTP-Posting-Host: 150.203.5.35\nOriginator: markus@octavia\n\n\n\nG'day all,\n\nCan anybody point me at a utility which will read/convert/crop/whatnot/\ndisplay HDF image files ? I've had a look at the HDF stuff under NCSA \nand it must take an award for odd directory structure, strange storage\napproaches and minimalist documentation :-)\n\nPart of the problem is that I want to look at large (5MB+) HDF files and\ncrop out a section. Ideally I would like a hdftoppm type of utility, from\nwhich I can then use the PBMplus stuff quite merrily. I can convert the cropped\npart into another format for viewing/animation.\n\nOtherwise, can someone please explain how to set up the NCSA Visualisation S/W\nfor HDF (3.2.r5 or 3.3beta) and do the above cropping/etc. This is for\nSuns with SunOS 4.1.2.\n\nAny help GREATLY appreciated. Ta muchly !\n\nCheers,\n\tMarkus\n\n-- \nMarkus Buchhorn, Parallel Computing Research Facility\nemail = markus@octavia.anu.edu.au\nAustralian National University, Canberra, 0200 , Australia.\n[International = +61 6, Australia = 06] [Phone = 2492930, Fax = 2490747]\n-- \nMarkus Buchhorn, Parallel Computing Research Facility\nemail = markus@octavia.anu.edu.au\nAustralian National University, Canberra, 0200 , Australia.\n[International = +61 6, Australia = 06] [Phone = 2492930, Fax = 2490747]\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6405, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: slc@a2.cim.cdc.com (Steve Chesney x4662)\nSubject: Re: More Diamond SS 24X\nReply-To: slc@.cdc.com\nOrganization: Metaphase Technology, Inc.\nLines: 20\n\nIn article <1993Apr23.170922.1911@odetics.com>, dale@odetics.com (Dale Pischke) writes:\n>In article <1993Apr20.195853.16179@samba.oit.unc.edu> dil.admin@mhs.unc.edu (Dave Laudicina) writes:\n>>Has anyone experienced a faint shadow at all resolutions using this\n>>card. Is only in Windows. I have replaced card and am waiting on \n>>latest drivers. Also have experienced General Protection Fault Errors\n>>in WSPDPSF.DRV on Winword Tools Option menu and in WINFAX setup.\n>\n>I had the exact same failure with the 24X and Word for Windows.\n>A quick call to Microsoft indicated it was problem with the\n>24X drivers. You need to call Diamond and get the new drivers,\n>I think version 2.03 fixes the above problem, there may be later\n>versions that I'm unaware of...\n>\n\nVersion 2.03 drivers are current.\n-- \nSteve Chesney                                    slc@catherine.cim.cdc.com     \nMetaphase Technology Inc.                        612-482-4662 (voice)\n4233 North Lexington Avenue                      612-482-4001 (fax)\nArden Hills, MN  55126\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6406, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Christians above the Law? was Clarification of personal position\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 24\n\nIn article <C5MuIw.AqC@mailer.cc.fsu.edu> \ndlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n>... other good stuff deleted ...\n>You can worship every day of the week.  The issue is not whether\n>Christians are at fault for going to church on Sunday or for not going to\n>church on Saturday.  Attending a church service does not mean you have\n>recognized the holiness of that day (my apologies to  Paul Hudson).  The\n>question is \"On what authority do we proclaim that the requirements of the\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>fourth commandment are no longer relevant to modern Christians?\"  Please\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>note that the commandment does not command you to go to church, only to\n>keep it holy unto the Lord by refraining from doing on it what only serves\n>to give you pleasure and satisfaction.\n\nWhen are we going to hear a Christian answer to this question? \n\nIn paraphrase: \n\nOn what or whose authority do Christians proclaim that they\nare above the Law and above the Prophets (7 major and 12 minor) and not \naccountable to the Ten Commandments of which Jesus clearly spoke His opinion \nin Matthew 5:14-19? What is the source of this pseudo-doctrine? Who is\nthe pseudo-teacher? Who is the Great Deceiver?\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6407, "properties": {"category": "talk.politics.misc", "text": "From: mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson)\nSubject: Re: Rodney King Trial, Civil Rights Violations, Double Jeopardy\nOrganization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA\nLines: 37\n\nIn <1993Apr2.182942.22445@husc3.harvard.edu> spanagel@husc11.harvard.edu (David Spanagel) writes:\n\n|Recently it's occured to me that I've never heard of any PERSON ever being\n|tried in Federal Court for violating someone's civil rights. Of course\n|there have been cases before the Supreme Court in which it was decided\n|that someone's civil rights had been violated (e.g., Miranda, Escobedo,\n|etc.), but institutions were, de facto, the defendants, not individuals. Am I\n|mistaken? Have there been similar cases against individuals in the past? \n\nI know it was used several times in the south, to prosecute the murders of\nblacks, after all white juries had cleared the accussed.\n\n|Furthermore, what are the specific charges against the four LAPD officers? \n|Which civil rights or laws are they accused of violating? \n\nI believe it is a general charge, that is no specific right is mentioned.\n\n|What about double jeopardy? Has there been any concern that a verdict\n|against Koon, et al. might be overturned upon appeal because they're being tried\n|again for the same actions? (I thought I heard something on the news about \n|this.)\n\nThe SS has previously ruled that since the seperate governments were in\nessence seperate sovereigns, then double jeopardy does not apply.\n\n(If this is true, then could defendents also be tried under city and\ncounty governments?)\n\nThis mornings paper said that the ACLU has decided to reinstate its\nopposition to this kind of thing. They had earlier suspended their\nopposition while they examined the King case. There might be hope\nfor the ACLU after all.\n-- \nMob rule isn't any prettier merely because the mob calls itself a government\nIt ain't charity if you are using someone else's money.\nWilson's theory of relativity: If you go back far enough, we're all related.\nMark.Wilson@AtlantaGA.NCR.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.302+0000", "event": "documents", "entityId": 6408, "properties": {"category": "comp.windows.x", "text": "From: dbl@visual.com (David B. Lewis)\nSubject: comp.windows.x Frequently Asked Questions (FAQ) 2/5\nSummary: useful information about the X Window System\nReply-To: faq%craft@uunet.uu.net (X FAQ maintenance address)\nOrganization: VISUAL, Inc.\nExpires: Sun, 2 May 1993 00:00:00 GMT\nLines: 929\n\nArchive-name: x-faq/part2\nLast-modified: 1993/04/04\n\n----------------------------------------------------------------------\nSubject:  24)! How do I make a screendump or print my application?\n\n\tThe xwd client in the X11 distributions can be used to select a window \nor the background. It produces an XWD-format file of the image of that window. \nThe file can be post-processed into something useful or printed with the xpr \nclient and your local printing mechanism. You can use this command:\n\t\tcsh% sleep 10; xwd -root > output.xwd &\nand then spend 10 seconds or so setting up your screen; the entire current\ndisplay will be saved into the file output.xwd. Note that xwd also has an\nundocumented (before R5) -id flag for specifying the window id on the \ncommand-line. [There are also unofficial patches on export to xwd for \nspecifying the delay and the portion of the screen to capture.]\n\n\tTwo publicly-available programs which allow interactive definition of \narbitrary portions of the display and built-in delays are asnap and xgrabsc.\nThere are several versions of xgrabsc; version 2.2, available on export [8/92]\nis the most recent.\n\txsnap includes some asnap features and supersedes it; it also renders \nXPM output [version unknown]. It is available on export or avahi.inria.fr;\nsee xsnap-pl2.tar.Z.\n\tA screen-dump and merge/edit program combining features of xwd and xpr\nis available from vernam.cs.uwm.edu as xdump1.0.tar.Z. Information: \nsoft-eng@cs.uwm.edu.\n\txprint, by Alberto Accomazzi (alberto@cfa.harvard.edu) is available\nfrom cfa0 (128.103.40.1) in xprint.export-2.1.tar.Z.\n\n\tTo post-process the xwd output of some of these tools, you can use xpr,\nwhich is part of the X11 distribution. Also on several archives are xwd2ps\nand XtoPS, which produce Encapsulated PostScript with trimmings suitable for \nuse in presentations (see export.lcs.mit.edu:contrib/xwd2ps.tar.Z and\ncontrib/ImageMagick.tar.Z). Also useful is the PBMPLUS package on many archive\nservers; and the Xim package contains Level 2 color PostScript output.\n\n\tThe XV program can grab a portion of the X display, manipulate it, and\nsave it in one of the available formats. ImageMagick has similar capabilities.\n\n\tAlso: \n\n\tBristol Technology (info@bristol.com, 203-438-6969) offers Xprinter \n2.0, an Xlib API for PostScript and PCL printers; a demo is on ftp.uu.net\nin vendor/Bristol/Xprinter.\n\n\tColorSoft 9619-459-8500) offers OPENprint package includes a screen-\ncapture facility, image-processing, and support for PostScript and \nnon-PostScript printers.\n\n\tSome vendors' implementations of X (e.g. DECWindows and OpenWindows) \ninclude session managers or other desktop programs which include \"print portion\nof screen\" or \"take a snapshot\" options. Some platforms also have tools which \ncan be used to grab the frame-buffer directly; the Sun systems, for example, \nhave a 'screendump' program which produces a Sun raster file. Some X terminals \nhave local screen-dump utilities to write PostScript to a local serial printer.\n\n\tSome vendors' implementations of lpr (e.g. Sony) include direct \nsupport for printing xwd files, but you'll typically need some other package \nto massage the output into a useful format which you can get to the printer.\n\n----------------------------------------------------------------------\nSubject:  25)  How do I make a color PostScript screendump of the X display?\n\n\tIf you need color PostScript in particular, you can \n\t- grab the screen-image using a program which can produce color \nPostScript, such as xgrabsc and xv \n\t- grab the screen-image using xwd and post-process xwd into color PS.\nYou can do this using xwd2ps or the XtoPS program from the ImageMagick \ndistribution. The PBMPLUS package is also good for this, as is the Xim package.\n\n----------------------------------------------------------------------\nSubject:  26)  How do I make a screendump including the X cursor?\n\n\tThis can't be done unless the X server has been extended. Consider \ninstead a system-dependent mechanism for, e.g.,  capturing the frame-buffer.\n\n----------------------------------------------------------------------\nSubject:  27)  How do I convert/view Mac/TIFF/GIF/Sun/PICT/img/FAX images in X?\n\n\tThe likeliest program is an incarnation of Jef Poskanzer's useful++ \nPortable Bitmap Toolkit, which includes a number of programs for converting \namong various image formats. It includes support for many types of bitmaps, \ngray-scale images, and full-color images. PBMPLUS has been updated recently;\nthe most recent version [12/91] is on export in contrib/pbmplus10dec91.tar.Z.\n\tAnother tool is San Diego Supercomputing Center's IMtools ('imconv' in \nparticular), which packages the functionality of PBM into a single binary.\nIt's available anonymous ftp from sdsc.edu (132.249.20.22).\n\n\tUseful for viewing some image-formats is Jim Frost's xloadimage, a\nversion of which is in the R4 directory contrib/clients/xloadimage; there are \nlater versions available, including contrib/xloadimage.3.03.tar.Z on export.  \nGraeme Gill's updates to an earlier version of xloadimage are also on export; \nsee xli.README and xli.tar.Z.uu; version 1.14 was released 2/93.\n\n\txv (X Image Viewer), written by bradley@cis.upenn.edu (John Bradley), \ncan read and display pictures in Sun Raster, PGM, PBM, PPM, X11 bitmap, TIFF, \nGIF and JPEG. It can manipulate on the images: adjust, color, intensity, \ncontrast, aspect ratio, crop). It can save images in all of the aforementioned \nformats plus PostScript. It can grab a portion of the X display, manipulate on \nit, and save it in one of the available formats. The program was updated 5/92; \nsee the file contrib/xv-2.21.tar.Z on export.lcs.mit.edu.\n\n\tThe Fuzzy Pixmap Manipulation, by Michael Mauldin <mlm@nl.cs.cmu.edu>.\nConversion and manipulation package, similar to PBMPLUS.  Version 1.0 available\nvia FTP as nl.cs.cmu.edu:/usr/mlm/ftp/fbm.tar.Z, uunet.uu.net:pub/fbm.tar.Z, \nand ucsd.edu:graphics/fbm.tar.Z.\n\n\tThe Img Software Set, by Paul Raveling <raveling@venera.isi.edu>, reads\nand writes its own image format, displays on an X11 screen, and does some image\nmanipulations.  Version 1.3 is available via FTP on expo.lcs.mit.edu as\ncontrib/img_1.3.tar.Z, along with large collection of color images.\n\n\tThe Utah RLE Toolkit is a conversion and manipulation package similar \nto PBMPLUS.  Available via FTP as cs.utah.edu:pub/urt-*, \nweedeater.math.yale.edu:pub/urt-*, and freebie.engin.umich.edu:pub/urt-*.\n\n\tXim, The X Image Manipulator, by Philip Thompson, does essential \ninteractive displaying, editing, filtering, and converting of images. There is \na version in the X11R4 contrib area; but a more recent version (using R4 and \nMotif 1.1) is available from gis.mit.edu (18.80.1.118). Xim reads/writes gif, \nxwd, xbm, tiff, rle, xim, (writes level 2 eps) and other formats and also has a\nlibrary and command-line utilities for building your own applications.\n\n\tImageMagick [2.3; 2/93] by cristy@dupont.com can be retrieved from \nexport's contrib area. It is a collection of utilities to transform and display\nimages on any X server. The tool uses the MIFF format; filters to and from MIFF\nfrom other popular formats (PPM, TIFF, GIF, SUN Raster, etc) are included.\n\n\txtiff is a tool for viewing a TIFF file in an X window.  It was written\nto handle as many different kinds of TIFF files as possible while remaining\nsimple, portable and efficient.  xtiff illustrates some common problems\nwith building pixmaps and using different visual classes.  It is distributed\nas part of Sam Leffler's libtiff package and it is also available on\nexport.lcs.mit.edu, uunet.uu.net and comp.sources.x. [dbs@decwrl.dec.com,10/90]\nxtiff 2.0 was announced in 4/91; it includes Xlib and Xt versions.\n\n\tA version of Lee Iverson's (leei@McRCIM.McGill.EDU) image-viewing tool\nis available as contrib/vimage-0.9.3.tar.Z on export.lcs.mit.edu.  The package \nalso includes an ImageViewPort widget and a FileDialog widget. [12/91;5/92] \n\n[some material from Larry Carroll (larryc@poe.jpl.nasa.gov), 5/91]\n\n----------------------------------------------------------------------\nSubject:  28)  How can I change the titlebar of my xterm window?\n\n\tThe solution involves sending an escape sequence to xterm which will\ncause it to update the property which the window manager relies upon for the\nstring which appears in the window titlebar.\n\tA solution is as easy as typing this in an xterm running a shell:\n\t\techo \"ESC]2;TEXT^G\"\nwhere ESC is the escape key, TEXT is the string you wish to have displayed,\nand ^G is a Control-G (the BEL character).\n\n\tHere is a more complicated csh alias which changes the titlebar to\nthe current working directory when you change directories:\n\t\talias newcd 'cd \\!*; echo -n ESC]2\\;$cwd^G'\n\n\tThe digit '2' in these strings indicates to xterm that it should \nchange only the title of the window; to change both the title and the name \nused in the icon, use the digit '0' instead, and use '1' to change only the \nicon name.\n\n\tNote: another way to do this, which prevents an incorrect display of\nthe local directory if a modified `cd` is used in a subshell, is to wrap the\nescape sequences into the PS1 prompt itself.\n\n\tNote: on an IBM RS/6000 is may be necessary to begin the sequence with\na ^V.\n\n----------------------------------------------------------------------\nSubject:  29)  Where can I find the xterm control sequences?\n\nThe best source of such information is in your R5 sources in the file \nctlseqs.ms; a PostScript version is in mit/hardcopy/clients/ctlseqs.PS.Z.\n\nO'Reilly's Volume 3, the X User's Guide, includes an R5 version of the control \nsequences; the standard volume will be available 3/93, and a Motif version of \nthe book is available now. The current (R4) guide includes an outdated version\nof the control sequences. [1/93]\n\nOther good sources of information include the R4 version of that document\nand also the file in the R4 sources called mit/clients/xterm/ctlseq2.txt, a \ncompilation put together by Skip Montanaro (GE CR&D) listing the VT100 \nsequences. It dates from R3 but is fairly accurate.  A hardcopy version was \npublished in the December 1989 XNextEvent (the XUG newsletter).\n\nIn a pinch, a VT100 manual will do.\n\n[last updated 10/91]\n\n----------------------------------------------------------------------\nSubject:  30)- Why does the R3 xterm, et al, fail against the R4 server?\n----------------------------------------------------------------------\nSubject:  31)  How can I use characters above ASCII 127 in xterm ?\n\n\tIn order to use special characters such as the o-umlaut, you need to \n\"stty pass8\" but also to use a charcell ISO8859 font, such as \n\tXTerm*font: \t-*-*-medium-r-normal-*-*-130-*-*-c-*-iso8859-1\n\tXTerm*boldfont:\t-*-*-bold-r-normal-*-*-130-*-*-c-*-iso8859-1\n[The family is intentionally unspecified in this example.]\n\nIn addition, you may want to set this in your shell:\n\tsetenv LC_CTYPE iso_8859_1\n\n        For a given character above 127, you can determine the key to use with \nthe Alt modifier by finding the equivalent character below 127 (try using\n`man ascii`). For example, o-umlaut (v) is Alt-v and the section character (') \nis Alt-'. \n\n[thanks to Greg Holmberg (greg%thirdi@uunet.uu.net) and Stephen Gildea \n(gildea@expo.lcs.mit.edu); 6/92]\n\n----------------------------------------------------------------------\nSubject:  32)  Why are my xterm menus so small?\n\n\tYou are probably setting the geometry small accidentally. If you give \na resource specification like this:\n\t\txterm*geometry: 80x24\nthen you are asking for all widgets under xterm to have their geometry set to\n80x24. For the main window, this is OK, as it uses characters for its size. \nBut its popup menus don't; they are in pixels and show up small. To set only\nthe terminal widget to have the specified geometry, name it explicitly:\n\t\txterm*VT100.geometry: 80x24\n\n----------------------------------------------------------------------\nSubject:  33)  How can I print the current selection?\n\n\tYou could paste it into an xterm after executing the lpr command. \nHowever, a program by Richard Hesketh (rlh2@ukc.ac.uk) specifically for \nmanipulating the selection will help; e.g. \n\t% xselection PRIMARY | lpr\nfinds the primary selection and prints it. This command can be placed in a \nwindow-manager menu or in shell-scripts. xselection also permits the setting of\nthe selection and other properties. A version is on export.\n\tAlso available is ria.ccs.uwo.ca:pub/xget_selection.tar.Z, which can be\nadapted to do this.\n\n----------------------------------------------------------------------\nSubject:  34)  How does Xt use environment variables in loading resources?\n\n\tYou can use several environment variables to control how resources are \nloaded for your Xt-based programs -- XFILESEARCHPATH, XUSERFILESEARCHPATH, and \nXAPPLRESDIR.  These environment variables control where Xt looks for \napplication-defaults files as an application is initializing.  Xt loads at most\none app-defaults file from the path defined in XFILESEARCHPATH and another from\nthe path defined in XUSERFILESEARCHPATH.\n\n\tSet XFILESEARCHPATH if software is installed on your system in such a \nway that app-defaults files appear in several different directory hierarchies.\nSuppose, for example, that you are running Sun's Open Windows, and you also \nhave some R4 X applications installed in /usr/lib/X11/app-defaults. You could \nset a value like this for XFILESEARCHPATH, and it would cause Xt to look up \napp-defaults files in both /usr/lib/X11 and /usr/openwin/lib (or wherever your\nOPENWINHOME is located):\n\tsetenv XFILESEARCHPATH /usr/lib/X11/%T/%N:$OPENWINHOME/lib/%T/%N\n\nThe value of this environment variable is a colon-separated list of pathnames.  The pathnames contain replacement characters as follows (see \nXtResolvePathname()):\n\n        %N      The value of the filename parameter, or the\n                application's class name.\n        %T      The value of the file \"type\".  In this case, the\n                literal string \"app-defaults\"\n        %C      customization resource (R5 only)\n        %S      Suffix.  None for app-defaults.\n        %L      Language, locale, and codeset (e.g. \"ja_JP.EUC\")\n        %l      Language part of %L  (e.g. \"ja\")\n        %t      The territory part of the display's language string\n        %c      The codeset part of the display's language string\n\n\tLet's take apart the example.  Suppose the application's class name is \n\"Myterm\". Also, suppose Open Windows is installed in /usr/openwin. (Notice the \nexample omits locale-specific lookup.)\n\t/usr/lib/X11/%T/%N        means /usr/lib/X11/app-defaults/Myterm\n\t$OPENWINHOME/lib/%T/%N    means /usr/openwin/lib/app-defaults/Myterm\n\n\tAs the application initializes, Xt tries to open both of the above \napp-defaults files, in the order shown.  As soon as it finds one, it reads it \nand uses it, and stops looking for others.  The effect of this path is to \nsearch first in /usr/lib/X11, then in /usr/openwin.\n\n\tLet's consider another example. This time, let's set \nXUSERFILESEARCHPATH so it looks for the file Myterm.ad in the current working \ndirectory, then for Myterm in the directory ~/app-defaults.\n\tsetenv XUSERFILESEARCHPATH ./%N.ad:$HOME/app-defaults/%N\n\n\tThe first path in the list expands to ./Myterm.ad.  The second expands \nto $HOME/app-defaults/Myterm.  This is a convenient setting for debugging \nbecause it follows the Imake convention of naming the app-defaults file \nMyterm.ad in the application's source directory, so you can run the application\nfrom the directory in which you are working and still have the resources loaded\nproperly.  NOTE: when looking for app-default files with XUSERFILESEARCHPATH,\nfor some  bizarre reason, neither the type nor file suffix is defined so %T and\n%S are useless.\n\n\tWith R5, there's another twist.  You may specify a customization \nresource value.  For example, you might run the \"myterm\" application like this:\n\tmyterm -xrm \"*customization: -color\"\n\n\tIf one of your pathname specifications had the value\n\"/usr/lib/X11/%T/%N%C\" then the expanded pathname would be\n\"/usr/lib/X11/app-defaults/Myterm-color\" because the %C substitution character \ntakes on the value of the customization resource.\n\n\tThe default XFILESEARCHPATH, compiled into Xt, is:\n\t\t/usr/lib/X11/%L/%T/%N%C:\\  (R5)\n\t\t/usr/lib/X11/%l/%T/%N%C:\\  (R5)\n\t\t/usr/lib/X11/%T/%N%C:\\     (R5)\n\t\t/usr/lib/X11/%L/%T/%N:\\\n\t\t/usr/lib/X11/%l/%T/%N:\\\n\t\t/usr/lib/X11/%T/%N\n\n\t(Note: some sites replace /usr/lib/X11 with a ProjectRoot in\nthis batch of default settings.)\n\n\tThe default XUSERFILESEARCHPATH, also compiled into Xt, is \n\t\t<root>/%L/%N%C:\\  (R5)\n\t\t<root>/%l/%N%C:\\  (R5)\n\t\t<root>/%N%C:\\     (R5)\n\t\t<root>/%L/%N:\\\n\t\t<root>/%l/%N:\\\n\t\t<root>/%N:\n\n\t<root> is either the value of XAPPLRESDIR or the user's home directory \nif XAPPLRESDIR is not set.  If you set XUSERFILESEARCHPATH to some value other \nthan the default, Xt ignores XAPPLRESDIR altogether.\n\n\tNotice that the quick and dirty way of making your application find \nyour app-defaults file in your current working directory is to set XAPPLRESDIR \nto \".\", a single dot.  In R3, all this machinery worked differently; for R3 \ncompatibilty, many people set their XAPPLRESDIR value to \"./\", a dot followed \nby a slash.\n\n[Thanks to Oliver Jones (oj@world.std.com); 2/93.]\n\n----------------------------------------------------------------------\nSubject:  35)  How to I have the R4 xdm put a picture behind the log-in window?\n\nThe answer lies in changing xdm's xrdb resource in the xdm-config file to run a\nprogram to change the background before loading the resources; for example, \nyour /usr/lib/X11/xdm/xdm-config file may add the line \n\tDisplayManager.0.authorize: false \nto permit unrestricted access to the display before log-in (beware!) and also \n\tDisplayManager*xrdb:\t/usr/lib/X11/xdm/new.xrdb\nwhere that file does something (for all connections) along the lines of:\n\t#!/bin/sh\n\t#comes in with arguments: -display :0 -load /usr/lib/X11/xdm/Xresources\n\t/usr/bin/X11/xsetroot -display $2 -bitmap /usr/lib/X11/xdm/new.bitmap\n\t/usr/bin/X11/xrdb $*\nSubstitute xloadimage or xv for xsetroot, to taste.  Note that this is a \ngeneral hack that can be used to invoke a console window or any other client.\n\n[Thanks to Jay Bourland (jayb@cauchy.stanford.edu), 9/91]\n\n----------------------------------------------------------------------\nSubject:  36)  Why isn't my PATH set when xdm runs my .xsession file?\n\n\tWhen xdm runs your .xsession it doesn't source your .cshrc or .login\nfiles. You can set the path explicitly as you normally could for any SH script;\nor you can place all environment-setting statements in a separate file and\nsource it from both the .xsession file and your shell configuration file; or,\nif you set your PATH in your .cshrc file, the normal place, you can make your \n.xsession have PATH set simply by making it a csh script, i.e. by starting\nyour .xsession file off with \"#!/bin/csh\". \n\tIf this doesn't work, also try starting off with:\n\t\t#!/bin/sh\n\t\t# Reset path:\n\t\tPATH=`csh -c 'echo $PATH'` ; export PATH\n\n----------------------------------------------------------------------\nSubject:  37)  How do I keep my $DISPLAY when I rlogin to another machine?\n\n\tThere are several ways to avoid having to do a \"setenv DISPLAY ...\"\nwhenever you log in to another networked UNIX machine running X.\n\tOne solution is to use the clients/xrsh on the R5 contrib tape.  It \nincludes xrsh, a script to start an X application on remote machine, and\nxrlogin, a script to start a local xterm running rlogin to a remote machine.\nA more recent version is on export in xrsh-5.4.shar.\n\tOne solution is to use the xrlogin program from der Mouse\n(mouse@larry.mcrcim.mcgill.edu). You can ftp caveat-emptor versions from\n132.206.1.1, in X/xrlogin.c and X/xrlogind.c. The program packages up $TERM and\n$DISPLAY into a single string, which is stuffed into $TERM.  rlogin then \npropagates $TERM normally; your .cshrc on the remote machine should contain\n\t\teval `xrlogind`\nwhere xrlogind is a program that checks $TERM and if it is of the special \nformat it recognizes, unpacks it and spits out setenv and unsetenv commands to \nrecreate the environment variables. [11/90]\n\n\tIn addition, if all you need to do is start a remote X process on \nanother host, and you find\n\t\trsh <HOST> -n /usr/bin/X11/xterm -display $DISPLAY \ntoo simple (DISPLAY must have your real hostname), then this version of xrsh \ncan be used to start up remote X processes. The equivalent usage would be \n\t\txrsh <HOST> xterm\n\n  #! /bin/sh\n  # start an X11 process on another host\n  # Date: 8 Dec 88 06:29:34 GMT\n  # From: Chris Torek <chris@mimsy.umd.edu>\n  # rsh $host -n \"setenv DISPLAY $DISPLAY; exec $@ </dev/null >&/dev/null\"\n  #\n  # An improved version:\n  # rXcmd (suggested by John Robinson, jr@bbn.com)\n  #       (generalized for sh,ksh by Keith Boyer, keith@cis.ohio-state.edu)\n  #\n  # but they put the rcmd in ()'s which left zombies again.  This\n  # script combines the best of both.\n  \n  case $# in\n  [01])  echo \"Usage: $0 host x-cmd [args...]\";;\n  *)\n  \tcase $SHELL in\n  \t*csh*)  host=\"$1\"; shift\n  \t\txhost \"$host\" > /dev/null\n  \t\trsh \"$host\" -n \\\n  \t\t\t\"setenv TERM xterm; setenv DISPLAY `hostname`:0; \\\n  \t\t\texec $* </dev/null >& /dev/null\" &\n  \t\t;;\n  \t*sh)\n  \t\thost=\"$1\"; shift\n  \t\txhost \"$host\" > /dev/null\n  \t\trsh \"$host\" -n \\\n  \t\t\t\"TERM=xterm export TERM; \\\n  \t\t\tDISPLAY=`hostname`:0 export DISPLAY; \\\n  \t\t\tLD_LIBRARY_PATH=/usr/X11/lib export LD_LIBRARY_PATH; \\\n  \t\t\tPATH=\\$PATH:/usr/X11/bin:/usr/bin/X11:/usr/local/bin; \\\n\t\t\texport PATH; \\\n  \t\t\texec $* < /dev/null > /dev/null 2>&1\" &\n  \t\t;;\n  \tesac\n  \t;;\n  esac\n\n----------------------------------------------------------------------\nSubject:  38)  How can I design my own font?\n\n\tOne way is to use the \"bitmap\" client or some other bitmap-editor (e.g.\nSun's icon-editor tool, post-processed with pbmplus) to design the individual \ncharacters and then to do some large amount of post-processing to concatenate \nthem into the BDF format. See Ollie Jones's article in the November 91 X \nJournal for more information.\n\tThe R3 contrib/ area (in fonts/utils/ and in clients/xtroff) contained \na number of useful utilities, including some to convert between BDF font format\nand a simple character format which can be edited with any text editor.\n\tAn easier way is to use the \"xfed\" client to modify an existing font; a\nversion is on the R4 or R5 X11R5 contrib tape in contrib/clients/xfed. Xfed is \navailable for anonymous ftp on ftp.Informatik.Uni-Dortmund.DE [129.217.64.63], \npossibly as file /pub/windows/X/Diverse-X11-Sourcen/xfed.tar.Z. It can produce\nBDF-format fonts which can be compiled for a variety of X servers.\n\tThe xfedor client from Group Bull permits creation of bitmaps, cursors,\nXPM1 pixmaps, and fonts. Binaries for common machines are on avahi.inria.fr in\n/pub; in addition, the sources (an old Xlib implementation) have been placed \n[5/91] in export:/contrib. \n\tIf you are a MetaFont user you can use \"mftobdf\" from the SeeTeX\ndistribution to convert PK, GF, and PXL fonts to BDF format; the distribution\nis on ftp.cs.colorado.edu and on export.lcs.mit.edu.\n\tThe GNU package fontutils-0.4.tar.Z on prep.ai.mit.edu includes xbfe,\na font editor, and a number of utilities for massaging font formats.\n\tThe O'Reilly X Resource issue #2 contains an article on using these\ntools to modify a font.\n\tFonts can be resized with Hiroto Kagotani's bdfresize; a new version is\nin ftp.cs.titech.ac.jp:/X11/contrib.\n\n----------------------------------------------------------------------\nSubject:  39)  Why does adding a font to the server not work (sic)?\n\n\tAfter you have built the font using your system's font-compiler, \ninstalled it in some directory, and run `mkfontdir` or your system's equivalent\n(e.g. bldfamily for OpenWindows) in that directory, be sure to use `xset +fp \n$dir` to add that full path-name to the server's font-path, *or* if the \ndirectory is already in the path, use `xset fp rehash` so that the new fonts in\nthat directory are actually found; it is this last step that you're probably \nleaving out. (You can also use `xset q` to make sure that that directory is in \nthe path.)\n\tSometimes your \"xset +fp $dir\" command fails with a BadValue error:\n\t\tX Error of failed request:BadValue\n\t\t\t(integer parameter out of range for operation)\n\t\tMajor opcode of failed request:  51 (X_SetFontPath)\n\n\tThis means the X server cannot find or read your font directory, or\nthat your directory does not look like a font directory to the server.  (The\nmention of an \"integer parameter\" in the message is spurious.)\n\n-- Is the font directory you're specifying readable from the SERVER's file\n   system?  Remember, it's the server, not the client, which interprets your\n   font directory.  Trouble in this area is especially likely when you issue an\n   xset command with shell metacharacters in it (e.g. \"xset +fp ~/myfonts\") and\n   the server is an X terminal or managed by xdm.\n\n-- Is the directory really a font directory?  If you're running an MIT server\n   (or most varieties of vendor servers) look in the directory for the file\n   \"fonts.dir\".  If you can't find that file, run mkfontdir(1).  (If you're\n   running OpenWindows, look for the file \"Families.list\".  If you can't find\n   it, run bldfamily(1).)\n\n-- If you're in a site where some people run X11Rn servers and others run a\n   proprietary server with nonstandard font formats (OpenWindows, for\n   example), make sure the font directory is right for the server you're using.\n   Hint: if the directory contains .pcf and/or .snf files, it won't work for\n   Open Windows.  If the directory contains .ff and/or .fb files, it won't work\n   for X11Rn.\n\n[thanks to der Mouse (mouse@larry.mcrcim.mcgill.edu) and to Oliver Jones \n(oj@pictel.com); 7/92 ]\n\n----------------------------------------------------------------------\nSubject:  40)  How do I convert a \".snf\" font back to \".bdf\" font?\n\n\tA tool called \"snftobdf 1.4\" is part of the bdftools package, which is \navailable from export.lcs.mit.edu:contrib/bdftools.tar.Z and from \ncrl.nmsu.edu:pub/misc/bdftools.tar.Z.  [2/91]\n\n----------------------------------------------------------------------\nSubject:  41)  What is a general method of getting a font in usable format?\n\n\tder Mouse's getbdf is one solution; it connects to a server and \nproduces a .BDF file for any font the server is willing to let it.  It can be \nused as an anything-to-BDF converter, but requires access to a server that can \nunderstand the font file, thus is both more and less powerful than other tools \nsuch as snftobdf. getbdf is on 132.206.1.1 in X/getbdf.c or available via mail \nfrom mouse@larry.McRCIM.McGill.EDU. [5/91]\n\tIn addition, the R5 program \"fstobdf\" can produce bdf for any font that\nthe R5 server has access to.\n\n----------------------------------------------------------------------\nSubject:  42)  How do I use DECwindows fonts on my non-DECwindows server?\n\n\tThe DECwindows fonts typically don't exist on a non-DEC installation,\nbut rewrite rules can be used to alias fonts used by DECwindows applications to\nstandard MIT fonts of similar characteristics and size. Pick up the file \ncontrib/DECwindows_on_X11R4_font.aliases from export.lcs.mit.edu; this file is \nfor a standard MIT R4 server.  It can also serve as a starting point for \ncreating a similar aliases file for the Open Windows server or other servers \nwhich do not use the MIT font scheme.\n\n----------------------------------------------------------------------\nSubject:  43)  How do I add \".bdf\" fonts to my DECwindows server?\n\n\tThe format of fonts preferred by DEC's X server is the \".pcf\" format.\nYou can produce this compiled format from the .bdf format by using DEC's dxfc\nfont-compiler. Note that the DEC servers can also use raw .bdf fonts, with a\nperformance hit.\n\n----------------------------------------------------------------------\nSubject:  44)! How can I set backgroundPixmap in a defaults file? (What is XPM?)\nI want to be able to do something like this:\n\txclock*backgroundPixmap:      /usr/include/X11/bitmaps/rootweave\n\n\tYou can't do this. The backgroundPixmap resource is a pixmap of the \nsame depth as the screen, not a bitmap (which is a pixmap of depth 1). Because \nof this, writing a generic String to Pixmap converter is impossible, since \nthere is no accepted convention for a file format for pixmaps. Therefore, \nneither the X Toolkit or the Athena widget set define a String to Pixmap \nconverter, because there is no converter you cannot specify this value as a \nresource.  The Athena widget set does define a String to Bitmap converter for \nuse in many of its widgets, however.\n[courtesy Chris D. Peterson (now kit@ics.com), 4/90]\n\nHowever:\n\tA specific converter which encapsulates much of the functionality of \nthe xloadimage package by Jim Frost was posted 12/90 by Sebastian Wangnick \n(basti@unido.informatik.uni-dortmund.de); it permits loading of a number of \nimage formats as a pixmap.\n\n\tThe leading general-purpose format for pixmaps is the XPM format used \nby Groupe Bull in several of its programs, including the GWM window manager, by\nAT&T in its olpixmap editor, and by ICS in its interface builder. XPM \ndistribution, available on export as contrib/xpm.tar.Z, includes read/write \nroutines which can easily be adapted to converters by new widgets which want to\nallow specification of pixmap resources in the above manner.  See information\non the xpm-talk mailing list above. XPM 3.0f was announced in 3/93 and is\navailable from export.lcs.mit.edu and avahi.inria.fr; an older version is on \nthe R5 contrib tape. [A set of XPM icons collected by Anthony Thyssen \n(anthony@kurango.cit.gu.edu.au) is on export in contrib/AIcons.]\n\n----------------------------------------------------------------------\nSubject:  45)  Why can't I override translations? Only the first item works.\n\n\tYou probably have an extra space after the specification of the first \nitem, like this:\n\tbasic*text.translations:  #override \\\n\tCtrl<Key>a:    beginning-of-line() \\n\\ \t\n\tCtrl<Key>e:    end-of-line()\n\t\t\t\t\t      ^ extra space\nThe newline after that space is ending the translation definition.\n[Thanks to Timothy J. Horton, 5/91]\n\n----------------------------------------------------------------------\nSubject:  46)  How can I have xclock or oclock show different timezones?\n\n\tOne solution is xchron, in Volume 6 of comp.sources.x, which can show\nthe time for timezones other than the local one. \n\tAlternatively, you can probably set the timezone in the shell from\nwhich you invoke the xclock or oclock, or use a script similar to this:\n\t#!/bin/sh\n\tTZ=PST8PDT xclock -name \"San_Luis_Obispo_CA\" 2> /dev/null &\n\tTZ=EST5EDT xclock -name \"King_Of_Prussia_PA\" 2> /dev/null &\n\n----------------------------------------------------------------------\nSubject:  47)  I have xmh, but it doesn't work. Where can I get MH?\n\n\tThe xmh mail-reader requires the Rand MH mail/message handling system,\nwhich is not part of the UNIX software distribution for many machines. A list \nof various ftp, uucp, e-mail and US-mail sites for both xmh and MH is given in \nthe monthly MH FAQ; one source is ics.uci.edu in the file pub/mh/mh-6.7.tar.Z.\nIf you do not receive the comp.mail.mh newsgroup or the MH-users mailing list, \nyou can request a copy of the FAQ, which also includes a section on xmh, \nby sending mail to mail-server@pit-manager.mit.edu containing the request\n\"send usenet/news.answers/mh-faq\".\n\n----------------------------------------------------------------------\nSubject:  48)  Why am I suddenly unable to connect to my Sun X server?\nAfter a seemingly random amount of time after the X server has been started, no\nother clients are able to connect to it.\n\n\tThe default cron cleanup jobs supplied by Sun (for 4.0.3, at least)\ndelete \"old\" (unreferenced) files from /tmp -- including /tmp/.X11-unix, which \ncontains the socket descriptor used by X. The solution is to add \"! -type s\" to\nthe find exclusion in the cron job.\n[10/90]\n\n----------------------------------------------------------------------\nSubject:  49)  Why don't the R5 PEX demos work on my mono screen?\n\nThe R5 sample server implementation works only on color screens, sorry.\n\n----------------------------------------------------------------------\nSubject:  50)! How do I get my Sun Type-[45] keyboard fully supported by Xsun?\n \nMany users wants the Num Lock key to light the Num Lock LED and have the \nappropriate effect on the numeric keypad. The Xsun server as distributed by MIT\ndoesn't do this but there are two different patches available.\n \nThe first patch is written by Jonathan Lemon and fixes the Num Lock related \nproblems. It is available from export.lcs.mit.edu in the file\ncontrib/Xsun-R5.numlock_patch.Z .\n \nThe second is written by Martin Forssen and fixes the Num Lock and Compose keys\nand adds support for the different national keyboard layouts for Type-4 and \nType-5 keyboards. This patch is available from export.lcs.mit.edu in\ncontrib/sunkbd1216-0314.tar.Z or via email from maf@dtek.chalmers.se.\n \n[thanks to Martin Forssen (maf@dtek.chalmers.se or maf@math.chalmers.se), 8/92]\n\nA set of patches by William Bailey (dbgwab@arco.com) was posted to newsgroups\n11/92 to provide support for the Type-5 keyboard.\n\n----------------------------------------------------------------------\nSubject:  51)  How do I report bugs in X?\n\n\tGenerally, report bugs you find to the organization that supplied you\nwith the X Window System. If you received the R5 source distribution directly \nfrom MIT, please read the file mit/bug-report for instructions. [Look in\nmit/doc/bugs/bug-report in R4.]\n\n[Thanks to Stephen Gildea <gildea@expo.lcs.mit.edu>, 5/91; 12/91]\n\n----------------------------------------------------------------------\nSubject:  52)  Why do I get \"Warning: Widget class version mismatch\"?\n\n\tThis error, which typically goes on to say, \"widget 11004 vs. \nintrinsics 11003\" indicates that the header files you included when building \nyour program didn't match the header files that the Xt library you're linking \nagainst was built with; check your -I include path and -L link-path to be sure.\n\tHowever, the problem also occurs when linking against a version of the \nX11R4 Xt library before patch 10; the version number was wrong. Some Sun OW\nsystems, in particular, were shipped with the flawed version of the library, \nand applications which link against the library typically give the warnings you\nhave seen.\n\n----------------------------------------------------------------------\nSubject:  53)  Where can I find a dictionary server for xwebster?\n\n\tWebster's still owns the copyright to the on-line copies of Webster's\nDictionary which are found at various (university) sites. After it became aware\nthat these sites were then acting as servers for other sites running xwebster \nand gnuemacs-webster, it asked that server sites close off external access.\n\t[The NeXT machine apparently is also licensed to have the dictionary. A\nWebster daemon for NeXT machines is available from iuvax.cs.indiana.edu \n(129.79.254.192) in \"pub/webster/NeXT-2.0\".]\n\tUnless you want to get a legal on-line copy yourself or can find a site\nwhich can grant you access, you are probably out of luck. \n\n\tHowever, if you are a legitimate site, you'll want to pick up the\nlatest xwebster, as-is on export:contrib/xwebster.tar.Z [10/91]; the file \nxwebster.README includes discussions of the availability, illegality, and \nnon-availability of dictionary servers. \n\t\n[courtesy steve@UMIACS.UMD.EDU (Steve Miller) and mayer@hplabs.hp.com (Niels \nMayer) 11/90]\n\n----------------------------------------------------------------------\nSubject:  54)  TOPIC: OBTAINING X AND RELATED SOFTWARE AND HARDWARE\n----------------------------------------------------------------------\nSubject:  55)  Is X public-domain software?\n\n\tNo. The X software is copyrighted by various institutions and is not \n\"public domain\", which has a specific legal meaning. However, the X \ndistribution is available for free and can be redistributed without fee.\n\tContributed software, though, may be placed in the public domain by\nindividual authors.\n\n----------------------------------------------------------------------\nSubject:  56)  How compatible are X11R3, R4, and R5? What changes are there?\n\nThe Release Notes for each MIT release of X11 specify the changes from the \nprevious release.  The X Consortium tries very hard to maintain compatibility \nacross releases.  In the few places where incompatible changes were necessary, \ndetails are given in the Release Notes.  Each X11 distribution site on the \nnetwork also offers the Release Notes that go with the release they offer; the \nfile typically can be found at the top of the distribution tree.\n\n[Stephen Gildea, 1/92]\n\nThe comp.windows.x.intrinsics FAQ-Xt lists Xt differences among these versions.\n\n----------------------------------------------------------------------\nSubject:  57)! Where can I get X11R5 (source and/or binaries)?\n\nInformation about MIT's distribution of the sources on 6250bpi and QIC-24 tape \nand its distribution of hardcopy of the documents is available from \nSoftware Center, Technology Licensing Office, Massachusetts Institute of \nTechnology, 28 Carleton Street, Room E32-300, Cambridge MA 02142-1324,\nphone: 617-258-8330.\n\nYou will need about 100Mb of disk space to hold all of Core and 140MB to hold\nthe Contrib software donated by individuals and companies. \n\nPLEASE use a site that is close to you in the network.\n\nNote that the RELEASE notes are generally available separately in the same\ndirectory; the notes list changes from previous versions of X and offer a\nguide to the distribution.\n\n\t\t\t  North America anonymous FTP:\n\nCalifornia\tgatekeeper.dec.com\t\tpub/X11/R5\n\t\t16.1.0.2\nCalifornia\tsoda.berkeley.edu\t\tpub/X11R5\n\t\t128.32.131.179\nIndiana\t\tmordred.cs.purdue.edu\t\tpub/X11/R5\n\t\t128.10.2.2\nMaryland\tftp.brl.mil\t\t\tpub/X11R5\n\t\t128.63.16.158\n\t\t(good for MILNET sites)\nMassachusetts\tcrl.dec.com\t\t\tpub/X11/R5\n\t\t192.58.206.2\nMassachusetts\texport.lcs.mit.edu\t\tpub/R5\n\t\t18.24.0.12\n\t\t(crl.dec.com is better)\nMichigan\tmerit.edu\t\t\tpub/X11R5\n\t\t35.1.1.42\nMissouri\twuarchive.wustl.edu\t\tpackages/X11R5\n\t\t128.252.135.4\nMontana\t\tftp.cs.montana.edu\t\tpub/X.V11R5\n\t\t192.31.215.202\nNew Mexico\tpprg.eece.unm.edu\t\tpub/dist/X11R5\n\t\t129.24.24.10\nNew York\tazure.acsu.buffalo.edu\t\tpub/X11R5\n\t\t128.205.7.6\nNorth Carolina\tcs.duke.edu\t\t\tdist/sources/X11R5\n\t\t128.109.140.1\nOhio\t\tftp.cis.ohio-state.edu\t\tpub/X.V11R5\n\t\t128.146.8.52\nOntario\t\tftp.cs.utoronto.ca\t\tpub/X11R5\n\t\t128.100.1.105\nWashington DC\tx11r5-a.uu.net\t\t\tX/R5\n\t\t192.48.96.12\nWashington DC\tx11r5-b.uu.net\t\t\tX/R5\n\t\t137.39.1.12\n\n\t\t   Europe/Middle East/Australia anonymous FTP:\n\nAustralia\tmunnari.oz.au\t\t\tX.V11/R5\n\t\t128.250.1.21\nDenmark\t\tfreja.diku.dk\t\t\tpub/X11R5\n\t\t129.142.96.1\nUnited Kingdom\tsrc.doc.ic.ac.uk\t\tgraphics/X.V11R5\n\t\t146.169.3.7\n\t\thpb.mcc.ac.uk\t\t\tpub/X11r5\n\t\t130.88.200.7\nFinland\t\tnic.funet.fi\t\t\tpub/X11/R5\n\t\t128.214.6.100\nFrance\t\tnuri.inria.fr\t\t\tX/X11R5\n\t\t128.93.1.26\nGermany\t\tftp.germany.eu.net\t\tpub/X11/X11R5\n\t\t192.76.144.129\nIsrael\t\tcs.huji.ac.il\t\t\tpub/X11R5\n\t\t132.65.6.5\nItaly\t\tghost.sm.dsi.unimi.it\t\tpub/X11R5\n\t\t149.132.2.1\nNetherlands\tarchive.eu.net\t\t\twindows/X/R5\n\t\t192.16.202.1\nNorway\t\tugle.unit.no\t\t\tpub/X11R5\n\t\t129.241.1.97\nNorway\t\tnac.no\t\t\t\tpub/X11R5\n\t\t129.240.2.40\nSwitzerland\tnic.switch.ch\t\t\tsoftware/X11R5\n\t\t130.59.1.40\n\n\t\t\t Japan anonymous FTP:\n\nKanagawa\tsh.wide.ad.jp\t\t\tX11R5\n\t\t133.4.11.11\nKwansai\t\tftp.ics.osaka-u.ac.jp\t\tX11R5\n\t\t133.1.12.30\nKyushu\t\twnoc-fuk.wide.ad.jp\t\tX11R5\n\t\t133.4.14.3\nTISN\t\tutsun.s.u-tokyo.ac.jp\t\tX11R5\n\t\t133.11.11.11\nTokyo\t\tkerr.iwanami.co.jp\t\tX11R5\n\t\t133.235.128.1\nTokyo\t\tscslwide.sony.co.jp\t\tpub/X11R5\n\t\t133.138.199.1\n\n\t\t\t\tUUCP:\n\nuunet\t\tfor UUNET customers\t\t~/X/R5\ndecwrl\t\texisting neighbors only\t\t~/pub/X11/R5\nosu-cis\t\t\t\t\t\t~/X.V11R5\n\t\t(not online until ~ 9 Sept)\nutai\t\texisting neighbors only\t\t~/ftp/pub/X11R5\nhp4nl\t\tNetherlands only\t\t~uucp/pub/windows/X/R5\n\t\t\n\n\n\t\t\t\t NFS:\nMissouri\twuarchive.wustl.edu\t\t/archive/packages/X11R5\n\t\t128.252.135.4\t\t\tmount point: /archive\n\t\t\t\t\t\t\t\n\t\t\t\t AFS:\nPennsylvania\t/afs/grand.central.org/pub/X11R5\n\n\t\t     NIFTP (hhcp, cpf, fcp, ...):\nUnited Kingdom\tuk.ac.ic.doc.src\t\t<X.V11R5>\n\t\t00000510200001\n\t\tuser \"guest\"\n\n\t\t\t      anon FTAM:\nUnited Kingdom\t000005102000 (Janet)\t\tX.V11R5\n\t\t146.169.3.7 (Internet)\n\t\t204334504108 (IXI)\n\n\t\t\t       ACSNet:\nAustralia\tmunnari.oz (fetchfile)\t\tX.V11/R5\n\t\tPlease fetch only one file\n\t\tat a time, after checking\n\t\tthat a copy is not available\n\t\tat a closer site.\n\n[9/2/91; updated for contrib 10/91]\n\nAnyone in Europe can get a copy of the MIT X.V11R5 distribution, including\nthe core and contributed software and all official patches, free of charge.\nThe only requirement is to agree to return the tapes, or equivalent new tapes.\nOnly QIC and TK format cartridges can be provided.  Contact: Jamie Watson,\nAdasoft AG, Nesslerenweg 104, 3084 Wabern, Switzerland.\nTel: +41 31 961.35.70 or +41 62 61.41.21; Fax: +41 62 61.41.30; jw@adasoft.ch.\n\nUK sites can obtain X11 through the UKUUG Software Distribution Service, from \nthe Department of Computing, Imperial College, London, in several tape formats.\nYou may also obtain the source via Janet (and therefore PSS) using Niftp (Host:\nuk.ac.ic.doc.src Name: guest Password: your_email_address).  Queries should be \ndirected to Lee McLoughlin, 071-589-5111#5037, or to info-server@doc.ic.ac.uk \nor ukuug-soft@uk.ac.ic.doc (send a Subject line of \"wanted\". Also offered are \ncopies of comp.sources.x, the export.lcs.mit.edu contrib and doc areas and most\nother announced freely distributable packages. \n\nX11R5 and X11R4 source along with X11R5 contrib code, prebuilt X binaries for\nmajor platforms, and source code examples from O'Reilly's books is available on\nan ISO-9660-format CD-ROM from O'Reilly & Associates. [as of 3/92].\n\nX11R5 source is available on ISO-9660-format CD-ROM for members of the Japan\nUnix Society from Hiroaki Obata, obata@jrd.dec.com.\n\nX11R5 source along with GNU source, the comp.sources.x archives, and SPARC\nbinaries is available on an ISO-9660-format CD-ROM from PDQ Software,\n510-947-5996 (or Robert A. Bruce, rab@sprite.Berkeley.EDU).\n\nX11R5 source is available from Automata Design Associates, +1 215-646-4894.\n\nVarious users' groups (e.g. SUG) offer X sources cheaply, typically on CD-ROM.\n\nSource for the Andrew User Interface System 5.1 and binaries for common systems\nare available on CD-ROM. Information: info-andrew-requests@andrew.cmu.edu,\n412-268-6710, fax 412-621-8081.\n\nBinaries for X11R5, with shared libX11 and libXmu, for A/UX 2.0.1 are now \navailable from wuarchive.wustl.edu:/archive/systems/aux/X11R5.  Patches for \nX11R5 compiled with gcc (but not shared libraries) are also available.\n[John L. Coolidge (coolidge@cs.uiuc.edu, 10/91)]\n\nBinaries by Rich Kaul (kaul@ee.eng.ohio-state.edu) for the Sun386i running \nSunOS 4.0.2 are available on dsinc.dsi.com (please only after-hours USA EST).\n\nBinaries for the Sun386i are available from compaq.com (131.168.249.254) in\npub/sun-386i/sources and from vernam.cs.uwm.edu (129.89.9.117).\n\nA binary tree for the Next by Douglas Scott (doug@foxtrot.ccmrc.ucsb.edu) is on\nfoxtrot.ccmrc.ucsb.edu; it is missing the server, though.\n\nBinaries for the Sun386i are in vernam.cs.uwm.edu:/sun386i.\n\nBinaries for the HP-PA are on hpcvaaz.cv.hp.com (15.255.72.15).\n\nSource and binaries for HP-UX 8.*/9.0(S300/400/700/800) and Domain 10.4 (68K,\nDN 10K) are available through the Interworks Users Group; contact Carol Relph\nat 508-436-5046, fax 508-256-7169, or relph_c@apollo.hp.com.\n\nPatches to X11R5 for Solaris 2.1 by Casper H.S. Dik (casper@fwi.uva.nl) et al\nare on export in contrib/{R5.SunOS5.patch.tar.Z,R5.SunOS5.patch.README}.\n\nPatches to X11R5 for the Sun Type 5 keyboard and the keyboard NumLock are \navailable from William Bailey (dbgwab@arco.com).\n\nAlso:\n\nBinaries are available from Unipalm (+44 954 211797, xtech@unipalm.co.uk), \nprobably for the Sun platforms. \n----------------------------------------------------------------------\n\n\nDavid B. Lewis \t\t\t\t\tfaq%craft@uunet.uu.net\n\n\t\t\"Just the FAQs, ma'am.\" -- Joe Friday \n-- \nDavid B. Lewis\t\tTemporarily at but not speaking for Visual, Inc.\nday: dbl@visual.com\tevening: david%craft@uunet.uu.net\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6409, "properties": {"category": "sci.med", "text": "From: eb3@world.std.com (Edwin Barkdoll)\nSubject: Re: Blindsight\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 64\n\nIn article <19382@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>In article <werner-240393161954@tol7mac15.soe.berkeley.edu> werner@soe.berkeley.edu (John Werner) writes:\n>>In article <19213@pitt.UUCP>, geb@cs.pitt.edu (Gordon Banks) wrote:\n>>> \n>>> Explain.  I thought there were 3 types of cones, equivalent to RGB.\n>>\n>>You're basically right, but I think there are just 2 types.  One is\n>>sensitive to red and green, and the other is sensitive to blue and yellow. \n>>This is why the two most common kinds of color-blindness are red-green and\n>>blue-yellow.\n>>\n>\n>Yes, I remember that now.  Well, in that case, the cones are indeed\n>color sensitive, contrary to what the original respondent had claimed.\n\n\n\tI'm not sure who the \"original respondent\" was but to\nreiterate cones respond to particular portions of the spectrum, just\nas _rods_ respond to certain parts of the visible spectrum (bluegreen\nin our case, reddish in certain amphibia), just as the hoseshoe crab\n_Limulus polyphemus_ photoreceptors respond to a certain portion of\nthe spectrum etc.  It is a common misconception to confound wavelength\nspecificity with being color sensitive, however the two are not\nsynonymous.\n\tSo in sum and to beat a dead horse:\n\t(1) When the outputs of a cone are matched for number of\nabsorbed photons _irrespective_ of the absorbed photons wavelength,\nthe cone outputs are _indistinguishable_.\n\t(2) Cones are simply detectors with different spectral\nsensitivities and are not any more \"color sensitive\" than are rods,\nommatidia or other photoreceptors.\n\t(3) Color vision arises because outputs of receptors which\nsample different parts of the spectrum (cones in this case) are\n\"processed centrally\".  (The handwave is intentional)\n\n\tI've worked and published research on rods and cones for over\n10 years so the adherence to the belief that cones can \"detect color\"\nis frustrating.  But don't take my word for it.  I'm reposting a few\nexcellent articles together with two rather good but oldish color\nvision texts.\n\nThe texts:\nRobert Boynton (1979) _Human Color Vision_ Holt, Rhiehart and Winston\n\nLeo M. Hurvich (1981) _Color Vision_, Sinauer Associates.\n\n\nThe original articles:\nBaylor and Hodgkin (1973) Detection and resolution of visual stimuli by\nturtle phoreceptors, _J. Physiol._ 234 pp163-198.\n\nBaylor Lamb and Yau (1978) Reponses of retinal rods to single photons.\n_J. Physiol._ 288 pp613-634.\n\nSchnapf et al. (1990) Visual transduction in cones of the monkey\n_Macaca fascicularis_. J. Physiol. 427 pp681-713.\n\n-- \nEdwin Barkdoll\nbarkdoll@lepomis.psych.upenn.edu\neb3@world.std.com\n-- \nEdwin Barkdoll\neb3@world.std.com\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6410, "properties": {"category": "talk.religion.misc", "text": "From: lovall@bohr.physics.purdue.edu (Daniel L. Lovall)\nSubject: Re: Cannibalism was Albert Sabin\nOrganization: Purdue University Physics Department\nLines: 49\n\nIn article <zxmkr08.733955549@studserv> zxmkr08@studserv.zdv.uni-tuebingen.de (C\nornelius Krasel) writes:\n>In <f1q4yUc@quack.kfu.com> pharvey@quack.kfu.com (Paul Harvey) writes:\n>\n>>In article <1pk2d0$7q1@access.digex.net>\n>>huston@access.digex.com (Herb Huston) writes:\n>>>In article <f1n#0EP@quack.kfu.com> pharvey@quack.kfu.com (Paul Harvey) writes\n:\n>>>}Do you have any examples of ritual cannibalism, particulary amongst the\n>>>}primates?\n>>>Why the \"ritual\" qualifier?\n>\n>>I was thinking of instances were a particular food or foods or drinks\n>>are used to symbolize or ritualize cannibalism. Do you know of any human\n>>cultures that have this type of mythology? For example, where one might\n>>eat a food as representative of the body of a god, thus ritualized\n>>cannibalism in the absence of the original.\n>\n>I know of ritual cannibalism among tribes in Papua-Neuguinea (?).\n>They used to eat the brain of killed opponents. Sometimes these brains\n>contained infectious agents which lead to a disease called \"Kuru\".\n>Since cannibalism was banished by the government, the number of Kuru\n>cases has dropped sharply.\n>\nOh, yeah?  Well---*I* know of ....\n\nAnyways, cannibalism is much more commmon than those who feel that it is wrong\n(and then point out that the fact that western civilisation doesn't do it is\nPROOF positive that we are more advanced) would have us believe.  Cannibalism\nis often used in funeral ceremonies as a way of keeping the deceased loved one\nalive.  Many other cultures (including many American Indian cultures) eat/ate\nthe flesh of slain enemies, often as a way of showing respect for the valor of\nthe departed.  Hearts are often favored for this, as it contains the spirit.\n\nHave you ever read or seen \"Alive\", which is the story of the Argentinian boys\nsoccer team that crashed in the Andes and then ate the bodies of those who died\nin order to survive?  Finger lickin good.  How about the Twighlight Zone\nepisode \"To Serve Man\"?\n\nIf you want more info on this, a good place to start is on sci.anthropology\n\nNow send me $20 and eat my flesh,\n\nDan\nlovall@physics.purdue.edu\n\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6411, "properties": {"category": "talk.religion.misc", "text": "From: zxmkr08@studserv.zdv.uni-tuebingen.de (Cornelius Krasel)\nSubject: Re: The _real_ probability of abiogenesis (was Re: Albert Sabin)\nOrganization: InterNetNews at ZDV Uni-Tuebingen\nLines: 27\nNNTP-Posting-Host: studserv.zdv.uni-tuebingen.de\n\nIn <1qc6tiINNhie@ctron-news.ctron.com> king@ctron.com (John E. King) writes:\n\n>adpeters@sunflower.bio.indiana.edu (Andy Peters) writes:\n\n>>1) We're not just talking about proteins.  In fact, we shouldn't be\n>>talking about proteins at all, since (if I have to say this again I'm\n>>goint to be really upset) *nobody*claims*that*proteins*appeared*de*\n>>*novo*\n>>the proteins did not form randomly.\n>> \n\n>Before I repond to 2.), Andy, please clarify 1.).  You state that\n>proteins did not form randomly.  That seems to be my point.  \n\nWell, I am not Andy, but if you had familiarized yourself with some of\nthe current theories/hypotheses about abiogenesis before posting :-), you\nwould be aware of the fact that none of them claims that proteins were\nassembled randomly from amino acids. It is current thinking that RNA-\nbased replicators came before proteinaceous enzymes, and that proteins\nwere assembled by some kind of primitive translation machinery.\n\nNow respond to 2. :-)\n--Cornelius.\n-- \n/* Cornelius Krasel, Department of Physiological Chemistry, U Tuebingen    */ \n/* email: krasel@studserv.zdv.uni-tuebingen.de                             */\n/* \"People are DNA's way of making more DNA.\" (R. Dawkins / anonymous)     */\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6412, "properties": {"category": "sci.crypt", "text": "From: kadie@eff.org (Carl M. Kadie)\nSubject: Would \"clipper\" make a good cover for other encryption method?\nOriginator: kadie@eff.org\nNntp-Posting-Host: eff.org\nOrganization: The Electronic Frontier Foundation\nLines: 26\n\nClipper might be a good way to cover the use of another layer of\nencryption.\n\nCurrently, when you send an encrypted message, an opponent can usually\ntell 1) that you are using encryption 2) which encryption method you\nare using [because that information is usually in the clear].\n\nWith clipper, most opponents will only know that you are sending\nclipper-text, they won't know that your clipper-text is itself\nencoded.\n\nOnly those few opponents who get your clipper-keys will know\nthat your message is double encrypted.\n\n... kind of like a safety deposit box containing a lock box.\n\nSo, don't just think of replacements for clipper, also think of front\nends.\n\n- Carl\n\n\n\n-- \nCarl Kadie -- I do not represent EFF; this is just me.\n =kadie@eff.org, kadie@cs.uiuc.edu =\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6413, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu The Liberalizer (Michael Lurie)\nSubject: Yankee Meditations.\nArticle-I.D.: alleg.1993Apr6.205911.2654\nOrganization: Allegheny College\nLines: 14\n\n\nDo you realize that the yankees are paying Matt Nokes 2,500,000 dollars  \nthis year!!!! GEESH. And Maas only gets 125,000.    \n\n\n\nBy the way, the yankees are going to WIN IT ALL\n\n\nYankees are the BEST.\n\n\n\nBy the way, JT Snow, an ex-yankee, will be rookie of the year.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6414, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Alaska Pipeline and Space Station!\nOrganization: Express Access Online Communications USA\nLines: 25\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr5.160550.7592@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n|\n|I think this would be a great way to build it, but unfortunately\n|current spending rules don't permit it to be workable.  For this to\n|work it would be necessary for the government to guarantee a certain\n|minimum amount of business in order to sufficiently reduce the risk\n|enough to make this attractive to a private firm.  Since they\n|generally can't allocate money except one year at a time, the\n|government can't provide such a tenant guarantee.\n\n\nFred.\n\n\tTry reading a bit.  THe government does lots of multi year\ncontracts with Penalty for cancellation clauses.  They just like to be\ndamn sure they know what they are doing before they sign a multi year\ncontract.   THe reason they aren't cutting defense spending as much\nas they would like is the Reagan administration signed enough\nMulti year contracts,  that it's now cheaper to just finish them out.\n\nLook at SSF.  THis years funding is 2.2 Billion,  1.8 of which will\ncover penalty clauses, due to the re-design.\n\npat\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6415, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: The Israeli Press\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 20\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n   Andy Beyer has claimed that the Israeli Press is a bit biased.\nBut the fact is that there are events shaping the politics of the\nmideast that people who do not read the Israeli press simply know\nnothing about.  Many of these events are not even mentioned here.\nI read the Israeli press to learn of important events about which\nyou know nothing, because of your total reliance on western media\nfor your information on Israel.  Since I read both American media\nand Israeli media, I can say with absolute certainty that anybody\nwho reliesx exclusively on the American press for knowledge about\nIsrael does not have a true picture of what is going on.\n\n   As to the claim that Israeli papers are biased, of course they\nare.  Some may lean to the right or the left, just like the media\nhere in America.  But they still report events about which people\nhere know nothing.  I choose to form my opinions about Israel and\nthe mideast based on more knowledge than does an average American\nwho relies exclusively on an American media which does not report\non events in the mideast with any consistency or accuracy.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6416, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gelldav@elof.iit.edu (David A. Geller)\nSubject: Parity Error - System Halted /anyone have any ideas?\nOrganization: Illinois Institute of Technology, Chicago\nLines: 28\n\nI recently bought an AMD 386/40.  The motherboard booklet says\nthe board is a \"391 WB/H.\"  I have 4 1x3 simms on board.  The machine\nalso uses a Super IDE I/O Card (model PT-604). (of course niether\nthe motherboard or the I/O card booklet clearly state who the manufacurers\nare) I'm also using a Trident 8900C SVGA card.\n\n\tAnyway, that's all of the pertinent info I can think of.\nMy problem is that the computer often freezes or displays \"Parity Error --\nSystem Halted\" messages depending on whether I set the Memory Parity Error\nChecking to \"disabled\" or \"enabled\" in the setup of the bios (makes sense).\nIts AMI bios (so it must be an AMI board?).\n\n\tI just took it back to the dealer and they replaced all of the\nSIMMS but I keep getting the same error (more frequently now).  It all\nworked at the dealer and didn't start screwing up 'till I got home (figures).\n\n\tI've tried to take out all of the SIMMS and even re-inserted them\nin reverse order, making sure that the connections were solid.\n\n\tMy suspicion jumps to this damn all in one HD controller/serial/\nparallel/game-port I/O card, or to the motherboard (God forbid).\n\n\tCAN ANYONE HELP?\n\nThanks, Peace,\nDavid Geller\ngelldav@elof.acc.iit.edu\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6417, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dpiaseck@jarthur.claremont.edu (Derek A. Piasecki)\nSubject: Ami Pro 3.0 and PCTools compress?!? Doesn't like being moved?\nKeywords: Ami Pro 3.0 PCTools compress\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 24\n\n\n\nHas anyone had problems with Ami Pro 3.0 after running PCTools (v7.1)\ncompress?  I have not corrupted data due to having caches other than\nPC-Cache running, so that is not it.  The first time I try to run Ami\nPro after loading windows, it loads, but causes (I think it was a) \nsegmentation fault in AMIPRO.EXE right before it finishes, with all times\nafter that only managing to get to the logo box that first pops up when\nit begins loading, and then causes a general protection fault in module\nAMIPROUI.DLL at 0002:1147.  I have not been able to fix this problem except\nby reinstalling Ami Pro.  This has happened twice, with both times being\nafter having ran compress on my hard drive.  BTW, I am not running stacker\nor any other disk compression programs, and if you don't already know,\nPCTools compress is actually a defragger, despite it's name.  My system is\na 386-40MHz, with 16MB of RAM and a NEC (OEM) hard drive, etc, but that\nshouldn't make a difference.\n\nPLEASE email me as I can't keep up with the newsgroup, and it will cut down\non net traffic anyways.  Thanks.\n\n\t\t\t\t-Derek\n\n\t\t\t\tdpiaseck@jarthur.claremont.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6418, "properties": {"category": "rec.sport.baseball", "text": "From: kahn@troi.cc.rochester.edu (James Kahn)\nSubject: Re: David Wells\nNntp-Posting-Host: troi.cc.rochester.edu\nOrganization: University of Rochester (Rochester, NY)\nLines: 9\n\nIn article <1993Apr5.124526.10219@iccgcc.decnet.ab.com> carrd@iccgcc.decnet.ab.com writes:\n>Has David Wells landed with a team yet?  I'd think the Tigers with their \n>anemic pitching would grab this guy pronto!\n\nThey did.  For $950K.\n\nJim\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6419, "properties": {"category": "rec.autos", "text": "From: williac@govonca.gov.on.ca (Chris Williams)\nSubject: Re: WARNING.....(please read)...\nOrganization: Government of Ontario\nLines: 71\n\nIn <smN42B1w165w@cybernet.cse.fau.edu> vlasis@cybernet.cse.fau.edu (vlasis theodore) writes:\n\n>tobias@convex.com (Allen Tobias) writes:\n\n>> In article <1993Apr15.024246.8076@Virginia.EDU> ejv2j@Virginia.EDU (\"Erik Vel\n>> >This happened about a year ago on the Washington DC Beltway.\n>> >Snot nosed drunken kids decided it would be really cool to\n>> >throw huge rocks down on cars from an overpass.  Four or five\n>> >cars were hit.  There were several serious injuries, and sadly\n>> >a small girl sitting in the front seat of one of them was struck \n>> >in the head by one of the larger rocks.  I don't recall if she \n>> >made it, but I think she was comatose for a month or so and \n>> >doctors weren't holding out hope that she'd live.\n>> >\n>> >What the hell is happening to this great country of ours?  I\n>> >can see boyhood pranks of peeing off of bridges and such, but\n>> >20 pound rocks??!  Has our society really stooped this low??\n>> >\n>> >Erik velapold\n>> \n>> Society, as we have known it, it coming apart at the seams! The basic reason\n>> is that human life has been devalued to the point were killing someone is\n>> \"No Big Deal\". Kid's see hundreds on murderous acts on TV, we can abort \n>> children on demand, and kill the sick and old at will. So why be surprised\n>> when some kids drop 20 lbs rocks and kill people. They don't care because the\n>> message they hear is \"Life is Cheap\"!\n>> \n>> AT\n\n>Well people fortunatly or unfortunatly ,\n>only the US is experiencing the devaluation of human life (among \n>developed nations).\n\n>I am an American but I was raised in Europe, where the worst thing that \n>can happen to somebody is get his car broken into, or have his pocket\n>picked by Slaves or Russian refugees.\n\n>Of cource there will be some nutcases, but thats extremely rare.\n\n>I.e. in Greece you can walk through any neighborhood at any time during\n>the night without even worrying.\n\n>In Germany , you can walk the sidewalks at 4.00 am and not even look \n>behind your back, at the sanitation crews that clean the streets to a \n>sparkling cleen.\n\n>Whoever of you have been there you know what I am saying.\n\n>I dont have any easy answers but if we as a nation do some selfcritisism\n>we might get somewhere.\n\n>Of course these postings sould be in soc.culture.US but if we reduce\n>crime here it 'll mean less car insurance rates ,thus we could spend\n>more money on modifing our cars. (Now my posting is rec.autos.tech \n>revelant).\n\n>Vlasis  Theodore\n\n>___________________\n>Software Engineer\n>IDB Mobile Communications.\n\n>Sig under development ...\n\nI remember this happening on the I-75 through Michigan and Ohio several\nyears back. A group of guys in an old beater would rear end a car,\nusually out of state or Canadians. You stop and they smack you with a BB\nbat. At least they didn't kill you for the sake of a car.\nI think the cops put out decoys and this calmed down for a while.\n\nVlasis, are you safe walking through Germany if you are a refugee ? \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6420, "properties": {"category": "rec.sport.hockey", "text": "From: brifre1@ac.dal.ca\nSubject: European expansion and our f*cked system\nOrganization: Dalhousie University, Halifax, Nova Scotia, Canada\nLines: 36\n\nEveryone keeps talking about European expansion by 2010 thinking\nwishful thoughts, but being totally off the ball.\n\nThe league format we use here is incompatible with that in Europe.\n(for those that don't know, the best teams from lower divisions get\npromoted and the worst get demoted).\n\nWould European fans put up with our \"if you've paid, you can play\" \nattitude??\n\nHow long would they support teams that are run on Ranger-based \ncorporate thinking (I use the term lightly).  (We don't need a good\nproduct because these duffuses in NYC would fill the arena for Ottawa's\nrecord every year......1940!! haha (sorry, had ta say it)).\n\nIf hockey (and other pro sports) had a similar system to Europe, maybe\nteams like the Rangers would be forced to compete (or get demoted the fourth \ndivision).  We'd have many more teams...centres that aren't as big (like\nHalifax or Adirondack....ok, so Halifax isn't a good example) would \neventually get promoted, and every team would be somewhat competetive within\nits own division (unlike Ottawa, SJ, Edmonton, etc.). Fans would eventually\nget rewarded for their loyalty (or penalized for their neglect), and the\nleague would be more interesting and dynamic every year because of the influx\nof newly promoted teams (and the Halifax Citadels win the Stanley Cup...I can\ndream, can't I??)\n\nLook at British (or any European) soccer as an example (they never have fan\nproblems).\n\nJust someone who thinks our system really sucks\n\nBarfly\n\n(feel free to flame me, my account ends today...hahahaha)\n\n1940!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6421, "properties": {"category": "rec.sport.hockey", "text": "From: ccohen@pitt.edu (Caleb N Cohen)\nSubject: Re: ABC coverage\nDistribution: usa\nLines: 22\nX-Newsreader: TIN [version 1.1 PL8]\n\nAnna Matyas (am2x+@andrew.cmu.edu) wrote:\n\n: Antonio Pera writes:\n\n: >\tI loved the ABC coverage. The production was excellent. The appearance\n: >was excellent. It had a sleek modern look. This was the first time I heard\n: >Thorne & Clement & I thought they were great. My only request is to leave\n: >Al Micheals out of this. He annoys me. \n:\n: I was skeptical before the game but was pleasantly surprised at the\n: coverage.  I was particularly impressed by the close range camera coverage\n: of work in the corners and behind the play without losing a beat getting\n: back to the puck.\n\n   Boy - everyone has been ripping on ESPN's hockey coverage (or is it just\nPittsburgher's who are thrilled with Lange & Steigy?)  For all of you\nwho are unaware -> ESPN bought the air time from ABC and did all the \nproduction, advertising sales, commentating, etc -> and even \nreaped any $ made...\n\nEnjoy,\nCaleb\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6422, "properties": {"category": "soc.religion.christian", "text": "From: Desiree_Bradley@mindlink.bc.ca (Desiree Bradley)\nSubject: Doing the work of God??!!)\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 33\n\nAs our local.religion.christian BBS group seems moribund, I'm posting here.\n\nOn one of the Sundays just before Easter I went to church.  The sermon was\nbased on a story in the Book of Joshua.  (The one about Joshua sending out\nspies to the land he was planning to take)  What I particularly remember,\nbecause of having heard part of a CBC radio documentary on Bosnia, was that\nthe Rahab (the woman who sheltered the spies) said that the people were\n\"melting in fear.\"  What with having heard that CBC radio documentary and\nknowing that the Muslims in Bosnia were losing the war, I felt\nuncomfortable.  After all, the Serbs are driving non-Christians out.  On\nthe other hand, ministers do say that the Bible is opposed to the values\nheld by our secular society.  Anyhow members of that church are involved in\nout-of-country missionary work.  Also, the pastor has talked of spiritual\nwarfare and of bringing Christ to the nonreligious people of our area.\n\nThe next Sunday, the sermon was about Joshua 6 (where the Israelites\ntake Jericho and then proceed to massacre everybody there --- except\nfor Rahab, who had sheltered the spies).  With those reports about\nBosnia in my mind, I felt uncomfortable about the minister saying that\nthe massacre (the one in Joshua) was right.  But what really bothered\nme was that, if I was going to try taking Christianity seriously, I\nshouldn't be so troubled about the reports of \"ethnic cleansing\" in\nBosnia.  Certainly, my sympathies shouldn't be with the Moslims.\nConsidering that the Bosnian Muslims are descendants of Christians\nwho, under Turkish rule, converted to Islam could the Serbs be doing\nGod's work?\n\n[The example of God's people setting out on bloody wars of conquest\nhas always been troubling in discussions here.  I personally question\nwhether they were right even at the time.  But those who believe they\nwere consider that the wars were justified only because they were\nspecifically commanded by God.  Somehow I don't see the Serbs behaving\nlike a group that is led by God in this matter.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6423, "properties": {"category": "rec.autos", "text": "From: eliot@lanmola.engr.washington.edu (eliot)\nSubject: Re: Manual Shift Bigots\nOrganization: clearer than blir\nLines: 34\nNNTP-Posting-Host: lanmola.engr.washington.edu\n\nIn article <C5LIw2.CAx@news.rich.bnr.ca> Peon w/o Email (Eric Youngblood) writes:\n>In article <1qn2lo$c9s@vela.acs.oakland.edu>, mje@pookie.pass.wayne.edu (Michael J. Edelman) writes:\n>The big disadvantage of automatics is the ~10% HP they consume that never\n>gets to the wheels.  In this respect they are at a disadvantage to a manual.\n\nonly when the torque converter is not locked up.  there are autos out there\nwith converter lock up in 2nd, 3rd and 4th gears.\n\n>Dont forget that now that new 6 speed manual trannys are available the drive\n>train is more optimally geared to get the most out of the engine.\n\nrare.. so are 5 speed autos.. but very real.\n\n>Bottom line is both manuals and automatics have vastly improved.\n\ni think that automatics have advanced far more than manuals.\nespecially in shift intelligence.  i say that a smart automatic is\nbetter than the majority of drivers in terms of being in the right\ngear at the right time, which to me is more important than torque\nconverter losses.\n\n>I prefer the stick for fun and the auto for traffic.\n\nwho says you can't have your cake and eat it too?  a well designed\nshifter will easily facilitate manual, clutchless shifts.  i am\nreferring to the much copied mercedes jagged gate.  the only\ndepartment where you lose out is in the number of ratios available,\nand of course the converter losses..\n\nif ayrton senna can drive a racecar with fully automatic transmission,\nit can't be half bad..  :-)\n\n\neliot\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6424, "properties": {"category": "rec.motorcycles", "text": "From: jearls@tekig6.PEN.TEK.COM (Jeffrey David Earls)\nSubject: Re: Why are there no turbocharged motorbikes in North America?\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 18\n\nIn article <C5J9n2.Hy0@dcs.qmw.ac.uk> davide@dcs.qmw.ac.uk (Dave Edmondson) writes:\n>\n>As an extreme example the CX500 Turbo cost as much as a Mike Hailwood Replica \n>Ducati.\n\n\n  So.  If I can scrounge up a good looking CX500 Turbo, will someone\n  trade me an MHR Duc for it?\n\n\n\n===============================================================================\n|Jeff Earls  jearls@tekig6.pen.tek.com | DoD #0530  KotTG  KotSPT   WMTC  AMA |\n|'89 FJ1200 - Millennium Falcon        |   Squid Factor: 16.99                |\n|'93 KLR650 - Thumpy                   | \"Hit the button Chewie!\"... Han Solo |\n\n    \"There ain't nothin' like a 115 mph sweeper in the Idaho rockies.\" - me\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6425, "properties": {"category": "talk.religion.misc", "text": "From: joshua@cpac.washington.edu (Joshua Geller)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: Institute for the Study of Ancient Science\nLines: 29\nDistribution: world\n\t<sandvik-170493104312@sandvik-kent.apple.com>\n\t<1qppef$i5b@usenet.INS.CWRU.Edu>\nNNTP-Posting-Host: bailey.cpac.washington.edu\nIn-reply-to: ch981@cleveland.Freenet.Edu's message of 17 Apr 1993 20:31:11 GMT\n\n\nIn article <1qppef$i5b@usenet.INS.CWRU.Edu> ch981@cleveland.Freenet.Edu \n(Tony Alicea) writes:\n\n>   Kent:\n\n>\tYou say that\n\n>   >There are about 4-10 competing Rosicrucian orders existing today,\n\t\t\t  ^^^^^^^^^\n>   >most of them are spin-offs from OTO and other competing organizations\n>   >from the 19th century France/Germany. Maybe I should write an article\n>\t\t\t    Please don't!  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nhuh? it might be interesting. he is relating the story as I have heard\nit, btw.\n\n>   >about all this, I spent some time investigating these organizations\n>   >and their conceptual world view systems.\n\n>\tName just three *really* competing Rosicrucian Orders. I have\n>   probably spent more time than you doing the same. \n\n>\tNone of them are spin-offs from O.T.O. The opposite may be the\n>   case. \n\nhuh? care to back that up?\n\njosh\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6426, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Ohio Legislative Alert -- H.B. 278\nOrganization: Ideology Busters, Inc.\nDistribution: usa\nKeywords: otto beatty goes for a gun ban again\nLines: 21\n\nOHIO HOUSE OF REPRESENTATIVE  TUEDAY, APRIL 6, 1993\n \nH.B. NO. 278- REPRESENTATIVE BEATTY\n \n        TO AMMEND  SECTION 2923.11, 2923.17, AND 2923.20 AND TO ENACT \nN 2923.181 OF THE REVISED CODE TO EXPAND THE DEFINTION OF DANGEROUS \nORDINANCE TO INCLUDE MILITARY WEAPONS THAT DO NOT USE BOLT ACTION, TO \nINCREASE THE PENALTY FOR A VIOLATION OF THE PROHIBTION AGAINST POSSESION \nOF DANGEROUS ORDINANCE, TO PROHIBIT ANY PERSON FROM ACQUIRING A MILITARY \nWEAPON ON OR AFTER THE ACT'SEFFECTIVE DATE, TO REQUIRE THE LICENSURE OF \nMILITARY WEAPONS ACQUIRED FOR A PROPER PURPOSE PRIOR TO THE ACT'S \nEFFECTIVE DATE, TO PROHIBIT A PERSON FROM IMPORTING, MANUFACTURING, OR \nSELLING A MILITARY WEAPON, AND TO DECLARE AN EMERGENCY.\n \nAs of Monday, April 12, 1993  H.B. 278 had not been assigned to a \ncommittee.  Introduced as an emergency measure if this passes there is no \nchance for a reforendum, and would go into effect immediately as opposed \nto the state requirement of 90 days before a law goes into effect.\n \n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6427, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: nuclear waste\nOrganization: Express Access Online Communications USA\nLines: 45\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr6.125608.7506@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n|In <1993Apr2.150038.2521@cs.rochester.edu> dietz@cs.rochester.edu (Paul Dietz) writes:\n|>>\n|>>Paul, quite frankly I'll believe that this is really going to work on\n|>>the typical trash one needs to process when I see them put a couple\n|>>tons in one end and get (relatively) clean material out the other end,\n|>>plus be able to run it off its own residual power.  Sounds almost like\n|>>perpetual motion, doesn't it?\n|\n|I will believe that this process comes even close to approaching\n|technological and economic feasibility (given the mixed nature of the\n|trash that will have to be run through it as opposed to the costs of\n|separating things first and having a different 'run' for each\n|actinide) when I see them dump a few tons in one end and pull\n|(relatively) clean material out the other.  Once the costs,\n|technological risks, etc., are taken into account I still class this\n|one with the idea of throwing waste into the sun.  Sure, it's possible\n|and the physics are well understood, but is it really a reasonable\n|approach? \n|\n\nHow is it ever going to be an Off- the Shelf Technology if someone doesn't\ndo it?  Maybe we should do this as part of the SSF design goals. ;-)\n\nGee fred.  After your bitter defense of 20 KHz power as a Basic technology\nfor SSF, Id think you would support a minor research program like this.\n\nAnd does anyone who knows more Particle physics then me,  know if the IPNS\ncould Prove this technology?\n\n|\n|>The real reason why accelerator breeders or incinerators are not being\n|>built is that there isn't any reason to do so.  Natural uranium is\n|>still too cheap, and geological disposal of actinides looks\n|>technically reasonable.\n|\n\nIt may also help there is political gridlock on the entire\nnuclear technical agenda.  There were big political opponenents to\nFast Breeder Technologies.  WIPP is being fought to death in Courts.\nEven if you could make a nuclear incinerator, do you really think\neven Deaf SMith County Nevada would accept it?  NIMBY'ism rules\nnuclear power concerns.  Only the medical community has been\nable to overrule  nuclear  technology opposition. \n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6428, "properties": {"category": "rec.sport.baseball", "text": "From: stlouis@unixg.ubc.ca (Phill St. Louis)\nSubject: Billy Taylor a Brave or Jay?\nOrganization: University of British Columbia, Vancouver, B.C., Canada\nLines: 8\nDistribution: world\nNNTP-Posting-Host: unixg.ubc.ca\n\nDoes anyone know where Billy Taylor is?  Richmond or Syracuse?  He was taken\nby the Jays in the Rule V draft, but not kept on the roster.  Baseball Weekly\nsaid that he was demoted to Syracuse, but a Toronto paper indicated that\nthe Braves took him back.  Is there an Atlanta fan, or anyone reading this,\nwho knows?   \n\nThanks\npsl\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6429, "properties": {"category": "rec.sport.hockey", "text": "From: farenebt@logic.camp.clarkson.edu (Droopy)\nSubject: AHL Calder Cup Playoff schedule and results\nOrganization: Clarkson University\nLines: 61\nNntp-Posting-Host: logic.clarkson.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\n1993 CALDER CUP PLAYOFF SCHEDULE AND RESULTS\t\nhome team in CAPS\t\t*=if necesary\n=============================================\n\nFIRST ROUND\t\t\t\t\t\nSpringfield Indians vs Providence Bruins\nGm 1:\tSpringfield 3\tPROVIDENCE 2\t\nGm 2:\tSpringfield 5\tPROVIDENCE 4\nGm 3:\t4/16\tProvidence at Springfield\n\nCD Islanders vs Adirondack Red Wings\nGm 1:\tLast night, CDI at Adirondack\nGm 2:\t4/17\tCDI at Adirondack\nGm 3:\t4/18\tAdirondack at CDI\nGm 4:\t4/21\tAdirondack at CDI\nGm 5:\t4/23\tCDI at Adirondack\t*\nGm 6:\t4/24\tAdirondack at CDI\t*\nGm 7:\t4/26\tCDI at Adirondack\t*\n\nBaltimore Skipjacks at Binghamton Rangers\nGm 1:\t4/16\tBaltimore at Binghamton\nGm 2:\t4/17\tBaltimore at Binghamton\nGm 3:\t4/23\tBinghamton at Baltimore\nGm 4:\t4/24\tBinghamton at Baltimore\nGm 5:\t4/26\tBaltimore at Binghamton\t*\nGm 6:\t4/28\tBinghmaton at Baltimore\t*\nGm 7:\t4/30\tBaltimore at Binghamton\t*\n\nUtica Devils vs Rochester Americans\nGm 1:\t4/16\tUtica at Rochester\nGm 2:\t4/17\tUtica at Rochester\nGm 3:\t4/20\tRochester at Utica\nGm 4:\t4/22\tRochester at Utica\nGm 5:\t4/24\tUtica at Rochester\t*\nGm 6:\t4/26\tRochester at Utica\t*\nGm 7:\t4/28\tUtica at Rochester\t*\n\nMoncton Hawks vs St John's Maple Leafs\nGm 1:\tSt John's 4\tMoncton 2\nGm 2:\t4/17\tMoncton vs St John's at Halifax\nGm 3:\t4/21\tSt John's at Moncton\n\nCape Breton Oilers vs Fredericton Canadiens\nGm 1:\tFredericton 4\tCape Breton 3\t(2OT)\nGm 2:\t4/16\tCape Breton at Fredericton\t\n\nUnfortunately the newspaper didnt list complete playoff skeds for\nseries that already began. Also, the paper has not listed final\nstandings so their posting might be delayed until early next\nweek (Hockey News).\n\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n    + Bri Farenell\t\t\tfarenebt@craft.camp.clarkson.edu   +\n    + AHL and ECAC contact for rec.sport.hockey\t\tGo USA Hockey!\t   +\t\n    + Adirondack Red Wings, Calder Cup Champs: '81  '86  '89  '92\t   +\n    + Clarkson Hockey, ECAC Tournament Champs: '66  '91  '93\t\t   +\n    + Glens Falls High Hockey, NY Division II State Champs: '90  '91       +\n    + AHL fans: join the AHL mailing list: ahl-news-request@andrew.cmu.edu +\n    + CONGRATS TO THE BOSTON BRUINS, 1992-93 ADAMS DIVISION CHAMPIONS      +\n    + PHOENIX SUNS, 1992-93 PACIFIC DIVISION CHAMPIONS\t\t\t   +\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.303+0000", "event": "documents", "entityId": 6430, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jdresser@altair.tymnet.com (Jay Dresser)\nSubject: HELP! with Olivetti floppy\nLines: 13\nNntp-Posting-Host: altair\n\n\nWe are trying to connect an Olivetti XM4311 5\" floppy drive as the second\ndrive on a Panasonic 286 machine.  It seems to sort of talk to it (gets it\nspinning and stepping) but gives a \"Disk not ready\" error.\n\nThere are two jumpers (which seem to work best open), a 3 position DIP\nswitch, and a 8 position DIP switch.  We don't know how to set the DIP\nswitches and think that may be the problem.\n\nAny information, or advice (other than \"junk the stupid thing\" :) would be\nmost appreciated, thanks.  (email reply preferred).\n\njdresser@tymnet.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6431, "properties": {"category": "soc.religion.christian", "text": "From: Christopher.S.Weinberger@williams.edu (Gib)\nSubject: Re: Divine providence vs. Murphy's Law\nOrganization: Williams College, Williamstown, MA\nLines: 21\n\nIn article <Apr.19.05.13.28.1993.29224@athos.rutgers.edu> rolfe@junior.dsu.edu (Tim Rolfe) writes:\n>Romans 8:28 (RSV)   We know that in everything God works for good with those \n>who love him, who are called according to his purpose. \n>Murphy's Law:  If anything can go wrong, it will.\n>We are all quite familiar with the amplifications and commentary on\n>Murphy's Law.  But how do we harmonize that with Romans 8:28?  For that\n>matter, how appropriate is humor contradicted by Scripture?\n\n\tBoth Christians and non-Christians laugh at this quote because\nit exaggerates something we all feel, but know is not true.  Us\nChristians just KNOW that a little better!    :)\n\n\n\n\t\t\tIn God we trust!\n\n\n\t\t\t-Christopher\n\n\n\t\t\temail @ 96csw@williams.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6432, "properties": {"category": "talk.politics.guns", "text": "From: cower@csli.stanford.edu (Richard Cower)\nSubject: Waco dates - are these coincidental?\nOrganization: CSLI, Stanford University\nDistribution: usa\nLines: 34\n\n\nThe ATF agent interviewed on \"Street Stories\" reported that the raid was\nill planned, and went ahead even when they (the BD's) knew the ATF was \ncoming. WHY?\n\nI believe this raid was ill planned because they only had 2 days to plan it,\nand it was continued when failure was obvious because it had a bit part\nin the much larger political agenda of President Clinton. I would even \nsuggest that the loss of 4 ATF agents is inconsequential in this the\ncontext of his political agenda. It MIGHT even be beneficial to his agenda, \nas it helps point up just how evil these assualt weapons are. Further proof\nmight be that the ATF denied their agents (Street Stories report) requests\nfor sufficient fire power. \n\nImportant dates: \nFeb 25th - NJ assembly votes to overturn assault weapon ban.\nFeb 28th - Compound in Waco attacked.\t   \n\nOn Feb. 25th the New Jersey assembly voted to overturn the assault weapon\nban in that state. It looked like it might be a tight vote, but the Senate\nin N.J. was going to vote to overturn the ban. It would not sit well to have\nan Eastern state overturn an assault weapon ban, given Clintons stated\nagenda on gun control. I suspect Clinton gave the order to get someone or some\ngroup with assualt weapons and have the press present (they were initially\nat the incident in Waco) to record the event for the TV audience. The agent \non \"Street Stories\" reported that a supervisor was urging them all to \"get \nready fast\", as \"they know we are coming\". I believe this attack continued, \neven tho the probablility of failure was high,  because it came from the top \ndown. After the N.J. assembly vote, the ATF had a limited amount of time to\ncome up with something, and the Wackos in Waco fit the bill nicely.\n\n...rich \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6433, "properties": {"category": "sci.med", "text": "From: francis@ircam.fr (Joseph Francis)\nSubject: Re: Can't wear contacts after RK/PRK?\nKeywords: radial,keratotomy,contact,lenses\nOrganization: IRCAM, Paris (France)\nLines: 45\n\nIn article <1993Apr16.063425.163999@zeus.calpoly.edu> dfield@flute.calpoly.edu (InfoSpunj (Dan Field)) writes:\n>I love the FAQ.       \n>\n>The comment about contact lenses not being an option for any remaining\n>correction after RK and possibly after PRK is interresting.  Why is\n>this?  Does anyone know for sure whether this applies to PRK as well?\n\nI've had PRK.\n\nI would suggest asking a doctor about contacts. Mine said yes to\ncontacts. I think the scars from RK would preclude contacts.\n\n>Also, why is it possible to get a correction in PRK with involvement of\n>only about 5% of the corneal depth, while RK is done to a depth of up to\n>95%?  Why such a difference?  I thought the proceedures were simmilar\n>with the exception of a laser being the cutting tool in PRK.  I must not\n>be understanding all of the differences.\n\nNo. RK makes radial cuts around the circumference of the cornea, up to\n8 I think, and these change the curvature of the cornea through stress\nchages. PRK vaporizes (burns) away a thin layer from the front of the\ncornea making the optical axis of the eye shorter. The laser doesn't\ncut in PRK, it vaporizes. In RK, the eye is cut into.\n\n>In the FAQ, the vision was considered less clear after the surgery than\n>with glasses alone.  If this is completly attributable to the\n>intentional slight undercorrection, then it can be compensated for when\n>necessary with glasses (or contacts, if they CAN be worn afterall!).  It\n>is important to know if that is not the case, however, and some other\n>consequence of the surgery would often interfere with clear vision.  The\n>first thing that came to my mind was a fogging of the lense, which\n>glasses couldn't help. \n>\n>would not help.\n\nI find my vision is more clear for some things, and less clear for\nothers, only at night. I notice a definite haloing at night in the\ndarkness when I look at automobile headlamps, though this is not\nsomething I spend inordinate amounts of time doing. For ordinary\nthings, my vision, in particular having a fully-operating peripheral\nvision, is clearer than with glasses, or contacts.\n\n-- \n| Le Jojo: Fresh 'n' Clean, speaking out to the way you want to live\n| today; American - All American; doing, a bit so, and even more so.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6434, "properties": {"category": "sci.med", "text": "From: julie@eddie.jpl.nasa.gov (Julie Kangas)\nSubject: Re: Is MSG sensitivity superstition?\nNntp-Posting-Host: eddie.jpl.nasa.gov\nOrganization: Jet Propulsion Laboratory, Pasadena, CA\nLines: 34\n\nIn article <michael.735318247@vislab.me.iastate.edu> michael@iastate.edu (Michael M. Huang) writes:\n>MSG is common in many food we eat, including Chinese (though some oriental\n>restaurants might put a tad too much in them).  I've noticed that when I\n>go out and eat in most of the Chinese food restaurants, I will usually get\n>a slight headache and an ununsual thirst afterwards.  This happens to many\n>of my friends and relatives too.  And, heh, we eat Chinese food all the\n>time at home :) (but we don't use MSG when we're cooking for ourselves)\n>\n>So, when we put one and one together, it can be safely assumed that\n>MSG may cause some allergic reactions in some people.\n>\n>Stick with natural things.  MSG doesn't do body any good (and possibly\n>harms, for that matter).  So, why bother with it?  Taste food as it should\n>be tasted, and don't cloud the flavor with an imaginary cloak of MSG.\n\nAs I understood it, MSG *is* natural.  Isn't it found in \ntomatoes?\n\nAnyway, lots of people are terribly allergic to lots of natural\nthings; peanuts, onions, tomatoes, milk, etc.  Just because something\nis 'natural' doesn't mean it won't cause problems with some folks.\n\nAs for how foods taste:  If I'm not allergic to MSG and I like\nthe taste of it, why shouldn't I use it?  Saying I shouldn't use\nit is like saying I shouldn't eat spicy food because my neighbor\nhas an ulcer.\n\nPeople have long modified the taste of food by additives, whether\nthey be chiles, black pepper, salt, cream sauces, etc.  All of these\nthings cloud the flavor of the food.  Why do we bother with them?\nHow should food be tasted?  Isn't it better left to the diner?\n\nJulie\nDISCLAIMER:  All opinions here belong to my cat and no one else\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6435, "properties": {"category": "soc.religion.christian", "text": "From: belville@athena.mit.edu (Sharon Belville)\nSubject: Re: God-shaped hole (was Re: \"Accepting Jeesus in your heart...\")\nOrganization: Massachusetts Institute of Technology\nLines: 13\n\nIn article <Apr.14.03.07.38.1993.5420@athos.rutgers.edu>, johnsd2@rpi.edu (Dan Johnson) writes:\n\n|> >Those who have an empty spot in the God-shaped hole in their hearts must \n|> >do something to ease the pain.\n|> \n|> I have heard this claim quite a few times. Does anybody here know\n|> who first came up with the \"God-shaped hole\" business?\n\nI've seen this verse used to back up this idea:\n\n\"...He has also set eternity in the hearts of men...\"  (Ecclesiastes 3:11)\n--\nSharon Belville\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6436, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Pleasant Yankee Surprises\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 45\n\nIn article <mssC5K4GI.G64@netcom.com> mss@netcom.com (Mark Singer) writes:\n>\n>I don't have a history handy, but I don't recall that the preponderance\n>of ROY's come from winning teams.  In fact, I think team performance is\n>generally irrelevant, as almost always the most deserving candidate wins.\n>Am I wrong?\n\nNot really, though I wouldn't personally say \"the most deserving\ncandidate wins\".  Rarely does a player win ROY when called up in mid\nseason, and there have been several duds in recent years.  But this is\nmore a factor of mediot biases than anything else.  (I wonder.  If\nAmaral hits like he is capable of, will he receive ROTY votes?  He's\nonly 31, he could have a long career ahead of him!  :-)\n\n>And he is not necessarily on a losing team.  While the Angels' staff\n>is still very weak, their everyday lineup is doing quite well, thank\n>you.  Snow is playing great.  Salmon is learning to make the adjustments.\n>Easley appears fine, but even if he's not Flora is ready to come up.\n>Between Gonzales and Gruber they'll manage the hot corner.  Polonia\n>and Curtis are steady and heady.  Even Myers and Orton are contributing.\n>\n>Personally, I think they can finish over .500 which makes them a \n>winning team.\n\nI think they are a second-division team.  They should finish ahead of\nthe Royals, Mariners, and *possibly* Athletics.  But I don't think\nthey'll be above .500.  (I think the East is stronger this year.)\n\nLast year their pitching was bad and their offense was horrible.  This\nyear their offense is better, but their pitching is still pretty bad.\nEven if Finley returns to form, he won't replace what they lost in\nAbbott.  Sanderson?  Farrell?  I don't believe it.\n\nAnd while their BA may be good, and they have decent speed, their\noffense lacks punch.  They don't have any bona fide power hitters.\n(Salmon, Snow, Davis, and Curtis?  None with more than 20 HR\npotential.)\n\nCheers,\n-Valentine\n\nP.S. Which AL team had the most steals last week?  Those go-go Tigers!\nThe mediots finally managed to convince them that they needed \"more\nbalance\" in their lineup.  You see, they were scoring too many runs\ntoo consistently.  Gotta run more to break that up.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6437, "properties": {"category": "sci.electronics", "text": "From: jam@ameslab.gov (Jerry Musselman)\nSubject: UART needed\nOrganization: Ames Laboratory, ISU\nLines: 9\n\nI need to find a UART that will interface to an 8051 and do the following:\n\t-250k baud, 8 data bits, 2 stop bits, no parity\n\t-ability to do BREAK detect (IRQ or output pin)\n\t-IRQ on character received\n\nI'm using a Dallas DS2250 at 16 Mhz (8051 clone), but it won't do \nbreak detect.  I've looked at the 6850, 8251, 7201, 2661, etc...\n\n\tAny help would be appriciated!!!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6438, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: Once tapped, your code is no good any more.\nOriginator: rdippold@qualcom.qualcomm.com\nNntp-Posting-Host: qualcom.qualcomm.com\nOrganization: Qualcomm, Inc., San Diego, CA\nDistribution: na\nLines: 29\n\n\ngeoff@ficus.cs.ucla.edu (Geoffrey Kuenning) writes:\n>Bullshit.  The *Bush* administration and the career Gestapo were\n>responsible for this horror, and the careerists presented it to the\n>new presidency as a fait accompli.  That doesn't excuse Clinton and\n>Gore from criticism for being so stupid as to go for it, but let's lay\n>the body at the proper door to start with.\n\nThe final stages of denial... I can hardly imagine what the result\nwould have been if the Clinton administration had actually supported\nthis plan, instead of merely acquiescing with repugnance as they've so\nobviously doing.  I don't believe the chip originated with the Clinton\nadministration either, but the Clinton administration has embraced it\nand brought it to fruition.\n\nBoth of the major parties have what they consider excellent reasons\nfor limiting your freedoms and violating your privacy, and even seem\nto feel that they're doing you a favor.  If this is really surprising\nto anyone it means they've been willfully ignoring quite a bit of\nprevious evidence.  There's only one political party (not calling\nanarchists a party) that considers your freedom and privacy goals\nworthy in and of themselves.  If you're voting for the big two, you're\nsupporting a reduction of those rights (given their goals and their\nhistories), regardless of whether you personally support that\nreduction.  To paint Clinton and Gore as unwitting tools is really\nstretching things.\n\n-- \nWhen you have to kill a man it costs nothing to be polite. -- Churchill\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6439, "properties": {"category": "sci.space", "text": "From: jennise@opus.dgi.com (Milady Printcap the goddess of peripherals)\nSubject: RE: Looking for a little research help\nOrganization: Dynamic Graphics Inc.\nLines: 6\nDistribution: usa\nNNTP-Posting-Host: opus.dgi.com\n\nFound it! Thanks. I got several offers for help. I appreciate it and\nwill be contacting those people via e-mail.\n\nThanks again...\n\njennise\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6440, "properties": {"category": "comp.graphics", "text": "From: pinky@tamu.edu (The Man behind The Curtain)\nSubject: Views on isomorphic perspectives?\nOrganization: Texas A&M University\nLines: 87\nNNTP-Posting-Host: tamsun.tamu.edu\nKeywords: isomorphic perspectives\n\n                             \nI'm working upon a game using an isometric perspective, similar to\nthat used in Populous.  Basically, you look into a room that looks\nsimilar to the following:\n\n                             xxxx\n                         xxxxx   xxxx\n                     xxxx    x       xxxx\n                 xxxx        x           xxxx\n             xxxx     2      xxxx     1      xxxx\n             x           xxxx    xxxx           x\n             x       xxxx            xxxx       x\n             x   xxxx             o      xxxx   x\n             xxxx              3 /|\\         xxxx\n                 xxxx            /~\\     xxxx\n                     xxxx            xxxx\n                         xxxx    xxxx\n                             xxxx\n\nThe good thing about this perspective is that you can look and move\naround in three dimensions and still maintain your peripheral vision. [*]\n\nSince your viewpoint is always the same, the routines can be hard-coded\nfor a particular vantage.  In my case, wall two's rising edge has a slope\nof 1/4. (I'm also using Mode X, 320x240).\n\nI've run into two problems; I'm sure that other readers have tried this\nbefore, and have perhaps formulated their own opinions:\n\n1) The routines for drawing walls 1 & 2 were trivial, but when I ran a\npacked->planar image through them, I was dismayed by the \"jaggies.\"  I'm\nnow considered some anti-aliasing routines (speed is not really necessary).\nIs it worth the effort to have the artist draw the wall already skewed,\nthus being assured of nice image, or is this too much of a burden?\n\n2) Wall 3 presents a problem; the algorithm I used tends to overly distort\nthe original.  I tried to decide on paper what pixels go where, and failed.\nHas anyone come up with method for mapping a planar to crosswise sheared\nshape?\n\nCurrently I take:\n\n  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16\n 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32\n 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48\n 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64\n\nand produce:\n            \n             1  2  3  4\n33 34 35 36 17 18 19 20  5  6  7  8\n49 50 51 52 37 38 39 40 21 22 23 24  9 10 11 12\n            53 54 55 56 41 42 43 44 25 26 27 28 13 14 15 16\n                        57 58 59 60 45 46 47 48 29 30 31 32\n                                    61 62 63 64\n\nLine 1 follows the slope.  Line 2 is directly under line 1.\nLine 3 moves up a line and left 4 pixels.  Line 4 is under line 3.\nThis fills the shape exactly without any unfilled pixels.  But\nit causes distortions.  Has anyone come up with a better way?\nPerhaps it is necessary to simply draw the original bitmap\nalready skewed?\n\nAre there any other particularly sticky problems with this perspective?\nI was planning on having hidden plane removal by using z-buffering.\nLocations are stored in (x,y,z) form.\n\n[*] For those of you who noticed, the top lines of wall 2 (and wall 1)\n*are* parallel with its bottom lines.  This is why there appears to\nbe an optical illusion (ie. it appears to be either the inside or outside\nof a cube, depending on your mood).  There are no vanishing points.\nThis simplifies the drawing code for objects (which don't have to\nchange size as they move about in the room).  I've decided that this\napproximation is alright, since small displacements at a large enough\ndistance cause very little change in the apparent size of an object in\na real perspective drawing.\n\nHopefully the \"context\" of the picture (ie. chairs on the floor, torches\nhanging on the walls) will dispell any visual ambiguity.\n\nThanks in advance for any help.\n\n-- \nTill next time,                \\o/   \\o/\n                                V \\o/ V     email:pinky@tamu.edu\n<>  Sam  Inala  <>                 V\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6441, "properties": {"category": "comp.windows.x", "text": "From: rgooch@rp.CSIRO.AU (Richard Gooch)\nSubject: Re: Animation with XPutImage()?\nOrganization: CSIRO Division of Radiophysics/Australia Telescope National Facility\nLines: 27\n\nIn article <WHALEY.93Apr22110027@sigma.kpc.com>, whaley@sigma.kpc.com (Ken Whaley) writes:\n> One advanage of MIT-SHM is that if your images are large, you don't end up\n> growing the size of the server process to hold them.\n>\n  Correct. Most X servers use a version of  malloc(3)  which will not return\n  memory to the OS (ie. the X server might  free(3)  a Pixmap, but the heap does\n  not shrink).\n\n> One disadvantage of the MIT-SHM is that, in its sample implementation,\n> there is no provision for elegantly cleaning up the shared memory segments\n> if the client dies a sudden, violent death (e.g., \"kill\").  You have to \n> be mindful of cluttering up the system with zombie shared memory segments.\n>\n  Well, part of the routines I mentioned do a dirty little trick to get around\n  that problem. First, I create the shared memory segment, attach the client,\n  attach the X server, and then remove (!) the segment. If you read the man\n  pages on removing of shared memory segments, you will see that the segment\n  only dies after all attachments are gone.\n  Now, if the client dies, that's one attachment gone (the OS cleans up for you)\n  and since the X server notices the client has dies, frees up it's resources,\n  including detaching from the segment: there goes the last attachment. No more\n  shared memory segment.\n  Terrible, but it works.\n\n\t\t\t\tRegards,\n\n\t\t\t\t\tRichard Gooch....\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6442, "properties": {"category": "rec.autos", "text": "From: opuglies@academ01.mty.itesm.mx (Ing. Orlando Pugliese)\nSubject: Is this a good price ?\nOrganization: ITESM, Campus Monterrey\nLines: 25\nNNTP-Posting-Host: mtecv2.mty.itesm.mx\n\n\n\n   Hi everybody,\n\n   I will buy a Honda Civic EX Coupe.  The dealer ask $12,750 for it,\nincluding A/C ( installed ), but not including stereo, tax, registration\nfees.  I live in Mexico, so I don't have time to go to a lot of dealers\nand compare their prices.  The dealer is in McAllen, Tx.  Is this a good\nprice for that car ?  If not, how much should I pay for it ?\n\n   Please e-mail ASAP if you don't want to post.  Thanks a lot.\n\n   Orlando Pugliese\n   opuglies@mtecv2.mty.itesm.mx\n\n\n--\n ___________________________________\n|        *        |                 |\n|    ** * * **    |                 |  Orlando Pugliese N\n|      * * *      |                 |  Instituto Tecnologico y de Estudios\n|     *     *     |                 |         Superiores de Monterrey\n|_________________|_________________|  Depto. de Informacion Academica\n|                 |        *        |  Monterrey, N.L., Mexico\n|                 |    ** * * **    |  (83) 58-2000 ext 4113\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6443, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Is Morality Constant (was Re: Biblical Rape)\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 65\n\nJim Perry (perry@dsinc.com) wrote:\n\n: }Xenophobia, both *de facto* and *de jure* as implemented\n: }in legal systems, is widespread, while the Bible,\n: }although not 100% egalitarian, specifically preaches\n: }kindness to the stranger, and emphasizes in the Book\n: }of Ruth, that a foreigner can join the nation and\n: }give rise to one of the great heroes of the nation.\n: \n: Clearly better than the alternative, but as an American what strikes\n: me as strange about this story is that it should have even been\n: considered an issue.\n\nJim,\n\nThere are a couple of things about your post and others in this thread\nthat are a little confusing. An atheist is one for whom all things can\nbe understood as processes of nature - exclusively. There is no need\nfor any recourse to Divnity to describe or explain anything. There is\nno purpose or direction for any event beyond those required by\nphysics, chemistry, biology, etc.; everything is random, nothing is\ndetermnined.\nThis would also have to include human intelligence of course and all\nits products. There is nothing requiring that life evolve or that it\nacquire intelligence, it's just a happy accident. For an atheist, no\nevent can be preferred to another or be said to have more or less\nvalue than another in any naturalistic sense, and no thought -about-\nan event can have value. \nThe products of our intelligence are acquired from our environment,\nfrom teaching, training, observation and experience and are only\nsignificant to the individual mind wherein they reside. These mental\nprocesses and the images they produce for us are just electrical\nactivity and nothing more; content is of no consequence. The human\nmind is as much a response to natural forces as water running down a\nhill.\nHow then can an atheist judge value? What is the basis for criticizing\nthe values ennumerated in the Bible or the purposes imputed to God? On\nwhat grounds can the the behavior of the reliogious be condemned? It\nseems that, in judging the values that motivate others to action, you\nhave to have some standard against which conduct is measured, but what\nin nature can serve that purpose? What law of nature can you invoke to\nestablish your values.\nSince every event is entirely and exclusively a physical event, what\ndifference could it possibly make what -anyone- does, religious or\notherwise, there can be no -meaning- or gradation of value. The only\nway an atheist can object to -any- behaviour is to admit that the\nobjection is entirely subjective and that he(she) just doesn't like it\n- that's it. Any value judgement must be prefaced by the disclaimer\nthat it is nothing more than a matter of personal opinion and carries\nno weight in any \"absolute\" sense.\nThat you don't like what God told people to do says nothing about God\nor God's commands, it says only that there was an electrical event in your\nnervous system that created an emotional state that your mind coupled\nwith a pre-existing thought-set to form that reaction. That your\nobjections -seem- well founded is due to the way you've been\nconditioned; there is no \"truth\" content. The whole of your\nintellectual landscape is an illusion, a virtual reality.\nI didn't make these rules, it's inherent in naturalistic atheism and\nto be consistent, you have to accept the non-significance of any human\nthought, even your own. All of this being so, you have excluded\nyourself from any discussion of values, right, wrong, goood, evil,\netc. and cannot participate. Your opinion about the Bible can have no\nweight whatsoever.\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6444, "properties": {"category": "sci.med", "text": "From: ske@pkmab.se (Kristoffer Eriksson)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nKeywords: science   errors   Turpin   NLP\nOrganization: Peridot Konsult i Mellansverige AB, Oerebro, Sweden\nLines: 14\n\nIn article <1quqlgINN83q@im4u.cs.utexas.edu> turpin@cs.utexas.edu (Russell Turpin) writes:\n> My definition is this: Science is the investigation of the empirical\n>that avoids mistakes in reasoning and methodology discovered from previous\n>work.\n\nReading this definition, I wonder: when should you recognize something\nas being a \"mistake\"? It seems to me, that proponents of pseudo-sciences\nmight have their own ideas of what constitutes a \"mistake\" and which\ndiscoveries of such previous mistakes they accept.\n\n-- \nKristoffer Eriksson, Peridot Konsult AB, Stallgatan 2, S-702 26 Oerebro, Sweden\nPhone: +46 19-33 13 00  !  e-mail: ske@pkmab.se\nFax:   +46 19-33 13 30  !  or ...!mail.swip.net!kullmar!pkmab!ske\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6445, "properties": {"category": "sci.electronics", "text": "From: dave@imax.imax.com (Dave Martindale)\nSubject: Re: A question about 120VAC outlet wiring.\nOrganization: Imax Corporation, Mississauga Canada\nLines: 24\n\njeh@cmkrnl.com writes:\n>\n>Hmmm.  How are those orange \"isolated ground\" outlets (often used in\n>computer rooms) wired?  \n\nThey require two separate grounds.  One ground goes to the ground pin\nof the outlet, and the other ground wire is connected to the outlet's\nmounting tabs (and thus grounds the box and faceplate screw and metal\nfaceplate, if any).\n\nThe box/faceplate ground goes to the normal distribution panel ground.\nThe outlet ground-pin wire is generally connected to an insulated\nbusbar in the distribution panel which is, in turn, connected to\nthe building-entrance main ground by its own wire.\n\nSo the two separate ground systems are connected together at the\nbuilding's service entrance.  But one is also connected to every\ngrounded piece of electrical equipment in the whole building,\nwhile the isolated ground is shared only by the equipment plugged\ninto isolated-ground outlets of that panel.  If someone happens\nto accidentally short one phase of a 600V feeder to ground,\nthe main building ground is likely to have a lot of noise on it\nuntil the breaker trips or the fuse blows, while the isolated\nground will remain relatively noise-free.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6446, "properties": {"category": "sci.space", "text": "From: pef1@quads.uchicago.edu (it's enrico palazzo!)\nSubject: Re: Gamma Ray Bursters. Where are they?\nReply-To: pef1@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 36\n\n> = From: Graydon <SAUNDRSG@QUCDN.QueensU.CA>\n\n> If all of these things have been detected in space, has anyone\n> looked into possible problems with the detectors?\n\n> That is, is there some mechanism (cosmic rays, whatever) that\n> could cause the dector to _think_ it was seeing one of these\n> things?\n\n> Graydon\n\nThat would not explain why widely separated detectors, such as on Ulysses\nand PVO and Ginga et al., would see a burst at the same time(*).  In fact, be-\nfore BATSE, having this widely separated \"Interplanetary Network\" was the\nonly sure way to locate a random burst.  With only one detector, one cannot\nlocate a burst (except to say \"It's somewhere in the field of view.\").  With\ntwo detectors, one can use the time that the burst is seen in each detector\nto narrow the location to a thin annulus on the sky.  With three detectors,\none gets intersecting annuli, giving two possible locations.  If one of these\nlocations is impossible (because, say, the Earth blocked that part of the \nsky), voila, you have an error box.\n\nBATSE, by having 8 detectors of its own, can do its own location determination,\nbut only to within about 3 degrees (would someone at GSFC, like David, like\nto comment on the current state of location determination?).  Having inde-\npendent sightings by other detectors helps drive down the uncertainty.\n\nYou did touch on something that you didn't mean to, though.  Some believe\n(in a reference that I have somewhere) that absorption-like features seen\nin a fraction of GRBs can actually be caused by the detector.  It would be\na mean, nasty God, though, that would have a NaI crystal act like a 10^12 Gauss\nneutron star...but this is getting too far afield.\n\nPeter\npeterf@oddjob.uchicago.edu\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6447, "properties": {"category": "rec.autos", "text": "From: pamuelle@ingr.com ( Phil Mueller )\nSubject: Re: Used BMW Question ..... ???\nOrganization: Intergraph\nLines: 29\n\nIn article <1993Apr12.230031.160616@ua1ix.ua.edu> rpaturi@ho12.eng.ua.edu (Ravi) writes:\n>\n>Hi,\t\n>I am dying to get the  answer for the pricing polocy of a dealer\n>here  in San Jose, California (I moved to caal  from AL)\n\nYou moved from Alabama to California?  My sympathies.\n\n>Year\tModel\tDescription\t\tMilage\tPrice\n>1991\t318\tBlack, \"Looks\" good     46K\t10.6K\n>\t\t5sp  manual, AC, \n>\t\tCassette, Sun roof \n>\n>1989\t318\tWhite  same as aboove   50K\t 9.6K\n>\n\nMake sure that they have all maintenance records.  Oil should be changed\nevery 3 months.  The mileage on the cars is fine.\n\nBe sure that these have the 16 valve engine.  The 8 valve 318 is a \nBMW in name only.  \n\nDidn't you have a line on a '89 325i for 12K? Jump on it.\n\n\n-- \nPhil Mueller    pamuelle@ingr.com   -OR-   pamuelle@nc2145.b30.ingr.com\nAMA: 686532   DOD: 132569   1991 Suzuki Bandit   1977 BMW R100/7\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6448, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: davidgl@microsoft.com (David Glenn)\nSubject: Re: ATM or Truetype-which to choose?\nArticle-I.D.: microsof.1993Apr06.023730.5094\nDistribution: usa\nOrganization: Microsoft Corp.\nLines: 54\n\nIn article <C4tDGt.Mqq@csn.org> rjn@teal.csn.org wrote:\n> csd25@keele.ac.uk (C.M. Yearsley) writes:\n> \n> : I've just bought a PC which came with a bundle of Lotus stuff, including\n> : Adobe Type Manager version 1.15. As a newcomer to Windows, I'm\n> : confused about which I should be using, ATM or Truetype. \n> \n> If you are going to stay with ATM, be sure to upgrade to 2.5, which\n> replaces 2.0. Who knows how old 1.15 is.  2.5 is as fast as TT, and if\n> you disable the small screen fonts, ATM does better screen rendering at\n> the smaller point sizes.\n\nNot true! Both Type 1 and TT fonts can be of excellent quality and poor quality\nat any size. It all depends on the font's maker and the complexity of the glyphs\nrelated to the size and resolution at which they are viewed. Probably the reason\nfor your opinion/experience that TT is inferior is because most TT fonts on the\nmarket today have been converted from Type 1 outlines to TT either by the font\nvendor or end-users using Fontographer or FontMonger instead of the TT fonts being\nhand-hinted to take advantage of the TT hinting language. At best these converted\nTT fonts will be on a par with the Type 1 font of its orgin.\n\nTrueType is a much richer and more robust hinting language than Type 1 (the hinting\nof diagonals for instance, which TT does and Type 1 cannot). If you check out the\nWindows 3.1 core fonts (Times, Arial, Courier, Symbol, Wingdings) you'll see what can\nbe done with TT. There are other fonts out there that have been hand-hinted and not\njust converted. Some of the Microsoft TT Font Pack 2 fonts are hinted very well.\n\n> You can use both TT and ATM fonts at the same time, if you like.\n> ATM (Type 1) fonts tend to be of higher quality\n> and be more complete in terms of foreign characters.\n\nAgain, not true. The characters in a TT or Type 1 font depend on the maker. If someone\nconverts a Type 1 font to TT they'll only get the characters in the font of orgin. TT\nallows for much more flexibility in this area as well. You can have thousands of glyphs\nin a TT font file (Mac/PS/Windows/Unicode char set) and use the characters appropriate\nfor the particular platform you are running the font on. For instance, all or our fontpack\n2 TT fonts have the Mac/Windows char set in them. The metrics of the fonts are such that\nif the font is brought over to the mac the user will have access to the full mac char set.\n\n\n> Regards,                                            1001-A East Harmony Road\n> Bob Niland                                          Suite 503\n> Internet:  rjn@csn.org                              Fort Collins CO 80525\n> CompuServe: 71044,2124                              (303) 223-5209\n\nHope this clears up some of the confusion. Feel free to contact me if anyone would like\nmore info.\n\nRegards,\n\nDave Glenn\nProgram Manager, Microsoft TT font stuff\ndavidgl@microsoft.com\ncompuserve: 72420,1067\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6449, "properties": {"category": "rec.sport.baseball", "text": "From:  (jmhodapp@aplcomm.jhuapl.edu)\nSubject: Re: ALL-TIME BEST PLAYERS\nOrganization: master/peon\nLines: 19\n\nIn article <1993Apr14.173428.12056@Princeton.EDU>, roger@crux.Princeton.EDU (Roger Lustig) writes:\n> \n\n> >In article <1993Apr13.115313.17986@bsu-ucs>, 00mbstultz@leo.bsuvc.bsu.edu \n> >     writes...\n> \n> >>I've recently been working on project to determine the greatest\n> >>players at their respective postions.  \n> \n> >>2B  Career                         \n\nWhat about U. Johnny Hodapp, the greatest 2nd baseman in Cleveland Indians\nhistory?  225 hits in 1930, consistantly over .300.  A great, great second baseman.\n\n\nJon \"Johnny\" Hodapp\njmhodapp@aplcomm.jhuapl.edu\n=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6450, "properties": {"category": "talk.politics.guns", "text": "From: cathy@LANCE.ColoState.Edu (Cathy Smith)\nSubject: Re: UPI News Release\nNntp-Posting-Host: blanca.lance.colostate.edu\nOrganization: Colorado State University, Fort Collins, CO  80523\nLines: 12\n\n\nCathy Smith posting for L. Neil Smith\n\nDear Bill -- \n\nVery, VERY good -- you made my whole day with this post. Thanks\na lot.\n\nL. Neil Smith\n\nMy opinions are, of course, my own.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6451, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: hlu@luke.eecs.wsu.edu (HJ Lu)\nSubject: Re: Debugging possible hardware problems\nArticle-I.D.: serval.1993Apr20.151405.12480\nOrganization: Washington State University!\nLines: 54\n\nIn article <1r0rslINNnv2@senator-bedfellow.MIT.EDU> jfc@athena.mit.edu (John F Carr) writes:\n>\n>I'm running Linux on an 80486 EISA system, and I'm having what I think are\n>hardware problems.  It could be software, but I don't see why I'd be the\n>only one having trouble.  I'd like some advice on how best to debug this.\n>\n>The symptom: when I try to build gcc, I get unpredictable and unrepeatable\n>results.  Sometimes a .o file is not in valid a.out format.  Recompiling the\n>file gives me a valid binary.  Sometimes the compiler aborts or dumps core,\n>but works fine when run again with the same input.  Compiling the same\n>source files with the same arguments gives slight differences in a few\n>object files.  (Note that Linux, unlike many other systems, does not put\n>timestamps in object files so compiling twice should give bit-identical\n>results.)\n>\n>I also have occasional filesystem corruption on my SCSI drive, but that\n>could be caused by using development software.  It could also be related to\n>my problems compiling.  The compile problems are not caused by disk\n>problems: I get the same results whether I do my work on an IDE or SCSI\n>disk.\n>\n>I've set the memory speed and cache write speed to the recommended values.\n\nRecommended for what, DOS? That is a junk.\n\n>\n>I suspect the external cache, but I have no real evidence for this.\n>\n>The motherboard is a NICE Super-EISA with 256 KB write-back cache and a DX/2\n>66 Mhz processor.\n>\n>What I'm looking for:\n>\n>\t. A system test program to run under DOS or Linux\n\n\tLinux + gcc. Fire up gcc to compile libc and kernel at the\n\tsame time running X11R5.\n\n>\n>\t. Suggestions about the cause of the problem\n\n\tBad memory, bad motherboard, bad cache.\n\n>\n>\t. Suggestions about how to debug the problem\n>\n\n\tchange wait state of RAM.\n\tturn off turbo.\n\tchange bus speed\n\tswap RAM.\n\n\nH.J.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6452, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Is key escrow enough?\nLines: 24\n\n\t  The points raised about checking what is actually -in- the chip, as\n\topposed to what is allegedly programmed therein, raise yet another trust\n\tissue.  Even if we assume that these \"trusted agents\" are really entering\n\ta wide range of S1 and S2 seeds (rather than using the same one all the\n\ttime to reduce the key search space to 30 bits), I assume they are not\n\tdoing so by picking up an iron filing and poking it into the circuitry\n\tat carefully selected points to encode data.  They would presumably be\n\tpunching numbers into a computer, which for all they know could program\n\tthe chips in a manner completely independent of the S1 and S2 values they\n\tare feeding into the system.\n\nS1 and S2 are clearly the backdoor - we should assume they are all\ncompromised.  If they're not compromisable, why the hell not use a\nhardware true random number source.  There isn't a random number\nsource *anywhere* in this proposal.  The whole thing is deterministic\nfrom the day the serial number is stamped on the chip.\n\nNope, it can't be trusted.  This is all about two levels of access -\nthe (possibly honest) key escrow that police forces have to use, and\nostensibly the FBI; and the back door that lets the NSA decode *everything*\non the fly - and maybe some back-handers to the FBI when they want a\nwarrantless tab in exchange for favours.\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6453, "properties": {"category": "sci.crypt", "text": "From: holthaus@news.weeg.uiowa.edu (James R. Holthaus)\nSubject: Re: Estimating Wiretap Costs/Benefits\nOrganization: University of Iowa, Iowa City, IA, USA\nLines: 27\n\nrlglende@netcom.com (Robert Lewis Glendenning) writes:\n\n>In article <1993Apr20.203756.20667@kronos.arc.nasa.gov> hanson@kronos.arc.nasa.gov (Robin Hanson) writes:\n>>I'm attempting to write a serious policy paper examining whether the\n>>proposed wiretap (or \"Clipper\") chip is a cost-effective tool for\n>>police investigation.  That is, ignoring concerns about government\n>>intrusions into individual privacy, is the value of easy wiretaps to\n>>investigators greater than the cost to the communications industry,\n>>and their customers, to support this wiretap technology?  \n>>[...]\n\n>First, what the fuck is NASA doing wasting my tax dollars doing\n>policy papers on stuff far outside of their purvew/mission?\n>[...]                                                                         \n>Do us a favor.  Resign rather than right this paper for NASA.  Go\n>do useful work for the society.\n\nWhew!  Take it easy on the guy.  Maybe he's going to do this in his\nspare time.  Maybe he's going to do this to see how much a wiretap\n*really* costs.  Maybe he's going to do this so he can add to the\nopposition to Clipper.  I don't know fully why he might do this, but\nmaybe we shouldn't start flaming at the drop of a hat.  \n-- \n<><><><><><><><><><>James Holthaus  james-holthaus@uiowa.edu<><><><><><><><><>\n<   Government is an association of men who do violence to the rest of us.   >\n<             -- Leo Tolstoy                                                 >\n<><><><><>PGP 2.2 Public key available on request or from key server<><><><><>\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.304+0000", "event": "documents", "entityId": 6454, "properties": {"category": "comp.sys.mac.hardware", "text": "From: glenn@network.ucsd.edu (Glenn Sueyoshi)\nSubject: LaserWriter Pro 600 memory upgrade (4-->8)\nSummary: Apple Dealers provide free upgrade\nKeywords: Apple printer, memory upgrade\nArticle-I.D.: network.1ps4a8$oi3\nDistribution: world\nOrganization: University of California, San Diego\nLines: 25\nNNTP-Posting-Host: network.ucsd.edu\n\nI've got the official word on the LaserWriter Pro 600 memory\nupgrade.\n\nI just got off of the phone with the quite friendly Donna Rossi\nat Apple Customer Assistance.  She tells me that those who\npurchased the LaserWriter Pro 600 in a 4 megabyte (300dpi, no\ngreyscale) configuration should contact their original dealers\nwho are supposed provide the 4-meg memory upgrade.  For those\nwho don't know, the extra 4-meg will allow printing at 600dpi \nor greyscale (at 300dpi).\n\nIf the dealers have questions, they should be directed to their\nhardware support numbers and/or Apple Customer Assistance \n1-800-776-2333, 408-996-1010 (corporate number).\n\nRegards,\n\nGlenn\n\nP.S. - personally, I'm annoyed at our school bookstore.  They\nreally have an obligation to provide this information to all\nof the customers who purchased the 600 in the original \nconfiguration (they have the records...that's why they ask for\nthings like a phone number).  When I get my upgrade completed, \nI'm going to write Apple and complain.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6455, "properties": {"category": "soc.religion.christian", "text": "From: vbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nOrganization: Case Western Reserve Univ. Cleveland, Ohio (USA)\nLines: 31\n\nIn article <Apr.10.05.32.36.1993.14391@athos.rutgers.edu> gsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n>\n>I was raised in a religious atmosphere, and attended 13 years of\n>religious educational institutions..  I know the bible well. So well\n>I can recognize many passages from memory.  \n\n[stuff deleted for brevity]\n\n>Christianity is an infectious cult.  The reasons it flourishes are \n>because 1) it gives people without hope or driven purpose in life\n>a safety blanked to hide behind.  \"Oh wow..all i have to do is \n>follow this christian moral standard and I get eternal happiness.\"\n>For all of you \"found jeezus\" , how many of you were \"on the brink?\"\n\nYour very starting point is wrong.  Christianity is not based on following\na moral standard.  \"For it is by grace you have been saved, through faith...\nNOT BY WORKS so that no man may boast.\"  (Eph. 2:7-8)  You say that\nyou know the Bible well, and can recognize (do you mean recite?) many\npassages from memory.  That could very well be so.  However, it looks like\nthere are a few more passages that you should pay attention to.  (Titus 3:5\nand James 2:10 are among them.)\n\nObedience to the moral law is imporant.  However, it is supposed to be the\nresult of turning your life over to Christ and becoming a Christian.  It is\nby no means the starting point.\n\n-- \nVirgilio \"Dean\" Velasco Jr, Department of Electrical Eng'g and Applied Physics \n\t CWRU graduate student, roboticist-in-training and Q wannabee\n    \"Bullwinkle, that man's intimidating a referee!\"   |    My boss is a \n   \"Not very well.  He doesn't look like one at all!\"  |  Jewish carpenter.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6456, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: DC-X: Vehicle Nears Flight Test\nArticle-I.D.: aurora.1993Apr5.191011.1\nOrganization: University of Alaska Fairbanks\nLines: 53\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <C4zHKw.3Dn@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n> In article <2736@snap> paj@uk.co.gec-mrc (Paul Johnson) writes:\n>>This bit interests me.  How much automatic control is there?  Is it\n>>purely autonomous or is there some degree of ground control?\n> \n> The \"stick-and-rudder man\" is always the onboard computer.  The computer\n> normally gets its orders from a stored program, but they can be overridden\n> from the ground.\n> \n>>How is\n>>the transition from aerodynamic flight (if thats what it is) to hover\n>>accomplished?  This is the really new part...\n> \n> It's also one of the tricky parts.  There are four different ideas, and\n> DC-X will probably end up trying all of them.  (This is from talking to\n> Mitch Burnside Clapp, who's one of the DC-X test pilots, at Making Orbit.)\n> \n> (1) Pop a drogue chute from the nose, light the engines once the thing\n> \tstabilizes base-first.  Simple and reliable.  Heavy shock loads\n> \ton an area of structure that doesn't otherwise carry major loads.\n> \tNeeds a door in the \"hot\" part of the structure, a door whose\n> \toperation is mission-critical.\n> \n> (2) Switch off pitch stability -- the DC is aerodynamically unstable at\n> \tsubsonic speeds -- wait for it to flip, and catch it at 180\n> \tdegrees, then light engines.  A bit scary.\n> \n> (3) Light the engines and use thrust vectoring to push the tail around.\n> \tProbably the preferred method in the long run.  Tricky because\n> \tof the fuel-feed plumbing:  the fuel will start off in the tops\n> \tof the tanks, then slop down to the bottoms during the flip.\n> \tKeeping the engines properly fed will be complicated.\n> \n> (4) Build up speed in a dive, then pull up hard (losing a lot of speed,\n> \tthis thing's L/D is not that great) until it's headed up and\n> \tthe vertical velocity drops to zero, at which point it starts\n> \tto fall tail-first.  Light engines.  Also a bit scary, and you\n> \tprobably don't have enough altitude left to try again.\n> -- \n> All work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n>                     - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n\nSince the DC-X is to take off horizontal, why not land that way??\nWhy do the Martian Landing thing..  Or am I missing something.. Don't know to\nmuch about DC-X and such.. (overly obvious?).\n\nWhy not just fall to earth like the russian crafts?? Parachute in then...\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\nPlease enlighten me... Ignorance is easy to correct. make a mistake and\neveryone will let you know you messed up..\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6457, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jbailey@world.std.com (jim bailey)\nSubject: Re: Quadra 900/950 differences\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 43\n\njim@jagubox.gsfc.nasa.gov (Jim Jagielski) writes:\n\n>jbailey@world.std.com (jim bailey) writes:\n\n>>rdk2@cec2.wustl.edu (Robert David Klapper) writes:\n\n>>>\tI also believe that the 950 fixed a bug in the CPU which screwed up\n>>>some floating point calculations.\n>>>-- \n>>>Robert D. Klapper\n>>>Washington University in St. Louis\n>>>rdk2@cec2.wustl.edu\n>>>Lubarsky's Law of Cybernetic Entomology:  There's always one more bug.\n\n>>Does someone have any definite information on this.  This is the\n>>first I've heard of it.  How does the CPU get fixed by a hardware\n>>upgrade?  This doesn't make much sense to me.\n\n>Let's see now... The differences between the 950 and 900 are\n>basically:\n\n>\t1. Runs at 33MHz, not 25MHz\n>\t2. Has 25MHz I/O bus, not 16MHz\n>\t3. Upgraded Graphics controller\n>\t4. #3 results in Q950 requiring 80ns VRAM, not 100ns\n>\t5. ROM fixes:\n>\t    a. rounding errors in floating point calculations\n>\t       at 15th digit\n\nSo patch the ROMs with the latest OS version.  I don't see\nhow this is a problem.\n\n>\t    b. Ethernet problems with more than 16 buffers\n\n>So, no doubt, the person was refering to 5a, hardly \"screwing\n>up\" though :)\n\n>-- \n>    Jim Jagielski               |  \"And he's gonna stiff me. So I say,\n>    jim@jagubox.gsfc.nasa.gov   |   'Hey! Lama! How about something,\n>    NASA/GSFC, Code 734.4       |   you know, for the effort!'\"\n>    Greenbelt, MD 20771         |\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6458, "properties": {"category": "sci.med", "text": "From: michael@iastate.edu (Michael M. Huang)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Iowa State University, Ames IA\nLines: 21\n\nMSG is common in many food we eat, including Chinese (though some oriental\nrestaurants might put a tad too much in them).  I've noticed that when I\ngo out and eat in most of the Chinese food restaurants, I will usually get\na slight headache and an ununsual thirst afterwards.  This happens to many\nof my friends and relatives too.  And, heh, we eat Chinese food all the\ntime at home :) (but we don't use MSG when we're cooking for ourselves)\n\nSo, when we put one and one together, it can be safely assumed that\nMSG may cause some allergic reactions in some people.\n\nStick with natural things.  MSG doesn't do body any good (and possibly\nharms, for that matter).  So, why bother with it?  Taste food as it should\nbe tasted, and don't cloud the flavor with an imaginary cloak of MSG.\n\n-michael\n\n-- \nMichael M. Huang               | Don't believe what your eyes are  telling you.\nICEMT, Iowa State Univ.        | All they show is  limitation.   Look with your\nmichael@iastate.edu            | understanding, find out what you already know,\n#include <standard.disclaimer> | and you'll see the way to fly. - J. L. Seagull \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6459, "properties": {"category": "sci.crypt", "text": "From: johnson@trwacs.fp.trw.com (Steve Johnson)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: TRW Systems Division, Fairfax VA\nDistribution: na\nLines: 65\n\ntcmay@netcom.com (Timothy C. May) writes:\n\n>Brad Templeton (brad@clarinet.com) wrote:\n>: It occurs to me that if they get a wiretap order on you, and the escrow\n>: houses release your code to the cops, your code is now no longer secure.\n>: \n>: It's in the hands of cops, and while I am sure most of the time they are\n>: good, their security will not be as good as the escrow houses.\n>: \n>: What this effectively means is that if they perform a wiretap on you,\n>: at the end of the wiretap, they should be obligated to inform you that\n>: a tap was performed, and replace (for free) the clipper chip in your\n>: cellular phone so that it is once again a code known only to the\n>: escrow houses.\n\n>Getting the court order to reveal the key *also* makes decipherable\n>all *past* conversations (which may be on tape, or disk, or whatver),\n>as I understand the proposal. I could be wrong, but I've seen no\n>mention of \"session keys\" being the escrowed entities.\n\n>As the EFF noted, this raises further issues about the fruits of one\n>bust leading to incrimination in other areas.\n\n>But is it any worse than the current unsecure system? It becomes much\n>worse, of course, if the government then uses this \"Clinton Clipper\"\n>to argue for restrictions on unapproved encryption. (This is the main\n>concern of most of us, I think. The camel's nose in the tent, etc.)\n\n>And it may also become much worse if the ostensible security is\n>increased, thus allowing greater access to \"central office\" records by\n>the government (the conversations being encrypted, who will object to\n>letting the government have access to them, perhaps even automatically\n>archiving large fractions...). This was one of the main objections to\n>the S.266 proposal, that it would force telecom suppliers to provide\n>easy access for the government.\n\n>One the government has had access to months or years of your encrypted\n>conversations, now all it takes is one misstep, one violation that\n>gets them the paperwork needed to decrypt *all* of them!\n\n>Do we want anyone to have this kind of power?\n\n>-Tim May, whose sig block may get him busted in the New Regime\n\n  A remark I heard the other day is beginning to take on increasingly\nfrightening significance.  The comment was made that \"In other parts\nof the world the Democrats [note the big \"D\"] would be known as\nSocialists\" \n\n  A [note the small \"d\"] democrat who wonders what Thomas Jefferson, on\nthis the 250th anniversary of his birth, would have thought of the state\nof affairs between the government and the governed.\n\n\n------- Any views expressed are those of myself and not my employer. --------\nSteven C. Johnson, WB3IRU / VK2GDS      |\nTRW                                     | johnson@trwacs.fp.trw.com\nFP1 / 3133                              |         [129.193.172.90]\n1 Federal Systems Park Drive            | Phone:        +1 (703) 968.1000\nFairfax, Virginia  22033-4412  U.S.A.   | Fax:          +1 (703) 803.5189\n-- \n------- Any views expressed are those of myself and not my employer. --------\nSteven C. Johnson, WB3IRU / VK2GDS      |\nTRW                                     | johnson@trwacs.fp.trw.com\nFP1 / 3133                              |         [129.193.172.90]\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6460, "properties": {"category": "talk.politics.guns", "text": "From: donb@netcom.com (Don Baldwin)\nSubject: Re: FYI - BATF reply on Waco\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 43\n\nIn article <C5L480.K7u@elite.intel.com> dgw@elite.intel.com (Dennis Willson) \nwrites:\n>On March 8, I sent strongly worded letters critisizing the BATF in\n>their handling of the Randy Weaver and Branch Davidian cases to \n>several politicians (Ore. Senators Bob Packwood and Mark Hatfield,\n>Representative Elizabeth Furse and Treasury Secretary Lloyd Bentsen).\n>While I have never been a supporter of Bob Packwood, I must admit\n>that he seems to be the only one who has done anything but round-file\n>my letter.\n\nWell, I didn't bother writing to Boxer, Feinstein or Eshoo, the terrible\ntrio who allegly represent me.  Instead, I wrote to Bentsen.  My letter\nwas not exactly strongly-worded; I simply stated that the BATF approach\nwas immoral (military-style assault, firing into a house where they knew\nthere were kids).\n\nAparently, Bentsen forwarded my letter to the BATF and they responded to \nme directly.  It follows the text of your reply pretty closely.  However,\nI intend to send another letter directly to them, in return.\n\n>Prior to the service of the Federal search warrant, numerous efforts\n>were made to locate and effect the arrest of David Koresh away from the\n>compound.  These efforts were unsuccessful.  Even if David Koresh had\n>been arrested while away from the compound, action would have been\n>required against his followers (who are just as violent as he) during\n>the subsequent search of the premises.\n\nThis section is not in the letter that I received.  The parts about ATF\nlogo and steenking badges or their loss of the element of surprise\nwere not included, either.\n\n>                          Sincerely yours,\n>\n>                          Daniel M. H??l??tt  [can't make out signature]\n>                          Deputy Director\n\nThe same guy with the bad handwriting apparently signed my letter, \"for\nRichard L. Garner; Chief, Special Operations Division\".\n\n      don\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6461, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: Why does Apple give us a confusing message?\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 56\n\nubs@carson.u.washington.edu (University Bookstore) writes:\n>bunt0003@student.tc.umn.edu (Monthian Buntan-1) writes:\n>>\n>>\n>>Does anyone know why Apple has an ambiguous message for C650 regarding\n>>fpu?  In all Mac price lists I've seen, every C650 has the message \"fpu:\n>>optional\".  I know from what we've discussed in this newsgroup that all\n>>C650 have the fpu built in except the 4/80 configuration.  Why would\n>>they be so unclear about this issue in their price list?\n\n    I think this is mostly the fault of the people who write up the\nliterature and price lists being confused themselves. Since there are\ntwo possible processor configurations and one of the them doesn't have\nan FPU it does seem to be an option, even though it really isn't.\n\n>>I'm planning to buy the C650 8/230/cd pretty soon, but I'm now getting\n>>confused with whether it comes with fpu or not.\n\n    Well, then allow me to end your confusion. The C650 ONLY come with\nan LC040 in the base 4/80 configuration. If you are not getting this\nconfiguration then you are getting an FPU.\n\n>>Why say \"optional\" if it's built in?\n\n    Good question. I have been wondering that since Feb. 10th.\n\n>If you get the Centris 650 with CD configuration, you are getting a Mac with\n>a 68RC040 processor that has built-in math coprocessor support.  My \n>understanding is that the \"optional fpu\" refers to your option of purchasing\n>the Centris 650 4/80 without FPU OR one of the other configurations WITH FPU.\n \n    This is possible, but an option is something that you are supposed\nto be able to request when you want it. What Apple has done is given the\nbuyer a CHOICE between configurations and not an OPTION.\n\n>Apple does not offer an upgrade from the non-FPU system to become an FPU\n>system.  And, it is unclear whether the '040 processor on the non-FPU system\n>(a 68LC040) can be replaced with a 68RC040 supplied by another vendor.\n\n    This is not unclear at all. In fact Apple has included in the ROMs\nof those machines with LC040s code to recognize the presence of the full\n040's FPU and use it. Thereby making the upgrade as easy as switching\nchips. You pop the LC040 out and pop in a full '040.\n\n>Apple did send a memo out at one point sating that the Centris 610, which ONLY\n>comes with a non-FPU 68LC040 processor CANNOT be upgraded to support an FPU -\n>the pin configurations of the two chips apparently do not match so you cannot\n>swap one for another (again, according to Apple's memo).\n\n    They did? I think I would double-check this. It has been stated\ncountless times in this newsgroup by two of the Centris hardware\ndesigners that the LC040 and the full '040 are pin compatible and that\nthe C610 can be upgraded to a full '040.\n\n-Hades\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6462, "properties": {"category": "soc.religion.christian", "text": "From: Steve.Hayes@f22.n7101.z5.fidonet.org\nSubject: Sin\nLines: 10\n\n09 Apr 93, Jill Anne Daley writes to All:\n\n JAD> What exactly is a definition of sin and what are some examples. How does\n JAD> a person know when they are committing sin?\n\nTo answer briefly: sin is falling short of the glory of God (Romans 3:23)\n\nSteve\n\n--- GoldED 2.40\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6463, "properties": {"category": "misc.forsale", "text": "From: olds@helix.nih.gov (James Olds)\nSubject: Thule roof rack with bike accessories: $100 take it all.\nOrganization: National Institutes of Health, Bethesda\nDistribution: na\nLines: 11\n\nFor Sale: A Thule Car rack with 2 bike holder accessories.\nComes with Nissan Pathfinder brackets but you can buy the\nappropriate ones for your car cheap.\nLooking for $100.00 for everything. I live in the Bethesda area.\nThanks for your interest.\n\n--\n****************************************************************************\n* James L. Olds Ph.D.                 Neural Systems Section               *\n* domain: olds@helix.nih.gov           NINDS, NIH, Bethesda, MD. 20892 USA *\n****************************************************************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6464, "properties": {"category": "sci.electronics", "text": "From: rob@dexter.psych.umn.edu (Robert Stephens)\nSubject: Compressor Problem\nNntp-Posting-Host: dexter.psych.umn.edu\nOrganization: University of Minnesota\nLines: 18\n\nI have a stereo compressor-limiter by \nAudio Logic (Model MT-66).  The gates work,\nbut the compressor seems to be gone on one\nchannel, and very weak on the other.  \n\nI'll probably need an ocsilloscope to trace it\ndown (no pun intended), but if any one with\nexperience with this type of equipment could\npoint me in a certain direction as to where the \ncircuit is most likely to fail, I'd sure appreciate it.\n\n\n-- \nRobert C. Stephens\t\trob@dexter.psych.umn.edu\t\t\n\nHuman Factors Research Lab\nUniversity of Minnesota\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6465, "properties": {"category": "comp.sys.mac.hardware", "text": "From: cptnerd@access.digex.com (Captain Nerd)\nSubject: \"SIMM Re-use\" NuBus board... Anyone seen one?\nOrganization: Express Access Online Communications, Greenbelt, Maryland USA\nLines: 29\nDistribution: world\nNNTP-Posting-Host: access.digex.net\nSummary: does anyone make this? does anyone know what I'm talking about?\nKeywords: SIMM NuBus board RAMDisk\n\n\n\n\tHello,\n\n\tI remember running across an ad in the back of Mac[User|World]\na few years ago, for a Nubus board that had umpteen SIMM slots, to be\nused to \"recycle your old SIMMs,\" when you upgraded memory.  I don't\nremember who made this board, and I haven't seen it advertised in\nany of the latest Mac magazines.  It mentioned that it included software\nto make the SIMMs on the board act like a RAM disk. As someone who has SIMMS \nhe can't get rid of/use, but hates the waste, this sounds to me like a majorly\ngood idea.  Does anyone out there know what board/company I'm talking about?  \nAre they still in business, or does anyone know where I can get a used one\nif they are no longer made?  Any help would be greatly appreciated.  Please\ne-mail me, to save net.bandwidth.\n\n\n\tThanks,\n\n\tCap.\n\n\n\n\n-- \n |  Internet: cptnerd@digex.com  |  AOL: CptNerd  |  Compuserve: 70714,105  |\n   CONSILIO MANUQUE \n   OTIUM CUM DIGNITATE \n   CREDO QUIA ABSURDUM EST         PARTURIENT MONTES NASCETUR RIDICULUS MUS\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6466, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: pwb@aerg.canberra.edu.au (Paul Blackman)\nSubject: Re: Workspace Manager for Win 3.1 ?\nOrganization: University of Canberra\nLines: 26\n\nIn article <1r5uml$620@werple.apana.org.au> jamie@zikzak.apana.org.au (Jamie Scuglia) writes:\n>Are there any Workspace Managers out there for Windows 3.1 ?\n\nTry WorkShift by Karl Thoreddson. The latest version is 2.0 (or later?) but\nthe following is at Cica in the Desktop directory.\nWRKSFT16 ZIP : WorkShift Graphical Virtual Desktop (ver 1.6)\n\nOr email Karl and ask him to put version 2.0 up\nKarl's email: karlth@rhi.hi.is (from the MS-Write file of v1.6)\n\nI was Beta tester for WorkShift and must say it is very good\n(I gain nothing from saying that).\nIt'll even remember your WorkShifts (WorkSpaces as you said) between\nWindows sessions.\n\n>Thanks in advance.\nYour Welcome.\n~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~\n    o        |  Paul Blackman                   pwb@science.canberra.edu.au  \n        o    |  Water Research Centre,             pwb@aerg.canberra.edu.au\n   o  _      |  Faculty of Applied Science\n  -- (\") o   |  University of Canberra, Australia.\n    \\_|_--   |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n      |      |  \"Spend a little love and get high\"\n    _/ \\_    |                                    - Lenny Kravitz\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6467, "properties": {"category": "sci.crypt", "text": "From: mrr@scss3.cl.msu.edu (Mark Riordan)\nSubject: DOS 6.0 compression API: partial answer\nOrganization: Michigan State University\nLines: 21\nNNTP-Posting-Host: scss3.cl.msu.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nFor those of you looking for information on MS-DOS 6.0's\nfile system compression API:\n\nToday I called Microsoft's DOS 6.0 hotline at (800)228-7007.\nThey told me that the DOS 6.0 Resource Kit had the specifications\nfor the compression interface.  The Resource Kit costs $19.95,\nplus tax and $5 shipping.\n\nI ordered a copy and will post further when I get it and know more\nabout it.  I am posting now because the order turnaround is 15 \nworking days.  \n\nIf anyone knows for sure where's there's a good\nsource of info on this API, please speak up.  I am \nslightly skeptical about the Resource Kit's likelihood\nof having detailed programming info.\n\nMark R.  mrr@ripem.msu.edu\n\n(posted also to sci.crypt, since the API could presumably also\nbe used for file system encryption.)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6468, "properties": {"category": "talk.religion.misc", "text": "From: pmy@vivaldi.acc.virginia.edu (Pete Yadlowsky)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: University of Virginia\nLines: 17\n\nKen Arromdee writes\n\n>>Did they not know that these men were federal officers?\n\n>Do you know what a \"no-knock search\" is?\n\nYes, but tell me how you think your question answers my question. If\nthe BDs didn't know immediately that they were dealing with feds\n(uniform apparel, insignia), they must have figured it out in pretty\nshort order. Why did they keep fighting? They seemed awfully ready\nfor having been attacked \"without warning\". \n\n--\nPeter M. Yadlowsky              |  Wake! The sky is light!\nAcademic Computing Center       | Let us to the Net again...\nUniversity of Virginia          |    Companion keyboard.\npmy@Virginia.EDU                |                      - after Basho\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6469, "properties": {"category": "sci.electronics", "text": "From: timd@fenian.dell.com (Tim Deagan)\nSubject: Homebuilt PAL (EPLD) programer?\nNntp-Posting-Host: fenian.dell.com\nReply-To: timd@fenian.dell.com\nOrganization: SLAMDANZ CYBRNETX\nLines: 13\n\nAnyone know a reasonable circuit for programming PALs?  I am interested\nin programming a wide range of EPLDs but would be happy with something \nthat could handle a 22V10 or thereabouts.\n\nThanks in advance,\n--Tim\n\n---\n{{{{{{{{{{{{{{{{{{{{{ timd@fenian.dell.com }}}}}}}}}}}}}}}}}}}}}}}}}}}}\n             Rev. Tim Deagan - Official Obnoxious Poster\nNo one but me is responsible for anything I write, believe in or preach\n* \"It is difficult to free fools from chains they revere.\" - Voltaire *\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6470, "properties": {"category": "misc.forsale", "text": "From: halle@rebecca.its.rpi.edu (Ezra D.B. Hall)\nSubject: Re: Receiver and C-101 equilizer for sale\nKeywords: receiver, equilizer ,sterio,amp\nArticle-I.D.: rpi.zss56vm\nLines: 26\nNntp-Posting-Host: rebecca.its.rpi.edu\n\nI have sold the receiver.  The Equilizer is still for sale\n\n-Technics SA-450 integrated Quartz synthesizer Digital Receiver\n       -SOLD!!!!!\n\n-Audio Control C-101 graphic equilizer\n\t-This is an awesome Eq., but I am broke.\n        -10 bands/channel, octave EQ\n        -subsonic filter\n        -rumble reducer\n        -tape monitor\n        -amazing real time spectrum analyzer with calibrtated microphone and \n         pink noise generator, calibrated and uncalibrated range adjustment,\n         display is calibrated in dB and can display the average energy per \n         band, or the average for the full speactrum(great for checking how \n         loud your system is)\n        -The display action has two speed settings to adjust how quickly the \n         display responds to transients\n This is one of the best equilizers around.  It is very quiet, and the display\nIs fascinating to watch.  It sells for $400-$450 in stores, so I will sell it\nfor -$315 obo\n\n\tsend all responses to halle@rpi.edu ,  or call (518)276-7382 eve.\n\n\n  \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6471, "properties": {"category": "talk.politics.misc", "text": "From: drk@melodian.cs.uiuc.edu (Dave Kohr)\nSubject: Re: Foreign Media Reaction April 1-12, part 1 of 3\nOrganization: CS Dept., Univ. of Illinois at Urbana-Champaign\nLines: 19\n\nIn article <C5Jv7A.7F7@dscomsa.desy.de> hallam@zeus02.desy.de writes:\n>The USA could go quite far to mend the bridges with  Iran. The people\n>there are rather pissed off because the USA first supported the Shah who\n>they loathed and then supported Saddam when he mounted an unprovoked\n>attack.  Hardly surprizing after the embassy hostage crisis but Iran is\n>meant to be the country run by unreasonable bigots not the USA so if there\n>is to be movement it would be easier for the USA to move.\n>\n>Phill Hallam-Baker\n\nIt is also widely stated (in non-mainstream sources) that the CIA had a\nlarge part in the overthrow of the popular (and popularly-elected)\nleft-leaning Premier Mossadegh in 1953.  Is this widely recognized outside\nthe U.S.?  (I have never seen it mentioned at all in mainstream U.S.\nmedia.)  How about within Iran?\n-- \nDave Kohr     CS Graduate Student     Univ. of Illinois at Urbana-Champaign\nWork: 3244 DCL, (217)333-6561  Home: (217)359-9350  E-mail: drk@cs.uiuc.edu\n                   \"One either has none or not enough.\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6472, "properties": {"category": "comp.windows.x", "text": "From: clark@thinker.csee.usf.edu (Matthew Clark)\nSubject: Changing OLWM icons\nOrganization: University of South Florida, Department of Computer Science and Engineering\nLines: 8\nDistribution: world\nReply-To: clark@thinker.csee.usf.edu (Matthew Clark)\nNNTP-Posting-Host: 131.247.2.37\n\nI was wondering if it's possible to change the window icons OLWM\nuses for things like xterm.  Most of the defaults are pretty lame.\n\nAny answer (or where I can find one) would be most appreciated.\n\nThanks\n\nMatt Clark\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6473, "properties": {"category": "sci.space", "text": "From: mt90dac@brunel.ac.uk (Del Cotter)\nSubject: Re: Crazy? or just Imaginitive?\nOrganization: Brunel University, West London, UK\nLines: 26\n\n<1993Apr21.205403.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n\n>So some of my ideas are a bit odd, off the wall and such, but so was Wilbur and\n>Orville Wright, and quite a few others.. Sorry if I do not have the big degrees\n>and such, but I think (I might be wrong, to error is human) I have something\n>that is in many ways just as important, I have imagination, dreams. And without\n>dreams all the knowledge is worthless.. \n\nOh, and us with the big degrees don't got imagination, huh?\n\nThe alleged dichotomy between imagination and knowledge is one of the most\npernicious fallacys of the New Age.  Michael, thanks for the generous\noffer, but we have quite enough dreams of our own, thank you.\n\nYou, on the other hand, are letting your own dreams go to waste by\nfailing to get the maths/thermodynamics/chemistry/(your choices here)\nwhich would give your imagination wings.\n\nJust to show this isn't a flame, I leave you with a quote from _Invasion of \nthe Body Snatchers_:\n\n\"Become one of us; it's not so bad, you know\"\n-- \n ',' ' ',','  |                                                  |  ',' ' ',','\n   ', ,','    |       Del Cotter       mt90dac@brunel.ac.uk      |    ', ,','  \n     ','      |                                                  |      ','    \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6474, "properties": {"category": "sci.electronics", "text": "From: mkilpela@mtu.edu (Mark E. Kilpela)\nSubject: Re: A question about 120VAC outlet wiring..\nNntp-Posting-Host: techmac10.tech.mtu.edu\nOrganization: Michigan Technological University\nLines: 32\n\nIn article <1993Apr14.172145.27458@ecsvax.uncecs.edu>,\ncrisp@ecsvax.uncecs.edu (Russ Crisp) wrote:\n> \n> Hello\n> I'm considering modernizing some old wiring in my home, and\n> I need a little advice on outlet wiring.  Several outlets\n> are the old 'two prong' type, without the ground.  Naturally,\n> the wire feeding these outlets is 12/2, WITHOUT the ground\n> wire.  I noticed at the fusebox that some circuits have the\n> 12/2 with ground, and that on these circuits, the ground\n> wire was tied to the same bus as the neutral (white) wire.\n> \n> SO..  Here's my question.  It seems to me that I'd have the\n> same electrical circuit if I hooked the neutral[D[D[D[D[D[D[D[D[D[D[Da jumper from the neutral\n> over to the ground screw on new 'three prong' grounding outlets.\n> What's wrong with my reasoning here?  \n\nFirst, it will not pass a National Electrical code inspection.\nSecondly, The neutral wire is current carrying and the ground wire\nshouldn't be, or only during a fault condition.\n\nThe reason the neutral and ground are tied together in the panel is the\ntranformer on the power pole has a grounded center-tap secondary, with the\ngrounded center-tap the neutral.  This gives 120v to neutral(ground) from\neach side of the transformer and 240v across the transformer.  So in effect\nthe neutral and ground should be at the same potential. \n\n------------------------------------------------------------------\nMark E. Kilpela              email mkilpela@mtu.edu\nMichigan Technological University\nSchool of Technology\n------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6475, "properties": {"category": "misc.forsale", "text": "From: kd1hz@anomaly.sbs.com (Rev. Michael P. Deignan)\nSubject: Hallicrafters S120 \nOrganization: Small Business Systems, Incorporated, Smithfield, RI 02917\nLines: 9\n\nI have a Hallicrafters S120 SW radio for sale. Worked the last time I\ntried it out. Make offer.\n\nMD\n-- \n--  Michael P. Deignan                      / Sex is hereditary. If your \n--  Domain: mpd@anomaly.sbs.com            /  parents never had it, chances \n-- AT&TNet: +1 401 273 4669               /   are you won't either...\n-- Telebit: +1 401 455 0347              /\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.305+0000", "event": "documents", "entityId": 6476, "properties": {"category": "comp.graphics", "text": "From: nfotis@ntua.gr (Nick C. Fotis)\nSubject: (17 Apr 93) Computer Graphics Resource Listing : WEEKLY [part 2/3]\nLines: 1023\nReply-To: nfotis@theseas.ntua.gr (Nick (Nikolaos) Fotis)\nOrganization: National Technical Univ. of Athens\n\nArchive-name: graphics/resources-list/part2\nLast-modified: 1993/04/17\n\n\nComputer Graphics Resource Listing : WEEKLY POSTING [ PART 2/3 ]\n===================================================\nLast Change : 17 April 1993\n\n\n14. Plotting packages\n=====================\n\nGnuplot 3.2\n-----------\n  It is one of the best 2- and 3-D plotting packages, with\n  online help.It's a command-line driven interactive function plotting utility\n  for UNIX, MSDOS, Amiga, Archimedes, and VMS platforms (at least!).\n  Freely distributed, it supports many terminals, plotters, and printers\n  and is easily extensible to include new devices.\n  It was posted to comp.sources.misc in version 3.0, plus 2 patches.\n  You can practically find it everywhere (use Archie to find a site near you!).\n  The comp.graphics.gnuplot newsgroup is devoted to discussion of Gnuplot.\n\nXvgr and Xmgr (ACE/gr)\n-----------------------\n  Xmgr is an XY-plotting tool for UNIX workstations using\n  X or OpenWindows. There is an XView version called xvgr for\n  Suns. Collectively, these 2 tools are known as ACE/gr.\n  Compiling xmgr requires the Motif toolkit version 1.1\n  and X11R4 - xmgr will not compile under X11R3/Motif 1.0x.\n\n  Check at ftp.ccalmr.ogi.edu [129.95.72.34} in\n  /CCALMR/pub/acegr/xmgr-2.09.tar.Z (Motif version)\n  /CCALMR/pub/acegr/xvgr-2.09.tar.Z (XView version)\n\n  Comments, suggestions, bug reports to Paul J Turner\n  <pturner@amb4.ese.ogi.edu> (if mail fails, try pturner@ese.ogi.edu).\n  Due to time constraints, replies will be few and far between.\n\nRobot\n-----\n  Release 0.45 : 2-D and limited 3-D. Based on XView 3, written\n  in C / Fortran (so you need a Fortran compiler or the f2c translator).\n  Mainly tested on Sun4, less on DECstations. Check at\n  ftp.astro.psu.edu (128.118.147.28),  pub/astrod.\n\nVG plotting library\n-------------------\n  This is a library of Fortran callable routines at sunspot.ceee.nist.gov\n  [129.6.64.151]\n\nXgobi\n-----\n  It's being developed at Bellcore, and its speciality are\n  multidimensional data sets analysis and exploration. You can call it\n  from the S language also, and it works as an X11 client using the Athena\n  widget set (or with an ASCII terminal). It's distributed free of charge\n  from STATLIB at CMU.\n  To get it via e-mail, send email to statlib@temper.stat.cmu.edu and\n  in the body area of the message, put the line\n\n  send xgobi from general\n\n  If you want to pick it via ftp, connect to lib.stat.cmu.edu. Log in as\n  \"statlib\" and use your e-mail address as your password. Then type\n\n  cd general\n  mget xgobi.*\n\n  Warning: It's about 2 MB sources + large Postscript manual. Read the\n  relevant README to decide whether you need it or not.\n\nPGPLOT\n------\n  Runs on VAX/VMS and supposedly on UNIX. It's a set of fortran routines freely\n  available (though copyrighted and requiring a nominal fee of $50 or so)\n  that includes contour plots and support for various devices, including ps.\n  Contact tjp@deimos.caltech.edu\n\nGGRAPH\n------\n  Host shorty.cs.wisc.edu [128.105.2.8] : /pub/ggraph.tar.Z\n  Unknown more details.\n\nepiGRAPH\n--------\n  For PCs. Call dvj@lab2.phys.lgu.spb.su (Vladimir J. Dmitriev) for details.\n  You can get the program demo or (and) play version, if sent 10 $ to\n\n        1251 Budapest posta fiok 60\n        Hungary\n        ph/fax 1753696  Budapest\n        ph     2017760\n\nMultiplot XLN\n-------------\n  For Amigas, shareware ($30 USD, #20 UK or $40 Aust.). Advanced 2D package\n  that has a big list of features. Contact:\n\n  Dr. Alan Baxter <agb16@mbuc.bio.cam.ac.uk>,\n  Cambridge University\n  Department of Pathology,\n  Tennis Court Road,\n  Cambridge CB2 1QP, UK\n\n\n+Athena Plotter Widget set\n+-------------------------\n+  \n+  This version V6.0 is based on Gregory Bond's version V5-beta. Added\n+  some stuff for scientific graphs, i.e. log axes, free scalable axes,\n+  XY-lineplots and some more, and re-added plotter callbacks from V4, e.g.\n+  to request the current pointer position, or to cut off a rectangle from the\n+  plotting area for zooming-in. Version V6.0 has a log of bugs fixed and a\n+  log of improvements against V6-beta. Additionally I did some other\n+  changes/extensions, besides \n+  \n+      -     Origin and frame lines for axes.\n+      -     Subgrid lines on subtic positions.\n+      -     Line plots in different line types (lines, points, lines+points,\n+       impulses, lines+impulses, steps, bars), line styles (solid, dotted,\n+       dashed, dot-dashed) and marker types for data points.\n+      -     Legend at the right or left hand side of the plot.\n+      -     Optional drawing to a pixmap instead of a window.\n+      -     Layout callback for aligning axis positions when using\n+       multiple plotters in one application.\n+  \n+  Available at export.lcs.mit.edu, directory contrib/plotter\n+\n+SciPlot\n+-------\n+  SciPlot is a scientific 2D plotting and manipulation program. \n+  For the NeXT (requires NeXTStep 3.0), and it's shareware.\n+\n+  Features:\n+  ASCII import and export;  EPS export; copy, cut, paste with data buffer;\n+  free number of data points, data buffer, and document window;\n+  selective open and save ; plotting in many styles; automatic legend;\n+  subviews; linear and logarithmic axes; two different axes; text and graphic;\n+  color support; zoom; normalizing and moving; axis conversions;\n+  free hand data manipulations (cut, edit, move, etc.); data editor; sorting\n+  of data; absolute,relative, and free defined error bars;\n+  calculating with buffers (+, -, *, / ); background subtractions\n+  (linear,shirley,tougaard, bezier); integration and relative integration;\n+  fitting of one or more free defined functions; linear regression;\n+  calculations (+, -, *, /, sin, cos, log, etc.); function generator;\n+  spline interpolation; least square smooth and FFT smooth; differentiation;\n+  FFT; ESCA calculations and database; .. and something more \n+\n+  You can find it on:\n+  ftp.cs.tu-berlin.de [130.149.17.7] : /pub/NeXT/science/SciPlot3.1.tar.Z\n+\n+  Author:\n+  Michael Wesemann\n+  Scillerstr. 73,1000 Berlin 12, Germany   \n+  mike@fiasko.rz-berlin.mpg.de\n+\n+PLPLOT\n+------\n+  PLPLOT is a scientific plotting package for many systems, small (micro)\n+  and large (super) alike.  Despite its small size and quickness,\n+  it has enough power to satisfy most users, including:\n+  standard x-y plots, semilog plots, log-log plots, contour plots, 3D plots,\n+  mesh plots, bar charts and pie charts.  Multiple graphs (of the same or\n+  different sizes) may be placed on a single page with multiple lines in each\n+  graph.  Different line styles, widths and colors are supported.  A virtually\n+  infinite number of distinct area fill patterns may be used.  There are\n+  almost 1000 characters in the extended character set.  This includes four\n+  different fonts, the Greek alphabet and a host of mathematical, musical, and\n+  other symbols.  The fonts can be scaled to any size for various effects.\n+  Many different output device drivers are available (system dependent),\n+  including a portable metafile format and renderer.\n+  \n+  Freely available (but copyrighted) via anonymous FTP on\n+  hagar.ph.utexas.edu, directory pub/plplot\n+  \n+  At present (v. 4.13), PLPLOT is known to work on the following systems:\n+  \n+  Unix:   SunOS, A/IX, HP-UX, Unicos, DG/UX, Ultrix\n+  Other platforms: VMS, Amiga/Exec, MS-DOS, OS/2, NeXT\n+  \n+  Authors: Many. The main supporters are:\n+  \n+  Maurice LeBrun <mjl@fusion.ph.utexas.edu>: PLPLOT kernel and the metafile,\n+     xterm, xwindow, tektronix, and Amiga drivers.\n+  Geoff Furnish <furnish@fusion.ph.utexas.edu>: MS-DOS and OS/2 drivers\n+  Tony Richardson <amr@egr.duke.edu>: PLPLOT on the NeXT\n+\n+SuperMongo\n+----------\n+  2-D plotting package at CMU, filename ~re00/tmp/SM.2.1.0.tar.Z\n+  (probably under the ftp.cmu.edu or andrew.cmu.edu machines?)\n+\n+GLE\n+---\n+  GLE is a high quality graphics package for scientists.  It runs on a\n+  variety of platforms (PCs, VAXes, and Unix) with drivers for XWindows,\n+  REGIS, TEK4010, PC graphics cards, VT100s, HP plotters, Postscript\n+  printers, Epson-compatible printers and Laserjet/Paintjet printers.  It\n+  provides LaTEX quality fonts, as well as full support for Postscript\n+  fonts.  The graphing module provides full control over all features of\n+  graphs.  The graphics primitives include user-defined subroutines for\n+  complex pictures and diagrams.\n+\n+  Accompanying utilities include Surface (for hidden line surface\n+  plotting), Contour (for contour plots), Manip (for manipulation of\n+  columnar data files), and Fitls (for fitting arbitrary equations to\n+  data).\n+\n+  Mailing list: GLEList. Send a message to\n+\n+  listserver@tbone.biol.scarolina.edu, with a message boyd containing\n+\n+  sub glelist \"Your Name\"\n+  \n+ maintainer: Dean Pentcheff <dean2@tbone.biol.scarolina.edu>\n\n==========================================================================\n\n15. Image analysis software - Image processing and display\n==========================================================\n\nPC and Mac-based tools (multi-platform software)\n======================\n\nIMDISP\n------\n  IMDISP Written at JPL and other NASA sites. Can do simple display,\n  enhancing, smoothing and so on. Works with the FITS and VICAR/PDS\n  data formats of NASA. Can read TIFF images, if you know their dimensions\n  [PC and Macs]\n\nLabVIEW 2\n---------\n  LabVIEW is used as a framework for image processing tools. It provides a\n  graphical programming environment using block diagram sketch is the\n  \"program\" with graphical elements representing the programming elements.\n  Hundreds of functions are already available and are connected using a\n  wiring tool to create the block diagram (program).  Functions that the\n  block diagrams represent include digital signal processing and\n  filtering, numerical analysis, statistics, etc.  The tool allows any\n  Virtual Instrument (VI, a software file that looks and acts like a real\n  laboratory instrument) to be used as a part of any other virtual\n  instrument.\n\n  National Instruments markets plug-in digital signal processing (DSP)\n  boards for Macintoshs and PC compatables that allow real-time\n  acquisition and analysis at a personal computer.  New software tools for\n  DSP are allowing engineers to harness the power of this technology. The\n  tools range from low-level debugging software to high-level block\n  diagram development software.  There are three levels of DSP programming\n  associated with the NB-DSP2300 board and LabVIEW:\n  Use of the NB-DSP2300 Analysis Library: FFTs, power spectra, filters\n  routines callable from THINK C and Macintosh Programers Workshop (MPW) C\n  that execute on the NB-DSP2300 board. There is an analysis Virtual\n  Interface Library of ready-to-use VIs optimized for the NB-DSP2300.\n\n  Use of the National Instruments Developers Toolkit that includes an\n  optimizing C compiler, an assembler and a linker for low-level\n  programming of the DSP hardware.  This approach offers the highest level\n  of performance but is the must difficult in terms of ease of use.\n\n  Use of the National Instruments Interface Kit software package which has\n  utility functions for memory management data communications and\n  downloading code to the NB-DSP2300 board. (This is the easiest route for\n  the development of custom code.)\n\nUltimage Concept VI\n-------------------\n  Concept VI  by Graftek-France is a family of image processing Virtual\n  Instruments (VIs) that give LabVIEW 2 (described above) users high-end\n  tools for designing, integrating and monitoring imaging control systems.\n  A VI is a software file that looks and acts like a real laboratory\n  instrument. Typical applications for Concept VI include thermography,\n  surveillance, machine vision, production testing, biomedical imaging,\n  electronic microscopy and remote sensing.\n\n  Ultimage Concept VI addresses applications which require further\n  qualitative and quantitative analysis.  It includes a complete set of\n  functions for image enhancement, histogram equalization, spatial and\n  frequency filtering, isolation of features, thresholding, mathematical\n  morphology analysis, density measurement, object counting, sizing and\n  characterization.\n\n  The program loads images with a minimum resolution of 64 by 64, a pixel\n  depth of 8, 16, or 32 bits, and one image plane.  Standard input and\n  output formats include PICT, TIFF, SATIE, and AIPD.  Other formats can\n  be imported.\n\n  Image enhancement features include lookup table transformations, spatial\n  linear and non-linear filters, frequency filtering, arithmetic and logic\n  operations, and geometric transformations, among others.  Morphological\n  transformations include erosion, dilation, opening, closing, hole\n  removal, object separation, and extraction of skeletons, among others.\n  Quantitative analysis provides for objects' detection, measurement, and\n  morphological distribution.  Measures include area, perimeter, center of\n  gravity, moment of inertia, orientation, length of relevant chords, and\n  shape factors and equivalence.  Measures are saved in ASCII format.  The\n  program also provides for macro scripting and integration of custom\n  modules.\n\n  A 3-D view command plots a perspective data graph where image intensity\n  is depicted as mountains or valleys in the plot.  The histogram tool can\n  be plotted with either a linear or logarithmic scale. The twenty-eight\n  arithmetic and logical operations provide for: masking and averaging\n  sections of images, noise removal, making comparisons, etc.  There are\n  13 spatial filters that alter pixel intensities based on local\n  intensity.  These include high-pass filters for contrast and outlines.\n  The frequency data resulting from FFT analysis can be displayed as\n  either the (real , imaginary ) components or the (phase, magnitude)\n  data.  The morphological transformations are useful for data sharpening\n  and defining objects or for removing artifacts.\n\n  The transformations include: thresholding, eroding, dilating and even\n  hole filling.\n\n  The program's quantitative analysis measurements include: area,\n  perimeter, center of mass, object counts, and angle between points.\n\n  GTFS, Inc. 2455 Bennett Valley Road #100C Santa Rosa, CA 95494\n  707-579-1733\n\nIPLab Spectrum\n--------------\n  IPLAB Spectrum supports image processing and analysis but lacks the\n  morphology and quantitative analysis features provided by\n  Graftek-FranceUs Ultimage Concept VI.  Using scripting tools, the user\n  tells the system the operations to be performed. The problem is that far\n  too many basic operations require manual intervention. The tool\n  supports: FFTs, 16 arithmetic operations for pixel alteration, and a\n  movie command for cycling through windows.\n\n\nMacintosh-based tools\n=====================\n\nNCSA Image, NCSA PalEdit and more\n---------------------------------\n  NCSA provides a whole suite of public-domain visualization tools for the\n  Macintosh, primarily aimed at researchers wanting to visualize results\n  from numerical modelling calculations.  These applications,\n  documentation, and source code are available for anonymous ftp from\n  ftp.ncsa.uiuc.edu. Commercial versions of the NCSA programs have been\n  developed by Spyglass.\n\n  Spyglass, Inc. 701 Devonshire Drive Champaign, IL  61820 (217) 355-6000\n  fax: 217 355 8925\n\nNIH IMAGE\n---------\n  Available at alw.nih.gov (128.231.128.7) or (preferably)\n  zippy.nimh.nih.gov [128.231.98.32], directory:/pub/image.\n  It has painting and image manipulation tools, a macro language,\n  tools for measuring areas, distances and angles, and for counting\n  things. Using a frame grabber card, it can record sequences of\n  images to be played back as a movie. It can invoke user-defined\n  convolution matrix filters, such as Gaussian. It can import raw\n  data in tab-delimited ASCII, or as 1 or 2-byte quantities. It also\n  does histograms and even 3-D plots. It is limited to 8-bits/pixel,\n  though the 8 bits map into a color lookup table. It runs on any Mac\n  that has a 256-color screen and a FPU (or get the NonFPU version\n  from zippy.nimh.nih.gov)\n\nPhotoMac\n--------\n  Data Translation, Inc. 100 Locke Dr. Marlboro, MA 01752 508-481-3700\n\nPhotoPress\n----------\n  Blue Solutions 3039 Marigold Place Thousand Oaks, CA 91360 805-492-9973\n\nPixelTools and TCL-Image\n------------------------\n  \"Complete family of PixelTools (hardware accelerator and applications\n  software) for scientific image processing and analysis.  Video-rate\n  capture, display, processing, and analysis of high-resolution\n  monochromatic and color images.  Includes C source code.\"\n\nTCL-Image:\n  \"Software package for scientific, quantitative image processing and\n  analysis. It provides a complete language for the capture, enhancement,\n  and extraction of quantitative information from gray-scale images.\n  TCL_Image has over 200 functions for image processing, and contains the\n  other elements needed in a full programming language for algorithm\n  development -- variables and control structures.  It is easily\n  extensible through \"script\" (or indirect command) files. These script\n  files are simply text files that contain TCL-Image commands.  They are\n  executed as normal commands and include the ability to pass parameters.\n  The direct capture of video images is supported via popular frame\n  grabber boards.  TCL-Image comes with the I-View utility that provides\n  conversion between common image file types, such as PICT2 and TIFF.\"\n\n  Perceptics 725 Pellissippi Parkway Knoxville, TN 37933 615-966-9200\n\nSatellite Image Workshop\n------------------------\n  It comes with a number of satellite pictures (raw data) and does all\n  sorts of image enhancing on it. You'll need at least a Mac II with co-\n  processor; a 256 color display and a large harddisk. The program doesn't\n  run under system 7.x.ATE1 V1\n\n  In the documentation the contact address is given as:  Liz Smith, Jet\n  Propulsion Laboratory, MS 300-323, 4800 Oak Grove Dr,.Pasadena, CA 91109\n  (818) 354-6980\n\nVisualization Workbench\n-----------------------\n  \"An electronic imaging software system that performs interactive image\n  analysis and scientific 2D and 3D plotting.\"\n\n  Paragon Imagine 171 Lincoln St. Lowell, MA 01852 508-441-2112\n\nAdobe Photoshop\n---------------\n\n  The tool supports Rtrue colorS with 24-bit images or 256 levels of grey\n  scale.  Once an image has been imported it can be Rre-touchedS with\n  various editing tools typical of those used in Macintosh-based RpaintS\n  applications.  These include an eraser, pencil, brush and air brush.\n  Advanced RpasteS tools that control the interaction between a pasted\n  selection and the receiving site have also been incorporated.  For\n  example, all red pixels in a selection can easily be preventing from\n  being pasted. Photoshop has transparencies ranging from 0 to 100%,\n  allowing you to create ghost overlays.  RPhoto-editingS tools include\n  control of the brightness and contrast, color balancing, hue/saturation\n  modification and spectrum equalization.  Images can be subjected to\n  various signal processing algorithms to smooth or sharpen the image,\n  blur edges, or locate edges.  Image scaling is also supported.\n\n  For storage savings, the images can be compressed using standard\n  algorithms, including externally supplied compression such as JPEG,\n  availlable from Storm Technologies. The latest version of Adobe\n  Photoshop supports the import of numerous image formats including: EPSF,\n  EPSF, TIFF, PICT resource, Amiga IFF/ILBM, CompuServe GIF, MacPaint,\n  PIXAR, PixelPaint, Scitex CT, TGA and ThunderScan..\n\n  Adobe Systems, Inc. 1585 Charlestown Road PO Box 7900 Mountain View, CA\n  94039-7900 415-961-4400\n\nColorStudio and ImageStudio\n---------------------------\n  ColorStudio is an image-editing and paint package from Letraset that has\n  more features than Adobe Photoshop but is decidedly more complex and\n  therefore more difficult to use.  Several steps are often required to\n  accomplish that which can be done in a single step using Photoshop.  The\n  application requires a great deal of available disk space as one can\n  easily end up with images in the 30 MB range.  The program provides a\n  variety of powerful selection tools including the \"auto selection tool\"\n  which lets the user choose image areas on the basis of color, close\n  hues, color range and mask.\n\nImageStudio: Don't know...\n\n  Letraset USA 40 Eisenhower Drive Paramus, NJ 07653 201-845-6100\n\nDapple Systems\n--------------\n  \"High resolution image analysis software provides processing tools to\n  work with multiple images, enhance and edit, and measure a variety of\n  global or feature parameters, and interpret the data.\"\n\n  Dapple Systems, 355 W. Olive Ave, #100 Sunnyvale, CA 94086 408-733-3283\n\nDigital Darkroom\n----------------\n  The latest release of Digital Darkroom has five new selection and\n  editing tools for enhancing images. One such feature allows the user to\n  select part of an image simply by \"painting\" it. A new polyline\n  selection tool creates a selection tool for single pixel wide\n  selections.  A brush lets the operator \"paint\" with a selected portion\n  of the image. Note that this is not a true color image enhancement tool.\n  This tool should be used when the user intends to operate in grey-scale\n  images only.  It should be noted that Digital Darkroom is not as\n  powerful as either Adobe Photoshop or ColorStudio.\n\n  Silicon Beach Software 9770 Carroll Ctr. Rd., Suite J San Diego, CA\n  92126 619-695-6956\n\nDimple\n------\n  It  is compatible with system 6.05 and system 7.0 , requires Mac LC or\n  II series with 256 colours, with a recommended min of 6Mb of ram. It has\n  the capability of reading Erdas files. Functions include; image\n  enhancement, 3D and contour plots, image statistics, supervised and\n  unsupervised classification, PCA and other image transformations. There\n  is also a means (Image Operation Language or IOL) by which you can write\n  your own transformations. There is no image rectification, however\n  Dimple is compatable with MAPII. The latest version is 1.4 and it is in\n  the beta stage of testing. Dimple was initially developed as a teaching\n  tool and it is very good for this purpose.\"\n\n  \"Dimple  runs on a colour Macintosh.  It is a product still in its\n  development phase.. i.e. it doesn't have all the inbuilt features of\n  other packages, but is coming along nicely.  It has its own inbuilt\n  language for writing \"programs\" for processing an image, defining\n  convolution filters etc. Dimple is a full mac application with pull down\n  menus etc... It is unprotected software.\"\n\n  Process Software Solutions, PO Box 2110, Wollongong, New South Wales,\n  Australia. 2500. Phone 61 42 261757  Fax 61 42 264190.\n\nEnhance\n-------\n  Enhance has a RrulerS tool that supports measurements and additionally\n  provides angle data. The tool has over 80 mathematical filter\n  variations: \"Laplacian, medium noise filter\", etc.  Files can be saved\n  as either TIFF, PICT, EPSF or text (however EPSF files can't be imported).\n\n  MicroFrontier 7650 Hickman Road Des Moines, IA  50322 515-270-8109\n\nImage Analyst\n-------------\n  An image processing product for users who need to extract quantitative\n  data from video images.  Image Analyst lets users configure\n  sophisticated image processing and measurement routines without the\n  necessity of knowing a programming language.  It is designed for such\n  tasks at computing number and size of cells in images projected by video\n  cameras attached to microscopes, or enhancing and measuring distances in\n  radiographs.\n\n  Image Analyst provides users with an array of field-proven video\n  analysis techniques that enable them to easily assemble a sequence of\n  instructions to enhance feature appearance; count objects; determine\n  density, shape, size, position, or movement; perform object feature\n  extraction; and conduct textural analysis automatically.  Image Analyst\n  works with either a framegrabber board and any standard video camera, or\n  a disk-stored image.\n\n  Within minutes, without the need for programming, the Image Analyst user\n  can set up a process to identify and analyze any element of a image.\n  Measurements and statistics can be automatically or semi-automatically\n  generated from TIFF or PICT files or from captured video tape images.\n  Image Analyst recognizes items in images based on their size, shape and\n  position.  The tool provides direct support for the Data Translation and\n  Scion frame grabbers. A menu command allows for image capture from a VCR\n  video camera or other NTSC or PAL devices.\n\n  There are 2 types of files, the image itself and the related Sequence\n  file that holds the processing, measurements and analysis that the user\n  defines.  Automated sequences are set up in Regions Of Interest (ROI)\n  represented by movable, sizable boxes atop the image.  Inside a ROI, the\n  program can find the distance between two edges, the area of a shape,\n  the thickness of a wall, etc.  Image Analyst finds the center, edge and\n  other positions automatically. The application also provides tools so\n  that the user can work interactively to find the edge of object. It also\n  supports histograms and a color look-up table (CLUT) tool.\n\n  Automatix, Inc. 775 Middlesex Turnpike Billerica, MA 01821 508-667-7900\n\nIPLab\n-----\n  Signal Analytics Corp. 374 Maple Ave. E Vienna, VA  22180 703-281-3277\n  FAX 703-281-2509\n\n  \"Menu-driven image processing software that supports 24-bit color or\n  pseudocolor/grayscale image display and manipulation.\"\n\nMAP II\n------\n  Among the Mac GIS systems, MAP II distributed by John Wiley has\n  integrated image analysis.\n\nIMAGE\n-----\n  from Stanford : Try anonymous ftp from sumex-aim.stanford.edu\n  It has pd source for image v2, and ready to run code for a mac under\n  image v3.\n\n\n\nWindows/DOS PC-based tools\n==========================\n\nCCD\n---\n  Richard Berry's CCD imaging book for Willamon-Bell contains (optional?)\n  disks with image manipulating software.  Source code is included.\n\nERDAS\n-----\n  \"ERDAS will do all of the things you want:  rectification,\n  classification, transformations (canned & user-defined), overlays,\n  filters, contrast enhancement, etc. ... I was using it on my thesis &\n  then changed the topic a bit & that work became secondary.\"\n\n  ERDAS, Inc. 2801 Buford Highway Suite 300 Atlanta, GA 30329 404-248-9000\n  FAX   404-248-9400\n\nRSVGA\n-----\n  \"I have been getting up to speed on a program called RSVGA available from\n  Eidetic Digital Image Ltd. in British Columbia.  Its for IBM PC's or\n  clones, cheap (about $400) and does all the stuff Erdas does but is not\n  as fast or as powerful, though I have had only limited experience with\n  Erdas.  I have used RSVGA with 6 of 7 Landsat bands and it is a good\n  starter program except for the obtuse manual\"\n\nIMAGINE-32\n----------\n  It's a 32 bit package [I suppose for PCs] called \"Imagine32\"\n  or \"Image32\" The program does a modest amount of image processing --add,\n  subtract, multiply, divide, display, and plot an x or y cut across the image.\n  It can also display a number of images simultaneously.\n  The company is CompuScope, in Santa Barbara, CA. \n\nPC Vista\n--------\n  It was announced in the 1989 August edition of PASP.  It is known to\n  be available from Mike Richmond, whose email addresses have been\n\n\trichmond@bllac.berkeley.edu\n\trichmond@bkyast.berkeley.edu\n\n  and his s-mail address is:\n\n  Michael Richmond,Astronomy Department, Campbell Hall, Berkeley, CA 94720\n\n  The latest version of PC-Vista, version 1.7, includes not only the source\n  code and help files, but also a complete set of executable programs and\n  a number of sample FITS images. If you do wish to use the source code,\n  you will need Microsoft C, version 5.0 or later; other compilers may work,\n  but will require substantial modifications.\n\n  To receive the documentation and nine double-density (360K) floppies\n  (or three quad-density 3-1/2 inch floppies (1.44M) with everything on them,\n  just send a request for PC-Vista, together with your name and a US-Mail\n  address, to \n\n\tOffice of Technology Licensing\n\t2150 Shattuck Ave., Suite 510\n\tBerkeley, Ca. 94704\n\n  Include a check (Traveller's Checks are fine) or purchase order for $150.00\n  in U.S. dollars, if your address is inside the continental U.S., or $165.00\n  otherwise, made out to Regents of the University of California\n  to cover duplication and mailing costs.\n\n\nSOFTWARE TOOLS\n--------------\n  It's a set of software \"tools\" put out by Canyon State\n  Systems and Software. They are not free, but rather cheap at about $30 I\n  heard. It will handle most all of the formats used by frame grabber\n  software. \n\nMIRAGE\n------\n  It's image processing software written by Jim Gunn at the\n  Astrophysics Dept at Princeton. It will run on a PC among other platforms.\n  It is a Forth based system - i.e. a Forth language with many image\n  processing displaying functions built in. \n\nDATA TRANSLATION SOURCE BOOK\n----------------------------\n  The Data Translation company in Massachusetts publishes a free book\n  containing vendors of data analysis hardware and software which is\n  compatible with Data Translation and other frame grabbers.\n  Surely you can find much more PC-related stuff in it.\n\nMAXEN386\n--------\n  A couple of Canadians have written a program named MAXEN386 which does\n  maximum entropy image deconvolution. Their company is named Digital\n  Signal Processing Software, or something like that, and the software is\n  mentioned in an article in Astronomy Magazine, either Jan or Feb 92\n  (an article on CCD's vs film). \n\nJANDEL SCIENTIFIC (JAVA)\n------------------------\n  Another software package (JAVA) is put out by Jandel Scientific. \n  Jandel Scientific, 65 Koch Road, Corte Madera, CA 94925, (415) 924-8640,\n  (800) 874-1888.\n\nMicrobrian\n----------\n  Runs on an MS dos platform and uses a 32 bit graphics card\n  (Vista), or an about to be released version will support a number of\n  super VGA cards.  Its a full blown remote sensed data processing\n  system.. It is menu driven (character based screen), but is does not use\n  a windowed user interface. Its is hardware protected with a dongle.\n  Mbrian = micro Barrier reef Image Anaysis System. It was developed by\n  CSIRO (Commonwealth Scientific & Industrial Organization) and is\n  marketed/ supported by:\n\n  MPA Australia (51 Lusher Road, Croydon, Victoria\n  tel + 61 3 724 4488     fax  +61 3 724 4455)\n\n  There are educational and commercial prices, but be prepared to set\n  aside $A10k for the first educational licence.  Subsequent ones come\n  cheaper (they need to!) It has installed sites worldwide.  It is widely\n  used at ANU.\n\nMicroImage\n----------\n  The remote sensing lab here at Dartmouth currently uses Terra-Mar's\n  MicroImage, on 486 PCs with some fancy display hardware.\n\n  Terra-Mar Resource Information Services, Inc.\n\n  1937 Landings Drive Mountain View, CA  94043 415-964-6900   FAX\n  415-964-5430\n\nUnix-based tools\n================\n\nIRAF (Image Reduction and Analysis Facility)\n--------------------------------------------\n  Developed in the National Optical Astronomy Observatory, Kitt Peak AZ\n  It is free, you can ftp it from tucana.noao.edu [140.252.1.1]\n  and complement it with STSDAS from stsci.edu [130.167.1.2].\n  Email to iraf@noao.edu for more details.\n  Apparently this is one of the _de facto_ standards in the astronomical\n  image community. They issue a newsletter also.\n  They seem to support very well their users. Works with VMS also last\n  I heard, and practically has its own shell on top of the VMS/Unix shells.\n\n  It's suggested that you get a copy of saoimage for display under X windows.\n  Very flexible/extendable  -- tons (literally 3 linear feet) of\n  documentation for the general user, skilled user, and programmer.\n\nALV\n---\n  A Sun-specific image toolkit.  Version 2.0.6 posted to\n  comp.sources.sun on 11dec89.  Also available via email to\n  alv-users-request@cs.bris.ac.uk.\n\nAIPS\n----\n  Astronomical Image Processing System.  Contact: aipsmail@nrao.edu\n  (also see the UseNet Newsgroups alt.sci.astro.aips and sci.astro.fits)\n  Built by NRAO (National Radio Astronomy Observatory, HQ in Charlottesville,\n  VA, sites in NM, AZ, WV).  Software distributed by 9-track, Exabyte, DAT,\n  or (non-anonymous) internet ftp.  Documentation (PostScript mostly)\n  available via anonymous ftp to baboon.cv.nrao.edu (192.33.115.103),\n  directory pub/aips and pub/aips/TEXT/PUBL.  Installation requires building\n  the system and thus a Fortran and C compiler.\n     This package can read and write FITS data (see sci.astro.fits), and is\n  primarily for reduction, analysis, and image enhancement of Radio Astronomy\n  data from radio telescopes, particularly the Very Large Array (VLA), a\n  synthesis instrument.  It consists of almost 300 programs that do everything\n  from copying data to sophisticated deconvolution, e.g. via maximum entropy.\n  There is an X11-based Image tool (XAS) and a tek-compatible xterm-based\n  graphics tool built into AIPS.  The XAS tool is modelled after the hardware\n  functionality of the International Imaging Systems model 70 display unit and\n  can do image arithmetic, etc.\n    The code is mostly Fortran 77 with some system C language modules, and is\n  available for Suns, IBM RS/6000, Dec/Ultrix, Convex, Cray (Unicos), and\n  Alliant with support planned for HP-9000/7xx, Solaris 2.1, and maybe SGI.\n     There is currently a project - \"AIPS++\" - underway to rewrite the\n  algorithmic functionality of AIPS in a modern setting, using C++ and an\n  object oriented approach.  Whereas AIPS is proprietary code (licensed for\n  free to non-profit institutions) owner by NRAO and the NSF, AIPS++ will be\n  in the public domain at some level, as it is an international effort with\n  contributions from the US, Canada, England, the Netherlands, India, and\n  Australia to name a few. \n\nLABOimage\n---------\n  (version 4.0 is out for X11) It's written in C, and currently\n  runs on Sun 3/xxx, Sun 4/xxx (OS3.5, 4.0 and 4.0.3) under SunView.\n  The expert system for image segmentation is written in Allegro Common Lisp.\n  It was used on the following domains: computer science (image analysis), \n  medicine, biology, physics. It is distributed free of charge (source code).\n  Available via anonymous FTP at ftp.ads.com (128.229.30.16), in\n  pub/VISION-LIST-ARCHIVE/SHAREWARE/LaboImage_*\n\n  Contact: Prof. Thierry Pun, Computer Vision Group Computing Science Center,\n  U-Geneva 12, rue du Lac, CH-1207 Geneva SWITZERLAND\n  Phone : +41(22) 787 65 82; fax: +41(22) 735 39 05\n  E-mail: pun@cui.unige.ch  or pun@cgeuge51.bitnet\n\n\nFigaro\n------\n  It was originally made for VMS, and can be obtained from\n  Keith Shortridge in Australia (ks@aaoepp.aao.gov.au)\n  and for Unix from Sam Southard at Caltech (sns@deimos.caltech.edu).\n  It's about 110Mbytes on a Sun.\n\nKHOROS\n------\n  Moved to the Scientific  Visualization category below\n\nVista\n-----\n  The \"real thing\" is available via anonymous ftp from lowell.edu. Email to\n  vista@lowell.edu for more details. Total size less than 20Mbytes.\n\nDISIMP\n------\n  (Device Independent Software for Image Processing) is a powerful\n  system providing both user friendliness and high functionality in\n  interactive times.\n\n  Feature Description\n\n  DISIMP incorporates a rich library of image processing utilities and\n  spatial data options. All functions can be easily accessed via the\n  DISIMP executive. This menu is modular in design and groups image\n  processes by their function. Such a logical structure means that\n  complicated processes are simply a progression through a series of\n  modules.\n\n  Processes include image rectification, classification (unsupervised and\n  supervised), intensity transformations, three dimensional display and\n  Principal Component Analysis. DISIMP also supports the more simple and\n  effective enhancement techniques of filtering, band subtraction and\n  ratioing.\n\n  Host Configuration Requirements\n\n  Running on UNIX workstations, DISIMP is capable of processing the more\n  computational intensive techniques in interactive processing times.\n  DISIMP is available in both Runtime and Programmer's environments. Using\n  the Programmers environment, utilities can be developed for specific\n  applications programs.\n\n  Graphics are governed by an icon-based Display Panel which allows quick\n  enhancments of a displayed image. Manipulations of Look Up Tables,\n  colour stretches, changes to histograms, zooming and panning can be\n  interactively driven through this control.\n\n  A range of geographic projections enables DISIMP to integrate data of\n  image, graphic and textual types. Images can be rectified by a number of\n  coordinate systems, providing the true geographic knowledge essential\n  for ground truthing. Overlays of grids, text and vector data can be\n  added to further enhance referenced imagery.\n\n  The system is a flexible package allowing users of various skill levels\n  to determine their own working environment, including the amount of help\n  required. DISIMP comes fully configured with no optional extras. The\n  purchase price includes all functionality required for professional\n  processing of remote sensed data.\n\n  For further information, please contact:\n\n  The Business Manager, CLOUGH Engineering Group Systems Division, 627\n  Chapel Street, South Yarra, Australia 3141. Telephone:  +61 3 825 5555\n  Fax:  +61 3 826 6463\n\nGlobal Imaging Software\n-----------------------\n  \"We use Global Imaging Software to process AVHRR data, from the dish to\n  the final display. Select a chunk of five band data from a pass,\n  automatic navigation, calibrate it to Albedo and Temp, convert that to\n  byte, register it to predesigned window, all relatively automatically\n  and carefree.\n\n  It has no classification routines to speak of, but it isn't that\n  difficult to write your own with their programmer's module.\n\n  Very small operation: one designs, one codes, one sells. Been around for\n  a number of years, sold to Weather Service and Navy.  Runs on HP9000\n  with HP-UX.  Supports 24-bit display\"\n\nHIPS\n----\n(Human   Information   Processing Laboratory's Image Processing System)\n\n  Michael Landy co-wrote and sell a general-purpose package for image\n  processing which has been used for basically all the usual image\n  processing applications (robotics, medical, satellite, engineering, oil\n  exploration, etc.).  It is called HIPS, and deals with sequences of\n  multiband images in the same way it deals with single images.  It has\n  been growing since we first wrote it, both by additions from us as well\n  as a huge user-contributed library.\n\n  Feature description\n\n  HIPS  is  a  set  of  image  processing  modules  which together provide\n  a  powerful  suite  of  tools  for  those interested in research,\n  system  development  and  teaching. It  handles  sequences  of  images\n  (movies)  in precisely the same manner as single frames.\n\n  Programs and subroutines have been developed  for simple image\n  transformations, filtering, convolution, Fourier and other transform\n  processing, edge detection  and line  drawing   manipulation, digital\n  image compression and transmission  methods, noise generation, and image\n  statistics computation. Over 150 such  image transformation programs\n  have been developed.  As a result, almost any image processing  task\n  can be performed quickly and conveniently. Additionally, HIPS allows\n  users to easily integrate  their  own custom  routines.   New users\n  become effective using HIPS on their first day.\n\n  HIPS features images that are  self-documenting.   Each image stored  in\n  the  system  contains  a  history  of the transformations that have been\n  applied to that image.   HIPS includes  a  small  set of subroutines\n  which primarily deals with a standardized  image sequence  header,  and\n  a  large library  of  image  transformation tools in the form of UNIX\n  ``filters''.  It comes complete with source  code,  on-line manual\n  pages, and on-line documentation.\n\n  Host Configuration Requirements\n\n  Originally  developed at  New  York  University,  HIPS  now represents\n  one of the most extensive and flexible vision and image  processing\n  environments currently available.  It runs under the UNIX operating\n  system.  It is modular  and  flexible, provides automatic documentation\n  of its actions, and is almost entirely independent of special equipment.\n  HIPS is now in use on a variety of computers including Vax and\n  Microvax, Sun, Apollo,  Masscomp,  NCR Tower, Iris, IBM AT, etc.\n  For image display and input, drivers are supplied for the Grinnell and\n  Adage (Ikonas) image processors, and the Sun-2, Sun-3, Sun- 4, and\n  Sun-386i consoles.  We also  supply  user-contributed drivers  for  a\n  number of  other framestores and windowing packages (Sun gfx, Sun\n  console, Matrox VIP-1024, ITI IP-512, Lexidata,  Macintosh II, X\n  windowing system, and Iris).  The Hipsaddon package includes an\n  interface  for the  CRS-4000. It  is  a  simple matter to interface HIPS\n  with other frame- stores, and we can put interested users in touch with\n  users who  have interfaced HIPS with the Arlunya and Datacube Max-\n  Video. HIPS can be easily adapted for other  image  display devices\n  because 98% of HIPS is machine independent.\n\n  Availability\n\n  HIPS has proven itself a highly flexible  system,  both as  an\n  interactive  research tool, and for more production- oriented tasks. It\n  is both easy to use, and quickly adapted and extended to new uses. HIPS\n  is supplied on magnetic tape in UNIX tar format (either reel- to-reel or\n  Sun  cartridge), and comes with source code, libraries, a library of\n  convolu- tion masks, and on-line documentation and manual pages.\n\n  Michael Landy SharpImage Software P.O. Box 373, Prince Street Station\n  New York, NY   10012-0007 Voice:  (212) 998-7857 Fax: (212) 995-4011\n  msl@cns.nyu.edu\n\n\nMIRA\n----\n[ Please DON'T confuse that with the Thalmanns animation system from\n  Montreal. These are altogether different beasts! - nfotis ]\n\n  MIRA stands for Microcomputer Image Reduction and Analysis.  MIRA gives\n  workstation level performance on 386/486 DOS computers using SVGA cards in\n  256 color modes up to 1024x768. MIRA contains a very handsome/functional\n  GUI which is mouse and keystroke operated. MIRA reads/writes TIFF and FITS\n  formats, native formats of a number of CCD cameras, and uncompressed binary\n  images in byte, short integer, and 4-byte real pixel format in 1- or 2-\n  dimensions. The result of an image processing operation can be short integer\n  or real pixels, or the same as that of the input image. MIRA does the\n  operation using short or floating point arithmetic to maintain the precision\n  and accuracy of the pixel format. Over 100 functions are hand-coded in\n  assembly language for maximum speed on the Intel hardware.  The entire\n  graphical interface is also written in assembly language to maximize\n  the speed of windowing operations.  Windows for 2-d image and 1-d image/data\n  display and analysis have dedicated cursors which read position and value\n  value in real time as you move the mouse.  There are also smooth, real time\n  contrast and brightness stretch and panning of a magnified portion of\n  the displayed image(s), all operated by the mouse. A wide selection of\n  grayscale, pseudocolor, and random palettes is provided, and other \n  palettes can be generated.\n\n\nSupported functions include such niceties as the following:\n\no  image & image: + - / * interpolation\no  image & constant: + - / *\no  unary operations: abs value, polynomial of pixel value, chs, 1/x, log,\n   byteswap, clip values at upper/lower limits, short->real or real->short.\no  combine images by mean, median, mode, or sum of pixel values, with or\n   without autoscaling to mean, median, or mode of an image section.\no  convolutions/filters: Laplacian, Sobel edge operator, directional gradient,\n   line, Gaussian, elliptical and rectangular equal weight filters, unsharp\n   masking, median filters, user defined filter kernel.  Ellipse, rectangle,\n   line, gradient, Gaussian, and user defined filters can be rotated to\n   any specified angle.\no  CCD data reduction: flat fielding, dark subtraction, column over/underscan\n   bias removal, remove bad pixels and column defects, normalize to\n   region target mean, median, or modal value.\no  create subimage, mosaic m x n 1-d or 2-d images to get larger image,\n   collapse 2-d image into 1-d image.\no  plot 1-d section or collapsed section of 2-d image, plot histogram of\n   region of an image.\no  review/change image information/header data, rename keywords, plot\n   keyword values for a set of images.\no  luminance/photometry: elliptical or circular aperture photometry,\n   brightness profile, isophotal photometry between set of upper & lower\n   luminances, area and luminance inside traced polygon. Interactive\n   background fitting and removal from part or all of image, fit elliptical\n   aperture shape to image isophotes. \no  interactive with 2-d image: contrast/brightness, x- y- or diagonal plot\n   of pixel values, distance between two points, compute region stats,`\n   centroid, pan to x,y location or image center, zoom 1/16 to 10 times,\n   change cursor to rectangle crosshair, full image crosshair, or off, and\n   adjust cursor size on image. Select linear, log or gamma transfer function\n   or histogram equalization.\no  interactive or specified image offset computation and re-sampling for\n   registration.\no  interactive with 1-d image: zoom in x- y- or both in steps of 1/2 or\n   2 times current, re-center plot, or enlarge a framed area. 4 plot buffers\n   can be cycled through. Interactive data analysis: polynomial fitting,\n   point deletion, undelete, change value, point weighting, linear and\n   quadratic loess and binomial smoothing, revert to unit point weights\n   or original data buffer, substitute results into data buffer for pass\n   back to calling function. Dump data buffer (+ overlays and error bars)\n   to file or printer.  Change to user specified coordinate system.\no  Tricolor image combination and display, hardcopy halftone printout to\n   HP-PCL compatible printers (Laserjet, deskjet, etc.)\no  Documentation is over 300 pages in custom vinyl binder.\n\n  Cost: 995 $USD/copy\n\n  Available from:\n\n  Axiom Research, Inc.\n  Box 44162\n  Tucson, AZ  85733\n  (602) 791-2864  phone/fax.\n\n  international marketing rep: Saguaro Scientific Corporation, Tucson, Arizona.\n\n==========================================================================\n\nEnd of Part 2 of the Resource Listing\n-- \nNick (Nikolaos) Fotis         National Technical Univ. of Athens, Greece\nHOME: 16 Esperidon St.,       InterNet : nfotis@theseas.ntua.gr\n      Halandri, GR - 152 32   UUCP:    mcsun!ariadne!theseas!nfotis\n      Athens, GREECE          FAX: (+30 1) 77 84 578\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6477, "properties": {"category": "sci.med", "text": "From: ray@engr.LaTech.edu (Bill Ray)\nSubject: Re: Acutane, Fibromyalgia Syndrome and CFS\nOrganization: Louisiana Tech University\nLines: 8\nNNTP-Posting-Host: ee02.engr.latech.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nDaniel Prince (Daniel.Prince@f129.n102.z1.calcom.socal.com) wrote:\n\n: ... I think they should rename Waco TX to Wacko TX!\n\nI know it is just a joke, but please remember: the people of Waco\ndid not ask David Koresh to be a lunatic there, he just happened.\nWaco is a lovely town.  I would think someone living in the home\nof flakes and nut would be more sensitive :-)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6478, "properties": {"category": "comp.windows.x", "text": "From: ksc@cbnewsk.cb.att.com (kenneth.s.cobler)\nSubject: XFree86 and Esix 4.0.4\nOrganization: AT&T\nDistribution: na\nKeywords: esix\nLines: 39\n\nHello Netlanders:\n\n       I am a novice X user with a question for any Xgod.\n\n       My computer configuration with the X problem is as follows:\n\n       486DX50/256/16RAM  running Esix 4.0.4 \n       Wangtek AT-style interface 250 M tape drive.\n       I have loaded the Basic OS (which includes nsu) and\n       inet utilities (tcp/ip).\n       I ftp-ed the XFree86 (X11R5) binaries and installed properly.\n \n I can execute startx and run X-windows with no problems.\n However, if I try to access the tape drive while in X, the\n machine locks up instantly.  If I am out of X and access the\n tape, the tape drive works fine.  Soon as I try to\n startx again; the screen changes modes, but, the grey background\n pattern does not come up and no xterm is forked.  I have to login\n from another terminal and execute a shutdown to reset the system.\n\n I've contacted Esix about this problem.  They claim THEIR X-window X11R4\n server (which I have) works with the Wangtek tape drive.  They also \n claim I only need the nsu (network system utilities) to run X; I don't\n need inet (tcp/ip).  My experience has been that I need BOTH to get\n XFree86 to work.  I'm not too concerned about having to load both nsu and inet\n packages to get X to work unless the inet package is causing my problem.\n\n I would like to get both X and my tape drive to co-exist on the same\n system.  If you can shed any light on the problem, it would be appreciated.\n \n One colleague implied this might be a hardware conflict.  If this is true,\n what direction should I look to resolve the conflict ?\n\n Thanks,\n \n Kenneth Cobler                ksc@ihlpv.att.com\n AT&T Bell Laboratories\n 263 Shuman Blvd.\n Naperville, IL  60566\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6479, "properties": {"category": "sci.crypt", "text": "From: koontzd@phobos.lrmsc.loral.com (David Koontz )\nSubject: Re: Will FEDs troll for mutilated law enforcement blocks?\nOrganization: Loral Rolm Mil-Spec Computers\nLines: 43\n\nThe M code stream  might be independently attacked based on knowledge of\nclipper chip protocols as revealed plaintext.  This could be invalidated\nby changing the temporal and or spatial relationship of the clipper M stream\nand the actual transmitted stream, under the control of a secure key\ngenerator synchronized between endpoints.\n\nThe useful life time of captured law enforcement blocks might be limited\nbased on hostile forces using them as targets following transmission\ninterception.  You would need a large number of them, but, hey there's\nsupposed to be millions of these things, right?  Adding time stamps to\nthe encrypted law enforcement block is probably impractical, who wants\nan encryption chip with a real time clock?\n\n*****************************************************************************\n\nThe entire idea of the law enforcement block can be invalidated.\n\nI just had the thought, that you could capture your own law enforcement blocks\nfor session keys K that you will not use in actual transmissions as\nthe session key authenticators.  The proviso that you don't mind your own\nserial number being discovered.\n\nd. denning just sent out further information of a new version of the clipper\nchip.\tIf a hash function were to be embedded in a clipper M transmission\nblock reflecting the law enforcement block, it better not fall on 64 bit block\nboundaries.  If it were a recognizeable datum, you could lie with it too.\n\nI like the randomizer inclusion in the MYK-80.  I remember reading that\nIntel had an approved random noise source on silicon, hence the ability\nto put it Inside.\n\nYou ever think that Mykotronx sounds like one of those made up names of \ncompanies used as fronts for intelligence organizations?\n\n\n\n\n\n\n\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6480, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: was:Go Hezbollah!!\nOrganization: Aiken Computation Lab, Harvard University\nLines: 33\n\nIn article <C5I7J7.F7A@eis.calstate.edu> mafifi@eis.calstate.edu (Marc A Afifi) writes:\n\n>resistance fighters. Don't forget that it was the French Resistance to the\n>Nazi occupying forces which eventually succeeded in driving out the\n>hostile occupiers in WWII.\n\n\tAnd all this time I thought it was the US & Britian invading\nNormandy, the constant, round the clock bombing, and the fact that the\nGermans were fighting on two fronts.  How silly of me.  :)\n\n\tThis is not to devalue the actions of the resistance\nmovements, but resistance movements did not defeat the Nazis.\n\n>Diplomacy has not worked with Israel and the\n>Lebanese people are tired of being occupied! They are now turning to the\n>only option they see as viable. (Don't forget that it worked in driving\n>out the US)\n\n\tIsrael has repeatedly stated that it will leave when the\nLebanese government shows that it can prevent attacks on Israel, and\nwhen the Syrians agree to leave.\n\n\tThe Lebanese have not tried diplomacy for very long, or maybe\nthey're not capable of getting rid of the Syrians and Iranians who\noccupy their land.  If they closed down the Hezbolah, and negotiated a\nwithdrawl of Syrian forces, Israel would be happy to leave.\n\nAdam\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6481, "properties": {"category": "comp.graphics", "text": "From: bates@spica.ucsb.edu (Andrew M. Bates)\nSubject: Renderman Shaders/Discussion?\nOrganization: University of California, Santa Barbara\nLines: 12\n\n\n    Does anyone know of a site where I could ftp some RenderMan shaders?\nOr of a newsgroup which has discussion or information about RenderMan?  I'm\nnew to the RenderMan (Mac) family, and I'd like to get as much info I can\nlay my hands on.  Thanks!\n\n        Andy Bates.\n\n\n---------------------------------------------------------------------------\nAndy Bates.\n---------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6482, "properties": {"category": "rec.autos", "text": "From: gwm@spl1.spl.loral.com (Gary W. Mahan)\nSubject: Re: It's a rush... (was Re: Too fast)       \nOrganization: Loral Software Productivity Laboratory\nLines: 12\n\n>Why should a good driver be terrified at 130mph? The only thing I fear\n>going at 130 are drivers, who switch to the left lane without using\n>either rear-view-mirror or flashers. Doing 130 to 150 ain't a rush\n>for me, but it's fun and I get where I want to go much faster.\n\nIn defense of the drivers, who are in the right lane.  Here in the states, people simply do not expect when they are driving to be overtaken at a speed differential of 50+mph.  I don't think this is because they are stupid (of course, there are exceptions), they are just programmed because of the 55mph limit. Do you (in the states) when you look in the rear-view ALWAYS calculate future  positions of cars based on a 50+ speed differential.  \n\nDont get me wrong, I love to drive in the left lane fast but when I overtake\ncars who are on the right, I slow down a tad bit. If I were to rely on the judgement of the other car, to recognize the speed differential, I would be the stupid one.  \n\nBTW, If no one else is around, then GO FOR IT!.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6483, "properties": {"category": "sci.med", "text": "From: Tammy.Vandenboom@launchpad.unc.edu (Tammy Vandenboom)\nSubject: sore spot on testicles\nNntp-Posting-Host: lambada.oit.unc.edu\nOrganization: University of North Carolina Extended Bulletin Board Service\nDistribution: na\nLines: 17\n\nMy husband woke up three days ago with a small sore spot\n(a spot about the size of a nickel) on one of his testicles. Bottom side,\nno knots or lumps, just a little sore spot.  He says it reminds him of \nhow a bruise feels.  He has no recollection of hitting it or anything like\nthat that would cause a bruise. (He asssures me he'd remember something\nlike that :-) \n\nAny clues as to what it might be?  He's somewhat of a hypochondriac (sp?)\nso he's sure he's gonna die. . .\n\nThanks!!\n\n--\n   The opinions expressed are not necessarily those of the University of\n     North Carolina at Chapel Hill, the Campus Office for Information\n        Technology, or the Experimental Bulletin Board Service.\n           internet:  laUNChpad.unc.edu or 152.2.22.80\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6484, "properties": {"category": "comp.windows.x", "text": "From: rcb5@wsinfo03.win.tue.nl (Richard Verhoeven)\nSubject: Re: Forcing a window manager to accept specific coordinates for a window\nOrganization: Eindhoven University of Technology, The Netherlands\nLines: 38\nDistribution: world\nNNTP-Posting-Host: wsinfo03.win.tue.nl\n\nbading@cs.tu-berlin.de (Tobias 'Doping' Bading) writes:\n> \n> try this after XCreateWindow:\n> -----------------------------\n> ...\n>\n>   xsizehints->flags = USPosition | USSize;\t/* or = PPosition | PSize */\n>   ...\n>   XSetWMNormalHints (display, window, xsizehints);\n>   ...\n>\n> These hints tell the window manager that the position and size of the window\n> are specified by the users and that the window manager should accept these\n> values. If you use xsizehints->flags = PPosition | PSize, this tells the window\n> manager that the values are prefered values of the program, not the user.\n> I don't know a window manager that doesn't place the window like you prefer\n> if you specify the position and size like above.\n\nSorry, but olwm and tvtwm don't do it. They place the title at that position\nand the window at a position below it.\n\nThis becomes a problem when you want a program to be able to save its current\nconfiguration and restore is later.\n\nCurrently, my solution is:\n\n\tXCreateWindow(...);\n\tXSetWMProperties(..);\n\tXMapWindow(...);\n\tXFlush(...);\n\tXMoveWindow(...);\n\n\nIt works with olwm, but is less than elegant. All this leaves me wondering\nif I'm overlooking something obvious.\n\nRichard.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6485, "properties": {"category": "rec.autos", "text": "From: dspalme@mke.ab.com (Diane Palme x2617)\nSubject: Re: wife wants convertible\nOrganization: Allen-Bradley Co.\nLines: 24\nNNTP-Posting-Host: tinman.mke.ab.com\nX-Newsreader: Tin 1.1 PL4\n\n: nuet_ke@pts.mot.com (KEITH NUETZMAN X3153 P7625) writes:\n: \n: > \n: > HELP!!!\n: > my wife has informed me that she wants a convertible for her next car.\n: \njp@vllyoak.resun.com (Jeff Perry) writes:\n:\n: FYI, just last week the PBS show Motor Week gave the results of what they \n: thought were the best cars for '93.  In the convertible category, the \n: Honda Civic del Sol achieved this honor.  \n:  \n: The one down-side I see with the car is its interior, it looks \n: inexpensive and dull.\n: \nI own a del Sol and I must vouch for the interior.  I really looks snazzy when\nthe top is off.  I looks a lot better in person than on the television.  (I saw\nthat Motorweek as well.  Needless to say I was smiling a bit by the time it\nwas over ...)  :*)\n\nWatch out for that darned \"convertible tan\" tho...\n\nDiane\ndspalme@mke.ab.comm\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6486, "properties": {"category": "comp.graphics", "text": "From: markl@hunan.rastek.com (Mark Larsen)\nSubject: Re: Ray tracer for ms-dos?\nOrganization: Rastek Corporation, Huntsville, AL\nLines: 32\n\nIn article <1r1cqiINNje8@srvr1.engin.umich.edu> tdawson@llullaillaco.engin.umich.edu (Chris Herringshaw) writes:\n>\n>Sorry for the repeat of this request, but does anyone know of a good\n>free/shareware program with which I can create ray-traces and save\n>them as bit-mapped files?  (Of course if there is such a thing =)\n>\n>Thanks in advance\n>\n>Daemon\n\nThere are 2 books published by M&T BOOKS that come with C source code on\nfloppies.  They are:\n\nProgramming In 3 Dimensions, 3-D Graphics, Ray Traycing, and Animation\nby: Christopher D. Watkins and Larry Sharp.\n\nPhotorealism and Ray Tracing in C\nby: Christopher D. Watkins, Stephen B. Coy, and Mark Finlay.\n\nI have the first book and it is a great intro to 3-D, Ray Tracing and\nAnimation.  Most of the programs are on the disk compiled and ready to run.\n\nI have only glanced at the second book but it also appears to be good.\n\nHope this helps!\nMark Larsen\n\n---------------------------------------------------------------------------\nmarkl@hunan.rastek.com\n\n\"This R2 unit has a bad motivator!\"\n   - Luke, Star Wars\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6487, "properties": {"category": "comp.sys.mac.hardware", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Please help find video hardware\nArticle-I.D.: fmsrl7.1pqf9oINN88e\nOrganization: Ford Motor Company Research Laboratory\nLines: 19\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\n[ Article crossposted from comp.sys.hp ]\n[ Author was Gordon Lang ]\n[ Posted on 5 Apr 1993 23:25:27 GMT ]\n\n[ Article crossposted from comp.sys.ibm.pc.hardware ]\n[ Author was Gordon Lang ]\n[ Posted on 5 Apr 1993 23:19:01 GMT ]\n\nI need a device (either an ISA board or a subsystem) which will\ntake two RGB video signals and combine them according to a template.\nThe template can be as simple as a rectangular window with signal\none being used for the interior and signal two for the exterior.\nBut I beleive fancier harware may also exist which I do not want\nto exclude from my search.  I know this sort of hardware exists\nfor NTSC, etc. but I need it for RGB.\n\nPlease email and or post any leads....\n\nGordon Lang (glang@smail.srl.ford.com  -or-  glang@holo6.srl.ford.com)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6488, "properties": {"category": "comp.sys.mac.hardware", "text": "From: narlochn@kirk.msoe.edu\nSubject: More General Questions...\nDistribution: usa\nOrganization: Milwaukee School Of Engineering, Milwaukee, WI USA\nLines: 8\n\nI have two questions:\n\n1) What would be required to create a Macintosh PC network\n   including laser printers, line printers, etc.?\n\n2) What would be bare minimum to create a network for\nthe primary purpose of networking a laser printer by \napprox. 3 mac's?\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6489, "properties": {"category": "rec.autos", "text": "From: bell@plains.NoDak.edu (Robert Bell)\nSubject: Re: Info/Opinions Wanted on Cars In this Article\nDistribution: na\nNntp-Posting-Host: plains.nodak.edu\nOrganization: North Dakota Higher Education Computing Network\nLines: 45\n\nIn article <1993Apr13.182100.26650@magnus.acs.ohio-state.edu> jnielsen@magnus.acs.ohio-state.edu (John F Nielsen) writes:\n>In article <49071@fibercom.COM> rrg@rtp.fibercom.com (Rhonda Gaines) writes:\n>>\n>>I'm in the market for a new car.  Currently I own a '90 Mazda MX-6 DX\n>>which has served me just fine.  However, I'd like to get\n>>a 4-door car since I don't relish the thought of moving a carseat\n>>around in a 2-door car.  My criteria are: 4-door, a/c, am/fm cassette,\n>>quick acceleration, cruise control, decent rear seat legroom (my\n>>husband is a 6-footer).  It must also be under $20k\n>>preferably closer to the 11-15k range (which will probably rule out\n>>the Accord).  The '93 cars that have caught my eye are: Toyota Corolla, \n>>Toyata Camry, Mazda 626, Pontiac Grand Am, Pontiac Grand Prix, \n>>Honda Accord, (and Civic if it's roomy enough and still comes in a \n>>4-door model), Hyundai Sonata, and maybe even a small Oldsmobile, \n>>although not the Achieva.  All opinions, benchmarks,\n>>recommendations, etc. are welcome.\n>\n>I really wouldn't consider the Grand Am/Achevia/Skylark (all the same)\n>since they are very bad in frontal collsions and don't have any\n>other really outstanding qualities.\n>\n>john\n>-- \n\nI really must object to that last statement.  Having a lot of experience\nwith a '92 Grand Am coupe, I can firmly state that they do have a lot of\noutstanding qualities.  Very reliable throughout.  Great layout of controls\nand components.  Very roomy considering the exterior size of the car.  They \nlook sharp inside and out.  The V6 that I drive has exceptional power and \ndrivability compared to other similar cars that I have driven.\n\nAll in all, it's a fun-to-drive, dependable, and reasonably priced vehicle.\nPlease don't knock it with a statement like that unless you back it up with\nspecific reasons why you feel that way.\n\nRob\nbell@plains.nodak.edu\n\n\n>John Nielsen   MAGNUS Consultant            ______   ______   __  __\t\n>\"To you Baldrick, the Renaissance was just /\\  __ \\ /\\  ___\\ /\\ \\/\\ \\\n>something that happened to other people,   \\ \\ \\/\\ \\\\ \\___  \\\\ \\ \\_\\ \\\n>wasn't it?\" - The Black Adder               \\ \\_____\\\\/\\_____\\\\ \\_____\\\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6490, "properties": {"category": "talk.politics.misc", "text": "From: kaldis@romulus.rutgers.edu (Theodore A. Kaldis)\nSubject: Pat Robertson says ...\nKeywords: Homosexuality\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 25\n\n\n[In response to a report by CBN News correspondent Ken Lormond about a\nmeeting between Slick Willie and homosexual activists:]\n\nLormond: \"But Clinton will not be attending a rally by homosexuals in\nWashington later this month.  He will instead be out of town, on a\nretreat with Senate Democrats.\"\n\nRobertson: \"Yeah, he'd better retreat.\"  [Laughter, followed by\nsustained applause]\n\n[Later, in a report by correspondent Deborah Whitsen on the fizzling\nboycott instigated by homosexuals against Colorado:]\n\nWhitsen: \"Colorado ski resorts have seen record crowds this year\ndespite a call by homosexual activists for boycott of the state ...\nThere have been record snowfalls in the mountains this year, and the\nskiers have been coming in droves ...\"\n\nRobertson: \"And God said, let it snow ...\"  [More sustained applause]\n-- \n  The views expressed herein are   |  Theodore A. Kaldis\n  my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n  believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n  as this would hold such views??? |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6491, "properties": {"category": "rec.sport.baseball", "text": "From: cwamsley@magnus.acs.ohio-state.edu (Christopher Wamsley)\nSubject: Re: New Uniforms\nArticle-I.D.: magnus.1993Apr6.121706.8533\nOrganization: The Ohio State University\nLines: 19\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\n\nIn article <C51vwC.Lru@usenet.ucs.indiana.edu> bodom@silver.ucs.indiana.edu (Br\nian Odom) writes:\n>As far as I know, Toronto, Pittsburgh, and New York (NL) change their\n>uniforms every year.  Every other year (e.g., New York), it will say Mets\n>in cursive, New York in cursive, or New York in all caps.  Minor changes,\n>but they do change them often.  Last year, I think they had New York in all\n>caps.  Did Toronto have Blue Jays or Toronto last year?  What about\n>Pittsburgh?\n\n\n     It depends on which uniforms you are talking about.  For the last\ncouple of years I believe Toronto and Pittsburgh has used the same uniforms,\nor at least very similar.  The home jerseys had the team nick name\n(Blue Jays or Pirates), but the road jerseys had the name of the city\n(Toronto or Pittsburgh).  I believe this is the way most teams design\ntheir uniforms.\n\n\n  -- Chris\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6492, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pallis@server.uwindsor.ca (PALLIS  DIMITRIOS        )\nSubject: Re: Shopping for a new [NEC?] monitor\nLines: 9\n\nwell people, I can only recomend the non-flat-screen, no-hype, \nno-nonsense NEC 3DS that I have, and PLUS, it has the ADVANTAGE of\nNOT having one of those new flat screen tubes which are oversensitive\nand fragile and break often!\nthis is a 15'' heavy-duty rugged set for those who insist on well-proven\nreliable technologies!\n\njim\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6493, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dil.admin@mhs.unc.edu (Dave Laudicina)\nSubject: Re: RE: Win NT - what is it???\nNntp-Posting-Host: dil.adp.unc.edu\nOrganization: UNC Office of Information Technology\nLines: 20\n\n>\n>I have little info on Chicago so I cant make a comparison.  Is it in Beta?  Is\n>there anyone out there who has tested both and cares to make a comparison?\n>Just my $0.02  \n>\n>/ALN\nChicago from what I have read is projected to run in 4M on 386 and higher.\nIt is definitely aimed at the desktop. \nIt  is rumored to offer preemptive multitasking,\nmultithreading but will not offer multiprocessing. Is 32 bit and no reliance\non DOS. It is rumored to have an integrated file and program manager. \nDOS 7 is rumored to be similar to Chicago but without the GUI. Is also\na step towards CAIRO (the next generation OS) which is rumored to be \nobject oriented.\nI wonder where Windows 4.0 fits here is it a stepping stone to Chicago?\nHope this helps.\nThx Dave L\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6494, "properties": {"category": "misc.forsale", "text": "From: susan@wuee1.wustl.edu (Susan Castleman)\nSubject: TEst\nNntp-Posting-Host: wuee1\nOrganization: Washington University, St. Louis MO\nDistribution: stl\nLines: 1\n\nThis is a test. Thanks.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6495, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dashley@wyvern.wyvern.com (Doug Ashley)\nSubject: Re: LCIII problems\nOrganization: wyvern.com\nLines: 25\n\nRavi Konchigeri <mongoose@leland.stanford.edu> writes:\n\n>About hard drive companies: the original 160 meg drive that was bad (bad\n>sector or something) was an IBM.  The new one is a Quantum.  Is the LCIII\n>supposed to be shipped with IBMs?  Is there a quality difference? \n\nOfficially, no. From experience (yours now included!), yes. Quantums seem to\nbe the most problem-free brand on the Mac.\n\n>Second, about hard drive position.  I've put the LCIII on its side and\n>the new 160 HD has had no problems at all.  I've even switched back and\n>forth between horizontal and vertical and there are no problems.  As far\n>as I'm concerned I don't believe HD position is important for drives up\n>to 160 meg, in any computer.  Don't know about CD-ROM, though.\n\nIt should not matter for the hard drive or the Mac.  Well, as long as it\ndoesn't fall over.   ;)\n\n\nDoug\n-- \nThis Signature Under Construction\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nWyvern Technologies | Tidewater's Premier Online Information System\n                    | (804) 627-1818, login guest, password guest to register\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6496, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: ClariNet Communications Corp.\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nLines: 24\n\nOne presumes the system could work as follows:\n\na) Blank clips are manufactured by Mykotronx and VLSI.  The number\nproduced is carefully audited and they are shipped to the first\nescrow house.\n\nIt programs the chips with its half the key, and prints out a paper slip\nwith the key half and non-secret chip serial number.   The reams of paper\nare filed in locked boxes in the vault, a fuse is burnt in the chip so\nthat the key is now unreadable.\n\nThe chip then goes to the next escrow house, where the same thing is\ndone.  This continues through N escrow houses, perhaps, could be more than\n2.\n\nThe last one provides the chip to the cellular phone maker.\n\nAnd yes, this has to be a public key system or it would be almost\nimpossible to handle.  It might not be RSA, but that does not mean\nthat PKP doesn't get paid.  Until 1997, PKP has the patent on the\ngeneral concept of public key encryption, as well as the particular\nimplementation known as RSA.\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6497, "properties": {"category": "rec.sport.hockey", "text": "From: khettry@r1w2.pub.utk.edu (23064RFL)\nSubject: Testing!!!\nOrganization: University of Tennessee Computing Center\n\tJust Testing!!\nDistribution: usa\nLines: 1\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6498, "properties": {"category": "rec.sport.baseball", "text": "From: king@cogsci.ucsd.edu (Jonathan King)\nSubject: Re: Binaca Blast Deep Drive Derby (BBDDD) Returns\nArticle-I.D.: network.1psmbr$qi\nDistribution: na\nOrganization: University of California, San Diego\nLines: 40\nNNTP-Posting-Host: cogsci.ucsd.edu\n\nThe Engimatic Vincent Gray writes:\n>king@cogsci.ucsd.edu (Jonathan King) writes:\n>> \n>> Even less publicized than this, however, was that the $300,000\n>> didn't come from the Padres, but from an un-named source, and that the\n>> money didn't go to the Blue Jays.  In Toronto, the money was diverted\n>> into a London bank account owned by a shadowy character named Vincent\n>> Gray.\n>\n>I should be so lucky: the account number must have been rejected! :-)\n\nOh, come on.  Everybody on the net has heard about \"plausible deniability\".\nYou're not fooling anybody.\n\n>> Soon after that, Gray and Palmer sent word to Ottawa that Canada had\n>> achieved absolute superiority over the United States in the field of\n>> baseballistic research, as she controlled both the Acker-Cook\n>> Pitch-Alike Contest and the Binaca Blast Research Institute.  The Prime\n>> Minister smiled.\n>\n>I hope not.  To think that I would inadvertantly give any pleasure to\n>Mulroney _really_ ruins my day.  \n\nNote how quick Vince was to make the inference that my post claimed\nthat Mulroney was smiling at the baseballistics news.  This sure looks\nlike guilty knowledge to me...\n\n>Realizing the taterific importance of this work, John Palmer and I\n>concluded that we might be able to pool some resources. \n                                    ^^^^ ^^^^ ^^^^^^^^^\nI.e., the $300 grand.\n\n>Who will be the stars this year? Can anyone hope to combat Brad\n>Arnsberg's record start to last year?\n\nThe early money has to be on \"Tom Tom\" Bolton, who contributed that\nclutch grandslam in his first appearance.  But I expect lots of\nstrong contenders this year, many of them right here in San Diego.\n\njking\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.306+0000", "event": "documents", "entityId": 6499, "properties": {"category": "rec.motorcycles", "text": "From: txd@ESD.3Com.COM (Tom Dietrich)\nSubject: Re: Ducati 400 opinions wanted\nLines: 51\nNntp-Posting-Host: able.mkt.3com.com\n\nfrankb@sad.hp.com (Frank Ball) writes:\n\n>Godfrey DiGiorgi (ramarren@apple.com) wrote:\n>& \n>& The Ducati 400 model is essentially a reduced displacement 750, which\n>& means it weighs the same and is the same size as the 750 with far less\n>& power. It is produced specifically to meet a vehicle tax restriction\n>& in certain markets which makes it commercially viable. It's not sold\n>& in the US where it is unneeded and unwanted.\n>& \n>& As such, it's somewhat large and overweight for its motor. It will \n>& still handle magnificently, it just won't be very fast. There are\n>& very few other flaws to mention; the limited steering lock is the \n>& annoyance noted by most testers. And the mirrors aren't perfect.\n\n>The Ducati 750 model is essentially a reduced displacement 900, which\n>means it weighs the same and is the same size as the 900 with far less\n\nNope, it's 24 lbs. lightrer than the 900.\n\n>power.  And less brakes.\n\nA single disk that is quite impressive. WIth two fingers on the lever,\nmuch to Beth's horror I lifted the rear wheel about 8\" in a fine Randy\nMamola impression. ;{>\n\n>As such, it's somewhat large and overweight for its motor. It will \n>still handle magnificently, it just won't be very fast. There are\n\nI have a feeling that it's going to be fast enough that Beth will give\na few liter bike riders fits in the future.\n\n>very few other flaws to mention; the limited steering lock is the \n\nThe steering locks are adjustable.\n\n>annoyance noted by most testers. And the mirrors aren't perfect.\n\nBeth sees fine out of them... I see 2/3 of them filled with black\nleather.\n\n*********************************************************************\n'86 Concours.....Sophisticated Lady            Tom Dietrich             \n'72 1000cc Sportster.....'Ol Sport-For sale      DoD # 055\n'79 SR500.....Spike, the Garage Rat             AMA #524245\nQueued for an M900!!                           FSSNOC #1843\nTwo Jousts and a Gather, *BIG fun!*            1KSPT=17.28%                     \nMa Bell (408) 764-5874               Cool as a rule, but sometimes...\ne-mail txd@Able.MKT.3Com.COM                     (H. Lewis)          \nDisclaimer: 3Com takes no responsibility for opinions preceding this.\n*********************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6500, "properties": {"category": "sci.med", "text": "From: tomca@microsoft.com (Tom B. Carey)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: Microsoft Corporation\nLines: 31\n\nsasghm@theseus.unx.sas.com (Gary Merrill) writes:\n>\n>ted@marvin.dgbt.doc.ca (Ted Grusec) writes:\n>|> Gary: By \"extra-scientific\" I did not mean to imply that hypothesis\n>|> generation was not, in most cases extremely closely tied to the\n>|> state of knowledge within a scientific area.  I meant was that there\n>|> was no \"scientific logic\" involved in the process.  It is inductive,\n>|> not deductive.  \n>\n>I am further puzzled by the proposed distinction between \"scientific\n>logic\" and \"inductive logic\".  At this point I don't have a clue\n>what you mean by \"extra-scientific\" -- unless you mean that at *some*\n>times someone seems to come up with an idea that we can't trace to\n>prior theories, concepts, knowledge, etc.  This is a fairly common\n>observation, but just for grins I'd like to see some genuine examples.\n\nOK, just for grins:\n- Kekule hypothesized a resonant structure for the aromatic benzene\nring after waking from a dream in which a snake was swallowing his tail.\n- Archimedes formalized the principle of buoyancy while meditating in\nhis bath.\n\nIn neither case was there \"no connection to prior theories, concepts, etc.\"\nas you stipulated above. What there was was an intuitive leap beyond\nthe current way of thinking, to develop ideas which subsequently proved\nto have predictive power (e.g., they stood the test of experimental\nverification).\n\npardon my kibbutzing...\n\nTom\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6501, "properties": {"category": "comp.os.ms-windows.misc", "text": "Organization: University of Central Florida - Computer Services\nFrom: Mark Woodruff <CDA90038@UCF1VM.BITNET>\nSubject: Bigger window headings\nLines: 8\n\nDoes anyone know of bigger raster fonts?  I'm using a Mag 15H monitor with\na Diamond SS24X in 1280x1024 mode and would prefer to have larger characters\nfor the windows heading (practically for everything).  I'm already using the\n8514 character sets.\n\nmark\n\nAny idea of the difference between the 15H and the 15F?\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6502, "properties": {"category": "sci.crypt", "text": "From: george@tessi.com (George Mitchell)\nSubject: Re: Organized Lobbying for Cryptography\nOrganization: Test Systems Strategies, Inc., Beaverton, Oregon\nLines: 25\n\nlangford@gems.vcu.edu writes:\n\n>In article <1993Apr20.213718.23129@husc3.harvard.edu>, kubo@zariski.harvard.edu (Tal Kubo) writes:\n>> Having mentioned the possible dangers of unwelcome political associations,\n>> I would be remiss not to suggest something in the opposite direction:\n>> gathering the support of the NRA by emphasizing the RKBA side of the\n>> issue as well as the First-Amendment side.\n\n>Hmmm, this gave me an interesting idea.  How about this argument:\n>1)  Second Amendment gives us the right to keep and bear arms.\n>2)  Strong cryptography is \"arms\", according to the U.S. government (that's\n>    why it's so hard to export).\n>Therefore, we have a constituitional right to strong cryptography!  \n>Q.E.D.\n\n>[. . .]  Maybe the NRA _would_ be the best existing organization?\n\nI think a new organization would be a much better idea, as the NRA\ncarries as much undesireable baggage for me as the EFF and CPSR do\nfor others.\n\nAre any hot-shot, reputable organizers reading this message?  If an\neffective group comes into existence, it can count on me signing up.\n\n-- George Mitchell (george@tessi.com)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6503, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: Clipper considered harmful\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 42\nDistribution: inet\nNNTP-Posting-Host: access.digex.net\n\n > > Criminals who very badly want inscrutable tactical communications\n > >(specifically the terrorists and drug dealers who proponents of key escrow\n > >cite as threats) will be highly motivated to steal the cipher phone of\n > >a legitimate user, and to kill this person or hold them hostage so\n > >discovery of compromise of the device will be delayed.\n\n >Why doing it in such a rough manner? It is much more professional to\n >steal the chip from the phone and even to replace it with a\n >pin-compatible do-nothing chip that does not encrypt at all. Chances\n >are that the victim will not notice anything, especially if it is done\n >professionally.\n\n  Assuming that the bad guys can easily obtain substitute chips which don't\ncause any noticeable effect to either the user or the person at the other end\nof the line (if there is any significant difficulty to obtaining such chips,\nsome of the criminals will decide to fall back on the murder/kidnap method).\n\n > > Once a suitable collection of devices is stolen, criminals can communicate\n > >with impunity (assuming the cipher system carries no trapdoors apart from\n > >key escrow) until and unless the compromise is discovered by some other\n > >means.\n\n > No, because the Feds will still be able to decrypt the conversations.\n >True, they'll blame the wrong guys, but nevertheless one cannot say\n >something like \"The drugs arrive tommorrow on the ship 'Terminus'\"\n >when the Feds are listening, even if they cannot identify who the\n >speaker is.\n\n This assumes that the Feds are tapping Clipper phones belonging to ordinary\ncitizens (getting such a phone is the whole point of the crime under\ndiscussion).  To be sure, I wouldn't put it past them -- but raising the\npossibility of such crime has the benefit of forcing the Feds to either\n'fess up about such intentions in advance or state that using Clipper\nexposes the user to an additional criminal threat. <g>\n\n > No, the criminals will just use some secure encryption. The new\n >proposal does not stop criminals; it ensures that the government will\n >be able to wiretap the average citizen and stops the casual snooper.\n >To me, it also clearly looks as a step towards outlawing any other\n >strong encryption devices.\n\n  Agreed.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6504, "properties": {"category": "rec.sport.baseball", "text": "From: kingoz@camelot.bradley.edu (Orin Roth)\nSubject: Re: PHILS, NL EAST NOT SO WEAK\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Bradley University\nLines: 34\n\nIn <1993Apr15.214133.3371@guvax.acc.georgetown.edu> apanjabi@guvax.acc.georgetown.edu writes:\n\n>I Love it how all of these people are \"blaming\" the Phillies success \n>on a weak division.  Why don't we look at the record of the teams in \n>each division (READ: Inter-Divisional Play), we'll see that the East \n>is really kicking the shit out of the West.  I know it is early, but \n>that is all we have to go on.  Atlanta is just so strong with their \n>.188 BA, Cincinnati is 2-7 coming off a sweep at Veteran's Stadium in \n>Philadelphia, and Houston was swept in it's first three games by the \n>Phillies in the Astrodome.  That, my Western Division friends, shows \n>that the three best teams in your division may not be as strong as you \n>think!!\n \n  Or you may be posting this WAY TOO EARLY and be eating your words by\n  mid-season. C'mon, the Phillies haven't proved anything yet. Atlanta\n  was similar to the Phils 2 years ago. They sucked. They started having\n  a good year, but didn't get any respect until they actually won the\n  division. (which is how it should be) So until the Phils AT LEAST   \n  have a good year, not just a good 2 weeks, they won't get any respect\n  either. BTW, Atlanta's .188 BA is actually a compliment to how good\n  the Braves really are. Their record is 6-3. Can you imagine the Phils\n  record if they were batting .188? hahahaha. And Atlanta's hitting will\n  improve dramatically.  \n  No, I'm not a Braves fan. Just defending a good team. \n  Orin.\n  Bradley U.\n\n>PHILS ALL THE WAY IN '93\n>BRAVES HIT LIKE A AAA CLUB\n>REDS NEED MARGE\n\n>\t\t\t\t\t\t-BOB\n--\nI'm really a jester in disguise!                                   \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6505, "properties": {"category": "comp.windows.x", "text": "From: dscheck@nextsrv1.andi.org (David Scheck)\nSubject: imake on DOS and Windows\nSummary: porting imake to DOS\nKeywords: imake\nOrganization: Association of NeXTSTEP Developers International\nLines: 6\n\n\nHas anyone had experience porting imake to DOS using a Microsoft, Watcom, or\nany other DOS compiler? \n\nSince I do not have easy access to News, a response to\n'white_billy@po.gis.prc.com' would be appreciated.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6506, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 66\n\nBrian Kendig writes:\n\n>  Lev 17:11: For the life of the flesh is in the blood, and I have given\n>  it to you upon the altar to make atonement for your souls; for it is\n>  the blood that makes atonement for the soul.\n>\n>The Old Testament was very big on the \"eye for an eye\" business.  It\n>makes sense that Leviticus would support physical injury to \"repay\"\n>moral wrongdoing.\n\nBrian K., guess what?  You missed the point.  On a scale from cold to\nhot, you are at 0 degrees Kelvin.\n\n>I know about sanctification.  I've been taught all about it in Sunday\n>school, catechism class, and theology classes.  But even after all\n>that, I still can't accept it.  Maybe I'm still not understanding it,\n>or maybe I'm just understanding it all too well.\n\nThen as you understand it, what is it?\n\n>From the bottom of my heart I know that the punishment of an innocent\n>man is wrong.\n\nYes.  I agree with that.  But what does that have to do with Jesus?\nPunishment you say?  Jesus did not regard his death as punishment. \n\n>I've tried repeatedly over the course of several years\n>to accept it, but I just can't. \n\nGood.  I wouldn't either--not the way you understand it.  \n\n>If you can explain to me why the death of Jesus was a *good* thing,\n>then I would be very glad to hear it, and you might even convert me.\n>Be warned, however, that I've heard all the most common arguments\n>before, and they just don't convince me.\n\nAsk Jesus himself.  He himself said why in John 12:23-32.  It\nisn't a mystery to anyone and there certainly is no need for\na persuasive argument.   Read Jesus's own reply to your\nquestion.\n\nJesus gives more reasons in John 16:7.  But one obvious reason\nwhy Jesus died, (and as with everything else, it has nothing do with\nhis punishment) was that he could rise to life again--so that\nwe would \"stop doubting and believe\" (John 21:27).  The fact\nthat Jesus rose from the dead is my hope that I too will rise\nfrom the dead.  It is an obvious point.  Do not overlook it.\nWithout this obvious point, I would have no hope\nand my faith would be vanity.\n\nWhy did Jesus suffer in his death?  Again, ask Jesus.  Jesus\nsays why in John 15:18-25.   That's no mystery either.  \"The\nworld hates him without reason.\"  It is a direct proclamation\nof how far we humans botch things up and thus, how much we\nneed a Saviour.\n\nAnd why can't you, Brian K., accept this?  How can you?  \"The\nworld cannot accept him because it neither sees him nor knows\nhim.\"  (John 14:17).   The animosity and the lack of knowledge\nthat comes out in your twistings of Robert's daily verses is\nvery convincing testimony of the truth of John 14:17 and 16:25.\nI pray and hope that I do blurt out such animosity and lack of\nknowledge. I am not perfect either.  But regardless of that, I thank\nGod that Jesus revealed himself to me, without whom I'd also be\nbumbling about blindly though arrogantly slandering the very\nPerson who created me and who loves me.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6507, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rmehta@paul.rutgers.edu (Rahul Mehta)\nSubject: Info on Books on BIOS, 286 etc.\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 18\n\n\n\nHi Everybody,\n\n      I am interested in the following topics.\n\n1)BIOS programming on 286 and 386.\n2)Memory management in 286 and 386.\n3)Developing Visual Basic Custom Controls.\n\n     I would like to have your valuable opinion on the books\nthat are best in the above topics.  Please send a mail to\nrmehta@paul.rutgers.edu . I will post a summary of the \nsuggestions.\n\n  2**32-1  thanks in advance.\n\n-Rahul Mehta\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6508, "properties": {"category": "talk.politics.misc", "text": "From: elf@halcyon.com (Elf Sternberg)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: Pendor, UnLtd.\nLines: 35\nDistribution: world\nNNTP-Posting-Host: nwfocus.wa.com\nComments: \nOriginator: elf@halcyon.com\n\nIn article <1993Apr16.200354.8045@magnus.acs.ohio-state.edu>\n     rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) writes:\n\n>Actually, I bet you more gay/bi men are as not as promiscuous as gay men, \n>because more of them could have the \"option\" of living a straight life, and \n>with social pressures, probably would at least try.\n\n   Geez, where have you been, Ryan?  I proposed this theory *months*\nago.  Let's take it one step further, even.  If, as the surveys show,\nup to 33% of all men have *had* a homosexual encounter, then there must\nbe an even *larger* percentage of people who have had homosexual erotic\nfantasies.  But if less than 10% of the population is gay, what can we\nsay about these people who don't identify as gay but have demonstrated\ngay potential.  Obviously, a large chunk of these people *chose* (or,\nmore accurately, were forced to choose by force of religion and social\nsanction) to put those feelings aside, to be heterosexual.\n\n   Obviously, Cramer and Kaldis fall into this category.\n\n   These people are the ones who are so hung up on \"choice.\"\nObviously, since *they chose*, everyone must have, and homosexuals are\njust flaunting their \"perversion\" by choosing not to go along with what\nsociety has dictated.\n\n   Of course, I'm that most awful of perverts.  I chose, I gleefully\nadmit that I was heterosexual until I met the right man and *chose* to\nindulge in my homoerotic potential.  Take that!\n\n      Elf !!!\n--\nelf@halcyon.com  (Elf Sternberg)\n\n   \"The purpose of writing is to inflate weak ideas, obscure pure\nreasoning, and inhibit clarity.  With a little pratice, writing can be\nan intimidating and impenetrable fog!\"  - Bill Watterson's Calvin.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6509, "properties": {"category": "rec.autos", "text": "From: bowmanj@csn.org (Jerry Bowman)\nSubject: Re: Opel owners?\nNntp-Posting-Host: fred.colorado.edu\nOrganization: University of Colorado Boulder, OCS\nLines: 26\n\nIn article <C5sxI4.J9B@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>gibbonsa@fraser.sfu.ca (Darren Gibbons) writes:\n>\n>>I'm looking for information on Opel cars.  Now you ask, which model?\n>>Well, the sad truth is, I'm not entirely sure, but it's a two-seater,\n>>with roll-over headlights, hard top, and really sporty looking.  My\n>>friend has one sitting in his yard in really nice condition,\n>>body-wise, but he transmission has seized up on him, so it hasn't run\n>>for a while.  Does anyone have any info on these cars?  The engine\n>>compartment looks really tight to work on, but it is in fine shape and\n>>I am quite interested in it.\n>>Thanks!\n>>Darren Gibbons\n>>gibbonsa@sfu.ca\n>\t\n>\tThis would be the manta, would it not???  Sold through Buick dealers in the mid '70's as the price leader????\n>\n>\tChintan Amin\n>\tllama@uiuc.edu\n        If it looks like a miniature corvette it would be an opel GT,the\n    headlights are flipped over by pulling a lever inside.>\n>-- \n>Chintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n>*******SIG UNDER CONSTRUCTION HARD HAT AREA********\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6510, "properties": {"category": "talk.religion.misc", "text": "From: jburrill@boi.hp.com (Jim Burrill)\nSubject: Question about Islamic view   \nOrganization: Idaho River Country, The Salmon, Payette, Clearwater, Boise, Selway, Priest.\nX-Newsreader: TIN [version 1.1.8 PL6]\nLines: 8\n\nA question regarding the Islamic view towards homosexuality came up in a\ndiscussion group that I participate in, and I'd like to ask the question here,\n\n\"What is the Islamic view towards homosexuality?\"             \n\nJim Burrill\njburrill@boi.hp.com\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6511, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bchase@bigwpi.WPI.EDU (Bret Chase)\nSubject: Re: 68040 Specs.\nOrganization: Worcester Polytechnic Institute\nLines: 23\nNNTP-Posting-Host: bigwpi.wpi.edu\n\nIn article <rayC5Myqo.o8@netcom.com> ray@netcom.com (Ray Fischer) writes:\n>patrickd@wpi.WPI.EDU (Lazer) writes ...\n>>I'd appreciate it greatly if someone could E-mail me the following:\n>>(if you only know one, that's fine)\n>>>>>>>>>stuff deleted<<<<<<<<<\n\nHave you tried the library?\nSince you go to WPI (so do I), go to AK and look on the first floor, a \nprofessor has posted an IEEE (i believe) spec sheet on the 68060 which\nis around 10 pages long.  I'm sure the library has the info you request, It's\njust a matter of finding it.\n\n\nHope this helps,\nBret Chase\n\n\n\n-- \ninternet:bchase@wpi.wpi.edu\t\t\tMacintosh!\nbellnet: (508) 791-3725                         Smile! It won't kill you!\nsnailnet: wpi box 3129                          :) :) :) :) :) :) :) :)\n          100 institute rd.\t\t\tWorcester, MA 01609-2280\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6512, "properties": {"category": "soc.religion.christian", "text": "From: Steve.Hayes@f22.n7101.z5.fidonet.org\nSubject: MAJOR VIEWS OF THE TRINITY\nLines: 22\n\n04 May 93, D. Andrew Byler writes to All:\n\n DAB> I think I need to again post the Athanasian Creed, whicc pretty well\n DAB> delinieates orthodox Christian belief on the Trinity, and on the\n DAB> Incarnation.\n\n DAB> It's a pretty good statement of the beliefs eventually accpeted, and the\n DAB> Creed is in use by the Catholic Church, as well as the Lutheran,\n DAB> Anglican, and Orthodox churches (the last minus the filioque, which they\n DAB> delete from the original form of the creed).\n\nDo you have any evidence that it is used by the Orthodox Churches?\n\nAs far as I know it is purely Western, like the \"Apostles' Creed\". The\nOrthodox Churches use the \"Symbol of Faith\", commonly called \"The\nNicene Creed\".\n\nSteve Hayes\nDepartment of Missiology\nUniversity of South Africa\n\n--- GoldED 2.40\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6513, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: The Inimitable Rushdie\nOrganization: Boston University Physics Department\nLines: 31\n\nIn article <2BCC892B.21864@ics.uci.edu> bvickers@ics.uci.edu (Brett J. Vickers) writes:\n\n>In article <115290@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n\n>>Well, seeing as you are not muslim the sort of fatwa issued by Khomeini\n>>would not be relevant to you. I can understand your fear of persecution\n>>and I share it even more than you (being muslim), however Rushdie's\n>>behavior was not completely excusable.\n\n>Why should a fatwa issued by Khomeini be relevant to anyone who\n>doesn't live in Iran?\n\nIssued by Khomeini it shouldn't be relevant to anyone. But issued\nby an honest and learned scholar of Islam it would be relevant to\nany muslim as it would be contrary to Islamic law which all muslims\nare required to respect.\n\n>  Who is it that decides whether Rushdie's behavior is excusable? \n\nAnyone sufficiently well versed in Islamic law and capable of reasoning,\nif you are talking about a weak sense of \"excuse.\" It depends on what \nsense of \"excuse\" you have in mind.\n\n\n> And who cares if you think it is inexcusable?\n\nOnly someone who thinks my opinion is important, obviously.\nObviously you don't care, nor do I care that you don't care.\n\n\nGregg\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6514, "properties": {"category": "rec.autos", "text": "From: qazi@csd4.csd.uwm.edu (Aamir Hafeez Qazi)\nSubject: Re: BMW 3 series for 94?\nOrganization: University of Wisconsin - Milwaukee\nLines: 14\nReply-To: qazi@csd4.csd.uwm.edu\nNNTP-Posting-Host: 129.89.7.4\nOriginator: qazi@csd4.csd.uwm.edu\n\nFrom article <eabu288-140493210752@dialin33635.slip.nts.uci.edu>, by eabu288@orion.oac.uci.edu (Alvin):\n>\n> Is there going to be a BMW 328 in 1994?\n\n--Could be.  Isn't the 2.5 liter six supposed to be enlarged to 2.8 liters\n  in the not-too-distant future?\n\n--Aamir Qazi\n\n-- \n\nAamir Qazi\nqazi@csd4.csd.uwm.edu\n--Why should I care?  I'd rather watch drying paint.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6515, "properties": {"category": "rec.sport.hockey", "text": "From: rbeskost@adam.East.Sun.COM (Richard Beskosty - Sun BOS Systems Product Assurance)\nSubject: Re: Goalie mask poll\nReply-To: rbeskost@adam.East.Sun.COM\nOrganization: Sun Microsystems Inc. - BDC\nLines: 23\nNNTP-Posting-Host: adam.east.sun.com\n\nIn article 93158@hydra.gatech.EDU, gtd597a@prism.gatech.EDU (Hrivnak) writes:\n> \n> \tHere is an update on the Goalie mask poll...\n> \tFirst, since so many people gave me their 3 best, I decided to\n> give 3 pts for their favorite, 2 pts for 2nd, 1 for 3rd. If you e-mailed\n> a response with only one, I gave it 3 pts. Please feel free to send me\n> your 2 other favorites, if you only sent one before. \n> \tAlso, votes are still welcome! Any mask you like will do, as I \n> have received votes for players not in the NHL. Please mention what team\n> they play for, though.\n> \tSo here are the up-to-date results so far:\n> \n> \n\n\nMy vote goes to Andy Moog 1st, Belfour 2nd, Vanbiesbrouck 3rd\n\nThe Bruin's are hot at just the right time !!!!!\n\n\nrich beskosty\n\nrbeskost@east.sun.com\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6516, "properties": {"category": "misc.forsale", "text": "Organization: University of Maine System\nFrom: Merv <IO10702@MAINE.MAINE.EDU>\nSubject: EGA/VGA Monitor&Card wanted\nLines: 9\n\nAs it says in the subject, I am looking for a decent EGA or VGA monitor/card\ncombo that is in working condition.\nThe only thing is that it must be an 8-bit card.\n\nE-Mail all offers to:\nIO10702@MAINE.MAINE.EDU\n\nThanks.\n-Merv\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6517, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: Keith.W.Johnson@tek.com (Keith W. Johnson)\nSubject: Re: Viewsonic 17 experience sought  (VS 17 vs. NEC 5FG)\nOrganization: Tektronix, GPI/ND Info Services\nLines: 42\nDistribution: world\nNNTP-Posting-Host: keithj.wv.tek.com\n\n>I'd appreciate if you can email or post you positive\n>or negative experience with this monitor, especially\n>compared to to Nanao 550i.\n>I'd summarize if I got multiple responses.\n\nI bought a Viewsonic 17 for use at home but after a week I took it back.  I \nfelt for the money my NEC 5FG that I use at work was a much better monitor.\nThe NEC is sharper, flatter, less distorted, and more stable.  I have heard \ncomplaints from people about the NEC FG series having some quality control \nproblems but mine has been in use for about a year with no problems at all.\n\nThere was nothing really broken with the Viewsonic but overall it did not \nmatch up.  I used my ATI Graphics Ultra in setup mode to push the \nfrequencies to their limits and the Viewsonic exhibited some problems that \nthe NEC did not.  I personally like the non-etched NEC with the OCLI filter \nand the tube on the 17 was not as nice.  The 17 had some uncorrectable \npincusion and edge distortion problems.  Also, it would change brightness \nwhen I switched modes and I was constantly having to fiddle with the \ncontrols.  And the yoke was crooked and I had no way to compensate for the \nraster that tilted downhill.  On the postive side, although not as handsome \nas the NEC, the 17 had a smaller footprint and was not as heavy.\n\nI have heard that Panasonic owns Viewsonic and the model 17 is being sold \nthrough OEM channels with a Panasonic label on it.  If it's available that \nway at a lower cost I could get more serious about it.  For now the NEC has \nmy vote but I'm searching for one of the new, cheaper, NEC 5FGe's to see if \nit's just as good as its older brother the 5FG before I decide which one to \nbuy.\n\nI have no experience with the Nanao.  I can never keep the Nanao models \nstraight and don't have any place I can walk in to get a good comparison of \nall models.\n\n-- \n\nStandard employer disclaimers apply\n\n\n\n-- \nKeith W. Johnson      Tektronix, GPI/ND Info Services, Wilsonville, OR, USA\nInternet: Keith.W.Johnson@tek.com   Voice: 503-685-2953   Fax: 503-682-3595\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6518, "properties": {"category": "comp.graphics", "text": "From: razor@swix.nvg.unit.no (Runar Jordahl)\nSubject: Re: Help! Need 3-D graphics code/package for DOS!!!\nOrganization: University of Trondheim, Norway\nLines: 8\nX-Newsreader: TIN [version 1.1 PL6]\n\nN020BA@tamvm1.tamu.edu wrote:\n:     Help!! I need code/package/whatever to take 3-D data and turn it into\n: a wireframe surface with hidden lines removed. I'm using a DOS machine, and\n: the code can be in ANSI C or C++, ANSI Fortran or Basic. The data I'm using\n: forms a rectangular grid.\n:    Please post your replies to the net so that others may benefit. IMHO, this\n: is a general interest question.\n:    Thank you!!!!!!\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6519, "properties": {"category": "sci.med", "text": "From: ruegg@med.unc.edu (Robert G. Ruegg)\nSubject: Re: Eugenics\nSummary: errata\nKeywords: gene pool; wisdom; virtue\nNntp-Posting-Host: naples.med.unc.edu\nOrganization: UNC-CH School of Medicine\nLines: 7\n\nThanks to Tarl Neustaedter of MA for kindly letting me know that my\nreference in prior post to Orwell and \"1984\" should probably have been to\nHuxley and \"Brave New World.\" \n\nSorry, Al.\n\nBob (ruegg@med.unc.edu)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6520, "properties": {"category": "comp.graphics", "text": "From: tmc@spartan.ac.BrockU.CA (Tim Ciceran)\nSubject: Re: TIFF -> Anything?!\nOrganization: Brock University, St. Catharines Ontario\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 10\n\nThere is a program called Graphic Workshop you can FTP from\nwuarchive.  The file is in the msdos/graphics directory and\nis called \"grfwk61t.zip.\"  This program should od everthing\nyou need.\n\n-- \n\nTMC\n(tmc@spartan.ac.BrockU.ca)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6521, "properties": {"category": "comp.graphics", "text": "From: thinman@netcom.com (Technically Sweet)\nSubject: What is reverse or negative video?\nOrganization: International Foundation for Internal Freedom\nLines: 23\n\nI'm interested in simulating reverse (or negative) color video\nmathematically.  What is the transform?  Is it a simple\nreversal of the hue value in the HSV color space?  Is it\na manipulation in the YUV color space?  How is it related\nto solarization?\n\nIf you want to see something truly wild, turn on the\nreverse video effect on a camcorder so equipped,\nand point it at the monitor.  This creates a chaotic\ndynamical system whose phase space is continuous along\nrotation, zoom, focus, etc.  Very very surprising and \nlovely.  I'd like to write a simulation of this effect\nwithout analog grunge.  Thanks for any info you may have.\n\nPlease e-mail any info to me.  I'll post a summary.\n\nThanks,\n\n-- \n\nLance Norskog\nthinman@netcom.com\nData is not information is not knowledge is not wisdom.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6522, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: yuri@atmos.washington.edu\nSubject: 100 simms and 100 sipps  1MB needed\nOrganization: University of Washington\nLines: 24\nNNTP-Posting-Host: windy.atmos.washington.edu\n\nmisc.entrepreneurs,misc.wanted,pnw.forsale,uw.pc.ibm,seattle.forsale,uw.\n.forsale,misc.forsale,\nmisc.forsale.computers.d,misc.forsale.computers.pc-clone,misc.forsale.co\nomputers.other,\nDistribution: world\nFrom:yuri@atmos.washington.edu\nReply-To: yuri@atmos.washington.edu\nOrganization: \nSubject: 100 simms and 100 sipps  1MB needed\nKeywords: \n\t\n\tI need  100 simms and 100 sipps 1MB, but price should be around $17-20/piece.\nI am waiting for an offer.\n\n\tYuri Yulaev\n\t6553, 38th ave NE\n\tSeattle WA 98115\n\t(206) 524-2806,524-9547 (home)\n\t(206) 685-3793 (work)\n\t(206) 524-7218 (FAX)\nINTERNET: yuri@atmos.washington.edu\nUUCP:\t  uw-beaver!atmos.washington.edu!yuri\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.307+0000", "event": "documents", "entityId": 6523, "properties": {"category": "rec.sport.baseball", "text": "From: khansen@staff.tc.umn.edu (Kevin Hansen)\nSubject: Re: Scott Erickson\nNntp-Posting-Host: x239-16.psych.umn.edu\nOrganization: Minnesota Twin Family Study - Univerity of Minnesota\nLines: 38\n\nIn article <12718@news.duke.edu> fierkelab@bchm.biochem.duke.edu (Eric Roush) writes:\n>Path: news1.cis.umn.edu!umn.edu!news-feed-1.peachnet.edu!gatech!concert!duke!news.duke.edu!bchm.biochem.duke.edu\n>From: fierkelab@bchm.biochem.duke.edu (Eric Roush)\n>Newsgroups: rec.sport.baseball\n>Subject: Scott Erickson\n>Message-ID: <12718@news.duke.edu>\n>Date: 5 Apr 93 18:21:18 GMT\n>Sender: news@news.duke.edu\n>Organization: Biochemistry\n>Lines: 13\n>Nntp-Posting-Host: bruchner.biochem.duke.edu\n>USA Today reports that he may be going on the DL\n>(arm pains of an unspecified nature).\n>\n>Further news would be appreciated.\n>\n>\n>-------------------------------------------------------\n>Eric Roush\t\tfierkelab@\tbchm.biochem.duke.edu\n>\"I am a Marxist, of the Groucho sort\"\n>Grafitti, Paris, 1968\n>\n>TANSTAAFL! (although the Internet comes close.)\n>--------------------------------------------------------\n\nErickson did go on the 15 day DL with a pulled muscle in his left side (near \nrib cage).  He is on until 4/18/93.\n\nNo news as to who the Twins will bring up.\n----------------------------------------------\nKevin Hansen\nMN Twin Family Study - University of Minnesota\n(612)626-7224\nkhansen@staff.tc.umn.edu\n----------------------------------------------\nContact: University of Minnesota Women's Basketball\n\n\"Theory guides, experiment decides\" - Izaak M. Kolthoff\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6524, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: vmp@zombie.oulu.fi (Vesa-Matti Perttunen)\nSubject: Re: Diamond Stealth 24 giving 9.4 Winmarks?\nIn-Reply-To: westes@netcom.com's message of 19 Apr 93 18:56:49 GMT\nLines: 7\nOrganization: Real Life, Inc.\n\nDoes your Stealth 24 have a row of DIP switches on the back plane?\n\nIf so, you have the older Revision A board and the winmark results\nare absolutely normal. The later Revision B board benchmarks at 13\nto 15 million winmarks (at least mine does in 486DX-50 toy).\n\nV\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6525, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: DC-X update???\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 35\n\nIn article <1993Apr14.231654.14060@stsci.edu> rdouglas@stsci.edu (Rob Douglas) writes:\n\n>This question is probably mostly for Allen Sherzer, but anyone who KNOWS\n>would be welcome to answer.  I was just wondering if we could have some kind\n>of update on DC-X.\n\nWell it rolled out two weeks ago. As we speak it is at White Sands getting\nready. I would have called my sources for the latest but they are all out\nof town (in NM).\n\nAs for the future, there is at least $5M in next years budget for work\non SSRT. They (SDIO) have been looking for more funds and do seem to have\nsome. However, SDIO is not (I repeat, is not) going to fund an orbital\nprototype. The best we can hope from them is to 1) keep it alive for\nanother year, and 2) fund a suborbital vehicle which MIGHT (with\nmajor modifications) just make orbit. There is also some money for a\nset of prototype tanks and projects to answer a few more open questions.\n\nBetter news comes from the new Spacelifter effort. The USAF managers of\nthis program are very open to SSTO and will have about $50M next\nyear for studies. This would be enough to bring DC-Y to PDR.\n\nNow not all of this money will go to DC but a good case could be made\nfor spending half on DC.\n\nPublic support is STILL critical. Meet with your Congressperson (I'll\nhelp you do it) and get his/her support. Also call your local media\nans get them to cover the flight tests.\n\n   Allen\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------62 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6526, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: tomh@metrics.com (Tom Haapanen)\nSubject: Hercules Graphite?\nOrganization: Software Metrics Inc.\nLines: 11\n\n\nHas anyone used a Hercules Graphite adapter?  It looks good on paper, and\nSteve Gibson gave it a very good review in Infoworld.  I'd love to get a\nreal-world impression, though -- how is the speed?  Drivers?  Support?\n\n(Looking for something to replace this ATI Ultra+ with...)\n\n-- \n[ /tom haapanen -- tomh@metrics.com -- software metrics inc -- waterloo, ont ]\n[       \"stick your index fingers into both corners of your mouth.  now pull ]\n[          up.  that's how the corrado makes you feel.\"  -- car, january '93 ]\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6527, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: Let's Talk Phillies\n <1993Apr16.060540.27397@adobe.com>\n <1993Apr17.020347.9554@mgweed!mgwhiz.att.com>\nLines: 26\n\nIn article <1993Apr17.020347.9554@mgweed!mgwhiz.att.com>,\nprg@mgweed!mgwhiz.att.com (Phil Gunsul) says:\n>\n>I try to edit this newsgroup and feed it to one of the local elementary       ,\n>schools\n>they have a group of students that just love baseball and are learning to use\n>computers, but I'm telling you, it's gotten to the point that I don't even\n>edit\n>the files anymore, just read them and throw out the trash...  And thanks to\n>all\n>you people that think it's wonderful to include a swear word or two in your\n>signature files, that's really nice...  I have to read the whole article and\n>then toss it out because of the .sig.\n\nduh, why not just chop out the .sig?\n\nbob vesterman.\n\nps: hey kids, take all those pictures of dead presidents out of your\nparents' wallets and mail them to:\n\n               bob vesterman\n               c/o dept. of mathematics\n               university of notre dame\n               notre dame, indiana 46556\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6528, "properties": {"category": "sci.crypt", "text": "From: felixg@coop.com (Felix Gallo)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Cooperative Computing, Inc.\nDistribution: na\nLines: 31\n\npat@rwing.UUCP (Pat Myrto) writes:\n\n>If the Clinton Clipper is so very good, [...]\n\nPlease note that Bill Clinton probably has little if anything to do\nwith the design, implementation or reasoning behind this chip or behind\nany \"moves\" being made using this chip as a pawn.\n\nRemember, when you elect a president of the united states, it's not\nthe case that all the Republicans, etc. in the NSA and FBI and CIA\nimmediately pack their bags and get replaced by a team of fresh young\nDemocrats.  Most of the government -- say, 96% -- is appointed or\nhired rather than elected.  Since this Clipper device has been in\nproduction for over six months, it probably has little or no \nfoundation in the currently elected Democratic Executive body.\n\n>BTW - those who suggest that this is just an attack on Clinton, believe\n>this:  I would be going ballistic reagardless WHO seriously proposed\n>this thing.  It is just another step in a gradual erosion of our rights\n>under the Constitution or Bill of Rights.  The last couple of decades\n>have been a non-stop series of end-runs around the protections of the\n>Constitution.  It has to stop.  Now is as good a time as any, if it\n>isn't too late allready.\n\nCould be.  However, the sky hasn't fallen yet, Chicken Little.\n\n>-- \n>pat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n>         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\n>WISDOM: \"Only two things are infinite; the universe and human stupidity,\n>         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6529, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ikos@netcom.com (Ikos)\nSubject: Where can I buy a BIOS?\nSummary: Just as the subject sez...\nKeywords: BIOS, motherboard, Phoenix, Mylex, Microtimes\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nDistribution: ba\nLines: 22\n\nI'm in the market to upgrade my BIOS to a Phoenix 1.10 (got a new hard disk,\ndiscovered my BIOS doesn't have a \"type 47\") and I would like know where I\ncan purchase one of these things.\n\nI checked with the motherboard manufacturer (for the curious-- it's from\nMylex), and hearing the $60 figure prompted me to at least try to shop\naround...\n\nProblem is, I don't know where to shop around for something like this.\n\nI have heard that there's a BIOS speciality shop in the South Bay and it's\nbeen alleged that they advertise in the MicroTimes.\n\nDid find the MicroTimes, didn't find the ad or the shop.\n\nSo, can anybody help me out on this quest?\n\nTo anybody who replies to this-- Thanks in advance.\n\n-Jeff Chan\t\t\t\t\t| These are my opinions.  It\n\tjeff@ikos.com (*not* ikos@netcom.com)\t| would be quite silly if it\n\t..!netcom!ikos!jeff\t\t\t| was also my company's...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6530, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: Basil, opinions? (Re: Water on the brain)\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 21\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <1993Apr16.141204.21479@ncsu.edu>, hernlem@chess.ncsu.edu (Brad Hernlem) writes:\n|> \n|> \n|> BTW, does the Litani River not flow West and not South? I think that its waters\n|> stay entirely within Lebanese territory and so what Hasan says about the Jordan\n|> River makes no sense, in any case. The Hasbani River, on the other hand, flows\n|> into the Jordan, if I am not mistaken.\n\nThe Litani river flows in a west-southwestern direction and indeed does\nnot run through the buffer zone.  The Hasbani does flow into the Jordan\nbut contrary to what our imaginative poster might write, there has been\nno increase in the inflow from this river that is not proportional to\nclimatic changes in rainfall.\n\n|> Brad Hernlem (hernlem@chess.ncsu.EDU)\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6531, "properties": {"category": "sci.med", "text": "From: dstock@hpqmoca.sqf.hp.com (David Stockton)\nSubject: Re: Krillean Photography\nNntp-Posting-Host: hpqmocb.sqf.hp.com\nOrganization: Hewlett-Packard LTD, South Queensferry, Scotland\nX-Newsreader: TIN [version 1.1 PL8.8]\nLines: 23\n\nVINCI (filipe@vxcrna.cern.ch) wrote:\n\n\n\n:  How about Kirlian imaging ? I believe the FAQ for sci.skeptics (sp?)\n:  has a nice write-up on this. They would certainly be most supportive\n:  on helping you to build such a device and connect to a 120Kvolt\n:  supply so that you can take a serious look at your \"aura\"... :-)\n\n:  Filipe Santos\n:  CERN - European Laboratory for Particle Physics\n:  Switzerland\n\n\n    This has to be THE only, generally accepted, method of using common \nphysics lab equipment to find certain answers to all the questions about\nafterlifes, heavens, hells, purgatory, gods etc. Krillean photography\nwill probably be ignored as insignificant compared to these larger\neternal verities. Publishing your results could be a bit of a problem,\nthough.\n\n   Cheers\n             David\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6532, "properties": {"category": "rec.autos", "text": "From: mchaffee@dcl-nxt07 (Michael T Chaffee)\nSubject: Re: WARNING.....(please read)...\nOrganization: University of Illinois at Urbana\nLines: 35\n\nmatmcinn@nuscc.nus.sg (Matthew MacIntyre at the National University of Senegal) writes:\n\n>callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>: >> \n>: >I'm not going to argue the issue of carrying weapons, but I would ask you if \n>: >you would have thought seriously about shooting a kid for setting off your\n>: >alarm?  I can think of worse things in the world.  Glad you got out of there\n>: >before they did anything to give you a reason to fire your gun.\n>: \n>I think people have a right to kill to defend their property. Why not? Be\n>honest: do you really care more about scum than about your  car?\n\nI can't tell if Matt is being sarcastic here or not, but to be honest, many\nautomobiles are worth far more to their owners (in $$ value and $$ investment)\nthan the people that would take them.  I don't have figures on average property\ntax in the U.S. or how much of it is allocated for housing projects, inferior\npublic schools, jails, or the like, but I have a feeling that the amount the\ngovernment steals from an honest, productive citizen to breed this trash is \nsignificantly less than the value of many automobiles.  And for those who will\nargue that the animals out there stealing cars and everything else (not to\nmention committing COMPLETELY senseless acts of violence, such as rape) cannot\nbe valued in terms of money because they are human beings, I submit that they\nare not human beings.  Jim Callison, I think, is on the right track.  And \nChintan Amin remarked earlier that we cannot blame environment for the actions\nof a single criminal.  I couldn't agree more.  One could trace any crime back\nto the environment/upbringing of the criminal; should we let all of them out,\nfrom pickpockets to rapists to inside traders, because what they did wasn't\ntheir fault?  Where does one draw the line?\n\n$0.02\n\nMichael T. Chaffee\nmchaffee@ux4.cso.uiuc.edu\t<----Email\nmchaffee@sumter.cso.uiuc.edu\t<----NeXTMail\n.sig under construction.\t<----Excuse\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6533, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: Rejetting carbs..\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nDistribution: na\nLines: 53\n\nMark Kromer, on the Thu, 15 Apr 1993 00:42:46 GMT wibbled:\n: In an article rtaraz@bigwpi (Ramin Taraz) wrote:\n\n: >Does the \"amount of exhaust allowed to leave the engine through the\n: >exhaust pipe\" make that much of a difference? the amount of air/fuel\n: >mixture that a cylender sucks in (tries to suck in) depends on the\n: >speed of the piston when it goes down. \n\n: ...and the pressure in the cylinder at the end of the exhaust stroke.\n\n: With a poor exhaust system, this pressure may be above atmospheric.\n: With a pipe that scavenges well this may be substantially below\n: atmospheric.  This effect will vary with rpm depending on the tune of\n: the pipe; some pipes combined with large valve overlap can actually\n: reverse the intake flow and blow mixture out of the carb when outside\n: the pipes effective rev range.\n\n: >Now, my question is which one provides more resistence as far as the\n: >engine is conserned:\n: >) resistance that the exhaust provides \n: >) or the resistance that results from the bike trying to push itself and\n: >  the rider\n\n: Two completely different things.  The state of the pipe determines how\n: much power the motor can make.  The load of the bike determines how\n: much power the motor needs to make.\n\n: --\n: - )V(ark)<  FZR400 Pilot / ZX900 Payload / RD400 Mechanic  \n:                    You're welcome.\n\nWell I, for one, am so very glad that I have fuel injection!  All those \nneedles and orifices and venturi and pressures... It's worse than school human\nbiology reproduction lessons (sex).  Always made me feel a bit queasy.\n--\n\nNick (the Simple Minded Biker)   DoD 1069   Concise Oxford   Tube Rider\n\nM'Lud.\n\n  ___\t___   ___   ___\n {\"_\"} {\"_\"} {\"_\"} {\"_\"}\t  Nick Pettefar, Contractor@Large.\n  ' `\t` '   ' `   ` '\t\t  Currently incarcerated at BNR,\n  ___\t___   ___   ___\t\t  Maidenhead, The United Kingdom.\n |\"_\"| |\"_\"| |\"_\"| |\"_\"|\t  npet@bnr.ca  '86 BMW K100RS \"Kay\"\n  ` '\t' `   ` '   ' `\t\t  Pres. PBWASOH(UK),  BS 0002\n\t    .\n   _ _\t\t_  __ .\n  / ~ ~~\\   |  / ~~  \\\n |_______|    [_______|\n\t   _:_\n\t  |___|\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6534, "properties": {"category": "sci.crypt", "text": "From: sethf@athena.mit.edu (Seth Finkelstein)\nSubject: Re: The source of that announcement\nOrganization: Massachvsetts Institvte of Technology\nLines: 28\nDistribution: world\nNNTP-Posting-Host: frumious-bandersnatch.mit.edu\n\nAlso note (from <branstad@tis.com> and <walker@tis.com>):\n\n% whois -h rs.internic.net tis-dom\nTrusted Information Systems, Inc. (TIS-DOM)\n   3060 Washington Road, Route 97\n   Glenwood, MD 21738\n\n   Domain Name: TIS.COM\n\n   Administrative Contact:\n      Walker, Stephen T.  (STW3)  walker@TIS.COM\n      (301) 854-6889\n   Technical Contact, Zone Contact:\n      Dalva, David I.  (DID1)  dave@TIS.COM\n      (301) 854-6889\n\n   Record last updated on 02-Jul-92.\n\n   Domain servers in listed order:\n\n   TIS.COM                      192.33.112.100\n   LA.TIS.COM                   192.5.49.8\n\n\tAnd \"dockmaster\" is an infamous address ...\n\n--\nSeth Finkelstein                                sethf@athena.mit.edu\n\"The road to Hell is paved with good intentions\"\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6535, "properties": {"category": "talk.politics.mideast", "text": "From: ahmeda@McRCIM.McGill.EDU (Ahmed Abu-Abed)\nSubject: Re: Final Solution in Palestine ?\nOriginator: ahmeda@celeborn.mcrcim.mcgill.edu\nNntp-Posting-Host: celeborn.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for Intelligent Machines\nLines: 59\n\n\nIn article <HM.93Apr24133027@angell.cs.brown.edu>, hm@cs.brown.edu (Harry Mamaysky) writes:\n|> In article <1483500354@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n|> \n|>    Final Solution for the Gaza ghetto ?\n|>    ------------------------------------\n|> \n|>    While Israeli Jews fete the uprising of the Warsaw ghetto, they\n|>    repress by violent means the uprising of the Gaza ghetto and\n|>    attempt to starve the Gazans.\n|> \n|>    [...]\n|> \n|> The Jews in the Warsaw ghetto were fighting to keep themselves and\n|> their families from being sent to Nazi gas chambers. Groups like Hamas\n|> and the Islamic Jihad fight with the expressed purpose of driving all\n|> Jews into the sea. Perhaps, we should persuade Jewish people to help\n   ^^^^^^^^^^^^^^^^^^\n|> these wnderful \"freedom fighters\" attain this ultimate goal.\n|> \n|> Maybe the \"freedom fighters\" will choose to spare the co-operative Jews.\n|> Is that what you are counting on, Elias - the pity of murderers.\n|> \n|> You say your mother was Jewish. How ashamed she must be of her son. I\n|> am sorry, Mrs. Davidsson.\n|> \n|> Harry.\n\nO.K., its my turn:\n\n       DRIVING THE JEWS INTO THE SEA ?!\n\nI am sick and tired of this 'DRIVING THE JEWS INTO THE SEA' sentance attributed\nto Islamic movements and the PLO; it simply can't be proven as part of their\nplan !\n\n(Pro Israeli activists repeat it like parrots without checking its authenticity\nsince it was coined by Bnai Brith)\n\nWhat Hamas and Islamic Jihad believe in, as far as I can get from the Arab media,\nis an Islamic state that protects the rights of all its inhabitants under Koranic\nLaw. This would be a reversal of the 1948 situation in which the Jews in\nPalestine took control of the land and its (mostly Muslim) inhabitants.\n\nHowever, whoever committed crimes against humanity (torture, blowing up their\nhomes, murders,...) must be treated and tried as a war criminal. The political\nthought of these movements shows that a freedom of choice will be given to the\nJews in living under the new law or leaving to the destintion of their choice.\n\nAs for the PLO, I am at a loss to explain what is going inside Arafat's mind.\n\nAlthough their political thinking seems far fetched with Israel acting as a true\nsuper-power in the region, the Islamic movements are using the same weapon the\nJews used to establish their state : Religion.\n\n\nAhmed.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6536, "properties": {"category": "talk.politics.mideast", "text": "From: ab4z@Virginia.EDU (\"Andi Beyer\")\nSubject: Re: Israeli Terrorism\nOrganization: University of Virginia\nLines: 15\n\nWell i'm not sure about the story nad it did seem biased. What\nI disagree with is your statement that the U.S. Media is out to\nruin Israels reputation. That is rediculous. The U.S. media is\nthe most pro-israeli media in the world. Having lived in Europe\nI realize that incidences such as the one described in the\nletter have occured. The U.S. media as a whole seem to try to\nignore them. The U.S. is subsidizing Israels existance and the\nEuropeans are not (at least not to the same degree). So I think\nthat might be a reason they report more clearly on the\natrocities.\n\tWhat is a shame is that in Austria, daily reports of\nthe inhuman acts commited by Israeli soldiers and the blessing\nreceived from the Government makes some of the Holocaust guilt\ngo away. After all, look how the Jews are treating other races\nwhen they got power. It is unfortunate.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6537, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: hyerstay@adrenaline.com (Jason Hyerstay)\nOrganization: Adrenaline Online, (802) 425-2332, a FirstClass BBS\nSubject: Re: Mac oriented BBSs in Chicago\nLines: 28\n\n> A member of the local BBS I frequent is looking for Mac oriented\n> BBSs based in Chicago.\n>\n> Any leads would be most appreciated.\n\nHere is a list of the FirstClass systems in Illinois:\n\nChicago Machine    Chicago, IL        (312) 233-9607\nInsane Domain      Chicago, IL        (312) 274-9515\nMAC Universe BBS   Chicago, IL        (312) 235-6794\nThe NET            Rockford, IL       (815) 968-4729\nMacTRIPP           Wilmette, IL       (708) 251-4158\nInnovators         Vernon Hills, IL\t \t(708) 918-1231\n\nIf anyone wants the numbers to more FirstClass systems, I would be glad to\npost the complete list.\n- Jason Hyerstay\n- Adrenaline Admin\n\t\n===========================================================================\n=   /| |\\  |-\\ /-- \\ |  /\\  |   | \\ | /--  Adrenaline Online (FirstClass) =\n=  /-| | \\ |_/ |-  |\\| /--| |   | |\\| |-   (802) 425-2332 * Charlotte, VT =\n= /  | |_/ | \\ \\-- | \\ |  | |-- | | \\ \\--  Free Access!! * 16.8K HST Dual =\n===========================================================================\n= OneNet * MacUnion * FidoNet * UseNet * 120+ Conferences * Megs of Files =\n= Dedicated to Mac users, cyberpunks, civil libertarians and mecha gamers =\n===========================================================================\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6538, "properties": {"category": "comp.graphics", "text": "From: rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter)\nSubject: Re: Please Recommend 3D Graphics Library For Mac.\nOrganization: Boeing\nLines: 24\n\nIn article <John_Shepardson.esh-210493100336@moose.slac.stanford.edu> John_Shepardson.esh@qmail.slac.stanford.edu (John Shepardson) writes:\n>> Can you please offer some recommendations? (3d graphics)\n>\n>\n>There has been a fantastic 3d programmers package for some years that has\n>been little advertised, and apparently nobody knows about, called 3d\n>Graphic Tools written by Mark Owen of Micro System Options in Seattle WA. \n>I reviewed it a year or so ago and was really awed by it's capabilities. \n>It also includes tons of code for many aspects of Mac programming\n>(including offscreen graphics).  It does Zbuffering, 24 bit graphics, has a\n>database for representing graphical objects, and more.\n>It is very well written (MPW C, Think C, and HyperCard) and the code is\n>highly reusable.  Last time I checked the price was around $150 - WELL\n>worth it.\n>\n>Their # is (206) 868-5418.\n\n  I've talked with Mark and he faxed some literature, though it wasn't very helpful-\n  just a list of routine names: _BSplineSurface, _DrawString3D... 241 names.\n  There was a Product Info sheet that explained some of the package capabilities.\n  I also found a review in April/May '92 MacTutor.\n\n  It does look like a good package. The current price is $295 US.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6539, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Organization: Penn State University\nFrom: Greg Spath <GKS101@psuvm.psu.edu>\nSubject: Re: Soundblaster IRQ and Port settings\nDistribution: inet\n <1993Apr16.105809.22218@walter.cray.com> <s106275.734980377@ee.tut.fi>\nLines: 12\n\nIn article <s106275.734980377@ee.tut.fi>, s106275@ee.tut.fi (Anssi Saari) says:\n>\n>In <1993Apr16.105809.22218@walter.cray.com> huot@cray.com (Tom Huot) writes:\n>\n>>I would also like an explanation of this. If anyone can explain\n>>why the SB Pro and LPT 1 can share an IRQ, please do so.\n>\n>I think it's simply because DOS doesn't use the IRQ for anything. OS/2 does,\n>so with that you can't share the IRQ.\n>\nThat is correct.  in DOS you can use IRQ 7 for your SB.You can't do\nthat under OS/2 because it uses IRQ 7 for the printer\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6540, "properties": {"category": "sci.electronics", "text": "From: sean@dip1.ee.uct.ac.za (Sean Borman)\nSubject: INFO WANTED : Graphics LCD displays\nOrganization: University of Cape Town\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 15\n\n\nHi there\n\nDoes anyone know how to get hold of data as well as stock of the\nLCD displays used in the NINTENDO GAMEBOY handheld TV game machines?\n\nAny information wouold be MOST appreciated.\n\nPlease e-mail any replies to \n\narawstorne@eleceng.uct.ac.za\n\nthanks\n\nAlex\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6541, "properties": {"category": "talk.politics.mideast", "text": "From: cl056@cleveland.Freenet.Edu (Hamaza H. Salah)\nSubject: Re: Israeli Terrorism\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 26\nReply-To: cl056@cleveland.Freenet.Edu (Hamaza H. Salah)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\n\nab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n>Well i'm not sure about the story nad it did seem biased. What\n>I disagree with is your statement that the U.S. Media is out to\n>ruin Israels reputation. That is rediculous. The U.S. media is\n>the most pro-israeli media in the world. Having lived in Europe\n>I realize that incidences such as the one described in the\n>letter have occured. The U.S. media as a whole seem to try to\n>ignore them. The U.S. is subsidizing Israels existance and the\n>Europeans are not (at least not to the same degree). So I think\n>that might be a reason they report more clearly on the\n>atrocities.\n>\tWhat is a shame is that in Austria, daily reports of\n>the inhuman acts commited by Israeli soldiers and the blessing\n>received from the Government makes some of the Holocaust guilt\n>go away. After all, look how the Jews are treating other races\n>when they got power. It is unfortunate.\n\nWell said Mr. Beyer :)\n\n-- \n                  ___________________ cl056@cleveland.Freenet.Edu _____________\n                 (______   _  |   _  |_    \n_____ H A M Z A ________) |-| |_ |-| | |    foo i.e. most foo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6542, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 07/15 - Astronomical Mnemonics\nSupersedes: <mnemonics_730956500@cs.unc.edu>\nOrganization: University of North Carolina, Chapel Hill\nLines: 95\nDistribution: world\nExpires: 6 May 1993 19:57:55 GMT\nNNTP-Posting-Host: mahler.cs.unc.edu\nKeywords: Frequently Asked Questions\n\nArchive-name: space/mnemonics\nLast-modified: $Date: 93/04/01 14:39:14 $\n\nASTRONOMICAL MNEMONICS (This is the last FAQ section posted to sci.astro)\n\n    Gathered from various flurries of mnemonic postings on sci.astro.\n\n    Spectral classification sequence: O B A F G K M R N S\n\n\tOh Be A Fine Girl Kiss Me Right Now, Sweetheart. (a classic)\n\n\tO'Dell's Big Astronomical Fiasco Gonna Kill Me Right Now Surely\n\tObese Balding Astronomy Found Guilty; Killed Many Reluctant\n\t    Nonscience Students.\n\tOctopus Brains, A Favorite Gastronomical Kitchen Menu,\n\t    Requires No Sauce\n\tOdd Ball Astronomers Find Generally Kooky Mnemonics\n\t    Really Nifty Stuff\n\tOh Big And Ferocious Gorilla, Kill My Roomate Next Saturday\n\tOh Boy, A Flash! Godzilla Kills Mothra! Really Not Surprising!\n\tOh Boy, An F Grade Kills Me\n\tOn Bad Afternoons Fermented Grapes Keep Mrs. Richard Nixon Smiling\n\tOn, Backward Astronomer, Forget Geocentricity; Kepler's Motions\n\t    Reveal Nature's Simplicity\n\tOur Bad Astronomy Faculty Gets Killed Monday\n\tOven Baked Ants, Fried Gently, Kept Moist, Retain Natural Succulence\n\tOverseas Broadcast: A Flash!  Godzilla kills Mothra!\n\t    (Rodan Named Successor)\n\tOverweight Boys and Fat Girls Keep Munching\n\tOnly Bored Astronomers Find Gratification Knowing Mnemonics\n\tOh Bloody Astronomy!  F Grades Kill Me\n\n    Order of the planets:\n\n\tSun\n\tMercury\n\tVenus\n\tEarth (Terra)\n\tMars\n\t(Asteroids)\n\tJupiter\n\tSaturn\n\tUranus\n\tNeptune\n\tPluto\n\n\tMy Very Earnest Mother Just Served Us Nine Pizzas\n\tMother Very Thoughtfully Made A Jelly Sandwich Under No Protest\n\tMy Very Erotic Mate Joyfully Satisfies Unusual Needs Passionately\n\tMen Very Easily Make Jugs Serve Useful Nocturnal Purposes\n\tMan Very Early Made A Jug Serve Useful Noble Purposes\n\tMy Very Educated Mother Just Showed Us Nine Planets\n\tMy Very Eager Mother Just Showed Us Nine Planets\n\tMy Very Exhausted Mother hAs Just Swept Up a Planetary Nebula\n\tMost Voters Earn Money Just Showing Up Near Polls\n\tMy Very Educated Mother Just Served Us Nine Pizza-pies\n\tMany Viscious Elephants Made John, Suzy and Uncle Need Protection\n\tSolar Mass Very Easily Makes All Jupiter's Satellites Undergo\n\t    Numerous Perturbations.\n\n\tMein Vater erklaert mir jeden Sonntag unsere niedlichen Planeten\n\t    (My Father explains to me every Sunday our nine planets)\n\tMan verachte einen Menschen in seinem Unglueck nie -- Punkt\n\t    (Never scorn/despise a person in his misfortune/bad luck/misery\n\t\t-- period!)\n\n    Colors of the spectrum: Red Orange Yellow Green Blue Indigo Violet\n\tROY G. BIV  (pronounce as a man's name)\n\tRichard Of York Gave Battle In Vain\n\tRead Out Your Good Book In Verse\n\n    Galilean Satellite of Jupiter: Io Europa Ganymede Callisto\n\tI Expect God Cries\n\tI Eat Green Cheese\n\tI Embarrass Good Christians\n\n\tIch erschrecke all guten Christen\n\t    (I scare all good Christians)\n\n    Saturnian Satellites\n\tMET DR THIP\n\tMiriam's Enchiladas Taste Divine Recently. Tell Her I'm Proud.\n\t(Mimas, Enceladus, Tethys, Dione, Rhea, Titan, Hyperion,\n\t    Iapetus, Phoebe)\n\n    Uranian Satellites:\n\tMAUTO\n\tMispronunciations Afflict Uranus Too Often\n\tMy Angel Uriel Takes Opium\n\t(Miranda, Ariel, Umbriel, Titania, Oberon)\n\nNOTE: the remaining FAQ sections do not appear in sci.astro, as they cover\n    material of relevance only to sci.space.\n\nNEXT: FAQ #8/15 - Contacting NASA, ESA, and other space agencies/companies\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6543, "properties": {"category": "misc.forsale", "text": "From: Rupin.Dang@dartmouth.edu (Rupin Dang)\nSubject: NIKKOR 70-210 AF forsale\nOrganization: Dartmouth College, Hanover, NH\nLines: 4\n\nNikkor AF 70-210 f/4-5.6 zoom lens. Excellent condition. I'm looking to get the\n2.8 version so I'm selling this.\n\nAsking $175 No offers please.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6544, "properties": {"category": "rec.motorcycles", "text": "From: irwin@cmptrc.lonestar.org (Irwin Arnstein)\nSubject: Re: Recommendation on Duc\nSummary: What's it worth?\nDistribution: usa\nExpires: Sat, 1 May 1993 05:00:00 GMT\nOrganization: CompuTrac Inc., Richardson TX\nKeywords: Ducati, GTS, How much? \nLines: 13\n\nI have a line on a Ducati 900GTS 1978 model with 17k on the clock.  Runs\nvery well, paint is the bronze/brown/orange faded out, leaks a bit of oil\nand pops out of 1st with hard accel.  The shop will fix trans and oil \nleak.  They sold the bike to the 1 and only owner.  They want $3495, and\nI am thinking more like $3K.  Any opinions out there?  Please email me.\nThanks.  It would be a nice stable mate to the Beemer.  Then I'll get\na jap bike and call myself Axis Motors!\n\n-- \n-----------------------------------------------------------------------\n\"Tuba\" (Irwin)      \"I honk therefore I am\"     CompuTrac-Richardson,Tx\nirwin@cmptrc.lonestar.org    DoD #0826          (R75/6)\n-----------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6545, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Re: IDE vs SCSI\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 49\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\nDXB132@psuvm.psu.edu writes:\n>SCSI-I ranges from 0-5MB/s.\n>SCSI-II ranges from 0-40MB/s.\n>IDE ranges from 0-8.3MB/s.                                       \n>ESDI is always 1.25MB/s (although there are some non-standard versions)\nThe above does not tell the proper story of SCSI:\nSCSI-I: 8-bit asynchronous {~1.5MB/s ave}, synchronous {5MB/s max} transfer \nbase.\nSCSI-1{faster} this requires a SCSI-2 controller chip and provides\n SCSI-2 {8-bit to 16-bit} speeds with SCSI-1 controlers.\nSCSI-2: 4-6MB/s with 10MB/s burst{8-bit}, 8-12MB/s with 20MB/s burst {16-bit}, \nand 15-20MB/s with 40MB/s burst{32-bit/wide and fast}.  16-bit SCSI can be\nwide or fast, it depends on how the port is designed{The Quadras will support\nfast SCSI but not wide when the OS SCSI manager is rewritten since the\nQuardas use a SCSI-1 {non-wide} port}.\n\nThe article in PC Mag 4/27/93:29 was talking about SCSI-1 {SCSI-2 uses\nTEN (10) devices in it native mode, outside its native mode it behaves a\nlot like SCSI-1 (7 devices, slower through put}\n\nFrom your own figures SCSI-1 is indeed twice ESDI as the article pointed out\nas for \"20% faster then IDE\" that seems to be 8-bit SCSI-1 using a SCSI-2 \ncontoler chip {The Mac Quadra uses a SCSI-2 controler chip for its SCSI-1\nand gets 6MB/s through put for asynchronous {8-bit} SCSI-1, far in excess of a\nnormal SYNCHRONOUS SCSI-1 output} 120% of 8.3 is 9.96 which is near\nthe burst of a SCSI-1 machine with a SCSI-2 controller chip.\n\nThe PC world seems to have SCSI-1 and SCSI-2 mixed up.  Fact is SCSI-2 \ncontroler chips allow near SCSI-2 speeds through a SCSI-1 device\n{As shown in the Mac Quadra} which skews some of the data of SCSI-1 vs\nIDE or ESDI test. I agree that the article COULD have stated that the \"20%\nfaster then IDE\" came off a SCSI-1 device with a SCSI-2 chip.  Maybe it\nwas there and the EDITOR killed it because the article was dealing with\nSCSI-1 NOT SCSI-2 and he did not understand the effect of a SCSI-1 device\nwith a SCSI-2 controller chip.\nSCSI-1 chips are limited to 5/MB max.  SCSI-1 devices with SCSI-2 chips\n{becoming common} produce up to 10Mb/s in 8-bit mode and 20MB/s in 16-bit\nmode {the fast version, SCSI-1 ports cannot use wide SCSI}.  Of cource\nthe prime piece of wierdness is that SCSI-1 devices HAVE SCSI-2 chips\n{or more accurately the machine does}. This allows the best of BOTH\nworlds: high SCSI-2 speeds and cheeper SCSI-1 costs {FULL SCSI-2 hardware\n(port, electronic controller, etc) is VERY expensive.  It ALSO creates\na logistic NIGHTMARE as to how fast SCSI-1 goes.\n\nWhen one knows the FACTS behind the numbers then one realizes that the\narticle knows what it is talking about {even if it does not tell HOW the\nfigures came about} while  DXB132@psuvm.psu.edu is throwing out\nranges that don't tell SQUAT {Since he IGNORES SCSI-1 devices with\nSCSI-2 chips his ranges tell even LESS then intended.} }\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6546, "properties": {"category": "rec.autos", "text": "From: thatchh@hplsla.hp.com (Thatch Harvey)\nSubject: Re: Mercury Capri Restrictions\nOrganization: HP Lake Stevens, WA\nLines: 24\n\n \n\n\n       The restriction could have to do with the car being a convertible.\n\nA lot of paronoid laws were passed concerning convertibles in the 80's.\nThese states may require greater rollover protection than the Capri affords.\n\n               Thatch Harvey\n\n\n    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n    % Thatch Harvey                                                    %\n    % uucp: (no longer valid)            domain: thatchh@hplsla.hp.com %\n    % Hewlett-Packard              Lake Stevens Instrument Division    %\n    % Lake Stevens, WA                                                 %\n    % (206) 335-2083                Merkur XR4Ti, Suzuki GSX1100G,     %\n    %                               Prince SR3 D Sports Racer          %\n    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.308+0000", "event": "documents", "entityId": 6547, "properties": {"category": "sci.crypt", "text": "From: jhan@debra.dgbt.doc.ca (Jerry Han)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: debra.dgbt.doc.ca\nOrganization: Communications Research Centre, Ottawa\nDistribution: na\nLines: 58\n\nIn article <bontchev.735404289@fbihh>\nbontchev@fbihh.informatik.uni-hamburg.de writes: \n\n>And some people thought that I am exaggerating when claiming that the\n>Cripple Chip is just a first step in a totalitarian plot against the\n>civil liberties in the USA... It seems that I've even been an optimist\n>- the things are happening even faster than I expected.... That's\n>another of the dirty tricks they used to apply on us under the\n>communist regime - do something secret, THEN tell the people about is\n>(after the fact, when nothing can be done any more), and of course,\n>explaining them how much better the situation is now...\n>\n>In my previous messages I wrote that the Americans should wake up and\n>fight against the new proposal. Now it seems to me that it is already\n>too late - it has already happened, the civil liberties have been\n>violated, no, stollen from the American people, while the most part of\n>this people has been sleeping happily... :-((( Too sad...\n\nAs one of the happily sleeping people, I would just like to ask this->\naren't people just slightly overreacting to this?  Or are we all of a\nsudden going to draw parallels to Nazi Germany and Communist Russia?\n\nThe point of the matter is that; yes this is a serious problem.  But it is\nnot the end of the world.  Guess what?  We're doing something now you\ncan't do in a Communist country or Nazi Germany.  We're complaining about\nit, (or rather, you're complaining about it) and nobody is shooting at us.  \n\n(Or, rather, if they're shooting at me, they have real bad aim.  (:-) )\n\nGUESS WHAT PEOPLE?  You live in one of the few countries in the world\nwhere a person can complain without getting shot at.  \n\nPeople are always complaining that somebody did this wrong, or somebody\ndid that wrong, or whatever.  Sit down and figure out two things:\n\n1)  What have they done right?\n2)  How much worse can it get?\n\nAnd you'll find that you and I, are pretty damn lucky.\n\nSo let's talk about it, get some action going, decide what's going on. \nBut let's not overreact!  \n\n>\n>Regards,\n>Vesselin\n>-- \n>Vesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\n>Tel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n>< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\n>e-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n\n\n-- \nJerry Han-CRC-DOC-Div. of Behavioural Research-\"jhan@debra.dgbt.doc.ca\"\n///////////// These are my opinions, and my opinions only. \\\\\\\\\\\\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\\\ A proud and frozen member of the Mighty Warriors Band ////////  \n\"Memories of those I've left behind, still ringing in my ears.\"-Genesis-\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6548, "properties": {"category": "comp.sys.mac.hardware", "text": "From: eapu174@orion.oac.uci.edu (Wayne Chen)\nSubject: Re: Disappointed by La Cie\nNntp-Posting-Host: dialin33626.slip.nts.uci.edu\nX-UserAgent: Nuntius v1.1.1d17\nOrganization: UC Irvine\nLines: 6\nX-XXMessage-ID: <A7E73C868E028EB7@dialin33626.slip.nts.uci.edu>\nX-XXDate: Tue, 6 Apr 93 05:56:22 GMT\n\nIn article <2BC1F81D.20078@news.service.uci.edu> Wayne Chen,\neapu174@orion.oac.uci.edu writes:\n> industry.  After all it does sound unfair to me for someone that\nhas\n                                                       ^^^^^^^^\nOops, I meant fair, not unfair.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6549, "properties": {"category": "sci.electronics", "text": "From: cmh@eng.cam.ac.uk (C.M. Hicks)\nSubject: Re: MICROPHONE PRE-AMP/LOW NOISE/PHANTOM POWERED\nOrganization: cam.eng\nLines: 22\nNntp-Posting-Host: tw100.eng.cam.ac.uk\n\ndavidj@rahul.net (David Josephson) writes:\n\n>In <C5JJJ2.1tF@cmcl2.nyu.edu> ali@cns.nyu.edu (Alan Macaluso) writes:\n\n>>I'm looking to build a microphone preamp that has very good low-noise characteristics,  large clean gain, and incorportates phantom power (20-48 volts (dc)) for a PZM microphone.  I'm leaning towards a good, low-cost (??) instrumentation amplifier to maintain the balanced input from the microphone, for its good CMRR, internal compensation, and because i can use a minimal # of parts.  \n\n>>Does anyone out there have any experience, suggestions, advice, etc...that they'd like to pass on, I'd greatly appreciate it.\n\n>Without doing anything really tricky, the best I've seen is the\n>Burr-Brown INA103. Their databook shows a good application of this\n>chip as a phantom power mic pre.\n\nI've had very good results from the SSM2016 from PMI (part of Analogue\nDevices). They have also now introduced the SSM2017 which looks good on\npaper, but which I haven't tried yet.\n\nChristopher\n--\n ==============================================================================\n  Christopher Hicks    |      Paradise is a Linear Gaussian World\n  cmh@uk.ac.cam.eng    |    (also reported to taste hot and sweaty)\n ==============================================================================\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6550, "properties": {"category": "rec.motorcycles", "text": "From: mlj@af3.mlb.semi.harris.com (Marvin Jaster )\nSubject: FOR SALE \nNntp-Posting-Host: sunsol.mlb.semi.harris.com\nOrganization: Harris Semiconductor, Melbourne  FL\nKeywords: FOR SALE\nLines: 44\n\nI am selling my Sportster to make room for a new FLHTCU.\nThis scoot is in excellent condition and has never been wrecked or abused.\nAlways garaged.\n\n\t1990 Sportster 883 Standard (blue)\n\n\tfactory 1200cc conversion kit\n\n\tless than 8000 miles\n\n\tBranch ported and polished big valve heads\n\n\tScreamin Eagle carb\n\n\tScreamin Eagle cam\n\n\tadjustable pushrods\n\n\tHarley performance mufflers\n\n\ttachometer\n\n\tnew Metzeler tires front and rear\n\n\tProgressive front fork springs\n\n\tHarley King and Queen seat and sissy bar\n\n\teverything chromed\n\n\tO-ring chain\n\n\tfork brace\n\n\toil cooler and thermostat\n\n\tnew Die-Hard battery\n\n\tbike cover\n\nprice: $7000.00\nphone: hm 407/254-1398\n       wk 407/724-7137\nMelbourne, Florida\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6551, "properties": {"category": "talk.religion.misc", "text": "From: Thyagi@cup.portal.com (Thyagi Morgoth NagaSiva)\nSubject: ZOROASTRIANISM - SAN JOSE - (Merc News Article)\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 169\n\nZOROASTRIANISM\nSAN JOSE, CA, USA\nMonday April 5, 1993\nSan Jose Mercury News, Page 1\n     [Reproduced without permission]\n\n_3,700-year tradition still glows - \n           'Assimilation in U.S. threatens ancient Zoroastrian religion'_\n\nBy Jeanne Huber, Mercury News Staff Writer\n\n   HIGH ON A HILLSIDE above San Jose, flames leap up 24 hours a day from a\ngleaming brass urn in a temple - one of only four in the United States -\ndedicated to one of the world's most ancient religions.\n\n   With the flames go the prayers of about 1,200 Bay Area Zoroastrians that\ntheir faith will survive this land.\n\n   \"There is a fear - a real fear, too,\" said Silloo Tarapore of Lafayette.\n\"We have one generation to do it or to die.\"\n\n   Many immigrant groups struggle to maintain an identity in a strange land.\nBut for Zoroastrians, it is an especially poignant concern.\n\n   Their religion has been around for perhaps 3,700 years, a heritage so deep\nit scarcely seems comprehensible in a state where \"historical sites\" are\nsometimes less than 100 years old.  It was the religion of the great Persian\nEmpire under kings Cyrus and Darius.  And tradition says that when Christ\nwas born about 500 years later, he was honored by a visit from three\nZoroastrian priests, the Magi.  Scholars say many key beliefs of Christians,\nJews and Muslims can be traced to the teachings of Zoroaster, the\nZoroastrian prophet.\n\n   Yet, with only about 150,000 Zoroastrians in the entire world, they are \na miniscule minority in every country in which they live.  Survival as a\npeople is very much on their minds.\n\n   Ironically, local Zoroastrians fear that the almost unlimited tolerance\nof the United States may do what hundreds of years of persecution followed\nby nearly 1,000 years of benign religious segregation could not do: cause\ntheir young people to stop thinking of themselves as Zoroastrians.\n\n   Zoroastrians do not believe theirs is the only right religion, and they\nactually shun the notion of trying to win converts.  So if their children\nbecome totally assimilated, they say, it's their children - rather than\nthe world at large - who will be the losers.\n\n   \"It's important to have an identity,\" said Maneck Bhujwaia of San Jose,\na leader among Zoroastrians who came here from India.  \"It's important\nfor everybody - Irish, Scottish, Americans.  It gives meaning to life.\nYou don't have to depend on the majority community to give you respect.\nYou can fall back on your own identity.\"\n\n   For Zoroastrians, there's much to be proud of.\n\n   Their prophet, Zoroaster, seeking to make sense of a culture in which\nanimal sacrifice to multiple gods was common, preached that there was\nonly one god, a good one.  Zoroastrians call their god Ahura Mazda, which\ntranslates as Lord of Wisdom and Light.\n\n_Good vs. evil_\n\n   Zoroaster saw life as a constant struggle between good and evil, with\nthe good eventually winning.  Men and women could join in the battle for\ngood, he said, and he warned that they would inevitably suffer consequences\nsuch as shame and sorrow if they did wrong.  He preached honesty, charity,\nkindness to animals, respect for the environment, hard work, equality of\nmen and women - basic virtues preached by prophets of many religions.\n\n   But Zoroaster was perhaps unusual in that he told his followers not to\nfollow him blindly.  He demanded they think for themselves.  In fact,\nJoseph Campbell, the famous scholar of the history and meaning of myths,\ntraced the Western emphasis on individual thought to the Zoroastrians.\n\n   Zoroastrians have many words for thought.  Their motto, leaded into a\nstained glass window over the sacred fire at the temple on the slopes of\nMount Hamilton, is \"Good thoughts, good words, good deeds.\"\n\n   So it's not surprising that Zoroastrians value education highly.  In India,\nwhere a contingent of Zoroastrians arrived in the ninth century to escape\npersecution by Muslims in Iran, Zoroastrians claim 100 percent literacy;\nthe overall statistic in India is just 60 percent.\n\n   About half of the Bay Area Zoroastrian community came here from India\nand Pakistan, mostly to study at universities.  The other half fled from\nIran after the 1979 revolution made that a fundamentalist Islamic state\nwhere others had no rights.\n\n   Local Zoroastrians point with pride to ways their emphasis on \"good\ndeeds\" has improved life in every country they inhabit.  In San Jose,\nthe recent restoration of the Hotel Sainte Clarie came about because\nManou Mobedshahi, a San Francisco-based hotelier, passed the boarded-up\ndowntown landmark on his way to and from the temple.  At the temple's\ndedication, the chief guest of honor was the mother of Zubin Mehta, the\nZoroastrian conductor of the New York Philharmonic Orchestra.\n\n   The temple exists because of another good deed: the decision by an\nIranian emigre, the late Arbab Rustom Guiv, to buy land for six temples\nin North America.  Besides the 10-acre site off Crothers Road on Mount\nHamilton, he paid for land in Los Angeles, Chicago, New York, Toronto,\nand Vancouver.  Until his gifts, there were no Zoroastrian temples on\nthis continent.\n\n   Local Zoroastrians raised money to build the actual temple, and the\nproperty already had a large house that they have converted to a\ncommunity center.\n\n   The temple, dedicated a year ago on the birthday of the prophet \nZoroaster, is a simple structure with gleaming white walls, vaulted \nceilings and oak floors, partially covered with huge Oriental carpets.\n\n   Its central feature is the fire, set in the middle of a partly-glassed-\nin area at the center of the building.  Although Zoroastrians are \nsometimes called \"fire worshippers,\" they actually consider fire just \na symbol of God.  \"It helps us concentrate, just like Christians use the \ncross and Muslims use the Holy Book,\" Bhujwala said.\n\n   The biggest celebration of the years occurs in early spring.  For all\nIranians, including Zoroastrians, the New Year begins on the first day of\nthe season because of its symbolism as the start of new life.  With\nZoroaster's birthday just six days later, the combination of religious\nand secular holidays creates something on par with what most of the\nUnited States celebrates between Christmas and Jan. 1.\n\n  For this year's celebration of the prophet's birthday, about 500 people\ncame to worship and revel.\n\n   \"The good things in life are not forbidden,\" Esfandiar Anoushiravani,\na leader of the Iranian members, had said beforehand, and what followed\nproved him right.\n\n   Inside the temple, worshipers filled every chair and sat or stood\naround the edges of the room as about a half-dozen priests chanted\nthanksgiving prayers around a table laden with braziers of smoking\nsandalwood, glasses of milk and water, and a tray heaped with dried fruit\nand nuts.\n\n   Kids crowded around, grabbing handfuls of the treats.  \"People eat the\nfruit,\" Tarapore said.  \"It's a way to participate in the ceremony.\"\n\n_Santa Claus, sort of_\n\n   The gathering even had a Santa Claus, Iranian style.  With flowing white\nhair and a bag of gifts for the children, this Amownaroz wore green\nsymbolic of spring) and red.\n\n   He was ushed in by a sort of spring clown, Hajefyrouz, who danced and\nplayed a tambourine.\n\n   The Zoroastrians from India were charmed.  \"This is all new for us, too,\"\none told a visitor who asked what was going on.\n\n   A visitor, John A. Sabanovich of Folsom, said he became intrigued with\nthe religion years ago while on business trips to Iran.  Zoroastrians have\nno procedure for accepting converts - a result, some say, of their\ncenturies of persecution in Iran followed by their promise to the Hindu\nking who allowed them into India that they would not interfere with his\npeople's religion.\n\n   But that does not stop Sabavich from joining in the celebrations at the\nSan Jose temple whenever he can.\n\n   \"When I first heard about this religion,\" he said, \"I thought, my God,\nthis is what a religion should be.  They think for themselves and do good.\n\n   \"People who don't have a tradition, something to lean on, what's the\ndifference with the lower animals?\"\n\n------------------------------------------------ end of article ---- \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6552, "properties": {"category": "rec.sport.baseball", "text": "From: bbf2@ns1.cc.lehigh.edu (BENJAMIN BROOKER FRADKIN)\nSubject: Tigers pound Mariners!!!!!!!\nOrganization: Lehigh University\nLines: 7\n\nWere they palying football or baseball in Detroit on Saturday?  From looking\nat the school, some people may think it was football.  Between two games this\nweek, the Tigers scored 40 runs!!!!  The offense can carry them, I hope the\npitching will hold out.  I was at Camden Yards yesterday, everytime I looked\nup the score was getting higher.  What a great site it was to see the Tigers\nkicking butt while enjoying a game at Camden Yards.  GO TIGERS AND GO TONY\nPHILLIPS!!!!!!!!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6553, "properties": {"category": "sci.med", "text": "From: dozonoff@bu.edu (david ozonoff)\nSubject: Re: food-related seizures?\nLines: 24\nX-Newsreader: Tin 1.1 PL5\n\nSharon Paulson (paulson@tab00.larc.nasa.gov) wrote:\n: \n: Once again we are waiting. I have been thinking that it would be good\n: to get to as large a group as possible to see if anyone has any\n: experience with this kind of thing.  I know that members of the medical\n: community are sometimes loathe to admit the importance that diet and\n: foods play in our general health and well-being.  Anyway, as you can\n: guess, I am worried sick about this, and would appreciate any ideas\n: anyone out there has.  Sorry to be so wordy but I wanted to really get\n: across what is going on here.\n: \n: \nI don't know anything specifically, but I have one further anecdote. A\ncolleague of mine had a child with a serious congenital disease, tuberous\nsclerosis. Along with mental retardation comes a serious seizure disorder.\nThe parents noticed that one thing that would precipitate a seizure was\na meal with corn in it. I have always wondered about the connection, and\nfurther about other dietary ingredients that might precipitate seizures.\nOther experiences would be interesting to hear about from netters.\n\n--\nDavid Ozonoff, MD, MPH\t\t |Boston University School of Public Health\ndozonoff@med-itvax1.bu.edu\t |80 East Concord St., T3C\n(617) 638-4620\t\t\t |Boston, MA 02118 \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6554, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hein@eurom.rhein-main.de (Hein Roehrig)\nSubject: Windows NT und X-Windows?\nLines: 15\nOrganization: Free Software Association of Germany\n\n \nI am not sure whether I am here in the right area, but does \nanybody here know whether Windows NT does/will include a X \nWindows server so that it can run X Window applications \nremotely? This is because we are considering at our university \nto use PC's for word processing and program development, \nwhereas the bigger jobs are to be run either on SUN \nworkstations or on Fujitsu super computers.\n \nThank you very much in advance,\nHein.\n----\neurom: Free Multiline Unix BBS                    Home of the FSAG\nFrankfurt/Main,Germany                       Data: ++49-69-6312934\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6555, "properties": {"category": "rec.sport.hockey", "text": "From: Anna Matyas <am2x+@andrew.cmu.edu>\nSubject: Re: ABC coverage\nOrganization: H&SS Dean's Office, Carnegie Mellon, Pittsburgh, PA\nLines: 25\nDistribution: usa\n\t<1993Apr20.173536.7678@alchemy.chem.utoronto.ca>\nNNTP-Posting-Host: po3.andrew.cmu.edu\nIn-Reply-To: <1993Apr20.173536.7678@alchemy.chem.utoronto.ca>\n\n\nGerald Olchowy writes:\n\n>Clement, although he has a pleasant personality (aggravatingly pleasant\n>in my opinion), is a terrible\n>analyst, because he is almost alway wrong...the prototypical example\n>being New Jersey's first goal last Sunday.\n> \n>I grew up with Dick Irvin doing color beside Danny Gallivan...I knew\n>did Irvin, Dick Irvin was a friend of mine...Bill Clement you aren't\n>any Dick Irvin.\n> \n>As long as the teams involved do not include the US national team or\n>the New York Rangers, I'd take John Davidson over Bill Clement any\nday.\n\nPersonality means something to me.  That is exactly why I like Clement\n(and Emrick).  On the other hand, JD is a pompous, bull-headed, arrogant\nknow-it-all.  He's a real turn-off (which is exactly what I do when he's\non).  One complaint I do have about Clement is that he sometimes talks\ntoo much.  If I wanted that I'd listen to Tim McGarver doing a baseball\ngame.\n\nMom.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6556, "properties": {"category": "comp.graphics", "text": "From: mjw19@cl.cam.ac.uk (M.J. Williams)\nSubject: Re: Rumours about 3DO ???\nKeywords: 3DO ARM QT Compact Video\nReply-To: mjw19@cl.cam.ac.uk\nOrganization: The National Society for the Inversion of Cuddly Tigers\nLines: 32\nNntp-Posting-Host: earith.cl.cam.ac.uk\n\nIn article <2BD07605.18974@news.service.uci.edu> rbarris@orion.oac.uci.edu (Robert C. Barris) writes:\n>                                                                     We\n>got to see the unit displaying full-screen movies using the CompactVideo codec\n>(which was nice, very little blockiness showing clips from Jaws and Backdraft)\n>... and a very high frame rate to boot (like 30fps).\n\nAcorn Replay running on a 25MHz ARM 3 processor (the ARM 3 is about 20% slower\nthan the ARM 6) does this in software (off a standard CD-ROM). 16 bit colour at\nabout the same resolution (so what if the computer only has 8 bit colour\nsupport, real-time dithering too...). The 3D0/O is supposed to have a couple of\nDSPs - the ARM being used for housekeeping.\n\n>I'm not sure how a Centris/20MHz 040 stacks up against the 25 MHz ARM in\n>the 3DO box. Obviously the ARM is faster, but how much?\n\nA 25MHz ARM 6xx should clock around 20 ARM MIPS, say 18 flat out. Depends\nreally on the surrounding system and whether you are talking ARM6x or ARM6xx\n(the latter has a cache, and so is essential to run at this kind of speed with\nslower memory).\n\nI'll stop saying things there 'cos I'll hopefully be working for ARM after\ngraduation...\n\nMike\n\nPS Don't pay heed to what reps from Philips say; if the 3D0/O doesn't beat the\n   pants off 3DI then I'll eat this postscript.\n--\n____________________________________________________________________________\n\\  /  / Michael Williams                     Part II Computer Science Tripos\n|\\/|\\/\\ MJW19@phx.cam.ac.uk                          University of Cambridge\n|  |(__)Cymdeithas Genedlaethol Traddodiad Troi Teigrod Mwythus Ben I Waered\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6557, "properties": {"category": "rec.autos", "text": "From: abbott@priory.enet.dec.com (Robert Abbott)\nSubject: Re: water in trunk of 89 Probe??\nNntp-Posting-Host: priory\nOrganization: TP Performance\nLines: 18\n\n\nIn article <1r1crn$27g@transfer.stratus.com>, tszeto@sneezy.ts.stratus.com (Tommy Szeto) writes...\n>Water gradually builds up in the trunk of my friend's 89 Ford Probe.  Every\n>once in a while we would have to remove the spare and scoop out the water\n>under the plywood/carpet cover on the trunk.  I would guess this usually happens\n>after a good thunder storm.  A few Qs:\n> \n>1) Is this a common problem?\n>2) Where are the drain holes located for the hatch?\n> \n\nI had the same problem in my '90 MX-6. Luckily I had it fixed\nunder warranty. I think they replaced a tail light gasket.\nCheck with a dealer, it's a known problem.\n\n------------------------\nRobert K. Abbott\nabbott@tps.enet.dec.com          \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6558, "properties": {"category": "rec.sport.baseball", "text": "From: \"Dennis G Parslow\" <p00421@psilink.com>\nSubject: Re: Minnesota Pitching\nIn-Reply-To: <4fjvBVy00iUz86yo5_@andrew.cmu.edu>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Performance Systems Int'l\nX-Mailer: PSILink-DOS (3.4)\nLines: 36\n\n>DATE:   Mon, 5 Apr 1993 00:19:45 -0400\n>FROM:   Karim Edvard Ahmed <ka0k+@andrew.cmu.edu>\n>\n>Since I haven't been able to keep up with baseball much this season, I\n>have a few questions about my favorite team, the Minnesota Twins:\n>\n>1.  How good does their rotation look?  The last I heard, the order is\n>Tapani, Erikson, Mahomes, Banks, and some guy I've never heard of. \n>(sounds pretty pathetic to me)\n\nWell, maybe it will be.  Banks is a 24 year-old prospect who \"hasn't \nmatured as quickly as they would have liked.  Mahomes is a 22 year-old \nwho is very highly touted.  Tapani and Erickson are also young, and \nhave looked very good this spring.  The last spot was between Jim \nDeshaies, formerly of Houston and S.D. and Mike Trombley.  Deshaies \nhasn't looked very good this spring, so I believe that the spot has \ngone to Trombley, although they hadn't wanted 3 starters this unproven. \nI personally believe very highly in Mahomes and Trombley.\n\n>\n>2.  Who is playing short and third?\n\nWell, Scott Leius is the shortstop.  He played mostly 3B last year, but \nwas a SS in the minors, and moved back after Gagne left to K.C.  3B is \nsplit (maybe) between Pagliarulo, who has had a great spring, and Terry \nJorgenson, a good looking kid who has languished in Portland for 3 \nyears.  I'm not sure how the time will be divided, but they seem to be \nhappy with what they have here.  I like Jorgenson, but I fear they \nmight give too much time to Pags.\n \n>3.  How's Winfield doing?\n\nSorry, can't help you here.\n\nDennis\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6559, "properties": {"category": "alt.atheism", "text": "From: Nanci Ann Miller <nm0w+@andrew.cmu.edu>\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Sponsored account, School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 27\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <1993Apr5.020504.19326@ultb.isc.rit.edu>\n\nsnm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n> More horrible deaths resulted from atheism than anything else.\n\nThere are definitely quite a few horrible deaths as the result of both\natheists AND theists.  I'm sure Bobby can list quite a few for the atheist\nside but fails to recognize that the theists are equally proficient at\ngenocide.  Perhaps, since I'm a bit weak on history, somone here would like\nto give a list of wars caused/led by theists?  I can think of a few (Hitler\nclaimed to be a Christian for example) but a more complete list would\nprobably be more effective in showing Bobby just how absurd his statement\nis.\n\n> Peace,\n\nOn a side note, I notice you always sign your posts \"Peace\".  Perhaps you\nshould take your own advice and leave the atheists in peace with their\nbeliefs?\n\n> Bobby Mozumder\n\nNanci\n\n.........................................................................\nIf you know (and are SURE of) the author of this quote, please send me\nemail (nm0w+@andrew.cmu.edu):\nLying to ourselves is more deeply ingrained than lying to others.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6560, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wende@spk.hp.com (Mike Wende)\nSubject: Re: Zeos Computers\nOrganization: Hewlett-Packard\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 19\n\nI have had a Zeos for a couple months.  While the experience was not\npainless or perfect, it was way better than that endured by most (7\npeople I personally know) who have ordered Gateways.  (Of course,\nseveral of the Gateway buyers were rewarded by getting free stuff as\nGateway can't seem to keep track of what it has or hasn't sent\nout...B{) \n\nI got the 1 MB Viper card.  The first one was defective, but Zeos\nreplaced it with only minor hassles.  This one works fine.  I haven't\nnoticed any problems in any of my applications.  I also ordered it\nbecause of all the complaints about the ATI a few months ago.  Guess\nyou can choose either buggy state-of-the-art stuff, or robust average\nstuff.... \n\nFor my particular configuration (tower, 300 watt supply, pkg#3, no\nmonitor, viper, etc.) the Zeos was slightly cheaper than Gateway,\nAustin, etc.  But this can change from month to month.\n\nMike\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6561, "properties": {"category": "rec.autos", "text": "From: zdem0a@hgo7.hou.amoco.com (Donna Martz)\nSubject: Re: BRAINDEAD Drivers Who Don't Look Ahead--\nKeywords: bad drivers\nOrganization: Amoco\nDistribution: usa\nLines: 53\n\nhhm@cbnewsd.cb.att.com (herschel.h.mayo) writes:\n\n>> >So, I block the would-be passers. Not only for my own good , \n>>      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>> >but theirs as well even though they are often too stupid to realize it.\n>>  !!! ^^^^^^^^^^^^^^ !!!\n>> >As a rule of philosophy, I don't feel particularly sorry when somebody gets \n>> >offed by his own stupidity, but It does worry me when some idiot is in a \n>> >position to cash in my chips, too.\n>> >                                                           H.H. Mayo\n>> \n>> zdem0a@hgo7.hou.amoco.com (Donna Martz) writes:\n>> Well, Aren't we just Mr. Altruism himself!!   Just what the world needs,\n>> another frustrated self appointed traffic cop.\n\nhhm@cbnewsd.cb.att.com (herschel.h.mayo) writes:\n>Well, if you want to stick the nose of your car up the ass of a 50 foot semi, \n>I suppose it's your neck, however, I'm not going to let you kill me in the \n>bargain.  If you get frustrated by somebody delaying your inevitable death \n>due to less that wise driving practices, then TOUGH!!!\n\nWell, I never wrote that I would act as you described.  I stated that I \nwould not block a would-be passer.  I would not block a would-be passer\n\"for their own good\" or for any reason other than I was prevented from \ndoing so due to the traffic circumstance.  I fail to see how deterring a\npasser under these circumstance would IN ANY WAY decrease YOUR chances\nof being involved in an accident, fatal or otherwise.  In fact, I could\nimagine how blocking a would-be passer would actually INCREASE your \nchances of being \"offed\" or involved in an accident, especially if \nthis \"passer\" is riding your bumper.  Intentionally blocking a person\nriding your bumper is certainly NOT a \"wise driving practice\", it \nonly causes the jam to become more congested. \n \nI don't mess with trucks and I actually watch the road ahead AND the \nroad behind!   If I perceive that I am rapidly closing on a \"pack\" \nof vehicles, I try to avoid getting caught up in situation such as you \ndecribe.  Usually either traffic is just building and I have to deal \nwith this fact of life, or I wait to a slow passer to complete their \npass and make way for the pack to clear.  If someone decides then to \npull up on my bumper, I signal my intention to move to the right, and \ndo so at the first opportunity (& hope they will open the jam).  I \nfeel this is not only courteous driving, but ALOT safer than the \nactions you advocate!!!  There are actually many courteous drivers \non the road who do not intentionally impede others.  \n\nIf someone in front of me seems to be oblivious to the fact that they \nare blocking traffic I use my blinker or flash my lights, or, if all \nelse fails, will briefly speed up /slow down so they MIGHT get the \nmessage that I am a faster vehicle trying to pass.  I feel it is never \nsafe to ride anyone's bumper.  IF someone is intentionally blocking \ntraffic, because they feel that it is civil duty or philosophic duty \nor for some unfathomable reason, I feel they deserve, at the very least,\nderision.       (Sorry this is soooooooo long.)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6562, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: venaas@flipper.pvv.unit.no (Stig Venaas)\nSubject: Re: CAN'T WRITE TO 720 FLOPPY\nOrganization: ProgramVareVerkstedet - UNIT\nLines: 31\n\nIn article <1qndvd$jhn@usenet.INS.CWRU.Edu> da416@cleveland.Freenet.Edu (Andy Nicola) writes:\n>\n>In a previous article, limagen@hpwala.wal.hp.com () says:\n>\n>>OK all you experts!\n>>Need answer quick.386 machine ,1.44 floppy ; unable to write to a formated\n>>720 disk.Machine claims that disk is write protected,but it is not.\n>>\n>>Note: It 'll read 720's with no problem.\n>>\n>>Please e_mail or post.\n>>\n>>\n>>\n>>\n>If the disk is not an HD-type disk, i.e. with the extra hole in the case\n>opposite the normal write protect hole, the drive will not write to the\n>disk. You can punch a similar hole with whatever is handy or buy a small\n>device, a square hole puncher, for about $19.95...see the back pages of\n>computer shopper magazine for it.\n>\n>To be brief, make the hole any way you can or no writing!\n>\n>-- \n>Andy Nicola\n>\n\nOf course you should be able to write a DD 720Kb disk without\nmaking any holes.\n\nStig\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6563, "properties": {"category": "misc.forsale", "text": "From: whirley@sage.cc.purdue.edu (whirley)\nSubject: Oakleys' for sale; items wanted\nOrganization: Purdue University Computing Center\nDistribution: usa\nLines: 19\n\nHeya all, I've got a pair of Oakley forsale \nThere are frogskins, with aurborn red. THere are no\nscratches and only used them once or twice last summer.\nI'm looking for about 25-30 dollars but please give me a bid.\n\nI'm am looking for the following items\n\nA BUBBLE JET PRINTER that works and is el cheapo...\n\ti was looking for a cannon BJ-5 but if u have a bubble jet\nto sell please tell me. I'm looking to spend about $100 or so.\n\nA sound cards (sound blaster compatible). Again I'm looking fer something\ncheap, such as $50 or so dollars.\n\nthanks\nwhirley\n \nAddress \"whirley@sage.cc.purdue.edu\"\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6564, "properties": {"category": "sci.crypt", "text": "From: rja14@cl.cam.ac.uk (Ross Anderson)\nSubject: Re: Clipper chip -- technical details\nNntp-Posting-Host: ely.cl.cam.ac.uk\nOrganization: U of Cambridge Computer Lab, UK\nLines: 13\n\nIn article <1993Apr19.052005.20665@ulysses.att.com> smb@research.att.com (Steven \nBellovin) writes:\n\n> Nothing was said about where K_P comes from.\n\nIf you've got a secure device, you don't need public keys.\n\nIf the secret key which all chips share is SK, you can just use KP = \nE{(myname, yourname, date) ; SK}.\n\nMaybe that's why Jim Bidzos was reported as being cheesed off.\n\nRoss\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6565, "properties": {"category": "rec.sport.hockey", "text": "From: \"William K. Willis\" <ww1a+@andrew.cmu.edu>\nSubject: Don Cherry - help me out, here\nOrganization: Administrative Computing & Info Services, Carnegie Mellon, Pittsburgh, PA\nLines: 12\nNNTP-Posting-Host: andrew.cmu.edu\n\n\n     As a person who has rarely even SEEN Don Cherry and doesn't know\nanything about him, I don't know whether it is just this area\n(Pittsburgh) of the USA that is \"deprived\" of his broadcasts or whether\nhe's a Canadian thing altogether.  Seriously, what is he all about?  I\nknow he was a coach at one time, and from the volume of posts about him,\nSOMEONE surely is getting a steady diet of him somehow, but my question\nis, what is the deal with him?  Secondly, are the comments of his that I\nread about on the net merely flame bait, or do people actually take him\nseriously?  I gotta tell you, from what I see, he really sounds like an\nass.  Let me know - maybe I'm missing something.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6566, "properties": {"category": "sci.electronics", "text": "From: martyj@mrcnext.cso.uiuc.edu (martin johnson)\nSubject: Hi Volt from battery\nKeywords: capacitive discharge\nOrganization: University of Illinois at Urbana\nLines: 13\n\nI need a small battery powered hi voltage capacitive discharge supply to\ndeliver ~6 joules at 250 volts. This implies a 200uf cap. I have built\na very satisfactorily operating version from a MAX641, but do not like\nthe idea of using a $6 single source part. It seems that the ubiquitous\ncamera flash circuit is what I want, but I cant get mine apart without\nbreaking it. I would appreciate receiving the circuit description or\na source of one. I have already looked in several electronics circuits\nhandbooks to no avail. Thanx\n--\n______________________________________________\n|  martin johnson      martyj@uiuc.edu       |\n|  \"mind your business\", on first US coin    |\n|____________________________________________|\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6567, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mrw54660@eng-nxt01.cso.uiuc.edu (Michael R Whitchurch)\nSubject: File Manager problem\nOrganization: University of Illinois at Urbana\nLines: 8\n\nWhenever I start File Manager, the status bar is not displayed,\neven though it is selected in the options menu. If I deselect it,\nthen select it again, the bar appears. Anyone have any ideas why\nthis is happening?\n\nThanks\n\nMike\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6568, "properties": {"category": "talk.politics.mideast", "text": "From: hilmi-er@dsv.su.se (Hilmi Eren)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES (Henrik)\nLines: 53\nNntp-Posting-Host: alban.dsv.su.se\nReply-To: hilmi-er@dsv.su.se (Hilmi Eren)\nOrganization: Dept. of Computer and Systems Sciences, Stockholm University\n\n\n  \n|>      henrik@quayle.kpc.com writes:\n\n\n|>\tThe Armenians in Nagarno-Karabagh are simply DEFENDING their RIGHTS\n|>        to keep their homeland and it is the AZERIS that are INVADING their \n|>        territorium...\n\t\n\n\tHomeland? First Nagarno-Karabagh was Armenians homeland today\n\tFizuli, Lacin and several villages (in Azerbadjan)\n\tare their homeland. Can't you see the\n\tthe  \"Great Armenia\" dream in this? With facist methods like\n\tkilling, raping and bombing villages. The last move was the \n\tblast of a truck with 60 kurdish refugees, trying to\n\tescape the from Lacin, a city that was \"given\" to the Kurds\n\tby the Armenians. \n\n\n|>       However, I hope that the Armenians WILL force a TURKISH airplane \n|>       to LAND for purposes of SEARCHING for ARMS similar to the one\n|>       that happened last SUMMER. Turkey searched an AMERICAN plane\n|>       (carrying humanitarian aid) bound to ARMENIA.\n|>\n\n\tDon't speak about things you don't know: 8 American Cargo planes\n\twere heading to Armenia. When the Turkish authorities\n\tannounced that they were going to search these cargo \n\tplanes 3 of these planes returned to it's base in Germany.\n\t5 of these planes were searched in Turkey. The content of\n\tof the other 3 planes? Not hard to guess, is it? It was sure not\n\thumanitarian aid.....\n\n\tSearch Turkish planes? You don't know what you are talking about.\n\tTurkey's government has announced that it's giving weapons\n\tto Azerbadjan since Armenia started to attack Azerbadjan\n\tit self, not the Karabag province. So why search a plane for weapons\n\tsince it's content is announced to be weapons? \n\n\n\n\n\n\nHilmi Eren\nDept. of Computer and Systems Sciences, Stockholm University\nSweden\nHilmi-er@dsv.su.se\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6569, "properties": {"category": "sci.med", "text": "From: mcdonald@aries.scs.uiuc.edu (J. D. McDonald)\nSubject: Re: jiggers\nArticle-I.D.: aries.mcdonald.895.734049502\nOrganization: UIUC SCS\nLines: 13\n\nIn article <78846@cup.portal.com> mmm@cup.portal.com (Mark Robert Thorson) writes:\n\n>This wouldn't happen to be the same thing as chiggers, would it?\n>A truly awful parasitic affliction, as I understand it.  Tiny bugs\n>dig deeply into the skin, burying themselves.  Yuck!  They have these\n>things in Oklahoma.\n\nClose. My mother comes from Gainesville Tex, right across the border.\nThey claim to be the chigger capitol of the world, and I believe them.\nWhen I grew up in Fort Worth it was bad enough, but in Gainesville\nin the summer an attack was guaranteed.\n\nDoug McDonald\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6570, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Level 5?\nOrganization: Express Access Online Communications USA\nLines: 11\nNNTP-Posting-Host: access.digex.net\n\n\n\nWHile we are on the subject of the shuttle software.\n\nwhat ever happened to the hypothesis  that the shuttle flight software\nwas a major factor in the loss of 51-L.  to wit,  that during the\nwind shear event,  the Flight control software  indicated a series\nof very violent engine movements that shocked and set upa harmonic\nresonance  leading to an overstress of the struts.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.309+0000", "event": "documents", "entityId": 6571, "properties": {"category": "sci.space", "text": "From: sysmgr@king.eng.umd.edu (Doug Mohney)\nSubject: Re: Commercial mining activities on the moon\nOrganization: Computer Aided Design Lab, U. of Maryland College Park\nLines: 10\nReply-To: sysmgr@king.eng.umd.edu\nNNTP-Posting-Host: queen.eng.umd.edu\n\nIn article <STEINLY.93Apr20160116@topaz.ucsc.edu>, steinly@topaz.ucsc.edu (Steinn Sigurdsson) writes:\n\n>Very cost effective if you use the right accounting method :-)\n\nSherzer Methodology!!!!!!\n\n\n\n    Software engineering? That's like military intelligence, isn't it?\n  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6572, "properties": {"category": "comp.graphics", "text": "From: rsc@altair.csustan.edu (Steve Cunningham)\nSubject: Re: SIGGRAPH\nSummary: No free lunch this year!\nOrganization: CSU Stanislaus\nLines: 27\n\nsrnelson@speedsail.Eng.Sun.COM (Scott R. Nelson) writes:\n\n> dave.mikelson@almac.co.uk (Dave Mikelson) writes:\n> ...\n> >Does anyone know if there is an 'open day' for the public at any time?\n> >That is, not to attend conferences, but just browse around the \n> >exhibits.  Or are the exhibits etc just for fully registered attendees?\n> was free as long as you got it to Siggraph on or before July 7.\n> For 1991, it was similar: $20.00 or free before July 9.  It is safe\n> to assume that the same kind of deal will be available this year.\n\n\tI just got my advance program and the \"card in the back\" is for the\n\tExhibits Plus program -- the exhibits plus admission to a number of\n\tconference venues, including a special general session, \"Behind the\n\tScenes: Computer Graphics in Film.\"  Admission is not free, but is a\n\tnominal $30 (exhibits are open August 3 -- 5).\n\n\tTo get a copy of the advance program, you can call 312-321-6830; the\n\tadvance program itself is a good indication of the excitement of the\n\tconference!\n\n> \n> Register early and get in for free.\n\n\tSorry -- doesn't work this year!\n\n-- Steve Cunningham\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6573, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mmiller@garnet.msen.com (Marvin Miller)\nSubject: LC III NuBus Capable?\nOrganization: Msen, Inc. -- Ann Arbor, MI (account info +1 313 998-4562)\nLines: 21\nNNTP-Posting-Host: garnet.msen.com\nX-Newsreader: TIN [version 1.1 PL9]\n\n\n\nForgive me if this has been asked before... but here goes:\n\nMy friend recently purchased a LC III and he wants to know if there is\nsuch a demon called NuBus adapter for his PDS slot? CompUsa and\nComputerCity Supercenter says they don't carry them.\n\nDoes this mean LC III is incapable of carrying a NuBus board?\n\nMuch obiliged,\nMarvin\n+-------------------------------------------------------------------+\n| MMILLER@GARNET.MSEN.COM          | \"The more I deal with hearing  |\n| Editor-in-Chief/Co-Publisher of  |  people, the more I understand |\n| The Deaf Michigander             |  terrorism.\"                   |\n| $22 a year for 11\" by 17\"        |               -Marvin          |\n| monthly newspaper                |                                |\n| (E-mail me for a complimentary   | Above quote does not apply to  |\n|  copy today!)                    | all hearing people, though.    |\n+-------------------------------------------------------------------+\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6574, "properties": {"category": "sci.electronics", "text": "From: kludge@grissom.larc.nasa.gov (Scott Dorsey)\nSubject: Re: subliminal message flashing on TV\nOrganization: NASA Langley Research Center and Reptile Farm\nLines: 19\nNNTP-Posting-Host: grissom.larc.nasa.gov\n\nIn article <7480237@hpfcso.FC.HP.COM> myers@hpfcso.FC.HP.COM (Bob Myers) writes:\n>> Hi.  I was doing research on subliminal suggestion for a psychology\n>> paper, and I read that one researcher flashed hidden messages on the\n>> TV screen at 1/200ths of a second.  Is that possible?  I thought the\n>> maximum rate the TV was even capable of displaying images was 1/30th\n>> of a second.  (or 1/60th of a second for an image composed of only odd\n>> or even scan lines)\n>\n>You are correct; the fastest \"complete\" image that could be presented on\n>TV would be one field, which is 1/60 of a second (approximately).  Of course,\n>the phrase \"TV screen\" is often thrown around in reference to any CRT\n>display, so perhaps this researcher wasn't using normal TV rates.  Might\n>even be a vector (\"strokewriter\") display, in which case the lower limit\n>on image time is anyone's guess (and is probably phosphor-persistence limited).\n\nActually, a lot of this work used to be done with a CRT that had a beamsplitter\nmounted in front, and a tachistoscope driving it.  The tachistoscope is really\njust a slide projector with a very fast shutter.  Low tech, but it does the job.\n--scott\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6575, "properties": {"category": "comp.graphics", "text": "From: jbulf@balsa.Berkeley.EDU (Jeff Bulf)\nSubject: Re: Fractal compression\nKeywords: fractal\nReply-To: jbulf@balsa.Berkeley.EDU (Jeff Bulf)\nOrganization: Kubota Pacific Computers Inc.\nLines: 12\n\nIn article <inu530n.735550992@lindblat.cc.monash.edu.au>, inu530n@lindblat.cc.monash.edu.au (I Rachmat) writes:\n|> Hi... can anybody give me book or reference title to give me a start at \n|> fractal image compression technique. Helps will be appreciated... thanx\n\nFor better worse, the source on this on is Michael Barnsley. His article\nin The Science of Fractal Images (Peitgen et al) is a fair-to-middling\nintro. Barnsley's book Fractals Everywhere is a more thorough treatment.\nThe book covers Iterated Function Systems in general, and their application\nto image compression is clear from the text.\n--- \n\tdr memory\n\tjbulf@kpc.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6576, "properties": {"category": "comp.graphics", "text": "From: brr1@ns1.cc.lehigh.edu (BRANT RICHARD RITTER)\nSubject: computer graphics to vcr?\nOrganization: Lehigh University\nLines: 15\n\n\n    HELP   MY FRIEND AND I HAVE A CLASS PROJECT IN WHICH WE ARE TRYING TO MAKE\n    A COMPUTER ANIMATED MOVIE OF SORTS WITH THE DISNEY ANIMATION AND WOULD\n    LIKE TO PUT WHAT WE HAVE ON A VCR IS THIS POSSIBLE?  IS IT EASY AND\n    RELATIVELY CHEAP? IF SO HOW? WE BOTH HAVE 386 IBM COMPATIBLES BUT ARE\n    RELATIVELY CLUELESS WITH COMPUTERS IF YOU COULD HELP PLEASE DO.\n\n                                THANX.\n-- \nBRANT RITTER\n-----------------------------------------------------\nmoshing--   \"a cosmic cesspool of physical delight.\"\n                                  -A. Kiedas\n                                     RHCP\n-----------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6577, "properties": {"category": "sci.med", "text": "From: kturner@copper.denver.colorado.edu (Kathleen J Turner)\nSubject: Mystery Illness with eye problems\nOrganization: University of Colorado at Denver\nLines: 29\n\n\n\tA friend has the following symptoms which have occurred periodically\nevery few months for the last 3 years.  An episode begins with extreme\ntiredness followed by:\n\n\t1. traveling joint pains and stiffness affecting mostly the elbows,\n\tknees, and hips.\n\t2. generalized muscle pains\n\t3. tinnitus and a feeling of pressure in her ears\n\t4. severe sweating occuring both at night and during the day\n\t5. hemorrhaging in both eyes.  Her opthamologist calls it peripheral\n   retinal hemorhages and says it looks similar to diabetic retinopathy.  (She\n        isn't diabetic--they checked.\n\t6. distorted color vision and distorted vision in general (telephone\n\t   poles do not appear to be straight)\n\t7. loss of peripheral vision.\n \t\n\tMany tests have been run and all are normal except for something \ncalled unidentified bright objects found on a MRI of her brain.  The only\nthing that seems to alleviate one of these episodes is prednisone.  At\ntimes she had been on 60 mg per day.  Whenever she gets down to 10-15 mg\nthe symptoms become acute again.\n\n\tShe is quite concerned because the retinal hemorrhages are becoming\nworse with each episode and her vision is suffering.  None of the docs she\nhas seen have any idea what this condition is or what can be done to stop\nit.  Any suggestions or advice would be greatly appreciated. Thanks in \nadvance.  Kathy Turner\n\t\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6578, "properties": {"category": "misc.forsale", "text": "From: bigjoe@netcom.com (g perry)\nSubject: 1956 Elvis autograph\n A friend requested that I post the following:\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nDistribution: World \nLines: 9\n\n\"\tFor sale: 1956 Elvis Prestly autograph. Autogaph is one of two, the\nothere being Elvis's friend Red West and were obtained by the seller in the\nspring of 1956 in Jacksonville , Fla the afternoon following the incident\nwhen Elvis collapsed during a concert at the Gaterbowl in Jacksonville.\n\tRequest offers.\n           Ellen T. (408) 978-7716 (San Jose, CA.)\"\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6579, "properties": {"category": "rec.sport.hockey", "text": "From: ching@bigwpi.WPI.EDU (\"The Logistician\")\nSubject: #77's?\nOrganization: Worcester Polytechnic Institute\nLines: 11\nDistribution: world\nNNTP-Posting-Host: bigwpi.wpi.edu\n\n\nI am in need of all of the players wearing #77 in the NHL.  I know now only\nof one, Ray Borque for the Bruins.  Any help would be greatly appreciated.\n\nThanx.\n\n-- \n------------------------THE LOGISTICIAN REIGNS SUPREME!!!----------------------\n|\t\t\t\t\t\t\t\t\t      |\n|   GO BLUE!!!   GO TIGERS!!!   GO PISTONS!!!   GO LIONS!!!   GO RED WINGS!!! |\n-------------------------------ching@wpi.wpi.edu-------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6580, "properties": {"category": "rec.sport.baseball", "text": "From: mmontgom@liberty.uc.wlu.edu (Matthew R. Montgomery)\nSubject: Re: With a surge in the last two weeks...\nOrganization: Washington & Lee University\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 15\n\n\n\n: \t\t\tWatch us soar in 1993!\n\n\nShouldn't that be 'Watch us stoned in 1993!'? :)\n\nor maybe 'Watch us suck in 1993!'\n\nor even 'Watch us sore in 1993!'\n\n________________________________________________________________________\nMatt  \nMontgomery              'No, really I *like* the Phillies' \n________________________________________________________________________\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6581, "properties": {"category": "rec.autos", "text": "From: mac1@Isis.MsState.Edu (Mubashir Cheema)\nSubject: 1st time Chrysler buyer, $400 off really ?\nSummary: $400 off\nKeywords: $400 off\nNntp-Posting-Host: isis.msstate.edu\nOrganization: Mississippi State University\nLines: 13\n\n\n Hello World,\n\t     just bought a new Stealth two weeks ago. Got a grad student \n rebate. Someone told me that there's another $400 reabet for 1st time\n Chrysler buyer. True ? If yes can I still get it or am I too late ?\n\n\nMubashir Cheema\nSparco Communications\t\t\t\tPh: (601) 323-5360\nLaGalarie \t\t\t\t\tFax:(601) 324-6433\n500 Russell Street, Suite 20\t\t\temail: mac1@ra.msstate.edu\nStarkville, MS 39759\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6582, "properties": {"category": "alt.atheism", "text": "From: dpw@sei.cmu.edu (David Wood)\nSubject: Request for Support\nOrganization: Software Engineering Institute\nLines: 35\n\n\n\nI have a request for those who would like to see Charley Wingate\nrespond to the \"Charley Challenges\" (and judging from my e-mail, there\nappear to be quite a few of you.)  \n\nIt is clear that Mr. Wingate intends to continue to post tangential or\nunrelated articles while ingoring the Challenges themselves.  Between\nthe last two re-postings of the Challenges, I noted perhaps a dozen or\nmore posts by Mr. Wingate, none of which answered a single Challenge.  \n\nIt seems unmistakable to me that Mr. Wingate hopes that the questions\nwill just go away, and he is doing his level best to change the\nsubject.  Given that this seems a rather common net.theist tactic, I\nwould like to suggest that we impress upon him our desire for answers,\nin the following manner:\n\n1. Ignore any future articles by Mr. Wingate that do not address the\nChallenges, until he answers them or explictly announces that he\nrefuses to do so.\n\n--or--\n\n2. If you must respond to one of his articles, include within it\nsomething similar to the following:\n\n    \"Please answer the questions posed to you in the Charley Challenges.\"\n\nReally, I'm not looking to humiliate anyone here, I just want some\nhonest answers.  You wouldn't think that honesty would be too much to\nask from a devout Christian, would you?  \n\nNevermind, that was a rhetorical question.\n\n--Dave Wood\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6583, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: kushmer@bnlux1.bnl.gov (christopher kushmerick)\nSubject: How hot should the cpu be?\nOrganization: Brookhaven National Laboratory\nDistribution: na\nLines: 15\n\n\nHow hot should the CPU in a 486-33 DX machine be?\n\nCurrently it gets so hot that I can not hold a finger on it for more than\n0.5 s. \n\nI keep a big fan blowing on it, but am considering using a heat sink.\n\nAny advice?\n\n\n-- \nChris Kushmerick\nkushmer@bnlux1.bnl.gov\n--I found my niche in life, I just didn't fit in.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6584, "properties": {"category": "comp.windows.x", "text": "From: bshaw@spdc.ti.com (Bob Shaw)\nSubject: SUMMARY  xon and X11R5\nNntp-Posting-Host: bobasun\nOrganization: TI Semiconductor Process and Design Center\nLines: 15\n\n\nHi folks\nThanks to the ones that replied, however, my problem turned out\nto be very simple.\n\nIn my .Xresources I had a space after XTerm*font:   10x20.\nRemoving this and xrdb fixed my problem.\n\nAlso, same symptom, was that some of my users did not have the\nproper capitals for XTerm*font.\n\nThanks again\n\nBob\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6585, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dbstrutt@acs.ucalgary.ca (David Bryan Strutt)\nSubject: Re: Help with changing Startup logo\nDistribution: usa\nNntp-Posting-Host: acs5.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 29\n\nIn article <1rgtba$gtn@access.digex.net> farley@access.digex.com (Charles U. Farley) writes:\n>\n>I know this is probably a FAQ, but...\n>\n>I installed the s/w for my ATI graphics card, and it bashed my Windows\n>logo files.  When I start Windows now, it has the 3.0 logo instead of\n>the 3.1 logo.\n>\n>I thought the files that controlled this were\n>\n>\\WINDOWS\\SYSTEM\\VGALOGO.RLE\n>\\WINDOWS\\SYSTEM\\VGALOGO.LGO\t\n>\n>I restored these files, but it didn't change the logo.  Anyone know what\n>the correct files are?\n\nI believe you have the correct files. I think what you'll have to\ndo is go back into Setup and choose change video adapter or\nwhatever it is called. Then the trick is choose the same adaptor\nyou currently have. What Setup does is it actually changes the\nfile WIN.COM whenever you go into it and change the video\nhardware selection. It incorporates the contents of VGALOGO.RLE\ninto WIN.COM when you do this. This trick can also be used to\nchange the startup logo into whatever you want it to be.\n-- \n[.SIG ALERT]\n\f\ndbstrutt@acs.ucalgary.ca\n[END .SIG ALERT]\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6586, "properties": {"category": "sci.space", "text": "From: abdkw@stdvax (David Ward)\nSubject: Re: Questions about Titan IV and Ariane 5\nDistribution: sci\nOrganization: Goddard Space Flight Center - Robotics Lab\nLines: 26\nNews-Software: VAX/VMS VNEWS 1.4-b1\n\nIn article <C50orq.7G0@news.cso.uiuc.edu>, gwg33762@uxa.cso.uiuc.edu (Garret W. Gengler) writes...\n>In sci.space you write:\n> \n>>Try the ENVIRONET database at GSFC. FTP to envnet.gsfc.nasa.gov or \n>>128.183.104.16, or call (310)286-5690.  They have data on STS, Ariane, Titan, \n>>Atlas, Delta and Scout launch environments.\n> \n>Howdy.  Thanks for the info.\n> \n>I tried \"anonymous\" FTP there, but it didn't work.\n>I also tried telnetting to the same address, but it asked for a login\n>and password, although there was a note saying that the new username for\n>environet was \"envnet\".  \n> \n>Anyways, do you have any idea what else I should try?\n> \n>Thanks,\n>Garret\n> \n> \nThe home office number for ENVIRONET is (301) 286-5690 (note area\ncode change).  A friend of mine used to use it to get LDEF data, but\nhe had to apply for a login name and password.  I have a call in for\nmore info, which I hope to get in the morning.\n\nDavid W. @ GSFC\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6587, "properties": {"category": "alt.atheism", "text": "Subject: Re: There must be a creator! (Maybe)\nFrom: halat@pooh.bears (Jim Halat)\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 24\n\nIn article <16BA1E927.DRPORTER@SUVM.SYR.EDU>, DRPORTER@SUVM.SYR.EDU (Brad Porter) writes:\n>\n>   Science is wonderful at answering most of our questions.  I'm not the type\n>to question scientific findings very often, but...  Personally, I find the\n>theory of evolution to be unfathomable.  Could humans, a highly evolved,\n>complex organism that thinks, learns, and develops truly be an organism\n>that resulted from random genetic mutations and natural selection?\n\n[...stuff deleted...]\n\nComputers are an excellent example...of evolution without \"a\" creator.\nWe did not \"create\" computers.  We did not create the sand that goes\ninto the silicon that goes into the integrated circuits that go into\nprocessor board.  We took these things and put them together in an\ninteresting way. Just like plants \"create\" oxygen using light through \nphotosynthesis.  It's a much bigger leap to talk about something that\ncreated \"everything\" from nothing.  I find it unfathomable to resort\nto believing in a creator when a much simpler alternative exists: we\nsimply are incapable of understanding our beginnings -- if there even\nwere beginnings at all.  And that's ok with me.  The present keeps me\nperfectly busy.\n\n-jim halat\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6588, "properties": {"category": "rec.sport.baseball", "text": "From: gspira@nyx.cs.du.edu (Greg Spira)\nSubject: Re: Why Spanky?\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 27\n\nboone@psc.edu (Jon Boone) writes:\n\n>On Mon, 12 Apr 93 00:53:14 GMT in <<1993Apr12.005314.5700@mnemosyne.cs.du.edu>> Greg Spira (gspira@nyx.cs.du.edu) wrote:\n\n>:>Does anybody in the Pittsburgh area know why Mike LaValliere was released?\n>:>Last year I kept saying that Slaught should get the bulk of the playing time,\n>:>that he was clearly the better player at this point, but Leyland insisted on\n>:>keeping a pretty strict platoon.  And now he is released?  That doesn't\n>:>make any sense to me.\n\n>Greg,\n\n>    The story goes like this:\n\n>       Spanky is too slow!  If he were quicker, he would still be here.\n>But with Slaught and Tom Prince, they didn't want to lose Prince in order\n>to bring up that 11th pitcher.  Slaught is about as good as Spanky and\n>Prince is coming along nicely!\n\nWell, my question still hasn't been answered: if Spanky was bad enough to\nrelease this year, why did he get so much playing time last year?  Yes, I know\nhe was part of a platoon, and that's why he got more playing time than\nSlaught, but that doesn't answer the question.  If Slaught was so obviously\nbetter this year, wasn't this also obvious last year, and shouldn't he\nhave been taking away some of Spanky's playing time against righties?\n\nGreg \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6589, "properties": {"category": "sci.electronics", "text": "From: cab@col.hp.com (Chris Best)\nSubject: Re: Police radar....Just how does it work??\nOrganization: your service\nLines: 7\nNNTP-Posting-Host: hpctdkz.col.hp.com\n\nI've seen several references to split- or separate-beam radars, which I\nclaimed didn't exist.  Gotta eat some crow here - I wasn't aware of them.\nAll I really knew was that it can be done with one beam.\n\nI believe the rest of what I said is accurate, though.\n\nMmmmmmm....crow.... (oops-wrong group)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6590, "properties": {"category": "rec.sport.hockey", "text": "From: galvint@cs.nps.navy.mil (thomas galvin)\nSubject: Re: Washington To Beat Pitt\nOrganization: Naval Postgraduate School, Monterey CA\nLines: 23\n\nIn article <93105.052120RAP115@psuvm.psu.edu> Robbie Po <RAP115@psuvm.psu.edu> writes:\n>In article <1993Apr14.015415.10176@mprgate.mpr.ca>, tasallot@galaxy.mpr.ca\n>(Mathew Tasalloti) says:\n>>chances this year), but it seems to me like Washington is the ONLY\n>>team that can stop the Penguins from winning their next Stanley Cup.\n>\n>  Really? I think both the Islanders and Devils would have a better chance\n>at the Penguins than the Capitals, IMO.\n>-------------------------------------------------------------------------\n>** Robbie Po **          PGH PENGUINS!!!    \"It won't be easy, but it\n>Contact for the '93-'94  '91 STANLEY CUP    will have greater rewards.\n>Penn State Lady Lions    '92 CHAMPIONS      Mountains and Valleys are\n>rap115@psuvm.psu.edu     11 STRAIGHT WINS!  better than nothing at all!\"\n\nReally?  What makes you think the Islanders have a better shot?  They\ncouldn't even beat the Whalers in two games!\n\n(Well, since you're a Pens fans the whole question is moot.  I think\nthe teams most likely to beat the Pens are the Bruins, Nordiques, and\nBlackhawks but I don't think they can really do it.  :-))\n\n-Tom Galvin       galvint@taurus.cs.nps.navy.mil\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6591, "properties": {"category": "rec.sport.hockey", "text": "From: nittmo@camelot.bradley.edu (Christopher Taylor)\nSubject: Anyone Have Official Shorthanded Goal Totals?\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Bradley University\nDistribution: na\nLines: 4\n\nDoes anyone out there have the shorthanded goal totals of the NHL players\nfor this season?  We're trying to finish our rotisserie stats and need SHG\nto make it complete.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6592, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: NHL team leaders in +/-\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 66\n\nIn <1993Apr5.185633.17843@ists.ists.ca> dchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n\n>Implicitly you are assuming that goals scored against Winnipeg with Selanne\n>on the ice can be blamed on him...Roger, he is a FORWARD.  Winnipeg has a\n>lousy defensive record anyway.  Let's put it another way.  John Cullen's +/-\n>is terrible.  What's your excuse for him?  That his powerplay points don't\n>count?  Neither do Selanne's... \n\nAre you comparing Cullen to Salami?  I would say that that is valid.  If\nWinnipeg is such a lousy defensive team then why the hell does Salami\nstand around the other team's blueline when the puck is in his own end?\n\n>>The object of the game is not to feed Selanne - it is \n>>to win.  And feeding Selanne does not contribute in any meaningful way\n>>to winning.\n\n>Knowledgeable hockey observers the world over would agree that\n>feeding Selanne so he can score does contribute in a meaningful way to\n>winning. \n\nExcuse me?  Are the Jets playing .500 hockey?  Let me check...yes - but just\nbarely.  They have allowed more goals than they have scored.  Sounds an\nawful lot like Salami's +/- to me.  Sounds like they would be just as well\noff - or better - if he played the solid two-way game that our friends in\nFinland claim he is capable of.  But if he did that he wouldn't be chal-\nlenging for the league lead in goals would he?  The Bi-Planes might be\nchallenging for first however...\n\n>You're worried about Teemu when you have Glenn Anderson on your team?\n\nNow let's see...you have compared Timo to Anderson and Cullen.  Who's\nnext?  Mike Foligno?\n\n>>We DON'T KNOW what Selanne does best.  We do know what Jet's management\n>>wants.  And again, the object of the exercise is not to allow Selanne to\n>>do what he does best, it is to win hockey games.\n\n>What he does best is score...so I refer you to my comment above.\n\nSome of our Finnish friends who have watched him play claim that he\ncan play a solid two-way game.  I would have to say that this style\nof contribution would be more conducive to winning.  Or don't you \nthink so?\n\n>>As it is now, Selanne\n>>is a grandstanding goal suck.  Did you see the way he parades around\n>>with his arms outstretched after scoring a goal?  You would think the\n>>Messiah had returned...\n\n>Nope, didn't see it.  I was too busy watching Foligno jump up and down after\n>_his_ goal....\n\nI don't believe it!  You did compare him to Foligno!  (And I honestly hadn't\nread this far).\n\nIt would help if you used a little discrimination in your thinking.  Your\ncontributions would be more highly valued if we could see that you weren't\ntrying to be merely argumentative.\n\ncordially, as always,\n\nrm\n\n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6593, "properties": {"category": "soc.religion.christian", "text": "From: marka@hcx1.ssd.csd.harris.com (Mark Ashley)\nSubject: Re: SATANIC TOUNGES\nOrganization: Harris CSD, Ft. Lauderdale, FL\nLines: 23\n\nIn article <May.2.09.50.21.1993.11782@geneva.rutgers.edu> mmh@dcs.qmw.ac.uk (Matthew Huntbach) writes:\n>I have seen the claims, but I don't know if there are any\n>authenticated cases of people making prolonged speeches in\n>real languages they don't know. From my observations, \"speaking\n>in tongues\" in practice has nothing at all do with this.\n\nI have a simple test. I take several people who can speak\nonly one language (e.g. chinese, russian, german, english).\nThen I let the \"gifted one\" start \"speaking in toungues\".\nThe audience should understand the \"gifted one\" clearly\nin their native language. However, the \"gifted one\" can\nonly hear himself speaking in his own language.\n\nWorks everytime. 8-)\nPerhaps I would believe the \"gifted ones\" more if they were\nglorifying God rather than themselves. Then perhaps we'd\nwitness a real miracle.\n\n-- \n-------------------------------------------------------------------------\nMark Ashley                        |DISCLAIMER: My opinions. Not Harris'\nmarka@gcx1.ssd.csd.harris.com      |\nThe Lost Los Angelino              |\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6594, "properties": {"category": "sci.electronics", "text": "From: ravin@eecg.toronto.edu (Govindan Ravindran)\nSubject: decoupling caps - onboard\nOrganization: Department of Electrical and Computer Engineering, University of Toronto\nLines: 10\n\n(posted for a friend)\nhello there,\n        I would like to know if any one had any experience with having\non-board decoupling capacitors (inside a cmos chip) for the power\nlines. Say I have a lot of space left im my pad limited design.\nany data on the effect of oxide breakdown? any info or pointers\nare appreciated.\n\nrs\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6595, "properties": {"category": "talk.politics.misc", "text": "From: jfc@athena.mit.edu (John F Carr)\nSubject: Re: The state of justice\nOrganization: Massachusetts Institute of Technology\nLines: 13\nNNTP-Posting-Host: achates.mit.edu\n\nIn article <1993Apr15.170239.8211@hemlock.cray.com>\n\trja@mahogany126.cray.com (Russ Anderson) writes:\n\n>There's a guy on death row in Texas that was denied a new trial, dispite\n>evidence of his inocents.\n\nI recommend the book \"Adams _v_ Texas\", the story of a man (Adams) who\nwas sentenced to death for a crime he didn't commit.  Most of the book\nis the story of the long appeals process, and the problems and delays\ncaused by not being able to introduce new evidence in certain courts.\n\n--\n    John Carr (jfc@athena.mit.edu)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.310+0000", "event": "documents", "entityId": 6596, "properties": {"category": "talk.politics.misc", "text": "From: paul@hsh.com (Paul Havemann)\nSubject: Re: Gore throws out the first ball. And media coverage of it\nDistribution: usa\nOrganization: HSH Associates\nLines: 30\n\nIn article <1993Apr13.122543.1682@hemlock.cray.com>, rja@mahogany126.cray.com (Russ Anderson) writes:\n> \n> In article <C5E2JA.849@ncratl.AtlantaGA.NCR.COM>, mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson) writes:\n>> This past Thursday VP GOre threw out the first ball at the home opener for\n>> the Atlanta Braves. According to the news reports he was quite loudly booed.\n>> (No, Dr. Norman, these were not your typical beer swilling red-necks.)\n>> \n>> Personally I wouldn't have paid any more attention to the incident except\n>> that the evening news when describing the event, went on to comment that\n>> being booed was nothing unusual since it was normal for audiences to\n>> boo at this point since the celebrity was delaying the start of the game.\n>> \n>> What a bunch of crock. I have never heard of any incident in which the\n>> thrower of the ceremonial ball has been booed before.\n> \n> Dan Quayle got roundly booed in Milwaulkee last year.  (I was listening \n> on the radio).  This was the game that Quayle told the Brewers players that\n> he would like to see them play the Orioles in the ALCS.\n\nIt's come to this, has it?  Defending Al Gore by comparing him to Dan Quayle?\nI'd say that about says it all... back to the pit with ye, back to alt.fan.\ndan-quayle!  Begone!\n\n------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ \n\nPaul Havemann   (Internet: paul@hsh.com)\n\n   * They're not just opinions -- they're caffeine for the brain! *\n         ** (Up to 50 milligrams per cynical observation.) **\n     Recommended Minimum Daily Requirement: 1,000 mg.  Keep reading.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6597, "properties": {"category": "soc.religion.christian", "text": "From: jsledd@ssdc.sas.upenn.edu (James Sledd)\nSubject: Serbian genocide Work of God?\nOrganization: Social Science Computing\nLines: 13\n\nAre the Serbs doing the work of God?  Hmm...\n\nI've been wondering if anyone would ever ask the question,\n\nAre the governments of the United States and Europe not moving\nto end the ethnic cleansing by the Serbs because the targets are\nmuslims?\n\nCan/Does God use those who are not following him to accomplish\ntasks for him?  Esp those tasks that are punative?\n\nJames Sledd\nno cute sig....  but I'm working on it.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6598, "properties": {"category": "talk.politics.misc", "text": "From: MCARTWR@auvm.american.edu (Martina Cartwright)\nSubject: Re: Why not concentrate on child molesters?\nArticle-I.D.: auvm.93096.030733MCARTWR\n <1993Mar28.022903.13575@ncsu.edu> <93087.042722MCARTWR@auvm.american.edu>\n <Mar28.195002.34060@yuma.ACNS.ColoState.EDU>\n <93087.190106MCARTWR@auvm.american.edu> <7166@pdxgate.UUCP>\n <1993Apr5.233224.10069@lmpsbbs.\nOrganization: The American University - University Computing Center\nLines: 53\n\nIn article <1993Apr5.233224.10069@lmpsbbs.comm.mot.com>,\nbhv@areaplg2.corp.mot.com (Bronis Vidugiris) says:\n>\n>In article <7166@pdxgate.UUCP> a0cb@rigel.cs.pdx.edu (Chris Bertholf) writes:\n>)MCARTWR@auvm.american.edu (Martina Cartwright) writes:\n>)\n>)\n>)>The official and legal term for rape is \"the crime of forcing a FEMALE\n>)>to submit to sexual intercourse.\"\n>)\n>)Please, supply me with some references.  I was not aware that all states\n>)had the word \"FEMALE\" in the rape statutes.  I am sure others are surprised\n>)as well.  I know thats how it works in practice (nice-n-fair, NOT!!), but\n>)was unaware that it was in the statutes as applying to FEMALES only,\n>)uniformly throughout the U.S.\n>\n>I agree mostly with Chris.  It is (unfortunately, IMO) true that the *FBI*\n>figures for rape based on the 'uniform crime report' report only female\n>rapes. However, some states (such as Illinois) are not tabluated because they\n>refuse to comply with this sexist definition!\n>--\n>The worms crawl in\n>The worms crawl out\n>The worms post to the net from your account\n\nInsofar as several \"liberal\" jurisdictions are concerned, the essential\nelements of rape are gender neutral. Nonetheless, I decided to provide\na number of references to support my original argument. Black's Law\nDictionary (every law student/lawyer's friend) defines rape as: Unlawful\nsexual intercourse with a female without her consent. The unlawful\nknowledge of a woman by a man forcibly and against her will. The Model\nPenal Code (the statute proposed by the National Conference of Commissioners\nof Uniform State Laws or other organization for adoption by state legislatures)\ndefines rape as: A male who has sexual intercourse with a female not his wife\nis guilty of rape if he (a) compels her to submit by force or by threat of\nimminent death.... (MPC @213.1(1)(a))\n\nIndeed the following jurisdictions/states have statutes similar to the MPC:\n\nAlabama-- Code of Ala. @13A-6-61 (1992)\nArkansas--Ark.Stat.Ann. @5-14-103 (1993)\nDistrict of Columbia--D.C. Code @22-2801 (1992)\nGeorgia--O.F.G.A. @16-6-1 (1992)\nIdaho--Idaho Code @18-6101 (1992)\nMaryland--Md.Ann.Code.Art. 27 @462 (1992)\nMississippi--Miss.Code Ann. @97-3-71 (1993)\nNew York (check case law)--N.Y.C.L.S. Penal @130.35 (1993)\nNorth Carolina--N.C. Gen.Stat. @14-27-2 (1992)\nPuerto Rico--L.P.R.A. @4062 (1993)\n\nTa,\n\nMartina\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6599, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Re: Need info on 43:1 and suicide for refutation\nOrganization: Ideology Busters, Inc.\nDistribution: usa\nLines: 203\n\nHere's something Preston Covey (professor of ethics at CMU) wrote:\n\nFrom: \"Preston K. Covey\" <covey+@andrew.cmu.edu>\nSubject: Gun Stats & Mortal Risks\nDate: Mon, 15 Feb 1993 18:35:05 -0500 (EST)\n\n\nFolks,\n\nHail from the nether world.  On February 4th, the Wall Street Journal\ncarried a front-page article by Erik Larson entitled \"Armed Force.\"  I\nfelt a reply was in order to his citation of the notorious scare stat\nthat \"A Gun is 43 times more likely to kill than to protect.\"  I sent\nthe following to the WSJ.\n\n-----\n\nGun Stats & Mortal Risks\n\nPreston K. Covey\n\n\n\tErik Larson~s even-handed article on Paxton Quigley (~Armed Force,~\n2/4/93, WSJ) cites the world~s most notorious ~statistic~ regarding guns\nin the home:  ~A pioneering study of residential gunshot deaths in King\nCounty, Washington, found that a gun in the home was 43 times more\nlikely to be used to kill its owner, spouse, a friend or child than to\nkill an intruder.~  The ~43 times~ stat is everywhere these days;  it\nhas grown in media lore like the proverbial urban myth: it was inflated\nby one pugilistic talk-show pundit to ~93.~  Given the shock value of\nthe finding, the conclusion of the 1986 New England Journal of Medicine\n(NEJM) study is remarkably understated:  ~The advisability of keeping\nfirearms in the home for protection must be questioned.~ \n \n\tResponsible people should indeed question the risks and benefits of\nbringing a firearm into their home.   But what we need to know is this: \nWhat exactly are the risks and benefits?  The NEJM testimony is neither\nthe whole truth about the benefits nor nothing but the truth about the\nrisks.  Further, as with motor vehicles, we want to know:  What control\ndo we have over the risks and benefits?  And, as with the risks of\ncancer or heart disease or auto accidents:  How can we minimize the\nrisks?  Like raw highway death tolls, the NEJM stat is not very helpful\nhere. \n\n\tThe NEJM finding purports to inform us, but it is framed to warn us\noff.  It is widely promulgated in the media as a ~scare stat,~ a\nmisleading half-truth whose very formulation is calculated to prejudice\nand terrify.  The frightful statistic screams for itself:  The risks far\noutweigh the benefits, yes?   What fool would run these risks?   If your\ncar were 43 times more likely to kill you, a loved one, a dear friend or\nan innocent child than to get you to your destination,  should you not\ntake the bus?  \n\n\tUncritical citation puts the good name of statistics in the bad company\nof lies and damned lies.   Surely, we can do better where lives are at\nstake.   Let~s take a closer look at this risky business:\n\n\tThe ~43 times~ stat of the NEJM study is the product of dividing the\nnumber of home intruders/aggressors justifiably killed in self-defense\n(the divisor) into the number of family members or acquaintances  killed\nby a gun in the home (the dividend).  The divisor of this risk equation\nis 9: in the study~s five-year sample there were 2 intruders and 7 other\ncases of self-defense.  The dividend is 387:  in the study there were 12\naccidental deaths, 42 criminal homicides, and 333 suicides.  387 divided\nby 9 yields 43.  There were a total of 743 gun-related deaths in King\nCounty between 1978 and 1983,  so the study leaves 347 deaths outside of\nhomes unaccounted.\n\n\tThe NEJM~s notorious ~43 times~ statistic is seriously misleading on\nsix counts:\n\n\t1.  The dividend is misleadingly characterized in the media:  the ~or\nacquaintances~ of the study (who include your friendly drug dealers and\nneighborhood gang members) is equated to ~friends.~  The implication is\nthat the offending guns target and kill only beloved family members,\ndear friends, and innocent children.  Deaths may all be equally tragic,\nbut the character and circumstance of both victims and killers are\nrelevant to the risk.  These crucial risk factors are masked by the\ncalculated impression that the death toll is generated by witless\nWaltons shooting dear friends and friendly neighbors.  This is\ncriminological hogwash.\n\n\t2.   The study itself does not distinguish households or environs\npopulated by people with violent, criminal, or substance-abuse histories\n-- where the risk of death is very high -- versus households inhabited\nby more civil folk (for example, people who avoid high-risk activities\nlike drug dealing, gang banging and wife beating) -- where the risk is\nvery low indeed.  In actuality, negligent adults allow fatal but\navoidable accidents; and homicides are perpetrated mostly by people with\nhistories of violence or abuse, people who are identifiably and\ncertifiably at ~high risk~ for misadventure.  To ignore these obvious\nrisk factors in firearm accidents and homicides is as misleading as\nignoring the role of alcohol in vehicular deaths: by tautology, neither\ngun deaths nor vehicular deaths would occur without firearms or\nvehicles; but the person and circumstance of the gun owner or driver\ncrucially affect the risk. \n\n\t3.  One misleading implication of the way the NEJM stat is framed is\nthat the mere presence of a gun in the home is much more likely to kill\nthan to protect, and this obscures -- indeed, disregards -- the role of\npersonal responsibility.  The typical quotation of this study (unlike\nLarson~s) attributes fatal agency to the gun:  ~A gun in the home is 43\ntimes as likely to kill . . . .~  (The Center to Prevent Handgun\nViolence, a major promulgator of the NEJM statistic, uses this\nparticular formulation.)  We can dispense with the silly debate about\nwhether it~s people or guns that accomplish the killing:  again, by\ntautology, gun  deaths would not occur without the guns.  The question\nbegged is how many deaths would occur anyway, without the guns.  In any\ncase, people are the death-dealing agents, the guns are their lethal\ninstruments.  The moral core of the personal  risk factors in gun deaths\nare personal responsibility and choice.  Due care and responsibility\nobviate gun accidents; human choice mediates homicide and suicide (by\ngun or otherwise).  The choice to own a gun need not condemn a person to\nNEJM~s high-risk pool.  The gun does not create this risk by itself. \nPeople have a lot to say about what risk they run with guns in their\nhomes.  For example, graduates of Paxton Quigley~s personal protection\ncourse do not run the touted ~43 times~ risk any more than skilled and\nsober drivers run the same risks of causing or suffering vehicular death\nas do reckless or drunk drivers.  Undiscriminating actuarials disregard\nand obscure the role of personal responsibility and choice, just as they\ndisregard and obscure the role of socio-economic, criminological and\nother risk-relevant factors in firearm-related death.  This is why we\nresent insurance premiums and actuarial consigment to risk pools whose\nnorms disregard our individualities.  Fortunately, nothing can consign\nus to the NEJM risk pool but our own lack of choice or responsibility in\nthe matter.\n\n\t4.  Suicide accounts for 84% of the deaths by gun in the home in the\nNEJM study.  As against the total deaths by gun in King County,\nincluding those outside the home, in-house suicides are 44% of the total\ndeath toll, which is closer to the roughly 50% proportion found by other\nstudies.  Suicide is a social problem of a very different order from\nhomicide or accidents.  The implication of the NEJM study is that these\nsuicides might not occur without readily available guns.  It is true\nthat attempted suicide by gun is likely to succeed.  It is not obviously\ntrue that the absence of a gun would prevent any or all of these\nsuicides.  This is widely assumed or alleged, but the preponderance of\nresearch on guns and suicide actually shows otherwise, that this is\nwishful thinking in all but a few truly impulsive cases.  (See:  Bruce\nL. Danto et al., The Human Side of Homicide,  Columbia University Press,\n1982;  Charles Rich et al.,  ~Guns and Suicide,~  American Journal of\nPsychiatry,  March 1990.)  If suicides were removed from the dividend of\nthe NEJM study~s risk equation, the ~43 times~ stat would deflate to\n~six.~  The inclusion of suicides in the NEJM risk equation -- like the\ncauses, durability, or interdiction of suicidal intent itself -- is a\nprofoundly debatable matter.  Quotations of the NEJM study totally\ndisregard this issue.\n\n\t5.  Citations of the NEJM study also mislead regarding the estimable\nrate of justifiable and excusable homicide.  Most measures, like the\nNEJM homicide rate, are based on the immediate disposition of cases. \nBut many homicides initially ruled criminal are appealed and later ruled\nself-defense.  In the literature on battered women, immediate case\ndispositions are notorious for under-representing the rate of\njustifiable or excusable homicide. Time~s January 18, 1993, cover story\non women ~Fighting Back~ reported one study~s finding that 40% of women\nwho appeal have their murder convictions thrown out.  Time~s July 17,\n1989, cover story on a week of gun deaths reported 51% of the domestic\ncases as shootings by abuse victims; but only 3% of the homicides were\nreported as self-defense.  In a May 14, 1990, update, Time  reported\nthat 12% of the homicides had eventually been ruled self-defense. In\nTime~s sample, the originally reported rate of self-defense was in error\nby a factor of four.  The possibility of such error is not acknowledged\nby promulgators of the NEJM statistic. \n\n\t6.  While both the dividend and the product of the NEJM risk equation\nare arguably inflated, the divisor is unconscionably misleading.  The\ndivisor of this equation counts only aggressors who are killed,  not\naggressors who are successfully thwarted without being killed or even\nshot at.   The utility of armed self-defense is the other side of the\ncoin from the harms done with guns in homes.  What kind of moral idiocy\nis it to measure this utility only in terms of killings ?  Do we measure\nthe utility of our police solely in terms of felons killed  -- as\nopposed to the many many more who are otherwise foiled, apprehended, or\ndeterred?  Should we not celebrate (let alone count ) those cases where\nno human life is lost as successful armed defenses?  The question posed\nto media that cite the NEJM scare stat is this:  Why neglect the\ncompendious research on successful armed defense, notably by\ncriminologist Gary Kleck (Point Blank: Guns and Violence in America ,\nAldine de Gruyter, 1992)?\n\tKleck~s estimations of the rate and risk of defensive firearm use are\nbased on victimization surveys as well as other studies:  the rate is\nhigh (about one million a year) and the risk is good (gun defenders fare\nbetter than anyone, either those who resort to other forms of resistance\nor those who do not resist).  Dividing one million gun defenses a year\nby 30,000 annual gun deaths (from self-defense, homicides, suicides, and\naccidents) yields 33.  Thus, we can construct a much more favorable\nstatistic than the NEJM scare stat:  \n\nA gun is 33 times more likely to be used to defend against assault or\nother crime than to kill anybody.   \n\n\tOf course, Kleck~s critics belittle the dividend of this calculation;\nwhat is good news for gun defenders is bad news for gun control.  We\nshould indeed question the basis and method of Kleck~s high estimation\nof defensive firearm use, as I have questioned the NEJM statistic. \nClearly, the issue of how to manage mortal risks is not settled by\nuncritical citation of statistics.   One thing troubles me still:  we\ncan hardly escape the unquestioned NEJM scare stat in our media,  but we\nhardly ever find Kleck~s good work mentioned,  even critically.\n\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6600, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Randy Weaver trial update: Day 5.\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 94\n\nNote: These trial updates are summarized from reports in the\n_Idaho Statesman_ and the local NBC affiliate television\nstation, KTVB Channel 7.\n\nRandy Weaver/Kevin Harris trial update: Day 5.\n\nMonday, April 19, 1993 was the fifth day of the trial.\n\nSynopsis: Government informant Kenneth Fadeley testified that\nRandy Weaver sold him two shotguns in violation of the National\nFirearms Act of 1934.  U.S. District Court Judge Edward Lodge\nasks jurors not to hear accounts of the Waco fire because\nof possible influences on the Weaver/Harris case.\n\nThe testimony of FBI Special Agent Greg Rampton apparently\nended without further incident, as it was mentioned neither\nby KTVB nor the _Idaho Statesman_.\n\nThe day was highlighted by the testimony of Kenneth Fadeley,\nwho had been posing as an outlaw biker and illegal guns person\nnamed Gus Magiosono.  Fadeley testified that he was acting as\nan informant for the Bureau of Alcohol, Tobacco, and Firearms\nin his dealings with Randy Weaver.\n\nFadeley began by stating that he had met Weaver in 1987 at an\nAryan Nations summer conference in Hayden Lake, Idaho.  The two\nthen met again October 11, 1989 (note the huge separation in\ntime) at a restaurant in Sandpoint, Idaho, to begin a weapons\ntransaction.  He stated that Weaver had said, \"He felt like he\n(Weaver) was being prepared to do something dangerous for the\nWhite cause.\"\n\nThe two later met October 24, 1989 behind the restaurant and\nlater went to a city park to make the sale.  During this second\nmeeting, Fadeley was wearing a small recording device to\ntape the conversation.  Weaver allegedly showed him an H&R 12-\ngauge shotgun with a 13-inch barrel and an overall length of\n19.25 inches.  He additionally showed a Remington 12-gauge\nshotgun with a 12.75-inch barrel and an overall length of\n24.5 inches (NFA requires minimums of 18 inches for barrel\nlength and an overall length of 26 inches).  On tape, Weaver\nis reported to have said that he could perform better work once\nhis machine shop is set up.  The two then discuss the possibility\nof future sales.  Fadeley then counts out three hundred dollars\nfor the two guns and promises the balance of one-hundred fifty\ndollars when they next meet.  (Note that the ATF could have\nsimply arrested him here.  Why did they wait until January 1991 -\nover a year later - to arrest him?  This is not explained).\n\nThe next meeting took place on Nov 30, 1989.  Fadeley stated that\nhis \"source\" had only come up with one hundred dollars instead\nof the one-hundred fifty he'd promised.  At this point, Weaver\nsuspected he was dealing with an informant, \"I had a guy in\nSpokane tell me you were bad.\"  Fadeley managed to convince\nWeaver otherwise.\n\nThe _Idaho Statesman_ states explicitly that three tapes were\nmade of conversations with Randy Weaver.  Thus, each of these\nmeetings must have been recorded.  However, the _Statesman_ also\nreported that a tape of a telephone conversation involving Vicki\nWeaver (Randy Weaver's wife) was played to the court.  There must\nhave also been phone taps.\n\nThese tapes were played to the court via both headphones and\nloudspeakers under the objections of Gerry Spence, Weaver's\nattorney.  Spence said to a KTVB reporter that he wanted to\nmake sure that the government proved its case, \"...if it has a\ncase at all...\" according to the rules.\n\nRandy Weaver tore off his headphones and wept when he heard his\nwife's voice on the tape.\n\nU.S. District Court Judge Edward Lodge asked jurors not to hear\naccounts of the Waco fire because of possible influences on the\nWeaver/Harris case.  Exactly how such information could affect\nthis trial is not explained.\n\nOther notes: Sunday evening there was a report on KTVB concerning\nKevin Harris.  Unnamed agents within the FBI admit that they are\nsurprised that Kevin Harris is still alive.  First, they were\nsurprised that he survived the initial gunshot wound(s) sustained\nin the initial firefight at the Y-junction.  Later, when Randy\nWeaver was struck by sniper fire the sniper had reported that\nHarris had been struck (not Weaver).  Finally, there was a report\nthat the FBI agent who killed Vicki Weaver believed he was aiming\nat Kevin Harris instead.  (This is what was reported).  Critics\nare charging that the FBI was blatantly trying to eliminate the\nonly non-government witness to the deaths of Samuel Weaver and\nDeputy Marshal William Degan.  Some local people believe that\nHarris's survival is simply due to divine intervention.\n\nTuesday, April 20, 1993 will be the sixth day of the trial. \nKenneth Fadeley's testimony is scheduled to continue. \n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6601, "properties": {"category": "comp.sys.mac.hardware", "text": "Subject: Word Printing to IIg\nFrom: gary@marshall.wvnet.edu (gary's news)\nOrganization: Marshall University\nLines: 39\n\nWe have a user that has Word 5.0 and is using symbols such as pi and\nother mathematic sysmbols, plus doing fractions, etc.\n\nThe document shows up on the screen with no problems, looks fine.\n\nWhen she tries to print it on a IIg the pi changes to an upside down\ncaret, and several other symbols change to double quotes at bottom of\ncharacter, plus some little circles appear between words of the fractions\ninstead of spaces.\n\nThis happens on a IIg laser printer.  Tried it on serveral macs and two\ndifferent IIg's.\n\nPrints fine on an NT and NTX laser printers.\n\nWhat's wrong???\n\nThanks for any help in advance,\n\nGary\n\n-- \n\n***************************************************************************\n\nGary Weis\nUniversity Computer Center\n400 Hal Greer Boulevard\nHuntington, West Virginia  25755-5320\n\nPhone:  (304) 696-3205\nFax  :  (304) 696-3601\n\nInternet:  Gary@marshall.wvnet.edu\nBitnet  :  Gary@marshall\nUCC Net :  Gary\n\n***************************************************************************\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6602, "properties": {"category": "misc.forsale", "text": "From: bob@nntp.crl.com (Bob Ames)\nSubject: Re: UNIX PC Software for sale\nOrganization: CRL Internet Dialup Access    (415-389-UNIX   login: guest)\nLines: 1\nDistribution: world\nNNTP-Posting-Host: crl.com\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6603, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: x-rays\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 22\n\nIn article <1993Mar30.195242.8070@leland.Stanford.EDU> iceskate@leland.Stanford.EDU ( Lin) writes:\n>\n\n>\tFirst question - how bad is x-ray?  i've heard that it's nothing \n>compared to the amount of time spent under the sun and i've also heard that it\n>is very harmful.  second question - is there anyway out of this yearly test for\n>me?\n\nThe yearly chest x-ray provides a minute amount of radiation.  It is\na drop in the bucket as far as increased risk is concerned.  Who can\ntell you whether you can get out of it or not?  No one here controls\nthat.  It may well be a matter of the law, in which case, write your\nlegislator, but don't hold your breath.\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6604, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon W\u00e4tte)\nSubject: Re: What is \"ROM accelerated video\"?\nNntp-Posting-Host: hemul.nada.kth.se\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 18\n\nIn <1qknuq$9ut@agate.berkeley.edu> c60b-3jl@web-4f.berkeley.edu (James Wang) writes:\n\n>addressing modes.  commands that do fills should be slightly faster\n>since the new instructions fetch 2 bytes at a time versus one.\n\nEven the 68000 can fetch two bytes at a time.\n\nThe new instruction in the 68040 is MOVE16 which fetches 16 bytes\nat a time instead of 4 which the 68030 has; that means 4 24bit\npixels instead of one.\n\nCheers,\n\n\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n\n   This article printed on 100% recycled electrons.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6605, "properties": {"category": "sci.electronics", "text": "From: ragee@vdoe386.vak12ed.edu (Randy Agee)\nSubject: Radar detector DETECTORS?\nOrganization: Virginia's Public Education Network (Richmond)\nLines: 27\n\nSeveral years back one of the radar detectors manufacturers, in\ndefiance to Virginia's law against radar detectors, passed out\nthousands of fake cardboard radar detectors at truck stops near\nthe Virginia State lines.  At that time there were no radar\ndetector Detectors!  I am not sure of the impact but I would\nimagine that enforcement of the law by visually sighting a\nradar detector became difficult - if not impossible!\n\nAs I said earlier, efforts to throw out or eliminate the VA law\nagainst radar detectors has been in vain.  In fact, effective\nJan. 1, 1993, the fine for possession of a radar detector\naccessable to the driver of a vehicle in VA is now $250.00.  \n\nI have noted an interesting anomality with my Alinco DR-100 2\nmeter ham transceiver.... It will make a *cheap* radar detector\nscream!  I am not sure of the range, but it is obvious by the\nbrake lights that it can be at least 50 feet at 50 watts! :-)\n\n==============================================================================\nRandy T. Agee - WB4BZX           | At some point, you probably pondered The \nP.O. Box 2120 - 20th floor       | Meaning of Life, and you came up with a \nVirginia Department of Education | satisfactory answer, which has or has not\nRichmond, VA 23216-2120          | stood the test of time, or you shrugged\nPhone (804) 225-2669             | mightily, muttered \"Beats the heck out of\nragee@vdoe386.vak12ed.edu        | me,\" and ordered a cheeseburger.\n=============================================================================\n \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6606, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ad@dcs.st-and.ac.uk (Tony Davie)\nSubject: Re: NUTEK FACES APPLE'S WRATH (article!!!!!!) READ\nNntp-Posting-Host: bruichladdich.dcs.st-and.ac.uk\nOrganization: St.Andrews University\nLines: 24\n\nIn article <1993Mar31.221104.21890@leland.Stanford.EDU>, tedebear@leland.Stanford.EDU (Theodore Chen) writes:\n\n\n> there isn't any copyright equivalent of the res ipsa doctrine,\n> but there's something kind of similar.  to show infringement, one\n> element you need to show is that the defendant copied from your work.\n> if you're lucky, you'll have direct evidence of copying - the smoking\n> gun.  normally, you do this through circumstantial evidence, by showing\n> evidence of access from which one might reasonably infer copying.\n> this evidence of access is considered along with the similarities\n> between the two works in deciding whether you copied.  however, if\n> the similarities are so strong as to be \"striking\", an inference of\n> copying may be drawn even without any evidence that the defendant had\n> access to your copyrighted work.\n> \n> in that case, the burden will be on the defendant to rebut the inference\n> of copying.  for example, evidence that he'd been on a desert island for\n> the last ten years and had no contact with civilization.\n> \n\nWOW! Now we know why lawyers are rich and computer scientists are poor!\nLawyers have to (sound as if they) understand this stuff.\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6607, "properties": {"category": "misc.forsale", "text": "From: jac2y@Virginia.EDU (\"Jonathan A. Cook <jac2y>\")\nSubject: Re: !!!!JAZZ CD 4 sale/trade!\nOrganization: University of Virginia\nLines: 5\n\nSell it for $10, then.  I can't really offer more than $8 at\nthis point.\n\nThanks,\nJon\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6608, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kentiler@matt.ksu.ksu.edu (Kent P. Iler)\nSubject: Procomm Plus for windows problems....\nOrganization: Kansas State University\nLines: 10\nNNTP-Posting-Host: matt.ksu.ksu.edu\n\nHi,\n  I have normal procomm plus for dos, but I've been considering buying\nthe windows version....it got really great reviews in computer shopper.\nI have a friend who connects to the mainframe and unix machines here\nusing it, but the screen seems to have a problem keeping up with the\nmodem....he has a 14,400 modem on a 486 50 Mhz machine.  I can't\nsee it having trouble keeping up.  His pcplus for dos works great,\nbut the windows just seems to always screw up....Is this common\nand is there a fix?  Or is something just screwed with his machine?\n\t\t\t\t\tKent\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6609, "properties": {"category": "sci.crypt", "text": "From: djb@silverton.berkeley.edu (D. J. Bernstein)\nSubject: Re: Clipper chip -- technical details\nOrganization: IR\nLines: 15\n\nShort summary of what Bellovin says Hellman says the NSA says: There is\na global key G, plus one key U_C for each chip C. The user can choose a\nnew session key K_P for each phone call P he makes. Chip C knows three\nkeys: G, its own U_C, and the user's K_P. The government as a whole\nknows G and every U_C. Apparently a message M is encrypted as\nE_G(E_{U_C}(K_P),C) , E_{K_P}(M). That's it.\n\nThe system as described here can't possibly work. What happens when\nsomeone plugs the above ciphertext into a receiving chip? To get M\nthe receiving chip needs K_P; to get K_P the receiving chip needs U_C.\nThe only information it can work with is C. If U_C can be computed\nfrom C then the system is cryptographically useless and the ``key\nescrow'' is bullshit. Otherwise how is a message decrypted?\n\n---Dan\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6610, "properties": {"category": "sci.space", "text": "From: wallacen@CS.ColoState.EDU (nathan wallace)\nSubject:  Level 5\nReply-To: wallacen@CS.ColoState.EDU\nNntp-Posting-Host: sor.cs.colostate.edu\nOrganization: Colorado State University -=- Computer Science Dept.\nLines: 15\n\nAccording to a Software engineering professor here, what was actually rated\nlevel five was an ibm unit which produced part of the software for the shuttle,\nby not means all of it. \n\nInteresting note: 90% of the software development groups surveyed were at\nlevel 1. The ibm shuttle groups was the *only* one at level 5!\n\n---\nC/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/\nC/    Nathan F. Wallace                   C/C/           \"Reality Is\"         C/\nC/    e-mail: wallacen@cs.colostate.edu   C/C/    ancient Alphaean proverb    C/\nC/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/\n \n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6611, "properties": {"category": "sci.electronics", "text": "From: tsp@ccd.harris.com (Timothy S. Pillsbury)\nSubject: need ACS tutorial and/or netlist examples\nOriginator: tsp@sp1\nKeywords: ACS,SPICE,simulation\nOrganization: Harris Controls\nLines: 18\n\n\nI recently ftp'd Al's Circuit Simulator (ACS) and I'm looking for\nthe tutorial which is mentioned in the Users Manual (but not found there).\nI don't have any experience constructing a netlist (such as for SPICE)\nand I need a little help.\n\nThe examples which come with ACS aren't explanatory about the translation\nbetween schematic and netlist. Does anyone have the fabled \"Tutorial\"\nor any other reference which could help me in constructing a netlist from\na schematic diagram?\n\n(I also emailed Al himself but received no response yet. He's probably\n busy with his next release.)\n-- \n-------------------------------------------------------------------------------\nTim Pillsbury          Internet:  tsp@ccd.harris.com\n                          uunet:  uunet!ccd.harris.com!timothy.pillsbury\n-------------------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6612, "properties": {"category": "sci.crypt", "text": "From: hal@cco.caltech.edu (Hal Finney)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: California Institute of Technology, Pasadena\nLines: 45\nDistribution: na\nNNTP-Posting-Host: alumni.caltech.edu\n\nThe key question is whether non-Clipper encryption will be made illegal.\n\n>     The Administration is not saying, \"since encryption\n>     threatens the public safety and effective law enforcement,\n>     we will prohibit it outright\" (as some countries have\n>     effectively done); nor is the U.S. saying that \"every\n>     American, as a matter of right, is entitled to an\n>     unbreakable commercial encryption product.\"  There is a\n>     false \"tension\" created in the assessment that this issue is\n>     an \"either-or\" proposition.  Rather, both concerns can be,\n>     and in fact are, harmoniously balanced through a reasoned,\n>     balanced approach such as is proposed with the \"Clipper\n>     Chip\" and similar encryption techniques.\n\nThe clear middle ground implied by these statements is to say that Americans\nhave the right to Clipper encryption, but not to unbreakable encryption.\nThis implies that, ultimately, non-Clipper strong encryption must become\nillegal.\n\n(As an aside, isn't the language here jarring?  All this talk about\n\"harmonious balance\" when they're talking about taking away people's\nright to communications privacy?)\n\nAlthough the article emphasizes voice communication, data and mail encryption\nis mentioned as well:\n\n>Sophisticated encryption technology has been used for years to\n>protect electronic funds transfer.  It is now being used to\n>protect electronic mail and computer files.\n\n>     --   the privacy of our citizens, including the need to\n>          employ voice or data encryption for business purposes;\n\nIt looks like the worst nightmares raised by Dorothy Denning's proposals\nare coming true.  If the government continues on this course, I imagine\nthat we will see strong cryptography made illegal.  Encryption programs\nfor disk files and email, as well as software to allow for encrypted\nvoice communications, will be distributed only through the\n\"underground\".  People will have to learn how to hide the fact that\nthey are protecting their privacy.\n\nIt's shocking and frightening to see that this is actually happening here.\n\nHal Finney\nhal@alumni.caltech.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6613, "properties": {"category": "talk.religion.misc", "text": "From: house@helios.usq.EDU.AU (ron house)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: University of Southern Queensland\nLines: 21\n\njudi@wam.umd.edu (Jay T Stein -- objectively subjective) writes:\n\n>Question:  Is there any effective difference between:\n\n>\"Objective values exist, and there is disagreement over what they are\"\n\n>and\n\n>\"Values are subjective?\"\n\n>I don't see any.\n\nThe first means that some aspect of reality contains objective values.\nThe second means that values are a reference to some preference of the\nindividual.  In the first case, it is possible that some future discovery\nmight invalidate certain views re what objective values are.\n\n--\n\nRon House.                 USQ\n(house@helios.usq.edu.au)  Toowoomba, Australia.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6614, "properties": {"category": "talk.politics.misc", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: re: fillibuster\nLines: 323\nOrganization: University of Tennessee Computing Center\n\nIn article <C5n4wH.Izv@dscomsa.desy.de> hallam@dscomsa.desy.de (Phill Hallam-Baker) writes:\n>\n>In article <1993Apr15.213436.1164@martha.utcc.utk.edu>, PA146008@utkvm1.utk.edu (David Veal) writes:\n>\n>|>In article <C5JpL7.5Cz@dscomsa.desy.de> hallam@dscomsa.desy.de (Phill Hallam-Baker) writes:\n>|>>\n>|>>In article <1993Apr12.002302.5262@martha.utcc.utk.edu>, PA146008@utkvm1.utk.edu (David Veal) writes:\n>|>>\n>|>>Well yes and no. The Federalist papers are propaganda and it is therefore\n>|>>difficult to determine precisely what Maddison etc were up to from them. \n>|>\n>|>       There are a couple of ways to look at them.  One is, \"We want\n>|>you to support this Constitution, so we'll say anything that we think\n>|>will appeal to you,\" or the more straightforward, \"This is why we think\n>|>what we've suggested in this Constitution is a good idea.\"\n>|>\n>|>       You clearly consider the former to be the primary situation.\n>\n>The point is that they did not make pains to point out where the consitution\n>may have been aginst the new yorker's interests. Also they did not want\n>to raise opposition by basing their advocacy on unpopular principles.\n\n       Horrors, appealing to popular principles.  Can we perhaps as the\nquestion of whether the Constitution might have been written to appeal\nto the principles, rather than, as you appear to believe, it was written\nwith something else in mind and \"propoganda\" put out by its supporters.\n\n       But let's be honest about something, here.  When was the last time\nyou brought up all the valid points against your own arguments?\n\n       Or are they simply propogranda?  We can't know what Phill *really*\nmeans because he's obviously using arguments designed to convince.\n\n>|>       Well, I know Hamilton was a dyed in the wool monarchist, and \n>|>probably the authoritarian extreme to Jefferson's democratic impules.\n>|>But what would you suggest as a means of determining their opinions\n>|>on the government if we don't consider what they wrote about the\n>|>government?\n>\n>I don't propose that any means exists for determining their true opinions.\n>Thus their true opinions died with them and are of little help today.\n>\n>Their opinions have not the slightest bearing on the matter though, only their\n>arguments. These are true or false regardless of who said them or why. \n\n       If they're true or false, regardles of why they were said, why\non earth did you make a point of calling them \"propogranda?\"  That\nwould seem to be irrelevent.\n\n>The\n>difficulty that most US posters seem to have is in considering that their\n>arguments may have been flawed or no longer apply to modern societies. \n\n       Oh, I have no argument with questioning them.  I don't believe\nthey no longer apply, but that's because I think most of them were\ngood arguments.  I'm not entirely happy about the situation, because\nthey were obviously only applied to a minority of the time, but I don't\nthink that alone is sufficient to invalidate them.\n\n>If they were alive today the one opinion we could count upon these men to\n>express is that a careful study of the mechanisms of government is necessary\n>and that an ongoing improvement of the same is required. They gave their \n>opinions in certain areas and have been proved right. In other areas they\n>got it wrong. They ensured that there was a mechanism to adapt and improve\n>the consititution. this can only happen if there is a willingness to accept that\n>the structural problems within the US political system may require\n>constitutional change as a solution. \n\n       Since the U.S. constitution is the basis for the U.S. political\nsystem, most changes in it would require Constitutional change.  In this\nparticular case, however the fillibuster is a matter of procedure\nand tradition.  It only *should* have been made part of the Constitution. :-)\n\n>|>       If the Senate was less powerful than the House of Lords, than\n>|>we'd almost have to state that the House of Representatives was also.\n>|>(In fact, they both were, because the British government had much\n>|>greater power than did the American system).       \n>\n>In principle no, in practice yes. \n\n        In principle no?  That they had less power of that they should have\nhad less power?\n\n>The British government today is theoreticaly\n>dependent on the will of the Monarch. By convention any monarch seeking to\n>exercise that power is deposed. The subtly is that the Prime Minister is\n>not able to identify their politics with the national interest in the same\n>manner that US Presidents regularly do.\n\n        Phill, we're discusing the power of legislative houses.  While\nthe Prime Minister *is* member of Parliament, he is more analgous (although\nbadly) to the U.S. President.\n\n        Now, please explain to me how the U.S. House of Representatives\nis \"in principle\" more powerful than the House of Lords (or the Senate)\nbut in practice is less.  Are you suggesting that the writers of the\nConstitution *really* intended for them to be more powerful, but gosh\ndarn the thing was ratified before they realized they'd forgotten to put\nthose extra restrictions on the Senate in?\n\n>|>       I disagree.  The system is not too slow, it was simply designed to\n>|>handle less than it has demanded that it handle.  As somebody in Washington\n>|>put it (whose name I forget), \"Congress has become everybody's city\n>|>council.\"\n>\n>One reason for that is that at every level the government is rendered unable\n>to come to decisions. These decisions are pushed up to the next higher level\n>instead. \n\n      Not at all.  As any entry level political science course will tell\nyou, people who want laws implemented will always choose the level of\ngovernment to \"attack\" which presents them with the best chance of\ngetting what they want.  With national \"interest groups\" it is simply\na very rational thing to do to want the Federal government to enact a\nlaw rather than the states.  Less people to persuade, and less \n\"contributions\" to make.  \n\n      Why do those concerned about abortion primarily concentrate at\nthe Federal level?  Simply because if they win that battle all the little\nstate battlefields are won by extension.  The same extends to insurance,\nmedicine, and most other questions.\n\n      Local government has not \"failed\" in that it hasn't done what it\nshould, but that it is dominated by local interests.  Thus non-local\ninterests who want localities to abide by their rules can't get their\nrules past the local government.  Thus, since they've got more clout,\nonly in the wrong place, they appeal to the next higher level because\nit can impose its will on the lower.\n\n      I mean, let's get real here.  Do we *really* need the Congres\nof the United States deciding that x traffice light should be on thus-\nand such pattern?  Or that *carjacking* needs to be a federal as opposed\nto a local crime?\n\n      The more people want the more Congress will take power to \"sell\"\nit to them for their votes.  I don't think the rise of \"special interests\"\nis coincidence with the increased power of Congress.\n\n>|>       Congress is more than capable of quick action, and has more than\n>|>enough power and time on its hands, if it confined itself to what its\n>|>original jurisidiction was and allowed more local autonomy.\n>\n>If they were to start from a social welfare model instead of the current \n>\"no state subsidy motto\" they would be better placed. As it is there is\n>plenty of state money being handed out. The problem is that it is\n>distributed on the basis of power in congress and not on the basis of\n>actual need. \n\n       Bingo.  The higher up the governmental ladder the less actual\nneed matters, because political power can be concentrated at higher\nlevels, while people with less cloud only find themselves reduced to\nin effectiveness.\n\n>In order to set up a school project in New York state you have to pay off the\n>other 49 states with pork - defense contracts, agricultural subsidies etc.\n>Or to be precise 30 of the states since you need 60 to beat the filibuster.\n\n       Then why not simply leave New York's education to New York?  I\nremain unconcinved that there is any state in the Union which is not capable\nof educating its own children if that's what they want to do.  And if\nyou leave it to them, you only have to worry about the \"pork\" in that\nstate.  And since industries can't concentrate their political power\nand wealth, rather they must divide it among the states to try and get\nwhat they want, individual voices have more relative impact.\n\n       The problem with the fillibuster is not that you must \"buy off\"\nstates, but that the Congress has acquired too much power to sell pork.\n\n>|>       It is not a case of the system of government they created failing,\n>|>but that it is operating under a set of conditions they specifically\n>|>wanted to avoid.  Namely, a concentration of power.  It would seem\n>|>then that the proper thing to do is not to reduce the power of either\n>|>House in some attempt to grease the wheels.  All you'll get then is\n>|>a system which moves quicker to do stupid things.  It would make more\n>|>sense to make more decisions at a local level.\n>\n>No, you have to break the machine free of seizure before you can redirect it.\n\n       But why on earth should we want to redirect it?  You said yourself \nthat you have to sell pork to get things through Congress.  If Congres\nhas less authority to sell pork and retains its authority to enact\nnational legislation within its granted jurisdiction, the pork problem\nis significantly reduced.\n\n>The current blocks on power simply absolve congress of any responsibility\n>to come to a decision. \n\n       The current blocks essentially state that inaction is preferable\nto action, thus it the system is weighted against action.  Considering\nthe government the usually the institution with the sole power to\nenforce its decisions by force, I consider bias against making those\ndecisions a good thing.\n\n>Pushing the decisions lower in the pyramid won't\n>work unless the lower levels are less corrupt. In most cases they are worse,\n>not better.\n\n       The difference with the lower pyramid is that a) they have\nmore legal, legitimate authority in most matters under our Constitution\nthan the federal government, and b) at those lower levels power is\nharder to concentrate.  And c) you get the benefit of not imposing\nnew deicisons on everybody at once.  You get to see them tried out\nwithout a national decision.  Congressional action usually treats the\nentire country as a whole, yet even with similar problems in different\nareas, different solutions may be called for.\n\n       And while I often don't agree with the decisions my local\nand state reps make, at least I have a better option of going to\nthe city council and shooting my mouth off.  I'd much rather the\nmajority of laws be made by accessible people who hang around and end\nup having to put up with them rather than somebody far off in\nWashington with half a million or more constituents.\n\n       I'm curious what you base your assumption that lower levels\nare more corrupt.  \n\n>|>       I fail to see where any restrictions, implied or otherwise, were\n>|>placed on the veto.  It could just as easily have been read as a means\n>|>to put a check on democratically popular but unwise (in the executive's\n>|>opinion) policies.  \n>\n>Since we were arguing from the Federalist papers I would point to them. \n\n       Phill, *you* brought up the Federalist papers.  We were\narguing the fillibuster and whether or not a minority of Senators\nshould be allowed to hold up a bill.  You claimed the Senate was\nsuppose to be a far less powerful House, and I contended there was\nnothing in the Constitution or other writings which indicated this.\nWhich was when you brought up that we can't decide what the founders\nwanted based on the Federalist papers.  You argued against them,\nI never argued from them.  I have primarily referred to the Constitution,\nwhich places only very small restrictions on the Senate than for\nthe House.\n\n>The \n>US constitution gives almost no reasoning as to how it should work. The\n>only part where a reason is given is the right to bear arms ammendment where \n>the well regulated militia justification is ambiguous.\n\n       The U.S. Constitution is a nuts-and-bolts document.  The Delcaration\nof Independence was the high-brow reasoning.  (There are a couple of other\nexamples, though, such as the reasoning for the power to tax, and the\nreasoning for the power to grant permits, both in Article I, Section 8.)\n\n>That the veto was meant to be an exceptional measure follows from the \n>fact of the senate. If the President was meant to revise legislation then\n>there would be three chambers of the legislature, not two. Furthermore\n>the separation of powers would have been much less distinct. \n\n       To a certain extend I do believe the veto has become something\nit wasn't intended.  However, I also believe it is inevitable considering\nthe Congress' own abuse of their power to make bills say whatever they\nwant them to say.  Unlike most people I think we shouldn't be worrying\nabout the veto, which is fine, but of the problem in Congress which\nalmost necessitates its abuse.\n\n>|>       There is no limit in the Constitution to the President's veto power\n>|>regarding what a bill is for.  Previous Presidents have used the veto\n>|>for any number of reasons, most usually having something to do with their\n>|>agenda.  I am really curious how you single Bush out as *the* President\n>|>who abused vetos.\n>\n>He has the record for vetos. \n\n       *BUSH?*  Phill, that's absurd.  Bush had *37* vetos, one of\nwhich was over-ridden.  Go read up on FDR if you think that's\nanything resembling a record.\n\n>|>       Why is it not a reasonable restriction?  Because 51 Senators\n>|>is the magic holy number upon which Laws must be based?  If 41 Senators\n>|>feel safe enough with their state constituencies to stand up and \n>|>fillibuster isn't that *enough* to indicate there's a sufficient question\n>|>as to whether a law is a good idea or not to re-evaluate it?\n>\n>Up to a point, the fact is though that when the majority are opposed by\n>a minority the minority should not be allowed to win by default.\n\n       Why not?  What is inherently wrong with biasing the system\nagainst action?  Historically governemnt action in the U.S. when\ndealing with issues with a bare minority and a large minority have\nnot been successful.  When you're in a position of imposing federal\npower on diverse people, why should the federal government not have to\ngot through something more than a bare majority\n\n>|>       Why one earth *should* 51% be sufficient to enact a law which\n>|>covers 250 million people in very, very diverse places and living\n>|>in radically different conditions?  Why *shouldn't* a super-majority\n>|>be required?\n>\n>Because the bill at issue is a money bill relating to a short term proposal.\n\n       Now we're switching from a general question of a fillibuster\nto a specific bill.  I don't see how it make a difference.\n\n>It is not a change in the law where a presupposition in favour of the \n>status quo is arguable. \n\n       Sure it's arguable.  Theyr'e *arguing* it.  However, requiring\n60% to bring it to a vote ensures that they'll have to have a *good*\nargument.  Something that isn't based solely on party lines.\n\n>|>       Any system in which the simple majority is given absolute power\n>|>to ignore the minority then the minority *will* be ignored.  I do not\n>|>see this as a positive thing.  And for all that I'm sure the Republicans\n>|>are looking for pork as much as the Democrats, they've got some legitimate\n>|>objections to the legislation in question.\n>\n>So instead you consider a system under which the minority automatically win\n>to be superior?\n\n       No, I am completely happy with a system which requires a minority\nfor *action*.  Since U.S. history is a history of carving up population\ngroups and implementing piece-meal on minorities, I feel minorities\nshould have sufficent clout to prevent action they feel strongly enough\nabout.  And 41% is hardly a tiny minority.  I don't advocate the minority\nbeing capable of initiating actionm but I see no problem with biasing\nthe *federal* system against action.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.311+0000", "event": "documents", "entityId": 6615, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gerardis@cs.mcgill.ca (The GIF Emporium)\nSubject: Re: 17\" Monitors\nOrganization: School of Computer Science, McGill University\nLines: 27\n\nIn article <C5GEH5.n1D@utdallas.edu> goyal@utdallas.edu (MOHIT K GOYAL) writes:\n\n>Oh yeah, I just read in another newsgroup that the T560i uses a high quality\n>Trinitron tube than is in most monitors.(the Sony 1604S for example) and this\n>is where the extra cost comes from.  It is also where the high bandwidth\n>comes from, and the fantastic image, and the large image size, etc, etc...\n\nI agree that the image is as sharp as it gets with these SONY tubes,\nhowever in the 17\" monitors using these tubes, the 2 annoying black\nlines on the top and bottom quarters of the tube, which are created due\nto the wires holding up the Invar Shadow Mask, are quite annoying after\na while.  That is the only thing that is making me lean more in favor\nof the NEC 5FG (or now also available the NEC 5FGe - only difference,\nno ACCUCOLOR ).  Any experiences or opinions from people who have used\nthe NEC 5FG would be appreciated since I want to get one right after\nmy exams are all done (ie: about a week from now).\n\n-Tony\n\n------------------------------------------------------------------------\n        Tony Gerardis    @   McGill University - Computer Science\n=========================================================================\nPrefered account--------------- |  The sun is the same in a relative way,\n       gerardis@cs.mcgill.ca    |  but you're older\nhowever also available -------  |  And shorter of breath and one day \n     tgerardi@nyx.cs.du.edu     |  closer to DEATH.       -Floyd\n     gerardis@musocs.bitnet     |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6616, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: chau@hao.ucar.edu (National Center for Atmospheric Research)\nSubject: Please help! (looking for books)\nDistribution: na\nOrganization: High Altitude Observatory, Boulder CO 80303\nLines: 6\n\nHi netters!\n\tI often have troubles with my PC and would like to fix it by myself.  Is \n\tthere any book that show you how to fix your own PC (hardware, monitor,\n\tprinter problems..etc).  Of course, no book would tell you the exact\n\tproblem with your PC, but at least it will give a general idea what\n\tmight be wrong.  Thanks so lot for your help.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6617, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: choe@dirac.phys.washington.edu\nSubject: Need phone number for Western Digital (ESDI problem)\nOrganization: University of Washington\nLines: 16\nDistribution: world\nNNTP-Posting-Host: dirac.phys.washington.edu\nKeywords: Western Digital, ESDI\n\nI have WD1007-WA2 ESDI controller with ROM BIOS v.1.1.\nIt has been working fine until I recently upgraded motherboard to 386-40MHz.\nNow, my Maxter drive goes crazy making lots of seeking sound even when the\ndrive is not accessed.  Of course, with numourous hard disk controller errors.\nThese symptoms disappear when I switch to non-turbo mode (8 MHz).\nI suspect some timing dependent Rom Bios routines. (There's a newer version\n2.x) Could anybody help me on this?\nBy the way, my new mother board has AMI Bios, 128k Cache, 8 MHz bus, and\nworks fine with my old MFM drives (I had to dig them up). :-(\nAlso, I will appreciate it very much if somebody send me the phone numbers\n(tech support/BBS) for Western Digital.\nMany thanks in advance.\n\nJay\n--\nPhysics, UW, Seattle, WA 98195  (206)543-7543  choe@phys.washington.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6618, "properties": {"category": "rec.motorcycles", "text": "From: schultz@hpcc01.corp.hp.com (David Schultz)\nSubject: Re: Honda CB400F For Sale\nOrganization: the HP Corporate notes server\nLines: 5\n\nI wanted to let people know that this motorcycle has been sold.\n\nThanks for your inquiries.\n\n--Dave Schultz\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6619, "properties": {"category": "sci.electronics", "text": "Subject: 2SC1096, 2SA634 specs?\nFrom: juhan@piko (Juhan Poldvere)\nOrganization: Tartu University, Department of Chemistry\nNntp-Posting-Host: piko.chem.ut.ee\nX-Newsreader: TIN [version 1.1 PL8]Lines: 10\nLines: 10\n\n\nHi,\nCould some kind soul post me the max power/voltage/current ratings of\n2SC1096 and 2SA634 transistors, their conductance types and pinouts.\nThey are used in the sweep portion of a TV set.\nThanks in advance,\n--\nJuhan Poeldvere, ES5QX                               | juhan@chem.ut.ee\nTartu University, Dept. of Chemistry                 | fax:   372 (34) 35440\n2 Jakobi St., EE-2400, Tartu, Estonia, via Stockholm | voice: 372 (34) 35429\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6620, "properties": {"category": "comp.graphics", "text": "From: Dave Watson <watson@maths.uwa.edu.au>\nSubject: Re: Delaunay Triangulation\nOrganization: The University of Western Australia\nLines: 29\nDistribution: world\nReply-To: watson@maths.uwa.edu.au\nNNTP-Posting-Host: madvax.maths.uwa.oz.au\n\nzyeh@caspian.usc.edu (zhenghao yeh) writes:\n\n>Does anybody know what Delaunay Triangulation is?\n>Is there any reference to it? \n\nThe Delaunay triangulation is the geometrical dual of the \nVoronoi tessellation and both constructions are derived from\nnatural neighbor order.\n\nAurenhammer, F., 1991, Voronoi Diagrams - A Survey of a \nFundamental Geometric Data Structure:\nACM Computing Surveys, 23(3), p. 345-405. \n\nOkabe, A., Boots, B., and Sugihara, K., 1992, Spatial \ntessellations : concepts and applications of Voronoi diagrams: \nWiley & Sons, New York, ISBN 0 471 93430 5, 532p.\n\nWatson, D.F., 1981, Computing the n-dimensional Delaunay \ntessellation with application to Voronoi polytopes: \nThe Computer J., 24(2), p. 167-172.}\n\nWatson, D.F., 1985, Natural neighbour sorting: The Australian \nComputer J., 17(4), p. 189-193. \n\n--\nDave Watson                          Internet: watson@maths.uwa.edu.au\nDepartment of Mathematics            \nThe University of Western Australia               Tel: (61 9) 380 3359\nNedlands, WA 6009  Australia.                     FAX: (61 9) 380 1028\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6621, "properties": {"category": "comp.sys.mac.hardware", "text": "From: swiers@chaos.aqeng.cdc.com (Aaron Swiers)\nSubject: Re: Increasing the number of Serial ports\nOrganization: Control Data Systems Inc.  \nLines: 16\n\nslang@bnr.ca (Steven Langlois) writes:\n>Does anyone know if there are any devices available for the Mac which\n>will increase the number of serial ports available for use\n>simultaneously?  I would like to connect up to 8 serial devices to my\n>Mac for an application I am working on. I must be able to access each\n>one of the independently.\n\nApplied Engineering makes a NuBus card called the QuadraLink which is \na board that contains 4 serial ports, which I believe can be used\nsimultaneously.  I'm not a user of one of these, but I have installed\na couple for people at work (I'm a technician).  Hope this helps.\n\n--\nAaron Swiers\nControl Data Corporation, Arden Hills MN            swiers@chaos.aqeng.cdc.com\nElectrical Engineering student, U of ND                swiers@plains.nodak.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6622, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Computer Science Department,  Stanford University.\nDistribution: usa\nLines: 22\n\nIn article <93104.231049U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>All your points are very well taken and things that I haven't considered as\n>I am not really familiar enough with handguns.\n\nThat's not all that Kratz doesn't know.\n\n>Hell, a Glock is the last thing that should be switched to.  The only thing\n>that I know about a Glock is the lack of a real safety on it.  Sure there is\n>that little thing in the trigger but that isn't too great of a safety.\n\nNow we know that Kratz doesn't understand what a safety is supposed to\ndo.  (He also confuses \"things he can see\" with \"things that exist\";\nGlocks have multiple safeties even though only one is visible from the\noutside.)\n\nA safety is supposed to keep the gun from going off UNLESS that's\nwhat the user wants.  With Glocks, one says \"I want the gun to go\noff\" by pulling the trigger.  If the safeties it has make that work,\nit has a \"real\" safety, no matter what Kratz thinks.\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6623, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: biediger@lonestar.utsa.edu (David . Biediger)\nSubject: Tangent Computer (EISA LB system)\nNntp-Posting-Host: lonestar.utsa.edu\nOrganization: University of Texas at San Antonio\nDistribution: usa\nLines: 9\n\n\n Has anyone here dealt with Tangent?  I'm looking at an 486 system\n they have that has an EISA backplane with a VESA slot for video.\n The SCSI contoller they use is made by Aorta.  I've never heard\n of this brand.  Can anyone comment on Tangent or the controller?\n\n Thanks,\n David\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6624, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: Ten questions about Israel\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 67\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <1483500349@igc.apc.org>, cpr@igc.apc.org (Center for Policy Research) writes:\n|> \n|> From: Center for Policy Research <cpr>\n|> Subject: Ten questions about Israel\n|> \n|> \n|> Ten questions to Israelis\n|> -------------------------\n|> \n|> I would be thankful if any of you who live in Israel could help to\n|> provide\n|>  accurate answers to the following specific questions. These are\n|> indeed provocative questions but they are asked time and again by\n|> people around me.\n\nI lived there until July 1992 so I think that on the whole,\nmy input is relevant.\n\n|> 1.      Is it true that the Israeli authorities don't recognize\n|> Israeli nationality ? And that ID cards, which Israeli citizens\n|> must carry at all times, identify people as Jews or Arabs, not as\n|> Israelis ?\n\nThose are two separate questions.  Obviously, Israeli authorities do\nrecognize Israeli nationality for some purposes, e.g. passports,\nconsular services, etc...  ID cards have a field of nationality\nwhich is a subdivision of the above.  Ostensibly, this field\nis provided for sevices provided by the religious departments\nof the gov't, though this is not the general case.\n\n|> 2.      Is it true that the State of Israel has no fixed borders\n|> and that Israeli governments from 1948 until today have refused to\n|> state where the ultimate borders of the State of Israel should be\n|> ?\n\nFrom its onset, Israel's borders have been shaped and reshaped by both\nwar and peace.  As such, the Israeli gov't has always felt that defining\nits borders is a step that is meaningful only after peace treaties have\nbeen conluded with its neighbors.  There is no plan for \"ultimate borders\"\n(is this a game like \"ultimate frisbee\"?) extending into  other countries.\n\n|> 3.      Is it true that Israeli stocks nuclear weapons ? If so,\n|> could you provide any evidence ?\n\nAside from what Vaanunu provided, no.\n\n|> 4.      Is it true that in Israeli prisons there are a number of\n|> individuals which were tried in secret and for which their\n|> identities, the date of their trial and their imprisonment are\n|> state secrets ?\n\nIf that is true, then by virtue of the question's subject, it is\nunanswerable.  Anyone who claims its validity. is claiming an oxymoron.\nThat having been said, I deny the above.\n\nYou go on to ask quite a number of questions that show an obvious\nbias.  Questions of the sort \"Is it true that you entered your\nmother's vagina?\" which are based upon some kernel of truth, though\nphrased in a way as to render them repugnant and cast aspersions\nupon Israel.  Incidentally, the answer to the above is usually yes,\nunless you were born via a C-section.\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6625, "properties": {"category": "talk.politics.mideast", "text": "From: bdm@cs.rit.edu (Brendan D McKay)\nSubject: Re: Deir Yassin\nNntp-Posting-Host: darch\nOrganization: Rochester Institute of Technology, Rochester, NY\nLines: 103\n\nIn article <1r94f9$ge3@morrow.stanford.edu> AS.VXF@forsythe.stanford.edu (Vic Filler) writes:\n>In article <1993Apr19.204243.19392@cs.rit.edu>,\n>bdm@cs.rit.edu (Brendan D McKay) writes:\n>>\n>>I have previously posted quotations by Irgun participants that\n>>totally destroys Begin's whitewash.  I have no particular desire\n>>to post it yet again.\n>>\n>>Brendan.\n>>(normally bdm@cs.anu.edu.au)\n>\n>You apparently think you are some sort of one-man judge and jury who\n\nSo what are you?\n\n>can declare \"total\" victory and then sit back and enjoy the\n>applause.  But you've picked the wrong topic if you think a few\n>rigged \"quotations\" can sustain the legend and lie of the Deir\n>Yassin \"massacre.\"\n\nI don't think that, you are just making noise.\n\n>You have a lot to learn when it comes to historical methodology.\n\nThat's true.  I try to learn from people who know more than me,\nnot from useless farts.\n\n>At the most basic level, you should know that there is a big\n>difference between weighing evidence fairly and merely finding\n>\"quotations\" that support your preset opinions.\n\nOf course, I have said that more times in this group than\nanyone else, I'd think.\n\n>If you have studied the history of Israel at all you must know that\n>many of the sources of your \"quotations\" have an axe to grind, and\n>therefore you must be very careful about whom you \"quote.\"  For\n\nQuite true, that's why I am so careful in selecting quotes.\n\n>example, Meir Pa'il, whom you cite, was indeed a general, a scholar,\n>and a war hero.  But that doesn't mean everything that comes out of\n>his mouth is gold.  In fact (and here your lack of experience\n>shows), Pa'il is such a fanatic, embittered leftist that much of his\n\nOh bullshit.  Fanatic my bum.  Prove your blah or cork it.\n\n>anti-Israel blathering (forget about anti-Irgun blathering) would be\n>considered something like treason in non-Israel contexts.  But of\n>course you don't consider this AT ALL when you find a juicy\n>\"quotation\" that you can use to attack Israel.\n\nHow would you know what I consider?  Read my mind?\n\n>Benny Morris (of Hashomer Hatzair) represents himself as a \"scholar\"\n>when he rehashes the old attacks on the Irgun.  Don't be fooled.\n>It's just the old Zionist ideological catfight, surfacing as an\n>attack on the (then-) Likud government.  If you will look closely at\n>the section on Deir Yassin in his book on the War of Independence,\n>you will see his \"indictment\" to be pure hot air.  And this is the\n>BEST HE CAN DO after decades of digging for any sort of damning\n>evidence.  Unfortunately for him, because his book parades itself as\n>\"scholarly,\" he is forced to put footnotes.  So you can clearly see\n>that his Deir Yassin account is based on nothing.\n\nI looked very closely at a large number of sources.  You have no\nidea what you are talking about.\n\n>The Deir Yassin \"massacre\" never took place as the propagandists\n>tell it, any more than the Sabra and Shatila \"massacres.\" Do you get\n\nThat's true about the accounts of both Irgun and Arab propagandists.\nLike Begin, for example.\n\n>the feeling people like to blame the Jews for \"massacres,\" even if\n\nNo, I never got that feeling.  I got rather opposite feelings\nabout people like you, though.\n\n>they have to make them up?  It must sound spicy.  Even some Jews\n>like to do it, for reasons of their own.\n\nHonesty?  Perhaps you would explain the testimony from members\nof the Irgun, to be found in their own handwriting in the\nIrgun Archives in Tel Aviv, that the wounded Arabs were killed,\nthat a group of 80 prisoners was massacred, that Lehi proposed\nexterminating everybody at the pre-raid meeting.  Exactly what\nreasons can you propose that this testimony should be rejected\nin favour of Begin's?\n\n>Please, don't confuse any of you Deir Yassin \"massacre\" stuff\n>with facts or scholarship.  You should stick to Begin's version\n>unless you find something serious to contradict it.\n\nThis is very funny.  You carried on about unsupported evidence,\npropagandists, axes to grind, and you end up telling us to stick\nto the account of the leader of the alleged killers.  You are\nobviously a hopeless case, as everyone can plainly see.\n\n>Vic\n\nBrendan.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6626, "properties": {"category": "rec.motorcycles", "text": "From: DEHP@calvin.edu (Phil de Haan)\nSubject: Re: European M/C Insurance\nNntp-Posting-Host: pcdehp\nOrganization: Calvin College\nLines: 24\n\n>--\n>H. Marc Lewis               | \"There are two kinds of people in the world --\n>Olivetti North America      | those who divide everything in the world into\n>marcl@mail.spk.olivetti.com | two kinds of things and those who don't\"\n                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nI thought it was:  \"There are two kinds of people in the world.  Those who \nthink there are two kinds of people and those who don't.\"\n\n\nAnd then there's:  \"There are three kinds of people in the world.  Those who \nlike math and those who don't.\"\n\nObmoto:  Michigan weather forecast for Saturday:  high in the low 40s, \nchance of snow flurries, showers possible.  Enjoy the weather where you \nare.  Have a ride on me.\n\n\n       Phil de Haan (DoD #0578) Why yes.  That is my 1974 Honda CL360.\n=============================================================================\n  \"That's the nature of being an executive in America.  You have to rely on\n    other people to do something you used to do yourself.\" -- Donald Fehr,\n        executive director, Major League Baseball Players Association.\n=============================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6627, "properties": {"category": "soc.religion.christian", "text": "From: lhep_ltd@uhura.cc.rochester.edu (Leonidas Hepis)\nSubject: Re: Prophecy on NYC\nOrganization: University of Rochester - Rochester, New York\nLines: 46\n\nmarka@travis.csd.harris.com (Mark Ashley) writes:\n\nIn soc.religion.christian you write:\n\n>Regarding David Wilkerson's prophecies.  While I'm not real sure of\n>his credibility, I do remember a book he wrote, called A VISION or\n>something like that.  He made a prediction that people who bought gold\n>would be hurt financially.  At the time, gold was up to about $800;\n>now it is less than half that.  This prediction stuck in my mind\n>because a lot of people where I worked were buying gold.\n\nNote that the above type of prediction does not require a God to be made.\nAn expert in a field can also predict things based on experience.\nBeware of predictions like \"The volcano will erupt tomorrow!\"  Don't\nfollow the preacher because of such statements that come true.\n\nNote also, that if I'm describing a (hypothetical) death of a friend as\na result of his passion for fast motorcycles, I might say \"his mother\npredicted he would die.\"  Of course, his father may have said \"he 'll\nmake good money because of his hobby\" and depending upon the final\noutcome of the situation I end up mentioning the one that's\nrelevant.  A reader down the road will get the impression that the\nmother or father had predicted accurately the event, when it was just\na casual statement.\n\nFinally, on prophesies, note that there are many prophesies that can be\nfulfilled my people, often to fool believers.  If I say, \"Beware, the\nterminal will unexpectedly be shut off!\" and then after 2 secs I turn\nit off (or have someone come out from another room and do it) there was\nno prediction.  A similar situation arises with the establishment of\nthe Jewish state.  While pressing for it, prominent Jews argued that it\nwas predicted that they'd have a state again, and that the time has\ncome.  (I've read this somewhere, but can't think of the source - if\nyou can, please let me know.)  In this case, the establishment of the\nstate does not really fulfill the  prophesy since the prophesy was used\nin order to push for the establishment of the state.\n\nDeciding what was truely a fulfillment of prophesy is very tricky.\n\n-leo\n\n-- \n\"My mother wanted to save herself until marriage.  Every |Leonidas Hepis\nday I thank God that she didn't.  Because without pre-   |\nmarital sex, I would never have been born.  Premarital   |lhep_ltd@uhura\nsex -- what a beautiful choice.\" - Greg Weeks            |.cc.rochester.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6628, "properties": {"category": "rec.autos", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Dumb options list\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 16\n\nThe idea here is to list pointless options. You know, stuff you\nget on a car that has no earthly use?\n\n\n1) Power windows\n\n\n\nAdd as you wish...\n\nRegards, Charles\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6629, "properties": {"category": "comp.sys.mac.hardware", "text": "From: pebi@aem.umn.edu (Peter A. Bidian)\nSubject: Re: Cache card for IIsi\nNntp-Posting-Host: zephyr.aem.umn.edu\nOrganization: University of Minnesota\nLines: 5\n\nHi, I bought a while ago a Cache Card w/ FPU from Techworks. It was 219$.\nI think that was the cheapest I ever saw.\n\nPeter\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6630, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Re: About this 'Center for Policy Resea\nNf-ID: #R:1qu75d$256@usenet.ins.cwru.edu:-1462127590:cdp:1483500350:000:1634\nNf-From: cdp.UUCP!cpr    Apr 21 04:21:00 1993\nLines: 33\n\n\nIt seems to me that many readers of this conference are interested\nwho is behind the Center for Polict Research. I will oblige.\n\nMy name is Elias Davidsson, Icelandic citizen, born in Palestine. My\nmother was thrown from Germany because she belonged to the 'undesirables'\n(at that times this group was defined as 'Jews'). She was forced to go\nto Palestine due to many  cynical factors. I have meanwhile settled in\nIceland (30 years ago) and met many people who were thrown out from\nmy homeland, Palestine, because of the same reason (they belonged to\nthe 'indesirables'). These people include my neighbors in Jerusalem\nwith the children of whom I played as child. Their crime: Theyare\nnot Jews. My conscience does not accept such injustice, period. My\nwork for justice is done in the name of my principled opposition to racism\nand racial discrimination. Those who protest against such practices\nin Arab countries have my support - as long as their protest is based\non a principled position, but not as a tactic to deflect criticism\nfrom Israel. The struggle against discrimination and racism is universal.\n\nThe Center for Policy Research is a name I gave to those activities\nundertaken under my guidance in different domains, and which command\nthe support of many volunteers in Iceland. It is however not a formal\ninstitution and works with minimal funds.\n\nProfessionally I am music teacher and composer. I have published \nseveral pieces and my piano music is taught widely in Europe.\n\nI would hope that discussion about Israel/Palestine be conducted in\na more civilized manner. Calling names is not helpful.\n\nElias Davidsson\nICELAND\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6631, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bagels@gotham.East.Sun.COM (Alex Beigelman - NYC SE)\nSubject: NCR 1204 external floppy drive\nOrganization: Sun Microsystems, Inc.\nLines: 12\nDistribution: world\nReply-To: bagels@gotham.East.Sun.COM\nNNTP-Posting-Host: lox.east.sun.com\nKeywords: NCR 1204 external floppy disk-drive\n\nHi,\n\nI just inherited an NCR 1204 external floppy.  This thing has every port known to man on the back.\nThe question is: Does anyone know how to connect this thing to a PC. What hardware is needed?\nSoftware?\n\nTIA,\nAlex\n\nP.S. please respond directly.  I am not on this alias.\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6632, "properties": {"category": "comp.sys.mac.hardware", "text": "From: newton@cs.utexas.edu (Peter Newton)\nSubject: Re: Cache card for IIsi\nOrganization: CS Dept, University of Texas at Austin\nLines: 64\nNNTP-Posting-Host: mohawk.cs.utexas.edu\n\n> Can some people with cache cards PLEASE post speedometer numbers they\n> get with the cards. I have only one report, which seems to indicate\n> that a 32K cache card gives you only about a 1% speedup!! \n\nOk.  I have a record that shows a IIsi with and without a 64KB cache.\nIt's small enough that I will attach it.\n\nI have also measured some real programs with and without the 64 KB\ncache.  The speedup varies a lot from app to app, ranging from 0% to\n40%.  I think an average of 20%-25% is about right.  The subjective\ndifference is not great, but is sometimes noticable.  A simple cache\ncard certainly does not transform a IIsi into something enormously\nbetter.  I do not have an FPU.\n\nThe conventional wisdom says that cache cards from all of the makers\noffer about the same speedup and that there is not much difference\nbetween 32K and 64K caches.  I bought mine from Third Wave for well\nunder $150.  I have had absolutely no problems at all with it.\n\nIf you get *complete* speedometer runs for a 32K cache, I'd like to\nsee them.  Let's check the conventional wisdom!  The so called\n\"Performance Rating\" numbers by themselves are of no interest. \n\nCheers.\n\n(This file must be converted with BinHex 4.0)\n:#@0KBfKP,Q0`G!\"338083e\"$9!!!!!!'A!!!!!$qK3%\"a+!!!!BGJ&CfGiGfH(H\n)GhQ!QSQBUC!!@SQUU(QSCfPhGhL(H+HCL&KjQTU)LDH)HBL*UCUCJ!U@GQ9hGiK\nhCAKR9SPiJ)QRQ)QUJ+N(J!UCLD#U#S!!S!QUUTQC#U#DL3J)#3LT#UU)QUUBUT!\n!S!L3!!UU#!QJS+UT!!QJS*UD#TUUQCQ3!*!!UCFJ!!%c4ACSL'D)L)D!#!!)#!!\n!!!!!!!!)!!!!!!!!J!B8*%9@9L0A\"i!!G`!!G`B!!(J)\"i###B!P[US),B\")21Z\n-1I\"k-cQFM-VXMHhA!irdjPcVr,lUCVSZ2SI8j@,-l,jPI`F#lZq0A\"AL8XRHjf,\n6[LJ09\"aZ2TV6l!$9lN@eAP@Rei8(VIpIQkfDK$-ZV[b+9[T5lkC0XZ6LGhf(Ik&\na$Lkh*Q6-qhh2MIlc*Q2Iq$p([GeSp(ejN!\"bHMdHll$&Qh'lR`E26C2(QBqSrMM\npa-k()jPGXqcpR2rYR9eYd0,*Mh0,h1rj1*hA%pcLHRSG6PF2eIYmc4rIS60EFp+\nCGE@Vr$[TRAFA(QkA`pG8JkS[@fe1mcBikFQC(,(9K[U&h\"\"0rr\"BDDT(i%XP3Z$\nV04L8D82FeU01V4K-9U#JaD@1*fZa`EZr3-eGTYkNXH49SjF2Ei[G*5el3[VZ'j[\nVf($bTBHjlEX3Pe0KJ8,ZKH!9Cc3+fJ%kHGZC*BHhNV9+DC6Xd$[S58DFD\"pJ%ei\nq#CXHkEL`@d%&PYYY\"1f0rG`jm0rJTCYMi4B1KbB'pUBQ)PU9'q\"*m1miHG#YR`b\neUNG1'mSAP#mR`i-1*K`l[DiNq'MQjZA(,4bq\"$*Mimq(KC9@@(-Mc'\"f88e9U&0\nF'Y4U5eXb(\"+6T8D@6(R3ae+10Padk\"CAK!*Ea6SThLiA9HF!H&&Da@[,[2bA2!p\n2VIr&TI)!6V`%S!*eJ#GS!Q!!QqD#2P!*M49m9IdHhm2frUq2Ek))G3e\"Vi)+rQJ\nC[`%m#+E&0jf\"YI2ql`VI&0qHH!R[339`'9hY46)TR+ZkXI!pQRQKCU3%ed9R&Cr\n!QCiUk+ZmEf)IYI&bqMEffkT5bB`JhYl2K[0PXVe0B@@2*@Uam121D`A`h+cC)Xl\nIEjf8S+#9`a6[P8p0ZC&6H0ajcY1BR\"JDM3`F%lJ1&5bI+SC2Jh([qeTfVK961rR\nZVIq[+Rb-TH3'B3f0r$h''cP%\"UY1'jU53jY@5P(RCdPAXAfrl\"Xrhf#Y\"dmV1i$\n9%Dm@T+f4NMlP5jd-XN0(K5C91'R@)4Qb9C5Ke1h%V-kiaRA-NTa`b9(YYL5TM5*\nF2#bUFFLGJ%,D8QA*9R`eUQ29Sj!!p0b'\"c5LEFR4@%9KpDGj1,bijhNaDH,6mrm\n(3qpJITeraM0+0RHJ*aJ%f`#HJ!R4JJXDK22e!Cab5DK)jkRq0r[IcrC`[c!Krd(\n$m1VrbJCX!NR)3FrcHYPk(r1CHJjiJ#Hk%'J84pq+#+$a2&r&bZ,Ff1V,-KG6qG9\nMbmUPG9XkUeX$2Gl!Gl!Gl!GE!k5hrX(F4IX4IRNYkb\"M%rSbN4`8m8qPq2rAd[j\nFhRC#4(PeI2RFhY0+j-GH'!P*S)h!#HN!R6JJXb5f'b!clJkfb121qGm2MclEe,S\nmHpf12b4arQ$Q%%PLK\"q(8@I8[qRmmS5[l`\"2fP!\"4CpjY0,DDAp2AlE#eIPBD0c\nrL1,PeXj39[%9k`HF4Z,ZKGN4h9A+b-T23l)RDf'a13X\"'-#VbKJ[!9ME*!Tlp2-\nQckRpM@J2e5BN*f&jHN*[Vp-#f+F(J)PQXJNlYRLpQ3C,%`Cm0l3E[MP\"cXZ6`)B\nmpVS0)P3Y@XTB5F5qaSr\"XrmrZf1iLXSV,pPVjICFMRrekXdDI`0FHmT[Q!4VL`T\naalM336chGUr@\"Me6YarIDI&Y2LpE9HPaI#fhNFmq$qLchVC(dUajJ%eb%(6NdIH\np#jqEd#X1cGDTVmDY965+@Pi,Mr1JeR&pq`q@\"AacVkC[0lZi3-Z-5PZk8%f$Vrd\nHfR&1mci,3&Nqh9r\"e%\"j5Ve$0rN`AbfB\"Qqlk$C`3@LKQRh0(-MKhNYA+UC&Qhq\n5kajHR1eFqR,2H5b8Z!SLfG3!!2TPmiF!!3!+58PcD5eMB@0SC3%!!!!)6@0S9(0\n3C$1R$)JJT`b+33%!ADmicJ!#!!!4a3!!!!!!!!B9!!!!!,AP!!!:\n-- \n ----\nPeter Newton (newton@cs.utexas.edu)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6633, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 97\n\nIn article <1r21vqINNeb8@clem.handheld.com> jmd@cube.handheld.com (Jim De Arras) writes:\n>In article <C5spov.LrE@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n>writes:\n>> In article <1r0qsrINNc61@clem.handheld.com> jmd@cube.handheld.com (Jim De  \n>Arras) writes:\n>> >In article <C5s0Ds.J54@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n>> >writes:\n>> >> I agree that they deserved a trial.  They had more than 40 days to come \n>> >> out and get their trial.  They chose to keep the children with them and \n>> >> to stay inside.  They chose to stay inside even after they were tear  \n>gassed.\n>> >> I do not find these actions rational.  Even Noriega was smart enough to \n>> >> give up and go for the trial he deserved.\n>> >> \n>> >\n>> >Mr. Roby, you are a government sucking heartless bastard.  \n>> \n>> Unworthy of comment.\n>\n>But apparently true.  My opinion, only, of course.\n\nSo, your opinion is truth.  I see...  :-)\n\n>> >Humans died  \n>> >yesterday, humans who would not have died if the FBI had not taken the \n>> >actions  \n>> >they did.  That is the undeniable truth.  I cried for them.  \n>> \n>> Nor would they have died if they had come out with their hands empty.\n>> That is undeniable truth.  \n>\n>No, it is not.  It is possible the FBI planned for this to happen, and the  \n>gunfire heard was the FBI keeping the folks inside.  I'm not proposing this as  \n>the way it went down, but just to point out that it's not \"undeniable\" that if  \n>they walked out yesterday, they would be alive today.\n\nYou can believe that if you wish.  It is undeniable, however, that people \nhave left the compound unharmed and alive earier in the standoff.\n\nAnd since their leader was preaching that they would have an apocalypse, you \ncan not say undeniably that there wouldn't have been a mass suicide if the \nFBI had simply stayed outside and waited another 51 days.\n\n>> My heart bleeds just as much as yours for \n>> the children who were never released given 51 days of ample opportunities \n>> to do so.  My heart also bleeds for people so blinded by religious devotion \n>> to not have the common sense to leave the compound when tanks came up \n>> and started dropping in tear gas early in the morning.\n>\n>My heart \"bleeds\" for no one.  You are the \"bleeding heart\".  And I'm sure  \n>beyond any possible doubt that you do not feel for those people as I do.  You  \n>can not say the heartless things you have said if you did.\n\nI am the heartless bleeding heart?  You are not making sense.\nYou seem to have no concern that someone would keep children inside this \ncompound when they had 51 days to let them out.  That sounds pretty heartless \nto me.\n\nI just heard on the news that some of the survivors regret they hadn't \nstayed in the inferno to prove their loyalty to Koresh.  This makes me \nsad and sick.\n\n>> >You seem to say  \n>> >they got what they deserved.\n>> \n>> I do not think this.  However, if they did set the fire (which started in \n>> more than one place and spread very quickly), then they got what they \n>> wanted and put into motion themselves.\n>\n>\"they got what they wanted\".  What kind of creature are you that you can  \n>believe this?\n\nHave you ever heard of Jonestown?\nThe sad thing is the people inside the compound were the authority \nworshipers and their only authority was Koresh/Howell.   If these \npeople were able to think for themselves, there would likely be a lot \nmore survivors today.  Koresh preached a fiery apocalypse as early as \nlast year.\n\n>> I see the BATF is going to be investigated by the Justice Dept. and likely \n>> by Arlen Spectre and congress.  This is good.  They have bungled the affair \n>> from the start.\n>\n>We agree on this.  Now lets have your God, the FBI, investigated, too.\n\nBy all means, the FBI should be investigated, too.  \nBTW, I thought the second ammendment was God.  :-)\n\n>> >Jim\n>> >--\n>> >jmd@handheld.com\n>>  \n\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6634, "properties": {"category": "talk.politics.misc", "text": "From: drevik@utkvx.utk.edu (Drevik, Steve)\nSubject: Re: Clinton's immunization program\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: University of Tennessee Computing Center\nLines: 32\n\nIn article <C5JoBH.7zt@apollo.hp.com>, goykhman@apollo.hp.com (Red Herring) writes...\n>In article <1993Apr14.122758.11467@magnus.acs.ohio-state.edu> jlinder@magnus.acs.ohio-state.edu (Jeffrey S Linder) writes:\n>>In article <C5FJsL.6Is@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR.C\n>>OM (Mark Wilson) writes:\n>>>On the news last night Clinton was bashing the republicans for stonewalling\n>>>his so called stimulus package.\n>>>It seems that one small item within this package was going to pay for free\n>>>immunizations for poor kids.\n>>\n>>Immunizations for children in this country are already free if you care to\n>>go have it done.  The problem is not the cost, it is the irresponible parents\n>>who are to stupid or to lazy to have it done.\n\nI don't know where YOU live, but this is not the case nationawide.\nPerhaps your state or municipality has put together the funds to \ndo so, but in my area and most areas where I know people, immunizations\ncost $$$.\n\nSorry to shatter your stereotypes.\n\n\n> \n>    In case you haven't noticed, Clintonites are pushing a universal health\n>    care ACCESS program.  \"Access\" here means that folks who do not give \n>    a damn about immunizing their children will have health care services\n>    delivered to their doorsteps.\n> \n> \n>-- \n>------------------------------------------------------------------------------------------\n>Disclaimer: Opinions expressed are mine, not my employer's.\n>------------------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6635, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Environmentalism and paganism\nOrganization: AI Programs, University of Georgia, Athens\nLines: 12\n\nI would like to see Christians devote a bit less effort to _bashing_\npaganism and more to figuring out how to present the Gospel to pagans.\n\nChrist is the answer; the pagans have a lot of the right questions.\nUnlike materialists, who deny the need for any spirituality.\n\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6636, "properties": {"category": "alt.atheism", "text": "From: bevans@carina.unm.edu (Mathemagician)\nSubject: Re: Alt.Atheism FAQ: Introduction to Atheism\nOrganization: Society for the Preservation of E. coli\nLines: 12\nDistribution: world\nNNTP-Posting-Host: carina.unm.edu\nKeywords: FAQ, atheism\n\nI have an addition to the FAQ regarding \"why are there no atheist\nhospitals.\"\n\nIf I recall correctly, Johns Hopkins was built to provide medical\nservices without the \"backing\" of a religious group...thus making it a\nhospital \"dedicated to the glory of [weak] atheism.\"\n\nMight someone check up on this?\n\n-- \nBrian Evans                |     \"Bad mood, bad mood...Sure I'm in a bad mood!\nbevans@carina.unm.edu      |      I haven't had sex...*EVER!*\" -- Virgin Mary\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6637, "properties": {"category": "soc.religion.christian", "text": "From: weaver@chdasic.sps.mot.com (Dave Weaver)\nSubject: Some questions from a new Christian\nLines: 18\n\nIn a previous article, 18669@bach.udel.edu (Steven R Hoskins) writes:\n> \n>  One of my questions I would\n> like to ask is - Can anyone recommend a good reading list of theological\n> works intended for a lay person?\n> \n\nI would recommend \"Essential Truthes of the Christian Faith\" by RC Sproul.\nIt is copywrited 1992 from Tyndale House Publishers. Sproul offers concise \nexplanations, in simple language, of around 100 different Christian \ndoctrines, grouped by subject. I think it would be particularly good for\nnewer Christians (and older Christians suffering spiritual malnutrition),\nas it gives a Biblically sound basic treatment of the issues, avoiding \nlong in-depth analysis that can wait until after you know the basics. \n\n---\nDave Weaver               | \"He is no fool who gives what he cannot keep to\nweaver@chdasic.sps.mot.com|  gain what he cannot lose.\" - Jim Elliot (1949)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.312+0000", "event": "documents", "entityId": 6638, "properties": {"category": "rec.sport.baseball", "text": "From: paula@koufax.cv.hp.com (Paul Andresen)\nSubject: Re: Braves Pitching UpdateDIR\nNntp-Posting-Host: koufax.cv.hp.com\nOrganization: Hewlett-Packard Company, Corvallis, Oregon USA\nLines: 24\n\nIn article <1993Apr15.001211.18457@adobe.com>, snichols@adobe.com (Sherri Nichols) writes:\n|> In article <1993Apr14.200649.12578@pts.mot.com> ep502dn@pts.mot.com writes:\n|> >This certainly passes the \"common sense test\" for me, but is there any\n|> >statistical evidence to say what percent of defense is pitching and what\n|> >percent is fielding? \n|> \n|> Not yet; I wish there were.  It's much more difficult to tease these apart\n|> than to tease apart scoring runs and preventing runs.  \n\nAnd thus, we come to one of the true beauties of baseball; these things, along\nwith many others will never be separated. Almost *everything* in baseball is\nsituational and interdependent. This is what allows us to carry on all the\narguments that we have. If everything could be explained and balanced on a\nstatistical basis, none of the wonder and mystery would be left. Why we might\nhave to resort to just going out the ballyard and enjoy the game itself.\n\n--->Paul, feeling a little anti-stathead today\n--------------------------------------------------------------------------------\n           We will stretch no farm animal beyond its natural length\n\n  paula@koufax.cv.hp.com   Paul Andresen  Hewlett-Packard  (503)-750-3511\n\n    home: 3006 NW McKinley    Corvallis, OR 97330       (503)-752-8424\n                            A SABR member since 1979\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6639, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Goalie mask poll\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 15\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <93743@hydra.gatech.EDU> gtd597a@prism.gatech.EDU (Hrivnak) writes:\n>Current votes for favorite goalie masks (3pts - 1st, 2pts - 2nd, 1pt - 3rd)\n>Others receiving less than 4pts: Mike Vernon (Cal), Clint\n> Glenn Healy (NYI), Toy Espo (???), Gilles Gratton (???),\n\t\t     ^^^^^^^^^^^^^^\n\nIs this Tony Esposito?  If memory serves me correctly, Chicago.  God I\nhope I am right, otherwise I will never hear the end of it. ;-)\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n\t   \"A cow is not a vegetarian dish.\"  -- Keith Keller, 1993\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6640, "properties": {"category": "talk.politics.mideast", "text": "From: bradski@retina.bu.edu (Gary Bradski)\nSubject: Re: was: Go Hezbollah!!\n\t<1993Apr14.201143.20969@src.honeywell.com>\n\t<C5HuBA.CJo@news.cso.uiuc.edu>\n\t<1993Apr15.031349.21824@src.honeywell.com>\nOrganization: Boston University Center for Adaptive Systems\nLines: 32\nIn-reply-to: amehdi@src.honeywell.com's message of 15 Apr 93 03:13:49 GMT\n\n>>>>> On 15 Apr 93 03:13:49 GMT, amehdi@src.honeywell.com (Hossien Amehdi) said:\nIn article <1993Apr15.031349.21824@src.honeywell.com> amehdi@src.honeywell.com (Hossien Amehdi) writes:\n . . . \n>> Who is the you Arabs here.  Since you are replying to my article you\n>> are assuming that I am an Arab.  Well, I'm not an Arab, but I think you\n>> are brain is full of shit if you really believe what you said.  The\n>> bombardment of civilian and none civilian areas in Lebanon by Israel is\n>> very consistent with its policy of intimidation.  That is the only\n>> policy that has been practiced by the so called only democracy in\n>> the middle east!\n\n>> I was merley pointing out that the other side is also suffering.\n>> Like I said, I'm not an Arab but if I was, say a Lebanese, you bet\n>> I would defende my homeland against any invader by any means.\n                                       ^^^\nThe Syrians?  Iranian agents?  Or just Israeli invaders?\n--\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   ---------------\nGary Bradski                  I'net: bradski@park.bu.edu       | reverberate |  \nCognitive and Neural Systems                                   ---------------\nBoston University.                                                 |  V V\n111 Cummington St, Boston MA 02215                                 ^   Y\n617/ 353-6426                                                     ^ ^  | \n                                                               --------------\n            I don't even agree with some of my opinions        |   or die!  |\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   --------------\n\n\n\n   \n   \n   \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6641, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rsnyder@nyx.cs.du.edu (russ snyder)\nSubject: Re: Performa 450 internal modem?\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 10\n\nIn article <lsrk94INNr2s@news.bbn.com> ado@quince.bbn.com (Buz Owen) writes:\n>I hear that the Performa 450 is really an LCIII with an internal modem.  Can\n>the modem part be obtained and installed in an LCIII?  It would be nice if it\n>were actually a powerbook internal modem, but that might be too much to hope\n>for.\n\nI believe you were misinformed.  I checked out one of the P450's at Sears\nlast week.  The modem is external 2400bps data with send-only FAX.\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6642, "properties": {"category": "comp.graphics", "text": "From: johne@iti.gov.sg (Dr. John S. Eickemeyer)\nSubject: Re: Sphere from 4 points?\nOrganization: Information Technology Institute, National Computer Board, Singapore.\nLines: 37\n\nIn article <1qkgbuINNs9n@shelley.u.washington.edu> bolson@carson.u.washington.edu (Edward Bolson) writes:\n>Boy, this will be embarassing if it is trivial or an FAQ:\n>center and radius, exactly fitting those points?  I know how to do it\n>for a circle (from 3 points), but do not immediately see a \n>straightforward way to do it in 3-D.  I have checked some\n>geometry books, Graphics Gems, and Farin, but am still at a loss?\n>Please have mercy on me and provide the solution?  \n\nOff the top of my head, I might try:\n\nGiven: p_1, p_2, p_3, p_4\n\nFind:  p_c (center of sphere determined by p_1, ..., p_4), \n       dist(p_c, p_i) (radius)\n\np_c is the same distance from our four points, so\ndist(p_c,p_1) = dist(p_c,p_2) = dist(p_c,p_3) = dist(p_c,p_4) \n\nOf course, we can square the whole thing to get rid of square roots:\ndistsq(p_c,p_1) = distsq(p_c,p_2) = distsq(p_c,p_3) = distsq(p_c,p_4) \n\nPlug in the variables into the distance formula, simplify, and the \nx^2_c, y^2_c, and z^2_c terms cancel out, leaving you with three \nlinearly independent equations and three unknowns (x_c, y_c, z_c).  \nSolve using your favorite method.  :)\n\n\nAll the best,\n\n- John :)\n\n-------------------------------------------------------------------------------\nDr. John S. Eickemeyer                 ::     \"The Lord God is subtle,\nInformation Technology Institute      ::::     but malicious He is not.\"\nNational Computer Board, Singapore     ::\nEmail: johne@iti.gov.sg                ::                     - Albert Einstein\n-------------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6643, "properties": {"category": "comp.sys.mac.hardware", "text": "Organization: Penn State University\nFrom: <ACM108@psuvm.psu.edu>\nSubject: Daystar Turbo 040 Opinions?\nLines: 6\n\nI'm thinking about upgrading my 030 50MHz to the 040 33version.  Has anyone\nhad any experience with the accelerator, and if so - what do you think?\nAny problems, what are the speedometer results?, is it much faster than\nthe 50MHz?  Basically, I'd appreciate hearing all about this product.  Please\nrespond via email, and I'll summarize if there's a big response.  thanks\nin advance, Andrew\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6644, "properties": {"category": "sci.med", "text": "From: plebrun@minfminf.vub.ac.be (Philippe Lebrun)\nSubject: Re: Bursitis and laser treatment\nDistribution: eunet\nOrganization: Vrije Universiteit Brussel Faculteit Geneeskunde\nLines: 18\n\nIn article <1993Apr17.190104.14072@freenet.carleton.ca>, ab961@Freenet.carleton.ca (Robert Allison) writes:\n|> \n|> My family doctor and the physiotherapist (PT) she sent me to agree that the\n|> pain in my left shoulder is bursitis. I have an appointment with an orthpod\n|> (I love that, it's short for 'orthopedic surgeon, apparently) but while I'm\n|> waiting the PT is treating me.\n|> \n|> She's using hot packs, ultrasound, and lasers, but there's no improvement\n|> yet. In fact, I almost suspect it's getting worse.\n|> \n|> My real question is about the laser treatment. I can't easily imagine what\n|> the physical effect that could have on a deep tissue problem. Can anyone\n|> shed some light (so to speak) on the matter?\n\nIf it works it's only due to the heat produced by the laser.\n\n-philippe\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6645, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 02/10 - Net Etiquette\nOrganization: The Crypt Cabal\nLines: 92\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 2 of 10 of the sci.crypt FAQ, Net Etiquette.  Related\n newsgroups, appropriate topics, how to introduce an encryption scheme.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part02\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 2: Net Etiquette\n\nThis is the second of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read the first part before the rest.\nWe don't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in the last part.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers \nevery 21 days.\n\n\nContents:\n\n* What groups are around? What's a FAQ? Who am I? Why am I here?\n* Do political discussions belong in sci.crypt?\n* How do I present a new encryption scheme in sci.crypt?\n\n\n* What groups are around? What's a FAQ? Who am I? Why am I here?\n\n  Read news.announce.newusers and news.answers for a few weeks. Always\n  make sure to read a newsgroup for some time before you post to it.\n  You'll be amazed how often the same question can be asked in the same\n  newsgroup. After a month you'll have a much better sense of what the\n  readers want to see.\n\n* Do political discussions belong in sci.crypt?\n\n  No. In fact some newsgroups (notably misc.legal.computing) were\n  created exactly so that political questions like ``Should RSA be\n  patented?'' don't get in the way of technical discussions. Many\n  sci.crypt readers also read misc.legal.computing, comp.org.eff.talk,\n  comp.patents, sci.math, comp.compression, et al.; for the benefit of\n  people who don't care about those other topics, try to put your\n  postings in the right group.\n\n  Questions about microfilm and smuggling and other non-cryptographic\n  ``spy stuff'' don't belong in sci.crypt either.\n\n* How do I present a new encryption scheme in sci.crypt?\n\n  ``I just came up with this neat method of encryption. Here's some\n  ciphertext: FHDSIJOYW^&%$*#@OGBUJHKFSYUIRE. Is it strong?'' Without a\n  doubt questions like this are the most annoying traffic on sci.crypt.\n\n  If you have come up with an encryption scheme, providing some\n  ciphertext from it is not adequate. Nobody has ever been impressed by\n  random gibberish. Any new algorithm should be secure even if the\n  opponent knows the full algorithm (including how any message key is\n  distributed) and only the private key is kept secret. There are some\n  systematic and unsystematic ways to take reasonably long ciphertexts\n  and decrypt them even without prior knowledge of the algorithm, but\n  this is a time-consuming and possibly fruitless exercise which most\n  sci.crypt readers won't bother with.\n\n  So what do you do if you have a new encryption scheme? First of all,\n  find out if it's really new. Look through this FAQ for references and\n  related methods. Familiarize yourself with the literature and the\n  introductory textbooks.\n\n  When you can appreciate how your cryptosystem fits into the world at\n  large, try to break it yourself! You shouldn't waste the time of tens\n  of thousands of readers asking a question which you could have easily\n  answered on your own.\n\n  If you really think your system is secure, and you want to get some\n  reassurance from experts, you might try posting full details of your\n  system, including working code and a solid theoretical explanation, to\n  sci.crypt. (Keep in mind that the export of cryptography is regulated\n  in some areas.)\n\n  If you're lucky an expert might take some interest in what you posted.\n  You can encourage this by offering cash rewards---for instance, noted\n  cryptographer Ralph Merkle is offering $1000 to anyone who can break\n  Snefru-4---but there are no guarantees. If you don't have enough\n  experience, then most likely any experts who look at your system will\n  be able to find a flaw. If this happens, it's your responsibility to\n  consider the flaw and learn from it, rather than just add one more\n  layer of complication and come back for another round.\n\n  A different way to get your cryptosystem reviewed is to have the NSA\n  look at it. A full discussion of this procedure is outside the scope\n  of this FAQ.\n\n  Among professionals, a common rule of thumb is that if you want to\n  design a cryptosystem, you have to have experience as a cryptanalyst.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6646, "properties": {"category": "misc.forsale", "text": "From: broder@src.dec.com (Andrei Broder)\nSubject: Re: Squaw lift tickets available for $32 each\nReply-To: broder@src.dec.com\nOrganization: DEC Systems Research Center\nDistribution: ba\nLines: 9\n\nTickets midweek are now down to $34.  They will be $25 starting last\nweek in April, or maybe first week in May.  By the way, the current\nconditions (was there Apr 12-13) are great for spring skiing, with\nexcellent coverage, most stuff open, and no lift lines.\n\n- Andrei\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6647, "properties": {"category": "comp.sys.mac.hardware", "text": "From: John.M.Chung@dartmouth.edu (John M. Chung)\nSubject: PowerVision for PB's\nOrganization: Dartmouth College, Hanover, NH\nLines: 10\nX-Posted-From: InterNews 1.0b14@dartmouth.edu\n\nHi,\n\nI'm in the market for an internal color video adaptor for my PB 145.  I\nwas wondering if anyone has used the PowerVision adaptor made by\nMirror.  If so, can you tell me how feel about the speed and\ncompatability of it?  I might also be interested in other boards by\nEnvisio etc., so if you have such a board please e-mail your opinion of\nit.  Thanks in advance.\n\nJohn\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6648, "properties": {"category": "rec.autos", "text": "From: gregg@Xenon.Stanford.EDU (Gregg L. Kasten)\nSubject: differences in insurance companies' rates\nKeywords: insurance\nOrganization: CS Department, Stanford University, California, USA\nDistribution: ca\nLines: 23\n\nI am considering buying an new car, so I called three insurance\ncompanies in California to get estimates. I asked for the same\ncoverage and same deductibles. Most of the companies charge you\naccording to your zip code. Others charge according to your city.\nAnyhow, I gave the same zip code and city to all three places. Here's\nwhat I found (for a '93 Integra GS):\n\nAAA: ~$2000/yr.\nState Farm: 2614.92/yr.\nAllstate: 1220/yr.\n\nAAA is non-profit, so they said I could also expect to receive about\n$200-300 back at the end of the year.\n\nStill, There is a huge gap between all of these companies. State Farm\nwants MORE than TWICE as much as Allstate. I think I should be\nsuspicious, but I've never heard anybody else complain.\n\nAny comments?\n\nThanks,\nGregg L. Kasten\ngregg@cs.stanford.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6649, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: joker@diku.dk (Morten Christian Holmgreen)\nSubject: Re: 17\" Monitors\nOrganization: Department of Computer Science, U of Copenhagen\nLines: 23\n\ncatone@compstat.wharton.upenn.edu (Tony Catone) writes:\n\n>In article <C5GEH5.n1D@utdallas.edu> goyal@utdallas.edu (MOHIT K GOYAL) writes:\n\n>   Oh yeah, I just read in another newsgroup that the T560i uses a\n>   high quality Trinitron tube than is in most monitors.(the Sony\n>   1604S for example) and this is where the extra cost comes from.  It\n>   is also where the high bandwidth comes from, and the fantastic\n>   image, and the large image size, etc, etc...\n\n>It's also where the two annoying lines across the screen (one a third\n>down, the other two thirds down) come from.\n\nAnnoying??? Are you actually using one or are you just talking? ;-)\n\nI'm sitting in from of one right now and I must say I never notice them! Yes,\nof course I can see them if I look, but annoying? NO WAY!!!\n\nChristian\n-- \nM. Christian Holmgreen / joker@diku.dk / mochmch@uts.uni-c.dk\nM.Sc. student, University of Copenhagen, Dept. of Computer Science\n\"Human errors can only be avoided if one can avoid the use of humans\"\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6650, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: luttik@fwi.uva.nl (Bas Luttik (I91))\nSubject: Question: Can I connect two harddisk to one controller?\nSummary: I want to connect a second harddisk to my controller\nKeywords: Harddisk, Controller, MFM\nNntp-Posting-Host: gene.fwi.uva.nl\nOrganization: FWI, University of Amsterdam\nLines: 21\n\nHi,\n\nI've got a Victor PC/XT with a 20 MB harddisk in it. The controller is\na Toshiba MFM controller, with an additional 9 pins connector.\n\nThere are 2 busses from my harddisk to this controller. One with 9 wires\nand another with 34 wires.\n\nThe controller has two connectors for a 9 wire-bus and one for a 34 wire\nbus.\n\nNow I got a 20 MB harddisk from a friend of mine, and I wondered whether\nI can connect this second harddisk to the same controller (there is room\nfor a 9 wire-bus, but not for the 34 wire bus)\n\nHow can I solve my problem, any suggestions?\n\nIf you need more info, mail me, please (luttik@fwi.uva.nl).\n\n--Bas.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6651, "properties": {"category": "rec.sport.hockey", "text": "Subject: Re: Potvin's new goalie mask\nFrom: caldwell8102@mtroyal.ab.ca\nOrganization: Mount Royal College, Calgary, Alberta\nLines: 24\n\nIn article <allan.734333484@swanlake>, allan@cs.UAlberta.CA (Allan Sullivan) writes:\n> slegge@kean.ucs.mun.ca writes:\n> \n>>I was wtahcing RIGHT GUARD HOCKEY WEEK on TSN yesterday and they had\n>>a feature on this guy that does a lot (most?) of the masks for NHL\n>>goalies.  They talked about how they are made, what they are made of,\n>>and the designs that are put on them, etc.\n> \n>>The best one of all was one he never talked about, he just held it up.\n>>It has the current Leafs crest on the chin and an awesome looking \n>>black panther on the forehead -- it *has* to be a new mask for Felix\n>>Potvin, but he never said whose it was.\n> \n> Are you sure this program was current? I know that Grant Fuhr\n> had a black panther on the forehead of his mask when he played with\n> the Leafs. \n\nIt would seem logical that the mask is Potvins. His nickname is \"The Cat\", \nwhich would go a long ways towards explaining the panther. \n\nOf course, it could be an old story and the mask is Fuhrs, too.....\n\n\t\t\t\t\t\t\t\tAlan\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6652, "properties": {"category": "talk.politics.guns", "text": "From: donb@netcom.com (Don Baldwin)\nSubject: Re: Ax the ATF\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 14\n\nIn article <1r1ito$4t@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares)\n writes:\n>> It's hard to know what/who to believe.  However, the letter I received from\n>> the BATF, in response to one I sent to Bentsen, said that there was a search\n>> warrant AND an arrest warrant.\n>\n>Check again.  You may find that the arrest warrant was issued AFTER the\n>first firefight.\n\nThe letter implies that both warrants were issued before the Feb 28th\nshootout but doesn't say so exlicitly.  ACK!\n\n    don\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6653, "properties": {"category": "alt.atheism", "text": "From: ingles@engin.umich.edu (Ray Ingles)\nSubject: Evo. & Homosexuality (Was Re: Princeton etc.)\nArticle-I.D.: srvr1.1psosqINN3gg\nDistribution: world\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 51\nNNTP-Posting-Host: wormwood.engin.umich.edu\n\n\n Sorry, Bill, I had to clear this up. There may be good evolutionary\narguments against homosexuality, but these don't qualify.\n\nIn article <C4vwn0.JF5@darkside.osrhe.uoknor.edu> bil@okcforum.osrhe.edu (Bill Conner) writes:\n>C.Wainwright (eczcaw@mips.nott.ac.uk) wrote:\n[deletions]\n>: |> It would seem odd if homosexuality had any evolutionary function\n[deletions]\n>: So *every* time a man has sex with a woman they intend to produce children?\n>: Hmm...no wonder the world is overpopulated.  Obviously you keep to the\n>: Monty Python song:  \"Every sperm is sacred\".  And if, as *you* say, it has\n>: a purpose as a means to limit population growth then it is, by your own \n>: arguement, natural.\n>\n>Consider the context, I'm talking about an evolutionary function. One\n>of the most basic requirements of evolution is that members of a\n>species procreate, those who don't have no purpose in that context.\n\n Oh? I guess all those social insects (e.g. ants, bees, etc.) which\nhave one breeding queen and a whole passel of sterile workers are on\nthe way out, huh?\n \n>: These days is just ain't true!  People can decide whether or not to have \n>: children and when.  Soon they will be able to choose it's sex &c (but that's \n>: another arguement...) so it's more of a \"lifestyle\" decision.  Again by\n>: your arguement, since homosexuals can not (or choose not) to reproduce they\n>: must be akin to people who decide to have sex but not children.  Both are \n>: as \"unnatural\" as each other.\n>\n>Yet another non-sequitur. Sex is an evolutionary function that exists\n>for procreation, that it is also recreation is incidental. That\n>homosexuals don't procreate means that sex is -only- recreation and\n>nothing more; they serve no -evolutionary- purpose.\n\n I refer you to the bonobos, a species of primate as closeley related to\nhumans as chimpanzees (that is, very closely). They have sex all the\ntime, homosexual as well as heterosexual. When the group finds food, they\nhave sex. Before the go to sleep at night, they have sex. After they\nescape from or fight off prdators, they have sex. Sex serves a very important\nsocial function above and beyond reproduction in this species. A species\nclosely related to humans. There is some indication that sex performs\na social function in humans, as well, but even if not, this shows that\nsuch a function is not *impossible*.\n\n Sincerely,\n\n Ray Ingles               ingles@engin.umich.edu\n\n \"The meek can *have* the Earth. The rest of us are going to the\nstars!\" - Robert A. Heinlein\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6654, "properties": {"category": "rec.sport.baseball", "text": "From: mebonar@sn01.sncc.lsu.edu (MsciDave)\nSubject: Re: Young Catchers\nNews-Software: VAX/VMS VNEWS 1.3-4   \nReply-To: mebonar@sn01.sncc.lsu.edu\nOrganization: LSU news\nNntp-Posting-Host-[nntpd-681]: sn01.sncc.lsu.edu\nLines: 47\n\n>mss@netcom.com (Mark Singer) said:\n> \n>>Most catchers need to be solid defensively players to help their\n>>clubs in the bigs.  Those are the arguments against Lopez for the\n>>Braves for this year.\n\n>>Now.  The Braves have two catchers who have demonstrated solid\n>>abilities to call games, to work with the pitchers, to throw out\n>>runners.  \n\n\tThis is the crux of the argument (to me at least).  Both the\nSDCN and the non-SDCN camps seem to agree on the fact that a catcher's\ndefense is basically nonmeasurable at present.  You can talk about how\nimportant calling a game is, or framing the pitches, or blocking balls\nin the dirt.  But there is little or no way to tell exactly how various\ncatcher's rank in \"defense\".  \n\n\tLooking at Lopez specifically; is there any reason to suspect\nthat he is a bad defensive catcher other then the fact that the Braves\n(or the media) has labeled him a bad defensive catcher?  As far as I\ncan tell he doesn't have any particular problem in his mechanics\n(such as Sasser).  He might be a little rough around the edges in blocking\nthe ball, or framing the pitch to get a good call but all he needs to\nclear that up is playing and practice time.  I can't see how repetitions\nat AAA are any better then reps in the majors!  \n\n\tAll we're left with is the calling the game aspect.  Olsen  and\nBerryhill at always given credit for calling good games and helping\nthe pitchering staff.  But this is a reputation that is given to almost\nall veteran catchers.  How is catching at AAA going to help Lopez learn\nthe major league pitching staff?  The only way any catcher is going to\nlearn Tom Glavine's pitches is to catch Tom Glavine.  Similarly, I wouldn't\nbe supprised if the pitcher's claimed to prefer pitching to Olsen over\npitching to Lopez because they are used to pitching to Olsen.  But \ngiven time they will say they are comfortable with Lopez.\n\n\tNow, since Lopez can't learn how to handle the major league\npitcher's while he's in AAA and since he doesn't have any glaring\nproblem in his mechanics, what is he going to learn in AAA that he\ncan't learn just as well while in the majors?  \n\nDave\n__________\nDave Bonar\nmebonar@lsuvax.sncc.lsu.edu\n__________\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6655, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: takaharu@mail.sas.upenn.edu (Taka Mizutani)\nSubject: Re: DX3/99\nOrganization: University of Pennsylvania\nLines: 15\nNntp-Posting-Host: microlab11.med.upenn.edu\n\nIn article <IISAKKIL.93Apr6153602@lk-hp-22.hut.fi>,\niisakkil@lk-hp-22.hut.fi (Mika Iisakkila) wrote:\n\n :Because of some contract, IBM is not allowed to sell its\n :486 chips to third parties, so these chips are unlikely to become\n :available in any non-IBM machines. \n\nI saw in this months PC or PC World an ad for computers using IBM's 486SLC.\nSo I don't think IBM is restricted in selling their chips, at least not\nanymore. A clock-tripled 486, even without coprocessor would be great,\nespecially with 16k on-board cache. Make it 386 pin-compatible, and you\nhave the chip upgrade that dreams are made of :-)\n\nTaka Mizutani\ntakaharu@mail.sas.upenn.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6656, "properties": {"category": "talk.politics.misc", "text": "From: demon@desire.wright.edu (Not a Boomer)\nSubject: The state of justice\nOrganization: ACME Products\nLines: 23\nSummary: GM's quest for justice\n\n\tA judge denied GM's new trial motion, even though GM says it has two\nnew witnesses that said the occupant of the truck was dead from the impact, not\nfrom the fire.\n\n\tThoughts?\n\n\tIt's kind of scary when you realize that judges are going to start\ndenying new trials even when new evidence that contradicts the facts that led\nto the previous ruling appear.\n\n\tOr has the judge decided that the new witnesses are not to be believed? \nShouldn't that be up to a jury?\n\n\tAnd what about members of the previous jury parading through the talk\nshows proclaiming their obvious bias against GM?  Shouldn't that be enough for\na judge to through out the old verdict and call for a new trial?\n\n\tWhatever happened to jurors having to be objective?\n\nBrett\n________________________________________________________________________________\n\t\"There's nothing so passionate as a vested interest disguised as an\nintellectual conviction.\"  Sean O'Casey in _The White Plague_ by Frank Herbert.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6657, "properties": {"category": "rec.motorcycles", "text": "From: scs8@cunixb.cc.columbia.edu (Sebastian C Sears)\nSubject: MSF Program where?\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: scs8@cunixb.cc.columbia.edu (Sebastian C Sears)\nOrganization: Columbia University\nDistribution: usa\nLines: 10\n\n\n\tCould someone mail me the archive location of the MSF Program (for\n\tan IBM, right?)?\n\n\tThanks,\n\n-------\n\"This is where I wanna sit and buy you a drink someday.\" - Temple of the Dog\nSea-Bass Sears --> scs8@cunixb.cc.columbia.edu --> DoD#516 <-- |Stanley, ID.|\n '79 Yamaha XS750F -- '77 BMW R100S -- '85 Toyota 4Runner --   |  NYC, NY.  |\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6658, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: apoylis@inode.com\nSubject:  FAQ on Cyrix 486DLC?\nReply-To: apoylis@inode.com\nDistribution: world\nOrganization: inode BBS, NYC's Best Usenet Access (212-679-9146)\nLines: 9\n\n\nIs there a FAQ on Cyrix 486DLC? Could anyone please repost it or\nemail to me, if I missed it? Thanks in advance.\n \n\n... Alexander Poylisher, Internet: apoylis@inode.com; FidoNet: 1:2603/106\n---\n \u00fe Blue Wave/QWK v2.12 \u00fe\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6659, "properties": {"category": "comp.windows.x", "text": "From: mufti@plsparc.UUCP (Saad Mufti)\nSubject: FAQ for this group\nDistribution: usa\nOrganization: Personal Library Software, Inc.\nLines: 11\n\nCould some kind soul point me in the right direction for the\nFAQ list for this group.\n\nThanks.\n\n--------------------\nSaad Mufti\nPersonal Library Software\n\ne-mail : mufti@pls.com\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6660, "properties": {"category": "misc.forsale", "text": "From: awakhras@phoenix.Princeton.EDU (Amer Wahid Akhras)\nSubject: CD's For Sale\nOriginator: news@nimaster\nNntp-Posting-Host: phoenix.princeton.edu\nOrganization: Princeton University\nDistribution: USA\nLines: 26\n\nThe following used CD's are for sale.  They are each $8 unless otherwise\nmarked.  I will pay for the shipping and handling costs.  If you are\ninterested in any just e-mail me at awakhras@phoenix.princeton.edu.  At\nthat point we will figure out the payment and mailing procedure. \n\nArtist\t\t\t\tTitle\n\nRobbie Robertson\t\tStoryville\nLove and Rockets\t\tLove and Rockets\nJeff Lynne\t\t\tArmchair Theatre\nElvis Costello\t\t\tMighty Like a Rose\nPublic Image LTD\t\t9\nNeneh Cherry\t\t\tRaw Like Sushi\nBobby Brown \t\t\tDon't Be Cruel\nDepeche Mode\t\t\tBlack Celebration\nTraveling Wilburys              Vol. 1\nBad Company\t\t\t10 from 6\nSoul II Soul\t\t\tVol. II-1990 A New Decade\nThe Godfathers\t\t\tMore Songs About Love and Hate\nPaul McCartney\t\t\tFlowers in the Dirt\nSimply Red\t\t\tStars\nPrince\t\t\t\tGraffitti Bridge\n\nAmer Akhras\nawakhras@phoenix.princeton.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.313+0000", "event": "documents", "entityId": 6661, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jimb@rcx1.csd.harris.com (Jim Burmeister)\nSubject: Re: Cache card for IIsi\nOrganization: Harris CSD, Ft. Lauderdale, FL\nLines: 13\nDistribution: world\nNNTP-Posting-Host: rcx1.ssd.csd.harris.com\n\nIn article <pebi.735242681@zephyr.aem.umn.edu>, pebi@aem.umn.edu (Peter A. Bidian) writes:\n> Hi, I bought a while ago a Cache Card w/ FPU from Techworks. It was 219$.\n> I think that was the cheapest I ever saw.\n\nAs of last week, Mac's Place had the Applied Engineering QuickSilver card\n(32k cache, one PDS slot, socket for FPU) on sale for $99.00 (without FPU).\nRegular price is $199.\n\nNo idea if this is still going on, but I can get the phone no. if anyone is\ninterested (I found their ad in MacUser).\n\n-Jim Burmeister (no relation to Mac's Place except as a satisfied customer!)\n jimb@csd.harris.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6662, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Turkish Government Agents on UseNet Lie Through Their Teeth!\nArticle-I.D.: urartu.1993Apr15.204512.11971\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 63\n\nIn revision of history <9304131827@zuma.UUCP> as posted by Turkish Government\nAgents under the guise of sera@zuma.UUCP (Serdar Argic) LIE in response to\narticle <1993Apr13.033213.4148@urartu.sdpa.org> hla@urartu.sdpa.org and\nscribed: \n\n[(*]    Orhan Gunduz is blown up. Gunduz receives an ultimatum: Either \n[(*]    he gives up his honorary position or he will be \"executed\". He \n[(*]    refuses. \"Responsibility\" is claimed by JCAG and SDPA.\n\n[(*]    May 4, 1982 - Cambridge, Massachusetts\n[(*]\tOrhan Gunduz, the Turkish honorary consul in Boston, would not bow \n[(*]\tto the Armenian terrorist ultimatum that he give up his title of \n[(*]\t\"honorary consul\". Now he is attacked and murdered in cold blood.\n[(*]\tPresident Reagan orders an all-out manhunt-to no avail. An eye-\n[(*]\twitness who gave a description of the murderer is shot down.  He \n[(*]\tsurvives... but falls silent. One of the most revolting \"triumphs\" in \n[(*]\tthe senseless, mindless history of Armenian terrorism. Such a murder \n[(*]\tbrings absolutely nothing - except an ego boost for the murderer \n[(*]\twithin the Armenian terrorist underworld, which is already wallowing \n[(*]\tin self-satisfaction.\n[(*] \n[(*]    Were you involved in the murder of Sarik Ariyak? \n\n[(*]   \tDecember 17, 1980 - Sydney\n[(*]\tTwo Nazi Armenians massacre Sarik Ariyak and his bodyguard, Engin \n[(*]    Sever. JCAG and SDPA claim responsibility.\n\nMr. Turkish Governmental Agent: prove that the SDPA even existed in 1980 or\n1982! Go ahead, provide us the newspaper accounts of the assassinations and \nshow us the letters SDPA! The Turkish government is good at excising text from\ntheir references, let's see how good thay are at adding text to verifiable \nnewspaper accounts! \n\nThe Turkish government can't support any of their anti-Armenian claims as\ntypified in the above scribed garbage! That government continues to make \nfalse and libelous charges for they have no recourse left after having made \nfools out of through their attempt at a systematic campaign at denying and \ncovering up the Turkish genocide of the Armenians. \n\nJust like a dog barking at a moving bus, it barks, jumps, yells, until the\nbus stops, at which point it just walks away! Such will be with this posting!\nTurkish agents level the most ridiculous charges, and when brought to answer, \nthey are silent, like the dog after the bus stops!\n\nThe Turkish government feels it can funnel a heightened state of ultra-\nnationalism existing in Turkey today onto UseNet and convince people via its \nrevisionist, myopic, and incidental view of themselves and their place in the \nworld. \n\nThe resulting inability to address Armenian and Greek refutations of Turkey`s\nre-write of history is to refer to me as a terrorist, and worse, claim --\nas part of the record -- I took responsibility for the murder of 2 people!\n\nWhat a pack of raging fools, blinded by anti-Armenian fascism. It's too bad\nthe socialization policies of the Republic of Turkey requires it to always \nfind non-Turks to de-humanize! Such will be their downfall! \n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6663, "properties": {"category": "talk.politics.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: Clinton's immunization program\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 10\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, paul@hsh.com (Paul Havemann) says:\n\n>All together now... c'mon, you know the words... \"Meet the new boss! Same as \n>the old boss!\"  And the chorus: \"We won't get fooled again!\"\n                                  ^^^^^^^^^^^^^^^^^^^^^\n    Hmmm.  Can I, eh,  get a little side bet on this one?\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6664, "properties": {"category": "rec.motorcycles", "text": "From: fist@iscp.bellcore.com (Richard Pierson)\nSubject: Re: GGRRRrrr!! Cages double-parking motorcycles pisses me off!\nNntp-Posting-Host: foxtrot.iscp.bellcore.com\nOrganization: Bellcore\nDistribution: usa\nLines: 29\n\nIn article <1993Apr15.135232.24454@dsd.es.com>, bgardner@pebbles.es.com\n(Blaine Gardner) writes:\n|> In article <34211@castle.ed.ac.uk> wbg@festival.ed.ac.uk (W Geake)\n|> writes:\n|> >\n|> >The Banana one isn't, IMHO.  Ultra sticky labels printed with your\n|> >favourite curse are good - even our local hospitals use them instead\n|> of\n|> >wheel clamps, putting one (about A5 size) on each window of the\n|> cage.\n|> \n|> So what's your local hospital's favorite curse?\n|>\n\n  \"May your skin stick to a frozen bed pan\"\n  \"May your apple juice be mistakenly drawn from the urinalisys\nlab\"\n\n-- \n##########################################################\nThere are only two types of ships in the NAVY; SUBMARINES \n                 and TARGETS !!!\n#1/XS1100LH\tDoD #956   #2 Next raise\nRichard Pierson E06584 vnet: [908] 699-6063\nInternet: fist@iscp.bellcore.com,|| UUNET:uunet!bcr!fist  \n#include <std.disclaimer> My opinions are my own!!!\nI Don't shop in malls, I BUY my jeans, jackets and ammo\nin the same store.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6665, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Re: Police radar....Just how does it work??\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 35\n\nIn article <1993Apr2.182216.28603@walter.bellcore.com>, deaddio@ski.bellcore.com (Michael DeAddio) writes:\n\n|> |> Question 2:\n|> |> \n|> |> \tIf I am right about the doppler(if I spell it different every time,\n|> |> maybe one will be right) effect, how does the radar get an accurate reading\n|> |> when the car containing it is moving??  It would seem to me ( for all thats\n|> |> worth) that it would need to be calibrated with the speedometer of the car\n|> |> containing it??  I am fairly sure this isn't the case, so whats the deal??\n|> \n|> Essentially, this is actually how it is done.  The radar gun is tied into\n|> the speedometer of the car.\n\nNo, it is independent of the speedometer. The gun processes two doppler\nreturns--the speed of the car relative to the pavement and the speed\nof the target, taking the difference between the two. Some guns with\na \"moving mode\" actually have a split beam with one beam aimed\npreferentially at the pavement.\n\nCar and Driver had a good article on traffic radar, but it was back in\n1985. I used its contents and references to defend myself against a bogus\nradar-measured ticket. It detailed \"moving mode,\" which is easier to\ndefend against because of the increased amount of variables.\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6666, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Moonbase race, NASA resources, why?\nLines: 32\nNntp-Posting-Host: acad3.alaska.edu\nOrganization: University of Alaska Fairbanks\n\nIn article <1r46o9INN14j@mojo.eng.umd.edu>, sysmgr@king.eng.umd.edu (Doug Mohney) writes:\n> In article <C5tEIK.7z9@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n> \n>>Apollo was done the hard way, in a big hurry, from a very limited\n>>technology base... and on government contracts.  Just doing it privately,\n>>rather than as a government project, cuts costs by a factor of several.\n> \n> So how much would it cost as a private venture, assuming you could talk the\n> U.S. government into leasing you a couple of pads in Florida? \n> \n> \n> \n>     Software engineering? That's like military intelligence, isn't it?\n>   -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n\n\nWhy must it be a US Government Space Launch Pad? Directly I mean..\nI know of a few that could launch a small package into space.\nNot including Ariadne, and the Russian Sites.. I know \"Poker Flats\" here in\nAlaska, thou used to be only sounding rockets for Auroral Borealous(sp and\nother northern atmospheric items, is at last I heard being upgraded to be able\nto put sattelites into orbit. \n\nWhy must people in the US be fixed on using NASAs direct resources (Poker Flats\nis runin part by NASA, but also by the Univesity of Alaska, and the Geophysical\nInstitute). Sounds like typical US cultural centralism and protectionism..\nAnd people wonder why we have the multi-trillion dollar deficite(sp).\nYes, I am working on a spell checker..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6667, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: thomas@datamark.co.nz (Thomas Beagle)\nSubject: Re: WINQVTNET with NDIS on Token Ring ?\nOrganization: Datamark International Ltd.\nLines: 14\n\nIn article <1993Apr21.082152@liris.tew.kuleuven.ac.be> wimvh@liris.tew.kuleuven.ac.be (Wim Van Holder) writes:\n>Is it possible to use WinQVT/Net on a machine that uses NDIS to connect to a\n>Token Ring ? I tried it with older versions (< 3.2) but got an invalid packet\n>class error or something the like...\n\nHow are you attempting to do that?\n\nAre you using the DIS_PKT9 program? This provides a packet driver on\ntop of the NDIS driver.\n\n-- \n   Thomas Beagle | thomas@datamark.co.nz        Work: 64 4 233 8186    __o\nTechnical Writer | thomas@cavebbs.welly.gen.nz  Home: 64 4 499 3832  _-\\<,\n  Wellington, NZ |    Hound for hire. Will work for dog biscuits.   (_)/(_)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6668, "properties": {"category": "sci.crypt", "text": "From: pcw@access.digex.com (Peter Wayner)\nSubject: The Old Key Registration Idea...\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 25\nNNTP-Posting-Host: access.digex.net\n\nOkay, let's suppose that the NSA/NIST/Mykotronix Registered\nKey system becomes standard and I'm able to buy such a system\nfrom my local radio shack. Every phone comes with a built in\nchip and the government has the key to every phone call. \nI go and buy a phone and dutifully register the key. \n\nWhat's to prevent me from swapping phones with a friend or \nbuying a used phone at a garage sale? Whooa. The secret registered\nkeys just became unsynchronized. When the government comes \nto listen in, they only receive gobbledly-gook because the \nsecret key registered under my name isn't the right one. \n\nThat leads me to conjecture that:\n\n1) The system isn't that secure. There are just two master keys\nthat work for all the phones in the country. The part about\nregistering your keys is just bogus. \n\nor \n\n2) The system is vulnerable to simple phone swapping attacks\nlike this. Criminals will quickly figure this out and go to\ntown.\n\nIn either case, I think we need to look at this a bit deeper.\"'jbl)mW:wxlD2\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6669, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Cookamunga Tourist Bureau\nLines: 27\n\nIn article <1qjfnv$ogt@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank\nO'Dwyer) wrote:\n> (1) Does the term \"hero-worship\" mean anything to you?  \n\nYes, worshipping Jesus as the super-saver is indeed hero-worshipping\nof the grand scale. Worshipping Lenin that will make life pleasant\nfor the working people is, eh, somehow similar, or what.\n \n> (2) I understand that gods are defined to be supernatural, not merely\n>     superhuman.\nThe notion of Lenin was on the borderline of supernatural insights\ninto how to change the world, he wasn't a communist God, but he was\nthe man who gave presents to kids during Christmas.\n \n> #Actually, I agree. Things are always relative, and you can't have \n> #a direct mapping between a movement and a cause. However, the notion\n> #that communist Russia was somewhat the typical atheist country is \n> #only something that Robertson, Tilton et rest would believe in.\n> \n> Those atheists were not True Unbelievers, huh?   :-)\n\nDon't know what they were, but they were fanatics indeed.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6670, "properties": {"category": "comp.graphics", "text": "From: Mike_Peredo@mindlink.bc.ca (Mike Peredo)\nSubject: Re: \"Fake\" virtual reality\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 11\n\nThe most ridiculous example of VR-exploitation I've seen so far is the\n\"Virtual Reality Clothing Company\" which recently opened up in Vancouver. As\nfar as I can tell it's just another \"chic\" clothes spot. Although it would be\ninteresting if they were selling \"virtual clothing\"....\n\nE-mail me if you want me to dig up their phone # and you can probably get\nsome promotional lit.\n\nMP\n(8^)-\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6671, "properties": {"category": "talk.politics.guns", "text": "From: croaker@highlite.uucp (Francis A. Ney)\nSubject: Re: CNN for sale\nOrganization: Gotham Communications Research\nDistribution: usa\nLines: 10\n\n\nI will add my voice to the (hopefully) growing multitudes.\n\nI hereby pledge $1000.00 towards the purchase of CNN, under the same conditions\nas already described.  I will also post this idea on the other nets I can \naccess (RIME and Libernet).\n\nWe may have to organize this ourselves, so I am looking for help.\n\nFrank Ney  N4ZHG  EMT-A  LPVa  NRA ILA GOA CCRTKBA 'M-O-U-S-E'\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6672, "properties": {"category": "rec.sport.hockey", "text": "From: smorris@venus.lerc.nasa.gov (Ron Morris )\nSubject: Murray as GM  (was: Wings will win\nOrganization: NASA Lewis Research Center\nLines: 37\nDistribution: world\nNNTP-Posting-Host: venus.lerc.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr19.204348.8254@sol.UVic.CA>, gballent@hudson.UVic.CA writes...\n> \n>In article 735249453@vela.acs.oakland.edu, ragraca@vela.acs.oakland.edu (Randy A. Graca) writes:\n> \n>>are predicting).  Although I think Bryan Murray is probably the best GM\n>>I have ever seen in hockey\n> \n>How do you figure that??  When Bryan Murray took over the Wings they were\n>a pretty good team that was contending for the Stanley Cup but looked\n>unlikely to win it.  Now they are a pretty good team that is contending for\n>the Stanley Cup but looks unlikely to win it.  A truly great GM would\n>have been able to make the moves to push the team to the upper echelon\n>of the NHL and maybe win the Stanley Cup.  A good GM (like Murray) can\n\nI think Murray has done a great job.  He's picked up Ciccarelli,\nSheppard, Ysebaert, Howe, Coffey, and Riendeau (plus some depth players) \nwithout giving up anything the Wings needed or any of his top prospects.\nAll of this in three years.  Has anyone done better?\n\nThe year before he took over, the Wings didn't even make the playoffs.\nThere was about a year and a half during Demers' stint that the Wings\ndid OK, but that was due to Demers' motavational skills and clutch\nand grab style.  They didn't have much talent.\n\nGerald, Murray wasn't responsible for Primeau (although I'm not\nready to admit that's a horrible pick).  They hired him after the\ndraft (which has never made sense to me).  His first pick was\nLapointe.\n\nRon \n\n**********\n\"And one of my major goals is to leave the next president a new set\nof things to worry about.  I'm getting bored reading the same problems\nin the paper, decade after decade.  I want people to have to deal\nwith new problems.\"\n                    ... President Bill Clinton   2-4-93\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6673, "properties": {"category": "comp.graphics", "text": "From: ricardo@rchland.vnet.ibm.com (Ricardo Hernandez Muchado)\nSubject: Re: Rumours about 3DO ???\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: rs43873.rchland.ibm.com\nOrganization: IBM Rochester\nLines: 74\n\nIn article <1993Apr15.164940.11632@mercury.unt.edu>, Sean McMains <mcmains@unt.edu> writes:\n|> In article <1993Apr15.144843.19549@rchland.ibm.com> Ricardo Hernandez\n|> Muchado, ricardo@rchland.vnet.ibm.com writes:\n|> >   And CD-I's CPU doesn't help much either.  I understand it is\n|> >a 68070 (supposedly a variation of a 68000/68010) running at something\n|> >like 7Mhz.  With this speed, you *truly* need sprites.\n|> \n|> Wow! A 68070! I'd be very interested to get my hands on one of these,\n|> especially considering the fact that Motorola has not yet released the\n|> 68060, which is supposedly the next in the 680x0 lineup. 8-D\n\n   Sean, the 68070 exists! :-)\n\n|> \n|> Ricardo, the animation playback to which Lawrence was referring in an\n|> earlier post is plain old Quicktime 1.5 with the Compact Video codec.\n|> I've seen digitized video (some of Apple's early commercials, to be\n|> precise) running on a Centris 650 at about 30fps very nicely (16-bit\n|> color depth). I would expect that using the same algorithm, a RISC\n|> processor should be able to approach full-screen full-motion animation,\n|> though as you've implied, the processor will be taxed more with highly\n|> dynamic material.\n|> ========================================================================\n|> Sean McMains              | Check out the Gopher    | Phone:817.565.2039\n|> University of North Texas | New Bands Info server   | Fax  :817.565.4060\n|> P.O. Box 13495            | at seanmac.acs.unt.edu  | E-Mail:\n|> Denton TX 76203           |                         |  McMains@unt.edu\n\n\n   Sean, I don't want to get into a 'mini-war' by what I am going to say,\nbut I have to be a little bit skeptic about the performance you are\nclaiming on the Centris, you'll see why (please, no-flames, I reserve\nthose for c.s.m.a :-) )\n\n   I was in Chicago in the last consumer electronics show, and Apple had a\nbooth there.  I walked by, and they were showing real-time video capture\nusing a (Radious or SuperMac?) card to digitize and make right on the spot\nquicktime movies.  I think the quicktime they were using was the old one\n(1.5).\n\n   They digitized a guy talking there in 160x2xx something.  It played back quite\nnicely and in real time.  The guy then expanded the window (resized) to 25x by\n3xx (320 in y I think) and the frame rate decreased enough to notice that it\nwasn't 30fps (or about 30fps) anymore.  It dropped to like 15 fps.  Then he\nincreased it just a bit more, and it dropped to 10<->12 fps. \n\n   Then I asked him what Mac he was using... He was using a Quadra (don't know\nwhat model, 900?) to do it, and he was telling the guys there that the Quicktime\ncould play back at the same speed even on an LCII.\n\n   Well, I spoiled his claim so to say, since a 68040 Quadra Mac was having\na little bit of trouble.  And this wasn't even from the hardisk!  This was\nfrom memory!\n\n   Could it be that you saw either a newer version of quicktime, or some\nhardware assisted Centris, or another software product running the \nanimation (like supposedly MacroMind's Accelerator?)?\n\n   Don't misunderstand me, I just want to clarify this.\n\n   But for the sake of the posting about a computer doing it or not, I can\nclaim 320x200 (a tad more with overscan) being done in 256,000+ colors in \nmy computer (not from the hardisk) at 30fps with Scala MM210.\n\n   But I agree, if we consider MPEG stuff, I think a multimedia consumer\nlow-priced box has a lot of market... I just think 3DO would make it, \nno longer CD-I.\n\n--------------------------------------\nRaist  New A1200 owner   320<->1280 in x, 200<->600 in y\nin 256,000+ colors from a 24-bit palette.  **I LOVE IT!**<- New Low Fat .sig\n*don't e-mail me* -> I don't have a valid address nor can I send e-mail\n\n  \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6674, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Leaf slump over\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 79\n\nIn <1993Apr13.190225.29001@newshub.ists.ca> dchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n\n\n>On March 21, 1993 Roger Maynard wrote (in reply to an article by Graham\n>Hudson):\n\n>>You don't think he is performing \"under pressure\" now?  The major\n>>differences  between playoff hockey and normal hockey is 1. play-\n>>ing every other night which is physically exhausting and 2.   You\n>>play  the  same  team  in a consecutive string of games.  Is this\n>>what you mean by pressure?  Have you even thought about what  you\n>>mean  by pressure, or are your thoughts, like most of the rest of\n>>this drivel, simply half-baked?\n\n>This was <1993Mar21.223936.6192@ramsey.cs.laurentian.ca>, for anybody who\n>would like to check.\n\n>He went on (in another article) to say [paraphrased]\n\n>>\"Playoff hockey\" is just an expression used by announcers to convince\n>>simple-minded folks like yourself that what you are seeing is a better\n>>product than a regular-season game.\n\n>*NOW*, however, in article <1993Apr12.013939.23016@ramsey.cs.laurentian.ca> \n>(Roger Maynard) writes:\n\n>>With a 4-2 win over a tough Whaler squad the Leafs showed all doubters\n>>what playoff hockey is all about.  \n> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n>So, Roger, what exactly *is* playoff hockey all about?  Or is it a convenient\n>phrase to use in certain circumstances only?\n\n>You see, when you spout off with flame bait too many times, sooner or later\n>it catches up with you....\n\nNice try Deepak, but \"tough Whaler squad\" should have clued you in to the\nfact that my Leaf woofing was tongue-in-cheek.\n\nIf playoff hockey is any more intense than the regular season variety then\nit is because the teams are facing each other at least 4 consecutive times\nin 7 days and hockey being the contact sport that it is, some things will\nbe carried over that might dissipate during the regular season.  But that is\nonly for some of the players.  Many of the rest, who have been playing with\ninjuries, who miss their families, or who, like Grant Fuhr, would really\nrather be playing golf, don't really give a damn.  Of course I can't say this\nfor sure, but I believe that this is fairly typical of human nature and I\ndon't think that hockey players are above having what I consider typically\nhuman attitudes.  \n\nWith the recent salary escalations the key players are actually losing \nmoney by participating in the playoffs.  The ones who regard the playoff\n\"take\" as some kind of a bonanza are fringe players who are unlikely\nto consistently be a force in the playoffs.  Now I know some of you are\ngoing to come back with \"winning spirit\" and all of that crap but these\nplayers are professionals after all.  While they may love to play the \ngame that love is entirely incidental to their purpose, which is, to make\na decent living. \n\nOf course, the coach is a professional as well, and part of what he is \nbeing paid to do is motivate the players.  So, if the coach does his\njob well enough the players may respond with a winning effort.\n\nThe second season, is after all, merely an exhibition.  The true Champions\nof the league are the division winners, the teams that come out on top \nafter the long struggle of the season.  The Stanley cup playoffs merely\naccord victory to the team that has remained healthy and \"hot\".  The \nemphasis on the playoffs, with their \"sudden death\" appeal has been promoted\nby the media and the owners with profit purely in mind.  Even if Pittsburgh\nloses the playoffs, we all know that they were really the best team in the\nleague over the year.  They proved it.\n\ncordially, as always,\n\nrm\n\n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6675, "properties": {"category": "sci.crypt", "text": "From: pdc@dcs.ed.ac.uk (Paul Crowley)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nReply-To: pdc@dcs.ed.ac.uk (Paul Crowley)\nOrganization: Edinburgh University\nLines: 17\n\nQuoting strnlght@netcom.com (David Sternlight) in article <strnlghtC5t3nH.Is1@netcom.com>:\n>In article <1993Apr20.032623.3046@eff.org> kadie@eff.org (Carl M. Kadie) writes:\n>\n>\n>>So, don't just think of replacements for clipper, also think of front\n>>ends.\n>\n>This only makes sense if the government prohibits alternative non-escrowed\n>encryption schemes. Otherwise, why not just use the front end without\n>clipper?\n\nBecause that will make private encryption stick out like a sore thumb\nand the government will start to take a sharp interest in everything you\ndo.\n  __                                  _____\n\\/ o\\ Paul Crowley   pdc@dcs.ed.ac.uk \\\\ //\n/\\__/ Trust me. I know what I'm doing. \\X/  Fold a fish for Jesus!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6676, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: seizures ( infantile spasms )\nKeywords: seizures epilepsy\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 23\n\nIn article <1993Apr20.184034.13779@dbased.nuo.dec.com> dufault@lftfld.enet.dec.com (MD) writes:\n>\n>If anyone knows of any database or newsgroup or as I mentioned up above,\n>any information relating to this disorder I would sure appreciate hearing\n>from you. I am not trying to play doctor here, but only trying to gather\n>information about it. As I know now, these particular types of disorders\n>are still not really well understood by the medical community, and so I'm\n>going to see now....if somehow the internet can at least give me alittle\n>insight. Thanks. \n\n\nThere is no database for infantile spasms, nor a newsgroup, that I\nknow of.  The medical library will be the best source of information\nfor you.\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6677, "properties": {"category": "talk.politics.misc", "text": "From: wdstarr@athena.mit.edu (William December Starr)\nSubject: Re: ABOLISH SELECTIVE SERVICE\nOrganization: Northeastern Law, Class of '93\nLines: 18\nNNTP-Posting-Host: nw12-326-1.mit.edu\nIn-reply-to: william@fractl.tn.cornell.edu\n\n\nIn article <1qpvj2$dfp@fitz.TC.Cornell.EDU>, \nwilliam@fractl.tn.cornell.edu said in response to Dave Borden:\n\n> You selfish little bastard. Afraid you might have to sacrafice\n> somthing for your country. What someone not approve a lone for you ?\n> To bad.  What is immoral is: people like you and the current president\n> who don't have any idea why this country still exists after 200+\n> years.\n\nWilliam: If the reason that this country still stands after 200+ years\nis that it uses military conscription to force young men to fight for\ncauses that they don't believe in strongly enough to volunteer for\nmilitary service in support of, then perhaps the fact that the country\nis still standing is not good news...\n\n-- William December Starr <wdstarr@athena.mit.edu>\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6678, "properties": {"category": "comp.windows.x", "text": "From: neideck@nestvx.enet.dec.com (Burkhard Neidecker-Lutz)\nSubject: Re: Animation with XPutImage()?\nOrganization: CEC Karlsruhe\nLines: 14\nNNTP-Posting-Host: NESTVX\n\nIn article <1993Apr22.215913.23501@nrao.edu> rgooch@rp.CSIRO.AU (Richard Gooch) writes:\n>  ... remove the shared memory segment...\n>  Terrible, but it works.\n\nWhy is that terrible ? That's exactly the way our code has been doing\nit for two years now and is the way that temporary files in UNIX systems\nare managed most of the time (open, unlink).\n\n\t\tBurkhard Neidecker-Lutz\n\nDistributed Multimedia Group, CEC Karlsruhe          EERP Portfolio Manager\nSoftware Motion Pictures & BERKOM II Project         Multimedia Base Technology\nDigital Equipment Corporation\nneidecker@nestvx.enet.dec.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6679, "properties": {"category": "rec.sport.baseball", "text": "From: mjones@watson.ibm.com (Mike Jones)\nSubject: Re: Jack Morris\nReply-To: mjones@donald.aix.kingston.ibm.com\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: fenway.aix.kingston.ibm.com\nOrganization: IBM AIX/ESA Development, Kingston NY\nLines: 57\n\nmaynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n>It sure does.  And it all depends on the definition that you use for \"better\".\n>Yours is based on what could have been and mine is based on what really\n>happened.\n\nWell, actually, most of ours is based on what really happened and yours is\nbased on some fantasy of how it happened. But that's OK, I understand you\nhave a hockey background. Stats like \"plus/minus\" make RBI look good.\n\n>>Is it Viola's fault that Boston had no offense?  Is it *because* of Morris that\n>>the Blue Jays had such a strong offense?  Don't tell me that Morris has this\n>>magical ability to cause the offensive players to score more runs.\n>This is the perfect example of your problem.  You are isolating Viola's\n>contribution from the rest of the team's efforts.  You can only do\n>this if you can say for sure what the team would have done without \n>Viola.  Only then can you compare.  But you cannot know how the team\n>would have done without Viola.  Your analysis is fallacious.\n\nOK, how about a straigh answer, then. Here's a very simele question to which\nI'm sure a fair number of us are very interesed in the answer to. Please\nanswer yes or no, Roger:\n Can a pitcher cause the offensive players on his team to score more runs?\nAL only, please.\n\nFor anyone else following along, it is a well-known and demonstrable fact\nthat a team's win-loss record is closely related to the number of runs the\nteam scores and the number the team allows. It's not a definite,\nhard-and-fast function, but there is definitely a correlation. In fact, as a\nrule of thumb, if teams A and B both score X runs and team A allows Y runs,\nfor every 10 runs fewer than Y that team B allows, it will win another game.\nSo, for instance, if we look at the 1991 Toronto Blue Jays, we find that\nthey scored 780 runs and allowed 682, of which Morris allowed 114. All other\nthings being equal, if Frank Viola, with his 3.44 ERA had replaced Jack\nMorris for the 240.2 innings Morris threw (plausible, since Viola threw 238\nfor Boston), the \"Red Jays\" would have allowed about 15 fewer runs, or\nenough for 1-2 more wins. Now, that doesn't take into account that Viola\npitched half his innings in Fenway, which is a harder park to pitch in\n(particularly for a lefthander) than Skydome. So, um, Roger. Unless you\nreally do believe that a pitcher can somehow affect the number of runs\nhis team scores, could you enlighten us to the fallacy in this\nanalysis? Clearly, it would be foolhardy to claim that Viola would\nnecessarily have put up a 3.44 if he had been on the Jay last year, but\nthat is not the claim. We look at what the actual performances were and\nevaluate Viola's as better than Morris' in the sense that \"had Morris\nperformed as Viola did, his team would have been better off.\"\n\n>It takes an open mind to really truly understand what is happening out\n>here in the real world guys.\n\nThis is true, but not so open that your brain falls out.\n\n Mike Jones | AIX High-End Development | mjones@donald.aix.kingston.ibm.com\n\nComputer...if you don't open that exit hatch this moment I shall zap straight\noff to your major data banks and reprogram you with a very large ax. Got\nthat?\n\t- Zaphod Beeblebrox\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6680, "properties": {"category": "rec.sport.hockey", "text": "From: saz@hook.corp.mot.com (Scott Zabolotzky)\nSubject: Re: the hawks WILL return to the finals!!!!!\nOrganization: Motorola, Inc.\nNntp-Posting-Host: 129.188.122.164\nLines: 24\n\nIn article <1qk0k4$itg@uxa.ecn.bgu.edu> cubrj@uxa.ecn.bgu.edu (Brian Johnson) writes:\n>Well now that the hawks have won the division the road is a little\n>easier for the playoffs. Let toronto and detroit beat the hell out of\n>each other while Chicago sweeps st.louis. That just makes it easier in\n>the second round with all the rest they will get and tor/det getting\n>none. For the conf. champ they will have a hard time versus the division\n>but that div. will be pretty battered also so the advantage goes to the\n>Hawks again. Then bring pitt. and sure the Hawks will probably lose but\n>its better to get that far and lose than to not go.\n>\n>brian\n>\n\nHopefully, a miracle (o.k. not quite a miracle, but close!) will occur and\nPittsburgh will be elminated prior to the finals.  If they make it again, \nthey will probably keep the Cup.  If they don't, it's the Hawks' turn!\n\nGO BLACKHAWKS!!\n\nCONGRATS TO JEREMY ROENICK FOR BEING ONLY THE 2ND HAWKS PLAYER TO POST \nBACK TO BACK 50 GOAL SEASONS!!\n\nScott\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6681, "properties": {"category": "rec.sport.baseball", "text": "From:  (Sean Garrison)\nSubject: Re: WHAT'S WITH ALL THESE SCORES?\nNntp-Posting-Host: berkeley-kstar-node.net.yale.edu\nOrganization: Yale University\nLines: 23\n\nIn article <1qplh7$e2g@agate.berkeley.edu>, jtchern@ocf.berkeley.edu\n(Joseph Hernandez) wrote:\n \n> If people on USENET really don't want to see the postings I do to\n> rec.sport.baseball on a daily basis, please just let me know. If the response\n> is overwhelming against the posts, I won't do it anymore. \n> \n> Thanks for your time.\n> \n> Joseph Hernandez\n\n\n\nMr. Hernandez \u00d1-\n  \n   I apologize for the misunderstanding.  I explained that I know that it\nis essential for some fans to get scores here, for they cannot get them\nelsewhere.  I have no problem with what you do, posting scores AFTER the\ngames have been completed.  However, like I said earlier, I don't think it\nis a necessity to post scores during the middle of games, like some others\nhave come to practice.\n\n                                       - Sean\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6682, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 5\nDistribution: na\nNNTP-Posting-Host: access.digex.net\n\n > I wonder if she landed such a fat fee from cooperation with the NSA in\n >the design and propoganda stages that she doesn't care any more? \n\n  Which is to say: is the NSA -totally- perfidious, or does it at least\nhave the redeeming virtue of taking care of its own? <g>\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6683, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Legitimate bawdy humor; was: Re: sex education - it's a joke !\nOrganization: AI Programs, University of Georgia, Athens\nLines: 28\n\nIn article <Apr.8.01.01.06.1993.28740@athos.rutgers.edu> Lubosh.Hanuska@anu.edu.au (ljh) writes:\n\n>\"Well, my son, the best advice I can give you is this: Eat a lot of\n>carrots!\"\n>\"Oh, do you really think that will work ?!? And should it be before or\n>after intercourse?\"\n>\"INSTEAD, my son, INSTEAD!\"\n...\n>Disclaimer: As a single Catholic I didn't have any business to post this\n>kind of joke to this group, so if you found it inappropriate [...]\n\nBut what was wrong with it?  It won't tempt anyone to any kind of sin, as\nfar as I can tell.  It doesn't belittle anyone.  It does not substitute\noffensiveness for humor (it's genuinely funny).\n\nWe shouldn't assume that _all_ jokes that mention sexuality are \"dirty\"\nmerely because so many are.\n\nAnd we should never mistake prudery for spirituality.  It can be the direct\nopposite -- a symptom of the _lack_ of a healthy perspective on God's\ncreation.\n\n\n-- \n:-  Michael A. Covington         internet mcovingt@ai.uga.edu :    *****\n:-  Artificial Intelligence Programs       phone 706 542-0358 :  *********\n:-  The University of Georgia                fax 706 542-0349 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.314+0000", "event": "documents", "entityId": 6684, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jeffj@krfiny.uucp (J. Jonas)\nSubject: Re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nSummary: there are so many refill kits now ...\nOrganization: Jeff's house of computer pieces\nLines: 18\n\n>thomas.d.fellrath.1@nd.edu@nd.edu wrote:\n\n>: The key issue that I bought my BJ-200 on was ink drying speed.\n\nI was at the Trenton Computer Fest and there were many sources of\nink refills for the HP and Canon, so if you don't like the ink you're using,\nyou have a choice.  There is a Frequently Asked Question (FAQ) list\nthat's reposted occasionally that reports how to refill the cartridges\nyourself with inks that are available from the stationery store\ninstead of a \"specialty\" ink with the specialty price.\n\nI'm not sure, but I think I found another legal source of cheap\nhypos for injecting ink into the cartridges.\nMore on that when my mail order succeeds.\n-- \nJeffrey Jonas\n\njeffj@panix.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6685, "properties": {"category": "rec.motorcycles", "text": "From: svoboda@rtsg.mot.com (David Svoboda)\nSubject: Re: edu breaths\nNntp-Posting-Host: corolla18\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 29\n\nIn article <1993Apr15.214910.5676@rtsg.mot.com> declrckd@rtsg.mot.com (Dan J. Declerck) writes:\n|In article <1993Apr15.003749.15710@rtsg.mot.com> svoboda@rtsg.mot.com (David Svoboda) writes:\n|>In article <1993Apr14.220252.14731@rtsg.mot.com> declrckd@rtsg.mot.com (Dan J. Declerck) writes:\n|>|\n|>|The difference of opinion, and difference in motorcycling between the sport-bike\n|>|riders and the cruiser-bike riders. \n|>\n|>That difference is only in the minds of certain closed-minded individuals.  I\n|>have had the very best motorcycling times with riders of \"cruiser\" \n|>bikes (hi Don, Eddie!), yet I ride anything but.\n|\n|Continuously, on this forum, and on the street, you find quite a difference\n|between the opinions of what motorcycling is to different individuals.\n\nYes, yes, yes.  Motorcycling is slightly different to each and every one of us.  This\nis the nature of people, and one of the beauties of the sport.  \n\n|Cruiser-bike riders have a different view of motorcycling than those of sport bike riders\n|(what they like and dislike about motorcycling). This is not closed-minded. \n\nAnd what view exactly is it that every single rider of cruiser bikes holds, a veiw\nthat, of course, no sport-bike rider could possibly hold?  Please quantify your\ngeneralization for us.  Careful, now, you're trying to pigeonhole a WHOLE bunch\nof people.\n\nDave Svoboda (svoboda@void.rtsg.mot.com)    | \"I'm getting tired of\n90 Concours 1000 (Mmmmmmmmmm!)              |  beating you up, Dave.\n84 RZ 350 (Ring Ding) (Woops!)              |  You never learn.\"\nAMA 583905  DoD #0330  COG 939  (Chicago)   |  -- Beth \"Bruiser\" Dixon\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6686, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Monophysites and Mike Walker\nLines: 45\n\n>\t\t- Mike Walker \n> \n>[If you are using the standard formula of fully God and fully human,\n>that I'm not sure why you object to saying that Jesus was human.  I\n>think the usual analysis would be that sin is not part of the basic\n>definition of humanity.  It's a consequence of the fall.  Jesus is\n>human, but not a fallen human.  --clh]\n\nThe proper term for what Mike expresses is Monophysitism.  This was a\nheresy that was condemned in the Council of Chalcedon in 451 AD.  It\ngrew up in reaction to Nestorianism, which held that the Son and Jesus\nare two different people who happened to be united in the same body\ntemporarily.  Monophysitism is held by the Copts of Egypt and Ethipoia\nand by the Jacobites of Syria and the Armenian Orthodox.  It believes\nthat Jesus Christ was God (which is correct), that he was man (which is\ncorrect), that he was one person (which is correct), but that he had\nonly one nature and one will and oen energy (which is heretical, the\northodox position is that he had two natures and two wills and two\nenergies, both divine and human, though the wills were in perfect\nharmony).  That is what Mike is trying to get across, that while Jesus\ncame in human form, Mike says He did not have a human nature or a human\nwill.  In reality, he had both, though neither made him subject to\noriginal sin.\nIt is interesting to note that the Monothelites were a reaction to this\nconflict and attempted to solve the problem by admitting two natures but\nnot two wills or two energies.  It also was condemned, at a late council\nin Constantinople I believe.\n\nAndy Byler\n\n[These issues get mighty subtle.  When you see people saying different\nthings it's often hard to tell whether they really mean seriously\ndifferent things, or whether they are using different terminology.  I\ndon't think there's any question that there is a problem with\nNestorius, and I would agree that the saying Christ had a human form\nwithout a real human nature or will is heretical.  But I'd like to be\na bit wary about the Copts, Armenians, etc.  Recent discussions\nsuggest that their monophysite position may not be as far from\northodoxy as many had thought.  Nestorius was an extreme\nrepresentative of one of the two major schools of thought.  More\nmoderate representatives were regarded as orthodox, e.g. Theodore of\nMopsuestia.  My impression is that the modern monophysite groups\ninherit the entire tradition, not just Nestorius' version, and that\nsome of them may have a sufficient balanced position to be regarded as\northodox.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6687, "properties": {"category": "rec.autos", "text": "From: mje@pookie.pass.wayne.edu (Michael J. Edelman)\nSubject: Manual Shift Bigots\nOrganization: Wayne State University\nLines: 17\nDistribution: world\nReply-To: mje@pookie.pass.wayne.edu\nNNTP-Posting-Host: pookie.pass.wayne.edu\n\nNow, my ego with regards to my shifting ability is as big as anyone else's, but\nI just ordered my first car with an auto trans. I wasn't planning on it; but\nafter driving a few I was convinced: Things have changed since the days of \n\"Slip 'n' Slide Withe Powerglide\". They shift *better* than I do, there's no\nclutch to wear out (Honda wanted $800 for my 4WD wagon last year!- got it done\nfor $500), it only costs about 5% in gas milage on the highway and it makes it\neasier to concentrate on all the radios in my car ;-)\n\n(Oddly enough, while two of my best friends- both in the auto industry here in the \nMotor City- have switched wholeheartedly to autos, their wives *insist* on \nmanual. Shift envy?)\n\nBraggadocio aside, given today's technology and the warranties they're handing \nout the auto trans seemed like an excellent choice. Call me a convert.\n\n  --mike\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6688, "properties": {"category": "rec.sport.hockey", "text": "From: icop@csa.bu.edu (Antonio Pera)\nSubject: Hockey & The Hispanic community\nDistribution: usa\nOrganization: Computer Science Department, Boston University, Boston, MA, USA\nLines: 6\nOriginator: icop@csa\n\n\n\tRelying on Canadian tourists and transplanted Northeasterners to\nsupport a team in Miami is crazy; espaecially when you have really deserving \ncities without a team such as San Diego & Milwaukee. I wish the Panthers or\nwhatever their name is well but if they can't sell to Hispanics, they're in\ndeep doo-doo. Already, there are rumors that Tampa may move to Milwaukee.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6689, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenian scholars on the extermination of 2.5 million Muslim people.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 288\n\nIn article <735251412@amazon.cs.duke.edu> wiener@duke.cs.duke.edu (Eduard Wiener) writes:\n\n>\t   Why don't you post this in English, Mike?\n>\t   This appears to mean -- \"Milan, it seems that\n>\t   some Greek has fucked you.\"\n\nIs that what turns you on? The truth needs to be told over and over \nagain. There are Armenians who of course witnessed the Armenian genocide \nof 2.5 million Muslim people between 1914-1920 but their voices of truth \nare suppressed today in the hollow din of anti-Turkish/Muslim campaign\nby the ASALA/SDPA/ARF Terrorism and Revisionism Triangle of the fascist \nx-Soviet Armenian Government. Well, that is what I saw in the library.\nWhat's your problem with this?\n\n\nSource: K. S. Papazian, \"Patriotism Perverted,\" Baikar Press, Boston, 1934.\n\npp. 17-18.\n\n\"It seems that terrorism against their own co-nationals has been a prominent\n part of the revolutionary activities of the Dashnag leaders of the Caucasus.\n Organized to fight the Turks, these chieftains have been more successful\n in their fight against their Armenian opponents in Turkey, and the Caucasus,\n very often defenseless and innocent.\"\n\np. 38.\n\n\"The fact remains, however, that the leaders of the Turkish Armenian section\n of the Dashnagtzoutune did not carry out their promise of loyalty to the\n Turkish cause when the Turks entered the war...and a call was sent for \n Armenian volunteers to fight the Turks on the Caucasian front.\"\n\np. 38.\n\n\"Thousands of Armenians from all over the world, flocked to the standards of\n such famous fighters as Antranik, Kery, Dro, etc. The Armenian volunteer\n regiments rendered valuable service to the Russian Army in the years of\n 1914-15-16.\"\n\n\nSource: \"Adventures in the Near East, 1918-1922\" by A. Rawlinson,\nJonathan Cape, 30 Bedford Square, London, 1934 (First published 1923) \n(287 pages).\n(Memoirs of a British officer who witnessed the Armenian genocide of 2.5 \n million Muslim people)\n\np. 184 (second paragraph)\n\n \"I had received further very definite information of horrors that\n  had been committed by the Armenian soldiery in Kars Plain, and as \n  I had been able to judge of their want of discipline by their \n  treatment of my own detached parties, I had wired to Tiflis from \n  Zivin that 'in the interests of humanity the Armenians should not \n  be left in independent command of the Moslem population, as, their \n  troops being without discipline and not under effective control, \n  atrocities were constantly being committed, for which we should \n  with justice eventually be held to be morally responsible'.\"\n\np. 177 (third paragraph)\n\n \"Armenian troops, who, having pillaged and destroyed all the\n  Moslem villages in the plain....\"\n\n \"Caravans of refugees were in the meanwhile constantly arriving from the\n  plain, from which the whole Moslem population was fleeing with as much of\n  their personal property as they could transport, seeking to obtain security\n  and protection...\"\n\np. 178 (first paragraph)\n\n \"In those Moslem villages in the plain below which had been searched \n  for arms by the Armenians everything had been taken under the cloak of \n  such search, and not only had many Moslems been killed, but horrible \n  tortures had been inflicted in the endeavour to obtain information as \n  to where valuables had been hidden, of which the Armenians were aware \n  of the existence, although they had been unable to find them.\"\n\np. 179 (first paragraph)\n\n \"Shortly afterwards the head of the miserable column appeared. There \n  were in all about 200 persons, mostly old men and women and children, \n  with a few ox-carts, ponies, and donkeys, carrying all their worldly \n  possessions, except a few sheep that they were driving before them. \n  Their leader interviewed Bekir Bey, and was told to keep farther on \n  into the hills, where he would be able to cross the frontier into \n  Turkey unmolested by his enemies.\"\n\np. 181 (first paragraph)\n\n \"the Armenians from the plain were attacking the Kurdish line with \n  artillery, with probably a large force in support.\"\n\np. 175 (first paragraph)\n\n \"The arrival of this British brigade was followed by the announcement\n  that Kars Province had been allotted by the Supreme Council of the\n  Allies to the Armenians, and that announcement having been made, the\n  British troops were then completely withdrawn, and Armenian occupation\n  commenced. Hence all the trouble; for the Armenians at once commenced\n  the wholesale robbery and persecution of the Muslem population on the\n  pretext that it was necessary forcibly to deprive them of their arms.\n  In the portion of the province which lies in the plains they were able\n  to carry out their purpose, and the manner in which this was done will\n  be referred to in due course.\"\n\nThe following news from Turan News Agency in Baku-Azerbaijan\nis brought to you as a service of:\n\n                  <Azerbaijan Aydinlig Association>\n                         P.O. Box 14571\n                       Berkeley, CA 94701\n                      FAX: (804) 490-3832\n                    Email: farid@mem.odu.edu\n\n* AZERBAIJAN'S GOVERNMENT APPEALS TO COMPATRIOTS ALL OVER THE WORLD\n* 60 REFUGEES FROM KELBAJAR PERISHED IN THEIR ESCAPE LORRIES \n* SITUATION IN THE REGION OF KELBAJAR\n* ARMENIAN ARMY CONTINUES ATTACK ON FIZULI\n* PRESS-CONFERENCE OF THE CHIEF OF PRESS-SERVICE OF PRESIDENT OF AZERBAIJAN \n* AZERBAIJANIS PICKET IN FRONT OF MINISTRY OF FOREIGN AFFAIRS OF RUSSIA\n* PICKET OF SADVALERS IN MOSCOW\n* ATTACK OF ARMENIAN UNITS STOPPED\n* STATEMENT OF MINISTRY OF FOREIGN AFFAIRS OF AZERBAIJAN\n\n\n\nAZERBAIJAN'S GOVERNMENT APPEALS TO COMPATRIOTS ALL OVER THE WORLD\n\n   BAKU (APRIL 5) TURAN: Today, Azerbaijan's government appealed \nto Azeris all over the world in connection with escalation of the \nArmenian aggression against the republic.  \n  It is stressed in appeal that the experience of five-years of fighting\nfor independence from imperial chains shows a grim process . The war\nagainst Azerbaijan under the pretence of protecting the human rights of \nthe Armenians of Ukhari (Upper) Garabag, has meant the destruction of\nAzeri villages and towns, occupation of 10 percent of the territory, 60\nthousand new refugees in addition to 500 thousand already in place.\nThis is all the price of fighting for liberty from Russian imperial rule,\nis said in the document. \n   Azerbaijan's government appeals to all compatriots to make every\neffort to inform the people of the world about the truth in Azerbaijan,\nand to assistance in solving the problems facing the young state.\n   It is stressed in the appeal that there is urgent need for medicine,\nfood, experienced doctors and financial help to settle refugees from\nKelbajar, Fizuli and Lachin regions, and to render medical aid for the \nsick and the wounded men.--O--\n\n\n60 REFUGEES FROM KELBAJAR PERISHED IN THEIR ESCAPE LORRIES \n\n     BAKU (APRIL 5) TURAN: Today, during the evacuation from Kelbajar\nregion, 60 refugees on board two lorries were killed in the fire from the\nArmenian Tanks on the only road to leave Kelbajar. According to press\n-service of Azerbaijan president, no one survived the tragedy. --O--\n\n\nSITUATION IN THE REGION OF KELBAJAR\n\n   BAKU (5 APRIL) TURAN: Attempts to evacuate the rest of 15,000\ncitizens, encircled on alpine villages of the region of Kelbajar \nwent on within the last twenty-four hours. Evacuation helicopters\ncould not land near these villages because of shelling from the\nArmenian side and existence of fog. Measures are undertaken to air-drop\nfood and medicine to the encircled people.\n   Several hundred people succeed within the last twenty-four hours to\nget out of the region of Kelbajar via mountain range. Refugees are \nsettled in the neighboring regions of Azerbaijan and in Ganja. \nAuthorities face serious problem with rendering refugees medical \naid and food. The number of refugees from Kelbajar is over 40,000 people.\nAzerbaijan is not capable of handling a disaster of this magnitude.--0--\n\n\nARMENIAN ARMY CONTINUES ATTACK ON FIZULI\n\n   BAKU (5 APRIL) TURAN: The region of Fizuli of Azerbaijan, \nsituated outside of the territory of Daglig (Nagorno) Garabag, has been\nsubjected to heaviest attacks of Armenian army for the fourth day. About\n30 armored technique and more than 500 soldiers of the enemy are taking\npart in the attack.\n   Armenian units broke the defence line of the azeri forces and occupied\nthe ruling height from where the town is shelled from \"Grad\" installations,\nthis morning. There is heavy destructions in the town and more than 20\npeople are dead. Population of the town is hastily evacuated.--0--\n\n\nPRESS-CONFERENCE OF THE CHIEF OF PRESS-SERVICE OF PRESIDENT OF AZERBAIJAN\n\n   BAKU (5 APRIL) TURAN: Fifty-five thousand refugees from the region\nof Kelbajar were taken out by 11 o'clock on April 5, informed the chief\nof the press-service of president of Azerbaijan, Arif Aliev, today.\n   Journalists were also informed at the press-conference that\nInternational Red Cross is helping to accept and render refugees medical\naid. There is an urgent need to supply the refugees with tents, food and\nmedical aid.\n   Arif Aliev informed that as a result of the ongoing tragedy brought\non by the latest aggression of Armenia, the leadership of Azerbaijan\nintends to appeal to Azerbaijanis and all those who treasure human life\nall over the world for help.\n   Concerning the reaction of the international community to aggression \nof Armenia, Aliev said the department of state of the USA has expressed\nits anxiety to leadership of Armenia.\n   Participants of peace efforts in Daglig (Nagorno) Garabag under\nCSCE, Rafaelli, Mareska and Chetin strongly blamed the aggression of \nArmenia against Azerbaijan.\n   Leader of press-service informed that tomorrow ambassador of \nAzerbaijan in Russia, Hikmet Haji-zade, will conduct a press-conference\nin Moscow. Detailed information on latest events in the region of\nKelbajar of Azerbaijan will be given at the press-conference.--0--\n\n\nAZERBAIJANIS PICKET IN FRONT OF MINISTRY OF FOREIGN AFFAIRS OF RUSSIA\n\n   BAKU (5 APRIL) TURAN: Azerbaijanis, living in Moscow, picketed\nin front of the building of the Ministry of Foreign Affairs of Russia.\nPicket was conducted as a token of protest against participation of\nRussian units in capture of the region of Kelbajar of Azerbaijan by\nArmenians. About 100 people took part in the picket, organized by\nAzerbaijani society \"Dayag\".--0--\n\n\nPICKET OF SADVALERS IN MOSCOW\n\n   BAKU (5 APRIL) 30-40 members of \"Sadval\" society picketed before\nthe building of permanent representation of Azerbaijan in Moscow.\nPicketers were demanding the return of Lezghins lands, as if annexed\nby Azerbaijan.\n   Ambassador of Azerbaijan in Moscow, Hikmet Haji-zade classified\nthis action as provocation aimed at creating a further inter-ethnic\nconflict in Azerbaijan. He marked in his talk with the Turan\ncorrespondent that he does not rule out a connection between the\nArmenian aggression in the region of Kelbajar and this anti-\nazerbaijani action of the \"Sadval\" society in Moscow. He also\nmarked that 30-40 people do not mean the Lezghian nationality in\nthe whole.\n   Society of Lezghins, \"Sadval\", registered in Moscow in 1990,\ndemands the creation of a Lezghistan state, which never existed\nbefore on the northern territories of Azerbaijan.--0--\n\n\nATTACK OF ARMENIAN UNITS STOPPED\n\n   BAKU (5 APRIL) TURAN: Attack of Armenian army on the town of \nFizuli, which began in the last twenty-four hours, is stopped, informs \nthe press-service of the Ministry of Defence of Azerbaijan.\n   In the result of undertaken measures, 6 tanks and a number of \nthe attackers were destroyed. Advance units of the Armenian army\nretreated several kilometers.\n   Chairman of the parliament, Isa Gambar, visited the town of \nFizuli and met with commanders of the units of the national army\nand local citizens, today.--0--\n\n\nSTATEMENT OF MINISTRY OF FOREIGN AFFAIRS OF AZERBAIJAN\n\n   BAKU (5 APRIL) TURAN: Ministry of Foreign Affairs of Azerbaijan \nissued a statement in connection with aggression of Armenia in the\nregion of Kelbajar of Azerbaijan.\n   It is stated in the statement that regular units of the armed\nforces of Armenia captured the town of Kelbajar on April 3 .\n  Attack of Armenian units, which began on March 27 deep in the\nterritory of Azerbaijan still continues. Armenia has occupied at\npresent 7500 sq.km of the territory of Azerbaijan.\n   Spreading of Armenian aggression far away from Ukhari (Upper)\nGarabag proves that the Armenian-Azerbaijani conflicts has entered a\nspecially dangerous phase. This is the result of non-recognition of \nArmenia as an aggressor by the international community, is marked\nin the document.\n   It is stressed in the statement that the units of the 7th Russian\narmy are participating in the Armenian attack. This casts doubt on\nthe sincerity of Russian mediation efforts in finding a peaceful\nsolution to the conflict.\n   It is marked in conclusion that aggressive actions of Armenia \nhave wrecked the negotiation process under aegis of CSCE.\n   The document contains the appeal to the world community to stop\nArmenian aggression and to use political and economic sanctions\nagainst the aggressor.--0--\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6690, "properties": {"category": "rec.sport.hockey", "text": "From: enolan@sharkbite.esd.sgi.com (Ed Nolan)\nSubject: Devils and Islanders tiebreaker????\nOrganization: Silicon Graphics, Inc.\nLines: 4\nNntp-Posting-Host: sharkbite.esd.sgi.com\n\nIf the Islanders beat the Devils tonight, they would finish with\nidentical records.  Who's the lucky team that gets to face the Penguins\nin the opening round?   Also, can somebody list the rules for breaking\nties.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6691, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Christians above the Law, was Clarification of personal position\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\n\t<sandvik-170493104641@sandvik-kent.apple.com>\nLines: 24\n\nIn article <sandvik-170493104641@sandvik-kent.apple.com> \nsandvik@newton.apple.com (Kent Sandvik) writes:\n>My online Bible is on a CD, but I don't own a CD-ROM system for the\n>time being, so I can't search for the famous cite where Jesus explicitly\n>states that he didn't want to break existing (Jewish) laws. In other\n>words technically speaking Christians should use Saturday and not Sunday\n>as their holy day, if they want to conform to the teachings of Jesus.\n\nWho said Christians want to conform to the teachings of Jesus?\n\n\"You are the light of the world. A city can't be hidden lying on a\nmountaintop. Nor do people light a candle and cover it with a big\nbasket; they put it up on a tall candlestick where it can shine for\neveryone in the house. That's how your light must shine in front of the\nworld, so that people see your good deeds and give credit to your Father\nin the skies. Don't think I came to dissolve The Law [Torah aka First\nFive Books] or The Prophets: [7 major plus 12 minor] I didn't come to\ndissolve them, I came to fulfill them. I assure you, till the sky and\nthe earth go away, not one letter or punctuation mark of The Law will\never go away until everthing has come to pass. So anyone who dissolves\neven one of the smallest commandments and teaches others the same way,\nwill be known as the lowest in the kingdom of the skies; whereas anyone\nwho keeps the commands and teaches them too, will be known as someone\ngreat in the kingdom of the skies.\"  Matt5:14-19, Gaus, ISBN:0-933999-99-2\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6692, "properties": {"category": "rec.sport.hockey", "text": "From: randolin@polisci.umn.edu (Robert Andolina)\nSubject: minnesota scene\nNntp-Posting-Host: psci7.polisci.umn.edu\nOrganization: Department of Political Science, University of Minnesota\nLines: 39\n\n  To those who are wondering what is happening in Minnesota:\n\n  From what I have seen in the local news (TV and newspaper), various people \nin the area are trying to get a new hockey team.  A columnist for the St. \nPaul \"Pioneer Press\" wrote an article giving the \"inside scoop\" on the \nissue.  There are three local sites competing for a team and three possible \ncandiates to move to the Twin Cities.  First the sites: Target Center, Civic \nCenter (St. Paul), and yes, even the Met Center.  The columnist was pretty \nconfident that Minnesota will get a team, and that the Target Center will \nultimately win out.  He argued, however, that the competition from the other \ntwo sites will delay the process considerably.  Without the \ninter-site competition, the columnist (sorry, I can't remember his name) \nbelieves that Minnesota would have a team by the 1994-95 season.  Also, \nbecause of the situation with the Timberwolves, things will be delayed \nuntil (unless) the city of Minneapolis takes over the Target Center.  \nHowever, they are unlikely to do so until the Met Center is destroyed, \nbecause the city will lose money if there is competition from the Met for \nconventions and short-term events (even with hockey at Target).  To add to \nthis mess, a STUDY (6 to 12 months) is going to be conducted on the future \nviability of the Met Center, which obviously delays the process even \nfurther.  I hope that the study is cancelled, which will have the effect of \nknocking the Met Center out of the running and perhaps encouraging \nMinneapolis to take over the Target Center sooner. The city would be\nbe even more encourged if the wrecking ball is taken to the Met, \nwhich may happen.\n\tRegarding possible candidates, the three teams are \nHartford, Tampa Bay, and New Jersey.  I would prefer the Devils (Minnesota \"\nIce Demons?\") although the Lightning may have potential.  Although it hasn't \nbeen announced yet, it looks like 6 neutral site games will be played at the \nTarget Center next year.  Apparently the Devils are interested in playing in \nas many of those six games as possible, and I wouldn't be surprised to see \nHartford and Tampa show up there either.\tSo, Minnesota may end up \ngetting another team, but it may take a few years.\n\n\t\n\tGo Sabres!\n\t\n\tRobert Andolina (former Buffalonian living in Minneapolis)\n\trandolin@polisci.umn.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6693, "properties": {"category": "rec.sport.baseball", "text": "From: cmk@athena.mit.edu (Charles M Kozierok)\nSubject: Re: Yankees win home opener\nOrganization: Massachusetts Institute of Technology\nLines: 14\nDistribution: usa\nNNTP-Posting-Host: marinara.mit.edu\n\nIn article <93105.124117RVESTERM@vma.cc.nd.edu> <RVESTERM@vma.cc.nd.edu> writes:\n} In article <1993Apr14.175545.3528@alleg.edu>, millits@yankee.org (Sam\n} Millitello) says:\n} \n} i'm telling you, sam, three l's.  call up mom and ask.\n} \n} bob vesterman.\n} \nyeah, and in case even that isn't enough to prompt boy genius\n\"Sam\" to pick up a paper and see how \"his\" name is spelled,\nhere's another hint: the single \"L\" comes between the two \"I\"s...\n\n-*-\ncharles\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6694, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nOrganization: Express Access Online Communications USA\nLines: 11\nDistribution: world\nNNTP-Posting-Host: access.digex.net\n\n\n\nSome birds require constant management for survival.  Pointing a sensor at\nthe sun, even when powered down, may burn it out.  Pointing a\nparabolic antenna  at Sol,  from venus orbit  may trash the\nfoci  elements.\n\nEven if you let teh bird drift,  it may  get hosed by some\ncosmic phenomena.   \n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6695, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: enavarro@nyx.cs.du.edu (Emilio Navarro)\nSubject: NetBIOS and BIOS\nSummary: NetBios\nKeywords: NetBios\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 9\n\nHello everyone,\n\nCould anyone tell me where to find some information about NetBios and Bios\ninterrupt calls.  A book or maybe an FTP site.\n\nThank you in advance.\n\nEmilio\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6696, "properties": {"category": "comp.windows.x", "text": "From: julia@netcom.com (Julia Miller)\nSubject: Posix Message Catalogs\nKeywords: Posix\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 17\n\nCan someone tell me in 25 words or less how to compile posix\nmessage catalogs so that I can use them with catgets, catopen, etc.\nI know what the format for the catalogs is, but don't know how\nto compile them.\n\nPlease reply to chas@blackwhite.com\n\nThanks in advance,\n\nchas\n\nBlack & White Software, Inc.   \t| Leaders in Systems & Software Solutions\n2155 S. Bascom Ave. Suite 210   | Contact Black & White for information on\nCampbell, CA 95008   \t\t| X Windows & OSF/Motif Software & Support\n(408) 369-7400   \t\t| OSF/Motif & MS-Windows GUI Builders\n(408) 369-7406   \t\t| Add on Widgets, Editors and Help Systems\ninfo@blackwhite.com   \t\t| C++ and Ada Motif Bindings\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6697, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Travel outside US (Bangladesh)\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 17\n\nIn article <1p7ciqINN3th@tamsun.tamu.edu> covingc@ee.tamu.edu (Just George) writes:\n>I will be traveling to Bangaldesh this summer, and am wondering\n>if there are any immunizations I should get before going.\n>\n\nYou can probably get this information by calling your public health\ndepartment in your county (in Pittsburgh, they give the shots free,\nas well).  There are bulletins in medical libraries that give\nrecommendations, or you could call the infectious diseases section\nof the medicine department of your local medical school.  You also\nwill probably want to talk about Malaria prophylaxis.  You will\nneed your doctor to get the prescription.  \n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6698, "properties": {"category": "sci.space", "text": "From: ken@sugra.uucp (Kenneth Ng)\nSubject: Re: nuclear waste\nOrganization: Private Computer, Totowa, NJ\nLines: 18\n\nIn article <1993Mar31.191658.9836@mksol.dseg.ti.com: mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n:Just a bit off, Phil.  We don't reprocess nuclear fuel because what\n:you get from the reprocessing plant is bomb-grade plutonium.  It is\n:also cheaper, given current prices of things, to simply fabricate new\n:fuel rods rather than reprocess the old ones, creating potentially\n:dangerous materials (from a national security point of view) and then\n:fabricate that back into fuel rods.\n\nFabricating with reprocessed plutonium may result in something that may go\nkind of boom, but its hardly decent bomb grade plutonium.  If you want bomb\ngrade plutonium use a research reactor, not a power reactor.  But if you want\na bomb, don't use plutonium, use uranium.\n\n-- \nKenneth Ng\nPlease reply to ken@eies2.njit.edu for now.\n\"All this might be an elaborate simulation running in a little device sitting\non someone's table\" -- J.L. Picard: ST:TNG\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6699, "properties": {"category": "rec.sport.baseball", "text": "From: gerry@macadam.mpce.mq.edu.au (Gerry Myerson)\nSubject: The Bob Dylan Baseball Abstract\nOrganization: School of MPCE, Macquarie University, Australia.\nLines: 19\nDistribution: world\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\nOriginator: gerry@macadam.mpce.mq.edu.au\n\n\nReposted, without permission, from rec.music.dylan:\n\nIn article <1993Apr9.152336.14605@uvaarpa.Virginia.EDU>, BUCK@vax.museum.upenn.edu wrote:\n> \n> For those of you who like both Bob and baseball, check out the\n> current Village Voice (April 13), p.141.  John Lammers and Hart \n> Seely have written The Bob Dylan Baseball Abstract, and they have\n> covered every team in both leagues.\n> \n> Example: \n> Colorado.  An' the silent bats will shatter.  From the scores between\n> the lines.  For they're one too many castoffs.  And a thousand runs\n> behind.\n> \n> Rebecca\n> buck@vax.museum.upenn.edu \n\nGerry Myerson\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6700, "properties": {"category": "misc.forsale", "text": "From: bromgrev@rahul.net (Carl A. Merritt)\nSubject: HDs and other Computer parts for Sale / Wanted...\nNntp-Posting-Host: bolero\nOrganization: a2i network\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 26\n\nFor Sale:\n\nFujitsu 324meg SCSI drive.  $450\n\nMaxtor 338meg ESDI drive.  $425\n\nMaxtor 160meg ESDI drive.  $225\n\nToshiba 106meg IDE drive.  $175\n\nXT case & motherboard.  $50\n\nDTC 16-bit MFM 2HD 2FD controler.  $30\n\nAll items are used, in full working condition, and have a  \nwarranty for one week unless otherwise specified.  All prices \nare %100 negotiable, shipping not included. \n\nWanted:  \n\nDevelopers kit for SB\n17\" SVGA moniters (two of them).\n\n\n-- \nCarl A. Merritt <bromgrev@rahul.net>\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6701, "properties": {"category": "talk.politics.mideast", "text": "From: B8HA <B8HA@MUSICB.MCGILL.CA>\nSubject: RE: Jews/Islam  Dr. Frankenstien\nLines: 99\nNntp-Posting-Host: vm1.mcgill.ca\nOrganization: McGill University\n\nSome of your article was cut off on the right margin, but I will try\nand answer from what I can read.\n\nIn article <C5ssqE.Dps@odin.corp.sgi.com> kaveh@gate-koi.corp.sgi.com (Kaveh Smith ) writes:\n>I have found Jewish people very imagentative and creative. Jewish religion was the foundation for Christianity and\n>Islam.  In other words Judaism has fathered both religions. Now Islam has turned against its father I may say.\n>It is Ironic that after communizem threat is almost gone, religion wars are going to be on the raise.\n>I thought the idea of believing on one God, was to Unite all man kind. How come both Jews and Islam which believe\n>on the same God, \"the God of Ebrahim\" are killing each other? Is this like Dr. Frankenstien's story?\n>How are you going to stop this from happening? How are you going to deal with so many Muslims. Nuking them\n>would distroy the whole world? Would God get mad, since you have killed his followers, you believe on the same\n>God, same heaven and the same hell after all? What is the peacefull way of ending this Saga?\n>\nJudaism did not father Islam.  We had many of the same prophets, but\nJudaism ignores prophets later prophets including Jesus Christ (who\nChristians and Muslims believe in) and Mohammed.  The idea of believing\nin one God should unite all peoples.  However, note that Christianity\nand Islam reflect the fact that there are people with different views\nand the rights of non-Christians and non-Muslims are stated in each\nreligion.\n\n\n>Man kind needs religion, since it sets up the rules and the regulations which keeps the society in a healthy state.\n>A religion is mostly a sets of rules which people have experienced and know it works for the society.\n>The praying, keeps the sole healthy and meditates it. God does not care for man kinds pray, but man kind hopes\n>that God will help him when he prays.\n>Religion works mostly on the moral issues and trys to put away the materialistic things in the life. But the\n>religious leaders need to make a living through religion? So they  may corrupt it, or turn it to their own way to\n>make their living. i.e Muslims have to pay  %20 percent of their income to the Mullahs. I guess the rabie  gets his\n>cut too!\n>\nWe are supposed to pay 6% of our income after all necessities are\npaid.  Please note that this 6% is on a personal basis - if you are\npoor, there is no need to pay (quite the contrary, this money most\noften goes to the poor in each in country and to the poor Muslims\naround the world).  Also, this money is not required in the human\nsense (i.e. a Muslim never knocks at your door to ask for money\nand nobody makes a list at the mosque to make sure you have paid\n(and we surely don't pass money baskets around during our prayer\nservices)).\n\n>Is in it that religion should be such that everybody on planet earth respects each other, be good toward each other\n>helps one another, respect the mother nature. Is in that heaven and hell are created on earth through the acts\n>that we take today?  Is in it that within every man there is good and bad, he could choose either one, then he will\n>see the outcome of his choice.  How can we prevent man kind from going crazy over religion. How can we stop\n>another religious killing field, under poor Gods name? What are your thoughts? Do you think man kind would\n>to come its senses, before it is too late?\n>\n>\n>P.S. on the side\n>\n>Do you think that Moses saw the God on mount Sina? Why would God go to top of the mountain? He created\n>the earth, he could have been anywhere? why on top the mountain? Was it because people thought to see God\n>you have to reach to the skies/heavens? Why God kept coming back to Middle East? Was it because they created\n>God through their imagination?  Is that why Jewish people were told by God, they were the chosen ones?\n>\nGod's presence is certainly on Earth, but since God is everywhere,\nGod may show signs of existence in other places as well.  We can not\nsay for sure where God has shown signs of his existence and where\nhe has not/.\n\n>Profit Mohammad was married to Khadijeh. She was a Jewish. She taught him how to trade. She probably taught\n>him about Judaism. Quran is mostly copy right of Taurah (sp? old testement). Do you think God wrote Quran?\n>Makeh was a trade city before Islam. Do you think it was made to be the center of Islamic world because Mohammad\n>wanted to expand his trade business? Is that why  God has put his house in there?\n>\nThe Qur'an is not a copyright of the Taurah.  Muslims believe that\nthe Taurah, the Bible, and the Qur'an originally contained much the same\nmessage, thus the many similiarities.  However, the Taurah and the\nBible have been 'translated' into other languages which has changed\ntheir meaning over time (a translation also reflects some of the\npersonal views of the translator(s).  The Qur'an still exists in the\nsame language that it was revealed in - Arabic.  Therefore, we know\nthat mankind has not changed its meaning.  It is truly what was revealed\nto Mohammed at that time.  There are many scientific facts which\nwere not discovered by traditional scientific methods until much later\nsuch as the development of the baby in the mother's womb.\n\n\n>I think this religious stuff has gone too far. All man kind are going to hurt from it if they do not wise up.\n>Look at David Koresh, how that turned out? I am afraid in the bigger scale, the Jews and the Muslims will\n>have the same ending!!!!!!!!\n>\nOnly God knows for sure how it will turn out.  I hope it won't, but if\nthat happens, it was the will of God.\n\n>Religion is needed in the sense to keep people in harmony and keep them doing good things, rather than\n>plotting each others distruction.  There is one earth, One life and one God. Let's all man kind be good toward\n>each other.\n>\n>God help us all.\n>Peace\n>.\n>.\nPlease send this mail to me again so I can read the rest of what\nyou said.  And yes, may God help us all.\n\nSteve\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6702, "properties": {"category": "rec.sport.baseball", "text": "From: rickc@krill.corp.sgi.com (Richard Casares)\nSubject: Re: Jim Lefebvre is an idiot.\nNntp-Posting-Host: krill.corp.sgi.com\nOrganization: Silicon Graphics, Inc.\nLines: 32\n\nIn article <C51uC6.BL1@news.cso.uiuc.edu>, ada41546@uxa.cso.uiuc.edu\n(Driftwood) writes:\n|> \n|> \tI totally agree with each point you made.  Jose Viscaino looked\n|> like a single A hitter up there.  Who swings on 3-1 count with Maddux \n|> pitching and your teams down by a run, and you haven't touched the ball\n|> all \n|> day.  I also think too much is made of that lefty-righty thing. \n|> Watching\n|> the Cubs games I get the feeling Steve Stone knows a lot more about\n|> what\n|> the Cubs should be doing than Lefebre does.  Harry said it best when he\n|> stated after another terrible Vizcaino at bat-- we can't wait til\n|> Sandberg returns!\n\nI tell you, Steve Stone is like a prophet.\nHe must be making a ton in the boradcoast booth because\nI can't understand why he's not actually back in the game itself.\n\nThe other day he called Sosa's homerun against the Sox and\nclaimed the game would be going into extra innings when the\nscore was 8-3 in the 5th.\n\nSo yesterday he notices that Sosa's ahead in the count against\nMaddux and says, \"This is a fastball situation and Sosa will be\nlooking for it.  But this is also the spot where Maddux throws\nthe straight change.\"   Sure enough. Sosa gets ahead on it and pops\nit up to the infield.\n\nStoney for Cubs manager!\n\n-Rick\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6703, "properties": {"category": "rec.sport.hockey", "text": "From: leunggm@odin.control.utoronto.ca (Gary Leung)\nSubject: Re: NHL Team Captains\nOrganization: University of Toronto, Systems Control Group\nLines: 20\n\nIn article <1993Apr20.151818.4319@samba.oit.unc.edu> Scott.Marks@launchpad.unc.edu (Scott Marks) writes:\n>>And of course, Mike Ramsey was (at one time) the captain in Buffalo prior to\n>>being traded to Pittsburgh.  Currently, the Penguins have 3 former captains\n>>and 1 real captain (Lemieux) playing for them.  They rotate the A's during the\n>>season (and even the C while Mario was out).  Even Troy Loney has worn the C\n>>for the Pens.\n>\n\nI think that Mike Foligno was the captain of the Sabres when he\ngot traded to the Leafs. Also, wasn't Rick Vaive the captain of\nthe Leafs when he got traded to Chicago (with Steve Thomas for\nEd Olcyzk and someone). Speaking of the Leafs, I believe that\nDarryl Sittler was their captain (he'd torn the \"C\" off his\njersey but I think he re-claimed the captaincy later on) when he\nwas traded to the Flyers.\n\nOh yeah, of course, Gretzky was the captain of the Oilers before\nhe was traded wasn't he? \n\nGary\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6704, "properties": {"category": "rec.sport.hockey", "text": "From: LMARSHA@cms.cc.wayne.edu (Laurie Marshall)\nSubject: Re: If You Were Pat Burns ...\nOrganization: Wayne State University, Detroit MI  U.S.A.\nLines: 30\nNNTP-Posting-Host: cms.cc.wayne.edu\n\nIn article <1r1chb$5l2@jethro.Corp.Sun.COM>\njake@rambler.Eng.Sun.COM (Jason Cockroft) writes:\n \n>Suggestions:  Clarke-Anderson-Gilmour vs. Sheppard-Yserbeart-??\n>              Andreychuck-Borchevsy-??  vs. Detroit checking line\n>              Toronto's checking line  vs. Yzerman-Fedorov-Probert (pray lots)\n>\n \n Well, I'm a Wings fan and I think the FIRST thing that you should do is to\nget the opponent's line combinations correct before you try to match up anyone\nwith them.  There is no Yzerman-Fedorov-Probert line, except for maybe on a\npowerplay.  These three players usually play on three different lines.\nWhich would mean that Toronto's checking line would have to pull a triple\nshift.\nThe Wings' lines usually look like this:\n \n                      Gallant-Yzerman-Ciccarelli\n \n                      Kozlov-Fedorov-Drake\n \n                      Kennedy-Burr-Probert\n \n                      Ysebaert-Primeau-Sheppard\n \nOh by the way:  Start praying! : )\n \nLaurie Marshall\nWayne State University\nDetroit, Michigan\nGo Wings!!!!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6705, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: alee@mnemosyne.cs.du.edu (Alec Lee)\nSubject: Scan Rate vs. Font Size\nSummary: Which is more important?\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 10\n\nThis past winter I found myself spending a ridiculous amout of time in front\nof my computer.  Since my eyes were going berserk, I decided to shell out\nsome serious money to upgrade from a 14\" to a 17\" monitor.  I'm running\n800x600 at 72 Hz.  My eyes are very grateful.  However, I find myself using\na smaller font with less eye strain.  Has anyone else had this kind of \nexperience?  I thought that small fonts were the culprit but it seems that\nflicker was my real problem.  Any comments?\n\nAlec Lee\nalee@cs.du.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.315+0000", "event": "documents", "entityId": 6706, "properties": {"category": "comp.windows.x", "text": "From: wilie.wilson@analog.com ( willie wilson )\nSubject: Experiences of DESQview/X? \nReply-To: willie.wilson@analog.com\nOrganization: Analog Devices B.V., Limerick, IRELAND\nLines: 19\n\nI need to have PCs and SPARCstations run the same application ( namely\nMicroSoft Project ). The original system ran on the PC. Now it needs to\nbe expanded to allow UNIX users to work with the application. The\ncurrent proposal is to use DESQview/X as a display server for the\napplication.\n\nI would like to know your experiences with using DESQview/X to run an\napplication on a PC and displaying on a SPARCstation. I've heard that\nthe network traffic is slow.\n\nReplies only by e-mail please.\n\nThanks, in advance.\n---\n               ,__o\n             _-\\_<,\n...Willie   (*)/'(*)\nwillie.wilson@analog.com\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6707, "properties": {"category": "comp.windows.x", "text": "From: nancie@neko.CSS.GOV (Nancie P. Marin)\nSubject: Re: XCopyPlane Question\nOrganization: The Internet\nLines: 36\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nIn article <BUZZ.93Apr19101538@lion.bear.com> buzz@bear.com (Buzz Moschetti) write\n>In article <WHALEY.93Apr15103931@sigma.kpc.com> whaley@sigma.kpc.com (Ken Whaley) writes:\n>>   Actually, I must also ask the FAQ's #1 most popular reason why graphics\n>>   don't show up: do you wait for an expose event before drawing your\n>>   rectangle?\n>\n>Suppose you have an idle app with a realized and mapped Window that contains\n>Xlib graphics.  A button widget, when pressed, will cause a new item\n>to be drawn in the Window.  This action clearly should not call XCopyArea() \n>(or equiv) directly; instead, it should register the existence of the new\n>item in a memory structure and let the expose event handler take care\n>of rendering the image because at that time it is guaranteed that the\n>Window is mapped.\n>\n>The problem, of course, is that no expose event is generated if the window\n>is visible and mapped.  Do you know the best way to \"tickle\" a window so\n>that the expose event handler will be invoked to draw this new item?\n>\n\nWhat does this have to do with my original question???  I previously\nstated that I did an XCopyArea of the depth-8 pixmap to the screen\njust to make sure that my image had data, and it did.  This is NOT\na problem with expose events, it has to do with XCopyPlane not\nworking!!!\n\nDoes anyone have a code fragment they could send demonstrating that\nXCopyPlane works???  This would be very helpful!\n\nThanks!\n\n ----------------------------------------------------------------\n Nancie P. Marin      NET:  nancie@neko.css.gov\n ENSCO Inc.           MAIL: 445 Pineda Ct.  Melbourne, Fl.  32940\n (407)254-4122        FAX:  (407)254-3293\n ----------------------------------------------------------------\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6708, "properties": {"category": "rec.motorcycles", "text": "From: gnome@pd.org (Mike Mitten)\nSubject: Re: What is it with Cats and Dogs ???!\nOrganization: The Laughing Gnome Software Farm, Atlanta, GA, USA\nLines: 13\nNNTP-Posting-Host: noel.pd.org\nX-Newsreader: TIN [version 1.1 PL6]\n\njames.bessette (jimbes@cbnewsj.cb.att.com) wrote:\n>In article <6130328@hplsla.hp.com> kens@hplsla.hp.com (Ken Snyder) writes:\n>>ps.  I also heard from a dog breeder that the chains of bicycles and\n>>motorcycles produced high frequency squeaks that dogs loved to chase.\n>Ask the breeder why they also chase BMWs also.\n\nCam chain.\n\n  -Mike\n\nMike Mitten - gnome@pd.org - ...!emory!pd.org!gnome - AMA#675197 - DoD#522\nIrony is the spice of life.     '90 Bianchi Backstreet  '82 Suzuki GS850GL\n\"The revolution will not be televised.\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6709, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: MACH 25 landing site bases?\nArticle-I.D.: aurora.1993Apr5.193829.1\nOrganization: University of Alaska Fairbanks\nLines: 7\nNntp-Posting-Host: acad3.alaska.edu\n\nThe supersonic booms hear a few months ago over I belive San Fran, heading east\nof what I heard, some new super speed Mach 25 aircraft?? What military based\nint he direction of flight are there that could handle a Mach 25aircraft on its\nlanding decent?? Odd question??\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6710, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: HST Servicing Mission Scheduled for 11 Days\nOrganization: U of Toronto Zoology\nLines: 35\n\nIn article <1rd1g0$ckb@access.digex.net> prb@access.digex.com (Pat) writes:\n>How will said re-boost be done?\n>Grapple, HST,  stow it in Cargo bay,  do OMS burn to high altitude,  \n>unstow  HST,   repair  gyros,  costar install,  fix solar arrays,\n>then return to earth?\n\nActually, the reboost will probably be done last, so that there is a fuel\nreserve during the EVAs (in case they have to chase down an adrift\nastronaut or something like that).  But yes, you've got the idea -- the\nreboost is done by taking the whole shuttle up.\n\n>My guess is  why  bother with  usingthe shuttle to reboost?\n>why not  grapple,  do all said fixes,   bolt a small  liquid  fueled\n>thruster module  to  HST,   then let it make the re-boost...\n\nSomebody has to build that thruster module; it's not an off-the-shelf\nitem.  Nor is it a trivial piece of hardware, since it has to include\nattitude control (HST's own is not strong enough to compensate for things\nlike thruster imbalance), guidance (there is no provision to feed gyro\ndata from HST's own gyros to an external device), and separation (you\ndon't want it left attached afterward, if only to avoid possible\ncontamination after the telescope lid is opened again).  You also get\nto worry about whether the lid is going to open after the reboost is\ndone and HST is inaccessible to the shuttle (the lid stays closed for\nthe duration of all of this to prevent mirror contamination from\nthrusters and the like).\n\nThe original plan was to use the Orbital Maneuvering Vehicle to do the\nreboost.  The OMV was planned to be a sort of small space tug, well\nsuited to precisely this sort of job.  Unfortunately, it was costing\na lot to develop and the list of definitely-known applications was\nrelatively short, so it got cancelled.\n-- \nSVR4 resembles a high-speed collision   | Henry Spencer @ U of Toronto Zoology\nbetween SVR3 and SunOS.    - Dick Dunn  |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6711, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: Help with SIMM configuration\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 22\n\nrcs8@po.CWRU.Edu (Robert C. Sprecher) writes:\n\n>Can someone please help me understand the current situation\n>regarding SIMMS?\n\n    Sure. I can give is a shot...\n\n>I have a IIsi which I will probably keep for another 2 years.\n>I would like to add more memory, ie go from 5 MB to 17 MB.\n>I know that I will need 4 x 4MB, 80ns or faster SIMMS.\n>Which SIMMS, 30 pin or 72 pin?\n\n    You need to get the 30-pin simms.\n\n>Would the SIMMS I get today be usable in 2 years with a \n>newer, more powerful system?\n\n    If you mean in a \"newer, more powerful\" Mac system then the answer\nis no. Apple has stated that all new Macs will use the 72-pin SIMMs and\nno longer use the 30-pin SIMMs.\n\n-Hades\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6712, "properties": {"category": "sci.space", "text": "From: semmett@gmuvax2.gmu.edu (Steve Emmett)\nSubject: Moscow Aviation Institute summer school\nOrganization: George Mason University, Fairfax, Virginia, USA\nLines: 103\n\nI have attached a copy of an announcement I picked up during my trip to\nMoscow last week.  I have several friends at the Moscow Aviation\nInstitute who have asked me to post this announcement.  (I have done\nsome editing, but the contents is unchanged from the original\nannouncement.) \n\nFor those of you not familiar with the Moscow Aviation Institute, it is\nthe leading Russian school of higher education dedicated to the training\nof aircraft and spacecraft designers.  It specializes in airframe\ndesign, powerplant design, control systems, and power systems.\nVirtually all of the major former Soviet airframe designers (Tupolev,\nSu, Iluchine, Migoyan, etc.) were schooled at MAI.\n\nI had the opportunity to tour the two museums that are maintained at\nMAI.  The aircraft include Mig23, Su 27, Yak 38, the cockpit of an\nF-111(!), among others.  It was a fascinating and eye opening\nexperience, expecially given the fact that the museum was, until a year\nor so ago, closed to virtually everyone.  I also had the opportunity to\nsee some of the experiments being conducted with plasma drive engines\nfor future space craft use.\n\nIf you have any questions about the Institute, or the program, I would\nbe glad to try and answer them.  The institute, and most of it's faculty\nhave e-mail addresses.  However, it takes about a day or so for the\nreceiver to get the message.  They are still a bit antiquated - but they\nare rapidly changing!\n\nSteve Emmett\nsemmett@gmuvax2.gmu.edu\n\nps  please send any questions you have for me via e-mail.  George Mason\nuniversity has about a 2 week (!) delay in news feed delivery.\n\n\n-------------------------------------------------------------------\n\n\t\tMOSCOW INTERNATIONAL AVIATION SCHOOL\n\nThe aviation school \"Poljot\" (meaning Flight) is organized by the the\nMoscow Aviation Institute, the prominent Russian Center of airspace\neducation and the foreign trade firm Poljot, well known in various\nparts of the world for their quartz and mechanical wrist watches.\n\nThe course of studies will last only 50 days, but during this time\nyou will have the unique opportunity:\n\t- to listen to intensive courses on the main aviation\ndisciplines, the history and theory of techniques, and design of\nairplanes;\n\t- to visit and get acquainted with the world known Russian \naviation firms - TU, MiG, Yak, Il and Su;\n\t- to meet and have discussions with famous aviation\nscientists, engineers and pilots;\n\t- to visit the most interesting museums of unique aviation\ntechniques which were closed for many years to the public;\n\t- to see the International Airspace Show which will take\nplace in Moscow from 31 August through 3 September 1993;\n\t- to visit famous art museums, historical and architectural\nmonuments, theatres and concert halls;\n\t- to take part in sport competitions and have a great time\nwith new friends.\n\nThe Director of the school is Mr. Oleg Samelovich, a well known\nRussian scientist, professor, general designer and the Chief of the\nAirplanes Design Department of the Moscow Aviation Institute.  Mr.\nSamelovich is one of the designers of the the Su-24, Su-25, and Su-27\n\nThe lectures are given in English, using a multi-media concept.  The\nstudents are provided with all the necessary text books and\nliterature.  After the full course of studies are completed, the\nstudent will receive a special certificate of graduation.\n\nThe cost of studies, including hotel, meals, excursions, theatres,\netc is $3500.\n\nTo apply for admission, send your application to:\n\n109147 Moscow Marksistskaja 34\nForeign Trade Firm \"Poljot\"\n274 00 13 (phone)\n274 00 22 (FAX)\n411989 POLEX SU (telex)\n\nIn your application, include your full name, address, date and place\nof birth.  In addition, include complete passport information, as well\nas a description of your education.\n\nUpon receipt of this information, \"Poljot\" will immediately forward\nto you an official invitation for obtaining a Russian entrance visa\nas well as details on payment.\n\nShould you require additional information, please do not hesitate to\ncontact us.\n\n(signed)\tO. Samelovich\n\n------------------------------------------------------------------------\n\n\n-- \n\nSteve Emmett\t\t\t\t semmett@gmuvax2.gmu.edu\n------------------------------------------------------------------\nCSI/Physics, George Mason University\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6713, "properties": {"category": "misc.forsale", "text": "From: JACK.T.SENDAK@OFFICE.WANG.COM (\"Jack T. Sendak       (V)\")\nSubject: Baseball card FOR SALE\nOrganization: Mail to News Gateway at Wang Labs\nLines: 7\n\nI have a Roberto Clemente 1969 Topps baseball card for sale, in near-mint\ncondition (really as close to mint condition as you can get).  It lists for\n$55 in my most recent baseball card pricelist for May.  I am offering it for\n$50 and I'll pay the certified postage to ship it to you.\n\nPlease respond to Jack.T.Sendak@office.wang.com or at 1-800-999-3732 ext. 5269\nin Maryland.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6714, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenian slaughter of more than 600,000 Kurdish people in 1915.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 21\n\nSource: Hassan Arfa, \"The Kurds,\" (London, 1968), pp. 25-26.\n\n \"When the Russian armies invaded Turkey after the Sarikamish disaster \n  of 1914, their columns were preceded by battalions of irregular \n  Armenian volunteers, both from the Caucasus and from Turkey. One of \n  these was commanded by a certain Andranik, a blood-thirsty adventurer.\n  These Armenian volunteers committed all kinds of excesses, more\n  than six hundred thousand Kurds being killed between 1915 and 1916 in \n  the eastern vilayets of Turkey.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6715, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: Re: HELP! TONIGHT! Determine this 387??-25MHz chip!\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 5\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nDid it ever accrue to you to just call INTEL'S 800 number and ask?\n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6716, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Vandalizing the sky.\nOrganization: Express Access Online Communications USA\nLines: 20\nNNTP-Posting-Host: access.digex.net\n\nIn article <C5y4t7.9w3@news.cso.uiuc.edu> gfk39017@uxa.cso.uiuc.edu (George F. Krumins) writes:\n>It is so typical that the rights of the minority are extinguished by the\n>wants of the majority, no matter how ridiculous those wants might be.\n\n\nGeorge.\n\n\tIt's called a democracy.  The majority rules.  sorry.\nIf ytou don't like it, I suggest you modify the constitution to include\na constitutional right to Dark Skies.   The theory of government\nhere is that the majority rules,  except in the nature of fundamental\ncivil rights.   If you really are annoyed,   get some legislation\nto create a dark sky zone,  where in all light emissions are protected\nin the zone.  Kind of like the national radio quiet zone.  Did you\nknow about that?  near teh Radio telescope  observatory in West virginia,\nthey have a 90?????? mile EMCON zone.  Theoretically they can prevent\nyou from running light AC motors, like air conditioners and Vacuums.\nIn practice, they use it mostly to  control  large radio users.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6717, "properties": {"category": "rec.autos", "text": "From: ip02@ns1.cc.lehigh.edu (Danny Phornprapha)\nSubject: 300ZX or SC300???\nOrganization: Lehigh University\nLines: 15\n\nHi everyone,\n\nI'm getting a car in the near future.  I've narrow it down to 300ZX and SC300.\nWhich might be a better choice?\n\nThanks for your opnion,\nDanny\n-- \n\n===============================================================================\n=    \"Hey! You programmers out there!     |    Danny Phornprapha              =\n=     Please consider this:               |    ip02@lehigh.edu                =\n=                                         |                                   =\n=     Bugs are another endangered earth   |    LUCC Student Konsultant        =\n=     Species needing your protection.    |    Work: (215) 758-4141           =\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6718, "properties": {"category": "comp.sys.mac.hardware", "text": "From: meharg@kits.sfu.ca (Gersham William Meharg)\nSubject: Re: Centris 610 Video Problem - I'm having it also!\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nDistribution: comp\nLines: 16\n\nI also suffer from these video \"artefacts\". My configuration is a\nCentris 610, 4/160, 1MB VRAM with a NEC 4FG. It only happens at\n832x624, in 8bit colour with virtual memory off during scrolling. This\noccurs when the VRAM SIMMS are installed as well as removed.\nIt seems that the 610 does not like 832x624.\n\nDoes anyone *not* have these problems in the above mentioned\nconditions?\n\n-Gersham Meharg\nSFU Canada.\n\n-- \nGersham Meharg :  meharg@sfu.ca : SFU-Vancouver-Canada\n\n  \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6719, "properties": {"category": "sci.space", "text": "From: cain@geomag.gly.fsu.edu (Joe Cain)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nOrganization: Florida State University Geology Dept.\nLines: 4\n\nThis discussion is better followed in talk.politics.space\nJoseph Cain\t\tcain@geomag.gly.fsu.edu   \ncain@fsu.bitnet\t\tscri::cain\n(904) 644-4014\t\tFAX (904) 644-4214 or -0098\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6720, "properties": {"category": "rec.autos", "text": "From: wiggs@stsci.edu (Michael S. Wiggs)\nSubject: Ignition kill\nOrganization: Space Telescope Science Institute\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 8\n\n\nI just wanted to thank all the netters out there who either\nposted a response or sent e-mail regarding my ignition kill\nquestion. Now that I know how simple a procedure it is, it\nlooks like I'll be paying my local Pep Boys a visit this\nweekend....\n\n-Mik\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6721, "properties": {"category": "sci.med", "text": "From: bebmza@sru001.chvpkh.chevron.com (Beverly M. Zalan)\nSubject: Re: Frequent nosebleeds\nReply-To: bebmza@sru001.chvpkh.chevron.com (Beverly M. Zalan)\nOrganization: chevron\nLines: 24\nX-Newsreader: InterCon TCP/Connect II 1.1\n\nIn article <1993Apr17.195202.28921@freenet.carleton.ca>, \nab961@Freenet.carleton.ca (Robert Allison) writes:\n\n> \n> \n> I have between 15 and 25 nosebleeds each week, as a result of a genetic \n> predisposition to weak capillary walls (Osler-Weber-Rendu). \n> Fortunately, each nosebleed is of short duration. \n> \n> Does anyone know of any method to reduce this frequency? My younger \n> brothers each tried a skin transplant (thigh to nose lining), but their \n> nosebleeds soon returned. I've seen a reference to an herb called Rutin \n> that is supposed to help, and I'd like to hear of experiences with it, \n> or other techniques. \n> -- \n\n\nMy 6 year son is so plagued.  Lots of vaseline up his nose each night seems \nto keep it under control.  But let him get bopped there, and he'll recur for \ndays!  Also allergies, colds, dry air all seem to contribute.  But again, the \nvaseline, or A&D ointment, or neosporin all seem to keep them from recurring.\n\n\nBev Zalan\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6722, "properties": {"category": "comp.windows.x", "text": "From: adrian@ora.COM (Adrian Nye)\nSubject: imake book review\nOrganization: O'Reilly and Associates, Inc.\nLines: 12\nReply-To: adrian@ora.com\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\n\nThanks for the many offers to review this book.\n\nIf you received a review copy, please return it\nas soon as possible.  I had a system crash and\nlost the list of people I sent it to!\n\nThanks\n\nAdrian Nye\nO'Reilly and Associates\nadrian@ora.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6723, "properties": {"category": "comp.windows.x", "text": "From: pmcgilla@hp.uwsuper.edu (Mr. Patrick L. McGillan)\nSubject: DXF format display\nOrganization: University of Wisconsin - Superior\nLines: 17\nNNTP-Posting-Host: 137.81.1.3\nX-Newsreader: TIN [version 1.1 PL7]\n\nHI,\n  I am looking for an X app that will display dxf files. These are\n  ascii text files that are normally associated with autocad. I have\n  a large 9 meg. file of the state of wisconsin that i would like to\n  views and or cut into smaller chunks.\n\n  I also would like to find a complete file layout for dxf files.\n\n  Any information would be appreciated.\n\n\n--\nPatrick L. McGillan\nComputer Systems Specialist\nUniversity Of Wisconsin     Ph:  (715) 394-8191\nSuperior, Wisconsin         pmcgilla@uwsuper.edu\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6724, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lioness@maple.circa.ufl.edu\nSubject: More Adaptec 1542B problems\nOrganization: Center for Instructional and Research Computing Activities\nLines: 25\nReply-To: LIONESS@ufcc.ufl.edu\nNNTP-Posting-Host: maple.circa.ufl.edu\n\n\nOkay, here is my configuration:\n\n80486-33 Gateway 433C Micronics ISA\n12MB RAM \nWD212MB IDE HD ( drive C: )\nST3144A 125MB IDE HD ( drive D: )\nAdaptec SCSI 1542B controller, with SCSI BIOS enabled\nSeagate ST296N 80MB SCSI drive\n\nAlrighty, when I boot up I get the Adaptec BIOS message, but it says\nsomething like:\n\n\"Drive C: installed\"\n\"Drive D: installed\"\n\"ADaptec SCSI BIOS not installed!\"\n\nAnd I can't get to the Seagate drive.\n\nI go into PhoenixBIOS setup, remove the entry for drive D:, and BOOM, I can\naccess the Seagate.  Is there a way to get two IDE drives and the Seagate\nat the same time?  I have ASPI4DOS.SYS, but it just hangs the system.\n\nBrian\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6725, "properties": {"category": "sci.med", "text": "From: young@serum.kodak.com (Rich Young)\nSubject: Re: Blood Glucose test strips\nOriginator: young@sasquatch\nNntp-Posting-Host: sasquatch\nReply-To: young@serum.kodak.com\nOrganization: Clinical Diagnostics Division, Eastman Kodak Company\nLines: 38\n\nIn article <1993Apr12.151035.22555@omen.UUCP> caf@omen.UUCP (Chuck Forsberg WA7KGX) writes:\n>\n>In article <1993Apr11.192644.29219@clpd.kodak.com> young@serum.kodak.com writes:\n>>\n>>\tHuman glucose: 70 - 110 mg./dL. (fasting) [2]\n>\n>Are these numbers for whole blood, or plasma?\n\n\tSerum, actually, but plasma numbers are the same.  Whole blood\n\tnumbers for humans tend to be somewhat lower (roughly 5 to 10 \n\tpercent lower).  I find the following range for whole blood in\n\tFUNDAMENTALS OF CLINICAL CHEMISTRY: N. W. Teitz, editor; W. B.\n\tSaunders, 1987:\n\n\tHuman glucose (whole blood, fasting levels) --> 60 - 95 mg./dL.\n\n>Which are the strips calibrated for?  (Obviously they measure whole blood)\n\n\tIndeed, they do measure whole blood levels, although they are not\n\tas accurate as a serum test done in a laboratory.  One problem is\n\tthat cells in the sample continue to metabolize glucose after the\n\tsample is drawn, reducing the apparent level.  According to Teitz,\n\thowever, results compare \"reasonably well\" with laboratory results,\n\talthough \"values below 80 mg./dL. tend to be lower with strip tests,\n\twhereas values above 240 mg./dL. can be very erratic.\"\n\n>What is the conversion factor between human plasma glucose and\n>whole blood (pin prick) glucose concentration?\n\n\tAs stated above, whole blood levels tend to be roughly 5 to 10 \n\tpercent lower than serum levels.  Sample freshness will affect\n\twhole blood levels, however.  I don't believe there is a well-\n\tdefined \"conversion factor,\" since cell metabolism will affect\n\tsamples to varying degrees.  The serum/plasma test is much \n\tpreferred for any except general \"ball park\" testing.\n\n\n-Rich Young (These are not Kodak's opinions.)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6726, "properties": {"category": "sci.electronics", "text": "From: cantrell@sauron.msfc.nasa.gov (Eric Cantrell)\nSubject: EEG Kit?\nNntp-Posting-Host: sauron.msfc.nasa.gov\nOrganization: NASA/MSFC\nX-Newsreader: NN version 6.4.19\nLines: 9\n\nAwhile back someone posted some information on where you can get\nkits to build an EEG.  Does anyone remember where you could get\nthis.  I'm very interested in getting some info on this.  Thanks \nin advance.\n\neric\n\ncantrell@sauron.msfc.nasa      \n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6727, "properties": {"category": "sci.med", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: Barbecued foods and health risk\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 33\n\n> I don't understand the assumption that because something is found to\n> be carcinogenic that \"it would not be legal in the U.S.\".  I think that\n> naturally occuring substances (excluding \"controlled\" substances) are\n> pretty much unregulated in terms of their use as food, food additives\n> or other \"consumption\".  It's only when the chemists concoct (sp?) an\n> ingredient that it falls under FDA regulations.  Otherwise, if they \n> really looked closely they would find a reason to ban almost everything.\n> How in the world do you suppose it's legal to \"consume\" tobacco products\n> (which probably SHOULD be banned)?\n\nNo, there is something called the \"Delany Amendment\" which makes carcinogenic\nfood additives illegal in any amount.  This was passed by Congress in the\n1950's, before stuff like mass spectrometry became available, which increased\ndetectable levels of substances by a couple orders of magnitude.\n\nThis is why things like cyclamates and Red #2 were banned.  They are very\nweakly carcinogenic in huge quantities in rats, so under the Act they are\nbanned.\n\nThis also applies to natural carcinogens.  Some of you might remember a\ntime back in the 1960's when root beer suddenly stopped tasting so good,\nand never tasted so good again.  That was the time when safrole was banned.\nThis is the active flavoring ingredient in sassafras leaves.\n\nIf it were possible to market a root beer good like the old days, someone\nwould do it, in order to make money.  The fact that no one does it indicates\nthat enforcement is still in effect.\n\nAn odd exception to the rule seems to be the product known as \"gumbo file'\".\nThis is nothing more than coarsely ground dried sassafras leaves.  This\nis not only a natural product, but a natural product still in its natural\nform, so maybe that's how they evade Delany.  Or maybe a special exemption\nwas made, to appease powerful Louisiana Democrats.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6728, "properties": {"category": "sci.space", "text": "From: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nSubject: Re: japanese moon landing?\nOrganization: NASA Langley Research Center\nLines: 13\nDistribution: world\nReply-To: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nNNTP-Posting-Host: tahiti.larc.nasa.gov\n\n> there is no such thing as a stable lunar orbit\n\nIs it right??? That is new stuff for me. So it means that  you just can \nnot put a sattellite around around the Moon for too long because its \norbit will be unstable??? If so, what is the reason??? Is that because \nthe combined gravitacional atraction of the Sun,Moon and Earth \nthat does not provide a stable  orbit around the Moon???\n\n C.O.EGALON@LARC.NASA.GOV\n\nC.O.Egalon@larc.nasa.gov\n\nClaudio Oliveira Egalon\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6729, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gnelson@pion.rutgers.edu (Gregory Nelson)\nSubject: Thanks Apple: Free Ethernet on my C610!\nArticle-I.D.: pion.Apr.6.12.05.34.1993.11732\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 26\n\n\n\tWell, I just got my Centris 610 yesterday.  It took just over two \nweeks from placing the order.  The dealer (Rutgers computer store) \nappologized because Apple made a substitution on my order.  I ordered\nthe one without ethernet, but they substituted one _with_ ethernet.\nHe wanted to know if that would be \"alright with me\"!!!  They must\nbe backlogged on Centri w/out ethernet so they're just shipping them\nwith!  \n\n\tAnyway, I'm very happy with the 610 with a few exceptions.  \nBeing nosy, I decided to open it up _before_ powering it on for the first\ntime.  The SCSI cable to the hard drive was only partially connected\n(must have come loose in shipping).  No big deal, but I would have been\npissed if I tried to boot it and it wouldn't come up!\n\tThe hard drive also has an annoying high pitched whine.  I've\nheard apple will exchange it if you complain, so I might try to get\nit swapped.\n\tI am also dissappionted by the lack of soft power-on/off.  This\nwasn't mentioned in any of the literature I saw.  Also, the location\nof the reset/interupt buttons is awful.  Having keyboard control for\nthese functions was much more convenient.\n\tOh, and the screen seems tojump in a wierd way on power-up.\nI've seen this mentioned by others, so it must be a...feature...\n\tAnyway, above all, it's fast.  A great machine at a great price!\n\ngnelson@physics.rutgers.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.316+0000", "event": "documents", "entityId": 6730, "properties": {"category": "sci.med", "text": "From: banschbach@vms.ocom.okstate.edu\nSubject: How To Prevent Kidney Stone Formation\nLines: 154\nNntp-Posting-Host: vms.ocom.okstate.edu\nOrganization: OSU College of Osteopathic Medicine\n\nI got asked in Sci. Med. Nutrition about vitamin C and oxalate production(\ntoxic, kidney stone formation?).  I decided to post my answer here as well \nbecause of the recent question about kidney stones.  Not long after I got \ninto Sci. Med. I got flamed by a medical fellow for stating that magnesium \nwould prevent kidney stone formation.  I'm going to state it again here.\nBut the best way to prevent kidney stones from forming is to take B6 \nsupplements.  Read on to find out why(I have my asbestos suit on now guys).\n\nVitamin C will form oxalic acid.  But large doses are needed (above 6 grams \nper day).\n\n\t1. Review Article \"Nutritional factors in calcium containing kidney \n\t   stones with particular emphasis on Vitamin C\" Int. Clin. Nutr. Rev.\n\t   5(3):110-129(1985).\n\nBut glycine also forms oxalic acid(D-amino acid oxidases).  For both \nglycine and vitamin C, one of the best ways to drastically reduce this \nproduction is not to cut back on dietary intake of vitamin C or glycine, \nbut to increase your intake of vitamin B6.\n\n\t2. \"Control of hyperoxaluria with large doses of pyridoxine in \n\t    patients with kidney stones\" Int. Urol. Nephrol. 20(4):353-59(1988)\n\t    200 to 500 mg of B6 each day significasntly decreased the urinary \n\t    excretion of oxalate over the 18 month treatment program.\n\n\t3. The action of pyridoxine in primary hyperoxaluria\" Clin. Sci. 38\n\t   :277-86(1970).  Patients receiving at least 150mg B6 each day \n\t   showed a significant reduction in urinary oxalate levels.\n\nFor gylcine, this effect is due to increased transaminase activity(B6 is \nrequired for transaminase activity) which makes less glycine available for \noxidative deamination(D-amino acid oxidases).  For vitamin C, the effect is \nquite different.  There are different pathways for vitamin C catabolism.  \nThe pathway that leads to oxalic acid formation will usually have 17 to 40% \nof the ingested dose going into oxalic acid.  But this is highly variable \nand the vitamin C review article pointed out that unless the dose gets upto \n6 grams per day, not too much vitamin C gets catabolized to form oxalic \nacid.  At very high doses of vitamin C(above 10 grams per day), more of the \nextra vitamin C (more than 40% conversion) can end up as oxalic acid.  In a \nvery early study on vitamin C and oxalic production(Proc. Soc. Exp. Biol. \nMed. 85:190-92(1954), intakes of 2 grams per day up to 9 grams per day \nincreased the average oxalic acid excretion from 38mg per day up to 178mg \nper day.  Until 8 grams per day was reached, the average excreted was \nincreased by only 3 to 12mg per day(2 gram dose, 4 gram dose, 8 gram dose \nand 9gram dose). 8 grams jumped it to 45mg over the average excretion \nbefore supplementation and 9 grams jumped it to 150 mg over the average \nbefore supplementation.\n\nB6 is required by more enzymes than any other vitamin in the body.  There \nare probably some enzymes that require vitamin B6 that we don't know about \nyet.  Vitamin C catabolism is still not completely understood but the \nspeculation is that this other pathway that does not form oxalic acid must \nhave an enzyme in it that requires B6.  Differences in B6 levels could then \nexplain the very variable production of oxalic acid from a vitamin C \nchallenge(this is not the preferred route of catabolism).  Increasing your \nintake of B6 would then result in less oxalic acid being formmed if you \ntake vitamin C supplements.  Since the typical American diet is deficient \nin B6, some researchers believe that the main cause of calcium-oxalate \nkidney stones is B6 deficiency(especially since so little oxalic acid gets \nabsorbed from the gut).  Diets providing 0 to 130mg of oxalic acid per day \nshowed absolutely no change in urinary excretion of oxalate(Urol Int.35:309\n-15,1980).  If 400mg was present each day, there was a significant increase \nin urinary oxalate excretion.\n\n\tHere are the high oxalate foods:\n\n\t1. Beans, coca, instant coffee, parsley, rhubarb, spinach and tea.\n\t   Contain at least 25mg/100grams\n\n\t2. Beet tops, carrots, celery, chocolate, cumber, grapefruit, kale, \n\t   peanuts, pepper, sweet potatoe.\n\t   Contain 10 to 25 mg/100grams.\n\nIf the threshold is 130mg per day, you can see that you really have a lot \nof latitude in food selection.  A recent N.Eng.J. Med. article also points \nout that one good way to prevent kidney stone formation is to increase your \nintake of calcium which will prevent most of the dietary oxalate from being \nabsorbed at all.  If you also increase your intake of B6, you shouldn't \nhave to worry about kidney stones at all. The RDA for B6 is 2mg per day for \nmales and 1.6mg per day for females(directly related to protein intake).\nB6 can be toxic(nerve damage) if it is consumed in doses of 500mg or more \nper day for an extended peroid(weeks to months).  \n\nThe USDA food survey done in 1986 had an average intake of 1.87 mg per day \nfor males and 1.16mg per day for females living in the U.S.  Coupled with \nthis low intake was a high protein diet(which greatly increases the B6 \nrequirement), as well as the presence of some of the 40 different drugs that \neither block B6 absorption, are metabolic antagonists of B6, or promote B6 \nexcretion in the urine.  Common ones are: birth control pills, alcohol,\nisoniazid, penicillamine, and corticosteroids.  I tell my students to \nsupplement all their patients that are going to get any of the drugs that \nincrease the B6 requirement.  The dose recommended for patients taking \nbirth control pills is 10-15mg per day and this should work for most of the \nother drugs that increase the B6 requirement(this would be on top of your \ndietary intake of B6).  Any patient that has a history of kidney stone \nformation should be given B6 supplements.\n\nOne other good way to prevent kidney stone formation is to make sure your \nCa/Mg dietary ratio is 2/1.  Magnesium-oxalate is much more soluble than is \ncalcium-oxalate.\n\n\t4. \"The magnesium:calcium ratio in the concentrated urines of \npatients with calcium oxalate calculi\"Invest. Urol 10:147(1972)\n\n\t5. \"Effect of magnesium citrate and magnesium oxide on the \ncrystallization of calcium in urine: changes producted by food-magnesium \ninteraction\"J. Urol. 143(2):248-51(1990).\n\n\t6.Review Article, \"Magnesium in the physiopathology and treatment \nof renal calcium stones\" J. Presse Med. 161(1):25-27(1987).\n\nThere are actually about three times as many articles published in the \nmedical literature on the role of magnesium in preventing kidney stone \nformation than there are for B6.  I thought that I was being pretty safe in \nstating that magnesium would prevent kidney stone formation in an earlier \npost in this news group but good old John A. in Mass. jumped all over me. I \nguess that he doesn't read the medical literature.  Oh well, since kidney \nstones can be a real pain and a lot of people suffer from them, I thought \nI'd tell you how you can avoid the pain and stay out of the doctor's office.\n\nMartin Banschbach, Ph.D.\nProfessor of Biochemistry and Chairman\nDepartment of Biochemistry and Microbiology\nOSU College of Osteopathic Medicine\n1111 W. 17th Street\nTulsa, Ok. 74107\n\n\"Without discourse, there is no remembering, without remembering, there is \nno learning, without learning, there is only ignorance\".  From a wise man \nwho lived in China, many, many years ago.  I think that it still has \nmeaning in today's world.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6731, "properties": {"category": "rec.autos", "text": "From: neilson@seoul.mpr.ca (Robert Neilson)\nSubject: Re: WARNING.....(please read)...\nIn-Reply-To: madman@austin.ibm.com's message of Thu, 15 Apr 1993 17:31:58 GMT\nNntp-Posting-Host: seoul\nOrganization: MPR Teltech Ltd., Burnaby, B.C., Canada\n\t<1993Apr15.024246.8076@Virginia.EDU> <C5JCpA.1ptt@austin.ibm.com>\nLines: 12\n\n[sorry for the 0 auto content, but ... ]\n\n> That is why low-abiding citizens should have the power to protect themselves\n> and their property using deadly force if necessary anywhere a threat is \n> imminent.\n>\n> Steve Heracleous\n\nYou do have the power Steve. You *can* do it. Why don't you? Why don't you\ngo shoot some kids who are tossing rocks onto cars? Make sure you do a good\njob though - don't miss - 'cause like they have big rocks - and take it from\nme - those kids are mean.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6732, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: pmw0@ns1.cc.lehigh.edu (PHILLIP MICHAEL WILLIAMS)\nSubject: X Windows for windows\nOrganization: Lehigh University\nLines: 7\n\nAre there any X window servers that can run under MS-Windows??  I only know of\nDeskview but have not seen it in action.  Are there any others??\n\nThanks in advance.\n\nPhil\npmw0@Lehigh.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6733, "properties": {"category": "talk.politics.misc", "text": "From: jason@ab20.larc.nasa.gov (Jason Austin)\nSubject: Polls (was Re: Top Ten Excuses for Slick Willie's Record-Setting Disapproval Rati)\nOrganization: NASA Langley Research Center, Hampton, VA\nLines: 37\nReply-To: Jason C. Austin <j.c.austin@larc.nasa.gov>\nNNTP-Posting-Host: ab20.larc.nasa.gov\nIn-reply-to: libwca@emory.edu's message of 14 Apr 93 20:31:09 GMT\n\nIn article <2680@emoryu1.cc.emory.edu> libwca@emory.edu (Bill Anderson) writes:\n-> : \tAccording to a ``CNN Poll'' to key reason for Clinton's low\n-> : approval rating is people are angry about him not moving fast enough\n-> : on gays in the military.  I just burst out laughing when I heard this;\n-> : what planet do these CNN people live on anyway?\n-> : --\n-> : Jason C. Austin\n-> : j.c.austin@larc.nasa.gov       \n-> \n-> Dunno, man... that sounds pretty damned unlikely to me, too,\n-> although it's certainly one of the reasons I'm pissed off at him.\n-> Maybe the sample was taken entirely from my fellow memebers of the\n-> Cultural Elite?\n-> \n-> Jason, can you quote some of these poll questions?\n-> \n-> Thanks,\n-> Bill\n-> v\n\n\tI've never seen CNN give out the poll questions on the air.\nIf you sent them a letter asking for them, you might get them.  Here's\nmy guess of how part of a session might look:\n\nQuestion: Do you approve of Clinton's performance?\nAnswer: No\nQuestions: Do you disapprove due to the gays in the military issue?\nAnswer: Yes\n\nConclusion: Clinton has a low approval rating because he's not moving\nfast enough on gays in the military.\n\n\n\tI think any group truly dedicated to reporting the news would\nnot use manufactured news like polls.\n\n\t\t\t\t\t\t-Jason\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6734, "properties": {"category": "talk.politics.guns", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: AMA Support Brady Bill\nLines: 27\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <1r044aINNh9f@tamsun.tamu.edu> dlb5404@tamuts.tamu.edu (Daryl Biberdorf) writes:\n\n>The following was sent to me by a friend of mine (a med student).  It\n>originally appeared in a medical discussion list.\n>\n>--GUN CONTROL - The AMA expressed support for S. 414 and H.R. 1025 (the \"Brady\n>--Handgun Violence Prevention Act\").  Citing its strong support for the \"Brady\n>--Bill\" in past Congresses, the AMA termed as \"particularly alarming\" violence\n>--associated with, and stemming from, the widespread and easy availability and\n>--use of firearms.  The AMA proceeded to comment:  \"While we recognize that a\n>--waiting period of 5 business days before a handgun purchase will not address\n>--all of the difficult problems that have made violence so prevalent in our\n>--society, we believe that it is a beginning and will save lives.  Physicians\n>--are first-hand witnesses to the horrendous cost in human life being exacted\n>--by firearm violence. A reasonable waiting period before the purchase of a\n>--handgun is a protection that the American people deserve.\"  (Letters to\n>--Senator Howard M. Metzenbaum and Representative Charles E. Schumer; March 11,\n>--1993.)\n\n       I wonder if the AMA has an exact listing of \"lives saved\" in \nTennessee, California, and other waiting period states.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6735, "properties": {"category": "comp.windows.x", "text": "From: egreshko@twntpe.cdc.COM (Ed Greshko)\nSubject: cxterm on MIPS\nOrganization: The Internet\nLines: 13\nTo: xpert@expo.lcs.mit.edu\n\n\nHello,\n\n\tHas anyone built cxterm (X11R5) on a MIPS platform.  If you have,\nplease send me email as I don't read this group.  I've a bunch of questions...\n:-)\n\n\t\t\t\tThanks\n\nEdward M. Greshko\t\t\tControl Data Taiwan\nVoice: +886-2-715-2222 x287\t\t6/F, 131 Nanking East Road, Section 3\nFAX  : +886-2-712-9197\t\t\tTaipei, Taiwan R.O.C\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6736, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rnichols@cbnewsg.cb.att.com (robert.k.nichols)\nSubject: Re: copy/move files in File Manager\nOrganization: AT&T\nDistribution: usa\nLines: 25\n\nIn article <C58tsF.5yE@murdoch.acc.Virginia.EDU> rsc3e@orion.lib.Virginia.EDU (Scott Crittenden) writes:\n>My understanding is that, to copy files from one directory to another on  \n>the same drive in File Manager (using a mouse), you hold down the CTRL key  \n>while dragging the file from one directory's window to the other.  This  \n>works for me... about 98% of the time.  The other 2%, the file gets  \n>_moved_ rather than copied.  Anybody else encountered this?\n...\n\nI tried to respond by email, but all attempts bounced.\n\nThe condition of the Ctrl key BEFORE you press the mouse button makes no\ndifference whatsoever.  You have to be holding the Ctrl key when you\nRELEASE the mouse button if you want to force a copy operation.\n\nHere's a simple experiment.  Select a file and begin to drag it (no Ctrl\nkey).  Notice that the file's icon disappears from the listing window.  Now\nwatch what happens to that icon as you press and release the Ctrl key\n(keeping the mouse button pressed all the while).  In addition, the icon\nthat you are dragging will show a \"+\" while you are holding the Ctrl key,\nindicating that the file is being copied rather than moved.\n\n--\nBob Nichols\nAT&T Bell Laboratories\nrnichols@ihlpm.ih.att.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6737, "properties": {"category": "soc.religion.christian", "text": "From: wquinnan@sdcc13.ucsd.edu (Malcusco)\nSubject: Re: The arrogance of Christians\nOrganization: University of California, San Diego\nLines: 60\n\nIn article <Apr.10.05.32.15.1993.14385@athos.rutgers.edu> dleonar@andy.bgsu.edu (Pixie) writes:\n>In article <Apr.7.01.55.50.1993.22771@athos.rutgers.edu>,\n>\n>\t\t\t\t\tPardon me, a humble atheist, but exactly what is the difference\n>between holding a revealed truth with blind faith as its basis (i.e.\n>regardless of any evidence that you may find to the contrary) as an\n>absolute truth, fully expecting people to believe you and arrogance?\n>     They sound like one and the same to me.\n\n>                                       Pixie\n>\n>\n>     p.s.  If you do sincerely believe that a god exists, why do you follow\n>it blindly?  \n\n\tWhy do we follow God so blindly?  Have you ever asked a\nphysically blind person why he or she follows a seeing eye dog?\nThe answer is quite simple--the dog can see, and the blind person\ncannot.\n\n\tI acknowledge, as a Christian, that I am blind.  I see,\nbut I see  illusions as well as reality.  (Watched TV lately?)\nI hear, but I hear lies as well as truth.  (Listen to your \nradio or read a newspaper.)  Remember, all that tastes well is\nnot healthy.  So, I rely one the one who can see, hear, and\ntaste everything, and knows what is real, and what is not.\nThat is God.\n\n\tOf course, you may ask, if I cannot trust my own senses,\nhow do I know whether what I see and hear about God is truth or\na lie.  That is why we need faith to be saved.  We must force\nourselves to believe that God knows the truth, and loves us\nenough to share it with us, even when it defies what we think\nwe know.  Why would He have created us if He did not love us \nenough to help us through this world?\n\n\tI also do trust my experiences to some extent.  When\nI do things that defy the seeming logic of my experience, \nbecause it is what my Father commands me to do, and I see\nthe results in the long term, I find that He has led me\nin the proper direction, even though it did not feel right\nat the time.  This is where our works as Christians are\nimportant:  As exercises of the body make the body strong,\nexcercises of faith make the faith strong.  \n\n\tAs for you, no one can \"convert\" you.  You must\nchoose to follow God of your own will, if you are ever to\nfollow Him.  All we as Christians wish to do is share with\nyou the love we have received from God.  If you reject that,\nwe have to accept your decision, although we always keep\nthe offer open to you.  If you really want to find out\nwhy we believe what we believe, I can only suggest you try\npraying for faith, reading the Bible, and asking Christians\nabout their experiences personally.  Then you may grow to\nunderstand why we believe what we do, in defiance of the\nlogic of this world.\n\n\tMay the Lord bring peace to you, \n\t\t\t\n\t\t\tMalcusco         \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6738, "properties": {"category": "sci.space", "text": "Subject: Re: Comet in Temporary Orbit Around Jupiter?\nFrom: Robert Coe <bob@1776.COM>\nDistribution: world\nOrganization: 1776 Enterprises, Sudbury MA\nLines: 23\n\njgarland@kean.ucs.mun.ca writes:\n\n> >> Also, perihelions of Gehrels3 were:\n> >> \n> >> April  1973     83 jupiter radii\n> >> August 1970     ~3 jupiter radii\n> > \n> > Where 1 Jupiter radius = 71,000 km = 44,000 mi = 0.0005 AU.  So the\n> > 1970 figure seems unlikely to actually be anything but a perijove.\n> > Is that the case for the 1973 figure as well?\n> > -- \n> Sorry, _perijoves_...I'm not used to talking this language.\n\nHmmmm....  The prefix \"peri-\" is Greek, not Latin, so it's usually used\nwith the Greek form of the name of the body being orbited.  (That's why\nit's \"perihelion\" rather than \"perisol\", \"perigee\" rather than \"periterr\",\nand \"pericynthion\" rather than \"perilune\".)  So for Jupiter I'd expect it\nto be something like \"perizeon\".)   :^)\n\n   ___            _                                           -  Bob\n   /__) _   /    / ) _   _\n(_/__) (_)_(_)  (___(_)_(/_______________________________________ bob@1776.COM\nRobert K. Coe ** 14 Churchill St, Sudbury, Massachusetts 01776 ** 508-443-3265\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6739, "properties": {"category": "comp.graphics", "text": "From:  Club@spektr.msk.su (Koltovoy Nikolay Alexeevich)\nSubject: [NEWS]Re:List or image processing systems?\nDistribution: eunet\nReply-To: Club@spektr.msk.su\nOrganization: Moscow Scientific Industrial Ass. Spectrum\nLines: 137\n\n\n       Moscow Scientific Inductrial Association \"Spectrum\" offer\n       VIDEOSCAN vision system for PC/AT,wich include software and set of\n       controllers.\n\n                     SOFTWARE\n\n            For support VIDEOSCAN family program kit was developed. Kit\n       includes more then 200 different functions for image processing.\n            Kit works in the interactive regime, and has include Help for\n       non professional users.\n            There are next possibility:\n       - input frame by any board of VIDEOSCAN family;\n       - read - white image to - from disk;\n       - print image on the printer;\n       - makes arithmetic with 2 frames;\n       - filter image;\n       - work with gistogramme;\n       - edit image.\n       - include users exe modules.\n\n                     CONTROLLER VS9\n\n       The function of VS-9 controller is to load TV-images into  PC/AT.\n       VS-9 controller allows one to load a fragment of the TV-frame from\n       a field of 724x600 pixels.\n       The clock rate is 14,7 MHz when loading an image with 512 pixel in\n       the line and 7,4 MHz when loading a 256 pixels image. This\n       provides the equal pixel size of input image in both horizontal\n       and vertical directions.\n       The number of gray levels in any input modes is 256.\n       Video signal capture time - 2.5s.\n\n                     CONTROLLER VS52\n\n       The purpose of the controller is to enter the TV images into a IBM\n       PC AT or any other machine of that type. The controller was\n       created on the base of modern elements, including user\n       programmable gate arrays.\n       The controller allows to digitize a input signal with different\n       resolutions. Its flexible architecture makes possible to change\n       technical parameters. Instead of TV signal one can process any\n       other analog signal (including signals from slow-speed scanning\n       devices).\n       The controller has the following technical characteristics:\n       - memory volume - from 256 K to 2 Mb ;\n       - resolution when working with standard video signal - from 64x64\n       to 1024x512 pixels ;\n       - resolution when working in slow input regime - up to 2048x1024\n       pixels;\n       - video signal capture time - 40 ms.\n       - maximum size of a screen when memory volume is 2Mb - 2048x1024\n       pixels ;\n       - number of gray level - 256 ;\n       - clock rate for input - up to 30 MHz ;\n       - 4 input video multiplexer ;\n       - input/output lookup table (LUT);\n       - possibility to realize \"scroll\" and \"zoom\";\n\n\n\n\n\n\n\n\n\n\n\n\n\n       - 8 lines for external synchronization (an input using external\n       controlling signal) ;\n       - electronic adjustment of black and white reference for analog -\n       digital converter;\n       - possibility output image to the color RGB monitor.\n       One can change all listed above functions and parameters of the\n       controller by reprogramming it.\n\n\n              IMAGE PROCESSOR VS100\n\n\n            Image processor VS100 allows to digitize and process TV\n       signal in real time. It is possible digitize TV signal with\n       512*512*8 resolution and realize arithmetic and logic operation\n       with two images.\n            Processor was created on the base of modern elements\n       including user programmable gate arrays and designed as a board\n       for PC.\n            Memory volume allows write to the 256 frames with 512*512*8\n       format. It is possible to accumulate until 16 images.\n            The processor has the following technical characteristics:\n       - memory volume to 64 Mb;\n       - number of the gray level - 256;\n       - 4 input video multiplexer;\n       - input/output lookup table;\n       - electronic adjustment for black and white ADC reference;\n       - image size from 256*256 to 8192*8192;\n       - possibility color and black / white output;\n       - possibility input from slow-scan video sources.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6740, "properties": {"category": "talk.politics.guns", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: Gritz/JBS/Liberty Lobby/LaRouche/Christic Insitute/Libertarian/...\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 27\n\nIn article <C5L2BC.C2x.1@cs.cmu.edu> rubinoff+@cs.cmu.edu (Robert Rubinoff) writes:\n>In article <93105.230230U23590@uicvm.uic.edu> <U23590@uicvm.uic.edu> writes:\n>>Note that Bo Gritz was on the Populist party ticket with David\n>>Duke (for veep) in 1988 until he found out that Duke was leading\n>>he ticket, when he withdrew his candidacy.  \n\nThat's a revisionist account of what happened.  Gritz was well-aware\nof Duke's presence on the ticket.  Given that Gritz is not at all shy\nabout associating and promoting other white supremacists (such as the\nChristian Identity movement or Willis Carto), whatever reasons Gritz\nhad to leave the ticket had nothing to do with Duke's presence.\n\n>>So Gritz gave up his\n>>chance to be Vice President of the US just to aviod supporting\n>>Duke.\n>\n>I'd hardly call that \"giving up his chance to be Vice President of the US\";\n>the chance of the Populist Party ticket winning is essentially nil.  Still,\n>it does imply that he doesn't want to be associated with Duke.\n\nI believe Chip Berlet has a Populist Party newsletter from the time with\na photo of Gritz happily shaking hands with Duke.\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6741, "properties": {"category": "sci.crypt", "text": "From: res@colnet.cmhnet.org (Rob Stampfli)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Little to None\nDistribution: na\nLines: 13\n\n>>\tWith E-Mail, if they can't break your PGP encryption, they'll just\n>>call up one of their TEMPEST trucks and read the electromagnetic emmisions\n>>from your computer or terminal.  Note that measures to protect yourself from\n>\n>2. I could independently invent about half a dozen right off\n>the top of my head. If I had studied Advanced E & M a little better,\n>I could probably come up with a _very_ good system.\n\nWouldn't a a second monitor of similar type scrolling gibberish and adjacent\nto the one being used provide reasonable resistance to tempest attacks?\n-- \nRob Stampfli  rob@colnet.cmhnet.org      The neat thing about standards:\n614-864-9377  HAM RADIO: kd8wk@n8jyv.oh  There are so many to choose from.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6742, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: richk@grebyn.com (Richard Krehbiel)\nSubject: Re: IDE vs SCSI\nIn-Reply-To: marka@hcx1.ssd.csd.harris.com's message of 16 Apr 1993 07:30:17 -0400\nLines: 12\nOrganization: Grebyn Timesharing, Inc.\n\t<1qm5c9$6on@hcx1.ssd.csd.harris.com>\n\nIn article <1qm5c9$6on@hcx1.ssd.csd.harris.com> marka@hcx1.ssd.csd.harris.com (Mark Ashley) writes:\n\n>   First off, with all these huge software packages and files that\n>   they produce, IDE may no longer be sufficient for me (510 Mb limit).\n\nI've seen a listing of a Seagate 1G IDE hard drive.\n\n>   Second, (rumor is) Microsoft recognizes the the importance of SCSI\n>   and will support it soon. I'm just not sure if it's on DOS, Win, or NT.\n\nWindows NT already supports SCSI, a variety of adapters, for disk,\ntape, and CD-ROM.  So does OS/2 2.0.\n-- \nRichard Krehbiel                                 richk@grebyn.com\nOS/2 2.0 will do for me until AmigaDOS for the 386 comes along...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6743, "properties": {"category": "comp.graphics", "text": "From: seth@north6.acpub.duke.edu (Seth Wandersman)\nSubject: morphing\nReply-To: seth@north6.acpub.duke.edu (Seth Wandersman)\nLines: 6\nNntp-Posting-Host: north6.acpub.duke.edu\n\n\nKeywords: \n\nI am looking for some morphing programs for DEC's or pc's. I looked for a program\ncalled dmorph using archie but could not find it. I found a progrmam call\nmorpho but it only did grayscale images. Does anyone know where I should look?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6744, "properties": {"category": "soc.religion.christian", "text": "From: REXLEX@fnal.fnal.gov\nSubject: Assurance of Hell\nOrganization: FNAL/AD/Net\nLines: 139\n\nI dreamed that the great judgment morning had dawned,\n     and the trumpet had blown.\nI dreamed that the sinners had gathered for judgment\n     before the white throne.\nOh what weeping and wailing as the lost were told of their fate.\nThey cried for the rock and the mountains.\nThey prayed, but their prayers were too late.\nThe soul that had put off salvation, \n\"Not tonight I'll get saved by and by.\n No time now to think of ....... religion,\" \nAlas, he had found time to die.\nAnd I saw a Great White Throne.\n\nNow, some have protest by saying that the fear of hell is not good for\nmotivation, yet Jesus thought it was.  Paul thought it was.  Paul said, \n\"Knowing therefore, the terror of the Lord, we persuade men.\"\n\nToday, too much of our evangelism is nothing but soft soap and some of\nit is nothing but evangelical salesmanship.  We don't tell people anymore, that\nthere's such a thing as sin or that there's such a place as hell.  \n\nAs Jayne has said, this doesn't mean we have to come on so strong so as to hit\npeople over the head with a baseball bat.  Yet the fact remains, there is a\nplace called hell.  A place so fearful that God died to save us from having to\nexperience it.  Whatever you or I, as Christians, do, we should do whatever we\ncan to win people to the Lord, if for no other reason, to keep them from going\nto \"outer darkness.\".  \n\nJesus, in Mt. 25, tells us that He didn't prepare hell for people.  He prepared\nit for the Devil and his angels.  No where in the Bible do I read -anywhere,\nthat God predestined anybody to go to hell.  D.L. Moody use to say that the\nelect are the \"whosoever will\" and the nonelect are the \"whosoever wont's.\" \nWhether or not that's theologically sound, I couldn't defend, but its\npractical.  Jesus said to the people of Israel, \"Ye would not.\"  \n\nNow, some of you may not be students of the Bible, heck -some of you may not be\nChristians.  Have you ever said to somebody, \"I don't believe in hell.  I\nbelieve in the religion of Jesus.\"  But did you know that Jesus talked more\nabout hell than He did about heaven!  \"Oh I believe in the religion of the\nsermon on the mount.\"  You find hell taught by Jesus in the sermon on the\nmount.  You'll read that Jesus talked about the tree being cast into the fire. \nSeveral times he talks about hell and about judgment.  In fact, over and over\nin the synoptics, Matthew, Mark and Luke, Jesus talks about hell.  Not Isaiah. \nNot Moses.  Not John the Baptist, though he did, but Jesus, the Son of God. \nThe great Beloved One preached about hell because He loved people and didn't\nwant to see them go there.\n\nNow, if there is no hell then Jesus preached in vain.  It was our Lord Jesus,\nnot some angry Baptist preacher, that said, \"where the worm never dies, and\nwhere the fire never goes out.\"  Jesus said that.  It was Jesus who called hell\na \"furnace of fire.\"  It was Jesus that used the word, \"condemnation.\"  \"And\nthis is the condemnation, that men love darkness rather than light because\ntheir deeds are evil.  Jesus said that.  \n\nHow can we get it across to you that a loving, dying Jesus preached about hell?\n Not only that, but He went through hell.  That's what Calgary was all about. \nWhen my Lord was on the cross, darkness fell.  He called hell, \"outer\ndarkness.\"  \n\nDo you have this idea that hell is a place where the gamblers are gambling over\nhere, the drunks are getting drunk over there, and the prostitutes are\nprostituting their bodies over there?  That's not what hell is.  Hell's not a\nparty.  There's no fellowship there.  He called it \"outer darkness.\"  \"Outer\"\n-away from God.  \"Darkness\" -God is light.  \n\nNo when He was on the cross, He was made sin for you and for me.  God treated\nJesus the way sinners have to be treated.  That's is a sobering thought.  As my\nson would say, an \"awesome\" thought.  \n\n\"My God, My God why hast Thou forsaken me?\"  Hell is isolation.  There's no\nfellowship in hell.  There's no friendship in hell.  There's no loving embrace\nin hell.  There's no hand shake in hell.  There's no word of encouragement in\nhell.  \n\n\"I thirst.\"  It goes much deeper than physical thirst.  Hell is eternal craving\nwith no satisfaction.  The man whose life was lived for drugs, will crave it\neternally.  The man whose life was lived for the lust of a woman's body, will\ncrave it eternally -and not be satisfied.  One theologian has put it this way\nand I think it deserves merit.  What is hell?  Hell is just the kind of\nenvironment that matches the internal condition of the lost.  \n\nIn a recent post, I was trying to remember the founder of The Word of Life\nministries.  I've remembered his name, Jack Wertzen, and found that the\nillustration that I gave wasn't his.  His illustration was that he was talking\nto his barber and his barber's wife and daughter had just recently been saved\nand he was commenting about it to Jack.  \"They sing these songs and read Bible\nverses, and their praising this and that -I can't stand it!  Jack, do you think\nGod would send me to hell?\"  Jack answered by saying, \"Yes I think he would!\" \nOf course the barber said, \"What do you mean by that.\"  \"Well if you can't\nstand living at home with your wife and daughter who sing hymns and praises to\nGod now, what would you do in heaven where they'll do it for eternity?  You'd\nbe miserable.  Because God loves you, He'd put you where it would match what\nyou really are.\"   It makes a man think.\n\nThe crucifixion of Jesus Christ is a fact that necessitates the eternal\nexistence of hell because on the cross He performed an eternal act.  Don't ask\nme how, I don't know.  But He is God and He is the infinite/eternal and when He\ndied, He died an infinite/eternal death.  It is by that eternal act that He\npurchased eternal life for the \"whosoever wills.\"  He suffered eternal\njudgment.  \n\nA lot of people would like to detour around hell by saying \"Everybody is going\nto be saved eventually.\"  -universalism.  My Bible says no, He'll separate\nthem.  The sheep from the goats.  \".After you die there's a probationary period\nin which God prepares you for heaven.\"  No, my Bible says that \"It is appointed\nunto men once to die and then comes judgment.\"  Some of the cultist believe in\nannihilation.  After you die, sssswish.  Just like a mosquito you're squished\nout.  No, in Rev we are told that their is eternal existence in hell just as\nthere is in heaven.  \n\nI don't enjoy making these kind of statements and maybe you don't enjoy\nlistening to them, but we have to preach the entire Word of God.  -There is a\nplace called hell.  If I could give one verse of Scripture that could give any\nhope that people aren't going there, I'd give it to you, but I haven't found\nit.  That fact that there is a place called hell, the fact that our God is a\nGod of holiness and must judge sin, the fact that He has made us the kind of\ncreatures we are and therefore we're responsible, the fact that He has placed\nus in a \"uni\"verse that has purpose and design behind it, the fact that sin is\nsuch an awful thing and the fact that God Himself went through hell to save us\nfrom hell leads us to two applications.\n\n1)  As I've already mentioned.  If you are a Christian, you must worn others. \nIts not good enough to stop and fix their flat tire and not tell them that just\naround the bend the bridge is out.  \"Knowing therefore the terror of Lord, we\npersuade men.\"\n\n2)  If you haven't accepted Jesus are your Savior, you're taking an awful\nchance.  As I say to the Jehovah Witnesses (who no longer frequent my door), if\nyou are right and I am wrong, then I will have lived a good life and will die\nand cease to exist, but if I am right and you are wrong, then you will die and\nsuffer eternal damnation.  I don't mean to make fun at this point, but its like\nDirty Harry said, \"You've got to ask yourself, 'Do I feel lucky?'  Well do\nyou?\"  \"A man's got to know his limitations.\"  Don't be one of the \"whosoever\nwont's.\"  \n\n\"Because while I was yet a sinner, He died for me.\"\n\"There's no greater love than this, that a man lay down his life for another.\"\n--Rex\n \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6745, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: moore@email.ncsc.navy.mil (Jim Moore)\nSubject: RE: Can I Change \"\"Licensed To\"\" Data in Windows 3.1?\nOrganization: Coastal Systems Station\nLines: 27\n\n \nIn article <16APR93.02280936@vax.clarku.edu> rmohns@vax.clarku.edu writes:\n>This is in relation to a question concerning changing the registered to: \n>information of MS-Windows...\n>\n>In a previous article, 2a42dubinski@vms.csd.mu.edu wrote:\n>> \n>>\tahh, yes, this is a fun topic.  No, once the name is incribed on the\n>>disk, that is it, it is encoded.  Not even a HEX editor will find it.  You can\n>>write over the \"Licensed to:\", but you can't change the name underneth it.  I\n>\n>I can find it with a HEX editor, although I have not tried to overwrite it.\n>Are you sure it can't be?  You may be mistaken about this. (???)\n\nYou can change it. As part of a continuously downsizing Government\norganization, my code (branch) changes about once a year. I just\nfinished changing the registration information using Norton Utilities.\nI sent the original requester the hex offset into USER.EXE containing\nthe information, and his reply indicated he got several similar answers.\n\nAnd it's not encoded in any way. As for the legality, there's nothing\nthat keeps me from changing the information; it certainly doesn't reach\nout and alter the serial number printed on the inside of my manual.\n\n--\nJim Moore \nPanama City, FL\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6746, "properties": {"category": "sci.crypt", "text": "From: C445585@mizzou1.missouri.edu (John Kelsey)\nSubject: Corporate acceptance of the wiretap chip\nNntp-Posting-Host: mizzou1.missouri.edu\nOrganization: University of Missouri\nLines: 60\n\n \nstrnlght@netcom.com (David Sternlight) writes:\n>\n>>What follows is my opinion. It is not asserted to be \"the truth\" so no\n>>flames, please.  It comes out of a background of 20 years as a senior\n>>corporate staff executive in two Fortune 50 companies.\n>\n>>I'd be happy to use a crypto system supplied by the NSA for business, if\n>>they told me it was more secure than DES, and in particular resistant to\n>>attempts by Japanese, French, and other competitive companies and\n>>governments to break.\n>\n>>I'd be happy to do so even with escrowed keys, provided I was happy about\n>>the bona fides of the escrow agencies (the Federal Reserve would certainly\n>>satisfy me, as would something set up by one of the big 8 accounting firms).\n \n   I don't doubt that this will be the attitude of many corporate leaders.\nIt's understandable--most corporate execs don't know much about cryptology,\nand it's easy to get taken in by someone peddling snake oil.  And, the\nproposed scheme *is* a major improvement in telephone security to what\nexists now.\n \n   The problem is that, with any security scheme of this kind, you have to\nconcern yourself with the weakest link in the chain.  I suspect that NSA\nhas put a fairly strong encryption algorithm in this wiretap chip of theirs,\nprobably at least as strong as (say) DES in OFB-mode.  Unfortunately, the\nexistence of the key-registry system seems to make possible all kinds of\npossible attacks at a small fraction of the expense of trying to build (say)\na DES keysearch machine.\n \n   As originally described, it sounded like any police / court combination\ncould acquire the key for a given chip.  I hope that's not the case, since\nit would imply a glaring hole.  (How much does it cost to find *one* crooked\njodge and *one* crooked cop?  Especially for a foreign intelligence agency\nor organized crime boss?)  However, even if more intelligent schemes are used\nto allow access to the unencrypted phone conversations, there will be weak-\nnesses.  They may be very expensive, and very difficult.  But who would\ntrust his/her confidential information to an encryption scheme that, for\n(say) $100,000 could by cracked one time in a hundred?  (DES, for all the\ncomplaints about a 56-bit key, would probably cost several million dollars\nto build a keysearch machine for.)\n \n   How many million dollars would the confidential phone messages of\nthe GM headquarters be worth to Nissan, Chrysler, or Audi?  How about\nhome phones of major execs and important engineers and designers?\n\"Gee, Mr Jones, I understand you've had some financial problems lately.\nMaybe I can help...\"\n \n>>I'd trust something from the NSA long before I'd trust something from some\n>>Swiss or anybody Japanese.\n \n   Indeed, if NSA really designed the algorithm to be secure, it's very likely\nas secure as IDEA or 2-key DES.  However, the system as a whole isn't resistant\nto \"practical cryptanalysis.\"  In _The Puzzle Palace_, Bamford describes how\nseveral NSA employees were turned by foreign (presumably KGB) agents, despite\nsecurity measures that I doubt any Big 8 accounting firm could match.  And\nNSA confidential data was *not* subject to being requested by thousands of\npolice organizations and courts across the land.\n \n   --John Kelsey, c445585@mizzou1.missouri.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6747, "properties": {"category": "misc.forsale", "text": "From: smb@col.hp.com (Sam Bauer)\nSubject: >>For Sale: Waxworks\nOrganization: HP Colorado Springs Division\nLines: 67\nNNTP-Posting-Host: hpctdib.col.hp.com\n\n********************[ PC Game For Sale ]******************\n\nWaxworks by Horrorsoft/Accolade (5.25\")\t\t   $30\n\nBy the same folks who brought you Elvira I & II.  I played\nElvira I & II, and think that Horrorsoft has finally made\na very playable game with Waxworks.  The look and feel is\nroughly the same as in the Elvira games, though the real time\nfighting is a little easier to survive.  The first two games,\nespecially Elvira II: Jaws of Cerberus made it very tough to\nstay alive and hit-point restoring was very difficult.  This \nis not to say that Waxworks is a walk in the park, but it is\nquite fair, in that there is always some weapon to be found\nthat is quite effective, or hint given as to the proper fighting\nstrategy.  In one of the four wax works to be explored, there is \nno fighting at all (well almost none), though all four contain\nmoderately challanging puzzles.\n\nThe really interesting thing about this game is that it is really \nbroken up into four seperate RPGs, one for each of the four exhibits\nyou must enter.  In starting each one, your character is transported\nwith no objects to use, and experience level 1.  One exhibits traps\nyou inside a multi-level ancient Egyptian pyramid which you must \nescape by fighting, mapping and puzzle solving.  Another exhibit\ntraps you in a mine that has been taken over by creeping plant vines\nand pods, while the local humans have been transformed into plant\nzombies.  This is a single level maze that requires you to rescue\nsome humans, kill the head plant alien, and figuere out how to kill\nthe very tuff plant zombies that are always showing up.  This is\nperhaps the most horrifying exhibit.  Another exhibit puts you into\nJack The Ripper England where you appear by the corpse of a fresh Ripper\nvictim, and of course the police think you are responsible.  You must\navoid police and angry mobs to unravel the mystery of The Ripper and \nmeet him face to face - but first get a disquise.  The last exhibit\npus you in a graveyard where most of the challenge is in learning to \nstop the almost indestructible zombies.  \n\nOver all the VGA graphics and music are very effective in setting a \ncreepy tone for the game, as was the case for the Elvira games, though\ngameplay is much improved and makes for a much more enjoyable game.\nI heartily recommend it for RPG and Horror fans.   \n\n*********************************************************\n\n- All prices include shipping.\n- All games are in excellent condition unless otherwise stated.\n- US buyers only please.\n- All games will be shipped inside a box with packing, insured,\n  priority USPS.\n- All games include all original materials including box, manual,\n  disks, and registration unless otherwise noted.\n\nThe first responder offering asking price is guarenteed to\nget the game.  Those just asking questions get no priority until\nthey offer to buy the game.  Lower offers may be considered\nassuming no other offers at asking price are made.\n\n**********************************************************\n\n\n\n\n\n--\nSam Bauer\t|\tHewlett Packard Co.,   \n(719)-531-4460\t|\tNetwork Test Division   \nsmb@col.hp.com  |       Colorado Springs,CO   \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6748, "properties": {"category": "soc.religion.christian", "text": "From: wagner@grace.math.uh.edu (David Wagner)\nSubject: Re: Certainty and Arrogance\nOrganization: UH Dept of Math\nLines: 162\n\n\"Darren\" == Dr Nancy's Sweetie <kilroy@gboro.rowan.edu> writes:\n\nDarren> In an earlier article, I explained that what many people find\nDarren> arrogant about Christians is that some Christians profess\nDarren> absolute certainty about their beliefs and doctrines.\n\nand\n\nDarren> In short, the problem is that no matter how good your sources\nDarren> are, if any part of your doctrines or beliefs rest on your own\nDarren> thinking and reasoning, then those doctrines are suspect.\n\nThe point that Darren raises is a very Lutheran viewpoint.  \nWhile reason is a gift from God, it is also infected by sin.\nYet we do not reject reason entirely--and neither, I think, \ndoes Darren.  We need reason, as Darren himself has pointed\nout, to comprehend God's revelation of himself in the Bible.\nBut reason alone is not sufficient to comprehend and believe\nthe Word.  We need, first and foremost, faith.  For \"the sinful\nmind is hostile to God.  It does not submit to God's law,\n*nor can it do so*\"  (Romans 8:7).\n\nLuther accepted Scripture as the sole means of revelation\n(\"Sola Scriptura\"), but accepted the necessity of the use\nof reason (with faith) in comprehending that revelation.\nYet Luther also said, regarding baptism, \"But mad reason\nrushes forth, and, because Baptism is not dazzling like\nthe works which we do, regards it as worthless.\" (Large\nCatechism, Fourth part, Baptism).  To make matters more\ncomplicated, Luther was the sort of theologian that many \npeople would describe as an `absolutist'.  I've seen him \ndescribed as a `take no prisoners' theologian.\n\nWe might conclude, given these observations, that Luther\nwas inconsistent or mad.  And surely at least some have\ncome to that conclusion.  But it might be useful to\nrecall that Jesus was also called mad.  And Peter felt\ncompelled to defend himself and the apostles against\na charge of drunkenness on Pentecost.  So we as Christians\nought to be careful about rejecting Luther (or others) \nas mad.  Rather, we should imitate the Bereans, who\nexamined the Scriptures every day to see if what Paul\nsaid was true (Acts 17:11).\n\nThe basis for the confidence with which Luther, Peter, Paul, and many\nothers preached the gospel was not just reason, but faith and the Holy\nSpirit.  This is not faith divorced from reason, but a faith that\nguides, informs, and uses reason.  The Spirit enables us to know the\ntruth and to proclaim it boldly.  God does not want us to preach the\nmessage that \"I think that Jesus might have risen from the dead\" but\nrather \"I know that my redeemer lives!\"  (Job 19:25).  The Christian\ndoes not side with Pilate in saying \"What is truth?\" but rather\nfollows Christ, who said, \"In fact, for this reason I was born, and\nfor this I came into the world, to testify to the truth.  Everyone on\nthe side of truth listens to me\" (John 18:37).\n\nWe can know the truth because God has promised us that we can\nknow the truth.  Jesus said, \"If you hold to my teachings,\nyou are really my disciples.  Then you will know the truth,\nand the truth will set you free\" (John 8:31,32).  The Proverbs\nurge us \"Buy the truth, and do not sell it.\" (Pr 23:23).\nThe Psalmist prayed \"Do not snatch to word of truth from my mouth\"\n(Ps 119:43).  Evidently he believed that the word of truth\nwas in fact `in his mouth'.  \n\nYet we do indeed appear arrogant if our claim to the truth\nis motivated by self-glorification.  But if we present the\ntruth as the teachings of Scripture, revealed by the \nSpirit, and not our own invention, and if we stand ready\nto be proved wrong on the basis of Scripture, as Luther\ndid, then we are not arrogant, but humble.  We should humbly\ntrust in God's promise of truth, just as we trust in his\npromise of forgiveness.\n\nREXLEX> It is only because of God's own revelation that we can be \nREXLEX> absolute about a thing.\n\nDarren> But how far does that get you?  Once God's revelation stops,\nDarren> and your own reasoning begins, possibility for error appears.\n\nI agree that we must make a distinction between the clear teachings\nof Scripture, and the products of our own reason--even when such\nreasoning is based on Scripture.  However I think I would draw\nthe line of distinction more `reasonably'  :-)  and less `academically'\nthan you would.\n\nDarren> For example, let's suppose that our modern Bible translations\nDarren> include a perfect rendering of Jesus words at the Last Supper,\nDarren> and that Jesus said, exactly, \"This is my body.\"\n\nDarren> We'll presume that what he said was totally without error and\nDarren> absolutely true.  What can we be certain of?  Not much.\n\nDarren> At the moment he stops speaking, and people start\nDarren> interpreting, the possibility of error appears.  Did he mean\nDarren> that literally or not?  We do not have any record that he\nDarren> elaborated on the words.  Was he thinking of Tran- or Con-\nDarren> substantiation?  He didn't say. \n\nDarren is almost at the point of making a very Lutheran statement\nabout the Lord's supper.  The Lutheran approach is to say\nthat if Jesus said, \"This is my body,\" then that is what we\nshould believe.  Other interpretations are rejected simply because\nthey are not taught in Scripture.\n\nRecall that Jesus' words do not stand alone on this subject.  We also\nhave Paul's words in 1 Corinthians 11:17-34,--in which he passed on to\nus, what he received from the Lord.  In particular he said, \"For\nwhenever you eat this bread and drink this cup, you proclaim the\nLord's death until he comes.\"  By these words we should believe that\nthe bread that we eat in the Lord's Supper really is bread (as well as\nthe Lord's body)--as our senses in fact tell us.  Does this *prove*\nthat tran-substantiation is false?  I suppose someone could say that\nPaul spoke metaphorically of the Lord's body as bread, simply because\nthat is the way the body appears when we eat it.  But this thought is\nfound nowhere in Scripture.  So we reject it.  Thus the primary\nreason for rejecting tran-substantiation is not that we can\nprove it false, but that it is simply not found in Scripture.\n\n[side remark]\nI've been told that the Lutheran doctrine on real presence is\ncon-substantiation.  But it has been non-Lutherans who have told\nme this.  We tend not to use the word.  I almost think that this\nis used more by professors of comparative religion, who need labels\nto compare Catholic, Lutheran and Reformed teachings on the Lord's\nSupper.  But almost every church wants to call their own teaching\n\"real presence\" because that was the traditional teaching of \nthe church.\n[end side remark]\n\nDarren> When Christians speak as if they believe their own reasoning\nDarren> can never lead them astray -- when we implicitly claim that we\nDarren> are infallible -- the non- Christians around us rarely believe\nDarren> that implicit claim.  Witnessing is hardly going to work when\nDarren> the person you are talking to believes that you are either too\nDarren> foolish to recognise your own limits, or intentionally trying\nDarren> to cover them up.\n\nThis is precisely why Christians should not rely on rationalizations\nin their witnessing.  It is far better to take the approach,\n\"I'd like to show you what Scripture says.  You decide for \nyourself whether to believe it or not.\"\n\nDarren> `REXLEX' suggested that people read _He is There and He is Not\nDarren> Silent_, by Francis Schaeffer.  I didn't think very highly of\nDarren> it, but I think that Mr Schaeffer is grossly overrated by many\nDarren> Evangelical Christians.  Somebody else might like it, though,\nDarren> so don't let my opinion stop you from reading it.\n\nDarren> If someone is interested in my opinion, I'd suggest _On\nDarren> Certainty_, by Ludwig Wittgenstein.\n\nAs long as we're trading references, I'd like to suggest Dr. Siegbert\nBecker's paperback, \"The Foolishness of God: The place of reason\nin Lutheran theology,\" published by Northwestern Publishing House.\nThis book was based on Becker's doctoral thesis at the University\nof Chicago.\n\nDavid Wagner\t\t\t\"Not by might, nor by power,\na confessional Lutheran\t\t    but by my Spirit,\"\n\t\t\t\t\tsays the LORD Almighty.\n\t\t\t\tZechariah 4:6.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6749, "properties": {"category": "sci.crypt", "text": "From: tuinstra@signal.ece.clarkson.edu.soe (Dwight Tuinstra)\nSubject: Clipper will corrupt cops (was WH proposal from Police point of view)\nReply-To: tuinstra@signal.ece.clarkson.edu.soe\nOrganization: Sun Microsystems, Inc.\nLines: 93\nNntp-Posting-Host: signal.ece.clarkson.edu\n\nIn article 735230663@fbihh, bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev) writes:\n>strnlght@netcom.com (David Sternlight) writes:\n>\n>> dwight tuinstra posts a very interesting message in which he comments on the\n>> effects of the Clipper chip on state and local police. Actually, reading\n>> between the lines, it could be a very good thing for civil liberties in one\n>> respect, since it will at least prevent cowboy cops and cowboy state and\n>> local agancies from reading your traffic if they tap it illegally.\n>\n>Instead of reading between the lines, try to think a little bit. OK,\n>if that's way too difficult to you, here are some hints.\n>\n>Indeed, the new proposal imposes some additional burocratic burden on\n>the local police, if they badly want to tape the magic cookie recipie\n>that your mom is telling you on the phone. So, guess what they will\n>do? Propose that the new technology is removed? Or implement some\n>\"facilitations\"? Of course, you won't want to wait until they get the\n>approval from two different agencies to decrypt the conversation\n>between two child molesters, because meanwhile those two child\n>molesters might be conspiring about molesting your child, right? So,\n>there should be some way for them to get access to those keys\n>-quickly-, right? Like, they could have a copy of the database, and\n>worry about a warrant later...\n\nI perhaps should have been clearer and more concise in my post, but that's\nwhat I get from posting at 1 am...\n\nThe central point I made is that local/state police agencies attempting to\nplay by the rules and get warrants, legit escrowed keys, etc., may find\nthemselves at the mercy of bureaucratic inertia and agency infighting\nat the federal level.  \n\nI disagree that this would assist civil liberties by hobbling the cowboy\ncops.  It would be a strong incentive, as Vesselin points out, for more\npolice agencies to \"go rogue\" and try to get keys through more efficient\n(but less Constitutional) means.  Notice what the release said:\n\n   Q:   Suppose a law enforcement agency is conducting a wiretap on\n        a drug smuggling ring and intercepts a conversation\n        encrypted using the device.  What would they have to do to\n        decipher the message?\n\n   A:   They would have to obtain legal authorization, normally a\n                                                       ^^^^^^^^^^\n        court order, to do the wiretap in the first place.\n        ^^^^^^^^^^^\n\nThe clear implication is that there are \"legal\" authorizations other\nthan a court order.  Just how leaky are these?  (And who \nknows what's in those 7 pages that authorized the NSA?).  There\nmay well arise a black market of sorts _within_ police agencies, in which\nkeys are traded.  Furthermore, the police will be in an excellent\nposition to carry out this kind of thing without being caught.  They\nalready have a communication infrastructure with secure portions.  There\nare a few laws that I know of, that limit citizens' rights to access\npolice communications (or use the information they get).  It may be\nvery difficult to prove police misuse -- the fact that you have such\nevidence may itself be evidence that YOU have broken some other law.\n\nThrow in private detectives, who have even fewer policy/constitutional\nrestrictions.  Also consider mercenaries who've \"retired\" from intelligence\nagencies.  William Gibson must be loving it.  Great story material.\n\nDon't think it'll happen?  \n\nWell, consider e.g. the Michigan State Police, generally a very professional\norganization, which for years kept \"Red Files\" on thousands of suspected \ncommies, knowing full well it was not consititutional.  The standards\nof evidence were just about zero: people were in the file because they\nhappened to park near a place where, say, a US-China People's Friendship\nrally was happening -- the police went around writing down license\nplate numbers.  If you happened to be visiting a friend who lived near the \nmeeting place, well, the state police wound up filing you as a subversive.\n(They were eventually found out and a court ruled against carrying on any\nmore such nonsense.  I believe thay may have had to destroy the tapes\nas well.)\n\nEven with well-meaning cops (and I'm sure there are many), there will \nbe strong pressure to bend the constitutional safeguards.  We don't need\nto assume corrupt or unbalanced officers -- it will all be in the interest \nof enforcing sensible laws, saving lives, and protecting property.  \nCompromises will be made by well-meaning officers, facing what (to them) \nwill be a moral dilemma.\n\nClipper will make criminals out of cops.  Do we want to do this to our\npolice forces?\n\n+========================================================================+\n|  dwight tuinstra             best:  tuinstra@sandman.ece.clarkson.edu  |\n|                         tolerable:  tuinstrd@craft.camp.clarkson.edu   |\n|                                                                        |\n|        \"Homo sapiens: planetary cancer??  ...  News at six\"            |\n+========================================================================+\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6750, "properties": {"category": "sci.space", "text": "From: sysmgr@king.eng.umd.edu (Doug Mohney)\nSubject: Re: Moonbase race\nOrganization: Computer Aided Design Lab, U. of Maryland College Park\nLines: 13\nReply-To: sysmgr@king.eng.umd.edu\nNNTP-Posting-Host: queen.eng.umd.edu\n\nIn article <C5tEIK.7z9@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n\n>Apollo was done the hard way, in a big hurry, from a very limited\n>technology base... and on government contracts.  Just doing it privately,\n>rather than as a government project, cuts costs by a factor of several.\n\nSo how much would it cost as a private venture, assuming you could talk the\nU.S. government into leasing you a couple of pads in Florida? \n\n\n\n    Software engineering? That's like military intelligence, isn't it?\n  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.317+0000", "event": "documents", "entityId": 6751, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: New Study Out On Gay Percentage\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 46\n\n>>The article also contains numbers on the number of sexual partners.\n>>The median number of sexual partners for all men 20-39 was 7.3.\n>>Compared to the table I have already posted from Masters, Johnson,\n>>and Kolodny showing male homosexual partners, it is apparent that\n>>homosexual men are dramatically more promiscuous than the general\n>>male population.  It's a shame that we don't have a breakdown for\n>>straight men vs. gay/bi men -- that would show even more dramatically\n>>how much more promiscuous gay/bi men are.\n>>--\n>\n>Isn't is funny how someone who seems to know nothing about homosexuality\n>uses a very flawed (IMHO) source of information to pass jusgement on all\n>homosexual and bisexual men.\n\nOnly the most comprehensive survey on sexuality in 50 years.\n\n>  It would seem more logical to say that since\n>the heterosexual group of men is larger then the chances of promiscuity\n>larger as well.  In my opinion, orientation has nothing to do with it.\n>\n\nChance and size have nothing in common on the multimillion number scale we are \ntalking about.\n\n\n>Men are men and they all like sex.  I am a gay male.  I have had sex three\n>times in my life, all with the same man.  Before that, I was a virgin.\n>\n>So... whose promiscuous?\n>\n\nNobody said that you were.  Chill.\n\n>Just because someone is gay doesn't mean they have no morals.  Just because\n>someone is heterosexual doesn't mean they do.  Look at the world....\n\nWell said.\n\n>Statistics alone prove that most criminals are by default hetero...\n>\n\nActually, the Kinsley Report in 1947(or 48?) used a high percentage of \nprisoners so...........\n\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6752, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: Press Briefing by George Stephanopoulos 4.5.93\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 581\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\n\n\n                           THE WHITE HOUSE\n\n                    Office of the Press Secretary\n\n_____________________________________________________________________\nFor Immediate Release                                   April 5, 1993\n\n\n                            PRESS BRIEFING\n                       BY GEORGE STEPHANOPOLOUS\n\n\n                          The Briefing Room\n\n\n 10:10 A.M. EDT\n\t     \n\t     MR. STEPHANOPOULOS:  As you know, the President is soon \nto be on his way, on Amtrack to Camden Yards.  He'll be throwing out \nthe first pitch.\n\t     \n\t     Q\t  It's MARC, the Maryland Area Transit, it's not \nAmtrack.\n\t     \n\t     MR. STEPHANOPOULOS:  Oh, it's not Amtrack?  Well, he's \ngoing from Union Station, you're right.  Excuse me.\n\t     \n\t     Q\t  George, what exactly are you prepared to do to \nbreak the logjam with  ??? Senate?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, as you know, there are \ndiscussions between Senator Mitchell and Senator Dole this morning, \nand I think that the President is going to continue to make the point \nthat he believes that our investment package, our jobs package needs \nto be passed as quickly as possible.  We need this investment for \nsummer jobs, for immunization, for highway construction, for the \nimportant programs that will put people back to work right away this \nsummer.  And the President continues to believe his program should be \npassed.\n\t     \n\t     Q\t  Will he compromise, that's the question?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, as you know, the discussions \nare going on this morning in the Senate betwen Senator Mitchell and \nSenator Dole, let's see what they come up with.  But the President \nbelieves his jobs program should go forward.\n\t     \n\t     Q\t  George, would the President be willing to accept $8 \nbillion for one year, which apparently appears to be the compromise \nbeing offered by --\n\t     \n\t     MR. STEPHANOPOULOS:  Well, I don't know what is being \noffered by either side.  The Senate discussions are going on right \nnow, let's see what happens today.\n\t     \n\t     Q\t  Would he go that far -- no matter what the \nRepublicans have offered so far, would he go that far, $8 billion per \nyear?\n\t     \n\t     MR. STEPHANOPOULOS:  The President believes that his \nprogram should be passed at this time.  Clearly, we're going to be \nwilling to listen to what the Senators might or might not be able to \ncome up with, but I'm not going to get into figures right now.  Let's \nsee what happens.\n\t     \n\t     Q\t  It's reasonable to assume, isn't it, from what has \nhappened so far that a compromise is going to be necessary in order \nto get a vote?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, the Republicans seem more \nintrested in stopping progress on the President's jobs bill, than in \ndoing something to create --  MR. STEPHANOPOULOS:  Well, the \nRepublicans seem more interested in stopping progress on the \nPresident's jobs bill than in doing something to create real action, \nreal jobs this summer for the American people.  I think there's no \nquestion about that.  There's been some frustration of legislative \nactivity over the last few days.\n\t     \n\t     Q\t  So, you'll need to compromise to get your package \nthrough?\n\t     \n\t     MR. STEPHANOPOULOS:  We'll see what happens with the \nconversations between Senator Mitchell and Senator Dole this morning.\n\t     \n\t     Q\t     prepared to compromise --\n\t     \n\t     MR. STEPHANOPOULOS:  The President's prepared to listen \nto what Senator Mitchell has to say this morning after his meeting \nwith Senator Dole. \n\t     \n\t     Q\t  Does he feel that he has been defeated in his --\n\t     \n\t     MR. STEPHANOPOULOS:  Not in the least.  In fact, he's \nbeen very successful so far in the beginning of his term.\n\t     \n\t     Q\t  How?\n\t     \n\t     MR. STEPHANOPOULOS:  He passed his budget in record \ntime, in six weeks, and it's a budget which reduces the deficit by \n$500 billion over five years.  And it's a budget which provides for \nimportant investments in our future.  Right now we've also had strong \npassage of his jobs program through the House.  Simply because a \nminority of Republicans in the Senate choose to perpetuate gridlock \nand hold up action on the President's jobs program is not a sign that \nhe is not succeeding overall.\n\t     \n\t     Q\t  He can't beat this, can he?\n\t     \n\t     Q\t  The fact is they can do that?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, the Republicans can stop \naction.  There's no question about that.\n\t     \n\t     Q\t  What are you going to do about it?\n\t     \n\t     Q\t  George, what do you know about these alleged notes \ntaken by Boris Yeltsin during one of the meetings in which it appears \nthat the President told Boris Yeltsin not to trust the Japanese; that \nwhen they say yes they mean no?\n\t     \n\t     MR. STEPHANOPOULOS:  I think that's a complete \nmisreading of what happened at the meeting.  The context of the \nconversation was that President Clinton was actually reassuring \nPresident Yeltsin at the time about his conversations with Prime \nMinister Miyazawa over the Kuril Islands and the Prime Minister's \nbelief that Japan would play a constructive role in the G-7 process.  \nI mean this was a casual comment about Japanese courtesy and \netiquette but overall it was in the context of a conversation where \nhe was reassuring President Yeltsin that he believed the Japanese \nwere serious about their commitment to the G-7 process.\n\t     \n\t     Q\t   Are you saying that the President said that when \nthe Japanese say yes they mean no?\n\t     \n\t     MR. STEPHANOPOULOS:  That's not -- I don't know the \nexact words and there was a much longer discussion about he did say \nsomething along the lines that he believes that on this issue Prime \nMinister Miyazawa intends to really go forward with the G-7 process.\n\t     \n\t     Q\t  Have there been any attempts to explain this to the \nJapanese because apparently the Japanese press has picked this up and \nthere appears to be --\n\t     \n\t     MR. STEPHANOPOULOS:  I've seen the reports in the \nJapanese press and it actually does put the situation in context.  It \ndoes talk about the Japanese -- understanding the Japanese points of \nview.  I don't think it's going to be a problem.  I believe that \nthere may have been some diplomatic context just to clear things up \nbut I'm not positive.\n\t     \n\t     Q\t  George, was the specific comment that was made \nspecific to the Kuril Island situation or was it a general \nobservation on Japanese etiquette?\n\t     \n\t     MR. STEPHANOPOULOS:  The discussion was about --\n\t     \n\t     Q\t  The specific comment is what I'm asking about that \nhas alleged to have been translated from the Russian notes, \"when the \nJapanese say yes they mean no.\"\n\t     \n\t     MR. STEPHANOPOULOS:  Well, it was a combination.  I mean \nI don't think that's the whole sentence.  I think that the specific \ncomment was a broad, general observation followed up by a specific \nfinish to the sentence where he said in this case he believes that \nPrime Minister Miyazawa means to keep the commitment.\n\t     \n\t     Q\t  Was he saying it facetiously first?\n\t     \n\t     MR. STEPHANOPOULOS:  I think it was just a casual \nobservation.\n\t     \n\t     Q\t  And then you say diplomatic contacts were made to \nclear it up.  Has the President sent a message?\n\t     \n\t     MR. STEPHANOPOULOS:  No, I don't think the President \nspoke; I believe that Secretary Christopher has made some calls but \nI'm not sure exactly how many.\n\t     \n\t     Q\t  Well, this obviously is a bigger deal than you're \nmaking it out to be if Christopher has had to make some calls.\n\t     \n\t     MR. STEPHANOPOULOS:  No, no.  It was just that we got \nthe reports in Vancouver and the Secretary wanted to make sure that \nit was understood and make sure there was absolutely no \n\t     MR. STEPHANOPOULOS:  -- reports in Vancouver, and the \nSecretary wanted to make sure that it was understood, and make sure \nthere is absolutely no misunderstanding, and I don't believe there is \non.\n\t     \n\t     Q\t  What is our position about the Japanese?  That they \nmay have to say one thing, but actualy mean another?\n\t     \n\t     MR. STEPHANOPOULOS:  No.  The position on the Japanese \nis as the President stated to President Yeltsin throughout the two \ndays.  He said that he had had a good conversation with Prime \nMinister Miazawa prior to the Summit.  He reiterated the U.S. \nposition, the long-standing support for the Japanese position on the \nKuril Islands, but also reiterated Prime Minister Miazawa's \ncommitment to move forward on the G-7 process and to play a \nconstructive role.  And I think President Yeltsin was very glad to \nhear that.\n\t     \n\t     Q\t  After listening to Secretary Christopher on Iraq \nfor the last few days, I'm a little confused.  What is the U.S. \npolicy?  Do you want to see Saddam Hussein overturned?\n\t     \n\t     MR. STEPHANOPOULOS:  It's the same policy that Secretary \nChristopher has reiterated, and all of the U.S officials have \nreiterated.  We expect full and complete and unequivocal compliance \nwith all U.N. resolutions.  Right now we do not have that compliance.\n\t     \n\t     Q\t     throwing it out further that if Iraq complies, \nSaddam can't stay in office?\n\t     \n\t     MR. STEPHANOPOULOS:  Right.  I think that that's -- our \njudgment is that it is not possible for Saddam Hussein to comply with \nthe resolutions and stay in power.  But the important point is that \nwe expect compliance by Iraq with all U.N. resolutions, and we will \ncontinue to demand it.\n\t     \n\t     Q\t  And are you concerned the Iran will become the \ndominant power in the area --\n\t     \n\t     MR. STEPHANOPOULOS:  Secretary Christopher has also \nspoken to Iran over the last several days, and he says we also expect \nfull Iranian compliance with all international norms, and stopping \nsupport of terrorism.\n\t     \n\t     Q\t  That's a very glib statement that he won't stay in \npower if he complies with U.N. resolutions.  On what logic do you \nbase that?\n\t     \n\t     MR. STEPHANOPOULOS:  Right now Saddam Hussein is not \ncomplying with the U.N. resolutions at all.  He is not respecting the \nrights of his people, as is required by the U.N. resolution.  He is \nnot fully complying with all the resolutions regarding inspections.  \nHe is not fully complying with all the resolutions regarding \narmaments.\n\t     \n\t     Q\t  Well, when do you think that if he did comply he \nwould be out of power?\n\n\t     MR. STEPHANOPOULOS:  Well, right now his power rests on \nthe repression of his people.  If he stopped doing that it would make \nit more difficult for him to stay in power.\n\t     \n\t     Q\t  George, back on the stimulus package, why is it \nthat you and the President accuse the Republicans of playing pure \npolitics and perpetuating gridlock?  Why is it that -- what evidence \ndo you have that they just don't have a genuine idealogical \ndifference with you that's in good faith?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, the fact that several times \nin the past the Republicans, many of the ones who are now leading the \nfight for the filibuster, have supported the very funding they now \nseek to stop, most especially, the highway funding.  \n\t     \n\t     Q\t  George, in regards to that, some of the moderate \nRepublicans said that the White House erred by not being more open to \nthem during the -- while the plan was put together, that they had \none, sort of, proforma meeting between the White House and the Senate \nRepublicans, and that was it.  Does the Administration look back and \nthinks perhaps it could have done a better job of working with some -\n-\n\t     \n\t     MR. STEPHANOPOULOS:  Well, I'm not sure that it's true \nthat there was only one meeting.  I mean, the President met with the \nRepublican leadership on at least two occasions before the \nintroduction of his package.  He met with the entire Senate \nRepublican Caucus also for lunch, and went up there.  We are \ncontinually in contact with as many Republicans as we can find who \nhave an interest in the President's package.  We are interested in \nwhat they have to say, as well.  But we believe that this program is \nimportant, and we're going to continue to fight for it.\n\t     \n\t     Q\t     your all or nothing, do it with the Democrats \nalone strategy, did you maybe miscalculate the ability to get it \nthrough?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, I mean, I think that there is \nno question that under the Senate rules a determined minority can \nfrustrate activity.  I mean, there is just no question about that.  \nYou only need 40 plus one to keep going.  40 plus one to keep going \nand to stop any action, and that's what the Republicans are doing.\n\t     \n\t     Q\t     going to rethink the way you attempt to get \nother things passed as you go through this process for the rest of \nthe summer?\n\t     \n\t     Q\t     work with Republicans and try to woo some \nRepublicans into your camp?\n\t     \n\t     MR. STEPHANOPOULOS:  I think we're going to continue to \nlook for the support of Republicans whenever we can get it on the \nPresident's intiatives?\n\t     \n\t     Q\t  But on this one -- how are you going to do it \ndifferently than you did it on this one because on this one you \nreally did stiff the Republicans from the beginning and made it clear \nthat it was a Democratic majority that would get this through and \ncould get it through and you really didn't need Republican votes?  \nAre you going to take a different tack when you have to go for \nparticular votes?  When you have to go through --\n\t     \n\t     MR. STEPHANOPOULOS:  I can't see into the future and \nunderstand every possible turn in the legislative road.  Clearly the \nPresident's going to continue to reach out when he can.\n\t     \n\t     Q\t  You don't have any regrets then about the way you \nhave handled it up to now and you don't plan any changes in your \napproach in dealing with the Republicans in Congress based on this \nexperience?\n\t     \n\t     MR. STEPHANOPOULOS:  Obviously the President would like \nhis package passed as quickly as possible and he's going to continue \nto press for that.  We will continue to reach out to Republicans, \nthere's not question about that.  And we'll continue to reason with \nthem and try and find appropriate avenues for cooperation.  In this \ncase the Republicans have chosen to unify around a filibuster, around \na plan to frustrate action not a plan to move forward.\n\t     \n\t     Q\t  They're being denied any other legislative means of \nputting their proposals forward.\n\t     \n\t     MR. STEPHANOPOULOS:  I think they're being --\n\t     \n\t     Q\t     any ideas.\n\t     \n\t     MR. STEPHANOPOULOS:  I think their amendments are being \ndefeated; I don't know that they're being denied.\n\t     \n\t     Q\t     to present them.\n\t     \n\t     MR. STEPHANOPOULOS:  That's not exactly true.  I mean \nthey get the votes --\n\t     \n\t     Q\t     that theirs can be passed though by the \nparliamentary rules under which they're playing.\n\t     \n\t     MR. STEPHANOPOULOS:  Unless they get a majority in \nsupport all the way around, no, that's not exactly true.\n\t     \n\t     Q\t  George, one more on Iraq.  Is the administration \nbacking any of the Iraqi opposition?  Grooming any new leadership?\n\t     \n\t     Q\t     backing any of the Iraqi -- leadership?\n\t     \n\t     MR. STEPHANOPOULOS:  Oh, I -- again, we're pressing for \nIraqi compliance.  I don't know if we can get into the business of \ngrooming leadership.  I believe there have been some contacts, at \nsome levels, with Iraqi opposition groups.  I don't know  about \nanything recently.\n\t     \n\t     Q\t     Jesse Jackson, who, of course, is not the \nPresident's best friend, has, however, been told that there is to be \nsome kind of town meeting, or some kind of involvement by the \nPresident, pre-empted the ball game -- Los Angeles.  Will he consider \nsomething like that, or any other kind of intervention there?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, as you know, the President \nappointed Commerce Secretary Ron Brown, about 10 days ago, to be a \nspecial envoy to California, and coordiante cabinet activities around \nthe California economic situation, including the situation in Los \nAngeles.  \n\t     \n\t     I believe there will also be visits out to Los Angeles \nby the Education -- or have been visits by the Education Secretary, \nMr. Riley.  I believe that Transportation Secretary Pena and HUD \nSecretary Cisneros are also going out.  And there may be other visits \nby Cabinet officials over the next several days and weeks.  I \nwouldn't rule out the possibility of a visit by President Clinton to \nCalifornia.  Obviously, he is following the situation closely, and is \nconcerned about making sure that we make the right long term policy \ndecisions that will help create the kind of economic opportunities \nwhich help prevent disturbances.  But we're going to continue to \nwatch it.\n\t     \n\t     Q\t  George, as a follow-up, Reverend Jackson is also \nsupposed to be outside the ball park today, in Baltimore, with a \ngroup of supporters protesting the lack of minorities in baseball \nmanagement.  Does the President have a position on that?\n\t     \n\t     MR. STEPHANOPOULOS:  The President has received \ncorrespondence from Reverend Jackson.  I know that Reverend Jackson \nhas also spoken with the White House Chief of Staff, Mack McLarty.  \nHe clearly raises serious questions.  There has been some progress in \nbaseball over the last several years, but still not enough.  But the \nPresident intends to continue to go to the ball game.\n\t     \n\t     Q\t  Is he going to say anything about it today, or see \nReverend Jackson while he's out there?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know if he is going to see \nthem, but as I said, the President believes that Reverend Jackson has \nraised some serious questions, and it's something that, as I said, \neven though there has been progress, it's clearly not enough.\n\t     \n\t     Q\t  Did Reverend Jackson ask him not to go to the ball \ngame?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm not sure about that.  I believe \nthe characterization the Reverend Jackson is talking about is an \ninformational pickett.  I don't know that he asked him not to go to \nthe ball game, but he sent a long, detailed, formal letter outlining \nhis concerns with the situation in major league baseball and the \nPresident read it.\n\t     \n\t     Q\t  George, the Orioles are playing the Rangers, the \nmanaging partner of the Rangers is George W. Bush.  Is he going to be \nthere, and is he going to meet with the President?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know.\n\t     \n\t     Q\t  What is the Mubarak schedule?\n\t     \n\t     MR. STEPHANOPOULOS:  I know that President Mubarak is \ncoming tomorrow morning for a working meeting, they will have a \nlunch, and I believe that he is having dinner tonight with Vice \nPresident Gore.\n\t     \n\t     Q\t  And joint statements tomorrow --\n\t     \n\t     MR. STEPHANOPOULOS:  I believe so, yes.  At the end, \nyes.\n\t     \n\t     Q\t  Is there evidence, George, that the Egyptians did \nwarn the U.S. about a potential terrorist bombing -- terrorist \nactivities?\n\t     \n\t     MR. STEPHANOPOULOS:  As reported in The New York Times, \nI mean, I think that President Mubarak did say that there has been \ngeneral conversations with the Egyptians, as there have been for a \nlong period of time.  We do have general intelligence sharing, I \nmean.  But President Mubarak was very careful to point out that there \nwas no specific information on this visit that was passed forward.  \nThe President will continue to investigate the situation, but he also \nreiterates his belief that we cannot tolerate terrorism of any kind.\n\t     \n\t     Q\t  George, he did make specific -- or the Egyptians, \napparently, did issue specific warnings about this individual who, \nforgive me --this individual who, forgive me the name escapes me at \nthe moment, and said the Egyptians were more or less rebuffed in \ntheir attempts to get some kind of action.\n\t     \n\t     MR. STEPHANOPOULOS:  Again, I don't know if I would \nagree with your characterization of the Mubarak interview.  He did \nsay that they gave general warnings about the possibility of a \nnetwork in the United States and upon which we took appropriate \naction.  But there was no specific information on this specific \noperation at all.\n\t     \n\t     Q\t  So, the White House doesn't feel that any of the \nlaw enforcement agencies whether it be the CIA or FBI who would have \nreceived this kind of information was lax or derelict in its duty in \nnot pursuing some kind of --\n\t     \n\t     MR. STEPHANOPOULOS:  No, not at all.\n\t     \n\t     Q\t  What's next with Serbia?  It got only a passing \nmention in the news conference yesterday --\n\t     \n\t     MR. STEPHANOPOULOS:  You didn't get to ask your \nquestion.\n\t     \n\t     Q\t  Yes, exactly.  Was there any agreement on concerted \naction between the two countries?  And even if there wasn't, what \ndoes the U.S. do next?\n\t     \n\t     MR. STEPHANOPOULOS:  I think the U.S. is clearly going \nto move forward in the U.N. today continuing discussions with our \nallies on a sanctions resolution and we'll continue to look for ways \nto press the Serbians to come to the negotiating table and sign an \nagreement.\n\t     \n\t     Q\t  George, why do you think sanctions is still an \noption?  I mean the Serbians make it clear that at least the \nleadership is surviving just fine and they feel like they can wait \nyou out and even the administration officials we had in the other day \nsaid there's no evidence that they're going to have an effect any \ntime soon.  The Bosnian Serbs have said no to the peace plan.  When \ndoes no mean no and you have to do something different?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, I mean we are doing something \ndifferent.  We're moving forward on further sanctions through the \nU.N. and those discussions will continue.  We're going to continue to \ntry and tighten the noose on Serbia, and I think that every \nopportunity we have to do that will have an effect over time.\n\t     \n\t     Q\t  Are we looking again at lifting the arms embargo? \nMR. STEPHANOPOULOS:  The President has said that this is something \nthat is under consideration.\n\t     \n\t     Q\t  George, do you have any more on Hugh Rodham's \ncondition, how he's doing?\n\t     \n\t     MR. STEPHANOPOULOS:  As far as I know nothing's changed.\n\t     \n\t     Q\t  George, -- week after Mr. Mubarak?\n\t     \n\t     MR. STEPHANOPOULOS:  It's a little unclear.  I think \nwe'll be able to get you more either tonight or tomorrow morning \nafter the Mubarak visit.\n\t     \n\t     Q\t  Is he going somewhere for Easter?\n\t     \n\t     MR. STEPHANOPOULOS:  Not that I know of.\n\t     \n\t     Q\t  What more can you tell us about the additional aid \nto Russia that the President plans to ask Congress about?\n\t     \n\t     MR. STEPHANOPOULOS:  He's going to be consulting with \nthe Congress and with our G-7 partners over the next couple of weeks.  \nI know that he spoke last evening with Congressman Gephardt and their \ndelegation before the -- the congressional delegation meets with the \nRussians this week and those consultations will continue over the \nnext several weeks.\n\t     \n\t     Q\t  Do you expect that package to be of the magnitude \nof the one announced Sunday?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm not going to discuss the \nmagnitude.\n\t     \n\t     Q\t  How about the list of Cold War restrictions, where \ndo you stand on that --\n\t     \n\t     MR. STEPHANOPOULOS:  As the President said yesterday, \nhe's going to be looking for that list from the Congress this week \nand reviewing it.  He believes -- he's going to try and get it this \nweek and he's going to review the list, and we're going to take a \nhard look at it.\n\t     \n\t     Q\t  But they're making it up?  I mean it's no White \nHouse involvement, Congress is compiling this list?\n\t     \n\t     MR. STEPHANOPOULOS:  I think he's going to talk to the \ncongressional leaders about compiling the list but I'm certain we'll \nbe able to get our own researchers working as well.\n\t     \n\t     Q\t  George, isn't lifting the arms embargo more of a \nprobability than a possibility?\n\t     \n\t     MR. STEPHANOPOULOS:  It's something that's under \ndiscussion.\n\t     \n\t     Q\t  Secretary Christopher has said that it's a matter \nof time and -- for months before that happens.\n\t     \n\t     MR. STEPHANOPOULOS:  Again, all I can say is that it's \nsomething that the President is reviewing.  Right now we're working \nwith our allies in the U.N on a sanctions resolution, and we'll \ncontinue to review other matters.\n\t     \n\t     Q\t  George, can you tell us anything about the schedule \nthis week?  Any travel?\n\t     \n\t     MR. STEPHANOPOULOS:  They just asked about that.  I \ndon't have anything more beyond tomorrow's visit with Mubarak right \nnow.\n\t     \n\t     Q\t  Are there consultations, George, with any Jewish \nAmerican organizations concerning Jackson-Vanick?\n\t     \n\t     MR. STEPHANOPOULOS:  As you know the National Conference \nof Soviet Jewry has a list of, I believe, \n\t     MR. STEPHANOPOULOS:  -- as you know, the National \nConference of Soviet Jewry has a list of, I believe, 200 Refuseniks.  \nWe'll certainly take a look at that and continue appropriate \ndiscussions.\n\t     \n\t     Thanks.\n\n\n                                 ###\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6753, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: guyd@austin.ibm.com (Guy Dawson)\nSubject: Re: DX3/99\nOriginator: guyd@pal500.austin.ibm.com\nOrganization: IBM Austin\nLines: 32\n\n\nIn article <1993Apr3.163556.24998@aio.jsc.nasa.gov>, mancus@sweetpea.jsc.nasa.gov (Keith Mancus) writes:\n> In article <1993Apr3.011823.22935@kpc.com>, pcarmack@gimp.kpc.com (Phil Carmack) writes:\n> > ....there are people who are performance driven enough to do it.\n> > If it weren't so people wouldn't buy Pentium(tm) systems in the first\n> > place since they could buy a 486DX3/99 that would run their existing \n> > applications faster.  Certainly a 486DX3/99 is in the same \"league\" as\n> > a Pentium(tm).\n>  \n>   Is the 486DX3/99 anything more than a myth?  I haven't heard of it\n> from any source that I trust, and I sure don't see any ads for DX3/99\n> machines in Computer Shopper.  Intel is pretty busy with the Pentium\n> right now; I can't seem them introducing their own competition.\n> \n\nIBM has displayed a 486DX3/99 as a *TECHNOLOGY DEMO*.\n\nThis effectivly means - \"here's some neat technology\". It is not\na commitment to make such an item...\n\n> -- \n>  Keith Mancus    <mancus@butch.jsc.nasa.gov>                           \n>  N5WVR           <mancus@sweetpea.jsc.nasa.gov>                        \n>  \"Black powder and alcohol, when your states and cities fall,          \n>   when your back's against the wall....\" -Leslie Fish                  \n\nGuy\n-- \n-- -----------------------------------------------------------------------------\nGuy Dawson - Hoskyns Group Plc.\n        guyd@hoskyns.co.uk  Tel Hoskyns UK     -  71 251 2128\n        guyd@austin.ibm.com Tel IBM Austin USA - 512 838 3377\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6754, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: Window start up position for app, how?\nFrom: davidw@auck.irl.cri.nz (David White)\nOrganization: Industrial Research Ltd, Auckland, New Zealand\nKeywords: app window, startup position\nNNTP-Posting-Host: kauri.auck.irl.cri.nz\nLines: 15\n\nIn <1993Apr19.143054.17499@ucsu.Colorado.EDU> hayesj@rintintin.Colorado.EDU (HAYES JAMES MICHAEL JR) writes:\n\n>How do you set up an app to give its window a default start up\n>position and size?\n\nTry sizeit.zip from ftp.cica.indiana.edu [129.79.20.84] in the directory \nftp/pub/pc/win3/desktop. It's freeware.\n\nAlso noticed there a program called sizer110.zip, which from the description\nlooks like it also does what you want.\n\nHope this helps.\n--\n david white    (engineer, Goon fan & son of my Dad)\n Internet davidw@auck.irl.cri.nz  Fax +64 9 443-4737\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6755, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: Happy Easter!\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 37\n\nkevinh, on the Tue, 20 Apr 1993 13:23:01 GMT wibbled:\n\n: In article <1993Apr19.154020.24818@i88.isc.com>, jeq@lachman.com (Jonathan E. Quist) writes:\n: |> In article <2514@tekgen.bv.tek.com> davet@interceptor.cds.tek.com (Dave Tharp CDS) writes:\n: |> >In article <1993Apr15.171757.10890@i88.isc.com> jeq@lachman.com (Jonathan E. Quist) writes:\n: |> >>Rolls-Royce owned by a non-British firm?\n: |> >>\n: |> >>Ye Gods, that would be the end of civilization as we know it.\n: |> >\n: |> >  Why not?  Ford owns Aston-Martin and Jaguar, General Motors owns Lotus\n: |> >and Vauxhall.  Rover is only owned 20% by Honda.\n: |> \n: |> Yes, it's a minor blasphemy that U.S. companies would ?? on the likes of A.M.,\n: |> Jaguar, or (sob) Lotus.  It's outright sacrilege for RR to have non-British\n: |> ownership.  It's a fundamental thing\n\n\n: I think there is a legal clause in the RR name, regardless of who owns it\n: it must be a British company/owner - i.e. BA can sell the company but not\n: the name.\n\n: kevinh@hasler.ascom.ch\n\nI don't believe that BA have anything to do with RR.  It's a seperate\ncompany from the RR Aero-Engine company.  I think that the government\nown a stake.  Unfortunately they owned a stake of Jaguar too, until\nthey decided to make a quick buck and sold it to Ford.  Bastards.\nThis is definitely the ultimate Arthur-Daley government.\n--\n\nNick (the Cynical Biker)   DoD 1069   Concise Oxford   Leaky Gearbox\n\nM'Lud.\n                                   \nNick Pettefar, Contractor@Large.  /~~~\\   \"Teneo tuus intervallum\"\nCuurrently incarcerated at BNR,  {-O^O-}   npet@bnr.ca  '86 BMW K100RS \"Kay\"\nMaidenhead, The United Kingdom.   \\ o /    Pres. PBWASOH(UK),  BS 0002\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6756, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: greg@anacapa.NCEL.Navy.Mil (Gregory K. Ramsey)\nSubject: Micron Computer, Inc. (Formerly Edge Technology)\nOrganization: Naval Civil Engineering Lab, Port Hueneme\nLines: 9\n\nSince the net has convinced me not to try FastMicro (if they\nwere still answering their phones) does anybody have any\nopinions on Micron Computer, Inc?  Their 486VL Magnum got an\nEditors Choice in the Jan 26th roundup of 486/66s.\n\nEmail and I'll sumarize.\n\nGreg\ngreg@ncel.navy.mil\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6757, "properties": {"category": "sci.space", "text": "From: sysmgr@king.eng.umd.edu (Doug Mohney)\nSubject: I want that Billion\nOrganization: Computer Aided Design Lab, U. of Maryland College Park\nLines: 37\nReply-To: sysmgr@king.eng.umd.edu\nNNTP-Posting-Host: queen.eng.umd.edu\n\nIn article <C5x86o.8p4@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n>In article <1r6rn3INNn96@mojo.eng.umd.edu> sysmgr@king.eng.umd.edu writes:\n>>You'd need to launch HLVs to send up large amounts of stuff.  Do you know \n>>of a private Titan pad? \n>\n>You'd need to launch HLVs to send up large amounts of stuff *if* you assume\n>no new launcher development.  If you assume new launcher development, with\n>lower costs as a specific objective, then you probably don't want to\n>build something HLV-sized anyway.\n>\n>Nobody who is interested in launching things cheaply will buy Titans.  It\n>doesn't take many Titan pricetags to pay for a laser launcher or a large\n>gas gun or a development program for a Big Dumb Booster, all of which\n>would have far better cost-effectiveness.\n\nHenry, I made the assumption that he who gets there firstest with the mostest\nwins. \n\nOhhh, you want to put in FINE PRINT which says \"Thou shall do wonderous R&D\nrather than use off-the-shelf hardware\"? Sorry, didn't see that in my copy.\nMost of the Pournellesque proposals run along the lines of <some dollar\namount> reward for <some simple goal>.  \n\nYou go ahead and do your development, I'll buy off the shelf at higher cost (or\neven Russian; but I also assume that there'd be some \"Buy US\" provos in there)\nand be camped out in the Moon while you are launching and assembling little\nitty-bitty payloads in LEO with your laser or gas gun.  And working out the\nbugs of assembly & integration in LEO. \n\nOh, hey, could I get a couple of CanadARMs tuned for the lunar environment?  I\nwanna do some teleoperated prospecting while I'm up there...\n\n\n\n\n    Software engineering? That's like military intelligence, isn't it?\n  -- >                  SYSMGR@CADLAB.ENG.UMD.EDU                        < --\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6758, "properties": {"category": "rec.sport.hockey", "text": "From: j3david@sms.business.uwo.ca (James David)\nSubject: Plus minus stat\nOrganization: University of Western Ontario\nNntp-Posting-Host: sms.business.uwo.ca\nLines: 144\n\n>Post: 51213 of 51227\n>Newsgroups: rec.sport.hockey\n>From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\n>Subject: Re: Plus minus stat...\n>Organization: Dept. of Computer Science, Laurentian University,\n>Sudbury, ON Date: Thu, 15 Apr 1993 21:41:29 GMT\n \n>In <4LD32B2w165w@sms.business.uwo.ca>\n>j3david@sms.business.uwo.ca (James David) writes:\n \n>>It was Bryan Trottier, not Denis Potvin.  It was a vicious\n>>'boarding' from behind...Trottier was given a major.\n \n>Perhaps it was Trottier.  It happened behind the Habs goal if\n>I recall. Gainey simply didn't have his head up as he was\n>picking up the puck.\n \n>But Roger, what the hell does this have to do with Gainey's\n>skill as a hockey player?  If Probert smashes Gilmour's head\n>into the boards next week, will that diminish your assessment\n>of Gilmour's skills?\n \n>If Gilmour was taken completely by surprise, as Gainey was, then\n>yeah, I would have to say that Doug wasn't playing\n>\"technically\" smart  hockey.  In any case, to claim as Greg did,\n>that Gainey *never* made  a technical mistake is absolutely\n>ludicrous.\n \nLater on, in your posting, you make reference to \"putting words\ninto other people's mouths\"...I would suggest that your last\nparagraph can only be interpreted in one way...namely, that I,\nalong with Greg, claim that Gainey never made a technical\nmistake.  If you actually read what I've written, you will find\nthat I make no such claim...soooo, if logic serves me well,\nyou're contradicting yourself.\n \n>>>Gainey was a plugger.  And when the press runs out of things\n>>>to say about  the stars on dynasties they start to hype the\n>>>pluggers.  Grant Fuhr, Essa Tikkannen, Butch Goring, Bob\n>>>Nystrom, Bob Gainey, Doug Jarvis, Derek Sanderson, Wayne\n>>>Cashman, Bob Baun, Bob Pulford, Ralph Backstrom, Henri\n>>>Richard, Dick Duff...and so on...\n \n>>I would take Fuhr and Sanderson off of the latter.\n \n>Good for you.  You'd only be displaying your ignorance of\n>course, but to each his own...\n \nRoger, I'm not sure here, but I think \"ignorance\" is really a\nfunction of \"a lack of knowledge\" and not \"formulating an\nopinion\"...but hey, if you need to take a cheap shot, then by all\nmeans go ahead...that's if it makes you feel better.\n \n>>I think Gainey would be honoured to know that you've included\n>>him\n \n>I think Gainey should feel honoured to know that he is\n>remembered at  all.\n \n \nMy word, such vehemence against poor ol' Bob Gainey.  Why does\nhe bother you so much...he was an effective player for his style\nof play.\n \n>>on this list.  I also think you have a relatively naive view\n>>about what wins a hockey game...pluggers are an integral part\n>>of\n \n>Certainly pluggers are an integral part of any team.  And that\n>is simply because there are not enough solid two-way players to\n>go  around.  Who would you rather have as your \"checking\"\n>centre?  Doug Gilmour or Doug Jarvis?  For that matter I would\n>take either Gretzky or Mario as my \"checking\" centres.  Do you\n>think Gretzky could cover Bob Gainey? \n \nI'm really sorry Roger, but you have lost me completely here. \nWhy don't you ask me if I would rather have Jesus Christ,\nhimself, in nets?\n \nNow, if you were to compare, say for example, Bob Gainey with Guy\nCarbonneau, you would have a balanced comparison.\n \n>>any team.  The Selke is designed to acknowledge their\n>>contribution...I think that most people understand that it's\n>>not the Nobel Prize...so settle down.\n \n>You're wrong again.  The Selke is awarded to the forward that\n>does the best job defensively and this may or may not be the\n>best plugger.  If  Gilmour does the best defensive job in the\n>league I don't see why he  should be out of the running simply\n>because he also contributes offen-sively.\n \nI'm wrong AGAIN...hmmm, let's see...where was I wrong in the\nfirst place?  I'm only guessing here, Rog, but I have a feeling\nthat you've setup a \"You're wrong again\" macro key on your\nmachine.\n \nI agree that my use of the word plugger is simplistic...but I\nthink you know what I'm getting at.  I would also like to point\nout that Gilmour's potential as a Selke-winner was never part of\nthe debate...are you asking me for an opinion?  If so, I think\nthere are far too many other deserving players to include Gilmour\namong the candidates.\n \n>>Settle down?  If you think that I have likened the Selke to the\n>>Nobel prize then I suggest that you had best \"settle down\". \n>>And if you are going to try to put words in my mouth, let me\n>>suggest that you \"settle  down\" before you bother following up\n>>on my postings. \n \nI would suggest that your comment: \"And when the press runs out\nof things to say about  the stars on dynasties they start to hype\nthe pluggers.  Grant Fuhr, Essa Tikkannen, Butch Goring, Bob\nNystrom, Bob Gainey, Doug Jarvis, Derek Sanderson, Wayne Cashman,\nBob Baun, Bob Pulford, Ralph Backstrom, Henri Richard, Dick\nDuff...and so on...\" demonstrates a blanket disregard for these\nindividuals as contributors to the game...so yes, settle\ndown...nobody has claimed that they are hockey gods.\n \n>>congenially, as always,\n>> \n>>jd\n>> \n>>--\n>>James David\n>>david@student.business.uwo.ca\n \n>You might consider developing your own style.  After all,\n>imitation is  the sincerest form of flattery and I am quite sure\n>that flattery is not  your intention.\n \nC'mon...it has a nice ring to it...and admit it, you had a good\nlaugh.\n \ncongenially, as always,\n \njd\n \n--\nJames David\ndavid@student.business.uwo.ca\n\nj3david@sms.business.uwo.ca (James David)\nWestern Business School  --  London, Ontario\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6759, "properties": {"category": "rec.sport.baseball", "text": "From: nittmo@camelot.bradley.edu (Christopher Taylor)\nSubject: When Is Melido Due Back?\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Bradley University\nDistribution: na\nLines: 6\n\nWhen are the Yankees planning on activating Melido Perez?  His 15 days on\nthe DL are up today, but are they bringing him back this weekend? \n\nThanks for any info.\n \n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6760, "properties": {"category": "rec.motorcycles", "text": "From: mbeaving@bnr.ca (Michael Beavington)\nSubject: Re: Good Reasons to Wave at each other\nNntp-Posting-Host: bmerh824\nReply-To: MBEAVING@BNR.CA\nOrganization: BNR Ottawa, DMS Software Design\nLines: 25\n\nIn article <222834@mavenry.altcit.eskimo.com>, maven@mavenry.altcit.eskimo.com (Norman Hamer) writes:\n|>  \n|>  One of those \"morning, just getting the coffee in me\" thoughts:\n|>  \n|>  Waving at other bikers makes more sense than just \"Hey, how's it going, \n|> nice to meet you on the road, have a good ride\"\n|>  \n|>  1) If you're watching for other bikes to wave to, it means your attention \n|> is on the road, where it should be, and you're more likely to see cages.\n|>  \n|>  2) It keeps you in the habit of watching really carefully for bikes when \n|> you're IN a cage. This is a Good Thing. \n\n\nThe down side is that when I'm in my cage, I have on numerous occasions\nslammed my hand into the rolled up window in an effort to wave at\na passing biker.  Ow.\n\n-- \n=============================================================================\n= The Beav |Mike Beavington|BellNorthernResearch Ottawa,Ont,Canada| Dod:9733=\n= Seca 400->Seca 400->RZ350->Seca750->Suzuki550->Seca650turbo->V65Sabre     =\n= (-> 1994 GTS1000 ...can't afford the '93) |  mbeaving@bnr.ca              =\n= Parking spaces? We don't need no steenkin' parking spaces!                =\n=============================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6761, "properties": {"category": "comp.graphics", "text": "From: osprey@ux4.cso.uiuc.edu (Lucas Adamski)\nSubject: Re: Fast polygon routine needed\nKeywords: polygon, needed\nOrganization: University of Illinois at Urbana-Champaign\nLines: 19\n\nIn article <7306@pdxgate.UUCP> idr@rigel.cs.pdx.edu (Ian D Romanick) writes:\n>What kind of polygons?  Shaded?  Texturemapped?  Hm?  More comes into play with\n>fast routines than just \"polygons\".  It would be nice to know exaclty what\n>system (VGA is a start, but what processor?) and a few of the specifics of the\n>implementation.  You need to give  more info if you want to get any answers! :P\n\nI don't want texture mapped, cause if I did I'd asked for them. :)  Just\na simple and fast routine to do filled polygons.  As for the processor, it'd\nbe for a minimum of a 286... maybe 386 if I can't find a good one for 286s.\nIdeally, I want a polyn function that can clip to a user-defined viewport,\nand write to an arbitrary location in memory.  Of course the chances of\nfinding something like that are pretty remote, so I guess I'd need the source\nwith it.  Oh, and I guess it would need to be in ASM otherwise it'd be too\nslow.  I've seen some polygon routines in C, and they've all been waaay too\nslow.  Its for a 3D vector graphics program.  I've been hunting high and low\nfor a polyn function in ASM, and I can't find one anywhere that I can use.\nI've found one or two polyn functions, but my ASM is pretty bad, so I won't\neven try to rewrite them. :)\n\t\t//Lucas.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6762, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wbarnes@sura.net (Bill Barnes)\nSubject: HELP! Installing second IDE drive\nOrganization: SURAnet, College Park, MD, USA, NA, Earth, Milky Way\nLines: 44\nNNTP-Posting-Host: azathoth.sura.net\n\nRecently my cousin got a second internal IDE drive (a Seagate 210MB,\nI can look up the model number if it's important) and I've been\ntrying to help him install it.  [I've got a vested interest, since\nmy machine's busted and I have to use his until I get mine fixed.]\nHe already has a Seagate 85MB IDE HD (again, I forget the model number\nbut I can find out.)\n\nAnyway, I can't seem to get the bloody thing up.  I've managed to get\none or the other drive up (with the other disconnected), but not both\nat the same time; whenever I try, the thing hangs during bootup -\nnever gets past the system test.  The IDE controller's instruction\nsheet says it supports two drives; I think I've configured the CMOS\ncorrectly; the power's plugged in properly; I even learned about the\nmaster/slave relationship that two HDs are supposed to have (didn't\nknow PCs were into S&M! 8^) and I think I configured the jumpers\nproperly (the 85MB one is the master, the new 210MB one is the slave).\n\nThe only thing I can think of is maybe I'm doing the cabling wrong.  I've\ntried several combinations:\n\ncontroller - master - slave\ncontroller - slave - master\nmaster - controller - slave\n\nNone of them worked.  Unfortunately, I can't think of any others.\n\nAnother possibility is that the 85MB one is already partitioned into\ntwo seperate drives, C and D, and the CMOS asks for \"C: drive\" and \"D:\ndrive\" setup info rather than \"drive 1\" and \"drive 2\" like most others\nI've seen.  Could this be confusing things?\n\nSo, I need HELP!  The drive came bereft of any docs, except for some\ninfo for the CMOS setup; the controller has a little piece of paper\nabout the size of an index card; I cannibalized the cable (it's one\nof those with a connector at each end and the one in the middle, so\nit looks like a serial connection); now I be lost!\n\nMany, many thanks in advance!  This is practically an emergency (I have\ntwo papers to do on this thing for Monday!)!  Help!\n-- \n-----------------------\nWilliam Barnes\t\tSURAnet Operations\nwbarnes@sura.net\t(301) 982-4600 voice  (301) 982-4605 fax\nDisclaimer:  I don't speak for SURAnet and they don't speak for me.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6763, "properties": {"category": "soc.religion.christian", "text": "From: jhpb@sarto.budd-lake.nj.us (Joseph H. Buehler)\nSubject: Re: SSPX schism ?\nOrganization: none\nLines: 182\n\nHere is some material by Michael Davies on the subject of schism in\ngeneral and Archishop Lefebvre in particular.  He wrote it around\n1990.  The first part of the two-part article was on the scandalous\nactivities of Archbishop Weakland (in this country), but I cut all\nthat.  And I pared down the rest to what was relevant.\n\nJoe Buehler\n\n...\n\nSchism and Disobedience\n\nAccording to St. Thomas Aquinas, schism consists primarily in a\nrefusal of submission to the Pope or communion with the members of the\nChurch united to him. On first sight it would appear that, whatever\nthe subjective motivation of the Archbishop, as discussed above, he\nmust be in a state of objective schism as he has refused to submit to\nthe Pope on a very grave matter involving his supreme power of\njurisdiction. However, standard Catholic textbooks of theology make it\nclear that while all schisms involve disobedience not all acts of\ndisobedience are schismatic. If this were so, as was noted at the\nbeginning of this article, it would mean that the number of American\nbishops who are not schismatic would not reach double figures.\n\nThe distinction between disobedience and schism is made very clear in\nthe article on schism in the very authoritative Dictionnaire de\nTheologie Catholique. The article is by Father Yves Congar who is\ncertainly no friend of Archbishop Lefebvre.  He explains that schism\nand disobedience are so similar that they are often confused. Father\nCongar writes that schism involves a refusal to accept the existence\nof legitimate authority in the Church, for example, Luther's rejection\nof the papacy. Father Congar explains that the refusal to accept a\ndecision of legitimate authority in a particular instance does not\nconstitute schism but disobedience.  The Catholic Encyclopedia\nexplains that for a Catholic to be truly schismatic he would have to\nintend \"to sever himself from the Church as far as in him lies.\"  It\nadds that \"not every disobedience is schism; in order to possess this\ncharacter it must include besides the transgression of the command of\nthe superiors, a denial of their divine right to command.\"Not only\ndoes Mgr. Lefebvre not deny the divine right of the Pope to command,\nbut he affirms repeatedly his recognition of the Pope's authority and\nhis intention of never breaking away from Rome. The Archbishop made\nhis attitude clear in the July/August 1989 issue of 30 Days: \"We pray\nfor the Pope every day. Nothing has changed with the consecrations\nlast June 30. We are not sedevacantists. We recognize in John Paul II\nthe legitimate Pope of the Catholic Church. We don't even say that he\nis a heretical Pope. We only say that his Modernist actions favor\nheresy.\"\n\n...\n\nIntrinsically Schismatic?\n\nThe principal argument used by those claiming that Mgr. Lefebvre is in\nschism is that the consecration of a bishop without a papal mandate is\nan intrinsically schismatic act. A bishop who carries out such a\nconsecration, it is claimed, becomes ipso facto a schismatic. This is\nnot true. If such a consecration is an intrinsically schismatic act it\nwould always have involved the penalty of excommunication. In the 1917\nCode of Canon Law the offence was punished only by suspension (see\nCanon 2370 of the 1917 Code). Pope Pius XII had raised the penalty to\nexcommunication as a response to the establishment of a schismatic\nchurch in China. The consecration of these illicit Chinese bishops\ndiffered radically from the consecrations carried out by Mgr. Lefebvre\nas the professed intention was to repudiate the authority of the Pope,\nthat is, to deny that he has the right to govern the Church, and the\nillicitly consecrated Chinese bishops were given a mandate to exercise\nan apostolic mission. Neither Archbishop Lefebvre nor any of the\nbishops he has consecrated claim that they have powers of\njurisdiction. They have been consecrated solely for the purpose of\nensuring the survival of the Society by carrying out ordinations and\nalso to perform confirmations. I do not wish to minimize in any way\nthe gravity of the step take by Mgr. Lefebvre. The consecration of\nbishops without a papal mandate is far more serious matter than the\nordination of priests as it involves a refusal in practice of the\nprimacy or jurisdiction belonging by divine right to the Roman\nPontiff. But the Archbishop could argue that the crisis afflicting the\nChurch could not be more grave, and that grave measures were needed in\nresponse.\n\nIt appears to be taken for granted by most of the Archbishop's critics\nthat he was excommunicated for the offense of schism, and the Vatican\nhas certainly been guilty of fostering this impression.  There is not\nso much as a modicum of truth in this allegation. The New Code of\nCanon Law includes a section beginning with Canon 1364 entitled\n\"Penalties for Specific Offenses\" (De Poenis in Singula Dicta). The\nfirst part deals with \"Offenses against Religion and the Unity of the\nChurch\" (De Delictis contra Religionem et Ecclesiae Unitatem). Canon\n1364 deals with the offense of schism which is, evidently, together\nwith apostasy and heresy, one of the three fundamental offenses\nagainst the unity of the Church.\n\nBut the Archbishop was not excommunicated under the terms of this\ncanon or, indeed, under any canon involving an offense against\nreligion or the unity of the church. The canon cited in his\nexcommunication comes from the third section of \"Penalties for\nSpecific Offenses\" which is entitled \"Usurpation of Ecclesial\nFunctions and Offenses in their Exercise\" (De Munerum Ecclesiasticorum\nUsurpatione Degue Delictis iniis Exercendis). The canon in question is\nCanon 1382, which reads: \"A bishop who consecrates someone bishop and\nthe person who receives such a consecration from a bishop without a\npontifical mandate incur an automatic (latae sententiae)\nexcommunication reserved to the Holy See.\"\n\nThe scandalous attempts to smear Archbishop Lefebvre with the offense\nof schism are, then, contrary to both truth and charity. A comparable\nsmear under civil as opposed to ecclesiastical law would certainly\njustify legal action for libel involving massive damages. An accurate\nparallel would be to state that a man convicted of manslaughter had\nbeen convicted of first degree murder.\n\nI must stress that what I have written here is not the dubious opinion\nof laymen unversed in the intricacies of Canon Law. Canon lawyers\nwithout the least shred of sympathy for Mgr. Lefebvre have repudiated\nthe charge of schism made against him as totally untenable. Father\nPatrick Yaldrini, Dean of the Faculty of Canon Law of the Institut\nCatholique in Paris noted in the 4 July 1988 issue of Valeurs\nactuelles that, as I have just explained, Mgr.  Lefebvre was not\nexcommunicated for schism but for the usurpation of an ecclesiastical\nfunction. He added that it is not the consecration of a bishop which\nconstitutes schism but the conferral of an apostolic mission upon the\nillicitly consecrated bishop. It is this usurpation of the powers of\nthe sovereign pontiff which proves the intention of establishing a\nparallel Church.\n\nCardinal Rosalio Lara, President of the Pontifical Commission for the\nAuthentic Interpretation of Canon Law, commented on the consecrations\nin the 10 July 1988 issue of la Repubblica. It would be hard to\nimagine a more authoritative opinion. The Cardinal wrote:\n\n    The act of consecrating a bishop (without a papal mandate) is not\n    in itself a schismatic act. In fact, the Code that deals with\n    offenses is divided into two sections. One deals with offenses\n    against religion and the unity of the Church, and these are\n    apostasy, schism, and heresy. Consecrating a bishop with a\n    pontifical mandate is, on the contrary, an offense against the\n    exercise of a specific ministry. For example, in the case of the\n    consecrations carried out by the Vietnamese Archbishop Ngo Dinh\n    Thuc in 1976 and 1983, although the Archbishop was excommunicated\n    he was not considered to have committed a schismatic act because\n    there was no intention of a breach with the Church.\n\n....\n\nIt is not simply unjust but ludicrous to suggest that in consecrating\nbishops without a papal mandate Archbishop Lefebvre had the least\nintent of establishing a schismatic church. He is not a schismatic and\nwill never be a schismatic. The Archbishop considers correctly that\nthe the Church is undergoing its worst crisis since the Arian heresy,\nand that for the good of the Church it was necessary for him to\nconsecrate the four bishops to ensure the future of his Society. Canon\nLaw provides for just such a situation, and even if one believes that\nthe future of the Society could have been guaranteed without these\nconsecrations, the fact that the Archbishop believed sincerely that it\ncould not means, as Canon Law states clearly, that he has not incurred\nexcommunication. Furthermore, while the Vatican allows such prelates\nas Archbishop Weakland to undermine the Faith with impunity it cannot\nexpect Catholics to pay the least attention to its sanctions against a\ngreat and orthodox Archbishop whose entire life has been devoted to\nthe service of the Church and the salvation of souls.\n\nDr. Eric M. de Saventhem, President of the International Una Voce\nAssociation, is one of the best informed laymen in the Church, and he\nknows the Archbishop intimately. Dr. de Saventhem, like myself, has no\ngreater desire than to see a reconciliation between Mgr. Lefebvre and\nthe Holy See during the Archbishop's lifetime. A quotation from a\nstatement by Dr. de Saventhem which was published in the 15 February\n1989 Remnant merits careful study:\n\n    In retrospect, the road leading to the consecrations of 30 June\n    appears more paved with grave Roman (and, unfortunately, also\n    papal) omissions than with Lefebvrist \"obstinancies.\" And from the\n    eyes of an informed public this cannot be hidden by attempting to\n    present the Archbishop's act of grave disobedience as an offense\n    against the Faith!  It is said--today--that Mgr. Lefebvre has \"an\n    erroneous concept of Tradition.\" If this were so, Cardinal\n    Ratzinger could not, on behalf of the Pope, have addressed to the\n    Archbishop the following words in his letter of 28 July 1987:\n    \"Your ardent desire to safeguard Tradition by procuring for it\n    'the means to live and prosper' testifies to your attachment to\n    the Faith of all time... the Holy Father understands your concern\n    and shares it.\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6764, "properties": {"category": "comp.windows.x", "text": "From: ngai@nova.bellcore.com (John Ngai)\nSubject: How to disable reverse video on xterm/man\nNntp-Posting-Host: nova.bellcore.com\nOrganization: Bellcore\nLines: 22\n\nWell I am not sure if this is the right newsgroup to ask, but let me try anyway.\nI am running xterm and like all UNIX users, I run man <something>. Recently,\nI switched to Solaris 2.1, and their man pages are littered with \".I\" directives\nthat are somehow translated into reverse video when displayed by man under xterm.\nThe resulting output (admittedly a personal taste) is very ANNOYING to look at.\nBack when I was using SunOS 4.1.2, I remember their man pages have some keywords\ndisplayed with underlining....\n\nSo my question is how do I change the xterm's behaviour under \".I\" directives \nfor nroff man pages, to perhaps underlining, or at least disabling it. (\".B\" \ndirectives are fine, I like them. And of course, I don't want to go in and edit\nthe man pages inputs...) Somehow, xterm allows one to specify both a normal font\nand a bold font, but not an italic font??\n\nAny pointers, suggestions are greatly appreciated.\nThanks -- John\n\nP.S. Running xterm -rv won't work, I tried...\n\n\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6765, "properties": {"category": "misc.forsale", "text": "From: bitzm@columbia.dsu.edu (MICHAEL BITZ)\nSubject: I WANT YOUR 486sx or dx CHIPS!!!!!!!!!!!!\nLines: 14\nOrganization: Dakota State University\nLines: 14\n\n\n\tI am in the market for a couple of Intel 486 chips.\n\tPlease let me know if you have one (or more) for sale.\n\tI am interested in both SX and DX models, but they\n\tmust be Intel.\n\t\n\temail me at: bitzm@columbia.dsu.edu\n\n\n------------------------------------------------------------\nMike Bitz                   Internet: bitzm@columbia.dsu.edu\nResearch and Development              bitzm@dsuvax.dsu.edu\nDakota State University       Bitnet: s93020@sdnet.bitnet\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6766, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Blast them next time\nOrganization: Stratus Computer, Inc.\nLines: 22\nDistribution: usa\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <1r19l9$7dv@usenet.INS.CWRU.Edu>, oldham@ces.cwru.edu (Daniel Oldham) writes:\n\n> The BATF needs more people, better weapons and more armored\n> transports. When they meet hostile fire they should be able to use\n> more force instead of retreating to a stand off. If you are going to\n> do a job then do it right. The BATF is there to protect us and they\n> must have the proper equipment and people to do the job.\n\nThe BATF is there to collect taxes, not to protect your sorry ass or mine.\n\n> With the WoD and the increased crime in the streets the BATF is needed\n> more now then ever. If they blast away a few good fokes then that is\n> the price we all have to pay for law and order in this country. \n\nAll flame-bait, of course.  If you really want to be flame bait, send me\nyour address and I'll tell the BATF about those automatic weapons you\nhave stockpiled.  You'll be warm in no time.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6767, "properties": {"category": "rec.motorcycles", "text": "From: rbemben@timewarp.prime.com (Rich Bemben)\nSubject: Re: April 1( was Re: FAQ - What is the DoD?)\nExpires: 30 Apr 93 05:00:00 GMT\nOrganization: Computervision Corp., Bedford, Ma.\nLines: 31\n\nIn article <9901221@hpfcso.FC.HP.COM> jld@hpfcso.FC.HP.COM (Jeff Deeney) writes:\n>In rec.motorcycles, viking@iastate.edu (Dan Sorenson) writes:\n>\n>> Last year, I believe it was, Jeff Deeney posted what I've since come to\n>> recognize as the ultimate April Fools posting ever.  It wasn't particularly\n>> nice of him, as several people were quite fooled and very worried about\n>> him, but I can't fault the effectiveness.\n>\n>Based on numerous inputs (most of them unprintable), I deemed it time for a\n>kinder, gentler, April 1.  Not that I didn't have something really sick and\n>twisted ready to post :-)  Perhaps next year. \n\nPersonally, I think Jeffy-Poo was still smarting more from the third degree\nburns he suffered after April 1st last year rather than the supposed burns\nthat he suffered in \"the joke\".  Granted I was one of those people that were\ntaken in by it and I was certainly concerned...and then pissed at him for \npulling such a thing (which I made known to him).\n\nBut then again, for an April Fool \"joke\" I would also go on record as saying\nthat it was the best orchestrated one I've ever seen and it certainly sucked\na LOT of people into believing it 8-( 8-| 8-\\ 8-)...\n\n\"sick\" - \"twisted\"??? Who in this group could ever be accused of such a thing?\n\nI tip my twisted lid to thee Jeffy 8-).\n\n\nRich Bemben - DoD #0044                     rbemben@timewarp.prime.com\n1977 750 Triumph Bonneville                 (617) 275-1800 x 4173\n\"Fear not the evil men do in the name of evil, but heaven protect\n us from the evil men do in the name of good\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6768, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kjt001@dunix.drake.edu (Albatross)\nSubject: Re: 14\" monitors\nArticle-I.D.: dunix.1993Apr6.012714.11565\nDistribution: na\nOrganization: Drake University, Des Moines, Iowa, USA\nLines: 12\n\nOn a related note, will the 1304 work on a Centris 650 with internal video\nand give the multiple resolutions?\n\nThis I'm VERY curious about...\n\nThanks!\n\n-- \n|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\\n|/-\\|/-\\|/-\\  Kevin Tieskoetter |/-\\|/-\\ Technical Support  |/-\\|/-\\|/-\\\n|/-\\|/-\\|/-\\ Drake Looniversity |/-\\|/-\\ MicroFrontier, Inc |/-\\|/-\\|/-\\\n|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\|/-\\\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.318+0000", "event": "documents", "entityId": 6769, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: Doug_Oke@mindlink.bc.ca (Doug Oke)\nSubject: Memory Access Time (Was Re: SRAM and SIMMS 4 sale)\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 41\n\n> ben elliston writes:\n>\n> Msg-ID: <734606726.AA00887@f262.n620.z3.fidonet.org>\n> Posted: Mon, 12 Apr 1993 10:41:0\n>\n> Organization: Compact Solutions, Canberra ACT Australia\n>\n>  > 64k of 25ns SRAM\n>\n> By my way of thinking, Michael, how could this memory be static RAM if it\n> has a speed rating?  I didn't think SRAM needed a refresh time.\n>\n> Doesn't that make it fast DRAM?\n\nThis chip would take 25ns to return valid data after being issued an address.\n\nRefresh time (none for SRAM, as you pointed out) is a different parameter,\nand is not generally referred to except by motherboard designers.\n>\n> Cheers,\n> Ben\n> ----------------------------------------------------------------------------\n> --\n> Ben Elliston\n> Bachelor of Engineering (Computer Engineering)\n> University of Canberra\n>\n> Email:      tp923021@jarrah.canberra.edu.au\n> UUCP:       ..!uunet!munnari!sserve.adfa.oz.au!compsol!root\n> FidoNet:    3:620/262\n> ----------------------------------------------------------------------------\n> --\n> If a train station is where the train stops, what's a workstation?!\n> ----------------------------------------------------------------------------\n> --\n>\n>  * Origin: % Compact Solutions % Canberra ACT Australia % (3:620/262)\n\n\n--\nDoug Oke - Vancouver, Canada                  Doug_Oke@mindlink.bc.ca\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6770, "properties": {"category": "sci.med", "text": "From: vida@mdavcr.mda.ca (Vida Morkunas)\nSubject: Altitude adjustment\nSummary: How to adjust to 9000 ft when you come from sea-level\nOrganization: MacDonald Dettwiler, 13800 Commerce Parkway, Richmond, BC, Canada  V6V 2J3\nLines: 20\n\nI live at sea-level, and am called-upon to travel to high-altitude cities\nquite frequently, on business.  The cities in question are at 7000 to 9000\nfeet of altitude.  One of them especially is very polluted...\n\nOften I feel faint the first two or three days.  I feel lightheaded, and\nmy heart seems to pound a lot more than at sea-level.  Also, it is very\ndry in these cities, so I will tend to drink a lot of water, and keep\naway from dehydrating drinks, such as those containing caffeine or alcohol.\n\nThing is, I still have symptoms.  How can I ensure that my short trips there\n(no, I don't usually have a week to acclimatize) are as comfortable as possible?\nIs there something else that I could do?\n\nA long time ago (possibly two years ago) there was a discussion here about\naltitude adjustment.  Has anyone saved the messages?\n\nMany thanks,\n\nVida.\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6771, "properties": {"category": "rec.sport.hockey", "text": "From: gibson@nukta.geop.ubc.ca (Brad Gibson)\nSubject: Re: plus minus stat\nOrganization: Dept. of Astronomy / Univ. of British Columbia\nLines: 48\nNNTP-Posting-Host: nukta.astro.ubc.ca\n\nIn article <1993Apr16.160228.24945@sol.UVic.CA> gballent@hudson.UVic.CA writes:\n>\n>In article 9088@blue.cis.pitt.edu, jrmst8+@pitt.edu (Joseph R Mcdonald) writes:\n>\n>>Jagr has a higher +/-, but Francis has had more points.  And take it from\n>>an informed observer, Ronnie Francis has had a *much* better season than\n>>Jaromir Jagr.  This is not to take anything away from Jaro, who had a \n>>decent year (although it didn't live up to the expectations of some).\n>\n>Bowman tended to overplay Francis at times because he is a Bowman-style\n>player.  He plays hard at all times, doesn't disregard his defensive\n>responsibilities and is a good leader.  Bowman rewarded him be increasing his\n>ice time.\n>\n>Jagr can be very arrogant and juvenile and display a \"me first\" attitude.\n>This rubbed Bowman the wrong way and caused him to lose some ice time.\n>\n>Throughout the year, Francis consistently recieved more ice time than\n>Jagr.  Althouhg I have never seen stats on this subject, I am pretty\n>sure that Jagr had more points per minute played that Francis.  When\n>you add to that Jagr's better +/- rating, I think it becomes evident\n>that Jagr had a better season- not that Francis had a bad one.\n>\n\n  Actually, what I think has become more evident, is that you are determined to\n  flaunt your ignorance at all cost.  Jagr did not have a better season than\n  Francis ... to suggest otherwise is an insult to those with a modicum of\n  hockey knowledge.  Save your almost maniacal devotion to the almighty\n  plus/minus ... it is the most misleading hockey stat available.\n\n  Until the NHL publishes a more useful quantifiable statistic including ice\n  time per game and some measure of its \"quality\" (i.e., is the player put out\n  in key situations like protecting a lead late in the game; is he matched up\n  against the other team's top one or two lines; short-handed, etc), I would\n  much rather see the +/- disappear altogether instead of having its dubious\n  merits trumpeted by those with little understanding of its implications.\n\n  Brad\n\n-- \n------------------------------------------------------------------------------\n  Brad K. Gibson                           INTERNET: gibson@geop.ubc.ca\n  Dept. of Geophysics & Astronomy         \n  #129-2219 Main Mall                      PHONE: (604)822-6722\n  University of British Columbia           FAX:   (604)822-6047\n  Vancouver, British Columbia, Canada\n  V6T 1Z4\n------------------------------------------------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6772, "properties": {"category": "rec.motorcycles", "text": "From: gharriso@hpcc01.corp.hp.com (Graeme Harrison)\nSubject: Re: Boom! Dog attack!\nOrganization: the HP Corporate notes server\nLines: 30\n\nSeveral years ago, while driving a cage, a dog darted out at a quiet\nintersection right in front of me but there was enough distance\nbetween us so I didn't have to slow down. However, a 2nd dog\nsuddenly appeared and collided with my right front bumper and\nthe force of the impact was enough to kill that Scottish Terrier.\n\nApparently, it was following the 1st dog. Henceforth, if a dog\ndecides to cross the street, keep an eye out for a 2nd dog as\nmany dogs like to travel in pairs or packs. \n\nI've yet to experience a dog chasing me on my black GL1200I which\nhas a pretty loud OEM horn (not as good as Fiamms, but good enuff)\nbut the bike is large and heavy enough to run right over one of\nthe smaller nippers while the larger ones would have trouble\ngetting my leg between the saddlebags and engine guards. I'd\ndef feel more vulnerable on my '68 Trump as that'd be easier\nleg chewing target for those mongrels.\n\nIf there's a persistent dog running after bikers despite\ncomplaints to the owner I wouldn't be adverse to running\nover it with my truck as a dogs life isn't worth much IMHO\ncompared to a child riding a bike who gets knocked to the\nground by said dog and dies from a head injury. \n\nAny dog in the neighborhood that's vicious or a public menace\nrunning about unleashed is fair game as road kill candidate.\n\nGraeme Harrison\n(gharriso@hpcc01.corp.hp.com) DoD#649 \n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6773, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tecot@Xenon.Stanford.EDU (Edward M. Tecot)\nSubject: Re: Computer Engr vs. Computer Science\nOrganization: CS Department, Stanford University, California, USA\nDistribution: usa\nLines: 21\n\n>A professor of mine once said \"The difference between a Computer Engineer and\n>a Computer Scientist is about $5000\" meaning the Engineer makes $5000 more than\n>the CS.\n>Seriously though the main difference is that most CS people write programs that\n>people will use, i.e. database, graphics, word processors, etc., while an\n>engineer writes for machines or control systems, i.e. the \"computer\" in your\n>car, a flight control system, computer controled devices, etc. In other words\n>CS writes SOFTWARE while CSE writes FIRMWARE. \n>These are generalizations but for the most part that is what the difference is.\n\n>P.S. The $5000 is not just a joke\n>Scott\n\nFor the most part, this is a bunch of bunk.  I've got a Computer Engineering\ndegree, yet I've spent the last 7 years writing software that people actually\nuse.  Moreover, the salary distinctions are incorrect; I received 3 job offers\nupon graduation; the two jobs that actually used my hardware experience were\n$7000/year lower!  My advice is to decide which classes and projects most\ninterest you, and pick the major that allows you to take them.\n\n_emt\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6774, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: Need advice with doctor-patient relationship problem\nArticle-I.D.: cnsvax.1993Apr17.012019.6087\nOrganization: University of Wisconsin Eau Claire\nLines: 12\n\n[reply to mcovingt@aisun3.ai.uga.edu (Michael Covington)]\n \n>Sounds as though his heart's in the right place, but he is not adept at\n>expressing it.  What you received was _meant_ to be a profound apology.\n>Apologies delivered by overworked shy people often come out like that...\n \nThe guy didn't sound too shy to me.  He sounded like a jerk.  I say ditch\nhim for someone more knowledgeable and empathetic.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6775, "properties": {"category": "comp.windows.x", "text": "From: matthew@alchemy.TN.Cornell.EDU (Matthew Kleinmann)\nSubject: Is a 2 headed Sun 3/60 possible (cgfour0/bwtwo0)\nOrganization: Alchemy International\nLines: 12\nDistribution: world\nNNTP-Posting-Host: alchemy.tn.cornell.edu\n\nI have a Sun 3/60 that has a mono framebuffer (bwtwo0 ?) built on the\nmotherboard.  The same system also has a cgfour (cgfour0 and bwtwo1 ?)\ndaughterboard.  I have been using this system with a color monitor having a\ncolor \"front\" screen from the cgfour, and a mono \"back\" screen from the\nbwtwo1, both on the same tube.  I recentley picked up a 1600 x 1280 Sun mono\nmonitor, and I would like to make a two headed system with the cgfour0 and the\nbwtwo0.  I do not care if I loose the \"back\" screen on the color tube from the\nbwtwo1.  After looking through the Xsun man page I am not sure if this is\npossible.  Has anybody sucessfuly done this before?  \n\n--Matthew\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6776, "properties": {"category": "misc.forsale", "text": "From: jeffl@servprod.inel.gov (Jeff Later)\nSubject: eXpEn$iVe MOTOROLA Handheld Radio For Peanuts!\nDistribution: na\nOrganization: WINCO\nLines: 36\n\nHeavy-duty, commercial, TINY,(6x3x1/2 inch) WATERPROOF, VHF 2 watt, 2 channel,\nhandheld two-way radio.  MOTOROLA EXPO purchased NEW for Amateur frequencies\n146.10/70 & 146.34/94.  Absolute  M I N T  condition!  Never scratched, dropped,\nopened, or otherwise \"comprosmised\"!  Can be re-crystaled for business band.\nhas PL slot.  \n                                           Original Price:\n                                         ========================\n\nMOTOROLA EXPO VHF 2WATT/2CHAN. HT--------------------$1200.00\n(comes with portable charger, antenna, manual, \nNEW Ni-Cad pack, back housing belt clip)\nMOTOROLA extra NEW Ni-Cad pack-----------------------$  40.00\nMOTOROLA extra VHF rubber-duckie antenna-------------$  12.50\nMOTOROLA Desktop quick charger-----------------------$ 135.00\nMOTOROLA External speaker-mic.-----------------------$ 125.00\nMOTOROLA +12V cig. lighter Battery Eliminator--------$  80.00\nMOTOROLA Heavy-Duty Nylon holster--------------------$  25.00\nMOTOROLA EXPO Technical Manuals----------------------$   5.00\nMOTOROLA EXPO tuning/case opening tools--------------$  N/C\n                                                ---------------------\n                                                     $1622.50\n\nWould like $400, or BEST OFFER!!!\n\nThanks a lot!\n\nJeff\n\n _____________________________________________________________________________\n||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~||\n||Jeff B. Later  WB7TZA  \"jeffl@pmafire.inel.gov\" |    \"I have become        ||\n||*\"Disclaimer, Disclaimer, Where's My Lawyer!\"*  |   comfortably numb\"      || \n||                                                |      Pink Floyd          ||\n| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6777, "properties": {"category": "comp.graphics", "text": "From: kreyling@lds.loral.com (Ed Kreyling 6966)\nSubject: Sun-os and 8bit ASCII graphics\nOrganization: Loral Data Systems\nDistribution: comp.graphics\nLines: 7\n\nI would like to know if anyone has had any luck using the upper 128 ASCII\ncharacters on a Sun station.  I am trying to convert a fortran program to run\non a Sun.  When we write character buffers to the Sun which contain char(218)\nor char(196) or char(197) etc.  We get characters on the screen but they are\nnot the characters in the standard ASCII tables.\n\nAny ideas or help will be appreciated.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6778, "properties": {"category": "comp.graphics", "text": "From: robert@cpuserver.acsc.com (Robert Grant)\nSubject: Virtual Reality for X on the CHEAP!\nOrganization: USCACSC, Los Angeles\nLines: 187\nDistribution: world\nReply-To: robert@cpuserver.acsc.com (Robert Grant)\nNNTP-Posting-Host: cpuserver.acsc.com\n\nHi everyone,\n\nI thought that some people may be interested in my VR\nsoftware on these groups:\n\n*******Announcing the release of Multiverse-1.0.2*******\n\nMultiverse is a multi-user, non-immersive, X-Windows based Virtual Reality\nsystem, primarily focused on entertainment/research.\n\nFeatures:\n\n   Client-Server based model, using Berkeley Sockets.\n   No limit to the number of users (apart from performance).\n   Generic clients.\n   Customizable servers.\n   Hierachical Objects (allowing attachment of cameras and light sources).\n   Multiple light sources (ambient, point and spot).\n   Objects can have extension code, to handle unique functionality, easily\n        attached.\n\nFunctionality:\n\n  Client:\n   The client is built around a 'fast' render loop. Basically it changes things\n   when told to by the server and then renders an image from the user's\n   viewpoint. It also provides the server with information about the user's\n   actions - which can then be communicated to other clients and therefore to\n   other users.\n\n   The client is designed to be generic - in other words you don't need to\n   develop a new client when you want to enter a new world. This means that\n   resources can be spent on enhancing the client software rather than adapting\n   it. The adaptations, as will be explained in a moment, occur in the servers.\n\n   This release of the client software supports the following functionality:\n\n    o Hierarchical Objects (with associated addressing)\n\n    o Multiple Light Sources and Types (Ambient, Point and Spot)\n\n    o User Interface Panels\n\n    o Colour Polygonal Rendering with Phong Shading (optional wireframe for\n\tfaster frame rates)\n\n    o Mouse and Keyboard Input\n\n   (Some people may be disappointed that this software doesn't support the\n   PowerGlove as an input device - this is not because it can't, but because\n   I don't have one! This will, however, be one of the first enhancements!)\n\n  Server(s):\n   This is where customization can take place. The following basic support is\n   provided in this release for potential world server developers:\n\n    o Transparent Client Management\n\n    o Client Message Handling\n\n   This may not sound like much, but it takes away the headache of\naccepting and\n   terminating clients and receiving messages from them - the\napplication writer\n   can work with the assumption that things are happening locally.\n\n   Things get more interesting in the object extension functionality. This is\n   what is provided to allow you to animate your objects:\n\n    o Server Selectable Extension Installation:\n        What this means is that you can decide which objects have extended\n        functionality in your world. Basically you call the extension\n        initialisers you want.\n\n    o Event Handler Registration:\n        When you develop extensions for an object you basically write callback\n        functions for the events that you want the object to respond to.\n        (Current events supported: INIT, MOVE, CHANGE, COLLIDE & TERMINATE)\n\n    o Collision Detection Registration:\n        If you want your object to respond to collision events just provide\n        some basic information to the collision detection management software.\n        Your callback will be activated when a collision occurs.\n\n    This software is kept separate from the worldServer applications because\n    the application developer wants to build a library of extended objects\n    from which to choose.\n\n    The following is all you need to make a World Server application:\n\n    o Provide an initWorld function:\n        This is where you choose what object extensions will be supported, plus\n        any initialization you want to do.\n\n    o Provide a positionObject function:\n        This is where you determine where to place a new client.\n\n    o Provide an installWorldObjects function:\n        This is where you load the world (.wld) file for a new client.\n\n    o Provide a getWorldType function:\n        This is where you tell a new client what persona they should have.\n\n    o Provide an animateWorld function:\n        This is where you can go wild! At a minimum you should let the objects\n        move (by calling a move function) and let the server sleep for a bit\n        (to avoid outrunning the clients).\n\n    That's all there is to it! And to prove it here are the line counts for the\n    three world servers I've provided:\n\n        generic - 81 lines\n        dactyl - 270 lines (more complicated collision detection due to the\n                           stairs! Will probably be improved with future\n                           versions)\n        dogfight - 72 lines\n\nLocation:\n\n   This software is located at the following site:\n   ftp.u.washington.edu\n\n   Directory:\n   pub/virtual-worlds\n\n   File:\n   multiverse-1.0.2.tar.Z\n\nFutures:\n\n   Client:\n\n    o Texture mapping.\n\n    o More realistic rendering: i.e. Z-Buffering (or similar), Gouraud shading\n\n    o HMD support.\n\n    o Etc, etc....\n\n   Server:\n\n    o Physical Modelling (gravity, friction etc).\n\n    o Enhanced Object Management/Interaction\n\n    o Etc, etc....\n\n   Both:\n\n    o Improved Comms!!!\n\nI hope this provides people with a good understanding of the Multiverse\nsoftware,\nunfortunately it comes with practically zero documentation, and I'm not sure\nwhether that will ever be able to be rectified! :-(\n\nI hope people enjoy this software and that it is useful in our explorations of\nthe Virtual Universe - I've certainly found fascinating developing it, and I\nwould *LOVE* to add support for the PowerGlove...and an HMD :-)!!\n\nFinally one major disclaimer:\n\nThis is totally amateur code. By that I mean there is no support for this code\nother than what I, out the kindness of my heart, or you, out of pure\ndesperation, provide. I cannot be held responsible for anything good or bad\nthat may happen through the use of this code - USE IT AT YOUR OWN RISK!\n\nDisclaimer over!\n\nOf course if you love it, I would like to here from you. And anyone with\nPOSITIVE contributions/criticisms is also encouraged to contact me. Anyone who\nhates it: > /dev/null!\n\n************************************************************************\n*********\nAnd if anyone wants to let me do this for a living: you know where to\nwrite :-)!\n************************************************************************\n*********\n\nThanks,\n\nRobert.\n\nrobert@acsc.com\n^^^^^^^^^^^^^^^\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6779, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Hand Held Products, Inc.\nLines: 89\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <C5spov.LrE@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \nwrites:\n> In article <1r0qsrINNc61@clem.handheld.com> jmd@cube.handheld.com (Jim De  \nArras) writes:\n> >In article <C5s0Ds.J54@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \n> >writes:\n> >> I agree that they deserved a trial.  They had more than 40 days to come \n> >> out and get their trial.  They chose to keep the children with them and \n> >> to stay inside.  They chose to stay inside even after they were tear  \ngassed.\n> >> I do not find these actions rational.  Even Noriega was smart enough to \n> >> give up and go for the trial he deserved.\n> >> \n> >\n> >Mr. Roby, you are a government sucking heartless bastard.  \n> \n> Unworthy of comment.\n\nBut apparently true.  My opinion, only, of course.\n\n> \n> >Humans died  \n> >yesterday, humans who would not have died if the FBI had not taken the \n> >actions  \n> >they did.  That is the undeniable truth.  I cried for them.  \n> \n> Nor would they have died if they had come out with their hands empty.\n> That is undeniable truth.  \n\nNo, it is not.  It is possible the FBI planned for this to happen, and the  \ngunfire heard was the FBI keeping the folks inside.  I'm not proposing this as  \nthe way it went down, but just to point out that it's not \"undeniable\" that if  \nthey walked out yesterday, they would be alive today.\n\n> My heart bleeds just as much as yours for \n> the children who were never released given 51 days of ample opportunities \n> to do so.  My heart also bleeds for people so blinded by religious devotion \n> to not have the common sense to leave the compound when tanks came up \n> and started dropping in tear gas early in the morning.\n> \n\nMy heart \"bleeds\" for no one.  You are the \"bleeding heart\".  And I'm sure  \nbeyond any possible doubt that you do not feel for those people as I do.  You  \ncan not say the heartless things you have said if you did.\n\n> >You seem to say  \n> >they got what they deserved.\n> \n> I do not think this.  However, if they did set the fire (which started in \n> more than one place and spread very quickly), then they got what they \n> wanted and put into motion themselves.\n\n\"they got what they wanted\".  What kind of creature are you that you can  \nbelieve this?\n> \n> I see the BATF is going to be investigated by the Justice Dept. and likely \n> by Arlen Spectre and congress.  This is good.  They have bungled the affair \n> from the start.\n> \n\nWe agree on this.  Now lets have your God, the FBI, investigated, too.\n\n> >Jim\n> >--\n> >jmd@handheld.com\n>  \n>------------------------------------------------------------------------------ \n-\n> >\"I'm always rethinking that.  There's never been a day when I haven't  \nrethought  \n> >that.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n> >\"If I were an American, as I am an Englishman, while a foreign troop was  \nlanded  \n> >in my country, I never would lay down my arms,-never--never--never!\"\n> >WILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n> \n> \n> -- \n> \n\nJim\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6780, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ob00@ns1.cc.lehigh.edu (OLCAY BOZ)\nSubject: Re: How do I make GhostScript work?\nOrganization: Lehigh University\nLines: 40\n\n\nyou Need gs252ini.zip and 24*.zip, and 25*.zip font files. You can get these\nfrom  wuarchive.wustl.edu /mirrors/msdos/postscript. I also advice you to get\ngs252gui.zip from CICA. It is a nice interface for ghostscript. Ghostscript is\nvery user unfriendly. This interface makes it user friendly. For using this\ninterface you have to get vbrun100.dll (from risc.ua.edu /pub/network/misc)\ncopy this to your windows directory. Copy gui executables and other files to\nyour ghostscript directory. And anter the line below to your autoexec.bat.\n\nSET GS_LIB=C:\\<your ghostscript and gui directory>\n\nNow you are ready to use it. Enjoy it.\n\n\n\nIn article <1993Apr16.114432.1@ulkyvx.louisville.edu>, cl238405@ulkyvx.louisvill\ne.edu (Steve W Brewer) writes:\n>What files do I need to download for GhostScript 2.5.2?  I have never used\n>GhostScript before, so I don't have any files for it.  What I *do* have is\n>gs252win.zip, which I downloaded from Cica.  Unfortunately, it doesn't seem to\n>work on it's own, but needs some more files that I don't have.  I want to run\n>GhostScript both in Windows 3.1 and in MS-DOS on a 386 PC (I understand there's\n>versions for both environments).  What are all the files I need to download and\n>where can I get them?  Any info would be appeciated.\n>\n>-------------------------------------------------------------------------------\n-\n>  Steve W Brewer                                                rewerB W evetS\n>  cl238405@ulkyvx.louisville.edu                ude.ellivsiuol.xvyklu@504832lc\n>-------------------------------------------------------------------------------\n-\n>\n-- \n____________________________________________________________________________\n****************************************************************************\n\n            _m_\n        _    0___\n         \\ _/\\__ |/\n            \\   /|\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6781, "properties": {"category": "talk.politics.guns", "text": "From: yoony@aix.rpi.edu (Young-Hoon Yoon)\nSubject: Re: A Scoop of Waco Road, Please\nKeywords: topical, smirk\nNntp-Posting-Host: aix.rpi.edu\nLines: 62\n\ncdt@sw.stratus.com (C. D. Tavares) writes:\n\n>Your \"lite\" posting for the day, from rec.humor.funny:\n\n>In article <S539.2adf@looking.on.ca>, bellas@tti.com (Pete Bellas) writes:\n>> \n>> There is a new Ice Cream Flavor inspired by the incident at Waco.\n>> \n>> It's called Mount Caramel, it's full of nuts but you can't get it out\n>> of the carton.\n>-- \n\n>cdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\n>OR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n\nEven though I find this to be funny on the surface, the original poster of the\njoke has  tried and convicted the members of the BD to be a bunch of \"nuts\".\nThis may be a dangerous thing to do.  It is my opinion that most educated\nor well informed people of this country have some distrust of the government.\nThis should exist because as a bureaucracy, any government given enough time\nwill tend to exist for it self and not for the original purpose it was \ncreated for.  This distrust by the people should keep those in power in-line.\nThat and a properly functioning press.  When a sensationalism oriented press\nportrays a group of people as \"nuts\" or crazies, a violation of those\npeople's civil rights seem justified.   Since we, as American's, have the \ngurantee of rights as enumerated in the constitution, to include the\n2nd ammendment, the government must appease the public's opinion or risk \nvoted out of existance, or if it has become corrupt enough to tamper with\ndomocratic process itself, being thrown out by force.\n  Our government as it stands, must appease the public.  Therefore the \nofficial press releases portray the BD's as fanatics who are a threat to\npublic safety.  We must not prejudge people based on one sided information.\nSo far the only information that we are being given is comming from the very\nagency that was embarrased by the BD(Branch Davidians sp?).  It is to their\nadvantage to make the BD's as fanatical and dangerous as possible.  If they\nwere portrayed as law-abiding citizen's, then they(ATF) had no justification\nwhat so ever of doing what they did.\n   So let's keep an open mind.  Jokes like above, even though it may be funny,\nmay mislead the public from the truth of the matter.\n\nJust as an aside,  my understanding of U.S. vs Rock Island and U.S. vs Dalton\nleads me to believe that the National Firearms Act, which allows the Fed's\n(in this case ATF) to regulate firearms(machine guns), has been deemed to be\nunconstitutional since 1986.(By two federal district courts at least).\nAnd since, I believe the only reason ATF was involved\nin this case is because of firearms violations, it would be interesting to \nfind out whether or not the search warrent was based on the NFA.\nIt would be very embarrassing indeed if a search warrent based on a possibly\nunconstitutional law has resulted in 4 deaths(Law enforcement). \n\n\n****************************************************************************\nThe above opinions are mine and mine only.\nI'm solely responsible for my opinions and my actions.  If you must flame\nthen flame away, but a well constructed argument will be much more respected.\n\nYoung-hoon Yoon                         yoony@rpi.edu\n211 North Hall                          n6zud@hibp1.ecse.rpi.edu\nRensselaer Polytechnic Institute        N6ZUD/2   HL9KMT(former)\nTroy, NY 12180\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6782, "properties": {"category": "rec.motorcycles", "text": "From: xlyx@vax5.cit.cornell.edu\nSubject: Shaft-drives and Wheelies\nDistribution: rec\nOrganization: Cornell University\nLines: 4\n\nIs it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n\nMike Terry\n'82 Virago\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6783, "properties": {"category": "comp.windows.x", "text": "From: pjaques@camborne-school-of-mines.ac.UK (Paul Jaques)\nSubject: Problem with dni and openwin 3.0\nOrganization: The Internet\nLines: 23\nTo: xpert@expo.lcs.mit.edu\n\nCan anyone help me?\n\nI am having a problem displaying images greater than 32768 bytes from a\nDecwindows program running on a Vax 6310, and displaying on a Sparc IPC\nrunning Openwindows 3.0 and dni. The program works fine with Openwindows 2.0.\n\nThe code segment which fails is given below, the program simply crashes\nout with an Xlib I/O error at the XPutImage() call.\n\n\tXImage          *ximage;\n\tximage = XCreateImage(myDisplay, DefaultVisual(myDisplay, myScreen), \n\t\t\t      ddepth, ZPixmap, 0, image,\n\t\t\t      xwid, ywid, 8, 0);\n\tXPutImage(myDisplay, myWindow, myGC,\n\t\t  ximage, 0, 0, xpos, ypos, xwid, ywid);\n\n\n-----------------------------------------------------------------------------\n| Paul Jaques                                                               |\n| Systems Engineer, Camborne School of Mines,                               |\n|                   Rosemanowes, Herniss, Penryn, Cornwall.                 |\n| E-Mail: pjaques@csm.ac.uk Tel: Stithians (0209) 860141 Fax: (0209) 861013 |\n-----------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6784, "properties": {"category": "rec.motorcycles", "text": "From: M. Burnham <markb@wc.novell.com>\nSubject: Re: How to act in front of traffic jerks\nX-Xxdate: Thu, 15 Apr 93 16:39:59 GMT\nNntp-Posting-Host: 130.57.72.65\nOrganization: Novell Inc.\nX-Useragent: Nuntius v1.1.1d12\nLines: 16\n\nIn article <RMUGELE.93Apr15135857@oasun1.oracle.com> Robert Mugele,\nrmugele@oracle.com writes:\n>Absolutely, unless you are in the U.S.  Then the cager will pull a gun\n>and blow you away.\n\nWell, I would guess the probability of a BMW driver having a gun would\nbe lower than some other vehicles.  At least, I would be more likely \nto say something to someone in a luxosedan, than a hopped-up pickup\ntruck, for example.\n\n- Mark\n\n------------------------------------------------------------------------\nMark S. Burnham (markb@wc.novell.com) AMA#668966  DoD#0747 \nAlfa Romeo GTV-6                             '90 Ninja 750\n------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6785, "properties": {"category": "rec.sport.hockey", "text": "From: Bjornar.Steinbakken@edb.uib.no\nSubject: Re: #77's?\nOrganization: University of Bergen\nLines: 13\n\nIn article <1r23on$4p6@bigboote.WPI.EDU> ching@bigwpi.WPI.EDU (\"The\nLogistician\") writes:\n>\n>I am in need of all of the players wearing #77 in the NHL.  I know now\nonly\n>of one, Ray Borque for the Bruins.  Any help would be greatly\nappreciated.\n\nPaul Coffey of Detroit RedWings\n\n\nBjoernar Steinbakken\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6786, "properties": {"category": "sci.med", "text": "From: cab@col.hp.com (Chris Best)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: your service\nLines: 20\nNNTP-Posting-Host: hpctdkz.col.hp.com\n\n\nJason Chen writes:\n> Now here is a new one: vomiting. My guess is that MSG becomes the number one\n> suspect of any problem. In this case. it might be just food poisoning. But\n> if you heard things about MSG, you may think it must be it.\n\n----------\n\nYeah, it might, if you only read the part you quoted.  You somehow left \nout the part about \"we all ate the same thing.\"  Changes things a bit, eh?\n\nYou complain that people blame MSG automatically, since it's an unknown and\ntherefore must be the cause.  It is equally (if not more) unreasonable to\ndefend it, automatically assuming that it CAN'T be the culprit.\n\nPepper makes me sneeze.  If it doesn't affect you the same way, fine.\nJust don't tell me I'm wrong for saying so.\n\nThese people aren't condemning Chinese food, Mr. Chen - just one of its \n(optional) ingredients.  Try not to take it so personally.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6787, "properties": {"category": "talk.politics.misc", "text": "From: rja@mahogany126.cray.com (Russ Anderson)\nSubject: Re: Gore throws out the first ball. And media coverage of it\nOriginator: rja@mahogany126\nLines: 37\nNntp-Posting-Host: mahogany126\nOrganization: The 1991 World Champion Minnesota Twins!\nDistribution: usa\n\n\nIn article <1993Apr15.093957.1213@hsh.com>, paul@hsh.com (Paul Havemann) writes:\n> In article <1993Apr13.122543.1682@hemlock.cray.com>, rja@mahogany126.cray.com (Russ Anderson) writes:\n> > \n> > In article <C5E2JA.849@ncratl.AtlantaGA.NCR.COM>, mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson) writes:\n> >> This past Thursday VP GOre threw out the first ball at the home opener for\n> >> the Atlanta Braves. According to the news reports he was quite loudly booed.\n> >> (No, Dr. Norman, these were not your typical beer swilling red-necks.)\n> >> \n> >> Personally I wouldn't have paid any more attention to the incident except\n> >> that the evening news when describing the event, went on to comment that\n> >> being booed was nothing unusual since it was normal for audiences to\n> >> boo at this point since the celebrity was delaying the start of the game.\n> >> \n> >> What a bunch of crock. I have never heard of any incident in which the\n> >> thrower of the ceremonial ball has been booed before.\n> > \n> > Dan Quayle got roundly booed in Milwaulkee last year.  (I was listening \n> > on the radio).  This was the game that Quayle told the Brewers players that\n> > he would like to see them play the Orioles in the ALCS.\n> \n> It's come to this, has it?  Defending Al Gore by comparing him to Dan Quayle?\n\nWho compared Quayle to Gore?  Mark said he had never heard of any incident\nin which the thrower of the ceremonial ball had been booed before.  I mentioned\nanother incident.  (And if the media had a liberal bias, I'm sure he would\nhave heard of the Quayle incident.)\n\nIf I was to compare Quayle to anyone, it most likely would be Elmer Fudd.\n\n> I'd say that about says it all... back to the pit with ye, back to alt.fan.\n> dan-quayle!  Begone!\n\n-- \nRuss Anderson    |  Disclaimer: Any statements are my own and do not reflect\n------------------              upon my employer or anyone else.  (c) 1993\nEX-Twins' Jack Morris, 10 innings pitched, 0 runs (World Series MVP!)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6788, "properties": {"category": "comp.graphics", "text": "From: squeegee@world.std.com (Stephen C. Gilardi)\nSubject: Need PostScript strokeadjust info\nSummary: Seeking algorithm for endpoint \"snapping\"\nKeywords: postscript emulation adjust stroke strokeadjust\nOrganization: SQ Software via The World Public Access UNIX, Brookline, MA\nLines: 31\n\nI need information on the Display PostScript strokeadjust feature.\nThis feature adjusts the endpoints of lines so that the displayed line\nlooks better on low resolution devices.\n\nThe PostScript literature explains the process to some extent.  They\nalso give an example of how to \"emulate\" strokeadjust in PostScript\nenvironments where it is absent.\n\nThe suggested emulation is to modify the coordinates of the endpoints\nof a line using the following formula for each coordinate:\n\n\tnew_coord = (round (old_coord - 0.25)) + 0.25\n\t\nDoing this we end up with all coordinates ending in \".25\".  From\nreading I thought that what they might actually do is:\n\n\tnew_coord = ((trunc (old_coord * 2)) / 2) + 0.25\n\t\nThis results in all the coordinates ending in either \"0.25\" or \"0.75\" \nwhichever is closer.\n\nBy doing some actual comparisons with Display PostScript, I find that\nneither of these is what DPS really uses.  Since I like how the DPS\nresult looks better than how my stuff looks, I'd like to know if\nanyone who knows how DPS does it is willing/able to tell me.\n\nThanks,\n\n--Steve\nsqueegee@world.std.com\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6789, "properties": {"category": "rec.motorcycles", "text": "From: denis@apldbio.com (Denis Concordel)\nSubject: *** For sale: 1988 Husqvarna 510TE ***\nDistribution: ba,ca\nOrganization: Applied Biosystems, Inc\nLines: 42\n\nFor sale:\n\n  Model  : Husqvarna 510 TE (enduro model)\n  Year   : 1988\n  Engine : 500 cc Four Stroke\n\n  Extras : - 1992 ignition (for easy starting)\n           - Suspension by Aftershock\n           - Custom carbon fiber/Kevlar skid plate\n           - Quick steering geometry\n           - Stock (EPA legal and quiet) exhaust system\n           - Bark busters and hand guards\n           - Motion Pro clutch cable\n\n  Price  : $2200\n\n  Contact: Denis Concordel  E-Mail: denis@apldbio.com\n                            MaBell: (415) 570 6667 (work)\n                                    (415) 494 7109 (home)\n\n  I am selling my trusty Husky... hopefully to buy a Husaberg...  This is\n  a very good dirt bike and has been maintained perfectly.  I never had\n  any problems with it.\n\n  It's a four stroke, 4 valves, liquid cooled engine. It is heavier than \n  a 250 2 stroke but still lighter than a Honda XR600 and has a lot better \n  suspension (Ohlins shock, Husky fork) than the XR. For the casual or non\n  competitive rider, the engine is much better than any two stroke.\n  You can easily lug up hills and blast through trails with minimum gear\n  changes.\n  \n  The 1992 ignition and the carefully tuned carburation makes this bike\n  very easy to start (starts of first kick when cold or hot).  There is a\n  custom made carbon/kevlar (light 1 pound) wrap around skid plate to protect\n  the engine cases and the water pump.  The steering angle has been reduced \n  by 2 degree to increase steering quickness. This with the suspension tune-up\n  by Phil Douglas of Aftershock (Multiple time ISDE rider) gives it a better\n  ride than most bike: plush suspension, responsive steering with no head shake.\n\n  So if it is such a good bike why sell it???? Gee, I want to buy a Husaberg,\n  which just a husky but 25 pounds lighter... and a tad more $$$.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6790, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Do we need the clipper for cheap security?\nLines: 43\n\n: From: caronni@nessie.cs.id.ethz.ch (Germano Caronni)\n\n: In article <9304201003.AA05465@pizzabox.demon.co.uk> gtoal@gtoal.com (Graham Toal) writes:\n: >Can someone tell me if hardware compression is or is not needed to run\n: >digital speech down 14.4K?  I think it is; I've heard it's not.  Lets\n: >say 8 bit samples.  Would *raw* data at the corresponding sampling rate\n: >be usable?  If not, how fancy does the compression need to be?\n\n: As far as I know ISDN (call it Swissnet here, and it's being plugged in) it's\n: 8 bit 8000Hz (gives you one channel of 64kBit/sec) I guess you should not go\n: below a sampling rate of 6000 Hz if you want to have same quality as on an\n: analog-line. Anybody knows compression-algorithms & -factors for voice ?\n\nI've posted some info on CELP coding on sci.crypt.  Looks like you can\nsqueeze speech into 4000bps if you have a fast enough computer like a\nsparcstation (or a Newton with the Acorn Risc Machine in it :-) )\n\nThis drops the bandwidth to so low a figure that it's feasible to run\nspeech over tcp/ip running on top of slip down a v32bis modem.  Not only\nwill this let us run point to point encrypted speech, it'll let us\nrun speech internationally over the internet if no-one stops us by\ngetting *very* heavy about regulations.  The thought of this, if the\nadministration realised, would probably scare them shitless.\n\nNow of course the trick is to develop and define a standard protocol\nfor internet speech *damn fast*, allowing anyone who feels brave to\ninplement custom handheld hardware as well as us hacking it on our\nworkstations.  Shouldn't be too difficult.  The CELP stuff is standardised,\nwe use tcp/ip streams, and a protocol allowing silences to be used to\ncatch up on any net lag, and also to avoid sending any data during\nsilences (ie it's not wise to be synchronised real-time on each end\nbecause any net delays would add up to big voice-lags)\n\nAs for me, I'm going to press ahead on trying this stuff as soon as\nI get my sparc back from being loaned out and buy the necessary microphone.\nIt'll save me a fortune in calling my friend in texas every night :)\n(whether encrypted or not)\n\nYou know, surely *someone* is working on this.  Who?  It's so obvious,\nwhy doesn't it exist already?  I've only seen netphone for Suns and\nit didn't do the CELP compression so was restricted to ether connections.\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.319+0000", "event": "documents", "entityId": 6791, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: Re: Can sin \"block\" our prayers?\nOrganization: Kulikauskas home\nLines: 27\n\nmike@boulder.snsc.unr.edu (Mike McCormick) writes:\n\n> Not honoring our wives can cause our prayers to be hindered:\n> \n>         You husbands likewise, live with your wives in\n>         an understanding way, as with a weaker vessel,\n>         since she is a woman;  and grant her honor as\n>         a fellow heir of the grace of life, so that your\n>         prayers may not be hindered.  I Peter 3:7\n\nOne interpretation I've heard of this verse is that it refers to the sin \nof physically abusing one's wife.  The husband is usually physically \nstronger than his wife but is not permitted to use this to dominate her.  \nHe must honor her as his sister in Christ.  This would therefore be an \nexample of a specific sin that blocks prayer.\n\nThis verse also makes me think of the kind of husband who decides what \nis God's will for his family without consulting his wife.  God reveals \nHis will to both the husband and the wife.  There needs to be some \ndegree of mutuality in decision making.  Even those whose understanding \nof the Bible leads to a belief in an authoritarian headship of the \nhusband need to incorporate this in order to have a functional family.  \nOne way to look at it is that God speaks to the wife through the husband \nand to the husband through the wife.\n\n\nJayne Kulikauskas/ jayne@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6792, "properties": {"category": "comp.windows.x", "text": "From: dealy@narya.gsfc.nasa.gov (Brian Dealy - CSC)\nSubject: Re: Monthly Question about XCopyArea() and Expose Events\nOrganization: NASA/Goddard Space Flight Center\nLines: 43\nDistribution: world\nNNTP-Posting-Host: narya.gsfc.nasa.gov\nOriginator: dealy@narya.gsfc.nasa.gov\n\n\n|> (2nd posting of the question that just doesn't seem to get answered)\n|> \n|> Suppose you have an idle app with a realized and mapped Window that contains\n|> Xlib graphics.  A button widget, when pressed, will cause a new item\n|> to be drawn in the Window.  This action clearly should not call XCopyArea() \n|> (or equiv) directly; instead, it should register the existence of the new\n|> item in a memory structure and let the same expose event handler that handles\n|> \"regular\" expose events (e.g. window manager-driven exposures) take care\n|> of rendering the new image.  Using an expose event handler is a \"proper\" way\n|> to do this because at the time the handler is called, the Xlib Window is\n|> guaranteed to be mapped.\n|> \n|> The problem, of course, is that no expose event is generated if the window\n|> is already visible and mapped.  What we need to do is somehow \"tickle\" the\n|> Window so that the expose handler is hit with arguments that will enable\n|> it to render *just* the part of the window that contains the new item.\n|> \n|> What is the best way to tickle a window to produce this behavior?\n\nIf I understand your problem correctly, you want to have a way to send\nexposures to your manager widget when your app-specific code draws xlib\ngraphics on the window.\n\nIt sounds like you might want to send an exposure using\nXSendEvent and specifying a region. If you know the region you need to\nsend the exposure, generally you have the bounding rectangle of the objects,\nyou can use XCreateRegion to create a region, XUnionRectWithRegion to add the\nnew object polygons to the region, and then either use the region\nto clip your GC for the redraw or use XRectInRegion to test which of your\nother objects need to be redrawn. Keeping in mind that the stacking order\nof overlapping objects affects how they look.\n\nHope it helps\n\n-- \nBrian Dealy                |301-572-8267| It not knowing where it's at  \ndealy@kong.gsfc.nasa.gov   |            | that's important,it's knowing\n!uunet!dftsrv!kong!dealy   |            | where it's not at...  B.Dylan\n-- \nBrian Dealy                |301-572-8267| It not knowing where it's at  \ndealy@kong.gsfc.nasa.gov   |            | that's important,it's knowing\n!uunet!dftsrv!kong!dealy   |            | where it's not at...  B.Dylan\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6793, "properties": {"category": "soc.religion.christian", "text": "From: conditt@tsd.arlut.utexas.edu (Paul Conditt)\nSubject: Goodbye, but not forever\nOrganization: Applied Research Laboratories, University of Texas at Austin\nLines: 46\n\nPraise God!  I'm writing everyone to inform you that I have been\naccepted to the Doctor of Psychology program at Fuller Theological\nSeminary in Pasadena, CA.  I've been working long and hard to try to\nget in there and have said many hours of prayer.  I'm very excited for\nthis opportunity, but also very nervous about it.\n\nI'd appreciate the prayers of the readers of this group for my preparation\nfor school this summer and for my career as a graduate student.  I'd also\nappreciate any information any of the readers of this group might have \nabout Fuller, Pasadena, or California in general, like good places to\nhave fun, good churches to check out, or anything else that might be\ngood for me to know.  Also, if anyone knows of any foundations that \nmight have funding or scholarship money available, please let me know!\nOf course, if you wish to make a personal contribution.....:)\n\nThe contract for my current job is over at the end of April.  I'll be\ntaking a couple classes at UT this summer and then I'll be moving to\nPasadena.  Hopefully, I'll be able to get net.access next fall, although\nFuller doesn't have it itself.\n\nI've enjoyed the interesting discussions and I commend everyone for their\nearnest search to please God.  Thanks to our moderator for providing\nsuch a wonderful service and in doing a great job of running this news\ngroup.\n\nMay God bless you all.  Vaya con Dios, mi amigas y amigos.\n\nPaul\n\n\n===============================================================================\nPaul Conditt\t\tInternet: conditt@titan.tsd.arlut.utexas.edu\nApplied Research\tPhone:\t  (512) 835-3422   FAX: (512) 835-3416/3259\n  Laboratories\t\tFedex:\t  10000 Burnet Road, Austin, Texas 78758-4423\nUniversity of Texas\tPostal:\t  P.O. Box 8029, Austin, Texas 78713-8029\nAustin, Texas <----- the most wonderful place in Texas to live\n\n\n  TTTTTTTTTTTTTTT              \n  TTT   TTT   TTT                 \n        TTT                    \n   TTTTTTTTTTTTT                  Texas Tech Lady Raiders\n   TT   TTT   TT                   1992-93 SWC Champions\n        TTT                    1992-93 NCAA National Champions\n        TTT\n      TTTTTTT\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6794, "properties": {"category": "rec.sport.baseball", "text": "From: jlroffma@unix.amherst.edu (JOSHUA LAWRENCE ROFFMAN)\nSubject: Re: Jewish Baseball Players?\nNntp-Posting-Host: amhux3.amherst.edu\nOrganization: Amherst College\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 12\n\n: >baseball players, past and present.  We weren't able to come up\n: >with much, except for Sandy Koufax, (somebody) Stankowitz, and\n: >maybe John Lowenstein.  Can anyone come up with any more.  I know\n: >it sounds pretty lame to be racking our brains over this, but\n: >humor us.  Thanks for your help.\n: \n\n\nJohn Lowenstein is definately NOT Jewish.  Many in Baltimore thought he was...\nespecially after he told the Baltimore _Jewish Times_ so...but later he\nadmitted that it was a joke.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6795, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re:  Potvin's new goalie mask\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nDistribution: na\nLines: 38\n\n\nStephen Legge (SLEGGE@kean.ucs.munc.ca) writes:\n>I was wtahcing RIGHT GUARD HOCKEY WEEK on TSN yesterday and they had\n>a feature on this guy that does a lot (most?) of the masks for NHL\n>goalies.  They talked about how they are made, what they are made of,\n>and the designs that are put on them, etc.\n\nActually, this part was really interesting.  It turns out that the mask is\ncustom-fit to the goalie's face.  The goalie puts his/her face through a\npiece of wood (or was it plastic?) with a hole in it that allows only the face\nand forehead to show.  Hair is covered by a cap, eyes are covered by a plastic\nwrap-type material, and vaseline is put on the goaltender's face.  Then, a\nplaster is spread on their cheeks, forehead, and chin which takes about 12\nminutes to dry sufficiently.  When it dries, it is effectively a mold of the\ngoalie's face.  This is used as the basis of the mask (the rest involves\npadding the inside, hardening the exterior, fitting the cage, etc. etc.  \nJohn Blue of the Bruins actually demonstrated the procedure on the show. \n\n>He exhibited a couple masks he is currently working on, namely, a\n>new mask for Andy Moog which is a basic re-working of his current\n>mask with the bear on it, and new mask for Bob Essensa which was \n>*really* cool -- the Jets logo was on the chin, and there were two\n>fighter jets on either side on the forehead with an air-brushed\n>back-ground.\n\nYeah, Essensa's mask looked really good.\n \n>The best one of all was one he never talked about, he just held it up.\n>It has the current Leafs crest on the chin and an awesome looking \n>black panther on the forehead -- it *has* to be a new mask for Felix\n>Potvin, but he never said whose it was.\n\nActually, I thought I heard him say that it _was_ Potvin's for certain.  I\nwould bet money on it either way...and it did look awesome!\n\n\ndchhabra@stpl.ists.ca\n \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6796, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: Re: Perfect MAG MX15F Monitors?\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 27\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\n\n\n\nArticle #60579 (60704 is last):\nFrom: r0h7630@tamuts.tamu.edu (Rithea Hong)\n>Newsgroups: comp.sys.ibm.pc.hardware\nSubject: Re: Perfect MAG MX15F Monitors?\nDate: Sat Apr 17 07:13:05 1993\n\nA friend of mine got a Mag of the above model and it had some distrotion, so\nhe sent it back.  Unfortunately, the replacement also was distorted.  I would\nbet it's a common problem.  The best advice I've heard when buying monnitors\nis to actually look at the specific one you will buy (as opposed to model)\nsince monitor manufacturing even from \"Big Names\" still tends to produce\nalot of monitors with visible defects.\n\n\n                              Rithea Hong\n                       (r0h7630@tamuts.tamu.edu)\nEnd of File, Press RETURN to quit\n\nJust to name two at the top of my list of crap monitor makers are,\nSONY & MAGNAVOX...Sam\n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6797, "properties": {"category": "sci.space", "text": "From: tffreeba@indyvax.iupui.edu\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nLines: 42\n\n\nIn article <1993Apr20.001757.7543@bby.com.au>, gnb@leo.bby.com.au (Gregory N. Bond) writes:\n> In article <6ZV82B2w165w@theporch.raider.net> gene@theporch.raider.net (Gene Wright) writes:\n> \n>>    Announce that a reward of $1 billion would go to the first corporation \n>>    who successfully keeps at least 1 person alive on the moon for a\n>>    year. \n> \n> And with $1B on offer, the problem of \"keeping them alive\" is highly\n> likely to involve more than just the lunar environment! \n> \n> \"Oh Dear, my freighter just landed on the roof of ACME's base and they\n> all died.  How sad.  Gosh, that leaves us as the oldest residents.\"\n> \n> \"Quick Boss, the slime from YoyoDyne are back, and this time they've\n> got a tank!  Man the guns!\"\n> \n> One could imagine all sorts of technologies being developed in that\n> sort of environment.....\n> \n> Greg.\n> \n> (I'm kidding, BTW, although the problem of winner-takes-all prizes is\n> that it encourages all sorts of undesirable behaviour - witness\n> military procurement programs.  And $1b is probably far too small a\n> reward to encourage what would be a very expensive and high risk\n> proposition.)\n> -\n> Gregory Bond <gnb@bby.com.au> Burdett Buckeridge & Young Ltd Melbourne Australia\n\nHey!  My dad has an old hangar and Judy has some old rockets in her attic,\nlet's put on a Lunar program! . . .  Sounds good, but . . .\nLet's play a game - What would be a reasonable reward?  What companies would\nhave a reasonable shot at pulling off such a feat?  Just where in the\nbudget would the reward come from?  Should there be a time limit?  Would a\nstraight cash money award be enough or should we throw in say . . . \nexclusive mining rights for the first fifty years? You get the idea.\n\nI'd like to play but I don't have a clue to the answers.\n\nTom Freebairn   | He who refuses to understand math\n                | will probably never get his checkbook figured out.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6798, "properties": {"category": "talk.religion.misc", "text": "From: clavazzi@nyx.cs.du.edu (The_Doge)\nSubject: What we can learn from the Waco wackos\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nDistribution: usa\nLines: 34\n\n\n\tThere are actually a few important things we can glean from this mess:\n1)\tWhen they start getting desperate for an answer to the question: \"What's\nit all about. Mr. Natural?\", pinkboys will buy darn near *anything*, which\nmeans:\n2)\tThere's still plenty of $$$$ to be made in the False Jesus business\nby enterprising SubGenii.  Just remember that:\n3)\tOnce you've separated the pinks from their green, don't blow it all\non automatic weapons from Mexico.  Put it in a Swiss bank account.  Smile a\nlot.  Have your flunkies hand out flowers in airports.  The Con will just\nshrug you off as long as:\n4)\tYou never, never, NEVER start to believe your own bulldada!  If\n\"David Koresh\" hand't started swallowing his own \"apocalypso now\" crap, he'd\nbe working crossword puzzles in the Bahamas today instead of contributing to\nthe mulch layer in Waco.  This is because:\n5)\tWhen you start shooting at cops, they're likely to shoot back.  And \nmost of 'em are better shots than you are.\n\n\tIn short:\n\t- P.T. Barnum was right \n\t\tand\n\t- Stupidity is self-correcting\nThus endeth the lesson.\n\n\t************************************************************\n\t*  \tThe_Doge of South St. Louis\t\t\t   *\n\t*\t\tDobbs-Approved Media Conspirator(tm)\t   *\n\t*\t\"One Step Beyond\"  -- Sundays, 3 to 5 pm\t   *\n\t*\t\t88.1 FM\t\tSt. Louis Community Radio  *\n\t*  \"You'll pay to know what you *really* think!\"           *\n\t*\t\t\t-- J.R. \"Bob\" Dobbs\"\t\t   *\n\t************************************************************\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6799, "properties": {"category": "sci.electronics", "text": "From: rich1@netcom.com (Richard Soennichsen)\nSubject: Re: electronic odometers (was: Used BMW Question ..... ???)\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 1\n\nThe Bmw speedo is triggered by a reed switch\\magnet assembly in the differential. I would think that this signal would be easy to reproduce.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6800, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Statement to everyone on t.p.g\nLines: 24\n\nOk, here goes.  Yes folks, I realize I have stuck my foot in my mouth\nquite a few times already so please let me make some clarifications.  My\ninaccurate information in my posts was due to lack of knowledge.  Thanks\nto you kind (and some not so kind) people I am learning.   Some people\nhave given me several good points to ponder and I see how I was wrong.\nIn no way was this inaccurate information supposed to be trying to\nfurther the anti-gun cause.  I have said several times before (but\nnobody seemed to be listening) that I am pro-gun and anti-gun-control.\n\nAs far as the race can of worms that I have opened up I have only one\nthing to say - I am in no way prejudiced.  Some of the things I have\nstated were said to demonstrate that I am not prejudiced and/or a racist\nbut I have been accused of being too aware of race and prejudiced.  I will not\nsay anymore about that subject because no matter what I say it will be the\nwrong thing.\n\nBoy, what a start to being on a new group.  Oh well, things have been\nworse in my life.\n\nI hope this clears things up but I guess that will remain to be seen.\n\nBy for now,\n\nJason\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6801, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: D.L.P.Li1@lut.ac.uk (DLP Li) \nSubject: NEW SVGA card?\nReply-To: D.L.P.Li1@lut.ac.uk (DLP Li)\nOrganization: Loughborough University, UK.\nLines: 12\n\nHi, all hardware netters,\n\n  I've seen recently on some magazines advertising a ?NEW? Trident\ngraphics card call 8900CL. The ad said it's new and *faster*. How is it\ncompare to Tseng ET4000? BTW, which is the fastest *non-accelerated* SVGA\non the market? Any info or benchmark are welcome. Thanks in advance.\n\n\t\t\t\t\t\tregards,\n\n\t\t\t\t\t\tDesmond Li\n\t\t\t\t\t\tLUT, UK.\n \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6802, "properties": {"category": "comp.windows.x", "text": "From: mknewman@blkbox.COM (Marc Kraker Newman)\nSubject: Unsubscribe pancamo@blkbox.comm\nOrganization: The Internet\nLines: 5\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nPlease unsubscribe pancamo@blkbox.com.  This user has become inactive and I\nwish to discontinue his participation in this mailing list.\n\nMarc Newman\nmknewman@lkbox.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6803, "properties": {"category": "talk.politics.misc", "text": "From: akasacou@alfred.carleton.ca (Alexander Kasacous)\nSubject: Re: Chrysler bailout\nOrganization: Carleton University, Ottawa, Canada\nLines: 79\n\nIn article <1993Apr5.195216.27893@magnus.acs.ohio-state.edu> mconners@magnus.acs.ohio-state.edu (Michael R Conners) writes:\n>\n>     Plug this one in- I'm a Conservative, I *hate* Pee-Cee's (although I\n>have to use one at work), and am a proud owner of a NeXT Station.\n>\n>The real question: Should the Feds bail-out Steve Jobs & NeXT (a la Chrysler)\n>so that important manufacturing jobs wouldn't be lost?\n>-- \n\nYou have just reminded me of an old Tom Paxton song...\n\nI\"M CHANGING MY NAME TO CHRYSLER\n(Tom Paxton, 1980)\n\nOh the price of gold is rising out of sight\nAnd the dollar is in sorry shape tonight\nWhat the dollar used to get us\nNow won't buy a head of lettus\nNo the economic forecast isn't right\nBut amidst the clouds I spot a shining ray\nI caneven glimpse a new and better way\nAnd I've devised a plan of action\nWorked it down to the last fraction\nAnd I'm going into action here today.\n\nChorus:\n\n  I am changing my name to Chrysler\n  I am going down to Washington D.C.\n  I will tell some power broker\n  What they did for Iacoca\n  Will be perfectly acceptable to me.\n  I am changing my name to Chrysler\n  I am heading for that great receiving line\n  So when they hand a million grand out\n  I'll be standing with my hand out\n  Yes sir I'll get mine\n\nWhen my creditors are screaming for their dough\nI'll be proud to tell them all where they can go\nThey won'y have to scream and holler\nThey'll all be paid to the last dollar\nWhere the endless streams of money seam to flow\nI'll be glad to tell them all what they can do\nIts just a matter of a simple form or two\nIt's not renumeration it's a liberal education\nAin't you kind of glad that I'm in debt to you\n\nChorus\n\nSince the first first amphibians crawled out of the slime\nWe've been struggling in an unrelenting climb\nWe were hardly up and walking before money started talking\nAnd it's sad failure is an awful crime\nIt's been that way for a millennium or two\nBut now it seems there's a different point of view\nIf you're a corporate titanic and your failure is gigantic\nDown in congress there is a safety net for you.\n\nChorus...\n\n\n\nPerhaps Steven Jobs should take Paxton's advice and change his name to\nChrysler, or perhaps set himself up as an S&L, maybe Neil Bush could\ngive him a hand?\n\n================================================================\nakasacou@alfred.ccs.carleton.ca\n\nNo eternal reward will forgive us now for wasting the dawn...\n                                      J.Morrison\n\nThe opinions expressed above are mine.  Like anyone else would\nadmit to them.\n================================================================\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6804, "properties": {"category": "comp.graphics", "text": "From: young@is.s.u-tokyo.ac.jp (YOUNG Shio Hong)\nSubject: Looking for Dr. Bala R. Vatti's email address\nNntp-Posting-Host: rabbit-gw\nOrganization: Dept. of Information Science, Univ. of Tokyo, Japan.\nDistribution: comp.graphics\nX-Bytes: 660\nLines: 27\n\nHi!\n\nI am looking for the email address of the author to\n\"A Generic Solution to Polygon Clipping\", \nCommunication of the ACM, July 1992, Vol. 35, No. 7. \nI got information about the author as follows\n\tMr. Bala R. Vatti\n\tLCEC, 65 River Road, Hudson, N.H. 03051\n\temail: vatti@waynar.lcec.lockheed\nI want to get some related and detailed papers about the\nsame topic from the author. But I failed to send my email \nto the address. Any information is appreciated.\n\nThank you very much.\n\nBest regards.\n\nS. H. Young\nKunii Lab\nDept. of Information Science\nFaculty of Science\nUniversity of Tokyo\nBunkyo-Ku, Hongo 7-3-1\n113 Tokyo, Japan\nemail: young@is.s.u-tokyo.ac.jp\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6805, "properties": {"category": "alt.atheism", "text": "From: a137490@lehtori.cc.tut.fi (Aario Sami)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Tampere University of Technology, Computing Centre\nLines: 37\nDistribution: sfnet\nNNTP-Posting-Host: cc.tut.fi\n\n[deletions...]\n\nIn <1993Apr13.184227.1191@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n\n>I really don't think you can imagine what it is like to be infinite.\n\nFirst of all, infinity is a mathematical concept created by humans\nto explain certain things in a certain way. We don't know if it actually\napplies to reality, we don't know if anything in the world is infinite.\n\n>It wouldn't be able to\n>comprehend what reality is like for the programmer, because that would\n>require an infinite memory or whatever because reality is continuous and\n>based on infinietely small units- no units.\n\nYou don't know if the universe is actually continuous. Continuum is another\nmathematical concept (based on infinity) used to explain things in a certain\nway.\n\n>Because humans do not know what infinite is.  We call it something\n>beyond numbers.  We call it endless, but we do not know what it is.\n\nI have a pretty good idea of what infinity is. It's a man-made concept, and\nlike many man-made concepts, it has evolved through time. Ancient Greeks had\na different understanding of it.\n\n>So, we can call Allah infinitely powerful, knowledgeable, etc.., yet we\n>cannot imagine what Allah actually is, because we just cannot imagine\n>what it is like to be infinite.\n\nPrecicely. We don't even know if infinity applies to reality.\n\n-- \nSami Aario         |  \"Can you see or measure an atom? Yet you can explode\na137490@cc.tut.fi  |   one. Sunlight is comprised of many atoms.\"\n-------------------'  \"Your stupid minds! Stupid, stupid!\"\nEros in \"Plan 9 From Outer Space\"     DISCLAIMER: I don't agree with Eros.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6806, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: balog@eniac.seas.upenn.edu (Eric J Balog)\nSubject: FLOPPY DRIVE PROBLEM--HELP!!!\nOrganization: University of Pennsylvania\nLines: 25\nNntp-Posting-Host: eniac.seas.upenn.edu\n\nHi!\n\nI have a problem with my floppy drives. In an effort to make my 3.5\" drive \n(normally b:) my a: drive, I switched the order of connections on the cable \nfrom the serial card/floppy/ide controller. I booted up, changed the CMOS\nsettings to reflect the a: drive as the 3.5 and the b: drive as the 5.25.\nThe drive lights didn't come on, and there was a failure trying to read from\nthose drives.\n\nI switched the cables back to their original positions, and then booted-up and\nrestored the original CMOS settings. The lights for the floppies came on\nduring this process, and they stay on for as long as the computer is on.\nI see that when there is a disk in a:, the drive is spinning, yet there seems\nto be no disk access. MSD.EXE and Norton SI detect both drives, but when I \ntry to get detailed information about a: or b:, Norton SI tells me that there\nis no disk in the drive.\n\nCan anyone offer any suggestions?\nI'm in desperate need of help!!!\n\nThank you for your time.\n\nEric Balog\nbalog@eniac.seas.upenn.edu\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6807, "properties": {"category": "sci.med", "text": "From: lunger@helix.enet.dec.com (Dave Lunger)\nSubject: Modified sense of taste in Cancer pt?\nKeywords: cancer\nOrganization: Digital Equipment Corporation\nLines: 13\n\n\nWhat does a lack of taste of foods, or a sense of taste that seems \"off\"\nwhen eating foods in someone who has cancer mean? What are the possible\ncauses of this? Why does it happen?\n\nPt has Stage II breast cancer, and is taking tamoxifin. Also has Stage IV\nlung cancer with known CNA metastasis, and is taking klonopin (also had\ncranial radiation treatments).\n\nThanks!\n\n[not a doctor, but trying to understand family member's illness]\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6808, "properties": {"category": "soc.religion.christian", "text": "From: Petch@gvg47.gvg.tek.com (Chuck Petch)\nSubject: Daily Verse\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 4\n\nLet us not become weary in doing good, for at the proper time we will reap\na harvest if we do not give up. \n\nGalatians 6:9\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6809, "properties": {"category": "alt.atheism", "text": "From: a137490@lehtori.cc.tut.fi (Aario Sami)\nSubject: Re: note to Bobby M.\nOrganization: Tampere University of Technology, Computing Centre\nLines: 14\nDistribution: sfnet\nNNTP-Posting-Host: cc.tut.fi\n\nIn <1993Apr10.191100.16094@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n\n>Insults about the atheistic genocide was totally unintentional.  Under\n>atheism, anything can happen, good or bad, including genocide.\n\nAnd you know why this is? Because you've conveniently _defined_ a theist as\nsomeone who can do no wrong, and you've _defined_ people who do wrong as\natheists. The above statement is circular (not to mention bigoting), and,\nas such, has no value.\n-- \nSami Aario         |  \"Can you see or measure an atom? Yet you can explode\na137490@cc.tut.fi  |   one. Sunlight is comprised of many atoms.\"\n-------------------'  \"Your stupid minds! Stupid, stupid!\"\nEros in \"Plan 9 From Outer Space\"     DISCLAIMER: I don't agree with Eros.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6810, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: pwoodcoc@sms.business.uwo.ca (C. Patrick Woodcock)\nSubject: Page numbering problem with WFW & Canon BJ10e\nOrganization: University of Western Ontario\nNntp-Posting-Host: sms.business.uwo.ca\nLines: 11\n\n     I am using WFW 2.0c with a Canon BJ10e. The printer driver is that \nwhich comes with Windows 3.1. Unfortatunately, I am having a problem with \nprinting page numbers on the bottom of the page. I can print page number \non the top of the page, but not on the bottom. Has anybody had a similar \nproblem and/or does anybody have a solution for such a problem.\n\nThanks\npwoodcoc@business.uwo.ca\n\npwoodcoc@sms.business.uwo.ca (C. Patrick Woodcock)\nWestern Business School  --  London, Ontario\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6811, "properties": {"category": "talk.politics.misc", "text": "From: schwarze@starbase1.caltech.edu (Erich Schwarz)\nSubject: Re: 19th Century Capitalism\nOrganization: CalTech, Div. of Biology\nLines: 38\nDistribution: world\nNNTP-Posting-Host: anise.bio.caltech.edu\n\nIn article <31MAR199317363332@jane.uh.edu>, mece3d@jane.uh.edu (Chris\nStruble) wrote:\nChristian Struble writes:\n\n> Some people are not very good at getting the best deal for their \n> effort, and others are unwilling to put forth much effort, even in\n> the face of economic incentives. There will always be some people \n> who are stupid or lazy, relative to the ability or effort of most \n> others. The question is what do you do with them? There are three \n> options:\n> [...]\n> 2) Kill those who are not productive as a drain upon \"society\". \n>    This is the communist (\"All who do not toil shall not eat\" - \n>    Lenin) or fascist approach.\n> [...]\n\n    You're being too generous to the communists, I think.  In practice,\ncommunism has \"solved\" the problem by killing off anybody who is _too_\nproductive, and who therefore raises embarrassing questions about why the\nrest of the group is a bunch of sluggards.  The mass butchery of \"kulaks\"\nin the USSR is a good instance of this.\n    A poor second best is to have a neighboring capitalist country to which\npeople of politically incorrect skill and ambition flee.  I often wonder\njust what Castro would have done if the Cubans presently in Miami would\nhave been forced to remain in Cuba.  Would they have revolted and killed\nhim off, or been killed?\n    Best of all is to build a wall locking the citizens of your country in,\nload it up so heavily with attack dogs, barbed wire, and land mines that\nmost people fleeing over it die, and then give everyone the choice of\nobedience, prison, or flight.  This would be a bad science-fiction novel,\nif the East Germans hadn't actually done it.  The last person to die\ncrossing the wall, as I recall, was an unarmed woman who was shot in the\nback.  Erich Honecker was going to go on trial for that, but he fled to\nsocialists in Chile.\n    It's good to be kind to one's intellectual opponents, but sometimes\nit's a sheer waste of time.\n\n--Erich Schwarz / schwarze@starbase1.caltech.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6812, "properties": {"category": "misc.forsale", "text": "From: jay@gdx.UUCP (Jay Snyder)\nSubject: WANTED: avionics equip.\nOrganization: GDX-BBS,Central Pa Unix BBS/anon uucp (717)737-3249 PEP+/2400/1200 24hrs\nLines: 21\n\n\nI'm looking for good deals on the following (used or new):\nAviation Headsets (with mic).\nHandheld Nav/Com tranciever (may consider COM only).\nPortable GPS or Loran Navigator.\n\nReply here or call:\n(717)737-3236 (only after 5pm -- please don't wake the night worker\n   in my house).\n(717)540-2895 if you must call during the day (I can understand if you\n   want your employer to pay for the call).\n\n_______________________________________________________________________________\nJay A. Snyder               jay@gdx         ...{uunet,vogon1}!compnect!gdx!jay\nThis is your Brain: (unix)              GDX-BBS (717) 737-3249 WorldBlazer\nThis is your Brain on drugs: (MSDOS)    Unix and MSDOS File areas + Xenix bins\n-- \n_______________________________________________________________________________\nJay A. Snyder               jay@gdx         ...{uunet,vogon1}!compnect!gdx!jay\nThis is your Brain: (unix)              GDX-BBS (717) 737-3249 WorldBlazer\nThis is your Brain on drugs: (MSDOS)    Unix and MSDOS File areas + Xenix bins\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6813, "properties": {"category": "comp.windows.x", "text": "From: viola@asterix.uni-muenster.de (J\u0094rg Viola)\nSubject: Looking for Xt and Xaw\nOrganization: Westfaelischen Wilhelms-Universitaet, Muenster, Germany\nLines: 8\nNNTP-Posting-Host: asterix.uni-muenster.de\n\nI want to compile Xdvi and later perhaps Emacs 19 on a DEC Ultrix machine with\nX installed. Unfortunately, Xt and Xaw libs and headers are missing. How can I\nget them without having to compile the whole MIT distribution ? \n\nPleasy reply by email to: viola@yukawa.uni-muenster.de\n\nThanks in advance.\n   \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6814, "properties": {"category": "sci.electronics", "text": "From: dwo@zerberus.gud.siemens.co.at (F.Dwo)\nSubject: DSP 56001\nNntp-Posting-Host: zerberus.gud.siemens-austria\nOrganization: Siemens AG Oesterreich\nLines: 15\n\nHi !!!\n\nIs there somebody using a 56001 DSP from Motorola ???\nI am searching for programms concerning audio effects.\nI built a 4 channel mixer (4ADC + 1DSP) for audio signals.\nI built some digital filters and echos, but now i want to\ninclude some effects like HARMONIC Equalizer or chorus.\nThe problem is, I dont know how these effects work (so I cant\nwrite a programm).\nSo if someone has programms or just knows how such effects work,\nplease contact me in the newsgroup or via e-mail.\n(Also if there are books about this problem)\n\nThanks in advance\n(DWO)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.320+0000", "event": "documents", "entityId": 6815, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: blean@rwb.esd.sgi.com (Bob Blean)\nSubject: Re: Which high-performance VLB video card?\nOrganization: Silicon Graphics\nLines: 33\n\nIn article <1993Apr16.230319.28437@spartan.ac.BrockU.CA>, tmc@spartan.ac.BrockU.CA (Tim Ciceran) writes:\n\n|> PC Magazine just did another review of high-end graphics accelerators.  For all\n|> around performance (Windows, DOS, CAD) go for ATI Graphics Ultra Pro.  They've\n|> done two reviews in the last three months and that card ranks as an editors\n|> choice in both reviews.  For all around performance it seems it just can't be\n|> beat.  You should pick up this issue of PC-Mag (April 13) and check it out for\n|> yourself.  \n\n\nWindows: The recent reviews have all shown that the P9000 cards are\n\t significantly faster doing Windows than the ATI card.\n\nVGA:\t The recent reviews have all shown that the P9000 cards they looked\n\t at are significantly slower doing VGA than the ATI card.  About\n\t 1/2 the speed, as I recall.\n\n\t The big question for me is the Orchid V9000 card.  Each of the \n\t P9000 cards tested so far has had the W5186 to do VGA.  Orchid\n\t is the only one I know about (I don't know about AMI) that uses\n\t the W5286 for VGA.  That is reportedly faster.\n\t \n\t I would like to know whether the Orchid card can do VGA as fast as\n\t the ATI card.  If so, it would appear to be a formidable competitor.\n\t (Advertised prices are about the same for the two cards.)\n\nSomeone in this group posted a little while back that they were getting an\nOrchid V9000 card -- has that card arrived?  What do the benchmarks look\nlike?\n\nAlso, is the AMI P9000-based card real?  What does it use for VGA?  Speed?\n\n--Bob\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6816, "properties": {"category": "talk.politics.mideast", "text": "From: brow2812@mach1.wlu.ca (craig brown 9210 u)\nSubject: Re: PBS Frontline: Iran and the bomb\nOrganization: Wilfrid Laurier University\nLines: 93\n\nIn article <C5LIHI.389@ccu.umanitoba.ca> ebrahim@ee.umanitoba.ca (Mohamad Ebrahimi) writes:\n>\n>       I would like to share with netters a few points I picked up from the PBS\n>    Frontline program regarding Iran's nuclear activities, aired on Tuesday\n>    April 13. For the sake of brevity, I'll present them in some separate\n>    points.\nAlready say it the other week on CBC Snoozeworld\n\n\n>    1- As many other western programs, this program was laid on a bed of\n>    misinformation throughout the program, to maximize the effect of the\n>    program on the viewer. Some of the misinformations were as follows:\nYeah, I thought Bonanza was full of lies about the West...\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n>\n>    - While the number of martyrs during the sacred defense against Iraqi\n>    aggression has been officially announced to be about 117,000 and even most\n>    radical counter-revolutionary groups claim that Iran and Iraq had a total\n>    of one million dead, this program claims that Iran alone has one million\n>    dead left from the war.\n>\n>    - The translation of Iranian officials' talks are not 100% true. For\n>    example when Iranian head of Atomic Energy says that: \" It hurts me to\n>    see that Iran is the subject of these unfriendly propaganda.\" The \n>    translator says: \" It hurts to see that Iran is doing unfriendly \n>    research.\"!\n>\n>    2- Almost all alleged devices or material bought or planned to be bought\n>    by Iranians were of countless dual usage, while the program tries to \n>    undermine their non-military uses, without any reference to Iran's\n>    big population and its inevitable need to other sources of energy in\n>    near future and its current deficit in electrical power.\n\n\nWhy the hell would such an oil rich (and hydroelectric potential to be\nexploited) spend billions on a nuclear energy programme?\n\n>    3- The whole program is trying to show the Sharif University of \n>    Technology as a nuclear research center, while even the cameramen of the\n>    program know well that in a country like Iran without a so tightly closed\n>    society no one can make a nuclear bomb in a university! Taking in account\n>    the scientific advancement of Sharif U. in engineering fields and its\n>    potential role in improvement of Iran's industries and eventually the\n>    lives of people, it is obvious that they are persuading other countries\n>    to prevent them from further helping this university or other ones\n>    in scientific and industrial efforts.\n>\n>    4- A key point in program's justifications is trying to disvalidate as\n>    much as possible all efforts done by IAEA [*] in their numerous visits from\n>    Iran's different sites. They say: \"We are not sure if the places visited\n>    by IAEA are the real ones or not\" !, or \" We can not rely on IAEA's\n>    reports and observation, because they failed to see Iraq's nuclear\n>    activities before\" as if they didn't know that Iraq was trying to build\n>    nuclear weapons!\n\nYeah, and we have every reason in the world to trust the Iranian regime.\nAfter all, they've been *so* forward with us in the past....\n\n>    5- As an extremely personal opinion, the most disgusting aspect of the\n>    program was the arrogance of the member of US Senate foreign Affairs,\n>    William Triplet, in his way of talking, as if he was the god talking\n>    from the absolute knowledge!\n\nMaybe he *is* God!\n\n>       I hope all Iranians be aware of the gradual buildup against their\n>    country in western media, and I hope Iranian authorities continue to\n>    their wise and calculated approach with regard to international affairs\n>    and peaceful coexistence with friendly nations.\n\nhahahahahahaahah!\n>Mohammad\n>\n>  \n>    [*] International Atomic Energy Agency\n>  \n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6817, "properties": {"category": "rec.sport.baseball", "text": "From: mss@netcom.com (Mark Singer)\nSubject: Re: Dodgers Take 2 Straight From Pirates\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 25\n\nIn article <1qqob2INNqev@mizar.usc.edu> pcaster@mizar.usc.edu (Dodger) writes:\n\n\n>Davis and Strawberry attributed their turn arounds to Reggie Smith,\n>the Dodger batting coach who flew in from Florida three days\n>ago and gave them a pep talk and some instruction.  Davis was\n>4-5 yesterday and had a couple more hits today.  Strawberry\n>had two hits yesterday and I believe he had two more today, with\n>two home runs.\n\n\nFoolish me.  And here I thought it had something to do with the \nfact that they were hitting against Wakefield, who had no \"kncukle\"\nto his ball that day, and Otto, who has no stuff.  I wonder if \nReggie gave the same pep talk and instruction to the rest of the\nlineup, who also suddenly came alive those two games.\n\n\n\n--\tThe Beastmaster\n\n\n-- \nMark Singer    \nmss@netcom.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6818, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: avinash@silver.lcs.mit.edu (Avinash Chopde)\nSubject: TrueType fonts that display but do not print.\nOrganization: MIT Laboratory for Computer Science\nDistribution: na\nLines: 18\n\nI just installed a new TrueType font under MS-Windows 3.1\nbut though all the applications display the font correctly on the\nscreen, quite a few of them fail to print out the document correctly\n(on a LaserJet 4 - non-PostScript printer).\n\nWhen I use the font in CorelDRAW, the document prints correctly, so I assume\nCorelDRAW knows that the font has to be downloaded to the printer.\n\nBut when I use the Windows accessory Write, the printer prints square\nboxes in place of the characters of the new font. Yet, Write does\ndisplay the font correctly on the screen.\n\nI looked through all the Windows and LaserJet manuals, but got nowhere.\nAll of them just make the statement that TrueType fonts will print\nexactly as you see them on the screen---so I assume Windows knows that a font\nhas to be downloaded automatically---but, how to make it do that????\n\nAppreciate any help....\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6819, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: scip2060@nusunix1.nus.sg (SARDJONO INSANI)\nSubject: Connecting Apple Laserwriter II to IBM PC\nOrganization: National University of Singapore\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 11\n\n\nHas anyone tried connecting an Apple Laserwriter II to a PC?\nDo I need any special controller card or software to do that?\n\nThanks for any comments.\n\n--\n========================\nSardjono Insani\nscip2060@nusunix1.nus.sg\n========================\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6820, "properties": {"category": "sci.space", "text": "Subject: DC-X/Y/1 question\nFrom: kkobayas@husc8.harvard.edu (Ken Kobayashi)\nKeywords: DC-X\nNntp-Posting-Host: husc8.harvard.edu\nLines: 17\n\n\n\n   I've been following discussions about the Delta Clipper program, and I\nhave one small question.  As I understand it, the DC-X derived orbital\nvehicle (DC-Y & 1) is to reenter the atmosphere sort of sideways, not\ncompletely nose-first.  So why is the DC-Y look symmetric in every drawing\nI've seen?  I would think that an asymmetric design, sort of like \nwingless Orbiter, may work better, since less shielding is required on the\ntop side.  Can anybody explain?  \n\n- Ken Kobayashi\nkkobayas@husc.harvard.edu\n\n-- \n---------------------------------------------------------------------------\n      Ken Kobayashi              |   \nkkobayas@husc.harvard.edu        |   \"There is no final frontier.\" - IBM ad\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6821, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jbailey@world.std.com (jim bailey)\nSubject: Re: Sampling CD audio (was Re: What to put in Centris 650...)\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 28\n\nldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes:\n\n>In article <bskendigC5H91I.Fu3@netcom.com>, bskendig@netcom.com (Brian Kendig) writes:\n>> jbailey@world.std.com (jim bailey) writes:\n>>>\n>>>Yes, you get internal mixing of the analog CD-Audio outputs with\n>>>the Mac generated audio on the Mac motherboard.  Also you can sample\n>>>the CD-Audio using the sound control panel by clicking on the Options\n>>>button next to the microphone icon.\n>>\n>> What's this?  My IIvx with an internal CD doesn't have any \"CD-Audio\"\n>> icon...\n\n>I can't find any such option on my Centris 650 either. On the other hand, I\n>don't see why I need one. If I try recording sound with the built-in\n>microphone with an audio CD playing in the drive, I get the CD audio mixed\n>in with the microphone sound.\n\n>And I guess if I unplug the microphone, then I'll get uncontaminated CD\n>audio (admittedly sampled at 8 bits through a D-A-D conversion).\n\nSorry about the misinformation.  I made a bad assumption about\nthe new machines behaving like a Quadra 900, see previous\npost.  About sampling the CD audio though, have you tried it?  I \nfound the aliasing to be really bad.  Like it needed a filter or something.\nMuch worse than I expected.  I installed the CD-300 in the \nQuadra myself so maybe I missed something.  Everything else\nworks great though.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6822, "properties": {"category": "rec.autos", "text": "From: music@erich.triumf.ca (FRED W. BACH)\nSubject: Re: WARNING.....(please read)...\nOrganization: TRIUMF: Tri-University Meson Facility\nLines: 33\nDistribution: world\nNNTP-Posting-Host: erich.triumf.ca\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <NEILSON.93Apr15135919@seoul.mpr.ca>, neilson@seoul.mpr.ca (Robert Neilson) writes...\n#[sorry for the 0 auto content, but ... ]\n# \n#> That is why low-abiding citizens should have the power to protect themselves\n#> and their property using deadly force if necessary anywhere a threat is \n#> imminent.\n#>\n#> Steve Heracleous\n# \n#You do have the power Steve. You *can* do it. Why don't you? Why don't you\n#go shoot some kids who are tossing rocks onto cars? Make sure you do a good\n#job though - don't miss - 'cause like they have big rocks - and take it from\n#me - those kids are mean.\n\n  This last comment was obviously a bit cynical, but a true statement of\n the attitude of some drivers (there's your \"autos\" content), I would say.\n\n  What law-abiding (not \"low-abiding\" as above (talk about Freudian slips!))\n citizens have the right and responsibility to do is try to PREVENT this\n type of behaviour in children.  A doctor may have to use \"deadly force\"\n against a part of a body (like amputating it) when an infection/disease\n has gone too far.  But his real desire would have been to *prevent* the\n disease in the first place or at least nip it in the bud.\n\n   Followups should go to alt.parents-teens\n\n Fred W. Bach ,    Operations Group        |  Internet: music@erich.triumf.ca\n TRIUMF (TRI-University Meson Facility)    |  Voice:  604-222-1047 loc 327/278\n 4004 WESBROOK MALL, UBC CAMPUS            |  FAX:    604-222-1074\n University of British Columbia, Vancouver, B.C., CANADA   V6T 2A3\n\n These are my opinions, which should ONLY make you read, think, and question.\n They do NOT necessarily reflect the views of my employer or fellow workers.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6823, "properties": {"category": "misc.forsale", "text": "From: sandy47@cats.ucsc.edu ()\nSubject: Laserdisks Forsale - $20\nOrganization: University of California; Santa Cruz\nLines: 97\nDistribution: usa\nNNTP-Posting-Host: si.ucsc.edu\n\n\nThe following laserdisks are in used but \"like-new\" condition:\n\n\nCategory\tTitle\t\t\t\t\t\tPrice\n=========================================================================\n\nHorror\t\tRabid Grannies\t\t\t\t\t20.00\n\t\t\"A blood-spattered tale of two little old\n\t\tladies who open a surprise package from Hell.\"\n\t\tCLV Side 2 CAV  88 min.\n\nHorror\t\tForbidden World\t\t\t\t\t20.00\n\t\t\"Subject 20 is half-human, and one of the \n\t\tresearchers is the father.\"  Roger Corman, Prod.\n\t\tCLV 77 min.\n\nHorror\t\tHorror Planet\t\t\t\t\t20.00\n\t\t\"An alien creature has been waiting for a\n\t\tmillion years to breed, and its time has come.\"\n\t\tCLV 93 min.\n\nHorror\t\tWitchTrap\t\t\t\t\t20.00\n\t\t\"...and in the upstairs shower, we have the \n\t\tsexy Ms. Ginger Kowowski and this is where all \n\t\tthe chillingly frightful fun comes to a head.\"\n\t\tCLV 92 min.\n\nMurder \t\tBikini Island\t\t\t\t\t20.00\n\t\t\"Swimwear Illustrated needs a cover girl and \n\t\tthe competition is fierce, very fierce.\n\t\tCLV 85 min.\n\nComedy\t\tHysterical\t\t\t\t\t20.00\n\t\t\"It's a blend of timeless farce, contemporary\n\t\tsatire, nonsensical sight gags and dead people\n\t\tsinging and dancing.\"  Hudson Brothers\t\t\n\t\tCLV 90 min.\n\nComedy\t\tHollywood Hot Tubs 2\t\t\t\t20.00\n\t\t\"Valley Girl, Crystal, is back in another\n\t\tsuperheated frolic through those \"Hollywood\n\t\tHot Tubs\".\"  CLV 100 min.\n\nComedy\t\tBeverly Hills Brats\t\t\t\t20.00\n\t\t\"Scooter's in trouble now, his kidnappers \n\t\tdon't take credit cards.\"  Martin Sheen\n\t\tCLV  90 min.\n\nComedy\t\tTransylvania 6-5000\t\t\t\t20.00\n\t\t\"The good citizens of Transylvania invite you\n\t\tto this, the most frighteningly funny event of\n\t\tthe year.\"  Ed Begley Jr., Jeff Goldblum\n\t\tCLV 94 min.\n\nComedy\t\tMeet the Hollowheads\t\t\t\t20.00\n\t\t\"Makes the \"Married...With Children\" gang look\n\t\tsane!  Just say NO to butt polish.\"\n\t\tCLV 89 min.\n\nComedy\t\tDon't Tell Mom The Babysitter's Dead\t\t20.00\n\t\t\"No rules.  No curfews.  No nagging.  No pulse.\n\t\tHome Alone times 5!\"   Christina Applegate \n\t\tCLV 105 min.\n\nAnimated\tPOPEYE at Sea\t\t\t\t\t20.00\n\t\t\"9 hilarious cartoon adventures on the high \n\t\tseas.\"\n\t\tCLV 60 min. Color\n\nMusical\t\tBabes in Toyland\t\t\t\t20.00\n\t\tDisney re-make of the classic with Annette,\n\t\tTommy Sands, Ray Bolger, and Ed Wynn.\n\t\tCLV 105 min.\n\nAction\t\tAmerican Angels\t- Baptism of Blood \t\t20.00\n\t\t\"Meet the first ladies of Wrestling!\"\t\n\t\tCLV  99 min.\n\nMaking of...\tRunaway Train/52 Pickup\t\t\t\t20.00\n\t\t\"All of the behind the scenes action displayed\n\t\tfor your pleasure.\"  Jon Voigt  Ann-Margret\n\t\tCAV 43 min.\n\nDrama\t\tI Posed for Playboy\t\t\t\t20.00\n\t\t\"When fantasy meets reality!\"  Lynda Carter\n\t\tCLV 98 min.\n\n\nShipping costs of $5.00 per disk ($3.00/disk for 3 disks or more) will be\nadded to the total.  10% off of orders of 5 or more titles.  No CODs.\nMO or checks accepted in advance payment.\n\n\nLarry McElhiney\n(408) 426-5858 x358\nmack@mchome.santa-cruz.ca.us\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6824, "properties": {"category": "talk.politics.misc", "text": "From: helfman@aero.org (Robert S. Helfman)\nSubject: Re: Clinton's Wiretapping Initiative\nOrganization: The Aerospace Corporation, El Segundo, CA\nLines: 22\nNNTP-Posting-Host: aerospace.aero.org\n\nIn article <9304161803.AA23713@inet-gw-2.pa.dec.com> blh@uiboise.idbsu.edu (Broward L. Horne) writes:\n>\n>\tIf you look through this newsgroup, you should be \n>\table to find Clinton's proposed \"Wiretapping\" Initiative\n                     ^^^^^^^^^\n>\tfor our computer networks and telephone systems.\n>\n>\tThis 'initiative\" has been up before Congress for at least\n>\tthe past 6 months, in the guise of the \"FBI Wiretapping\"\n        ^^^^^^^^^^^^^^^^^\n>\tbill.\n\nWhat kind of brainless clod posted the above garbage? Would they be\nso kind as to explain how this is \"Clinton's\" initiative, when it\nhas been before Congress for \"at least the past 6 months\"?\n\nJeez, the next thing you know, they'll be blaming the weather on the\npoor guy. They'll be blaming World War II on him. They'll be blaming\nthe Civil War on him. Maybe the Thirty Years War?\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6825, "properties": {"category": "misc.forsale", "text": "From: she3328@ritvax.isc.rit.edu (Steven H. Eckwielen)\nSubject: -=WANTED=- HP 48s or HP 48sx\nNntp-Posting-Host: vaxb.isc.rit.edu\nReply-To: she3328@ritvax.isc.rit.edu\nOrganization: Rochester Institute of Technology\nLines: 10\n\nAS the subject says... looking for a HP 48s or perferiably HP 48sx\n\nPlease E-mail replies.\nThanks\n\nSteven Eckwielen    \n ___ _ _ ___ ___ ___ ___ ___\n| __| | | __|__ |__ |_  | _ |  Bitnet   : she3328@ritvax\n,-- |   | _| |_ ||_ |/ /| _ |  Internet : she3328@ritvax.isc.rit.edu\n|___|_|_|___|___|___|___|___|  UUCP     : rutgers!rochester!rit!ritvax!she3328\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6826, "properties": {"category": "rec.motorcycles", "text": "From: dean@fringe.rain.com (Dean Woodward)\nSubject: Re: Drinking and Riding\nOrganization: Organization for Mass Confusion.\nLines: 36\n\ncjackson@adobe.com (Curtis Jackson) writes:\n\n> In article <MJMUISE.38.733926270@1302.watstar.uwaterloo.ca> MJMUISE@1302.wats\n> }I think the cops and \"Don't You Dare Drink & Drive\" (tm) commercials will \n> }usually say 1hr/drink in general, but after about 5 drinks and 5 hrs, you \n> }could very well be over the legal limit. \n> }Watch yourself.\n> \n> Indeed, especially if you are \"smart\" and eat some food with your\n> drink. The food coating the stomach lining (especially things like\n> milk) can temporarily retard the absorption of alcohol. When the\n> food is digested, the absorption will proceed, and you will\n> actually be drunker (i.e., have a higher instantaneous BAC) than\n> you would have been if you had drunk 1 drink/hr. on an empty stomach.\n> \n> Put another way, food can cause you to be less drunk than drinking on\n> an empty stomach early on in those five hours, but more drunk than\n> drinking on an empty stomach later in those five hours.\n> -- \n> Curtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\n> DoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\n> \"There is no justification for taking away individuals' freedom\n>  in the guise of public safety.\" -- Thomas Jefferson\n\nAgain, from my alcohol server's class:\nThe absolute *most* that eating before drinking can do is slow the absorption\ndown by 15 minutes.  That gives me time to eat, slam one beer, and ride like\nhell to try to make it home in the 10 minutes left after paying, donning \nhelmet & gloves, starting bike...\n\n\n--\nDean Woodward         | \"You want to step into my world?\ndean@fringe.rain.com  |   It's a socio-psychotic state of Bliss...\"\n'82 Virago 920        |              -Guns'n'Roses, 'My World'\nDoD # 0866\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6827, "properties": {"category": "talk.politics.guns", "text": "From: dduff@col.hp.com (Dave Duff)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: HP Colorado Springs Division\nLines: 1\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\nNUT CASE PANICS!!!!JUMPS THE GUN ON THE NET BEFORE GETTING FACTS STRAIGHT!!!!\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6828, "properties": {"category": "rec.sport.baseball", "text": "From: cherylm@hplsla.hp.com (Cheryl Marks)\nSubject: Re: Omar Vizquel - GRAND SALAMI?\nOrganization: HP Lake Stevens, WA\nLines: 20\n\n\nDo you think Omar's grand slam is the result of his new fan club?  Last week \na banner appeared in the Kingdome:    \n\n\tOLDER WOMEN FOR OMAR  \n\n\nCheryl\n*****************************************************************************\n*\n*  Cheryl Marks\n*  HP-UX Address:  cherylm@lsid.hp.com         HP Desk:  CHERYL MARKS/HPA100 \n*  Telenet:  1-335-2193                        Ma Bell:  (206) 335-2193\n*  USPS:  Cheryl Marks\t\t\t\n*         MS 330 \t\t\t\t       \t \n*         8600 Soper Hill Road\t\t\t\t\t\n*         Everett, WA  98205-1298\t\t\t\n*\n* \"Too much of a good thing is wonderful.\" \t\tMae West            *\n*****************************************************************************\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6829, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: robertt@vcd.hp.com (Bob Taylor)\nSubject: Re: AmiPro/Deskjet 500 Printing Problem\nArticle-I.D.: vcd.C52wt5.F2\nDistribution: usa\nOrganization: Hewlett-Packard VCD\nLines: 32\nX-Newsreader: Tin 1.1 PL5\n\nTom Belmonte x4858 (tbelmont@feds55.prime.com) wrote:\n: \n: Hello,\n: \n: I recently tried to print some envelopes using AmiPro 3.0 with my\n: Deskjet 500 printer, and I seem to be having a problem.  What\n: happens is after I physically load the envelope into the printer\n: (per the user manual) and then select the \"Print Envelope\" icon\n: from AmiPro (all of the proper options have been selected), the\n: printer just \"spits out\" the envelope without any printing of\n: either a return address or the selected mailing address.  At\n: this point, the printer's \"ONLINE\" light begins to flash, and\n: the Print Manager shows the printer job as busy.  This is all\n: that happens, until I either shut the printer off or cancel the\n: printing job from the Print Manager.  I have also tried this\n: without the use of the Print Manager, with similar results \n: (AmiPro shows the printer as being busy).  So, does anybody\n: have any idea/solution regarding this problem?  I appreciate\n: the help.  Thanks.\n\nYes - ignore the manual.  Just insert the evelope - don't use the keypad\nto move it up.  The Windows driver sends a message to the printer that\ntells it to load the envelope - if it is already loaded, it gets ejected\nand the printer tries to load another.  The instructions in the manual\nare for dumb DOS apps. that don't send the \"load envelople\" message.\n\n\n: \n: -- Tom Belmonte\n\nBob Taylor\nHP Vancouver\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6830, "properties": {"category": "sci.med", "text": "From: thomasd@tps.COM (Thomas W. Day)\nSubject: Re: _The Andromeda Strain_\nSummary: How well does it hold up?\nOrganization: Telectronics Pacing Systems\nLines: 43\n\nIn article <C5pvp5.82L@chinet.chi.il.us> dhartung@chinet.chi.il.us (Dan Hartung) writes:\n\n>Just had the opportunity to watch this flick on A&E -- some 15 years\n>since I saw it last.  \n\nWow, the WWII channel did something not-WWII?\n\n>I was very interested in the technology demonstrated in this film\n>for handling infectious diseases (and similar toxic substances).\n>Clearly they \"faked\" a lot of the computer & robotic technology;\n>certainly at the time it was made most of that was science fiction\n>itself, let alone the idea of a \"space germ\".  \n\nThe graphics capabilities of the computers were very faked for movie \naudiences who have not ability or patience with numbers.  The book was more \nrealistic in that respect.  In all respects, actually.  The robotics are \nstill out of range, but not impossible.\n\n>Quite coincidentally [actually this is what got me wanted to see\n>the movie again] I watched a segment on the otherwise awful _How'd\n>They Do That?_ dealing with a disease researcher at the CDC's top\n>lab.  There was description of the elaborate security measures taken\n>so that building will never be \"cracked\" so to speak by man or\n>nature (short of deliberate bombing from the air, perhaps).  And\n>the researchers used \"spacesuits\" similar to that in the film.\n\nSF (and I\"ve always wondered how Crichton escapes this classification) is \nusually ahead of science in both prediction and precaution.  NASA's \ndecontaimination processes were supposedly taken to prevent SF story \ndisasters.  I mean, NASA scientists were often SF readers (and \nsometimes writers) and felt pre-warned by their reading.\n\n>I'm curious what people think about this film -- short of \"silly\".\n>Is such a facility technically feasible today?  \n\nI think the film still holds up among the best of SF films, but that isn't \nsaying a whole lot.\n\n>As far as the plot, and the crystalline structure that is not Life\n>As We Know It, that's a whole 'nother argument for rec.arts.sf.tech\n>or something.\n\nYep.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6831, "properties": {"category": "rec.motorcycles", "text": "From: der10@cus.cam.ac.uk (David Rourke)\nSubject: xs1100 timing\nOrganization: U of Cambridge, England\nLines: 4\nNntp-Posting-Host: bootes.cus.cam.ac.uk\n\nCould some kind soul tell me the advance timing/revs for a 1981 xs1100 special\n(bought in Canada).\n\nthanks.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6832, "properties": {"category": "misc.forsale", "text": "From: Gregory.Park@dartmouth.edu (Gregory Park)\nSubject: ROLAND JUNO-60 SYNTHESIZER*UNIDEN RADAR DETECTOR 4 SALE\nX-Posted-From: InterNews 1.0b15@dartmouth.edu\nOrganization: Dartmouth College, Hanover, NH\nLines: 10\n\nROLAND JUNO 60- SYNTHESIZER. EXCELLENT CONDITION. GREAT FAT ANALOG\nSOUND. USED IN THE SONG \"JUMP\" BY VAN HALEN. $300 OR BEST OFFER\n\nUNIDEN RD-9XL RADAR DETECTOR- EXCELLENT CONDITION. DON'T BE CAUGHT BY\nTHE COPS! $50 OR BEST OFFER! SMALLER THAN A CREDIT CARD. COMPACT!\n\nFOR THE KEYBOARD EMAIL GREG.PARK@DARTMOUTH.EDU\nFOR THE RADAR EMAIL RICH.LEE@DARTMOUTH.EDU\n\nCIAO.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6833, "properties": {"category": "rec.sport.hockey", "text": "From: kozloce@wkuvx1.bitnet\nSubject: ESPN Thumbs Up your $%#@*!!\nOrganization: Western Kentucky University, Bowling Green, KY\nLines: 35\n\nJesus Christ!!!\n\nThe score is now 6-0. The Pens are beating the shit out of the Devils who\ngave up in the middle of the 2nd period. ESPN does something smart. The\nannouncer states \"well folks this game is getting out of hand. Lets go to\nthe Islander/Capitals game.\" I celebrate as I was actually making progress in\nmy CS homework because I was so bored by the scheduled game.  I tear down and\nthrow on my jersey, Hunter scores I go ape shit 'cause this is the first\ncaps game I've been able to watch all season. And what does ESPN do? they\ngo back to the blowout that NJ hasn't a chance in hell of winning!\n     The period ends and the sportscaster (CAPITOLS JUST TIED IT UP!! YES!!\noops excuse me =) goes into his penguin worship mode (Dont freak pens fans!\nThey are worthy of this! I'm so glad we wont have to play them as much next\nyear!) and here comes the 3rd period...what? its the blowout again. Oh they\nwere just waiting for the Cap/Isles to get out of intermission. Good\nthey've put a close game back on. Wait! WHATS THIS SHIT?!! THEY'RE SHOWING\nTHE BLOWOUT AGAIN!\n\n\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUGGGGGGGGGGGGGGGG!\n\n(Oh guess what the score is now 7-0 penguins! Switch games you $%&*#@!!!)\n\nHoly shit they're changing games! ITS ABOUT GODDAMNED TIME!! Lets see if\nthey'll stay.\n\nLater\n\nI think this proves by $#%&* point. The Caps game goes into overtime but\n\"due to contractual obligations\" they have to switch to the fucking baseball.\n(Sorry for my language but im PISSED!) What the hell were they going to do\nif their scheduled game went into overtime? ESPN get your head out of your\nass.\n\nNow I know there are a lot \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6834, "properties": {"category": "misc.forsale", "text": "From: gsfever@okcforum.osrhe.edu (Brent Kirkwood)\nSubject: Casio Digital Diary\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 15\n\nFor Sale : Casio Digital Diary Electronic Organizer (SF-4000)\n\t\t32k RAM\n\t\twill hold approxmiately 1500 names/phone numbers\n\t\tBig 6 line display\n\t\t200 Year Visible Calendar\n\t\tSchedule Function\n\t\tMemo Bank\n\t\tTelephone Name, Number, Address Storage\n\t\tCalculator\n\n\t\tCompact folding design fits in your pocket\n\nThe above for $25.  It was originally purchased for over $100.  Mail to\ngsfever@okcforum.osrhe.edu if interested.  Price does not include shipping.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6835, "properties": {"category": "rec.sport.hockey", "text": "From: colling@ann-arbor.applicon.slb.com (Michael Collingridge)\nSubject: Re: Truly a sad day for hockey\nOrganization: Schlumberger CAD/CAM; Ann Arbor, Michigan (USA)\nSummary: Norm Greene Happenings\nLines: 20\n\nIn article 27089, alvstad@mari.acc-admin.stolaf.edu (Mad Dog) reports:\n\n>A fine 26 year history came to a close tonight, as the Minnesota North Stars, \n>or Norm's Stars (whichever you prefer) lost to the Red Wings by a score of\n>5-3.  The Stars goals were scored by Mike McPhee and Ulf Dahlen, who netted\n>two including the final one in franchise history, with less than a minute to\n>play.\n\nAre there any further stories to report on the eve' of Norm's farewell \nfrom the twin cities? In an earlier post, it was announced that Norm \nGreen was given until midnight of the last home-game of the North Stars\nto cleanup his belongings and turn in the keys to the arena. \nDid this happen? Was Norm run-out-of-town?\n\nRumor has it that while he was attempting to remove the score board, \nthe score-board fell to the ice and flattened Mr. Greedy to a large\npiece of green paper. Arena management had to use the Zamboni (which \nthey confiscated from Norm's truck) to clean-up the useless remains. \n\n-- Mike\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.321+0000", "event": "documents", "entityId": 6836, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Russian Email Contacts.\nLines: 15\nNntp-Posting-Host: acad3.alaska.edu\nOrganization: University of Alaska Fairbanks\n\nDoes anyone have any Russian Contacts (Space or other) or contacts in the old\nUSSR/SU or Eastern Europe?\n\nPost them here so we all can talk to them and ask questions..\nI think the cost of email is high, so we would have to  keep the content to\nspecific topics and such..\n\nBasically if we want to save Russia and such, then we need to make contacts,\ncontacts are a form of info, so lets get informing.\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\nAlive in Nome, Alaska (once called Russian America).\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6837, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: phoenix.Princeton.EDU!carlosn (Carlos G. Niederstrasser)\nSubject: Reboot when I start windows.\nOriginator: news@nimaster\nNntp-Posting-Host: week.princeton.edu\nOrganization: Princeton University\nLines: 21\n\nRecently the following problem has arrisen.  The first time I turn on my  \ncomputer when windows starts (from my autoexec) after the win31 title screen  \nthe computer reboots on its own.  Usually the second time (after reboot) or  \nfrom the DOS prompt everything works fine.\n\n s far as I remember I have not changed my config.sys or autoxec.bat or  \nwin.ini.  I can't remember whether this problem occured before I  \noptimized/defragmented my disk and created a larger swap file (Thank you  \nMathCAD 4 :(  )\n\nSystem 386sx, 4MB, stacker 2.0, win31, DOS 5\n\n---\n---------------------------------------------------------------------\n| Carlos G. Niederstrasser        |  Only two things are infinite,  |\n| Princeton Planetary Society     |      the universe and human     |\n|                                 |   stupidity, and I'm not sure   |\n|                                 |   about the former. - Einstein  |\n| carlosn@phoenix.princeton.edu   |---------------------------------|\n| space@phoenix.princeton.edu     |    Ad Astra per Ardua Nostra    |\n---------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6838, "properties": {"category": "rec.sport.hockey", "text": "From: njdevils@IASTATE.EDU (Cire Y. Trehguad)\nSubject: Re: NHL Team Captains\nReply-To: njdevils@IASTATE.EDU (Cire Y. Trehguad)\nOrganization: Iowa State University\nLines: 18\n\nAnna Matyas (am2x+@andrew.cmu.edu) wrote:\n: Michael Collingridge writes:\n: >And, while we are on the subject, has a captain ever been traded, \n: >resigned, or been striped of his title during the season? Any other \n: >team captain trivia would be appreciated.\n;\n: Wasn't Ron Francis captain of the Whalers when he was traded to\n: Pittsburgh?\n\n  And Rick Tochett was the captain of the Flyers when traded to the Pens\nrecently...\n\nCaleb\n\nAnd let us not forget that the New Jersey Devils traded\ncaptain Kirk Muller for Stephen Richer and Chorske\n\nMan I hated that trade!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6839, "properties": {"category": "rec.motorcycles", "text": "From: mcguire@cs.utexas.edu (Tommy Marcus McGuire)\nSubject: Re: Countersteering_FAQ please post\nArticle-I.D.: earth.ls1v14INNjml\nOrganization: CS Dept, University of Texas at Austin\nLines: 54\nNNTP-Posting-Host: earth.cs.utexas.edu\n\nIn article <12739@news.duke.edu> infante@acpub.duke.edu (Andrew  Infante) writes:\n>In article <05APR93.02678944.0049@UNBVM1.CSD.UNB.CA> C70A@UNB.CA (C70A000) writes:\n>>In article <C4zKCL.FGC@ux1.cso.uiuc.edu> Eric@ux1.cso.uiuc.edu (93CBR900RR) writes:\n>>>Would someone please post the countersteering FAQ...i am having this awful\n[...]\n>>\n>> Ummm, if you push on the right handle of your bike while at speed and\n>>your bike turns left, methinks your bike has a problem.  When I do it\n>\n>Really!?\n>\n>Methinks somethings wrong with _your_ bike.\n>\n>Perhaps you meant _pull_?\n>\n>Pushing the right side of my handlebars _will_ send me left.\n>\n>It should. \n>REally.\n>\n>>on MY bike, I turn right.  No wonder you need that FAQ.  If I had it\n>>I'd send it.\n>\n>I'm sure others will take up the slack...\n>\n[...]\n>-- \n>Andy Infante  | I sometimes wish that people would put a little more emphasis |\n\n\nOh, lord.  This is where I came in.\n\nObcountersteer:  For some reason, I've discovered that pulling on the\nwrong side of the handlebars (rather than pushing on the other wrong\nside, if you get my meaning) provides a feeling of greater control.  For\nexample, rather than pushing on the right side to lean right to turn \nright (Hi, Lonny!), pulling on the left side at least until I get leaned\nover to the right feels more secure and less counter-intuitive.  Maybe\nI need psychological help.\n\nObcountersteer v2.0:Anyone else find it ironic that in the weekend-and-a-\nnight MSF class, they don't mention countersteering until after the\nfirst day of riding?\n\n\n\n-----\nTommy McGuire, who's going to hit his head on door frames the rest of\n    the evening, leaning into those tight turns....\nmcguire@cs.utexas.edu\nmcguire@austin.ibm.com\n\n\"...I will append an appropriate disclaimer to outgoing public information,\nidentifying it as personal and as independent of IBM....\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6840, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bruceg@ccwf.cc.utexas.edu (Bruce Gimble)\nSubject: built in video\nArticle-I.D.: geraldo.1pqt5nINN605\nReply-To: bruceg@ccwf.cc.utexas.edu (Bruce Gimble)\nDistribution: usa\nOrganization: The University of Texas at Austin, Austin TX\nLines: 14\nNNTP-Posting-Host: sneezy.cc.utexas.edu\nOriginator: bruceg@sneezy.cc.utexas.edu\n\nI have MANY questions for all you experts out there pertaining to apple's\nbuilt-in video.  \n\n#1, Do all macs that have built-in video have the ability to use VGA monitors?\n#2, If so/if not, which macs have this capability?\n#3, Can they drive SVGA as well?\n#4, how big of a vga monitor can they drive?\n#5, how can you tell if an unlabeled monitor is VGA?  By the pinouts?\n    if so, what should it look like?\n\nParticularly, i'm interested in knowing if the si or ci drive VGA, as well\nas the LC's capabilities in driving VGA/SVGA\n\nThanks!!!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6841, "properties": {"category": "sci.electronics", "text": "From: victor@inqmind.bison.mb.ca (Victor Laking)\nSubject: Re: making copy of a Video tape\nKeywords: video\nOrganization: The Inquiring Mind BBS  1 204 488-1607\nLines: 35\n\nhooperw@spot.Colorado.EDU (Wayne Hooper) writes:\n\n> victor@inqmind.bison.mb.ca (Victor Laking) writes:\n> \n> >You are experiencing what is called Macrovision.  It is the protection \n> >that they use on the video tapes.  There are two ways around this that I \n> >know of.  First of all, you can try using a different VCR to copy onto.\n> >It is the input of the VCR that reacts to the protection so sometimes \n> >just switching the two VCRs around will take care of it.  Some models \n> >just don't react to it.\n> \n> Does this also affect the viewing of tapes ? I have had problems with\n> a couple of rented tapes; they were virtually unviewable. I fiddled \n> with the tuning, tracking and vertical hold but it was no good.\n> \n\n\nIt sounds like your TV is one of the ones that also reacts to the video \nprotection.  (Poor you!)\n\nThe Macroscrubber from Radio Electronics removes the protection so you \nsouldn't have any more problems.  However, if you use the method of \ncopying it from one VCR to another where the second VCR doesn't react to \nthe protection, you will end up with a duplicate tape, including the \nprotection.\n\nOne thought comes to mind about your problem...  When playing the tape \nfor viewing, are you feeding the signal from the source VCR through an \nextra device before going to the TV?  If you feed it through a second VCR \nfirst, that is your problem.  As to other devices such as converters, I \ndon't know if they would react or not.  Just to be safe, you might want \nto make sure that you have NOTHING between the VCR and TV.\n\nvictor@inqmind.bison.mb.ca\nThe Inquiring Mind BBS, Winnipeg, Manitoba  204 488-1607\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6842, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tpd6908@yak.COM (Tom Dickens)\nSubject: Re: iisi clock upgrades\nOrganization: Boeing Computer Services\nLines: 22\n\nI too have been watching the IIsi speedup reports and plan to upgrade in\nthe next few weeks.  The plan I have is to build a small board with a few\ndifferent crystals on it and to be able to switch between the different\nspeeds using a front pannel switch.  This way I can get the speed when\nI want but I can also run at slower (stock) speeds it I experience any\ncompatability problems with any applications.  I don't expect to be able\nto switch clock speeds with the system running, but if I can switch\nwithout any lock-up problems, then I could switch to 33MHz when needed\nand put it back to idle (20 MHz) when not needeed.  This would further\nreduce the wear-and-tear on the CPU even with a heat sink.  Of course\nI would not want to run the different clock signals through the switch\nbut use a chip or two on the board to select the frequency desired and\nroute it directly to the mother board.\n\nI haven't started probing around inside my si yet.  Does anyone know the\nvoltage level to power the crystal oscilators?  \n\nThanks.\n   <<< Tom Dickens:  Boeing Computer Services  tpd6908@yak.ca.boeing.com >>>\n   <<< These statements are mine and not Boeing's >>>\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6843, "properties": {"category": "sci.crypt", "text": "From: grady@netcom.com (1016/2EF221)\nSubject: Declassifying media\nOrganization: capriccioso\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 82\n\nThere are many Urban Legends (maybe this ought to be in the Crypt \nFAQ?) about what is actually sufficient to clear or declassify \nmagnetic media when used for classified data.  Here is some \ninformation \"from the horse's mouth\".\n\n(Regarding the sufficient overwriting of media (\"clearing\") meant to \nbe *retained* within the controlled environment, or declassifying \nthe material to be reused *outside* the controlled environment,)\n\nFrom National Telecommunications and Information Systems \nSecurity (NTISS) \"Advisory Memorandum on Office Automation \nSecurity Guidelines\"  (NTISSAM COMPUSEC/1/87):\n\n------\n\n\"7.6.2.1 Clearing of Magnetic Media\n\nCertain types of removable media (e.g., magnetic tape, floppy disk, \ncassettes, and magnetic cards) may be cleared by overwriting the \nentire media one time with any one character.  Floppy disks may be \ncleared by applying a vendor's formatting program that overwrites \neach location with a given character.\n\nFixed media (e.g., Winchester disks) should be cleared by overwriting \nat least one time with any one character.  One way to do this is by \napplying a vendor-supplied formatting program that overwrites each \nlocation on the disk with a given character, if it can be shown that \nthis program actually works as advertised.  The user should beware: \nsome programs that purport to overwrite all locations do not \nactually do this.\n\nCleared media may be resides within the controlled facility or \nreleased for destruction; however, they should be marked and \ncontrolled at the level of the most restrictive sensitivity of \ninformation ever recorded.\n\n7.6.2.2 Declassification of Magnetic Media\n\nCertain types of removable media can be declassified using a \ndegaussing device that has been approved for declassifying media of \nthat type.  (A list of approved devices is maintained by the NSA.)\n\nIf a fixed medium (for example, a hard, or Winchester, disk) is \noperative, an approved method of declassifying the disk pack is to \nemploy an overwrite procedure which must overwrite all \naddressable locations at least three times by writing any character, \nthen its complement (e.g., binary ones and binary zeros) \nalternatively.\n\nWhen fixed  media become inoperative, it is impossible to declassify \nthe media by the overwrite method.  In this case, there are two \nalternate procedures that may be used: (1) disassemble the disk \npack, and degauss each platter with the appropriate approved \ndegaussing equipment; and (2) courier the inoperative media to the \nvendor's facility, have the magnetic media (e.g., disk platter) \nremoved in sight of the courier and returned to the courier for \ndestruction at the secure site.  The vendor can then install new \nplatters and repair any other problems with the disk unit.\n\n7.6.3 Destruction of Magnetic Media\"\n\n[see DoD Computer Security Center, \"Department of Defense Magnetic \nRemanence Security Guideline\", CSC-STD-003-85  FOR OFFICIAL USE \nONLY]\n\n------\n\nThis and many other interesting documents (many that are more \ninformative than probably intended) on computer security procedures \ncan be obtained (free) from:\n\nExecutive Secretary\nNational Telecommunications and Informations\n  Systems Security Committee\nNational Security Agency\nFort George G. Meade, MD  20755-6000\n\nWrite them!  It's fun to be on the NSA's mailing list... \n\n-- \ngrady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6844, "properties": {"category": "sci.med", "text": "From: robg@citr.uq.oz.au (Rob Geraghty)\nSubject: Re: Good Grief! (was Re: Candida Albicans: what is it?)\nArticle-I.D.: bunyip.C5wwGz.17G\nOrganization: Prentice Centre, University of Queensland\nLines: 45\n\ndyer@spdcc.com (Steve Dyer) writes:\n>Snort.  Ah, there go my sinuses again.\n>Oh, wow.  A classic textbook.  Hey, they laughed at Einstein, too!\n>Yeah, I'll bet.  Tomorrow, the world.\n>Listen, uncontrolled studies like this are worthless.\n>I'm sure you are.  You sound like the typical hysteric/hypochondriac who\n>responds to \"miracle cures.\"\n>Yeah, \"it makes sense to me\", so of course it should be taken seriously.\n>Snort.\n>Yeah, \"it sounds reasonable to me\".\n>Oh, really?  _What_ tests?  Immune-compromised, my ass.\n>More like credulous malingerer.  This is a psychiatric syndrome.\n>You know, it's a shame that a drug like itraconazole is being misused\n>in this way.  It's ridiculously expensive, and potentially toxic.\n>The trouble is that it isn't toxic enough, so it gets abused by quacks.\n>The only good thing about nystatin is that it's (relatively) cheap\n>and when taken orally, non-toxic.  But oral nystatin is without any\n>systemic effect, so unless it were given IV, it would be without\n>any effect on your sinuses.  I wish these quacks would first use\n>IV nystatin or amphotericin B on people like you.  That would solve\n>the \"yeast\" problem once and for all.\n>Perhaps a little Haldol would go a long way towards ameliorating\n>your symptoms.\n>Are you paying for this treatment out of your own pocket?  I'd hate\n>to think my insurance premiums are going towards this.\n\nSteve, take a look at what you are saying.  I don't see one construvtive\nword here.  If you don't have anything constructive to add, why waste\nthe bandwidth - yeah, sure, flame me for doing it myself.  Is this\nsci.med or alt.flame?  Like it or not, medical science does *not* know\ncategorically everything about everything.  I'm not flaming your\nknowledge, just asking you to sit back and ask yourself \"what if?\"\n\n\"Minds are like parachutes - they only function when they are open.\"\n\nOh - and if you *do* want to flame me or anyone else, how about using\nemail?\n\nRob\nWho doesn't claim any relevant qualifications, just interest\n--\n------------------------------------------------------------------------\nRob Geraghty               | 3 things are important to me \nrobg@citr.uq.oz.au         | The gift of love, the joy of life\nCITR                       | And the making of music in all its forms\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6845, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Re: IDE vs SCSI\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 44\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\nwlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>What does a 200-400 meg 5 megs/sec SCSI drive cost?\nSince the Quadra is the only Mac able to deal with 5MB/s and Hard drives START\nat 160MB I have NO idea.\nFor the Mac I have the following {These are ALL external}\n 20MB $299 {$15/MB}\n 52MB $379 {$7.3/MB}\n 80MB $449 {$5.63/MB}\n120MB $569-$639 {$4.75-$5.33/MB\n210MB $979-$1029{$4.67-$4.90/MB}\n320MB $1499-$1549 {$4.68-$4.84/MB}\n510MB $1999-$2119 ($3.92-$4.31/MB}\netc\n\nSo scsi-1/SCSI-2 for the Mac goes down in price/MB as hard drive size goes\nup {and I assume the same for the PC world.}\n\n>I won't argue that the SCSI standard makes for a good, well implimented\n>data highway, but I still want to know why it intrinsically better\n>(than IDE, on an ISA bus) when it comes to multi-tasking OS's when\n>managing data from a single SCSI hard drive.\nWell SCSI is ALSO a FLOPPY drive interface.  In the Mac {since SCSI is THE\ninteface for any non-card, non-modem, not-keyboard device} the id 7 is used\nfor the floppy drive {called CPU in all identifiers.}  This allows cross\ndrive interfacing as fast as the OS, program, CPU, SCSI, and drive can handle \nit{this shows up best in the Quatra line}.\nIn the IBM that uses SCSI for the FLOPPY drive this should happen as well.\nAlso SCSI is NOT just drives but printers, scanners, expandsion cards \n{this showed up for the Plus as the NuBus 'Cage'}, CD-ROM, etc.\nIDE seems to be mainly hard drives.  As for specs nobody has GIVEN me any\nand I can't find any.  Besides the advertizments call IDE the AT interface\n{Make of that what you will}\nSCSI is a jack of all trades and IDE is a master of ONE.\nThis alone puts SCSI above IDE.  SCSI-2 blows IDE out of the water.\nRemember SCSI was used in high priced machines until about 18 months ago\n{When the Mac prices came down to Earth} so the Rule of Scale still played\nand SCSI remained high cost{cheap seems to mean chezzy in the High end\ncomputer world at times and THIS more than anything else proably kept SCSI\noff into the statosphere price wise}\nSCSI came FROM the high end computer world with multitasking OS were the\nstandard for the most part.  Of all the interface NeXT could have used it\nchoose SCSI.  In 16-bit and 32-bit mode SCSI is a multi-tasking OS desined\ninterface while IDE and 8-bit SCSI are braindead run one program interfaces\n{at least the way mac use 8-bit SCSI.UGH}\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6846, "properties": {"category": "sci.space", "text": "Subject: help for school\nFrom: mcrandall@eagle.wesleyan.edu\nOrganization: Wesleyan University\nNntp-Posting-Host: wesleyan.edu\nLines: 14\n\nI am a newbie to the net, and I am trying to get some information for a paper\nI am working on to get back into college.  If anyone can send me data on\nSolar coronal holes and recurrant aurora  for the past thirty years it would be\na big help.  Or, if you have information on more esoteric things like Telluric\ncurrent, surge bafflers power companies use, or other effects sporatic aurora\nhave on the Earth's magnetic field, I'd be eternally gratefull.  Please send \nanything interesting to me at\n        Marty Crandall-Grela\n        Van Vleck Observatory\n        Wesleyan University\n        Middletown,Ct 06487\n or e-mail it to me at mcrandall@eagle.wesleyan.edu\n Thank-you in advance,      Marty\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6847, "properties": {"category": "talk.politics.mideast", "text": "From: gt1091a@prism.gatech.EDU (gt1091a gt1091a KAAN,TIMUCIN)\nSubject: Re: Public Service Translation No.2\nKeywords: effective Greek & Armenian postings\nOrganization: Georgia Institute of Technology\nLines: 21\n\nWho the hell is this guy David Davidian. I think he talks too much..\n\n\nYo , DAVID you would better shut the f... up.. O.K ?? I don't like \n\nyour attitute. You are full of lies and shit. Didn't you hear the \n\nsaying \"DON'T MESS WITH A TURC!!\"...\n\nSee ya in hell..\n\nTimucin.\n\n\n\n\n-- \nKAAN,TIMUCIN\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt1091a\nInternet: gt1091a@prism.gatech.edu\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6848, "properties": {"category": "rec.sport.hockey", "text": "From: fmsalvat@eos.ncsu.edu (FRANK MICHAE SALVATORE)\nSubject: Re: JETS FANS!  Hrivnak or Tabaracci??\nArticle-I.D.: ncsu.1993Apr6.215225.11611\nReply-To: fmsalvat@eos.ncsu.edu (FRANK MICHAE SALVATORE)\nOrganization: North Carolina State University, Project Eos\nLines: 22\nOriginator: fmsalvat@c00574-1403br.eos.ncsu.edu\n\n\n\n> >After seeing Hrivnak and Tabarraci play, who\n> >would you prefer to have?  And how about\n> >Tyler Larter?  What ever happened to him??\n> \n> \tYou know what my answer will be: Hrivnak! The choice is obvious.\n> \n> \n> \n\nOk, but have you seen Tabaracci play yet?  In his two starts and\nhis relief effort for Beaupre, he has looked mighty sharp - don't\nforget the shutout.  I think he's let in just four goals over eight\nperiods of play.  I like Hrivnak, but we might actually have to give\nsome credit to David Poile for a change after this trade.\n\nHopefully if Tabaracci starts against the Isles tonight, I haven't\njinxed him.\n\nFrank Salvatore\nfmsalvat@eos.ncsu.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6849, "properties": {"category": "sci.electronics", "text": "From: jung@rz.tu-ilmenau.de (Dirk Junghanns)\nSubject: W86C451, W86C456 info wanted\nNntp-Posting-Host: dali.rz.tu-ilmenau.de\nReply-To: jung@rz.tu-ilmenau.de (Dirk Junghanns)\nOrganization: Technische Universitaet Ilmenau\nLines: 12\n\nDoes anybody have informations about the\n\n W 86 C 451   and  W 86 C 456 chips (40pin DIL pckg)?\n\nThey are build in a multifunction io-card for pc.\n\nThanks \n         Dirk\n-- \n------------------------------------------------------------\nDirk Junghanns                    junghanns@rz.tu-ilmenau.de\n------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6850, "properties": {"category": "comp.windows.x", "text": "From: mouse@thunder.mcrcim.mcgill.edu (der Mouse)\nSubject: Re: XWindows always opaque\nKeywords: xwindow, parent-child relation\nOrganization: McGill Research Centre for Intelligent Machines\nLines: 17\n\n> Distribution: comp\n\nPlease don't misuse newsgroup hierarchy names as distributions.\n\nIn article <hess.734959172@swt1>, hess@swt1.informatik.uni-hamburg.de (Hauke Hess) writes:\n\n> I wonder if it is possible for a parent window to paint over the area\n> of its childs.\n\nYes, but it's not an attribute of the window; it's an attribute of the\nGC used to do the drawing.  Set the subwindow-mode to IncludeInferiors\nrather than the default ClipByChildren.\n\n\t\t\t\t\tder Mouse\n\n\t\t\t\tmouse@mcrcim.mcgill.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6851, "properties": {"category": "talk.religion.misc", "text": "From: agr00@ccc.amdahl.com (Anthony G Rose)\nSubject: Re: Who's next? Mormons and Jews?\nReply-To: agr00@JUTS.ccc.amdahl.com (Anthony G Rose)\nOrganization: Amdahl Corporation, Sunnyvale CA\nLines: 16\n\nIn article <93109.211935ISSCCK@BYUVM.BITNET> ISSCCK@BYUVM.BITNET (Casper C. Knies) writes:\n>\n>Please allow me to explain myself.  In 1838, the governor of Missouri,\n>..............\n>\n>\n>Casper C. Knies              isscck@byuvm.bitnet\n>Brigham Young University     isscck@vm.byu.edu\n>UCS Computer Facilities\n\n\nCapser, before you deceive everone into thinking that the latter-day\nsaints have undergone undue persecution through the years for just\nbelieving in their religion, perhaps you would like to tell us all what\nhappened in the Mountain Meadow Massacres and all the killings that were\ndone under the Blood Atonement Doctrine, at the command of Brigham Young?\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6852, "properties": {"category": "misc.forsale", "text": "From: worsham@aer.com. (Robert D. Worsham)\nSubject: Tektronix Equipment: Color Terminal, Printer, Rasterizer & Supplies\nSummary: Tektronix Equipment/Supplies for sale\nKeywords: color, printer, terminal, rasterizer, tektronix\nOrganization: Atmospheric & Environmental Research, Inc.\nLines: 27\n\n  For Sale:\n\n      Tektronix 4208 Color Terminal\n      Tektronix 4510A Rasterizer\n      Tektronix 4692 InkJet Printer\n\n      Tektronix 4692 Printer Extras (all Tektronix products):\n\n        Paper (> 3 boxes)\n        Transparencies (> 2 boxes)\n        Maintenance Cartridges (2 cart)\n        Magenta Ink Cartridge (1 cart)\n\n  We would like to sell as a single lot, and preference\n  will be given to offers for the entire list.  All offers\n  accepted, best offer gets the equipment.\n\n  -- Bob\n\n  ____________________________________________________________________\n  Robert D. Worsham  (Bob)                   | email:  worsham@aer.com\n  Atmospheric & Environmental Research Inc.  | voice:  (617) 547-6207\n  840 Memorial Drive                         |   fax:  (617) 661-6479\n  Cambridge MA 02139 USA                    \n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6853, "properties": {"category": "rec.sport.baseball", "text": "From: kirsch@staff.tc.umn.edu (Dave 'Almost Cursed the Jays' Kirsch)\nSubject: Re: Young Catchers\nNntp-Posting-Host: staff.tc.umn.edu\nOrganization: Li'l Carlos and the Hormones\nLines: 60\n\nIn article <mssC50DFw.71u@netcom.com> mss@netcom.com (Mark Singer) writes:\n>\n>At age 23 Alomar had a brilliant rookie year.  True, he was limited\n>by injuries in his sophomore season, but his numbers both that yaer\n>and the year following were quite mediocre.  This season the same\n>Bill James projects a ba of .265, OPS of 675.\n\n  The same Bill James? Why do you say that? It sounds like you're suggesting \nBill James had something to do with overhyping the kid to death. Au contraire;\nhe was fairly critical of him after his ROY campaign, noting that he wasn't\nall-world as a catcher or a hitter. He called him basically average when\neveryone *else* in the media was predicting the next Johnny Bench or Roy\nCampanella. \n\n>Both of these young men were highly touted defensive catchers,\n>expected to be among the best ever in baseball.  The reports I\n>read indicate that Lopez is very ordinary defensively.\n\n  Which reports are those? \n\n>The Dodgers options are Parrish and Hernandez, and now only Carlos.\n>Piazza is 24.  As long as he continues with his *very* hot bat,\n>they will keep him in the lineup because they need the offensive\n>production.  When he cools off, look for the much better defensive\n>catcher Hernandez (only 25) to play more.\n\n  I like Hernandez a lot, but if Piazza can catch the ball, you've gotta play\nhim IMHO. He's a much better hitter, although Hernandez isn't a *bad* hitter.\nRight now, it sounds like Piazza will catch most of the time and Hernandez\nwill be Candiotti's caddy since he can catch the knuckler. As long as they\nplay up to their abilities, the Dodgers could have a very good catching\ntandem.  \n\n>The Braves options are Berryhill and Olson.  I agree that Olson is\n>nothing special, but I do think Berryhill is better than many \n>people on rsb believe.  But both the Braves' catchers are very\n>good defensively (calling a game, blocking the plate, throwing)\n>and although they are somewhat weak offenivsively, they play on a team\n>that is not so much in need of another big bat.\n\n  I think both are overrated defensively (see Nichols' Law of catcher\ndefense), but that's something that's difficult to prove or disprove from\nyour viewpoint or mine. About the only tangible thing we can look at is\nopponent's SB%, and that's clouded by how well your pitchers hold runners.\nCatchers ERA is a possibility, but it's subject to way too many biases. \n\n  As for them 'playing on a team that is not so much in need of another big\nbat', I disagree here too. About the only chink in the Braves' armor is that\nthey're weak offensively at several positions (CF, C, 2B, SS if Belliard\nplays, 1B unless Bream and Hunter form another super-platoon) and very weak \ndefensively if Blauser plays. I'd like to see the Braves give at least one of\nMel Nieves, Javy Lopez or Chipper Jones a shot, but much like the talent-rich\nJays of recent years they'll be conservative and stick with what they have. \nI'm not saying that's wrong, just conservative. \n \n-- \nDave Hung Like a Jim Acker Slider Kirsch      Blue Jays - Do it again in '93 \nkirsch@staff.tc.umn.edu                        New .. quotes out of context!\n\"Not to beat a dead horse, but it's been a couple o' weeks .. this \n disappoints me..punishments..discharges..jackhammering..\" - Stephen Lawrence \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6854, "properties": {"category": "sci.space", "text": "From: degroff@netcom.com (21012d)\nSubject: Re: Talking to Boeing management about SSTO type stuff from a shareholder perspective.\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 9\n\n\n  I might suggest giving the management some more mumble time by asking\nthe very leading question (in two or three parts)\n   What are your long term expectations of space market, what projects\nspecifically are they funding by internal funds and at what levels\nand what competition do you expect in this  area. (This last point\nis always worth hitting upper management with \"gently\" if you want \nthem to think and as hard as you can if you have a good case that\nthere really is competion)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6855, "properties": {"category": "soc.religion.christian", "text": "From: apodaca@spot.Colorado.EDU (mu'tafikah)\nSubject: Re: DID HE REALLY RISE???\nOrganization: University of Blaspheme\nLines: 20\n\nI don't understand who this post is directed towards; who are you\ntrying to convince? By its subject i would assume you are directing\nthe argument towards people who do not believe that Christ rose\nfrom the dead, but in your \"proof,\" you use the bible exclusively.\n\nThe post is therefore immediately useless to anyone who doesn't\nbelieve that the bible is an unadulterated truth, and to everyone\nelse, it is just a reaffirmation of a belief already held. As far\nas i know, there is no disagreement between christians over\nthe resurrection of christ.\n\nso my question is: what is the purpose of this post?\n\ntomas\n\n-- \n \"Because no battle is ever won he said. They are not even fought.\n  the field only reveals to man his own folly and despair, and\n  victory is an illusion of philosophers and fools.\"\n  William Faulkner\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6856, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Sven@Beowulf.JPL.NASA.GOV (Sven U. Grenander)\nSubject: Re: Increasing the number of Serial ports\nOrganization: Jet Propulsion Laboratory\nLines: 33\nDistribution: world\nNNTP-Posting-Host: mac4.jpl.nasa.gov\n\nIn article <1993Apr18.134943.16479@bmers95.bnr.ca>, slang@bnr.ca (Steven\nLanglois) wrote:\n> \n> Does anyone know if there are any devices available for the Mac which\n> will increase the number of serial ports available for use\n> simultaneously?  I would like to connect up to 8 serial devices to my\n> Mac for an application I am working on. I must be able to access each\n> one of the independently.\n> \n> If such a device exists, are there are any limits to the number of\n> serial devices I can use?\n> \n> Any information is appreciated.\n> \n> Steven Langlois\n> slang@bnr.ca\n\nThe Quadralink by AE is a possibly problematical solution to your needs.\nI've used one for the last 4 (?) years on my personal system, but a fatal\nbug has crept into their more recent s/w. The bug only shows up during\nheavy serial traffic but completely crashes the system (MacsBug can not\nreboot, time to hit the restart button).\n\nAE told me in January that they were aware of and working on fixing the bug\nwhich I described to them. Since then they have not answered any of my\nfaxes asking them for a status of the bug-fix.\n\nThe QL has been great, but for now I have mine sidelined. If you are only\ngoing to be using 2400 Baud or less, then you may have no, or very\ninfrequent problems,\n\n\n-Sven\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6857, "properties": {"category": "comp.windows.x", "text": "From: nenad%saturn@sdsu.EDU (Nenad Marovac)\nSubject: C++ and C for OS/2\nOrganization: The Internet\nLines: 9\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\nCc: nenad@saturn.SDSU.EDU\n\n\nHi folks,\n]\nDoes anybody know for a good 32-bit C++/C compiler for OS/2 that supports\nOS/2 API and Microsoft windows (maybe Windows NT)?\n\nthanx\n\nN. Marovac, SDSU\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6858, "properties": {"category": "talk.politics.guns", "text": "From: hays@ssd.intel.com (Kirk Hays)\nSubject: Re: Nazi memoribilia\nNntp-Posting-Host: taos\nOrganization: Intel Supercomputer Systems Division\nLines: 38\n\nIn article <cmay.734085409@helium>, cmay@helium.gas.uug.arizona.edu (Christopher C May) writes:\n|> In <1993Apr2.232511.10711@raid.dell.com> mikepb@lupus.dell.com (Michael P. Brininstool) writes:\n|> \n|> >Swatikas were also common in American Indian markings/painted walls etc.  Is\n|> >it the Swastika that is bad?  \n|> \n|> Just want to back this up with a personal anecdote.  My grandparents\n|> have a Navajo rug made in the 1920's, which they received in trade \n|> from the weaver while living in Flagstaff, Arizona.  The decorative motif\n|> consists of 4 large black swastikas, one in each corner.  What's more, the\n|> color scheme is black, white, and red.  To the casual glance it would\n|> undoubtedly appear to be a Nazi relic of some kind.  Yet they owned it\n|> ten years before Hitler and the National Socialists came to power.  \n|> \n|> As I recall, they took it down in the 30's, and didn't feel quite right\n|> about putting it back up until the 60's.  It still draws comments from \n|> those who don't know what it is.\n\nHaving lived, played, and worked on and near the Navajo reservation\nfor a number of years, I can confirm this is an ancient pattern,\nfound in petroglyphs dated 800 to 1200 years old.\n\nAlso, the Indians never stopped making rugs with this pattern - they\njust stopped selling them after the Nazi's pre-empted the swastika.\n\nNote also that the Indian versions use both clockwise and\ncounter-clockwise swastikas.\n\nOb guns:  It's the rare Navaho family that doesn't own a rifle. \nThey remember being \"relocated\" by the US Army, and don't intend to\ndo it again.  The Hopi, on the other hand, have a dislike for\nweapons, from my experience.  Perhaps they just hide them better\nfrom strangers.\n\n-- \nKirk Hays - NRA Life, seventh generation.\n\"The only thing necessary for the triumph of evil is for good men to\ndo nothing.\"  -- Edmund Burke (1729-1797)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6859, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Re: Yeah, Right\nLines: 30\n\nBenedikt Rosenau writes:\n\n>And what about that revelation thing, Charley?\n\nIf you're talking about this intellectual engagement of revelation, well,\nit's obviously a risk one takes.\n\n>Many people say that the concept of metaphysical and religious knowledge\n>is contradictive.\n\nI'm not an objectivist, so I'm not particularly impressed with problems of\nconceptualization.  The problem in this case is at least as bad as that of\ntrying to explain quantum mechanics and relativity in the terms of ordinary\nexperience.  One can get some rough understanding, but the language is, from\nthe perspective of ordinary phenomena, inconsistent, and from the\nperspective of what's being described, rather inexact (to be charitable).\n\nAn analogous situation (supposedly) obtains in metaphysics; the problem is\nthat the \"better\" descriptive language is not available.\n\n>And in case it holds reliable information, can you show how you establish\n>that?\n\nThis word \"reliable\" is essentially meaningless in the context-- unless you\ncan show how reliability can be determined.\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.322+0000", "event": "documents", "entityId": 6860, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dejesus@eniac.seas.upenn.edu (Cavalier)\nSubject: Help needed\nOrganization: University of Pennsylvania\nLines: 128\nNntp-Posting-Host: eniac.seas.upenn.edu\n\nHello.  I hope somebody out here can help me.  I am currently working\non a project where I am trying to communicate from an IBM 386 with\nPhoenix BIOS, using C++, to a board that I made with an Intel 8085 CPU\nwith UART chip.  The board works fine with the TRANSMIT command and \nTerminal Emulation mode of Kermit, but there seems to be something wrong\nwith the initialization or protocol used when I try C++.  I need to\naccess the unit I built using C, because I have a sizable chunk of C\ncode that I will be using to perform calculations and operations that\nwill be very difficult to code in assembly language for the 8085.\n\nI have included the assembly code that I am running and the C++ code\nthat I am trying to use.  If anyone can show me something that I\nam doing blatantly incorrectly or that I am missing because of my lack\nof knowledge about RS-232 serial communications, please e-mail me.\nI wrote the assembly language to wait for a character to be received and\nthen to check it against the 0x20 character, if a 0x20 is received, \nthe LEDs will indicate this.  Two C++ programs that I have written do\nnothing, but set up COM port 2 and send the 0x20 character.  One uses\nthe bioscom() function in bios.h the other uses the software interrupt\nint86() function in dos.h.  I have triple checked the baud rate ( 2400 )\nthe parity ( none ) the stop bits ( 1 ) the character length ( 8 bits )\nand the interrupt calls for ( 0x14 ).  Currently, I am at a loss as\nto what may be wrong.  Any hardware gurus out there want to comment?\n\n\n\t\t\t\t\t\tThanks alot,\n\t\t\t\t\t\tHubert De Jesus\n\t\t\t\t\t\tdejesus@eniac.seas.upenn.edu\n\n\n  \t\t\t\tINTEL ASM\n\nCOMMAND     EQU     3000H                ;Command Register on 8155\nPORTA       EQU     3001H                ;Port A on 8155\nTIMERLO     EQU     3004H                ;High 8 bits of 8155 Timer\nTIMERHI     EQU     3005H                ;Low 8 bits of 8155 Timer\nUARTDATA    EQU     E000H                ;UART Data Register\nUARTCMD     EQU     E001H                ;UART Command Register\n\n            ORG     4000H                ;SRAM location\n\t    MVI     A,08H\t\t ;Set Low Timer Bits\n            STA     TIMERLO\n            MVI     A,40H\t\t ;Set High Timer Bits\n            STA     TIMERHI\n            MVI     A,11111101B          ;Start Timer & Enable Port A\n            STA     COMMAND\n\n            MVI     A,11H                ;Display 11 on 7-segment LEDs\n            STA     PORTA\n\n            MVI     A,00H\t\t ;Clear UART Command\n            STA     UARTCMD\n            STA     UARTCMD\n            STA     UARTCMD\n            MVI     A,01000000B\t\t ;Internally reset UART \n            STA     UARTCMD\n\t    LDA     UARTDATA             ;Remove extraneous data\n \t    MVI     A,01001111B          ;Init UART for 8 data bits,\n            STA     UARTCMD              ;  no parity, 1 stop bit, 64x async\n            MVI     A,00100111B          ;Enable Transmit and Receive\n            STA     UARTCMD\n\nINIT:       LDA     UARTCMD\t\t ;Read Status Register\n            ANI     02H                  ;Is RxRDY?\n            JZ      INIT                 ;No, loop\n\n            LDA     UARTDATA             ;Read Data Character\n            CPI     ' '                  ;Is Character = 0x20?\n            JNZ     INIT                 ;No, loop\n     \n            MVI     A,22H                ;Character received, \n            STA     PORTA                ;  Display 22 on 7-segment LEDs\n            HLT\n            END\n\n                              C++ using BIOSCOM()\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <bios.h>\n\n#define INIT          0\n#define SEND          1\n#define RECEIVE       2\n#define STATUS        3\n\n#define COM2          1\n\nvoid\nmain()\n{\n   char abyte;\n\n   abyte = 0xa3;\n   bioscom( INIT, abyte, COM2 );\n   printf( \"Initialized COMM PORT 2\\n\" );\n\n   while( !( bioscom( STATUS, 0, COM2 ) & 0x4000 ) )\n     ;\n   abyte = ' ';\n   bioscom( SEND, abyte, COM2 );\n   printf( \"Sent start character\\n\" );\n}\n\n\n        \t\t\tC++ using INT86()\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <dos.h>\n#include <bios.h>\n\nmain()\n{\n   union REGS registers;\n  \n   registers.h.ah = 0x00;\n   registers.h.al = 0xa7; \n   registers.x.dx = 0x01;\n   int86( 0x14, &registers, &registers );\n   printf( \"COM2 Initialized\\n\" );\n \n   registers.h.ah = 0x01;\n   registers.h.al = 0x20;\n   registers.x.dx = 0x01;\n   int86( 0x14, &registers, &registers );\n   printf( \"Sent start character\\n\" );\n }\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6861, "properties": {"category": "sci.space", "text": "From: dietz@cs.rochester.edu (Paul Dietz)\nSubject: Re: Terraforming Venus: can it be done \"cheaply\"?\nOrganization: University of Rochester\nLines: 9\n\nWould someone please send me James Oberg's email address, if he has\none and if someone reading this list knows it?  I wanted to send\nhim a comment on something in his terraforming book.\n\n\tPaul F. Dietz\n\tdietz@cs.rochester.edu\n\n\tPotential explosive yield of the annual global\n\tproduction of borax:  5 million megatons\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6862, "properties": {"category": "talk.politics.guns", "text": "From: tsmith+@cs.cmu.edu (Tom Smith)\nSubject: Re: Clinton wants National ID card, aka USSR-style \"Internal Passport\"\nNntp-Posting-Host: seismo.soar.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 34\n\nIn article <1993Apr16.022926.27270@ucsu.Colorado.EDU> fcrary@ucsu.Colorado.EDU (Frank Crary) writes:\n>In article <C5JIF8.I4n@boi.hp.com> slack@boi.hp.com (David Slack) writes:\n>>The idea of the card is bull in and of its self, but I'm curious to know, do \n>>they plan on making it a requirement to *always* have it on you, or is it \n>>only going to be required to be *presented* when trying to ge medical aid?\n>\n>This, at least, has already been determined: The Blue Cross medical\n>coverage for all federal employees is a good model for a future\n>national system. To get emergency medical care, anyone so insured\n>must always carry their Blue Cross card. Before entering a hospital,\n>you must notify Blue Cross, or they will refuse to pay your bills. \n>In an emergency, where you must be treated before notifying them, \n>you must inform them within 24 hours or (if you are unable to do\n>so for medical reasons) the hospital must. Failing to do so within\n>24 hours means they will not cover the hospitalization. In you need\n>your card to notify them (and without the card, the hospital certainly\n>wouldn't know they had to.) Therefore, you are required to carry\n>the card at all times, or do without emergency medical coverage.\n>\n>                                                 Frank Crary\n>                                                 CU Boulder\n>\nWhich works fine until you end up in the hospital because you were hit on the\nhead and your wallet, with your insurance card, is stolen.  This happened to \nme, and it took six months to sort the mess out.  These sorts of plans sound\nnice at first, but in the end they just create a lot of paperwork and\nbureaucracy to deal with all the checking and filing they involve.\n\n\t\t\t\tTom the non hacker\n\t\t\t\ttsmith@seismo.soar.cs.cmu.edu\n\t\t\t\tThe return address is set wrong, send personal\n\t\t\t\tresponse to the above address.\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6863, "properties": {"category": "comp.sys.mac.hardware", "text": "From: guykuo@carson.u.washington.edu (Guy Kuo)\nSubject: Re: iisi clock upgrades\nOrganization: University of Washington\nLines: 8\nNNTP-Posting-Host: carson.u.washington.edu\n\nI have read one report of a brave soul who rewired the 40 mhz clock and a higher\nspeed clock oscillator's outputs through a double throw switch to allow different\n speeds. There was no mention of any attempts to switch speeds on the fly but\nif the SI uses timing loops anything like a Quadra for accessing its floppy\ndrive, dynamic switching will wreak havoc. A Quadra must reboot after having its\nclock speed significantly changed or it will be unable to properly access its\nfloppy drive.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6864, "properties": {"category": "rec.autos", "text": "From: rmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen)\nSubject: Re: Chrysler New Yorker LHS (was Re: Chryslers Compact LH Sedans?)\nOrganization: University of Virginia\nLines: 7\n\n\nWarren Brown, the Washington Post's auto writer was the first journalist\nto get his hands on the New Yorker.  If you'd like his impressions of it\nhis review appeared in Friday's paper, in the \"Weekend\" section.\nHe is not your traditional auto writer...\nEnjoy.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6865, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: TRUE \"GLOBE\", Who makes it?\nOrganization: U of Toronto Zoology\nLines: 12\n\nIn article <bill.047m@xpresso.UUCP> bill@xpresso.UUCP (Bill Vance) writes:\n>It has been known for quite a while that the earth is actually more pear\n>shaped than globular/spherical.  Does anyone make a \"globe\" that is accurate\n>as to actual shape, landmass configuration/Long/Lat lines etc.?\n\nI don't think you're going to be able to see the differences from a sphere\nunless they are greatly exaggerated.  Even the equatorial bulge is only\nabout 1 part in 300 -- you'd never notice a 1mm error in a 30cm globe --\nand the other deviations from spherical shape are much smaller.\n-- \nSVR4 resembles a high-speed collision   | Henry Spencer @ U of Toronto Zoology\nbetween SVR3 and SunOS.    - Dick Dunn  |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6866, "properties": {"category": "sci.crypt", "text": "From: wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705)\nSubject: Re: Fifth Amendment and Passwords\nOrganization: Brought to you by the numbers 2, 3, and 7\nIn-Reply-To: pmetzger@snark.shearson.com's message of Tue, 20 Apr 1993 11:21:34 GMT\n\t<1993Apr19.180049.20572@qualcomm.com>\n\t<1qv83m$5i2@geraldo.cc.utexas.edu>\n\t<1993Apr20.000359.20098@bernina.ethz.ch>\n\t<PMETZGER.93Apr20062134@snark.shearson.com>\nNntp-Posting-Host: rainier.ho.att.com\nLines: 42\n\n   In article <1993Apr20.000359.20098@bernina.ethz.ch> caronni@nessie.cs.id.ethz.ch (Germano Caronni) writes:\n      Just a question. \n      As a provider of a public BBS service - aren't you bound by law to gurantee\n      intelligble access to the data of the users on the BBS, if police comes\n      with sufficent authorisation ? I guessed this would be  a basic condition\n      for such systems. (I did run a bbs some time ago, but that was in Switzerland)\n\nThe US doesn't yet have many laws covering BBSs - they're not common carriers,\nthey're not phone companies, they're just private machines or services\noperated by businesses.  There's no obligation to keep records.\nAs Perry Metzger points out, if the police come with a search warrant,\nyou have to let them see what the warrant demands, if it exists,\nand they generally can confiscate the equipment as \"evidence\"\n(which is not Constitutionally valid, but we're only beginning to\ndevelop court cases supporting us).  A court MAY be able to compel\nyou to tell them information you know, such as the encryption password\nfor the disk - there aren't any definitive cases yet, since it's a new\nsituation, and there probably aren't laws specifically covering it.\nBut the court can't force you to *know* the keys, and there are no\nlaws preventing you from allowing your users to have their own keys\nfor their own files without giving them to you.\n\nEven in areas that do have established law, there is uncertainty.\nThere was a guy in Idaho a few years ago who had his business records\nsubpoenaed as evidence for taxes or some other business-restriction law,\nso he gave the court the records.  Which were in Hebrew.\nThe US doesn't have laws forcing you to keep your records in English,\nand these were the originals of the records.  HE didn't speak Hebrew,\nand neither did anybody in the court organization.  Don't think they\nwere able to do much about it.\n\nIt might be illegal for your BBS to deny access to potential customers\nbased on race, religion, national origin, gender, or sexual preference;\nit probably hasn't been tested in court, but it seems like a plausible\nextension of anti-discrimination laws affecting other businesses.\n\n\n--\n#\t\t\t\tPray for peace;      Bill\n# Bill Stewart 1-908-949-0705 wcs@anchor.att.com AT&T Bell Labs 4M312 Holmdel NJ\n#\t              No, I'm *from* New Jersey, I only *work* in cyberspace....\n# White House Commect Line 1-202-456-1111  fax 1-202-456-2461\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6867, "properties": {"category": "comp.windows.x", "text": "From: adrian@ora.COM (Adrian Nye)\nSubject: widgets vs. gadgets\nOrganization: O'Reilly and Associates, Inc.\nLines: 15\nReply-To: adrian@ora.com\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\n\n\n> I've been using the XmGraph widget that's been floating around and I\n> noticed the performance is significantly better using Gadgets, perhaps\n> even 100% faster.  I had heard in an old programming course that gadgets\n> were no longer any benefit to performance, and that it's just as well\n> to use widgets everywhere. \n\nInteresting, I'd like to know why.\n\nBut try it again on a single ethernet with 100 X terminals on it,\nand I think you'll find it much slower.\n\nAdrian Nye\nO'Reilly and Associates\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6868, "properties": {"category": "rec.autos", "text": "From: thwang@mentor.cc.purdue.edu (Tommy Hwang)\nSubject: The Kuebelwagen??!!          \nOrganization: Purdue University Computing Center\nLines: 12\n\n\tSorry for the mis-spelling, but I forgot how to spell it after \nmy series of exams and NO-on hand reference here.\n\n\tIs it still possible to get those cute WWII VW Jeep-wanna-be's?\nA replica would be great I think.  \n\n\t\t\t\t\t\t\t-TKH '93\n\n------------------------------------------------------------------------\nIf I can convert a C=128 to a C128T, I can do anything... NOT!!\n------------------------------------------------------------------------\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6869, "properties": {"category": "rec.sport.baseball", "text": "From: pkeenan@s.psych.uiuc.edu (Patricia Keenan)\nSubject: Re: Quick easy question!\nOrganization: UIUC Department of Psychology\nLines: 16\n\nrauser@fraser.sfu.ca (Richard John Rauser) writes:\n\n\n\n>   Here's an easy question for someone who knows nothing about baseball...\n\n>   What city do the California Angels play out of?\n\n   Anaheim.\n\n>-- \n>Richard J. Rauser        \"You have no idea what you're doing.\"\n>rauser@sfu.ca            \"Oh, don't worry about that. We're professional\n>WNI                          outlaws - we do this for a living.\"\n>-----------------\n>\"Remember, no matter where you go, there you are.\" -Dr.Banzai\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6870, "properties": {"category": "sci.electronics", "text": "From: wout@dutentb.et.tudelft.nl (Wout Serdijn)\nSubject: Re: how can 0.022 uF be different from two 0.047 in series?!\nNntp-Posting-Host: duteela.et.tudelft.nl\nOrganization: Delft University of Technology, Dept. of Electrical Engineering\nLines: 43\n\nIn <1993Apr19.185326.9830@Princeton.EDU> mg@cs.princeton.edu (Michael Golan) writes:\n\n>I was looking at the amps diagram for Sony 1090/2090 receivers, and I\n>was amazed to find a difference between the US and Canadian model\n>on the capacitor(s) that hangs off the output to the speakers:\n\n>                         ------\\/\\/\\----- to speaker (identical both models\n>from amp ---------------|\n>(idnetical both models) >\n>                        <  10 \n>                        >\n>                        |\n>                       -----                        \n>                      |     |                        \n>        0.022        ---   ---        Canadian model only!\n>     US model        ---   --- 0.047 \n>     and world-wide   |     |\n>     model only.      |    ---        Candian model only!\n>                      |    ---  0.047\n>                      |     |\n>                       ----------- gound\n\n>The board itself is also identical, with room for all three caps. The\n>US/Can versions is clearly indicated in both places.\n\n>How does that make sense? 0.047/2 is 0.0235, essentially 0.022 for caps\n>(there are just standard caps, no special W/type/precision). \n\n>Please explain this\n> Michael Golan\n> mg@cs.princeton.edu\n\nThe only explanation I can think of is that two capacitors in series\ncan handle twice the output voltage. Sometimes two elco's in antiseries\n(you know, positive sides facing eachother) are used to obtain a large\ncapacitor that can handle positive and negative voltages as well.\n\nSo there probably is no design-philosophical reason, but a production-cost\none.\n\nBest 73's\n\nWouter\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6871, "properties": {"category": "comp.windows.x", "text": "From: cjhs@minster.york.ac.uk\nSubject: Re: Xt intrinsics: slow popups\nOrganization: Department of Computer Science, University of York, England\nLines: 36\n\nBryan Boreham (bryan@alex.com) wrote:\n: In article <735259869.13021@minster.york.ac.uk>, cjhs@minster.york.ac.uk writes:\n: > The application creates window with a button \"Quit\" and \"Press me\".\n: > The button \"Press me\" pops up a dialog box. The strange feature of\n: > this program is that it always pops up the dialog box much faster the\n: > first time. If I try to pop it up a 2nd time (3rd, 4th .... time), \n: > it is *much* slower.\n: \n: The shell is waiting for the window-manager to respond to its\n: positioning request.  The window-manager is not responding because\n: it thinks the window is already in the right place.\n: \n: Exactly *why* the two components get into this sulk is unclear to\n: me; all information greatly received.\n\nThanks for this clue, and thanks to Derek Ho also for a pointer in the\nsame direction.\n\nOne solution, due to Derek Ho: when the popup is popped up, we SetValue\nits location -- which on repeat popups will be unchanged from the\nprevious popup. The slow response can be avoided by calling GetValue\nfirst, and only using SetValue if the required location is different.\nThe problem can also be avoided by making a tiny alteration in the\nlocation of the popup, so that the SetValue really does change the\nlocation of the popup. (We tried this just for a double check on the\nsource of the problem.)\n\nThe solutions we have tried successfully are now as follows:\n\n1) Use \"twm\" or \"mwm\" rather than \"olwm\"\n2) Use \"olwm\", with resource \"*wmTimeout: 10\"\n3) Only reset the location of the popup window if it is truely changed.\n\nThis is obviously working around some bug somewhere.\n\nThanks -- Chris Ho-Stuart\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6872, "properties": {"category": "comp.windows.x", "text": "From: cr097@cleveland.Freenet.Edu (David Matusow)\nSubject: Large Color Monitors\nArticle-I.D.: usenet.1pshdc$md8\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 11\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nDoes anyone have any information/advice on large color monitors\n(17\"-21\") to use with a 486 system running X server software?\nI maining looking for quality information and price, but all\ninformation is welcomed.  \n\nThanks,\nDavid\n-- \n\"It's all ball bearings!\"\n  -- Fletch\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6873, "properties": {"category": "talk.religion.misc", "text": "Subject: [rw] Is Robert Weiss the only orthodox Christian?\nFrom: <LIBRBA@BYUVM.BITNET>\nOrganization: Brigham Young University\nLines: 12\n\n\n  Robert, you keep making references to \"orthodox\" belief, and saying things\nlike \"it is held that...\" (cf. \"Kermit\" thread).  On what exact body of\ntheology are you drawing for what you call \"orthodox?\"  Who is that \"holds\nthat\" Luke meant what you said he meant?  Whenever your personal interpretation\nof Biblical passages is challenged, your only response seems\nto be that one needs merely to \"look at the Bible\" in order to see the truth,\nbut what of those who see Biblical things differently from you?  Are we to\nsimply assume that you are the only one who really understands it?\n  Just curious,\n--\nRick Anderson  librba@BYUVM.BITNET\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6874, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: The 'pill' for Deer = No Hunting\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nLines: 81\n\nIn article <1993Apr14.182610.2330@gnv.ifas.ufl.edu>, jrm@gnv.ifas.ufl.edu writes:\n>In article <1993Apr14.120958.11363@synapse.bms.com>, hambidge@bms.com writes:\n>> \n>> The Second Amendment is about sovereignty, not sporting goods.\n>\n>\tPerfectly correct, but it won't make any difference.\n\nHmm.  I beg to differ.  It will probably make a big difference at some\npoint.\n\n>\n>> Self defense is a valid reason for RKBA.\n>\n>\tThe vast majority get through life without ever having to\n>\town, use or display a firearm. Besides, there are other\n>\tmeans of self-protection which can be just as effective\n>\tas firearms. \n\nThankfully, it is true that the majority go through life without\nhaving to use a firearm.  Howver, there are situations where firearms\nare the most effective means of self protection.  What other means do\nyou propose as equally effective?\n\n\n>\n>> Freedoms and rights are not dependent on public opinion, necessity, or\n>> scientific scrutiny.\n>\n>\tNew to this planet ? EVERYTHING is dependent on either public\n>\tor political opinion, usually political. To imagine that\n>\tinalienable 'rights' are somehow wired into the vast cold\n>\tcosmos is purest egotism and a dangerous delusion.\n\nNew to this country? New to political theory?\nAlas, I was speaking of principle.  Without principle, all attempts at\nrepublican forms of gov't are futile.  There are times when public and\npolitical opinion are contrary to principle, which is why we have a\nConstitution which enumerates gov't powers and presumes certain\nrights.  A major reason for this was to prevent a tyranny of the\nmajority.\n\n>\n>> No arguments against RKBA can withstand scientific scrutiny.\n>\n>\tThey don't have to. Like so many other things, the issue\n>\tis one of -perception- rather than boring statistics.\n>\tEvery time some young innocent is gunned-down in a drive\n>\tby, every time some kid is murdered for a jacket, every\n>\ttime a store clerk is executed for three dollars in change,\n>\tevery time some moron kills his wife because she took the\n>\tlast beer from the fridge, every time someone hears a 'bang'\n>\tin the night .... the RKBA dies. The stats are not all *that*\n>\tclearly behind firearms - the protection factor does not\n>\tstrongly outweigh the mindless mayhem factor. Given society\n>\tas we now experience it - it seems safer to get rid of\n>\tas many guns as possible. That may be an error, but enough\n>\tactive voters believe in that course. \n\nThis is exactly why law should be based on reasoned thought, not\nimmediate perception.  Of course, it doesn't always work that way.\nFortunately, while there are no guarantees, logic sometimes does\nprevail.  And, if not, there are still means for correction.  \nAs far as \"enough active voters\" are concerned, that is still\nan open question until the vote is made.\n\n>\n>> How do you intend to 'silence' RKBA supporters?\n>\n>\tTalk all you want. Talk about the \"good old days\" when\n>\tyou used to own firearms. After a while, such talk will\n>\ttake on the character of war stories ... and no one will\n>\tbe very interested anymore.\n\nYou portray a possible scenario for the future.  But, how will you\nsilence RKBA supporters right now?  As long as public debate is\nallowed, such debate will continue. If we allow public debate to be\nrestricted or denied, then we will get a gov't we deserve.\n\nAl\n[standard disclaimer]\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6875, "properties": {"category": "comp.graphics", "text": "From: ab@nova.cc.purdue.edu (Allen B)\nSubject: Re: TIFF: philosophical significance of 42\nOrganization: Purdue University\nLines: 19\n\nIn article <1993Apr14.191415.10553@samba.oit.unc.edu> cptully@med.unc.edu  \n(Christopher P. Tully,Pathology,62699) writes:\n> Why so up tight?  FOr that matter, TIFF6 is out now, so why not gripe\n> about its problems?  Also, if its so important to you, volunteer to\n> help define or critique the spec.\n\nI've got the 6.0 spec (obviously since I quoted it in my last posting). \nMy gripe about TIFF is that it's far too complicated and nearly\ninfinitely easier to write than to read, which I think hurts your\nacceptance by anything that will need to read those images (e.g.,\npaint programs).\n\nIn a nutshell, I don't think TIFF is salvageable unless the fat is\ntrimmed significantly- and then it wouldn't be TIFF anymore.  They\nkeep trying to cut it back, but it's late now.  Maybe they >will< fix it,\nand change that magic number to signify the lack of compatibility. \nThat would probably make me happy.\n\nab\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6876, "properties": {"category": "rec.sport.baseball", "text": "From: mjones@fenway.aix.kingston.ibm.com (Mike Jones)\nSubject: Re: My Belated Predictions (NL)\nReply-To: mjones@donald.aix.kingston.ibm.com\nOrganization: IBM AIX/ESA Development, Kingston NY\nLines: 34\n\nmss@netcom.com (Mark Singer) writes:\n>In article <Apr.4.19.42.08.1993.12176@pilot.njin.net> gajarsky@pilot.njin.net (Bob Gajarsky - Hobokenite) writes:\n>>javier lopez is a better catcher than greg olson.\n>But has there ever in the history of baseball been a 22-year-old (or\n>younger) *rookie* catcher who compared favorably among all league\n>catchers in terms of defense and brought a .247 bat?  Wasn't it \n>Sandy Alomar who was supposed to be that good in his rookie year?\n>Not.  Wasn't it Benito Santiago who was supposed to be that good\n>in his rookie year?  Not.\n\nHrm. Sandy Alomar, 24 year old rookie: 132 games, .290/.326/.418. Threw\nout a few baserunners. Benito Santiago, 22 year old rookie: 146 games,\n.300/.324/.467. He threw out a few baserunners, too. Ivan Rodriguez,\n*20* year old rookies: 88 games, .264/.276/.354. Didn't exactly suck\nbehind the plate.\n\n>I can continue this thread with the others mentioned, but you get\n>the point.  You and others seem to be so quick to dismiss the \n>seasoned veterans in favor of the hot *young* rookies.  Perhaps -\n>just perhaps - the management team of the pennant-winning Braves\n>knows something more than you do.  And perhaps what they know is\n>that very, very few 21- and 22-year old rookies come up to the majors\n>and make an impact. \n\nTrue. Which only makes it more important to realize when you have one of the\nfew. Lopez' season last year, adjusted to major league equivalencies, was\n.306/.330/.472, 15 HRs. How bad does he have to be behind the plate for that\nto not be better than Olson's .238/.316/.328?\n\n Mike Jones | AIX High-End Development | mjones@donald.aix.kingston.ibm.com\n\nI would not admire hitting against [Ryne] Duren, because if he ever hit you\nin the head you might be in the past tense.\n\t- Casey Stengel\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6877, "properties": {"category": "misc.forsale", "text": "From: bdolson@casbah.acns.nwu.edu (Brian David Olson)\nSubject: For Sale: IBM Wheelwriter 6\nNntp-Posting-Host: elvex34.acns.nwu.edu\nOrganization: Northwestern University\nLines: 11\n\nI just won an IBM Wheelwriter 6 typewriter in a raffle here on campus. \nSince I have a nice computer, and really need the cash, I'm putting it up\nfor sale.  I have an offer from a local reseller for $250.  Best offer\nabove that plus shipping.\n\n...brian\n\nNorthwestern University - Economics & International Studies\nb-olson@nwu.edu                      Brian David Olson\nbdolson@casbah.acns.nwu.edu   bdolson@cica.es\nbdolson@merle.acns.nwu.edu    bdolson@sevaxu.cica.es\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6878, "properties": {"category": "rec.sport.hockey", "text": "From: joe13+@pitt.edu (Joseph B Stiehm)\nSubject: Re: How to beat Pittsburgh!\nOrganization: University of Pittsburgh\nLines: 20\n\nIn article <1993Apr15.214902.3372@guvax.acc.georgetown.edu> apanjabi@guvax.acc.georgetown.edu writes:\n...\n>>HOW TO BEAT PITTSBURGH???\n...\n>\tIII.Kevin Stevens\n>\t\tA.Fighting\n>\t\t\t1.Call Bob Probert\n>\t\t\t2.Call Tie Domi\n>\t\t\t3.Call my grandmother (She'd kick his ass)\n> \n\nYeah...I've seen you're grand mother...I bet she could.\n\nJoseph Stiehm\n\n\n\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6879, "properties": {"category": "comp.sys.mac.hardware", "text": "From: monty%roscom@think.com (Monty Solomon)\nSubject: PowerBook 170 4/40\nExpires: Mon, 26 Apr 1993 00:43:13 GMT\nReply-To: Monty Solomon <roscom!monty@think.com>\nOrganization: Proponent\nLines: 8\n\nThe PowerBook 170 4/40 with Fax/Data modem is available thru CitiBank's\nCitiDollars catalog for $1995.00 + $19.95 S/H (+ 500 CitiDollars).\n\nThe modem is 2400 bps data, 9600 bps fax (send only).\n\n-- \n# Monty Solomon / PO Box 2486 / Framingham, MA  01701-0405\n# monty%roscom@think.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6880, "properties": {"category": "rec.sport.hockey", "text": "From: jwodzia@fadel.uucp (john wodziak)\nSubject: Re: Goalie masks\nReply-To: jwodzia@fadel.UUCP (john wodziak)\nOrganization: Clemson University Engineering Department\nLines: 25\n\nIn article <120666@netnews.upenn.edu> kkeller@mail.sas.upenn.edu (Keith Keller) writes:\n>My vote goes to John Vanbiesbrouck.  His mask has a skyline of New York\n>City, and on the sides there are a bunch of bees (Beezer).  It looks\n>really sharp.\n\nDoesn't it also have the Statue of Liberty on it or is that Richter's Mask?\n\nThe back actually has a Bee followed by a Z to represent the Beezer. It \nalso has something that looks like the three interconnecting circles from\nthe Led Zepplin 4 album cover. Is that what it is supposed to be? and if\nit is does anybody know why he would put it there? Ali?\n\n>    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n>            \"When I want your opinion, I'll give it to you.\" \n\nJohn\n\"The official Language of Golf is Profanity\"\n\n\n\n\nIn Hockey Hell...............jwodzia@eng.clemson.edu............John R. Wodziak\nThe REAL Black and Gold     |In Memorium: #7 Alan Kulwicki 1954-1993   | Bean\nWill Triumph over those who |A Polish Yankee Mechanical Engineer,      | Town\nare Pretenders to the Crown.|1992 Winston Cup Champion & a great Person| ROCKS!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6881, "properties": {"category": "rec.motorcycles", "text": "From: ci513@cleveland.Freenet.Edu (Tom Kelly)\nSubject: MGNOC ADDRESS?\nArticle-I.D.: usenet.1prsuk$hvl\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 6\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\n\nIf anyone has the current Moto Guzzi National Owners Club\naddress please e-mail it to me. Thanks in advance!\nT.K.\n-- \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.323+0000", "event": "documents", "entityId": 6882, "properties": {"category": "talk.politics.guns", "text": "From: strait@cheetah.csl.uiuc.edu (Jeffrey C. Strait)\nSubject: Re: NRA address?\nOrganization: The University of Illinois\nLines: 15\nDistribution: world\nNNTP-Posting-Host: cheetah.csl.uiuc.edu\nKeywords: NRA Waco RKBA\n\nIn article <7307@pdxgate.UUCP>, barker@rigel.cs.pdx.edu (James Barker) writes:\n> Could someone email me a USNail address for the NRA? I'd like to write them\n> a letter encouraging them to see to it VERY EMPHATICALLY that the 2nd\n> amendment is restored to the form that the founding fathers intended.\n\nNational Rifle Association\n1600 Rhode Island Ave. NW\nWashington, DC 20036-3268\n1-800-368-5714 (membership)\n\n-- \n| Jeff Strait                       | strait@uicsl.csl.uiuc.edu        |\n| University of Illinois            | PHONE: (217) 333-6444            |\n| \"If you ladies leave this island, if you survive basic recruit       |\n| training, you will be a weapon, a minister of death praying for war\" |\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6883, "properties": {"category": "sci.electronics", "text": "Subject: Re: Exploding TV!\nFrom: xhan@uceng.uc.edu (Xiaoping Han)\nDistribution: usa\nOrganization: University of Cincinnati\nLines: 12\n\nIn article <1qk4hj$qos@vtserf.cc.vt.edu> prasad@vtaix.cc.vt.edu (Prasad Ramakrishna) writes:\n\n>... Why would the picture tube explode or even smoke?\n\nIt's not the picture tube. More likely the flyback. Emerson? can't admire.\nHan\n\n>Prasad\n>prasadr@vtvm1.cc.vt.edu\n>\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6884, "properties": {"category": "comp.graphics", "text": "From: talluri@osage.csc.ti.com (Raj Talluri)\nSubject: Point of intersection of n lines\nKeywords: robust statistics\nNntp-Posting-Host: osage\nOrganization: Texas Instruments\nLines: 21\n\nHi,\n\nCan anybody suggest robust algorithms/code for computing the point of intersection\non n, 2-d lines in a plane. The data has outliers and hence a simple least squares\ntechnique does not seem to provide satifactory results.\n\nPlease respond by e-mail and I will post the summary to the newsgroups\nif there is sufficient interest.\n\nThanks,\n\nRaj Talluri\nMember Technical Staff\nImage Understanding Branch\nTexas Instruments\nCentral Research Labs\nDallas, Texas 75248\n\ntalluri@csc.ti.com\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6885, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rruther@watts.tansu.com.au (Ralf Rutherford)\nSubject: Re: Workgroup Questions (conven. ram and licensing)\nOrganization: AOTC - CSSC\nLines: 59\nDistribution: world\nReply-To: rruther@watts.tansu.com.au\nNNTP-Posting-Host: watts.cssc-melb.tansu.com.au\n\nIn article 0rA6ABh107h@eosvcr.wimsey.bc.ca, aew@eosvcr.wimsey.bc.ca (Alan Walford) writes:\n>I would be very appreciative if someone would answer a few \n>questions about Windows for Workgroups.\n>\n>I currently have Novell Netware Lite which does not work with\n>Windows very well and is a conventional memory hog (ver. 1.1).\n>I am considering moving all our machines to W4WG.\n>\n>Q1:  How much conventional ram does W4WG use over and above the\n>     driver for the network card?\n>\nabout 2.5Kbyte without Novell 3.11 support.\n\n>Q2:  If I have a Novell NE2000 card, are the LSL and IPX drivers\n>     still needed?\n>\nNo.\n\n>Q3:  Does W4WG do a license check over the network to ensure each\n>     machine is running its own licenced copy of W4WG? (Note: I do\n>     not want to break the license agreement and I will buy a copy\n>     of W4WG for each of our machines, it is just that I would like\n>     to try it out first to see if it meets our needs. Returning one\n>     opened copy is much easier than returning N opened copies.)\n>\nNo.\n>Q4:  If you buy the upgrade to Windows 3.1 for W4WG does it replace\n>     all of Win 3.1 as you install it or does it depend on current\n>     Win 3.1 files?\n>\nNearly all.\n\n>Q5:  If I install Windows NT on my server when it comes out, will I have\n>     any troubles with the W4WG machines?\n>\nWe run mixed WNT beta and W4WG, no problem apart from printer sharing( beta problem)\n\n>When I started this message, I was going to ask only 2 questions but I got carried\n>away. I'll stop now ;-).\n>\nWe had problems with mouse drivers using W4WG where Windows 3.1 didn't, seems to be \nmore critical about it. It was actualy a port problem with the network card running on 0x2e0, we changed it to 0x300, now everything is allright, I think it has to do with the AMI Bios as well.\n\n>I look forward to your replies.\n>\n>Al\n>\n>-- \n>Alan Walford     Eos Systems Inc., Vancouver,B.C., Canada  Tel: 604-734-8655\n>aew@eosvcr.wimsey.bc.ca           OR        ...uunet!wimsey.bc.ca!eosvcr!aew  \n\n\n\n---\nRalf Rutherford Telecom Aust   | MHSnet: rruther@cssc-melb.tansu.com.au\nNetwork Services               | Snail:  700 Blackburn Rd, Clayton Vic 3168 \nCustomised Software Solutions  | \t Australia\n   Center Melbourne            | Phone:  +61 3 253 8910 FAX: +61 3 265 6669\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6886, "properties": {"category": "sci.crypt", "text": "From: brad@optilink.COM (Brad Yearwood)\nSubject: Clipper considered harmful\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 48\n\nIf Clipper comes to cellular phones along with legal proscriptions against\nusing other cipher systems on these phones, a new and potentially dangerous\nclass of crime is created.\n\nCriminals who very badly want inscrutable tactical communications (specifically\nthe terrorists and drug dealers who proponents of key escrow cite as threats)\nwill be highly motivated to steal the cipher phone of a legitimate user, and\nto kill this person or hold them hostage so discovery of compromise of the\ndevice will be delayed.\n\nOnce a suitable collection of devices is stolen, criminals can communicate\nwith impunity (assuming the cipher system carries no trapdoors apart from\nkey escrow) until and unless the compromise is discovered by some other means.\n\nBecause life-is-cheap criminals are currently willing to kill people to steal\nvery large and conspicuous property (luxury cars), it is reasonable to assume\nthat they will be willing to kill people to steal small and inconspicuous\nproperty (a cipher cellular phone).  Just as we have seen in the past with\n\"blue box\" technology, and in the present with modified cellular phones,\nwe can expect to see among high-stakes criminals a lucrative market for\nstolen cipher phones which can be used for a few days.  The high-stakes\ncriminals will pay the life-is-cheap types substantial amounts for stolen\ninstruments.\n\nBecause a person is typically discovered as missing or dead in a few days,\na stolen instrument will be usable for only a few days.  There will be a\ncontinuing demand for fresh phones: fresh bodies.\n\nIn other words, Clipper and similar systems have the potential to turn a\ncurrent inconvenience to law enforcement into a direct, vicious, and\npersistent threat to the general public.\n\nOn the other hand, if a criminal were to apply some arbitrary cipher to a\ndevice in a mostly non-ciphered network, the communication will at least\nstand out as being unusual, and perhaps worthy of other means of investigation.\n\nFinally, because there is essentially no possibility of intercepting in\nrealtime the scrutable content of communications between stolen instruments,\nthere will exist strong motivation to record and archive _all_ communications\nin the network for ex-post-facto scrutiny (once some criminal act is discovered,\nand the instruments involved have been identified).  While recording and\narchiving may not be feasible for wireline networks, it is probably feasible\nacross the more limited bandwidth of radio networks.  The existence of these\nrecordings could open up vast potential for abuse.\n\nBrad Yearwood    brad@optilink.com     {uunet, pyramid}!optilink!brad\nPetaluma, CA\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6887, "properties": {"category": "sci.med", "text": "From: kxgst1+@pitt.edu (Kenneth Gilbert)\nSubject: Re: Emphysema question\nOrganization: University of Pittsburgh\nLines: 14\n\nIn article <1993Apr15.180621.29465@radford.vak12ed.edu> mmatusev@radford.vak12ed.edu (Melissa N. Matusevich) writes:\n:Thanks for all your assistance. I'll see if he can try a\n:different brand of patches, although he's tried two brands\n:already. Are there more than two?\n\nThe brands I can come up with off the top of my head are Nicotrol,\nNicoderm and Habitrol.  There may be a fourth as well.\n\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!\" =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6888, "properties": {"category": "talk.politics.guns", "text": "From: yodicet@gtewd.mtv.gtegsc.com\nSubject: Re: ATF BURNS DIVIDIAN RANCH - UPDATE\nDistribution: usa\nOrganization: GTE Govt. Systems, Electronics Def. Div.\nLines: 12\n\nIn article <93110.11320334AEJ7D@CMUVM.BITNET>, <34AEJ7D@CMUVM.BITNET> writes:\n> Ah yes, I see a few liberal weenies have come out of the woodwork\n> to defend the burning of the children. Probably drooled all over themselves\n> while watching the TV coverage.\n> \n> Probably had a few like that in Nazi Germany, as well.\n> \n> Oh yeah, ATF/FBI now claims, according the the media, that there are\n> a few survivors. The number seems to vary minute by minute.\n> \n> \n> \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6889, "properties": {"category": "rec.sport.hockey", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: Don Cherry - Coach's Corner summary - April 19, 1993\nOrganization: Adobe Systems Incorporated\nLines: 18\n\nIn article <allan.735284991@swanlake> allan@cs.UAlberta.CA (Allan Sullivan) writes:\n>Next, a clip was shown from an earlier episode, in which Don was\n>proclaiming Doug Gilmour to be the best player, not only in\n>the NHL, but in the world. What about players like Lemieux?\n>Don said that Gilmour was the best PLAYER, not \"Designated point getter\".\n>Its not like baseball, where you have a \"designatted hitter\" who\n>can score runs but can't play defense. Gilmour is a good two way player.\n\nWhat can you expect from a buffoon who said that the Pens should have\ndrafted Kirk Muller instead of Mario Lemieux?  \n\nPerhaps once upon a time Don Cherry had some insight into the game of\nhockey, but he's really degenerated into a parody of himself.\n\nSherri Nichols\nsnichols@adobe.com\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6890, "properties": {"category": "sci.space", "text": "From: S901924@mailserv.cuhk.hk\nSubject: Re: Gravity waves, was: Predicting gravity wave quantization & Cosmic Noise\nSummary: Dong ....  Dong ....  Do I hear the death-knell of relativity?\nKeywords: space, curvature, nothing, tesla\nNntp-Posting-Host: wksb14.csc.cuhk.hk\nOrganization: Computer Services Centre, C.U.H.K.\nDistribution: World\nLines: 36\n\nIn article <C4M8E5.AuD@csn.org> et@teal.csn.org (Eric H. Taylor) writes:\n>From: et@teal.csn.org (Eric H. Taylor)\n>Subject: Re: Gravity waves, was: Predicting gravity wave quantization & Cosmic Noise\n>Summary: Dong ....  Dong ....  Do I hear the death-knell of relativity?\n>Keywords: space, curvature, nothing, tesla\n>Date: Sun, 28 Mar 1993 20:18:04 GMT\n>In article <C4KvJF.4qo@well.sf.ca.us> metares@well.sf.ca.us (Tom Van Flandern) writes:\n>>crb7q@kelvin.seas.Virginia.EDU (Cameron Randale Bass) writes:\n>>> Bruce.Scott@launchpad.unc.edu (Bruce Scott) writes:\n>>>> \"Existence\" is undefined unless it is synonymous with \"observable\" in\n>>>> physics.\n>>> [crb] Dong ....  Dong ....  Dong ....  Do I hear the death-knell of\n>>> string theory?\n>>\n>>     I agree.  You can add \"dark matter\" and quarks and a lot of other\n>>unobservable, purely theoretical constructs in physics to that list,\n>>including the omni-present \"black holes.\"\n>>\n>>     Will Bruce argue that their existence can be inferred from theory\n>>alone?  Then what about my original criticism, when I said \"Curvature\n>>can only exist relative to something non-curved\"?  Bruce replied:\n>>\"'Existence' is undefined unless it is synonymous with 'observable' in\n>>physics.  We cannot observe more than the four dimensions we know about.\"\n>>At the moment I don't see a way to defend that statement and the\n>>existence of these unobservable phenomena simultaneously.  -|Tom|-\n>\n>\"I hold that space cannot be curved, for the simple reason that it can have\n>no properties.\"\n>\"Of properties we can only speak when dealing with matter filling the\n>space. To say that in the presence of large bodies space becomes curved,\n>is equivalent to stating that something can act upon nothing. I,\n>for one, refuse to subscribe to such a view.\" - Nikola Tesla\n>\n>----\n> ET  \"Tesla was 100 years ahead of his time. Perhaps now his time comes.\"\n>----\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6891, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Deification\nOrganization: Indiana University\nLines: 14\n\nIn article <Apr.10.05.30.35.1993.14329@athos.rutgers.edu> HOLFELTZ@LSTC2VM.stortek.com writes:\n>Aaron Bryce Cardenas writes:\n>After all, what does prophesy mean?  Secondly, what is an Apostle?  Answer:\n>an especial witness--one who is suppose to be a personal witness.  That means\n>to be a true apostle, one must have Christ appear to them.  Now lets see\n>when did the church quit claiming ......?\n\nActually, an apostle is someone who is sent.  If you will, mailmen could\nbe called apostles in that sense.  However, with Jesus, they were\ndesignated and were given power.  Remember that there were many\nthousands of people who witnessed what Jesus did.  That didn't make them\napostles, though.\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6892, "properties": {"category": "rec.sport.hockey", "text": "From: rrmadiso@undergrad.math.uwaterloo.ca (*** CHUCK ***)\nSubject: Re: Playoff predictions\nOrganization: University of Waterloo\nLines: 38\n\n\nEverybody.  Please send me your predictions for the Stanley Cup Playoffs!\nI want to see who people think will win.!!!!!!!\n\nPlease Send them in this format, or something comparable:\n\n1. Winner of Buffalo-Boston\n2. Winner of Montreal-Quebec\n3. Winner of Pittsburgh-New York\n4. Winner of New Jersey-Washington\n5. Winner of Chicago-(Minnesota/St.Louis)\n6. Winner of Toronto-Detroit\n7. Winner of Vancouver-Winnipeg\n8. Winner of Calgary-Los Angeles\n\n9. Winner of Adams Division (1-2 above)\n10. Winner of Patrick Division (3-4 above)\n11. Winner of Norris Division (5-6 above)\n12. Winner of Smythe Division (7-8 above)\n\n13. Winner of Wales Conference (9-10 above)\n14. Winner of Campbell Conference (11-12 above)\n\n15. Winner of Stanley Cup (13-14 above)\n\nI will summarize the predictions, and see who is the biggest\nINTERNET GURU PREDICTING GUY/GAL.\n\nSend entries to Richard Madison\nrrmadiso@napier.uwaterloo.ca\n\nPS:  I will send my entries to one of you folks so you know when I say\nI won, that I won!!!!!\n\n:)\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6893, "properties": {"category": "sci.electronics", "text": "From: tchannon@black.demon.co.uk (Tim Channon)\nSubject: Re: Laser vs Bubblejet?\nReply-To: tchannon@black.demon.co.uk\nDistribution: world\nX-Mailer: cppnews $Revision: 1.20 $\nOrganization: null\nLines: 53\n\nHere is a different viewpoint.\n\n> FYI:  The actual horizontal dot placement resoution of an HP\n> deskjet is 1/600th inch.  The electronics and dynamics of the ink\n> cartridge, however, limit you to generating dots at 300 per inch.\n> On almost any paper, the ink wicks more than 1/300th inch anyway.\n> \n> The method of depositing and fusing toner of a laster printer\n> results in much less spread than ink drop technology.\n\nIn practice there is little difference in quality but more care is needed \nwith inkjet because smudges etc. can happen.\n\n> It doesn't take much investigation to see that the mechanical and\n> electronic complement of a laser printer is more complex than\n> inexpensive ink jet printers.  Recall also that laser printers\n> offer a much higher throughput:  10 ppm for a laser versus about 1\n> ppm for an ink jet printer.\n\nA cheap laser printer does not manage that sort of throughput and on top of \nthat how long does the _first_ sheet take to print? Inkjets are faster than \nyou say and in both cases the computer often has trouble keeping up with the \nprinter. (I have a 486/33 and a lot of drivers cannot keep up with the \nprinter)\n\nA sage said to me: \"Do you want one copy or lots of copies?\", \"One\", \n\"Inkjet\".\n \n> Something else to think about is the cost of consumables over the\n> life of the printer.  A 3000 page yield toner cartridge is about\n> $US 75-80 at discount while HP high capacity (~500-1000 page yield)\n> cartridges are about $US 22 at discount.  It could be that over the\n> life cycle of the printer that consumables for laser printers are\n> less than ink jet printers.  It is getting progressively closer\n> between the two technologies.  Laser printers are usually desinged\n> for higher duty cycles in pages per month and longer product\n> replacement cycles.\n\nPaper cost is the same and both can use refills. Long term the laserprinter \nwill need some expensive replacement parts (consumables) and on top of that \nare the amortisation costs which favour the lowest purchase cost printer.\n\nHP inkjets understand PCL so in many cases a laserjet driver will work if the \nsoftware package has no inkjet driver. \n\nThere is one wild difference between the two printers: a laserprinter is a \npage printer whilst an inkjet is a line printer. This means that a \nlaserprinter can rotate graphic images whilst an inkjet cannot. Few drivers \nactually use this facility.\n(there is also the matter of downloadable fonts and so on)\n\n  TC. \n    E-mail: tchannon@black.demon.co.uk or tchannon@cix.compulink.co.uk\n                                \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6894, "properties": {"category": "rec.autos", "text": "From: James Edward Burns <ddujeb@arco.com>\nSubject: Re: SUPER MEGA AUTOMOBILE SIGHTING(s)!!!!! Exotics together!\nX-Xxdate: Tue, 20 Apr 93 00:07:01 GMT\nOrganization: ARCO Long Beach Inc.\nX-Useragent: Nuntius v1.1.1d15\nLines: 14\n\nIn article <1qvgg3INNl0r@phantom.gatech.edu>\nGraham E. Thomas, grahamt@phantom.gatech.edu\nwrites: > Alright, beat this automobile\nsighting.\n\nI can top that one.  Friday afternoon 4-16-93 I\nlook out my window in Long Beach CA.  What do I\nsee but the new Ferrari.  I looks like a mix\nbetween the ragtop testarossa (sp?) and the batman\ncar.  It seems Ferrari had their Annual dinner\nat the place downstairs.  Sweet car.\n\n\nJ.B.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6895, "properties": {"category": "sci.space", "text": "From: nickh@CS.CMU.EDU (Nick Haines)\nSubject: Vast Bandwidth Over-runs on NASA thread (was Re: NASA \"Wraps\")\nIn-Reply-To: wingo%cspara.decnet@Fedex.Msfc.Nasa.Gov's message of 18 Apr 1993 13:56 CDT\nOriginator: nickh@SNOW.FOX.CS.CMU.EDU\nNntp-Posting-Host: snow.fox.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon University\n\t<17APR199316423628@judy.uh.edu> <1993Apr18.034101.21934@iti.org>\n\t<18APR199313560620@judy.uh.edu>\nLines: 12\n\nIn article <18APR199313560620@judy.uh.edu>, Dennis writes about a\nzillion lines in response to article <1993Apr18.034101.21934@iti.org>,\nin which Allen wrote a zillion lines in response to article\n<17APR199316423628@judy.uh.edu>, in which Dennis wrote another zillion\nlines in response to Allen.\n\nHey, can it you guys. Take it to email, or talk.politics.space, or\nalt.flame, or alt.music.pop.will.eat.itself.the.poppies.are.on.patrol,\nor anywhere, but this is sci.space. This thread lost all scientific\ncontent many moons ago.\n\nNick Haines nickh@cmu.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6896, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Helium non-renewable??  (was: Too many MRIs?)\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 18\n\nIn article <lsj1gdINNkor@saltillo.cs.utexas.edu> turpin@cs.utexas.edu (Russell Turpin) writes:\n>-*----\n>How does the helium get consumed?  I would have thought that failure\n>to contain it perfectly would result in its evaporation .. back into \n>the atmosphere.  Sounds like a cycle to me.  Obviously, it takes \n>energy to run the cycle, but I seriously doubt that helium consumption\n>is a resource issue.\n>\nIt's not a cycle.  Free helium will escape from the atmosphere due to\nits high velocity.  It won't be practical to recover it.  It has\nto be mined.\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6897, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: Gospel Dating\nOrganization: Case Western Reserve University\nLines: 26\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1993Apr6.021635.20958@wam.umd.edu> west@next02cville.wam.umd.edu (Stilgar) writes:\n\n>Fine... THE ILLIAD IS THE WORD OF GOD(tm)  (disputed or not, it is)\n>\n>Dispute that.  It won't matter.  Prove me wrong.\n\n\tThe Illiad contains more than one word. Ergo: it can not be\nthe Word of God. \n\n\tBut, if you will humbly agree that it is the WORDS of God, I \nwill conceed.\n\n\t:-D\n\n\n---\n\n        \"One thing that relates is among Navy men that get tatoos that \n        say \"Mom\", because of the love of their mom.  It makes for more \n        virile men.\"\n\n        Bobby Mozumder  ( snm6394@ultb.isc.rit.edu )\n        April 4, 1993\n\n        The one TRUE Muslim left in the world. \n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6898, "properties": {"category": "sci.crypt", "text": "From: wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Mary Ellen Carter Salvage Crew\nDistribution: na\nIn-Reply-To: jhesse@netcom.com's message of Sat, 17 Apr 1993 01:36:41 GMT\nKeywords: Big Bubba Is Watching!\n\t<jhesseC5Ltt5.IMC@netcom.com>\nNntp-Posting-Host: rainier.ho.att.com\nLines: 25\n\nIn article <jhesseC5Ltt5.IMC@netcom.com> jhesse@netcom.com (John Hesse) writes:\n   Stupid me. I believed the Democrats stood for principles of personal\n   privacy while it was the Neanderthal Republicans that wanted into every\n   aspect of our lives. \n   Clinton is just more clever than the other guy. Looks like gun control for\n   privacy technology. One small step at a time.\n\nRemember \"Defend Firearms - Defeat Dukakis\", followed by Bush's soon-after-\nelection support for gun-control?   This is the Democrats' version\n\"Defend Free Speech - Reject Republicans\" followed by speech control.\n\n   Wait a minute....  Let me think about this.\n\n   Hmmm, I feel better now. I believe the White House when they tell us\n   this first step is, in fact, the final step. All is OK. We've nothing to fear.\n   They're here to help us.   God bless America.\n \nHey, like the grrreat J.R. \"Bob\" Dobbs says, you've got to pull the\nwool over your *own* eyes!\n\n--\n#\t\t\t\tPray for peace;      Bill\n# Bill Stewart 1-908-949-0705 wcs@anchor.att.com AT&T Bell Labs 4M312 Holmdel NJ\n#\t              No, I'm *from* New Jersey, I only *work* in cyberspace....\n# White House Commect Line 1-202-456-1111  fax 1-202-456-2461\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6899, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: taybh@hpsgm2.sgp.hp.com (Beng Hang TAY)\nSubject: VL-bus HDD/FDD controller or IDE HDD/FDD controller?\nOrganization: HP Singapore Notes-Server\nLines: 20\n\nHi,\n\tI am buying a Quantum LPS240AT 245 MB hardisk and is deciding a\n\tHDD/FDD controller. Is 32-bit VL-bus HDD/FDD controller faster \n\tthan 16 bit IDE HDD/FDD controller card? I hear that\n\tthe VL bus controller is SLOWER than a IDE controller?\n\tWhich one is true?\n\n\tPlease shed some light by email or post.\n\tThanks a lot.\n\nBest regards,\n \n ____________________________________________________________________________\n| Beng-Hang Tay                       | Telnet:    520 8732                  |\n| Singapore Networks Operation        | Phone:     (65) 279 8732             |\n| Hewlett-Packard Singapore Pte. Ltd. | Fax:       (65) 272 2780             |\n| 1150 Depot Road                     | Internet:  taybh@hpsgm2.sgp.hp.com   |\n| Singapore 0410                      |                                      |\n| Republic of Singapore\t\t      |                                      |\n ----------------------------------------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6900, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: My Gun is like my American Express Card\nOrganization: University of Tennessee Division of Continuing Education\nLines: 134\n\nIn article <CMM.0.90.2.734911642.thomasp@surt.ifi.uio.no> Thomas Parsli <thomasp@ifi.uio.no> writes:\n>Overall Crime rate:\n>It fell....just like that...\n\n       Two questions:  When was this, and do you have the relevant\nnumbers.  (Please note, this is *not* in any way an indication I don't\nbelieve you or that you're not correct, but when the drop occured is\nrelevant.)\n   \n>Acquiring weapons in Norway:\n>You can buy (almost) all kinds of weapons in Norway, BUT you must have a \n>permit, and a good reason to get the permit....\n>If I would like to have a handgun, i would have to get an gun-licence from \n>the police and to be a member of a gun-club.\n\n       The primary objection (beyond ones based on the ideal of\nRKBA that it is simply not something the government should do) is\nthat it makes guns a play-thing and tool of the rich and connected.\nIt discriminates against the poor.\n\n       Is self-defense considered appropriate, and if so, under what\nconditions?  (Are you allowed, for instance to get a gun for protection\nif you're going to be carrying a very large sum of money on a regular\nbasis or have been threatened.)\n\n>The police would check my criminal records for any SERIOUS crimes and/or\n>records of SERIOUS mental diseases.\n\n       This has been suggested in the U.S., and generally supported among\ngun owners.  What many object to is that many, if not most, proposals\ncontain a sort of \"gotcha\" clause which allows an arbitrary denial, even\nif you qualify in every way.\n\n>Now, if a got my licence, I would have to be an active member of the gun\n>-club for 6 months BEFORE I could collect my gun.\n>It's a little like getting a drivers licence isn't it ???\n>You have to prove that you CAN drive before you are allowed to...\n\n       At this point, it should be pointed out that in general\na driver's licence in the U.S. is for the most part nothing like its\nEuropean counterpart.  I understand getting one is far more difficult\nthere than here.  In the U.S. it's a joke. \n\n       But my usual objection is that you're discussing two different\nthings.  For instance, in the U.S. a driver's license is a permit\nto operate a motor vehicle on a public road.  It is not necessary\nto own one, or to operate it on private property.  That is, the\nability to require driving permits is generally considered to arise\nfrom the government's legitimate power to enact reasonable regulations\nfor behavior on public lands.  A permit to own an automobile, for instance,\nwhich is far closer an analogy, would be a much harder thing to get\npast legally, since it wouldn't be based on making regulations on public\nproperty, but in restricting activity on private property.              \n\n>Use of guns in crimes (in Norway):\n>Some crimes are commited with guns that have been in the owners 'arms'\n>for a long time, but these are rather the exeption.\n>Most criminals accuire guns to use them in crimes, and mostly short \n>time befor the crime.\n>\n>Use of knives:\n>It IS allowed to cary knifes in public, but not in your belt or 'open'.\n>You (Americans) think it's ok to have a gun, but not to carry it open\n>in public -rigth ??\n\n        This varies *widely*.  (One thing I think Europeans have\na difficult time with is that the U.S. has fifty unique jurisdictions,\nwhere the laws from one state to another can be as radically different\nas from one country in Europe to another).\n\n        Some places allow open carry of both guns and knives.  Some allow\nconcealed.  Some prohibit both, or allow one or the other.  And it can\nbe either a state or local restriciton.       \n\n>Individual vs masses:\n>Yes the individual is more important than the masses, but only to some\n>extent....\n>Your criminal laws are to protect the individuals who makes the masses ??\n>What happens when the rigths of some individuals affects the rights of \n>all the others ??\n\n       The question must be asked:  Is the right of *this* individual\naffecting the rights of this *other* individual.  What we usually\nget is that the rights of this *group* (meaning some individuals within\nthis group, here defined as \"people who own guns,\") are adversely affecting \nthe rights of some other group.  \n\n       If for instance, \"Bob\" were using his gun to attack \"Steve,\" you'd\nhave a point.  But essentially what we're discussing is that becuase\nsome person who qualifies as a member of the group \"people who own\nguns\" then some third person, perhaps in another *time zone* is told\nthat their being a member of that group is taking away somebody else's\nrights.  It's like trying to punish all newspapers for the libel commited\nby one.\n\n>The issue:\n>I believe the issue is GUNS, and gun-legislation.\n\n       The issue is crime, violence, and murder.  The question is to\nwhat extent guns and gun legislation impact those.\n\n>We shouldn't mix weapons and items that can serve as one....\n>IF i lived in Amerika I would probably have a gun to defend myselfe in HOME.\n>But should it have to be like that ??\n\n       Of course not.  It would be nice if we didn't have to fear that\nother people might get it into their twisted little minds to hurt us.\nBut currently we don't have that option.  Nor do I expect we will.\n\n>Do you think it's wise to sell guns like candy (some states do...) ??\n\n       No state does.  In any case, there's a limit to which the state\nmay enforce it's \"wisdom\" on me.  Freedom in general is an unwise\nconcept.  If you pre-emptively restrict everything which might be\n\"unwise\" then freedom becomes a meaningless concept.\n   \n>If you believe it's smart/neccacery to have drivers-licence WHY do you think\n>it should be free to buy guns ??\n\n       I'll raise my hand against driver's licenses.  As currently\nimplemented they're a waste of time and little more than revanue\ngeneration for the State and ignored by a startling number of\ndrivers.  It does not guarantee a level of skill any higher than is\nnecessary to get your car on the road and get yourself or somebody\nelse killed, or a knowledge of traffic laws beyond what any ten year\nold will have picked up riding around in his parents car.\n\n       But, as I mentioned, they're two different things.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6901, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: Re: THE ALL TIME GREATS TEAM\nOrganization: Allegheny College\nLines: 33\n\nIn article <1993Apr14.203122.12367@iscsvax.uni.edu>  \nreed5575@iscsvax.uni.edu writes:\n>     \n> \nDave Winfield's name does not go\n> in the same sentence. As Aaron, Robinson, and Ott. \n\n\n\n       In terms of PEAK, and I repeat PEAK years, Winfield has Done it  \nall. He has batted in the 340's for a season, drove in 100 and more runs  \nmany times in a row before his injury. Consistently hit at or near 300  \nwhile knocking in 35 home runs. Have you even LOOKED at Dave Winfield's  \nslugging percentage for three or 4 of his best seasons. I still think that  \ndave was one of the BETTER of all time, but obviously not the best. He was  \none of the best athletes evr to play baseball. He hit line drives that hit  \nthe scoreboard in left-center field, a feat np one has done in the new  \nStadium. Heck, only 2 or 3 other people have hit it over that green fence  \nsince it has been remodeled. He could field, had a bullet arm, and his  \nhitting was comparable in many seasons to gary sheffields, and barry bonds  \nof last season. He is older now, and slowing down, takes more of an  \nuppercut to lift the ball out of the park, but he will always be my hero,  \nand my idol. There is nothing that could make me happier than George  \ninviting Dave back to the Bronx to play his last year of ball with the  \nYankees. Of course, he will most likely refuse the offer, but who knows?  \nFor 3 million dollars, he'll play. Heck they are giving gallego 2.5  \nmillion this year, having Dave as their DH, while leaving him time to play  \nthe field when Tartabull is injured, or Nokes and mass are traded, should  \ngive the Yanks the inspiration and leadership that will sweep in a new age  \nof Yankee domination.\n\n\nMichael Lurie\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6902, "properties": {"category": "sci.med", "text": "From: debbie@csd4.csd.uwm.edu (Debbie Forest)\nSubject: Re: Can men get yeast infections?\nOrganization: Computing Services Division, University of Wisconsin - Milwaukee\nLines: 18\nDistribution: na\nNNTP-Posting-Host: 129.89.7.4\n\nIn article <1993Apr14.184444.24065@galileo.cc.rochester.edu> jkis_ltd@uhura.cc.rochester.edu (Da' Beave) writes:\n>\n>Well folks, I currently have a yeast infection. I am male.\n>[...] your best bet (or at least your husband's)\n>is to treat and cure your infection before any intercourse. If you must, use\n>a condom. Also, consider other forms of sexual release (ie. handjobs) until\n>you are cured. \n\nThough I can't imagine WANTING to have intercourse during a full-blown\nyeast infection :-) chances of it being transmitted to the male are quite\nlow, especially if he's circumcised.  But it can happen. \nAt one point I was getting recurrent yeast infections and the Dr suspected\nmy boyfriend might have gotten it from me and be reinfecting me.  The\nprescription was interesting.  For each day of the medication (a week) I \nwas to insert the medication, then to have intercourse.  The resulting \naction would help the medicine be spread around in me better, and would \nsimultaneously treat him.  \n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6903, "properties": {"category": "sci.space", "text": "From: mike@starburst.umd.edu (Michael F. Santangelo)\nSubject: Re: Space Station Redesign, JSC Alternative #4\nOrganization: University of Maryland, Chesapeake Biological Laboratory\nLines: 47\nNNTP-Posting-Host: starburst.umd.edu\n\ndbm0000@tm0006.lerc.nasa.gov (David B. Mckissock) writes:\n\n...text of options \"A\" and \"B\" deleted...\n\n>Option C - Single Core Launch Station.\n>This is the JSC lead option. Basically, you take a 23 ft diameter\n>cylinder that's 92 ft long, slap 3 Space Shuttle Main Engines on\n>the backside, put a nose cone on the top, attached it to a \n>regular shuttle external tank and a regular set of solid rocket\n>motors, and launch the can. Some key features are:\n>  - Complete end-to-end ground integration and checkout\n>  - 4 tangentially mounted fixed solar panels\n>  - body mounted radiators (which adds protection against\n>    micrometeroid & orbital debris)\n>  - 2 centerline docking ports (one on each end)\n>  - 7 berthing ports\n>  - a single pressurized volume, approximately 26,000 cubic feet\n>    (twice the volume of skylab).\n>  - 7 floors, center passageway between floors\n>  - 10 kW of housekeeping power\n\nOnly 10KW?\n\n>  - graceful degradation with failures (8 power channels, 4 thermal\n>    loops, dual environmental control & life support system)\n>  - increased crew time for utilization\n>  - 1 micro-g thru out the core module\n\nHa!  \"North America Modular SPACE STATION construction\" :-)\nSame apprach, same reasoning: \"construction occurs under assembly\nline conditions, no random weather problems interupting site-work\non your home - better quality control\" -- sounds like first \"-\"\npoint above :-)\n\nSomehow I have a strange attraction for this idea (living in\na modular home maybe has altered my mind).  The only thing\nthat scares me is the part about simply strapping 3 SSME's and\na nosecone on it and \"just launching it.\"  I have this vision\nof something going terribly wrong with the launch resulting in the\ncomplete loss of the new modular space station (not just a peice of\nit as would be the case with staged in-orbit construction).\n\n--\n-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\nMichael F. Santangelo                 + Internet: mike@cbl.umd.edu      [work]\nDept. Head-Computer & Network Systems +           mike@kavishar.umd.edu [home]\nUMCEES / CBL (Solomons Island)        + BITNET:   MIKE@UMUC  [fwd to mike@cbl]\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.324+0000", "event": "documents", "entityId": 6904, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wyman@rtsg.mot.com (Mark S. Wyman)\nSubject: Re: AMD i486 clones: Now legal in US?!?!?!\nNntp-Posting-Host: lead17\nOrganization: Motorola Inc., Cellular Infrastructure Group\nDistribution: na\nLines: 12\n\npoe@wharton.upenn.edu writes:\n\n>A friend of mine called me on the phone and told me he was wathcing CNN\n>and saw a report that the ruling prohibiting AMD from selling their i486\n>clones has been thrown out, making it legal for AMD to ship in the US.\n>Can anyone out there verify this?\n\n>Thanks in advance\n>Phil\n\nYep, this was on the news.  Great news for consumers.  Bad news\nfor Intel.  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6905, "properties": {"category": "comp.sys.mac.hardware", "text": "From: orly@phakt.usc.edu (Mr. Nitro Plastique)\nSubject: *** HELP! Newly installed Falcon 2.21 bombs my SE! (Crashed internal HD)\nOrganization: University of Southern California, Los Angeles, CA\nLines: 30\nNNTP-Posting-Host: phakt.usc.edu\n\n\nHELP!\n\n\tI just received my Falcon 2.2.1 upgrade from Spectrum Holobyte today.\nMy SE is running Sys 7.0.1 with 4mb of RAM. Like the instructions said, I only\ninstalled Disk 2 (The program...no start up screen or music).\n\n\tI just downloaded Macsbug from ftp.apple.com like it said, and\ninstalled it in my System folder. I restarted the mac an hour later, and it \nwouldn't completely boot off the internal HD. I get the \"happy mac\", then it\ndisappears, only to reappear and repeat the cycle continuously. I never even\nget the \"Welcome to Macintosh\" message. Norton utilities fixed about 12 new\nproblems, but the same thing still happened.\n\n\tWhat do I do?\n\n\tPlease e-mail to \"orly@aludra.usc.edu\"\n\n\n\t\tTHANKS IN ADVANCE!!!\n\n\n\t\tVictor Orly\n\n;\n-- \n|Victor R. Orly               | \"Try to imagine all life as you know it,      |\n|aka \"Mr. Nitro Plastique\"    |  stopping instantaneously, and every molecule |\n|Univ. of Southern California |  in your body exploding at the speed of light\"|\n|Internet: orly@aludra.usc.edu|    -Egon Spengler, from \"Ghostbusters\"        |\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6906, "properties": {"category": "comp.windows.x", "text": "From: mjo@iao.ford.com (Mike O'Connor)\nSubject: Re: Motif vs. [Athena, etc.]\nOrganization: Not an official spokesperson for Ford Motor Company\nLines: 21\nReply-To: Mike O'Connor <mjo@fmsrl7.srl.ford.com>\nNNTP-Posting-Host: ope209.iao.ford.com\n\nIn article <1993Apr16.133856.21829@nrao.edu> rgooch@rp.CSIRO.AU\n(Richard Gooch) writes:\n\n:  really involved there). Many people using Linux like to stay at the cutting\n:  (bleeding) edge: ie. when kernel patches, C library or compiler patches come\n:  out, people like to rebuild their entire systems. The prime requirement for\n:  all Linux software is that it is available under a GNU style public license.\n:  Hence, Linux software uses either the Athena widgets or XView.\n:  Individuals may write software requiring Motif, but I doubt it is widely\n:  adopted.\n\nShameless plug -- the Xaw3d widgets make Athena a much nicer\nalternative than the stock MIT Athena code.\n\n\t\t\t\t\t\t...Mike\n\n-- \n Michael J. O'Connor           |  Internet:  mjo@fmsrl7.srl.ford.com\n Ford Motor Company, OPEO      |  UUCP:      ...!fmsrl7!opeo!mjo\n 20000 Rotunda, Bldg. 1-3001   |  Phone:     +1 (313) 248-1260\n Dearborn, MI  48121           |  Fax:       +1 (313) 323-6277\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6907, "properties": {"category": "talk.politics.guns", "text": "From: gs26@prism.gatech.EDU (Glenn R. Stone)\nSubject: Re: BATF/FBI revenge\nKeywords: BATF FBI Korash \"child abuse\"  guns murder CONTROL\nReply-To: glenns@eas.gatech.edu\nOrganization: The Group W Bench\nLines: 17\n\nIn <2077@rwing.UUCP> pat@rwing.UUCP (Pat Myrto) writes:\n\n>Anybody for impeachment?\n\nYeah, me.  Both the Slickmeister and Hillary's buddy Janet say\nthey're responsible... I want both their resignations on my desk \nyesterday.  I also want both thier butts up on federal civil rights\nviolations.... something which carries life in prison as a penalty.\n\nOh, and I'll contribute $20 to Arlen Specter's presidential campaign\nfor having the 'nads to launch the Senate investigation.\n\n-- Glenn R. Stone (glenns@eas.gatech.edu)       ==================\nAmerica in Distress                             ==================\n(flag upside down = SOS)                        *******===========\nSave your Republic before                       *******===========\nit no longer exists.                            *******===========\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6908, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: YTKIM@UCSVAX.UCS.UMASS.EDU (YONG T KIM)\nSubject: WINNLS.DLL?\nOrganization: UNIVERSITY OF MASSACHUSETTS - AMHERST\nLines: 7\nDistribution: world\nNNTP-Posting-Host: deimos.ucs.umass.edu\nX-News-Reader: VMS NEWS 1.24\n\n\nI tried to install a foreign language Windows application\nthat required a file named WINNLS.DLL.  I checked all of my\nWIndows 3.1 installation disks for this file, but could not\nfind it.  Does anybody have any idea what this file is for and\nwhere one could get it from?\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6909, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cunning@mksol.dseg.ti.com (patrick w cunningham)\nSubject: AMD CPU\nNntp-Posting-Host: localhost\nOrganization: Texas Instruments\nLines: 4\n\n Any comments of AMD microprocessors?  good?, bad?\n\n thanks, pat\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6910, "properties": {"category": "rec.sport.baseball", "text": "From: steph@pegasus.cs.uiuc.edu (Dale Stephenson)\nSubject: \"Seer\" Stephenson picks the A.L. East\nSummary: The division has gone to the birds\nKeywords: last chance for foolishness\nArticle-I.D.: pegasus.steph.733989466\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 95\n\nHaving run completely out of time, I've got to get my prophesies and\npredictions for the A.L. out.  Qualifications -- one of the worse\nfinishes in last year's prediction contest.\n\nAL East -- 1993\n\n1.  Baltimore Orioles\nWhy the Orioles?  Well, I pondered long and hard, and it all came down to\nthis:\n  -- The Blue Jays are going the wrong direction.\n  -- Can't bring myself to pick the Yankees\n  -- Milwaukee was a fluke\n  -- Indians aren't ready to contend\n  -- Red Sox were bad last year, and didn't get any better\n  -- Detroit's pitching will be the new definition of \"replacement level\"\n\"But you don't really think the Orioles will win, do you.\"  No.  As a matter\nof fact, I can't see any team in the American League winning either division\non paper (with the possible exception of the Yankees, who I hate).  But some-\nbody has to win, so I pick the Orioles.  \"You don't really think that Brady\nAnderson is going to repeat, do you?\"  No.  I'm basing the Orioles prediction\non the expectation of big years from Cal Ripken and Glenn Davis.  \"Glenn\nDavis?  That's insane\".  Yes.  So, without further ado:\nSTRONG POINTS:  Hoiles, Ripken some years, Olson, getting rid of Billy Ripken.\nWEAK POINTS:  Segui may start.  Valenzuela (the original 30-something) may be\n  the fifth starter.  Oates puts his best hitters at the bottom of the lineup.\n  (Does anybody else think that might be a calculated maneuver to minimize\n  the effect of a slumping Ripken?  If you can't move Ripken out of the #3\n  spot, why not move the rest of the line up?)\nWOULD BE A GOOD SIGN:  Glenn Davis wins comeback player of the year.\nWOULD BE A BAD SIGN:  In a tight pennant race, team trades for Pecota.\nObPrediction:  \"The Streak\" continues.  Harold Reynolds leads the team in\n  caught stealing.\n\n2. New York Yankees.\nSTRONG POINTS:  Abbot, Key, Perez.  Could have best pitching in American\n  League.  Boggs should improve on Hayes.\nWEAK POINTS:  Mattingly still considered best hitter.  The Steinbrenner \n  factor.  (The Yankees lost to the Mets.  Can wholesale changes be far\n  behind?)  Never count on rookie pitchers (i.e. Wickman & Millitello) to\n  win a division.\nWOULD BE A GOOD SIGN:  Boggs hits over .300\nWOULD BE A BAD SIGN:  Howe gets arrested again.\nObPrediction:  Mattingly won't top a 700 OPS.\n\n3.  Toronto Blue Jays\nSTRONG POINTS:  Management willing to make big deals.  Management has eerie\n  power to convince other teams its prospects are not suspects.  Olerud.\n  Guzman.  Alomar.\nWEAK POINTS:  The Jackson for Bell trade has shaken my faith in Gillick.\n  Losing Stewart may hurt rotation (that's *really* a bad sign).  No one in\n  the outfield can get on base.  Pitching is thin behind Guzman and Ward.\nWOULD BE A GOOD SIGN:  Jack Morris considered Cy Young contender in August\nWOULD BE A BAD SIGN:  Club makes no major deals in August.\nObPrediction:  Morris will post better ERA and WHIP totals than last year.  And\n  have a losing record.\n\n4.  Milwaukee Brewers\nSTRONG POINTS:  Pitching staff was exceptional -- last year.\nWEAK POINTS:  Molitor gone.  Surhoff at third?  Why?  Eldred can't keep it up.\nWOULD BE A GOOD SIGN:  Listach and Eldred play like last year.\nWOULD BE BAD SIGN:  Bones plays like last year.\nObPrediction:  Surhoff won't finish the year at third.\n\n5.  Cleveland Indians\nSTRONG POINTS:  Baerga, Belle, Nagy\nWEAK POINTS:  Pitching staff thin -- losing Olin really hurts.  Starts Felix\n  Fermin.\nWOULD BE A GOOD SIGN:  Bielecki's ERA is consistent with his Atlanta starts.\nWOULD BE A BAD SIGN:  Ted Power -- bullpen ace.\nObPrediction:  Alomar will be back on the DL by the all-star break.\n\n6.  Boston Red Sox\nSTRONG POINTS:  Clemens, Viola, Clemens, Detroit, Clemens\nWEAK POINTS:  Most incompetent GM in baseball.  Key free agent signing -- Andre\n  Dawson.  Burks is gone -- Hatcher in center.\nWOULD BE A GOOD SIGN:  Rainouts in between Clemens starts.\nWOULD BE A BAD SIGN:  Clemens on the DL\nObPrediction:  Russell will make Sox fans forget Reardon.  Interpret that how\n  you will :->\n\n7.  Detroit Tigers\nSTRONG POINTS:  Tettleton, Phillips, Whitaker\nWEAK POINTS:  If Fielder keeps declining, he'll be a shortstop this year.\n  Worst rotation in baseball entirely replaced -- but not necessarily better.\n  This year could be *very* ugly.\nWOULD BE A GOOD SIGN:  Cecil Fielder deserving the MVP.\nWOULD BE A BAD SIGN:  Cecil Fielder not whining about deserving an MVP.\nObPrediction:  Cecil *won't* lead the league in RBIs.\n\nOne more division to go....\n-- \nDale J. Stephenson |*| (steph@cs.uiuc.edu) |*| Baseball fanatic\n\n  \"It is considered good to look wise, especially when not \n   overburdened with information\" -- J. Golden Kimball\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6911, "properties": {"category": "talk.politics.mideast", "text": "From: adams@bellini.berkeley.edu (Adam L. Schwartz)\nSubject: Danny Rubenstein Talk\nNntp-Posting-Host: bellini.berkeley.edu\nOrganization: U.C. Berkeley -- ERL\nLines: 9\n\nDanny Rubenstein, an Israeli journalist, will be speaking tonight \n(Wednesday, 7:30 pm) on the messy subject of politics in Israel.\nHe is speaking at Hillel on the U.C. Berkeley campus.  The talk is\nsponsored by the Berkeley Israel Action Committee (IAC).\n \n-Adam Schwartz\nadams@robotics.berkeley.edu\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6912, "properties": {"category": "rec.sport.baseball", "text": "From: aardvark@spica.la.locus.com (Warren Usui)\nSubject: Re: quick way to tell if your local beat writer is dumb.\nOrganization: Locus Computing Corporation, Los Angeles, California\nLines: 14\n\nIn article <Apr.5.16.22.48.1993.11331@pilot.njin.net> gajarsky@pilot.njin.net (Bob Gajarsky - Hobokenite) writes:\n>anyone who writes \"dean palmer has 2 homers  - at this pace, he'll\n> have 324 home runs!\" should be shot.\n\nThe Dodgers after one inning of play have committed one error.  At this rate\nthey'll have 1,455 errors this season!\n\nWell maybe I'm right this time...\n\n-- \nWarren Usui\n\nI'm one with the Universe -- on a scale from 1 to 10.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6913, "properties": {"category": "misc.forsale", "text": "Subject: HELP!! How to get refund from Visual Images?\nFrom: koutd@hirama.hiram.edu (DOUGLAS KOU)\nOrganization: Hiram College\nNntp-Posting-Host: hirama.hiram.edu\nLines: 28\n\nI participated a promotion by a company called Visual Images. \nThey sent me a award certificate three months ago and asked \nme to buy their promotion package in order to receive the major\naward. They mislabled my address and I did not receive my package\nuntil one month ago. I was mad and angry about how it took them\nso long to get my package. So I wrote them a letter and requested\nfor a refund. They never return my letter. I was lucky enough to\nfind out their telephone number through operator and received the\npackage. I immediately returned the package and wrote them another\nletter to ask for refund. The package was returned because they\naddress they put on the package was incorrect. I attempted to \ncall them and learnd that they have changed their telephone number.\nIt took me at least 10 phone calls to find out their new number,\nbut they refused to take any responsibility. I spoke to their\nmanager and she said she would call me back, but she has not call\nyet. But I was able to get their address from their front desk.\nShould I just go ahead and send the package? Or should I waite until\nthey call me back?\n\nI know there are several people on the net has experience with the\nsame company. I would like to know how they got their money back.\nIf you have similar experience, please advise me.\n\nThanks in advance,\n\nDouglas Kou\nHiram College\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6914, "properties": {"category": "rec.sport.baseball", "text": "From: wynblatt@sbgrad5.cs.sunysb.edu (Michael Wynblatt)\nSubject: Dumb Fans (Was Re: Indians Woofing)\nKeywords: woofing\nNntp-Posting-Host: sbgrad5\nOrganization: State University of New York at Stony Brook\nLines: 22\n\nIn article <795.2bcc3ee1@ohstpy.mps.ohio-state.edu> letizia@ohstpy.mps.ohio-state.edu writes:\n>Do you mean just like Reds' fans?  Have you listened to WLW anytime they open\n>up the lines for fans to call?  Talk about clueless idiots!  The broadcasters\n>are just as bad too.\n>\n>JL\n\nThe New York talk shows are just awful in this regard.  People are constantly\ncalling WFAN and WABC with (stuff like) \"I was thinking, why don't the Yankees\ntrade Kaminicki and Silvestri to Seattle for Ken Griffey Jr and Randy Johnson,\nthat would really help the team\"  or \"Do you think the Yankees can get Roger \nClemens?\".  The show hosts are pretty good about handling these guys, but it's\nstill annoying.\n\nThe best one was at the end of one show, a caller started out with \"I was \nthinking, why don't the Yankees trade for...\" and then the host hung up on\nhim.  I cheered!\n\nMichael\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6915, "properties": {"category": "alt.atheism", "text": "Organization: Penn State University\nFrom: Andrew Newell <TAN102@psuvm.psu.edu>\nSubject: Re: free moral agency\nDistribution: na\n <C5pxqs.LM5@darkside.osrhe.uoknor.edu>\nLines: 119\n\nIn article <C5pxqs.LM5@darkside.osrhe.uoknor.edu>, bil@okcforum.osrhe.edu (Bill\nConner) says:\n>\n>dean.kaflowitz (decay@cbnewsj.cb.att.com) wrote:\n>\n>: Now, what I am interested in is the original notion you were discussing\n>: on moral free agency.  That is, how can a god punish a person for\n>: not believing in him when that person is only following his or her\n>: nature and it is not possible for that person to deny what his or\n>: her reason tells him or her, which is that there is no god?\n>\n>I think you're letting atheist mythology confuse you on the issue of\n\n(WEBSTER:  myth:  \"a traditional or legendary story...\n           ...a belief...whose truth is accepted uncritically.\")\n\nHow does that qualify?\nIndeed, it's almost oxymoronic...a rather amusing instance.\nI've found that most atheists hold almost no atheist-views as\n\"accepted uncritically,\" especially the few that are legend.\nMany are trying to explain basic truths, as myths do, but\nthey don't meet the other criterions.\nAlso...\n\n>Divine justice. According to the most fundamental doctrines of\n>Christianity, When the first man sinned, he was at that time the\n\nYou accuse him of referencing mythology, then you procede to\nlaunch your own xtian mythology.  (This time meeting all the\nrequirements of myth.)\n\n>salvation. The idea of punishment is based on the proposition that\n>everyone knows (instinctively?) that God exists, is their creator and\n\nAh, but not everyone \"knows\" that god exists.  So you have\na fallacy.\n\n>There's nothing terribly difficult in all this and is well known to\n>any reasonably Biblically literate Christian. The only controversy is\n\nAnd that makes it true?  Holding with the Bible rules out controversy?\nRead the FAQ.  If you've read it, you missed something, so re-read.\n(Not a bad suggestion for anyone...I re-read it just before this.)\n\n>with those who pretend not to know what is being said and what it\n>means. When atheists claim that they do -not- know if God exists and\n>don't know what He wants, they contradict the Bible which clearly says\n>that -everyone- knows. The authority of the Bible is its claim to be\n\n...should I repeat what I wrote above for the sake of getting\nit across?  You may trust the Bible, but your trusting it doesn't\nmake it any more credible to me.\n\nIf the Bible says that everyone knows, that's clearly reason\nto doubt the Bible, because not everyone \"knows\" your alleged\ngod's alleged existance.\n\n>refuted while the species-wide condemnation is justified. Those that\n>claim that there is no evidence for the existence of God or that His will is\n>unknown, must deliberately ignore the Bible; the ignorance itself is\n>no excuse.\n\n1) No, they don't have to ignore the Bible.  The Bible is far\nfrom universally accepted.  The Bible is NOT a proof of god;\nit is only a proof that some people have thought that there\nwas a god.  (Or does it prove even that?  They might have been\nwriting it as series of fiction short-stories.  As in the\ncase of Dionetics.)  Assuming the writers believed it, the\nonly thing it could possibly prove is that they believed it.\nAnd that's ignoring the problem of whether or not all the\ninterpretations and Biblical-philosophers were correct.\n\n2) There are people who have truly never heard of the Bible.\n\n3) Again, read the FAQ.\n\n>freedom. You are free to ignore God in the same way you are free to\n>ignore gravity and the consequences are inevitable and well known\n>in both cases. That an atheist can't accept the evidence means only\n\nBzzt...wrong answer!\nGravity is directly THERE.  It doesn't stop exerting a direct and\nrationally undeniable influence if you ignore it.  God, on the\nother hand, doesn't generally show up in the supermarket, except\non the tabloids.  God doesn't exert a rationally undeniable influence.\nGravity is obvious; gods aren't.\n\n>Secondly, human reason is very comforatble with the concept of God, so\n>much so that it is, in itself, intrinsic to our nature. Human reason\n>always comes back to the question of God, in every generation and in\n\nNo, human reason hasn't always come back to the existance of\n\"God\"; it has usually come back to the existance of \"god\".\nIn other words, it doesn't generally come back to the xtian\ngod, it comes back to whether there is any god.  And, in much\nof oriental philosophic history, it generally doesn't pop up as\nthe idea of a god so much as the question of what natural forces\nare and which ones are out there.  From a world-wide view,\nhuman nature just makes us wonder how the universe came to\nbe and/or what force(s) are currently in control.  A natural\ntendancy to believe in \"God\" only exists in religious wishful\nthinking.\n\n>I said all this to make the point that Christianity is eminently\n>reasonable, that Divine justice is just and human nature is much\n>different than what atheists think it is. Whether you agree or not\n\nXtianity is no more reasonable than most other religions, and\nit's reasonableness certainly doesn't merit eminence.\nDivine justice...well, it only seems just to those who already\nbelieve in the divinity.\nFirst, not all atheists believe the same things about human\nnature. Second, whether most atheists are correct or not,\nYOU certainly are not correct on human nature.  You are, at\nthe least, basing your views on a completely eurocentric\napproach.  Try looking at the outside world as well when\nyou attempt to sum up all of humanity.\n\nAndrew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6916, "properties": {"category": "sci.crypt", "text": "From: smythw@vccsouth23.its.rpi.edu (William Smythe)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: vccsouth23.its.rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY\nDistribution: na\nLines: 29\n\nIn article <1qsip1INNnj2@dns1.NMSU.Edu> amolitor@nmsu.edu (Andrew Molitor) writes:\n>al@escom.COM (Al Donaldson) writes:\n>>amolitor@nmsu.edu (Andrew Molitor) writes:\n\n>\tThis appears to be generic calling upon the name of the anti-christ.\n>Just for the hell of it, let's destroy this remark. Let us imagine that\n>the executive branch actually could extract keys from the escrow houses\n>without anyone knowing, or telling. Now what? Dick has 80 bits of data.\n>What the hell's he gonna do with it?\n>\n>\t1) Trot around to the telco and say 'we'd like an unauthorised\n>decrypting tap'. Uh huh.\n>\t2) Break in to watergate and install his own tap (so his people still\n>do have to break in, neat, huh?) record some noise, then get the Executive\n>Branch Phone Decryption Box (huh? they've got one? Goodness, wait 'til the\n>washington post gets hold of this) and decrypt the noise.\n>\t3) More likely, stare at the key, and say 'Oh, hell it's not\n>worth all this bloody hassle'\n\n\nNo, he gives the keys to the FBI (who may then give them to the local police\non request) who then simply put some alagator clips on your phone junction\nbox and conduct an illegal tap. They then decrypt when they recover the tape.\nIts just doing what the government does best: breaking the law.\n\nBill Smythe\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6917, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lmebold@sgcl1.unisg.ch\nSubject: Re: ISA to EISA\nDistribution: comp\nOrganization: University of St.Gallen, Switzerland\nLines: 30\n\nIn article <9APR199312315727@envmsa.eas.asu.edu>, firman@envmsa.eas.asu.edu (B B S) writes:\n> In article <CASEY.93Apr9115458@grace.wharton.upenn.edu>, casey@grace.wharton.upenn.edu (Shawn Casey) writes...\n>>Hello,\n>> \n>>I have a question for anyone that may be familiar with ISA and EISA sytem\n>>configurations.\n>> \n>>1)  After I switch the ISA boards into the EISA board (all of the cards are\n>>ISA) the system seems to work with no problem what so ever.  But some of the \n>>interupt problems that we had with the ISA board continue with the EISA board.\n>>Is it my understanding that the EISA board should be able to handle IRQ \n>>conficts when running windows.\n>> \n>>\tProblem:  When running our network via telnet (tcp/ip) with windows\n>>\trunning the system kicks us out of windows (IRQ confict within windows\n>>\tI assume).\n>> \n>>Also, are there any memory address problems that will happen when the \n>>boards are switched (base memory that is).\n> \n> As far as I know, if you are using EISA mother board, you have to use also\n> EISA cards or else your computer system will be slower than when you're\n> using ISA board with ISA cards.\n> \t\t\t\t\t\t\t-Bill\n\n\nThat's nonsense!!  You can use ISA cards in an EISA-system without problem\nand at the same speed as in an ISA system!!\n\n-Luke\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6918, "properties": {"category": "comp.windows.x", "text": "From: janzen@lichen.mpr.ca (Martin Janzen)\nSubject: Re: how to put RPC in HP X/motif environment?\nNntp-Posting-Host: lichen\nReply-To: janzen@mprgate.mpr.ca\nOrganization: MPR Teltech Ltd.\nLines: 30\n\nIn article <C5r03J.Gu3@news2.cis.umn.edu>, ianhogg@milli.cs.umn.edu (Ian J. Hogg) writes:\n>In article <1993Apr19.200740.17615@sol.ctr.columbia.edu> nchan@nova.ctr.columbia.edu (Nui Chan) writes:\n>>has anybody implements an RPC server in the HP Xwindows? In SUN Xview, there\n>>is a notify_enable_rpc_svc() call that automatically executes the rpc processes\n>>when it detects an incoming request. I wonder if there is a similar function in\n>>HP X/motif that perform the same function.\n>\n>I've been using the xrpc package for about a year now.  I believe I got it from\n>export.  \n\nGlad to hear that it's working for you!\n\nI couldn't find it on \"export\".  However, Simon Leinen\n<simon@liasun6.epfl.ch> has added an Imakefile and an Athena\nversion, and made it available for FTP in the file\nliasun3.epfl.ch:/pub/X/contrib/xrpc.tar.z.  (Note the \".z\"\nsuffix; you'll need GNU gzip -- also on liasun3 in /pub/gnu --\nto uncompress it.)  \n\nIf this doesn't work, send me a note and I'd be happy to mail you\na copy; but you probably won't get it until the start of May --\nI'm on holidays as of tomorrow! :-)\n\n-- \nMartin Janzen  janzen@mprgate.mpr.ca (134.87.131.13)\nMPR Teltech Ltd.  8999 Nelson Way  Burnaby, BC, CANADA  V5A 4B5\n\n\nP.S. Are there any Dublin X folks that want to go for a pint of\nGuinness at, say, Mulligan's...?\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6919, "properties": {"category": "talk.religion.misc", "text": "From: ba@mrcnext.cso.uiuc.edu (B.A. Davis-Howe)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: University of Illinois at Urbana\nLines: 13\n\n\nON the subject of how many competing RC orders there are, let me point out the\nGolden Dawn is only the *outer* order of that tradition.  The inner order is\nthe Roseae Rubeae et Aurae Crucis.  That's Ruby Rose and Gold Cross, in rough\ntranslation.  The G.'.D.'. is a Rosicrucian order, as are all derivative\ngroups.  Of course, real Rosicrucians never admit to being Rosicrucian.\n\nEnjoy the journey!\n                      --Br'anArthur\n                                      Queer, Peculiar, and Wyrd! :-)\n\n******************************************************************************\nClosed minds don't want to know.        --JJObermark\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6920, "properties": {"category": "alt.atheism", "text": "From: kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran)\nSubject: Re: <Political Atheists?\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 66\n\nIn article <1ql06qINN2kf@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n>kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n>>Schneider\n>>>Natural morality may specifically be thought of as a code of ethics that\n>>>a certain species has developed in order to survive.\n>>Wait.  Are we talking about ethics or morals here?\n>\n>Is the distinction important?\n\nYes.\n\n>>>We see this countless\n>>>times in the animal kingdom, and such a \"natural\" system is the basis for\n>>>our own system as well.\n>>Huh?\n>\n>Well, our moral system seems to mimic the natural one, in a number of ways.\n\nPlease describe these \"number of ways\" in detail.  Then explain the any\ncontradictions that may arise.\n\n>>>In order for humans to thrive, we seem to need\n>>>to live in groups,\n>>Here's your problem.  \"we *SEEM* to need\".  What's wrong with the highlighted\n>>word?\n>\n>I don't know.  What is wrong?  Is it possible for humans to survive for\n>a long time in the wild?  Yes, it's possible, but it is difficult.  Humans\n>are a social animal, and that is a cause of our success.\n\nDefine \"difficult\".\n\n>>>and in order for a group to function effectively, it\n>>>needs some sort of ethical code.\n>>This statement is not correct.\n>\n>Isn't it?  Why don't you think so?\n\nExplain the laws in America stating that you have to drive on the right-\nhand side of the road.\n\n>>>And, by pointing out that a species' conduct serves to propogate itself,\n>>>I am not trying to give you your tautology, but I am trying to show that\n>>>such are examples of moral systems with a goal.  Propogation of the species\n>>>is a goal of a natural system of morality.\n>>So anybody who lives in a monagamous relationship is not moral?  After all,\n>>in order to ensure propogation of the species, every man should impregnate\n>>as many women as possible.\n>\n>No.  As noted earlier, lack of mating (such as abstinence or homosexuality)\n>isn't really destructive to the system.  It is a worst neutral.\n\nSo if every member of the species was homosexual, this wouldn't be destructive\nto the survival of the species?\n\n>>For that matter, in herds of horses, only the dominate stallion mates.  When\n>>he dies/is killed/whatever, the new dominate stallion is the only one who\n>>mates.  These seems to be a case of your \"natural system of morality\" trying\n>>to shoot itself in the figurative foot.\n>\n>Again, the mating practices are something to be reexamined...\n\nThe whole \"theory\" needs to be reexamined...\n--\n=kcochran@nyx.cs.du.edu | B(0-4) c- d- e++ f- g++ k(+) m r(-) s++(+) t | TSAKC=\n=My thoughts, my posts, my ideas, my responsibility, my beer, my pizza.  OK???=\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6921, "properties": {"category": "soc.religion.christian", "text": "From: Bjorn.B.Larsen@delab.sintef.no (Bjorn B. Larsen)\nSubject: Re: The Bible available in every language (was Re: SATANIC TOUNGES)\nReply-To: bjorn.b.larsen@delab.sintef.no\nOrganization: delab\nLines: 31\n\nIn article <May.5.02.53.10.1993.28880@athos.rutgers.edu>\nkoberg@spot.Colorado.EDU (Allen Koberg) writes:\n\n> [ ... about tongues ... ]\n\n> The concept of tongues as used at Pentecost seems an outdated concept\n> now.  With the Bible available in nearly every language, and missionaries\n> who are out there in ALL languages, why does the church need tongues?\n\nI guess there are at least some people who are not able to support\nthis claim. There are still a lot of languages without the Bible, or a\npart of the Bible. There are still many languages which we are not\nable to write, simply because the written version of the language has\nnot yet been defined!\n\nI guess this is one of the main goals for Wycliffe Bible Translators:\nTo define rules and a grammar for writing the 'rest' of the languages\nof this world. I do not see that any of them will have any reason to\nbecome unemployed during the foreseeable future. (Provided they get\ntheir neccessary support!) And still they are one of the 3 largest\nmissionary organizations of the world.\n\nBjorn\n--\n______________________________________________________________________\n               s-mail:                 e-mail:\n|   |   |      Bjorn B. Larsen         bjorn.b.larsen@delab.sintef.no\n|__ |__ |      SINTEF DELAB\n|  \\|  \\|      N-7034 TRONDHEIM        tel: +47-7-592682 / 592600\n|__/|__/|_     NORWAY                  fax: +47-7-591039 / 594302\n______________________________________________________________________\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6922, "properties": {"category": "talk.politics.misc", "text": "Organization: Students for Increased Beverage Access (SIBA)\nFrom: Mark 'Mark' Sachs <MBS110@psuvm.psu.edu>\nSubject: Re: Top Ten Excuses for Slick Willie's Record-Setting Disapproval Rati\n <93105.032616MBS110@psuvm.psu.edu> <1qkl3i$9bj@usenet.INS.CWRU.Edu>\nLines: 49\n\nIn article <1qkl3i$9bj@usenet.INS.CWRU.Edu>, an030@cleveland.Freenet.Edu\n(Broward Horne) says:\n>In a previous article, MBS110@psuvm.psu.edu (Mark 'Mark' Sachs) says:\n>>In article <1qhr73$a8d@usenet.INS.CWRU.Edu>, an030@cleveland.Freenet.Edu\n>>(Broward Horne) says:\n>>>      It sure does appear that way, doesn't it?\n>>\n>>The attitude that people are stupid if they don't agree with you is not\n>>going to bring you great success in life. Free advice, there.\n\n>      whew.  Mark, what on EARTH makes you think I give a FUCK\n>      about being a \"success\", particularly NOW when I'll just\n>      the HELL taxed out of me?  Oh, this is excellent.\n\nThat was hardly the point, was it? I was commenting on this all-too-common\nRepublican attitude that if people disagree with us, they must be idiots, they\nmust be sheep being led around by the Evil Liberal Media Conspiracy. This is\na dangerous attitude indeed. Because it's not a very big step from \"people\nare sheep, they can't think for themselves\" to \"people are sheep and need\nfirm leadership from we, who know better\"... this sort of attitude makes\nme worry about what'll happen to the United States if the extremist wing\nof the Republican party ever gets back into power again.\n\n>      Holy christ! :)\n\nHey! This is a government-funded newsgroup! Let's have some separation\nof church and state, damn it!\n\n>        Besides, let's <ahem> examine the record, shall we?\n\n>    Broward:   \" Clinton's going to taxe the HOLY FUCK out of you! \"\n>    Mark:      \" No, he's not.  Only $17 / month \"\n\n>   ( I STILL get a laugh out of this one! :) )\n\nMore like:\n\nBroward: \"Clinton's going to raise your income taxes by over $1000!\"\nMark:    \"No, he's not, only about $204.\"\nBroward: (silence)\n\n>    Want some more \"free predictions\" ?\n\nOK, I predict that in 1996 the Republicans will STILL be bitter. Yeah, yeah,\nI know, it's not very impressive to predict things that are inevitable...\n\n   \"...so I propose that we destroy the moon, neatly solving that problem.\"\n[Your blood pressure just went up.]        Mark Sachs IS: mbs110@psuvm.psu.edu\n   DISCLAIMER: If PSU knew I had opinions, they'd try to charge me for them.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.325+0000", "event": "documents", "entityId": 6923, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 17\nNNTP-Posting-Host: lloyd.caltech.edu\n\nmmwang@adobe.com (Michael Wang) writes:\n\n>>Well, I have typed in the OED definitions.  As you will note upon reading\n>>them, a punishment, being an inanimate object, is incapable of \"showing\n>>mercy.\"  So, you can not say that a merciless punishment is a cruel one.\n>Sorry, you must have missed the stuff in parens when you read the\n>definition (where transf. = transferred sense and fig. =\n>figurative,-ly). \"Things\" can be cruel. Samples of text from the first\n>definition include, \"Because I would not see thy cruell nailes Plucke\n>out his poore old eyes,\" and \"The puniness of man in the centre of a\n>cruel and frowning universe.\"\n\nSure nails can be cruel.  I'd imagine nails in your eyes would be\n*very* painful.  But, this does not imply that a painless death is\ncruel, which is what you are supposed to be trying to show.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6924, "properties": {"category": "talk.politics.mideast", "text": "From: francesca_M._Benson@fourd.com\nSubject: Argic\nOrganization: 4th Dimension BBS\nLines: 7\nNNTP-Posting-Host: cs.utexas.edu\n\nI have one word for you LOSER!!!!\n\n********************************************************************\nSystem: fourd.com                                Phone: 617-494-0565\nCute quote:  Being a computer means never having to say you're sorry\n********************************************************************\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6925, "properties": {"category": "sci.crypt", "text": "From: ethridge@crchh403 (Allen Ethridge)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: crchh403\nOrganization: BNR, Inc.\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 19\n\nAmanda Walker (amanda@intercon.com) wrote:\n: uni@acs.bu.edu (Shaen Bernhardt) writes:\n: [deletions]\n: \n: > How can you reconcile the administrations self proclaimed purpose of \n: > providing law enforcement with access to encrypted data without making \n: > the clipper system the only crypto available in the U.S... ?\n: \n: The Second and Fourth Amendments do come to mind.  \n: \n\nI think i heard someplace (misc.legal?, comp.org.eff.talk?) that the courts\nhave pretty much eliminated the fourth amendment already.\n\n--\nallen@well.sf.ca.us             Words got me the wound\nethridge@bnr.ca                  and will get me well,\nmy opinions are my own            if you believe it.\n                                    -- Jim Morrison\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6926, "properties": {"category": "soc.religion.christian", "text": "From: atterlep@vela.acs.oakland.edu (Cardinal Ximenez)\nSubject: Re: Being right about messiahs\nOrganization: National Association for the Disorganized\nLines: 18\n\nDesiree_Bradley@mindlink.bc.ca (Desiree Bradley) writes:\n\n>And, from my meagre knowledge of the Bible, it seems that Christians have\n>been hard on the Jews of Christ's day for being cautious about accepting\n>somebody that their religious authorities didn't accept as the Messiah.\n\n  This is a good point.  Christ was hardly the only person who claimed to be\nthe Messiah--in fact, a number of \"Messiahs\" were active in the area from the\ntime of the Roman conquest to after the fall of Masada.\n  Many of the statements made by the apostles--especially their repeated\nattempts to give Jesus a sword (give him military power) point to the fact that\nthey didn't realize the true nature of his reign until after the fact.  Many of\nthe statements in the Bible can be seen as being oriented toward explaining \nthis new definition of \"Messiah\" to the Jews who were being preached to.\n\nAlan Terlep\t\t\t\t    \"...and the scorpion says, 'it's \nOakland University, Rochester, MI\t\tin my nature.'\"\natterlep@vela.acs.oakland.edu\t\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6927, "properties": {"category": "comp.graphics", "text": "From: danj@welchgate.welch.jhu.edu (Dan Jacobson)\nSubject: Re: Is there an FTP achive for USGS terrain data\nOrganization: Johns Hopkins Univ. Welch Medical Library\nLines: 123\n\n\ndiablo.UUCP!cboesel (Charles Boesel) writes:\n\n>Is there an FTP archive for United States Geological Services (USGS)\n>terrain data? If so, where?\n\nPoint your gopher client at merlot.welch.jhu.edu\n\nand select the following directories:\n\n -->  13. Search and Retrieve Software/\n\n   -->  8.  Search and Retrieve Graphics Software and Data/\n\n\nAnd you'll see -\n\n\n\n\n -->  1.  Graphics Online Bibliography (ACM SIGGRAPH)/\n      2.  Graphics Software and Data Archives (ftp sites)/\n      3.  Search All Graphics Information <?>\n      4.  Search Comp.graphics FAQ <?>\n      5.  Search Graphics Resources (Software and Data) <?>\n      6.  Search Pictures Utilities FAQ <?>\n\n\n          1.  Graphics Online Bibliography (ACM SIGGRAPH)/\n\n              Searches and archives of bibliographic database that covers\n              graphics literature for over a hundred years (served\n              by a gopher hole in Austria).\n\n\n          2.  Graphics Software and Data Archives (ftp sites)/ \n\n              Has links to over 70 sites around the world which\n              have software and/or data for computer graphics.\n              This can be used on its own or as a companion to the\n              searches found in this directory which will point you\n              toward software and data at various places.  \n              \n\n          3.  Search All Graphics Information <?>\n          4.  Search Comp.graphics FAQ <?>\n          5.  Search Graphics Resources (Software and Data) <?>\n          6.  Search Pictures Utilities FAQ <?>\n           \n\n              These searches contain a wealth of information about\n              computer graphics, data, software, techniques etc...\n\n              3.  Search All Graphics Information <?> \n\n                  Will simply search all of the information contained\n                  in searches 4, 5, and 6.\n\n              4.  Search Comp.graphics FAQ <?>\n\n                  Lets you search the FAQ (Frequently Asked Questions)\n                  from the Comp.graphics newsgroup compiled by John\n                  Grieggs at the JPL.\n\n              5.  Search Graphics Resources (Software and Data) <?>\n\n                  Lets you search the Grpahics Resource Listing of\n                  software and data provided by Nick Fotis at the\n                  National Technical Univ. of Athens.\n\n              6.  Search Pictures Utilities FAQ <?>\n\n                  Lets you search the FAQ (Frequently Asked Questions)\n                  from the Alt.binaries.pixutils newsgroup compiled by\n                  Jim Howard at Cadence.\n\n\nSelect:\n\n -->  3.  Search All Graphics Information <?>\n\nAnd search for:\n\nusgs\n\n\nAnd you'll find out some information about USGS data availability.\n\nNow select:\n\n   -->  2.  Graphics Software and Data Archives (ftp sites)/\n\nand you might find the following interesting:\n\n   -->  12. Cartographic data - USGS data (Xerox)/\n\n   -->  42. Mapgen/Plotgen and more (USGS)/\n\n   -->  68. USGS Weekly Seismicity Reports (including maps - GIF)/\n\n   -->  68. USGS Earth Science Data Directory/\n             (This actually is a database of available data - search\n              it for terrain - could prove quite useful.)\n\nOne other place to look is only available by anonymous ftp at\nthe moment - \n\nUS Geological Survey Maps  -  isdres.er.usgs.gov (130.11.48.2).\n\n\nIf you've never heard of gopher don't worry it's free and on the net,\nwrite me a note if you'd like information on how to get started.\n\n\nBest of luck,\n\nDan Jacobson\n\ndanj@welchgate.welch.jhu.edu\n\nJohns Hopkins University\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6928, "properties": {"category": "rec.autos", "text": "Organization: Penn State University\nFrom: <LRR105@psuvm.psu.edu>\nSubject: Re: Dents on car.\nLines: 5\n\nAll you have to do is turn it in to the police like you would an accident,\nget a report and send it in to your insurance company and they will contact\nthe other guys insurance company and they will have to pay just as they\nwould in an accident they caused.  Thus no need to go to court.  A friend of\nmine did this and he got the money so it does work.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6929, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Toxoplasmosis\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 33\n\nIn article <1240002@isoit109.BBN.HP.COM> sude@isoit109.BBN.HP.COM (#Susanne Denninger) writes:\n>\n>1. How dangerous is it ? From whom is it especially dangerous ?\n>\nDangerous only to immune suppressed persons and fetuses.  To them,\nit is extremely dangerous.  Most of the rest of us have already had\nit and it isn't dangerous at all.\n\n>2. How is it transmitted (I read about raw meat and cats, but I'd like to\n>   have more details) ?\n>\nCat feces are the worst.  Pregnant women should never touch the litter box.\n\n>3. What can be done to prevent infection ?\n>\nCook your meat.  Watch it with pets.\n\n>4. What are the symptoms and long-term effects ?\n>\nYou'll have to read up on it.  \n\n>5. What treatments are availble ?\n>\n\nThere is an effective antibiotic that can keep it in check.\nOf course, it can't reverse damage already done, such as in\na fetus.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6930, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: WARNING.....(please read)...\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 34\n\nIn article <1993Apr19.145238.9561@magnus.acs.ohio-state.edu> bqueiser@magnus.acs.ohio-state.edu (Brian J Queiser) writes:\n>anything if he hadn't emptied his gun into the asshole.  Texas--it's\n>whole other country.\n\nThat reminds me of one of Texas's ads...you hear a guy speaking in\nFrench (like it's a letter home), then the French moves to the \nbackground, and a French-accented voice come to the foreground, talking\nabout how he went walking on the beach, and it felt so much like\nhome that he decided to take his shoes off...and the rest of his\nclothes. It ended with \"please send bail.\" :-)\n\n>On an rec.autos note, does anyone carry a gun on them or keep one in\n>their car (which is bad idea, isn't it?) if you work in a bad part of\n>town (or regularly go through one)?  Is this a loaded question?  :^)\n\nI normally have an unloaded Colt Delta in my glove box with a loaded\nmagazine handy (which is perfectly legal in Oklahoma). For those\ntimes that I'm travelling inter-state, I keep an unloaded \nS&W .44 Magnum revolver in the glove box, with a speed-loader\nin my pocket (which is legal everywhere, under Federal law, Illinois\nState Police be hanged).\n\nAs I've said before, this is stricly for defense; my insurance\nwill pay to replace my car, but I only have one life...\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6931, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mtrottie@emr1.emr.ca (Marc Trottier)\nSubject: Re: MS-Windows access for the blind?\nLines: 23\nNntp-Posting-Host: mtrottie.mps.emr.ca\nOrganization: MPS, Energy, Mines & Resources, Canada\n\nIn article <1993Apr22.172514.13025@cci632.cci.com> jfb@cci632.cci.com (John Bruno) writes:\n>From: jfb@cci632.cci.com (John Bruno)\n>Subject: MS-Windows access for the blind?\n>Date: Thu, 22 Apr 1993 17:25:14 GMT\n>We are developing an MS-Windows based product that uses a full screen window\n>to display ~24 rows of textual data.  Is there any product for Microsoft Windows\n>that will enable blind individuals to access the data efficiently (quickly) ??\n>\n>Please email responses and I will post a summary to this group.\n>\n>Thanks for any help\n>--- John Bruno\n>\n\nApparently, Microsoft came out with a new product: MS-Braille it is suppose \nto be \"WYTIWIG\".  :-)\n\nNo offense.\n \n \n Marc Trottier / mtrottie@emr1.emr.ca \n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6932, "properties": {"category": "comp.windows.x", "text": "From: cjhs@minster.york.ac.uk\nSubject: Xt intrinsics: slow popups\nOrganization: Department of Computer Science, University of York, England\nLines: 19\nKeywords: \n\nHelp: I am running some sample problems from O'Reilly volume 4,\nXt Intrisics Programming Manual, chapter 3. popup\ndialog boxes and so on.\n\nIn example 3.5, page 76 : \"Creating a pop-up dialog box\"\n\nThe application creates window with a button \"Quit\" and \"Press me\".\nThe button \"Press me\" pops up a dialog box. The strange feature of\nthis program is that it always pops up the dialog box much faster the\nfirst time. If I try to pop it up a 2nd time (3rd, 4th .... time), \nit is *much* slower.\n\nHas anyone any experience with these sample programs, or why I get\nthis behaviour - fast response time for the first time but slow response\ntime from 2nd time onwards ?\nAnyone can give me some ideas on how to program popups so that each time\nthey popup in reasonable fast response time ?\n\nThankyou - Shirley\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6933, "properties": {"category": "soc.religion.christian", "text": "From: tbrent@ecn.purdue.edu (Timothy J Brent)\nSubject: Am I going to Hell?\nOrganization: Purdue University Engineering Computer Network\nLines: 12\n\nI have stated before that I do not consider myself an atheist, but \ndefinitely do not believe in the christian god.  The recent discussion\nabout atheists and hell, combined with a post to another group (to the\neffect of 'you will all go to hell') has me interested in the consensus \nas to how a god might judge men.  As a catholic, I was told that a jew,\nbuddhist, etc. might go to heaven, but obviously some people do not\nbelieve this.  Even more see atheists and pagans (I assume I would be \nlumped into this category) to be hellbound.  I know you believe only\ngod can judge, and I do not ask you to, just for your opinions.\n\nThanks,\n-Tim\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6934, "properties": {"category": "rec.motorcycles", "text": "From: lotto@laura.harvard.edu (Jerry Lotto)\nSubject: Re: Countersteering, to know or not to know - what is the question?\nOrganization: Chemistry Dept., Harvard University\nLines: 32\nDistribution: net\nNNTP-Posting-Host: laura.harvard.edu\nIn-reply-to: mjs@sys.uea.ac.uk's message of Wed, 21 Apr 1993 12:30:30 GMT\n\n>>>>> On Wed, 21 Apr 1993 12:30:30 GMT, mjs@sys.uea.ac.uk (Mike Sixsmith) said:\nMike> lotto@husc4.harvard.edu (Jerry Lotto) writes:\nMe> The understanding and ability to swerve was essentially absent among\nMe> the accident-involved riders in the Hurt study.\n\nMike> I would agree entirely with these three paragraphs. But did the Hurt\nMike> study make any distinction between an *ability* to swerve and a *failure*\nMike> to swerve?\n\nYes, it was specifically the *ability* or understanding of the\ntechnique which was absent.  We have made a lot of progress between\nrider education and responsibility over the last ten-twenty years...\nbut I am still amazed anytime I teach an ERC how many people of many\nyear riding experience \"discover\" countersteering for cornering or\nswerving.\n\nMike> everything else. Hard braking and swerving tend to be mutually exclusive\nMike> manouvres - did Hurt draw any conclusions on which one is generally\nMike> preferable?\n\nThe specific recommandation cited in the Hurt study was that a formal\n\"street strategy\", like SIPDE for example, was the most important\ncomponent of any rider education curriculum.  The specific skills of\nemergency braking, cornering and swerving must be taught and practiced\nas well, but more significant was that 35% of rider did NOTHING\nconfronted with a potential accident, and another third collided or\nfell over as a result of rider error.  The choice of specific maneuver\nis much less significant to the outcome than early detection and\nthe proper execution of ANY effective countermeasure.\n--\nJerry Lotto <lotto@lhasa.harvard.edu>         MSFCI, HOGSSC, BCSO, AMA, DoD #18\nChemistry Dept., Harvard Univ.  \"It's my Harley, and I'll ride if I want to...\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6935, "properties": {"category": "sci.electronics", "text": "From: moffatt@bnr.ca (John Thomson)\nSubject: Re: What is Zero dB????\nNntp-Posting-Host: bcarhdd\nOrganization: Bell-Northern Research, Ottawa, Canada\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 47\n\nJoseph Chiu (josephc@cco.caltech.edu) wrote:\n: sehari@iastate.edu (Babak Sehari) writes:\n: \n: >Similarly, people usually use dB for dBm. Another common mistake is spelling\n: >``db'' instead of ``dB'' as you did in your article. See the ``B'' is for \n: >``Bell'' company, the mother of AT&T and should be capitalized.\n: \n: Thus, a deciBell (deci-, l., tenth of + Bell) is a fractional part of the \n: original Bell.  For example, SouthWestern Bell is a deciBell.\n\nOut of what hat did you pull this one?  dB is a ratio not an RBOC!        \n\n: And the measure of current, Amp, is actually named after both the AMP company\n: and the Amphenol company.  Both companies revolutionized electronics by\n: simulatenously realizing that the performance of connectors and sockets \n: were affected by the amount of current running through the wires.\n\nSorry.  The unit for current is the AMPERE which is the name of a french-man\nnamed AMPERE who studied electrical current.  The term AMP is just an abbreviation\nof it.  The company AMP came after the AMPERE unit was already in use.\n  \n: The Ohmite company was the first to characterize resistances by numbers, thus\n: our use of the Ohms...\n\nI don't know about this one, but it doesn't sound right.\n  \n: \n: Alexander Graham Bell, actually, is where Bell came from...  \nWell you got one thing right!\n: \n: \n: \n: Actually, Bel refers\n: \n: >                          With highest regards,\n: >                               Babak   Sehari.\n: \n: >-- \n: -- \n: Joseph Chiu        | josephc@cco.caltech.edu  \"OS/2: You gotta get this thing!\" \n: MSC 380 - Caltech  | \n: Pasadena, CA 91126 |   OS/2: The operating system of tomorrow, today.\n: +1 818 449 5457    |   \n\nGreg Moffatt\nBell-Northern Research Inc., Ottawa Canada\n\"My opinions; not BNR's\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6936, "properties": {"category": "sci.med", "text": "From: aldridge@netcom.com (Jacquelin Aldridge)\nSubject: Re: Good Grief! (was Re: Candida Albicans: what is it?)\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 121\n\ndyer@spdcc.com (Steve Dyer) writes:\n\n>In article <noringC5snsx.KMo@netcom.com> noring@netcom.com (Jon Noring) writes:\n>>>There is no convincing evidence that such a disease exists.\n>>There's a lot of evidence, it just hasn't been adequately gathered and\n>>published in a way that will convince the die-hard melancholic skeptics\n>>who quiver everytime the word 'anecdote' or 'empirical' is used.\n\n>Snort.  Ah, there go my sinuses again.\n\n>>For example, Dr. Ivker, who wrote the book \"Sinus Survival\", always gives,\n\n>Oh, wow.  A classic textbook.  Hey, they laughed at Einstein, too!\n\n>>before any other treatment, a systemic anti-fungal (such as Nizoral) to his\n>>new patients IF they've been on braod-spectrum anti-biotics 4 or more times\n>>in the last two years.  He's kept a record of the results, and for over \n>>2000 patients found that over 90% of his patients get significant relief\n>>of allergic/sinus symptoms.  Of course, this is only the beginning for his\n>>program.\n\n>Yeah, I'll bet.  Tomorrow, the world.\n\n>Listen, uncontrolled studies like this are worthless.\n\n>>In my case, as I reported a few weeks ago, I was developing the classic\n>>symptoms outlined in 'The Yeast Connection' (I agree it is a poorly \n>>written book):  e.g., extreme sensitivity to plastics, vapors, etc. which\n>>I never had before (started in November).  Within one week of full dosage\n>>of Sporanox, the sensitivity to chemicals has fully disappeared - I can\n>>now sit on my couch at home without dying after two minutes.  I'm also\n>>*greatly* improved in other areas as well.\n\n>I'm sure you are.  You sound like the typical hysteric/hypochondriac who\n>responds to \"miracle cures.\"\n\n>>Of course, I have allergy symptoms, etc.  I am especially allergic to\n>>molds, yeasts, etc.  It doesn't take a rocket scientist to figure out that\n>>if one has excessive colonization of yeast in the body, and you have a\n>>natural allergy to yeasts, that a threshold would be reached where you\n>>would have perceptible symptoms.\n\n>Yeah, \"it makes sense to me\", so of course it should be taken seriously.\n>Snort.\n\n>>Also, yeast do produce toxins of various\n>>sorts, and again, you don't have to be a rocket scientist to realize that\n>>such toxins can cause problems in some people.\n\n>Yeah, \"it sounds reasonable to me\".\n\n>>Of course, the $60,000\n>>question is whether a person who is immune compromised (as tests showed I was\n>>from over 5 years of antibiotics, nutritionally-deficiencies because of the\n>>stress of infections and allergies, etc.),\n\n>Oh, really?  _What_ tests?  Immune-compromised, my ass.\n>More like credulous malingerer.  This is a psychiatric syndrome.\n\n>>can develop excessive yeast\n>>colonization somewhere in the body.  It is a tough question to answer since\n>>testing for excessive yeast colonization is not easy.  One almost has to\n>>take an empirical approach to diagnosis.  Fortunately, Sporanox is relatively\n>>safe unlike past anti-fungals (still have to be careful, however) so there's\n>>no reason any longer to withhold Sporanox treatment for empirical reasons.\n\n>You know, it's a shame that a drug like itraconazole is being misused\n>in this way.  It's ridiculously expensive, and potentially toxic.\n>The trouble is that it isn't toxic enough, so it gets abused by quacks.\n\n>>BTW, some would say to try Nystatin.  Unfortunately, most yeast grows hyphae\n>>too deep into tissue for Nystatin to have any permanent affect.  You'll find\n>>a lot of people who are on Nystatin all the time.\n\n>The only good thing about nystatin is that it's (relatively) cheap\n>and when taken orally, non-toxic.  But oral nystatin is without any\n>systemic effect, so unless it were given IV, it would be without\n>any effect on your sinuses.  I wish these quacks would first use\n>IV nystatin or amphotericin B on people like you.  That would solve\n>the \"yeast\" problem once and for all.\n\n>>In summary, I appreciate all of the attempts by those who desire to keep\n>>medicine on the right road.  But methinks that some who hold too firmly\n>>to the party line are academics who haven't been in the trenches long enough\n>>actually treating patients.  If anybody, doctors included, said to me to my\n>>face that there is no evidence of the 'yeast connection', I cannot guarantee\n>>their safety.  For their incompetence, ripping off their lips is justified as\n>>far as I am concerned.\n\n>Perhaps a little Haldol would go a long way towards ameliorating\n>your symptoms.\n\n>Are you paying for this treatment out of your own pocket?  I'd hate\n>to think my insurance premiums are going towards this.\n\n>Steve Dyer\n\nDyer, you're rude. Medicine is not a totallly scientific endevour. It's\noften practiced in a disorganized manner. Most early treatment of\nnon-life threatening illness is done on a guess, hazarded after anecdotal\nevidence given by the patient. It's an educated guess, by a trained person,\nbut it's still no more than a guess.\nIt's cheaper and simpler to medicate first and only deal further with those\npeople who don't respond.\n\nThere are diseases that haven't been described yet and the root cause of many\ndiseases now described aren't known. (Read a book on gastroenterology\nsometime if you want to see a lot of them.) After scientific methods have\nrun out then it's the patient's freedom of choice to try any experimental\nmethod they choose. And it's well recognized by many doctors that medicine\ndoesn't have all the answers.\n\nThis person said that they had relief by taking the medicine. Maybe it's a\nmiracle cure, maybe it's valid. How do you know?  \n\nYou might argue with the reasoning, the conclusions. But your disparaging\nattack is unwarranted. Why don't you present an convincing argument for you\nr beliefs, instead of wasting our time in an ad hominem attack.\n\n-Jackie-\n \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6937, "properties": {"category": "alt.atheism", "text": "From:  ()\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nNntp-Posting-Host: nstlm66\nOrganization: Bell-Northern Research, Ottawa, Canada\nLines: 21\n\nIn article <115561@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) wrote:\n\n>Khomeini advocates the view that\n> there was a series of twelve Islamic leaders (the Twelve Imams) who\n> are free of error or sin. This makes him a heretic.\n> \n\nWow, you're quicker to point out heresy than the Church in the\nMiddle ages. Seriously though, even the Sheiks at Al-Azhar don't\nclaim that the Shi'ites are heretics. Most of the accusations\nand fabrications about Shi'ites come out of Saudi Arabia from the\nWahabis. For that matter you should read the original works of\nthe Sunni Imams (Imams of the four madhabs). The teacher of\nat least two of them was Imam Jafar Sadiq (the sixth Imam of the\nShi'ites). \n\nAlthough there is plenty of false propaganda floating around\nabout the Shi'ites (esp. since the revolution), there are also\nmany good works by Shi'ites which present the views and teachings\nof their school. Why make assumptions and allegations (like\npeople in this group have done about Islam in general) about Shi'ites.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6938, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re: Cultural Enquiries\nOrganization: University College of Wales, Aberystwyth\nLines: 39\nNntp-Posting-Host: 144.124.112.30\n\n\nIn article <Stafford-310393095530@stafford.winona.msus.edu> Stafford@Vax2.Winona.MSUS.Edu (John Stafford) writes:\n>In article <1993Mar17.115603.28712@aber.ac.uk>, azw@aber.ac.uk (Andy\n>Woodward) wrote:\n>> \n>> Two questions that fascinate me:-\n>     You are easily fascinated.\n>\n>> 1) Why are rednecks called rednecks?\n>     Why are you called a Welch?\n>     OK, it's because they are often south or southeastern farmers\n>     who's necks are permanently damaged from sunburn.  The sun;\n>     you know what that is, it never sets on the British Empire\n>     and never shines in Wales.\n>\nThis is a despicable LIE! It was sunny on 3rd July 1958 from 11.23am\nto 11 37am. I made a note of it. Diaries are never wrong.\n\n>> 2) Why do they ride Harleys?\n>     They don't.  They drive in pick-up trucks and shoot bikers.\n>\n>> Please enlighten me. When I visited last, the only answers I got \n>> were incoherent splutterings.\n>     You deserve more?\n>\n>====================================================\n>John Stafford   Minnesota State University @ Winona\n>                    All standard disclaimers apply.\n\n\nDo you, by any chance ride a Harley? (just a feeling...) How is your \nneck? Calamine lotion is good, I'm told.\n\nI am getting bored with winding up Americans. Its like bombing fish\nin a barrel. \n\nHaaaaaaaaaaave a Niiiiiiiiiiiiiiice Daaaaaaaaaaaaaaaaaaaaaay\n\nAndy\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6939, "properties": {"category": "sci.space", "text": "From: wingo%cspara.decnet@Fedex.Msfc.Nasa.Gov\nSubject: Re: NASA \"Wraps\"\nOrganization: University of Houston\nLines: 86\nDistribution: world\nNNTP-Posting-Host: judy.uh.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr10.145502.28866@iti.org>, aws@iti.org (Allen W. Sherzer) writes...\n>In article <9APR199318394890@judy.uh.edu> wingo%cspara.decnet@Fedex.Msfc.Nasa.Gov writes:\n> \n>>>BTW, universities do the same thing. They however, have a wrap of\n>>>10% to 15% (again, this is over and above any overhead charge).\n> \n>>Wrong Allen. The max overhead charge is ALL of the charge. There is no\n>>seperately budgeted overhead in any shape size form or fashion. \n> \n>A professor at the University of Virginia told me their wrap was about\n>15%. The subcontracts I have let out and worked on for other universities\n>are about the same. My employer (a non-profit research institute) does\n>the same. This is generally reffered to as the fee.\n> \n\nI don't care who told you this it is not generally true. I see EVERY single\nline item on a contract and I have to sign it. There is no such thing as\nwrap at this university. I also asked around here. Ther is no wrap at \nMarquette, University of Wisconsin Madison, Utah State, Weber State or\nEmbry Riddle U. I am not saying that it doees not happen but in every instance\nthat I have been able to track down it does not. Also the president of our\nUniversity who was Provost at University of West Virgina said that it did\nnot happen there either and that this figure must be included in the overhead\nto be a legitimate charge.\n\n>>How do \n>>I know? I write proposals and have won contracts and I know to the dime\n>>what the charges are. At UAH for example the overhead is 36.6%.\n> \n>Sounds like they are adding it to their overhead rate. Go ask your\n>costing people how much fee they add to a project.\n>\n\nI did they never heard of it but suggest that, like our president did, that\nany percentage number like this is included in the overhead.\n\n>>If you have some numbers Allen then show them else quit barking. \n> \n>I did Dennis; read the article. To repeat: an internal estimate done by\n>the Reston costing department says Freedom can be built for about $1.8B\n>a year and operated for $1B per year *IF* all the money where spent on\n>Freedom. Since we spend about half a billion $$ more per year it looks\n>like roughly 25% of the money is wasted. Now if you think I'm making\n>this up, you can confirm it in the anonymous editorial published a few\n>weeks ago in Space News.\n>\n\nNo Allen you did not. You merely repeated allegations made by an Employee\nof the Overhead capital of NASA. Nothing that Reston does could not be dont\nbetter or cheaper at the Other NASA centers  where the work is going on.\nKinda funny isn't it that someone who talks about a problem like this is\nat a place where everything is overhead.\n\n>This Dennis, is why NASA has so many problems: you can't accept that\n>anything is wrong unless you can blame it on Congress. Oh, sure, you'll\n>say NASA has problems but do you believe it? Remember the WP 02\n>overrun? You insisted it was all congresses fault when NASA management\n>knew about the overrun for almost a year yet refused to act. Do you\n>still blame Congress for the overrun?\n>\n\nWhy did the Space News artice point out that it was the congressionally\ndemanded change that caused the problems? Methinks that you are being \nselective with the facts again.\n\n>>By your own numbers Allen, at a cost of 500 million per flight the\n>>service cost of flying shuttle to SSF is 2 billion for four flights, so how\n>>did you get your one billion number?\n> \n>I have no idea what your trying to say here Dennis.\n> \n>  Allen\n>-- \n\nIf it takes four flights a year to resupply the station and you have a cost\nof 500 million a flight then you pay 2 billion a year. You stated that your\n\"friend\" at Reston said that with the current station they could resupply it\nfor a billion a year \"if the wrap were gone\". This merely points out a \nblatent contridiction in your numbers that understandably you fail to see.\n\nDennis, University of Alabama in Huntsville.\n\nSorry gang but I have a deadline for a satellite so someone else is going\nto have to do Allen's math for him for a while. I will have little chance to\ndo so.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6940, "properties": {"category": "sci.space", "text": "From: rls@uihepa.hep.uiuc.edu (Ray Swartz (Oh, that guy again))\nSubject: Re: japanese moon landing?\nReply-To: rls@uihepa.hep.uiuc.edu\nOrganization: Vis-Orb Tragnetics Recorporation\nLines: 35\n\nIn article <C5L2xt.IqD@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n>In article <C5Kys1.C6r@panix.com> dannyb@panix.com (Daniel Burstein) writes:\n>>A short story in the newspaper a few days ago made some sort of mention\n>>about how the Japanese, using what sounded like a gravity assist, had just\n>>managed to crash (or crash-land) a package on the moon.\n>\n>Their Hiten engineering-test mission spent a while in a highly eccentric\n>Earth orbit doing lunar flybys, and then was inserted into lunar orbit\n>using some very tricky gravity-assist-like maneuvering.  This meant that\n>it would crash on the Moon eventually, since there is no such thing as\n>a stable lunar orbit (as far as anyone knows), and I believe I recall\n>hearing recently that it was about to happen.\n\n\nThe gravity maneuvering that was used was to exploit 'fuzzy regions'.  These\nare described by the inventor as exploiting the second-order perturbations in a\nthree body system.  The probe was launched into this region for the\nearth-moon-sun system, where the perturbations affected it in such a way as to\nallow it to go into lunar orbit without large expenditures of fuel to slow\ndown. The idea is that 'natural objects sometimes get captured without\nexpending fuel, we'll just find the trajectory that makes it possible\". The\noriginator of the technique said that NASA wasn't interested, but that Japan\nwas because their probe was small and couldn't hold a lot of fuel for\ndeceleration.\n\n\tThis from an issue of 'Science News' or 'The Planetary Report' I\nbelieve, about 2 months ago(?).\n\n\nRaymond L. Swartz Jr. (rls@uihepa.hep.uiuc.edu)\n================================================================================\nI read the newspaper today and was amazed that, in 24 hours, five billion\npeople could accomplish so little.\n================================================================================\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6941, "properties": {"category": "misc.forsale", "text": "From: gregg@netcom.com (gregg weber)\nSubject: camcorder sony 8 mm forsale $350\nKeywords: camcorder\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 10\n\nIt is 5 years old. Model CCD-V5. 6x zoom. Everything works perfectly.\nUses 8 mm tapes (not Hi-8, that was not around 5 years ago!).\n$350 plus shipping or best offer.\n\n-- \n================================================================\nGregg Weber\t\tLet it be, open and bright like the sky,\ngregg@netcom.com\tWithout taking sides, with no clouds of concepts.\n(510) 283-6264\t\t- kun-mkhyen klong-chen-pa\n================================================================\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6942, "properties": {"category": "sci.space", "text": "From: pearson@tsd.arlut.utexas.edu (N. Shirlene Pearson)\nSubject: Re: Sunrise/ sunset times\nNntp-Posting-Host: wren\nOrganization: Applied Research Labs, University of Texas at Austin\nLines: 13\n\njpw@cbis.ece.drexel.edu (Joseph Wetstein) writes:\n\n\n>Hello. I am looking for a program (or algorithm) that can be used\n>to compute sunrise and sunset times.\n\nWould you mind posting the responses you get?\nI am also interested, and there may be others.\n\nThanks,\n\nN. Shirlene Pearson\npearson@titan.tsd.arlut.utexas.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.326+0000", "event": "documents", "entityId": 6943, "properties": {"category": "soc.religion.christian", "text": "From: mussack@austin.ibm.com (Christopher Mussack)\nSubject: Re: Sin\nOrganization: IBM Austin\nLines: 29\n\nIn article <Apr.8.00.59.20.1993.28493@athos.rutgers.edu>, jadaley@cwis.unomaha.edu (Jill Anne Daley) writes:\n> What exactly is a definition of sin and what are some examples. How does a\n> person know when they are committing sin?\n> \n\nAnything that does not bring me closer to God is a sin. \n(If you think this is too strict, just consider how ambiguous it is.)\n\nThis implies that staying the same is a sin. A Christian should\nnever be satisfied. It does not imply that\nhaving fun is a sin. It does not imply that sleeping is a sin.\nIt does imply that I sin every day.\n\nA perhaps simpler definition:\nAnything that is counter to the two Great Commandments: \nlove God, love your neighbor, is a sin.\nAnything I do that is not from love is a sin.\n\nThe same action can be a sin sometimes and not a sin sometimes.\n\nI could yell at my kids as discipline, all the time loving them,\nconsidering only to teach them proper behavior, or I could yell at my\nkids out of anger or selfishness.\n\nI could post an excellent article because I am interested in sharing\nmy opinions and getting feedback and learning, or I could post an\narticle because I want everyone to realize how wise I am.\n\nChris Mussack\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6944, "properties": {"category": "comp.graphics", "text": "From: mz@moscom.com (Matthew Zenkar)\nSubject: Re: CView answers\nOrganization: Moscom Corp., E. Rochester, NY\nLines: 18\nX-Newsreader: TIN [version 1.1 PL9]\n\nCyberspace Buddha (cb@wixer.bga.com) wrote:\n: renew@blade.stack.urc.tue.nl (Rene Walter) writes:\n: >over where it places its temp files: it just places them in its\n: >\"current directory\".\n\n: I have to beg to differ on this point, as the batch file I use\n: to launch cview cd's to the dir where cview resides and then\n: invokes it.  every time I crash cview, the 0-byte temp file\n: is found in the root dir of the drive cview is on.\n\nThis is what I posted that cview uses the root directory of the drive\ncview is on.  However, since It has so much trouble reading large files\nfrom floppy, I suspect that it uses the root directory of the drive the\nimage files are on.\n\nMatthew Zenkar\nmz@moscom.com\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6945, "properties": {"category": "comp.windows.x", "text": "From: baileyc@ucsu.Colorado.EDU (Christopher R. Bailey)\nSubject: How do I cause a timeout?\nSummary: how can I force a strip chart to update\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 20\n\n\nI have a problem where an Athena strip chart widget is not calling it's\nget value function.  I am pretty sure this is happening because I am\nnot using XtAppMainLoop, but am dealing with events via sockets.  (ya ya).\n\nAnyway, I want to cause a timeout so that the strip chart widget(s) will\ncall their get value callback.  Or if someone knows another FAST way around\nthis (or any way for that matter) let me know.  I cannot (or I don't think)\ncall the XtNgetValue callback myself because I don't have the value for\nthe third parameter of the get value proc (XtPointer call_data).  \n\nIn other words, I want to force a strip chart widget to update itself.\n\nAny ideas anyone?  \n\n-- \nChristopher R. Bailey            |Internet: baileyc@dendrite.cs.colorado.edu\nUniversity of Colorado at Boulder|CompuServe: 70403,1522\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\\nRide Fast, Take Chances!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6946, "properties": {"category": "sci.electronics", "text": "From: fmg@alpha.smi.med.pitt.edu (Filip Gieszczykiewicz)\nSubject: FAQ - corrections\nSummary: PCB correction, FTP site, etc\nOrganization: Medical Informatics, Pittsburgh, PA USA\nLines: 29\n\n\n\tGreetings. I received a reply stating that unless someone else\n\tconfirms that the following company is operating, I should\n\tremove it from my lst:\n\n>PCB Prototypes of Sandy, UT\n>Ronald Baker\n>8195 South 2660 East\n>Sandy, UT  84093\n>Tel: [read below]\n\t\n\tThis is from the COMM_PCB.FAQ (commercial PCB makers).\n\n\tAlso, I don't have time to get the FAQ onto the sci.answers\n\tbecause of what I like to refer to is \"red tape\" - after the\n\tfinals, I'll see what I can do... in the mean-time, anyone know\n\tof an FTP site that wouldn't mind a 250K file? :-)\n\n\tAnd last, I have some new entries for the SIMUSOFT list (mostly\n\tcommercial/institutional stuff) but was wondering: should I keep\n\tthe restrictions on the price of the software to be considered ->\n\tunder $600 or should I include all those in 4 digit prices also?\n\n\tTake care.\n-- \n/ Filip \"I'll buy a vowel\" Gieszczykiewicz. | Best e-mail \"fmgst+@pitt.edu\"  \\\n| All ideas are mine but they can be yours for only $0.99 so respond NOW!!!! | \n| I live for my EE major, winsurfing, programming, SCA, and assorted dreams. |\n\\ 200MB Drive - Linux has 100MB and MS-DOS has 100MB. MS-DOS is worried ;-)  /\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6947, "properties": {"category": "comp.graphics", "text": "From: buck@HQ.Ileaf.COM (David Buchholz x3252)\nSubject: Looking for WMF Converter\nKeywords: WMF, windowsmetafile\nNntp-Posting-Host: couloir\nReply-To: buck@HQ.Ileaf.COM (David Buchholz x3252)\nOrganization: Interleaf, Inc.\nLines: 13\n\n\nI'm looking for any leads to the source of a good Windows\nMeta File converter or interpreter. I need this for use\noutside the Windows environment. PD sources preferred, but\nnot a requirement. Please reply to the address below.\n\n\nDavid Buchholz               Internet: buck@ileaf.com\nProduct Manager                  uucp: uunet!leafusa!buck\nInterleaf, Inc.                 voice: 617.290.4990 x-3252\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6948, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Opel owners?\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 31\n\nIn article <C5sxI4.J9B@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>gibbonsa@fraser.sfu.ca (Darren Gibbons) writes:\n>\n>>I'm looking for information on Opel cars.  Now you ask, which model?\n>>Well, the sad truth is, I'm not entirely sure, but it's a two-seater,\n>>with roll-over headlights, hard top, and really sporty looking.  My\n>>friend has one sitting in his yard in really nice condition,\n>>body-wise, but he transmission has seized up on him, so it hasn't run\n>>for a while.  Does anyone have any info on these cars?  The engine\n>>compartment looks really tight to work on, but it is in fine shape and\n>>I am quite interested in it.\n>>Thanks!\n>>Darren Gibbons\n>>gibbonsa@sfu.ca\n>\t\n>\tThis would be the manta, would it not???  Sold through Buick dealers in the mid '70's as the price leader????\n\nSounds a lot more like an Opel GT to me. I'd guess that this is on the same\nchassis as the Kadett, rather than the bigger Manta - but I could easily\nbe wrong.  I think the later Kadett's were sold here as Buick Opels.\n\nCraig\n>\n>\tChintan Amin\n>\tllama@uiuc.edu\n>\n>-- \n>Chintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n>*******SIG UNDER CONSTRUCTION HARD HAT AREA********\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6949, "properties": {"category": "talk.politics.misc", "text": "From: kennejs@a.cs.okstate.edu (KENNEDY JAMES SCOT)\nSubject: Drug Use Up Among U.S. Eighth-graders\nOrganization: Oklahoma State University, Computer Science, Stillwater\nKeywords: youths drugs LSD inhalants\nLines: 87\n\n\nThe article that follows was taken from the Wednesday, April 14, 1993\nissue of USA Today (\"Drug Use Up Among U.S. eighth-graders\" by Mike\nSnider, p. 6D).\n\n    A new national survey says drugs are easier to get, more teens are\n    using them and fewer deem drug use as risky. \n\n    For the last two years, government officials have trumpeted results\n    from the National High School Survey as signs that the drug war is\n    being won.  But this year, officials are retreating - drug use by\n    eighth-graders has risen, according to the survey of 50,000 students\n    nationwide.\n\n    Possible reason for the increase:  more experimentation.  Why?  If\n    drug use dropped during the '80s, eventually some students will\n    have fewer \"drug-using contemporaries\" who act as examples of\n    substance abuse's drawbacks, says social psychologist Lloyd Johnston,\n    one of the survey authors.  Each new wave of youths \"must be given\n    the knowledge, skills and motivation to resist using these drugs,\"\n    Johnston says.\n\n    This type of resurgence \"is possible,\" says Eileen Shiff, author of\n    \"Experts Advise Parents\" (Delta, $14.95).  But that's not the issue,\n    she says.  The prevalence of alcohol and drugs among teens today\n    could result in more alcoholic adults decades from now.\n\n    Aggravating the problem:  baby boomer parents - who experimented with\n    drugs and alcohol as teens - trying to be friends, not parents, to\n    their children.  \"I've even seen parents serving kegs of beer\" to\n    their underage kids and friends, Shiff says.  For a recent graduation,\n    Shiff and other parents organized an all-night, \"lock-in\" party where\n    no booze or drugs were allowed.  \"We need to fulfill that parental\n    role, otherwise the peer group takes over,\" she says.\n\n    Officials may \"talk about the war on drugs, but they really haven't\n    done anything that I've seen,\" says Suzanne Linkous, Scottsdale,\n    Ariz., 16, a volunteer who talks with teens about drugs, dating and\n    other issues on a peer counseling and suicide hot line.  Linkous, a\n    member of USA Today's Teen Panel, says \"there's always going to be\n    experimentation\" with drugs.\n\n    A real war on drugs could be waged \"education-wise,\" she says.  But\n    \"some don't want to give kids the facts.  They think it will give\n    them ideas; it's the same with birth control.  I think you should\n    give the kids the information or have it accessible\" through classes,\n    pamphlets and speakers, she says.\n\n    Education efforts need to start as soon as kids get in school - in\n    kindergarten, says Dallas Owens, 17, teen panelist from Miami Shores,\n    Fla.  \"I remember in kindergarten, I used to see (drugs).  I think\n    kids in the 10th and 12th grades have already made up their minds\n    (about using drugs),\" he says.\n\n    Scare tactics in public service announcements aren't working; only\n    one commercial has gotten it right, he says.  The commercial opens\n    with two \"good-looking girls\" in the restroom talking about having\n    no prom date.  Then they take a hit off a joint.  \"That hits home\n    because it's not attractive,\" he says.  \"You can't be doing drugs if\n    you want somebody to like you.\"\n\n\n    Adolescents' choices\n\n    Drugs used by eighth graders in the last month:\n                      Estimated, per 100 students\n                             1991     1992   Pct. chg.\n    Alcohol                  25.1     26.1        +4%\n    Cigarettes               14.3     15.5        +8%\n    Marijuana                 3.2      3.7       +16% \n    Amphetamines              2.6      3.3       +27%\n    LSD                       0.6      0.9       +50%\n    Cocaine                   0.5      0.7       +40%\n    Crack                     0.3      0.5       +67%\n\n    Source:  University of Michigan Institute for Social Research,\n    1993 report\n\n\nScott Kennedy,  Brewer and Patriot\n\nBefore:  \"David Koresh is a cheap thug who interprets\n          the Bible through the barrel of a gun...\"  --ATF spokesman\nAfter:   \"[The ATF] is a cheap thug who interprets\n          [the Constitution] through the barrel of a gun...\"  --Me\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6950, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ak333@cleveland.Freenet.Edu (Martin Linsenbigler)\nSubject: Re: EMM386.EXE and Windows and Dos6\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 37\nReply-To: ak333@cleveland.Freenet.Edu (Martin Linsenbigler)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, rudim@cs.kuleuven.ac.be (Rudi Maelbrancke) says:\n\n>In Windows I created a permanent Swap-file of 7771Kb as win3.1\n>recommended me to do that (32bit access).\n>If I use EMM386.EXE, after win3.1 startup I have 6689K of memory\n>free, if I leave EMM386.EXE out of my config.sys I have 9935K\n>of memory free, and windows recommends me a swap file of 11769K.\n>\n\nI think you need the EMM386.EXE noems\nThis will let the expanded mem be active but not use any, therefore\nthis will give you more extended mem for windows yet have all the\nbases covered.\n\n\n>I use DOS6, with memmaker, have 4MB of internal Memory and a 486DX,\n>\n\nI do not use dos6 so I am not familiar with this.\n\n>Does anybody knows why this is happening (possibly win needs\n>some UMB's to manage virtual memory?, If true, which UMB's, those\n>that EMM386 can find without including suspicious parts?)\n>\n>I need an optimized DOS-environment, because i develop applications for\n>DOS using a windows programming environment.\n>\n>\n>Rudi\n>\nc-ya.....  /\\/\\artin\n-- \n  This communication is sent by    /\\/\\artin   University of Arizona Tucson\n  =========================================================================\n  ak333@cleveland.freenet.edu   mlinsenb@ccit.arizona.edu  mlinsenb@arizvms\n  DEATH HAS BEEN DEAD FOR ABOUT 2,000 YEARS ****** FOLLOW THE KING OF KINGS\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6951, "properties": {"category": "sci.electronics", "text": "From: jeh@cmkrnl.com\nSubject: Re: A question about 120VAC outlet wiring..\nOrganization: Kernel Mode Systems, San Diego, CA\nLines: 43\n\nIn article <1993Apr14.172145.27458@ecsvax.uncecs.edu>, crisp@ecsvax.uncecs.edu (Russ Crisp) writes:\n> I'm considering modernizing some old wiring in my home, and\n> I need a little advice on outlet wiring.  Several outlets\n> are the old 'two prong' type, without the ground.  Naturally,\n> the wire feeding these outlets is 12/2, WITHOUT the ground\n> wire.  I noticed at the fusebox that some circuits have the\n> 12/2 with ground, and that on these circuits, the ground\n> wire was tied to the same bus as the neutral (white) wire.\n> \n> SO..  Here's my question.  It seems to me that I'd have the\n> same electrical circuit if I hooked the jumper from the neutral\n> over to the ground screw on new 'three prong' grounding outlets.\n> What's wrong with my reasoning here?  \n\nNo.  No.  NOOO!!!\n\nThe ground (green) wire is for safety.  No current is supposed to flow in it\nunder normal conditions.  This means that there's normally no voltage drop in\nit either.  It is supposed to be safe to touch the ground wire... even if\nyou're grounded in some other way at the same time.  \n\nThe neutral (white) wire is, as Dave Vanderbyl correctly said, the return for\nthe hot wire.  Since current flows in it, there's a voltage drop.  If you\nplug a heavy load into a properly-wired grounded outlet, you can commonly \nmeasure a volt or so of difference between neutral and ground.  \n\nThey are supposed to be connected together at the breaker panel... but nowhere,\nrepeat NOwhere, else.  (Well, almost.  There are strange exceptions for things\nlike sub-panels.)\n\nWhat you CAN do if you want three-prong outlets without additional wiring is \nto use a GFCI outlet (or breaker, but the outlet will be cheaper).  In fact,\ndepending on where you are putting your new outlet(s), a GFCI may be *required*.\n\nThere is a FAQ on electrical wiring, posted regularly to rec.woodworking and\nnews.answers.  It goes into great detail on these issues (including GFCIs) and\nyou should probably read it before asking any more questions.  I'll mail a copy\nto you, append a copy here, and will ask the writers to cross-post it here in\nthe future. \n\n\t--- Jamie Hanrahan, Kernel Mode Systems, San Diego CA\nInternet:  jeh@cmkrnl.com  Uucp: uunet!cmkrnl!jeh  CIS: 74140,2055\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6952, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dashley@wyvern.wyvern.com (Doug Ashley)\nSubject: Re: SE rom\nOrganization: wyvern.com\nLines: 31\n\nseanmcd@ac.dal.ca writes:\n\n>In article <wgwC5pDL4.43y@netcom.com>, wgw@netcom.com (William G. Wright) writes:\n>> \n>> \tAnyway, I was hoping someone knowledgeable\n>> about Mac internals could set me straight: is it simply\n>> impossible for a mac SE to print grayscale, or could\n>> someone armed with enough info and a little pro-\n>> gramming experience cook something up that would\n>> supplement the ROM's capabilities?\n \t\n>To use the grayscale features, I believe you need a Mac equipped\n>with colour quickdraw. I was told this somewhere or other, but it's\n>not mentioned in \"Apple Facts\" (guide for apple sellers), in the\n>press release or in the technical specs.\n\n>Sean \n\nI think you will find that the Mac SE can PRINT grayscale images, loaded\nwith the proper software. However, the Mac SE cannot DISPLAY grayscale on\nits screen or any attached video because that ability is not in the ROM.\n\nSo, while you might be able to PRINT grayscale, you'd have a hard time\nSEEING the grayscale image you want to print.\n\nDoug\n-- \nThis Signature Under Construction\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nWyvern Technologies | Tidewater's Premier Online Information System\n                    | (804) 627-1818, login guest, password guest to register\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6953, "properties": {"category": "misc.forsale", "text": "From: jamesl@galaxy.nsc.com (James Lu x3702)\nSubject: WANTED: refrigerator.\nNntp-Posting-Host: gallium.nsc.com\nOrganization: National Semiconductor, Santa Clara\nDistribution: ba\nLines: 9\n\n\nWANTED:\n\n     Refrigerator.\n    \n     contact: (408)721-3702\n              jamesl@galaxy.nsc.com\n\n \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6954, "properties": {"category": "misc.forsale", "text": "From: fang@en.ecn.purdue.edu (Wen-Cheng Fang)\nSubject: INFINITY RS-6903 6\"x9\" Speakers For Sale (BRAND NEW)\nOrganization: Purdue University Engineering Computer Network\nDistribution: usa\nLines: 23\n\nI have a pair of car speakers for sale. They are BRAND NEW, still in box and \nplastic wrap. I got them at Highland's going-out-of-business sale just yesterday\nHowever they won't fit my car's rear deck because it's not the right size.\nSo, I am trying to sale them here.\n\nINFINITY RS-6903 \n6x9 Three-Way\nFreq. Resp. 40-22k Hz\nPower Capacity: 90 Watts per channel\nSensitivity: 93 dB SPL/1W/1m\nImpedance 4 ohms\nMouting Depth 3\"\n\nList Price $200\nStereo Store $140-165 + tax\nMail Order Catalog Price $149 + S/H\nMy Price $120 obo + Shipping\n\nPlease e-mail me at fang@en.ecn.purdue.edu\nor call me at (317)743-1394 \n\nMichael Wen-Cheng Fang\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6955, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Organization: Penn State University\nFrom: <GUF@psuvm.psu.edu>\nSubject: HELP 8088/80286 ADVICE\nLines: 11\n\nI own an 8088 640K clone which does all I want except run 1 game I want\nto buy.  The game says it requires a 80286 with 640K.  Game tech. support\nsays game will run on 8088 but uses a some digitized graphics which would\nmake it run really *slow* (it's a card game - Hoyles Classic Card Games,\ndigitized graphics are photos artwork of game fictional card players).\n\nWhat can I do to speed up how this game would run, short of an 80286\nmotherboard upgrade.  Co-processor?  Accelerator card mimicking 80286?\nMy 8088 can run at 10 Mhz.  Any advice would be greatly appreciated.\n\nGil (guf@psuvm.psu.edu)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6956, "properties": {"category": "comp.graphics", "text": "From: robert@cpuserver.acsc.com (Robert Grant)\nSubject: Re: Virtual Reality for X on the CHEAP!\nOrganization: USCACSC, Los Angeles\nLines: 32\nDistribution: world\nReply-To: robert@cpuserver.acsc.com (Robert Grant)\nNNTP-Posting-Host: cpuserver.acsc.com\n\nHi Steve,\n\nAs the author of Multiverse, I feel I had better respond to your\nmailnote questioning whether anyone had managed to compile this\nsoftware - the quick answer is yes! The long answer is yes - but a\nfew have had a few problems with their platforms - not all unix's are\nthe same, you know! As far as \"many bugs\" go, it would probably be more\nuseful to everyone (including you) if you were a bit more explicit! :-)\n\nPlatforms it has succesfully compiled and run on are: RS6000, Dec Ultrix\nSun Solaris so it is possible.\n\nThe main problem is that I don't have access to other platforms than the\nRS6000, so if there are portability problems then the only way I hear\nabout them is by people letting me know and giving me a clue as to\nhow to fix it.\n\nAs far as the software not doing anything, do you really think I would\nbother releasing it, if that was the case? Perhaps you didn't read the\nfew docs that ARE supplied. The dogfight world is made up of clients\nonly, so if you're in there on your own, then you're not going to see\nanything! The dactyl world has quite a lot of scenary - so if you don't\nsee anything there, then this is definitely a problem!\n\nOne final word - if you're not interested, don't bother with it.\nIf you are interested, then please remember that I'm not asking for\nany money! So why not try a little patience and constructive criticism,\nmaybe that will get results??\n\nRobert.\nrobert@acsc.com\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6957, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Defensive Averages 1988-1992 -- Shortstop\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 13\n\nIn article <1993Apr17.200602.8229@leland.Stanford.EDU> addison@leland.Stanford.EDU (Brett Rogers) writes:\n>In article <steph.735027990@pegasus.cs.uiuc.edu> steph@pegasus.cs.uiuc.edu (Dale Stephenson) writes:\n>>>Smith, Ozzie           .742  .717  .697  .672  .664   0.701\n>>  The Wizard's 1988 is the second highest year ever.  Still very good,\n>>but I don't like the way his numbers have declined every year.  In a few\n>>years may be a defensive liability.\n>\n>That's rich... Ozzie Smith a defensive liability...\n\nWhy not?  Brooks Robinson is a defensive liability too, and Ted\nWilliams is a weak hitter.  Even great players decline as they age.\n\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6958, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: Installing RAM in a Quadra 800\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 55\n\ntruesdel@ics.uci.edu (Scott Truesdell) writes:\n\n>This is an aside to Brian Hughes's (please, let's lose the cute phony names\n>everybody) posting about adding memory to a Quadra 800.\n\n    What phony names? My name is clearly visible in the headers, and I\nsing the post with my account name. If you have a problem with that,\nthen you will have to get over it. I've used this account name for over\n10 years and the people who have been reading newsgroups for the last 7\ngenerally recognize \"Hades\" as my account name. I have no intention of\nchanging the way I post.\n\n>I installed a couple of 16MB SIMMs in my Quadra and was somewhat dismayed\n>by the general complexity of the operation compared to, for example, the\n>wonderfully designed LC III. It irritates me when Apple refuses to tell how\n>to do it in the User's Manual so you have to guess at how to disassemble\n>the devise in question (it's the same for adding memory to LaserWriter\n>Pro's).\n\n    It isn't Apple's responsibility to tell its customers how to fool\naround with it's hardware. That is what Apple Service Techs get paid to\ndo. I personally like the design of the Q800, and applaud Apple for\ncoming up with a good way to make use of the front space for all of\nthose drive bays. I like it a lot better than the 900/950 design, except\nfor those people who need Drive Arrays. I do, however, agree with you\nabout the LW Pro design.\n\n>The operation isn't very complicated if even a minimal amount of help were\n>offered but Apple leaves you working blind.\n\n    Again, its's not Apple's place to make it easy for non-certified\nservice people to fool around with Apple hardware, even if they did buy\nit. Of course you are free to do what you want to your Mac, just don't\nget upset when your Apple Service Rep tells you that your warranty is no\nlonger valid.\n\n>After the memory was installed I was distraught that the top of the SIMMs\n>came into contact with the plastic case frame. Mine actually contacted the\n>framework with quite a lot of pressure -- enough so that the assembly of\n>the board back to the proper position was rather difficult and required\n>some force. I could have filed a little excess material off the top of the\n>SIMM boards but chose to let it stand as is. I have not had problems with\n>RAM yet so I will consider the problem annoying but not catastrophic.\n\n    This sounds like the kind of problem I had when I installed 4MB\nSIMMs into an LC, back before low-profile 4MB SIMMs were readily\navailable. The standard 4MB SIMMs would contact the top of the case and\nmake it a bit difficult to close the LC, but it did close and work just\nfine. One of the nice things about Logic-Boards is that they are\ngenerally quite flexible and can withstand a fair amount of pressure.\n\n-Hades\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6959, "properties": {"category": "sci.electronics", "text": "From: davidj@rahul.net (David Josephson)\nSubject: Re: MICROPHONE PRE-AMP/LOW NOISE/PHANTOM POWERED\nNntp-Posting-Host: bolero\nOrganization: a2i network\nLines: 26\n\nIn <C5JJJ2.1tF@cmcl2.nyu.edu> ali@cns.nyu.edu (Alan Macaluso) writes:\n\n>I'm looking to build a microphone preamp that has very good low-noise characteristics,  large clean gain, and incorportates phantom power (20-48 volts (dc)) for a PZM microphone.  I'm leaning towards a good, low-cost (??) instrumentation amplifier to maintain the balanced input from the microphone, for its good CMRR, internal compensation, and because i can use a minimal # of parts.  \n\n>Does anyone out there have any experience, suggestions, advice, etc...that they'd like to pass on, I'd greatly appreciate it.\n\n\n>---\n>A l a n  M a c a l u s o\t\t \tPURPLE MOON GIANTS\n>ali@cns.nyu.edu  \t\t\t\t158 E. 7th. St. #B5\n>(212) 998-7837\t\t\t\t\tNYC  10009\n>\t\t\t\t\t\t(212) 982-6630\n\n>\t\t\n\n\nWithout doing anything really tricky, the best I've seen is the\nBurr-Brown INA103. Their databook shows a good application of this\nchip as a phantom power mic pre.\n\n>\t        \n-- \n------------------------------------------------------------------------\nJosephson Engineering, San Jose California      MICROPHONES\nTel/ 408-238-6062  Fax/ 408-238-6022            INSTRUMENTATION\nemail:david@josephson.com  ftp info from: rahul.net /pub/davidj/\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6960, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rcs8@po.CWRU.Edu (Robert C. Sprecher)\nSubject: PC Syquest on a Mac??\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 13\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nIs it possible, ie via creative cable splicing or whatever, to\nhook a Syquest 44MB removable drive to a Mac?\n\nIs there any difference with the guts of the drive or is it\njust cable differences?\n\nThanks.\n\nRob\n-- \nRob Sprecher\nrcs8@po.cwru.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6961, "properties": {"category": "misc.forsale", "text": "From: pathall@astro.as.arizona.edu (Patrick B. Hall)\nSubject: FOR SALE: Sega Genesis system\nOrganization: University of Arizona, Tucson, AZ\nLines: 9\n\nMy roommate is selling a Sega Genesis system with Sonic I,\nin very nice condition, for $100 obo.  Please respond via\nemail to:\n\t\tpathall@as.arizona.edu\n\nAlternate email addresses are phall@noao.edu and moe@ccit.arizona.edu.\n\nThanks,\nPat Hall\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6962, "properties": {"category": "sci.crypt", "text": "From: rbrand@usasoc.soc.mil (Raymond S. Brand)\nSubject: \"Clipper Chip\" facts: a request\nOrganization: is a nice thing...\nLines: 28\n\nHaving read the various \"Clipper\" announcements on the net over the last few \ndays and a LOT of uninformed speculation about the chip, its uses,\ngovernment plots, etc, I have the following questions.\n\n  1) What does the \"Clipper chip\" actually implement? Just the Skipjack\n\tcryptographic algorithm? Or does it also implement a \"chip to chip\"\n\tcommunications protocol? If it does implement a communications\n\tprotocol, can it be used as just a \"crypt chip\" also.\n\n  2) Where can the chip specifications and spec sheets be obtained?\n\n  3) Who may purchase them and under what conditions?\n\n  4) Are there restrictions as to how the chip may be used in a system?\n\n  5) The security of the algorithm and the encrypted communications does\n\tnot appear to require that the \"Family key\" be a secret. Why is\n\tit a secret? What happens when the \"family key\" becomes well known?\n\tIf it's a secret to make traffic analysis more difficult, does\n\tthe \"Law enforcement message\" contain any random information?\n\tHow much and how random is it?\n\n  6) Can the chip be programmed to reveal the \"Unit key\"? The chip \"serial\n\tnumber\"? Any of the programming parameters?\n\n-----------------------------------------------------------------------------\nRaymond S. Brand\t\t\t\t\trbrand@usasoc.soc.mil\n-----------------------------------------------------------------------------\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6963, "properties": {"category": "comp.windows.x", "text": "From: daniels@NeoSoft.com (Brad Daniels)\nSubject: Re: C++ toolkit \"directions\" ?\nOrganization: NeoSoft Communications Services -- (713) 684-5900\nLines: 41\n\nIn article <533@imp.HellNet.org> devil@loki.HellNet.org (Gil Tene) writes:\n>I am trying to figure out the current C++ toolkit \"directions\".\n>More simply, I'd like to know which C++ toolkit to \"bet on\" \n>for use in a new long term project.\n\nI have the same problem.  I have looked at Motif++, WWL, InterViews, GINA++,\nand a few variations on the above.  I've also done a cursory examination\nof Rogue Wave's View.h++.  I like View.h++'s abstractions best of all of the\ntoolkits I mentioned, but the resulting code looks little like Motif, and I\nhave little confidence that this software will catch on or otherwise result\nin significant longevity for my code.  GINA++ allows you to write code which\nlooks a great deal like Motif and also makes interesting use of inheritance,\nbut the resulting code is almost too Motif-like, and is certainly not\nsignificantly less verbose than equivalent C code.  InterViews looks\npromising, but I haven't found a free version with Motif support, and I'm\nnot confident how widely InterViews with Motif support will be adopted,\nand what (if any) specific Motif support will be available over time.  The\nother libraries produce code which is less Motif-like, but which does not make\nsufficient use of the features of C++ to simplify my coding task.\n\nAt this point, my inclination is to write my Motif manipulation routines in\nC, and invoke those routines from my C++ code using simple abstractions suited\nto my specific task.  Later, if OSF or some credible standards-setting body\ncomes up with a C++ interface to Motif, I will change to that.  It does me\nno goo to write in C++ if my choice of interfaces leaves me with code which\nleaves me tied to an abstraction which is not consistent with the industry\ndirections.  It's better to take a standard if inferior solution for now\nthan to go with a slgihtly superior approach which will leave me with both\nuseless code and useless skills a few years from now.  Views.h++ is the only\nlibrary I'd consider right now, but in our environment, we'd end up spending\nnearly $5000 to use it, and I can't justify it when it's likely to cause\nshort-term productivity decreases as we learn the new abstraction, and is\nunlikely to be a sufficiently long-lived solution for us to reap the benefits\nat the high end of the J curve.\n\n- Brad\n-- \nBrad Daniels\t\t`\t|  \"If money can't buy happiness,\ndaniels@neosoft.com\t\t|   I guess I'll have to rent it.\"\nI don't work for NeoSoft, and\t|\t\t- Weird Al Yenkovic\ndon't speak for my employer.\t|\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.327+0000", "event": "documents", "entityId": 6964, "properties": {"category": "rec.sport.hockey", "text": "From: patchman@lion.WPI.EDU (Peter Bruce Harper)\nSubject: Personal to Ulf Samuellsson\nOrganization: Worcester Polytechnic Institute\nLines: 22\nDistribution: world\nNNTP-Posting-Host: lion.wpi.edu\n\n\nDear Ulf,\n\n\tWould you possibly consider helpiMontreal Canadiens fans everywhere\nby throwing a knee-check in the direction of Denis Savard during your upcoming\ngame against Montreal? We just can't seem to win WITH him!\n\n\t\t\t\t\t\tThanx alot,\n\t\t\t\t\t\tPete H.\n\n\n:-)\n\n\n###############################################################################\n!Pete Harper          ! Baby, baby don't you hesitate 'cause I just can't wait!\n!patchman@wpi.wpi.edu ! Lady once you get me down on my knees,                !\n!OR                   ! then you can do what you please . . .                 !\n!U_HARPER@jake.wpi.edu! COME ON AND LOVE ME!                                  !\n!                     !         -Skid Row, \"Come On and Love Me\"              !\n*******************************************************************************\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6965, "properties": {"category": "comp.graphics", "text": "From: zyeh@caspian.usc.edu (zhenghao yeh)\nSubject: Re: Fast wireframe graphics\nOrganization: University of Southern California, Los Angeles, CA\nLines: 14\nDistribution: usa\nNNTP-Posting-Host: caspian.usc.edu\n\n\nIn article <C5tK4u.C6t@cs.columbia.edu>, ykim@cs.columbia.edu (Yong Su Kim) writes:\n|> \n|> I am working on a program to display 3d wireframe models with the user\n|> being able to arbitrarily change any of the viewing parameters.  Also,\n|> the wireframe objects are also going to have dynamic attributes so\n|> that they can move around while the user is \"exploring\" the wireframe\n|> world.\n\n\tWhy don't you consider PHIGS in X or PEX lib?\n\n\tYeh\n\tUSC\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6966, "properties": {"category": "sci.med", "text": "From: kaminski@netcom.com (Peter Kaminski)\nSubject: Re: What about sci.med.chemistry\nArticle-I.D.: netcom.kaminskiC52n0s.2uA\nOrganization: The Information Deli - via Netcom / San Jose, California\nLines: 19\n\nIn <julkunen.734086202@messi.uku.fi> julkunen@messi.uku.fi (Antero\nJulkunen) writes:\n\n>There is this newsgroup sci.med.physics and there has been quite a lot\n>discussion in this group about many chemical items e.g. prolactin\n>cholesterol, TSH etc. Should there also be a newsgroup sci.med.chemistry?\n\nIt's got potential.  Instead of *.chemistry, how about splitting the\nclassification into *.biochemistry (which are probably the topics\nyou're thinking of) and *.pharmaceutical (which otherwise might end up\nin *.(bio)chemistry)?\n\n(This is separate from the issue of whether there is sufficient potential\nnews volume to support either or both groups.)\n\nI'll add 'em to my medical/health newsgroup wish list (which I'm looking\nforward to posting and discussing -- but not for another 10 days or so).\n\nPete\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6967, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ncmoore2@netnews.jhuapl.edu (Nathan Moore)\nSubject: Re: Bernoulli Drives/Disks...\nOrganization: JHU/Applied Physics Laboratory\nLines: 22\n\nnilayp@violet.berkeley.edu (Nilay Patel) writes:\n\n>I am looking for Bernoulli removable tapes for the 20/20 drive..\n\n>Don't laugh ... I am serious...\n\n>If you have any 20 MB tapes lying around that you would like to get rid of,\n>please mail me ... \n\n>-- Nilay Patel\n>nilayp@violet.berkeley.edu\n\nYou do mean disks, don't you, not tapes?  You forgot to say whether you\nwere looking for the old 8\" or the newer 5.25\".\n\nSorry, just use them at work and don't think they would appreciate it.\n\n-- \nNathan C. Moore\nThe Johns Hopkins University / Applied Physics Laboratory\nncmoore2@aplcomm.jhuapl.edu      CIS: 70702,1576\nPlease note above address for email replies.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6968, "properties": {"category": "comp.windows.x", "text": "From: moore@halley.est.3m.com (Richard Moore)\nSubject: Re: X interactive performance\nIn-reply-to: afielden@cbnewsb.cb.att.com's message of Mon, 26 Apr 1993 14:20:40 GMT\nOrganization: 3M Company, 3M Center, Minnesota, USA\nLines: 4\n\nFor image display, about 10 frames per second seems to be the lower limit\nfor interactive operations. For just bringing up an image for viewing less\nthan 1 second seems to be a good number. Of course the measure of response\ntime should be based on the applications you are planning to run.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6969, "properties": {"category": "comp.graphics", "text": "Subject: XLib and 24 Bit Displays [Info Needed]\t\nFrom: sl0pr@riverdale.enet.dec.com (869883 Thakkar Rahul Chandrakant)\nReply-To: sl0pr@riverdale.enet.dec.com (869883 Thakkar Rahul Chandrakant)\nDistribution: world\nOrganization: Digital Equipment Corporation\nKeywords: Xlib\nNntp-Posting-Host: riverdale.declab.usu.edu\nLines: 23\n\nHi,\n\nMy name is rahul and I am doing MS at USU, Logan\nMy query is:\n\tI have a HP workstation: HP Series 400 with X running on it.\nI have a true color - 24bit color monitor connected to this machine.\nNormally I have the capability to display 256 colors from a max of\n16.7 million. Since the monitor is True Color I can see 16.7\nmillion at a time. \nQue: do we have a facility in X(c-function call) that will enable me\nto specify any RGB combination and see it on screen? I am using\nXStoreColor to set the pallette of a max of 256 colors.\nQue: If not. Is there any way I can display a true color image\non a true color monitor using XLib function calls?\n\nWe are generating ray traced images and 256 colors are indeed a\npainful limit. besides I need the facility to display the true color images \ni will be generating on a true color system WITHOUT color \nquantification.\nPlease, if anyone can help i'd be obliged\n\nRahul\nsl0pr@cc.usu.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6970, "properties": {"category": "rec.motorcycles", "text": "From: marcl@os-d.isc-br.com (H. Marc Lewis)\nSubject: European M/C Insurance\nOrganization: ISC-Bunker Ramo, An Olivetti Company\nLines: 16\nNntp-Posting-Host: os-d.isc-br.com\n\nAnyone in Europe got any advice for a US citizen whose going to be living\nand working in Italy for a year and wants to buy a motorcycle there?  An\nItalian friend just arrived here in Washington State to work for two years,\nand she's finding it very very difficult to obtain car insurance.  So I\nthought I'd ask...\n\nI have a US license, with motorcycle endorsement (unlimited displacement),\nand have had for 30 years.  I am also a Washington State Motorcycle Safety\ninstructor, if that info might help.\n\nI will post a summary, even if it's just of my own personal experience in \nbuying a bike and getting it insured after I get to Italy.\n--\nH. Marc Lewis               | \"There are two kinds of people in the world --\nOlivetti North America      | those who divide everything in the world into\nmarcl@mail.spk.olivetti.com | two kinds of things and those who don't\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6971, "properties": {"category": "rec.sport.baseball", "text": "From: hymowitz@hull.cs.jhu.edu (Hymie!)\nSubject: Re: And America's Team is....But Why?\nOrganization: Creative Sensualities dept, Jacquie's House of Underwear\nLines: 23\n\nkingoz@camelot.bradley.edu (Orin Roth) writes:\n>   Well, officially it's the Braves. At least up until they started winning\n>   it was. Are they still, officially? \n>   If so, why? and how did they receive this label?\n\nmy understanding was that ted turner (owner of the braves) started running\nhis tv station nationwide, and started running all of his team's games on\nhis nationwide tv station, he dubbed his team ''america's team'' - that is,\nthe only team (at least, at the time) all of whose games could be seen\nacross america.\n\nnow, wor is nationwide out of beautiful secaucus, but not all mets games\nare on wor.  wgn chicago and wsbk boston are two other superstations\n(at least, they are on the east coast).  i don't know how many\ncubs/sox/sox games they show.\n\n--hymie                                                     hymowitz@cs.jhu.edu\n-------------------------------------------------------------------------------\nI'll be mellow when I'm dead.                           --''Weird'' Al Yankovic\n-------------------------------------------------------------------------------\nYou get your mellow, laid back attitude from Sonny the Cuckoo Bird.\n                                                               --Josh, about me\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6972, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: H.R. violations by Israel/Arab st.\nOrganization: The Department of Redundancy Department\nLines: 37\n\nIn article <1483500360@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n\n>I am born in Palestine (now Israel). I have family there. The lack of\n>peace and utter injustice in my home country has affected me all my life.\n\nBullshit.  You've been in Iceland for the past 30 years.  You told us\nso yourself.  It had something to do with not wanting to suffer the\nfate of your mother, who has lived with Jews for a long time or\nsomesuch.  Sounded awful.\n\n>I am concerned by Palestine (Israel) because I want peace to come to\n>it. Peace AND justice. \n\nAre you as concerned about peace and justice in Palestine (Jordan)?\n\n>Israeli trights and Palestinian rights are not symmetrical. The first\n>party has a state and the other has none. The first is an occupier and\n>the second the occupied. \n\nLet's say that Israel grants the PLO _EVERYTHING THEY EVER ASKED FOR_.\nThat Israel goes back to the 1967 borders.  What will the \"Palestinean\nArabs\" in Tel-Aviv call themselves?  The Palestineans in West\nJerusalem?  In Haifa?  Will they still claim to be \"occupied\"?\n\nOr do you suggest that Israel expell or kill off any remaining Arabs,\nmuch as the Arabs did to their Jews?\n\nIndeed, there is much which is not symmetrical about the conflict in\nthe M.E.  And most of this lack of symmetry does NOT favor Israel.\n\n>Elias Davidsson\n>Iceland\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6973, "properties": {"category": "sci.space", "text": "Subject: Re: Surviving Large Accelerations?\nFrom: lpham@eis.calstate.edu (Lan Pham)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 25\n\nAmruth Laxman <al26+@andrew.cmu.edu> writes:\n> Hi,\n>     I was reading through \"The Spaceflight Handbook\" and somewhere in\n> there the author discusses solar sails and the forces acting on them\n> when and if they try to gain an initial acceleration by passing close to\n> the sun in a hyperbolic orbit. The magnitude of such accelerations he\n> estimated to be on the order of 700g. He also says that this is may not\n> be a big problem for manned craft because humans (and this was published\n> in 1986) have already withstood accelerations of 45g. All this is very\n> long-winded but here's my question finally - Are 45g accelerations in\n> fact humanly tolerable? - with the aid of any mechanical devices of\n> course. If these are possible, what is used to absorb the acceleration?\n> Can this be extended to larger accelerations?\n\nare you sure 45g is the right number? as far as i know, pilots are\nblackout in dives that exceed 8g - 9g. 45g seems to be out of human\ntolerance. would anybody clarify this please.\n\nlan\n\n\n> \n> Thanks is advance...\n> -Amruth Laxman\n> \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6974, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Assistance to Palest.people\nNf-ID: #N:cdp:1483500359:000:3036\nNf-From: cdp.UUCP!cpr    Apr 24 15:00:00 1993\nLines: 78\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Assistance to Palest.people\n\n\nU.N. General Assembly Resolution 46/201 of 20 December 1991\n\nASSISTANCE TO THE PALESTINIAN PEOPLE\n---------------------------------------------\nThe General Assembly\n\nRecalling its resolution 45/183 of 21 December 1990\n\nTaking into account the intifadah of the Palestinian people in the\noccupied Palestinian territory against the Israeli occupation,\nincluding Israeli economic and social policies and practices,\n\nRejecting Israeli restrictions on external economic and social\nassistance to the Palestinian people in the occupied Palestinian\nterritory,\n\nConcerned about the economic losses of the Palestinian people as a\nresult of the Gulf crisis,\n\nAware of the increasing need to provide economic and social\nassistance to the Palestinian people,\n\nAffirming that the Palestinian people cannot develop their\nnational economy as long as the Israeli occupation persists,\n\n1. Takes note of the report of the Secretary-General on assistance\nto the Palestinian people;\n\n2. Expresses its appreciation to the States, United Nations bodies\nand intergovernmental and non-governmental organizations that have\nprovided assistance to the Palestinian people,\n\n3. Requests the international community, the United Nations system\nand intergovernmental and non-governmental organizations to\nsustain and increase their assistance to the Palestinian people,\nin close cooperation with the Palestine Liberation Organization\n(PLO), taking in account the economic losses of the Palestinian\npeople as a result of the Gulf crisis;\n\n4. Calls for treatment on a transit basis of Palestinian exports\nand imports passing through neighbouring ports and points of exit\nand entry;\n\n5. Also calls for the granting of trade concessions and concrete\npreferential measures for Palestinian exports on the basis of\nPalestinian certificates of origin;\n\n6. Further calls for the immediate lifting of Israeli restrictions\nand obstacles hindering the implementation of assistance projects\nby the United Nations Development Programme, other United Nations\nbodies and others providing economic and social assistance to the\nPalestinian people in the occupied Palestinian territory;\n\n7. Reiterates its call for the implementation of development\nprojects in the occupied Palestinian territory, including the\nprojects mentioned in its resolution 39/223 of 18 December 1984;\n\n8. Calls for facilitation of the establishment of Palestinian\ndevelopment banks in the occupied Palestinian territory, with a\nview to promoting investment, production, employment and income\ntherein;\n\n9. Requests the Secretary-General to report to the General\nThe General Assembly at its 47th session, through the Economic and Social\nCouncil, on the progress made in the implementation of the present\nresolution.\n-----------------------------------------------\n\nIn favour 137 countries (Europe, Canada, Australia, New Zealand,\nJapan, Africa, South America, Central America and Asia) Against:\nUnited States and Israel Abstaining: None\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6975, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: >>>>>>Pompous ass\nOrganization: California Institute of Technology, Pasadena\nLines: 9\nNNTP-Posting-Host: punisher.caltech.edu\n\nkmr4@po.CWRU.edu (Keith M. Ryan) writes:\n\n>>Then why do people keep asking the same questions over and over?\n>Because you rarely ever answer them.\n\nNope, I've answered each question posed, and most were answered multiple\ntimes.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6976, "properties": {"category": "rec.sport.hockey", "text": "From: kerryy@bnr.ca (Kerry Yackoboski)\nSubject: Re: Goalie masks\nReply-To: kerryy@bnr.ca\nOrganization: BNR Ottawa\nLines: 10\n\nIn article <1993Apr15.184750.12889@ac.dal.ca>, brifre1@ac.dal.ca writes:\n|> I saw a mask once that had drawings of band-aids, presumably for every puck\n|> that goalie stopped with his face/head.  I can't remember who it was or even\n|> if it was NHL (I see quite a few AHL games here).\n\nGerry Cheevers used to have a mask that had stitches painted all over\nit.\n\nKen Dryden's mask is a classic - an archetype of our time.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6977, "properties": {"category": "rec.autos", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: electronic odometers (was: Used BMW Question ..... ???)\nOrganization: Megatest Corporation\nLines: 21\n\nIn article <9833@dirac.physics.purdue.edu> lovall@bohr.physics.purdue.edu (Daniel L. Lovall) writes:\n>\n>It shouldn't be THAT hard if you know much about digital electronics.  If the\n>counter is made with standard TTL chips, all you should need to do is find\n>the chip(s) used for counting, figure out what mileage you want to put in,\n>and preset it but wiring the preset pins directly to low/high (you'd also have\n>to know what the conventions are for low and high).  It might be a little more\n>involved than this, but it shouldn't be beyond someone with a BSEE or BS EET.\n>All the display does is convert what the counter chips say into digits using\n>a \"translation table\" stored in ROM.\n>\n\nNobody is using discrete IC's to do these functions anymore if at\nall.  I doubt any of the Motor electronics had any to start with.\n...Much less TTL.\n\nI can almost guarantee that it'll a fruitless attempt to figure out\nhow BMW does it without breaking anything and invalidating any\nwarranty  on the car.  If you're lucky, you'd still be able to\nstart the car.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6978, "properties": {"category": "rec.sport.baseball", "text": "From: tkevans@eplrx7.es.duPont.com (Tim Evans)\nSubject: Re: Royals\nReply-To: tkevans@eplrx7.es.dupont.com\nOrganization: DuPont Engineering Physics Laboratory\nX-Newsreader: NN version 6.4.19\nLines: 17\n\nrandall@informix.com (Randall Rhea) writes:\n\n\n>The Royals are darkness.  They are the void of our time.\n>When they play, shame descends upon the land like a cold front\n>from Canada.   They are a humiliation to all who have lived and\n>all who shall ever live.   They are utterly and completely\n>doomed.\n\n>Other than that, I guess they're OK.\n\nYou must not be old enough to remember the A's in KC!\n-- \nTim Evans                     |    E.I. du Pont de Nemours & Co.\ntkevans@eplrx7.es.dupont.com  |    Experimental Station\n(302) 695-9353/7395           |    P.O. Box 80357\nEVANSTK AT A1 AT ESVAX        |    Wilmington, Delaware 19880-0357\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6979, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: reimert@.etdesg.trw.com (Scott P. Reimert)\nSubject: Re: Win NT - what is it???\nOrganization: TRW Inc., Redondo Beach, CA\nLines: 14\n\nSomewhere in this thread, it has been said that Windows NT (tm) is a \nmulti-user OS, as well as multi-threading, etc.  I certainly haven't\nseen this to be the case.  There are seperate accounts for each person,\nand even seperate directories if that is desired.  I don't see an \nimplentation of simultaneuos use though.\n\n\t\tScott\n\n\n-- \n-------------------------------------------------------------------------------\n  Scott Reimert  \\    reimert@mamacass.etdesg.trw.com     /Standard disclaimer:\nRedondo Beach, CA \\______________________________________/\"Blah blah blah ... \"\n__________________|Always store beer in a cool dark place|_____________________\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6980, "properties": {"category": "soc.religion.christian", "text": "From: danc@procom.com (Daniel Cossack)\nSubject: Re: The truth of the Bible\nOrganization: Procom Technology, Inc.\nLines: 44\n\nsodium.asc.slb.com@asc.slb.com (Michael A. Montgomery) writes:\n\n>I believe that the God has preserved the Bible perfectly in that it\n>perfectly conveys all of the truth that He intended. This He has done\n\nOh yea?  Which version of the Bible is the perfectly preserved one?  And\nwhy are there so many translations that are not perfectly preserved?  Is\nGod trying to confuse us?\n\n>Minor changes in wording or even accidental omission of passages in some\n>manuscripts does not change the truth being conveyed, nor would it lead a\n>serious student into doctrinal error. (Note also that God provided many\n\nBut that is exactly what happend.  There are so many branches of \ndenominations of Christianity and deviations of doctrine portruding\nfrom varying translations of biblical texts by \"serious students\" that\nare much too numerous to begin to count.  If there is a Perfect Bible,\nthen there would be no possible misinterpretation and there would be\nno need for anyone here to be debating it.  On the other hand, maybe\nthe Bible is perfect, but no one on this planet is perfect enough to\nread it correctly, but then there would be no point in God giving us\nsomething we cannot use correctly.\n\n>In short, if you attack the credibility and reliability of the Bible, you\n>are on weak ground. Furthermore, the only reason that I can see for wanting\n>to do so is to remove the Bible as the final authority, and instead put\n>that responsibility on men to sift the Bible to strain out the nuggets of\n>truth that it contains (in other words, what they want to believe), and\n>ignore the rest. The Bible IS Truth; it does not just contain truth.\n\nIMHO, if you trust your salvation on the reliability of a single book,\nyou are on weak ground.  Remember, In the beginning was the Word, and\nthe Word was with God, and the Word was God.  This Word existed BEFORE\nthe Bible was written.  (Note: Word <==> God).  This Word that John is\ntrying to describe cannot be fully described in any written language,\nall languages being IMPERFECT.  Realization comes only from contemplation\nof the Word, and is outside the boundaries of language.  I use the Bible\nas a guide, a stepping stone, but in no way is it my final authority.\nGod alone is the final authority.\n-- \n===========================================================================\nDaniel Cossack                |  danc@procom.com, 71333.2102@compuserve.com\nSenior Software Engineer      |  2181 Dupont Drive, Irvine, CA 92715\nProcom Technology, Inc.       |  +1 714 852 1000\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6981, "properties": {"category": "talk.religion.misc", "text": "From: kempmp@phoenix.oulu.fi (Petri Pihko)\nSubject: Re: DID HE REALLY RISE???\nOrganization: University of Oulu, Finland\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 19\n\nI must correct the following in my previous posting:\n \n: If you are trying to be objective, you must also recognise that\n: \n: 1) the gospels are not independent sources, on the contrary, they\n: share much of the same material\n\nI should have been a bit more careful here - the gospels not only\ntell us about the same events, they usually use the same wordings.\nTextual analyses show that Matthew and Luke probably had a common\nsource, which may have influenced Mark, too.\n\nPetri\n\n--\n ___. .'*''.*        Petri Pihko    kem-pmp@          Mathematics is the Truth.\n!___.'* '.'*' ' .    Pihatie 15 C    finou.oulu.fi    Physics is the Rule of\n       ' *' .* '*    SF-90650 OULU  kempmp@           the Game.\n          *'  *  .*  FINLAND         phoenix.oulu.fi  -> Chemistry is The Game.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6982, "properties": {"category": "talk.religion.misc", "text": "From: m23364@mwunix.mitre.org (James Meritt)\nSubject: Re: Kind, loving, merciful and forgiving GOD!\nNntp-Posting-Host: mwunix.mitre.org\nOrganization: MITRE Corporation, McLean VA\nLines: 41\n\nIn article <8846@blue.cis.pitt.edu> joslin@pogo.isp.pitt.edu (David Joslin) writes:\n}m23364@mwunix.mitre.org (James Meritt) writes:\n}>}(a) out of context;\n}>Must have missed when you said this about these other \"promises of god\" that we keep\n}>getting subjected to.  Could you please explain why I am wrong and they are OK?\n}>Or an acknowledgement of public hypocrisy. Both or neither.\n}\n}So, according to you, Jim, the only way to criticize one person for\n}taking a quote out of context, without being a hypocrite, is to post a\n}response to *every* person on t.r.m who takes a quote out of context?\n\nDid I either ask or assert that?  Or is this your misaimed telepathy at work again?\n\n}>BTW to David Josli:  I'm still waiting for either your public\n}>acknowledgement of your\n}>telepathy and precognition (are you a witch?) or an appology and retraction.\n}\n}Can you wait without whining? To pass the time, maybe you should go\n}back and read the portions of my article that you so conveniently\n}deleted in your reply.  You'll find most of your answers there.  \n\nNope:  In particular:\n>once he realized that he had\nExample of telepathy?\n\n>responding Jim's threa\nWhat threat.  Produce it.\n\n>Jim again, still mystified\nMore telepathy?  Or maybe just empathic telepathy, capable of determining emotional states.\n\n>Jim, trying to\nMore telepathy.  How do you know \"trying\"?!?!?\n\n>Jim, preparing to\nPrecognition?  Substantiate.  \n\nAll this taken from your Message-ID: <8257@blue.cis.pitt.edu>.\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6983, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Re: Russian Operation of US Space Missions.\nOrganization: University of Illinois at Urbana\nLines: 10\n\nI know people hate it when someone says somethings like \"there was an article \nabout that somewhere a while ago\" but I'm going to say it anyway.  I read an\narticle on this subject, almost certainly in Space News, and something like\nsix months ago.  If anyone is really interested in the subject I can probably\nhunt it down given enough motivation.\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n          \"Tout ce qu'un homme est capable d'imaginer, d'autres hommes\n            \t     seront capable de le realiser\"\n\t\t\t -Jules Verne\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.328+0000", "event": "documents", "entityId": 6984, "properties": {"category": "misc.forsale", "text": "From: ychen@hubcap.clemson.edu (Eric Chen)\nSubject: Fortegraph Emulator Card, what's this?\nOrganization: Clemson University, Clemson SC\nLines: 14\n\nsomeone gave me this brand new card.  I am thinking to sell it cuz\nI don't need it.  but the problem is that i don't even know what this\nis.\nthis was made by Forte Communications Co. it has 2 board combined\ntogether (looks wierd  to me) and has 2 9 pin ports (one male and one\nfemale), and also has a round port (like BNC, not sure).\nthis was made in 1986, and has a \"fortegraph emulator & diagnostic\" disk\nwith it.\n\nhas anyone here ever seen this or known what this is.\n\nappreciate your help in advance.\n\neric\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6985, "properties": {"category": "comp.graphics", "text": "From: fox@graphics.cs.nyu.edu (David Fox)\nSubject: Re: Newsgroup Split\nIn-Reply-To: tdawson@engin.umich.edu's message of 19 Apr 1993 19:43:52 GMT\nNntp-Posting-Host: graphics.cs.nyu.edu\nOrganization: Courant Institute of Mathematical Sciences\n\t<1993Apr19.193758.12091@unocal.com>\n\t<1quvdoINN3e7@srvr1.engin.umich.edu>\nLines: 16\n\n   Concerning the proposed newsgroup split, I personally am not in favor of\n   doing this.  I learn an awful lot about all aspects of graphics by reading\n   this group, from code to hardware to algorithms.  I just think making 5\n   different groups out of this is a wate, and will only result in a few posts\n   a week per group.  I kind of like the convenience of having one big forum\n   for discussing all aspects of graphics.  Anyone else feel this way?\n   Just curious.\n\nI disagree.  You could learn the same amount by reading all the\nsplit groups, and it would make things easier for those of us\nwho are less omnivorous.  There is no \"waste\" in creating news\ngroups -- its just a bit of shuffling about.  I have no problem\nwith only a few posts per week per group - I spend too much time\non this as it is.\n\n-david\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6986, "properties": {"category": "comp.sys.mac.hardware", "text": "From: deguzman@after.math.uiuc.edu (A A DeGuzman)\nSubject: Non-Apple Mini-Docks available?\nReply-To: a-deguzman@uiuc.edu\nOrganization: Calculus&Mathematica at UIUC\nLines: 10\n\nMy boss is considering the purchase of a Powerbook or Duo. He is leaning\ntowards a 180, because of the math coprocessor (for Mathematica), but would\nget a Duo if he could find a Mini-Dock with a coprocessor. Have any\nthird-parties announced such a beast?\n\n--\nAlan A. DeGuzman                 \"Genius is never understood in it's own time.\"\nCalculus&Mathematica\nDISCLAIMER: \"The University       - Calvin to Hobbes from\ncan't afford my opinions.\"         'The Indispensible Calvin and Hobbes'\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6987, "properties": {"category": "sci.electronics", "text": "From: jmichael@vnet.IBM.COM\nSubject: Re: A to D hardware for a PC\nArticle-I.D.: almaden.19930406.072523.946\nLines: 7\n\nIf you can find a copy of \"8088 Assembler Language Programming: The IBM PC\"\nby Willen and Krantz, 2nd ed. pub. by Sams, there is a discussion of the\ngame control adapter, monostable multivibrators, and conversion to other\nuses, as well as an assembler program. If you need greater accuracy, there\nis no reason you couldn't modify the approach to suit your needs.\n\nJim\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6988, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cs3sd3ae@maccs.mcmaster.ca (Holly       KS)\nSubject: US Robotics info wanted\nNntp-Posting-Host: maccs.dcss.mcmaster.ca\nOrganization: Department of Computer Science, McMaster University\nLines: 11\n\nCould someone please give me some info regarding the USR Sportsters that have\nrecently dropped below $200? I was going to buy a used Courier v32bis external\nwithout fax for $200 but now I see the Sportster with Fax is selling below\n$200 brand new! Are these good modems? What warranty do they carry?\n\nAny info very much appreciated.\n\nKevin\n\nhollyk@mcmail.cis.mcmaster.ca\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6989, "properties": {"category": "sci.med", "text": "From: Donald Mackie <Donald_Mackie@med.umich.edu>\nSubject: Re: Barbecued foods and health risk\nOrganization: UM Anesthesiology\nLines: 13\nDistribution: world\nNNTP-Posting-Host: 141.214.86.38\nX-UserAgent: Nuntius v1.1.1d9\nX-XXDate: Mon, 19 Apr 93 20:12:06 GMT\n\nIn article <1993Apr18.175802.28548@clpd.kodak.com> Rich Young,\nyoung@serum.kodak.com writes:\n\nStuff deleted\n\n>\t ... have to\n>\t consume unrealistically large quantities of barbecued meat at a\n>\t time.\"\n\nI have to confess that this is one of my few unfulfilled ambitions.\nNo matter how much I eat, it still seems realistic.\n\nDon Mackie - his opinion\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6990, "properties": {"category": "talk.politics.mideast", "text": "From: bf3833@pyuxe.cc.bellcore.com (feigenbaum,benjamin)\nSubject: Re: was:Go Hezbollah!\nOrganization: Bellcore, Livingston, NJ\nSummary: An Untried Approach\nLines: 59\n\nIn article <1993Apr20.114746.3364@ncsu.edu>, hernlem@chess.ncsu.edu (Brad Hernlem) writes:\n> \n> In article <1993Apr19.214300.17989@unocal.com>, stssdxb@st.unocal.com (Dorin Baru) writes:\n> \n> |> (Brad Hernlem writes:\n> |> \n> |> \n> |> >Well, you should have noted that I was cheering an attack on an Israeli \n> |> >patrol INSIDE Lebanese territory while I was condemning the \"retaliatory\"\n> |> >shelling of Lebanese villages by Israeli and Israeli-backed forces. My \"team\",\n> |> >you see, was \"playing fair\" while the opposing team was rearranging the\n> |> >faces of the spectators in my team's viewing stands, so to speak. \n> |> \n> |> >I think that you should try to find more sources of news about what goes on\n> |> >in Lebanon and try to see through the propaganda. There are no a priori\n> |> >black and white hats but one sure wonders how the IDF can bombard villages in \n> |> >retaliation to pin-point attacks on its soldiers in Lebanon and then call the\n> |> >Lebanese terrorists.\n> |> \n> |> If the attack was justified or not is at least debatable. But this is not the\n> |> issue. The issue is that you were cheering DEATH. [...]\n> |> \n> |> Dorin\n> \n> Dorin, of all the criticism of my post expressed on t.p.m., this one I accept.\n> I regret that aspect of my post. It is my hope that the occupation will end (and\n> the accompanying loss of life) but I believe that stiff resistance can help to \n> achieve that end. Despite what some have said on t.p.m., I think that there is \n> a point when losses are unacceptable. The strategy drove U.S. troops out of \n> Lebanon, at least.\n> \n> Brad Hernlem (hernlem@chess.ncsu.EDU)\n\nHi Brad,\n\nI have two comments:  Regarding your hope that the \"occupation will end... \nbelive that stiff resistance..etc. - how about an untried approach, i.e.,\npeace and cooperation.  I can't help but wonder what would happen if all\nviolence against Israelis stopped.  Hopefully, violence against Arabs\nwould stop at the same time.  If a state of non-violence could be \nmaintained, perhaps a state of cooperation could be achieved, i.e.,\ngreater economic opportunities for both peoples living in the\n\"territories\".  \n\nOf course, given the current leadership of Israel, your way may work\nalso - but if that leadership changes, e.g., to someone with Ariel\nSharon's mentality, then I would predict a considerable loss of life,\ni.e., no winners.\n\nSecondly, regarding your comment about the U.S. troops responding\nto \"stiff resistance\" - the analogy is not quite valid.  The U.S.\ntroops could get out of the neighborhood altogether.  The Israelis\ncould not.\n\nJust my $.02 worth, no offense intended.\n\nRespectfully,     \n\nBen.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6991, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon Wtte)\nSubject: Re: x86 ~= 680x0 ?? (How do they compare?)\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 34\nNntp-Posting-Host: hemul.nada.kth.se\n\nIn <C5npy2.LI3@news.cso.uiuc.edu> rvenkate@ux4.cso.uiuc.edu (Ravikuma Venkateswar) writes:\n\n>Not quite. 66MHz Pentium - 65 SPECint92, 57 SPECfp92 .\n>\t   66MHz MC98601 - 50 SPECint92, 80 SPECfp92 .\n\nBut the interesting comparision is how fast clock-cycle chips\nyou can get - an Alpha is WAY slow at 66 MHz, but blazes at\n200 MHz.\n\n>>680040\n>>486\n\n>As far as the 486DX2-66 goes - 32 SPECint92, 16 SPECfp92 .\n\nBut the 68040 is (or will soon be) available in 40 MHz version,\nmaking it \"comparable\" to a 486DX2-80\n\n>Intel chips have traditionally been faster than their Motorola \"equivalents\"\n>although the significance of chip speed in real world application performance\n>is something that is highly debatable.\n\nI think you have that one turned around; they have faster clock\ncycles but less power behind each cycle. Not to mention that the\nIntel instruction stream is BYTE-oriented (longest Intel instruction\nis 15 bytes; what an odd number :-) which makes it hard to do any\nintelligent memory subsystem.\n\nCheers,\n\n\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n\n   This article printed on 100% recycled electrons.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6992, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Albert Sabin\nFrom: rfox@charlie.usd.edu (Rich Fox, Univ of South Dakota)\nReply-To: rfox@charlie.usd.edu\nOrganization: The University of South Dakota Computer Science Dept.\nNntp-Posting-Host: charlie\nLines: 112\n\nIn article <1993Apr15.231515.19982@rambo.atlanta.dg.com>, wpr@atlanta.dg.com (Bill Rawlins) writes:\n>In article <C5FtJt.885@sunfish.usd.edu>, rfox@charlie.usd.edu (Rich Fox, Univ of South Dakota) writes:\n>|> In article <1993Apr10.213547.17644@rambo.atlanta.dg.com>, wpr@atlanta.dg.com (Bill Rawlins) writes:\n>|> \n>|> [earlier dialogue deleted]\n>|> \n>|> >|> Perhaps you should read it and stop advancing the Bible as evidence relating \n>|> >|> to questions of science.  \n>|> \n>|> [it = _Did Jesus exist?_ by G. A. Wells]\n>|> \n>|> >     There is a great fallacy in your statement. The question of origins is\n>|> >     based on more than science alone.  \n>|> \n>|> Nope, no fallacy.  Yep, science is best in determining how; religions handle\n>|> why and who.\n>\n>        The problem is that most scientists exclude the possibility of the\n>        supernatural in the question of origins.  Is this is a fair premise?\n\nNot entirely.  Its not a premise, its a conclusion.  Second, that scientists\n(for the most part) exlude the possibility is not a problem, its a necessity. \nScientists are empircists, not theologians.\n\n>        I utterly reject the hypothesis that science is the highest form of\n>        truth.\n\nSo do scientists, and long before you did.  Clearly you have a deep and \nfundamental misunderstanding of science.\n\n>|> \n>|> >     If you met a man who could walk on\n>|> >     water, raise people from the dead, claimed to be the Son of God, and\n>|> >     then referred to the inviolability of the scriptures, this would affect\n>|> >     your belief in the origin of man.  (I can expand on this.)  \n>|> \n>|> Nope, wouldn't affect my knowledge (not belief) of origins of anatomically\n>|> modern humans.  If that man could show me something better, I'd change, even if \n>|> it was the biblical story in exact detail.  But then I would ask, \"Why in the\n>|> world did your father endow us with intellect and reason, and then proceed to\n>|> fool us.  I mean, the bible says nothing about the human-like creatures that we\n>|> know exist.\n>\n>        Some of these so-called human-like creatures were apes.  Some were\n>        humans.  Some were fancifully reconstructed from fragments.\n\nAbsolutely and utterly false (except for some were AMHs). Lucy (Australopithecus\nafarensis, ca. 3 to 3.25 mya) is 40% complete, and about 80% taking into \nconsideration bilateral symmetry.  Lucy walked upright and bipedally, just \nlike humans, and the two share a remarkably similar dental pattern.  Her\ncranial morphology is unlike humans or modern apes.  There are hundreds of \nother specimens of this and other species, of which only some are *partially* \nreconstructed.  They exist Bill.  You can touch them, feel them, hold them.  \nBut forget hominids.  The earth, the universe, the cultural record all look and \ntest out as ancient indeed.  They are not reconstructions.  Has God has tricked\nus here too?  It won't go away, Bill.\n  \n\n>\n>|> \n>|> I doubt any of us will meet a man like this.  But, Bill, if your version of all\n>|> this is absolutely correct, I'm still no worried about my salvation.  I'll\n>|> probaby make it (I don't steal, murder, covet, etc, and I like to help other\n>|> people).  All I did was use the reason and intellect your god provided. \n>|> He or she - benevolent and loving - will understand my dilemma, don't you\n>|> think? \n>           Good deeds do not justify a person in God's sight.\n>           An atonement (Jesus) is needed to atone for sin.\n\nSo *you* and other fundamentalists say.  What about the billions who don't \nsay so?  Beware of people who say they have the truth, Bill, and reconsider\neach time you think you do.\n\n>|> \n>|> >  Science and\n>|> >  the Bible are not in contradiction.  God can supercede the scientific\n>|> >  \"laws\" as man understands them.  Creation is a good example.  God has the\n>|> >  power to create something out of nothing, order out of chaos.\n>|> \n>|> Haven't been on t.o. long, but I have a feeling, Bill, that the veterans will\n>|> agree with you here.  No contradiciton, and god *can* do anything at will.  So,\n>|> what's the beef? (or more properly, \"where's\")\n>\n>     My point: God is the creator.  Look's like we agree.\n\nThat was not your point, Bill.  Your point above was God *has* the power ....\nScientists generally agree with that.  That's a far cry from saying God did.\nPlease attempt to understand your own posts.\n \n>|> \n>|> >    If the title of the book you mentioned has anything to do with the \n>|> >    substance of the book, it must be a real laugher.  Of course Jesus existed,\n>|> >    and there are volumes of evidence to back it up.  I can give many if you\n>|> >    are interested.\n>|> \n>|> Its not a laugher, Bill.  Its a scholarly book that many happen to disagree\n>|> with.  I am definitely (and seriously) interested in confirmation.  I know of\n>|> the bible, inferences therefrom (e.g., prophecies), apocrypha, the Koran and\n>|> others.  What I am interested is independent evidence.  Do you have any?  I\n>|> know of Josephus, but this is almost certainly an insertion.  Also I know of a\n>|> few Roman documents (e.g., Pliny), but these deal only with early Christians.\n>|> Do you have any independent evidence?  I am most interested.  Please Email or \n>|> post.  Thanks, and best regards.\n>\n>     I'll send you some info via e-mail.\n>     Regards, Bill.\n\nI have your info, and I have replied - several days ago.  Hope you have it.  \nSomehow your post above appeared at my server only today.\n\n\nRich Fox, Anthro, Usouthdakota\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6993, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: Davidians and compassion\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 18\n\n\nIn article <f2dutxH@quack.kfu.com>, pharvey@quack.kfu.com (Paul Harvey) writes:\n|> In article <1993Apr20.144825.756@ra.royalroads.ca> \n|> mlee@post.RoyalRoads.ca (Malcolm Lee) writes:\n|> >If one does not follow the teachings of Christ, he is NOT Christian.  \n|> >Too easy?  \n|> \n|> That would exclude most self-proclaimed \"Christians.\" \n|> Do you follow the Ten Commandments?\n\nAs a matter of fact, yes I do or at least I strive to.  I will not\nbe so proud as to boast that my faith is 100%.  I am still human\nand imperfect and therefore, liable to sin.  Thankfully, there is\nopportunity for repentence and forgiveness.\n\nGod be with you,\n\nMalcolm Lee  :)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6994, "properties": {"category": "misc.forsale", "text": "From: drmsr@cislabs.pitt.edu (Marc S Rosenthal)\nSubject: CASIO B.O.S.S. For Sale\nDistribution: na\nOrganization: University of Pittsburgh\nLines: 8\n\n\nI have a CASIO B.O.S.S. SF-9500 Digital Dairy/organizer for sale.\nThe unit has 64 kb with the expansion card slot.  Very good condition.\nAsking $110.00 plus shipping.\n\nMarc\ndrmsr+@pitt.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6995, "properties": {"category": "comp.windows.x", "text": "From: mbheprg@PROBLEM_WITH_INEWS_GATEWAY_FILE (Raju Gurung)\nSubject: Re: Converting contents of X-window to color postscript\nOrganization: Electrical Engineering Dept Manchester University\nLines: 22\nX-Newsreader: TIN [version 1.1 PL8]\n\nJeff Haferman (haferman@icaen.uiowa.edu) wrote:\n> Can somebody point me to source code for dumping the contents of\n> an X-window into a color postscript file?  I have written\n> an app which brings up an X-window, and I want (at the click\n> of the mouse) to dump the window into a postscript file.\n\n\n> Thanks.\n\n\n> Jeff Haferman                            internet: haferman@icaen.uiowa.edu\n> Department of Mechanical Engineering     DoD 0186  BMWMOA 44469  AMA 460140\n> The University of Iowa\n> Iowa City, IA  52242                                 '76 R90S\n\nI use xwd and xwd2ps. To do it from within a program I use\nxwd -id xxxxx where xxxxx is the window id obtained from XtWindow(widget).\n--\n-----------------------------------------------------------------------\n| Raju Gurung, I.T. 109, I.T. Building, Dept. of Electrical Eng.,     | \n| University of Manchester, Oxford Rd, Manchester, U.K.               |\n-----------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6996, "properties": {"category": "talk.politics.guns", "text": "Organization: Stanford Linear Accelerator Center\nFrom: <MGB@SLACVM.SLAC.STANFORD.EDU>\nSubject: Re: Cost/Benefit Analysis (was FBI Director's Statement...)\n <1993Apr20.212028.17463@twisto.eng.hou.compaq.com>\n <1r3dvnINNr29@senator-bedfellow.MIT.EDU>\nLines: 6\n\nHas anyone noticed or commented on the fact that so many of those who\nwere willing, nay demanding, that we wait forever for Mr Hussein and\nIraq, that we use tremendously costly \"sanctions\", to avoid a loss\nof life, are now at the fore front of those clammoring that we should\nhave smashed those \"religious radicals\" and we were wasting money allowing\nthis stand off to go on  ?  How the worm turns when the sect changes.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6997, "properties": {"category": "sci.electronics", "text": "From: mcole@spock (COLE)\nSubject: 8051 Microcontroller\nOrganization: New Mexico State University\nLines: 3\nNNTP-Posting-Host: spock.nmsu.edu\n\nI would like to experiment with the INTEL 8051 family.  Does anyone out  \nthere know of any good FTP sites that might have compiliers, assemblers,  \netc.?\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6998, "properties": {"category": "sci.crypt", "text": "From: rogue@ccs.northeastern.edu (Free Radical)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: damon.ccs.northeastern.edu\nOrganization: College of CS, Northeastern U\nDistribution: alt\nLines: 21\n\nIn article <Apr18.194927.17048@yuma.ACNS.ColoState.EDU>\nholland@CS.ColoState.EDU (douglas craig holland) writes: \n[...]\n>\tWith E-Mail, if they can't break your PGP encryption, they'll just\n>call up one of their TEMPEST trucks and read the electromagnetic emmisions\n>from your computer or terminal.  Note that measures to protect yourself from\n>TEMPEST surveillance are still classified, as far as I know.\n\nI don't know about classified, but I do seem to remember that unless\nyou're authorized by the Govt, it's illegal to TEMPEST-shield your\nequipment.  Besides, effective TEMPEST-shielding is much more\ndifficult than you might think (hi Jim!).\n\n\tRA\n\nrogue@cs.neu.edu (Rogue Agent/SoD!)\n-----------------------------------\nThe NSA is now funding research not only in cryptography, but in all areas\nof advanced mathematics. If you'd like a circular describing these new\nresearch opportunities, just pick up your phone, call your mother, and\nask for one.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 6999, "properties": {"category": "sci.electronics", "text": "From: mpaul@unl.edu (marxhausen paul)\nSubject: Re: Whats wrong with my cordlessphone?\nOrganization: University of Nebraska--Lincoln\t\nLines: 8\nDistribution: world\nNNTP-Posting-Host: unlinfo.unl.edu\n\nI've also found that the electronic starters on these \"instant-on\" \ncompact fluourescent lamp fixtures kick out interference that nukes\nmy cordless phone.  (I can hear it in my guitar amplifier, too...)\n--\npaul marxhausen .... ....... ............. ............ ............ .......... \n .. . .  . . . university of nebraska - lincoln .  . . .. . .  .. . . . . . . .\n .     .    .  .   .     .   .  .    .   .  .   .    .   .  grace .   .    .  . \n   .         .       .      .        .        .      .        .   happens .     \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 7000, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: Re: Is it good that Jesus died?\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 69\n\nJim Burhill writes:\n\n>Would you consider the word of an eye-witness (Peter) to testify to the\n>events surrounding Jesus' life?\n\n>No.  There are two problems here:\n\nBrian Kendig writes:\n\n>(1) Peter died two millenia ago.  The original letters he wrote have\n>long since decayed into dust.  If he were alive today and I could\n\nDo you question the existence of Alexander the Great, Tilgrath Pilisar III,\nNero, Caligula, Josephus, Cyrus the Great, Artexerxes?   Their documents\nhave decayed to dust too.  Brian, why another excuse? \n\n>(2) Even if Peter did witness the miracles of Jesus two millenia ago,\n>that doesn't mean that your deity is what the Bible says it is (God\n>might just be Satan, trying to convince everyone that he's a nice\n>guy), or even that your deity is still alive and active in the world\n>today.\n\nPeter wrote a bit of the Bible.  What Peter says about God is what\nthe Bible says.   \n\n\nConsider the Bible a court recording.  Over the period of thousands of\nyears, various people come up and testify of their experience with the\nliving God.  Up comes Abraham the wealthy rancher.  Up comes Moses,\nonce the high official of Egypt.  Up comes Elijah, a priest.  Up comes\nDavid, a mere shepherd who became King.  Up comes the pagan King \nNebuchanezzar.  Up comes the pagan King of Persia, Cyrus.  Up comes\nNehemiah, cupbearer to the King of Persia.  Then Matthew, an IRS agent\ntakes the stand.  Up comes Luke, an M.D.  Then Paul a Jew who use\nto kill Christians for fun.  Up comes John, a 17 year old boy.  Up\ncomes Peter, a fishermen.  Up comes James, the brother of Jesus himself.\nUp comes hundreds of others.  You hear testimony from fishermen, IRS\nagents, priests, Kings.  The court hearing lasts thousands of years\nwith people coming up and testifying about the God who calls himself\n\"I am.\" \n\nWhile you are listening to all this stuff, you realize that\nKing David could have never known John, Solomon could have never known\nMatthew, Nehemiah could have never known Peter.  You realize that all these\npeople are independent witnesses, and so, you rule out collaboration.  Yet\nall of the witnesses tell of the same God.   Each testifier tells\nof his own experiences with the living God.  Each experience is\ndifferent, but each experience has enough cross-over to unmistakenly\nreveal that each one of these people is talking about the very same God.\nWhat Daniel did not know about God, the 3rd Highest Official of\nBabylon, God revealed to John 600 years later--but with a different\nperspective.  No two testimonies are identical.  Each testimony\ndares to venture off what is already known.  Yet each witness's\ntestimony, even though different from those prior, consistently\ndescribes harmoniously fitting facets of the character of the same God.  \n\nNow.  As we stare gazing at the computer, you got this seeming fanatic\non the other end of the net, saying, I know this God  \"I am\".  He has\nrevealed himself to me too.  He also calls himself Jesus (John 8:58).\nPlease believe me.  I am telling the truth.  It is wonderful to know him.\n\nAre you going to just pass off all this testimony as fictiousness? \nAre you going to call three thousand years worth of testimony from\nshepherds to IRS agents to royal officials to kings to computer\nprogrammers, fiction?  With a scoff of your keyboard, with near\ncomplete ignorance of the testimonies, are you going to say that\nthat is all complete hooey?   Would that not be the most audacious\ndisplay of arrogance?  Do you actually think you know better than\nKing Solomon, King David, or even Abraham Lincolnr?\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 7001, "properties": {"category": "sci.med", "text": "From: dsc@gemini.gsfc.nasa.gov (Doug S. Caprette)\nSubject: CS chemical agent\nOrganization: CDP VLBI\nLines: 10\n\n\n\nCan anyone provide information on CS chemical agent--the tear gas used recently\nin WACO.  Just what is it chemically, and what are its effects on the body?\n\ndsc@gemini.gsfc.nasa.gov  \n |  Regards,         |   Hughes STX                |    Code 926.9 GSFC        |\n |  Doug Caprette    |   Lanham, Maryland          |    Greenbelt, MD  20771   |\n -------------------------------------------------------------------------------\n\"A path is laid one stone at a time\" -- The Giant\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 7002, "properties": {"category": "comp.windows.x", "text": "From: smd@iao.ford.com (Steve Dahmen)\nSubject: Changing colors on a label - HELP\nOrganization: Ford Motor Company -- standard disclaimers apply\nLines: 21\nDistribution: world\nReply-To: smd@iao.ford.com (Steve Dahmen)\nNNTP-Posting-Host: ope001.iao.ford.com\n\n\nI have a toggleButton widget (yes widget) and I have a routine\nwhich changes the color of the foreground and background of the\nlabel.  Well, the background changes alright, but the label\ntext does not redraw itself.\n\nI am guessing that I have to force it to redraw with an\nXExposeEvent sent to it via XSendEvent.  Is this the best\nway to get the text up again?  I can't seeem to get\nXSEndEvent to work right.... if this is a good approach,\nmight anyone have an example lying around to show me how to\ndo this?  I've RTFM all evening and did not find a decent\nexample.\n\nPS I keep getting Segmentation Faults in XSEndEvent, tho all\nthe values are as expected.\n\nThanks in Advance\n\nStephen M. Dahmen\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 7003, "properties": {"category": "comp.windows.x", "text": "From: gerard@dps.co.UK (Gerard O'Driscoll)\nSubject: Re: XWindows always opaque\nOrganization: The Internet\nLines: 16\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\n\nhess@swt1.informatik.uni-hamburg.de writes:\n\n>> I wonder if it is possible for a parent window to paint over the area of\n>> its childs. If it is not, then how could it be possible to implement a \n>> rubberband across multiple xwindows to select the objects that are\n>> displayed one in each window?\n\nUse a GC with the subwindow_mode attribute set to IncludeInferiors. The\ndefault is ClipByChildren. However, beware if any of the children are of\na different depth to the parent; the semantics of this are undefined by the\nprotocol.\n\n \tGerard O'Driscoll (gerard.odriscoll@dps.co.uk)\n \tDu Pont Pixel Systems Ltd.\n \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 7004, "properties": {"category": "alt.atheism", "text": "Subject: Omnipotence (was Re: Speculations)\nFrom: jbrown@batman.bmd.trw.com\nLines: 55\n\nIn article <2942949719.2.p00261@psilink.com>, \"Robert Knowles\" <p00261@psilink.com> writes:\n>>DATE:   Fri, 2 Apr 1993 23:02:22 -0500\n>>FROM:   Nanci Ann Miller <nm0w+@andrew.cmu.edu>\n>>\n>>\n>>> > 3. Can god uncreate itself?\n>>> \n>>> No.  For if He did, He would violate His own nature which He cannot do.\n>>> It is God's nature to Exist.  He is, after all, the \"I AM\" which is\n>>> a statement of His inherent Existence.  He is existence itself.\n>>> Existence cannot \"not-exist\".\n>>\n>>Then, as mentioned above, he must not be very omnipotent.\n>>\n\nWhat do you mean by omnipotent here?  Do you mean by \"omnipotent\"\nthat God should be able to do anything/everything?  This creates\na self-contradictory definition of omnipotence which is effectively\nuseless.\n\nTo be descriptive, omnipotence must mean \"being all-powerful\" and\nnot \"being able to do anything/everything\".\n\nLet me illustrate by analogy.\nSuppose the United States were the only nuclear power on earth.  Suppose\nfurther that the US military could not effectively be countered by any\nnation or group of nations.  The US has the power to go into any country\nat any time for any reason to straighten things out as the leaders of the\nUS see fit.  The US would be militarily \"omnipotent\".\n\nBut suppose further that the US holds to a doctrine/philosophy of not\ninterfering in the internal affairs of any nation, such as the current\ncivil war in the former Yugoslavian states.\n\nTechnically (in this scenario) the US would have the power to \nunilaterally go into Yugoslavia and straighten out the mess.  But\neffectively the US could not intervene without violating its own policy \nof non-interference.  If the policy of non-interference were held to\nstrongly enough, then there would never be a question that it would\never be violated.  Effectively, the US would be limited in what it\ncould actually do, although it had the power to do \"whatever it wanted\".\nThe US would simply \"never want to interfere\" for such an idea would\nbe beyond the consideration of its leaders given such an inviolate\nnon-interference policy.\n\nGod is effectively limited in the same sense.  He is all powerful, but\nHe cannot use His power in a way that would violate the essence of what\nHe, Himself is.\n\nI hope this helps to clear up some of the misunderstanding concerning\nomnipotence.\n\nRegards,\n\nJim B.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.329+0000", "event": "documents", "entityId": 7005, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Israeli Terrorism\nOrganization: The Department of Redundancy Department\nLines: 29\n\nIn article <1993Apr23.225710.10438@Virginia.EDU> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n>\tWhat is a shame is that in Austria, daily reports of\n>the inhuman acts commited by Israeli soldiers [...]\n\nIt wasn't all that long ago that the acts of Israeli soldiers were\ndescribed as \"superhuman\".  Now, they are \"inhuman\".  Did the Israelis\nchange so radically so quickly or have reporting attitudes changed?\n\n> and the blessing\n>received from the Government makes some of the Holocaust guilt\n>go away. After all, look how the Jews are treating other races\n>when they got power. \n\nWhen the Jews were powerless, they did what they could to help others,\nwhich was obviously quite limited.  Later, liberated American Jews\nwere on the forefront of the civil-rights movement.  The Jewish\ngovernment of Israel rescued Jews ranging in skin color from White\nRussian to Brown Yemenite to Black Ethiopian.  Please, Andi, tell us\n\"how the Jews are treating other races when they got power.\"\n\n>It is unfortunate.\n\nYour ignorance and bias are indeed unfortunate.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7006, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: carlf@panix.com (Carl Fink)\nSubject: Re: Panasonic KX-P1091i Driver?\nOrganization: PANIX Public Access Unix, NYC\nLines: 13\n\nIn <1993Apr16.040946.26896@netnews.noc.drexel.edu> brzyckmj@dunx1.ocs.drexel.edu (Mike) writes:\n\n>Does anyone out there know if there are print drivers for Windows for the\n>Panasonic KX-P1091i 9-pin dot matrix printer?\n\n  I've been told that Panasonic has uploaded some to Compu$erve, but I\ndon't have a CIS account.  I just use the Epson FX-80 driver myself,\nand it comes out very pretty (if very slowly) on my 1080i.\n-- \nCarl Fink          carlf@panix.com, C.FINK4(GEnie), or CF427620I@LIUVAX.BITNET\n  \"Facts are stubborn things; and whatever may be our wishes, our\n  inclinations, or the dictates of our passions, they cannot alter\n  the state of facts and evidence\"     --      John Adams\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7007, "properties": {"category": "misc.forsale", "text": "From: johnr@cactus.org (John Hughes Rost)\nSubject: Voice Processing for IBM PCs\nKeywords: VOICE PROCESSING HARDWARE SOFTWARE\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nDistribution: tx\nLines: 29\n\n SALE: VOICE PROCESSING SYSTEM for IBM compatibles\n\n Item:  DIALOGIC/41B Multi-line Voice Processing System\n \n Description: The DIALOG/41B is a PC XT/AT board that provides\n    processing functions and call progress analysis for four \n    independent phone lines simultaneously.  The D/41B features \n    the ability to record, playback, autoanswer, auto-dial,\n    detect and generate DTMF tones, and perform telephone\n    mamagement functions.\n\n    With this card you can make your computer talk on\n    4 phone lines simultaneously.  You can design your own\n    ANSWERING SYSTEM or by one already programmed.  You can build\n    your own DIGITAL PAGER business and open up a business for \n    VOICE MAILBOXES.\n    \n    Comes complete with manuals and demo software and programming\n    libraries for C (UNIX and DOS). \n    \n\n  PRICE: LIST     $1395.00\n         YOU PAY   $795.00 \n\n  For more info send mail!\n\n           Contact: John Rost\n           (512) 343-0332 <leave message>\n           johnr@cactus.org <send mail>\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7008, "properties": {"category": "comp.windows.x", "text": "From: welch@xcf.Berkeley.EDU (Sean N. Welch)\nSubject: Re: Trouble compiling X11R5 on SunOS_4.1.3\nOrganization: Experimental Computing Facility, U.C. Berkeley\nLines: 35\nNNTP-Posting-Host: xcf.berkeley.edu\n\nIn article <schneck.735153129@Physik.TU-Muenchen.DE> schneck@Physik.TU-Muenchen.DE (Bernhard Schneck) writes:\n>nemo@aguirre.dia.fi.upm.es (Francisco J. Ballesteros) writes:\n>\n>>>   \t   The problem occurs during the initial \"make World\".  When\n>>>      it gets up to compiling the standard X clients, it can't seem to find\n>>>      some of the libraries.  Right now we highly suspect the program \"ld\"\n>>>      which was updated for 4_1_3.\n>>>   \n>\n>>    Yip, we had the same problem; the only fix we found was to link static\n>>some of the clients, ( btw, we used cc). :-(.\n>\n>Or use a SunOS 4.1.1 ld.\n\nOr read fixes 9, 10, and 11 to the MIT distribution.  This is a known \nproblem - just apply those fixes and set SunPost411FCSLd to YES and \nOSTeenyVersion in mit/config/sun.cf to 3.\n\nIn fix-09:\n|If you are running SunOS 4.1.1 and you apply Sun's ld patch 100170-6,\n|then you will need to edit your site.def and add this line to the\n|AfterVendorCF section:\n|\n|#define SunPost411FCSLd   YES\n\nIn fix-10:\n|If you are running SunOS 4.1.2, change OSTeenyVersion in mit/config/sun.cf to\n|have a value of 2.\n\nIn fix-11:\n|Brief notes on what this patch fixes:\n|\n|config: make on SunOS 4.1.2 fails unless tree previously built in\n\nSean Welch\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7009, "properties": {"category": "rec.sport.hockey", "text": "Organization: Penn State University\nFrom: Robbie Po <RAP115@psuvm.psu.edu>\nSubject: Re: Devils and Islanders tiebreaker????\nLines: 14\n\nIn article <C5LDI2.77u@odin.corp.sgi.com>, enolan@sharkbite.esd.sgi.com (Ed\nNolan) says:\n>If the Islanders beat the Devils tonight, they would finish with\n>identical records.  Who's the lucky team that gets to face the Penguins\n>in the opening round?   Also, can somebody list the rules for breaking\n>ties.\n      As I recall, the Penguins and Devils tied for third place last year\nwith identical records, as well.  Poor Devils -- they always get screwed.\nYet, they should put a scare into Pittsburgh.  They always do!  Pens in 7.\n-------------------------------------------------------------------------\n** Robbie Po **          PGH PENGUINS!!!    \"It won't be easy, but it\nContact for the '93-'94  '91 STANLEY CUP    will have greater rewards.\nPenn State Lady Lions    '92 CHAMPIONS      Mountains and Valleys are\nrap115@psuvm.psu.edu     11 STRAIGHT WINS!  better than nothing at all!\"\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7010, "properties": {"category": "sci.electronics", "text": "From: jimmy@fireflare (Jimmy Mosquera)\nSubject: Re: help - how to construct home-built battery for 3rd grade sci report\nKeywords: 3rd grade science report\nNntp-Posting-Host: fireflare\nOrganization: Jet Propulsion Laboratory (NASA)\nDistribution: usa\nLines: 22\n\nIn article <C5GE69.Lo0@athena.cs.uga.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>Almost any two dissimilar metals in almost any electrically conductive\n>liquid.\n>\n>Example: Copper and zinc in Coca-Cola...\n>\n>copper and galvanized steel nails in a lemon...\n>\n>Don't expect much power out, but it should be easily detectable\n>with a voltmeter.\n>\n>-- \n>:-  Michael A. Covington, Associate Research Scientist        :    *****\n>:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n>:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n>:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n\n\n\nA copper and a zinc rod in a potato also work nice.\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7011, "properties": {"category": "talk.religion.misc", "text": "From: Whitten@Fwva.Saic.Com (David Whitten)\nSubject: Re: Merlin, Mithras and Magick\nOrganization: Science Applications Int'l, Corp. - Computer systems operation\nLines: 20\n\ncaldwell@facman.ohsu.edu (Larry Caldwell) writes:\n>There evidently was a feast of bread and wine associated with Mithras.  I\n>have often wondered if Yeshua intentionally introduced this ritual to\n>expand the appeal of his religion, or if it was appropriated by later\n>worshipers.\n>\nYou could argue that if you wanted, but I think a more reasonable \nargument would point out the fact that the remembrance feast was\nvery similar to the Pesach (Passover) meal during Seder, a very\nJewish ritual.\n \nThe fact that there appears to be an abuse in the early Church of\npeople eating too much (a very real concern with some Passover meals)\nand not treating the meal with respect, shows the simplifying of the\nritual to just bread and wine to be a way of dealing with the\ninherent problems of people's human nature, and trying to keep the\nessentials of the remembrance aspects.\n \nDavid (whitten@fwva.saic.com) US:(619)535-7764 [I don't speak as a company rep.]\n \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7012, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: In Nazi Germany, Armenians were considered to be an Aryan race and...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 41\n\nIn article <2BAC23FF.25215@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n\n>There was no such letter in the Chronicle on that date, or at any other time.\n\nIs this a figment of your imagination? Here is another one:\n\n\n Source: \"Mitteilungsblatt, Berlin, December 1939, Nr. 2 and 5-6\"\n\n Yet another historical fact: a fact that for years has been deliberately \n forgotten, concealed, and wiped from memory - the fact of Armenian-Nazi \n collaboration.\n\n A magazine called Mitteilungsblatt der Deutsch-Armenischen Gesselschaft\n is the clearest and most definite proof of this collaboration. The \n magazine was first published in Berlin in 1938 during Nazi rule of Germany\n and continued publication until the end of 1944. Even the name of the\n magazine, which implies a declaration of Armenian-Nazi cooperation,\n is attention-getting.\n\n This magazine, every issue of which proves the collaboration, is historically\n important as documentary evidence. It is a heap of writing that should be\n an admonition to world opinion and to all mankind. \n\n In Nazi Germany, Armenians were considered to be an Aryan race and certain\n political, economic, and social rights were thus granted to them. They \n occupied positions in public service and were partners in Nazi practices.\n The whole world of course knows what awaited those who were not considered \n \"Aryan\" and what befell them.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7013, "properties": {"category": "sci.space", "text": "From: cchung@sneezy.phy.duke.edu (Charles Chung)\nSubject: Re: What if the USSR had reached the Moon first?\nLines: 24\nNntp-Posting-Host: bashful.phy.duke.edu\n\nIn article <1993Apr20.152819.28186@ke4zv.uucp> gary@ke4zv.uucp (Gary  \nCoffman) writes:\n> >Why do you think at least a couple centuries before there will\n> >be significant commerical activity on the Moon?\n> \n> Wishful thinking mostly.\n[Lots of stuff about how the commerical moonbase=fantasyland]\n\nThen what do you believe will finally motivate people to leave the  \nearth?  I'm not trying to flame you.  I just want to know where you  \nstand.\n\n-Chuck\n---\n*******************************************************************\n\n\tChuck Chung\t\t\t\t(919) 660-2539 (O)\n\tDuke University Dept. of Physics\t(919) 684-1517 (H)\n\tDurham, N.C.      27706\t\t\tcchung@phy.duke.edu\n\t\n\t\"If pro is the opposite of con, \n\t\tthen what is the opposite of progress?\"\n\n*******************************************************************\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7014, "properties": {"category": "misc.forsale", "text": "From: robm@ataraxia.Berkeley.EDU (Rob McNicholas)\nSubject: FOR SALE: 1984 Toyota Pickup - $2800\nOrganization: Technical and Computing Services, U.C. Berkeley, Berkeley, CA\nLines: 26\nDistribution: ca\nNNTP-Posting-Host: ataraxia.berkeley.edu\n\n\t    PLEASE DO NOT RESPOND DIRECTLY TO THIS ACCOUNT\n\nFOR SALE:\n\nBlue 1984 Toyota pickup truck with white blazer topper, AM/FM/Casette,\nA/C, cruise control.  Great for camping trips.\n\nNew: brakes, master brake cylinder, Michelin tires, shocks,\nmaintenance free battery, clutch, windshield wipers.\n\nWell maintained with all Toyota parts (all repairs done at the\ndealers.)  Very little rust, body in good shape.  \n\n126K miles\n\nAsking $2800.  If interested, please contact:\n\n   Ursula Fritsch\n   umf@gene.com\n   (415)-347-6813\n\n\t    PLEASE DO NOT RESPOND DIRECTLY TO THIS ACCOUNT\n\n--\nRob McNicholas\t\t  Technical & Computing Services, EE/CS, U.C. Berkeley\nrobm@eecs.berkeley.edu\t  Voice: 510/642-8633  FAX: 510/643-7846\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7015, "properties": {"category": "misc.forsale", "text": "From: leopold@jekyll.ucsf.edu (John Olson)\nSubject: Re: Is itproper net etiquette to advertise a company's junk mail list?\nDistribution: usa\nOrganization: University of California, San Francisco, Dept of Lab Med\nLines: 6\n\nnot only is it improper etiquette AND illegal but the people who\nare responsible for junk mailings are *EVIL*!!!!\n\n\n\nahhh...ive always wanted to get that off my chest.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7016, "properties": {"category": "comp.graphics", "text": "From: rob@rjck.UUCP (Robert J.C. Kyanko)\nSubject: Re: Weitek P9000 ?\nDistribution: world\nOrganization: Neptune Software Inc\nLines: 23\n\nabraxis@iastate.edu writes in article <abraxis.734340159@class1.iastate.edu>:\n> \n> Anyone know about the Weitek P9000 graphics chip?\n> Micron is selling it with their systems They rank them at 50 winmarks...\n> Any info would help...\n> thanks.\n\nIt's supposedly a high-performance chip based upon workstation graphics\naccelerators.  It's quite fast (I have 7), but as usual with new boards/chips\nthe drivers are buggy for Windows.  As far as Winmarks go, it depends upon\nthe version.  I think I got 42M winmarks with version 3.11.  2.5 yielded the\n50+ number.  I've also benchmarked this with Wintach at over 65 (from memory\nas well).\n\nAs far as the low-level stuff goes, it looks pretty nice.  It's got this\nquadrilateral fill command that requires just the four points.\n\nIt's very fast, but beware of buggy drivers, and otherwise no non-windows\nsupport.\n\n--\nI am not responsible for anything I do or say -- I'm just an opinion.\n             Robert J.C. Kyanko (rob@rjck.UUCP)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7017, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 24\n\nIn article <C518B1.AMF@magpie.linknet.com> manes@magpie.linknet.com (Steve Manes) writes:\n>: >: > Last year the US suffered almost 10,000 wrongful or accidental\n>: >: > deaths by handguns alone (FBI statistics).  In the same year, the UK\n>: >: > suffered 35 such deaths (Scotland Yard statistics).  The population\n>: >: > of the UK is about 1/5 that of the US (10,000 / (35 * 5)).  Weighted\n>: >: > for population, the US has 57x as many handgun-related deaths as the\n>: >: > UK.  And, no, the Brits don't make up for this by murdering 57x as\n>: >: > many people with baseball bats.\n\n>: If you examine the figures, they do. Stabbing is favourite, closely\n>: followed by striking, punching, kicking. Many more people are burnt to\n>: death in Britain as are shot to death. Take at look and you'll see for\n>: yourself. \n\n>It means that very few people are shot to death in Great Britain.\n\nAnd I'm sure that is a great comfort to the widows and children of\nthose stabbed, beaten and burned to death. The real question is,\n\"Did the crime rate in England go down, after they enacted \ngun control laws?\" If you look at the rates before and after their\nfirst such law in 1920, you will see no effect.\n\n                                          Frank Crary\n                                          CU Boulder\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7018, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Vincent.Iannelli@launchpad.unc.edu (Vincent Iannelli)\nSubject: Accelerators for SE\nNntp-Posting-Host: lambada.oit.unc.edu\nOrganization: University of North Carolina Extended Bulletin Board Service\nLines: 8\n\nThe is a 3-4 week backorder, but they are shipping.\n\n\n--\n   The opinions expressed are not necessarily those of the University of\n     North Carolina at Chapel Hill, the Campus Office for Information\n        Technology, or the Experimental Bulletin Board Service.\n           internet:  laUNChpad.unc.edu or 152.2.22.80\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7019, "properties": {"category": "talk.politics.misc", "text": "From: dos@major.panix.com (Dave O'Shea)\nSubject: Re: If Drugs Should Be Legalized, How?  (was Good Neighbor...)\nOrganization: Department of Redundancy Department\nLines: 22\n\nwdstarr@athena.mit.edu (William December Starr) writes:\n\n> > However, legalizing it and just sticking some drugs in gas stations to\n> > be bought like cigarettes is just plain silly.  Plus, I have never\n> > heard of a recommended dosage for drugs like crack, ecstasy, chrystal\n> > meth and LSD.  The 60 Minute Report said it worked with \"cocaine\"\n> > cigarettes, pot and heroin.\n> \n> Or, the government could adopt the radical and probably unAmerican idea\n> that citizens are free to live their lives as they wish, and simply\n> decriminalize cocaine, marijuana, heroin, LSD, etc.  Please explain why\n> the idea of allowing recreational drugs to be \"bought like cigarettes\"\n> is \"just plain silly.\"  After all, it works just fine for nicotine...\n\nI'm all in favor of drug legalization, but I do see some problems with\nit. My hope is that people disposed to doing so would simply overdose\nquickly, and be done with it, before making a mess of thisgs.\n\n--\nLet me get this straight: Medical treatment costs too much and is\ninefficient, so we're going to let government make it better?\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7020, "properties": {"category": "misc.forsale", "text": "From: jimd@psg.com (Jim Dorman)\nSubject: Spring Cleaning Sale!\nOrganization: Pacific Systems Group, Portland Oregon US\nDistribution: na\nLines: 71\n\n\nTime once again to clean out the ol' closet.  Some stuff is up for offers, some\nisn't.  Please read carefully.\n\n\nIn the MAKE OFFER department:\n\n\tWordPerfect 5.0, upgrade copy.  Includes all disks and all upgrade\n\tmanuals.  Best offer.\n\n\tBalance of Power, 1992 edition, for the Amiga.  With manual and reg.\n\tcard.  Best offer.\n\n\nIn the FOR SALE department:\n\n\tTechnics model 715 auto-reverse open-reel STEREO tape deck.  Because\n\tit's auto-reverse, this deck records onto tape just like a cassette\n\tdeck does, so it's not very good for splice-type editing.  However,\n\tI have used it effectively in \"tape studio\" applications for mastering,\n\tand it works great.  3.75 and 7.5 ips speeds, supports up to 7\" reels.\n\tDual lighted VU meters with record indicators.  Full auto-reverse\n\tcapable (and the mechanism works, too!).  Adjustable sound on sound,\n\tand socket for remote control (I don't know where you'd find one, but\n\tthey used to make 'em), plus a 110VAC unswitched outlet.  This unit\n\tis in excellent condition and I have had it rebuilt once since I got\n\tit--works perfectly.\n\n\tPrice:  $225.00 or best offer, or possible trade (see below).\n\n\n\tPanasonic KX-P1624 printer.  24-pin with 360x360dpi resolution in both\n\ttext and graphics modes.  Warranty cards, manuals, all the usual stuff\n\tyou expect when buying like-new merchandise.  I'm selling it because I\n\tnow have a better printer.  This is the wide carriage version of the\n\tKX-P1124, by the way.  Test prints are available upon request.\n\n\tPrice:  $250.00 o.b.o. or trade.\n\n\n\tExcalibur custom pool cue.  19 oz., 13 mm, brass joint, Irish linen\n\twrap, could use a new tip but will hold up for a while.  I've got too\n\tmany cues as it is, and don't need this one.  Hits nicely, is very\n\tstraight and in excellent condition.\n\n\tPrice:  $125.00 o.b.o. or trade.  Imperial hard case (1 butt/1 shaft)\n\tavailable for an additional $40.00.\n\n\nTRADES:  I need the following things, and I have no cash of my own right now,\nso if you want to trade, it needs to be straight-across.   The list:\n\n\tAmiga ROM upgrade to at LEAST 2.04, preferably 2.1+, with appropriate\n\tDOS and Workbench.\n\n\t1 meg Agnus chip for the Amiga.\n\n\tAmiga hard drive and controller (preferably SCSI).\n\n\tIBM-compatible hard drive (and controller if not MFM).  This one's \n\ttouchy, as I have a full-height and don't have room for more unless\n\tI swap out--needs to be above 100M, and I will consider trading a\n\tgood ST-4096 in the deal.\n\n\tIntel 9600EX or 14.4EX or similar EXTERNAL high-speed modem.\n\n\nThis is not a complete list, but it's close.  If you've got something way off\nthe track of this list, it's probably not going to interest me at this point.\nEmail responses, please.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7021, "properties": {"category": "talk.politics.mideast", "text": "From: iacovou@thufir.cs.umn.edu (Neophytos Iacovou)\nSubject: Re: If You Feed Armenians Dirt -- You Will Bite Dust!\nNntp-Posting-Host: thufir.cs.umn.edu\nOrganization: University of Minnesota\nLines: 34\n\nIn <1993Apr5.194120.7010@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n\n>David Davidian says: Turkish officials came to Armenia last September and \n>Armenia given assurances the Armenian nuclear plant would stay shut. Turkey\n>promised Armenia electricity, and in the middle of December 1992, Turkey said\n>sorry we were only joking. Armenia froze this past winter -- 30,000 Armenians\n>lost their lives. Turkey claims it allowed \"humanitarian\" aid to enter Armenia\n>through its border with Turkey. What did Turkey do, it replaced the high \n>quality grain from Europe with \"crap\" from Turkey, mixed in dirt, and let that \n>garbage through to Armenia -- 30,000 Armenians lost their lives!\n\n  This is the latest from UPI \n\n     Foreign Ministry spokesman Ferhat Ataman told journalists Turkey was\n     closing its air space to all flights to and from Armenia and would\n     prevent humanitarian aid from reaching the republic overland across\n     Turkish territory.\n\n  \n   Historically even the most uncivilized of peoples have exhibited \n   signs of compassion by allowing humanitarian aid to reach civilian\n   populations. Even the Nazis did this much.\n\n   It seems as though from now on Turkey will publicly pronounce \n   themselves 'hypocrites' should they choose to continue their\n   condemnation of the Serbians.\n\n\n\n--\n--------------------------------------------------------------------------------\nNeophytos Iacovou                                \nUniversity of Minnesota                     email:  iacovou@cs.umn.edu \nComputer Science Department                         ...!rutgers!umn-cs!iacovou\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7022, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jbuddenberg@vax.cns.muskingum.edu (JIMMY BUDDENBERG)\nSubject: should I get VESA controller card?\nOrganization: Muskingum College\nLines: 9\n\n\nI have a 486DX 25mhz with local bus.  Would I see much of an increase in\nspeed in my drives if I got a VESA IDE controller card?  I need advice!\n\n\n-- \nJimmy Buddenberg       INTERNET:  jbuddenberg@vax.cns.muskingum.edu\nMuskingum College \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7023, "properties": {"category": "sci.electronics", "text": "From: gerald.belton@ozonehole.com (Gerald Belton) \nSubject: Food Dehydrators\nDistribution: world\nOrganization: Ozone Online Operations, Inc. - New Orleans, LA\nReply-To: gerald.belton@ozonehole.com (Gerald Belton) \nLines: 39\n\n>Does anybody out there have one of those food dehydrators I've been seeing\n>all over late-night TV recently? I was wondering if they use forced air, hea\n>or both. If there's heat involved, anybody know what temperature they run at\n>My wife would like one and I'm not inclined to pay >$100.00 for a box, a fan\n>and a heater. Seems to me you should be able to throw a dehydrator together\n>for just a few bucks. Heck, the technology is only what? 1,000 years old?\n\nYou can learn how to build a deyhdrator very easily from the book, \"The\nHungry Hiker's Guide to Good Food,\" by Gretchen McHugh.  The heat source\nis a 100 watt light bulb.  Basically, it's a vertical wooden box with\nventilation holes in the top and bottom (lots of them, you want the air\nto flow).  The light bulb goes in the bottom, and wire cake racks are\nspaced every 6\" starting about 10\" above the bulb.\n\nOr, at a slightly higher cost in electricity, you can do what I do:  Use\nyour oven.  (NOTE - I do this in an electric oven; some gas ovens may\nnot have a low enough setting).  Put food to be dried on cookie tins or\nracks in the oven.  Set oven to 140 degrees (the lowest setting on my\noven - if yours goes down to 120 that's probably even better.)  Stick a\nwooden spoon or something across the front corner of the oven and close\nthe door on the spoon so that it stays open about an inch - this allows\nfor airflow.  Leave the stuff in the oven for 6 to 8 hours; check it\noften, since this dries it much faster than the dehydrator.  If you are\nusing cookie sheets instead of racks, turn the stuff over halfway\nthrough.\n\nIf you want more info, e-mail me since this isn't really the right sub\nfor this stuff.\n\ngerald.belton@ozonehole.com\n\n\n * SLMR 2.1 * I still miss my boss, but my aim is improving.\n                       \n----\nThe Ozone Hole BBS * A Private Bulletin Board Service * (504)891-3142\n3 Full Service Nodes * USRobotics 16.8K bps * 10 Gigs * 100,000 Files\nSKYDIVE New Orleans! * RIME Network Mail HUB * 500+ Usenet Newsgroups\nPlease route all questions or inquiries to:  postmaster@ozonehole.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7024, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wally@Auspex.COM (Wally Bass)\nSubject: Re: IDE vs SCSI\nOrganization: Auspex Systems, Santa Clara\nLines: 20\nNntp-Posting-Host: alpha1-e5.auspex.com\n\nIn article <1993Apr19.034517.12820@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca\n (Wayne Smith) writes:\n  [stuff deleted]\n>So the lowly low-density original PC FDD card used DMA and the PC-AT\n>HDD controller doesn't!?!?  That makes real sense.\n\nActually, it does make a reasonable amount of sense. Fixed disk\nsectors are buffered by the controller, and transferring them to\nmemory with a 'rep insw' (or whatever the instruction is called) is\nquite efficient (single instruction, goes as fast as the\ncontroller/cpu know how to use the bus). Since the 286 wasn't cached,\nthe bus is likely a critical resource relative to CPU performance, and\nit's possible that DMA bus interference would cause as much or more\nloss of CPU cycles (for 'computing') as does the 'rep insw' sequence.\n\nThe floppy, on the other hand, is not buffered, so that using the CPU\nfor floppy data transfer (as was done on the PC Jr, by the way) really\ndoes stink.\n\nWally Bass\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7025, "properties": {"category": "talk.politics.guns", "text": "From: irvine@uxh.cso.uiuc.edu (Brent Irvine)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: University of Illinois at Urbana-Champaign\nLines: 63\n\nIn article <93109.13404334AEJ7D@CMUVM.BITNET> <34AEJ7D@CMUVM.BITNET> writes:\n>I will be surprised if this post makes it past the censors,\n>but here goes:\n>\n>Monday, 19 April, 1993 13:30 EDT\n>\n>                    MURDER  MOST  FOUL!!\n>\n>CNN is reporting as I write this that the ATF has ignited all\n>the buildings of the Branch Dividian ranch near Waco, TX. The\n>lies from ATF say \"holes were made in the walls and 'non-lethal' tear\n>gas pumped in\". A few minutes after this started the whole thing went up.\n>ALL buildings are aflame. NO ONE HAS ESCAPED. I think it obvious that\n>the ATF used armored flame-thrower vehicles to pump in unlit\n>napalm, then let the wood stove inside ignite it.\n\nActually if 'a few minutes' translates into 6 hours, you have it\nright.  BUT you (and I guess your single-source news agency CNN)\nfailed to mention the Davidians pouring kerosene all over and lighting it in plain\nview.\n\n>THIS IS MURDER!\n\nWell, small-scale Jim Jones type suicide with fire instead of kool-aid.\n\n>\n>ATF MURDERERS!  BUTCHERS!!\n\nSorry, guy, you got it wrong.  ATF was pumping tear gas into the compound.\nThe Branch Davidians (going along with their apocolyptic faith) set their\nown compound on fire killing all but 9 or so.  No children survived.\n\n>THIS IS GENOCIDAL MASS-SLAUGHTER OF INNOCENT PEOPLE, INCLUDING CHILDREN!\n\nSelf-slaughter, anyway.  I pity the children who were to young to be able\nto make a conscious choice.\n\n>I have predicted this from the start, but God, it sickens me to see\n>it happen. I had hoped I was wrong. I had hoped that there was\n>still some shred of the America I grew up with, and loved, left\n>alive. I was wrong. The Nazis have won.\n\nYou are wrong.  Thank goodness.  I would suggest, however, that you take\na deep breath, and wait 30 minutes or so before posting.  Also make sure\nyour facts are correct before making your allegations(sp.).\n\n>I REPEAT, AS OF THIS TIME THERE ARE **NO  SURVIVORS**!\n\nYou repeated wrong.  There were 9.\n\n>God help us all.\n\nGod help the Branch Davidians.\n\n>PLEASE CROSSPOST -- DON'T LET THEM GET AWAY WITH THE SLAUGHTER OF THE CHILDREN!\n\nNO DON'T!!!!  THERE IS WAY TOO MUCH OF THIS CRAP BEING CROSSPOSTED ALL OVER\nCREATION AS IT IS!!!!!!\n\n-- \n<><><><><><><><><><> Personal opinions? Why,  <><><><><><><><><><><><><><><>\n<>  BRENT IRVINE  <> yes.  What did you think <> irvine@uxh.cso.uiuc.edu  <>\n<><><><><><><><><><> they were?.......        <><><><><><><><><><><><><><><>\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7026, "properties": {"category": "sci.space", "text": "From: pgf@srl02.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: Dreams and Degrees (was Re: Crazy? or just Imaginitive?)\nOrganization: Univ. of Southwestern Louisiana\nLines: 19\n\nhiggins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey) writes:\n\n...\n>Like others involved in sci.space, Mr. Adams shows symptoms of being a\n>fledgling member of the technoculture, and I think he's soaking it up\n>fast.  I was a young guy with dreams once, and they led me to get a\n>technical education to follow them up.  Too bad I wound up in an\n>assembly-line job stamping out identical neutrinos day after day...\n>(-:\n\nHow can you tell they're identical?\n\nYou got one of them \"Star Drek: The Next Syndication\" neutrino\nscanners?\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.330+0000", "event": "documents", "entityId": 7027, "properties": {"category": "rec.autos", "text": "From: brandt@cs.unc.edu (Andrew Brandt)\nSubject: Seeking good Alfa Romeo mechanic.\nOrganization: The University of North Carolina at Chapel Hill\nLines: 14\nNNTP-Posting-Host: axon.cs.unc.edu\nKeywords: alfa, romeo, spider, mechanic\n\nI am looking for recommendations for a good (great?) Alfa Romeo\nmechanic in South Jersey or Philadelphia or nearby.\n\nI have a '78 Alfa Spider that needs some engine, tranny, steering work\ndone.  The body is in quite good shape.  The car is awful in cold\nweather, won't start if below freezing (I know, I know, why drive a\nSpider if there's snow on the ground ...).  It has Bosch *mechanical*\nfuel injection that I am sure needs adjustment.\n\nAny opinions are welcome on what to look for or who to call.\n\nEmail or post (to rec.autos), I will summarize if people want.\n\nThx, Andy (brandt@cs.unc.edu)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7028, "properties": {"category": "talk.politics.misc", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 17\n\nIn article <C5L4rp.EBM@news.iastate.edu> jrbeach@iastate.edu (Jeffry R Beach) writes:\n>In article <1993Apr15.165139.6240@gordian.com> mike@gordian.com (Michael A. Thomas) writes:\n\n>>  From a pragmatic standpoint, there certainly is some justification\n>>if it is a vice people will commit anyway. Shall we criminalize\n>>alcohol again? If the re-legalization for alcohol were done from\n>\n>Making you look bad is too damn easy.  The vast social and historical\n>differences between alcohol and other drugs make this comparison\n>worthless.\n\nThis meaningless statement makes YOU look bad.\n\n\n-- \n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7029, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dpiaseck@jarthur.claremont.edu (Derek A. Piasecki)\nSubject: Re: Ami Pro 3.0 and PCTools compress?!? Doesn't like being moved?\nKeywords: Ami Pro 3.0 PCTools compress\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 13\n\n\nSorry about that - don't want to alarm anyone...\n\nI don't think there is any correlation between the crashes and PCTools.\nI reinstalled Ami Pro, and ran compress again, with no problems.\nI think problems may have been related to filling my disk until it had\n0 bytes (!) left while FTPing, although I would think it wouldn't\nmatter since Ami Pro wasn't running at the time, and I made space available\nimmediately anyways.\nBut, whatever, the cause, it is working now.\n\n\t\t\t\t-Derek\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7030, "properties": {"category": "rec.autos", "text": "From: sborders@nyx.cs.du.edu (Scott Borders)\nSubject: Clear coat woes . . .\nSummary: Any way to remove fine scratches in clear coat?\nKeywords: clear coat paint\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 27\n\nIs clear coat really worth it?  Yes, on the showroom floor, the cars\nhave this deep, lustrous shine that just can't be found on paint jobs\nthat aren't clear coated.  On the other hand, it seems that every clear\ncoated car that I've seen on the road (in a parking lot, etc.) has\nfine scratches throughout the paint job.  As does, alas, my 1992 Laser.\n\nSeveral weeks ago I had my car professionally polished and waxed.\nWhen I picked it up, it had that same showroom shine that I remember\nfrom a year ago when I bought it.  Several days ago I took my car\nto the dealership for some work.  As an added bonus, they washed my\ncar.  Unfortunately, whoever washed it either didn't get the roof\n(which is black, the rest of the car is red) completely clean before\nhe dried it, or he used a dirty towel.  Now my showroom shine is a\nhaze of fine scratches that aren't really visible until the light\nhits the roof at a particular angle.\n\nI am, to put it mildy, somewhat peeved about this.  Do I have any \nchance of getting the dealership to do something about this?\nMy guess is 'no'.  Is there any product on the market that provides\na solution to this problem?  Or am I faced with the prospect of\nhaving the car professionally polished again to hide the scratches?\nInformation, commiseration, and sympathy all greatly appreciated . . .\n\nScott \"the-dealership-will-never-wash-my-car-again\" Borders\nsborders@nyx.cs.du.edu\nborders_scott@tandem.com\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7031, "properties": {"category": "rec.motorcycles", "text": "From: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nSubject: Re: Bat-helmet.\nReply-To: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nDistribution: world\nOrganization: Computer Dynamics-Vancouver B.C.-(604)986-9937 (604)255-9937\nLines: 49\n\nCBD>From: Christopher Bradley Devlin <cd1i+@andrew.cmu.edu>\n\nCBD>>but it's nothing compared to the (ahem) unique helmet\nCBD>>design seen in the new Animated Series: it has a huge opening for his\nCBD>>mouth, topped by the world's tiniest eyeslits above the enormous mouth\nCBD>>opening. Batman's helmet probably cuts you down to about 12 degrees of\nCBD>>unrestricted vision. With a helmet like this, he might just be better\nCBD>>off with the leather cap/mask thingy.\n\nCBD>C'mon, Batman doesn't need to SEE.  He's Batman.\n\nCBD>Did you notice he only takes the bike out in the snow or rain?\n\nSo let's see what we have on the Batdude so far: He has a weird helmet.\nHe drags his knee in corners (thanks, Cookson, but how does he do it?\nHidden Bat-pucks?), and he only takes the bike out in the snow or rain.\nAlso, he lets Robin ride! I think I could have used a Bat-mom. Would\nhave made getting my license a lot easier!\n\nThere's a trend here: Stylish helmet, Stylish knee-dragging, rides only\nin Stylish cartoon precipitation. Hmm . . . Could it be that we're\ndealing with a veritable airborne mammalian poseur? Dare I say it, a\nBAT-SQUID?? (huh? Bat-Squid?) It all adds up now . . .\n\nLet's make the B-man an honorary DoD DuDe. All he needs is a DoD\nsticker.\n\nActually, anyone have an address for Batman's current artists, both\ncomic book and animated series? We'll write and ask if Batman would like\nto become an honorary Denizen! Yeah!\n\nSpecial To The KoTL: Is there a precedent for inducting an imaginary\nmember with an imaginary motorcycle? Having seen the computers in the\nBat-Cave, I think we can safely assume that he also has imaginary\nInternet access.\n\nRyan Cousinetc.|1982 Yamaha Vision XZ550 -Black Pig of Inverness|Live to Ride\nKotRB          |1958 AJS 500 C/S -King Rat                      |to Work to\nDoD# 0863      |I'd be a squid if I could afford the bike...    |Flame to\nryan.cousineau@compdyn.questor.org  |   Vancouver, BC, Canada   |Live . . .\n\n\n * SLMR 2.1a * My (virtual) reality check just bounced.\n                              \n----\n+===============================================================+\n|COMPUTER DYNAMICS BBS    604-255-9937(HST)    604-986-9937(V32)|\n|Vancouver, BC, Canada -  Easy Access, Low Rates, Friendly Sysop|\n+===============================================================+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7032, "properties": {"category": "soc.religion.christian", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: Homosexuality issues in Christianity\nOrganization: University of Georgia, Athens\nLines: 35\n\nIn article <May.6.00.35.17.1993.15441@geneva.rutgers.edu> loisc@microsoft.com (Lois Christiansen) writes:\n>In article <Apr.30.03.11.27.1993.10101@geneva.rutgers.edu> FSSPR@acad3.alaska.edu wrote:\n\n>You might visit some congregations of Christians, who happen to be homosexuals,\n>that are spirit-filled believers, \n\nGifts of the Spirit should not be seen as an endorsement of ones behavior.\nA lot of people have suffered because of similar beliefs.  Jesus said\nthat people would come to Him saying \"Lord, Lord,\" and proclaiming\nthe miraculous works they had done in His name.  Jesus would tell\nthem that they were workers of iniquity that do not know Him, and to\ndepart from Him.  \n\nThat is not to say that this will happen to everyone who commits a homosexual\nsin.  If the Holy Spirit were only given to the morally perfect, He would\nnot be given to me, or any of us.  God can forgive any sin, if we repent.\nBut people should be careful not to think, \"God has given me a gift of\nthe Spirit, it must be okay to be gay.\"  That is dangerous (see also hebrews\n6 about those who have partaken of the Holy Spirit and of the powers of \nthe world to come.)\n\n>The Lord IS working in our community (the homosexual community, that is).  He's\n>not asking us to change our sexual nature,\n\nJesus doesn't ask us to change our own nature.  We cannot lift ourselves\nout of our own sin- but we must submit to His hand as He changes our\nnature.  Practicing homosexual acts and homosexual lusts violates the\nmorality that God has set forth.  \n\nIf you don't believe that, and think those of us who do are just ignorant,\nthen at least consider us weak in the faith and be celebate for our sake's.\nIs practicing homosexuality worth the cost of a soul, whether it be the\nhomosexual's or the one considered \"ignorant?\"\n\nLink Hudson.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7033, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Re: Booting from B drive\nOrganization: Ford Motor Company Research Laboratory\nLines: 24\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\nDavid Weisberger (djweisbe@unix.amherst.edu) wrote:\n: I have a 5 1/4\" drive as drive A.  How can I make the system boot from\n: my 3 1/2\" B drive?  (Optimally, the computer would be able to boot\n: from either A or B, checking them in order for a bootable disk.  But\n: if I have to switch cables around and simply switch the drives so that\n: it can't boot 5 1/4\" disks, that's OK.  Also, boot_b won't do the trick\n: for me.)\n: \n: Thanks,\n:   Davebo\nWe had the same issue plague us for months on our Gateway.  I finally\ngot tired of it so I permanently interchanged the drives.  The only\nreason I didn't do it in the first place was because I had several\nbootable 5-1/4's and some 5-1/4 based install disks which expected\nthe A drive.  I order all new software (and upgrades) to be 3-1/2 and\nthe number of \"stupid\" install programs that can't handle an alternate\ndrive are declining with time - the ones I had are now upgraded.  And\nas for the bootable 5-1/4's I just cut 3-1/2 replacements.\n\nIf switching the drives is not an option, you might be able to wire up\na drive switch to your computer chasis.  I haven't tried it but I think\nit would work as long as it is wired carefully.\n\nGordon Lang\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7034, "properties": {"category": "soc.religion.christian", "text": "From: gt7122b@prism.gatech.edu (boundary)\nSubject: Re: DID HE REALLY RISE???\nOrganization: Georgia Institute of Technology\nLines: 50\n\nIn article <Apr.15.00.57.56.1993.28857@athos.rutgers.edu> reedr@cgsvax.claremont.edu writes:\n>\n>> I disagree with your claim that Jews were not evangelistic (except in\n>> the narrow sense of the word).  Jewish proselytism was widespread.\n>> There are numerous accounts of Jewish proselytism, both in the New\n>> Testament and in Roman and Greek documents of the day.\n\nI am not so sure of Jewish proselytism then, but I would like to relate\nan account of a recent dinner I had with Jews a few months ago.\n\nThe dinner was instigated by the aunt of the hostess, whom I had met while\nvisiting my wife in Galveston last October.  The dear old aunt (now \ndeceased) was very proud of her Jewish heritage, although not especially\ndevout.  Her parents were both murdered in Nazi concentration camps in\nAustria during WWII because they were Jewish.  While conversing with her\nabout politics, world affairs and religion, she remarked that it would \nbe a good idea for me to visit her niece on my return to Atlanta.\n\nWithin two days of returning to Atlanta, her niece called to invite\nme over for dinner with her husband.  I went, not knowing really what to\nexpect, other than stimulating conversation and fellowship.  What I got,\nhowever, was rather unexpected.  The thrust of the evening's discussion\nwas to condemn the Reagan-Bush policies prohibiting abortion counseling \nin federally funded family planning clinics, prohibiting the sterilization\nof minorities on welfare here and in Puerto Rico, on\nthe ban on fetal tissue research, and against the Mexico City policy,\n\"which denies U.S. foreign aid to programs overseas that promote abortion.\"\n\nThe crux of their position was to place the blame for the problems of\n\"overpopulation,\" rampant domestic crime, African starvation, unwed\nmothers, etc., on Christianity, rather on the fall of Adam.  Now, this\nis not what I had to come to talk about.  But every time I tried to \nbring up the subject of Judaism, they would condemn Jews for Jesus\nand admonish me against converting to Judaism, \"because it involves\ntoo much study and effort.\"  And I did not even raise the prospect, nor\ntry to convert them to the truth of Christ!  There was certainly no\nJewish proselytism going on there.\n\nAnd again, last November I toured a \"traditional\" Jewish synagogue and was\nsubjected to a 30-minute harangue against Jesus and Christianity in\ngeneral.  I realize that these are two isolated incidents, and that the\nbest supervisor I ever had at work is Jewish, but from my experience,\nthe modern Jew is not known for his proselytism.\n\n \n-- \nboundary\n\nno teneis que pensar que yo haya venido a traer la paz a la tierra; no he\nvenido a traer la paz, sino la guerra (Mateo 10:34, Vulgata Latina) \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7035, "properties": {"category": "comp.sys.mac.hardware", "text": "From: eapu174@orion.oac.uci.edu (Wayne Chen)\nSubject: Re: Disappointed by La Cie\nArticle-I.D.: news.2BC1F81D.20078\nOrganization: UC Irvine\nLines: 12\nNntp-Posting-Host: dialin33626.slip.nts.uci.edu\nX-UserAgent: Nuntius v1.1.1d17\nX-XXMessage-ID: <A7E737A8C3018EB7@dialin33626.slip.nts.uci.edu>\nX-XXDate: Tue, 6 Apr 93 05:35:36 GMT\n\nIn article <1993Apr5.173853.14752@umiami.ir.miami.edu> ,\nf2ehg786@umiami.ir.miami.edu writes:\n> It seems to me that reconditioned hardware should be sold as\nreconditioned at a\n> discounted price, and that replacements for new hardware gone bad\n(still\n> covered under a 90-day warranty) should be new. \n> \nWell, sounds like we need some kind of a Lemon Law on the hardware\nindustry.  After all it does sound unfair to me for someone that has\npaid the price of a new drive for a reconditioned one.  What do you\nguys think?\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7036, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Earl D. Fife <fife@calvin.edu>\nSubject: Re: DayStar again ...\nX-Xxdate: Thu, 15 Apr 93 01:21:14 GMT\nNntp-Posting-Host: 153.106.4.42\nOrganization: Calvin College\nX-Useragent: Nuntius v1.1.1d20\nLines: 30\n\nIn article <C5Fqno.9HH@news.udel.edu> Bill Johnston, johnston@me.udel.edu\nwrites:\n> >I'm going to buy a DayStar 68040 with 25 MHz for the SE/30. Since there\n> >were so many mails about problems with this board, my questions:\n> >does the board work with 7.1 and A/UX 3.0 ? Does anybody know problems\n> >with any kind of software ?\n> \n> Well, I haven't seen any reports of problems with the Turbo '040,\n> but to my knowledge, Daystar has not released a version of the \n> board that works with anything but the IIsi and IIci, and they\n> have not finished tweaking/testing for use with A/UX.  This may\n> not happen until the A/UX 3.0.2 upgrade is released (my guess) so \n> I'd recommend waiting or buying the 50 MHz '030 board and upgrade\n> later when A/UX compatibility is assured.  Turbo '040 interface \n> cards for the II, IIx, SE/30, IIcx, etc will probably be available\n> sooner, but if A/UX compatibility is a requirement, it is probably\n> best to be patient and let someone else be the pioneer.  ;-)\n\nAn added advantate of waiting for the DayStar for the SE/30 is that,\njust as with the '030 power cache, the '040 accelerator will plug into\nthe CPU socket, leaving the PDS slot free for a video card or ethernet\ncard.  With DayStar's upgrade path, it's a no lose situation.\n\n-------------------------------------------------------------------------\n\nEarl D. Fife          |          Department of Mathematics\nfife@calvin.edu       |          Calvin College\n(616)957-6403         |          Grand Rapids, MI 49546\n\n=========================================================================\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7037, "properties": {"category": "rec.autos", "text": "From: ernie@.cray.com (Ernest Smith)\nSubject: Re Aftermarket A/C units\nOriginator: ernie@ferris\nLines: 34\nNntp-Posting-Host: ferris.cray.com\nOrganization: Cray Research, Inc.\nDistribution: usa\n\n\n>In article <1qcaueINNmt8@axon.cs.unc.edu> Andrew Brandt writes:\n>|> I looked into getting a/c installed on my 1987 Honda CRX Si.\n>|> The unit is $875 plus shipping, installation is like 5 1/2 hours on\n>|> top of that.  This is a hunk of change.\n>|> \n>|> Does anyone know *any* place that does aftermarket a/c installation\n>|> (not with a Honda a/c unit, but some third party unit).\n>|> \n>|> I cannot seem to find anyone who can put a third party a/c unit in a\n>|> Honda.  I am in No Carolina, so I would prefer some place nearby, but\n>|> any references would be handy.\n>|>\n>|> Thx, Andy (brandt@cs.unc.edu)\n>\nLes Bartel's comments:\n>>>Sorry I can't help you with your question, but I do have a comment to\n>make concerning aftermarket A/C units.  I have a Frost-King or Frost-Temp\n>(forget which) aftermarket unit on my Cavalier, and am quite unhappy with\n>it.  The fan is noisy, and doesn't put out much air.  I will never have\n>an aftermarket A/C installed in any of my vehicles again.  I just can't\n>trust the quality and performance after this experience.\n>>\n> - les\n>\n>-- \n>Les Bartel\t\t\tI'm going to live forever\n\nLet me add my .02 in. I had a A/C installed by the Ford garage and it did not\nwork as well as the A/C that was installed by the factory in pickups \nidentical to mine. I have talked to other people that have had the same\nresult. Don't know if this is just a problem with Ford or what??\n\n\tErnie Smith\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7038, "properties": {"category": "comp.graphics", "text": "From: scrowe@hemel.bull.co.uk (Simon Crowe)\nSubject: Point within a polygon\nSummary: Algorithm to find if a point is bound by a polygon\nKeywords: point, polygon\nNntp-Posting-Host: bogart\nOrganization: Bull HN UK\nLines: 7\n\nI am looking for an algorithm to determine if a given point is bound by a \npolygon. Does anyone have any such code or a reference to book containing\ninformation on the subject ?\n\n\t\tRegards\n\n\t\t\tSimon\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7039, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Ozone GIFs Available\nOrganization: Jet Propulsion Laboratory\nLines: 90\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: Ozone, UARS, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\n                         ==========================\n                               OZONE GIF IMAGES\n                                April 15, 1993\n                         ==========================\n\n     Two GIF images of the ozone maps over the northern and southern\nhemispheres are now available at the JPL Info public access site.  These maps\nwere produced by the Microwave Limb Sounder aboard the Upper Atmosphere\nResearch Satellite (UARS), and are courtesy of the Public Information Office\nat JPL.  Note that the images are in GIF89a format, so make sure your display\nsoftware supports this format (as opposed to the older GIF87a format).  The\ncaption files accompanying the images are appended at the end of this message,\nas well as being embedded in the images.  The images are available by dialup\nmodem at +1 (818) 354-1333, up to 9600 bps, parameters N-8-1, or by using\nanonymous ftp to:\n\n        ftp:      pubinfo.jpl.nasa.gov (128.149.6.2)\n        user:     anonymous\n        cd:       news (will be moved to the images directory in 30 days)\n        files:    ozone93a.gif - Northern hemisphere\n                  ozone93b.gif - Southern hemisphere\n\n     Also, photographic prints of these images can be ordered from Newell Color\nLab listed below.  Refer to the P number associated with the images when\nordering.\n\n     Newell Color Lab\n     221 N. Westmoreland Avenue\n     Los Angeles CA 90064\n     Telephone: (213) 380-2980\n     FAX: (213) 739-6984\n\n--------------------------------------------------------------------------\nozone93a.gif\n\nPUBLIC INFORMATION OFFICE\nJET PROPULSION LABORATORY\nCALIFORNIA INSTITUTE OF TECHNOLOGY\nNATIONAL AERONAUTICS AND SPACE ADMINISTRATION\nPASADENA, CALIF. 91109.  TELEPHONE (818) 354-5011\n\nPHOTO                                                     P-42210\n                                                   April 14, 1993\n\nThis graphic depicts chlorine monoxide and ozone over Earth's\nnorthern hemisphere in February 1992 and 1993.  These maps were\nproduced by the Microwave Limb Sounder aboard the Upper\nAtmosphere Research Satellite.  The chlorine monoxide (ClO) maps\n(left) are for a layer about 20 kilometers (66,000 feet) above\nthe Earth's surface on February 17, 1992 (above) and 1993\n(below).  The ozone maps show the total amount above an altitude\nof about 12 kilometers (41,000 feet) averaged over the period\nfrom February 15 to March 6 for the two years.  The Microwave\nLimb Sounder, developed and operated by a team at NASA's Jet\nPropulsion Laboratory, is one of several instruments on the\nGoddard Space Flight Center's Upper Atmosphere Research\nSatellite, launched in September 1991.\n\n--------------------------------------------------------------------------\nozone93b.gif\n\nPUBLIC INFORMATION OFFICE\nJET PROPULSION LABORATORY\nCALIFORNIA INSTITUTE OF TECHNOLOGY\nNATIONAL AERONAUTICS AND SPACE ADMINISTRATION\nPASADENA, CALIF. 91109.  TELEPHONE (818) 354-5011\n\nPHOTO CAPTION                                             P-42211\n                                                   April 14, 1993\n\nThis graphic depicts chlorine monoxide (ClO) and the Antarctic\nozone hole.  These maps, produced by the Microwave Limb Sounder\naboard the Upper Atmosphere Research Satellite, show the amount\nof chlorine monoxide (left) and ozone (right) in the stratosphere\nat altitudes above 20 kilometers (66,000 feet).  Very small\nabundances of ozone appear where there are large abundances of\nchlorine monoxide, the dominant form of chlorine that destroys\nozone.  Data from September 21, 1991 (top) are compared with\nthose from September 20, 1992 (bottom).  The Microwave Limb\nSounder, developed and operated by a team at NASA's Jet\nPropulsion Laboratory, is one of several instruments on Goddard\nSpace Flight Center's Upper Atmosphere Research Satellite\nlaunched September 12, 1991.\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | Being cynical never helps \n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | to correct the situation \n|_____|/  |_|/       |_____|/                     | and causes more aggravation\n                                                  | instead.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7040, "properties": {"category": "soc.religion.christian", "text": "From: oser@fermi.wustl.edu (Scott Oser)\nSubject: Re: DID HE REALLY RISE?\nOrganization: Washington University Astrophysics\nLines: 4\n\nFrank, I got your mailing on early historical references to Christianity.\nI'd like to respond, but I lost your address.  Please mail me.\n\n-Scott Oser\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7041, "properties": {"category": "rec.sport.baseball", "text": "From: ching@fledgling.WPI.EDU (Jay Heminger)\nSubject: Re: TIGERS\nOrganization: Worcester Polytechnic Institute\nLines: 17\nDistribution: world\nNNTP-Posting-Host: fledgling.wpi.edu\nOriginator: ching@fledgling.WPI.EDU\n\n\n\nALL I CAN SAY IS   \n\n\n\n\n        G O    T I G E R S!!!!!!\n\n\n\n\n-- \n------------------------THE LOGISTICIAN REIGNS SUPREME!!!----------------------\n|\t\t\t\t\t\t\t\t\t      |\n|   GO BLUE!!!   GO TIGERS!!!   GO PISTONS!!!   GO LIONS!!!   GO RED WINGS!!! |\n-------------------------------ching@wpi.wpi.edu-------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7042, "properties": {"category": "sci.space", "text": "From: 18084TM@msu.edu (Tom)\nSubject: Nasa (dis)incentives\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 23\n\n[questions and issues WRT congress raised and discussed}\n\nDennis Replies;\n>Now black when it is white is just white. Except that when black is called\n>white money is put into the system in a study to find out just when it is\n>justified to call black, white.  It is also apparant that when white is called\n>black, just the opposite occurs. Now white is a color, but when white is\n>called black, it calls into question the validity of the color spectrum.\n...\n>It is a given however that NASA nor the military, whose competence in\n>differentating black from white is well known (remember the black and\n>white paint on the Saturn V rocket?) That nothing will occur here either.\n>When black and white are used by congress, who cares nothing for results,\n>just more money for pork barrel jobs brought about by the black/white\n>controversy....\n\nDennis, why must you always see things in black and white terms? :-)\n\n-Tommy Mac\n-------------------------------------------------------------------------\nTom McWilliams 517-355-2178 wk   \\\\ As the radius of vision increases,\n18084tm@ibm.cl.msu.edu 336-9591 hm \\\\ the circumference of mystery grows.\n-------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7043, "properties": {"category": "sci.electronics", "text": "From: rdell@cbnewsf.cb.att.com (richard.b.dell)\nSubject: Re: Fujitsu 8\" HDD\nKeywords: M2321K, M2322K, Fujitsu, Microdisk (-:\nOrganization: AT&T\nDistribution: na\nLines: 15\n\nIn article <1993Apr17.204351.2256@aber.ac.uk> cjp1@aber.ac.uk (Christopher John Powell) writes:\n\n[deletions]\n\n>It appears to use two balanced-line connections, but what each connection\n>corresponds to I know not. One connection is a 30-way IDC, the other a\n>60-way IDC.\n\nSounds like it is an SMD interface to me, not being at work now\nto actually count pins.  there are two varients, SMD  and\nSMDC (I think), only minor differences between them.  Widely used\nprior to the advent of SCSI for large drives (or all drives) on minis\n(and mainframes(?) no experience on those).\n\nRichard Dell\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7044, "properties": {"category": "misc.forsale", "text": "From: yb025@uafhp..uark.edu (John Schiefer)\nSubject: Food coupons\nSummary: Deal of century\nKeywords: holmes\nArticle-I.D.: moe.1pt03p$h08\nOrganization: Kansas State University\nLines: 12\nNNTP-Posting-Host: uafhp.uark.edu\n\nLooking to save money?  I am your man.  I will mail you \n$5 in food coupons for only$2.50.  Or you will get twice the dollar amount\nof coupons.  So mail $15 and get $30 dollars in coupons. Sounds like a great\ndeal well it is.  Send SASE to 766 S.Elizabeth St. Salt Lake City, Utah 84102\nenclose money in form of a money order.  Personally, I would not trust a person\nto send coupons after money is sent.  Well, let me earn your trust.  Send\n$1 dollar, and I'll send you your $2 in store coupons.  \nThen we'll talk more\ne-mail enquiries to yb025@uafhp.uark.edu\n\nThank you,\nJohn Schiefer\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7045, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Israeli Terrorism\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 19\n\nIn article <AMOSS.93Apr25163327@shuldig.cs.huji.ac.il> amoss@shuldig.cs.huji.ac.il (Amos Shapira) writes:\n>cy779@cleveland.Freenet.Edu (Anas Omran) writes:\n>\n>                                                           The Israelis\n>   used to arrest and sometimes to kill some of these neutral reporters.\n>\n>Eh????  Could you please give me details about an event where a \"Neutral\n>Observer\" was killed by purpose by an Israeli soldier?\n>\n>--Amos\n>\nActually, I'm still trying to understand the self-justifying rationale\nbehind the recent murder of Ian Feinberg (?) in Gaza.\n\n--\nTim Clock                                   Ph.D./Graduate student\nUCI  tel#: 714,8565361                      Department of Politics and Society\n     fax#: 714,8568441                      University of California - Irvine\nHome tel#: 714,8563446                      Irvine, CA 92717\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7046, "properties": {"category": "rec.sport.hockey", "text": "From: fmsalvat@eos.ncsu.edu (FRANK MICHAE SALVATORE)\nSubject: Re: Patrick Division Correction!\nOriginator: fmsalvat@c00525-106ps.eos.ncsu.edu\nReply-To: fmsalvat@eos.ncsu.edu (FRANK MICHAE SALVATORE)\nOrganization: North Carolina State University, Project Eos\nLines: 22\n\n\nIn article <93105.013653RAP115@psuvm.psu.edu>, Robbie Po <RAP115@psuvm.psu.edu> writes:\n> \n> Well, I was a little off in those predictions!  One, I didn't count on the\n> Devils scoring 6 goals tonight in a 6-6 tie, hence, there goes the streak!\n> \n> Secondly, I didn't count on the Islanders getting just 1 point out of 4\n> against the Whalers in two games.  So, no more Isles/Capitals.\n> \n> New predicitons :\n> \n> 1-PENGUINS VS 4-ISLANDERS                  Penguins in 6 or 7\n \n> \n> 2-CAPITALS VS 3-DEVILS                     Devils in 7\n> \nWhy should we pay your predictions any heed, considering\nyou couldn't even predict the proper matchups?  Maybe\nyou should try forecasting the weather instead.\n\nFrank Salvatore\nfmsalvat@eos.ncsu.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7047, "properties": {"category": "soc.religion.christian", "text": "From: Eugene.Bigelow@ebay.sun.com (Geno )\nSubject: Re: When are two people married in God's e\nReply-To: Eugene.Bigelow@ebay.sun.com\nOrganization: Sun Microsystems, Inc.\nLines: 8\n\n|In article <Apr.14.03.07.21.1993.5402@athos.rutgers.edu> >randerso@acad1.sahs.uth.tmc.edu (Robert Anderson) writes:\n|>I would like to get your opinions on this: when exactly does an engaged\n|>couple become \"married\" in God's eyes? \n\n|Not if they are unwilling to go through a public marriage ceremony,\n|nor if they say they are willing but have not actually done so.\n\n  How do you know this?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7048, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jeremi@ee.ualberta.ca (William Jeremiah)\nSubject: Re: Looking for printer driver\nNntp-Posting-Host: bode.ee.ualberta.ca\nOrganization: University Of Alberta, Edmonton Canada\nLines: 12\n\njeremi@ee.ualberta.ca (William Jeremiah) writes:\n>   I'm looking for a c.itoh printer driver for Windows 3.1.  Does anybody\n> happen to know where I could find such a beast?\n  Uh... slight clarification:  That should be a printer driver for the\nc.itoh LIPS10 laser printer.\n  Thanks again\n> \n>   Thanks in advance,\n>     Jerry\n-- \n\n\"Look ma! No .signature!\"\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7049, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Re: Israeli Terrorism\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 7\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n   How many of you readers know anything about Jews living in the\nArab countries?  How many of you know if Jews still live in these\ncountries?  How many of you know what the circumstances of Arabic\nJews leaving their homelands were?  Just curious.\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7050, "properties": {"category": "sci.electronics", "text": "From: dp@cec1.wustl.edu (David Prutchi)\nSubject: Re: EEG Kit?\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nLines: 30\n\nIn article <cantrell.735330560@sauron.msfc.nasa.gov> cantrell@sauron.msfc.nasa.gov (Eric Cantrell) writes:\n>Awhile back someone posted some information on where you can get\n>kits to build an EEG.  Does anyone remember where you could get\n>this.  I'm very interested in getting some info on this.  Thanks \n>in advance.\n>\n>eric\n>\n>cantrell@sauron.msfc.nasa      \n>\n\nContact Circuit Cellar Inc., 4 Park St. - Suite 12, Vernon, CT 06066\n(203)875-2751, FAX (203)872-2204 and inquire about HAL-4 EEG Biofeedback\nBrainwave Analyzer.  \n\nIn addition, if you want to build your own system from board-level compo-\nnents (biosignal amplifiers, analog isolators and isolated multiplexers)\nyou can contact The Davron Group,P.O. Box 237, Deerfield, IL  60015\nFAX (708)948-9290.\n\n- David\n\n\n+------------------------------------------------------------+\n|  David Prutchi                 HC1DT                       |\n|  Washington University         <prutchi@mesun4.wustl.edu>  |\n|  Campus Box 1185               <dp@cec1.wustl.edu>         |\n|  One Brookings Drive                                       |\n|  St. Louis, MO  63130-4899                                 |\n+------------------------------------------------------------+\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.331+0000", "event": "documents", "entityId": 7051, "properties": {"category": "rec.sport.hockey", "text": "From: pereira@CAM.ORG (Dean Pereira)\nSubject: Canadiens - another Stanley Cup???\nOrganization: Champlain Regional College, St-Lambert QC CANADA\nLines: 12\n\n\n\t\tWith the kind of team Montreal has now,  they can take the\ncup easily.  The only problem they have right now is that everyone is\ntrying to steal the show and play alone.  They need some massive teamwork.\n\tThey are also in a little of a slump because long-time hockey\nMontreal Canadiens announcer Claude Mouton died last tuesday and it was\nrough on everybody because he has worked with the organization for 21\nyears.  But I know that is no excuse.  But if the Habs manage to get some\ngood teamwork and get into the spirit,  they should have no problem\nwinning in May.\n\n\t\t\t\t\t\tDean\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7052, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Sven Guckes <guckes@math.fu-berlin.de>\nSubject: Re: When is Apple going to ship CD300i's?\nOriginator: guckes@medusa\nX-Mail-Reader: Elm 2.4 PL21\nOrganization: Free University of Berlin, Germany\nX-News-Reader: NN 6.4.13 #13\nLines: 18\n\nsunnyt@coding.bchs.uh.edu writes:\n\n>The CD300 (external) is already shipping and has been shipping for\n>quite awhile now.\n>Demand for the units are high, so they are pretty rare.\n\nHm, I've got my CD drive since 921230.\n\n>I've also heard rumors that they are bundled with a couple of CD's,  \n>but I can't confirm it.\n\nIndeed, CDs are bundled with it.\nYou usually get nine CDs with demos of applications, games, photos, etc.\n\nI have compiled a list of these and posted it to alt.cdrom.\nI will post an updated version of this list RSN.\n\nSven :)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7053, "properties": {"category": "talk.politics.guns", "text": "From: chiu@io.nosc.mil (Francis Chiu)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: San Diego State University, College of Sciences\nLines: 20\nNNTP-Posting-Host: io.nosc.mil\nX-Newsreader: TIN [version 1.1 PL7]\n\nBrent Irvine (irvine@uxh.cso.uiuc.edu) wrote:\n\n: failed to mention the Davidians pouring kerosene all over and lighting it in\n: plain view.\n\n  Brent, I'm still waiting to see if there are any evidence of how the fire\ngot started, so I'm not going to tell you who did it...  As far as you keep\ntalking about the Davidians pouring kerosene all over, stop and *think*\nfor a second if it is possible the stove or lamp was knocked over and\nstarted a fire, and the Davidians were pouring water on it (wrong solution\nbut I doubt I can do much better in their states of mind...) to try to\nput it out?   \n\n  By the way, just how far where you standing from the Davidians when you\nsaw them setting the place on fire?   Oh, in case you are new in town,\nmicrowave ovens doesn't work very well when there's no electricty. :-0\n\n  Get some *facts* before you post next time!\n\n--F. Chiu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7054, "properties": {"category": "comp.sys.mac.hardware", "text": "From: HK.MLR@forsythe.stanford.edu (Mark Rogowsky)\nSubject: Re: PowerPC ruminations; was Re: LCIII->PowerPC?\nOrganization: Stanford University\nLines: 97\nDistribution: usa\nNNTP-Posting-Host: morrow.stanford.edu\n\nIn article <1993Apr16.214300.12920@ac.dal.ca>,\nseanmcd@ac.dal.ca writes:\n>In article <186177@pyramid.pyramid.com>, andrem@pyrtech.mis.pyramid.com (Andre Molyneux) writes:\n>> In article <1qksuq$1tt8@hal.gnu.ai.mit.edu>, mirsky@hal.gnu.ai.mit.edu\n>> (David Joshua Mirsky) writes:\n>> |> Hi. I own an LCIII and I recently heard an interesting rumor.\n>> |> I heard that the LCIII has a built in slot for a PowerPC chip.\n>> |> Is this true? I heard that the slot is not the same as the PDS\n>> |> slot.  Is that true?\n>> |>\n>> |> Thanks\n>> |> David Mirsky\n>> |> mirsky@gnu.ai.mit.edu\n>>\n>> Well, I also have an LC III.  Popping the top revealed:\n>>\n>>       One \"socket\" for an additional VRAM SIMM\n>>\n>>       One \"socket\" for a 72-pin RAM SIMM\n>>\n>>       One socket for a flat-pack FPU\n>>\n>>       A processor-direct slot (PDS) identical to the LC/LC II, but with\n>>       an additional set of connetions to one side (for the full 32-bit\n>>       data path that the LC/LC II lacked\n>>\n>> That's it.  I guess a board with a PowerPC chip could be made that would fit\n>> in the PDS, but that's the only place.\n>>\n>So, will it be possible to have a NuBus or PDS PowerPC upgrade, or will it\n>require a logic board swap? It would be interesting for Apple to come out with\n>a NuBus PowerPC that allowed use of the CPU's 680x0, like RocketShare. But I\n>guess that's getting a bit fantastic!\n>\n>I was wondering, since MacWeek reported that developers were 'seeded' with\n>PowerPCs on a NuBus card.\n>\n>Also, any word on machine arrivals or estimated speed? Last I heard, the\n>estimates were around 3-4 times the speed of a Quadra in native RISC mode. I\n>heard an Apple employee mumble something about the arrival of PowerPC machines\n>at a much earlier date that Q1 94, but I doubt it's true.\n>\n>Finally, is the PowerPC developer's CD 'mini-course' available? I saw it\n>advertised in the developer's university calendar, and I'd like to know if it's\n>at all *interesting*.\n>\n>Sean\n>--------------\n>seanmcd@ac.dal.ca\n\nRadius speculated, publicly, that they could provide a PowerPC-based\nRocket for existing Macs. It would have the plus of RocketShare and\nthe minus of NuBus accelerators - no true boot off the accelerator,\nNuBus bottleneck to video and other I/O.\n\nApple, it seems, will not compete with third parties here -- except\nperhaps for not-yet-available Macs like Cyclone, where a PowerPC\nslot might be advertised. Look for Daystar and such to make PowerPC\naccelerators.\n\nOne potential problem with any accelerator, though, is that it will\nneed a ROM companion and Apple has licensed only Radius, with\nRocketshare, to use any of its proprietary code.\n\nApple is, between the lines, trying to let us know that PowerPC Macs\nwill have simplified logic boards due to the magical nature of RISC\nand that these boards should be much cheaper to build than those in\nexisting 68040 Macs. Perhaps, then, we'll see groundbreaking\nprices in Mac-logic board upgrades, much the same way we've seen\nmuch cheaper high-performance CPUs this year.\n\nFirst generation PowerPCs, 98601s, will also hopefully have socketed\nCPUs so that they'll be chip upgradeable to 98604s a year later.\nThis should be possible in much the same way that 486s can be pulled\nfor clock doublers. If there is too much technical   baggage (which\nI doubt since the external busses are the same size/width) to do\nthis, perhaps we can have CPU daughterboard, a la Powerbook, as\nstandard to facilitate better CPU upgrades. This is an area where\nApple has fallen far behing the Intel-based world. Perhaps catchup\nis in order.\n\nBy the way, last week's PC week had an excellent story on PowerPC,\nPentium, MIPS R4000, DEC Alpha (the big four on the microprocessor\nfront for the forseeable future). Worth reading for technojunkies.\nAlso, the latest PC has a cover story on Pentium. Read it, and all\nthe other stories about how Intel is unstoppable and preeminent\nright now.\n\nOnce anyone is this secure, they are due to fall. Intel's market\nposition will never again be as dominant as it is today (especially\nif AMD gets the go ahead to sell its 486s this week as it appears it\nmight). The competition from all fronts is gearing up for an awesome\nbattle. Apple users should be excited that PowerPC, while not\nguaranteed dominance, is a guaranteed winner, even if its one of\nseveral.\n\nMark\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7055, "properties": {"category": "rec.motorcycles", "text": "From: davet@interceptor.cds.tek.com (Dave Tharp CDS)\nSubject: Re: V-max handling request\nOrganization: Tektronix - Colorado Data Systems, Englewood, CO\nLines: 27\n\nIn article <1993Apr15.222224.1@ntuvax.ntu.ac.sg> ba7116326@ntuvax.ntu.ac.sg writes:\n>hello there\n>ican anyone who has handson experience on riding the Yamaha v-max, pls kindly\n>comment on its handling .\n\nFrom _Cycle_World_ magazine (5/93) (who usually never says _anything_\nbad about any motorcycle):\n\n\"The Max certainly has motor, but there are some things it is short of.\nIt is short of chassis.  It loves straight lines; aimed in one, it is\nnicely stable.  But it is not overfond of corners.  Forced into one, it\nprotests, shaking its head, chattering its front tire, grinding its\nfootpegs, and generally making known its preference for straight\npavement.  Bumps?  It doesn't like them either.  Its fork isn't too bad,\nthough it is soft enough that it can be bottomed under hard braking.\nThe shocks, though which work on that short-travel, shaft-drive\nswingarm, are firm to the point of harshness.\"\n\n-----------------------------------------------------------------------------\n| Dave Tharp                      | DoD #0751   | \"You can't wear out       |\n| davet@interceptor.CDS.TEK.COM   | MRA #151    |   an Indian Scout,        |\n| '88 K75S  '48 Indian Chief      | AHRMA #751  |  Or its brother the Chief.|\n| '75 R90S(#151) '72 TR-2B(#751)  | AMA #524737 |  They're built like rocks |\n| '65 R50/2/Velorex  '57 NSU Max  |             |   to take the knocks,     |\n|       1936 BMW R12              | (Compulsive | It's the Harleys that     |\n| My employer has no idea.        |   Joiner)   |   give you grief.\"        |\n-----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7056, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kmembry@viamar.UUCP (Kirk Membry)\nSubject: moving icons\nReply-To: rutgers!viamar!kmembry\nOrganization: Private System\nLines: 9\n\nI remember reading about a program that made windows icons run away\nfrom the mouse as it moved near them.  Does anyone know the name\nof this program and the ftp location (probably at cica)\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nKirk Membry                                    \"Our Age is the Age of Industry\"\nrutgers!viamar!kmembry                         - Alexander Rodchenko\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7057, "properties": {"category": "sci.med", "text": "From: med50003@nusunix1.nus.sg (WANSAICHEONG KHIN-LIN)\nSubject: Re: MORBUS MENIERE - is there a real remedy?\nOrganization: National University of Singapore\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 21\n\nIt would be nice to think that individuals can somehow 'beat the system'\nand like a space explorer, boldly go where no man has gone before and\nreturn with a prize cure. Unfortunately, too often the prize is limited\nand the efficacy of the 'cure' questionable when applied to all\nsufferers.\n\nThis applies to both medical researchers and non-medical individuals.\nJust because it appears in an obscure journal and may be of some use\ndoes not make the next cure-all. What about the dozens of individuals\nwho have courageously participated in clinical trials? Did they have any\nguarentee of cures? Are they any less because they didn't trumpet their\nstory all over the world?\n\nAs a parting note, wasn't there some studies done on Gingko seeds for\nMeniere's? (To the original poster : what about trying for a trial of\nthat? It's probably not a final answer but it certainly may alleviate\nsome of the discomfort. And you'd be helping answer the question for\nfuture sufferers.)\n\ngervais\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7058, "properties": {"category": "sci.electronics", "text": "From: andrew.payne@hal9k.ann-arbor.mi.us (Andrew Payne) \nSubject: WANTED:  TCM3105 chips, small quantities\nDistribution: world\nOrganization: HAL 9000 BBS, W-NET HQ, Ann Arbor, Michigan, USA\nReply-To: andrew.payne@hal9k.ann-arbor.mi.us (Andrew Payne) \nKeywords: rec mod\nLines: 29\n\nFrom: payne@crl.dec.com (Andrew Payne)\nMessage-ID: <1993Apr20.004418.11548@crl.dec.com>\nOrganization: DEC Cambridge Research Lab\nDate: Tue, 20 Apr 1993 00:44:18 GMT\n\n\nDoes anyone know if a source for the TCM3105 modem chips (as used in the\nBaycom and my PMP modems)?  Ideally, something that is geared toward \nhobbyists:  small quantity, mail order, etc.\n\nFor years, we've been buying them from a distributor (Marshall) by the\nhundreds for PMP kits.  But orders have dropped to the point where we can\nno longer afford to offer this service.  And all of the distributors I've\nchecked have some crazy minimum order ($100, or so).\n\nI'd like to find a source for those still interested in building PMP kits.\nAny suggestions?\n\n-- \nAndrew C. Payne\nDEC Cambridge Research Lab\n---\n . R110B:Wnet HAL_9000\n                                                                                                                             \n----\n| HAL 9000 BBS:  QWK-to-Usenet gateway  | Four 14400 v.32bis dial-ins    |\n| FREE Usenet mail and 200 newsgroups!  | PCBoard 14.5aM * uuPCB * Kmail |\n| Call +1 313 663 4173 or 663 3959      +--------------------------------+\n| Member of EFF, ASP, ASAD  * 1500MB disk * Serving Ann Arbor since 1988 |\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7059, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Need Info on RSD\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 13\n\nIn article <1993Mar27.004627.21258@rmtc.Central.Sun.COM> lrd@rmtc.Central.Sun.COM writes:\n>I just started working for a rehabilitation hospital and have seen RSD\n>come up as a diagnosis several times.  What exactly is RSD and what is\n>the nature of it?  If there is a FAQ on this subject, I'd really\n>appreciate it if someone would mail it to me.  While any and all\n\nReflex sympathetic dystrophy.  I'm sure there's an FAQ, as I have\nmade at least 10 answers to questions on it in the last year or so.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7060, "properties": {"category": "rec.sport.hockey", "text": "From: farenebt@logic.camp.clarkson.edu (Droopy)\nSubject: Re: Playoff predictions\nOrganization: Clarkson University\nLines: 39\nNntp-Posting-Host: logic.clarkson.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nPATRICK\n1st rd:\tPens over Isles in 4.\n\tDevils over Caps in 6.\n2nd:\tPens over Devils in 7.\n\nADAMS\n1st rd: B's over Sabres in 5.\n\tNords over Habs in 5.\n2nd:\tB's over Nords in 6.\n\nNORRIS\n1st:\tHawks over Stars/Blues in 5.\n\tWings over Leafs in 7.\n2nd:\tHawks over Wings in 5.\n\nSMYTHE\n1st:\tJets over Canucks in 7.\t(call it a hunch)\n\tFlames over Kings in 5.\n2nd:\tJets over Flames in 6.\n\nWALES\nPens over B's in 7.\t\n\nCAMPBELL\nHawks over Jets in 5.\n\nSTANLEY\nPens over Hawks in 5.\n\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n    + Bri Farenell\t\t\tfarenebt@craft.camp.clarkson.edu   +\n    + AHL and ECAC contact for rec.sport.hockey\t\tGo USA Hockey!\t   +\t\n    + Adirondack Red Wings, Calder Cup Champs: '81  '86  '89  '92\t   +\n    + Clarkson Hockey, ECAC Tournament Champs: '66  '91  '93\t\t   +\n    + Glens Falls High Hockey, NY Division II State Champs: '90  '91       +\n    + AHL fans: join the AHL mailing list: ahl-news-request@andrew.cmu.edu +\n    + CONGRATS TO THE BOSTON BRUINS, 1992-93 ADAMS DIVISION CHAMPIONS      +\n    + PHOENIX SUNS, 1992-93 PACIFIC DIVISION CHAMPIONS\t\t\t   +\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7061, "properties": {"category": "comp.graphics", "text": "From: lusardi@cs.buffalo.edu (Christopher Lusardi)\nSubject: Looking for Mr. radon\nOrganization: State University of New York at Buffalo/Comp Sci\nLines: 9\nNntp-Posting-Host: homam.cs.buffalo.edu\n\nDoes anyone have a radon transform in C that they could \nsend me?\n\n\t\t\t\tAny help accepted,\n-- \n|  .-,                ###|For a lot of .au music: ftp sounds.sdsu.edu\n| /   /   __  ,  _    ###|then cat file.au > /dev/audio\n| \\_>/ >_/ (_/\\_/<>_     |UB library catalog:telnet bison.acsu.buffalo.edu\n|_                14261 _|(When in doubt ask: xarchie, xgopher, or xwais.)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7062, "properties": {"category": "rec.autos", "text": "From: mchaffee@dcl-nxt07 (Michael T Chaffee)\nSubject: Re: Chryslers Compact LH Sedans?\nOrganization: University of Illinois at Urbana\nLines: 33\n\ncka52397@uxa.cso.uiuc.edu (CarolinaFan@uiuc) writes:\n\n>shoppa@almach.caltech.edu (TIM SHOPPA) writes:\n\n>>I thought that the V-10 was originally designed for a truck (not necessarily\n>>a pickup!) and then just sort of dropped into the Viper's frame because\n>>it fit and was available.  A friend of mine and I saw (and heard) a Viper,\n>>and my friend's first response was that it sounded like a truck!  It sounded\n>>fine to me, but then again, I don't like the whiny noise that most modern\n>>sports car engines make.  BTW, the Viper we saw was moving at about 10mph,\n>>just like all of the other cars on the 10 freeway heading east out of LA\n>>on a Friday afternoon.  Looked really nice, though.\n\n>\tActually, I was under the impression that the V-10 in the Viper was\n>NOT the V-10 that Dodge was developing for its new Kenworths.  I have always\n>thought it was the exhaust system and not the engine that produced the noise\n>of a car...?\n\nWell, yes, the exhaust is where the majority of the noise comes out, but the\nbasics (tone, firing cadence, etc.) are determined by the engine configuration.\nIn the case of the Viper, yes, we are discussing a HUGE multicylinder 90-deg.\nengine, which will sound somewhat like a truck.  And my understanding, btw, is\nthat that V-10 engine was designed originally with the intention of being ad-\naptible for either the trucks or the Viper.  And from what I've heard (no first\nhand knowledge :-( ) it's doing a pretty good job at both.\n\nAnd the best exhaust sound in the world is now and will always be a 60-degree\nDOHC Colombo-designed V-12.  Period.\n\nMichael T. Chaffee\nmchaffee@ux4.cso.uiuc.edu\t<----Email\nmchaffee@sumter.cso.uiuc.edu\t<----NeXTMail\n.sig under construction.\t<----Excuse\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7063, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nSummary: More on limiting libertarians\nOrganization: Free the Barbers, Inc.\nLines: 100\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <18APR199320091677@venus.tamu.edu> gmw0622@venus.tamu.edu (Mr. Grinch) writes:\n>In article <1993Apr18.174237.11229@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes...\n>> \n>\n>Okay,  let me try to explain this.\n>\n>When one votes for such a creature as a Senator or,  worse yet,  a President,\n>one votes not for specific policies but for a general package which must cover\n>all issues for 4 or 6 years.  As such,  one's influence is highly diluted.\n>I might add that,  even if one were free to vote on individual regulations,\n>the vast amount of time required for considering a particular regulation,\n>combined with the very small chance of one's vote making a difference,  would\n>make it unreasonable to expect the voter to make an intelligent decision\n>with respect to specific regulations.     \n\nI'm afraid that I've lost the thread here.  I didn't suggest that all \ngovernment regulations be subject to referenda.  So I don't follow the \ncomments above.\n\n>> \n>> \n>:Sorry, but it strikes me that it is the only \"feasible\" approach.  What is\n>:not feasible is a wholesale attack on all government regulation and \n>:licensing that treats cutting hair and practicing medicine as equivalent\n>:tasks.\n>\n>I'm not sure what you mean by \"feasible\" in this case.  Do you mean that\n>[] are impossible in priciple,  or merely that it would be undesirable in\n>fact?\n\nI mean that an ideology that treats all government regulation as equally\nundesirable and seeks to abolish all regulations is unlikely to draw\nsupport among more than a miniscule portion of the electorate.\n\nFurthermore, I am suggesting that such a plan is not feasible in an\nindustrial society because the weight of litigation and/or misery it\nwould produce would effectively crush productive effort.\n>\n>\n>:Actually, the only areas of public spending above that strike me as \n>:generating substantial support among libertarians are police and defense.\n>:(It is an interesting aside that as committed as libertarians claim to\n>:be to a principle of non-coercion, the only areas of public spending\n>:that they frequently support involve hiring people with guns....hmmm...)\n>\n>You say this as if it were surprising,  yet in fact a necessary consequence\n>of libertarian philosophy.  All non-coersive functions should be dealt \n>with privately,  therefore it follows that the only functions remaining to\n>the state are the coersive ones.\n\nNo, I'm not surprised.  I just think it's interesting that on one hand\nlibertarians assume a limited government can be decreed, yet on the other\nposit an entire government made up of people who carry guns.  (I realize\nthat many libertarians assume that such a government will be \ncounterbalanced by a fully armed citizenry, but it is worth noting that\nwidespread civilian ownership of guns does not necessarily prevent the\nestablishment of totalitarian government, e.g. Iraq.)\n>\n>> \n>:Perhaps you have.  May I suggest that you consider that revolutionaries\n>:frequently generate support by acting as protectors of \"geezers,\" \n>:mothers and children.  Governments that ignore such people on the grounds\n>:that \"we don't have much to fear\" from them do so at their own peril.\n>\n>Much more likely it's drunken teenagers.  The groups in questionare more \n>likely to be worse off during and after a revolution than before.  \n>In the unlikely\n>event that you missed my earlier sarcasm,  let me say this directly:\n>The idea that such programs as Social Security or AFDC should be considered\n>\"defense\" (an idea which has been advanced in ths and other newsgroups) is\n>so absurd a lie as to be unworthy of consideration.  Do you seriously\n>dispute this?\n\nYup, sure do.  But since I also support the constitutional requirement\nthat the government provide for the general welfare (Article I section 8),\nI'm willing to justify such programs on that basis.\n>\n>\n>\tI don't want to seem patronizing,  but you still seem to be laboring\n>under the delusion that under a socialized economic system it is reasonably\n>intelligent and honest persons (like yourself) who make the decisions.\n>I feel any third party added to a transaction is every bit as likely to be\n>ignorant or corrupt as the buyer or seller.  I don't expect you to agree\n>with me,  but you explain why you feel I'm wrong?\n\nWell, in the first place, I don't support a \"socialized economic system.\"\nI think within limits that capitalism is a fine idea.  But it is not\nthe case that \"any third party...is...as likely to be ignorant or corrupt\nas the buyer or seller.\"  There are multitudes of examples where such a\nstatement is demonstrably false.  Regulation of stock market transactions\nthat provide a reasonable basis for buyers to avoid fraud is only one\nexample.\n\njsh\n\n>Mr. Grinch\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7064, "properties": {"category": "rec.sport.baseball", "text": "From: rja@mahogany126.cray.com (Russ Anderson)\nSubject: Re: A surfeit of offense?\nOriginator: rja@mahogany126\nLines: 35\nNntp-Posting-Host: mahogany126\nOrganization: The 1991 World Champion Minnesota Twins!\n\n\nIn article <1qi008INNphe@jhunix.hcf.jhu.edu>, pablo@jhunix.hcf.jhu.edu (Pablo A Iglesias) writes:\n> In article <1993Apr14.160447.17835@cs.cornell.edu> tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n> >Last year the American League scored 9802 runs in 1134 games, for a\n> >total of 8.6 runs per game, with 1.0 HR/game.  Through Tuesday, the AL\n> >has 477 runs in 48 games, for a total of 9.9 runs per game, and a\n> >total of 1.7 HR/game.  In 1987 there were 9.8 runs per game, and 2.3\n> >HR/game.\n> \n> >The big question: How significant is this?  Have we returned to 1987?\n> >Or is this just a minor abberation?\n> >\n> >Some thoughts:\n> \n> >d) I thought offense was generally down in April, rising as the\n> >weather got warm and pitchers got tired.  This may be a bigger\n> >abberation from the norm than it seems.\n> \n> 1. I don't get a feeling that the weather has been an issue this year. \n>    There doesn't seem to be a really cold spell in North America which \n>    does makes it harder to hit (not to mention making the ball carry less)\n\nYou obviously did not watch the Twins in Chicago.\n\nNo cold spell?  It's been snowing most of the week in Minnesota.\n(5 inches in Duluth last weekend)\n\n> I would still put things under the too early to tell category.  \n\nYup.\n\n-- \nRuss Anderson    |  Disclaimer: Any statements are my own and do not reflect\n------------------              upon my employer or anyone else.  (c) 1993\nEX-Twins' Jack Morris, 10 innings pitched, 0 runs (World Series MVP!)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7065, "properties": {"category": "sci.space", "text": "From: glover@casbah.acns.nwu.edu (Eric Glover)\nSubject: Re: What if the USSR had reached the Moon first?\nNntp-Posting-Host: unseen1.acns.nwu.edu\nOrganization: Northwestern University, Evanston Illinois.\nLines: 45\n\nIn article <1993Apr06.020021.186145@zeus.calpoly.edu> jgreen@trumpet.calpoly.edu (James Thomas Green) writes:\n>Suppose the Soviets had managed to get their moon rocket working\n>and had made it first.  They could have beaten us if either:\n>* Their rocket hadn't blown up on the pad thus setting them back,\n>and/or\n>* A Saturn V went boom.\n\nThe Apollo fire was harsh, A Saturn V explosion would have been\nhurtful but The Soviets winning would have been crushing. That could have\nbeen *the* technological turning point for the US turning us\nfrom Today's \"We can do anything, we're *the* Super Power\" to a much more\nreserved attitude like the Soviet Program today.\n\nKennedy was gone by 68\\69, the war was still on is the east, I think\nthe program would have stalled badly and the goal of the moon\nby 70 would have been dead with Nasa trying to figure were they went wrong.\n \n>If they had beaten us, I speculate that the US would have gone\n>head and done some landings, but we also would have been more\n>determined to set up a base (both in Earth Orbit and on the\n>Moon).  Whether or not we would be on Mars by now would depend\n>upon whether the Soviets tried to go.  Setting up a lunar base\n>would have stretched the budgets of both nations and I think\n>that the military value of a lunar base would outweigh the value\n>of going to Mars (at least in the short run).  Thus we would\n>have concentrated on the moon.\n\nI speulate that:\n+The Saturn program would have been pushed into\nthe 70s with cost over runs that would just be too evil. \nNixon still wins.\n+The Shuttle was never proposed and Skylab never built.\n+By 73 the program stalled yet again under the fuel crisis.\n+A string of small launches mark the mid seventies.\n+By 76 the goal of a US man on the moon is dead and the US space program\ndrifts till the present day.\n\n\n>/~~~(-: James T. Green :-)~~~~(-: jgreen@oboe.calpoly.edu :-)~~~\\ \n>| \"I believe that this nation should commit itself to achieving\t| \n>| the goal, before this decade is out, of landing a man on the \t|\n>| Moon and returning him safely to the Earth.\"    \t\t|\n>|                  <John F. Kennedy; May 25, 1961> \t\t|\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7066, "properties": {"category": "rec.motorcycles", "text": "From: karr@cs.cornell.edu (David Karr)\nSubject: Re: Help!  Which bikes are short?\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 14\n\nIn article <1993Apr20.170445.18331@ncar.ucar.edu> bean@ra.cgd.ucar.edu (Gregory Bean) writes:\n>Help!  I've got a friend shopping for her first motorcycle.  This is great!\n>Unfortunately, she needs at most a 28\" seat.  This is not great.  So far,\n>the only thing we've found was an old and unhappy-looking KZ440.\n\nLook for a happier-looking KZ440?\n\nSuzuki used to have an L designation, for example my former boss had a\nGS850L which had a seat a couple inches lower than the \"regular\"\nGS850, but it was certainly no cruiser.\n\n-- David Karr (karr@cs.cornell.edu)\n-- '80 BMW R65   DoD #0969   also BMWMOA, NRA, ACLU, et al.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7067, "properties": {"category": "talk.politics.mideast", "text": "From: ebrahim@ee.umanitoba.ca (Mohamad Ebrahimi)\nSubject: PBS Frontline: Iran and the bomb\nNntp-Posting-Host: ic17.ee.umanitoba.ca\nOrganization: Elect & Comp Engineering, U of Manitoba, Winnipeg, Manitoba,Canada\nLines: 75\n\n\n       I would like to share with netters a few points I picked up from the PBS\n    Frontline program regarding Iran's nuclear activities, aired on Tuesday\n    April 13. For the sake of brevity, I'll present them in some separate\n    points.\n\n    1- As many other western programs, this program was laid on a bed of\n    misinformation throughout the program, to maximize the effect of the\n    program on the viewer. Some of the misinformations were as follows:\n\n    - It was alleged that:\" Late Imam Khomeini objected to Shah's technological\n    advancements as anti-Islamic, but now things have changed and the proof of\n    change is that some Iranian merchants are now selling personal computers. \"!\n    These are the most ridiculous lies, one can make about the objectives \n    of the Islamic Revolution in toppling the Shah and state of the technology\n    in Iran after revolution.\n\n    -Iran was equally accused of using chemical weapons against Iraqi aggressors\n    while there has never been any proof in this regard, and nobody has seen\n    Iraqi soldiers or civilians injured by Iranian chemical weapons, in\n    contrary to what the whole world has seen about Iranian soldiers and\n    civilians, injured by Iraqi chemical weapons.\n\n    - While the number of martyrs during the sacred defense against Iraqi\n    aggression has been officially announced to be about 117,000 and even most\n    radical counter-revolutionary groups claim that Iran and Iraq had a total\n    of one million dead, this program claims that Iran alone has one million\n    dead left from the war.\n\n    - The translation of Iranian officials' talks are not 100% true. For\n    example when Iranian head of Atomic Energy says that: \" It hurts me to\n    see that Iran is the subject of these unfriendly propaganda.\" The \n    translator says: \" It hurts to see that Iran is doing unfriendly \n    research.\"!\n\n    2- Almost all alleged devices or material bought or planned to be bought\n    by Iranians were of countless dual usage, while the program tries to \n    undermine their non-military uses, without any reference to Iran's\n    big population and its inevitable need to other sources of energy in\n    near future and its current deficit in electrical power.\n\n    3- The whole program is trying to show the Sharif University of \n    Technology as a nuclear research center, while even the cameramen of the\n    program know well that in a country like Iran without a so tightly closed\n    society no one can make a nuclear bomb in a university! Taking in account\n    the scientific advancement of Sharif U. in engineering fields and its\n    potential role in improvement of Iran's industries and eventually the\n    lives of people, it is obvious that they are persuading other countries\n    to prevent them from further helping this university or other ones\n    in scientific and industrial efforts.\n\n    4- A key point in program's justifications is trying to disvalidate as\n    much as possible all efforts done by IAEA [*] in their numerous visits from\n    Iran's different sites. They say: \"We are not sure if the places visited\n    by IAEA are the real ones or not\" !, or \" We can not rely on IAEA's\n    reports and observation, because they failed to see Iraq's nuclear\n    activities before\" as if they didn't know that Iraq was trying to build\n    nuclear weapons!\n\n    5- As an extremely personal opinion, the most disgusting aspect of the\n    program was the arrogance of the member of US Senate foreign Affairs,\n    William Triplet, in his way of talking, as if he was the god talking\n    from the absolute knowledge!\n\n       I hope all Iranians be aware of the gradual buildup against their\n    country in western media, and I hope Iranian authorities continue to\n    their wise and calculated approach with regard to international affairs\n    and peaceful coexistence with friendly nations.\n\n\nMohammad\n\n  \n    [*] International Atomic Energy Agency\n  \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7068, "properties": {"category": "talk.politics.guns", "text": "From: tms@cs.umd.edu (Tom Swiss (not Swift, not Suiss, Swiss!))\nSubject: Re: Clinton wants National ID card, aka USSR-style \"Internal Passport\"\nOrganization: The Reality Liberation Front (pixels to the people!)\nLines: 17\n\nslp9k@cc.usu.edu writes:\n>\n>\tI just want to point out that while I am fully in support of privacy,\n>it will be possible soon to have a completely secure ID card, useable in bank\n>transactions, medical, etc etc.\n\n     There is no such thing as \"completely secure,\" especially when dealing\nwith High Technology. It's all a question of cost: what cost are you\nwilling to bear to protect your information vs. what rewards the \"bad guys\"\nare going to get if they break it. The rewards of breaking such a single ID\nsystem would be high indeed.\n\n===============================================================================\nTom Swiss/tms@cs.umd.edu  |  \"Born to die\"   |   Keep your laws off my brain!\n     \"What's so funny 'bout peace, love and understanding?\" - Nick Lowe \n     This .sig contains no animal products and was not tested on animals.\n  \"Time is just nature's way of keeping everything from happening at once.\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7069, "properties": {"category": "soc.religion.christian", "text": "From: regy105@cantva.canterbury.ac.nz (James Haw)\nSubject: Any good electronic Christian magazine?\nOrganization: University of Canterbury, Christchurch, New Zealand\nLines: 9\n\nHi,\n   I'd like to subscribe to Leadership Magazine but wonder if there is one on\ndisk instead of on paper. Having it on disk would save me retyping\nillustrations, etc into a word processor. It's just cut and paste.\n   If there are other good Christian magazines like Leadership on disk media,\nI'd appreciate any info.\n\nWith gratitude,\nJames.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7070, "properties": {"category": "misc.forsale", "text": "From: yuanchie@aludra.usc.edu (Roger Y. Hsu)\nSubject: 14.4K Fax Modem for Sale - Repost\nOrganization: University of Southern California, Los Angeles, CA\nLines: 14\nNNTP-Posting-Host: aludra.usc.edu\n\nHi,\n\nSince the original buyer found out he couldn't use this modem\nfor his Mac (I beleive I mentioned that it's an internal in my\nformer post), the modem is re-available now.  This modem is\nSupraFaxModem V.32bis.  If interested, please e-mail.\n\nThanks!\n\nPS: I am sorry I already lost those e-mails stated interested\n    in this modem.  If you all are still interested, please\n    e-mail me again.\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7071, "properties": {"category": "alt.atheism", "text": "From: geoff@East.Sun.COM (Geoff Arnold @ Sun BOS - R.H. coast near the top)\nSubject: Re: Where are they now?\nOrganization: SunSelect\nLines: 22\nDistribution: world\nReply-To: geoff@East.Sun.COM\nNNTP-Posting-Host: poori.east.sun.com\n\nYour posting provoked me into checking my save file for memorable\nposts. The first I captured was by Ken Arromdee on 19 Feb 1990, on the\nsubject \"Re: atheist too?\". That was article #473 here; your question\nwas article #53766, which is an average of about 48 articles a day for\nthe last three years. As others have noted, the current posting rate is\nsuch that my kill file is depressing large...... Among the posting I\nsaved in the early days were articles from the following notables:\n\n>From: loren@sunlight.llnl.gov (Loren Petrich)\n>From: jchrist@nazareth.israel.rel (Jesus Christ of Nazareth)\n>From: mrc@Tomobiki-Cho.CAC.Washington.EDU (Mark Crispin)\n>From: perry@apollo.HP.COM (Jim Perry)\n>From: lippard@uavax0.ccit.arizona.edu (James J. Lippard)\n>From: minsky@media.mit.edu (Marvin Minsky)\n\nAn interesting bunch.... I wonder where #2 is?\n---\nGeoff Arnold, PC-NFS architect, Sun Select. (geoff.arnold@East.Sun.COM)\n--------------------------------------------------+-------------------\n\"What if they made the whole thing up?            | \"The Great Lie\" by\n Four guys, two thousand years ago, over wine...\" |    The Tear Garden\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7072, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: If You Were Pat Burns ...\nKeywords: Leaf Wings\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 24\n\nIn <1993Apr20.181549.11414@alchemy.chem.utoronto.ca> golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n\n>Pray for the Wings to become lazy and overconfident...the Wings\n>can only lose the series...Toronto cannot win it.  Take away\n>Doug Gilmour and the Leafs are an old Tampa Bay.\n\nRight Gerald.  And take away Bob Probert and the Wings are dead Octopuses.\n\n>The Leafs deserve a lot of credit for their diligent effort\n>during the regular season...but if Detroit puts in a reasonable\n>effort, this is not a contest.\n\nLet's wait for the body to get cold before we start in with the eulogies\nhm?  They have only lost ONE game.  The game was in Detroit after all and\nPotvin did not have his best evening.  Nobody that I saw thought that the\nLeafs would sweep the Wings.  It looks like it might go six.  The Leafs\nwill take the Wings home advantage away in the next game.\n\n\n-- \n\ncordially, as always,                      maynard@ramsey.cs.laurentian.ca \n                                           \"So many morons...\nrm                                                   ...and so little time.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.332+0000", "event": "documents", "entityId": 7073, "properties": {"category": "soc.religion.christian", "text": "From: tas@pegasus.com (Len Howard)\nSubject: Re: Can sin \"block\" our prayers?\nOrganization: Pegasus,  Honolulu\nLines: 24\n\nIn article <Apr.12.03.45.11.1993.18872@athos.rutgers.edu> jayne@mmalt.guild.org (Jayne Kulikauskas) writes:\n>mike@boulder.snsc.unr.edu (Mike McCormick) writes:\n>\n>> Not honoring our wives can cause our prayers to be hindered:\n>>         prayers may not be hindered.  I Peter 3:7\n>\n>One interpretation I've heard of this verse is that it refers to the sin \n>of physically abusing one's wife.  The husband is usually physically \n>stronger than his wife but is not permitted to use this to dominate her.  \n>He must honor her as his sister in Christ.  This would therefore be an \n>example of a specific sin that blocks prayer.\n>Jayne Kulikauskas/ jayne@mmalt.guild.org\n\nI would be a bit more specific in looking at this verse in regard to\n'blocking' prayer.  I have trouble thinking that God would allow\nanything to block our access to him in prayer, especially if we have\nsinned and are praying for forgivenenss.\n    I can see, however, how our prayer life might be hindered by our\nsin, if we are concentrating on what is causing the sin or what has\nhappened, we may not be thinking about prayer, thus our prayers are\n'hindered' by our own actions.\n    But I don't think anything can 'block' the transmission, or\nreception of prayer to God.\nShalom,                                      Len Howard\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7074, "properties": {"category": "sci.space", "text": "From: wawers@lif.de (Theo Wawers)\nSubject: Re: Sunrise/ sunset times\nOrganization: Lahmeyer International, Frankfurt\nLines: 15\nX-Newsreader: TIN [version 1.1 PL9]\n\n\nThere is a nice little tool in Lucid emacs. It's called \"calendar\".\nOn request it shows for given longitude/latitude coordinates times for\nsunset and sunrise. The code is written in lisp.\nI don't know if you like the idea that an editor is the right program to\ncalculate these things.\n\n\nTheo W.\n\nTheo Wawers                                  LAHMEYER INTERNATIONAL GMBH\nemail : wawers@sunny.lif.de                  Lyonerstr. 22\nphone : +49 69 66 77 639                     D-6000 Frankfurt/Main\nfax   : +49 69 66 77 571                     Germany\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7075, "properties": {"category": "rec.sport.hockey", "text": "From: williac@govonca.gov.on.ca (Chris Williams)\nSubject: Re: STOP MAYNARD BASHING!!!! (was Re: Roger Maynard)\nKeywords: not fair, inconsiderate post\nOrganization: Government of Ontario\nDistribution: world \nLines: 35\n\nIn <1993Apr16.225806.10680@julian.uwo.ca> lee139@gaul.csd.uwo.ca (Steve Lee) writes:\n\n>In article <1993Apr16.213024.8698@sol.UVic.CA> gballent@hudson.UVic.CA writes:\n>>Does anyone recieve annoying email from Roger Maynard whenever they post an\n>>article telling them to leave him alon and stop posting to the group??\n>>These emails are filled with insults- more than are usual in Roger's posts\n>>and have little if any hockey info.\n>>I have recieved two in the last 2 days.\n>>I am just wondering if I am special or Roger trys to bully everyone who\n>>disagrees with him.\n>>\n>>Gregmeister\n>>\n\n>You can't be serious!  I and many of my colleagues have not received any\n>bad e-mails from Roger, in fact, Roger happens to have answered most if not\n>all of my hockey questions and curiosities, so before you start flaming\n>at me or Roger, better re-consider your nasty attitude towards Roger and the\n>like!\n\n\n>-------------------------------------------------------------------------------\n>Steve Lee      *      University of Western Ontario      *      London, Canada \n>                      lee139@obelix.gaul.csd.uwo.ca          \n>_______________________________________________________________________________\n\nSpeaking of Roger, where is his comments from last nights game. You have\nto admit he can make a nothing game sound like it was game 7 of the\nStanley Cup finals.\nRoger pushes the Leafs so much it even bothers me, a long time supporter\nbut he does have a good overall idea of the game.\nWow I just gave R.M a compliment, guess I better stop it with the Rye +\nWater before I give him another..\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7076, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Computer Science Department,  Stanford University.\nDistribution: usa\nLines: 62\n\nIn article <93105.165359U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>In article <1993Apr15.184452.27322@CSD-NewsHost.Stanford.EDU> andy@SAIL.Stanford.EDU (Andy Freeman) says:\n>>>Hell, a Glock is the last thing that should be switched to.  The only thing\n>>>that I know about a Glock is the lack of a real safety on it.  Sure there is\n>>>that little thing in the trigger but that isn't too great of a safety.\n>>\n>>Now we know that Kratz doesn't understand what a safety is supposed to\n>>do.  (He also confuses \"things he can see\" with \"things that exist\";\n>>Glocks have multiple safeties even though only one is visible from the\n>>outside.)\n>\n>Excuse me but I do know what I safety is supposed to do.\n\nKratz comments above show otherwise.\n\n>It's basic purpose - not to let the gun fire until you're ready.\n\nBingo - now the question is, does the Glock's qualify?  Let's see\nthe evidence that Kratz uses.\n\n>Christ, I've known that since I had my first Crosman air gun.  You don't\n>know me so don't make assumptions about what I know and don't know.\n\nBut first an aside.  Having an air gun proves nothing.  Moreover,\nmy comments are based on what Kratz writes.  He's free to argue that\nhe babbles in text but actually knows something off-line.\n\n>>A safety is supposed to keep the gun from going off UNLESS that's\n>>what the user wants.  With Glocks, one says \"I want the gun to go\n>>off\" by pulling the trigger.  If the safeties it has make that work,\n>>it has a \"real\" safety, no matter what Kratz thinks.\n>\n>From the things I have read/heard Glocks are always knocked because of the\n>trigger safety.  They are supposedly harder to learn to use properly.\n\nHarder than what?  I note that almost all revolvers work the same way,\nso it can't be \"harder than revolvers\".\n\n>Every article that I have read can't be wrong about the damn thing.\n\nSure they can.  (Moreover, we know now that Kratz' sample is\nunrepresentative.)  We can look at the reasoning.  It is basically\n\"these Glocks are dangerous because they're not like my 1911/S&W third\ngeneration.\"  Part of that is true, but since those same people don't\nclaim that revolvers, which share the relevant property, are\ndangerous, we see that the argument fails.\n\n>me to quote my sources because I don't keep a ton of gun magazines and/or\n\nWhy would I care?  I'm not looking for more bogus reasoning.\n\n>rec.guns articles laying around.  Boy, you can't make a simple statement on\n>here without someone getting right on your ass.\n\nOne can make hundreds of simple statements without having anyone\n\"getting right on your ass\".  One merely has to make accurate simple\nstatements.  Then you get \"attaboy\"s by mail and publically.\n\nAccuracy is a severe burden, but most of us manage it.\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7077, "properties": {"category": "sci.med", "text": "From: paulson@tab00.larc.nasa.gov (Sharon Paulson)\nSubject: food-related seizures?\nOrganization: NASA Langley Research Center, Hampton VA, USA\nLines: 45\nDistribution: world\nNNTP-Posting-Host: cmb00.larc.nasa.gov\n\nI am posting to this group in hopes of finding someone out there in\nnetwork newsland who has heard of something similar to what I am going\nto describe here.  I have a fourteen year old daugter who experienced\na seizure on November 3, 1992 at 6:45AM after eating Kellog's Frosted\nFlakes.  She is perfectly healthy, had never experienced anything like\nthis before, and there is no history of seizures in either side of the\nfamily.  All the tests (EEG, MRI, EKG) came out negative so the decision\nwas made to do nothing and just wait to see if it happened again.\n\nWell, we were going along fine and the other morning, April 5, she had\na bowl of another Kellog's frosted kind of cereal, Fruit Loops (I am\nembarrassed to admit that I even bought that junk but every once\nin a while...) So I pour it in her bowl and think \"Oh, oh, this is the\nsame kind of junk she was eating when she had that seizure.\"  Ten \nminutes later she had a full blown seizures. This was her first exposure\nto a sugar coated cereal since the last seizure.\n\nWhen I mentioned what she ate the first time as a possible reason for\nthe seizure the neurologist basically negated that as an idea.  Now\nafter this second episode, so similar in nature to the first, even\nhe is scratching his head.  Once again her EEG looks normal which I\nunderstand can happen even when a person has a seizure.\n\nOnce again we are waiting. I have been thinking that it would be good\nto get to as large a group as possible to see if anyone has any\nexperience with this kind of thing.  I know that members of the medical\ncommunity are sometimes loathe to admit the importance that diet and\nfoods play in our general health and well-being.  Anyway, as you can\nguess, I am worried sick about this, and would appreciate any ideas\nanyone out there has.  Sorry to be so wordy but I wanted to really get\nacross what is going on here.\n\nThanks.\n\n\n\n\n\n\n\n--\nSharon Paulson                      s.s.paulson@larc.nasa.gov\nNASA Langley Research Center\nBldg. 1192D, Mailstop 156           Work: (804) 864-2241\nHampton, Virginia.  23681           Home: (804) 596-2362\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7078, "properties": {"category": "alt.atheism", "text": "From: timmbake@mcl.ucsb.edu (Bake Timmons)\nSubject: Re: Amusing atheists and agnostics\nLines: 29\n\n\nRobert Knowles writes:\n\n>>\n>>My my, there _are_ a few atheists with time on their hands.  :)\n>>\n>>OK, first I apologize.  I didn't bother reading the FAQ first and so fired an\n>>imprecise flame.  That was inexcusable.\n>>\n\n>How about the nickname Bake \"Flamethrower\" Timmons?\n\nSure, but Robert \"Koresh-Fetesh\" (sic) Knowles seems good, too.  :) \n>\n>You weren't at the Koresh compound around noon today by any chance, were you?\n>\n>Remember, Koresh \"dried\" for your sins.\n>\n>And pass that beef jerky.  Umm Umm.\n\nThough I wasn't there, at least I can rely on you now to keep me posted on what\nwhat he's doing.\n\nHave you any other fetishes besides those for beef jerky and David Koresh? \n--\nBake Timmons, III\n\n-- \"...there's nothing higher, stronger, more wholesome and more useful in life\nthan some good memory...\" -- Alyosha in Brothers Karamazov (Dostoevsky)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7079, "properties": {"category": "rec.autos", "text": "From: tedebear@leland.Stanford.EDU (Theodore Chen)\nSubject: Re: Are BMW's worth the price?                      \nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 19\n\nIn article <1993Apr5.135153.11132@wdl.loral.com> gwm@spl1.spl.loral.com (Gary W. Mahan) writes:\n>Road and Track (2/88) BMW325is     0-60 7.5s, 1/4 mile 15.7s\n>               (Road Test \n>                Annual 1993)       0-60 8.3s, 1/4 mile 16.2s\n>\n>\n>Those are the numbers I was quoting, I have driven the older model but not the\n>newer.\n\n\nsure sounds like they got a ringer.  the 325is i drove was definitely\nfaster than that.  if you want to quote numbers, my AW AutoFile shows\n0-60 in 7.4, 1/4 mile in 15.9.  it quotes Car and Driver's figures\nof 6.9 and 15.3.  oh, BTW, these numbers are for the 325i.\n\ni don't know how the addition of variable valve timing for 1993 affects it.\nbut don't take my word for it.  go drive it.\n\n-teddy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7080, "properties": {"category": "talk.politics.misc", "text": "From: visser@convex.com (Lance Visser)\nSubject: Re: ABOLISH SELECTIVE SERVICE\nNntp-Posting-Host: dhostwo.convex.com\nOrganization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 46\n\n\nDave Borden (borden@head-cfa.harvard.edu) wrote:\n: The Selective Service Registration should be abolished.  To start with, the\n: draft is immoral.  Whether you agree with that or not, we don't have one now,\n: and military experts agree that the quality of the armed forces is superior\n: with a volunteer army than with draftees.  Finally, the government has us\n: on many lists in many computers (the IRS, Social Security Admistration and\n: Motor Vehicle Registries to name a few) and it can find us if it needs to.\n: Maintaining yet another list of people is an utter waste of money and time.\n: Let's axe this whole department, and reduce the deficit a little bit.\n\n\tMore \"gridlock\" talk from another relic of the past.  The\nSelective Service system creates jobs and is an investment in \nthe future of america......and whats wrong with that?\n\n\tWe need jobs because at this point in the recovery, the economy\nshould have generated 10 billion jobs and since it has not, the\ngovernment has to step in and help.  Shutting down selective service\nwould cost \"good jobs\" and we can't do that.  \n\n\tWhat we really need is to involve selective service in a more\nclosely directed manner.  We need the selective service involved\nin environmental protection, high-speed rail, commuter aircraft, \ncivil rights, national service and health care.  Every dollar\nwe put into selective service now will get us $10 less spending\nin future.\n\n\tI really believe now to think about it that selective service\nis long-past due for the creation of a cabinet position.\n\n\n\tYour not beyond hope, just get back on america's side and\nstart doing your part for change.  What Bill needs from you\nnow is support for the economic stimulus and health care reform.\nYou need to devote all your energies to fighting gridlock and\nsupporting change.  Get on the team.  After all, the evil has\nbeen banished from washington and the time for complaint \nis past being neccessary.\n\n\tAnd remember, Bill Clinton cares.  He may someday even have\na town meeting in your city.  If your an appropriate sort of \nperson, if you phrase your questions properly and show the\nproper respect and awe, you might have the chance to ask Mr,\nPresident your question in person.\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7081, "properties": {"category": "rec.sport.hockey", "text": "From: dvb@ick (David Van Beveren)\nSubject: Sad day for hockey\nOrganization: Sunsoft Inc., Los Angeles, CA.\nLines: 59\nNNTP-Posting-Host: ick\nX-Newsreader: Tin 1.1 PL3\n\nee0i+@andrew.cmu.edu (\"Ethan Z. Evans\") writes:\n: \n: Of course, penalties will have to be changed:\n: \n: Roughing:\tChauvanistic Males Being Aggressive\n: Slashing:\tChauvanistic Males Venting Frustration\n: Fighting:\tProof That Males Cannot Cope With Their Feelings\n: \n\nNO NO NO! since all the penalties fall into three classes, there should\nonly be three penalties:\n\n1. Foul (Any illegal contact with the other player or his stick with your\n   body or stick). If you get 5 you are out for the game.\n\n2. Unsportsmanlike contact. (An intentional foul). This inlcludes all the\n   current flavours of roughing, fighting and boarding. If you get two you\n   are thrown out of the game, and fined.\n\n3. Technical foul. Bad mouthing the ref, by player or coach. Penalty shot\n   is awarded. Two and you are thrown out of the game.\n\nBesides the penalty shot for one technical, if the team gets 5 penalties\nin a period, the opposing team gets a penalty shot for every additional one,\nuntil the end of the period. The victim gets two shots if he/she was in\nthe act of shooting when the foul ocured.\n\nThis works well for several reasons. First, penalty shots are the most\nexciting thing in hockey, right? So, it follows that the more the better.\nNext, when the player is setting up for a penalty shot, the network can\ntake a commercial. Finally, with only three penalties, the network\nannouncers (Don Meredith, Dick Vitale, John Madden, Pat Summerall, and\nMarv Levy, among others) will be able to tell the viewers what happened before\nthe PA announcer says it.\n\nOh, one other rule. When a goal is scored (10-20 times a period), the play\ncannot resume until the PA announcer announces it. This way, the network\ncan sneak in a few more commercials. Then, once the PA announcer has told\nthem who scored, the TV announcer can tell you the viewer, and even have a \nchance of pronouncing his name right.\n\nSeriously, though, I actually went to see a NBA basketball game last week,\nfor the first time in my life. I was amazed how boring it was. The play is\nso slow they actually had fans come out for things like free-throw shooting\ncontests DURING THE PERIOD!. Of course the 'Laker Girls' get to do their \nroutines at least 6-8 times during the game, and not just between periods\neither. There is a whistle every 30 seconds on average, maybe less. The\ngame is 48 minutes, with 2 minutes between quarters 1-2 and 3-4 and a\n10 minute halftime, and it still takes over 2 hours.\n\nThe reason for this has to be TV. There is plenty of room to throw in\ncommercials, and have the announcer jabber while nothing else is happening.\nOn TV, basketball is fairly entertaining, IMHO. But, it is better to watch\nit on TV than to be there. If this is the road the NHL is following, then\nit truly is a sad day.\n\nEnough for now.\n\ndvb\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7082, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dale@odetics.com (Dale Pischke)\nSubject: Re: More Diamond SS 24X\nOrganization: Odetics, Inc., Anaheim, CA\nLines: 17\n\nIn article <1993Apr20.195853.16179@samba.oit.unc.edu> dil.admin@mhs.unc.edu (Dave Laudicina) writes:\n>Has anyone experienced a faint shadow at all resolutions using this\n>card. Is only in Windows. I have replaced card and am waiting on \n>latest drivers. Also have experienced General Protection Fault Errors\n>in WSPDPSF.DRV on Winword Tools Option menu and in WINFAX setup.\n\nI had the exact same failure with the 24X and Word for Windows.\nA quick call to Microsoft indicated it was problem with the\n24X drivers. You need to call Diamond and get the new drivers,\nI think version 2.03 fixes the above problem, there may be later\nversions that I'm unaware of...\n\n \n-- \nDale R. Pischke           dale@odetics.com  or  uunet!odetics!dale\nSenior Software Engineer\nOdetics, Gyyr Division\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7083, "properties": {"category": "talk.politics.misc", "text": "From: dreitman@oregon.uoregon.edu (Daniel R. Reitman, Attorney to Be)\nSubject: Re: \"Winning\" Tax Case!\nArticle-I.D.: oregon.5APR199316063313\nDistribution: world\nOrganization: University of Oregon\nLines: 37\nNNTP-Posting-Host: oregon.uoregon.edu\nNews-Software: VAX/VMS VNEWS 1.41\n\nIn article <765445d3219144t87@infoserv.com>,\n jamesdon@infoserv.com (James A. Donald) writes...\n>The tax protesters are legally correct, but they are put in jail anyway.\n\nHello?  What the Sloan decision means is that the tax protestors \nwere wrong.\n\n>The weakness of the governments legal position is shown by the fact that when\n>someone protesting tax or gun laws on legal grounds gets a federal jury trial\n>(very rare) the feds blatantly stack the jury, with the same old faces turning\n>up time after time.\n\nDemonstrate, please!  The rules of procedure make this very \nunlikely.\n\n>However Teel should have mentioned that though his advice is legally sound, if\n>you follow it you will probably wind up in jail.\n\nFOR DISCUSSION PURPOSES ONLY\n\nWhich makes it legally unsound.  If I were representing Mr. Teel, \nI'd try a procedural approach if I could find one, or recommend \nhe plea-bargain.  He's setting himself up to be in hot water.\n\n\t\t\t\t\t\tDaniel Reitman\n\nHOW NOT TO WRITE A DEED\n\nOne case involved the construction of a conveyance to grantees \"jointly, as \ntenants in common, with equal rights and interest in said land, and to the \nsurvivor thereof, in fee simple. . . . To Have and to Hold the same unto the \nsaid parties hereto, equally, jointly, as tenants in common, with equal rights \nand interest for the period or term of their lives, and to the survivor thereof \nat the death of the other.\"\n\nThe court held that the survivorship provision indicated an intent to create a \njoint tenancy.  Germain v. Delaine, 294 Ala. 443, 318 So.2d 681 (1975).\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7084, "properties": {"category": "soc.religion.christian", "text": "From: fostma@saturn.wwc.edu (Mark Gregory Foster)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: Walla Walla College\nLines: 60\n\nIn article <Apr.15.00.58.33.1993.28906@athos.rutgers.edu> dlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n\n[FAQ and Darius' response deleted]\n\n>Darius\n\n>[It's not clear how much more needs to be said other than the FAQ.  I\n>think Paul's comments on esteeming one day over another (Rom 14) is\n>probably all that needs to be said.  I accept that Darius is doing\n>what he does in honor of the Lord.  I just wish he might equally\n>accept that those who \"esteem all days alike\" are similarly doing\n>their best to honor the Lord.\n\nI am myself an SDA and I am in total agreement with what Darius has to say.  \nI also worship on Saturday to honor the Lord.  Your mention of \"[esteeming] \nall days alike\" IMO has to do with the fast days observed by the Jews.  But \nno matter how you interpret that passage, I do accept your worship on Sunday \nas being done in honor of the Lord, in contrast with what many of my fellow \nSDA believers may believe.  To me, though, the bible overwhelmingly points \nto Saturday as the day to be kept in honor of creation and of God's \ndeliverance of the Israelites from Egyptian bondage.  To those who would \nattempt to point out that my observance of Saturday is being legalistic, \nthis is simply not the case.  Rather, keeping Saturday allows me a full day \nto rest and contemplate God's goodness and grace.\n\n>\n>However I'd like to be clear that I do not think there's unambiguous\n>proof that regular Christian worship was on the first day.  As I\n>indicated, there are responses on both of the passages cited.\n\n>Similarly with 1 Cor 16:2.  It says\n>that on the first day they should set aside money for Paul's\n>collection.  Now if you want to believe that they gathered specially\n>to do this, or that they did it in their homes, I can't disprove it,\n>but the obvious time for a congregation to take an offering would be\n>when they normally gather for worship, and if they were expected to do\n>it in their homes there would be no reason to mention a specific day.\n\nThe idea was introduced to me once that the reason Paul wanted the \nCorinthians to lay aside money for the collection on the first day of the \nweek was because that was when they received their weekly wages.  Paul \nwanted them to lay aside money for the collection as first priority, before \nspending their money on other things.  I do not have any proof in front of \nme for this though, although it would explain why they would lay aside money \nin their homes instead of a meeting.  \n\n>So I think the most obvious reading of this is that \"on the first day\n>of every week\" simply means every time they gather for worship.  \n>\n>I think the reason we have only implications and not clear statements\n>is that the NT authors assumed that their readers knew when Christian\n>worship was.\n\nIt would seem to me that you assume that the christians in the NT regularly \nworshipped on the first day.  I assume that the christians in the NT \nregularly worshipped on the seventh day.  But I agree with you that we only \nhave implications because the authors did assume the reader knew when worhip \nwas.\n\n--Mark\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7085, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: schwabam@columbia.dsu.edu (MICHAEL SCHWABAUER)\nSubject: Tseng Labs Video Card Problem\nLines: 7\nOrganization: Dakota State University\nLines: 7\n\n\nI have a Tseng labs video card that gives me problems when I do anything in \nsuper VGA mode.  CHECKIT v3.0 reports a Video Page Frame Address Error at \nPage Frame #7.  What does this mean and how (if I can) could this be fixed?\nThe card Says ET4000Ax on it.\n\nThanks\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7086, "properties": {"category": "talk.politics.guns", "text": "From: gt6511a@prism.gatech.EDU (COCHRANE,JAMES SHAPLEIGH)\nSubject: Re: guns in backcountry? no thanks\nOrganization: Georgia Institute of Technology\nLines: 91\n\nIn article <1qpavfINN2jp@clem.handheld.com> jmd@cube.handheld.com (Jim De Arras) writes:\n:In article <0096B294.AAD9C1E0@uinpla.npl.uiuc.edu> reimer@uinpla.npl.uiuc.edu  \n:(Paul E. Reimer) writes:\n:> In article <1qkftjINNoij@cronkite.cisco.com>, pitargue@cisco.com (Marciano  \n:Pitargue) writes:\n:> \n:> [stuff deleted about causes of people in ER]\n:> \n:> >due to automobile accidents and automobile crimes.  maybe we should outlaw\n:> >cars.\n:> There are a lot of automobile accidents, but atleast there is some\n:> regulation to try to combat this.  \n:\n:Such as?  Drunk drivers get back on the road in no time, to kill again.  Seems  \n:the driver's license process does not work for this.\n:\nI can testify to this. My cousin spent a few weeks in the hospital, and his\nfriend was killed, because of a drunk driver.  The son-of-a-b**** is back on \nthe streets... Officers from the scene are still p***ed about that one.\n\n:> to take a drivers safety class.  \n:\n:Because you wanted one while you were underage.\n:\n:> I HAVE to be licensed to drive.  \n:\n:Only on public roads.\n:\n:> My car\n:> MUST be registered.  \n:\n:Only if it is to be driven on public roads, other than between segments of my  \n:property.\n:\n:> I MUST (at least where I live) have liability\n:> insurance on both myself driving and my car (if someone else had an\n:> accident with it).  \n:\n:Only on public roads.\nAnd this obviously doesn't always work, else why would they offer uninsured \nmotorist coverage?\n:\n:> Hmm, wouldn't manditory saftey classes, registration\n:> of both the owner and gun, and manditory liability insurance be nice for\n:> gun owners.\nI object to mandatory registration because I don't trust my government not to\nuse any information I give them for their own purposes.  I am licensed to\ncarry a concealed pistol in my home state, but they never asked whether I \nactually owned a firearm.  A safety class before issuing a permit to carry is\nreasonably, provided such classes are regularly available to the public.  Of\ncourse, most places would consider my time in the reserves and on a competition\nrifle team to count.  \n:\n:Perhaps, if it gave them permission to shoot in public roads and parks. :-)\nHey, now that's an idea :)\n:\n:> Paul Reimer\n:\n:Jim\n\nNow, unless you have an agenda against private ownership of firearms, why would\nyou want to harass the person trying to legally defend themselves or exercise \ntheir rights? (I know, defending oneself/family/whoever IS a right... at least\nas far as my 9mm and I are concerned... ) (Also as far as the State of Alabama\nseems to be concerned)  Why don't you push for stricter prosecution of those\nwho use firearms in the commission of a crime?  I've already pointed out how\nwe aren't nailing DUI's hard enough...  Comparing the US with other countries\nseldom works, but the European attitude towards alchohol and DUI seems to work..\nTheir attitude towards weapons isn't really a valid comparison because they've\nhistorically done their best to keep the populace disarmed and submissive,\nwhile our country was founded by a bunch of rugged individualists who told the\nEuropean monarchies (for the most part) to take a flying leap (used more polite\nlanguage though).  We even weaseled out of our first international treaty, and\nthen convinced the French that it was in their best interests not to complain..\nBut first we had to overcome the fact that the Brits were doing their best to \nrestrict us to squirrel guns and such, so we'd be properly submissive while\nthey forced us to pay for their wars.  Of course, most American history classes\nthese days tend to gloss over facts that do not fit the image they wish to \nconvey... I'm glad my Amer. Hist. teacher was a Libertarian who had us review\na good portion of the Federalist Papers, and debate their origins and meanings.\n\nenough rambling,\n\nJames\n\n\n-- \n********************************************************************************\nJames S. Cochrane        *  When in danger, or in doubt, run in * This space \ngt6511a@prism.gatech.edu *  circles, scream and shout.          * for rent\n********************************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7087, "properties": {"category": "talk.religion.misc", "text": "From: royc@rbdc.wsnc.org (Roy Crabtree)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Red Barn Data Center\nLines: 50\n\nIn article <1qvv7u$kc1@morrow.stanford.edu> salem@pangea.Stanford.EDU (Bruce Salem) writes:\n...\n>\tI think that the consensus will become that FBI/ATF muffed it,\n>not merely because they walked into an ambush on Feb 28, and Koresh\n>got his prophesy today, against their stated intentions, but because\n>they played right into polarizing the situation and not diffusing\n>it.\n>\n>\tKoresh had set up all the conditions of a classic cult\n>confrontation and had stated publically what the outcome would become.\n\n\tBefore or after his kids were shot?\n\n>The government upped the ante and parcipitated the conclusion today.\n>It does seem that the fires were set from within the compound by the\n>members of the group and not caused by the CS gas or the way it was\n>delivered. Let the subsequent investigation shed light on that. Suppose\n\n\tThen why make the comment?\n\n>that the government had used pyrotechnics and started the fire. The\n>Dividians still had the decision to stay or leave. They never intended\n\n\tAs did the Jews against the Nazis in WW II:  do what I say or die.\n\n>to leave.\n>\n>>The building burns, almost everyone dies.  It probably doesn't bother\n>>you much, but it bothers many other people.....most of whom dont believe\n>>particularly in Koresh or his message.\n\n\n\tALl humans, I hope.\n\n>\n>\tYes, the finger pointing has begun.\n>\n>>\tFour ATF agents and 90 branch Davidians are now dead because of\n>>crazy tactics on the part of the ATF and FBI.\n>\n>\tYeah, they blew it. They were being too \"rational\" in a\n>situation that was not your ordianry criminal game. They haven't learned\n>that much from Jonestown, or The Move House, or the SLA shootout.\n\n\tOr perhaps they have:  kill first, blame the dead ones,\n\tdestroy all the evidence.\n\n>\n\nroyc\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7088, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lex@optimla.aimla.com (Lex van Sonderen)\nSubject: Re: CD-ROM multisession\nNntp-Posting-Host: emerald\nOrganization: Philips Interactive Media of America\nLines: 19\n\nIn article <1pgifo$efb@msuinfo.cl.msu.edu> gary@ah3.cal.msu.edu writes:\n>As I said \"I know a multisession CD-ROM is necessary if you do more photos...\"\n>BUT what if it is just a writable CD-ROM drive and do a second \"session\"\n>do you need one for that too?\n\nIf you write a second time to a CD you need to have multi-session capability to\nread the second session.  Whether it is photos or just data or whatever.\n\nHere is a simplified way of looking at it:\nThe first session has the directory structure burned at some tracks.  The\nsecond session has a newer directory structure, but the first directory still\nexists, because you cannot change, only add.  So if you put that in a 'normal'\ndrive and it will only look to the first directory and think it has found all\ndata.  Multisession kindof means that the drive will look for the last\ndirectory written to the disc, older systems look only for 'the' directory, not\ntaking multiple directories into account.\n\nLex van Sonderen\nPhilips Interactive Media\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7089, "properties": {"category": "alt.atheism", "text": "From: \"Robert Knowles\" <p00261@psilink.com>\nSubject: Re: The nonexistance of Atheists?!\nIn-Reply-To: <1993Apr15.192037.1@eagle.wesleyan.edu>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Kupajava, East of Krakatoa\nX-Mailer: PSILink-DOS (3.3)\nLines: 26\n\n>DATE:   15 Apr 93 19:20:37 EDT\n>FROM:   kmagnacca@eagle.wesleyan.edu\n>\n>In article <bskendigC5JCwx.Jzn@netcom.com>, bskendig@netcom.com (Brian Kendig) writes:\n>>\n>> [s.c.a quotes deleted]\n>> \n>> It really looks like these people have no idea at all of what it means\n>> to be atheist.  There are more Bobby Mozumder clones in the world than\n>> I thought...\n>\n>Well, that explains some things; I posted on soc.religion.islam\n>with an attached quote by Bobby to the effect that all atheists\n>are lying evil scum, and asked if it was a commonly-held idea\n>among muslims.  I got no response.  Asking about the unknown,\n>I guess...\n\nYou should have tried one of the soc.culture groups in the Middle East\nor South Asia area (they are a little more open than the Islam channel).  \nI think someone defined atheists as polytheists cuz they say we think the \nworld created itself (or something like that) so each particle is a God \nwhich created the other Gods.  The soc.culture.african is also nice for \nsome contrasting viewpoints on the benevolence of religion.  Especially \nwhen Sudan is mentioned.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7090, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 12/15 - Controversial Questions\nKeywords: Frequently Asked Questions\nArticle-I.D.: cs.controversy_733694426\nExpires: 6 May 1993 20:00:26 GMT\nDistribution: world\nOrganization: University of North Carolina, Chapel Hill\nLines: 252\nSupersedes: <controversy_730956589@cs.unc.edu>\nNNTP-Posting-Host: mahler.cs.unc.edu\n\nArchive-name: space/controversy\nLast-modified: $Date: 93/04/01 14:39:06 $\n\nCONTROVERSIAL QUESTIONS\n\n    These issues periodically come up with much argument and few facts being\n    offered. The summaries below attempt to represent the position on which\n    much of the net community has settled. Please DON'T bring them up again\n    unless there's something truly new to be discussed. The net can't set\n    public policy, that's what your representatives are for.\n\n\n    WHAT HAPPENED TO THE SATURN V PLANS\n\n    Despite a widespread belief to the contrary, the Saturn V blueprints\n    have not been lost. They are kept at Marshall Space Flight Center on\n    microfilm.\n\n    The problem in re-creating the Saturn V is not finding the drawings, it\n    is finding vendors who can supply mid-1960's vintage hardware (like\n    guidance system components), and the fact that the launch pads and VAB\n    have been converted to Space Shuttle use, so you have no place to launch\n    from.\n\n    By the time you redesign to accommodate available hardware and re-modify\n    the launch pads, you may as well have started from scratch with a clean\n    sheet design.\n\n\n    WHY DATA FROM SPACE MISSIONS ISN'T IMMEDIATELY AVAILABLE\n\n    Investigators associated with NASA missions are allowed exclusive access\n    for one year after the data is obtained in order to give them an\n    opportunity to analyze the data and publish results without being\n    \"scooped\" by people uninvolved in the mission. However, NASA frequently\n    releases examples (in non-digital form, e.g. photos) to the public early\n    in a mission.\n\n\n    RISKS OF NUCLEAR (RTG) POWER SOURCES FOR SPACE PROBES\n\n    There has been extensive discussion on this topic sparked by attempts to\n    block the Galileo and Ulysses launches on grounds of the plutonium\n    thermal sources being dangerous. Numerous studies claim that even in\n    worst-case scenarios (shuttle explosion during launch, or accidental\n    reentry at interplanetary velocities), the risks are extremely small.\n    Two interesting data points are (1) The May 1968 loss of two SNAP 19B2\n    RTGs, which landed intact in the Pacific Ocean after a Nimbus B weather\n    satellite failed to reach orbit. The fuel was recovered after 5 months\n    with no release of plutonium. (2) In April 1970, the Apollo 13 lunar\n    module reentered the atmosphere and its SNAP 27 RTG heat source, which\n    was jettisoned, fell intact into the 20,000 feet deep Tonga Trench in\n    the Pacific Ocean. The corrosion resistant materials of the RTG are\n    expected to prevent release of the fuel for a period of time equal to 10\n    half-lives of the Pu-238 fuel or about 870 years [DOE 1980].\n\n    To make your own informed judgement, some references you may wish to\n    pursue are:\n\n    A good review of the technical facts and issues is given by Daniel\n    Salisbury in \"Radiation Risk and Planetary Exploration-- The RTG\n    Controversy,\" *Planetary Report*, May-June 1987, pages 3-7. Another good\n    article, which also reviews the events preceding Galileo's launch,\n    \"Showdown at Pad 39-B,\" by Robert G. Nichols, appeared in the November\n    1989 issue of *Ad Astra*. (Both magazines are published by pro-space\n    organizations, the Planetary Society and the National Space Society\n    respectively.)\n\n    Gordon L Chipman, Jr., \"Advanced Space Nuclear Systems\" (AAS 82-261), in\n    *Developing the Space Frontier*, edited by Albert Naumann and Grover\n    Alexander, Univelt, 1983, p. 193-213.\n\n    \"Hazards from Plutonium Toxicity\", by Bernard L. Cohen, Health Physics,\n    Vol 32 (may) 1977, page 359-379.\n\n    NUS Corporation, Safety Status Report for the Ulysses Mission: Risk\n    Analysis (Book 1). Document number is NUS 5235; there is no GPO #;\n    published Jan 31, 1990.\n\n    NASA Office of Space Science and Applications, *Final Environmental\n    Impact Statement for the Ulysses Mission (Tier 2)*, (no serial number or\n    GPO number, but probably available from NTIS or NASA) June 1990.\n\n    [DOE 1980] U.S.  Department of Energy, *Transuranic Elements in the\n    Environment*, Wayne C.  Hanson, editor; DOE Document No.  DOE/TIC-22800;\n    Government Printing Office, Washington, D.C., April 1980.)\n\n\n    IMPACT OF THE SPACE SHUTTLE ON THE OZONE LAYER\n\n    From time to time, claims are made that chemicals released from\n    the Space Shuttle's Solid Rocket Boosters (SRBs) are responsible\n    for a significant amount of damage to the ozone layer. Studies\n    indicate that they in reality have only a minute impact, both in\n    absolute terms and relative to other chemical sources. The\n    remainder of this item is a response from the author of the quoted\n    study, Charles Jackman.\n\n    The atmospheric modelling study of the space shuttle effects on the\n    stratosphere involved three independent theoretical groups, and was\n    organized by Dr. Michael Prather, NASA/Goddard Institute for Space\n    Studies.  The three groups involved Michael Prather and Maria Garcia\n    (NASA/GISS), Charlie Jackman and Anne Douglass (NASA/Goddard Space\n    Flight Center), and Malcolm Ko and Dak Sze (Atmospheric and\n    Environmental Research, Inc.).  The effort was to look at the effects\n    of the space shuttle and Titan rockets on the stratosphere.\n\n    The following are the estimated sources of stratospheric chlorine:\n\n       Industrial sources:    300,000,000 kilograms/year\n\t  Natural sources:     75,000,000 kilograms/year\n\t  Shuttle sources:\t  725,000 kilograms/year\n\n    The shuttle source assumes 9 space shuttles and 6 Titan rockets are\n    launched yearly. Thus the launches would add less than 0.25% to the\n    total stratospheric chlorine sources.\n\n    The effect on ozone is minimal:  global yearly average total ozone would\n    be decreased by 0.0065%. This is much less than total ozone variability\n    associated with volcanic activity and solar flares.\n\n    The influence of human-made chlorine products on ozone is computed\n    by atmospheric model calculations to be a 1% decrease in globally\n    averaged ozone between 1980 and 1990. The influence of the space shuttle and\n    Titan rockets on the stratosphere is negligible.  The launch\n    schedule of the Space Shuttle and Titan rockets would need to be\n    increased by over a factor of a hundred in order to have about\n    the same effect on ozone as our increases in industrial halocarbons\n    do at the present time.\n\n    Theoretical results of this study have been published in _The Space\n    Shuttle's Impact on the Stratosphere_, MJ Prather, MM Garcia, AR\n    Douglass, CH Jackman, M.K.W. Ko and N.D. Sze, Journal of Geophysical\n    Research, 95, 18583-18590, 1990.\n\n    Charles Jackman, Atmospheric Chemistry and Dynamics Branch,\n    Code 916, NASA/Goddard Space Flight Center,\n    Greenbelt, MD  20771\n\n    Also see _Chemical Rockets and the Environment_, A McDonald, R Bennett,\n    J Hinshaw, and M Barnes, Aerospace America, May 1991.\n\n\n    HOW LONG CAN A HUMAN LIVE UNPROTECTED IN SPACE\n\n    If you *don't* try to hold your breath, exposure to space for half a\n    minute or so is unlikely to produce permanent injury. Holding your\n    breath is likely to damage your lungs, something scuba divers have to\n    watch out for when ascending, and you'll have eardrum trouble if your\n    Eustachian tubes are badly plugged up, but theory predicts -- and animal\n    experiments confirm -- that otherwise, exposure to vacuum causes no\n    immediate injury. You do not explode. Your blood does not boil. You do\n    not freeze. You do not instantly lose consciousness.\n\n    Various minor problems (sunburn, possibly \"the bends\", certainly some\n    [mild, reversible, painless] swelling of skin and underlying tissue)\n    start after ten seconds or so. At some point you lose consciousness from\n    lack of oxygen. Injuries accumulate. After perhaps one or two minutes,\n    you're dying. The limits are not really known.\n\n    References:\n\n    _The Effect on the Chimpanzee of Rapid Decompression to a Near Vacuum_,\n    Alfred G. Koestler ed., NASA CR-329 (Nov 1965).\n\n    _Experimental Animal Decompression to a Near Vacuum Environment_, R.W.\n    Bancroft, J.E. Dunn, eds, Report SAM-TR-65-48 (June 1965), USAF School\n    of Aerospace Medicine, Brooks AFB, Texas.\n\n\n    HOW THE CHALLENGER ASTRONAUTS DIED\n\n    The Challenger shuttle launch was not destroyed in an explosion. This is\n    a well-documented fact; see the Rogers Commission report, for example.\n    What looked like an explosion was fuel burning after the external tank\n    came apart. The forces on the crew cabin were not sufficient to kill the\n    astronauts, never mind destroy their bodies, according to the Kerwin\n    team's medical/forensic report.\n\n    The astronauts were killed when the more-or-less intact cabin hit the\n    water at circa 200MPH, and their bodies then spent several weeks\n    underwater. Their remains were recovered, and after the Kerwin team\n    examined them, they were sent off to be buried.\n\n\n    USING THE SHUTTLE BEYOND LOW EARTH ORBIT\n\n    You can't use the shuttle orbiter for missions beyond low Earth orbit\n    because it can't get there. It is big and heavy and does not carry\n    enough fuel, even if you fill part of the cargo bay with tanks.\n\n    Furthermore, it is not particularly sensible to do so, because much of\n    that weight is things like wings, which are totally useless except in\n    the immediate vicinity of the Earth. The shuttle orbiter is highly\n    specialized for travel between Earth's surface and low orbit. Taking it\n    higher is enormously costly and wasteful. A much better approach would\n    be to use shuttle subsystems to build a specialized high-orbit\n    spacecraft.\n\n    [Yet another concise answer by Henry Spencer.]\n\n\n    THE \"FACE ON MARS\"\n\n    There really is a big rock on Mars that looks remarkably like a humanoid\n    face. It appears in two different frames of Viking Orbiter imagery:\n    35A72 (much more facelike in appearance, and the one more often\n    published, with the Sun 10 degrees above western horizon) and 70A13\n    (with the Sun 27 degrees from the west).\n\n    Science writer Richard Hoagland has championed the idea that the Face is\n    artificial, intended to resemble a human, and erected by an\n    extraterrestrial civilization. Most other analysts concede that the\n    resemblance is most likely accidental. Other Viking images show a\n    smiley-faced crater and a lava flow resembling Kermit the Frog elsewhere\n    on Mars. There exists a Mars Anomalies Research Society (sorry, don't\n    know the address) to study the Face.\n\n    The Mars Observer mission will carry an extremely high-resolution\n    camera, and better images of the formation will hopefully settle this\n    question in a few years. In the meantime, speculation about the Face is\n    best carried on in the altnet group alt.alien.visitors, not sci.space or\n    sci.astro.\n\n    V. DiPeitro and G. Molenaar, *Unusual Martian Surface Features*, Mars\n    Research, P.O. Box 284, Glen Dale, Maryland, USA, 1982. $18 by mail.\n\n    R.R. Pozos, *The Face of Mars*, Chicago Review Press, 1986. [Account of\n    an interdisciplinary speculative conference Hoagland organized to\n    investigate the Face]\n\n    R.C. Hoagland, *The Monuments of Mars: A City on the Edge of Forever*,\n    North Atlantic Books, Berkeley, California, USA, 1987. [Elaborate\n    discussion of evidence and speculation that formations near the Face\n    form a city]\n\n    M.J. Carlotto, \"Digital Imagery Analysis of Unusual Martian Surface\n    Features,\" *Applied Optics*, 27, pp. 1926-1933, 1987. [Extracts\n    three-dimensional model for the Face from the 2-D images]\n\n    M.J. Carlotto & M.C. Stein, \"A Method of Searching for Artificial\n    Objects on Planetary Surfaces,\" *Journal of the British Interplanetary\n    Society*, Vol. 43 no. 5 (May 1990), p.209-216. [Uses a fractal image\n    analysis model to guess whether the Face is artificial]\n\n    B. O'Leary, \"Analysis of Images of the `Face' on Mars and Possible\n    Intelligent Origin,\" *JBIS*, Vol. 43 no. 5 (May 1990), p. 203-208.\n    [Lights Carlotto's model from the two angles and shows it's consistent;\n    shows that the Face doesn't look facelike if observed from the surface]\n\n\nNEXT: FAQ #13/15 - Space activist/interest/research groups & space publications\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7091, "properties": {"category": "talk.politics.guns", "text": "From: bressler@iftccu.ca.boeing.com (Rick Bressler)\nSubject: Re: Re: Guns GONE. Good Riddance !\nOrganization: Boeing Commercial Airplane Group\nLines: 13\n\n/ iftccu:talk.politics.guns / Jason Kratz <U28037@uicvm.uic.edu> /  3:34 pm  Apr 18, 1993 /\n\n>>Surrender your arms. Soon enough, officers will be around to collect\n>>them. Resistance is useless. They will overwhelm you - one at a time.\n>       ^^^^^^^^^^^^^^^^^^^^^\n>\n>Listen buddy, if you're going to quote Star Trek get the quote right.  It was\n>\"Resistance is futile\".  Get it right the next time :-)\n\nSounds like a VOGON quote to me..... Perhaps YOU should READ more widely \ninstead of watching that idiot box....\n\nRick.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7092, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: Rewording the Second Amendment (ideas)\nOrganization: Iowa State University, Ames IA\nLines: 21\n\ndfo@vttoulu.tko.vtt.fi (Foxvog Douglas) writes:\n\n>You believe that individuals should have the right to own weapons of\n>mass destruction?  I find it hard to believe that you would support a \n>neighbor's right to keep nuclear weapons, biological weapons, and nerve\n>gas on his/her property.  \n\n\tThat really depends upon where you draw the line while defining\nthese weapons, and also on if you intend the law to be reflective of\nmodern practice five months or five centuries down the road.  I'll give\nyou a little hint:  see that manure pile in the farmer's field down the\nroad?  In the USA, that is a weapon of mass destruction, biological in\nnature, because if it gets washed into an open well it will contaminate\nthe aquifers that supply thousands of cities with drinking water.  So,\nwhere do *you* draw the line?  In the USA, the EPA has ruled that\na pile of scrap iron is illegal.  Care to draw a thinner line this time?\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7093, "properties": {"category": "soc.religion.christian", "text": "From: pmoloney@maths.tcd.ie (Paul Moloney)\nSubject: Re: Am I going to Hell?\nOrganization: Somewhere in the Twentieth Century\nLines: 17\n\nXOPR131@maccvm.corp.mot.com (Gerald McPherson) writes:\n\n>   If you reject the claims of Jesus, and still go to\n>   heaven, then the joke's on me. If you reject him and go to hell,\n>   that's no joke, but it will be final.\n\nIf this is God's attitude, then I'll think I'll go along with\nTerry Pratchett's religious philosophy:\n\n\"Oh, I believe in God. I just don't actually _like_ the blighter.\"\n\nP.\n-- \n moorcockpratchettdenislearydelasoulu2iainmbanksneworderheathersbatmanpjorourke\nclive p a u l  m o l o n e y  Come, let us retract the foreskin of misconception\njames trinity college dublin  and apply the wire brush of enlightenment - GeoffM\n brownbladerunnersugarcubeselectronicblaylockpowersspikeleekatebushhamcornpizza \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7094, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: 30826\nArticle-I.D.: aurora.1993Apr25.151108.1\nOrganization: University of Alaska Fairbanks\nLines: 14\nNntp-Posting-Host: acad3.alaska.edu\n\nI like option C of the new space station design.. \nIt needs some work, but it is simple and elegant..\n\nIts about time someone got into simple construction versus overly complex...\n\nBasically just strap some rockets and a nose cone on the habitat and go for\nit..\n\nMight be an idea for a Moon/Mars base to.. \n\nWhere is Captain Eugenia(sp) when you need it (reference to russian heavy\nlifter, I think).\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.333+0000", "event": "documents", "entityId": 7095, "properties": {"category": "soc.religion.christian", "text": "From: pmoloney@maths.tcd.ie (Paul Moloney)\nSubject: Re: Record burning...\nOrganization: Somewhere in the Twentieth Century\nLines: 23\n\nrgolder@hoh.mbl.edu (Robert Golder) writes:\n\n>The movie version\n>of \"The Last Temptation of Christ\" was so awful that practically no one\n>would have seen it, or been influenced by its message, had not\n>conservatives loudly protested its distribution.  They unwittingly\n>created a larger market for the movie.\n\nIn many places, Christians were sucessful in their attempts\nto get the films banned, or at least given a very restrictive \nshowing.\n\nI have no problem with Christians burning their own pieces of\nart (though I find it a tragic waste). I do however have a \nproblem with their attempts to censor what I may or may not\nview.\n\nP.\n-- \n moorcockpratchettdenislearydelasoulu2iainmbanksneworderheathersbatmanpjorourke\nclive p a u l  m o l o n e y  Come, let us retract the foreskin of misconception\njames trinity college dublin  and apply the wire brush of enlightenment - GeoffM\n brownbladerunnersugarcubeselectronicblaylockpowersspikeleekatebushhamcornpizza \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7096, "properties": {"category": "rec.motorcycles", "text": "From: ai598@cleveland.Freenet.Edu (Mike Sturdevant)\nSubject: Re: Bikes vs. Horses (was Re: insect impac\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 27\nReply-To: ai598@cleveland.Freenet.Edu (Mike Sturdevant)\nNNTP-Posting-Host: slc4.ins.cwru.edu\n\n\nIn a previous article, egreen@east.sun.com (Ed Green - Pixel Cruncher) says:\n\n>In article sda@usenet.INS.CWRU.Edu, ai598@cleveland.Freenet.Edu (Mike Sturdevant) writes:\n\n>  The only people who train for years to jump a horse 2 feet\n>are equistrian posers who wear velvet tails and useless helmets.\n>\n\n\tWhich, as it turns out, is just about everybody that's serious about\nhorses. What a bunch of weenie fashion nerds. And the helmets suck. I'm wearing\nmy Shoei mountain bike helmet - fuck em.>>>\n\n\n>>\tOr I'm permanently injured.\n>\n>Oops.  too late.\n>\n\n\tNah, I can still walk unaided.\n\n\n\n-- \nGo fast. Take chances.\n\n\tMike S.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7097, "properties": {"category": "talk.politics.mideast", "text": "From: terziogl@ee.rochester.edu (Esin Terzioglu)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: Univ of Rochester, College of Engineering and Applied Science\nLines: 21\n\nIn article <1993Apr20.164517.20876@kpc.com> henrik@quayle.kpc.com writes:\n>\n>Esin Terzioglu]  Your ignorance is obvious from your posting. \n>Esin Terzioglu]  1) Cyprus was an INDEPENDENT country with Turkish/Greek \n>\t\t    inhabitants (NOT a Greek island like your ignorant \n>\t\t\tposting claims)\n>Esin Terzioglu]  2) The name should be Cyprus (in English)\n>Esin Terzioglu]  next time read and learn before you post. \n>\n>\n>\n>Aside from spelling , why is that you TURKS DO NOT want to admit your\n>past MISTAKES ? You know TURKISH INVASION of CYPRUS was a mistake and too\n>bad that U.N. DID NOT do anything about it. You may ask : mistake ?\n>Yes, I would say. Why is that the GREEKS DID NOT INVADE CYPRUS ?\n>\n\nThe Greeks did try to invade Cyprus just before the Turkish intervention: They\nfailed. Just for your info. \n\nEsin. \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7098, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Shaft-drives and Wheelies\nFrom: Stafford@Vax2.Winona.MSUS.Edu (John Stafford)\nDistribution: rec\nOrganization: Winona State University\nNntp-Posting-Host: stafford.winona.msus.edu\nLines: 9\n\n>>>>> On 19 Apr 93 21:48:42 GMT, xlyx@vax5.cit.cornell.edu said:\n>  Is it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n\n\tYes, but the _rear_ wheel comes off the ground, not the front.\n See, it just HOPS into the air!  Figure.\n\n====================================================\nJohn Stafford   Minnesota State University @ Winona\n                    All standard disclaimers apply.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7099, "properties": {"category": "alt.atheism", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: The nonexistance of Atheists?!\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 38\n\n>In article <kutluk.734797558@ccl.umist.ac.uk> kutluk@ccl.umist.ac.uk (Kutluk Ozguven) writes:\n>>Atheists are not\n>>mentioned in the Quran because from a Quranic point of view, and a\n>>minute's reasoning, one can see that there is no such thing.\n\n\nI guess that's why scientists probably aren't mentioned either.  Or\nstock brokers.  Or television repairmen.  \n\nIt's precious to know just how deep the brainwashing from childhood\n( that it takes to progress a religion ) cleans away a very substantial\npart of the reasoning neurons.\n\nBut don't mind me;  I don't exist.\n\n-jim halat\n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7100, "properties": {"category": "talk.politics.mideast", "text": "From: anwar+@cs.cmu.edu (Anwar Mohammed)\nSubject: Who should be spied on...\nKeywords: hypocritical pig\nNntp-Posting-Host: gs135.sp.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 62\n\nIn article <C5sDCK.38n@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n>anwar+@cs.cmu.edu (Anwar Mohammed) writes:\n>\n>>In article <4815@bimacs.BITNET> ehrlich@bimacs.BITNET (Gideon Ehrlich) writes:\n>>>The readers of this forum seemed to be more interested in the contents\n>>>of those files.\n>>>So It will be nice if Yigal will tell us:\n>>>1. Why do American authorities consider Yigal Arens to be dangerous?\n>\n>>ADL authorities seem to view a lot of people as dangerous, including\n>>the millions of Americans of Arab ancestry.  Perhaps you can answer\n>>the question as to why the ADL maintained files and spied on ADC members\n>>in California (and elsewhere??)?  Friendly rivalry perhaps?\n>\n>Come on!  Most if not all Arabs are sympathetic to the Palestinian war \n>against Israel.  That is why the ADL monitors Arab organizations.  That is\n>the same reason the US monitored communist organizations and Soviet nationals\n>only a few years ago.  \n>\n\nThe ADC is an organization of Arab-*AMERICANS*.\n\nLet me see...you're saying that \"most if not all\" Arab-AMERICANS should be\nspied on?  You're also saying that \"most if not all\" Arab-AMERICANS\nshould be views as a national security threat to Israel (and the US, \nas you gratuitously imply in your reference to the WTC bombing, in \nwhich no Arab-AMERICANS were involved)?  By inference, can we assume \nthat you think that anyone of Arab lineage anywhere in the world poses \na threat to Israel and, therefore, should be spied on?\n\nPerhaps, then, on the basis of Pollard spy case (not to mention the\nRosenbergs, etc.) you think that all Jewish Americans should be spied \non by the ADC.\n\nOh, never mind; this whole spying case has obviously so \nconvoluted your sense of right or wrong in these matters that I have \nno wish confuse you further.\n\n>>Perhaps Yigal is a Greenpeace member? Or the NAACP? Or a reporter? \n>>Or a member of any of the dozens of other political organizations/ethnic \n>>minorities/occupations that the ADL spied on.\n>\n>All of these groups have, in the past, associated with or been a part of anti-\n>Israel activity or propoganda.  The ADL is simply monitoring them so that if\n>anything comes up, they won't be caught by surprise.\n\nSo the LA times reporter who had information about him\nsold to the South African government was involved in \"anti-Israel\nactivity or propaganda\"? Are we to infer that the simple act of\nreporting an event in a newspaper constitutes \"anti-Israel\nactivity or propaganda\"?  Or was it South Africa?  The LA \ntimes reporter was based in South Africa, after all. \n\n>\n>\n>>>Gideon Ehrlich\n>>-anwar\n>Ed.\n>\n\n\n-anwar again\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7101, "properties": {"category": "sci.electronics", "text": "From: doherty@coolpro.melpar.esys.com (Kevin Doherty)\nSubject: Hard Drive Component Costs\nOrganization: E-Systems, Melpar Division\nLines: 17\n\n  Does anyone have some information on the relative fraction of the final\ncost of each component in an average hard drive?  For instance, I'm pretty\nsure the heads and the platters are the most expensive parts, with the\nassembly costs running a close third.  Cost of the electronics is likely\nin the noise.\n  Any hard numbers ($$ or percentage)?  Thanks.\n\n\n+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+\n| Kevin Doherty           E-Systems/Melpar Division   doherty@melpar.esys.com |\n| Principal Engineer      Falls Church, VA 22046      (703) 560-5000x2659     |\n+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+\n-- \n+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+\n| Kevin Doherty           E-Systems/Melpar Division   doherty@melpar.esys.com |\n| Principal Engineer      Falls Church, VA 22046      (703) 560-5000x2659     |\n+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7102, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mike@drd.com (Mike.Rovak)\nSubject: workaround for Citizen drivers\nSummary: workaround\nKeywords: printer driver Citizen PN48 GSX-140\nOrganization: DRD Corporation\nLines: 38\n\nI have been experiencing several end-user problems with various commercial\nsoftware packages (WordPerfect 5.2/WIN, Publish It!/WIN 3.1) and printing\nlandscape mode on a Citizen PN48 (the little guy) or the Citizen GSX-140+.\n\nIn a nutshell the problem is that I lose the first 0.625 inches of\ninformation from my left margin, be it white space or TrueType font\noutput, and margins are not preserved on subsequent pages past the\nfirst.\n\nWordPerfect had a workaround consisting of using the \"Default\" location\nfor the printers instead of \"Tractor\" or \"Manual\".  They have also filed\nthis as a bug and are continuing to investigate it.\n\nMS Write, of course, has no problem with these printer drivers, proving that\nMicrosoft knows something the rest of us don't!  Are you surprised?  I'm\nnot.\n\nPublish It!/WIN is still investigating this problem, and while I was consider-\nmy options (rejecting the one about buying an $800 DTP package, for *surely*\nthey wouldn't have this problem, right?) I stumbled onto a global workaround.\n\nWORKAROUND\n----------\nGo into the Windows 3.1 control panel, select printers, select your Citizen\nprinter driver, select SETUP, and select a custom size of 850 x 1132.  Like\nmagic, all of your problems will go away.\n\nAsk me no questions and I'll tell you no lies!\n\n-- Mike\n\n\n------------------------------------------------------------------------\nDisclaimer: My opinions do not necessarily reflect those of my employer.\n========================================================================\n------------------------------------------------------------------------\n     mike.rovak@drd.com     \n========================================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7103, "properties": {"category": "sci.space", "text": "Subject: Quotation? Lowest bidder...\nFrom: bioccnt@otago.ac.nz\nOrganization: University of Otago, Dunedin, New Zealand\nNntp-Posting-Host: thorin.otago.ac.nz\nLines: 12\n\n\nCan someone please remind me who said a well known quotation? \n\nHe was sitting atop a rocket awaiting liftoff and afterwards, in answer to\nthe question what he had been thinking about, said (approximately) \"half a\nmillion components, each has to work perfectly, each supplied by the lowest\nbidder.....\" \n\nAttribution and correction of the quote would be much appreciated. \n\nClive Trotman\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7104, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: chrisa@hpwarr.hp.com ( Chris Almy)\nSubject: Re: (?) SpeedSTAR VGA Card Win. Drivers\nReply-To: chrisa@hpwarr.UUCP\nKeywords: VGA SpeedSTAR Drivers Video Card\nLines: 6\n\n\n\tThese drivers (updated) are available directly from Diamond.\n\tthey will even ship them to you at no charge.(at least they \n\tdid for me.)\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7105, "properties": {"category": "misc.forsale", "text": "Subject: unix sale\nFrom: \"mike budlanski\" <mike.budlanski@canrem.com>\nReply-To: \"mike budlanski\" <mike.budlanski@canrem.com>\nDistribution: misc\nOrganization: Canada Remote Systems\nLines: 24\n\n****UNIX****UNIX****UNIX****UNIX****UNIX****UNIX****UNIX****\n\nFORSALE:\n\n        ESIX UNIX System V Release 4 - NEW!\n        2 user license system - $400\n        Unlimited user license system - $450\n        2 user license system with dev kit - $500\n        Unlimited user license system with dev kit - $550\n\nThe above systems include all of the floppies or tapes and\ninstalation manuals. They are new and have never been\ninstalled before. Market value for the above systems is\nabout $1500 US! If you are interested, please contact me\nat 416-233-6038.\n\n\n\n                                         Thanks,\n                                               ...Mike\n                                               mike.budlanski@canrem.com\n--\nCanada Remote Systems - Toronto, Ontario\n416-629-7000/629-7044\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7106, "properties": {"category": "soc.religion.christian", "text": "From: asket@acad2.alaska.edu\nSubject: When is a couple married...\nOrganization: University of Alaska\nLines: 31\n\n\n     I used to be a marriage commissioner for the Alaska Court\nSystem (sort of a justice of the peace).  I had great difficulty\nwith that duty.  I used to pray earnestly in the courthouse\nbathroom before the ceremonies, mostly asking that the couples\nwould come to appreciate and fulfill the true holiness and\ndivine purpose in marriage--couples who obviously didn't realize\nthat marriage is God's institution, not the state's.  Gradually,\nhowever, I came to conclude that because I was acting in a\nstrictly secular, public capacity, established as such by both\nthe state and the expectations of the couples involved, I was\nreally conducting a purely secular, legal civil event, with no\ngreater moral or religious implications than if I had been\nconducting a civil trial (the couple who told me, mid-ceremony,\nto \"please hurry it up\" may have helped me to this conclusion). \n\n     I thought I had neatly rationalized a clear and sharp\ndistinction between marriage before God, and \"marriage\" before\nthe state, until I had to deal with my own divorce.  Keeping\nMatthew 19:6 in mind, I felt that the state had no business\ndissolving my marriage established before God, but of course it\nassumed jurisdiction nonetheless.  \n\n      I would ask those of you proposing answers to this\nquestion to consider this issue's logical extension: If\nintercourse, or the mental intent of the parties, or the\nceremony of the church, or any combination thereof, establishes\nmarriage, then at what moment is it dissolved?  \n\n                                   Karl Thoennes III\n                                   University of Alaska\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7107, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Cell Church discussion group\nOrganization: Indiana University\nLines: 5\n\nThen by that definition, I would be in a cell church only here at IU,\nnot when the whole group gets together at Indianapolis (>950 every week\nin attendance).\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7108, "properties": {"category": "sci.space", "text": "From: mrw9e@fulton.seas.Virginia.EDU (Michael Robert Williams)\nSubject: Re: Orion drive in vacuum -- how?\nOrganization: University of Virginia\nLines: 25\n\nIn article <1993Apr17.053333.15696@sfu.ca> Leigh Palmer <palmer@sfu.ca> writes:\n>In article <1qn4bgINN4s7@mimi.UU.NET> James P. Goltz, goltz@mimi.UU.NET\n>writes:\n>>  Background: The Orion spacedrive was a theoretical concept.\n>\n>It was more than a theoretical concept; it was seriously pursued by\n>Freeman Dyson et al many years ago. I don't know how well-known this is,\n>but a high explosive Orion prototype flew (in the atmosphere) in San\n>Diego back in 1957 or 1958. I was working at General Atomic at the time,\n>but I didn't learn about the experiment until almost thirty years later,\n>when \n>Ted Taylor visited us and revealed that it had been done. I feel sure\n>that someone must have film of that experiment, and I'd really like to\n>see it. Has anyone out there seen it?\n>\n>Leigh\n\nNope, I haven't seen the film, but Taylor's biography (\"The Curve of \nBinding Energy\") contains a short section on Orion and this test flight.\nApparently it was quite impressi, and got von Braun very excited.\n\nIn Real Life:Mike Williams     | Perpetual Grad Student\ne-mail      :mrw9e@virginia.edu|   - It's not just a job, it's an indenture\n---------------------------------------------------------------------------\n\"If you ever have a world of your own, plan ahead- don't eat it.\" ST:TNG\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7109, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@UTKVM1.UTK.EDU (David Veal)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: The University of Tennessee, Knoxville\nX-Newsreader: NNR/VM S_1.3.2\nLines: 43\n\nIn article <93109.13404334AEJ7D@CMUVM.BITNET>\n<34AEJ7D@CMUVM.BITNET> writes:\n \n>I will be surprised if this post makes it past the censors,\n>but here goes:\n>\n>Monday, 19 April, 1993 13:30 EDT\n>\n>                    MURDER  MOST  FOUL!!\n>\n[...]\n>\n>THIS IS MURDER!\n>\n>ATF MURDERERS!  BUTCHERS!!\n>\n>THIS IS GENOCIDAL MASS-SLAUGHTER OF INNOCENT PEOPLE, INCLUDING CHILDREN!\n \n      Well, chalk one up for driving away sympathies by looking like\na paranoid lunatic.\n \n>\n>I have predicted this from the start, but God, it sickens me to see\n>it happen. I had hoped I was wrong. I had hoped that there was\n>still some shred of the America I grew up with, and loved, left\n>alive. I was wrong. The Nazis have won.\n>\n>I REPEAT, AS OF THIS TIME THERE ARE **NO  SURVIVORS**!\n \n       Last I heard there were nine.  Apparently as of this point they've\nfound no bodies, except those killed during the initial assault a couple\nof months ago.\n \n       Be cute if Koresh hit the trail.\n \n       Maybe he was bodily assumed into heaven.  Wouldn't that just\nmake AG Reno's day?\n \n---------------------------------------------------------------------\nDavid Veal  University of Tennessee Division of Continuing Education\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed\\\nWhen you pushed me down the elevator shaft\\ ... Sometimes I get to\nthinking you don't love me anymore.\" - \"Weird Al\" Yankovic.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7110, "properties": {"category": "sci.electronics", "text": "From: jimc@tau-ceti.isc-br.com (Jim Cathey)\nSubject: Re: few video questions\nOrganization: Olivetti North America, Spokane, WA\nLines: 28\n\nIn article <7480224@hpfcso.FC.HP.COM> myers@hpfcso.FC.HP.COM (Bob Myers) writes:\n>situation sometimes called \"block\" sync).  You can generate such a combined\n>(or \"composite\") sync in two simple ways - OR the H. and V. syncs together,\n>which gives you the non-serrated \"block\" sync, or EXOR them, which makes\n>serrations.  (Try it!)  Actually, the EXOR doesn't really do kosher serrated\n>sync, since it puts the rising (and falling, for that matter) edge of the H. \n>sync pulse off by a pulse width.  But that usually makes no difference.\n\nSometimes.  It depends on your monitor and your timing.  If you don't\nhave enough vertical front porch and you use XOR composite sync you can\nget even/odd tearing at the top of the screen, which is very sensitive\nto the HHOLD control.  It looks like what you would expect if you\nscanned the even fields (say) onto a sheet of mylar and had pinched the\nupper left corner with your fingers and started to tear it off the tube. \nWith proper composite sync (equalizing pulses) the interlace is rock\nsolid. \n\n-- \n+----------------+\n! II      CCCCCC !  Jim Cathey\n! II  SSSSCC     !  ISC-Bunker Ramo\n! II      CC     !  TAF-C8;  Spokane, WA  99220\n! IISSSS  CC     !  UUCP: uunet!isc-br!jimc (jimc@isc-br.isc-br.com)\n! II      CCCCCC !  (509) 927-5757\n+----------------+\n\t\t\tOne Design to rule them all; one Design to find them.\n\t\t\tOne Design to bring them all and in the darkness bind\n\t\t\tthem.  In the land of Mediocrity where the PC's lie.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7111, "properties": {"category": "comp.windows.x", "text": "From: rchui@nswc-wo.nswc.navy.mil (Raymond Chui)\nSubject: A Question I Do Not Found In FAQ\nReply-To: rchui@opal.nswc.navy.mil\nOrganization: NAVSWC DD White Oak Det.\nLines: 52\n\nI created a pixmap or drawable window, then used XDrawLine() function \ndrawed a line as below fingure:\n\n\t\twidth = 300\n\t================================\n\t|\t\t\t\t|\n\t|\t\t\t\t|\n\t|\t\t\tp1\t|\n\t|\t\t\t\\\t|\n\t|\t\t\t \\\t| height = 300\n\t|\t\t\t  \\\t|\n\t|\t\t\t   \\\t|\n\t|\t\t\t    \\\t|\n\t|\t\t\t     \\\t|\n\t|\t\t\t      \\\t|\n\t|\t\t\t       \\|p3\n\t|\t\t\t\t| \n\t|===============================| \\\n\t\t\t\t\t    \\\n\t\t\t\t\t     p2\n\n\tI created the pixmap or drawable window only with size 300x300.\nBut I draw line from p1(x1=270,y1=100) to p2(x2=500,y2=800).\nMy question is, dose the XDrawLine function can finger out that correct\np3(x3 and y3) for me? If you calculate x3 and y3. \n\nx3 = 300;\n\n@ = art tan (( 800 - 100)/(500 - 270)) = 71.81 degrees;\n\ny3 = 100 + x3/tan(@) = 100 + 300/tan(71.81) = 198.58 ~= (integer) 199.\n\nHow do I prove XDrawLine() give me the right x3, y3 or not?\nPlease don't ask me why I don't created a 900x900 pixmap. No, I don't\nwan to. \n\nThanks in advance!\n-- \nRaymond H. Chui\nNSWC N62\n10901 New Hampshire Ave.\nSilver Spring, MD 20903-5000\nU.S.A.\nVoice:1(301)394-3807 Ext. 45\nFAX:1(301)394-4483\nEMail:rchui@opal.nswc.navy.mil\n _ __                                  _    ,    __\n' )  )                           /    ' )  /    /  ) /\n /--' __. , , ____   ______   __/      /--/    /    /_  . . o\n/  \\_(_(_(_/_/) ) )_(_) /) )_(_(_     /  ( o  (__/ / /_(_/_(_\n          /\n         '\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7112, "properties": {"category": "rec.autos", "text": "From: arm1@cbnewsm.cb.att.com (arlen.r.martin)\nSubject: Squeekin' Windows\nOrganization: AT&T\nDistribution: usa\nLines: 11\n\nConsumer Reports once wrote about the S-10 Blazer that it \"shook and rattled\nlike a tired taxi cab\".  There is one noise that is expecially irritating -\nthe back window squeaks.  I believe its because the whole tailgate assembly\nand window are not solid.  Anyway, has anyone had the same problem, and have\nyou found any fixes?\n\nArlen Martin\nAT&T Microelectronics\natt!attme!stcarm\n(215)391-2531\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7113, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: High Prolactin\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 12\n\nIn article <93088.112203JER4@psuvm.psu.edu> JER4@psuvm.psu.edu (John E. Rodway) writes:\n>Any comments on the use of the drug Parlodel for high prolactin in the blood?\n>\n\nIt can suppress secretion of prolactin.  Is useful in cases of galactorrhea.\nSome adenomas of the pituitary secret too much.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7114, "properties": {"category": "rec.motorcycles", "text": "From: shz@mare.att.com (Keeper of the 'Tude)\nSubject: Re: Riceburner Respect\nOrganization: Office of 'Tude Licensing\nNntp-Posting-Host: binky\nLines: 14\n\nIn article <1993Apr14.190210.8996@megatek.com>, randy@megatek.com (Randy Davis) writes:\n> |The rider (pilot?)\n> \n>   I'm happy I've had such an effect on your choice of words, Seth.. :-)\n\n:-)\n\nT'was a time when I could get a respectable response with a posting like that.\nRandy's post doesn't count 'cause he saw the dearth of responses and didn't \nwant me to feel ignored (thanks Randy!).\n\nI was curious about this DoD thing.  How do I get a number?  (:-{)}\n\n- Roid\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.334+0000", "event": "documents", "entityId": 7115, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Andrew Zelenetz <azelenet@bigmac.mskcc.org>\nSubject: Centris 610 Video Problem-HELP\nOrganization: Memorial Sloan-Kettering Cancer Center\nLines: 25\nDistribution: world\nNNTP-Posting-Host: zelenetz.ski.mskcc.org\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7F2F208CF0260CA@zelenetz.ski.mskcc.org>\nX-XXDate: Thu, 15 Apr 93 16:05:44 GMT\n\nWe have recently obtained a Centris 610 and it has developed an unusual\nvideo problem. \n\nModel:\t610 with 8 MB/230 HD, 512K VRAM, no cards\nMonitor:\tApple 16\"\n\nWhen the computer is set for 256 colors and certain operations are done,\nparticularly vertical scrolling through a window, horizontal white lines\nappear on the monitor (which generally but not always spare open\nwindows).  These lines accummulate as the operation is continued.  If a\nwindow is moved over the involved area of the screen and then moved away\nthe line disappear from that area of the screen.  This problem is not\nobserved if the monitor is configured for 16 colors or a 14 inch Apple\nmonitor with 256 colors is used. \n\nI suspect a bad video RAM chip but cannot be certain.  The problem has\nbeen apparent since day 1 but has gotten worse.\n\nWe were wondering if anyone has seen anything like this, and if so, how\nto fix it.  Please also respond to azelenet@bigmac.mskcc.org.  Thank you\nfor your help.\n\nAndrew Zelenetz\nMolecular Biology Program\nMemorial Sloan-Kettering Cancer Center\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7116, "properties": {"category": "rec.autos", "text": "From: bjones@TrentU.CA (NAME)\nSubject: Re: WARNING.....(please read)...\nReply-To: bjones@TrentU.CA\nOrganization: Trent University, Peterborough\nLines: 26\n\nIn article <1993Apr16.091938.6821@hasler.ascom.ch>, kevinh@hslrswi.hasler.ascom.ch (kevinh) writes:\n>\n>In article <C5H7qz.KyA@boi.hp.com>, wesf@boi.hp.com (Wes Fujii) writes:\n>|> Brian LaRose (larose@austin.cs.utk.edu) wrote:\n>|> \n>|> : I never saw the guy.  The police said they thought the motive was to\n>|> : hit the car, have us STOP to check out the damage, and then JUMP US,\n>|> : and take the truck.  \n>|> : \n>|> : PLEASE BE AWARE OF FOLKS.  AND FOR YOUR OWN GOOD, PLEASE DON'T STOP!!!!\n>|> \n>|> Sad.  This sort of thing is on the rise across the country.  South Florida\n>|> is getting a lot of national TV coverage on the subject where vacationers\n>|> are being attacked (and some killed) in schemes similar to this.\n>\n>Make that worldwide coverage. I know numerous people who were planning\n>holidays to the Florida, and have now chosen another (non-US)\n>destination. You expect this sort of thing, perhaps, in third world\n>countries - but not the US!\n\n>In response to this and other articles that have been written on this \nsubject, I would like to say that it is not just a US problem.  In southern \nOntario last summer there were several instances along the 401 where people \n(mainly truckers) were shot at from overpasses.  There are many sick people \nout there and it makes you wonder what the worlds coming to.\n>kevinh@hasler.ascom.ch\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7117, "properties": {"category": "sci.electronics", "text": "From: gerg@netcom.com (Greg Andrews)\nSubject: Re: Radar detector DETECTORS?\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 25\n\nnhowland@matt.ksu.ksu.edu (Neal Patrick Howland) writes:\n>\n>From what I understand about radar dectectors all they are is a passive\n>device much like the radio in your car.  They work as an antenna picking\n>up that radar signals that the radar gun sends out.  Therefore there would\n>be no way of detecting a radar detector any more than there would be of\n>detecting whether some one had a radio in their car.  \n>\n\nUnfortunately, you're wrong on both counts.  The most common method of\nimplementing a tunable receiver is to have a local oscillator.  The\nlocal oscillator's frequency can be radiated out of the receiver via\nthe antenna unless the circuit is designed and constructed with great\ncare.\n\nFor a reference on detecting radios, get the paperback book _Spy Catcher_.\nThe author discovered how to detect radio receivers from their local\noscillator emissions back in the *1950s* while he worked for British\nIntelligence.\n\n  -Greg\n-- \n:::::::::::::::::::  Greg Andrews  gerg@netcom.com  :::::::::::::::::::\nFortune Cookie:  Radioactive cats have 18 half-lives.\n:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7118, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ebosco@us.oracle.com (Eric Bosco)\nSubject: Re: Windows Speaker Sound Driver\nNntp-Posting-Host: monica.us.oracle.com\nReply-To: ebosco@us.oracle.com\nOrganization: Oracle Corp., Redwood Shores CA\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\nLines: 15\n\nIn article <1993Apr19.235430.6097@mnemosyne.cs.du.edu>  \nalee@mnemosyne.cs.du.edu (Alec Lee) writes:\n> Is there an ftp site where I can get the MS speaker sound driver?   \nThere's\n> a \"sound.exe\" file that claims to be the driver but I'm suspicious since\n> it's not a .drv file.  \n> \n> Thanks\n> \n> Alec Lee\n\nThe sound.exe is actually a self extracting script which includes the .drv  \nfile.  Works great!\n\n-Eric\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7119, "properties": {"category": "comp.graphics", "text": "From: weston@ucssun1.sdsu.edu (weston t)\nSubject: graphical representation of vector-valued functions\nOrganization: SDSU Computing Services\nLines: 13\nNNTP-Posting-Host: ucssun1.sdsu.edu\n\ngnuplot, etc. make it easy to plot real valued functions of 2 variables\nbut I want to plot functions whose values are 2-vectors. I have been \ndoing this by plotting arrays of arrows (complete with arrowheads) but\nbefore going further, I thought I would ask whether someone has already\ndone the work. Any pointers??\n\nthanx in advance\n\n\nTom Weston                    | USENET: weston@ucssun1.sdsu.edu\nDepartment of Philosophy      | (619) 594-6218 (office)\nSan Diego State Univ.         | (619) 575-7477 (home)\nSan Diego, CA 92182-0303      | \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7120, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: h9022643@hkuxb.hku.hk (Leung)\nSubject: 28800BAUD SPIRIT II MODEM\nNntp-Posting-Host: hkuxb.hku.hk\nOrganization: The University of Hong Kong\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 22\n\nHi world,\n        \n        I want to buy a Spirit II 14400 Data/Fax modem (made in U.S.A.).\nHave anyone heard about it or using it? What is it's performance? Is it\nstable or not? Please give me some advice.\n \n        In addition, I heard a news from local distributor that a new\n28800baud CCITT ROM (the distributor said it will be the new CCITT \nstandard.) for this modem will be produced at the end of this \nyear. After replaced the old ROM by this 28800 ROM, this Spirit II can\ntransfer data at 28800baud without any hardware alternation. Is this \nnew true and possible? Would the telephone line really able to transfer \nat such high speed? Please give me some advice.\n \n        At last, can anyone tell me how to contact with the central \ndealer QuickComm. Inc.? (I am not sure whether it in U.S.A. or not.)\nPlease leave me a e-mail.\n \nThank you very much.\n \nLeung (from Hong Kong University)        \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7121, "properties": {"category": "rec.sport.baseball", "text": "From: mtt@kepler.unh.edu (Matthew T Thompson)\nSubject: RE: survey\nOrganization: University of New Hampshire  -  Durham, NH\nLines: 17\nNNTP-Posting-Host: kepler.unh.edu\nKeywords: survey,complaints\n\nYes, I know this is not Rec.music, (as someone has already pointed out, thanks I know that), I'm trying to get a random sample and also I'm desperate for respones.\nSo please, don't mail me complaining that it doesn't belong here or that it is wasting bandwidth.  \nThis affects EVERYBODY not just readers of music groups.  Please either complete the survey, or hit 'n', because I'll just bounce back complaints.\n\nThank you\n-Matt\n\n\n\n-- \n********************************************************************************\n*     /           \\         #   Matthew T. Thompson                            *\n*    /\\  /|       |\\        #   Electrical/Computer Engineering                *\n*   /  \\/ |ETALLIC| \\       #   University of New Hampshire                    *\n* \\/                 \\/     #   E-mail:  mtt@kepler.unh.edu or my evil twin at *\n*  \\                 /      #            shazam@unh.edu                        *\n********************************************************************************\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7122, "properties": {"category": "sci.med", "text": "Subject: Re: Can't Breathe -- Update\nFrom: RGINZBERG@eagle.wesleyan.edu (Ruth Ginzberg)\nDistribution: world\nOrganization: Philosophy Dept., Wesleyan University\nNntp-Posting-Host: wesleyan.edu\nX-News-Reader: VMS NEWS 1.20In-Reply-To: nyeda@cnsvax.uwec.edu's message of 5 Apr 93 19:06:39 -0600Lines: 17\nLines: 17\n\nThanks to all those who responded to my original post on this question.  The\nfinal diagnosis was Stress.  I did not take her for a chiropractic adjustment.\n(Rachel receives all her medical care at Keller Army Hospital since she is a\nmilitary dependant, and the Army does not yet provide chiropractic adjustments\nas part of its regular health care.)  I am hoping that the arrival of (1)\nSpring Break, and (2) College Acceptance Letters, will help.  *UNFORTUNATELY*\nshe was wait-listed at the college she most dearly wanted to attend, so it\nseems as though that stressor may just continue for a while.  :-(\n\nMeanwhile she is going on a camping trip with her religious youth group for\nspring break, which seems like a good stress-reliever to me.\n\nThanks again for everybody's help/advice/suggestions/ideas.\n\n------------------------\nRuth Ginzberg <rginzberg@eagle.wesleyan.edu>\nPhilosophy Department;Wesleyan University;USA\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7123, "properties": {"category": "rec.motorcycles", "text": "From: keith@hydra.unm.edu ()\nSubject: Where can I AFFORD a Goldwing mirror?\nOrganization: University of New Mexico, Albuquerque\nLines: 9\nDistribution: usa\nNNTP-Posting-Host: hydra.unm.edu\n\nSearched without luck for a FAQ here.  I need a left 85 Aspencade\nmirror and Honda wants $75 for it.  Now if this were another piece\nof chrome to replace the black plastic that wings come so liberally\nsupplied with I might be able to see that silly price, but a mirror\nis a piece of SAFETY EQUIPMENT. The fact that Honda clearly places\nconcern for their profits ahead of concern for my safety is enough\nto convince me that this (my third) wing will likely be my last.\nIn the mean time, anyboby have a non-ripoff source for a mirror?\nkeith smith  keith@hydra.unm.edu\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7124, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 41\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\n\nKent: With all due respect, how can I take you seriously, when you have\nthe NAMES wrong in the 1st place? E.g.:\n\n>\n>The San Jose RC (Ordo Rosae Crucis) \n\n\tThere is no such thing. The correct name is Ancient & Mystical\nOrder Rosae Crucis, abbreviated AMORC.\n\n>...and the Rocicrusian\n>order created by Max Heindel.\n\n\tThere is no such thing either. It's the Rosicrucian Fellowship.\nAnd they clearly state that they DO NOT pretend to descend from the\nOrder of the Fama Fraternitatis.\n\n>In addition there are many splinter groups\n>all around Europe that all claim some connection with the original\n>group supposedly founded in the middle ages.\n\nThe Lectorium? And who else?\n\n>Some Freemason groups\n>also have Rosicrucian-like separate groups, even if they are far\n>from the ideologies the RC groups have somehow in common.\n\nThese are NOT Rosicrucian \"orders\". They are Masonic study groups, none\nof which *claims* to be descendant of the original Order.\n\n>\n>We might compete about how much time we have spent with this :-). Let\n>me start, I was part of the ORC for about 8 years.\n>Kent\n>\nWhat is ORC? If you mean AMORC, you didn't even learn the correct\nname?!\n\nTony\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7125, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: President Names Officials at Transp., Comm., Defen., OPIC\nOrganization: MIT Artificial Intelligence Lab\nLines: 130\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n                         THE WHITE HOUSE\n\n\n                  Office of the Press Secretary\n\n                                                                  \nFor Immediate Release                             April 14, 1993\n\n\n\n                  PRESIDENT NAMES OFFICIALS AT \n           TRANSPORTATION, COMMERCE, DEFENSE, AND OPIC\n\n\n\n(Washington, DC)    President Clinton announced his intention \ntoday to nominate Albert Herberger to be Administrator of the \nFederal Maritime Administration, Loretta Dunn to be Assistant \nSecretary of Commerce for Import Administration, and Christopher \nFinn to be Executive Vice President of the Overseas Private \nInvestment Corporation.  \n\n     Additionally, he has approved the appointments of Joan Yim \nto be Deputy Administrator of the Federal Maritime \nAdministration, Alice Maroni to be Principal Deputy Comptroller \nof the Department of Defense, and Deborah Castelman to be Deputy \nAssistant Secretary of Defense for Command, Control, and \nCommunications.\n\n     \"We are continuing to move forward with putting together a \ngovernment of excellent, diverse Americans who share my \ncommitment to changing the way that Washington works,\" said the \nPresident.  \"These six people I am naming today fit that bill.\"\n\n     Biographical sketches of the nominees are attached.\n\n\n\n                               ###\n\f\n                BIOGRAPHICAL SKETCHES OF NOMINEES\n                          April 14, 1993\n\n\n     Albert Herberger, a thirty-five year Navy veteran who \nretired with the rank of Vice Admiral, is the Vice President of \nthe International Planning and Analysis Center (IPAC).  Among the \npositions he held during his naval service were Deputy Commander-\nin-Chief of the U.S. Transportation Command, Director of \nLogistics on Staff for the Atlantic Fleet Commander-in-Chief, and \nDirector of the Military Personnel Policy Division for the Office \nof Naval Operations.  A surface warfare expert and a merchant \nmarine officer with over eighteen years operational experience, \nHerberger is also Vice Chairman of the National Defense \nTransportation Association's Sealift Committee.  He is a graduate \nof the U.S. Merchant Marine Academy and the Naval Postgraduate \nSchool.\n\n     Loretta Dunn has served on the staff of the Senate Committee \non Commerce, Science, and Transportation since 1979.  Since 1983 \nshe has been the Committee's Senior Trade Counsel, responsible \nfor drafting trade legislation and reports, planning and \nconducting hearings, managing legislation on the Senate floor and \nin conferences with the House, overseeing a variety of executive \nbranch agencies, including the Department of Commerce.  She was \npreviously a Staff Counsel for the Committee.  Dunn holds a B.A. \nin History from the University of Kentucky, a J.D. from the \nUniversity of Kentucky College of Law, and an L.M. from the \nGeorgetown University Law Center.\n\n     Christopher Finn is the Executive Vice President of Equities \nfor the American Stock Exchange.  Previous positions he has held \nhave included Senior Vice President of the Air and Water \nTechnologies Corporation, Chief of Staff to Senator Daniel P. \nMoynihan, Deputy Commissioner of the New York State Department of \nEconomic Development, and Chief Legislative Aide to Congressman \nJames R. Jones.  Finn is a graduate of Harvard College.\n\n     Joan Yim is a professional planner with over 17 years \nexperience in community based planning, policy analysis, project \ndesign and management, inter-agency coordination and government \naffairs.  From 1975-92, she was with the Hawaii Office of State \nPlanning as a planner on issues relating to natural resource and \ncoastal zone management and public infrastructure financing, \namong other issues. Currently, she is Supervising Planner with \nthe Honolulu firm of Parsons Brinckerhogg Quade & Douglas.  \nBefore going to work for the state, she was Executive \nNeighborhood Commission Secretary for the City and County of \nHonolulu, and Chair on the Kaneohe Community Planning Committee.  \nA Democratic National committeewoman, Yim holds a B.A. from \nConnecticut College and pursued graduate studies at the \nUniversity of Hawaii.\n\n                              (more)\n\f\nApril 14, 1993\npage two\n\n\n     Alice Maroni is a professional staff member of the House \nArmed Services Committee specializing in defense budget issues.   \nShe previously worked as a national defense specialist in the \nForeign Affairs and National Defense Division of the \nCongressional Research Service, and as an international risk \nanalyst for Rockwell International.  She has written extensively \non defense budget related topics.  Maroni received her B.A. from \nMount Holyoke College, and an M.A. from the Fletcher School of \nLaw and Diplomacy at Tufts University.  She has also completed \nthe senior service program at the National War College and \nHarvard's Program for Senior Executives in National and \nInternational Security.\n\n     Deborah Castleman is currently on leave from RAND, where she \nis a Space and Defense Policy Analyst.  She was an advisor to the \nClinton/Gore campaign on space, science and technology, and \nnational security issues.  Prior to joining RAND in 1989, \nCastleman held engineering positions with the Hughes Space and \nCommunications Group, General Dynamics, and Electrac, Inc.  She \nserved as an Avionics Technician in the Air Force from 1974-77.  \nCastleman holds a B.S. in Electrical and Electronic Engineering \nfrom California State Polytechnic University, M.S. in Electrical \nEngineering from the California Institute of Technology, and M.A. \nin International Studies from Claremont Graduate School.\n\n                               ###\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.335+0000", "event": "documents", "entityId": 7126, "properties": {"category": "talk.politics.mideast", "text": "From: astein@nysernet.org (Alan Stein)\nSubject: Re: was: Go Hezbollah!\nOrganization: NYSERNet, Inc.\nLines: 21\n\nhernlem@chess.ncsu.edu (Brad Hernlem) writes:\n\n>Tell me Tim, what are these guerillas doing wrong? Assuming that they are using\n>civilians for cover, are they not killing SOLDIERS in THEIR country?\n\nSo, it's okay to use civilians for cover if you're attacking soldiers\nin your country.  (Of course, many of those attacking claim that they\naren't Lebanese, so it's not their country.)\n\nGot it.  I think.  Hmm.  This is confusing.\n\nCould you perhaps repeat your rules explaining exactly when it is\npermissible to use civilians as shields?  Also please explain under\nwhat conditions it is permissible for soldiers to defend themselves.\nAlso please explain the particular rules that make it okay for\nterrorists to launch missiles from Lebanon against Israeli civilians,\nbut not okay for the Israelis to try to defend themselves against\nthose missiles.\n\n-- \nAlan H. Stein                     astein@israel.nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7127, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cscon101@uoft02.utoledo.edu\nSubject: 1-800-832-4778 Western Digital  NO REPLY\nOrganization: University of Toledo, Computer Services\nLines: 3\n\n1-800-832-4778 Western Digital's Voice Mail -\nCan get information on many drives, or an\nactual person at the end.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7128, "properties": {"category": "comp.windows.x", "text": "From: johnc@crsa.bu.edu (John Collins)\nSubject: Problem with MIT-SHM\nOrganization: Boston University\nLines: 27\n\nI am trying to write an image display program that uses\nthe MIT shared memory extension.  The shared memory segment\ngets allocated and attached to the process with no problem.\nBut the program crashes at the first call to XShmPutImage,\nwith the following message:\n\nX Error of failed request:  BadShmSeg (invalid shared segment parameter)\n  Major opcode of failed request:  133 (MIT-SHM)\n  Minor opcode of failed request:  3 (X_ShmPutImage)\n  Segment id in failed request 0x0\n  Serial number of failed request:  741\n  Current serial number in output stream:  742\n\nLike I said, I did error checking on all the calls to shmget\nand shmat that are necessary to create the shared memory\nsegment, as well as checking XShmAttach.  There are no\nproblems.\n\nIf anybody has had the same problem or has used MIT-SHM without\nhaving the same problem, please let me know.\n\nBy the way, I am running OpenWindows 3.0 on a Sun Sparc2.\n\nThanks in advance--\nJohn C.\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7129, "properties": {"category": "comp.graphics", "text": "From: holler@holli.augs1.adsp.sub.org (Jan Holler)\nSubject: Re: Newsgroup Split\nReply-To: holli!holler@augs1.adsp.sub.org\nOrganization: private\nLines: 24\nX-NewsSoftware: GRn 1.16f (10.17.92) by Mike Schwartz & Michael B. Smith\n\nIn article <NERONE.93Apr20085951@sylvester.cc.utexas.edu> nerone@ccwf.cc.utexas.edu (Michael Nerone) writes:\n> In article <1quvdoINN3e7@srvr1.engin.umich.edu>, tdawson@engin.umich.edu (Chris Herringshaw) writes:\n> \n>   CH> Concerning the proposed newsgroup split, I personally am not in\n\n> Also, it is readily observable that the current spectrum of amiga\n> groups is already plagued with mega-crossposting; thus the group-split\n> would not, in all likelihood, bring about a more structured\n> environment.\n\nAm I glad you write that. I got flamed all along because I begged NOT to\ncrosspost some nonsense articles.\n\nThe problem with crossposting is on the first poster. I am aware that this\nposting is a crossposting too, but what else should one do. You never know\nwhere the interested people stay in.\n\nTo split up newsgroups brings even more crossposting.\n\n-- \n\nJan Holler, Bern, Switzerland         Good is not good enough, make it better!\nholli!holler@augs1.adsp.sub.org      ((Second chance: holler@iamexwi.unibe.ch))\n-------------------------------------------------------------------------------\n    (( fast mail: cbmehq!cbmswi!augs1!holli!holler@cbmvax.commodore.com ))     \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7130, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 14/15 - How to Become an Astronaut\nKeywords: Frequently Asked Questions\nArticle-I.D.: cs.astronaut_733694515\nExpires: 6 May 1993 20:01:55 GMT\nDistribution: world\nOrganization: University of North Carolina, Chapel Hill\nLines: 313\nSupersedes: <astronaut_730956661@cs.unc.edu>\nNNTP-Posting-Host: mahler.cs.unc.edu\n\nArchive-name: space/astronaut\nLast-modified: $Date: 93/04/01 14:39:02 $\n\nHOW TO BECOME AN ASTRONAUT\n\n    First the short form, authored by Henry Spencer, then an official NASA\n    announcement.\n\n    Q. How do I become an astronaut?\n\n    A. We will assume you mean a NASA astronaut, since it's probably\n    impossible for a non-Russian to get into the cosmonaut corps (paying\n    passengers are not professional cosmonauts), and the other nations have\n    so few astronauts (and fly even fewer) that you're better off hoping to\n    win a lottery. Becoming a shuttle pilot requires lots of fast-jet\n    experience, which means a military flying career; forget that unless you\n    want to do it anyway. So you want to become a shuttle \"mission\n    specialist\".\n\n    If you aren't a US citizen, become one; that is a must.  After that,\n    the crucial thing to remember is that the demand for such jobs vastly\n    exceeds the supply.  NASA's problem is not finding qualified people,\n    but thinning the lineup down to manageable length.\tIt is not enough\n    to be qualified; you must avoid being *dis*qualified for any reason,\n    many of them in principle quite irrelevant to the job.\n\n    Get a Ph.D.  Specialize in something that involves getting your hands\n    dirty with equipment, not just paper and pencil.  Forget computer\n    programming entirely; it will be done from the ground for the fore-\n    seeable future.  Degree(s) in one field plus work experience in\n    another seems to be a frequent winner.\n\n    Be in good physical condition, with good eyesight.\t(DO NOT get a\n    radial keratomy or similar hack to improve your vision; nobody knows\n    what sudden pressure changes would do to RKed eyes, and long-term\n    effects are poorly understood.  For that matter, avoid any other\n    significant medical unknowns.)  If you can pass a jet-pilot physical,\n    you should be okay; if you can't, your chances are poor.\n\n    Practise public speaking, and be conservative and conformist in\n    appearance and actions; you've got a tough selling job ahead, trying\n    to convince a cautious, conservative selection committee that you\n    are better than hundreds of other applicants.  (And, also, that you\n    will be a credit to NASA after you are hired:  public relations is\n    a significant part of the job, and NASA's image is very prim and\n    proper.)  The image you want is squeaky-clean workaholic yuppie.\n    Remember also that you will need a security clearance at some point,\n    and Security considers everybody guilty until proven innocent.\n    Keep your nose clean.\n\n    Get a pilot's license and make flying your number one hobby;\n    experienced pilots are known to be favored even for non-pilot jobs.\n\n    Work for NASA; of 45 astronauts selected between 1984 and 1988,\n    43 were military or NASA employees, and the remaining two were\n    a NASA consultant and Mae Jemison (the first black female astronaut).\n    If you apply from outside NASA and miss, but they offer you a job\n    at NASA, ***TAKE IT***; sometimes in the past this has meant \"you\n    do look interesting but we want to know you a bit better first\".\n\n    Think space:  they want highly motivated people, so lose no chance\n    to demonstrate motivation.\n\n    Keep trying.  Many astronauts didn't make it the first time.\n\n\n\n\n    NASA\n    National Aeronautics and Space Administration\n    Lyndon B. Johnson Space Center\n    Houston, Texas\n\n    Announcement for Mission Specialist and Pilot Astronaut Candidates\n    ==================================================================\n\n    Astronaut Candidate Program\n    ---------------------------\n\n    The National Aeronautics and Space Administration (NASA) has a need for\n    Pilot Astronaut Candidates and Mission Specialist Astronaut Candidates\n    to support the Space Shuttle Program. NASA is now accepting on a\n    continuous basis and plans to select astronaut candidates as needed.\n\n    Persons from both the civilian sector and the military services will be\n    considered.\n\n    All positions are located at the Lyndon B. Johnson Space Center in\n    Houston, Texas, and will involved a 1-year training and evaluation\n    program.\n\n    Space Shuttle Program Description\n    ---------------------------------\n\n    The numerous successful flights of the Space Shuttle have demonstrated\n    that operation and experimental investigations in space are becoming\n    routine. The Space Shuttle Orbiter is launched into, and maneuvers in\n    the Earth orbit performing missions lastling up to 30 days. It then\n    returns to earth and is ready for another flight with payloads and\n    flight crew.\n\n    The Orbiter performs a variety of orbital missions including deployment\n    and retrieval of satellites, service of existing satellites, operation\n    of specialized laboratories (astronomy, earth sciences, materials\n    processing, manufacturing), and other operations. These missions will\n    eventually include the development and servicing of a permanent space\n    station. The Orbiter also provides a staging capability for using higher\n    orbits than can be achieved by the Orbiter itself. Users of the Space\n    Shuttle's capabilities are both domestic and foreign and include\n    government agencies and private industries.\n\n    The crew normally consists of five people - the commander, the pilot,\n    and three mission specialists. On occasion additional crew members are\n    assigned. The commander, pilot, and mission specialists are NASA\n    astronauts.\n\n    Pilot Astronaut\n\n    Pilot astronauts server as both Space Shuttle commanders and pilots.\n    During flight the commander has onboard responsibility for the vehicle,\n    crew, mission success and safety in flight. The pilot assists the\n    commander in controlling and operating the vehicle. In addition, the\n    pilot may assist in the deployment and retrieval of satellites utilizing\n    the remote manipulator system, in extra-vehicular activities, and other\n    payload operations.\n\n    Mission Specialist Astronaut\n\n    Mission specialist astronauts, working with the commander and pilot,\n    have overall responsibility for the coordination of Shuttle operations\n    in the areas of crew activity planning, consumables usage, and\n    experiment and payload operations. Mission specialists are required to\n    have a detailed knowledge of Shuttle systems, as well as detailed\n    knowledge of the operational characteristics, mission requirements and\n    objectives, and supporting systems and equipment for each of the\n    experiments to be conducted on their assigned missions. Mission\n    specialists will perform extra-vehicular activities, payload handling\n    using the remote manipulator system, and perform or assist in specific\n    experimental operations.\n\n    Astronaut Candidate Program\n    ===========================\n\n    Basic Qualification Requirements\n    --------------------------------\n\n    Applicants MUST meet the following minimum requirements prior to\n    submitting an application.\n\n    Mission Specialist Astronaut Candidate:\n\n    1. Bachelor's degree from an accredited institution in engineering,\n    biological science, physical science or mathematics. Degree must be\n    followed by at least three years of related progressively responsible,\n    professional experience. An advanced degree is desirable and may be\n    substituted for part or all of the experience requirement (master's\n    degree = 1 year, doctoral degree = 3 years). Quality of academic\n    preparation is important.\n\n    2. Ability to pass a NASA class II space physical, which is similar to a\n    civilian or military class II flight physical and includes the following\n    specific standards:\n\n\t Distant visual acuity:\n\t      20/150 or better uncorrected,\n\t      correctable to 20/20, each eye.\n\n\t Blood pressure:\n\t      140/90 measured in sitting position.\n\n    3. Height between 58.5 and 76 inches.\n\n    Pilot Astronaut Candidate:\n\n    1. Bachelor's degree from an accredited institution in engineering,\n    biological science, physical science or mathematics. Degree must be\n    followed by at least three years of related progressively responsible,\n    professional experience. An advanced degree is desirable. Quality of\n    academic preparation is important.\n\n    2. At least 1000 hours pilot-in-command time in jet aircraft. Flight\n    test experience highly desirable.\n\n    3. Ability to pass a NASA Class I space physical which is similar to a\n    military or civilian Class I flight physical and includes the following\n    specific standards:\n\n\t Distant visual acuity:\n\t      20/50 or better uncorrected\n\t      correctable to 20/20, each eye.\n\n\t Blood pressure:\n\t      140/90 measured in sitting position.\n\n    4. Height between 64 and 76 inches.\n\n    Citizenship Requirements\n\n    Applications for the Astronaut Candidate Program must be citizens of\n    the United States.\n\n    Note on Academic Requirements\n\n    Applicants for the Astronaut Candidate Program must meet the basic\n    education requirements for NASA engineering and scientific positions --\n    specifically: successful completion of standard professional curriculum\n    in an accredited college or university leading to at least a bachelor's\n    degree with major study in an appropriate field of engineering,\n    biological science, physical science, or mathematics.\n\n      The following degree fields, while related to engineering and the\n    sciences, are not considered qualifying:\n      - Degrees in technology (Engineering Technology, Aviation Technology,\n\tMedical Technology, etc.)\n      - Degrees in Psychology (except for Clinical Psychology, Physiological\n\tPsychology, or Experimental Psychology which are qualifying).\n      - Degrees in Nursing.\n      - Degrees in social sciences (Geography, Anthropology, Archaeology, etc.)\n      - Degrees in Aviation, Aviation Management or similar fields.\n\n    Application Procedures\n    ----------------------\n\n    Civilian\n\n    The application package may be obtained by writing to:\n\n\tNASA Johnson Space Center\n\tAstronaut Selection Office\n\tATTN: AHX\n\tHouston, TX 77058\n\n    Civilian applications will be accepted on a continuous basis. When NASA\n    decides to select additional astronaut candidates, consideration will be\n    given only to those applications on hand on the date of decision is\n    made. Applications received after that date will be retained and\n    considered for the next selection. Applicants will be notified annually\n    of the opportunity to update their applications and to indicate\n    continued interest in being considered for the program. Those applicants\n    who do not update their applications annually will be dropped from\n    consideration, and their applications will not be retained. After the\n    preliminary screening of applications, additional information may be\n    requested for some applicants, and person listed on the application as\n    supervisors and references may be contacted.\n\n    Active Duty Military\n\n    Active duty military personnel must submit applications to their\n    respective military service and not directly to NASA. Application\n    procedures will be disseminated by each service.\n\n    Selection\n    ---------\n\n    Personal interviews and thorough medical evaluations will be required\n    for both civilian and military applicants under final consideration.\n    Once final selections have been made, all applicants who were considered\n    will be notified of the outcome of the process.\n\n    Selection rosters established through this process may be used for the\n    selection of additional candidates during a one year period following\n    their establishment.\n\n    General Program Requirements\n\n    Selected applicants will be designated Astronaut Candidates and will be\n    assigned to the Astronaut Office at the Johnson Space Center, Houston,\n    Texas. The astronaut candidates will undergo a 1 year training and\n    evaluation period during which time they will be assigned technical or\n    scientific responsibilities allowing them to contribute substantially to\n    ongoing programs. They will also participate in the basic astronaut\n    training program which is designed to develop the knowledge and skills\n    required for formal mission training upon selection for a flight. Pilot\n    astronaut candidates will maintain proficiency in NASA aircraft during\n    their candidate period.\n\n    Applicants should be aware that selection as an astronaut candidate does\n    not insure selection as an astronaut. Final selection as an astronaut\n    will depend on satisfactory completion of the 1 year training and\n    evaluation period. Civilian candidates who successfully complete the\n    training and evaluation and are selected as astronauts will become\n    permanent Federal employees and will be expected to remain with NASA for\n    a period of at least five years. Civilian candidates who are not\n    selected as astronauts may be placed in other positions within NASA\n    depending upon Agency requirements and manpower constraints at that\n    time. Successful military candidates will be detailed to NASA for a\n    specified tour of duty.\n\n    NASA has an affirmative action program goal of having qualified\n    minorities and women among those qualified as astronaut candidates.\n    Therefore, qualified minorities and women are encouraged to apply.\n\n    Pay and Benefits\n    ----------------\n\n    Civilians\n\n    Salaries for civilian astronaut candidates are based on the Federal\n    Governments General Schedule pay scales for grades GS-11 through GS-14,\n    and are set in accordance with each individuals academic achievements\n    and experience.\n\n    Other benefits include vacation and sick leave, a retirement plan, and\n    participation in group health and life insurance plans.\n\n    Military\n\n    Selected military personnel will be detailed to the Johnson Space Center\n    but will remain in an active duty status for pay, benefits, leave, and\n    other similar military matters.\n\n\nNEXT: FAQ #15/15 - Orbital and Planetary Launch Services\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7131, "properties": {"category": "talk.religion.misc", "text": "From: joslin@pogo.isp.pitt.edu (David Joslin)\nSubject: Re: Silence is concurance\nDistribution: usa\nOrganization: Intelligent Systems Program\nLines: 80\n\nFor those missing the context of this thrilling discussion between\nJim and I, Jim wrote the following to me in e-mail after I pointed out\nthat he (Jim) had taken a quote out of context:\n>In t.r.m. Robert Weiss writes [a promise from Psalm 9:10]\n>Gee, since you wouldn't be at all hypocritical, you must be really\n>busy arguing against these out-of-context extracted translations!\n\nHe directed a similar accusation of hypocrisy, again based on a lack of\nresponse to an article by Robert Weiss, toward Stephen.\n\nI pointed out that I did, in fact, agree that both Robert Weiss and\nJim Meritt took quotes out of context.  Hence, I find it difficult to\nunderstand why Jim thinks I am a hypocrite.  Needless to say, I don't\nhave time to reply to *every* article on t.r.m. that takes a quote\nout of context.  \n\nI asked Jim the following:\n>}So, according to you, Jim, the only way to criticize one person for\n>}taking a quote out of context, without being a hypocrite, is to post a\n>}response to *every* person on t.r.m who takes a quote out of context?\n\nJim replied by saying \n>Did I either ask or assert that?\n\nBut today we find four articles from Jim, one of which has the subject\n\"Silence is concurrence\":  \n\nm23364@mwunix.mitre.org (James Meritt) writes:\n>Is it not the case that, in the eyes of the law, when someone is aware of\n>something and has the capability of taking action and does not, that individual\n>may be held responsible for that action?\n\nWhich is, of course, a complete red herring.  Taking quotes out of\ncontext isn't a crime.  I don't have time to read every article on\nt.r.m., and I'm certainly under no obligation to reply to them all.\n\nDoes \"silence is concurrence\" imply that Jim thinks that because I\ndidn't respond to Weiss' articles I must condone Weiss' taking quotes\nout of context?  Jim doesn't want to give a direct answer to this\nquestion; read what he has written and decide for yourself.\n\n\nBut back to the context of my conversation with Jim.  Jim's next \ngambit was to claim that he was using inductive logic when he\nconcluded that I was being a hypocrite.  I challenged him to provide\nthe details of that logic that led him to an incorrect conclusion.\nToday we find another obscure article (posting it twice didn't help\nmake it more clear, Jim), titled \"Inductive Logic\":\n\n>Scenario:\n>A white goose waddles past the door\n>A white goose waddles past the door\n>A white goose waddles past the door\n>...( repeat an uncountably large number of times)...\n>A black goose waddles past the door.  An individual hits it with an axe.\n>\n>1. Given that the population of geese is uncountably large, and the size of the\n>   confidence interval for the decision is undetermined, under what conditions\n>   could a decision upon the behavior of the individual towards white geese\n>   be made?\n>\n>2. If ONLY black geese are observed to be axed, is it not a valid question \n>   to be concerned with the different behavior between black and white geese?\n\nMore red herrings.  Could Jim mean that he has read an uncountably large\nnumber of my articles?  Could Jim mean that because I \"axed\" his articles,\nbut not Weiss' articles, he wants to conclude inductively ...\nWell, I can't see where he is going with this.\n\nBut I can help him with his induction.  I've written roughly 80\narticles since January.  The vast majority of them are discussions with\nFrank DeCenso and other inerrantists, where I take the position that\nthey are making bad arguments.  Some are discussions with Jim Meritt\nwhere I take the position that he is making bad arguments (a straw man\nargument earlier, and taking quotes out of context more recently.)\n\nThink hard about this Jim.  See the pattern?  Think harder.  Run it\nthrough your induction engine and see what pops out.  \n\ndj\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7132, "properties": {"category": "rec.sport.baseball", "text": "From: lsmith@myria.cs.umn.edu (Lance \"Squiddie\" Smith)\nSubject: Re: quick way to tell if your local beat writer is dumb.\nNntp-Posting-Host: myria.cs.umn.edu\nOrganization: The Little Projective Squids of the Poor\nDistribution: na\nLines: 28\n\nIn article <Apr.5.16.22.48.1993.11331@pilot.njin.net> gajarsky@pilot.njin.net (Bob Gajarsky - Hobokenite) writes:\n>\n>jayson stark (i think that's him) fits perfectly in this category.\n\nCould be. There is a Jayson Stark that writes weekly for some press syndicate \nand also for Baseball America.\n\n>anyone who writes \"dean palmer has 2 homers  - at this pace, he'll\n> have 324 home runs!\" should be shot.\n>\n>if, at the end of april, he has 11, and anyone writes \"at this\n> pace, he'll have 100+ homers!\" they shouldbe shot too.\n\nStark has done this sort of thing, but he has never been serious about it.\nHe usually states that this sort of projection is useless at the top of \nsuch columns. I think he did it one season and some manager was \"projected\" \nto be thrown out of 60 games and some hitter could expect to be plunked \n150 times.\n\nStark does some really funny stuff. His weekly baseball reviews are good \ncollections of strange things that happened during the previous week. He \nalso regularly prints Kinerisms.\n\n=============================\n  Lance \"Cr2O3.2H2O\" Smith  | \"Moments after being named manager for the\n    (lsmith@cs.umn.edu)     |  Oakland A's, Mr Peanut was crushed by a \n  Special Limited Edition   |  red headed loner wielding an aluminum bat.\" \n     r.s.bb  .signature     |                _Murder at the Mausoleum_\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7133, "properties": {"category": "comp.graphics", "text": "From: noble@possum.den.mmc.com (Joe A Noble)\nSubject: Re: Newsgroup Split\nOrganization: Martin Marietta Astronautics, Denver\nLines: 26\nNntp-Posting-Host: pogo.den.mmc.com\n\ntmc@spartan.ac.BrockU.CA (Tim Ciceran) writes:\n\n>Chris Herringshaw (tdawson@engin.umich.edu) wrote:\n>: Concerning the proposed newsgroup split, I personally am not in favor of\n>: doing this.  I learn an awful lot about all aspects of graphics by reading\n>: this group, from code to hardware to algorithms.  I just think making 5\n>: different groups out of this is a wate, and will only result in a few posts\n>: a week per group.  I kind of like the convenience of having one big forum\n>: for discussing all aspects of graphics.  Anyone else feel this way?\n>: Just curious.\n\n\n>: Daemon\n\n>What he said...\n\n>-- \nDitto here too...\n\n>TMC\n>(tmc@spartan.ac.BrockU.ca)\n\n-- \n    __/    /       _     __   Joe noble@pogo.den.mmc.com\n  /_     /      /__ /  /__    /__ /  ... all the beauty of a dying vulture...\n_/    ____/  _/   _/  ___/  _/  _/     ...the smile of the truly stupid...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7134, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dfclark@snll-arpagw.llnl.gov (clark dean f)\nSubject: Re: Centris Cache & Bernoulli Box\nArticle-I.D.: snll-arp.519\nDistribution: world\nOrganization: Sandia National Laboratories\nLines: 27\n\nIn article <1993Apr2.123619.548@physc1.byu.edu> goblec@physc1.byu.edu writes:\n>I just tried running my Bernoulli Box off a Centris and the driver\n>software only seems to work when the 040 cache is off.  If it is\n>on I get the message \"This is not a Macintosh Disk - do you wish\n>to initialize it.\"  \n>\n>I have IOMEGA Driver 3.4.2.  Is there a newer version that works\n>with the 040's?  Is there something I am doing wrong?\n>\n>Clark Goble\n>goblec@theory.byu.edu\n\nI Have Version 3.5.1 which I believe was needed for a 040 machine.\nYou should be able to get the newest version by calling their tech\nsupport at 1-800-456-5522 or if you have a modem you can get the\ndriver from their BBS at 801-778-4400.\n\n\n\ndean\n\n\n\n-- \n\nDean Clark\nInternet dfclark@ca.sandia.gov\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7135, "properties": {"category": "talk.politics.misc", "text": "From: gmw0622@venus.tamu.edu (Mr. Grinch)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nOrganization: GrinchCo\nLines: 29\nDistribution: world\nNNTP-Posting-Host: venus.tamu.edu\nSummary: More on failed governments\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr18.200255.13012@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes...\n>In article <18APR199314034390@venus.tamu.edu> gmw0622@venus.tamu.edu (Mr. Grinch) writes:\n>>In article <1993Apr18.172531.10946@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes...\n>>> \n:>:It would seem that a society with a \"failed\" government would be an ideal\n:>:setting for libertarian ideals to be implemented.  Now why do you suppose\n:>:that never seems to occur?...\n:>\n:>\n:>I fail to see why you should feel this way in the first place.  Constant\n:>combat isn't particularly conducive to intellectual theorizing.  Also,\n:>they tend to get invaded before they can come to anything like a stable\n:>society anyway. \n: \n:And the reason that the Soviet Union couldn't achieve the ideal of pure\n:communism was the hostility of surrounding capitalist nations...Uh huh.\n:Somehow, this all sounds familiar.  Once again, utopian dreams are \n:confronted by the real world...\n>Steve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\n\n\nSteve,  you're the one who suggested that a failed government should be an \nideal proving ground,  I never felt that way in the first place.  Quite the \ncontrary,  I think a better proving ground would be someplace that already\nhad a governemnt that would prevent outright acts of agression,  yet had a\nstrong spirit of individualism and initiative.  Someplace like... Texas :-)\n\nMr. Grinch  \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7136, "properties": {"category": "sci.med", "text": "From: sdbsd5@cislabs.pitt.edu (Stephen D Brener)\nSubject: Intensive Japanese at Pitt\nKeywords: San Francisco\nDistribution: usa\nOrganization: University of Pittsburgh\nLines: 112\n\nIn article <C5KxIx.5Ct@cbnewsd.cb.att.com> rcj2@cbnewsd.cb.att.com (ray.c.jender) writes:\n>\n>\tI was kind of half watching Street Stories last night\n>\tand one of the segments was about this doctor in\n>\tS.F. who provides a service of investigating treatment\n>\tfor various diseases. I'm pretty sure his name is\n>\tDr. Mark Renniger (sp?) or close to that. \n>\tDid anyone else watch this? I'd like to get his\n>\tcorrect name and address/phone number if possible.\n>\tThanks.\n\n\n    INTENSIVE JAPANESE AT THE UNIVERSITY OF PITTSBURGH THIS SUMMER\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\nThe University of Pittsburgh is offering two intensive Japanese language\ncourses this summer.  Both courses, Intensive Elementary Japanese and \nIntensive Intermediate Japanese, are ten week, ten credit courses \neach equivalent to one full year of Japanese language study.  They begin \nJune 7 and end August 13.  The courses meet five days per week, five hours \nper day.  There is a flat rate tuition charge of $1600 per course.  \nFellowships available for science and engineering students.  Contact \nSteven Brener, Program Manager of the Japanese Science and Technology\nManagement Program, at the University of Pittsburgh at the number or\naddress below.  \nALL INTERESTED INDIVIDUALS ARE ENCOURAGED TO APPLY, THIS IS NOT LIMITED TO \nUNIVERSITY STUDENTS.\n\n\n\n  \n\n#######################################################################\n#################   New Program Announcement   ########################\n#######################################################################\n\n\n            JAPANESE SCIENCE AND TECHNOLOGY MANAGEMENT PROGRAM\n\nThe Japanese Science and Technology Management Program (JSTMP) is a new\nprogram jointly developed by the University of Pittsbugh and Carnegie Mellon \nUniversity.  Students and professionals in the engineering and scientific \ncommunitites are encouraged to apply for classes commencing in June 1993 and \nJanuary 1994.\n\n\nPROGRAM OBJECTIVES\nThe program intends to promote technology transfer between Japan and the \nUnited States.  It is also designed to let scientists, engineers, and managers\nexperience how the Japanese proceed with technological development.  This is \nfacilitated by extended internships in Japanese research facilities and\nlaboratories that provide participants with the opportunity to develop\nlong-term professional relationships with their Japanese counterparts.\n\n\nPROGRAM DESIGN\nTo fulfill the objectives of the program, participants will be required to \ndevelop advanced language capability and a deep understanding of Japan and\nits culture.  Correspondingly, JSTMP consists of three major components:\n\n1. TRAINING IN THE JAPANESE LANGUAGE\nSeveral Japanese language courses will be offered, including intensive courses\ndesigned to expedite language preparation for scientists and engineers in a\nrelatively short time.\n\n2. EDUCATION IN JAPANESE BUSINESS AND SOCIAL CULTURE\nA particular enphasis is placed on attaining a deep understanding of the\ncultural and educational basis of Japanese management approaches in \nmanufacturing and information technology.  Courses will be available in a \nvariety of departments throughout both universities including Anthropology,\nSociology, History, and Political Science.  Moreover, seminars and colloquiums\nwill be conducted.  Further, a field trip to Japanese manufacturing or \nresearch facilities in the United States will be scheduled.\n\n\n3. AN INTERNSHIP OR A STUDY MISSION IN JAPAN\nUpon completion of their language and cultural training at PITT and CMU, \nparticipants will have the opportunity to go to Japan and observe,\nand participate in the management of technology.  Internships in Japan\nwill generally run for one year; however, shorter ones are possible.\n\n\nFELLOWSHIPS COVERING TUITION FOR LANGUAGE AND CULTURE COURSES, AS WELL AS\nSTIPENDS FOR LIVING EXPENSES ARE AVAILABLE.\n\n        FOR MORE INFORMATION AND APPLICATION MATERIALS CONTACT\n\nSTEVEN BRENER\t\t\t\tSUSIE BROWN\nJSTMP\t\t\t\t\tCarnegie Mellon University, GSIA\nUniversity of Pittsburgh\t\tPittsburgh, PA 15213-3890\n4E25 Forbes Quadrangle\t\t\tTelephone: (412) 268-7806\nPittsburgh, PA 15260\t\t\tFAX:\t   (412) 268-8163\nTelephone: (412) 648-7414\t\t\nFAX:       (412) 648-2199\t\t\n\n############################################################################\n############################################################################ \n\n\nInterested individuals, companies and institutions should respond by phone or\nmail.  Please do not inquire via e-mail.\nPlease note that this is directed at grads and professionals, however, advanced\nundergrads will be considered.  Further, funding is resticted to US citizens\nand permanent residents of the US.\n\nSteve Brener\n\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7137, "properties": {"category": "sci.crypt", "text": "From: tedwards@wam.umd.edu (technopagan priest)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nNntp-Posting-Host: rac2.wam.umd.edu\nOrganization: University of Maryland, College Park\nLines: 11\n\nIn article <1993Apr20.032623.3046@eff.org> kadie@eff.org (Carl M. Kadie) writes:\n>Clipper might be a good way to cover the use of another layer of\n>encryption.\n\nTrue, but will traditional encryptions schemes, when further encrypted\nby Clipper, be _more_ vulnerable to attacks such as partially known\nplaintext?\n\n-Thomas\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.336+0000", "event": "documents", "entityId": 7138, "properties": {"category": "comp.windows.x", "text": "From: tracy@cs.ucf.edu (Tracy Rene Tolley)\nSubject: HELP: xdm & Solaris2.1\nSummary: help with xdm & Solaris2.1\nKeywords: Solaris2.1 xdm\nOrganization: University of Central Florida\nDistribution: comp\nLines: 7\n\nI recently read here that Sun has a patch for xdm on\nSolaris2.1.  I was wondering if anyone could give me the \npatch number. \n\nThanks in advance,\nTracy Tolley\nUniversity of Central Florida - Technical Support\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7139, "properties": {"category": "rec.sport.baseball", "text": "From: wayne@ultra.com (Wayne Hathaway)\nSubject: Re: DESIGNATED HITTER RULE\nReply-To: wayne@ultra.com (Wayne Hathaway)\nOrganization: Ultra Network Technologies\nLines: 17\n\nekdfc@ttacs1.ttu.edu (David Coons):\n > > The rules say baseball is a game between two teams of nine\n > > players each.  Let's keep it that way. \n\nniepornt@phoenix.Princeton.EDU (David Marc Nieporent):\n > Not any more the rules don't say that.  So that's a pretty dumb\n > argument.\n\n\nREALLY???  My little mind be boggled!  I don't have a 1993 Rule Book\nyet, so David, would you please post the new wording of Rule 1.01 -- I\nam MIGHTILY curious!  Much thanks.\n\n    Wayne Hathaway               domain: wayne@Ultra.COM\n    Ultra Network Technologies     uucp: ...!ames!ultra!wayne\n    101 Daggett Drive             phone: 408-922-0100 x132\n    San Jose, CA 95134              FAX: 408-433-9287\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7140, "properties": {"category": "comp.graphics", "text": "From: uk02183@nx10.mik.uky.edu (bryan k williams)\nSubject: Re: CView answers\nKeywords: Stupid Programming\nNntp-Posting-Host: nx10.mik.uky.edu\nOrganization: University of Kentucky\nLines: 4\n\nWell, the temp file thing creates an obvious problem: it is impossible to use\ncview for viewing CD-ROM based picture collections. And it is the ONLY non-\nwindows viewer that works properly with my Cirrus-based 24 bit VGA.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7141, "properties": {"category": "talk.politics.guns", "text": "From: kennejs@a.cs.okstate.edu (KENNEDY JAMES SCOT)\nSubject: Re: A universal RIGHT to bear arms? NOT!\nOrganization: Oklahoma State University, Computer Science, Stillwater\nLines: 73\n\nnathan@laplace.biology.yale.edu (Nathan F. Janette) writes:\n>In article <1993Apr2.080842.3554@a.cs.okstate.edu> kennejs@a.cs.okstate.edu  \n(KENNEDY JAMES SCOT) writes:\n> gary@ke4zv.uucp (Gary Coffman) writes:\n>> >In article <1993Apr1.173759.4636@cs.yale.edu>  \nnathan@laplace.biology.yale.edu writes:\n>> >>In article <C4sK5w.Lsr@ms.uky.edu> miles@ms.uky.edu (Stephen D. Grant)  \nwrites:\n>> >>> nathan@laplace.biology.yale.edu (Nathan F. Janette) writes:\n>> >> >\n>> >>> >I suppose that's true if you maintain that AK-47s and AR-15s are hunting\n>> >>> >weapons.  I think they are fun to \"plink\" cans/targets/random VC with,\n>> >>> >but not suitable for \"real\" hunting.  \n>> >>> \n>> >>>  Wrong. Both are legal to hunt with here in Kentucky. I have a picture of\n>> >>>  a friend with a nice 8-point buck which he shot with his AR-15 rifle.\n>> >>\n>> >>I don't think many deer hunters would condone your friends choice of\n>> >>rifle. \n> \n>> >I must agree with Nathan. As a deer hunter, I find it inhumane to use\n>> >underpowered weapons for deer hunting. To kill cleanly with the little\n>> >.223 requires extremely good marksmanship. Most hunting situations don't\n>> >allow for \"perfect\" shots. Hunters should use sufficiently powerful\n>> >weapons to drop the deer with a single hit to the chest. The 7.62x39\n>> >from the AKS-47 or SKS is adequate to this task, having similar ballistics\n>> >to the familiar 30-30, but the little .223 is very marginal. In the\n>> >hands of the expert, or the lucky, it will do, but hunters really\n>> >should have more respect for their quarry. \n> \n>> >Gary\n> \n>> I'll agree that the popular 55 gr. loading for .223 rem.  is too small for\n>> deer-sized game.  However, if you use a 70 gr. semi-spritzer or the Sierra\n>> 63 gr. semi-pointed bullet this would be suitable (like any round,\n>> you keep your shots within a reasonable range).  It would still be on the\n>> lower end of what I'd consider acceptable performance, especially those\n>> long distance shots out West hunting Monster Mule Deer.  The .223 rem. has\n>> been declared legal for deer hunting in Oklahoma.\n> \n>> The .223 is excellent for varmit hunting and pest control.  The AR-15 in\n>> particular is well suited, given its heavy barrel and heat shielded foregrip.\n>> Add a high-power scope, and you're in \"Dog heaven\".\n> \n>> However, I don't think Nathan Janette was refering to the specific chambering\n>> of the rifle in question.  Maybe he thinks self loading rifles have no\n>> place in deer hunting.  That may (or may not) be his opinion, but many\n>> sportsmen do use self loading rifles and shotguns.\n\n>Wrongo, NRA man.  I was definitely referring to the round, not the\n>auto-loading aspect of the rifle.  I have no problem with *responsible*\n>hunting.  That doesn't include machine guns from choppers, but a semi is\n>fine.  My uncle has bagged several deer with 12 gauge slugs.  I would prefer\n>that a hunter use as much of the catch as possible, and I don't condone\n>hunting for \"sport\" only. \n\n>IMHO, of course.  \n\nTwo questions:\n\n1)  You asserted that both the AR-15 and AK-47 are not suitable for\n   \"real hunting\".  If you have no problem with hunting, or using\n   self loading rifles for hunting, why did you say this?  If not\n   for deer, then what about other, smaller game?\n\n2)  When did I get the nickname \"NRA man\"?  Notice I have never referred\n   to you as \"Janette\" which you don't seem to like.  Do I get any\n   super-powers, like Spider Man or Powdered Toast Man?\n\nScott Kennedy    Brewer, Patriot, and now NRA-Man, defender of Truth,\n                 Justice, and the 2nd Amendment.\n\nkennejs@a.cs.okstate.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7142, "properties": {"category": "rec.sport.baseball", "text": "From: m_klein@pavo.concordia.ca (CorelMARK!)\nSubject: Re: Players Rushed to Majors\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: pavo1.concordia.ca\nOrganization: Concordia University\nLines: 6\n\nI missed the original post, but aren't the Expos rushing alomost their\nentire team this year?  I am from Montreal, and am a fan, but geez, the \nExpos rank 27th in salary (only the Rockies trail) and someone at \nthe average age would probably be in first year University!\n\t\t\tCorelMARK!\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7143, "properties": {"category": "rec.autos", "text": "From: thorn@wam.umd.edu (Thornwall)\nSubject: Q: Dings in the paint on my hood  :(\nNntp-Posting-Host: rac3.wam.umd.edu\nOrganization: Workstations at Maryland, University of Maryland, College Park\nDistribution: usa\nLines: 21\n\n\nHello,\n \nI have a 92 Toyota 4X4 and in the last few weeks I have been getting quite\na few \"dings\" :( in the paint on the hood from rocks and debris off of the\nroad. I have never had any major problems with other car/trucks in the past\n(maybe a ding once in a while). I went to the dealer and he said that it\nhappens all of the time and he recomended putting a bug deflector on the\nhood. He said that the trucks, for some unknown reason, seem to have this\nproblem more than some cars.? \n\nIt seems to me that either my luck is really bad or there might be a problem\nwith the paint (painted on a monday morning perhaps?). \n \nHow well do these bug deflectors work for small road debris on trucks? \n \nIf anyone has any experiences/suggestions please let me know, thanks.\n \n--Greg \n \nthorn@wam.umd.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7144, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Israeli Terrorism\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 18\n\nIn article <1993Apr24.203620.6531@Virginia.EDU> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n>I think the Israeli press might be a tad bit biased in\n>reporting the events. I doubt the Propaganda machine of Goering\n>reported accurately on what was happening in Germany. It is\n>interesting that you are basing the truth on Israeli propaganda.\n\nSince one is also unlikely to get \"the truth\" from either Arab or \nPalestinian news outlets, where do we go to \"understand\", to learn? \nIs one form of propoganda more reliable than another? The only way \nto determine that is to try and get beyond the writer's \"political\nagenda\", whether it is \"on\" or \"against\" our *side*.\n\nTim \n--\nTim Clock                                   Ph.D./Graduate student\nUCI  tel#: 714,8565361                      Department of Politics and Society\n     fax#: 714,8568441                      University of California - Irvine\nHome tel#: 714,8563446                      Irvine, CA 92717\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7145, "properties": {"category": "rec.sport.hockey", "text": "From: nlu@Xenon.Stanford.EDU (Nelson Lu)\nSubject: SHARKS REVIEW Part 5: Left Wings\nOrganization: Computer Science Department, Stanford University.\nLines: 161\n\nApparently, Part 2 (defensemen numbered 2 through 19) was lost when I posted\nit; to make things worse, I lost my own copy.  I have asked on the Sharks\nmailing list, on which it did get out, to see if someone can mail me a copy\nback.  If someone responds, I will repost it when I get it; otherwise, I will\nre-write it in a day or two and post it.  Sorry about that.\n\n#8\tLARRY DEPALMA\t\tSeason:\t3rd\nAcquired:\t'91-92, free agent from Minnesota\nGrade:\t\tI (C-/D+)\n\nNo netter/fan watching the Sharks, including me, knows where DePalma was at\nthe end of the season; the Sharks appeared to still have his rights, but he\nwasn't in San Jose, he wasn't in Kansas City, and his name hasn't appeared on\nthe waiver wire.  And that kind of invisibility was prevalent for the most part\nfor DePalma.  After being called up October 30 against the Tampa Bay Lightning,\nDePalma had an excellent week, scoring 5 points in 3 games while playing good\ndefense.  Unfortunately, the 27-year-old DePalma then disappeared the rest of\nthe way, getting just 3 more points in 15 more games, and generally looked\nlethargic and uninterested on both ends of the ice.  He then was sent down to\nKansas City, walked out from there, and was suspended and later reinstated\nwhen it was revealed that he was injured; he then promptly disappeared from\nthe watching eyes of Shark Bytes (as the mailing list is now known to Sharks\nofficials) faithful, and neither the Sharks nor we miss him.\n\n#10\tJOHAN GARPENLOV\t\tSeason: 3rd\nAcquired:\t'91-92, trade with Detroit for D Bob McGill and 8th round\n\t\tpick in '92 entry draft from Vancouver\nGrade:\t\tA/A-\n\nAfter an early slump, Garpenlov was nothing short of inspirational the rest\nof the way, finishing with 66 points in 79 games, second highest total on the\nteam, as he clicked well with team MVP Kelly Kisio and right wing Rob\nGaudreau.  Kisio got most of the credit, but Garpenlov, finishing second in\nthe MVP voting, clearly demonstrated his playmaking and scoring skills, as he\nwas seen making excellent centering passes as well as finishing passes to him\nby putting the puck past opposing goaltenders, getting a club-high 14 power-\nplay goals.  Contrary to his previous rep, Garpenlov also showed that despite\nhis small size (5' 11\", 183 lbs.), he was willing to throw himself around\nwhen necessary, albeit not very successful yet.  He also still needs to work\non his defense, although he improved tremendously throughout the season, and\nwas actually quite a good penalty killer by the end of the season.  He will\nbe a major key to the offense next year.\n\n#15\tDAVID BRUCE\t\tSeason: 5th\nAcquired:\t'91-92, from St. Louis in expansion draft\nGrade:\t\tI (?)\n\nAfter a banner '91-92, when he led the team in power-play goals (10) and\nwas third in total scoring (38 points in 60 games), Bruce was bothered\nvirtually all of this season with a groin injury, which kept him out of the\nlineup for all by 17 games this season.  Of course, it is difficult to\nspeculate how well he would have done this season had he not been affected by\nthe injury, but the 28-year-old Bruce was effective with a man up or a man\nshort in the Sharks' first season, and was expected to be a strong offensive\nleader this season as well.  The injury appears serious, which is a shame,\nbecause otherwise he may have a much brighter future for now; instead, his\nfuture with the Sharks next season appears clouded.\n\n#18\tMARK PEDERSON\t\tSeason:\t3rd\nAcquired:\t'92-93, trade with Philadelphia for C/LW Dave Snuggerud\nGrade:\t\tI (B)\n\nIt is difficult for me to understand the Flyers' decision to unload Pederson,\nafter a very good offensive season last season (40 points in 58 games), but\nafter riding the pine early in the season, Pederson was summarily sent to the\nSharks in exchange of the defensive-minded Snuggerud, and he finished with\n41 games combined with the Flyers and the Sharks.  He was also limited by\ninjuries this season, and this limited his production (17 points).  But when\nhealthy, Pederson appears impressive, with a good scoring touch, good size\n(and the willingness to throw it around, although he's not considered a\nphysical forward), and good speed.  He also does not appear to be a liability\non defense, but the Sharks probably have to wait until next season to see how\nmuch, exactly, Pederson can do.\n\n#20\tJOHN CARTER\t\tSeason: 4th\nAcquired:\t'91-92, free agent from Boston\nGrade:\t\tI (B+/B)\n\nCarter was definitely one of the hardest workers on the team, and the hard\nwork worked wonders, as at times he looked great on ice.  However, although he\ndid look great at times, the fact that he received just 16 points (in 55\ngames) for his efforts is a sign that there is only so much his hard work can\ndo, and the Sharks confirmed that by sending him to Kansas City with about\n20 games left in the season.  Carter, who will turn 30 on May 6, always\nhussled, but as a result, was sometimes trapped too deep within the offensive\nzone while forechecking, but he was generally a credit on the defensive end,\nbut he is probably of limited utility in that capacity, and he did not impress\noffensively, although he was one of the best Sharks at drawing penalties.  He\nis very unlikely to be back next season.\n\n#28\tJEAN-FRANCOIS QUINTIN\tSeason: 1st\nAcquired:\t'91-92, from Minnesota in dispersal draft\nGrade:\t\tI (B+/B)\n\nI don't understand why the Sharks didn't let Quintin play any more than the\n14 games he played this season.  He was generally hard-working and creating\nopportunities offensively, and appeared, at age 23, ready for regular NHL\nduty, at least for a team like the Sharks, finishing with 7 points in those\n14 games while not being a defensive liability.  Shoulder injury in training\ncamp before the '91-92 season limited Quintin, the team's leading scorer in\nexhibition games despite sitting out the final two, to just 29 games with the\nSharks and the Blades that season, but he looked impressive.  He should be a\nsolid contender for regular duty next season.\n\n#41\tMARK BEAUFAIT\t\tSeason: 1st\nAcquired:\t2nd round pick in 1991 supplemental draft\nGrade:\t\tI (?)\n\nAfter a all-star season at Kansas City, Beaufait got a cup of coffey with the\nSharks late in the season when the Blades knocked down a playoff spot and the\nSharks decimated with injuries, playing 5 games and scoring a goal for his only\nNHL point thus far.  Despite small size (5' 9\", 165 lbs.), Beaufait was not shy\nto throw himself around when necessary, and looked pretty good at times,\nalthough it's too early to judge him based on 5 NHL games, in which he played\nmostly left wing, away from his center position at Northern Michigan and\nKansas City.\n\n#42\tJAROSLAV OTEVREL\tSeason: 1st\nAcquired:\t8th round pick in 1991 entry draft\nGrade:\t\tI (?)\n\nLike Beaufait, Otevrel also played away from his normal position when he was\nup for his cup of tea (7 games) midway through the season.  He was generally\nvery much of a defensive liability, and did not show much offensively either,\nalthough that may be more indicative of the lack of ice time he got in those\n7 games.  He may need another season to work on his defense, but once his\ndefense is acceptable, he should be ready.\n\n#44\tMICHEL PICARD\t\tSeason: 1st\nAcquired:\t'92-93, trade with Hartford for LW Yvon Corriveau\nGrade:\t\tI (B-/C+)\n\nThe 23-year-old Picard, although he perennially tore up the minors, seems to\nbe close to being out of chances, for some reason, after being acquired by the\nSharks but failing to impress the management in 25 games, scoring 4 goals for\nhis only points, and he spent most of the rest of the way in Kansas City.\nHe was not particularly strong defensively, and despite his offensive\nbrilliance in the minors, he has failed thus far to score in the NHL, although\nhe has been given limited opportunities.  He may be the Sharks' bait in the\nexpansion draft.\n\n#45\tDODY WOOD\t\tSeason: 1st\nAcquired:\t3rd round pick in 1991 entry draft\nGrade:\t\tI (D+/D, although perhaps I shouldn't give a grade at all)\n\nI have been accused of knocking on Wood too much. :-)  Then, it is probably\nno surprise to you that I am thoroughly unimpressed by Wood thus far, although\n13 games is a small example.  He was generally a nonfactor on offense, was\nnot particularly good defensively, and took too many silly penalties, losing\nmany fights in the process and gathering 69 penalty minutes in those 13 games,\nprojecting to to 446(!) in an 84-game season.  He's not ready, and needs at\nleast another season at KC, where he can work on his fighting skills, if\nnothing else.  His relatively small size (5' 11\", 181 lbs.) does not give much\npossibility that he can survive, at this stage, as an enforcer.\n\n===============================================================================\nGO CALGARY FLAMES!  Al MacInnis for Norris!  Gary Roberts for Hart and Smythe!\nGO EDMONTON OILERS!  Go for playoffs next year!  Stay in Edmonton!\n===============================================================================\nNelson Lu (claudius@leland.stanford.edu)\nrec.sport.hockey contact for the San Jose Sharks\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7146, "properties": {"category": "alt.atheism", "text": " zaphod.mps.ohio-state.edu!wupost!uunet!olivea!sgigate!odin!fido!solntze.wpd.sgi.com!livesey\nSubject: Re: <Political Atheists?\nFrom: livesey@solntze.wpd.sgi.com (Jon Livesey)\nOrganization: sgi\nNNTP-Posting-Host: solntze.wpd.sgi.com\nLines: 28\n\nIn article <1pi8h5INNq40@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> (reference line trimmed)\n|> \n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> [...]\n|> \n|> >There is a good deal more confusion here.   You started off with the \n|> >assertion that there was some \"objective\" morality, and as you admit\n|> >here, you finished up with a recursive definition.   Murder is \n|> >\"objectively\" immoral, but eactly what is murder and what is not itself\n|> >requires an appeal to morality.\n|> \n|> Yes.\n|> \n|> >Now you have switch targets a little, but only a little.   Now you are\n|> >asking what is the \"goal\"?   What do you mean by \"goal?\".   Are you\n|> >suggesting that there is some \"objective\" \"goal\" out there somewhere,\n|> >and we form our morals to achieve it?\n|> \n|> Well, for example, the goal of \"natural\" morality is the survival and\n|> propogation of the species. \n\n\nI got just this far.   What do you mean by \"goal\"?    I hope you\ndon't mean to imply that evolution has a conscious \"goal\".\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7147, "properties": {"category": "sci.space", "text": "From: mancus@sweetpea.jsc.nasa.gov (Keith Mancus)\nSubject: Re: Lindbergh and the moon (was:Why not give $1G)\nOrganization: MDSSC\nLines: 60\n\njbh55289@uxa.cso.uiuc.edu (Josh Hopkins) writes:\n>mancus@sweetpea.jsc.nasa.gov (Keith Mancus) writes:\n>>cook@varmit.mdc.com (Layne Cook) writes:\n>>> The $25k Orteig prize helped Lindbergh sell his Spirit\n>>> of Saint Louis venture to his financial backers. But I strongly suspect\n>>> that his Saint Louis backers had the foresight to realize that much more\n>>> was at stake than $25,000. Could it work with the moon? Who are the\n>>> far-sighted financial backers of today?\n \n>>  The commercial uses of a transportation system between already-settled-\n>>and-civilized areas are obvious.  Spaceflight is NOT in this position.\n>>The correct analogy is not with aviation of the '30's, but the long\n>>transocean voyages of the Age of Discovery.\n> Lindbergh's flight took place in '27, not the thirties.\n \n  Of course; sorry for the misunderstanding.  I was referring to the fact\nthat far more aeronautical development took place in the '30's.  For much\nof the '20's, the super-abundance of Jennies and OX-5 engines held down the\nindustry.  By 1926, many of the obsolete WWI aircraft had been retired\nand Whirlwind had their power/weight ratio and reliability up to the point\nwhere long-distance flights became practical.  It's important to note that\nthe Atlantic was flown not once but THREE times in 1927:  Lindbergh,\nChamberlin and Levine, and Byrd's _America_.  \"When it's time to railroad,\nyou railroad.\"\n\n>>It didn't require gov't to fund these as long as something was known about\n>>the potential for profit at the destination.  In practice, some were gov't\n>>funded, some were private.\n>Could you give examples of privately funded ones?\n\n  Not off the top of my head; I'll have to dig out my reference books again.\nHowever, I will say that the most common arrangement in Prince Henry the\nNavigator's Portugal was for the prince to put up part of the money and\nmerchants to put up the rest.  They profits from the voyage would then be\nshared.\n\n>>But there was no way that any wise investor would spend a large amount\n>>of money on a very risky investment with no idea of the possible payoff.\n>A person who puts up $X billion for a moon base is much more likely to do\n>it because they want to see it done than because they expect to make money\n>off the deal.\n\n  The problem is that the amount of prize money required to inspire a\nMoon Base is much larger than any but a handful of individuals or corporations\ncan even consider putting up.  The Kremer Prizes (human powered aircraft),\nOrteig's prize, Lord Northcliffe's prize for crossing the Atlantic (won in\n1919 by Alcock and Brown) were MUCH smaller.  The technologies required were\nwithin the reach of individual inventors, and the prize amounts were well\nwithin the reach of a large number of wealthy individuals.  I think that only\na gov't could afford to set up a $1B+ prize for any purpose whatsoever.\n  Note that Burt Rutan suggested that NASP could be built most cheaply by\ntaking out an ad in AvWeek stating that the first company to build a plane\nthat could take off and fly the profile would be handed $3B, no questions\nasked.\n\n-- \n Keith Mancus    <mancus@butch.jsc.nasa.gov>                           |\n N5WVR           <mancus@sweetpea.jsc.nasa.gov>                        |\n \"Black powder and alcohol, when your states and cities fall,          |\n  when your back's against the wall....\" -Leslie Fish                  |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7148, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Re: Who Says the Apostles Were Tortured?\nLines: 9\n\nThe traditions of the church hold that all the \"apostles\" (meaning the 11\nsurviving disciples, Matthias, Barnabas and Paul) were martyred, except for\nJohn.  \"Tradition\" should be understood to read \"early church writings other\nthan the bible and heteroorthodox scriptures\".\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7149, "properties": {"category": "misc.forsale", "text": "From: Don_Alder@mindlink.bc.ca (Don Alder)\nSubject: Bware of JayHayes/Deleware\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 10\n\nHad a deal with Jay Hayes from Deleware and was ripped off do not deal with\nthis guy and if you know him go to his door with a bat! He lives in Deleware\nand I will post his full address later as well as his phone number in case\nany on e else wants to call and leave nasty messages. He will not return\nemail and he will not return my phone calls I left a message iwth hgis\nroomate to call collect and hes not man enough. He still maintains net\nprivilages, can we somehow get this turkey off the net.\n\nDA\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7150, "properties": {"category": "soc.religion.christian", "text": "From: JJMARVIN@pucc.princeton.edu\nSubject: prayers and advice requested on family problem\nOrganization: Princeton University\nLines: 70\n\nMy brother has been alienated from my parents and me since shortly after\nhis marriage to a domineering and insecure woman, about twelve years ago.\nWe've kept things on a painfully polite, Christmas-card sort of level\nfor most of this time. Attempts to see each other end disastrously, with\nhis wife throwing a screaming fit and storming out over either our imagined\nslights to her, or his inattention or insensitivity to her (I mean, this'll\nhappen by the end of a single restaurant meal). He seems, from what I've\nseen, to live in a state of quivering anxiety, hoping futilely to keep\nthe next storm from breaking. He has sacrificed not only meaningful contact\nwith us but also other friends and outside interests. Now, this is his\nchoice, and I need to accept it even if I deplore it. But it's hard.\n   From time to time I've wanted to drop the pretense that we have a\nrelationship--by cutting off contact--or trying to have a real if painful\nrelationship, by talking honestly with him, but I've always thought, \"Why\nbe dramatic? And you know he'll only get evasive and then find some excuse\nto get off the phone. Just leave the door open, in case he ever decides to\ncome back.\" It's been an unsatisfying choice, to allow us to go on\nwith the superficial trappings of a relationship, but it was the best I\ncould think of.\n   Now, this weekend, my mother finally decided that she wasn't going\nto pretend any more and has cut off relations with them. This was the\noutcome of a phone conversation in which my sister-in-law screamed and\nraved at my mother, blaming her for everything wrong in their lives, and\nin which my brother evaded, temporized, claimed the situation was\nbeyond his control, and as always expected my mother to make all the\nallowances and concessions. Mom said she would not, that she would not\nquietly take abuse any more, and that if these were the terms of their\nrelationship, she didn't want to talk to or see them any more. And she hung\nup. (I have never seem my mother lose her temper, and I think that this is\nthe first time she's ever hung up on someone.) Mom says she feels as if\nshe's divorced my brother, and that it's a relief in some ways to have the\nbreak out in the open and done with.\n \n    I have mixed feelings. I'm proud of Mom for sticking up for herself;\nangry at my brother and sister-in-law for hurting her, for being jerks, for\npersisting in such a wretched life, which hurts us all and is warping their\nchildren; angry at my sister-in-law for being so hateful, and angry at my\nbrother for being a coward and having so little respect for himself or us\nthat he's willing to throw us aside and use up all his energy trying to\nappease an unappeasable,\nemotionally disturbed woman; pained for their children, who are a mess;\nscared for the future, since this marks the time when either things will\nchange and improve or the break will become irrevocable; nastily self-\nrighteous over this bit of proof that they can't \"get away\" with treating\nus or each other this way, and then disgusted with myself for even\nbeginning to gloat over others' misery; and finally, mostly, sad, sad,\nsad, to see my parents hurt and my brother and sister-in-law trapped in\na horrible, destructive situation that they can't see a way out of--or\nthey can't bear to take whatever paths they do see. And I'm frustrated\nbecause I don't know what if anything to do, and doing nothing drives me\nup the wall. I try to pray, about my own feelings of rage, impotence,\nand vindictiveness, and about their situation, but I am not\nfree of the desire to *DO* something concrete. (The desire to *DO*\nsomething, to define a problem and fix it, is one of my besetting\nvices; I'm having a terrible time quieting down my internal\nmental chatter enough to listen for God.)\n  Do you thoughtful and kind people on the net have advice for me? Is\nthis a time to reach out to my brother? To let things be? How can I\nconquer my rage AT him enough to be there FOR him?\n \nHere's the big question I've been evading throughout this long, long\npost: Is it ok, as a Christian and a proponent of faith, hope, and\ncharity, to accept the destruction of a relationship? To give up on\nmy own brother, or at least to accept that I am powerless to help him\nand can only wait and see what happens? Do please answer--by e-mail or\npost.\n \nThank you.\n \nJulie (jjmarvin@pucc.princeton.edu)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7151, "properties": {"category": "sci.space", "text": "From: mcelwre@cnsvax.uwec.edu\nSubject: LARSONIAN Astronomy and Physics\nOrganization: University of Wisconsin Eau Claire\nLines: 552\n\n\n\n                      LARSONIAN Astronomy and Physics\n\n               Orthodox physicists, astronomers, and astrophysicists \n          CLAIM to be looking for a \"Unified Field Theory\" in which all \n          of the forces of the universe can be explained with a single \n          set of laws or equations.  But they have been systematically \n          IGNORING or SUPPRESSING an excellent one for 30 years! \n\n               The late Physicist Dewey B. Larson's comprehensive \n          GENERAL UNIFIED Theory of the physical universe, which he \n          calls the \"Reciprocal System\", is built on two fundamental \n          postulates about the physical and mathematical natures of \n          space and time: \n    \n               (1) \"The physical universe is composed ENTIRELY of ONE \n          component, MOTION, existing in THREE dimensions, in DISCRETE \n          UNITS, and in two RECIPROCAL forms, SPACE and TIME.\" \n    \n               (2) \"The physical universe conforms to the relations of \n          ORDINARY COMMUTATIVE mathematics, its magnitudes are \n          ABSOLUTE, and its geometry is EUCLIDEAN.\" \n    \n               From these two postulates, Larson developed a COMPLETE \n          Theoretical Universe, using various combinations of \n          translational, vibrational, rotational, and vibrational-\n          rotational MOTIONS, the concepts of IN-ward and OUT-ward \n          SCALAR MOTIONS, and speeds in relation to the Speed of Light \n          (which Larson called \"UNIT VELOCITY\" and \"THE NATURAL \n          DATUM\"). \n      \n               At each step in the development, Larson was able to \n          MATCH objects in his Theoretical Universe with objects in the \n          REAL physical universe, (photons, sub-atomic particles \n          [INCOMPLETE ATOMS], charges, atoms, molecules, globular star \n          clusters, galaxies, binary star systems, solar systems, white \n          dwarf stars, pulsars, quasars, ETC.), even objects NOT YET \n          DISCOVERED THEN (such as EXPLODING GALAXIES, and GAMMA-RAY \n          BURSTS). \n          \n               And applying his Theory to his NEW model of the atom, \n          Larson was able to precisely and accurately CALCULATE inter-\n          atomic distances in crystals and molecules, compressibility \n          and thermal expansion of solids, and other properties of \n          matter. \n\n               All of this is described in good detail, with-OUT fancy \n          complex mathematics, in his books. \n    \n\n\n          BOOKS of Dewey B. Larson\n          \n               The following is a complete list of the late Physicist \n          Dewey B. Larson's books about his comprehensive GENERAL \n          UNIFIED Theory of the physical universe.  Some of the early \n          books are out of print now, but still available through \n          inter-library loan. \n    \n               \"The Structure of the Physical Universe\" (1959) \n    \n               \"The Case AGAINST the Nuclear Atom\" (1963)\n    \n               \"Beyond Newton\" (1964) \n    \n               \"New Light on Space and Time\" (1965) \n    \n               \"Quasars and Pulsars\" (1971) \n    \n               \"NOTHING BUT MOTION\" (1979) \n                    [A $9.50 SUBSTITUTE for the $8.3 BILLION \"Super \n                                                            Collider\".] \n                    [The last four chapters EXPLAIN chemical bonding.]\n\n               \"The Neglected Facts of Science\" (1982) \n     \n               \"THE UNIVERSE OF MOTION\" (1984)\n                    [FINAL SOLUTIONS to most ALL astrophysical\n                                                            mysteries.] \n      \n               \"BASIC PROPERTIES OF MATTER\" (1988)\n\n               All but the last of these books were published by North \n          Pacific Publishers, P.O. Box 13255, Portland, OR  97213, and \n          should be available via inter-library loan if your local \n          university or public library doesn't have each of them. \n\n               Several of them, INCLUDING the last one, are available \n          from: The International Society of Unified Science (ISUS), \n          1680 E. Atkin Ave., Salt Lake City, Utah  84106.  This is the \n          organization that was started to promote Larson's Theory.  \n          They have other related publications, including the quarterly \n          journal \"RECIPROCITY\". \n\n          \n\n          Physicist Dewey B. Larson's Background\n    \n               Physicist Dewey B. Larson was a retired Engineer \n          (Chemical or Electrical).  He was about 91 years old when he \n          died in May 1989.  He had a Bachelor of Science Degree in \n          Engineering Science from Oregon State University.  He \n          developed his comprehensive GENERAL UNIFIED Theory of the \n          physical universe while trying to develop a way to COMPUTE \n          chemical properties based only on the elements used. \n    \n               Larson's lack of a fancy \"PH.D.\" degree might be one \n          reason that orthodox physicists are ignoring him, but it is \n          NOT A VALID REASON.  Sometimes it takes a relative outsider \n          to CLEARLY SEE THE FOREST THROUGH THE TREES.  At the same \n          time, it is clear from his books that he also knew ORTHODOX \n          physics and astronomy as well as ANY physicist or astronomer, \n          well enough to point out all their CONTRADICTIONS, AD HOC \n          ASSUMPTIONS, PRINCIPLES OF IMPOTENCE, IN-CONSISTENCIES, ETC.. \n     \n               Larson did NOT have the funds, etc. to experimentally \n          test his Theory.  And it was NOT necessary for him to do so.  \n          He simply compared the various parts of his Theory with OTHER \n          researchers' experimental and observational data.  And in \n          many cases, HIS explanation FIT BETTER. \n    \n               A SELF-CONSISTENT Theory is MUCH MORE than the ORTHODOX \n          physicists and astronomers have!  They CLAIM to be looking \n          for a \"unified field theory\" that works, but have been \n          IGNORING one for over 30 years now! \n    \n               \"Modern physics\" does NOT explain the physical universe \n          so well.  Some parts of some of Larson's books are FULL of \n          quotations of leading orthodox physicists and astronomers who \n          agree.  And remember that \"epicycles\", \"crystal spheres\", \n          \"geocentricity\", \"flat earth theory\", etc., ALSO once SEEMED \n          to explain it well, but were later proved CONCEPTUALLY WRONG. \n    \n    \n               Prof. Frank H. Meyer, Professor Emeritus of UW-Superior, \n          was/is a STRONG PROPONENT of Larson's Theory, and was (or \n          still is) President of Larson's organization, \"THE \n          INTERNATIONAL SOCIETY OF UNIFIED SCIENCE\", and Editor of \n          their quarterly Journal \"RECIPROCITY\".  He moved to \n          Minneapolis after retiring. \n    \n\n\n          \"Super Collider\" BOONDOGGLE!\n          \n               I am AGAINST contruction of the \"Superconducting Super \n          Collider\", in Texas or anywhere else.  It would be a GROSS \n          WASTE of money, and contribute almost NOTHING of \"scientific\" \n          value. \n    \n               Most physicists don't realize it, but, according to the \n          comprehensive GENERAL UNIFIED Theory of the late Physicist \n          Dewey B. Larson, as described in his books, the strange GOOFY \n          particles (\"mesons\", \"hyperons\", ALLEGED \"quarks\", etc.) \n          which they are finding in EXISTING colliders (Fermi Lab, \n          Cern, etc.) are really just ATOMS of ANTI-MATTER, which are \n          CREATED by the high-energy colliding beams, and which quickly \n          disintegrate like cosmic rays because they are incompatible \n          with their environment. \n    \n               A larger and more expensive collider will ONLY create a \n          few more elements of anti-matter that the physicists have not \n          seen there before, and the physicists will be EVEN MORE \n          CONFUSED THAN THEY ARE NOW! \n    \n               Are a few more types of anti-matter atoms worth the $8.3 \n          BILLION cost?!!  Don't we have much more important uses for \n          this WASTED money?! \n    \n     \n               Another thing to consider is that the primary proposed \n          location in Texas has a serious and growing problem with some \n          kind of \"fire ants\" eating the insulation off underground \n          cables.  How much POISONING of the ground and ground water \n          with insecticides will be required to keep the ants out of \n          the \"Supercollider\"?! \n    \n          \n               Naming the \"Super Collider\" after Ronald Reagon, as \n          proposed, is TOTALLY ABSURD!  If it is built, it should be \n          named after a leading particle PHYSICIST. \n      \n\n\n          LARSONIAN Anti-Matter\n          \n               In Larson's comprehensive GENERAL UNIFIED Theory of the \n          physical universe, anti-matter is NOT a simple case of \n          opposite charges of the same types of particles.  It has more \n          to do with the rates of vibrations and rotations of the \n          photons of which they are made, in relation to the \n          vibrational and rotational equivalents of the speed of light, \n          which Larson calls \"Unit Velocity\" and the \"Natural Datum\". \n     \n               In Larson's Theory, a positron is actually a particle of \n          MATTER, NOT anti-matter.  When a positron and electron meet, \n          the rotational vibrations (charges) and rotations of their \n          respective photons (of which they are made) neutralize each \n          other. \n      \n               In Larson's Theory, the ANTI-MATTER half of the physical \n          universe has THREE dimensions of TIME, and ONLY ONE dimension \n          of space, and exists in a RECIPROCAL RELATIONSHIP to our \n          MATERIAL half. \n       \n\n\n          LARSONIAN Relativity\n          \n               The perihelion point in the orbit of the planet Mercury \n          has been observed and precisely measured to ADVANCE at the \n          rate of 574 seconds of arc per century.  531 seconds of this \n          advance are attributed via calculations to gravitational \n          perturbations from the other planets (Venus, Earth, Jupiter, \n          etc.).  The remaining 43 seconds of arc are being used to \n          help \"prove\" Einstein's \"General Theory of Relativity\". \n    \n               But the late Physicist Dewey B. Larson achieved results \n          CLOSER to the 43 seconds than \"General Relativity\" can, by \n          INSTEAD using \"SPECIAL Relativity\".  In one or more of his \n          books, he applied the LORENTZ TRANSFORMATION on the HIGH \n          ORBITAL SPEED of Mercury. \n    \n               Larson TOTALLY REJECTED \"General Relativity\" as another \n          MATHEMATICAL FANTASY.  He also REJECTED most of \"Special \n          Relativity\", including the parts about \"mass increases\" near \n          the speed of light, and the use of the Lorentz Transform on \n          doppler shifts, (Those quasars with red-shifts greater than \n          1.000 REALLY ARE MOVING FASTER THAN THE SPEED OF LIGHT, \n          although most of that motion is away from us IN TIME.). \n     \n               In Larson's comprehensive GENERAL UNIFIED Theory of the \n          physical universe, there are THREE dimensions of time instead \n          of only one.  But two of those dimensions can NOT be measured \n          from our material half of the physical universe.  The one \n          dimension that we CAN measure is the CLOCK time.  At low \n          relative speeds, the values of the other two dimensions are \n          NEGLIGIBLE; but at high speeds, they become significant, and \n          the Lorentz Transformation must be used as a FUDGE FACTOR. \n          [Larson often used the term \"COORDINATE TIME\" when writing \n          about this.] \n    \n     \n               In regard to \"mass increases\", it has been PROVEN in \n          atomic accelerators that acceleration drops toward zero near \n          the speed of light.  But the formula for acceleration is \n          ACCELERATION = FORCE / MASS, (a = F/m).  Orthodox physicists \n          are IGNORING the THIRD FACTOR: FORCE.  In Larson's Theory, \n          mass STAYS CONSTANT and FORCE drops toward zero.  FORCE is \n          actually a MOTION, or COMBINATIONS of MOTIONS, or RELATIONS \n          BETWEEN MOTIONS, including INward and OUTward SCALAR MOTIONS.  \n          The expansion of the universe, for example, is an OUTward \n          SCALAR motion inherent in the universe and NOT a result of \n          the so-called \"Big Bang\" (which is yet another MATHEMATICAL \n          FANTASY). \n    \n                                    \n          \n          THE UNIVERSE OF MOTION\n\n               I wish to recommend to EVERYONE the book \"THE UNIVERSE \n          OF MOTION\", by Dewey B. Larson, 1984, North Pacific \n          Publishers, (P.O. Box 13255, Portland, Oregon  97213), 456 \n          pages, indexed, hardcover. \n    \n               It contains the Astrophysical portions of a GENERAL \n          UNIFIED Theory of the physical universe developed by that \n          author, an UNrecognized GENIUS, more than thirty years ago. \n    \n               It contains FINAL SOLUTIONS to most ALL Astrophysical \n          mysteries, including the FORMATION of galaxies, binary and \n          multiple star systems, and solar systems, the TRUE ORIGIN of \n          the \"3-degree\" background radiation, cosmic rays, and gamma-\n          ray bursts, and the TRUE NATURE of quasars, pulsars, white \n          dwarfs, exploding galaxies, etc.. \n    \n               It contains what astronomers and astrophysicists are ALL \n          looking for, if they are ready to seriously consider it with \n          OPEN MINDS! \n    \n               The following is an example of his Theory's success: \n          In his first book in 1959, \"THE STRUCTURE OF THE PHYSICAL \n          UNIVERSE\", Larson predicted the existence of EXPLODING \n          GALAXIES, several years BEFORE astronomers started finding \n          them.  They are a NECESSARY CONSEQUENCE of Larson's \n          comprehensive Theory.  And when QUASARS were discovered, he \n          had an immediate related explanation for them also. \n    \n\n \n          GAMMA-RAY BURSTS\n\n               Astro-physicists and astronomers are still scratching \n          their heads about the mysterious GAMMA-RAY BURSTS.  They were \n          originally thought to originate from \"neutron stars\" in the \n          disc of our galaxy.  But the new Gamma Ray Telescope now in \n          Earth orbit has been detecting them in all directions \n          uniformly, and their source locations in space do NOT \n          correspond to any known objects, (except for a few cases of \n          directional coincidence). \n    \n               Gamma-ray bursts are a NECESSARY CONSEQUENCE of the \n          GENERAL UNIFIED Theory of the physical universe developed by \n          the late Physicist Dewey B. Larson.  According to page 386 of \n          his book \"THE UNIVERSE OF MOTION\", published in 1984, the \n          gamma-ray bursts are coming from SUPERNOVA EXPLOSIONS in the \n          ANTI-MATTER HALF of the physical universe, which Larson calls \n          the \"Cosmic Sector\".  Because of the relationship between the \n          anti-matter and material halves of the physical universe, and \n          the way they are connected together, the gamma-ray bursts can \n          pop into our material half anywhere in space, seemingly at \n          random.  (This is WHY the source locations of the bursts do \n          not correspond with known objects, and come from all \n          directions uniformly.) \n    \n               I wonder how close to us in space a source location \n          would have to be for a gamma-ray burst to kill all or most \n          life on Earth!  There would be NO WAY to predict one, NOR to \n          stop it! \n    \n               Perhaps some of the MASS EXTINCTIONS of the past, which \n          are now being blamed on impacts of comets and asteroids, were \n          actually caused by nearby GAMMA-RAY BURSTS! \n    \n\n\n          LARSONIAN Binary Star Formation\n          \n               About half of all the stars in the galaxy in the \n          vicinity of the sun are binary or double.  But orthodox \n          astronomers and astrophysicists still have no satisfactory \n          theory about how they form or why there are so many of them. \n    \n               But binary star systems are actually a LIKELY \n          CONSEQUENCE of the comprehensive GENERAL UNIFIED Theory of \n          the physical universe developed by the late Physicist Dewey \n          B. Larson. \n    \n               I will try to summarize Larsons explanation, which is \n          detailed in Chapter 7 of his book \"THE UNIVERSE OF MOTION\" \n          and in some of his other books. \n    \n               First of all, according to Larson, stars do NOT generate \n          energy by \"fusion\".  A small fraction comes from slow \n          gravitational collapse.  The rest results from the COMPLETE \n          ANNIHILATION of HEAVY elements (heavier than IRON).  Each \n          element has a DESTRUCTIVE TEMPERATURE LIMIT.  The heavier the \n          element is, the lower is this limit.  A star's internal \n          temperature increases as it grows in mass via accretion and \n          absorption of the decay products of cosmic rays, gradually \n          reaching the destructive temperature limit of lighter and \n          lighter elements. \n    \n               When the internal temperature of the star reaches the \n          destructive temperature limit of IRON, there is a Type I \n          SUPERNOVA EXPLOSION!  This is because there is SO MUCH iron \n          present; and that is related to the structure of iron atoms \n          and the atom building process, which Larson explains in some \n          of his books [better than I can]. \n    \n               When the star explodes, the lighter material on the \n          outer portion of the star is blown outward in space at less \n          than the speed of light.  The heavier material in the center \n          portion of the star was already bouncing around at close to \n          the speed of light, because of the high temperature.  The \n          explosion pushes that material OVER the speed of light, and \n          it expands OUTWARD IN TIME, which is equivalent to INWARD IN \n          SPACE, and it often actually DISAPPEARS for a while. \n    \n               Over long periods of time, both masses start to fall \n          back gravitationally.  The material that had been blown \n          outward in space now starts to form a RED GIANT star.  The \n          material that had been blown OUTWARD IN TIME starts to form a \n          WHITE DWARF star.  BOTH stars then start moving back toward \n          the \"MAIN SEQUENCE\" from opposite directions on the H-R \n          Diagram. \n    \n               The chances of the two masses falling back into the \n          exact same location in space, making a single lone star \n          again, are near zero.  They will instead form a BINARY \n          system, orbiting each other. \n     \n               According to Larson, a white dwarf star has an INVERSE \n          DENSITY GRADIENT (is densest at its SURFACE), because the \n          material at its center is most widely dispersed (blown \n          outward) in time.   This ELIMINATES the need to resort to \n          MATHEMATICAL FANTASIES about \"degenerate matter\", \"neutron \n          stars\", \"black holes\", etc.. \n    \n\n\n          LARSONIAN Solar System Formation\n\n               If the mass of the heavy material at the center of the \n          exploding star is relatively SMALL, then, instead of a single \n          white dwarf star, there will be SEVERAL \"mini\" white dwarf \n          stars (revolving around the red giant star, but probably \n          still too far away in three-dimensional TIME to be affected \n          by its heat, etc.).  These will become PLANETS! \n      \n               In Chapter 7 of THE UNIVERSE OF MOTION, Larson used all \n          this information, and other principles of his comprehensive \n          GENERAL UNIFIED Theory of the physical universe, to derive \n          his own version of Bode's Law. \n          \n\n\n          \"Black Hole\" FANTASY!\n\n               I heard that physicist Stephen W. Hawking recently \n          completed a theoretical mathematical analysis of TWO \"black \n          holes\" merging together into a SINGLE \"black hole\", and \n          concluded that the new \"black hole\" would have MORE MASS than \n          the sum of the two original \"black holes\". \n    \n               Such a result should be recognized by EVERYone as a RED \n          FLAG, causing widespread DOUBT about the whole IDEA of \"black \n          holes\", etc.! \n    \n               After reading Physicist Dewey B. Larson's books about \n          his comprehensive GENERAL UNIFIED Theory of the physical \n          universe, especially his book \"THE UNIVERSE OF MOTION\", it is \n          clear to me that \"black holes\" are NOTHING more than \n          MATHEMATICAL FANTASIES!  The strange object at Cygnus X-1 is \n          just an unusually massive WHITE DWARF STAR, NOT the \"black \n          hole\" that orthodox astronomers and physicists so badly want \n          to \"prove\" their theory. \n    \n    \n               By the way, I do NOT understand why so much publicity is \n          being given to physicist Stephen Hawking.  The physicists and \n          astronomers seem to be acting as if Hawking's severe physical \n          problem somehow makes him \"wiser\".  It does NOT! \n    \n               I wish the same attention had been given to Physicist \n          Dewey B. Larson while he was still alive.  Widespread \n          publicity and attention should NOW be given to Larson's \n          Theory, books, and organization (The International Society of \n          Unified Science). \n          \n          \n          \n          ELECTRO-MAGNETIC PROPULSION\n\n               I heard of that concept many years ago, in connection \n          with UFO's and unorthodox inventors, but I never was able to \n          find out how or why they work, or how they are constructed. \n    \n               I found a possible clue about why they might work on \n          pages 112-113 of the book \"BASIC PROPERTIES OF MATTER\", by \n          the late Physicist Dewey B. Larson, which describes part of \n          Larson's comprehensive GENERAL UNIFIED Theory of the physical \n          universe.  I quote one paragraph: \n    \n               \"As indicated in the preceding chapter, the development \n          of the theory of the universe of motion arrives at a totally \n          different concept of the nature of electrical resistance.  \n          The electrons, we find, are derived from the environment.  It \n          was brought out in Volume I [Larson's book \"NOTHING BUT \n          MOTION\"] that there are physical processes in operation which \n          produce electrons in substantial quantities, and that, \n          although the motions that constitute these electrons are, in \n          many cases, absorbed by atomic structures, the opportunities \n          for utilizing this type of motion in such structures are \n          limited.  It follows that there is always a large excess of \n          free electrons in the material sector [material half] of the \n          universe, most of which are uncharged.  In this uncharged \n          state the electrons cannot move with respect to extension \n          space, because they are inherently rotating units of space, \n          and the relation of space to space is not motion.  In open \n          space, therefore, each uncharged electron remains permanently \n          in the same location with respect to the natural reference \n          system, in the manner of a photon.  In the context of the \n          stationary spatial reference system the uncharged electron, \n          like the photon, is carried outward at the speed of light by \n          the progression of the natural reference system.  All \n          material aggregates are thus exposed to a flux of electrons \n          similar to the continual bombardment by photons of radiation.  \n          Meanwhile there are other processes, to be discussed later, \n          whereby electrons are returned to the environment.  The \n          electron population of a material aggregate such as the earth \n          therefore stabilizes at an equilibrium level.\" \n          \n               Note that in Larson's Theory, UNcharged electrons are \n          also massLESS, and are basically photons of light of a \n          particular frequency (above the \"unit\" frequency) spinning \n          around one axis at a particular rate (below the \"unit\" rate).  \n          (\"Unit velocity\" is the speed of light, and there are \n          vibrational and rotational equivalents to the speed of light, \n          according to Larson's Theory.)  [I might have the \"above\" and \n          \"below\" labels mixed up.] \n    \n               Larson is saying that outer space is filled with mass-\n          LESS UN-charged electrons flying around at the speed of \n          light! \n    \n               If this is true, then the ELECTRO-MAGNETIC PROPULSION \n          fields of spacecraft might be able to interact with these \n          electrons, or other particles in space, perhaps GIVING them a \n          charge (and mass) and shooting them toward the rear to \n          achieve propulsion. (In Larson's Theory, an electrical charge \n          is a one-dimensional rotational vibration of a particular \n          frequency (above the \"unit\" frequency) superimposed on the \n          rotation of the particle.) \n      \n               The paragraph quoted above might also give a clue to \n          confused meteorologists about how and why lightning is \n          generated in clouds. \n\n\n\n          SUPPRESSION of LARSONIAN Physics\n\n               The comprehensive GENERAL UNIFIED Theory of the physical \n          universe developed by the late Physicist Dewey B. Larson has \n          been available for more than 30 YEARS, published in 1959 in \n          his first book \"THE STRUCTURE OF THE PHYSICAL UNIVERSE\". \n    \n               It is TOTALLY UN-SCIENTIFIC for Hawking, Wheeler, Sagan, \n          and the other SACRED PRIESTS of the RELIGION they call \n          \"science\" (or \"physics\", or \"astronomy\", etc.), as well as \n          the \"scientific\" literature and the \"education\" systems, to \n          TOTALLY IGNORE Larson's Theory has they have. \n    \n               Larson's Theory has excellent explanations for many \n          things now puzzling orthodox physicists and astronomers, such \n          as gamma-ray bursts and the nature of quasars. \n    \n               Larson's Theory deserves to be HONESTLY and OPENLY \n          discussed in the physics, chemistry, and astronomy journals, \n          in the U.S. and elsewhere.  And at least the basic principles \n          of Larson's Theory should be included in all related courses \n          at UW-EC, UW-Madison, Cambridge, Cornell University, and \n          elsewhere, so that students are not kept in the dark about a \n          worthy alternative to the DOGMA they are being fed. \n    \n          \n\n               For more information, answers to your questions, etc., \n          please consult my CITED SOURCES (especially Larson's BOOKS). \n\n\n\n               UN-altered REPRODUCTION and DISSEMINATION of this \n          IMPORTANT partial summary is ENCOURAGED. \n\n\n                                       Robert E. McElwaine\n                                       B.S., Physics and Astronomy, UW-EC\n          \n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7152, "properties": {"category": "sci.med", "text": "From: mhollowa@ic.sunysb.edu (Michael Holloway)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nNntp-Posting-Host: engws5.ic.sunysb.edu\nOrganization: State University of New York at Stony Brook\nLines: 54\n\nIn article <1993Apr16.155919.28040@cs.rochester.edu> fulk@cs.rochester.edu (Mark Fulk) writes:\n>In article <C5Kv7p.JM3@unx.sas.com> sasghm@theseus.unx.sas.com (Gary Merrill) writes:\n>>\n>>In article <1993Apr15.200344.28013@cs.rochester.edu>, fulk@cs.rochester.edu (Mark Fulk) writes:\n>>What is wrong with the above observation is that it explicitly gives the\n>>impression (and you may not in fact hold this view) that the common (perhaps\n>>even the \"correct\") approach for a scientist to follow is to sit around\n>>having flights of fancy and scheming on the basis of his jealousies and\n>>petty hatreds.\n>\n>Flights of fancy, and other irrational approaches, are common.  The crucial\n>thing is not to sit around just having fantasies; they aren't of any use\n>unless they make you do some experiments.  I've known a lot of scientists\n>whose fantasies lead them on to creative work; usually they won't admit\n>out loud what the fantasy was, prior to the consumption of a few beers.\n\nThe danger in philosophizing about science is that theory and generalization \ncan end up being far removed from the actual day-to-day of the grunt at the\nbench.  Yes, its great to be involved in a process were I can walk into the\nlab after a heavy night of dreaming and just do something for the hell of it\n(as long as my advisor doesn't catch me - which is easy enough to do), but \nstamping out such behavior seems to be the purpose in life of grant review \ncommittees and the peer review process in general.  In today's world that's \nwhat determines what science is: what gets funded.  And a damn good thing to.\nFlights of fantasy just don't have much chance of producing anything, at \nleast not in biomedical research.  The surest way for a graduate student to\nruin their life is to work in a lab where the boss is more concerned with \nfleshing out his/her fantasies than with having the student work on a project\nthat actually has a good chance of producing some results.  MD's seem to \nbe particularly prone to this aberrant behavior.  \n\n>(Simple example: Warren Jelinek noticed an extremely heavy band on a DNA\n>electrophoresis gel of human ALU fragments.  He got very excited, hoping that\n>he'd seen some essential part of the control mechanism for eukaryotic\n>genes.  This fantasy led him to sequence samples of the band and carry out\n>binding assays.  The result was a well-conserved, 400 or so bp, sequence\n>that occurs about 500,000 times in the human genome.  Unfortunately for\n>Warren's fantasy, it turns out to be a transposon that is present in\n>so many copies because it replicates itself and copies itself back into\n>the genome.  On the other hand, the characteristics of transposons were\n>much elucidated; the necessity of a cellular reverse transcriptase was\n>recognized; and the standard method of recognizing human DNA was created.\n>Other species have different sets of transposons.  Fortunately for me,\n>Warren and I used to eat dinner at T.G.I. Fridays all the time.)\n\nI have to agree with Gary Merrill's response to this.  I've read alot of the\nAlu and middle repetitive sequence work and it's really very interesting, \ngood work with implications for many fields in molecular genetics.  It's \nreally an example of how a well reasoned project turned up interesting \nresults that were unexpected.\n\nMike\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.337+0000", "event": "documents", "entityId": 7153, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: eialbur@sgies9.sdrc.com (Ron Albury)\nSubject: Re: Procomm Plus for windows problems....\nOrganization: SDRC\nLines: 14\n\nYou have a lot more problems keeping up with hardware interrupts in Windows than\nin DOS - regardless of what communication software you are using.\n\nTry the following:\n   1) Turn off disk write cache for the disk you are downloading to.  The\n       cache will save up so much that when it grabs control of the machine\n       it takes too long to write to disk and you loose characters.\n\n   2) Use a different UART for your serial line.  The old UART's (8250 or 16450)\n       can only buffer one character internally.  The new UART's (16550) can\n       buffer 16, which should be plenty for most situations.  You can run\n       \\windows\\msd.exe to find out what UART is on the machine.\n\nRon\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7154, "properties": {"category": "rec.sport.hockey", "text": "From: dvb@ick (David Van Beveren)\nSubject: Re: This year's biggest and worst (opinion)...\nArticle-I.D.: abyss.1psqioINN3mg\nDistribution: world\nOrganization: Sunsoft Inc., Los Angeles, CA.\nLines: 25\nNNTP-Posting-Host: ick\nX-Newsreader: Tin 1.1 PL3\n\nassist@orion.oac.uci.edu (ASSIST Coordination Site) writes:\n: In article <C4zCII.Ftn@watserv1.uwaterloo.ca> smale@healthy.uwaterloo.ca (Bryan Smale) writes:\n: >                         MVP           Biggest       Biggest\n: >                                       Suprise       Disappointment\n: \n: >Los Angeles Kings       Robitaille     Donnelly      Hrudey\n: \n: \n: I would have chosen Alex Zhitnik for biggest suprise.  They\n: did expect that he would become a great defenseman, but I don't\n: think anyone knew that he was going to be this impressive in his \n: rookie year.  His speed, skating ability, and puck control is\n: exceptional -- he is the one to watch on the Kings.\n: \n\nI agree, with Marty McSorely and Warren Rychel running a close second and \nthird. I am surprised more people have not noted Knickle as the biggest\nsurprise, even though I personally do not really rate him well. The biggest \ndisappointment has to be Carson. Though this is really unfair, since too much \nwas expected of him. The second biggest disappointment is Melrose, with his \nadolescent handling of the goaltending problems. Putting Hrudey on the bench \nfor a month is just stupid. It did not contribute to the team coming out of \nits slump. MVP is surely Robitaille.\n\ndvb\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7155, "properties": {"category": "comp.windows.x", "text": "From: urathi@net4.ICS.UCI.EDU (Unmesh Rathi)\nSubject: Motif++ and Interviews\nLines: 12\n\nHi,\n\tI am in the process of making the decision whether I should\nwrite c++ wrappers for motif myself or use Motif++ or Interviews.\nThough I have downloaded the tar files, I fail to see any\ndocumentation. I have two questions:\n\t1) If you have used these or similar c++sy toolkits what has been\nyour experience?\n\t2) Where do I find reference books /documentation for them?\n\nany and all input will be greatly appreciated.\n\n/unmesh\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7156, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Why DC-1 will be the way of the future.\nOrganization: Express Access Online Communications, Greenbelt MD USA\nLines: 20\nNNTP-Posting-Host: access.digex.net\n\n\n\nI once read an article on  Computer technology  which stated that \nevery new computer technology was actually lower and slower then what it\nreplaced.  Silicon was less  effective then the germanium  products\nthen available.   GaAs  was less capable then Silicon.  Multi-processors\nwere slower then  existent single processors.\n\nWhat the argument was, though was that these new technologies promised either\ntheoretically future higher performance  or lower cost or higher densities.\n\nI think that the DC-1  may g=fit into this same model.\n\nELV's can certainly launch more weight  then  a SSRT,  but \nan SSRT offers the prospect of  greater cycle times and  lower costs.\n\nThis is kind of a speculative posting,  but I thought i'd throw it out as\na hjistorical framework  for those interested in the project.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7157, "properties": {"category": "sci.electronics", "text": "From: dzenc@hal.gnu.ai.mit.edu (Dan Zenchelsky)\nSubject: VIdeotext/teletext descrambler\nArticle-I.D.: hal.1psvcg$1auv\nDistribution: world\nOrganization: dis\nLines: 9\nNNTP-Posting-Host: hal.ai.mit.edu\n\nHi,\n\nI am looking for a PC card which does european videotext/teletext\ndescrambling (PAL). Does anyone in the US sell such a card? I once\nsaw an article about a card with the same functionallity in a\neuropean Elektor magazine, but I wasn't able to track it down.\n\nThanx in advance,\nDan\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7158, "properties": {"category": "rec.sport.baseball", "text": "From: gt0523e@prism.gatech.EDU (Michael Andre Mule)\nSubject: Re: Tickets etc..\nArticle-I.D.: hydra.91513\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 39\n\nLet's look at the effects of inflation on 1930's superstars' salaries.\n\nI read once that the Babe made $80,000 one year and that was about as good \nas it got for him.\n\nLet's assume he made that in 1928 (I'm not sure of the figures, but I know\nI'm in the ballpark--pun intended). :-)\n\nToday, assuming a 4% yearly inflation rate, which is an understatement if\nnot accurate, his measly $80,000 salary would be worth.\n\nFV = $80,000 x (1+4%)^(1993-1928)\n   = $80,000 x (1.04)^65\n   = just over $1,000,000.\n\nAssuming inflation is average of around 5%.\n\nFV = $80,000 x (1+5%)^65\n   = almost 2,000,000.\n\n(I didn't crunch these numbers beforehand).\n\nThese numbers might lead one to believe that today's players are slightly \noverpaid.  The Babe appears to have made then what today's average to above\naverage players make now.  Perfectly accurate salary, year of salary, and \naverage inflation rate would make this analysis more accurate, but I don`t \nthink I'm off by much.\n\nChop Chop\n\nMichael Mule' \n\n\n\n-- \nMichael Andre Mule\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0523e\nInternet: gt0523e@prism.gatech.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7159, "properties": {"category": "comp.windows.x", "text": "From: webster@ucssun1.sdsu.EDU (paolini p)\nSubject: ftp:UNIX-dos-UNIX\nOrganization: The Internet\nLines: 13\nTo: xpert@expo.lcs.mit.edu\n\n\nI'm an new to this.  Having found some files (public) to look into, I\nftp'ed them to a system I have access to.  I then used kermit to transmit\nthem via modem to my host computer, a PC-based file system.  I access\ninternet through modem access to a university mainframe.  From the PC\nfile server, I pull the files to a disk, and then pull them from disk\nto a SGI Indigo (the SGI is not networked yet).  When I try to uncompress\nand un-tar the files, they either come out as garbage or I get an error\nin the tar process about directories being invalid.\nWhat I'm wondering about is the transfer of UNIX files (compressed,\nbinary,ascii) about multiple platforms.  My guess is that it is the copy\nto a 'dos' disk that is screwing things up.  Any help is appreciated.\nbob\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7160, "properties": {"category": "rec.motorcycles", "text": "From: Christine Hogan <ch3c+@andrew.cmu.edu>\nSubject: Strange Experience\nOrganization: University Libraries - Library Automatio, Carnegie Mellon, Pittsburgh, PA\nLines: 20\nNNTP-Posting-Host: po4.andrew.cmu.edu\n\nHi\n\nI t was very nice out yesterday in the 'burgh, so i rode my bike\nto my gynecologist appointment. When he came in to do the exam,\nhe noticed my helmet sitting on a chair. He got excited and picked it up \nand started asking all sorts of questions about bikes and dealers in the \narea and the MSF course. Apparently he rode a friends 125 for a\nwhile years ago and recently the bug to ride caught him again.\n\nNeedless to say, I had never before talked about bikes so much in\nsuch a position, if ya know what I mean :->\n\n\n\n|Chris Hogan\tch3c+@andrew.cmu.edu |CB-1|\t\t\n|         1127                 |     \n| Soft as the massacre of Suns |\n| By Evening's Sabres slain    |\n|             emily dickinson  |  \n                      \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7161, "properties": {"category": "talk.politics.guns", "text": "From: ccdarg@dct.ac.uk (Alan Greig)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Dundee Institute of Technology\nLines: 24\n\nIn article <1993Apr20.163730.16128@guinness.idbsu.edu>, betz@gozer.idbsu.edu (Andrew Betz) writes:\n> In article <C5rynw.Iz8@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>>And I suppose the FBI also prevented them from coming out with their \n>>hands up while national tv cameras watch.\n>>\n> Watch from where?  Two miles away?  Far enough away that whatever\n> really happenned must be explained through the vengeful filter of\n> a humiliated agency that said (quote!) \"Enough is enough.\"\n\nAs I understand it was considered unsafe for the tv networks to get\nany closer. Surely the networks can judge the risks of reporting\nfor themselves. I haven't noticed CNN being banned from Baghdad\nhotels yet despite the (all too real) risk of having a cruise\nmissile land in the lobby. Incidentally has that ever been explained\nor are we to assume that out of the whole of the city an off-course\nmissile just happened to hit that hotel at a probability of about\n1 in some very large number?\n\nUnsafe for who I wonder?\n-- \nAlan Greig                            Janet: A.Greig@uk.ac.dct\nDundee Institute of Technology\t   Internet: A.Greig@dct.ac.uk\nTel: (0382) 308810                 (Int +44 382 308810)\n         ** Never underestimate the power of human stupidity **\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7162, "properties": {"category": "rec.motorcycles", "text": "From: bclarke@galaxy.gov.bc.ca\nSubject: Re: First Bike??\nOrganization: BC Systems Corporation\nLines: 8\n\nIn article <0forqFa00iUzMATnMz@andrew.cmu.edu>, James Leo Belliveau <jbc9+@andrew.cmu.edu> writes:\n>     I am a serious motorcycle enthusiast without a motorcycle, and to\n> put it bluntly, it sucks.  I really would like some advice on what would\n\nOh! For a second I thought this was a posting by Ed Green!\n-- \nBruce Clarke       B.C. Environment\n                   e-mail: bclarke@galaxy.gov.bc.ca\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7163, "properties": {"category": "sci.electronics", "text": "From: wb9omc@dynamo.ecn.purdue.edu (Duane P Mantick)\nSubject: Re: IR remote control receiver\nOrganization: Purdue University Engineering Computer Network\nLines: 29\n\nab616@Freenet.carleton.ca (Marc Dion) writes:\n\n\n>For a project of my own, I would like to build a Infra-Red Remote control\n>receiver (for regular VCRs and TVs remotes).  Does anybody have any info\n>or tips on how to build such receiver ?\n>In particular,\n>a) which photo detector should I use (which wavelength do remotes use) ?\n>b) which ICs or circuit should I use ?\n>c) any suggestions for circuit layout\n\n>Please reply to this group (if you wish), but as well via e-mail (my\n>link to usenet is not always available).\n\n\tI'd like to see this info as well.  As for wavelength, I think\nyou're primarily going to find two - 880 nM +/- a bit, and/or 950 nM\n+/- a bit.  Usually it is about 10 nM either way.  The two most common\nI have seen were 880 and 950 but I have also heard of 890 and 940.\nI'm not sure that the 10 nM one way or another will make a great deal of\ndifference.\n\n\tAnother suggestion - find a brand of TV that uses an IR remote,\nand go look at the SAMS photofact for it.  You can often find some very\ndetailed schematics and parts list for not only the receiver but the\ntransmitter as well, including carrier freq. specs. and tone decoding\nspecs. if the system uses that.\n\nDuane\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7164, "properties": {"category": "rec.sport.baseball", "text": "From: savoy@hg.uleth.ca (Jim Savoy)\nSubject: Re: WHAT'S WITH ALL THESE SCORES?\nReply-To: savoy@hg.uleth.ca\nOrganization: University of Lethbridge\nLines: 33\n\n> (Sean Garrison) writes:\n\n>} Alright.  I have one thing to say.  I don't know if it's just me, but I\n>} thought this newsgroup is a place for discussion.  Why must people\n>} constantly post these little messages about how a certain team is winning\n>} in a certain inning?  I mean, come on!  How many people are so dependent on\n>} this newsgroup that they have to find out the scores mid-game here?\n\n> cmk@athena.mit.edu (Charles M Kozierok) writes:\n\n>amen.\n\nI hear ya, brother.\n\n> take a look at the timestamps on some\n> of the posts you read sometime--the propagation delays are significant,\n> often hours or even days, and even people who have access to machines\n        ^^^^^^^^^^^^^^^^^^\n> which are close to the poster on the network...\n\nLet's try WEEKS! It is April 18th today and I just finished reading posts\nregarding the Cleveland Indians boating tragedy. Needless to say, I don't want\nto read partial linescores of games played 3 weeks ago.\n\nAs Charles mentioned (I excluded the quote): Join a mailing list if you want to\nwoof (I consider entering 4th inning scores as woofing). Thank you. Now to\nplug on and read the rest of the posts about spring training...\n\n _____________________________________________________________________________\n     Jim Savoy          University Of Lethbridge         savoy@hg.uleth.ca\n\n                        Sigless and Bible Black\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7165, "properties": {"category": "talk.politics.misc", "text": "From: goykhman@apollo.hp.com (Red Herring)\nSubject: Re: Clinton's immunization program\nNntp-Posting-Host: dzoo.ch.apollo.hp.com\nOrganization: Hewlett-Packard Company, Chelmsford, MA\nLines: 22\n\nIn article <1993Apr14.122758.11467@magnus.acs.ohio-state.edu> jlinder@magnus.acs.ohio-state.edu (Jeffrey S Linder) writes:\n>In article <C5FJsL.6Is@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR.C\n>OM (Mark Wilson) writes:\n>>On the news last night Clinton was bashing the republicans for stonewalling\n>>his so called stimulus package.\n>>It seems that one small item within this package was going to pay for free\n>>immunizations for poor kids.\n>\n>Immunizations for children in this country are already free if you care to\n>go have it done.  The problem is not the cost, it is the irresponible parents\n>who are to stupid or to lazy to have it done.\n\n    In case you haven't noticed, Clintonites are pushing a universal health\n    care ACCESS program.  \"Access\" here means that folks who do not give \n    a damn about immunizing their children will have health care services\n    delivered to their doorsteps.\n\n\n-- \n------------------------------------------------------------------------------------------\nDisclaimer: Opinions expressed are mine, not my employer's.\n------------------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7166, "properties": {"category": "rec.sport.hockey", "text": "From: c5ff@jupiter.sun.csd.unb.ca (COOK  Charlie)\nSubject: NHL Summary parse results for games played Sun, April 18, 1993\nOrganization: University of New Brunswick\nLines: 219\n\nNew Jersey                       1 0 2--3\nPittsburgh                       2 3 1--6\nFirst period\n     1, Pittsburgh, Tocchet 1 (Stevens, Lemieux) pp, 1:40.\n     2, New Jersey, Barr 1 (Guerin, Holik) 6:24.\n     3, Pittsburgh, Lemieux 1 (Jagr, Ramsey) 9:33.\nSecond period\n     4, Pittsburgh, Lemieux 2 (Stevens, Murphy) pp, 4:11.\n     5, Pittsburgh, Francis 1 (Ramsey, Mullen) 12:57.\n     6, Pittsburgh, Tippett 1 (Jagr, McEachern) 17:13.\nThird period\n     7, Pittsburgh, Jagr 1 (Samuelsson, Lemieux) pp, 8:35.\n     8, New Jersey, Stevens 1 (Niedermayer, Driver) pp, 11:48.\n     9, New Jersey, Stevens 2 (Semak, Niedermayer) 18:56.\n\nPittsburgh: 6    Power play: 8-3\nScorer            G    A   Pts\n---------------  ---  ---  ---\nFrancis            1    0    1\nJagr               1    2    3\nLemieux            2    2    4\nMcEachern          0    1    1\nMullen             0    1    1\nMurphy             0    1    1\nRamsey             0    2    2\nSamuelsson         0    1    1\nStevens            0    2    2\nTippett            1    0    1\nTocchet            1    0    1\n\nNew Jersey: 3    Power play: 8-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBarr               1    0    1\nDriver             0    1    1\nGuerin             0    1    1\nHolik              0    1    1\nNiedermayer        0    2    2\nSemak              0    1    1\nStevens            2    0    2\n\n-----------------------------------------\nSt Louis                         0 2 2--4\nChicago                          1 2 0--3\nFirst period\n     1, Chicago, Noonan 1 (Larmer, Brown) 8:17.\nSecond period\n     2, St Louis, Brown 1 (Shanahan, Emerson) 3:12.\n     3, Chicago, Noonan 2 (Roenick, Chelios) pp, 5:40.\n     4, Chicago, Noonan 3 (Matteau, Sutter) 8:51.\n     5, St Louis, Felsner 1 (McRae, Janney) 12:49.\nThird period\n     6, St Louis, Shanahan 1 (Brown, Hull) pp, 11:12.\n     7, St Louis, Hull 1 (Emerson, Brown) pp, 11:29.\n\nSt Louis: 4    Power play: 4-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBrown              1    2    3\nEmerson            0    2    2\nFelsner            1    0    1\nHull               1    1    2\nJanney             0    1    1\nMcRae              0    1    1\nShanahan           1    1    2\n\nChicago: 3    Power play: 7-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBrown              0    1    1\nChelios            0    1    1\nLarmer             0    1    1\nMatteau            0    1    1\nNoonan             3    0    3\nRoenick            0    1    1\nSutter             0    1    1\n\n-----------------------------------------\nLos Angeles                      1 3 2--6\nCalgary                          0 1 2--3\nFirst period\n     1, Los Angeles, Sydor 1 (Gretzky, Sandstrom) 0:16.\nSecond period\n     2, Calgary, Suter 1 (Fleury) sh, 2:48.\n     3, Los Angeles, Carson 1 (Shuchuk, Sydor) pp, 3:13.\n     4, Los Angeles, Huddy 1 (Taylor, Rychel) 3:37.\n     5, Los Angeles, McSorley 1 (unassisted) 6:36.\nThird period\n     6, Los Angeles, Millen 1 (Granato, Donnelly) 1:06.\n     7, Calgary, Dahlquist 1 (Otto) 4:23.\n     8, Calgary, Yawney 1 (MacInnis, Reichel) 8:47.\n     9, Los Angeles, Carson 2 (Sandstrom, Robitaille) pp, 10:32.\n\nLos Angeles: 6    Power play: 10-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nCarson             2    0    2\nDonnelly           0    1    1\nGranato            0    1    1\nGretzky            0    1    1\nHuddy              1    0    1\nMcSorley           1    0    1\nMillen             1    0    1\nRobitaille         0    1    1\nRychel             0    1    1\nSandstrom          0    2    2\nShuchuk            0    1    1\nSydor              1    1    2\nTaylor             0    1    1\n\nCalgary: 3    Power play: 8-0   Special goals:  sh: 1  Total: 1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nDahlquist          1    0    1\nFleury             0    1    1\nMacInnis           0    1    1\nOtto               0    1    1\nReichel            0    1    1\nSuter              1    0    1\nYawney             1    0    1\n\n-----------------------------------------\nFirst period\n     1, NY Islanders, Ferraro 1 (Flatley, Vaske) 5:56.\nSecond period\n     No scoring.\nThird period\n     2, Washington, Hunter 1 (Elynuik, Krygier) 3:18.\n     3, Washington, Hunter 2 (Khristich, Johansson) pp, 7:01.\n     4, Washington, Khristich 1 (Pivonka, Johansson) pp, 15:25.\n\nWashington: 3    Power play: 5-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nElynuik            0    1    1\nHunter             2    0    2\nJohansson          0    2    2\nKhristich          1    1    2\nKrygier            0    1    1\nPivonka            0    1    1\n\nNY Islanders: 1    Power play: 5-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nFerraro            1    0    1\nFlatley            0    1    1\nVaske              0    1    1\n\n-----------------------------------------\nBuffalo                          2 1 1 1--5\nBoston                           0 2 2 0--4\nFirst period\n     1, Buffalo, Hannan 1 (unassisted) 2:32.\n     2, Buffalo, LaFontaine 1 (Mogilny) 9:26.\nSecond period\n     3, Boston, Juneau 1 (Neely, Oates) pp, 7:20.\n     4, Boston, Neely 1 (Oates, Juneau) 14:42.\n     5, Buffalo, Mogilny 1 (Hawerchuk, Smehlik) 19:55.\nThird period\n     6, Buffalo, Mogilny 2 (unassisted) 3:46.\n     7, Boston, Neely 2 (Juneau, Oates) 15:44.\n     8, Boston, Heinze 1 (Juneau) 17:00.\nOvertime\n     9, Buffalo, Sweeney 1 (Khmylev, Smehlik) 11:03.\n\nBuffalo: 5    Power play: 3-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nHannan             1    0    1\nHawerchuk          0    1    1\nKhmylev            0    1    1\nLaFontaine         1    0    1\nMogilny            2    1    3\nSmehlik            0    2    2\nSweeney            1    0    1\n\nBoston: 4    Power play: 7-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nHeinze             1    0    1\nJuneau             1    3    4\nNeely              2    1    3\nOates              0    3    3\n\n-----------------------------------------\nMontreal                         1 1 0 0--2\nQuebec                           0 0 2 1--3\nFirst period\n     1, Montreal, Dionne 1 (Dipietro, Brunet) 5:52.\nSecond period\n     2, Montreal, Bellows 1 (Muller, Desjardins) 9:58.\nThird period\n     3, Quebec, Rucinsky 1 (Lapointe, Sundin) pp, 18:31.\n     4, Quebec, Sakic 1 (Lapointe) 19:12.\nOvertime\n     5, Quebec, Young 1 (Ricci, Duchesne) 16:49.\n\nQuebec: 3    Power play: 4-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nDuchesne           0    1    1\nLapointe           0    2    2\nRicci              0    1    1\nRucinsky           1    0    1\nSakic              1    0    1\nSundin             0    1    1\nYoung              1    0    1\n\nMontreal: 2    Power play: 1-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBellows            1    0    1\nBrunet             0    1    1\nDesjardins         0    1    1\nDionne             1    0    1\nDipietro           0    1    1\nMuller             0    1    1\n\n-----------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7167, "properties": {"category": "sci.electronics", "text": "From: jgd@dixie.com (John De Armond)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: Dixie Communications Public Access.  The Mouth of the South.\nKeywords: Nuclear\nLines: 33\n\nswalker@uts.EDU.AU (-s87271077-s.walker-man-50-) writes:\n\n>I was wondering about those massive concrete cylinders that\n>are ever present at nuclear poer sites. They look like cylinders\n>that have been pinched in the middle. Does anybody know what the\n>actual purpose of those things are?. I hear that they're called\n>'Cooling Towers' but what the heck do they cool?\n>I hope someone can help \n\n\nThe actual hourglass is hollow and is designed to generate a draft,\nexploiting the venturi effect.  Around the base of the hourglass is a\nring of water towers.  Warm river water, coming from the steam condenser\nin the plant, is sprayed over louvres.  The draft being pulled through\nthe tower cools the water by both evaporation and convection.  The\nsensible heat extracted from the cooling water is the driving force for\ndraft generation.\n\nIt should be noted that the hourglass-shaped cooling towers are used on\nboth fossile and nuclear plants.  It should also be noted that at \nlocations where water is plentiful, the cooling towers are only used part\ntime, when the discharge temperature would exceed some release limit.\nIt was once thought that the warm discharge water was damaging to fish.\nFishermen know that is thoroughly incorrect.  Nontheless, stringent,\nusually state, regulations remain in some instances.  Since it typically\ntakes 60,000 hp worth of pumping to move the volume of water needed \nto cool a 1000 MWe plant, the cost of using the towers is not insignificant.\n-- \nJohn De Armond, WD4OQC               |Interested in high performance mobility?  \nPerformance Engineering Magazine(TM) | Interested in high tech and computers? \nMarietta, Ga                         | Send ur snail-mail address to \njgd@dixie.com                        | perform@dixie.com for a free sample mag\nLee Harvey Oswald: Where are ya when we need ya?\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7168, "properties": {"category": "soc.religion.christian", "text": "From: Nabeel Ahmad Rana <rana@rintintin.colorado.edu>\nSubject: RFD: soc.religion.islam.ahmadiyya moderated\nOrganization: UUNET Communications\nLines: 171\nReply-To: rana@rintintin.colorado.edu\nNNTP-Posting-Host: rodan.uu.net\n\nDear Netters:\n\nA new religious newsgroup \"soc.religion.islam.ahmadiyya\" was pro-\nposed  on  Oct  16,  1992. The discussion about this new proposed\nnewsgroup went on in various related groups.  The  proposal,  was\nsupposed to enter a vote during the last week of November 92. Due\nto a false Call For Votes, by some opponent, the voting had to be\ncanceled.  I  quote  here  a  statement  from  the  moderator  of\nnew.announce.newgroups:\n\n\n\"The current Call For Votes (CFV) for an Ahmadiyya newsgroup\n is being canceled. A new call for votes will be issued within\n a few weeks, possibly with a new impartial vote  taker.  Discus-\n sion on the proposal is still open until the new vote is called...\"\n                                -- by Lawrence, Nov 20, 1992.\n\n\nA lot of confusion arose among the netter as  to  whom  to  vote.\nTherefore  it was decided to give a cool down period, so that all\nconfusions are over. It has been over 4 months  of  that  instant\nand now we are again attempting to create this newsgroup. A fresh\nRFD is hereby being issued. Please! take part in  the  discussion\nunder the same  title heading  and in  \"news.groups\"  or at least\ncross-post it to \"news.groups\".\n\n\n****************************************************************\n\n                REQUEST  FOR  DISCUSSION\n\n****************************************************************\n\n\n\nNAME OF PROPOSED NEWSGROUP: \n==========================\n\n     soc.religion.islam.ahmadiyya\n\n\nCHARTER: \n=======\n\n     A religious newsgroup, which would mainly  discuss  the  be-\nliefs,  teachings,  philosophy  and ideologies of all major reli-\ngions of the world as  they  exist  to  foster  better  religious\nknowledge  and  understanding among followers of all religions as\nthey share common basis. This newsgroup will be devoted to  build\na  peaceful  mutual  understanding  of  the  Ahmadiyya  branch of\nIslam, its peacefull beliefs, ideology and philosophy and how  it\nis  different  from  other  branches  of Islam in fostering world\npeace and developing better understanding among religious people.\nIt may also be used to post important religious events within the\nWorld Wide Ahmadiyya Islamic Community in general.\n\n\nPURPOSE OF THE GROUP: \n====================\n\n     The following are some of the main purposes this group will\n     achieve:\n\n     i)   To discuss the common beliefs of all major religions as\n          they relate to Ahmadiyya Muslim Community.\n\n     ii)  To discuss the doctrines, origin and teachings  of this\n          puissant spiritual force on earth.\n\n     iii) To examine Islamic teachings and beliefs in general  in\n          light  of the Quran  and established Islamic traditions\n          of 15 centuries from Ahmadiyya perspective.\n\n     iv)  To discuss the similarities  between Ahmadi Muslims and\n          people of other Religions  of the world and discuss how\n          religious tolerance  and respect to other's  faiths can\n          be brought about to  eliminate inter-religion rivalries\n          and hatred among people of religions. \n\n     v)   To discuss the origin and teachings of all religions in\n          general and Islamic and Ahmadiyya Muslims in particular\n          to foster better understanding among Ahmadi Muslims and\n          other religious people.\n\n     vi)  To discuss current world problems and solution to these\n          problems as offered by religion.\n\n     vii) To exchange important news and views about the Ahmadiyya\n          Muslim Community and other Religions.\n\n     viii)To add diversity in the religious newsgroups present\n          on Usenet.\n\n     ix)  To discuss why  religious persecution is on the rise  in\n          the world  and find  solutions to remedy the ever deter-\n          iorating  situation  in the  world in general and in the \n          Islamic world in particular.\n\n     x)   To discuss the contributions of founders of  all  reli-\n          gions and their  people for humanity, society and world \n          peace in general and by the International Ahmadiyya Mus\n          -lim Community in particular.\n\n\nTYPE: \n====\n\nThe group will be MODERATED for orderly and free religious dialo-\ngue.   The moderation will NOT prevent disagreement or dissent to\nbeliefs, but will mainly be used  to  prevent  derogatory/squalid\nuse  of  dialect  and irrelevant issues. The moderators have been\ndecided through personal e-mail and through a  general  consensus\namong  the proponants by discussion in news.groups. The following\nmoderators have been proposed and agreed upon:\n\nModerator:     Nabeel A. Rana  (rana@rintintin.colorado.edu)  \nCo-Moderator:  Dr. Tahir Ijaz  (ijaz@ccu.umanitoba.ca)\n\n\n\nA BRIEF DESCRIPTION ABOUT AHMADIYYA/ISLAM:\n=========================================\n\n\n        The Ahmadiyya Movement in Islam, an international organi-\nsation, was founder in 1989 in Qadian, India. The founder of this\nsect, Hazrat Mirza Ghulam Ahmad (1835-1908), proclaimed to be the\nPromised Reformer of this age as foretold in almost all the major\nreligions of the world today (Islam, Christianity, Judiasm,  Hin-\nduism).  He  claimed  to  be  the  long awaited second comming of\nJesus Christ (metaphorically), the Muslim Mahdi, and the Promised\nMessiah.  He  claimed that the prophecies contained in almost all\nthe great religions of the world about the advent of a  messenger\nfrom God have been fulfilled.\n\n        The claims Hazrat Ahmad raised storms  of  hostility  and\nextreme  oposition from many priestlike people of Muslims, Chris-\ntians, Jews and Hindus of that age. Such opposition is often wit-\nnessed  in  the history of divine reformers. Even today this sect\nis being persecuted specially in  some  of  the  Muslim  regimes.\nDispite  the  opposition  and persecution, this sect has won many\nadherents in 130 countries. It has over 10 million followers, who\ncome from a diverse ethnic and cultural background.\n\n        The sect is devoted to world peace and in bringing  about\na better understanding of religion, and the founders of all reli-\ngions. Its mission is to unite mankind into one Universal  broth-\nerhood  and  develop  a  better  understanding  of  faith. Ahmadi\nMuslims have always been opposed to all kind of violence and spe-\ncially religious intollerance and fundamentalism.\n\n        Among its many philanthropic activities, the sect has es-\ntablished  a network of hundreds of schools, hospitals, and clin-\nics in many third world countries. These institutions are staffed\nby  volunteer  professional  and are fully financed by the sect's\ninternal resources.\n\n        The Ahmadiyya mission is to bring about a universal moral\nreform,  establish  peace and justice, and to unite mankind under\none universal religion.\n\n\nNEWSGROUP CREATION: \n==================\n\n        When the Call For Votes is called,  the  discussion  will\nofficially  end.   Voting  will be held for about three weeks. If\nthe group gets 2/3rd majority AND  100  more  \"YES/Create\"  votes\nthan  \"NO/don't  create\"  votes;  the group shall be created. Any\nquestions or comments  may  be  included  in  the  discussion  or\ndirectly sent to: rana@rintintin.colorado.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7169, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Sinus vs. Migraine (was Re: Sinus Endoscopy)\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 15\n\nIn article <1993Mar26.001004.10983@news.eng.convex.com> cash@convex.com (Peter Cash) writes:\n>\n>By the way, does the brain even have pain receptors? I thought not--I heard\n>that brain surgery can be performed while the patient is conscious for\n>precisely this reason.\n>\nNo, no, we aren't talking about receptors for the brain's sensory \ninnervation, but structures such as the thalamus that handle pain\nfor the entire organism.  Apples and oranges.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7170, "properties": {"category": "rec.sport.hockey", "text": "From: fmsalvat@eos.ncsu.edu (FRANK MICHAE SALVATORE)\nSubject: Re: Get Real.  Caps have no chance\nOriginator: fmsalvat@c00532-106ps.eos.ncsu.edu\nReply-To: fmsalvat@eos.ncsu.edu (FRANK MICHAE SALVATORE)\nOrganization: North Carolina State University, Project Eos\nLines: 15\n\n\nIn article <1993Apr15.162719@staff.dccs.upenn.edu>, filinuk@staff.dccs.upenn.edu (Geoff Filinuk) writes:\n] \tAnyone who really believes that the Caps can beat\n> the Pens are kidding themselves.  The Pens may not loose\n> one game in the playoffs.\n\n\nLet's be honest.  The Pens may not 'loose' one game as you\nput it, but they will definitely lose one game.  Remember,\nthe regular season doesn't mean much when it comes to \nplayoff time.  The Caps have a shot at least - the Flyers\nsure don't\n\nFrank Salvatore\nfmsalvat@eos.ncsu.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7171, "properties": {"category": "sci.med", "text": "From: spp@zabriskie.berkeley.edu (Steve Pope)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: U.C. Berkeley -- ERL\nLines: 16\nDistribution: world\nNNTP-Posting-Host: zion.berkeley.edu\n\n| article <1qjc0fINN841@gap.caltech.edu> carl@SOL1.GPS.CALTECH.EDU writes:\n|| Now, if instead of using the MSG as a food additive, you put the MSG \n|| in gelatin capsules or whatever, there may not\n|| be a reaction, becasue the _sensory_response_ might be\n|| a necessary element in the creation of the MSG reaction.  (I'll bet \n|| the bogus medical researchers never even thought about \n|| that obvious fact.)\n\n| Gee.  He means \"placebo effect.\"  Sorry, but the researchers DO know about\n| this.\n\nCarl, it is not \"placebo effect\" if as hypothesised the \nsensory response to MSG's effect on flavor is responsible\nfor the MSG reaction.\n\nSteve\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.338+0000", "event": "documents", "entityId": 7172, "properties": {"category": "comp.sys.mac.hardware", "text": "From: HK.MLR@forsythe.stanford.edu (Mark Rogowsky)\nSubject: Re: CD300 & 300i\nOrganization: Stanford University\nLines: 45\nDistribution: usa\nNNTP-Posting-Host: morrow.stanford.edu\n\nIn article <1ps8d7INNrc0@srvr1.engin.umich.edu>,\nchyang@leghorn.engin.umich.edu (Chung Hsiung Yang) writes:\n>\n>In article <bauer-060493101758@134.60.68.23>, bauer@informatik.uni-ulm.de (Christian Bauer) writes:\n>> In article <Afi9sHS00VohMrYlEe@andrew.cmu.edu>, \"Donpaul C. Stephens\"\n>> <deathbird+@CMU.EDU> wrote:\n>> >\n>> > What is the difference?\n>> > I want a double-spin CD-ROM drive by May\n>> >\n>> > looking into NEC and Apple, doublespins only\n>> > what is the best?\n>>\n>> Nec Toshiba and Sony (Apple) nearly deliver the same speed.\n>> As apples prices are very low (compared to there RAM SIMMS)\n>> You should buy what is inexpencive. But think of Driver revisions.\n>> It is easier to get driver kits from Apple than from every other\n>> manufacturer\n>>\n>> Christian Bauer\n>>\n>> bauer@informatik.uni-ulm.de\n>\n>\n>        I thought NEC and Toshiba CD-ROM mechanism have an average\n>access time of less than 200 ms.  While the SONY-APPLE CD-ROM\n>drive has an access time of 300 ms for the doublespin models.\n>\n>- Chung Yang\n>\nThe Toshiba has a 200ms access time, the NEC has a 280ms access\ntime, right around the Sony/Apple. Access time is, of course,\nsomewhat important, but not as vital in the case of CDs as data\ntransfer rate.\n\nAll the drives are double-speed drives with maximum data transfer\nrates of 300K/second. Any is a good choice. Apple's is very cheap\nwhen included with new Macs and I agree with Christian's comment\nabout drivers.\n\nPlus, Apple's is bootable on the Centris and Quadra 800. A very nice\nfeature if you need to install System software. I don't know if the\nNEC or Toshiba are bootable on those machines.\n\nMark\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7173, "properties": {"category": "comp.windows.x", "text": "From: egan@phony25.cc.utah.edu (Egan F. Ford)\nSubject: Need Help with key bindings\nReply-To: egan%phony25.cc.utah.edu@hellgate.utah.edu\nOrganization: Call Business Systems\nLines: 21\n\nI need help binding some value to the HOME and END keys on my keyboard.  I have an\nrs/6000 w/ aix3.2.3ext running X11R5pl19 mit dist.  I'm using a PC running eXceed\nfor windows as my xterminal.  The HOME and END keys do not send a value, and my\napplication needs them to be defined.  I used this in my Xdefaults to define the\nkeys:\n\nvarnet*VT100.Translations: #override \\\n    <Key>Home: string(\"\\033[8~\") \\n\\\n    <Key>End: string(\"\\033[7~\")\n\nThen I xterm -name varnet.  This works perfect, however the 7 and the 1 key on my\nkeypad are also defined as \\033[8~ and \\033[7~.\n\nAny ideas?  Help please.\n\nThanks.\n\n\n-- \nEgan F. Ford\negan%phony25.cc.utah.edu@hellgate.utah.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7174, "properties": {"category": "misc.forsale", "text": "From: rtwalker@magnus.acs.ohio-state.edu (Robert T Walker)\nSubject: Memory\nKeywords: memory, simms, hard drive\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: oh\nLines: 11\n\n     Howdy! I'm just posting this for a friend so don't reply to me!\n\n    I have a friend who has some 1x9 SIMMS for sale, 8MB for $250 or 4MB for \n125$. He also has a Conner 170MB hard drive for $250. It runs at 14ms. His name\nis John and he can be reached at his BBS called Classified Connection at \n(614)575-1345, he is the Sysop, and you can call him and hear his awesome voice\nat (614)577-9673.\n          Adios\n\n-------------------------------------------------------------------------------\nthe R, the O, the B, the S-K-I\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7175, "properties": {"category": "misc.forsale", "text": "From: jerry.ciz@rose.com (jerry ciz)\nSubject: SYNOPTICS LAN H/W\nArticle-I.D.: rose.1993Apr17.070759.18605\nDistribution: misc\nOrganization: Rose Media Inc, Toronto, Ontario.\nLines: 21\nX-Gated-By: Usenet <==> RoseMail Gateway (v1.70)\n\n\n                                             \n                    \n                    For Sale or Trade\n         2 SYNOPTICS Model 2510, LAN concentrators\n\no new, never used, original packing\no each unit has 12 RJ45 ports for 10 Mbps ethernet connectivity\no included are one power supply, manuals, bracket hardware for 19\" racks\no you can setup LANs using unshielded twisted pair (UTP) telephone wiring\n\no both units $400\no or, trade.... I'm looking for 386DX/486DX PC hardware\n\n\nemail:  jerry.ciz@rose.com\nphone:  416-855-6205 (24hrs, 7days a week)\n\n---\n   RoseReader 2.10  R003050 Entered at [ROSE]\n   RoseMail 2.10 : RoseNet<=>Usenet Gateway : Rose Media 416-733-2285\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7176, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bss_brucep@vd.seqeb.gov.au (Bruce Powell)\nSubject: Re: ESDI with IDE??? -- Yes it should be Possible,\nOrganization: South East Queensland Electricity Board\nLines: 27\n\nIn article <1993Apr16.033802.6605@monu6.cc.monash.edu.au>, els390r@fawlty1.eng.monash.edu.au (G Chow) writes:\n> In article <1qegfd$dqi@wsinis03.info.win.tue.nl> monty@wsinis03.info.win.tue.nl (Guido Leenders) writes:\n>>Hi,\n>>\n>>Is it possible to use an ESDI-controller with HDD together with an\n>>IDE-harddisk + controller in one ISA-system?\n>>\n>>I've read stuff about secondary controllers. Does this trick work?\n>>\n>>Thanx in advance,\n>>\n>>Guido\n>>monty@win.tue.nl\n> \n> I have the same question as Guido. It is possible to use the ESDI drive \n> as a master and the IDE drive as the slave ? \n\nI can definitily say that you can use an RLL as Master and IDE as slave, as\nI have just upgraded my machine with a 200Mb IDE ( And custom Controller\nMdl CI-1010 Extended IDE Controller ) While maintaining my RLL'd Wren as\nmaster Drive.  The trick is the controller which supports up to 4 IDE Drives\nwhile coexisting with existing Controllers ( MFM,RLL,ESDI,SCSI ).\n\nSo according to the Documentation it should work with ESDI, and I can assure\nyou it works with RLL.\n\nBruce Powell\t\t\t\temail: bss_brucep@vd.seqeb.gov.au\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7177, "properties": {"category": "sci.electronics", "text": "From: babb@rapnet.sanders.lockheed.com (Scott Babb)\nSubject: Re: Radar detector DETECTORS?\nOrganization: Lockheed Sanders\nX-Newsreader: TIN [version 1.1 PL9]\nDistribution: na\nLines: 24\n\nBrian Day (bday@lambda.msfc.nasa.gov) wrote:\n: On December 29, 1992, it was illegal to operate a radar detector\n: in the state of Virginia.  If one got caught, one got fined $65.00.\n: Ask me how I know.\n\nThe Federal Communications Act of 1934 made it *legal* for you to\noperate a radio receiver of any kind, on any frequency (including\nX, K, and Ka bands) in the United States.  The Electronic\nCommunications Privacy Act of 1989(?) restricted the FCA of 1934\nby making it illegal to receive the land-mobile telephone service,\nincluding (I believe) cellular phones.  No restriction was placed\non receiving RADAR (or, curiously, cordless phones.)  Enforcement\nof the Virginia law is in violation of the FCA of 1934.  If you have\nlots of time and money (and a lawyer, which I'm *not*,) you can\nargue this in a federal court and try to have the law overturned.\n\nI can hardly wait to see the responses to this one, but somebody\nhad to say it...\n\n--\n   Lockheed Sanders may disagree so these are solely the opinions of:\n             Scott L. Babb - babb@rapnet.sanders.lockheed.com\n              \"We didn't inherit the Earth from our parents,\n                   we are borrowing it from our children.\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7178, "properties": {"category": "talk.politics.misc", "text": "From: cmk@world.std.com (Charles M Kozierok)\nSubject: Re: The Tories could win the \"lottery\"...Clinton GST?\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 41\n\n(oh boy. it's the [in]famous Phill Hallam-Baker.)\n\nIn article <C5Jy07.8GK@dscomsa.desy.de> hallam@zeus02.desy.de writes:\n} \n} In article <1993Apr15.053553.16427@news.columbia.edu>, gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n} \n} |>cmk@world.std.com (Charles M Kozierok) writes:\n} |>>gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n} |>... but like \"basic plus\" cable, you have to tell them that you don't\n} |>want it ... for example, Hutterite colonies in western Canada are not\n} |>part of it (Mennon and Hutter were fundamentalist Protestants from\n} |>Germany whose followers left for the New World ... Mennonites are a\n} |>very diverse lot while Hutterites are similiar to the Amish).  The\n} |>American idea being floated today gives you no option but to live\n} |>off the land ...\n} |>\n} |>>the selfish bastards that they are. unfortunately, that number has\n} |>>diminished recently, but once President Pinocchio gets through\n} |>>with us, i hope for a reversal of trend.\n} \n} Well here we have the right hoping for more selfish bastards. Pity they\n} don't look at what 12 years of the Regan/Bush \"selfish Bastard\" ecconomy\n} has done to the country.\n\nhow about what 25 years of tax-and-spend, big government, institutionalized\ndependency, and out-of-control good intentions at others' expense has\ndone to the country?\n} \n} Elect a selfish bastard government and they will run the country for themselves,\n} thats why they are selfish bastards. Bush and Regan gave tax breaks for the\n} ultra rich and paid for them by borrowing against the incomes of the middle\n} class.\n\nyeah, right. and Clinton is any different? please.\nhe is just a better lia... i mean, politician.\n\nyou think Slick and his gang of elitist socialist academics will lead\nus to the promised land? don't hold your breath.\n\n-*-\ncharles\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7179, "properties": {"category": "comp.windows.x", "text": "From: martinh@cac.washington.EDU (Martin Hunt)\nSubject: Announcing tcpview: A Motif-based TCP/IP protocol analyzer\nOrganization: UW Networks and Distributed Computing\nLines: 89\nKeywords: protocol analyzer TCP/IP\nTo: xannounce@expo.lcs.mit.edu\n\n\nTcpview is the result of several problems we had at UW.  We have several\nNetwork General Sniffers which are heavily used to help debug problems on\nseveral hundred subnets. These are good tools, but they are 1) heavy, \n2) hard to find when you need one, 3) limited in their software expandibility,\n4) difficult to use to upload data for analysis, 5) cannot be remotely\noperated, and 6) cannot resolve names with DNS, requiring much manual \nmanipulation of the name table.  We also sometimes use tcpdump, but we found \nit 1) too difficult for most people, 2) did not have enough information for\nmany protocols, 3) could not be used interactively, 4) could not handle\nTCP streams and 5) could not read Sniffer files.  However, tcpdump did do\na reasonable job of decoding a large number of protocols, and could be easily\nmodified.  Tcpview is an attempt to resolve these problems\nby adding a Motif interface to tcpdump and expanding its features.\n\nTcpview has been tested on a DECstation 5000 and Sun 4 under Ultrix 4.2 and\nSunOS 4.1 respectively.  It should work on the same systems as tcpdump.\nIt compiles with cc and gcc on the DEC and Sun.  To build tcpview you will\nneed Motif 1.1 or better.\n\nThe following files are available for anonymous ftp from \nftp.cac.washington.edu in /pub/networking\n\ntcpview-1.0.tar.Z\ttcpview and tcpdump source code\ntcpview-1.0.sun.tar.Z\tSun4 binaries\ntcpview-1.0.dec.tar.Z\tDEC Mips Ultrix 4.2 binaries\n\nWhat tcpview adds to tcpdump:\n- easier interface\n- enhanced protocol decoding\n- hex display of frame\n- capture based on time, number of frames, or user interrupt\n- can show ethernet addresses with manufacturer's name\n- ethernet address host table\n- can easily follow a stream, highlighting out-of-order frames\n- can send TCP data to an external file or filter for additional\n\tprocessing.\n\n-------------------------------------------------------------------------------\nCHANGES TO TCPDUMP 2.2.1\n\nNew features:\n\nNow reads and writes Network General Sniffer files.  When used with '-r', the \nfile type will be automatically detected.\n\nCan now read in (and use) an SNMP MIB file.\n\nThe hex format has been changed.\n\nNew time options have been added.\n\nOptions were added to allow viewing and processing of the data in TCP packets.\n\nBugs were fixed in the relative TCP sequence numbers. (-S flag)\n\nNew flags:\n-R\tread Sniffer file.  Not usually needed, except for reading from stdin\n-ttt\tprints delta times\n-tttt\tprints times relative to the first frame\n-W\twrite a Sniffer save file (use with -w)\n-x\tprint frame (minus link-level header) in hexdump format.  \n\tSample output:\n\n16:36:23.349851 jeff.cac.washington.edu.1285 > nic.funet.fi.ftp: S 0:0(0) win 16384\n        0000  45 00 00 28 8a 98 00 00 3c 06 7c 9c 80 5f 70 02   |  E..(....<.|.._p.\n        0010  80 d6 06 64 05 05 00 15 5b 19 4a 00 00 00 00 00   |  ...d....[.J.....\n        0020  50 02 40 00 4e 13 00 00 00 00 00 00 00 00         |  P.@.N.........\n\n-X\tprint TCP data in hexdump format (used with -Z)\n-z\twrite TCP data to stdout (use with -t to eliminate timestamp)\n-Z\twrite frames and TCP data to stdout\n\n\nMartin M. Hunt\nmartinh@cac.washington.edu\nNetworks & Distributed Computing\nUniversity of Washington\n\n\n\n\n\n\n--\n\n-------------------------------------------------------------------------------\nMartin Hunt                            martinh@cac.washington.edu   \nNetworks and Distributed Computing     University of Washington\t\t  \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7180, "properties": {"category": "sci.crypt", "text": "From: jed@pollux.usc.edu (Jonathan DeMarrais)\nSubject: Crypto Conference\nOrganization: University of Southern California, Los Angeles, CA\nLines: 11\nDistribution: usa\nNNTP-Posting-Host: pollux.usc.edu\n\nI need to know the following information about the upcoming\nCrypto Conference; The address to submit articles, and the\nnumber of copies needed.  Thanks,\n\t\t\t\tJonathan DeMarrais \n\t\t\t\tjed@pollux.usc.edu\n\n-- \n--- Jay      jed@pollux.usc.edu          (University of Southern California)\n\nWhat a depressingly stupid machine.\n                                     Marvin\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7181, "properties": {"category": "comp.sys.mac.hardware", "text": "From: viralbus@daimi.aau.dk (Thomas Martin Widmann)\nSubject: Position of 'b' on Erg. Keyboard\nOrganization: DAIMI: Computer Science Department, Aarhus University, Denmark\nLines: 12\n\nSo far I have only seen pictures of the new ergonomic keyboard,\nbut it seems that the 'b' is placed on the left part after the split.\nHowever, when I learned typing in school some years ago, I was taught\nto write 'b' with my right hand. Is this a difference between Danish\nand American typing, or what???\n\nThanks a lot in advance!\n\n--\n\n   Thomas Widmann                   -Lernu Esperanton-\nviralbus@daimi.aau.dk            SOLIDVM PETIT IN LINGVIS\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7182, "properties": {"category": "rec.autos", "text": "From: joes@telxon.mis.telxon.com (Joe Staudt)\nSubject: Re: Renting from Alamo\t\nOrganization: TELXON Corporation\nLines: 45\n\nIn article <1993Apr20.142818.14969@ericsson.se> etxmst@sta.ericsson.se writes:\n>Hello netters!\n>\n>I'm visiting the US (I'm from Sweden) in August. I will probably rent a Chevy\n>Beretta from Alamo. I've been quoted $225 for a week/ $54 for additional days.\n>This would include free driving distance, but not local taxes (Baltimore). \n>They also told me all insurance thats necessary is included, but I doubt that,\n> 'cause a friend rented a car last year and it turned out he needed a lot more\n>insurance than what's included in the base price. But on the other hand he \n>didn't rent it from Alamo.\n>\n>Does anyone have some info on this?\n>\n>Is $225 a rip-off? \nNo, that sounds pretty reasonable for that car and that city.\n\n>Probability that I'll be needing more insurance?\nUnless you have an accident, you won't need more.  If you plan on\npaying for the car with a credit card, check and see if your card\nautomatically covers rental cars.  Also, your own auto insurance may\ncover rental cars also.\n\nMost rental companies here offer extra insurance when you rent, and\nrequire you to initial in several spots if you don't want it.  The\ncredit cards and personal auto insurance provide the same sort of\ncoverage that the rental agency is trying to sell.\n\nI have never rented from Alamo, so I don't know if they follow this\nsame practice.\n\n>Is the beretta a good rental car?\nYes.  It is a compact 2-door, probably a bit dull performance and\nacceleration-wise, but very adequate.  It will have an automatic\ntransmission, AM/FM stereo, air conditioning, and possibly power \nwindows and door locks.\n\nJoe\n\n\n\n-- \nJoseph Staudt, Telxon Corp. | joes@telxon.com\nP.O. Box 5582               | \"Usenet is like Tetris for people who still\nAkron, OH  44334-0582       |  remember how to read.\"\n(216) 867-3700 x3522        |           -- J. Heller\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7183, "properties": {"category": "sci.space", "text": "From: Mark.Prado@p2.f349.n109.z1.permanet.org (Mark Prado)\nSubject: Conference on Manned Lunar Exploration.  May 7  Crystal City\nLines: 25\n\nReply address: mark.prado@permanet.org\n\n > From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\n >\n > In article <1993Apr19.230236.18227@aio.jsc.nasa.gov>,\n > daviss@sweetpea.jsc.nasa.gov (S.F. Davis) writes:\n > > |> AW&ST  had a brief blurb on a Manned Lunar Exploration\n > confernce> |> May 7th  at Crystal City Virginia, under the\n > auspices of AIAA.\n >\n > Thanks for typing that in, Steven.\n >\n > I hope you decide to go, Pat.  The Net can use some eyes\n > and ears there...\n\nI plan to go.  It's about 30 minutes away from my home.\nI can report on some of it (from my perspective ...)\nAnyone else on sci.space going to be there?  If so, send me\nnetmail.  Maybe we can plan to cross paths briefly...\nI'll maintain a list of who's going.\n\nmark.prado@permanet.org\n\n * Origin: Just send it to bill.clinton@permanet.org\n(1:109/349.2)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7184, "properties": {"category": "sci.med", "text": "From: naomi@rock.concert.net (Naomi T Courter)\nSubject: Endometriosis\nOrganization: CONCERT-CONNECT -- Public Access UNIX\nLines: 15\n\n\ncan anyone give me more information regarding endometriosis?   i heard\nit's a very common disease among women and if anyone can provide names\nof a specialist/surgeon in  the north carolina research triangle  park\narea (raleigh/durham/chapel  hill) who is familiar with the condition,\ni would really appreciate it.\n\nthanks. \n\n--Naomi\n-- \nNaomi L.T. Courter\nNetwork Services Specialist\nMCNC - Center for Communications\nCONCERT Network \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7185, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: GMILLS@CHEMICAL.watstar.uwaterloo.ca (Phil Trodwell)\nSubject: cica mirror?\nLines: 10\nOrganization: University of Waterloo\n\n\nIs there a ftp.cica.indiana.edu mirror anyware that isn't so !@#$@# busy?\n\nThanks\n\nPhil Trodwell \n\n***   This space   ***|   \"I'd be happy to ram a goddam 440-volt cattle\n***    for rent.   ***|   prod into that tub with you right now, but not\n***     (cheap)    ***|   this radio!\"       -Hunter S. Thompson\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7186, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ekalenda@netcom.com (Edward J Kalenda)\nSubject: Re: overlapped window without a title bar\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nDistribution: usa\nLines: 18\n\nFrom article <1rc07h$ern@olivea.ATC.Olivetti.Com>, by manu@oas.olivetti.com (Manu Das):\n> \n> I have a overlapped window(say V) which has few child windows (a,b,c, etc)\n> The window shows up with all it's children fine. Now, I create another \n> child(t) with a WS_THICKFRAME style and placed on top of one or more of\n> it's siblings. Style WS_THICKFRAME is used so that I can resize it. How do\n> I make sure that the child 't' will always be at the top of it's siblings.\n> I used SetWindowPos() and BringWindowToTop() without success. What's happening\n> is that while I am resizing 't' it shows up but as soon as I let go, it goes\n> behild it's siblings.\n\nThe window is probobly on top but the lower windows are drawing over it.\nTry using WS_CLIPSIBLING to keep the lower siblings from drawing on the\ntop sibling's space.\n-- \n\nEd\nekalenda@netcom.COM\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7187, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Re: Off the shelf cheap DES keyseach machine\nOrganization: AT&T Bell Laboratories\nLines: 16\n\nIn article <7020.Apr2207.05.3993@silverton.berkeley.edu>, djb@silverton.berkeley.edu (D. J. Bernstein) writes:\n> In article <1993Apr21.132318.16981@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n> > And key size is one of the things that can be\n> > verified externally.\n> \n> Gee. Say they feed the 80-bit key through Snefru-8 and take the first 60\n> bits of the result, then use those 60 bits as the real key. How do you\n> figure out that each key is one of 2^20 ``equal'' keys? You can try a\n> birthday attack, but if the key can be changed only once a second then\n> you will need several lifetimes to get reliable statistics.\n\nYou're right, and I retract the suggestion.  Still, I wonder.  That\nthere are only 60 bits of key information should, in principle, be\ndetectable.  Maybe some variant of the tests Rivest et al. did to\ndemonstrate that DES was probably not a group?  It should make an\ninteresting paper -- a black-box analysis of a cryptosystem.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7188, "properties": {"category": "talk.politics.misc", "text": "From: mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson)\nSubject: Re: Supply Side-revenue\nOrganization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA\nDistribution: na\nLines: 22\n\nIn <9460@tekig7.PEN.TEK.COM> ssoar@tekig5.pen.tek.com (Steven E Soar) writes:\n\n|In article <C5217t.J5B@newsserver.technet.sg>, ipser@solomon.technet.sg (Ed Ipser) writes:\n|> \n|> The result is that Clinton now HOPES to reduce the deficit to a level \n|> ABOVE where it was when Reagan left office.\n\n|Which, considering the amount Bush&congress added to it, would be a\n|not-inconsiderable achievement.\n\n|While we're on the subject, I also believe that the supply-side claim that\n|reducing taxes raised revenue is also false, because they typically factor in\n\nYou need to hop over to talk.politics.misc. Wee have been chewing on this gem\nfor awhile. The challenge has been made to name a single supply sider who\never said this. For the last three weeks the challenge has gone unmet.\nI issue the same challenge to you.\n-- \nMob rule isn't any prettier merely because the mob calls itself a government\nIt ain't charity if you are using someone else's money.\nWilson's theory of relativity: If you go back far enough, we're all related.\nMark.Wilson@AtlantaGA.NCR.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7189, "properties": {"category": "rec.sport.baseball", "text": "From: luigi@sgi.com (Randy Palermo)\nSubject: Re: Grateful Dead?\nOrganization: Silicon Graphics, Inc., Mountain View, CA\nLines: 16\nNntp-Posting-Host: bullpen.csd.sgi.com\n\nIn article <93095.172834IO21087@MAINE.MAINE.EDU> IO21087@MAINE.MAINE.EDU writes:\n>Being a baseball fan and a fan of the above mentioned band I was\n>wondering if anyone could clue me in on whether the Dead (or members\n>of) sang the national anthem at todays Giant opener?\n>\n>I would imagine that it is a bit too early for anyone to know, but\n>an answer would be greatly appreciated.\n>\nIt is my understanding that the Dead will sing the NA at the Giants\nhome opener on Mon. 4/12. The Giants are opening today in St. Louis.\n\nluigi\n--\nRandy Palermo   luigi@csd.sgi.com    Fax: (415)961-6502\nSilicon Graphics Computer Systems, 2011 N. Shoreline Blvd Mt. View, CA 94039\n\"Play an accordion, go to jail. That's the LAW\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7190, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: Public Schedule of the President 4.5.93\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 34\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n                        THE WHITE HOUSE \n\n                  Office of the Press Secretary\n_________________________________________________________________\nFor Immediate Release                        April 5, 1993\n\n\n\n\n                PUBLIC SCHEDULE OF THE PRESIDENT\n                     TUESDAY, APRIL 6, 1993\n\n\n\n11:15 AM EST   \t    PRESIDENT CLINTON DELIVERS REMARKS with \n                    Egyptian President Mubarek, the East Room, \n                    The White House\n\n               \t    Open Press\n\n\n\n\n                FUTURE SCHEDULE OF THE PRESIDENT\n\n\nAPRIL 16, 1993 \t    PRESIDENT CLINTON MEETS with Japanese Prime \n                    Minister Miyazawa, the White House\n\n\nAPRIL 26, 1993 \t    PRESIDENT CLINTON MEETS with Italian \n                    President Amato, the White House\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.339+0000", "event": "documents", "entityId": 7191, "properties": {"category": "soc.religion.christian", "text": "From: khan0095@nova.gmi.edu (Mohammad Razi Khan)\nSubject: Re: Doing the work of God??!!)\nOrganization: GMI Engineering&Management Institute, Flint, MI\nLines: 33\n\nhedrick@cs.rutgers.edu writes:\n\n>down these distinctions.  In him there is neither Jew nor Greek, there\n>is neither slave nor free, there is neither male nor female.  If\n>Moslems do not know him, we may preach to them, but we don't kill\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nAs a muslim (spelled sometimes as Moslem) I must say that Muslims strong\nly believe in Jesus.  Refered in islamic text as eesau(as)\n\n         Jesus ==>  J - esu  - s    ===> esu (pronounced eee-saw)\n\nYah we knew him well.  Ideally, this war should not even be.  And even in\na time of war, our goal is peace.  We should try to refrain from viloating\nthe peace of others as then if we do violate, we will not have peace in\nourselves.  I don't like this war eaither,  It is a conflict of territory.\nCroats, Muslims, and Serbs lived together before in peace.  The rallying\npoint is 'race'.  And Im sure that there is a General out there who wouldn't\nmind being a president.\n\n--\nMohammad R. Khan                /    khan0095@nova.gmi.edu\nAfter July '93, please send mail to  mkhan@nyx.cs.du.edu\n\n[From a Christian perspective, Moslem ideas about Jesus look rather\nseriously erroneous.  I've generally tried to avoid discussions of\nIslam in this group, since soc.religion.islam is the right place for\nthat.  Thus I don't much want to go into detail.  I will simply note\nthat Moslems reject most of what Christians regard as the most\nessential facts about Jesus.  So at least from a Christian perspective\nMoslems don't know Jesus.  Again, this is no justification for\nChristians to hate Moslems or to kill them.  I agree with you that\nthis war should never be.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7192, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc2.arc.nasa.gov (Curt Howland)\nSubject: Re: Auction: Diana's bra\nOrganization: NASA Science Internet Project Office\nLines: 13\n\nIn article <1993Apr2.163531.12974@adobe.com>, \ncjackson@adobe.com (Curtis Jackson) writes:\n\n|> Next thing you know I'll see bikes with Geeky stickers parked\n|> outside the local white wine, quiche, and fern bar.\n\nHey! I LIKE quiche, even if I did have to look \nat your note to spell it (assumed) correctly.\n\nReally, you <*sniff*> tough guys are all the same...\n\n(MOMMY! Curtis is making fun of ferns again!!!!)\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7193, "properties": {"category": "sci.med", "text": "From: kxgst1+@pitt.edu (Kenneth Gilbert)\nSubject: Re: Smoker's Lungs\nArticle-I.D.: blue.7934\nOrganization: University of Pittsburgh\nLines: 21\n\nIn article <1993Apr5.123315.48837@kuhub.cc.ukans.edu> bennett@kuhub.cc.ukans.edu writes:\n>How long does it take a smoker's lungs to clear of the tar after quitting? \n>Does your chances of getting lung cancer decrease quickly or does it take\n>a considerable amount of time for that to happen?\n\nThe answer to your first question is rather difficult to answer without\ndoing a lot of autopsies.  The second question is something that's been\nknown for some time.  It appears that within about 15 years of quitting\nsmoking a person's risk for developing lung cancer drops to that of the\nperson who never smoked (assuming you do not get lung cancer in the\ninterim!).  The risk to someone who smoked the equivalent of a pack per\nday for 40 years is around 20 times as high as a non-smoker.  Still\nrather low overall, but significant.  Personally, I'd be more concerned\nabout heart disease secondary to smoking -- it's much more common, and\neven a small increase in risk is significant there.\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!  =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7194, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dallas@ravel.udel.edu (Paul Lewis Fincke)\nSubject: SCSI help\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nDistribution: us\nLines: 24\n\n\nHowdy,\n\nSorry if this has been covered before:\n\nOne of my PC illiterate friends asked me to help him install DRDOS 6.0 on his\nNEC Powermate SX (386SX 16).  Of course, I said \"No problem\" and went to work.\nUnfortunately, the DRDOS refuses to recognize the hard drive during \ninstallation, even though I am still able to boot off of the hard drive using\nthe old DOS.  After openning it up I discovered it was using an 8-bit \nSeagate SCSI controller on a ST-157N SCSI 40Mbtye drive.  I then booted \nwith DRDOS 6.0 off of the floppy a second time and ran fdisk to see if \nI could access the drive.  Lo and behold the primary 46.5 Mbyte partition \nwas intact (created by DOS 3.1 no less, I didn't think you could go over a\n32Mbyte partition in the older DOSes. I could be wrong...).  I then tried \nto remove the primary partition, which it wouldn't allow me to do.  I am \nunaware of anything special that has to be done with a SCSI drive (I \nkinda expected it to work just like an IDE/MFM/RLL drive for DOS \ninstallations).  Any suggestions would be greatly appreciated (except for \n\"Throw it in the garbage and buy a new PC\")...\n\nThanks in advance,\n\nPaul \"Mr. SCSI... NOT!\" Fincke\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7195, "properties": {"category": "comp.windows.x", "text": "From: rchui@nswc-wo.nswc.navy.mil (Raymond Chui)\nSubject: Re: A Question I Do Not Found In FAQ\nReply-To: rchui@opal.nswc.navy.mil\nOrganization: NAVSWC DD White Oak Det.\nLines: 72\n\ncomp.windows.x\nIn article <1993Apr26.122007.25760@relay.nswc.navy.mil>, rchui@nswc-wo.nswc.navy.mil (Raymond Chui) writes:\n\n\tPlease igore my previouse calculation mistaked. Please see the correct\ncalculation. Sorry!\n|> I created a pixmap or drawable window, then used XDrawLine() function \n|> drawed a line as below fingure:\n|> \n|> \t\twidth = 300\n|> \t================================\n|> \t|\t\t\t\t|\n|> \t|\t\t\t\t|\n|> \t|\t\t\tp1\t|\n|> \t|\t\t\t\\\t|\n|> \t|\t\t\t \\\t| height = 300\n|> \t|\t\t\t  \\\t|\n|> \t|\t\t\t   \\\t|\n|> \t|\t\t\t    \\\t|\n|> \t|\t\t\t     \\\t|\n|> \t|\t\t\t      \\\t|\n|> \t|\t\t\t       \\|p3\n|> \t|\t\t\t\t| \n|> \t|===============================| \\\n|> \t\t\t\t\t    \\\n|> \t\t\t\t\t     p2\n|> \n|> \tI created the pixmap or drawable window only with size 300x300.\n|> But I draw line from p1(x1=270,y1=100) to p2(x2=500,y2=800).\n|> My question is, dose the XDrawLine function can finger out that correct\n|> p3(x3 and y3) for me? If you calculate x3 and y3. \n|> \n x3 = 300;\n @ = art tan (500 - 270)/(800 - 100)) = 18.19 degrees;\n y3 = 100 + (300 - 270)/tan(@) = 191.29 ~= 191 integer\n\n|> \n|> How do I prove XDrawLine() give me the right x3, y3 or not?\n|> Please don't ask me why I don't created a 900x900 pixmap. No, I don't\n|> wan to. \n|> \n|> Thanks in advance!\n|> -- \n|> Raymond H. Chui\n|> NSWC N62\n|> 10901 New Hampshire Ave.\n|> Silver Spring, MD 20903-5000\n|> U.S.A.\n|> Voice:1(301)394-3807 Ext. 45\n|> FAX:1(301)394-4483\n|> EMail:rchui@opal.nswc.navy.mil\n|>  _ __                                  _    ,    __\n|> ' )  )                           /    ' )  /    /  ) /\n|>  /--' __. , , ____   ______   __/      /--/    /    /_  . . o\n|> /  \\_(_(_(_/_/) ) )_(_) /) )_(_(_     /  ( o  (__/ / /_(_/_(_\n|>           /\n|>          '\n\n-- \nRaymond H. Chui\nNSWC N62\n10901 New Hampshire Ave.\nSilver Spring, MD 20903-5000\nU.S.A.\nVoice:1(301)394-3807 Ext. 45\nFAX:1(301)394-4483\nEMail:rchui@opal.nswc.navy.mil\n _ __                                  _    ,    __\n' )  )                           /    ' )  /    /  ) /\n /--' __. , , ____   ______   __/      /--/    /    /_  . . o\n/  \\_(_(_(_/_/) ) )_(_) /) )_(_(_     /  ( o  (__/ / /_(_/_(_\n          /\n         '\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7196, "properties": {"category": "comp.graphics", "text": "From: msc_wdqn@jhunix.hcf.jhu.edu (Daniel Q Naiman)\nSubject: Geometry package\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 11\nDistribution: world\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\n\nI am looking for a package which takes as inputs a set\nof geometric objects defined by unions of convex polytopes\nspecified in some manner, say by inequalities and equalities,\nand determines in some reasonable form things like\nintersections, unions, etc. etc..\n\nDoes anyone know where I can find such a thing?\n\nDan Naiman\nDepartment of Mathematical Sciences\nJohns Hopkins University\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7197, "properties": {"category": "talk.politics.misc", "text": "From: paul@hsh.com (Paul Havemann)\nSubject: Re: Top Ten Excuses for Slick Willie's Record-Setting Disapproval Rati\nOrganization: HSH Associates\nLines: 26\n\nIn article <2671@emoryu1.cc.emory.edu>, libwca@emory.edu (Bill Anderson) writes:\n> shapiro@sofbas.enet.dec.com (Steve Shapiro) writes:\n> : \n> : Oh, and BTW, its William Jefferson Blythe Clinton.\n> : \n> : Regards,\n> : Steve.\n> \n> \n> No, it's not- and I really fail to understand the use of that name\n> as an insult.  Do you feel that being adopted implies some sort of\n> moral failing?\n\nYes, it is -- you could look it up.  And spare us the thin-skinned\nindignation, please; what's sauce for four years of using George Herbert\nWalker Bush and J. Danforth Quayle as an insult is sauce for William\nJefferson Blythe Clinton.  Do you feel that calling a President by his full \nname implies some sort of disrespect?  Hint: this is a rhetorical question.\n\n------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ \n\nPaul Havemann   (Internet: paul@hsh.com)\n\n   * They're not just opinions -- they're caffeine for the brain! *\n         ** (Up to 50 milligrams per cynical observation.) **\n     Recommended Minimum Daily Requirement: 1,000 mg.  Keep reading.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7198, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rwang@gmuvax2.gmu.edu (John Wang)\nSubject: More Cool BMP files??\nDistribution: usa\nOrganization: George Mason University, Fairfax, Virginia, USA\nLines: 13\n\nHi, everybody:\n    I guess my subject has said it all.  It is getting boring\nlooking at those same old bmp files that came with Windows.  So,\nI am wondering if there is any body has some beautiful bmp file\nI can share.  Or maybe somebody can tell me some ftp site for\nsome bmp files, like some scenery files, some animals files,\netc....  I used to have some, unfortunately i delete them all.\n\nAnyway could me give me some help, please???\n\nthanks a lot!\n\njohn\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7199, "properties": {"category": "talk.religion.misc", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: *** The list of Biblical contradictions\nOrganization: University of Georgia, Athens\nLines: 14\n\nIn article <bskendigC51CqB.K0r@netcom.com> bskendig@netcom.com (Brian Kendig) writes:\n\n>Specifically: when I bring up the fact that Genesis contains two\n>contradictory creation stories, I usually get blank stares or flat\n>denials.  I've never had a fundamentalist acknowledge that there are\n>indeed two different accounts of creation.\n\nThat is because two creation stories is one of the worst examples of \na difficulty with the Bible.  \"were formed\" can also be translated \"had been\nformed\" in chapter two without any problems.  So the text does not demand\nthat there are two creation stories.  \n\nLink Hudson.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7200, "properties": {"category": "rec.motorcycles", "text": "From: andersen@me.udel.edu (Stephen Andersen)\nSubject: Riding Jacket Recommendations\nNntp-Posting-Host: me.udel.edu\nOrganization: Center for Composite Materials/University of Delaware\nLines: 36\n\nMy old jacket is about to bite the dust so I'm in the market for a new riding\njacket.  I'm looking for  recommendations for a suitable replacement.  I would\nlike to buy a full Aerostich suit but I can't afford $700 for it right now.\n\nI'm considering two basic options:\n\n1)  Buy the Aerostich jacket only.  Dunno how much it costs\n    due to recent price increases, but I'd imagine over $400.\n    That may be pushing my limit.  Advantages include the fact\n    that I can later add the pants, and that it nearly eliminates\n    the need for the jacket portion of a rainsuit.\n\n2)  Buy some kind of leather jacket.  I like a few of the new \n    Hein-Gericke FirstGear line, however they may be a bit pricey\n    unless I can work some sort of deal.  Advantages of leather\n    are potentially slightly better protection, enhanced pose\n    value (we all know how important that is :-), possibly cheaper\n    than upper Aerostich.\n\nRequirements for a jacket are that it must fit over a few other \nlayers (mainly a sizing thing), if leather i'd prefer a zip-out \nlining, it MUST have some body armor similar to aerostich (elbows, \nshoulders, forearms, possibly back/kidney protection, etc.), a \nreasonable amount of pocket space would be nice, ventilation would \nbe a plus, however it must be wearable in cold weather (below\nfreezing) with layers or perhaps electrics.\n\nPlease fire away with suggestions, comments, etc...\n\nSteve\n--\n-- \n Steve Andersen  DoD #0239                               andersen@me.udel.edu\n (302) 832-0136                                     andersen@zr1.ccm.udel.edu\n 1992 Ducati 907 I.E.                                      1987 Yamaha SRX250\n \"Life is simply a consequence of the complexities of carbon chemistry...\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7201, "properties": {"category": "rec.motorcycles", "text": "From: prahren@pb2esac.uucp (Peter Ahrens)\nSubject: BMWMOA Controversy  \nSummary: Request for _brief_ overview\nKeywords: BMWMOA Board, history of contretemps\nOrganization: Pacific*Bell ESAC, Oakland, CA.\nDistribution: usa\nLines: 18\n\nIn article <1095@rider.UUCP> joe@rider.cactus.org writes:\n>>vech@Ra.MsState.Edu (Craig A. Vechorik) writes:\n>>...good ol boys that have been there too long. \n>\n> [...] while I agree with you that the current\n>board is garbage, voting you in would simply be trading one form of trash \n>for another...do the opponents of your selections get equal time...? \n\nYo' Joe, why don't you post what you really think?\n\nIf there are any rational BMWMOA folks left out there, may the rest of\nus please have a brief summary of the current state of affairs in your\nesteemed organization, together with an historical outline of how you\ngot to the above contretemps?\n\nPoints will be deducted for shouting or bulging veins in the temple area.\n\n-Pete Ahrens\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7202, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Update (Help!) [was \"What is This [Is it Lyme's?]\"]\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 24\n\nIn article <1993Mar24.182145.11004@equator.com> jod@equator.com (John Setel O'Donnell) writes:\n\n>IMHO, you have Lyme disease. \n\n\n>I sent you in private email a summary of the treatment protocols put\n>forth by the Lyme Disease Foundation.  I respectfully suggest that you\n>save yourself a great deal of suffering by contacting them for a\n>Lyme-knowledgeable physician referral and seek treatment at once.\n>You'll know in 2 weeks if you're on the right course; and the clock is\n>ticking on your 6 weeks if you have it. 1-800-886-LYME.\n\nIf these folks are who I think they are, Lyme-knowledgeable may\nmean a physician to whom everything that walks in the door is\nlyme disease, and you will be treated for lyme, whether or not\nyou have it.  Hope you have good insurance.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7203, "properties": {"category": "comp.graphics", "text": "From: td@alice.att.com (Tom Duff)\nSubject: Re: TIFF: philosophical significance of 42\nArticle-I.D.: alice.25335\nOrganization: AT&T Bell Laboratories, Murray Hill NJ\nLines: 3\n\nulrich@galki.toppoint.de wrote:\n> Does anyone have any  other suggestions where the 42 came from?\nForty-two is six times nine.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7204, "properties": {"category": "rec.sport.hockey", "text": "From: slegge@kean.ucs.mun.ca\nSubject: Re:Re: Trade rumor: Montreal/Ottawa/Phillie\nLines: 20\nOrganization: Memorial University. St.John's Nfld, Canada\n\n>>TSN Sportsdesk just reported that the OTTAWA SUN has reported    \n>>tht Montreal will send 4 players + $15 million including Vin \n>>Damphousse and Brian Bellows to Philldelphia, Phillie will send \n>>Eric Lindros to Ottawa, and Ottawa will give it's first round pick \n>>to Montreal.\n\n>>Personally, I can't see Philli giving up Lindros -- for anything.    \n  \n> Here we go again. Is this the same idiot who posted the Gretzky     \n> trade to Toronto????               ^^^^^?!!!\n\nListen, *ASSHOLE*, I'm just commenting on what I heard \nreported on the sports news!!\n\nYou'll notice my skeptical comment!  Sheesh... I thought this group \nwasfor conversation!  Guess I was wrong. }-<\n\nStephen Legge\nSLEGGE@kean.ucs.munc.ca\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7205, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jap10@po.CWRU.Edu (Joseph A. Pellettiere)\nSubject: Sigma Designs Double up??\nArticle-I.D.: usenet.1psdv2$gr5\nReply-To: jap10@po.CWRU.Edu\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 8\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n\tI am looking for any information about the Sigma Designs\n\tdouble up board.  All I can figure out is that it is a\n\thardware compression board that works with AutoDoubler, but\n\tI am not sure about this.  Also how much would one cost?\n-- \nJoe\njap10@po.cwru.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7206, "properties": {"category": "soc.religion.christian", "text": "From: gchin@ssf.Eng.Sun.COM (Gary Chin)\nSubject: Re: When are two people married in God's e\nReply-To: gchin@ssf.Eng.Sun.COM\nOrganization: Sun Microsystems, Inc.\nLines: 32\n\nIn article 28727@athos.rutgers.edu, 62johnson@cua.edu (Yusef Al-Tariq) writes:\n>Who's law is it that a wedding has to happen in a church?  the only reqirement\n>is that you and the bride agreee to marry each other.  How also can you say \"\n>\"christian wedding\" when the proces of marriage is nt really discussed in the\n>bible.  why mus t a person get a civil marriage also?  The only standards i\n>look to are those imposed upon me by god... not of society.\n\nIf you want to live with someone, you can.\nIf you don't want to have a civil marriage, don't.\nIf you don't want to have a wedding in a church, don't.\nIf you want to call that a marriage, go right ahead.\n\nI hope that the young people that are around you, don't follow your example.\n\n\n|-------------------|\n| Gary Chin         |\n| Staff Engineer    |\n| Sun Microsystems  |\n| Mt. View, CA      |\n| gchin@Eng.Sun.Com |\n|-------------------|\n\n[If the original message claims that marriage is not discussed in the\nBible, I have to disagree.  Various aspects of marriage are discussed\nin some of Paul's letters, Ephesians 5 sees marriage as a symbol of\nGod's relationship with the church.  If it means specifically that the\nmarriage ceremony isn't described, then that seems to be true.  But I\nthink what most people mean by Christian marriage is not so much that\nit takes place in a church as that the parties undertake the various\ncommitments to each other that are associated with marriage in the\nBible.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7207, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Changing sprocket ratios (79 Honda CB750)\nFrom: Stafford@Vax2.Winona.MSUS.Edu (John Stafford)\nDistribution: world\nOrganization: Winona State University\nNntp-Posting-Host: stafford.winona.msus.edu\nLines: 11\n\nIn article <3aX42B1w164w@cellar.org>, craig@cellar.org (Saint Craig) wrote:\n> \n> \tIt can be done, contact Chaparell cycle supply, [...] Hey they even \n>  had sprockets for my VF1000R which is hard to find accesssories for. \n\n\tI second that.  They even had sprockets for my R100rs - _very_ hard\n\tto find.\n\n====================================================\nJohn Stafford   Minnesota State University @ Winona\n                    All standard disclaimers apply.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7208, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Re: ISLAM BORDERS vs Israeli borders\nOrganization: University of Illinois at Urbana\nLines: 46\n\nhasan@McRCIM.McGill.EDU  writes:\n\n\n>In article <1993Apr5.202800.27705@wam.umd.edu>, spinoza@next06wor.wam.umd.edu (Yon Bonnie Laird of Cairn Robbing) writes:\n>|> In article <C50wJJ.J4r@newsflash.concordia.ca> ilyess@ECE.Concordia.CA  \n>|> (Ilyess Bdira) writes:\n>|> > > 1)why do jews who don't even believe in God (as is the case with many\n>|> > of the founders of secular zionism) have a right in Palestine more\n>|> > than the inhabitants of Palestine, just because God gave you the land?\n>|> G-d has nothing to do with it. Some of the land was in fact given to the  \n>|> Jews by the United Nations, quite a bit of it was purchased from Arab  \n>|> absentee landlords. Present claims are based on prior ownership (purchase  \n>|> from aforementioned absentee landlords) award by the United Nations in the  \n>|> partition of the Palestine mandate territory, and as the result of  \n>|> defensive wars fought against the Egyptians, Syrians, Jordanians, et al.\n>|> \n>|> ***\n>|> > 2)Why do most of them speak of the west bank as theirs while most of\n>|> > the inhabitants are not Jews and do not want to be part of Israel?\n>|> First, I should point out that many Jews do not in fact agree with the  \n>|> idea that the West Bank is theirs. Since,  however, I agree with those who  \n>|> claim the West Bank, I think I can answer your question thusly: the West  \n>|> bank was what is called the spoils of war. Hussein ordered the Arab Legion  \n\n>\t\t\t^^^^^^^^^^^^^^^^^^^^\n>This is very funny.\n>Anyway, suppose that in fact israel didnot ATTACK jordan till jordan attacked\n>israel. Now, how do you explain the attack on Syria in 1967, Syria didnot\n>enter the war with israel till the 4th day .\n\nSyria had been bombing Israeli settlements from the Golan and sending\nterrorist squads into Israel for years.  Do you need me to provide specifics?\nI can.\n\nWhy don't you give it up, Hasan?  I'm really starting to get tired of your \nempty lies.  You can defend your position and ideology with documented facts\nand arguments rather than the crap you regularly post.  Take an example from\nsomeone like Brendan McKay, with whom I don't agree, but who uses logic and\ndocumentation to argue his position.  Why must you insist on constantly spouting\nbaseless lies?  You may piss some people off, but that's about it.  You won't\nprove anything or add anything worthy to a discussion.  Your arguments just \nprove what a poor debater you are and how weak your case really is.\n\nAll my love,\nEd.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7209, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: The Inimitable Rushdie\nOrganization: Boston University Physics Department\nLines: 32\n\nIn article <1993Apr10.130112.25440@bradford.ac.uk> L.Newnham@bradford.ac.uk (Leonard Newnham) writes:\n\n>Gregg Jaeger (jaeger@buphy.bu.edu) wrote:\n\n>>>And no, in Western countries, it isn't a \"legal\" concept \n>>>at all, so it's not the slightest bit pertinent to the\n>>>topic, which is a British author living in the United \n>>>Kingdom under the protection of British law.\n\n>>Ah, yes, I keep forgetting, governments are superior entities to\n>>religious organizations. Forgive me -- the gun is the higher law.\n\n>This is degenerating to 'Zumder logic.  Of course governments are\n>superior entities, they are elected by the people, whereas religious\n>leaders certainly are not.\n\nPerhaps not in Christianity, but in Islam the choice of religious\nleaders is to be made by the people. So much for your superiority\nargument.\n\n\n>  Those who the people trust to make the law\n>obviously represents the higher law.  That is democracy.\n\nDemocracy is a basic element of Islam. Learn that one!\n\nEver notice that the so-called \"fundamentalists\" in Algeria\nwho are being repressed by the secular government won in\nfree and democratic elections.\n\n\nGregg\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7210, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ak333@cleveland.Freenet.Edu (Martin Linsenbigler)\nSubject: Re: Permanent Swap File\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 39\nReply-To: ak333@cleveland.Freenet.Edu (Martin Linsenbigler)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, mlipsie@rdm09.std.com (Mike Lipsie MPU) says:\n\n>In article <C54yFD.6LD@sunfish.usd.edu> pwiseman@salmon.usd.edu (Cliff) writes:\n>>\n>>Your swap file is purged every time you exit windows. If you shut off your \n>>computer without exiting windows your swap file remains. 20 Mb is on the large\n>>side, are you running more applications than you really need to at the same time?\n>\n>This is, of course, not true.  The *temporary* swap file is purged\n>every time you exit windows.  The permanent file is permanent and\n>can only be changed by adjusting the virtual memory.\n>\n>I suspect that either the original poster was \"tinkering\" and\n>adjusted the swap file to 20MB (and then forgot about it) or \n>somebody \"helped\" him.\n>\n>-- \n>Mike Lipsie                                (work) mlipsie@ca.merl.com\n>Mitsubishi Electronic Research Laboratory  (home) mikel@dosbears.UUCP\n>\nWhen I first setup windows using the self load mode It grabbed about\n20 megs of swap file space, my 120 meg HD was nearly empty at that time.\nI deleted windows for a time and recently reloaded, now my HD is nearly full\nand windows just took 4 megs.\nI have read somewhere that the best rule of thumb is have your\npermanent swap file the same size as your regular RAM size.  I have 4 megs\nof RAM and windows took 4 meg perm swap file.  Works very well.\nIn fact with my available HD space, about 20 megs it won't let me make\nthe swap file any bigger.\nYou should change your virtual mem swap file to 8 megs I think\nthat is what you said your RAM was.\n\nC-ya..... /\\/\\artin\n-- \n  This communication is sent by    /\\/\\artin   University of Arizona Tucson\n  =========================================================================\n  ak333@cleveland.freenet.edu   mlinsenb@ccit.arizona.edu  mlinsenb@arizvms\n  DEATH HAS BEEN DEAD FOR ABOUT 2,000 YEARS ****** FOLLOW THE KING OF KINGS\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.340+0000", "event": "documents", "entityId": 7211, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dmittleman@misvms.bpa.arizona.edu (Daniel Mittleman)\nSubject: Re: NDW Norton Desktop for Windows\nOrganization: University of Arizona MIS Department\nLines: 16\nDistribution: world\nNNTP-Posting-Host: misvms.bpa.arizona.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr17.130528.2773@leland.Stanford.EDU>, shiva@leland.Stanford.EDU (Matt Jacobson) writes...\n> \n>I have an IBM and run Windows 3.1.  A friend installed Norton Desktop For\n>Windows on top of this.  It loads automatically when I type \"win\", and\n>surely adds to the (already dismally slow) process of starting up.\n> \n>I would like to know how to STOP or uninstall this program!!\n>Is there anyone familiar with NDW who can tell me how to turn it off??\n\n    1. Get the friend to uninstall it.\n    2. Read the manual (though from your post I infer that you are using\n    pirated software.)\n    3. Go into SYS.INI and change the SHELL= line to read SHELL=PROGMAN.EXE\n\n===========================================================================\ndaniel david mittleman     -     danny@arizona.edu     -     (602) 621-2932\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7212, "properties": {"category": "talk.politics.misc", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: Kyle K. on Rodney King\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nDistribution: usa\nLines: 26\n\nIn article <C5nH58.Hp4@news.cso.uiuc.edu> kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n>thf2@kimbark.uchicago.edu (Ted Frank) writes:\n>>In article <C5Lp0y.FDK@news.cso.uiuc.edu> kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n>>>How about the fact that you have a bunch of cops putting their lives on\n>>>the line day in and day out who are afraid as hell of a large black guy that\n>>                                                               ^^^^^\n>>>took a large amount of punishment and refused submit?  \n>\n>>I'm curious why you think that particular adjective is important.\n>\n>I'm curious why you took a beign statement and cross-posted it to several\n>different news groups, including something along the lines of \n>alt.discrimination.  \n\nExsqueeze me?  I saw *your* original post in alt.discrimination.\nYour post was cross-posted to three groups.  My followup was cross-posted\nto two of those three (omitting soc.motss).\n\nNow, instead of engaging in meta-discussion off the topic, could you answer \nthe question posed?  If your statement is so \"beign\"(!?), you should have no\ntrouble politely responding to a polite query.\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7213, "properties": {"category": "comp.graphics", "text": "Subject: Re: univesa driver\nFrom: djlewis@ualr.edu\nOrganization: University of Arkansas at Little Rock\nNntp-Posting-Host: athena.ualr.edu\nLines: 13\n\nIn article <13622@news.duke.edu>, seth@north13.acpub.duke.edu (Seth Wandersman) writes:\n> \n> \tI got the univesa driver available over the net. I thought that finally\n> my 1-meg oak board would be able to show 680x1024 256 colors. Unfortunately a\n> program still says that I can't do this. Is it the fault of the program (fractint)\n> or is there something wrong with my card.\n> \tunivesa- a free driver available over the net that makes many boards\n> vesa compatible. \nWHATS THIS  680x1024 256 color mode? Asking a lot of your hardware ?\n\nDon Lewis\n<djlewis@ualr.edu>\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7214, "properties": {"category": "talk.politics.misc", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: Re: Will Italy be the Next Domino to Fall?\nLines: 101\nReply-To: hallam@zeus02.desy.de\nOrganization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n\n\nIn article <C5GK0w.J8H@newsserver.technet.sg>, ipser@solomon.technet.sg (Ed Ipser) writes:\n\n|>Will Italy be the Next Domino to Fall?\n|>\n|>\n|>\n|>Socialism may have collapsed in Eastern Europe and the Soviet Disunion\n|>but it lingers on in Western Europe and the United States. It remains\n|>the primary ideology in the hearts and minds of the liberal academia\n|>and media. But all the political correctness they can muster may not be\n|>sufficient to hold back the economic forces that threaten to spread\n|>socialism's collapse from the second world to the first. Indeed, it is\n|>becoming more apparent every day that socialism may not even survive\n|>the turn of the century.\n\nEd of course has never demonstrated remarkable knowlege of socialism, \nor any other political system come to that.\n\n|>While the Swedes have already discarded their \"third way\" and the\n|>French have made history by turning out the Socialist Party in a \n|>record-setting defeat, it is Italy that appears most precariously\n|>on the edge of its political existence.\n\nThat leaves Germany, Japan and the UK as examples of a country where the\nright wing government is on the verge of collapse. Oh and of course the USA\nwhich just elected a socialist government :-)\n\n|>Italy, today, is a basket-case even by European standards. It has\n|>introduced 17 new taxes in 5 months and public-sector revenue is at or\n|>near the 50% of GDP mark. \n\nEtc, unfortunately you can't pin this on the left or the right, both are\nto blame. Both sides are equally deep into the corruption scandal. The only \nuntained party is the northern league which is a bunch of nationalist\nseparatists and the communist party which has collapsed.\n\n\n|>In spite of this political gluteny, it has\n|>an annual deficit exceeding the sum of all other EC countries and a\n|>public debt 2.5 times that of Latin America. Italy is understandably\n|>having serious trouble selling its treasury bonds in the markets. And\n|>while Italy is an extreme case, it is anything but unique; all\n|>European governments appear headed in the same direction in spite of\n|>their nominally non-socialist governments.\n|>\n|>Unfortunately, Europeans being, well, Europeans, it is very unlikely\n|>that they will discover American-style liberty. Instead, they will\n|>likely lurch from socialism to fascism as quickly as they had moved\n|>from fascism to socialism never pausing along the way to reasseses the\n|>role of government, itself. I hope I am wrong.\n\nEd should take a look at the budget deficit Regan and Bush created together\nbefore he starts to make claims about europe collapsing based on the budget\ndeficits here. None of them are serious on the USA scale.\n\nAnd here in Europe we have zero interest in Ed-Ipser type freed thank you.\nWe do not want our countries to be run by a narrow elite of rich lawyers\nfor the benefit of the super wealthy. We are quite happy with social \ndemocracy and despite the fuss made in Time and Newsweek there is remarkably\nlittle being done to reverse the social welfare reforms brought in by\nsocialism.\n\nThe problem with socialism is that it started with the aims of free education\nand health care and provision of the welfare state. This has been achieved\nacross the whole of Europe, only the USA is struggling to catch up. The\nproblem for socialism is what to do now it has succeeded.\n\n\n|>Nobody ever claimed that the collapse of socialism would be pretty.\n|>The decline of the nation-state will probably lead first to anarchy\n|>since politicians always cut essential services before pork. Los\n|>Angeles has rampant crime and frantically waits for the next wave of\n|>riots but it has a spanking new subway that nobody wants to use and\n|>which, like every other public transit system in the world, will never\n|>be economically viable. (If you were trying to extort tax payers,\n|>which would you cut first, mass transit or police protection?)\n\nEd starts to discus LA, presumably he thinks that it is in Europe. On\nthe other hand he most probably hasn't heard of a European city.\n\n|>Thus does the world hurtle toward chaos even as the 21st century\n|>approaches.\n\nRather the opposite. What is happening in Italy is that the communist party\nhas collapsed. This has meant that the grand coalition between right and\nleft wing parties to keep out the communists has also collapsed. The \nmagistrates have seized this opportunity to crack down hard on fraud and \ncorruption and have arrested half the politicians. The fact that the socialists\nare in charge this week is incidental, the right is into the corruption just\nas baddly.\n\nWhat looks likely to happen is the fringe parties are going to do much\nbetter in the next election. Most of the parliamentary deputies are going\nto get replaced and the parties are going to be forced to look to people\nwho are free of any hint of corruption. Look out for a parliament of\nPavarotti's and porn stars.\n\n\nPhill Hallam-Baker\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7215, "properties": {"category": "sci.space", "text": "From: pwg25888@uxa.cso.uiuc.edu (Patrick W. Grady)\nSubject: Re: Did any DC-X gifs show up?\nOrganization: University of Illinois at Urbana\nLines: 30\n\nfils@iastate.edu (Douglas R Fils) writes:\n\n>In article <1qgiah$h9g@news.cerf.net> diaspar@nic.cerf.net (Diaspar Virtual Reality Network) writes:\n>>The rollout was great and I got lots of great shots. I attended\n>>the press briefing and got shots of the DC-Y model, too. All\n>>in 3D\n>>\n>>David H. Mitchell\n>>\n>>\n>David,\n>\tAre you still planing on scanning these and posting them\n>somewhere?  Hope Hope Hope.  If you could that would be GREAT.\n\n>Thanks for report of the rollout as well\n>take care\n>Doug\n\n\tThey did the rollout already??!?  I am going to have to pay more\nattention to the news.  Are any of the gifs headed for wuarchive??\n \n\nPatrick\n\n\n-- \nPatrick Grady \t\t      |How do they manage it, these humans-beginning\n pwg25888@uxa.cso.uiuc.edu    |each time so innocently, yet always ending up\n pwg25888@sumter.cso.uiuc.edu |with the most blood on their hands?\n\t\t\t      |Fathertree to bugger, O.S. Card's _Xenocide_\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7216, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re: Protective gear\nOrganization: University College of Wales, Aberystwyth\nLines: 19\nNntp-Posting-Host: 144.124.112.30\n\n\nIn article <1993Apr3.200829.2207@galaxy.gov.bc.ca> bclarke@galaxy.gov.bc.ca writes:\n>In article <C4wKFs.BC1@eskimo.com>, maven@eskimo.com (Norman Hamer) writes:\n>> What protective gear is the most important? I've got a good helmet (shoei\n>> rf200) and a good, thick jacket (leather gold) and a pair of really cheap\n>> leather gloves... What should my next purchase be? Better gloves, boots,\n>> leather pants, what?\n\nIF you can remember to tuck properly, the bits that are going to take most \npunishment with the gear you have will probably be your feet, then hips and \nknees. Get boots then  trousers. The gloves come last, as long as you've the \nself control to pull your arms in when you tuck. If not, get good gloves \nfirst - Hands are VERY easily wrecked if you put one down to steady your \nfall at 70mph!! The other bits heal easier.\n\nOnce you are fully covered, you no longer tuck, just lie back and enjoy the \nride.\n\nBest of all, take a mean of all the contradictory answers you get.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7217, "properties": {"category": "misc.forsale", "text": "From: 02106@ravel.udel.edu (Samuel Ross)\nSubject: Sams Comics for sale (no auction!!!!) \nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 373\n\nOK.  Instead of holding an auction, I have decided to compute prices for each comic (after many suggestions).  These are the most reasonable prices I can give (not negotiable).  If you would like to purchase a comic (or group), simply email me with the title and issue #'s you want.  The price for each issue is shown beside each comic.  First come, first served!!!  There is no more bidding.  Meet my price and it is yours.  I can be reached at this email address:\n\n02106@chopin.udel.edu or\n02106@ravel.udel.edu or\n02106@bach.udel.edu or\n02106@brahms.udel.edu\n\nNO MORE HAGGLING ABOUT THE PRICE!!!!!!!!\nLOTS OF COMICS FOR $1, $2, or $3 LOOK AT LIST!!!!!\n\nFor all those who have bought comics from me, thanks!!!\n\nAll comics are near mint unless otherwise noted (my books were graded by\nmile high comics and other comic professional collectors, not me!)\n\nHere is the list:\n\n\n\nIncredible Hulk\n156 (vs another Hulk) $3\n195 $2\n196 $2\n246 (vs Captain Marvel) $1\n248 $1\n249 $1\n250 (Double size issue vs Silver Surfer) $5\n255 (vs Thor) $1\n279 $1\n300 $2\n312 $2\n313 $1\n316 (vs Bi Coastal Avengers) $1\n347 $1\n348 $1\n350 (vs Thing) $2\n354 $1\n358 $1\n360 $1\n362 (vs Werewolf By Night) $2\n364 $1\n365 $1\n366 $1\n379 (1 copy) $5\n\n\nPunisher\n50 $1\n57 $2\n\nPunisher War Journal\n29 (Ghost Rider) $2\n30 (Ghost Rider) $2\n\nPunisher Armory\n1 $4\n2 $2\n\nOriginal Ghost Rider Rides Again (Reprint)\n1 $1\n\nGhost Rider (old series)\n37 $3\n43 (vs Johnny Blaze) $3\n77 (2 copies, origin of GR dream) $4 each\n\nGhost Rider (new series)\n15 (1st print, Green glow in dark cover, 1 copy) $5\n15 (2nd print, gold cover w/ glow cover) $3\n\nWeb of Spiderman\n56 (2 copies) $2 each\n60 $3\n69 (vs Hulk, 1 copy left!!!)  $2\n70 (SpiderHulk, 1 copy left!!!)  $2\n71 $1\n72 $1\n78 $1\n\nDeadly Foes of Spiderman\n1 (2 copies) $2 each\n2 $2\n3 $2\n\nAmazing Spiderman vs Dr. Octopus (special NACME issue) $2\n\nAmazing Spiderman \n350 (vs Dr. Doom, 1 copy LEFT!!!) $2\n\nSpiderman (1990)\n1 (silver, not bagged) $4\n6 $3\n7 $3\n8 (2 copies) $2 each\n9 (w/ Wolverine, 1 COPY LEFT!!!) $2\n10 $2\n11 $1\n13 $5\n16 $1\n\nNew Warriors\n1 (gold cover) $2\n8 $4\n10 $2\n11 $1\n12 $1\n13 $1\n14 (w/ Darkhawk) $1\n15 $1\n\nSuperman Man of Steel #1 $2\n\nSuperman (new)\n53 (2 copies) $1 each\n55 $1\n56 $1\n\nAdventures of Superman \n479 $1\nAnnual #3 $1\n\nSuperman Annual #3 (Armegedon 2001 tie in) $1\n\nAction Comics #666 $1\n\nAvengers West Coast #69 (Hawkeye vs US Agent) $1\n\nBatman\n465 (Robin returns) $2\n466 $1\n467 $1\nAnnual #15 (Armegedon 2001 tie in) $3\n\nCaptain America \n230 (vs Hulk) $2\n257 (vs Hulk) $1\n\n\nArmegedon 2001 \n1 $4\n2 $2\n\n\nFoolkiller #1 $2\n\n\nInfinity Gauntlet \n1 $6\n4 $3\n5 $3\n\nDouble Dragon #1 $1\n\nDeathlok (series) \n2 $1\n\nTransformers #80 (last issue) $2 \n\nWonder Man\n1 $1\n2 $1\n\nFlaming Carrot #25 (w/ Ninja Turtles) $2\n\nThe Comet #1 $1\n\nLegend of the Shield #1 $1\n\nJustice Society of America\n1 $1\n2 $1\n3 $1\n4 $1\n\nOfficial movie mag from Turtles II movie (sealed w/ Jelloman comic) $5\n\nRobin \n1 (1 copies w/ poster) $3\n1 (3rd print) $1\n5 (6 copies) $1 each\n\nGuardians of the Galaxy \n1 $6\n2 $3\n3 $2\n4 $2\n5 $2\n6 $2\n7 $2\n8 $2\n9 (2 copies) $3 each\n10 $2\n11 $2\n12 $1\n13 $3\n14 $3\n15 $1\n16 $1\n17 $1\n18 (2 copies) $2 each\n\nSuperman vs Amazing Spiderman (oversized issue from 70's) $7\n\nDarkHawk\n1 (3 copies) $8 each\n2 (2 copies) $6 each\n3 $5\n4 $4\n5 $4\n6 $3\n7 $2\n8 $2\n9 $3\n10 $1\n\nThor\n246 $1\n428 $1\n429 (vs Juggernaut) $2\n430 (w/ Ghost Rider) $1\n431 $1\n432 (Thor vs Loki, 2 copies) $3 each\n433 (new Thor) $2\nAnnual #16 $1\n\nWhat if....\n13 $1\n23 $1\n25 $2\n26 $1\n\nAlpha Flight\n29 $1\n51 $6\n53 $6\n94 (vs Fant. 4) $1\n\nNew Mutants\n22 $2\n100 (last issue, 1st look at X-Force, 1st print, 2 copies) $5 each\n100 (2nd print, gold cover) $4\n\nFlash (new)\n43 $1\n48 $1\n49 $1\n50 $2\n51 $1\nAnnual #4 $1\n\n\nX-Men (new)\n1 (all 5 covers) $1 each but $2 for magneto  foldout cover\n\nUncanny X-Men\n191 $3\n215 $2\n255 (2 copies) $2 each\n258 $6\n268 (1 sold,1 copy left!, Lee reg artist) $10\n275 (1 COPY LEFT 1st print) $6\n275 (gold 2nd print) $3\n276 $3\n277 $3\n278 $2\n279 $2\n280 $2\n281 $3\n282 $4\n283 $6\n\nDefenders\n52 (Hulk vs Sub Mariner) $2\n\n\nFantastic Four\n347 $4\n348 $2\n349 (3 copies) $2 each\n\nWolverine\n11 $3\n20 $2\n41 (w/ Cable, 2 copies) $6 each\n42 $4\n43 $3\n\nSilver Surfer (1987)\n1 $6\n2 $3\n3 $3\n4 $3\n5 $2\n6 $2\n8 $2\n22 $2\n24 $2\n32 $2\n49 $2\n50 (Foil cover, only 1 copy left!!) $6\n51 $2\n52 $2\n53 $1\n54 $1\n55 $1\n56 $1\n58 $2\n59 $2\n\nAvengers\n326 $3\n328 (origin of Rage) $3\n\nX-Factor\n40 $6\n67 $3\n68 $6\n71 $3\n73 $1\n\nQuasar\n21 $1\n22 $1\n23 $1\n24 $1\n\nGreen Lantern (1990)\n3 $2\n9 (2 copies) $1 each\n10 $1\n11 $1\n12 $1\n\nToxic Avenger\n1 (3 copies) $1 each\n2 $1\n\nSleepwalker\n1 (3 copies) $2 each\n3 $1\n7 $1\n\nKool Aid Man #1 (sealed in white bag, 2 copies) $2 each\n\nX-Force\n1 (bagged w/ Cable Card) $4\n1 (bagged w/ Shatterstar Card) $3\n2 $2\n3 $1\n4 $1\n\nNFL Superpro\n1  $1\n\nDr. Strange #31 $1\n\nHawkworld Annual #2 (2nd print, Armegedon 2001 tie in) $1\n\nHawk & Dove Annual #2 (Armegedon 2001 tie in) $1\n\nJustice League of America Annual #5 (Armegedon 2001 tie in) $1\n\n\n\nSend all bids and comments to\n\n02106@chopin.udel.edu\n\nThanks\nSam (the \"ex\"  comic book collector)\n\n\nCollege of Electrical Engineering, University of Delaware\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7218, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Alt.Atheism FAQ: Overview for New Readers\nSummary: Hi.  Please read this before you post.\nKeywords: FAQ, atheism\nExpires: Thu, 20 May 1993 10:52:53 GMT\nDistribution: world\nOrganization: Mantis Consultants, Cambridge. UK.\nSupersedes: <19930413094109@mantis.co.uk>\nLines: 145\n\nArchive-name: atheism/overview\nAlt-atheism-archive-name: overview\nLast-modified: 5 April 1993\nVersion: 1.2\n\n                                   Overview\n\nWelcome to alt.atheism and alt.atheism.moderated.\n\nThis is the first in a series of regular postings aimed at new readers of the\nnewsgroups.\n\nMany groups of a 'controversial' nature have noticed that new readers often\ncome up with the same questions, mis-statements or misconceptions and post\nthem to the net.  In addition, people often request information which has\nbeen posted time and time again.  In order to try and cut down on this, the\nalt.atheism groups have a series of five regular postings under the following\ntitles:\n\n   1.  Alt.Atheism FAQ: Overview for New Readers\n   2.  Alt.Atheism FAQ: Introduction to Atheism\n   3.  Alt.Atheism FAQ: Frequently Asked Questions (FAQ)\n   4.  Alt.Atheism FAQ: Constructing a Logical Argument\n   5.  Alt.Atheism FAQ: Atheist Resources\n\nThis is article number 1.  Please read numbers 2 and 3 before posting.  The\nothers are entirely optional.\n\nIf you are new to Usenet, you may also find it helpful to read the newsgroup\nnews.announce.newusers.  The articles titled \"A Primer on How to Work With\nthe Usenet Community\", \"Answers to Frequently Asked Questions about Usenet\"\nand \"Hints on writing style for Usenet\" are particularly relevant.  Questions\nconcerning how news works are best asked in news.newusers.questions.\n\nIf you are unable to find any of the articles listed above, see the \"Finding\nStuff\" section below.\n\n\n                                   Credits\n\nThese files could not have been written without the assistance of the many\nreaders of alt.atheism and alt.atheism.moderated.  In particular, I'd like to\nthank the following people:\n\nkck+@cs.cmu.edu (Karl Kluge)\nperry@dsinc.com (Jim Perry)\nNETOPRWA@ncsuvm.cc.ncsu.edu (Wayne Aiken)\nchpetk@gdr.bath.ac.uk (Toby Kelsey)\njkp@cs.HUT.FI (Jyrki Kuoppala)\ngeoff.arnold@East.Sun.COM (Geoff Arnold)\ntorkel@sics.se (Torkel Franzen)\nkmldorf@utdallas.edu (George Kimeldorf)\nroe2@quads.uchicago.edu (Greg Roelofs)\narromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee)\nmadhaus@netcom.com (Maddi Hausmann)\nJ5J@psuvm.psu.edu (John A. Johnson)\ndgraham@bmers30.bnr.ca (Douglas Graham)\nmayne@open.cs.fsu.edu (William Mayne)\najr@bigbird.hri.com (Andy Rosen)\nstoesser@ira.uka.de (Achim Stoesser)\nbosullvn@unix1.tcd.ie (Bryan O'Sullivan)\nlippard@ccit.arizona.edu (James J. Lippard)\ns1b3832@rigel.tamu.edu (S. Baum)\nydobyns@phoenix.princeton.edu (York H. Dobyns)\nschroede@sdsc.edu (Wayne Schroeder)\nbaldwin@csservera.usna.navy.mil (J.D. Baldwin)\nD_NIBBY@unhh.unh.edu (Dana Nibby)\ndempsey@Kodak.COM (Richard C. Dempsey)\njmunch@hertz,elee.calpoly.edu (John David Munch)\npdc@dcs.ed.ac.uk (Paul Crowley)\nrz@mips.complang.tuwien.ac.at (Richard Zach)\ntycchow@math.mit.edu (Tim Chow)\nsimon@dcs.warwick.ac.uk (Simon Clippingdale)\n\n...and countless others I've forgotten.\n\nThese articles are free.  Truly free.  You may copy them and distribute them\nto anyone you wish.  However, please send any changes or corrections to the\nauthor, and please do not re-post copies of the articles to alt.atheism; it\ndoes nobody any good to have multiple versions of the same document floating\naround the network.\n\n\n                                Finding Stuff\n\nAll of the FAQ files *should* be somewhere on your news system.  Here are\nsome suggestions on what to do if you can't find them:\n\n1. Check the newsgroup alt.atheism.  Look for subject lines starting with\n   \"Alt.Atheism FAQ:\".\n\n2. Check the newsgroup news.answers for the same subject lines.\n\n   If you don't find anything in steps 1 or 2, your news system isn't set up\n   correctly, and you may wish to tell your system administrator about the\n   problem.\n\n3. If you have anonymous FTP access, connect to rtfm.mit.edu [18.172.1.27].\n   Go to the directory /pub/usenet/alt.atheism, and you'll find the latest\n   versions of the FAQ files there.\n\n   FTP is a a way of copying files between networked computers.  If you\n   need help in using or getting started with FTP, send e-mail to\n   mail-server@rtfm.mit.edu with\n\n      send usenet/news.answers/ftp-list/faq\n\n   in the body.\n\n4. There are other sites which also carry news.answers postings.  The article\n   \"Introduction to the news.answers newsgroup\" carries a list of these\n   sites; the article is posted regularly to news.answers.\n\n5. If you don't have FTP, send mail to mail-server@rtfm.mit.edu\n   consisting of the following lines:\n\n      send usenet/news.answers/finding-sources\n      send usenet/alt.atheism/faq\n      send usenet/alt.atheism/introduction\n      send usenet/alt.atheism/logic\n      send usenet/alt.atheism/resources\n\n5. (Penultimate resort)  Send mail to mail-server@mantis.co.uk consisting of\n   the following lines:\n\n      send atheism/faq/faq.txt\n      send atheism/faq/logic.txt\n      send atheism/faq/intro.txt\n      send atheism/faq/resource.txt\n\n   and our poor overworked modems will try and send you a copy of the files.\n   There's other stuff, too; interesting commands to try are \"help\" and\n   \"send atheism/index\".\n\n6. (Last resort)  Mail mathew@mantis.co.uk, or post an article to the\n   newsgroup asking how you can get the FAQ files.  You should only do this\n   if you've tried the above methods and they've failed; it's not nice to\n   clutter the newsgroup or people's mailboxes with requests for files.\n   it's better than posting without reading the FAQ, though!  For instance,\n   people whose email addresses get mangled in transit and who don't have \n   FTP will probably need assistance obtaining the FAQ files.\n\n\nmathew\n\u00ff\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7219, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Moonbase race\nOrganization: U of Toronto Zoology\nLines: 11\n\nIn article <C5sx3y.3z9.1@cs.cmu.edu> 18084TM@msu.edu (Tom) writes:\n>On the other hand, if Apollo cost ~25billion, for a few days or weeks\n>in space, in 1970 dollars, then won't the reward have to be a lot more\n>than only 1 billion to get any takers?\n\nApollo was done the hard way, in a big hurry, from a very limited\ntechnology base... and on government contracts.  Just doing it privately,\nrather than as a government project, cuts costs by a factor of several.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7220, "properties": {"category": "sci.med", "text": "From: mrb@cbnewsj.cb.att.com (m..bruncati)\nSubject: Re: Smoker's Lungs\nArticle-I.D.: cbnewsj.1993Apr6.161858.12132\nDistribution: na\nOrganization: AT&T\nLines: 15\n\nIn article <1993Apr5.123315.48837@kuhub.cc.ukans.edu>, bennett@kuhub.cc.ukans.edu writes:\n> How long does it take a smoker's lungs to clear of the tar after quitting? \n> Does your chances of getting lung cancer decrease quickly or does it take\n> a considerable amount of time for that to happen?\n\n\n\nSeems to me that I read in either a recent NY Times\nScience Times or maybe it was Science News that there is\nevidence that ex-smoker's risk of lung cancer never returns\nto that of a person who has never smoked (I think it may\nget close).  I'll find the article and post it since my\nmemory is hazy on the specifics - if you are interested.\n\nMichael\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7221, "properties": {"category": "talk.religion.misc", "text": "From: emarsh@hernes-sun.Eng.Sun.COM (Eric Marsh)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Sun\nLines: 82\nNNTP-Posting-Host: hernes-sun\n\nIn article <1qkj31$4c6@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>In article <lsr6ihINNsa@exodus.Eng.Sun.COM> emarsh@hernes-sun.Eng.Sun.COM (Eric Marsh) writes:\n>#In article <1qjahh$mrs@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>#>Science (\"the real world\") has its basis in values, not the other way round, \n>#>as you would wish it.  If there is no such thing as objective value, then \n>#>science can not objectively be said to be more useful than a kick in the head.\n>#>Simple theories with accurate predictions could not objectively be said\n>#>to be more useful than a set of tarot cards.  You like those conclusions?\n>#>I don't.\n\n>#I think that you are changing the meaning of \"values\" here. Perhaps\n>#it is time to backtrack and take a look at the word.\n\n>#value n. 1. A fair equivalent or return for something, such as goods\n>#or service. 2. Monetary or material worth. 3. Worth as measured in \n>#usefulness or importance; merit. 4. A principle, standard, or quality\n>#considered inherently worthwhile or desirable. 5. Precise meaning, as\n>#of a word. 6. An assigned or calculated numerical quantity. 7. Mus. \n>#The relative duratation of a tone or rest. 8. The relative darkness or\n>#lightness of a color. 9. The distinctive quality of a speech or speech\n>#sound. \n\n>#In context of a moral system, definition four seems to fit best. In terms\n>#of scientific usage, definitions six or eight might apply. Note that\n>#these definitions do not mean the same thing.\n\n>No, I'm using definition (3), or perhaps (4) in both cases.  If there\n>is no objective worth, usefulness, or importance then science has no \n>objective worth, usefulness, or importance.  If nothing is inherently\n>worthwhile or desirable, then simple theories with accurate predictions\n>are not inherently worthwhile or desirable. Do you see any flaws in this?\n\nThe problem is, your use of the word \"objective\" along with \"values.\"\nBoth definitions three and four are inherently subjective, that is\nthey are particular to a given individual, or personal. You see,\nwhat one person may see as worthwhile, another may see as worthless.\n\n>If on the other hand, some things *have* objective worth, usefulness,\n>or importance, it would be interesting to know what they are.\n\nAgain, your form of measurement in this sentence, that being of \"worth\"\nis subjective. \n\n>#If you can provide an objective foundation for \"morality\" then that will\n>#be a good beginning.\n\n>I'm not willing to attempt this until someone provides an objective\n>basis for the notion that science is useful, worthy, or important in\n>dealing with observed facts.  Alternatively, you could try to\n>demonstrate to me that science is not necessarily useful, worthy\n>or important in any situation.   In other words, I need to know\n>how you use the term \"objective\".\n\nWhen I find that my usage of a word is different than the usage of\nthat word given by another person, I try to find a standard against\nwhich to judge that usage. In most cases, the dictionary is the standard\nI use. Here is a definiton of objective:\n\nobjective ADJ. 1. Of or having to do with a material object as \ndistinguished from a mental concept. 2. Having actual existance.\n3.a. Unenfluenced by emotion or personal prejudice. b. Based on\nobservable phenomenon.\n\nBy this definition, science does not have an objective worth, since the\nphrase \"objective worth\" is an oxymoron. However you asked something a \nlittle differently this time, you asked for an objective basis for a\nnotion. The fact that the use of science as an intellectual tool is\nresponsible for changes in our world (the changes are material, and\nthus \"objective\") would provide an objective _basis_ for an argument.\nHowever, the conclusion arrived at from that argument (that science is \n\"good\") is subjective.\n\nI think that the problem here is one of word usage. Take a little time\nand read the definitions of these words: objective, subjective, worth,\nvalue, morality, good, evil. I believe that if you think about the \nmeaning of them for a while, you will have to conclude that there is no\nsuch thing as an objective morality.\n\n>Frank O'Dwyer                                  'I'm not hatching That'\n>odwyer@sse.ie                                  from \"Hens\",  by Evelyn Conlon\n\neric\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7222, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: penev@rockefeller.edu (Penio Penev)\nSubject: Re: Recommendations for a Local BUS (Cached) IDE Controller\nReply-To: penev@venezia.rockefeller.edu\nOrganization: Rockefeller University\nX-Newsreader: TIN [version 1.1 PL8]\nDistribution: usa\nX-Posted-From: venezia.rockefeller.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 19\n\nOn 15 Apr 1993 20:14:20 GMT Divya Sundaram (sundaram@egr.msu.edu) wrote:\n\n| I would like to hear the net.wisdom and net.opinions on IDE Controllers.\n| I would liek to get a IDE controller card for my VLB DX2 66 Motherboard.\n| What are good options for this (preferably under $200). It MUST also work\n| under OS/2 and be compatible with Stacker (and other Disk Compression S/W).\n\nI have a Maxtor 212MB on an ISA IDE controller, although my machine is\nDX2/66 VLB. I has the save transfer rate of 0.647 MB/s regardless of\nthe variations of the ISA bus speed. I tested it with speed between\n5.5MHz and 8.33MHz. Not _any_ difference. The problem is not the\ninterface between the controller and the memory.\n\nMy advice: Buy 4Megs of RAM, save $70 and enjoy performance.\n\n--\nPenio Penev  x7423 (212)327-7423 (w) Internet: penev@venezia.rockefeller.edu\n\nDisclaimer: All oppinions are mine.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7223, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Clipper -- some new thoughts\nOrganization: AT&T Bell Laboratories\nLines: 55\n\nI'd *desparately* prefer it if we didn't rehash the same arguments\nthat went on ad infinitum last time.  That's especially true for\nsci.crypt.  For that matter, I've created alt.privacy.clipper, since\nthe traffic is appearing in *many* different groups right now.\n\nI'm going to focus here on some technical aspects of the plan, hence my\nfollowup to sci.crypt.  Frankly, if you're not an absolutist, your\nfeelings may turn on some of these issues.  For example -- with an\n80-bit key, simply splitting it into two 40-bit pieces is much less\nacceptable than other schemes, because it means that if just one\nrepository is, shall we say, overly pliable, a would-be eavesdropper\nwould need to recover just 40 more bits of key.  I need not point out\nin this newsgroup that that's pretty easy to do by exhaustive search.\nA slightly more complex scheme -- XOR-ing the key with a random number,\nand then with its complement -- would produce two 80-bit subkeys,\nneither of which is useful alone.  That variant is much more resistant\nto attack.  Clearly, one can get even more sophisticated, to protect\nthe subkeys even more.\n\nOther thoughts...  Some people have noted the size and complexity of\nthe databases necessary.  But the id strings the phones emit could be\ntheir back door key, double-encrypted with the escrow repositories'\npublic keys.  For that matter, they could do that only with session\nkeys, and have no back door at all.  In that case, the FBI would have\nto bring every intercept to the repositories to be decrypted.  This\nwould answer many of the objections along the lines of ``how do you\nmake sure they stop''.\n\nWe can even combine that with a variant of the digital telephony back\ndoor -- have the switch do the tap, but with a digitally-signed record\nof the time, phone number, etc, of the call.  That provides proof to\nthe escrow agents that the tap was done in compliance with the terms of\nthe warrant.\n\nI can suggest other variations, too.  Suppose each Clipper chip had 100\npublic key pairs.  Each would be used ~10 times, after which you'd need\nmore keying material.  (Not a bad idea in any event.)  This could be\nused to enforce time limits, or rather, usage limits, on each warrant;\nthe keys the repository agents would deliver wouldn't last for very\nlong.\n\nI suspect that the cryptographic algorithm itself is secure.  Apart from\nthe obvious -- why push a weak algorithm when you've already got the\nback door? -- I think that the government is still genuinely concerned\nabout foreign espionage, especially aimed at commercial targets.  This\nscheme lets the spooks have their cake and eat it, too.  (I've heard\nrumors, over the years, that some factions within NSA were unhappy with\nDES because it was too good.  Not that they couldn't crack it, but it\nwas much too expensive to do so as easily as they'd want.)  They're keeping\nthe details secret so that others don't build their own implementations\nwithout the back door.\n\nThe cryptographic protocol, though, is another matter.  I see no valid\nreasons for keeping it secret, and -- as I hope I've shown above -- there\nare a lot of ways to do things that aren't (quite) as bad.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7224, "properties": {"category": "comp.windows.x", "text": "From: steve@smartstar.com\nSubject: Motif Server for ASCII terminals\nOrganization: SmartStar Corporation / Signal Technology\nLines: 2\nNntp-Posting-Host: louie\n\nDoes anyone know of an X server for character cell terminals?\nDoesn't have to be anything fancy, as long is it works.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7225, "properties": {"category": "sci.electronics", "text": "From: msunde01@mik.uky.edu (Mark  Underwood)\nSubject: Re: help - how to construct home-built battery for 3rd grade sci report\nNntp-Posting-Host: nx26.mik.uky.edu\nReply-To: msunde01@mik.uky.edu\nOrganization: University Of Kentucky, Dept. of Math Sciences\nDistribution: usa\nLines: 29\n\nIn article <C5quI4.4CF@spk.hp.com> borowski@spk.hp.com (Don T. Borowski)  \nwrites:\n> Dean Anneser (anneser@pwa-b.uucp) wrote:\n> : My 9 yr old son has signed up to do a science report on batteries.  I  \nwas\n> : wondering if anyone could provide me with some information as to how  \nto\n> : construct a home-built battery.  In my grade school days, I remember \n\n(snip!)\n\nI haven't been following this, so I'm sorry if somebody already mentioned  \nthis, but you could grab a lemon (I think potatoes work too, but I'm not  \nsure), a strip of copper, and a strip of zinc (I think you can get the  \nmetal in a hardware store or hobby shop, maybe??).  Stick the strips in  \nthe lemon (so they don't touch!) and you'll get a measurable voltage (not  \na lot, but, hey, it's a lemon :-)  ).  As I recall we had to hook  \nsomething like ten of these things to get an appreciable amount of  \ncurrent, because of the mondo internal resistance, but if you just need a  \ndemo you might get it to run a tiny fan or something! :-)\n\n\nMark S. Underwood\nEE Student, University of Kentucky\nLab Assistant, Boyd Hall Microlab \n\t(a tiny little division of UK Library Microlabs)\nE-Mail:  msunde01@mik.uky.edu\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7226, "properties": {"category": "soc.religion.christian", "text": "From: trajan@cwis.unomaha.edu (Stephen McIntyre)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nOrganization: University of Nebraska at Omaha\nLines: 66\n\nnorris@athena.mit.edu  writes:\n\n> This is certainly a valid objection to religion-as-explanation-of-\n> nature.  \n\n> Fortunately for the convenience of us believers, there is a class of\n> questions that can never be reduced away by natural science.  For\n> example: why does the universe exist at all?  \n\nMust there be a \"why\" to this?  I ask because of what you also\n     assume about God-- namely, that He just exists, with no \"why\"\n     to His existence.  So the question is reversed, \"Why can't\n     we assume the universe just exists as you assume God to\n     \"just exist\"?  Why must there be a \"why\" to the universe?\"\n\n> After all, the time-space\n> world didn't have to exist.  Why does *anything* exist? And: is it\n> possible for persons (e.g. man) to come into being out of a purely\n> impersonal cosmos?  These questions which look at the real mysteries of\n> life -- the creation of the world and of persons -- provide a permanent\n> indicator that the meaning of life in the material world can only be\n> found *outside* that world, in its Source.\n\nIt may be that one day man not only can create life but can also\n     create man.  Now, I don't see this happening in my lifetime,\n     nor do I assert it is probable.  But the possibility is there,\n     given scientists are working hard at \"decoding\" out \"genetic\n     code\" to perhaps help cure disease of a genetic variation.\n     Again, though, must there be \"why\" or a \"divine prupose\" to\n     man's existence?\n\n> When you say that man is *only* an animal, I have to think that you are\n> presenting an unprovable statement -- a dogma, if you will.  And one\n> the requires a kind of \"faith\" too.   By taking such a hard line in\n> your atheism, you may have stumbled into a religion of your own.\n\nAs far as we can tell, man falls into the \"mammal\" catagory.  Now,\n     if there were something more to the man (say, a soul), then\n     we have yet to find evidence of such.  But as it is now, man\n     is a mammal (babies are born live, mother gives milk, we're\n     warm-blooded, etc.) as other mammals are and is similar in\n     genetic construction to some of them (in particular, primates).\n     For more on this check out talk.origins.\n\n> But before you write off all Christianity as phony and shallow, I hope\n> you'll do a little research into its history and varieties, perhaps by\n> reading Paul Johnson's \"A History of Christianity\".  From your remarks,\n> it seems that you have been exposed to certain types of Christian\n> religion and not others.  Even an atheist should have enough faith in\n> Man to know that a movement of 2000 years has to have some depth, and\n> be animated by some enduring values.\n\nWell, then, Buddhism, Confucianism, Taoism, Hinduism, Judaism,\n     Zoerasterism, Shintoism, and Islam should fit this bit of logic\n     quite nicely... :-)  All have depth, all have enduring values,\n     thus all must be true...\n\nStephen\n\n    _/_/_/_/  _/_/_/_/   _/       _/    * Atheist\n   _/        _/    _/   _/ _/ _/ _/     * Libertarian\n  _/_/_/_/  _/_/_/_/   _/   _/  _/      * Pro-individuality\n       _/  _/     _/  _/       _/       * Pro-responsibility\n_/_/_/_/  _/      _/ _/       _/ Jr.    * and all that jazz...\n\n-- \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7227, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: Observation re: helmets\nOrganization: Ontario Hydro - Research Division\nDistribution: usa\nLines: 19\n\nIn article <1993Apr15.220511.11311@research.nj.nec.com> behanna@syl.nj.nec.com (Chris BeHanna) writes:\n>\tDo I have to be the one to say it?\n>\n>\tDON'T BE SO STUPID AS TO LEAVE YOUR HELMET ON THE SEAT WHERE IT CAN\n>\tFALL DOWN AND GO BOOM!\n\nTrue enough. I put it on the ground if it's free of spooge, or directly\non my head otherwise.\n\n>\tThat kind of fall is what the helmet is designed to protect against.\n\nNot exactly. The helmet has a lot less energy if your head isn't in it, and\nthere's no lump inside to compress the liner against the shell. Is a drop\noff the seat enough to crack the shell? I doubt it, but you can always\nsend it to be inspected.\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7228, "properties": {"category": "sci.electronics", "text": "From: betts@netcom.com (Jonathan Betts)\nSubject: Where to find CHEAP LCD displays?\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 32\n\nSci.E(E) netters:\n\nI am setting out to build and market a small electronic device that \nrequires an LCD display.  All of the analog electronics are working \nfine, I have ordered a PIC ICE (not vice versa) since the PICs are so \ncheap and low-power, but I am having a devil of a time finding any \nLCD displays in the 6-8 digit range that are priced as low as I need.  I \nam looking for somthing in the range of $1 in quantities of about \n1000-10,000.\n\nMainstream distributors like Almac cannot help me without a part \nnumber, or when they do look around for something in their line \nthey find a $15 8-digit LCD.  Even Digikey's cheapest offering is $5 in \nquantity.\n\nI know LCD displays like this must exist because I see whole \ncalculators for sale for $4.99, meaning the retailer probably buys it \nfor $3.50 and the wholesaler probably gets it for $2.50 or so.  This \n$2.50 includes assembly labor, packaging, sales, transportation, \nimport duties, the case and keyboard, the PC Board, the processor \nchip, the solar cell --- and the LCD.  The LCD can't cost much.\n\nIf anyone could put me in touch with some manufacturers and/or \ndistributors that handle such things I would be much obliged.\n\n-Joe Betts\nbetts@netcom.com\n\n\nP.S.  I have tried tearing apart several cheap consumer devices that \nhave LCDs only to find that the LCDs are unlabelled.  Has anyone else \nhad better luck with this strategy?\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.341+0000", "event": "documents", "entityId": 7229, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: begolej@csgrad.cs.vt.edu (James Begole)\nSubject: Wincmd - trouble with string variables\nOrganization: VPI&SU Computer Science Department, Blacksburg, VA\nLines: 19\n\nHas anyone else been playing with that wincmd utility from PC Magazine?\nIf so, I am having trouble concatenating string variables together and\nneed your help.  For example:\ntemp = \"path\"\ntemp2 = \"file.ext\"\nfullpath = temp+\"/\"\nsay fullpath\t\t\t// output = 'th/'\nfullpath = fullpath+temp2\nsay fullpath\t\t\t// output = 'h/file.ext'\n\nSo, it seems to be dropping the first few characters with each\nconcatenations.  Is it that I am out of memory -- I only have maybe 20\nvariables total -- the article didn't mention memory limits. \n\nemail me if you have an idea or would like to see the actual source and\noutput.  Thanks for your help.\n\t\t-Bo\n-- \n\t--James \"Bo\" Begole\t\tbegolej@csgrad.cs.vt.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7230, "properties": {"category": "alt.atheism", "text": "From: Nanci Ann Miller <nm0w+@andrew.cmu.edu>\nSubject: Re: Concerning God's Morality (long)\nOrganization: Sponsored account, School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 56\n\t<1993Apr5.084042.822@batman.bmd.trw.com>\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <1993Apr5.084042.822@batman.bmd.trw.com>\n\n\njbrown@batman.bmd.trw.com writes:\n> > Sorry, but there are no supernatural\n> > forces necessary to create a pathogen.  You are saying, \"Since\n> > diseases are bad, the bad entity must have created it.\"  So\n> > what would you say about acid rain, meteors falling from the\n> > sky, volcanoes, earthquakes, and other QUOTE UNQUOTE \"Acts\n> > of God?\" \n> \n> I would say that they are not \"acts of God\" but natural\n> occurrences.\n\nIt amazes me that you have the audacity to say that human creation was not\nthe result of the natural process of evolution (but rather an \"act of God\")\nand then in the same post say that these other processes (volcanos et al.)\nare natural occurrences.  Who gave YOU the right to choose what things are\nnatural processes and what are direct acts of God?  How do you know that\nGod doesn't cause each and every natural disaster with a specific purpose\nin mind?  It would certainly go along with the sadistic nature I've seen in\nthe bible.\n\n> >>Even if Satan had nothing to do with the original inception of\n> >>disease, evolution by random chance would have produced them since\n> >>humanity forsook God's protection.  If we choose to live apart from\n> >>God's law (humanity collectively), then it should come as no surprise\n> >>that there are adverse consequences to our (collective) action.  One\n> >>of these is that we are left to deal with disease and disorders which\n> >>inevitably result in an entropic universe.\n> > \n> > May I ask, where is this 'collective' bullcrap coming from? \n>\n> By \"collective\" I was referring to the idea that God works with\n> humanity on two levels, individually and collectively.  If mankind\n> as a whole decides to undertake a certain action (the majority of\n> mankind), then God will allow the consequences of that action to\n> affect mankind as a whole.\n\nAdam & Eve (TWO PEOPLE), even tho they had the honor (or so you christians\nclaim) of being the first two, definitely do NOT represent a majority in\nthe billions and trillions (probably more) of people that have come after\nthem.  Perhaps they were the majority then, but *I* (and YOU) weren't\naround to vote, and perhaps we might have voted differently about what to\ndo with that tree.  But your god never asked us.  He just assumes that if\nyou have two bad people then they ALL must be bad.  Hmm.  Sounds like the\nsame kind of false generalization that I see many of the theists posting\nhere resorting to.  So THAT's where they get it... shoulda known.\n\n> Jim B.\n\nNanci\n\n.........................................................................\nIf you know (and are SURE of) the author of this quote, please send me\nemail (nm0w+@andrew.cmu.edu):\nLying to ourselves is more deeply ingrained than lying to others.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7231, "properties": {"category": "comp.graphics", "text": "From: rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter)\nSubject: Re: Please Recommend 3D Graphics Library For Mac.\nOrganization: Boeing\nLines: 9\n\nI searched the U Mich archives fairly thoroughly for 3D graphics packages,\nI always thought it to be a mirror of sumex-aim.stanford.edu... I was wrong.\nI'll look into GrafSys... it does sound interesting!\n\nThanks Cheinan.\n\nBobC\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7232, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: arthur@hardy.u.washington.edu (howard roark)\nSubject: PROBLEM WITH PRINTER AND EMM386.EXE!!\nArticle-I.D.: shelley.1qtbh0INN7nh\nDistribution: world\nOrganization: University of Washington, Seattle\nLines: 8\nNNTP-Posting-Host: hardy.u.washington.edu\n\nI recently decided to try using emm386.exe for a memory manager and when I\ntried to print to my printer in lpt1 from word55 I wouldn't work.  It would\nsend the linefeeds for the top margin and then the printer READY light would\ngo off and stop working.  I disabled emm386.exe and the problem went away.\nI would like to continue using emm386.exe if possible.  I would greatly    \nappreciate any comments or suggestions!!  please send them to arthur@u.washingt,\n\narthur@u.washington.edu \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7233, "properties": {"category": "comp.graphics", "text": "From: rap@coconut.cis.ufl.edu (Ryan Porter)\nSubject: Re: DMORPH\nArticle-I.D.: snoopy.1pqlhnINN8k1\nOrganization: Univ. of Florida CIS Dept.\nLines: 34\nNNTP-Posting-Host: coconut.cis.ufl.edu\n\nIn article <1993Apr3.183303.6442@usl.edu> jna8182@ucs.usl.edu (Armstrong Jay N) writes:\n>Can someone please tell me where I can ftp DTA or DMORPH?\n\nDMorf (Dave's Morph, I think is what it means) and DTax (Dave's \nTGA Assembler) are available in the MSDOS_UPLOADS directory\non the wuarchive.\n\nThey are arjed and bundled with their respective xmemory versions,\ndmorfx.exe and dtax.exe, you can also find a version of aaplay.exe\nthere, with which you can view files you create with dta.exe or\ndtax.exe.\n\nI downloaded the whole bunch last week and have been morphing \naway the afternoons since.  The programmes are all a bit buggy and\ndefinitely not-ready-to-spread-to-the-masses, but they are very\nwell written. \n\nThe interface is frustrating at first, but it gets easy once you\nfigure out the tricks.\n\nI have noticed that dmorfx will crash horribly if you try to morph\nwithout using the splines option.  Not sure why, since I don't have\nthe source.  I think it was written for TP 6.0.\n\nIf anyone else comes up with any other hints on getting the thing \nto work right, tell me; it took me several hours the first time\njust to figure out that if I just used the durned splines then \nit would work...\n\n>JNA\n>jna8182@usl.edu\n\n-Ryan\nrap@cis.ufl.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7234, "properties": {"category": "sci.electronics", "text": "From: LLBGB@utxdp.dp.utexas.edu\nSubject: chip / chipset for code 39 barcode?\nOrganization: UTexas Mail-to-News Gateway\nLines: 15\nNNTP-Posting-Host: cs.utexas.edu\n\nDistribution: usa\nReply-To: lihan@ccwf.cc.utexas.edu\n\nWhile I'm on the net bugging everyone, is there such a thing as a chip\nor chipset to decode Code 39 barcode?  I ask for a couple of reasons --\nmainly I want a reasonably compact encoding scheme to write information\non magstripe cards and Code 39 appears to be about right.  (If the 'right'\nway to do it is something else, and it's reasonably easy, can someone let\nme know?)\n\nI might not get a chance to reply too quickly to this or my earlier post,\nbut I'll get to them within a couple days, I think ..\n\nthanx everyone!  <BGB>  lihan@ccwf.cc.utexas.edu\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7235, "properties": {"category": "sci.med", "text": "From: stgprao@st.unocal.COM (Richard Ottolini)\nSubject: Re: Krillean Photography\nOrganization: Unocal Corporation\nLines: 20\n\nLiving things maintain small electric fields to (1) enhance certain\nchemical reactions, (2) promote communication of states with in a cell,\n(3) communicate between cells (of which the nervous system is a specialized\nexample), and perhaps other uses.  These electric fields change with location\nand time in a large organism.  Special photographic techniques such as applying\nexternal fields in Kirillian photography interact with these fields or the resistances\ncaused by these fields to make interesting pictures. Perhaps such pictures will\nbe diagonistic of disease problems in organisms when better understood. Perhaps not.\n\nStudying the overall electric activity of biological systems is several hundred\nyears old, but not a popular activity.  Perhaps, except in the case of a few\ntissues like nerves and the electric senses of fishes, it is hard to reduce the\ninvestigation into small pieces that can be clearly analyzed.  There are some\nhints that manipulating electric fields is a useful therapy such as speeding\nthe healing of broken bones, but not understood why.\n\nBioelectricity has a long association with mysticism. Ideas such as Frankenstein\nreanimation go back to the most early electrical experiments on tissue such as\nwhen Volta invented the battery.  I personally don't care to revert to supernatural\ncause to explain things we don't yet understand.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7236, "properties": {"category": "talk.politics.mideast", "text": "From: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nSubject: Re: Go Hezbollah!!\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nOrganization: Columbia University\nLines: 50\n\nIn article <1993Apr14.125813.21737@ncsu.edu> hernlem@chess.ncsu.edu (Brad Hernlem) writes:\n>\n>Lebanese resistance forces detonated a bomb under an Israeli occupation\n>patrol in Lebanese territory two days ago. Three soldiers were killed and\n>two wounded. In \"retaliation\", Israeli and Israeli-backed forces wounded\n>8 civilians by bombarding several Lebanese villages. Ironically, the Israeli\n>government justifies its occupation in Lebanon by claiming that it is \n>necessary to prevent such bombardments of Israeli villages!!\n>\n>Congratulations to the brave men of the Lebanese resistance! With every\n>Israeli son that you place in the grave you are underlining the moral\n>bankruptcy of Israel's occupation and drawing attention to the Israeli\n>government's policy of reckless disregard for civilian life.\n>\n>Brad Hernlem (hernlem@chess.ncsu.EDU)\n\n\nAhhh, of course. Israeli morality pales in the face of charming events \nlike the string of PLO-run skyjackings in the mid 80's (remember those \nTWA jokes?), and not to forget the Achille Lauro and however many airline\nbombings they have committed, not to mention bombings on the streets of \nIsrael (It's gotten to a point where children are told not to go near any\nbags or containers whose origins they don't know, because they could be \nbombs), or last weeks Katyusha rocket attack on Northern Israel by Fatah,\nthose wonderful \"mainstream moderates\" with whom Israel is attempting\nto negotiate.\n\nLet's not forget the fact that more Palestinians are killed by Palestinians\nthan by Israelis.  Ahh yes, those charming humanitarian death squads.\nI've actually seen a videotape of an interrogation (DSee the documentary \n_Deadly Currents_--very neutral and balanced--seriously)--It was rather \ninquisition-esque. essentially, to prove his loyalty to \"the cause\" of\nwhichever group it was that was interogating him, he had to turn in someone\nelse, or else face death in one of the many fun-filled ways that the death-\nsquads love so much--beatings, dismemberment, acid, pouring melted plastic\non the face of the 'guilty party,' and of course beheading, always my \nfavorite.  Did you catch the photos in the Washington Post a while back \nthe execution of a \"collaborator?\"  3 photos:\n1) one Palestinian leading another at gunpoint.\n2) The \"collaborator\" on his knees, the gun pointed at his temple.\n3) The executioner standing on the corpse of the \"collaborator\nshouting about how this is what happens to collaborators.\n\nWonderful justice system, and lots of regard for Human rights.\nRemember Black September?\nOk, so they just tried to take over Jordan, big deal.\n\nI'm rambling now, but are you getting what I'm saying?\n\nAmir\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7237, "properties": {"category": "comp.windows.x", "text": "From: oleg@sdd.comsat.com (Oleg Roytburd)\nSubject: HP 2623A graphics terminal emulators\nSummary: Need application to emulate HP 2623A graphics terminal on X\nKeywords: graphics terminal emulator\nOrganization: SDD, COMSAT Labs, Clarksburg, MD\nLines: 6\n\nI would be grateful to anyone who knows about an X-windows application\nthat would emulate HP 2623A graphics in a manner similar to\nthe way TEK graphics windows are implemented in xterm.\nThanks for you help.\n\n-- Oleg Roytburd (oleg@sdd.comsat.com)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7238, "properties": {"category": "talk.politics.misc", "text": "From: rcollins@encore.com (Roger Collins)\nSubject: Re: Top Ten Reasons Not to Aid Russians\nOrganization: Encore Computer Corporation\nNntp-Posting-Host: sysgem1.encore.com\nLines: 116\n\njulie@eddie.jpl.nasa.gov (Julie Kangas) writes:\n>In article <C513wJ.75y@encore.com> rcollins@ns.encore.com (Roger Collins) writes:\n>>julie@eddie.jpl.nasa.gov (Julie Kangas) writes:\n>>|> Don't look at me.  I want to send aid to Russia.  Many other\n>>|> conservatives do as well.  \n>>|> \n>>Yes, it was Nixon who was most vocal about giving money to Russia.  It\n>>makes me proud to be a libertarian.  It appears both conservatives and\n>>liberals prefer to cold war until you win, then nurse the enemy back to\n>>health for another go around.\n\n>Enemy?  Sounds like that's the viewpoint of the stereotypical rednecked\n>conservative -- 'always been commies, always will be.'\n\nOK, I should have said \"former\" enemy.  I was being sarcastic about what\ninterventionists want to do.\n\n>I suggest you\n>listen very carefully to the stuff Yeltsin and his people are saying\n>and compare that with the very anti-West slogans coming from his\n>opponents in the Russian congress.  I sure know who I want to back.\n\nCould we back him without forcing others to back him at the point of a\ngun?\n\nHave you considered a non-interventionist policy?  If market reform does\nhappen, Russia will certainly get *private* capital at *private* risk to\nhelp their economy.  They will even have incentive to do so for the same\nreason.  If they don't reform, then our government will probably\nconsider them enemies anyway and rather spend money to hurt rather than help\nthem.\n\nThen their's the ideological point.  We want to \"win\" Russia over to\nour type of government -- a type where the rulers can rule without limit\nover everyone's finances?\n\n>>It's like subsidizing the wealthy countries (Japan, Germany, etc.) with\n>>free defense, and then trade-warring with them because of the economic\n>>competition.  It's like subsidizing tobacco farmers while paying\n>>bureaucrats to pursuade people not to smoke.\n\n>Better to let them degenerate into civil war?  Remember all those\n>nuclear weapons in Russia.  I cannot imagine that they would not\n>be used in a civil war.  If nationialists take over and, even if\n>they prevent a civil war, most feel they must take back large\n>parts of land that are in other countries (like Ukraine.)  I also cannot\n>imagine Ukraine giving up land without a fight, possibly nuclear.\n\n>How does this affect us?  Well, we are on the same planet and if\n>vast tracks of Europe are blown away I think we'd feel something.\n>A massive breakup of a country that spans 1/6th the planet is\n>bound to have affects here.  (Of course, there is also the\n>humanitarian argument that democracies should help other\n>democracies (or struggling democracies).)\n\nIf a $1.6 billion gift was that important to our well being, couldn't it\nbe raised voluntarilly?  People already give over $100 billion a year to\ncharity.\n\n>>\n>>I ask myself, what law could we pass to prevent government from doing\n>>stupid, frivilous things with OUR money?  Then I think, the Constitution\n>>was supposed to do that.  Could someone please tell me what legitimate\n>>constitutional power the federal government is using when it takes money\n>>from my paycheck and gives it to needy countries?  Seriously.\n\n>Seriously.  Everyone has different opinions on what is stupid.\n>My two \"causes\" are aid to Russia and a strong space program.\n>Someone else will champion welfare or education or doing studies\n>of drunken goldfish.  That is why we have a republic and not a\n>true democracy.  Instead of gridlock on a massive scale, we\n>only have gridlock on a congressional scale.\n\nIt seems instead of gridlock on any scale, we have aid to Russia,\nexpensive space programs, national charity that doesn't help the poor,\nand probably, studies of drunken goldfish.  I think *limited* government\nis more key than how democratic it is.\n\n>BTW, who is to decide 'stupid?'  This is just like those who\n>want to impose their 'morals' on others -- just the sort of\n>thing I thought Libertarians were against.\n\nThat was an opinion, and libertarians are very big on free speech.\n\n>Actually, my politics are pretty Libertarian except on this one issue \n>and this is why it is impossible for me to join the party.  It seems\n>that Libertarians want to withdraw from the rest of the world and\n>let it sink or swim.\n\nIf you are pretty libertarian except on this one issue then you should\nbe VERY libertarian.  Consider it a compromise.  How much money would\nyour fellow Russia-aiders have to give to Russia if those you oppose\nweren't using the same government machine to steal money from you\nand your group for causes you don't support?\n\n>We could do that 100 years ago but not now.\n\nPeople have been saying that for hundreds of years.\n\n>Like it or not we are in the beginnings of a global economy and\n>global decision making. \n\nAll the more reason to depend on the free market which can more\nefficiently process information, than to depend on rulers for decisions\non complex issues.\n\n>Julie\n>DISCLAIMER:  All opinions here belong to my cat and no one else\n\nRoger Collins\n\nSometimes it is said that man cannot be trusted with the government\nof himself.  Can he, then, be trusted with the government of others?\nOr have we found angels in the forms of kings to govern him?  Let\nhistory answer this question.\n\t-- Thomas Jefferson, First Inaugural Address\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7239, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Galileo Update - 04/22/93\nOrganization: Jet Propulsion Laboratory\nLines: 84\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: Galileo, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nForwarded from Neal Ausman, Galileo Mission Director\n\n                                 GALILEO\n                     MISSION DIRECTOR STATUS REPORT\n                               POST-LAUNCH\n                           April 16 - 22, 1993\n\n\nSPACECRAFT\n\n1.  On April 19, cruise science Memory Readouts (MROs) were performed for the\nExtreme Ultraviolet Spectrometer (EUV), Dust Detector (DDS), and Magnetometer\n(MAG) instruments.  Preliminary analysis indicates the data was received\nproperly.\n\n2.  On April 19, a Command Detector Unit Signal-to-Noise Ratio (CDUSNR) test\nand a Radio Frequency Subsystem Automatic Gain Control (RFSAGC) test were\nperformed using the LGA-1 (Low Gain Antenna #1) over DSS-63 (Madrid 70 meter\nantenna) and DSS-61 (Madrid 34 meter antenna), respectively.  Data analysis\nis in process.  These tests are periodically performed to provide detailed\ninformation relative to the telecom command hardware integrity.\n\n3.  On April 19, a NO-OP command was sent to reset the command loss timer to\n264 hours, its planned value during this mission phase.\n\n4.  On April 21, the first of two suppressed carrier/DSN (Deep Space Network)\nadvanced receiver characterization tests was performed over DSS-14 (Goldstone\n70 meter antenna).  The spacecraft modulation index was varied from 43 degrees\nto 90 degrees for a range of ground receiver bandwidth settings.\n\n5.  The AC bus imbalance measurement has not exhibited significant change\n(greater than 25 DN) throughout this period but the DC bus imbalance\nmeasurement has.  The AC measurement reads 20 DN (4.5 volts).  The DC\nmeasurement has ranged from 43 DN (4.6 volts) to 138 DN (16.2 volts) and\ncurrently reads 138 DN (16.2 volts).  These measurements are consistent with\nthe model developed by the AC/DC special anomaly team.\n\n6.  The Spacecraft status as of April 22, 1993, is as follows:\n\n       a)  System Power Margin -  68 watts\n       b)  Spin Configuration - Dual-Spin\n       c)  Spin Rate/Sensor - 3.15rpm/Star Scanner\n       d)  Spacecraft Attitude is approximately 21 degrees\n           off-sun (lagging) and 5 degrees off-earth (leading)\n       e)  Downlink telemetry rate/antenna- 40bps(coded)/LGA-1\n       f)  General Thermal Control - all temperatures within\n           acceptable range\n       g)  RPM Tank Pressures - all within acceptable range\n       h)  Orbiter Science- Instruments powered on are the PWS,\n           EUV, UVS, EPD, MAG, HIC, and DDS\n       i)  Probe/RRH - powered off, temperatures within\n           acceptable range\n       j)  CMD Loss Timer Setting - 264 hours\n           Time To Initiation - 184 hours\n\n\nTRAJECTORY\n\n     As of noon Thursday, April 22, 1993, the Galileo Spacecraft trajectory\nstatus was as follows:\n\n\tDistance from Earth         169,747,800 km (1.14 AU)\n\tDistance from Sun           286,967,900 km (1.92 AU)\n\tHeliocentric Speed          91,200 km per hour\n\tDistance from Jupiter       532,735,900 km\n\tRound Trip Light Time       18 minutes, 58 seconds\n\n\nSPECIAL TOPIC\n\n1.  As of April 22, 1993, a total of 70185 real-time commands have been\ntransmitted to Galileo since Launch.  Of these, 65077  were initiated in the\nsequence design process and 5108 initiated in the real-time command process.\nIn the past week, one real time command was transmitted: one was initiated in\nthe sequence design process and none initiated in the real time command\nprocess. The only command activity was a command to reset the command loss\ntimer.\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7240, "properties": {"category": "alt.atheism", "text": "From: jbrown@batman.bmd.trw.com\nSubject: Re: Death Penalty / Gulf War (long)\nLines: 346\n\nIn article <930420.105805.0x8.rusnews.w165w@mantis.co.uk>, mathew <mathew@mantis.co.uk> writes:\n> jbrown@batman.bmd.trw.com writes:\n>>In article <930419.115707.6f2.rusnews.w165w@mantis.co.uk>, mathew\n>><mathew@mantis.co.uk> writes:\n>>> Which \"liberal news media\" are we talking about?\n>> \n>> Western news in general, but in particular the American \"mass media\":\n>> CBS, NBC, ABC, etc.  The general tone of the news during the whole\n>> war was one of \"those poor, poor Iraqis\" along with \"look how precisely\n>> this cruise missile blew this building to bits\".\n> \n> Most odd.  Over here there was very little about the suffering of the Iraqi\n> civilians until towards the end of the war; and then it was confined to the\n> few remaining quality newspapers.\n\nTrue.  At first, the news media seemed entranced by all the new gizmos\nthe military was using, not to mention the taped video transmissions from\nthe missiles as they zeroed in on their targets.  But later, and especially\nafter the bunker full of civilians was hit, they changed their tone.  It\nseemed to me that they didn't have the stomach for the reality of war,\nthat innocent people really do die and are maimed in warfare.  It's like\nthey were only pro-Gulf-War as long as it was \"nice and clean\" (smart\nmissiles dropping in on military HQs), but not when pictures of dead,\ndying, and maimed civilians started cropping up.  What naive hypocrites!\n\n> \n>>>> How about all the innocent people who died in blanket-bombing in WW2?\n>>>> I don't hear you bemoaning them!\n\n[ discussion about blanket-bombing and A-bombs deleted.]\n>>> \n>> All things considered, the fire-bombings and the atomic bomb were\n>> essential (and therefore justified) in bringing the war to a quick\n                            ^^^^^^^^^\n>> end to avoid even greater allied losses.\n\nI should have said here \"militarily justified\".  It seems from your\ncomments below that you understood this as meaning \"morally justified\".\nI apologize.\n\n> \n> What about the evidence that America knew Japan was about to surrender after\n> Hiroshima but *before* Nagasaki?  Is that another lie peddled by the liberal\n> media conspiracy?\n\nI have often wondered about this.  I've always thought that the first bomb\nshould have been dropped on Japan's island fortress of Truk.  A good,\ninpenatrable military target.  The second bomb could've been held back\nfor use on an industrial center if need be.  But I digress.\n\nYes, I have heard that we found evidence (after the war, BTW) that Japan\nwas seriously considering surrender after the first bomb.  Unfortunately,\nthe military junta won out over the moderates and rejected the US's\nulimatum.  Therefore the second bomb was dropped.  Most unfortunate, IMO.\n\n> \n>> I, for one, don't regret it.\n> \n> Nuke a Jap for Jesus!\n> \n\nI don't regret the fact that sometimes military decisions have to be made\nwhich affect the lives of innocent people.  But I do regret the \ncircumstances which make those decisions necessary, and I regret the\nsuffering caused by those decisions.  \n\n[...]\n\n>>> Why all the fuss about Kuwait and not East Timor, Bosnia, or even Tibet?\n>>> If Iraq is so bad, why were we still selling them stuff a couple of weeks\n>>> before we started bombing?\n>> \n>> I make no claim or effort to justify the misguided foreign policy of the\n>> West before the war.  It is evident that the West, especially America,\n>> misjudged Hussein drastically.  But once Hussein invaded Kuwait and \n>> threatened to militarily corner a significant portion of the world's\n>> oil supply, he had to be stopped.\n> \n> Oh, I see.  So we can overlook his using chemical weapons on thousands of\n> people, but if he threatens your right to drive a huge gas-guzzling car,\n> well, the man's gotta go.\n\nActually, it was the fact that both situations existed that prompted US\nand allied action.  If some back-water country took over some other\nback-water country, we probably wouldn't intervene.  Not that we don't\ncare, but we can't be the world's policman.  Or if a coup had occured\nin Kuwait (instead of an invasion), then we still wouldn't have acted\nbecause there would not have been the imminent danger perceived to\nSaudi Arabia.  But the combination of the two, an unprovoked invasion\nby a genocidal tyrant AND the potential danger to the West's oil \ninterests, caused us to take action.\n\n> \n> [ I've moved a paragraph from here to later on ]\n> \n\n[...]\n>> \n>> If we hadn't intervened, allowing Hussein to keep Kuwait, then it would\n>> have been appeasement.\n> \n> Right.  But did you ever hear anyone advocate such a course of action?  Or\n> are you just setting up a strawman?\n> \n\nI'm not setting up a strawman at all.  If you want to argue against the\nwar, then the only logical alternative was to allow Hussein to keep\nKuwait.  Diplomatic alternatives, including sanctions, were ineffective.\n\n>>>>                                                           I guess we\n>>>> shouldn't have fought WW2 either -- just think of all those innocent\n>>>> German civilians killed in Dresden and Hamburg.\n>>> \n>>> Yes, do.  Germans are human too, you know.\n>> \n>> Sure.  What was truly unfortunate was that they followed Hitler in\n>> his grandiose quest for a \"Thousand Year Reich\".  The consequences\n>> stemmed from that.\n> \n> Translation: \"They were asking for it\".\n> \nWell, in a sense, yes.  They probably had no idea of what end Hitler\nwould lead their nation to.\n\n> But what about those who didn't support Hitler's dreams of conquest?  It's\n> not as if they democratically voted for all his policies.  The NSDAP got 43%\n> in the elections of 1933, and that was the last chance the German people got\n> to vote on the matter.\n\nThey suffered along with the rest.  Why does this bother you so much?\nThe world is full of evil, and circumstances are not perfect.  Many\ninnocents suffer due to the wrongful actions of others.  It it regretable,\nbut that's The-Way-It-Is.  There are no perfect solutions.\n\n[...]\n>>> \n>>> I look forward to hearing your incisive comments about East Timor and\n>>> Tibet.\n>>\n>> What should I say about them?  Anything in particular?\n> \n> The people of East Timor are still being killed by a dictatorship that\n> invaded their country.  Hell, even Western journalists have been killed.  All\n> this was happening before the Gulf War.  Why didn't we send in the bombers to\n> East Timor?  Why aren't we sending in the bombers NOW?\n\nProbably because we're not the saviors of the world.  We can't police each\nand every country that decides to self-destruct or invade another.  Nor\nare we in a strategic position to get relief to Tibet, East Timor, or\nsome other places.\n> \n> [ Here's that paragraph I moved ]\n> \n>>> What's your intent?  To sound like a Loving Christian?  Well, you aren't\n>>> doing a very good job of it.\n>> \n>> Well, it's not very \"loving\" to allow a Hussein or a Hitler to gobble up\n>> nearby countries and keep them.  Or to allow them to continue with mass\n>> slaughter of certain peoples under their dominion.  So, I'd have to\n>> say yes, stopping Hussein was the most \"loving\" thing to do for the\n>> most people involved once he set his mind on military conquest.\n> \n> The Chinese government has a policy of mandatory abortion and sterilization\n> of Tibetans.  Tibetan people are rounded up, tortured, and executed.  Amnesty\n> International recently reported that torture is still widespread in China.\n> \n> Why aren't we stopping them?  In fact, why are we actively sucking up to them\n> by trading freely with them?\n\nTell me how we could stop them and I'll support it.  I, for one, do not\nagree with the present US policy of \"sucking up to them\" as you put it.\nI agree that it is deplorable.\n\n> \n>>>> And as for poor, poor Rodney King!  Did you ever stop and think *why*\n>>>> the jury in the first trial brought back a verdict of \"not guilty\"?\n>>> \n>>> Yes.  Amongst the things I thought were \"Hmm, there's an awful lot of white\n>>> people in that jury.\"\n>> \n>> So?  It was the *policemen* on trial not Rodney King!!\n> \n> Erm, surely it's irrelevant who's on trial?  Juries are supposed to represent\n> a cross-section of the population.\n\nAre they?  Or are they supposed to reflect the population of the locale\nwhere the trial is held?  (Normally this is where the crime is committed\nunless one party or the other can convince the judge a change of venue\nis in order.)  I'm not an expert on California law, or even US law, but\nit seems that this is the way the system is set up.  You can criticize\nthe system, but let's not have unfounded allegations of racial \nprejudice thrown around.\n\n> \n>> And under American law they deserved a jury of *their* peers!\n> \n> You are saying that black people are not the peers of white people?\n\nNo, not at all.  The point is that the fact that there were no blacks\non the first jury and that Rodney King is black is totally irrelevant.\n\n> \n>> This point (of allegedly racial motivations) is really shallow.\n> \n> This idea of people only being tried before a jury of people just like them\n> is really stupid.  Should the Nuremburg trials have had a jury entirely made\n> up of Nazis?\n\nGermans, perhaps.  \"Peers\" doesn't mean \"those who do the same thing\",\nlike having murderers judge murderers.  It means \"having people from\nthe same station in life\", presumably because they are in a better\nposition to understand the defendent's motivation(s).\n\n> \n>>>> Those who have been foaming at the mouth for the blood of those\n>>>> policemen certainly have looked no further than the video tape.\n>>>> But the jury looked at *all* the evidence, evidence which you and I\n>>>> have not seen.\n>>> \n>>> When I see a bunch of policemen beating someone who's lying defenceless on\n>>> the ground, it's rather hard to imagine what this other evidence might have\n>>> been.\n>> \n>> So?  It's \"hard to imagine\"?  So when has Argument from Incredulity\n>> gained acceptance from the revered author of \"Constructing a Logical\n>> Argument\"?\n> \n> We're not talking about a logical argument.  We're talking about a court of\n> law.  As the FAQ points out, some fallacious arguments are not viewed as\n> fallacies in a court of law.\n\nOK, granted.  However, you are using this reasoning as part of *your*\nlogical argument in this discussion.  This is not a court of law.\n\n> \n>> If the facts as the news commentators presented them are true, then\n>> I feel the \"not guilty\" verdict was a reasonable one.\n> \n> Were you not talking earlier about the bias of the liberal media conspiracy?\n> \nThe media is not totally monolithic.  Even though there is a prevailing\nliberal bias, programs such as the MacNeil-Lehrer News Hour try to give\na balanced and fair reporting of the news.  There are even conservative\nsources out there if you know where to look.  (Hurrah for Rush!)\n\nBTW, I never used the word \"conspiracy\".  I don't accept (without *far*\nmore evidence) theories that there is some all-pervading liberal\nconspiracy attempting to take over all news sources.\n\n>>> \"Thou shalt not kill... unless thou hast a pretty good reason for killing,\n>>>  in which case thou shalt kill, and also kill anyone who gets in the way,\n>>>  as unfortunately it cannot be helped.\"\n>>>                                  -- Jim Brown Bible for Loving Christians\n>> \n>> Thanks mathew, I like the quote.  Pretty funny actually.  (I'm a \n>> Monty Python fan, you know.  Kind of seems in that vein.)\n>> \n>> Of course, oversimplifying any moral argument can make it seem\n>> contradictory.  But then, you know that already.\n> \n> Ha ha, only serious.\n> \n> I, an atheist, am arguing against killing innocent people.\n> \n> You, a supposed Christian, are arguing that it's OK to kill innocent people\n> so long as you get some guilty ones as well.\n\nHardly.  I didn't say that it's a Good Thing [tm] to kill innocent people\nif the end is just.  Unfortunately, we don't live in a perfect world and\nthere are no perfect solutions.  If one is going to  resist tyranny, then\ninnocent people on both sides are going to suffer and die.  I didn't say\nit is OK -- it is unfortunate, but sometimes necessary.\n\n> \n> I, a moral relativist, am arguing that saturation bombing of German cities at\n> the end of World War II was (as far as I can see) an evil and unnecessary act.\n\nI would agree that it was evil in the sense that it caused much pain\nand suffering.  I'm not so sure that it was unnecessary as you say.  That\nconclusion can only be arrived at by evaluating all the factors involved.\nAnd perhaps it *was* unnecessary as (let's say) we now know.  That doesn't\nmean that those who had to make the decision to bomb didn't see it as\nbeing necessary.  Rarely can one have full known of the consequences of\nan action before making a decision.  At the time it may have seemed\nnecessary enough to go ahead with it.\n\nBut don't assume that I feel the bombing was *morally* justified -- I\ndon't!  I just don't condemn those who had to make a difficult\ndecision under difficult circumstances.\n\n> \n> You, having criticised moral relativism in the past, are now arguing that I am\n> in no position to judge the morality of allied actions at the end of the\n> War.  \n\nYou certainly are not in such a position if you are a moral relativist.\nI, as an absolutist, am in a position to judge, but I defer judgment.\n\n> You are arguing that the actions need to be assessed in the particular\n> context of the time, and that they might have been moral then but not moral\n> now.\n\nWrong.  They were neither moral then nor now.  They seemed necessary to\nthose making the decisions to bring a quick end to the war.  I simply\nrefuse to condemn them for their decision.\n> \n> Where's your Christian love?  Where's your absolute morality?  Oh, how quick\n> you are to discard them when it suits you.  As Ivan Stang would say, \"Jesus\n> would puke!\"\n\nOne day I will stand before Jesus and give account of every word and action;\neven this discourse in this forum.  I understand the full ramifications of\nthat, and I am prepared to do so.  I don't believe that you can make the\nsame claim.\n\n> \n> mathew\n\nAnd BTW, the reason I brought up the blanket-bombing in Germany was\nbecause you were bemoaning the Iraqi civilian casualties as being \n\"so deplorable\".  Yet blanket bombing was instituted because bombing\nwasn't accurate enough to hit industrial/military targets in a\ndecisive way by any other method at that time.  But in the Gulf War,\nprecision bombing was the norm.  So the point was, why make a big\nstink about the relatively few civilian casualties that resulted\n*in spite of* precision bombing, when so many more civilians\n(proportionately and quantitatively) died under the blanket bombing\nin WW2?  Even with precision bombing, mistakes happen and some\ncivilians suffer.  But less civilians suffered in this war than\nany other iany other in history!  Many Iraqi civilians went about their lives\nwith minimal interference from the allied air raids.  The stories\nof \"hundreds of thousands\" of Iraqi civilian dead is just plain bunk.\nYes, bunk.  The US lost 230,000 servicemen in WW2 over four years\nand the majority of them were directly involved in fighting!  But \nwe are expected to swallow that \"hundreds of thousands\" of \n*civilian* Iraqis died in a war lasting about 2 months!  And with \nthe Allies using the most precise bombs ever created at that!  \nWhat hogwash.  If \"hundreds of thousands\" of Iraqi civilians died, \nit was due to actions Hussein took on his own people, not due to \nthe Allied bombing.\n\nRegards,\n\nJim B.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7241, "properties": {"category": "sci.med", "text": "From: romdas@uclink.berkeley.edu (Ella I Baff)\nSubject: Re: Selective Placebo\nOrganization: University of California, Berkeley\nLines: 37\nDistribution: world\nNNTP-Posting-Host: uclink.berkeley.edu\n\n  Ron Roth recommends: \"Once you have your hypoglycemia CONFIRMED through the \n                        proper channels, you might consider ther following:...\"\n                        [diet omitted]\n\n1) Ron...what do YOU consider to be \"proper channels\"...this sounds suspiciously\nlike a blood chemistry...glucose tolerance and the like...suddenly chemistry \nexists? You know perfectly well that this person can be saved needless trouble \nand expense with simple muscle testing and hair analysis to diagnose...no\n\"CONFIRM\" any aberrant physiology...but then again...maybe that's what you meantby \"proper channels.\"\n\n2) Were you able to understand Dick King's post that \"90% of diseases is not thesame thing as 90% of patients\" which was a reply to your inability to critically\nevaluate the statistic you cited from the New England Journal of Medicine. Couldyou figure out what is implied by the remark \"Of course MDs are ethically bound to not knowingly dispense placebos...\"?\n\n3) Ron...have you ever thought about why you never post in misc.health.alterna-\ntive...and insist instead upon insinuating your untrained, non-medical, often \ndelusional notions of health and disease into this forum? I suspect from your\napparent anger toward MDs and heteropathic medicine that there may be an\nunderlying 'father problem'...of course I can CONFIRM this by surrogate muscle\ntesting one of my patients while they ponder my theory to see if one of their  \npreviously weak 'indicator' muscles strengthens...or do you have reservations\nabout my unique methods of diagnosis? Oh..I forgot what you said in an earlier\npost..\"neither am I concerned of whether or not my study designs meet your or\nanyone else's criteria of acceptance.\" \n\nJohn Badanes, DC, CA\nromdas@uclink.berkeley.edu\n\n\n\n\n\n\n\n \nideas \n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7242, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lumpkin@corvus.nas.nasa.gov (Forrest E. Lumpkin III)\nSubject: HELP - SCSI Woes on Mac IIfx\nKeywords: SCSI, IIfx\nOrganization: NASA Ames Research Center \nLines: 46\n\nI am having trouble with SCSI on a Mac IIfx. The machine is 3 years old\nand I have been using the same hard drive (internal Maxtor LXT-200S) for\ntwo and a half years. The disk recently crashed. I reformatted (Silverlining\n5.42), but during the reformat I received random write errors during testing.\nThe error message reported was like:\n\nSector 0: Write error detected after testing good - sector not mapped out.\n\nThis occurred randomly all over the hard disk (which makes me suspect the\ndiagnostic's reference to Sector 0 ??? ). On the third reformat and after\nreinstalling the SCSI read/write loops I was able to get through passes\n2,3, and 4 with no errors. (Pass 1 for some reason reported a lot of errors,\nbut still mapped out no sectors.) I decided to go ahead and try to resinstall\nSystem 7 and reload my data from a backup. This proceded normally; however,\nI now have sub-optimal performance. Symptoms include:\n\n   o Frequent crashes\n   o Instances of extremely sluggish disk access requiring a reboot to\n       correct.\n   o Instances of not finding the disk on the SCSI chain on reboot.\n       - If I boot from Norton Utl. after this occurs, it cannot find the\n         disk either.\n       - The only thing that fixes this is recycling the power. It sometimes\n         requires several attempts.\n\nQUESTIONS:\n\n   1) Has anyone had this type of problem before?\n   2) Is the problem with the fx motherboard (And its non-standard\n      SCSI implementation) or with my Maxtor Disk? Is there some\n      diagnostic software that would help me make this determination?\n   3) Is it a termination problem? I currently have external Syquest\n      and an external DataFrame XP60 on the chain. The XP60 is at the\n      end, and has internal termination; so I am not using the IIfx\n      terminator. I do have the SCSI filter installed on the internal\n      drive. I have run with this exact steup for 2 1/2 years with\n      one previous disk crash requiring a reformat (about a year ago).\n      I also have symptoms if I disconnect the external devices;\n      so I don't see how SCSI termination would now be an issue. Of\n      course who knows :-<\n\nHelp would be much appreciated.\n\nForrest E. Lumpkin III\nNASA Ames Research Center\nlumpkin@corvus.arc.nasa.gov\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7243, "properties": {"category": "comp.windows.x", "text": "From: ethan@cs.columbia.edu (Ethan Solomita)\nSubject: Re: Forcing a window manager to accept specific coordinates for a window\nOrganization: Columbia University Department of Computer Science\nLines: 18\n\nIn article <BADING.93Apr23105229@athene.cs.tu-berlin.de> bading@cs.tu-berlin.de (Tobias 'Doping' Bading) writes:\n>\n>I know that the mwm has an resource to specify if positions are to be used for\n>the border of a window or for the \"user\" window. Maybe other window managers\n>have similar options.\n>Another way to figure out the difference between the \"user\" window position\n>and the window manager decoration window position is to subtract their\n>positions. You just have to use XQueryTree and remember that the window manager\n>decorations window is the parent of your window. Unfortunately, you can only\n>figure out the decoration width and height after the window has been mapped\n>this way.\n>\n\tAnother way would be to use GetGeometry to find out where\nyou are relative to the frame, and TranslateCoordinates to find\nout where your window's upperleft corner really is.\n\t-- Ethan\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7244, "properties": {"category": "sci.electronics", "text": "From: johnh@macadam.mpce.mq.edu.au (John Haddy)\nSubject: Re: Help wanted\nOrganization: Macquarie University\nLines: 54\nDistribution: world\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\n\nIn article <1993Apr20.071549.24839@csc.canberra.edu.au>, u934132@student.canberra.edu.au (Ogawa / Taro Stephen (ISE)) writes:\n|> Could someone please tell me if a 1/4 decoder is the same as a 1 to 4\n|> demultiplexer. I know how to link 2 of these to get an 8 output circuit,\n|> but how do I link 5 of these to make a 1/16 multiplexer. Sorry if this\n|> seems like a lame question, but I'm only a newbie to electronics, and I\n|> have to do this circuit. Please make any mail as droolproof as possible.\n|> \n|> \t\t\t\t Thanx,\n|> \t\t\t\t\tTaro Ogawa\n|> \t\t\t\t\t(u934132@student.canberra.edu.au)\n\nA 1 of 4 decoder need not be the same as a 1 to 4 demultiplexer, although\nmany commercial SSI implementations allow you to use one as such. Strictly,\na 1 of 4 decoder need only take two lines in and make one output change\nstate, according to the inputs.\n\nA demux, on the other hand, uses two control inputs to determine which\nof four outputs will reflect the state of the input signal. So there are\nthree inputs required.\n\nA decoder can be used as a demux if it is equipped with an output enable\ninput, since this can be used as the data input (e.g. when high, all\noutputs are high; when low, only the selected (by control inputs) output\nwill be low).\n\nAn eight way decoder is created by using the high order bit (bit 2) to\nselect which of two four way demuxes is enabled. Thus you achieve your\naim of having only one output of eight reflecting the input bits. Note\nthat this method cannot be used to create a true eight way demux, since\nyou have no data input (the enable line on a four way decoder) left\nonce you commit the enable lines to their intended purpose.\n\nA sixteen way decoder obviously requires four, four-way decoders, plus\na mechanism to enable only one of the four at a time. Therefore, use\nthe fifth decoder, attached to the two high order bits, to provide the\nfour enable lines.\n\nOf course, the two low order bits must be connected in parallel to the\nfour final stage decoders.\n\nPlease give me the credit when you submit your homework.\n\nJohnH\n\n----------------------------------------------------------------------------\n\n      |  _  |_   _   |_|  _   _|  _|              Electronics Department\n    |_| (_) | | | |  | | (_| (_| (_| \\/           School of MPCE\n    ---------------------------------/-           Macquarie University\n                                                  Sydney, AUSTRALIA 2109\n\n    Email: johnh@mpce.mq.edu.au, Ph: +61 2 805 8959, Fax: +61 2 805 8983\n\n----------------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7245, "properties": {"category": "sci.med", "text": "From: eliezer@physics.llnl.gov (David A Eliezer)\nSubject: Questions about SPECT imaging\nOrganization: Lawrence Livermore National Laboratory\nLines: 25\nDistribution: world\nReply-To: eliezer@physics.llnl.gov (David A Eliezer)\nNNTP-Posting-Host: physics.llnl.gov\nKeywords: PET, SPECT, resolution\n\n\nI have become involved in a project to further develop and \nimprove the performance of SPECT (Single Photon Emission\nComputerized Tomography) imaging.  We will eventually have\nto peddle this stuff somewhere, and so as I move this thing\nalong, I would like to know --\n\nWhat is the current resolution of SPECT imaging?  What kinds\nof jobs is SPECT used for, specifically?  What kind of specific jobs\ncould I hope\nthat SPECT could be used for, if its resolution improved,\nsay, to close to that of PET (Positron Emission Tomography)?\nAnd how much does a SPECT machine cost?  How much does a single\nSPECT image cost?  \n\nIf anyone knows the answer to any or all of these questions, OR\nwhere I could find that answer, I would be very grateful, indeed.  \nThanks in advance for any replies\n\n\t\t\t\t\tDave Eliezer\n\t\t\t\t\teliezer@physics.llnl.gov\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.342+0000", "event": "documents", "entityId": 7246, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bauer@informatik.uni-ulm.de (Christian Bauer)\nSubject: Re: CD300 & 300i\nNntp-Posting-Host: christian.informatik.uni-ulm.de\nOrganization: University of Ulm\nLines: 18\n\nIn article <Afi9sHS00VohMrYlEe@andrew.cmu.edu>, \"Donpaul C. Stephens\"\n<deathbird+@CMU.EDU> wrote:\n> \n> What is the difference?\n> I want a double-spin CD-ROM drive by May\n> \n> looking into NEC and Apple, doublespins only\n> what is the best?\n\nNec Toshiba and Sony (Apple) nearly deliver the same speed.\nAs apples prices are very low (compared to there RAM SIMMS)\nYou should buy what is inexpencive. But think of Driver revisions.\nIt is easier to get driver kits from Apple than from every other\nmanufacturer\n\nChristian Bauer\n\nbauer@informatik.uni-ulm.de\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7247, "properties": {"category": "comp.graphics", "text": "From: ccgwt@trentu.ca (Grant Totten)\nSubject: MS-Windows screen grabber?\nKeywords: windows screen grab document graphics\nLines: 20\nReply-To: ccgwt@trentu.ca (Grant Totten)\nOrganization: Trent University\n\n\nHowdy all,\n\nWhere could I find a screen-grabber program for MS-Windows?  I'm \nwriting up some documentation and it would be VERY helpful to include\nsample screens into the document.\n\nPlease e-mail as I don't usualy follow this group.\n\nThanks a lot,\n\nGrant\n\n--\nGrant Totten, Programmer/Analyst, Trent University, Peterborough Ontario\nGTotten@TrentU.CA            Phone: (705) 748-1653   FAX: (705) 748-1246\n========================================================================\n\"The human brain is like an enormous fish -- it is flat and slimy and\nhas gills through which it can see.\"\n\t\t-- Monty Python\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7248, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gweil@ibeam.intel.com (Garry Weil)\nSubject: Monitor recommendation Needed\nSummary: Which one larger than 14\"?\nOrganization: Multimedia Software Technology Group\nLines: 16\n\n\nI have finally decided to update my SE :-)).\nI am planning on buying a Centris 610-8/230 CD.\nNow, what monitor should I get? Here are a few\nguidelines:\n\tMy wife uses PageMaker occasionally, I use Excel sometimes\n\tand I do alot of Telecommuting from home to work. We both\n\tdo Word processing. Greater than 14 inches.\n\nI have looked at the Radius Color Pivot. This can be bought for\nunder $1000. I have heard good things about the E-Machines T-16,\nthe older model not the new T-16 II. How about the Super Mac 17T?\nThese both can be had for a little over $1000. Any others??\n\nGarry\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7249, "properties": {"category": "comp.sys.mac.hardware", "text": "From: guykuo@carson.u.washington.edu (Guy Kuo)\nSubject: Re: iisi clock upgrades\nOrganization: University of Washington\nLines: 16\nNNTP-Posting-Host: carson.u.washington.edu\n\nI've just completed a successful upgrade of a an SI to 27.5 mhz. I'm waiting\non delivery of a 62 mhz clock for a final speed trial. Definitely needed the\nheatsink. The CPU was quite hot to the touch at higher speeds until I glued\non a 90 cent Radio Shack sink. \n\nI made a call for reports of failures last week. No reports have arrived\nhere. Locally, in Seattle there is a reported CPU damage due to the user\nslipping with the iron and putting a gash into the board -- not exactly\na problem due to the CPU running too fast.\n\nI think it would be nice to have a poll to report top speeds and system\nconfigurations including PDS and Nubus cards which were used. I'd be happy\nto coordinate and report results\n\nGuy Kuo <guykuo@u.washington.edu>\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7250, "properties": {"category": "comp.windows.x", "text": "From: stevevr@tt718.ecs.comm.mot.com (Steve Vranyes)\nSubject: Re: TeleUse, UIM/X, and C++\nOrganization: Motorola Land Mobile Products Sector\nNntp-Posting-Host: 145.1.155.12\nLines: 32\n\nIn article <1993Apr1.213842.6086@ctp.com>, hubec@ctp.com (Hubert Chou) writes:\n|> Does anyone have any good ideas on how to integrate C++ code elegantly\n|> with TeleUse, UIM/X / Interface Architect generated code?\n|> \n|> Source would be great, but any suggestions are welcome.\n|> \n|> \n|> Hubie Chou\n|> (617) 374-8454\n|> hubec@ctp.com\n|> \n\nI don't know a great deal about the support for C++ in UIM/X, but I can tell \nyou that there is good support for it in TeleUSE.  In TeleUSE you can call any\nC++ method from a \"D\" module.  What you can do then is to use the \"D\" language\nfor most of your interface code and then use C++ for you application code.\n\nI should tell you that there is some real neat stuff coming out of TeleUSE soon\nin regard to C++, but I can't give you many details.  You should talk to your local sales rep and get the lowdown on what they will be doing in the near furture.\n\nIf you want example code of how C++ integrates with TeleUSE you should look at\n$TeleUSE/examples/Thermometer\n\n-- \n+------------------------------------------------------------------------------+\n|Steve Vranyes                                                                 |\n|Voice    : (708) 576 - 0338                                                   |\n|E-mail   : stevevr@ecs.comm.mot.com                                           |\n|U.S.Post : Motorola Inc.                                                      |\n|           1301 E. Algonquin Rd.                                              |\n|           Schaumburg, IL 60196                                               |\n+------------------------------------------------------------------------------+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7251, "properties": {"category": "sci.med", "text": "From: candee@brtph5.bnr.ca (Candee Ellis P885)\nSubject: Re: HELP for Kidney Stones ..............\nOrganization: BNR Inc. RTP, NC\nLines: 8\n\nIf you think you have kidney stones or your doctor tells you that you do,\nDEFINITELY follow up on it.  My sister was diagnosed with kidney stones\n1 1/2 years ago and given medication to take to dissolve them.  After that\nfailed and she continued to be in great pain, they decided she had\nendometriosis.  When they did exploratory surgery, they discovered she\nhad a tumor, which turned out to be rhabdomyosarcoma -- a very rare \nand agressive cancer.  I realize this is not what happens in the majority\nof cases, but you never know what can happen and shouldn't take chances!\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7252, "properties": {"category": "rec.motorcycles", "text": "From: speedy@engr.latech.edu (Speedy Mercer)\nSubject: Re: insect impacts\nOrganization: Louisiana Tech University\nLines: 13\nNNTP-Posting-Host: bhm116e-spc.engr.latech.edu\n\nIn article <1993Apr6.154544.28595@rd.hydro.on.ca> jlevine@rd.hydro.on.ca (Jody Levine) writes:\n>In article <1ppvds$92a@seven-up.East.Sun.COM> egreen@East.Sun.COM writes:\n>>In article 7290@rd.hydro.on.ca, jlevine@rd.hydro.on.ca (Jody Levine) writes:\n>>Every bit as fast as a dirtbike, in the right terrain.  And we eat\n>>flies, thank you.\n>Who mentioned dirtbikes? We're talking highway speeds here. If you go 70mph\n>on your dirtbike then feel free to contribute.\n\nObviously never rode a good 250 or open-class bike!\n\n  --------======= I am not paid to have an opinion! =======--------\n  Dr. Speed                                           Suzuki GS850G\n  DoD #8177\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7253, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: Need advice with doctor-patient relationship problem\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 13\n\nML> From: libman@hsc.usc.edu (Marlena Libman)\nML> I need advice with a situation which occurred between me and a physican\nML> which upset me.\n\nML> My questions: (1) Should I continue to have this doctor manage my care?\n\nThat's easy:  No.  You wouldn't take your computer into a repair\nshop where they were rude to you, even if they were competent in\ntheir business.  Why would you take your own body into a \"repair\nshop\" where the \"repairman\" has such a bad attitude?\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n                                              \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7254, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Traffic morons\nFrom: Stafford@Vax2.Winona.MSUS.Edu (John Stafford)\nDistribution: world\nOrganization: Winona State University\nNntp-Posting-Host: stafford.winona.msus.edu\nLines: 16\n\nIn article <C5sHD0.LH6@athena.cs.uga.edu>, ahatcher@athena.cs.uga.edu\n(Allan Hatcher) wrote:\n> \n\n> You can't make a Citizens arrest on anything but a felony.\n\n\tI'm not sure that's true.  Let me rephrase; \"You can file a complaint\n which will bring the person into court.\"  As I understand it, a\n \"citizens arrest\" does not have to be the physical detention of\n the person.\n\n Better now?\n\n====================================================\nJohn Stafford   Minnesota State University @ Winona\n                    All standard disclaimers apply.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7255, "properties": {"category": "rec.autos", "text": "From: edwards@world.std.com (Jonathan Edwards)\nSubject: Toyota Land Cruiser worth it?\nOrganization: IntraNet, Inc.\nLines: 10\n\nIn response to a post about SUV's, I got several unsolicited recommendations to\ncheck out the Land Cruiser, despite its astronomical price.\nThe Toyota dealer told me it's a \"cult car\".\nIf a car is good enough to create a passionate and loyal following, there\nmust be something really extraordinary about it.\nSo, all you Land Crusher Cultists - here is your chance to convert me.\n\n-- \nJonathan Edwards\t\t\t\tedwards@intranet.com\nIntraNet, Inc\t\t\t\t\t617-527-7020\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7256, "properties": {"category": "rec.sport.hockey", "text": "From: galvint@cs.nps.navy.mil (thomas galvin)\nSubject: Re: Schedule...\nOrganization: Naval Postgraduate School, Monterey CA\nLines: 41\n\nIn article <121411@netnews.upenn.edu> kkeller@mail.sas.upenn.edu (Keith Keller) writes:\n>In article <1qup1lINNotb@master.cs.rose-hulman.edu> swartzjh@RoseVC.Rose-Hulman.Edu writes:\n>>Does anyone have the games ESPN will be airing this week???  Hopefully the\n>>Detroit/Toronto game tongiht.  I though ABC did a decent job by getting some\n>\n>F**king *NO* hockey games televised nationally tonight!  What the hell is\n>this???  Why the hell is ESPN showing some stupid baseball game, when\n>baseball is not even three weeks into the season and hockey is in the\n>playoffs???  No, wait, I know the answer: $$$$$$  But still!  It really\n>pisses me off to no end.  They better start putting some more f*cking\n>games on, or they will never make any money off of the deal that brought\n>hockey back to ESPN.  AARGH!!!!  (not that I'd watch anyway, but hockey\n>needs all the publicity it can get)\n>\n>--\n>    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n>\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n>\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n>\n>\t   \"A cow is not a vegetarian dish.\"  -- Keith Keller, 1993\n\nYou obviously don't understand how TV scheduling works.  ESPN had\nprior contracts to baseball to show Monday night games and had\ncontracted all the other bs shows well in advance.  The NHL TV deal\nwas very late in the scheduling process (you normally have to do this\none-plus year out.  The NHL package was finished two weeks before the\nseason started).  ESPN has shown tremendous commitment to the NHL by\nsqueezing in extra telecasts when it could (like the last Minnesota\ngame) and putting Stanley Cup games as backup to their baseball\ntelecasts (which by favorable circumstances they could pull off last\nnight).\n\nBut the bottom line is that ESPN cannot break contracts at will.  They\nmust honor the previous deals they made.  $$$$ _does_ have something\nto do with it, especially if you risk a $$$$$$$$ lawsuit for breach of\ncontract with baseball.\n\nSo relax.  I'm happy.  (I don't get SportsChannel anyway).\n\n-Tom Galvin              galvint@taurus.cs.nps.navy.mil\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7257, "properties": {"category": "comp.windows.x", "text": "From: seth@ponder.csci.unt.edu (Seth Buffington)\nSubject: Re: GUI Study\nOrganization: University of North Texas, Denton\nDistribution: na\nLines: 35\n\n>Cutsie little Macintrash-like icons that are an instant recipe for\n>mousitis IMHO. System 7 is undoubtedly the worst GUI I have used (out of\n>that, RISCOS, MSWombles, and X11) simply because it does not provide enough\n>keyboard shortcuts. Windows I must confess I quite like (cover your ears\n>:-) ) because you can actually use it without having to ever touch the\n>mouse.\n[stuff delete]\n>the user rather than making things _easier_ - and there should always be\n>the option to do it your way if you want to, which is why I like the\n>UNIX/X combination so much - it's so customizable. \n\nHear! Hear! I agree completely. One thing I can't stand about\nthe Mac interface is its shear determination to FORCE you to use\nthe mouse(what if your mouse breaks--your whole system is\ndown!).  I like the mouse--it is handy on some occassions such\nas cut and past and moving icons around, etc.  But for most\nwork, the keyboard and hot keys are 10-20 times faster than\nusing the mouse. Sure it is a plus to be able to do something\nsimple if you are an inexperienced user, but how long is it\nbefore your are experienced? A month? Two? (Speaking of PCs at\nthe moment.)\n\tI don't think it is too much to ask that window\nprogrammers provide not only a menu/mouse interface but also\nlook forward to those who would like to move on to hot keys and\ncommand line interfaces, which usually allows you to do more in\nless time IF you are experienced.\n\tAll of the above equally applies to windowing systems on\nUNIX (especially since Unix is at least 500% more powerful than\nDOS).\n\n-- \n\\---------------------------------------------------------------------/\n \\ Seth Buffington \tU.S.S. GAB 550 I   \t817-565-2642         /\n  \\ seth@cs.unt.edu\tseth@gab.unt.edu\tUnix Operator       /\n   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7258, "properties": {"category": "rec.sport.hockey", "text": "From: lli+@cs.cmu.edu (Lori Iannamico)\nSubject: Re: Too Many Europeans in NHL\nNntp-Posting-Host: lli.mach.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 26\n\nIn article <rauser.734062608@sfu.ca> rauser@fraser.sfu.ca (Richard John Rauser) writes:\n>\n>\n>   Ten years ago, the number of Europeans in the NHL was roughly a quarter\n>of what it is now. Going into the 1992/93 season, the numbers of Euros on\n>NHL teams have escalated to the following stats:\n>\n>Canadians: 400\n>Americans: 100\n>Europeans: 100\n\nXenophobic trash deleted.\n\n>    I'm all for the creation of a European Hockey League, and let the Bures\n>and Selannes of the world play on their own continent.\n>\n>    I just don't want them on mine.\n\nIf you're going to go to those extremes, I guess you'd better start \npacking.  Because unless you're a Native North American, this isn't\nyour continent either.  \n\nLori\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7259, "properties": {"category": "rec.motorcycles", "text": "From: carter@ecf.toronto.edu (CARTER EDWARD A)\nSubject: Re: DoD Oficial (tm) Newbie Bike of Choice\nArticle-I.D.: ecf.C51nqM.5qq\nOrganization: University of Toronto, Engineering Computing Facility\nLines: 20\n\nIn article <1pplsc$38q@news.ysu.edu> ak296@yfn.ysu.edu (John R. Daker) writes:\n>I propose that the Official DoD Newbie Bike of Choice (tm) be the ZX-11 D.\n\n=8^/  Nothing like giving newbies a land rocket to practice on.  \n\n>It offers\n>enough power so that a novice rider can safely  accelerate out of harms way\n>in situations where a more experienced rider would use complex avoidance \n>manouvers.\n\nYup.  Accelerate right into the back of an 18-wheel truck.\n\nUm.  How's the easiest way to get newbies of the road?  :)\n\nRegards, Ted.\n\n---\nUniversity of Toronto Computer Engineering               \nPowerUsersGroupChairman\n'89 FZR600: I'm taking a ride with my best friend.                  DoD#:886699\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7260, "properties": {"category": "rec.autos", "text": "From: eric@sad.hp.com (Eric Lucas)\nSubject: Clifford Delta car alarm?\nOrganization: HP Sonoma County (SRSD/MWTD/MID)\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 9\n\n\n  Just found a great deal on a Clifford Delta car alarm, $450 installed.  \nComes with glass break sensor, motion detector, and shock detector.  Does \nanyone have one of these alarms?  Are they any good?  From the looks of it, its\nabout the best on the market for the price.  It's also on sale, so that's \nanother reason to get it.  I think I'll be saving almost $200.  Any opinions?\n\nEric Lucas\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7261, "properties": {"category": "sci.crypt", "text": "From: jbotz@mtholyoke.edu (Jurgen Botz)\nSubject: Re: The [secret] source of that announcement\nOrganization: Mount Holyoke College\nLines: 32\nDistribution: world\nNNTP-Posting-Host: orixa.mtholyoke.edu\n\nIn article <MARC.93Apr17211937@oliver.mit.edu> marc@mit.edu (Marc Horowitz N1NZU) writes:\n>Just who is that, I asked myself, or rather, I asked the computer.\n>\n>    % telnet csrc.ncsl.nist.gov 25\n>    Trying...\n>    Connected to csrc.ncsl.nist.gov.\n>    Escape character is '^]'.\n>    220 first.org sendmail 4.1/NIST ready at Sat, 17 Apr 93 20:42:56 EDT\n>    expn clipper\n>    250-<csspab@mail-gw.ncsl.nist.gov>\n>[...]\n>    221 first.org closing connection\n>    Connection closed.\n>\n>Well, isn't that interesting.  Dorothy Denning, Mitch Kapor, [...]\n\nEven more interesting: the SMTP server at csrc.ncsl.nist.gov no longer\nrecognizes the 'expn' and 'vrfy' commands...\n\n   telnet csrc.ncsl.nist.gov smtp\n   Trying 129.6.54.11...\n   Connected to csrc.ncsl.nist.gov.\n   Escape character is '^]'.\n   220 first.org sendmail 4.1/NIST ready at Tue, 20 Apr 93 17:01:34 EDT\n   expn clipper\n   500 Command unrecognized\n\nSeems like sombody didn't like your snooping around, Marc.\n-- \nJurgen Botz, jbotz@mtholyoke.edu | Vending machines SHOULD respond to a [finger]\nSouth Hadley, MA, USA            | request with a list of all items currently\n--Unix is dead, long live Unix-- | available for purchase... -RFC1288\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7262, "properties": {"category": "comp.graphics", "text": "From: tmc@spartan.ac.BrockU.CA (Tim Ciceran)\nSubject: Re: Hijaak\nOrganization: Brock University, St. Catharines Ontario\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 15\n\nHaston, Donald Wayne (haston@utkvx.utk.edu) wrote:\n: Currently, I use a shareware program called Graphics Workshop.\n: What kinds of things will Hijaak do that these shareware programs\n: will not do?\n\nI also use Graphic Workshop and the only differences that I know of are that\nHijaak has screen capture capabilities and acn convert to/from a couple of\nmore file formats (don't know specifically which one).  In the April 13\nissue of PC Magazine they test the twelve best selling image capture/convert\nutilities, including Hijaak.\n\nTMC.\n(tmc@spartan.ac.brocku.ca)\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7263, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nArticle-I.D.: aurora.1993Apr19.130503.1\nOrganization: University of Alaska Fairbanks\nLines: 21\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <6ZV82B2w165w@theporch.raider.net>, gene@theporch.raider.net (Gene Wright) writes:\n> With the continuin talk about the \"End of the Space Age\" and complaints \n> by government over the large cost, why not try something I read about \n> that might just work.\n> \n> Announce that a reward of $1 billion would go to the first corporation \n> who successfully keeps at least 1 person alive on the moon for a year. \n> Then you'd see some of the inexpensive but not popular technologies begin \n> to be developed. THere'd be a different kind of space race then!\n> \n> --\n>   gene@theporch.raider.net (Gene Wright)\n> theporch.raider.net  615/297-7951 The MacInteresteds of Nashville\n====\nIf that were true, I'd go for it.. I have a few friends who we could pool our\nresources and do it.. Maybe make it a prize kind of liek the \"Solar Car Race\"\nin Australia..\nAnybody game for a contest!\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7264, "properties": {"category": "comp.graphics", "text": "From: khan0095@nova.gmi.edu (Mohammad Razi Khan)\nSubject: manipulating a hexagonal grid\nOrganization: GMI Engineering&Management Institute, Flint, MI\nLines: 28\n\nOk, lets say youve got a grid of hexagons\n\nthat go in a        10\n                     9\n                    10\n                     9\n                    etc..\n\nfor a total of 15 rows down\n\nthat means there are 10 hexagons in the 1st line,\n9 lined up underneath in the second line\n10 lined up underneath in the third line\n9 lined up under neath in the fourht...\n\n\n\nthe problem is  given the center of any arbritrary hexagon, and a line with\nand arbritrary slope, Which hexagons does that line cross through \n(The line doesn't necessarily have to cross through the center of other hexagon,it can even be a tangent and count).  Any helpers, my friend was baffeled\nwhen trying to figure this.\n:w\n\n--\nMohammad R. Khan                /    khan0095@nova.gmi.edu\nAfter July '93, please send mail to  mkhan@nyx.cs.du.edu\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7265, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: Insane Gun-toting Wackos Unite!!!\nOrganization: Computer Science Department,  Stanford University.\nDistribution: na\nLines: 38\n\nIn article <1576@heimdall.sdrc.com> crrob@sony1.sdrc.com (Rob Davis) writes:\n> Do you know how many deaths each year are caused by self-inflicted gun-\n> shot wounds by people wearing thigh holsters?\n\nNo, but I have several other breakdowns of accidental shootings.\nI've never seen one that specifically provides the info that Davis insists\nthat he has, so I'd love to have a cite.\n\n>If you fall, for example,\n> and land on the handgun or cause a sudden blow, the gun will discharge.\n\nWrong.  There's one gun design where that can happen, and it is\nsupposed to be carried with the hammer over an unloaded chamber.\n(Cocking the gun turns the cylinder so that a loaded cylinder is under\nthe hammer.  In other words, it can be usefully carried in a safe\nmanner.)  Other handgun designs don't have that property; if their\ntrigger isn't pulled, the hammer can't hit the firing pin.\n\n> The number of people killed in this manner far outweighs the number of\n> deaths caused by animal attacks or \"wacko\" attacks combined.\n\nThe breakdowns that I do have include the above category.  From them I\ncan safely say that if Davis is right in ALL of his claims, a large\nnegative number of people are killed by animals, because we know that\nthe number of killings by wackos is reasonably large and that the\nnumber of accidents due to gun failures (which is a superset of the\ndescribed circumstance) is near zero.\n\n>I can find the figures if you don't believe me.\n\nPlease do.  Include a cite for those of us who like looking at\ncontext.  Make sure that your source excludes other types of\naccidents and suicides that are misreported.  (\"Gun cleaning\naccident\" is police-speak for \"the family needs the insurance\nmoney.\")\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7266, "properties": {"category": "comp.windows.x", "text": "From: tmcconne@sedona.intel.com (Tom McConnell~)\nSubject: Re: Motif vs. [Athena, etc.]\nOrganization: Intel Corporation\nLines: 44\nDistribution: world\nNNTP-Posting-Host: thunder.intel.com\nOriginator: tmcconne@sedona\n\n\nIn article <C5K6ny.AzJ@kirk.bu.oz.au>, bambi@kirk.bu.oz.au (David J. Hughes) writes:\n> berry@durian.citr.uq.oz.au (Andrew Berry) writes:\n>\n> Ports of Motif to both 386BSD and Linux are available for a fee of about\n> $100.  This is cost recovery for the person who bought the rights to\n> redistribute.  The activity in both the BSD and Linux news groups\n> pertaining to Motif has been high.\n> \n> \n> >I just wonder if this will also cause a divergence between commercial\n> >and non-commercial software (ie. you will only get free software using\n> >Athena or OpenLook widget sets, and only get commercial software using\n> >the Motif widget sets).  \n> \n> \n> I can't see why.  If just about every workstation will come with Motif\n> by default and you can buy it for under $100 for the \"free\" UNIX\n> platforms, I can't see this causing major problems.\n\n  Let me add another of my concerns: Yes, I can buy a port of Motif for \"cheap\",\nbut I cannot get the source for \"cheap\", hence I am limited to using whatever X\nlibraries the Motif port was compiled against (at least with older versions of\nMotif. I have been told that Motif 1.2 can be used with any X, but I have not\nseen it myself).\n\n  Currently, I have X11R5 running on eight different unix platforms, of which\nonly three came with Motif. On those three, I am unable to use the X11R5\nlibraries to build Motif clients, because I get link errors between the\nvendor-supplied port of Motif and my X11R5. I anticipate having this same\nproblem when X11R6 becomes available.\n\n  The result is that I cannot build Motif clients that rely on X11R5, since I do\nnot have Motif compiled under X11R5. True, I could buy another port of Motif,\nbut that sort of ruins the whole idea of \"free\", doesn't it?\n\n    Cheers,\n\n    Tom McConnell\n-- \n Tom McConnell          |     Internet: tmcconne@sedona.intel.com\n Intel, Corp. C3-91     |     Phone: (602)-554-8229\n 5000 W. Chandler Blvd. | The opinions expressed are my own. No one in \n Chandler, AZ  85226    | their right mind would claim them.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.343+0000", "event": "documents", "entityId": 7267, "properties": {"category": "comp.graphics", "text": "From: jbrandt@NeoSoft.com (J Brandt)\nSubject: Beta Testers Wanted for Graphics Libraries\nOrganization: NeoSoft Communications Services -- (713) 684-5900\nKeywords: xeg ceg beta imsl vni x graphics\nLines: 48\n\n\n  Visual Numerics Inc. (formerly IMSL and Precision Visuals) is in the\nprocess of securing sites for beta testing X Exponent Graphics 1.0 \nand C Exponent Graphics 2.0.  (Both X Exponent Graphics and C Exponent\nGraphics are 3GL products).  The beta period is from April 26 through \nJune 18.  The platform is HP9000/700 running under OS 8.07 with \nansi C 8.71 compiler.  The media will be sent on 4mm DAT cartridge \ntape.  Here are some of the key facts about the two products.\n \nX Exponent Graphics 1.0 key facts:\n \n1. Complete collection of high-level 2D and 3D application plot types\n   available through a large collection of X resources.\n2. Cstom widget for OSF/Motif developers.\n3. Built-in interactive GUI for plot customization.\n4. Easily-implemented callbacks for customized application feedback.\n5. XEG 1.0, being built on the Xt Toolkit provides the user a widget \n   library that conforms to the expected syntax and standards familar \n   to X programmers.\n6. XEG will also be sold as a bundle with Visual Edge's UIM/X product.\n   This will enable user to use a GUI builder to create the graphical\n   layout of an application.\n \nC Exponent Graphics 2.0 key facts:\n \n1. Written in C for C application programmers/developers.  The library\n   is 100% written in C, and the programming interface conforms to C\n   standards, taking advantage fo the most desirable features of C.\n2. Build-in GUI for interactive plot customization.  Through mouse \n   interaction, the user has complete interactive graph output control\n   with over 200 graphics attributes for plot customization.\n3. Large collection of high-level application functions for \"two-call\"\n   graph creation.  A wide variety of 2D and 3D plot types are available\n   with minimal programming effort.\n4. User ability to interrupt and control the X event.  By controlling\n   the X event loop, when the user use the mouse to manipulate the  plot\n   the user can allow CEG to control the event loop or the user can \n   control the event loop.\n \nIf anyone is interested in beta testing either of the products, please\ncontact Wendy Hou at Visual Numerics via email at hou@imsl.com or call\n713-279-1066.\n \n \n-- \nJaclyn Brandt\njbrandt@NeoSoft.com\n--\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7268, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: New Study Out On Gay Percentage\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 27\n\n\nFrom the Santa Rosa (Cal.) Press-Democrat, April 15, 1993, p. B2:\n\n    Male sex survey: Gay activity low\n\n    A new natonal study on male sexual behavior, the most thorough\n    examination of American men's sexual practices published since\n    the Kinsey report more than four decades ago, shows about 2\n    percent of the men surveyed had engaged in homosexual sex and\n    1 percent considered themselves exclusively homosexual.\n\n    The figures on homosexuality in the study released Wednesday\n    by the Alan Guttmacher Institute are significantly lower than\n    the 10 percent figure that has been part of the conventional\n    wisdom since it was published in the Kinsey report.\n\nThe article also contains numbers on the number of sexual partners.\nThe median number of sexual partners for all men 20-39 was 7.3.\nCompared to the table I have already posted from Masters, Johnson,\nand Kolodny showing male homosexual partners, it is apparent that\nhomosexual men are dramatically more promiscuous than the general\nmale population.  It's a shame that we don't have a breakdown for\nstraight men vs. gay/bi men -- that would show even more dramatically\nhow much more promiscuous gay/bi men are.\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7269, "properties": {"category": "rec.sport.baseball", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: Infield Fly Rule\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 31\n\njrogoff@scott.skidmore.edu (jay rogoff) writes:\n\n>One last infield fly question that has always puzzled me and hasn't\n>yet been addressed.  I believe the rule also does *not* deal with this\n>situation:\n\n>If Infield Fly is declared and the ball is caught, runners can tag up\n>and advance at their own risk, as on any fly ball.\n\n>However, if the Infield Fly is *not* caught, at what point can a\n>runner legally leave his base w/o fear of being doubled off for\n>advancing too early?  When the\n>ball hits the ground?  When a fielder first touches the ball after it\n>hits the ground?\n\n>Enlightenment would be appreciated.\n\nI'm not sure I understand this question. When the IF rule is invoked,\nthe batter is automatically out. This relieves the runners from being\nforced to advance to the next base if the ball is not caught. Other\nthan that, isn't it just the same as any situation in which a runner on\na base is not forced to the next base on a dropped fly ball? That is,\nif the ball is caught he can tag up and run (or decide to stay), and\nif the ball is dropped he can have left the base at any time.\n\n-----\nEric Smith\nerics@netcom.com\nerics@infoserv.com\nCI$: 70262,3610\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7270, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: keiths@spider.co.uk (Keith Smith)\nSubject: win/NT file systems\nOrganization: Spider Systems Limited, Edinburgh, UK.\nLines: 6\nNntp-Posting-Host: trapdoor.spider.co.uk\n\nOK will some one out there tell me why / how DOS 5\ncan read (I havn't tried writing in case it breaks something)\nthe Win/NT NTFS file system.\nI thought NTFS was supposed to be better than the FAT system\n\nkeith\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7271, "properties": {"category": "misc.forsale", "text": "From: ctd2t@Virginia.EDU (\"Chris Dong\")\nSubject: WANTED:MEMPHIS SUBLET\nOrganization: University of Virginia\nLines: 6\n\n\nNon-smoking, normal law student needs furnished place to live in Memphis\nthis summer.  I'll be working at a firm downtown and will have\nto pass the bar character examination, so you don't have to worry about \nyour stuff being broken or stolen.  Call Chris at (804)979-2519\nor leave e-mail.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7272, "properties": {"category": "comp.sys.mac.hardware", "text": "From: \"Michael T. Callihan\" <mc5o+@andrew.cmu.edu>\nSubject: \"Full page\" PB screen\nOrganization: Junior, Social & Decision Sciences, Carnegie Mellon, Pittsburgh, PA\nLines: 31\nNNTP-Posting-Host: po2.andrew.cmu.edu\n\nHi.  I am working on a project for my marketing class and I'd like to\nask your help.  The assignment is to come up with a product and create a\nmarketing plan for it.  Technical issues are not terribly important at\nthis point.  Well, my group's plan is to market a \"full page\" monitor\nfor laptop computers.  It would be a third-party product to be installed\nby authorized repair centers (like Newer Technology's PaletteBook\nscreen).  The idea is that the screen would fold in such a way that you\nwould get twice the screen height of a normal screen (remember,\ntechnical issues aside!).  In fact, by adjusting the fold of the screen\nand the monitor configuration, you could have regular OR \"full\" height. \nThe screen would probably be monochrome.\nThe motivation behind this is that laptop computers seem to be very\npopular among business people.  Business people also commonly use word\nprocessing and spreadsheet applications for which it is very convenient\nto see a large portion of the document.  Because of the target users and\napplications, color screens aren't really a neccessity.  We could\nhopefully keep the cost between $2000 and $3000.\n\nNow, please don't write this off as completely ridiculous.  I really\nneed some constructive feedback.  So, if you would, please reply to me\nvia email and let me know:\n1. If you would consider buying a \"full page\" laptop screen\n2. How much you would be willing to pay for it\n3. Any helpful commentaries on the idea\n\nAlso, if you take this idea and make a lot of money off it (doubtful,\nbut who knows!), please send me some.\n\nThanks in advance!!!\n\n-Mike\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7273, "properties": {"category": "talk.politics.guns", "text": "From: pspod@hooch.lerc.nasa.gov (Steve Podleski)\nSubject: Re: Waco, they did it.    ( MASADA )\nOrganization: NASA Lewis Research Center\nLines: 23\nNNTP-Posting-Host: hooch.lerc.nasa.gov\n\nfcrary@ucsu.Colorado.EDU (Frank Crary) writes:\n>msn@reef.cis.ufl.edu (Mike 'HK G3ZF Full-Auto' Newsome) writes:\n>>> I'm sick to my stomach as I write this.  The BD compound\n>>> is on fire, and will burn to the ground in minutes.\n>I used exactly this one-word reply, to suggest a likely ending to\n>the siege several weeks ago. But like Masada, this wasn't entirely\n>a government action: The defenders held out as long as they could,\n>and then killed themselves, their families and their children \n>rather than surrender. Israel calls the action of the Zelots\n>\"heroic\", and trains their army to follow this example. Now that \n>someone has repeated this action in modern times, what do we call it?\n\nLiberals and supporters of Clinton say that costs made the action \nnecessary.\n\n-- \n\n-----------------------------------------------------------------------------\nSteve Podleski\t\t\t|     phone: 216-433-4000\nNASA Lewis Research Center     \t|    \nCleveland, Ohio  44135         \t|     email: pspod@hooch.lerc.nasa.gov \n-----------------------------------------------------------------------------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7274, "properties": {"category": "comp.sys.mac.hardware", "text": "Orginization: Old Dominion University - Computing & Communications Services\nFrom: Kay Alexander <KBA100S@ODUVM.BITNET>\nSubject: Quadra 800 problem & question\nLines: 16\n\nI just got a Quadra 800 8/230 and I've noticed that I can't change the\ndesktop color from the beautiful gray.  I thought maybe I should reinstall\nthe OS using the \"Install Me First, Macintosh Centris, Quadra...\" diskette\nbecause the system file on this diskette is more recent than the one on the\nhard disk.\n\nThe easy install selects \"Macintosh Cnetris System Software\".  Does anyone\nknow if I should use this or customize and use \"System Software for any\nMacintosh\"?  Or does it matter?\n\nTHANKS in advance for any suggestions...\n\nKay Alexander\nOld Dominion University\nBITNET: kba100s@oduvm\nINTERNET: kba100s@oduvm.cc.odu.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7275, "properties": {"category": "sci.space", "text": "From: keithley@apple.com (Craig Keithley)\nSubject: Re: Moonbase race, NASA resources, why?\nOrganization: Apple Computer, Inc.\nLines: 44\n\nIn article <C5w5un.Bpq@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry\nSpencer) wrote:\n> \n> The major component of any realistic plan to go to the Moon cheaply (for\n> more than a brief visit, at least) is low-cost transport to Earth orbit.\n> For what it costs to launch one Shuttle or two Titan IVs, you can develop\n> a new launch system that will be considerably cheaper.  (Delta Clipper\n> might be a bit more expensive than this, perhaps, but there are less\n> ambitious ways of bringing costs down quite a bit.)  \n\nAh, there's the rub.  And a catch-22 to boot.  For the purposes of a\ncontest, you'll probably not compete if'n you can't afford the ride to get\nthere.  And although lower priced delivery systems might be doable, without\ndemand its doubtful that anyone will develop a new system.  Course, if a\nlow priced system existed, there might be demand...  \n\nI wonder if there might be some way of structuring a contest to encourage\nlow cost payload delivery systems.  The accounting methods would probably\nbe the hardest to work out.  For example, would you allow Rockwell to\n'loan' you the engines?  And so forth...\n\n> Any plan for doing\n> sustained lunar exploration using existing launch systems is wasting\n> money in a big way.\n> \n\nThis depends on the how soon the new launch system comes on line.  In other\nwords, perhaps a great deal of worthwhile technology (life support,\nnavigation, etc.) could be developed prior to a low cost launch system. \nYou wouldn't want to use the expensive stuff forever, but I'd hate to see\nfolks waiting to do anything until a low cost Mac, oops, I mean launch\nsystem comes on line.\n\nI guess I'd simplify this to say that 'waste' is a slippery concept.  If\nyour goal is manned lunar exploration in the next 5 years, then perhaps its\nnot 'wasted' money.  If your goal is to explore the moon for under $500\nmillion, then you should put of this exploration for a decade or so.\n\nCraig\n\n\nCraig Keithley           |\"I don't remember, I don't recall, \nApple Computer, Inc.     |I got no memory of anything at all\"\nkeithley@apple.com       |Peter Gabriel, Third Album (1980)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7276, "properties": {"category": "misc.forsale", "text": "Subject: USR 16.8k HST External Mo\nFrom: herbert.wottle@cccbbs.UUCP (Herbert Wottle) \nReply-To: herbert.wottle@cccbbs.UUCP (Herbert Wottle) \nDistribution: world\nOrganization: Cincinnati Computer Connection - Cincinnati, OH - 513-752-1055\nLines: 13\n\nFor Sale ---\n\n        U.S.Robotics 16.8k HST external modem, including power adapter,\n        Users Guide and Quick-Reference Card.\n\n        $515.00.\n\n        Call me voice at (513) 831-0162 -- let's talk about it.\n\n        Herb...\n---\n . QMPro 1.02 42-0616 . Dogs come when you call.  Cats have answering machines.\n                                                                    \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7277, "properties": {"category": "talk.religion.misc", "text": "From: ece_0028@bigdog.engr.arizona.edu (David Anderson)\nSubject: Re: Christian Owned Organization list\nOrganization: University of Arizona\nLines: 19\n\nIn article <?a$@byu.edu> $stephan@sasb.byu.edu (Stephan Fassmann) writes:\n>In article <1993Apr13.025426.22532@mnemosyne.cs.du.edu> kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n>\n>>In article <47749@sdcc12.ucsd.edu> shopper@ucsd.edu writes:\n>>>\n>>>Does anyone have or know where I can find a list of christian-owned\n>>>corporations and companies?  One that I know of is WordPerfect.\n>>\n>>I believe that WordPerfect is actually owned by the Mormons.\n>\n>Sorry, WordPerfect is own by A mormon not the LDS Church.\n\nSlight semantical difference.  The LDS Church does own a heck of\na lot however.  They are the largest land holder in MIssouri\n(where they think Christ will appear at the second coming).\n\nI believe they also own some large beverage company like Pepsi\n(that was why they had to take caffiene off of their \"forbidden\nsubstance\" list).\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7278, "properties": {"category": "talk.politics.misc", "text": "From: mikea@zorba.gvg.tek.com (Michael P. Anderson)\nSubject: Re: Temper tantrums from the 1960's\nDistribution: usa\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 28\n\nOK Phil, you're right. So far the \"evidence\" suggests that Nixon was a victim\nof overzealous underlings and Kennedy was a womanizing disgust-o-blob with\na dash of megalomania. After crushing the CIA and FBI who's to say Kennedy \nwouldn't have created his own version of American Friendly Fascism?\n\nUnfortunately however, we don't have all the evidence. So far this nation's\ncitizens have been privy to about 12 hours of the total 4,000 hours of Nixon's\ntapes. What's on the rest of those babies? Some archivists have alluded that\nthere is \"evidence\" to suggest that Nixon and his cronies, including George\nBush, were aware of the plot to murder Kennedy before he was shot in Dallas.\n\nAsk your local D.A. what the charges are for the above crime.\n\n\nAnd so I must ask you, Phil me putz, when all this shit finally comes out\nwhen you and I are old men, I would appreciate the privilege of sticking a pole\nup your ass and parading you down Main Street with a sign on your chest:\n\n\"I was an Apologist for the American Fascist Regime circa 1944 -- 2010\"\n\n(How's that for a lovely Brecht-ian image:-)\n\n\nThere, that ought to get a reaction. Unless I'm in his killfile this week...\n\n\t\t\t\t\t\t\t\t        MPA\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7279, "properties": {"category": "rec.sport.hockey", "text": "From: willis@oracle.SCG.HAC.COM (Stan Willis)\nSubject: Kings regular season schedule/results\nReply-To: willis@empire.dnet.hac.com (Stan Willis)\nOrganization: none\nLines: 189\n\n1992-93 Los Angeles Kings Schedule/Results\n\nTV:\n---\n2 preseason games, 82 of 84 regular season and all playoffs on TV.\n\n (PT)= Prime Ticket, (5) = KTLA Channel 5, (7) = ABC Channel 7 - playoffs\n\nRadio:\n------\nAll regular and preseason games broadcast on the Kings radio network.\n\n Southern California \tXTRA -  690am (flagship)\n Simi Valley\t\tKWNK -  670am \n Ankorage, Alaska\tKBYR -  700am\n El Centro\t\tKAMP - 1430am\n Fairbanks, Alaska\tKIAK -  970am\n Hemet/Temecula\t\tKHSJ - 1320am\n Lancaster/Palmdale\tKAVL -  610am\n Palm Desert\t\tKNWZ - 1270am\n Paso Robles\t\tKPRL - 1230am\n Reno, Nevada\t\tKPLY - 1270am\n Sacramento\t\tKSAC - 1240am\n San Luis Obispo\tKKAL - 1280am\n Santa Clarita\t\tKBET - 1220am\n Las Vegas, Nevada \tKENO - 1460am\n\nPreseason:\n----------\nSeptember/October:\n18 LA  3 vs VAN 3 @ Vancouver   - 12,357 (0-0-1,  1 pt)\n20 LA  5 vs PIT 2 @ Portland    -  6,124 (1-0-1,  3 pts) (PT)\n23 LA  3 vs PIT 3 @ Tacoma      -  ?     (1-0-2,  4 pts)\n24 LA  2 vs NYR 7 @ San Diego   -  8,099 (1-1-2,  4 pts) (PT)\n26 LA  2 vs NYR 6 @ Phoenix     -  8,977 (1-2-2,  4 pts)\n27 LA  4 vs SJ  2 @ Sacramento  -  7,950 (2-2-2,  6 pts)\n30 LA  2 vs VAN 5 @ The Forum   - 10,250 (2-3-2,  6 pts)\n03 LA  8 vs SJ  8 @ The Forum   - 12,005 (3-3-2,  8 pts)\n      --       --\nTotal 29       36\n\nRegular Season:\n---------------\nOctober:\n06 LA  5 @  Calgary      4 (OT) - 19,461 ( 1- 0- 0,   2 pts) (PT)\n08 LA  3 vs Detroit      5      - 16,005 ( 1- 1- 0,   2 pts) (PT)\n10 LA  6 vs Winnipeg     3      - 14,509 ( 2- 1- 0,   4 pts) (PT)\n13 LA  2 vs San Jose     1      - 14,320 ( 3- 1- 0,   6 pts) (PT)\n15 LA  4 vs Calgary      0      - 15,133 ( 4- 1- 0,   8 pts) (PT)\n17 LA  8 vs Boston       6      - 16,005 ( 5- 1- 0,  10 pts) (PT)\n20 LA  2  @ Calgary      6      - 19,169 ( 5- 2- 0,  10 pts)  (5)\n23 LA  2  @ Winnipeg     4      - 12,924 ( 5- 3- 0,  10 pts) (PT)\n24 LA  5  @ Minnesota    5      - 15,174 ( 5- 3- 1,  11 pts)  (5)\n27 LA  4  @ NY Islanders 3      - 10,259 ( 6- 3- 1,  13 pts) (PT)\n29 LA  3  @ Boston       8      - 14,448 ( 6- 4- 1,  13 pts) (PT)\n31 LA  7  @ Hartford     1      -  9,244 ( 7- 4- 1,  15 pts)  (5)\n      --                --                -----------------\nOct.  51                46                 7- 4- 1,  15 pts\n\nNovember:\n05 LA  5 vs New Jersey   2      - 14,592 ( 8- 4- 1,  17 pts) (PT)\n07 LA  5 vs Buffalo      2      - 16,005 ( 9- 4- 1,  19 pts) (PT)\n08 LA 11  @ San Jose     4      - 11,089 (10- 4- 1,  21 pts) (no tv)\n10 LA  4  @ Winnipeg     4      - 12,831 (10- 4- 2,  22 pts) (PT)\n12 LA  7 vs Vancouver    4      - 15,486 (11- 4- 2,  24 pts) (PT)\n14 LA  6 vs Edmonton     2      - 16,005 (12- 4- 2,  26 pts) (PT)\n16 LA  3  @ Vancouver    6      - 15,896 (12- 5- 2,  26 pts) (PT)\n17 LA  0  @ San Jose     6      - 11,089 (12- 6- 2,  26 pts) (PT)\n19 LA  4 vs Chicago      1      - 16,005 (13- 6- 2,  28 pts) (PT)\n21 LA  6 vs Toronto      4      - 16,005 (14- 6- 2,  30 pts) (PT)\n25 LA  3  @ Edmonton     1      - 13,636 (15- 6- 2,  32 pts) (no tv)\n27 LA  5  @ Detroit      3      - 19,875 (16- 6- 2,  34 pts) (PT)\n28 LA  2  @ Toronto      3      - 15,720 (16- 7- 2,  34 pts) (PT)\n      --                --                -----------------\nNov.  61                42                 9- 3- 1,  19 pts\nYear 112                88\n\nDecember:\n01 LA  6  @ Chicago      3      - 16,292 (17- 7- 2,  36 pts) at Milwaukee (PT)\n03 LA  5 vs Pittsburgh   3      - 16,005 (18- 7- 2,  38 pts) (PT)\n05 LA  7 vs Hartford     3      - 16,005 (19- 7- 2,  40 pts) (PT)\n08 LA  5 vs Montreal     5      - 12,276 (19- 7- 3,  41 pts) at Phoenix (PT)\n10 LA  4 vs Quebec       5      - 15,221 (19- 8- 3,  41 pts) (PT)\n12 LA  6 vs St Louis     3      - 16,005 (20- 8- 3,  43 pts) (PT)\n15 LA  2 vs Tampa Bay    3      - 15,753 (20- 9- 3,  43 pts) (PT)\n18 LA  5  @ Edmonton     5      - 15,257 (20- 9- 4,  44 pts)  (5)\n19 LA  3  @ Calgary      5      - 20,214 (20-10- 4,  44 pts) (PT)\n22 LA  2 vs Vancouver    6      - 16,005 (20-11- 4,  44 pts) (PT)\n26 LA  2  @ San Jose     7      - 11,089 (20-12- 4,  44 pts)  (5)\n29 LA  2 vs Philadelphia 10     - 16,005 (20-13- 4,  44 pts) (PT)\n31 LA  0  @ Vancouver    4      - 16,150 (20-14- 4,  44 pts) (PT)\n      --                --                -----------------\nDec.  49                62                 4- 7- 2,  10 pts\nYear 161               150\n\nJanuary:\n02 LA  5 vs Montreal     5      - 16,005 (20-14- 5,  45 pts) (PT)\n06 LA  3 vs Tampa Bay    6      - 16,005 (20-15- 5,  45 pts) (PT)\n08 LA  3  @ Winnipeg     6      - 14,036 (20-16- 5,  45 pts)  (5)\n10 LA  5  @ Chicago      4      - 17,705 (21-16- 5,  47 pts)  (5)\n12 LA  3  @ Ottawa       2      - 10,500 (22-16- 5,  49 pts) (PT)\n14 LA  1  @ New Jersey   7      - 13,586 (22-17- 5,  49 pts) (PT)\n16 LA  2 vs Winnipeg     5      - 16,005 (22-18- 5,  49 pts) (PT)\n19 LA  5  @ Edmonton     4      - 16,686 (23-18- 5,  51 pts) (PT)\n21 LA  4 vs Vancouver    5      - 16,005 (23-19- 5,  51 pts) (PT)\n23 LA  3 vs NY Rangers   8      - 16,005 (23-20- 5,  51 pts) (PT)\n26 LA  7 vs San Jose     1      - 16,005 (24-20- 5,  53 pts) (PT)\n28 LA  1 vs Calgary      2      - 16,005 (24-21- 5,  53 pts) (PT)\n30 LA  2 vs Chicago      2      - 16,005 (24-21- 6,  54 pts) (PT)\n      --                --                -----------------\nJan.  44                57                 4- 7- 2,  10 pts\nYear 205               207\n\nFebruary:\n02 LA  2  @ Quebec       3      - 14,843 (24-22- 6,  54 pts) (PT)\n03 LA  2  @ Montreal     7      - 17,164 (24-23- 6,  54 pts) (PT)\n09 LA  3 vs Edmonton     6      - 16,005 (24-24- 6,  54 pts) (PT)\n11 LA  6 vs Detroit      6      - 16,005 (24-24- 7,  55 pts) (PT)\n13 LA  3 vs Washington  10      - 16,005 (24-25- 7,  55 pts) (PT)\n15 LA  3 vs Vancouver    0      - 16,005 (25-25- 7,  57 pts) (PT)\n17 LA 10  @ Minnesota    5      - 14,911 (26-25- 7,  59 pts) (PT)\n18 LA  2  @ Chicago      7      - 17,597 (26-26- 7,  59 pts) (PT)\n20 LA  3  @ Washington   7      - 17,812 (26-27- 7,  59 pts) (PT)\n22 LA  5  @ Tampa Bay    2      - 10,425 (27-27- 7,  61 pts) (PT)\n25 LA  0  @ St Louis     3      - 13,473 (27-28- 7,  61 pts) (PT)\n27 LA  2 vs Toronto      5      - 16,005 (27-29- 7,  61 pts) (PT)\n      --                --                -----------------\nFeb.  41                61                 3- 8- 1,   7 pts\nYear 246               268\n\nMarch:\n02 LA  6 vs Calgary      2      - 16,005 (28-29- 7,  63 pts) (PT)\n04 LA  8 vs Ottawa       6      - 16,005 (29-29- 7,  65 pts) (PT)\n06 LA  6 vs Edmonton     1      - 16,005 (30-29- 7,  67 pts) (PT)\n09 LA  3  @ NY Rangers   4      - 18,200 (30-30- 7,  67 pts) (PT)\n11 LA  3  @ Pittsburgh   4      - 16,164 (30-31- 7,  67 pts) (PT)\n13 @ Philadelphia - Postponed after 1 period (1-1) due to weather. Resch for 4/1\n14 @ Buffalo      - Postponed due to weather.  Rescheduled for 3/15.\n15 LA  4  @ Buffalo      2      - 13,799 (31-31- 7,  69 pts) (PT)\n16 LA  8 vs Winnipeg     4      - 16,005 (32-31- 7,  71 pts) (PT)\n18 LA  7 vs NY Islanders 4      - 16,005 (33-31- 7,  73 pts) (PT)\n20 LA  3 vs St Louis     2      - 16,005 (34-31- 7,  75 pts) (PT)\n24 LA  2  @ Vancouver    6      - 16,150 (34-32- 7,  75 pts)  (5)\n26 LA  4  @ Edmonton     1      - 17,503 (35-32- 7,  77 pts)  (5)\n28 LA  3  @ Winnipeg     3      - 15,566 (35-32- 8,  78 pts) (PT)\n29 LA  9  @ Detroit      3      - 19,875 (36-32- 8,  80 pts)  (5)\n31 LA  5  @ Toronto      5      - 15,720 (36-32- 9,  81 pts) (PT)\n      --                --                -----------------\nMar.  71                47                 9- 3- 2,  20 pts\nYear 317               315\n\nApril:\n01 LA  3  @ Philadelphia 1      - 17,380 (37-32- 9,  83 pts) (PT) rescheduled\n03 LA  0 vs Minnesota    3      - 16,005 (37-33- 9,  83 pts) (PT)\n06 LA  3 vs Calgary      3      - 16,005 (37-33-10,  84 pts) (PT)\n08 LA  2 vs San Jose     1      - 16,005 (38-33-10,  86 pts) (PT)\n10 LA  3  @ San Jose     2 (OT) - 11,089 (39-33-10,  88 pts) (PT)\n13 LA  4  @ Vancouver    7      - 16,150 (39-34-10,  88 pts) (PT)\n15 LA  6 vs Vancouver    8      - 16,005 (39-35-10,  88 pts) (PT)\n      --                --                -----------------\nApr.  21                25                 3- 3- 1,   7 pts\nYear 338               340                39-35-10,  88 pts -  3rd Smythe, \n                                                              11th overall\n\nPlayoffs:\n---------\nApril:\n18   @ Calgary - 12:00 noon (7)\n21   @ Calgary -  6:30 pm (PT)\n23  vs Calgary -  7:30 pm (PT)\n25  vs Calgary - 12:00 noon (7)**\n*27  @ Calgary -  6:30 pm (PT)\n*29 vs Calgary -  7:30 pm (PT)\n\nMay:\n*01  @ Calgary -  6:30 pm (PT)\n\nall times listed are Pacific Time.\n*if necessary.\n** may be shown on ABC, if televised by Prime Ticket, time is 7:30 pm.\n===============================================================================\nStan Willis (willis@empire.dnet.hac.com)\nnet contact: L.A. Kings\n\n >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n      talk with the L.A. Kings Mailing List ...... kings@cs.stanford.edu\n      to subscribe or unsubscribe: ....... kings-request@cs.stanford.edu\n <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n===============================================================================\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7280, "properties": {"category": "rec.motorcycles", "text": "From: jpolito@sysgem1.encore.com (Jonathan Polito)\nSubject: Re: Stolen  AARGHHHH.....\nOrganization: Encore Computer Corp.\nIn-Reply-To: ericm@microunity.com's message of Thu, 15 Apr 1993 00:22:22 GMT\n\t<1993Apr15.002222.23057@microunity.com>\nNntp-Posting-Host: sysgem1.encore.com\nLines: 23\n\n\nIn article <1993Apr15.002222.23057@microunity.com> ericm@microunity.com (Eric Murray) writes:\n\n   Watch out.  Often when some scumbag steals the cover, that means\n   that they were or are looking to steal the bike.  In my case, I\n   had a faded cover stolen off a bmw R100RS that was stashed in an\n   apartment carport and not visible from the street.  They evidently\n   decided the beemer wasn't worth stealing, but did try the next night to\n   steal a Honda Hurricane 600 parked in the next apartment building.\n   A neighbor heard them wheeling it out and called the cops.\n\n\nI know this is just setting myself up, but this is actually one of the\nthings that is really good about BMW bikes.  From all accounts I've\nheard practically no one steals BMWs. Probably it is similar for Moto\nGuzzis and other relative \"exotics\" since there isn't a large demand\nfor parts and the bike would be much easier to track down. It seems\nthat the most stolen bikes are Harleys and 600cc Jap sport bikes. \n\n--\nJonathan E. Polito \t\t    Internet: jpolito@encore.com\nEncore Computer Corp, 901 Kildaire Farm Rd, Cary, NC  27511  USA\n919-481-3730/voice  \t\t\t\t919-481-3868/FAX\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7281, "properties": {"category": "comp.graphics", "text": "From: g.coulter@daresbury.ac.uk (G. Coulter)\nSubject: SHADOW Optical Raytracing Package?\nReply-To: g.coulter@daresbury.ac.uk\nOrganization: SERC Daresbury Laboratory, UK\nLines: 17\nNNTP-Posting-Host: dlsg.dl.ac.uk\n\nHi Everyone ::\n\nI am  looking for  some software  called SHADOW as \nfar as  I know  its a   simple  raytracer  used in\nthe  visualization  of  synchrotron   beam  lines.\nNow we have  an  old  version of the  program here\n,but unfortunately we don't have any documentation\nif anyone knows  where I  can  get  some  docs, or\nmaybe  a  newer  version  of  the program or  even \nanother  program that does the same sort of  thing\nI would love to hear from you.\n\nPS I think SHADOW was written by a F Cerrina?\n\nAnyone any ideas?\n\nThanks -Gary- SERC Daresbury Lab.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7282, "properties": {"category": "misc.forsale", "text": "From: nmohan@opal.tufts.edu\nSubject: SALE-CANON EOS ELAN OUTFIT\nLines: 28\nOrganization: Tufts University - Medford, MA\n\nFOR SALE\nCANON EOS ELAN OUTFIT\n\nINCLUDED \n-EOS elan body\n-28-80 mm EF 1:3.5-5.6 USM lens\n-100-300 mm EF 1:4.%-5.6 USM lens\n-2 B&W UV filters\n-Hoya circular polarising filter\n-Canon RC-1 remote controller\n-Pentax lens cloth\n-Lowe Pro camera bag\n-Galen Rowell Photoflex lens bag\n-Sapre lithium battery\n-Hove Foto bokk user guide to Canon EOS elan\n\nAll as new condition\n\nThe whole lot $800 (firm)\n\nContact David 617-227-7326\n              617-956-6905\n\n\nPlease do not e-mail your queries. All talks only by phone.\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7283, "properties": {"category": "rec.sport.baseball", "text": "From: demers@cs.ucsd.edu (David DeMers)\nSubject: Re: Let's Talk Phillies\nOrganization: CSE Dept., UC San Diego\nLines: 17\nNntp-Posting-Host: mbongo.ucsd.edu\n\n\nIn article <93108.164642RVESTERM@vma.cc.nd.edu>, RVESTERM@vma.cc.nd.edu writes:\n|> In article <1993Apr17.020347.9554@mgweed!mgwhiz.att.com>,\n|> prg@mgweed!mgwhiz.att.com (Phil Gunsul) says:\n...\n|> ps: hey kids, take all those pictures of dead presidents out of your\n|> parents' wallets and mail them to:\n|> \n|>                bob vesterman\n|>\n\nAnd send him a shift key too...\n-- \nDave DeMers\t\t\t \t        demers@cs.ucsd.edu\nComputer Science & Engineering\t0114\t\tdemers%cs@ucsd.bitnet\nUC San Diego\t\t\t\t\t...!ucsd!cs!demers\nLa Jolla, CA 92093-0114\t(619) 534-0688, or -8187, FAX: (619) 534-7029\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7284, "properties": {"category": "misc.forsale", "text": "From: orobles@ux4.cso.uiuc.edu (Oscar B Robles)\nSubject: FORSALE: NEW HP48SX WITH SOFTWARE.\nOrganization: University of Illinois at Urbana\nLines: 10\n\nI bought my HP48sx calculator a month ago, used once but put it back in the\nbox.  Includes manual and I'm including about 7 high density disks packed with\ndozens if not hundreds of games and programs. All you need to do is buy the\npc cable for around $20 bucks so you could use the software.  \n     \n\t   \n\t   \n\t   $255 shipping included or best offer.\n\t   \n\t   Thanx.l\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7285, "properties": {"category": "comp.graphics", "text": "Organization: Penn State University\nFrom: <JER114@psuvm.psu.edu>\nSubject: scanned grey to color equations?\nLines: 7\n\nA while back someone had several equations which could be used for changing 3 f\niltered grey scale images into one true color image.  This is possible because\nit's the same theory used by most color scanners.  I am not looking for the obv\nious solution which is to buy a color scanner but what I do need is those equat\nions becasue I am starting to write software which will automate the conversion\n process.  I would really appreciate it if someone would repost the 3 equations\n/3 unknowns.   Thanks for the help!!!\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7286, "properties": {"category": "misc.forsale", "text": "From: sidak_ok@lrc.edu\nSubject: Box of chemicals for sale\nOrganization: Lenoir-Rhyne College, Hickory, NC\nLines: 7\n\n I'm selling $388 worth of chemicals for $100 or I'll split it in two for $50\ndollars apeice. Aprox. 380 1oz bottles. Will make a great chem set.\n Will pay shipping up to $15. If really interested I will mail a partial list.\nPlease contact by e-mail only \n\n\nOmar\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.344+0000", "event": "documents", "entityId": 7287, "properties": {"category": "sci.med", "text": "From: mrl@pfc.mit.edu (Mark London)\nSubject: Corneal erosion/abrasions.\nOrganization: MIT PLASMA FUSION CENTER\nLines: 11\nNNTP-Posting-Host: nerus.pfc.mit.edu\n\nFor several years I have been dealing with reccurring corneal  erosion.    There\ndoes  not  seem  to be much known about the cause of such a problem.  My current\nepisode is pretty bad since it is located in the middle of the cornea.  If  it's\nbad  enough, the usual treatment for it is puncture therapy.  However, my doctor\nthis time is trying to let it heal by  itself  by  putting  a  contact  lens  to\nprotect the area.  Apparently the problem is not that common, but I'd be curious\nif anyone else out there has a similar problem, perhaps to see if a cause can be\nfound. \n\nMark London\nMRL@NERUS.PFC.MIT.EDU\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7288, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: werdna@cco.caltech.edu (Andrew Tong)\nSubject: Internal Speaker Driver\nOrganization: California Institute of Technology, Pasadena\nLines: 7\nNNTP-Posting-Host: sandman.caltech.edu\n\nThis probably is in a FAQ somewhere, but....\n\nI'm looking for Microsoft's internal speaker sound driver for Windows.\n\nShould be at Microsoft's FTP site, but I can't remember the name of the site...\n\nThanks.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7289, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: spitz@ana.med.uni-muenchen.de (Richard Spitz)\nSubject: Re: Help with WinQVT\nReply-To: spitz@ana.med.uni-muenchen.de (Richard Spitz)\nOrganization: Inst. f. Anaesthesiologie der LMU, Muenchen (Germany)\nDistribution: lrz\nLines: 63\n\nswartzjh@NeXTwork.Rose-Hulman.Edu (Jeff H. Swartz) writes:\n\n>  \twhen I use a name such as rosevc.rose-hulman.edu\n>\t\tInitiating nameserver query for 'rosevc'\n>\t\tnameserver query time out\n>  \twhen I use the IP number\n>\t\tLocal host or gateway not responding\n\n>I know the nameserver is correct and the router is correct.  They work  \n>fine using NCSA telnet/ftp.\n\nThey are working ok, but your definitions in QVTNET.INI and QVTHOST.RC are\nincorrect (see below).\n\n>The docs said if you are running concurrent packet software you need to  \n>load PKTMUX???  Does this apply to me???\n\nNo, I don't think so. You are using QVTNET and NOVELL concurrently, aren't\nyou? They use different packet types, so QVTNET (TCP/IP) and NOVELL (IPX/SPX)\nshould be able to coexist just fine. PKTMUX is required if you are using\ndifferent TCP/IP-Packages concurrently.\n\n>This is the qvthost.rc file.\n>137.112.5.2\n>137.112.199.50\n\nThere is the first problem: You didn't specify hostnames, just IP-Addresses.\nYour file should look like this:\n\n137.112.5.2        <Name of your Nameserver>\n137.112.199.50     <Name of your Router>\n\n>This is the beginning of the winqvt.ini file.\n>[net]\n>name=swartzjh.test.rose-hulman.edu\n\nHere you should only specify your hostname, without the domain part.\n\n>router=137.112.199.50\n\nInstead, use router=<Name of your Router>, as specified in your QVTHOST.RC\nI know the release notes for 3.31 say that IP addresses should work also,\nbut  apparently they don't.\n\n>nameserver=137.112.5.2\n\nHere, too, you should use the hostname of the nameserver instead of the\nIP address.\n\nIt worked fine for me that way, although I could not specify more than\none nameserver. The relnotes say it should be possible to specify up to\nthree nameservers, separated by commas, but it didn't work.\n\nHope it helps,\nRichard\n\n-- \n+----------------------------+-------------------------------------------+\n| Dr. Richard Spitz          | INTERNET: spitz@ana.med.uni-muenchen.de   |\n| EDV-Gruppe Anaesthesie     | Tel     : +49-89-7095-3421                |\n| Klinikum Grosshadern       | FAX     : +49-89-7095-8886                |\n| Munich, Germany            |                                           |\n+----------------------------+-------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7290, "properties": {"category": "talk.politics.misc", "text": "From: DAK988S@vma.smsu.edu\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: SouthWest Mo State Univ\nLines: 32\nNNTP-Posting-Host: vma.smsu.edu\nX-Newsreader: NNR/VM S_1.3.2\n\n>>In article <1993Apr15.021021.7538@gordian.com> mike@gordian.com (Michael A. Thomas) writes:\n>>>In article <C5HuH1.241@news.iastate.edu>, jrbeach@iastate.edu (Jeffry R Beach) writes:\n>>>> Think about it -- shouldn't all drugs then be legalized, it would lower\n>>>> the cost and definitely make them safer to use.\n>>>\n>>>  Yes.\n>>>\n>>>> I don't think we want to start using these criterion to determine\n>>>> legality.\n>>>\n>>>  Why not?\n>>\n>>Where do they get these people?!  I really don't want to waste time in\n>>here to do battle about the legalization of drugs.  If you really want to, we\n>>can get into it and prove just how idiotic that idea is!\n \nYou think that you all have it bad....here at good ol' Southwest Missouri\nState U., we have 2 parties running for student body president.  There's the\ntoken sorority/fraternity faces, and then there's the president and vice\npresident of NORML.  They campaigned by handing out condoms and listing\ntheir qualifications as,\"I listen really well.\"  It makes me sick to have\na party established on many of the things that are ruining this country like\nthey are.  I think I'll run next year.:(\n \n      Darin J Keener, dak988s@vma.smsu.edu\n      PC-the idea that catering to splinter groups is the way to go.\n \n \n \n \n \n \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7291, "properties": {"category": "rec.sport.baseball", "text": "From: rlm7638@tamsun.tamu.edu (Jack McKinney)\nSubject: Official Rules of Baseball ISBN\nOrganization: Mistress Barbara's Dungeon Palace\nLines: 12\nDistribution: na\nNNTP-Posting-Host: tamsun.tamu.edu\n\n     I am trying to get a copy of the _official_ rules of baseball.\nSomeone once sent me the ISBN number of it, but I have since lost it.\nCan anyone give me this information, or tell me where I can find the\nbook?  None of my local bookstores have it.\n\n+---------------------------------------------------+------------------------+\n| \"I'm walking home from school, and I'm watching   | Jack McKinney          |\n|  some men building a new house, and the guy ham-  | jmckinney@tamu.edu     |\n|  mering on the roof calls me a paranoid little    +------------------------+\n|  weirdo....                  in Morse code.\"      |       This space       |\n|                       -Emo Philips                |        for rent        |\n+---------------------------------------------------+------------------------+\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7292, "properties": {"category": "alt.atheism", "text": "From: 9051467f@levels.unisa.edu.au (The Desert Brat)\nSubject: Victims of various 'Good Fight's\nOrganization: Cured, discharged\nLines: 30\n\nIn article <9454@tekig7.PEN.TEK.COM>, naren@tekig1.PEN.TEK.COM (Naren Bala) writes:\n\n> LIST OF KILLINGS IN THE NAME OF RELIGION \n> 1. Iran-Iraq War: 1,000,000\n> 2. Civil War in Sudan: 1,000,000\n> 3, Riots in India-Pakistan in 1947: 1,000,000\n> 4. Massacares in Bangladesh in 1971: 1,000,000\n> 5. Inquistions in America in 1500s: x million (x=??)\n> 6. Crusades: ??\n\n7. Massacre of Jews in WWII: 6.3 million\n8. Massacre of other 'inferior races' in WWII: 10 million\n9. Communist purges: 20-30 million? [Socialism is more or less a religion]\n10. Catholics V Protestants : quite a few I'd imagine\n11. Recent goings on in Bombay/Iodia (sp?) area: ??\n12. Disease introduced to Brazilian * oher S.Am. tribes: x million\n\n> -- Naren\n\nThe Desert Brat\n-- \nJohn J McVey, Elc&Eltnc Eng, Whyalla, Uni S Australia,    ________\n9051467f@levels.unisa.edu.au      T.S.A.K.C.            \\/Darwin o\\\nFor replies, mail to whjjm@wh.whyalla.unisa.edu.au      /\\________/\nDisclaimer: Unisa hates my opinions.                       bb  bb\n+------------------------------------------------------+-----------------------+\n|\"It doesn't make a rainbow any less beautiful that we | \"God's name is smack  |\n|understand the refractive mechanisms that chance to   | for some.\"            |\n|produce it.\" - Jim Perry, perry@dsinc.com             |    - Alice In Chains  |\n+------------------------------------------------------+-----------------------+\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7293, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Nazi Armenians were of service to Germans in Arab countries as well.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 40\n\nIn article <1993Apr26.175246.24412@colorado.edu> perlman@qso.Colorado.EDU (Eric S. Perlman) writes:\n\n>This has been discussed before, by several people, on this net.  The\n>statement is attributable either to Hajj Amin al-Husseini, former Grand\n>Mufti of Jerusalem - and the leader of the Palestinian death squads\n>during the 1948 war, or to one of his chief henchmen.  \n\nLet us not forget the Nazi Armenians. Nazi Armenians were of service \nto Germans in Arab countries as well. As Uzun put it, one well-known \ncase which received a lot of media-coverage involved two Nazi Armenian \nagents which were dropped over Syria by Italian war planes. The mission \nof the agents was to mingle among the Armenian population in Syria and \nto acquire relevant information for the German Wehrmacht on the allied \nforces in the area.[1] Nazi Armenians also helped German propaganda \nefforts in Arab countries designed to promote pro-Nazi sentiments among \nthe French- and British-ruled Arab populations. Beirut had traditionally\nbeen strong-hold of the Nazi Armenians and until very recently it was\nthe center of international Armenian terrorism. \n\nIn Russia General Dro (the Butcher), the architect of the Turkish\ngenocide in WWI, was working closely with the German Secret \nService. He entered the war zone with his own men and acquired\nimportant intelligence about the Soviets. His experience with\nthe Turkish genocide in x-Soviet Armenia made him an invaluable \nsource for the Germans.[2]\n\n[1] Meyer, Berkian, ibid., p. 150. \n[2] Meyer, Berkian, ibid., p. 113; Patrick von zur Muehlen,\n    ibid., p. 84.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7294, "properties": {"category": "soc.religion.christian", "text": "From: jsledd@ssdc.sas.upenn.edu (James Sledd)\nSubject: proof of resurection\nOrganization: Social Science Computing\nLines: 44\n\nI have a few minor problems with the article posted as proof of \nChrist's resurrection.  \n\nFirst the scriptural quotations:\n\nThis sort of reasoning is such that if you beleive you are justified,\nif not then your beleif is in vain, so you might as well beleive.  Most\nof these quotations are of people who do beleive.  People who would\ntry to justify their own positions.\n\nSecond the logical proof:\n\n>quoted text...\n>\n>From: xx155@yfn.ysu.edu (Family Magazine Sysops)\n>Subject: WITNESS & PROOF OF CHRIST'S RESURRECTION\n>Date: 11 Apr 93 05:01:19 GMT\n>\n>[much deleted]\n>\n>            4.  In nearly 20 centuries, no body has ever been\n>                produced to refute Jesus' assertion that He\n>                *would indeed* rise from the dead.\n>\n>            5.  The probability of being able to perpetrate such\n>                a hoax successfully upon the entire world for\n>                nearly 20 centuries is astronomically negative!\n>                                       ^^^^^^^^^^^^^^^^^^^^^^^\n>...end quoted text\n\n The period of time that has elapsed from the event growing larger\ndoes not increase the odds that a hoax would be discovered.  In fact\nthe longer a hoax is perpetuated the stronger it becomes.\n\nFinally:\n\nThere is no proof of the resurrection of Christ, except in our spirits\ncommunion with his, and the Father's.  It is a matter of FAITH, belief\nwithout logical proof.  Incedently one of the largest stumbling blocks for\nrational western man, myself included.\n\nI hope that this is taken in the spirit it was intended and not as a \nrejection of the resurrection's occurance.  I beleive, but I wanted to point \nout the weakness of logical proofs.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7295, "properties": {"category": "soc.religion.christian", "text": "From: Petch@gvg47.gvg.tek.com (Chuck Petch)\nSubject: Daily Verse\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 4\n\nHe who overcomes will inherit all this, and I will be his God and he will\nbe my son. \n\nRevelation 21:7\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7296, "properties": {"category": "misc.forsale", "text": "From: zmed16@trc.amoco.com (Michael)\nSubject: FOR SALE: 4-TRACK RECORDER \nOriginator: zmed16@zircon\nOrganization: Amoco Production Company, Tulsa Research\nLines: 11\n\n\n\nI have a Fostex X-26 4-Track Recorder for sale.  It is in excellent condition\nand includes Dolby Noise Reduction, sub-mixing, 6 inputs and uses normal cassettes.  If you are interested, make me an offer.  Please respond to:\n\n\tzmed16@trc.amoco.com\n\nThanks,\n\nMike\n \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7297, "properties": {"category": "comp.graphics", "text": "From: rws@cs.arizona.edu (Ronald W. Schmidt)\nSubject: outlining of spline surface\nKeywords: spline rasterization\nLines: 38\n\n\n\tAbout a year ago I started work on a problem that appeared to\nbe very simple and turned out to be quite difficult.  I am wondering if\nanyone on the net has seen this problem and (hopefully) some published \nsolutions to it.\n\n\tThe problem is to draw an outline of a surface defined by two\nroughly parallel cubic splines.  For inputs the problem essentially\nstarts with two sets of points where each set of points is on the \nedge of an object which we treat as two dimensional, i.e. only extant\nbetween the edges, but which exists in three dimensional space.  To draw \nthe object we \n\n1) fit a cubic spline through the points.  Each spline is effectively\n\tcomputed as a sequence of line segments approximating the\n        curve.  Each spline has an equal number of segments.  We assume\n\tthat the nth segment along each spline is roughly, but not\n\texactly, the same distance along each spline by any reasonable\n\tmeasure.\n2) Take each segment (n) along each spline and match it to the nth segment\n\tof the opposing spline.  Use the pair of segments to form two\n\ttriangles which will be filled in to color the surface.\n3) Depth sort the triangles\n4) Take each triangle in sorted order, project onto a 2D pixmap, draw\n\tand color the triangle.  Take the edge of the triangle that is\n\talong the edge of the surface and draw a line along that edge\n\tcolored with a special \"edge color\"\n\n\tIt is the edge coloring in step 4 that is at the heart of the\nproblem.  The idea is to effectively outline the edge of the surface.\nThe net result however generally has lots of breaks and gaps in\nthe edge of the surface.  The reasons for this are fairly complicated.\nThey involve both rasterization problems and problems resulting\nfrom the projecting the splines.  If anything about this problem\nsounds familiar we would appreciate knowing about other work in this\narea.\n\n-Thanks\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7298, "properties": {"category": "comp.graphics", "text": "From: hahm@fossi.hab-weimar.de (peter hahm)\nSubject: Radiosity\nKeywords: radiosity, raytracing, rendering\nNntp-Posting-Host: fossi.hab-weimar.de\nOrganization: Hochschule fuer Architektur und Bauwesen Weimar, Germany\nLines: 17\n\n\n\nRADIOSITY SOURCES WANTED !!!\n============================\n\nWhen I read the comp.graphics group, I never found something about \nradiosity. Is there anybody interested in out there? I would be glad \nto hear from somebody.\nI am looking for source-code for the radiosity-method. I have already\nread common literature, e. g.Foley ... . I think little examples could \nhelp me to understand how radiosity works. Common languages ( C, C++, \nPascal) prefered.\nI hope you will help me!\n\nYours\nPeter \n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7299, "properties": {"category": "rec.autos", "text": "From: SKUKRETI@CHEMICAL.watstar.uwaterloo.ca (Sanjai Kukreti)\nSubject: Advice on used car?\nLines: 11\nOrganization: University of Waterloo\n\nHi, I was looking for some helpful advice.\nI'm a university student with about $7000 to spend, and I'm looking for a \nused car. Does anyone have any useful advice they could offer to a first-\ntime buyer? I'm not looking for anything sporty, just something functional \nand reliable (less maintenance costs). Anybody have any ideas on what models \nmight suit me?\n\nThanks\n\nSanjai\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7300, "properties": {"category": "talk.religion.misc", "text": "From: ds0007@medtronic.COM (Dale M. Skiba)\nSubject: Re: JUDAS, CRUCIFIXION, TYRE, Etc...\nNntp-Posting-Host: bass.pace.medtronic.com\nOrganization: Medtronic, Inc.\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 43\n\nDavid Joslin (joslin@pogo.isp.pitt.edu) wrote:\n: af664@yfn.ysu.edu (Frank DeCenso, Jr.) writes:\n: >Based on the amount of E-Mail from fellow Christians who have read the\n: >posts and told me I was wasting my time with Butler and Joslin, I told\n: >them I wasn't doing it for DB or  DJ but for other Christians.  They\n: >have told me that DB's and DJ's arguments won't convince most Bible\n: >studying Christians.  So I have reevaluated my purpose here and it's\n: >also contributed to my decision.\n\n: So most Bible-studying Christians won't be convinced by my arguments? \n: And this is supposed to be a Good Thing, I presume?\n\nWhere does this \"Most Bible studying Christians think as Frank\ndoes\" come from.  And what implied \"good\" are you doing for other\nChristians?\n\nAt least some of what you are teaching has been demonstrated as\nwrong.  Has it ever occured to you that you may be doing more harm\nthan good to your fellow Christians?\n\nBTW, I used to think like Frank does.  I went to a fundamentalist\nchurch for a while.  I didn't start to really think about what\nthey were saying until I noticed a \"God's Science\" phamphlet\nthere.  I read it and noticed that the authors of it knew virtually\nnothing about Science.  I asked church members some questions about\n\"theories\" from the phamphlet and got only deceptive answers.  I\nbegan to notice a very similar style of \"answers\" for theological\nquestions as well.  The only conclusion I could reach was that\nthese peoples' beliefs about the Bible were about as valid as\ntheir beliefs in their God's Science phamphlet.\n\n: If there are still people out there who think that my purpose here\n: is to \"attack the Bible,\" (an accusation Frank once made) I would point\n: out that I have also criticized people who have posted \"bible\n: contradictions\" that turn out to be silly, out of context, or easily\n: (and legitimately) reconciled.  I'm not attacking the Bible, but \n: intellectual dishonesty *about* the Bible, from either side.\n\nIf one of the primary purposes of Christians is to seek out truth,\nhow can people condemn you for doing this?\n\n--\nDale Skiba\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7301, "properties": {"category": "rec.sport.baseball", "text": "From: ajpat@IASTATE.EDU (Amy J Patterson)\nSubject: Twins Games :)\nReply-To: ajpat@IASTATE.EDU (Amy J Patterson)\nOrganization: Iowa State University\nLines: 4\n\nDoes anyone know if the Twins games are broadcast in\ngood ole Ames Iowa??????????????\n\nThanks all.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7302, "properties": {"category": "sci.electronics", "text": "From: eabyrnes@vela.acs.oakland.edu (Ed Byrnes)\nSubject: Getting rid of screen wiggles?\nOrganization: Oakland University, Rochester MI.\nLines: 15\nDistribution: world\nNNTP-Posting-Host: vela.acs.oakland.edu\n\nMy monitor display has a bad case of the wigglies. I have a good ground. I\nlive in an old house and I have replaced much of the wiring. I have two\nEMI filters on the computer, the monitor plugs into the computer. When\nfluorescent lights are on upstairs, the display jiggles, when motors run\nin the house, the display jiggles, when incandescent lights are on in the\nkitchen the display jiggles.  I could bring a separate line from the\nbreaker box, and use it only for the computer, would this do it? EMI\ndoesn't only travel the 110 volt line though. Should I shield the back of\nthe monitor? Ground a grid or plate? \nYour expertise is appreciated. Thanks very much!  Ed Byrnes\n-- \n*---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---*\n|   Ed Byrnes   FAX:  313-651-7392           eabyrnes@vela.acs.oakland.edu  |\n|   Kensington Academy & Oakland University    Rochester, MI North America  |\n*---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---* \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7303, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Objective Values 'v' Scientific Accuracy (was Re: After 2000 years, can we say that Christian Morality is)\nOrganization: Cookamunga Tourist Bureau\nLines: 17\n\nIn article <930419.122738.5s2.rusnews.w165w@mantis.co.uk>, mathew\n<mathew@mantis.co.uk> wrote:\n> \n> lpzsml@unicorn.nott.ac.uk (Steve Lang) writes:\n> > Values can also refer to meaning.  For example in computer science the\n> > value of 1 is TRUE, and 0 is FALSE.\n> \n> Not in Lisp.\n\nTrue, all you need to define is one statement that defined one\npolarity, and all the other states are considered the other\npolarity. Then again what is the meaning of nil, false or true :-) ?\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7304, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Is SMARTDRV.EXE causing bad sectors on my hd?\nFrom: jdriver@netlink.cts.com (John Driver)\nOrganization: NetLink Online Communications, San Diego CA\nLines: 47\n\n        I am having something very unusual happen.  First \nsome background on my system.  I have a Mitsubishi 63 meg Hard Drive, \nand am running Smartdrv (the version that comes with Windows 3.1) on \nit.  I rarely use Windows.  I use a program called Disk Technician \nGold v1.14 to do diagnostics live time on my hard drive.  It works by \nhaving a device driver detect whenever more than one read is \nnecessary for a file, or if there is anything else is wrong with it, \nand minor problems are fully checked out upon rebooting.  My hard \ndrive is notorious for bad sectors.  I usually end up with 8 new bad \nsectors a week.\n \n        Here's what happened:  I ran a program, and DTG broke in with \nan Emergency Warning and recommended I reboot.  It gave me this \nmessage twice before the program was fully loaded.  I exited the program \nand did just this.  DTG went through its bootup process, examining \nfor new errors etc., and a screen popped up and said something about \nsectors for a brief period of time.\n \n        I then went back to the program, executed it again, and the \nexact same error was detected.  I rebooted and tried again, and the \nsame error happened again.  So, I removed DTG from memory, and went \nto the program to see if I could detect anything wrong.  Sure enough \nthere was a number of read attempts.  So I rebooted and reloaded DTG, \nbut removed the cache.  I executed the program.  No read errors, \neither audible or detected by DTG.  I quit the program, loaded the \ncache, and ran the program again.  The errors were detected.\n \n        Ok, so the errors are there, and DTG detects but doesn't fix \nthem, when the cache is loaded.  When the cache is not loaded there are \nno errors.  So, to see if the cache was interfering with any other \nfiles, I went into xtree gold and tagged all files, and searched them \nfor a random string (in other words, I wanted the program to \ncompletely read every file on my hard drive).  Before I got through \nthe c's DTG had detected at least six errors and recommended I reboot.\n \n        Does anybody, have any idea why Smartdrv is causing misreads on \nmy hard drive?  Oh, there are exactly two misreads per file, and 1 in \nabout every 100 files are affected.  \n \n        I originally posted this message to Disk Technician Corp.'s \nsystem, but I figured someone out in netland may know enough about \nsmartdrv to help me out.\n\n--                    \nINTERNET:  jdriver@netlink.cts.com (John Driver)\nUUCP:   ...!ryptyde!netlink!jdriver\nNetLink Online Communications * Public Access in San Diego, CA (619) 453-1115\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7305, "properties": {"category": "rec.sport.hockey", "text": "From: jca2@cec1.wustl.edu (Joseph Charles Achkar)\nSubject: Re: Thumbs up to ESPN\nKeywords: ESPN, Detroit, Toronto, Hockey Coverage\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nDistribution: na\nLines: 26\n\nIn article <C5sCLK.8B5@cbnewsh.cb.att.com> seth@cbnewsh.cb.att.com (peter.r.clark..jr) writes:\n>\n>What, did you leave the room each of the 100 or so times they said that\n>there WERE NO OTHER NIGHT BASEBALL GAMES? Every break they took back at\n>the studio mentioned it, followed by 'so...we're gonna show you hockey\n>instead.' My wife and I are hoping for rain at every baseball game they\n>have a feed for tommorrow night...\n>\n>Point is, be glad they showed hockey, but if baseball was available\n>anywhere else you can bet you would've watched baseball last night.\n>\n>pete clark\n\n I know that there wasn't other games on the schedule, but ESPN sometimes\nshows classic games from previous season to fill in the time slot.\n\n  %*%*%*%**%*%%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*\n  *   __  ______________         ____________________________________    % \n  %   \\ \\_)____________/         A L L E Z   L E S   B L U E S  ! ! !    * \n  *    \\    __________/          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    % \n  %     \\    ________/                                                   *\n  *      \\   _______/                  Joe Ashkar                        % \n  %       \\  \\                         Contact for the Blues             *\n  *        \\  \\  SAINT LOUIS           jca2@cec1.wustl.edu               % \n  %        (___)             BLUES                                       * \n  *%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*% \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.345+0000", "event": "documents", "entityId": 7306, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Unity\nOrganization: Indiana University\nLines: 126\n\nIn article <Apr.8.00.59.50.1993.28560@athos.rutgers.edu> Maarten.van.Loon@cwi.nl (Maarten van Loon) writes:\n>Hello fellow-netters and fellow christians,\n>about the subject of unity between christians and christian churches.\n>to a bible study group. Alltough I do have a personal opinion on this\n>issue, I thought it would be nice to hear opinions of fellow christian\n>brothers and sisters from different countries and in different situations.\n>\n>My background: member of a (orthodox) Reformed Church. Let us say a little\nThe ONLY unity I've found which is true is when all parties involved are\ndisciples.  I came out of a church in which even the different\ncongregations were always competing and arguing about which one was\nbetter and who had the better messages (while none of them put anything\ninto practice from those messages).  Since becoming a disciple, I've\nfound that when I travel to another church in the same movement, they\nare just as accepting there as any other.  We had a retreat back in\nJanuary when some of the congregation from Louisville, KY came up (this\nretreat was for college students) and it was as though I had known even\nthe people from Louisville for years (and I had only become a disciple\nthe previous April and had never been to the church in Kentucky).  One\nof the keys to unity is unselfish love and self-sacrifice.  That is only\none area in which disciples stand out from \"Christians\".  Also, another\npart of unity is a common depth of conviction.  I've also been a part of\nsome \"Christian\" campus fellowships who were focused on unity between\nchurches and saw that those churches had one thing involved:  a lack of\nconviction about everything they believed.  That was why they could be\nunified, they didn't care about the truth but delighted in getting along\ntogether.\n\n>The problem here in The Netherlands is that there are two other churches\n>(denominations) with the same characteristics. Both have the same\n>confessions; there are only some differences with respect to - for\n>example - the matter of appropriation of salvation and how to \"use\"\n>our creeds. In essence a lot of people of these three churches have to\n>same faith and feel that they should become one church. But how, that is\n>the question.\n>\nCreeds?  What need is there of creeds when the Bible stands firmly\nbetter?\n\n>So, here is a first question:\n>- can the congregation of Christ be separated by walls of different\n>  denominations? Or is this definitely an untolerable situation\n>  according to the Scriptures?\n\nAccording to the Scriptures, splits and differences of opinion are going\nto be there.  As per a previous note, I mentioned that there are those\nwho teach falsely by many means.  There are also differences of opinion\nand belief.  However, Scripture states:  \n   In the following directives I have no praise for you, for your\nmeetings do more harm than good.  In the first place, I hear that when\nyou come together as a church, there re divisions among you, and to some\nextent I believe it.  No doubt there have to be differences among you to\nshow which of you have God's approval (1 Corinthians 11:17-19).\n\nHow will God show his approval?  By fruitfulness (see Acts 2:47), but\nbefore that, there are these qualities:\n   devotion to the apostles teaching\n   fellowship\n   communion\n   filling with awe for God\n   all having everything in common.\n   glad and sincere hearts\n   praising God\n   enjoying the favor of the people\nAll these are mentioned in Acts 2:42-47.  God also shows that those who\nhave these qualities are persecuted.  Look at Stephen, \"a man full of\nfaith and of the Holy Spirit\" (Acts 6:5) who was later stoned (Acts\n7:54-60).  \n\n>- can one say that only one of these three churches is the\n>  true church of Jesus Christ?\n\nOne can say that a church is the true church only if that church is\nperfect not only in the congregation but worldwide as a movement.  I\nhave yet to find that, but the closest one I've found is the Boston\nChurch of Christ movement, which constantly strives to have errors\npointed out and corrected.  It is also the only one I've seen which is\ntotally sold out to God.\n\n>\n>A problem closely related to these question is:\n>- can we cooperate with other Christians - from these two churches - \n>  before there is a unity? This question is especially important\n>  for those who think that only one church can be the \"true one\".\n>\nAs for cooperation, that can always occur.  Unity, on the other hand may\nnever occur.  As for those who think about only one church being the\n\"true one\", I remind them that Mark 9:38-41 states that there are\ndisciples who are not a part of the main group to begin with, but they\nwill not lose their reward.  As with the Boston movement, I've heard\nnumerous times this exact same thing, that there are disciples out there\nthat are not a part of the Boston movement but that does not make them\nany less disciples.  Of course, few people admit that they've ever run\ninto someone who has the qualities of a disciple outside the movement.\nI know I haven't.\n\n>Maybe this last problem sounds a little strange to most of you.\n>For your information: we have a lot of organizations here which\n>are founded by people of one specific church and whose members\n>are all members of that church. This has been considered as\n>\"correct\" for years. Only a few years ago people started to\n>discuss about this and now we are in the middle of this process.\n>Some organizations are opening their doors for people from\n>other churches etc.\n>\nI must warn that this sounds cliquey to me.  A clique is a group which\nruns around together to some extent exclusively.  This causes problems\nin fellowship and causes divisions.  I would not say at all that this is\nsomething \"correct\" for a church/group to do for any reason.  In one of\nthe churches I attended, for example, there was an internal clique of\npeople who were on the 14 different groups/committees/organizational\nheads of the congregation.  They rarely talked to anyone else outside of\nthe committees and seldom were voted out of office without another\noffice being \"opened up\" so that they would have to step right back in.\nTheir degree of exclusion was such that when the new pastor came, he\nnearly had to wipe out everything and start from scratch (I wish he\nwould've since they still have no clue about what it means to be a\ndisciple).  Anyway, this rigidity in the clique is beginning to be\nbroken down, but is still there.  So, I must warn against such division\nwithin.  There's enough division without.\n\n>Thanks for your opinions in advance!\n>\n>Maarten\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7307, "properties": {"category": "misc.forsale", "text": "From: chenmin@sage.cc.purdue.edu (zhang chenmin)\nSubject: Cheap airline ticket to L.A. wanted\nKeywords: airline, ticket, wanted\nOrganization: Purdue University\nDistribution: usa\nLines: 7\n\n   Cheap airline ticket to L.A. on April. 21 (tuesday) from Indi. or\n   Chicago and return about in 10 - 14 days wanted.  \n\n   Please phone (317) - 743 - 6985 or mail to\n   chenmin@sage.cc.purdue.edu\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7308, "properties": {"category": "rec.sport.baseball", "text": "Subject: McRae is (Re: Torre: The worst manager?)\nFrom: scott@mccall.com (Scott D. Davis)\nReply-To: scott@mccall.com (Scott D. Davis)\nOrganization: The McCall Pattern Co., Manhattan, KS, USA\nNntp-Posting-Host: mis2\nNntp-Posting-User: scott\nLines: 18\n\n\nIn article <16BB1C589.DAK988S@vma.smsu.edu.Ext>, DAK988S@vma.smsu.edu writes:\n>gt7469a@prism.gatech.EDU (Brian R. Landmann) writes:\n>>Joe Torre has to be the worst manager in baseball.\n>>brian, a very distressed cardinal fan.\n>No....Hal McRae is the worst manager in baseball.  I've never seen a guy who\n>can waste talent like he can.  One of the best raw-talent staffs in the league,\n>and he's still finding a way to lose.  I'll be surprised if he makes it through\n>the next 2 weeks, unless drastic improvement is made.\n> \nKC(?) news was doing a report on that.  They said that McRae is\nreally a batting coach and not a manager.  But for some reason\nhe took the job.  Whatever the reason, the Royals need a new\nmanager now...while it is too late.\n--\nScott D. Davis <scott@mccall.com>       The McCall Pattern Company\n(uucp: ...!widener!depot!mccall!scott)\t615 McCall Road\n(800)255-2762, in Kansas (913)776-4041  Manhattan, KS 66502, USA\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7309, "properties": {"category": "rec.autos", "text": "From: bh@anarres.CS.Berkeley.EDU (Brian Harvey)\nSubject: Re: WARNING.....(please read)...\nOrganization: University of California, Berkeley\nLines: 15\nNNTP-Posting-Host: anarres.cs.berkeley.edu\nKeywords: brick, rock,  danger, gun, violent, teenagers\n\nrfelix@netcom.com (Robbie Felix) writes:\n>How about the thousands of kind teenagers who volunteer at local\n>agencies to help children, seniors, the homeless?\n\nHear, hear!  Thanks, Robbie.\n\nYou also don't read that much about violence *against* teenagers, such as\nGeorge Bush burying alive tens of thousands of unarmed Iraqi 17-year-olds,\nwho were trying to surrender, with bulldozers.\n\n\nOn the other hand, I think it *is* true, without singling out teenagers\nfor blame, that violence is more socially acceptable than it used to be.\nThose of us who'd like to discourage violence have plenty of work to do\nwith people of all ages.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7310, "properties": {"category": "talk.politics.mideast", "text": "From: Shelomoh*S*ZIENIUK <27916070@PLEARN.BITNET>\nSubject:      WARSAW GHETTO UPRISING 50TH ANNIVERSARY: A Visitor's ABC\nOriginator: tpm@israel.nysernet.org\nReply-To: 27916070@PLEARN.BITNET\nOrganization: Nysernet\nLines: 32\n\n----------------------------Original message----------------------------\n                                                                    D\"SB\n\nMincha, Tish(a Yamim La(Omer, Yom Chamishi, Y\"D b'Nisan ThShN\"G;\nUniversita Varsha b'Varsha, Galut HaMara Meod.\n\nSHALOM ALL!\nThose of You visiting The Ghetto City these days might be\ninterested in the following events timetable  (abridged):\n19:00, Fri., 16th April, '93: Kabbalat Shabbat service at the Nozyk Shul\n                                (6 Twarda Street, Warsaw -- a 10 mins'\n                                walk from the Palace of Science &\n                                Culture: the tallest building in the\n                                city's centre, & the same distance from\n                                the Central Railway Station).\n09:30, Sat., 17th April,  \" : Shacharit L'Shabbat service, Nozyk Shul.\n11:30, Sun., 18th April,  \" : The Fallen Ones Memorial service, Nozyk Shul.\n13:00, Sun., 18th April,  \" : Memorial Ceremony at the Jewish Cemetery\n                                (Okopowa Street, Warsaw).\n18:00, Sun., 18th April,  \" : Official Arts Programme at the Congress Hall\n                                (a building adjacent to the Palace of\n                                Science & Culture, which -- like the Shul\n                                -- is located a quarter's walk from most of\n                                downtown hotels: Bristol, Forum, Victoria,\n                                Europejski, Holiday Inn, Marriott).\n12:00, Mon., 19th April,  \" : Laying of Wreaths at the Ghetto Heros\n                                Monument.\n\nShabbat Shalom UL'Hitraot B'Varsha!\nShelomoh*Slawek*ZIENIUK, student, Univ. of Warsaw (Dept. of Hebrew), Warsaw.\nani shalom v'khi adaber           hema lamilchama: -- Tehillim Q\"K:Z'\nGuest e-mail account: <27916070@plearn.bitnet>\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7311, "properties": {"category": "sci.crypt", "text": "From: langley@dirac.scri.fsu.edu (Randolph Langley)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nDistribution: na\nOrganization: FSU Supercomputer Computations Research Institute\nLines: 8\nIn-reply-to: clipper@csrc.ncsl.nist.gov's message of 16 Apr 93 15:19:06 GMT\n\n\nGee, I guess they should also have such a repository for house keys,\ncar keys, safety deposit keys, ... :-(\n\nrdl\n--\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7312, "properties": {"category": "comp.graphics", "text": "From: mlee@eng.sdsu.edu (Mike Lee)\nSubject: MPEG for x-windows MONO needed.\nOrganization: San Diego State University Computing Services\nLines: 4\nNNTP-Posting-Host: eng.sdsu.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nHello, and thank you for reading this request.  I have a Mpeg viewer for x-windows and it did not run because I was running it on a monochrome monitor.  I need the mono-driver for mpeg_play.   \n\nPlease post the location of the file or better yet, e-mail me at mlee@eng.sdsu.edu.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7313, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ebosco@us.oracle.com (Eric Bosco)\nSubject: Ram boards on a 486??\nNntp-Posting-Host: monica.us.oracle.com\nReply-To: ebosco@us.oracle.com\nOrganization: Oracle Corp., Redwood Shores CA\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\nLines: 27\n\n\nHello,\n\n\tI have a 486sx25 ISA machine with Pheonix BIOS.  Currently I have  \n8 megabytes of RAM installed via eight 1 MG SIMMS on the motherboard: ie.  \nboth banks are full, and there is no space for more SIMMS.  I am thinking  \nof running OS2 on my machine and Possibly Linux with X windows, and I know  \nthat more RAM would be helpful.  However with SIMMS, the only solution I  \ncan see is to sell my 8 Megs for about $180, and by 4 4mg SIMMS for about  \n$400 used. Apart from the fact that I can't afford the price right now,  \nthe entire process of selling RAM and buying it used probably means that  \nthe machine might be down for a number of days which I would rather  \navoid...\n\nSo my question is, do the AT RAM boards that plug into a free slot work  \nwell with a 486 ISA machine. I have seen some being sold used for about  \n$90 with 4 Mg with space for another 4Mg's.  If these boards do work, how  \ndo they do it?  Is a device driver needed, or will the BIOS pickup the  \nextra RAM as it does with the SIMMS on the mother board? I know that the  \nISA expansions slots are 16-bits and 486 SIMM memory is 32 bits, so  \nprobably all of this is just wishful thinking... However any help is truly  \nappreciated.\n\n-Eric\n\nebosco@us.oracle.com\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7314, "properties": {"category": "rec.motorcycles", "text": "From: meb4593@galileo.rtn.ca.boeing.com (Michael Bain)\nSubject: What about No-Fault?\nOrganization: Boeing Commercial Airplane Group, Seattle\nLines: 14\n\n\nInsurance companies sure seem to go for No-Fault coverage.  Since the\nmajority of accidents are the cagers' fault, doesn't this imply that we\nwould have to pay much higher rates under a No-Fault system?\n\nWith a cars-only system, it seems to make sense on the surface: take the\nlegal costs out of the system.  But it looks like motorcyclists would\nget screwed.\n\n\n-- \nMichael \"Chuck\" Bain                       meb4593@icdfs.ca.boeing.com  \n----------------------------------------------------------------------\n\t\t     \"Semi-Loud Pipes Save Lives\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7315, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dleonard@wixer.bga.com (Dale Leonard)\nSubject: Trade Mac SE system for Color Mac???\nArticle-I.D.: wixer.1993Apr16.181557.11264\nOrganization: Real/Time Communications\nLines: 31\n\nOk I want to get a color Mac I don't care if it is an LC or a Mac II or\nwhat but I want to go to a color machine.  I'd prefer to trade my\npresent Mac SE system plus some cash or other equipment for the color\nsystem as right now I'm not full of the $$$ to buy a color system\noutright.\nHere's what my Mac SE system has...\n\nMac SE 4/20 with internal 800K drive\n20 Meg external\nExternal 800K drive\nImageWriter II with 4 color ribbon\n\nStuff that can go with it......\nI've got 3 modems and I'd be willing to give 1 of the 9600's and the\n2400 with the system\n\nMultiTech Multimodem II (9600 data/fax)\nU.S. Robotics Sportster (9600 data)\nMicrocom QX/12K         (normally will connect at only 2400 as highest\nbut it will do faster if connected to another Microcom)\n\nThe USR and the MultiTech are both brand-new\n\nIf interested send me e-mail at dleonard@wixer.bga.com\n\n\n-- \n| Primary:                 | Judy's Stamps (Misc. topical stamps. From Dogs..|\n| dleonard@wixer.bga.com   | to cats to baseball and many many other subjects|\n| Secondary:               | For stamp information call Tony Leonard at......|\n| dleonard@wixer.cactus.org| (512) 837-0022 This is a business only number!!!| \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7316, "properties": {"category": "talk.politics.guns", "text": "From: nagle@netcom.com (John Nagle)\nSubject: Re: Gov't break-ins (Re: 60 minutes)\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 9\n\naj336@cleveland.Freenet.Edu (Pat Weber) writes:\n>>Ever notice that people in these cases are always described by clever\n>>handles such as \"eccentric\", \"religious wackos\", \"gun nuts\", \"cultists\",\n>>\"survivalists\", etc. so the general public will *not* identify with them?\n\n       The San Jose Mercury News described him as \"a 61-year old retired\nchemical engineer\".\n\n\t\t\t\t\tJohn Nagle\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7317, "properties": {"category": "soc.religion.christian", "text": "From: aaronc@athena.mit.edu (Aaron Bryce Cardenas)\nSubject: Re: The arrogance of Christians\nOrganization: Massachusetts Institute of Technology\nLines: 45\n\nnews@cbnewsk.att.com writes:\n>Arrogance is arrogance.  It is not the result of religion, it is the result\n>of people knowing or firmly believing in an idea and one's desire to show\n>others of one's rightness.  I assume that God decided to be judge for our\n>sake as much as his own, if we allow him who is kind and merciful be the \n>judge, we'll probably be better off than if others judged us or we judged \n>ourselves.               ^^^^^^ ^^^      ^^                     ^^ ^^^^^^\n ^^^^^^^^^\n1 Cor 11:31-32 \"But if we judged ourselves, we would not come under judgment. \nWhen we are judged by the ^^^^^^ ^^^^^^^^^ Lord, we are being discipled so\nthat we will not be condemned with the world.\"\n\n1 Cor 5:3 \"Even though I am not physically present, I am with you in spirit.\nAnd I have already passed judgment on the one who did this, just as if I were\npresent.\"          ^^^^^^ ^^^^^^^^\n\n1 Cor 2:15-16 \"The spiritual man makes judgments about all things, but he\nhimself is not     ^^^^^^^^^ subject to any man's      ^^^ judgement:  'For\nwho has known the mind of the Lord that he may instruct him?'  But we have the\nmind of Christ.\"\n\nJude :14-15 \"Enoch, the seventh from Adam, prophesied about these men:  'See,\nthe Lord is coming with thousands upon thousands of his holy ones to judge\neveryone, and to   ^^^^ convict all the ungodly of  ^^^ ^^^^ ^^^^ ^^ ^^^^^ all\nthe ungodly acts they have done in the ungodly way, and of all the harsh words\nungodly sinners have spoken against him.'\"\n\nArrogance is a sin.  Although a desire to show others of one's rightness may\nbe a sign of arrogance in some cases,  it may be only a sign that they are\nfollowing the Bible in others:\n\nJude :22-23 \"Be merciful to those who doubt; snatch others from the fire and\nsave them; to others show mercy, mixed with  ^^^^^^ fear -- hating  ^^^^ even\n^^^^ the clothing stained by corrupted flesh.\"\n\n\n>If I find someone arrogant, I typically don't have anything to do with them.  \n\nI hope you don't find me arrogant, then.  This sounds like a bad practice --\nignoring what certain people say because you perceive them as arrogant.\n\nJames 1:19 \"My dear brothers, take note of this:  Everyone should be quick to\nlisten, slow to speak and slow to become angry,\"\n\n- Aaron\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7318, "properties": {"category": "talk.politics.misc", "text": "From: carlos@beowulf.Jpl.Nasa.Gov (Carlos Carrion)\nSubject: Re: The Role of the National News Media in Inflaming Passions\nOrganization: Jet Propulsion Laboratory, Pasadena, CA\nLines: 20\nDistribution: ca\nNNTP-Posting-Host: beowulf.jpl.nasa.gov\n\nIn article <15377@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n>I'm sick of it.  This continual effort to inflame the passions\n>of Americans by playing every trial as completely sexist, racist, \n>or gay-bashing, when the realities are seldom this simple.  This\n>is what happens when a society becomes tied up in ideologies.\n\n\tI have come to the conclusion that the TV stations here in LA\n\tWANT a riot to happen when the verdict comes in.\n\n\tIn a not so subtle way they are preparing their audience for the\n\tworst and even going so far as to want SOMETHING to happen for\n\ttheir viewers with all their commercials and their \"we are ready\n\tfor anything so watch US\" messages...\n\ncarlos.\n\n\t\n\"I as much as any other man am in favor of having the superior position\n assigned to the white race\" - Abraham Lincoln\n      ...ames!elroy!jpl-devvax!{beowulf|pituco}!carlos\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7319, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dpb@sdchemw2.ucsd.edu (Doug P. Book)\nSubject: Re: Stereo sound problem (?) on mac games\nOrganization: UC San Diego Chemistry\nLines: 13\nNNTP-Posting-Host: sdchemw2.ucsd.edu\n\n\nThanks, Steve, for your helpful and informative comments on Mac stereo\nsound.\n\nToo bad some developers aren't addressing the problem.\n\nThis did make my trusty old Mac II superior to the Quadra I replaced\nit with in one way though!  :)\n\n\nThanks,\n\nDoug\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7320, "properties": {"category": "rec.motorcycles", "text": "From: joe@rider.cactus.org (Joe Senner)\nSubject: Re: BMW MOA members read this!\nReply-To: joe@rider.cactus.org\nDistribution: world\nOrganization: NOT\nLines: 9\n\ncdw2t@dayhoff.med.Virginia.EDU (Dances With Federal Rangers) writes:\n]I'm going to buy a BMW just to cast a vote for Groucho.\n\nI thought you were gonna buy a BMW for its superior power and handling...\n\n-- \nJoe Senner                                                joe@rider.cactus.org\nAustin Area Ride Mailing List                            ride@rider.cactus.org\nTexas SplatterFest Mailing List                          fest@rider.cactus.org\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7321, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: My Gun is like my American Express Card\nDistribution: usa\n <93104.173826U28037@uicvm.uic.edu\n <1993Apr15.202811.29312@CSD-NewsHost.Stanford.EDU>\nLines: 28\n\nIn article <1993Apr15.202811.29312@CSD-NewsHost.Stanford.EDU>,\nandy@SAIL.Stanford.EDU (Andy Freeman) says:\n>\n>>I have been at a shooting range where\n>>gang members were \"practicing\" shooting.\n>\n>How do \"we\" know that they were gang members and not undercover cops\n>or even law-abiding menacing minorities.  BTW - Why the sneer quotes?\n>\n\"We\" know because the area that the gun shop/shooting range is in is right on\nthe border of the west side of Chicago.  That is a gang infested area.  There\nare many, many bad things going on in that area.  Also, I have several friends\nthat live very close to that area who have had problems with some of these\nfolks.  By the way, where did I say that they were minorities?  Do you think\nthat only minorities have gangs?  Not so.  As far as the quotes are concerned\nit was totally obvious that they weren't just practicing for marksmanship.  I\ndon't know about you but I have never seen anyone else practice marksmanship by\ntaking their gun out of their coat as fast as possible and start shooting.  If\nyou would have been there Andy it would've been obvious to you too.  Of course\nit might not have been.  Who knows.  All I do know is that I was there, I live\nhere and I know that they were gang bangers.  When you live here long enough it\nbecomes pretty easy to spot them via gang colors, gang signs, etc.  One last\nthing.  My sister is a social worker.  She makes it her point to find these\nthings out (gang signs, colors, etc) because it is in her best interest to do\nso.  She is nice enough to let me know these things so I can watch out for\nmyself as I live right on the border of the west side of the city. Enough said.\n\nJason\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7322, "properties": {"category": "rec.autos", "text": "From: c23st@kocrsv01.delcoelect.com (Spiros Triantafyllopoulos)\nSubject: Re: top 10 reasons why i love CR (not for the humor impaired)\nDistribution: na\nOrganization: Delco Electronics Corp.\nLines: 21\n\nIn article <C4wJGq.A40@constellation.ecn.uoknor.edu> callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>No. At six years, you are nearing the end of the design life of the\n>vehicle, when everything should be breaking. At that point, the\n>driving habits make more difference than the actual reliability\n>of the vehicle, so the data becomes unreliable for drawing conclusions,\n\nBad driving habits can damage a car in a couple of months, not 6 years.\n\nIf that were not the case, everyone would be driving fleet rental re-solds...\n\nAnd while you are considering things (factors in stat terms), how about\ncity vs. highway driving ratios, owner vs. dealer service, extreme weather\nor environment, adherence (sp?) to maintenance schedules, whether the car\nhas ever been in an accident, number of different drivers of the same car\nin a family, whether the car is garaged, warmed up, ...\n\nSpiros\n-- \nSpiros Triantafyllopoulos                    c23st@kocrsv01.delcoelect.com\nSoftware Technology, Delco Electronics       (317) 451-0815\nGM Hughes Electronics, Kokomo, IN 46904      [A Different Kind of Disclaimer]\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7323, "properties": {"category": "misc.forsale", "text": "Organization: Central Michigan University\nFrom: Matthew S. Bailey <32BDZWC@CMUVM.CSV.CMICH.EDU>\nSubject: FOR SALE: Apple IIgs\nDistribution: usa\nLines: 17\n\n\nApple IIgs\nImagewriter II COLOR printer\nColor RGB monitor\n3.5\" DRIVE\n5.25\" drive\nkeyboard\nMouse\nlots of disks\nsome applications\nmost manuals\n\nAnd My utmost gratification for only 650.00 or BO\n\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7324, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Re: WH proposal from Police point of view\nIn-Reply-To: strnlght@netcom.com's message of Mon, 19 Apr 1993 05:46:03 GMT\nReply-To: pmetzger@lehman.com\nOrganization: Lehman Brothers\nLines: 16\n\n\nIn article <strnlghtC5puor.704@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n\n   There has been extensive discussion in the eff forum, for example, about\n   inadmissible taps being used to develop information that could then lead to\n   admissible evidence.  This might put a stop to such things, which must from\n   time to time be simple fishing expeditions.\n\nFar more likely, these things will continue to be done no matter what\nassurances we are given. \"Key Escrow\" is likely going to prove to be a\njoke.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.346+0000", "event": "documents", "entityId": 7325, "properties": {"category": "talk.politics.misc", "text": "From: decay@cbnewsj.cb.att.com (dean.kaflowitz)\nSubject: Re: I thought commercial Advertising was Not allowed\nOrganization: AT&T\nDistribution: na\nLines: 65\n\nIn article <C50sMA.3GK@voder.nsc.com>, matt@galaxy.nsc.com (Matt Freivald x8043) writes:\n> \n> \n> In article 164871 in talk.politics.misc, margoli@watson.ibm.com \n> (Larry Margolis) writes:\n> \n> >>I would suggest that legal precedent defines a human being (i.e., a person\n> >>whose rights are protected by the Constitution and the law) as someone with\n> >>a functioning brain.\n> \n> >No, if you want to use legal precedent, you should take a look at the\n> >Model Penal Code, on which many states base their criminal code:\n> \n> My apologies if I was unclear; I was not trying to start a statutory \n> debate, since there are many (in some cases conflicting) statutes on\n> the books.  I was merely suggesting a paradigm that might make sense\n> for a pro-choicer IMHO.\n\nCite one of these conflicting statutes.  You keep making\nthese assertions, but you haven't supported any of them yet.\nI am speaking of statutes that conflict with the definition\nLarry posted.\n\nWhy did you delete the code that Larry posted?\n\nAlso, the Model Penal Code made perfect sense to me.  Were you,\nperhaps, confused by it?\n\nAlso, I am still looking for your definition.  The one you used\nclearly indicates that a fetus is not a human being.\n\n> >>This is not likely to please either pro-lifers or\n> >>pro-choicers, but it is pretty clear from the legal/medical concept of\n> >>\"brain death\".\n> >\"Brain death\" is a method of deciding when a (known) person is legally\n> >dead; there's no analogous concept of \"brain birth\".\n> I have just coined it.  You may object to the paradigm, but it would\n> make our treatment of human life statutorily consistent.\n\nCircular arguments are usually very consistent.\n\n> >>>>         3) If a parent has the right to choose to not take responsibility\n> >>>>            for their own child, why are there laws and penalties against\n> >>>>            child abandonment?\n> >>>This last question is irrelevant and something of a non sequitur.\n> >>>Can you establish some relevance or even some sense for it?\n> >>If at some point an unborn child is a human being, the parents clearly\n> >>have the same responsibilities toward her as any other parents have toward\n> >>their children.\n> >And no parent can be forced to supply bodily resources toward their children,\n> >even if necessary to save the child's life.\n> There is a confusion here between action and inaction: a parent does not have\n> to run out in front of a bus to save their child's life either, but a parent\n> IS required to feed his children.\n\n\nAgain, your desire for consistency disappears when it does not suit\nyour needs.  The principle of protecting life is abandoned based\non \"action versus inaction.\"  Not much of a principle.  Suddenly\nyou recognize that the claim on bodily resources is dependent\non circumstances other than this principle of life.  That's\na very conevnient principle you have there, Matt.\n\nDean Kaflowitz\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7326, "properties": {"category": "comp.graphics", "text": "Organization: City University of New York\nFrom: <NT3QC@CUNYVM.BITNET>\nSubject: RE: Hot new 3D software\nLines: 16\n\nI don't think speed has been determined, since it has never run on Intel chips.\nBut on the Amiga's Motorola Chips, it was one of the fastest true 'Ray Tracers'\n\nI don't think Impulse would port it over and not take speed into consideration.\n\nIn terms of features, and learning curve... ALL that you stated for 3DS is also\ntrue for Imagine, and lots more... But I'll have to admit that after 3 years of\nuse on the Amiga, the learning curve is very steep. This is due ONLY to the\nmanual. It is realy BAD. However, there is a lot of after market support for\nthis product, including regular 'Tips' articles in many magazines such as \"AVID\nand a great book by Steve Worley called \"Understanding Imagine 2.0\" This book i\nis not just recommened, IT IS A MUST!\n\nI think an important consideration should be price......\n$3000 for 3DS (Not including \"tool\" packages)\nUnder $500 for Imagine complete.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7327, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: For JOHS@dhhalden.no (3) - Last \nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 37\n\nPete Young, on the Tue, 20 Apr 93 08:29:21 GMT wibbled:\n: Nick Pettefar (npet@bnr.ca) wrote:\n\n: : Tsk, tsk, tsk.  Another newbie bites the dust, eh?  They'll learn.\n\n: Newbie. Sorry to disappoint you, but as far as the Internet goes I was\n: in Baghdad while you were still in your dads bag.\nIs this bit funny?\n\n: Most of the people who made this group interesting 3 or 4 years ago\n: are no longer around and I only have time to make a random sweep\n: once a week or so. Hence I missed most of this thread. \nI'm terribly sorry.\n\n: Based on your previous postings, apparently devoid of humour, sarcasm,\n: wit, or the apparent capacity to walk and chew gum at the same time, I\n: assumed you were serious. Mea culpa.\nI know, I know. Subtlety is sort of, you know, subtle, isn't it.\n\n: Still, it's nice to see that BNR are doing so well that they can afford\n: to overpay some contractors to sit and read news all day.\nThat's foreign firms for you.\n\n\n..and a touchy newbie, at that.\n\nWhat's the matter, too much starch in the undies?\n--\n\nNick (the Considerate Biker)   DoD 1069   Concise Oxford   None Gum-Chewer\n\nM'Lud.\n                                   \nNick Pettefar, Contractor@Large.  /~~~\\   \"Teneo tuus intervallum\"\nCuurrently incarcerated at BNR,  {-O^O-}   npet@bnr.ca  '86 BMW K100RS \"Kay\"\nMaidenhead, The United Kingdom.   \\ o /    Pres. PBWASOH(UK),  BS 0002\n                                   (-\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7328, "properties": {"category": "rec.sport.hockey", "text": "From: dvb@ssd.kodak.com (Dave Blaszyk)\nSubject: Re: If You Were Pat Burns ...\nOrganization: Eastman Kodak Company, Rochester NY\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 30\n\nJason Cockroft (jake@rambler.Eng.Sun.COM) wrote:\n\n: What are the Leafs to do?  I am a Leaf supporter and\n: I say the Leafs are going down in four unless there\n: is nothing short of a miracle or a stroke of genenius hits\n\nRoot for another team. ;-)\n\n: Andreychuck and Borchevsky have no business playing against \n: the Wings.  They are too small.  The key to any Leafs success\n: will have to be Clark.  He is the only centre who can have\n..\nAndreychuk, is NOT small, slow and sloth-like, maybe, but he is\nabout 6'4\" and that is not what I would consider as small.\n\nAs an aside, The big AndreyCHUNK as I call him has been known to\ndisappear come playoff time.  This was one of his main problems when\nplaying for Buffalo.\n\n: GO LEAFS !!!\nGO SABRES !!!\n\n\n\n\n--\n      /-//   \\\\-\\Dave Blaszyk\te-mail\t: dvb@snowmass.ssd.kodak.com\n     /-//\\   /\\\\-\\(716) 253-7953  mail\t: Eastman Kodak\n  ///d// \\\\v// \\\\b\\\\\\   \t\t  C Plant, Bldg. 10 MC 39011\n  \\\\\\//   \\//   \\\\///\t\t\t  Rochester, New York 14620\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7329, "properties": {"category": "sci.med", "text": "From: kaminski@netcom.com (Peter Kaminski)\nSubject: Re: Krillean Photography\nLines: 101\nOrganization: The Information Deli - via Netcom / San Jose, California\n\n[Newsgroups: m.h.a added, followups set to most appropriate groups.]\n\nIn <1993Apr19.205615.1013@unlv.edu> todamhyp@charles.unlv.edu (Brian M.\nHuey) writes:\n\n>I am looking for any information/supplies that will allow\n>do-it-yourselfers to take Krillean Pictures.\n\n(It's \"Kirlian\".  \"Krillean\" pictures are portraits of tiny shrimp. :)\n\n[...]\n\n>One might extrapolate here and say that this proves that every object\n>within the universe (as we know it) has its own energy signature.\n\nI think it's safe to say that anything that's not at 0 degrees Kelvin\nwill have its own \"energy signature\" -- the interesting questions are\nwhat kind of energy, and what it signifies.\n\nI'd check places like Edmund Scientific (are they still in business?) --\nor I wonder if you can find ex-Soviet Union equipment for sale somewhere\nin the relcom.* hierarchy.\n\nSome expansion on Kirlian photography:\n\nFrom the credulous side: [Stanway, Andrew, _Alternative Medicine: A Guide\nTo Natural Therapies_, ISBN 0-14-008561-0, New York: Viking Penguin, 1986,\np211, p188.  A not-overly critical but still useful overview of 32\nalternative health therapies.]\n\n  ...the Russian engineer Semyon Kirlian and his wife Valentina during the\n  1950s.  Using alternating currents of high frequency to 'illuminate'\n  their subjects, they photographed them.  They found that if an object\n  was a good conductor (such as a metal) the picture showed only its\n  surface, while the pictures of poor conductors showed the inner\n  structure of the object even if it were optically opaque.  They found\n  too that these high frequency pictures could distinguish between dead\n  and living objects.  Dead ones had a constant outline whilst living ones\n  were subject to changes.  The object's life activity was also visible in\n  highly variable colour patterns.\n\n  High frequency photography has now been practised for twenty years in\n  the Soviet Union but only a few people in the West have taken it up\n  seriously.  Professor Douglas Dean in New York and Professor Philips at\n  Washington University in St Louis have produced Kirlian photographs and\n  others have been produced in Brazil, Austria and Germany.\n\n  Using Kirlian photography it is possible to show an aura around people's\n  fingers, notably around those of healers who are concentrating on\n  healing someone.  Normally, blue and white rays emanate from the fingers\n  but, when a subject becomes angry or excited, the aura turns red and\n  spotty.  The Soviets are now using Kirlian photography to diagnose\n  diseases which cannot be diagnosed by any other method.  They argue that\n  in most illnesses there is a preclinical stage during which the person\n  isn't actually ill but is about to be.  They claim to be able to\n  foretell a disease by photographing its preclinical phase.\n\n  But the most exciting phenomenon illustrated by Kirlian photography is\n  the phantom effect.  During high frequency photography of a leaf from\n  which a part had been cut, the photograph gave a complete picture of the\n  leaf with the removed part showing up faintly.  This is extremely\n  important because it backs up the experiences of psychics who can 'see'\n  the legs of amputees as if they were still there.  The important thing\n  about the Kirlian phantoms though is that the electromagnetic pattern\n  can't possibly represent a secondary phenomenon -- or the field would\n  vanish when the piece of leaf or leg vanished.  The energy grid\n  contained in a living object must therefore be far more significant than\n  the actual object itself.\n\n  [...]\n\n  Kirlian photography has shown how water mentally 'charged' by a healer\n  has a much richer energy field around it than ordinary water...\n\n\nFrom the incredulous side: [MacRobert, Alan, \"Reality shopping; a\nconsumer's guide to new age hokum.\", _Whole Earth Review_, Autumn 1986,\nvNON4 p4(11).  An excellent article providing common-sense guidelines for\nevaluating paranormal claims, and some of the author's favorite examples\nof hokum.]\n\n  The crank usually works in isolation from everyone else in his field of\n  study, making grand discoveries in his basement.  Many paranormal\n  movements can be traced back to such people -- Kirlian photography, for\n  instance.  If you pump high-voltage electricity into anything it will\n  emit glowing sparks, common knowledge to electrical workers and\n  hobbyists for a century.  It took a lone basement crank to declare that\n  the sparks represent some sort of spiritual aura.  In fact, Kirlian\n  photography was subjected to rigorous testing by physicists John O.\n  Pehek, Harry J. Kyler, and David L. Faust, who reported their findings\n  in the October 15, 1976, issue of Science.  Their conclusion: The\n  variations observed in Kirlian photographs are due solely to moisture on\n  the surface of the body and not to mysterious \"auras\" or even\n  necessarily to changes in mood or mental state.  Nevertheless,\n  television shows, magazines, and books (many by famous\n  parapsychologists) continue to promote Kirlian photography as proof of\n  the unknown.\n\n-- \nPeter Kaminski\nkaminski@netcom.com\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7330, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: Dayton Hamfest\nOrganization: Northeastern Ohio Universities College of Medicine\nDistribution: usa\nLines: 33\n\nYes,\n\nTake Interstate I-70 to the route 48 exit.  Go south on 48 about\n2-1/2 miles.  Trun right on Shiloh Springs Road.  The hamvention is\nat the Harrah arena, which is about 1 mile west and on the north\nside of the Road.  Parking at the arena is limited.  Lodging is\nprobably entirely booked-up within a 40 mile radius.  Good luck.\n\n                |                |\n                48               I75\n                |                |\n----------I70----------....---------\n                |                |\n                |                |\n          X     |                |\n(mall)  --------|                |\n   S. Springs   |\n\nIt is possible to park at the mall to the west.  There are shuttle\nbusses running between the arena and the mall.\n\nIf possible, get a Montgomery County, OH map from your local AAA\noffice.  It should be free if you are an AAA member.\n\nIf you don't already have definite plans, now is not a particularly\ngood time to start to think about going to the hamvention.\n\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7331, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: Chera Bekker <bekker@tn.utwente.nl>\nSubject: WANTED: Xterm emulator for windows 3.1\nKeywords: xterm\nReply-To: bekker@tn.utwente.nl\nOrganization: University of Twente, Enschede, The Netherlands\nLines: 14\n\nHello,\n\nI am looking for a Xterm emulator which runs under windows 3.1.\n\nPlease reply via E-mail.\n\nThanks.\n\nChera Bekker\n--\nH.G. Bekker                                E-mail: bekker@tn.utwente.nl\nFaculty of Applied Physics                 Voice: +3153893107\nUniversity of Twente                       Fax:   +3153354003\nThe Netherlands           \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7332, "properties": {"category": "sci.crypt", "text": "From: ngorelic@speclab.cr.usgs.gov.cr.usgs.gov (Noel S. Gorelick)\nSubject: Re: White House Public Encryption Management Fact Sheet\nOriginator: news@essex.ecn.uoknor.edu\nReply-To: ngorelic@speclab.cr.usgs.gov\nNntp-Posting-Host: essex.ecn.uoknor.edu\nOrganization: MercWorks, Denver\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 24\n\nAlan Barrett (barrett@lucy.ee.und.ac.za) wrote:\n> In article <C5LGAz.250@dove.nist.gov>,\n> clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement) writes:\n> \n>> In making this decision, I do\n>> not intend to prevent the private sector from developing, or the\n>> government from approving, other microcircuits or algorithms that\n>> are equally effective in assuring both privacy and a secure key-\n>> escrow system.\n> \n> \"In making this decision, I intend to prevent the private sector from\n> developing, except with the government's approval, other microcircuits\n> or algorithms that are more effective in assuring privacy.\"\n> \n\nDoesn't this just mean that the government might not approve\nsomething for use by other government agencies.  This does not\nsound to me to be any form of threat that Joe User can't develop\nand use his own encryption algorithm.\n\n--\n\"You want it should sing too?\"   | /*  Yeah we got dogs and Valvoline\n  ngorelic@speclab.cr.usgs.gov   |     Its a pretty damn good time.    */\n\"Life is pain. Anyone that tells you different is trying to sell you something\"\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7333, "properties": {"category": "rec.motorcycles", "text": "From: rwert@well.sf.ca.us (Bob Wert)\nSubject: Need advice for riding with someone on pillion\nSummary: Advice wanted for when I take someone on the back of the moto.\nKeywords: advice, pillion, help!\nNntp-Posting-Host: well.sf.ca.us\nOrganization: Whole Earth 'Lectronic Link\nDistribution: na\nLines: 22\n\nI need some advice on having someone ride pillion with me on my 750 Ninja.\nThis will be the the first time I've taken anyone for an extended ride\n(read: farther than around the block  :-).  We'll be riding some twisty, \nfairly bumpy roads (the Mines Road-Mt.Hamilton Loop for you SF Bay Areans).\n\nThis person is <100 lbs. and fairly small, so I don't see weight as too much\nof a problem, but what sort of of advice should I give her before we go?\nI want her to hold onto me  :-)   rather than the grab rail out back, and\nI've heard that she should look over my shoulder in the direction we're\nturning so she leans *with* me, but what else?  Are there traditional\nsignals for SLOW DOWN!! or GO FASTER!! or I HAFTA GO PEE!! etc.???\n\nI really want this to be a positive experience for us both, mainly so that\nshe'll want to go with me again, so any help will be appreciated...\n\nThanks,\n        -Bob-\n-- \nBob Wert        rmw@genie.gene.com        rwert@well.sf.ca.us\nDoD#0302        AMA#510680      '90 Ninja 750R        '89 Mustang 5.0LX\n  ...Seven turns on the highway, Seven rivers to cross,\n     Sometimes you feel like you can fly away, Sometimes you get lost...\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7334, "properties": {"category": "alt.atheism", "text": "Subject: Re: Death Penalty (was Re: Political Athei\nFrom: sham@cs.arizona.edu (Shamim Zvonko Mohamed)\nOrganization: U of Arizona CS Dept, Tucson\nLines: 29\n\nIn article <1993Apr19.151120.14068@abo.fi> MANDTBACKA@FINABO.ABO.FI (Mats Andtbacka) writes:\n>In <930419.125145.9O3.rusnews.w165w@mantis.co.uk> mathew writes:\n>> I wonder if Noam Chomsky is reading this?\n>\n>      I could be wrong, but is he actually talking about outright\n>_government_ control of the media, aka censorship?\n>\n>      If he doesn't, any quick one-stop-shopping reference to his works\n>that'll tell me, in short, what he _does_ argue for?\n\n\"Manufacturing Consent,\" a film about the media. You alternative movie source\nmay have this; or to book it in your local alternative theatre, contact:\n\nFILMS TRANSIT * INTERNATIONAL SALES\nJan Rofekamp\n402 Notre Dame E.\nMontreal, Quebec\nCanada H2Y 1C8\nTel (514) 844-3358 * Fax (514) 844-7298\nTelex 5560074 Filmtransmtl\n\n(US readers: call Zeitgeist Films at 212 274 1989.)\n\n-s\n--\n  Shamim Mohamed / {uunet,noao,cmcl2..}!arizona!shamim / shamim@cs.arizona.edu\n  \"Take this cross and garlic; here's a Mezuzah if he's Jewish; a page of the\n    Koran if he's a Muslim; and if he's a Zen Buddhist, you're on your own.\"\n   Member of the League for Programming Freedom - write to lpf@uunet.uu.net\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7335, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Objective morality (was Re: <Political Atheists?)\nOrganization: sgi\nLines: 24\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1ql7utINN5sg@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >I want to know how this omniscient being is going to perform\n|> >the feat of \"definitely\" terming actions right or wrong.\n|> \n|> If you were omniscient, you'd know who exactly did what, and with what\n|> purpose in mind.  Then, with a particular goal in mind, you sould be\n|> able to methodically judge whether or not this action was in accordance\n|> with the general goal.\n\nBut now you are contradicting yourself in a pretty massive way,\nand I don't think you've even noticed.\n\nIn another part of this thread, you've been telling us that the\n\"goal\" of a natural morality is what animals do to survive.\n\nBut suppose that your omniscient being told you that the long\nterm survival of humanity requires us to exterminate some \nother species, either terrestrial or alien.\n\nDoes that make it moral to do so?\n\njon. \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7336, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Re: DID HE REALLY RISE???\nOrganization: The Claremont Graduate School\nLines: 15\n\nIn article <Apr.13.00.08.56.1993.28439@athos.rutgers.edu>, eggertj@moses.atc.ll.mit.edu (Jim Eggert x6127 g41) writes:\n\n> I disagree with your claim that Jews were not evangelistic (except in\n> the narrow sense of the word).  Jewish proselytism was widespread.\n> There are numerous accounts of Jewish proselytism, both in the New\n> Testament and in Roman and Greek documents of the day.\n\nJim,\n\nPlease feel free to correct me and give me some texts.  As far as I can see the\nonly text which vaugely relates to jewish evangelism is found in Mt. 23:15.\nHowever since this is found only in Mt. it cannot be dated before 90CE which\nmakes it unusefull for understanding Second Temple Judaism. \n\nrandy\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7337, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ado@quince.bbn.com (Buz Owen)\nSubject: Performa 450 internal modem?\nLines: 10\nDistribution: world\nNNTP-Posting-Host: quince.bbn.com\n\nI hear that the Performa 450 is really an LCIII with an internal modem.  Can\nthe modem part be obtained and installed in an LCIII?  It would be nice if it\nwere actually a powerbook internal modem, but that might be too much to hope\nfor.\n\n\n\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7338, "properties": {"category": "rec.motorcycles", "text": "From: terry@prcrs.prc.com (Terry Cunningham)\nSubject: Re: CNN California MC helmet law article\nArticle-I.D.: prcrs.5914\nOrganization: PRC Realty Systems, McLean, VA\nLines: 31\n\n\n  <jlp.733424226@wink>, jlp@blink.att.com (Jon Peticolas(x7058)) writes:\n> \n> Hey! it works. You could present the paragraph above to virtually any member\n> of the non-motorcycling public and they'll buy right into it.\n> \n> Just about any argument you can produce in favor of banning helmetless\n> riding can be used to argue in favor of banning motorcycles.\n> It's just a matter of degree.\n\nThat's absurd! That statement must therefore say that any argument in favor\nof seatbelts or airbags is an argument against automobiles.  Any argument\nfor lifeguards is an argument against swimming.  It says that any agrgument\nin favor of safety precautions is an argument for banning the activity to \nwhich the precautions apply.  Extrapolating to that degree is ridiculous,\nthere wouldn't be any normal human activity left to do; therefore it is\na non-seqitur.\n\nAlso, even though most people do not ride motorcycles, they do boat, sail,\njetski, climb, ski, fly parachute, hang-glide, glide, bungee-jump, bike,\nskate, rollerblade, skateboard, play rugby (ouch), mow the lawn, rewire\nthe basement, operate heavy machinery,  and do a host of other 'dangerous'\nthings that would all be as valid as motorcycling as activities to ban.\nYour little homily applies to all those things, and the general public\nbuying into banning motorcycles without realizing that their activity\nwould be next is unlikely.\n\n-- \n | Terry Cunningham terry@rsi.prc.com | \"Donuts!  Is there anything they     |\n | DoD# 541   Diviner of Dreams       |  can't do? \"           Homer         |\n | HIFI# 2                            |                                      |\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7339, "properties": {"category": "talk.politics.misc", "text": "From: cdm@pmafire.inel.gov (Dale Cook)\nSubject: Re: Sexual Proposition = Sexual Harassment?\nOrganization: WINCO\nLines: 59\n\nIn article <1pkkidINNsrj@senator-bedfellow.MIT.EDU> wdstarr@athena.mit.edu (William December Starr) writes:\n>\n>In article <1993Mar30.181636.22756@pmafire.inel.gov>, \n>cdm@pmafire.inel.gov (Dale Cook) said:\n>\n>> A real world data point: A person has a much stronger legal claim for\n>> harrassment (sexual or otherwise) if they make it clear to the\n>> offender that their behaviour is unwanted.  If the behaviour persists,\n>> harrassment is much easier to demonstrate, due to the fact that the\n>> offender knew that the behaviour was unwanted.\n>\n>No argument here... my original query regarded the question of why the\n>_first_ sexual proposition made by Person A to Person B would be\n>considered to be sexual harassment by some/many people.  (Assuming, of\n>course, that there does not exist a power relationship between A and B\n>such that the proposition carries strong implications of extortion right\n>from Word One.)\n\nI can only say that those people are wrong. The word harass means to \nirritate or torment persistently; I'd hardly consider one time to fall\nunder the definition of persistent.  Additionally, there is no basis\nto assume the behaviour is unwanted, unlike an illegal proposition.\n>\n>> Of course, I think the original question of offering money for sex is\n>> inarguably harrassment, because the activity is illegal, and could be\n>> presumed to be unwanted by the average citizen.\n>\n>I have to take issue with this viewpoint... given that (a) prostitution\n>is a victimless crime and (b) there are literally millions of Americans\n>who participate in some sort of victimless activities which the state\n>has defined to be criminal (e.g., prostitution, obscenity, gambling,\n>using certain recreational drugs, having non-mercenary sex with persons\n>not one's spouse in certain states, having \"unnatural\" sex with people\n>regardless of marital status or exchange of money in certain states,\n>etc.), I'd have to say that the idea that an activity may be presumed to\n>be unwanted by the average citizen merely because it is illegal is the\n>sort of sophistry that only a judge could indulge in with a straight\n>face.  (He said, speaking as a law student who's read his share of\n>judicial opinions in which reality was not only denied but, in fact,\n>actually inverted in order to make the universe conform to the writer's\n>politics.)\n\nI was speaking from a legalistic viewpoint.  What you say is true, but\nthe law, in order to make what little sense it manages to make, has to\nmake *some* assumptions.  Assuming that an illegal activity is unwanted\nby the average citizen I think is reasonable.  Certainly, I would need\na preponderance of evidence on the side of the propositioner that there\nwas a reasonable belief that the proposition was welcome.\n\nThe number of people who participate in \"victimless\" crimes notwithstanding,\nthe fact reamins that under the law, the activity is illegal.  To presume\nthat the proposition *is* welcome simply because a large number of people\nindulge in it is the type of sophistry only a lawyer could indulge in\nwith a straight face.\n--------------------------------------------------------------------------\n...Dale Cook    \"Any town having more churches than bars has a serious\n                   social problem.\" ---Edward Abbey\nThe opinions are mine only (i.e., they are NOT my employer's)\n--------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7340, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Successful Balloon Flight Measures Ozone Layer\nOrganization: Jet Propulsion Laboratory\nLines: 96\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nForwarded from:\nPUBLIC INFORMATION OFFICE\nJET PROPULSION LABORATORY\nCALIFORNIA INSTITUTE OF TECHNOLOGY\nNATIONAL AERONAUTICS AND SPACE ADMINISTRATION\nPASADENA, CALIF. 91109. (818) 354-5011\n\nContact:  Mary A. Hardin\n\nFOR IMMEDIATE RELEASE                              April 15, 1993\n#1506\n\n     Scientists at NASA's Jet Propulsion Laboratory report the\nsuccessful flight of a balloon carrying instruments designed to\nmeasure and study chemicals in the Earth's ozone layer.\n\n     The April 3 flight from California's Barstow/Daggett Airport\nreached an altitude of 37 kilometers (121,000 feet) and took\nmeasurements as part of a program established to correlate data\nwith the Upper Atmosphere Research Satellite (UARS).  \n\n     The data from the balloon flight will also be compared to\nreadings from the Atmospheric Trace Molecular Spectroscopy\n(ATMOS) experiment which is currently flying onboard the shuttle\nDiscovery.\n\n     \"We launch these balloons several times a year as part of an\nongoing ozone research program.  In fact, JPL is actively\ninvolved in the study of ozone and the atmosphere in three\nimportant ways,\" said Dr. Jim Margitan, principal investigator on\nthe balloon research campaign.  \n\n     \"There are two JPL instruments on the UARS satellite,\" he\ncontinued.  \"The ATMOS experiment is conducted by JPL scientists,\nand the JPL balloon research provides collaborative ground truth\nfor those activities, as well as data that is useful in its own\nright.\"\n\n     The measurements taken by the balloon payload will add more\npieces to the complex puzzle of the atmosphere, specifically the\nmid-latitude stratosphere during winter and spring. \nUnderstanding the chemistry occurring in this region helps\nscientists construct more accurate computer models which are\ninstrumental in predicting future ozone conditions.\n\n     The scientific balloon payload consisted of three JPL\ninstruments:  an ultraviolet ozone photometer which measures\nozone as the balloon ascends and descends through the atmosphere;\na submillimeterwave limb sounder which looks at microwave\nradiation emitted by molecules in the atmosphere; and a Fourier\ntransform infrared interferometer which monitors how the\natmosphere absorbs sunlight. \n\n     Launch occurred at about noontime, and following a three-\nhour ascent, the balloon floated eastward at approximately 130\nkilometers per hour (70 knots).  Data was radioed to ground\nstations and recorded onboard.  The flight ended at 10 p.m.\nPacific time in eastern New Mexico when the payload was commanded\nto separate from the balloon.\n\n     \"We needed to fly through sunset to make the infrared\nmeasurements,\" Margitan explained, \"and we also needed to fly in\ndarkness to watch how quickly some of the molecules disappear.\"\n\n     It will be several weeks before scientists will have the\ncompleted results of their experiments.  They will then forward\ntheir data to the UARS central data facility at the Goddard Space\nFlight Center in Greenbelt, Maryland for use by the UARS\nscientists.    \n\n     The balloon was launched by the National Scientific Balloon\nFacility, normally based in Palestine, Tex., operating under a\ncontract from NASA's Wallops Flight Facility.  The balloon was\nlaunched in California because of the west-to-east wind direction\nand the desire to keep the operation in the southwest.\n\n     The balloons are made of 20-micron (0.8 mil, or less than\none-thousandth of an inch) thick plastic, and are 790,000 cubic\nmeters (28 million cubic feet) in volume when fully inflated with\nhelium (120 meters (400 feet) in diameter).  The balloons weigh\nbetween 1,300 and 1,800 kilograms (3,000 and 4,000 pounds).  The\nscientific payload weighs about 1,300 kilograms (3,000) pounds\nand is 1.8 meters (six feet) square by 4.6 meters (15 feet) high.\n\n     The JPL balloon research is sponsored by NASA's Upper\nAtmosphere Research Program and the UARS Correlative Measurements\nProgram.                        \n\n                              #####\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | Being cynical never helps \n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | to correct the situation \n|_____|/  |_|/       |_____|/                     | and causes more aggravation\n                                                  | instead.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7341, "properties": {"category": "comp.graphics", "text": "From: spl@dim.ucsd.edu (Steve Lamont)\nSubject: Re: Finding equally spaced points on a sphere.\nOrganization: University of Calif., San Diego/Microscopy and Imaging Resource\nLines: 326\nNNTP-Posting-Host: dim.ucsd.edu\n\nIn article <4615trd@rpi.edu> deweeset@ptolemy2.rdrc.rpi.edu (Thomas E. DeWeese) writes:\n>  Hello, I know that this has been discussed before.  But at the time\n>I didn't need to teselate a sphere.  So if any kind soul has the code\n>or the alg, that was finally decided upon as the best (as I recall it\n>was a nice, iterative subdivision meathod), I would be very \n>appreciative.\n\nHere is one by Andrew \"Graphics Gems\" Glassner that I got from a\ncollegue of mine.  I think I fiddled with it a little bit to make it\ndeal with whatever bizarre problem I was working on at the time but it\nis known to work.\n\n\t\t\t\t\t\t\tspl\n\t\t\t       - - - -\n/* spheres\n    ASG     9 Feb 85\n    spl Thu Mar  8 17:17:40 EST 1990\n*/\n#include <stdio.h>\n#include <math.h>\n\n#define PI 3.141592654\n\nstruct Point_struct {\n        double x, y, z;\n};\n\nstatic double radius;\nstatic double xorg;\nstatic double yorg;\nstatic double zorg;\n\ndo_sphere( r, freq, x, y, z )\n\n  double r;\n  int freq;\n  double x;\n  double y;\n  double z;\n\n  {\n\n    int pole;\n    double northy, southy, poley;\n    double rtheta, rtheta2, ntheta, ntheta2, magicangle;\n    double theta, thetastart, thisy, den, t;\n    struct Point_node *pnp;\n    struct Point_struct p1, p2, p3, p4, n1, n2, n3, n4, pt;\n\n    radius = r;\n    xorg = x;\n    yorg = y;\n    zorg = z;\n\n/* north pole */\n\n    magicangle = 30.0*PI/180.0;\n    northy = radius*sin(magicangle);\n    southy = -radius*sin(magicangle);\n    for (pole=0; pole<2; pole++) {\n\n      if (pole==0) {\n\n        poley=radius;   \n        thisy=northy; \n        thetastart=0.0; \n\n      }\n      else { \n\n        poley= -radius; \n        thisy=southy; \n        thetastart=36.0; \n\n      }\n      for ( theta = thetastart; theta < 360.0; theta += 60.0 ) {\n\n        rtheta = theta*PI/180.0;\n        rtheta2 = (theta+60.0)*PI/180.0;\n        p1.x = 0.0;  \n        p1.y = poley;  \n        p1.z = 0.0;  \n        p2.x = radius*cos(rtheta);\n        p2.y = thisy;\n        p2.z = radius*sin(rtheta);\n        p3.x = radius*cos(rtheta2);\n        p3.y = thisy;\n        p3.z = radius*sin(rtheta2);\n\n        if (pole==0) {\n\n/* make ring go the other way so normals are right */\n\n          pt.x = p3.x;  \n          pt.y = p3.y;  \n          pt.z = p3.z;  \n          p3.x = p2.x;  \n          p3.y = p2.y;  \n          p3.z = p2.z;  \n          p2.x = pt.x;  \n          p2.y = pt.y;  \n          p2.z = pt.z;  \n\n        }\n\n        den = (p1.x*p1.x)+(p1.y*p1.y)+(p1.z*p1.z);  \n        den = sqrt(den);\n\n        if (den != 0.0) {\n\n          t = radius / den; \n          p1.x *= t;  \n          p1.y *= t;  \n          p1.z *= t;\n\n        }\n\n        den = (p2.x*p2.x)+(p2.y*p2.y)+(p2.z*p2.z);  \n        den = sqrt(den);\n\n        if (den != 0.0) {\n\n          t = radius / den; \n          p2.x *= t;  \n          p2.y *= t;  \n          p2.z *= t;\n\n        }\n\n        den = (p3.x*p3.x)+(p3.y*p3.y)+(p3.z*p3.z);  \n        den = sqrt(den);\n\n        if (den != 0.0) {\n\n          t = radius / den; \n          p3.x *= t;  \n          p3.y *= t;  \n          p3.z *= t;\n\n        }\n\n        subdivide_tri(&p1,&p2,&p3,freq);\n\n      }\n\n    }\n\n/* now the body */\n\n    for (theta=0.0; theta<360.0; theta += 60.0) {\n\n      rtheta = theta*PI/180.0;  \n      rtheta2 = (theta+60.0)*PI/180.0;\n      ntheta = (theta+36.0)*PI/180.0; \n      ntheta2 = (theta+96.0)*PI/180.0;\n      p1.x = radius*cos(rtheta);   \n      p1.y = northy;  \n      p1.z = radius*sin(rtheta);\n      p2.x = radius*cos(rtheta2);  \n      p2.y = northy;  \n      p2.z = radius*sin(rtheta2);\n      p3.x = radius*cos(ntheta);   \n      p3.y = southy;  \n      p3.z = radius*sin(ntheta);\n      p4.x = radius*cos(ntheta2);  \n      p4.y = southy;  \n      p4.z = radius*sin(ntheta2);\n\n      den = (p1.x*p1.x)+(p1.y*p1.y)+(p1.z*p1.z);  \n      den = sqrt(den);\n\n      if (den != 0.0) {\n\n        t = radius / den; \n        p1.x *= t;  \n        p1.y *= t;  \n        p1.z *= t;\n\n      }\n\n      den = (p2.x*p2.x)+(p2.y*p2.y)+(p2.z*p2.z);  \n      den = sqrt(den);\n\n      if (den != 0.0) {\n\n        t = radius / den; \n        p2.x *= t;  \n        p2.y *= t;  \n        p2.z *= t;\n\n      }\n      den = (p3.x*p3.x)+(p3.y*p3.y)+(p3.z*p3.z);  \n      den = sqrt(den);\n      if (den != 0.0) {\n\n        t = radius / den; \n        p3.x *= t;  \n        p3.y *= t;  \n        p3.z *= t;\n\n      }\n      den = (p4.x*p4.x)+(p4.y*p4.y)+(p4.z*p4.z);  \n      den = sqrt(den);\n      if (den != 0.0) {\n\n        t = radius / den; \n        p4.x *= t;  \n        p4.y *= t;  \n        p4.z *= t;\n\n      }\n\n      subdivide_tri(&p1,&p2,&p3,freq);\n      subdivide_tri(&p3,&p2,&p4,freq);\n\n    }\n\n    return;\n\n  }\n\n#define norm_pt(v) { register double r = sqrt( ( ( v )->x * ( v )->x ) + \\\n                                               ( ( v )->y * ( v )->y ) + \\\n                                               ( ( v )->z * ( v )->z ) ); \\\n                     ( v )->x /= r; \\\n                     ( v )->y /= r; \\\n                     ( v )->z /= r; \\\n                    }\n\nsubdivide_tri(p1,p2,p3,a)\n\n  struct Point_struct *p1, *p2, *p3;\n  int a;\n\n  {\n\n    struct Point_struct n1, n2, n3;\n    struct Point_struct p12, p13, p23;\n    double den, t;\n\n    if (a>0) {\n\n      p12.x = (p1->x+p2->x)/2.0;\n      p12.y = (p1->y+p2->y)/2.0;\n      p12.z = (p1->z+p2->z)/2.0;\n      den = (p12.x*p12.x)+(p12.y*p12.y)+(p12.z*p12.z);  \n      den = sqrt(den);\n      if (den != 0.0) {\n\n        t = radius / den;\n        p12.x *= t;  \n        p12.y *= t;  \n        p12.z *= t;\n\n      }\n      p13.x = (p1->x+p3->x)/2.0;\n      p13.y = (p1->y+p3->y)/2.0;\n      p13.z = (p1->z+p3->z)/2.0;\n      den = (p13.x*p13.x)+(p13.y*p13.y)+(p13.z*p13.z); \n      den = sqrt(den);\n      if (den != 0.0) {\n\n        t = radius / den;\n        p13.x *= t;  \n        p13.y *= t;  \n        p13.z *= t;\n\n      }\n      p23.x = (p2->x+p3->x)/2.0;\n      p23.y = (p2->y+p3->y)/2.0;\n      p23.z = (p2->z+p3->z)/2.0;\n      den = (p23.x*p23.x)+(p23.y*p23.y)+(p23.z*p23.z);  \n      den = sqrt(den);\n      if (den != 0.0) {\n\n        t = radius / den;\n        p23.x *= t;  \n        p23.y *= t;  \n        p23.z *= t;\n\n      }\n      subdivide_tri(p1,  &p12,&p13,a-1);\n      subdivide_tri(&p12, p2, &p23,a-1);\n      subdivide_tri(&p13,&p23, p3, a-1);\n      subdivide_tri(&p12,&p23,&p13,a-1);\n\n    } else {\n\n      n1.x = p1->x;  \n      n1.y = p1->y;  \n      n1.z = p1->z;  \n      norm_pt(&n1);\n      n2.x = p2->x;  \n      n2.y = p2->y;  \n      n2.z = p2->z;  \n      norm_pt(&n2);\n      n3.x = p3->x;  \n      n3.y = p3->y;  \n      n3.z = p3->z;  \n      norm_pt(&n3);\n\n/* nothing special about this poly */\n\n      printf( \"%f %f %f  %f %f %f\\n\", p1->x + xorg,\n                                      p1->y + yorg,\n                                      p1->z + zorg,\n                                      n1.x, n1.y, n1.z );\n      printf( \"%f %f %f  %f %f %f\\n\", p2->x + xorg,\n                                      p2->y + yorg,\n                                      p2->z + zorg,\n                                      n2.x, n2.y, n2.z );\n      printf( \"%f %f %f  %f %f %f\\n\", p3->x + xorg,\n                                      p3->y + yorg,\n                                      p3->z + zorg,\n                                      n3.x, n3.y, n3.z );\n\n    }\n\n    return;\n\n  }\n-- \nSteve Lamont, SciViGuy -- (619) 534-7968 -- spl@szechuan.ucsd.edu\nSan Diego Microscopy and Imaging Resource/UC San Diego/La Jolla, CA 92093-0608\n\"My other car is a car, too.\"\n                 - Bumper strip seen on I-805\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7342, "properties": {"category": "sci.med", "text": "From: davallen@vms.macc.wisc.edu\nSubject: Re: Barbecued foods and health risk\nOrganization:  University of Wisconsin Academic Computing Center\nDistribution:  world\nLines: 88\n\nIn article <79738@cup.portal.com>, mmm@cup.portal.com (Mark Robert Thorson) writes...\n\n>This reminds me of the last Graham Kerr cooking show I saw.  Today he\n>smoked meat on the stovetop in a big pot!  He used a strange technique\n>I'd never seen before.\n> \n>He took a big pot with lid, and placed a tray in it made from aluminum foil.\n>The tray was about the size and shape of a typical coffee-table ash tray,\n>made by crumpling a sheet of foil around the edges.\n> \n>In the tray, he placed a couple spoonfuls of brown sugar, a similar\n>quantity of brown rice (he said any rice will do), the contents of two\n>teabags of Earl Grey tea, and a few cloves.\n> \n>On top of this was placed an ordinary aluminum basket-type steamer, with\n>two chicken breasts in it.  The lid was put on, and the whole assembly\n>went on the stovetop at high heat for 10 or 12 minutes.\n> \n>Later, he removed what looked like smoked chicken breasts.  What surprises\n>and concerns me are:\n> \n>1)  No wood chips.  Where does the smoke flavor come from?\n> \n>2)  About 5 or 10 years ago, I remember hearing that carmel color\n>    (obtained by caramelizing sugar -- a common coloring and flavoring\n>    agent) had been found to be carcinogenic.  I believe they injected\n>    it under the skin of rats, or something.  If the results were conclusive,\n>    caramel color would not be legal in the U.S., yet it is still being\n>    used.  Was the initial research result found to be incorrect, or what?\n> \n>3)  About 5 or 10 years ago, I remember Earl Grey tea being implicated\n>    as carcinogenic, because it contains oil of bergamot (an extract\n>    from the skin of a type of citrus fruit).  Does anyone know whatever\n>    happened with that story?  If it were carcinogenic, Earl Grey tea\n>    could not have it as an additive, yet it apparently continues to do\n>    so.\n> \n>WRT natural wood smoke (I've smoking a duck right now, as it happens),\n>I've noticed that a heavily-smoked food item will have an unpleasant tangy\n>taste when eaten directly out of the smoker if the smoke has only recently\n>stopped flowing.  I find the best taste to be had by using dry wood chips,\n>getting lots of smoke right up at the beginning of the cooking process,\n>then slowly barbequing for hours and hours without adding additional wood chips.\n> \n>My theory is that the unpleasant tangy molecules are low-molecular weight\n>stuff, like terpenes, and that the smoky flavor molecules are some sort\n>of larger molecule more similar to tar.  The long barbeque time after\n>the initial intensive smoke drives off the low-molecular weight stuff,\n>just leaving the flavor behind.  Does anyone know if my theory is correct?\n> \n>I also remember hearing that the combustion products of fat dripping\n>on the charcoal and burning are carcinogenic.  For that reason, and because\n>it covers the product with soot and some unpleasant tanginess, I only grill\n>non-drippy meats like prawns directly over hot coals.  I do stuff like this\n>duck by indirect heat.  I have a long rectangular Weber, and I put the coals\n>at one end and the meat at the other end.  The fat drops directly on the\n>floor below the meat, and next time I use the barbeque I make the fire\n>in that end to burn off the fat and help ignite the coals.\n> \n>And yet another reason I've heard not to smoke or barbeque meat is that\n>smoked cured meat, like pork sausage and bacon, contains\n>nitrosamines, which are carcinogenic.  I'm pretty sure this claim actually\n>has some standing, don't know about the others.\n> \n>An amusing incident I recall was the Duncan Hines scandal, when it was\n>discovered that the people who make Duncan Hines cake mix were putting\n>a lot of ethylene dibromide (EDB) into the cake mix to suppress weevils.\n>This is a fumigant which is known to be carcinogenic.\n>The guy who represented the company in the press conference defended\n>himself by saying that the risk from eating Duncan Hines products every day\n>for a year would be equal to the cancer risk from eating two charcoal-\n>broiled steaks.  What a great analogy!  When I first heard that, my\n>immediate reaction was we should make that a standard unit!  One charcoal\n>broiled steak would be equivalent to 0.5 Duncans!\n\nI don't understand the assumption that because something is found to\nbe carcinogenic that \"it would not be legal in the U.S.\".  I think that\nnaturally occuring substances (excluding \"controlled\" substances) are\npretty much unregulated in terms of their use as food, food additives\nor other \"consumption\".  It's only when the chemists concoct (sp?) an\ningredient that it falls under FDA regulations.  Otherwise, if they \nreally looked closely they would find a reason to ban almost everything.\nHow in the world do you suppose it's legal to \"consume\" tobacco products\n(which probably SHOULD be banned)?\n\n\tDave Allen\n\tSpace Science & Engr. Ctr.\n\tUW-Madison\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.347+0000", "event": "documents", "entityId": 7343, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: some thoughts.\nOrganization: Cookamunga Tourist Bureau\nLines: 24\n\nIn article <bissda.4.734849678@saturn.wwc.edu>, bissda@saturn.wwc.edu (DAN\nLAWRENCE BISSELL) wrote:\n> \n> \tFirst I want to start right out and say that I'm a Christian.  It \n> makes sense to be one.  Have any of you read Tony Campollo's book- liar, \n> lunatic, or the real thing?  (I might be a little off on the title, but he \n> writes the book.  Anyway he was part of an effort to destroy Christianity, \n> in the process he became a Christian himself.\n\nSeems he didn't understand anything about realities, liar, lunatic\nor the real thing is a very narrow view of the possibilities of Jesus\nmessage.\n\nSigh, it seems religion makes your mind/brain filter out anything\nthat does not fit into your personal scheme. \n\nSo anyone that thinks the possibilities with Jesus is bound to the\nclassical Lewis notion of 'liar, lunatic or saint' is indeed bound\nto become a Christian.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7344, "properties": {"category": "rec.motorcycles", "text": "From: raible@nas.nasa.gov (Eric Raible)\nSubject: Re: Need advice for riding with someone on pillion\nIn-Reply-To: rwert@well.sf.ca.us's message of 21 Apr 93 01:07:56 GMT\nOrganization: Applied Research Office, NASA Ames Research Center\nReply-To: raible@nas.nasa.gov\nDistribution: na\nLines: 22\n\n\nIn article <C5t759.DsC@well.sf.ca.us> rwert@well.sf.ca.us (Bob Wert) writes:\n\n   I need some advice on having someone ride pillion with me on my 750 Ninja.\n   This will be the the first time I've taken anyone for an extended ride\n   (read: farther than around the block  :-).  We'll be riding some twisty, \n   fairly bumpy roads (the Mines Road-Mt.Hamilton Loop for you SF Bay Areans).\n\nI'd say this is a very bad idea - you should start out with something\nmuch mellower so that neither one of you get in over your head.\nThat particular road requires full concentration - not the sort of\nthing you want to take a passenger on for the first time.\n\nOnce you both decide that you like riding together, and want to do\nsomething longer and more challenging, *then* go for a hard core road\nlike Mines-Mt. Hamilton.\n\nIn any case, it's *your* (moral) responsibility to make sure that she\nhas proper gear that fits - especially if you're going sport\nriding.\n\n- Eric\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7345, "properties": {"category": "alt.atheism", "text": "From: pmoloney@maths.tcd.ie (Paul Moloney)\nSubject: Re: THE POPE IS JEWISH!\nOrganization: Somewhere in the Twentieth Century\nLines: 47\n\nwest@next02cville.wam.umd.edu (Stilgar) writes:\n\n>The pope is jewish.... I guess they're right, and I always thought that\n>the thing on his head was just a fancy hat, not a Jewish headpiece (I\n>don't remember the name).  It's all so clear now (clear as mud.)\n\nAs to what that headpiece is....\n\n(by chort@crl.nmsu.edu)\n\nSOURCE: AP NEWSWIRE\n\nThe Vatican, Home Of Genetic Misfits?\n\nMichael  A. Gillow, noted geneticist, has revealed  some unusual  data\nafter working undercover in  the Vatican for the past 18 years.   \"The\nPopehat(tm) is actually an advanced bone spur.\", reveals Gillow in his\ngroundshaking report. Gillow, who had  secretly  studied the innermost\nworkings of the Vatican since returning from Vietnam in a wheel chair,\nfirst approached the scientific community with his  theory in the late\n1950's.\n\n\"The  whole hat  thing, that was just a cover  up. The  Vatican didn't\nwant the Catholic Community(tm) to realize  their  leader  was hefting\nnearly  8 kilograms of extraneous  bone  tissue on    the  top of  his\nskull.\", notes Gillow in his report. \"There are whole  laboratories in\nthe  Vatican  that experiment with tissue  transplants and bone marrow\nexperiments.  What started as a genetic fluke in the mid 1400's is now\nscientifically engineered and bred for. The whole bone transplant idea\nstarted  in  the  mid   sixties  inspired  by   doctor  Timothy  Leary\ntransplanting deer  bone cells into small white rats.\" Gillow is quick\nto point  out  the  assassination attempt on Pope John Paul II and the\ndisappearance of Dr.  Leary from the public eye.\n\n\"When it becomes time to replace the pope\", says Gillow, \"The old pope\nand the replacement pope are  locked  in a padded  chamber. They  butt\nheads much  like  male yaks  fighting for dominance of the  herd.  The\nvictor emerges and has  earned the privilege of inseminating the choir\nboys.\"\n\n\nP.\n-- \n moorcockpratchettdenislearydelasoulu2iainmbanksneworderheathersbatmanpjorourke\nclive p a u l  m o l o n e y  Come, let us retract the foreskin of misconception\njames trinity college dublin  and apply the wire brush of enlightenment - GeoffM\n brownbladerunnersugarcubeselectronicblaylockpowersspikeleekatebushhamcornpizza \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7346, "properties": {"category": "talk.politics.mideast", "text": "From: C.L.Gannon@newcastle.ac.uk (Space Cadet)\nSubject: Re: To be exact, 2.5 million readers enlightened by Serdar Argic\nNntp-Posting-Host: evenwood\nOrganization: Computing Laboratory, U of Newcastle upon Tyne, UK NE1 7RU.\nLines: dog\n\n\n Andrew Varvel writes:\n>\n>\n> Serdar Argic \n>(a.k.a. Serdar Argic, The Merciful and Compassionate) writes:\n>\n>[Serdar Argic's bountiful, divine, all-knowing, and footnoted \n>wisdom is regrettably omitted for this solemn tribute.]\n>\n>\n>WHERE CAN I JOIN THE SERDAR ARGIC FAN CLUB?  DO I GET A T-SHIRT?\n>\n>--The Friendly Neighborhood Alien--\n>\n>Life just hasn't been the same since David Koresh died...\n\n     ah c'mon, give the guy three days and see what comes up.\n\n     LEO\n\n*--*--*--*--*--*--*--*--*--*--*--*--*--*\n|  DISCLAIMER: it wasn't me, honest,   | email:\n|     it was him, he made me do it!!   | C.L.Gannon@newcastle.ac.uk\n*--*--*--*--*--*--*--*--*--*--*--*--*--*\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7347, "properties": {"category": "comp.windows.x", "text": "From: rgasch@nl.oracle.com (Robert Gasch)\nSubject: Re: Expose Events\nOrganization: Oracle Europe\nLines: 40\nX-Newsreader: TIN [version 1.1 PL8]\n\nI posted about this a while ago but without code excerpts noone was \nable to help me.\n\nThe problem is that main_win.win is doing fine, but when I create \ndetail_win.win, it does not receive it's initial expose events until \nmain_win.win receives an event. Here are the relevent calls:\n\nmain_win.win = XCreateSimpleWindow (mydisplay, DefaultRootWindow(mydisplay),\n                myhint.x, myhint.y, myhint.width, myhint.height,\n                main_win.line_thick, fg, bg);\nXSetStandardProperties(mydisplay, main_win.win, main_win.text,\n                main_win.text, None, argv, argc, &myhint);\nmain_win.gc = XCreateGC (mydisplay, main_win.win, 0, 0);\nXMapRaised (mydisplay, detail_win.win);\nXMapSubwindows (mydisplay, main_win.win);\nThe event mask for main_win is:\n\tPPosition | PSize | StructureNotifyMask | ExposureMask| KeyPressMask | \n\tEnterWindowMask | LeaveWindowMask;\nThe flags are\n\tPPosition | PSize\n\nI then create detail_win.win with the following calls (hints has new values):\ndetail_win.win = XCreateSimpleWindow (mydisplay, DefaultRootWindow(mydisplay),\n                myhint.x, myhint.y, myhint.width, myhint.height,\n                detail_win.line_thick, fg, bg);\nXSetStandardProperties(mydisplay, main_win.win, detail_win.text,\n                detail_win.text, None, argv, argc, &myhint);\ndetail_win.gc = XCreateGC (mydisplay, detail_win.win, 0, 0);\nXMapRaised (mydisplay, detail_win.win);\nEvent Mask and flags are identical to main_win's flags and event mask.\n\n\nIf anybody has any idea why the initial expose events of detail_win.win \nare not received until main_win.win receives an event I'd love to hear \nfrom them. Other that that everything works great so there must be some \ndetail I'm overseeing.\n\nThanks for any tips\n---> Robert\nrgasch@nl.oracle.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7348, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: New Name for the Stanley Cup\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 56\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <1993Apr2.202146.22837@sol.ctr.columbia.edu> phoenix@startide.ctr.columbia.edu (Ali Lemer) writes:\n>\n>Of course we need new position names for those unable to remember the \n>very complicated hockey terminology:\n>\n>Old Name\tNew Name\n>--------\t--------\t\n>\n>Centre\t\tThe Guy in the Middle\n>Left Wing\tThe Guy on the Left\n>Right Wing\tThe Guy on the Right\n>Defenceman\tThe Guy Back There\n>Goaltender\tThe Guy in the Net (or \"cage\", as my mother calls it)\n>Referee\t\tThe Guy with the Whistle\n>Linesman\tThe Guy with the Arms\n>Coach\t\tThe Guy in the Suit\n>GM\t\tThe Head Guy\n>Puck\t\tThe Black Thing\n>Red Line\tThe Line in the Middle\n>Blue Line\tThe Line on the Side\n>Crease\t\tThe Place in front of the Guy in the Net\n>Faceoff Circle\tThe Round Thing Where They Stand\n>Slot or Point\tOver There (must point to accompany term)\n>Bench\t\tThe Place Where They Sit\n>Penalty Box\tThe Place Where They Sit When They're Bad\n\nMr. Bettman\tThe Guy in the Wrong Sport\nMr. Stein\tThe Guy Who Should Be In Charge But Isn't\n\nOf course, we also need new names for the individual awards, and other\nstuff like the President's Cup.\n\nPresident's Cup\t\tThe Trophy Given To the Best Regular-Season Team\nHart winner\t\tThe Most Valuable Player, chosen from the\n\t\t\t\tGuys in the Middle, the Guys on the\n\t\t\t\tRight, the Guys on the Left, the Guys\n\t\t\t\tBack There, and the Guy in the Net,\n\t\t\t\tthough typically given only to the\n\t\t\t\tGuys in the Middle and the Guys on \n\t\t\t\tthe Left and on the Right\nNorris winner\t\tThe Best Guy in the back; or, the Guy who was\n\t\t\t\tawarded for something even though he\n\t\t\t\tis not one of the Guys in the Middle\n\t\t\t\tor on the Left or the Right\n\n...ad nauseum.\n\n:-)\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n\"Next time you go over my head, I'll have yours on a platter.\"\n\t\t\t\t\t\t-- Cmdr. Benjamin Sisko, 1993\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7349, "properties": {"category": "soc.religion.christian", "text": "From: jhpb@sarto.budd-lake.nj.us (Joseph H. Buehler)\nSubject: Re: What WAS the immaculate conception\nOrganization: none\nLines: 21\n\nmaxwell c muir writes:\n\n   Just a quick question. If Mary was Immaculately concieved, so she\n   could be a pure vessel, does this mean that she was without sin\n   and, therefore, the perfect (meaning sinless) female human being?\n   Is this why she is held so highly in the Catholic Church despite\n   it's basically patriarchical structure?\n\nShe was immaculately conceived, and so never subject to Original Sin,\nbut also never committed a personal sin in her whole life.  This was\npossible because of the special degree of grace granted to her by God.\n\nShe is regarded so highly because of her special relationship to God,\nand everything that flows from that relationship.\n\nThe Catholic Church sees her as the new Eve.  (The Fathers in the\nearly Church use this particular figure a lot.)\n\nEve is the mother of all the living in a genetic sense.  Mary is the\nmother of all the living in the order of grace.  As sin came through\nEve, so Grace -- Jesus Christ -- came through Mary.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7350, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Thomas Kephart <kephart@snowhite.eeap.cwru.edu>\nSubject: Re: Thanks Apple: Free Ethernet on my C610!\nOrganization: Case School of Engineering\nLines: 13\nDistribution: world\nNNTP-Posting-Host: b62182.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7E72D2F8001F2E6@b62182.student.cwru.edu>\nX-XXDate: Tue, 6 Apr 93 12:50:55 GMT\n\nIn article <Apr.6.12.05.34.1993.11732@pion.rutgers.edu> Gregory Nelson,\ngnelson@pion.rutgers.edu writes:\n>\tOh, and the screen seems tojump in a wierd way on power-up.\n>I've seen this mentioned by others, so it must be a...feature...\n>\tAnyway, above all, it's fast.  A great machine at a great price!\n\nWell, I saw a few posts on this and asumed that everyone is talking about \nthe new 14\" display... mine does it to... kinda like when I would degauss \nmy old 13\", and since the new one lacks this button, I assume that is \nwhat it is doing... anyone that knows I'd appreciate the info, but it \ndoesn't worry me...\n\n-t\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7351, "properties": {"category": "talk.politics.mideast", "text": "From: karage@scus1.ctstateu.edu (Angelos Karageorgiou Greek and Macedon the only combination)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nNntp-Posting-Host: scsu1.ctstateu.edu\nOrganization: Southern Connecticut State University, New Haven\nLines: 35\n\n\n\tOk. My Aykut., what about the busload of Greek turists that was\ntorched, and all the the people in the buis died. Happened oh, about 5\nyears ago in Instanbul.\n\tWhat about the Greeks in the islands of Imbros and tenedos, they\nare not allowed to have churches any more, instead momama turkey has\nturned the church into a warehouse, I got a picture too.\n\tWhat about the pontian Greeks of Trapezounta and Sampsounta,\nwhat you now call Trabzon and Sampson, they spoke a 2 thousand year alod\nlanguage, are there any left that still speek or were they Islamicised?\n\tBefore we start another flamefest , and before you start quoting\nArgic all over again, or was it somebody else?, please think. I know it\nis a hard thing to do for somebody not equipped , but try nevertheless.\n\tIf Turks in Greece were so badly mistreated how come they\nelected two,m not one but two, representatives in the Greek government?\nHow come they have free(absolutely free) hospitalization and education?\nDo the Turks in Turkey have so much?If they do then you have every right\nto shout, untill then you can also move to Greece and enjoy those\nprivileges. But I forget , for you do study in a foreign university,\nsome poor shod is tiling the earth with his own sweat.\n\tBTW is Aziz Nessin still writing poetry? I'd like to read some\nof his new stuff. Also who was the guy that wrote \"On the mountains of\nTayros.\" ? please respond kindly to the last two questions, I am\ninterested in finding more books from these two people.\n\t\n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nYeian kai Eytyxeian  | The opinions expressed above are nobody else's but\nAngelos Karageorgiou | mine,MINE,MIIINNE,MIIINNEEEE,aaaarrgghhhh..(*&#$$*((+_$%\nLive long & Prosper  | NO CARRIER\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n>     Any and all mail sent to me , can and will be used in any manner        <\n>     whatsoever. I may repost or publicise parts of messages or whole        <\n>     messages. If you disagree, please exercise your freedom of speech       <\n>     and don't send me anything.                                             <\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7352, "properties": {"category": "sci.electronics", "text": "From: sidhu@ee.ualberta.ca (Kenneth Sidhu)\nSubject: Dimming Incand. Lamps\nArticle-I.D.: kakwa.1993Apr6.221848.6569\nReply-To: sidhu@ee.ualberta.ca (Kenneth Sidhu)\nOrganization: University of Alberta Electrical Engineering\nLines: 22\nNntp-Posting-Host: bode.ee.ualberta.ca\n\n\n \n  \n  \nWhat's the latest and greatest way to dim incandescent lamps ?\n\nMarch '93 Circuit Cellar has part one of an article about\ndimming 120VAC lamps, but it seems to lead into phase-\ncontrol as the best method for controlling brightness.\n  I've always hated phase-control for the RFI, buzzing\nfilaments and non-linear adjustment range. I had\nheard that you can modulate the AC line on a cycle by\ncycle basis to get better results. To cut the lamp's\npower to 50% you would givemsay 20 cycles of AC, then\nnothing for another 20 cycles. I wonder if anyone has\ntried this or knows what the pro stuff is using. Any\nadvice is appreciated!\n\nKen\n\n\nemail: sidhu@bode.ee.ualberta.ca\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7353, "properties": {"category": "sci.med", "text": "From: richard@tis.com (Richard Clark)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Trusted Information Systems, Inc.\nLines: 30\nNNTP-Posting-Host: sol.tis.com\n\n>packer@delphi.gsfc.nasa.gov (Charles Packer) writes:\n>\n>>Is there such a thing as MSG (monosodium glutamate) sensitivity?\n>>I saw in the NY Times Sunday that scientists have testified before \n>>an FDA advisory panel that complaints about MSG sensitivity are\n>>superstition. Anybody here have experience to the contrary? \n>\n>>I'm old enough to remember that the issue has come up at least\n>>a couple of times since the 1960s. Then it was called the\n>>\"Chinese restaurant syndrome\" because Chinese cuisine has\n>>always used it.\n>\n\n\tMy blood pressure soars, my heart pounds, and I can't get to sleep\nfor the life of me... feels about like I just drank 8 cups of coffee.\n\n\tI avoid it, and beet sugar, flavor enhancers, beet powder, and\nwhatever other names it may go under. Basicaly I read the ingredients, and\nif I don't know what they all are, I don't buy the product.\n\n\tMSG sensitivity is definately *real*.\n\n\n\n-----------------------Relativity Schmelativity-----------------------------\n Richard H. Clark\t\t\t\tMy opinions are my own, and\n LUNATIK - watch for me on the road...\t\tought to be yours, but under\n It's not my fault... I voted PEROT!\t\tno circumstances are they\n richard@tis.com\t\t\t\tthose of my company...\n-----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7354, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Re: Motto Mania\nLines: 33\n\nmathew writes:\n\n>I prefer Mark-Jason Dominus's suggestion that the motto should be changed to\n>\"Mind your own fucking business\".\n\nIn this era of AIDS, isn't someone's fucking *everyone's* interest?  (semi\n:-))\n\nI propose \"We have no motto.\"\n\nRecently in the glorious state of Maryland (the only state whose state song\nrefers to Abraham Lincoln as a tyrant), people have gotten all wound up over\nthe state motto (which we inherited from the Calverts):\n\n    \"Fatti Maschii, Parole Femine\"\n\nwhich, if you read Italian, says,\n\n    \"Manly deeds, womanly words\"\n\nor something to that effect.  In the state which not so long ago had four\nwomen out of seven representatives, this represents a problem.  The official\nsolution was to change the translation, so now it means:\n\n    \"Strong deeds, gentle words\"\n\nMy personal suggestion was changing it to \"walk softly and carry a big\nstick.\"\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7355, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Boston University Physics Department\nLines: 60\n\nIn article <11847@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>In article <115670@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n\n>>In article <11826@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>>I am refuting nothing but simply telling you what I see, which is\n>>childish propaganda and nothing to be refuted. BCCI was not \n>>an Islamic bank, so this post has nothing to do with Islamic banks. \n>>I am tiring of this infantile garbage, so I simply evaluated it\n>>as such.\n\n>>>  Could you maybe flesh it out just a bit?  Or did I miss the full\n>>>  grandeur of it's content by virtue of my blinding atheism?\n\n>>You may be having difficulty seeing the light because you\n>>have your head up your ass. I suggest making sure this is \n>>not the case before posting again.\n\n>  It's time for your lesson in debate, Gregg.\n\nYeah, right.\n\n>Begin included text:\n>From vice!news.tek.com!uunet!psinntp!wrldlnk!usenet Sun Apr 18 10:01:11 PDT 1993\n\n>I noticed a post on this topic in soc.religion.islam.   And since the topic\n>of the BCCI being/not being an Islamic bank has come up, I have left in the\n>one mention of the BCCI bank called \"How BCCI adapted the Koran rules of\n>banking\" from this bibliography.\n\n\n>Bennett, Neil.  \"How BCCI adapted the Koran rules of banking\".  The \n>Times.  August 13, 1991.\n\nSo, let's see. If some guy writes a piece with a title that implies\nsomething is the case then it must be so, is that it?\n\n>  This is how you support a position if you intend to have anyone\n>  respect it, Gregg.  Any questions?  And I even managed to include\n>  the above reference with my head firmly engaged in my ass.  What's\n>  your excuse?\n\nThis supports nothing. I have no reason to believe that this is \npiece is anything other than another anti-Islamic slander job.\nI have no respect for titles, only for real content. I can look\nup this article if I want, true. But I can tell you BCCI was _not_\nan Islamic bank. Seeing as I'm spending my time responding to\npropaganda (in responding to this little sub-thread) I really\ndon't feel a deep need to do more than make statements to the\neffect that the propaganda is false. If someone wants to discuss\nthe issue more seriously then I'd be glad to have a real discussion,\nproviding references, etc.\n\n\nGregg\n\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7356, "properties": {"category": "talk.politics.mideast", "text": "From: astein@nysernet.org (Alan Stein)\nSubject: Re: Legality of the jewish purchase\nOrganization: NYSERNet, Inc.\nLines: 7\n\nWhile one may question the motives of the Arabs who sold land to Jews,\noften while publicly criticizing the sale of land to Jews, it was the\nJews and not the Arabs who were taken advantage of, as the prices the\nJews paid for barren land was many times the price fertile land was\nbeing sold for in the United States at the same time.\n-- \nAlan H. Stein                     astein@israel.nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7357, "properties": {"category": "rec.autos", "text": "From: Harv@cup.portal.com (Harv R Laser)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: The Portal System (TM)\n  <93Apr15.165432.44598@acs.ucalgary.ca> <C5JnK3.JKt@news.cso.uiuc.edu>\n  <1993Apr15.223029.23340@cactus.org>\nLines: 25\n\n>\n>No. reverse lights are to warn others that you are backing up. They\n>aren't bright enough to (typically) see by without the brake and tail\n>lights. \n>\n>\n>Craig\n\nPerhaps instead of this silly argument about what backup lights\nare for, couldn't we agree that they serve the dual purpose of\nletting people behind your car know that you have it in reverse\nand that they can also light up the area behind your car while\nyou're backing up so you can see?\n\nBackup lamps on current models are much brighter than they used\nto be on older cars. Those on my Taurus Wagon are quite bright\nenough to illuminate a good area behind the car, and they're \nMUCH brighter than those on my earlier cars from the 60s and 70s. \n\nInsofar as Vettes having side backup lights, look at a '92 or '93\nmodel (or perhaps a year or two earlier too) and you'll see\nred side marker lamps and white side marker lamps both near the\ncar's hindquarters.  Those aren't just white reflectors. \n\nHarv\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7358, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Re: Once tapped, your code is no good any more.\nDistribution: na\nOrganization: ClariNet Communications Corp.\nLines: 41\n\nIn article <tcmayC5M2xv.JEx@netcom.com> tcmay@netcom.com (Timothy C. May) writes:\n>Getting the court order to reveal the key *also* makes decipherable\n>all *past* conversations (which may be on tape, or disk, or whatver),\n>as I understand the proposal. I could be wrong, but I've seen no\n>mention of \"session keys\" being the escrowed entities.\n\nTrue in theory.  In practice?  The technology of cellular phones will\nprobably be spread spectrum and quite difficult to record the crypttext\nwithout the key.  If the frequency path depends on they key, as I\nunderstand it to, it *could* be made effectively impossible to record.\n\nOnce it hits land you can record it if you have telco access.  The\ntelco isn't supposed to give that without a warrant.  That's the rule\ntoday.\n\nBut even so, the evidence would not be admissible, I think, unless the\njudge so ordered.  I think that even interception of the crypttext\nwithout a warrant would be illegal.   Cops can't record today's plain\ncellular calls and then ask a judge, \"Hey, can we have permission to\nlisten to those tapes?\" can they?\n\n>worse, of course, if the government then uses this \"Clinton Clipper\"\n>to argue for restrictions on unapproved encryption. (This is the main\n>concern of most of us, I think. The camel's nose in the tent, etc.)\n\nYes, that is a major concern, but I think that they think they can\nwin just by having 99.5% of the USA use this system.  They don't even\nhave to care about the cautious .5% that's left.  They don't catch the\nreally smart crooks anyway.   John Gotti, who would have to be retarded\nnot to realize he was likely to be wiretapped, glibly chatted away\non his tapped phone about murder plans.  That's why he's in jail now.\nHard to believe, but true.\n\n\nThis scheme can succeed without laws forbidding more, which people would\nfight a lot harder.  They like this enough that they are dropping the so\ncalled \"Digital Telephony\" proposal, according to rumours.  However the\nmeaning of that is complex, since they still want to get at the crypttext\non telco systems, and that requires a bit of work.\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7359, "properties": {"category": "soc.religion.christian", "text": "From: schnitzi@osceola.cs.ucf.edu (Mark Schnitzius)\nSubject: Re: Atheists and Hell\nOrganization: University of Central Florida\nLines: 33\n\natterlep@vela.acs.oakland.edu (Cardinal Ximenez) writes:\n\n>1) Atheists believe that when they die, they die forever.\n\n>2) A god who would condemn those who fail to believe in him to eternal death\n>   is unfair.\n\n>  I don't see what the problem is!  To Christians, Hell is, by definition, \n>eternal death--exactly what atheists are expecting when they die.  \n\nWell, I think that most Christians believe that your conciousness will\nsomehow continue on after your 'physical' death, which contradicts what\nmost atheists (myself included) believe, namely that your conciousness,\nbeing contained in your brain, dies when your brain dies.\n\n>There's no\n>reason Hell has to be especially awful--to most people, eternal death is bad\n>enough.\n\nI fear the pain that often comes with the process of dying, but since I\nwon't be around to worry about it, I don't fear eternal death.\n\n>  Literal interpreters of the Bible will have a problem with this view, since\n>the Bible talks about the fires of Hell and such.  \n\nThis is something I've always found confusing.  If all your nerve endings\ndie with your physical body, why would flame hurt you?  How can one \"wail\nand gnash teeth\" with no lungs and no teeth?\n\n\nMark Schnitzius\nschnitzi@eola.cs.ucf.edu\nUniversity of Central Florida\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7360, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: penev@rockefeller.edu (Penio Penev)\nSubject: Re: 486/66DX2 (ISA) vs. 486/50DX2 (EISA)\nReply-To: penev@venezia.rockefeller.edu\nOrganization: Rockefeller University\nX-Newsreader: TIN [version 1.1 PL8]\nX-Posted-From: venezia.rockefeller.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 14\n\nOn Fri, 16 Apr 1993 10:00:19 GMT Jesper Honig Spring (spring@diku.dk) wrote:\n\n| Can anyone give me their opinion on which system has got the best overall\n| system performance;\n\n| 486/66DX2 with ISA-BUS or\n| 486/50DX2 with EISA-BUS\n\n468DX2/66 EISA/VESA. Royal, among others, is celling such a system for $2010.\n\n--\nPenio Penev  x7423 (212)327-7423 (w) Internet: penev@venezia.rockefeller.edu\n\nDisclaimer: All oppinions are mine.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7361, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: Spark Plug question?\nDistribution: na\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 21\n\nIn article <mgolden.733994052@cwis> mgolden@cwis.unomaha.edu (Brian Golden) writes:\n>  The nice thing about REAL platinum plugs is that you don't have to change\n>them very often at all.  (I think like 50,000 miles!!)  They might cost $10\n>each, but they would save for themselves in the long run.\n\nMy T-Bird SC's manual says to replace the platinum plugs every 60,000mi.\nWal-Mart has Autolite platinum plugs for $2.00 each. Are these \"real\"\nplatinum plugs? (I had Bosch platinums in my '80 Fiesta and my dad\nhad 'em in his '84 Bronco--note the keyword \"had.\" They didn't last\nvery long (much less than 50,000mi) before they had to be replaced.\nI agree that they weren't the greatest.)\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7362, "properties": {"category": "sci.med", "text": "From: gmiller@worldbank.org (Gene C. Miller)\nSubject: Immunotherapy for Recurrent Miscarriage\nOrganization: worldbank.org\nLines: 17\n\n\n     Following a series of miscarriages, my wife was given a transfusion of\nmy white cells. (The theory as I understand it is that there is some kind\nof immune blocking that prevents the body from attacking the pregnancy as\nit normally would a \"foreign\" body. Where this blocking is deficient, the\nbody evicts the \"intruder\", resulting in a miscarriage. The white cells\napparently enhance the blocking capability.) Following the transfusion, she\nsuccessfully carried the next pregnancy to term, and Jake is now an active\n9 month-old who cannot wait to walk.\n     We're now thinking about having another child, but no one (including\nthe OBGYN who supervised the first transfusion) really seems to know\nwhether or not the transfusion process needs to be repeated for successive\npregnancies.\n     Is there anyone in net-land who has experience with this?\nThanks...Gene (and Jane and Jake)\n\nP.S. I've also posted this in misc.kids.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7363, "properties": {"category": "talk.religion.misc", "text": "From: royc@rbdc.wsnc.org (Roy Crabtree)\nSubject: Re: That Kill by Sword, Must be Killed by Sword\nOrganization: Red Barn Data Center\nLines: 338\n\nIn article <20APR199306173611@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen) writes:\n>In article <sandvik-190493201048@sandvik-kent.apple.com>, \n>sandvik@newton.apple.com (Kent Sandvik) writes...\n...\n>>So are you happy now when 70+ people, including innocent kids,\n>>died today?\n\n\tIt's amazing how everyone automatically blames one side or the other.\n\tOne thing for sure:  Koresh will have no chance to defend himself\n\tagainst the statements (lacking in fact or COurt sponsored verification)\n\tmade  by agents who participated in the situation that killed him.\n\n\t\tI don't know they murdered him; I also don't know\n\t\tthat the Branch Davidians set a fire and suicidede.\n\n\t\tIt is SICK of BATF or FBI spokepeople to make such\n\t\tcomments in advance of forensic pathology.\n\n\tStephen:  thank you.  God speed.  \n\n>No. Kinda numb. I thought something like this was going to happen\n>over a week ago. One of the things that's been obvious from the\n\n\tYah.\n\n>start is that when there are two armed camps, neither of which \n>yields, it's usually get slaughtered -- when any little spark \n>sets it off.\n>\n>Which is why Koresh and company shouldn't have stockpiled weapons,\n>and why the BATF shouldn't have come primed for a raid. \n\n\tBINGO.  Am I the only one  to notice:\n\ta)\tNo peaceful attempt to serve a warrant.\n\tb)\tSix months to develop a scene and six days to end it?\n\tc)\t.... ah God:\n\n\t\t\t25 children\n\t\t\tat least 64 adults\n\t\t\tplus 6 at the beginning\n\t\t\tand more BATF agents\n\n\t\t\tall dead.\n\n>\n>Painful point #1:\n>\n>\tIf the Davidians fired first -- why were the BATF\n>\ton the roof -- rather than taking cover?\n\n\tHas anyone asked themselves these questions:\n\n\t1)  Have you seen the ENTIRE video sequences taken during the\n\t  opening rounds?  I seem to recall missing several key parts:\n\t\ta)  The first five minutes of day one; only the shooting\n\t\t  part comes out.\n\t\tb)  What happened to the Feds video units?  You mean they do\n\t\t  not carry helmet cams?  Wonder why not?\n\t2)   How is it you can have camera crews with live transmission\n\t  video present and NOT have an uninterrupted record?\n\n\t\ta)  You realize the units carry ittle bitty 8mm backups?\n\t\t\tThat hold 90 minutes per unit?  And there are\n\t\t\ttwounits on the professional handhelds (so no\n\t\t\ttape turnover gaps)?\n\t\tb)  Until all views are seen, it is premature to point\n\t\t\tfingers in either direction.\n\n\tAs you well point out, Stephen.\n\n>\n>\tAnyone (BATF, BD, X-BD, Other) could have touched it off,\n>\tby mistake or maliciously?\n\n\tMore on this below.\n\n>\n>\tOnce Koresh was shot... (disregarding his being a religious\n>\tleader, and apocalyptically obsessed) most likely the people\n>\tinside just went on drill. Just like the BATF outside.\n>\n>Is the lesson that automatic responses are very hazardous last resort \n>measures?\n\n\tYes.  But it is so hard toremain human under the full\n\tpressure of hazard, game playing, and life.\n\n>\n>\n>Painful point #2:\n>\n>\tEither side could have backed off, to help defuse the\n>\tsituation.  We see the problem constantly here on the\n>\tnet with flaming.  \n>\n>Ego problems.  Nuff said. \n\n\tMore to the point:  when someone dies (almost like it was intended\n\tthat way), both sides will kill to maintain their innocence --\n\t\ta contradiction in terms.\n\n>\n>\n>Painful point #3:\n>\n>\tIt doesn't help to take sides in such a situation. Just\n>\tadds fuel to the fire. Better is to let it burn out on\n>\tit's own. \n\n\tTrue.  Usually I pick the unpopular side and point out\n\tfrom the evidence seen what might have alternatively happened.\n\n>\n>Best example I can think of is Christ with the tax coin. He didn't \n>have one (and so didn't sanction the Roman authority unduly). When \n>they showed it to him, he noted that it was Caesar's minting, and\n>so said give it to him, (no waste of time). And then he got back to\n>more worthwhile concerns -- God's will. \n\n\tThis requires someone interested in God's Will.  Please note\n\tthat the outstanding _overt_ problem in this country today\n\tis one where the Government:\n\n\t\twants Caesar's coin to pay off the debt.\n\n>\n>The anti-tax movement of today, and the anti-ssan-as-i.d. groups,\n>would do well to note who the issuing authority is. Ditto for those\n\n\tYes:  The AMerican People.  Not the Federal Government.\n\tANd if it is not spent towards that end, _no_one_ deserves\n\tthe coin.\n\n\n>made in the image of God.\n\n\tYah.  Fewpeople hear the contradiction:\n\n\t\tMoney\n\t\tmade\n\t\tin the image\n\t\tof God\n\n>\n>No need to stir things up in ever larger revo-revo-revolution, as\n>governments turn over, and over, and over. \n\n\tI wish you were wrong.  Many pundits are saying 3 years.\n\tThe onyl good thing to come out of my divorce (and my\n\texposure to the Damned (pardon me) American Divorce Attorney\n\tis:\n\n\t\tI have no money left to lose to taxes or inflation.\n\n>\n>\n>painful point #4:\n>\n>\tFor many, this was just entertainment. \n>\t\n>\tThumbs-up. Thumbs-down. \n>\n>\tJust another thriller like \"Terminator 2,\"\n>\tor a good-old ball game.\n>\n>Is the lesson that we've become jaded to media reality?\n\n\t25 children dead.  If anyone thinks blaming Koresh -- or the BATF\n\thelps this any at all, is sick.  and wrong.\n\n\t\tThe reason you can tell that the BATF may not be entirely\n\t\tstraight on this is that the leaders at press conferences\n\t\thavew made ANY comments about even the POSSIBILITY that\n\t\tKoresh or his followers caused this.\n\n\t\tThe BATF agentss are more concerned with their repuations\n\t\tand morals (\"not my fault, Koresh did it!\") than they\n\t\tare with:\n\n\t\t\t25 dead children.\n\n\tSame goes for Koresh & his followers - who are all (mostly) dead.\n\n>\n>\n>\n>Painful point #5:\n>\n>       \tLA burned. The Davidians burned. In one case society has\n>\tabandoned the people -- which has returned to a frontier.\n>\tIn the other -- the outskirts were bumping against the\n>\tsuburbs. \n>\n>Is the lesson that what's lawful in different areas of society,\n>depends more on conditions than laws?\n\n\tMore on power and favoritism.  (My personal opinion).\n\n\tLook to history:  whenever privilege has replaced whatever\n\ttoken of objective law and justice a society has had,\n\n\t\tHitlerrs have followed.\n\n>\n>\n>If we don't learn-the-lessons, or at least make an honest effort,\n>the next conflagration will no doubt be closer to home. \n>\n>Rather than putting out fires, aren't there much more important\n>concerns for us to work on??\n\n\tYou do your name sake proud, Stephen.\n\tIts hard, but please keep on keeping on:\n\t\teach voice in the wilderness now will\n\t\tsave a generation unborn from horror\n\n>\n>>Kent\n>>....who can't 'cheers' today exactly.\n>\n>What keeps me from being a bomb-thrower is my loving God (as irra-\n>tional as that is for so many). One direct benefit is being able to \n>keep things in perspective, KS.\n\n\tThe day I _need_ a gun or abomb to protect myself in this\n\tsociety is the day that society is already beyond redemption\n\n\t\tand that aint' redundant, if you have any Christian\n\t\tbelief aytall.\n\n\t... and the day that I cannot peacefully enjoin others in the\n\tact that Thoreau called Civil Disobedience to rectify the\n\twrongs that my society practises, without undue harm or\n\tpunishment befalling me, is the day that society has ceased to\n\tbe a human society, and become a society of animals.\n\n\t\tWe are _very_ cclose to that.\n\n>\n>Such as who hurts more -- the ones who died, or the loved ones who \n>are left? Besides the lessons. It's also time for many to grieve.\n>Including those who've lost their faith in others, or in God.\n>\n>I'm learning to be patient, and let things heal. God willing.\n\n\tSix years fighting an unjust COurt issue:  still struggling to be\n\tpatient.\n\nFor those who like contrary questions:\n\n\tNB:  I was not there.  I am not a Branch Davidian nor a     law\n\tofficial hater.  I do hate liars or the six letter variety of same.\n\tThe official side has its advocates already; lets balance the\n\tequation and asj a few questions on the other side, for the sake\n\tof an old saw the BATF abd FBI seem to want to bypass:\n\n\t\tinnocent until proven guilty.\n\tnot\n\t\tinnocent until presumed guilty.\n\n\t1)  Where are the video tapes from the tanks?  ALL of them.\n\n\t\tDon't tell me they do not exist.  They are standard\n\t\tequipment.\n\n\t2)  So you think Koresh fired the place, because of the explosion?\n\n\t\ta)  Tear gas comes with an aerosol to spread it.  This\n\t\t  aerosol is DELIBERATELY made to be as non-flammable\n\t\t  as possible.  It is as non-flammable as possible.\n\n\t\t\t.... gotcha!\n\n\t\t  ... when in isolation from other substances.\n\n\t\t  WHy was a pipe deliveryu system used rather than remote\n\t\t  launchers?  WHy did the FBI not announce \"this window,\n\t\t  blown in plus tear gas, five minutes; then the wall come\n\t\t  down\", and maintain a left to right sequence?\n\n\t\tb)  Most aerosols also have a secondary compound, that when\n\t\t  mixed in, becomes a VERY flammable (and difficult to trace)\n\t\t  suspension, with a VERY special property:  exposure to\n\t\t  brief eruptions of high heat (muzzle blasts) or long\n\t\t  exposure to low heat (matches, a stove) will NOT tend\n\t\t  to ignite.\n\n\t\t\tWhat other chemicals come up in the forensics?\n\t\t\tWho else will be allowed to test the site?\n\n\t\tc)  After a few minutes to hours (ifdesired, the combnation\n\t\t  rate can be controlled as desired), the mixture can be made\n\t\t  to become veryignitable onb exposure to a temperature\n\t\t  above a certain point (a tracer round) for a certain\n\t\t  heat quantity (a small explosive charge) or for a length\n\t\t  of time (start a wall fire and wait).\n\n\t\t\tCheck your military records; look at the tapes.\n\t\t\tWhy were tanks (large capacity delivey systems),\n\t\t\ttear gas (why not somnorifics?), and now (why\n\t\t\tthe hurry. was there still a comm channel open\n\t\t\tto the outside?).\n\n\t\t\tDo you see any trace of fire coming BACK to the\n\t\t\tcompound in the videos?  ALL the videos?  Which ones\n\t\t\tare missing?\n\n\tDo I sound paranoid?  Maybe.  Am I? Probably not.\n\tYou trust the FBI and BATF  to render judgement?\n\t\tIN advance of a Court?  God help us.\n\t\t\t(For we are surely not helping ourselves).\n\tYou trut the Federal Gevernment to give us a clean slate?\n\n\t\tYou are 4.3 trillion (admitted!) down and counting.\n\t\tLook again.\n\n\tDid it happen that way?  I do not know.  I was not there.\n\t\tAND IT SHOULD WAIT FOR A COURT TO DECIDE.\n\tBut will that happen?  89 people will NOT have the chance\n\t\tto tell their side as the BATF leader was, on camera.\n\nNo one wins.  Except:  more force next time.\n\n\tListen to your hearts, people.\n\nThanx again Stephen.\n>\n>   |\n>-- J --\n>   |\n>   | stephen\n>\n\nroy andrew crabtree\n\n\troy:  red haired king\n\tandrew:  the virtuous one\n\tcrabtree:  iron workers, ...\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7364, "properties": {"category": "comp.windows.x", "text": "From: mbell@csc.liv.ac.uk (Mike Bell)\nSubject: **** CURSOR SIZE PROBLEMS ****\nOrganization: Computer Science, Liverpool University\nLines: 19\nNntp-Posting-Host: jed.csc.liv.ac.uk\n\n/* Apologies for those who have read this before but no-one has solved this */\n/* one yet so I'm posting again! Sorry :-)                                  */\n\nI'm having problems creating a cursor bigger than 64x64, I'm using Motif 1.1\nX11R4 running HP-UX 8.07 - all the functions return valid results but no\ncursor appears when the bitmap is bigger than the aforementioned size. I tried\n\nusing the following code:\n\nunsigned int w,h;\nXQueryBestCursor(XtDisplay(programArea), XtWindow(programArea), 72, 71, &w,\n&h);\n\nto return the nearest size to what I require however it returns 72 and 71 as\nthe width and height respectively. What am I doing wrong? and if not how can I\nget round the problem!!\n\nThanks in advance\nMike\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.348+0000", "event": "documents", "entityId": 7365, "properties": {"category": "talk.politics.misc", "text": "From: ipser@solomon.technet.sg (Ed Ipser)\nSubject: Top Ten Ways Slick Willie Could Improve His Standing With Americans\nNntp-Posting-Host: solomon.technet.sg\nLines: 38\n\n\n\nTop Ten Ways Slick Willie Could Improve His Standing With Americans\n\n\n\n10. Institute a national sales tax to pay for the socialization of\n    America's health care resources.\n\n9.  Declare war on Serbia. Reenact the draft.\n\n8.  Stimulate the economy with massive income transfers to Democtratic\n    constituencies.\n\n7.  Appoint an unrepetent socialist like Mario Cuomo to the Suprmeme Court.\n\n6.  Focus like a laser beam on gays in the military.\n\n5.  Put Hillary in charge of the Ministry of Truth and move Stephanopoulos\n    over to socialzed health care.\n\n4.  Balance the budget through confiscatory taxation.\n\n3.  Remind everyone, again, how despite the Democrats holding the\n    Presidency, the majority of seats in the House, and in the Senate,\n    the Republicans have still managed to block his tax-and-spend programs.\n\n2.  Go back to England and get a refresher course in European Socialism.\n\n1.  Resign, now!\n\n\n\nCopyright (c) Edward A. Ipser, Jr., 1993\n\nBe sure to look for:\n_Slick Willie's First Very Own Book of Top Ten Lists_\nAvailable soon in paperback.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7366, "properties": {"category": "soc.religion.christian", "text": "From: chrstie@ccu.umanitoba.ca (William John M. Christie)\nSubject: Re: Essene New Testament\nOrganization: University of Manitoba, Winnipeg, Canada\nLines: 16\n\nIn <Apr.10.05.31.12.1993.14351@athos.rutgers.edu> harwood@umiacs.umd.edu (David Harwood) writes:\n\n>There had been recent criticism of this in a listserv for academic\n>Biblical scholars: they all say the book(s) are modern fakes.\n>D.H.\n\nWhich listsev was this and is the discussion still current?  My questioning\nis based on some information presented from the Essene NT that challenges\nsome of my eating choices.  As the info came from a biased (opposed to my\npreferences) third party I am looking for info as to whether I should\ndismiss this work or put some consideration into it.  Thanks again for info!\n-- \n     Will Christie       |    AATCHOO!      | PHILOSOPHY: the principles and \n University of Manitoba  |    Uh-oh...      |  science of thought and reality\n  Winnipeg, MB, Canada   |   I'm leaking    | PHILOSOPHER: someone who thinks\nchrstie@ccu.UManitoba.CA | brain lubricant. |  they're useful to society\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7367, "properties": {"category": "sci.electronics", "text": "From: lperez@decserv2.eecs.wsu.edu (Luis G. Perez)\nSubject: Re: BEAM Robot Olympic Games next Week in Toronto.\nOrganization: S\nLines: 10\n\n\nDoes anybody know if there is a mailing list or newsgroup for\nPower Systems and related areas?\n\nThanks,\n\n--\nLuis G. Perez\nlperez@eecs.wsu.edu\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7368, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tclark@umaxc.weeg.uiowa.edu (Terry Clark)\nSubject: Re: CACHE or Micronics EISA/VLB Motherboard?\nOrganization: University of Iowa, Iowa City, IA, USA\nLines: 38\n\nFrom article <1993Apr15.205654.20845@news.cs.indiana.edu>, by \"Mohammad Al-Ansari\" <alansari@mango.ucs.indiana.edu>:\n> \n> (CLIP) I am in\n> the process of purchasing an EISA/VL Bus 486 DX2-66 computer \n> (CLIP)\n> The first is Ares and they use a Cache motherboard (that's\n> the brand of the motherboard) with OPTI chip set, the other is Micron\n> (formerly Edge Technology) and they use the Micronics EISA/VLB\n> motherboard.\n> (CLIP)\n> I would REALLY appreciate any input on this. Is the Micron machine the\n> clear choice?  Does anyone know anything positive or negative about\n> either company? Has anyone ever heard of Cache motherboards? Should I\n> go with Micron just because it has the Micronics motherboard? etc.\n> \n> Thanks very much in advance for any information.\n> \n> --\n> Mohammad Al-Ansari\nGet back to your vendors, or better yet the board manufactures and get\nsome more info:\n   Where made.\n   Norton indexes (yeah I know BMs suck but whats a mother to do?)\n   number of slots, and types, # ESIA and # 32 bit?\n   Any IDE or SCSI on board?\n   How easy to upgrade RAM, location and # of pins.\n   OVERDRIVE?\n   Oscilator kits?\n   Does it have a 16550 UART?\n   Who's BIOS?\n\nThese might make you feel better about either system, but I must \nagree that Ares with 7 days of 24 hr Tech and 2 year warranty is\nencouraging.\n________________________________________________________________\n  Terry Clark                           tclark@umaxc.uiowa.edu \n  You want an Opinion - You don't pay me enough for an Opinion\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7369, "properties": {"category": "rec.autos", "text": "From: ernie@.cray.com (Ernest Smith)\nSubject: RE Aftermarket A/C units\nOriginator: ernie@ferris\nLines: 34\nNntp-Posting-Host: ferris.cray.com\nOrganization: Cray Research, Inc.\nDistribution: usa\n\n\n>In article <1qcaueINNmt8@axon.cs.unc.edu> Andrew Brandt writes:\n>|> I looked into getting a/c installed on my 1987 Honda CRX Si.\n>|> The unit is $875 plus shipping, installation is like 5 1/2 hours on\n>|> top of that.  This is a hunk of change.\n>|> \n>|> Does anyone know *any* place that does aftermarket a/c installation\n>|> (not with a Honda a/c unit, but some third party unit).\n>|> \n>|> I cannot seem to find anyone who can put a third party a/c unit in a\n>|> Honda.  I am in No Carolina, so I would prefer some place nearby, but\n>|> any references would be handy.\n>|>\n>|> Thx, Andy (brandt@cs.unc.edu)\n>\nLes Bartel's comments:\n>>>Sorry I can't help you with your question, but I do have a comment to\n>make concerning aftermarket A/C units.  I have a Frost-King or Frost-Temp\n>(forget which) aftermarket unit on my Cavalier, and am quite unhappy with\n>it.  The fan is noisy, and doesn't put out much air.  I will never have\n>an aftermarket A/C installed in any of my vehicles again.  I just can't\n>trust the quality and performance after this experience.\n>>\n> - les\n>\n>-- \n>Les Bartel\t\t\tI'm going to live forever\n\nLet me add my .02 in. I had a A/C installed by the Ford garage and it did not\nwork as well as the A/C that was installed by the factory in pickups \nidentical to mine. I have talked to other people that have had the same\nresult. Don't know if this is just a probable with Ford or what??\n\n\tErnie Smith\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7370, "properties": {"category": "rec.autos", "text": "From: matmcinn@nuscc.nus.sg (Matthew MacIntyre at the National University of Senegal)\nSubject: Re: Opel owners?\nOrganization: National University of Singapore\nLines: 1\nX-Newsreader: Tin 1.1 PL4\n\nBy the way, what do people think about the Opel CAlibra?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7371, "properties": {"category": "sci.med", "text": "From: ron.roth@rose.com (ron roth)\nSubject: HYPOGLYCEMIA\nX-Gated-By: Usenet <==> RoseMail Gateway (v1.70)\nOrganization: Rose Media Inc, Toronto, Ontario.\nLines: 31\n\n     anello@adcs00.fnal.gov (Anthony Anello) writes:\n\nA(>  Can anyone tell me if a bloodcount of 40 when diagnosed as hypoglycemic is\nA(>  dangerous, i.e. indicates a possible pancreatic problem?  One Dr. says no, the\nA(>  other (not his specialty) says the first is negligent and that another blood\nA(>  test should be done.  Also, what is a good diet (what has worked) for a hypo-\nA(>  glycemic?  TIA.\nA(>  \nA(>  \nA(>  Anthony Anello\nA(>  Fermilab\nA(>  Batavia, Illinois\n\n   Once you have your hypoglycemia CONFIRMED through the proper \n   channels, you might consider ther following:\n\n   1) Chelated Manganese   25-50mg/day.\n   2) Chelated Chromium    400-600mcg/day.\n   3) Increase protein through foods or supplements.\n   4) Avoid supplements/foods high in Potassium, Calcium, Zinc.\n   5) Avoid Vit C supplements in excess of 100mg.\n   6) Avoid honey and foods high in simple sugars.\n   7) Enjoy breads, cereals, grains...\n\n   Discuss the above with your health practitioner for compatibility\n   with your body chemistry and safety.\n\n   --Ron--\n---\n   RoseReader 2.00  P003228: BEER - It's not just for breakfast anymore.\n   RoseMail 2.10 : Usenet: Rose Media - Hamilton (416) 575-5363\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7372, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: guns in backcountry? no thanks\nOrganization: Computer Science Department,  Stanford University.\nLines: 25\n\nIn article <1qkcok$s9i@usenet.INS.CWRU.Edu> ci946@cleveland.Freenet.Edu (John K. Gever) writes:\n>Public health experts will tell you that you are far more likely\n>have your gun stolen, use it yourself on a family member or\n>have it used on you than you are to use it on an actual criminal.\n\nActually, they won't.  What they'll tell you is that if you add up the\nnumber of suicides, murders of one drug dealer by another, legit\nself-defenses of a battered spouse, and so on, you'll end up with a\nnumber that is much larger than the number of self-defense killings\nagainst strangers committed in the bedroom.  (BTW - they didn't\nhonestly count the latter either, but let's not quibble.)  They\ntry to claim that comparison is between the costs of self-defense\nand the benefits, but they're wrong.\n\nThis comparison doesn't measure the costs of self-defense and it\ndoesn't measure the benefits either.  For example, the goal is not to\nkill the attacker, whatever your relationship to him, but to stop him.\nWhile the number of killings may be proportional to the number of\nstops, it isn't equal.\n\nAnyone who confuses that comparison with an honest evaluation\nis either lying or....\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7373, "properties": {"category": "comp.windows.x", "text": "From: mikey@eukanuba.wpd.sgi.com (Mike Yang)\nSubject: Re: Monthly Question about XCopyArea() and Expose Events\nReply-To: mikey@sgi.com\nOrganization: Silicon Graphics, Inc.\nLines: 27\nNntp-Posting-Host: eukanuba.wpd.sgi.com\n\nIn article <BUZZ.93Apr19125438@lion.bear.com>, buzz@bear.com (Buzz Moschetti) writes:\n|> (2nd posting of the question that just doesn't seem to get answered)\n\nHow can we resist a questions that says something like this?\n\n|> The problem, of course, is that no expose event is generated if the window\n|> is already visible and mapped.  What we need to do is somehow \"tickle\" the\n|> Window so that the expose handler is hit with arguments that will enable\n|> it to render *just* the part of the window that contains the new item.\n|> \n|> What is the best way to tickle a window to produce this behavior?\n\nIf your Expose event handler is truly intelligent about exposed\nrectangle information, then you can use XClearArea to generate an\nExpose event (assuming that your background pixel is not None) for the\nenclosing rectangle of your new item.\n\nThis is still not great, since any other items contained within that\nrectangle will still be unnecessarily redrawn.\n\nIf your Expose event handler simply redraws everything, you'll be\ndoing much more work than just drawing the new item \"on top\" of the\nexisting scene.\n\n-----------------------------------------------------------------------\n                 Mike Yang        Silicon Graphics, Inc.\n               mikey@sgi.com           415/390-1786\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7374, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: It was an 'encore' performance staged by the Armenians during WWI.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 47\n\nIn 1941, while the Jews were being assembled for their doom in the Nazi\nconcentration camps, the Nazi Armenians in Germany formed the first\nArmenian battalion to fight alongside the Nazis. In 1943, this battalion \nhad grown into eight battalions of 20,000-strong under the command of Dro \n(the butcher) who is the architect of the cold-blooded genocide of 2.5 \nmillion Turks and Kurds between 1914-1920. An Armenian National Council \nwas formed by the notorious Dashnak Party leaders in Berlin, which was \nrecognized by the Nazis. Encouraged by this, the Armenians summarily \nformed a provisional government that endorsed and espoused fully the \nprinciples of the Nazis and declared themselves as the members of the \nAryan super race and full participants to Hitler's policy of extermination \nof the Jews.\n\nThis Armenian-Nazi conspiracy against the Jews during WWII was an \"encore\"\nperformance staged by the Armenians during WWI, when they back-stabbed and\nexterminated 2.5 million Turks by colluding with the invading Russian army.\n\n\nSource: \"Adventures in the Near East, 1918-1922\" by A. Rawlinson,\nJonathan Cape, 30 Bedford Square, London, 1934 (First published 1923) \n(287 pages).\n(Memoirs of a British officer who witnessed the Armenian genocide of 2.5 \n million Muslim people)\n\np. 184 (second paragraph)\n\n \"I had received further very definite information of horrors that\n  had been committed by the Armenian soldiery in Kars Plain, and as \n  I had been able to judge of their want of discipline by their \n  treatment of my own detached parties, I had wired to Tiflis from \n  Zivin that 'in the interests of humanity the Armenians should not \n  be left in independent command of the Moslem population, as, their \n  troops being without discipline and not under effective control, \n  atrocities were constantly being committed, for which we should \n  with justice eventually be held to be morally responsible'.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7375, "properties": {"category": "rec.autos", "text": "From: dlb5404@tamuts.tamu.edu (Daryl Biberdorf)\nSubject: Plymouth Sundance/Dodge Shadow experiences?\nOrganization: Texas A&M University, College Station\nLines: 9\nDistribution: usa\nNNTP-Posting-Host: tamuts.tamu.edu\n\nAnother user recently requested info about the Shadow/Sundance\ncars, but I haven't seen any public responses.\n\nWhat are people's experiences with these cars?\n\nDaryl\n\n             Daryl Biberdorf  N5GJM    d-biberdorf@tamu.edu\n               + Sola Gratia + Sola Fide + Sola Scriptura\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7376, "properties": {"category": "talk.politics.mideast", "text": "From: arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee)\nSubject: Re: American Jewish Congress Open Letter to Clinton\nOrganization: Johns Hopkins University CS Dept.\nLines: 46\n\nIn article <22APR199307534304@vxcrna.cern.ch> casper@vxcrna.cern.ch (CASPER,DAVI./PPE) writes:\n>> [I said the fixation on Bosnia is due to it being in a European country,\n>>  rather than the third world]\n>>I recall, before we did anything for Somalia, (apparent) left-wingers saying\n>>that the reason everyone was more willing to send troops to Bosnia than to\n>>Somalia was because the Somalis are third-worlders who Americans consider\n>>unworthy of help.  They suddenly shut up when the US decided to send troops to\n>>the opposite place than that predicted by the theory.\n>I am a staunch Republican, BTW.  The irony of arguing against military\n>intervention with arguments based on Vietnam has not escaped me.  I was opposed\n>to US intervention in Somalia for the same reasons, although clearly it was\n>not nearly as risky.\n\nBased on the same reasons?  You mean you were opposed to US intervention in\nSomalia because since Somalia is a European country instead of the third world,\nthe desire to help Somalia is racist?  I don't think this \"same reason\" applies\nto Somalia at all.\n\nThe whole point is that Somalia _is_ a third world country, and we were more\nwilling to send troops there than to Bosnia--exactly the _opposite_ of what\nthe \"fixation on European countries\" theory would predict.  (Similarly, the\ndesire to help Muslims being fought by Christians is also exactly the opposite\nof what that theory predicts.)\n\n>>For that matter, this theory of yours suggests that Americans should want to\n>>help the Serbs.  After all, they're Christian, and the Muslims are not.  If\n>>the desire to intervene in Bosnia is based on racism against people that are\n>>less like us, why does everyone _want_ to help the side that _is_ less like us?\n>>Especially if both of the sides are equal as you seem to think?\n>Well, one thing you have to remember is, the press likes a good story.   Good\n>for business, don't you know.  And BTW, not \"everyone\" wants to help the\n>side that is less like us.\n\nI'm referring to people who want to help at all, of course.  You don't see\npeople sending out press releases \"help Bosnian Serbs with ethnic cleansing!\nThe Muslim presence in the Balkans should be eliminated now!\"  (Well, except\nfor some Serbs, but I admit that the desire of Serbs in America to help the\nSerbian side probably _is_ because those are people more like them.)\n--\n\"On the first day after Christmas my truelove served to me...  Leftover Turkey!\nOn the second day after Christmas my truelove served to me...  Turkey Casserole\n    that she made from Leftover Turkey.\n[days 3-4 deleted] ...  Flaming Turkey Wings! ...\n   -- Pizza Hut commercial (and M*tlu/A*gic bait)\n\nKen Arromdee (arromdee@jyusenkyou.cs.jhu.edu)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7377, "properties": {"category": "comp.graphics", "text": "From: stusoft@hardy.u.washington.edu (Stuart Denman)\nSubject: Easy to translate JPEG code...\nArticle-I.D.: shelley.1rfsqbINNc2p\nOrganization: University of Washington\nLines: 7\nNNTP-Posting-Host: hardy.u.washington.edu\n\nDoes anyone out there have any JPEG decompression code in pretty much any\nlanguage that I can read and understand?  I have trouble understanding the\nJPEG Group's code that I got from an FTP site.  If any one can send me\nsome good code, I will appreciate it a lot!  Thanks!\n\nStuart Denman\nstusoft@u.washington.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7378, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: the usual\nOrganization: California Institute of Technology, Pasadena\nLines: 41\nDistribution: na\nNNTP-Posting-Host: sandman.caltech.edu\n\nhollombe@polymath.tti.com (The Polymath) writes:\n\n>The possession of nuclear arms (actually weapons grade fissionables) is\n>currently regulated only by market forces.  I.e.:  To own them you have to\n>either make them, buy them or steal them.  The only thing that stops you\n>is the staggering cost (more than most nations can afford), the fact that\n>no one who has them wants to sell to you and the tight security maintained\n>on existing stocks. (Just ask Saddam Hussein).\n\nI was under the impression that to obtain fissionable materials (i.e.,\nplutonium or reactor/weapons-grade uranium) one was required to obtain\na federal permit to own such materials.\n\n>Given a source of fissionables, you can build a bomb in your garage with\n>parts from hardware stores and electronic junk supplies.  You might have\n>to engage in some shady dealings to get the explosive charge, but that's\n>trivial compared to getting the plutonium.  The basic information on the\n>design was declassified years ago and can be dug out of any technical\n>library by a physics grad student.\n\nActually, why bother looking it up?  From the material we covered last\nterm (in 10 weeks) of Ge/Ch 127 (Nuclear Chemistry), I could *derive*\nwhat it would take to build a bomb.  And as far as the explosive charge,\nI (as a chemist) could synthesize a variety of explosives from commonly\navailable chemicals in the garage if I felt like.  The electronics \nbehind the detonator and the shaped charges are a little trickier,\nhowever . . . but not impossible using a few \"tricks of the trade.\"\nAnd if I really wanted to be nasty, I could include a core of \nhydrogen and deuterium . . .\n\nOf course, the hardest part is getting the fissionable material\nto start with, and living long enough to put a bomb together. \n(Plutonium has some *nasty* properties . . .)\n\n>The Polymath (aka: Jerry Hollombe, M.A., CDP, aka: hollombe@polymath.tti.com)\n>Head Robot Wrangler at Citicorp                      Laws define crime.\n>3100 Ocean Park Blvd.   (310) 450-9111, x2483       Police enforce laws.\n>Santa Monica, CA  90405                            Citizens prevent crime.\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7379, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: ORGAN DONATION AND TRANSPLANTATION FACT SHEET\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 26\n\nIn article <1993Apr13.150018.641@lmpsbbs.comm.mot.com> dougb@ecs.comm.mot.com writes:\n\n>My wife cannot donate blood because she has been to a malarial region\n>in the past three years.  In fact, she tried to have her bone marrow\n>typed and they wouldn't even do that!  Why?\n>\nThe FDA, I believe.  Rules say no blood or blood products donations\nfrom anyone who has been in a malarial area for 3 years.  I was a platelet\ndonor until my Thailand trip and my blood bank was very disappointed\nto find out they couldn't use me for 3 years.\n\n>\n>When the secretary of state asked me if I wanted to donate my\n>organs I said no because I figured that no one would want them\n>given my history.  Was I correct?\n>\nNot necessarily.  The same rules may not apply to organ donation\nas to blood donation.  In fact, I'm sure they don't.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7380, "properties": {"category": "comp.windows.x", "text": "From: whaley@sigma.kpc.com (Ken Whaley)\nSubject: Re: 24-bit Static color: will clients like it?\nIn-Reply-To: beck@irzr17.inf.tu-dresden.de's message of 26 Apr 1993 17:54:12 GMT\nOrganization: Kubota Pacific Computer Inc.\nLines: 21\n\n|\n|Even 24Bit TrueColor machines are in most cases running an emulated\n|8 bit PseudoColor visual, only to get standard x clients, motif apps and\n|thelike to run. I strongly suppose you to emulate at least:\n|\n|> 24 Bit TrueColor. Should be no problem, only some translation. Rounding\n|  should not make big misfits\n\nDepends on the nature of the \"rounding.\"  X allows the user to do bit\narithmetic on pixel values, (i.e.,  XOR foreground and backgroun pixel\nvalues together to calculate a foreground color that when used with a\nfunction of GXxor fill change foreground to background and vice-versa).\nIf your rounding does not preserve these types of calculations then \nclients that use them will break.\n\n\tKen\n--\nKenneth Whaley\t\t\t (408) 748-6347\nKubota Pacific Computer, Inc.\t Email: whaley@kpc.com\n2630 Walsh Avenue\nSanta Clara, CA.  95051\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7381, "properties": {"category": "sci.electronics", "text": "From: morrow@cns.ucalgary.ca (Bill Morrow)\nSubject: Amplifier into CD-ROM earphone plug ?\nNntp-Posting-Host: cns16.cns.ucalgary.ca\nOrganization: University of Calgary\nLines: 16\n\nWe have a Sun CD-ROM drive which I would like to play audio CD's in.\nI have an old 10 watt amplifier which works fine when connected to a\njunk \"Walkman\" style AM/FM radio. This amp ties the common path of the\nearphone connection to ground.\n\nHowever, it doesn't work with my Sony Walkman cassette player, or the CD drive,\nit produces of loud low-frequency tone. Obviously Sony doesn't ground\nthe earphone output common. Does anyone have specs on the CD drive's \noutput? Will an audio transformer help? What are others using to\nplay there CD's in the Sun drive so that more than one can listen?\n\nThanks for the help.\n-- \nBill Morrow    Clinical Neurosciences, University of Calgary\ne-mail: morrow@cns.ucalgary.ca voice: (403) 220-6275 fax: (403) 283-8770 \n3330 Hospital Drive NW Calgary, Alberta, CANADA T2N 4N1\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7382, "properties": {"category": "sci.med", "text": "From: turpin@cs.utexas.edu (Russell Turpin)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: CS Dept, University of Texas at Austin\nLines: 53\nDistribution: inet\nNNTP-Posting-Host: saltillo.cs.utexas.edu\nKeywords: science   errors   Turpin\n\n-*----\nI agree with everything that Lee Lady wrote in her previous post in\nthis thread.  In case this puzzles people, I would like to expand\non two of her comments.\n\nIn article <C5JoDH.9IG@news.Hawaii.Edu> lady@uhunix.uhcc.Hawaii.Edu (Lee Lady) writes:\n> Avoiding mistakes is certainly highly desirable.  However it is also \n> widely acknowledged that perfectionism is inimicable to creativity. \n> ... In the extreme case, a perfectionist becomes so paralyzed by all\n> the possible mistakes he might make that he is unable to even leave\n> the house.  \n\nOne of the most important (and difficult) aspects of reasoning\nabout empirical investigation lies in understanding the context,\nscope, and importance of the various arguments and pieces of\nevidence that are marshalled for a claim.  Some errors break the\nback of a piece of research, some leave a hole that needs to be\nfilled in, and some are trivial in their importance.  It is a\ngrave mistake to confuse these.\n\nPast snippets from this thread:\n\n>>> I doubt if Einstein used any formal methodology.  ....\n\n>> He also proposed numerous experiments which if performed would\n>> distinguish a universe in which special relativity holds from\n>> one in which it does not. ...\n\nBack to Lee Lady:\n\n> These are not the rules according to many who post to sci.med and\n> sci.psychology.  According to these posters  \"If it's not supported by\n> carefully designed controlled studies then it's not science.\"\n\nThese posters are making the mistake that I have previously\ncriticized of adhering to a methodological recipe.  A \"carefully\ndesigned and controlled study\" is neither always possible nor\nalways important.  (On the other hand, if someone is proposing a\nremedy that supposedly alleviates a chronic medical problem, we\nhave enough knowledge of the errors that have plagued *this* kind\nof claim to ask for a \"carefully designed and controlled study\"\nto alleviate our skepticism.)\n\nRules such as \"support the hypothesis by a carefully designed and\ncontrolled study\" are too narrow to apply to *all* investigation.\nI think that the requirements for particular reasoning to be\nconvincing depends greatly on the kinds of mistakes that have\noccurred in past reasoning about the same kinds of things.  (To\nreuse the previous example, we know that conclusions from\nuncontrolled observations of the treatment of chronic medical\nproblems are notoriously problematic.)  \n\nRussell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7383, "properties": {"category": "rec.sport.baseball", "text": "From: horan@cse.unl.edu (Mark Horan)\nSubject: Re: Best Second Baseman?\nArticle-I.D.: crcnis1.1pqvusINNmjm\nDistribution: usa\nOrganization: University of Nebraska--Lincoln\nLines: 29\nNNTP-Posting-Host: cse.unl.edu\n\nthf2@ellis.uchicago.edu (Ted Frank) writes:\n\n>In article <1993Mar29.044248.16010@sarah.albany.edu> js8484@albnyvms.bitnet writes:\n>>Personally, I think that Alomar is all hype. He is producing incredibly now,\n>>but in the long run, he will never put up the numbers that Sandberg has. For\n>>THIS moment, Alomar may be the best, but overall Sandberg wins out by a long\n>>shot.\n\n>When Sandberg was Alomar's age, he was putting up .261 seasons with no power.\n>Alomar's 1992 OBA is 25 points higher than Sandberg's career high.  Alomar's\n>career high in doubles and triples is higher than Sandberg's.  Sandberg is\n>still better than Alomar, but only because Alomar hasn't reached his full\n>potential yet.  Alomar's got a 2.5 year-headstart on Sandberg (he has 862\n>hits; Sandberg didn't have 862 hits until he was 26), and is likely to\n>put up better career numbers than Sandberg in everything except home runs.\n>He'll pass Sandberg in stolen bases sometime in 1995.\n\nSandberg is not particulary known for his stolen bases.  What competition did \nAlomar have?  Sandberg came in a year after Ripken, and the same year as Boggs,\nGwynn, and the other magicians.  So less attention was given to Sandberg. \nAlomar is the only one in his class to be worth a mediocre.  Besides the \nnumbers don't count.  National league pitchers are much better pitchers. \n\nLarry                          on someone elses account \n--\n\nMark Horan --\nhoran@cse.unl.edu      \nianr053@unlvm\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7384, "properties": {"category": "talk.politics.mideast", "text": "From: ddsokol@unix.amherst.edu (D. DANIEL SOKOL)\nSubject: Re: Enough Freeman Bashing!  Was: no-Free man propaganda machine: Freemanwith blood greetings from Israel\nNntp-Posting-Host: amhux3.amherst.edu\nOrganization: Amherst College\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 47\n\nMarc A Afifi (mafifi@eis.calstate.edu) wrote:\n> pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman) writes:\n> \n> \n> Peter,\n> \n> I believe this is your most succinct post to date. Since you have nothing\n> to say, you say nothing! It's brilliant. Did you think of this all by\n> yourself?\n> \n> -marc \n> --\n> ______________________________________________________________________________\n> Some people are so narrow minded they can see through a crack in a door with\n> both eyes. \n> My opinions should be yours. My employer has no opinions.\n> ______________________________________________________________________________\n\nAn open letter to Marc Afifi\n\n\nDear Marc,\n\tI believe that you are wrong about Mr. Freeman.  He has written in\na style that raises the level of posts on this board.  If you just don't seem\nto get it, I believe that it is more of a reflection of you and your abilities\nthan of him.  His posts contain substance and and he defends his positions \nwell.\n\tHaving said this, I would like to ask in general for people on this \nboard to realize that if they don't agree with the substance of posts, then they should respond to the substance (or lack of) of the posts rather than attack\nthe author of the posts.  When one has to resort to attacking a poster rather than what he/she has written, one can see that that person does not have the\nability to make a coherent argument concerning the post.\n\nPeace,\n\n\nDanny\n\n\n\n\n\n\n\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7385, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ggw@wolves.Durham.NC.US (Gregory G. Woodbury)\nSubject: Q900 FP Errors? (was: Quadra 900/950 differences\nReply-To: ggw@wolves.durham.nc.us\nOrganization: Wolves Den UNIX\nLines: 16\nX-Md4-Signature: 682f2f434b0ed4717bc807af66e9b5a4\n\nrdk2@cec2.wustl.edu (Robert David Klapper) writes:\n>\n>\tI also believe that the 950 fixed a bug in the CPU which screwed up\n>some floating point calculations.\n\n\tDoes anyone have details on this?   What sort of FP errors is\nthe Q900 sensitive to?\n\n\t(My Q900 is having some strange problems with an FP intensive\nprogram, getting a lot of DS15 (Segment Loader) errors.  ThinkC5.0.4 and\nSystem 7.0.1+)\n-- \nGregory G. Woodbury @ The Wolves Den UNIX, Durham NC  <Standard disclaimers>\nUUCP: ...dukcds!wolves!ggw   ...duke!wolves!ggw           [use the maps!]\nDomain: ggw@wolves.Durham.NC.US  ggw%wolves@duke.cs.duke.edu\n[This site is *not* affiliated with Duke University.  (Idiots!) ]\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7386, "properties": {"category": "talk.politics.mideast", "text": "From: A1RODRIG@vma.cc.nd.edu\nSubject: What a HATE filled newsgroup!!!!\nOrganization: Bullwinkle Fan Club\nLines: 5\n\nIs this group for real? I honestly can't believe that most of you expect you\nor your concerns to be taken remotely seriously if you behave this way in a\nforum for discussion. Doesn't it ever occur to those of you who write letters\nlike the majority of those in this group that you're being mind-bogglingly\nhypocritical?\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.349+0000", "event": "documents", "entityId": 7387, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: Some more about gun control...\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nLines: 51\n\nIn article <C5L0n2.5LL@ulowell.ulowell.edu>, jrutledg@cs.ulowell.edu (John Lawrence Rutledge) writes:\n>\n>So the phrase \"the right of the people to keep and bear Arms, shall \n>not be infringed\" must either qualify or explain the phrase \"a well \n>regulated militia, being necessary to the security of a free state.\"  \n\n[stuff deleted]\n\n>Since \"the right of the people to keep and bear Arms, shall not be\n>infringed\" does not describe, modify or make less harsh anything and\n>it has nothing to do with grammar or some sort of position or task.\n>By process of elimination it must fall into definition #3.  And since\n>#3 deals with legal power, the same thing the Constitution does, it\n>must be the correct definition in this case.  Therefore, \"the right \n>of the people to keep and bear Arms\" gives legal power to the \"well \n>regualated militia\" and this legal power \"shall not be infringed\".  \n\nAh, clarification by obfuscation.\n\nActually, the words \"A well regulated Milita, being necessary to the\nsecurity of a free state\" is a present participle, used as an\nadjective to modify 'militia', which is followed by the main clause of\nthe sentence, the subject being 'the right', the verb 'shall'.  It\nasserts that the right to keep and bear arms is essential for\nmaintaining a milita.  The sentence doesn't restrict the right, or\nstate or imply possession of the right by anyone or anything other\nthan the people.  All it does is make a positive statement regarding a\nright of the people. The PEOPLE, as in you and me, as in the First,\nFourth, Ninth, Tenth, as well as the Second amendment.\nThe existence of this right is assumed - it is not granted by the\namendment. There is no stated or implied condition relating the right\nto bear arms to the necessity of a well-regulated militia to the security of\na free state.\nIn other words, the entire sentence says that the right to keep and\nbear arms is UNCONDITIONAL.\n\n\n>So in effort not to force my views and not \"to destory our Liberties and\n>Rights,\"  I state that nothing I have written, or will write, in\n>the matter of \"Liberties and Rights\" is the final word.  For I am only\n>one person among many and the final word on \"Liberties and Rights\" cleary\n>and irrevocably belongs to the many.\n\nThe final word on liberties and rights should not belong \"to the\nmany\".  That is why we have a Constitution.  Otherwise, a tyrrany of\nthe majority can ensue from \"popular\" opinion, a concept which you\nshould be familiar with from the Federalist papers.\n\nAl\n[standard disclaimer]\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7388, "properties": {"category": "sci.med", "text": "From: tong@ohsu.edu (Gong Tong)\nSubject: Re: Is MSG sensitivity superstition?\nArticle-I.D.: ohsu.1993Apr16.194316.25522\nOrganization: Oregon Health Sciences University\nLines: 48\n\nIn article <1993Apr16.155123.447@cunews.carleton.ca> wcsbeau@alfred.carleton.ca (OPIRG) writes:\n>In article <1993Apr14.122647.16364@tms390.micro.ti.com> david@tms390.micro.ti.com (David Thomas) writes:\n>\n>>>In article <13APR199308003715@delphi.gsfc.nasa.gov>, packer@delphi.gsfc.nasa.gov (Charles Packer) writes:\n>>>>Is there such a thing as MSG (monosodium glutamate) sensitivity?\n>>>>I saw in the NY Times Sunday that scientists have testified before \n>>>>an FDA advisory panel that complaints about MSG sensitivity are\n>>>>superstition. Anybody here have experience to the contrary? \n>>>>\n>>>>I'm old enough to remember that the issue has come up at least\n>>>>a couple of times since the 1960s. Then it was called the\n>>>>\"Chinese restaurant syndrome\" because Chinese cuisine has\n>>>>always used it.\n>>\n>>So far, I've seen about a dozen posts of anecdotal evidence, but\n>>no facts.  I suspect there is a strong psychological effect at \n>>work here.  Does anyone have results from a scientific study\n>>using double-blind trials?  \n>\n>Check out #27903, just some 20 posts before your own. Maybe you missed\n>it amidst the flurry of responses? Yet again, the use of this\n>newsgroup is hampered by people not restricting their posts to matters\n>they have substantial knowledge of.\n>\n>For cites on MSG, look up almost anything by John W. Olney, a\n>toxicologist who has studied the effects of MSG on the brain and on\n>development.  It is undisputed in the literature that MSG is an\n>excitotoxic food additive, and that its major constituent, glutamate\n>is essentially the premierie neurotransmitter in the mammalian brain\n>(humans included).  Too much in the diet, and the system gets thrown\n>off.  Glutamate and aspartate, also an excitotoxin are necessary in\n>small amounts, and are freely available in many foods, but the amounts\n>added by industry are far above the amounts that would normally be\n>encountered in a ny single food.  By eating lots of junk food,\n>packaged soups, and diet soft drinks, it is possible to jack your\n>blood levels so high, that anyone with a sensitivity to these\n>compounds will suffer numerous *real* physi9logical effects. \n>Read Olney's review paper in Prog. Brain Res, 1988, and check *his*\n>sources. They are impecable. There is no dispute.\n>\n>                    --Dianne Murray    wcsbeau@ccs.carleton.ca\n\nIn order to excitotoxin effects of MSG, MSG that in blood must go through \nblood-brain barrier that I am not sure MSG can go through or not. In normal condition, the concentration of glutamate in the cerebrospinal fluid is about \n2 uM that is high enough to activate one type of glutamate receptor-the NMDA\nreceptor. But the question is Neuron and glial cell in the brain have a lots of transport to get glutamate into Neuron or glial. So no one know exact concentration of glutamate is around neurons. \n\nGlutamate is most important neurotransmitter in the central nervous system. It is involved in not only in daily life like the controling of movement, it is alsoinvolved in develpoment, memory and learn (it is involved in Logn-term potentialtion that be thought is the basis of learning). \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7389, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Re: Flyback squeal in video monitors\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 41\n\nIn article <1993Mar31.204036.4359@ssc.com>, markz@ssc.com (Mark Zenier) writes:\n|> Zack Lau (zlau@arrl.org) wrote:\n|> : In sci.electronics, xhan@uceng.uc.edu (Xiaoping Han) writes:\n|> : >In article <1993Mar24.163510.158@hubcap.clemson.edu> michaet@hubcap.clemson.edu (Michael D. Townsend) writes:\n|> : >>brendan@macadam.mpce.mq.edu.au (Brendan Jones) writes:\n|> : >>\n|> : >>My mom's 25\" Magnavox does this as well.  I put chewing gum all around\n|> : >>the horizontal sync transformer so it wouldn't resonate the board as\n|> : >>much.  Don't flame, it worked.  I realize that there is a more suitable\n|> : >>substance available for this purpose, but I don't remember what and\n|> : >>where it is.\n|> : \n|> : >Adhesive silicon, from hardware store.\n|> : \n|> : If it smells like vinegar, it may damage metal surfaces by\n|> : promoting corrosion.  \n|> \n|> Anybody tried Superglue (cyanoacrylate ?).  This should sneak\n|> into the cracks better, and is stiffer than silicone.  \n\nI've found this works pretty well on noisy laminated power\ntransformer cores and windings (the 60Hz kind). Likewise, if\nanybody has tried this on a flyback I'd like to hear about it.\n\nI would suspect it would not be as effective as it was on power\ntransformers as the material wouldn't damp as well--something\nI suspect would be critical at the frequencies involved (in other\nwords, you want absorption rather than prevention which would be\nreal difficult at 15 KHz).\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7390, "properties": {"category": "talk.politics.misc", "text": "From: stromer@eyore.unet.com (Philip H. Stromer)\nSubject: Re: URGENT **** TED FRANK WANTED FOR KILLING AJ TEEL...\nArticle-I.D.: unet.1993Apr6.221210.3054\nOrganization: Network Equipment Technologies, Redwood City\nLines: 31\nNntp-Posting-Host: eyore\n\nIf the heading is true, Mr. Frank should be ashamed of himself.\n\nNothing makes me gag more than people who don't respect the\nrights of others to voice their opinions.  My idol Lenny Bruce\nonce commented about \"that asshole Time Magazine\" when they\nadvocated censorship of his material.  Time actually sided\nwith the cops' and their arresting of Bruce at his shows,\nwhereby he routinely would say \"cocksucker\", then the cops\nwould rush the stage to arrest him.  My, how the times haven't\nchanged...\n\nI can't help but think of how Lenny would be received in today's\npolitically correct arena.  Heck, I even support the right of\nneo nazis to speak their opinions and march down the streets.\n\nAnd before Mr. Frank or anyone else makes any wisecracks about\nanti-Semitism...I'm Jewish, a longtime member of AIPAC and the JNF,\nand have contributed over $1000 apiece to these fine groups.  I'm\na regular contributor to every pro-Israel group I can find, but I\nstill support the right of people like Arf to speak up and vomit\nhis propaganda.\n\nI want to know just WHO these people are !!!\n\nI'm basing all this on the assumption that Mr. Frank did indeed\nwrite to some sysadmin requesting Mr. Teel to be admonished.  If\nthis is not the case, I hereby retract these nasties directed\ntoward him.  If not, I stand against Mr. Frank and his trashing\nof the First Amendment.\n\nPhilip Stromer\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7391, "properties": {"category": "rec.motorcycles", "text": "From: cjackson@adobe.com (Curtis Jackson)\nSubject: Re: How to act in front of traffic jerks\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 19\n\nIn article <1qmvutINN3he@lynx.unm.edu> galway@chtm.eece.unm.edu (Denis McKeon) writes:\n}In heavy traffic I slow down a bit, mostly so I have more buffer zone in\n}front to balance the minimal buffer behind, but I also often find that the \n}jerk behind will notice traffic moving faster in other lanes, switch\n}into one of them, and pass me - which is fine, because then I can keep a\n}better eye on the jerk from behind, while looking ahead, rather than\n}from in front, while splitting my attention between ahead and the mirrors.\n\nThis is pretty damned complicated. I just make a \"back off\" motion with\nmy hand/arm, and the second or third time even the most braindead cager\nbacks off. If they don't back off then, I find a way to get the hell out\nof there -- the cager is either psychotic, drunk, or just a complete\nasshole. In any case, I don't want to be anywhere near, and especially\nnot in front.\n-- \nCurtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\nDoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\"\n\"There is no justification for taking away individuals' freedom\n in the guise of public safety.\" -- Thomas Jefferson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7392, "properties": {"category": "rec.autos", "text": "From: Srinagesh Gavirneni <sg48+@andrew.cmu.edu>\nSubject: 86 chevy sprint\nOrganization: Doctoral student, Industrial Administration, Carnegie Mellon, Pittsburgh, PA\nLines: 15\nNNTP-Posting-Host: po2.andrew.cmu.edu\n\nI have a 86 chevy sprint with a/c and 4doors. It's odometer turned 90k\nand the sensor light started blinking. I went to the dealer and he said\nit was a maintenance light saying I need to change the Oxygen sensor. He\nsaid, It is to be changed every 30k, but since I bought the car when it\nhad 77k, I don't know if the same thing happened at 30k and 60k.  He\nquoted $198 for the part and $50 to install it. The part cost $30\noutside, but the mechanic I went to could not fix it saying the sensor\nis placed too deep in the engine parts. He suggested I wait till it\nmalfunctions before I do anything.  If anyone out there owns a chevy\nsprint, I want to know how they got their Oxygen sensors changed. Also,\ndid you face any problem with fixing it without the dealer's help. Also,\nwhat are the results of the oxygen sensor malfunction. \n  Any help would be greatly apprecisted\n   Thanks\n      Nagesh\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7393, "properties": {"category": "sci.med", "text": "From: wright@duca.hi.com (David Wright)\nSubject: Re: NATURAL ANTI-cancer/AIDS Remedies\nOrganization: Hitachi Computer Products, OSSD division\nLines: 16\nNNTP-Posting-Host: duca.hi.com\n\nIn article <19604@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n|In article <1993Apr6.165840.5703@cnsvax.uwec.edu> mcelwre@cnsvax.uwec.edu writes:\n|>     The biggest reason why the cost of medical care is so EXTREMELY high and\n|>increasing is that NATURAL methods of treatment and even diagnosis are still\n|>being SYSTEMATICALLY IGNORED and SUPPRESSED by the MONEY-GRUBBING and POWER-\n|>MONGERING \"medical\" establishment.\n\n|That's not the half of it.  Did you realize that all medical doctors have\n|now been replaced by aliens?\n\nYup.  By the way, what planet are you from, and once you got here, did\nyou encounter those prejudices against foreign medical graduates?\n\n  -- David Wright, Hitachi Computer Products (America), Inc.  Waltham, MA\n     wright@hicomb.hi.com  ::  These are my opinions, not necessarily \n     Hitachi's, though they are the opinions of all right-thinking people\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7394, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Mike Francesa's 1993 Predictions\nFrom: gajarsky@pilot.njin.net (Bob Gajarsky - Hobokenite)\n <1993Apr2.171819.1@ulkyvx.louisville.edu> <1993Apr5.123904.17806@porthos.cc.bellcore.com> <1993Apr5.162835.1003@Princeton.EDU>\nOrganization: Somewhere in Hoboken\nLines: 9\n\nhmm - i thought francesca's predictions ALWAYS hovered at or below\n .500, especially in the nfl.  (not counting college football\n bowl day).\n\nhe's a nice analyst for explaining past tense, and for mapping out\n what plays teams might do - but for predicting the future, he only\n looks good whne compared to russo.\n\n- bob gaj\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7395, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 15/15 - Orbital and Planetary Launch Services\nSupersedes: <launchers_730956689@cs.unc.edu>\nOrganization: University of North Carolina, Chapel Hill\nLines: 195\nDistribution: world\nExpires: 6 May 1993 20:02:47 GMT\nNNTP-Posting-Host: mahler.cs.unc.edu\nKeywords: Frequently Asked Questions\n\nArchive-name: space/launchers\nLast-modified: $Date: 93/04/01 14:39:11 $\n\nORBITAL AND PLANETARY LAUNCH SERVICES\n\nThe following data comes from _International Reference Guide to Space Launch\nSystems_ by Steven J. Isakowitz, 1991 edition.\n\nNotes:\n    * Unless otherwise specified, LEO and polar paylaods are for a 100 nm\n\torbit.\n    * Reliablity data includes launches through Dec, 1990. Reliabity for a\n\tfamiliy of vehicles includes launches by types no longer built when\n\tapplicable\n    * Prices are in millions of 1990 $US and are subject to change.\n    * Only operational vehicle families are included. Individual vehicles\n\twhich have not yet flown are marked by an asterisk (*) If a vehicle\n\thad first launch after publication of my data, it may still be\n\tmarked with an asterisk.\n\n\nVehicle        |     Payload  kg  (lbs)   | Reliability | Price | Launch Site\n(nation)       |  LEO\t   Polar    GTO   |\t\t|\t| (Lat. & Long.)\n--------------------------------------------------------------------------------\n\nAriane\t\t\t\t\t    35/40  87.5%\t  Kourou\n(ESA)\t\t\t\t\t\t\t\t (5.2 N, 52.8 W)\n  AR40\t\t4,900\t  3,900    1,900    1/1\t\t  $65m\n\t       (10,800)  (8,580)  (4,190)\n  AR42P\t\t6,100\t  4,800    2,600    1/1\t\t  $67m\n\t       (13,400)  (10,600) (5,730)\n  AR44P\t\t6,900\t  5,500    3,000    0/0 ?\t  $70m\n\t       (15,200)  (12,100) (6,610)\n  AR42L\t\t7,400\t  5,900    3,200    0/0 ?\t  $90m\n\t       (16,300)  (13,000) (7,050)\n  AR44LP\t8,300\t  6,600    3,700    6/6\t\t  $95m\n\t       (18,300)  (14,500) (8,160)\n  AR44L\t\t9,600\t  7,700    4,200    3/4\t\t  $115m\n\t       (21,100)  (16,900) (9,260)\n\n* AR5\t       18,000\t   ???\t   6,800    0/0\t\t  $105m\n\t      (39,600)\t\t  (15,000)\n\t       [300nm]\n\n\nAtlas\t\t\t\t\t   213/245 86.9%\t Cape Canaveral\n(USA)\t\t\t\t\t\t\t\t (28.5 N, 81.0W)\n  Atlas E\t --\t   820\t     --     15/17\t  $45m\t Vandeberg AFB\n\t\t\t  (1,800)\t\t\t\t(34.7 N, 120.6W)\n\n  Atlas I\t5,580\t  4,670    2,250    1/1\t\t  $70m\n\t       (12,300)  (10,300) (4,950)\n\n  Atlas II\t6,395\t  5,400    2,680    0/0\t\t  $75m\n\t       (14,100)  (11,900) (5,900)\n\n  Atlas IIA\t6,760\t  5,715    2,810    0/0\t\t  $85m\n\t       (14,900)  (12,600) (6,200)\n\n* Atlas IIAS\t8,390\t  6,805    3,490    0/0\t\t  $115m\n\t       (18,500)  (15,000) (7,700)\n\n\nDelta\t\t\t\t\t   189/201 94.0%\t Cape Canaveral\n(USA)\t\t\t\t\t\t\t\t Vandenberg AFB\n  Delta 6925\t3,900\t  2,950    1,450   14/14\t  $45m\n\t       (8,780)\t (6,490)  (3,190)\n\n  Delta 7925\t5,045\t  3,830    1,820    1/1\t\t  $50m\n\t       (11,100)  (8,420)  (2,000)\n\n\nEnergia\t\t\t\t\t    2/2  100%\t\t Baikonur\n(Russia)\t\t\t\t\t\t\t (45.6 N 63.4 E)\n  Energia      88,000\t 80,000     ???     2/2\t\t  $110m\n\t      (194,000) (176,000)\n\n\nH series\t\t\t\t    22/22 100%\t\t Tangeshima\n(Japan)\t\t\t\t\t\t\t\t(30.2 N 130.6 E)\n* H-2\t       10,500\t 6,600\t   4,000    0/0\t\t  $110m\n\t      (23,000)\t(14,500)  (8,800)\n\n\nKosmos\t\t\t\t\t   371/377 98.4%\t Plestek\n(Russia)\t\t\t\t\t\t\t (62.8 N 40.1 E)\n  Kosmos      1100 - 1350  (2300 - 3000)\t\t $???\t Kapustin Yar\n\t      [400 km orbit ??? inclination]\t\t\t (48.4 N 45.8 E)\n\n\nLong March\t\t\t\t    23/25 92.0%\t\t Jiquan SLC\n(China)\t\t\t\t\t\t\t\t (41 N\t100 E)\n* CZ-1D\t\t 720\t  ???\t    200     0/0\t\t  $10m\t Xichang SLC\n\t\t(1,590)\t\t   (440)\t\t\t (28 N\t102 E)\n\t\t\t\t\t\t\t\t Taiyuan SLC\n  CZ-2C\t\t3,200\t  1,750    1,000    12/12\t  $20m\t (41 N\t100 E)\n\t       (7,040)\t (3,860)  (2,200)\n\n  CZ-2E\t\t9,200\t   ???\t   3,370    1/1\t\t  $40m\n\t       (20,300)\t\t  (7,430)\n\n* CZ-2E/HO     13,600\t   ???\t   4,500    0/0\t\t  $???\n\t      (29,900)\t\t  (9,900)\n\n  CZ-3\t\t???\t   ???\t   1,400    6/7\t\t  $33m\n\t\t\t\t  (3,100)\n\n* CZ-3A\t\t???\t   ???\t   2,500    0/0\t\t  $???m\n\t\t\t\t  (5,500)\n\n  CZ-4\t\t4,000\t   ???\t   1,100    2/2\t\t  $???m\n\t       (8,800)\t\t  (2,430)\n\n\nPegasus/Taurus\t\t\t\t    2/2   100%\t\tPeg:  B-52/L1011\n(USA)\t\t\t\t\t\t\t\tTaur: Canaveral\n  Pegasus\t 455\t   365\t    125     2/2\t\t  $10m\t  or Vandenberg\n\t\t(1,000)   (800)    (275)\n\n* Taurus\t1,450\t  1,180     375     0/0\t\t  $15m\n\t       (3,200)\t (2,600)   (830)\n\n\nProton\t\t\t\t\t   164/187 87.7%\t Baikonour\n(Russia)\n  Proton       20,000\t   ???\t   5,500   164/187\t  $35-70m\n\t      (44,100)\t\t  (12,200)\n\n\nSCOUT\t\t\t\t\t    99/113 87.6%\tVandenberg AFB\n(USA)\t\t\t\t\t\t\t\tWallops FF\n  SCOUT G-1\t 270\t   210\t    54\t    13/13\t  $12m\t(37.9 N  75.4 W)\n\t\t(600)\t  (460)    (120)\t\t\tSan Marco\n\t\t\t\t\t\t\t\t(2.9 S\t40.3 E)\n* Enhanced SCOUT 525\t   372\t   110\t    0/0\t\t  $15m\n\t\t(1,160)   (820)   (240)\n\n\nShavit\t\t\t\t\t    2/2   100%\t\tPalmachim AFB\n(Israel)\t\t\t\t\t\t\t( ~31 N)\n  Shavit\t ???\t   160\t   ???\t    2/2\t\t  $22m\n\t\t\t  (350)\n\nSpace Shuttle\t\t\t\t    37/38  97.4%\tKennedy Space\n(USA)\t\t\t\t\t\t\t\tCenter\n  Shuttle/SRB  23,500\t   ???\t   5,900    37/38\t  $248m (28.5 N 81.0 W)\n\t      (51,800)\t\t  (13,000)\t\t  [FY88]\n\n* Shuttle/ASRM 27,100\t   ???\t   ???\t    0/0\n\t      (59,800)\n\n\nSLV\t\t\t\t\t    2/6    33.3%\tSHAR Center\n(India)       (400km)  (900km polar)\t\t\t\t(13.9 N 80.4 E)\n  ASLV\t\t150\t   ???\t    ???     0/2\t\t  $???m\n\t       (330)\n\n* PSLV\t\t3,000\t  1,000     450     0/0\t\t  $???m\n\t       (6,600)\t (2,200)   (990)\n\n* GSLV\t\t8,000\t   ???\t   2,500    0/0\t\t  $???m\n\t       (17,600)\t\t  (5,500)\n\n\nTitan\t\t\t\t\t    160/172 93.0%\tCape Canaveral\n(USA)\t\t\t\t\t\t\t\tVandenberg\n  Titan II\t ???\t  1,905     ???     2/2\t\t   $43m\n\t\t\t (4,200)\n\n  Titan III    14,515\t  ???\t   5,000    2/3\t\t   $140m\n\t      (32,000)\t\t  (11,000)\n\n  Titan IV/SRM 17,700\t 14,100    6,350    3/3\t\t   $154m-$227m\n\t      (39,000)\t(31,100)  (14,000)\n\n Titan IV/SRMU 21,640\t 18,600    8,620    0/0\t\t   $???m\n\t      (47,700)\t(41,000)  (19,000)\n\n\nVostok\t\t\t\t\t    1358/1401 96.9%\tBaikonur\n(Russia)\t\t [650km]\t\t\t\tPlesetsk\n  Vostok\t4,730\t  1,840     ???     ?/149\t   $14m\n\t      (10,400)\t(4,060)\n\n  Soyuz\t\t7,000\t   ???\t    ???     ?/944\t   $15m\n\t      (15,400)\n\n  Molniya\t1500kg (3300 lbs) in\t    ?/258\t   $???M\n\t\tHighly eliptical orbit\n\n\nZenit\t\t\t\t\t    12/13  92.3%\tBaikonur\n(Russia)\n  Zenit        13,740\t 11,380    4,300    12/13\t   $65m\n\t      (30,300)\t(25,090)  (9,480)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7396, "properties": {"category": "comp.windows.x", "text": "From: mbell@techbook.techbook.com (Max Bell)\nSubject: WANTED: Info on Dedicated X Server Kernel for Sun3/100 Series\nOrganization: TECHbooks Public Access\nLines: 9\nDistribution: na\nNNTP-Posting-Host: techbook.techbook.com\nSummary: If you know where to find it, please send email.\nKeywords: sun kernel x server\n\nIf anyone has any information about the existence or location of a\ndedicated X server kernel for the Sun3, please send email.  I am\ntrying to put some neglected Sun3s to good use but they don't have\nenough memory for SunOS 4.1.1.  Thanks in advance for any help.\n-- \n\n /\\  /\\/  Max Bell                    | I used to think I'd emmigrate to escape\n/  \\/ /\\  mbell@techbook.com          | the tyrants, but now I think I'll stay\n~~~~~~~~~ mbell@cie.uoregon.edu\t      | and make them leave instead.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7397, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wongda@eecg.toronto.edu (Daniel Y.H. Wong)\nSubject: LOOKING FOR THE LATEST ACTIX DRIVERS FOR WINDOWS\nOrganization: Dept. of Electrical Engineering, University of Toronto, Canada\nDistribution: comp\nLines: 14\n\nHi, anyone have the latest drivers for the Actix Graphics Accelerator Card? \n(32 plus) The one I have (version 1.21) seem to have a lot of problems. \nI believe the latest version is 1.3 and would someone please \nupload it to some ftp site so that I can download it. \n\nThanks \n\n\n-- \n\n\nDaniel Y.H. Wong\t\t\t\t\tUofT:(416)978-1659\nwongda@picton.eecg.toronto.edu\t\t\t\tElectrical Engineering\n--\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7398, "properties": {"category": "rec.sport.hockey", "text": "From: Patrick Walker <F1HH@UNB.CA>\nSubject: Did you really expect Toronto to go anywhere?  REALLY!\nLines: 13\nOrganization: The University of New Brunswick\n\nDetroit is a very disciplined team.  There's a lot of Europeans\nin Detroit which would make the game fast, so Toronto would have\nto slow the game down, which means drawing penalties, as a last\nresort anyway.  Toronto will be a good team as soon as they get\nmore good players.  Toronto is just an average team, Detroit isn't\nBallard screwed Toronto when he was owner.  Everyone knows that.\nand it's going to take time for Toronto to become a real force.\nI expect Gilmour to be burnt out next year.  He can't pull the\nwhole team forever.\n\nPatrick Walker\nUniversity of New Brunswick\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7399, "properties": {"category": "rec.sport.baseball", "text": "From: dwarner@journalism.indiana.edu (David J.)\nSubject: Re: Why Spanky?\nNntp-Posting-Host: clove.journalism.indiana.edu\nReply-To: dwarner@journalism.indiana.edu\nOrganization: Indiana University\nLines: 37\n\nSherri Nichols writes\n> In article <1ql93bINN1s5@postoffice1.psc.edu> boone@psc.edu (Jon Boone)  \nwrites:\n> >       Spanky is too slow!  If he were quicker, he would still be here.\n> >But with Slaught and Tom Prince, they didn't want to lose Prince in order\n> >to bring up that 11th pitcher.  Slaught is about as good as Spanky and\n> >Prince is coming along nicely!\n> \n> Tom Prince is a 28 year old no-hit catcher.  Think of him as a young Dann\n> Bilardello.  \n\nOr a young Don Bordello...\n\n> I can't begin to fathom why the Pirates have been so afraid of\n> losing this guy, who's been in AAA most of the last 5 seasons.  The Pirates\n> released Kirk Gibson last year because Prince was out of options, then\n> eventually sent Prince down anyway, and he cleared waivers without a peep.\n> He's another year older, and still can't hit; why do they think he wouldn't\n> clear waivers now?  Why would they care?\n\nThere's a strong possibility that the Bucs have absolutely no other catching  \nprospects in the minors at this point -- at least nobody ready for any serious  \nAAA/majors duty.  The main reason they might have stayed with Prince could be  \njust age, especially if Spanky was creeping toward his mid-30s or something.\n \nAll things considered, though, I'd be a lot more comfortable with Spanky behind  \nthe plate than Prince.  Isn't there decent backup backstop out there looking  \nfor work?\n\n> Sherri Nichols\n> snichols@adobe.com\n\n--\nDavid J.(dwarner@journalism.indiana.edu)*****Blue Riddle Productions 1993\n*-------------------------------It's on.--------------------------------*\n***\"THE RAP IS AN ART EP\" is coming out on tape -- this time for real.***\n*------------------------E-mail me for the 411.-------------------------*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7400, "properties": {"category": "sci.electronics", "text": "From: gerald.belton@ozonehole.com (Gerald Belton) \nSubject: Re: A question about 120V\nDistribution: world\nOrganization: Ozone Online Operations, Inc., DBA The Ozone Hole BBS\nReply-To: gerald.belton@ozonehole.com (Gerald Belton) \nLines: 38\n\n>>SO..  Here's my question.  It seems to me that I'd have the\n>>same electrical circuit if I hooked the neutral jumper from the\n>>neutral over to the ground screw on new 'three prong' grounding\n>>outlets. What's wrong with my reasoning here?\n\n>First, go to the local hardware store and pick up a copy of \"Wiring\n>Simplified\" by H.L. Richter.  Now if your house is wired with metal\n>conduit, you don't need a seperate ground wire (assuming the house\n>is wired correctly and the pipes are connected to a cold water\n>pipe in your basement).  The outlets that have a neutral hooked to\n>the ground screw seem wrong.  Anyone else think so?\n\nBack in the 70's I was a service technician for a cash register company.\nThe cash registers used microprocessor circuits and back then they were\nVERY susceptible to electrostatic discharge and line noise.  The biggest\nproblems came from outlets that were not properly grounded.\n\nIn almost every place we went to do an installation, we found outlets\nwith the ground connected to the neutral.  For 99.9% of the things you\ncan plug into one of these, they work fine.  For our cash registers they\nwere a nightmare -- line noise tended to scramble the memory\nperiodically.\n\nWith modern electronics using switching power supplies this should be\nless of a problem.  Even the company I used to work for is no longer\nrecommending a dedicated line with a seperate ground for their\nequipment.  I imagine if you check MOST household wiring you will find\nthat the ground and neutral are connected.  Although not ideal, it\nshould be o.k. for most applications.\n\n---\n . SLMR 2.1 . My reality check just bounced.\n                                \n----\nThe Ozone Hole BBS * A Private Bulletin Board Service * (504)891-3142\n3 Full Service Nodes * USRobotics 16.8K bps * 10 Gigs * 100,000 Files\nSKYDIVE New Orleans! * RIME Network Mail HUB * 500+ Usenet Newsgroups\nPlease route all questions or inquiries to:  postmaster@ozonehole.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7401, "properties": {"category": "rec.sport.baseball", "text": "From: bdunn@cco.caltech.edu (Brendan Dunn)\nSubject: Re: Defensive Averages 1988-1992, Third Base\nOrganization: California Institute of Technology, Pasadena\nLines: 34\nNNTP-Posting-Host: punisher.caltech.edu\n\nIn article <C5L068.6v3@srgenprp.sr.hp.com> craigs@srgenprp.sr.hp.com (Craig Stelter) writes:\n>Gaetti, Gary         .616  .638  .655  .632  ----   0.637\n>\n>Apologies if I don't know what I'm talking about :-), but as a Twins fan,\n>I like to think they have good players in any park.  Not sure if I remember\n>completely or not, but I think Gaetti played with the Twins in '87 for the \n>world series, and again in '88 (note that's his lowest of the 4).  I believe \n>the next 3 (or at least the last two) were played with the Angels.   Lots\n>of factors make a player excell...  I hate it when so many use the dome.\n>It may not be ideal, but nice to comfortably enjoy baseball and football \n>even when it's snowing and raining.\n>\n>-Craig\n>\n>I'm sure the company for which I work does not have all the same opinions \n>that I do...\n\n  The event that had the most impact on Gaetti's career was his leg injury\nin 1988.  His performance dropped radically from 1988 to 1989.  He was \nstill with the Twins in 1989 and 1990, but if you look at his stats (both\noffensive and defensive), he never has come back to his pre-injury level.\n\nBrendan\n\n\n\n\n\n\n\n\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7402, "properties": {"category": "sci.electronics", "text": "From: dhembrow@eoe.co.uk (David Hembrow)\nSubject: Re: SID chip to IBM system bus\nOrganization: EO Europe Limited, Cambridge, UK\nLines: 10\nX-Newsreader: TIN [version 1.1 PL6]\n\nMr MC Howell (g90h6721@hippo.ru.ac.za) wrote:\n: Please don't ask questions like \"why don't you buy a soundblaster\".  The\n: answer is simple \"Overpriced considering the sound quality\".\n\nWhy not try one of the projects to build a DAC connected to the parallel\nport as documented in some files which come with modplay ? These vary from\na 4 DAC design to a simple single DAC made only of resistors.-- \nDavid Hembrow                   EO Europe Ltd.,\nemail:  dhembrow@eoe.co.uk      Abberley House, Granhams Road,\n                                Great Shelford, Cambridge CB2 5LQ, England\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7403, "properties": {"category": "comp.graphics", "text": "From: froument@lifl.lifl.fr (Froumentin Max)\nSubject: WANTED: Atomic Energy Res. Establishment (UK) techreport\nOrganization: Laboratoire d'Informatique Fondamentale de Lille\nLines: 16\nDistribution: comp\nNNTP-Posting-Host: lifl.lifl.fr\n\nI'm looking for the following paper:\n\nMarlow, S. and Powell, M.J.D.\nA FORTRAN subroutine for plotting the part of a conic that is inside a given\ntriangle. Rep. R-8336, Atomic Energy Res. Establishment, Harwell, England\n1976\n\nOr anything related (including 3D cases)\n Max\n--\n-----------------------------------------------------------------------------\nMax Froumentin                    |\nLaboratoire d'Informatique        |  \"Always better, never first.\"         \nFondamentale de Lille             |         - Tigran Petrossian\nFrance                            |\n-----------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7404, "properties": {"category": "comp.windows.x", "text": "From: ajaffe@oddjob.uchicago.edu (Andrew Jaffe)\nSubject: Key definitions in Emacs + X\nOrganization: University of Chicago, Astronomy and Astrophysics\nLines: 42\n\nHi.\n\nI use Emacs and I want to customize my keyboard better.\nWhen I set up stuff in my .emacs with a keymap and define-keys,\nI can only access certain of the keys on my X-Terminal's\nkeyboard. I can't get e.g. F10, Home, End, PgUp, PgDn; they all\nseem to have either the same or no keycode. I have a feeling\nthis can't be fixed in emacs itself, but that I need to do some\nxmodmap stuff. Can someone help me?\n\nBy the way, I've checked the X-FAQ and posted a similar message\nto gnu.emacs.help to no response.\n\nCurrently I have the following in my .emacs file (inside a 'cond'):\n\n ((string-match \"^xterm\" (getenv \"TERM\"))\n;; done by aj 8/92. I don't know what most of this does...\n   (defvar xterm-map (make-sparse-keymap) \"Keymap for xterm special keys\")\n   (define-key esc-map \"[\" 'xterm-prefix)\n   (fset 'xterm-prefix xterm-map)\n  ;;Keys F1 to F12\n   (define-key xterm-map \"224z\" 'goto-line)        ;F1\n   (define-key xterm-map \"225z\" 'what-line)        ;F2\n   (define-key xterm-map \"226z\" 'rmail)            ;F3\n   (define-key xterm-map \"227z\" 'replace-string)   ;F4\n   (define-key xterm-map \"228z\" 'end-of-line)      ;F5\n   (define-key xterm-map \"229z\" 'kill-line)        ;F6\n   (define-key xterm-map \"230z\" 'yank)             ;F7\n   (define-key xterm-map \"231z\" 'beginning-of-line);F8\n   (define-key xterm-map \"232z\" 'end-of-line)      ;F9\n   (define-key xterm-map \"192z\" 'scroll-down)      ;F11\n   (define-key xterm-map \"193z\" 'scroll-up)        ;F12\n ;;Keys F10, up, down, etc. ??????? can't get the keys \n   (define-key xterm-map \"-1z\" 'set-mark-command))\n)\n\n\n-- \nAndrew Jaffe                                     ajaffe@oddjob.uchicago.edu\nDep't of Astronomy and Astrophysics, U. Chicago\n5640 S. Ellis Ave                                (312) 702-6041\nChicago, IL 60637-1433                           (312) 702-8212 FAX\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7405, "properties": {"category": "sci.electronics", "text": "From: larryhsu@mtl.mit.edu (Lawrence Hsu)\nSubject: Shrunken monitor window?\nOrganization: MIT Microsystems Technology Laboratories\nLines: 12\nNNTP-Posting-Host: mtl.mit.edu\n\nDoes anyone know what causes the ever-growing black border around the\nedges of my computer screen?  The growth has been gradual so I don't\nknow how long it's taken to get this bad.  I have a 19\" DEC (?)\ncolor monitor, maybe five years old, and the black border is about 1.1\ninches on the left and right sides, about 1.75 inches on the bottom and\nnegligible at the top of the screen.  The only controls are\nbrightness knob, contrast knob, deGauss switch, and power switch.\n\nIs there anything to be done, or are the monitor's days numbered?\n\nLarry Hsu\nlarryhsu@mtl.mit.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7406, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: DEC pixmap size\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 28\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nIn article <1964@igd.fhg.de>, haase@igd.fhg.de (Helmut Haase (Goebel)) writes:\n\n|> I've got a problem concerning the maximum size of X pixmaps in DECwindows.\n|> \n|> I am using a DECstation 5000/200 running ULTRIX V4.2 (Rev. 96) System #2\n|> and UWS V4.2 (Rev. 272) (DECwindows). Our color display has 1280x1024\n|> pixels.\n|> \n|> \n|> On other hardware (HP, SGI) I am able to allocate much larger pixmaps.\n|> \n|> Did anyone have similar problems before or does onyone know how I can\n|> configre my system to allow for larger pixmaps?\n|> \n|> Any suggestins are welcome. Please send mail to \" haase@igd.fhg.de \".\n|> \n\nDEC does this only for their PX and PXG servers, known as 3D accelerators.\nThis boards have local offscreen memory which is limited and slow to\nhandle, thus they set this limit.\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7407, "properties": {"category": "soc.religion.christian", "text": "From: cpage@two-step.seas.upenn.edu (Carter C. Page)\nSubject: Re: Prayer in Jesus' Name\nOrganization: University of Pennsylvania\nLines: 46\n\nIn article <Apr.9.01.09.22.1993.16580@athos.rutgers.edu> munns@cae.wisc.edu (Scott Munns) writes:\n>Eventually, we got around to how\n>we should pray in Jesus' name.  Then, an excellent question came up, one\n>that I don't have a real answer to.  The question was, \"If we need to pray\n>in Jesus' name, what about the people before Jesus?  They prayed to God\n>and he listened then, in spite of their sins.  Why can't it be the same\n>way now?\"\n\n\t\"And in that day you will ask Me no question.  Truly, truly, I say to \n\tyou, if you shall ask the Father for anything, He will give it to you \n\tin my name.  Until now you have asked for nothing in My name; ask, and \n\tyou will receive, that your joy may be made full.\"\n\t\t\t\t-John 16:23-24\n\nI don't believe that we necessarily have to say \" . . . In Christ's name.  \nAmen,\" for our prayers to be heard, but it glorifies the Son, when we \nacknowledge that our prayer is made possible by Him.  I believe that just as \nthose who were saved in the OT, could only be saved because Jesus would one day\nreconcile God to man, He is the only reason their prayers would be heard by \nGod.\n\n\tFor all of us have become like one who is unclean,\n\tAnd all our righteous deeds are like a filthy garment;\n\tAnd all of us wither like a leaf,\n\tand our iniquities, like the wind, take us away.\n\t\t\t\t-Isaiah 64:6, NAS\n\nOur prayers like the rest of our deeds are too unholy to go directly to the\nFather because they are tainted by our sin.  Only by washing these prayers with\nChrist's blood are they worthy to be lifted to to the Father.\n\n\t\"First, I thank my God through Christ Jesus . . .\"\n\t\t\t\t-Romans 1:8, NAS\n\nSome scholars believe that this is Paul recognizing that even his thanks are \ntoo unholy for the Father.\n\tBasically, prayer is a gift of grace, I believe that only through Jesus\ndo our prayers have any power; thus, praying in His name glorifies and praises \nJesus for this beautiful and powerful gift He has given us.\n\n+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=\nCarter C. Page           | Of happiness the crown and chiefest part is wisdom,\nA Carpenter's Apprentice | and to hold God in awe.  This is the law that,\ncpage@seas.upenn.edu     | seeing the stricken heart of pride brought down,\n                         | we learn when we are old.  -Adapted from Sophocles\n+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=+-=-+-=+-=-+=-+-=-+-=-+=-+-=\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7408, "properties": {"category": "talk.religion.misc", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 45\n\nIn article <1r3qab$o1v@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n>In article <930421.102525.9Y9.rusnews.w165w@mantis.co.uk> mathew <mathew@mantis.co.uk> writes:\n>#frank@D012S658.uucp (Frank O'Dwyer) writes:\n>#> In article <930420.100544.6n0.rusnews.w165w@mantis.co.uk> mathew\n>#> <mathew@mantis.co.uk> writes:\n>#> #This is complete nonsense.  Relativism means saying that there is no absolut\n>#> #standard of morality; it does NOT mean saying that all standards of morality\n>#> #are equally good.\n>#> \n>#> Presumably this means that some moral systems are better than others?\n>#> How so?  How do you manage this without an objective frame of reference?\n>#\n\nEither Frank O'Dwyer or mathew said:\n\n[...stiff deleted...]\n\n>#Which goes faster, a bullet or a snail?  How come you can answer that when\n>#Einstein proved that there isn't an objective frame of reference?\n\n[...stiff deleted...]\n\nSpeed is a quantifiable measure resulting from a set of methods that\nwill result in the same value measured no matter the reference.  A \nbullet with zero velocity sitting on a table on a train moving 60mph\nwill be moving at a speed of\n\n        (a) 0mph to someone on the train.\n        (b) 60mph to someone stationary next to the train.\n\nThe reference frame makes the speed relative.  But what's interesting\nhere is that every person on the train will see a stationary bullet.\nEvery person off, a bullet moving 60mph.  \n\nI know of no train where all the people on it, every time it is\nfilled, will see a moral problem in exactly the same way.\n\n-- \n jim halat         halat@bear.com     \nbear-stearns       --whatever doesn't kill you will only serve to annoy you--\n   nyc             i speak only for myself\n\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7409, "properties": {"category": "sci.crypt", "text": "From: eck@panix.com (Mark Eckenwiler)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: NWO Steering Committee\nDistribution: na\nLines: 26\n\nIn <1993Apr17.032828.14262@clarinet.com>, brad@clarinet.com sez:\n>\n>Do the police normally reveal every tap they do even if no charges are\n>laid?   In many ways, it would be a positive step if they had to.\n>Judges set time limits on warrants, I assume.  \n\nUnder the relevant federal law, 18 USC sec. 2518(8)(d), the\nauthorizing judge must notify the targets within 90 days after the tap\nperiod (with extensions) expires.  This is the \"normal\" practice.\n\nOf course, no wiretap law would be complete without the Unless Clause,\nwhich in subsection 8(d) reads like this: \"On an ex parte showing\n[i.e., by the gov't without opposition, since that would obviously\ninvolve notice to the targets] of good cause to a judge of competent\njurisdiction the serving of the inventory required by this subsection\n[the order itself; dates of interception; etc.] *may be postponed*\"\n(emphasis added).\n\n\n[Followups directed to a few select groups.]\n\n-- \nMORAL: Always Choose the Right Sort of Parents \n       Before You Start in to be Rough\n                                        - George Ade\n\tMark Eckenwiler    eck@panix.com    ...!cmcl2!panix!eck\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.350+0000", "event": "documents", "entityId": 7410, "properties": {"category": "rec.autos", "text": "From: tulsi@ws19.b30.ingr.com (Neeraj Tulsian)\nSubject: Re: Mazda RX7 parts - JC Whitney\nLines: 5\nReply-To: tulsi@ws19.b30.ingr.com\nOrganization: Intergraph, AL\n\n\tTheir number is 1-800-541-4716\n\tthey are based in Chicago, IL in case\n\tyou need to call dir assistance.\n\n\tTheir prices are more down to earth than\n\tANY other source for car innards/outers.\n\n\tThey will send you a free catalog. \n\n\tNeeraj\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7411, "properties": {"category": "sci.crypt", "text": "From: ray@ole.cdac.com (Ray Berry)\nSubject: Re: Hard drive security for FBI targets\nOrganization: Cascade Design Automation\nLines: 32\n\nrja14@cl.cam.ac.uk (Ross Anderson) writes:\n\n>In article <1993Apr2.050451.7866@ucsu.Colorado.EDU>, cuffell@spot.Colorado.EDU \n>(Tim Cuffel) writes:\n\n>This suggests a new PC security product design approach - first fill the hard\n>drive with 50% random files and 50% files encrypted under a number of known \n>keys. Then whenever a new secret file is created, you delete a random file and\n>replace it with real encrypted data. New non-secret files are encrypted under\n>a known key.\n\n   Better yet, instead of thrashing around on the DOS file system, take\nit a step further.  Write yourself a minimal \"file system\" program that\nis used to create/delete files, en/decrypt them to ramdisk, list a\ndirectory. Put the util, password protected, on a floppy.\n\n   The catch is that the storage space used by this util is NOT part\nof the DOS file system.  Instead, defrag your disk, thus packing all\nallocated clusters into clusters 0-n.  Then use the back end of the\npartition to hold your 'stealth' file system.  Or, leave a small 2nd\npartition on the disk that is not assigned to DOS.  Another approach\nmight be to use a directory that contains a set of invariant files (DOS\nsystem files, for instance).  Due to DOS allocating a minimum storage \nunit of a \"cluster\" there is unused physical space on the disk between\nthe tail end of each file and the end of its associated cluster. These\ndead spaces could be concatenated and used to hold your stealth file\nsystem.\n\n   Now you have a situation where no encrypted data \"appears\" on your\ndisk at all :-). \n-- \nRay Berry kb7ht ray@ole.cdac.com  rjberry@eskimo.com  73407.3152@compuserve.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7412, "properties": {"category": "sci.med", "text": "From: shafer@rigel.dfrf.nasa.gov (Mary Shafer)\nSubject: Re: Inner Ear Problems from Too Much Flying?\nArticle-I.D.: rigel.SHAFER.93Apr6095951\nOrganization: NASA Dryden, Edwards, Cal.\nLines: 33\nIn-Reply-To: vida@mdavcr.mda.ca's message of 5 Apr 93 23:27:26 GMT\n\nOn 5 Apr 93 23:27:26 GMT, vida@mdavcr.mda.ca (Vida Morkunas) said:\n\nVida> Can one develop inner-ear problems from too much flying?  I hear\nVida> that pilots and steward/esses have a limit as to the maximum\nVida> number of flying hours -- what are these limits?  What are the\nVida> main problems associated with too many long-haul (over 4 hours)\nVida> trips?\n\nThe crew rest requirements are to prevent undue fatigue.  The cockpit\ncrew (pilot) limits are somewhat more stringent than the cabin crew\nlimits for this reason.  Crew rest requirements address amount of time\non duty plus rest time.  A tired crew is an accident-prone crew.\n\nThe only limits I know of for inner-ear problems are in military\naircraft, which are frequently unpressurized or less reliably\npressurized.  Not being able to clear the ears renders aircrew members\nDNIF (duties not involving flying) or grounded until the ears clear.\n\nFlying can accentuate problems if ears don't clear.  If you don't have\nbig pressure changes, you may not know that you've got a problem.  But\nif you zip up to 5,000 or 6,000 ft (the usual cabin altitude in an\nairliner) and then back down to sea level, you may discover a problem.\nEars don't clear readily because of allergies, colds, infections, and\nanatomical problems.  The last won't change; the first three can.\nMedication (decongestants or antihistimines, usually) can help.\nChewing gum, sucking hard candy (or a bottle for babies),\nyawning--these will help all four causes.\n\n\n--\nMary Shafer  DoD #0362 KotFR NASA Dryden Flight Research Facility, Edwards, CA\nshafer@rigel.dfrf.nasa.gov                    Of course I don't speak for NASA\n \"A MiG at your six is better than no MiG at all.\"  Unknown US fighter pilot\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7413, "properties": {"category": "talk.politics.guns", "text": "From: <34AEJ7D@CMUVM.BITNET>\nSubject: Re: The 'pill' for Deer = No Hunting\nDistribution: usa\n <1qfrhbINNo80@cae.cad.gatech.edu>\nLines: 27\n\nIn article <1qfrhbINNo80@cae.cad.gatech.edu>, vincent@cad.gatech.edu (Vincent\nFox) says:\n>[...]\n>this measure as it will prevent the evil Bambi-killers from hunting,\n>and another will fight it for the interference with Nature that it is.\n\nSuch a measure would also have another benefit. It would relieve the\nvarious states of the thorny problem of what to do with the hundreds\nof millions of dollars hunters pour into the economy annually. I'm\nsure that, to attain sure a lofty, humane, liberal and ecologically\n(not to mention politically) correct goal, the environmental and animal\nrights groups/individuals supporting such a measure would be more than\nwilling to add their names to a list of supporters seeking increased\ntaxation to replace these lost revenues. I am equally confident that\nthese same entities, given their noteworthy record in the area of social\nresponsibility and respect for private property, would feel morally\nand ethically bound to raise the necessary funds to acquire the\nhundreds of thousands of acres of land now held in private hands\nsolely for use as private hunting preserves by the landowner(s). To\ndo less than this would place these same groups/individuals in\nthe ethically untenable (to say nothing of environmentally and\npolitically incorrect) position of sanctioning the logging and\nsubsequent development and urbanization of these former private\nhunting lands, which would no longer be useable by, or of any\nbenefit to, the landowner(s) in such a capacity.\n\nW. K. Gorman\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7414, "properties": {"category": "sci.med", "text": "Organization: Arizona State University\nFrom: <ICGLN@ASUACAD.BITNET>\nSubject: Re: Burzynski's \"Antineoplastons\"\nDistribution: world\nLines: 16\n\nA good source of information on Burzynski's method is in *The Cancer Industry*\nby pulitzer-prize nominee Ralph Moss. Also, a non-profit organization called\n\"People Against Cancer,\" which was formed for the purpose of allowing cancer\npatients to access information regarding cancer therapies not endorsed by the\ncancer industry, but which have shown highly promising results (all of which\nare non-toxic). Anyone interested in cancer therapy should contact this organi-\nzation ASAP:              People Against Cancer\n                          PO Box 10\n                          Otho IA 50569-0010\n(515)972-4444\nFAX (515)972-4415\n\n\npeace\n\ngreg nigh\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7415, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bsmith@access.digex.com (Barry Smith)\nSubject: Program Manager kills my Group files!\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 3\nNNTP-Posting-Host: access.digex.net\n\nAny clue? Some times when I enter Win 3.1 ProgMan says that I need to rebuild\na group! It's quite annoying!\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7416, "properties": {"category": "comp.sys.mac.hardware", "text": "From: David_Anthony_Guevara@cup.portal.com\nSubject: Centris 650 Math CoProcessor option\nOrganization: The Portal System (TM)\nDistribution: usa\nLines: 21\n\n\nSorry if this is a FAQ.  I don't normally read comp.sys.mac.hardware.\nI am purchasing a couple of Centris 650's.  I configured the systems\nas follows:\n\n\tEight (8) Mb RAM\n\tEthernet\n\t1 Mb VRAM\n\tMath CoProcessor option\n\nMy purchasing agent told me about the math coprocessor option and sent\nme the Apple summary documentation to prove it.  I ordered the coprocessor\noption, but I'm really not sure that we needed it.  I thought the '040 chip\nhad a math coprocessor built into it.  Has Apple had a math coprocessor chip\narchitectured to keep up with the speed of the '040 chip in the Centris 650?\nI am concerned that I may have set up a hardware bottleneck.  Please send your\nresponses to:  David_Anthony_Guevara@cup.portal.com.  I will summarize if there\nis enough interest.  Thanks!\n\n-- David Guevara,\n   Internet:  David_Anthony_Guevara@cup.portal.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7417, "properties": {"category": "talk.politics.guns", "text": "From: vojak@icebucket.stortek.com (Bill Vojak)\nSubject: ACLU policies\nOriginator: vojak@icebucket.stortek.com\nNntp-Posting-Host: icebucket.stortek.com\nOrganization: Storage Technology Corp.\nDistribution: usa\nLines: 59\n\nACLU Official Policies.\n\nPolicy 18, for example, opposes rating systems for motion\npictures: \"Industry sponsored ratings systems create the\npotential for constraining the creative process and thus\ncontracting the marketplace of ideas. Despite the stated goal of\nproviding guidance to parents, experience has shown that ratings\ninevitably have serious chilling effects on freedom of\nexpression.\"\n\nIn regards to the Pledge of Allegiance, the ACLU states in its\nPolicy 84: \"The insertion of the words `under God' into the\nPledge of Allegiance is a violation of the constitutional\nprinciple of separation of Church and State.\"\n\nPolicy 120 states that, \"Military conscription under any\ncircumstances is a violation of civil liberties and\nconstitutional guarantees.\" The ACLU objects to the draft even\nduring wartime because of the \"anti-democratic power it gives\ngovernment to wage war without support of the people.\"\n\nPolicy 125 states, \"The ACLU calls for a broad-based inquiry into\nwar crimes within the widest possible definition of war crimes\nagainst humanity, and crimes against the peace, focusing upon the\nactions of the United States military and other combatants\nagainst the people of South Vietnam, Laos, Cambodia, and North\nVietnam.\"\n\nPolicy 133 states, \"The ACLU recognizes that US government\nreliance upon nuclear weaponry as a dominant element of foreign\nand domestic policy, while propounded as a defense of democracy,\nis in fact a great threat to civil liberties. Four decades of\nadherence to this policy has fundamentally altered the nature of\nour constitutional democratic process and poses a paramount\nthreat to our civil liberties.\"\n\nPolicy 217 objects to roadblocks \"where drivers are stopped for\nsobriety tests\" because they \"violate Fourth Amendment\nprinciples.\" \n\nPolicy 242 states the following on criminal\nsentencing: \"The most appropriate correctional approach is\nreintegrating the offender into the community, and the goals of\nreintegration are furthered much more readily by working with the\noffender within the community than by incarceration. Probation\nshould be authorized by the legislature in every case; exceptions\nto the principle are not favored, and any exceptions, if made,\nshould be limited to the most serious of offenses, such as murder\nor treason.\"\n\n                                Bill Vojak\n                                vojak@icebucket.stortek.com\n\t\t\t\tNRA, ILA,\n                                Colorado Firearms Coalition\n------------------------------------------------------------\nThe CBS Nightly Propaganda With Dan Rather. (RATHER NOT!)\nThe CBS Nightly Propaganda With Dan Rather. (RATHER BIASED!)\n------------------------------------------------------------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7418, "properties": {"category": "rec.autos", "text": "From: kastle@bernoulli.WPI.EDU (Jacques W Brouillette)\nSubject: Re: ARCTIC WHEELS AUTO SHOW\nOrganization: Worcester Polytechnic Institute\nLines: 5\nNNTP-Posting-Host: bernoulli.wpi.edu\n\n-- \n : I want only two things from this world, a 58 Plymouth and a small  : \n : OPEC nation with which to fuel it.  This would be a good and just  :\n : thing.  Car Smashers can just go home and sulk.                    :\n :        Jacques Brouillette ---  Manufacturing Engineering          :\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7419, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: james@dlss2 (James Cummings)\nSubject: Re: Borland's Paradox Offer\nOrganization: RedRock Development\nDistribution: usa\nLines: 13\n\nIn article <5031@cvbnetPrime.COM> tbelmont@feds55.prime.com (Tom Belmonte x4858) writes:\n |I am considering buying Borland's Paradox for Windows since I\n |would like to use a database with Windows (I don't have/use\n |one yet) for both work/home use.  I would like to advantage\n |of Borland's \"$129.95 until April 30\" offer if this package\n |is everything that Borland claims it to be.  So, I was\n |wondering ... has anybody used this and/or have any opinions?\n\n\tYes, and it's pretty much what they claim.  I haven't had time to\ntry all of it.  Considering the price, even if you decide you don't like it,\nit should be saleable over the next 2-3 months for what you have in it (once\nthe price goes up).  All in all it's very serviceable; and in my humble\nopinion, more powerful than Access.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7420, "properties": {"category": "sci.space", "text": "From: looper@cco.caltech.edu (Mark D. Looper)\nSubject: Re: Command Loss Timer (Re: Galileo Update - 04/22/93)\nOrganization: California Institute of Technology, Pasadena\nLines: 23\nNNTP-Posting-Host: sandman.caltech.edu\nKeywords: Galileo, JPL\n\nprb@access.digex.com (Pat) writes:\n\n>Galileo's HGA  is stuck.   \n\n>The HGA was left closed,  because galileo  had a venus flyby.\n\n>If the HGA were pointed att he sun,  near venus,  it would\n>cook the foci elements.\n\n>question:  WHy couldn't Galileo's  course manuevers have been\n>designed such that the HGA  did not ever do a sun point.?\n\nThe HGA isn't all that reflective in the wavelengths that might \"cook the\nfocal elements\", nor is its figure good on those scales--the problem is\nthat the antenna _itself_ could not be exposed to Venus-level sunlight,\nlest like Icarus' wings it melt.  (I think it was glues and such, as well\nas electronics, that they were worried about.)  Thus it had to remain\nfurled and the axis _always_ pointed near the sun, so that the small\nsunshade at the tip of the antenna mast would shadow the folded HGA.\n(A larger sunshade beneath the antenna shielded the spacecraft bus.)\n\n--Mark Looper\n\"Hot Rodders--America's first recyclers!\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7421, "properties": {"category": "rec.sport.baseball", "text": "From: brian@meaddata.com (Brian Curran)\nSubject: Re: I've found the secret!\nOrganization: Mead Data Central, Dayton OH\nLines: 19\nDistribution: world\nNNTP-Posting-Host: taurus.meaddata.com\n\nIn article <1993Apr15.161730.9903@cs.cornell.edu>, tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n|> \n|> Why are the Red Sox in first place?  Eight games into the season, they\n|> already have two wins each from Clemens and Viola.  Clemens starts\n|> again tonight, on three days rest.\n\nHuh?  Clemens pitched last on Saturday, giving him his usual four days\nrest.  \n\n|> What's up?  Are the Sox going with a four-man rotation?  Is this why\n|> Hesketh was used in relief last night?\n-- \n------------------------------------------------------------------------------\nBrian Curran                 Mead Data Central              brian@meaddata.com \n------------------------------------------------------------------------------\n            \"I didn't think I should've been asked to catch\n                 when the temperature was below my age.\"\n               - Carlton Fisk, Chicago White Sox catcher, \n              on playing during a 40-degree April ball game\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7422, "properties": {"category": "soc.religion.christian", "text": "From: scott@uniwa.uwa.edu.au (Scott Shalkowski)\nSubject: Re: Doing the work of God??!!)\nOrganization: The University of Western Australia\nLines: 31\n\nDesiree Bradley (Desiree_Bradley@mindlink.bc.ca) wrote:\n\n<. . ..\n\n: The next Sunday, the sermon was about Joshua 6 (where the Israelites\n: take Jericho and then proceed to massacre everybody there --- except\n: for Rahab, who had sheltered the spies).  With those reports about\n: Bosnia in my mind, I felt uncomfortable about the minister saying that\n: the massacre (the one in Joshua) was right.  But what really bothered\n: me was that, if I was going to try taking Christianity seriously, I\n: shouldn't be so troubled about the reports of \"ethnic cleansing\" in\n: Bosnia.  Certainly, my sympathies shouldn't be with the Moslims.\n: Considering that the Bosnian Muslims are descendants of Christians\n: who, under Turkish rule, converted to Islam could the Serbs be doing\n: God's work?\n\nPerhaps it would be useful to ask whether those doing the ethnic\ncleansing could be said to be loving those they are killing in the very\nact of killing.  Does it reflect the attitude of God, who sends rain to\nboth the just and the unjust?  If not, then Christians should be\nuncomfortable with it.  Jesus gave his followers the law of love to\nfollow and it is by exhibiting this that disciples will be known. \nDoctrinal (or political) correctness is not the standard, so I don't see\nwhy Christians should be moved against the Serbs because their ancestors\nconverted from Christianity to Islam.  It seems to me that as a\nChristian you _should_ be troubled by the ethnic cleansing.\n--\n\n\nPeace,\nScott Shalkowski                            scott@arts.uwa.edu.au\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7423, "properties": {"category": "comp.graphics", "text": "From: amjad@eng.umd.edu (Amjad A Soomro)\nSubject: Gamma-Law Correction\nOrganization: Project GLUE, University of Maryland, College Park\nLines: 22\nDistribution: USA\nExpires: 05/15/93\nNNTP-Posting-Host: filter.eng.umd.edu\n\nHi:\n\nI am digitizing a NTSC signal and displaying on a PC video monitor.\nIt is known that the display response of tubes is non-linear and is\nsometimes said to follow Gamma-Law. I am not certain if these\nnon-linearities are \"Gamma-corrected\" before encoding NTSC signals\nor if the TV display is supposed to correct this.\n \nAlso, if  256 grey levels, for example, are coded in a C program do\nthese intensity levels appear with linear brightness on a PC\nmonitor? In other words does PC monitor display circuitry\ncorrect for \"gamma errrors\"?\n \nYour response is much appreciated.\n \nAmjad.\n\nAmjad Soomro\nCCS, Computer Science Center\nU. of Maryland at College Park\nemail: amjad@wam.umd.edu\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7424, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cm@cavsys.demon.co.uk (Colin Manning)\nSubject: Truetype OEM font with line drawing characters etc wanted\nDistribution: world\nOrganization: Cavendish Systems\nReply-To: cm@cavsys.demon.co.uk\nX-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)\nLines: 13\n\n\nTitle says it all: I'm in need of a Truetype OEM character set font - ie\none that contains the line drawing and other characters in the PC \ncharacter set similar to those you get when running a text mode application.\n\nIf anyone could point me at such a thing, I'd be grateful.\n\n[The only OEM fonts included with Windows are not Truetype.]\n\nRegards,\n\n-- \nColin Manning\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7425, "properties": {"category": "sci.space", "text": "From: gary@ke4zv.uucp (Gary Coffman)\nSubject: Re: What if the USSR had reached the Moon first?\nReply-To: gary@ke4zv.UUCP (Gary Coffman)\nOrganization: Destructive Testing Systems\nLines: 38\n\nIn article <C5qIv3.H0o.1@cs.cmu.edu> nickh@CS.CMU.EDU (Nick Haines) writes:\n>In article <1993Apr18.091051.14496@ke4zv.uucp> gary@ke4zv.uucp (Gary Coffman) writes:\n>   If I read you right, you're saying in essence that, with a larger\n>   economy, nations will have more discretionary funds to *waste* on a\n>   lunar facility. That was certainly partially the case with Apollo,\n>   but real Lunar colonies will probably require a continuing\n>   military, scientific, or commercial reason for being rather than\n>   just a \"we have the money, why not?\" approach.\n>\n>Ah, but the whole point is that money spent on a lunar base is not\n>wasted on the moon. It's not like they'd be using $1000 (1000R?) bills\n>to fuel their moon-dozers. The money to fund a lunar base would be\n>spent in the country to which the base belonged. It's a way of funding\n>high-tech research, just like DARPA was a good excuse to fund various\n>fields of research, under the pretense that it was crucial to the\n>defense of the country, or like ESPRIT is a good excuse for the EC to\n>fund research, under the pretense that it's good for pan-European\n>cooperation.\n>\n>Now maybe you think that government-funded research is a waste of\n>money (in fact, I'm pretty sure you do), but it does count as\n>investment spending, which does boost the economy (and just look at\n>the size of that multiplier :->).\n\nActually I favor government funded research. It *is* a pump prime\nfor a lot of basic technologies. I also understand the short term\nvalue of high tech welfare programs. But they can't substitute for\nlong range wealth generation via commercial enterprise. That's what's\nneeded to maintain a healthy economy *anywhere*, on Earth or Luna.\nI don't see that long term potential on Luna due to a bunch of\nfactors I outline in another post.\n\nGary\n-- \nGary Coffman KE4ZV          |    You make it,     | gatech!wa4mei!ke4zv!gary\nDestructive Testing Systems |    we break it.     | uunet!rsiatl!ke4zv!gary\n534 Shannon Way             |    Guaranteed!      | emory!kd4nc!ke4zv!gary \nLawrenceville, GA 30244     |                     | \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7426, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: Blast them next time\nOrganization: Iowa State University, Ames IA\nDistribution: usa\nLines: 69\n\noldham@ces.cwru.edu (Daniel Oldham) writes:\n\n>What happened in Waco is not the fault of the BATF. If they would of\n>had the proper equipment and personal then they could of captured the\n>compound on the initial assault and none of this would of happened.\n\n\tSeAL Team six should have handled it?  Delta Force?  The\nBATF had more than enough equipment and men.  They did not have\ngood intel, but they did have poor planning.  They fucked up.  Even\nin just the most basic military sense, they fucked up.  Excuses do\nnot justify body counts.\n\n>The BATF needs more people, better weapons and more armored\n>transports. When they meet hostile fire they should be able to use\n>more force instead of retreating to a stand off. If you are going to\n>do a job then do it right. The BATF is there to protect us and they\n>must have the proper equipment and people to do the job.\n\n\tAnd your excuses fall upon deaf ears when the same BATF\nhas shown shitty leadership despite more people, better weapons,\nand exclusive use of armor against their targets.  BATF is nothing\nmore than a private army of the government.  Do the agents swear an\noath, as I did, to uphold the Constitution?  You know, that document\nthat stipulates the highest law of the land?  If they do, they should\nbe up for charges in a court of law.  Remember, the law?  That's\nthe whole reason for any of this.\n\n>With the WoD and the increased crime in the streets the BATF is needed\n>more now then ever. If they blast away a few good fokes then that is\n>the price we all have to pay for law and order in this country. Look\n>at all the good people that died in wars to protect this great country\n>of ours.\n\n\tYeah, I've been related to many of them.  This is flame-bait,\nright?  I'm not paying your price.  Mind if I sight in my guns on\nyour body?  Think of it as the price you have to pay that we may all\nlive without fear of my making a stray shot.  It's fine and dandy to\nrevel in the other guy being the target and your supposed safety.  In\nthe military, we called this \"chicken shit.\"  Leadership from the rear.\nThe War on Drugs, despite being a catchy term for nothing more than\na continuation of policy since before this century, seems to have\ngotten you convinced that my rights aren't worth your good vibes.\nMind if I cut your net access, as well as access to any and all forms\nof expression?  See, you make me nervous, what with you being able\nto influence so many.  I'm sure you can see how this is the price we\nhave to pay for freedom and liberty in this country, as well as\na fair and unbiased judiciary.\n\n>With the arms build up in Waco they needed to hit that compound with\n>mega fire power. They could of gone in there blasting and killed a few\n>women and kids but it would of been better then letting them all burn\n>to death 51 days later.\n\n\tMind if we include you in the body count?  I'm sure we could\nall file it under \"civic improvement\" and your life wouldn't have\nbeen sacrificed in vain.  If you like, you can will your estate to\ndefecit reduction, too.  Now, when you learn how the law protects, or\ndoesn't protect, everybody equally and how our collective boot may\none day be on your collective throat, perhaps at that time you will\nmature enough to realize just what you're talking about and how\nserious this is.\n\n\tNext time, include a smiley.  While I hesitate to think that\nyou could have meant this seriously, it deserved a small flame anyway.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7427, "properties": {"category": "comp.sys.mac.hardware", "text": "From: James_Jim_Frazier@cup.portal.com\nSubject: 5.25\" MO sectors/track?\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 8\n\nOn an ISO/ANSI-standard 5.25\" magneto-optical disc, how many sectors\nare there per track (or disc revolution), and how many tracks per\ndisc?\n\nThanks,\n\nJim Frazier\n73447.3113@compuserve.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7428, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: Adcom cheap products?\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 23\n\nI have an Adcom GFA-555 that I got in 1985.  There certainly isn't\nanything magic about it.  The components used are decent, but\nnothing uncommon with respect to consumer grade components.\n\nThe GFA-555 is a nice piece of equipment.  I'm glad that Adcom had\nthe guts to not over-do the packaging.  It irks me when I see\naudiophile oriented equipment whose case and heat sinks probably\ncost much more and receive more attention than the electronics they\nare supposed to serve.\n\nI don't see any big deal about the geographic region in which\nsomething is assembled.  This is especially true for something as\nlow-technology as a GFA-555.\n\nI'd hope that a GFA-545 would still work well after several years.\nExcept under conditions of extreme abuse, there isn't much there to\ngo wrong.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7429, "properties": {"category": "rec.autos", "text": "From: cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc)\nSubject: Re: Opel owners?\nOrganization: University of Illinois at Urbana\nLines: 30\n\nboyle@cactus.org (Craig Boyle) writes:\n\n>In article <C5sxI4.J9B@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>>gibbonsa@fraser.sfu.ca (Darren Gibbons) writes:\n>>>I'm looking for information on Opel cars.  Now you ask, which model?\n>>>Well, the sad truth is, I'm not entirely sure, but it's a two-seater,\n>>>with roll-over headlights, hard top, and really sporty looking.  My\n>>>friend has one sitting in his yard in really nice condition,\n>>>body-wise, but he transmission has seized up on him, so it hasn't run\n>>>for a while.  Does anyone have any info on these cars?  The engine\n>>>compartment looks really tight to work on, but it is in fine shape and\n>>>I am quite interested in it.\n>>>Thanks!\n>>>Darren Gibbons\n>>>gibbonsa@sfu.ca\n>>\t\n>>\tThis would be the manta, would it not???  Sold through Buick dealers in the mid '70's as the price leader????\n\n>Sounds a lot more like an Opel GT to me. I'd guess that this is on the same\n>chassis as the Kadett, rather than the bigger Manta - but I could easily\n>be wrong.  I think the later Kadett's were sold here as Buick Opels.\n\n>Craig\n\n\tI think the Manta is the European name for the \"GT.\"  I'm pretty sure\nthat the only Kadett's sold here were/are the Pontiac LeMans.  I think the\nGT is just an early '70s to mid '70s Manta.  \n-- \nChintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n*******SIG UNDER CONSTRUCTION HARD HAT AREA********\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7430, "properties": {"category": "misc.forsale", "text": "From: night@acm.rpi.edu (Trip Martin)\nSubject: Re: Printing\nArticle-I.D.: rpi.gxt5g=_\nReply-To: night@acm.rpi.edu\nDistribution: na\nLines: 13\nNntp-Posting-Host: hermes.acm.rpi.edu\n\nIn <2943988816.0.p00020@psilink.com> \"Jack Previdi\" <p00020@psilink.com> writes:\n\n>\tAs a matter of fact D.J., it does make a difference.\n>\tAlmost a half million new users joined the Internet last year,\n>\tmany of them are commercial businesses. The ban on commercial\n>\tuse of Internet is no more.\n\nThis is true, but long-standing tradition has been to keep commercial\nadvertising in the biz.* hierarchy.\n--\nTrip Martin\nnight@acm.rpi.edu\nnight%acm.rpi.edu@rpi.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7431, "properties": {"category": "comp.sys.mac.hardware", "text": "From: guykuo@carson.u.washington.edu (Guy Kuo)\nSubject: Quadra Clock Chipping Works\nOrganization: University of Washington\nLines: 11\nNNTP-Posting-Host: carson.u.washington.edu\nSummary: Quadra Clock Chip Swap Success\nKeywords: Quadra,clock,accelerate\n\nAfter reading reports from Germany of success in accelerating a Quadra\nor Centris simply by changing the clock oscillator, I decided to test the\nclaim. I pulled out my Variable Speed Overdrive and the motherboard's\n50 mhz clock chip. I put a socket in the clock's place and inserted a\n64 mhz TTL clock oscillator I had left over from working on some SI's.\nI can't believe it. It actually works. I'm not getting SCSI timing errors\neither. This is only after a short run time but I'll keep posting results.\nDid I spend all that money on the VSO for nothing? If this keeps working,\nthe lack of a double boot in itself will be worth the effort.\n\nGuy Kuo <guykuo@u.washington.edu>\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7432, "properties": {"category": "rec.sport.baseball", "text": "From: marc@yogi.austin.ibm.com (Marc J. Stephenson)\nSubject: Re: ASTROS FOR REAL?\nOrganization: IBM, Austin\nLines: 29\n\nIn article <1993Apr15.234838.4138@ccsvax.sfasu.edu> z_millerwl@ccsvax.sfasu.edu writes:\n>WHO THINKS THE ASTROS ARE GOING PLACES???\n>THEY'RE CURRENTLY FIRST PLACE.\n>THEY'RE 5-4, 5-1 ON THE ROAD! \n\nI AGREE, LUMBERJACK (except that they're in 2nd)!  They ARE going PLACES -\nSan Diego, Los Angeles, San Francisco, Cincinnati, Denver, Atlanta, Miami,\nPhiladelphia, New York, Montreal, Pittsburgh, Chicago, St. Louis...and\npoints in between.  :-)\n\nBut,\nTHEY'RE 0-3 AT HOME!\n\nI'm just not used to an overly enthusiastic Houston fan.  I really shouldn't\ndiscourage it, so HANG IN THERE, LUMBERJACK!  (But, get ahold of that shift\nkey, will ya?)\n\nObBase:  Apparently the new owner (Drayton McLain (sp?)) doesn't particularly\nlike excuses.  An item in our paper (the Austin American-Statesman - \"If you\nread it here, it was somewhere else first\") said that he wouldn't take \ninjuries as an excuse for losing because that possibility should have been\naccounted for.  Uh, oh.  I don't want an owner that'll keep everybody on\nedge - I'd never gotten that feeling about him, but who knows?  Does \nanybody down there in the Houston area have a feel for how meddling of an\nowner McLain is going to be?\n-- \nMarc Stephenson\t           IBM AWS (Advanced Workstations & Systems - Austin,TX)\nDISCLAIMER: The content of this posting is independent of official IBM position.\nINTERNET->marc@austin.ibm.com      VNET: MARC at AUSVMQ        IBM T/L: 678-3189\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7433, "properties": {"category": "comp.graphics", "text": "From: schmidt@PrakInf.TH-Ilmenau.DE (Schmidt)\nSubject: Re: POV file constructor for Unix/X11\nNntp-Posting-Host: merkur.prakinf.tu-ilmenau.de\nReply-To: schmidt@PrakInf.TH-Ilmenau.DE (Schmidt)\nOrganization: Technische Hochschule Ilmenau\nLines: 17\n\nIn article <1r7hl1$csc@st-james.comp.vuw.ac.nz>, Craig.Humphrey@comp.vuw.ac.nz (chumphre) writes:\n|> \n|> Hi, I'm just getting into PoVRay and I was wondering if there is a graphic\n|> package that outputs .POV files.  Any help would be appreciated.\n|> Thanks.\n|> \n\nA very good modeling package I found is `irit' (look for irit.tar.Z).\nHowever there is no converter from it's format to POV format. I postet \na request for such a converter in this group but got no response,\nso I'm considering to write such a program myself.\n\n\n-- \nSebastian Schmidt\t\t\t\nTU Ilmenau Institut f. praktische Informatik \n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.351+0000", "event": "documents", "entityId": 7434, "properties": {"category": "misc.forsale", "text": "From: hickson@pop.psu.edu (Darryl Hickson)\nSubject: DJ Equipment, NES Carts, Cordless Phone FOR SALE (Lower Prices)\nArticle-I.D.: genesis.1prc95$u10\nDistribution: usa\nOrganization: Penn State Population Research Institute\nLines: 35\nNNTP-Posting-Host: zelinski.pop.psu.edu\n\nI have a few things to sell. All items are in great condition. All\nprices include shipping. If you have any questions contact me by\nE-Mail or call me at (814)234-4439.\n\nDarryl\n\n\nDJ Equipment\n=======================================================================\n- Mixer Case (with pop-up rails)                                    $60\n- (2) Patch Cords (3 meters, Gold Tips)                             $15\n\n\nRecords\n=======================================================================\nCasualties Of War (12 inch single)        Eric B. & Rakim            $2\nGet Some (12 inch single)                 EYC & Boo-Ya Tribe         $2\nBlack's Magic                             Salt & Pepa                $2\nHeart Break                               New Edition                $2\nThe Right Stuff                           Vanessa Williams           $2\n\n\nMisc\n=======================================================================\nToshiba FT6000 Cordless Phone                                       $50 \n\n\nBooks (Each book is priced as marked)\n=======================================================================\n1. Microcomputers For Management       P. Fuhrman & G. Buck         $5\n     Decison Making (1st Edition)\n2. Statistics: A fresh Approach        D. Sanders, R. Eng &         $5\n                                         A. Murph\n3. Quantitative Approaches to          R. Levin, D. Rubin &         $5\n     Management                          J. Stinson\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7435, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 153\n\nIn article <1993Apr20.143453.3127@news.uiowa.edu> mau@herky.cs.uiowa.edu (Mau Napoleon) writes:\n\n>Instabul was called Konstantinoupolis from 320 AD until about the 1920s.\n>That's about 1600 years. There many people alive today who were born in \n>a city called Konstantinoupolis. \n\nI know it doesn't make sense, but since when is 'Napoleon' about\nsense, anyway? Further striking bigoted and racist attitude of \ncertain Greeks still exists in our day. Most Greeks insist even \ntoday, that the 537 year-old capital of the Ottoman Empire should \nbe called not by its rightful name of Istanbul, but by its half \na millennium-old moniker 'Cons*(whatever).'\n\nEveryone knows that New York City was once called 'New Amsterdam'\nbut Dutch people do not persist on calling it that today. The name \nof Stalingrad too is long gone, replaced by Volgagrad. China's\nPeking traded its name for Beiging long ago. Ciudad Trujillo\nof the Dominican Republic is now Santa Domingo. Zimbabve's\nold colonial capital Salisburry became Harrare. These changes\nhave all been accepted officially by everyone in the world.\n\nBut, Greeks are still determined on calling the Turkish Istanbul \nby the name of 'Cons*.'\n\nHow can one explain this total intransigence? What makes Greeks\nso different from other mortals? 18-year-old questionable\ndemocracy? Why don't they seem to reconcile with the fact,\nfor instance, that Istanbul changed hands 537 years ago in\n1453 AD, and that this predates the discovery of the New \nWorld, by 39 years. The declaration of U.S. independence\nin 1776 will come 284 years later.\n\nShouldn't then, half a millennium be considered enough time for \n'Cons*' to be called a Turkish city? Where is the logic in the \nGreek reasoning, if there is any? How long can one sit on the \nlaurels of an ancient civilization? Ancient Greece does not exist, \nany more than any other 16 civilizations that existed on the soil \nof Anatolia.\n\nThese undereducated 'wieneramus' live with an illusion. It \nis the same mentality which allows them to rationalize\nthat Cyprus is a Greek Island. No history book shows\nthat it ever was. It belonged to the Ottoman Turks 'lock,\nstock and barrel' for a period of well over 300 years.\n\nIn fact, prior to the Turks' acquisition of it, following\nbloody naval battles with the Venetians in 1570 AD, the\nisland of Cyprus belonged, invariably, to several nations:\n\nThe Assyrians, the Sumerians, the Phoenicians, the Egyptians,\nthe Ottoman Turks, of course in that order, owned it as \ntheir territory. But, it has never been the possession\nof the government of Greece - not even for one day -\nin the history of the world. Moreover, Cyprus is\nlocated 1500 miles from the Greek mainland, but only \n40 miles from Turkiye's southern coastline.\n\nSaddam Hussein claims that Kuwait was once Iraqi\nterritory and the Greek Cypriot government and \nthe terrorist Greek governments think that Cyprus\nalso was once part of the Greek hegemony.\n\nThose 'Arromdians' involved in this grandiose hallucination\nshould wake up from their sweet daydreams and confront \nreality. Again, wishful thinking is unproductive, only \nfacts count.\n\nAs for Selanik,\n\n  <<Those Jews who survived these assaults in Southeastern Europe fled\n  particularly to Salonica, whose Jewish population increased substantially\n  as a result, from 28,000 in 1876 to 90,000 in 1908, more than half the\n  total population, though even there increased persecution by local Greeks\n  led many Jews to flee elsewhere in the Ottoman Empire, particularly to\n  the great port of Izmir.\n\n  Despite all the pressure from Ottomans and foreign Jews alike, the ritual\n  murders and other assaults by Christians on Jews went on and on. Greek\n  efforts to decimate the Jewish population of Salonica culminated in 1912\n  and 1913, following Greek conquest of Salonica during the first Balkan War,\n  when many of its Jews, were either killed or terrorized into leaving...>>\n\n  <<Though Greece was obligated by the post World War I treaties to allow\n  Jews and other minorities to use their own languages in education and to\n  practice their religions without hindrance, a law was issued in 1923\n  which forbad all inhabitants from working on Sunday, stimulating a new\n  Jewish exodus as it was intended to do. Between 1932 and 1934 there was a\n  series of anti-Semitic riots in Salonica, with the Cambel quarter, where\n  most of the remaining Jews lived, being burned to the ground. This\n  was followed by regulations requiring the use of Greek and prohibiting\n  Hebrew and Judea-Spanish in the Jewish schools. A start was made also\n  on expropriating the land of the principal Jewish cemetery in Salonica\n  for use by the new University in order to derive the Jews out [47]. By\n  killing and driving out large numbers of Jews, the Greeks left a\n  substantial Greek majority in the city for the first time, and starting\n  Salonica Jewry on the way to its final decimation by the Nazis during the\n  occupation of Greece starting in 1941.\n\n  Salonica and Izmir of course were not the only places of refuge for\n  Jewish refugees entering the Empire during its last century of existence.\n  Istanbul, Edirne, and other parts of Rumelia and Anatolia received\n  thousands more. Nor were Jews the only refugees received and helped by\n  the government of the Sultan. Thousands of Muslims accompanied them in\n  flight from similar persecutions wherever Balkan christian states gained\n  independence or expanded. The Russian conquest of the Crimea and the\n  Caucasus starting in the late eighteenth century, and particularly during\n  and after the Crimean War, combined with the same independence movements\n  in Southeastern Europe that had caused so much suffering and flight among\n  its Jews caused thousands of helpless, ill, and poverty-stricken Muslim\n  refugees to accompany them into the ever shrinking boundaries of the\n  Ottoman Empire, with the Istanbul government struggling mightly but vainly\n  to house and feed them as best it could. From 1850 to 1864 as many as\n  800,000 Crimean Tatars, Circassians, and other Muslims from north and\n  east of the Black Sea had entered Anatolia alone, as many as 200,000 more\n  came during the next twenty years, while 474,389 refugees entered in 1876-\n  1877 as a result of the Ottoman wars with Russia and the Balkan states,\n  with an equal number gaining refuge in the European portions of the\n  Empire.>>\n\n[47] Robert Mantran, 'La structure sociale de la communaute juive de\n  Salonqiue a la fin du dix-neuvieme siecle', RH no.534 (1980), 391-92;\n  Nehama VII, 762; Joseph Nehama (Salonica) to AIU (Paris) no.2868/2,\n  12 May 1903 (AIU Archives I-C-43); and no.2775, 10 January 1900 (AIU\n  Archives I-C-41), describing daily battles between Jewish and Greek\n  children in the streets of Salonica. Benghiat, Director of Ecole Moise\n  Allatini, Salonica, to AIU (Paris), no.7784, 1 December 1909 (AIU\n  Archives I-C-48), describing Greek attacks on Jews, boycotts of Jewish\n  shops and manufacturers, and Greek press campaigns leading to blood libel\n  attacks. Cohen, Ecole Secondaire Moise Allatini, Salonica, to AIU (Paris),\n  no.7745/4, 4 December 1912 (AIU Archives I-C-49) describes a week of terror\n  that followed the Greek army occupation  of Salonica in 1912, with the\n  soldiers pillaging the Jewish quarters and destroying Jewish synagogues,\n  accompanied by what he described as an 'explosion of hatred' by local\n  Greek population against local Jews and Muslims. Mizrahi, President of the\n  AIU at Salonica, reported to the AIU (Paris), no.2704/3, 25 July 1913\n  (AIU Archives I-C-51) that 'It was not only the irregulars (Comitadjis)\n  that massacred, pillaged and burned. The Army soldiers, the Chief of\n  Police, and the high civil officials also took an active part in the\n  horrors...', Moise Tovi (Salonica) to AIU (Paris) no.3027 (20 August 1913)\n  (AIU Archives I-C-51) describes the Greek pillage of the Jewish quarter\n  during the night of 18-19 August 1913.\n\n(AIU = Alliance Israelite Universelle, Paris.)\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7436, "properties": {"category": "sci.crypt", "text": "From: hal@cco.caltech.edu (Hal Finney)\nSubject: Re: How does it really work? (was Re: text of White House announcement and Q&As on clipper chip encryption)\nOrganization: California Institute of Technology, Pasadena\nLines: 41\nDistribution: na\nNNTP-Posting-Host: alumni.caltech.edu\n\nMarc VanHeyningen <mvanheyn@cs.indiana.edu> writes:\n\n>The main thing I just don't get is whether this chip implements\n>symmetric or asymmetric cryptographic techniques.  Anybody know?\n\nI don't know, but I'm as willing to speculate as anyone.\n\nSeveral people have suggested that the chips use public-key cryptography.\nAnother possibility is to use Diffie-Hellman key exchange, or some other\nalgorithm which has a similar effect.  DH allows both ends to agree on\na session key which they use with symmetric cryptography (something\nlike DES) for the encryption.\n\nHow could the \"back door\" keys work in this system?  I can see a few\npossibilities.  One is that the DH-like algorithm has the property that\nthe session key can be deduced by an eavesdropper who knows the back door\nkeys for one (or possibly both) communicants.  Perhaps the random numbers\nused in the DH are seeded by the back door key, or some such.\n\nAnother possibility, as was suggested here earlier, is that the chips\nsimply broadcast the session key, encrypted with the chip's own\ninternal secret key.  In this system the back door keys are secret keys\nusable for decrypting this session key broadcast.  Actually the chip's\nsecret key doesn't need to be a public key in this usage, but can be\nidentical to the secret back-door key.  (This proposal seems most\nstraightforward to me.)\n\nStill another possibility is that the encryption algorithm used for the\nmessage itself has a \"dual key\" property, that possession of either of\ntwo keys can be used to decrypt it.  One key would be the session key from\nthe DH exchange, and the other would be the back door key for the chip.\n\nIt's worth noting that one of the proposals Dorothy Denning raised\nduring her amazingly prescient on-line discussion last November and\nDecember was a variation on Diffie-Hellman in which a third party would\nparticipate in deriving the session keys.  This doesn't quite fit into\nwhat we know of how Clipper works but it hints that those who had early\nknowledge of Clipper (or whose thinking was somehow synchronized with\nClipper designers) may have had Diffie-Hellman on their minds.\n\nHal Finney\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7437, "properties": {"category": "talk.politics.guns", "text": "From: arf@genesis.MCS.COM (Jack Schmidling)\nSubject: Re: Gritz/JBS/Liberty Lobby/LaRouche/Christic Insitute/Libertarian/....\nOrganization: MCSNet Contributor, Chicago, IL\nLines: 28\nNNTP-Posting-Host: localhost.mcs.com\n\nIn article <1qanj0$22d@usenet.INS.CWRU.Edu> cj195@cleveland.Freenet.Edu (John W. Redelfs) writes:\n>How many are aware that the Gun Control Act of 1968 is a verbatim translation\n>of a Nazi gun control law passed shortly before the Holocaust?\n>\n>For those of you who think I'm being paranoid in asking these questions,\n>pray that you are right.  Unchecked democracies usually end in\n>dictatorship.  Remember, Germany was a democracy when Hitler rose to power. \n>Can we be absolutely certain nothing like that could happen today? \n\nI can't speak for the organizations you cited but everywhere you look in\nour society and government, one can see the relentless movement toward\none world government.  The fact that the media demeans such charished \nvalues as patriotism, nationalism and protectionism are some of the\nclues.  The fact that we are sapping the economic strength of americans\nto prop up a former and possibly future enemy is just another.  The fact\nthe words like community of nations, global village and international\nbusiness are in vogue are others.  International corporations are \ndestroying our identy and economy and the propaganda they are playing\nthrough the media and government is over powering our ability to resist.\nOur porous border both people and trade are an indiciation that we have\nalready lost a great deal of sovergnty.\n\nThe bottome line is that the single most evil aspect of One World\nGovernment is that you have nowhere to run to and history has proven\nthat would be a disaster.  \n\nBeware the LIBERAL and the conservative and the moderate.  Think for yourself\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7438, "properties": {"category": "alt.atheism", "text": "From: dpw@sei.cmu.edu (David Wood)\nSubject: Re: And Another THing:\nIn-Reply-To: mangoe@cs.umd.edu's message of 3 Apr 93 00:46:07 GMT\nOrganization: Software Engineering Institute\nLines: 39\n\n\n\nmangoe@cs.umd.edu (Charley Wingate) writes:\n\n>Keith Ryan writes:\n>>\n>>You will ignore any criticism of your logic, or any possible incongruenties\n>>in your stance?  You will not answer any questions on the validity of any\n>>opinion and/or facts you state?\n\n>When I have to start saying \"that's not what I said\", and the response is\n>\"did so!\", there's no reason to continue.  If someone is not going to argue\n>with MY version of MY position, then they cannot be argued with.\n\nBut of course YOUR version of YOUR position has been included in the\nCharley Challenges, so your claim above is a flat-out lie.  Further,\nonly last week you claimed that you \"might not\" answer the Challenges\nbecause you were turned off by \"included text\".  So which is it, do\nyou want your context included in my articles or not?  Come to think\nof it, this contradiction has the makings of a new entry in the next\nChallenges post.\n\nBy the way, I've kept every bloody thing that you've written related\nto this thread, and will be only too pleased to re-post any of it to\nback my position.  You seem to have forgotten that you leave an\nelectronic paper trail on the net.\n\n>>This is the usual theist approach.  No matter how many times a certain\n>>argument has been disproven, shown to be non-applicable or non-sequitur;\n>>they keep cropping up- time after time.\n\n>Speaking of non-sequiturs, this has little to do with what I just said.  And\n>have some sauce for the goose: some of the \"disproof\" is fallacies repeated\n>over and over (such as the \"law of nature\" argument someone posted recently).\n\nNow, now, let's not change the subject.  Wouldn't it be best to finish\nup the thread in question before you begin new ones?\n\n--Dave Wood\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7439, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Observations\nArticle-I.D.: netnews.118467\nDistribution: na\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 33\nNntp-Posting-Host: mail.sas.upenn.edu\n\nOn the Lindros \"trade\":  Like Ottawa would be stupid enough to get\nLindros.  Why do you think Quebec traded him?  Lindros would go on\npersonal strike again...maybe I should talk to Ottawa mgmt. about\narranging such a trade....  ;-)\n\nOn that xenophobe:  Thankfully nobody agreed with him publicly.  Maybe we\nshould look at baseball, the supposed \"American\" pasttime (sp?).  Look at\nall the damn Latin Americans playing there!  They should all be deported! \nThey aren't American!  (add sarcasm to taste)\n\nTo Roger:  Wow, for once we agree.  I hope this isn't a sign of things to\ncome.... I'll become a ranting lunatic who talks about nothing but the\nLeafs being the best in the Campbell.  ;-)\n\nOn the Rangers:  I told someone that nothing that happened in the Patrick\nwould surprise me anymore.  I lied.  How the hell can a team go into\nWashington, earn a shutout, then come back home and lose to pitiful\nHartford?  The absolute *pinnacle* of mediocrity.  I can't stand it.\nFrom what I've read, the goalie is to blame this time, as Beezer played\npretty poorly.  Smith is talking about calling up Corey Hirsch from\nBinghamton, everybody is pointing fingers... this is definitely not the\nsame team which wanted to prove itself in Washington.  *Now* nothing that\nhappens in the Patrick will surprise me.  (Yeah, right... ;-)\n\n\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n\"Next time you go over my head, I'll have yours on a platter.\"\n\t\t\t\t\t\t-- Cmdr. Benjamin Sisko, 1993\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7440, "properties": {"category": "talk.politics.guns", "text": "From: jim.wray@yob.sccsi.com (Jim Wray)\nSubject: Re: My turn\nOrganization: Ye Olde Bailey BBS - Houston, TX - 713-520-1569\nLines: 29\nReply-To: jim.wray@yob.sccsi.com (Jim Wray)\nNNTP-Posting-Host: cs.utexas.edu\n\n\n Dan Sorenson writing:\n\n ...\n\n DS>I'd rather not get into the Nationalized Medical Care debate\n DS>here, but I find it amazing that criminals often live better than the\n DS>rest of the population, in some aspects, and that we're paying for\n                               ^^^^\n DS>them to do so.  As an example, in November I had my annual dental\n\n ...\n\n Here, you are somewhat in error.....in ALL respects we are paying. When we\n are not paying for their countryclub incarceration, we are paying with our\n lives and belongings as their prey. Upon what would they practice their\n nefarious predatory acts if not for the citizens of this country. What is\n amazing to me is the mindset of those who overtly and covertly perpetuate\n a justice system (har) that essentially mandates that some of us offer up\n ourselves as that prey while they suitably insulate themselves from the\n preyground.\n---\n . OLX 2.2 . Church of Crime & Justice....come, let us prey!\n                                \n----\n+------------------------------------------------------------------------+\n| Ye Olde Bailey BBS   713-520-1569 (V.32bis) 713-520-9566 (V.32bis)     |\n|   Houston,Texas          yob.sccsi.com       Home of alt.cosuard       |\n+------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7441, "properties": {"category": "rec.motorcycles", "text": "From: gruncie@cs.strath.ac.uk (Gillian E Runcie CS92)\nSubject: Re: Fortune-guzzler barred from bars!\nOrganization: Comp. Sci. Dept., Strathclyde Univ., Glasgow, Scotland.\nLines: 2\nNNTP-Posting-Host: lister-06.cs.strath.ac.uk\n\nthat's okay, he's perfectly welcome to come to Scotland you know ;-)\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7442, "properties": {"category": "talk.politics.guns", "text": "From: tnyurkiw@descartes.uwaterloo.ca (TN)\nSubject: definition of 2nd\nOrganization: University of Waterloo\nLines: 9\n\n\n\tThe debate over the Second Amendment rages on.\nArguments continue over what a \"well-regulated militia\"\nis and what TRKBA means in practical terms.  However, the\nONLY authority in this area, is a binding court decision\non the matter.  Even a decision in this area is subject to\nan overturning by a higher court.  Is there anyone who\nhas the facts of a legal precedent, preferably a Supreme\nCourt decision on the specific meaning of the 2nd Amendment?\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7443, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: Investment in Yehuda and Shomron\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 30\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <horenC5LDuz.5sE@netcom.com>, horen@netcom.com (Jonathan B. Horen) writes:\n|> \n|> While I applaud investing of money in Yehuda, Shomron, v'Chevel-Azza,\n|> in order to create jobs for their residents, I find it deplorable that\n|> this has never been an active policy of any Israeli administration\n|> since 1967, *with regard to their Jewish residents*. Past governments\n|> found funds to subsidize cheap (read: affordable) housing and the\n|> requisite infrastructure, but where was the investment for creating\n|> industry (which would have generated income *and* jobs)? \n\nThe investment was there in the form of huge tax breaks, and employer\nbenfits.  You are overlooking the difference that these could have\nmade to any company.  Part of the problem was that few industries\nwere interested in political settling, as much as profit.\n\n|> After 26 years, Yehuda and Shomron remain barren, bereft of even \n|> middle-sized industries, and the Jewish settlements are sterile\n|> \"bedroom communities\", havens for (in the main) Israelis (both\n|> secular *and* religious) who work in Tel-Aviv or Jerusalem but\n|> cannot afford to live in either city or their surrounding suburbs.\n\nTrue, which leads to the obvious question, should any investment have\nbeen made there at the taxpayer's expense.  Obviously, the answer was\nand still is a resounding no.\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7444, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tp923021@fir.canberra.edu.au (ben elliston)\nSubject: Possible FAQ question about a UART\nLines: 25\n\nOrganization: Compact Solutions, Canberra ACT Australia\n\n >    Hello, my question is could someone E-mail me the\n > names of manufactures\n > of the 16550 and predecsor UARTs.   I have only seen\n\nNational Semiconductor are one that I know of.\n\nCheers,\nBen\n------------------------------------------------------------------------------\nBen Elliston\nBachelor of Engineering (Computer Engineering)\nUniversity of Canberra\n\nEmail:      tp923021@jarrah.canberra.edu.au\n\nAlso:       ellib@cbr.cpsg.com.au\nUUCP:       ..!uunet!munnari!sserve.adfa.oz.au!compsol!root\nFidoNet:    3:620/262\n------------------------------------------------------------------------------\nIf a train station is where the train stops, what's a workstation?!\n------------------------------------------------------------------------------\n\n * Origin: % Compact Solutions % Canberra ACT Australia % (3:620/262)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7445, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: New Apple Ergo-Mouse\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 19\n\nnwcs@utkvx.utk.edu (Schizophrenia means never being alone) writes:\n\n>Does anyone know how to open up the Apple Ergo-Mouse (ADB Mouse II)?\n>Mine lives near a cat (true, really...) and picks up her fur.  From what\n>I can tell, it looks like Apple welded it shut.\n\n    You must not have tried very hard. I just opend mine in about 2\nseconds. Take a look on the bottom, it has a dial that turns to open\nmuch like the older ADB mouses used to have. It's a bit harder to turn\nat first but it is quite simple to open.\n\n>Also, does anyone know about installing FPUs in a Mac LC III?  I've heard some\n>people saying it has fried the motherboard of the LC III.\n\n    Well, if you don't match up the pins correctly you will have some\nproblems. A close look at the socket should give you an idea of the\nproper orientation of the chip.\n\n-Hades\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7446, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: Some more about gun control...\nOrganization: Computer Science Department,  Stanford University.\nLines: 42\n\nIn article <1993Apr14.232806.18970@beaver.cs.washington.edu> graham@cs.washington.edu (Stephen Graham) writes:\n>In article <1qhpcn$b12@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>>Consider a similar structure:\n>>\"A well-educated electorate, being necessary for the security of a\n>>free State, the right of the people to keep and read Books, shall not\n>>be infringed.\"\n>>\n>>Now, does this mean only the electorate can keep and read books?  Does{\n>>it mean only registered voters can keep and read books?  Does it mean \n>>only those who have voted can keep and read books?  Does it imply any\n>>restrictions AT ALL on the right to keep and read books?\n>\n>But it would imply that the state had the right to regulate and enforce\n>education.\n\nThat's nice, but it doesn't answer the question.  There is a difference\nbetween \"the feds can mandate literacy\" and \"the feds can't interfere\nwith literacy/book possession\".\n\n>>As far as \"John Q. Public with a gun,\" the Supreme Court has already\n>>ruled in cases such as US v. Miller (307 U.S. 175 (1939)), and US v.\n>>Verdugo-Urquidez (110 S. Ct. 1839 (1990)) that that is EXACTLY what \n>>the amendment protects.  This interpretation can be found as far back\n>>as the Dred Scott case, in 1857.\n>\n>It's worth noting that US vs. Miller sustained Miller's conviction\n>of possession of an illegal firearm, noting that a sawed-off shotgun\n>was not a proper militia weapon. Therefore, US vs. Miller supports\n>limited government regulation of firearms.\n\nActually, the Miller court did nothing of the kind.  It remanded\nthe case back to the trial court because the miller court didn't\nknow if the weapon in question was a militia weapon.  (Doesn't it\nbother anyone that a major constitutional issue was taken up in\na case where there was no defense?  Miller had been released by\nthe appeals court and disappeared - only the govt was represented.)\n\nWe don't know what would have happened with the reasonable \"all guns\nare militia weapons\" argument.\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7447, "properties": {"category": "sci.med", "text": "From: swkirch@sun6850.nrl.navy.mil (Steve Kirchoefer)\nSubject: Re: Can't Breathe\nArticle-I.D.: ra.C526Hv.LCL\nOrganization: Naval Research Laboratory  (Electronics Science and Technology Division)\nLines: 17\n\nGetting back to the original question in this thread:\n\nI experienced breathing difficulties a few years ago similar to those\ndescribed.  In my case, it turned out that I was developing Type I\ndiabetes.  Although I never sought direct confirmation of this from my\ndoctor, I think that the breathing problem was associated with the\npresence of ketones due to the diabetes.\n\nI think that ketosis can occur in lesser degree if one is restricting\ntheir food intake drastically.  I don't know if this relevant in this\ncase, but you might ask your daughter if she has been eating\nproperly.\n-- \nSteve Kirchoefer                                             (202) 767-2862\nCode 6851                                      kirchoefer@estd.nrl.navy.mil\nNaval Research Laboratory                       Microwave Technology Branch\nWashington, DC  20375-5000              Electronics Sci. and Tech. Division\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7448, "properties": {"category": "comp.windows.x", "text": "From: fish@daacdev1.stx.com (John Vanderpool)\nSubject: is there a simple way to check what action a mouse button will take?\nOrganization: NASA Goddard Space Flight Center - Greenbelt, MD USA\nLines: 10\n\nw/o actually executing it? somehow one of my xterminal users has made it\nso that a click of MB3 (right) automatically kills all clients - oh my :-(\n\n\t\tthanx,\n\t\t\tfish\n--\nJohn R. Vanderpool     INTERNET: fish@eosdata.gsfc.nasa.gov\nNASA/GSFC/HSTX         VOX: 301-513-1683                \n\"So you run, and you run, to catch up with the sun, but it's sinking,\n racing around to come up behind you again.\" -rw/dg\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7449, "properties": {"category": "talk.politics.mideast", "text": "From: eldar@fraser.sfu.ca (Danny Eldar)\nSubject: PBS Frontline documentary : \"Memory of the camps\"\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 13\n\nYesterday, I watched an outstanding documentary on PBS prepared for Frontline\nby the documentary consortia.  It is called \"Memory of the camps\" and shows some\n\"un-censored\" pictures taken immediately after the liberation of Bergen-Belsen\nand other death camps.\n  \nI recommend it to everybody.  Check with your PBS station for re-broadcast.\nIT IS A MUST SEE documentary.  \n   \nIn the Seatle, Vancouver area KSTS-9 will re-broadcast the documentary\non Monday 01:30 am.\nYou can also order a copy from PBS Video 1-800-3287271.  The cost is $59.95.\n\nDanny\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7450, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: christyo@cae.wisc.edu (Buddy Christyono)\nSubject: Summary: DoubleDisk Gold v 6.0\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 98\n\nHi Netters,\n\nAs promised, here are the summary of opinions on DoubleDisk Gold v.6.0.\nPeople seem to be quite happy with the product. There is no much of\nopinion on how good it is compared to the industry leader Stacker 3.0.\n(Superstor Pro is not considered since it is slower than Stacker although\njust as reliable - BYTE Magazine's conclusion ;-) ), so it's hard to make\nany decision to go with Stacker or with DoubleDisk Gold v6.0. \nHowever, it seems that at $39.95, it is quite a buy.\n\nBuddy Christyono\nbuddy@optics.ece.wisc.edu\n-------------------------------------------------------------------------\nsummary of replies\n-------------------------------------------------------------------------\nHello Buddy,\n\nI do not have DD Gold 6.0 experience.  I just ordered it.  I currently have\nDD 2.3 (the last version).  I am very pleased with its performance.\n\nHere is my suggestion...\n\n1)  If you do not have any compression software currently, I would go with\n\tDOS 6.0's compression.  All the discussion on the net indicates that\n\tfor $50 you get the compression (built into the OS), plus the other\n\tutilities that you would pay way more than $50 for.  Besides, you \n\tare now at DOS6.0 (whatever that means...)\n\n2)  If you have DoubleDisk 2.3 already (like I do), the cost is $29.95\n\tfor the upgrade.  After thinking about it and asking the net, I\n\tdecided that I could not go wrong with the update cost!\n\tI have never suffered from performance of DD.  I have a 12ms HD with\n\tlarge SW packages in both compressed and uncompressed format.  It\n\tworks great.  Not delays.  I think the \"A\" is better than \"B\" \n\targuements are a lot of bunk... they are all comparable in performance.\n\tI am looking forward to being able to \"LOADHIGH\" the DD sw.  That\n\thas been an annoyance.\n\n3)  If you have Stacker, et.al. currently, I would not see it worth the\n\teffort to upgrade.\n\nJust my $.02 ...\n\nRegards,\nMark Bagdy\n----------------------------------------------------------------\nBuddy,\n\nI got the same mailer. About 2 weeks ago I got DDG and installed it. The\ndocumentation was, in my opinion, easy to follow. I used the automatic\ninstallation (not the custom) and everything went smoothly.\n\nThere were some specific instructions on a readme file for dealing with 386max\n& QEMM. DDG has an uninstall (unlike DOS6.0) if you need it. My system has a\n203Mb hard drive. before installing DDG I had ~5Mb free. After DDG I had\n~197Mb free. Pretty good statistics considering that my 8Mb permanent windows\nswap file stayed on the uncompressed portion (along with other drivers and\nsuch).\n\nI have had no problems whatsoever. I have noticed no slowdown (other than it\ntakes a little longer to boot) either in windows or dos. So far I am a very\nhappy camper.\n\n-Bruce\n-- \n  Bruce F. Steinke                    | \"Never know when you're going to\n  bsteinke@dsd.es.com                 |  need a good piece of rope.\"\n  Software Technical Support Engineer |               Sam Gamgee\n  Evans & Sutherland Computer Corp.   |      <My mail, My Opinions>\n---------------------------------------------------------------------------\n\n\tI have been using DoubleDisk Gold for a little more than a month on\na 486DX 33Mhz, 120MB Seagate drive, running DOS & Windows in 386 enhanced\nmode.\n\tI ran some tests and concluded that the speed of a DoubleDisk drive\nwith a drive read cache is about equal to the bare drive without a cache.\n\tI have no complaints about reliability.  It was very easy to install.\nThe only problem I had was with Castle Wolfenstein 3-D.  I assumed the game\nwas trying to bypass DOS disk access and moved the game to the non-compressed\nregion of the disk.  Since then the game has never given me a problem. \nThere was never any damage to the DoubleDisk drive.\n\tCompression performance for the whole disk has held steady \naround 1.8:1.  This is lower than expected but about 20% (size) of my files \nare compressed image files and some large zip files.  \n\nIf you have any more specific questions let me know.\nDan\n---------------------------------------------------------------------------\n\nI bought it an have been happy with it.  I use it on both MFM and IDE 40\nMB drives.  I was using DoubleDisk before Gold came out.  That is the\nsame product MSDOS 6.0 is shipping with.  No problems with either\nproduct.\n\n-- \nRon Bjornseth                 bjornset@pogo.den.mmc.com\n///////////////////////////////////////////////////////////////\n-------------------- END OF MESSAGES --------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7451, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: paladin@world.std.com (Thomas G Schlatter)\nSubject: Re: Bernoulli Drives/Disks...\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 30\n\nIn article <1rhm0j$6cg@agate.berkeley.edu> nilayp@violet.berkeley.edu (Nilay Patel;;;;RC38) writes:\n>In article <C62onK.F7A@netnews.jhuapl.edu> ncmoore2@netnews.jhuapl.edu (Nathan Moore) writes:\n>>nilayp@violet.berkeley.edu (Nilay Patel) writes:\n>\n>>>I am looking for Bernoulli removable tapes for the 20/20 drive..\n>>>Don't laugh ... I am serious...\n>>>If you have any 20 MB tapes lying around that you would like to get rid of,\n>>>please mail me ... \n>>\n>>>-- Nilay Patel\n>>>nilayp@violet.berkeley.edu\n>\n>>You do mean disks, don't you, not tapes?  You forgot to say whether you\n>>were looking for the old 8\" or the newer 5.25\".\n>\n>Well...I need the old 8\" disks ... You are right, disks is a better word,\n>but they are so big and calling them disks is kind of funny ... but the\n>appropriate word is disks ...\n\nGee, I remember the old 8\" FLOPPY disks we used on an S-100 CP/M system\nback in high school.  Not to mention those old 24\" multi-platter disk \npacks that held about 15MB that went in the big washing machine\ndrives at the local college I took some programming classes at.\nAnd this was even in the early '80's....\n\nTom\npaladin@world.std.com\n\n\"A disk is a disk, no matter how great or how small...\"\nparaphrasing Gulliver's Travels\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7452, "properties": {"category": "rec.sport.baseball", "text": "From: boell@hpcc01.corp.hp.com (Donald P Boell)\nSubject: Rockies 2-5, two more errors, 6 more walks\nOrganization: the HP Corporate notes server\nLines: 36\n\n\nName            Pos   AB    H    2B    3B    HR    RBI    RS    SB    E    AVG\n------------------------------------------------------------------------------\nBoston          OF    12    7                        2     6              .583\nGalarraga       1B    28   13     3           1      9     2              .464\nTatum           3B     5    2     1                                       .400\nCole            CF    24    9           1            2     8     2        .375\nE. Young        2B    28    9     1     1     1      5    10     5    3   .321\nHayes           3B    25    7     1           2      5     2     1    2   .280\nMurphy          OF     4    1                        1                    .250\nBichette        RF    21    5                 1      5     3     1        .238\nClark           LF    24    5     2                        2          1   .208\nGirardi          C    25    5     1     1            3     2              .200\nCastilla        SS     6    1                                         1   .167\nBenavides       SS    18    1                        2     1          4   .056\nG. Young        OF     1                                   1              .000\nPITCHERS         P    12                                                  .000\n------------------------------------------------------------------------------\nTotals               233   65     9     3     5     34    37     9   11   .279\n\nName            L/R   IP    H    R    ER    K    BB    ERA    W    L    S\n-------------------------------------------------------------------------\nWayne            L     2.7  3    0     0    3     2    0.00   0    0    0\nAldred           L     5    4    3     1    1     6    1.80   0    0    0\nSmith            R    12.3 15    3     3    2     3    2.19   1    1    0\nAshby            R     5    6    2     2    3     5    3.60   0    0    0 \nNeid             R    12   15    6     6    5     8    4.50   1    1    0\nParrett          R     5.7  7    3     3    7     3    4.76   0    0    0\nBlair            R     5.3  7    5     3    2     3    5.06   0    0    0\nHenry            L     6    9    6     5    4     1    7.50   0    1    0\nRuffin           L     3    7    6     5    3     4   15.00   0    1    0\nReed             R     2.7  7    7     7    1     3   23.63   0    0    0\nHolmes           R     1.3  6   10     9    1     4   60.75   0    1    0\n-------------------------------------------------------------------------\nTotals                61   86   51    44   32    42    6.49   2    5    0\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7453, "properties": {"category": "sci.med", "text": "From: slyx0@cc.usu.edu\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Utah State University\nLines: 35\n\n>>Between who? Over what? I would be most interested in seeing you\n>>provide peer-reviewed non-food-industry-funded citations to articles\n>>disputing that MSG has no effects whatsoever. \n> \n> You mean \"asserting\".  You're being intellectually dishonest (or just\n> plain confused), because you're conflating reports which do not necessarily\n> have anything to do with each other.  Olney's reports would argue a potential\n> for problems in human infants, but that's not to say that this says anything\n> whatsoever about the use of MSG in most foods, nor does he provide any\n> studies in humans which indicate any deleterious effects (for obvious\n> reasons.)  It says nothing about MSG's contribtion to the phenomenon\n> of the \"Chinese Restaurant Syndrome\".  It says nothing about the frequent\n> inability to replicate anecdotal reports of MSG sensitivity in the lab.\n\n\nOkay Mr. Dyer, we're properly impressed with your philosophical skills and\nability to insult people. You're a wonderful speaker and an adept politician.\nHowever, I believe that all you were asked to do, was simply provide scientific\nresearch refuting the work of Olney. I don't think the original poster sought\nto start a philisophical debate. she wanted some information. Given a little\neffort one could justify that shooting oneself with a .45 before breakfast is a\nhealthy practice. But we're not particularily interested in what you can\nverbally prove/disprove or rationalize. Where's the research? Where are the\nstudies?\n\nI appoligize if this sounds flamish. I simply would like to see the thread get\nback on track. \n\n\nLone Wolf\n\n                                      Happy are they who dream dreams,\nEd Philips                            And pay the price to see them come true.\nslyx0@cc.usu.edu                                              \n                                                              -unknown\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7454, "properties": {"category": "sci.crypt", "text": "From: Grant@DOCKMASTER.NCSC.MIL (Lynn R Grant)\nSubject: Another key registration body bites the dust (IMHO)\nOrganization: Yale CS Mail/News Gateway\nLines: 46\n\nOne of the candidates that has been suggested for a key registration\nbody is the ACLU.  I think this is poor choice.   The ACLU is\nessentially a group of auditors: they audit how people's civil\nliberties are administered.  Traditionally, auditors do not like to get\ninvolved in the design or operational aspects of things, and with good\nreason.\n\nWhen I was a systems programmer, it always infuriated me that the\nauditors would come in and tell us our implementation stunk from a\nsecurity point of view, but wouldn't tell us how to fix it.  I always\nfigured they just liked to critcize, without doing the work to help fix\nthe problem.\n\nThen I took a stint as an auditor, and I found out the real reason.\nAuditors don't like to recommend solutions, because it puts them in a\nbad position if they have to criticize the implementation later.  The\nauditee can say, \"Well, you told us this way would be OK.\"  It\ncompromises the independence that is a necessary part of the auditor's\njob.\n\nTaking the case at hand, suppose ACLU becomes a key half registrar.\nSuppose that, perhaps through some error on ACLU's part, a key half gets\naway that shouldn't, and is used to deprive someone of her civil\nliberties.  The ACLU gets wind of this, and wants to take it to court.\nBut they end up being at the same time on the side of the defendant\nand of the plaintiff, which is not an easy position to be in.\n\nThere are exceptions to the complete independence of auditors: at one\nplace where I worked, when payroll checks were printed, they were signed\nautomatically by a signature drum on the bursting machine.  This drum\nwas kept by the auditors (who also kept the check stock), and\nwas brought down to Data Processing when it was time to do the checks.\n\nI believe the difference between this situation and the key registration\nsituation is that it is fairly obvious when it is time to do the payroll\nchecks:  if they were done yesterday, and someone wants to do them again\ntoday, he better be able to produce yesterday's checks so that they can\nbe destroyed.  Determining which of the many requests for key halves are\nlegit is a trickier process, one much more prone to mistakes that could\nput the ACLU in a protecting-the-client versus protecting-the-ACLU\nconflict of interest.\n\nAs always, my opinions are my own.\n\nLynn Grant\nGrant@Dockmaster.NCSC.MIL\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7455, "properties": {"category": "sci.electronics", "text": "From: cyberman@toz.buffalo.ny.us (Cyberman)\nSubject: Re: what to do with old 2\nLines: 33\nX-Maildoor: WaflineMail 1.00r\n\n{Jason Haines} said\n   \"what to do with old 256k\"\n      to <All> on 04-15-93  04:38\n\n JH> I was wondering if people had any good uses for old\n JH> 256k SIMMs.  I have a bunch of them for the Apple Mac\n JH> and I know lots of other people do to.  I have tried to\n JH> sell them but have gotten NO interest.\n\n    How about collecting them all together (IE everyones) and\n    selling them as a lot?  The other thing is to give to a\n    recycler.\n\n JH> So, if you have an inovative use (or want to buy\n JH> some SIMMs  8-) ), I would be very interested in hearing\n JH> about it.\n\n    If they are free and you can send them real cheap!  I would\n    be intrested in them.  hehehe  Are these 2 chip or 8 chip\n    devices what speed?\n\n JH> I have seen RAM disc storage devices but they have been\n JH> very pricey (plus I am still a little worried about having data\n JH> stored on RAM).\n\n    Why?  Do you use a RAM disk? :)\n\n                Stephen Cyberman@Toz.Buffalo.NY.US\n             Mangled on Fri  04-16-1993  at 19:58:29\n\n... Badgers... we don't need no steenking Badgers!\n___ Blue Wave/QWK v2.12\n                                                        \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7456, "properties": {"category": "rec.sport.baseball", "text": "From: sbp002@acad.drake.edu\nSubject: Re: Braves Pitching UpdateDIR\nLines: 12\nNntp-Posting-Host: acad.drake.edu\nOrganization: Drake University, Des Moines, Iowa, USA\n\n \n> Not clear to me at all.  I'd certainly rather have a team who was winning\n> 4-1 games than 2-1 games.  In the 2-1 game, luck is going to play a much\n> bigger role than in the 4-1 game. \n\nBut you still need the pitching staff to hold the opposing team to\none run.\n\nSam\n> \n> Sherri Nichols\n> snichols@adobe.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.352+0000", "event": "documents", "entityId": 7457, "properties": {"category": "talk.politics.misc", "text": "From: brian@gab.unt.edu (Brian \"Drakula\" Stone)\nSubject: Re: New Study Out On Gay Percentage\nLines: 39\nOrganization: College of Arts and Sciences\n\n>The article also contains numbers on the number of sexual partners.\n>The median number of sexual partners for all men 20-39 was 7.3.\n>Compared to the table I have already posted from Masters, Johnson,\n>and Kolodny showing male homosexual partners, it is apparent that\n>homosexual men are dramatically more promiscuous than the general\n>male population.  It's a shame that we don't have a breakdown for\n>straight men vs. gay/bi men -- that would show even more dramatically\n>how much more promiscuous gay/bi men are.\n>-- \n\nIsn't is funny how someone who seems to know nothing about homosexuality \nuses a very flawed (IMHO) source of information to pass jusgement on all \nhomosexual and bisexual men.  It would seem more logical to say that since \nthe heterosexual group of men is larger then the chances of promiscuity \nlarger as well.  In my opinion, orientation has nothing to do with it.\n\nMen are men and they all like sex.  I am a gay male.  I have had sex three \ntimes in my life, all with the same man.  Before that, I was a virgin.\n\nSo... whose promiscuous?\n\nJust because someone is gay doesn't mean they have no morals.  Just because \nsomeone is heterosexual doesn't mean they do.  Look at the world....  \nStatistics alone prove that most criminals are by default hetero...\n\nLook closely at the person, not the group.\n\nAll flames will be ignored.  :)\n\nLater,\n\n _______________________  ______________________________________\n(                       )(                                      )\n( Brian Stone           )(                                      )\n( UNT-CAS Tech. Support )(   Life without your touch is hard,   )\n(                       )( but life without you in unthinkable. )\n( brian@gab.unt.edu     )(                                      )\n(_______________________)(______________________________________)\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7458, "properties": {"category": "sci.med", "text": "From: tas@pegasus.com (Len Howard)\nSubject: Re: quality control in medicine\nSummary: Kaiser has been doing it for a while\nArticle-I.D.: pegasus.1993Apr22.221508.10196\nOrganization: Pegasus,  Honolulu\nLines: 14\n\nIn article <93108.003258U19250@uicvm.uic.edu> <U19250@uicvm.uic.edu> writes:\n>Does anybody know of any information regarding the implementaion of total\n> quality management, quality control, quality assurance in the delivery of\n> health care service.  I would appreciate any information.  If there is enough\n>interest, I will post the responses.\n>        Thank You\n>        Abhin Singla MS BioE, MBA, MD\n>        President AC Medcomp Inc\n\nDr Singla, you might contact Kaiser Health Plan either in the area\nclosest to you or at the central office in Oakland CA.  We have been\ndoing QA, QoS, concurrent UR, and TQM for some time now in the Hawaii\nRegion, and I suspect it is nationwide in the system.\nLen Howard MD\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7459, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Second Law (was: Albert Sabin)\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 20\n\nJoel Hanes (jjh00@diag.amdahl.com) wrote:\n\n: Mr Connor's assertion that \"more complex\" == later in paleontology\n: is simply incorrect.  Many lineages are known in which whole\n: structures are lost -- for example, snakes have lost their legs.\n: Cave fish have lost their eyes.  Some species have almost completely\n: lost their males.  Kiwis are descended from birds with functional\n: wings.\n\nJoel,\n\nThe statements I made were illustrative of the inescapably\nanthrpomorphic quality of any desciption of an evolutionary process.\nThere is no way evolution can be described or explained in terms other\nthan teleological, that is my whole point. Even those who have reason\nto believe they understand evolution (biologists for instance) tend to\npersonify nature and I can't help but wonder if it's because of the\nlimits of the language or the nature of nature.\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7460, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Alt.Atheism FAQ: Constructing a Logical Argument\nSummary: Includes a list of logical fallacies\nKeywords: FAQ, atheism, argument, fallacies, logic\nExpires: Thu, 20 May 1993 10:52:14 GMT\nDistribution: world\nOrganization: Mantis Consultants, Cambridge. UK.\nSupersedes: <19930322114724@mantis.co.uk>\nLines: 632\n\nArchive-name: atheism/logic\nAlt-atheism-archive-name: logic\nLast-modified: 5 April 1993\nVersion: 1.4\n\n                       Constructing a Logical Argument\n\nAlthough there is much argument on Usenet, the general quality of argument\nfound is poor.  This article attempts to provide a gentle introduction to\nlogic, in the hope of improving the general level of debate.\n\nLogic is the science of reasoning, proof, thinking, or inference [Concise\nOED].  Logic allows us to analyze a piece of reasoning and determine whether\nit is correct or not (valid or invalid).  Of course, one does not need to\nstudy logic in order to reason correctly; nevertheless, a little basic\nknowledge of logic is often helpful when constructing or analyzing an\nargument.\n\nNote that no claim is being made here about whether logic is universally\napplicable.  The matter is very much open for debate.  This document merely\nexplains how to use logic, given that you have already decided that logic is\nthe right tool for the job.\n\nPropositions (or statements) are the building blocks of a logical argument. A\nproposition is a statement which is either true or false; for example, \"It is\nraining\" or \"Today is Tuesday\".  Propositions may be either asserted (said to\nbe true) or denied (said to be false).  Note that this is a technical meaning\nof \"deny\", not the everyday meaning.\n\nThe proposition is the meaning of the statement, not the particular\narrangement of words used to express it.  So \"God exists\" and \"There exists a\nGod\" both express the same proposition.\n\nAn argument is, to quote the Monty Python sketch, \"a connected series of\nstatements to establish a definite proposition\".  An argument consists of\nthree stages.\n\nFirst of all, the propositions which are necessary for the argument to\ncontinue are stated.  These are called the premises of the argument.  They\nare the evidence or reasons for accepting the argument and its conclusions. \n\nPremises (or assertions) are often indicated by phrases such as \"because\",\n\"since\", \"obviously\" and so on.  (The phrase \"obviously\" is often viewed with\nsuspicion, as it can be used to intimidate others into accepting suspicious\npremises.  If something doesn't seem obvious to you, don't be afraid to\nquestion it.  You can always say \"Oh, yes, you're right, it is obvious\" when\nyou've heard the explanation.)\n\nNext, the premises are used to derive further propositions by a process known\nas inference.  In inference, one proposition is arrived at on the basis of\none or more other propositions already accepted.  There are various forms of\nvalid inference.\n\nThe propositions arrived at by inference may then be used in further\ninference.  Inference is often denoted by phrases such as \"implies that\" or\n\"therefore\".\n\nFinally, we arrive at the conclusion of the argument -- the proposition which\nis affirmed on the basis of the premises and inference.  Conclusions are often\nindicated by phrases such as \"therefore\", \"it follows that\", \"we conclude\"\nand so on.  The conclusion is often stated as the final stage of inference.\n\nFor example:\n\nEvery event has a cause (premise)\nThe universe has a beginning (premise)\nAll beginnings involve an event (premise)\nThis implies that the beginning of the universe involved an event (inference)\nTherefore the universe has a cause (inference and conclusion)\n\nNote that the conclusion of one argument might be a premise in another\nargument.  A proposition can only be called a premise or a conclusion with\nrespect to a particular argument; the terms do not make sense in isolation.\n\nSometimes an argument will not follow the order given above; for example,\nthe conclusions might be stated first and the premises stated \nafterwards in support of the conclusion.  This is perfectly valid, if \nsometimes a little confusing.\n\nRecognizing an argument is much harder than recognizing premises or\nconclusions.  Many people shower their writing with assertions without ever\nproducing anything which one might reasonably describe as an argument.  Some\nstatements look like arguments, but are not.  For example:\n\n\"If the Bible is accurate, Jesus must either have been insane, an evil liar,\n or the Son of God.\"\n\nThis is not an argument, it is a conditional statement.  It does not assert\nthe premises which are necessary to support what appears to be its \nconclusion.  (It also suffers from a number of other logical flaws, but we'll\ncome to those later.)\n\nAnother example:\n\n\"God created you; therefore do your duty to God.\"\n\nThe phrase \"do your duty to God\" is not a proposition, since it is neither\ntrue nor false.  Therefore it is not a conclusion, and the sentence is not an\nargument.\n\nFinally, causality is important.  Consider a statement of the form \"A because\nB\".  If we're interested in establishing A and B is offered as evidence, the\nstatement is an argument.  If we're trying to establish the truth of B, then\nit is not an argument, it is an explanation.\n\nFor example:\n\n\"There must be something wrong with the engine of my car, because it will not\n start.\" -- This is an argument.\n\n\"My car will not start because there is something wrong with the engine.\"\n -- This is an explanation.\n\nThere are two traditional types of argument, deductive and inductive.  A\ndeductive argument is one which provides conclusive proof of its conclusions\n-- that is, an argument where if the premises are true, the conclusion must\nalso be true.  A deductive argument is either valid or invalid.  A valid\nargument is defined as one where if the premises are true, then the\nconclusion is true.\n\nAn inductive argument is one where the premises provide some evidence for the\ntruth of the conclusion.  Inductive arguments are not valid or invalid;\nhowever, we can talk about whether they are better or worse than other\narguments, and about how probable their premises are.\n\nThere are forms of argument in ordinary language which are neither deductive\nnor inductive.  However, we will concentrate for the moment on deductive\narguments, as they are often viewed as the most rigorous and convincing.\n\nIt is important to note that the fact that a deductive argument is valid does\nnot imply that its conclusion holds.  This is because of the slightly \ncounter-intuitive nature of implication, which we must now consider more\ncarefully.\n\nObviously a valid argument can consist of true propositions.  However, an\nargument may be entirely valid even if it contains only false propositions. \nFor example:\n\n   All insects have wings (premise)\n   Woodlice are insects (premise)\n   Therefore woodlice have wings (conclusion)\n\nHere, the conclusion is not true because the argument's premises are false. \nIf the argument's premises were true, however, the conclusion would be true. \nThe argument is thus entirely valid.\n\nMore subtly, we can reach a true conclusion from one or more false premises,\nas in:\n\n   All fish live in the sea (premise)\n   Dolphins are fish (premise)\n   Therefore dolphins live in the sea (conclusion)\n\nHowever, the one thing we cannot do is reach a false conclusion through valid\ninference from true premises.  We can therefore draw up a \"truth table\" for\nimplication.\n\nThe symbol \"=>\" denotes implication; \"A\" is the premise, \"B\" the conclusion. \n\"T\" and \"F\" represent true and false respectively.\n\nPremise Conclusion Inference\n   A        B        A=>B\n----------------------------\n   F        F         T      If the premises are false and the inference\n   F        T         T      valid, the conclusion can be true or false.\n\n   T        F         F      If the premises are true and the conclusion\n                             false, the inference must be invalid.\n\n   T        T         T      If the premises are true and the inference valid,\n                             the conclusion must be true.\n\nA sound argument is a valid argument whose premises are true.  A sound \nargument therefore arrives at a true conclusion.  Be careful not to confuse\nvalid arguments with sound arguments.\n\nTo delve further into the structure of logical arguments would require\nlengthy discussion of linguistics and philosophy.  It is simpler and probably\nmore useful to summarize the major pitfalls to be avoided when constructing\nan argument.  These pitfalls are known as fallacies.\n\nIn everyday English the term \"fallacy\" is used to refer to mistaken beliefs\nas well as to the faulty reasoning that leads to those beliefs.  This is fair\nenough, but in logic the term is generally used to refer to a form of\ntechnically incorrect argument, especially if the argument appears valid or\nconvincing.\n\nSo for the purposes of this discussion, we define a fallacy as a logical\nargument which appears to be correct, but which can be seen to be incorrect\nwhen examined more closely.  By studying fallacies we aim to avoid being\nmisled by them.  The following list of fallacies is not intended to be\nexhaustive.\n\nARGUMENTUM AD BACULUM (APPEAL TO FORCE)\n\nThe Appeal to Force is committed when the arguer resorts to force or the\nthreat of force in order to try and push the acceptance of a conclusion.  It\nis often used by politicians, and can be summarized as \"might makes right\". \nThe force threatened need not be a direct threat from the arguer.\n\nFor example:\n\"... Thus there is ample proof of the truth of the Bible.  All those who\nrefuse to accept that truth will burn in Hell.\"\n\nARGUMENTUM AD HOMINEM\n\nArgumentum ad hominem is literally \"argument directed at the man\".\n\nThe Abusive variety of Argumentum ad Hominem occurs when, instead of trying\nto disprove the truth of an assertion, the arguer attacks the person or\npeople making the assertion.  This is invalid because the truth of an\nassertion does not depend upon the goodness of those asserting it.\n\nFor example:\n\"Atheism is an evil philosophy.  It is practised by Communists and murderers.\"\n\nSometimes in a court of law doubt is cast upon the testimony of a witness by \nshowing, for example, that he is a known perjurer.  This is a valid way of\nreducing the credibility of the testimony given by the witness, and not\nargumentum ad hominem; however, it does not demonstrate that the witness's\ntestimony is false.  To conclude otherwise is to fall victim of the\nArgumentum ad Ignorantiam (see elsewhere in this list).\n\nThe circumstantial form of Argumentum ad Hominem is committed when a person\nargues that his opponent ought to accept the truth of an assertion because of\nthe opponent's particular circumstances.\n\nFor example:\n\"It is perfectly acceptable to kill animals for food.  How can you argue\notherwise when you're quite happy to wear leather shoes?\"\n\nThis is an abusive charge of inconsistency, used as an excuse for dismissing\nthe opponent's argument.\n\nThis fallacy can also be used as a means of rejecting a conclusion.  For \nexample:\n\n\"Of course you would argue that positive discrimination is a bad thing. \nYou're white.\"\n\nThis particular form of Argumentum ad Hominem, when one alleges that one's\nadversary is rationalizing a conclusion formed from selfish interests, is\nalso known as \"poisoning the well\".\n\nARGUMENTUM AD IGNORANTIUM\n\nArgumentum ad ignorantium means \"argument from ignorance\".  This fallacy\noccurs whenever it is argued that something must be true simply because it\nhas not been proved false.  Or, equivalently, when it is argued that\nsomething must be false because it has not been proved true.  (Note that this\nis not the same as assuming that something is false until it has been proved\ntrue, a basic scientific principle.)\n\nExamples:\n\"Of course the Bible is true.  Nobody can prove otherwise.\"\n\n\"Of course telepathy and other psychic phenomena do not exist.  Nobody has\nshown any proof that they are real.\"\n\nNote that this fallacy does not apply in a court of law, where one is\ngenerally assumed innocent until proven guilty.\n\nAlso, in scientific investigation if it is known that an event would produce\ncertain evidence of its having occurred, the absence of such evidence can \nvalidly be used to infer that the event did not occur.  For example:\n\n\"A flood as described in the Bible would require an enormous volume of water\nto be present on the earth.  The earth does not have a tenth as much water,\neven if we count that which is frozen into ice at the poles.  Therefore no\nsuch flood occurred.\"\n\nIn science, we can validly assume from lack of evidence that something has\nnot occurred.  We cannot conclude with certainty that it has not occurred,\nhowever.\n\nARGUMENTUM AD MISERICORDIAM\n\nThis is the Appeal to Pity, also known as Special Pleading.  The fallacy is \ncommitted when the arguer appeals to pity for the sake of getting a \nconclusion accepted.  For example:\n\n\"I did not murder my mother and father with an axe.  Please don't find me\nguilty; I'm suffering enough through being an orphan.\"\n\nARGUMENTUM AD POPULUM\n\nThis is known as Appealing to the Gallery, or Appealing to the People.  To\ncommit this fallacy is to attempt to win acceptance of an assertion by\nappealing to a large group of people.  This form of fallacy is often\ncharacterized by emotive language.  For example:\n\n\"Pornography must be banned.  It is violence against women.\"\n\n\"The Bible must be true.  Millions of people know that it is.  Are you trying\nto tell them that they are all mistaken fools?\"\n\nARGUMENTUM AD NUMERAM\n\nThis fallacy is closely related to the argumentum ad populum.  It consists of\nasserting that the more people who support or believe a proposition, the more\nlikely it is that that proposition is correct.\n\nARGUMENTUM AD VERECUNDIAM\n\nThe Appeal to Authority uses the admiration of the famous to try and win\nsupport for an assertion.  For example:\n\n\"Isaac Newton was a genius and he believed in God.\"\n\nThis line of argument is not always completely bogus; for example, reference\nto an admitted authority in a particular field may be relevant to a\ndiscussion of that subject.  For example, we can distinguish quite clearly\nbetween:\n\n\"Stephen Hawking has concluded that black holes give off radiation\"\nand\n\"John Searle has concluded that it is impossible to build an intelligent\n computer\"\n\nHawking is a physicist, and so we can reasonably expect his opinions on black\nhole radiation to be informed.  Searle is a linguist, so it is questionable \nwhether he is well-qualified to speak on the subject of machine intelligence.\n\nTHE FALLACY OF ACCIDENT\n\nThe Fallacy of Accident is committed when a general rule is applied to a\nparticular case whose \"accidental\" circumstances mean that the rule is\ninapplicable.  It is the error made when one goes from the general to the\nspecific.  For example:\n\n\"Christians generally dislike atheists.  You are a Christian, so you must\ndislike atheists.\"\n\nThis fallacy is often committed by moralists and legalists who try to decide\nevery moral and legal question by mechanically applying general rules.\n\nCONVERSE ACCIDENT / HASTY GENERALIZATION\n\nThis fallacy is the reverse of the fallacy of accident.  It occurs when one\nforms a general rule by examining only a few specific cases which are not\nrepresentative of all possible cases.\n\nFor example:\n\"Jim Bakker was an insincere Christian.  Therefore all Christians are\ninsincere.\"\n\nSWEEPING GENERALIZATION / DICTO SIMPLICITER\n\nA sweeping generalization occurs when a general rule is applied to a\nparticular situation in which the features of that particular situation\nrender the rule inapplicable.  A sweeping generalization is the opposite of a\nhasty generalization.\n\nNON CAUSA PRO CAUSA / POST HOC ERGO PROPTER HOC\n\nThese are known as False Cause fallacies.\n\nThe fallacy of Non Causa Pro Causa occurs when one identifies something as the\ncause of an event but it has not actually been shown to be the cause.  For \nexample:\n\n\"I took an aspirin and prayed to God, and my headache disappeared.  So God\ncured me of the headache.\"\n\nThe fallacy of Post Hoc Ergo Propter Hoc occurs when something is assumed to\nbe the cause of an event merely because it happened before the event.  For \nexample:\n\n\"The Soviet Union collapsed after taking up atheism.  Therefore we must avoid\natheism for the same reasons.\"\n\nCUM HOC ERGO PROPTER HOC\n\nThis fallacy is similar to post hoc ergo propter hoc.  It asserts that\nbecause two events occur together, they must be causally related, and leaves\nno room for other factors that may be the cause(s) of the events.\n\nPETITIO PRINCIPII\n\nThis fallacy occurs when the premises are at least as questionable as the\nconclusion reached.\n\nCIRCULUS IN DEMONSTRANDO\n\nThis fallacy occurs when one assumes as a premise the conclusion which one\nwishes to reach.  Often, the proposition will be rephrased so that the\nfallacy appears to be a valid argument.  For example:\n\n\"Homosexuals must not be allowed to hold government office.  Hence any\ngovernment official who is revealed to be a homosexual will lose his job. \nTherefore homosexuals will do anything to hide their secret, and will be open\nto blackmail.  Therefore homosexuals cannot be allowed to hold government\noffice.\"\n\nNote that the argument is entirely circular; the premise is the same as the \nconclusion.  An argument like the above has actually been cited as the reason\nfor the British Secret Services' official ban on homosexual employees. \nAnother example is the classic:\n\n\"We know that God exists because the Bible tells us so.  And we know that the\nBible is true because it is the word of God.\"\n\nCOMPLEX QUESTION / FALLACY OF INTERROGATION\n\nThis is the Fallacy of Presupposition.  One example is the classic loaded \nquestion:\n\n\"Have you stopped beating your wife?\"\n\nThe question presupposes a definite answer to another question which has not\neven been asked.  This trick is often used by lawyers in cross-examination,\nwhen they ask questions like:\n\n\"Where did you hide the money you stole?\"\n\nSimilarly, politicians often ask loaded questions such as:\n\n\"How long will this EC interference in our affairs be allowed to continue?\"\nor\n\"Does the Chancellor plan two more years of ruinous privatization?\"\n\nIGNORATIO ELENCHI\n\nThe fallacy of Irrelevant Conclusion consists of claiming that an argument \nsupports a particular conclusion when it is actually logically nothing to do\nwith that conclusion.\n\nFor example, a Christian may begin by saying that he will argue that the\nteachings of Christianity are undoubtably true.  If he then argues at length\nthat Christianity is of great help to many people, no matter how well he\nargues he will not have shown that Christian teachings are true.\n\nSadly, such fallacious arguments are often successful because they arouse\nemotions which cause others to view the supposed conclusion in a more\nfavourable light.\n\nEQUIVOCATION\n\nEquivocation occurs when a key word is used with two or more different\nmeanings in the same argument.  For example:\n\n\"What could be more affordable than free software?  But to make sure that it\nremains free, that users can do what they like with it, we must place a\nlicense on it to make sure that will always be freely redistributable.\"\n\nAMPHIBOLY\n\nAmphiboly occurs when the premises used in an argument are ambiguous because\nof careless or ungrammatical phrasing.\n\nACCENT\n\nAccent is another form of fallacy through shifting meaning.  In this case,\nthe meaning is changed by altering which parts of a statement are\nemphasized.  For example, consider:\n\n\"We should not speak ILL of our friends\"\nand\n\"We should not speak ill of our FRIENDS\"\n\nFALLACIES OF COMPOSITION\n\nOne fallacy of composition is to conclude that a property shared by the parts\nof something must apply to the whole.  For example:\n\n\"The bicycle is made entirely of low mass components, and is therefore very \nlightweight.\"\n\nThe other fallacy of composition is to conclude that a property of a number\nof individual items is shared by a collection of those items.  For example:\n\n\"A car uses less petrol and causes less pollution than a bus.  Therefore cars\nare less environmentally damaging than buses.\"\n\nFALLACY OF DIVISION\n\nThe fallacy of division is the opposite of the fallacy of composition.  Like\nits opposite, it exists in two varieties.  The first is to assume that a\nproperty of some thing must apply to its parts.  For example:\n\n\"You are studying at a rich college.  Therefore you must be rich.\"\n\nThe other is to assume that a property of a collection of items is shared by\neach item.  For example:\n\n\"Ants can destroy a tree.  Therefore this ant can destroy a tree.\"\n\nTHE SLIPPERY SLOPE ARGUMENT\n\nThis argument states that should one event occur, so will other harmful\nevents.  There is no proof made that the harmful events are caused by the\nfirst event.\n\nFor example:\n\"If we legalize marijuana, then we would have to legalize crack and heroin\nand we'll have a nation full of drug-addicts on welfare.  Therefore we cannot\nlegalize marijuana.\"\n\n\"A IS BASED ON B\" FALLACIES / \"IS A TYPE OF\" FALLACIES\n\nThese fallacies occur when one attempts to argue that things are in some way\nsimilar without actually specifying in what way they are similar.\n\nExamples:\n\"Isn't history based upon faith?  If so, then isn't the Bible also a form of\nhistory?\"\n\n\"Islam is based on faith, Christianity is based on faith, so isn't Islam a\nform of Christianity?\"\n\n\"Cats are a form of animal based on carbon chemistry, dogs are a form of\nanimal based on carbon chemistry, so aren't dogs a form of cat?\"\n\nAFFIRMATION OF THE CONSEQUENT\n\nThis fallacy is an argument of the form \"A implies B, B is true, therefore A\nis true\".  To understand why it is a fallacy, examine the truth table for\nimplication given earlier.\n\nDENIAL OF THE ANTECEDENT\n\nThis fallacy is an argument of the form \"A implies B, A is false, therefore B\nis false\".  Again, the truth table for implication makes it clear why this is\na fallacy.\n\nNote that this fallacy is different from Non Causa Pro Causa; the latter has\nthe form \"A implies B, A is false, therefore B is false\", where A does NOT in\nfact imply B at all.  Here, the problem is not that the implication is\ninvalid; rather it is that the falseness of A does not allow us to deduce\nanything about B.\n\nCONVERTING A CONDITIONAL\n\nThis fallacy is an argument of the form \"If A then B, therefore if B then A\".\n\nARGUMENTUM AD ANTIQUITAM\n\nThis is the fallacy of asserting that something is right or good simply\nbecause it is old, or because \"that's the way it's always been.\"\n\nARGUMENTUM AD NOVITAM\n\nThis is the opposite of the argumentum ad antiquitam; it is the fallacy of\nasserting that something is more correct simply because it is new or newer\nthan something else.\n\nARGUMENTUM AD CRUMENAM\n\nThe fallacy of believing that money is a criterion of correctness; that those\nwith more money are more likely to be right.\n\nARGUMENTUM AD LAZARUM\n\nThe fallacy of assuming that because someone is poor he or she is sounder or\nmore virtuous than one who is wealthier.  This fallacy is the opposite of the\nargumentum ad crumenam.\n\nARGUMENTUM AD NAUSEAM\n\nThis is the incorrect belief that an assertion is more likely to be true the\nmore often it is heard.  An \"argumentum ad nauseum\" is one that employs\nconstant repetition in asserting something.\n\nBIFURCATION\n\nAlso referred to as the \"black and white\" fallacy, bifurcation occurs when\none presents a situation as having only two alternatives, where in fact other\nalternatives exist or can exist.\n\nPLURIUM INTERROGATIONUM / MANY QUESTIONS\n\nThis fallacy occurs when a questioner demands a simple answer to a complex\nquestion.\n\nNON SEQUITUR\n\nA non-sequitur is an argument where the conclusion is drawn from premises\nwhich are not logically connected with it.\n\nRED HERRING\n\nThis fallacy is committed when irrelevant material is introduced to the issue\nbeing discussed, so that everyone's attention is diverted away from the\npoints being made, towards a different conclusion.\n\nREIFICATION / HYPOSTATIZATION\n\nReification occurs when an abstract concept is treated as a concrete thing.\n\nSHIFTING THE BURDEN OF PROOF\n\nThe burden of proof is always on the person making an assertion or\nproposition.  Shifting the burden of proof, a special case of argumentum ad\nignorantium, is the fallacy of putting the burden of proof on the person who\ndenies or questions the assertion being made.  The source of the fallacy is\nthe assumption that something is true unless proven otherwise.\n\nSTRAW MAN\n\nThe straw man fallacy is to misrepresent someone else's position so that it\ncan be attacked more easily, then to knock down that misrepresented position,\nthen to conclude that the original position has been demolished.  It is a\nfallacy because it fails to deal with the actual arguments that have been\nmade.\n\nTHE EXTENDED ANALOGY\n\nThe fallacy of the Extended Analogy often occurs when some suggested general\nrule is being argued over.  The fallacy is to assume that mentioning two \ndifferent situations, in an argument about a general rule, constitutes a \nclaim that those situations are analogous to each other.\n\nThis fallacy is best explained using a real example from a debate about \nanti-cryptography legislation:\n\n\"I believe it is always wrong to oppose the law by breaking it.\"\n\n\"Such a position is odious: it implies that you would not have supported\n Martin Luther King.\"\n\n\"Are you saying that cryptography legislation is as important as the\n struggle for Black liberation?  How dare you!\"\n\nTU QUOQUE\n\nThis is the famous \"you too\" fallacy.  It occurs when an action is argued to\nbe acceptable because the other party has performed it.  For instance:\n\n\"You're just being randomly abusive.\"\n\"So?  You've been abusive too.\"\n\n\u00ff\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7461, "properties": {"category": "sci.electronics", "text": "From: tom@afthree.as.arizona.edu (Thomas J. Trebisky)\nSubject: Re: A question about 120VAC outlet wiring..\nKeywords: outlet\nOrganization: Steward Observatory, Univ. of Arizona, Tucson\nLines: 19\n\ncrichmon@sedona.intel.com (Chris Richmond) writes:\n>Well, my house was built just last year, and the breaker box is wired the\n>same way.  All the white and ground wires are on a common bus.  Except for\n>the 220V circuits, only black wires are hooked to the breakers.  It was\n>the same way in the last two houses I had also.  Are you sure this is wrong?\n>I still have the building inspector's signature on the breaker box.\n\nThe point is that the original poster was talking about connecting\nground and neutral in the *outlet* box (big NO NO), and you are talking\nabout them being connected in the breaker box (as things should be).\n\nIf this is not obvious, the point is that there should be current\nflow in the white, i.e. neutral/return wires when things in the\nhouse are operating.  There should not be any flow in the ground wires\nunless there is a fault condition.  Notice also that in the breaker box\nthere is a wire leading from the above-mentioned junction to earth ground,\nusually a pipe or spike driven into the ground.\n-- \n\tTom Trebisky\tttrebisky@as.arizona.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7462, "properties": {"category": "comp.windows.x", "text": "From: queloz@bernina.ethz.ch (Ronald Queloz)\nSubject: Hypercard for UNIX\nOrganization: Swiss Federal Institute of Technology (ETH), Zurich, CH\nLines: 10\n\nHi netlanders,\n\nDoes anybody know if there is something like Macintosh Hypercard for any UNIX \nplatform?\n\n\nThanks in advance\n\n\nRon.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7463, "properties": {"category": "rec.motorcycles", "text": "From: tobias@convex.com (Allen Tobias)\nSubject: Re: Comments on a 1984 Honda Interceptor 1000?\nNntp-Posting-Host: hydra.convex.com\nOrganization: CONVEX Computer Corporation, Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 27\n\nIn article <19APR93.15421177@skyfox> howp@skyfox writes:\n>Hi.\n>     I am considering the purchase of a 1984 Honda 1000cc Interceptor for\n>$2095 CDN (about $1676 US).  I don't know the mileage on this bike, but from\n>the picture in the 'RV Trader' magazine, it looks to be in good shape.\n>Can anybody enlighten me as to whether this is a good purchase?  Is it a \n>good bike?  This will be my first bike.  (I realize that, for a beginner,\n>1000cc is considered too be a bit too much bike.  I have heard from friends\n>that were once beginners that if they had to start all over again that they\n>would have started with a bigger bike.  One just has to be careful and not\n>drive outside their skill level.) \n>     I had considered (and posted about two weeks ago) the purchase of 1982\n>600cc Yamaha Seca Turbo with 33000 km, but I am a little wary now about the\n>prospect of having to deal with a turbo (both on the road and in the shop).  I\n>may still consider this bike (the price dropped from $1300 to $1100 CDN), but\n>the Honda seems to be a good bike. \n>\n>     Comments?\n>\n\nOne word \"HEAVY\". It steers heavy, turns require alot of effort. Hard to get\naccess to the large V-4 motor. Weak/small front forks with anti-dive gizmos!\n\nAT\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7464, "properties": {"category": "rec.autos", "text": "From: jwl@cbnewsm.cb.att.com (james.w.lee..iii)\nSubject: Re: new saturn argument\nArticle-I.D.: cbnewsm.1993Apr6.203837.14323\nDistribution: usa\nOrganization: AT&T\nLines: 17\n\nIn article <C50p1M.21o@noose.ecn.purdue.edu>, rjwade@rainbow.ecn.purdue.edu (Robert J. Wade) writes:\n> \n> ok, how about this to argue about.  why does the sl2 have a much lower base\n> price than the sc2???  it's over 1k cheaper(i forget the exact amount).\n> doesn't it cost more to have the extra doors/windows/locks/motors etc. that \n> are in the 4 door????  perhaps it is just a marketing deal....people want the\n> 2door, so they will pay the extra 1.2k???\n\n\nThe SC1/SC2 has a shorter wheel base than the SL/SL1/SL2/SW1/SW2, just a \nthought. Ithink your right though......\n\n-- \nJames Lee  @ A.T.& T. Bell Labs\n   Murray Hill, N.J. 07974\n  Room 2A-336    201-582-4420\n        att!conceps!jwl\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7465, "properties": {"category": "comp.windows.x", "text": "From: atae@spva.ph.ic.ac.uk (Ata Etemadi)\nSubject: Ideal Operating System (Was: DEATH BLOW TO UNIX)\nNntp-Posting-Host: prawn.sp.ph\nOrganization: Imperial College of Science, Technology, and Medicine, London, England\nLines: 45\n\nG'Day\n\nWindows NT is a step forward, but not by much. I guess for DOS users who\nthink multi-tasking is really _neat_ (add puke here) and are overjoyed to \nbe able to use more than 64K of memory, its a major improvement. For Windows\nusers its more like an upgrade with facilities most Unix users take for \ngranted. Most of  Windows users only use PCs for text processing or running \n3rd-party applications anyway so the operating system features are not even \na real issue. My ideal operating system:\n\n\tBinary compatible across all plaforms. It should recognize\n\tbinaries and configure on the fly, so I don't have to have\n\tbin/Mac bin/DOS bin/Dec bin/Sun bin/HP etc...\n\n\tMulti-CPU. So I can use the CPUs on my PC and W/S and Mac \n\tand Transputers and DSPs. I don't know a single site which \n\thas gone for a single vendor. I am not going to trade-in \n\t80Mflops per H1 transputer or ultra-fast FFT on DSP chips.\n\tNote NT runs on Symmetric multi-CPU systems.\n\n\tBuilt-in portable GUI/Graphics tools. You can call DrawButton \n\tor DrawLine and it does the same thing no matter what platform \n\tor display. It should also translate graphics commands on-the-fly.\n\tso I can use PC graphics S/W on my workstation and X software on \n \tmy PC. I think GUIs are not just nice to have but essential.\n\n\tConfigurable front-end. So you can make it look like Unix or DOS\n\tor NT or OS/2, and run shell scripts or command/BAT files.\n\n\tObject oriented. So I can program easily under it and not have\n\tto re-invent the wheel if the networking is not up to scratch\n\tor my application needs to access source/object code on the fly.\n\nIn other words it should have some AI capability. That and a tight, clean\nkernel so you can actually understand it. Anyone know of something like this ?\n\n\tadios\n\t     Ata <(|)>.\n-- \n| Mail          Dr Ata Etemadi, Blackett Laboratory,                          |\n|               Space and Atmospheric Physics Group,                          |\n|               Imperial College of Science, Technology, and Medicine,        |\n| Internet/Arpanet/Earn/Bitnet atae@spva.ph.ic.ac.uk or ata@c.mssl.ucl.ac.uk  |\n| Span                              SPVA::atae       or     MSSLC:atae        |\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7466, "properties": {"category": "talk.politics.mideast", "text": "From: horen@netcom.com (Jonathan B. Horen)\nSubject: Investment in Yehuda and Shomron\nLines: 40\n\nIn today's Israeline posting, at the end (an afterthought?), I read:\n\n> More Money Allocated to Building Infrastructure in Territories to\n> Create Jobs for Palestinians\n> \n> KOL YISRAEL reports that public works geared at building\n> infrastructure costing 140 million New Israeli Shekels (about 50\n> million dollars) will begin Sunday in the Territories. This was\n> announced last night by Prime Minister Yitzhak Rabin and Finance\n> Minister Avraham Shohat in an effort to create more jobs for\n> Palestinian residents of the Territories. This infusion of money\n> will bring allocations given to developing infrastructure in the\n> Territories this year to 450 million NIS, up from last year's\n> figure of 120 million NIS.\n\nWhile I applaud investing of money in Yehuda, Shomron, v'Chevel-Azza,\nin order to create jobs for their residents, I find it deplorable that\nthis has never been an active policy of any Israeli administration\nsince 1967, *with regard to their Jewish residents*. Past governments\nfound funds to subsidize cheap (read: affordable) housing and the\nrequisite infrastructure, but where was the investment for creating\nindustry (which would have generated income *and* jobs)? \n\nAfter 26 years, Yehuda and Shomron remain barren, bereft of even \nmiddle-sized industries, and the Jewish settlements are sterile\n\"bedroom communities\", havens for (in the main) Israelis (both\nsecular *and* religious) who work in Tel-Aviv or Jerusalem but\ncannot afford to live in either city or their surrounding suburbs.\n\nThere's an old saying: \"bli giboosh, ayn kivoosh\" -- just living there\nwasn't enough, we had to *really* settle it. But instead, we \"settled\"\nfor Potemkin villages, and now we are paying the price (and doing\nfor others what we should have done for ourselves).\n\n\n-- \nYonatan B. Horen | Jews who do not base their advocacy of Jewish positions and\n(408) 736-3923   | interests on Judaism are essentially racists... the only \nhoren@netcom.com | morally defensible grounds for the preservation of Jews as a\n                 | separate people rest on their religious identity as Jews.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7467, "properties": {"category": "comp.graphics", "text": "From: Peter.vanderveen@visser.el.wau.nl  (Peter van der Veen)\nSubject: To yhe one who wants fonts in POV/POLYRAY/VIVID\nLines: 28\nOrganization: Wageningen Agricultural University\nX-Newsreader: FTPNuz (DOS) v1.0\n\nTo everyone who wants fonts in Vivid/POV/Polyray.\nThe Borland BGI font converter is VVFONT18.ZIP.\nThis program can be found on FTP.INFORMATIK.UNI-OLDENBURG.DE directory\npub/dkbtrace/utils.\nAlso WUARCHIVE has mirrored this site (directory graphics/graphics/mirrors/\nftp.informatik.uni-oldenburg.de/pub/dkbtrace/utils.\nThere are more nice utilities present in this directory.\nA new version of Polyray 1.6 (for those asked for it) can be found on the \nsame sites but in the directory INCOMING instead of UTILS (PLY16386).\nAlso in this directory POVSHELL and PV3DV060 could be found.\nHave a nive raytrace time.\nPeter\n\n /*---------*\\*/*-------------------------------------------*\\\n *|  ____/|  *|*    PETER.VANDERVEEN@VISSER.EL.WAU.NL       |*\n *|  \\ o.O|  *|*    Department of Genetics                  |*\n *|   =(_)=  *|*    Agricultural University                 |*\n *|     U    *|*    Wageningen, The Netherlands             |*\n \\*---------*/*\\*-------------------------------------------*/\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7468, "properties": {"category": "talk.politics.mideast", "text": "From: ab4z@Virginia.EDU (\"Andi Beyer\")\nSubject: Re: Israel's Expansion II\nOrganization: University of Virginia\nLines: 29\n\nwaldo@cybernet.cse.fau.edu  writes:\n> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n> \n> > First of all I never said the Holocaust. I said before the\n> > Holocaust. I'm not ignorant of the Holocaust and know more\n> > about Nazi Germany than most people (maybe including you). \n> \n> Uh Oh!  The first sign of an argument without merit--the stating of one's \n> \"qualifications\" in an area.  If you know something about Nazi Germany, \n> show it.  If you don't, shut up.  Simple as that.\n> \n> > \tI don't think the suffering of some Jews during WWII\n> > justifies the crimes commited by the Israeli government. Any\n> > attempt to call Civil liberterians like myself anti-semetic is\n> > not appreciated.\n> \n> ALL Jews suffered during WWII, not just our beloved who perished or were \n> tortured.  We ALL suffered.  Second, the name-calling was directed against\n> YOU, not civil-libertarians in general.  Your name-dropping of a fancy\n> sounding political term is yet another attempt to \"cite qualifications\" \n> in order to obfuscate your glaring unpreparedness for this argument.  Go \n> back to the minors, junior.\n\tAll humans suffered emotionally, some Jews and many\nothers suffered physically. It is sad that people like you are\nso blinded by emotions that they can't see the facts. Thanks\nfor calling me names, it only assures me of what kind of\nignorant people I am dealing with. I included your letter since\nI thought it demonstrated my point more than anything I could\nwrite. \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7469, "properties": {"category": "sci.space", "text": "From: enzo@research.canon.oz.au (Enzo Liguori)\nSubject: Vandalizing the sky.\nOrganization: Canon Information Systems Research Australia\nLines: 38\n\nFrom the article \"What's New\" Apr-16-93 in sci.physics.research:\n\n........\nWHAT'S NEW (in my opinion), Friday, 16 April 1993  Washington, DC\n\n1. SPACE BILLBOARDS! IS THIS ONE THE \"SPINOFFS\" WE WERE PROMISED?\nIn 1950, science fiction writer Robert Heinlein published \"The\nMan Who Sold the Moon,\" which involved a dispute over the sale of\nrights to the Moon for use as billboard. NASA has taken the firsteps toward this\n hideous vision of the future.  Observers were\nstartled this spring when a NASA launch vehicle arrived at the\npad with \"SCHWARZENEGGER\" painted in huge block letters on the\nside of the booster rockets.  Space Marketing Inc. had arranged\nfor the ad to promote Arnold's latest movie. Now, Space Marketing\nis working with University of Colorado and Livermore engineers on\na plan to place a mile-long inflatable billboard in low-earth\norbit.  NASA would provide contractual launch services. However,\nsince NASA bases its charge on seriously flawed cost estimates\n(WN 26 Mar 93) the taxpayers would bear most of the expense. This\nmay look like environmental vandalism, but Mike Lawson, CEO of\nSpace Marketing, told us yesterday that the real purpose of the\nproject is to help the environment! The platform will carry ozone\nmonitors he explained--advertising is just to help defray costs.\n..........\n\nWhat do you think of this revolting and hideous attempt to vandalize\nthe night sky? It is not even April 1 anymore.\nWhat about light pollution in observations? (I read somewhere else that\nit might even be visible during the day, leave alone at night).\nIs NASA really supporting this junk?\nAre protesting groups being organized in the States?\nReally, really depressed.\n\n             Enzo\n-- \nVincenzo Liguori                             | enzo@research.canon.oz.au\nCanon Information Systems Research Australia | Phone +61 2 805 2983\nPO Box 313 NORTH RYDE NSW 2113               | Fax   +61 2 805 2929\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7470, "properties": {"category": "rec.motorcycles", "text": "From: car377@cbnewsj.cb.att.com (charles.a.rogers)\nSubject: Re: Why I won't be getting my Low Rider this year\nOrganization: AT&T\nSummary: Ergonomics of gas tanks\nKeywords: congratz\nLines: 30\n\nIn article <1993Mar30.214419.923@pb2esac.uucp>, prahren@pb2esac.uucp (Peter Ahrens) writes:\n> In article <1993Mar29.225236.9061@cbnewsj.cb.att.com> car377@cbnewsj.cb.att.com (charles.a.rogers) writes:\n> >[...] I had planned to get an HD this year...but instead I\n> >took delivery on a brand new male offspring(er) last Monday...\n> \n> Sounds like you should have been doing your planning LAST year, given\n> Harley-Davidson's product delivery lag and the human gestation cycle.\n\nOr perhaps any planning at all.  :-)  Hiya Pete, still got that CBX?\nNice to hear from you again!\n\n> >And, yes, I finally did figure out why this happens, and I have\n> >taken steps to ensure [a storkish repetition]...\n> \n> That would be low drag bars and way rad rearsets for the FJ, so that the \n> ergonomic constraints would have contraceptive consequences?\n\nOuch. :-)   This brings to mind one of the recommendations in the\nHurt Study.   Because the rear of the gas tank is in close proximity\nto highly prized and easily damaged anatomy, Hurt et al recommended\nthat manufacturers build the tank so as to reduce the, er, step function\nprovided when the rider's body slides off of the seat and onto the\ngas tank in the unfortunate event that the bike stops suddenly and the \nrider doesn't.  I think it's really inspiring how the manufacturers\nhave taken this advice to heart in their design of bikes like the \nCBR900RR and the GTS1000A.\n\nChuck Rogers\ncar377@torreys.att.com\ncar377@cbnewsj.att.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7471, "properties": {"category": "misc.forsale", "text": "From: steveg@bach.udel.edu (Steven N Gaudino)\nSubject: Dbase IV for sale (price reduced!)\nNntp-Posting-Host: bach.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 4\n\nDbase IV 1.5 for sale, 3.5 inch disks, all registration included (so you\ncan upgrade to 2.0 if you want), manuals still shrinkwrapped, disks only\nopened to verify they all work.  Asking $175 or best offer.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7472, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rdc@pelican.cit.cornell.edu (Bob Cowles)\nSubject: Re: cica mirror?\nOrganization: Cornell Info. Tech.\nLines: 2\n\nTry wuarchive.wustl.edu in the mirrors/win3 directory.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7473, "properties": {"category": "rec.sport.hockey", "text": "From: filinuk@staff.dccs.upenn.edu (Geoff Filinuk)\nSubject: Get Real.  Caps have no chance\nReply-To: filinuk@staff.dccs.upenn.edu (Geoff Filinuk)\nOrganization: University of Pennsylvania\nLines: 7\nNntp-Posting-Host: staff.dccs.upenn.edu\n\n\n\tAnyone who really believes that the Caps can beat\nthe Pens are kidding themselves.  The Pens may not loose\none game in the playoffs.\n\nGeoff Filinuk\nFlyers Fan\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7474, "properties": {"category": "rec.motorcycles", "text": "From: maven@mavenry.altcit.eskimo.com (Norman Hamer)\nSubject: Observation re: helmets\nX-AltNet-ID: 211353\nLines: 29\n\n \n Grf. Dropped my Shoei RF-200 off the seat of my bike while trying to rock \nit onto it's centerstand, chipped the heck out of the paint on it...\n \n So I cheerfully spent $.59 on a bottle of testor's model paint and \nrepainted the scratches and chips for 20 minutes.\n \n Then, while it was drying, I realized that I was out of smokes and that my \ncage is not currently running... So I \"had to\" take my bike down to the \nstore. Not wanting to mess up my paint job, I said \"Well, heck. I can just \nuse my old helmet\".... this is your standard el cheapie openface... \n  \n I didn't notice a big difference when I switched TO the shoei, but \nswitching back was really bad... \n \n 1) Doesn't fit worth a damn, too wide in the sides, too short front to \nback...\n 2) With a faceplate, it's still bloody windy... with the shoei, I normally \nignore the face shield until I get up to about 30ish... with this one, \ntaxiing to the end of the driveway was too smegging much wind. \n \n  \n \n The question for the day is re: passenger helmets, if you don't know for \ncertain who's gonna ride with you (like say you meet them at a .... church \nmeeting, yeah, that's the ticket)... What are some guidelines? Should I just \npick up another shoei in my size to have a backup helmet (XL), or should I \nmaybe get an inexpensive one of a smaller size to accomodate my likely \npassenger? \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7475, "properties": {"category": "comp.sys.mac.hardware", "text": "From: fredm@media.mit.edu (Fred G Martin)\nSubject: Re: Put ex. syquest in Centris 610?\nOrganization: MIT Media Laboratory\nLines: 54\n\nI've just installed a 5.25\" tape backup in my C610; lot of the issues\nare the same.  So, to answer your questions...\n\nIn article <1993Apr16.141820.1@cstp.umkc.edu> kmoffatt@cstp.umkc.edu writes:\n\n> My PLI 80M syquest drive has a wire from the\n> drive to an id# switch on the outside of the case.  Where do I connect\n> this switch??  Can the computer just \"tell\" with internal drives?\n\nYou probably want to hard-wire the SCSI ID with shorting jumpers.  Put\nit at a convenient number like \"1\".  You *could* cut a hole in the\nback of the machine to route the ID switch, but why go through the\nhassle?  You probably won't be needing to frequently change the ID of\nyour internal drive.\n\n>\tI noticed that the drive will lay over part of the motherboard (I\n>didn't look closely, but I seem to recall it laying over the ram that's\n>soldered onto the motherboard?  Would that cause problems?\n\nYeah, when I first installed the tape drive I was a little concerned\ntoo.  But it's no problem, the device is designed to fit just fine\nwith the overhang.  It shouldn't reach back beyond the ROM/RAM/VRAM\nSIMMs, though.\n\n>\tOne last question!  Is there anywhere to order a faceplate cover?  \n>the drive's front panel is smaller than the space left in the case (the\n>drive's panel is the same size as the spotsBM clone's cases).  Should I just\n>cut a hole in the plastic panel that is currently holding tmpty place?\n\nYou can special-order parts to mount the device from your local Apple\ndealer.  The relevant parts are:\n\n  922-0358  blank bezel faceplate\n  922-0850  CD-ROM carrier [i.e., generic 5.25\" device mounting bracket]\n\nNote Apple's unfortunate choice of name for the slide-in bracket to\nmount a 5.25\" device.  The service techs I talked to said, \"Oh sure,\nwe stock those.\"  Of course they were thinking of the CD caddies to\nhold a CD disk when you stick it in the drive.\n\nAs far as I can tell, Apple does not sell a bezel faceplate already\ncut out for a standard 5.25\" device.  (Why not?  They advertise\nthese machines as being able to accept any standard device in the\n5.25\" bay, why not provide the faceplate?)   They do sell a cutout for\ntheir CD-ROM drive (of course), but that's of no use.\n\nI'm going to hack up the extra bezel I ordered to make a cutout for my\ntape drive, which is a standard 5.25\" device.\n\nGood luck with your SyQuest.\n\n\t-Fred\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7476, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rudim@cs.kuleuven.ac.be (Rudi Maelbrancke)\nSubject: EMM386.EXE and Windows and Dos6\nNntp-Posting-Host: piaget.cs.kuleuven.ac.be\nOrganization: Dept. Computerwetenschappen\nLines: 17\n\nIn Windows I created a permanent Swap-file of 7771Kb as win3.1\nrecommended me to do that (32bit access).\nIf I use EMM386.EXE, after win3.1 startup I have 6689K of memory\nfree, if I leave EMM386.EXE out of my config.sys I have 9935K\nof memory free, and windows recommends me a swap file of 11769K.\n\nI use DOS6, with memmaker, have 4MB of internal Memory and a 486DX,\n\nDoes anybody knows why this is happening (possibly win needs\nsome UMB's to manage virtual memory?, If true, which UMB's, those\nthat EMM386 can find without including suspicious parts?)\n\nI need an optimized DOS-environment, because i develop applications for\nDOS using a windows programming environment.\n\n\nRudi\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7477, "properties": {"category": "rec.autos", "text": "From: rmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen)\nSubject: Re: Most bang for between $13,000 and $16,000\nOrganization: University of Virginia\nLines: 7\n\n\nYour best bet is the Dodge Intrepid with the SOHC 24 valve 3.4? six.\nit gets 214 hp, and has a hell of a lot of room, great styling, and\nABS, with four wheel disk breaks.  The LH cars won Automobile \nmagazines \n\"automobile of the year\" award, and are quiet impressive.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.353+0000", "event": "documents", "entityId": 7478, "properties": {"category": "rec.autos", "text": "From: bernstei@next3.corp.mot.com (Andrew Bernstein)\nSubject: Re: GEICO mechanical breakdown insurance\nOrganization: MOTOROLA \nDistribution: usa\nNntp-Posting-Host: 129.188.149.38\nLines: 36\n\nIn article <C50pBH.244@noose.ecn.purdue.edu> rjwade@rainbow.ecn.purdue.edu  \n(Robert J. Wade) writes:\n@>In article <1993Apr4.010517.9701@lds.loral.com> mcculloc@sps204.lds.loral.com (Thad McCulloch) writes:\n@>>\n@>>Has anyone had any experience with GEICO's extended\n@>>warranty plan.  It seems to be slightly less expensive than\n@>>the normal dealer-sponsored policy.\n@>>\n@>and once again....*never* buy extended warranties....they are a complete and\n@>total ripoff period!!!!  you are better off taking your money and putting it\n@> \nin a bank and using that money for repairs.  many extended warranties never\n@>pay or have co-payments etc.  \n@>\n\n\nHow many people will actually put that money in the bank and keep it there for the\nsole use of a automotive repair......maybe for people who have a hard time saving\nmoney or don't want the hassle of  worrying about paying for everything the \nextended warranty is worth it.....for some people it is worth it...others not, and\nfor some the peace of mind knowing you won't have too many unexpected expenses\nis enough.....if you drive a lot, your basic warranty can be up in a little longer than\na year....how many people can make the car payments as well as large repairs....\n\nIt may work for some people......\n\nAndrew\n\n\n--\n\nAndrew Bernstein                                        \nMotorola Inc.                          \"There's no such thing as sanity,\n1299 E. Algonquin Road            and that's the sanest fact\"\nSchaumburg, IL 60196-1077                               ---- Dire Straits\n         bernstei@next3.corp.mot.com (NeXT mail OK)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7479, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: goyal@utdallas.edu (MOHIT K GOYAL)\nSubject: Re: 17\" Monitors\nNntp-Posting-Host: csclass.utdallas.edu\nOrganization: Univ. of Texas at Dallas\nLines: 10\n\n>the Mitsubishi.  I also reviewed a new Nanao, the F550iW, which has just\n>been released.  Last year for the May '92 issue of Windows, I reviewed\n\nDo you have the specs for this monitor?  What have they changed from the\nF550i? \n\nDo you know if their is going to be a new T560i soon? (a T560iW?)\n\nThanks.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7480, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: Juggling Dodgers\nLines: 26\n\nIn article <mssC5Mx2v.C44@netcom.com>, mss@netcom.com (Mark Singer) says:\n>\n>Lasorda juggled his lineup against the Pirates Friday night, and from\n>the results one might conclude that he will stick with the changes\n>for a while.\n>\n>Butler          reclaimed leadoff spot, probably for the whole season\n>Davis           wants to get his speed into play.  4-for-4 last night\n>Piazza          the kid is doing *everything* well.  very well.\n>Strawberry      the primadonna insists on batting cleanup\n\nhow do you know this? did lasorda say, before the game, \"here's the\nlineup i'm using.  i'm batting strawman fourth because the primadonna\ninsists on batting cleanup\"?\n\nif this is true (note that i don't think it is), lasorda should be\nfired for at least two reasons:\n\n         1) publicly humiliating his players;\n         2) knuckling under to his players wishes.\n\nhowever, i think that the more likely explanation is that lasorda\nwanted strawberry to bat fourth, and that you hate strawberry.\n\nbob vesterman.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7481, "properties": {"category": "misc.forsale", "text": "From: abou@dam.cee.clarkson.edu\nSubject: Re: computer books for sale (UPDATED LIST)\nArticle-I.D.: news.1993Apr6.013433.16103\nOrganization: Clarkson University\nLines: 76\nNntp-Posting-Host: dam.cee.clarkson.edu\n\n\n                        UPDATED  LIST\nHi everybody\n  I have the following books for sale. Some of these books are brand new.\nIf you find any book you like and need more information about it, please\nfeel free to send me an E-Mail. The buyers pays the shipping fees.\n Thanks.\nabou@sun.soe.clarkson.edu\n\n========================================================================\nTITLE   : Windows Programming: An Introduction \nAUTHOR  : William H. Murray, III & Chris H. Pappas\nPUBLISH.:  Osborne McGraw-Hill\npp.     : 650\nCOVER   : Soft\nNOTE    : Covers up to Windows 3.0\nASKING  : $15\n======================================================================\nTITLE   : Harvard Graphics: The Complete Reference\nAUTHOR  : Cary Jensen & Loy Anderson\nPUBLISH.: Osborne McGraw-Hill\npp.     : 1073\nCOVER   : Soft\nNOTE    : Covers Releases Through 2.3 & Draw Partner\nASKING  : $15\n=======================================================================\nTITLE   : High Performance Interactive Graphics: Modeling, Rendering, \n          and Animating\nAUTHOR  : Lee Adams\nPUBLISH.:Windcrest\npp.     : 402\nCOVER   : Soft\nNOTE    : Full of examples programs in BASIC\nASKING  :$15\n========================================================================\nTITLE   : Science and Engineering Applications on the IBM PC\nAUTHOR  : R. Severin\nPUBLISH.: Abacus\npp.     : 262\nCOVER   : Soft\nNOTE    : A lot of Examples in BASIC\nASKING  :$ 10\n=========================================================================\nTITLE   : Graphics for the Dot-Matrix Printer: How to Get Your Printer \n          to Perform Miracles\nAUTHOR  : John W. Davenport\nPUBLISH.: Simon & Schuster\npp.     : 461\nCOVER   : Soft\nNOTE    : Full of examples Programs in BASIC\nASKING  : $10\n==========================================================================\nTITLE   : Programming With TURBO C\nAUTHOR  : S. Scott Zimmerman & Beverly B. Zimmerman\nPUBLISH.: Scott, Foresman and Co.\npp.     : 637\nCOVER   : Soft\nNOTE    : Some of the pages are highlighted\nASKING  : $10\n==========================================================================\nTITLE   : Introduction to Computer Graphics\nAUTHOR  : John Demel & Michael Miller\nPUBLISH.: Brooks/Cole Engineering Division\npp.     : 427\nCOVER   : Soft\nNOTE    : Example Programs in BASIC and Fortran\nASKING  : $10\n==========================================================================\nTITLE   : Hard Disk Mangement: The Pocket Reference\nAUTHOR  : Kris Jamsa\nPUBLISH.: Osborne McGraw-Hill\npp.     : 128\nCOVER   : Soft\nNOTE    : Pocket Size\nASKING  : $ 4\n==========================================================================\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7482, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Maine System\nFrom: Ryan Robbins <IO20456@MAINE.MAINE.EDU>\nSubject: Re: Why The RedFlops Can(but won't) win.....\nLines: 10\n\nDon't knock Vaughn for being a spring training .400 hitter\nbut a .250 regular season hitter.\nAround 30 games played isn't an indication of how good any\nhitter is, and the quality of pitching is way down.\n\nRyan Robbins\nPenobscot Hall\nUniversity of Maine\n\nIO20456@Maine.Maine.Edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7483, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: Blast them next time\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 9\n\nIn article <1r19l9$7dv@usenet.INS.CWRU.Edu> oldham@ces.cwru.edu (Daniel Oldham) writes:\n\n   [flame-bait, pure and simple]\n\n\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7484, "properties": {"category": "misc.forsale", "text": "From: rsjoyce@eos.ncsu.edu (ROGER STEPHEN JOYCE)\nSubject: Mac monitor **WANTED**\nOriginator: rsjoyce@c00402-346dan.eos.ncsu.edu\nReply-To: rsjoyce@eos.ncsu.edu (ROGER STEPHEN JOYCE)\nOrganization: North Carolina State University, Project Eos\nLines: 11\n\n\nWanted:  color monitor >= 14\"  suitable for use on a Macintosh\nCentris 610.  I am planning on purchasing one of these machines\nsoon and don't want to have to pay full price for a new monitor\nwhen a used one will do me just as well.  If you have one you'd\nlike to part with, please email me with the specs and price.\n\nThanks.\n\nRoger\nrsjoyce@eos.ncsu.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7485, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dthumim@athena.mit.edu (Daniel J Thumim)\nSubject: Re: 20\" or 21\" grayscale displays\nOrganization: Massachusetts Institute of Technology\nLines: 14\nNNTP-Posting-Host: marinara.mit.edu\n\n>  A quick look through the Computer Shopper gave the following companies\n>that sell 20\"+ monochrome monitors for less than $2000 (PC or PS/2 compatible):\n>  Cornerstone Technology, Digital Technology, Hardware That Fits,\n>  IBM, Ikegami, Image Systems, Nanao, Radius,\n>  Ran-Ger Technologies, Sampo, Samsung, Sigma Designs.\n\nMost of these are single-scan monitors, which are useless for most\nPC users.  I posted requests for information in other newsgroups which\nwere mostly fruitless, but I have managed to track down two multisync\ngrayscal monitors in the 17-21\" range, one 20\" and one 21\".  I am still\nlooking into it, and I will post the results when I get more info.\nI am looking into a group purchase as well.\n                                              -- |)aniel Thumim\n                                              dthumim@mit.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7486, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nOrganization: University of Toronto Chemistry Department\nLines: 60\n\nIn article <C4zCII.Ftn@watserv1.uwaterloo.ca> smale@healthy.uwaterloo.ca (Bryan Smale) writes:\n>\n>                        Team           Biggest       Biggest\n>Team:                   MVP:          Surprise:    Disappointment:\n>-----------------------------------------------------------------------\n>Boston Bruins           Oates          D.Sweeney     Wesley\n>Buffalo Sabres          Lafontaine     Mogilny       Audette (jinx?)\n>Calgary Flames          Roberts        Reichel       Petit\n>Chicago Blackhawks      Roenick        Ruuttu        Goulet\n\nChelios is by far the MVP on Chicago...\n\n>Detroit Red Wings       Yzerman        Chaisson      Kozlov\n>Edmonton Oilers         Manson         Buchberger    Mellanby\n\nManson, by his own admission, had a terrible year...the Oilers\ndon't really have a team MVP...by default, it should go to Craig\nMacTavish.  Shjon Podein was the biggest surprise...Tikkanen the\nbiggest disappointment.\n\n>Hartford Whalers        Sanderson      Cassells      Corriveau\n>Los Angeles Kings       Robitaille     Donnelly      Hrudey\n>Minnesota North Stars   Modano      Tinordi(not expected back)  Broten\n\nTinordi was back by mid-season last year...and when he plays he is the MVP.\n\n>Montreal Canadiens      Muller         Lebeau        Savard\n>New Jersey Devils       Stevens        Semak         MacLean\n>New York Islanders      Turgeon        King(finally) Marois\n\nKing had a great year last year also.\n\n>New York Rangers        Messier        Kovalev       Bourque\n\nHow can Kovalev be a surprise?\n\n>Ottawa Senators         MacIver        Baker         Jelinek\n>Philadelphia Flyers     Lindros/Recchi Fedyk/Galley  Eklund\n\nFence-sitting...look at Philly's record with Eric and without...\nthere is no doubt.  Soderstrom is probably the biggest surprise.\n\n>Pittsburgh Penguins     Lemieux        Tocchet(even for him)  Jagr\n\nTocchet had a near 100 point season in Philly with Mike Bullard as\nhis center...why shouldn't he be able to do that with Mario?\n\n>Quebec Nordiques        Sakic/Ricci    Kovalenko     Pearson\n>San Jose Sharks         Kisio          Gaudreau      Maley\n>St Louis Blues          Shanahan       C.Joseph      Ron Sutter\n\nReally Joseph deserves the MVP nod.\n\n>Tampa Bay Lightening    Bradley        Bradley       Creighton/Kasper\n>Toronto Maple Leafs     Gilmour        Potvin        Ellett/Anderson\n>Vancouver Canucks       Bure           Nedved(finally)    Momesso\n>Washington Capitals     Hatcher        Bondra/Cote   Elynuik\n>Winnipeg Jets           Selanne        Selanne       Druce\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7487, "properties": {"category": "rec.sport.hockey", "text": "From: Robert Angelo Pleshar <rp16+@andrew.cmu.edu>\nSubject: Bowman whining already\nOrganization: University Libraries - E&S Library, Carnegie Mellon, Pittsburgh, PA\nLines: 14\nNNTP-Posting-Host: andrew.cmu.edu\n\nI should have guessed. It's time for the annual Pittsburgh Penguins\nwhine-a-thon. Bowman was complaning about cheap shots by the Devils in\nGame 1. I'm sorry, Mr. Bowman, you're a great coach, but those \"cheap\nshots\" were nothing compared to what's going to come. Also, I guess you\nwere only able to notice the cheap shots made by the guys not in white.\nIt's amazing what those black and gold colored glasses will do. \n\nPS - Nice dive on that high stick Mario. Everyone knew it was a high\nstick, you could have stayed on your feet and saved your diving talent\nfor later.\n\njust stirring it up a bit,\nRalph\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7488, "properties": {"category": "sci.electronics", "text": "From: whit@carson.u.washington.edu (John Whitmore)\nSubject: Re: Radar detector DETECTORS?\nArticle-I.D.: shelley.1r4cucINNham\nDistribution: na\nOrganization: University of Washington, Seattle\nLines: 18\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <1993Apr19.231050.2196@Rapnet.Sanders.Lockheed.Com> babb@rapnet.sanders.lockheed.com (Scott Babb) writes:\n>Brian Day (bday@lambda.msfc.nasa.gov) wrote:\n>: On December 29, 1992, it was illegal to operate a radar detector\n>: in the state of Virginia.  If one got caught, one got fined $65.00.\n\n>The Federal Communications Act of 1934 made it *legal* for you to\n>operate a radio receiver of any kind, on any frequency (including\n>X, K, and Ka bands) in the United States. \n\n\tAnd the Commonwealth of Virginia has not exactly butted\nagainst the issue on those grounds.  The claim is that AS A MATTER\nOF TRAFFIC SAFETY one is not allowed to have a functioning radar\ndetector on the dashboard while operating a motor vehicle.\n\n\tYes, the argument is bogus, BUT... it hasn't been successfully\nchallenged in court.  Yet.\n\n\tJohn Whitmore\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7489, "properties": {"category": "misc.forsale", "text": "From: dlneal@apgea.army.mil (Dennis L. Neal <dlneal>)\nSubject: C64/128 GAme: \"X-Men\" for sale...\nOrganization: Edgewood\nLines: 7\nNntp-Posting-Host: cbda9.apgea.army.mil\n\nSelling X-men for the C64/128 for only $10 plus shipping.\n\n\nfirst email gets it...\n\nthanx,\n-Dennis L. Neal        dlneal@cbda9.apgea.army.mil\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7490, "properties": {"category": "comp.windows.x", "text": "From: paul@def.bae.co.uk (Paul Byrne)\nSubject: imake - help needed\nReply-To: paul@def.bae.co.uk\nOrganization: British Aerospace (Defence) Ltd.\nLines: 19\n\nHi\n\nCan someone please give me some pointers to setting up imake in a SUN OPENWINDOWS\nenviornment ? I've checked through all the documentation but can not find any clues.\n\nPlease respons via e-mail.....\n\nThanks\n\nPaul\n\n\n---------------------------------------------------------------------\nPaul Byrne\t\t\t\tBritish Aerospace Defence Ltd\n\t\t\t\t\tDynamics Division\nemail Paul.Byrne@def.bae.co.uk\t\tFPC 450\n\t\t\t\t\tP.O.Box 5, Filton\nPhone 0272 316086\t\t\tBristol, BS12 7QW\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7491, "properties": {"category": "misc.forsale", "text": "From: jamiller@kuhub.cc.ukans.edu\nSubject: 4 Sale: Computer misc, books, RPG stuff, etc.y\nArticle-I.D.: kuhub.1993Apr6.004808.48862\nOrganization: University of Kansas Academic Computing Services\nLines: 85\n\nIn article <1993Apr6.004325.48859@kuhub.cc.ukans.edu>, jamiller@kuhub.cc.ukans.edu writes:\n> The following are for sale (duh...:)\n> \n> Golden Image 400dpi B&W Hand Scanner & Dpaint III\n> \t$70\n> \n> Amiga Vision - mulitmedia authorizing software\n> \t$30\n> \n> Baud Bandit - terminal communication software\n> \t$10\n> \n> The Bard's Tale III: Thief of Fate - graphic RPG\n> \t$15\n> \n> F-29 Retaliator - flight simulator\n> \t$15\n> \n> Future Wars - fantasy/scifi graphic RPG\n> \t$15\n> \n> RVF Honda - Motocycle simulation\n> \t$10\n> \n> Patlabor Ingram and Phantom Labor models - Japanese Anime models\n> \t$15\n> \n> Robotech RPG books (English):\n> \n> The Ingrid Invasion\n> \t$10\n> \n> Southern Cross\n> \t$10\n> \n> Battletech Books (English):\n> \n> The Fox's Teeth: Exploits of McKinnon's Raiders\n> \t$5\n> \n> Gray Death Legion\n> \t$5\n> \n> Mercenary's Handbook\n> \t$15\n> \n> CityTech\n> \t$15\n> \n> Aerotech\n> \t$15\n> \n> Mechwarrior\n> \t$15\n> \n> AD&D Books:\n> \n> Monster Manual\n> \t$5\n> \n> Monster Manual II\n> \t$5\n> \n> Fiend Folio\n> \t$5\n> \n> Lots of books in Japanese and English on subjects of: Japanese\n> Culture, Asian Art History, Japanese Language, Socio-linguistics,\n> Ethnography, Linguistics, Physics, Calculaus (Menum and Folis), Unix\n> and Amiga Programming, Economics (Micro, Macro, Intl. Trade & Finance,\n> American Economic Development), and Philosophy (Language, Ethics,\n> Cognition, Science).  If there's something you think you might be\n> interested in let me know and I'll tell you what I have.\n> -- \n> jamiller@kuhub.cc.ukans.edu\n> James Miller\n> \n> _chicchai .sig no ho ga ichiban iin janai ka..._\n>              Enlightenment Happens?\n-- \njamiller@kuhub.cc.ukans.edu\nJames Miller\n\n_chicchai .sig no ho ga ichiban iin janai ka..._\n             Enlightenment Happens?\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7492, "properties": {"category": "sci.electronics", "text": "From: camter28@astro.ocis.temple.edu (Carter Ames)\nSubject: Lead Acid batteries & Concrete?\nOrganization: Temple University\nLines: 15\nNntp-Posting-Host: astro.ocis.temple.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\n\n   I was just wondering one thing, actually two. ( I hope that this is the\nproper place to post this subject)\n\n  Why does a lead acid battery discharge and become dead (totally unuseable)\nwhen stored on a concrete floor?  \n  I decided to bring the battery in from the lawn mower and the motorcycle\nfrom the unheated garage this year, *to preserve them* and I just\nwent to use them and noticed that not only do they not work, but \nthey act like the two terminals are shorted.  I asked a friend\nand he said that you should never do that, 'cause it ruins them,\nbut he couldn't tell me why.\n\nthanks\ncamter28@astro.ocis.temple.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7493, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dannyb@panix.com (Daniel Burstein)\nSubject: Re: (Q) CONNER HD specs\nOrganization: PANIX Public Access Unix, NYC\nLines: 17\n\nIn <199304181719.AA08489@sune.stacken.kth.se> hhaldre@stacken.kth.se (Heikki Haldre) writes:\n\n>Can anybody send CONNER CP-321 harddisk specifications?\n>It has 612 Cyl, and 4 HD, but I am more intrested in its time-out values, \n>precomp, etc.\n\n>Heikki Haldre Internet: hhaldre@sune.stacken.kth.se\n\nconner peripherals has a 1-800 number with a touch-tone /voice response\ndata bank giving all the info.\n\nif you call 1-800 directory assisatnce (1-800-555-1212) and ask for the\nphone number of \"conner peripherals,\" you should get what you need.\n\ndannyb@panix.com\nall the usual disclaimers apply, whatever they may be.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7494, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Re: Israeli Terrorism\nOrganization: University of Illinois at Urbana\nLines: 19\n\nab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n>I think the Israeli press might be a tad bit biased in\n>reporting the events. I doubt the Propaganda machine of Goering\n>reported accurately on what was happening in Germany. It is\n>interesting that you are basing the truth on Israeli propaganda.\n\nIf you consider Israeli reporting of events in Israel to be propoganda, then \nconsider the Washington Post's handling of American events to be propoganda\ntoo.  What makes the Israeli press inherently biased in your opinion?  I\nwouldn't compare it to Nazi propoganda either.  Unless you want to provide\nsome evidence of Israeli inaccuracies or parallels to Nazism, I suggest you \nkeep your mouth shut.  I'm sick and tired of all you anti-semites comparing\nIsrael to the Nazis (and yes, in my opinion, if you compare Israel to the Nazis\nyou are an anti-semite because you know damn well it isn't true and you are\njust trying to discredit Israel).\n\nEd.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7495, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ramirez@IASTATE.EDU (Richard G Ramirez)\nSubject: Re: SUMMARY: Borland/Microsoft Database C Libraries\nReply-To: ramirez@IASTATE.EDU (Richard G Ramirez)\nOrganization: Iowa State University\nLines: 4\n\nCould you post a description of ObjectBase, your chosen\nproduct.\n\nThanks\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7496, "properties": {"category": "sci.space", "text": "From: Wales.Larrison@ofa123.fidonet.org\nSubject: Re: Clementine mission name\nX-Sender: newtout 0.08 Feb 23 1993\nLines: 27\n\nMark Prado\n  \n>Please go just one step further:\n>How has the word \"Clementine\" been associated with mining?\n  \nOld pioneer song from the 1850's or so goes as follows:\n  \n  \"In a cavern, in a canyon,\n   Excavating for a mine,\n   Dwelt a miner, forty-niner,\n   And his daughter, CLEMENTINE\"\n  \nChorus:\n  \"Oh my darling, Oh my darling,\n   Oh my darling Clementine.\n   You are lost and gone forever,\n   Oh my darling Clementine.\"\n  \n I've also had it explained (but not confirmed from a reliable data\nsource) that CLEMENTINE is an acronym.  Something like Combined\nLunar Elemental Mapper Experiment on Extended Non Terrestrial\nIntercept Near Earth.  Personally, I think that acronym was made up\nto fit the name (if it really is an acronym).\n ------------------------------------------------------------------\n Wales Larrison                           Space Technology Investor\n\n--- Maximus 2.01wb\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7497, "properties": {"category": "sci.crypt", "text": "From: pgf@srl03.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Univ. of Southwestern Louisiana\nLines: 52\n\nstrnlght@netcom.com (David Sternlight) writes:\n\n>What follows is my opinion. It is not asserted to be \"the truth\" so no\n>flames, please.  It comes out of a background of 20 years as a senior\n>corporate staff executive in two Fortune 50 companies.\n\n>I'd be happy to use a crypto system supplied by the NSA for business, if\n>they told me it was more secure than DES, and in particular resistant to\n>attempts by Japanese, French, and other competitive companies and\n>governments to break.\n\n>I'd be happy to do so even with escrowed keys, provided I was happy about\n>the bona fides of the escrow agencies (the Federal Reserve would certainly\n>satisfy me, as would something set up by one of the big 8 accounting firms).\n\n>I'd trust the NSA or the President if they stated there were no trap\n>doors--I'd be even happier if a committee of independent experts examined\n>the thing under seal of secrecy and reported back that it was secure.\n\n>I'd trust something from the NSA long before I'd trust something from some\n>Swiss or anybody Japanese.\n\nA lot of us out here in the hinderland will trust the Japanese\nbefore we'll trust the NSA, the President, or those stupid\nFortune 50 companies you're so proud of.\n\n>This may seem surprising to some here, but I suggest most corporations would\n>feel the same way. Most/many/some (pick one) corporations have an attitude\n>that the NSA is part of our government and \"we support our government\", as\n>one very famous CEO put it to me one day.\n\n>Just some perspective from another point of view.\n\nAnd since the Japanese corps aren't part of our \"government/governors\"\nthey may be more trusted out htere than you are.\n\n\nPeople are getting tired of this \"be patriotic, do whatever we say\nwithout question, and pay more taxes\" attitude that comes from\nAmerica's political party...\nor should that be caste?\n\n>-- \n>David Sternlight         Great care has been taken to ensure the accuracy of\n>                         our information, errors and omissions excepted.  \n\n\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7498, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: Tony Lezard <tony@mantis.co.uk>\nSubject: Winword grammer checker saved my liff!\nDistribution: world\nOrganization: Mantis Consultants, Cambridge. UK.\nLines: 28\n\n1. Fire up Microsoft Word for Windows (version 2.0c)\n\n2. Type the following paragraph:\n\n   If you want to rite really very dead good, you just cant live.\n   Without one of the wonderfully write aids, what you're can get\n   what helps me impress me boss.\n\n3. Under Tools|Options|Grammar select \"Use grammar and style rules\n   strictly (all rules) and click OK.\n\n4. Run the grammar checker (this also does a spelling check).\n\f\nNo complaints.\n\nReadability:\n    Passive Sentences:    0%\n    Flesch Reading Ease: 84.5\n    Flesch Grade Level:   6.6\n    Flesch-Kincaid:       5.2\n    Gunning Fog Index:    8.7\n\n\n__\nTL\n(Someone buy Malcolm Bacchus some beer please.)\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7499, "properties": {"category": "comp.sys.mac.hardware", "text": "From: root@ncube.com (Operator)\nSubject: Accelaratores?\nNntp-Posting-Host: admin\nReply-To: root@ncube.com\nOrganization: nCUBE Corp., Foster City, CA\nLines: 27\n\nDo the accelaratores make a lot of difference?\nAs I understand, there is graphics and cpu accelaration.\n\nDoes graphics accelarator help out with the scanner and\nthe photo shop?\n\nIs combination of both practical?\n\nI have a Mac IIci. What kinds of accelaratores can I use?\n\n\n\n---\n\n\n\n                     ^~\n                     @ *  *\n  Captain Zod...    _|/_ /\n  zod@ncube.com    |-|-|/\n                  0 /| 0\n                   / |\n           \\=======&==\\===\n           \\===========&===\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7500, "properties": {"category": "talk.politics.misc", "text": "From: mikeq@freddy.CNA.TEK.COM (Mike Quigley)\nSubject: Re: Bill Targets Pension Funds for \" Liberation \"\nOrganization: Tektronix, Inc., Redmond,  OR.\nLines: 6\n\n>>|>       Excerpts from \"Insight\" magazine, March 15, 1993\n\n\n                       *Paranoia part deleted.*\n\n  Isn't Insight magazine published by the Mooneys?\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.354+0000", "event": "documents", "entityId": 7501, "properties": {"category": "sci.crypt", "text": "Subject: Re: Once tapped, your code is no good any more.\nFrom: a_rubin@dsg4.dse.beckman.com (Arthur Rubin)\nDistribution: na\nOrganization: Beckman Instruments, Inc.\nNntp-Posting-Host: dsg4.dse.beckman.com\nLines: 33\n\nIn <strnlghtC5uIJ4.76t@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n\n>In article <ELEE9SF.93Apr21095141@menudo.menudo.UH.EDU>\n>elee9sf@menudo.menudo.UH.EDU (Karl Barrus) writes:\n\n>>\n>>Would you trust a black-box from the NSA versus an \"open system\" from\n>>elsewhere?\n\n>Absolutely, if I were assured by someone I trusted that the black box was\n>more secure. I have nothing to conceal from the government, but I would like\n>to be sure that any Russian, Japanese, French, or other competitors for my\n>services can't read my traffic. I'd like to be sure that competitive bid\n>information was safe from commercial competitors and foreign governments\n>which would aid them.\n\n>I believe the NSA has identical motivations with respect to my activities.\n>The President and many other senior government officials have made it very\n>clear that they share these motivations. Thus I'd trust them on the\n>\"coincidence of interests\" argument as well as on a basic trust in their\n>professionalism and a high confidence in their skills.\n\n>David\n>-- \n>David Sternlight         Great care has been taken to ensure the accuracy of\n>                         our information, errors and omissions excepted.  \n\nNothing but errors and omissions here!\n\n--\nArthur L. Rubin: a_rubin@dsg4.dse.beckman.com (work) Beckman Instruments/Brea\n216-5888@mcimail.com 70707.453@compuserve.com arthur@pnet01.cts.com (personal)\nMy opinions are my own, and do not represent those of my employer.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7502, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: luke@aero.org (Robert A. Luke)\nSubject: Help!  Installing old HD on older Compaq XT\nOrganization: The Aerospace Corporation, El Segundo, CA\nLines: 27\nDistribution: world\nNNTP-Posting-Host: aerospace.aero.org\n\nWe are trying to install a donated hard disk (Miniscribe\nvintage 1988) on a supercheap ancient Compaq XT for\nuse in education.  The only problem is that the\nsupercheap Compaq didn't come with the manual and I\nhaven't been able to figure out how to start the SETUP\nprogram.\n\nI began using PCs after 286s were invented, so I have\na couple of basic questions:\n\n1.  Did XT-class computers even *have* SETUP programs?\n\n2.  If they did (or, do), how do I access it?\n\nIf anybody has any good advice on how to proceed or\nwhat to do next or what to look out for, please let me\nknow.  E-mail is best, but I'll also be watching the\nnewsgroup postings.\n\nThanks in advance,\n-Robert\n\n-- \n-------------------------------------------------------------------------------\nRobert Luke                     Internet:   luke@aero.org                     \nThe Aerospace Corporation       CompuServe: 71155,3011\n\"Danger, Will Robinson!\"  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7503, "properties": {"category": "sci.electronics", "text": "From: rajan@cco.caltech.edu (Rajan Ranga)\nSubject: An external timer\nArticle-I.D.: gap.1pli7gINNi6b\nOrganization: California Institute of Technology, Pasadena\nLines: 8\nNNTP-Posting-Host: fleming.caltech.edu\n\nI was wondering if anyone knows of a chip that that is similar to\nthe internal timer 0 on the Intel 80C188?  I want a timer that has\na Maxcount A and B and the output should the same as Intel's timer.  I called\nIntel and they told me that they don't make such a chip.  Any suggestions\nare welcome.  Thanks in advance.\n\nRajan Ranga\nE-mail: rajan@cco.caltech.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7504, "properties": {"category": "comp.graphics", "text": "From: max@slinky.NYU.EDU (David Max)\nSubject: 24bit mode on Speedstar 24X\nSummary: Routines for 24 bit color on Speedstar 24X?\nKeywords: Diamond Speedstar 24X 24bit 16.7\nOrganization: New York University\nLines: 12\n\n\n   I have a Diamond Speedstar 24X board that I want to program\nfor 24 bit 640x480 graphics, or possibly 800x600 16 bit color.\nDoes anybody have any libraries supporting these modes on this\nboard? Even somes simple routines to set the graphics mode and\nplot individual pixels would be a great help. I plan to use the\nroutines with djgp.\n\n   Thanks in advance. Please respond also via e-mail.\n\n   David Max\n   max@slinky.cs.nyu.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7505, "properties": {"category": "comp.windows.x", "text": "From: win@athen.sto.mchp.sni.de (Andrea Winkler)\nSubject: X and Security / X Technical Conference\nOrganization: SNI AG Muenchen, STO XS \nLines: 31\n\n\nI had no possibility to join the\n\n               7th annual X Technical Conference \n               January 18-20 1993\n               Boston, MA\n\nNevertheless, I'm interested in information about the tutorials,\nexspecially about \n\n               Tutorial ID:  A-SECURITY\n               Title: A Survey of X and Security\n\n               Tutorial ID:  F-ADMIN\n               Title: X and the Administrator\n\nDoes anybody know, where I can get information (paper/mail) about these ?\n\nHas anybody information about  Kerberos  (escpecially in connection with \nX Display Manager xdm)?\n\nThanks,\n\nAndrea Winkler     (Siemens Nixdorf Muenchen, Germany)\n\n\n------------------------------------------------------------------------------  \nS I E M E N S  Andrea Winkler        Internet: Andrea.Winkler@sto.mchp.sni.de\n-------------  SNI STO XS 322        Otto-Hahn-Ring 6    D-8000 Munich 83     \nN I X D O R F  Phone:(089)636-41449  FAX: (089)636-42833\n------------------------------------------------------------------------------  \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7506, "properties": {"category": "rec.motorcycles", "text": "From: grw@HQ.Ileaf.COM (Gary Wasserman)\nSubject: Stuff For Sale is GONE!!!\nNntp-Posting-Host: ars\nReply-To: grw@HQ.Ileaf.COM (Gary Wasserman)\nOrganization: Interleaf, Inc.\nDistribution: usa\nLines: 10\n\n\nThanks to all who responded.   The three items (electric vest,\nAerostitch Suit, and Scarf) are all spoken for.\n\n-Gary\n\n-- \nGary Wasserman      \"A completely irrational attraction to BMW bikes\"\nInterleaf, Inc.      Prospect Place, 9 Hillside Ave, Waltham, MA 02154\ngrw@ileaf.com        617-290-4990x3423 FAX 617-290-4970       DoD#0216\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7507, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: President's Remarks at Town Hall Meeting\nOrganization: MIT Artificial Intelligence Lab\nLines: 530\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\t     \t  \n\n\n                           THE WHITE HOUSE\n\n                    Office of the Press Secretary\n______________________________________________________________\nFor Immediate Release                             April 13, 1993     \n\n\t     \n                      REMARKS BY THE PRESIDENT,\n               SECRETARY OF EDUCATION RICHARD RILEY AND\n                   SECRETARY OF LABOR ROBERT REICH  IN \n                GOALS 2000 SATELLITE TOWN HALL MEETING\n\t     \n                     Chamber of Commerce Building\n                           Washington, D.C.   \n\n\n\n8:30 P.M. EDT\n\t     \n\t     \n\t     SECRETARY RILEY:  Good evening and welcome to all of you \nin the thousands of communities around the country that are taking \npart in this satellite town meeting for the month of April.\n\t     \n\t     You know, today is April 13th.  In 1743, Thomas \nJefferson was born, 250 years ago.  I think that's appropriate to \nmention at the beginning of this meeting because since that time he \nhas been, of course, a person who has been one that we've all \nfollowed in terms of our democracy and the importance of education \nhere in this great country.  The success of our democracy according \nto Jefferson really depends upon the success of our educational \nsystem.\n\t     \n\t     His philosophy of government, his belief in the \nimportance of education is also very meaningful to our special guest \nhere this evening.  Tonight we're so pleased to have with us \nPresident Clinton.  He's come over from the White House to join us in \nthe Chamber of Commerce studios.  \n\t     \n\t     Mr. President, it's good to have you.  We thank you for \ntaking the time to visit with these communities here on the satellite \nnetwork and we welcome you here this evening.\n\t     \n\t     Also we have with us Secretary of Labor Robert Reich.  \nAnd, Bob, it's certainly pleasant to have you with us this evening \nalso.\n\t     \n\t     I have some questions for our two guests, and I'm sure \nmany of you do, too.  So please call us if there's something that \nyou'd like to ask.  The number is 1/800/368-5781 or 5782.  In \nWashington, D.C. the number is 202/463-3170 or 3171.\n\t     \n\t     I believe the President has a few words that he might \nwant to share with us.  And, Mr. President, I'll ask you to do that \nat this time.  It's great to have you.\n\t     \n\t     THE PRESIDENT:  Thank you very much, Mr. Secretary.\n\t     \n\t     I'm glad to be here with my friends, Dick Riley and Bob \nReich -- also members of my Cabinet -- at the headquarters of the \nChamber of Commerce to support the effort that the Chamber is making, \nalong with its Center for Work Force Preparation, to help to examine \ntonight the whole critical question of how to move our young people \nfrom school to the work place.\n\t     \n\t     I want to compliment the Chamber on all their efforts, \nrecognizing that without an educated work force we can't grow this \neconomy or remain competitive, and recognizing that we all have to \nwork together -- business and government, labor and educators -- to \nmake things happen.\n\t     \n\t     This satellite town meeting is a good example of that \nkind of working together.  And if you'll forgive me a little home \nstate pride, I want to say a special word of thanks to the Wal-Mart \nCorporation, headquartered in Bentonville, Arkansas, for providing \nseveral hundred of the sites for this town meeting tonight.  I \nappreciate that a lot, as well as the sites that are provided for all \nthe rest of you.\n\t     \n\t     I have tried as hard as I could to move toward \nconstructive change for this country.  Secretary Riley talked about \nthis being Thomas Jefferson's 250th birthday.  If Thomas Jefferson \nbelieved in anything, he believed in these three things:  first, in \neducation; second, in real personal liberty, freedom of religion, \nfreedom of speech, freedom of association, freedom of the press; and \nthird, in the absolute imperative of changing as times change.  \n\t     \n\t     If you go to the Jefferson Memorial here in this \nbeautiful city, which is now bedecked with all of its wonderful \ncherry blossoms, you will see Jefferson saying that we have to change \nwith changing times.\n\t     \n\t     For us here in America, that means reducing our deficit \nand increasing our investment and putting our people first so that we \ncan compete in the world.  We're here to talk about that tonight --\nabout what we can do to educate and train our people better.  Unless \nwe do that, none of the efforts that all the rest of us make in \ngovernment, even to bring the budget into balance, even to increase \nour investment in other things which will grow jobs, will last in the \nlong run.\n\t     \n\t     We also have to have people who can carry their load.  \nAnd in a world where the average young person will change jobs seven \nor eight times in a lifetime, that begins with the education system \nand continues into the work force where education must go on for a \nlifetime.  It's not just important what you know, but what you can \nlearn.\n\t     \n\t     And if I might, I'd like to close just by emphasizing \nwe're doing our best to try to have the most innovative partnership \nbetween the Labor Department and the Education Department and the \nprivate sector to build a good school-to-work transition.  And we're \ntrying to get off to a good start this summer with a program that \nwould create more than 700,000 new summer jobs, including many \nthousands that have a strong education component so our young people \ncan be learning and working at the same time.\n\t     \n\t     Dick, I think I ought to stop there.  That's a good \nplace we can begin, I think, the discussion.\n\t     \n\t     SECRETARY RILEY:  Thank you so much, Mr. President.\n\t     \n\t     Each month we get together and talk about ways that all \ncitizens can work towards reaching the national education goals.  And \ntonight, we'll focus on goal five, and how communities such as yours \ncan prepare students for this world of work.\n\t     \n\t     This week, the Education Department and the Labor \nDepartment are hosting a conference here in Washington, D.C. called \nSummer Challenge, a program of work and learning, to America's youth.  \nThe aim is to use some special funds from President Clinton's \nproposed economic stimulus package to provide educationally-enriched \njobs and summer school programs for young people in disadvantaged \nareas of the country.  \n\t     \n\t     Mr. President, let's talk a minute -- you alluded to it \nsomewhat -- about the  Summer Youth Challenge.  Your program calls \nfor more educational enrichment in the summer jobs.  And why in your \nwords is that so important?\n\t     \n\t     THE PRESIDENT:  I think it's important for two reasons.  \nFirst of all, a lot of the young people we're trying to reach may \nhave had trouble adjusting to school and learning.  And while we want \nthem to have a good experience with a real job, we also want them to \ncontinue to learn during the summer because we know from a lot of \nresearch that a lot of kids that have trouble learning in school may \nforget as much as 30 percent of what they learned the previous year \nover the summertime.  And that is a very unproductive thing for \nschools to have to take up a lot of time teaching what they already \ntaught before.\n\t     \n\t     Secondly, we want to help these young people progress, \nnot only in terms of work, but in terms of learning.  We want to \nabolish the artificial dividing line between what is work and what is \nlearning because we think that the best and most productive workers \nwill have to be lifetime learners.  And we think that this experience \ncould maybe drive that point home and prepare these young people to \nsucceed in school, or at work, or in college as they go on.\n\t     \n\t     SECRETARY RILEY:  Well, I think the fact that these are \ndisadvantaged kids -- that gap, that lag you mentioned as they go \ninto the next year, is really even greater.  \n\t     \n\t     Secretary Reich, of course, you have training programs \nthroughout the year.  And I wonder is you have any comment about this \neducational component of training.\n\t     \n\t     SECRETARY REICH:  Well, what we've learned, Mr. \nSecretary, is that for many young people, whether it's for the summer \nor for the year, actually on-the-job work experience combined with \neducation is one of the best ways of learning.  Many young people, \nfor example, have a lot -- they have a difficult time learning \ngeometry.  But when they actually are there building something or \nworking on something, and they can see the exact and direct \napplication of geometry, they understand what it's used for.  And a \nlot of young people -- just that sense of connection between \neducation and the world of work is terribly, terribly important.  \nIt's important during the summer, but it's important for a lot of \nyoung people even beyond the summer.\n\t     \n\t     SECRETARY RILEY:  Thank you.  \n\t     \n\t     Mr. President, you've called for a youth apprenticeship \nprogram, school-to-work transition.  And I wonder if you would tell \nus a little bit about your concept of that and how you see it \ndeveloping.\n\t     \n\t     THE PRESIDENT:  Well, first of all, let's talk about why \nit's important.  Most new jobs that will be created in this decade \nwill not require a four-year college degree, but most of them will \nrequire some learning and skills that go well beyond what most people \nget in a high school diploma.  \n\t     \n\t     If you look at the last 10 years, the average salaries \nof young people that had at least two years of good post-high school \neducation was a good salary that went up over the decade.  The young \npeople who had less than that tended to have lower wages that did not \ngo up, and in many cases in real terms fell over the decade, because \nthey weren't productive, they weren't more valuable to their \nemployers.\n\t     \n\t     So we think America has a big economic interest in \ntrying to ensure that all the young people who get out of high school \nbut don't go on to college make a transition to work, which includes \ntwo years of further training either in a community college, a \nvocational setting, or perhaps on the job.  And what I have done in \nthis budget, as you know, is to give you and Secretary Reich some \nfunds and some incentives to try to work in partnership with states \nand with the private sector to build these programs state-by-state in \na way that would be customized essentially by the business community, \nbased on the needs of the economy in any given area.  It could \nrevolutionize long-term the quality of the American work force and \nthe earnings of American workers.\n\t     \n\t     SECRETARY REICH:  I should add, Mr. President -- I think \nyou know this from your experience in Arkansas -- and many of the \npeople watching this program -- that the business community and \neducators, labor groups are already in many of our communities, many \nof our states, building a school-to-work transition program.  In \nfact, there's an awful lot of ferment, a lot of excitement.  The \npeople watching this program probably are the ones who are most \ndirectly involved in that.  And more power to them.  Secretary Riley \nand I are going to do everything we can to build on the successes \nalready out there.\n\t     \n\t     SECRETARY RILEY:  Bob, we're going to be talking tonight \nabout youth apprenticeship and tech prep, the co-op learning  \ncareer academies.  And what features all those programs that deal \nwith this subject -- what are some of the features that every one of \nthese school-to-work programs might have that   are important?\n\t     \n\t     SECRETARY REICH:  Well, one thing that we've seen -- and \nyou and I have been working at this for a long time, and you much \nlonger than I -- we've seen that active involvement of the business \ncommunity is absolutely essential.  And I'm so delighted that we're \ndoing this in the headquarters of the Chamber of Commerce.  The \nChamber of Commerce of the United States is committed to doing these \nkinds of programs -- training, education, retraining -- and we've \naimed to work very closely with the Chamber.\n\t     \n\t     The business community is going to be actively engaged \nin developing almost an audit of the kind of jobs that are needed and \nhelping the educators, community colleges, technical institutions \ndevelop curricula that are relevant for the jobs of the future.\n\t     \n\t     Communities have got to come together.  I mean, this is \none of the most important things.  You've got to have all of these \nplayers in a community come together and work together and cooperate \ntogether.  You know, too often we have the educators over here and \nthe business leaders over here, labor groups over here and everybody \nis talking, but they're not really working together in a common \nstrategy.\n\t     \n\t     And the third and final ingredient I would say, Dick, \nwould be a commitment to excellence -- a commitment both to academic \nexcellence and also to skills development excellence.  This is not a \ntracking program we're talking about for kids who are not going to \nmake it.  This is a program that every young person ought to be \neligible for.  If they want to go on beyond that to four-year \ncollege, that's fine.  That ought to be permissible.  But we're \ntalking about the foundation of learning about jobs, the foundation \nskills for on-the-job learning.\n\t     \n\t     And again, those are the critical components.  It's \nalready being done.\n\t     \n\t     THE PRESIDENT:  I think -- if I might just interject one \npoint based on my personal experience at home -- the business \ncommunity has a critical role to play, not simply in saying here are \nthe job skills that are needed and here's what ought to be taught, \nbut also in monitoring that excellence.  If you have the right sort \nof partnership there, the people who are paying the taxes and who are \ngoing to then be hiring the workers are not going to permit the \nsecond-rate programs to survive if they have any way to shape and \ninfluence them.  So I think that's very important.\n\t     \n\t     And when we try to, if you will, fill in the blanks at \nthe federal level, trying to set some standards and provide some \nfunds, one of the things that we want to be sure and do is to make \nsure that the employer has a heavy amount of influence over the \nquality of these programs, because that's really what's going to \ndetermine whether the whole thing is worthwhile.\n\t     \n\t     SECRETARY RILEY:  That's great.  We've been talking, of \ncourse, about school-to-work and also the jobs and economic recovery \nprogram for this summer and fall.  But let's talk just a moment about \nlong-term school reform.  It's something especially close to me.  Mr. \nPresident, I wonder if you would give us some of your ideas for the \ncommunities out here on Goals 2000 legislation that I think will be \ncoming forth before too long.\n\t     \n\t     THE PRESIDENT:  Well, as you know, back when you and I \nwere both governors, we spent a lot of time working on our public \nschools and we tried to be very candid with our people in saying that \na lot of these things were going to take some time to materialize.  \n\t     \n\t     I had a hand in writing the National Education Goals \nthat the governors drafted, along with representatives of President \nBush's administration back in 1989.  And what we're going to try to \ndo this year with your leadership is to introduce legislation in \nCongress that will actually define the things that the national \ngovernment ought to do to try to help the local schools and the \nchildren of this country and the adult learners, too, meet those \ngoals -- making sure that when -- by 2000, people show up for school \nready to learn; that we get a 90 percent on-time high school \ngraduation rate; that children at the 4th, 8th, and 12th grades are \nconfident in the subjects they're supposed to know; that they are \nsecond to none in math and science; that are schools are safe, \ndisciplined, and drug-free.  And, of course, the fifth goal --I took \nthem out of line to say this the last -- is that we have a system of \nlife-long learning in this country.\n\t     \n\t     And each one of those goals there's a national role, a \nstate role, a school role, school district role, and a private sector \nrole.  And what you've attempted to do in this bill you're going to \nintroduce with me in the next few weeks is to define what our job is; \nand then to give the rest of America a way of defining what their job \nis and seeing whether we're actually meeting the standards of quality \nthat we need to meet.\n\t     \n\t     It's very exciting.  So far as I know, nothing quite \nlike it has ever been done in the form of federal legislation before.  \nNot mandating and telling people what they have to do with their \nmoney, but actually setting up a framework for excellence and \npartnerships so that we can do our job.  I'm really excited about it.\n\t     \n\t     SECRETARY RILEY:  Well, I am, too.  And I think really \nit will be an entirely new role for the federal government in terms \nof its relationship with states, serving as a partner really to \nsupport and facilitate and to help out in these education reform \nefforts, all driven by high standards.  That's the point.\n\t     \n\t     Bob, let me ask you one question, and then we'll get to \nthe telephone calls.  It's about the same subject.  We have, of \ncourse, skills standards that are going to be part of Goals 2000, and \nI wonder if you would comment on that.\n\t     \n\t     SECRETARY REICH:  Well, you know, we have 75 percent of \nour young people who don't graduate from college.  Very often they \ndon't have very many alternatives.  They do have a wonderful system \nof community colleges and technical institutions, but if we had \nnational skill standards to which they could aspire and which \nemployers would understand as a national credential, many of these \nyoung people would actually find that they were much more eligible \nfor jobs.\n\t     \n\t     Everybody doesn't have to go to college.  Other \ncountries you have smaller proportions of their population going to \ncollege, but you have a whole level of people who have certain \ntechnical, preprofessional skills.  We can do it in this country.  If \nyou don't go to four-year college you're not a loser.  And we want to \ndevelop those national skill standards.  We're going to be working \nwith the states, with the Education Department, with a lot of private \nindustry in developing those standards.  And I think they will be the \nkinds of things that enable our vocational and technical and other \ninstitutions to rally around, as well as our business community.\n\t     \n\t     SECRETARY RILEY:  Well, that's great.  Why don't we go \nahead and go to the telephone.  We have a call, I see -- Mayor Bruce \nTodd of Austin, Texas.\n\t     \n\t     Q\t  Yes, Mr. President and Mr. Secretary Reich and \nRiley, we certainly appreciate the opportunity to join you today.  We \nhave some dedicated professionals and volunteers here in Austin who \nhave heard what you have said and are very appreciative.  Let me \nsimply say, amen to some of the comments made already.  We agree with \nmuch of the tone that the Clinton administration has taken, and are \nvery supportive.  \n\t     \n\t     We have been successful here in Austin of tripling our \nsummer employment program over the last four years.  We expect to \nhave over 2,000 employed this year in the summertime; perhaps as much \nas 3,500 with the federal assistance.  \n\t     \n\t     Much of the question that we had designed you have \nanswered in your opening comments, so we must be thinking alike.  But \nthe question essentially involved what initiatives after Labor Day \nwould be appropriate.  We know summertime is important.  Year-round \nis even more important.  And what kind of initiatives at the federal \nlevel might be proposed to meet the needs of the youth on a year-\nround basis?  And perhaps more importantly, how can families and the \nlocal community be more involved using the federal initiative? That's \nsomething that we believe is very important to success in this \neffort.\n\t     \n\t     SECRETARY RILEY:  Mr. President.\n\t     \n\t     THE PRESIDENT:  I think I'll give everybody a chance to \nanswer the question, Bruce, but let me first thank you for calling, \nand thank you for all the great work that you're doing in Austin.  \nI've seen some of it and I've always been very impressed.  \n\t     \n\t     First, with regard to the summer program, we hope we can \nstructure it in a way that will enable us to continue the summer \nprogram and that will move a lot of these young people back into \nschools under circumstances that might allow them to do some work in \nthe private sector, too.  We hope that -- Secretary Reich is going to \ntry to set up a system where we create a lot of private sector jobs \nto be matched with the public sector jobs this summer.  And we're \nworking on that.\n\t     \n\t     Secondly, in the program that I have presented to the \nCongress over the next five years, what we are attempting to do is to \nbuild in an amount of investment that's quite substantial for job \ntraining programs, for school-to-work programs, all of which give \nheavy, heavy weight to local community input -- just the question you \nasked -- but do provide some federal investment dollars, which we \nhope you can put with local dollars to keep people working and being \ntrained on a year-round basis.\n\t     \n\t     And I will say again, to echo what Secretary Reich said \na moment ago, to try to break down the barrier between what is seen \nas work and what is seen as learning.  An awful lot of young people \nactually have quite high IQs, but actually learn so much better when \nthey're doing than when they're reading or just listening.  So we \nhope that the community involvement part of it will be permanent, and \nwe hope that if the whole budget passes -- and we do have 200 budget \ncuts and more than 200, actually, in the budget -- and some revenue \nraisers, and some new money for education and training, that we'll be \nable to do just what you seem to want based on your question.\n\t     \n\t     Bob, do you want to say anything?\n\t     \n\t     SECRETARY REICH:  Well, you took most of the words out \nof my mouth, Mr. President, as usual.  But let me just add one thing, \nand that is that one of the most important aspects of post-high \nschool for a lot of young people who are not going on to college, in \naddition to the school-to-work program, simply is the availability of \njobs.  And we've got to get this economy moving again, obviously.  \nIt's terribly important to get this recovery program, to get the \neconomy back on track.  That's sort of the prerequisite to everything \nelse.  If we don't get the economy back on track -- we have -- I \nthink this is the 16th -- correct me if I'm wrong, Mr. President -- I \nthink is the 16th month we have had seven percent unemployment or \ngreater.  This is a jobless recovery.  A lot of those kids are going \nto be getting out of school in June.  And even if we did everything \nright, they would have a very, very hard time getting jobs.\n\t     \n\t     SECRETARY RILEY:  Thank you both.  Of course, Goals 2000 \nwill be a permanent, long-term thing that will certainly reach into \nnext year.  It will involve, if passed -- and we certainly hope it \nwill be -- action plans with every state where we can be working \ntogether to reach for the goals in a number of different ways.  And \nthen the state, with all the various school districts, a very \nimportant part of that will be citizen and parent involvement.  And I \nthink everybody will see a great energy out there, once we get that \nmoving.\n\t     \n\t     The next call is Dr. Harry Heinemann, New York.  \n\t     \n\t     Doctor?\n\t     \n\t     Q\t  Good evening, Mr. Secretary.  It is a pleasure to \nbe on with you this evening.  As you may know, bridging the school \nand work has been central to La Guardia's educational program since \nits inception in the 1970s, and that includes the college, the two \nalternative high schools that operate on our campus, and the linkages \nwe have forged with the local schools.  We have found this to be an \nextremely effective learning strategy.\n\t     \n\t     And over the years, we've come to believe that there are \nseveral principles that are very important in bridging the school and \nwork.  And these include integrating theory in the classroom with \npractice in the workplace, with providing all students early exposure \nto careers, as well as providing opportunities for them to reflect \nupon these experiences while they strengthen their skills; and \nlastly, the critical role of the liberal arts, particularly in the \ndevelopment of high performance competencies.  \n\t     \n\t     My question, then is:  How can the general education \nfaculty and the academic curriculum be more closely integrated with \ntransition to work experience?  And what mechanisms and strategies \ncan you suggest to achieve this integration?\n\t     \n\t     SECRETARY RILEY:  Well, thank you very much.  I think -- \nand we'll get a response from you all on that, and very interesting \nwork going on there.  We're going to have three people, our next \nguests on the program this evening, that will be some specialists   \nin that area that you're speaking, and I'll certainly pass that on to \nthem and we can discuss it later.\n\t     \n\t     You all care to comment -- any comments you might have?\n\t     \n\t     THE PRESIDENT:  I'd just like to say, if I might, one \nthing.  I want to reemphasize this and I don't think I'm being as \nclear about it as I'd like, although I think at least one of the \npeople who will be on the second panel will be able to say it more \nexplicitly than I.  I think this whole concept of applied academics \nis very important.  And I think that we have to basically abolish \nwhat I consider to be a very artificial distinction between what is \nvocational learning and what is academic learning.\n\t     \n\t     I think we should keep the liberal arts going.  I think \nwe should have a strong component for people who are in the \nvocational program.\n\t     \n\t     SECRETARY REICH:  It seems to me that we also need to \nrethink our entire tracking system, because a lot of these school and \nwork combinations are important for mainstream students.  They're \nimportant for all students.  It's not just a special group of \nstudents that needs them.\n\t     \n\t     Some of the experiments that I've seen around the United \nStates -- Dick, I'm sure you've seen them as well -- are mainstream \nexperiments.  They're mainstreaming all the students.  At 11th and \n12th grades they're giving them a combined work and school experience \nand then a transition program.  And again, the kids can either go on \nto college if they want; they can go on to technical community; they \ncan go on to an entirely -- a large variety of possibilities and \ncareer directions.\n\t     \n\t     But we have to get away from the stigmatizing that often \ngoes on with young people who simply are doing job-related or work-\nrelated work within the classroom, within our schools.\n\t     \n\t     SECRETARY RILEY:  Thank you, very much.  I think that's \ngoing to be the last call that we have time for.  Mr. President, I \nthink you've got to move on to another matter, and I want to thank \nyou and Secretary Reich for being here.  We appreciate your time and \nyour ideas, and it's been a tremendous help to us.  \n\n                                 END9:00 P.M. EDT\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7508, "properties": {"category": "talk.politics.misc", "text": "From: blh@uiboise.idbsu.edu (Broward L. Horne)\nSubject: National Sales Tax, The Movie\nX-Received: by usenet.pa.dec.com; id AA08871; Thu, 15 Apr 93 07:42:23 -0700\nX-Received: by inet-gw-2.pa.dec.com; id AA05233; Thu, 15 Apr 93 07:42:12 -0700\nX-Received: by uiboise.idbsu.edu\n\t(16.6/16.2) id AA27601; Wed, 14 Apr 93 10:02:10 -0600\nX-To: talk.politics.misc.usenet\nX-Cc: alt.politics.clinton.usenet\nX-Mailer: Elm [revision: 66.25]\nLines: 54\n\n\n\n      Well, it seems the \"National Sales Tax\" has gotten its very\n      own CNN news LOGO!\n\n      Cool.  That means we'll be seeing it often.\n\n      Man, I sure am GLAD that I quit working ( or taking this \n      seriously ) in 1990.  If I kept busting my ass, watching \n      time go by, being frustrated, I'd be pretty DAMN MAD by \n      now.\n      \n      YEAH!  Free HEALTH CARE!   Oh, yeeaaaahhhh!\n\n      heh heh\n\n      \" Bill makes me feel like DANCING! \"\n\n      MORE AMAZING PREDICTIONS FROM THE INCREDIBLE BROMEISTER!\n      --------------------------------------------------------\n\n      We take you back to Feburary 20th, when the INCREDIBLE \n      BROMEISTER PREDICTED:\n\n\t  \" $1,000 per middle class taxpayer in NEW TAXES \"\n\n          \" A NATIONAL SALES TAX \"\n\n      Now, for more AAMMMAAAAZZZZZZIINNNNGGGGG Predictions!\n\n      i)   The NST will be raised from 3% to 5% by 1996.\n\t   Ooops.  They ALREADY DID it.\n          \n\t   Okay, then.  The NST will be raised from 5% to 7% by 1996.\n\n      ii)  Unemployment will rise!\n\n      iii)  Tax revenues will decline.  Deficit will increase!\n\t    We'll get another DEFICIT REDUCTION PACKAGE by 1997!\n\t    Everyone will DANCE AND SING!\n\n      Yup.  I'm gonna <glancing at watch> bail out of here\n      at 1 PM, amble on down to the lake.  Hang out.  Sit\n      in the sun and take it EASY!   :)   Yeah!  \n\n      I just wish I had the e-mail address of total gumby who\n      was saying that \" Clinton didn't propose a NST \".\n\n      To paraphrase Hilary Clinton - \" I will not raise taxes on\n      the middle class to pay for my programs \"\n\n      To paraphrase Bill Clinton - \" I will not raise taxes on\n      the middle class to pay for my programs \"\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7509, "properties": {"category": "alt.atheism", "text": "Organization: Penn State University\nFrom: <MVS104@psuvm.psu.edu>\nSubject: Re: <Political Atheists?\nDistribution: world\n <1pan4f$b6j@fido.asd.sgi.com> <1q0fngINNahu@gap.caltech.edu>\n <C5C9FA.6zH@acsu.buffalo.edu> <1qabe7INNaff@gap.caltech.edu>\n <1993Apr15.150938.975@news.wesleyan.edu>\nLines: 11\n\nIn article <1993Apr15.150938.975@news.wesleyan.edu>, SSAUYET@eagle.wesleyan.edu\n(SCOTT D. SAUYET) says:\n\n>Are these his final words?  (And how many here would find that\n>appropriate?)  Or is it just that finals got in the way?\n\n>Keep your fingers crossed!\n\nWhy should I keep my fingers crossed? I doubt it would do anything. :)\n\nMartin Schulte\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7510, "properties": {"category": "comp.sys.mac.hardware", "text": "From: farrar@cogsci.ucsd.edu (Scott Farrar)\nSubject: Re: Caps Lock vs. control ( was:Re: Apple keyboard )\nOrganization: University of California, San Diego\nLines: 9\nDistribution: world\nNNTP-Posting-Host: cogsci.ucsd.edu\n\nPlease excuse and redirect me if this has already been answered, but is\nthere a small utility that switches the functionality of the caps-lock\nkey and the ctrl key on the powerbook keyboard?  I use the ctrl key far\nmore than caps-lock, so it would be more convenient and comfortable.\nThank you for any help,\nScott Farrar\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7511, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kolodzie@uni-duesseldorf.de (Stefan Kolodzie)\nSubject: WINWORD and QUATTRO-PRO-Problems on a notebook\nOrganization: Psychologisches Institut I, Heinrich-Heine-Universitaet Duesseldorf\nLines: 19\nNNTP-Posting-Host: 134.99.100.6\n\nHello,\n\nI have a 386sx25 notebook with windows 3.1 running fine. WINWORD 2.0 and \nQUATTRO-PRO for windows also work fine when no virtual memory is used. \nSwitching on the virtual memory option these programs (probably others too) \ndon't work, the system crashes. The same programs work well with arbitrary \nvirtual memory on two other desktop PC's. What am I doing wrong?\n\nIf you can help, please mail to me directly, if possible.\n\nThank you very much in advance.\n\nStefan\n\n/---------------------------------------------------------------------------\\\n| Stefan K. Kolodzie                              Heinrich-Heine-University |\n| Institute for General Psychology                     Duesseldorf, Germany |\n|                  e-mail: kolodzie@ze8.rz.uni-duesseldorf.de               |\n\\---------------------------------------------------------------------------/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7512, "properties": {"category": "rec.sport.baseball", "text": "From: traven@pitt.edu (Neal Traven)\nSubject: Re: Jewish Baseball Players?\nLines: 21\nX-Newsreader: TIN [version 1.1 PL8]\n\nma_ind25@blurt.oswego.edu wrote:\n: I believe that Rusty Staub was also a jewish ball-player\n: Also, Mordaci Brown back in the early 20th century.  He was a pitcher whose\n: nickname was \"3 fingers\" Brown....for obvious reasons....he had 3 fingers.\n\n0 for 2, ma_ind25.\n\nDaniel Patrick Staub is a Catholic school kid from Nawlins, Mordecai\nBrown a farm kid (probably Protestant) from somewhere in the Midwest.\nHe lost those fingers in a farm machinery accident.\n\nJim Palmer isn't Jewish himself, but Mr. Jockey Shorts's adoptive \nparents are.\n\nAlso, I'm not absolutely certain that Carew actually converted.  His\nwife and children certainly are Jewish.\n\n--\n-----------------------------------------------------------------------------\nneal\ttraven+@pitt.edu\t      You're only young once, but you can be\n\ttraven@vms.cis.pitt.edu\t       immature forever.   -- Larry Andersen\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7513, "properties": {"category": "rec.sport.hockey", "text": "From: j3david@sms.business.uwo.ca (James David)\nSubject: Plus minus stat\nOrganization: University of Western Ontario\nNntp-Posting-Host: sms.business.uwo.ca\nLines: 165\n\n>Post: 51240 of 51243\n>Newsgroups: rec.sport.hockey\n>From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\n>Subject: Re: Plus minus stat\n>Organization: Dept. of Computer Science, Laurentian University,\n>Sudbury, ON Date: Fri, 16 Apr 1993 01:59:36 GMT\n \n<discussion deleted>\n \n>>>Good for you.  You'd only be displaying your ignorance of\n>>>course, but to each his own...\n>> \n>>Roger, I'm not sure here, but I think \"ignorance\" is really a\n>>function of \"a lack of knowledge\" and not \"formulating an\n>>opinion\"...but hey, if you need to take a cheap shot, then by\n>>all means go ahead...that's if it makes you feel better.\n \n>To knowledgeable observers of the game my meaning is obvious. \n>Your hockey education is not my responsibility.\n \nMY HOCKEY EDUCATION?  What the f--- are you talking about?  I'm\nnot even going to try to refute this absolutely insane statement. \n \n>>My word, such vehemence against poor ol' Bob Gainey.  Why does\n>>he bother you so much...he was an effective player for his\n>>style of play.\n \n>He was just another player.  To laud him as anything more I find\n>bothersome.  I hated the Habs.  I hated Lafleur until I realized\n>that he was likely the most aesthetically pleasing player to\n>ever  skate in my lifetime.  Why would anyone talk about Gainey?\n \n\"I hate the Habs\" ?...you sound like a 10-year old.  This\nstatement is just further exemplifies your total inability to\nargue objectively about hockey.  Don't give me this crap about\n\"cogent arguments\"...I've yet to read something of yours that is\ncogent.  You consistently argue with: (1) emotion; (2) huge,\nsweeping statements\n \nFrankly, you have a very unconvincing style.\n \nI'm not defending Bob Gainey...frankly, I don't care for him all\nthat much.  But your dismissal of him as something less than an\neffective hockey player is tiresome...it has no basis in\nanything.  How many Calders did he win? I think it was four (go\nahead and refresh my memory).  What about the Conn Smythe?  Was\nthat a fluke?  Yeah, not the makings of a hockey superstar, I\nknow, but try to have a reason, any reason, to shoot him down.\n \n>>>go  around.  Who would you rather have as your \"checking\"\n>>>centre?  Doug Gilmour or Doug Jarvis?  For that matter I would\n>>>take either Gretzky or Mario as my \"checking\" centres.  Do you\n>>>think Gretzky could cover Bob Gainey?\n \n>>I'm really sorry Roger, but you have lost me completely here. \n>>Why don't you ask me if I would rather have Jesus Christ,\n>>himself, in nets?\n \n>Did he play hockey at a high level?  Was he any good?  If not,\n>why would you bother to bring JC up?  I am talking about hockey\n>players here.  If you can't follow the conversation don't follow\n>up.  As I said previously, it is not my responsibility to\n>educate you.\n \nHey cowboy!  You're the \"expert\" who introduced the idiotic\ncomparison of Gainey with Gretzky and Lemieux...you figure it\nout.\n \n>>Now, if you were to compare, say for example, Bob Gainey with\n>>Guy Carbonneau, you would have a balanced comparison.\n \n>Sure.  Two journeymen.  Big deal.  Neither one of them is worth\n>discussing.\n \nHow many individual awards between them? Eight...I don't remember\n(once again, please feel free to refresh my memory...and try to\nbe as sarcastic as possible about my \"hockey education\").\n \n>I'm wrong AGAIN...hmmm, let's see...where was I wrong in the\n \n>>>I would take Fuhr and Sanderson off of the latter.\n \nOH MY GOD!!!  Did I say that?  Roger...what's your point?  Fuhr\nis a goaltender, goaltender's don't \"plug\"...in his prime, he was\none of the best.  Sanderson was a scrapper...if you stick him on\nyou may as well include half the Flyers team of the same era.\n \n>>first place?  I'm only guessing here, Rog, but I have a feeling\n>>that you've setup a \"You're wrong again\" macro key on your\n>>machine.\n \n>That is an excellent idea and if I decide to waste any more time\n>responding to any of your, or Greg's, postings then I will be\n>sure to implement that very macro.\n \nOh Roger, you shouldn't...really.  I don't deserve this...you are\nfar too accomodating already.\n \n>>I would suggest that your comment: \"And when the press runs out\n>>of things to say about  the stars on dynasties they start to\n>>hype the pluggers.  Grant Fuhr, Essa Tikkannen, Butch Goring,\n>>Bob Nystrom, Bob Gainey, Doug Jarvis, Derek Sanderson, Wayne\n>>Cashman, Bob Baun, Bob Pulford, Ralph Backstrom, Henri Richard,\n>>Dick Duff...and so on...\" demonstrates a blanket disregard for\n>>these individuals as contributors to the game...so yes, settle\n>>down...nobody has claimed that they are hockey gods.\n \n>Tarasov claimed that Gainey was a \"hockey god.\"  And Greg ate\n>it up. And that is what this thread is all about.  If you didn't\n>know  that then why are you responding?\n \nYou seem to have allowed all of these other players fall into\nyour sweeping, vacuous statement...that's why.  If you want to\ndebate Gainey, go ahead...but why bring up everybody else?  How\ndoes it support your argument?  Do you have an argument, or do\nyou just like to throw around a few names hoping to impress us?\n \n \n>And as for \"blanket disregard for these individuals\", I can\n>remember  Leaf teams, purely populated by such \"individuals\",\n>winning four Stanley Cups.  Teams.  No one ran around telling\n>us that George Armstrong was the best hockey player in the\n>world.\n \nGreat.  I couldn't agree more.  The Flyers won two cups for the\nsame reasons...deservedly so.  So what?  I don't get it.  Are you\nangry that the Leafs didn't get more recognition?  \n \nYou seem to think these pluggers are \"hyped\"...I don't\nagree...plain and simple.  If you're last statement is some sort\nof compromise, fair enough.\n \n>>>You might consider developing your own style.  After all,\n>>>imitation is  the sincerest form of flattery and I am quite\n>>>sure that flattery is not  your intention.\n>> \n>>C'mon...it has a nice ring to it...and admit it, you had a good\n>>laugh.\n \n>Right.  I had to get to the end of your posting before I\n>realized you were  a complete joke.\n \nNot a pleasant bone in your body, eh Rog?  Why are you so\nunhappy?  Not getting invited to enough parties?  What?\n \n>In the future, if you are going to respond to my postings I\n>would appreciate it if you could present a cogent argument\n>supported by facts gleaned from a version of reality that most\n>of the rest of us would recognize.\n \nRoger, why are you under the impression that responding to your\nposts is some great honour?  You really should stop...it sounds\na little bit pathetic.  Frankly, it's about as honourable as a\ngood fart.\n \ncongenially, as always, \n \njd\n \n-- \nJames David \nj3david@student.business.uwo.ca/s\n\nj3david@sms.business.uwo.ca (James David)\nWestern Business School  --  London, Ontario\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7514, "properties": {"category": "rec.sport.baseball", "text": "From: admiral@jhunix.hcf.jhu.edu (Steve C Liu)\nSubject: Best record ever in baseball\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 19\nDistribution: usa\nExpires: 5/9/93\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\nSummary: Can you believe it?\n\nOf all teams, I believe the Cubs have the best record ever in baseball.\nSometime way far back. 110+ and something.\n\nAdmiral Steve C. Liu\n____________________________________________________________________________\n|Admiral Steve C. Liu          Internet Address: admiral@jhunix.hcf.jhu.edu|\n|Commander-In-Chief of the Security Division of the Pi Club - Earth Chapter|\n|    President of the Earth Chapter of the Pi Club - Founded April 1990    |\n|1993 World Champions  - Baltimore Orioles - Why Not? - Series in the Yards|\n|         1992-1993 Stanley Cup Champions -  Washington Capitals           |\n| \"Committee for the Liberation and Intergration of Terrifying Organisms   |\n|   and their Rehabilitation Into Society, the only problem is that the    |\n|   abbreviation is CLITORIS.\" from the \"Polymorph\" episode of Red Dwarf   |\n|*****The Bangles are the greatest female rock band that ever existed!*****|\n|   This sig has been brought to you by... Frungy! The Sport of Kings!     |\n|\"My God man, drilling holes through his head is not the answer!\" Dr. McCoy|\n|\"You know, Susanna Hoffs has a really nice ass.\" - comment by M. Flanagan |\n|  The Pi Club - Creating the largest .signatures for the past nine months | \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7515, "properties": {"category": "sci.crypt", "text": "From: bear@kestrel.fsl.noaa.gov (Bear Giles)\nSubject: Re: Why the clipper algorithm is secret\nOrganization: Forecast Systems Labs, NOAA, Boulder, CO USA\nLines: 25\n\nIn article <C5pstr.Lu2@panix.com> dfl@panix.com (Danny O'Bedlam) writes:\n>\tThe algorithm is classified because a military contract (or similar\n>government equivalent to military) has been let for this \"proprietary\"\n>design that the Feds say that NSA developed.  Is there a patent?  Is that\n>patent publicly available?  My betting is that that too is classified.\n\nUnless there has been a _major_ change in the law, there's no such beast\nas a \"classified patent.\"  Patents exist to encourage communications and\ndevelop the state of the art. \n\n(The 17-year lock is a nuisance, but historically has been pretty trivial.\nIt's only in an industry which doubles performance every three years (or\n18 months, for some hardware) that 17 years is an eternity).\n\nThe same thing applies in civilian development: you can't patent something \n_and_ declare it a \"trade secret.\"  However, you can (and should) mark all\nsoftware (including proprietary code) \"unpublished copyright\" so that it\never does get exposed you still have some legal protection.\n\n(Post-Berne this isn't required, since everything is \"born copyrighted.\"\nBut it takes a while for people to learn the new rules).\n\n-- \nBear Giles\nbear@fsl.noaa.gov\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7516, "properties": {"category": "rec.autos", "text": "From: jnielsen@magnus.acs.ohio-state.edu (John F Nielsen)\nSubject: Re: top 10 reasons why i love CR (not for the humor impaired)\nArticle-I.D.: magnus.1993Apr6.194738.20021\nDistribution: na\nOrganization: The Ohio State University\nLines: 28\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\n\nIn article <1993Apr6.185328.24947@news.cs.brandeis.edu> andyh@chaos.cs.brandeis.edu (Andrew J. Huang) writes:\n>In article <1993Apr6.180456.17573@magnus.acs.ohio-state.edu> jnielsen@magnus.acs.ohio-state.edu (John F Nielsen) writes:\n>>In article <1993Apr06.133319.7008@metrics.com> tomh@metrics.com (Tom Haapanen) writes:\n>>>CHINTS@ISCS.NUS.SG writes:\n>>>> Here are \"another\" ten reasons why we should all love CR\n>>\n>>Or the spectacle of \"Macho Real Men\" who would never bother to read the\n>>magazine but are more than apt to criticize it.\n>>\n>\n>But that's the point.  We _do_ read it, or at least we did.  Then we\n>found that their recommendations were useless and uninformed.  Then we\n>write lists.  The CR flame war is so easy to start because they are so\n>wrong and claim to be so right and so thorough.\n>\n>-andy\n>\n>\n\nOk if you are so right, name a few good examples that were brought up.\n\n\njohn\n-- \nJohn Nielsen   MAGNUS Consultant            ______   ______   __  __\t\n\"To you Baldrick, the Renaissance was just /\\  __ \\ /\\  ___\\ /\\ \\/\\ \\\nsomething that happened to other people,   \\ \\ \\/\\ \\\\ \\___  \\\\ \\ \\_\\ \\\nwasn't it?\" - The Black Adder               \\ \\_____\\\\/\\_____\\\\ \\_____\\\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7517, "properties": {"category": "talk.religion.misc", "text": "From: bobsarv@microsoft.com (Bob Sarver)\nSubject: Re: Question for those with popular morality\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 96\n\n\n>/(hudson)\n>/And from a materialistic point of view, it could be said that the nervous\n>/system is just matter.  What is wrong with producing chemical reactions in\n>/matter?  \n>\n>Because this matter is different.  It is alive, and self-aware.  And it\n>feels pain.  \n\n/(hudson)\n/If all morality were relative- big hairy deal.\n\nAs I said, you appear to be the only person saying that all morality\nis relative.  Most people I know do hold some absolutes in their\nmoral system.\n\nI >>personally<< believe that the dignity of the individual and the right\nof free will are absolutes.  I recognize that there are some moral\nsystems around which don't accept this; I reject them as dangerous\nand anti-social (nazism, some forms of communism, fundamentalist\nxtianity--no, that's not a slam).  But for the most part, almost\nevery moral system agrees on these two points.\n\n\n\n\n(me)\n>and the sky, and everything in it; everything that was created came out\n>of God.  Everything, including this matter, is part of God.  Therefore, is \n>it wrong to put parts of God in a test tube and make It go through \n>reactions?  Isn't that a form of blasphemy?\n\n\n/(hudson)\n/Generally, Christians believe in a Creator-Creation distinction.  Other\n/religions believe in one big whole.   I don't accept yor premises.\n\nToo bad.  I know I'm right, so I get to enforce my view upon you whether\nyou like my premise or not.  And since you can't prove otherwise, there\nisn't even an intellectual basis for your resistance to accepting my\nviewpoint.\n\n\n\n\n\n>/(hudson)\n>/How long will it be before the \"as long as it doesn't hurt someone else\" \n>/becomes more and more relative until the only rule that is left is \n>/\"I will do what I want to do, no matter who it hurts.\"\n>\n>There's a big jump between those two positions, and you know it very \n>well.  Don't play stupid.  I realize that you're trying to dispute\n>what you call \"popular morality\" by using what you think is logic,\n>but you're stretching this a bit too thin.\n\n/(hudson)\n/I don't think so.  once morality becomes relative, it degenerates.  I am\n/saying that reasoning that it is generally evil to hurt other people is bad.\n/(though I don't think it is sufficient.)  \n\n\nWell, then answer me this:   you seem to be opposed to moral relativism\n(as you call it) because it has the capacity to degenerate.  Obviously,\nthen, you would advocate a nonrelative (absolute) moral system.\n\nWhose absolutist moral system do we choose?  \n\nHow do we come to this decision?\n\nWhat about people who disagree with the chosen moral system?\n\n\n\n\n\n/(hudson)\n/But if morality is considered to\n/be relative, and this rule isn't based on anything, but is just an arbitrary\n/rule, people might abandon it.\n\nFine.  I can agree with most of what you typed here.  However, just because\nmorality gets based on something nonrelative does NOT mean that we have to\npick your xtianity as its base.\n\nWe can start a morality based on dignity of humans, freedom of choice,\ntolerance, etc. and NEVER EVER rely on xtianity for anything.  Just because\nsomeone has a consistent moral system based on true principles does not\nmean that they have to involve xtianity in it.  Xtianity certainly does not\nhave a monopoly on principles of behavior; indeed, fewer religions are\nguiltier of violating their own principles\n\n\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7518, "properties": {"category": "sci.space", "text": "From: hathaway@stsci.edu\nSubject: Re: Vandalizing the sky.\nDistribution: na\nOrganization: Space Telescope Science Institute\nLines: 101\n\n>Newsgroups: sci.astro,sci.space\n>Subject: Re: Vandalizing the sky.\n>\n (excerpts from posting on this topic) \n\n>In article <C5t05K.DB6@research.canon.oz.au> enzo@research.canon.oz.au \n>(Enzo Liguori) writes:\n>\n>>Now, Space Marketing\n>>is working with University of Colorado and Livermore engineers on\n>>a plan to place a mile-long inflatable billboard in low-earth\n>>orbit.  \n>... \n>>... the real purpose of the project is to help the environment! \n>>The platform will carry ozone monitors \n>\n>... \n>I can't believe that a mile-long billboard would have any significant\n>effect on the overall sky brightness.  Venus is visible during the day,\n>but nobody complains about that.  Besides, it's in LEO, so it would only\n>be visible during twilight when the sky is already bright, and even if\n>it would have some miniscule impact, it would be only for a short time\n>as it goes zipping across the sky.\n>\n\n(I've seen satellites at midnight - they're not only in twilight.) :o) \n\n>...\n>\n>From the book \"Prodigal Genius: The Life of Nikola Tesla\" by John J. O'Neill:\n>\n>\"This remarkable conductivity of gases, including the air, at low\n>pressures, led Tesla to suggest, in a published statement in 1914, a\n>system of lighting on a terrestrial scale in which he proposed to treat\n>the whole Earth, with its surrounding atmosphere, as if it were a\n>single lamp....  \n>The whole Earth would be transformed into a giant lamp, with the night \n>sky completely illuminated.  ... making the night as bright as day.\"\n> \n\nNow my comments: \n\nI'd like to add that some of the \"protests\" do not come from a strictly \npractical consideration of what pollution levels are acceptable for \nresearch activities by professional astronomers.  Some of what I \nwould complain about is rooted in aesthetics.  Many readers may \nnever have known a time where the heavens were pristine - sacred - \nunsullied by the actions of humans.  The space between the stars \nas profoundly black as an abyss can be.  With full horizons and \na pure sky one could look out upon half of all creation at a time \n- none of which had any connection with the petty matters of man. \nAny lights were supplied solely by nature; uncorruptable by men.  \nWhole religions were based on mortal man somehow getting up there \nand becoming immortal as the stars, whether by apotheosis or a belief \nin an afterlife.  \n\nThe Space Age changed all that.  The effect of the first Sputniks \nand Echo, etc. on this view could only happen once.  To see a light \ncrossing the night sky and know it was put there by us puny people \nis still impressive and the sense of size one gets by assimilating \nthe scales involved is also awesome - even if the few hundreds or \nthousands of miles involved is still dwarfed by the rest of the universe.  \nBut there is still a hunger for the pure beauty of a virgin sky. \n\nYes, I know aircraft are almost always in sight.  I have to live \nin a very populated area (6 miles from an international airport \ncurrently) where light pollution on the ground is ghastly.  The \nimpact of humans is so extreme here - virtually no place exists \nthat has not been shaped, sculpted, modified, trashed or whipped \ninto shape by the hands of man.  In some places the only life \nforms larger than bacteria are humans, cockroaches, and squirrels \n(or rats).  I visited some friends up in the Appalacian mountains \none weekend, \"getting away from it all\" (paved roads, indoor plumbing, \nmalls, ...) and it felt good for a while - then I quickly noticed \nthe hollow was directly under the main flight path into Dulles - 60-80 \nmiles to the east.  (Their 'security light' didn't help matters \nmuch either.)  But I've heard the artic wilderness gets lots of \nhigh air traffic.  So I know the skies are rarely perfect. \n\nBut there is still this desire to see a place that man hasn't \nfouled in some way.  (I mean they've been TRYING this forever - \nlike, concerning Tesla's idea to banish night, - wow!)  I don't watch \ncommercial television, but I can imagine just how disgusting beer, \ntruck, or hemmorrhoid ointment advertisements would be if seen up so high.  \nIf ya' gotta make a buck on it (displaying products in heaven), at \nleast consider the reactions from those for whom the sky is a last\nbeautiful refuge from the baseness of modern life.  \n\nTo be open about this though, I have here my listing of the passage \nof HST in the evening sky for this weekend - tonight Friday at \n8:25 p.m. EDT it will reach an altitude of 20.1 degrees on the \nlocal meridian from Baltimore vicinity.  I'll be trying to see it \nif I can - it _is_ my mealticket after all.  So I suppose I could \nbe called an elitist for supporting this intrusion on the night sky \nwhile complaining about billboards proposed by others.  Be that \nas it may, I think my point about a desire for beauty is valid, \neven if it can't ever be perfectly achieved. \n\nRegards, \nWm. Hathaway \nBaltimore MD \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7519, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: davidr@davidr.mentorg.com (David Ransier)\nSubject: DOS6-W4WG Problem???\nNntp-Posting-Host: davidr.mentorg.com\nOrganization: mentor\nKeywords: \nLines: 20\n\n\nI am running Windows 3.1, Windows for Work Groups and just loaded Dos 6.\n\nWhat`s happening appears as a graphics problem with File Manager.  I've\nadded some menubar buttons but there appears to be a gray boxed region\nthat covers the top 2/3'rds of the button row.  \n\nThese buttons are in a row below the pulldown menus.  the pulldown menus\nlook fine, and the disk label region looks fine, but you only see the bottom\nfew pixels of the task buttons.\n\nAnyone else experience this?\n\nThanks. \n\n+++++++++++++\nDavid Ransier  davidr@pdx.mentorg.com          These comments are my own. I paid for\n               Office: (503) 685-1528          them. I own them. They're not my \n               Fax:    (503) 685-7704          employers, and you can't have them.\n+++++++++++++\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7520, "properties": {"category": "talk.politics.guns", "text": "From: feustel@netcom.com (David Feustel)\nSubject: The Real Reason Politicians Want Guns Confiscated\nOrganization: DAFCO: OS/2 Software Support & Consulting\nLines: 12\n\nPoliticians want to eliminate private ownership of guns before the\ngeneral public starts violently resisting the tax increases needed\nto fund the federal government as an ever higher percentage of tax\nrevenue goes to pay interest on the national debt (currently 57 cents\nout of every tax dollar collected and rising).\n\n-- \nDave Feustel N9MYI <feustel@netcom.com>\n\nI'm beginning to look forward to reaching the %100 allocation of taxes\nto pay for the interest on the national debt. At that point the\nfederal government will be will go out of business for lack of funds.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.355+0000", "event": "documents", "entityId": 7521, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jmacphai@cue.bc.ca (James MacPhail)\nSubject: Re: Q700 at 34.5MHz, it's fine...\nNntp-Posting-Host: cue.bc.ca\nOrganization: Computer Using Educators of B.C., Canada\nLines: 15\n\nIn article <1993Apr13.090638.14653@Informatik.TU-Muenchen.DE> menes@Informatik.TU-Muenchen.DE (Rainer Menes) writes:\n>\n>I wonder why nobody has ever tried to replace the oscilator only, like on a\n Mac IIsi.\n\nI have had my Q700 running with a 66.666 MHz osc for a few months. I have a\nnumber of SCSI devices connected (Quantum LP52, Maxtor 213, Toshiba MK156F via\nEmulex adapter, Pioneer DRM-600) and have had no trouble.\n\nI am using the stock cooling facilities, I considered adding a fan/heat pump,\nbut don't feel they are necessary (for my box anyway). I have a temp meter on\norder and plan to do some measurements when it arrives in a few weeks. Email me\nif you want to see the results.\n\nJames MacPhail  jmacphai@cue.bc.ca  (on bounce, try james@mirg2.phy.queensu.ca)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7522, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bkph@kauai.ai.mit.edu (Berthold K.P. Horn)\nSubject: Re: ATM or Truetype-which to choose?\nOrganization: MIT Artificial Intelligence Lab\nLines: 50\nDistribution: usa\nNNTP-Posting-Host: kauai.ai.mit.edu\nIn-reply-to: davidgl@microsoft.com's message of 06 Apr 93 02:37:30 GMT\n\n\n`In article <1993Apr06.023730.5094@microsoft.com> davidgl@microsoft.com (David Glenn) writes:\n\n\t...\n\n\tAgain, not true. The characters in a TT or Type 1 font depend on the \n\tmaker. If someone converts a Type 1 font to TT they'll only get the\n\tcharacters in the font of orgin. TT allows for much more flexibility\n\tin this area as well. You can have thousands of glyphs in a TT font\n\tfile (Mac/PS/Windows/Unicode char set) and use the characters\n\tappropriate for the particular platform you are running the font on.\n\nWell, yes, both Type 1 and TrueType fonts can contain lots of characters.\nAnd in both cases plain text fonts will be reencoded to Windows ANSI\nin Windows, and to Mac standard roman encoding on the Mac. \nNo difference there between T1 and TT!   \n\nAnd as for fonts with thousands of glyphs, right know these are a liabiliaty\nrather than a great new thing.  Reason is that a font with 3000 characters\nis very large, and if you can only access 224 of them you are paying a heavy\nprice in downloading time and printer storage.  (And at the moment there\nis only one program of that uses `partial font downloading')\n\n\tFor instance, all or our fontpack 2 TT fonts have the Mac/Windows\n\tchar set in them. The metrics of the fonts are such that if the font\n\tis brought over to the mac the user will have access to the full mac\n\tchar set. \t\n\nYes and T1 text fonts all have the `ISO Adobe' character set, which is\na superset of Windows ANSI and Macintosh standard roman enocding.\n\nThe question is whether you can get at the glyphs.  In Windows, for example,\nyou cannot get at the ligatures `fi' anfd `fl' (both T1 and TT)even though a\nfont may very well have them.\n\nANd, while it is somewhat painful to reencode a Type 1 font and to create a\nnew Windows metric file (PFM) for it, there are utilities out there to allow\nyou do this.  How do I reencode a TrueType font?  How can I get at the\n`fi' and `fl' ligatures in Windows (or on the Mac)?  Are there utilities\nthat make it possible to circumvent the hard-wired Windows ANSI encoding?\n\n\n   > Regards,                                            1001-A East Harmony Road\n   > Bob Niland                                          Suite 503\n   > Internet:  rjn@csn.org                              Fort Collins CO 80525\n   > CompuServe: 71044,2124                              (303) 223-5209\n\n\nBerthold K.P. Horn\nCambridge, Massachusetts, USA\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7523, "properties": {"category": "rec.sport.baseball", "text": "From: steven@advtech.uswest.com ( Steve Novak)\nSubject: Re: Old Predictions to laugh at...\nArticle-I.D.: advtech.1993Apr15.203546.14540\nOrganization: U S WEST Advanced Technologies\nLines: 25\nNntp-Posting-Host: jaynes.advtech.uswest.com\n\n> = (Edward [Ted] Fischer) writes:\n>> = (Robert C Hite) writes:\n\n>>DEAD WRONG!  Last time I checked, Jim Fregosi was still managing the\n>>Phillies, and doing quite a fine job thank you...best record in\n>>baseball at 8-1\n\n>Look, asshole, I got him confused with somebody else.  I didn't flame\n>you, and I would appreciate it if you extended me the same courtesy.\n\nWhat _is_ your problem?  Hite's post wasn't a flame.  It was a\ncorrection of *your* error.\n\nYOUR reply was a flame.  \n\n>No, I don't know everything in the world.  Does that surprise you?\n\nNot in the least.  \n\n\n-- \n+-+-+-+-+-+-+-+\n| Steve Novak |    |\"Ban the Bomb!\"  \"Ban the POPE!!\"| \n+-+-+-+-+-+-+-+\nsteven@advtech.USWest.Com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7524, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Too Many Europeans in NHL\nArticle-I.D.: ramsey.1993Apr6.045046.5658\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 15\n\nIn <rauser.734062608@sfu.ca> rauser@fraser.sfu.ca (Richard \"The Racist\" Rauser) writes:\n\n[all kinds of unacceptably racist drivel deleted]\n\nAnd after that we find the man has absolutely nothing to say.\n\nRichard J. Rauser, you are a dishonourable little man.\n\ncaustically, when necessary,\n\nrm\n    \n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7525, "properties": {"category": "sci.space", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: space food sticks\nKeywords: food\nLines: 25\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nIn article <C50z77.EE6@news.cso.uiuc.edu>, jelson@rcnext.cso.uiuc.edu (John Elson) writes:\n>Has anyone ever heard of a food product called \"Space Food Sticks?\" This\n>was apparently created/marketed around the time of the lunar expeditions, along\n>with \"Tang\" and other dehydrated foods. I have spoken with several people\n>who have eaten these before, and they described them as a dehydrated candy. \n>Any information would be greatly appreciated. \n\nA freeze dried Tootsie Roll (tm).  The actual taste sensation was like nothing\nyou will ever willingly experience.  The amazing thing was that we ate a second\none, and a third and ....\n\nI doubt that they actually flew on missions, as I'm certain they did \"bad\nthings\" to the gastrointestinal tract.  Compared to Space Food Sticks, Tang was\na gastronomic contribution to mankind.\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |God gave us weather so we wouldn't complain\npyron@skndiv.dseg.ti.com          |about other things.\nPADI DM-54909                     |\n\nPS. I don't think Tang flew, either.  Although it was developed under contract.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7526, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: After 2000 years, can we say that Christian M\nFrom: NUNNALLY@acs.harding.edu (John Nunnally)\n <kmr4.1587.734911207@po.CWRU.edu> <1qkoel$5fr@horus.ap.mchp.sni.de> <1qksc2$2mr@fido.asd.sgi.com>\nDistribution: world\nOrganization: Harding University, Searcy, AR\nNntp-Posting-Host: acs.harding.edu\nX-News-Reader: VMS NEWS 1.24In-Reply-To: livesey@solntze.wpd.sgi.com's message of 15 Apr 93 23:50:26 GMTLines: 67\nLines: 67\n\nIn <1qksc2$2mr@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com writes:\n\n> In article <1qkoel$5fr@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n> |> \n> |> Good question, my point was that a world with truth is better than a world\n> |> with falsehood.  A world in which it were possible to say \"yes, I am\n> |> holding a Jew\" (the truth) and you, me, the Jew, and the SS guy all sit\n> |> down to crack open a bottle of whiskey is better than the grim alternatives \n> |> you present. Obviously, this is not possible, and the best alternative seems\n> |> to be to lie.  That's because other values are involved, such as life.\n> |> Now that IS just my opinion - don't confuse the claim 'objective morality\n> |> exists' with the claim 'I have a lock on morals'.\n> \n> I think that at this point it would actually be quite easy to\n> confuse objective morality with relative morality.\n> \n> jon.\nActually, jon, that is quite true.  Christian people have caused\n\"objective morality\" to look very \"relative.\"  After all, that was the\npoint of the original question in this thread, i.e. can we toss out\nChristianity because it is so obviously inconsistent with its own\nprinciples?  If you will bear with me, I will attempt to explain this\napparent inconsistency from at least one Christian's viewpoint:\n\nIf God exists and is the creator of mankind as the Bible claims, then\nHe has a pretty well-defined concept of what makes people tick\nphysically, emotionally, etc.  GOD has an \"objective\" morality for us.\nThat is to say, He has no trouble understanding what is good for (or\ndetrimental to) the creature He created. \n\n\tGalatians 2:10-- For we [mankind] are His workmanship, created in\n\tChrist Jesus for good works [a morality], which God prepared\n\tbeforehand [a well-defined design], that we might walk in them.\n\nHowever, contrary to what many people assume (including the Pharasees\nof the Bible,) God's morality cannot be completely codified in a list\nof rules and regulations.  To some extent, every activity of a\nperson's life creates a new situation to which morality must be\napplied.  There never could be enough volumes to codify God's\n\"objective\" morality for us. \n\nThroughout history, mankind has tried to reduce morality to a list of\nrules (objectivity, if you please.)  In the Old Testament, we have\nboth principles and specific rules.  By the time of Jesus, most of the\nprinciples were obscured by the emphasis men had placed on the rules.\nVolumes of additional rules had been made to try to codify the\napplication of the principles.  We [mankind] weren't comfortable with\nthe \"subjectivity\" of principles. \n\n\tFor reference see Matthew 5 where Jesus explains the difference\n\tbetween the Law and the principles of the Law.  For example, in\n\tverses 21-22:  \"You have heard that the ancients were told,\n\t'You shall not commit murder'...and 'Whoever commits murder shall\n\tbe liable to the court.'  But I say to you that everyone who is\n\tangry with his brother shall be liable to the court...\"\n\nThe \"objective morality\" of God gets blurred by our inept\ninterpretation of it.  We [Christians] have made our biggest errors\nwhen we have allowed any one person or group of people decide EXACTLY\nwhat God intended for us.  If we [Christians] would stay committed to\nseeking God's will instead of trying to prove we already had it all\nfigured out, we might do a better job of allowing others to find God's\n\"objective morality\" for themselves.  If Jesus is who he said he\nwas/is (and that's the fundamental question,) then HE IS \"objective\nmorality.\" \n\nJohn Nunnally\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7527, "properties": {"category": "sci.med", "text": "From: kxgst1@pitt.edu (Kenneth Gilbert)\nSubject: Re: Contraceptive pill\nArticle-I.D.: blue.7984\nLines: 20\nX-Newsreader: TIN [version 1.1 PL8]\n\njec@watson.ibm.com wrote:\n: A very simple question : it seems to me that the contraceptive\n: pill just prevents the ovule to nest in the vagina and forces it to\n: fall every month. But it does not prevent the fertilzation of the \n: ovule. Is it true ? If yes, is there a risk of extra-uterine\n: pregnancy, that is the development of the ovule inside the Fallopian\n: tube ?\n\nActually that is not how the pill works, but it *is* how the IUD works.\nThe oral contraceptive pill actually *prevents* ovulation from occuring\nby providing negatve feedback to the pituitary gland, and thus preventing\nthe LH surge that normally occurs at the time of ovulation.  With the IUD\nwhat happens is that fertilization may occur, but the device prevents\nimplantation within the wall of the uterus (*not* the vagina).\n\n--\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!  =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7528, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Corporate acceptance of the wiretap chip\nLines: 13\n\n:    Indeed, if NSA really designed the algorithm to be secure, it's very likely\n: as secure as IDEA or 2-key DES.  However, the system as a whole isn't resistant\n: to \"practical cryptanalysis.\"  In _The Puzzle Palace_, Bamford describes how\n: several NSA employees were turned by foreign (presumably KGB) agents, despite\n: security measures that I doubt any Big 8 accounting firm could match.  And\n: NSA confidential data was *not* subject to being requested by thousands of\n: police organizations and courts across the land.\n\nAh yes, don't anyone mention Ronald William Pelton[*], heh heh heh.  How\nembarrassing.\n\nG\n[*: NSA, 1964-1979; KGB 1980-1985]\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7529, "properties": {"category": "rec.sport.hockey", "text": "From: rjtapp@neumann.uwaterloo.ca (Riston Tapp)\nSubject: Re: Bruins vs Canadiens:\nOrganization: University of Waterloo\nLines: 24\n\nIn article <1993Apr16.213513.7683@rose.com> jack.petrilli@rose.com (jack petrilli) writes:\n>On April 14,  richard@amc.com (Richard Wernick) wrote:\n>\n>or Boston? You know Sinden's going to find some way of screwing up \n>even this good Boston team. He'll fire Suter or trade away a vital \n>star. (Admittedly, his last few trades have been good ones but how \n>long before his luck runs out and he starts making Esposito-for-\n>Ratelle type trades again?) \n>\n\nHow was this trade bad? I seem to recall Ratelle and Middleton making a pretty\ngood centre - right wing combination, and the Bruins also got Brad Park in the\ndeal (and they also lost Vadnais and somebody else). After the trade, the \nBruins were in two finals and one semi-final, all of which, of course, they \nlost to Montreal (which should please you to no end). I doubt, however, keeping\nEsposito would have made a difference in those series, as he did not for\nthe Rangers in '79 (or any of his years in Boston, for that matter).\n\nRiston\n-- \nRiston\n------\n            _  ___  _\n\t   //^/o o\\^\\\\\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7530, "properties": {"category": "comp.windows.x", "text": "From: smikes@topgun (Steven Mikes)\nSubject: Re: XVideo Information\nOrganization: UN*X Technologies\nLines: 13\n\nThe product you mention is XVideo from Parallax Graphics in Santa Clara, \nCalifornia, US. You can read our product review in the Jan/Feb '93 issue\nof The X Journal. That issues focuses on Multimedia and X, in which there\nare also a number of other useful items, including an article on Video in\nan X Window. Fax our New York office at 212.274.0646 for information on \nobtaining back issues.\n\nSteve\n-- \n      Steven Mikes - Editor - The X Journal\n        1097 Eastbrook Rd., Martinsville, NJ 08836\n         OFFICE: 908.563.9033 - FAX: 908.560.8635\n          \"Serving The X Window System Community\"\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7531, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sharp@mizar.usc.edu (Malcolm Sharp)\nSubject: Re: Trumpet for Windows & other news readers\nArticle-I.D.: mizar.1r74aa$d7l\nOrganization: University of Southern California, Los Angeles, CA\nLines: 5\nNNTP-Posting-Host: mizar.usc.edu\n\nWhere's an ftp site for Trumpet?  (other than wuarchive, umich,..\nsomething off the beaten path??)\n\nThanks.\nMalcolm\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7532, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nOrganization: Cookamunga Tourist Bureau\nLines: 16\n\nIn article <115288@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) wrote:\n> He'd have to be precise about is rejection of God and his leaving Islam.\n> One is perfectly free to be muslim and to doubt and question the\n> existence of God, so long as one does not _reject_ God. I am sure that\n> Rushdie has be now made his atheism clear in front of a sufficient \n> number of proper witnesses. The question in regard to the legal issue\n> is his status at the time the crime was committed. \n\nGregg, so would you consider that Rushdie would now be left alone,\nand he could have a normal life? In other words, does Islam support\nthe notion of forgiving?\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7533, "properties": {"category": "sci.space", "text": "From: pbd@runyon.cim.cdc.com (Paul Dokas)\nSubject: Big amateur rockets\nOrganization: ICEM Systems, Inc.\nLines: 23\n\nI was reading Popular Science this morning and was surprised by an ad in\nthe back.  I know that a lot of the ads in the back of PS are fringe\nscience or questionablely legal, but this one really grabbed my attention.\nIt was from a company name \"Personal Missle, Inc.\" or something like that.\n\nAnyhow, the ad stated that they'd sell rockets that were up to 20' in length\nand engines of sizes \"F\" to \"M\".  They also said that some rockets will\nreach 50,000 feet.\n\nNow, aside from the obvious dangers to any amateur rocketeer using one\nof these beasts, isn't this illegal?  I can't imagine the FAA allowing\npeople to shoot rockets up through the flight levels of passenger planes.\nNot to even mention the problem of locating a rocket when it comes down.\n\nAnd no, I'm not going to even think of buying one.  I'm not that crazy.\n\n\n-Paul \"mine'll do 50,000 feet and carries 50 pounds of dynamite\" Dokas\n-- \n#include <std.disclaimer>\n#define FULL_NAME                          \"Paul Dokas\"\n#define EMAIL                              \"pbd@runyon.cim.cdc.com\"\n/*            Just remember, you *WILL* die someday.             */\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7534, "properties": {"category": "sci.electronics", "text": "From: jmains@engr.latech.edu (John P. Mains)\nSubject: Electrical Properties of ELASTOMERS\nOrganization: Louisiana Tech University\nLines: 13\nDistribution: usa\nReply-To: jmains@engr.latech.edu\nNNTP-Posting-Host: altair.engr.latech.edu\n\n\nHello,\n\nI am looking for carbon-doped rubber.    Or an highly elastic material that changes its resistivity, or some\nother electrical property when streched.\n\nIf you could email me any info you may have on material names or companies that make the stuff\nit would be highly appreaciated.\n\nThanx\nJP\nBiomedical Engineering\nLouisiana Tech University \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7535, "properties": {"category": "sci.med", "text": "From: backon@vms.huji.ac.il\nSubject: Re: diet for Crohn's (IBD)\nDistribution: usa,world\nOrganization: The Hebrew University of Jerusalem\nLines: 52\n\nIn article <1993Apr22.202051.1@vms.ocom.okstate.edu>, banschbach@vms.ocom.okstate.edu writes:\n> In article <1r6g8fINNe88@ceti.cs.unc.edu>, jge@cs.unc.edu (John Eyles) writes:\n>>\n>> A friend has what is apparently a fairly minor case of Crohn's\n>> disease.\n>>\n>> But she can't seem to eat certain foods, such as fresh vegetables,\n>> without discomfort, and of course she wants to avoid a recurrence.\n>>\n>> Her question is: are there any nutritionists who specialize in the\n>> problems of people with Crohn's disease ?\n>>\n>> (I saw the suggestion of lipoxygnase inhibitors like tea and turmeric).\n>>\n>> Thanks in advance,\n>> John Eyles\n>\n> All your friend really has to do is find a Registered Dietician(RD).  While\n> most work in hospitals and clinics, many major cities will have RD's who\n> are in \"private practice\" so to speak.  Many physicans will refer their\n> patients with Crohn's disease to RD's for dietary help.  If you can get\n> your friend's physician to make a referral, medical insurance should pay for\n> the RD's services just like the services of a physical therapist.  The\n> better medical insurance plans will cover this but even if your friend's\n> plan doesn't, it would be well worth the cost to get on a good diet to\n> control the intestinal discomfort and help the intestinal lining heal.\n> Crohn's disease is an inflammatory disease of the intestinal lining and\n> lipoxygenase inhibitors may help by decreasing leukotriene formation but\n> I'm not aware of tea or turmeric containing lipoxygenase inhibitors.  For\n\n\nIf you do a MEDLINE search on \"turmeric\" you'll see that it is a potent\nlipoxygenase inhibitor which is being investigated in a number of areas.\nI'm in cardiology and about 4 years ago the cardiothoracic surgery lab at my\nhospital compared the effect of a teaspoon of dissolved turmeric vs. a $2000\nbolus of tPA in preventing myocardial reperfusion injury in a perfused\nLangendorff sheep heart. The turmeric was more effective :-)\n\n\nA colleague of mine in the School of Pharmacy (Dr. Ron Kohen) has a paper \"in\npress\" on the free radical scavenging activity and antioxidant activity of tea.\n\nJosh\nbackon@VMS.HUJI.AC.IL\n\n\n> bad inflammation, steroids are used but for a mild case, the side effects\n> are not worth the small benefit gained by steroid use.  Upjohn is developing\n> a new lipoxygenase inhibitor that should greatly help deal with\n> inflammatory diseases but it's not available yet.\n>\n> Marty B.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7536, "properties": {"category": "talk.politics.misc", "text": "From: jmc@SAIL.Stanford.EDU (John McCarthy)\nSubject: Re: New Environmental Group Launches.\nIn-Reply-To: eoneill@nyx.cs.du.edu's message of Sun, 4 Apr 93 23:02:33 GMT\nReply-To: jmc@cs.Stanford.EDU\nOrganization: Computer Science Department, Stanford University\nLines: 17\n\n\n*Teddy O'Neill-Creature with furry Hobbit feet from Bath UK*,\na sentimental fool, posts:\n \n     With the force of a world-wide youth movement, it ought to\n     be possible to establish a coordinated global program to\n     accomplish the strategic goal of completely eliminating the\n     internal combustion engine over, say, a twenty year period.\n\nEvidently there are no open questions, either scientific or about\nhow people prefer to live.\n\n--\nJohn McCarthy, Computer Science Department, Stanford, CA 94305\n*\nHe who refuses to do arithmetic is doomed to talk nonsense.\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7537, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: andrei@labomath.univ-orleans.fr (Andrei Yakovlev)\nSubject: How to program a PC Keyboard itself?\nOrganization: University of Orleans, France.\nLines: 17\n\n  Hi All,\n\n  I have heard that somewhere there exist programmable keyboards, eg. one\ncan program displays on the keys to show some specific characters, et.c.\n  Does it mean that there is some way of transmitting some \"non-trivial\" data\nto the KB (as opposed to standard NumLock/... On-Off, typeamatic specs.) from\ninside the PC software? I have not found any corresponding reference in the\nspecs for the 8042 PC-KB interface. Anyone have any ideas? (Except that they\nmay encode data by the sequences of the standard commands mentioned above,\nwhich wouldn't look too neat, besides, what would one do from an XT?)\n\n  Great thanks in advance,\n\nAndrew. \n\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7538, "properties": {"category": "rec.autos", "text": "From: sprec-j@acsu.buffalo.edu (Joel Sprechman )\nSubject: Cleaning EuroWiper Boots?\nOrganization: UB\nLines: 15\nNntp-Posting-Host: autarch.acsu.buffalo.edu\n\nI have the EuroWiper boots in White and had to throw away the first pair\nsince I found no way of cleaning them after they looked almost black. Now\nI have my second pair of white ones and once again they are dirty. I need\na way to clean them w/o removing them since I had to cut them to remove\nthem, is there a way? Or should I just buy black ones? \nthanks\n-Joel\n\n----------------------------------------------------------------------------\nJoel Sprechman                             sprec-j@acsu.buffalo.edu  \nUniversity at Buffalo                      v069pff7@ubvms.cc.buffalo.edu\n\n\"It's not a black/white thing, it's a homosapian thing\"\n\"It takes a big man to cry, and an even bigger man to laugh at that man\"\n-Jack Handy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7539, "properties": {"category": "comp.windows.x", "text": "From: thad@cup.portal.com (Thad P Floryan)\nSubject: Re: Is a 2 headed Sun 3/60 possible (cgfour0/bwtwo0)\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 25\n\nIn article <1r28mg$9r5@fitz.TC.Cornell.EDU>\nmatthew@alchemy.TN.Cornell.EDU (Matthew Kleinmann) writes:\n\n|  I have a Sun 3/60 that has a mono framebuffer (bwtwo0 ?) built on the\n|  motherboard.  The same system also has a cgfour (cgfour0 and bwtwo1 ?)\n|  daughterboard.  I have been using this system with a color monitor having a\n|  color \"front\" screen from the cgfour, and a mono \"back\" screen from the\n|  bwtwo1, both on the same tube.  I recentley picked up a 1600 x 1280 Sun mono\n|  monitor, and I would like to make a two headed system with the cgfour0 and\n|  the bwtwo0.  I do not care if I loose the \"back\" screen on the color tube\n|  from the bwtwo1.  After looking through the Xsun man page I am not sure if\n|  this is possible.  Has anybody sucessfuly done this before?\n\nIf it's any consolation, I have two 2-headed Sun-3/60 systems, though the\ncolor and mono monitors for each are \"rated\" 1152x900.   Their configuration\nis the same as yours, so it \"should\" be a Plug'N'Play situation, EXCEPT:\n\nI don't know if your hi-res mono monitor will function this way.  However,\nyou may simply be able to pull the motherboard and set the HI-RES jumper\n(located in the same jumper array as the jumpers for the RAM/SIMM selects\nand Ethernet connection) and be happily on your way.  When you pull the\nmotherboard, the jumpers are in the left-rear (e.g. \"north-west\") quadrant\nof the motherboard (to the left of the SIMM sockets).\n\nThad Floryan [ thad@btr.com, thad@cup.portal.com, thad@netcom.com ]\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7540, "properties": {"category": "soc.religion.christian", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: Hell_2:  Black Sabbath\nOrganization: University of Georgia, Athens\nLines: 8\n\nIn article <Apr.22.00.57.03.1993.2118@geneva.rutgers.edu> jprzybyl@skidmore.edu (jennifer przybylinski) writes:\n>I may be wrong, but wasn't Jeff Fenholt part of Black Sabbath? \n\nYes, he was.  He also played Jesus in \"Jesus Christ Superstar\" before \nhe became a Christian.  He played in Black Sabbath right after he first \ngot saved, but then left it.\n\nLink Hudson.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7541, "properties": {"category": "comp.graphics", "text": "From: 8910782@sunvax.sun.ac.za\nSubject: Rayshade query\nArticle-I.D.: sunvax.1993Apr23.104107.5742\nOrganization: University of Stellenbosch\nLines: 23\n\nHi there\n\nI am very interested in Rayshade 4.00. I have managed to make a chessboard\nfor Rayshade. Unfortunately I still have to do the knight (horse). Any ideas?\nI am also looking for a surface for the chesspieces. The board is marble.\nUnfortunately black won't work very well for the one side. Anybody with ideas\nfor nice surfaces?\n\nI would also like to use the image command of rayshade and the heightfield\ncommand. Unfortunately the manual is very vague about this, and I don't have\nCraig Kolb's email address. Anybody with ideas, because this is essential\nfor my next venture into raytracing.\n\nWhere should I post the finished chessboard?\n\nIs there anybody else using rayshade on non-Unix systems?\n\nHow fast does Unix render?\n\nThanks\n\nRayshade is the best program for people who loves graphics, but have no\nartistic talent.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7542, "properties": {"category": "comp.sys.mac.hardware", "text": "From: f2ehg786@umiami.ir.miami.edu\nSubject: Disappointed by La Cie\nOrganization: Univ of Miami IR\nLines: 52\n\nApproximately four months ago, I purchased a Quantum 240LPS HD from La Cie for\n$649. After two months, the drive started having problems. First, there were\nintermittent freezes, then corrupted files and resources, then Silverlining\n5.41 wouldn't even recognize the drive. So I got an RMA from La Cie and\nexchanged the new drive for a reconditioned one.\n\nWell, about a month has passed now and the second drive is having problems.\nOften, when I boot up my IIsi I get the flashing question mark. Sometimes, if I\nthen insert the Silverlining (5.42) program I can get it to recognize the drive\nby making it scan over and over for drives. At that point I can restart the\nIIsi and boot from the HD. I've called La Cie again and they've given me\nanother RMA. Their tech support people tell me that if Silverlining doesn't see\nthe drive there's a definite hardware problem.\n\nGiven that this is the second bad drive in four months, I asked La Cie to send\nme a *new* one, but they said \"no.\" Also, within three weeks after I purchased\nmy original drive, La Cie dropped the price on it by over $100.\n\nI can accept that a drive (or two) may be bad. And I know that hardware vendors\nmake a practice of sending reconditioned replacements when they do repairs. And\nI understand that the nature of the computer industry lends itself to sudden\nprice fluctuations. Nevertheless, taken together, the convergence of these\nfacts/events have left a bad taste in my mouth. (I should have added above that\nwhen I asked La Cie to transfer the contents of my current drive to the one\nthey will send_I think the data is still in good shape and I'll have to again\nreinstall everything from floppies_they said it would cost me $250 for data\nrecovery.)\n\nIt seems to me that reconditioned hardware should be sold as reconditioned at a\ndiscounted price, and that replacements for new hardware gone bad (still\ncovered under a 90-day warranty) should be new. \n\nI feel a little helpless about all this. I don't mean to necessarily flame La\nCie_their support staff have always been friendly and sometimes even helpful.\nBut c'mon. Sometimes a little extra customer service goes a long way. (I sent\na letter to La Cie's customer service when the first drive was returned and I\nasked them for a credit on the price difference since I had purchased the drive\nthree weeks before they slashed the price. I told them I would like to apply\nthe credit toward the purchase of another La Cie product. They didn't even \nhave the courtesy to reply one way or the other.)\n\nWhat's the moral of this story? I'm not sure. But I do know I won't buy any\nother products from La Cie in the future.\n\nBill Krauthammer\nf2ehg786@umiami.ir.miami.edu\n\nPS Please don't email or post about how good your La Cie product and service\nhas been. I'm not suggesting that they are not a good company or anything like\nthat. All I'm saying is that I've had a disappointing experience with them and\nI'll be taking my business elsewhere in the future.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7543, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: What are some good Suppliers of Chips?\nOrganization: Megatest Corporation\nLines: 44\n\nIn article <1qihcl$9ri@usenet.INS.CWRU.Edu> ae454@cleveland.Freenet.Edu (Paul Simundza) writes:\n>\n>\n>anyone know of any good supplier's of chips, one that could have almost\n>any chip i need? I don't want to hunt down all the chips I may need so\n>it would be greatly appreciated if anyone knows of a good distributor\n>..\n>thankyou\n>\n\nPaul,\n\nUnfortunately, there are not too many retail outlets that'll stock\njust about every chip made.  The stuff they will stock are the ones\nthat'll sell, like standard DRAM's, 80386's, 68000's, etc,etc.\ni.e.  I cna't think of any 'one-stop-shopping' store.\n\nThe closest you can get is to pick up a copy of Byte magazine or\nthe Circuit Cellar, Popular Electronics, and the like and flip\nthrough them.\n\nDistributors like Wyle Electronics, Hamilton Avnet, Pioneer Electronics,\netc, etc, don't normally deal with end-users like ourselves where\nwe only a couple of everything...they only deal with people who buy\nby the hundreds or more.  Each distributor represents and sells a variety of\ndifferent non-competing manufacturers.  What do I mean by this?\nSuppose ABC Electronics sells Intel 80386's.  It's a pretty good\nbet that they won't be selling any of AMD's 386's, or vice-versa.\nThey also can obtain just about *any* chip you want from a manufacturer\nthey represent.\n\nWho knows?  You might be lucky to be able to buy from one of them.\nBut I'd be suprised if you do.  ALso bear in mind that the 1 or 2\nqty prices they will charge you will be *much* greater than what\na mail order outlet will charge.\n\nMy advice?  If you're gonna be designing anything, try to stick\nwith off-the-shelf stuff.  You're going to get stuck if you use\ntoo many esoteric parts sooner or later.\n\ngood luck,\n\naaron\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.356+0000", "event": "documents", "entityId": 7544, "properties": {"category": "sci.crypt", "text": "From: arc@leland.Stanford.EDU (Andrew Richard Conway)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 94\n\nIn article <1qmugcINNpu9@gap.caltech.edu> hal@cco.caltech.edu (Hal Finney) writes:\n>The key question is whether non-Clipper encryption will be made illegal.\n>\n>>     The Administration is not saying, \"since encryption\n>>     threatens the public safety and effective law enforcement,\n>>     we will prohibit it outright\" (as some countries have\n>>     effectively done); nor is the U.S. saying that \"every\n\nDoes anyone know what countries are these?\n\n>>     American, as a matter of right, is entitled to an\n>>     unbreakable commercial encryption product.\"  There is a\n>>     false \"tension\" created in the assessment that this issue is\n>>     an \"either-or\" proposition.  Rather, both concerns can be,\n>>     and in fact are, harmoniously balanced through a reasoned,\n>>     balanced approach such as is proposed with the \"Clipper\n>>     Chip\" and similar encryption techniques.\n>\n>The clear middle ground implied by these statements is to say that Americans\n>have the right to Clipper encryption, but not to unbreakable encryption.\n>This implies that, ultimately, non-Clipper strong encryption must become\n>illegal.\n\nWith the following logical consequences\n\t(a) Using any code designed to obscure informatio which is \n\t    not easily breakable will be illegal, including\n\t\t(i) Using code words such as ``Project P5''\n\t\t(ii) Speaking a language other than English\n\t\t(iii) Ever refering implicitly to events not known to\n\t\t\teveryone, eg\n\t\t\t\"Hi John. How was last night?\"\n\t\t      For all the listener knows, this may be a code for\n\t\t\t\"Did you pick up the drugs OK last night?\"\n\t\t      of be a code for\n\t\t        \"OK. We blow up the Pentagon at midnight.\"\n\t\t(iv) Mentioning anything that could not be perfectly\n\t\t     understood by an average person with no education.\n\t\t(v) Words with more than one syllable.\n\t\t(vi) Speaking with a heavy accent that could bemisunderstood\n\t\t     by people not used to it.\n\t\t(vii) books with an \"Inner meaning\"...such\n\t\t      as \"Animal Farm\".\n\n>(As an aside, isn't the language here jarring?  All this talk about\n>\"harmonious balance\" when they're talking about taking away people's\n>right to communications privacy?)\n\nYes.\n\n>It looks like the worst nightmares raised by Dorothy Denning's proposals\n>are coming true.  If the government continues on this course, I imagine\n>that we will see strong cryptography made illegal.  Encryption programs\n>for disk files and email, as well as software to allow for encrypted\n>voice communications, will be distributed only through the\n>\"underground\".  People will have to learn how to hide the fact that\n>they are protecting their privacy.\n\nI have a wonderful encrypter you can borrow that converts a message\neg \"Meet me at 11:30 to bomb the White House. Bring some dynamite\"\nto an apparently (relatively) innoculous message. This message\nhere is an example of the output for the above message :-).\n\n>It's shocking and frightening to see that this is actually happening here.\n\nIt is shockiong that it could happen anywhere.\nIt is shocking that it could happen in a country \nthat has the arrogance to call itself free.\n\nWhat you can do:\n\t(1) Write to your congress person in plain text.\n\t(2) Write to your congress person in encrypted text.\n\t\t(decrypter optional)\n\t(3) Send some random keystroked to your congressperson\n\t(4) Send some random keystrokes accross the US boundaries,\n\t\tand keep the spooks busy trying to decode it.\n\t(5) Write your own encryption algorithms.\n\t(6) Don't buy clipper products.\n\nP.S. I can't work out why the US government doesn't want to sell\nthem overseas. After all, they are rather easy for US interests to decode,\nso make a perfect tool for industrial/military espionage...lulling \nanyone stupid enough to buy it into a false sense of security. You will\nnotice that there is NO mention anywhere about safety for non-Americans.\n\nDisclaimer: My opinions are mine alone, and do not represent anyone elses.\nI have nothing that I particularly want to hide at the moment...though I \nconsider the right\nto be able to use whatever method of coding data I like to be high on my\nlist of priorities.\n\n-- \n-----------------------------------------------------------------\nAndrew Conway    arc@leland.stanford.edu  Phone: USA 415 497 1094\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7545, "properties": {"category": "sci.electronics", "text": "From: horne@cs.utexas.edu (Patrick J. Horne)\nSubject: Thermal fuse supplier wanted\nOrganization: CS Dept, University of Texas at Austin\nLines: 21\nNNTP-Posting-Host: im4u.cs.utexas.edu\nKeywords: MITI\n\nI have a thermal fuse from a Apple Laserwriter II power supply (Made\nby Cannon) that I need to replace.  The fuse is not the standard\ntubular thermal fuse like those found in hair driers etc, but is a \nrectangular plastic package, much like a transistor or diode.  It\nis about 0.2\"x0.2\"x0.1\", with both leads coming out of one of the\n0.1\"x0.1\" sides.  I have been told that it was made by MITI, a asian\ncompany, but I can find no information as to a supplier.  This fuse\nis rated at 1A, 130C.  Does anyone have a source for this fuse?  I\nonly need 5 or so, which means that the manufacturer wouldn't even want\nto talk to me, let alone, deal with me.\n\nPlease advise via E-mail.\n\nThanks,\nPat\n\n-- \n---  I like boats and bicycles, they're healthier than Valium  ---\nPat Horne, Network Manager, Shop Supervisor, Hardware Guru \nCS Dept, University of Texas, Austin, Tx. 78712 USA \nvoice (512)471-9517, fax (512)471-8885, UUCP:cs.utexas.edu!horne\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7546, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ebosco@us.oracle.com (Eric Bosco)\nSubject: CTRL-ALT DEL locks the computer fafter Windows\nReply-To: ebosco@us.oracle.com\nOrganization: Oracle Corp., Redwood Shores CA\nLines: 9\nNntp-Posting-Host: monica.us.oracle.com\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\n\n\n\nWhenever I exit Windows, I can't use control-alt DEL to reboot my  \ncomputer, because the system hangs when I do this. I can still reboot  \nusing the reset key, but I would like to know why this happens..\n\nEric\n\nebosco@us.oracle.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7547, "properties": {"category": "sci.space", "text": "From: maverick@wpi.WPI.EDU (T. Giaquinto)\nSubject: General Information Request\nOrganization: Worcester Polytechnic Institute, Worcester, MA 01609-2280\nLines: 11\nNNTP-Posting-Host: wpi.wpi.edu\n\n\n\tI am looking for any information about the space program.\nThis includes NASA, the shuttles, history, anything!  I would like to\nknow if anyone could suggest books, periodicals, even ftp sites for a\nnovice who is interested in the space program.\n\n\n\n\t\t\t\t\tTodd Giaquinto\n\t\t\t\t\tmaverick@wpi.WPI.EDU\n\t\t\t\t\t\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7548, "properties": {"category": "misc.forsale", "text": "From: jrm@elm.circa.ufl.edu (Jeff Mason)\nSubject: AUCTION: Marvel, DC, Valiant, Image, Dark Horse, etc...\nOrganization: Univ. of Florida Psychology Dept.\nLines: 59\nNNTP-Posting-Host: elm.circa.ufl.edu\n\nI am auctioning off the following comics.  These minimum bids are set\nbelow what I would normally sell them for.  Make an offer, and I will\naccept the highest bid after the auction has been completed.\n\nTITLE                                                   Minimum/Current \n--------------------------------------------------------------\nAlpha Flight 51 (Jim Lee's first work at Marvel)\t$ 5.00\nAliens 1 (1st app Aliens in comics, 1st prnt, May 1988)\t$20.00\nAmazing Spider-Man 136 (Intro new Green Goblin)         $20.00\nAmazing Spider-Man 238 (1st appearance Hobgoblin)\t$50.00\nArcher and Armstrong 1 (Frank Miller/Smith/Layton)\t$ 7.50\nAvengers 263 (1st appearance X-factor)                  $ 3.50\nBloodshot 1 (Chromium cover, BWSmith Cover/Poster)\t$ 5.00\nDaredevil 158 (Frank Miller art begins)                 $35.00\nDark Horse Presents 1 (1st app Concrete, 1st printing)\t$ 7.50 \nH.A.R.D. Corps 1 \t\t\t\t\t$ 5.00\nIncredible Hulk 324 (1st app Grey Hulk since #1, 1962)\t$ 7.50\nIncredible Hulk 330 (1st McFarlane issue)\t\t$15.00\nIncredible Hulk 331 (Grey Hulk series begins)\t\t$11.20\t\nIncredible Hulk 367 (1st Dale Keown art in Hulk)        $15.00\nIncredible Hulk 377 (1st all new hulk, 1st prnt, Keown) $15.00\nMarvel Comics Presents 1 (Wolverine, Silver Surfer)     $ 7.50\nMaxx Limited Ashcan (4000 copies exist, blue cover)\t$30.00\nNew Mutants 86 (McFarlane cover, 1st app Cable - cameo)\t$10.00\nNew Mutants 100 (1st app X-Force)                       $ 5.00\nNew Mutants Annual 5 (1st Liefeld art on New Mutants)\t$10.00\nOmega Men 3 (1st appearance Lobo)                       $ 7.50\nOmega Men 10 (1st full Lobo story)                      $ 7.50\nPower Man & Iron Fist 78 (3rd appearance Sabretooth)    $25.00\n                      84 (4th appearance Sabretooth)    $20.00\nSimpsons Comics and Stories 1 (Polybagged special ed.)\t$ 7.50\nSpectacular Spider-Man 147 (1st app New Hobgoblin)      $12.50\nStar Trek the Next Generation 1 (Feb 1988, DC mini)     $ 7.50\nStar Trek the Next Generation 1 (Oct 1989, DC comics)   $ 7.50\nWeb of Spider-Man 29 (Hobgoblin, Wolverine appear)      $10.00 \nWeb of Spider-Man 30 (Origin Rose, Hobgoblin appears)   $ 7.50\nWolverine 10 (Before claws, 1st battle with Sabretooth)\t$15.00\nWolverine 41 (Sabretooth claims to be Wolverine's dad)\t$ 5.00\nWolverine 42 (Sabretooth proven not to be his dad)\t$ 3.50\nWolverine 43 (Sabretooth/Wolverine saga concludes)\t$ 3.00\nWolverine 1 (1982 mini-series, Miller art)\t\t$20.00\nWonder Woman 267 (Return of Animal Man)                 $12.50\nX-Force 1 (Signed by Liefeld, Bagged, X-Force card)     $20.00\nX-Force 1 (Signed by Liefeld, Bagged, Shatterstar card) $10.00\nX-Force 1 (Signed by Liefeld, Bagged, Deadpool card)    $10.00\nX-Force 1 (Signed by Liefeld, Bagged, Sunspot/Gideon)   $10.00\n\nAll comics are in near mint to mint condition, are bagged in shiny \npolypropylene bags, and backed with white acid free boards.  Shipping is\n$1.50 for one book, $3.00 for more than one book, or free if you order \na large enough amount of stuff.  I am willing to haggle.\n\nI have thousands and thousands of other comics, so please let me know what \nyou've been looking for, and maybe I can help.  Some titles I have posted\nhere don't list every issue I have of that title, I tried to save space.\n-- \nGeoffrey R. Mason\t\t|\tjrm@elm.circa.ufl.edu\nDepartment of Psychology\t|\tmason@webb.psych.ufl.edu\nUniversity of Florida\t\t|\tprothan@maple.circa.ufl.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7549, "properties": {"category": "sci.crypt", "text": "From: arc@leland.Stanford.EDU (Andrew Richard Conway)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Society for the conservation of momentum\nDistribution: na\nLines: 65\n\nIn article <1993Apr21.204036.13723@rick.dgbt.doc.ca> jhan@debra.dgbt.doc.ca (Jerry Han) writes:\n>In article <bontchev.735404289@fbihh>\n>\n>As one of the happily sleeping people, I would just like to ask this->\n>aren't people just slightly overreacting to this?  Or are we all of a\n>sudden going to draw parallels to Nazi Germany and Communist Russia?\n\nYes. Reasonable parallels. (though I don't think Russia ever claimed to be\nCommunist)\n\n>The point of the matter is that; yes this is a serious problem.  But it is\n>not the end of the world.  Guess what?  We're doing something now you\n>can't do in a Communist country or Nazi Germany.  We're complaining about\n\nI must protest your \"...in a Communist country\". How do you know?\nThere haven't been any, and are unlikely to ever be any. In some Socialist\ndictatorships, you can't, whilst in some socialist democracies\n(such as France or Australia)\nyou can. Of course, some people may disagree about France & Australia being\nsocialist...\n\n>it, (or rather, you're complaining about it) and nobody is shooting at us.  \n\nYet.\n\n>(Or, rather, if they're shooting at me, they have real bad aim.  (:-) )\n>\n>GUESS WHAT PEOPLE?  You live in one of the few countries in the world\n>where a person can complain without getting shot at.  \n\nIn some circumstances. I was at a public meeting last night (in the USA), where\na protester, who was very nice and calm, and just said before the\nspeaker started to beware of his opinions, was forced out of the meeting by\ntwo armed policemen.\n\nThere are a lot of things that one cannot do in the USA. You may not\nnotice them, but as an Australian visitor, I notice them.\n\n>People are always complaining that somebody did this wrong, or somebody\n>did that wrong, or whatever.  Sit down and figure out two things:\n>\n>1)  What have they done right?\n>2)  How much worse can it get?\n>\n>And you'll find that you and I, are pretty damn lucky.\n\nYes, we are lucky at the moment. I hope that is still true in\na few years time. Because it didn't just happen...it required concious\neffort.\n\n>So let's talk about it, get some action going, decide what's going on. \n>But let's not overreact!  \n\nOf course don't over react --- but don't under react.\n\nAndrew.\nDisclaimer: All my opinions are my own, and do not represent the society\nfor the conservation of momentum or any other group. I hope I don't lose\nmy student Visa as a result of these opinions..\n\n\n-- \n-----------------------------------------------------------------\nAndrew Conway    arc@leland.stanford.edu  Phone: USA 415 497 1094\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7550, "properties": {"category": "rec.sport.hockey", "text": "From: layfield@cpsc.ucalgary.ca (Colin Layfield)\nSubject: Re: Smiths birthday goal was LEAFS GO ALL THE WAY !!!\nOrganization: University of Calgary Computer Science\nLines: 23\n\nIn article <C4wty9.40u@mcs.anl.gov> mwm@aps.anl.gov writes:\n>In article 5KL@undergrad.math.uwaterloo.ca, kwk2chow@descartes.uwaterloo.ca (KEVIN C.) writes:\n>> (Thanks for the goals by Steve Smith) \n>I don't see why more people don't blame grant fuhr for the goal that smith \n>put in his own net, it's common to play the puck back to your own goalie when\n>deep in your own end and under little or no pressure from the offensive team.\n>If fuhr had been in position the puck would have never crossed the line.\n>\n>Mike McDowell\n\nI have to disagree with you on this one.  It is anything BUT common.  In the\n4 or 5 years I have been watching hockey I have NEVER seen this happen EVER.\n\nI am not sure what league you have been watching.  :-)\n\nAnyone else agree with this?\n\n Colin Layfield            | \"Religion and Sex are power plays,\n                           |  Manipulate the people for the money they pay,\n The University of Calgary |  Selling Skin, Selling God\n Computer Science          |  The numbers look the same on their CREDIT CARDS!\"\n layfield@cpsc.ucalgary.ca |                          - Queensryche\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7551, "properties": {"category": "rec.autos", "text": "From: nsx@carson.u.washington.edu (|ns-x|)\nSubject: Re: 300ZX or SC300???\nOrganization: University of Washington, Seattle\nLines: 18\nNNTP-Posting-Host: carson.u.washington.edu\n\n>ip02@ns1.cc.lehigh.edu (Danny Phornprapha) writes:\n>>I'm getting a car in the near future.  I've narrow it down to 300ZX and SC300.\n>>Which might be a better choice?\n>>Thanks for your opnion,\n>>Danny\n\n\n>I've been asking myself this same question for the past year, so, if/when\n>you find out, would you please share the magistic answer with me.. \n>The way I see it right now, work twice as hard so you can have both.\n>cheers :)\n>Issa\n\n\t\n\tmy suggestion is: why not work twice as hard (like issa \n\tsuggested above) then get acura nsx?! :) enjoy. /seb\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7552, "properties": {"category": "comp.sys.mac.hardware", "text": "From: smisra@eos.ncsu.edu (SAURABH MISRA)\nSubject: Ethernet to LocalTalk On a Quadra?\nArticle-I.D.: ncsu.1993Apr6.135521.22501\nDistribution: na\nOrganization: North Carolina State University, Project Eos\nLines: 8\n\nI have used both my serial ports with a modem and a serial printer, \nso I cannot use Appletalk.  Is there a Ethernet to Localtalk hardware\nthat will let me use the Ethernet port on my Q700 as a Localtalk \nport.  Until they come out with\nsatellite dishes that sit on your window & give you internet access\nfrom your home, I won't at all be using that port.\n\nSaurabh. \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7553, "properties": {"category": "sci.med", "text": "From: david@stat.com (David Dodell)\nSubject: HICN610 Medical Newsletter, Part 2/4\nReply-To: david@stat.com (David Dodell)\nDistribution: world\nOrganization: Stat Gateway Service, WB7TPY\nLines: 708\n\n\n------------- cut here -----------------\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 13\nVolume  6, Number 10                                           April 20, 1993\n\n                       Gonorrhea -- Colorado, 1985-1992\n                       ================================\n                   SOURCE: MMWR 42(14)   DATE: Apr 16, 1993\n\n     The number of reported cases of gonorrhea in Colorado increased 19.9% \nfrom 1991 to 1992 after declining steadily during the 1980s. In comparison, in \nthe United States, reported cases of gonorrhea in 1992 continued an overall \ndecreasing trend (1). This report summarizes an analysis of the increase in \ngonorrhea in Colorado in 1992 and characterizes trends in the occurrence of \nthis disease from 1985 through 1992. \n     In 1992, 4679 cases of gonorrhea were reported to the Colorado Department \nof Health (CDH) compared with 3901 cases reported in 1991. During 1992, \nreported cases increased 22.7% and 17.5% among females and males, respectively \n(Table 1). Similar increases occurred among blacks, whites, and Hispanics \n(15.6%, 15.1%, and 15.9%, respectively); however, the number of reported cases \nwith race not specified increased 88% from 1991 to 1992 and constituted 9.7% \nof all reported cases in 1992. Although the largest proportional increases by \nage groups occurred among persons aged 35-44 years (80.4%) and greater than or \nequal to 45 years (87.7%), these age groups accounted for only 11.0% of all \nreported cases in 1992. Persons in the 15-19-year age group accounted for the \nlargest number of reported cases of gonorrhea during 1992 and the highest age \ngroup-specific rate (639 per 100,000). \n     Reported cases of gonorrhea increased 32.9% in the five-county Denver \nmetropolitan area (1990 population: 1,629,466) but decreased elsewhere in the \nstate (Table 1). Half the cases of gonorrhea in the Denver metropolitan area \noccurred in 8.4% (34) of the census tracts; these represent neighborhoods \nconsidered by sexually transmitted diseases (STDs)/acquired immunodeficiency \nsyndrome (AIDS) field staff to be the focus of gang and drug activity. \n     When compared with 1991, the number of gonorrhea cases diagnosed among \nmen in the Denver Metro Health Clinic (DMHC, the primary public STD clinic in \nthe Denver metropolitan area) increased 33% in 1992, and the number of visits \nby males to the clinic increased 2.4%. Concurrently, the number of cases \ndiagnosed among women increased by 1%. Among self-identified heterosexual men, \nthe number of gonorrhea cases diagnosed at DMHC increased 33% and comprised \n94% of all cases diagnosed in males, while the number of cases diagnosed among \nself-identified homosexual men remained low (71 and 74 in 1991 and 1992, \nrespectively). \n     Four selected laboratories in the metropolitan Denver area (i.e., HMO, \nuniversity hospital, nonprofit family planning, and commercial) were contacted \nto determine whether gonorrhea culture-positivity rates increased. Gonorrhea \nculture-positivity rates in three of four laboratories contacted increased \n23%-33% from 1991 to 1992, while the rate was virtually unchanged in the \nfourth (i.e., nonprofit family planning). \n     From 1985 through 1991, reported cases of gonorrhea among whites and \nHispanics in Colorado decreased; in comparison, reported cases among blacks \n\nHICNet Medical Newsletter                                              Page 14\nVolume  6, Number 10                                           April 20, 1993\n\nincreased since 1988 (Figure 1). During 1988-1992, the population in Colorado \nincreased 9.9% for blacks, 9.8% for Hispanics, and 4.5% for whites. In 1992, \nthe gonorrhea rate for blacks (1935 per 100,000 persons) was 57 times that for \nwhites (34 per 100,000) and 12 times that for Hispanics (156 per 100,000) \n(Table 1). Among black females, reported cases of gonorrhea increased from \n1988 through 1992 in the 15-19-year age group; among black males, cases \nincreased from 1989 through 1992 in both the 15-19-and 20-24-year age groups. \n\nReported by: KA Gershman, MD, JM Finn, NE Spencer, MSPH, STD/AIDS Program; RE \nHoffman, MD, State Epidemiologist, Colorado Dept of Health. JM Douglas, MD, \nDenver Dept of Health and Hospitals. Surveillance and Information Systems Br, \nDiv of Sexually Transmitted Diseases and HIV Prevention, National Center for \nPrevention Svcs, CDC. \n\nEditorial Note: The increase in reported gonorrhea cases in Colorado in 1992 \nmay represent an overall increase in the occurrence of this disease or more \ncomplete reporting stimulated by visitations to laboratories by CDH \nsurveillance staff during 1991-1992. The increases in confirmed gonorrhea \ncases at DMHC and in culture-positivity rates in three of four laboratories \nsuggest a real increase in gonorrhea rather than a reporting artifact. \nHowever, the stable culture-positivity rate in the nonprofit family planning \nlaboratory (which serves a network of clinics statewide) indicates that the \ngonorrhea increase did not uniformly affect all segments of the population. \n     One possible explanation for the increased occurrence of gonorrhea in \nColorado may be gang- and drug-related sexual behavior, as implicated in a \nrecent outbreak of drug-resistant gonorrhea and other STDs in Colorado Springs \n(2). Although the high morbidity census tracts in the Denver metropolitan area \ncoincide with areas of gang and drug activity, this hypothesis requires \nfurther assessment. To examine the possible role of drug use -- implicated \npreviously as a factor contributing to the national increase in syphilis (3-6) \n-- the CDH STD/AIDS program is collecting information from all persons in whom \ngonorrhea is diagnosed regarding drug use, exchange of sex for money or drugs, \nand gang affiliation. \n     The gonorrhea rate for blacks in Colorado substantially exceeds the \nnational health objective for the year 2000 (1300 per 100,000) (objective \n19.1a) (7). Race is likely a risk marker rather than a risk factor for \ngonorrhea and other STDs. Risk markers may be useful for identifying groups at \ngreatest risk for STDs and for targeting prevention efforts. Moreover, race-\nspecific variation in STD rates may reflect differences in factors such as \nsocioeconomic status, access to medical care, and high-risk behaviors. \n     In response to the increased occurrence of gonorrhea in Colorado, \ninterventions initiated by the CDH STD/AIDS program include 1) targeting \npartner notification in the Denver metropolitan area to persons in groups at \nincreased risk (e.g., 15-19-year-old black females and 20-24-year-old black \nmales); 2) implementing a media campaign (e.g., public service radio \n\nHICNet Medical Newsletter                                              Page 15\nVolume  6, Number 10                                           April 20, 1993\n\nannouncements, signs on city buses, newspaper advertisements, and posters in \nschools and clinics) to promote awareness of STD risk and prevention targeted \nprimarily at high-risk groups, and 3) developing teams of peer educators to \nperform educational outreach in high-risk neighborhoods. The educational \ninterventions are being developed and implemented with the assistance of \nmembers of the target groups and with input from a forum of community leaders \nand health-care providers. \n\nReferences\n\n1. CDC. Table II. Cases of selected notifiable diseases, United States, weeks \nending December 26, 1992, and December 28, 1991 (52nd week). MMWR 1993;41:975. \n\n2. CDC. Gang-related outbreak of penicillinase-producing Neisseria gonorrhoeae \nand other sexually transmitted diseases -- Colorado Springs, Colorado, 1989-\n1991. MMWR 1993;42:25-8. \n\n3. CDC. Relationship of syphilis to drug use and prostitution -- Connecticut \nand Philadelphia, Pennsylvania. MMWR 1988;37:755-8, 764. \n\n4. Rolfs RT, Goldberg M, Sharrar RG. Risk factors for syphilis: cocaine use \nand prostitution. Am J Public Health 1990;80:853-7. \n\n5. Andrus JK, Fleming DW, Harger DR, et al. Partner notification: can it \ncontrol epidemic syphilis? Ann Intern Med 1990;112:539-43. \n\n6. Gershman KA, Rolfs RT. Diverging gonorrhea and syphilis trends in the \n1980s: are they real? Am J Public Health 1991;81:1263-7. \n\n7. Public Health Service. Healthy people 2000: national health promotion and \ndisease prevention objectives--full report, with commentary. Washington, DC: \nUS Department of Health and Human Services, Public Health Service, 1991; DHHS \npublication no. (PHS)91-50212. \n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 16\nVolume  6, Number 10                                           April 20, 1993\n\n                Effectiveness in Disease and Injury Prevention\n            Impact of Adult Safety-Belt Use on Restraint Use Among\n            Children less than 11 Years of Age -- Selected States,\n                                 1988 and 1989\n            ======================================================\n                   SOURCE: MMWR 42(14)   DATE: Apr 16, 1993\n\n     Motor-vehicle crashes are the leading cause of death among children and \nyoung adults in the United States and account for more than 1 million years of \npotential life lost before age 65 annually (1). Child safety seats and safety \nbelts can substantially reduce this loss (2). From 1977 through 1985, all 50 \nstates passed legislation requiring the use of child safety seats or safety \nbelts for children. Although these laws reduce injuries to young children by \nan estimated 8%-59% (3,4), motor-vehicle crash-related injuries remain a major \ncause of disability and death among U.S. children (1), while the use of \noccupant restraints among children decreases inversely with age (84% usage for \nthose aged 0-4 years; 57%, aged 5-11 years; and 29%, aged 12-18 years) (5). In \naddition, parents who do not use safety belts themselves are less likely to \nuse restraints for their children (6). To characterize the association between \nadult safety-belt use and adult-reported consistent use of occupant restraints \nfor the youngest child aged less than 11 years within a household, CDC \nanalyzed data obtained from the Behavioral Risk Factor Surveillance System \n(BRFSS) during 1988 and 1989. This report summarizes the findings from this \nstudy. \n     Data were available for 20,905 respondents aged greater than or equal to \n18 years in 11 states * that participated in BRFSS -- a population-based, \nrandom-digit-dialed telephone survey -- and administered a standard Injury \nControl and Child Safety Module developed by CDC. Of these respondents, 5499 \n(26%) had a child aged less than 11 years in their household. Each respondent \nwas asked to specify the child's age and the frequency of restraint use for \nthat child. The two categories of child restraint and adult safety-belt use in \nthis analysis were 1) consistent use (i.e., always buckle up) and 2) less than \nconsistent use (i.e., almost always, sometimes, rarely, or never buckle up). \nData were weighted to provide estimates representative of each state. Software \nfor Survey Data Analysis (SUDAAN) (7) was used to calculate point estimates \nand confidence intervals. Statistically significant differences were defined \nby p values of less than 0.05. \n     Each of the 11 states had some type of child restraint law. Of these, six \n(Arizona, Kentucky, Maine, Nebraska, Rhode Island, and West Virginia) had no \nlaw requiring adults to use safety belts; four (Idaho, Maryland, Pennsylvania, \nand Washington) had a secondary enforcement mandatory safety-belt law (i.e., a \nvehicle had to be stopped for a traffic violation before a citation for nonuse \nof safety belts could be issued); and one state (New York) had a primary \nenforcement mandatory safety-belt law (i.e., vehicles could be stopped for a \nsafety-belt law violation alone). In nine states, child-passenger protection \n\nHICNet Medical Newsletter                                              Page 17\nVolume  6, Number 10                                           April 20, 1993\n\nlaws included all children aged less than 5 years, but the other two states \nused both age and size of the child as criteria for mandatory restraint use. \nThe analysis in this report subgrouped states into 1) those having a law \nrequiring adult safety-belt use (law states), and 2) those without such a law \n(no-law states). \n     Overall, 21% of children aged less than 11 years reportedly were not \nconsistently restrained during automobile travel. Both child restraint use and \nadult restraint use were significantly higher (p less than 0.05, chi-square \ntest) in law states than in no-law states (81.1% versus 74.3% and 58.7% versus \n43.2%, respectively). \n     High rates of restraint use for children aged less than or equal to 1 \nyear were reported by both adults indicating consistent and less than \nconsistent safety-belt use (Figure 1). Adults with consistent use reported \nhigh rates of child-occupant restraint use regardless of the child's age \n(range: 95.5% for 1-year-olds to 84.7% for 10-year-olds). In comparison, for \nadults reporting less than consistent safety-belt use, the rate of child-\noccupant restraint use declined sharply by the age of the child (range: 93.1% \nfor 1-year-olds to 28.8% for 10-year-olds). When comparing children of \nconsistent adult safety-belt users with children of less than consistent adult \nsafety-belt users, 95% confidence intervals overlap for the two youngest age \ngroups (i.e., aged less than 1 and 1 year). \n     Reported child-occupant restraint use in law states generally exceeded \nthat in no-law states, regardless of age of child (Table 1). In addition, \nhigher adult educational attainment was significantly associated with \nincreased restraint use for children, a factor that has also been associated \nwith increased adult safety-belt use (8). \n\nReported by: National Center for Injury Prevention and Control; National \nCenter for Chronic Disease Prevention and Health Promotion, CDC. \n\nEditorial Note: The findings in this report are consistent with others \nindicating that adults who do not use safety belts themselves are less likely \nto employ occupant restraints for their children (6,9). Because these \nnonbelted adults are at increased risk of crashing and more likely to exhibit \nother risk-taking behaviors, children traveling with them may be at greater \nrisk for motor-vehicle injury (10). \n     Educational attainment of adult respondents was inversely associated with \nchild restraint use in this report. Accordingly, occupant-protection programs \nshould be promoted among parents with low educational attainment. Because low \neducational attainment is often associated with low socioeconomic status, such \nprograms should be offered to adults through health-care facilities that serve \nlow-income communities or through federal programs (i.e., Head Start) that are \ndirected at parents with young children. \n     Injury-prevention programs emphasize restraining young children. In \naddition, however, efforts must be intensified to protect child occupants as \n\nHICNet Medical Newsletter                                              Page 18\nVolume  6, Number 10                                           April 20, 1993\n\nthey become older. Parents, especially those with low educational attainment, \nthose who do not consistently wear safety belts, and those from states that do \nnot have mandatory safety-belt use laws, should be encouraged to wear safety \nbelts and to protect their children by using approved child safety seats and \nsafety belts. Finally, the increased use of restraints among children may \nincrease their likelihood of using safety belts when they become teenagers -- \nthe age group characterized by the lowest rate of safety-belt use and the \nhighest rate of fatal crashes (5). \n\nReferences\n\n1. CDC. Childhood injuries in the United States. Am J Dis Child 1990;144:627-\n46. \n\n2. Partyka SC. Papers on child restraints: effectiveness and use. Washington, \nDC: US Department of Transportation, National Highway Traffic Safety \nAdministration, 1988; report no. DOT-HS-807-286. \n\n3. Guerin D, MacKinnon D. An assessment of the California child passenger \nrestraint requirement. Am J Public Health 1985;75:142-4. \n\n4. Hall W, Orr B, Suttles D, et al. Progress report on increasing child \nrestraint usage through local education and distribution programs. Chapel \nHill, North Carolina: University of North Carolina at Chapel Hill, Highway \nSafety Research Center, 1983. \n\n5. National Highway Traffic Safety Administration. Occupant protection trends \nin 19 cities. Washington, DC: US Department of Transportation, National \nHighway Traffic Safety Administration, 1991. \n\n6. Wagenaar AC, Molnar LJ, Margolis LH. Characteristics of child safety seat \nusers. Accid Anal Prev 1988;20:311-22. \n\n7. Shah BV, Barnwell BG, Hunt PN, LaVange LM. Software for Survey Data \nAnalysis (SUDAAN) version 5.50 Software documentation. Research Triangle \nPark, North Carolina: Research Triangle Institute, 1991. \n\n8. Lund AK. Voluntary seat belt use among U.S. drivers: geographic, \nsocioeconomic and demographic variation. Accid Anal Prev 1986;18:43-50. \n\n9. Margolis LH, Wagenaar AC, Molnar LJ. Use and misuse of automobile child \nrestraint devices. Am J Dis Child 1992;146:361-6. \n\n10. Hunter WW, Stutts JC, Stewart JR, Rodgman EA. Characteristics of seatbelt \nusers and non-users in a state with a mandatory use law. Health Education \n\nHICNet Medical Newsletter                                              Page 19\nVolume  6, Number 10                                           April 20, 1993\n\nResearch 1990;5:161-73. \n\n* Arizona, Idaho, Kentucky, Maine, Maryland, Nebraska, New York, Pennsylvania, \nRhode Island, Washington, and West Virginia. \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 20\nVolume  6, Number 10                                           April 20, 1993\n\n                   Publication of CDC Surveillance Summaries\n                   =========================================\n                   SOURCE: MMWR 42(14)   DATE: Apr 16, 1993\n\n     Since 1983, CDC has published the CDC Surveillance Summaries under \nseparate cover as part of the MMWR series. Each report published in the CDC \nSurveillance Summaries focuses on public health surveillance; surveillance \nfindings are reported for a broad range of risk factors and health conditions. \n     Summaries for each of the reports published in the most recent (March 19, \n1993) issue of the CDC Surveillance Summaries (1) are provided below. All \nsubscribers to MMWR receive the CDC Surveillance Summaries, as well as the \nMMWR Recommendations and Reports, as part of their subscriptions.\n\n SURVEILLANCE FOR AND COMPARISON OF BIRTH DEFECT PREVALENCES\n                               IN TWO GEOGRAPHIC \n                        AREAS -- UNITED STATES, 1983-88 \n\n     Problem/Condition: CDC and some states have developed surveillance \nsystems to monitor the birth prevalence of major defects. \n     Reporting Period Covered: This report covers birth defects surveillance \nin metropolitan Atlanta, Georgia, and selected jurisdictions in California for \nthe years 1983-1988. \n     Description of System: The California Birth Defects Monitoring Program \nand the Metropolitan Atlanta Congenital Defects Program are two population-\nbased surveillance systems that employ similar data collection methods. The \nprevalence estimates for 44 diagnostic categories were based on data for 1983-\n1988 for 639,837 births in California and 152,970 births in metropolitan \nAtlanta. The prevalences in the two areas were compared, adjusting for race, \nsex, and maternal age by using Poisson regression. \n     Results: Regional differences in the prevalence of aortic stenosis, fetal \nalcohol syndrome, hip dislocation/dysplasia, microcephalus, obstruction of the \nkidney/ureter, and scoliosis/lordosis may be attributable to general \ndiagnostic variability. However, differences in the prevalences of arm/hand \nlimb reduction, encephalocele, spina bifida, or trisomy 21 (Down syndrome) are \nprobably not attributable to differences in ascertainment, because these \ndefects are relatively easy to diagnose. \n     Interpretation: Regional differences in prenatal diagnosis and pregnancy \ntermination may affect prevalences of trisomy 21 and spina bifida. However, \nthe reason for differences in arm/hand reduction is unknown, but may be \nrelated to variability in environmental exposure, heterogeneity in the gene \npool, or random variation. \n     Actions Taken: Because of the similarities of these data bases, several \ncollaborative studies are being implemented. In particular, the differences in \nthe birth prevalence of spina bifida and Down syndrome will focus attention on \nthe impact of prenatal diagnosis. Authors: Jane Schulman, Ph.D., Nancy \n\nHICNet Medical Newsletter                                              Page 21\nVolume  6, Number 10                                           April 20, 1993\n\nJensvold, M.P.H, Gary M. Shaw, Dr.P.H., California Birth Defects Monitoring \nProgram, March of Dimes Birth Defects Foundation. Larry D. Edmonds, M.S.P.H., \nAnne B. McClearn, Division of Birth Defects and Developmental Disabilities, \nNational Center for Environmental Health, CDC. \n\n                      INFLUENZA -- UNITED STATES, 1988-89\n\n     Problem/Condition: CDC monitors the emergence and spread of new influenza \nvirus variants and the impact of influenza on morbidity and mortality annually \nfrom October through May. \n     Reporting Period Covered: This report covers U.S. influenza surveillance \nconducted from October 1988 through May 1989. \n     Description of System: Weekly reports from the vital statistics offices \nof 121 cities provided an index of influenza's impact on mortality; 58 WHO \ncollaborating laboratories reported weekly identification of influenza \nviruses; weekly morbidity reports were received both from the state and \nterritorial epidemiologists and from 153 sentinel family practice physicians. \nNonsystematic reports of outbreaks and unusual illnesses were received \nthroughout the year. \n     Results: During the 1988-89 influenza season, influenza A(H1N1) and B \nviruses were identified in the United States with essentially equal frequency \noverall, although both regional and temporal patterns of predominance shifted \nover the course of the season. Throughout the season increases in the indices \nof influenza morbidity in regions where influenza A(H1N1) predominated were \nsimilar to increases in regions where influenza B predominated. Only 7% of \nidentified viruses were influenza A(H3N2), but isolations of this subtype \nincreased as the season waned, and it subsequently predominated during the \n1989-90 season. During the 1988-89 season outbreaks in nursing homes were \nreported in association with influenza B and A(H3N2) but not influenza \nA(H1N1). \n     Interpretation: The alternating temporal and geographic predominance of \ninfluenza strains A(H1N1) and B during the 1988-89 season emphasizes the \nimportance of continual attention to regional viral strain surveillance, since \namantadine is effective only for treatment and prophylaxis of influenza A. \n     Actions Taken: Weekly interim analyses of surveillance data produced \nthroughout the season allow physicians and public health officials to make \ninformed choices regarding appropriate use of amantadine. CDC's annual \nsurveillance allows the observed viral variants to be assessed as candidates \nfor inclusion as components in vaccines used in subsequent influenza seasons. \nAuthors: Louisa E. Chapman, M.D., M.S.P.H., Epidemiology Activity, Office of \nthe Director, Division of Viral and Rickettsial Diseases, National Center for \nInfectious Diseases; Margaret A. Tipple, M.D., Division of Quarantine, \nNational Center for Prevention Services, CDC. Suzanne Gaventa Folger, M.P.H., \nHealth Investigations Branch, Division of Health Studies, Agency for Toxic \nSubstances and Disease Registry. Maurice Harmon, Ph.D., Connaught \n\nHICNet Medical Newsletter                                              Page 22\nVolume  6, Number 10                                           April 20, 1993\n\nLaboratories, Pasteur-Mirieux Company, Swiftwater, Pennsylvania. Alan P. \nKendal, Ph.D., European Regional Office, World Health Organization, \nCopenhagen, Denmark. Nancy J. Cox, Ph.D., Influenza Branch, Division of Viral \nand Rickettsial Diseases, National Center for Infectious Diseases; Lawrence B. \nSchonberger, M.D., M.P.H., Epidemiology Activity, Office of the Director, \nDivision of Viral and Rickettsial Diseases, National Center for Infectious \nDiseases, CDC. \n\nReference\n\n1. CDC. CDC surveillance summaries (March 19). MMWR 1993;42(no. SS-1).\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 23\nVolume  6, Number 10                                           April 20, 1993\n\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n                            Clinical Research News\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n                          Clinical Research News for\n                              Arizona Physicians\n\n                 Vol. 4, No. 4, April 1993     Tucson, Arizona\n\nPublished monthly by the Office of Public Affairs at The University of Arizona\n                            Health Sciences Center.   \n                   Copyright 1993, The University of Arizona\n\n                 High Tech Assisted Reproductive Technologies\n\nFollowing the birth of the first in vitro fertilization-embryo transfer (IVF-\nET) baby in 1978, a host of assisted reproductive technologies have been \ndeveloped that include IVF-ET, gamete intrafallopian tube transfer (GIFT), \nembryo cryopreservation (freezing) and gamete micromanipulation. Together, \nthese technologies are referred to as the high-tech assisted reproductive \ntechnology (ART) procedures. \n\nOvulation induction, sperm insemination and surgery for tubal disease and/or \npathology still are the mainstays of the therapies available for infertility \nmanagement. However, when these fail, it almost always is appropriate to \nproceed with one of the ART procedures. \n\nTherefore, in addition to a comprehensive basic and general infertility \nservice at The University of Arizona Center for Reproductive Endocrinology and \nInfertility, there is a program of Assisted Reproduction that specializes in \nART procedures. This program serves as a tertiary provider for those patients \nin the state of Arizona whose infertility problems cannot be resolved by the \ntraditional therapies. \n\nThe following article (on back) describes the ART procedures available in our \nCenter, clarifies appropriate applications for each, and considers the \nrealistic expectations for their success. Procedures included are: \n\no in vitro \no fertilization - embryo transfer (IVF-ET),  gamete intrafallopian tube \n  transfer \no (GIFT),  cryopreservation of human embryos and  gamete micromanipulation. \nThis article also considers ongoing research in our program that is directed \ntowards improved success of these technologies. \n\n\nHICNet Medical Newsletter                                              Page 24\nVolume  6, Number 10                                           April 20, 1993\n\n                           Future Areas of Research\n\nIn addition to ongoing research that is directed exclusively toward the \nmanagement of infertile couples, we are developing the technology to assist \ncouples who are at risk for producing embryos with a serious hereditary \ndisease. \n\nThis technology involves biopsying the preimplantation human embryo and then \nsubjecting the biopsied cells to genetic analysis using either DNA \namplification or fluorescent in situ hybridization. \n\nThere are recent reports of the successful application of DNA amplification by \nother centers, for example, for diagnosis of the genes for cystic fibrosis and \nhemophilia. We hope to apply and further focus fluorescent in situ \nhybridization technology for probing the X chromosome, the identification of \nwhich will provide a scientific basis for counselling patients who exhibit \nsex-linked disorders. \n\nThe considerable clinical application of such technology lies in the fact that \nit circumvents the need for prenatal diagnosis, in addition to the possibility \nof a subsequent termination of affected fetuses, in order to avoid the birth \nof affected children. \n\n\nCatherine Racowsky, Ph.D.\nAssociate Professor and Director of Research\nDepartment of Obstetrics and Gynecology\nCollege of Medicine \nUniversity of Arizona\nTucson, Arizona\n\n               Applications, Success Rates and Advances for the\n                           Management of Infertility\n\nThe following are the ART procedures available at The University of Arizona \nCenter for Reproductive Endocrinology and Infertility. \n\n     In Vitro Fertilization - Embryo Transfer is the core ART procedure of our \nAssisted Reproduction Program.  This procedure involves retrieval of \nunfertilized eggs from the ovary, their insemination in vitro in a dish, and \nthe culture of resultant embryos for 1 or 2 days, before they are transferred \nto the patient's uterus. All cultures are maintained in an incubator under \nstrictly controlled atmospheric and temperature conditions. Before being \nprocessed for use in insemination, semen samples are evaluated in our \nandrology laboratory using both subjective light microscopy and computer-\n\nHICNet Medical Newsletter                                              Page 25\nVolume  6, Number 10                                           April 20, 1993\n\nassisted semen analyses. To ensure an adequate number of eggs with which to \nperform IVF-ET, or indeed, GIFT, follicular development is typically \nstimulated, with gonadotropins (perganol, metrodin), gonadotropin releasing \nhormone (GnRH, Factrel, lutrepulse) and/or GnRH analogues (lupron, Depo \nlupron, synarel). Occasionally, however, IVF-ET is accomplished with eggs \nobtained in non-stimulated cycles. While some programs utilize laparoscopic \negg retrieval in the operating room with the patient under general anesthesia, \nwe undertake the less costly approach of ultrasound-guided retrieval in our \nInfertility Unit, with the patient sedated.  \n     Couples who resort to IVF-ET exhibit such pathologies as tubal \ndeficiencies, ovulatory dysfunction, endometriosis, and/or mild forms of male \nfactor infertility.  According to the United States IVF Registry, the overall \nsuccess rate for IVF-ET nationwide has stabilized at about 14 percent per \ncycle. Results from our program, involving 86 patients who have undergone 173 \nIVF-ET cycles, reflect a comparable success rate. \n     Nevertheless, the overall incidence of success with this procedure is \ndisconcertingly low and emphasizes the need to address those physiological \nfactors that limit achievement of a higher percentage of pregnancies.  Well \nrecognized predictors of outcome include patient age, response to exogenous \novarian stimulation, quality of sperm and number of repeated IVF-ET cycle \nattempts. However, among these, age is the single most significant determinant \nof conception. Therefore, it is critical that such patients are referred to an \nAssisted Reproduction Program at the earliest opportunity following failure of \ntraditional therapies. \n     The underlying basis for the negative effect of age on fertility has not \nbeen clearly delineated beyond recognition that: 1) the number of eggs \navailable for retrieval declines markedly with age; 2) fertilization rates \nsignificantly decrease in eggs retrieved from patients who are over 40 years; \nand 3) provided the appropriate hormonal background is present, age is \nunrelated to uterine competency to sustain pregnancy. Ongoing research in our \nCenter, therefore, is investigating physiological changes in the egg that may \nbe impacted by age. We have determined that more than 50 percent of eggs that \nfail to fertilize in vitro are chromosomally abnormal, and that a significant \nproportion of these abnormalities are accountable to patient age. Currently, \nthe only recourse for such patients is to use eggs obtained from a donor. Our \nprogram has initiated recruitment of volunteer egg donors to satisfy the needs \nof a list of recipients interested in this form of therapy. \n\n     GIFT - This high-tech ART procedure is performed in the operating room, \nusually with the use of a laparoscope and, in contrast to IVF-ET, involves \nintroducing sperm and freshly retrieved eggs into the lumen of the Fallopian \ntube (an average of 3 eggs/tube). Under these circumstances, fertilization \noccurs in vivo and, if excess eggs are retrieved, the remainder undergo IVF, \nwith subsequent options for embryo transfer in that cycle, or freezing for \ntransfer in a subsequent cycle. This ART procedure is applied to cases in \n\nHICNet Medical Newsletter                                              Page 26\nVolume  6, Number 10                                           April 20, 1993\n\nwhich there is at least one patent Fallopian tube but the couple has such \npathologies as ovulatory dysfunction, endometriosis, male factor infertility \nand/or idiopathic infertility.    \n     The data reported in the United States IVF Registry for 1985 through 1990 \nindicate that the overall success rate with GIFT is higher than that obtained \nwith the IVF-ET technique (range of clinical pregnancies for GIFT is 24 to 36 \npercent and for IVF-ET 14 to 18 percent). In view of this fact, one might \nexpect more patients to be treated with GIFT than IVF-ET. However, in our \nprogram we have taken into account three basic concerns which, while \nsubstantially reducing the number of GIFT cycles performed, benefit the \npatient. These concerns are: 1) the increased costs associated with performing \na procedure in the operating room; 2) the risks, albeit minimal, of undergoing \ngeneral anesthesia; and 3) the considerable benefits to be accrued from \nobtaining direct information on the quality and fertilizability of the eggs, \nand the developmental competency of resultant embryos. \n     The increased success with GIFT undoubtedly reflects the artificial \nenvironment provided by the laboratory in the IVF-ET procedure. Between \nJanuary 1, 1991, and December 31, 1992, we have performed a total of 12 GIFT \ncycles, with an overall success rate of 20 percent. \n     Embryo cryopreservation, or freezing, is applied in our program when \nembryos result from residual GIFT eggs or from non-transferred IVF embryos. \nThis procedure not only provides patients with a subsequent opportunity for \nsuccess at much reduced costs, but also circumvents the legal and ethical \nissues relating to disposal of supernumerary embryos. Therefore, as stipulated \nby the American Fertility Society ethical guidelines for ART programs, from \nboth a practical and an ethical standpoint, all Assisted Reproduction programs \nshould have the capability of cryopreserving human embrys. \n     Gamete Micromanipulation - This ART procedure, which is still very new, \nis applied to couples who are unaccepting of insemination with donor semen but \nwho have severe male factor infertility (less than 10 million sperm/ml in \ncombination with fewer than 20 perccent motile sperm, and/or less than 10 \npercent sperm with normal morphology). We are currently developing the \nprocedure of sub-zonal insertion (SZI), which entails injecting sperm under \nthe coating around the egg, the barrier normally penetrated by the sperm \nthrough enzymatic digestion. \n     Available data from SZI programs world-wide indicate that only 5 to 10 \npercent of SZI cycles result in a pregnancy. This statistic undoubtedly \nrelates to limitations imposed by abnormalities inherent in the sperm. \nTherefore, we are currently focusing on the development of improved techniques \nfor the recognition and selection of sperm chosen for manipulation. Such \nefforts are unquestionably worthwhile in view of the fact that this technology \noffers the only realistic opportunity for severe male factor patients to \nestablish conception. \n\nCatherine Racowsky, Ph.D.\n\nHICNet Medical Newsletter                                              Page 27\nVolume  6, Number 10                                           April 20, 1993\n\nAssociate Professor and Director of Research\nDepartment of Obstetrics and Gynecology\nCollege of Medicine \n--------- end of part 2 ------------\n\n---\n      Internet: david@stat.com                  FAX: +1 (602) 451-1165\n      Bitnet: ATW1H@ASUACAD                     FidoNet=> 1:114/15\n                Amateur Packet ax25: wb7tpy@wb7tpy.az.usa.na\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7554, "properties": {"category": "comp.graphics", "text": "From: rowlands@pocomoco.NoSubdomain.NoDomain (Jon Rowlands)\nSubject: Re: More gray levels out of the screen\nNntp-Posting-Host: pocomoco.hc.ti.com\nReply-To: rowlands@hc.ti.com (Jon Rowlands)\nOrganization: Texas Instruments, SPDC, DSP Technology Branch, Dallas\nLines: 51\n\nIn article <1pp991$t63@cc.tut.fi>, jk87377@lehtori.cc.tut.fi (Kouhia Juhana)\nwrites:\n>In article <1993Apr5.040819.14943@kpc.com> hollasch@kpc.com (Steve\n>Hollasch) writes:\n>>\n>>    I think you're proposal would work to get an extra one, maybe two extra\n>>bits of color resolution.  However, if you had a display that chould do only\n>>zero or full intensity for each primary, I don't think you'd get great\n>>equivalent 24-bit photographs.\n>\n>I have not suggested to do so; I wrote about problems, and the problem\n>were clearly visible with 7 bit b&w images; not to mention 24 bit images.\n\n[ description of experiment deleted ]\n\n>If the 1 bit images are viewed quickly and in sync with screen,\n>then 100 intensities could be better than we have -- I dunno.\n\n[ more deleted ]\n\n>In any case, getting black color with slow machines is problem.\n>I could try it on our 8 bit screens but I don't know how to\n>render pixels with X in constant time. I recall our double buffer\n>has other image color and one b&w -- that doesn't help either.\n>Maybe I should dump photos to screen with low level code; how?\n\nA few years ago a friend and I took some 256 grey-level photos from\na 1 bit Mac Plus screen using this method. Displaying all 256 levels\nsynchronized to the 60Hz display took about 10 seconds. After\nexperimenting with different aperture settings and screen\nbrightnesses we found a range that worked well, giving respectable\ncontrast. The quality of the images was pretty good. There were no\nvisible contrast bands.\n\nTo minimize the exposure time the display program built 255\ndifferent 1 bit frames. The first contained a dot only for pixels\nthat had value 255, the second only for pixels that had value 254,\netc. These frames were stored using a sparse data structure that was\nvery fast to 'or' onto the screen in sequence. Creating these\nframes sometimes took 5-10 minutes on that old Mac, but the camera\nshutter was closed during that time anyway. And yes, we wrote\ndirectly to the screen memory. Mea culpa.\n\nOur biggest problem was that small images were displayed in the\ntop left corner of the screen instead of the center. It took\nan extra week to have the film developed and printed, because the\nprocessors took the trouble to manually move the all images into\nthe center of the print. Who'd have guessed?\n\nregards,\nJon Rowlands\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7555, "properties": {"category": "talk.religion.misc", "text": "From: irfan@davinci.ece.wisc.edu (Irfan Alan)\nSubject: A TREATISE ON THE MIRACLES OF MUHAMMAD, PART-3\nOrganization: Univ. of Wisconsin-Madison; Electrical & Computer Engineering\nDistribution: usa\nLines: 87\n\nDROPLET VOL 1, No 11, Part 3\n\nD R O P L E T\nFrom The Vast Ocean Of The Miraculous Qur'an\n\nTranslations from the Arabic and Turkish Writings of \nBediuzzaman Said Nursi, The Risale-i Noor\n\nVOL 1, No 11, Part 3\n------------------------------------------------------------------\n   \t\t NINETEENTH LETTER  \n\n\t\t MU'JIZAT-I AHMEDIYE RISALESI \nA TREATISE ON THE MIRACLES OF MUHAMMED SAW, Part 3       \n\n(continued from Droplet Vol 1, No 11, Part 2)\n\n   THIRD SIGN:  The miracles of Muhammad (SAW)\nare extremely varied.  Because his messengership is\nuniversal, he has been distinguished by  miracles that\nrelate to almost all species of creation.\n    Just as the supreme aide of a renowned ruler, arriving\nwith many gifts in a city where various people live, will be\nwelcomed by a representative of each people who\nacclaims him and bids him welcome in his own language\nso, too, when the supreme messenger of the Monarch of\nPre- and  Post-Eternity  (Ezel and Ebed  Sultani) honored the\nuniverse by coming as an envoy to the inhabitants of the\nearth, and brought with him the light of truth and spiritual\ngifts sent by the Creator of the universe and derived from\nthe realities of the whole universe, each species of\ncreation -from water, rocks, trees, animals and human\nbeings to the moon, sun and stars- welcomed him and\nacclaimed his prophethood, each in its own language, and\neach bearing one of his miracles.\n    Now it would require a voluminous work to mention all\nhis miracles.  As the punctilious scholars have written\nmany volumes concerning the proofs of His prophethood,\nhere we will briefly point out only the general category\ninto which fall fhe miracles that are definite and accepted\nas accurate reports.\n    The evidences of the prophethood of Muhammad\n(SAW) fall into two main categories:  \n\n    The first is called irhasat and includes the paranormal \nevents that happened at the time of his birth, or before his \ndeclaration of prophethood.  \n\n    The second group pertains to all the remaining evidences \nof the prophethood, and contains two subdivisions: \n\n    1) Those wonders that were manifested after\nhis departure from this world in order to confirm his\nprophethood, and \n\t2) Those that he exhibited during the era\nof his prophethood.  The latter has also two parts:  \n\t2.1) The evidences of his prophethood that became manifest\nin his own personality, his inner and outer being, his moral\nconduct and perfection, and \n    2.2) The miracles that: related to substantial matters.  \nThe last part again has two branches:  \n\t2.2.1) Those concerning the Qur'an and spirituality, and \n\t2.2.2) Those relating to matter and creation.  This last \nbranch is again divided into two categories:  \n\t2.2.2.1) The first involves the paranormal happenings \nthat occured during his mission either to break the \nstubbornness of the unbelievers, or to augment the\nfaith of the belivers.  This category has twenty different\nsorts, such as the splitting of the moon, the flowing of\nwater from the fingers, the satisfying of large numbers with\na little food, and the speaking of trees, rocks and animals\nEach of these sons has also many instances, and thus\nhas, in meaning, the strength of confirmation by\nconsensus.  \n\t2.2.2.2)  As for the second category, this\nincludes events lying in the future that occured as he had\npredicted upon Allah (SWT)'s instructions.  Now starting\nfrom the last category, we will summarize a list of them.(1)\n\n(1) Unfonunately, I could not write as I had intended\nwithout choice, I wrote as my head dictated, and I could\nnot completely conform to the order of this classification.\n\n-----------------------------------------------------------------\nTo be Continued Allah Willing.\nIrfan Alan, A Servant of Islam.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7556, "properties": {"category": "talk.religion.misc", "text": "From: markp@elvis.wri.com (Mark Pundurs)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nNntp-Posting-Host: elvis.wri.com\nOrganization: Wolfram Research, Inc.\nLines: 22\n\nIn <30136@ursa.bear.com> halat@pooh.bears (Jim Halat) writes:\n\n>In article <1qjd3o$nlv@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n>>Firstly, science has its basis in values, not the other way round.\n>>So you better explain what objective atoms are, and how we get them\n>>from subjective values, before we go any further.\n\n\n>Atoms are not objective.  They aren't even real.  What scientists call\n>an atom is nothing more than a mathematical model that describes \n>certain physical, observable properties of our surroundings.  All\n>of which is subjective.  \n\nOmigod, it's an operationalist! Sorry, Jim, but the idea that a theory\nexplaining a myriad of distinctly different observations is merely a\n\"model\" is more than sensible people can accept -- your phobia about\nobjective reality notwithstanding.\n--\nMark Pundurs\n\nany resemblance between my opinions and those \nof Wolfram Research, Inc. is purely coincidental\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7557, "properties": {"category": "misc.forsale", "text": "From: tae0460@zeus.tamu.edu (ANDREW)\nSubject: COMPLETE 386 SYSTEM FOR SALE\nOrganization: Texas A&M University, Academic Computing Services\nLines: 34\nDistribution: world\nNNTP-Posting-Host: zeus.tamu.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\n  386DX 25Mhz   (DTK motherboard  Intel microprocessor)\n  128k internal cache\n  4 megs Ram\n  89 meg Harddrive    (IDE controller)\n  1.2 meg floppy drive\n  1.44 meg floppy drive\n  2 serial ports\n  1 parallel port\n  Samsung VGA monitor\n  VGA graphics card\n  101 key keyboard\n  2400 baud internal modem\n\n  MS-DOS 6.0\n  Procomm Plus  ver. 2.0\n  Norton Utilities  ver. 4.5\n  other varius utilities\n\nI'm upgrading and need to sell.  The system is reliable and ready to go.\nI've never had any problems with it.\n\nI'm asking  $1050 o.b.o.\n\nIf you're interested, please respond by either E-mail or phone.\n\nTAE0460@zeus.tamu.edu\nor\n409-696-6043\n\nThanks,\nAndrew\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7558, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 06/10 - Public Key Cryptography\nOrganization: The Crypt Cabal\nLines: 108\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 6 of 10 of the sci.crypt FAQ, Public Key Cryptography.\n Basics of public-key cryptography. The RSA version, its security, \n speed of factoring. Other approaches.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part06\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 6: Public-Key Cryptography\n\nThis is the sixth of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read the first part before the rest.\nWe don't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in the last part.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers \nevery 21 days.\n\n\nContents:\n\n* What is public-key cryptography?\n* What's RSA?\n* Is RSA secure?\n* How fast can people factor numbers?\n* What about other public-key cryptosystems?\n\n\n* What is public-key cryptography?\n\n  In a classic cryptosystem, we have encryption functions E_K and\n  decryption functions D_K such that D_K(E_K(P)) = P for any plaintext\n  P. In a public-key cryptosystem, E_K can be easily computed from some\n  ``public key'' X which in turn is computed from K. X is published, so\n  that anyone can encrypt messages. If D_K cannot be easily computed\n  from X, then only the person who generated K can decrypt messages.\n  That's the essence of public-key cryptography, published by Diffie\n  and Hellman in 1976.\n\n  In a classic cryptosystem, if you want your friends to be able to\n  send secret messages to you, you have to make sure nobody other than\n  them sees the key K. In a public-key cryptosystem, you just publish X,\n  and you don't have to worry about spies.\n\n  This is only the beginning of public-key cryptography. There is an\n  extensive literature on security models for public-key cryptography,\n  applications of public-key cryptography, other applications of the\n  mathematical technology behind public-key cryptography, and so on.\n\n* What's RSA?\n\n  RSA is a public-key cryptosystem defined by Rivest, Shamir, and\n  Adleman.  For full details, there is a FAQ available by ftp at\n  RSA.COM. Here's a small example.\n\n  Plaintexts are positive integers up to 2^{512}. Keys are quadruples\n  (p,q,e,d), with p a 256-bit prime number, q a 258-bit prime number,\n  and d and e large numbers with (de - 1) divisible by (p-1)(q-1). We\n  define E_K(P) = P^e mod pq, D_K(C) = C^d mod pq.\n\n  Now E_K is easily computed from the pair (pq,e)---but, as far as\n  anyone knows, there is no easy way to compute D_K from the pair\n  (pq,e). So whoever generates K can publish (pq,e). Anyone can send a\n  secret message to him; he is the only one who can read the messages.\n\n* Is RSA secure?\n\n  Nobody knows. An obvious attack on RSA is to factor pq into p and q.\n  See below for comments on how fast state-of-the-art factorization\n  algorithms run. Unfortunately nobody has the slightest idea how to\n  prove that factorization---or any realistic problem at all, for that\n  matter---is inherently slow. It is easy to formalize what we mean by\n  ``RSA is/isn't strong''; but, as Hendrik W. Lenstra, Jr., says,\n  ``Exact definitions appear to be necessary only when one wishes to\n  prove that algorithms with certain properties do _not_ exist, and\n  theoretical computer science is notoriously lacking in such negative\n  results.''\n\n* How fast can people factor numbers?\n\n  It depends on the size of the numbers. In October 1992 Arjen Lenstra\n  and Dan Bernstein factored 2^523 - 1 into primes, using about three\n  weeks of MasPar time. (The MasPar is a 16384-processor SIMD machine;\n  each processor can add about 200000 integers per second.) The\n  algorithm there is called the ``number field sieve''; it is quite a\n  bit faster for special numbers like 2^523 - 1 than for general numbers\n  n, but it takes time only about exp(O(log^{1/3} n log^{2/3} log n)) in\n  any case.\n\n  An older and more popular method for smaller numbers is the ``multiple\n  polynomial quadratic sieve'', which takes time exp(O(log^{1/2} n\n  log^{1/2} log n))---faster than the number field sieve for small n,\n  but slower for large n. The breakeven point is somewhere between 100\n  and 150 digits, depending on the implementations.\n\n  Factorization is a fast-moving field---the state of the art just a few\n  years ago was nowhere near as good as it is now. If no new methods are\n  developed, then 2048-bit RSA keys will always be safe from\n  factorization, but one can't predict the future. (Before the number\n  field sieve was found, many people conjectured that the quadratic\n  sieve was asymptotically as fast as any factoring method could be.)\n\n* What about other public-key cryptosystems?\n\n  We've talked about RSA because it's well known and easy to describe.\n  But there are lots of other public-key systems around, many of which\n  are faster than RSA or depend on problems more widely believed to be\n  difficult. This has been just a brief introduction; if you really want\n  to learn about the many facets of public-key cryptography, consult the\n  books and journal articles listed in part 10.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7559, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lreiter@jade.tufts.edu (Lowell B. Reiter)\nSubject: Re: Duo 230 crashes aftersleep (looks like Apple bug!)\nLines: 23\nOrganization: Tufts University - Medford, MA\n\nMysstem crashes aftwer sleepp.  I use 1.0.1 enabler. I use appletalk and \nfilesharing. I have and ExpressModem.\n\n--Lowell\n--\n***********************************************************************\n* Lowell Reiter\t\t\t  \"I need a Vacation... Now!!! \"      *\n* Tufts University                                                    *\n* Internet Account: lreiter@jade.tufts.edu                            *\n***********************************************************************\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7560, "properties": {"category": "sci.electronics", "text": "From: kludge@grissom.larc.nasa.gov (Scott Dorsey)\nSubject: Re: History question\nOrganization: NASA Langley Research Center and Reptile Farm\nLines: 16\nNNTP-Posting-Host: grissom.larc.nasa.gov\n\nIn article <2775@snap> paj@uk.co.gec-mrc (Paul Johnson) writes:\n>\n>I recall reading of a phonograph which used mechanical amplification.\n>Compressed air was squirted out of a valve which was controlled by the\n>pickup.  The result was noisy and distinctly lo-fi, but much louder\n>than a conventional phonograph.  It tended to wear the disks out\n>pretty quickly though.\n\nThis was the Pathe you are thinking of, although there were other imitators.\nIt didn't wear the disks any more than conventional acoustic designs, but\nit did have a high noise level due to the continual hiss of escaping air.\nThere are a lot of them still operating, and they are pretty ingenious.\n\nThere was a pneumatic amplifier designed by Alexander Graham Bell, as well,\nbut I don't know if it was ever constructed.\n--scott\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7561, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gedwards@ncratl.AtlantaGA.NCR.COM (Gordon Edwards)\nSubject: Re: protection fault\nKeywords: fault\nOrganization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA\nDistribution: na\nLines: 40\n\nIn <thia.735836016@mira.sce.carleton.ca> thia@sce.carleton.ca (Yong Thia) writes:\n>Hi! I was wondering if anyone out there could help me.\n>I have an error message that goes:\n>\n>\n>\n>What does it mean?\n>\n>I am running MS windows 3.1.\n\nUmmm.. I think you left the message out...\n\nI get these protection faults all the time on my machine at work, a\n486 33MHz with 4MB RAM, Windows 3.1, with Dos 5.0.  \n\nAt home (on a 386 40MHz, 8MB RAM, Windows 3.1 and Dos 5.0) I *never* get\nthese.  \n\nAny idea what could be wrong?  Someone already suggested I check for tmp\nfiles in the windows/temp directory, there are none there.\n\nThe message I get is:\n\n\tThis application has violated system integrity due to an invalid\n\tgeneral protection fault and will be terminated.\n\nI only have this problem with applications running in DOS boxes (with or\nwithout .pif files setup for them).\n\nAny hints/help greatly appreciated.  Please post since at least one other\nperson is also having gpf problems.\n\nThanks,\n    Gordon\n\n-- \n=============================================================================\nGordon Edwards, N4VPH              |         \"Nothing Unreal Exists\"\nNCR Engineering & Manufacturing    |\ngedwards@ncratl.atlantaga.ncr.com  |  Kiri-Kin-Tha's First Law of Metaphysics\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.357+0000", "event": "documents", "entityId": 7562, "properties": {"category": "alt.atheism", "text": "From: bobs@thnext.mit.edu (Robert Singleton)\nSubject: Re: Americans and Evolution\nOrganization: Massachvsetts Institvte of Technology\nLines: 138\nDistribution: world\nNNTP-Posting-Host: thnext.mit.edu\n\nIn article <16BA8C4AC.I3150101@dbstu1.rz.tu-bs.de>  \nI3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n> In article <1pq47tINN8lp@senator-bedfellow.MIT.EDU>\n> bobs@thnext.mit.edu (Robert Singleton) writes:\n>  \n> (Deletion)\n> >\n> >I will argue that your latter statement, \"I believe that no gods exist\"\n> >does rest upon faith - that is, if you are making a POSITIVE statement\n> >that \"no gods exist\" (strong atheism) rather than merely saying I don't\n> >know and therefore don't believe in them and don't NOT believe in then\n> >(weak atheism). Once again, to not believe in God is different than\n> >saying I BELIEVE that God does not exist. I still maintain the \n> >position, even after reading the FAQs, that strong atheism requires \n> >faith.\n> >\n>  \n> No it in the way it is usually used. In my view, you are saying here \n> that driving a car requires faith that the car drives.\n>  \n\nI'm not saying this at all - it requires no faith on my part to\nsay the car drives because I've seen it drive - I've done more\nthan at in fact - I've actually driven it. (now what does require\nsome faith is the belief that my senses give an accurate representation\nof what's out there....) But there is NO evidence - pro or con -\nfor the existence or non-existence of God (see what I have to\nsay below on this).\n\n> For me it is a conclusion, and I have no more faith in it than I \n> have in the premises and the argument used.\n>  \n\nSorry if I remain skeptical - I don't believe it's entirely a\nconclusion. That you have seen no evidence that there IS a God\nis correct - neither have I. But lack of evidence for the existence \nof something is in NO WAY evidence for the non-existence of something \n(the creationist have a similar mode of argumentation in which if they \ndisprove evolution the establish creation). You (personally) have never \nseen a neutrino before, but they exist. The \"pink unicorn\" analogy breaks\ndown and is rather naive. I have a scientific theory that explains the \nappearance of animal life - evolution. When I draw the conclusion that \n\"pink unicorns\" don't exist because I haven't seen them, this conclusion\nhas it's foundation in observation and theory. A \"pink unicorn\", if\nit did exist, would be qualitatively similar to other known entities.\nThat is to say, since there is good evidence that all life on earth has\nevolved from \"more primitive\" ancestors these pink unicorns would share \na common anscestory with horses and zebras and such. God, however,\nhas no such correspondence with anything (IMO). There is no physical\nframe work of observation to draw ANY conclusions FROM. \n\n\n\n> >But first let me say the following.\n> >We might have a language problem here - in regards to \"faith\" and\n> >\"existence\". I, as a Christian, maintain that God does not exist.\n> >To exist means to have being in space and time. God does not HAVE\n> >being - God IS Being. Kierkegaard once said that God does not\n> >exist, He is eternal. With this said, I feel it's rather pointless\n> >to debate the so called \"existence\" of God - and that is not what\n> >I'm doing here. I believe that God is the source and ground of\n> >being. When you say that \"god does not exist\", I also accept this\n> >statement - but we obviously mean two different things by it. However,\n> >in what follows I will use the phrase \"the existence of God\" in it's\n> >'usual sense' - and this is the sense that I think you are using it.\n> >I would like a clarification upon what you mean by \"the existence of\n> >God\".\n> >\n>  \n> No, that's a word game. \n\nI disagree with you profoundly on this. I haven't defined God as\nexistence - in fact, I haven't defined God. But this might be\ngetting off the subject - although if you think it's relevant\nwe can come back to it. \n\n>  \n> Further, saying god is existence is either a waste of time, existence is\n> already used and there is no need to replace it by god, or you are \n> implying more with it, in which case your definition and your argument \n> so far are incomplete, making it a fallacy.\n>  \n\nYou are using wrong categories here - or perhaps you misunderstand\nwhat I'm saying. I'm making no argument what so ever and offering no\ndefinition so there is no fallacy. I'm not trying to convince you of\nanything. *I* Believe - and that rests upon Faith. And it is inappropriate\nto apply the category of logic in this realm (unless someone tells you\nthat they can logically prove God or that they have \"evidence\" or ...,\nthen the use of logic to disprove their claims if fine and necessary).\n\nBTW, an incomplete argument is not a fallacy - some things are not\nEVEN wrong. \n\n>  \n> (Deletion)\n> >One can never prove that God does or does not exist. When you say\n> >that you believe God does not exist, and that this is an opinion\n> >\"based upon observation\", I will have to ask \"what observtions are\n> >you refering to?\" There are NO observations - pro or con - that\n> >are valid here in establishing a POSITIVE belief.\n> (Deletion)\n>  \n> Where does that follow? Aren't observations based on the assumption\n> that something exists?\n>  \n\nI don't follow you here. Certainly one can make observations of\nthings that they didn't know existed. I still maintain that one\ncannot use observation to infer that \"God does not exist\". Such\na positive assertion requires a leap.  \n\n\n\n> And wouldn't you say there is a level of definition that the assumption\n> \"god is\" is meaningful. If not, I would reject that concept anyway.\n>  \n> So, where is your evidence for that \"god is\" is meaningful at some \n> level?\n\nOnce again you seem to completely misunderstand me. I have no\nEVIDENCE that \"'god is' is meaningful\" at ANY level. Maybe such\na response as you gave just comes naturally to you because so\nmany people try to run their own private conception of God down\nyour throat. I, however, am not doing this. I am arguing one, and\nonly one, thing - that to make a positive assertion about something\nfor which there can in principle be no evidence for or against\nrequires a leap - it requires faith. I am, as you would say, a\n\"theist\"; however, there is a form of atheism that I can respect -\nbut it must be founded upon honesty. \n\n\n\n>    Benedikt\n\n--\nbob singleton\nbobs@thnext.mit.edu\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7563, "properties": {"category": "talk.politics.misc", "text": "From: kaldis@romulus.rutgers.edu (Theodore A. Kaldis)\nSubject: Re: Is LA burning yet?\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 18\n\nIn article <4892@master.CNA.TEK.COM> mikeq@freddy.CNA.TEK.COM writes:\n\n> I hear the jury reached a verdict.\n\nWhere did you hear this?  I seem to have missed it.\n\n> Is LA burning yet?\n\nNo.  Will L.A. burn?  No.  (Regardless of the verdict.)\n\n> I'm not near a radio.\n\nCount your blessings.\n-- \n  The views expressed herein are   |  Theodore A. Kaldis\n  my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n  believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n  as this would hold such views??? |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7564, "properties": {"category": "talk.politics.misc", "text": "From: gmw0622@venus.tamu.edu (Mr. Grinch)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nOrganization: GrinchCo\nLines: 52\nDistribution: world\nNNTP-Posting-Host: venus.tamu.edu\nSummary: Limited governments versus failed governments\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr18.172531.10946@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes...\n> \n:Of course, one again faces the question of how one circumscribes government\n:power (and keeps it circumscribed) in a complex society when it is in the \n:interest of neither capitalists nor consumers to refrain from using \n:government power for their own ends.  But apart from that little \n:conundrum...\n> \n\tWithout having a complete answer to this question,  I should think\nit obvious that the first step should be to convince people this would be\na desirable result.  There are still quite a lot of people who feel that\nthe command economies of eastern Europe failed due to corruption rather than\nessential weaknesses of caommand economies,  and you still have a majority\nin this nation that favors keeping unenforced and unenforcible laws on\nthe books in order to \"send a signal\".\n\n\n:It would seem that a society with a \"failed\" government would be an ideal\n:setting for libertarian ideals to be implemented.  Now why do you suppose\n:that never seems to occur?...\n\n\nI fail to see why you should feel this way in the first place.  Constant\ncombat isn't particularly conducive to intellectual theorizing.  Also,\nthey tend to get invaded before they can come to anything like a stable\nsociety anyway. \n\n\n>>...\"regulation\" is such a vauge word...  \n> \n:I wouldn't call it \"vague.\"  I'd call it elastic.  All \"regulation\" is \n:not necessarily the same.  By opposing all government regulation, some \n:libertarians treat every system from a command economy to those that\n:regulate relatively free markets as identical.  That's one reason\n:many of the rest of us find their analysis to be simplistic. \n> \n\nUmm, is there any distinction between \"vague\" and \"elastic\" in this\ncontext aside from one having a more positive connotation than the other?\n\nAt any rate,  we've been through all this before.\n\n:Steve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n:\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n: the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n\n\nIncidentally,  this is a libertarian newsgroup,  you can get away with\nsaying,  \"bullshit\" here.   You're welcome,\n\n\nMr. Grinch\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7565, "properties": {"category": "comp.windows.x", "text": "From: thomas@aeon.in-berlin.de (Thomas Wolfram)\nSubject: Re: Title for XTerm\nKeywords: XTerm\nOrganization: Cities in Dust\nLines: 37\n\nIn <1993Apr17.170907.25718@samba.oit.unc.edu> naoumov@physics.unc.edu (Sergei Naoumov) writes:\n\n>Hey guys!\n>I work on many stations and would like this name and current logname\n>to be in a title of Xterm when it's open and a machine name only\n>when it's closed. In other words, I want $HOST and $LOGNAME to appear\n>as a title of opened XTerm and $HOST when XTerm is closed.\n>How can I do it?\n\n>Thnsks in advance,\n>\tSerge\n>\tserge@gluttony.astro.unc.edu\n\nAlmost all window managers (twm, mwm, olwm and their derivates) support\nescape sequences for it. For your purpose put following into your\n.login (if you're using csh or tcsh), for sh you have to modify it.\n\nif ( \"$term\" == \"xterm\" ) then\n\techo \"^[]2;${LOGNAME}@${HOST}^G^[]1;${HOST}^G\"\nendif\n\nNote, ^[ stands for <Esc>, in vi you can enter it by pressing\nCtrl-V and the <Esc>. Same for ^G, it means Ctrl-G. In vi:\npress Ctrl-V and then Ctrl-G.\nThe first sequence puts the string into the title bar the second\nin the icon.\n\nBTW, you can also put the current working directory in the\ntitle bar if you make an alias for cd:\n\nalias cd 'cd \\!* ; echo \"^[]2;${LOGNAME}@${HOST}: ${cwd}^G\"'\n\ngreetings,\nThomas\n-- \nThomas Wolfram, thomas@aeon.in-berlin.de\nEANTC, TU Berlin, wolf@prz.tu-berlin.de, +49 030 31421294\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7566, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Postscript File Viewer?\nFrom: bmartin@bbs.ug.eds.com\nOrganization: EDS CANADA\nNntp-Posting-Host: bbs\nNntp-Posting-User: bmartin\nLines: 7\n\nA co-worker of mine needs to convert a postscript file to a form readable\n(ie ascii) in windows or DOS. Does anybody know of a utility that will do\nthis? I have a vague memory of a shareware utility someone mentioned once...\n\nThanks for any info,\n\nBarry.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7567, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: m88max@tdb.uu.se (Max Brante)\nSubject: Atari Mono and VGA\nOrganization: Department of Scientific Computing, Uppsala University\nLines: 12\n\nHave anybody succeded in converting a atari monomchrome monitor into a\nmono VGA monitor. If so please let me know exactly how you did and what\ngraphics card you used.\n\n\t/Thanx\n\n      __   __         _  _               \n     l  \\ /  l  ___  ( \\/ )          Max Brante   m88max@tdb.uu.se\n     l l l l l / _ \\  \\  /         \n     l l\\_/l l( (_) l /  \\\tInstitutionen f|r teknisk databehandling\n     l_l   l_l \\__l_l(_/\\_)               Uppsala Universitet  \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7568, "properties": {"category": "rec.motorcycles", "text": "From: robinson@cogsci.Berkeley.EDU (Michael Robinson)\nSubject: Passenger helmet sizing\nOrganization: Institute of Cognitive Studies, U.C. Berkeley\nLines: 32\nNNTP-Posting-Host: cogsci.berkeley.edu\n\nIn article <1qk5oi$d0i@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n>In article 211353@mavenry.altcit.eskimo.com, maven@mavenry.altcit.eskimo.com (Norman Hamer) writes:\n>> \n>> The question for the day is re: passenger helmets, if you don't know for \n>>certain who's gonna ride with you (like say you meet them at a .... church \n>>meeting, yeah, that's the ticket)... What are some guidelines? Should I just \n>>pick up another shoei in my size to have a backup helmet (XL), or should I \n>>maybe get an inexpensive one of a smaller size to accomodate my likely \n>>passenger? \n>\n>If your primary concern is protecting the passenger in the event of a\n>crash, have him or her fitted for a helmet that is their size.  If your\n>primary concern is complying with stupid helmet laws, carry a real big\n>spare (you can put a big or small head in a big helmet, but not in a\n>small one).\n\nWhile shopping for a passenger helmet, I noticed that in many cases the\nexternal dimensions of the helmets were the same from S through XL.  The\ndifference was the amount of inside padding.\n\nMy solution was to buy a large helmet, and construct a removable liner \nfrom a sheet of .5\" closed-cell foam and some satin (glued to the inside\nsurface).  The result is a reasonably snug fit on my smallest-headed pillion\nwith the liner in, and a comfortable fit on my largest-headed pillion with\nthe liner out.  Everyone else gets linered or not by best fit.\n\n\n\n-- \n  ----------------------------------------------------------------------------\n  Michael Robinson                          UUCP:   ucbvax!cogsci!robinson\n                                        INTERNET: robinson@cogsci.berkeley.edu\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7569, "properties": {"category": "rec.motorcycles", "text": "From: joe@rider.cactus.org (Joe Senner)\nSubject: Re: BMW MOA members read this!\nReply-To: joe@rider.cactus.org\nDistribution: usa\nOrganization: NOT\nLines: 27\n\nkarr@cs.cornell.edu (David Karr) writes:\n]\"Get the organization to act on it\" is easy to say, but says little\n]about what one really can and should do.  What the organization\n]actually will do is largely determined by the president and directors,\n]as far as I can see.  That's what makes it so important to vote in an\n]election of officers.\n\nif I remember right, I heard that in the last election, only 18% of the\nmembers actually cast votes. I wonder if the current board and their\nfriends and relatives make up 18% of the membership :-) :-)  I certainly\nplan on staying with the club long enough to vote and to see the results.\n\n]It does strike me that the BMWMOA is a lot less politically active (in\n]the state and national arenas, not infighting) than other M/C\n]organizations.  Should we change this?  Or just join the other groups\n]that already are in politics?\n\nI wouldn't support the MOA becoming politically active in that sense.\nthe AMA already knows how to do that and I'd rather see the MOA support\nthe AMA in a manner that the *AMA* needs. I think that more could be\naccomplished from one strong front rather than two not neccessarily \ncoordinated ones.\n\n-- \nJoe Senner                                                joe@rider.cactus.org\nAustin Area Ride Mailing List                            ride@rider.cactus.org\nTexas SplatterFest Mailing List                          fest@rider.cactus.org\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7570, "properties": {"category": "talk.politics.misc", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: Swimming pool defense\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 17\n\nIn article <dasmith.734719640@husc.harvard.edu> dasmith@husc8.harvard.edu (David Smith) writes:\n>Granted, the simple fact of holding down a job will improve these kids' chances\n>of getting another job in the future, but what inner city kid would want to hold\n>down just one more minimum wage job when there is so much more money to be made\n>dealing drugs?  \n\nWhat suburban kid would want to hold down a minimum wage job when there is so\nmuch more money to be made dealing drugs?\n\nYet, somehow, surburban kids do hold down minimum wage jobs.  So do inner\ncity kids, when give the chance.  Any reason you think that inner city kids\nare incapable of doing legitimate work?\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7571, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rajiev@cfmu.eurocontrol.be (Rajiev Gupta)\nSubject: Re: Windows NT FAQ?\nNntp-Posting-Host: shelduck\nOrganization: Eurocontrol - Central Flow Management Unit\nLines: 26\n\nIn article <C5DHtF.D7p@news.rich.bnr.ca> gal@bnr.ca (Gene Lavergne) writes:\n>I really gives me pause to ask this:\n>\n>When I first heard of Windows-NT I was surprised by the name because\n>it immediately occurred to me that it sounds like a Northern Telecom\n>product.  Did anyone else notice that?\n>\n>By the way, BNR (see address below) is an R&D subsidiary of NT.  See\n>what I mean?\n>\n>| gal@bnr.ca (Gene A. Lavergne) | In all of opera, I most identify |\n>| ESN 444-4842 / (214) 684-4842 | with the character of Elektra.   |\n>| PO Box 851986, Richardson, TX | That often worries me.           |\n>| USA 75085-1986 | Opinions expressed here are mine and not BNR's. |\n\nWindows NT or WNT can also be derived by the next letter in the alphabet\nof VMS - same as HAL and IBM. You might recall that the chief architect\nof VMS is also chief designer of WNT.\n\nRajiev Gupta\n\n-- \nRajiev GUPTA\t\t\tEurocontrol - CFMU\tDisclaimer:\nrajiev@cfmu.eurocontrol.be\tRue de la Loi 72\tThese are *my* views,\nTel: +32 2 729 33 12            B-1040 BRUXELLES\tnot my companies.\nFax: +32 2 729 32 16            Belgium\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7572, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: islamic authority over women\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 37\n\nBenedikt Rosenau (I3150101@dbstu1.rz.tu-bs.de) wrote:\n\n: When the object of their belief is said to be perfect and make the believers\n: act in a certain way and we observe that they don't, we have a contradiction.\n: Something defined contradictorily cannot exist. That what the believe in does\n: not exist. Secondly, there are better explanations for why they believe than\n: the existence of the object of their belief.\n:  \n:  \n: Have you read the FAQ already?\n:    Benedikt\n\nBenedikt,\n\nI can't recall anyone claiming that God -makes- anyone act a particlar\nway, I think that you're attempting to manufacture a contradiction.\nGod is said to require certain behavior, but the only compulsion is\nthe believer's sense of duty. A standard of conduct does exist, but we\nare free to ignore it or misunderstand it or distort it in whatever\nways we find convenient, but our response to God's edicts can in no\nway be used to question God's existence. The behavior of believers is\na completely separate question from that of God's existence; there is\nnothing contradictory here.\n\nTo say that something defined contadictorily cannot exist, is really\nasking too much; you would have existence depend on grammar. All you\ncan really say is that something is poorly defined, but that in itself\nis insufficient to decide anything (other than confusion of course).\n\nYour point that there are better reasons for the phenomenon of belief\nthan the object of belief may lead to a rat's nest of unnecessary\ncomplexity. I think I know what you're implying, but I'd like to see\nyour version of this better alternative just the same.\n\nBill\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.358+0000", "event": "documents", "entityId": 7573, "properties": {"category": "rec.autos", "text": "From: dougs@Ingres.COM (DOUG SCHNEYMAN)\nSubject: My two cars - Chevy Nova CL ('87) and Dodge 600 SE ('87)\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nKeywords: Chevy Nova Dodge 600SE\nOrganization: ASK Computer Systems, Ingres Product Division\nLines: 29\n\nAs you can see, I have two 1987 cars, both worth about $3000 each.\nThe problem is that maintenance costs on these two cars is\nrunning about $4000 per year and insurance $3000 per year.\n\nWhat am I doing wrong?\n\nWithin the last two months, the follows costs have occured:\n\nDodge 600 SE (Dodge's attempt at the American German car!)\n\n$1,000 - replace head gasket\n$300   - new radiator\n\nChevy Nova CL (Chevy's attempt at a Japan import!)\n\n$500 - tune-up,oil change,valve gasket,middle exhaust pipe, misc.\n\nNote also that the Chevy Nova CL (1987) has only 70 horsepwer!\nDoes anyone out there have a Chevy Nova with enough power\nto get up even a small hill without knocking? Is there\nsomething wrong with my car, I even use 93 octane gas!\n(I have consider going to 110 octane if I can find it!)\n\nAnyway, what are the best maintenance items to do-it-yourself,\nand what equipment is needed? \n\n            Thanks,\n            -Doug (2 car Doug from Wayne,NJ)\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7574, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: \"Imaginary\" Friends - Dragons & Mice\nFrom: martini@ccwf.cc.utexas.edu (Sheilagh M.B.E. O'Hare)\nOrganization: The University of Texas at Austin, Austin, Texas\nNNTP-Posting-Host: tigger.cc.utexas.edu\nLines: 17\n\nHe sounds really cute, Morte!  Kinds like _pete's dragon_, maybe smaller,\nmaybe a different species.. winge'd?  (shakespear wing-ED)\n\nI've always hat a horde of mice to turn to for fun & sort of that kind of\nmouse in Cinderella (walt disney).  I grew up sort of as an only child,\npart time.. my siblings were 10-8-6 years older than me, so i was pretty\ncommonly a different sort of charater in their games (read: non speaking\nhot cocoa-goffer, stand in (still silent) bad guy/good guy/etc), so my\nmice were playmates, more than advisors.\n\nCould curt, or whomever has a good list of books please post such list,\nin all sorts of fields, like jungian, condensed buddist/etc philosophies,\nmultiple personailty disorders, or good fiction that has well worked\nimaginary friends?\n\nthanks,\nsheilagh, wanting a bunch of library catalouge topics to search thru\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7575, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: Easter: what's in a name? (was Re: New Testament Double Standard?\nOrganization: Kulikauskas home\nLines: 22\n\nseanna@bnr.ca (Seanna (S.M.) Watson) writes:\n\n> In Quebec French, the word for the celebration of the resurrection is\n> \"Pa^ques\"--this is etymologically related to Pesach (Passover) and the\n> pascal lamb.  So is the French Canadian (mostly Roman Catholic) celebration\n> better because it uses the right name?\n\nI was at my parents' Seder and noticed the labelling on one of the \npackages was English, Hebrew and French.  In the phrase \"kosher for \npassover\" the French word used was \"Pa^ques.\"   We've deliberately \nmistranslated this at the Kulikauskas home and keep referring to foods \nbeing kosher for Easter. :-)\n\nBack to the original questions in this thread concerning Christians of \nJewish descent and the Law:  I always wonder when I see posts on this \nsubject whether the writers are Christians of Jewish descent relating \nthe life-decisions God has led them to or people who take only an \nacademic interest in the topic.  (Having known Seanna since she was nine \nyears old, I do know in this case.)  I admit that the answer to this \nquestion affects the amount of weight I give to the writer's statement.\n\nJayne Kulikauskas/ jayne@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7576, "properties": {"category": "rec.sport.baseball", "text": "From: dougb@comm.mot.com (Doug Bank)\nSubject: Re: Info needed for Cleveland tickets\nReply-To: dougb@ecs.comm.mot.com\nOrganization: Motorola Land Mobile Products Sector\nDistribution: usa\nNntp-Posting-Host: 145.1.146.35\nLines: 17\n\nIn article <1993Apr1.234031.4950@leland.Stanford.EDU>, bohnert@leland.Stanford.EDU (matthew bohnert) writes:\n\n|> I'm going to be in Cleveland Thursday, April 15 to Sunday, April 18.\n|> Does anybody know if the Tribe will be in town on those dates, and\n|> if so, who're they playing and if tickets are available?\n\nThe tribe will be in town from April 16 to the 19th.\nThere are ALWAYS tickets available! (Though they are playing Toronto,\nand many Toronto fans make the trip to Cleveland as it is easier to\nget tickets in Cleveland than in Toronto.  Either way, I seriously\ndoubt they will sell out until the end of the season.)\n\n-- \nDoug Bank                       Private Systems Division\ndougb@ecs.comm.mot.com          Motorola Communications Sector\ndougb@nwu.edu                   Schaumburg, Illinois\ndougb@casbah.acns.nwu.edu       708-576-8207                    \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7577, "properties": {"category": "sci.crypt", "text": "From: johnl@iecc.cambridge.ma.us (John R. Levine)\nSubject: Why the clipper algorithm is secret\nOrganization: I.E.C.C.\nLines: 21\n\n>The cryptographic protocol, though, is another matter.  I see no valid\n>reasons for keeping it secret, and -- as I hope I've shown above -- there\n>are a lot of ways to do things that aren't (quite) as bad.\n\nIt just occurred to me why the algorithm is secret.  If it were\npublished, one could then build physically identical clone versions\nof the chip that would interoperate with official Clipper chips.  But\nthe cloner wouldn't provide the keys to the escrow houses.  Hmmn.\n\nOr is there a technical hack that I've missed?  E.g. how about if the\nchips were made unprogrammed but serialized, and then shipped to the\ntwo escrow houses who programmed in their halves of the keys, but\nin a way that requires that secret keys known only to the escrow houses\nbe installed as well, without which clone versions wouldn't\ninteroperate?  This is getting awfully complicated, but that's\ncrypto for you.\n\n-- \nJohn R. Levine, IECC, POB 349, Cambridge MA 02238, +1 617 492 3869\njohnl@iecc.cambridge.ma.us, {ima|spdcc|world}!iecc!johnl\n\"Time is Money!  Steal some today!\"\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7578, "properties": {"category": "comp.windows.x", "text": "From: schneck@Physik.TU-Muenchen.DE (Bernhard Schneck)\nSubject: Re: Trouble compiling X11R5 on SunOS_4.1.3\nOrganization: Leibniz-Rechenzentrum, Muenchen (Germany)\nLines: 14\n\nnemo@aguirre.dia.fi.upm.es (Francisco J. Ballesteros) writes:\n\n>>   \t   The problem occurs during the initial \"make World\".  When\n>>      it gets up to compiling the standard X clients, it can't seem to find\n>>      some of the libraries.  Right now we highly suspect the program \"ld\"\n>>      which was updated for 4_1_3.\n>>   \n\n>    Yip, we had the same problem; the only fix we found was to link static\n>some of the clients, ( btw, we used cc). :-(.\n\nOr use a SunOS 4.1.1 ld.\n\n\\Bernhard.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7579, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Partnership for an America Free Drug\nDistribution: na\nLines: 104\n\nrlward1@afterlife.ncsc.mil (Robert Ward) writes:\n>In article <bontchev.734981805@fbihh> bontchev@fbihh.informatik.uni-hamburg.de writes:\n>>and since the US constitutions guarantees the right to every American\n>>to bear arms, why is not every American entitled, as a matter of\n>\n>Have you read the applicable part of the Constitution and interpreted it IN \n>CONTEXT?  If not, please do so before posting this misinterpretation again.\n>It refers to the right of the people to organize a militia, not for individuals \n>to carry handguns, grenades, and assault rifles.  \n\nThe Supreme Court seems to disagree with you -- they have stated that\n\"the people\" is a term of art refering to an individual right, and\nhave explicitly mentioned the second amendment as an example.\n\nI quote:\n\n  \"... 'the people' seems to have been a term of art employed in\n  select parts of the Constitution.  The Preamble declares that the\n  Constitution is ordained, and established by 'the people of the\n  the U.S.'  The Second Amendment protects the right of the people\n  to keep and bear Arms ....\"\n\t- Supreme Court of the U.S.,  U.S. v. Uerdugo-Uriquidez (1990).\n\nFurthermore, in the Miller decision, they only permitted prosecution\nfor possession of a sawed-off shotgun because the defense had not\npresented testimony and they therefore accepted the argument of the\ngovernment that such weapons have no military value -- they held that\nthe amendment protected the individual right to possess military\nweapons. Unfortunately, no second amendment case has successfully\ngotten to the court in fifty years. However, that does not change the\ninterpretation.\n\nFurthermore, it appears that others disagree with you as well, vis:\n\n \"The conclusion is thus inescapable that the history, concept,\n  and wording of the Second Amendment to the Constitution of the\n  United States, as well as its interpretation by every major\n  commentator and court in the first half-century after its ratifi-\n  cation, indicates that what is protected is an individual right\n  of a private citizen to own and carry firearms in a peaceful manner.\"\n   - Report of the Subcommittee on the Constitution of the\n     Committee on the Judiciary, United States Senate,\n     97th Congress, Second Session ( February 1982 )\n\nYou might rightfully ask \"well then, what does that first bit about\nmilitias mean?\"\n\nWell, \"militia\" in historical context basically means the whole of the\nadult males of the country. (Indeed, the U.S. Code still defines\n\"militia\" as all armed men over the age of 17).\n\n   \"The Militia comprised all males physically capable of acting\n    in concert for the common defense ....  And ... these men were\n    expected to appear bearing arms supplied by themselves and of\n    the kind in common use at the time.\"\n\t- Supreme Court of the United States,  U.S. v. Miller (1939).\n\nThe reason for the phrase being there was to explain the rationale\nbehind the amendment, which was this: by depending on the people to\nbear arms in defense of the country, no centralization of military\npower could ever occur which would permit tyranny -- in short, the\ngovernment would remain perpetually in fear of the people, rather than\nthe other way around.\n\n   \"No free man shall ever be debarred the use of arms.  The strongest reason\n   for the people to retain the right to keep and bear arms is, as a last\n   resort, to protect themselves against tyranny in government.\"\n     - Thomas Jefferson, Proposal Virginia Constitution, June 1776\n       1 Thomas Jefferson Papers, 334 (C. J. Boyd, Ed., 1950).\n\n   \"And what country can preserve its liberties, if its rulers are not\n   warned from time to time that this people preserve the spirit of\n   resistance ?  Let them take arms ... The tree of liberty must be\n   refreshed from time to time, with the blood of patriots and tyrants.\"\n     - Thomas Jefferson (letter to William S. Smith, 1787, in\n       Jefferson, On Democracy 20, S. Padover, ed., 1939).\n\n   \"Before a standing army can rule, the people must be disarmed;\n   as they are in almost every kingdom of Europe.  The supreme\n   power in America cannot enforce unjust laws by the sword;\n   because the whole body of the people are armed, and constitute\n   a force superior to any bands of regular troops that can be, on\n   any pretense, raised in the United States.\"\n     - Noah Webster, \"An Examination into the Leading Principles\n       of the Federal Constitution\" (1787), in Pamphlets on the\n       Constitution of the United States (P. Ford, 1888).\n\nYou may disagree with the second amendment, and wish that it be\nrepealed, but please do not pretend that it isn't there and that it\ndoesn't mean what it says. You might argue that conditions have\nchanged and that it should no longer be present, but you can't imagine\nit away.\n\nI could fill a book with detailed argumentation. Many have already.\n\nHowever, none of this has anything to do with cryptography.  Lets get\nit out of here. If you insist on discussing this, please do it in\ntalk.politics.guns, where people will gladly discuss this matter with\nyou.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7580, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: David A. Fuess\nSubject: MathCad 4.0 vs NDW 2.2\nOrganization: UC LLNL\nLines: 23\nDistribution: usa\nNNTP-Posting-Host: talon.llnl.gov\n\n\nI just got off the phone with Mathsoft technical service. They\nare now admitting a problem of unknown nature with Maple and\nNorton Desktop for Windows. They have no clue at this time\nand are collecting configuration information on the systems\nwhich exhibit the problem. Anyone having problems loading the\nMaple solver in MathCad 4.0 under NDW shoud call technical\nsupport at 617-577-1017. They made no schedule promices,\nbut are actively working on the problem.\n\nIn the meantime, the workaround is to provide a configuration\nselection in autoexec.bat to use PROGMAN (yuk, pew) whenever\nyou plan to use the Maple solver and NDW otherwise. I am using\nNorton BE to place a little menu on the screen with a 5 second\ntimeout to auto boot NDW.\n\n+---------------------------------+----------------------+\n|    _/      _/     _/    _/  _/  | David A. Fuess       |\n|   _/      _/     _/_/  _/  _/   | Dir, Center for EECS |\n|  _/      _/     _/  _/_/  _/    | Phone: (510)423-2436 |\n| _/_/_/  _/_/_/ _/    _/  _/_/_/ | Fax:   (510)422-9343 |\n+-------- Lawrence Livermore National Laboratory --------+\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7581, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Objective morality (was Re: <Political Atheists?)\nOrganization: Cookamunga Tourist Bureau\nLines: 14\n\nIn article <1qlf7gINN8sn@gap.caltech.edu>, keith@cco.caltech.edu (Keith\nAllan Schneider) wrote:\n> Which type of morality are you talking about?  In a natural sense, it\n> is not at all immoral to harm another species (as long as it doesn't\n> adversely affect your own, I guess).\n\nHehehe, so you say, but this objective morality somehere tells you \nthat this is not the case, and you don't know all the rules of such\ntranscendental game systems...\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7582, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: Centris 650 Math CoProcessor option\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nDistribution: usa\nModerator: Rec.Arts.Comics.Info\nLines: 40\n\nDavid_Anthony_Guevara@cup.portal.com writes:\n\n>Sorry if this is a FAQ.  I don't normally read comp.sys.mac.hardware.\n>I am purchasing a couple of Centris 650's.  I configured the systems\n>as follows:\n\n>\tEight (8) Mb RAM\n>\tEthernet\n>\t1 Mb VRAM\n>\tMath CoProcessor option\n\n>My purchasing agent told me about the math coprocessor option and sent\n>me the Apple summary documentation to prove it.  I ordered the coprocessor\n>option, but I'm really not sure that we needed it.  I thought the '040 chip\n>had a math coprocessor built into it.  Has Apple had a math coprocessor chip\n>architectured to keep up with the speed of the '040 chip in the Centris 650?\n>I am concerned that I may have set up a hardware bottleneck.\n\n    Apple has really confused people with this whole thing. I think\nwe'll be answering this question for about the next year or so. There is\nno \"option\" to get an FPU on a C650. What you have is a choice of CPUs:\nthere is the 68LC040 that does not have an integrated FPU like the full\n'040 and is only present in the base 4/80 model of the C650 (AppleUSA).\nAnd there is the full '040 which you get when you order anything other\nthan the base 4/80 configuration. Therefore, since you have ordered one\nof the 8MB versions with on-board Ethernet models you will not be\ngetting the LC040. But even if you wanted to have the LC040 you wouldn't\nbe able to order a C650 with 8MB RAM, on-board Ethernet and an LC040.\nIt's not an \"option.\"\n    Also, a note to people out there that have 4/80 C650s and C610s\nthinking that there is an optional FPU, the '040 class chip cannot\nrecognize an external FPU, so there is no socket on the motherboard for\na FPU chip and you cannot go out and purchase an FPU on a PDS card or\nsomething like that. The only way to get an FPU in these machines is to\nreplace the LC040 with a full '040. And if you have a C610, you will not\nneed to worry about a heat sink if you do replace the LC040 with the\nfull '040, but if you have a 4/80 C650 you do need to have a heat sink.\n\n-Hades\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7583, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Eternity of Hell (was Re: Hell)\nOrganization: Indiana University\nLines: 98\n\nIn article <Apr.13.00.09.04.1993.28448@athos.rutgers.edu> dlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n[insert deletion of unnecessary quote]\n\n>Why is it that we have this notion that God takes some sort of pleasure\n>from punishing people?  The purpose of hell is to destroy the devil and\n>his angels.\n\nFirst of all, God does not take any sort of pleasure from punishing\npeople.  He will have mercy on whom he will have mercy and compassion on\nwhom he will have compassion (Ex 33:19).  However, if he enjoyed\npunishing people and sending them to hell, then why would he send Jesus\nto \"seek and save that which was lost\" (Luke 19:10)?\n\n>\n>To the earlier poster who tried to support the eternal hell theory with\n>the fact that the fallen angels were not destroyed, remember the Bible\n>teaches that God has reserved them until the day of judgement.  Their\n>judgement is soon to come.\n>\n>Let me suggest this.  Maybe those who believe in the eternal hell theory\n>should provide all the biblical evidence they can find for it.  Stay away\n>from human theories, and only take into account references in the bible.\n>\nYou asked for it.\n\n2 Peter 2:4-ff talks about how those who are ungodly are punished.\nMatthew 25:31-46 is also very clear that those who do not righteous in\nGod's eyes will be sent to hell for eternity.\n2 Thessalonians 1:6-10 states that those who cause trouble for the\ndisciples \"will be punished with everlasting destruction and shut out\nfrom the presence of the Lord\".\n2 Thessalonians 2:9-12 talks about those who refuse to love the truth\nbeing condemned.\nRevelation 21:6-8 talks about the difference between those who overcomes\nand those who do not.  Those who do not, listed in verse 8, will be in\nthe \"fiery lake of burning sulfur\".\nRevelation 14:9-12 gives the indication that those who follow the beast\n\"will be tormented with burning sulfur\" and there being \"no rest day or\nnight\" for them because of it.\nPsalm 9:17:  \"The wicked return to the grave, all the nations that\nforget God.\"\n\nI think those should be sufficient to prove the point.\n\n>Darius\n\nJoe Fisher\n\n[In the following I'm mostly playing \"devil's advocate\".  I'm not\nadvocating either position.  My concern is that people understand that\nit's possible to see these passages in different ways.  It's possible\nto see eternal destruction as just that -- destruction.  Rev often\nuses the term \"second death\".  The most obvious understanding of that\nwould seem to be final extinction.  The problem is that the NT speaks\nboth of eternal punishment and of second death.  I.e. it uses terms\nthat can be understood either way.  My concern here is not to convince\nyou of one view or the other, but to help people understand that\nthere's a wide enough variety of images that it's possible to\nunderstand them either way.  As Tom Albrecht commented, the primary\npoint is to do our best to keep people out of the eternal fire,\nwhatever the details.  (To make things more interesting, Luke 20:35\nimplies that the damned don't get resurrected at all.  Presumably\nthey just stay dead. -- yes I'm aware that it's possible to \nunderstand this passage in a non-literal way.)\n\n2 Peter 2:4-ff is talking about angels, and talks about holding them\nin hell until the final judgement.  This isn't eternal punishement.\n\nMatthew 25:31-46 talks about sending the cursed into eternal fire\nprepared for the devil and his angels.  The fact that the fire is\neternal doesn't mean that people will last in its flames forever.\nParticularly interesting is the comment about the fire having been\nprepared for the devil and his angels.  Rev 20 and 21 talk about the\neternal fire as well.  They say that the beast and the false prophet\nwill be tormented forever in it.  When talking about people being\nthrown into it (20:13-14), it is referred to as \"the second death\".\nThis sounds more like extinction than eternal torment.  Is is possible\nthat the fire has different effects on supernatural entities such as\nthe devil, and humans?\n\n2 Thessalonians 1:6-10 similarly, what is \"everlasting destruction\"?\nThis is not necessarily eternal torment.  This one can clearly be\nunderstood either way, but I think it's at least possible to think\nthat everlasting is being used to contrast the kind of destruction\nthat can occur in this life with the final destruction that occurs in\neternity.\n\n2 Thessalonians 2:8 again talks about destruction.\nRevelation 21:6-8: see comment above\nRevelation 14:9-12 is probably the best of the quotes.  Even there,\nit doesn't explicitly say that the people suffer forever.  It says\nthat the smoke (and presumably the fire) is eternal, and that \nthere is no respite from it.  But it doesn't say that the people\nare tormented forever.\n\nPsalm 9:17:  I don't see that it says anything relevant to this issue.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7584, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Why not concentrate on child molesters?\nArticle-I.D.: optilink.15218\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 25\n\nIn article <gc3g2B6w165w@honour.welly.gen.nz>, radagast@honour.welly.gen.nz (Radagast) writes:\n> cramer@optilink.COM (Clayton Cramer) writes:\n# # Unfortunately, homosexuals don't believe in this concept of freedom.\n# # They believe that they have a right to FORCE people to hire them,\n# # rent to them, and do business with them, regardless of the feelings\n# # or beliefs of the other person.\n# \n# <ha ha ha#, oh, Clayton, you're so good, so consistent, so predictable,\n# yup, that's right, they, these homosexual people want to FORCE you to\n# ignore what's none of your fucking business.  IE. <I will explain slowly#\n# their sexual orientation should be irrelevant, as irrelevant as their\n# gender, skin colour, religious affiliation, attitude to hand-gun ownership,\n# etc.  They want to FORCE you to hire the best person for the job, rent the\n# accomodation to the person who will look after it, do business with whoever\n# will make you money..\n\nYet, when a law was proposed for Virginia that extended this \nphilosophy to cigarette smokers (so that people who smoked away\nfrom the work couldn't be discriminated against by employers),\nthe liberal Gov. Wilder vetoed it.  Which shows that liberals don't\ngive a damn about \"best person for the job,\" it's just a power\nplay.\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.359+0000", "event": "documents", "entityId": 7585, "properties": {"category": "misc.forsale", "text": "From: 02106@ravel.udel.edu (Samuel Ross)\nSubject: Books for sale!!\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 28\n\n\nSOMEONE PLEASE BUY THESE BOOKS!!!!!  I AM NOT ASKING MUCH!!!!!!\n\nJUST MAKE ME AN OFFER AND I WILL PROBABLY TAKE IT!!!!!\n\n* Calculus w/ Analytic Geometry by Authur B. Simon (copyright date 1982), below avg condition but still readable! \n\n* Writing good software in Fortran, Graham Smith. \n\n* The Holt Handbook by Kirszner & Mandell (copyright 1986) 720+ page writing guide. \n\n* Algebra & Trigonometry, A problem Solving Approach, 3rd edition by W. Flemming and D. Varberg.  Very good condition.\n\n* General Chemistry Principles & Modern Applications, R. Petrucci, fourth\n  edition.  Big Book! Very good condition!\n\n* Solutions manual for Chemistry book.  Paperback.\n\n* Study guide for Chemistry book.  Paperback.\n\n\nSend me your offers via email at 02106@chopin.udel.edu\n\n\n\nSam\n02106@chopin.udel.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7586, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Re: OTO, the Ancient Order of Oriental Templars\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 11\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, shades@sorinc.cutler.com (Darrin A. Hyrup) says:\n\n>They [Thelema Lodge] don't have an internet address, but they do have a CIS\n>address which can be reached via uucp/internet.  It is 72105,1351 so I guess\n>that would be '72105.1351@cis.com' or something like that.\n>\n\t\t......@compuserve.com\n\nTony\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7587, "properties": {"category": "sci.electronics", "text": "From: blockley@csu.murdoch.edu.au (Adrian Blockley)\nSubject: integrated cct-type UM82C452L manufac by UMC.\nLines: 15\nNNTP-Posting-Host: essun1.murdoch.edu.au\n\nwhere can I buy 1 or 2 of these chips (pref in Australia)?\nWhat is name and address of `UMC'?\n\nDan\n\n--\n\n----------------------------------------------------------------------\nAdrian Blockley                    ! I may say something profound   \nEnvironmental science              ! here one day.                  \nMurdoch University                 !                          \nWestern Australia, 6153            !                               \nblockley@essun1.murdoch.edu.au     !                                \nphone 09-360 2737                  !\n----------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7588, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: The Armenians were fascist: Historical Armenian Fascism.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 47\n\n \nThe Armenians were deeply anti-semitic as well. In the May 10, 1936 \nedition of 'Hairenik Weekly' the vice-mayor of Bucharest, Rumania is \nquoted as saying:\n\n\"The Armenians helped us not to become the slaves of the Jewish\n elements in our country.\"\n\nIn another edition, an author named Captain George Haig writes:\n\n\"And the type of Jew who is imported to Palestine...is not anything\n to be proud about. Their loose morals, and other vices were\n unknown to the Arabs prior to Balfour Declaration, on top of \n all communist activities were the cause of most of the Arab\n criticism.\"[1]\n\nAs Uzun exposed, the Armenians were fascist. Before Pearl Harbor, \nthe Dashnak daily 'Hairenik' (not to be confused with the Tzeghagrons\n'Hairenik Weekly') expressed pro-Nazi sentiments:\n\n\"And came Adolf Hitler, after herculean struggles. He spoke\n to the racial heart strings of the German, opened the \n fountain of his national genius, strock down the spirit\n of defeatism...At no period since the World War had Berlin\n conducted so realistic, well organized, and planned policy\n as now, since Hitler's assumption to power...And whatever\n others may think concerning Hitlerism and Fascism as a \n system of Government, it is proved that they have revitalized\n and regenerated the two states, Germany and Italy.\"[2]\n\n[1] Captain George Haig, 'The Case of Palestine,' in Hairenik\n    Weekly, Friday, September 25, 1936.\n[2] 'Hairenik,' official organ of the Dashnaktsuitune, Sept. \n    17, 1936; quoted in John Roy Carlson, 'The Armenian Displaced\n    Persons' (see endnote 1), p. 21.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7589, "properties": {"category": "sci.space", "text": "From: ralph.buttigieg@f635.n713.z3.fido.zeta.org.au (Ralph Buttigieg)\nSubject: Why not give $1 billion to first year-lo\nOrganization: Fidonet. Gate admin is fido@socs.uts.edu.au\nLines: 34\n\nOriginal to: keithley@apple.com\nG'day keithley@apple.com\n\n21 Apr 93 22:25, keithley@apple.com wrote to All:\n\n kc> keithley@apple.com (Craig Keithley), via Kralizec 3:713/602\n\n\n kc> But back to the contest goals, there was a recent article in AW&ST\nabout a\n kc> low cost (it's all relative...) manned return to the moon.  A General\n kc> Dynamics scheme involving a Titan IV & Shuttle to lift a Centaur upper\n kc> stage, LEV, and crew capsule.  The mission consists of delivering two\n kc> unmanned payloads to the lunar surface, followed by a manned mission.\n kc> Total cost:  US was $10-$13 billion.  Joint ESA(?)/NASA project was\n$6-$9\n kc> billion for the US share.\n\n kc> moon for a year.   Hmmm.  Not really practical.  Anyone got a\n kc> cheaper/better way of delivering 15-20 tonnes to the lunar surface\nwithin\n kc> the decade?  Anyone have a more precise guess about how much a year's\n kc> supply of consumables and equipment would weigh?\n\nWhy not modify the GD plan into Zurbrin's Compact Moon Direct scheme? let\none of those early flight carry an O2 plant and make your own.\n\nta\n\nRalph\n\n--- GoldED 2.41+\n * Origin: VULCAN'S WORLD - Sydney Australia (02) 635-1204  3:713/6\n(3:713/635)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7590, "properties": {"category": "misc.forsale", "text": "From: jr0930@eve.albany.edu (REGAN JAMES P)\nSubject: MACINTOSH-PLUS FOR SALE\nExpires: 5/5/93\nOrganization: State University of New York at Albany\nLines: 16\n\n******************F O R  S A L E  C H E A P*********************\nMacintosh-plus\n+++++++++++++++\n*includes:\n2 - 3.5\" drives( 1 external)\nsoftware: Word, Excel, Pascal, Intro package(Hypercard, Tour , etc)\n\nLeaving school in May, must sell!!!!!!\nA steal at $450\n\nplease reply e-mail\n-- \n |||||||||| \t\t \t ||||||||||\n |||||||||| \t\t\t ||||||||||     jr0930@eve.albany.edu\n=||||||||||======================||||||||||=    jr0930@Albnyvms.bitnet\n ||||||||||    ONLY THE STRONG   ||||||||||\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7591, "properties": {"category": "sci.crypt", "text": "From: artmel@well.sf.ca.us (Arthur Melnick)\nSubject: Big Brother (Clipper) chip\nSummary: Some thoughts on the use of the Big Brother (Clipper) chip\nKeywords: clipper\nNntp-Posting-Host: well.sf.ca.us\nOrganization: The Whole Earth 'Lectronic Link, Sausalito, CA\nLines: 57\n\n\n     There are some issues which come to mind when one considers\nthe law enforcement aspects of the use of the Big Brother\n(Clipper) chip.\n     The drug dealers and terrorists aren't going to let\nthemselves be caught by using this type of encryption.  In 1985\nthe New York Times reported that government investigators broke\nup a narcotics ring that was operating highly sophisticated\nequipment capable of allowing the leaders of the ring to\neavesdrop on the law-enforcement agents who were trying to arrest\nthem.\n     A Mr. Deely, an NSA official, said \"There are a lot of\nmedium-sized countries that would have been proud to have the\nsignals intelligence operation of this group.\"\n     For every John Gotti there are probably many more people who\nhave the sophistication to know what the risks of unsecure\ncommunications are.  The press given to the Big Brother chip will\nonly increase their numbers.\n     Even if there is some benefit to law-enforcement through the\nuse of Big Brother, it must be weighed against the constitutional\nand civil liberties questions involved.\n     For example, in some areas of the world torture is used as\nan investigative tool by the local \"law-enforcement\" people.  I\nsuspect it is an effective means of obtaining information and\nshortening many investigations.  It probably also helps keep the\nconviction rate high.\n     The fact that the torture tool is not used in this country\n(even with a court order obtained by showing \"probable cause\") is\nbecause we have rightly balanced the questions of expediency and\nwhat is ethically and morally right.\n     I think that the same question of expediency versus morality\nshould come into play when considering the use of Big Brother.  I\nvote for morality.\n     I am quite disturbed by what I interpret as a veiled threat\nto prohibit the use of all encryption if this Big Brother chip is\nnot put into wide spread use.  After a quick reading of the White\nHouse press release I came away with that impression.\n     To most of the American public, the word \"hacker\" has\nrightly or wrongly come to mean \"high tech adolescent vandal\".\nIt has struck me that most of the people posting to sci.crypt\nregarding this issue are intelligent, thoughtful individuals who\nhave genuine concerns about the privacy and constitutional issues\nsurrounding Big Brother.  I hope that the use of Big Brother does\nnot become mandatory and other encryption become illegal.  I\nwould hate to see this become some kind of high tech Volstead\nAct.\n     The high speed digital communications revolution is coming\nat us with the speed of an SST.  The times they are a changing,\nand just as IBM is learning that they can't do business the same\nway they have done it for the past 40 years, maybe NSA should\nevaluate another approach.\n     EFF, who have correctly questioned the cryptographic\nstrength of Big Brother, may need to send a stronger message out\nregarding the constitutional issues involved.\n     Al Gore may want to think this one through a little more.\n     And as for Dorothy Elizabeth Robling Denning: En quoi cela\nvous concerne, cheri?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7592, "properties": {"category": "soc.religion.christian", "text": "From: leonard@aix3090b.uky.edu (Leonard Lauria)\nSubject: Re: Prayer in Jesus' Name\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 34\n\nmunns@cae.wisc.edu (Scott Munns) writes:\n\n>I am doing a dormitory bible \"discussion\" with my Christian roommate and\n>2 of the non-Christian guys on my floor.  They are very close to\n>accepting Christ, so we have started to disciple them (treat them like\n>baby believers) and go into more indepth subjects than the parables, etc.\n>Our first discussion was on prayer.  Eventually, we got around to how\n>we should pray in Jesus' name.  Then, an excellent question came up, one\n>that I don't have a real answer to.  The question was, \"If we need to pray\n>in Jesus' name, what about the people before Jesus?  They prayed to God\n>and he listened then, in spite of their sins.  Why can't it be the same\n>way now?\"\n\nI'll take a try at this...\n\nFrom the discussions I have been in, and from how *I* have interpreted\nthe bible, I feel that one can pray either way.  BUT remember this,\nbefore Jesus, the people talked to God (no other way) and he talked \nback.  (audible and dreams, etc.)  Today we have the bible to know \nGods will, and we have his son you died for US.  He was given as our\nsavior, and while we still do things according to Gods will, we pray\nTHROUGH his son.  In the bible it says that if we are not known to \nJesus, we are not known to God.  (sorry I do not have the verses\nwith me)  So, if we are to be granted eternal life, we must present\nourselves to Jesus first, who will then present us to God.\n\nLeonard\n\n\n\n--\n\n===========================================================================\n   -This space intentionally left blank.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7593, "properties": {"category": "comp.graphics", "text": "From: jmcocker@eos.ncsu.edu (Mitch)\nSubject: Re: Newsgroup Split\nOriginator: jmcocker@c00053-100lez.eos.ncsu.edu\nReply-To: jmcocker@eos.ncsu.edu (Mitch)\nOrganization: North Carolina State University, Project Eos\nLines: 29\n\n\nIn article <FOX.93Apr22002043@graphics.nyu.edu>, fox@graphics.cs.nyu.edu (David Fox) writes:\n|>\n|>   Concerning the proposed newsgroup split, I personally am not in favor of\n|>   doing this.  I learn an awful lot about all aspects of graphics by reading\n|>   this group, from code to hardware to algorithms.  I just think making 5\n|>   different groups out of this is a wate, and will only result in a few posts\n|>   a week per group.  I kind of like the convenience of having one big forum\n|>   for discussing all aspects of graphics.  Anyone else feel this way?\n|>   Just curious.\n|>\n|>I disagree.  You could learn the same amount by reading all the\n|>split groups, and it would make things easier for those of us\n|>who are less omnivorous.  There is no \"waste\" in creating news\n|>groups -- its just a bit of shuffling about.  I have no problem\n|>with only a few posts per week per group - I spend too much time\n|>on this as it is.\n|>\n\nYes, but... shouldn't size of newsgroup be an issue?  Sorry if this\nhas been covered before, but comp.grahpics.animation get how much \ntraffic per day?  50 articles?  Maybe 70 on an extremely heavy day?\nI've been following this group for about four months now, and I don't\nrecall ever seeing such a flood of posts that a split would be warranted.\n\nJust my 2 cents,\n\nMitch------------------------------------>jmcocker@eos.ncsu.edu\n\"Who doth render with 386sx-20 knoweth frustration.\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7594, "properties": {"category": "rec.sport.baseball", "text": "From: jtchern@ocf.berkeley.edu (Joseph Hernandez)\nSubject: MLB Standings and Scores for Tue, Apr 6th, 1993\nKeywords: mlb, 04.06\nArticle-I.D.: agate.1ps77v$5dr\nDistribution: world\nOrganization: JTC Enterprises Sports Division (Major League Baseball Dept.)\nLines: 72\nNNTP-Posting-Host: monsoon.berkeley.edu\n\n\n\t     MLB Standings and Scores for Tuesday, April 6th, 1993\n\t                 (including yesterday's games)\n\nNATIONAL WEST\t      Won  Lost   Pct.    GB   Last 10   Streak    Home   Road\nAtlanta Braves         01   00   1.000    --     1-0      Won 1   00-00  01-00\nCincinnati Reds        01   00   1.000    --     1-0      Won 1   01-00  00-00\nSan Diego Padres       00   00    .000   0.5     0-0       ---    00-00  00-00\nSan Francisco Giants   00   00    .000   0.5     0-0       ---    00-00  00-00\nColorado Rockies       00   01    .000   1.0     0-1     Lost 1   00-00  00-01\nHouston Astros         00   01    .000   1.0     0-1     Lost 1   00-01  00-00\nLos Angeles Dodgers    00   01    .000   1.0     0-1     Lost 1   00-00  00-01\n\nNATIONAL EAST\nFlorida Marlins        01   00   1.000    --     1-0      Won 1   01-00  00-00\nNew York Mets          01   00   1.000    --     1-0      Won 1   01-00  00-00\nPhiladelphia Phillies  01   00   1.000    --     1-0      Won 1   00-00  01-00\nPittsburgh Pirates     00   00    .000   0.5     0-0       ---    00-00  00-00\nSt. Louis Cardinals    00   00    .000   0.5     0-0       ---    00-00  00-00\nChicago Cubs           00   01    .000   1.0     0-1     Lost 1   00-01  00-00\nMontreal Expos         00   01    .000   1.0     0-1     Lost 1   00-00  00-01\n\n\nAMERICAN WEST         Won  Lost   Pct.    GB   Last 10   Streak    Home   Road\nOakland Athletics      01   00   1.000    --     1-0      Won 1   01-00  00-00\nTexas Rangers          01   00   1.000    --     1-0      Won 1   00-00  01-00\nCalifornia Angels      00   00    .000   0.5     0-0       ---    00-00  00-00\nChicago White Sox      00   00    .000   0.5     0-0       ---    00-00  00-00\nMinnesota Twins        00   00    .000   0.5     0-0       ---    00-00  00-00\nSeattle Mariners       00   00    .000   0.5     0-0       ---    00-00  00-00\nKansas City Royals     00   01    .000   1.0     0-1     Lost 1   00-01  00-00\n\nAMERICAN EAST\nBoston Red Sox         01   00   1.000    --     1-0      Won 1   00-00  01-00\nNew York Yankees       01   00   1.000    --     1-0      Won 1   00-00  01-00\nMilwaukee Brewers      00   00    .000   0.5     0-0       ---    00-00  00-00\nToronto Blue Jays      00   00    .000   0.5     0-0       ---    00-00  00-00\nBaltimore Orioles      00   01    .000   1.0     0-1     Lost 1   00-01  00-00\nCleveland Indians      00   01    .000   1.0     0-1     Lost 1   00-01  00-00\nDetroit Tigers         00   01    .000   1.0     0-1     Lost 1   00-00  00-01\n\n\n\t\t\t     YESTERDAY'S SCORES\n\nNATIONAL LEAGUE\t\t\t\tAMERICAN LEAGUE\n\nMontreal\t1\t\t\tNew York\t9\nCincinnati\t2\t\t\tCleveland\t1\n\nAtlanta\t\t1\t\t\tTexas\t\t7\nChicago\t\t0\t\t\tBaltimore\t4\n\nLos Angeles\t3\t\t\tBoston\t\t3\nFlorida\t\t6\t\t\tKansas City\t1\n\nPhiladelphia\t3\t\t\tDetroit\t\t4\nHouston\t\t1\t\t\tOakland\t\t9\n\nColorado\t0\t\t\tCalifornia   IDLE\nNew York\t3\t\t\tChicago      IDLE\t\t\n\nPittsburgh   IDLE\t\t\tMilwaukee    IDLE\nSt. Louis    IDLE\t\t\tMinnesota    IDLE\n\nSan Diego    IDLE\t\t\tSeattle\t     IDLE\nSan FranciscoIDLE\t\t\tToronto      IDLE\n-- \n-------------------------------------------------------------------------------\nJoseph Hernandez          |    RAMS  | |    /.\\  ******* _|_|_  / |   LAKERS\njtchern@ocf.Berkeley.EDU  |   KINGS  | |__ |   | DODGERS _|_|_  | |   RAIDERS\njtcent@soda.Berkeley.EDU  |  ANGELS  |____||_|_| *******  | |  |___|  CLIPPERS\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7595, "properties": {"category": "comp.graphics", "text": "From: SITUNAYA@IBM3090.BHAM.AC.UK\nSubject: (None set)\nOrganization: The University of Birmingham, United Kingdom\nLines: 5\nNNTP-Posting-Host: ibm3090.bham.ac.uk\n\n==============================================================================\nBear with me i'm new at this game, but could anyone explain exactly what DMORF\ndoes, does it simply fade one bitmap into another or does it re shape one bitma\np into another. Please excuse my ignorance, i' not even sure if i've posted thi\ns message correctly.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7596, "properties": {"category": "sci.electronics", "text": "From: psgwe01@sdc.boeing.com (Gerald Edgar)\nSubject: Re: help - how to construct home-built battery for 3rd grade sci report\nKeywords: 3rd grade science report\nDistribution: usa\nOrganization: Boeing Computer Services (ESP), Seattle, WA\nLines: 15\nNntp-Posting-Host: crystal\n\nIn making batteries you could use copper and zinc in an acid electrolyte.     \nCopper=copper wire (pennies are now mostly zinc if I recall correctly)\nzinc= zinc strip (Hardware stores arround here (Seattle) sell this to prevent\n      moss buildup on the roof. An alternative would be to use a galvanized\n      (zinc coated) nail\nelectrolyte= lemon juice -> Citric acid is the active ingrediant(sp).\n \nVolta (late 18th century scientist) used a stack for his batteries-\ncopper disk, paper disk soaked in acid, zinc disk, copper disk, paper ....\nthey were advanced technology for the time. \n \nGerald Edgar\ngwe3409@atc.boeing.com\n\"The opinions expressed in this communication may not reflect those of my\nemployer\"\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7597, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: OB-GYN residency\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 28\n\nIn article <1993Apr12.231544.5990@cnsvax.uwec.edu> nyeda@cnsvax.uwec.edu (David Nye) writes:\n\n> \n>I believe it is illegal for a residency to discriminate against FMGs.  I\n\n\nIs that true?  I know some that won't even interview FMGs.  \nMost programs discriminate, in that given an FMG equally\nqualified as an American they will take the American.  What\nrights do they actually have?  Does it matter if they are\nUS citizens (most are not)?  We have had good luck with FMGs\nand bad luck.  SOme of our very best residents have been FMGs.\nAlso, our very worst.  As it turns out, the worst FMGs are often\nUS citizens that studied in off-shore medical schools.  Of the\n5 residents fired for incompetence in the 12 years I've been here \nin my department, all have been FMGs.  3 were US citizens who studied \nin Guadalajara, 1 was a US citizen but was trained in the Soviet Union, \nand one was Philipina.  Unfortunately, all are now practicing medicine\nsomewhere, 3 of them in Neurology after having been picked up by \nother programs, 1 in psychiatry, and the other in emergency medicine.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.360+0000", "event": "documents", "entityId": 7598, "properties": {"category": "rec.sport.hockey", "text": "From: mmilitzo@scott.skidmore.edu (matthew militzok)\nSubject: 1992 - 1993 FINAL NHL PLAYER STATS\nOrganization: Skidmore College, Saratoga Springs NY\nLines: 8\n\nIf you are interested in receiving the final player stats for\nthe 1992-1993 NHL Season as well as playoff box scores, stats and\nscores/updates...\nthen e-mail my stat server\n\nmmilitzo@skidmore.edu\n\nthe subject of the message must be:\tSTATS\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.361+0000", "event": "documents", "entityId": 7599, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: paladin@world.std.com (Thomas G Schlatter)\nSubject: Re: Tidying up after removing an OLE server\nKeywords: OLE, SPSS\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 22\n\nIn article <C5y121.Kz3@liverpool.ac.uk> qq43@liverpool.ac.uk (Chris Wooff) writes:\n>A while ago I installed SPSS for Windows as part of an evaluation. Once\n>the evaluation was complete I duly deleted the software from my PC.\n>\n>Unfortunately there is still a \"ghost\" of SPSS left: when I run\n>something like \"Write\" and go to embed an object then \"SPSS Chart\"\n>appears on the list of objects I'm offered. I looked around all\n>the obvious \"INI\" files without success. The next thing I tried\n>was looking for the string \"SPSS Chart\" in every file in the \n>Windows directory. It turned up in a file called REQ.DAT (or\n>REG.DAT). Unfortunately the file was binary and so I didn't feel\n>inclined to edit it.\n>\n>I'd welcome a solution for removing SPSS from the list of OLE servers.\n I think you can do this with REGEDIT, which can make changes\nto the OLE registration database.  From Program Manager (or \nFile Manager) choose RUN and type REGEDIT.  You do have it-\nits included with Windows, but not well documented.\n\nTom\npaladin@world.std.com\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.361+0000", "event": "documents", "entityId": 7600, "properties": {"category": "rec.sport.baseball", "text": "From: eechen@leland.Stanford.EDU (Emery Ethan Chen)\nSubject: Re: Let's Talk Phillies\nSummary: What Bullshit!\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 19\n\nArticle from as follows\n>From: bml2@ns1.cc.lehigh.edu (BRIAN MICHAEL LUCY)\n>Subject: Re: Let's Talk Phillies\n>Date: 15 Apr 93 06:29:05 GMT\n>Organization: Lehigh University\n>Lines: 9\n\n>In article <Uflkll_00VpcEKW15e@andrew.cmu.edu>, al1x+@andrew.cmu.edu (Amit\n>Likhy ani) writes: >Excerpts from netnews.rec.sport.baseball: 9-Apr-93 Re:\n>Let's Talk >Phillies u96_msopher@vaxc.stevens (963) > >> > like this.  Oh\n>well.  How do we spell CELLAR? > > >>                      p - i - r - a - t\n>- e - s > >> ` > > >>\n>NINJA JEW > > >Are there any Philly fans who want to put money on that?   If\n>not, stop >your woofing.  Ben Rivera got hammered. > True (last week), but\n>tonight he pitched 6 shutout innings and got 9 runs behind him. THAT'S why\n>we're 8-1!\n\nOne phrase for you....FUCK YOU!!!!\nThanks.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.361+0000", "event": "documents", "entityId": 7601, "properties": {"category": "misc.forsale", "text": "From: Charles P. Cox, Jr. <cox@snowhite.eeap.cwru.edu>\nSubject: PC stuff forsale\nOrganization: Case Western Reserve University\nLines: 44\nDistribution: world\nNNTP-Posting-Host: b61506.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d17\nX-XXMessage-ID: <A7F733DEFC01F042@b61506.student.cwru.edu>\nX-XXDate: Sun, 18 Apr 93 21:35:42 GMT\n\nI have the following items for sale.  \nBuyer pays the shipping costs.  \nHardware is new and unused unless marked otherwise.  \nAll software includes original disks and manuals.  \nNo reasonable offers refused.\nSend offers/questions to cpc3@po.cwru.edu\n\nHardware\n---------\nHercules Graphics Card - mono graphics and printer ports\nHercules Color Card -  color graphics and printer ports\nTeac 1.2MB 5.25\"  floppy drive - doesn't work, sold as is for reapir or\nparts\nIBM ASYNC card - serial card for PC/XT/AT machines, comes with support\nsoftware\nKraft KC10 joystick - works with PC compatibles and Apple II series (not\nMac)\n360K 5.25\" floppy disks - over 200 bulk-grade disks\n2 floppy disk storage boxes - each holds 60 5.25\" disks, one has a lock\non it\n\nSoftware\n---------\u007f\u007f\nMicrosoft Macro Assembler 5.0 and 5.1 update - large manual and tutorial\nincluded\nSideways 3.0 - rotates wide spreadsheets 90 degrees to print on 1 page\n\nGames\n------\nWolfPack - WWII submarine simultaion\nSpace Station Oblivion - arcade-style game similar to Spectre\nDemon Stalkers - dungeon game, like Gauntlet\nZork II, Moonmist, Ballyhoo - Infocom adventure/mystery games\nJack Nicklaus' Unlimited Golf and Course Design - excellent golf game\nWar In Middle Earth - similar to D&D games, based on Tolkien's \"The\nHobbit\"\nSargon 4 - excellent chess game, play against someone or against computer\nSilent Service II - submarine simulation\n\n---\nCharles P. Cox, Jr.\nComputer Engineering\nCase Western Reserve University\ncpc3@po.cwru.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.361+0000", "event": "documents", "entityId": 7602, "properties": {"category": "rec.sport.hockey", "text": "From: hamlet@stein.u.washington.edu (Mitch McGowan)\nSubject: rec.sport.hockey Frequently Asked Questions\nOrganization: University of Washington\nLines: 1768\nExpires: Mon, 03 May 93 00:00:01 EDT\nReply-To: hamlet@u.washington.edu\nNNTP-Posting-Host: stein.u.washington.edu\n\nArchive-name: hockey-faq\n\nrec.sport.hockey answers to Frequently Asked Questions and other news:\n \nContents:\n\n0. New Info.\n1. NHL\n2. NHL Minor Leagues\n3. College Hockey (North America)\n4. Other leagues (e.g. Europe, Canada Cup tournament)\n5. E-mail files\n6. USENET Hockey Pool\n7. Up-coming Dates\n8. Answers to some frequently asked questions\n9. Miscellaneous\n \n Send comments, suggestions and criticisms regarding this FAQ list via e-\nmail to hamlet@u.washington.edu.\n \n--------------------------------------------------------------------------\n \n 0. New Info.\n \n This section will describe additions since the last post so that you can \ndecide if there is anything worth reading. Paragraphs containing new \ninformation will be preceded by two asterisks (**).\n\n 1.: New Anaheim contact, Winnipeg to keep affiliate in Moncton.\n 2.: New Milwaukee contact, IHL broadcaster of the year named, Rheaume to \nstart against Cyclones, San Diego sets record.\n 3.: Ticket info included for 1994 NCAA Division I Championships.\n 4.: World Championship Pool B results listed, Sweden Hockey Games final \nstandings listed, Swedish Elite League final standings listed, new Olypmic \nHockey mailing list.\n 5.: New Montreal mailing list address.\n 6.: \n 7.: \n 8.: \n 9.: \n\n--------------------------------------------------------------------------\n \n  1. NHL - National Hockey League\n \n For detailed information concerning a team (particularly where to get \ntickets and merchandise, where to watch games in town....), send e-mail to \nthe net contact(s) for the team.\n\n                             First   # of   Last\n Team                   Div  Season  Cups   Cup    Net Contacts\n ---------------------  ---  ------  ----  ------ ----------------------\n**\n Anaheim Mighty Ducks    -   93-94      -    -    Kris Myers\n                                                  kris@fs2.assist.uci.edu\n Boston Bruins           A   24-25      5  71-72  \n Buffalo Sabres          A   70-71      0    -    Jeff Horvath\n                                                  jhorvath@macc.wisc.edu\n Calgary Flames          S   80-81*     1  88-89  CALDWELL8102@mtroyal.ab.ca\n Chicago Blackhawks      N   26-27      3  60-61  John Scholvin\n                                                  scholvin@casbah.acns.nwu.edu\n Detroit Red Wings       N   33-34*     7  54-55  SGLENN@cmsa.gmr.com\n Edmonton Oilers         S   79-80*     5  89-90  Andrew Scott\n                                                  andrew@idacom.hp.com\n Hartford Whalers        A   79-80*     0    -    Matthew Olsen\n                                                  dmolsen@athena.mit.edu\n Los Angeles Kings       S   67-68      0    -    Stan Willis\n                                                  willis@empire.dnet.hac.com\n Minnesota North Stars   N   67-68*     0    -    Mitch McGowan\n                                                  hamlet@u.washington.edu\n Montreal Canadiens      A   17-18     22  85-86  \n New Jersey Devils       P   82-83*     0    -    \n New York Islanders      P   72-73      4  82-83  Mark Anania\n                                                  ananim@rpi.edu\n New York Rangers        P   26-27      3  39-40  Paul Romano\n                                                  romano@monolith.bellcore.com\n Ottawa Senators         A   92-93      0    -    Scott Simpson\n                                                  simpson@bnr.ca\n Philadelphia Flyers     P   67-68      2  74-75  Pete Clark\n                                                  seth@hos1cad.att.com\n Pittsburgh Penguins     P   67-68      2  91-92  Lori Iannamico\n                                                  lli+@cs.cmu.edu\n                                                  Thomas Sullivan\n                                                  tms@cs.cmu.edu\n Quebec Nordiques        A   79-80*     0    -\n St. Louis Blues         N   67-68      0    -    Joseph Achkar\n                                                  jca2@cec1.wustl.edu\n San Jose Sharks         S   91-92      0    -    Nelson Lu\n                                                  claudius@leland.stanford.edu\n**\n South Florida           -   93-94      -    -    \n Tampa Bay Lightning     N   92-93      0    -    Tom Wilson\n                                                  wilson@eola.cs.ucf.edu\n Toronto Maple Leafs     N   26-27*    11  66-67  Darryl Gamble\n                                                  darryl@cs.yorku.ca\n Vancouver Canucks       S   70-71      0    -    Alan Chim\n                                                  chim@sfu.ca\n Washington Capitals     P   74-75      0    -    David Lu\n                                                  david@eng.umd.edu\n Winnipeg Jets           S   79-80*     0    -    umturne4@ccu.umanitoba.ca\n \n A=Adams N=Norris P=Patrick S=Smythe\n \n *Calgary: formerly Atlanta Flames (72/73-79/80)\n  Detroit: formerly Detroit Cougars (26/27-29/30) -> Detroit Falcons \n(30/31-32/33)\n  Edmonton: formerly Alberta Oilers (WHA) (72/73) -> Edmonton Oilers (WHA) \n(72/73-78/79)\n  Hartford: formerly New England Whalers (WHA) (72/73-78/79)\n  Minnesota: Cleveland Barons were merged with Minnesota for the 1978/79 \nseason.\n  New Jersey: formerly Kansas City Scouts (74/75-75/76) -> Colorado \nRockies (76/77-81/82)\n  Quebec: formerly Quebec Nordiques (WHA) (72/73-78/79)\n  Toronto: formerly Toronto Arenas (17/18-18/19) -> Toronto St. Patricks \n(19/20-25/26)\n  Winnipeg: formerly Winnipeg Jets (WHA) (72/73-78/79)\n\n Teams with mailing lists, see section 5 for addresses: Boston, Buffalo, \nLos Angeles, Montreal, Philadelphia, Pittsburgh, St. Louis, San Jose, \nTampa Bay, Vancouver, Washington.\n\n-----\n \n- Schedule\n\n 1992-1993 Schedule for the NHL\n\n                                 April\n    Sun       Mon       Tue       Wed       Thu       Fri       Sat\n+---------+---------+---------+---------+---------+---------+---------+\n!         !         !         !         ! 1       ! 2       ! 3       !\n!         !         !         !         !Min @ Cal!Mon @ Was!Buf @ Bos!\n!         !         !         !         !Det @ Chi!NYI @ NYR!Cal @ SJ !\n!         !         !         !         !Har @ Pit!         !Chi @ StL!\n!         !         !         !         !Que @ Ott!         !Van @ Det!\n!         !         !         !         !Tor @ Phi!         !Win @ Edm!\n!         !         !         !         !Win @ SJ !         !Ott @ Har!\n!         !         !         !         !Van @ TB !         !Min @ LA !\n!         !         !         !         !         !         !Mon @ NYI!\n!         !         !         !         !         !         !NJ  @ Tor!\n!         !         !         !         !         !         !TB  @ Phi!\n!         !         !         !         !         !         !Pit @ Que!\n+---------+---------+---------+---------+---------+---------+---------+\n! 4       ! 5       ! 6       ! 7       ! 8       ! 9       !10       !\n!Bos @ Buf!Har @ NYR!Bos @ Que!Edm @ Van!Que @ Bos!Van @ Cal!Bos @ Mon!\n!Cal @ SJ !         !Buf @ Min!Har @ Ott!Chi @ NYI!Pit @ NYR!Buf @ Det!\n!StL @ Chi!         !Cal @ LA !Mon @ Pit!Det @ TB !         !Chi @ TB !\n!Pit @ NJ !         !Edm @ SJ !NYR @ NJ !SJ  @ LA !         !Har @ Que!\n!NYR @ Was!         !NYI @ Was!         !Was @ Phi!         !LA  @ SJ !\n!Van @ Ott!         !Phi @ Win!         !Tor @ Win!         !StL @ Min!\n!         !         !StL @ TB !         !         !         !NJ  @ Was!\n!         !         !         !         !         !         !Ott @ NYI!\n!         !         !         !         !         !         !NYR @ Pit!\n!         !         !         !         !         !         !Phi @ Tor!\n+---------+---------+---------+---------+---------+---------+---------+\n!11       !12       !13       !14       !15       !16       !17       !\n!Ott @ Bos!Was @ Mon!Mon @ Buf!Bos @ Ott!Phi @ Buf!         !         !\n!Que @ Buf!NYR @ Phi!Cal @ Edm!NYI @ Har!SJ  @ Cal!         !         !\n!Cal @ Van!         !Chi @ Min!Pit @ NJ !Tor @ Chi!         !         !\n!TB  @ Chi!         !LA  @ Van!Was @ NYR!Min @ Det!         !         !\n!Win @ Edm!         !Ott @ Que!         !Edm @ Win!         !         !\n!Tor @ Har!         !StL @ Tor!         !Har @ NYI!         !         !\n!Min @ StL!         !TB  @ Win!         !Van @ LA !         !         !\n!NYI @ NJ !         !         !         !NJ  @ Pit!         !         !\n!         !         !         !         !TB  @ StL!         !         !\n+---------+---------+---------+---------+---------+---------+---------+\n\n The season will begin on 10/6 and end on 4/15. Playoffs will begin on \n4/18 and end on or before 6/14. 24 NHL regular season games will be played \nin non-NHL cities during 92-93 season. Cities: Milwaukee (2), Sacramento \n(2), Cleveland (2), Indianapolis, Phoenix, Miami, Oklahoma City, Dallas, \nAtlanta, Cincinnati, Providence, Peoria, Hamilton (4), Saskatoon (4), \nHalifax.\n\n Here is a chart showing the number of games between the teams (84 games \neach):\n\n      N N N P P W   B B H M O Q   C D M S T T   C E L S V W\n      J Y Y h i a   o u a o t u   h e i t B o   a d A J a i\n        I R i t s   s f r n t e   i t n L   r   l m     n n\n      = = = = = =   = = = = = =   = = = = = =   = = = = = =\n NJ : - 7 7 7 9 7   4 4 4 3 4 4   2 2 2 2 2 2   2 2 2 2 2 2\n NYI: 7 - 7 9 7 7   4 3 4 4 3 3   2 2 2 3 2 2   2 3 2 2 2 2\n NYR: 7 7 - 7 7 9   3 4 3 4 3 4   2 2 2 2 3 2   2 2 2 3 2 2\n Phi: 7 9 7 - 7 7   4 3 3 4 3 4   2 3 2 2 2 2   3 2 2 2 2 2\n Pit: 9 7 7 7 - 7   5 4 3 3 4 3   2 2 2 2 2 2   2 3 2 2 2 2\n Was: 7 7 9 7 7 -   3 4 4 3 4 3   3 3 2 2 2 2   2 2 2 2 2 2\n\n Bos: 4 4 3 4 5 3   - 7 7 9 7 7   2 2 2 2 2 2   2 2 2 2 2 2\n Buf: 4 3 4 3 4 4   7 - 9 7 7 7   2 2 2 2 2 2   2 2 2 2 3 2\n Har: 4 4 3 3 3 4   7 9 - 7 7 7   2 2 2 3 2 2   2 2 2 2 2 3\n Mon: 3 4 4 4 3 3   9 7 7 - 7 7   2 2 2 2 2 2   2 2 3 3 2 2\n Ott: 4 3 3 3 4 4   7 7 7 7 - 9   2 2 2 2 2 3   2 2 2 2 2 3\n Que: 4 3 4 4 3 3   7 7 7 7 9 -   2 2 2 2 3 3   2 2 2 2 2 2\n\n Chi: 2 2 2 2 2 3   2 2 2 2 2 2   - 9 7 7 7 7   3 4 5 3 4 3\n Det: 2 2 2 3 2 3   2 2 2 2 2 2   9 - 7 7 7 7   4 3 4 4 3 3\n Min: 2 2 2 2 2 2   2 2 2 2 2 2   7 7 - 9 7 7   4 4 3 3 5 4\n StL: 2 3 2 2 2 2   2 2 3 2 2 2   7 7 9 - 7 7   4 3 3 3 4 4\n TB : 2 2 3 2 2 2   2 2 2 2 2 3   7 7 7 7 - 9   3 4 3 4 3 4\n Tor: 2 2 2 2 2 2   2 2 2 2 3 3   7 7 7 7 9 -   4 3 4 4 3 3\n\n Cal: 2 2 2 3 2 2   2 2 2 2 2 2   3 4 4 4 3 4   - 7 7 9 7 7\n Edm: 2 3 2 2 3 2   2 2 2 2 2 2   4 3 4 3 4 3   7 - 7 7 7 9\n LA : 2 2 2 2 2 2   2 2 2 3 2 2   5 4 3 3 3 4   7 7 - 7 9 7\n SJ : 2 2 3 2 2 2   2 2 2 3 2 2   3 4 3 3 4 4   9 7 7 - 7 7\n Van: 2 2 2 2 2 2   2 3 2 2 2 2   4 3 5 4 3 3   7 7 9 7 - 7\n Win: 2 2 2 2 2 2   2 2 3 2 3 2   3 3 4 4 4 3   7 9 7 7 7 -\n\n Valerie Hammerl <hammerl@acsu.buffalo.edu> has posted this year's version \nof nhl.c, a schedule program for NHL games.  For example, users can find \nout the games played on a certain date or find out the next ten games \nplayed by team x. A copy can be obtained by e-mailing \n<hammerl@acsu.buffalo.edu>\n\n Following is the neutral site schedule:\n\n Tue 10/13:  Calgary vs. Minnesota @ Saskatoon\n Tue 10/20:  Ottawa vs. Toronto @ Hamilton\n Tue 11/03:  Chicago vs. Washington @ Indianapolis\n Tue 11/17:  Toronto vs. Quebec @ Hamilton\n Wed 11/18:  Buffalo vs. New Jersey @ Hamilton\n Tue 12/01:  Los Angeles vs. Chicago @ Milwaukee\n Tue 12/08:  Montreal vs. Los Angeles @ Phoenix\n Wed 12/09:  Tampa Bay vs. New York Rangers @ Miami\n Sun 12/13:  Edmonton vs. New York Islanders @ Oklahoma City\n Tue 12/15:  New York Islanders vs. St. Louis @ Dallas\n Mon 01/04:  San Jose vs. Montreal @ Sacramento\n Mon 01/18:  Hartford vs. Winnipeg @ Saskatoon\n Mon 02/08:  Boston vs. Pittsburgh @ Atlanta\n Mon 02/08:  St. Louis vs. Hartford @ Peoria\n Tue 02/16:  Philadelphia vs. Calgary @ Cincinnati\n Sat 02/20:  Quebec vs. Tampa Bay @ Halifax\n Mon 02/22:  New York Rangers vs. San Jose @ Sacramento\n Mon 02/22:  Detroit vs. Philadelphia @ Cleveland\n Tue 02/23:  Winnipeg vs. Ottawa @ Saskatoon\n Mon 03/01:  Vancouver vs. Buffalo @ Hamilton\n Thu 03/11:  Minnesota vs. Vancouver @ Saskatoon\n Tue 03/16:  Washington vs. Detroit @ Milwaukee\n Tue 03/16:  New Jersey vs. Boston @ Providence  *\n Sun 03/21:  Pittsburgh vs. Edmonton @ Cleveland\n\n * Location subject to change\n\nNHL Playoff Schedule:\n\nWales Conference Division Semifinals: April 18, 20, 22, 24, 26*, 28*, 30*\nCampbell Conference Division Semifinals: April 19, 21, 23, 25, 27*, 29*, May 1*\nWales Conference Division Finals: May 2, 4, 6, 8, 10*, 12*, 14*\nCampbell Conference Division Finals: May 3, 5, 7, 9, 11*, 13*, 15*\nWales Conference Final: May 16, 18, 20, 22, 24*, 26*, 28*\nCampbell Conference Final: May 17, 19, 21, 23, 25*, 27*, 29*\nStanley Cup Final: June 1, 3, 5, 7, 9*, 11*, 14*\n\n* - if neccessary\n\n-----\n \n- News & Scores\n \n SPIKE (bryan.k.strouse) <bks@cbnewsh.cb.att.com> posts weekday news and \nbox scores (Sunday through Thursday). John P. Curcio \n<jpc@philabs.philips.com> posts weekend news and box scores. Both maintain \ne-mail lists for faster delivery.\n Net contacts post team news as they see/hear/read it.\n \n-----\n \n- Notable team news (transactions and announcements)\n \n Note that this information is culled from press releases and posts.  It \nis updated each month and only information currently under discussion or \nof continuing importance or interest will be listed for more than two \npostings.\n \n Boston Bruins\n  Boston legislators and the developers proposing a new Boston Garden \nfinally agreed to a deal that puts the 19,000-seat, $160 million project \nback on track to be finished in September 1995.\n  Right wing Daniel Marois will be sidelined indefinitely following \nsurgery to repair a herniated disc in his back.\n**\n  Sent defenseman Glen Murray to Providence of the American Hockey League.\n\n Buffalo Sabres\n1-800-333-PUCK (1-800-333-7825)\n  Acquired left winger Bob Errey from Pittsburgh for defenseman Mike \nRamsey.\n**\n  Veteran Buffalo Sabres broadcaster Ted Darling will be inducted into the \nclub's Hall of Fame Sunday, April 11.  Darling, who joined the expansion \nSabres in 1970, was the team's play-by-play announcer on both television \nand radio until illness forced him out of the booth during last season.\n**\n  Recalled forwards Viktor Gordiouk and Doug MacDonald from Rochester of \nAmerican Hockey League.\n\n Calgary Flames\n  Acquired veteran right wing Greg Paslawski from Philadelphia for future \nconsiderations.\n**\n  Recalled center Todd Harkins and left winger Tomas Forslund from Salt \nLake City of International Hockey League.\n\n Chicago Blackhawks\n        The $175 million, privately financed United Center, scheduled to \nopen in August 1994, will be home to the NBA's Chicago Bulls and NHL's \nChicago Blackhawks. The stadium is owned by entities controlled by the two \nteams. The owners apparently still have not made a decision on whether the \nold Chicago Stadium will be razed for parking space once the new facility, \nlocated directly across the street, opens.\n  Suspended defenseman Craig Muni indefinitely for failing to report \nfollowing a trade with Edmonton.\n\n Detroit Red Wings\n  Acquired defenseman Steve Konroyd from Hartford for a sixth-round draft \npick.\n  Annnounced the signing of right wing Joe Frederick, their 13th pick in \nthe 1989 National Hockey League entry draft.\n**\n  Two contrite hockey fans have returned the stolen Michigan Sports Hall \nof Fame plaque honoring Detroit Red Wing great Gordie Howe. The bronze \nplaque was stolen more than four years ago from Cobo Hall in Detroit, site \nof the Michigan Hall of Fame.\n\n Edmonton Oilers\n  Sent forward Esa Tikkanen to the New York Rangers for center Doug \nWeight.\n  Traded defenseman Craig Muni to Chicago for forward Mike Hudson.\n  NHL commissioner Gary Bettman said the Edmonton Oilers' lease with \nNorthlands Coliseum must be improved if the team is to survive in the \ncity. Edmonton Northlands is a non-profit agency set up by the city to \nadminister exhibition facilities including the Coliseum.  Oilers owner \nPeter Pocklington calls his lease with Northlands horrendous and has \nthreatened to move the team if he doesn't get a better deal. He makes no \nmoney from parking, concessions or building advertising. The 17,313-seat \nColiseum also has few of the lucrative private boxes that produce \nsignificant revenues for other owners.\n  Announced center Kevin Todd will not need surgery but will miss the \nremainder of the season with a separated shoulder.\n\n Hartford Whalers\n  Sent defenseman Steve Konroyd to Detroit for a sixth-round draft pick.\n  Acquired left winger Robert Kron and a third-round draft pick from \nVancouver for left winger Murray Craven and a fifth-round draft pick.\n**\n  The state of Connecticut will begin negotiations to buy the Civic Center \nfrom the city in an effort to keep the financially struggling Hartford \nWhalers franchise in the city.\n\n Los Angeles Kings\n  Sent center John McIntyre to the New York Rangers for defenseman Mark \nHardy and Ottawa's fifth-round 1993 draft pick.\n\n Minnesota North Stars\n1-800-800-0435 if calling from the U.S.\n1-800-800-0458 if calling from Canada\n  The Dallas City Council has approved an agreement with the Minnesota \nNorth Stars that will bring the NHL club to Reunion Arena next season.\n  Defenseman Mark Tinordi, captain of the North Stars, will be sidelined \nthe rest of the season, including any postseason games the North Stars \nmight play, because of a broken collarbone.\n  Acquired defenseman Mark Osiecki from Winnipeg for ninth- and 10th-round \ndraft picks in 1993.\n  Added defenseman Travis Richards from the University of Minnesota.\n  A former employee filed a sexual harassment suit against Minnesota North \nStar owner Norman Green. Karen (Kari) Dziedzic, Green's former executive \nassistant, claims Green often instructed her to wear cosmetics, described \nher outfits as \"very hot\" and \"very sexy,\" once slapped her hand as she \nwas about to eat and humiliated her by grabbing her hand and rubbing it \nthrough a client's hair.\n  The Minnesota North Stars, who will move to Dallas after this season, \nannounced that nearly 11,000 season ticket reservations have been made for \ntheir new home at Reunion Arena, which has a capacity of 16,800.\n  The Met Center commission has told the Minnesota North Stars that it \nwants the club out - with its keys returned - at midnight after the last \nhome game.  The club is moving to Dallas for next season.  The club must \npay unpaid interest of $4,492.80 on the team's late rent payment for 1992, \nwhich was made earlier this month, and has been instructed not to take \nproperty such as the scoreboard and Zamboni ice-surfacing machine.\n**\n  Derian Hatcher's game-misconduct penalty was rescinded by the NHL, \nallowing the Minnesota defenseman to play in the North Stars' last two \nregular-season games.  Hatcher was given the penalty during a fight at the \nend of a loss at St. Louis on Sunday, April 11.  But the league didn't \nrescind the game-misconduct penalty Shane Churla received.  The Stars \nrecalled center Cal McGowan from their top minor league club in Kalamazoo, \nMich., to replace Churla.\n\n Montreal Canadiens\n  Acquired defenseman Rob Ramage from Tampa Bay for minor league \ndefensemen Eric Charron and Alain Cote and future considerations.\n\n New Jersey Devils\n**\n  Bernie Nicholls publicly apologized for his criticism of referee Denis \nMorel after the Devils' 5-2 loss to the Buffalo Sabres.  Nicholls was \nejected by Morel for being the third man in on a fight late in the second \nperiod of that game and afterward Nicholls called Morel \"a homer\" and \"an \nembarrassment to the referee's association.\"\n\n New York Islanders\n  Traded right wing Daniel Marois to Boston for a conditional draft \nchoice.\n\n New York Rangers\n  Obtained forward Esa Tikkanen from Edmonton for center Doug Weight.\n  Acquired left winger Mike Hartman from Tampa Bay \n  Acquired center John McIntyre from Los Angeles for defenseman Mark Hardy \nand Ottawa's fifth-round 1993 draft pick.\n  Defenseman Brian Leetch will undergo additional surgery on the right \nankle he broke in a non-skating fall and is not expected to play again \nthis season. Leetch suffered the broken ankle March 19 following a victory \nover San Jose. The team said he slipped on an icy patch of pavement as he \nwas getting out of a taxi cab in front of his apartment.\n**\n  Announced that defenseman James Patrick will require surgery on a \nherniated disc in his back and will not play again this season.\n**\n  Returned goaltender Corey Hirsch to Binghamton of the American Hockey \nLeague.\n\n Ottawa Senators\n        The Ottawa Senators received the go-ahead to build the 18,500-seat \nPalladium on the proposed location in nearby Kanata, Ont.  The projected \ncost is C$150 million. Construction will be postponed until the 1995-96 \nseason, one year behind schedule.\n  The Ottawa Senators lost their 37th consecutive NHL road game to tie the \n1974-75 Washington Capitals for most road losses in a row.\n**\n  Assigned left wing Martin St. Amour to New Haven of the American Hockey \nLeague.\n\n Philadelphia Flyers\n  The opening date of Spectrum II has been pushed back to fall 1995. \nFormal groundbreaking has been postponed indefinitely.\n  Traded veteran right wing Greg Paslawski to the Calgary Flames for \nfuture considerations.\n\n Pittsburgh Penguins\n  Traded left winger Bob Errey to Buffalo for defenseman Mike Ramsey.\n  Reacquired defenseman Peter Taglianetti from Tampa Bay Lightning for a \nthird-round 1993 draft choice.\n**\n  Revolutionary Comics of San Diego agreed to destroy all available copies \nof a Mario Lemieux comic book in a settlement with the Pittsburgh Penguins \nover a trademark infringement lawsuit.  The Penguins sued in February \ncharging that the \"Sport Stars Mario Lemieux\" comic infringed on the \nteam's logo and uniform, which are registered trademarks.\n\n Quebec Nordiques\n1-800-463-3333\n\n St. Louis Blues\n  St. Louis Blues center Ron Sutter will miss the rest of the season as a \nresult of separating his right shoulder.\n\n San Jose Sharks\n  The San Jose Sharks announced that ticket prices will increase by about \n30% for the 1993-94 season when they move from the Cow Palace into a new \n$155-million arena in San Jose.\n**\n  Recalled defenseman Tom Pederson from Kansas City of the International \nHockey League.\n**\n  Reached agreement in principle with left wing Alexander Cherbayev.\n\n Tampa Bay Lightning\n1-800-881-2639\n        At least two investor groups are poised to build a sports arena in \ndowntown Tampa if the delay-plagued company that holds a lease from the \nTampa Bay Lightning bows out. Tampa Coliseum Inc. has a lease with the \nNational Hockey League team to develop an entertainment and sports arena \nnext to Tampa Stadium, but has been unable to raise enough money for the \nproject.\n  Sent left winger Mike Hartman to the New York Rangers for center Randy \nGilhen.\n  Sent defenseman Peter Taglianetti to Pittsburgh for a third-round 1993 \ndraft choice.\n  Sent defenseman Rob Ramage to the Montreal Canadiens for minor league \ndefensemen Eric Charron and Alain Cote and future considerations.\n**\n  Manon Rheaume's first starting appearance in goal for the Atlanta \nKnights was impressive enough for her coach to say she has a chance to be \na backup goalie for another minor league team next season. Rheaume, the \nfirst female to play professional hockey, stopped 25 shots and gave up six \ngoals against the Cincinnati Cyclones on Saturday night, April 10. After \nthe game, her coach, Gene Ubriaco, said Rheaume performed well enough to \ncompete for the No. 2 goalie spot with the Louisville IceHawks of the East \nCoast Hockey League next season. The Knights and the IceHawks are minor \nleague clubs of the Tampa Bay Lightning.\n**\n  As their first season comes to a close, there are rumors swirling that \nthe Tampa Bay Lightning just might become the Atlanta Lightning.  Or the \nMinnesota Lightning.  But they are just rumors, according to Lightning \ngeneral manager Phil Esposito.  ESPN reported on Sunday, April 11, that \nthe Lightning, who have been playing in 10,400-seat Expo Hall, are \nexploring opportunities to move to either Atlanta or Minneapolis.  But \nEsposito said there was no truth to the report.  \"We were disappointed \nwith ESPN's irresponsible comment,\" Esposito said.  \"There is just no \nsubstance to the rumor.\" Rumors have been swirling for the past two years \nregarding a move by Tampa Bay, which is presently discussing plans to \nbuild a new arena.\n\n Toronto Maple Leafs\n**\n  Defenseman Matt Martin, who helped Maine win the 1993 NCAA hockey \nchampionship, gave up his final year of eligibility and signed a contract \nwith the Toronto Maple Leafs.\n\n Vancouver Canucks\n       The Vancouver Canucks have cleared the last hurdle in their effort \nto build a new stadium. Vancouver council has given the green light for \nthe 100 million dollar complex. It will seat 20 thousand people and will \nhave an adjoining office tower. It will be built between the viaducts near \nB.C. Place in Vancouver. Site preparation will begin this summer, with a \ncompletion date of Fall 1995.\n  Traded left winger Robert Kron and a third-round draft pick to Hartford \nfor left winger Murray Craven and a fifth-round draft pick.\n  Obtained defenseman Dan Ratushny from Winnipeg for a ninth-round draft \npick.\n**\n  Signed right wing Brian Loney to a multi-year contract and assigned him \nto Hamilton of American Hockey League (AHL).\n\n Washington Capitals\n(301) 808-CAPS\n  Traded goaltender Jim Hrivnak and future considerations to Winnipeg for \ngoaltender Rick Tabaracci.\n\n Winnipeg Jets\n        Winnipeg Jets have been allowed economic assistance in order to \nkeep them in the Smythe division as a result of expansion.\n  Sent defenseman Mark Osiecki to Minnesota for ninth- and 10th-round \ndraft picks in 1993.\n  Sent goaltender Rick Tabaracci to Washington for Jim Hrivnak and future \nconsiderations.\n  Sent defenseman Dan Ratushny to Vancouver for a ninth-round draft pick.\n  Winnipeg's Teemu Selanne broke the NHL's rookie points record. The Jets \nrookie tied the record of 109 points, set by Peter Stastny with Quebec \n(1980-81), with a goal, his 66th of the season, and moved ahead on an \nassist in a 5-4 loss to Toronto.\n**\n  The Fort Wayne Komets said they have been told by Winnipeg that the Jets \nwill keep a minor league affiliation with Moncton of the American Hockey \nLeague. There have been reports the Jets would move players from Moncton \nto Fort Wayne next season.\n\n-----\n\n- Expansion news:\n\n  The National Hockey League announced that the expansion Anaheim and \nSouth Florida franchises will join the league for the 1993- 1994 season.\n\n        Disney and National Hockey League officials announced Monday, \nMarch 1, that the Mighty Ducks of Anaheim, Disney's expansion team, will \ntake to the ice next fall. Michael Eisner, chairman and chief executive \nofficer of the Walt Disney Co., said the Mighty Ducks will play at the \nPond, the new Anaheim sports arena, near Disney's flagship theme park. The \narena is under construction and will be completed in June. The Pond seats \n17,350. The team still must meet the league's requirement that it sell at \nleast 10,000 season tickets for the final grant of NHL membership.\n\n        Anaheim named Jack Ferreira general manager and Pierre Gauthier \nassistant general manager.\n**\n  Veteran NHL scout Al Godfrey has been hired as the Midwest regional \nscout for the Anaheim Mighty Ducks.\n\n        Philadelphia Flyers' senior vice president Bobby Clarke was named \nMonday, March 1, to the post of general manager for Miami's NHL expansion \nteam. Franchise owner H. Wayne Huizenga made the announcement at the Miami \nArena, three months after being awarded a franchise. Huizenga said he \nplans to have a team on the ice in time for the beginning of the NHL \nseason in October.\n\n-----\n\n- Realignment:\n\nEastern Conference\n\nAtlantic Division\n\nWashington Capitals, New Jersey Devils, New York Islanders, New York \nRangers, Philadelphia Flyers, South Florida, Tampa Bay Lightning\n\nNortheast Division\n\nBoston Bruins, Buffalo Sabres, Hartford Whalers, Montreal Canadiens, \nOttawa Senators, Pittsburgh Penguins, Quebec Nordiques\n\nWestern Conference\n\nCentral Division\n\nChicago Blackhawks, Dallas Stars, Detroit Red Wings, St. Louis Blues, \nToronto Maple Leafs, Winnipeg Jets\n\nPacific Division\n\nAnaheim Mighty Ducks, Calgary Flames, Edmonton Oilers, Los Angeles Kings, \nSan Jose Sharks, Vancouver Canucks\n\n  Schedule: Eastern Conference teams will play five games against each of \nsix divisional opponents (30); four games against each of the seven teams \nin the conference's other division (28) and two games against each of the \n12 Western Conference members (24).\n\nWestern Conference teams will play six games against each of five \ndivisional opponents (30); four games against each of the six teams in the \nconference's other division (24) and two games against each of the 14 \nEastern Conference clubs (28).\n\n  Playoffs: The system will be conference-based, with the No. 1 team \nmeeting the No. 8 team in the first round, No. 2 vs. No. 7, No. 3 vs. No. \n6 and No. 4 vs. No. 5. Matchups will be based on overall points with the \nfour division champions being placed in the first- or second-place seeds \nin each conference and being assured of home-ice in the first two playoff \nrounds. All series will be best of seven (2-2-1-1-1 rotation) except \nmatchups between Central and Pacific teams.  Those series will rotate 2-3-\n2 to reduce travel.  In those cases, the team with the most regular-season \npoints will choose whether to start the series at home or away.\n\n-----\n\n- Draft news:\n\n        Under terms of the new expansion draft, which will be held in \nJune, each of the 24 existing clubs will be allowed to protect one \ngoaltender, five defensemen and nine forwards. The most recent expansion \ndrafts allowed teams to protect two goalies and did not make a distinction \nbetween forwards and defensemen.\n        First-year pros only will be exempt from the draft, which is down \nfrom the two-year exemption teams had last season. San Jose, Tampa Bay and \nOttawa still will be allowed to exempt second-year pros.\n        Each of the 24 teams will lose two players, with a maximum loss of \none goaltender and a maximum loss of one defenseman. The one exception is \nthat a team which loses a goaltender can then no longer lose a defenseman.\n        At the end of the first phase of the draft, the two new franchises \nwill have three goaltenders, eight defensemen and 13 forwards for a total \nof 24 players. A second phase then will be conducted where San Jose, Tampa \nBay and Ottawa will select two players each from the rosters of the two \nnew teams.\n        Ottawa, Tampa Bay and San Jose will be guaranteed priority \ndrafting selection in the 1993 draft as long as they have the three worst \nrecords. Anaheim and Miami will choose no lower than fourth and fifth. The \nexpansion franchises will move up in the draft should either San Jose, \nTampa Bay or Ottawa not finish in the bottom three positions.\n        The two new teams will pick first and second in the 1994 Entry \nDraft, regardless of their finish in 1993-94. Should either of the two new \nteams not play next season they would have priority drafting position in \n1994.\n\n        The owners announced the 1994 draft will be in Hartford and the \n1995 draft in Winnipeg. The 1994 draft was scheduled for Boston, but a \ndelay in the construction of a new arena required the draft be moved.\n\n-----\n \n- League news:\n\nDisputes:\n\n  The NHL owners and players have resolved differences over salary \narbitration procedures, clearing the way for about 40 hearings.  NHLPA \nexecutive director Bob Goodenow didn't disclose how the issues were \nresolved, but the prior sticking point had been the manner in which \nstatistics were used in arbitration hearings.\n\nOlympics:\n\n  The NHL announced February 26, 1993, it will not make professional \nplayers available to compete in the 1994 Winter Olympics.\n\nLeague Leadership:\n\n        Los Angeles Kings owner Bruce McNall succeeded Blackhawks owner \nBill Wirtz as chairman of the NHL's powerful Board of Governors. Appointed \nto join McNall on the Executive Committee were Ron Corey of the Montreal \nCanadiens, Mike Ilitch of the Detroit Red Wings, Peter Pocklington of the \nEdmonton Oilers and Ed Snider of the Philadelphia Flyers.\n\n        Gary Bettman, vice president and general counsel of the National \nBasketball Association, was named commissioner of the National Hockey \nLeague, Friday, December 11, 1992.\n\nMiscellaneous:\n\n        Henri Richard, Bernie Parent and Billy Smith have been named \nspecial ambassadors for the Stanley Cup Centennial, a season-long \ncelebration of the NHL championship trophy. The trio will appear at \nleague-wide function such as the All-Star Game and Stanley Cup playoffs.\n\n        The National Hockey League named John N. Turner, former Prime \nMinister of Canada, to serve on Board of Directors of Hockey Hall of Fame \nand Museum and nominated Scotty Morrison, David M. Taylor, Larry Bertuzzi, \nRobert G. Bundy, Walter Bush, Murray Costello, Jim Gregory, Leslie Kaplan, \nLawrence G. Meyer and Alan Tonks to serve on Board, which takes office \nMarch 30.\n\n  NHL President Gil Stein was one of four individuals elected to the \nHockey Hall of Fame Builder's category. The others were Buffalo Sabres' \nChairman of the Board and President Seymour Knox III, Vancouver Canucks' \nChairman Frank Griffiths and veteran Canadian hockey executive Fred Page. \nFormer NHL linesman John D'Amico was selected in the Hall of Fame's \nReferee-Linesman category.\n\n-----\n \n- NHL TV\n\n Games are carried on TSN and CBC in Canada, on ESPN in the U.S.  Check \nyour local listings.\n\n        The National Hockey League has struck a conditional five-year deal \nwith ESPN to televise professional hockey through the 1996-97 season.\n        The series of agreements grants ESPN exclusive national coverage \nof the NHL starting with the 1992-93 season, and the cable network has an \noption to extend the term of that domestic agreement for four more years. \nThe deal also grants ESPN exclusive international television distribution, \nexcluding Canada, for the next five years.\n        The league's new TV contract calls for ESPN to televise up to 25 \nregular-season games to its domestic audience this coming season and 37 \nplayoff games, including the entire Stanley Cup Final. The majority of \nESPN's regular-season games will be televised on Friday nights.\n\n        NHL Commissioner Gary Bettman announced Wednesday, March 3, that \nABC Sports will televise five Stanley Cup playoff games starting next \nmonth. ABC will carry the playoff games on its network through an \narrangement with ESPN, the U.S. rightsholder for NHL games. ESPN will \nprovide the production of the games. ABC owns ESPN.\n  April 18 - Wales Conference Game #1 Quarterfinals\n  April 25 - Campbell Conference Game #4 Quarterfinals\n  May 2 - Wales Conference Game #1 Semifinals\n  May 9 - Campbell Conference Game #4 Semifinals\n  May 16 - Wales Conference Game #1 Finals\n\n-----\n \n- Award winners, all-star teams, hall of fame inductees, and draft picks\n \n 91-92 Award Winners:\n Hart Trophy (MVP): Mark Messier (NYR)\n Vezina Trophy (best goalie): Patrick Roy (Mon)\n Norris Trophy (best defenseman): Brian Leetch (NYR)\n Calder Trophy (best rookie): Pavel Bure (Van)\n Selke Trophy (best defensive forward): Guy Carbonneau (Mon)\n Lady Byng Trophy (sportsmanship): Wayne Gretzky (LA)\n Jack Adams Award (best coach): Pat Quinn (Van)\n Bill Masterton Memorial Trophy (perseverance): Mark Fitzpatrick (NYI)\n King Clancy Trophy (contribution to community): Ray Bourque (Bos)\n Jennings Trophy (lowest team GAA): Patrick Roy (Mon)\n Art Ross Trophy (most scoring points): Mario Lemieux (Pit)\n\n        Hall of Famer players Frank Boucher and Red Dutton and executives \nBruce McNall and Gil Stein Thursday were named the 1993 winners of the \nLester Patrick Award for ``outstanding service to hockey in the United \nStates''. The award is selected each year by a committee representing a \nwide cross-section of the hockey community.\n\n 91-92 1st All-Star Team: Patrick Roy (G, Mon), Ray Bourque (D, Bos), \nBrian Leetch (D, NYR), Mark Messier (C, NYR), Brett Hull (RW, StL), Kevin \nStevens (LW, Pit)\n\n 92-93 All-Star Game Starters (as voted by fans):\nWales Conference: Mario Lemieux (C, Pittsburgh), Jaromir Jagr (W, \nPittsburgh), Kevin Stevens (W, Pittsburgh), Ray Bourque (D, Boston), Brian \nLeetch (D, Rangers), Patrick Roy, (G, Montreal).\nCampbell Conference: Steve Yzerman (C, Detroit), Brett Hull (W, St. \nLouis), Pavel Bure (W, Vancouver), Chris Chelios (D, Chicago), Paul Coffey \n(D, Los Angeles), Ed Belfour (G, Chicago)\n\n 91-92 All-rookie team: Gilbert Dionne (LW, Mon), Tony Amonte (RW, NYR), \nKevin Todd (C, NJ), Vladimir Konstantinov (D, Det), Nicklas Lidstrom (D, \nDet), Dominik Hasek (G, Chi).\n\n 1992 Hall of Fame Inductees: Marcel Dionne, Bob Gainey, Lanny McDonald, \nand Woody Dumart.\n\n First round of the 1992 entry draft:\n  # Player (pos, team)\n  1 Roman Hamrlik (D, TB)\n  2 Alexei Yashin (C, Ott)\n  3 Mike Rathje (D, SJ)\n  4 Todd Warriner (LW, Que)\n  5 Darius Kasparaitis (D, NYI)\n  6 Cory Stillman (C, Cal)\n  7 Ryan Sittler (LW, Phi)\n  8 Brandon Convery (C, Tor)\n  9 Robert Petrovicky (C, Har)\n 10 Andrei Nazarov (LW, SJ)\n 11 David Cooper (D, Buf)\n 12 Sergei Krivokrasov (LW, Chi)\n 13 Joe Hulbig (LW, Edm)\n 14 Sergei Gonchar (D, Was)\n 15 Jason Bowen (LW, Phi)\n 16 Dmitri Kvartalnov (LW, Bos)\n 17 Sergei Bautin (D, Win)\n 18 Jason Smith (D, NJ)\n 19 Martin Straka (C, Pit)\n 20 David Wilkie (D, Mon)\n 21 Libor Polasek (C, Van)\n 22 Curtis Bowen (LW, Det)\n 23 Grant Marshall (RW, Tor)\n 24 Peter Ferraro (C, NYR)\n\n-----\n\n- New NHL Rules\n\n Game ejection for instigating a fight.\n Helmets are optional.\n Grabbing an opponent's stick as a defensive move is a penalty.\n Diving to draw a penalty is a penalty.\n Coincidental minors when both teams are full-strength result in 4 vs. 4 \nplay.\n High sticking is from the waist up.\n\n - New CBA - ratified by NHLPA on 4/11/92\n \n Term: September 16, 1991 to September 15, 1993.\n \n Licensing and endorsements: Players own exclusive rights to their \nindividual personality, including their likenesses.\n \n Salary arbitration: New rules negotiated; 8 salary arbitrators to be \njointly agreed upon.\n \n Free agency: Compensation scale reduced for players age 30 and under. \nGroup III free agent age reduced to 30 from 31. A player who has completed \n10 or more professional seasons (minor or NHL) and who in last year of \ncontract didn't earn more than the average NHL salary, can elect once in \nhis career to become an unrestricted free agent at the end of his \ncontract.\n \n Salary and awards: Players' playoff fund increased to $7.5M in 1991-92 & \n$9M in 92-93. New minimum salary of $100,000.\n \n Insurance: $200,000 disability coverage. Dental & broad-based medical \nimprovements. 100% increase in life insurance for players; coverage for \nwives.\n \n Pension: Improved pension contributions of $8000 to $12500 per player per \nyear, depending on the player's number of NHL games. Agreement on language \nto guarantee continuation of Security Plan negotiated in 1986.\n \n Regular season: Increased from 80 to 84 games in 92-93. For 2 games \nplayed at neutral sites, all arrangements and revenues to be shared.\n \n Rosters: Kept at 18 skaters and 2 goaltenders for 92-93.\n \n Entry draft: Reduced to 11 rounds from 12.\n \n Supplemental draft: One selection for each non-playoff team.\n \n Joint study group: Examine financial state of NHL & issue report to \nassist in preparing for 1993 negotiations\n\n-----\n \n NHL free agency categories (effective until 9/15/93)\n\n Group I:\n  - players aged 24 and under\n  - player's choice of player equalization or draft pick compensation\n  - for compensation, old club has right to match offer from new club\n  - for equalization, old club has no right to match offer\n  - equalization, which can consist of players, draft picks, and/or cash,\n    must be agreed upon between two clubs or submitted to arbitration\n\n Group II:\n  - players aged 25 to 29\n  - player's choice of player equalization or draft pick compensation\n  - for equalization, old club has right to match offer only if it is\n    at least $351,000\n  - for compensation, schedule is:\n    one first round pick if player signs for $350,000-$500,000/year\n    two first round picks if player signs for $500,000-$1 million/year\n    extra first round pick for each additional $1M over $1M/year\n\n Group III:\n  - players aged 30 and over\n  - old club gets no compensation, but has right to match offer\n  - to receive right to match, old club must make qualifying offer of 15%\n    over player's salary in prior season\n\n Group IV:\n  - players considered defected free agents\n\n Group V:\n  - player with 10 years of experience whose salary is below NHL average\n    can choose to be a free agent without compensation once in his career.\n \n--------------------------------------------------------------------------\n \n2. NHL Minor Leagues\n\n The NHL minor leagues are the International Hockey League, the American \nHockey League and the East Coast Hockey League.  Information on the \nCentral Hockey League and the American Hockey Association can be found in \nsection 4.\n\n-----\n \n IHL\n \n contacts:\n  IHL: Rob Springall <rgs7077@ultb.isc.rit.edu>\n  Atlanta Knights: Scott Clarkson <gt3394c@prism.gatech.edu>\n  Cincinnati Cyclones: Joseph Combs <jgcombs@uceng.UC.EDU>\n  Cleveland Lumberjacks: Rob Gasser <CSRAG@uoft02.utoledo.edu>\n  Ft. Wayne Komets: Rob Gasser <CSRAG@uoft02.utoledo.edu>\n**\n  Milwaukee Admirals: Jason Hanson <jason@studsys.mscs.mu.edu>\n  Salt Lake Golden Eagles: Roland Behunin <behunin@logdis1.oo.aflc.af.mil>\n\n  The International Hockey League has granted a franchise to a Las Vegas \ngroup headed by Henry Stickney for the 1993-1994 season.\n\n**\n        The International Hockey League named Bob Chase. voice of the Fort \nWayne Komets, as the league's broadcaster of the year. The IHL also said \nthe annual award, effective next year, will be named in Chase's honor.\n        Also honored by the IHL were Jim Loria of the Kansas City Blades \nas marketing director of the year, Shelly Gartner of the Phoenix \nRoadrunners as merchandise manager of the year and Steve Doherty of the \nKalamazoo Wings as public relations director of the year.\n\n**\n        The Atlanta Knights of the International Hockey League announced \nThursday, April 8, that Manon Rheaume will be the starting goaltender in a \nhome game Saturday night, April 10, against the Cincinnati Cyclones. \nRheaume will become the first female to start in a regular season \nprofessional hockey game.\n\n**\nFort Wayne -- Announced winger Scott Gruhl will retire at the end of the \nInternational Hockey League season. Gruhl will join the Muskegon Fury of \nthe Colonial League.\n**\n  The Fort Wayne Komets said they have been told by Winnipeg that the Jets \nwill keep a minor league affiliation with Moncton of the American Hockey \nLeague. There have been reports the Jets would move players from Moncton \nto Fort Wayne next season.\n\n**\n  The San Diego Gulls of the International Hockey League set a record with \ntheir 61st victory, 5-1, over the Salt Lake Golden Eagles. The Gulls (61-\n11-8) became the first team in professional hockey to win that many games \nin a season. The 1976-77 Montreal Canadiens won 60 games.\n\n  IHL's 1992 Turner Cup: The Kansas City Blades defeated Muskegon \nLumberjacks 4 games to 0.\n\n-----\n \n AHL\n\n contacts:\n  AHL: Rob Springall <rgs7077@ultb.isc.rit.edu>\n       Bri Farenell <farenebt@craft.camp.clarkson.edu>\n       Mark Anania <ananim@rpi.edu>\n\nSee Section 5 for newsletter information.\n\n Atlantic Division: Cape Breton, Fredericton, Halifax, Moncton, St. John's\n Northern Division: Adirondack, Capital District, Providence, New Haven, \nSpringfield\n Southern Division: Baltimore, Binghamton, Hershey, Rochester, Utica, \nHamilton\n\n       The New Haven Senators have been sold by Peter Shipman to the \nOttawa Senators NHL organization. They are the only Canadian NHL team with \nan American AHL affiliate, and have made it clear they intend to move the \nteam to somewhere in the Canadian Atlantic Provinces. This sale and move \nhas yet to be approved by the AHL head office, but is expected to pass \neasily at the general meeting in May.\n  The Baltimore Skipjacks, the Washington Capitals' American Hockey League \naffliate, will skate next season as the Portland Pirates.\n  The Calgary Flames will base their farm team in the AHL in St. John, New \nBrunswick next season.  The team will be called the St. John Blue Flames.\n**\n  The Fort Wayne Komets of the IHL said they have been told by Winnipeg of \nthe NHL that the Jets will keep a minor league affiliation with Moncton of \nthe American Hockey League. There have been reports the Jets would move \nplayers from Moncton to Fort Wayne next season.\n\n  AHL's 1992 Calder Cup: The Adirondack Red Wings beat the St. John's \nMaple Leafs 4 games to 3. The home-ice curse held true as all games in the \nfinal were won by the visiting team. \n  John Anderson (New Haven) is 1992 winner of Les Cunningham Plaque as AHL \nMVP.\n \n-----\n \n ECHL\n\ncontacts:\n  ECHL, Toledo Storm: Rob Gasser <CSRAG@uoft02.utoledo.edu>\n\n        The Toledo Storm hockey team is asking SeaGate Convention Center \nto consider becoming its host site beginning with the 1994-95 season. The \nStorm, which has played its last two seasons in the Toledo Sports Arena, \nsaid it asked for 55 dates in the downtown facility. The Storm also has \nbeen talking with backers of a proposed ice complex in suburban Sylvania \nto become a primary tenant.\n\n ECHL's 1992 Riley Cup: Hampton Roads beat Louisville 4 games to 0.\n\nSee Section 5 for newsletter information.\n\n-----\n \n Minor League Affiliates for NHL teams:\n \n Bos: Providence Bruins (AHL), Johnstown Chiefs (ECHL)\n Buf: Rochester Americans (AHL), Erie Panthers (ECHL)\n Cal: Salt Lake Golden Eagles (IHL), Roanoke Valley Rebels (ECHL)\n Chi: Indianapolis Ice (IHL), Columbus Chill (ECHL), St. Thomas (Col. HL)\n Det: Adirondack Red Wings (AHL), Toledo Storm (ECHL)\n Edm: Cape Breton Oilers (AHL), Winston-Salem Thunderbirds (ECHL)\n Har: Springfield Indians (AHL), Louisville Icehawks (ECHL)\n LA : Phoenix Roadrunners (IHL), Raleigh Icecaps (ECHL)\n Min: Kalamazoo Wings (IHL), Dayton Bombers (ECHL)\n Mon: Fredericton Canadiens (AHL), Winston-Salem Thunderbirds (ECHL), \nFlint (Col. HL)\n NJ : Utica Devils (AHL), Birmingham Bulls (ECHL)\n NYI: Capital District Islanders (AHL), Richmond Renegades (ECHL)\n NYR: Binghamton Rangers (AHL)\n Ott: New Haven Senators (AHL), Thunder Bay (Col. HL)\n Phi: Hershey Bears (AHL)\n Pit: Cleveland Lumberjacks (IHL), Knoxville Cherokees (ECHL)\n Que: Halifax Citadels (AHL), Greensboro Monarchs (ECHL)\n SJ : Kansas City Blades (IHL), Nashville Knights (ECHL)\n StL: Peoria Rivermen (IHL), Dayton Bombers (ECHL), Flint (Col. HL)\n TB : Atlanta Knights (IHL)\n Tor: St. John's Maple Leafs (AHL), Raleigh Icecaps (ECHL), Brantford \n(Col. HL)\n Van: Columbus Chill (ECHL), Hamilton Canucks (AHL)\n Was: Baltimore Skipjacks (AHL), Hampton Roads Admirals (ECHL)\n Win: Moncton Hawks (AHL), Thunder Bay (Col. HL)\n \n Ind: Cincinnati Cyclones (IHL)\n      Fort Wayne Komets (IHL)\n      Michigan Falcons (Colonial HL)\n      Milwaukee Admirals (IHL)\n      San Diego Gulls (IHL)\n      St. Thomas (Colonial HL)\n\n--------------------------------------------------------------------------\n \n3. College Hockey\n \ncontacts:\n  NCAA: Mike Machnik <nin15b34@merrimack.edu>\n  Wisconsin Badgers: Jeff Horvath <horvath@cs.wisc.edu>\n  CCHA, Bowling Green State: Keith Instone <instone@euclid.bgsu.edu>\n  ECAC, Clarkson: Bri Farenell <farenebt@craft.camp.clarkson.edu>\n\n- e-mail lists:\n Wayne Smith <wts@maine.maine.edu> maintains 2 lists, one for discussions \n(HOCKEY-L) and one for news (HOCKEY-D):\n \n send e-mail to <listserv@maine.maine.edu> with body:\n SUBSCRIBE HOCKEY-L <name & favorite team>\n or\n SUBSCRIBE HOCKEY-D <name>\n   (a read-only list containing news from HOCKEY-L)\n\nUp-to-date Division I standings and scores can be obtained through the \narchives of the College Hockey Mailing List.  Send a message to the server \nat listserv@maine.maine.edu with the body containing ONLY the commands \n(either or both)\n\n - ftp site: andy.bgsu.edu\n  The directory \"pub/Hockey\" contains CCHA press releases, scores, \nstandings, and rosters. The sub-directory \"Archives\" has archives of the \nDivision I college hockey mailing list since 1989. Also, archives from the \nDivision III list since May 1992 are available.\n\n  NCAA hockey championship:\nSemi-finals:  Maine 4, Michigan 3 (OT)\n              Lake Superior State 6, Boston University 1\nFinals:  Maine 5, Lake Superior State 4\n\n  Freshman Paul Kariya who was named winner of the 1992-93 Hobey Baker \nAward as college hockey's top player.\n\n**\n  The NCAA Division I Hockey Championships will be held at the St. Paul \nCivic Center in St. Paul, Minnesota, on March 31 and April 2, 1994.\n  For priority seating call the University of Minnesota Ticket Office at \n(612) 624-8080, between 8:00 a.m. and 5:00 p.m., Monday through Friday or \nsend a postcard to:\n\nUniversity of Minnesota Ticket Office\n1994 NCAA Hockey Championships\n516 15th Avenue SE\nMinneapolis  MN  55455\n\n- NCAA Division I Teams\n \n CCHA (Central Collegiate Hockey Association):\nBowling Green, Ferris State, Illinois-Chicago, Lake Superior, Miami, \nMichigan, Michigan State, Ohio State, Western Michigan, Notre Dame, Kent \nState, Alaska-Fairbanks (affiliate member )\n \n        CCHA Playoff structure:  The top 6 will host the bottom 6 (1 vs \n12, 2 vs 11, etc) in a two-of-three weekend series The six winners will \nadvance to Joe Louis Arena for single elimination the rest of the way. The \ntop 2 remaining seeds get a bye while 3 plays 6 and 4 plays 5 on the first \nnight. On the second night, the 4 remaining teams battle it out, leaving \nonly two to play for the championship, on the third night. Alaska-\nFairbanks, as an affiliate member, will be seeded from #7 to #12 by the \nleague office.\n\n ECAC (Eastern College Athletic Conference) (men's):\nBrown, Clarkson, Colgate, Cornell, Dartmouth, Harvard, Princeton, RPI, St. \nLawrence, Union, Vermont, Yale\n\n ECAC (Eastern College Athletic Conference) (women's):\nBrown, Colby, Cornell, Dartmouth, Harvard, New Hampshire, Northeastern, \nPrinceton, Providence, Rochester Institute of Technology, St. Lawrence, \nYale\n\n        The Eastern Collegiate Athletic Conference unveiled the nation's \nfirst intercollegiate women's ice hockey league and announced the 12 teams \nwill begin play in the 1993-94 season. The top eight finishers in the ECAC \nWomen's Ice Hockey League will qualify for a post-season tournament. The \nleague replaces an informal 15-team conference of nine Division I and six \nDivision III schools, which held their own respective division tournaments \nat the end of the regular season. The ECAC said it would discontinue its \nDivision III women's tournament after the 1992-93 season.\n\n Hockey East:\nBoston College, Boston University, UMass-Lowell, Maine, Merrimack, New \nHampshire, Northeastern, Providence\n \n WCHA (Western Collegiate Hockey Association):\nColorado College, Denver, Michigan Tech, Minnesota, Minnesota-Duluth, \nNorth Dakota, Northern Michigan, St Cloud, Wisconsin\n \nAlaska-Anchorage has joined the WCHA as a full-fledged member for 93-94\n \n Independents:\nAir Force, Alabama-Huntsville, Alaska-Anchorage, Alaska-Fairbanks, Army\n\n-----\n\n - Canadian Intercollegiate Athletic Union\n\n CIAU Championships:\n Finalists:\n Team:                                         Division:\n University of Alberta Golden Bears            West\n University of Guelph Gryphons                 Ontario West\n University of Toronto Varsity Blues           Ontario East\n University of Acadia Axemen                   East\n\n Semi-finals:  Acadia 9, Alberta 4\n               Toronto 3, Guelph  2\n Finals:  Acadia 12, Toronto 1\n\n--------------------------------------------------------------------------\n \n4. Other Hockey Leagues\n \n - 1992 World Championships in Czechoslovakia\n \n Sweden defeated Finland 5-2 (gold medal match)\n Czechoslovakia defeated Switzerland 5-2 (bronze medal match)\n \n Final Standings (round robin):\n \n GROUP A   W T L  GF GA Pts   GROUP B  W T L  GF GA PTS\n Finland   5 0 0  32  8  10   Russia   4 1 0  23 10   9\n Germany   4 0 1  30 14   8   Czech    4 0 1  18  7   8\n USA       2 1 2  14 15   5   Switz    2 2 1  12 11   6\n Sweden    1 2 2  14 12   4   Canada   2 1 2  15 18   5\n Italy     1 1 3  10 18   3   Norway   1 0 4   8 16   2\n Poland    0 0 5   8 41   0   France   0 0 5   8 22   0\n \n Austria will replace Poland in Pool A of 1993 WC in Germany\n \n  The 1993 World Championships (Pool A) is scheduled to run from Apr 18 to \nMay 2 in Munich, Germany.\n\n-----\n**\n - 1993 World Championships (Pool B) in Eindhoven, the Netherlands\n\n                    #g    w l t    pts      gf    ga\n1. Great Britain     7    7 0 0    14       50    13\n2. Poland            7    6 1 0    12       71    12\n3. Netherlands       7    5 2 0    10       47    20\n4. Denmark           7    4 3 0     8       38    24\n5. Japan             7    3 4 0     6       34    31\n6. Romania           7    2 5 0     4       20    44\n7. China             7    1 6 0     2       12    79\n8. Bulgaria          7    0 7 0     0        9    58\n\nGreat Britain advances to Pool A.  Bulgaria is relegated to Pool C.\n\n-----\n \n - 1992 Olympic Games\n**\n- e-mail lists:\n Charlie Slavin <slavin@maine.maine.edu> maintains OlymPuck - The Olympic \nHockey Discussion List:\n \n send e-mail to <listserv@maine.maine.edu> with body:\nSUBSCRIBE   OlymPuck   your_name   favorite country(ies)\n\n CIS won the gold, Canada the silver, and Czechoslovakia the bronze \n(defeated USA).\n \n Yale hockey coach Tim Taylor was named coach for the '94 US Olympic Team.\n \n Dany Dube from the UQTR Patriotes (CIAU) and Tom Renney from the Kamloops \nBlazers (WHL) are co-coaches of Canada's national program.\n\n     The 1998 Nagano Winter Olympic Organizing Committee said it has \napproved the addition of women's ice hockey and curling to the list of \nofficial medal events at the Games.  The decision, which came at the \norganizing committee meeting here, followed an accord reached in Nagano \nbetween the committee and the IOC Coordination Committee.  The decision \nwill be formally ratified by an Executive Board meeting of the \nInternational Olympic Committee (IOC) and its Session.  As a result, the \nnumber of total events at Nagano will increase to 64 in seven sports.\n\n-----\n \n- 1991 Canada Cup\n \n Team Canada defeated Team USA 2 games to 0.\n \n-----\n\n - 1992 Izvestia hockey tournament\n\n Final:  Russia II - Czechoslovakia  2-1\n Game for 3rd and 4th place:  Russia I - Sweden  4-1\n Game for 5th and 6th place:  Finland - Switzerland  3-1\n Game for 7th and 8th place:  Canada - Germany  6-1\n\n Final Standings for the 25th Izvestia Cup:\n  1. Russia II (the Russian Olympic team)\n  2. Czechoslovakia\n  3. Russia I\n  4. Sweden\n  5. Finland\n  6. Switzerland\n  7. Canada\n  8. Germany\n\n-----\n\n- 1992 Germany Cup\n\n        Russia defeated Team Canada 6-3 to win the $170,000 four-team \nGermany Cup for the third time. The Russian team, coached for the first \ntime by the legendary Boris Michailov, assured itself of the $67,000 \nwinner's check after a 3-1 win over Czechoslovakia. The former Soviet \nUnion and Commonwealth of Independent States captured the tournament in \n1988 and 1991 under Viktor Tikhonov.\n\n-----\n\n- 1992 Spengler Cup\n\n        Canada, with Fabian Joseph scoring his second goal of the game at \n3:47 of overtime, beat Farjestad (Sweden) 6-5 in the final of the Spengler \nCup at Davos, Switzerland. The Canadians overcame a two-goal deficit in \nthe final two minutes of regulation and went on to earn their second \novertime victory within 15 hours.\n\n Final:\n\n Team Canada - Farjestad (Sweden)  6-5 (1-1,2-2,2-2,1-0)  OT\n\n-----\n\n- 1992 European cup finals\n\nDuesseldorf, December 30, 1992\n\nBronze:  Jokerit Helsinki - Lions Milano 4-2.\n\nGold:  Malmoe IF - Dynamo Moscow 4-3 (Shootout)\n\n  This was the third successive European championship for a Swedish team: \nin 1990 and 1991 the champion was Djurgaarden (Stockholm).\n\n-----\n\n- 1993 Sweden Hockey Games\n**\n Final Standings:\n\n                     GP  W T L  GF-GA      P\n 1. Sweden            3  2 0 1  13- 8  +5  4\n 2. Czech Republic    3  2 0 1  16-11  +5  4\n 3. Russia            3  1 1 1   9-11  -2  3\n 4. Canada            3  0 1 2  13-21  -8  1\n\n Sweden wins due to head-to-head result vs the Czech republic.\n\n-----\n \n- Junior Leagues\n \n contact:\n  WHL: Randy Coulman <coulman@skdad.usask.ca>\n       Mitch McGowan <hamlet@u.washington.edu>\n\n        The site for the 75th Memorial Cup Tournament has yet to be \nchosen.  It will be staged in Ontario but the exact location won't be \ndetermined until next spring.\n        In March of '93, the two regular-season division champions from \nthe Ontario Hockey League will meet in a best-of-seven series at the start \nof the playoff season.  The winner of the series earns the right to host \nthe Memorial Cup, traditionally held in May.\n        The eventual OHL champion will also participate in the tourney. \nBut if the league champs also happen to be the club hosting the Memorial \nCup, then the league finalists will advance as well.\"\n\n Charles Poulin (Mon draft) of St-Hyacinthe (QMJHL) is '92 Canadian Hockey \nLeague Player of the Year.\n \n 1992 Memorial Cup at Seattle\n \n Round-robin standings              W  L  GF  GA\n Sault Ste. Marie Greyhounds (OHL)  3  0  14   8\n Kamloops Blazers (WHL)             2  1  10   7\n Seattle Thunderbirds (WHL host)    1  2   9  10\n Verdun College Francais (QMJHL)    0  3   5  13 \n \n Semifinal   Kamloops 8  Seattle 3\n Final       Kamloops 5  Sault Ste. Marie 4\n \n-----\n\n - Central Hockey League\n \n contact:\n  Marc Foster <mfoster@metgem.gcn.uoknor.edu>\n              <mfoster@alliant.backbone.uoknor.edu>\n  Ted Wollnik <twollnik@rdxsun11.aud.alcatel.com>\n\nSee Section 5 for newsletter information.\n\n CHL:\nFort Worth Fire, Wichita Thunder, Dallas Freeze, Tulsa Oilers, Memphis \nRiver Kings, Oklahoma City Blazers\n\n  Six non-affiliated teams play a 60 game schedule extending from early \nNovember to mid March. Each team is owned by the league, with local \ninterests controlling day to day operations. Each team has a $100,000 \nsalary cap for 17 total players (16 dress up). Unlike the ECHL, players \nare not limited to three years in the league.\n  A Western Division may be added to the Central Hockey League for the 93-\n94 season if the plans of CHL president Ray Miron materialize.  Miron \nconfirmed that El Paso, Amarillo, Tuscon, and Albuquerque are cities under \nconsideration for the Western Division, which would play some interlocking \ngames with the Eastern Division.  Meanwhile, San Antonio and Houston are \nclose to being confirmed as the league's newest members.\n\n-----\n\n - Major League Hockey\n \n        A new hockey league with franchises throughout the United States \nand Canada will begin play in the fallof 1993, officials announced \nWednesday, February 10.\n        Major League Hockey was founded by Roy Boe, former president of \nthe New York Islanders of the National Hockey League and the New York/New \nJersey Nets of the American and National Basketball associations.\n        According to Boe, the league will debut with six to eight teams \nplaying a schedule of approximately 80 games. Franchise applications have \nbeen received from groups in Chicago, Cleveland, Dallas, Denver, Detroit, \nHouston, Minneapolis-St. Paul, Phoenix, San Francisco, Saskatoon, Toronto \nand Worcester, Mass., Boe said.\n        Although the league will not raid existing leagues to stock its \nrosters, Boe said it will seek the ``world's finest hockey players.''\n        Boe said league play will have an international flair and \ndiscussed implementing some rules which are reminiscent of those of the \nIIHF.\n        ``We're removing the red line, moving the goal nets forward and \neliminating all tie games,'' said Boe.\n        The MLH office will operate out of Stamford, Conn.\n\n-----\n \n- British Premier Division:\n \n contacts:\n  Neil A. McGlynn: <nmcglynn@axion.bt.co.uk> (from NA)\n                   <nmcglynn@uk.co.bt.axion> (from Europe)\n  Steve Salvini: <steve@cs.hw.ac.uk>\n \n Contact Steve for the GB USENET draft.\n\n e-mail list: send e-mail to <uk-hockey-request@cee.hw.ac.uk> to \nsubscribe.\n\n Durham Wasps defeated Nottingham Panthers 7-6 in '92 British championship \ngame.\n \n-----\n \n- Finnish Elite League (SM-LIIGA):\n\n contacts:\n  Juha Koivisto & Kimmo Kauranen  <hockey@tac.fi>\n  Vesa J Pyyluoma <veikko@vipunen.hut.fi>\n\nFinal standings 91-92:\n  1) Jokerit, Helsinki 2) JyP HT, Jyvaskyla  3) HIFK, Helsinki\n  4) Assat, Pori       5) TPS, Turku         6) Lukko, Rauma\n  7) KalPa, Kuopio     8) HPK, Hameenlinna   9) Ilves, Tampere\n  10) Reipas, Lahti   11) Tappara, Tampere  12) JoKP, Joensuu\n  JoKP dropped and Kiekko-Espoo from Espoo qualified to the SM-LIIGA\n\nIndividual stats leaders 91-92:\n  Points:  Makela Mikko, TPS      25+45=70   (+ playoffs:  2+3=5 )\n  Scoring: Selanne Teemu, Jokerit 39+23=62   (+ playoffs: 10+7=17)\n\nAll Stars 91-92:\n  Briza Petr (Lukko),  Virta Hannu (TPS),  Laurila Harri (JyP HT),\n  Makela Mikko (TPS),  Janecky Otakar (Jokerit),  Selanne Teemu (Jokerit)\n\n-----\n \n- German Hockey League:\n \n contact:\n  Andreas Stockmeier <stocki@cs.tu-berlin.de> or <stocki@tub.UUCP>\n \n Duesseldorfer Eishockey-Gemeinschaft defeated SB Rosenheim in '92 German \nfinal\n\n-----\n\n - Swedish Elite League (Elitserien):\n\n contact:\n  Staffan Axelsson <etxonss@ufsa.ericsson.se>\n\n**\n 1992-93 regular season final standings:\n 1. Vasteras      2. Brynas        3. Malmo         4. Farjestad\n 5. MoDo          6. Lulea         7. Leksand       8. Djurgarden\n 9. HV 71        10. Rogle        11. Frolunda     12. AIK\n\n Brynas defeated Lulea 3 games to 2 for the 1993 Swedish hockey \nchampionship.\n\n-----\n \n - Swiss First Division:\n\n Kloten became the 1992-93 champions of the Swiss League Nationale A\nby beating Fribourg-Gotteron 4-2 to sweep the final series 3-0.\n\n-----\n \n - 1992 Women's World Championships at Finland\n  1 Canada, 2 USA, 3 Finland, 4 Sweden, 5 China, 6 Norway, 7 Denmark, \n  8 Switzerland\n \n-----\n\n 1993 World Junior Hockey Championships at Sweden\n\n Final Standings:\n\n                   GP  W T L  GF-GA  +/-   P\n 1. Canada          7  6 0 1  37-17  +20  12\n 2. Sweden          7  6 0 1  53-15  +38  12\n 3. Czechoslovakia  7  4 1 2  38-27  +11   9\n 4. USA             7  4 0 3  32-23  + 9   8\n 5. Finland         7  3 1 3  31-20  +11   7\n 6. Russia          7  2 2 3  26-20  + 6   6\n 7. Germany         7  1 0 6  16-37  -21   2\n 8. Japan           7  0 0 7   9-83  -74   0\n\n Canada wins gold due to head-to-head result vs Sweden.\n\n--------------------------------------------------------------------------\n \n5. Info available via e-mail\n\n  When requesting items via e-mail please include your preferred address \nin the body of the message.  Sometimes the reply-to address is not a good \nthing to go by.\n\n - ftp site: wuarchive.wustl.edu (128.252.135.4)\n        In directory /doc/misc/sports/nhl there are some new hockey files.\n        Get the README file for information and contents.\n\n---\n\n - E-mail lists:\n \n List Topic (Freq.)                      To Subscribe\n Boston Bruins                           bruins-request@cs.Usask.CA\n     List Address                        bruins@cs.Usask.CA\n Buffalo Sabres                          sabres-request@potter.csh.rit.edu\n     List Address                        sabres@potter.csh.rit.edu\n Los Angeles Kings                       kings-request@cs.stanford.edu\n     List Address                        kings@cs.stanford.edu\n**\n Montreal Canadiens                      habs-request@janus.sdsu.edu\n     List Address                        habs@janus.sdsu.edu\n Philadelphia Flyers                     seth@hos1cad.att.com\n Pittsburgh Penguins                     gp2f+@andrew.cmu.edu\n     List Address                        gp2f@andrew.cmu.edu\n St. Louis Blues                         jca2@cec1.wustl.edu\n San Jose Sharks                         sharks-request@medraut.apple.com\n     List Address                        sharks@medraut.apple.com\n Tampa Bay Lightning                     wilson@cs.ucf.edu\n Vancouver Canucks                       boey@sfu.ca\n     List Address                        vancouver-canucks@sfu.ca\n Washington Capitals                     david@eng.umd.edu\n     List Address                        caps@monster.umd.edu\n NHL Boxscores (M-F)                     bks@cbnewsh.cb.att.com\n NHL Boxscores (S-S)                     jpc@philabs.philips.com\n NHL Goalie Stats (d)                    coulman@cs.Usask.CA\n NHL Scores (n)                          wilson@cs.ucf.edu\n NHL Team Stats (w)                      wilson@cs.ucf.edu\n AHL Newsletter                          ahl-news-request@hamlet.cmu.edu\n     List Address                        ahl-news@hamlet.cmu.edu\n ECHL Newsletter                         echl-news-request@andrew.cmu.edu\n     List Address                        echl-news@andrew.cmu.edu\n US College Hockey                       (see section 3)\n NCAA Division III Hockey                hockey3-request@hooville.mitre.org\n     List Address                        hockey3@request.mitre.org\n CHL Newsletter                          mfoster@geohub.gcn.uoknor.edu\n British League                          uk-hockey-request@uk.ac.hw.cs\n**\nOlympic Hockey                           (see section 4)\n\n Freq: M-F=Monday-Friday, S-S=Saturday-Sunday, d=daily, n=nightly, \nw=weekly\n \n If you have something interesting, make it available. When requesting, \nuse the keyword in the body or subject. Also, specify team, date, etc., \nwhere applicable.\n \n Available from Eric Rickin <ab870@cleveland.freenet.edu>:\n Keyword    Description\n AHLADDR    AHL team addresses\n CANJUNIORS Canada junior teams\n NHLTV      TV stations for each team\n NHLRADIO   Radio stations for each team\n USJUNIORS  US junior teams\n XXXXDRAFT  XXXX (for XXXX=1989-1992) NHL Entry Draft\n 1991EXP    1991 NHL Expansion & Dispersal Draft\n \n Available from Rob Springall <rgs7077@ultb.isc.rit.edu>:\n Keyword    Description\n AHL        Up-to-date info on the AHL\n IHL        Up-to-date info on the IHL\n NHL.C      A C program that prints the 91-92 NHL schedule for a specified \n            day\n \n Available from Stan Willis <willis@empire.dnet.hac.com>:\n Keyword    Description\n ATTEND     91-92 NHL team home attendance report by quarters\n PSLOGOS    NHL team logos in PostScript\n \n Available from David Anthony Wyatt <wyatt@ccu.umanitoba.ca>:\n Keyword    Description\n ALLLIST    All-time List of Professional Hockey Franchises\n \n Available from Roland Behunin <behunin@logdis1.oo.aflc.af.mil>:\n Keyword    Description\n SATINFO    Satellite info for NHL teams\n \n Available from Mike Machnik <nin15b34@merrimack.edu>:\n Keyword    Description\n DIV1SCHED  92-93 NCAA Division I scores\n Mike can also provide a schedule for any of the 46 Division I teams to \npeople who ask.  E-mail him for details.\n\n Available from Bill Clare <Clare@Kodak.COM>:\n Keyword    Description\n RETIRED    List of retired numbers for NHL players\n \n Available from Staffan Axelsson <etxonss@ufsa.ericsson.se>:\n Keyword    Description\n WCMEDALS   World Championships Medalists 1920-1992\n WCSTAND    World Championships All-Time Standings, Pool A 1920-1992\n WCALSTAR   World Championships All-Star Teams 1961-1992\n WCROSTXX   World Championships Gold Winning Teams' Rosters 1958-1992 \n            (Specify XX=58-92)\n WJHC       History of medals given at the World Junior Hockey \n            Championships\n WJHCSTAT   Team and player stats from the World Junior Hockey \n            Championships.\n\n Available from Paul Brownlow <paul@data-io.com>:\n Keyword    Description\n CHLPOY     Past Canadian Hockey League players of the year\n MEMCUP     Past Memorial Cup winners\n\n Available from <wilson@cs.ucf.edu>:\n To use the statsmailer, send e-mail to \"wilson@cs.ucf.edu\" with subject \n\"statsmailer\" and a body containing the word HELP to receive a list of \nallowable commands. Things available: NHL team/league schedules/calendars, \na plethora of team statistics, scores of games, and some assorted hockey \nfiles. Seasons 1988-1992 available. New material was added on 1/19/93.\n\n Available from Mitch McGowan <hamlet@u.washington.edu>\n Keyword    Description\n ROSTERS    1993 NHL All-Star Game rosters\n NHLLEAD    1991-92 NHL Leaders (Scoring, Goals, Assists, Power-play \n            goals, Short-handed goals, Game-winning goals, Shots, Goals-\n            against average, Victories, Save percentage, Shutouts)\n ZAMBONI    Alan Thicke's \"Book of Zamboni\" opening from the 1991 NHL  \n            Awards broadcast\n\n Available from Matt Militzok <mmilitzo@skidmore.edu>\n Keyword    Description\n STATS      Up-to-date NHL statistics\n\n Available from Harry Peltz <hbpeltz@mailbox.syr.edu>\n Keyword    Description\n SCORES     Compilation of NHL scores for the current month (in compressed \nand uuencoded format)\nDates can also be specified for specific box scores, but try not to \nrequest too many at one time (Max 5 box scores or three days).\n\n Available from Richard Stueven <gak@wrs.com>\n Keyword    Description\n DIRECT     Current NHL directory file\n\n Available from Michael Burger <mmb@lamar.colostate.edu>\n Keyword    Description\n TVINFO     TV/Radio stations for all teams along with network \n            information.\n\nUp-to-date Division I standings and scores can be obtained through the \narchives of the College Hockey Mailing List.  Send a message to the server \nat listserv@maine.maine.edu with the body containing ONLY the commands \n(either or both)\n\nGET 9293CONF STAND (for all Division I conference standings)\nGET 9293COMP SCHEDULE (for a full-season listing of Division I scores)\n\nThe schedule is about 1000 lines long and the standings file is about 50 \nlines.  These files are updated more-or-less weekly around Monday.  \nContact Mike Machnik (nin15b34@merrimack.edu) with any questions.\n--------------------------------------------------------------------------\n \n6. USENET Hockey Pool\n \n send e-mail to <andrew@idacom.hp.com>.\n \n--------------------------------------------------------------------------\n \n 7. Up-coming Dates\n\n Apr 18 - May 2: The 1993 World Championships (Pool A), Munich, Germany.\n Jun 26: NHL entry draft, Quebec City, Quebec.\n Feb 12 - Feb 27, 1994: XVII Olympic Winter Games, Lillehammer, Norway.\n\n--------------------------------------------------------------------------\n \n 8. Answers to some frequently asked questions:\n \n Q: Why are the Montreal Canadiens called the Habs?\n A: Most of the team during the 40-50's was made up of people who lived in \nand around Montreal. Hence they were called \"Les Habitants\" (natives of \nMontreal). This was then shortened to the Habs.\n \n Q: Why is the Montreal Canadiens logo a large C with an H within it?\n A: In 1914-15, the Canadiens logo consisted of C with an A within it to \nsignify Club Athletique Canadien (CAC). The next year, CAC no longer \nexisted and it was changed to what it is now to signify Club de Hockey.\n\n Q: What is the most informative hockey publication?\n A: The Hockey News is preferred by most North American hockey fans. It is \na weekly journal with up-to-date info.\nPhone: 800-268-7793 (Canada and US)\nPhone/fax: 0483 776141 (UK and rest of Europe)\n \n Q: How does a 5-minute power-play count in the penalty killing stats in \nthe NHL?\n A: If X goals are scored, then the team gets credit for X goals in X+1 \nchances.\n \n Q: How is +/- computed in the NHL?\n A: First, +/- only applies to skaters. Except for a power-play goal, when \na goal is scored, each skater on the ice for the scoring team is given a \n+, and each skater on the ice for the other team is given a -. Short-\nhanded goals do count for +/-.\n \n Q: What is the five-hole?\n A: The space between a goalie's pads. There are five major scoring zones: \n(1) upper left corner of goal, (2) upper right, (3) lower left, (4) lower \nright, and (5) five-hole.\n \n Q: What is the meaning of throwing an octopus on the ice?\n A: This tradition began in Detroit in the 1950's when two best-of-seven \nseries were required to win the Stanley Cup. Every time Detroit won a \ngame, an octopus with one less arm was thrown on the ice.\n\n Q: Who was the first woman to play in an NHL game?\n A: Manon Rheaume, a 20-year-old goaltender, became the first woman ever \nto play in an NHL game on September 23, 1992 when she started in net for \nthe expansion Tampa Bay Lightning in an exhibition against the St. Louis \nBlues. Rheaume played the first period before 8,223 at the 10,400-seat \nExpo Hall on the Florida State Fairgrounds and allowed two goals on nine \nshots. She left with the score tied 2-2, although the Lightning ultimately \nlost the game, 6-4.\n\n Q: What is the richest contract in NHL history?\n A: Mario Lemieux, the superstar center of the Pittsburgh Penguins, signed \nthe richest contract in NHL history, a seven-year deal believed to be \nworth about $42 million. Lemieux will earn between $6 million and $7 \nmillion a year, nearly twice as much as any other player in the league.\n\n Q: Who is the new commissioner of the NHL?\n A: Gary Bettman, vice president and general counsel of the National \nBasketball Association, was named commissioner of the National Hockey \nLeague, Friday, December 11, 1992. Bettman joined the NBA in 1981 as \nassistant general counsel. He became the league's chief legal officer in \nSeptember of 1984. A New York resident, Bettman graduated from Cornell \nUniversity in 1974 and from New York University School of Law in 1977.\n\n Q: How many professional hockey leagues are there in North America?\n A: Six:  National, American, International, East Coast, Central and \nColonial Hockey Leagues.\n\n--------------------------------------------------------------------------\n \n9. Miscellaneous:\n \n For field hockey discussions, go to the newsgroup rec.sport.hockey.field.\n For skating discussions, go to the newsgroup rec.skate.\n \n Some sites get another hockey group, called clari.sports.hockey. c.s.h \nconsists of the UPI feed for all UPI news articles that are related to \nhockey, including game results, summaries, scores, standings, etc.  Much \nof the information in the NHL team news section comes from this newsgroup.\n \n  The rec.sport.hockey Frequently Asked Questions posting is posted semi-\nmonthly, usually on the 1st and 15th of each month, during the hockey \nseason.  This file was originally created by Tom Wilson, who posted it \nduring the 1991-92 season.  It was taken over by Mitch McGowan for the \n1992-93 season.\n\n--------------------------------------------------------------------------\n \n  Please make corrections via e-mail, indicating \"r.s.h FAQ\" as the \nsubject line. Feel free to start a discussion on any previously mentioned \ntopic (but use an appropriate subject line).\n \nMitch McGowan <hamlet@u.washington.edu>\n\n1\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.361+0000", "event": "documents", "entityId": 7603, "properties": {"category": "sci.med", "text": "From: bmdelane@quads.uchicago.edu (brian manning delaney)\nSubject: Brain Tumor Treatment (thanks)\nReply-To: bmdelane@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 12\n\nThere were a few people who responded to my request for info on\ntreatment for astrocytomas through email, whom I couldn't thank\ndirectly because of mail-bouncing probs (Sean, Debra, and Sharon).  So\nI thought I'd publicly thank everyone.\n\nThanks! \n\n(I'm sure glad I accidentally hit \"rn\" instead of \"rm\" when I was\ntrying to delete a file last September. \"Hmmm... 'News?' What's\nthis?\"....)\n\n-Brian\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.361+0000", "event": "documents", "entityId": 7604, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bcwhite@sunee.uwaterloo.ca (Brian C. White)\nSubject: Re: SCSI on dos\nKeywords: SCSI, DOS, streamer\nOrganization: University of Waterloo\nLines: 15\n\nIn article <1993Apr19.132748.18044@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>It was the Seagate 296N and the ST-02 controller.  I found that the\n>controller couldn't keep up with a 1:1 interleave, so the best I could do\n>with the drive was a 2:1 interleave and a data transfer of about 450 k/sec.\n\nAccording to what others have told me, the ST-296N is difficult to run at\nthe 1:1 interleave even though Seagate claims it.  I have a non-pc system\n(don't ask what it is, you probably haven't heard of it) that is built\naround SCSI and it can't do 1:1, either.\n\n                                        Brian\n                           ( bcwhite@sunee.uwaterloo.ca )\n\n-------------------------------------------------------------------------------\n    In theory, theory and practice are the same.  In practice, they're not.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.361+0000", "event": "documents", "entityId": 7605, "properties": {"category": "soc.religion.christian", "text": "From: oser@fermi.wustl.edu (Scott Oser)\nSubject: Re: DID HE REALLY RISE???\nOrganization: Washington University Astrophysics\nLines: 36\n\nIn article <Apr.10.05.33.59.1993.14428@athos.rutgers.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>The two historic facts that I think the most important are these:\n>\n>(1) If Jesus didn't rise from the dead, then he must have done something\n>else equally impressive, in order to create the observed amount of impact.\n>\n>(2) Nobody ever displayed the dead body of Jesus, even though both the\n>Jewish and the Roman authorities would have gained a lot by doing so\n>(it would have discredited the Christians).\n>\n>-- \n>:-  Michael A. Covington         internet mcovingt@ai.uga.edu :    *****\n>:-  Artificial Intelligence Programs       phone 706 542-0358 :  *********\n>:-  The University of Georgia                fax 706 542-0349 :   *  *  *\n>:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n\nAnd the two simplest refutations are these:\n\n(1)  What impact?  The only record of impact comes from the New Testament.\nI have no guarantee that its books are in the least accurate, and that\nthe recorded \"impact\" actually happened.  I find it interesting that no other\ncontemporary source records an eclipse, an earthquake, a temple curtain\nbeing torn, etc.  The earliest written claim we have of Jesus' resurrection\nis from the Pauline epistles, none of which were written sooner than 20 years\nafter the supposed event.\n\n(2)  It seems probable that no one displayed the body of Jesus because no\none knew where it was.  I personally believe that the most likely\nexplanation was that the body was stolen (by disciples, or by graverobbers).\nDon't bother with the point about the guards ... it only appears in one\ngospel, and seems like exactly the sort of thing early Christians might make\nup in order to counter the grave-robbing charge.  The New Testament does\nrecord that Jews believed the body had been stolen.  If there were really\nguards, they could not have effectively made this claim, as they did.\n\n-Scott O.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7606, "properties": {"category": "comp.graphics", "text": "From: sasst11+@pitt.edu (Scott A Snowiss)\nSubject: IMAGINE\nOrganization: University of Pittsburgh\nLines: 16\n\nHello again netters,\n\tI finally received the information about Imagine for the PC.  They are presently shipping Version 2.0 of the software and will release Version 3.0 in the first quarter of 1993 (or so they say).  The upgrade from 2.0 to 3.0 is $100.00.  To purchase Imagine 2.0, it costs $495.00 or if you are upgrading from another eligible (call them for info) modeler, it is only $200.00 plus shipping & handling.   It requires a PC with 4 Megs a Math Coprocessor, and Dos 5.0 or up and a Microsoft Mouse and SVGA card.\n\tThanks for all your replies about the product.  I have received many contrasting replies, but once I scrounge the money together, I think I will take the plunge.  Thanks again.\n\tHere is the info for Impulse if you want to find out more or get the sheet they sent.\n\tImpulse Inc.\n\t8416 Xerxes Avenue North\n\tMinneapolis, MN 55444\n\t1-800-328-0184\n\nThanks again for all your replies.\nScott\n-- \nScott Snowiss\nsasst11+@.pitt.edu\n\n--Turn on...Jack in...Jack out...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7607, "properties": {"category": "sci.med", "text": "From: tas@pegasus.com (Len Howard)\nSubject: Re: Endometriosis\nSummary: not that rare a condition  \nOrganization: Pegasus,  Honolulu\nLines: 17\n\nIn article <1993Apr16.032251.6606@rock.concert.net> naomi@rock.concert.net (Naomi T Courter) writes:\n>\n>can anyone give me more information regarding endometriosis?   i heard\n>it's a very common disease among women and if anyone can provide names\n>of a specialist/surgeon in  the north carolina research triangle  park\n>area (raleigh/durham/chapel  hill) who is familiar with the condition,\n>i would really appreciate it.\n>thanks. \n>--Naomi\n\nNaomi, your best bet is to look in the Yellow Pages and find a listing\nfor OBGyn doc in the area you wish.  Any OBGyn doc is familiar with\nendometriosis and its treatments.\nShalom                                    Len Howard MD\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7608, "properties": {"category": "sci.space", "text": "From: msb@sq.sq.com (Mark Brader)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: SoftQuad Inc., Toronto, Canada\nLines: 20\n\n\n> > > Also, peri[jove]s of Gehrels3 were:\n> > > \n> > > April  1973     83 jupiter radii\n> > > August 1970     ~3 jupiter radii\n\n> > Where 1 Jupiter radius = 71,000 km = 44,000 mi = 0.0005 AU. ...\n\n> Sorry, _perijoves_...I'm not used to talking this language.\n\nThanks again.  One final question.  The name Gehrels wasn't known to\nme before this thread came up, but the May issue of Scientific American\nhas an article about the \"Inconstant Cosmos\", with a photo of Neil\nGehrels, project scientist for NASA's Compton Gamma Ray Observatory.\nSame person?\n-- \nMark Brader, SoftQuad Inc., Toronto\t\"Information! ... We want information!\"\nutzoo!sq!msb, msb@sq.com\t\t\t\t-- The Prisoner\n\nThis article is in the public domain.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7609, "properties": {"category": "soc.religion.christian", "text": "From: Petch@gvg47.gvg.tek.com (Chuck Petch)\nSubject: Daily Verse\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 4\n\nTherefore, whoever humbles himself like this child is the greatest in the\nkingdom of heaven. \n\nMatthew 18:4\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7610, "properties": {"category": "talk.politics.mideast", "text": "From: cosmo@pro-angmar.alfalfa.com (Frank Benson)\nSubject: Serdar\nOrganization: UTexas Mail-to-News Gateway\nLines: 5\nNNTP-Posting-Host: cs.utexas.edu\n\nWhat are you, retarded?\n---\nProLine:  cosmo@pro-angmar\nInternet: cosmo@pro-angmar.alfalfa.com\nUUCP:     uunet!bu.edu!alphalpha!pro-angmar!cosmo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7611, "properties": {"category": "misc.forsale", "text": "From: thouchin@cs.umr.edu (T. J. Houchin)\nSubject: FOR SALE: FARENHEIT 1280 24bit\nArticle-I.D.: umr.1993Apr5.231308.3558\nDistribution: usa\nOrganization: University of Missouri - Rolla\nLines: 12\nNntp-Posting-Host: mcs213c.cs.umr.edu\nOriginator: thouchin@mcs213c.cs.umr.edu\n\nFOR SALE:\n\tOrchid Fareheit 1280 24bit color card\n\t-1 meg \n\t-almost new\n\t\n$200 or best offer\n\nThis is a post for a friend\n\nCall him (Thuan Pho) at 314-368-3624\n\nT.J. Houchin\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7612, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: apland@mala.bc.ca (Ron Apland)\nSubject: Re: W4WG & Novell\nOrganization: Malaspina College\nLines: 29\n\nIn article <1993Apr27.102626.1@csc.canterbury.ac.nz>, cctr132@csc.canterbury.ac.nz (Nick FitzGerald, PC Software Consultant, CSC, UoC, NZ) writes:\n> In article <1rh2mi$ea4@msuinfo.cl.msu.edu>, bilan@cps.msu.edu (Thomas J\n> Bilan) writes:\n> \n>> If I put LASTDRIVE = Z in my config.sys, NETX will run but I can't access\n>> drive f: to log in to Novell.  \n>> If I don't put LASTDRIVE = Z in my config.sys I can't access other W4WG \n>> drives from the file-manager.\n>>\n>> It seems that there should be a way to make NETX work with the LASTDRIVE = \n>> statement in my Config.Sys.\n> \n> First off, I haven't used W4WG (but I think that's about to change!).\n> \n> The problem is the LASTDRIVE command and the way NetWare in general (and\n> in this case NETX in particular) adds drives to the device chain. \n> Setting LASTDRIVE=Z means there are no \"unassigned\" (as opposed to\n> \"unused\") drive letters for NetWare to use, as it tacks its drive\n> mappings -onto the end- of the existing list of drives.  W4WG obviously\n> attaches its network drives to \"existing, unused\" drive letters.\n> \n> I'd guess the next thing I'd try is something like LASTDRIVE=M, which on\n> most machines will leave a fair swathe of drives for W4WG and still\n> allow up to 13 NetWare drive mappings as well.\n\nW4WG requires DOS drives.  I use LASTDRIVE=J which makes my first Novell drive\nK and leaves me drives G, H, I and J for W4WG.  My local DOS drives use A-F.\n\nRon\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7613, "properties": {"category": "sci.med", "text": "From: mmatusev@radford.vak12ed.edu (Melissa N. Matusevich)\nSubject: Re: Emphysema question\nOrganization: Virginia's Public Education Network (Radford)\nLines: 13\n\nThanks for all your assistance. I'll see if he can try a\ndifferent brand of patches, although he's tried two brands\nalready. Are there more than two?\n\nMelissa\n\n---\n                        mmatusev@radford.vak12ed.edu\n\n\"After a time you may find that having is not so pleasing a thing\nafter all as wanting. It is not logical, but it is often true.\"\n\nSpock to Stonn\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7614, "properties": {"category": "talk.politics.mideast", "text": "From: nstramer@supergas.dazixco.ingr.com (Naftaly Stramer)\nSubject: Car bomb in the West Bank\nNntp-Posting-Host: supergas\nReply-To: nstramer@dazixco.ingr.com\nOrganization: Intergraph Electronics\nLines: 34\n\n\nFrom Israeline 4/16\n\nTwo Arabs Killed and Eight IDF Soldiers Wounded in West Bank Car\nBomb Explosion\n \nIsrael Defense Forces Radio, GALEI ZAHAL, reports today that a car\nbomb explosion in the West Bank today killed two Palestinians and\nwounded eight IDF soldiers. The blast is believed to be the work of\na suicide bomber. Radio reports said a car packed with butane gas\nexploded between two parked buses, one belonging to the IDF and the\nother civilian. Both busses went up in flames. The blast killed an\nArab man who worked at a nearby snack bar in the Mehola settlement.\nAn Israel Radio report stated that the other man who was killed may\nhave been the one who set off the bomb. According to officials at\nthe Haemek Hospital in Afula, the eight IDF soldiers injured in the\nblast suffered light to moderate injuries.\n\n\n\nThe Arab that was killed was a probably from the Mossad so it is not count \nas a murder.\n\n\nNaftaly\n\n\n-----\n\n\nNaftaly Stramer \t\t\t | Intergraph Electronics\nInternet: nstramer@dazixco.ingr.com      | 6101 Lookout Road, Suite A    \nVoice: (303)581-2370  FAX: (303)581-9972 | Boulder, CO 80301\n\"Quality is everybody's job, and it's everybody's job to watch all that they can.\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7615, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Playoff pool update\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 44\nNntp-Posting-Host: mail.sas.upenn.edu\n\nWell, I have compiled some statistics on the entries of my pool.  There\nare unofficially 52 entrants.  Here are the stats on what teams were\npicked to win it all:\n\nPittsburgh:\t34 (1 sweep, 14 in 5, 15 in 6, 4 in 7)\nBoston:\t\t6  (1 in 5, 5 in 6)\nDetroit:\t4  (3 in 6, 1 in 7)\nMontreal:\t2  (1 in 5, 1 in 7)\nToronto:\t2  (1 in 6, 1 in 7)\n   (no, this wasn't Roger)\nCalgary:\t1  (in 6)\nQuebec:\t\t1  (in 6)\nVancouver:\t1  (in 7)\nWashington:\t1  (in 6)\n\nWhy the hell hasn't anybody picked Chicago???  NOBODY!  Quebec got a pick,\nDetroit got 4, but absolutely no Chicago!  How odd.\n\nHere are the \"losers\":\n\nDetroit:\t20\nChicago:\t16\t(so there they are!)\nPittsburgh:\t6\nVancouver:\t4\nBoston:\t\t2\nCalgary:\t2\nLos Angeles:\t1\twhat?!?\nToronto:\t1\n\nLOS ANGELES???????  Are you out of your mind?!?!?  Good luck to you,\nyou'll need it!\n\nSo Pittsburgh is the consensus winner of the Stanley Cup.  They'll\nstatistically beat Detroit in 6 games.  HAHA  that's happening!  NOT!  As\nI said, every one of my picks will come true, and I picked Chicago to lose\nto Pittsburgh in the finals, so tough luck to all you who picket Detroit.  \nWell, tough luck to all of ya!  I am a genius!!!  ;-)\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n\t   \"A cow is not a vegetarian dish.\"  -- Keith Keller, 1993\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7616, "properties": {"category": "sci.med", "text": "From: mhollowa@ic.sunysb.edu (Michael Holloway)\nSubject: Re: Homeopathy: a respectable medical tradition?\nKeywords: Yes, SCIENCE, stupid!\nNntp-Posting-Host: engws5.ic.sunysb.edu\nOrganization: State University of New York at Stony Brook\nLines: 75\n\nIn article <C5HLBu.I3A@tripos.com> homer@tripos.com (Webster Homer) writes:\n>mhollowa@ic.sunysb.edu (Michael Holloway) writes:\n>\n>>Here's your error.  I really do think this shows some confusion on your\n>>part.  (Drum roll please)  Science isn't so much the gathering of evidence\n>>to support an \"assertion\" (read: hypothesis) as it is the gathering of\n>>empirical observations IN ORDER TO MAKE AN HYPOTHESIS.  What should\n>>convince you (or not) shouldn't be the final product so much as *HOW* the\n>>product was made. \n>>\n>Here's your error. There is no observation or hypothesis that is not tainted\n>by theory. I have a theory, I make observations, those observations will be\n>made with my theory in mind. \n\nYes, absolutely, though I'd make the observation in a more general sense of\nall observations are made by human beings and therefore made with various\nbiases. \n\nBut here your message leaves talk of hypothesis and gets back, once again, \nto equating the business of science with the end result, the gizmo produced.\n\n>Science works very well at developing theories\n>within paradigms, but is very poor at dealing with paradigm shifts. If I \n>develop a novel paradigm that explains homeopathy, chinese medicine, or \n>spontaneous combustion. If the paradigm is useful it will show me the way\n>to make observations that \"prove\" or \"disprove\" it.\n\nMy point isn't so much whether or not you have a novel paradigm but *how* \nyou come about developing it.\n\n>The paradigm of modern medicine is that the body can be reduced to a set of\n>essentially mechanical operations wherein disease is seen as malfunctions in\n>the machinery, essentially the old Newtonian model of the world. It seems\n>likely that theories based upon this paradigm do not give a complete \n>discription of the universe, medicine, healing etc... Indeed we now \n>recognize an important psychological component to healing. \n\nPerhaps you'd admit that this is an oversimplification on your part (the topic\nof the philosophy of science is made for them, I'm making them too) but I\nthink that it also summarizes popular misconceptions of science and the \nbusiness of doing science.  Biomedical research doesn't make any basic \nassumptions that aren't the same as any other discipline of scientific\nresearch.  That is, that you make empirical observations, form an hypothesis\nand test it.  Modern medicine has much more to do with biochemistry than \n\"the old Newtonian model of the world\".  And I doubt that many psychologists\nwould appreciate being put outside this empirical \"world view\".  Psychology\nalso has more to do with biochemistry than spoon bending. \n\n>It is also important to distinguish reason from science. Science may be\n>reasonable, but so are many non-scientific methodologies. Aristotle reasoned\n>that frogs came from mud by observing one hop out of a puddle. \n\nOversimplified, of course, but a good example.  This is an empirical observa-\ntion.  It was then tested, though perhaps not by Aristotle, and eventually \nfound wanting.  In the meantime, some folk will \nhave continued to believe in the spontaneous generation of animal life.  \nThere's nothing at all surprising about this, it's the way the gathering of\nknowledge works.  There are probably more than a few things in my own \ndiscipline of molecular biology that will be found to be totally off-base,\neven idiotic, to someone in the future.  These future people won't have come\nto these relevations because they had suddenly gone all Zen-like and had \na vision in an LSD trip.  Someone will have thought of something new and \ntested it.  This is the bit that people who seem to relish misrepresenting\nscience and research can't seem to wrap their minds around.  Science is a \ncreative process.  What I think of as factual and good research can be totally\nturned on its head tommorrow by new results and theories.  \n\nAgain, I think it gets down to defining what you mean by \"science\".  I often\ndon't recognize what it is that I do, and am involved in, in the way science\nis portrayed by popular media or writings of people in the humanities.  They\nportray science as a collection of immutable facts, pronouncements of TRUTH\nin big gold letters.  That's silly.  Its as though we just go into the lab,\nturn over a stone, and come up with a mechanism for transcriptional regula-\ntion.  Its much more interesting than that.  It really is a very human\nprocess.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7617, "properties": {"category": "rec.sport.baseball", "text": "From: rjh@allegra.att.com (Robert Holt)\nSubject: Re: ALL-TIME BEST PLAYERS\nOrganization: AT&T Bell Laboratories, Murray Hill, NJ\nLines: 78\n\nIn article <1993Apr15.162313.154828@ns1.cc.lehigh.edu> jsr2@ns1.cc.lehigh.edu (JOHN STEPHEN RANDOLPH) writes:\n>In article <1993Apr13.115313.17986@bsu-ucs>, 00mbstultz@leo.bsuvc.bsu.edu writes\n>:\n>>I've recently been working on project to determine the greatest\n>>players at their respective postions.  My sources are Total Baseball,\n>>James' Historical Abstract, The Ballplayers (biography), word of\n>>mouth, and my own (biased) opinions...\n>>\n>>Feel free to comment, suggest, flame (whatever)...but I tried\n>>to be as objective as possible, using statistical data not inlcuded\n>>for time/convience's sake.  (I judged on Rel. BA, Adj OPS, Total Average,\n>>fielding range/runs, total player rating (Total Baseball), stolen bases\n>>(for curiosity's sake), TPR/150 g, and years played/MVP.\n>>\n>>3B\n>> 1) Mike Schmidt\n>> 2) Ed Matthews\nOne \"t\" in \"Eddie Mathews\"!\n>> 3) George Brett\n>> 4) Wade Boggs\n>> 5) Ron Santo\n>> 6) Brooks Robinson\n>> 7) Frank Baker\n>> 8) Darrell Evans\n>> 9) Pie Traynor\n>>10) Ray Dandridge\n>>\n>How can Brooks be # 6?  I think he would at least be ahead of Ron Santo.\n>\nBecause a small advantage in fielding ability comes nowhere near\nmaking up for the large difference in hitting.  Their average\nseasons, using their combined average 656 (AB + BB) per 162 games:\n\n         Years  AB  H  R  2B 3B HR RBI TB  BB  AVG  OBP  SLG  OPS\nSanto    14.10 577 160 81 26  5 24  94 268 79 .277 .366 .464 .830\nRobinson 17.55 607 162 70 27  4 15  77 243 49 .267 .325 .401 .726\n\nFielding, we have, per 162 games at third,\n\n         Years   P    A   DP   E   PCT\nSanto    13.15  149  348  30  24  .954\nRobinson 17.72  152  350  35  15  .971\n\nEven if Robinson's extra 3 putouts, 2 assists, and 5 DPs are taken to mean\nhe was responsible for 10 more outs in the field, that doesn't make up\nfor the extra 28 outs he made at the plate, not to mention the fewer\ntotal bases.  The difference of .104 in OPS should be decreased by about\n.025 to account for Wrigley, but a .079 difference is still considerable.\nThe Thorn & Palmer ratings are\n\n           Adjusted      Adjusted    Stolen   Fielding  Total\n           Production  Batting Runs Base Runs   Runs    Rating\nSanto         123          284        -14       137      41.7\nRobinson      105           52         -5       151      19.8 (26.3)\nUsual disclaimers about T&P's FR apply, but they really shouldn't be\nway off the mark in this comparison.  At least it's better than fielding\npercentage: Carney Lansford has a .966 , 10th best all-time, but -225 FR,\ndead last of all time.  Also, since this total rating compares players\nto league average instead of replacement level, Robinson should be\nawarded an extra 6.5 or so for playing 653 more games.  He had a great\ncareer, but I would prefer Santo's plus 4 years of a replacement level 3Bman.\n\nBut I would knock Traynor off the list and replace him by Stan Hack.\nThat's a similar story, Hack's far better hitting outweighs Traynor's\nsuperior fielding.  Graig Nettles and Buddy Bell would also be better\nchoices (IMHO of course, though some recent net discussion supports\nthis point of view.)\n>\n>>CF\n>> 7) Andre Dawson\n\nShouldn't that be right field?\n\n-- \n+-----------------------+\n|  Bob Holt             |\n|  rjh@allegra.att.com  |\n+-----------------------+\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7618, "properties": {"category": "comp.windows.x", "text": "From: klee@synoptics.com (Ken Lee)\nSubject: Re: DEC pixmap size\nReply-To: klee@synoptics.com\nOrganization: SynOptics Communications, Santa Clara CA\nLines: 12\nNntp-Posting-Host: bugsbunny.synoptics.com\n\nIn article 1964@igd.fhg.de, haase@igd.fhg.de (Helmut Haase (Goebel)) writes:\n>If I try to create a pixmap larger than the size of my screen the program\n>will terminate displaying the message:\n>\n>X Error:  BadAlloc - insufficient resources\n\nMany X servers supporting graphics accelerators do not allow the creation\nof pixmaps exeeding the size of the screen.  One workaround is to create\nseveral smaller pixmaps and add the results.\n\n---\nKen Lee, klee@synoptics.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7619, "properties": {"category": "alt.atheism", "text": "Subject: Re: A visit from the Jehovah's Witnesses\nFrom: lippard@skyblu.ccit.arizona.edu (James J. Lippard)\nDistribution: world,local\nOrganization: University of Arizona\nNntp-Posting-Host: skyblu.ccit.arizona.edu\nNews-Software: VAX/VMS VNEWS 1.41    \nLines: 27\n\nIn article <chrisb.734064380@bAARNie>, chrisb@tafe.sa.edu.au (Chris BELL) writes...\n>jbrown@batman.bmd.trw.com writes:\n> \n>>My syllogism is of the form:\n>>A is B.\n>>C is A.\n>>Therefore C is B.\n> \n>>This is a logically valid construction.\n> \n>>Your syllogism, however, is of the form:\n>>A is B.\n>>C is B.\n>>Therefore C is A.\n> \n>>Therefore yours is a logically invalid construction, \n>>and your comments don't apply.\n\nIf all of those are \"is\"'s of identity, both syllogisms are valid.\nIf, however, B is a predicate, then the second syllogism is invalid.\n(The first syllogism, as you have pointed out, is valid--whether B\nis a predicate or designates an individual.)\n\nJim Lippard              Lippard@CCIT.ARIZONA.EDU\nDept. of Philosophy      Lippard@ARIZVMS.BITNET\nUniversity of Arizona\nTucson, AZ 85721\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7620, "properties": {"category": "rec.sport.hockey", "text": "From: MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF)\nSubject: Finland/Sweden vs.NHL teams (WAS:Helsinki/Stockholm & NHL expansion)\nIn-Reply-To: tervio@katk.Helsinki.FI's message of Thu, 15 Apr 1993 09:39:37 GMT\nOrganization: Abo Akademi University, Finland\nX-News-Reader: VMS NEWS 1.24\nLines: 120\n\nIn <tervio.40@katk.Helsinki.FI> tervio@katk.Helsinki.FI writes:\n\n>    Now what if the two teams were merged (this has been proposed in Tampere \n> with Ilves ( =Lynx) and Tappara ( =Axe).  The fans wouldn't take it !\n> They rather see their teams out of the playoffs most of the time or even \n> relegated than merged.  It's not that difficult to understand, it's just \n> like here in Helsinki.  You *grow up* being either a Jokerit- or HIFK -fan.\n> The other team is the last team in the world you would support.  I'm not \n> talking about 'hate' but about extremely deeply rooted rivalry.\n\n\"Deeply rooted rivalry?\" Ahem, Jokerit have been around since 1967 and joined\nthe top flight only in the early '70s. Helsingfors IFK have been around since\n1897 but fans only started taking hockey seriously in the 1960s so I think\nyou're exagerating here.\n\n>    However, it's been proved that both fan groups can cheer the same team\n> - that's \"the Finnish national team\".  Maybe that's how you could set up a \n> huge franchise in Finland.  No one has ever said that the team must be \n> called after one city or play all its games on one arena.  Just one Team \n> Finland and Team Sweden in the NHL just wouldn't make any sense - we have \n> way more talent than 1/24th of the total of North American talent.  After a \n> couple of seasons you would never see the cup going anywhere outside the \n> Nordic  (presuming that our teams would have the advantage in  drafting \n> local talent, as prooposed).\n\nThat's a rather bold claim, in the light of how successful the Canadian &\nAmerican Olympic teams have been . . . and they've had to play according to our\nset of rules and on international ice. The 1992 Olympic teams contained about\nas much talent as your average expansion team. Canada had Eric Lindros, Sean\nBurke, Joe Juneau and Chris Kontos. Another four or five have been deep subs in\nthe NHL. As for the Yanks, Keith Tkachuk, Scott Lachance, Bret Hedican, Shawn \nMcEachern, Steve Heintze, Ted Donato, Joe Sacco and Bill Guerin have been \n3rd/4th line players in the NHL, while Robb Stauber has done well for the \nKings in goal. Nothing more. In fact, I'm sure that an All-Star team assembled\nfrom the best Finnish League teams would do no better in the NHL than Hartford \nor Tampa Bay currently are doing.\n---\nBut what happens if _all_ top-class Finnish & Swedish players gradually end up\nwith Helsinki & Stockholm as the North American-based ones gradually retire and\nno Canadian/American team is allowed to draft new players from Scandinavia? \nHere is what THE HOCKEY NEWS scouts think of our NHL-based players:\n\n(28-30=superstar)\n(23-27=star)\n(18-22=NHL regular+)\n(13-17=NHL regular)\n( 8-12=role player)\n\nFINLAND:  \n\nD-Jyrki Lumme.......20\nD-Teppo Numminen....20\nD-Peter Ahola.......13\n\nC-Jari Kurri........25\nC-Christian Ruuttu..16\n\nR-Teemu Selanne.....27\n\nL-Esa Tikkanen......20\n(Obviously, Selanne's ratings would be higher today than they were in January)\n\nSWEDEN:\nD-Ulf Samuelsson....21\nD-Fredrik Olausson..20\nD-Niklas Lidstrom...18\nD-Calle Johansson...18\nD-Kjell Samuelsson..17\nD-Tommy Sjodin......13\nD-Tommy Albelin......7\n\nC-Mats Sundin.......26\nC-Thomas Steen......18\n\nR-Thomas Sandstrom..22\nR-Ulf Dahlen........18\nR-Michael Nylander..13\n\nL-Per-Erik Eklund...18\nL-Johan Garpenlov...16\nL-Mikael Andersson..15\nL-Jan Erixon........14\n\nThis would be interesting. Clearly, Finland's top five players (Winnipeg's\nSelanne & Numminen, Vancouver's Lumme, Los Angeles' Jari Kurri and New York's\nTikkanen) are right up there with any five-man unit Pittsburgh & co. have. But\nI have my doubts about the home-based Finnish players - the national team did\nwell in the Canada Cup and World Championships largely due to the efforts of\nMarkus Ketterer (the goalie), 3-4 or the players listed above and luck. There's\npresumably a lot of decent players in Finland that wouldn't be superstars at\nthe highest level but still valuable role players, however. My guess would be\nthat the Finnish Canada Cup team would be a .500 team in the NHL.\n---\nSweden is easier to judge because they have more players in North America.\nTheir points total (16 players) is 274 - seven more than Ottawa's 22 top\nplayers combined! If we estimate there are six more NHL regulars back home in \nSweden, an all-Swedish team would assemble about 350-360 skill points.\nDeducting some points from Pittsburgh, NY Rangers and other teams that rely on\nSwedish players, the Swedish team would finish in sixth place - about as high\nas Boston, Vancouver, Calgary and Montreal on paper! So, the \"dynasty\" talk\nisn't completely unfounded here. An all-Finnish/all-Swedish team might have an\nadvantage because the players would be playing at home half of the time,\nwon't have to adapt to a foreign country and a foreign language, and presumably\nplay the wide-open European variant of hockey rather than have to learn the\nNorth American checking game. However, if free agency becomes a factor the top \nScandinavian players still might end up playing for large-market teams after a \ncouple of years the same way Edmonton's \"dynasty\" crumbled in the late '80s. \nSome fringe players likely will be drafted by other NHL teams as having an \nexclusive talent pool might be a bit unfair after all. I'd settle for a \ncompromise, prohibit all European teams from signing a North American during \nthe first two rounds but allow them to keep their top two players. After this, \nthe amateur draft should be open to anyone. \n\n> -----------------------------------------------------------------------------\n>  J O O   J O O   J O K E R I T  !  !  !    Finland over Czech in the Final\n>    B R U I N P O W E R ! ! !               Bruins over Blackhawks in 6 \n> -----------------------------------------------------------------------------\n\nMARCU$\n     \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7621, "properties": {"category": "talk.politics.guns", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Cop kills teenager\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nKeywords: handgun mace pepper-spray taser tasp phaser\nLines: 26\n\n\tOK, here's something for all of those people who think cops are always\nmore responsible then the rest of the population.  I found this article in the\nRocky Mountain Collegian, Colorado State University's newspaper.\n\n\tSUSPENDED POLICE OFFICER ARRESTED IN REVENGE TRIPLE HOMICIDE\n\nPROVIDENCE, R.I. (AP) -- A police officer afraid he would be fired for\nallegedly assaulting a teen-ager walked into an auto body shop wher the youth\nworked, said \"You're going to die\" and fatally shot him and two others, police\nsaid.\n\nA fourth youth was wounded.  A fifth escaped injury by hiding under a car.\n\nThe wounded youth ran about two blocks to a house after the shooting at about\nmidnight Tuesday and called police.  He was hospitalized in satisfactory\ncondition Wednesday.\n\nSuspended police officer Robert Sabetta, 23, of Cranston, was arrested at\ngunpoint over three hours after the shooting at Wilson's Auto Enterprises in\nFoster, a rural town of about 4,000 people in northwest Rhode Island.\n\n\tWell, this just goes to show that cops are capable of snapping, just\nlike everyone else.  Now who was it who said only cops should have guns?\n\n\t\t\t\t\t\tDoug Holland\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7622, "properties": {"category": "rec.autos", "text": "From: dcd@se.houston.geoquest.slb.com (Dan Day)\nSubject: Re: WARNING.....(please read)...\nNntp-Posting-Host: mudd.se.houston.geoquest.slb.com\nOrganization: GeoQuest System, Inc. Houston\nLines: 13\n\nIn article <1qke5b$mc4@spool.mu.edu> jason@studsys.mscs.mu.edu (Jason Hanson) writes:\n>>From article <1993Apr15.024246.8076@Virginia.EDU>, by ejv2j@Virginia.EDU (\"Erik Velapoldi\"):\n>>> This happened about a year ago on the Washington DC Beltway.\n>>> Snot nosed drunken kids decided it would be really cool to\n>>> throw huge rocks down on cars from an overpass.  Four or five\n>>> cars were hit.  There were several serious injuries, and sadly\n>\n>About a year ago, some kids tossed a rock off an overpass on I-94 near Eau\n>Claire, Wisconsin and it killed the driver below.  (I believe he was a\n>schoolteacher from Minnesota.)\n\nHere in Houston a couple years ago a young pregnant woman was killed\nin a similar manner.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.362+0000", "event": "documents", "entityId": 7623, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: MS Windows VS Motif (GUI design differences), was Re: Future of Unix\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 46\nDistribution: usa\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nIn article <IK.93Apr9075401@sneaker.ctt.bellcore.com>, ik@sneaker.ctt.bellcore.com (Ik Su Yoo ) writes:\n|> >>>>> \"aab\" == Andy Burgess <aab@cichlid.com> writes:\n|> \n|>   aab> In <1993Apr7.200950.16856@texhrc.uucp> pyeatt@Texaco.com (Larry D. Pyeatt) writes:\n|> \n|>   aab> <some deleted>\n|> \n|>     >If you\n|>     >look closely at Motif, you will see that it is just MS-Windows\n|>     >with more eye-pleasing color and texture.  The only real difference\n|>     >is that an MS application window can \"contain\" other toplevel children, \n|>     >while a Motif application window \"launches\" its children out onto the\n|>     >desktop.\n|> \n|>   aab> To those of you familiar with both GUIs, is this correct? My experience\n|>   aab> with X makes me think that this MSW behavior is easily duplicated\n|>   aab> with X11. But I don't know MSW...\n|> \n|> Another important difference is that MSW doesn't have any window that\n|> handle sophisticated geometry management (like XmForm). Also, I believe\n|> that in Windows 3.x you're limited to 64K of resources (windows, menus,\n|> icons, etc.).\n\nIMHO this whole discussion named \"Motif looks like MS-Windogs\" is totally\nstupid. The only thing remotely influenced here can be the Motif Window\nManager, that features an arrangement of buttons and menus somewhat\nsimiliar to this of the MS-W windowmanaging agent, however its name is.\nBut MWM is only a SMALL part of Motif, in fact, MWM and Motif can work\nwithout each other, and if one doesn't like MWMs outfit for some reason,\nhe switches to another windowmanager. All this doesn't influence Motif,\nwhich is a toolkit of widgets to write applications, and this toolkit\nis IMHO uncomparable to MS-W, because it is much more wellorganized and\nfeatures alot of goodies more than the MS-W interface.\n\nYou cannot say \"A Porsche looks like a VW K\u00e4fer\" ONLY because they have the\nwheel and the gear at the same position. Motif and MS-W are complete\ndifferent worlds, only one element of the Motif world has some gear and wheel\nat the same position as MS-W.\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7624, "properties": {"category": "comp.sys.mac.hardware", "text": "From: abravo@mondrian.CSUFresno.EDU (Andrew Bravo)\nSubject: asynch to synch on the mac\nNntp-Posting-Host: mondrian.csufresno.edu\nOrganization: California State University, Fresno\nLines: 8\n\ndoes anyone have any good code to drive the serial port in syncronos\nmode?\nI really need it BAD\n\nTIA\n\nabravo@mondrian.csufres.edu\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7625, "properties": {"category": "sci.electronics", "text": "From: behnke@FNALF.FNAL.GOV (M.L. 'Broomen' Behnke)\nSubject: Re: Peltier Effect Heat Pumps\nOrganization: Fermi National Accelerator Lab\nLines: 66\nReply-To: behnke@FNALF.FNAL.GOV\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <2745@snap>, paj@uk.co.gec-mrc (Paul Johnson) writes:\n>\n>I was having a look through a couple of components catalogues when I\n>came across a range of Peltier Effect heat pumps intended for cooling\n>components.  For those who have not heard of this effect, you put a\n>current through one of these devices, and it pumps heat from one side\n>to the other.  Reverse the current and you reverse the effect.  I\n>think a temperature difference can give you an EMF as well.\n>\n>Anyway, it struck me that you could make a nice cool/hot box for\n>picnics with one of these, a power regulator, a thermostat and a\n>couple of heat sinks.  The biggest device can shift 60W with an\n>efficiency of 80-90%, which ain't bad (although it would flatten my\n>car battery in about half an hour).\n>\n So-Called Cool-Hot boxes have been advetised for several years.  I recall\nDamark advertising them in a recent catalog.  Problem with the units is they do\na sh***y job of keeping food cold/warm.  The peliter devices used just don't\nseem to have enough punch to keep up.  If you want something hot, you need to\nheat it up before you put it in the box, and end up hours later with food thats\nonly moderately warm.  Same goes for cold items.\n\n>Unfortunately the catalogue didn't list anything more than the basic\n>specs as a heat pump.  I imagine that you would get a back-EMF as the\n>temperature gradient across the device increases.  If so, presumably\n>its power decreases as the back-EMF increases, until eventually we\n>have a steady state with no current being consumed (assuming no\n>leakage).  If so, then the final temperature difference between the\n>two sides could be set by the supply voltage and nothing more\n>(although that would be a lousy way to control it).\n>\n>What I would like to know is:\n>\n>1: Are the above guesses correct?\n>\n>2: What is the open-circuit thermal resistance of a typical device?\n>   (I just want to be sure that my coolbox is not going to get warm\n>   too fast when I unplug it)\n\n You'de probably be better off getting a good Coleman(tm) cooler and stocking\nup on \"blue ice\" blocks.\n\n>\n>3: How does a Peltier Effect heat pump actually work?  It looks like\n>   magic!\n>\n>4: Why don't they use these things in domestic fridges/freezers?\n>\n Same as above.  Not enough \"punch\" in them to keep/get things cold/hot.\n>\n>Thanks in advance,\n>\n>Paul.\n>\n>Paul Johnson (paj@gec-mrc.co.uk).\t    | Tel: +44 245 73331 ext 3245\n>--------------------------------------------+----------------------------------\n>These ideas and others like them can be had | GEC-Marconi Research is not\n>for $0.02 each from any reputable idealist. | responsible for my opinions\nMike Behnke             | Senior Tech/Advisor | Quid est illuidin aqua??\nFermi Nat Accel Lab     | Equipment Suuport   |\nBatavia, Il.            | Computing Div       | PISTRIX!!  PISTRIX!!\nBEHNKE@FNALF.FNAL.GOV   |                     |\n\nMy opinions are my own, not of the lab. So, if you don't like them, call\n\n1-800-UWH-INER\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7626, "properties": {"category": "comp.graphics", "text": "From: ryanph@mrl.dsto.gov.au\nSubject: DREGISTERe: XV for MS-DOS\nOrganization: Defence Science and Technology Organisation\nLines: 43\nNNTP-Posting-Host: mrl.dsto.gov.au\n\nPascal Perret, in article <1993Apr21.125750.263@eicn.etna.ch>, wrote\n> \n> \tSite\t: omnigate.clarkson.edu\n> \tAliases\t: grape.ecs.clarkson.edu\n> \tNumber\t: 128.153.4.2\n> \n> \t/pub/msdos/djgpp/pub\n> \n> \tit's xv221.zip (?) I think...\n> Certainly you read the other answer from Kevin Martin... He write about DV/X \n> (?). \n> \n>     What is it ?????? Could Someone answer ????\n\nFunny thing, the InterNet: I have no idea what xv221 might be - except that it\nmight be something to do with X-windows on PCs (? If you know, and have used\nit, and think that it is good, email me. [ryanph@mrl.dsto.gov.au]).\n\nDV/X is a common abbreviation for QuarterDeck corporation's Desqview/X\nsoftware.\n\nI have not used DV/X yet, but reading the blurbs that Quarterdeck sent me, it\nsounds pretty great:\n\t* allows multiple DOS machines - the way that OS/2 does, but without\nrequiring 10 MB of RAM to get OS/2 going\n\t* pre-emptive multi-tasking\n\t* network computing - a proper X-windows client/server application -\nthis means that DOS program can be used on other X-windows computers on your\nnetwork, and that X-windows programs can be used on your DV/X computer\n\t* although it is NOT a version of Unix, it effectively has many of\nUnix's features, and mostly you will be able to compile unix-type programs\nusing the djgpp or gnu c compilers\n\nThey advertise regularly in all of the major computing and programming\nmagazines. They also have InterNet support online (support@qdeck.com).\n\n> *  Pascal PERRET     \t\t|\tperret@eicn.etna.ch         *\n\nHope that this helps anyone wanting to know.\n\nPhil Ryan\nMelbourne, australia\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7627, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: e324ngon@credit.erin.utoronto.ca (Ngo  Nguyen)\nSubject: Re: Date is stuck\nOrganization: University of Toronto, Erindale Campus\nLines: 19\n\nIn article <1qte10$kn5@usenet.INS.CWRU.Edu> ab245@cleveland.Freenet.Edu (Sam Latonia) writes:\n>\n>I can't imagine why someone would leave their computer on all of\n>the time to start with. Its like leaving your lights tv, radio\n>and everything in the house on all of the time to me.....Nuts\n\n Computers are a special case.. and it's a pretty good idea to\n leave them on.. cuz everytime you turn on a computer, you're \n putting a surge of electricity through its delicate components.\n  Imagine you're turning on your computer 5 or more times a day.\n You're increasing the chances of damaging the chips, memory,\n etc on all the components of your computer. So you may save\n a few cents here and there in electricity bills, but it won't\n look like much when it come time to fix your computer.\n\n\t\t\t\t\tMy $.02 worth..\n\t\t\t\t\t  N. Ngo\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7628, "properties": {"category": "alt.atheism", "text": "From: naren@tekig1.PEN.TEK.COM (Naren Bala)\nSubject: Re: Slavery (was Re: Why is sex only allowed in marriage: ...)\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 21\n\nIn article <sandvik-150493144638@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n>Looking at historical evidence such 'perfect utopian' islamic states\n>didn't survive. I agree, people are people, and even if you might\n>start an Islamic revolution and create this perfect state, it takes \n>some time and the internal corruption will destroy the ground rules --\n>again.\n>\n\nNothing is perfect. Nothing is perpetual. i.e. even if it is perfect,\nit isn't going to stay that way forever. \n\nPerpetual machines cannot exist. I thought that there\nwere some laws in mechanics or thermodynamics stating that.\n\nNot an atheist\nBN\n--\n---------------------------------------------------------------------\n- Naren Bala (Software Evaluation Engineer)\n- HOME: (503) 627-0380\t\tWORK: (503) 627-2742\n- All standard disclaimers apply. \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7629, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ad060@Freenet.carleton.ca (Mark Waschkowski)\nSubject: Re: File Manager problem\nReply-To: ad060@Freenet.carleton.ca (Mark Waschkowski)\nOrganization: The National Capital Freenet\nLines: 29\n\n\nIn a previous article, mrw54660@eng-nxt01.cso.uiuc.edu (Michael R Whitchurch) says:\n\n>Whenever I start File Manager, the status bar is not displayed,\n>even though it is selected in the options menu. If I deselect it,\n>then select it again, the bar appears. Anyone have any ideas why\n>this is happening?\n\nNo, not really. It may be that your winfile.ini has gotten corrupted for\nsome unknown reason. Have you tried re-creating it by either\n1.exiting filemanager with the save setting option on when the status bar\nis visible,\nor\n2.double clicking on the Control menu(the one with minimize and maximize\nin in) when everything looks proper?\n\nIf you have, and it still doesn't work, you may want to delete your\nwinfile.ini and try one of these two saving procedures again to totally\nrecreate the file from scratch.\n\nGood luck!\n\nMark Waschkowski\n-- \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7630, "properties": {"category": "rec.sport.baseball", "text": "From: kubey@sgi.com (Ken Kubey)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nOrganization: Silicon Graphics, Inc., Mountain View, CA\nLines: 16\nNntp-Posting-Host: summit.wpd.sgi.com\n\nIn article <1993Apr16.011653.7403@Princeton.EDU> roger@astro.princeton.edu (Roger Lustig) writes:\n>\n>As for Ryan, is his W-L better than Morris'?  That's what a lot of voters\n>tend to look at.  And Morris *was* awfully good for a decade, and doesn't\n>lead MLB history in walks allowed, either.\n\nDespite walks and loses, Ryan deserves to be in the Hall of Fame (IMHO)\nbased only on his ho-hitters.  The strike-out records are an extra.\n\nWhat do people think about Andre \"400 HR\" Dawson for the HOF?\n\n----------------------------------------------------------------------------\nName:       Ken Kubey  or  QB   |  Reading, editing or printing of this text\nAddress:    kubey@sgi.com       |  without the express written consent of\nDisclaimer: the usual           |  Major League Baseball is prohibited.\n----------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7631, "properties": {"category": "comp.windows.x", "text": "From: agallagh@slate.mines.colorado.edu (GALLAGHER ANDREA J )\nSubject: XAllocColor fails to return nearest match\nReply-To: ngorelic@speclab.cr.usgs.gov\nOrganization: Colorado School of Mines\nLines: 23\n\n[posted for a friend]\n\nOkay, I looked through the FAQs and didn't see this, but I know its\ncome up before...\n\nXAllocColor is supposed to do the following in order:\n    Try to find an exact match read-only color cell. (within hardware limits)\n    Try to allocate a read-only colorcell and set it to match.\n\tand when all else fails, \n    Return the colorcell with the best match from the read-only colors \n    already allocated in the colormap.\n\nThis sounds good in theory.  It doesn't seem to work this way\nthough.  If there is no exact match already in the colormap, and \nno unallocated cells, then XAllocColor fails, even when it has \nalready allocated several other cells already, and there are dozens \nof read-only cells already in the colormap.\n\nIs this a bug?  A feature?  A misunderstanding on my part?\n\nAny help appreciated,\n\nNoel (ngorelic@speclab.cr.usgs.gov)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7632, "properties": {"category": "comp.graphics", "text": "From: jk87377@lehtori.cc.tut.fi (Kouhia Juhana)\nSubject: XV problems\nOrganization: Tampere University of Technology\nLines: 113\nDistribution: world\nNNTP-Posting-Host: cc.tut.fi\n\n[Please, note the Newsgroups.]\n\nRecent discussion about XV's problems were held in some newsgroup.\nHere is some text users of XV might find interesting.\nI have added more to text to this collection article, so read on, even\nyou so my articles a while ago.\n\nI hope author of XV corrects those problems as best he can, so fine\nprogram XV is that it is worth of improving.\n(I have also minor ideas for 24bit XV, e-mail me for them.)\n\nAny misundertanding of mine is understandable.\n\n\nJuhana Kouhia\n\n\n==clip==\n\n[ ..deleted..]\n\nNote that 'xv' saves only 8bit/rasterized images; that means that\nthe saved jpegs are just like jpeg-to-gif-to-jpeg quality.\nAlso, there's three kind of 8bit quantizers; your final image quality\ndepends on them too.\n \nThis were the situation when I read jpeg FAQ a while ago.\n \nIMHO, it is design error of 'xv'; there should not be such confusing\nerrors in programs.\nThere's two errors:\n  -xv allows the saving of 8bit/rasterized image as jpeg even the\n   original is 24bit -- saving 8bit/rasterized image instead of\n   original 24bit should be a special case\n  -xv allows saving the 8bit/rasterized image made with any quantizer\n   -- the main case should be that 'xv' quantizes the image with the\n   best quantizer available before saving the image to a file; lousier\n   quantizers should be just for viewing purposes (and a special cases\n   in saving the image, if at all)\n \n==clip==\n\n==clip==\n\n[ ..deleted..]\n\nIt is limit of *XV*, but not limit of design.\nIt is error in design.\nIt is error that 8bit/quantized/rasterized images are stored as jpegs;\njpeg is not designed to that.\n\nAs matter of fact, I'm sure when XV were designed 24bit displays were\nknown. It is not bad error to program a program for 8bit images only\nat that time, but when 24bit image formats are included to program the\nwhole design should be changed to support 24bit images.\nThat were not done and now we have\n -the program violate jpeg design (and any 24bit image format)\n -the program has human interface errors.\n\nOtherway is to drop saving images as jpegs or any 24bit format without\nclearly saying that it is special case and not expected in normal use.\n\n[ ..deleted.. ]\n\n==clip==\n\nSome new items follows.\n\n==clip==\n\nI have seen that XV quantizes the image sometimes poorly with -best24\noption than with default option we have.\nThe reason surely is the quantizer used as -best24; it is (surprise)\nthe same than used in ppmquant.\n\nIf you remember, I have tested some quantizers. In that test I found\nthat rlequant (with default) is best, then comes djpeg, fbmquant, xv\n(our default) in that order. In my test ppmquant suggeeded very poorly\n-- it actually gave image with bad artifacts.\n\nI don't know is ppmquant improved any, but I expect no.\nSo, use of XV's -best24 option is not very good idea.\n\nI suggest that author of XV changes the quantizer to the one used in\nrlequant -- I'm sure rle-people gives permission.\n(Another could be one used in ImageMagick; I have not tested it, so I\ncan say nothing about it.)\n\n==clip==\n\n==clip==\n\nSome minor bugs in human interface are:\n\nKey pressings and cursor clicks goes to a buffer; Often it happens\nthat I make click errors or press keyboard when cursor is in the wrong\nplace. It is very annoying when you have waited image to come about\nfive minutes and then it is gone away immediately.\nThe buffer should be cleaned when the image is complete.\n\nAlso, good idea is to wait few seconds before activating keyboard\nand mouse for XV after the image is completed.\nOften it happens that image pops to the screen quickly, just when\nI'm writing something with editor or such. Those key pressings\nthen go to XV and image has gone or something weird.\n\nIn the color editor, when I turn a color meter and release it, XV\nupdates the images. It is impossible to change all RGB values first\nand then get the updated image. It is annoying wait image to be\nupdated when the setting are not ready yet.\nI suggest of adding an 'apply' button to update the exchanges done.\n\n==clip==\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7633, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: narlochn@kirk.msoe.edu\nSubject: last\nDistribution: usa\nOrganization: Milwaukee School Of Engineering, Milwaukee, WI USA\nLines: 20\n\nI have two questions:\n\n1) I have been having troubles with my Wordperfect for Windows.\n   When I try to select and change fonts, etc. some of the text\n   disappears.  I tried to center two lines once, and the second\n   line disappeared.  I can not find the error, and I do not\n   know how to correct it.\n\n2) Is this the right newsgroup?  Where should I go?\n\nE-mail prefered...\n\n                                                  _____\nWho else is still waiting for \"Naked Gun Part (Pi) | |  \"\n\n''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/\n'/''/'Nathan'Narloch''/''/''/'\"Alumn122@whscdp.whs.edu\"/''/''/''/'\n/''/'(Enforcer'Burp)'/''/''/''or'/'\"NARLOCHN@KIRK.MSOE.EDU\"'/''/''\n''/''/Milw,/WI/53207/''/'\"Join'the'Official'Psycho/Team...\"/''/''/\n'/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/'\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7634, "properties": {"category": "rec.sport.baseball", "text": "Subject: Cubs mailing list\nFrom: andrew@dark.side.of.the.moon.uoknor.edu (Chihuahua Charlie)\nDistribution: usa\nOrganization: OU - Academic User Services\nNntp-Posting-Host: loopback.uoknor.edu\nNews-Software: VAX/VMS VNEWS 1.41    Lines: 14\nLines: 14\n\n\n\tIs there anyone out there running a Chicago National\n\tLeague Ballclub list?  If so, please send me information\n\ton it to...\n\t\t\tandrew@aardvark.ucs.uoknor.edu\n\n\tThanks!\n\n|\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/|\n|O|  _    |  Chihuahua Charlie              |  OU is not responsible   |O|\n|O| | |   |  Academic User Services         |  for anything anywhere,  |O|\n|O| ||||  |  The University of Oklahoma     |  except for that one     |O|\n|O|  |_|  |  andrew@aardvark.ucs.uoknor.edu |  incident where 200...   |O|\n|O|____________________________________________________________________|O|\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7635, "properties": {"category": "rec.sport.hockey", "text": "From: daniell@cory.Berkeley.EDU (Daniel Lyddy)\nSubject: Re: Too Many Europeans in NHL\nNntp-Posting-Host: cory.berkeley.edu\nOrganization: University of California, at Berkeley\nLines: 37\n\nIn article <rauser.734062608@sfu.ca> rauser@fraser.sfu.ca (Richard John Rauser) writes:\n>\n>\n>   Ten years ago, the number of Europeans in the NHL was roughly a quarter\n>of what it is now. Going into the 1992/93 season, the numbers of Euros on\n>NHL teams have escalated to the following stats:\n>\n>Canadians: 400\n>Americans: 100\n>Europeans: 100\n>\n>\n>   Here's the point: there are far too many Europeans in the NHL. I am sick\n\nYou know, you're absolutely right.  I think we should round up all those\nplayers of European descent and ship 'em back to where they came from.  Let's\nsee, with whom should we start?  I dunno, Lemieux?  Hmmm...sounds like he\nhas *French* blood in him!!!  Hey!  France is part of Europe!  Send that\nEuro-blooded boy back!!!\n\nSheesh.\n\n>    I'm all for the creation of a European Hockey League, and let the Bures\n>and Selannes of the world play on their own continent.\n>\n>    I just don't want them on mine.\n\nI don't think it would be hard to find some Native Americans (or Native\nCanadians, for that matter) who would dispute your claim to this great \ncontinent of *ours.*  Ya see, if you believe the anthropologists, we're *all*\nimmigrants of some sort.  If you really don't think that Mogilny, Bure,\nSelanne, et al have improved the NHL, then I'm not sure you understand the\ngame.\n-- \n******************************************************************************\nDan Lyddy    daniell@cory.berkeley.edu    University of California at Berkeley\n\"No, I don't play hockey.  Not too many brothers do.\"  -- Deion Sanders\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7636, "properties": {"category": "sci.med", "text": "From: carl@SOL1.GPS.CALTECH.EDU (Carl J Lydick)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: HST Wide Field/Planetary Camera\nLines: 28\nDistribution: world\nReply-To: carl@SOL1.GPS.CALTECH.EDU\nNNTP-Posting-Host: sol1.gps.caltech.edu\n\nIn article <1qmlgaINNjab@hp-col.col.hp.com>, cab@col.hp.com (Chris Best) writes:\n=\n=Jason Chen writes:\n=> Now here is a new one: vomiting. My guess is that MSG becomes the number one\n=> suspect of any problem. In this case. it might be just food poisoning. But\n=> if you heard things about MSG, you may think it must be it.\n=\n=----------\n=\n=Yeah, it might, if you only read the part you quoted.  You somehow left \n=out the part about \"we all ate the same thing.\"  Changes things a bit, eh?\n\nPerhaps.  Now, just what leads you to believe that it was MSG and not some\nother ingredient in the food that made you ill?\n\n=These people aren't condemning Chinese food, Mr. Chen - just one of its \n=(optional) ingredients.  Try not to take it so personally.\n\nAnd you're condemning one particular ingredient without any evidence that\nthat's the ingredient to which you reacted.\n--------------------------------------------------------------------------------\nCarl J Lydick | INTERnet: CARL@SOL1.GPS.CALTECH.EDU | NSI/HEPnet: SOL1::CARL\n\nDisclaimer:  Hey, I understand VAXen and VMS.  That's what I get paid for.  My\nunderstanding of astronomy is purely at the amateur level (or below).  So\nunless what I'm saying is directly related to VAX/VMS, don't hold me or my\norganization responsible for it.  If it IS related to VAX/VMS, you can try to\nhold me responsible for it, but my organization had nothing to do with it.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7637, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: leebr@ecf.toronto.edu (LEE BRIAN)\nSubject: Re: WP-PCF, Linux, RISC?\nOrganization: University of Toronto, Engineering Computing Facility\nLines: 33\n\nIn article <1qu8ud$2hd@sunb.ocs.mq.edu.au> eugene@mpce.mq.edu.au writes:\n>In article <C5o1yq.M34@csie.nctu.edu.tw> ghhwang@csie.nctu.edu.tw (ghhwang) writes:\n>>\n>>Dear friend,\n>>  The RISC means \"reduced instruction set computer\". The RISC usually has \n>>small instruction set so as to reduce the circuit complex and can increase \n>>the clock rate to have a high performance. You can read some books about\n>>computer architecture for more information about RISC.\n>\n>hmm... not that I am an authority on RISC ;-) but I clearly remember\n>reading that the instruction set on RISC CPUs is rather large.\n>The difference is in addressing modes - RISC instruction sets are not\n>as orthogonal is CISC.\n>\n>-- \n>+-----------------------------------------------------------------------------+\n>|            Some people say it's fun, but I think it's very serious.         |\n>|                         eugene@macadam.mpce.mq.edu.au                       |\n>+-----------------------------------------------------------------------------+\n\nTheoretically supposed to be reduced.... not any longer.  That's why everyone\nis arguing about RISC v.s. CISC.  Personally, I think CISC will win out.\nJust take a look at the Pentium!  (Not that I like Intel architectures either,\nbut that's another story...)\n\nbye!\n\n\n-------------------------------------------------------------------------------\nBrian \"Hojo\" Lee       | \"Hey, excuse me miss, could I have a .GIF of you?\"\nleebr@ecf.toronto.edu  |\nleebr@eecg.toronto.edu | (try Linux... the best and free UN*X clone!)\n-------------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7638, "properties": {"category": "rec.sport.baseball", "text": "From: mjones@fenway.aix.kingston.ibm.com (Mike Jones)\nSubject: Two stooges\nReply-To: mjones@donald.aix.kingston.ibm.com\nOrganization: IBM AIX/ESA Development, Kingston NY\nLines: 9\n\nWell, the Red Sox have apparenly resigned Herm Winningham to a AAA contract.\nTed \"Larry\" Simmons signed him to a AAA contract then released him from\nBuffalo, allowing Lou \"Curly\" Gorman to circumvent the rule about not\nresigning free agents until May 1. Clearly, neither of these guys is bright\nenough to be Moe.\n\n Mike Jones | AIX High-End Development | mjones@donald.aix.kingston.ibm.com\n\nMake it right before you make it faster.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7639, "properties": {"category": "sci.med", "text": "From: berryh@huey.udel.edu (John Berryhill, Ph.D.)\nSubject: Re: Krillean Photography\nNntp-Posting-Host: huey.udel.edu\nOrganization: little scraps of paper, mostly\nLines: 10\n\n\nI think he means Girlie Photography.  A good place to find it is in\nnon-descript little places that usually just say \"Books\" on the\noutside of the building in black and white.\n\n\n-- \n\n                                              John Berryhill\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7640, "properties": {"category": "comp.windows.x", "text": "From: pmg@mdavcr.mda.ca (Phil Gray)\nSubject: Opinions on Galaxy ?\nSummary: Does anybody have any negative experiences ?\nKeywords: GUI Builders, evaluation\nOrganization: MacDonald Dettwiler and Associates\nLines: 21\n\nWe are currently evaluating GUI builders, initially for Motif but with\na wish to be flexible & portable.  We have been through the popular\nnames (UIMX, TeleUSE, XVT etc) and have been very impressed with what\nwe have seen of Galaxy from Visix.  I have spoken to current users\nfrom a list supplied by Visix (happy users as you would expect), and\nseen favourable comments on the net.  However, since it is fairly\nexpensive to get an evaluation license from Visix, I would like to\nquery the net for any negative experiences with Galaxy.  Did anybody\nevaluate them and prefer another tool or use Galaxy and regret it or\nfind any mis-features ?\n\nadvTHANKSance,\n\nPhil\n\n-- \n--------------------------------------------------------------------------\nPhil M Gray                       Voice: (604) 278-3411\nMacDonald Dettwiler               Fax:   (604) 278-2117\n13800 Commerce Parkway\nRichmond, BC, Canada  V6V 2J3     {pmg@mda.ca | ..!uunet!van-bc!mdavcr!pmg}\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7641, "properties": {"category": "comp.graphics", "text": "From: ani@ms.uky.edu (Aniruddha B. Deglurkar)\nSubject: help: Splitting a trimming region along a mesh \nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 28\n\n\n\n\tHi,\n\n\tI have a problem, I hope some of the 'gurus' can help me solve.\n\n\tBackground of the problem:\n\tI have a rectangular mesh in the uv domain, i.e  the mesh is a \n\tmapping of a 3d Bezier patch into 2d. The area in this domain\n\twhich is inside a trimming loop had to be rendered. The trimming\n\tloop is a set of 2d Bezier curve segments.\n\tFor the sake of notation: the mesh is made up of cells.\n\n\tMy problem is this :\n\tThe trimming area has to be split up into individual smaller\n\tcells bounded by the trimming curve segments. If a cell\n\tis wholly inside the area...then it is output as a whole ,\n\telse it is trivially rejected. \n\n\tDoes any body know how thiss can be done, or is there any algo. \n\tsomewhere for doing this.\n\n\tAny help would be appreciated.\n\n\tThanks, \n\tAni.\n-- \nTo get irritated is human, to stay cool, divine.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7642, "properties": {"category": "sci.space", "text": "From: pete@extro.ucc.su.OZ.AU (Peter Alexander Merel)\nSubject: Re: What if the USSR had reached the Moon first?\nNntp-Posting-Host: extro.ucc.su.oz.au\nOrganization: Sydney University Computing Service, Sydney, NSW, Australia\nLines: 25\n\njgreen@trumpet.calpoly.edu (James Thomas Green) writes:\n>If they had beaten us, I speculate that the US would have gone\n>head and done some landings, but we also would have been more\n>determined to set up a base (both in Earth Orbit and on the\n>Moon).  Whether or not we would be on Mars by now would depend\n>upon whether the Soviets tried to go.  Setting up a lunar base\n>would have stretched the budgets of both nations and I think\n>that the military value of a lunar base would outweigh the value\n>of going to Mars (at least in the short run).  Thus we would\n>have concentrated on the moon.\n\nGreat speculation - I remember being proud on behalf of all the free\nworld (you think that way when you are seven years old) that we had\ngot there first. Now I'm almost sorry that it worked out that way.\n\nI guess the soviets would have taken the victory seriously too, and\nwould almost certainly not have fallen victim to the complacency that\novertook the US program. Perhaps stretching to match US efforts would\nhave destabilized them sooner than it did in fact - and in the tradition\nof Marvel Comics 'What If', this destabilization in the Brezhnev era might\nhave triggered the third world war. Hmm, maybe it was a giant leap after all.\n\n-- \nInternet: pete@extro.su.oz.au          |         Accept Everything.            |\nUUCP: {uunet,mcvax}!munnari!extro!pete |         Reject Nothing.               |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.363+0000", "event": "documents", "entityId": 7643, "properties": {"category": "comp.windows.x", "text": "From: troll@sug.org (A. Newman)\nSubject: Re: Trouble compiling X11R5 on SunOS_4.1.3\nArticle-I.D.: world.C52nBL.u5\nOrganization: Sun User Group\nLines: 192\nNntp-Posting-Host: bridge.sug.org\n\nIn article <1993Apr6.081605.12977@fwi.uva.nl> casper@fwi.uva.nl (Casper H.S. Dik) writes:\n>epstein@trwacs.fp.trw.com (Jeremy Epstein) writes:\n>\n>>dmm@head-cfa.harvard.edu (David Meleedy) writes:\n>>There's a bug in SunOS 4.1.3, which is alluded to in the FAQ (although\n>>there it's talking about X11R4 as being affected).  You need to force\n>>libXmu to be linked statically, rather than dynamically, which works\n>>around the linker error.  The simplest thing to do is edit each of\n>>the Makefiles where there's a failure and change the line which reads:\n>>\tXMULIB = -L$(XMUSRC) -lXmu\n>>to:\n>>\tXMULIB = -L$(XMUSRC) -Bstatic -lXmu -Bdynamic\n>\n>No. This is only relevant for OpenWindows 3.x as shipped with SunOS.\n>It is not relevant for MIT R5. MIT R5 should compile without problems.\n>\n>Casper\n\nI don't know how many hours you've spent on this, but the Sun User\nGroup makes X11R5 available on CD-ROM to its members. The 1992.1 disk\nhas both sources and binaries and it sells for $50.  I've tagged a\ntable of contents and an orderform on below if anyone's interested.\n\nAlex Newman\n\n----------------------------------------------------------------------------\nAlex Newman\t(617) 232-0514 voice\tMy life may be stressful,\ntroll@sug.org\t(617) 232-1347 fax\tbut at least it's not boring\nSun User Group * 1330 Beacon St., #315 * Brookline, MA 02146\n----------------------------------------------------------------------------\n\n\f\n\n\nSUG CD 1992.1 is X11R5 and GNU on a CDROM, priced at $50 to SUG\nmembers, including a caddy!\n\nSUG's emphasis has always been on supplying the greatest possible\nservice and value-added to our members.  Last year, the SUG 1991 disk\ncontained plug-and-play X11R4, 20MB of additional essential binaries,\nalmost 200MB of Sun patches, fully-indexed archives of Sun-related net\npostings, priced at only $250.\n\nOur aim this year has been to reduce the price for disks which can be\nproduced inexpensively, but to continue to supply as much value-added\nas possible.  To accomplish this, we will be putting out a two disk\nset, the first containing what's ready and needed now, the second\navailable later in '92, containing more SPARC binaries and other\nuseful material not found on previous disks.\n\nThe SUG 1992.1 disk, which was assembled by Robert A. Bruce, contains\na lot of essential source code, and we decided it would be a great\nservice to make it available right away to our members (and this\npricing makes this a good opportunity to become a member!) for $50 per\ndisk (including one of those hard-to-find caddies!).  If you are not a\nSUG member, you can become one for an additional $40 if you live\nwithin the US or $55 outside.\n\nThe SUG 1992.1 CDROM is an ISO 9660 disk (which means it can be used\nby PC, Macintosh, and other workstations as well), and contains a\ntotal of 543MB of material, including:\n\nX11R5 SOURCES AND CORE BINARIES (for SPARC) as of several weeks after\nthe initial distribution, thus, four fixes and the the MIT contrib-0\ndistribution are included (109MB of material).  Binaries for: X Xsun\nXsunMono appres atobm auto_box bdftopcf beach_ball bitmap bmtoa\nconstype editres fs fsinfo fslsfonts fstobdf ico imake kbd_mode\nlistres lndir makedepend maze mkdirhier mkfontdir oclock plbpex puzzle\nresize showfont showrgb startx twm viewres x11perf x11perfcomp xauth\nxbiff xcalc xclipboard xclock xcmsdb xcmstest xconsole xcutsel\nxditview xdm xdpr xdpyinfo xedit xev xeyes xfd xfontsel xgas xgc xhost\nxinit xkill xload xlogo xlsatoms xlsclients xlsfonts xmag xman xmh\nxmkmf xmodmap xon xpr xprop xrdb xrefresh xset xsetroot xstdcmap xterm\nxwd xwininfo xwud\n\nCOPIES OF CONTRIBUTED X SOURCES (from export.lcs.mit.edu/contrib),\nwhich were then uncompressed/untarred into source directories (212MB).\nThese are sources only, and some of them were (after the date of\nproduction of this disk) included in the MIT contrib-2 and contrib-3\ndistributions.\n\nGNU SOURCES WHICH WERE uncompressed/untarred into source directories\n(88MB).\n\nSPARC BINARIES (and needed libraries) for these GNU programs: a2p ar\nas basename bash bison cat cc1 cc1plus chgrp chmod chown ci cmp co\ncomm compress cp cpio cpp ctags cut cvs date dd df diff diff3 dir\ndirname du egrep elvis emacs env etags expand expr fgrep find\nfind2perl flex fold g++ g++dep g++filt gawk gcc gdb ginstall gnuchess\ngnuchessn gnuchessr gnugo gnuplot gnuplot_x11 gprof grep h2ph head id\nident indent ispell ld ld++ less ln locate logname ls m4 make merge\nmkdir mkfifo mkmodules mknod mt mv nice nm oleo paste pathchk perl pr\nprintenv printf ranlib rcs rcsdiff rcsinfo rcsmerge rcstest ref refont\nrlog rm rmdir rmt s2p screen sed size sleep split strip stty sum tac\ntail taintperl tar tee test time touch tput tty uname unexpand uniq\nvdir virec whoami xargs xchess yes zmore\n\nAN ARCHIVE OF COMP.SOURCE.X postings, volume 0 through volume14\n(58MB).  Parts are supplied just as posted.  You get to put together\nthe pieces, compile, install, etc.\n\nCost: SUG members: $50; Non-members: additional $40 within the US, $55\n\telsewhere \nShipping & Handling: $10 inside the USA; $25 elsewhere\n\nMail to: Sun User Group, Inc.\n\t Suite 315\n\t 1330 Beacon Street\n\t Brookline, MA  02146\n\t USA\n\n\t(617) 232-0514\tvoice\n\t(617) 232-1347\tfax\n\n\nThe Sun User Group also accepts Visa and MasterCard via telephone or\nelectronically.\n\n\n--------------------- cut here and return completed form ---------------------\n\n                                 The SUGCD 1992.1\n                                     ORDER FORM\n\nThe price of the CD is $50.\n\nShipping and handling: Add $10 (USA) or $25 (Intl.)\n\nIf you are not a member of the Sun User Group, add $40 (USA) or $55\n(International) to the above sums for membership.  You must be a SUG\nmember to purchase the CD-ROM.  I enclose a US $ check for:\n\n                    __$ 60 (SUG member in the USA)\n                    __$ 75 (SUG member outside the USA)\n                    __$100 (Includes membership inside the USA)\n                    __$130 (Includes international membership)\n\n\n Name__________________________________ Signature___________________________\n\n Company Name_______________________________________________________________\n\n SUG Membership #(if known)_________________________________________________\n\n Electronic Mail Address____________________________________________________\n\n Telephone Number___________________________________________________________\n\n Check Enclosed_____             Mastercard_____  Visa_____\n\n Credit Card #__________________________________  Exp. date.________________\n\n Card Holder:__________________________ Signature:__________________________\n\n Ship to:                                Bill to:\n\n ______________________________________  ___________________________________\n\n ______________________________________  ___________________________________\n\n ______________________________________  ___________________________________\n\n ______________________________________  ___________________________________\n\n-------------------------------------------------------------------------\n\n[   ]  I hereby authorize the Sun User Group to renew my membership\n        and charge my credit card automatically on an annual basis.\n\n[   ]  I do not wish my name to be included in non-Sun User\n        Group mailings.\n\n[   ]  I do not wish my name to be published in the Sun User\n        Group member directory.\n\n[   ]  I wish to be added to the Sun User Group electronic\n\tmailing-list (members only)\n\n\n                  OUTSIDE THE U.S. ONLY:\n\nIndividuals outside of the USA may find using their credit cards easier\nthan purchasing US$ checks as this eliminates bank charges.\n\n-------------------------------------------------------------------------\n                   Sun User Group\n                   1330 Beacon Street, Suite 315\n                   Brookline, MA  02146\n\n\t\t   Voice: +1 617 232-0514\n\t\t   Fax:   +1 617 232-1347\n\t\t   Email: office@sug.org\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7644, "properties": {"category": "talk.politics.misc", "text": "From: sys1@exnet.co.uk (Xavier Gallagher)\nSubject: Re: Employment (was Re: Why not concentrate on child molesters?\nOrganization: ExNet Systems Ltd Public Access News, London, UK\nLines: 28\n\nIn article <C5HF6r.CG3@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson) writes:\n>In <C5FG7t.6At@exnet.co.uk> sys1@exnet.co.uk (Xavier Gallagher) writes:\n>\n>|I have to disagree.   You do not take your logic far enough.\n>\n>|True, man did not invent the need for food, shelter, warmth and the ilk,\n>|but man did invent the property laws and the laws of trespass.\n>\n>I guess Xavier has never heard of territoriality in animals. Many animals,\n>especially preditors will stake out a territory and chase of any members of\n>the same species that tries to invade their territory.\n\n\nYes, I have!  Wasn't there a case of a single lion ruling all the land\nfrom South Africa up to Egypt across to the congo?  If my memory serves\nme correctly there was enough game to feed some 100,000 or more lions but he\nwouldn't let the other lions hunt as he wanted it all himself.\n\nHe died of a heart attack brought on by being overweight.\n\nGood thing too as he had designs on Europe, America (north and south),\nand the Falkland Islands.\n\n>Mark.Wilson@AtlantaGA.NCR.com\n\n\n\nXavier.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7645, "properties": {"category": "misc.forsale", "text": "From: \"Jack Previdi\" <p00020@psilink.com>\nSubject: Re: Printing\nIn-Reply-To: <1qk2m5$1up@agate.berkeley.edu>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Avoirdupois Institute\nX-Mailer: PSILink-DOS (3.4)\nLines: 38\n\n>DATE:   15 Apr 1993 16:32:05 GMT\n>FROM:   cozzlab@garnet.berkeley.edu\n>\n>In article <1993Apr15.053905.16811@sarah.albany.edu> me9574@albnyvms.bitnet writes:\n>\n>[advertises his printing business]\n>\n>Oh, dear.  Let me be the first on my block.\n>\n>You have just violated one of the major shibboleths of the Usenet groups:\n                                         ^^^^^^^^^^^\n \tnit: Is he unable to type the first 'h' in this word? ;-)\n\n>you're not supposed to use a newsgroup to plug your own commercial\n>enterprise (of _any_ kind; people frequently get flamed for announcing\n>they've got a new book out.)\n>\n>I don't know whether this is an official Usenet rule or just a long-\n>standing custom, and it doesn't make much difference from a practical\n>point of view.\n\n\n\tAs a matter of fact D.J., it does make a difference.\n\tAlmost a half million new users joined the Internet last year,\n\tmany of them are commercial businesses. The ban on commercial\n\tuse of Internet is no more.\n\n\tOne should have the breeding not to post commercial material\n\ton an account provided by ones employer or school, unless the\n\tprovider of such account gives permission. (HA!)\n\n\tThose of us who pay for Internet access are constrained only\n\tby our innate good taste and no have no \"administrator\" to \n\tguide(?) us.\n\n\tJack Previdi                          Veni, Vidi, Fece!\n\tp00020@psilink.com\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7646, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: university violating separation of church/state?\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.01\nLines: 29\n\ndmn@kepler.unh.edu (...until kings become philosophers or philosophers become kings) writes:\n>      Recently, RAs have been ordered (and none have resisted or cared about\n> it apparently) to post a religious flyer entitled _The Soul Scroll: Thoughts\n> on religion, spirituality, and matters of the soul_ on the inside of bathroom\n> stall doors. (at my school, the University of New Hampshire) It is some sort\n> of newsletter assembled by a Hall Director somewhere on campus. It poses a\n> question about 'spirituality' each issue, and solicits responses to be \n> included in the next 'issue.' It's all pretty vague. I assume it's put out\n> by a Christian, but they're very careful not to mention Jesus or the bible.\n> I've heard someone defend it, saying \"Well it doesn't support any one religion.\n> \" So what??? This is a STATE university, and as a strong supporter of the\n> separation of church and state, I was enraged.\n> \n>      What can I do about this?\n\nIt sounds to me like it's just SCREAMING OUT for parody.  Give a copy to your\nfriendly neighbourhood SubGenius preacher; with luck, he'll run it through the\nmental mincer and hand you back an outrageously offensive and gut-bustingly\nfunny parody you can paste over the originals.\n\nI can see it now:\n\n                               The Stool Scroll\n         Thoughts on Religion, Spirituality, and Matters of the Colon\n\n                       (You can use this text to wipe)\n\n\nmathew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7647, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bunt0003@student.tc.umn.edu (Monthian Buntan-1)\nSubject: Why does Apple give us a confusing message?\nNntp-Posting-Host: student.tc.umn.edu\nOrganization: University of Minnesota\nLines: 18\n\n\nHi there,\n\nDoes anyone know why Apple has an ambiguous message for\nC650 regarding fpu?  In all Mac price lists I've seen, every C650\nhas the message \"fpu: optional\".  I know from what we've discussed in this\nnewsgroup that all C650 have the fpu built in except the 4/80\nconfiguration.  Why would they be so unclear about this issue in their\nprice list?\nI'm planning to buy the C650 8/230/cd pretty soon, but I'm now getting\nconfused with whether it comes with fpu or not.\nWhy say \"optional\" if it's built in?\nPlease, anybody help me understand this game.\n\nRegards,\n\nThian.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7648, "properties": {"category": "comp.windows.x", "text": "From: kriss@frec.bull.fr (Christian Mollard)\nSubject: Re: Looking For David E. Smyth\nReply-To: Christian.Mollard@ec.bull.fr\nOrganization: Bull S.A. Echirolles\nLines: 23\n\nIn article <1993Apr9.144859.10535@nynexst.com>, zvi@nynexst.com (Zvi Guter) writes:\n\nThe author of Wcl (or the current care taker). His is the only name I found\nin the dist tree. I have tried to mail him at: David.Smyth@ap.mchp.sni.de,\nbut the mail bounced back.\nAny help in finding him will be greatly appreciated.\n\nTry\n\tdavid@ap542.uucp\n\tdavid%ap542@ztivax.siemens.com\n\n\nXtian.\n\n\n      /     /                              Name:    Christian Mollard      /\n     /   /        __/                     Email:   C.Mollard@frec.bull.fr /\n       /     __/   /    __/     __/      Phone:   (33) 76 39 78 92       /\n   /        /     /  __  /   __  /      Bull:    229 78 92              /\n__/  __/ __/   __/ _____/  _____/      Fax:     (33) 76 39 76 00       /\n                                                                      /\nAddress:\tBULL S.A., B.P. 208, 38432 Echirolles Cedex, France  /\n____________________________________________________________________/\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7649, "properties": {"category": "rec.sport.hockey", "text": "From: vzhivov@superior.carleton.ca (Vladimir Zhivov)\nSubject: Re: Individual Winners (WAS: Re: WHERE ARE THE DOUBTERS NOW? HMM?)\nOrganization: Carleton University\nLines: 52\n\nIn <1993Apr15.170226.11074@cci632.cci.com> dwk@cci632.cci.com (Dave Kehrer) writes:\n\n>Well, since you mentioned it...\n\n>In article <1993Apr12.142028.6300@jarvis.csri.toronto.edu>, migod@turing.toronto.edu (Mike Godfrey) writes:\n>  \n>> Chelios the Norris,\n\n>If you asked me 30 days ago, I'd agree with you.  I now give the nod to\n>Raymond Bourque; his play took off the same time the B's did.  Chelios\n>gets a close second...\n\nHow about Kevin Hatcher? Scored roughly 35 goals, plays 30 minutes a game.\n\n>> dunno who wins the Vezina, but I suspect not Potvin.  \n>  \n>Barrasso finally gets his due, in a close one over Eddie the Eagle...\n\nThat's really sad when two second-rate goalies (Barasso and Belfour)\nare the main contenders for the Vezina. Call me crazy, but how about\nTommy Soderstrom - five shutouts for a 6th place team that doesn't\nreally play defense. It's really unfortunate that the better goalies\nin the league (McLean, Essensa, Vernon) had unspectacular years. BTW,\nif you are going to award the Norris on the basis of the last 30 days,\nwhy not give the Vezina to Moog? He has been the best goalie over the\npast month.\n\n>> Coach of the year is tricky:  Burns did the most with the least raw talent,\n>> King did a good job but the Flames clearly underachieved last year, Brian\n>> Sutter has done exceptionally well in his first year with a new team, ditto\n>> Demers, Page has been blessed by the ripening and acquisition of young\n>> talent, Darryl Sutter is having a good year for a rookie coach, Berry made\n>> the best of a bad situation, Terry Crisp worked minor miracles, and Bowman\n>> was Bowman.  I'd pick Burns, but I'm mildly biased.\n\n>In *your* case, that bias is acceptable :-)... Mine shows with the Norris pick,\n>so we're even...\n\n>I'm impressed with what all the coaches you mentioned did, but my pick would be \n>Al Arbour.  Not too many folks thought the Isles would be in the playoffs, let \n>alone contend for 3rd in their division... Granted that they *did* have a little\n>help from their cousins on Broadway... :-)\n\n>And I like the Islanders about as much as I like mowing my lawn...\n\nArbour or King. Burns will probably win, since playoffs aren't taken\ninto consideration - he's OK in the regular season, but I'm not sure\nif he's beaten anyone other than Hartford in the playoffs.\n\n- Vlad the Impaler\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7650, "properties": {"category": "rec.motorcycles", "text": "From: erick@andr.UB.com (Eric A. Kilpatrick)\nSubject: Re: Drinking and Riding\nNntp-Posting-Host: pixel.andr.ub.com\nReply-To: erick@andr.UB.com\nOrganization: Ungermann-Bass Inc./Andover, MA\nLines: 7\n\nPersonally, I follow the no alcohol rule when I'm on a bike.  My view is that you have to be in such a high degree of control that any alcohol could be potentially hazardous to my bike!  If I get hurt it's my own fault, but I don't want to wreck my Katana.  I developed this philosophy from an impromptu *experiment*.  I had one beer at 6:00 in the evening and had volleyball practice at 7:00.  I wasn't even close to leagle intoxication, but I couldn't perform even the most basic things until 8:30!  This made\n\n\n\n me think about how I viewed alcohol and intoxication.  You may seem fine, but your reactions may be affected such that you'll be unable to recover from hitting a rock or even just a gust of wind.  I greatly enjoy social drinking but, for me, it just doesn't mix with riding.\n\nMax enjoyment!\nEric\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7651, "properties": {"category": "sci.crypt", "text": "From: marc@mit.edu (Marc Horowitz N1NZU)\nSubject: The source of that announcement\nOrganization: Massachusetts Institute of Technology\nLines: 38\nDistribution: world\nNNTP-Posting-Host: oliver.mit.edu\n\nThe message from the NIST about the clipper chip comes from the\nfollowing address:\n\n\tclipper@csrc.ncsl.nist.gov (Clipper Chip Announcement)\n\nJust who is that, I asked myself, or rather, I asked the computer.\n\n    % telnet csrc.ncsl.nist.gov 25\n    Trying...\n    Connected to csrc.ncsl.nist.gov.\n    Escape character is '^]'.\n    220 first.org sendmail 4.1/NIST ready at Sat, 17 Apr 93 20:42:56 EDT\n    expn clipper\n    250-<csspab@mail-gw.ncsl.nist.gov>\n    250-<denning@cs.georgetown.edu>\n    250-<hoffman@seas.gwu.edu>\n    250-<mkapor@eff.org>\n    250-<rotenberg@cpsr.org>\n    250-<rivest@mit.edu>\n    250-<mhellman@stanford.edu>\n    250-<alanrp@aol.com>\n    250-<dparker@sri.com>\n    250-<jim@rsa.com>\n    250-<branstad@tis.com>\n    250 <mgrsplus@csmes.ncsl.nist.gov>\n    quit\n    221 first.org closing connection\n    Connection closed.\n\nWell, isn't that interesting.  Dorothy Denning, Mitch Kapor, Marc\nRotenberg, Ron Rivest, Jim Bidzos, and others.  The Government, RSA,\nTIS, CPSR, and the EFF are all represented.  I don't suppose anybody\nwithin any of these organizations would care to comment?  Or is this\njust the White House's idea of a cruel joke on these peoples' inboxes?\n\n\t\tMarc\n--\nMarc Horowitz N1NZU <marc@mit.edu>\t\t\t\t617-253-7788\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7652, "properties": {"category": "comp.sys.mac.hardware", "text": "From: C604223@mizzou1.missouri.edu (Cho Chuen Wong)\nSubject: Performa Plus monitor\nNntp-Posting-Host: mizzou1.missouri.edu\nOrganization: University of Missouri\nLines: 3\n\nI would like to know if a Performa Plus monitor is compatible with Apple 14in\nColor Display, or it is just a VGA moniro.  Any help will be appreciate.\n \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7653, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: Ban All Firearms !\nOrganization: Hand Held Products, Inc.\nLines: 34\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <1993Apr14.183025.29688@sco.com> allanh@sco.COM (Allan J. Heim)  \nwrites:\n> \n> papresco@undergrad.math.uwaterloo.ca (Paul Prescod):\n> \n>    >Drugs are banned, please tell me when this supply will dry up?\n> \n>    Drugs are easier to manufacture, easier to smuggle, easier to hide.\n>    No comparison.\n> \n> Then let's use another example--alcoholic beverages.  Bottles of whiskey\n> are larger, heavier, and more fragile than bags of drugs.  Barrels and\n> kegs are larger and heavier still, and are difficult to manipulate.\n> Yet, a lot of people managed to get very rich off of the smuggling of\n> booze into this country during the years of Prohibition.  There was a\n> demand, so an entire industry formed to supply it.\n\nI beleive this was the source of the Kennedy clan's money.\n> \n> So unless there's something I'm missing, I think your argument that guns\n> won't be smuggled because theyr'e more difficult to manufacture, smuggle\n> and hide won't wash.  If enough people want something, somebody will try\n> to supply it.\n> -- \n> Allan J. Heim   allanh@sco.COM   ...!uunet!sco!allanh   +1 408 427 7813\nJim\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7654, "properties": {"category": "comp.graphics", "text": "From: ricky@watson.ibm.com (Rick Turner)\nSubject: Re: images of earth\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: danebury.hursley.ibm.com\nOrganization: IBM UK Labs\nLines: 6\n\nLook in the /pub/SPACE directory on ames.arc.nasa.gov - there are a number\nof earth images there. You may have to hunt around the subdirectories as\nthings tend to be filed under the mission (ie, \"APOLLO\") rather than under\t\nthe image subject.\t\n\nRick\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7655, "properties": {"category": "rec.autos", "text": "From: wrat@unisql.UUCP (wharfie)\nSubject: Re: Too fast\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 43\n\nIn article <1qh61m$b6l@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>It's a bit hard to \"prove\" a point like this, but I can compare the\n\n\tI was hoping for something like \"The chassis exhibits X \ndegrees of flex when subjected to forces of more than Y units.\nForces of more than Y units begin to manifest at Z miles per hour.\"\n\n\tNot \"Well, gee, it wasn't designed to go fast because, uhh,\nwell, gee, it wasn't designed to go fast.  It's not a Porsche, you\nknow\".\n\n>come with better seatbelts, more supportive seats, a stronger\n>passenger compartment cage, better brakes, a stiffer suspension,\n>different tires, and a body design that takes advantage of aero\n>effects to keep the car on the ground. What *do* they come with?  \n\n\tWell, as compared to the normal Taurus, the SHO comes\nwith more supportive seats,better brakes,a stiffer suspension,\ndifferent tires, and a body design that takes advantage of aero\neffects to keep the car on the ground (or at least I think that's\nwhat all that boy-racer plastic is for).  You're kidding yourself if\nyou think any car on the road has a passenger compartment made to\nwithstand 130 MPH impacts.  \n\n>Compare either to the Porsche 911 and you tell me which was designed\n\n\tOh, right.  Only 120,000 dollar cars should be driven fast.\nThey drive goddamn Rabbits at 120 MPH in Europe, pal, and I reckon\na Taurus is at least as capable as a Rabbit.\n\n>certainly haven't convinced me.\n\n\tOf course not.  \"Speeding-is-bad.  Speeding-is-illegal. \nI-will-not-speed.  I-love-Big-Brother.\"  You had your mind made up\nalready.\n\n\tIt's interesting that lots of the roads out west had *NO*\nspeed limits until 1975.  \n\n\t\t\t\t\t\t\t\twr\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7656, "properties": {"category": "sci.med", "text": "From: wcsbeau@alfred.carleton.ca (OPIRG)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Carleton University, Ottawa, Canada\nLines: 43\n\nIn article <1993Apr14.122647.16364@tms390.micro.ti.com> david@tms390.micro.ti.com (David Thomas) writes:\n\n>>In article <13APR199308003715@delphi.gsfc.nasa.gov>, packer@delphi.gsfc.nasa.gov (Charles Packer) writes:\n>>>Is there such a thing as MSG (monosodium glutamate) sensitivity?\n>>>I saw in the NY Times Sunday that scientists have testified before \n>>>an FDA advisory panel that complaints about MSG sensitivity are\n>>>superstition. Anybody here have experience to the contrary? \n>>>\n>>>I'm old enough to remember that the issue has come up at least\n>>>a couple of times since the 1960s. Then it was called the\n>>>\"Chinese restaurant syndrome\" because Chinese cuisine has\n>>>always used it.\n>\n>So far, I've seen about a dozen posts of anecdotal evidence, but\n>no facts.  I suspect there is a strong psychological effect at \n>work here.  Does anyone have results from a scientific study\n>using double-blind trials?  \n\nCheck out #27903, just some 20 posts before your own. Maybe you missed\nit amidst the flurry of responses? Yet again, the use of this\nnewsgroup is hampered by people not restricting their posts to matters\nthey have substantial knowledge of.\n\nFor cites on MSG, look up almost anything by John W. Olney, a\ntoxicologist who has studied the effects of MSG on the brain and on\ndevelopment.  It is undisputed in the literature that MSG is an\nexcitotoxic food additive, and that its major constituent, glutamate\nis essentially the premierie neurotransmitter in the mammalian brain\n(humans included).  Too much in the diet, and the system gets thrown\noff.  Glutamate and aspartate, also an excitotoxin are necessary in\nsmall amounts, and are freely available in many foods, but the amounts\nadded by industry are far above the amounts that would normally be\nencountered in a ny single food.  By eating lots of junk food,\npackaged soups, and diet soft drinks, it is possible to jack your\nblood levels so high, that anyone with a sensitivity to these\ncompounds will suffer numerous *real* physi9logical effects. \nRead Olney's review paper in Prog. Brain Res, 1988, and check *his*\nsources. They are impecable. There is no dispute.\n\n                    --Dianne Murray    wcsbeau@ccs.carleton.ca\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7657, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 44\nNNTP-Posting-Host: punisher.caltech.edu\n\nbobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>>But, you don't know that capital punishment is wrong, so it isn't the same\n>>as shooting.  A better analogy would be that you continue to drive your car,\n>>realizing that sooner or later, someone is going to be killed in an automobile\n>>accident.  You *know* people get killed as a result of driving, yet you\n>>continue to do it anyway.\n>Uh uh.  You do not know that you will be the one to do the\n>killing.  I'm not sure I'd drive a car if I had sufficient evidence to\n>conclude that I would necessarily kill someone during my lifetime.\n\nYes, and everyone thinks as you do.  No one thinks that he is going to cause\nor be involved in a fatal accident, but the likelihood is surprisingly high.\nJust because you are the man on the firing squad whose gun is shooting\nblanks does not mean that you are less guilty.\n\n>I don't know about Jon, but I say *ALL* taking of human life is\n>murder.  And I say murder is wrong in all but one situation:  when\n>it is the only action that will prevent another murder, either of\n>myself or another.\n\nYou mean that killing is wrong in all but one situtation?  And, you should\nnote that that situation will never occur.  There are always other options\nthank killing.  Why don't you just say that all killing is wrong.  This\nis basically what you are saying.\n\n>I'm getting a bit tired of your probabilistic arguments.\n\nAre you attempting to be condescending?\n\n>That the system usually works pretty well is small consolation to\n>the poor innocent bastard getting the lethal injection.  Is your\n>personal value of human life based solely on a statistical approach?\n>You sound like an unswerving adherent to the needs of the many\n>outweighing the needs of the few, so fuck the few.\n\nBut, most people have found the risk to be acceptable.  You are probably\nmuch more likely to die in a plane crash, or even using an electric\nblender, than you are to be executed as an innocent.  I personally think\nthat the risk is acceptable, but in an ideal moral system, no such risk\nis acceptable.  \"Acceptable\" is the fudge factor necessary in such an\napproximation to the ideal.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7658, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: Good Grief! (was Re: Candida Albicans: what is it?)\nOrganization: University of Wisconsin Eau Claire\nLines: 29\n\n[reply to aldridge@netcom.com (Jacquelin Aldridge)]\n \n>Medicine is not a totally scientific endevour.\n \nThe acquisition of scientific knowledge is completely scientific.  The\napplication of that knowledge in individual cases may be more art than\nscience.\n \n>There are diseases that haven't been described yet and the root cause\n>of many diseases now described aren't known. (Read a book on\n>gastroenterology sometime if you want to see a lot of them.) After\n>scientific methods have run out then it's the patient's freedom of\n>choice to try any experimental method they choose. And it's well\n>recognized by many doctors that medicine doesn't have all the answers.\n \nCertainly we don't have all the answers.  The question is, what is the\nmost reliable means of acquiring further medical knowledge?  The\nscientific method has proven itself to be reliable.  The *only* reason\nalternative therapies are shunned by physicians is that their\npractitioners refuse to submit their theories to rigorous scientific\nscrutiny, insisting that \"tradition\" or anecdotal evidence are\nsufficient.  These have been shown many times in the past to be very\nunreliable ways of acquiring reliable knowledge.  Crook's ideas have\nnever been backed up by scientific evidence.  His unwillingness to do\ngood science makes the rest of us doubt the veracity of his contentions.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7659, "properties": {"category": "misc.forsale", "text": "From: chungy2@aix.rpi.edu (Yau Felix Chung)\nSubject: Technical books for sale\nNntp-Posting-Host: aix.rpi.edu\nLines: 39\n\n\nHello.  I have the following for sale.  Most of the books are\nin perfect condition.  If interested please e-mail to chungy2@rpi.edu.\n\n----------------------------------------------------------------------\n\n\nThrough The Telescope (hard cover)\t\t\t\t$14.00              \nSurface Physics (soft cover)\t\t\t\t\t$13.00\n\nThe Physics of Structurally Disordered \n\tMatter: An Introduction\t(soft cover)\t\t\t$55.00\n\nSubatomic Physics (hard cover)\t\t\t\t\t$57.00           \nA First General Relativity (hard cover)\t\t\t\t$20.00                 \nNon-Equilibrium Thermodynamics (soft cover)\t\t\t$8.00 \n\nAdvances in Atomic and Molecular Physics.  Vol 1. (hard cover)\t$30.00 \n\nAdvances in Atomic and Molecular Physics.  Vol 3. (hard cover)\t$30.00\n\nMolecular Beams (hard cover)\t\t\t\t\t$15.00\n\nMolecular Beams and Reaction Kinetics. (hard cover)\t\t$20.00 \n\nPerturbation Methods in Applied Mathematics. (hard cover)\t$40.00\n\nElementary Differential Equations and \n\tBoundary Value Problems. (hard cover)\t\t\t$27.00\n\nVector Mechanics for Engineers: Statics \n\tand Dynamics. (hard cover)\t\t\t\t$30.00\n\nFree-Electron Lasers. (hard cover)\t\t\t\t$20.00\n\nPhysical Mechanics. (hard cover)\t\t\t\t$15.00\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7660, "properties": {"category": "alt.atheism", "text": " zaphod.mps.ohio-state.edu!usc!elroy.jpl.nasa.gov!nntp-server.caltech.edu!juliet.caltech.edu!lmh\nSubject: Re: Americans and Evolution\nFrom: lmh@juliet.caltech.edu (Henling, Lawrence M.)\nDistribution: world,local\nOrganization: California Institute of Technology\nNNTP-Posting-Host: juliet.caltech.edu\nNews-Software: VAX/VMS VNEWS 1.41\nLines: 18\n\nIn article <1APR199313404295@skyblu.ccit.arizona.edu<, lippard@skyblu.ccit.arizona.edu (James J. Lippard) writes...\n<In article <31MAR199321091163@juliet.caltech.edu<, lmh@juliet.caltech.edu (Henling, Lawrence M.) writes...\n<<Atheism (Greek 'a' not + 'theos' god)  Belief that there is no god.\n<<Agnosticism (Greek 'a' not + ~ 'gnostein ?' know) Belief that it is\n<<  not possible to determine if there is a god.\n\n<No.  Agnosticism as you have here defined it is a positive belief--a\n<belief that it is not possible to determine the existence of any gods.\n<That's a belief I'm inclined to reject.  You have also defined atheism\n<here as a positive belief--that there is no god.  A fairly large number\n<of atheists on alt.atheism reject this definition, instead holding that\n<atheism is simply the absence of belief in a god.  Michael Martin, in\n<_Atheism: A Philosophical Justification_, distinguishes strong atheism\n\n My mistake. I will have to get a newer dictionary and read the \nfollow up line.\n\nlarry henling   lmh@shakes.caltech.edu\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7661, "properties": {"category": "talk.religion.misc", "text": "From: b.liddicott@ic.ac.uk\nSubject: Re: He has risen!\nOrganization: Imperial College Parapsychology Group\nLines: 8\nNNTP-Posting-Host: cs.utexas.edu\n\n\n\nJust to remark that I have heard that David Koresh has risen from \nthe dead.  I dont know if it is true or not, but this is what I have\nbeen told.  What do you guys think?\n\nBen L.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.364+0000", "event": "documents", "entityId": 7662, "properties": {"category": "comp.graphics", "text": "From: johnh@jhunix.hcf.jhu.edu (John J Humpal)\nSubject: Re: images of earth\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 14\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\n\nIn article <1993Apr20.143434.5069@cs.ruu.nl> clldomps@cs.ruu.nl (Louis van Dompselaar) writes:\n\n>So they should sue the newspaper I got it from for printing it.\n>The article didn't say anything about copyrights.\n\n\tThe newspaper itself is almost certainly copyrighted in its\nentirety.  Newspapers generally employ legal staffs which make sure\nthey get permission to use a copyrighted image or text.  Did you\ndo the same?\n-- \n-John\n\nJohn J. Humpal -- johnh@jhunix.hcf.jhu.edu -- short .sig, std. disclaimer\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7663, "properties": {"category": "rec.sport.baseball", "text": "From: gt7469a@prism.gatech.EDU (Brian R. Landmann)\nSubject: Torre: The worst manager?\nOrganization: Georgia Institute of Technology\nLines: 31\n\nJoe Torre has to be the worst manager in baseball.\n\nFor anyone who didn't see Sunday's game,\n\nWith a right hander pitching he decides to bench Lankform, a left handed\nhitter and play jordan and gilkey, both right handers.\n\nLater, in the ninth inning with the bases loaded and two outs he puts\nlankford, a 300 hitter with power in as a pinch runner and uses Luis\nAlicea, a 250 hitter with no power as a pinch hitter.  What the Hell\nis he thinking.\n\nEarlier in the game in an interview about acquiring Mark Whiten he commented\nhow fortunate the Cardinals were to get Whiten and that Whiten would be a\nregular even though this meant that Gilkey would be hurt, But torre said\nhe liked Gilkey coming off the bench.  Gilkey hit over 300 last year,\nwhat does he have to do to start, The guy would be starting on most every\nteam in the league.\n\nFurthermore, in Sundays game when lankford was thrown out at the plate, \nThe replay showed Bucky Dent the third base coach looking down the line\nand waving lankford home, \n\nI can't take this anymore\n\nbrian, a very distressed cardinal fan.\n-- \n\nBrian Landmann                                            \nGeorgia Institute of Technology                           \nInternet:gt7469a@prism.gatech.edu                       \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7664, "properties": {"category": "comp.windows.x", "text": "From: maher@kong.gsfc.nasa.gov (552)\nSubject: Wanted: critiques on multi-windowing system toolkits\nOrganization: NASA/Goddard Space Flight Center\nLines: 15\nNNTP-Posting-Host: kong.gsfc.nasa.gov\n\nAny pointers to articles, or personal opinions, critiquing user\ninterface toolkits that operate across many windowing systems (e.g., X,\nMS Windows, Macintosh) - you know, Open Interface, XVT, Aspect ...\n\nIf you reply with your opinion, please BRIEFLY state your choice and a\nshort discussion why.\n\nSteve Maher\n\nmaher@outland.gsfc.nasa.gov\n-- \n-----------------------------------------------------------------\nSteve Maher                              (301) 286-5666 (voice)\nFlight Dynamics Division                 maher@kong.gsfc.nasa.gov\nNASA/Goddard Space Flight Center \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7665, "properties": {"category": "comp.graphics", "text": "From: tp892275@vine.canberra.edu.au (C. Mierzanowski)\nSubject: Which Video Card? (Please HELP)\nOrganization: Info Sci & Eng, University of Canberra, AUSTRALIA\nLines: 13\n\n\nI've got a 386 20Hz computer which is under warranty and my Trident\n8900C video card is starting to play-up (surprise, surprise). Therefore\nI'm going to try to exchange it for a better card.\n\nThe BIG Question is:\n\nWhich video card is high quality and with an\nacceptable price tag (on student budget) ???\n\n\tThank you in advance.\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7666, "properties": {"category": "talk.politics.misc", "text": "From: kmitchel@netcom.com (Kenneth C. Mitchell)\nSubject: Re: ABOLISH SELECTIVE SERVICE\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 34\n\nDave Borden (borden@head-cfa.harvard.edu) wrote:\n: The Selective Service Registration should be abolished.  To start with, the\n: draft is immoral.  Whether you agree with that or not, we don't have one now,\n: and military experts agree that the quality of the armed forces is superior\n: with a volunteer army than with draftees.  Finally, the government has us\n: on many lists in many computers (the IRS, Social Security Admistration and\n: Motor Vehicle Registries to name a few) and it can find us if it needs to.\n: Maintaining yet another list of people is an utter waste of money and time.\n: Let's axe this whole department, and reduce the deficit a little bit.\n\nLet me say this about that, as a retired Navy officer; \n\nI agree. Cut it.  But let's not stop there. \n\nEliminate the C-17 transport. Overwight, overdue, overbudget, it was\nsupposed to carry tanks. New tanks are now too big for the airplane. \n\nScrap the Seawolf SSN-21 nuclear submarine. The breakup of the USSR has\nleft us with a number of sticky military problems, but NONE of them will\nrequire \"God's gift to submarines\". \n\nGround the B-2 stealth bomber. I'm sure it's a great airplane that will do\nEVERYTHING its designers said, but at half-a-gigabuck a copy, we can't\nafford for even ONE to crash. And airplanes DO crash. \n\nElmo Zumwalt said it best 20+ years ago; \"High/Low\". A MIX of a FEW\nextremely capable weapons systems and a LOT of CHEAPER,\nmoderate-capability systems. \n-- \n--------------------------------------------------------------------------\nKen Mitchell       | The powers not delegated to the United States by the\nkmitchel@netcom.com| Constitution, nor prohibited by it to the States, are\nCitrus Heights, CA | reserved to the States respectively, or to the People.\n-------------------------------------------------------------------------- \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7667, "properties": {"category": "comp.windows.x", "text": "From: herzog@dogwalk.Eng.Sun.COM (Brian Herzog - SunSoft Product Engineering)\nSubject: Re: Xsun not running on SPARCclassic\nOrganization: Sun\nLines: 18\nDistribution: world\nNNTP-Posting-Host: dogwalk\n\nIn article <1r3th9INNdtp@tom.rz.uni-passau.de> rank@winf.uni-passau.de (Christian Rank) writes:\n>I've installed X11R5 with patches for Solaris 2.1 on our SPARCstation LX /\n>SPARCclassic pool. On the LX, X11R5 runs fine, but on the classics,\n>after giving the command startx, Xsun prints the following messages:\n>\tWARNING: cg3_mmap: can't map dummy space!\n>\tMapping cg3c: No such device or address\n>and exits.\n>\n>Does anybody know how to fix this problem?\n\nI'm just guessing here, but I'd guess that X11R5 expects the CG3 to have\n1152x900 resolution, and the version of the CG3 in the SPARCclassic is \n1024x768.\n\n-- \n--------------------------------------------------------------------------------\nDisclaimer: I do not represent SunSoft, Inc., Sun Microsystems, Inc., etc., etc.\nBrian Herzog, SunSoft          herzog@Eng.Sun.COM             ...!sun!eng!herzog\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7668, "properties": {"category": "sci.crypt", "text": "From: ted@nmsu.edu (Ted Dunning)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Computing Research Lab\nLines: 7\nDistribution: na\nNNTP-Posting-Host: lole.nmsu.edu\nIn-reply-to: clipper@csrc.ncsl.nist.gov's message of Fri, 16 Apr 1993 15:19:06 GMT\n\n\nnobody seems to have noticed that the clipper chip *must* have been\nunder development for considerably longer than the 3 months that\nclinton has been president.  this is not something that choosing\nchoosing bush over clinton would have changed in the slightest; it has\nbeen in the works for some time.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7669, "properties": {"category": "sci.med", "text": "From: lady@uhunix.uhcc.Hawaii.Edu (Lee Lady)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nSummary: Ultimately, ideas come from exploration and informal thinking.\nOrganization: University of Hawaii (Mathematics Dept)\nExpires: Mon, 10 May 1993 10:00:00 GMT\nLines: 65\n\nIn article <C5L9ws.Jn2@unx.sas.com> sasghm@theseus.unx.sas.com \n    (Gary Merrill) writes:\n>\n>In article <1993Apr16.155919.28040@cs.rochester.edu>, fulk@cs.rochester.edu \n    (Mark Fulk) writes:\n>\n>|> Flights of fancy, and other irrational approaches, are common.  The crucial\n>|> thing is not to sit around just having fantasies; they aren't of any use\n>|> unless they make you do some experiments.  ....\n>|> \n>|> (Simple example: Warren Jelinek noticed an extremely heavy band on a DNA\n>|> electrophoresis gel of human ALU fragments.  He got very excited, .....\n>\n>But why do you characterize this as a \"flight of fancy\" or a \"fantasy\"?\n>While I am unfamiliar with the scientific context here, it appears obvious\n>that his speculation (for lack of a better or more neutral word) was\n>at least in significant part a consequence of his knowledge of and acceptance\n>of current theory coupled with his observations.  It would appear that\n>something quite rational was going on as he attempted to fit his observation\n>into that theory (or to tailor the theory to cover the observation).  ...\n\nWhether a scientific idea comes while one is staring out the window, or\ndreaming, or having a fantasy,  or watching an apple fall (Newton), or\nsitting in a bath (Archimedes) ... it is ultimately the result of a lot of\nintense scientific thinking done beforehand.  Letting one's mind roam\nfreely and giving rein to one's intuition can be a useful way of coming\nup with new ideas, but only when one has done a lot of rational analysis\nof the problem first.  \n\nScientific intuition is not something one is born with.  It is something\nthat one learns.  Maybe we don't understand completely how it is learned,\nbut training in systematic scientific thinking is certainly one of the \nkey elements in developing it.  \n\nInformal exploration is also often an important element in finding new\nscientific ideas.  One thinks, for instance, of Darwin's naturalistic\nstudies in the Galapagos islands, which led him to the ideas for the \ntheory of evolution.  \n\nThis is why I am offended by a definition of science that emphasizes\nempirical verification and does not recognize thinking and informal\nexploration as important scientific work.  I agree that mere speculation\ndoes not deserve to be called science.  I also think that mere empirical\nstudies not directed by good scientific thinking are at best a very\npoor kind of science.  \n\nIn article <1qk92lINNl55@im4u.cs.utexas.edu> turpin@cs.utexas.edu \n    (Russell Turpin) writes:\n>    ...\n>I think that Lee Lady and I are talking at cross purposes.\n>  ... Lady seems concerned with the contrast between great\n>science that makes big advances in our knowledge and mediocre\n>science that makes smaller steps.  In most of this thread, I have\n>been concerned with the difference between what is science and\n>what is not. \n\nI don't think that science should be defined in a way that some of the\nactivities that lead to really important science --- namely thinking and\ninformal exploration --- are not recognized as scientific work.  \n\n--\nIn the arguments between behaviorists and cognitivists, psychology seems \nless like a science than a collection of competing religious sects.   \n\nlady@uhunix.uhcc.hawaii.edu         lady@uhunix.bitnet\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7670, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Morality? (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 23\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>>So, you are saying that it isn't possible for an instinctive act\n>>to be moral one?\n>I like to think that many things are possible.   Explain to me\n>how instinctive acts can be moral acts, and I am happy to listen.\n\nFor example, if it were instinctive not to murder...\n\n>>That is, in order for an act to be an act of morality,\n>>the person must consider the immoral action but then disregard \n>>it?\n>Weaker than that.   There must be the possibility that the\n>organism - it's not just people we are talking about - can\n>consider alternatives.\n\nSo, only intelligent beings can be moral, even if the bahavior of other\nbeings mimics theirs?  And, how much emphasis do you place on intelligence?\nAnimals of the same species could kill each other arbitarily, but they\ndon't.  Are you trying to say that this isn't an act of morality because\nmost animals aren't intelligent enough to think like we do?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7671, "properties": {"category": "sci.space", "text": "From: freed@nss.org (Bev Freed)\nSubject: FAQs\nOrganization: The NSS BBS, Pittsburgh PA (412) 366-5208\nLines: 8\n\nI was wondering if the FAQ files could be posted quarterly rather than monthly.  Every 28-30 days, I get this bloated feeling.\n \n\n\n--  \nBev Freed - via FidoNet node 1:129/104\nUUCP: ...!pitt!nss!freed\nINTERNET: freed@nss.org\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7672, "properties": {"category": "talk.politics.mideast", "text": "From: dzk@cs.brown.edu (Danny Keren)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly...\nOrganization: Brown University Department of Computer Science\nLines: 47\n\ndgannon@techbook.techbook.com (Dan Gannon) writes:\n\nGannon, why don't you tell the readers of these newsgroups\nhow you hail Nazism on your BBS, and post long articles\nclaiming non-Whites are inferior?\n\n# THE U.S. HOLOCAUST MEMORIAL MUSEUM: A COSTLY AND DANGEROUS MISTAKE\n\nThe Museum is entirely funded by private donations, but don't\nexpect this fact to deter \"Maynard\".\n\nBTW, Gannon's ideological fathers also had a passion for constructing\nmuseums and collections, some of which served to educate the\npublic about the racial supremacy of the Aryans. One such\ncollection was that of skeletons, and there was no lack of these\naround:\n\nLetter from SS-Standartenfuehrer Sievers to SS-Obersturmbannfuehrer\nDr. Brandt, November 2 1942\n[\"Trial of the Major War Criminals\", p. 520]\n-------------------------------------------------------------------\nDear Comarade Brandt,\n\nAs you know, the Reichsfuehrer-SS has directed that\nSS-Hauptsturmfuehrer Prof. Dr. Hirt be supplied with everything\nneeded for his research work. For certain anthropological\nresearches - I already reported to the Reichsfuehrer-SS on\nthem - 150 skeletons of prisoners, or rather Jews, are\nrequired, which are to be supplied by the KL Auschwitz.\n\n\nHowever, the good Doctor needed some more items to complete his\nresearch:\n\nTestimony of Magnus Wochner, SS guard at the Natzweiler Concentration\nCamp\n[\"The Natzweiler Trial\", Edited by Anthony M. Webb, p. 89]\n--------------------------------------------------------------------\n... I recall particularly one mass execution when about 90 prisoners\n(60 men and 30 women), all Jews, were killed by gassing. This took\nplace, as far as I can remember, in spring 1944. In this case the\ncorpses were sent to Professor Hirt of the department of Anatomy in\nStrasbourg.\n\n\n-Danny Keren.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7673, "properties": {"category": "talk.politics.mideast", "text": "From: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nSubject: Re: Legality of the jewish purchase\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nOrganization: Columbia University\nLines: 96\n\nIn article <1993Apr19.214951.19180@bnr.ca> zbib@bnr.ca writes:\n>\n>(Amir Y Rosenblatt) writes\n>   > Sam Zbib Writes\n>   >>No one in his right mind would sell his freedom and dignity.\n>   >>Palestinians are no exception. Perhaps you heard about\n>   >>anti-trust in the business world.\n>   >>\n>   >>Since we are debating the legality of a commercial\n>   >>transaction, we must use the laws governing the guidelines\n>   >>and ethics of such transactions. Basic ANTI-TRUST law says\n>   >>that, while you can purchase IBM stocks for the purpose of\n>   >>investing, you can not acquire a large number of those\n>   >>shares with the intent or controlling IBM. You can do so\n>   >>only if you make your intentions CLEAR apriori . Clearly,\n>   >>the Jews who purchased properties from palastenians had some\n>   >>designs, they were not buying a dwelling or a real estate.\n>   >They were establishing a bridgehead for the European Jews.\n>   >>\n>   >>The palastenians sold their properties to the Jews in the\n>   >>old tradition of arab hospitality. Being a multi-ethnic /\n>   >>multi-religious society, accepting the jews as neighbours\n>   >>was no different, just another religion. Plus they paid fair\n>   >>market value, etc... They did not know they were victims of\n>   >>an international conspiracy. (I'm not a conspiracy theorist\n>   >>myself, but this one is hard to dismiss).\n>   >>\n>\n>>Right now, I'm just going to address this point.\n>>When the Jewish National Fund bought most of its land,\n>>It didn't buy it from the Palestinians themselves, because,\n>>for the most part, they were tenant farmers (fallahin),\n>>living on land owned by wealthy Arabs in Syria and Lebanon.\n>>The JNF offered a premium deal, so the owners took advantage of\n>>it.   It's called commerce.  The owners, however, made no \n>>provisions for those who had worked for them, basically shafting \n>>them by selling the land right out from under them.\n>>They are to blame, not the Jews.\n>>\n>>\n>\n>Amir: \n>Why would you categorize the sale of land as shafting? was\n>it because it was sold to Jews? was it fair to assume that the \n>fallahin would be mistreated by the jews? is this the norm of \n>any commerce (read shafting) between arabs and  jews? \n\nIt was shafting on the part of the Arab land owners for doing it \nwithout notifying their tenant farmers and for not being responsible \nenough to make provisions for them, but rather just leaving\nthem to their fate.\n>\n>Your claim that the Lebanese/Syrian Landlords sold Palestine\n>(if true, even partially) omits the fact that the mandate\n>treaty put Lebanon and Syria under French rule, while\n>Palestine under british.  Obiviously, any such landlord\n>would have found himself a foreigner in Palestine and would\n>be motivated to sell, regardless of the price.\n\nThe point is that the land was sold legally, often at prices\nabove its actual value.  It was legal, and good business for\nthe sellers, though it left the Palestinians who worked the land\nin a poor situation.  \n>\n>It is interesting though that you acknowledge that the\n>palestinians were shafted. Do many Israelis or Jews share\n>your opinion ?  Do you  absolve the purchaser from\n>any ethical commitments just because it wasn't written down? \n\nI don't know if others share this opinion.  It is mine,\nand I'm sure there are some who agree and some who don't\nThe way I see it, the fallahin were caught in circumstances \nbeyond their control, in that since they didn't own the land,\nthey didn't have a say. Of course, now for the sake of the \"greater \nArab unity\" the Arabs are angry that the land was sold to the Jews\n(an act that is illegal in Jordan), but when it happened, it was just \nbusiness.   \n>\n>All told, I did not see an answer in your response. The\n>question was whether the intent behind the purchase was\n>aimed at controlling the public assets (land,\n>infra-structure etc...). IMHO the Palestinians have grounds\n>to contest the legality of the purchase, say in world court.\n>\n>Sam \n>\n>       My opinions are my own and no one else's\n\nThe purpose of buying the land was to provide space and jobs for \nJewish immigrants.  In any case, no matter what the purpose, \nthe sales were legal, so I really don't see any grounds for \ncontesting them.\n\nAmir\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7674, "properties": {"category": "soc.religion.christian", "text": "From: erh0362@tesla.njit.edu\nSubject: Mormon beliefs about bastards\nOrganization: New Jersey Institute of Technology\nLines: 14\n\n\n    Could anyone enlighten me on how the Mormon church views \nchildren born out of wedlock?  In particular I'm interested to know if any \nstigma is attached to the children as opposed to the parents.  I'm especially \nkeen to learn if there is or is not any prohibition in the Mormon faith on \nbastards entering heaven or having their names entered in the big genealogical \nbook the Mormons keep in Salt Lake City.  If this is an issue on which the \n\"official\" position has changed over time, I'm interested in learning both old \nand new beliefs.  E-mail or posting is fine.  All information or pointers are \nappreciated.\n\nElliotte Rusty Harold\t\tDepartment of Mathematics\nelharo@shiva.njit.edu\t\tNew Jersey Institute of Technology\nerh0362@tesla.njit.edu\t\tNewark, NJ 07102\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7675, "properties": {"category": "rec.autos", "text": "From: jtchew@csa3.lbl.gov (Ad absurdum per aspera)\nSubject: Re: Sport Utility Vehical comparisons? Any Opinions?\nOrganization: Lawrence Berkeley Laboratory - Berkeley, CA, USA\nLines: 21\nDistribution: na\nNNTP-Posting-Host: 128.3.254.198\nNews-Software: VAX/VMS VNEWS 1.41    \n\n> I just read articals on this in Road and Track and Car and Driver\n> (Is that one mag or two? =B^), and I was wondering if people out\n> there have any opinions that differed from what these mags have to say...\n\nDepending on how you plan to use your SUV, I might recommend also\nbrowsing Trailer Boats and one or more of those Pickup, Shotgun,\nand 4WD magazines.  The car rags mostly seem to consider recently\ngraded pea gravel to be offroading and ten sacks of redwood chips\nto be a bedload.  Considering that most of these SUVs seem to be \nused mostly as robust station wagons, that's probably not a bad\napproach, but if your applications are more demanding, pick your\ninformation sources accordingly.\n\nOf the three vehicles on your short list (Explorer, 4Runner, \nPathfinder), I'd recommend the 4Runner as being closely based \non a rather robust pickup and the Explorer for being comfortably \ncarlike.  Don't know much about the Pathfinder.\n\nGood luck,\n--Joe\n\"Just another personal opinion from the People's Republic of Berkeley\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7676, "properties": {"category": "comp.graphics", "text": "From: news@magnus.acs.ohio-state.edu\nSubject: Package for Fashion Designer?\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 1\n\nThis article was probably generated by a buggy news reader.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7677, "properties": {"category": "soc.religion.christian", "text": "From: gt7122b@prism.gatech.edu (boundary)\nSubject: Re: Certainty and Arrogance\nOrganization: Georgia Institute of Technology\nLines: 54\n\nA reply to a post by kilroy@gboro.rowan.edu (aka Nancy's Sweetheart): \n\n?Human brains are infested with sin, and they can only be trusted\n?in very limited circumstances.\n\nI would beg to differ with you here.  The properly-formed conscience can\nbe trusted virtually ALL the time.  I am not so sure, though, about something\nso materialistic as the human brain.  Does that mass of tissue possess\nanything trustworthy?  Your observation would probably be valid if we were\ndiscussing the \"mind\" of an animal, but the human being is only half animal,\nas it were; and half spiritual. \n\n?At the moment he stops speaking, and people start interpreting, the\n?possibility of error appears.  Did he mean that literally or not?  We do\n?not have any record that he elaborated on the words.  Was he thinking of\n?Tran- or Con- substatiation?   He didn't say.  We interpret this passage\n?using our brains; we think and reason and draw conclusions.  But we know\n?that our brains are not perfect: our thinking often leads us wrong.  (This\n?is something that most of us have direct experience of.  8-)\n\nNow you have hit on the purpose of the Church.  It is by necessity the\ninfallible interpreter of divine revelation.  Without the Church,          \nChristianity would be nothing more than a bunch of little divisive sects.\n \n?Unless you are infallible, there are very few things you can be certain\n?of.  To the extent that doctrines rely on fallible human thinking, they\n?cannot be certain.\n\nThis argument of yours regarding the certainty of an observation or a\nconclusion is not necessarily substantiated by experience.  It reminds me\nof the theoretical physicist who said that you can never be certain of\na measurment because the sensor interferes with the field you are trying\nto measure.  Now, the experimental physicist will reply that although the\nmeasurement can never be made with absolute certainty, he is able to\ndetermine the certainty with which the measurement can be made, and this\nknowledge is often sufficient to render the measurement useful enough\nto allow evidence of the true condition of the field under observation.\nTherefore, although our minds are finite and susceptible to error, our\ncompetence in arriving at inductive insights gives confidence in our\nability to distinguish what is true from what is not true, even in areas\nnot subject to the experimental method. \n\n?Darren F Provine / kilroy@gboro.rowan.edu\n?\"If any substantial number of  [ talk.religion.misc ]  readers read some\n? Wittgenstein, 60% of the postings would disappear.  (If they *understood*\n? some Wittgenstein, 98% would disappear. :-))\" -- Michael L Siemon\n\nThis quote seems a little arrogant, don't you think?\n \n-- \nboundary\n\nno teneis que pensar que yo haya venido a traer la paz a la tierra; no he\nvenido a traer la paz, sino la guerra (Mateo 10:34, Vulgata Latina) \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7678, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: An Anecdote about Islam\nOrganization: Technical University Braunschweig, Germany\nLines: 74\n\nIn article <114140@bu.edu>\njaeger@buphy.bu.edu (Gregg Jaeger) writes:\n \n>>>>> In cases of prostitution\n>>>>>both the man and the prostitute would be punished in public, quite\n>>>>>severely.\n \n(Deletion)\n \n>\n>>No Gregg, you cannot say A is lenient and A punishes severely in public.\n>>Unless, of course, it is one of the exceptions implied by \"almost all\n>>matters\".\n>\n>That depends on the statistics and who is punished in public. If some\n>power (for example, nothing Islamic about it) allows men to rape women\n>five times before blowing the rapist's head off in public then I'd call\n>that leniency, wouldn't you?\n>\n \nYou have given that example. It is not lenient. End of argument.\n \nAnd chopping off the hands or heads of people is not lenient either. It\nrather appears that you are internalized the claims about the legal system\nwithout checking if they suit the description.\n \nAnd wasn't the argument that it takes five men to rape a woman according\nto Islamic law?\n \n \n>>While I don't approve of it, I think both the prostitute and the customer\n>>have the right to do what they do. In other words, punishing them is a\n>>violation of their rights. And to punish them severely in public is just\n>>another pointer to the hysteria connected with sexuality in so many\n>>religions.\n>\n>Believe what you like.\n>\n \nNo, I even believe what I don't like. Can you give better answers than that?\nHave you got any evidence for your probably opposite claims?\n \n \n>>In this case, I don't see why I should accept the complex ridden views\n>>of an oriental goatherd.\n>\n>Ah, yes, I forget that the West is historically so much without sexual\n>neurosis :)\n>\n>\"Oriental goatherd\", _really_ intellectual.\n>\n \nA fact, if memory serves. And most will see the connection between the\nprimitive machism in the Orient and in Islam.\n \n>>If people agree on having sex it is fine. And I would assume that a\n>>god would have a clue of what the detrimental effects of supressing it\n>>are.\n>\n>Huh? Ever heard of AIDs? (Of course you'll probably go on to say that\n>God must be evil because he allows the disease to exist, bla bla).\n>\n \nAs usually you miss the point. Aids is  neither spread only through sex\nnor necessarily spread by having sex. Futher, the point is, a very important\npoint, the urge for sex is stronger than the fear of AIDS. It is even\nstronger than the religious attempts to channel or to forbid sex. The\nconsequences of suppressing sex are worse than the consequences of Aids.\nPlease note that the idea that everybody would end up with AIDS when sex\nis not controlled is completely counterfactual.\n \n \nAnd since you have brought up the point, is your god evil or not?\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7679, "properties": {"category": "rec.autos", "text": "From: eliot@stalfos.engr.washington.edu (eliot)\nSubject: Re: AWD BMW\nOrganization: clearer than blir\nLines: 5\nNNTP-Posting-Host: 192.42.145.4\n\n\nin europe you can buy a 525iX, with computer controlled diffs rather\nthan the horrid viscous coupled ones of the outgoing 325iX.\n\neliot\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7680, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wil@shell.portal.com (Ville V Walveranta)\nSubject: Re: Winjet accelerator card\nNntp-Posting-Host: jobe\nOrganization: Portal Communications Company\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 16\n\nGv Fragante (fragante@unixg.ubc.ca) wrote:\n: Anyone familiar with this video card? What chipset does the winjet use - S3?\n: As I am in the market for a VLG video card, what is the best chipset among\n: S3, Cirrus Logic and Tseng Lab (ATI is out of the question - too expensive) ?\n\n: Thanks.\n\n\tWinJet is not a video card -- it's _printer_ accelerator manufactured\n\tby LaserMaster (Eden Prairie, MN).\n\n\t-- Willy\n--\n   *    Ville V. Walveranta      Tel./Fax....: (510) 420-0729     ****\n   **   96 Linda Ave., Apt. #5   From Finland: 990-1-510-420-0729  ***\n   ***  Oakland, CA  94611-4838  (FAXes automatically recognized)   **\n   **** USA                      Email.......: wil@shell.portal.com  *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.365+0000", "event": "documents", "entityId": 7681, "properties": {"category": "sci.space", "text": "From: kjenks@gothamcity.jsc.nasa.gov\nSubject: Re: space food sticks\nArticle-I.D.: aio.1993Apr6.134526.14966\nOrganization: NASA/JSC/GM2, Space Shuttle Program Office\nLines: 17\nX-Newsreader: TIN [version 1.1 PL8]\n\nJohn Elson (jelson@rcnext.cso.uiuc.edu) wrote:\n: Has anyone ever heard of a food product called \"Space Food Sticks?\" \n\nI remember those awful things.  They were dry and crumbly, and I\nrecall asking my third-grade teacher, Miss G'Francisco, how they\nkept the crumbs from floating around in zero-G.  She had no clue.\nI have not seen anything like them in today's space program.\n\nSome Apollo technology is best forgotten.\n\n-- Ken Jenks, NASA/JSC/GM2, Space Shuttle Program Office\n      kjenks@gothamcity.jsc.nasa.gov  (713) 483-4368\n\n                  \"HERE MEN FROM THE PLANET EARTH\n                    FIRST SET FOOT UPON THE MOON\n                           JULY 1969, A.D.\n                  WE CAME IN PEACE FOR ALL MANKIND.\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7682, "properties": {"category": "rec.sport.hockey", "text": "From: jake@rambler.Eng.Sun.COM (Jason Cockroft)\nSubject: If You Were Pat Burns ...\nOrganization: Sun Microsystems, Inc.\nLines: 57\nDistribution: world\nReply-To: jake@rambler.Eng.Sun.COM\nNNTP-Posting-Host: rambler.eng.sun.com\nKeywords: Leaf Wings\n\n\n\nWhat are the Leafs to do?  I am a Leaf supporter and\nI say the Leafs are going down in four unless there\nis nothing short of a miracle or a stroke of genenius hits\nPat Burns.\n\nIf you were Pat Burns what would you do?\n\nLiving in the Bay area, I do not get enough Leaf coverage\nto pull something out of the bag,  (I would appreciate comments\non the Leaf/Detroit 3rd line match-ups)  but here is the basic\nidea...\n\nAndreychuck and Borchevsky have no business playing against \nthe Wings.  They are too small.  The key to any Leafs success\nwill have to be Clark.  He is the only centre who can have\nany presence within 3-stick lengths of the slot.  Where the\nhell is Anderson?  Anderson can (in days past) get under peoples\nskin.  Put a little more bluntly, Anderson has to be an asshole.\nHe used to be good at it.  We need him now.  \n\nPerhaps, perhaps the Leafs can shut down Detroit's second line.\nI was dissappointed to see Shepard and Yserbeart flying last night.\nThese guys are the \"swing\" players for the Wings.  Last year they\ndid a major choke in the playoffs and were to blame for the quick\nexit of the Wings.  **THis has to happen again**.   Clark-Anderson-Gilmour\nshould be able to out hustle this line.  Anderson should do a\nnasty on Yserbeart.  Clark should bang the hell out of Sheppard.  \nScore Gilmour score!\n\nSuggestions:  Clarke-Anderson-Gilmour vs. Sheppard-Yserbeart-??\n\t      Andreychuck-Borchevsy-??  vs. Detroit checking line\n\t      Toronto's checking line  vs. Yzerman-Fedorov-Probert (pray lots)\n\n* as suggested - i would bench Andreychuck and Borchevsky to stir things up\n\t\t and through a monkey wrench into Detroits game plan.  However,\n\t\tif the Detroit coaching would be dumb enough to play their\n\t\tchecking line against these \"finesse\" players - well then\n\t\tlet them play.\n\n** Potvin can not be faulted on 5 of the goals - keep him in.\n** Van Hellamond can not be faulted for the Leafs demise either.\n** The Wings defense shut down the Leafs (especially in the slot).\n\nI hope Pat Burns realizes that his team was out-hit, out-skated, and\nout-coached on Monday night.  This was not a loss because of poor goaltending\nor officiating.  This calls for drastic measures ... or tee off is next Monday.\n\n\n-jake.\n\n\nGO LEAFS !!!\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7683, "properties": {"category": "rec.autos", "text": "From: U09579@uicvm.uic.edu\nSubject: 1989 Honda CRX for sale\nArticle-I.D.: uicvm.93096.123925U09579\nOrganization: University of Illinois at Chicago, academic Computer Center\nLines: 12\n\nMy friend, David Gordon wants to sell his 1989 Honda. Some of the details of th\ne car are as follows:\n\n             Five speed\n             A/c, AM/FM/Cassette stereo\n             ps/pb\n             Rear window defroster\n             EXCELLENT CONDITION\n\nAsking 6400.00 OBO.\n\nPlease call him at (708) 257-0518.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7684, "properties": {"category": "talk.politics.misc", "text": "From: rcollins@ns.encore.com (Roger Collins)\nSubject: Re: Limiting Govt (Was Re: Employment (was Re: Why not concentrate...)\nReply-To: rcollins@encore.com\nOrganization: Encore Computer Corporation\nNntp-Posting-Host: sysgem1.encore.com\nLines: 46\n\nIn article <1993Apr15.164605.8439@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes:\n|> In article <SLAGLE.93Apr15000157@sgi417.msd.lmsc.lockheed.com> slagle@lmsc.lockheed.com writes:\n|> >It is the government that is preventing entry to the market.  The\n|> >desire of those running established businesses to prevent or\n|> >restrict the entry of competitors is an understandable, though\n|> >generally unpleasant, human failing.  But without a means to act\n|> >on this desire, without a government with sufficient power to\n|> >restrict the options of the potential competitor, the\n|> >anti-competitive desire remains just an unpleasant wish.  The\n|> >government is the linchpin, so we seek to disengage it so we\n|> >don't get the shaft.\n|> \n|> Once again, Mark, you don't specify the means through which the government\n|> is to be prevented from becoming the tool of business interests.  As a \n|> left-wing, big government, conventional liberal, I'm just as willing as\n|> you are to vote against anti-competitive regulations that favor auto\n|> dealers.  \n|> \n|> But what I hear from libertarians is a desire to limit incumbents' terms,\n|> to weaken government by eliminating its power to enforce antitrust laws,\n|> and a desire to eliminate legislator's pay.  Each strikes me as a \n|> particularly ineffective way to insure that auto dealers and other special\n|> interests cannot influence public policy.  In fact, they seem clearly\n|> designed to accomplish the opposite.\n\nThis is similar to my saying that Clinton's timber summit does little to\nfix the health care problem.  Look at the whole picture, not just\nrandomly picked libertarian positions.  If government is not allowed to\nuse \"non-initiated force\" to achieve its goals, than no special interest\ncan influence the government to use non-initiated force on their behalf.\n\nThe means to reaching such a restricted government is another topic\nwhich I'll address briefly.  It certainly won't happen until\nlibertarianism is the dominate philosophy.  What means do we have to\nmake libertarianism the dominate philosophy?  Statists run the education\nmonopoly, so we have to be creative.  The Advocates for Self-Government\nreports 85% of their Seminar 1 participants \"embrace\" libertarianism.\nThat's the best means I've seen yet.  We should lobby for compulsory\nSeminar 1 attendance. :) [in jest!]\n\nRoger Collins\n\nIt's amazing to me that governments around the world will try every\naspect of government control before, as a final last resort after\neverything else fails, they will try individual liberty.\n\t-- Andre Marrou, Libertarian candidate for President '92\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7685, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: \"Accepting Jeesus in your heart...\"\nOrganization: Kulikauskas home\nLines: 29\n\ngsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n\n> Firstly, I am an atheist. I am not posting here as an immature flame\n> start, but rather to express an opinion to my intended audience.\n[deleted] \n> \n> We are _just_ animals.  We need sleep, food, and we reproduce.  And we\n> die.      \n\nI am glad that I am not an atheist.  It seems tragic that some people \nchoose a meaningless existence.  How terrible to go on living only \nbecause one fears death more than life.  I feel so sorry for Eric and \nyet any attempts to share my joy in life with him would be considered as \nfurther evidence of the infectious nature of Christianity.    \n\nAs a Christian I am free to be a human person.  I think, love, choose, \nand create.  I will live forever with God.\n\nChrist is not a kind of drug.  Drugs are a replacement for Christ.  \nThose who have an empty spot in the God-shaped hole in their hearts must \ndo something to ease the pain.  This is why the most effective \nsubstance-abuse recovery programs involve meeting peoples' spiritual \nneeds.\n\nThank you, Eric for your post.  It has helped me to appreciate how much \nGod has blessed me.  I hope that you will someday have a more joy-filled \nand abundant life.\n\nJayne Kulikauskas/jayne@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7686, "properties": {"category": "rec.sport.hockey", "text": "From: bdown@vis.toronto.edu (Brian Down)\nSubject: Re: Bridgman is out\nOrganization: Department of Computer Science, University of Toronto\nLines: 31\n\nslacelle@gandalf.ca (Stephane Lacelle) writes:\n\n>The Ottwawa Senators fired Mel Bridgman at 1:00 PM today.\n>Randy Sexton is gonna replace him.\n\nTrashy move from a trashy organization. After the front\noffice stated that nobody would lose their job over the\nSens. poor performance, Bridgeman is gone within 24 hours\nof the teams final game.\n\nYes...I know he screwed up letting the King's grab Loach.\n\nSexton's qualifications (aside from being cheap)??\n\n\t- he played some US college hockey,\n\t- he's pals with club president Bruce Firestone.\n\nJust the kind of experience you need when trying to build\nan expansion franchise. He'll probably be in the Hall of\nFame next year! :-)\n\nThis continues a tradition of front office gaffs:\n- Paul Anka and the arena deal\n- Denis Potvin and the GM postion\n- Mike Bossy and the scoring coach.\n\nHow do people in Ottawa feel about how the club is being run??\n\n>Stephane Lacelle\t\t\t\t\n\nBrian Down (bdown@vis.toronto.edu)\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7687, "properties": {"category": "sci.med", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: Re: Is MSG sensitivity superstition?\nNntp-Posting-Host: wind.bellcore.com\nReply-To: jchen@ctt.bellcore.com\nOrganization: Bell Communications Research\nLines: 21\n\nIn article <1993Apr15.135941.16105@lmpsbbs.comm.mot.com>, dougb@comm.mot.com (Doug Bank) writes:\n\n|> I woke up at 2 AM and puked my guts outs.\n|> I threw up for so long that (I'm not kidding) I pulled a muscle in\n|> my tongue.  Dry heaves and everything.  No one else got sick, and I'm\n|> not allergic to anything that I know of.  \n\nThe funny thing is the personaly stories about reactions to MSG vary so\ngreatly. Some said that their heart beat speeded up with flush face. Some\nclaim their heart \"skipped\" beats once in a while. Some reacted with\nheadache, some stomach ache. Some had watery eyes or running nose, some\nhad itchy skin or rashes. More serious accusations include respiration \ndifficulty and brain damage. \n\nNow here is a new one: vomiting. My guess is that MSG becomes the number one\nsuspect of any problem. In this case. it might be just food poisoning. But\nif you heard things about MSG, you may think it must be it.\n\nJason Chen\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7688, "properties": {"category": "comp.graphics", "text": "From: sloan@cis.uab.edu (Kenneth Sloan)\nSubject: Re: More gray levels out of the screen\nOrganization: CIS, University of Alabama at Birmingham\nLines: 22\n\nIn article <C51C4r.BtG@csc.ti.com> rowlands@hc.ti.com (Jon Rowlands) writes:\n>\n>A few years ago a friend and I took some 256 grey-level photos from\n>a 1 bit Mac Plus screen using this method. Displaying all 256 levels\n>synchronized to the 60Hz display took about 10 seconds.\n\nWhy didn't you create 8 grey-level images, and display them for\n1,2,4,8,16,32,64,128... time slices?\n\nThis requires the same total exposure time, and the same precision in\ntiming, but drastically reduces the image-preparation time, no?\n\n\n\n\n\n\n-- \nKenneth Sloan                   Computer and Information Sciences\nsloan@cis.uab.edu               University of Alabama at Birmingham\n(205) 934-2213                  115A Campbell Hall, UAB Station \n(205) 934-5473 FAX              Birmingham, AL 35294-1170\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7689, "properties": {"category": "rec.autos", "text": "From: nataraja@rtsg.mot.com (Kumaravel Natarajan)\nSubject: Re: water in trunk of 89 Probe??\nNntp-Posting-Host: opal12\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 39\n\njlong@emcnext2.tamu.edu (James Long) writes:\n\n>In article <1r1crn$27g@transfer.stratus.com> tszeto@sneezy.ts.stratus.com  \n>(Tommy Szeto) writes:\n>> Water gradually builds up in the trunk of my friend's 89 Ford Probe.  Every\n>> once in a while we would have to remove the spare and scoop out the water\n>> under the plywood/carpet cover on the trunk.  I would guess this usually  \n>happens\n>> after a good thunder storm.  A few Qs:\n>> \n>> 1) Is this a common problem?\n>> 2) Where are the drain holes located for the hatch?\n\n>I noticed this is my '89 probe also, when recently cleaning out the back.  I  \n>think the water is coming *up* through some rubber stoppered holes beneath the  \n>spare.  Mine looked slightly worn, and there was no water or water damage above  \n>the level of the spare area. \n\n>This has taken a low priority since I just found out (while rotating my tires)  \n>that I have a torn CV boot - ugh!!\n\nI've got an 89 GT.  It has the smoked taillight assembly.  I think this is where\nthe water is getting in.  When I first got it (had it for a month), one of the rear\ntaillights fogged up with moisture.  I took it in to the dealer and they replaced\nthe entire assembly.  It happened to the other one about 3 months later.  This time\nI happened to look in the spare tire well and noticed water standing in there.  The\ndealer was more reluctant this time to replace it.  But I convinced them to\nfix it.  (They must have had to deal with a number of other probes with the same\nproblem.)  I haven't noticed water in the taillamps (or the trunk) for the last 2.5\nyears, but just last month, the taillamp just fogged up again.  I'm going to try\nto take it back to get them to fix it again.  I'm real tempted to drill some vent\nand drain holes in the tops and bottoms of the assembly and forget about it.  This is\ngetting very annoying. (Almost every other `89 GT I've seen has had this problem.)\n\nVel\n-- \n--------------------------------------------------------------------------------\n-- Vel Natarajan  nataraja@rtsg.mot.com  Motorola Cellular, Arlington Hts IL  --\n--------------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7690, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: brentw@netcom.com (Brent C. Williams)\nSubject: Re: Colorado Jumbo 250 for Gateway 2000?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 59\n\npd@world.std.com (Peter F Davis) writes:\n\n>I've just installed a new Colorado Jumbo 250 tape backup unit from\n>Gateway, and I have a couple of complaints with it.  I don't know how\n>common or serious these problems may be.  I would appreciate some\n>feedback from others who have used this system.  (BTW, This is on a\n>4DX2-66V tower system.)\n\n\tI have a similar configuration: Colorado 250mb on 66 DX/2 tower.\n\n>The problems are:\n\n>    o\tFirstly, Gateway shipped me only 120 Mb tapes, even though the\n>\tdrive is a 250 Mb unit.  When I called to complain, they only\n>\tsaid:  \"That's all we carry,\" and \"With compression, you can\n>\tfit 250 Mb on one tape.\"  Maybe so, but then why did I pay\n>\textra for the large capacity tape drive?\n\n\tYou got suckered in the same way I did.  Silly me, believing\n\tthat the \"250\" logo on the front meant actual carrying capacity.\n\tThe people who do this sort of thing for a living call it \n\t\"marketing.\"  Lawyers who prosecute it call it \"fraud.\"\n\tPerhaps we can have a bunch of other duped buyers march on \n\ttheir corporate headquarters.\n\n>    o\tI have about 230 Mb of data on my C: drive.  I choose the\n>\tspace-optimizing compression scheme and started a full backup.\n>\tThe software estimated it would take about 22 minutes.  It\n>\ttook 4 1/2 hours.  Does this sound about right?\n\n\tThis is a bit long.  My system takes about 45 minutes to do \n\tthe same thing.  Usually 4.5 hours, particularly if the tape \n\tis grinding away the whole time means that your block size for \n\tthe write is too small.  Is there any way to change the block \n\tsize or write buffer size so it's bigger?\n\n>    o\tDuring the backup, about a dozen files came up with \"access\n>\tdenied\" errors.  Most of these were in C:\\WINDOWS\\SYSTEM\n>\t(COMM.DRV, KEYBOARD.DRV, SHELL.DLL, etc.), but also\n>\tC:\\WINDOWS\\PROGMAN.EXE and a couple of files in the C:\\TAPE\n>\tdirectory.  Anyone else had this happen?\n\n\tThis is because the files are opened by DOS.  The files in the \n\tTAPE directory are likely the executable file or the configuration\n\tfile for the tape system.  I would recommend running the backup\n\tfrom DOS so it will make a complete backup of the TAPE directory.\n\n>Thanks for any and all feedback on this system.  I'd also appreciate\n>hearing of good sources for blank tape cartridges, preferably 250 Mb\n>size.\n\n\tThe 250mb cartridges won't do you any good since the drive\n\twon't write 250mb of physical data on the tape.  \n\n>Thanks.\n>-pd\n\n-- \n-brent williams (brentw@netcom.com) san jose, california\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7691, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Re: rejoinder. Questions to Israelis\nNf-ID: #R:cdp:1483500352:cdp:1483500353:000:3689\nNf-From: cdp.UUCP!cpr    Apr 22 17:31:00 1993\nLines: 83\n\n\nFrom: Center for Policy Research <cpr>\nSubject: rejoinder. Questions to Israelis\n\n\nDear Josh\n\nI appreciate the fact that you sought to answer my questions.\n\nHaving said that, I am not totally happy with your answers.\n\n1.   You did not fully answer my question whether Israeli ID cards\nidentify the holders as Jews or Arabs. You imply that U.S.\ncitizens must identify themselves by RACE. Is that true ? Or are\njust trying to mislead the reader ? Do you know of any democratic\ncountry where people are asked to reveal their ethnical or\nreligious identity to any public official who so requests ?\n\n2.  The answer to the second question is evasive. There are all\nkinds of maps issued.  They are not equivalent to State policy.\nYou did not respond to my question.\n\n3.  Your answer to the third question (Israeli nuclear arsenal) is\ninteresting. You say that Israeli 'probably' stocks nuclear\nweapons. What evidence have you for maintaining that ?\n\n4.  My fourth question was answered by someone else who posted a\nMa'ariv article documenting such cases. I did not ask about cases\nlike Vanunu (everybody knew he was tried and imprisoned) but about\nthose about whom nobody even knows that they have been tried and\nimprisoned.\n\n5.  Thanks for clarifying the question concerning the legal status\nof the inhabitants of the occupied territories. From it I\nunderstand that there are two sets of laws in these ares, one for\nthe occupier (civil law) and one for the occupied (military law).\nThe law allows Israeli Arabs to settle in Hebron, it seems. If so,\nwhy doesn't it allow Hebron Arabs to settle in Israel ?\n\n6. Your answer to the question concerning rights to return\nconflicts with what I was told, namely that hundreds of thousands\nof non-Jews who left for some reason or other the area under\nIsrael control during the war of 1947-8, were prevented from\nreturning for the sole reason they were not Jews. Jews who also\nleft, for example to Europe, to avoid the clashes, were allowed to\nreturn. How can you justify such discrimination, if this is true ?\nIs the mere fact of a person leaving area of combat to seek refuge\nsomewhere else a reason for stripping him of his right to live in\nhis homeland ?\n\n7.  Somebody answered my 7.question regarding Y. Rabin signing an\norder for ethnical cleansing in 1948. According to that\ninformation, Y. Rabin signed the order for the expulsion of all\ninhabitants of Lydda and Ramleh, about 50,000 people.  These\nexpulsions were helped by massacres of civilians and other\natrocities which remind Bosnia. I was referred to a book by\nIsraeli journalist Benny Goodman called The Origin of the\nPalestinian Refugee Problem, published by Cambridge University\nPress. Is this book available in your library ?\n\n8.  You maintain that there are some Israeli Arabs living in\nIsraeli kibbutzim. I wonder how many and where. There is very\nlittle evidence available about that. As much as I know, many\nArabs are working *for* kibbutzim, even for many years, but are\nnot accepted as members. Could it be that kibbutzim do not want\nArabs ?\n\n9.  My question about the lack of civil marriage in Israel was\nwhether it is true that the Israeli legislator intended to\ndiscourage intermarriage. You did not address this question but\nevaded it by saying that the 'entire religious establishment wants\nto keep it what way'. I am certain that if only religious\ncommunities in the U.S. would be asked, they would gladly abolish\ncivil marriage so that people would depend upon rabbis and priests\nto officiate marriages. But Israel has always been ruled by a\nsecular majority. Your answer is not satisfactory.\n\n\nI would be glad to have some more input from you after these\ncomments.\n\nElias\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7692, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Clinton wants National ID card, aka USSR-style \"Internal Passport\"\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 21\n\nIn article <C5JIF8.I4n@boi.hp.com> slack@boi.hp.com (David Slack) writes:\n>The idea of the card is bull in and of its self, but I'm curious to know, do \n>they plan on making it a requirement to *always* have it on you, or is it \n>only going to be required to be *presented* when trying to ge medical aid?\n\nThis, at least, has already been determined: The Blue Cross medical\ncoverage for all federal employees is a good model for a future\nnational system. To get emergency medical care, anyone so insured\nmust always carry their Blue Cross card. Before entering a hospital,\nyou must notify Blue Cross, or they will refuse to pay your bills. \nIn an emergency, where you must be treated before notifying them, \nyou must inform them within 24 hours or (if you are unable to do\nso for medical reasons) the hospital must. Failing to do so within\n24 hours means they will not cover the hospitalization. In you need\nyour card to notify them (and without the card, the hospital certainly\nwouldn't know they had to.) Therefore, you are required to carry\nthe card at all times, or do without emergency medical coverage.\n\n                                                 Frank Crary\n                                                 CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7693, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ph12hucg@sbusol.rz.uni-sb.de (Carsten Grammes)\nSubject: ****  WANNA SEX !!!  ****\nOrganization: Universitaet des Saarlandes,Rechenzentrum\nLines: 27\nNNTP-Posting-Host: sbusol.rz.uni-sb.de\n\nHello,\n\nyou're not quite sure if that's a joke or not? Anyway you read the article!\n\n--> You're right!!!\n\n(1. The header (only this) IS a joke, 2. it's worth reading)\n\nPerhaps some of you know my regular 'List of IDE Harddisk specs' where I\ngive all available information about IDE Harddrives. I am strongly\ninterested in contacting the manufacturers directly. But I have no money\nfor overseas calls, so I need\n\n\tHARDDISK MANUFACTURER's  EMAIL ADDRESSES\n\nPlease help if you can!\n\nCarsten.\n\n\n*********************************************************************\nCarsten Grammes\t\t\tInternet: ph12hucg@rz.uni-sb.de\nExperimental Physics\t\tVoicenet: 49-681-302-3032\nUniversitaet Saarbruecken\tFaxnet  : 49-681-302-4316\n6600 Saarbruecken\nGermany\n*********************************************************************\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7694, "properties": {"category": "rec.sport.baseball", "text": "From: luigi@sgi.com (Randy Palermo)\nSubject: Re: My 1993 Predictions\nArticle-I.D.: odin.C52w7y.n09\nOrganization: Silicon Graphics, Inc., Mountain View, CA\nLines: 33\nNntp-Posting-Host: bullpen.csd.sgi.com\n\nIn article <1993Apr6.143616.3588@infonode.ingr.com> kenney@tribe.b17d.ingr.com writes:\n>I thought I'd post my predicted standings since I find those posted by others\n>to be interesting.  Sorry this is after Opening Day.  I certify that these\n>were completed before the first pitch. :-)\n>\n>\n>NL West - The 2 best teams in baseball are in this division.\n>1.  Atlanta Braves - Awesome starters, but offense could be a concern\n>2.  Cincinnati Reds - Would not surprise me if they won it all\n>3.  Houston Astros -Any team that signs Uribe won't contend. Closer to 4 than 2\n>4.  San Diego Padres - Plantier could be the Sheffield of 1993\n>5.  Los Angeles Dodgers - better pitching than the Giants\n>6.  San Francisco Giants - because the Rockies just stink\n>7.  Colorado Rockies - will become the Seattle Mariners of the NL.\n>\n>\n>NLCS  Montreal d. Atlanta  (Braves fans, yes I'm probably contradicting\n>                            what I said in my NL West comment.)\n>ALCS  New York d. Minnesota\n>\n>World Series  New York d. Montreal - Hating the Yankees will be\n>                                     fashionable again\n>\n>NL MVP:  Barry Bonds, or maybe McGriff\n\nI guarantee that if Bonds wins the MVP the Giants will finish higher\nthan 6th. \n\nluigi\n--\nRandy Palermo   luigi@csd.sgi.com    Fax: (415)961-6502\nSilicon Graphics Computer Systems, 2011 N. Shoreline Blvd Mt. View, CA 94039\n\"Play an accordion, go to jail. That's the LAW\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7695, "properties": {"category": "soc.religion.christian", "text": "From: hayesstw@risc1.unisa.ac.za (Steve Hayes)\nSubject: Re: When are two people married in God's eyes?\nOrganization: University of South Africa\nLines: 27\n\nIn article <Apr.16.23.15.27.1993.1836@geneva.rutgers.edu> cs89mcd@brunel.ac.uk (Michael C Davis) writes:\n\n>: I would like to get your opinions on this: when exactly does an engaged\n>: couple become \"married\" in God's eyes?  Some say that if the two have\n>: publically announced their plans to marry, have made their vows to God, and\n>: are unswervingly committed to one another (I realize this is a subjective\n>: qualifier) they are married/joined in God's sight.\n>\n>The way I read Scripture, a couple becomes married when they are *physically*\n>married, i.e. when they first have sexual intercourse.\n\nSome years ago an Anglican synod was discussing the marriage canons and \nthere was some debate on what actually constituted a marriage.\n\nThe bishop of Natal, whose wife of many years had died, and who had recently \nremarried, announced \"It MUST be consummated\" and looked like that cat that \ngot the cream.\n\nSo I suppose he at least would agree with you.\n\n============================================================\nSteve Hayes, Department of Missiology & Editorial Department\nUniv. of South Africa, P.O. Box 392, Pretoria, 0001 South Africa\nInternet: hayesstw@risc1.unisa.ac.za         Fidonet: 5:7101/20\n          steve.hayes@p5.f22.n7101.z5.fidonet.org\nFAQ: Missiology is the study of Christian mission and is part of\n     the Faculty of Theology at Unisa\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7696, "properties": {"category": "rec.motorcycles", "text": "From: Russell.P.Hughes@dartmouth.edu (RPH)\nSubject: Power Arc II Ignition, Super E Carb\nX-Posted-From: InterNews 1.0b14@dartmouth.edu\nOrganization: HOG HEAVEN\nLines: 35\n\nNow the bike is off warranty, I finally replaced the stock items on my\nSoftail Custom with the title ones. Installation was pretty easy in\nboth cases, even for a fairly non-mechanical chemist type dude like me!\n I discovered the limitations of my tool collection, but had fun buying\nand making the requisite tools!\n\nMC Ignitions Power Arc II Single Fire Ignition: easy to install, but\nread the wiring diagram carefully!  Setting the static timing was a\npiece of cake.  Once installed, I have found easier starting, smoother\nidle, and more power, plus a more satisfying (to me) bass note in the\nexhaust register...a lovely whompa-whompa-whompa idle  :-)\nThe folks at MC Ignitions were great in answering my dumb questions on\nthe phone..... a very helpful bunch of guys with a great product.\n\nS&S Super E Carb: installation easy, once I hacked down an Allen wrench\nto a small anough reach to get at the intake manifold bolts. Tunes like\na dream, just like they say!  The stock carb (non-adjustable) was so\nlean that it was gasping and spluttering for gas sometimes, and even\nbackfiring into the intake manifold. The Super E is terrific, no\nhesitation in any gear, and my plugs are a lovely tan color with no\nneed to rejet from the factory settings!\n\nI know this may not seem like much to you grizzled veteran wrenchers\nout there, but I had my bike in so many pieces this weekend I began to\nget worried. But it all went back together again, and runs like a\ndream, so I am feeling pretty happy.\n\nNow all I have to do is install my BUB pipes and try to pass the NH\nNoise Gestapo Test!\n\n\nRuss Hughes  '92 FXSTC  DoD# 6022(10E20)\n\"Love ...yeah, that's the feeling you get when you like something\nas much as your motorcycle.\"\n                                --Sonny Barger\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7697, "properties": {"category": "misc.forsale", "text": "From: mjerger@ux4.cso.uiuc.edu (militant archangel)\nSubject: hp48sx with 128k\nOrganization: University of Illinois at Urbana\nLines: 12\n\nHP 48SX calculator with 128K card.  Have manuals, boxes, pc cable, etc.  Only\n5 months old, hardly used.\n\nMake an offer.\n\nMike\n\n-- \n\n\n-------------------------------------------------------------------------------\nMike Jerger                                | Internet: mjerger@ux4.cso.uiuc.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7698, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jpaparel@cs.ulowell.edu (Joseph Paparella)\nSubject: Re: cica mirror?\nOrganization: UMass-Lowell Computer Science\nLines: 2\n\nI find that it's always (almost anyway) busy when I dial, but if I try repeatedly, usually only 5 to 15 tries, I always get connected.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7699, "properties": {"category": "misc.forsale", "text": "From: creol@netcom.com\nSubject: Intel memory board for sale\nArticle-I.D.: netcom.creolC51GrD.Ln6\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 8\n\n\n\tI have an Intel Above Board (16 bit) with 2 megs of ram\n\tthat I would like to sell ASAP. Please email me offers\n\tif interested!\n\n\tThanks\n\n\tFred\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7700, "properties": {"category": "rec.sport.hockey", "text": "From: MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF)\nSubject: Re: Too Many Europeans in NHL\nIn-Reply-To: rauser@fraser.sfu.ca's message of Tue, 6 Apr 1993 02:16:48 GMT\nOrganization: Abo Akademi University, Finland\nX-News-Reader: VMS NEWS 1.24\nLines: 53\n\nIn <rauser.734062608@sfu.ca> rauser@fraser.sfu.ca writes:\n\n> \n> \n>    Ten years ago, the number of Europeans in the NHL was roughly a quarter\n> of what it is now. Going into the 1992/93 season, the numbers of Euros on\n> NHL teams have escalated to the following stats:\n> \n> Canadians: 400\n> Americans: 100\n> Europeans: 100\n> \n>    Please note that these numbers are rounded off, and taken from the top\n> 25 players on each of the 24 teams. My source is the Vancouver Sun.\n> \n>    Here's the point: there are far too many Europeans in the NHL. I am sick\n> of watching a game between an American and a Canadian team (let's say, the\n> Red Wings and the Canucks) and seeing names like \"Bure\" \"Konstantinov\" and\n> \"Borshevshky\". Is this North America or isn't it? Toronto, Detriot, Quebec,\n> and Edmonton are particularly annoying, but the numbers of Euros on other\n> teams is getting worse as well. \n\nThat's why we have expansion - to create more jobs. NHL teams can't afford to\nimport role players from Europe, they pick the stars but will continue to build\ntheir teams around local players.\n> \n>     With the numbers of Euros in the NHL escalating, the problem is clearly\n> only getting worse.\n> \n>     I'm all for the creation of a European Hockey League, and let the Bures\n> and Selannes of the world play on their own continent.\n\nI'd *LOVE* to see a European NHL division but can't see it happen for some\ntime. There's simply not enough fan interest at the moment in several\n\"crucial\" markets like Germany, Italy and France while Sweden and Finland\nprobably can't afford to shell out $20-$30 for tickets the way\nAmerican/Canadian fans do. Call it \"the Minnesota North Stars\" effect:\nScandinavians do love hockey but we prefer to watch local, inexpensive\nhockey to the NHL. The National Hockey League should love the idea, though.\nPan-European TV channels such as Eurosport could bring in the millions the\nAmerican networks likely never will pay.\n \n>     I just don't want them on mine.\n> \n> \n>  \n>  \n> -- \n> Richard J. Rauser        \"You have no idea what you're doing.\"\n> rauser@sfu.ca            \"Oh, don't worry about that. We're professional\n> WNI                          outlaws - we do this for a living.\"\n> -----------------\n> \"Remember, no matter where you go, there you are.\" -Dr.Banzai\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.366+0000", "event": "documents", "entityId": 7701, "properties": {"category": "rec.sport.baseball", "text": "From: mtt@kepler.unh.edu (Matthew T Thompson)\nSubject: music censorship survey - please fill out\nOrganization: University of New Hampshire  -  Durham, NH\nLines: 68\nNNTP-Posting-Host: kepler.unh.edu\n\nHello, I'm doing a paper on censorship in music and I would appreciate it if you took the time to participate in this survey.  Please answer as each question asks ('why?' simply means that you have room to explain your answer, if you chose.).  The last question is for any comments, questions, or suggestions.  Thank you in advance, please E-mail to the address at the end.\n\nI)  are you [male/female]\nII) what is your age? \nIII)what is your major/occupation?\nIV) what type of music do you listen to (check all that apply)?\n      a.  hard rock   b.  metal   c.  alternative   d.  blues    e.  rap\n      f.  jazz    g.  soft rock   h.  easy listening   i.  country   \n      j.  classical   k.  hard core   l.  dance   m.  new age\n      n.  others (did I miss any?)____________\n\n1)  Do you think recordings with objectionable or offensive lyrics be labeled? [yes/no] Why?\n\n\n\n\n2)  Do you think certain recordings should be banned from minors (under 18 years of age)? [yes/no] why?\n\n\n\n\n3)  Do you think certain recordings should be banned.  Period.  [yes/no]  Why?\n\n\n\n\n4)  If yes to any of the above, who should decide:\n       a. parents\n       b. government\n       c. music industry\n       d. other________________\n\nfeel free to add any comments on this.\n\n\n\n\n\n5)  Do you think [more/less] should be done for controling record sales, or do you think the present labeling system is enough?  \n\n\n\n\n\n6)  What is your definition of censorship?  Also, feel free to add comments, suggestions, questions, or further explanations.\n\n\n\n\n\n\n\n\nPlease E-mail at: mtt@kepler.unh.edu or hit 'R' to reply.\n\nthanks.\nMatthew T. Thompson\n\n\ndisclaimer:  if any responses are used in paper, they will be anoynamous (sp?) unless the person specifies they what their name to be used.\n\n\n-- \n*************This .sig is closed for repairs********************************\n-----------------------------------------------------------------------------\n ution,|  } Matthew T. Thompson rrrrrrr!   *pound, pound, thud* \"OUCH\"$%#@\"duh?\"\nE-mail at mtt@kepler.unh.edu or shazam@unh.edu\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7702, "properties": {"category": "talk.politics.guns", "text": "From: brians@atlastele.com (Brian Sheets)\nSubject: Constitutionality of 18 U.S.C 922(o)\nOrganization: Atlas Telecom Inc.\nDisclaimer: Views expressed do not necessarily represent those of my employer.\nDistribution: usa\nLines: 28\n\nYou know, I was reading 18 U.S.C. 922 and something just did not make \nsence and I was wondering if someone could help me out.\n\nSay U.S.C. 922 :\n\n(1) Except as provided in paragraph (2), it shall be unlawful for\nany person to transfer or possess a machinegun.\n\n Well I got to looking in my law dictionary and I found that a \"person\" \nmight also be an artificial entity that is created by government \nand has no rights under the federal constitution. So, what I \ndon't understand is how a statute like 922 can be enforced on \nan individual. So someone tell me how my government can tell\nme what I can or cannot possess. Just passing a law \ndoes not make it LAW. Everyone knows that laws are constitional\nuntil it goes to court. So, has it ever gone to court, not\njust your run of the mill \"Ok I had it I am guilty, put me in jail\"\n\nHas anyone ever claimed that they had a right to possess and was told\nby the Supreme Court that they didn't have that right?\n\n\n\n-- \nBrian Sheets\t\t    _   /|  \t\"TRUCK?! What truck?\"\nSupport Engineer  \t    \\`o_O'    \t \nAtlas Telecom Inc. \t      ( ) \t   -Raiders of the Lost Ark\nbrians@atlastele.com           U\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7703, "properties": {"category": "soc.religion.christian", "text": "From: Petch@gvg47.gvg.tek.com (Chuck Petch)\nSubject: Daily Verse\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 4\n\nAbove all, love each other deeply, because love covers over a multitude of\nsins. \n\nIPeter 4:8\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7704, "properties": {"category": "alt.atheism", "text": "From: kutluk@ccl.umist.ac.uk (Kutluk Ozguven)\nSubject: Re: Jewish Settlers Demolish a Mosque in Gaza\nOrganization: Manchester Computing Centre\nLines: 41\n\nIn <C5IwxM.G0z@news.chalmers.se> d9bertil@dtek.chalmers.se (Bertil Jonell) writes:\n\n>In article <kutluk.734797558@ccl.umist.ac.uk> kutluk@ccl.umist.ac.uk (Kutluk Ozguven) writes:\n>>Atheists are not\n>>mentioned in the Quran because from a Quranic point of view, and a\n>>minute's reasoning, one can see that there is no such thing.\n\n>  But there are people who say that they are Atheists. If they aren't Atheists,\n>what are they?\n\nWhen the Quran uses the word *din* it means way of individual thinking, behaving,\ncommunal order and protocols based on a set of beliefs. This is often\ninterpreted as the much weaker term religion. \n\nThe atheists are not mentioned in the Quran along with Jews,\nMushriqin, Christians, etc. because the  latter are all din. To have a\ndin you need a set of beliefs, assumptions, etc, to forma a social\ncode. For example the Marxist have those, such as History, Conflict,\netc. That they do not put idols (sometimes they did) to represent\nthose assuptions  does not mean they are any different from the other\nMushriq, or roughly polytheists. \n\nThere cannot be social Atheism, because when there is a community,\nthat community needs common ideas or standard beliefs to coordinate \nthe society. When they inscribe assumptions, say Nation, or \"Progress is \nthe natural consequence of Human activity\" or \"parlamentarian\ndemocracy is doubtlessly the best way of government\", however \nthey individually insist they do not have gods, from the Quranic point\nof view they do. Therefore by definition, atheism does not exist. \n\"We are a atheist society\" in fact means \"we reject the din other than\nours\". \n\nAtheism can only exist when people reject all the idols/gods/dogmas/\nsuppositions/.. of the society that they part, and in that case that\nis a personal deviation of belief, and Quran tells about such\ndeviations and disbelief. But as I mentioned, from a Quranic point of\nlooking at things, there is no Atheism in the macro level. \n\nI think it took more than one minute.\n\nKutluk\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7705, "properties": {"category": "misc.forsale", "text": "From: dkfox@uxa.cso.uiuc.edu (fox darin k)\nSubject: FOR SALE:  386 Laptop/80 HD/4m RAM\nSummary: FOR SALE:  386 Laptop/80m HD/4m RAM\nKeywords: laptop 386 for sale\nOrganization: University of Illinois at Urbana\nLines: 21\n\n*FOR SALE*\n\nCompudyne 386-25SXL Laptop\n80 meg HD\n4 meg RAM\n3.5\" FD\nVGA Monochrome 64 Grey Scale\n\n+Math Coprocessor!\n\nAsking $1500, or best offer.  Must sell soon.\n\n**Do not reply to this email address**\n\nCall Johnny at 312/856-1767\nEmail:  phd_cz@gsbacd.uchicago.edu\n\n-- \n| Darin K. Fox, B.A. '89, J.D. '92    |  Are you master of your      |\n| Univ. of Ill. Graduate School of    |  domain?                     |\n| Library and Information Science     |                  - Seinfeld  |\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7706, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nArticle-I.D.: aurora.1993Apr20.141137.1\nOrganization: University of Alaska Fairbanks\nLines: 33\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <1993Apr20.101044.2291@iti.org>, aws@iti.org (Allen W. Sherzer) writes:\n> In article <1qve4kINNpas@sal-sun121.usc.edu> schaefer@sal-sun121.usc.edu (Peter Schaefer) writes:\n> \n>>|> > Announce that a reward of $1 billion would go to the first corporation \n>>|> > who successfully keeps at least 1 person alive on the moon for a year. \n> \n>>Oh gee, a billion dollars!  That'd be just about enough to cover the cost of the\n>>feasability study!  Happy, Happy, JOY! JOY!\n> \n> Depends. If you assume the existance of a working SSTO like DC, on billion\n> $$ would be enough to put about a quarter million pounds of stuff on the\n> moon. If some of that mass went to send equipment to make LOX for the\n> transfer vehicle, you could send a lot more. Either way, its a lot\n> more than needed.\n> \n> This prize isn't big enough to warrent developing a SSTO, but it is\n> enough to do it if the vehicle exists.\n> \n>   Allen\n> \n> -- \n> +---------------------------------------------------------------------------+\n> | Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n> | W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n> +----------------------57 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n\nOr have different classes of competetors.. and made the total purse $6billion\nor $7billion (depending on how many different classes there are, as in auto\nracing/motocycle racing and such)..\n\nWe shall see how things go..\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7707, "properties": {"category": "rec.sport.baseball", "text": "From: rickc@krill.corp.sgi.com (Richard Casares)\nSubject: Re: Jim Lefebvre is an idiot.\nNntp-Posting-Host: krill.corp.sgi.com\nOrganization: Silicon Graphics, Inc.\nLines: 16\n\nIn article <1993Apr5.190141.17623@bsu-ucs>, 00bjgood@leo.bsuvc.bsu.edu\nwrites:\n|> I just wanted to let everyone know that I have lost what little respect\n|> I have\n|> for Jim LeFebvre after seeing today's Cubs game. \n|> \t\t\t\t\t\tA dishard Cub fan\n\n\nIf you think that's bad, just wait until he tries Dunston in\nthe leadoff spot again.  \n\nYes, I also wonder if they can win with this manager.\nI never believed managers had that much to do with winning\nuntil I saw how much they had to do with losing....\n\n- Rick \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7708, "properties": {"category": "sci.space", "text": "From: kjenks@gothamcity.jsc.nasa.gov\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nOrganization: NASA/JSC/GM2, Space Shuttle Program Office \nX-Newsreader: TIN [version 1.1 PL8]\nLines: 17\n\nGene Wright (gene@theporch.raider.net) wrote:\n: Announce that a reward of $1 billion would go to the first corporation \n: who successfully keeps at least 1 person alive on the moon for a year. \n: Then you'd see some of the inexpensive but not popular technologies begin \n: to be developed. THere'd be a different kind of space race then!\n\nI'm an advocate of this idea for funding Space Station work, and I\nthrow around the $1 billion figure for that \"reward.\"  I suggest that\nyou increase the Lunar reward to about $3 billion.\n\nThis would encourage private industry to invest in space, which \nshould be one of NASA's primary goals.\n\n-- Ken Jenks, NASA/JSC/GM2, Space Shuttle Program Office\n      kjenks@gothamcity.jsc.nasa.gov  (713) 483-4368\n\n     \"Better.  Faster.  Cheaper.\" -- Daniel S. Goldin, NASA Administrator\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7709, "properties": {"category": "misc.forsale", "text": "From: bbates@pro-freedom.van.wa.us (Brandon Bates)\nSubject: WANTED: Video equipment (repost)\nArticle-I.D.: pro-free.1993Apr21.155915.10932\nOrganization: ProLine [pro-freedom] AppleVan (Apple UG of Vancouver, WA)\nLines: 11\n\n\n     I am looking for a working docking deck (deck that goes on back of\ncamera) for an old JVC GX-S700 Tube video camera.  Any format is\nacceptable.  Please send me a message if you even know anything about decks\nfor the GX-S700.  Also interested in any video equipment for sale,\nprofessional or consumer.  Thank you. \n\n----\nbbates@pro-freedom.van.wa.us   -==-   Pro-Freedom BBS - (206) 694-3276\n\n==============================================================\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7710, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Americans and Evolution\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 30\n\nRobert Singleton (bobs@thnext.mit.edu) wrote:\n\n: > Sure it isn't mutually exclusive, but it lends weight to (i.e. increases\n: > notional running estimates of the posterior probability of) the \n: > atheist's pitch in the partition, and thus necessarily reduces the same \n: > quantity in the theist's pitch. This is because the `divine component' \n: > falls prey to Ockham's Razor, the phenomenon being satisfactorily \n:                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n: > explained without it, and there being no independent evidence of any \n:   ^^^^^^^^^^^^^^^^^^^^\n: > such component. More detail in the next post.\n: > \n\nOccam's Razor is not a law of nature, it is way of analyzing an\nargument, even so, it interesting how often it's cited here and to\nwhat end. \nIt seems odd that religion is simultaneously condemned as being\nprimitive, simple-minded and unscientific, anti-intellectual and\nchildish, and yet again condemned as being too complex (Occam's\nrazor), the scientific explanation of things being much more\nstraightforeward and, apparently, simpler. Which is it to be - which\nis the \"non-essential\", and how do you know?\nConsidering that even scientists don't fully comprehend science due to\nits complexity and diversity. Maybe William of Occam has performed a\nlobotomy, kept the frontal lobe and thrown everything else away ...\n\nThis is all very confusing, I'm sure one of you will straighten me out\ntough.\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7711, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nOrganization: DSI/USCRPAC\nLines: 17\n\nIn article <1993Apr20.032623.3046@eff.org> kadie@eff.org (Carl M. Kadie) writes:\n\n\n>So, don't just think of replacements for clipper, also think of front\n>ends.\n\nThis only makes sense if the government prohibits alternative non-escrowed\nencryption schemes. Otherwise, why not just use the front end without\nclipper?\n\nDavid\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7712, "properties": {"category": "rec.autos", "text": "From: sorlin@magnus.acs.ohio-state.edu (Steven J Orlin)\nSubject: Re: Changing oil by self.\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 22\n\n\nIn article <1993Apr15.193712.25996@news.cs.brandeis.edu> andyh@chaos.cs.brandei\ns.edu (Andrew J. Huang) writes:\n>In article <1993Apr15.020356.28944@magnus.acs.ohio-state.edu> sorlin@magnus.ac\ns.ohio-state.edu (Steven J Orlin) writes:\n>>I take the electrodes of the Amp/Ohm/Volt meter whatever and connect one\n>>to each earlobe.  Then, symmetrically insert my fingers in each of the\n>>spark plug boots. No cheating guys!  both hands must be used!\n>\n>I have just a couple of questions about this technique.\n>\n>First, what firing order should I use?  Do I start with my pointer\n>finger or my pinky?  Left hand or right?\n\nPlace your hands flat on a table, and arrange the firing order from left to\nright.\n\n>And secondly, I have a 12cyl and there are two cylinders unaccounted\n>for.  Any suggestions?\n\nWell, you have friends don't you???\n12 cylinders might be more excitement than one person can take....\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7713, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Plus minus stat...\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nLines: 79\n\nIn <4LD32B2w165w@sms.business.uwo.ca> j3david@sms.business.uwo.ca (James David) writes:\n\n>It was Bryan Trottier, not Denis Potvin.  It was a vicious\n>'boarding' from behind...Trottier was given a major.\n\nPerhaps it was Trottier.  It happened behind the Habs goal if I recall.\nGainey simply didn't have his head up as he was picking up the puck.\n\n>But Roger, what the hell does this have to do with Gainey's skill\n>as a hockey player?  If Probert smashes Gilmour's head into the\n>boards next week, will that diminish your assessment of Gilmour's\n>skills?\n\nIf Gilmour was taken completely by surprise, as Gainey was, then yeah,\nI would have to say that Doug wasn't playing \"technically\" smart \nhockey.  In any case, to claim as Greg did, that Gainey *never* made \na technical mistake is absolutely ludicrous.\n\n>>Gainey was a plugger.  And when the press runs out of things to\n>>say about  the stars on dynasties they start to hype the\n>>pluggers.  Grant Fuhr, Essa Tikkannen, Butch Goring, Bob\n>>Nystrom, Bob Gainey, Doug Jarvis, Derek Sanderson, Wayne\n>>Cashman, Bob Baun, Bob Pulford, Ralph Backstrom, Henri Richard,\n>>Dick Duff...and so on...\n> \n>I would take Fuhr and Sanderson off of the latter.\n\nGood for you.  You'd only be displaying your ignorance of course, but to \neach his own...\n\n>I think Gainey would be honoured to know that you've included him\n\nI think Gainey should feel honoured to know that he is remembered at \nall.\n\n>on this list.  I also think you have a relatively naive view\n>about what wins a hockey game...pluggers are an integral part of\n\nCertainly pluggers are an integral part of any team.  And that is\nsimply because there are not enough solid two-way players to go \naround.  Who would you rather have as your \"checking\" centre?  Doug\nGilmour or Doug Jarvis?  For that matter I would take either Gretzky\nor Mario as my \"checking\" centres.  Do you think Gretzky could cover\nBob Gainey? \n\n>any team.  The Selke is designed to acknowledge their\n>contribution...I think that most people understand that it's not\n>the Nobel Prize...so settle down.\n\nYou're wrong again.  The Selke is awarded to the forward that does the\nbest job defensively and this may or may not be the best plugger.  If \nGilmour does the best defensive job in the league I don't see why he \nshould be out of the running simply because he also contributes offen-\nsively.\n\nSettle down?  If you think that I have likened the Selke to the Nobel\nprize then I suggest that you had best \"settle down\".  And if you are\ngoing to try to put words in my mouth, let me suggest that you \"settle \ndown\" before you bother following up on my postings. \n\n>congenially, as always,\n> \n>jd\n> \n>--\n>James David\n>david@student.business.uwo.ca\n\nYou might consider developing your own style.  After all, imitation is \nthe sincerest form of flattery and I am quite sure that flattery is not \nyour intention.\n\ncordially, as always,\n\nrm\n\n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7714, "properties": {"category": "sci.space", "text": "From: 8725157m@levels.unisa.edu.au\nSubject: Cold gas roll control thruster tanks\nOrganization: University of South Australia\nLines: 5\n\nDoes anyone know how to size cold gas roll control thruster tanks\nfor sounding rockets?\n\nThanks in advance,\nJim.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7715, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: David Browdy <U31851@uicvm.uic.edu>\nSubject: Re: cubs & expos roster questions\n <0096B0F0.C5DE05A0@Msu.oscs.montana.edu>\nLines: 1\n\nTo make room for Harkey, the Cubs sent Shawn Boskie down to AAA.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7716, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: Jet Propulsion Laboratory\nLines: 22\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr6.061329.25582@den.mmc.com>, seale@possum.den.mmc.com (Eric H Seale) writes...\n>baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n>>According the IAU Circular #5744, Comet Shoemaker-Levy 1993e, may be\n>>temporarily in orbit around Jupiter.  The comet had apparently made a\n>>close flyby of Jupiter sometime in 1992 resulting in the breakup of the\n>>comet.\n> \n>Ooooh -- who would have thought that Galileo would get the chance to\n>check out a comet TOO?!?\n\nComet Gehrels 3, which was discovered in 1977, was determined to have\nbeen in a temporary Jovian orbit from 1970 to 1973.  Comet Shoemaker-Levy 1993e\nmay remain in orbit around Jupiter long enough to allow Galileo to\nmake some closeup observations.  The orbital trajectory for Comet\nShoemaker-Levy is still being determined.\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | Being cynical never helps \n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | to correct the situation \n|_____|/  |_|/       |_____|/                     | and causes more aggravation\n                                                  | instead.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7717, "properties": {"category": "comp.graphics", "text": "From: andreasa@dhhalden.no (ANDREAS ARFF)\nSubject: Re: Newsgroup Split\nLines: 40\nNntp-Posting-Host: pc110\nOrganization: Ostfold College\n\nIn article <1quvdoINN3e7@srvr1.engin.umich.edu> tdawson@engin.umich.edu (Chris Herringshaw) writes:\n>From: tdawson@engin.umich.edu (Chris Herringshaw)\n>Subject: Newsgroup Split\n>Date: 19 Apr 1993 19:43:52 GMT\n>Concerning the proposed newsgroup split, I personally am not in favor of\n>doing this.  I learn an awful lot about all aspects of graphics by reading\n>this group, from code to hardware to algorithms.  I just think making 5\n>different groups out of this is a wate, and will only result in a few posts\n>a week per group.  I kind of like the convenience of having one big forum\n>for discussing all aspects of graphics.  Anyone else feel this way?\n>Just curious.\n>\n>\n>Daemon\n>\n\nActuallay I don't, but on the other hand I don't support the idea of having\none newsgroup for every aspect of graphics programming as proposed by Brian,\nin his reply to my original posting.\nI would suggest a looser structure more like a comp.graphics.programmer,\ncomp.graphics.hw_and_sw\nThe reason for making as few groups as possible is for the same reason you\nsay we shouldn't spilt up, not to get to few postings every day.\nI takes to much time to browse through all postings just to find two or \nthree I'm interested in.\n\nI understand and agree when you say you want all aspects of graphics in one\nmeeting. I agree to some extension. I see news as a forum to exchange ideas,\nhelp others or to be helped. I think this is difficult to achive if there\nare so many different things in one meeting.\n\nGood evening netters|-)\n\nArff\n\"Also for the not religous confessor, there is a mystery of higher values,\nwho's birth mankind - to the last - builds upon. They are indisputible. And \noften disregarded. Seldom you hear them beeing prized, as seldom as you hear \na seeing man prizeing what he sees.\" Per Lagerkvist, The Fist \n(Free translation from Swedish)\n              --Andreas Arff  andreasa@dhhalden.no--\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7718, "properties": {"category": "comp.windows.x", "text": "From: arana@labein.ES (Jose Luis Arana)\nSubject: X Graphics Accelerators\nOrganization: The Internet\nLines: 7\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nHow can I obtain public information (documentation and sources)\nabout Xservers implemented with graphics processors?\n\nI am specially interested in Xservers developed for the TMS34020\nTexas Instruments graphic processor.\n\n                     Please send answer to arana@labein.es\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.367+0000", "event": "documents", "entityId": 7719, "properties": {"category": "rec.sport.hockey", "text": "From: seth@cbnewsh.cb.att.com (peter.r.clark..jr)\nSubject: FLYERS notes 4/16\nOrganization: AT&T\nKeywords: FLYERS/Sabres summary, misc stuff\nLines: 283\n\n\nThe FLYERS blew a 3-0 lead over the Buffalo Sabres in the second period, but\nKevin Dineen's 7th career hat trick powered them to their 7th consecutive win,\n7-4 over the Sabres who have now lost 7 in a row. Alexander Mogilny led the\ncomeback scoring his 75th and 76th goals of the season which tied the game at\n3 in the 2nd period and 4 in the 3rd. Tommy Soderstrom stopped 41 of 45 shots\non goal to improve his own record to 20-17-6 as he was tested by Mogilny and\nLaFontaine all night.\n\nRoster move:\n\nAndre Faust was once again recalled from Hershey, Shawn Cronin was a healthy\nscratch.\n\nLines:\n\nEklund-Lindros-Recchi\nBeranek-Brind'Amour-Dineen\nLomakin-Butsayev-Conroy\nFaust-Acton-Brown\n\nGalley-Bowen\nYushkevich-Hawgood\nCarkner-McGill\n\nTommy Soderstrom\n\nGame Summary:\n\nSay, if anybody from Buffalo is reading this, where did you people get that\nwoman who sang the anthems? We had to turn down the volume!\n\nThe FLYERS defense started out the game showing everybody why the FLYERS have\nbeen shutting teams out lately by holding the Sabres to only 8 shots in the\nfirst period. They then showed everybody why they will be playing golf Sunday\nwhen they gave up 37 shots in the last two periods. Maybe Tommy told them that\nhe was getting bored back there...\n\nMark Recchi opened the scoring so fast that if you blinked you missed it. After\nBuffalo won the faceoff and dumped, Tommy wrapped the puck around the boards\nto Eric 1/2 way up on his left. Eric dropped it to Galley, and he sent it ahead\nto Recchi steaming out of the zone. Mark skated into the center circle, passed\nthe puck to himself through the legs of Richard Smehlik, skated around him and\nin on Fuhr. Smehlik was pulling at him all the way through the zone with his\nstick, Recchi drifted right, drifted back left, and slid the puck back to the\nright past Fuhr for a 1-0 FLYERS lead at 0:18. It was so beautiful Eric and\nGarry should turn down their assists :-).\n\nThe FLYERS kept the pressure on Fuhr for a while after that, but he was strong\nand kept the FLYERS from doing further damage. The game then became a defensive\nstruggle for a while. The Sabres got the first chance on the power play when\nTerry Carkner took a boarding minor at 10:26 for crunching Dale Hawerchuk into\nthe boards in the FLYERS zone. LaFontaine got the only scoring chance, and not\na terribly good one, as the FLYERS smothered the Sabres power play. Mogilny got\na post after it was over. The 25th consecutive penalty kill for the FLYERS.\n\nKeith Carney took a holding penalty at 13:31 for taking down Mark Recchi to\ngive the FLYERS a power play. The best penalty killing team in the league\ndidn't allow the FLYERS a shot on goal, although the FLYERS did create a\ngood scoring chance for Lindros who partially fanned on his shot. Towards\nthe end of the period the play started going end to end, but everybody kept\nmissing the net. Greg Hawgood took an interference penalty at 18:19 to give\nthe Sabres another power play, but they couldn't get anything going and the\nfans expressed their displeasure, particularly when they iced the puck. Shots\nwere 8-6 Buffalo after the FLYERS had led 6-2 at one point.\n\nMike Emrick interviewed FLYERS president Jay Snider between periods. Jay was\ndisappointed to not make the playoffs, but not discouraged. This was considered\na rebuilding year after *The Trade* and he seemed very happy with the way the\nseason went. When asked if he agonized over *The Trade* he said that it was\nRuss Farwell's trade and not his, that it only was an issue for him and Ed\nSnider as far as the money. But yes, there was some agonizing, and they'd do\nit all over again. When asked how the coaching situation would be handled for\nnext year he said that it's Russ' call, and Russ will evaluate things at the\nend of the season. He feels that they're 3 years away from a shot at the Cup.\nHe expects to get into the playoffs next year, have a shot at a division title\nthe following year, and a shot at the finals the year after that. This based\non the current level of play and anticipated improvements over the summer.\n\nHe's very happy with the re-alignment (he called it \"outstanding\"). Happy with\nthe current expansion, feels that the talent pool is big enough with the unflux\nof Europeans, but feels that they must make sure existing franchises are stable.\nSeemed to like the idea of playing in the Olympics (booo) but said that there\nwas a definite split among owners and that this certainly would only happen in\nfour years if there was a consensus.\n\nThe Sabres gave the FLYERS their second power play of the game when Brad May\ntook a tripping penalty at 0:51 of the second. The FLYERS had a little trouble\ngetting started, but eventually did. Hawgood took a pass as he was moving\nthroug the neutral zone and handed the puck to Eklund just outside the Sabres\nblue line along the right boards. Eklund carried into the zone nad passed\nacross to Dineen who tried a one timer from between the blue line and the\ntop of the left circle. He half fanned on it, and sent the puck trickling\nthrough the slot. Fuhr didn't know where it was, though, and Hawgood won the\nrace to it and flipped it into essentially an open net at 2:15.\n\nThen Mogilny on a breakaway. He slipped through two FLYERS at the blue line\nand went in on Soderstrom. He went with the backhander, but Soderstrom was\nall over it.\n\nThe FLYERS then took some bad discipline type penalties that really hurt them.\nViacheslav Butsayev took a double minor for roughing and high sticking when\nBarnaby got under his skin and drew one minor, then according to Gary Dornhoefer\ntook a dive to get the other (there was no video) at 4:22. The Sabres coudln't\nget started. Ryan McGill poked at the puck just after a Sabre carried into the\nFLYERS zone, and after a bunch of people poked at it Dineen emerged with it and\nheaded the other way. It started out a 1 on 1, but Brind'Amour hustled ahead to\nmake it a 2 on 1 and back off the defenseman. Dineen let it rip from the top\nof the right circle to make it 3-0 FLYERS at 5:40. That was all for Fuhr, John\nMuckler sent in Dominik Hasek to take over.\n\nBut the Sabres still had lots of power play time. Again they took some time to\njust get into the FLYERS zone, and when they finally did the FLYERS were all\nover them. Boos began to ring through the building. But they finally got through\nSoderstrom on an ugly goal. Smehlik took a shot from the top of the zone that\nmissed and kicked out to Hawerchuk in the slot. Hawerchuk tried a backhander as\nhe skated towards the goal line to the right as Galley dove down to block it.\nMistake #1, he should have let Soderstrom handle the backhander and worried\nabout A) the rebound or B) Barnaby who was camped behind the goal line right\nnext to the net. Well, the rebound dropped right next to Soderstrom, and\nmistake #2, Galley just laid there and watched Barnaby get THREE hacks at the\npuck before he finally pushed it through the goalie. He didn't even swing his\nstick out to try and knock the puck away. With the goal, at 7:48, two streaks\nend for the FLYERS. 150:28 of shutout hockey, and 27 straight penalty kills.\n\nLindros put them right back on the power play at 8:36 with a high sticking\nminor, I think it was Barnaby again. This time the Sabres were able to get\nset up quickly, but couldn't get too much quality on goal. The Sabres continued\nto keep the puck in the FLYERS end for a while after the power play ended.\nThings evetually settled down, but then the other very bad penalty. McGill\nallowed Barnaby to get under his skin and slashed his stick just before a\nfaceoff. The gloves were dropped, and McGill started pounding the crap out of\nhim. But during the fight, he gave Barnaby a head butt with his helmet, and\nthat meant a match penalty. 2 for slashing, 5 fighting and 5 for the major,\n7 minutes of power play time for the Sabres at 14:15, Barnaby only got 5.\n\nThe FLYERS were keeping them at bay for a while, but there was only so long\nthey could do that. After a couple of good Sabre chances, Audette handed to\nLedyard at the point, and Ledyard sent a drive that was knocked down by\nSoderstrom. LaFontaine whacked at the bouncing puck from the left side of\nthe net, and knocked it over to Randy Wood at the right. Soderstrom had\nmoved over to play LaFontaine, and since Yushkevich and Carkner were waving\nat the puck instead of picking up men, Wood just slid it into the empty net\nat 17:34 to close the FLYERS lead to 3-2. LaFontaine was actually trying to\nput it on net, but half fanned on it and got a break.\n\nThe FLYERS then got some shorthanded pressure in the Sabres zone, but Hasek\nwas strong. Finally it was Keith Carney passing ahead to Hawerchuk into the\nneutral zone, and Hawerchuk sent a good backhand pass to Mogilny at the FLYERS\nblue line. Another mini-breakaway for Mogilny, he elected to shoot from the\nleft circle, and he threaded the needle to get it just inside the far post at\n18:56 for his 75th of the season. Ironically, the youth hockey tip between\nthe 1st and second period was Tommy Soderstrom talking about cutting off\nangles...\n\nThat was all in the 2nd, shots were 19-7 Sabres.\n\nInto the 3rd period, and Pelle EKlund blew a golden opportunity to get the\nFLYERS the lead back. A 2 on 1, Acton with the puck, he dropped to Eklund in\nthe slot, and Eklund held the puck as he slid through the left circle until\nhe had almost no angle at all to shoot from. When he finally did shoot, he\nhit the far post. That was still during the carryover power play time.\n\nThan an incredible almost goal. Randy Wood skated around Recchi and Hawgood\nuntouched into Soderstrom. Soderstrom goes down, Wood pokes the puck under\nSoderstrom, and a black object hits the back of the net. Red light comes on,\nhorn sounds, crowd cheers. But up to the video replay booth, for some strange\nreason, and in the meantime Emrick and Dornhoefer try to figure out what they\ncould be reviewing. Well, it turns out that it was the taped up stick blade\nthat went into the net, not the puck. Emrick mentions that one of the criteria\nfor scoring a goal is that the puck must go into the net...\n\nDave Hannan then took out Recchi and got a holding minor at 2:35. The FLYERS\ncould not get anything going at all. They finally got set up 1/2 way through,\nbut were kept on the perimeter. As time ran out, Beranek stripped the puck\nfrom a Sabre in the offensive zone along the right boards and passed it across\nto Eklund at the top of the left circle. Eklund saw Dineen heading at the net\njust inside the right circle and passed through to him. Dineen fumbled the pass,\nbut twice directed it at Hasek, and Eklund swooped in and chipped the bouncing\npuck over the goalie for his 11th at 4:42. 4-3 FLYERS.\n\nBut the Sabres came right back. LaFontaine picked up the puck in his offensive\nleft corner and slid it to Bob Erry behind the FLYERS net. Erry started to skate\nout, but then just dropped the puck back to nobody behind the net. Mogilny flew\nin, skated around, and stuffed it through Soderstrom's 5 hole for his 76th at\n5:24 to tie the game at 4.\n\nThen Hawerchuk took a retaliatory roughing penalty at 5:55. The FLYERS set up\nin the Sabres zone, and stayed there. Off a faceoff high in the Sabres zone in\nthe middle. While Brind'Amour wrestled for the puck, Dineen snuck through the\nline and wristed a perfect shot low to Hasek's glove side at 6:44.\n\nPlay started to go back and forth until Hawgood took a roughing penalty at 8:19.\nThe FLYERS dumped the puck into the Sabres zone. Brind'Amour and Ledyard went\nafter it, and Rod got the puck. He backed away from the right boards, skated\nto the right faceoff dot, and passed between his legs to Dineen crashing\nthrough the slot all by himself. Dineen waited patiently and lifted it over\nthe blocker of Hasek for a 6-4 FLYERS lead at 8:39. 3rd hat trick of the season\nfor Dineen, 7th of his career, 2nd shorthanded goal of the game for him 35th\nof the season.\n\nThen Carney took a tripping penalty at 9:02 to kill the rest of the Sabres\npower play. Not much action on the 4 on 4, and the Sabres got most of the\nchances on the FLYERS resulting power play.\n\nPlay went end to end for quite a while after that and both goalies had to\nmake some big saves. The Sabres weren't able to pull Hasek as time was running \nout as the FLYERS wouldn't allow any consistant possession for the Sabres.\nFinally as time was running out Ken Sutton misplayed the puck in his own left\ncorner and Brind'Amour stripped it away from him. He pulled away and found\nDineen on the other side of the left circle, and Dineen found Acton at the\nright of Hasek. He slid the puck between two Sabres defenders, and Acton\nchipped it back to the far side of Hasek for his 8th of the season at 19:48\non his 35th birthday. That was all the scoring, shots were 18-13 Buffalo,\nand the ice was showered with plastic drinking mugs handed out before the\ngame.\n\nSo another strong game from Tommy Soderstrom who hadn't been tested much\nin his last couple of starts. Kevin Dineen has a career high 6 point night\n(unless he had a better night earlier in the season, but I don't think so).\nThe FLYERS longest winning streak in 3 years, 30 goals for only 11 against\nwith three shutouts. Eric Lindros is 8th in league with 33 even strength goals\ndespite missing 23 games with injury. 4 points out of 4th, clinched 5th place\nsince the Rangers lose the tie breaker.\n\nA couple misc notes:\n\nForget the Mike Keenan rumors, there will be a press conference tommorrow to\nannounce that he will be head coach of the New York Rangers next year.\n\nIn the last notes I mentioned that Garry Galley won the Barry Ashbee Award,\nbut I failed to mention that the award is for the best defenseman.\n\nThe Times of Trenton has reported that \"a preeminent specialist from Oklahoma\"\nhas looked over Tommy Soderstrom's medical record and determined that no\nfurther tests are necessary in the near future.\n\nSame paper had a blurb about Bill Dineen being asked about whether or not he\nexpected to be back next year. His response was that he wants to come back,\nhe feels he did a good job this year, but that he would cheerfully accept a\nrole scouting if Farwell didn't want him back.\n\nFLYERS team record watch:\n\nEric Lindros:\n\n41 goals, 33 assists, 74 points\n\n(rookie records)\nclub record goals:\t\t\tclub record points:\nEric Lindros\t40 1992-93\t\tDave Poulin\t76 1983-84\nBrian Propp\t34 1979-80\t\tBrian Propp\t75 1979-80\nRon Flockhart\t33 1981-82\t\tEric Lindros\t74 1992-93\nDave Poulin\t31 1983-84\t\tRon Flockhart\t72 1981-82\nBill Barber\t30 1972-73\t\tPelle Eklund\t66 1985-86\n\nMark Recchi:\n\n52 goals, 69 assists, 121 points.\n\nclub record goals:\t\t\tclub record points:\nReggie Leach\t61 1975-76\t\tMark Recchi\t121 1992-93*\nTim Kerr\t58 1985-86,86-87\tBobby Clarke\t119 1975-76\nTim Kerr\t54 1983-84,84-85\tBobby Clarke\t116 1974-75\nMark Recchi\t52 1992-93\t\tBill Barber\t112 1975-76\nRick Macliesh\t50 1972-73\t\tBobby Clarke\t104 1972-73\nBill Barber\t50 1975-76\t\tRick Macliesh\t100 1972-73\nReggie Leach\t50 1979-80\n\n*More than 80 games.\n\nFLYERS career years:\n\nPlayer\t\tPoints\tBest Prior Season\nMark Recchi\t121\t113 (90-91 Penguins)\nRod Brind'Amour\t84\t77 (91-92 FLYERS)\nGarry Galley\t62\t38 (84-85 Kings)\nBrent Fedyk\t59\t35 (90-91 Red Wings)\n\nThat's all for now...\n\npete clark jr - rsh FLYERS contact and mailing list owner\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7720, "properties": {"category": "rec.autos", "text": "From: michal+@cs.cmu.edu (Michal Prussak)\nSubject: \"Illegal\" tint windows\nNntp-Posting-Host: gs58.sp.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 38\n\nI know it's a long shot, but maybe someone went through this and will have\nsome comments to share.\n\nThe story is this: I bought a car out of state, and I'm trying to get\nthe safety inspection in Pennsylvania. The problem is that the car has \naftermarket tint on all windows except the windshield. The tint is rather\nweak, and you can clearly see the inside of the car through the tint.\n\nThe inspection garage said that they won't pass it unless I get a\nwaiver from the state police. So I went to the state police - the\nofficer told me that aftermarket tint is illegal, and I can get a\nwaiver only for a pre-84 car or for a medical reason. I asked him to\nshow me the section of the vehicle code that says it's illegal.  He\nshowed it to me and the paraghaph said that you can't have tint, if\nyou can't see the inside of the car because of the tint. When I told\nhim that you can in fact see the inside very well, he shut the book\nand said \"It's just illegal, and in fact we can have someone give you\na ticket for it right now.\" Well, won't argue with that...\n\nSince the vehicle code says it's OK as long as you can see through the\ntint, I'd like to keep it (I'll re-read the vehicle code in the\nlibrary).  I'd also like to get some sort of paper from the police\nthat says it's OK, so I can get the inspection, and so that I won't\nget in trouble for the tint later on. I also wouldn't mind registering\na complaint against that officer - he really pissed me off.\n\nSo does anyone have any experience getting that sort of a paper from\nthe police, especially in Pennsylvania? Does anyone have any experience\nregistering a complaint against an officer? I called the station \nlater on today, but they basically said there is no place where I\ncould register a complaint against an officer... And if I do decide\nto keep the tint and get a ticket anyway, how much of a chance do\nI stand to succesfully appeal the ticket in court?\n\nAny comments about it will be welcome!\n\nMichal\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7721, "properties": {"category": "talk.politics.guns", "text": "From: kratz@cs.uiuc.edu (Jason Kratz)\nSubject: Re: criminals & machineguns\nOrganization: University of Illinois at Urbana-Champaign\nDistribution: usa\nLines: 52\n\nIn <1993Apr16.202441.16032@CSD-NewsHost.Stanford.EDU> andy@SAIL.Stanford.EDU (Andy Freeman) writes:\n\n>In article <93104.175256U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>>people are getting killed by gang violence every day?  Every single day I hear\n>>about more people getting killed by gang violence and see some of the weapons\n>>that are being confiscated.\n\n>Is Kratz claiming that he can reliably visually distinguish an M-16\n>from an AR-15?  That he can see the difference between a semi-auto and\n>a full-auto UZI?  That he can see the difference between the various\n>versions (some full-auto, some semi-auto only) of the M-11/9?\n\nWell, let me see.  UZI, no.  M-11/9, no.  M-16/AR-15, maybe.  I remember there\nbeing a selector swtich on the AR-15.  If I remember correctly (please correct\nme if I'm wrong) the switch would set to an \"off\" position or an \"on\" position\nbecause the gun (AR-15) is semi-automatic.  Wouldn't the M-16 have a position\nfor semi-auto fire and full-auto fire (or maybe 3 round bursts)?  If this is\ncorrect wouldn't it be easy to distinguish each gun by this alone?  Of course\nif the AR-15 were modified to full-auto fire I wouldn't think it would be that\neasy but I'm talking about distinguishing between an unmodified AR-15 and M-16.\nHow about the other guns?  Do they also have selector switch to switch between\nsemi-auto and fully-auto fire?\n\n>If so, I'd love to hear the details, if only because they'll demonstrate\n>that Kratz is blowing smoke.\n\n>Considering that one can design a gun so that it looks just like\n>another gun, yet have very different properties, and that that's\n>quite common....\n\n>Most kids in my neighborhood were quite young when they figured out\n>that my parents car wasn't much like Richard Petty's, even though it\n>looked just like it (except for the paint job).  Things must have been\n>different with Kratz.\n\nActually it was pretty hard for the kids in my neighborhood to figure that out\nas Richard Petty lived in my neighborhood and left his stock car in the \ndriveway. ;-)\n\n>>Sure it's on TV but why does that make a difference?\n\n>No, it doesn't, but that's irrelevant.  If visual inspection of the\n>outside worked, TV would be acceptable, but since it doesn't, the fact\n>that it's just as good as seeing in person doesn't mean much.\n\nWell, what about what I said above?  If that is correct I guess TV would be\nacceptable (if you had a good enough picture and a picture of the lower \nreceiver of the AR-15/M-16).\n\n>-andy gave Kratz a chance to back down on this in private\n>--\nJason Kratz <- didn't take andy's offer to back down in private\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7722, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Easter: what's in a name? (was Re: New Testament Double Standard?\nOrganization: AI Programs, University of Georgia, Athens\nLines: 31\n\n(MODERATOR: THIS IS A REPLACEMENT FOR AN EARLIER, MORE CLUMSILY WORDED\nSUBMISSION ON THE SAME TOPIC WHICH I SUBMITTED A FEW MINUTES AGO.)\n\nI think we need to distinguish etymology from meaning.  Regardless of\nhow the word 'Easter' *originated*, the fact is that it does not *now*\nmean anything to Christians other than 'the feast day of the Resurrection\nof Jesus Christ'. \n\nThe meaning of a word is _only_ what people understand it to mean.\n\nAnd the same goes for other cultural practices.  The festival of Easter\nmay possibly have some historical association with some pagan festival,\nbut *today* there are, as far as I know, no Christians who *intend* to\nhonor any kind of \"pagan goddess\" by celebrating Easter.\n\nIt is nonsense to say \"this word (or this practice) 'really' means so-\nand-so even though nobody realizes it.\"  Words and practices don't mean\nthings, people do.  \n\n(This is basic semantics; I'm a linguist; they pay me to think about\nthings like this.)\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n\n[Further, Easter is specific to English.  In many other languages,\nthe word used is based on Passover or resurrection.  Is it OK to\ncelebrate it in countries using those languages, but not in those\nusing English?  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7723, "properties": {"category": "talk.religion.misc", "text": "From: moskowit@panix.com (Len Moskowitz)\nSubject: Re: Bhagavad-Gita 2.32\nOrganization: Panix Public Access Internet & Unix, NYC\nLines: 79\n\nKalki Dasa writes:\n\n>These topics are all discussed in the Vedas. In fact, the original\n>knowledge of all these topics comes from the Vedas. Therefore, they are\n>not \"newage\" at all. They are rather old by any standards. Nor is the\n>popularity they are currently experiencing something new. One would\n>think that the Vedas would be very popular among \"newagers,\" since all\n>the things you mention above are thoroughly described in them.\n\nIsn't that interesting?!  In the Jewish tradition you are incredibly\nwrong!  They originate in the Torah and with Jewish ancestors,\nspecifically the Patriarch Abraham (z\"l).  That knowledge was sent East\nto India and China when Abraham gave \"gifts\" (the commentators to Jewish\nscripture say this was the knowledge of the occult arts) to all the rest\nof his children when he sent them away to the East.  This assured that\nIsaac only, who remained with Abraham, would inherit his most important\nspiritual gifts, what eventually became Judaism.\n\nSo you see, other religions can have very parochial views too.  By the\nJewish view, you are very mistaken, your scripture are not scripture,\nyour gods are not gods, your practices a jumble of errors that lead\npeople to idol worship and away from God.  That doesn't stop us from\nrespecting you to the extent of not trying to convert you or proselytize\nyou and being willing to dialog in a respectful manner.  We're content\nto let you live the way you care to live as long as you leave us be.  We\nare happy to co-exist as long as you give us the same right.\n\nBut your incredible rudeness and violent nature seems to preclude that.\nToo bad.  Is this typical of your religion?\n\n>However, there is one difference between the \"newage\" practitioner and\n>the actual follower of the Vedic teachings: the typical \"newager\"\n>desires to acquire all the material powers and opulences mentioned in\n>the Vedas, without referring to their source, the Lord. He wants the\n>kingdom of God without God. He wants personal power without the\n>responsibility of acknowledging its source, without the Person from Whom\n>that power comes. In other words, he is just plain selfish. \n\nYou are a most presumptuous fellow!  How dare you presume that the\n\"typical\" New Ager doesn't acknowledge God and is selfish.  What trite,\nself-righteous, ego-ful garbage!  There are Buddhists, Christians, Jews,\nand those of many other religions here on this newsgroups for whom your\nwords are simple slander.\n\n> ...The Vedic\n>follower, on the other hand, knows that no matter what one desires, one\n>must worship God. And the Vedas give a complete description of exactly\n>who is God, so that there can be no mistake in His identification. For\n>this reason the parts of the Vedas that deal directly with the\n>Personality of Godhead are not very popular among \"newagers,\" and anyone\n>who presents the complete Vedas as they are is branded as an\n>\"evangelist\" (as if there is something wrong with that) even though he\n>is simply presenting the unadulterated Vedic teachings.\n\nOf course, from the Jewish perspective you are incredibly wrong.  We'd\nsay that there is no \"godhead\" -- just created beings who may be\nenjoying a good laugh at your expense.\n\n>A thief takes from others and says \"this is mine.\" A \"newager\" takes\n>from God and says \"this is mine.\" Such a false mystic must be careful to\n>avoid coming in contact with the real owner of the things he has stolen.\n>Consequently, he invents an explanation for these things that\n>conveniently omits the identity of their owner, the Lord. In other\n>words, he lies about where he got them.\n\nSo not only are we selfish, we are also thieves and liars!  And you\nexpect any of us to pay attention to you and your \"religion?\"  Why not\ncall us more name?   Maybe then we'll all convert in gratefullness!\n\n>However, the Lord is very merciful, and He sends His servants to remind\n>the \"newager\" of his own identity as spirit soul, the eternal servant of\n>God. Hence, although unwanted, the \"evangelist\" continues to broadcast\n>the complete truth.\n\nYou delude yourself.\n\n-- \nLen Moskowitz\nmoskowit@panix.com\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7724, "properties": {"category": "rec.sport.baseball", "text": "From: poutsmaj@mace.cc.purdue.edu (unknown)\nSubject: Re: Aguilera Causes Cardiac Arrest\nOrganization: Purdue University\nLines: 21\n\nIn article <1qi97dINNemh@phakt.usc.edu> wagner@phakt.usc.edu (Loren Wagner) writes:\n>In article <1993Apr14.123722.24506@bmw.mayo.edu> bergerson@mayo.edu writes:\n>>\n>>Maybe you would rather have Ron Davis back ????   :^)\n>>\n>\n>The truly amazing thing was how many years this bum was the closer for the\n>Twins.  You'd have thought they could find *somebody* better.\n>\n>Don Daybell\n>wagner@usc.edu\n\n\nGoing into the ninth with a 3 run lead, ...2 runs score...runners on \nfirst and second...RD throws, \"there's a drive waaaaaayyyyyyy back, \nPuckett to the wall, leaps, He CAUGHT THE BALL!!!!  WHAT A CATCH BY KIRBY!!\nTWINS WIN!\"  and RD gets the save.  His line 1 IP, 2 walks, 2 hits, and\none robbed home run...\n\npaul\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7725, "properties": {"category": "comp.graphics", "text": "From: chris@sarah.lerc.nasa.gov (Chris Johnston)\nSubject: Re: 3d-Studio V2.01 : Any differences with previous version\nOrganization: NASA Lewis Research Center, Cleveland, OH\nLines: 13\nDistribution: world\nReply-To: chris@sarah.lerc.nasa.gov (Chris Johnston)\nNNTP-Posting-Host: looney.lerc.nasa.gov\nKeywords: 3d studio 2.01\n\nAs I understand it, THe difference between 3D Studio 2.00 and 2.01 is mainly\nin the IPAS interface, along with a few small bug fixes. The IPAS code runs\na lot faster in the newest version.\n\n-- \n+---------------------------------------------------------------------------+\n| Chris Johnston                  (216) 433-5029                            |\n| Materials Engineer\t\t  (216) 433-5033                            |\n| NASA Lewis Research Center   Internet: chris@sarah.lerc.nasa.gov          |\n| 21000 Brookpark Rd MS 105-1\t\t \t\t\t\t    |\n| Cleveland, OH 4413 USA\tResistance is futile!\t\t\t    |\n+---------------------------------------------------------------------------+\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7726, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tiger@netcom.com (TIGER ZHAO)\nSubject: Re: 100 simms and 100 sipps 1MB needed\nOrganization: Tiger's Garage\nLines: 23\n\nyuri@atmos.washington.edu writes:\n>\tI need  100 simms and 100 sipps 1MB, but price should be around\n $17-20/piece.\n~~~~~~~~~~~~~\n   I assume you are talking about 1meg X 9 SIMMs, or 1Meg X 9 SIPPs with\nspeed of 70ns? I would take 10K pieces per week if you have that price.\n(FOB US port).\n\n   I am not waiting for an offer with that price, I could only dream.\n\ntiger\n\n>I am waiting for an offer.\n\n>\tYuri Yulaev\n>\t6553, 38th ave NE\n>\tSeattle WA 98115\n>\t(206) 524-2806,524-9547 (home)\n>\t(206) 685-3793 (work)\n>\t(206) 524-7218 (FAX)\n>INTERNET: yuri@atmos.washington.edu\n>UUCP:\t  uw-beaver!atmos.washington.edu!yuri\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7727, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bitzm@columbia.dsu.edu (MICHAEL BITZ)\nSubject: Re: Where to buy Pentium motherboard?\nLines: 13\nOrganization: Dakota State University\nLines: 13\n\n>Has anybody bought a Pentium motherboard? If so or you where I can\n>buy it, please send me a E-mail. Thank you in advance.\n\nPentium processors / motherboards are not available to the general public as \nof yet.  Intel has released them to companies such as Gateway and Dell \nto do testing, etc.  It'll be a while...\n\n\n------------------------------------------------------------\nMike Bitz                   Internet: bitzm@columbia.dsu.edu\nResearch and Development              bitzm@dsuvax.dsu.edu\nDakota State University       Bitnet: s93020@sdnet.bitnet\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7728, "properties": {"category": "misc.forsale", "text": "From: jiml@strauss.FtCollinsCO.NCR.COM (Jim L)\nSubject: Need Sharp 6220, T2000 parts, information\nDistribution: world\nOrganization: NCR Microelectronics Products Division (an AT&T Company)\nLines: 23\n\nI'm looking for a Sharp 6220 or TI Travelmate 2000 for parts.  Mine has\na bad RAM chip on the motherboard and I want to see what I can get for\nparts before sending it off to Sharp for repairs.  If you have one,\ndrop me a line.\n\nAlso, I'm trying to set one up for a friend who needs to read his old\n5 1/4 inch diskettes.  Anyone have the pinout of the diskette expansion\nconnector on the back of the 3.5 inch floppy box? \n\nIf you respond, please include a phone number. I can't always get through \nwith email.\n \nAs always, \n\nThanks,\n\nJim Lewczyk\n\n-- \nMailer address is buggy!  Reply to: jiml@strauss.FtCollinsCO.NCR.com\n\nJames Lewczyk                                   1-303-223-5100 x9267\nNCR-MPD Fort Collins, CO             jim.lewczyk@FtCollinsCO.NCR.COM\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7729, "properties": {"category": "rec.autos", "text": "From: smith@ctron.com (Lawrence C Smith)\nSubject: Re: WARNING.....(please read)...\nOrganization: Cabletron Systems, Inc.\nLines: 25\nDistribution: world\nReply-To: smith@ctron.com\nNNTP-Posting-Host: glinda.ctron.com\n\nIn article <C5JGC4.AJJ@dove.nist.gov>, keys@starchild.ncsl.nist.gov (Lawrence B. Keys) writes:\n>I know that this isn't the group for it, but since you brought it up,\n>does anyone have any idea why they haven't \"bombed\" the Waco cult?    \n\nPerhaps it is because witnesses who have left the compound have all\ntestified that the BATF shot first, they they did not identify themselves\nbefore tossing in concussion grenades (not that anyone inside could have\n_heard_ such identification after being near a concussion grenade) and\nthe announcement from the BATF that they have sealed the warrant under\nwhich they were operating - which was a _search_ warrant, by the way,\n_not_ an arrest warrant.  In short, perhaps because the BATF is wildly\nout of control and perhaps calmer heads have realized that bombing a\ncompound full of woman and children will not improve their position.\nThere is a real chance that Koresh will be able to prove self-defense\nin court.  That will leave - what? - four officers dead and no one to\nblame but the BATF.\n\nFollowups directed to alt.activism, where the discussion has raged nearly\nas long as the seige, and which shows every sign of not giving up nearly\nas soon.\n\nLarry Smith (smith@ctron.com)  No, I don't speak for Cabletron.  Need you ask?\n-\nLiberty is not the freedom to do whatever we want,\nit is the freedom to do whatever we are able.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7730, "properties": {"category": "misc.forsale", "text": "From: reidg@pacs.pha.pa.us ( Reid Goldsborough)\nSubject: Word processing utilities for sale\nKeywords: software\nDistribution: na\nOrganization: Philadelphia Area Computer Society\nLines: 60\n\nThese word processing utilities all include complete printed\nmanuals and registration cards. I need to get rid of some excess.\nThey're the latest versions. I've priced these programs at less\nthan half the list price and significantly less than the cheapest\nmail-order price around.\n \n* GRAMMATIK 5 FOR WINDOWS, top-rated grammar checker, helps\nyou improve your writing by correcting grammar and usage\nmistakes, now owned by WordPerfect, list $99, sale $45.\n \n* GRAMMATIK 5 FOR DOS, top-rated grammar checker, helps you\nimprove your writing by correcting grammar and usage\nmistakes, now owned by WordPerfect, list $99, sale $45.\n \n* CORRECT GRAMMAR FOR WINDOWS 2.0, top-notch grammar\nchecker, from WordStar, list $119, sale $45.\n \n* CORRECT GRAMMAR FOR DOS 4.0, top-notch grammar checker,\nfrom WordStar, list $99, sale $40.\n \n* CORRECT WRITING 1.0 FOR WINDOWS, online writing manual\nfrom WordStar with tips about correct use of punctuation,\ncapitalization, compound words, numerals, bibliographies,\nfootnotes, and more, list $59, sale $25.\n \n* RANDOM HOUSE WEBSTER'S ELECTRONIC DICTIONARY & THESAURUS\nFOR WINDOWS 1.0, unlike spell checkers provides online\ndefinitions when you're not sure of a word's meaning, also\nhas larger thesaurus than most word processors for finding\njust the right word, list $119, sale $55.\n \n* RANDOM HOUSE WEBSTER'S ELECTRONIC DICTIONARY & THESAURUS\nFOR DOS 1.2, same functionality as Windows version, list\n$119, sale $55.\n \n* WORD FINDER PLUS FOR WINDOWS 1.0, huge online thesaurus\nwith more than one million synonyms, list $59, sale $25.\n \n* RANDOM HOUSE ENCYCLOPEDIA FOR DOS 1.02, online encyclopedia\nthat you can use without needing a CD-ROM drive, easier to\nuse and less expensive than a book-based encyclopedia, takes\n5.5 MB of hard disk space, list $119, sale $55.\n \n* HEADLINER 1.5, DOS-based database of great advertising and\nother headlines, proverbs, idioms, song titles, movie titles,\nand so on, great for advertising copywriters, newspaper\neditors, and, others trying to come up with catchy phrases,\nlist $195, sale $90.\n \n* WRITER'S TOOLKIT FOR WINDOWS 2.0, amazing collection of\nseven different word processing utilities in one package,\nincludes encyclopedia, great quotations, dictionary of\nabbreviations, dictionary with definitions, thesaurus, usage\nguide, and grammar checker, list $129, sale $65.\n \nIf you're interested in any of these programs, please phone me at\n215-885-7446 (Philadelphia), and I'll save the package for you.\n-- \nReid Goldsborough\nreidg@pacs.pha.pa.us\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7731, "properties": {"category": "talk.politics.guns", "text": "From: gt6511a@prism.gatech.EDU (COCHRANE,JAMES SHAPLEIGH)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: Georgia Institute of Technology\nLines: 20\n\nHmm... am I the only person that remembers Masada?  This isn't the first time\na group has committed suicide to avoid persecution/capture... and you seem to\nmiss the point that the raid SHOULD NEVER HAVE HAPPENED IN THE FIRST PLACE!!!\nI find the FBI actions too damn reminiscent of the Warsaw Ghetto... fitting \nthat Al Gore was in Poland for events marking the 50th anniversery of that...\nRemove any references to dates and you have two raids by government troops\nwearing black uniforms, carrying automatic weapons, backed by armored vehicles,\nagainst religious minorities they claim were practicing sexually deviant \nbehavior and hoarding weapons... Too damn similar...\n\nJames\n\nps: I am not advocating the BD's, I just find the whole situation too damn \ntroubling.\n\n-- \n********************************************************************************\nJames S. Cochrane        *  When in danger, or in doubt, run in * This space \ngt6511a@prism.gatech.edu *  circles, scream and shout.          * for rent\n********************************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7732, "properties": {"category": "rec.sport.hockey", "text": "From: MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF)\nSubject: Re: WC Pool B : GB win the gold\nIn-Reply-To: golchowy@alchemy.chem.utoronto.ca's message of Mon, 5 Apr 1993 13:03:17 GMT\nOrganization: Abo Akademi University, Finland\nX-News-Reader: VMS NEWS 1.24\nLines: 30\n\nIn <1993Apr5.130317.8175@alchemy.chem.utoronto.ca> golchowy@alchemy.chem.utoronto.ca writes:\n\n> In article <1porp4$1c0@zaphod.axion.bt.co.uk> nmcglynn@axion.bt.co.uk writes:\n> >\n> >GB has now risen from nowhere to Pool A in 5 seasons. They pulled out of the\n> >World Championships in 1981, and did not re-enter until 1989 when we took part\n> >in Pool D. In 1990, we hosted Pool D and won all our game to progress to\n> >Pool C. In 1991 GB finished 5th in Pool C, and then last year we hosted\n> >Pool C, again winning all our games. Now after Pool B, GB won all 7 games\n> >and in now in Pool A. World Champions next year perhaps :-)\n> >\n> \n> Just goes to show you what using Canadians can do for a hockey team...\n> France, Italy, and now Great Britain all use a significant number of\n> Canadians on \"their\" hockey teams.\n\nYup. Then again, there are lots of foreign-born players on the Canadian\nnational soccer team so the Brits give something back to you in the end:-)\n---\nFor the record, former NY Rangers coach Ted \"Darth\" Sator recently led\nLion Milan (Jari Kurri's former team, only the nickname's changed\n[Devils->Lion]) to their second straight Italian championship. They made the\nEuropean Final Four last autumn after losing to Swedish champs Malmo in the\nsemis...and accomplished this feat using FIFTEEN Canadian-born players!! Mamma\nmia!\n\nMARCU$\n \n> Gerald\n> \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7733, "properties": {"category": "misc.forsale", "text": "From: hatton@socrates.ucsf.edu (Tom Hatton)\nSubject: Re: Microsoft DOS 6.0 Upgrade for sale\nOrganization: UCSF Computer Graphics Lab\nLines: 19\n\nadn6285@ritvax.isc.rit.edu writes:\n>In article <1pctnfINN6dp@eve.usc.edu>, yuanchie@eve.usc.edu (Yuan-Chieh Hsu) writes:\n>>\tMS DOS 6.0 Upgrade for sale\tbest offer over $45\n>>\t(opened, unregistered)\n\n>So, does anyone care to enlighten us whether DOS6.0 is worth upgrading to?\n>How good is it's compression, and can it be turned on/off at will?\n>Any other nice/nasty features?\n\nAccording to reports, if you don't have DOS yet, and don't have any\nutilities (QEMM, Stacker, PCTools, Norton, ...) then DOS6 may be worth it. \n\nFor people who have DOS5, and some sort of utility, DOS6 doesn't offer\nmuch. You'd never know it from the usual hype that marketing is able\nto create, however. :-)\n-- \nTom Hatton\nhatton@cgl.ucsf.edu\n(415)-476-8693\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7734, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nSubject: Power Supplies for Mac 512's\nSummary: I need them\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: ayr1@cunixa.cc.columbia.edu (Amir Y Rosenblatt)\nOrganization: Columbia University\nLines: 13\n\n\nI thnik i'll be able to pick up  a piar of Mac 512K's for nothing, but\ntheir power supplies are dead.  Anyone know where I can pick up a pair\nof refurbished PS's for cheap (preferably mail order).\nYes, I do have uses planned fior them.  One will be sold to a friend who\njust needs a terminal to connect via modem to his e-mail account.\nThe other will be used by me as a net client to run my downloads and/or\nprinting.\n  \nAlso, what is the latest system software usable with these suckers?\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7735, "properties": {"category": "talk.politics.misc", "text": "From: dsh@eceyv.ncsu.edu (Doug Holtsinger)\nSubject: Re: Pro-abortion feminist leader endorses trashing of free speech rights\nOrganization: NCSU\nLines: 71\n\nIn article <C5MMEp.19n@panix.com> \ngcf@panix.com (Gordon Fitch) writes:\n>dsh@eceyv.ncsu.edu (Doug Holtsinger) writes:\n\n>> 51 Arrested for Defying Judge's Order at Abortion Protest Rally\n>> The Miami Herald, April 11, 1993\n>> \n>>    Circuit Judge Robert McGregor's order prohibits anti-abortion pickets\n>>    within 36 feet of the property line of Aware Woman Center for Choice.\n>>    Even across the street, they may not display pictures of dead fetuses\n>>    or sing or chant loud enough to be heard by patients inside the clinic.\n\n> Several years ago, Justice William O. Douglas, who was\n> about as libertarian as you can get about free-speech \n> and similar issues, wrote a majority opinion in which\n> the Supreme Court turned down an appeal by a group of\n> people who had been prohibited from demonstrating in\n> front of their landlord's home.  \n\nDo you have a cite for the case?  You don't give enough\ninformation to be able to compare the two situations.\nIf the demonstrators had been blaring loud rock music \ninto the landlord's home all day and night, then I could\nsee how the opinion would be justified.  But this court\norder had prohibited abortion protesters from displaying\npictures of dead fetuses, which doesn't disrupt the privacy\nof anyone inside the clinic.  \n\n> He pointed out that\n> people have a right to be free _from_ speech, \n\nPerhaps in the privacy of their homes, but not on public\nproperty.  Did the Korean grocery store owner in New York\ncity have a right to be free from the speech of the protesters \noutside his store?  Patrons inside the store could hear the \nprotesters asking them to re-consider shopping there -- how \nis that different from the abortion protesters asking women \nto re-consider getting an abortion at a clinic?  \n\n> Harassment goes beyond\n> expression to direct attack on particular persons,\n> in this case the workers and clients at a clinic.\n> Its purpose is clearly not to convey information or\n> express an opinion, but to intimidate and do harm to\n> other others.\n\nEven if the protesters' speech could be considered\n\"harassment\" (which it is not), hate speech laws have \ngenerally been struck down by the courts.  I don't see \nhow the words ``don't kill your baby'' or ``abortion is \nmurder'' could be considered harassment.\n\n> Anti-abortionists have lost the battle for public\n> opinion, and the more psychopathic among them have\n> turned to harassment, arson, bombing and murder to\n> carry on their war.  There is no reason not to \n> restrain them to protect the ordinary civil rights\n> of everyone else.\n\nSome of the protesters were arrested for simply praying\nquietly on a public sidewalk.  Yeah, I could see how\nthat might be equivalent to \"bombing\" and \"murder\".\nUh huh.  Let us know when you get a grip on reality. \n\n\n> )*(    Gordon Fitch    )*(    gcf@panix.com    )*(\n>( 1238 Blg. Grn. Sta.,  NY NY 10274 * 718.273.5556 )\n\n\nDoug Holtsinger\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7736, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: scott@hpcvccl.cv.hp.com (Scott Linn)\nSubject: No 32-bit box on Gateway\nNntp-Posting-Host: hpcvccl.cv.hp.com\nOrganization: Hewlett-Packard Company, Corvallis, Oregon USA\nLines: 16\n\nWhile playing around with my Gateway 2000 local-bus machine last\nnight, it became apparent that Windows 3.1 didn't give the option\nfor 32-bit access for virtual memory.\n\nI am using a permanent swap file, and the disk drive is on the local\nbus interface.\n\nIs this expected, or should I be investigating further why no 32-bit\noption appears?\n\nThanks for any help.\n\n--\n\nScott Linn\nscott@hpcvccl.cv.hp.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7737, "properties": {"category": "rec.motorcycles", "text": "From: \"Jae W. Chang\" <jc7j+@andrew.cmu.edu>\nSubject: BMW R65 info wanted\nOrganization: Junior, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 14\nNNTP-Posting-Host: po2.andrew.cmu.edu\n\n\nHi, someone is selling his bmw R65 ( I think it's an '84 ) w/ 15k\nmiles for $2200. He says it's in great condition and perfect shape.\nIt's got the 2 hard saddle bags, too. \n\nIs this a good deal? Seems like an awesome deal. Is it - assuming that\neverything he says is true ?\n\nThanks,\n\nJae\n\n--------------------------\njae@cmu.edu \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7738, "properties": {"category": "talk.politics.misc", "text": "From: matt@physics16.berkeley.edu (Matt Austern)\nSubject: Re: The state of justice\nOrganization: Lawrence Berkeley Laboratory (Theoretical Physics Group)\nLines: 14\n\t<1993Apr15.170239.8211@hemlock.cray.com>\n\t<1qn73aINNmq9@senator-bedfellow.MIT.EDU>\nReply-To: matt@physics.berkeley.edu\nNNTP-Posting-Host: physics16.berkeley.edu\nIn-reply-to: jfc@athena.mit.edu's message of 16 Apr 1993 21:05:46 GMT\n\nIn article <1qn73aINNmq9@senator-bedfellow.MIT.EDU> jfc@athena.mit.edu (John F Carr) writes:\n\n> I recommend the book \"Adams _v_ Texas\", the story of a man (Adams) who\n> was sentenced to death for a crime he didn't commit.  Most of the book\n> is the story of the long appeals process, and the problems and delays\n> caused by not being able to introduce new evidence in certain courts.\n\nAnd I recommend the movie _The Thin Blue Line_, which is about the\nsame case.  Not as much legal detail, but still an excellent film.  It\nshows how very easy it is to come up with seemingly conclusive\nevidence against someone whom you think is guilty.\n--\nMatthew Austern                       Maybe we can eventually make language a\nmatt@physics.berkeley.edu             complete impediment to understanding.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.368+0000", "event": "documents", "entityId": 7739, "properties": {"category": "rec.sport.hockey", "text": "From: s4lawren@sms.business.uwo.ca (Stephen Lawrence)\nSubject: Re: Playoff predictions\nOrganization: University of Western Ontario\nNntp-Posting-Host: sms.business.uwo.ca\nLines: 50\n\nsmithw@col.hp.com (Walter Smith) writes:\n\n> OK, I'll join in the fun and give my playoff predictions: \n> \n> 1st round: \n> ----------\n> \n> PITT vs NYI:  PITT in 4.  \n> WASH vs NJD:  WASH in 6. \n> \n> BOS  vs BUF:  BOS  in 5. \n> QUE  vs MON:  MON  in 7. \n> \n> CHI  vs STL:  CHI in 4. \n> DET  vs TOR:  DET in 6. \n> \n> VAN  vs WIN:  WIN in 6. \n> CAL  vs  LA:  CAL in 5. \n> \n> 2nd round: \n> ----------\n> \n> PITT vs WASH: PITT in 4. \n> BOS  vs MON:  BOS  in 6. \n> \n> CHI  vs DET:  CHI  in 7. \n> WIN  vs CAL:  CAL  in 5. \n> \n> 3rd round: \n> ----------\n> \n> PITT vs BOS:  PITT in 5. \n> CHI  vs CAL:  CHI  in 5. \n> \n> Finals:\n> ------\n> \n> PITT vs CHI: PITT in 5. \n> \n> \n> =============================================\n> Walter\n> \n\n        Not bad, you only got 2 wrong,...\n        Cal over Chi in 5\n        and Cal over Pit in 6 (or 7) to take the SC\n\ns4lawren@sms.business.uwo.ca (Stephen Lawrence)\nWestern Business School  --  London, Ontario\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7740, "properties": {"category": "sci.crypt", "text": "From: jebright@magnus.acs.ohio-state.edu (James R Ebright)\nSubject: Re: 80-bit keyseach machine\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 47\n\nIn article <16BB71018.C445585@mizzou1.missouri.edu> C445585@mizzou1.missouri.edu (John Kelsey) writes:\n>In article <1993Apr21.001230.26384@lokkur.dexter.mi.us>\n>scs@lokkur.dexter.mi.us (Steve Simmons) writes:\n> \n>>Normally I'd be the last to argue with Steve . . . but shouldn't that\n>>read \"3.8 years for *all* solutions\".  I mean, if we can imagine the\n>>machine that does 1 trial/nanosecond, we can imagine the storage medium\n>>that could index and archive it.\n> \n>   Hmmmm.  I think, with really large keyspaces like this, you need to\n>alter the strategy discussed for DES.  Attempt decryption of several\n>blocks, and check the disctribution of the contents.  I don't think it's\n>at all feasible to keep 2**80 encryptions of a known plaintext block on\n>*any* amount of tape or CD-ROM.  And certainly not 2**128 such encrypted\n>blocks.  (Anyone know a cheap way of converting every atom in the solar\n>system into a one bit storage device?)\n[...]\n\nI don't claim to be a crypto analyist... there isn't a whole lot of good\nliterature on the subject, and the best people don't seem to publish\ntheir work :)  but I rather doubt the approach such folks use is brute\nforce (sorry to have implied that in my previous post).  The history\nof these things is folks find clever ways of limiting the search and\nbang from there.\n\nI guess my real problem with Skipjack is I can not believe NSA would\nmake publicly available a system they couldn't break if they wanted...\nit just isn't in their charter.  Remember DES came from IBM, not NSA\nand, when first published, was given a useful life of 20 years... I think\nwe are well past that point now :(\n\nRemember, based on the size of the NSA budget, they spend a lot more\non the technology of decryption than most computer companies spend on\nR&D.  I have to imagine their stuff is real interesting...\n\nA friend who once worked for them (he is dead now) said he always enjoyed\nmonitoring SAC's (Strategic Air Command) crypto traffic :)  and I rather\nsuspect that stuff is a bit more complex than Skipjack  (Or was it the\nmilitary got the stuff from the NSA just like we get Skipjack from them ;)\n[BTW, folks, NSA wasn't being given the keys.  And the Walker spy case\nshows for some of the systems, the KGB didn't need them either.]\n\n-- \n Information farming at...     For addr&phone: finger             A/~~\\A\n THE Ohio State University  jebright@magnus.acs.ohio-state.edu   ((0  0))____\n      Jim Ebright             e-mail: jre+@osu.edu                 \\  /      \\\n                          Support Privacy: Support Encryption      (--)\\      \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7741, "properties": {"category": "sci.crypt", "text": "From: redsonja@olias.linet.org (Red Sonja)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nDistribution: na\nOrganization: Long Island Pubnet - long may it rave!\nLines: 60\n\nIn article <1qmugcINNpu9@gap.caltech.edu> hal@cco.caltech.edu (Hal Finney) writes:\n>The key question is whether non-Clipper encryption will be made illegal.\n>\nIt seems pretty obvious that it will be made illegal if VERY LOUD NOISE is\nnot made about this IMMEDIATELY to Congress and the House!\n\n>It looks like the worst nightmares raised by Dorothy Denning's proposals\n>are coming true.  If the government continues on this course, I imagine\n>that we will see strong cryptography made illegal.  Encryption programs\n>for disk files and email, as well as software to allow for encrypted\n>voice communications, will be distributed only through the\n>\"underground\".  People will have to learn how to hide the fact that\n>they are protecting their privacy.\n \nI don't know what's worse - the waste of money, or the fact that (in SPITE\nof all Clinton's rhetoric to the contrary) this is a feeble attempt by\na large group of bored intelligence bureaucrats to justify their currently\nuseless jobs. Clinton said he was going to trim the fat from the government.\nThis doesn't look very dietetic to me! \n\nAs I said before in this group: drug dealing and terrorism both tend to\nbe international crimes which are not going to cease if the US starts to\nregulate encryption. The drug dealers and terrorists will simply go to\nother countries to communicate their plans, and will still carry them out\nhere and/or wherever else. This is not the solution to the problem.\n\nThey try to invent a new problem by saying we \"need\" encryption. I guess\nit's a good thing Bill Gates isn't a 4-star general or we would all \"need\"\nour own copies of MS-DOS too, right?\n\nUnd vee haff vays uff findink out iff you are usink DOCTOR DOS!!\n\n>It's shocking and frightening to see that this is actually happening here.\n\nOur health care and education systems are in the toilet and they come up\nwith THIS pearl. If this goddamned government doesn't get a clue real quick\nand start trying to repair the infrastructure of the country rather than\ninventing someone to blame, Germany and Japan are going to eat the US alive,\nand we will deserve it. It's not like there's any shortage of REAL problems\nto solve, guys! \n\nA Clipper chip is really going to help the homeless! A Clipper chip is\nreally going to help educate the children in the ghettos of our cities!\nJust think of the generation gap that can be developed when they rehire\nDoD engineer dad to work on Clipper chips that will be used to decrypt\nslightly rebellious adolescent hacker son's naughty GIF files! I can see\nthe shitcom already.\n\nIf that wasn't a forged post or a sick joke, I'm popping that Dead Kennedys\ntape into the car stereo and tearing ass to Canada. Clinton on White Horse\nis near. It's the suede/denim secret police! They have come for your uncool\nniece! Don't worry it's only a phone...shit, I knew I should have gotten\nsome of those \"consent to monitoring\" stickers they keep on Autovon phones\nwhen I had the chance. I should have known I'd need them in civilian life.\n\n-- \nredsonja@olias.linet.org     \\\\\\RS///     Self possession is 9/10 of the law.\nAlien: \"We control the laws of nature!\" | \"How come when it's human, it's an\nJoel: \"And you still dress that way?\"   | abortion, but when it's a chicken, \n(MST3K#17 - Gamera vs Guiron)           | it's an omelet?\" - George Carlin\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7742, "properties": {"category": "talk.religion.misc", "text": "From: kcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran)\nSubject: Re: Flaming Nazis\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 38\n\nIn article <1993Apr18.020655.14233@news.cs.brandeis.edu> deane@binah.cc.brandeis.edu writes:\n>Okay, I'll bite. I should probably leave this alone, but what the heck...\n>\n>In article <1993Apr14.124301.422@sun0.urz.uni-heidelberg.de>, \n>gsmith@lauren.iwr.uni-heidelberg.de (Gene W. Smith) writes:\n>>In article <TT3R2B5w165w@brewich.hou.tx.us> popec@brewich.hou.tx.us\n>>(Pope Charles) writes:\n>>\n>>>Rhoemer was the name of the guy responsible for much of the uniforms, \n>>>and props used by the early Nazis in their rallies and such.\n>>\n>>The name is Roehm, not Rhoemer.  And Hitler does claim that he came up\n>>with the Swastika business.\n>\n>But didn't he credit the actual flag design to a party member - some dentist or\n>other? I believe he gives such credit in Mein Kampf.\n>\n>>>He was killed in an early Nazi purge. He and many of his associates\n>>>were flaming homosexuals well know also for their flamboyant orgies.\n>>\n>>I have been trying to find if there is any actual evidence for this\n>>common assertion recently.  Postings to such groups as soc.history and\n>>soc.culture.german has not uncovered any net.experts who could provide\n>>any. \n>\n>Well, I'm no expert, but all of the histories of Nazi Germany assert this. They\n>make reference to several scandals that occurred long before \"the night of the\n>long knives\". The impression that I got was that homosexuality in portions of\n>the SA was common knowledge. Also, a book (by a homosexual author whose name\n>escapes me at the moment) called \"Homosexuals in History\" asserts that Roehm\n>and Heines were homosexuals, as well as others in Roehm's SA circle.\n\n[Rest deleted.  Can anybody out in a.p.h help out?]\n\nFind out about \"the night of the brown shirts\".\n--\n=kcochran@nyx.cs.du.edu | B(0-4) c- d- e++ f- g++ k(+) m r(-) s++(+) t | TSAKC=\n=My thoughts, my posts, my ideas, my responsibility, my beer, my pizza.  OK???=\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7743, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Islam And Scientific Predictions (was Re: Genocide is Caused by Atheism)\nOrganization: Technical University Braunschweig, Germany\nLines: 19\n\nIn article <1993Apr17.122329.21438@monu6.cc.monash.edu.au>\ndarice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n \n>>>\"AND IT IS HE (GOD ALMIGHTY) WHO CREATED THE NIGHT AND THE\n>>>DAY, AND THE SUN AND THE EARTH:  ALL (THE CELETIAL BODIES)\n>>>SWIM ALONG, EACH IN ITS ROUNDED COURSE.\"  (Holy Quran 21:33)\n>\n>>Hmm. This agrees with the Ptolemic system of the earth at the centre,\n>>with the planets orbitting round it. So Copernicus and Gallileo were\n>>wrong after all!\n>\n>You haven't read very carefully -- if you look again, you will see that\n>it doesn't say anything about what is circling what.\n>\n \nAnyway, they are not moving in circles.  Nor is there any evidence that\neverything goes around in a rounded course in a general sense. Wishy-\nwashy statements are not scientific.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7744, "properties": {"category": "rec.motorcycles", "text": "From: davet@interceptor.cds.tek.com (Dave Tharp CDS)\nSubject: Re: Motorcycle Security\nKeywords: nothing will stop a really determined thief\nOrganization: Tektronix - Colorado Data Systems, Englewood, CO\nLines: 14\n\nI saw his bike parked in front of a bar a few weeks later without the\ndog, and I wandered in to find out what had happened.\n\nHe said, \"Somebody stole m' damn dog!\".  They left the Harley behind.\n\n-----------------------------------------------------------------------------\n| Dave Tharp                      | DoD #0751   | \"You can't wear out       |\n| davet@interceptor.CDS.TEK.COM   | MRA #151    |   an Indian Scout,        |\n| '88 K75S  '48 Indian Chief      | AHRMA #751  |  Or its brother the Chief.|\n| '75 R90S(#151) '72 TR-2B(#751)  | AMA #524737 |  They're built like rocks |\n| '65 R50/2/Velorex  '57 NSU Max  |             |   to take the knocks,     |\n|       1936 BMW R12              | (Compulsive | It's the Harleys that     |\n| My employer has no idea.        |   Joiner)   |   give you grief.\"        |\n-----------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7745, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Matt_Harrop@magic-bbs.corp.apple.com\nDistribution: na\nOrganization: Macintosh Awareness Group In Canada\nSubject: Re: Internal SCSI installation, How?\nLines: 9\n\n>But Apple HD SC says \"Unable to locate a suitable drive on SCSI\"... \n>what's he doing wrong?\n\nApples HDSC will only format a hard drive that Apple sold.  You need to use\na third party formater like Drive7 or SpotOn.\n\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7746, "properties": {"category": "comp.graphics", "text": "From: rdd@uts.ipp-garching.mpg.de (Reinhard Drube)\nSubject: Re: Postscript drawing prog\nOrganization: Rechenzentrum der Max-Planck-Gesellschaft in Garching\nLines: 17\n\nIn article <C5ECnn.7qo@mentor.cc.purdue.edu>, nish@cv4.chem.purdue.edu (Nishantha I.) writes:\n|> \tCould somebody let me know of a drawing utility that can be\n|> used to manipulate postscript files.I am specifically interested in\n|> drawing lines, boxes and the sort on Postscript contour plots.\n|> \tI have tried xfig and I am impressed by it's features. However\n|> it is of no use since I cannot use postscript files as input for the\n|> programme.Is there a utility that converts postscript to xfig format?\n|> \tAny help would be greatly appreciated.\n|> \t\t\t\tNishantha\nI think you are too optimistic! PostScript is a very big language and\nso the fig format can not be able to be an interpreter of ANY arbitrary\nps code. The only program I know to manipulate PostScript files is\nIslandDraw.\nI for myself use xfig and include the PostScript files (converted to\nepsi format). Small changes then are possible (erasing some letters,\nadding text and so on).\nReinhard\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7747, "properties": {"category": "soc.religion.christian", "text": "From: luomat@alleg.edu (Timothy J. Luoma)\nSubject: Re: DID HE REALLY RISE???\nReply-To: luomat@alleg.edu\nOrganization: Allegheny College\nLines: 53\n\nIn article <Apr.9.01.11.16.1993.16937@athos.rutgers.edu>  \nemery@tc.fluke.COM (John Emery) writes:\n[much of the excellent post deleted for space -- TjL]\n\n)->With all the suffering and persecution that it meant to be a believer,  \nit\n)->would be quite probable that at least one of those in the supposed  \nconspiracy\n)->would come forward and confess that the whole thing was a big hoax.   \nYet\n)->not one did.  It seems rather reasonable that the disciples did not  \nmake\n)->up the resurrection but sincerely believed that Jesus had actually  \nrisen\n)->from the dead; especially in light of the sufferings that came upon  \nthose\n)->who believed.\n\n\nI was at the \"Jubilee\" conference this year in Pittsburgh PA, and the  \nspeaker there spoke of this as well. He talked about many of the same  \nthings you mentioned in your post, but here he went into a little more  \ndetail.  I'll paraphrase as best I can:\n\n\"Suppose you were part of the `Christian consipracy' which was going to  \ntell people that Christ had risen.  Never mind the stoning, the being  \nburned alive, the possible crucifixion ... let's just talk about a  \nscourging.  The whip that would be used would have broken pottery, metal,  \nbone, and anything else that they could find attached to it.  You would be  \nstood facing a wall, with nothing to protect you.\n\n\"When the whip hit you the first time, it would tear the flesh off you  \nwith instant incredibly intense pain.  You would think to yourself `All  \nthis for a lie?'  The second hit would drop you to your knees, you would  \nscream out in agony that your raw back was being torn at again.  You would  \nsay to yourself: `All this for a lie?'  And you had 37 more coming.\n\n\"At the third hit you would scream out that it was all a lie, beg for them  \nto stop, and tell them that you would swear on your life that it had all  \nbeen a lie, if they would only stop....\"\n\nIt is amazing enough that those who believed kept their faith under such  \ntorture.... but for a lie?  There is no one fool enough to do that.... And  \nno one came forward.\n\nExcellent post John, thanks for taking the time.\n\n\n--\nTj Luoma <luomat@alleg.edu>\t\"God be merciful to \n\"I have fought a good fight,\t me a sinner.\"--St Luke\n I have finished my course,\t\"For me to live is Christ, and\n I have kept the faith.\" 2 TIM   to die is gain\"  -- PHILIPPIANS 1:21             \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7748, "properties": {"category": "sci.med", "text": "From: twong@civil.ubc.ca (Thomas Wong)\nSubject: Image processing software for PC\nOrganization: Dept. of Civil Engineering, U.B.C., Vancouver, B.C., Canada\nLines: 27\nDistribution: world\nNNTP-Posting-Host: sam.civil.ubc.ca\n\n\n\nI am posting the following for my brother. Please post your replies or\nsend him email to his address at the end of his message. Thank you.\n____________________________________________________________________\n\nMy supervisor is looking for a image analysis software for\nMS DOS. We need something to measure lengths and areas on\nmicrographs. Sometime in the future, we may expand to do\nsome densitometry for gels, etc. We've found lots of ads and\ninfo for the Jandel Scientific products: SigmaScan and Java.\n\nBut we have not been able to find any competing products. We\nwould appreciate any comments on these products and\n\nsuggestions / comments on other products we should consider.\nThanks.\n\n \n\nDonald\n\nUserDONO@MTSG.UBC.CA\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7749, "properties": {"category": "misc.forsale", "text": "From: rahdert@thrombus.seas.upenn.edu (Dave Rahdert)\nSubject: Ticket: San Francisco => Philadelphia\nDistribution: na\nOrganization: Dept. of Mechanical Engineering and Applied Mechanics\nLines: 20\nNntp-Posting-Host: thrombus.seas.upenn.edu\n\n\nOne way ticket (return leg of roundtrip ticket) for female traveler\n\n\n\nSan Francisco ==> St. Louis ==> Philadelphia\n\n\nMay 21, 1993 (Friday)  leaves SFO     10:25 am\n                       arrives Phila.  8:43 pm\n\n\n\n.............$150   or best offer\n\n\n\n\nreturn E-mail    or call 215/387-0203 (home)  \n                         215/898-8099 (office)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7750, "properties": {"category": "rec.sport.baseball", "text": "From: tkevans@eplrx7.es.duPont.com (Tim Evans)\nSubject: Re: McRae is (Re: Torre: The worst manager?)\nReply-To: tkevans@eplrx7.es.dupont.com\nOrganization: DuPont Engineering Physics Laboratory\nX-Newsreader: NN version 6.4.19\nLines: 15\n\nscott@mccall.com (Scott D. Davis) writes:\n\n\n>KC(?) news was doing a report on that.  They said that McRae is\n>really a batting coach and not a manager.  But for some reason\n>he took the job.  Whatever the reason, the Royals need a new\n>manager now...while it is too late.\n>--\n\nAnd have Jesse Jackson picket the stadium?\n-- \nTim Evans                     |    E.I. du Pont de Nemours & Co.\ntkevans@eplrx7.es.dupont.com  |    Experimental Station\n(302) 695-9353/7395           |    P.O. Box 80357\nEVANSTK AT A1 AT ESVAX        |    Wilmington, Delaware 19880-0357\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7751, "properties": {"category": "soc.religion.christian", "text": "From: ata@hfsi.hfsi.com ( John Ata)\nSubject: Re: DID HE REALLY RISE???\nReply-To: <news@opl.com>\nOrganization: HFSI\nLines: 40\n\nIn article <Apr.21.03.26.15.1993.1349@geneva.rutgers.edu> reedr@cgsvax.claremont.edu writes:\n\n>The basic problem with your argument is your total and complete reliance on\n>the biblical text.  Luke's account is highly suspect (I would refer you to\n>the hermeneia commentary on Acts).  Moreover Luke's account is written at\n>least 90 years after the fact.  In the meantime everyone he mentions has died\n>and attempts to find actual written sources behind the text have come up\n>with only the we section of the later portion of acts as firmly established.\n>Moreover, Pauls account of some of the events in Acts (as recorded in \n>Galatians) fail to establish the acts accounts. \n\nEven if there was no independent proof that Luke's account was\nvalid, I find it strange that you would take the negation of it as\ntruth without any direct historical evidence (at least that you've\nmentioned) to back it up.  The assertion was made, unequivocally\nthat no Christian ever sufferred for their faith by believing in\nthe Resurrection.  Luke's account suggests otherwise, and in the\nabsence of direct eyewitnesses who can claim that Luke is mistaken,\nthen I suggest that this unequivocal assertion is suspect.\n\n>randy\n\n\n-- \nJohn G. Ata - Technical Consultant | Internet:  ata@hfsi.com\nHFS, Inc.\t\t  VA20     |     UUCP:  uunet!hfsi!ata\n7900 Westpark Drive\t MS:601\t   |    Voice:\t(703) 827-6810\nMcLean, VA  22102\t           |      FAX:\t(703) 827-3729\n\n[I think the original claim may have been somewhat more limited than\nthis.  It was an answer to the claim that the witnesses couldn't\nbe lying because they were willign to suffer for their beliefs.\nThus it's not necessary to show that no Christian ever suffered\nfor believing in the Resurrection.  Rather the issue is whether\nthose who witnessed it did.\n\nI do agree that the posting you're responding to shows that there\ncan be liberal as well as conservative dogmatism.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7752, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: How many homosexuals are there?\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: usa\nLines: 28\n\nIn article <1qmtl1$71r@gondor.sdsu.edu> cosc0000@ucssun1.sdsu.edu (Riyadh Al-ha\njmoosa) writes:\n>kaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n>> Perhaps 1%, but most likely not more than 2%.  A new study\n>> (discrediting Kinsey) says so.\n>> --\n>>   The views expressed herein are   |  Theodore A. Kaldis\n>>   my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n>>   believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n>>   as this would hold such views??? |\n>\n>    My understanding from my psycology classes is that the percentage is\n>    more like 10-12% world wide.  I would really like to know your source\n>    for the 1-2% figure.\n>\n>                             Riyadh Moosa.\n>                             SDSU-Chemistry.\n>                             cosc0000@ucssun1.sdsu.edu\n\nSome survey conducted by the U.S. government and some group (I don't know \nwhich) did what they were calling on all the news shows this morning, \"The most\ncomprehensive survey of sexuality in the past 50 years\".  Not an exact quote, \nbut you get the idea.\n\nThis low percentage is merely one more in a ton of evidence disproving the 10% \ntheory.\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7753, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: 'SDPA' has made \"Armenian\" synonymous with \"idiot\" or \"criminal/Nazi\".\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 208\n\nIn article <1993Apr19.000246.11186@urartu.sdpa.org> hla@urartu.sdpa.org  writes:\n\n>In your (and Mutlu/Argic/Cosar's and thousands of others like you)\n\n'SDPA.ORG' criminals/Nazis in action. Your fascist government got away with \nthe genocide of 2.5 million Turkish men, women and children and is enjoying \nthe fruits of that genocide. And your criminal organization will not get away \nwith the genocide's cover-up. In June 1915, a major uprising took place in \nSebinkarahisar under the leadership of the famous Nazi Boyadjian. The Moslem \ndistricts were burnt down. Hundreds of soldiers and gendarmerie were killed\nand hundreds of civilians also perished.\n\n   Armenians first of all occupied the Talori region, which included \n   the villages of Siner, Simai, Gulli-Guzat, Ahi, Hedenk, Sinank,\n   Ekind, Effard, Musson, Etek, Akcesser. Leaving their wives, \n   children and property in these inaccessible spots, the Armenians \n   joined forces with other armed bands coming from the Silvan \n   districts in the plain of Mus, after which the whole body of\n   3000 men gathered in the Andok Mt. Five or six hundred wished\n   to surround Mus, and started off by attacking the Delican tribe to\n   the south of the city. They slaughtered a number of the tribe and\n   seized their goods. The religious beliefs of the Muslims who fell\n   into their hands were derided and disparaged, and the Muslims\n   themselves murdered in the most frightful manner. The rebels\n   also attacked the regular troops in the vicinity of Mus, but the\n   large numbers of the regular forces prevented them from\n   occupying the city.\n\n   The rebels joined the bandits in the Andok Mts., carrying out\n   the most frightful massacres and looting among the tribes of the\n   neighbourhood. They burned Omer Agha's nephew alive. They\n   raped a number of Turkish women at a spot three or four hours'\n   distance from Gulli-Guzat and then strangled them.\n\n   At the beginning of August the rebels attacked the Faninar,\n   Bekiran and Badikan tribes, perpetrating equally horrible\n   atrocities. The rebels in the villages of Yermut and Ealigernuk in\n   the nahiye of Cinan in the kaza of Cal attacked the Kurds in the\n   neighbourhood, as well as the villages of Kaisser and Catcat.\n\n   Towards the end of August, the Armenians attacked the\n   Kurds in the vicinity of Mus and burned down three or four\n   villages, including Gulli-Guzat. As for the 3000 rebels in Talori,\n   they continued to spread death and destruction among the\n   Muslims and other Christian communities, refusing to lay down\n   their arms. \n\nSource: Uras, Esat: The Armenians in History. Documentary Publications \n(Istanbul), 1988.\n\np. 954.\n\n\"In his speech given at the Sivas Congress, Mustafa Kemal once again drew\n a picture of the  country under occupation:\n\n In the East, the Armenians are making preparations for advancing to the\n River Halys (Kizilirmak), and have already started a policy of massacring\n the Moslem population.\"\n\n\npp. 966-967.\n\n\"The situation of the southern provinces of Turkey after the signing of the\n Mudros Armistice is described by Ataturk in his speech:\n\n The Armenians in the south, armed by foreign troops and encouraged by the\n protection they enjoyed, molested the Mohammedans of their district. They \n pursued a relentless policy of murder and extinction everywhere. This was \n responsible for the tragic incident at Maras....the Armenians had completely \n destroyed an old Mohammedan town like Maras by their artillery and \n machine-gun fire.\n\n They killed thousands of innocent and defenceless women and children. The\n Armenians were the instigators of the atrocities, which were unique in\n history. \n\n \nSource: Documents: Volume I (1919).\n        \"Document No: 15,\" Archive No: 1/2, Cabin No: 113, Drawer \n        No: 3, File No: 520, Section No: 2024, Contents No: 11-1; 11-3.\n        (19 Feb 330 '4 March 1915', District Governor Kemal)\n\n\"List of male inhabitants of Mergehu Village murdered or annihilated \n with the utmost savagery by Armenians:\n\n Names\t\t\t\tMethod of Annihilation\n -----\t\t\t\t----------------------\nHaci Ibrahim, son of Abdi\tBullets and bayonet\nAbdi, son of Haci Ibrahim\tBullets and bayonet\nReso, son of Abdi\t\tBeaten and cut into pieces\nSado, son of Omer\t\tBeaten and cut into pieces\nAso, son of Reso\t\tBeaten and cut into pieces\nKulu, son of Canko\t\tStabbed in the eye with a bayonet\nMusa, son of Canko\t\tBayonet in his eye\nEmin, son of Molla Hamit\tBayonet in his eye\nMolla Abdullah, son of Hamit\tBayonet in his eye\nIbo, son of Haci\t\tBayonet in his eye\nSado, son of Haci\t\tBayonet in his eye\nAbdullah, son of Canko\t\tSlaughtered\nIbo, son of Ahmet\t\tAbdomen ripped open\nIsmail, son of Ibo\t\tBurnt in fire\nMusto, son of Ozu\t\tBullets\nMahmut, son of Seyyo\t\tSlaughtered\nKocak, son of Birro\t\tBullets\nMusto, son of Husnu\t\tBullets\nUso, son of Alo\t\t\tBullets\nMaksut, son of Peri\t\tBullets\nHaci, son of Peri\t\tBullets\nMehmet, son of Hasanali\t\tBayonet \nIbo, son of Hasanali\t \tBayonet\nAbdo, son of Mehmed\t\tBayonet\nMolla Suleyman\t\t\tBurnt in oven\nMazgi, son of Abdullah\t\tStabbed in abdomen by bayonet\nSulis, son of Hasan\t\tBullets\nMahmo, son of Mehmet\t\tStabbed with a dagger\nMurat, son of Hasan\t\tStabbed with a dagger\nUso, son of Avci\t\tBlinded with a bayonet\nLesko, son of Mehmet\t\tStabbed with a dagger\nAbdullah, son of Kasim\t\tBullets\nCoban Abdullah\t\t\tBullets\nSeymo, son of Mumin\t\tBullets \nMuammer, son of Reso\t\tBullets\nPaso, son of Merzi\t\tBullets\nGulu, son of Bitor\t\tBullets\nMurat, son of Yusuf\t\tBullets and bayonet\nCedo, son of Haci Ibrahim\tBullets and bayonet\nFaki Mehmet\t\t\tBullets and bayonet\nSilo, son of Abdulcebbar\tBullets and bayonet\n\n\n List of massacred females from the same village:\n\nKasi, daughter of Huso and \nwife of Haci Ibrahim\t\tBullets\nFati, daughter of Isa,\nwife of Aduz\t\t\tBullets\nZeresan, daughter of Amat,\nwife of Reso\t\t\tBayonet\nGullu, daughter of Iyso\t\tCutting off her breasts\nSulnu, daughter of Sulo,\tRipping open her abdomen and burning\nwife of Ibo\t\t\ther baby in oven\nFatma, daughter of Ibo \t\tSlaughtered and burnt in oven\nFidan hatun\t\t\tBurnt in oven\nGulfizar, daughter of Hacihan,  \nwife of Musto\t\t\tSlaughtered\nRahime, daughter of Mehmet, \nwife of Halil\t\t\tBullets\nBinefs, daughter of Haci Kerim,\nwife of Suleyman\t\tBurnt in oven\nMahiye, daughter of Ali, \nwife of Sivno\t\t\tSlaughtered\nHati, daughter of Haci, \nwife of Ahmet         \t\tSlaughtered\nHacer, daughter of Meho\t\tBullet and bayonet\n\n\n List of Females of the same village raped and murdered:\n\nNadire, daughter of Haci, wife of Suvis\nHani, daughter of Kulu, wife of Zerko\nZaliha, daughter of Telli, wife of Silo\nArap, daughter of Sami, wife of Hilo\n\n Wounded males and females of the same village:\n\n (a long list)\n\n List of massacred males and females at Istuci village:\n\nMikail, son of Alo\t\tBullets\nMusto, son of Ismail\t\tBullets\nDervis, son of Maksut\t\tBullets\nAli, son of Nimet\t\tBayonet\nEsat, son of Kelo\t\tBayonet and bullets\nIsa, son of Nebi\t\tBayonet and bullets\nCevher, son of Gani\t\tBeaten by rifle butt\nZiro, daughter of Hasan\t\tDied from injuries\nHazal, daughter of Ali, \nwife of Acem\t\t\tDied from injuries\nHamsa, daughter of Huseyin,\nwife of Huseyin\t\t\tDied from injuries\n\n \n List of raped women at Istuci village in life:\n\nSabo, daughter of Maho\t\tVirgin\nMiri, other daughter of Maho\tVirgin\nEmine, daughter of Meho, wife\nof Sofi Salih\nSahap, daughter of Ali, wife \nof Nevruz\nGullu, daughter of Mahi\t\tVirgin\n\n\n List of persons attacked by Armenian gangs:\n\n (a long list)\"\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7754, "properties": {"category": "comp.graphics", "text": "From: scott@fcs280s.ncifcrf.gov (Michael Scott)\nSubject: Canon copier-printer/postscript questions.\nNntp-Posting-Host: fcs280s.ncifcrf.gov\nOrganization: Frederick Cancer Research and Development Center\nLines: 53\n\n\nPrinter model and specification:\n\nCanon CLC 500 (Color Laser Copier)\nps-ipu unit (postscript intelligent processing unit)\n\n\nHello,\n\nWe have recently purchased a very expensive and nice color copier/printer. \nWe want to be able to print to it from our SGI iris network.  The \ncopier/printer has both a parallel and SCSI interface.  I have configured the\nprinter with the \"lp\" system using the parallel interface and can print \npostscript files to the printer.  I can also print rgb files, but these are in \nturn converted to postscript by an internal filter.  The Canon CLC 500 is a \npublication quality printer but the quality of our postscript printouts \nare less than acceptable.  We create the postscript files with a variaty of \nprograms, such as showcase, xv, and tops.  When we convert to postscript \nwith tops and use the -l option to specify the halftone screen density of 98 \nrather than the default 40 the output is better, but still much less that \nacceptable.  Note, that we are starting with a screen image in rgb image format\nand translating the image into postscript.\n\nWe suspect that if we could use the SCSI interface we would get higher quality \npictures.  We have not purchased the software that drives the printer from the \nSCSI port.  To my knowledge this software is $5000 and does not come with a \nwarranty.  The management here does not want to spend this much money without \nsome assurance that the product will work.\n\n\nHere my questions:\n\nIf anybody on the net uses this printer are you using the SCSI or \nparallel port?  What is the quality of the printouts?\n\nIs there a way to create high quality postscript printouts?  What is the\nlimiting component, the postscript language or the postscript interpretor on \nthe printer?\n \nThe Big question:\n\nWhere can I get some software to drive the SCSI port for this printer?\n\n\n\nPlease email directly to me, I don't not read news on a regular basis. \nI will post a summary.\n\nThanks in advance.\n\n-- \n\tE-mail:\t\tscott@ncifcrf.gov ,Phone #:\t(301) 846-5798\n        Title:  \tSr. Systems Manager/Analyst\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7755, "properties": {"category": "comp.windows.x", "text": "From: mahan@TGV.COM (Patrick L. Mahan)\nSubject: Re: How do I find by AppContext\nOrganization: The Internet\nLines: 24\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu, masc0442@gondor.sdsu.edu\n\n# \n# \n# Is there an Xt call to give me my application context?\n# I am fixing up an X/Motif program, and am trying to use XtAppAddTimeOut,\n# whose first argument is the app_context.  What call can I use\n# to give me this value?\n# \n\nUse XtDisplayToApplicationContext() to retreive the application context.\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7756, "properties": {"category": "talk.politics.misc", "text": "From: chloupek@ohstpy.mps.ohio-state.edu\nSubject: Re: NC vs Hunt (Marine Gay Bashing in Wilmington NC) verdict\nOrganization: The Ohio State University, Department of Physics\nLines: 27\n\nIn article <mattm-140493165729@mcmelmon.apple.com>, mattm@apple.com (Matthew Melmon) writes:\n> \n> Yeah, yeah, yeah.  Anyway, I was under the impression that the Marines\n> in question invited Clinton down for the same treatment.  While a\n> bar fight is a bar fight, threatening the Commander in Chief seems\n> a rather unprofessional thing for a professional soldier to do...\n> \n>\nAlso, it appears that two of the three Marines have some sort of charges\npending against them from another fight they were in a week before. \nInteresting.\n\nFrank\n\n\n--------------------------------------------------------------------------\n\nFrank R. Chloupek \nCHLOUPEK@ohstpy.mps.ohio-state.edu \nDepartment of Physics -- *The* Ohio State University\n(Not just any Ohio State University) \n\n\"There is only one hard-and-fast rule about the place to have a party:  \nsomebody else's place.\"\n\t\t\t\t\t\t\t--P.J. O'Rourke\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7757, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Charles P. Cox, Jr. <cox@snowhite.eeap.cwru.edu>\nSubject: Calling all Mac gurus\nOrganization: Case Western Reserve University\nLines: 21\nDistribution: world\nNNTP-Posting-Host: b61506.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d17\nX-XXMessage-ID: <A7F8ECC4A901F042@b61506.student.cwru.edu>\nX-XXDate: Mon, 19 Apr 93 04:56:52 GMT\n\nQuestion for those familiar with Quadra VRAM:\n\nI put 2 256K VRAM SIMMs in my Quadra 700 (in the 2 slots closest to the\nRAM SIMM slots) and I got no results whatsoever.  I have been told that\nthe built-in video should support at least 16bit and maybe 24bit color on\na Macintosh Color Display.  However, the Monitors control panel still\nlists 8bit (256 colors) as the highest possible.\n\nDoes it make any difference which slots you put the SIMMs in?\nDo you have to do something to activate them?\nDo you have to do something to the Monitors control panel?\n\nBTW, I am running System 7.1 with 8 Megs of RAM.\n\n\n---\nCharles P. Cox, Jr.\nComputer Engineering\nCase Western Reserve University\ncpc3@po.cwru.edu\ncox@snowhite.eeap.cwru.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7758, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Food For Thought On Tyre\nOrganization: Cookamunga Tourist Bureau\nLines: 34\n\nIn article <1qh4m5INN2pu@ctron-news.ctron.com>, king@ctron.com (John E.\nKing) wrote:\n> Not exactly.  The prophesy clearly implies that people would\n> still be living in the area, but by the same token it would\n> never be \"rebuilt\".  Obviously , if people are still there they\n> would live in houses, correct?  Their \"nets\" implies a fishing\n> village.  This is exactly what it has become -- a far cry from\n> its original position of stature .\n\nLet's see, if Alexander destroyed Tyre, and people move back, and\nthey construct houses, and after a while 14000 people live there\nand still call it Tyre, it is not considered to be rebuilt. Instead\nit's considered to be 'just-some-people-that-got-together-for-fishing-\nand-they-needed-houses' place.\n\n> So far I've seen stated figurers ranging from 15,000 to 22,000.\n> Let's assume the latter one is correct.  By modern standards\n> we are talking about a one-horse town.\n\nSigh, I was never born in a city then (my home town has 10.000\npeople). I have to consult my city and inform them that it's from\nnow a fishing village. When this city (Kristinestad) was founded\nin the 17:th century about 1000 people lived there, so the norms\nwere even more bizarre for dumb Swedish queens who founded cities\nalong the coast of Finland.\n\nI would like to know why Paul thought is was worth mentioning the \nsmall fishing place of Tyre in Acts. Again, maybe he was a keen\nfisherman and wanted to visit the shores of Tyre? :-)\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.369+0000", "event": "documents", "entityId": 7759, "properties": {"category": "sci.space", "text": "From: jgreen@trumpet.calpoly.edu (James Thomas Green)\nSubject: Proton/Centaur?\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 9\n\nHas anyone looked into the possiblity of a Proton/Centaur combo?\nWhat would be the benefits and problems with such a combo (other\nthan the obvious instability in the XSSR now)?\n\n\n/~~~(-: James T. Green :-)~~~~(-: jgreen@oboe.calpoly.edu :-)~~~\\ \n| \"I know you believe you understand what it is that you        |   \n| think I said.  But I am not sure that you realize that        |\n| what I said is not what I meant.\"                             |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7760, "properties": {"category": "comp.graphics", "text": "From: eric.vitiello@tfd.coplex.com (Eric Vitiello)\nSubject: .GIF to .BMP\nReply-To: eric.vitiello@tfd.coplex.com (Eric Vitiello)\nOrganization: Ky/In PC User's Group - Louisville, KY - 502-423-8654\nLines: 15\n\nTO: saz@hook.corp.mot.com\n\n\nSZ>Does anybody know of a program that converts .GIF files to .BMP files\nSZ>and if so, where can I ftp it from?  Any help would be greatly\nSZ>appreciated.\n\n  Sure... A GREAT shareware  program is Graphic Workshop (the newest\n  version is 6.1).  Although I don't know where you can ftp it from.  It\n  also converts to about 15 other formats, and does MANY other things.\n\n....r.c V.t.ell. .r...\n---\n . DeLuxe./386 1.25 #959sa . My Address: eric.vitiello@tfd.coplex.com\n                                                                                                                           \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7761, "properties": {"category": "rec.sport.baseball", "text": "From: warped@cs.montana.edu (Doug Dolven)\nSubject: Mel Hall\nOrganization: CS\nLines: 9\n\n\nHas anyone heard anything about Mel Hall this season?  I'd heard he wasn't\nwith the Yankees any more.  What happened to him?\n\n\t\t\t\tDoug Dolven\n-- \nDoug Dolven\nwarped@cs.montana.edu\ngdd7548@trex.oscs.montana.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7762, "properties": {"category": "sci.electronics", "text": "From: massey@travis.llnl.gov\nSubject: Re: Jacob's Ladder\nArticle-I.D.: travis.1993Apr6.093828.1\nOrganization: Lawrence Livermore National Laboratory\nLines: 15\nNNTP-Posting-Host: travis.llnl.gov\n\nIn article <C4z6x7.16B@murdoch.acc.Virginia.EDU>, dgj2y@kelvin.seas.Virginia.EDU (David Glen Jacobowitz) writes:\n> \tI've been wanting to build a Tesla coil for quite awhile now (\n> who doesn't, right? ) and I thought it would be a good intermidiate\n> step to build a JAcob's Ladder first.\n> \tWell, I have been looking for a high voltage transformer that\n> is reasonable inexpensive ( neon sign transformers cost mucho ).\n\n\nIn the past I've managed to buy used neon sign transformers from sign shops \nfor about $20. Try calling around.\n\n\nWarren N. Massey                                      Massey@Travis.LLNL.Gov\nLawrence Livermore National Laboratory   7000 East Ave., P.O. Box 808, L-495\nLivermore, Calif. 94550  <<<My opinions are mine alone>>>      (510)422-1958\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7763, "properties": {"category": "soc.religion.christian", "text": "From: rjb@akgua.att.com\nSubject: Re: When are two people married in God's eyes?\nOrganization: AT&T\nLines: 69\n\nIn article <Apr.23.02.55.25.1993.3117@geneva.rutgers.edu>, rjs2@po.cwru.edu (Richard J. Szanto) writes:\n> In a previous article, randerso@acad1.sahs.uth.tmc.edu (Robert Anderson) says:\n> \n> >I would like to get your opinions on this: when exactly does an engaged\n> >couple become \"married\" in God's eyes?  Some say that if the two have\n> >publically announced their plans to marry, have made their vows to God, and\n> >are unswervingly committed to one another (I realize this is a subjective\n> >qualifier) they are married/joined in God's sight.\n> \n> I have discussed this with my girlfriend often.  I consider myself married,\n> though legally I am not.  Neither of us have been with other people sexually,\n> although we have been with each other.  We did not have sexual relations\n> until we decided to marry eventually.  For financial and distance reasons,\n> we will not be legally married for another year and a half.  Until then,\n> I consider myself married for life in God's eyes.  I have faith that we\n> have a strong relationship, and have had for over 4 years, and will be\n> full of joy when we marry in a church.  First, however, we must find a\n> church( we will be living in a new area when we marry, and will need to\n> find a new church community).\n> \n> Anyway, I feel that if two people commit to marriage before God, they are\n> married and are bound by that commitment.\n> \n> -- \n> \t\t\t\t\t\t-Rick Szanto\n\n\nRick has nailed the problem down pretty well.\n\nAs I can find no Scripture (have I missed it ?) that details\nwhen you are married, I have to make some assumptions based\non the PRINCIPLES of Scripture.  \n\nIt seems to me that it takes 3 parties to make a marriage:\nhusband-to-be, wife-to-be, and God.  If you promise before\neach other and God that you will convenant together to be\nmarried, then...you are (IMO).\n\nSo why do we have the ceremonial part ?  That seems to be\nthere for \"connectedness\" in the Body of Christ.  My brothers\nand sisters ought to be involved so that there can be some\naccountability on both our parts.  That's part of the concept\nfrom Hebrews about \"not forsaking the assembling of yourselves\ntogether as is the custom of some.\"  We need each other because\nLone Ranger Christians and Lone Ranger Marriages smack of a\nself sufficiency that the I don't see in the NT.  Does anyone\nsee the Paul Simon \"I am a rock, I am an island...\" model anywhere\nin Christianity. (Song lyrics show your age :-) ) ?\n\nFurther, since marriage is a legal matter/institution in the USA\nand many other places, and such laws do not specifically go\ncrosswise to the clear teachings of Scripture, we ought to\nobey them to avoid even the appearance of \"evil\" (I Thess 5:22)\n\nSo this would imply at least a civil ceremony before marriage,\nbut keep in mind we are at least doing all of this for the \nconscience of others because back to the beginning...you are\nmarried when you and your intended promise each other and God\nto be in convenant. (IMO)\n\nWhat ch'all think ?\n\nBobby - akgua!rjb\n\n[In some states, the kind of commitment described in Richard Szanto's\nposting can create a common law marriage.  Indeed his posting itself\nmight go a long way towards establishing that a marriage exists,\nshould the issue ever end up in court.  He might want to consult a\nlawyer who is familiar with common law marriage in his state.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7764, "properties": {"category": "misc.forsale", "text": "From: lgibb@nyx.cs.du.edu (Lance Gibb)\nSubject: RC Car for trade\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nDistribution: na\nLines: 30\n\n\nTitle just 'bout says it all:\n \nGrasshopper Remote Controlled Car for Sale/Trade\n \nFeatures:\n -$75 racing engine installed (original included as well)\n -2 sets of tires\n -Futaba 2 channel radio with servos/receiver\n -body completly refinished - great shape\n -Battery and charger\n -every thing you need to have it running right out of the box,\n  VERY fast\n -everything 100%\n \nI haven't run this thing in a long time.  I had it out the other\nday just to check on it and everything is A-OK.\n \nI'd listen to ANY cash offers, but am more interested in trading\nfor some extra storage for my computer.  If you have any of the\nfollowing and are interested in a trade, drop me a line:\n \nIDE hard drive 50+ megs (MUST be 3.5\" wide, 1\" tall)\nSCSI hard drive 50+ megs (MUST be 3.5\" wide, 1\" tall)\nSCSI tape backup (any make/size)\nSCSI CD-ROM\n9600 baud modem (external)\n\nPlease leave any offers/questions in Email to lgibb@nyx.cs.du.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7765, "properties": {"category": "sci.med", "text": "From: kjiv@lrc.edu\nSubject: Hismanal, et. al.--side effects\nOrganization: Lenoir-Rhyne College, Hickory, NC\nLines: 22\n\nCan someone tell me whether or not any of the following medications \nhas been linked to rapid/excessive weight gain and/or a distorted \nsense of taste or smell:  Hismanal; Azmacort (a topical steroid to \nprevent asthma); Vancenase.\n\nAlso:\nYou may have guessed, I'm an allergy sufferer--but I'm beginning to \nsuspect I'm also the victim of a Dr. toliberal with the prescription \np. The allergist I went to last Oct. simply inquired about my symptons \n( I was suffering chronic asthma attacks), gave me a battery of \nallergy tests, and went down a checklist of drugs (a photocopied \nsheet).  I've gained out 30 lbs. since then though I haven't eaten \nmore or much differently than before; I'vsuffered depression; , \nfatigue; and I've experienced a foul smell and sense of taste for \nabout the last two months.  I mentioned the lack of smell and taste to \nthis Dr. in Feb. and he said my sinuses did look a bit swollen (he \njust looked up my nose with his little light--the same one used for \nears), and prescribed Prednisone and Sulfatrim DS (severe headaches \nand a rash resulted, particularly after my week's worth of Prednisone \nran out).  Now he wants to do a rhinoscopy to see if I have a bleeding \nulcer or polyps in my sinus cavities.  I'm considering seeing another \ndoctor.  Any suggestions/advice?  I'd really appreciate it!\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7766, "properties": {"category": "sci.crypt", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nLines: 29\n\nIn article <strnlghtC5puCL.6Kp@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>In article <Apr18.204843.50316@yuma.ACNS.ColoState.EDU>\n>holland@CS.ColoState.EDU (douglas craig holland) writes:\n>\n>\n>>\tLet me ask you this.  Would you trust Richard Nixon with your\n>>crypto keys?  I wouldn't.\n>\n>I take it you mean President Nixon, not private citizen Nixon. Sure.\n>Nothing I'm doing would be of the slightest interest to President Nixon .\n>\n\tAre you sure you aren't being watched?  Let me remind you that \nWatergate was only the tip of the iceberg.  Nixon extensively used the NSA\nto watch people because he didn't like them.  According to _Decrypting the\nPuzzle Palace_:\n\n\tPresumably, the NSA is restricted from conducting American surveillance\n\tby both the Foreign Intelligence Surveillance Act of 1978(FISA) and a\n\tseries of presidential directives, beginning with one issued by\n\tPresident Ford following Richard Nixon's bold misuse of the NSA, in\n\twhich he explicitly directed the NSA to conduct widespread domestic\n\tsurveillance of political dissidents and drug users.\n\n\tOf course, just because there are laws saying the gov't is not \nsupposed to conduct illegal surveillance doesn't mean those laws can't be\nbroken when they are in the way.\n\t\t\t\t\t\tDoug Holland\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7767, "properties": {"category": "talk.politics.mideast", "text": "Reply-To: dcs@witsend.tnet.com\nFrom: \"D. C. Sessions\" <dcs@witsend.tnet.com>\nOrganization: Nobody but me -- really\nX-Newsposter: TMail version 1.20R\nSubject: Re: Zionism is Racism\nDistribution: world\nLines: 23\n\nIn <1993Apr21.104330.16704@ifi.uio.no>, michaelp@ifi.uio.no (Michael Schalom Preminger)  wrote:\n# \n# In article <20APR93.23565659.0109@VM1.MCGILL.CA>, B8HA000 <B8HA@MUSICB.MCGILL.CA> writes:\n# > In Re:Syria's Expansion, the author writes that the UN thought\n# > Zionism was Racism and that they were wrong.  They were correct\n# > the first time, Zionism is Racism and thankfully, the McGill Daily\n# > (the student newspaper at McGill) was proud enough to print an article\n# > saying so.  If you want a copy, send me mail.\n# > \n# Was the article about zionism? or about something else. The majority\n# of people I heard emitting this ignorant statement, do not really\n# know what zionism is. They have just associated it with what they think\n# they know about the political situation in the middle east. \n# \n# So Steve: Lets here, what IS zionism?\n\n  Assuming that you mean 'hear', you weren't 'listening': he just\n  told you, \"Zionism is Racism.\"  This is a tautological statement.\n\n--- D. C. Sessions                            Speaking for myself ---\n--- Note new network address:                dcs@witsend.tnet.com ---\n--- Author (and everything else!) of TMail  (DOS mail/news shell) ---\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7768, "properties": {"category": "rec.sport.hockey", "text": "From: nlu@Xenon.Stanford.EDU (Nelson Lu)\nSubject: Re: 1993 NHL Draft\nOrganization: Computer Science Department, Stanford University.\nLines: 29\n\nIn article <1993Apr20.184627.4585@newshub.ariel.yorku.ca> cs902043@ariel.yorku.ca (SHAWN LUDDINGTON) writes:\n\n>As for the picks\n>Ottawa picks #1 which means it is almost 100% that Alexander Daigle will \n>go #1. He'll either stay or be traded in Montreal or Quebec.  IMO I would\n>take Kariya.  He should alot of leadership in the NCAA and so far in\n>the World Championships.  Daigle didn't show this for his junior team.\n>\n>San Jose will then get Kariya.\n>\n>Tampa Bay will either go for a russian Kozlov (I think that's it) or a \n>    defenseman Rob Niedemeyer (probably spelt the last name wrong)\n\nThe last name is Niedermayer, as in New Jersey's Scott's last name, because\n(you guessed it) they are brothers.  But Rob Niedermayer is a center, not\na defenseman.\n\nI am not sure that the Sharks will take Kariya.  They aren't saying much, but\nthey apparently like Niedermayer and Victor Kozlov, along with Kariya.  Chris\nPronger's name has also been mentioned.  My guess is that they'll take\nNiedermayer.  They may take Pronger, except that they already have too many\ndefensive prospects.\n\n===============================================================================\nGO CALGARY FLAMES!  Al MacInnis for Norris!  Gary Roberts for Hart and Smythe!\nGO EDMONTON OILERS!  Go for playoffs next year!  Stay in Edmonton!\n===============================================================================\nNelson Lu (claudius@leland.stanford.edu)\nrec.sport.hockey contact for the San Jose Sharks\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7769, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: Armenian killings in Kelbadjar ( Azerbadjan ) continues.....\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 28\n\nIn article <1993Apr5.064028.24746@kth.se> hilmi-er@dsv.su.se (Hilmi Eren) writes:\n\n>Armenian killings in Kelbadjar ( Azerbadjan ) continues, Armenian\n>attackers continues it's attack against Kelbadjar, Azerbadjan.\n>45,000 people have been evacuated from Kelbadjar, 15,000 are still in\n>town.\n\nThe fascist x-Soviet Armenian Government also hired mercenaries\nto slaughter Azeris this time.\n\n>The Armenian government says that the forces aren't from Armenia\n>but from Nagorno-Karabag. Heavy weapons and ordertaking\n>from France is the result.....Turkey's President, Turgut Ozal,says:\n>\"If UN doesn't act then we may have to show our teeth before the\n> situation becomes worse.\".\n\nFinally...about time...\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7770, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 31\n\nIn article <C5rynw.Iz8@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>And I suppose the FBI also prevented them from coming out with their \n>hands up while national tv cameras watch.\n>\nWatch from where?  Two miles away?  Far enough away that whatever\nreally happenned must be explained through the vengeful filter of\na humiliated agency that said (quote!) \"Enough is enough.\"\n\n>scenario that is simplest and most plausible.  I do not generally \n>believe in conspiracy theories that involve complicated and unlikely \n>scenarios.\n\nThe FBI sent letters to Martin Luther King's wife insinuating\nthat MLK was having an affair!  Again, please tell us exactly\nhow much you trust our supposedly benevolent government.\n\n>The BATF is by no means devoid of fault in the handling of this affair.\n>But to suggest that they may have intentionally started the fire is \n>ludicrous.\n\nI suspect that there were plenty of camerapeople willing to\nrisk small arms fire to get some good footage.  These people\nwere told to get the hell out of camera range.  Why?\n\nDrew \n--\nbetz@gozer.idbsu.edu\n*** brought into your terminal from the free state of idaho ***\n*** when you outlaw rights, only outlaws will have rights   ***\n*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7771, "properties": {"category": "sci.crypt", "text": "From: robichau@lambda.msfc.nasa.gov (Paul Robichaux)\nSubject: Suggestions for escrow agencies (was: Re: More technical details)\nReply-To: robichau@lambda.msfc.nasa.gov\nOrganization: New Technology, Inc.\nLines: 53\n\n( Below is my response to Dr. Denning's letter to Steven Bellovin. Comments\n  are invited. - Paul )\n\nIn alt.privacy.clipper, Steve Bellovin posted your message to\nhim, which included a brief passage concerning selection of agencies\nas escrow agencies.\n\nI am glad to see that the proposal as written states that the escrow\nagencies won't be law enforcement agencies. I would argue, however,\nthat *one* of the escrow agencies shouldn't be federal at all.\n\nAs a private citizen, I would feel much more \"secure in my person and\npapers\" knowing that an organization committed to individual civil\nliberties- the ACLU and the NRA come to mind- was safeguarding half of\nmy key. Both the ACLU and the NRA are resistent to government pressure\nby the simple expedient fact that they are not supported, funded, or\novertly controlled by the government.\n\nOf those federal and federally funded candidate agencies that you\nmentioned, I have the following comments:\n\n\t- SRI, Rand, Mitre, and national labs: I agree that they have\n        great experience safeguarding sensitive information. I am not\n        convinced that they would adequately safeguard _this_\n\tinformation, since in any case requiring disclosure, there's\n      \tlikely to be sigificant pressure for disclosure- possibly\n \t*wrongful* disclosure.\n\n\t- GAO: perhaps. I would like to see more concrete evidence of\n \ttheir fidelity and ability.\n\n\t- *TREASURY*? Surely you're joking. Perhaps you'd ask BATF\n\tto safeguard keys. Maybe the Federal Reserve would be a \n\tbetter choice.\n\nEver since last fall's \"trial balloon\" was posted in sci.crypt, your\nname has been synonymous with those who place a great deal of trust in\nthe ability of government agencies and agents to act within the law.\n\nI agree with you in part: those agencies and agents *almost always*\nact properly. However, there have been enough cases where _sworn\nagents of the Federal Government_ have acted wrongly to make me feel\nthat having two federal agencies as key repositories is unacceptable.\n\n\nRespectfully,\n-Paul Robichaux\n (not speaking for NTI, BCSS, or NASA)\n\n\n-- \nPaul Robichaux, KD4JZG                | HELP STOP THE BIG BROTHER CHIP!\nNTI Mission Software Development Div. | RIPEM key on request.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7772, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: Ken_M._Kampman@bmug.org\nOrganization: BMUG, Inc.\nSubject: Re: IIsi question\nLines: 11\n\nThe si has a single expansion slot, that can be either PDS or Nubus, but not\nboth together. The card lies parallel to and above the motherboard & HD and\nrequires an adaptor slot to do this. There are Nubus and PDS adaptort cards.\nThus, what kind of slots you have depends on what kind of adapter card you\nhave. With the exception of the Radius rocket, all NuBus cards I know of work\nin the si. PDS slots and thus cards are Mac specific, thus not all PDS cards\nwork in all Macs. \n\n**** From Planet BMUG, the FirstClass BBS of BMUG.  The message contained in\n**** this posting does not in any way reflect BMUG's official views.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7773, "properties": {"category": "rec.autos", "text": "From: aas7@po.CWRU.Edu (Andrew A. Spencer)\nSubject: Re: SHO and SC\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 53\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, a207706@moe.dseg.ti.com (Robert Loper) says:\n\n>In article <C5L8rE.28@constellation.ecn.uoknor.edu> callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>>In article <1993Apr15.232412.2261@ganglion.ann-arbor.mi.us> david@ganglion.ann-arbor.mi.us (David Hwang) writes:\n>>>In article <5214@unisql.UUCP> wrat@unisql.UUCP (wharfie) writes:\n>>>>In article <chrissC587qB.D1B@netcom.com> chriss@netcom.com (Chris Silvester) writes:\n>>>>\n>>\n>>Why anyone would order an SHO with an automatic transmission is\n>>beyond me; if you can't handle a stick, you should stick with a\n>>regular Taurus and leave the SHO to real drivers. That is not to\n>>say that there aren't real drivers who can't use the stick (eg\n>>disabled persons), but they aren't in any position to use an\n>>SHO anyway. \n>>\n>>I would be willing to bet that if we removed the automatic\n>>transmissions from all \"performance-type\" cars (like the 5.0l\n>>Mustangs, Camaros, and the like) we'd cut down on the number of\n>>accidents each year. Autos are fine for sedate little sedans,\n>>but they have no business in performance cars, IMHO.\n>>\n>>\t\t\t\tJames\n>>\n>I have to disagree with this.  I have a 92 Z28 with a 350 and a 4-speed auto\n>w/ overdrive, and it is really better that way.  Chevy autos are reknowned\n>for their long life and ability to handle copious amount of power.  I live \n>in the Dallas area, and a manual would be much harder to drive in the traffic \n>here.  Now if I still lived out in the sticks like I used to, a manual would be\n>more fun.  \n>\n>Safety-wise, an auto is less distracting...I would hate to have to be    \n>shifting gears while I was trying to ease into traffic in the freeways here.\n>Performance-wise, I can hold my own against any stock 5.0 Mustang or 5.0\n>Camaro w/ a five speed.  \n>\n>All of this IMHO... :)\n\nall of my HO's disagree with your HO's.  I LOVED Dallas rush hour in my stick..\ndetested it in the auto(like i did any other time in the auto...).  Of course,\nDalls rush hours are nothing, from what i hear..if i lived in LA, i might\nbe of a different persuasion.  And, just for the record, rarely do you shift\ngears when merging into traffic..that is what 5 speeds are good for..4th is\ngood up through around 80-90, most of the time, so you can just wind it out..\nit's not going to hurt anything, and keeps it in the powerband anyway..\nonly shift into top gear when you are exceeding redline in 4th(fairly rare,\nunless you drive a ferrari or some such, i'd bet) or when you hit cruising \nspeed where you feel comfortable(or when my mother is sitting in the \npassanger seat complaining about how you wind her \"poor little engine\" way\ntoo hi :-)\nJust my HO's..\n\nDREW\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7774, "properties": {"category": "rec.motorcycles", "text": "From: speedy@engr.latech.edu (Speedy Mercer)\nSubject: Re: MOTORCYCLE DETAILING TIP #18\nOrganization: Louisiana Tech University\nLines: 15\nNNTP-Posting-Host: bhm116e-spc.engr.latech.edu\n\nIn article <1993Apr15.164644.7348@hemlock.cray.com> ant@palm21.cray.com (Tony Jones) writes:\n\nA note to users of Plexi-Fairings:\n\nIf the light hits some of these just right, they become a giant magnifing \nglass and will melt a hole in your guage pod!  \n\n ----===== DoD #8177 = Technician(Dr. Speed) .NOT. Student =====----\n\n                          Stolen Taglines...\n              * God is real, unless declared integer. *\n            * I came, I saw, I deleted all your files. *\n         * Black holes are where God is dividing by zero. *\n        * The world will end in 5 minutes. Please log out. *\n       * Earth is 98% full.... please delete anyone you can. *\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7775, "properties": {"category": "sci.crypt", "text": "From: sphughes@sfsuvax1.sfsu.edu (Shaun P. Hughes)\nSubject: Who should be hearing my views on Clipper ?\nOrganization: San Francisco State University\nDistribution: na\nLines: 18\n\n\nBeing a browser of this group for some time,\n  and being very concerned about the clipper chip proposal,\n    I am hoping someone with more knowledge can help out.\n\nWho would be the most influential people to write to, protesting \nthe obvious next step hinted at by this proposal ?\n (Heads of what committees, etc.)\n\nWhat are the major flaws in the plan ?\n (From a cryptological standpoint)\n\n\n-- \n  Shaun P. Hughes                          \"Facts are Stupid Things.\"\n  sphughes@sfsuvax1.sfsu.edu                Ronald Reagan\n                                            Republican National\n  Finger for PGP 2.2 Public Key             Convention 1988\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7776, "properties": {"category": "rec.sport.baseball", "text": "From: dswartz@osf.org (Dan Swartzendruber)\nSubject: Re: Dopson Pitches First Shutout; Red Sox Win 6-0\nOrganization: Open Software Foundation - Research Institute\nLines: 18\n\nIn article <C5r5vt.941@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>jmann@vineland.pubs.stratus.com (Jim Mann) writes:\n\n[deleted]\n\n>\tSomeone told me this game started at 10:05 cdt.  Is this true??/ Who\n>in their right mind would go to a game on monday at 11AM????\n\nKeep in mind this was in Massachussetts.  Today was Patriots Day, a state\nholiday.  I think it might be a floating holiday, but given that the\nMarathon also happens the same day, most people don't go in.\n\n\n-- \n\n#include <std_disclaimer.h>\n\nDan S.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7777, "properties": {"category": "rec.sport.hockey", "text": "From: farenebt@logic.camp.clarkson.edu (Droopy)\nSubject: Re: AHL Calder Cup Playoff preview\nOrganization: Clarkson University\nLines: 37\nNntp-Posting-Host: logic.clarkson.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nDaryl Turner (umturne4@ccu.umanitoba.ca) wrote:\n: In article <1993Apr14.193524.25755@news.clarkson.edu> farenebt@craft.camp.clarkson.edu (Droopy) writes:\n: >\n: >ATLANTIC DIVISION\n: >\t\n: >\tST JOHN'S MAPLE LEAFS VS MONCTON HAWKS\n: >\tMONCTON HAWKS\n: >See CD Islanders. Moncton is a very similar team to CDI. Low scoring,\n: >defensive, good goaltending. John Leblanc and Stu Barnes are the only\n: >noticable guns on the team. But the defense is top notch and \n: >Mike O'Neill is the most underrated goalie in the league.\n: >\n\n: Bri, as I have tried to tell you since 2 February, Michael O'Neill\n: might be the most underrated goalie in the AHL, but he ISN'T in the\n: AHL.  He's on the Winnipeg Jets' injury list, as he has been since\n: his first NHL start against the Ottawa Senators.  He's out until\n: next year after surgery to repair a shoulder separation.\n\n: Stu Barnes might be an AHL gun for the Hawks, but he's now the third\n: line center with the Jets, and has been since mid January or so.\n\nSorry, my memory is gone. I thought that O'Neill got sent back\ndown in February but I must have been given incorrect info. I guess\nthis says it all about Moncton because Barnes is still one of\ntheir top 3 or so scorers even though he's been out since January.\n\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n    + Bri Farenell\t\t\tfarenebt@craft.camp.clarkson.edu   +\n    + AHL and ECAC contact for rec.sport.hockey\t\tGo USA Hockey!\t   +\t\n    + Adirondack Red Wings, Calder Cup Champs: '81  '86  '89  '92\t   +\n    + Clarkson Hockey, ECAC Tournament Champs: '66  '91  '93\t\t   +\n    + Glens Falls High Hockey, NY Division II State Champs: '90  '91       +\n    + AHL fans: join the AHL mailing list: ahl-news-request@andrew.cmu.edu +\n    + CONGRATS TO THE BOSTON BRUINS, 1992-93 ADAMS DIVISION CHAMPIONS      +\n    + PHOENIX SUNS, 1992-93 PACIFIC DIVISION CHAMPIONS\t\t\t   +\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7778, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: tuberculosis\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 17\n\nIn article <206@ky3b.UUCP> km@ky3b.pgh.pa.us (Ken Mitchum) writes:\n>\n>I found out that tuberculosis appears to be the only MEDICAL (as oppsed to psychiatric)\n>condition that one can be committed for, and this is because very specific laws were\n>enacted many years ago regarding tb. I am certain these vary from state to state.\n\nI think in Illinois venereal disease (the old ones, not AIDS) was included.\nSyphillis was, for sure.\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7779, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: My Gun is like my American Express Card\nDistribution: usa\n <1993Apr17.235338.2819@ucsu.Colorad\n <1993Apr19.203606.27625@CSD-NewsHost.Stanford.EDU>\nLines: 45\n\nIn article <1993Apr19.203606.27625@CSD-NewsHost.Stanford.EDU>,\nandy@SAIL.Stanford.EDU (Andy Freeman) says:\n>\n>In article <93108.172544U28037@uicvm.uic.edu> Jason Kratz                     >\n><U28037@uicvm.uic.edu\n>>The point that I forgot to bring up here (and this has nothing to do with    g\n>bein\n>>a gang member or not) is that it is illegal to carry a concealed weapon in   s\n>thi\n>>area (or in the state of illinois for that matter).\n>\n>Right - it nas nothing to do with whther or not the person\n>is/was a gang member, but that's what Kratz inferred....\n>\n>Wrong - there are people who can legally carry concealed in IL and\n>there are circumstances under which MANY people can carry concealed.\n>\n>Is accuracy really too much to expect?\n>\n>-andy\n>--\nNo it's not.  If you would have read my other post I was accurate.  Here's what\nI said:\n\n[material from another post]------------------------->  The other point that I\nwould like to make because I know it's true (looked this one up in the Illinois\n                  this is for you Andy-----> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nstatutes before) is that it is illegal to carry a concealed weapon in Illinois.\n^^^^^^^^ <------ Also for you Andy.\n\nAnd then I went on to say:\nThere is no such thing as a CCW for us ordinary folk here.\n[end of quoted material]\n\nOf course I forgot to mention who \"us ordinary folk\" are so just for Andy I'm\ngoing to go to the library tomorrow and photocopy the part of the Illinois\nstatutes with this information and post it.  Ordinary citizens CAN NOT get a\nlicense to carry a concealed weapon.  There are very few people who can.  I\neven asked my lawyer friend about this and he told me that only certain people\ncan get licenses for concealed carry.  He couldn't remember which people but he\nknew for sure that regular citizens couldn't get that type of license.  He told\nme to go check at the library for the statutes which I did.  I'll post that\ninfo tomorrow night.  Until then.......\n\nJason\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.370+0000", "event": "documents", "entityId": 7780, "properties": {"category": "rec.motorcycles", "text": "From: essbaum@rchland.vnet.ibm.com (Alexander Essbaum)\nSubject: Re: Speeding ticket from CHP\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: florida.rchland.ibm.com\nOrganization: IBM Rochester\nLines: 37\n\nIn article <dmatejkaC51DMB.LH6@netcom.com>, dmatejka@netcom.com (Daniel Matejka) writes:\n|> In article <1pq4t7$k5i@agate.berkeley.edu> downey@homer.CS.Berkeley.EDU (Allen B. Downey) writes:\n|> >       Fight your ticket : California edition by David Brown 1st ed.\n|> >       Berkeley, CA : Nolo Press, 1982\n|> >\n|> >The second edition is out (but not in UCB's library).  Good luck; let\n|> >us know how it goes.\n|> >\n|>   Daniel Matejka writes:\n\n|>   Can you beat this ticket?  Personally, I think it's your Duty As a Citizen\n|> to make it as much trouble as possible for them, so maybe they'll Give Up\n|> and Leave Us Alone Someday Soon.\n|>   The cop was certainly within his legal rights to nail you by guessing\n|> your speed.  Mr. Brown (the author of Fight Your Ticket) mentions an\n|> Oakland judge who convicted a speeder \"on the officer's testimony that\n|> the driver's car sounded like it was being driven at an excessive speed.\"\n\n*cough* *choke*  WHAT?!?  if a cop gave me a ticket for \"sounding\" like\ni was speeding i'd probably show up in court without a lawyer simply\nbecause \"sounding\" like speeding is ridiculous.  if i was found guilty\ni'd appeal and then show up with a lawyer.\n\nif a cop doesn't do one of:\n\nVASCAR (from car or plane)\nRADAR, LIDAR, other electronic speed measuring device\npace me\n\nand i'm within 15mph or so of the limit i'd go to court.  i can accept a\ncop \"seeing\" me going excessively fast (like 25+ over the limit) but\n\"he looked like he was going 70 or so in a 55 zone\" is not \"beyond a\nreasonable doubt\".  granted i may well lose the case but 70 in a 55 measured\nby eye???  take it to court for sure.\n\naxel\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7781, "properties": {"category": "sci.space", "text": "Subject: Space FAQ 03/15 - Data Sources\nFrom: leech@cs.unc.edu (Jon Leech)\nExpires: 6 May 1993 19:55:35 GMT\nOrganization: University of North Carolina, Chapel Hill\nKeywords: Frequently Asked Questions\nSupersedes: <data_730956427@cs.unc.edu>\nNNTP-Posting-Host: mahler.cs.unc.edu\nLines: 463\n\nArchive-name: space/data\nLast-modified: $Date: 93/04/01 14:39:07 $\n\nONLINE AND OTHER SOURCES OF IMAGES, DATA, ETC.\n\n\nINTRODUCTION\n\n    A wide variety of images, data, catalogs, information releases, and\n    other material dealing with space and astronomy may be found on the net.\n    A few sites offer direct dialup access or remote login access, while the\n    remainder support some form of file transfer. Many sites are listed as\n    providing 'anonymous FTP'. This refers to the File Transfer Protocol on\n    the Internet. Sites not connected to the Internet cannot use FTP\n    directly, but there are a few automated FTP servers which operates via\n    email. Send mail containing only the word HELP to ftpmail@decwrl.dec.com\n    or bitftp@pucc.princeton.edu, and the servers will send you instructions\n    on how to make requests.\n\n    The sources with the broadest selection of material are the NASA Ames\n    SPACE archive and the National Space Science Data Center.\n\n    Don't even ask for images to be posted to the net. The data volume is\n    huge and nobody wants to spend the time on it.\n\n\nVIEWING IMAGES\n\n    The possible combinations of image formats and machines is forebodingly\n    large, and I won't attempt to cover common formats (GIF, etc.) here. To\n    read PDS and VICAR (and many other) formats on Unix systems running X,\n    use XV 2.11, available by anonymous FTP from export.lcs.mit.edu\n    (18.24.0.12) in contrib/xv-2.11.tar.Z and the other standard X11 FTP\n    sites.\n\n    The FAQ for the Usenet group alt.binaries.pictures discusses image\n    formats and how to get image viewing software. A copy of this document\n    is available by anonymous FTP from the Usenet FAQ archives at\n    pit-manager.mit.edu (18.72.1.58), in directory\n    pub/usenet/alt.binaries.pictures.\n\n\nONLINE ARCHIVES\n\n    NASA AMES\n\n    Extensive archives are maintained at NASA Ames and are available via\n    anonymous FTP or an email server. These archives include many images and\n    a wide variety of documents including this FAQ list, NASA press\n    releases, shuttle launch advisories, and mission status reports. Please\n    note that these are NOT maintained on an official basis.\n\n    FTP users should connect to ames.arc.nasa.gov (128.102.18.3) and look in\n    pub/SPACE. pub/SPACE/Index contains a listing of files available in the\n    archive (the index is about 200K by itself).\n\n    To access the archives by email, send a letter to\n    archive-server@ames.arc.nasa.gov (or ames!archive-server). In the\n    subject of your letter (or in the body), use commands like:\n\n\tsend SPACE Index\n\tsend SPACE SHUTTLE/ss01.23.91.\n\n    The capitalization of the subdirectory names is important. All are in\n    caps. Only text files are handled by the email server at present; use\n    one of the FTP email servers described in the introduction to this\n    section for images or programs.\n\n    The Magellan Venus and Voyager Jupiter, Saturn, and Uranus CD-ROM image\n    disks have been put online in the CDROM and CDROM2 directories. The\n    disks will be rotated on a weekly basis. Thousands of images are\n    available in these collections.\n\n    The GIF directory contains images in GIF format. The VICAR directory\n    contains Magellan images in VICAR format (these are also available in\n    the GIF directory). A PC program capable of displaying these files is\n    found in the IMDISP directory (see the item \"VIEWING IMAGES\" below).\n\n    The NASA media guide describes the various NASA centers and how to\n    contact their public affairs officers; this may be useful when pursuing\n    specific information. It's in MISC/media.guide.\n\n    Any problems with the archive server should be reported to Peter Yee\n    (yee@ames.arc.nasa.gov).\n\n\n    NASA ASTROPHYSICS DATA SYSTEM\n\n    The ADS is a distributed data retrieval system which is easy to use and\n    provides uniform access to ground-based and space-based astronomy data\n    from NASA data centers across the country. It currently has over 140\n    data catalogs of radio, infrared, optical, UV, and X-ray data which can\n    be queried by position or any other parameter in the catalog. The ADS\n    also provides tools to manipulate and plot tabular results. In addition,\n    ADS has a Beta version of an Abstracts Service which allows users to\n    query over 125,000 abstracts of astronomy papers since 1975 by authors,\n    keywords, title words, or abstract text words.\n\n    ADS use requires direct Internet access. For more info and to sign up to\n    become a user, email ads@cuads.coloradu.edu. The User's Guide and\n    \"QuickStart\" Guide are available by anonymous FTP to sao-ftp.harvard.edu\n    in directory pub/ads/ADS_User_Guide (PostScript files).\n\n    Contact Carolyn Stern Grant (stern@cfa.harvard.edu).\n\n\n    NASA JET PROPULSION LAB (MISSION INFORMATION AND IMAGES)\n\n    pubinfo.jpl.nasa.gov (128.149.6.2) is an anonymous FTP site operated by\n    the JPL Public Information Office, containing news releases, status\n    reports, fact sheets, images, and other data on JPL missions. It may\n    also be reached by modem at (818)-354-1333 (no parity, 8 data bits, 1\n    stop bit).\n\n    Contact newsdesk@jplpost.jpl.nasa.gov or phone (818)-354-7170.\n\n\n    NASA LANGLEY (TECHNICAL REPORTS)\n\n    techreports.larc.nasa.gov is an anonymous FTP site offering technical\n    reports. To get started, cd to directory pub/techreports/larc/92 and\n    retrieve files README and abstracts.92. Most files are compressed\n    PostScript. The reports are also in a WAIS database with the following\n    description:\n\n\t(:source\n\t :version 3\n\t :ip-name \"techreports.larc.nasa.gov\"\n\t :tcp-port 210\n\t :database-name \"nasa-larc-abs\"\n\t :cost 0.00\n\t :cost-unit :free\n\t :maintainer \"M.L.Nelson@LaRC.NASA.GOV\"\n\t :description \"NASA Langley Research Center Technical Reports\n\n    Contact tr-admin@techreports.larc.nasa.gov.\n\n\n    NASA SPACELINK\n\n    SpaceLink is an online service located at Marshall Space Flight Center\n    in Huntsville, Alabama. The system is specifically designed for\n    teachers. The data base is arranged to provide easy access to current\n    and historical information on NASA aeronautics, space research, and\n    technology transfer information. Also included are suggested classroom\n    activities that incorporate information on NASA projects to teach a\n    number of scientific principles. Unlike bulletin board systems, NASA\n    Spacelink does not provide for interaction between callers. However it\n    does allow teachers and other callers to leave questions and comments\n    for NASA which may be answered by regular mail. Messages are answered\n    electronically, even to acknowledge requests which will be fulfilled by\n    mail. Messages are generally handled the next working day except during\n    missions when turnaround times increase. The mail system is closed-loop\n    between the user and NASA.\n\n    SpaceLink also offers downloadable shareware and public domain programs\n    useful for science educators as well as space graphics and GIF images\n    from NASA's planetary probes and the Hubble Telescope.\n\n    You can dial in at (205)-895-0028 (300/1200/2400/9600(V.32) baud, 8\n    bits, no parity, 1 stop bit), or telnet to spacelink.msfc.nasa.gov\n    (128.158.13.250, also known as xsl.msfc.nasa.gov) if you're on the\n    Internet. Anonymous FTP capability (password guest) is now available.\n\n    Most of this information is also available from the Ames server in\n    directory SPACELINK.\n\n\n    NATIONAL SPACE SCIENCE DATA CENTER (NSSDC)\n\n    The National Space Science Data Center is the official clearinghouse for\n    NASA data. The data catalog (*not* the data itself) is available online.\n    Internet users can telnet to nssdca.gsfc.nasa.gov (128.183.36.23) and\n    log in as 'NODIS' (no password). You can also get the catalog by sending\n    email to 'request@nssdc.gsfc.nasa.gov'.\n\n    You can also dial in at (301)-286-9000 (300, 1200, or 2400 baud, 8 bits,\n    no parity, one stop). At the \"Enter Number:\" prompt, enter MD and\n    carriage return. When the system responds \"Call Complete,\" enter a few\n    more carriage returns to get the \"Username:\" and log in as 'NODIS' (no\n    password).\n\n    The system is menu-driven; topics available as of 3/93 are:\n\n\t1   -\tMaster Directory - NASA & Global Change\n\t2   -\tPersonnel Information Management System\n\t3   -\tNimbus-7 GRID TOMS Data\n\t4   -\tInterplanetary Medium Data (OMNI)\n\t5   -\tRequest data and/or information from NSSDC\n\t6   -\tGeophysical Models\n\t7   -\tCANOPUS Newsletter\n\t8   -\tInternational Ultraviolet Explorer Data Request\n\t9   -\tCZCS Browse and Order Utility\n\t10  -\tAstronomical Data Center (ADC)\n\t11  -\tSTEP Bulletin Board Service\n\t12  -\tStandards and Technology Information System\n\t13  -\tPlanetary Science & Magellan Project Information\n\t14  -\tOther Online Data Services at NSSDC\n\t15  -\tCD-ROMS Available at NSSDC\n\n    For users with Internet access, datasets are made available via\n    anonymous FTP once you select the desired datasets from the online\n    catalog. For other users, data may be ordered on CD-ROM and in other\n    formats. Among the many types of data available are Voyager, Magellan,\n    and other planetary images, Earth observation data, and star catalogs.\n    Viewers for Macintosh and IBM systems are also available. As an example\n    of the cost, an 8 CD set of Voyager images is $75. Data may ordered\n    online, by email, or by physical mail. The postal address is:\n\n\tNational Space Science Data Center\n\tRequest Coordination Office\n\tGoddard Space Flight Center\n\tCode 633\n\tGreenbelt, MD  20771\n\n\tTelephone: (301) 286-6695\n\n\tEmail address:\t request@nssdca.gsfc.nasa.gov\n\n\n    SPACE TELESCOPE SCIENCE INSTITUTE ELECTRONIC INFORMATION SERVICE\n\n    stsci.edu (130.167.1.2) has a large amount of information about the\n    Hubble Space Telescope available by anonymous FTP, such as status\n    reports and newsletters, in addition to material oriented towards HST\n    observers and proposers. Get the top level README file to begin with.\n    Contact Pete Reppert (reppert@stsci.edu) or Chris O'Dea\n    (odea@stsci.edu).\n\n\n    STARCAT\n\n    The Space Telescope European Coordination Facility, at ESO/Garching\n    provides on-line access to a huge astronomical database, featuring\n\n\t- Observation log files of several satellites/telescopes\n\t    (IUE,IRAS,HST,NTT...).\n\t- Spectra and images (IUE, HST).\n\t- Most of the astronomical catalogues (SAO, HR, NGC, PPM, IRAS,\n\t    Veron, GSC and many others, more than 50) in a very convenient\n\t    way (give center+radius+kind of objects, and you get the\n\t    corresponding files!).\n\n    Log on as ``starcat'' (no password) on node stesis.hq.eso.org\n    (134.171.8.100) or on STESIS (DECnet). The files created can be\n    retreived by FTP. Contact: Benoit Pirenne, bpirenne@eso.org (phone +49\n    89 320 06 433) at ST-ECF\n\n\n    ASTRONOMICAL DATABASES\n\n    The full SAO stellar database is *NOT* available online, probably due to\n    the 40 MB size. It may be ordered on magnetic tape from the NSSDC. A\n    subset containing position and magnitude only is available by FTP (see\n    \"Astronomy Programs\" below).\n\n    nic.funet.fi (128.214.6.100) has a large collection of astronomical\n    programs for many types of computers, databases of stars and deep sky\n    objects, and general astronomy information in directory /pub/astro. This\n    site is mainly for European users, but overseas connections are\n    possible.\n\n    The Ames archives contain a database of 8,436 galaxies including name,\n    RA, declination, magnitude, and radial velocity in MISC/galaxy.dat.\n    Supplied by Wayne Hayes (wayne@csri.utoronto.ca).\n\n    iris1.ucis.dal.ca (129.173.18.107) has a number of GIFs from Voyager,\n    Hubble, and other sources available by anonymous FTP in pub/gif (most of\n    this data is also in SPACE/GIF on the Ames server). Please restrict\n    access to 5pm - 8am Atlantic time.\n\n    pomona.claremont.edu has the Yale Bright Star catalog for anonymous FTP\n    in directory [.YALE_BSC]. Contact James Dishaw\n    (jdishaw@hmcvax.claremont.edu).\n\n    The Hubble Guide Star catalog is available on CD-ROM for the Mac and PC\n    for $49.95 US (catalog # ST101).\n\n\tAstronomical Society of the Pacific\n\t390 Ashton Ave.\n\tSan Francisco, CA 94112\n\tPhone: (415) 337-2624 9 AM - 3 PM Pacific Time\n\tFAX: (415) 337-5205\n\n    For German (and possibly other European) readers, Jost Jahn has a\n    service to distribute astronomical data to interested amateurs at cost.\n    About 30-40 catalogs are available for DM 6..8/disk. Several floppy disk\n    formats are available. Because of the expense of receiving email on his\n    system, he asks that you contact him by physical mail:\n\n\tJost Jahn\n\tNeustaedter Strasse 11\n\tW-3123 Bodenteich\n\tGERMANY\n\tPhone: FRG-5824-3197\n\n\n    ASTRONOMY PROGRAMS\n\n    Various astronomy-related programs and databases posted to the net in\n    the past are archived for anonymous FTP at multiple sites, including\n    ftp.uu.net (137.39.1.9). Also see the ASTRO-FTP list posted to sci.astro\n    monthly, which is more complete than this list.\n\n    Astonomical/Space-related sources of interest in comp.sources.unix:\n\n    Volume 8:\t    phoon\tmoon phase and date routines\n    Volume 12,13:   starchart\tstarchart program & Yale Star data\n    Volume 15:\t    moontool\tshows moon phase picture on Suns\n    Volume 16:\t    sao\t\treduced SAO catalog\n\n    Astonomical/Space-related sources of interest in comp.sources.misc:\n\n    Volume  8:\t    moon\tanother moon phase program\n    Volume 11:\t    starchart\tstarchart program, version 3.2\n    Volume 11:\t    n3emo-orbit orbit: track earth satellites\n    Volume 12:\t    starchart2\tstarchart program, update to version 3.2.1\n    Volume 13:\t    jupmoons\tplotter for Jupiter's major moons [in perl]\n    Volume 13:\t    lunisolar\tlunisolar (not sure what this does)\n    Volume 14:\t    ephem-4.21\tastronomical ephemeris, v4.21\n    Volume 14:\t    n3emo-orbit patch to orbit 3.7\n    Volume 18:\t    planet\tplanet generation simulator\n\n    Elwood Downey (e_downey@tasha.cca.cr.rockwell.com), the author of\n    \"ephem\", has offered to mail copies to people who can't find it on one\n    of the archives.\n\n    XSAT, an X Window System based satellite tracking program, is\n    available by anonymous FTP from export.lcs.mit.edu (18.24.0.12) in\n    contrib/xsat1.0.tar.Z. Contact Dave Curry (davy@ecn.purdue.edu)\n    for more information.\n\n    Xsky, a computerized sky atlas for the X Window System, is available for\n    anonymous FTP on arizona.edu in the directory [.SOFTWARE.UNIX.XSKY] as\n    xsky.tarz. Contact Terry R. Friedrichsen (terry@venus.sunquest.com) for\n    more information.\n\n    The \"Variable Stars Analysis Software Archive\" is available via\n    anonymous FTP from kauri.vuw.ac.nz (130.195.11.3) in directory\n    pub/astrophys. This is intended for specialists in this field, and they\n    would appreciate people from outside New Zealand confining their FTP\n    access to the astrophys directory, as they pay a significant amount for\n    Internet access. Contents are relatively sparse at present due to the\n    youth of the archive - contributions are encouraged. Contact the archive\n    administrator, Timothy Banks (bankst@kauri.vuw.ac.nz) for more\n    information.\n\n    The \"IDL Astronomy Users Library\" is available by anonymous FTP from\n    idlastro.gsfc.nasa.gov (128.183.57.82). This is a central repository for\n    general purpose astronomy procedures written in IDL, a commercial image\n    processing, plotting, and programming language. Contact Wayne Landsman\n    (landsman@stars.gsfc.nasa.gov) for more information.\n\n\n    ORBITAL ELEMENT SETS\n\n    The most recent orbital elements from the NASA Prediction Bulletins are\n    carried on the Celestial BBS, (513)-427-0674. Documentation and tracking\n    software are also available on this system. The Celestial BBS may be\n    accessed 24 hours/day at 300, 1200, or 2400 baud using 8 data bits, 1\n    stop bit, no parity.\n\n    Orbital element sets are available via anonymous FTP from the\n    following sites:\n\n    archive.afit.af.mil (129.92.1.66)\t    NASA,TVRO,Shuttle\n    directory: /pub/space\n\n    ftp.funet.fi (128.214.6.100)\t    NASA,TVRO,Molczan,CelBBS,\n    directory: /pub/astro/pc/satel\t    Shuttle (*)\n\n    kilroy.jpl.nasa.gov (128.149.1.165)     NASA,Molczan\n    directory: /pub/space/\n\n\n    SPACE DIGEST ARCHIVES\n\n    Copies of back issues of Space Digest are archived on\n    LISTSERV@UGA.BITNET. Send mail containing the message \"INDEX SPACE\" to\n    get an index of files; send it the message \"GET filename filetype\" to\n    get a particular file.\n\n\nLANDSAT AND NASA PHOTOS\n\n    You can get black-and-white 1:1M prints, negatives, or positives for\n    $10, $18, $12 respectively for any Landsat data more than 2 years old\n    from EDC, (Eros (Earth Resources Orbiting Satellite) Data Center). Call\n    them at (605)-594-6511. You get 80 meter resolution from the MSS\n    scanner, 135x180 kilometers on a picture 135x180 mm in size. I think you\n    have to select one band from (green, red, near IR, second near IR), but\n    I'm not sure. Digitial data is also available at higher prices.\n\n    Transparencies of all NASA photos available to the public can be\n    borrowed from the NASA photo archive; you can have copies or prints\n    made.\n\n\t NASA Audio-Visual Facility\n\t 918 North Rengstorff Ave\n\t Mountain View, CA  94043\n\t (415)-604-6270\n\n\nPLANETARY MAPS\n\n    The USGS address for maps of the planets is:\n\n    U.S. Geological Survey,\n    Distribution Branch,\n    Box 25286, Federal Center, Bldg. 41\n    Denver, CO 80225\n\n    Maps cost $2.40 to $3.10 per sheet (a few come in sets of 2 or 3 sheets).\n\n    The best global maps of Mars based on Viking images are 1:15,000,000\n    scale in 3 sheets. These maps are:\n\n    I-1535 (2 sheets only) - relief, albedo, names\n    I-1535\n    I-1618 (3 sheets) - relief, names\n    I-2030 (3 sheets) - relief, topographic contours\n    I-1802-A,B,C (3 sheets) - geology\n\n    There are many other maps as well: 30 sheets at 1:5,000,000 scale in\n    relief, albedo, geology, photomosaic forms (not all 30 sheets available\n    in all formats); 140 sheets at 1:2,000,000 scale as photomosaics of the\n    whole planet, about 100 sheets of interesting sites at 1:500,000 scale\n    in photomosaic format, and lots of special sheets.\n\n    Then there are maps of Mercury, Venus, the Moon, the four Galilean\n    Satellites, six moons of Saturn and five of Uranus. [Phil Stooke\n    (stooke@vaxr.sscl.uwo.ca), the author of this item, has offered to\n    respond to email requests for information on any topic relating to lunar\n    and planetary maps.]\n\n\nCOMETARY ORBIT DATA\n\n    The Central Bureau for Astronomical Telegrams and the Minor Planet\n    Center announce the sixth edition of the Catalogue of Cometary Orbits in\n    IAU Circular 4935. The catalogue contains 1292 entries which represent\n    all known comets through November 1989 and is 96 pages long.\n    Non-subscribers to the Circulars may purchase the catalogue for $15.00\n    while the cost to subscribers is $7.50. The basic catalogue in ASCII\n    along with a program to extract specific orbits and calculate\n    ephemerides is available on MS-DOS 5.25-inch 2S2D diskette at a cost of\n    $75.00 (the program requires an 8087 math coprocessor). The catalogue\n    alone is also available by e-mail for $37.50 or on magnetic tape for\n    $300.00.\n\n    Except for the printed version of the catalogue, the various magnetic\n    media or e-mail forms of the catalogue do not specifically meantion\n    non-subscribers. It is possible that these forms of the catalogue may\n    not be available to non-subscribers or that their prices may be more\n    expensive than those given. Mail requests for specific information and\n    orders to:\n\n\tCentral Bureau for Astronomical Telegrams\n\tSmithsonian Astrophysical Observatory\n\tCambridge, MA 02138, USA\n\n\nNEXT: FAQ #4/15 - Performing calculations and interpreting data formats\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7782, "properties": {"category": "rec.sport.baseball", "text": "From: pjtier01@ulkyvx.louisville.edu\nSubject: Re: Phills vs  Pirates\nLines: 28\nNntp-Posting-Host: ulkyvx.louisville.edu\nOrganization: University of Louisville\n\n>>>$ mlb -m pit phi\n>>>           Monday,  5/10 Pittsburg    at Philadelphia (5:35 pm) \n>>>          Tuesday,  5/11 Pittsburg    at Philadelphia (5:35 pm) \n>>>        Wednesday,  5/12 Pittsburg    at Philadelphia (5:35 pm) \n>>>           Friday,  6/25 Philadelphia at Pittsburg    (5:35 pm) \n>>>         Saturday,  6/26 Philadelphia at Pittsburg    (5:05 pm) \n>>>           Sunday,  6/27 Philadelphia at Pittsburg    (11:35 am) \n>>>           Friday,  7/30 Pittsburg    at Philadelphia (5:35 pm) \n>>>         Saturday,  7/31 Pittsburg    at Philadelphia (5:05 pm) \n>>>           Sunday,  8/ 1 Pittsburg    at Philadelphia (11:35 am) \n>>>           Monday,  9/27 Philadelphia at Pittsburg    (5:35 pm) \n>>>          Tuesday,  9/28 Philadelphia at Pittsburg    (5:35 pm) \n>>>        Wednesday,  9/29 Philadelphia at Pittsburg    (5:35 pm) \n>>>         Thursday,  9/30 Philadelphia at Pittsburg    (5:35 pm) \n>> \n>> \n>> \tAre these times correct??\n>> \n>> \t\tThey seem as if they are 2 hrs ahead of the usual tiems\n>> for these two teams.\n>> \n> \n> The origin of that first message was Boise, which is on Central time.\n>  \n>                                                                    P. Tierney\n\nWhoops!  I meant Mountain Time.\n                                                                     P. Tierney\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7783, "properties": {"category": "sci.med", "text": "From: rind@enterprise.bih.harvard.edu (David Rind)\nSubject: Re: centrifuge\nOrganization: Beth Israel Hospital, Harvard Medical School, Boston Mass., USA\nLines: 18\nDistribution: usa\nNNTP-Posting-Host: enterprise.bih.harvard.edu\n\nIn article <C5JsM5.Hrs@lznj.lincroftnj.ncr.com> rjf@lzsc.lincroftnj.ncr.com\n (51351[efw]-Robert Feddeler(MT4799)T343) writes:\n\n>: Could somebody explain to me what a centrifuge is and what it is\n>: used for? I vaguely remembre it being something that spins test tubes\n>: around really fast but I cant remember why youd want to do that?\n\n>Purely recreational.  They get bored sitting in that\n>rack all the time.\n\nNo, this is wrong.  The purpose is to preserve the substances in\nthe tubes longer by creating relativistic speeds and thus\ntime dilatation.  Of course, by slowing the subjective time of\nthe test tubes they get less bored, which is probably what you\nwere thinking of.\n-- \nDavid Rind\nrind@enterprise.bih.harvard.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7784, "properties": {"category": "misc.forsale", "text": "From: walljm@sage.cc.purdue.edu (Joe Wall)\nSubject: Incredible Car...Incredible Price\nArticle-I.D.: mentor.C52vIy.8Do\nDistribution: usa\nOrganization: Purdue University Computing Center\nLines: 18\n\nMy brother is preparing to pay another year \nof college expenses and asked me to post this.  \n\n1987 Alfa Romeo\n     Gold Milano Model\n\n     V-6 Engine\n     Power Everything!\n\n     Seats 4 comfortably\n     Looks / runs great\n\n     $3,600 O.B.O.\n\nContact:  Brian Wall\n          (214) 393-1216\n\nif interested  (Dallas Area)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7785, "properties": {"category": "misc.forsale", "text": "From: forsythe@leland.Stanford.EDU (David Michael Goldberger)\nSubject: FOR SALE:  MAC CLASSIC AND STYLEWRITER 1\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 6\n\nI am selling my Macintosh Classic and Stylewriter 1 to the highest bidder.\nYou can reach me at 415 626-5869 (San Francisco)), or via email at\n\nforsythe@leland.stanford.edu.\n\n-David Goldberger\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7786, "properties": {"category": "soc.religion.christian", "text": "From: trajan@cwis.unomaha.edu (Stephen McIntyre)\nSubject: Re: Atheists and Hell\nOrganization: University of Nebraska at Omaha\nLines: 52\n\natterlep@vela.acs.oakland.edu  writes:\n\n>   Hello,\n\n>   I have seen two common threads running through postings by atheists on\n> the newsgroup, and I think that they can be used to explain each other.  \n> Unfortunately I don't have direct quotes handy...\n\n> 1) Atheists believe that when they die, they die forever.\n\nTrue to a point.  If you were to ask a Buddhist atheist...\n\n> 2) A god who would condemn those who fail to believe in him to eternal death\n>    is unfair.\n\n>   I don't see what the problem is!  To Christians, Hell is, by definition, \n> eternal death--exactly what atheists are expecting when they die.  There's no\n> reason Hell has to be especially awful--to most people, eternal death is bad\n> enough.\n\nActually, yes and no, Hell is eternal death.  Actually, the way \n     I've had it related to me, it's more of an eternal damnation,\n     where sinners will feel the licking flames of Hell.  If I\n     supposedly can feel these flames, I would assume I'm still\n     alive, but suffering and away from God.\n\n>   Literal interpreters of the Bible will have a problem with this view, since\n> the Bible talks about the fires of Hell and such.  Personally, I don't think\n> that people in Hell will be thrust into flame any more than I expect to Jesus\n> with a double-edged sword issuing from his mouth--I treat both these state-\n> ments as metaphorical.\n\nI believe Jehovah's Witnesses have a similar view, where the body\n     sleeps for ever...\n\nI don't have a problem with being condemned to Hell either.  The\n     way I see it, if God wants to punish me for being honest in\n     my skepticism (that is, for saying he doesn't exist), He\n     certainly wouldn't be changing His nature.  Besides, I would\n     rather spend an eternity in Hell than be beside God in Heaven\n     knowing even one man would spend his \"eternal life\" being\n     scorched for his wrongdoings...\n\nStephen\n\n    _/_/_/_/  _/_/_/_/   _/       _/    * Atheist\n   _/        _/    _/   _/ _/ _/ _/     * Libertarian\n  _/_/_/_/  _/_/_/_/   _/   _/  _/      * Pro-individuality\n       _/  _/     _/  _/       _/       * Pro-responsibility\n_/_/_/_/  _/      _/ _/       _/ Jr.    * and all that jazz...\n\n-- \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7787, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ebosco@us.oracle.com (Eric Bosco)\nSubject: Re: Help with changing Startup logo\nReply-To: ebosco@us.oracle.com\nDistribution: usa\nOrganization: Oracle Corp., Redwood Shores CA\nLines: 32\nNntp-Posting-Host: monica.us.oracle.com\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\n\nIn article <1rgtba$gtn@access.digex.net> farley@access.digex.com (Charles  \nU. Farley) writes:\n> \n> I know this is probably a FAQ, but...\n> \n> I installed the s/w for my ATI graphics card, and it bashed my Windows\n> logo files.  When I start Windows now, it has the 3.0 logo instead of\n> the 3.1 logo.\n> \n> I thought the files that controlled this were\n> \n> \\WINDOWS\\SYSTEM\\VGALOGO.RLE\n> \\WINDOWS\\SYSTEM\\VGALOGO.LGO\t\n> \n> I restored these files, but it didn't change the logo.  Anyone know what\n> the correct files are?\n> \n> Thanks.\n> \n\nSomewhere (ftp.cica.indiana.edu or SIMTEL20 mirror) there is a program  \ncalled winlogo.zip that does the trick. It works great. I believe the  \nreason why you can't change the files you mentioned is that the logo is  \nactually imbeded into the windows executable (Somebody please  \ncorrect/expand on this)\n\n-Eric\n\n> \n> -- \n> farley@access.digex.com  <Charles U. Farley>\n> Average IQ of Calgary Board of Ed. Employee: 65\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7788, "properties": {"category": "rec.sport.hockey", "text": "From: dvb@ick (David Van Beveren)\nSubject: Re: NHL Team Captains\nOrganization: Sunsoft Inc., Los Angeles, CA.\nLines: 16\nNNTP-Posting-Host: ick\nX-Newsreader: Tin 1.1 PL3\n\ncolling@ann-arbor.applicon.slb.com (Michael Collingridge) writes:\n: \n: And, while we are on the subject, has a captain ever been traded, \n: resigned, or been striped of his title during the season? Any other \n: team captain trivia would be appreciated.\n: \n\nLuc Robitaille was captain of the Kings the first third of the season,\nuntil The Great One came back from his disc injury. It was kind of\nawkward, but Melrose appointed (anointed?) TGO as captain immediately upon\nhis return, after which he did not score a goal for something like 10\ngames.\n\nI think Luc should have remained Captain all season.\n\ndvb\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7789, "properties": {"category": "talk.religion.misc", "text": "From: popec@brewich.hou.tx.us (Pope Charles)\nSubject: Re: Freemasonry and the Southern Baptist Convention\nOrganization: The Brewers' Witch BBS, +1 713 272 7350, Brewich.Hou.TX.US\nLines: 72\n\nlowell@locus.com (Lowell Morrison) writes:\n\n> In article <1qv82l$oj2@usenet.INS.CWRU.Edu> ch981@cleveland.Freenet.Edu (Tony\n> >\n> >\n> >     With the Southern Baptist Convention convening this June to consider\n> >the charges that Freemasonry is incompatible with christianity, I thought\n> >the following quotes by Mr. James Holly, the Anti-Masonic Flag Carrier,\n> >would amuse you all...\n> >\n> >\n> >     The following passages are exact quotes from \"The Southern \n> >Baptist Convention and Freemasonry\" by James L. Holly, M.D., President\n> >of Mission and Ministry To Men, Inc., 550 N 10th St., Beaumont, TX \n> >77706. \n> > \n> <much drivel deleted>\n> >     \"Jesus Christ never commanded toleration as a motive for His \n> >disciples, and toleration is the antithesis of the Christian message.\"\n> >Page 30. \n> > \n> >     \"The central dynamic of the Freemason drive for world unity \n> >through fraternity, liberty and equality is toleration. This is seen \n> >in the writings of the 'great' writers of Freemasonry\". Page 31. \n> <more drivel deleted>\n> >     I hope you all had a good laugh! I know *I* did! <g>,\n> >\n> >\n> >Tony   \n> A Laugh?  Tony, this religeous bigot scares the shit out of me, and that\n> any one bothers to listen to him causes me to have grave doubts about the\n> future of just about anything.  Shades of the Branch Davidians, Jim Jones,\n> and Charlie Manson.\n> \n> --Uncle Wolf\n> --Member Highland Lodge 748 F&AM (Grand Lodge of California)\n> --Babtized a Southern Babtist\n> --And one who has beliefs beyond the teachings of either.\n> \n> > \n> > \n> \n> \n\n\nNot to worry.  The Masons have been demonized and harrassed by almost \nevery major Xian church there is.  For centuries now.  And still they \nstand.  They wil withstand the miserable Southern Boobtists, I am sure.\nThey may even pick up a little support as people start to listen to the \nBoobtists and realize that subtracting the obvious lies and claims of \nSatanism that the Masons sound pretty good by comparison.  One thing is \nknown.  A sizable proportion of Southern Babtists are Masons!  And the \nMasons have already fired back in their own magazines against the \nBoobtist Witch-hunt.\n  Since the Consrervatives have already been a divisive element with \ntheir war on Boobtist moderates and liberals, they may now start in on \ntheir Mason/Boobtist brothers and hasten their own downfall as more and \nmore Southern Boobtists realize their church can't stand being run by a \nhandful of clowns looking for holy civil wars and purity tests and drop \n'em out of the leadership positions they have taken over.\n  So as far as I am concerned, the louder, ruder, and more outrageous \nan Anti-Masonic Crusade these old goats mount, the better.\n\nPop some pocorn and get a center row seat.  The circus is about to begin.\nAnd, Oh Look!  HERE COME THE CLOWNS!\n\n\nPope Charles    Slack!\n\n------------------\npopec@brewich.hou.tx.us (Pope Charles)\nOrigin: The Brewers' Witch BBS -- Houston, TX -- +1 713 272 7350\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7790, "properties": {"category": "talk.politics.mideast", "text": "From: spinoza@next06wor.wam.umd.edu (Yon Bonnie Laird of Cairn Robbing)\nSubject: Re: ISLAM BORDERS vs Israeli borders\nNntp-Posting-Host: next03wor.wam.umd.edu\nOrganization: Workstations at Maryland, University of Maryland, College Park\nLines: 37\n\nIn article <C50wJJ.J4r@newsflash.concordia.ca> ilyess@ECE.Concordia.CA  \n(Ilyess Bdira) writes:\n> > 1)why do jews who don't even believe in God (as is the case with many\n> of the founders of secular zionism) have a right in Palestine more\n> than the inhabitants of Palestine, just because God gave you the land?\nG-d has nothing to do with it. Some of the land was in fact given to the  \nJews by the United Nations, quite a bit of it was purchased from Arab  \nabsentee landlords. Present claims are based on prior ownership (purchase  \nfrom aforementioned absentee landlords) award by the United Nations in the  \npartition of the Palestine mandate territory, and as the result of  \ndefensive wars fought against the Egyptians, Syrians, Jordanians, et al.\n\n***\n> 2)Why do most of them speak of the west bank as theirs while most of\n> the inhabitants are not Jews and do not want to be part of Israel?\nFirst, I should point out that many Jews do not in fact agree with the  \nidea that the West Bank is theirs. Since,  however, I agree with those who  \nclaim the West Bank, I think I can answer your question thusly: the West  \nbank was what is called the spoils of war. Hussein ordered the Arab Legion  \nto attack Israel, which was a poor move, seeing as how the Israelis  \npromptly kicked his butt. The territory is therefore forefeit.  Retaining  \npossession of ALL of the West bank is  not desirable, but it beats  \nnational suicide for the Israelis. Put another way, one could ask why it  \nis that so many Palestinians seem to think that Tel-Aviv belongs to them  \nand the future state of Palestine. As long as this state of affairs  \ncontinues, it seems that to give the Palestinians a place from which they  \ncan launch attacks on Jews is a real poor idea. Giving up the entire West  \nBank would be idiotic froma security standpoint.  In addition, there is  \nthe small matter of Jerusalem, which is considered to be part of the West  \nBank. The chances of the Israelis giving up Jerusalem are nil. Even  \nleftists who think Yasser is a really cool dude, like Yossi Sarid, aren't  \ngoing to propose giving up Jerusalem. If he did, he'd get run out of town  \non a rail.\n\n\n\t\t\t\t\tchag sameach!\n\t\t\t\t\t\tjeff\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7791, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <<Pompous ass\nOrganization: California Institute of Technology, Pasadena\nLines: 21\nNNTP-Posting-Host: punisher.caltech.edu\n\nAndrew Newell <TAN102@psuvm.psu.edu> writes:\n\n>>>Sure, they may fall back on other things, but this is one they\n>>>should not have available to use.\n>>It is worse than others?\n>Worse?  Maybe not, but it is definately a violation of the\n>rules the US govt. supposedly follows.\n\nOh?\n\n>>>For the motto to be legitimate, it would have to read:\n>>>   \"In god, gods, or godlessness we trust\"\n>>Would you approve of such a motto?\n>No.  ...not unless the only way to get rid of the current one\n>was to change it to such as that.\n\nWhat is wrong with *this* motto, now?  If you wouldn't approve of\neven that one, I am beginning to think that you just have something\nagainst mottos in general.  What do you think of \"E plurbis unum?\"\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7792, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: terryh@cae.wisc.edu (Terry Henning)\nSubject: Help with a Windows drum machine!\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 21\n\nHello,\n\nI'm trying to get a drum program to work that I downloaded from\nftp.cica.indiana.edu in the pub/pc/win3/sounds directory.  It's called\ndrum.zip.  \n\nI have an ATI Stereo FX card with the latest Windows drivers installed. \nWhen I try to run the drum program, it reports that a MIDI device is not\ninstalled, however the drivers utility in the control panel reports that it\nis installed.  \n\nAnyone have any idea how to set up the MIDI device so that the drum program\nwill work with my setup?  What I'm trying to do is use my computer as a\nmetronome.  Someone suggested that I try one of the drum machines that are\ncirculating around out there.  Any help would be appreciated.\n\nThanks,\n\nTerry\n\nterryh@cae.wisc.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7793, "properties": {"category": "talk.politics.guns", "text": "From: n9020351@henson.cc.wwu.edu (James Douglas Del-Vecchio)\nSubject: Re: Don't knock the Glock (was Re: My Gun is like my Am Ex Card)\nOrganization: Western Washington University\nDistribution: usa\nLines: 20\n\n\n\n>In article <1993Apr15.152834.16638@mksol.dseg.ti.com>, pyron@skndiv.dseg.ti.\ncom\n\n\n>>Seriously.  There is no difference in the safeties betweena Glock and any DA\n>>revolver.  Intellectually, think of the Glock as a very high cap revolver.\n>>Ignoring stove pipes, misfeeds and all the other bonus exercises that\n>>autoloaders give you, that is.\n\nOn a DA revolver, you get another try on a misfire.  On a pistol where\nthe trigger does not cock the hammer, like a Jennings, or an Astra M400,\nor a Glock, a misfire requires the slide be cycled to get the gun  to\nfunction.\n\nRather than a high capacity revolver, think of a Glock as an Astra M400 \nwith no manual safety and a heavier trigger pull.\n\nJim Del Vecchio\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7794, "properties": {"category": "sci.electronics", "text": "From: johnh@macadam.mpce.mq.edu.au (John Haddy)\nSubject: Re: Help with ultra-long timing\nOrganization: Macquarie University\nLines: 39\nDistribution: world\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\n\nIn article <C513wI.G5A@athena.cs.uga.edu>, mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n|> (1) Don't use big capacitors.  They are unreliable for timing due to\n|> leakage. \n|> \n|> Instead, use a quartz crystal and divide its frequency by 2 40 times\n|> or something like that.\n|> \n|> 1 MHz divided by 2^40 = 1 cycle per 2 weeks, approximately.\n|> \n|> (2) I wouldn't expect any components (other than batteries or electrolytic\n|> capacitors) to fail at -40 C (or -40 F for that matter either :) ).\n|> The battery is going to be your big problem.  Also, of course, your\n|> circuit shouldn't depend on exact values of resistors (which a crystal-\n|> controlled timer won't).\n|> \n\n... Wouldn't a crystal be affected by cold? My gut feeling is that, as a\nmechanically resonating device, extreme cold is likely to affect the\ncompliance (?terminology?) of the quartz, and hence its resonant frequency.\n\n|> -- \n|> :-  Michael A. Covington         internet mcovingt@ai.uga.edu :    *****\n|> :-  Artificial Intelligence Programs       phone 706 542-0358 :  *********\n|> :-  The University of Georgia                fax 706 542-0349 :   *  *  *\n|> :-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **\n\n\nJohnH\n\n----------------------------------------------------------------------------\n\n      |  _  |_   _   |_|  _   _|  _|              Electronics Department\n    |_| (_) | | | |  | | (_| (_| (_| \\/           School of MPCE\n    ---------------------------------/-           Macquarie University\n                                                  Sydney, AUSTRALIA 2109\n\n    Email: johnh@mpce.mq.edu.au, Ph: +61 2 805 8959, Fax: +61 2 805 8983\n\n----------------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7795, "properties": {"category": "sci.electronics", "text": "From: rubin@cis.ohio-state.edu (Daniel J Rubin)\nSubject: Re: arcade style buttons and joysticks\nOrganization: The Ohio State University Dept. of Computer and Info. Science\nLines: 17\nNNTP-Posting-Host: zion.cis.ohio-state.edu\n\n> Hi there,\n> Can anyone tell me where it is possible to purchase controls found\n> on most arcade style games.  Many projects I am working on would\n> be greatly augmented if I could implement them.  Thanx in advance.\n\nTry Parts Express in Dayton, Ohio also.  They have a complete line of \nprofessional arcade buttons, joysticks etc...\n\nThe have a 1-800 number so call 1-800-555-1212 and ask them what the 1-800\nnumber for Part Express in Dayton, Ohio is.  I love the free 1-800 directory \nassistance...\n\n                                                               - Dan\n-- \n             Daniel Joseph Rubin     rubin@cis.ohio-state.edu \n     \n                       GO BENGALS!      GO BUCKS!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7796, "properties": {"category": "talk.politics.guns", "text": "From: Seth Adam Eliot <se08+@andrew.cmu.edu>\nSubject: Re: 2ND AMENDMENT DEAD - GOOD !\nOrganization: Doctoral student, Materials Science and Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 58\nNNTP-Posting-Host: po3.andrew.cmu.edu\nIn-Reply-To: <1993Apr18.001319.2340@gnv.ifas.ufl.edu>\n\nExcerpts from netnews.talk.politics.guns: 18-Apr-93 2ND AMENDMENT DEAD -\nGOOD ! by jrm@gnv.ifas.ufl.edu \n> Yea, there are millions of cases where yoy *say* that firearms\n> 'deter' criminals. Alas, this is not provable. I think that that\n> there are actually *few* cases where this is so. \n\nexcerpted from a letter I wrote a while ago:\n\n     Although less apparent to those who have not researched\nthe facts, personal protection is as legitimate a reason  as\nsport for the private citizen to own a gun.  The most recent\nresearch  is  that  of Dr. Gary Kleck of the  Florida  State\nUniversity  School of Criminology.1  He found that  handguns\nare  more  often  used by victims to defeat  crime  than  by\ncriminals to commit it (645,000 vs. 580,000 respectively  in\nthis  study).  These figures are even more encouraging  when\nyou  consider the number of crimes that never occur  because\nof  the  presence  of a gun in the hands  of  a  law-abiding\nprivate  citizen.  In a National Institute of Justice  study\nof  ten state prisons across the country they found that 39%\nof  the  felons  surveyed had aborted  at  least  one  crime\nbecause  they believed that the intended victim was  armed.,\nand  57% agreed that \"most criminals are more worried  about\nmeeting an armed victim than they are about running into the\npolice.\"2\n     One  of the most heinous of crimes is that against  the\nwomen  of  this country.  It has been my recent  observation\nthat  more  women  are purchasing handguns  for  defense  in\nresponse  to  the  present danger of these  assaults.   This\nshould be taken as encouraging news if the events of Orlando\nFlorida  are any indicator.  In the late 1960's  the  female\npopulace was plagued with a series of brutal assaults;  just\nthe  publicity of the record number of women buying guns and\nobtaining training resulted in an 88% decrease in  rape  for\nthat  area,  the  only city of its size in  the  country  to\nexperience a decrease of crime for that year.  Additionally,\na 1979 US Justice Department study of 32,000 attempted rapes\nshowed  that overall, when rape is attempted, the completion\nrate  is 36%. But when a woman defends herself with  a  gun,\nthe completion rate drops to 3%.\n \n1 G Kleck, Point Blank: Guns and Violence in America Aldine\nde Gruyter, NY, 1991\n2 JD Wright & PH Rossi Armed and Considered Dangerous:  A\nSurvey of Felons and Their Firearms, Aldine de Gruyter, NY,\n1986\n-------\n\n__________________________________________________________________________\n[unlike cats] dogs NEVER scratch you when you wash them. They just\nbecome very sad and try to figure out what they did wrong. -Dave Barry\n           \nSeth Eliot                    Dept of Material Science and Engineering\n                              Carnegie Mellon Univerity,   Pittsburgh, PA\nARPA    :eliot+@cmu.edu       |------------------------------------------\n   or    se08+@andrew.cmu.edu |\nBitnet:  se08%andrew@cmccvb   |      \n------------------------------|\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7797, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: asyvan@solace.hsh.se (Jens Ejvinson)\nSubject: Re: Is 980-1MB/sec. HD transfer slow for 486DX-50 EISA with UltraStor24F\nKeywords: SCSI\nOrganization: Solace Computer Club, Sundsvall, Sweden\nLines: 44\n\nIn <1993Apr6.095127.12261@odin.diku.dk> phantom@diku.dk (Haktan Bulut) writes:\n\n>Hi. I recently switched my old Amiga 500 with a 486DX-50. My computer\n>configuration is :\n\n>486DX-50 Mhz. 8/256 kB EISA (Micronics Motherboard ASIC EISA 50Mhz)\n>16MB Ram\n>ST3283N 248 MB Harddisk, SCSI\n>UltraStor24F EISA Cache Controller\n\n>When I use Norton6.0 Harddisk benchmark, I get a Harddisk data transfer\n>about 980 kb/sec. and sometimes 1MB/sec. Is that good ? I thought\n>that with EISA I could get about 2MB/sec. \n>Somewhere in the manual for my harddisk I have read, that some host \n>adapters need to perform a low-level format to optimize the harddisk \n>performance in that system, do I need that ?\n>A guy I know, gets a HD transfer about 1.2MB/sec, and he has an ST3283A and\n>a ISA 486DX-50, how can a ISA with the same system be faster ?\n\n>Is there anything that I can do to get a speedier harddisk ?\n\n\n1. Dont rely on benchmarks. They often show incorrect due to different\n   TSR programs.\n\n2. SCSI often needs a driver to get the speed from the card.\n\n3. Make sure the card is operating in synchronus mode which is 2x faster.\n\n4. You can disable disconnect and get some kB/s but just to loose the mouse\n   or other int`s when diskaccesing.\n\n(I get 2.3MB/s with DX50 LB and SCSI LB and Maxtor LXT340SY - Coretest)\n(I get 1.3MB/s                                              - Sysinfo)\n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nJens Ejvinson\t\t\t------------------------------\nNackstavagen 32C VII\t\tInternet: Asyvan@Solace.hsh.se\nS-853 52  Sundsvall\t\t------------------------------\nSWEDEN\nTel: +46-(0)60-117775\t\t\t- ACT Sweden -\nFax: Nope!\t\t\t Advanced Computer Technology\nBBS: Not yet...\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7798, "properties": {"category": "soc.religion.christian", "text": "From: gt7122b@prism.gatech.edu (Randal Lee Nicholas Mandock)\nSubject: Re: Why do people become atheists?\nOrganization: Georgia Institute of Technology\nLines: 33\n\nIn article <May.7.01.09.44.1993.14556@athos.rutgers.edu> muirm@argon.gas.organpipe.uug.arizona.edu (maxwell c muir) writes:\n\n>In all candor, I would be happy to be proven wrong [about believing  \n>in atheism].  Problem is, I will have to be _proven_ wrong.\n\nIn mentioning some nonsense about psychology :) and atheism, Bob Muir asks\nthe following question.   \n\n>\tDo I sound \"broken\" to you?\n\nI answer in the affirmative.  Now this answer might sound a little\nintellectually dishonest to Bob, but I think I have been accused before\nof that heinous crime and am man enough to take it.  !-)  What thinking\nperson has not at one time or other been accused of it?   Is it\npolitically correct for Christians to be the only besieged group\npermitted the luxury of arrogance?   \n\nNow I have a question for Bob.  Why in the world would any self-respecting\natheist want to subscribe to a Christian news group?  I have a \ndifficult enough time keeping up with it, and I think I know something\nabout the subject.     \n\nBob reminds me of my roommate.  In order to disbelieve atheism, he says \nhe will need to be proven wrong about it.  Well, I don't even waste \nmy time trying.  I tell him that he'll just have to take my word for it. \nIn response, he tells me he will say an \"atheist's prayer\" for me. \n\nGood luck, Bob.  And, best regards.\n  \n-- \nRandal Lee Nicholas Mandock \nCatechist\ngt7122b@prism.gatech.edu \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7799, "properties": {"category": "rec.autos", "text": "From: wade@nb.rockwell.com (Wade Guthrie)\nSubject: Re: Curious about the Porsche I drove\nOrganization: Rockwell International\nLines: 43\n\nak954@yfn.ysu.edu (Albion H. Bowers) writes:\n\n\n>In a previous article, wade@nb.rockwell.com (Wade Guthrie) says:\n\n>>takaharu@mail.sas.upenn.edu (Taka Mizutani) writes:\n\n>>>In article <1993Apr13.160535.20123@progress.com>, damelio@progress.COM\n>>>(Stephen D'Amelio) wrote:\n\nI wrote:\n>This is consistent with the pre-'74 911.  The engine before that was a 2.2\n>litre (or less, depending on how early you go), and got its power at high\n>revs (starting slowly at about 3K, and jumping up at around 5K) with a \n>narrow band.  The '74 was a 3 litre and had a lot of smog equipment.  If\n>you got much power at all, it'd be better distributed through the rev\n>range.\n\n>Bzzzt.  Wrong answer.  It really depends on whether you are talking model\n>year or date of manufacture.  For instance, mine was a '67, but was\n>manufactured in August of '66.  Prior to 1970 all 911s were 2.o liter.  For\n>the '70 and '71 model years they were 2.2 liter.  for the 1972 and 1973\n>model years they were 2.4 liter _EXCEPT_ for the '73 Carerra RS which was a\n>2.7 liter.  The '74 and later years were easily identified by the new 5 mph\n>bumpers.  Most models in the '74 year were 2.7 lietsr _EXCEPT_ the Carerra\n>RSR which was a 3.0 liter (US Carerras from '74 were 2.7 liter models).  In\n>'78 they went to 3.0 liter and there was only a single model, the SC (think\n>of it as a cross between the S and the Carerra models).  note all the above\n>are based on _MODEL_ year, not date of manufacture.  \n\nI stand corrected.  This is all from memory, mind you  :-)\n\n>As for the rev happy behavior, the earlier cars are even more prone to\n>this.  The 2.4 liter cars used low compression engines, and suffered a bit\n>in this regard.  The early 3.0 liter and 2.7 liter engines also got a good\n>dose of smog gear as well.  The 2.0 and 2.2 liter engines were far and away\n>the quickest revvers of the lot. \n\nYeah, that's what I was trying to say.  No, REALLY!\n-- \nWade Guthrie                     | Trying to program on MS-DOS is like trying\nwade@nb.rockwell.com             | to shave with a chain-saw.\nMe be not speaking for the Rock. |\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.371+0000", "event": "documents", "entityId": 7800, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: elee969@rosie.uh.edu (Brown, William J.)\nSubject: Re: Questions about Windows NT.  Help!\nKeywords: Windows NT, unix, sun sparc\nOrganization: University of Houston\nLines: 42\nNNTP-Posting-Host: rosie.uh.edu\nNews-Software: VAX/VMS VNEWS 1.41\n\nIn article <1993Apr19.154349.10382@cfmu.eurocontrol.be>, rajiev@cfmu.eurocontrol.be (Rajiev Gupta) writes...\n>In article <C562Cq.FC7@ms.uky.edu> shan@ms.uky.edu (Minghua SHAN) writes:\n>>\n   ...stuff deleted\n>>\n>>1. Does Windows NT run on Sun Sparc Server 490?\n>>2. If the answer to question 1 is yes, does it run unix applications\n>>   (such as SAS for unix).\n>>3. Is Windows NT a multiuser OS?\n>>4. When will Windows NT be released?\n>>5. Is there any telephone number that I can call and get more\n>>   info on Win NT?\n>>\n>>Thank you.\n>>\n>>Minghua Shan\n> \n>As far as I have read WIN NT will be supported on Intel, DEC ALPHA and the MIPS R4000\n>series of processors only. I do remember though reading a rumour about Sparc support\n>sometime in the future. I am not sure what you mean by running \"unix applications\".\n>You would have to have SAS for WIN NT (or maybe SAS for WIN16 etc). I have read \n>that MS will anounce avalaibility of WIN NT by end of May 93 (Comdex Spring). Hope\n>this helps.\n> \n>Rajiev Gupta\n> \n>-- \n>Rajiev GUPTA\t\t\tEurocontrol - CFMU\tDisclaimer:\n>rajiev@cfmu.eurocontrol.be\tRue de la Loi 72\tThese are *my* views,\n>Tel: +32 2 729 33 12            B-1040 BRUXELLES\tnot my companies.\n>Fax: +32 2 729 32 16            Belgium\n\n\nAccording to the April issue of PC Magazine (pg. 139), and I quote,\n\n\"Eventually, Windows NT is likely to be ported to every successful RISC\narchitecture.  PowerPC and HP's PA-RISC are the two most likely candidates,\nwith SPARC somewhat less likely because of Sun's relatively strong UNIX\nsoftware base.\"\n\nlater\nbill\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7801, "properties": {"category": "comp.windows.x", "text": "From: m91nen@tdb.uu.se (Nils Engstrom)\nSubject: Help: Event propagation\nOrganization: Department of Scientific Computing, Uppsala University\nLines: 19\n\n\nThe following problem is really bugging me,\nand I would appreciate any help.\n\nI create two windows:\n\nw1 (child to root) with event_mask = ButtonPressMask|KeyPressMask;\nw2 (child to w1) with do_not_propagate_mask = ButtonPressMask|KeyPressMask;\n\n\nKeypress events in w2 are discarded, but ButtonPress events fall through\nto w1, with subwindow set to w2.\n\nFYI, I'm using xnews/olvwm.\n\nAm I doing something fundamentally wrong here?\n\n\t\t\t\tn\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7802, "properties": {"category": "rec.motorcycles", "text": "From: ai598@cleveland.Freenet.Edu (Mike Sturdevant)\nSubject: Carrying crutches (was Re: Living\nArticle-I.D.: usenet.1pqhkl$g48\nReply-To: ai598@cleveland.Freenet.Edu (Mike Sturdevant)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 18\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nIn a previous article, pooder@rchland.vnet.ibm.com (Don Fearn) says:\n\n>\n>When I broke my right leg in two places (not a motorcycle accident -- a \n>_car_ accident; who woulda thunk it?) I put my crutches on Gretchen's rear\n>rack.  I'm getting the metal rod pulled out on Friday and going back on \n>the crutches for six weeks.  I think crutches on the handlebars sound more \n>aesthetically pleasing.  How did you attach them?\n\n\n\tWhen I got my knee rebuilt I got back on the street bike ASAP. I put\nthe crutches on the rack and the passenger seat and they hung out back a\nLONG way. Just make sure they're tied down tight in front and no problemo.\n-- \nGo fast. Take chances.\n\n\tMike S.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7803, "properties": {"category": "sci.crypt", "text": "From: uni@acs.bu.edu (Shaen Bernhardt)\nSubject: Re: Once tapped, your code is no good any more.\nDistribution: na\nOrganization: Boston University, Boston, MA, USA\nLines: 103\n\nIn article <1qpg8fINN982@dns1.NMSU.Edu> amolitor@nmsu.edu (Andrew Molitor) writes:\n>In article <tcmayC5M2xv.JEx@netcom.com>\n>\ttcmay@netcom.com (Timothy C. May) writes:\n>>\n>>But is it any worse than the current unsecure system? It becomes much\n>>worse, of course, if the government then uses this \"Clinton Clipper\"\n>>to argue for restrictions on unapproved encryption. (This is the main\n>>concern of most of us, I think. The camel's nose in the tent, etc.)\n>>\n>\n>\tNot to pick on Mr. May in particular, of course, but isn't this\n>kind of the domino theory? When one little country falls, its neighbor\n>will surely follow, and before you know it, we're all mining salt\n>in Siberia for not turning in our Captain Crunch Secret Decoder Rings.\n\nI wish I could agree with you.  Ask yourself this.  Why would any private\nsector entity wish to buy a crypto system that was KNOWN to be at least\npartially compromised? (Key escrows in this instance)  Why would any\nprivate sector entity wish to buy a crypto system that had not been properly\nevaluated?  (i.e. algorythm not publically released)\nThe answer seems obvious to me, they wouldn't.  There is other hardware out\nthere not compromised.  DES as an example (triple DES as a better one.)\n\nMy suspicion is that the prices will drop dramatically on these non clipper\nsystems.  If not we're in trouble.\n\nGiven that the Clinton administration is not entirely stupid (although we'd like\nto think so) I cannot believe that they have failed to realize this.\nThey know their initiative will fail, much as crippled DES was never taken\nseriously.  The only way their moves can work is by coercion.  You know\nlittle about politics if you don't realize that this is just a first step\nin the next move, it makes NO sense otherwise.  The next move, banning\nor SEVERLY crippling crypto not using the \"Clipper\" system is easily\njustified \"Why would anyone want other encryption unless they were trying\nto subvert the government?  We've provided you with a very secure alternative\nso use it or go to jail/be fined/whatever.\"\nHow can you reconcile the administrations self proclaimed purpose of providing\nlaw enforcement with access to encrypted data without making the clipper system\nthe only crypto available in the U.S... ?  You simply can't, and the administration\nknows it.  Anyone who wanted to keep the govt. out of their hair, be it for\ndrug dealing or whatever, would just buy still available non-clipper systems.\n\nDon't sell our crafty Clinton types short, they can't be THAT stupid.\nEither banning non clipper crypto is the next answer or the administrations\ncollective I.Q. is about that of a potato.\n\nWhy do you think AT&T jumped on so fast?  They know it's going to be big,\nand NOT because it's better.  Right on the face of it, noone will buy the\nstuff that doesn't have to.  AT&T must know this too, THINK MAN, why the\nhell would they jump the gun?\n\n>\tMy interpretation.\n>\n>\tAndrew\n>\n>>-Tim May, whose sig block may get him busted in the New Regime\n>                           ^^^^^^^^^^^^^^^^^^\n>\n>\tIsn't this just a little melodramatic?\n\nI really wonder.\n\nTo wit:  The letter I just sent to Clinton:\n\nThe White House\nOffice of the Press Secretary c/o:\nPresidential Comment Line (fax)\n(202) 456-2461\n \nApril 17, 1993\n \nSir and/or Madam:\n \n \nI must object most strongly to the administrations evolving position on encryption and\ncryptography.  I am shocked at the Clinton regimes increasing lean towards a authoritarian approach with regard to privacy and freedom from government oversight in day to day life.\n \nIt is apparent to me that those who drafted the \"Clipper Chip Proposal\" (which is, incidentally, gaining notoriety as the \"Big Brother Proposal\") are either incredibly ignorant or very sly indeed.  Anyone knowledgeable in the nuances of cryptographic development and research must understand that a key step in the development of a new algorithm, especially one destined for standardization, is the full disclosure of the algorithm to the private and academic sectors.  The proper evaluation of an algorithm dep\n\n\n\n\n\nends on careful scrutiny by these sectors, and only such scrutiny can provide true public confidence in the security of the algorithm.  The assumption that a new algorithm will be accepted based on assurances from \"experts\" without full disclosure is plain ignorance.\n \nIn addition, the assumption that an algorithm will be marketable over other technology, such as DES, when it is characterized by key escrow is lunacy.  It seems an easy step in the logic chain that probable consumers will prefer to purchase equipment not crippled by government key escrow, no matter how \"tamper proof\" the key escrows might be.\n \nI cannot believe that even the least educated policy maker would have failed to realize these flaws.  I can only assume then that the drafters of the \"Clipper Chip Proposal\" knew very well the difficulties of selling a crippled system to the private sector.  The only way this proposal makes any sense, or has any chance of succeeding is in coercion.  Even the language of the proposal makes it painfully clear that the next logical step is the outlawing of other encryption devices and hardware that do not uti\n\n\n\n\n\nlize the \"Big Brother Chip.\"\n \nUnfortunately the public at large is not educated enough on the issue to realize what they are losing.  I expect the Big Brother proposal to encounter little resistance from the American people who you will have so efficiently duped once again with pretty words like \"harmony,\" \"right to encryption,\" and \"voluntary.\"\n \nIt mortifies me that the phrase that seems to be used more and more often to characterize the Clinton administration is \"I can't believe it's happening here.\"  More startling is a question a colleague of mine posed and the realization that everyday it becomes more and more relevant; \"When is the Reichstag fire planned for?\"\n \n \n\t\t\t\t\t\tMost Concerned,\n \n\t\t\t\t\t\t[Signature]\n\t\t\t\t\t\tShaen Logan Bernhardt I\nuni@acs.bu.edu\n\n-- \nuni@acs.bu.edu  ->  Public Keys by finger and/or request\nPublic Key Archives at <pgp-public-keys@junkbox.cc.iastate.edu>\nDF610670F2467B99  97DE2B5C3749148C  Sovereignty is the sign of a brutal past.\nCryptography is not a crime.  Fight the Big Brother Proposal!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7804, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: robertt@vcd.hp.com (Bob Taylor)\nSubject: Re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nOrganization: Hewlett-Packard VCD\nX-Newsreader: Tin 1.1 PL5\nLines: 26\n\nJustin Whitton (ma90jjw%isis@ajax.rsre.mod.uk) wrote:\n: In article <C60EKI.Kvp@vcd.hp.com> edmoore@vcd.hp.com (Ed Moore) writes:\n: \n:    thomas.d.fellrath.1@nd.edu@nd.edu wrote:\n: \n:    I think the ink now used in the DeskJet family is water-fast. \n: \n: I've had pictures ruined by a few drops of rain. These were colour pictures\n: from a DeskJet 500C. Mind you, it could have been acid rain:-)\n\nThe black ink is waterfast, but the color isn't\n\n: \n: I use a BJ10ex. Ink dries fast, but it really doesn't like getting wet.\n: \n: --\n: /-----------------------------------------------------------------------------\\\n: |Justin Whitton at ma90jjw%hermes@uk.mod.relay |Where no man has gone before..|\n: |after August mail ma90jjw@brunel.ac.uk.       \\------------------------------|\n: |Disclaimer: My opinions count for nothing, except when the office is empty.  |\n: |I'm a student => intelligence = 0.                                           |\n: \\-----------------------------------------------------------------------------/\n\nBob Taylor\nHP Vancouver\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7805, "properties": {"category": "rec.autos", "text": "From: bhaskar@orion.me.uiuc.edu (Bhaskar Manda)\nSubject: Re: It's a rush... (was Re: Too fast) \nOrganization: University of Illinois at Urbana\nLines: 16\n\ngwm@spl1.spl.loral.com (Gary W. Mahan) writes:\n>>Why should a good driver be terrified at 130mph? The only thing I fear\n>>going at 130 are drivers, who switch to the left lane without using\n>>either rear-view-mirror or flashers. Doing 130 to 150 ain't a rush\n>>for me, but it's fun and I get where I want to go much faster.\n\n>In defense of the drivers, who are in the right lane.  Here in the states, people simply do not expect when they are driving to be overtaken at a speed differential of 50+mph.  I don't think this is because they are stupid (of course, there are exceptions), they are just programmed because of the 55mph limit. Do you (in the states) when you look in the rear-view ALWAYS calculate future  positions of cars based on a 50+ speed differential.  \n>Dont get me wrong, I love to drive in the left lane fast but when I overtake\n>cars who are on the right, I slow down a tad bit. If I were to rely on the judgement of the other car, to recognize the speed differential, I would be the stupid one.  \n>BTW, If no one else is around, then GO FOR IT!.\n\nKeep up the good work guys.\nAfterall the cops need to be occupied with someone so that lesser\nmortals like us can be left alone.\nBhaskar@orion.me.uiuc.edu\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7806, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dmmatt@cajun\nSubject: Re: Need Windows-logo\nLines: 19\nOrganization: Monsanto Company\n\nIn article <1qjqed$1ft@access.digex.net>, holland@access.digex.com (Brian Holland) writes:\n> Markus Maier (S_MAIER_M@rzmain.rz.uni-ulm.de) wrote:\n> : Hi,\n> \n> : Well I'm searching for the Ms-Windows logo, u know the picture when u\n> : start Windows, in some suitable grafics-format, like gif or jpg,...\n> \n> C:\\windows\\system\\vgalogo.rle.  If my memory serves me correctly,\n> *.rle is a compressed *.bmp format.  \n> \n  An is readable by WinGif, Paintshop Pro, Paint, and god knows how\nmany other programs.\n\n-- \nMike Mattix\nAgricultural Group of Monsanto\nP.O. Box 174\nLuling, LA 70070\nINTERNET Address: dmmatt@bigez.monsanto.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7807, "properties": {"category": "talk.politics.mideast", "text": "From: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nSubject: Re: Freedom In U.S.A.\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nOrganization: Columbia University\nLines: 30\n\nIn article <1993Apr25.182253.1449@Virginia.EDU> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n>\tI don't know where you guys are from but in America\n>such attempts to curtail someones first amendment rights are\n>not appreciated. Here, we let everyone speak their mind\n>regardless of how we feel about it. Take your fascistic\n>repressive ideals back to where you came from.\n\n\nHey tough guy, freedom necessitates responsibility, and\nno freedom is absolute.  \nBTW, to anyone who defends Arafat, read on:\n\n\"Open fire on the new Jewish immigrants, be they from the Soviet\nUnion, Ethiopia or anywhere else....I give you my instructions to\nuse violence against the immigrants.  I willjail anyone who\nrefuses to do this.\"\n\t\t\t\tYassir Arafat, Al-Muharar, 4/10/90\n\nAt least he's not racist!\nJust anti-Jewish\n\n\nPete\n\n\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7808, "properties": {"category": "talk.politics.misc", "text": "From: julie@eddie.jpl.nasa.gov (Julie Kangas)\nSubject: Re: Top Ten Reasons Not to Aid Russians\nNntp-Posting-Host: eddie.jpl.nasa.gov\nOrganization: Jet Propulsion Laboratory, Pasadena, CA\nLines: 137\n\nIn article <C51qr5.Duu@encore.com> rcollins@encore.com (Roger Collins) writes:\n>julie@eddie.jpl.nasa.gov (Julie Kangas) writes:\n>>I suggest you\n>>listen very carefully to the stuff Yeltsin and his people are saying\n>>and compare that with the very anti-West slogans coming from his\n>>opponents in the Russian congress.  I sure know who I want to back.\n>\n>Could we back him without forcing others to back him at the point of a\n>gun?\n\nIf we had backed him strongly early on I doubt there would be the\nproblem there is now.  Many Russians became disillusioned with democracy\nand reforms when they felt, rightly IMO, that the West didn't care.\n\nYeltsin was virtually promised massive aid (once Bush got over his\nGorby-mania.)  This probably kept him from dismantling the congress\nand calling for new elections.  Well, the aid didn't come through\nand we didn't make sure it went to the proper places and now the\nanti-reformers are gaining strength where before they were in\nhiding.\n\n>\n>Have you considered a non-interventionist policy?  If market reform does\n>happen, Russia will certainly get *private* capital at *private* risk to\n>help their economy.  They will even have incentive to do so for the same\n>reason.  If they don't reform, then our government will probably\n>consider them enemies anyway and rather spend money to hurt rather than help\n>them.\n\nIf they don't reform I don't believe in giving them money.  However,\nI think this is too important to take a non-interventionist approach.\nThis is what really bugs me about Libertarianism -- it sounds like\n'it'll all be the same in a hundred years time.  no need to do\nanything.'\n>\n>\n>>How does this affect us?  Well, we are on the same planet and if\n>>vast tracks of Europe are blown away I think we'd feel something.\n>>A massive breakup of a country that spans 1/6th the planet is\n>>bound to have affects here.  (Of course, there is also the\n>>humanitarian argument that democracies should help other\n>>democracies (or struggling democracies).)\n>\n>If a $1.6 billion gift was that important to our well being, couldn't it\n>be raised voluntarilly?  People already give over $100 billion a year to\n>charity.\n\nDespite the wishes of Libertarians, this society is a far way, and getting\nfarther, from being Libertarian.  Perhaps voluntary gifts would work if\nwe had the proper framework but we do not have it.  We have to face the\nproblem *now*, not in X years when we have a Libertarian dream society.\n\nRight now there are huge stumbling blocks to trade, let alone charity.\nThere are still limitations to high-tech exports.  NASA can't buy\nProton launch vehicles from them.  Sure, the market may be able to\nhelp a great deal but it can't right now.  There are too many obstacles.\nInstead of fighting against the aid you should be fighting to \ntear down the obstacles the market and charities have to face.\n>\n>>Seriously.  Everyone has different opinions on what is stupid.\n>>My two \"causes\" are aid to Russia and a strong space program.\n>>Someone else will champion welfare or education or doing studies\n>>of drunken goldfish.  That is why we have a republic and not a\n>>true democracy.  Instead of gridlock on a massive scale, we\n>>only have gridlock on a congressional scale.\n>\n>It seems instead of gridlock on any scale, we have aid to Russia,\n>expensive space programs, national charity that doesn't help the poor,\n>and probably, studies of drunken goldfish.  I think *limited* government\n>is more key than how democratic it is.\n\nWell, I think limited government is primarily democratic due\nto it being limited.  But the main question is how do you transform\na state-run economy and monolithic government into something that\neven remotely looks like ours?  (BTW, sometimes it seems that our government \nis trying to go the opposite direction)  It is not going to be\npainless and not going to be easy.  We simply cannot wait to\nhelp when they *have* the 'proper' government.  They'll never\nget there without the aid.  It may be too late already.\n\n>\n>>BTW, who is to decide 'stupid?'  This is just like those who\n>>want to impose their 'morals' on others -- just the sort of\n>>thing I thought Libertarians were against.\n>\n>That was an opinion, and libertarians are very big on free speech.\n\nAnd I'm just excercising mine.\n\n>\n>>Actually, my politics are pretty Libertarian except on this one issue \n>>and this is why it is impossible for me to join the party.  It seems\n>>that Libertarians want to withdraw from the rest of the world and\n>>let it sink or swim.\n>\n>If you are pretty libertarian except on this one issue then you should\n>be VERY libertarian.  Consider it a compromise.  How much money would\n>your fellow Russia-aiders have to give to Russia if those you oppose\n>weren't using the same government machine to steal money from you\n>and your group for causes you don't support?\n\nAs I also said above, another problem I have is with *transformation*.\nA Libertarian society is not going to happen painlessly or overnight.\nI have seen nothing about how to take our current government and\nsociety and turn it into a minimal government and a responsible\nself-sufficient populace.  \n\n>\n>>We could do that 100 years ago but not now.\n>\n>People have been saying that for hundreds of years.\n\nThey didn't have nuclear weapons 100 years ago.  Nor instantaneous\ncommunications nor travel to virtually anyplace on the earth in\nless than a day.\n\n>\n>>Like it or not we are in the beginnings of a global economy and\n>>global decision making. \n>\n>All the more reason to depend on the free market which can more\n>efficiently process information, than to depend on rulers for decisions\n>on complex issues.\n\nYes, depend on the rulers of the free market and the businesses.  Rulers\ndo emerge *somewhere* and they will never represent the opinions of\nevery person on the planet.  \n\nThere must be checks and balances.  Checks on the government when\nit gets out of bounds and checks on industry when it gets out of\nbounds.  Putting all your hopes on the benevolence of the market\nis, to me, just like putting all your hopes on the benevolence of\ngovernment.  \n>\n\nJulie\nDISCLAIMER:  All opinions here belong to my cat and no one else\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7809, "properties": {"category": "talk.politics.mideast", "text": "Organization: The American University - University Computing Center\nFrom: <FINAID5@auvm.american.edu>\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\n <1993Apr15.174657.6176@news.uiowa.edu>\nLines: 129\n\nMessage-ID: <1993Apr15.174657.6176@news.uiowa.edu> Mr.Napoleon responds:\n\n*******************************************************\n********************* TO MR. NAPOLEON******************\n*******************************************************\n\n> Well, Panos, Mr. Tamamidis?, the way you put it it is only the Turks\n> who bear the responsibility of the things happening today. That is hard to\n> believe for somebody trying to be objective.\n> When it comes to conflicts like our countries having you cannot\n> blame one side only, there always are bad guys on both sides.\n> What were you doing on Anatolia after the WW1 anyway?\n> Do you think it was your right to be there?\n\n** There were a couple millions of Greeks living in Asia Minor\n**until 1923 Someone had to protect them. If not us who??\n\n\nIs that so? or you were taking advantage of weakness of ottoman\nempire to grab some land. As soon as you got green lights from\nallied forces, you occupied Izmir and other cities in western\nTurkey. You killed and  raped millions people without any reason.\nOf course, you paid the price. Mustafa Kemal Ataturk made\nyou swim in aegean sea but not far enough. Your aggressions thru\nTurkey at anytime in the past did not get you any reward and shall\nnot get you anywhere.\n\n\n> I am not saying that conflicts started with that. It is only\n> not one side being the aggressive and the ither always suffering.\n> It is sad that we (both) still are not trying to compromise.\n> I remember the action of the Turkish government by removing the\n> visa requirement for greeks to come to Turkey. I thought it\n> was a positive attempt to make the relations better.\n>\n**Compromise on what, the invasion of Cyprus, the involment of Turkey in\n**Greek politics, the refusal of Turkey to accept 12 miles of territorial\n**waters as stated by international law, the properties of the Greeks of\n**Konstantinople, the ownership of the islands in the Greek lake,sorry, Aegean.\n\n\nWhat compromise are you talking about on Cyprus. That is not Greece\nbusiness to join the island to Greece. That is up to people in the island\nto live or not to live together. They made their decision and they are\nliving  separetely now.There is a peace there. Greeks can't slaughter\nTurks anymore because turkish peacemaking force is there.\nYour dream will never come true. 12 mile territorialwater!!!!\nAre you joking or dreaming? We can declare our 12 miles territorial\nwater which can come close to Athens. How would you like it?\nIf you have any guts why don't you shoot at some Turkish ships\nin your dream 12 mile territorial waters?\nWe do not have any city called Konstantinople. We have a city\ncalled ISTANBUL!!!! All the greeks in Istanbul are being\ntreated just any other Turks. There is no difference among people\nin Turkey. You look at your own backyard first before talking\nabout human rights in Turkey. What are the rights of Turks in Greece?\nNothing. They do not even have basic human rights like right to\nhave property, fredom of religion, fredom of press, fredom of\nvote elect their community leaders. Government of Greece publicly\nencourages people to destroy and burn schools, religious places,\nhouses, and farms belong to turkish minority. Then, Greek government\nforces these minorities to go to Turkey without anything with them.\nYou will dream to see Aegean sea as Greek lake but it will never\nhappen. Think about the war between Turkey and Greece in 1915.\nThe river called SAKARYA flood 21 days filled with blood in 1915.\n\n\n> The Greeks I mentioned who wouldn't talk to me are educated\n> people. They have never met me but they know! I am bad person\n> because I am from Turkey. Politics is not my business, and it is\n> not the business of most of the Turks. When it comes to individuals\n> why the hatred?\n\n**Any person who supports the policies of the Turkish goverment\n**directly or indirecly is a \"bad\" person.\n**It is not your nationality that makes you bad, it is your support\n**of the actions of your goverment that make you \"bad\".\n**People do not hate you because of who you are but because of what you\n**are. You are a supporter of the policies of the Turkish goverment and\n**as a such you must pay the price.\n\n\nYou mean that any person who supports the actions and policies of the\ngovernment of Greece is a good person. That is your Greek idea to\nsay Turks are bad people. We know who we are and proud to be TURKS\nanywhere in the world. That is not Greeks business to tell us what\nkind of people we are. You are not at position to judge people because\nyou are not civilized enough to give equal rights to your own minorities.\nMillions of minorities are being treated as third class citizen,\ntheir rights are taken away from them, and they have no voices under\nthe Government of Greece. They are almost being treated as slaves\neven though we are getting into 21th century. Therefore, do not make me\nlaught at you.\n\n\n> So that makes me think that there is some kind of\n> brainwashing going on in Greece. After all why would an educated person\n> treat every person from a nation the same way? can you tell me about your\n> history books and things you learn about Greek-Turkish\n> encounters during your schooling.\n> take it easy!\n\n**You do not need brainwashing to turn people against the Turks.Just\n**as Greeks, Arats, Slavs, Kurds and all other people who had\n**the luck to be under Turkish occupation.\n**They will talk to you about murders,rapes,distruction.\n**You do not learn about Turks from history books, you learn about\n**them from people who experienced first hand Turkish friendliness.\n\nThe Government of Greece is actively supporting terrorism against\nTurkey.Armenian and Kurdish terrorists have headquarters in Athens.\nThey are being trained in special camps in Greece. They are taught how to\nkill innocent women and children.This not a claim, this is a fact known\nby whole world. In conlusion, you are in action to murder, rape,\ndestroy the innocent people. I do not take you seriously because you\nare not at any positions to talk about human rights and dignity.\nYour own government, the Government of Greece actively supports\natrocities in Bosnia. Serbs's Barbarism pleases your government.\nPlease Napoleon think twice before you write anything about Turks and\nTurkey. You are the worst in human right conditions and treatment of\nthe minorities. Who wants to be a fried with someone whose government\ndoes not respect the human rights, supports terrorism in Turkey,barbaric\nactions in Bosnia, treats Turkish minorities as third class citizen and\ntake away all of their rights, treating them as slaves at the beginning\nof 21th century???????\n\nAykut Atalay Atakan\n\nNapoleon\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7810, "properties": {"category": "sci.electronics", "text": "From: wellison@kuhub.cc.ukans.edu\nSubject: Re: Help with ultra-long timing\nOrganization: University of Kansas Academic Computing Services\nLines: 33\n\nThanks for the resposes as they were all good ideas and I am looking at using a\ncouple of the ideas. I recieved in the mail today the spec sheets on the mil.\nspec version of Exar's XR-2240 timer/counter chip. It is stable down to -50 C\nand sucks very little power. They show an application for a ultra-long time\ndelay (up to several years depending on the RC time constant). In this\napplication, they have two of them cascaded together. The reset and trigger\npins of both chips are tied together and the timebase of the second chip is\ndisabled. In this configuration, the output is high when the system is reset.\nWhen triggered, the output goes low and stays that way for a total of 65,536 x\nthe timing cycle of the first chip. The total timing cycle of the two chips can\nbe programmed from To = 256 x R x C to 65,536 x R x C in 256 steps by selecting\nany combination of the counter outputs to the timer output. The beauty of it\nis, the timebase chip would only have to have a 100uF timing cap and a 391K\nresistor for 39.1 seconds per timing cycle. So I can get a maximum of\n2,562,457.6 seconds between timing cycles (39.1 x 65,536 or about 29 days !)\nOf course, that's much more than I need (14 days). But the counter allows for\n256 binary steps that can be selected for the output for the 'pellet puker'.\nAfter the first 14 days and it trips, it would reset its self for the next 14\nday timing cycle and so forth.\n\nPower is still a problem though. A few ideas that you suggested was to bury the\nelectronics in a hole dug in the snow (as an insulator) and put the pellet\npuker up on a tower above the estimated snow fall with a solar panel on it to\nkeep a charge on a lithium battery pack. I like that idea ;-) This thing has to\nwork for at least six weeks for three samples and the gas valves are 12 volts\nto spit the pellets out onto the snow. Anyway, I ordered the XR-2240's to see\nwhat I can do with them. Should be interesting (as long as I'm not the one that\nhas to go digging up the pellets in the middle of Antartica freezing my buns\noff ;-)\n\nThanks again everyone...\n\n-=-= Wes =-=-\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7811, "properties": {"category": "talk.politics.guns", "text": "From: donb@netcom.com (Don Baldwin)\nSubject: Re: Guns GONE. Good Riddance !\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 41\n\nIn article <1993Apr18.000152.2339@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu \nwrites:\n>Of those who vote, your cause is considered an abomination. No matter\n>how hard you try, public opinion is set against the RKBA. \n\nNope.  Here in Northern California, a newspaper recently did a survey,\nasking if people favored stricter gun controls.  A full 40% said no.\nHere, in one of the most Liberal (it wasn't always a swear word :( areas\nof the country, nearly half the people don't want additional controls, let\nalone revocation of RKBA...\n\n>This is the end. By the finish of the Clinton administration, your\n>RKBA will be null and void. Tough titty.\n\nMisguided dolt though he may be (though, I still maintain, less dangerous\nthan Bush), Clinton does not publicly support revoking the second amendment.\n\n>Surrender your arms. Soon enough, officers will be around to collect\n>them. Resistance is useless. They will overwhelm you - one at a time.\n>Your neighbors will not help you. They will consider you more if an\n>immediate threat than the abstract 'criminal'. \n\nWell, I'll help MY neighbors...\n\n>Too fucking bad. You have gone the way of the KKK. Violent solutions\n>are passe'. Avoid situations which encourage criminals. Then you will\n>be as safe as possible. Such as it is ...\n\nViolent solutions are passe'?  I take it you propose disarming the police,\nthen?\n\nPlease don't mention RKBA in the same breath as the KKK.  RKBA is about\nbeing able to defend yourself and others, not about killing the innocent.\nActually, your mention of the KKK is rather funny, considering that the\nfirst gun control law in the US were created specifically to disarm black\npeople...\n\n    don\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7812, "properties": {"category": "comp.sys.mac.hardware", "text": "From: wstuartj@lucky.ecn.purdue.edu (W Stuart Jones)\nSubject: Adding VRAM to Quadra 800 ?\nSummary: How many 512k VRAM simms do I need to add to the Quadra 800?\nKeywords: VRAM Quadra 800\nOrganization: Purdue University Engineering Computer Network\nLines: 12\n\nI want to go from 512K to 1M VRAM on my Quadra 800.  How many 512K SIMMS do I\nneed to buy?  Is the current 512K soldered on the board or do I need to take\nout the current VRAM before I add more?\n\nThanks,\n\nWesley Stuart Jones\n--\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n%%  Wesley Stuart Jones         jonesw@res.wes.mot.com               \t%%\n%%                              wstuartj@ecn.purdue.edu                 %%\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7813, "properties": {"category": "talk.politics.guns", "text": "From: chuck@eng.umd.edu (Chuck Harris - WA3UQV)\nSubject: Re: Riddle me this...\nOrganization: University of Maryland, Department of Electrical Engineering\nLines: 15\nDistribution: usa\nNNTP-Posting-Host: bree.eng.umd.edu\n\nIn article <1993Apr20.050550.4660@jupiter.sun.csd.unb.ca> j979@jupiter.sun.csd.unb.ca (FULLER  M) writes:\n>Does a \"not harmful\" gassing mean that you can, with a little willpower,\n>stay inside indefinitely without suffering any serious health problems?\n>\n>If so, why was CS often employed against tunnels in Vietnam?\n>\n>What IS the difference, anyway?\n\nCS \"tear-gas\" was used in Vietnam because it makes you wretch so hard that\nyour stomach comes out thru your throat.  Well, not quite that bad, but\nyou can't really do much to defend yourself while you are blowing cookies.\n\nChuck Harris - WA3UQV\nchuck@eng.umd.edu\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7814, "properties": {"category": "rec.sport.hockey", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Re: NHLPA poll (partial stats/results)\nOrganization: Georgia Institute of Technology\nLines: 21\n\nIn article <1993Apr20.124012.3383@mtroyal.ab.ca> caldwell8102@mtroyal.ab.ca writes:\n>>All these people who send in their polls should take a closer look at\n>>NJD, they are a very deep team, with two very capable goalies, and\n>>excellent forwards and defensemen.  Shooter in Richer, an all around do\n>>it all in Todd, chef Stasny-master of a thousand dishes, power play\n\n\n>Kevin Todd is an Oiler and has been one for months. How closely do you follow\n>the Devils, anyway? Jeez....\n\n\tSigh.\n\tThis was written about the game NHLPA Hockey '93. Which does not\nhave precise up-to-date rosters. Why don't people think before they post?\nJeez...\n\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7815, "properties": {"category": "alt.atheism", "text": "From: marshall@csugrad.cs.vt.edu (Kevin Marshall)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 42\nNNTP-Posting-Host: csugrad.cs.vt.edu\n\nsnm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n\n>If Saddam believed in God, he would pray five times a\n>day.\n>\n>Communism, on the other hand, actually committed genocide in the name of\n>atheism, as Lenin and Stalin have said themselves.  These two were die\n>hard atheist (Look! A pun!) and believed in atheism as an integral part\n>of communism.\n\nNo, Bobby.  Stalin killed millions in the name of Socialism.  Atheism was a\ncharacteristic of the Lenin-Stalin version of Socialism, nothing more.\nAnother characteristic of Lenin-Stalin Socialism was the centralization of\nfood distribution.  Would you therefore say that Stalin and Lenin killed\nmillions in the name of rationing bread?  Of course not.\n\n\n>More horrible deaths resulted from atheism than anything else.\n\nIn earlier posts you stated that true (Muslim) believers were incapable of\nevil.  I suppose if you believe that, you could reason that no one has ever\nbeen killed in the name of religion.  What a perfect world you live in,\nBobby.  \n\n\n>One of the reasons that you are atheist is that you limit God by giving\n>God a form.  God does not have a \"face\".\n\nBobby is referring to a rather obscure law in _The Good Atheist's \nHandbook_:\n\nLaw XXVI.A.3: Give that which you do not believe in a face.  \n\nYou must excuse us, Bobby.  When we argue against theism, we usually argue\nagainst the Christian idea of God.  In the realm of Christianity, man was\ncreated in God's image.  \n\n-- \n|\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"|\n| Kevin Marshall                         Sophomore, Computer Science |\n| Virginia Tech, Blacksburg, VA  USA     marshall@csugrad.cs.vt.edu  |\n|____________________________________________________________________|\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7816, "properties": {"category": "comp.windows.x", "text": "From: nmm1@cus.cam.ac.uk (Nick Maclaren)\nSubject: Re: Key definitions in Emacs + X\nOrganization: U of Cambridge, England\nLines: 28\nNntp-Posting-Host: apus.cus.cam.ac.uk\n\nIn article <1993Apr16.183525.25197@midway.uchicago.edu> ajaffe@oddjob.uchicago.edu (Andrew Jaffe) writes:\n>I use Emacs and I want to customize my keyboard better.\n>When I set up stuff in my .emacs with a keymap and define-keys,\n>I can only access certain of the keys on my X-Terminal's\n>keyboard. I can't get e.g. F10, Home, End, PgUp, PgDn; they all\n>seem to have either the same or no keycode. I have a feeling\n>this can't be fixed in emacs itself, but that I need to do some\n>xmodmap stuff. Can someone help me?\n\nIt is actually worse than you think.  I have the same problem, and have\ngiven up.  Emacs has an internal table (somewhere!) which defines what\nkeys it will accept, and this table is system-dependent.  I use a Sun\nfrom my HP, and cannot get 'shift PageUp' to work - xmodmap is not\nsufficient, or at least I haven't worked out how to make it work.\nHowever, I CAN get ordinary 'PageUp' and 'shift CursorRight' to work,\nand I do some customised things with them.\n\nNote that the Emacs on my HP has no problem, and I am using exactly\nthe same xmodmap and Emacs configuration.\n\n\nNick Maclaren\nUniversity of Cambridge Computer Laboratory,\nNew Museums Site, Pembroke Street,\nCambridge CB2 3QG, England.\nEmail:  nmm1@cus.cam.ac.uk\nTel.:   +44 223 334761\nFax:    +44 223 334679\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.372+0000", "event": "documents", "entityId": 7817, "properties": {"category": "comp.windows.x", "text": "From: whaley@sigma.kpc.com (Ken Whaley)\nSubject: Re: XCopyPlane Question\nIn-Reply-To: buzz@bear.com's message of 19 Apr 93 14:15:38 GMT\nOrganization: Kubota Pacific Computer Inc.\n\t<BUZZ.93Apr19101538@lion.bear.com>\nLines: 33\n\n> \n> In article <WHALEY.93Apr15103931@sigma.kpc.com> whaley@sigma.kpc.com (Ken Whaley) writes:\n> >   Actually, I must also ask the FAQ's #1 most popular reason why graphics\n> >   don't show up: do you wait for an expose event before drawing your\n> >   rectangle?\n> \n> Suppose you have an idle app with a realized and mapped Window that contains\n> Xlib graphics.  A button widget, when pressed, will cause a new item\n> to be drawn in the Window.  This action clearly should not call XCopyArea() \n> (or equiv) directly; instead, it should register the existence of the new\n> item in a memory structure and let the expose event handler take care\n> of rendering the image because at that time it is guaranteed that the\n> Window is mapped.\n> \n> The problem, of course, is that no expose event is generated if the window\n> is visible and mapped.  Do you know the best way to \"tickle\" a window so\n> that the expose event handler will be invoked to draw this new item?\n\nI specifically made the above comment assuming that perhaps the code fragment\ncame from a simple \"open-draw-quit\" client.  \n\nAs per your question: why not have the button handler add the object, and\nthen call the \"window_redraw()\" (or whatever) directly?  Although, depending\non how the overall application is structured, there may be no problem with\nrendering the object directly in response to the button press.\n\n\tKen\n\n--\nKenneth Whaley\t\t\t (408) 748-6347\nKubota Pacific Computer, Inc.\t Email: whaley@kpc.com\n2630 Walsh Avenue\nSanta Clara, CA.  95051\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7818, "properties": {"category": "misc.forsale", "text": "From: plkg_ltd@uhura.cc.rochester.edu (Paul K. Gloger)\nSubject: Mostly non-computer items (Rochester area)\nNntp-Posting-Host: uhura.cc.rochester.edu\nOrganization: University of Rochester - Rochester, New York\nLines: 51\n\n\n          SWELL ITEMS FOR SALE - HARDLY ANY COMPUTER STUFF\n\no LOTUS 1-2-3 Student Edition for DOS ...................... $10.00\n     This does just about everything that standard 1-2-3\n     Release 2.01 could do, but not as much of it.  Worksheet \n     size is limited to 64 columns by 256 rows, there is no\n     translation facility (for importing data from other\n     packages), and the Student Edition does not write files \n     that can be accessed by Release 2.01.  Includes manual,\n     original distribution diskettes (5 1/4\" - 360K), and key\n     board templates.\n\n\no Subaru Service Manuals ................................... $10.00\n     This is not a complete set, but includes sections 4, 5 \n     & 6 which cover MECHANICAL COMPONENTS (suspension, wheels \n     & axles, steering, brakes, pedals & control cables, heater \n     & ventilator, air conditioning), BODY (body & exterior, \n     doors & windows, seats, seat belts, interior, instrument \n     panel), and ELECTRICAL (engine electrical system, body \n     electrical system, wiring diagram, and trouble-shooting). \n     These are the genuine Subaru issue manuals.  They are for \n     model year 1986, but have plenty of good information that \n     applies to other years as well.\n\n\no Miscellaneous Darkroom Equipment ........................ $75.00\n     Solar enlarger (several objective lenses) with easel and \n     timer, negative carriers for 35mm and 2 1/4 x 3 1/4, misc.\n     printing masks.  Developing tanks, thermometer, trays, \n     constant-temperature bath, ground glass, mirrors, darkroom\n     lamps, glassware, el-cheap-o tripods..... and (as they say)\n                             MUCH   MORE!\n\n\no Beautiful Antique Buffet ............................... $1500.00\n     Solid cherry (no veneer).  Handmade, with very interesting\n     dovetail corners in the drawers.  Built (we think) around \n     1880.  Not gaudy or covered with gew-gaws; a simple, elegant \n     piece of furniture, but too big (60\" long, 37\" tall, 24\" \n     deep) for our little Cape Cod house.\n\n\nWill deliver pricier items (ie, over $10) anywhere in the Rochester \narea.  (And will consider delivering the others.)  Will deliver any \nof it on (or near) UofR Campus between now and graduation.\n\nCall or E-Mail:   Paul or Mary \n                  (716) 359-2350  (Just south of Rochester, NY)\n                  plkg_ltd@uhura.cc.rochester.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7819, "properties": {"category": "rec.motorcycles", "text": "From: Clarke@bdrc.bd.com (Richard Clarke)\nSubject: Countersteering sans Hands\nOrganization: Becton Dickinson Research Center R.T.P. NC USA\nLines: 7\nNntp-Posting-Host: polymr4.bdrc.bd.com\n\nSo how do I steer when my hands aren't on the bars? (Open Budweiser in left \nhand, Camel cigarette in the right, no feet allowed.) If I lean, and the \nbike turns, am I countersteering? Is countersteering like benchracing only \nwith a taller seat, so your feet aren't on the floor?\n\n-Rick\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7820, "properties": {"category": "sci.space", "text": "From: ktj@beach.cis.ufl.edu (kerry todd johnson)\nSubject: army in space\nOrganization: Univ. of Florida CIS Dept.\nLines: 17\nDistribution: world\nNNTP-Posting-Host: beach.cis.ufl.edu\n\n\nIs anybody out there willing to discuss with me careers in the Army that deal\nwith space?  After I graduate, I will have a commitment to serve in the Army, \nand I would like to spend it in a space-related field.  I saw a post a long\ntime ago about the Air Force Space Command which made a fleeting reference to\nits Army counter-part.  Any more info on that would be appreciated.  I'm \nlooking for things like: do I branch Intelligence, or Signal, or other?  To\nwhom do I voice my interest in space?  What qualifications are necessary?\nEtc, etc.  BTW, my major is computer science engineering.\n\nPlease reply to ktj@reef.cis.ufl.edu\n\nThanks for ANY info.\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n= Whether they ever find life there or not, I think Jupiter should be         =\n= considered an enemy planet.  --  Jack Handy                                 =\n---ktj@reef.cis.ufl.edu---cirop59@elm.circa.ufl.edu---endeavour@circa.ufl.edu--\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7821, "properties": {"category": "talk.politics.mideast", "text": "From: hovig@uxa.cso.uiuc.edu (Hovig Heghinian)\nSubject: Re: THE REPUBLIC OF TURKEY SOLD 400 TONES OF ARMENIAN BONES IN 1924.\nKeywords: April 24, 1993, 78th Anniversary of the Turkish Genocide of Armenians\nOrganization: University of Illinois at Urbana\nLines: 42\n\ndbd@urartu.sdpa.org (David Davidian) writes:\n\n>On the 78th Commemorative Anniversary of the Turkish genocide of the Armenians,\n>we remember those whose only crime was to be Armenian in the shadow of an \n>emerging Turkish proto-fascist state. In their names we demand justice.\n\n>In April 1915, the Turkish government began a systematically executed \n>de-population of the eastern Anatolian homeland of the Armenians through a \n>genocidal extermination. This genocide was to insure that Turks exclusively\n>ruled over the geographic area today called the Republic of Turkey. The \n>result: 1.5 million murdered, 30 billion dollars of Armenian property stolen\n>and plundered. This genocide ended nearly 3,000 years of Armenian civilization\n>on those lands. Today, the Turkish government continues to scrape clean any\n>vestige of a prior Armenian existence on those lands. Today's Turkish\n>governmental policy is to re-write the history of the era, to manufacture\n>distortion and generate excuses for their genocide of the Armenian people. In \n>the face of refutation ad nauseam, the Turkish Historical Society and cronies \n>shamelessly continue to deny that any such genocide occurred. This policy \n>merely demonstrates that in the modern era, genocide is an effective state \n>policy when it remains un-redressed and un-punished. A crime unpunished is a \n>crime encouraged. Adolf Hitler took this cue less than 25 years after the \n>successful genocide of the Armenians.\n\n[ ... ]\n\n>ARMENIANS DEMAND JUSTICE                              ERMENILER ADALET ISTIYOR\n\n>-- \n>David Davidian dbd@urartu.sdpa.org   | \"Armenia has not learned a lesson in\n>S.D.P.A. Center for Regional Studies |  Anatolia and has forgotten the \n>P.O. Box 382761                      |  punishment inflicted on it.\"  4/14/93\n>Cambridge, MA 02238                  |   -- Late Turkish President Turgut Ozal \nTo which I say:\nHear, hear.  Motion seconded.\n\nHovig\n\n\n-- \nHovig Heghinian\nUniversity of Illinois at Urbana-Champaign\nDepartment of Computer Science\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7822, "properties": {"category": "comp.graphics", "text": "From: sab@gnv.ifas.ufl.edu\nSubject: Info needed: 2D contour plotting\nLines: 16\n\nHi Everyone--\n\n  It's spend-the-money-before-it-goes-away time here at U.Florida\nand we need to find some PC-based software that will do contour\nplotting with irregular boundaries,i.e., a 2-D profile of a soil\n                                    system with a pond superimposed\n                /-----------------  on it.  We've given SURFER a\n    POND      /                  |  trial run but it interpolates\n            /                    |  contours out into the pond and/or\n----------/                      |  creates artifacts at the borders.\n|              SOIL              |  If anyone out there knows of a\n|                                |  product, I'ld appreciate hearing\n|________________________________|  about it.  If there is enough of\na response, I'll post a summary.  Thanks -- (and now back to lurking).\n\n   Steve Bloom, Soil & Water Science, U.Fl (SAB@GNV.IFAS.UFL.EDU)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7823, "properties": {"category": "rec.motorcycles", "text": "From: wcd82671@uxa.cso.uiuc.edu (daniel warren c)\nSubject: Hard Copy --- Hot Pursuit!!!!\nSummary: SHIT!!!!!!!\nKeywords: Running from the Police.\nArticle-I.D.: news.C5J34y.2t4\nDistribution: rec.motorcycles\nOrganization: University of Illinois at Urbana\nLines: 44\n\n\nYo, did anybody see this run of HARD COPY?\n\nI guy on a 600 Katana got pulled over by the Police (I guess for\nspeeding or something).  But just as the cop was about to step\nout of the car, the dude punches it down an interstate in Georgia.\nAng then, the cop gives chase.\n\nNow this was an interesting episode because it was all videotaped!!!\nEverything from the dramatic takeoff and 135mph chase to the sidestreet\nbattle at about 100mph.  What happened at the end?  The guy (who is\nbeing relentless chased down box the cage with the disco lights)\nslows a couple of times to taunt the cop.   After blowing a few stop\nsigns and making car jump to the side, he goes up a dead end street.\n\nThe Kat, although not the latest machine, is still a high performance\nmachine and he slams on the brakes.  Of couse, we all know that cages,\nespecially the ones with the disco lights, can't stop as fast as our\nhigh performance machines.  So what happens?...  The cage plows into the\nKat.\n\nLuckily for this dude, he was wearing a helmet and was not hurt.  But\ndude, how crazy can you get!?!  Yeah, we've all went out and played\ncat and mouse with our friends but, with a cop!!???!!!  How crazy can\nyou get!?!?!  It took just one look at a ZX-7 who tried this crap\nto convince me not to try any shit like that.  (Although the dude\ncollided with a car head on at 140 mph, the Kawasaki team colors\nstill looked good!!!  Just a few scratches, like no front end....\n3 inch long engine and other \"minor\" scratches...)\n\nIf you guys are out there, please, slow it down.  I not being\nan advocate for the cages (especially the ones that make that \nannoying ass noises...), but just think...  The next time you\npunched it (whether you have an all mighty ZX-11 or a \"I can\ndo it\" 250 Ninja), just remember, a kid could step out at any   \ntime.\n\nPeace & ride (kinda) safe.\n\nWarren -- \"Have Suzuki, Will travel...\"\nWCD82671@uxa.cso.uiuc.edu\n\n\"What's the big deal about riding one of these. I'm only going...\n95!?!?!\"    - Annie (Robotech)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7824, "properties": {"category": "talk.politics.guns", "text": "From: rats@cbnewsc.cb.att.com (Morris the Cat)\nSubject: Re: \"Proper gun control?\" What is proper gun control?\nOrganization: AT&T\nDistribution: usa\nLines: 34\n\n\n|in L.A., the first recorded survivor of a .357 shot to the heart.  That\n|lady not only killed her attacker, but chased him down to do it!  All\n|four of her shots, fired after SHE had been shot, struck the perp.  Atta\n|girl!  The bullet entered her on a downward angle, went through the apex\n|of her heart, down through the diaphragm, clipped her liver and\n|destroyed her spleen.  It then exited her back leaving a tennis ball\n|sized hole.  She died about six times on the operating table, but was\n|out of the hospital in 15 days and was back on full duty in eight\n|months!  She was off duty at the time and not wearing her vest.  She was\n|on her way home so happened to have her gun.  No, she doesn't think\n|civilians should have the same rights.  Sigh.\n\nWell, if police think they are so special that only _THEY_ are worthy\nof self-defense, perhaps we start putting the arm on police; maybe\nwe should start demanding that police are only police when ON-DUTY,\nthat after that they are just like the ordinary disarmed helpless\nchumps they consider \"civilians.\"\n\nLet's prohibit arms carrying by police when off-duty. Or, if they make\nthe assertion that \"Well, I need to maintain my gun\" let's make it\nregulation that they can carry an UNLOADED firearm home, that it's\nonly fair that they be just as helpless as poor schmuck coming home\nfrom his computer operator job...\n\nNRA Director/ex-San Jose cop Leroy Pyle states in the latest SWAT\nmagazine that anti-cops better watch out for this schism between\nRKBA folks and the police. He asks the rhetorical question of 'What\nif what's left of the gun lobby starts demanding the disarmament\nof the police?\"\n\nWell, I guess anti-gun cops who think only they should be armed,\nalong with the wealthy and politically connected, should be made\nto realize that screwing can cut in ways they have yet to imagine.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7825, "properties": {"category": "rec.sport.baseball", "text": "From: kirsch@staff.tc.umn.edu (Dave 'Almost Cursed the Jays' Kirsch)\nSubject: Re: Young Catchers\nNntp-Posting-Host: staff.tc.umn.edu\nOrganization: Li'l Carlos and the Hormones\nLines: 31\n\nIn article <1993Apr5.165122.19860@cs.cornell.edu> tedward@cs.cornell.edu (Edward [Theodorus RedSox Fannus] Fischer) writes:\n>\n>Sorry, this doesn't fly.  The good players have *always* been ready\n>for the majors early.  How many HOFers were *not* contributing major\n>leaguers by the time they were 22?\n\n  That brings up an interesting point. Anyone else catch ESPN's piece about\nprospects and the relationship between age, career length, MVPs and Hall of\nFame members? It was part of their preseason special. Basically, they looked \nat players that had amassed 1000 plate appearances (or ABs) by the time they\nwere 24, and noticed some interesting things. \n\n  For starters, they found out such players comprised the majority of MVPs in\nthe history of the game. They also found out such players represented the\nmajority of the players in the hall of fame. The kicker, though, was that\nthey actually did some number-crunching and found that such players' careers\nlasted much longer than the careers of players not in that group. They also  \nfound that these players produced at both a greater level of performance and\nproduced over twice the raw totals (HRs, etc) of the other players. The first\ngroup outhit the second something like .282 to .260 in raw BA, and blew away\nthe second group in such categories as HRs, 2Bs, RBIs, etc. \n\n  It was the most impressive thing I've seen on ESPN in recent memory. \n\n  I guess Ray Knight makes his rebuttal tonight. \n \n-- \nDave Hung Like a Jim Acker Slider Kirsch      Blue Jays - Do it again in '93 \nkirsch@staff.tc.umn.edu                        New .. quotes out of context!\n\"Not to beat a dead horse, but it's been a couple o' weeks .. this \n disappoints me..punishments..discharges..jackhammering..\" - Stephen Lawrence \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7826, "properties": {"category": "soc.religion.christian", "text": "From: aidler@sol.uvic.ca (E Alan Idler)\nSubject: Re: Mormon Temples\nOrganization: University of Victoria\nLines: 80\n\nmserv@mozart.cc.iup.edu (Mail Server) writes:\n\n>saw8712@bcstec.ca.boeing.com (Steve A. Ward) writes:\n\n>>dan@kuhub.cc.ukans.edu writes:\n>[Dan's question about Mormon Temple rituals deleted for brevity]\n>> \n>>Just thought I would interject this, and I believe you Dan when you say\n>>that you don't mean to offend:  For us LDS temple goers, the temple\n>>ceremonies are very sacred.  So much so that anyone who goes there\n>>promises never to divulge them.  So how much can you trust someone\n>>who is telling you about the cerermony? \n\n>One thing I don't understand is why being sacred should make the\n>temple rituals secret.  There are lots of sacred things in\n>Christianity, including the Sacred Scriptures themselves, but there is\n>nothing secret about these things.  \n\nIs it appropriate for the Lord not to reveal certain \nthings before the world (i.e., publish them widely)?\n\nThese things sacred to Himself.  He may place any \npre- or post-conditions He feels are necessary.\n\nMoreover, there are precedents in scripture where\nknowledge of sacred things is withheld:\n\n1. After the Transfiguration Jesus instructed\nPeter, James, and John to \"tell the vision to no \nman, until the Son of man be risen again from \nthe dead\" (Matt. 17:9).  \nIf we were living at the time of Savior, there\nwould be no (public) record of this event.\n\n2. A faithful friend of Paul experiences a vision \nof \"paradise\" when he \"heard unspeakable words, \nwhich it is not lawful for a man to utter\"\n(2 Cor. 12:4).\nThis person heard something which Paul can not \nwrite to the Corinthians (and us).\n\n3. There is an incident recorded in the Book of\nMormon where words uttered by \"babes\" were \n\"forbidden that there should not any man write\nthem (3 Nephi 26:16, the entire text follows\nfor those of you without access to the BOM).\n\n3 Nephi 26:16\nBehold, it came to pass on the morrow that the \nmultitude gathered themselves together, and they\nboth saw and heard these children; yea, even \nbabes did open their mouths and utter marvelous\nthings; and the things which they did utter were\nforbidden that there should not any man write them.\n\nSome LDS scholars speculate that these words\nwhich could not be written are the sacred\nportions from temple we are to withhold from \nthe world (but it could be something else).\n\n>I\n>can understand why Mormons would limit temple access to only faithful\n>Mormons, but I have never understood the emphasis on shrouding temple\n>ritual in mystery.  \n\nThere is much we can discuss about the temple \nordinances.  We can discuss regarding baptisms\nand other vicarious ordinances for the dead.\nWe can discuss certain concepts regarding the\nendowment (\"the ritual\").\nHowever, there are certain elements I can not\ndiscuss with anyone (including other saints)\noutside of the temple.\nAs a portion of the endowment, we receive the\ntokens and signs that will permit us access\nto Heaven.  I must keep this knowledge sacred \nand respect the conditions under which it is\nrevealed to me.\n\nA IDLER\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7827, "properties": {"category": "sci.electronics", "text": "From: pat@fegmania.wustl.edu (Pat Niemeyer)\nSubject: Re: Radar detector DETECTORS?\nOrganization: Washington University in Saint Louis, MO USA\nLines: 11\nReply-To: pat@fegmania.wustl.edu\nNNTP-Posting-Host: fegmania.wustl.edu\nOriginator: pat@fegmania\n\n>>>  Are any brands \"quieter\" than others?\n\n>Yes some radar detectors are less detectable by radar detector\n>detectors. ;-)\n\nI have a Bel-966.\nI just looked at the manual yesterday... and it does indeed claim to be\nundetectable by RDD's.\n\n\nPat\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7828, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: LesleyD@cup.portal.com (Lesley Volta Davidow)\nSubject: Re: Zeos Computers\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 11\n\nI recently purchased the then current Pkg.# 486dx-33 for $2395 (but changed\nto NEC 3FGx monitor upgrade). Buy this Pkg. #3 now - for $100 more, you now\nget a bigger HD - 340mb with @256 HD cache. 30 days ago, when I bought this\npkg., it was 245mb with @132K HD cache. This is a great deal although it is\ngenerally recommended you at least upgrade to the 15' Zeos (CTX) monitor for\n$99 more I believe.  Whether you also upgrade to the Diamond Viper video\ncard is your choice. I stayed with the Diamond Speedstar Pro. Zeos Tech\nSupport is really good - call after normal business hours to get the \nfastest access. The hardest part about buying a Zeos is the wait till it is\ndelivered - once you order you can hardly wait to get it! There are quite a\nfew good mail order houses around - lots of bang for buck with Zeos.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7829, "properties": {"category": "sci.med", "text": "From: cash@convex.com (Peter Cash)\nSubject: \"liver\" spots\nNntp-Posting-Host: zeppelin.convex.com\nOrganization: The Instrumentality\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 8\n\nWhat causes those little brown spots on older people's hands? Are they\ncalled \"liver spots\" because they're sort of liver-colored, or do they\nindicate some actual liver dysfunction?\n-- \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n             |      Die Welt ist alles, was Zerfall ist.     |\nPeter Cash   |       (apologies to Ludwig Wittgenstein)      |cash@convex.com\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7830, "properties": {"category": "rec.sport.hockey", "text": "From: umfu0009@ccu.umanitoba.ca (J. M. K. Fu)\nSubject: Re: Tie Breaker....(Isles and Devils)\nNntp-Posting-Host: data.cc.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Canada\nLines: 21\n\nIn <lrw509f@rpi.edu> wangr@vccsouth22.its.rpi.edu ( Rex Wang ) writes:\n\n>\tAre people here stupid or what??? It is a tie breaker, of cause they\n>have to have the same record. How can people be sooooo stuppid to put win as\n>first in the list for tie breaker??? If it is a tie breaker, how can there be\n>different record???? Man, I thought people in this net are good with hockey.\n>I might not be great in Math, but tell me how can two teams ahve the same points\n>with different record??? Man...retard!!!!!! Can't believe people actually put\n>win as first in a tie breaker......\n\nWhy not? I believe both the Devils and Islanders got 87 points.\nSay for example, another team had this record : 20-37-47;\nthey had 20*2+47*1+37*0=87 which is the same as their points total.\n(The Islanders' and Devils' records are both 40-37-7.\n\nIt is simple arithmetics and involve no Calculus.\n\n\nJohn.\n(a computer science graduate who pretends to be a mathematican)\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7831, "properties": {"category": "comp.windows.x", "text": "From: barnettj@pookie.crd.ge.com (Janet A Barnett)\nSubject: Input Focus to a Window Other Than Where the Pointer Is\nNntp-Posting-Host: pookie.crd.ge.com\nOrganization: GE Corp. Research & Development, Schenectady, NY\nLines: 21\n\n\nI have noticed in FrameMaker 3.1X on both the SGI and SUN platforms\nthat certain dialogs, such as \"Column Layout...\" for example, respond\nto keyboard traversal even though the pointer is NOT in the dialog\nwindow and even though the window manager keyboard focus policy is\nPOINTER.\n\nHow is this done?\n\nI would like to emulate this behavior in my application. It seems a\nreasonable behavior since when a dialog is popped up from a keyboard\naction, the dialog is not guaranteed to be under the pointer and the\nuser should not have to reach for the mouse just to move the focus.\n\nAlternatively, I'm open to any suggestions as to what is the \"right\"\nway to insure that popups get the focus when they appear, particularly\nwhen they are invoked from the keyboard and one's keyboard focus\npolicy is pointer.\n\nAllen Barnett\n(whose wife graciously allowed to use her account)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7832, "properties": {"category": "rec.motorcycles", "text": "From: tcora@pica.army.mil (Tom Coradeschi)\nSubject: Re: \"Beer\" unto bicyclists\nOrganization: Elect Armts Div, US Army Armt RDE Ctr, Picatinny Arsenal, NJ\nLines: 23\nNntp-Posting-Host: b329-gator-3.pica.army.mil\n\nIn article <31MAR199308594057@erich.triumf.ca>, ivan@erich.triumf.ca (Ivan\nD. Reid) wrote:\n> \n> In article <tcora-250393111517@b329-gator-1.pica.army.mil>,\n> \t tcora@pica.army.mil (Tom Coradeschi) writes...\n> >mxcrew@PROBLEM_WITH_INEWS_DOMAIN_FILE (The MX-Crew) wrote:\n> >> just an information (no flame war please): Budweiser is a beer from the\n> >> old CSFR (nowadays ?Tschechien? [i just know the german word]).\n> \n> >Czechoslovakia. Budweiser Budwar (pronounced bud-var).\n>  ^^^^^^^^^^^^^^\n> \tNot any more, a short while ago (Jan 1st?) it split into The Czech\n> Republic and Slovakia.  Actually, I think for a couple of years its official\n> name was \"The Czech and Slovak Republics\".  Sheesh!  Don't you guys get CNN??\n\nCNN=YuppieTV\n\n                  tom coradeschi <+> tcora@pica.army.mil\n \n   \"Usenet is like a herd of performing elephants with diarrhea -- massive,\ndifficult to redirect, awe-inspiring, entertaining, and a source of mind-\nboggling amounts of excrement when you least expect it.\"\n                                                    --gene spafford, 1992\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7833, "properties": {"category": "sci.crypt", "text": "From: ebrandt@jarthur.claremont.edu (Eli Brandt)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 15\n\nIn article <1993Apr21.132318.16981@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n>Remember that they've promised to let a committee of outside experts see\n>the cryptosystem design.\n\nI hope there are some silicon jocks on the committee who can follow\nthe algorithm through to hardware.  While I doubt the NSA would pull\nany monkey business on this point -- they have to expect that the\nchip will be reverse-engineered sooner or later -- it's an obvious\nopportunity to introduce additional holes.\n\n>\t\t--Steve Bellovin\n\n\t PGP 2 key by finger or e-mail\n   Eli   ebrandt@jarthur.claremont.edu\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7834, "properties": {"category": "misc.forsale", "text": "From: David Ruggiero <osiris@halcyon.com>\nSubject: Bare 4mb 386/25 Micronics system - $450/$350 <reduced!>\nOrganization: [none - why fight entropy?]\nLines: 29\nDistribution: na\nReply-To: osiris@halcyon.halcyon.com (David Ruggiero)\nNNTP-Posting-Host: nwfocus.wa.com\nOriginator: osiris@halcyon.com\n\n\"Bare\" = case, a power supply, and a motherboard (with RAM and a coprocessor).\nEverything else is yours to add as you like.\n\nThe motherboard:\n    - US-made Micronics 8-slot motherboard with Intel 386dx/25mhz CPU\n    - 64kb SRAM cache\n    - 4mb 80us RAM using 4x1mb simms (worth $120 alone)\n    - Cyrix 83D87 math coprocessor (worth $90 alone)\n    - Norton SI 6.0 rating of 26.1\n    - Latest version Phoenix BIOS\n\nThe case/power supply:\n     - Standard desktop case. 230watt power supply with the usual connectors.\n     - Room for five floppy/hard drives (three visible, two internal).\n\n*New* Micronics CPUs often command a several-hundred dollar premium\nover clone motherboards because they are US-made, use high-quality\ncomponents, and are known to be both very reliable and compatible. They\nhave been OEMed in systems sold by both Gateway and Zeos at various\npoints in the past. (Check out the ads in the back pages of Byte or PC\nMagazine if you want to see this price differential for yourself.)\n\nPrice: $450 complete, $100 less if you don't want/need the case and\npower supply. The board is fully guaranteed. Email for further details\nor for any questions.\n\nThanks!\n-- \nDavid Ruggiero  (jdavid@halcyon.com)       Seattle, WA: Home of the Moss People\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7835, "properties": {"category": "comp.graphics", "text": "From: freemant@dcs.glasgow.ac.uk (Toby Freeman,TJF,G151,3344813,OCT95, )\nSubject: Re: CorelDraw BITMAP to SCODAL (2)\nNntp-Posting-Host: borneo\nReply-To: freemant@dcs.glasgow.ac.uk\nOrganization: Dept. of Computing Science, Glasgow University, Glasgow.\nLines: 52\n\nIn article 1r4gmgINN8fm@zephyr.grace.cri.nz, srlnjal@grace.cri.nz () writes:\n>\n>Yes I am aware CorelDraw exports in SCODAL...\n>... but if you try to export in SCODAL with a bitmap\n>it will say something like \"cannot export...\n>...If anyone out there knows a way around this\n>I am all ears.\n\nI think one (not ideal) solution is to use the\ntracing utility (can't remember the name, sorry!)\nincluded in the Corel Draw s/w pack.  It can convert\nbitmaps to Corel art format.  These can then be\nimported into a drawing rather than the bitmap.\nResult - the file is completely in Corel format and\ncan be SCODAL'ed no problem!\n\nBUT the slight problem with this, which makes the\nsolution less than idea, is that the trace utility\nspits out many more points than are necessary to\ndefine the shapes being traced.  Straight lines and\ncurves are both traced as many short segments.\n\nSo... the SCODAL taking *much* longer to\nimage.\n\nThe obvious solution is time-consuming - stripping\nout the extra points by hand using Corel.\n\nOUCH!\nI've done it a few times :-]\n\n>...I was just wondering if there was anything out there\n>that just did the bitmap to SCODAL part a tad cheaper.\n                   ^^^^^^^^^^^^^^^^\n>Jeff Lyall\n\nAs I say, if you don't mind the problems, go via the route...\nBITMAP -> COREL (VIA TRACE) ->\nHAND TRIMMING (USING COREL)!!! ->\nCOMBINE WITH MAIN COREL PIC (VIA IMPORT) -> SCODAL\n\nCheers,\n   Toby\n____________________________________._.____._.__________._.__________._.______\n____________________________________!  \\__/  !__________!_!__________! !______\n___!                            !___! . \\/ . !___.__.___._.___.___._.! !__.___\n___! Toby Freeman               !___! !\\  /! !__/ __ \\__! !__/ .__!_!. .__!___\n___! Glasgow University         !___! !_\\/_! !_! !__! !_! !_! <__.___! !______\n___! freemant@uk.ac.glasgow.dcs !___! !____! !_! !__! !_! !__\\___ \\__! !______\n___!____________________________!___! !____! !_! !__! !_! !_.____> !_! !__.___\n____________________________________!_!____!_!__\\____/__!_!_!_____/___\\___!___\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7836, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wyatt@chem.nrl.navy.mil (JRW)\nSubject: Re: Shopping for a new [NEC?] monitor\nLines: 39\nOrganization: NRL\n\nIn article <1qjfa0INN6g5@titan.ucs.umass.edu> dtodd@titan.ucs.umass.edu (David M. Todd) writes:\n>From: dtodd@titan.ucs.umass.edu (David M. Todd)\n>Subject: Re: Shopping for a new [NEC?] monitor\n>Date: 15 Apr 1993 07:01:20 -0400\n>In article <1qhppp$gha@darwin.sura.net> wbarnes@sura.net (Bill Barnes) writes:\n>>Basically I'm looking for a 15\" SVGA (1024x768) non-interlaced\n>>monitor.  The NEC 4FG is the one most of the computer mags use as\n>>their standard, and from what I've seen and heard it looks pretty\n>>good, but it's a bit expensive (700 bucks is the best deal I've seen).\n>>So I thought perhaps I might find something as good for less.  Any\n>>recommendations?  I also thought about the NEC 3FGx, which has the\n>>same specs as the 4FG except for the scan frequency, which is more\n>>limited; anybody have any comments on this one?  Would it work with\n>\n>I believe that NEC is replacing the 4FG and 3FGx with 4FGe and 3FGe\n>models, reportedly being released at the end of this month.  I'm\n>waiting for a 4FGe, the main difference being a 3 year warranty and\n>higher refresh rates at the higher resolutions.  It sounded from a PC\n>Magazine note that the 3FGe was being boosted in a number of ways.\n>Call the NEC 800 number and have them send you info.\n>\n>\n>|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ David M. Todd ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n>|Department of Psychology, University of Massachusetts, Amherst, MA 01003 USA|\n>|Phone: 413/545-0158 ___ <David.Todd@Psych.UMass.EDU> ____  Fax: 413/545-0996|\n>\n>\n>\n>\nI have been using a NEC 3FGx for several months now.  Several others here \nalso have this monitor.  We have had no problems.  Personally I would spend \nextra money for this monitor and sacrifice other features on a PC such as 33 \nMHz viz 50 Mhz.  Based on the comments of others you might want to view the \n3FGX vs the 4 series on a PC running windows at 1024x768.  The refresh rate \nappears ok for me, but you might feel differently.  Finally speaking of \nspending money, with the size of today's files, etc, a tape backup is \ncertainly worth $200-$300.  Recently I set up a friend's PC 50Mhz and VESA \nlocal bus.  The redraw time for a graphics program was only a factor of 2 \nfaster which I doubt warrants the extra cost.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7837, "properties": {"category": "comp.graphics", "text": "From: graeme@labtam.labtam.oz.au (Graeme Gill)\nSubject: Re: looking for circle algorithm faster than Bresenhams\nOrganization: Labtam Australia Pty. Ltd., Melbourne, Australia\nLines: 28\n\nIn article <1993Apr13.025240.8884@nwnexus.WA.COM>, mpdillon@halcyon.com (Michael Dillon) writes:\n> I have an algorithm similar to Bresenhams line drawing algorithm, that\n> draws a line by stepping along the minor axis and drawing slices like\n> AAAA, BBBB, CCCC in the following diagram.\n> \n>      AAAA\n>          BBBB\n>              CCCC\n> \n\n\tYes, that's known as \"Bresenhams Run Length Slice Algorithm for\nIncremental lines\". See Fundamental Algorithms for Computer Graphics,\nSpringer-Verlag, Berlin Heidelberg 1985.\n\n> I have tried to extrapolate this to circles but I can't figure out\n> how to determine the length of the slices. Any ideas?\n\n\tHmm. I don't think I can help you with this, but you might\ntake a look at the following:\n\n\t\"Double-Step Incremental Generation of Lines and Circles\",\nX. Wu and J. G. Rokne, Computer Graphics and Image processing,\nVol 37, No. 4, Mar. 1987, pp. 331-334\n\n\t\"Double-Step Generation of Ellipses\", X. Wu and J. G. Rokne,\nIEEE Computer Graphics & Applications, May 1989, pp. 56-69\n\n\tGraeme Gill.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7838, "properties": {"category": "comp.os.ms-windows.misc", "text": "Organization: University of Central Florida - Computer Services\nFrom: Mark Woodruff <CDA90038@UCF1VM.BITNET>\nSubject: Many people on one machine\nLines: 9\n\nI have several people sharing my machine and would like to set up separate\nenvironments under Windows for each of them.  Is there some way of setting\nthings up separate desktops/directories for each of them?  Ideally,\nI'd like totally separate virtual machines.  I'd be willing to settle for\nless, and may end up having batch files that copy .ini files around\ndepending on who wants to use the machine.\n\nmark\nAlas, Setup/n doesn't work if you don't have a network.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7839, "properties": {"category": "comp.graphics", "text": "From: tiang@midway.ecn.uoknor.edu (Tiang)\nSubject: Re: A Book I found... graphics\nNntp-Posting-Host: midway.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 35\n\ncovlir@crockett1c.its.rpi.edu (Locks) writes:\nHello,\n\n>I happened to spot an excellent book in a bookstore about 4 days ago,\n>though!!!!!!  It is in C++ and assembly.  It teaches you the assembly\n>as it goes along --so if you're like me and have no assembler experience,\n>don't worry.  It has almost everything that I wanted to know and has\n>-----WORKING----- code.\n\n>--Rod Covlin--\n\n\tI just bought a copy.  I can't disagree that it is a very good\nbook.  But unfortunately I was looking for the same graphics feature\ndescribed in this book but _NOT_ in 640x480x16 or 320x200x256 mode. It\nis easy to accomodate all the pixel \"descriptor\" (or color attributes)\nin those modes into A0000-AFFFFF, but not in 640x480x256(which is what\nI am interested in).  I haven't finish the book but I affraid the\nauthor didn't talk much about this mode(or other SVGA modes).  If\nanyone out there know any good book dealing with fast SVGA graphics\nmanupulation(scrolling, repainting, all other good stuff..) please\nsend me mail.  Programming guide to SVGA card is also welcome.\n\n\tThanks in advance.\n\n\n \n************************************************************************\n*                         Tiang   T.    Foo                            *\n*\t\t      tiang@uokmax.ecn.uoknor.edu \t\t       *\n************************************************************************    \n-- \n************************************************************************\n*                         Tiang   T.    Foo                            *\n*\t\t      tiang@uokmax.ecn.uoknor.edu \t\t       *\n************************************************************************    \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.373+0000", "event": "documents", "entityId": 7840, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: daa7365@tamuts.tamu.edu (Diego A. Aranda)\nSubject: Windows Shareware Monthly (INFORMATION)\nArticle-I.D.: tamsun.1ps35rINNfpd\nOrganization: Texas A&M University, College Station\nLines: 100\nNNTP-Posting-Host: tamuts.tamu.edu\n\n\nWindows Shareware Monthly (WSM) is an on-line forum for information about the\nnewest and best Windows 3.x and NT shareware/freeware software. \n\nWSM is a compilation of submissions from shareware/freeware authors in a single\nWindows .HLP (Help System) file.  All types of software may be submitted for\nentry in WSM - utilities, applications, games, programming tools, etc.\n\nWSM benefits Windows shareware/freeware authors by allowing them to publicize\ntheir software releases, inform users of updated versions, and to increase\ntheir installed base of users.  Those searching for specific Windows software\nwill benefit by having a complete list of available software available at their\nfingertips - complete with feature lists, current prices, and any other\nrelevant information.\n\nWindows software authors may submit entries to Windows Shareware Monthly in the\nfollowing manner:\n\n1. Compose a short summary of the function of the software.  Include all\n   special features which are unique to your product and which set it apart\n   from other programs in the genre.  Be sure to include specific details\n   such as: the current release version, where the software is available,\n   how much the registration fee costs, how much disk space is required, any\n   special requirements (e.g. sound card, or VBRUN200.DLL, etc.), how the\n   author may be contacted, etc.  Because text is highly compressible, the\n   summary may be as long as is necessary, however, it is best to keep it\n   short.  A good guideline is a single screenful of 12-point text at 640x480\n   resolution.  Order forms and other such addendum may be included if desired.\n   All submissions whould be in plain text (ASCII) format.  Formatting will\n   be exactly as it is submitted - I will simply cut and paste text files\n   into a Help Authoring system.  If you require special formatting \n   conventions - such as boldface text or italics, or a larger font size,\n   indicate so CLEARLY within the text file.  For best results, use Windows\n   NotePad to create the .TXT file. \n \n2. Include up to 100k of Windows-format .BMP (bitmap) screen-shots which\n   display the workings or special features of each program.  Special cases\n   (rendering applications for example) which require 256-color bitmaps may\n   submit up to 250k of .BMP files - all other should observe the 100k limit\n   and use 16-color format.  For maximum compatiblity with the software which\n   will be used to create the WSM .HLP file (Stefan Olson's Help Writer's\n   Assistant for Windows), please save the bitmaps with Windows Paintbrush or\n   WinGIF. \n\n3. Include a 16-color .BMP of the program's icon (.ICO file).  Many programs\n   are available to convert .ICO to .BMP format, or Windows Paintbrush may be\n   used.  The .BMP will be embedded in the summary text.\n\n4. Double-check for spelling errors, formatting corrections, etc.  \n\n5. Compress the .TXT file, the .BMP of the program icon, and any additional\n   .BMPs into a single file using PKZIP (any version).\n\n6. Submit the entry by UUENCODING the .ZIPfile, and e-mailing it to:\n   \n   DAA7365@TAMUTS.TAMU.EDU\n\n   if submitting via the Internet or Compuserve. If submitting via America\n   Online, send a brief message indicating submission, and append the .ZIP\n   file, then e-mail to:\n\n   DiegoAA\n\n7. If any changes are required, or a new version is released, complete\n   the above procedures again.  Send all submissions to the @TAMUTS address,\n   and any comments, suggestions, criticisms, to DAA7365@RIGEL.TAMU.EDU.\n\nAll entries received before the deadline will be included in the subsequent\nedition of WSM.  The editor will not be held responsible for any errors, and\nwe reserve the right to make changes to the entries.\n\nWSM is not limited to shareware/freeware software.  A special area will be\ndevoted to commercially available Windows 3.x and NT software.  Commercial\nsoftware authors should follow the same steps above, with the exception of\nthe limitations on size - the .TXT file and .BMPs may be as large as required\n(and as large as is practical for transmission over phone lines).  There\nis no charge for the publishing of either shareware/freeware or commercial\nproduct entries.  \n\nAdvertisements for computer hardware, software, bulletin boards, etc. may\nbe submitted as well. Again, the same procedures apply, with the exception of\nthe size limitations.  There is no charge for advertising space.  The first\nten advertisements submitted each month will be included; subsequent\nsubmissions will not be included due to size constraints.\n\nWSM is currently looking for persons willing to devote the time to author\ncolumns within WSM.  A C/C++ programing section, a Visual Basic section, and\ntwo Windows-specific opinion/advice columns are envisioned.  All work will\nbe on a voluntary basis.  If you wish to aid WSM and author a monthly column\non one of the above topics, please send us mail at DAA7365@TAMUTS.TAMU.EDU or\nDiegoAA on America Online.\n \nThe first edition of WSM will be distributed May 1st via America Online,\nCompuserve, and the Internet.  The deadline for submissions is April 28th.\nThe first edition filename will be WSM-1.ZIP, with each subsequent monthly\nrelease continuing in the series naming convention (WSM-2.ZIP, etc.).  Each\nedition will be released on the first of each month, and the deadline for\nsubmission will be at least three days before release. \n\n \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7841, "properties": {"category": "talk.politics.misc", "text": "From: mike@gordian.com (Michael A. Thomas)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: Gordian; Costa Mesa, CA\nLines: 60\n\nIn article <C5IJ7H.L95@news.iastate.edu>, jrbeach@iastate.edu (Jeffry R Beach) writes:\n> In article <1993Apr15.021021.7538@gordian.com> mike@gordian.com (Michael A. Thomas) writes:\n> >In article <C5HuH1.241@news.iastate.edu>, jrbeach@iastate.edu (Jeffry R Beach) writes:\n> >> Think about it -- shouldn't all drugs then be legalized, it would lower\n> >> the cost and definitely make them safer to use.\n> >\n> >  Yes.\n> > \n> >> I don't think we want to start using these criterion to determine\n> >> legality.\n> >\n> >  Why not?\n> \n> \n> Where do they get these people?!  \n\n  What, pray tell, does this mean? Just who exactly is *they*?\nYou mean \"they\" as in people who do not blindly swallow every\npiece of propoganda they are given? Or \"they\" as in NOKD (not\nour kind, dear). Or \"they\" as in an appeal to some audience\nthat is supposed to implicitly know and understand?\n\n> I really don't want to waste time in\n> here to do battle about the legalization of drugs.  If you really want to, we\n> can get into it and prove just how idiotic that idea is!  \n\n  Read: I do not know what the fuck I'm talking about, and am\nnot eager to make a fool of myself.\n \n> My point was that it is pretty stupid to justify legalizing something just\n> because it will be safer and cheaper.\n\n  From a pragmatic standpoint, there certainly is some justification\nif it is a vice people will commit anyway. Shall we criminalize\nalcohol again? If the re-legalization for alcohol were done from\nanything other than the pragmatic standpoint, I'd be happy to hear \nabout it. The fact is that it wasn't.\n\n> A few more ideas to hold to these criterion - prostitution; the killing of all\n> funny farm patients, AIDS \"victims\", elderly, unemployed, prisioners, etc. -\n> this would surely make my taxes decrease.\n\n  Only the first one make any sense. There is nothing to \"legalize\"\nabout all the rest. Just in case you haven't made the connection \n(which I expect you haven't) the connecting theme in this thread is\na persons autonomy over their life and body. Vice statutes serve\nonly to make it more expensive for the rich and more dangerous\nfor the poor, as Tim so eloquently put it. People will, however,\ntake autonomy over their lives, regardless of what the government\nsays.\n  And why, pray tell, is AIDS \"victim\" in snear quotes? Are you of\nthe revisionist sort that thinks there is no such thing as the AIDS\nplauge? Or do they just deserve it?\n-- \n\n\t\tMichael Thomas\t(mike@gordian.com)\n\t\"I don't think Bambi Eyes will get you that flame thrower...\"  \n\t\t-- Hobbes to Calvin\n\t\tUSnail: 20361 Irvine Ave Santa Ana Heights, Ca,\t92707-5637\n\t\tPaBell: (714) 850-0205 (714) 850-0533 (fax)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7842, "properties": {"category": "sci.med", "text": "From: lady@uhunix.uhcc.Hawaii.Edu (Lee Lady)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nSummary: Science is not mere methodology.  \nOrganization: University of Hawaii (Mathematics Dept)\nExpires: Sat, 1 May 1993 10:00:00 GMT\nLines: 85\n\nIn article <lsj4gnINNl6c@saltillo.cs.utexas.edu> turpin@cs.utexas.edu (Russell Turpin) writes:\n>-*-----\n>I wrote:\n>>> ... Or, to use a phrasing that I think is more accurate, science \n>>> is the investigation of phenomena that avoids methods and reasoning \n>>> that are known to be erroneous from past foul-ups. \n>\n>In article <C57Iu2.HBn@bunyip.cc.uq.oz.au> bd@psych.psy.uq.oz.au writes:\n>> I can agree with this if you are talking about the less fundamental\n>> aspects of scientific method. ...\n>    ...\n>> ... In fact, I don't see the alternative, as I don't think that the \n>> fundamentals are capable of experimental investigation.  In saying\n>> this I am agreeing with the work of people like Kuhn (1970), \n>> Feyerabend (1981) and Lakatos (1972).\n>      ....\n>While methodology cannot be subject to the same kind of \"experimental\n>investigation,\" as that to which it is applied, it *can* be critically\n>appraised.  Methodologies can be compared to each other, sometimes by\n>the conflicting results they produce.  This kind of critical appraisal\n>and comparison, together with the inappropriateness of existing\n>methodologies for new fields of study, is what drives the evolution of\n>methodologies and how we think about them.  \n\nAs usual, you are missing the whole point, Russell, because you are not\nwilling to even consider questionning your basic article of faith, which\nis that science is merely a matter of methodology and that the highest\npurpose of science is to avoid making mistakes.  \n\nThis is like saying that the most important aspect of business management\nis accurate bookkeeping.  \n\nIf science were no more than methodology and not making mistakes, it\nwould be a poor thing indeed.  What was the methodology of Darwin?  What\nwas the methodology of Einstein?  What was, for that matter, the\nmethodology of Jenner and Pasteur?  \n\n\nIn an earlier article, Russell Turpin writes:  \n\n>None of the foregoing should be read as meaning that we should\n>open the door to practitioners of quackery and psuedo-science.\n>Modern advocates of homeopathy, chiropracty, and traditional\n>Chinese medicine receive little respect because, for the most\n>part, they use methods and reasoning that the kind of research\n>Lee Lady recommends has shown to be terribly faulty.  (This does\n>*not* imply that all their treatments are ineffective.  It *does*\n>imply that those who rely on faulty methodology and reasoning are\n>incapable of discovering *which* treatments are effective and\n>which are not.)\n\nFirst of all, I think you are arguing against a straw man, because I\ndon't think that anyone here is arguing that quackery, pseudo-science,\nhomeopathy, chiropracty, and traditional Chinese medicine should be\naccepted as science.  I, in particular, think the basic ideas of\nhomeopathy and chiropracty seem extremely flaky.  \n\nWhat some of us do believe, however, is that some of these things\n(including some of the flaky ideas) are deserving of serious scientific\nattention.  \n\nIf in fact it were true, as you have stated above, that those who do not\nuse the currently fashionable methodology can have no idea what is\neffective and what is not, then science today would not exist.  For all\nof current science is based on the past work of scientists whose\nmethodology, by current standards, was seriously flawed.  \n\nIt is certainly true that as methodology improves, we need to re-examine\nthose results derived in the past using less perfect methodologies.  It is\nalso true that the results obtained by people today who still rely on \nthose early methodologies needs to be re-examined in a more rigorous \nfashion by those qualified to do so credibly.  \n\nBut to say that nobody who fails to do elaborate double-blind studies is\ncapable of knowing their ass from a hole in the ground and to say that no\nideas that come from outside the scientific establishment could possibly\nbe worthy of serious investigation ... this truly marks one's attitude as\ndoctrinaire, cultist.  This attitude is not compatible with a belief in\nreason.  \n\n--\nIn the arguments between behaviorists and cognitivists, psychology seems \nless like a science than a collection of competing religious sects.   \n\nlady@uhunix.uhcc.hawaii.edu         lady@uhunix.bitnet\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7843, "properties": {"category": "rec.autos", "text": "From: syck5280@miller.cs.uwm.edu (Steven B Syck)\nSubject: Re: WARNING.....(please read)...\nArticle-I.D.: uwm.1qkqdqINNjfk\nOrganization: University of Wisconsin, Milwaukee\nLines: 39\nNNTP-Posting-Host: 129.89.9.13\n\nIn article <NEILSON.93Apr15135919@seoul.mpr.ca> neilson@seoul.mpr.ca (Robert Neilson) writes:\n>[sorry for the 0 auto content, but ... ]\n>\n>> That is why low-abiding citizens should have the power to protect themselves\n>> and their property using deadly force if necessary anywhere a threat is \n>> imminent.\n>>\n>> Steve Heracleous\n>\n>You do have the power Steve. You *can* do it. Why don't you? Why don't you\n>go shoot some kids who are tossing rocks onto cars? Make sure you do a good\n>job though - don't miss - 'cause like they have big rocks - and take it from\n>me - those kids are mean.\n\n\tAs a stong self-defense advocate, you're 'statement', does littel\nbut irk me.  Of course shooting someone because they throw a rock at your\ncar is out of the question, but what if they disabled your car with their\nrock and then wanted to come kill/rape/rob/beat/ or otherwise harm you,\nyour wife, kids?  \n\tI think you would like the power to defend yourself in this situation,\nwouldn't you?  Or is it that you value the lives of such rock throwers\nmore than your own or those of your family?  \n\tDon't think it couldn't happen to you.  From the sounds of it here\nit has happened to a few people.  \n\n\tPlease do not misunderstand.  The only justification for using\ndeadly force on someone, is that if you don't, it will mean your own \ndeath or grave bodily harm.  I am far far away from supporting\nvilante justice or anything like that..\n\n\tOh, and if you mean to be funny, please add the appropriate :-)\n\t\nFollowups to talk.politics.guns please...  we're getting a bit off track\nhere....\n\n-------   Steve Syck        syck5280@miller.cs.uwm.edu        --------\n\n\n\t\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7844, "properties": {"category": "rec.sport.baseball", "text": "From: schmke@cco.caltech.edu (Kevin Todd Schmidt)\nSubject: AL OPI through first week+\nOrganization: California Institute of Technology, Pasadena\nLines: 186\nNNTP-Posting-Host: sandman.caltech.edu\n\nHere is the OPI (Offensive Production Index) for all AL players with at\nleast 10 at bats.\n\nIt is early in the season so there are some very high numbers.  Last years\nleader was Frank Thomas at 0.682.\n\nTeams are denoted by an * as the first character of the name and each\nplayer has his team preceeding his name.\n\nThe equations used are found at the end of the post.\n\nComments and suggestions are welcome.\n\nKevin\n\nLeague OPI: 0.448\nLeague BA:  0.268\nLeague SLG: 0.405\nLeague OBA: 0.341\n\nRank Player                 OPI     BA    SLG    OBA\n-----------------------------------------------------\n1    Tor,carter            2.142  0.583  1.417  0.615\n2    Cle,baerga            1.432  0.520  1.040  0.538\n3    Det,phillips          1.334  0.565  0.609  0.655\n4    Oak,mcgwire           1.147  0.364  0.636  0.632\n5    Tor,white             1.065  0.500  0.650  0.545\n6    Bal,anderson          0.951  0.423  0.692  0.500\n7    NYY,owen              0.934  0.500  0.577  0.567\n8    Oak,rhenderson        0.911  0.391  0.565  0.533\n9    Mil,thon              0.804  0.476  0.619  0.476\n10   Oak,browne            0.800  0.476  0.476  0.522\n11   Tex,palmer            0.781  0.333  0.875  0.333\n11   Det,gibson            0.781  0.312  0.562  0.500\n13   Cle,howard            0.755  0.455  0.727  0.455\n14   NYY,tartabull         0.742  0.296  0.667  0.424\n15   Tex,rodriguez         0.736  0.429  0.500  0.529\n15   Tex,gonzalez          0.736  0.261  0.913  0.292\n17   Bos,zupcic            0.728  0.400  0.500  0.455\n18   Sea,felder            0.723  0.357  0.429  0.471\n19   Oak,blankenship       0.722  0.333  0.333  0.524\n20   Min,puckett           0.717  0.280  0.720  0.379\n21   NYY,oneill            0.710  0.435  0.609  0.458\n22   Cle,belle             0.703  0.348  0.696  0.375\n23   Sea,buhner            0.699  0.294  0.471  0.478\n24   Mil,hamilton          0.682  0.458  0.458  0.500\n25   Det,whitaker          0.680  0.312  0.500  0.421\n26   Det,fielder           0.666  0.273  0.591  0.407\n27   Tor,sprague           0.649  0.300  0.750  0.300\n28   Whi,cora              0.646  0.350  0.500  0.458\n29   Whi,raines            0.641  0.250  0.750  0.308\n30   NYY,kelly             0.625  0.348  0.565  0.375\n31   Bos,quintana          0.617  0.455  0.455  0.455\n32   Sea,tmartinez         0.612  0.211  0.632  0.348\n32   Cal,gonzales          0.612  0.250  0.250  0.478\n34   Whi,burks             0.609  0.348  0.565  0.375\n35   Cal,snow              0.602  0.368  0.526  0.400\n36   Whi,karkovice         0.598  0.167  0.417  0.412\n37   *Cleveland            0.595  0.340  0.549  0.377\n38   Cle,sorrento          0.594  0.273  0.727  0.273\n39   Sea,amaral            0.587  0.368  0.579  0.429\n39   Bos,cooper            0.587  0.375  0.458  0.423\n41   Min,winfield          0.578  0.292  0.667  0.292\n42   Cal,curtis            0.571  0.333  0.381  0.417\n43   Bos,mvaughn           0.566  0.316  0.526  0.350\n44   Oak,steinbach         0.556  0.333  0.542  0.385\n45   *Oakland              0.555  0.298  0.439  0.406\n46   NYY,maas              0.547  0.333  0.389  0.429\n47   Kan,joyner            0.546  0.300  0.400  0.417\n48   Min,knoblauch         0.535  0.304  0.348  0.448\n49   Bos,greenwell         0.534  0.261  0.478  0.370\n50   Oak,brosius           0.532  0.273  0.545  0.333\n51   Tor,olerud            0.530  0.333  0.400  0.412\n52   Bal,mercedes          0.529  0.286  0.429  0.412\n53   *NYYankees            0.527  0.321  0.468  0.377\n54   Bal,hoiles            0.525  0.263  0.526  0.333\n55   Mil,kmak              0.523  0.286  0.286  0.412\n56   Oak,dhenderson        0.517  0.231  0.462  0.412\n57   Cle,lofton            0.515  0.346  0.385  0.370\n58   Min,larkin            0.514  0.357  0.500  0.400\n59   Bos,dawson            0.504  0.333  0.458  0.360\n60   Cle,camartinez        0.503  0.333  0.389  0.400\n61   Det,gladden           0.498  0.312  0.500  0.312\n62   Cal,polonia           0.494  0.292  0.500  0.320\n63   *California           0.487  0.295  0.404  0.364\n64   *Detroit              0.484  0.260  0.410  0.357\n65   Det,tettleton         0.475  0.211  0.421  0.348\n66   Cal,disarcina         0.473  0.304  0.478  0.304\n67   Cal,easley            0.472  0.304  0.435  0.333\n68   Bal,baines            0.470  0.300  0.400  0.364\n69   Tex,franco            0.469  0.300  0.350  0.391\n70   Whi,ljohnson          0.464  0.280  0.400  0.333\n71   Sea,vizquel           0.463  0.222  0.222  0.417\n72   NYY,bwilliams         0.461  0.294  0.471  0.314\n73   Mil,gvaughn           0.460  0.222  0.389  0.391\n74   Min,hrbek             0.458  0.240  0.360  0.367\n75   Bal,cripken           0.451  0.333  0.407  0.379\n75   *Seattle              0.451  0.237  0.367  0.361\n77   Cal,salmon            0.448  0.267  0.267  0.450\n78   Kan,mcreynolds        0.447  0.182  0.500  0.280\n79   *Toronto              0.443  0.261  0.430  0.318\n79   *Texas                0.443  0.237  0.489  0.289\n81   Min,pagliarulo        0.439  0.286  0.429  0.333\n82   *WhiteSox             0.432  0.243  0.378  0.336\n83   Kan,hiatt             0.431  0.278  0.500  0.316\n84   Whi,guillen           0.426  0.263  0.263  0.364\n85   Whi,thomas            0.419  0.259  0.333  0.355\n86   Kan,mcrae             0.414  0.296  0.333  0.345\n87   *Boston               0.411  0.270  0.365  0.336\n88   Cle,hill              0.410  0.300  0.500  0.300\n89   NYY,mattingly         0.400  0.324  0.353  0.343\n90   *Baltimore            0.394  0.251  0.361  0.315\n91   Bal,gomez             0.382  0.316  0.316  0.350\n91   *Minnesota            0.382  0.237  0.379  0.298\n93   Whi,fisk              0.381  0.273  0.545  0.273\n94   Cle,jefferson         0.379  0.263  0.316  0.333\n95   Oak,neel              0.370  0.188  0.500  0.188\n96   Cal,cdavis            0.369  0.211  0.421  0.250\n97   Bos,fletcher          0.364  0.217  0.391  0.280\n98   *Milwaukee            0.361  0.257  0.293  0.333\n99   Det,livingstone       0.360  0.250  0.438  0.294\n100  Tor,ralomar           0.354  0.263  0.316  0.333\n101  *KansasCity           0.343  0.236  0.327  0.291\n102  Oak,bordick           0.339  0.200  0.250  0.304\n103  Tex,canseco           0.337  0.190  0.381  0.261\n104  Sea,valle             0.336  0.250  0.312  0.294\n105  Bal,devereaux         0.329  0.207  0.379  0.233\n106  Kan,lind              0.323  0.188  0.438  0.188\n107  Mil,surhoff           0.312  0.227  0.273  0.292\n107  Kan,brett             0.312  0.259  0.296  0.286\n109  Whi,bell              0.310  0.207  0.310  0.258\n110  Cle,salomar           0.306  0.200  0.200  0.304\n111  Mil,jaha              0.304  0.267  0.267  0.353\n111  Det,fryman            0.304  0.185  0.296  0.214\n113  NYY,boggs             0.296  0.200  0.233  0.294\n114  Tex,bripken           0.290  0.250  0.333  0.308\n115  Min,mack              0.289  0.233  0.333  0.258\n116  Min,harper            0.288  0.280  0.280  0.280\n117  Cle,fermin            0.284  0.200  0.200  0.304\n118  Bos,rivera            0.276  0.118  0.176  0.286\n119  Mil,spiers            0.275  0.231  0.231  0.286\n120  Mil,yount             0.268  0.208  0.208  0.269\n121  Tor,schofield         0.265  0.133  0.267  0.235\n121  Tex,hulse             0.265  0.154  0.308  0.214\n123  Sea,griffey           0.261  0.105  0.263  0.261\n124  Sea,obrien            0.259  0.100  0.100  0.308\n124  Kan,macfarlane        0.259  0.273  0.273  0.333\n126  Oak,sierra            0.256  0.200  0.240  0.231\n127  Kan,jose              0.254  0.167  0.167  0.286\n128  Bos,hatcher           0.252  0.188  0.188  0.278\n129  Sea,blowers           0.251  0.200  0.200  0.273\n130  Whi,ventura           0.247  0.167  0.167  0.310\n130  Tex,palmeiro          0.247  0.130  0.261  0.167\n132  Bal,reynolds          0.227  0.118  0.118  0.250\n133  Kan,mayne             0.222  0.231  0.231  0.231\n133  Cal,myers             0.222  0.231  0.231  0.231\n135  NYY,nokes             0.219  0.150  0.300  0.150\n136  Bos,calderon          0.209  0.167  0.167  0.286\n137  Bos,pena              0.207  0.267  0.267  0.267\n138  Tor,molitor           0.194  0.150  0.200  0.190\n139  Det,deer              0.182  0.125  0.167  0.192\n140  Det,cuyler            0.179  0.077  0.154  0.143\n141  Tor,borders           0.159  0.111  0.167  0.158\n142  Whi,grebeck           0.141  0.100  0.100  0.182\n143  Bal,gdavis            0.137  0.111  0.148  0.143\n144  Tex,dascenzo          0.128  0.091  0.182  0.091\n145  Min,leius             0.115  0.083  0.083  0.154\n145  Mil,reimer            0.115  0.083  0.083  0.154\n147  Tor,djackson          0.114  0.133  0.133  0.133\n148  Tex,gill              0.070  0.059  0.059  0.158\n149  Kan,gagne             0.042  0.095  0.095  0.095\n\n      0.74*1B + 1.28*2B + 1.64*3B + 2.25*HR + 0.53*BB + 0.34*(SB-2*CS)\nOPI = ----------------------------------------------------------------\n                              AB - H\n\nBA = H / AB\n\nSLG = (H + 2B + 2*3B + 3*HR) / AB\n\nOBA = (H + BB) / (AB + BB)\n-- \nJet Propulsion Laboratory | schmke@cco.caltech.edu\n4800 Oak Grove Dr.        | schmidt@spc5.jpl.nasa.gov\nM/S 525-3684              |\nPasadena, CA  91109       |\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7845, "properties": {"category": "comp.windows.x", "text": "From: afielden@cbnewsb.cb.att.com (andrew.j.fielden)\nSubject: X interactive performance\nKeywords: benchmark\nOrganization: AT&T\nLines: 21\n\nWe recently got an NCD X-terminal to evaluate. This is running XRemote over\na serial line.\nI wanted to get some measurement of response time, so I wrote a small Xlib\nprogram which simply creates a window, maps it and sends the first Expose \nevent to itself. The program times the delay from sending the event, to \nreceiving it.  I thought this was the simplest way to test client/X-server \nround-trip delays. It's a similar concept to the ping(8C) program.\n\nIs this a valid test to perform ? I've also tried the xbench program, available\nfrom ftp.uu.net, which bombards the server with graphics operations, but I \njust wanted to get a quantative measure of what is \"acceptable\" interactive \nresponse time. Has anyone got any ideas on this subject ?\n\nThanks.\nAndrew. (afielden@mlsma.att.com)\n\n-- \n+----------------------------------------+----------------------------------+\n|Andrew Fielden. AT&T Network Systems UK |        Tel : +44 666 832023      |\n|Information Systems Group (SUN support) |   Email : afielden@mlsma.att.com |\n+----------------------------------------+----------------------------------+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7846, "properties": {"category": "sci.space", "text": "From: gawne@stsci.edu\nSubject: Re: Vulcan?  (No, not the guy with the ears!)\nDistribution: na\nOrganization: Space Telescope Science Institute\nLines: 42\n\nIn article <VNci2B7w165w@inqmind.bison.mb.ca>, victor@inqmind.bison.mb.ca \n(Victor Laking) writes:\n> Does anyone have any info on the apparent sightings of Vulcan?\n>  \n> All that I know is that there were apparently two sightings at \n> drastically different times of a small planet that was inside Mercury's \n> orbit.  Beyond that, I have no other info.\n\nThe sightings were apparently spurious.  There is no planet inside of\nthe orbit of Mercury.\n\nThe idea of Vulcan came from the differences between Mercury's observed\nperihelion precession and the value it should have had according to\nNewtonian physics.  Leverrier made an extensive set of observations\nand calculations during the mid 19th century, and Simon Newcombe later\nimproved on the observations and re-calculated using Leverrier's system\nof equations.  Now Leverrier was one of the co-discoverers of Neptune\nand since he had predicted its existence based on anomalies in the orbit\nof Uranus his inclination was to believe the same sort of thing was\nafoot with Mercury.\n\nBut alas, 'twere not so.  Mercury's perihelion precesses at the rate\nit does because the space where it resides near the sun is significantly\ncurved due to the sun's mass.  This explanation had to wait until 1915\nand Albert Einstein's synthesis of his earlier theory of the electrodynamics\nof moving bodies (commonly called Special Relativity) with Reimanian \ngeometry.  The result was the General Theory of Relativity, and one of\nit's most noteworthy strengths is that it accounts for the precession\nof Mercury's perihelion almost exactly.  (Exactly if you use Newcomb's\nnumbers rather than Leverrier's.)\n\nOf course not everybody believes Einstein, and that's fine.  But subsequent\nefforts to find any planets closer to the sun than Mercury using radar\nhave been fruitless.\n\n-Bill Gawne\n\n \"Forgive him, he is a barbarian, who thinks the customs of his tribe\n  are the laws of the universe.\"                       - G. J. Caesar\n\nAny opinions are my own.  Nothing in this post constitutes an official\nstatement from any person or organization.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7847, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: RUMOUR - Keenan signs with Rangers?\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 25\n\ngolchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n>gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>\n>The Ranger announcement is supposed to happen tomorrow supposedly.\n\nPress conference at 1PM ...\n\n>The Rangers have so many veterans that they had to get a coach with\n>\"weight\" and a proven record...and whom they know Messier respects.\n\nInterestingly, Keenan's co-coach (or is it his \"Number One\"?) on Team\nCanada at the World Championships is Roger Neilsen.  \n\nIt'd be interesting if the Rangers call in the balance of Neilsen's\ncontract to be Keenan's assistant ...  Roger did do a very good job\nwith the mediocre players, just as he handled the Cinderella Canucks\nof 10 years ago ... but his mistake was playing the Rangers like those\nCanucks last May ...\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7848, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: moy@cae.wisc.edu (Howard Moy)\nSubject: How to fix Word subscript spacing?\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 14\n\n\nHi,\n\nI have a problem when using subscripts with MSWord.  The\nproblem is the subscripted characters get cut off on the display,\nbut print out ok.  Anyone know how to fix the subscripts so\nI can see them on the screen?\n\nMany thanks,\n-- \n-Howard\n_________________________________________________________\n!                    Howard Moy\t\t\t\t!\n!                  (608) 255-6379\t\t\t!\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7849, "properties": {"category": "alt.atheism", "text": "From: frank@D012S658.uucp (Frank O'Dwyer)\nSubject: Re: Societally acceptable behavior\nOrganization: Siemens-Nixdorf AG\nLines: 87\nNNTP-Posting-Host: d012s658.ap.mchp.sni.de\n\nIn article <C5r9At.Asv@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike Cobb) writes:\n#In <1qvabj$g1j@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) \n#writes:\n#\n#>In article <C5qGM3.DL8@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike \n#Cobb) writes:\n#\n#Am I making a wrong assumption for the basis of morals?  Where do they come \n#from?  The question came from the idea that I heard that morals come from\n#whatever is societally mandated.\n\nIt's only one aspect of morality.  Societal morality is necessarily\nvery crude and broad-brush stuff which attempts to deal with what\nis necessary to keep that society going  - and often it's a little\nover-enthusiastic about doing so.  Individual morality is a different\nthing, it often includes societal mores (or society is in trouble),\nbut is stronger.  For example, some people are vegetarian, though eating\nmeat may be perfectly legal.\n\n#\n#>#Merely a question for the basis of morality\n#>#\n#>#Moral/Ethical behavior = _Societally_ _acceptable_ _behavior_.\n#>#\n#>#1)Who is society\n#\n#>Depends on the society.\n#\n#Doesn't help.  Is the point irrelevant?\n\nNo.  Often the answer is \"we are\".  But if society is those who make\nthe rules, that's a different question.  If society is who should\nmake the rules, that's yet another.  I don't claim to have the answers, either,\nbut I don't think we do it very well in Ireland, and I like some things\nabout the US system, at least in principle.\n\n#\n#>#2)How do \"they\" define what is acceptable?\n#\n#>Depends.\n#On....  Again, this comes from a certain question (see above).\n\nWell, ideally they don't, but if they must they should do it by consensus, IMO.\n#\n#>#3)How do we keep from a \"whatever is legal is what is \"moral\" \"position?\n#\n#>By adopting a default position that people's moral decisions\n#>are none of society's business,\n#\n#So how can we put people in jail? How can we condemn other societies?\n\nBecause sometimes that's necessary.  The hard trick is to recognise when\nit is, and equally importantly, when it isn't.\n\n# and only interfering when it's truly\n#>necessary.\n#\n#Why would it be necessary?  What right do we have to interfere?\n\nIMO, it isn't often that interference (i.e. jail, and force of various\nkinds and degrees) is both necessary and effective.  Where you derive \nthe right to interfere is a difficult question - it's a sort of\nliar's paradox: \"force is necessary for freedom\".   One possible justification\nis that people who wish to take away freedom shouldn't object if\ntheir own freedom is taken away - the paradox doesn't arise if\nwe don't actively wish to take way anyone's freedom.\n#\n#  The introduction of permissible interference causes the problem\n#>that it can be either too much or too little - but most people seem\n#>to agree that some level of interference is necessary.\n#\n#They see the need for a \"justice\" system.  How can we even define that term?\n\nOnly by consensus, I guess.\n\n#  Thus you\n#>get a situation where \"The law often allows what honour forbids\", which I've\n#>come to believe is as it should be.  \n#\n#I admit I don't understand that statement.\n\nWhat I mean is that, while thus-and-such may be legal, thus-and-such may\nalso be seen as immoral.   The law lets you do it, but you don't let yourself\ndo it.  Eating meat, for example.\n-- \nFrank O'Dwyer                                  'I'm not hatching That'\nodwyer@sse.ie                                  from \"Hens\",  by Evelyn Conlon\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7850, "properties": {"category": "talk.politics.mideast", "text": "From: jamshid@cgl.ucsf.edu (J. Naghizadeh)\nSubject: PR Campaign Against Iran (PBS Frontline)\nOrganization: Computer Graphics Laboratory, UCSF\nLines: 51\nOriginator: jamshid@socrates.ucsf.edu\n\nThere have been a number of articles on the PBS frontline program\nabout Iranian bomb. Here is my $0.02 on this and related subjects.\n\nOne is curious to know the real reasons behind this and related\npublic relations campaign about Iran in recent months. These include:\n\n1) Attempts to implicate Iran in the bombing of the New York Trade\n   Center. Despite great efforts in this direction they have not\n   succeeded in this. They, however, have indirectly created\n   the impression that Iran is behind the rise of fundamentalist\n   Islamic movements and thus are indirectly implicated in this matter.\n\n2) Public statements by the Secretary of State Christoffer and\n   other official sources regarding Iran being a terrorist and\n   outlaw state.\n\n3) And finally the recent broadcast of the Frontline program. I \n   suspect that this PR campaign against Iran will continue and\n   perhaps intensify.\n\nWhy this increased pressure on Iran? A number of factors may have\nbeen behind this. These include:\n\n1) The rise of Islamic movements in North-Africa and radical\n   Hamas movement in the Israeli occupied territories. This\n   movement is basically anti-western and is not necessarily\n   fueled by Iran. The cause for accelerated pace of this \n   movement is probably the Gulf War which sought to return\n   colonial Shieks and Amirs to their throne in the name of\n   democracy and freedom. Also, the obvious support of Algerian\n   military coup against the democratically elected Algerian\n   Islamic Front which clearly exposed the democracy myth.\n   A further cause of this may be the daily broadcast of the news\n   on the slaughter of Bosnian Moslems.\n\n2) Possible future implications of this movement in Saudi Arabia\n   and other US client states and endangerment of the cheap oil\n   sources from this region.\n\n3) A need to create an enemy as an excuse for huge defense\n   expenditures. This has become necessary after the demise of\n   Soveit Union.\n\nThe recent PR campaign against Iran, however, seems to be directed\nfrom Israel rather than Washington. There is no fundamental conflict\nof interest between Iran and the US and in my opinion, it is in the\ninterest of both countries to affect reestablishment of normal\nand friendly relations. This may have a moderating effect on the\nrise of radical movements within the Islamic world and Iran .\n\n--jamshid\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7851, "properties": {"category": "soc.religion.christian", "text": "From: news@cbnewsk.att.com\nSubject: Re: anger\nOrganization: AT&T Bell Labs\nLines: 31\n\n>Paul Conditt writes:\n>>In case you couldn't tell, I get *extremely* angry and upset when\n>>I see things like this.  Instead of rationalizing our own fears and\n>>phobias, we need to be reaching out to people with AIDS and other\n>>socially unacceptable diseases.  Whether they got the disease through\n>>their own actions or not is irrelevant.  They still need Jesus...\n\nAaron Bryce Cardenas) writes:\n>The first issue you bring up is your anger.  It is \"obvious\"ly wrong to\n>be angry (Gal 5:19-20) for any reason, especially *extremely* angry\n>which is on par with hatred.  Jesus has every reason to be angry at us\n>for putting him on the cross with our sin, yet his prayer was \"forgive\n>them Father, they know not what they do.\"  ...\n\nI don't know why it is so obvious.  We are not speaking of acts of the \nflesh.  We are just speaking of emotions.  Emotions are not of themselves\nmoral or immoral, good or bad.  Emotions just are.  The first step is\nnot to label his emotion as good or bad or to numb ourselves so that\nwe hide our true feelings, it is to accept ourselves as we are, as God\naccepts us.  It seems that Paul's anger he has accepted and channeled\nit to a plea to all of us to refrain from passing judgement on those\nafflicted with a disease and to reach out to others.  Give in?  Calling\nhis arguments foolish, belittling them to only quarrels, avoiding action\nbecause of fear to give others a bad feeling, he's not forgiving?\n\nRe-think it, Aaron.  Don't be quick to judge.  He has forgiven those with\nAIDS, he has dealt with and taken responsibility for his feelings and made\nappropriate choices for action on such feelings.  He has not given in to\nhis anger.\n\nJoe Moore\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7852, "properties": {"category": "rec.sport.hockey", "text": "From: peterson@pms001.pms.ford.com (Doug Peterson)\nSubject: NCAA Hockey Final\nOrganization: Ford Motor Company\nLines: 34\nDistribution: world\nReply-To: peterson@pms860.pms.ford.com\nNNTP-Posting-Host: pms001.pms.ford.com\nKeywords: college\n\nI haven't seen anyone post this so I will do the honors.\n\nMaine beat LSSU 5-4 in Milwaukee on Saturday night.  It was quite a game.\nMaine stormed to a 2-0 lead in the first and looked like they might run away\nwith it.  Maine's first goal came inside the first thirty seconds of the game.\nLSSU came back at the end of the period to cut the lead to 2-1.\n\nLSSU came out in the second dominating the play particularly along the boards.\nThe play went quickly with the refs running a no-holds-barred type of game.\nLSSU scored three more unanswered goals to lead 4-2 at the end of the second.\nNow it looked like LSSU might just walk away with the game.\n\nCoach Walsh, of Maine, replaced the starting goalie Dunham with Snow, who won\nthe game against Michigan.  Snow proved to be a much more aggressive goalie.\nThe third period, like the second, belonged to the team behind.  Maine scored\nthree unanswered goals in a span of five minutes after the four minute mark.\nThey were all scored by Jim Montgomery, the tournament MVP, and all assisted by\nPaul Kariya.\n\nThe last minute of the game bears highlighting.  The change to Snow also\nproved the difference in the end.  With one minute to go and with the LSSU\ngoalie pulled, Snow dueled with a LSSU forward in a amazing set of moves by\nboth.  Snow won.  It was a great way to end the game.\n\nThis year's three championships games were sold out last year in about one\nmonth.  The Bradley Center holds approximately 17,700.  \n\n-- \n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\nDouglas J. Peterson                   Have         _--____    ____\npeterson@pms860.pms.ford.com            you        `   /  ----        / \nSafety Laboratories Department            driven     -/- __  ____ _  /\nFord Motor Company                           a    .  /  / \\--/___/ \\/\n(313) 390-8089                                    \\_/  ,\\_/ /    \\_/_   lately?\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7853, "properties": {"category": "sci.crypt", "text": "Subject: Organized Lobbying for Cryptography\nFrom: kubo@zariski.harvard.edu (Tal Kubo)\nOrganization: Dept. of Math, Harvard Univ.\nNntp-Posting-Host: zariski.harvard.edu\nLines: 55\n\nIn article <4014.Apr2003.03.4093@silverton.berkeley.edu> \ndjb@silverton.berkeley.edu (D. J. Bernstein) writes:\n>\n>I want to see an organization which will combat such statements.\n>Encryption does _not_ threaten the public safety, any more than ski\n>masks do. Every American _is_ entitled to use strong encryption which\n>ensures his own privacy and is _not_ crippled by a key-escrow system.\n>I guess I'm looking for a ``League for Cryptographic Freedom.'' Or a\n>``National Cryptography Association.''\n\nAn excellent idea.\n\n>\n>To what extent does the EFF serve this purpose? Is a new organization\n>necessary? Does it already exist?\n\nWhile I don't know the full scope of the activities of the EFF, \nfrom what little I've seen I think it would be better to lobby for \nstrong cryptography through a distinct organization.\n\nThe EFF has been associated with efforts to prevent the banning of sex\nand pictures newsgroups at various universities. Horror stories about the\ncontents of those groups (e.g. exploitative pictures of possibly underaged\nmodels) have already surfaced in the press. The White House bulletin\nalready raised the specter of drug-dealing and terrorism, which is only one\nstep removed from the old \"crypto-wielding child molester\" argument.  An\nEFF lobbying effort for cryptography would be too easily derailed by the\nconnection to child pornography and the like.\n\nSimilarly, LPF is connected with Stallman and his Gnu project.  In\nlight of, say, the Gnu Manifesto, this means that in a public debate it\nstands to be labelled as \"communist\", \"anarchist hackers\", radical, etc.  \n\nI don't know about CPSR, but if it is an offshoot of Physicians for Social\nResponsibility (best known for Helen Caldicott and her hysterical\nantinuclear lobbying) then it probably also carries unwelcome political\nbaggage.\n\nPerhaps for practical reasons a lobbying organization for cryptography\nwould best be formed under the umbrella of EFF or some other existing\ngroup, but its charter should then be distinct, independent, and limited to\nadvocacy for the right to cryptography.  To reiterate Dan Bernstein's\nquestion: does any suitable organization exist?  If not, what are you going\nto do about it?\n\nHaving mentioned the possible dangers of unwelcome political associations,\nI would be remiss not to suggest something in the opposite direction:\ngathering the support of the NRA by emphasizing the RKBA side of the\nissue as well as the First-Amendment side.\n\n\n\nTal  kubo@math.harvard.edu\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7854, "properties": {"category": "rec.autos", "text": "From: jason@studsys.mscs.mu.edu (Jason Hanson)\nSubject: Re: WARNING.....(please read)...\nOrganization: Marquette University - Department MSCS\nLines: 14\nNNTP-Posting-Host: studsys.mscs.mu.edu\n\nIn article <1993Apr15.192250.18815@cbnewse.cb.att.com> turbo@cbnewse.cb.att.com (gerald.l.lindahl) writes:\n>From article <1993Apr15.024246.8076@Virginia.EDU>, by ejv2j@Virginia.EDU (\"Erik Velapoldi\"):\n>> This happened about a year ago on the Washington DC Beltway.\n>> Snot nosed drunken kids decided it would be really cool to\n>> throw huge rocks down on cars from an overpass.  Four or five\n>> cars were hit.  There were several serious injuries, and sadly\n\nAbout a year ago, some kids tossed a rock off an overpass on I-94 near Eau\nClaire, Wisconsin and it killed the driver below.  (I believe he was a\nschoolteacher from Minnesota.)\n-- \nJason Hanson         |  915 W. Wisconsin Ave #1010  |  (414) 288-2179\nMarquette University |   Milwaukee, WI 53233-2373   |  Ham Radio: N9LEA/AE\n--  jason@studsys.mscs.mu.edu    ==+==    n9lea@n0ary.#nocal.ca.usa.na  --\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7855, "properties": {"category": "talk.politics.mideast", "text": "From: nraclaw@jade.tufts.edu (Nissan Raclaw)\nSubject: Re: Go Hezbollah!!\nOrganization: Tufts University - Medford, MA\nLines: 13\n\nCongratulations also are due to the Hamas activists who blew up the \nWorld Trade Center, no?  After all, with every American that they put\n\nin the grave they are underlining the USA's bankrupt imperialist\npolicies.  Go HAmas!\n\nBlah blah blah blah blah\n\nBrad, you are only asking that that violence that you love so much\ncome back to haunt you...............\n\nNissan\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7856, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Update (Help!) [was \"What is This [Is it Lyme's?]\"]\nArticle-I.D.: pitt.19436\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 42\n\nIn article <1993Mar29.181958.3224@equator.com> jod@equator.com (John Setel O'Donnell) writes:\n>\n>I shouldn't have to be posting here.  Physicians should know the Lyme\n>literature beyond Steere & co's denial merry-go-round.  Patients\n>should get correctly diagnosed and treated.\n>\n\nWhy do you think Steere is doing this?  Isn't he acting in good faith?\nAfter all, as the \"discoverer\" of Lyme for all intents and purposes,\nthe more famous Lyme gets, the more famous Steere gets.  I don't\nsee the ulterior motive here.  It is easy for me to see it the\nthose physicians who call everything lyme and treat everything.\nThere is a lot of money involved.\n\n>I'm a computer engineer, not a doctor (,Jim).  I was building a \n>computer manufacturing company when I got Lyme. I lost several \n>years of my life to near-total disability; partially as a result,\n>the company failed, taking with it over 150 jobs, my savings,\n>and everything I'd worked for for years.  I'm one of the \"lucky\"\n>ones in that I found a physician through the Lyme foundation\n>and now can work almost full-time, although I have persistent\n>infection and still suffer a variety of sypmtoms.  And now\n>I try to follow the Lyme literature.\n>\n\nWell, it is tragic what has happened to you, but it doesn't\nnecessarily make you the most objective source of information\nabout it.  If your whole life is focussed around this, you\nmay be too emotionally involved to be advising other people\nwho may or may not have Lyme.  Certainly advocacy of more research\non Lyme would not be out of order, though, and people like you\ncan be very effective there.\n\n\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7857, "properties": {"category": "talk.politics.guns", "text": "From: tomgift@uxa.cso.uiuc.edu (Tom Gift)\nSubject: Re: BATF/FBI revenge\nKeywords: BATF FBI Korash \"child abuse\"  guns murder CONTROL\nOrganization: University of Illinois at Urbana\nLines: 10\n\npat@rwing.UUCP (Pat Myrto) writes:\n\n>Well, maybe I AM overreacting.\n\nThis is probably the best part of your post.  Everything else is\nshrill speculation.\n\nTom Gift\ntomgift@uxa.cso.uiuc.edu\n \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7858, "properties": {"category": "rec.sport.hockey", "text": "From: SHOE@PHYSICS.watstar.uwaterloo.ca (Mark Shoesmith)\nSubject: Re: Let's talk sticks...\nLines: 35\nOrganization: University of Waterloo\n\nIn article <C50pt4.6CM@odin.corp.sgi.com> dptom@endor.corp.sgi.com (Tom Arnold) writes:\n\n>Okay you hockey playing fans/finatics out there. I'm looking over the wide \n>range of aluminum sticks for the first time. I've been playing with pieces\n>of lumbar that seem to weigh alot and break after a few uses, so I'm \n>thinking of changing to an aluminum shaft so when I break the blade all I \n>have to do is change it. The problem is that there is such a wide reange of\n>models and selections out there that I'm not certain which to consider. Can\n>any of you post some of your suggestions and experiences with the aluminum \n>sticks? What is the difference between models? What do you like/dislike about\n>them? And, which brands are best?\n>\n>\n\nI've had, and still have a few aluminum sticks.  I got my first when I was 15\n(a Christian), and broke the shaft halfway through the season, two years \nlater.  I bought another (a Canadian) at the beginning of the next season, \nand I still have it.  I also have an Easton, that a friend was getting rid \noff, after giving up the game.  I find that Easton blades are easier to get, \nbut all brands of blades are pretty well interchangeable.  Watch out for \ndried up bits of firewood, that some stores pass off as blades.  In my \nexperiences, the blades of an aluminum break more often than regular sticks, \nbut I've only ever broken one aluminum shaft.\n\nI like aluminum sticks.  The blades are quickly changed, even on the bench \nif you have to.  On the downside, the shaft won't break if you decide to \nimpale yourself on it :-)\n\nCiao,\nMark S.\n\n\"This is between me and the vegetable\"   - Rick Moranis in\n                                           Little Shop of Horrors\nMark Shoesmith\nshoe@physics.watstar.uwaterloo.ca\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7859, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: Backcountry Confidence\nOrganization: Computer Science Department,  Stanford University.\nLines: 26\n\nIn article <C5L02E.8GH@murdoch.acc.Virginia.EDU> rbw3q@rayleigh.mech.Virginia.EDU (Brad Whitehurst) writes:\n>\tThe rest of us fall in the middle.  There IS too much violent\n>crime in the U.S., but turning the whole country into an old-time\n>Dodge City (ref. to American Old West) is not the way.\n\nThat's an interesting statement.  There's quite a difference between\nHollywood's \"Old West\" and the real one.  Yes, there were drunks,\nsaloons, mining camps, and thugs.  However, as McGrath showed, the\nthugs preyed almost exclusively on one another.  McGrath claims that\nthis was due to the fact that no one much cared if someone who\ninsisted on getting into a fight got his way, even if he lost, while\nthey really did care when thugs preyed on others.\n\n>citizens should be able to own weapons, but we see no sense in some\n>types.\n\nWe haven't figured out that those distinctions don't actually work.\nMachine guns have been strictly regulated since 1934.  Said regulation\nis both perfect (legally owned machine guns aren't ever used\ncriminally) and a complete waste of time (the criminal use of machine\nguns hasn't change at all).  The result - we're now arguing about\nguns that LOOK like machine guns, but are no different than other\nguns.\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7860, "properties": {"category": "comp.windows.x", "text": "From: grp@Unify.com (Greg Pasquariello)\nSubject: Re: Anyone have experience with Visix' Galaxy?\nOrganization: Unify Corporation (Sacramento)\nLines: 24\n\nIn article <C56M19.17r@world.std.com>, grier@world.std.com (The Political Crony) writes:\n> \n> The title line says it. The Galaxy package was just recently announced, and\n> includes a GUI-builder and portable toolkit. I'm interested in any\n> feedback from those who may have used it thus far.\n\nWe've been using it for a year on Unix (Sun and HP) and Windows platforms.  In my\nopinion, it is the best toolkit on the market.  It supports a rich API to a high\nlevel IPC mechanism, file system abstraction, memory management, command driven\napplication development, drawing, geometry management, and, oh yeah, Open Look,\nMotif, MS-Windows and Mac (at the flip of a switch).\n\n> \n> Thanks\n> Jim Grier\n> grier@world.std.com\n> \n\n-- \n\n--\nGreg Pasquariello   \tgrp@unify.com \t        Hobnobbing with the ancients\nUnify Corporation\t   or\t\t       \n(916) 928-6258\t    ...!uunet!unify!grp\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7861, "properties": {"category": "talk.religion.misc", "text": "From: jmeritt@mental.MITRE.ORG (Jim Meritt - System Admin)\nSubject: An invisible God!\nOrganization: UTexas Mail-to-News Gateway\nLines: 14\nNNTP-Posting-Host: cs.utexas.edu\n\n God CAN be seen:\n        \"And I will take away my hand, and thou shalt see my backparts.\"\n        (Ex. 33:23)\n        \"And the Lord spake to Moses face to face, as a man speaketh to his\n        friend.\" (Ex. 33:11)\n        \"For I have seen God face to face, and my life is preserved.\"\n        (Gen. 32:30)\nGod CANNOT be seen:\n        \"No man hath seen God at any time.\" (John 1:18)\n        \"And he said, Thou canst not see my face; for there shall no man\n        see me and live.\" (Ex. 33:20)\n        \"Whom no man hath seen nor can see.\" (1 Tim. 6:16)\n\nPick what you want!\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.374+0000", "event": "documents", "entityId": 7862, "properties": {"category": "sci.space", "text": "From: gfk39017@uxa.cso.uiuc.edu (George F. Krumins)\nSubject: Re: Vandalizing the sky.\nOrganization: University of Illinois at Urbana\nLines: 31\n\nJeff.Cook@FtCollinsCO.NCR.COM (Jeff Cook) writes:\n\n>In article <C5t05K.DB6@research.canon.oz.au> enzo@research.canon.oz.au (Enzo Liguori) writes:\n\n>>Now, Space Marketing\n\n>>What about light pollution in observations? (I read somewhere else that\n>>it might even be visible during the day, leave alone at night).\n\n>I can't believe that a mile-long billboard would have any significant\n>effect on the overall sky brightness.  Venus is visible during the day,\n>but nobody complains about that.  Besides, it's in LEO, so it would only\n\nWhen I was at the Texas Star Party a few years ago, the sky was so dark\nthat Venus did, indeed, cause light pollution until it set.\n\nEven if the billboard were dark it could cause a problem.  Imagine observing an\nobject and halfway through your run, your object was occulted!\n\nI would guess that most of the people stating positive opinions are not \nfanatically serious observers.\n\nIt is so typical that the rights of the minority are extinguished by the\nwants of the majority, no matter how ridiculous those wants might be.\n \nGeorge Krumins\n-- \n\n--------------------------------------------------------------------------------\n|  George Krumins                                                              |\n|  gfk39017@uxa.cso.uiuc.edu                                                   |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7863, "properties": {"category": "talk.politics.guns", "text": "Subject: news says BATF indictment/warrant unsealed...\nFrom: kim39@scws8.harvard.edu (John Kim)\nDistribution: world\nOrganization: Harvard University Science Center\nNntp-Posting-Host: scws8.harvard.edu\nLines: 19\n\nSomething about how Koresh had threatened to cause local \nproblems with all these wepaons he had and was alleged to\nhave.  \n\nSomeone else will post more details soon, I'm sure.\n\nOther News:\nSniper injures 9 outside MCA buildling in L.A.  Man arrested--suspect\nwas disgruntled employee of Universal Studios, which\nis a division of M.C.A.\n\n\nQUESTION:\nWhat will Californians do with all those guns after the Reginald\ndenny trial?\n\n-Case Kim\nkim39@husc.harvard.edu\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7864, "properties": {"category": "talk.politics.mideast", "text": "From: clamen+@CS.CMU.EDU (Stewart Clamen)\nSubject: Re: Binyamin Netanyahu on CNN tonight.\nIn-Reply-To: mkaye@world.std.com's message of Thu, 15 Apr 1993 13:56:58 GMT\nOriginator: clamen@BYRON.SP.CS.CMU.EDU\nNntp-Posting-Host: byron.sp.cs.cmu.edu\nReply-To: clamen+@CS.CMU.EDU\nOrganization: School of Computer Science, Carnegie Mellon University\nLines: 15\n\n\nIn article <C5J2qz.MnE@world.std.com> mkaye@world.std.com (Martin Kaye) writes:\n\n   Great interview with Benjamin Netanyahu on CNN - Larry King Live (4/15/93)\n   This guy is knows what he is talking about. He is truely charismatic,\n   articulate, intelligent, and demonstrates real leadership qualities. \n\nI agree, but I wish I liked his politics.\n\n--\nStewart M. Clamen\t\t\tInternet:    clamen@cs.cmu.edu\nSchool of Computer Science\t\tUUCP: \t     uunet!\"clamen@cs.cmu.edu\"\nCarnegie Mellon University\t\tPhone: \t     +1 412 268 2145\n5000 Forbes Avenue\t\t\tFax:\t     +1 412 681 5739\nPittsburgh, PA 15213-3891, USA\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7865, "properties": {"category": "sci.crypt", "text": "From: pgf@srl03.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Univ. of Southwestern Louisiana\nDistribution: na\nLines: 25\n\nholland@CS.ColoState.EDU (douglas craig holland) writes:\n\n\n>\tWith E-Mail, if they can't break your PGP encryption, they'll just\n>call up one of their TEMPEST trucks and read the electromagnetic emmisions\n>from your computer or terminal.  Note that measures to protect yourself from\n>TEMPEST surveillance are still classified, as far as I know.\n\n1. I don't think they are classified.\n\n2. I could independently invent about half a dozen right off\nthe top of my head. If I had studied Advanced E & M a little better,\nI could probably come up with a _very_ good system.\n\n...\n>\tIf the new regime comes to fruition, make sure you protect your First\n>Amendment rights by asserting your Second Amendment Rights.\n\n>\t\t\t\t\t\tDoug Holland\n\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7866, "properties": {"category": "comp.windows.x", "text": "From: A.F.Savage@bradford.ac.uk (Adrian Savage)\nSubject: Searching for xgolf\nOrganization: University of Bradford, UK\nLines: 14\nX-Newsreader: TIN [version 1.1 PL6]\n\nI recently found the file xgolf on a German ftp site\n(reseq.regent.e-technik.tu-muenchen.de) but unfortunately the shar file\nwas incomplete and the author's email address given in the readme file\n(markh@saturn.ee.du.edu) does not work.\n\nCan anyone assist by giving the location of a full version of this (or\nany other golf game for X) game, or a way of contacting the author?\n\nPlease reply by email if you can help\n\nAde\n--\nAdrian Savage, University of Bradford, UK. Email: a.f.savage@bradford.ac.uk\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7867, "properties": {"category": "sci.crypt", "text": "From: ld231782@longs.lance.colostate.edu (L. Detweiler)\nSubject: Privacy & Anonymity on the Internet FAQ (3 of 3)\nSupersedes: <net-privacy/part3_733153240@GZA.COM>\nOrganization: TMP Enterprises\nLines: 1201\nExpires: 21 May 1993 04:00:06 GMT\nReply-To: ld231782@longs.lance.colostate.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Notes on the use, history, and value of anonymous Usenet\n posting and email remailing services\nX-Last-Updated: 1993/03/04\n\nArchive-name: net-privacy/part3\nLast-modified: 1993/3/3\nVersion: 2.1\n\n\nNOTES on ANONYMITY on the INTERNET\n==================================\n\nCompiled by L. Detweiler <ld231782@longs.lance.colostate.edu>.\n\n\n<8.1> What are some known anonymous remailing and posting sites?\n<8.2> What are the responsibilities associated with anonymity?\n<8.3> How do I `kill' anonymous postings?\n<8.4> What is the history behind anonymous posting servers?\n<8.5> What is the value of anonymity?\n<8.6> Should anonymous posting to all groups be allowed?\n<8.7> What should system operators do with anonymous postings?\n<8.8> What is going on with anon.penet.fi maintained by J. Helsingius?\n\n\n* * *\n\n_____\n<8.1> What are some known anonymous remailing and posting sites?\n\n  Currently the most stable of anonymous remailing and posting sites\n  is anon.penet.fi operated by julf@penet.fi for several months, who\n  has system adminstrator privileges and owns the equipment. \n  Including anonymized mail, Usenet posting, and return addresses \n  (no encryption).  Send mail to help@penet.fi for information.\n \n  Hal Finney has contributed an instruction manual for the cypherpunk\n  remailers on the ftp site soda.berkeley.edu (128.32.149.19):\n  pub/cypherpunks/hal's.instructions. See also scripts.tar.Z (UNIX\n  scripts to aid remailer use) and anonmail.arj (MSDOS batch files to\n  aid remailer use).\n\n  ebrandt@jarthur.claremont.edu\n  -----------------------------\n    Anonymized mail.  Request information from above address.\n    \n  elee7h5@rosebud.ee.uh.edu\n  -------------------------\n    Experimental anonymous remailer run Karl Barrus\n    <elee9sf@Menudo.UH.EDU>, with encryption to the server.  Request\n    information from that address.\n    \n  hal@alumni.caltech.edu\n  ----------------------\n    Experimental remailer with encryption to server and return\n    addresses.  Request information from above address.\n\n  hh@soda.berkeley.edu\n  hh@cicada.berkeley.edu\n  hh@pmantis.berkeley.edu\n  ----------------------\n    Experimental remailer.  Include header `Request-Remailing-To'.\n\n  nowhere@bsu-cs.bsu.edu \n  ----------------------\n    Experimental remailer allowing one level of chaining.  Run by\n    Chael Hall.  Request information from above address.\n\n  phantom@mead.u.washington.edu \n  -----------------------------\n    Experimental remailer with encryption to server.  `finger' site\n    address for information.\n\n  Notes\n  =====\n  \n  - Cypherpunk remailers tend to be unstable because they are often\n    running without site administrator knowledge. Liability issues\n    are wholly unresolved.\n  \n  - So far, all encryption is based on public-key cryptography and PGP\n    software (see the question on cryptography). \n\n  - Encryption aspects (message text, destination address, replies)\n    vary between sites.\n\n  - Multiple chaining, alias unlinking, and address encryption are\n    mostly untested, problematic, or unsupported at this time.\n\n_____\n<8.2> What are the responsibilities associated with anonymity?\n\n  \n  Users\n  -----\n\n  - Use anonymity only if you have to. Frivolous uses weaken the\n    seriousness and usefulness of the capability for others.\n  - Do not use anonymity to provoke, harass, or threaten others.\n  - Do not hide behind anonymity to evade established conventions on\n    Usenet,  such as posting binary pictures to regular newsgroups.\n  - If posting large files, be attentive to bandwidth considerations.\n    Remember, simply sending the posting to the service increases\n    network traffic.\n  - Avoid posting anonymously to the regular hierarchy of Usenet; this\n    is the mostly likely place to alienate readers. The `alt'\n    hierarchy is preferred.\n  - Give as much information as possible in the posting (i.e.\n    references, etc.) Remember that content is the only means for\n    readers to judge the truth of the message, and that any\n    inaccuracies will tend to discredit the entire message and even\n    future ones under the same handle.\n  - Be careful not to include information that will reveal your\n    identity or enable someone to deduce it.  Test the system by\n    sending anonymized mail to yourself.\n  - Be aware of the policies of the anonymous site and respect them. \n    Be prepared to forfeit your anonymity if you abuse the privilege.\n  - Be considerate and respectful of other's objections to anonymity.\n  - ``Hit-and-run'' anonymity should be used with utmost reservation.\n    Use services that provide anonymous return addresses instead.\n  - Be courteous to the system operator, who may have invested large\n    amounts of time, be personally risking his account, or dedicating\n    his hardware, all for your convenience.\n\n  Operators\n  ---------\n\n  - Document thoroughly acceptable and unacceptable uses in an\n    introductory file that is sent to new users.  Have a coherent and\n    consistent policy and stick to it. State clearly what logging and\n    monitoring is occurring. Describe your background, interest, and\n    security measures. Will the general approach be totalitarian or\n    lassaiz-faire?\n  - Formulate a plan for problematic ethical situations and anticipate\n    potentially intense moral quandaries and dilemmas. What if a user\n    is blackmailing someone through your service? What if a user\n    posts suicidal messages through your service? Remember, your\n    users trust you to protect them.\n  - In the site introductory note, give clear examples  of situations\n    where you will take action and what these actions will be (e.g.\n    warn the user, limit anonymity to email or posting only, revoke\n    the account, 'out' the user, contact local administrator, etc.)\n  - Describe exactly the limitations of the software and hardware.\n    Address the bandwidth limitations of your site. Report candidly\n    and thoroughly all bugs that have  occurred.  Work closely with\n    users to isolate and fix bugs. Address all bugs noted below under\n    ``(in)stability of anonymity''.\n  - Document the stability of the site---how long has it been running?\n    What compromises have occured? Why are you running it? What is\n    your commitment to it?\n  - Include a disclaimer in outgoing mail and messages.  Include an\n    address for complaints, ideally appended to every outgoing item. \n    Consult a lawyer about your liability.\n  - Be committed to the long-term stability of the site. Be prepared\n    to deal with complaints and `hate mail' addressed to you.  If you\n    do not own the hardware the system runs on or are not the system\n    adminstrator, consult those who do and are.\n  - Be considerate of providing anonymity to various groups.  If\n    possible, query group readers.\n  - Keep a uniformity and simplicity of style in outgoing message\n    format that can be screened effectively by kill files.  Ensure\n    the key text `Anon' is  somewhere in every header.\n  - Take precautions to ensure the security of the server from\n    physical and  network-based attacks and infiltrations.\n\n  Readers\n  -------\n  \n  - Do not complain, attack, or discredit a poster for the sole reason\n    that he is posting anonymously, make blanket condemnations that\n    equate anonymity with cowardice and criminality, or assail\n    anonymous traffic in general for mostly neutral reasons (e.g. its\n    volume is heavy or increasing).\n  - React to the anonymous information unemotionally.  Abusive posters\n    will be encouraged further if they get irrationally irate\n    responses.  Sometimes the most effective response is silence.\n  - Notify operators if very severe abuses occur, such as piracy,\n    harassment, extortion, etc.\n  - Do not complain about postings being inappropriate because they\n    offend you personally.\n  - Use kill files to screen anonymous postings if you object to the\n    idea of anonymity itself.\n  - Avoid the temptation to proclaim that all anonymous postings\n    should be barred from particular groups because no `possible' or\n    `conceivable' need exists.\n\n  References\n  ----------\n  \n  See e.g. ftp.eff.org:/pub/academic/anonymity:\n\n  > This article is an excerpt from an issue of FIDONEWS on individual\n  > privacy and the use of handles.  It accepts the need of a system\n  > operator to know the name of a user; but suggests that the use of\n  > a handle is analogous to a request to withhold the name in a\n  > letter to the editor. The article concludes with a set of\n  > guidelines for preserving the right to be anonymous.\n\n_____\n<8.3> How do I `kill' anonymous postings?\n\n  James Thomas Green <jgreen@zeus.calpoly.edu>:\n\n  > Try putting this in your kill file:\n  >   \n  >   /Anon/h:j\n  >   /Anonymous/h:j\n  > \n  > This will search the headers of the messages and kill any that\n  > contain `Anon' or `Anonymous' in them.  Not perfect and won't\n  > kill followups. \n  \n  Note that anonymous server operators have the capability to mask\n  anonymous postings under which the above method will not work; so\n  far this practice is not widespread, but it may become more common\n  as a countermeasure to widespread anonymous filtering.\n  \n_____\n<8.4> What is the history behind anonymous posting servers?\n\n  Originally anonymous posting services were introduced for\n  individual, particularly volatile newsgroups, where anonymity is\n  almost the preferred method of communication, such as talk.abortion\n  and alt.sex.bondage.  One of the first was one by Dave Mack\n  started in ~1988 for alt.sex.bondage. Another early one was\n  wizvax.methuen.ma.us run by Stephanie Gilgut (Gilgut Enterprises)\n  but was disbanded due to  lack of funds.  The system provided\n  anonymous return addresses. n7kbt.rain.com (John Opalko) took up\n  the functions of this server, including reinstating the anonymous\n  alias file. The group ``alt.personals has been chewing through\n  servers like there's no tomorrow.''\n  \n  Spurred by the disappearance of `wizvax' and interested in\n  researching the idea, Karl Kleinpaste\n  <Karl_Kleinpaste@godiva.nectar.cs.cmu.edu> developed his own system\n  from scratch in six hours. By this time the idea of extending the\n  server to new, more `mainstream'  groups was starting to emerge,\n  and he explored the possibility partly at the specific request  by\n  multiple users for anonymity in other groups. ``The intended\n  advantage of my system was specifically to allow multiple group\n  support, with a single anon identifier across all.  This was\n  arguably the single biggest deficiency of previous anon systems.'' \n  K. Kleinpaste posted a message on rec.nude asking users whether an\n  anonymous service would be welcome there, and judged a consensus\n  against it. \n\n  K. Kleinpaste introduced what he calls a ``fire extinguisher'' to\n  `squelch' or `plonk' abusive users in response to complaints, and\n  used this in three cases. Nevertheless, after a few months of\n  intense traffic he was eventually overwhelmed by the abuses of his\n  server. ``Even as restricted as it was, my system was subjected to\n  abuses to the point where it was ordered dismantled by the\n  facilities staff here. Such abuses started right after it was\n  created.''\n\n  In ~Nov 1992, Johan Helsingius (julf@penet.FI) set up the most\n  controversial anonymous site to date. anon.penet.fi is based on\n  scripts and C code written by K. Kleinpaste and supports anonymized\n  mail, posting, and return addresses. He initially wanted to confine\n  the service to Scandinavian users but expanded it to worldwide\n  accessability in response to 'lots' of international requests.\n  \n  J. Helsingius policy of allowing anonymous posting to every Usenet\n  newsgroup has been met with strong and serious ideological\n  opposition (e.g. by news adminstrators in news.admin.policy).\n  Because of the relative newness and recent emergence of the medium,\n  abuses by anonymous posters  tend to have higher visibility than\n  ``routine'' abuses. His total commitment to preservation of\n  anonymity is also controversial.\n\n  For example, in a highly controversial and publicized case in ~Feb\n  1993,  an anonymous user posted a supposed transcript of desperate\n  crew dialogue during the Challenger shuttle disaster via\n  anon.penet.fi to sci.astro. Despite that the transcript had been\n  posted in the same place up to a year earlier (then\n  non-anonymously) and actually originated not with the poster but a\n  New York news tabloid, subsequent responses consisted largely of\n  vociferous outrage at the poster's use of anonymity, reverberating\n  through many newsgroups. \n  \n  The original poster, using the same anonymous handle, later conceded\n  that the story ``seemed likely to have been fabricated,''\n  suggesting the plausible possibility that the original intent was\n  not to provoke outrage but gauge reactions on the authenticity of\n  the story (albeit crudely), free of personal risk from perceived\n  association with the item.  The ensuing commotion generated queries\n  for the original article by late-entering readers. The anonymous\n  user later posted deliberately offensive comments at his\n  detractors.\n\n  Despite piercingly irate and outraged complaints, and even the vocal\n  opposition and verbal abuse of K. Kleinpaste and eminent news\n  operators, J. Helsingius has largely avoided use of the ``fire\n  extingisher'' and the ``group bouncer'' mechanisms that limit the\n  scope of the service. As of ~March 1993 the anon.penet.fi site is\n  best described as `inundated': it has registered over 13,000 users\n  in its initial three months of operation, forwards ~3000 messages a\n  day, and approximately 5% of all Usenet postings are anonymized\n  through the site. The immense popularity is probably largely due\n  to the capability for `global' anonymity which has allowed users to\n  find creative uses in diverse areas not previously envisioned.\n\n  Johan Helsingius has been subject to extraordinary pressure to\n  dismantle his server in ~Feb 1993. At one point K. Kleinpaste\n  threatened publicly to organize a sort of vigilante group of irate\n  news operators to  send out revocation commands on all messages\n  originating from the site.  J. Helsingius has also alluded to\n  threats of flooding the  server.  The server has crashed several\n  times, at least once due to a saturation `mailbombing' through it\n  by an anonymous user.  Mr. Helsingius reports spending up to 5\n  hours per day  answering email requests alone associated with the\n  service's administration. In response to the serious threats he\n  disabled global group access temporarily for one week and\n  encouraged his users to defend the service publicly.\n  \n  Based on fast-moving dialogue and creative suggestions by\n  ``cypherpunks,'' J. Helsingius has identified many security\n  weaknesses and valuable new features for the service, and is\n  currently in the process of code development and testing. He is\n  planning on upgrading the IBM compatible 386 machine to a 486 soon\n  to handle the voluminous load and is  considering integrating a new\n  system with very sophisticated functionality, including multiple\n  email aliases, alias allocation control, public-key encryption,\n  etc.\n\n  A very sophisticated anonymous posting system was set up in Dec.\n  1992 by D. Clunie <dclunie@pax.tpa.com.au> that used cryptography\n  in both directions (to/from) the server for the highest degree of\n  confidentiality seen so far.  However, it was running on a public\n  access account, and he had to shut it down after only several\n  weeks, upon receiving requests and conditions apparently ultimately\n  originating from NSF representatives. D. Clunie has released the\n  software to the public domain.\n\n  Recently the idea of a newsgroup devoted to `whistleblowing' on\n  government abuses has received wide and focused attention, and\n  group formation is currently underway.  In the basic scenario the\n  group would allow people to post pseudonymously using remailers,\n  and even establish reputations based on their authentifiable\n  digital signatures. The traffic may eventually reach reporters in\n  the mainstream news media.  deltorto@aol.com has volunteered to\n  attack multiple aspects of this project, including distributing\n  easy-to-read documentation on posting, anonymization, and\n  encryption.\n\n  See also sections on ``views on anonymous posting'' below and ``what\n  is going on with anon.penet.fi?'' in this document.\n  \n  (Thanks to Carl Kleinpaste\n  <Karl_Kleinpaste@godiva.nectar.cs.cmu.edu>, David Clunie\n  <dclunie@pax.tpa.com.au> and Johan Helsingius <julf@penet.fi> for\n  contributions here.)\n\n\n_____\n<8.5> What is the value of anonymity?\n\n  KONDARED@PURCCVM.BITNET:\n    \n  > I think anonymous posts do help in focusing our attention on the\n  > content of one's message. Sure lot of anonymous posts are abusive\n  > or frivolous but in most cases these are by users who find the\n  > anon facility novel. Once the novelty wears off they are stopping\n  > their pranks...\n\n  morgan@engr.uky.edu (Wes Morgan):\n\n  > I don't mind seeing the miscellaneous hatred/prejudice/racism;\n  > those things are part of our nature.  However,  the notion of\n  > providing anonymity's shield for these ideas repulses me.  If\n  > they have such strong feelings, why can't they put their name(s)\n  > on  their postings? ... Quite frankly, I loathe communication\n  > with people who refuse to use their names.\n\n  dclunie@pax.tpa.com.au (David Clunie)\n   \n  > Many seem to question the value of anonymity. But who are they to\n  > say what risks another individual should take ? There is no\n  > question that in this rather conservative society that we live\n  > in, holding certain views, making certain statements, adopting a\n  > certain lifestyle, are likely to result in public censure,\n  > ridicule, loss of status, employment, or even legal action. Given\n  > the heterogeneity of the legal jurisdictions from where the many\n  > contributors to usenet post, who knows what is legal and what is\n  > not ! Some say that anonymous posters are \"cowards\" and should\n  > stand up and be counted. Perhaps that is one point of view but\n  > what right do these detractors have to exercise such censorship ?\n\n  From: doug@cc.ysu.edu (Doug Sewell)\n  \n  > Why is it censorship to not expect someone to speak for\n  > themselves, without the cloak of anonymity. This is at best a\n  > lame argument. \n  > \n  > You tell me why what you have to say requires anonymity.  And you\n  > tell me why the wishes of a majority of non-anonymous users of a\n  > newsgroup should be disregarded when they don't want anonymous\n  > posts.\n  > \n  > Anonymous users have LESS rights than any others. They are not\n  > legitimate usenet participants. I would not honor RFDs, CFVs,\n  > control messages, or votes from one.\n\n  brad@clarinet.com (Brad Templeton):\n  \n  > I can think of no disadvantage caused by anon posting sites that\n  > doesn't already exist, other than the fact that they do make more\n  > naive net users who don't know how to post anonymously the old\n  > way more prone to do it.\n\n  From: mandel@netcom.com (Tom Mandel)\n  \n  > I cannot speak for others but I regard anonymous postings in a\n  > serious discussion as pretty much worthless. ... views that hide \n  > behind the veil of anon are hardly worth the trouble of reading.\n  \n  n8729@anon.penet.fi (Hank Pankey)\n  \n  > Since I began posting anonymously (to show support for general\n  > principles of personal privacy) I have been subject to far more\n  > abuse and attack than I ever received before. People seem to\n  > find it easier to flame and insult someone whose name they don't\n  > know. Perhaps it's easier to pretend that there is no person\n  > behind the email address who feels the sting of abusive comments.\n  > \n  > Anonymity does hinder some methods of controlling other posters'\n  > actions.  People who seek such control will naturally oppose it.\n\n  From: 00acearl@leo.bsuvc.bsu.edu\n  \n  > Instead of making this a \"free-er medium\" by allowing posters to\n  > \"protect themselves\" with anonymity, simply require that all\n  > posters be prepared to discuss their sources of information and\n  > take the heat for unsubstantiated dribble.  This seems to be the\n  > way things are currently done; \n\n  xtkmg@trentu.ca (Kate Gregory):\n  \n  > In misc.kids there are three threads going on started by anonymous\n  > posters. One was about changing jobs so as to work less hours,\n  > job sharing and so on, from a woman who didn't want anyone at her\n  > current place of work to know she was thinking of looking for\n  > work elsewhere. The next was from a woman who is thinking of\n  > having a baby sometime soon and doesn't want coworkers, friends,\n  > family etc etc to know all about it, but who wants advice. The\n  > third is about sex after parenthood -- actually this was started\n  > by people posting in the usual way but then it was pointed out\n  > that the anonymous posting service might let more people\n  > participate.\n  > \n  > Misc.kids doesn't seem to be suffering any harm from the presence\n  > of anonymous posters; in fact it seems to have been helped by it.\n\n  hoey@zogwarg.etl.army.mil (Dan Hoey):\n  \n  > While there has never been any real security against anonymous or\n  > forged postings on Usenet, the process has until now been\n  > sufficiently inconvenient, error-prone, and undocumented to limit\n  > its use by persons who have not learned the culture of the net.\n  >\n  > On the other hand, a recent use of the anonymous posting service\n  > on sci.math seemed seemed to be a student asking help on a\n  > homework problem. It has now been attributed to a teacher,\n  > asking for an explanation of a dubious answer in his teaching\n  > guide.  He says his news posting is broken, so he is using the\n  > anonymous service as a mail-to-news gateway.\n\n  Karl Barrus <elee9sf@Menudo.UH.EDU>\n   \n  > Some argue that the opinions of the people who hide behind a veil\n  > of anonymity are worthless, and that people should own up to\n  > their thoughts.  I agree with the latter point - in an ideal\n  > world we would all be sitting around engaging in Socratic\n  > dialogues, freely exchanging our opinions in an effort to\n  > learn.  But in an ideal world nobody will threaten you for your\n  > thoughts, or ridicule you.\n  > \n  > But we live in a world where the people who don't agree with you\n  > may try to harm you.  Let's face it, some people aren't going to\n  > agree with your opinion no matter how logically you try to\n  > present it, or how reasoned out it may be.  This is sad since it\n  > does restrict people from voicing their opinions.\n\n  red@redpoll.neoucom.edu (Richard E. Depew):\n\n  > The consensus seems to be that a general anonymous posting service\n  > such as that at anon.penet.fi seems sufficiently corrosive of the\n  > trust and civility of the net that this particular experiment\n  > should be ended.  Perhaps the next time the question comes up we\n  > can say: \"We tried it - we learned it does more harm than good -\n  > and we stopped it.\" \n\n  From: C96@vm.urz.uni-heidelberg.de (Alexander EICHENER)\n\n  > anonymous posting has not created major problems aside from\n  > angering irate people (like you?) who would rather ban\n  > anonymous/pseudonymous posting altogether because \"real men can\n  > stand up for what they said\" or comparable puerile arguments as\n  > others have brought up.\n\n  dave@elxr.jpl.nasa.gov (Dave Hayes):\n\n  > What a primal example of human nature. I have three questions for\n  > you folks. \n  > \n  > Do people really say different things to each other based upon\n  > whether their identity is or isn't known?\n  > \n  > Are people really so affected by what other people say that the\n  > verbage is labeled \"abuse\"?\n  > \n  > Most importantly, on a forum that prizes itself on the freedom of\n  > communication that it enjoys, is there really such a thing as\n  > freedom of communication?\n  \n  From: terry@geovision.gvc.com (Terry McGonigal)\n  \n  > <sigh>...  Just how many anon services are needed?  Will\n  > *everybody* start running one soon?  What's the purpose?  Who\n  > stands to benefit when there are N anon services, then 2*N, then\n  > N^2, out there.  Where *has* this sudden fasination with anon\n  > services come from?\n  > \n  > For better or (IMHO) worse, it looks like we'er gonna get stuck\n  > with these things, and as much as I don't like the idea (of\n  > services like this becoming the norm) I don't really think\n  > there's much to be done since it's obvious that anyone who wants\n  > to can set one up with a bit of work.\n\n  Karl_Kleinpaste@cs.cmu.edu (Karl Kleinpaste):\n\n  > Weak reasoning.\n  > With freedom comes responsibility.\n\n  dave@elxr.jpl.nasa.gov (Dave Hayes):\n  \n  > Responsibility isn't real if it is enforced. True responsibilty\n  > comes with no coercion. \n\n_____\n<8.6> Should anonymous posting to all groups be allowed?\n\n  morgan@engr.uky.edu (Wes Morgan):\n  \n  > I will be the first to admit that I hold some controversial\n  > opinions; indeed, I'm sure that none of us are completely\n  > orthodox in our opinions. However,  I've received *hundreds* of\n  > anonymous email messages over the last few years; fewer than 20\n  > of them were \"reasonable posts made with good motives.\" It's \n  > getting more and more difficult to remember why we need anonymity\n  > at all; the abusers are (once again) lousing things up for those\n  > who truly need the service  (or those who would put it to good\n  > use).\n  > \n  > I'm not suggesting that we should ban anonymous servers; as I've\n  > said, there are several situations in which anonymity is a Good\n  > Thing (tm). \n  > \n  > However, the notion that anonymity's shield should be\n  > automatically extended to every Usenet discussion is ridiculous;\n  > it opens the door to further abuse. \n\n  twpierce@unix.amherst.edu (Tim Pierce):\n  \n  > Of course, how does one determine whether a \"group\" requests the\n  > service?  A flat majority of posters voting in favor? A positive\n  > margin of 100 votes?  Or what?  No one speaks for a newsgroup.\n  > \n  > I'm not convinced by the arguments that an anonymous posting\n  > service for all newsgroups is inherently a bad idea, simply\n  > because it's a diversion from the status quo. Since the status\n  > quo previously permitted anonymous posting to *no* newsgroups,\n  > any anonymous posting service would reject the status quo.\n  \n  hartman@ulogic.UUCP (Richard M. Hartman) writes:\n  \n  > It is facist to suggest that a newsgroup is best able to decide\n  > whether it wants to allow anonymous postings instead of having\n  > them forced upon them by an service administrator?\n\n  ogil@quads.uchicago.edu (Brian W. Ogilvie):\n\n  > The service provides a mechanism for forwarding mail to the\n  > original poster. Since most Usenet readers don't know John Smith\n  > from Jane Doe except by their opinions and their address, the\n  > effect of having an anonymous posting to which mail replies can\n  > be directed is minimal, except for those who personally know the\n  > poster--and ... the lack of anonymity could be serious. Any\n  > mechanism like this is liable to abuse, but the benefits as well\n  > as the costs must be weighed. Limiting the service to alt groups,\n  > or specific groups, would not help those who want advice on\n  > sensitive issues in more 'professional' newsgroups.\n\n  From: tarl@sw.stratus.com (Tarl Neustaedter)\n  \n  > An additional point is that some of us find anonimity in technical\n  > matters to be profoundly offensive; anonimity in different forums\n  > has different meanings. If I get a phone call from someone who\n  > won't identify himself, I hang up. If I get U.S. mail with no\n  > return address, it goes into the garbage unopened. If someone\n  > accosts me in the street while wearing a mask, I back away -\n  > carefully, and expecting violence. In a technical discussion,\n  > anonimity means that the individual isn't willing to associate\n  > himself with the matter being discussed, which discredits his\n  > utterances and makes listening to them a waste of time.\n  >   \n  > Anonimity leads to fun psych experiments; the literature is filled\n  > with all the various things that people will do anonymously that\n  > they won't otherwise. Including one notorious study involving\n  > torture that would not have passed today's ethical standards. Fun\n  > stuff, in any case.\n  > \n  > FINE. LEAVE US OUT OF IT.\n\n  From: jbuck@forney.berkeley.edu (Joe Buck)\n\n  > You obviously have never submitted an article to a refereed\n  > journal, where you will receive anonymous reviews through a server\n  > (the editor) that behaves much like the one in Finland (e.g. you \n  > may reply and the editor will maintain the anonymity).  ...  Your\n  > comparison of someone who wants to express him/herself on a \n  > technical issue anonymously with a person who approaches you on a \n  > dark street with a ski mask is just emotionally overwrought \n  > nonsense; such posters pose no physical threat to you.\n \n  jik@mit.edu (J. Kamens):\n  \n  > It seems obvious to me that the default should be *not* to allow\n  > anonymous postings in a newsgroup.  The Usenet has always\n  > operated on the principle that the status quo should be kept\n  > unless there's a large number of people who want to change it.\n  > \n  > If someone REALLY needs to post a message anonymous in a newsgroup\n  > in which this usually isn't done, they can usually find someone\n  > on the net to do this for them. They don't need an automated\n  > service to do it, and the automated service is by its nature\n  > incapable of making the judgment call necessary to decide whether\n  > a particular posting really needs to be anonymous.\n\n  From: twpierce@unix.amherst.edu (Tim Pierce)\n  \n  > For any newsgroup you name, I bet I can envision a scenario\n  > involving a need for secrecy. If an accurate content-based\n  > filter of each anonymous posting could be devised to screen out\n  > those that don't require secrecy, wonderful.  But it can't be\n  > done.\n\n  From: lhp@daimi.aau.dk (Lasse Hiller|e Petersen)\n  \n  > If a newsgroup wants to be noise- and nuisance-free, then it\n  > should call for moderation. This should happen on a per-newsgroup\n  > basis, and not as a general USENET ban on anonymous postings. Of\n  > course one principle of moderation might be to keep out all\n  > anonymous postings, and could be achieved automatically. It would\n  > still be _moderation_. Personally I would prefer moderation\n  > criteria being based on actual content.\n\n  David A. Clunie (dclunie@pax.tpa.com.au)\n  \n  > If a \"group\" doesn't want to receive certain posts it should\n  > become moderated - there are clearly defined mechanisms on\n  > non-alt groups for this to take place. An automated moderator\n  > excluding posts from certain (eg. anonymous) sites or individuals\n  > could easily be established. If anyone wants to take such a\n  > draconian approach then they are welcome to do so and good luck\n  > to them. I doubt if I will be reading their group !\n\n  From: dave@frackit.UUCP (Dave Ratcliffe)\n  \n  > What possible need would someone have for posting anonymously to a\n  > sci.* group? \n  > \n  > Sure most adults are willing to post under their own names. Why\n  > would they want to hide behind an anonymous posting service?\n  > Ashamed of what they have to say or just trying to rile people\n  > without fear of being identified? \n  > \n  > Anonymous posting have their place in CERTAIN groups. If I or\n  > anyone else needs to tell you what those groups are then you've\n  > been on another planet breathing exotic gases for too long.\n\n  From: Karl_Kleinpaste@cs.cmu.edu\n  \n  > It's bloody fascinating that (all?) the proponents of unimpeded\n  > universal anon posting access can't seem to find any middle\n  > ground at all.  Why is there such a perception of\n  > absolutism? Where does this instant gratification syndrome come\n  > from, \"I want anon access and I want it NOW\"?  Who are the\n  > control freaks here?\n  \n  From: 00acearl@leo.bsuvc.bsu.edu\n\n  > Remember, this is a newsgroup for posters writing about SCIENTIFIC\n  > issues. Anonymous discussion of scientific issues leads to bad\n  > science.\n\n  From: noring@netcom.com (Jon Noring)\n  \n  > Though many have personal philosophical arguments against\n  > anonymous posters, their arguments have not been compelling\n  > enough to convince me that omni-newsgroup anonymous posting\n  > should be banned or severely restricted.  Though I cannot prove\n  > it, it seems to me that those who do not like anonymous posting\n  > (in principle) do so for reasons that are personal (read,\n  > psychological discomfort) rather than for reasons related to\n  > maintaining the \"integrity\" of Usenet.\n  > \n  > Remember, it is impossible to be able to ascertain all the\n  > conceivable and legitimate motives for anonymous posting to\n  > newsgroups one normally would not deem to be \"sensitive\". ... in\n  > general, I fear even letting newsgroup readers vote on either\n  > allowing or not allowing anonymous posting, since a priori they\n  > *cannot* know all the motives of *legitimate* posters, and I do\n  > not believe that any system should ever be instituted that would\n  > inhibit the posting of legitimate and informative posts. \n\n  lestat@wixer.cactus.org (Lyle J. Mackey) writes:\n\n  > I personally don't believe that pseudonymous postings are\n  > appropriate in a serious discussion area.  If there is a\n  > LEGITIMATE reason for concealing the posters' identity, perhaps,\n  > but simply because they're not so sure if they want their name\n  > attached doesn't qualify as LEGITIMATE in my book.  (Oh, and if\n  > you can come up with a legitimate purpose for anonymous postings,\n  > please, enlighten me.)\n\n  sderby@crick.ssctr.bcm.tmc.edu (Stuart P. Derby)\n  \n  > Three of our (the U.S.'s) founding fathers, Madison, Hamilton, and\n  > Jay, seemed to think \"anonymous posting\" was OK. The Federalist\n  > papers were originally printed in New York newspapers with\n  > authorship attributed to \"Publius\". I wonder if you would find\n  > their purpose \"LEGITIMATE\"?\n\n\n_____\n<8.7> What should system operators do with anonymous postings?\n\n  From: emcguire@intellection.com (Ed McGuire)\n  \n  > I would like to know how to junk all articles posted by the\n  > anonymous service currently being discussed.  Ideally I would\n  > actually tell my feed site not to feed me articles posted by the\n  > anonymous service. Assuming the C News Performance Release, what\n  > is a simple way to accomplish this? Or where should I look to\n  > learn how to do it myself?\n  \n  From: dclunie@pax.tpa.com.au (David Clunie)\n  \n  > That's a bit draconian isn't it ? Have your users unanimously\n  > decided that they would like you to do this or have you decided\n  > for them ?\n  \n  From: emcguire@intellection.com (Ed McGuire)\n  \n  > Good question.  Nobody has decided. I have no definite plan to do\n  > this, just wanted the technical data.\n\n  Carl Kleinpaste (Karl_Kleinpaste@godiva.nectar.cs.cmu.edu):\n  \n  > ...were I to be in the position of offering such a service again,\n  > my promises of protection of anonymity would be limited.  Not on\n  > the basis of personal opinion of what gets posted, but on the\n  > basis of postings which disrupt the smooth operation of the\n  > Usenet. The most obvious and direct recourse would be to `out'\n  > the abusive individual. Less drastic possibilities exist -- the\n  > software supports a \"fire extinguisher\" by which individuals can\n  > be prevented from posting.\n\n  john@iastate.edu (John Hascall):\n  \n  > Since when is Usenet a democracy? If someone wants to run an\n  > anonymous service, that's their business. If you want to put\n  > that host in your killfile, that's your business. If a newsadmin\n  > wants to blanket-drop all postings from that site, that's between\n  > them and the other people at that site. If everyone ignores a\n  > service, the service effectively doesn't exist.\n\n  From: jik@athena.mit.edu (Jonathan I. Kamens)\n  \n  > NNTP servers that allow posting from anyone are NOT \"a service to\n  > the net.\"  They do the net a disservice.\n  > \n  > Terminal servers have the same problems as open NNTP servers --\n  > they allow people who want to do illegal/immoral/unethical things\n  > on the Internet to do so without accountability.\n  > \n  > There are, by now, public access sites all over this country, if\n  > not all over the world, that allow very inexpensive access to the\n  > Usenet and the Internet.  There is no reason for NNTP servers to\n  > allow anyone to post messages through them, and there is no\n  > reason for terminal servers to allow anyone to connect to them\n  > and then make outbound connections through them.  Perhaps when it\n  > was harder to get to the Internet or the Usenet, open servers\n  > could be justified, but not now.\n\n  jbotz@mtholyoke.edu (Jurgen Botz): \n  \n  > I think that what ... these points show clearly is that an\n  > anonymous posting service has a great deal of responsibility,\n  > both towards its clients and towards the Net as a whole.  Such a\n  > service should (IMHO) have a set of well-defined rules and a\n  > contract that its clients should sign, under the terms of which\n  > they are assured anonymity.\n\n  From: an8785@anon.penet.fi\n  \n  > Is the problem that some are used to \"punishing\" posters who are\n  > upsetting in some vague way by complaining to the (usually\n  > acquiescent) sysadmin or organizations that the poster belongs\n  > to? That surely is the most gutless approach to solving\n  > problems, but my experience on the net shows that the same users\n  > who vilify anonymous postings are the first to write obsessively\n  > detailed grievances to the poster's supervisor when his or her\n  > tranquility is disturbed by some \"intrusive\" or subversive post\n  > or another.\n  > \n  > Anonymous postings prevent just this kind of intimidation.\n\n  From: gandalf@cyberspace.org (Eric Schilling)\n  \n  > The main point I would like to make here is that while we can go\n  > through and revise the news sw to \"reject anon posts to technical\n  > newsgroups\" or some such thing, I think the attempt will prove\n  > futile. Each attempt to modify news can result in a changed\n  > approach by anon service providers to thwart the change.  I think\n  > this would be pointless.\n\n  From: julf@penet.fi (Johan Helsingius)\n\n  > I have tried to stay out of this discussion, and see where the\n  > discussion leads. But now I rally feel like I have to speak up.\n  > ... I have repeatedly made clear ... that I *do* block users if\n  > they continue their abuse after having been warned. In many cases\n  > the users have taken heed of the warning and stopped, and in some\n  > cases even apologized in public. And when the warning has not had\n  > the desired effect, I have blocked a number of users. I have also\n  > blocked access to groups where the readership has taken a vote to\n  > ban anonymous postings, although I feel changing the newsgroup\n  > status to moderated is the only permanent solution for newsgroups\n  > that want to \"formalize\" discussion.\n \n  red@redpoll.neoucom.edu (Richard E. Depew)\n\n  > Does this ... mean that you are volunteering to issue a Request \n  > For Discussion to ban anonymous postings or to moderate each of \n  > the 4000+ newsgroups that your server can reach?  I don't think \n  > so, but this illustrates the trouble that your server is causing!\n  >\n  > please listen to the consensus of the news administrators in this \n  > group:  any newsgroup should be consulted *before* letting your \n  > server post messages to that group.\n \n  From: C96@vm.urz.uni-heidelberg.de (Alexander EICHENER)\n  \n  > There is no pompous \"consensus of *the* news administrators\" \n  > here - maybe you would like to invent one. There is a sizeable \n  > number of people who are concerned about the possible (and, to a \n  > minor extent, about the actual abuse of the server as it is \n  > configured now). These concerns are respectable; Johan is dealing\n  > with them. ... There are some (few) who rage with foam before \n  > their mouth and condemn the service altogether. And a number who\n  > defend it, pointing out, like Kate Gregory, that even a group \n  > like misc.kids. can benefit from pseudonymous postings.\n\n  From: julf@penet.fi (Johan Helsingius)\n\n  > I have answered a lot of personal mail related to server abuse,\n  > and as a result of that, blocked a number of abusive users. I\n  > have also withdrawn the service from several newsgroups where the\n  > users have taken a vote on the issue. I have not made any\n  > comments on news.admin.policy, partly because the\n  > newly-implemented password feature (as a emergency measure\n  > against a security hole) has kept me really busy answering user\n  > queries the last two weeks, and partly because I feel it is not\n  > for me to justify the service, but for the users. The problem\n  > with news.admin.policy is that the readership is rather elective,\n  > representing people whith a strong interest in centralised\n  > control.\n\n  From: hartman@ulogic.UUCP (Richard M. Hartman)\n  \n  > This seems to be a rather bigoted attitude.  I would consider that\n  > this group is for anyone who wishes to discuss how the net should\n  > be controlled.  Saying that we only have an interest in\n  > \"centralized control\" is a clear indication of bias.  You are\n  > perfectly welcome to join in the discussions here to promote your\n  > views on control.\n\n  jbuck@ohm.berkeley.edu\n  \n  > This whole debate is a lot of \"sound and fury signifying nothing\"\n  > because, even if you all decide to ban anonymous posting servers,\n  > it is not enforceable.  The only people who conceivably could\n  > enforce retrictions are those that control the international\n  > links.\n  > \n  > Policy changes should be made by cooperation, not by attempting\n  > to dictate. ...you need to persuade those who run the services\n  > to act like this through friendly persuasion, not by trying to\n  > beat them over the head with a stick (especially a stick you\n  > don't even have).\n\n  spp@zabriskie.berkeley.edu (Steve Pope)\n  \n  > I am finding this bias against pseudonymity boring.  Our friend\n  > posting through penet has a point.  The old guard would like to\n  > keep their network the way it always has been... and this new\n  > thing, these pseudonymous servers, cuts into their turf.  So they\n  > whine and bitch about it, and every time there's the slightest\n  > abuse (such as somebody's .sig being too long),  they try to\n  > parlay that into an argument against pseudonymity.\n  > \n  > I'll go on record as saying: three cheers for the admins at anon\n  > servers like penet, pax, and n7kbt... and for all the  access\n  > service providers who are willing to preserve their clients\n  > privacy.\n  > \n  > And a pox on those who try to defeat and restrict pseudonymity.\n  \n  mimir@stein.u.washington.edu (Al Billings)\n  \n  > I wouldn't help people get rid of anon postings as a group. If you\n  > don't like what someone says, then you put THAT anon address in\n  > your kill file, not all of them. Of course, if and when I get an\n  > anon site going, I'm just going to assign fake names like\n  > \"jsmith\" instead of \"anon5564\" to avoid most of the hassles.\n  > You'll never know it is anonymous will you?\n\n  From: anne@alcor.concordia.ca (Anne Bennett)\n  \n  > I must admit to some astonishment at this argument.  I see the\n  > value of anonymous postings under some circumstances, yet believe\n  > strongly that these should be identified as such, so that people\n  > who do not wish to read material from people who won't identify\n  > themselves, don't have to.\n  > \n  > I fail to see what good you would be accomplishing, and indeed\n  > surmise that you will cause many people inconvenience and\n  > annoyance, by hiding the anonymity of postings from your\n  > anonymous site.  Would you care to justify where the hell you get\n  > the gall to try to prevent people from effectively filtering\n  > their news as they see fit?\n  \n  From: dclunie@pax.tpa.com.au (David Clunie)\n  \n  > I thought I was out of reach here in Australia too. Unfortunately\n  > one of the US sites involved in the US/Aus feed complained to the\n  > Australian Academic Reasearch Network through whom my site is\n  > connected, not about anything in particular, just the concept of\n  > anonymous mail having no redeeming features and consuming a\n  > narrow bandwidth link (with which I can't argue) and that was\n  > that ... stop the service or face disconnection.\n  >\n  > I consider the demise of [my] service to have been rather\n  > unfortunate, and I wish the Finnish remailer luck ! It is a pity\n  > that there are very few if any similar services provided with in\n  > the US. I guess that's the benefit of having a constitution that\n  > guarantees one freedom of speech and a legal and political system\n  > that conspires to subvert it in the name of the public good.\n\n\n_____\n<8.8> What is going on with anon.penet.fi run by J. Helsingius?\n\n\n  From: Karl_Kleinpaste@cs.cmu.edu\n  \n  > Funny, how beating the rest of the Usenet over the head with a\n  > stick is OK if it's anon.penet.fi and universal anon access.  But\n  > somehow people on the other side of the same equation (not even\n  > arguing to shut it off entirely, but rather just to have some\n  > control applied to the abuses that manifest themselves) aren't\n  > allowed to do that.\n  > \n  > I have written to Johan several times in the last couple of\n  > weeks.  He used to reply to me quite readily. After all, I was\n  > the source of the software as originally delivered to him -- he\n  > used to be downright _prompt_ about replying to me. Funny, now\n  > he's being an impolite bastard who doesn't answer mail _at_all_,\n  > even when it consists of really very civil queries.\n  \n  From: julf@penet.fi (Johan Helsingius)\n  \n  > In your mail you told me you sent me one or more messages on Feb.\n  > 8th. Feb 7th and 8th the server was down, and the flood of mail\n  > that resulted from the server coming up again crashed my own mail\n  > host. The problem was aggregated by an abusive user sending\n  > thousands of messages to another user, filling up that users\n  > mailbox. The bounce messages ended up in my mailbox, overflowing\n  > my local disk as well.\n  > \n  > I can only suppose that your message got lost in that hassle, as\n  > I have tried to answer as much as possible of the anon-related\n  > messages I get, from routine mis-addessed messages to complaints\n  > about the service. On the average I spend 4-5 hours per day\n  > answering anon-related messages.\n  \n  From: Karl_Kleinpaste@cs.cmu.edu\n  \n  > Why is it that everybody else has to put up with the impoliteness\n  > and insensitivity of the misuse of anon.penet.fi?  Whose\n  > definitions of \"polite\" and \"sense\" apply, and why? Why is\n  > universal anon access considered to be within the realm of this\n  > fuzzy concept of \"politeness\" in the first place?\n  > \n  > I think Johan has long since crossed the line into being a rude\n  > bastard, and I told him so in private mail a little while ago.\n  > \n  > At this point, I deeply regret [a] having created an anonymous\n  > system supporting >1 newsgroup and [b] having given the code to\n  > Johan.  I didn't copyright it, but I thought that some concept of\n  > politeness and good sense might follow it to new\n  > homes.  Interesting that Johan's ideas of politeness and good\n  > sense seem to have nearly no interesection with mine. I could\n  > even cope with universal anon access _if_ Johan would be willing\n  > to engage in abuse control, but somehow that seems to be outside\n  > the range of reality...\n\n  From: julf@penet.fi (Johan Helsingius)\n  \n  > There is no way for me to convey how sad and upset your message\n  > made me. I do, to some extent, understand your feelings, but it\n  > still feels really bad. Running the server requires getting used\n  > to a lot of flames, but mindlessly abusive hate mail is so much\n  > easier to deal with than something like this, as I do respect and\n  > value your views and opinions to a high degree. No, I'm not\n  > asking for sympathy, I just wanted you to know that I am really\n  > giving your views quite a lot of weight.\n  > \n  > When I asked for the software, I was actually only going to\n  > provide the service to scandinavian users. But a lot of people\n  > requested that I keep the service open to the international\n  > community. I now realize that I ought to have contacted you at\n  > that point to ask how you feel about me using your stuff in such\n  > a context. Again, I really want to apologise. And I will replace\n  > the remaining few pieces of code thet still stem from your\n  > system. Unfortunately there is no way to remove the ideas and\n  > structure I got from you.\n  > \n  > Again, I am really sorry that the results of your work ended up\n  > being used in a way that you don't approve of. And I will be\n  > giving a lot of hard thought to the possibility of shutting down\n  > the server alltogether.\n  \n  From: Karl_Kleinpaste@cs.cmu.edu\n  \n  > I think I'm feeling especially rude and impolite.  If it's good\n  > for Johan, it's good for me.  After all, he didn't ask the\n  > greater Usenet whether universal anon access was a good idea; he\n  > just did it. ... Yes, I'm a seriously rude pain in the ass now,\n  > and I think I'll arm the Usenet Death Penalty, slightly modified,\n  > not for strategic whole-site attack, but tactical assault, just\n  > \"an[0-9]*@anon.penet.fi\" destruction. Only outside alt.*, too,\n  > let's say.\n  > \n  > To parrot this line...people have been doing things like the UDP\n  > (that is, cancelling others' postings) for years, no one could\n  > ever stop them, and it's only politeness and good sense that has\n  > prevented them up to now.\n  > \n  > In fact, I have 8 people who have expressed privately the desire\n  > and ability to arm the UDP.\n  > \n  > ...\n  > \n  > PS- No, in fact there are not 8 newsadmins ready to arm the\n  > UDP.  It would be amusing to know how many people gulped hard\n  > when they read that, though.  I don't see it as any different\n  > from Johan's configuration.\n  > \n  > PPS- Now that I've calmed some fears by the above PS...  There\n  > are 2 newsadmins ready to arm the UDP.  They've asked for my\n  > code.  I haven't sent it yet. Only one site would be necessary\n  > to bring anon.penet.fi to a screeching halt.  Anyone can\n  > implement the UDP on their own, if they care to.  Politeness and\n  > good sense prevents them from doing so. I wonder how long before\n  > one form of impoliteness brings on another form.\n\n  From: julf@penet.fi (Johan Helsingius)\n  \n  > It would be trivially easy to bring anon.penet.fi to a screeching\n  > halt. In fact it has happened a couple of times already. But as\n  > we are talking threats here, let me make one as well. A very\n  > simple one. If somebody uses something like the UDP or\n  > maliciously brings down anon.penet.fi by some other means, it\n  > will stay down. But I will let the users know why. And name the\n  > person who did it. OK? As somebody said on this thread: \"You have\n  > to take personal responsibility for your actions\", right?\n  \n  From: avs20@ccc.amdahl.com (  134 Atul V Salgaonkar)\n  \n  > I am very grateful and appreciative of this service , courtesey of\n  > penet.fi.  Some important questions about my personal\n  > life/career/job were resolved due to kind help of other people\n  > who had been thru similar situations. In return, I have also\n  > replied to anon postings where I thought I could make a positive\n  > contribution.\n  > \n  > In general, anon service is a great, in my opinion, although like\n  > any tool some people will not use it responsibly. I suggest that\n  > it should be kept alive. Wasting bandwidth is less important than\n  > saving lives, I think.\n  \n  From: us273532@mmm.serc.3m.com (Elisa J. Collins)\n  \n  > I have been informed that the anonymous posting service to many\n  > newsgroups has been turned off as a result of discussions in this\n  > newsgroup over people abusing it.\n  > \n  > I had been posting to a nontechnical misc newsgroup about an\n  > intimate topic for which I felt I required privacy. I have\n  > received immeasurable help from the people in that newsgroup, and\n  > I have never used anonymity to behave in an abusive, immature, or\n  > unethical fashion toward anyone.\n  > \n  > Please, folks, believe me, I *need* this service.  Please\n  > consider my point of view and permit admin@anon.penet.fi to turn\n  > the service back on...\n  > \n  > Thank you.\n\n* * *\n\nSEE ALSO\n========\n\nPart 1 (first file)\n------\n\n<1.1> What is `identity' on the internet?\n<1.2> Why is identity (un)important on the internet?\n<1.3> How does my email address (not) identify me and my background?\n<1.4> How can I find out more about somebody from their email address?\n<1.5> Why is identification (un)stable on the internet? \n<1.6> What is the future of identification on the internet?\n\n<2.1> What is `privacy' on the internet?\n<2.2> Why is privacy (un)important on the internet?\n<2.3> How (in)secure are internet networks?\n<2.4> How (in)secure is my account?\n<2.5> How (in)secure are my files and directories?\n<2.6> How (in)secure is X Windows?\n<2.7> How (in)secure is my email?\n<2.8> How am I (not) liable for my email and postings?\n<2.9> How do I provide more/less information to others on my identity?\n<2.10> Who is my sysadmin?  What does s/he know about me?\n<2.11> Why is privacy (un)stable on the internet?\n<2.12> What is the future of privacy on the internet?\n\n<3.1> What is `anonymity' on the internet?\n<3.2> Why is `anonymity' (un)important on the internet?\n<3.3> How can anonymity be protected on the internet?\n<3.4> What is `anonymous mail'?\n<3.5> What is `anonymous posting'?\n<3.6> Why is anonymity (un)stable on the internet?\n<3.7> What is the future of anonymity on the internet?\n\nPart 2 (previous file)\n------\n\n<4.1> What UNIX programs are related to privacy?\n<4.2> How can I learn about or use cryptography?\n<4.3> What is the cypherpunks mailing list?\n<4.4> What are some privacy-related newsgroups?  FAQs?\n<4.5> What is internet Privacy Enhanced Mail (PEM)?\n<4.6> What are other Request For Comments (RFCs) related to privacy?\n<4.7> How can I run an anonymous remailer?\n<4.8> What are references on privacy in email?\n<4.9> What are some email, Usenet, and internet use policies?\n<4.10> What is the MIT ``CROSSLINK'' anonymous message TV program?\n\n<5.1> What is ``digital cash''?\n<5.2> What is a ``hacker'' or ``cracker''?\n<5.3> What is a ``cypherpunk''?\n<5.4> What is `steganography' and anonymous pools?\n<5.5> What is `security through obscurity'?\n<5.6> What are `identity daemons'?\n<5.7> What standards are needed to guard electronic privacy?\n\n<6.1> What is the Electronic Frontier Foundation (EFF)?\n<6.2> Who are Computer Professionals for Social Responsibility (CPSR)?\n<6.3> What was `Operation Sun Devil' and the Steve Jackson Game case?\n<6.4> What is Integrated Services Digital Network (ISDN)?\n<6.5> What is the National Research and Education Network (NREN)?\n<6.6> What is the FBI's proposed Digital Telephony Act?\n<6.7> What other U.S. legislation is related to privacy on networks?\n<6.8> What are references on rights in cyberspace?\n<6.9> What is the Computers and Academic Freedom (CAF) archive?\n\n<7.1> What is the background behind the Internet?\n<7.2> How is Internet `anarchy' like the English language?\n<7.3> Most Wanted list\n<7.4> Change history\n\n\n* * *\n\nThis is Part 3 of the Privacy & Anonymity FAQ, obtained via anonymous\n  FTP to pit-manager@mit.edu:/pub/usenet/news.answers/net-privacy/ or \n  newsgroups news.answers, sci.answers, alt.answers every 21 days.\nWritten by L. Detweiler <ld231782@longs.lance.colostate.edu>.\nAll rights reserved.\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7868, "properties": {"category": "alt.atheism", "text": "From: cfairman@leland.Stanford.EDU (Carolyn Jean Fairman)\nSubject: Re: *** The list of Biblical contradictions\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 26\n\njoslin@pogo.isp.pitt.edu (David Joslin) writes:\n\n>Someone writes:\n>>I found a list of Biblical contradictions and cleaned it up a bit,\n>>but now I'd like some help with it.\n\n>I'm curious to know what purpose people think these lists serve.\n\nIt's about time.  Why do atheists spend so much time paying attention\nto the bible, anyway?\n\nFace it, there are better things to do with your life!  I used to\nchuckle and snort over the silliness in that book and the absurdity\nof people believing in it as truth, etc.  Why do we spend so little\ntime on the Mayan religion, or the Native Americans?  Heck, the Native\nAmericans have signifigantly more interesting myths.  Also, what\nabout the Egyptians.\n\nI think we pay so much attention to Christianity because we accept\nit as a _religion_ and not a mythology, which I find more accurate.\n\n\nI try to be tolerant.  It gets very hard when someone places a book\nunder my nose and tells me it's special.  It's not.\n\nCarolyn\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7869, "properties": {"category": "misc.forsale", "text": "From: munroe@dmc.com (Dick Munroe)\nSubject: REPOST: Tape Drives (4mm, 8mm) for sale.\nOrganization: Doyle, Munroe Consultants, Inc., Hudson, MA\nLines: 18\n\nAcorn Software, Inc. has 3 tape drives (currently used on a VMS\nsystem) for sale.  These are all SCSI tape drives and are in\nworking condition.\n\n        WangDat 1300 4mm                $500.00\n        WangDat 2600 4mm (compression)  $650.00\n        Exabyte 8200 8mm                $650.00\n\nPlus shipping and COD.  Certified checks only, please.  These\nunits are sold as is and without warrantee.  Contact me if you're\ninterested.\n-- \nDick Munroe\t\t\t\tInternet: munroe@dmc.com\nDoyle Munroe Consultants, Inc.\t\tUUCP: ...uunet!thehulk!munroe\n267 Cox St.\t\t\t\tOffice: (508) 568-1618\nHudson, Ma.\t\t\t\tFAX: (508) 562-1133\n\nGET CONNECTED!!! Send mail to info@dmc.com to find out about DMConnection.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7870, "properties": {"category": "sci.crypt", "text": "From: jgfoot@minerva.cis.yale.edu (Josh A. Goldfoot)\nSubject: Re: Organized Lobbying for Cryptography\nOrganization: Yale University\nLines: 21\nDistribution: inet\nReply-To: jgfoot@minerva.cis.yale.edu\nNNTP-Posting-Host: minerva.cis.yale.edu\nX-Newsreader: TIN [version 1.1 Minerva PL9]\n\nShaun P. Hughes (sphughes@sfsuvax1.sfsu.edu) wrote:\n: In article <1r3jgbINN35i@eli.CS.YALE.EDU> jgfoot@minerva.cis.yale.edu writes:\n[deletion]\n: >Perhaps these encryption-only types would defend the digitized porn if it\n: >was posted encrypted?\n: >\n: >These issues are not as seperable as you maintain.\n: >\n\n: Now why would anyone \"post\" anything encrypted? Encryption is only of \n: use between persons who know how to decrypt the data.\n\n: And why should I care what other people look at? \n\nI was responding to another person (Tarl Neustaedter) who held that the\nEFF wasn't the best organization to fight for crytography rights since the\nEFF also supports the right to distribute pornography over the internet,\nsomething some Crypto people might object to. In other words, he's\nimplying that there are people who will protect any speech, just  as long\nas it is encrypted.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7871, "properties": {"category": "comp.sys.mac.hardware", "text": "From: avery@gestalt.Stanford.EDU (Avery Wang)\nSubject: Serial Line connection between Duo 210 and PC???\nOrganization: DSO, Stanford University\nLines: 41\n\nIn article <19930419.062907.155@almaden.ibm.com> petrack@vnet.IBM.COM writes:\n> I have tried almost everything under the sun to get a null modem connection\n> between a Mac Duo 210 and a PC. I have used MacKermit and VersaTerm on\n> the Mac side. I have used Procomm, Kermit, and Softerm (on OS/2) on\n> the PC (or PS) side. I have used non-Hardware handshaking and hardware\n> ahdshaking cables. And know MY hands are shaking from the effort. Nothing\n> has allowed file transfers from the Mac to the PS.\n\n..\n\n> Could I hear from someone attesting that they can really pump information\n> out the serial port of a Duo 210 fast? Like via a modem or via a\n> sys-ex dump?\n> \n> Could anyone with a Duo help me out?? I am going absolutely INSANE.\n> I wanna know if the problem is MY Duo, or all Duo 210s, or all Duos,\n> or just me.\n> \n\n\nHmmm... Sounds vaguely similar to a problem I had a long time ago when I was  \ntrying to use Kermit.  I was building a serial connection between my Duo 210  \nand my NeXT.  I think the problem was in the handshaking.  Basically, you need  \nto make sure that the handshaking protocol is the same on both sides.  A safe  \nplace to start is by selecting NO handshaking on either end.  One problem is  \nthat the Zilog serial chip seems to get permanently wedged if you talk to it  \nwrong, and only a reset will clear it.  I don't know the specifics.  But this  \ncould be a nonlinearity that screws up your attempts at debugging the system.   \nIt could very well be that you are doing things right--eventually-- but one  \nwrong move (like trying a bad handshaking protocol) can screw up any further  \ncorrect actions, until the next machine reset.  I have wedged my Mac and also  \nmy NeXT that way.\n\nNow I can send files back and forth between the Duo and the NeXT without any  \nproblem, and at pretty high speeds too.\n\nI don't know what kind of chip the PC uses, but I think the Zilog 8530 is  \npretty standard.\n\nHope this helps,\n-Avery\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7872, "properties": {"category": "sci.med", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: food-related seizures?\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 27\n\nIn article <C5uq9B.LrJ@toads.pgh.pa.us> geb@cs.pitt.edu (Gordon Banks) writes:\n>In article <116305@bu.edu> dozonoff@bu.edu (david ozonoff) writes:\n>>\n>>Many of these cereals are corn-based. After your post I looked in the\n>>literature and located two articles that implicated corn (contains\n>>tryptophan) and seizures. The idea is that corn in the diet might\n>>potentiate an already existing or latent seizure disorder, not cause it.\n>>Check to see if the two Kellog cereals are corn based. I'd be interested.\n>\n>Years ago when I was an intern, an obese young woman was brought into\n>the ER comatose after having been reported to have grand mal seizures\n>why attending a \"corn festival\".  We pumped her stomach and obtained\n>what seemed like a couple of liters of corn, much of it intact kernals.  \n>After a few hours she woke up and was fine.  I was tempted to sign her out as\n>\"acute corn intoxication.\"\n>----------------------------------------------------------------------------\n>Gordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\n\nHow about contaminants on the corn, e.g. aflatoxin???\n\n\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7873, "properties": {"category": "talk.politics.misc", "text": "From: edo2877@ucs.usl.edu (Ott Edward D)\nSubject: E-MAIL\nOrganization: Univ. of Southwestern La., Lafayette\nDistribution: usa\nLines: 7\n\n   \n\ndoes anyone have the e-mail address for the white house. if so please send it to\nme thanks a lot.\n\n\n    \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7874, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: kjetilk@stud.cs.uit.no (Kjetil Kolin)\nSubject: Protected Mode ?\nOrganization: University of Tromsoe\nLines: 6\n\nIs there anybody who has (or can point me in the right direction) any\ninformation about protected mode? Also interested in protected mode viewed from\na OS point of view.\n\n\tThanks in advance\n\t\tKjetil Kolin\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7875, "properties": {"category": "rec.autos", "text": "From: andrei@namao.uucp (Andrei Chichak)\nSubject: Re: Bimmer vs Beamer\nNntp-Posting-Host: namao.ucs.ualberta.ca\nOrganization: University Of Alberta, Edmonton Canada\nDistribution: usa\nLines: 15\n\nMark Monninger (markm@latium.) wrote:\n> Although not in direct response to the referenced article, just to set the \n> record straight, Beamers are BMW motorcycles. BMW cars are Bimmers. Please,\n> let's get our terms straight.\n> \n> Actually, some purists would argue that the only true Bimmer is a round\n> tail light 2002 or 1600.\n> \n> Mark\nBack when I was building round tail light 2002s they were Bimmers.  It was\nonly when the (red suspendered, Reganomics generated, quiche eating) Yuppies\ngot into the market >-( that they became Beamers and the hood ornaments started\ndisappering.\n\nAndrei\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7876, "properties": {"category": "comp.windows.x", "text": "From: earle@isolar.Tujunga.CA.US (Greg Earle)\nSubject: Re: tvtwm & xsetroot, X11R5 and SPARCstation 10 keyboard\nOrganization: Personal Usenet site, Tujunga, CA USA\nLines: 89\nDistribution: world\nNNTP-Posting-Host: isolar.tujunga.ca.us\n\nIn article <1r1q5g$cv4@genesis.ait.psu.edu> barr@pop.psu.edu (David Barr) writes:\n>In article <MAILQUEUE-101.930420145015.384@oak.shu.ac.uk> D.Haywood@sheffield-hallam.ac.uk writes:\n>>  Environment: Sun SPARC 10, SunOs 4.1.3.  X11R5 patch level 23.  My X\n>>process is started by xdm.\n>\n>Okay, that's good.  I'm typing this from exactly the same setup.\n>(US-UNIX layout keyboard)  I did install the sunkbd patch, though.\n...\n>> ii) When I open an Xterm on the Sparc 10, not all of the keys are recognised\n>>     and some keys on the keyboard are not sending the correct characters.\n>\n>Did you install the sunkbd patch?  It's in the contrib directory on export.\n>All the keys on my keyboard send events properly, except the following:\n>The End, PageUp, PageDown on the 6-key cluster aren't recognized.\n>Even the compose key works.  (Though I can't seem to get the composed\n>characters in an xterm to get passed.)\n>\n>Anyone have a fix for the last two?\n\nI don't know anything about a \"sunkbd\" patch, but I use the following\n.Xmodmap file (run from .xinitrc via \"xmodmap $HOME/.Xmodmap\", of course) for\nmy Type-5 UNIX keyboard:  (It's a bit \"brute force\", however.)\n\n------------------------------------------------------------------------------\n!\n! Sun Type-5 UNIX keyboard remappings \n!\n! This remaps the arrow keys properly\n!\n! By default, the arrow keys on the keypad (Shift-8 = Up, Shift-4 = Left,\n! Shift-6 = Right, and Shift-2 = Down) work, but the arrow keys are not\n! assigned to any keysym\n!\nkeycode 27 = Up\nkeycode 31 = Left\nkeycode 34 = Down\nkeycode 35 = Right\n\n!\n! Now we want the Back Space key to emit the \"Delete\" keysym\n!\nkeycode 50 = Delete\n\n!\n! Other random mappings that aren't on by default\n!\n! SysRq/Print Screen key\nkeycode 29 = SunSys_Req Print\n! Break/Pause key\nkeycode 28 = Break Pause\n! Alt Graph key\nkeycode 20 = Mode_switch\n! PageUp key\nkeycode 103 = Prior\n! PageDown key\nkeycode 130 = Next\n! Insert key\nkeycode 51 = Insert\n!\n! Home, End keys = ???\n!\n! Open Look Functions\n!\n! Stop key (SunStop keysym == Cancel)\nkeycode 8 = SunStop\n! Again key (SunAgain == Redo)\nkeycode 10 = SunAgain\n! Props key \nkeycode 32 = SunProps\n! Undo key (SunUndo == Undo)\nkeycode 33 = SunUndo\n! Front key\nkeycode 56 = SunFront\n! Copy key\nkeycode 58 = SunCopy\n! Open key\nkeycode 79 = SunOpen\n! Paste key\nkeycode 80 = SunPaste\n! Find key (SunFind == Find)\nkeycode 102 = SunFind\n! Cut key\nkeycode 104 = SunCut\n\n-- \n\t- Greg Earle\n\t  Phone: (818) 353-8695\t\tFAX: (818) 353-1877\n\t  Internet: earle@isolar.Tujunga.CA.US\n\t  UUCP: isolar!earle@elroy.JPL.NASA.GOV a.k.a. ...!elroy!isolar!earle\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7877, "properties": {"category": "comp.windows.x", "text": "Subject: MIT R5 on Sun with Rasterops TC Colorboard\nFrom: mark@comp.vuw.ac.nz (Mark Davies)\nDistribution: world\nOrganization: Dept. of Comp. Sci., Victoria Uni. of Wellington, New Zealand.\nNNTP-Posting-Host: bats.comp.vuw.ac.nz\nLines: 9\n\n\nIs it possible to run an MIT R5 based Xserver on a Sun with a Rasterops TC\nColorboard (24bit board)?  I have the Xsun24 patches for supporting sun's\n24bit frame buffers but does the rasterops appear as if its a cgtwelve or\nsomething else?  I know nothing about the rasterops other than we might be\nbuying one to put in an IPX.\n\ncheers\nmark\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7878, "properties": {"category": "sci.med", "text": "From: klier@iscsvax.uni.edu\nSubject: Re: How about a crash program in basic immunological research?\nOrganization: University of Northern Iowa\nLines: 22\n\nIn article <221@ky3b.UUCP>, km@ky3b.pgh.pa.us (Ken Mitchum) writes:\n> As a physician, I almost never get sick: usually, when something horrendous\n> is going around, I either don't get it at all or get a very mild case.\n> When I do get really sick, it is always something unusual.\n> \n> This was not the situation when I was in medical school, particularly on\n> pediatrics.... Pediatrics for me was three solid\n> months of illness, and I had a temp of 104 when I took the final exam!\n> \n> I think what happens is that during training, and beyond, we are constantly\n> exposed to new things, and we have the usual reactions to them, so that later\n> on, when challenged with something, it is more likely a re-exposure for us,\n> so we deal with it well and get a mild illness. \n\nThis is also commonly seen in new teachers.  The first few years, they're\nsick a lot, but gradually seem to build up immunities to almost everything\ncommon.  Come to think of it, I was about my healthiest when I was\nworking in a pathogens lab, exposed to who-knows-what all the time.  Pre-OSHA,\nof course.\n\nKay Klier  Biology Dept  UNI\n \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7879, "properties": {"category": "comp.sys.mac.hardware", "text": "From: frodel@dhhalden.no (Frode Lundemo)\nSubject: Apple 13\" giong brighter\nNntp-Posting-Host: pc138\nOrganization: Ostfold Regional College\nLines: 4\n\nMy Apple 13\" RGB monitor has over the past few months gone brighter and\nbrighter and the colors are not as rich as before. Has anyone out there\nencountered a similar problem? Dows anyone happen to know what this problem\nmay be due to?\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7880, "properties": {"category": "talk.politics.guns", "text": "From: HADCRJAM@admin.uh.edu (MILLER, JIMMY A.)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: University of Houston Administrative Computing\nLines: 43\nDistribution: world\nNNTP-Posting-Host: uhad2.admin.uh.edu\nX-News-Reader: VMS NEWS 1.24\nIn-Reply-To: jmd@cube.handheld.com's message of 20 Apr 1993 16:26:47 GMT\n\nIn <1r1887INNcsd@clem.handheld.com> jmd@cube.handheld.com writes:\n\n> In article <1r0v4c$i1j@menudo.uh.edu> HADCRJAM@admin.uh.edu (MILLER, JIMMY A.)  \n> writes:\n> > In <1r0poqINNc4k@clem.handheld.com> jmd@cube.handheld.com writes:\n> > \n> >   According to KIKK radio in Houston, all nine survivors are either in hos-\n> > pitals or in jails.  Including the two who allegedly helped start the \n> >fires.\n> \n> In the FBI briefing, no mention was made of having the fire starters in  \n> custody.\n\n  Which one?  The one yesterday, or has there been another?  If it was yester-\nday, catch up.\n\n  IMO, 90% of all \"conspiracy\" charges are easily explained by the simple\nfact that in these days of instantaneous news transmission, all kinds of\nstuff gets said when people really just don't know what the hell's going on.\nThen the story changes once the facts are in and suddenly cries of \"its all a \nwhitewash!\" start.  Naturally, everybody wants to cover his/her ass.\n\n> > > Why the total isolation?\n> > \n> >   Well, it wasn't TOTAL, 100% isolation.  After the lawyer snuck in the \n> > first time, they (the FBI, etc) let him go back inside several times, in-\n> >cluding, I think, the day before the final assualt.\n>\n> Why not his mother?  Why not the media?\n\n  Damnfino.  I just tend to take issue with absolute statements that are ob-\nviously wrong on their face and tend to inflame, not inform.  The isolation\nwas significant, but not total.\n\nsemper fi,\n\nJammer Jim Miller \nTexas A&M University '89 and '91\n________________________________________________________________________________\n I don't speak for UH, which is too bad, because they could use the help.     \n\"Become one with the Student Billing System. *BE* the Student Billing System.\"\n \"Power finds its way to those who take a stand.  Stand up, Ordinary Man.\"    \n      ---Rik Emmet, Gil Moore, Mike Levine: Triumph \t\t              \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7881, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jks4675@ritvax.isc.rit.edu\nSubject: Conner 120 MB Question\nNntp-Posting-Host: vaxa.isc.rit.edu\nReply-To: jks4675@ritvax.isc.rit.edu\nOrganization: Rochester Institute of Technology\n\nWhat do I need to do to configure this drive as a slave?\nModel# CP30101G\n\nPlease reply via e-mail. Thanks!!\n\nJeff\n****************************************************************\n*  Four out of five electrons prefer holes for their mutual    *\n*  annhiliation needs. Boycott Sierra. Ignore anybody who      *\n*  purports to be a serious Windows user. Support new makers   *\n*  of hardware and software. Buy Canadian music. Quit smoking. *\n*  Take up running. FM synthesis is the CGA of audio.          *\n*                            JKS4675@RITVAX.ISC.RIT.EDU        *\n****************************************************************\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.375+0000", "event": "documents", "entityId": 7882, "properties": {"category": "rec.sport.hockey", "text": "From: downec@crockett1a.its.rpi.edu (Christopher Stevan Downey)\nSubject: Re: My Predictions of a classic playoff year!\nNntp-Posting-Host: crockett1a.its.rpi.edu\nReply-To: downec@rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY.\nLines: 82\n\nIn article <1993Apr17.152611.12934@ac.dal.ca>, 06paul@ac.dal.ca writes:\n|> Here is yet another prediction for them great playoffs!\n|> (you may laugh at your convenience!) :)\n|> \n|> \tAdams Division (I hate the NE (name) divisoin!!!)\n|> \n|> BOS vs BUF   BOS in 5  (the B's are hot lately!)\n|> \n|> MON vs QUE   MON in 7  (This will be the series to watch in the first round!)\n|> \n|> \n|> BOS vs MON   MON in 7  (this may be a bit biased but I feel the Canadiens will\n|> \t\t       (smarten up and start playing they played two months ago\n|> \t\t\t( i.e. bench Savard !!!)\n|> \tPatrick Division \n|> \n|> PIT vs NJD   PIT in 6  (It wont be a complete cake walk... there be a few lumps\n|> \t\t\t(in the cake batter!)\n|> \n|> WAS vs NYI   WAS in 6  \t(This will not be an exciting series..IMO)\n|> \n|> \n|> PITT vs WAS  PIT in 4   (Washington will be tired after the NYI)\n|> \n|> \tNorris Division\n|> \n|> CHI vs StL    CHI in 5   (StL will get a lucky game in)\n|> \n|> TOR vs DET    TOR in 7   (THis , like MON vs QUE, will be another intense \n|> \t\t\t (series to watch!)\n|> \n|> CHI vs TOR    TOR in 7   (Potvin will be settling in nicely by this point.)\n|> \n|> \tSmythe Division\n|> \n|> VAN vs WIN     VAN in 5  (Teemu is great, but Vancouver better as a team!)\n|> \n|> CAL vs LAK     CAL in 6  (Gretzky is great, but Calgary has been on fire lately)\n|> \t\t\t\t...sorry for the pun... um, no I am not! :)\n|> \n|> VAN vs CAL     VAN in 6  (This will be a great series! but VAN has proven they\n|> \t\t\t (Will not lie down and get beat!)\n|> \n|> \tWales Conference finals\n|> \n|> Pittsburgh vs Montreal    \tMontreal in 6 (Montreal IMHO is the only team\n|> \t\t\t\t\t      (that has a chance against \n|> \t\t\t\t\t\tPittsburgh.)\n|> \n|> \tCampbell Conference finals\n|> \n|> Vancouver vs Toronto\t\tToronto in 6  (Potvin will be series MVP)\n|> \n|> \n|> \tSTANLEY CUP FINALS  \n|> \n|> Toronto Maple Leafs    vs    Montreal Canadiens    \n|> \t(The Classic Stanley Cup Final matchup!!) <---also a dream come true!\n|> \n|> \tMontreal wins the Stanley cup in the 7th game 1 - 0 in double overtime.\n|> Roy and Potvin are spectacular throughout the series and share series MVP (if \n|> that is possible) Vincent Damphouse nets game winner from a brilliant pass by\n|> Brian Bellows! Canadiens star(?) Denis Savard watched his buddies play from the\n|> owners box nursing that splinter on his thumb which has left him on the \n|> disabled list since the first game of the playoffs (awww shucks). \n|> \n|> ***************************************YEE HAA!!*******************************\n|> *poof* And I wake up :)\n|> Well that is my predictions...I hope and dream they come true. and you can stop\n|> laughing anytime :)\n|> \n|> \t\t\t\t\t\t\tPaul\n|> \t\t\t\t\t\tDie hard Habs Fan living with\n|> \t\t\t\t\t\t3 Die hard Leafs fans!\n\nI only have one comment on this:  You call this a *classic* playoff year\nand yet you don't include a Chicago-Detroit series.  C'mon, I'm a Boston\nfan and I even realize that Chicago-Detroit games are THE most exciting\ngames to watch.\n\nChris\ndownec@rpi.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7883, "properties": {"category": "sci.crypt", "text": "From: gtoal@news.ibmpcug.co.uk (Graham Toal)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: /etc/organization\nLines: 17\nNNTP-Posting-Host: dorothy.ibmpcug.co.uk\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\n\nIn article <strnlghtC5LGFI.JqA@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>\n>Though some may argue about the nose of the camel, it's worth noting that\n>the government proposal is limited to scrambled telephony. If it is only\n>used for that purpose, and does not extend to electronic mail or file\n>encryption, then it IS an improvement over the current mass-produced\n>standard civilian technology which, with a few exceptions, is limited to\n>easy-to-break inverters.\n\nTry reading between the lines David - there are *strong* hints in there\nthat they're angling for NREN next, and the only conceivable meaning of\napplying this particular technology to a computer network is that they\nintend it to be used in exclusion to any other means of encryption.\n\nDon't be lulled by the wedge because its end looks so thin.\n\nGraham\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7884, "properties": {"category": "rec.sport.baseball", "text": "From: mjones@watson.ibm.com (Mike Jones)\nSubject: Re: Jack Morris\nReply-To: mjones@donald.aix.kingston.ibm.com\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: fenway.aix.kingston.ibm.com\nOrganization: IBM AIX/ESA Development, Kingston NY\nLines: 97\n\nmaynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n>In <1993Apr19.053221.11240@cs.cornell.edu> tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n>>In article <1993Apr19.024222.11181@newshub.ariel.yorku.ca> cs902043@ariel.yorku.ca (SHAWN LUDDINGTON) writes:\n>>>Hey Valentine, I don't see Boston with any world series rings on their\n>>>fingers.\n>>Yah.  So?\n>>>Damn, Morris now has three and probably the Hall of Fame in his \n>>>future.\n>>He certainly didn't earn his last one.  *HOW* many games did he blow\n>>in the World Series?  All of the ones he started?\n>He certainly did earn it!  He was a valuable member of the Blue Jay team. \n\nNot particularly *in* the World Series. During the season, he was probably\nmore valuable than, say, putting Olerud out there to pitch, but yeah, he\n*was* valuable in getting them there. In the postseason, he sucked dirty\ncanal water through a straw. The Jays won *in spite* of Morris much more\nthan *because of* him.\n\n>>>Therefore, I would have to say Toronto easily made the best signing.\n>>Oh, yes.  Definitely.  Therefore Morris is better than Clemens.\n>Your definition of \"better\" refers to some measurement on a scale that\n>has nothing to do with winning WS rings.\n\nUmm, Roger? Return with us to those halcyon days of a few postings ago,\nwhere the poster Valentine was replying to used # of WS rings as a measure\nof better. The concept is called \"context\", and you should really become\nfamiliar with it someday.\n\n>The facts are that Morris\n>has shown us that he has what it takes to play on a WS winning club.\n>Clemens hasn't.\n\nUnless this transaltes to \"Clemens hasn't gone into Lou Gorman's office with\na large caliber handgun and refused to come out until he'd been traded to\nthe Jays,\" I'm at a complete loss as to any possible meaning for it.\n\n>You can go on about what Clemens has done in the \n>past and claim that he is \"better\" than Morris if you want to.  But \n>the facts are that Morris has shown us that he can win and Clemens\n>hasn't.\n\nWhat on earth does this mean? Over their careers, Clemens has \"won\" 68% of\nthe games he's started, Morris 58%. Per year, Clemens has averaged nearly 17\nwins, Morris just under 15. Would you grant the proposition that preventing\nthe other team from scoring increases your chances of winning  a game? If\nso, then consider that Clemens allows 2.8 runs/9 innings pitched. Morris\nallows nearly a run more per nine innings. In fact, Jack Morris has never in\nhis career had an ERA for a single year as good as Clemens' career ERA. But\nI forget, in the Maynardverse there was obviously some mystical significance\nto Buckner missing that grounder in 1986; had Morris been on the Sox, it\nwould have been a routine groundout, right?\n\n>Whether or not Clemens is better by your standard of measurement\n>is totally meaningless.  The object of the game is not to compile \n>high figures in statistics that you have chosen to feel are important.\n>The object of the game is to contribute to WS victories.  But this\n>has been patiently explained to you many, many times and you are \n>either too stupid or too stubborn to grasp it.\n\nSpeaking of stupid, it has been patiently (and not-so-patiently) explained to\nyou many times that attributing greatness to players based on the\naccomplishments of their teams makes about as much sense as claiming that\na racecar has the most attractive paint job because it won the race. Your\ncontinued failure to not only understand but even to intelligently reply to\nany of the arguments presented leads me to the conclusion that you must have\nspent a few too many games in goal without a mask.\n\n>>Don't give me that shit.  If Boston had Alomar, Olerud, Henke, and\n>>Ward while Toronto had Rivera, Jack Clark, Jeff Reardon, things would\n>>have looked a little different last fall.  Give credit where credit is\n>>due.  This lavishing of praise on Morris makes me sick.\n>Yes and the dog would have caught the rabbit too...forget about what\n>didn't happen and open your eyes, for once, and look out there and\n>see what is REALLY happening.  Forget about how Morris \"shouldn't\"\n>have won 21 with an ERA over 4.  \n>When Morris pitched, last year, the Jays won.  Stop crying about it and\n>get on with life.\n\nNo one is crying; the Jays won, and as a team they certainly deserved to win\nat least the AL East. They performed well in two short series and won the\nWorld Series, and I congratulate them for it. As a Red Sox fan, I hope they\nkeep Morris. I was happy when they picked up Stewart, and elated when they\ntraded for Darrin Jackson. You see, unless you believe in some mystical link\nbetween Morris and the offense, you can hardly help but believe that the man\nwas credited with so many wins last year because he got lucky. Luck runs\nout, just like it did in 1982 when he pitched 50-odd more innings than 1992,\ngave up exactly *one* earned run more than in 1992, and went 17-16.\n\nSeriously, Roger, I'd really like to hear your explanation of the difference\nbetween the 1982 Morris and the 1992 Morris. Which one was a better pitcher,\nand why? Did Morris somehow \"learn how to win\" in the intervening ten years?\nIf so, then why did he go 18-12 in 1991 with Minnesota with an ERA over half\na run lower than 1992?\n\n Mike Jones | AIX High-End Development | mjones@donald.aix.kingston.ibm.com\n\nDon't be humble, you're not that great.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7885, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: balog@eniac.seas.upenn.edu (Eric J Balog)\nSubject: SWITCH 3.5\" TO A:?\nOrganization: University of Pennsylvania\nLines: 39\nNntp-Posting-Host: eniac.seas.upenn.edu\n\nHi!\n\nI'd like to switch my floppy drives so that my 3.5\" b: drive becomes a:, while\nmy 5.25\" a: becomes b:. I'm having a few problems, though.\n\nI know that the ribbon cable must be switched, as well as the CMOS settings, \nto reflect this change, and I think that I've done that correctly. However, the\ndrives do not operate correctly in this configuration. From the C:> prompt, if \nI type a:, the 5.25\" drive light comes on; if I type b:, both the light for the\n5.25\" and 3.5\" drives come on.\n\nThere are some jumpers on each drive:\n5.25\"  Label   Original Pos.   Pos. I changed it to\n        DS0      ON               OFF\n\tDS1\t OFF\t\t  ON\n\tDS2\t ON\t\t  ON\n\tDS3\t OFF\t\t  OFF\n\tIO\t OFF\t\t  OFF\n\tMS1\t OFF\t\t  OFF\n\tD-R\t ON \t\t  ON\n\tMS2\t ON\t\t  ON\n\tFG\t OFF\t\t  OFF\n\n3.5\"    DS0\t OFF\t\t  ON\n\tDS1\t ON\t\t  OFF\n\tDS2\t OFF\t\t  OFF\n\tDS3\t OFF\t\t  OFF\n\tMM\t ON\t\t  ON\n\tDC\t ON\t\t  ON\n\tMD\t OFF\t\t  OFF\n\tTTL/C-MO8 ON\t\t  ON\n\n\nAny help or suggestions would be greatly appreciated.\n\nThanks in advance.\n\nEric Balog\nbalog@eniac.seas.upenn.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7886, "properties": {"category": "talk.religion.misc", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 13\n\nIn article <C5soDA.3L8@murdoch.acc.Virginia.EDU> \npmy@vivaldi.acc.virginia.edu (Pete Yadlowsky) writes:\n>Ken Arromdee writes\n>>>Did they not know that these men were federal officers?\n>>Do you know what a \"no-knock search\" is?\n>Yes, but tell me how you think your question answers my question. If\n>the BDs didn't know immediately that they were dealing with feds\n>(uniform apparel, insignia), they must have figured it out in pretty\n>short order. Why did they keep fighting? They seemed awfully ready\n>for having been attacked \"without warning\". \n\nOh, bloody sorry old chap, why didn't you tell me you were a federale?\nTough luck, eh? What's that? You say you're not dead yet?\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7887, "properties": {"category": "comp.sys.mac.hardware", "text": "From: drlovemd@jhunix.hcf.jhu.edu (Steve Liu)\nSubject: Re: CD300 & 300i\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 89\nDistribution: world\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\n\nIn article <1ps8d7INNrc0@srvr1.engin.umich.edu> chyang@leghorn.engin.umich.edu (Chung Hsiung Yang) writes:\n>\n>In article <bauer-060493101758@134.60.68.23>, bauer@informatik.uni-ulm.de (Christian Bauer) writes:\n>> In article <Afi9sHS00VohMrYlEe@andrew.cmu.edu>, \"Donpaul C. Stephens\"\n>> <deathbird+@CMU.EDU> wrote:\n>> > \n>> > What is the difference?\n>> > I want a double-spin CD-ROM drive by May\n>> > \n>> > looking into NEC and Apple, doublespins only\n>> > what is the best?\n>> \n>> Nec Toshiba and Sony (Apple) nearly deliver the same speed.\n>> As apples prices are very low (compared to there RAM SIMMS)\n>> You should buy what is inexpencive. But think of Driver revisions.\n>> It is easier to get driver kits from Apple than from every other\n>> manufacturer\n>> \n>> Christian Bauer\n>> \n>> bauer@informatik.uni-ulm.de\n>\n>\n>\tI thought NEC and Toshiba CD-ROM mechanism have an average \n>access time of less than 200 ms.  While the SONY-APPLE CD-ROM \n>drive has an access time of 300 ms for the doublespin models.\n>\n>- Chung Yang\n>\n\nI have the a CD-Technology drive with the Toshiba mechanism, and it is\nsupposedly the fast and best now.  It has an access of 200ms and a data\ntransfer rate 300Kb/sec.  It is multisession photo-cd compatible.  It is\navailable from educorp for $599, the CD-Technology one, and comes with two\nmail in coupons for two free CDs.  I'm not sure if the cd's are good, since\nI've only had the drive a little less than a month and had the cd's shipped\nto my home address in california instead of here in maryland.  The\nCD-technology drive has a separate power supply separated from the drive,\nwhich supposedly gives it a longer life, and keeps it cleaner with no fan to\nattract dust.  A Toshiba brand drive is also available, but I think the\nCD-Technology is better, since you get the same mechanism, and at a slightly\nlower price with two free CDs.\n\nThe Apple 300/330i Drive, Sony Mechanism, is around a 300ms access time I\nthink, and a data transfer rate of 300Kb/sec.  I know it is the slowest of the\nthree mentioned here.  It is not widely available, except through the apple\ncatalog, which is bad at a price of only $599.  It is also multi-session photo\ncd compatible. I think the external model comes with 7 free cds, some of\nwhich are pretty good.\n\nThe NEC drive has been out the longest.  it has an access time of 280ms and\na data transfer rate of 300Kb/sec.  it is available from many vendors around\n$600 dollars, including Educorp.  It wasn't multi-sesssion photo-cd compatible\nbefore, but I hear that the current version that is shipping is.  Owners of\nthe older drives can get an upgrade.  It does not come with any free cd's\nunless you buy it in a bundle.\n\nOf the three CD-Rom drives above, i think the best choices would be the\nApple drive and the CD-technology(toshiba) drive.  The apple drive for it's\ncompatibility with apple products and the cd-technology(toshiba) for it's\nspeed and performance. \n\nBTW, the models of the drives are:\n\nApple: AppleCD 300 or AppleCD 300i (internal)\n\nCD-Technology:  CD-T3401 (the Toshiba brand name model I'm not sure, but it\nis also something like with 3401)\n\nNEC:  CDR-74\n\n\nI'm very happy with my drive.  And have had no compatibility problems\nwhatsoever.  If I am wrong about any of the above, do correct me, but I am\npretty sure of myself, even when I think I'm not.\n\nAlso, some of you out there might notice that I have the same last name as\nthe president of CD-Technology which happens to be in southern california,\nmy hometown.  However, I AM NOT a relative nor do I know the guy.  Liu is\njust a common chinese name, especially in southern california, with the\nenormous chinese community.  Besides, one of my doctors in california has\nthree Steve Liu's as patients and another Steve Liu comes to my school and\nlives in the next dorm.  This is to show that Liu is very common.\n\nSteve :-)\n-- \nSteve Liu                      |I wish for a better .sig\ndrlovemd@jhunix.hcf.jhu.edu    |Suggestions are very welcome!\ndrlovemd@jhuvms.hcf.jhu.edu    |\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7888, "properties": {"category": "rec.motorcycles", "text": "From: bethd@netcom.com (Beth Dixon)\nSubject: Re: Ducati 400 opinions wanted\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 42\n\nIn article <C5I2HM.JwC@srgenprp.sr.hp.com> frankb@sad.hp.com (Frank Ball) writes:\n>Godfrey DiGiorgi (ramarren@apple.com) wrote:\n>& \n>& The Ducati 400 model is essentially a reduced displacement 750, which\n>& means it weighs the same and is the same size as the 750 with far less\n>& power. It is produced specifically to meet a vehicle tax restriction\n>\n>The Ducati 750 model is essentially a reduced displacement 900, which\n>means it weighs the same and is the same size as the 900 with far less\n>power.  And less brakes.\nBzzzt.  The 750SS is 40 pounds lighter than the 900SS.  I personally,\nand recently, witnessed my 750SS do a stoppie with a larger-than-\naverage rider aboard.  He said it took two fingers on that measely\nsingle front disk to accomplish the task.  How much more brake do\nyou need?\n\n>As such, it's somewhat large and overweight for its motor. It will \n>still handle magnificently, it just won't be very fast. There are\n>very few other flaws to mention; the limited steering lock is the \n>annoyance noted by most testers. And the mirrors aren't perfect.\nI haven't gone over 4000 rpm yet (still in break in) and haven't\nhad a problem with the 750SS being too slow.  The limited steering\nlock can be a problem if you aren't prepared for it.  The mirrors\nare very good, IMHO.  Someone forgot to tell their designer about\nthe \"whazza behind you, she no matta\" philosophy.\n\n>Hewlett Packard             (707) 794-3844 fax,  (707) 538-3693 home\n>1212 Valley House Drive     IT175, XT350, Seca 750, '62 F-100, PL510\nHmmmm.  I don't see a 400, 750 _or_ 900SS in your .sig.  Did I miss\nsomething?\n\nBeth\n\n=================================================================\nBeth [The One True Beth] Dixon                   bethd@netcom.com\n1981 Yamaha SR250 \"Excitable Girl\"                      DoD #0384\n1979 Yamaha SR500 \"Spike the Garage Rat\"             FSSNOC #1843\n1992 Ducati 750SS                                     AMA #631903\n1963 Ducati 250 Monza -- restoration project         1KQSPT = 1.8\n\"I can keep a handle on anything just this side of deranged.\"\n                                                        -- ZZ Top\n=================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7889, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: biernat@rtsg.mot.com (Tim Biernat)\nSubject: Re: G2K/Jumbo 250 Backup Problems\nKeywords: tape backup gateway jumbo\nNntp-Posting-Host: tophat1\nOrganization: Motorola, Inc., Cellular Infrastructure Group\nDistribution: usa\nLines: 18\n\nIn article <1993Apr19.181139.24147@den.mmc.com> snorman@den.mmc.com writes:\n>I have a Colorado Memory Systems Jumbo 250 tape backup unit in my Gateway\n>486/33V Tower system. I have found the supplied backup capability to be \n>fairly unreliable. In approx 3 cases out of 10, I have had the backup fail\n>at one point or another, often hanging in the middle of writing the tape.\n>Seek errors, drive communication errors seem to be most common. I use the\n>DOS backup software from Colorado Memory Systems. Should I return the drive,\n>get some better backup software, reformat the tapes (am using CMS tapes)?\n>Any hints would be appreciated - this stuff is to time-consuming to do over\n>and over again until it cooperates...\n\ni've been using an identical setup, except for the tower config,\nfor several months now.  from previous discussions on the net,\nthe first thing to check for is DMA conflicts with other devices,\nespecically if you've got any funky ones.  next off, suspect\nyour tape - try a fresh one.  good luck !\n\n--  tim\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7890, "properties": {"category": "sci.space", "text": "From: 18084TM@msu.edu (Tom)\nSubject: Golden & Space ages\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 17\n\nPat sez;\n>Oddly, enough,  The smithsonian calls the lindbergh years\n>the golden age of flight.  I would call it the granite years,\n>reflecting the primitive nature of it.  It was  romantic,\n>swashbuckling daredevils,  \"those daring young men in their flying\n>machines\".  But in reality, it sucked.  Death was a highly likely\n>occurence,  and  the environment blew.\n\nYeah, but a windscreen cut down most of it.  Canopies ended it completely.\n\nOf course, the environment in space continues to suck :-)\n\n-Tommy Mac\n-------------------------------------------------------------------------\nTom McWilliams 517-355-2178 wk   \\\\ As the radius of vision increases,\n18084tm@ibm.cl.msu.edu 336-9591 hm \\\\ the circumference of mystery grows.\n-------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7891, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gibsonm@cs.arizona.edu (Matthew H Gibson)\nSubject: WIN 3.1 comm drivers replacements (question)\nOrganization: U of Arizona CS Dept, Tucson\nLines: 14\n\n\nHas anyone had any experience with a replacement comm driver for windows\ncalled TurboComm.  I read about it in PCMag Apr 23 1993 and am interested\nbut not willing to shell out the 45 bucks the company wants just to try it\nout.  It supposedly eleminates the problems that occur during a high speed\nfile transfer and a disk access made by another program running at the same\ntime.  If anyone has any pro/cons about this product, i would be very inter\nested to hear them.  Please Email at the address give below.  THANKS.\n\nMatthew Gibson\ngibsonm@cs.arizona.edu\n.\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7892, "properties": {"category": "sci.med", "text": "From: ls8139@albnyvms.bitnet (larry silverberg)\nSubject: Re: Good Grief!  (was Re: Candida Albicans: what is it?)\nReply-To: ls8139@albnyvms.bitnet\nOrganization: University of Albany, SUNY\nLines: 126\n\nIn article <noringC5snsx.KMo@netcom.com>, noring@netcom.com (Jon Noring) writes:\n>In article rind@enterprise.bih.harvard.edu (David Rind) writes:\n>>In article davpa@ida.liu.se  (David Partain) writes:\n>\n>>>Someone I know has recently been diagnosed as having Candida Albicans, \n>>>a disease about which I can find no information.  Apparently it has something\n>>>to do with the body's production of yeast while at the same time being highly\n>>>allergic to yeast.  Can anyone out there tell me any more about it?\n\nI have a lot of info about this disease.  I am posting a small amount of\nit that I extracted.  If more is required, e-mail me @\nls8139@gemini.albany.edu.  Please, it takes me some time to upload it, so\nbe advised, only request it if you *really* want it.\n\nhere is some info from InfoTrac - Health Reference Center\n\nAlso, check you local of univeristy library.  They most likely have the\nInfoTrac cd-rom this info was taken from......\n====================================\n\nInfoTrac - Health Reference Center ~ Oct '89 - Oct '92\n\n Heading:   CANDIDA ALBICANS\n             !Dictionary Definition\n\n    1.    Mosby's Medical and Nursing Dictionary, 2nd edition\n               COPYRIGHT 1986 The C.V. Mosby Company         \n                                                             \n      Candida albicans                                       \n      -------------------------------------------------------\n      A common, budding,  yeastlike, microscopic fungal      \n      organism normally present in the mucous membranes of   \n      the mouth, intestinal tract, and vagina and on the skin\n      of healthy people. Under certain circumstances, it may \n      cause superficial infections of the mouth or vagina    \n      and, less commonly, serious invasive systemic infection\n      and toxic reaction. See also candidiasis.\n\n==============================\n\nInfoTrac - Health Reference Center ~ Oct '89 - Oct '92\n  THE MATERIAL CONTAINED IN Health Reference Center ~ Oct '89 - Oct '92 IS PROVIDED\n  ONLY FOR INFORMATIONAL PURPOSES AND SHOULD NOT BE CONSTRUED AS\n  MEDICAL ADVICE OR INSTRUCTION.  CONSULT YOUR HEALTH PROFESSIONAL\n  FOR ADVICE RELATING TO A MEDICAL PROBLEM OR CONDITION.\n\n\n Heading:   CANDIDA ALBICANS\n\n    1.     Yogurt cure for Candida. (acidophilus) il v22 East\n       West Natural Health July-August '92 p17(1)            \n           TEXT AVAILABLE\n TEXT \nCOPYRIGHT East West Partners 1992                                       \n  Another folk remedy receives the blessing of medical study.           \nResearchers have found that eating a cup of yogurt a day drastically    \nreduces a woman's chances of getting vaginal candida, a yeast infection.\n  For the year-long study, researchers at Long Island Jewish Medical    \nCenter in New Hyde Park, New York, recruited 13 women who suffered from \nchronic yeast infections. For the first 6 months, the women each day ate\n8 ounces of yogurt containing Lactobacillus acidophilus. For the second \n6 months, the women did not eat yogurt. The researchers examined the    \nwomen each month and found that incidents of colonization and infection \nwere significantly lower during the period when the women ate yogurt.   \n  The fungus Candida albicans can live in the body without doing harm.  \nIt is an overproliferation of the fungus that leads to infection. The   \nresearchers concluded that the L. acidophilus bacteria found in some    \nbrands of yogurt retard overgrowth of the fungus. Streptococcus         \nthermophilus and L. bulgaricus are the two bacteria most commonly used  \nin commercial yogurt production. Neither one appears to exert a         \nprotective effect against Candida albicans, however. Women who want to  \ntry yogurt as a preventive measure should choose a brand that lists     \nacidophilus in its contents.                                            \n--- end ---\n              \n\n                              \n===================================\n\nInfoTrac - Health Reference Center ~ Oct '89 - Oct '92\n  THE MATERIAL CONTAINED IN Health Reference Center ~ Oct '89 - Oct '92 IS PROVIDED\n  ONLY FOR INFORMATIONAL PURPOSES AND SHOULD NOT BE CONSTRUED AS\n  MEDICAL ADVICE OR INSTRUCTION.  CONSULT YOUR HEALTH PROFESSIONAL\n  FOR ADVICE RELATING TO A MEDICAL PROBLEM OR CONDITION.\n\n\n Heading:   CANDIDA ALBICANS\n\n    1.     Candida (Monilia). (Infections Caused by Fungi)   \n       (Infectious Diseases) by Harold C. Neu The Columbia   \n       Univ. Coll. of Physicians & Surgeons Complete Home    \n       Medical Guide Edition 2 '89 p472(1)                   \n           TEXT AVAILABLE\n TEXT \nCOPYRIGHT Crown Publishers Inc. 1989                                    \n  Candida (Monilia)                                                     \n  This disease is usually caused by Candida albicans, a fungus that we  \nall carry at one time or another. In some circumstances, though, the    \norganisms proliferate, producing symptomatic infection of the mouth,    \nintestines, vagina, or skin. When the mouth or vagina are infected, the \ndisease is commonly called thrush.                                      \n  Vaginitis caused by Candida often afflicts women on birth control     \npills or antibiotics. There is itching and a white, cheesy discharge.   \nAmong narcotic addicts, Candida infections can lead to heart valve      \ninflammation.                                                           \n  Diagnosis of Candida infections is confirmed by cultures and blood    \ntests. Treatment can be with amphotericin B or orally with ketoconazole.\nThere is no evidence that Candida in the intestine of normal individuals\nleads to disease. All people at one time or another have Candida in     \ntheir intestines. Claims for any benefit from special diets or chronic  \nantifungal agents is not based on any solid evidence.                   \n--- end ---\n\n\n\n==========================\nI hope this is informative.\nLarry\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nLive From New York, It's SATURDAY NIGHT...\n\nTonight's special guest:\nLawrence Silverberg from The State University of New York @ Albany\naka:ls8139@gemini.Albany.edu\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7893, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jaker@csugrad.cs.vt.edu (Jacob Rose)\nSubject: Re: Position of 'b' on Erg. Keyboard\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 17\nNNTP-Posting-Host: csugrad.cs.vt.edu\n\nviralbus@daimi.aau.dk (Thomas Martin Widmann) writes:\n\n>So far I have only seen pictures of the new ergonomic keyboard,\n>but it seems that the 'b' is placed on the left part after the split.\n>However, when I learned typing in school some years ago, I was taught\n>to write 'b' with my right hand. Is this a difference between Danish\n>and American typing, or what???\n\nIt must be... ...I type it with my left hand.  Personally, I would have\na real problem with my keyboard opened up like that, because I tend to\nshare some keys with both hands, particularly if I'm doing something else\nwith one hand (like using the cursor keys, mouse, or glass of Jolt).\n-- \n:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\"Deej\" (Jacob Rose)    :: Amazing but true: There is so much sand in Northern\njaker@csugrad.cs.vt.edu:: Africa that if spread out it would cover the Sahara. \n:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7894, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ksl@engin1.NoSubdomain.NoDomain (Kiseok Lee  )\nSubject: Re: does dos6 defragment??\nArticle-I.D.: cs.1993Apr6.040254.8443\nOrganization: Brown University Center for Fluid Mechanics\nLines: 17\n\nIn article <C51H9M.46p@news.cso.uiuc.edu>, rhc52134@uxa.cso.uiuc.edu (Richard) writes:\n|> Geoffrey S. Elbo writes:\n|> \n|> >Yes, and it is the fastest defrag I've ever watched.  It did a 170MB \n|> >hard disk in 20 minutes.\n|> \n|> \tI found the MS defrag looks very much like Norton Speedisk.\n|> Is it just a strip-down version of the later?\n|> \n|> \tI have both Norton Speedisk and Backup, so I was wondering \n|> if I need to install MS Backup?\n|> \n|> Richard\n|> \n\nYes, defragger IS come from Norton.\nIf you have Norton Utility, don't bother.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7895, "properties": {"category": "comp.windows.x", "text": "From: wam3090@yak.COM (Bill Massena)\nSubject: Function key to text string translation\nOrganization: Boeing Computer Services, Seattle\nLines: 17\n\n\n\tI want to press a function key and have a text string appear in an\nXmText widget.  When I put\n\n\t*XmText.Translations: #augment \\n\\\n\t\t<Key>F1:  insert-string(HELLO)\n\nin my resource file, the translation doesn't happen.  If I put\n\n\t*XmText.Translations: <Key>F1:  insert-string(HELLO)\n\nin the file, I get the text string HELLO when F1 is pressed, but no other \nkeys work, which makes sense since the default translation mode is \"replace\".  \n\n\tDo I have a syntax problem here, or something deeper?\n\n..Bill Massena (wam3090@yak.boeing.com)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7896, "properties": {"category": "sci.electronics", "text": "From: sburton@dres.dnd.ca (Stan Burton)\nSubject: Long distance IR detection\nContent-Type: text/plain; charset=iso-8859-1\nNntp-Posting-Host: stan\nContent-Transfer-Encoding: 8bit\nOrganization: Defence Research Establishment Suffield\nX-Newssoftware: GRn-beta 1.16g (04.01.93) by Michael B. Smith & Mike Schwartz\nMime-Version: 1.0\nLines: 19\n\n\n--\n\nI would like to be able to detect the angular position (low accuracy) of an\nIR emitting source at a distance of about 100 meters (more is better) in\ndaylight.  The IR source could be emitting a signature; I'm leaning toward\n30 KHz square wave with 50% duty cycle.\n\nI am considering the use of a quadrant detector from Centronic Inc. to give\ninformation to a pan/tilt head to point the sensor and thus determine the\nangles.  For the source I am considering wazing the heck out of an IR LED(s),\npossibly an Optek OP290 or Motorola MLED81.  Wazing would mean at least 1 Amp\ncurrent pulses.  At this current the duty cycle of the LED drops to 10% and I\nwould need to cycle five of them in turn to get the 50% required.\n\nHas anyone done something like this?\n\nStan Burton (DND/CRAD/DRES/DTD/MSS/AGCG)                 sburton@dres.dnd.ca\n(403) 544-4737     DRE Suffield, Box 4000, Medicine Hat, AB, Canada, T1A 8K6\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7897, "properties": {"category": "sci.crypt", "text": "From: rab@well.sf.ca.us (Bob Bickford)\nSubject: Re: More technical details\nNntp-Posting-Host: well.sf.ca.us\nOrganization: Whole Earth 'Lectronic Link\nLines: 15\n\n\nAnother objection occurred to me.  There was a comment about how\nsupposedly there would only be one decode box, operated by the FBI.\nThis is flat ridiculous, and I don't believe it for a millisecond.\nEven *if* they in fact only build one (or two or some other small\nnumber) of these, that won't stop others from building one.  Make\nit work like two Clipper-chip phones, one listening to each side\nof the recorded conversation.  I'll have to have another look at\nthe specs posted so far, but offhand I didn't see anything that\nwould preclude this sort of thing.....\n--\n        Robert Bickford                       rab@well.sf.ca.us\n Treasurer and Newsletter Editor,    /-------------------------------------\\\n Lib. Party of Marin County (CA)     | Don't Blame Me: I Voted Libertarian |\nMember, CA State Central Committee   \\-------------------------------------/\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7898, "properties": {"category": "misc.forsale", "text": "From: brett@oce.orst.edu (Brett Barksdale)\nSubject: ***** HIGH-END CAR STEREO FOR SALE *****\nOrganization: Oregon State University, College of Oceanography\nLines: 25\nDistribution: usa\nNNTP-Posting-Host: porky.oce.orst.edu\n\n=============================================================================\nNOTE: This is being posted for a friend. DO NOT REPLY to my account. Please \n      direct all replies to Scott Burke at scott@sparcom.com\n=============================================================================\n\nAlpine 5959S 6-CD Shuttle.  Paid $600, want $420/OBO.\nAlpine 1203 Remote CD Changer Control.  Paid $250, want $175/OBO.\nBoston ProSeries 10.0 Subwoofers (2) + Box.  Paid $545, want $380/OBO.\n\nAll equipment is under 6 months old and includes a full-replacement 5-year\nwarranty from original point of purchase.  The subwoofer box was custom\ndesigned to fit in the back of a Bronco II and is 14\" by 21\" by 27\".\n\nSend replies to: scott@sparcom.com\n\n-----\nScott Burke - Project Leader - Sparcom Corporation - Corvallis OR\nscott@sparcom.com - Telephone (503) 757-8416 - FAX (503) 753-7821\n\n\n-- \n------------------------------------------------------------------------------\n                     \"Just waiting for the nuts...\"\n             Brett Barksdale        brett@porky.oce.orst.edu\n------------------------------------------------------------------------------\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7899, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: L.H.Wood@lut.ac.uk\nSubject: An 8051 simulator - is example code available?\nReply-To: L.H.Wood@lut.ac.uk (Lloyd Wood)\nOrganization: Loughborough University, UK.\nLines: 25\n\nHello world,\n \nI'm attempting to write an 8051 simulator on an IBM PC for teaching\npurposes, so that first-year elec-eng students can 'see' the workings\nof the microcontroller as it performs operations - logical ands, for\nexample, being shown on a bit-by-bit basis (1 AND 1 = 1) so that the\nstudents can see that it's not really a mystical process, but totally\nlogical, for example. Every instruction should show some 'working',\nand not just alter register/memory/port contents.\n \nDoes anyone know of any freely-available example simulation code,\nin Pascal or Modula-2, that would show me where I'm going wrong\nin writing my simulator? [I'm using Ayala's -The 8051 Microcontroller-\nas a reference - the simulator supplied with the package is overkill\nfor simple teaching purposes, I feel, and there's no source code to help\nyou roll your own.]\n \nPlease email me if you can help, or if you know of somewhere more \nappropriate I should be posting this  - I rarely scan these groups.\n \nThanks,\n \nLloyd Wood\nL.H.Wood@lut.ac.uk \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7900, "properties": {"category": "misc.forsale", "text": "From: tpremo@mentor.cc.purdue.edu (Cinnamon Bear)\nSubject: Optonica tuner and Integrated amp forsale:\nOrganization: Purdue University Computing Center\nDistribution: na\nLines: 29\n\nI have an old Optonica tuner and integrated amp that I no longer\nuse.  The integrated amp section does not work right now but should\nnot cost much to fix.  I believe that it is just a Chip.  I have \nused it as a preamp and it works great!\n\nThis is a very nice looking and well built set.  They both are low \nprofile but the amp is rather heavy.\n\nThe tuner is in fine working condition and is a match to the amp.\n\nThe amp is rated at 75w/ch.\n\nThese peices went for about $850 New.\n\nI would like to get $150.  obo  for the pair. \n\nIf anybody has knowledge anough to fix the amp, I have had an estimate\ndone that it should cost less than $50 in parts.\n\nPlease email me if you are interested.  I will be moving back home for\nthe summer and will sell it back there if I do not do so here.\n\nTodd\n\n-- \n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n (___________________________________ %   Todd Premo  \n         /              /      /      %   Purdue Universtiy \n       /    __\t __   / __   /        %   Environmental Engineering \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7901, "properties": {"category": "rec.sport.baseball", "text": "From: rkoffler@ux4.cso.uiuc.edu (Bighelmet)\nSubject: Re: Best Sportwriters...\nKeywords: Sportswriters\nOrganization: University of Illinois at Urbana\nLines: 21\n\ncsc2imd@cabell.vcu.edu (Ian M. Derby) writes:\n\n\n>Since someone brought up sports radio, howabout sportswriting???\n\nI happen to be a big fan of Jayson Stark.  He is a baseball writer for the \nPhiladelphia Inquirer.  Every tuesday he writes a \"Week in Review\" column.  \nHe writes about unusual situations that occured during the week.  Unusual\nstats.  He has a section called \"Kinerisms of the Week\" which are stupid\nlines by Mets brodcaster Ralph Kiner.  Every year he has the LGTGAH contest.\nThat stands for \"Last guy to get a hit.\"  He also writes for Baseball \nAmerica.  That column is sort of a highlights of \"Week in Review.\"  If you \ncan, check his column out sometime.  He might make you laugh.\n\nRob Koffler\n\n-- \n******************************************************************\n|You live day to day and                rkoffler@ux4.cso.uiuc.edu|\n|dream about tomorrow --Don Henley                               |\n******************************************************************\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7902, "properties": {"category": "talk.politics.guns", "text": "From: bressler@iftccu.ca.boeing.com (Rick Bressler)\nSubject: Re: Gun Lovers (was Re: My Gun is like my American Express Card)\nOrganization: Boeing Commercial Airplane Group\nLines: 35\n\n>Hell, a Glock is the last thing that should be switched to.  The only thing\n>that I know about a Glock is the lack of a real safety on it.  Sure there is\n>that little thing in the trigger but that isn't too great of a safety.\n\nYou're getting warmer.  The 'little thing in the trigger' has to be\ndepressed before the trigger can move.  What this means is the damned\nthing won't go off until the trigger is pulled.  This makes it just\nabout (there HAVE been some problems, but we're assuming the gun is\nfunctioning correctly..) as safe as a revolver.  The gun when working\ncorrectly is totally drop safe.\n\nNow, in police work this is a consideration.  There is not a single\ndocumented case I'm aware of where a police officer was killed because\nhe failed to operate the safety on his firearm.  There are quite a few\ndocumented cases where criminals got hold of the cops gun and couldn't\nfigure out how to get the safety off in time to use the gun, thus the\nproprietary nature of the safety (to the criminal at least) very likely\nprevented the office from getting shot.\n\nThe purpose of a safety is to make the gun safe from unintentional fire.\nThis does not mean it should be so complicated as to slow down\nintentional use!  Thus the Glock safety is perfectly adequate from a\n'safety' standpoint, but not necessarily the most desirable from the\nstandpoint of open carry where it is easily grabbed by somebody else.\nBy this criteria it DOES make a lot of sense as a concealed carry piece.\nFrom the standpoint of police use, it is no better (or worse) than a\nrevolver as far as being 'proprietary' to the officer in the method of\nfiring it.\n\nThe ideal solution may someday be biometric sensing of the user so that\nthe firearm can't be used by anybody but it's owner, but for now the\nwide variety of safety systems helps, unless the criminal happens to be\nfamiliar with that particular type of firearm.\n\nRick.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7903, "properties": {"category": "sci.electronics", "text": "From: ubsiler@msuvx1.memst.edu\nSubject: Home-made IR remote extender\nOrganization: Memphis State University\nLines: 19\n\nHere's a question for all you electrical engineers out there:\n\n  I bought an 'Infrared detector module' at Radio Shack for $3.95 - it is a \nlittle gizmo that senses infrared remotes and produces an output signal. Then\nI hooked the output through a transistor to an infrared LED. The circuit works\nlike a minature remote control extender in my car - All remote commands are\nrelayed to the CD player hidden in the glove compartment. It works fine with\nmy Denon CD player, but when I tried to build the same circuit for a friend's\nVCR, it didn't work.\n  The circuit appears to work for other remotes (you can see infrared with a\nSony CCD camcorder) but coincidentally it only seems to work for my CD\nplayer...\n\n\tAny advice would be appreciated....\n        Brian\n\n---\nUBSILER @ MSUVX1.MEMST.EDU\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.376+0000", "event": "documents", "entityId": 7904, "properties": {"category": "misc.forsale", "text": "From: 02106@ravel.udel.edu (Samuel Ross)\nSubject: Sams comic sale!! Low prices!!! READ!!!\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 375\n\nOK.  Instead of holding an auction, I have decided to compute prices for each comic (after many suggestions).  These are the most reasonable prices I can give (not negotiable).  If you would like to purchase a comic (or group), simply email me with the title and issue #'s you want.  The price for each issue is shown beside each comic.  First come, first served!!!  There is no more bidding.  Meet my price and it is yours.  I can be reached at this email address:\n\n02106@chopin.udel.edu or\n02106@ravel.udel.edu or\n02106@bach.udel.edu or\n02106@brahms.udel.edu\n\nNO MORE HAGGLING ABOUT THE PRICE!!!!!!!!\nLOTS OF COMICS FOR $1, $2, or $3 LOOK AT LIST!!!!!\n\nShipping is $2 for 1-3 comics.  For more than 3, the price will be determined by the volume of the purchase (I may have to use a big heavy box for large orders which costs more to mail).\n\nFor all those who have bought comics from me, thanks!!!\n\nAll comics are near mint unless otherwise noted (my books were graded by\nmile high comics and other comic professional collectors, not me!)\n\nHere is the list:\n\n\n\nIncredible Hulk\n156 (vs another Hulk) $3\n195 $2\n196 $2\n246 (vs Captain Marvel) $1\n248 $1\n249 $1\n250 (Double size issue vs Silver Surfer) $5\n255 (vs Thor) $1\n279 $1\n300 $2\n312 $2\n313 $1\n316 (vs Bi Coastal Avengers) $1\n347 $1\n348 $1\n350 (vs Thing) $2\n354 $1\n358 $1\n360 $1\n362 (vs Werewolf By Night) $2\n364 $1\n365 $1\n366 $1\n379 (1 copy) $5\n\n\nPunisher\n50 $1\n57 $2\n\nPunisher War Journal\n29 (Ghost Rider) $2\n30 (Ghost Rider) $2\n\nPunisher Armory\n1 $4\n2 $2\n\nOriginal Ghost Rider Rides Again (Reprint)\n1 $1\n\nGhost Rider (old series)\n37 $3\n43 (vs Johnny Blaze) $3\n77 (2 copies, origin of GR dream) $4 each\n\nGhost Rider (new series)\n15 (1st print, Green glow in dark cover, 1 copy) $5\n15 (2nd print, gold cover w/ glow cover) $3\n\nWeb of Spiderman\n56 (2 copies) $2 each\n60 $3\n69 (vs Hulk, 1 copy left!!!)  $2\n70 (SpiderHulk, 1 copy left!!!)  $2\n71 $1\n72 $1\n78 $1\n\nDeadly Foes of Spiderman\n1 (2 copies) $2 each\n2 $2\n3 $2\n\nAmazing Spiderman vs Dr. Octopus (special NACME issue) $2\n\nAmazing Spiderman \n350 (vs Dr. Doom, 1 copy LEFT!!!) $2\n\nSpiderman (1990)\n1 (silver, not bagged) $4\n6 $3\n7 $3\n8 (2 copies) $2 each\n9 (w/ Wolverine, 1 COPY LEFT!!!) $2\n10 $2\n11 $1\n13 $5\n16 $1\n\nNew Warriors\n1 (gold cover) $2\n8 $4\n10 $2\n11 $1\n12 $1\n13 $1\n14 (w/ Darkhawk) $1\n15 $1\n\nSuperman Man of Steel #1 $2\n\nSuperman (new)\n53 (2 copies) $1 each\n55 $1\n56 $1\n\nAdventures of Superman \n479 $1\nAnnual #3 $1\n\nSuperman Annual #3 (Armegedon 2001 tie in) $1\n\nAction Comics #666 $1\n\nAvengers West Coast #69 (Hawkeye vs US Agent) $1\n\nBatman\n465 (Robin returns) $2\n466 $1\n467 $1\nAnnual #15 (Armegedon 2001 tie in) $3\n\nCaptain America \n230 (vs Hulk) $2\n257 (vs Hulk) $1\n\n\nArmegedon 2001 \n1 $4\n2 $2\n\n\nFoolkiller #1 $2\n\n\nInfinity Gauntlet \n1 $6\n4 $3\n5 $3\n\nDouble Dragon #1 $1\n\nDeathlok (series) \n2 $1\n\nTransformers #80 (last issue) $2 \n\nWonder Man\n1 $1\n2 $1\n\nFlaming Carrot #25 (w/ Ninja Turtles) $2\n\nThe Comet #1 $1\n\nLegend of the Shield #1 $1\n\nJustice Society of America\n1 $1\n2 $1\n3 $1\n4 $1\n\nOfficial movie mag from Turtles II movie (sealed w/ Jelloman comic) $5\n\nRobin \n1 (1 copies w/ poster) $3\n1 (3rd print) $1\n5 (6 copies) $1 each\n\nGuardians of the Galaxy \n1 $6\n2 $3\n3 $2\n4 $2\n5 $2\n6 $2\n7 $2\n8 $2\n9 (2 copies) $3 each\n10 $2\n11 $2\n12 $1\n13 $3\n14 $3\n15 $1\n16 $1\n17 $1\n18 (2 copies) $2 each\n\nSuperman vs Amazing Spiderman (oversized issue from 70's) $7\n\nDarkHawk\n1 (3 copies) $8 each\n2 (2 copies) $6 each\n3 $5\n4 $4\n5 $4\n6 $3\n7 $2\n8 $2\n9 $3\n10 $1\n\nThor\n246 $1\n428 $1\n429 (vs Juggernaut) $2\n430 (w/ Ghost Rider) $1\n431 $1\n432 (Thor vs Loki, 2 copies) $3 each\n433 (new Thor) $2\nAnnual #16 $1\n\nWhat if....\n13 $1\n23 $1\n25 $2\n26 $1\n\nAlpha Flight\n29 $1\n51 $6\n53 $6\n94 (vs Fant. 4) $1\n\nNew Mutants\n22 $2\n100 (last issue, 1st look at X-Force, 1st print, 2 copies) $5 each\n100 (2nd print, gold cover) $4\n\nFlash (new)\n43 $1\n48 $1\n49 $1\n50 $2\n51 $1\nAnnual #4 $1\n\n\nX-Men (new)\n1 (all 5 covers) $1 each but $2 for magneto  foldout cover\n\nUncanny X-Men\n191 $3\n215 $2\n255 (2 copies) $2 each\n258 $6\n268 (1 sold,1 copy left!, Lee reg artist) $10\n275 (1 COPY LEFT 1st print) $6\n275 (gold 2nd print) $3\n276 $3\n277 $3\n278 $2\n279 $2\n280 $2\n281 $3\n282 $4\n283 $6\n\nDefenders\n52 (Hulk vs Sub Mariner) $2\n\n\nFantastic Four\n347 $4\n348 $2\n349 (3 copies) $2 each\n\nWolverine\n11 $3\n20 $2\n41 (w/ Cable, 2 copies) $6 each\n42 $4\n43 $3\n\nSilver Surfer (1987)\n1 $6\n2 $3\n3 $3\n4 $3\n5 $2\n6 $2\n8 $2\n22 $2\n24 $2\n32 $2\n49 $2\n50 (Foil cover, only 1 copy left!!) $6\n51 $2\n52 $2\n53 $1\n54 $1\n55 $1\n56 $1\n58 $2\n59 $2\n\nAvengers\n326 $3\n328 (origin of Rage) $3\n\nX-Factor\n40 $6\n67 $3\n68 $6\n71 $3\n73 $1\n\nQuasar\n21 $1\n22 $1\n23 $1\n24 $1\n\nGreen Lantern (1990)\n3 $2\n9 (2 copies) $1 each\n10 $1\n11 $1\n12 $1\n\nToxic Avenger\n1 (3 copies) $1 each\n2 $1\n\nSleepwalker\n1 (3 copies) $2 each\n3 $1\n7 $1\n\nKool Aid Man #1 (sealed in white bag, 2 copies) $2 each\n\nX-Force\n1 (bagged w/ Cable Card) $4\n1 (bagged w/ Shatterstar Card) $3\n2 $2\n3 $1\n4 $1\n\nNFL Superpro\n1  $1\n\nDr. Strange #31 $1\n\nHawkworld Annual #2 (2nd print, Armegedon 2001 tie in) $1\n\nHawk & Dove Annual #2 (Armegedon 2001 tie in) $1\n\nJustice League of America Annual #5 (Armegedon 2001 tie in) $1\n\n\n\nSend all bids and comments to\n\n02106@chopin.udel.edu\n\nThanks\nSam (the \"ex\"  comic book collector)\n\n\nCollege of Electrical Engineering, University of Delaware\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7905, "properties": {"category": "rec.autos", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Auto air conditioning without Freon\nOrganization: NEC Systems Laboratory, Inc.\nLines: 33\n\nIn article <1993Apr14.155159.32619@ns1.cc.lehigh.edu> amh2@ns1.cc.lehigh.edu (ALOIS M. HIMSL) writes:\n>Yes, I have the same questions. What makes me upset is that R12 costs are\n>skyrocketing and in fact can't be bought anymore in my area.  Also this is yet\n>another way mechanics and dealers can RIP-OFF customers. Also I was reading\n>that the new refrigerant is not compatible with the r12 system and that it\n>would cost $ 300 upto a $ 1000 to retrofit a car with the old R12 system.\n>ALthough it is important to consider the environment I think the sudden ban is\n>a slap in the face for the consumer. Why is it that the consumer should have\n>to pay for the retrofit? The auto companies should have seen this coming? Also\n>why is it that the governments of the world were so quick in banning freon use\n>and yet so slow in banning gasoline. In my opinion gasoline is just as\n>hazardous as anything else.  Why can't they start proposing bans on this and\n>switch to natural gas or electric? The technology is there. Hopefully some\n>chemist will come up with another alternative coolant that will be compatible\n>with the old system.\n>Al H.\n\n\tSeveral chemists already have come up with several substitutes for\nR12.  You don't hear about them because the Mobile Air Conditioning Society\n(MACS), that is, the people who stand to rake in that $300 to $1000 per\nretrofit per automobile, have mounted an organized campaign to squash those\nR12 substitutes out of existence if not ban them altogether (on very shaky\ntechnical grounds, at best, on outright lies at worst).\n\n\tDoes this piss you off?  Yes?  Write a letter to your congressman, to\nyour senator, to the president, to the EPA, and to the DOT and complain.\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7906, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: aew@eosvcr.wimsey.bc.ca (Alan Walford)\nSubject: Workgroup Questions (conven. ram and licensing)\nReply-To: aew@eosvcr.wimsey.bc.ca\nOrganization: Eos Systems Inc, Vancouver, B.C., Canada\nLines: 37\n\nI would be very appreciative if someone would answer a few \nquestions about Windows for Workgroups.\n\nI currently have Novell Netware Lite which does not work with\nWindows very well and is a conventional memory hog (ver. 1.1).\nI am considering moving all our machines to W4WG.\n\nQ1:  How much conventional ram does W4WG use over and above the\n     driver for the network card?\n\nQ2:  If I have a Novell NE2000 card, are the LSL and IPX drivers\n     still needed?\n\nQ3:  Does W4WG do a license check over the network to ensure each\n     machine is running its own licenced copy of W4WG? (Note: I do\n     not want to break the license agreement and I will buy a copy\n     of W4WG for each of our machines, it is just that I would like\n     to try it out first to see if it meets our needs. Returning one\n     opened copy is much easier than returning N opened copies.)\n\nQ4:  If you buy the upgrade to Windows 3.1 for W4WG does it replace\n     all of Win 3.1 as you install it or does it depend on current\n     Win 3.1 files?\n\nQ5:  If I install Windows NT on my server when it comes out, will I have\n     any troubles with the W4WG machines?\n\nWhen I started this message, I was going to ask only 2 questions but I got carried\naway. I'll stop now ;-).\n\nI look forward to your replies.\n\nAl\n\n-- \nAlan Walford     Eos Systems Inc., Vancouver,B.C., Canada  Tel: 604-734-8655\naew@eosvcr.wimsey.bc.ca           OR        ...uunet!wimsey.bc.ca!eosvcr!aew  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7907, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nDistribution: na\nOrganization: ClariNet Communications Corp.\nLines: 29\n\nIn article <1qnn7b$ddc@sol.TIS.COM> mjr@tis.com (Marcus J Ranum) writes:\n>\tWhen you've got HRH Prince of Wales saying stupid things over\n>cordless phones, it's not hard to imagine that drug dealers, child\n>pornographers, commies, LISP programmers, and other threats to the\n>civilized world might transact incriminating business over \"encrypting\"\n>cellular phones.\n>\n\nLet's assume, for the moment, that the system really is secure unless\nyou get both halves of the encryption key from the two independent\nescrow houses.  Let's say you even trust the escrow houses -- one is\nthe ACLU and the other is the EFF.  (And I'm not entirely joking about\nthose two names)\n\nIn that case the Prince of Wales has nothing to worry about on this\nsystem.  Indeed, as pointed out, since the current systems, even the\ncurrent digital systems, are very easy to decode -- right now anybody\nwith an old TV can hear them -- for most people, this will be viewed\nas an \"oh goody\" step upwards.\n\nAnd look at how tolerant the public is.  They're willing to let the\nneighbours with the radios hear right now.\n\nIt was suggested by one person that a *lot* of non-evidentiary wiretapping\nis going on right now without warrants, because anybody can do it and it's\njust an ECPA violation.  This would stop that.  All tapping would need\na warrant, or a breach of security at the escrow houses.\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7908, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: From Israeli press. Short notes.\nNf-ID: #N:cdp:1483500345:000:1466\nNf-From: cdp.UUCP!cpr    Apr 16 16:51:00 1993\nLines: 39\n\n\nFrom: Center for Policy Research <cpr>\nSubject: From Israeli press. Short notes.\n\n/* Written  4:43 pm  Apr 16, 1993 by cpr@igc.apc.org in igc:mideast.forum */\n/* ---------- \"From Israeli press. Short notes.\" ---------- */\nFROM THE ISRAELI PRESS\n\nHadashot, 14 March 1993:\n\nThe Israeli Police Department announced on the evening of Friday,\nMarch 12 that it is calling upon [Jewish] Israeli citizens with\ngun permits to carry them at all times \"so as to contribute to\ntheir security and that of their surroundings\".\n\nHa'aretz, 15 March 1993:\n\nYehoshua Matza (Likud), Chair of the Knesset Interior Committee,\nstated that he intends to demand that the police department make\nit clear to the public that anyone who wounds or kills\n[non-Jewish] terrorists will not be put on trial.\n\nHa'aretz, 16 March1993:\n\nToday a private security firm and units from the IDF Southern\nCommand will begin installation of four magnetic gates in the Gaza\nstrip, as an additional stage in the upgrading of security\nmeasures in the Strip.\n\nThe gates will aid in the searching of [non-Jewish] Gaza residents\nas they leave for work in Israel. They can be used to reveal the\npresence of knives, axes, weapons and other sharp objects.\n\nIn addition to the gates, which will be operated by a private\ncivilian company, large quantities of magnetic-card reading\ndevices are being brought to the inspection points, to facilitate\nthe reading of the magnetic cards these [non-Jewish] workers must\ncarry.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7909, "properties": {"category": "sci.space", "text": "From: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nSubject: Re: Space Debris\nOrganization: NASA Langley Research Center\nLines: 10\nDistribution: world\nReply-To: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nNNTP-Posting-Host: tahiti.larc.nasa.gov\n\n> Keesler, Loftus, Potter, Stansbery, Kubriek....?\n\nI gues it is Keesler. The others do not ring the bell but they might be \ninvolved as well. Sometime ago Keesler was here at Langley teaching \na course on space debris and, if my memory does not fai,l I think there\nwas even a reference to a book on the subject.\n\nC.O.Egalon@larc.nasa.gov\n\nClaudio Oliveira Egalon\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7910, "properties": {"category": "comp.windows.x", "text": "From: gnohmon@ssiny.UUCP (Ralph Betza)\nSubject: dynamic SqueezeTitle configuration in *twm\nKeywords: TWM, twm, vtwm, tvtwm, ctwm\nOrganization: Systems Strategies, Inc., NY, NY\nLines: 123\n\nI consider TWM-style Squeezed Titles indispensable in a window\nmanager. I like to have two tall xterm windows visible at the same\ntime, with no overlap; and since two windows aren't enough, I have\nother xterm windows underneath them, with exactly the same positioning.\n\nIn case you're not familiar with Squeezed Titles, here's a crude\npicture:\n\n ====================== Figure 1 ====================================\n |\n |    +---------+                   +---------+          +=========+\n |    + title A +                   + title B +          + title C +\n |    +------------------------+    +------------------------------+\n |    +   this is the          +    + window B hides window C, but +\n |    +     body of the        +    + you can still see C's title  +\n |    +      window, window A  +    + which is squeezed right.     +\n |    +------------------------+    +------------------------------+\n |\n ====================== Figure 1 ====================================\n\nSqueezed titles allow me to have about 5 such windows in each stack,\nwith easy access; and 3 per stack is usually more than I really\nneed, since I also insist on having a virtual WM.\n\nThe only problem is that the title location is static, that is,  it\nis configured in .twmrc, and in order to change it you have to edit\nthat file and restart the window manager. Doing so is cumbersome and\ntime-consuming.\n\nTherefore, I have implemented f.squeeze{ left, center, right }\nfunctions in my own copy of vtwm; the idea being that with one click\nof a button, you can change this:\n\n    +---------+\n    + title A +\n    +------------------------+\n    +   this is the          +\n    +     body of the        +\n    +      window, window A  +\n    +------------------------+\n\nto this:\n\n                   +---------+\n                   + title A +\n    +------------------------+\n    +   this is the          +\n    +     body of the        +\n    +      window, window A  +\n    +------------------------+\n\n ===============\n\nOkay. So far, so good. Now, how the heck do I get them to put this\ninto the next \"official\" twm, and the next tvtwm, and the next vtwm,\nand the next ctwm? And the next xyztwm that I never heard of?\n\nOne way would be to post, in comp.windows.x, a description of this\nenhancement, together with an explanation of why I think it is a\nVery Good Thing, and hope that someone reads it. :-)\n\nIn case it isn't already clear why I think it's a Very Good Thing,\nlook back up at Figure 1, and picture window A moved over on top of\nwindows B and C; now window A's title hides Window B's title;\nbut when you hit f.squeezecenter, the result is:\n\n        +=========+   +---------+   +=========+\n        + title B +   + title A +   + title C +\n        +-------------------------------------+\n        +   this is the body of the window,   +\n        +   window A, which is on top.        +\n        +-------------------------------------+\n\n ===================\n\nThe rest of this posting explains how to implement it, based on my\nX11R4 copy of vtvwm.shar; it's just a sketch because posting the\nfull diffs would be too long.\n\nThe key to this enhancement is to add the following lines in the\nExecuteFunction() routine in menus.c:\n\n#ifdef SHAPE\n\tcase F_SQUEEZELEFT:\n\t{\tstatic SqueezeInfo left_squeeze = { J_LEFT, 0, 0 };\n\t\tif (DeferExecution (context, func, Scr->SelectCursor))\n\t\t  return TRUE;\n\n\t\ttmp_win->squeeze_info = &left_squeeze;\n\t\tSetFrameShape( tmp_win );\n\t\tbreak;\n\t}\n\t.... and similarly for squeezeright ( J_RIGHT ) and\n\tsqueezecenter ( J_CENTER ) ...\n#endif\n\n( Of course, you also have to define F_SQUEEZELEFT in parse.h\n  and add\n    { \"f.squeezeleft\", FKEYWORD, F_SQUEEZELEFT },\n     ... and so forth ...\nto parse.c\n\nIn order to use these functions, add something like the\nfollowing to your .twmrc file:\n\nButton2 = m | s : w|v|d|r|i|t|door : f.squeezecenter\n\n =================\n\nAbout a year ago, I posted this, but our news was broken and I\n*think* it didn't get out.\n\nSince then, \"blast\" has appeared in comp.sources.x, Volume 19,\nIssue 41; you could use blast to achieve a similar effect, by\nchiseling away at an mwm-style wide title. Better to have a\ntwm-style window manager, I think.\n\n--\nRalph Betza (FM),\nuunet!ssiny!gnohmon         gnohmon@ssiny.com\n\n\"The question of whether a computer can swim is more interesting\n than the question of whether a submarine can think\" - Lenny Dykstra\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7911, "properties": {"category": "comp.sys.mac.hardware", "text": "From: quan@Xenon.Stanford.EDU (Tony Quan)\nSubject: Re: New Apple Ergo-Mouse\nOrganization: Computer Science Department, Stanford University.\nLines: 22\n\nIn article <C52EqG.6H2@dartvax.dartmouth.edu> hades@Dartmouth.Edu writes:\n>nwcs@utkvx.utk.edu (Schizophrenia means never being alone) writes:\n>\n>>Does anyone know how to open up the Apple Ergo-Mouse (ADB Mouse II)?\n>>Mine lives near a cat (true, really...) and picks up her fur.  From what\n>>I can tell, it looks like Apple welded it shut.\n>\n>    You must not have tried very hard. I just opend mine in about 2\n>seconds. Take a look on the bottom, it has a dial that turns to open\n>much like the older ADB mouses used to have. It's a bit harder to turn\n>at first but it is quite simple to open.\n>\n\nNope.  I'm pretty sure that this person knows how to take the ball out.\nI think that what they want to do is take the mouse apart.  The old mouse\nhad four screws on the bottom that you could unscrew to do this,\nwhile there's no obvious way to take the new one apart.\n\n\n--Tony\nquan@cs.stanford.edu\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7912, "properties": {"category": "sci.med", "text": "From: lindae@netcom.com\nSubject: Friend Needs Advice...\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 38\n\n\nA friend of mine is having some symptoms and has asked me to post\nthe following information.\n\nA few weeks ago, she noticed that some of her hair was starting\nto fall out.  She would touch her head and strands of hair would\njust fall right out. (by the way, she is 29 or 30 years old).  \nIt continued to occur until she had a bald spot about the\nsize of a half dollar.  Since that time, she  has gotten two\nmore bald spots of the same size.  Other symptoms she's\ndescribed include:  several months of an irregular menstrual\ncycle (which is strange for her, because she has always been\nextremely regular); laryngitis every few days -- she will wake\nup one morning and have almost no voice, and then the next day\nit's fine; dizzy spells -- she claims that she's had 4 or 5\nvery bad dizzy spells early in the morning, including one that\nknocked her to the ground; and general fatigue.\n\nShe went to a dermatologist first who couldn't find any reason\nfor the symptoms and sent her to an internist who suspected\nthyroid problems.  He did the blood work and claims that everything\ncame back normal.  \n\nShe's very concerned and very confused.  Does anyone have any\nideas or suggestions?  I told her that I thought she should\nsee an endocrinologist.  Does that sound like the right idea?\n\n** By the way, in case you are going to ask...no, she has recently\ntaken any medications that would cause these symptoms...no, she hasn't\nrecently changed her hair products and she hasn't gotten a perm, \ncoloring, or other chemical process that might cause hair to fall\nout.\n\nThanks in advance for any help!\n\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7913, "properties": {"category": "soc.religion.christian", "text": "From: rolfe@dsuvax.dsu.edu (Tim Rolfe)\nSubject: Re: What did Lazarus smell like?\nLines: 15\n\nIn the discussion as to why Jesus spoke aloud the \"Lazarus, come out\",\nI'm surprised that no one has noticed the verse immediately preceeding.\n\nJn 12:41  \"Father, I thank you for listening to me, though I knew that\nyou always listen to me.  But I have said this for the sake of the\npeople that are standing around me that they may believe that you have\nmade my your messenger.\"  (Goodspeed translation)\n\nMy guess is that the \"Lazarus, come out!\" was also for the sake of the\ncrowd.\n-- \n                                                    --- Tim Rolfe\n                                                 rolfe@dsuvax.dsu.edu\n                                                 rolfe@junior.dsu.edu\n                                                RolfeT@columbia.dsu.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7914, "properties": {"category": "sci.med", "text": "From: uabdpo.dpo.uab.edu!gila005 (Stephen Holland)\nSubject: Re: diet for Crohn's (IBD)\nOrganization: Gastroenterology - Univ. of Alabama\nLines: 54\n\nIn article <1993Apr23.211108.26887@midway.uchicago.edu>,\nbmdelane@quads.uchicago.edu (brian manning delaney) wrote:\n> \n> One thing that I haven't seen in this thread is a discussion of the\n> relation between IBD inflammation and the profile of ingested fatty\n> acids (FAs).\n> \n> I was diagnosed last May w/Crohn's of the terminal ileum. When I got\n> out of the hospital I read up on it a bit, and came across several\n> studies investigating the role of EPA (an essentially FA) in reducing\n> inflammation. The evidence was mixed. [Many of these studies are\n> discussed in \"Inflammatory Bowel Disease,\" MacDermott, Stenson. 1992.]\n> \n> But if I recall correctly, there were some methodological bones to be\n> picked with the studies (both the ones w/pos. and w/neg. results). In\n> the studies patients were given EPA (a few grams/day for most of the\n> studies), but, if I recall correctly, there was no restriction of the\n> _other_ FAs that the patients could consume. From the informed\n> layperson's perspective, this seems mistaken. If lots of n-6 FAs are\n> consumed along with the EPA, then the ratio of \"bad\" prostanoid\n> products to \"good\" prostanoid products could still be fairly \"bad.\"\n> Isn't this ratio the issue?\n> \n> What's the view of the gastro. community on EPA these days? EPA\n> supplements, along with a fairly severe restriction of other FAs\n> appear to have helped me significantly (though it could just be the\n> low absolute amount of fat I eat -- 8-10% calories).\n> \n> -Brian <bmdelane@midway.uchicago.edu>\n\nAs you note, the research is mixed, so there is no consensus on the\nrole of fatty acids in Ulcerative colitis.  There is a role for short\nchain fatty acids in patients with colostomies and rectal pouches\nthat are inflammed (Short is butyrate and shorter).  There may be a role\nfor treatment of UC with Short chain fatty acids, and I am looking \nforward to the upcoming AGA meeting in Boston to see what people are\ndoing.  \n\nYou raise a hypothesis about the studies and restriction of other\nfatty acids.  You should contact the authors directly about that or\neven write a letter to the editor - it is a good point.  By the way,\nthe abbreviation EPA is not in general use, so I do not know what \nfatty acid you are speaking about.\n\nAnd to Brian an U of C ---  There is a physician named Stephen Hanauer\nthere who is a recognized expert in the treatment of IBD.  You might \ngive him a call.  He is interested in new combinations of drugs for \nthe treatment of IBD.  If you call please say hello to him from me,\nI was looking at U of C for a position, and perhaps still am.  And\nbe sure to look into joining the CCFA.\n\nBest of Luck.\n\nSteve Holland\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7915, "properties": {"category": "talk.religion.misc", "text": "From: dic5340@hertz.njit.edu (David Charlap)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: New Jersey Institute of Technology, Newark, N.J.\nLines: 22\nNntp-Posting-Host: hertz.njit.edu\n\nIn article <1r1i41$4t@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>\n>Just maybe you won't be home.  Then you can come home to something \n>like this:\n>\n>    \"Well, it's been a rough month,\" begins Johnnie Lawmaster.  \"I\n> just get laid off, and my divorce became final.  But I just wasn't\n> ready for what happened this particular Monday.\"\n\n[horror story about FBI ruining a guy's life for the hell of it omitted]\n\n>So if you don't want your tea party to be held in awkward silence, make\n>sure your lawyer isn't there, there's a good chap.\n\nSo, is this a real story or a work of fiction?  How about some\nsources?  When, where, and in what newspaper did you get all this\nfrom?  Or is it all hypothetical?\n-- \n+------------------------+------------------------------------+\n| David Charlap          | \"Apple II forever\" - Steve Wozniac |\n| dic5340@hertz.njit.edu | \"I drank what?\" - Socrates         |\n+------------------------+------------------------------------+\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7916, "properties": {"category": "rec.autos", "text": "From: turbo@cbnewse.cb.att.com (gerald.l.lindahl)\nSubject: Re: WARNING.....(please read)...\nOrganization: AT&T\nLines: 19\n\nFrom article <1993Apr15.024246.8076@Virginia.EDU>, by ejv2j@Virginia.EDU (\"Erik Velapoldi\"):\n> This happened about a year ago on the Washington DC Beltway.\n> Snot nosed drunken kids decided it would be really cool to\n> throw huge rocks down on cars from an overpass.  Four or five\n> cars were hit.  There were several serious injuries, and sadly\n> a small girl sitting in the front seat of one of them was struck \n> in the head by one of the larger rocks.  I don't recall if she \n> made it, but I think she was comatose for a month or so and \n> doctors weren't holding out hope that she'd live.\n> \n> What the hell is happening to this great country of ours?  I\n> can see boyhood pranks of peeing off of bridges and such, but\n> 20 pound rocks??!  Has our society really stooped this low??\n> \n> Erik velapold\n\nYes\n!!!!\n!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7917, "properties": {"category": "comp.graphics", "text": "From: cliff@watson.ibm.com (cliff)\nSubject: Reprints\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: cliff.watson.ibm.com\nOrganization: A\nLines: 17\n\nI have a few reprints left of chapters from my book \"Visions of the             \nFuture\".  These include reprints of 3 chapters probably of interest to          \nreaders of this forum, including:                                               \n                                                                                \n1. Current Techniques and Development of Computer Art, by Franz Szabo           \n                                                                                \n2. Forging a Career as a Sculptor from a Career as Computer Programmer,         \nby Stewart Dickson                                                              \n                                                                                \n3. Fractals and Genetics in the Future by H. Joel Jeffrey                       \n                                                                                \nI'd be happy to send out free reprints to researchers for scholarly             \npurposes, until the reprints run out.                                           \n                                                                                \nJust send me your name and address.                                             \n                                                                                \nThanks, Cliff  cliff@watson.ibm.com                                             \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7918, "properties": {"category": "misc.forsale", "text": "From: berger@chaos.cs.brandeis.edu (David Berger)\nSubject: 101 Keyboard wanted.\nOrganization: Brandeis University\nLines: 7\n\nI'm looking to buy a 100% working keyboard for a 286 system (preferably \na 101 layout.)  I'm looking to spend about $20.\n\n\n-- \n\n\t\t\t\t\tDavid\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7919, "properties": {"category": "misc.forsale", "text": "From: dsnyder@falcon.aamrl.wpafb.af.mil\nSubject: Golf shoes size 9 1/2\nOrganization: USAF AL/CFH, WPAFB, Dayton, OH\nLines: 15\n\n  Used pair of golf shoes Size 9 1/2 good shape no holes etc.  $10.00 o.b.o.\n  plus shipping.    David-- \n\n---------------------------------------------------------------------\nDavid B. Snyder                     Logicon Technical Services Inc.\ndsnyder@falcon.aamrl.wpafb.af.mil   Wright-Patterson Air Force Base\n513-255-5165                        Dayton, Ohio USA\n---------------------------------------------------------------------\nIt is said that GOD doesn't subtract from ones' time on earth, those\nhours spent flying.\n---------------------------------------------------------------------\n1946 Cessna 140 N76234 \"The lady in waiting\" Owner/Operator\n---------------------------------------------------------------------\nOpinions expressed are my own and not those of Logicon or the USAF.\n---------------------------------------------------------------------\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7920, "properties": {"category": "talk.politics.mideast", "text": "From: ab4z@Virginia.EDU (\"Andi Beyer\")\nSubject: Re: Israel's Expansion II\nOrganization: University of Virginia\nLines: 7\n\nI understand how israel captured the teritory and feels that it\nis its right to annex it. I can't fully understand why it has\nto deal with palestinians much the same way jews were treated\nbefore the holocaust (the Final Solution) by Hitler. What I\ntotally don't get is why the U.S. has to subsidize the\nexistance of such a thorough abuser of human rights.\n\t\t\t\tJust wondering\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7921, "properties": {"category": "comp.sys.mac.hardware", "text": "From: nsomerse@uglx.UVic.CA (Neil  Somerset)\nSubject: Re: ADB woes\nNntp-Posting-Host: uglx.uvic.ca\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 28\n\nIn article <1993Apr3.010808.3589@afterlife.ncsc.mil> mlbelan@afterlife.ncsc.mil (Mark Belangee) writes:\n>\n>Greetings, oh, wise netters..  (Oops.. That's the oracle..Sorry..)\n>\n>Anyhow, I have a basic question that I cannot answer.. Just *where* in the\n>heck can I buy a ADB cable??  Mine on my trackball is shot.. and I haven't\n>been able to find a replacement anywhere..  Unless I'm looking in the\n>wrong mail order catalogs....\n>\n>Anyone have any ideas? (Places/prices/just make it myself?)\n>\n>\n>-Mark\n>\n>mlbelan@afterlife.ncsc.mil\n\nYou should be able to pick up an ADB cable at any computer wiring store...\nI'd give you the address of Alberta Computer cable in Calgary, but a: I'm\nin Victoria (B.C., Canada) and b: I don't think an address in Calgary would\nhelp you too much....basically however I just phoned them up, and they\ncharged me approx. $15 cnd for a custom made ADB extension cable for my mouse.\n\nHope this helps...\n\nDave Maclachlan\ndmaclach@ra.uvic.ca\nNightFall Software Inc.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7922, "properties": {"category": "alt.atheism", "text": " wupost!uunet!olivea!sgigate!sgi!fido!solntze.wpd.sgi.com!livesey\nSubject: Re: >>>>>>Pompous ass\nFrom: livesey@solntze.wpd.sgi.com (Jon Livesey)\n <93089.050046MVS104@psuvm.psu.edu> <1pa6ntINNs5d@gap.caltech.edu> \n <1993Mar30.205919.26390@blaze.cs.jhu.edu> <1pcnp3INNpom@gap.caltech.edu> <1pdjip$jsi@fido.asd.sgi.com> <1pi9jkINNqe2@gap.caltec\nOrganization: sgi\nNNTP-Posting-Host: solntze.wpd.sgi.com\nLines: 20\n\nIn article <1pi9jkINNqe2@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >>>How long does it [the motto] have to stay around before it becomes the\n|> >>>default?  ...  Where's the cutoff point? \n|> >>I don't know where the exact cutoff is, but it is at least after a few\n|> >>years, and surely after 40 years.\n|> >Why does the notion of default not take into account changes\n|> >in population makeup?     \n|> \n|> Specifically, which changes are you talking about?  Are you arguing\n|> that the motto is interpreted as offensive by a larger portion of the\n|> population now than 40 years ago?\n\nNo, do I have to?    I'm just commenting that it makes very\nlittle sense to consider everything we inherit to be the default.\n\nSeen any steam trains recently?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7923, "properties": {"category": "misc.forsale", "text": "From: mxahmad@pbhyg.PacBell.COM (Mehdi Ahmadi)\nSubject: ######    San Mateo Duplex House for sale    ##########\nOrganization: Pacific * Bell\nDistribution: ba\nLines: 38\n\n\n\n\tSan Mateo Duplex houses for sale:\n\n\tWest side location, Alameda and HWY 92. large lot 55X140. Nice\n\tquiet location, No front neighbor, space for pool or jacuzzi.\n\tspacious rooms, cozy living room with fireplace. Only minutes\n\tfrom highways 280 and 92 and 101. Excellent schools, shopping\n\tand transportation nearby.\n\n\t \n\tUnit one:  \" Remodeled \"  2100 SQ foot\n\t\t3 bedrooms\t2 baths\t\tLarge master suite\n\t\tDen/study\tEat in Kitchen\tVery large Backyard\n\t\tFenced backyard\tHardwood floor\tWall to wall carpet\n\t\tMarbel/tile/vinyl\t\t2 car garage\n\t\tcar port\tWasher and dryer hook up\n\t\tLiving room dinning combo\ttotally remodeled\n\n\n\n\tUnit two:   \" BRAND NEW CONSTRUCTION \" 645 SQ Foot\n\t\t1 bedroom\t1 bath\t\tFire place \n\t\tDinning room\tPrivate yard \tPrivate entry\n\t\tdetached unit\tWasher & dryer\tLiving room\n\t\tBarbeque patio\tAll separet Utilities from the city\n\n\tPrice $468,500   ( By Owner )\n\n\tCall Medi Amadi at   510-601-1525   eves\n\t\t\t     510-823-3366   days\t\n\t\t\t\n\n\t\n2 baths\t\t\n\t\t\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7924, "properties": {"category": "sci.crypt", "text": "From: mjr@tis.com (Marcus J Ranum)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: Trusted Information Systems, Inc.\nLines: 10\nNNTP-Posting-Host: sol.tis.com\n\n>I mean, if we can imagine the\n>machine that does 1 trial/nanosecond, we can imagine the storage medium\n>that could index and archive it.\n\n\tI think you'd have to do some massive data compression just to\nfit a bit of key information on each primary particle of the known\nuniverse.\n\tBut, hey, it's fun to imagine.\n\nmjr.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7925, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: charles@gremlin.muug.mb.ca (Charles)\nSubject: Multiport COM boards--info needed\nOrganization: The Haunted Unix Box\nLines: 10\n\n\nWhat 4 or more com port boards are available for PCs?  \nWe want standard com ports, so no need to mention the expensive\ncoprocessed ones.\n\nThey should either be able to share IRQs or be able to use IRQs 8-15.\n\nThanks for any info...\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7926, "properties": {"category": "talk.religion.misc", "text": "From: mathew@mantis.co.uk (mathew)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Mantis Consultants, Cambridge. UK.\nLines: 31\nX-Newsreader: rusnews v1.01\n\nfrank@D012S658.uucp (Frank O'Dwyer) writes:\n> In article <1qg8bu$kl5@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon\n> Livesey) writes:\n> #And this \"objective morality\" is........?\n> \n> And here, children, we have a person playing the \"objective morality doesn't \n> exist, show me one\" game.  You can play this with just about anything:\n> \n> And this \"objective medicine\" is.....?\n> And this \"objective physics\" is.....?\n> And this \"objective reality\" is.....?\n\nPrecisely.\n\nThere's no objective medicine; some people get marvellous results from\nalternative therapy, others only respond to traditional medicine.\n\nThere's no objective physics; Einstein and Bohr have told us that.\n\nThere's no objective reality.  LSD should be sufficient to prove that.\n\n> One wonders just what people who ask such questions understand by the term \n> \"objective\", if anything.\n\nI consider it to be a useful fiction; an abstract ideal we can strive\ntowards.  Like an ideal gas or a light inextensible string, it doesn't\nactually exist; but we can talk about things as if they were like it, and not\nbe too far wrong.\n\n\nmathew\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7927, "properties": {"category": "comp.windows.x", "text": "From: jimf@centerline.com (Jim Frost)\nSubject: How to make simplest possible composite widget?\nOrganization: CenterLine Software, Inc.\nLines: 33\nNNTP-Posting-Host: 140.239.3.202\n\nNot being an Xt programmer by any stretch of the imagination, this is\ndriving me crazy and it's probably really simple to do.\n\nI need to make a composite widget that does nothing at all but is\nmerely a placeholder in a widget instance heirarchy -- allowing me an\nadditional resource name level.\n\nTo illustrate I have an application with the following widget\nheirarchy:\n\n\t    Shell Widget\n\t         |\n\tApplication Widghet\n\nI want the following:\n\n\t    Shell Widget\n\t         |\n\tIntermediate Widget\n\t         |\n\t Application Widget\n\nwhere the intermediate widget has a name but gets all its other\nproperties (and propagates down new values) from the shell widget.\n\nI assume there's a simple way to do this but I can't find an example\nand the documentation I have is rather vague about implementing\ncomposite widgets.\n\nPlease respond via email.  Any help will be very much appreciated.\n\njim frost\njimf@centerline.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.377+0000", "event": "documents", "entityId": 7928, "properties": {"category": "sci.space", "text": "From: gnb@leo.bby.com.au (Gregory N. Bond)\nSubject: Re: Area Rule (was Re: Space Research Spin Off)\nArticle-I.D.: bby.1993Apr6.064720.6920\n\t<1pnuke$idn@access.digex.net> <SHAFER.93Apr4200752@ra.dfrf.nasa.gov>\n\t<1ppm7j$ip@access.digex.net> <1993Apr5.133619.1@fnalf.fnal.gov>\nOrganization: Burdett, Buckeridge & Young, Melbourne, Australia\nLines: 9\nIn-Reply-To: higgins@fnalf.fnal.gov's message of 5 Apr 93 13:36:19 -0600\nNntp-Posting-Host: leo-gw\n\nCan somebody elaborate on \"Area Ruling\".  I gather it's something to\ndo with aerodynamics of trans-sonic planes, and can be summarised as\n\"Coke bottle good, Coke can bad\".  Anyone provide more details,\nderivation etc?\n--\nGregory Bond <gnb@bby.com.au> Burdett Buckeridge & Young Ltd Melbourne Australia\n   Knox's 386 is slick.            Fox in Sox, on Knox's Box\n   Knox's box is very quick.       Plays lots of LSL. He's sick!\n(Apologies to John \"Iron Bar\" Mackin.)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7929, "properties": {"category": "comp.graphics", "text": "From: shmuel@mapsut.einstein.com (Shmuel Einstein)\nSubject: Screen capture -> CYMK converter\nNntp-Posting-Host: mapsut.einstein.com\nOrganization: Shmuel Einstein & Associates, Inc.\nLines: 20\n\nI have a small program to extract a 640x480 image from a vga 16 color screen,\nand store that image in a TIFF file.  I need to insert the image into a\nsales brochure, which I then need printed in 4 color.  On a mac, I would\nuse Photoshop to separate the image into 5 EPS files, and then pull it into\nquark express, then get it printed to film on a lintronix at a service bureau.\n\nHowever, I don't have a mac, but I do have windows.  What would I need to \ndo this type of operation in the windows 3.1 environment?  Are there any\nseparation programs available on the net?  Is there a good page layout program\nthat I should look into?\n\nThanks in advance.\n\n\n-- \nShmuel Einstein, shmuel@einstein.com\nShmuel Einstein & Associates, Inc.\n9100 Wilshire Blvd, Suite 235 E\nBeverly Hills, CA  90212\n310/273-8971 FAX 310/273-8872\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7930, "properties": {"category": "rec.sport.baseball", "text": "From: wynblatt@sbgrad5.cs.sunysb.edu (Michael Wynblatt)\nSubject: Re: TIGERS\nKeywords: Tigers\nNntp-Posting-Host: sbgrad5\nOrganization: State University of New York at Stony Brook\nLines: 15\n\nIn article <93104.100921RK0VSANU@MIAMIU.BITNET> Ryan Kearns <RK0VSANU@MIAMIU.BITNET> writes:\n>I think that the Detroit Tigers are the greatest baseball organization of all\n>time.\n...\n[shameless woofing deleted]\n\nOn behalf of the rest of us Tiger fans out here, I appoligize for this \nshameless woofing.  We try to keep it to a minimum, but we did WIN A GAME\nthe other day, so sometimes it's hard to control.  see: Phillies Fans\n\n:-)\nMichael\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7931, "properties": {"category": "talk.religion.misc", "text": "From: ekr@kyle.eitech.com (Eric Rescorla)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: EIT\nLines: 29\nNNTP-Posting-Host: kyle.eitech.com\n\nIn article <1qjd3o$nlv@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>In article <sandvik-140493230024@sandvik-kent.apple.com# sandvik@newton.apple.com (Kent Sandvik) writes:\n>#In article <1qie61$fkt@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank\n>#O'Dwyer) wrote:\n>#> Objective morality is morality built from objective values.\n>#\n>#You now pushed down the defintion of objectivity into realm of\n>#objective values. So you need to explain that as well, as well\n>#as the objective sub-parts, the objective atoms, quarks...\n>Firstly, science has its basis in values, not the other way round.\nYou keep saying that. I do not think it means what you think it\nmeans.\nPerhaps you should explain what you think \"science has it's basis\nin values\" means. The reason why people DO science is that\nthey value it's results. That does not mean that science has\nit's basis in values. Any more than DES stops working if I stop\nvaluing my privacy.\n\n>So you better explain what objective atoms are, and how we get them\n>from subjective values, before we go any further.\nSee above.\n\n-Ekr\n\n\n-- \nEric Rescorla                                     ekr@eitech.com\n             Would you buy used code from this man?\n        \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7932, "properties": {"category": "misc.forsale", "text": "From: danj@iat.holonet.net (dana james)\nSubject: trade my 14.4k modem for your PC/XT\nOrganization: HoloNet National Internet Access System: 510-704-1058/modem\nLines: 20\n\nTrade your old PC for my new modem.\nModem comes with coupond good for travel to/from Europe.\n\n14.4 v.42bis modem\n\nMODEM FEATURES:\nMNP5 2-to-1 Compression & Error Correction\nV.42bis 4-to-1 Compression & Error Correction\nCCITT V.32bis Compatible (14.4k bps)\nCCITT V.32 Compatible (9.6k bps)\nCCITT V.22bis Compatible (2.4k bps)\nAT Command Set Compatible\nCompatible with IBM PC/XT/AT/386's and Compatibles\nBundled with Communications Software\nPC Bus interface\nTwo RJ11C Connectors:  Phone and Line\n\ne-mail:\ndanj@holonet.net\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7933, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: aruit@idca.tds.philips.nl (Anton de Ruiter)\nSubject: ??? TOP-30 WINDOWS applications ???\nOrganization: Digital Equipment Enterprise bv, Apeldoorn, The Netherlands.\nLines: 36\n\n\nHello everybody,\n\nI am searching for (business) information of Windows application, to create a\nTOP-30 of most used WordProcessors, Spreadsheets, Drawing programs, Schedulers\nand Fax programs, etc..\n\nPlease mail me all your information or references.  I will summaries the\nresults on this media.\n\n\nThank you in advance,\n\nAnton de Ruiter.\n\n+----------------------------------------------------------------------------+\n|  _                       __            |Digital Equipment Corporation      |\n| /_| __ /_ _  __  __/_   /__)   ./_ _  _|WorkGroup Products (WGP)           |\n|/  |/ /(_ (_)/ / (_/(-' / \\ (_//(_ (-'/ |OBjectWorks (OBW)                  |\n|                                        |Ing. Anton de Ruiter MBA           |\n|                                        |Software Product Manager           |\n|                     __                 |Post Office Box 245                |\n|       |   /_  _ /_ / _'_ _     _       |7300 AE  Apeldoorn, The Netherlands|\n|       |/|/(_)/ /\\ (__// (_)(_//_)      |Oude Apeldoornseweg 41-45          |\n|                              /         |7333 NR  Apeldoorn, The Netherlands|\n|          __                            |-----------------------------------|\n|         /__)_ _  __/   _  /_  _        |Mail    : HLDE01::RUITER_A         |\n|        /   / (_)(_/(_/(_ (_ _\\         |DTN     : 829-4359                 |\n|                                        |Location: APD/F1-A22               |\n|                                        |-----------------------------------|\n|     __  _                              |Internet: aruit@idca.tds.philips.nl|\n|    /  )/_) ._  _  /_ |   /_  _ /_  _   |UUCP    : ..!mcsun!philapd!aruit   |\n|   (__//__)/(-'(_ (_  |/|/(_)/ /\\ _\\    |Phone   : 31 55   434359 (Business)|\n|         _/                             |Phone   : 31 5486 18199  (Private) |\n|                                        |Fax     : 31 55   432199           |\n+----------------------------------------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7934, "properties": {"category": "comp.windows.x", "text": "From: wcl@risc.sps.mot.com (Wayne Long)\nSubject: PROBLEM:  Running AIX info from a Sun rlogin shell.\nOrganization: Motorola (Austin,TX)\nLines: 22\nNNTP-Posting-Host: ome.sps.mot.com\n\n\n  When I run our RS6000's \"info\" utility through a remote login\n  shell (rlogin) from my Sun Sparc 1+, I can no longer type\n  lower case in any of info's window prompt's.\n\n  I thought the prob. may have been due to my Sun window mgr. \n  (Openlook) being incompatible with the AIX Motif application\n  but I tried it under TVTWM also.  Same result.\n  \n  So this is presumably an X11 key definition problem between \n  workstations - but my system admins. feign ignorance.\n  \n  What do I need to do the be able to type lower case into \n  this remote AIX motif app. from within my local Openlook\n  window manager?\n  \n  \n-- \n-------------------------------------------------------------------\nWayne Long - OE215              Internet: wcl@risc.sps.mot.com\n6501 William Cannon Drive West  UUCP: cs.texas.edu!oakhill!risc!wcl\nAustin, Texas 78735-8598        Phone (512) 891-4649  FAX: 891-3818\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7935, "properties": {"category": "talk.politics.misc", "text": "From: mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson)\nSubject: Just what is in the Jobs/Pork bill?\nOrganization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA\nDistribution: usa\nLines: 26\n\nThis was in Wed. WSJ.\n\n[start]\nThe white house, seeking to mount public pressure on GOP senators, bombarded\nnews outlets in some senator's home states with news releases warning that\ncertain projects may not be funded if the $16billion stimulus bill isn't\npassed.\n\nNone of the projects mentioned are actually in the bill, rather they are\npart of a wish list that may be funded from the $2.56 billion in\nCommunity Development Block Grants.\n\n...\n\n[end]\n\nI could have sworn I heard a bunch of Clintonites going on and on, raving\nabout how dishonest it was that the Rebublicans were taking items from this\nwish list in order to ridicule this bill. Now that Clinton is using that\nsame list in order to garner support for the bill, are you guys going to\ndo the honarable thing and say that Clinton is being dishonest.\n-- \nMob rule isn't any prettier merely because the mob calls itself a government\nIt ain't charity if you are using someone else's money.\nWilson's theory of relativity: If you go back far enough, we're all related.\nMark.Wilson@AtlantaGA.NCR.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7936, "properties": {"category": "comp.sys.mac.hardware", "text": "From: billd@informix.com (William Daul)\nSubject: Toshiba 3401 E and P CD-ROM\nSummary: need info on what difference is and where to find 3401P or E\nKeywords: toshiba, cd, cd-rom, cd rom\nOrganization: Informix Software, Inc.\nLines: 10\n\nI notice the Toshiba 3401 has 3 versions, B - internal, E - external and P -\nportable.  Can anyone tell me the difference between the portable and the\nexternal version?  Where in the SF Bay Area can I find a model P?\n\nThanks,  --Bill\n-- \n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n William Daul             Advanced Support      INFORMIX SOFTWARE INC.\n 4100 Bohannon Dr.        (415) 926-6488 - wk\n Menlo Park, CA. 94025    uunet!infmx!billd  or  billd@informix.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7937, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: Market or gov failures\nArticle-I.D.: mksol.1993Apr6.133130.8998\nDistribution: sci\nOrganization: Texas Instruments Inc\nLines: 52\n\nIn <C4tCL8.7xI.1@cs.cmu.edu> 18084TM@msu.edu (Tom) writes:\n\n\n>[Fred saying that gov coercive poser is necessary for any space program]\n\n>I reply;\n>>>BTW, Fred, you've really crossed the border, since you admit that the ideas\n>>>you support can only be carried out with coercive power.  Now that's really\n>>>f***in' intolerant, so get off yer high horse about tolerance.\n\n>Fred replies;\n>>No, Tommy, I \"admit\" that there are such things as 'market failures'\n>>which necessitate intervention by other than capitalist forces to\n>>correct.\n\n>I guess your understanding of this 'market failure' should be classified\n>under Phil's 'economics on the level of 19th century medicine', since you\n>apparently completely ignored that this 'market failure' can as easily,\n>or even much more easily, be attributed to \"government intervention\n>failure\".  So, in addition to a strong moral argument against what you\n>propose, there is also a strong utilitarian argument, namely that gov's\n>destruction of wealth through confiscastory taxation and redistribution\n>on a major scale has made significant private capital investments harder\n>to make.\n\nI note that you make no such case as you claim can be 'even more\neasily made'.  Yes, the argument can (and has) been made that current\ngovernment policy creates even larger market barriers than there were\nin the first place, but there is no such term as 'government failure',\nsince the government can change policies whenever it pleases.  The\nmarket doesn't do that and is governed by (relatively) well-understood\nforces.  This libertopican bilge about 'moral arguments' about\ntaxation, etc., is, at bottom, so much simplistic economic thinking.\nIt can only be 'justified' by cliche derision of anyone who knows more\nabout economics than the libertopian -- which is what invariably\nhappens.  Tripe a la Tommy, the new libertopian dish.\n\n>>Get a clue, little boy, and go salve your wounded pride in my not\n>>considering you infallible in some other fashion.  I'm not interested\n>>in your ego games.\n\n>Puh-leese, Fred.  This, besides being simply an attempt to be insulting,\n>really belongs on private mail.  If 'ego-games' are so unimportatnt to\n>you, why the insults and this strange negative attatchment for me?\n\nWherever do you get this inflated idea of your own importance?\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7938, "properties": {"category": "talk.politics.guns", "text": "From: mort@hpfcso.FC.HP.COM (Jeff Mortensen)\nSubject: Re: We knew it would happen\nOrganization: Hewlett-Packard, Fort Collins, CO, USA\nLines: 19\n\nIn talk.politics.guns, jagst18+@pitt.edu (Josh A Grossman) writes:\n\n\tWell Josh I agree with you to some respect...less your spelling\n\terrors.  The Gov'mnt always must win! even if they kill every\n\tman women and child....by GOD they must win at all costs......\n\n\tThis happens over and over and over in this country.  Lets make\n\texcuses, get the worthless press to cover up everything, let the\n\tofficials take the heat for top management stupidity etc...etc...\n\n> I am sick with greif for the entire well being of this nation and the \n> constitution in claims to protect.\n\t> \n> Later,\n> Josh   \n\n> \n>later Morty\n \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7939, "properties": {"category": "rec.motorcycles", "text": "From: mbeaving@bnr.ca (Michael Beavington)\nSubject: Re: Ok, So I was a little hasty...\nNntp-Posting-Host: bmerh824\nReply-To: MBEAVING@BNR.CA\nOrganization: BNR Ottawa, DMS Software Design\nLines: 18\n\nIn article <13394@news.duke.edu>, infante@acpub.duke.edu (Andrew  Infante) writes:\n|> Apparently that last post was a little hasy, since I\n|> called around to more places and got quotes for less\n|> than 600 and 425.  Liability only, of course.\n|> \n|> Plus, one palced will give me C7C for my car + liab on the bike for\n|> only 1350 total, which ain't bad at all.\n|> \n|> So I won't go with the first place I called, that's\n|> fer sure.\n|> \n\nNevertheless, DWI is F*ckin serious.  Hope you've got some \nbrains now.\n\nMike Beavington\nmbeaving@bnr.ca\n* these opinions are my own and not my companies'.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7940, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jonathan@rahul.net (Jonathan Heiliger)\nSubject: Re: Non-Apple Mini-Docks available?\nNntp-Posting-Host: bolero\nReply-To: jonathan@mecca.epri.com\nOrganization: Electric Power Research Institute\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 13\n\nA A DeGuzman (deguzman@after.math.uiuc.edu) wrote:\n> My boss is considering the purchase of a Powerbook or Duo. He is leaning\n> towards a 180, because of the math coprocessor (for Mathematica), but would\n> get a Duo if he could find a Mini-Dock with a coprocessor. Have any\n> third-parties announced such a beast?\n\n   I believe that E-Machines might produce something of this nature.\n \n-- \nJonathan Heiliger .... Electric Power Research Institute\nM/M & Visualization Integrator ....... 3412 Hillview Ave. \nInternet: jonathan@mecca.epri.com ........ Palo Alto, CA \nTelephone <*> [415].855.2888 ..................... 94303 \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7941, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nOrganization: Technical University Braunschweig, Germany\nLines: 19\n\nIn article <115846@bu.edu>\njaeger@buphy.bu.edu (Gregg Jaeger) writes:\n \n(Deletion)\n>Certainly. It is a central aspect of Islam to show mercy and to give\n>those who've done wrong (even presuming Rushdie _did_ violate Islamic\n>Law) and committed crimes. This was the basis for my posts regarding\n>leniency which seemed not to have penetrated Benedikt's skull.\n \nYou have demanded harsh punishments of several crimes. Repeating\noffenders have slipped in only as justification of harsh punishment at\nall. Typically religious doublespeak. Whenever you have contradictory\nstatements you choose the possibility that suits your current argument.\n \nIt is disgusting that someone with ideas that would make Theodore KKKaldis\nfeel cozy can go along under the protection of religion.\n \nGregg, tell us, would you kill idolaters?\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7942, "properties": {"category": "misc.forsale", "text": "From: cozzlab@garnet.berkeley.edu ()\nSubject: Re: Printing\nOrganization: University of California, Berkeley\nLines: 28\nNNTP-Posting-Host: garnet.berkeley.edu\n\nIn article <1993Apr15.053905.16811@sarah.albany.edu> me9574@albnyvms.bitnet writes:\n\n[advertises his printing business]\n\nOh, dear.  Let me be the first on my block.\n\nYou have just violated one of the major shibboleths of the Usenet groups:\nyou're not supposed to use a newsgroup to plug your own commercial\nenterprise (of _any_ kind; people frequently get flamed for announcing\nthey've got a new book out.)\n\nI don't know whether this is an official Usenet rule or just a long-\nstanding custom, and it doesn't make much difference from a practical\npoint of view.\n\nSo please don't do it again.\n\nAnd all you others, who are even now taking keyboard in hand to flame\nhim off the face of the earth--lay off.  He didn't know any better.\nHe does now.\n\n\nDorothy J. Heydt\nUC Berkeley\ncozzlab@garnet.berkeley.edu\n\nDisclaimer:  UCB and the Cozzarelli lab are not responsible for my\nopinions, and in fact I don't think they know I have any.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7943, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jkomp@leonardo.src.honeywell.com (John Komp)\nSubject: RE: Price drop on C650 within 2 months?\nArticle-I.D.: leonardo.9304062132.AA00657\nOrganization: mailEnteringNews at Honeywell SRC\nLines: 36\nTo: comp.sys.mac.hardware\nPosted-Date: Tue, 6 Apr 93 16: 32:51 CDT\nReceived-Date: Tue, 6 Apr 93 16: 32:52 CDT\n\n\nNathaniel Sammons writes:\n\n>I am going to be getting a C650 soon, but I don;t want Apple\n>to come out with the Cyclones and the Tempest in a month\n>and have the price drop on the system I want.  I have negotiated a\n>good deal with a supplier for a C650 8/80 and I would like to jump on it,\n>but, again, I don't want the price drop to smuther me.  BTW, the deal\n>I have is a C650 8/80 with mouse for $2295... does anyone know of a better\n>deal?\n\nI don't know how to say it best but you are gaurenteed that the\nprice of the C650 is going to drop this year.  This week's MacWeek\nreports that Apple is probably planning a drop in August.  My guess\nis that it may come sooner if Apple decides to  change the price\nstructure upon release of the multimedia units this summer.\n\nYour price looks pretty good at about $50 more then I payed for\nmine last month.  I would have rather waited for one of the new\nmachines this sommer (like the Cyclone) but the resale value of my\nIIci would have not been squat by then.  Thus, financing forced me\nto purchase now.  I'm happy with the machine and won't feel\nbetrayed at all when Apple cuts the price to less then $1000 next\nweek (heh).\n\nBottome line:  If the C650 does what you want, buy it.  If you wait\nuntil the Cylcones come out for a price break then you might as\nwell wait for the PowerPCs to come out for another price break and\nthen the units which follow them.  You may save some money but\nyou've lost a lot of time when you could have been using the\ncomputer.  Face it, Apple's prices are going to be in a continuous\nstate of flux.  At least they aren't going to try raising them\nagain (grin).\n\n-John\nKomp@leonardo.src.honeywell.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7944, "properties": {"category": "rec.autos", "text": "From: gyu@bbn.com (George Yu)\nSubject: Re: The Kuebelwagen??!!\nLines: 43\nNNTP-Posting-Host: bbn.com\n\nthwang@mentor.cc.purdue.edu (Tommy Hwang) writes:\n\n>\tSorry for the mis-spelling, but I forgot how to spell it after \n>my series of exams and NO-on hand reference here.\n\n>\tIs it still possible to get those cute WWII VW Jeep-wanna-be's?\n>A replica would be great I think.  \n\n>\t\t\t\t\t\t\t-TKH '93\n\nAccording to _The Complete Guide To Specialty Cars_, 7th Edition, from\nCrown Publishing, it's the VW Kubelwagen (w/ 2 dots over the 'u').\nThe company is:\n\n   Wolfkam\n   P.O. Box 1608, Vika\n   0119 Oslo 1, Norway\n\n   011-47-30-26601 voice line\n   011-47-2-166138 FAX line\n\n\nAn excerpt from the blurb:\n\n   ...This fine Kubel clone from Wolfkam is a very close copy of\n   the original, and offers the same all-weather and cross-country\n   capabilities as its WWII forebears.  The robust fiberglass body\n   kit is very complete, and includes all the hardware you will\n   need, except for your own VW donor car.  The phone number [...]\n   is the entire AT&T dialing sequence; call and ask for Karl\n   Torum, or send $5 cash or _International Money Order_\n   for a complete literature package.\n\n\nGeorge.\n\nP.S., I'd be happy to share what info I have on other kit cars and\n      kit car manufacturers.\n\nP.P.S., I'm looking for a used or partially completed Porsche 356\n        Speedster Convertible D replica from Intermeccanica.  I'd\n        appreciate any leads or advice/stories from any owners\n        out there.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7945, "properties": {"category": "talk.politics.misc", "text": "From: jmann@vineland.pubs.stratus.com (Jim Mann)\nSubject: Re: Celebrate Liberty!  1993\nOrganization: Stratus Computer Inc, Marlboro MA\nLines: 12\nReply-To: jmann@vineland.pubs.stratus.com\nNNTP-Posting-Host: gondolin.pubs.stratus.com\n\nIn article <1993Apr5.201051.15818@dsd.es.com>  \nBob.Waldrop@f418.n104.z1.fidonet.org (Bob Waldrop) writes:\n\nWhat did this have to do with SF?  And please don't answer\nthat a number of libertarians are SF fans or vice versa. I know a \nnumber of SF fans who are also baseball fans but I don't plan on \nposting the Red Sox schedule.\n\n--\nJim Mann            \nStratus Computer   jmann@vineland.pubs.stratus.com  \n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7946, "properties": {"category": "sci.electronics", "text": "From: jmichael@vnet.IBM.COM\nSubject: Radar Detector DETECTORS?\nArticle-I.D.: almaden.19930406.131941.134\nLines: 3\n\n\nThey detect the oscillator operating in the detector. Saw a story about\ntheir use in Canada. Now don't go putting oscillators in your cars... :-)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7947, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: \"Cruel\" (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 18\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>>They spent quite a bit of time on the wording of the Constitution. \n>I realise that this is widely held belief in America, but in fact\n>the clause on cruel and unusual punishments, like a lot of the\n>rest, was lifted from the English Bill of Rights of 1689.\n\nJust because the wording is elsewhere does not mean they didn't spend\nmuch time on the wording.\n\n>>We have already looked in the dictionary to define the word.  Isn't \n>>this sufficient?\n>Since the dictionary said that a lack of mercy or an intent to\n>inflict injury or grief counted as \"cruel\", sure.\n\nPeople can be described as cruel in this way, but punishments cannot.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7948, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Jemison on Star Trek\nOrganization: Express Access Online Communications USA\nLines: 14\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr22.214735.22733@Princeton.EDU> phoenix.Princeton.EDU!carlosn (Carlos G. Niederstrasser) writes:\n>A transporter operator!?!?  That better be one important transport.  Usually  \n>it is a nameless ensign who does the job.  For such a guest appearance I would  \n>have expected a more visible/meaningful role.\n\n\nChristian  Slater, only gota  cameo on ST6,  \n\nand besides.\n\nMaybe she can't act:-)\n\npat\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7949, "properties": {"category": "rec.sport.baseball", "text": "From: rdetweil@boi.hp.com (Richard Detweiler)\nSubject: Re: Phills vs  Pirates\nOrganization: Hewlett Packard - Boise Printer Division\nKeywords: mlb, 04.16\nLines: 37\n\nIn article <1993Apr16.163712.2466@VFL.Paramax.COM> edd@gvlf4-a.gvl.unisys.com (Ed Dougherty) writes:\n>\n>As a Philly fan as as a Penna. baseball fan, I'm anxious to see the\n>Penna. series.  Anyone know when it starts and where the first games\n>will be played?\n>\n>This is (I think) always good baseball (to me); and the Pirates are\n>also off to a good start.\n>\n>Ed Doc\n\nWhen is it did you say?  Well let me shell out here and run this\nhandy dandy program....\n\n$ mlb -m pit phi\n\nAnd the answer is:\n\n           Monday,  5/10 Pittsburg    at Philadelphia (5:35 pm) \n          Tuesday,  5/11 Pittsburg    at Philadelphia (5:35 pm) \n        Wednesday,  5/12 Pittsburg    at Philadelphia (5:35 pm) \n           Friday,  6/25 Philadelphia at Pittsburg    (5:35 pm) \n         Saturday,  6/26 Philadelphia at Pittsburg    (5:05 pm) \n           Sunday,  6/27 Philadelphia at Pittsburg    (11:35 am) \n           Friday,  7/30 Pittsburg    at Philadelphia (5:35 pm) \n         Saturday,  7/31 Pittsburg    at Philadelphia (5:05 pm) \n           Sunday,  8/ 1 Pittsburg    at Philadelphia (11:35 am) \n           Monday,  9/27 Philadelphia at Pittsburg    (5:35 pm) \n          Tuesday,  9/28 Philadelphia at Pittsburg    (5:35 pm) \n        Wednesday,  9/29 Philadelphia at Pittsburg    (5:35 pm) \n         Thursday,  9/30 Philadelphia at Pittsburg    (5:35 pm) \n\n\nThis is a great little program - its available at an ftp site near \nyou (unfortunatly I don't recall which one).  Any schedule question\nyou got is answered with this little gem.  Many thanks to the author\nfor providing this service.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7950, "properties": {"category": "soc.religion.christian", "text": "From: Eugene.Bigelow@ebay.sun.com (Geno )\nSubject: Re: The arrogance of Christians\nReply-To: Eugene.Bigelow@ebay.sun.com\nOrganization: Sun Microsystems, Inc.\nLines: 40\n\n>If I don't think my belief is right and everyone else's belief is wrong,\n>then I don't have a belief. This is simply what belief means.\n\nUnfortunatly, this seems to be how Christians are taught to think when\nit comes to their religion. Some take it to the extreme and say that\ntheir religion is the ONLY one and if you don't accept their teachings\nthen you won't be \"saved\". It takes quite a bit of arrogance to claim\nto know what God thinks/wants. Especially when it's based upon your\ninterpretation of a book. The logic in the above statement is faulty\nin that it assumes two people with differing beliefs can't both be\ncorrect. It's all about perception. No two people are exactly alike.\nNo two people perceive everything in the same way. I believe that\nthere is one truth. Call it God's truth, a universal truth, or call it\nwhat you will. I don't believe God presents this truth. I think it is\njust there and it's up to you to look for and see it, through prayer,\nmeditation, inspir- ation, dreams or whatever. Just because people may\nperceive this truth differently, it doesn't mean one is wrong and the\nother is right. As an example, take the question, \"Is the glass half\nempty or half full\"? You can have two different answers which are\ncontradictory and yet both are correct. So, for your belief to be\ntrue, does not require everyone else's belief to be wrong.\n\n[If a person has what they believe is convincing evidence that God\nwill save only Christians, it's hard to see how you can criticize them\nfor arrogance for saying so.  It could be that they're wrong.  But I\nhardly see that it's arrogance.  Let's look at this a bit closer.\nSuppose we had some combination of prophets and messiahs that taught\nus things, but didn't say anything about exclusivity.  If we believe\nthem, and then add \"and anybody who believes anything else is damned\",\nthen you could well criticize us for arrogance.  But in this case the\nexclusivity is in the message as it comes from the prophets, etc.  So\nwe could be wrong in believing it, but I don't see how we can be\ncalled arrogant.  Maybe the world isn't a soft place.  Maybe certain\nchoices actually do have eternal consequences.  I can see calling the\nChristian message arrogant, in a certain sense (though only in the\nsame sense as calling the law of gravitation arrogant because it\ndoesn't give us any option over whether we fall if we jump off a\nbuilding).  But not Christians for passing it on, given that they\nbelieve it.  The complaints I can see making are (1) that Christians\nare wrong, or (2) that God is arrogant.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7951, "properties": {"category": "rec.sport.baseball", "text": "Subject: Rockies and Rangers fans, Please help me\nFrom: valentin+@pitt.edu (Shawn V. Hernan)\nOrganization: University of Pittsburgh\nX-UserAgent: Nuntius v1.1.1d12\nX-XXMessage-ID: <A7E61E0C2E01FE53@cadet-blue.cis.pitt.edu>\nX-XXDate: Mon, 5 Apr 93 22:34:04 GMT\nLines: 12\n\nGreetings baseballers, \n\n\tI have a choice of two more or less identical conferences to\nattend, one in \nDenver, and one in Dallas, both May 24-28. Could some kind Rockies\nor Rangers \n(they DO play in the Dallas area, right?) fans please let me know if\nthere \nare home dates for that week. I'd love to catch a game. \n\nThanks, \nShawn\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7952, "properties": {"category": "comp.windows.x", "text": "From: joel@zodiac.z-code.COM (Joel Reymont)\nSubject: Motif maling list\nOrganization: The Internet\nLines: 13\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\nHi, all!\n\nAnyone knows of a Motif mailing list? I don't have access to network news\nand there is no longer a motif list at alfalfa.com.\n\nThanks, Joel.\n\n-- \n-----------------------------------------------------------------------------\nJoel Reymont    !   Z-Code Software Corporation    ! e-mail: joel@z-code.com \n-----------------------------------------------------------------------------\n4340 Redwood Hwy, Suit B.50, San Rafael, CA 94903\n-----------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.378+0000", "event": "documents", "entityId": 7953, "properties": {"category": "talk.politics.guns", "text": "From: cmort@NCoast.ORG (Christopher Morton)\nSubject: Re: Ban All Firearms !\nReply-To: cmort@ncoast.org (Christopher Morton)\nOrganization: North Coast Public Access *NIX, Cleveland, OH\nDistribution: usa\nLines: 30\n\nAs quoted from <C5J5IM.3C9@cbnewsc.cb.att.com> by rats@cbnewsc.cb.att.com (Morris the Cat):\n\n> \n> |\tFirearms tend to fall into this low dollar/pound area.\n> |\tIt would not be economic to smuggle them in. All production\n> |\twould have to be local. There are not all that many people\n> |\twho have both the skill AND motivation to assemble worthwhile\n> |\tfirearms from scratch. High-ranking crime figures could\n> |\tobtain imported Uzis and such, but the average person, and\n> |\taverage thug, would be lucky to get a zip-gun - and would\n> |\tpay through the nose for it. \n> \n> This is not borne out of reality; the old Soviet Union had a very\n> serious domestic handgun and submachinegun trade, guns that were\n> of commercial grade because they were produced in honest-to-goodness\n> machineshops. Why would all production have to be local; don't we\n> have a road system that is the envy of the world?\n> \nIf anybody wanted proof of the nonsense of the \"you can't build guns\" claim,\nthey need look no farther than the Philippines.  Amateur gunsmiths there\nregularly produce everything from .45 automatics to full auto shotguns.  Now\nif this guy wants to claim that the Philippines is either technologically\nsuperior to the US or that their transportation is better than ours, all I\ncan say is that he's living in a fantasy world.\n\n-- \n===================================================================\n\"You're like a bunch of over-educated, New York jewish ACLU lawyers\nfighting to eliminate school prayer from the public schools in\nArkansas\" - Holly Silva\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7954, "properties": {"category": "soc.religion.christian", "text": "From: jkellett@netcom.com (Joe Kellett)\nSubject: Re: Hell\nOrganization: Netcom\nLines: 17\n\nIn article <Apr.10.05.33.44.1993.14422@athos.rutgers.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>\n>In a short poem (\"God in His mercy made / the fixed pains of Hell\"),\n>C. S. Lewis expresses an idea that I'm sure was current among others,\n>but I haven't be able to find its source:\n>\n>that even Hell is an expression of mercy, because God limits the amount\n>of separation from Him, and hence the amount of agony, that one can\n>achieve.\n>\n\nI have also heard it called an expression of mercy, because Heaven would be\nfar more agonizing for those who had rejected God.\n\n-- \nJoe Kellett\njkellett@netcom.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7955, "properties": {"category": "rec.autos", "text": "From: welty@cabot.balltown.cma.COM (richard welty)\nSubject: rec.autos: Automotive Mailing Lists: how to set up your own\nKeywords: Monthly Posting\nReply-To: welty@balltown.cma.com\nOrganization: New York State Institute for Sebastian Cabot Studies\nLines: 116\n\nArchive-Name: rec-autos/part6\n\n[New article as of 4 February 1993 -- rpw]\n\n\nMany people want to set up mailing lists for their favorite\nautomotive topics; rather fewer know how to do it.  This article\nwill provide the essential information for doing so on standard\nUnix systems.  A shell script and examples of alias file setups\nare included which presently run on a Sparc 2 here at balltown.cma.com\nfor a number of mailing lists.  Note that if you do set up an automotive\nmailing list, please let me know of the -request address so that I can\nlist it in the montly rec.autos posting.  Also inform the keeper of the\nUsenet list-of-lists (check news.answers for this monthly posting.)\n\nFirst of all, to get anywhere, you need to either 1) be a sysadmin,\nor 2) have some measure of assistance from your sysadmin.  It is also\nimportant that you have reasonably good network connectivity; if it seems\nlike you get everything several days after anyone else, or that you\nhave trouble getting email through, then your network connectivity is\nprobably not good enough.\n\nListserv:\n\nThere is a handy automated mailing list package named listserv, which\nis available from several ftp servers on the network.  Details of\nthe installation and operation of listserv are beyond the scope of this\narticle, but anyone who is considering running a large mailing list should\nprobably  look at listserv carefully.\n\nThe Alias file:\n\nOn a typical unix system; there is a file named /usr/lib/aliases on\nwhichever file server is your mail host; it contains lines such as:\n\nfoo:   bar, baz, bletch\n\n\nwhich means that any email sent the name `foo' on that host is\nredistributed to users bar, baz, and bletch.  thus, the simplest\npossible email list is \n\nmy-favorite-car:  member1, member2, member3, my-address\nmy-favorite-car-request: my-address\n\nthis has a couple of problems; the most noticeable one being that\nyou have to be superuser to edit the alias file.  however, you can\ndo the following, with the connivance of your sysadmin:\n\nmy-favorite-car: :include:/home/mydir/misc/autos/my-favorite-car-list\nmy-favorite-car-request: my-address\n\nWhere the file specified is a list of comma and newline separated\naddresses.  This file can be in the list admin's home directory,\nowned by the list admin.\n\nBounced Mail:\n\nthis still has a problem; bounced mail usually gets distributed to all the\nmembers of the list, which is generally considered somewhat irritating.\nTherefore, the way that the driving school mailing list is set up\nis instructive (Thanks to harpal chohan of the bmw list for this setup,\nby the way.  I'm not sure where he got it from.)\n\n\nschool-request:   welty\nschool-rebroadcast:  :include:/home/newwelty/misc/autos/school/list\nschool: \"|/usr/local/adm/bin/explscript school\"\nowner-school: school-request\nowner-school-out: school-request\n\n\nhere's what is going on here:\n\nthe owner- and -request addresses are intended as traps for bounced mail\ncoming from the network.  the -request address also serves as the point\nof contact for administrative duties.\n\nschool is what people send mail to; instead of pointing at addresses,\nit points at a shell script which rewrites headers before resending\nthe email.  school-broadcast (of which nobody except me knows the name;\nthe name has been changed here to protect my own sanity) points at the\nactual list members.\n\nthe shell script i use is as follows:\n\n-----------------\n#!/bin/sh\ncd /tmp\nsed -e '/^Reply-To:/d' -e '/^Sender:/d' -e '/^From /d' | \\\n        (echo Reply-To: ${1}@balltown.cma.com; \\\n         echo Errors-To: ${1}-request@balltown.cma.com; \\\n         echo Sender: ${1}-request@balltown.cma.com; \\\n         cat -) | \\\n        /usr/lib/sendmail -om -f ${1}-request@balltown.cma.com \\\n                -F \"The ${1} Mailing List\" ${1}-rebroadcast\nexit 0\n-------------------\n\nnote that this script does not know the name of the list; the name\nis passed in from outside, so that the script may be used for multiple\nlists (i run several out of this site.)\nthe script excises Reply-To:, Sender:, and From lines from the incoming\nmessage, substitutes for Sender: and Reply-To:, and adds Errors-to:\n99.9% of all email bounce messages end up being sent to the -request\nor owner- addresses if this header rewrite is done.\n\nFor digested lists, there is some digestification software around.\nHopefully I'll be able to provide more information in a future version\nof this posting.\n\nrichard welty (welty@balltown.cma.com)\n-- \nrichard welty        518-393-7228       welty@cabot.balltown.cma.com\n``Nothing good has ever been reported about the full rotation of\n  a race car about either its pitch or roll axis''  -- Carroll Smith\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7956, "properties": {"category": "sci.space", "text": "From: tffreeba@indyvax.iupui.edu\nSubject: Re: Death and Taxes (was Why not give $1 billion...)\nLines: 48\n\nnsmca@aurora.alaska.edu, University of Alaska Fairbanks writes:\n\n[A GOOD DEAL OF HEALTHY IF NOT DEEPLY THOUGHT OUT IDEALISM DELETED\nBELOW.]\n\n>Major question is if you decide to mine the moon or Mars, who will stop you?\n>[...] Can the truly inforce it? [...] \n\nIf their parent company does business (and they will) on the face of the Earth\nthen they are vulnerable to govt. sanctions.  Yes they can be stopped.\n\n>If you go to the moon as declare that you are now a soverign nation, who will\n>stop you from doing it. [...]   \n\nFor the first 100 - 500 (IMHO) years nobody will have to.  The colonists will\nbe too dependent on Earth too pull it off.  Eventually they will, history\nshows us that.\n\n>Also once you have the means to mine the moon (or whatever) then just do it. \n>The UN if done right can be made to be so busy with something else, they will\n>not care [...]\n\nWhat exactly do you mean here?  Terrorism?  Start an international incident\nso your dream can come true?  Crack a few eggs to make the omelet?  This\nsounds fairly irresponsible.\n\n\n>Basically what I am saying is where is that drive of yeasteryears to go a\n>little bit farther out, to do jus ta  little bit more, and to tell the crown to\n>piss off.. If my ancestors thought the way many today think, Id have been born\n>in Central Europe just north of the Black Sea..        \n\nAgain, the tie that binds will be much stronger for space colonists than\nany immigrants that have gone before.  Even those intrepid Asian\nexplorers that crossed the Bering land bridge did not have to carry their\nair on their backs.\n\n==    \n>Michael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked  \n\nKeep the dream alive, maybe dream it a little more cogently.\n\nTom Freebairn   | There once was a man\n\t\t| Who built a boat\n\t\t| To sail away in.\n\t\t| It sank.\n\t\t|        J.P. Donleavy\n\t\t\t _Fairy Tale of New York_ (maybe?)\u001a\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7957, "properties": {"category": "sci.med", "text": "From: C599143@mizzou1.missouri.edu (Matthew Q Keeler de la Mancha)\nSubject: Infant Immune Development Question\nNntp-Posting-Host: mizzou1.missouri.edu\nOrganization: University of Missouri\nLines: 10\n\nAs an animal science student, I know that a number of animals transfer\nimmunoglobin to thier young through thier milk.  In fact, a calf _must_\nhave a sufficient amount of colostrum (early milk) within 12 hours to\neffectively develop the immune system, since for the first (less than)\n24 hours the intestines are \"open\" to the IG passage.  My question is,\ndoes this apply to human infants to any degree?\n \nThanks for your time responding,\nMatthew Keeler\nc599143@mizzou1.missouri.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7958, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: islamic genocide\nOrganization: Technical University Braunschweig, Germany\nLines: 23\n\nIn article <1qi83b$ec4@horus.ap.mchp.sni.de>\nfrank@D012S658.uucp (Frank O'Dwyer) writes:\n \n(Deletion)\n>#>Few people can imagine dying for capitalism, a few\n>#>more can imagine dying for democracy, but a lot more will die for their\n>#>Lord and Savior Jesus Christ who Died on the Cross for their Sins.\n>#>Motivation, pure and simple.\n>\n>Got any cites for this nonsense?   How many people will die for Mom?\n>Patriotism? Freedom?   Money?  Their Kids?  Fast cars and swimming pools?\n>A night with Kim Basinger or Mel Gibson?  And which of these things are evil?\n>\n \nRead a history book, Fred. And tell me why so many religions command to\ncommit genocide when it has got nothing to do with religion. Or why so many\nreligions say that not living up to the standards of the religion is worse\nthan dieing? Coincidence, I assume. Or ist part of the absolute morality\nyou describe so often?\n \nTheism is strongly correlated with irrational belief in absolutes. Irrational\nbelief in absolutes is strongly correlated with fanatism.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7959, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: carols@ohsu.edu (Carol Suelzle)\nSubject: re: Help with WinQVT\nArticle-I.D.: ohsu.1993Apr15.164424.465\nOrganization: Oregon Health Sciences University\nLines: 17\nNntp-Posting-Host: 137.53.130.7\n\n\n\n>This is the qvthost.rc file.\n>137.112.5.2\n>137.112.199.50\n>\n>\n>\n\nThe host file requires the names that you'll be using in addition to the ip address\n\nsucb as\n\n100.0.0.1 name.server.name\n100.2.2.1 name.router.name\n\nCarols@ohsu.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7960, "properties": {"category": "sci.space", "text": "Subject: Diffs to sci.space/sci.astro Frequently Asked Questions\nFrom: leech@cs.unc.edu (Jon Leech)\nExpires: 6 May 1993 19:50:16 GMT\nOrganization: University of North Carolina, Chapel Hill\nSupersedes: <diffs_730956190@cs.unc.edu>\nNNTP-Posting-Host: mahler.cs.unc.edu\nLines: 294\n\nArchive-name: space/diff\n\nDIFFS SINCE LAST FAQ POSTING (IN POSTING ORDER)\n\n(These are hand-edited context diffs; do not attempt to use them to patch\nold copies of the FAQ).\n\n===================================================================\ndiff -t -c -r1.18 FAQ.intro\n*** /tmp/,RCSt1a06400\tThu Apr  1 14:47:22 1993\n--- FAQ.intro\tThu Apr  1 14:46:55 1993\n***************\n*** 101,107 ****\n\t\t  NASA Langley (Technical Reports)\n\t\t  NASA Spacelink\n\t\t  National Space Science Data Center\n-\t\t  Space And Planetary Image Facility\n\t\t  Space Telescope Science Institute Electronic Info. Service\n\t\t  Starcat\n\t\t  Astronomical Databases\n--- 101,106 ----\n***************\n*** 130,135 ****\n--- 129,135 ----\n\t      LLNL \"great exploration\"\n\t      Lunar Prospector\n\t      Lunar science and activities\n+\t      Orbiting Earth satellite histories\n\t      Spacecraft models\n\t      Rocket propulsion\n\t      Spacecraft design\n\n===================================================================\ndiff -t -c -r1.18 FAQ.net\n*** /tmp/,RCSt1a06405\tThu Apr  1 14:47:24 1993\n--- FAQ.net\tThu Apr  1 14:46:57 1993\n***************\n*** 58,63 ****\n--- 58,67 ----\n      elements are sent out on the list from Dr. Kelso, JSC, and other sources\n      as they are released. Email to elements-request@telesoft.com to join.\n\n+     GPS Digest is a moderated list for discussion of the Global Positioning\n+     System and other satellite navigation positioning systems. Email to\n+     gps-request@esseye.si.com to join.\n+\n      Space-investors is a list for information relevant to investing in\n      space-related companies. Email Vincent Cate (vac@cs.cmu.edu) to join.\n\n***************\n*** 223,227 ****\n--- 227,241 ----\n      1030. If in fact you should should learn of unauthorized access, contact\n      NASA personnel.\n\n+     Claims have been made on this news group about fraud and waste. None\n+     have ever been substantiated to any significant degree. Readers\n+     detecting Fraud, Waste, Abuse, or Mismanagement should contact the NASA\n+     Inspector General (24-hours) at 800-424-9183 (can be anonymous) or write\n+\n+\t  NASA\n+\t  Inspector General\n+\t  P.O. Box 23089\n+\t  L'enfant Plaza Station\n+\t  Washington DC 20024\n\n  NEXT: FAQ #3/15 - Online (and some offline) sources of images, data, etc.\n\n===================================================================\ndiff -t -c -r1.18 FAQ.data\n*** /tmp/,RCSt1a06410\tThu Apr  1 14:47:26 1993\n--- FAQ.data\tThu Apr  1 14:46:54 1993\n***************\n*** 216,237 ****\n\t  Telephone: (301) 286-6695\n\n\t  Email address:   request@nssdca.gsfc.nasa.gov\n-\n-\n-     SPACE AND PLANETARY IMAGE FACILITY\n-\n-     Available 24 hours a day via anonymous FTP from pioneer.unm.edu. Has\n-     approximately 150 CD-ROM's full of imagery, raw, and tabular data. To\n-     start, get the file:\n-\n-\t  pioneer.unm.edu:pub/info/beginner-info\n-\n-     This will hopefully give you all of the information you need to get data\n-     from their machine. beginner-info has been translated to other\n-     languages, you should look inside pub/info for the particular language\n-     that meets your needs.\n-\n-     Contact help@pioneer.unm.edu.\n\n\n      SPACE TELESCOPE SCIENCE INSTITUTE ELECTRONIC INFORMATION SERVICE\n--- 216,221 ----\n\n===================================================================\ndiff -t -c -r1.18 FAQ.math\n*** /tmp/,RCSt1a06415\tThu Apr  1 14:47:28 1993\n--- FAQ.math\tThu Apr  1 14:46:56 1993\n***************\n*** 60,65 ****\n--- 60,71 ----\n\t  Gives series to compute positions accurate to 1 arc minute for a\n\t  period + or - 300 years from now. Pluto is included but stated to\n\t  have an accuracy of only about 15 arc minutes.\n+\n+     _Multiyear Interactive Computer Almanac_ (MICA), produced by the US\n+     Naval Observatory. Valid for years 1990-1999. $55 ($80 outside US).\n+     Available for IBM (order #PB93-500163HDV) or Macintosh (order\n+     #PB93-500155HDV). From the NTIS sales desk, (703)-487-4650. I believe\n+     this is intended to replace the USNO's Interactive Computer Ephemeris.\n\n      _Interactive Computer Ephemeris_ (from the US Naval Observatory)\n      distributed on IBM-PC floppy disks, $35 (Willmann-Bell). Covers dates\n\n===================================================================\ndiff -t -c -r1.18 FAQ.references\n*** /tmp/,RCSt1a06420\tThu Apr  1 14:47:30 1993\n--- FAQ.references\tThu Apr  1 14:46:59 1993\n***************\n*** 93,100 ****\n      US Naval Observatory\n\t  202-653-1079 (USNO Bulletin Board via modem)\n\t  202-653-1507 General\n-\t  202-653-1545 Nautical Almanac Office (info on the Interactive\n-\t      Computer Ephemeris)\n\n      Willmann-Bell\n      P.O. Box 35025\n--- 93,98 ----\n***************\n*** 138,151 ****\n      SDI's SSRT (Single Stage Rocket Technology) project has funded a\n      suborbital technology demonstrator called DC-X that should fly in\n      mid-1993. Further development towards an operational single-stage to\n!     orbit vehicle is uncertain at present; for considerably more detail on\n!     the SSRT program, get the document\n\n!\t  ames.arc.nasa.gov:pub/SPACE/FAQ/DeltaClipper\n\n!     by anonymous FTP or through the email server.\n\n\n      HOW TO NAME A STAR AFTER A PERSON\n\n      Official names are decided by committees of the International\n--- 136,151 ----\n      SDI's SSRT (Single Stage Rocket Technology) project has funded a\n      suborbital technology demonstrator called DC-X that should fly in\n      mid-1993. Further development towards an operational single-stage to\n!     orbit vehicle (called Delta Clipper) is uncertain at present.\n\n!     An collection of pictures and files relating to DC-X is available by\n!     anonymous FTP or email server in the directory\n\n!\t  bongo.cc.utexas.edu:pub/delta-clipper\n\n+     Chris W. Johnson (chrisj@emx.cc.utexas.edu) maintains the archive.\n\n+\n      HOW TO NAME A STAR AFTER A PERSON\n\n      Official names are decided by committees of the International\n***************\n*** 223,228 ****\n--- 223,236 ----\n      University Press, 1970. Information about the Lunar Orbiter missions,\n      including maps of the coverage of the lunar nearside and farside by\n      various Orbiters.\n+\n+\n+     ORBITING EARTH SATELLITE HISTORIES\n+\n+     A list of Earth orbiting satellites (that are still in orbit) is\n+     available by anonymous FTP in:\n+\n+\t  ames.arc.nasa.gov:pub/SPACE/FAQ/Satellites\n\n\n      SPACECRAFT MODELS\n\n===================================================================\ndiff -t -c -r1.18 FAQ.addresses\n*** /tmp/,RCSt1a06435\tThu Apr  1 14:47:34 1993\n--- FAQ.addresses\tThu Apr  1 14:46:51 1993\n***************\n*** 75,80 ****\n--- 75,85 ----\n\t  the latter, an SF 171 is useless. Employees are Caltech employees,\n\t  contractors, and for the most part have similar responsibilities.\n\t  They offer an alternative to funding after other NASA Centers.\n+\n+\t  A fact sheet and description of JPL is available by anonymous\n+\t  FTP in\n+\n+\t      ames.arc.nasa.gov:pub/SPACE/FAQ/JPLDescription\n\n      NASA Johnson Manned Space Center (JSC)\n      Houston, TX 77058\n\n===================================================================\ndiff -t -c -r1.18 FAQ.new_probes\n*** /tmp/,RCSt1a06450\tThu Apr  1 14:47:38 1993\n--- FAQ.new_probes\tThu Apr  1 14:46:58 1993\n***************\n*** 8,13 ****\n--- 8,19 ----\n      team, ISAS/NASDA launch schedules, press kits.\n\n\n+     ASUKA (ASTRO-D) - ISAS (Japan) X-ray astronomy satellite, launched into\n+     Earth orbit on 2/20/93. Equipped with large-area wide-wavelength (1-20\n+     Angstrom) X-ray telescope, X-ray CCD cameras, and imaging gas\n+     scintillation proportional counters.\n+\n+\n      CASSINI - Saturn orbiter and Titan atmosphere probe. Cassini is a joint\n      NASA/ESA project designed to accomplish an exploration of the Saturnian\n      system with its Cassini Saturn Orbiter and Huygens Titan Probe. Cassini\n***************\n*** 98,115 ****\n\n\n      MAGELLAN - Venus radar mapping mission. Has mapped almost the entire\n!     surface at high resolution. Currently (11/92) in mapping cycle 4,\n!     collecting a global gravity map.\n\n\n      MARS OBSERVER - Mars orbiter including 1.5 m/pixel resolution camera.\n!     Launched 9/24/92 on a Titan III/TOS booster. MO is currently (3/93) in\n      transit to Mars, arriving on 8/24/93. Operations will start 11/93 for\n      one martian year (687 days).\n\n\n!     TOPEX/Poseidon - Joint US/French Earth observing satellite, launched in\n!     August 1992 on an Ariane 4 booster. The primary objective of the\n      TOPEX/POSEIDON project is to make precise and accurate global\n      observations of the sea level for several years, substantially\n      increasing understanding of global ocean dynamics. The satellite also\n--- 104,121 ----\n\n\n      MAGELLAN - Venus radar mapping mission. Has mapped almost the entire\n!     surface at high resolution. Currently (4/93) collecting a global gravity\n!     map.\n\n\n      MARS OBSERVER - Mars orbiter including 1.5 m/pixel resolution camera.\n!     Launched 9/25/92 on a Titan III/TOS booster. MO is currently (4/93) in\n      transit to Mars, arriving on 8/24/93. Operations will start 11/93 for\n      one martian year (687 days).\n\n\n!     TOPEX/Poseidon - Joint US/French Earth observing satellite, launched\n!     8/10/92 on an Ariane 4 booster. The primary objective of the\n      TOPEX/POSEIDON project is to make precise and accurate global\n      observations of the sea level for several years, substantially\n      increasing understanding of global ocean dynamics. The satellite also\n\n===================================================================\ndiff -t -c -r1.18 FAQ.astronaut\n*** /tmp/,RCSt1a06465\tThu Apr  1 14:47:43 1993\n--- FAQ.astronaut\tThu Apr  1 14:46:52 1993\n***************\n*** 162,174 ****\n      specific standards:\n\n\t   Distant visual acuity:\n!\t\t20/100 or better uncorrected,\n\t\tcorrectable to 20/20, each eye.\n\n\t   Blood pressure:\n\t\t140/90 measured in sitting position.\n\n!     3. Height between 60 and 76 inches.\n\n      Pilot Astronaut Candidate:\n\n--- 162,174 ----\n      specific standards:\n\n\t   Distant visual acuity:\n!\t\t20/150 or better uncorrected,\n\t\tcorrectable to 20/20, each eye.\n\n\t   Blood pressure:\n\t\t140/90 measured in sitting position.\n\n!     3. Height between 58.5 and 76 inches.\n\n      Pilot Astronaut Candidate:\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7961, "properties": {"category": "sci.med", "text": "From: bbesler@ouchem.chem.oakland.edu (Brent H. Besler)\nSubject: Is an oral form of Imitrex(sumatriptan) available in CA\nArticle-I.D.: vela.1psee5$c3t\nDistribution: na\nOrganization: Oakland University, Rochester MI.\nLines: 9\nNNTP-Posting-Host: ouchem.chem.oakland.edu\n\nSumatriptan(Imitrex) just became available in the US in a subcutaneous\ninjectable form.  Is there an oral form available in CA?  A friend(yes\nreally not me!)  has severe migranes about 2-3 times per week.  We\nlive right by the CA border and he has gotten drugs for GERD prescribed\nby a US physician and filled in a CA pharmacy, but not yet FDA approved\nin the US.  What would be the cost of the oral form in CA$ also if\nanyone would have that info?    \n\nThanks\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7962, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: glang@slee01.srl.ford.com (Gordon Lang)\nSubject: Please help identify video hardware\nArticle-I.D.: fmsrl7.1pqep5INN88e\nOrganization: Ford Motor Company Research Laboratory\nLines: 11\nNNTP-Posting-Host: slee01.srl.ford.com\nX-Newsreader: Tin 1.1 PL5\n\nI need a device (either an ISA board or a subsystem) which will\ntake two RGB video signals and combine them according to a template.\nThe template can be as simple as a rectangular window with signal\none being used for the interior and signal two for the exterior.\nBut I beleive fancier harware may also exist which I do not want\nto exclude from my search.  I know this sort of hardware exists\nfor NTSC, etc. but I need it for RGB.\n\nPlease email and or post any leads....\n\nGordon Lang (glang@smail.srl.ford.com  -or-  glang@holo6.srl.ford.com)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7963, "properties": {"category": "sci.electronics", "text": "From: cmwolf@mtu.edu (Engineer by Day - Asleep by Night)\nSubject: Re: Answers to many electronics Questions\nOrganization: Michigan Technological University\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 19\n\nBill Willis (willisw@willisw.ENG.CLEMSON.edu) wrote:\n: I have notice a lot of electronics questions by people who are obviously not \n: \"tuned-in\" to electronics.  Many of them have rather simple answers, and \n: many of them require a circuit diagram.\n\n: Rather than muck up the network, why don't you write to me, send a self-\n: addressed, stamped envelop, and I'll answer your questions, if I can.\n\n: W. L. Willis, P. E.\n: 114 Fern Circle\n: Clemson, SC 29631\n\nBecause the network is quicker, easier, and free (at least to me).\n\n-- \n------------------------------------------------------------------------------\nChristopher Wolf             Electrical Engineer                cmwolf@mtu.edu\n------------------------------------------------------------------------------\n         Remember, even if you win the Rat Race - You're still a rat.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7964, "properties": {"category": "comp.graphics", "text": "From: mscrap@halcyon.com (Marta Lyall)\nSubject: Re: Video in/out\nOrganization: Northwest Nexus Inc. (206) 455-3505\nLines: 29\n\nOrganization: \"A World of Information at your Fingertips\"\nKeywords: \n\nIn article <628@toontown.columbiasc.ncr.com> craig@toontown.ColumbiaSC.NCR.COM (Craig S. Williamson) writes:\n>\n>I'm getting ready to buy a multimedia workstation and would like a little\n>advice.  I need a graphics card that will do video in and out under windows.\n>I was originally thinking of a Targa+ but that doesn't work under Windows.\n>What cards should I be looking into?\n>\n>Thanks,\n>Craig\n>\n>-- \n>                                             \"To forgive is divine, to be\n>-Craig Williamson                              an airhead is human.\"\n> Craig.Williamson@ColumbiaSC.NCR.COM                -Balki Bartokomas\n> craig@toontown.ColumbiaSC.NCR.COM (home)                  Perfect Strangers\n\n\nCraig,\n\nYou should still consider the Targa+. I run windows 3.1 on it all the\ntime at work and it works fine. I think all you need is the right\ndriver. \n\nJosh West  \nemail: mscrap@halcyon.com\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7965, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Seventh Century A.D. Armenian Math Problems\nKeywords: philosphy, Greece, Persians, math \nOrganization: S.D.P.A. Center for Regional Studies\nLines: 366\n\n\nFrom: _Quantum_ Magazine, March/April 1993 pages 42-46\n\n\tThe Problem Book of Anania of Shirak\n\t------------------------------------\n\n\t\t\"On the ancient peak of Ararat\n\t\tThe centuries have come like seconds\n\t\tAnd passed on.\"\n\t\t\t\t-Avetik Issahakian\n\nby Yuri Danilov\n\nSome years ago Journalists interviewing celebrities liked to ask them: \"What\nbooks would you take with you if you were to go off on a space flight?\" And \nthough the number of books allowed on the trip varied from 10 to 30, \ndepending on the type of spacecraft and the generosity of the interviewer, \nand celebrities are people of the most varied tastes, ages, and professions, \nnot one of them dared to say that he or she would want to take with them at\nleast one book of arithmetic problems.\n\nSome of these people certainly excluded this kind of literature because they \nwere trained in the humanities and had nothing but scorn for \"numbers\" (though \nsecretly afraid of them). Others steered clear of such puzzle books because \nthey were masters of incomparably more difficult branches of modern \nmathematics and didn't mind saying for all the world to hear that they didn't \nknow how to solve mere arithmetic problems. Professional mathematicians were \nno exception. Here's what the Russian mathematician Alexander Khinchin, a \nspecialist in statistics, wrote about arithmetic: \"I willingly confess that \nany time a fifth-grader asked me to help solve an arithmetic problem, it was\na hard work for me, and sometimes I failed completely. Of course, like most of \nmy friends, I could easily solve the problem by the natural algebraic route\n--constructing equations or sets of equations. But we were supposed to avoid \nusing algebraic analysis at all costs! . . . By the way, it's a fact that is \nwell known and oft repeated that, as a rule, neither high school graduates, \nnor students at teaching colleges, nor teachers beginning their careers\n(nor, I must add, scientific researchers) can solve arithmetic problems. It \nseems the only people in the world who are able to solve them are fifth-grade \nteachers.\"\n\nNow, I'm not insisting that a book of arithmetic problems be included in the \nbookbag of anyone flying into space. But a sense of justice induces me to \nrecommend one particular problem book, one that will satisfy the most \nfastidious taste and supply food for thought sufficient not only for a \nrelatively short flight to the Moon but for a extended space voyage--say, to\nVenus and back.\n\n\t\t\tOne for the \"road\"\n\n\tThey both took out the books they brought for the road. Kingsley \n\tglanced at the Royal Astronomer's book and saw a bright cover with \n\ta group of cutthroats shooting at each other with revolvers. \"God \n\tknows what this kind of stuff leads to,\" thought Kingsley.\n\n\tThe Royal Astronomer looked at Kingsley's book and saw the History \n\tof Herodotus. \"Good Lord, next he'll be reading Thucydides,\" thought \n\tthe Royal Astronomer.\n\t\t\t\t\t--Fred Hoyle, The Black Cloud\n\nThe book I'm talking about isn't very big, but its 24 problems constitute 24 \nelegant miniatures from seventh-century Armenia. Naive and wise at the same\ntime, rich in striking detail and the bright coloration of the period, these \nproblems are reminiscent of the reliefs on the famous monument of Armenian \narchitecture, the church on the island of Akhtamar in Lake Van (in what is \nnow Turkey_. They are as inseparable from the image of Armenia as the elegant \nletters of the Armenian alphabet, invented by Mesrop Mashtots, or the songs of \nKomitas, or the paintings of Saryan.\n\nAn edition of these incredibly beautiful problems has long been a \nbibliographic rarity. It was published under the title Problems and Solutions\nof Vardapet [1] Anania of Shirak, Armenian Mathematician of the Seventh \nCentury (translated and published by I. A. Orbeli, Petrograd, 1918).\n\nThe abundance of close observations and wide-ranging information about the way \nof life and customs of that remote epoch when Anania of Shirak lived and \nworked have actually rendered a disservice to his problem book. For many years \nthe book was known only to researchers in the humanities--specialists in \nArmenian history who jealously guarded their treasure and wouldn't let just\nanyone see it. Even now, after research by K. P. Patkanov, the learned monk \nFather Kaloust, J.I. Orbeli, A. Abramyan, V. K. Chaloyan, and others has \nbrought the works of Anania of Shirak to light in scholarly circles, the \ngeneral reader remains ignorant of the very existence of this remarkable \nproblem book.\n\n\t\tVardapet Anania of Shirak\n\n\tOnce fell in love with the art of calculation, I thought that no \n\tphilosophical notion can be constructed without number, considering \n\tit the mother of all wisdom.\n\t\t\t\t\t--Anania of Shirak\n\nAmong ancient Armenian thinkers, Vardapet Anania of Shirak stands out because \nof the breadth of his interests and the unique mathematical orientation of his \nwork. Some of his works have been preserved. In addition to the Problems and\nSolutions, the following tracts have found a special place in the estimation\nof scholars: On Weights and Measures, Cosmography and Calendrical Theory, and\nArmenian Geography of the Seventh Century A.D. (the authorship of the last\nwork was long attributed to another outstanding thinker of ancient Armenia, \nMovses of Khoren).\n\nIn his autobiography, Anania of Shirak has this to say about himself:\n\n\tI, Anania of Shirak, having studied all the science of our\n\tArmenian land and having learned the Holy Scripture intimately, \n\tin the expression of the psalmist, \"every day I illuminated the \n\teyes of my mind.\" Feeling myself lacking in the art of calculation,\n\tI came to the conclusion that it is fruitless to study philosophy, \n\tthe mother of all sciences, without number. I could find in Armenia \n\tneither a man versed in philosophy nor books that explained the \n\tsciences. I therefore went to Greece and met in Theodosiople a man \n\tnamed Iliazar who was well versed in ecclesiastical works. He told me\n\tthat in Forth Armenia [2] there lived a famous mathematician,\n\tChristosatur. I went this person and spent six months with him. But \n        soon I noticed that Christosatur was a master not of all science but \n        only of certain fragmentary facts.\n\n\tI then went to Constantinople, where I met acquaintances who told me: \n\t\"Why did you go so far, when much closer to us, in Trebizon, on the \n\tcoast of Pontus [3] lives the Byzantine vardapet Tyukhik. He is full \n\tof wisdom, is known to kings, and knows Armenian literature.\" I asked \n\tthem how they knew this. They answered: \"We saw ourselves that many \n\tpeople traveled long distances to become pupils of so learned a man. \n\tIndeed the archdeacon of the patriarchate of Constantinople,\n\tPhilagrus, traveled with us, bringing many young persons to become \n\tpupils of Tyukhik.\" When I heard this, I expressed my gratitude to \n\tGod, who had quenched the thirst of His slave.\n\n\tI went to Tyukhik at the monastery of St. Eugene and explained why I \n\thad come. He received me graciously and said: \"I praise Our Lord that \n\tHe sent you to learn and to transplant science in the domain of St. \n\tGregory; I am glad that all your country will learn from me. I myself \n\tlived in Armenia for many years as a youth. Ignorance reigned there.\" \n\tVardapet Tyukhik loved me as a son and shared all his thoughts with \n\tme. The Lord bestowed upon me His blessing: I completely assimilated \n\tthe science of number, and with such success that my fellow students\n\tat the king's court began to envy me.\n\n\tI spent eight years with Tyukhik and studied many books that had not \n\tbeen translated into our language. For the vardapet had an innumerable \n\tcollection of books: secret and explicit, ecclesiastical and pagan, \n\tbooks on art, history, and medicine, books of chronologies. Why \n\tenumerate them by title? In a word, there is no book that Tyukhik did \n\tnot have. And he had such a gift from the Holy Spirit for translating\n\tthat when he sat down to translate something from the Greek into \n\tArmenian, he did not struggle as other translators did, and the \n\ttranslation read as if the work were written in that language \n\toriginally.\n\n\tTyukhik told me how he had achieved such vast erudition and how he had \n\tlearned the Armenian language. \"When I was young,\" he said, \"I lived \n\tin Trebizon, at the court of the military chief Ioannus Patricus, and \n\tfor a long time, up to the accession of Mauritius to the throne I \n\tserved as a military man in Armenia and learned your language and \n\tliterature. During one attack by Persian troops on the Greeks, I was \n\twounded and escaped to Antioch. I lost all my possessions. Praying to \n\tthe Lord to heal my wounds, I made a promise: \"If You prolong my life, \n\tI shall dedicate it not to accumulating perishable treasures but to \n\tcollecting treasures of knowledge.\" And the Lord heard my prayers. \n\tAfter I recovered I went to Jerusalem, and from there to Alexandria \n\tand Rome. Upon returning to Constantinople, I met a famous philosopher \n\tfrom Athens and studied with him for many years. After that I returned \n\tto my homeland and began to teach and instruct my people.\"\n\n\tAfter some years that philosopher died. Not finding a replacement for \n\thim, the king and his courtiers sent for Tyukhik and invited him to \n\tassume the teacher's position. Tyukhik, citing the promise he made to \n\tGod not to move far from the city, turned down the offer. But because\n\tof his wide leaning, people came streaming from all countries to study \n\twith him.\n\n\tAnd I, the most insignificant of all Armenians, having learned from \n\thim this powerful science, desired by kings, brought it to our \n\tcountry, supported by no one, obligated only to my own industry, God's \n\thelp, and the prayers of the Blessed Educator. And no one thanked me \n\tfor my efforts.\n\n\t\t\t\tProblems and Solutions\n\n\tA half and one sixth and one nine-ninth of all the books were printed\n\ton verge'; one fifth and one two-hundred-eighty-fifth--on rag paper; \n\tone forty-fifth and one eight-hundred-fifty-fifth--on vellum, and \n\tforty-five inscribed copies--on Dutch paper. And so, find how many \n\tcopies were printed in all.\n\t\t\t\t\t--Imitation of Anania of Shirak\n\nA Latin proverb says habent sua fata libelli (\"books have their own fate\").\nThe fate of Problems and Solutions by Anania of Shirak is quite amazing. The\nmanuscripts of Anania's book were preserved only because, according to \nArmenian historians, \"in ancient and medieval Armenia manuscripts were guarded \nfrom invaders, like weapons, and cherished, like one's own children.\" Biding\ntheir time, the manuscripts lay in the Matenadaran, a renowned depository of \nancient manuscripts (now the Mesrop Mashtots Institute of Ancient Manuscripts).\nAnd its hour finally arrived. In 1896 the learned monk Father Kaloust used two \nmanuscripts to publish the problem book, supplementing it with an introduction \nand commentary. In 1918 the book was translated into Russian, edited, \nannotated, and typeset by Iosef Orbeli, a prominent scholar (and later a \nmember of the Academy of Sciences of the USSR).\n\nIn the translator's words, the problems of Anania are \"amusing, full of life, \nand simple.\" Orbeli goes on to say: \"The subjects of the problems are \ngenerally taken from everyday life. The scene is predominantly his homeland \nShirak and the surrounding countryside, and the dramatis personae, if they are \nnamed, are the local princes--the Kamsarakans, including Nersekh, who was a \ncontemporary of Anania.\" Like other ancient authors, Anania of Shirak used \nonly \"aliquots\" -- that is, fractions with a numerator of 1. When it is\nnecessary to write fractions with numerators other than 1, one has to \nrepresent it as a sum of aliquots (see the epigraph above).\n\nLike any true work of art, the problems of Anania suffer terribly in the \nretelling. You have to read the originals (albeit in translation) in their \nfull glory. So let's open Anania's problem book--a gift from across the ages.\n\nProblems 1 and 8 relate to the Armenian uprising against the Persians in A.D. \n572.\n\nProblem 1\n\nMy father told me the following story. During the famous wars between the \nArmenians and the Persians, prince Zaurak Kamsarakan performed extraordinary \nheroic deeds. Three times in a single month he attacked the Persian troops. \nThe first time, he struck down half of the Persian army. The second time, \npursuing the Persians, he slaughtered one fourth of the soldiers. The third \ntime, he destroyed one eleventh of the Persian army. The Persians who were \nstill alive, numbering two hundred eighty, fled to Nakhichevan. And so, from \nthis remainder, find how many Persian soldiers there were before the massacre.\n\nProblem 8\n\nDuring the famous Armenian uprising against the Persians, when Zaurak\nKamsarakan killed Suren, one of the Armenian azats[4] sent an envoy to the\nPersian king to report the baleful news. The envoy covered fifty miles in a \nday. Fifteen days later, when he learned of this, Zaurak Kamsarakan sent \nriders in pursuit to bring the envoy back. The riders covered eighty miles in \na day. And so, find how many days it took them to catch the envoy.\n\nProblem 18 mentions vessels made of varying amounts of metal. In the Russian \ntranslation, they are all called \"dishes.\" But in the original Armenian, \naccording to Orbeli's note, the dishes in the first and second instances are \ncalled mesur, and in the third instance scutel. Scutel is a common Armenian \nword, but mesur had not been encountered in Armenian literature before \nAnania's Problems and Solutions.\n\nProblem 18\n\nThere was a tray in my house. I melted it down and made other vessels from the \nmetal. From one third I made a mesur; from one fourth, another mesur; from\none fifth, two goblets; from one sixth, two scutels; and from two hundred ten \ndrams, I made a bowl. And now, find the weight of the tray.\n\nSeveral of the problems reflect the richness of the Caucasian fauna in \nAnania's time -- for instance, problem 7.\n\nProblem 7\n\nOnce I was in Marmet, the capital of the Kamsarakans. Strolling along the bank \nof the river Akhuryan, I saw a school of fish and ordered that a net be cast. \nWe caught a half and a quarter of the school, and all the fishes that slipped\nout of the net ended up in a creel. When I looked in the creel, I found \nforty-five fishes. And now, find how many fishes here were in all.\n\nThe temptation is great to present all 24 problems. But I'll restrain myself\nand offer you just one more.\n\nProblem 20 provides some interesting information about the wild animals that \ninhabited Armenia at one time but now extinct for so long that there is no\nmention of them even in zoological reference books. The wild donkey, according \nto the generally accepted view, never roamed the Armenian lands. Yet Anania of \nShirak offers evidence to the contrary .\n\nProblem 20\n\nThe hunting preserve of Nersekh Kamsarakan, ter[5] of Shirak and Asharunik, \nwas at the base of the mountain called Artin. One night great herds of wild\ndonkey entered the preserve. The hunters could not cope with the donkeys and, \nrunning to the village of Talin, told Nersekh about them. When he arrived with\nhis brothers and azats and entered the preserve, they began killing the wild \nbeasts. Half of the animals were caught in traps, one fourth were killed by \narrows. The young, which constituted one twelfth of all the animals, were \ncaught alive, and three hundred sixty wild donkeys were killed by spears. And \nso, find how many beasts there were at the start of this massacre.\n\n\t\t\"Set in type by me, Iosef Orbeli\"\n\n\tHis biography could not be squeezed into the framework of a \n\tbibliography.\n\t\t\t\t-- K Uzbashyan, Academician\n\t\t\t\t\tIosef Abgarovich Orbeli\n\nAnyone who is lucky enough to hold a copy (1/n of the small printing--n is the \nsolution to the epigraph in the previous section) of the Russian translation \nof Anania of Shirak's Problems and Solutions, a thin book with yellowed pages,\nhas probably noticed the variety of the fonts, the elegance of the borders, \nand the high quality of the design, printing, and binding. Such great \nattention to detail is characteristic of works that fulfill a requirement for \na degree in bookmaking. And this problem book was indeed a kind of diploma \nattesting to the professional maturity of the man who created it. An \nadvertisement at the end of the book reads: \"This book was typeset in \nDecember 1917 at the printing offices of the Russian Academy of Sciences by \nme, Iosef Orbeli; the text was also proofread, laid out, and decorated with \nborders by me. Various circumstances prevented me from carrying this project \nto the end; the final pages of the book were typeset by M. Strolman.\"\n\nTypesetting was neither the first nor the only profession of the renowned \norientalist Iosef Orbeli, who later became the director of the Hermitage \nMuseum in Leningrad. He was also a cabinetmaker and a locksmith. Orbeli had \nalready become acquainted with the famous academic printing house Typis \nAcademiae, founded in 1728 and known all over the scientific world for its \nrich collection of fonts and its virtuoso typesetters. In preparing to publish \nthe corpus of ancient inscriptions preserved on the walls of Armenian \nchurches, Orbeli found it necessary to create a new font that would preserve \nthe unique signs and ligatures. This complicated work was done by M. G.\nStrolman. (Unfortunately the entire set of letters was destroyed during the \nblockade of Leningrad in World War II.)\n\nWhen Orbeli came to the printing offices of the Academy of Sciences, times \nwere hard. The only way to publish the newly translated Problems of Anania\nwas for Orbeli to learn typesetting (he had always been attracted to the \nprinter's craft). In 1922 Orbeli became the director of printing at the \nAcademy of Sciences. Even after he retired, he remained a tireless champion\nof Russian academic typography.\n\n\t\t\tBack to Earth\n\n\tThis book by definition does not exhaust all the most important \n\tworks in this domain. The editor hopes that those who are guilty \n\tof this incompleteness will read these lines and, stung by shame, \n\twill work up, if not a collection like this, at least a monograph.\n\n\t\t\t--V. Bonch-Bruyevich introduction to the\n\t\t\tRussian translation of Solid-Body\n\t\t\tSymmetry by R. Knox and A. Gold\n\nLet's imagine a time when space flight is an everyday thing, and high \nschoolers will spend their breaks as astronauts-in training in the Perelman \ncrater on the far side of the Moon. Maybe one of the space travelers will take \nthis very copy of Quantum, and another, looking over her shoulder, will read \nthis article and say to himself: \"This Anania from Shirak seems like a pretty \ninteresting guy. When I get home I'll try to find his problems.\"\n\nGood luck, my young friend! Anania is sure to entertain you. Perhaps by then\nthere will be more than n copies of his timeless Problems and Solutions. And \nwe can hope they will be as lovingly printed as the masterpieces created by \nIosef Orbeli.\n\n[1] Vardapet (or vartabed) means teacher or learned man in Armenian. (The\n    Armenian language suffers in English from a dual transliteration scheme.\n    Thus, Mesrop is often rendered as \"Mesrob\", Komitas as \"Gomidas,\" and so \n    on).\n\n[2] Fourth Armenia was one of fifteen provinces into which, according to\n    Armenian Geography in the Seventh Century A.D., so-called Great Armenia\n    was divided.\n\n[3] \"Pontus\" (or \"Pontus Euxinus\") was an old name for the Black Sea.\n\n[4] \"Azats\" were members one of several strata of freemen in ancient Armenia.\n\n[5] \"Ter\" was the title of the heads of sovereign royal families in ancient \n     Armenia.\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7966, "properties": {"category": "sci.electronics", "text": "From: johnh@macadam.mpce.mq.edu.au (John Haddy)\nSubject: Re: Dmm Advice Needed\nOrganization: Macquarie University\nLines: 30\nDistribution: world\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\n\n\n|>   What the world needs is a meter that won't let you change ranges or\n|> turn it on/off with a lead stuck in the amps jack - a little bit of\n|> clever plastic detailing would take care of this and make the world\n|> safer for electricans, anyway.\n|>    Not that I've ever put a meter on the wrong range into a live \n|> circuit, no, not me...not more than a dozen times, anyway....\n|>     Bill\n|> \n|> \n|> bills@inqmind.bison.mb.ca\n|> The Inquiring Mind BBS, Winnipeg, Manitoba  204 488-1607\n\nThe Fluke 87 beeps at you if you try to take it out of a current measuring\nrange while there is still a lead plugged in to the current sense socket.\n\n... this should solve your problem - unless you are in a noisy environment.\n\nJohnH\n\n----------------------------------------------------------------------------\n\n      |  _  |_   _   |_|  _   _|  _|              Electronics Department\n    |_| (_) | | | |  | | (_| (_| (_| \\/           School of MPCE\n    ---------------------------------/-           Macquarie University\n                                                  Sydney, AUSTRALIA 2109\n\n    Email: johnh@mpce.mq.edu.au, Ph: +61 2 805 8959, Fax: +61 2 805 8983\n\n----------------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7967, "properties": {"category": "sci.med", "text": "From: paj@uk.co.gec-mrc (Paul Johnson)\nSubject: Poisoning with heavy water (was Re: Too many MRIs?)\nReply-To: paj@uk.co.gec-mrc (Paul Johnson)\nOrganization: GEC-Marconi Research Centre, Great Baddow, UK\nLines: 61\n\nIn article <1993Apr19.043654.13068@informix.com> proberts@informix.com (Paul Roberts) writes:\n>In article <1993Apr12.165410.4206@kestrel.edu> king@reasoning.com (Dick King) writes:\n>>\n>>I recall reading somewhere, during my youth, in some science popularization\n>>book, that whyle isotope changes don't normally affect chemistry, a consumption\n>>of only heavy water would be fatal, and that seeds watered only with heavy\n>>water do not sprout.  Does anyone know about this?\n>>\n>\n>I also heard this. I always thought it might make a good eposide of\n>'Columbo' for someone to be poisoned with heavy water - it wouldn't\n>show up in any chemical test.\n\nNo one else seems to know, so I'll post this.\n\nThis topic came up on sci.physics.fusion shortly after the cold-fusion\nflap started.  As I recall, its been done to some experimental mice.\nThey showed various ill effects and eventually died.  The reason is\nthat deuterium does not have exactly the same reaction rates as\nhydrogen due to its extra mass (which causes lower velocity, Boltzman\nconstant, mumble).  This throws various bits of body biochemistry out\nof kilter, and you get sick and die.\n\nI've never heard of anyone being poisened this way, in or out of real\nlife.  The process takes quite a while.  If anyone wants to write this\nbook, I would imagine you would have to:\n\n1: Replace a significant fraction of the water in the body with heavy\n   water.\n\n2: Wait while normal breakdown and repair processes cause other\n   molecules in the body to be synthesised using the deuterium.\n\nDuring this process the victim would gradually deteriorate and\neventually die, but I imagine it would take weeks during which the\npoisoner would have to ensure that a significant proportion of the\nwater the victim ingested was heavy.\n\nYou would get such a mess of symptoms that the doctors would be both\nalarmed and confused.  Why should every organ in the body suddenly\nbegin to deteriorate?  If you can figure out how the poisoner gets the\nheavy water into the victim in a hospital then you could have a real\nstory here.\n\nCome to think of it, <2> would continue even after the heavy water was\nno longer being ingested, so hospitalisation might be too late.\n\nThe most detectable effect would be that the victim's body fluids\nwould literally be \"heavy\".  Water has a molecular weight of 18 and\nheavy water has a MW of 20.  Thus the victim's weight will increase by\nabout 1% for every 10% of body water replaced by heavy water.  Maybe\nthe detection occurs because some pathologist in the lab notices that\nthe victim's urine is strangely dense.  Is there any medical test\ninvolving the specific gravity of a body fluid?\n\nPaul.\n-- \nPaul Johnson (paj@gec-mrc.co.uk).\t    | Tel: +44 245 73331 ext 3245\n--------------------------------------------+----------------------------------\nThese ideas and others like them can be had | GEC-Marconi Research is not\nfor $0.02 each from any reputable idealist. | responsible for my opinions\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7968, "properties": {"category": "sci.med", "text": "From: dpc47852@uxa.cso.uiuc.edu (Daniel Paul Checkman)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: University of Illinois at Urbana\nLines: 26\n\ndyer@spdcc.com (Steve Dyer) writes:\n\n>In article <1qnns0$4l3@agate.berkeley.edu> spp@zabriskie.berkeley.edu (Steve Pope) writes:\n>>The mass of anectdotal evidence, combined with the lack of\n>>a properly constructed scientific experiment disproving\n>>the hypothesis, makes the MSG reaction hypothesis the\n>>most likely explanation for events.\n\n>You forgot the smiley-face.\n\n>I can't believe this is what they turn out at Berkeley.  Tell me\n>you're an aberration.\n\n>-- \n>Steve Dyer\n>dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n \nHEY, KEEP YOUR FU---NG FLAMING OUT OF THIS GROUP- THAT GOES FOR YOU, MR.\nDYER, AS WELL AS SEVERAL OTHER NASTY, SARCASTIC PEOPLE, REGARDING THIS\nSUBJECT.  Shoot, now I'm all riled up, too, and I was just going to ask if\nwe can keep our discussion about MSG a little more civil; blasting a school\nor an idea through simple insults as demonstrated above is not necessary,\nand otherwise out of line.  If you want to continue your insult war, take\nit elsewhere and stop wasting everyone else's time.\nMost sincerely,\n\tDan Checkman\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7969, "properties": {"category": "sci.crypt", "text": "From: oz@ursa.sis.yorku.ca (Ozan S. Yigit)\nSubject: Re: List of large integer arithmetic packages\nIn-Reply-To: mrr@scss3.cl.msu.edu's message of 20 Apr 1993 16: 47:03 GMT\nOrganization: York U. Student Information Systems Project\nLines: 18\n\nMark Riordan writes:\n\n\t[a list of large-integer arithmetic packages elided]\n\nI thought I would note that except Lenstra's packages, none of the\nlarge-integer packages are in the public domain. As an alternative,\na straightforward *PD* implementation of Knuth's algorithms may be\nfound as a part of Uof Arizona's ICON distribution.\n\noz\n---\nWith diligence, it is possible to make | electric: oz@sis.yorku.ca\nanything run slowly.        --Tom Duff | ph:[416] 736 2100 x 33976\n\n\t\t\t\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7970, "properties": {"category": "talk.politics.misc", "text": "From: zippy@hairball.ecst.csuchico.edu (The Pinhead)\nSubject: Re: Formal Rebuttal to the Presumption of Jurisdiction\n\t<1993Apr5.144853.3842@cae.prds.cdx.mot.com>\nOrganization: California State University, Chico\nLines: 21\nNNTP-Posting-Host: hairball.ecst.csuchico.edu\nIn-reply-to: dan@cae.prds.cdx.mot.com's message of 05 Apr 1993 06:48:53 PST\n\nIn article <1993Apr5.144853.3842@cae.prds.cdx.mot.com> dan@cae.prds.cdx.mot.com (Dan Breslau) writes:\n   ... an amazing illustration of disconnection from reality.\n\nGlad to see that you agree that the current Government is reticent\nabout admitting the sovereignty of the people!  Speaking from personal\nexperience, I have had judges illegally assume jurisdiction even after\nI demanded that the DA prove such jurisdiction on the record, and the\nDA stood mute.  I have also had an appellate court uphold such action\nand hide behind California Rules of Court, Rule 106 (\"The judges of\nthe appellate department shall not be required to write opinions in\nany cases decided by them, but may do so whenever they deem it\nadvisable or in the public interest.\").  That is reality, I agree.\n\n\n\n\n--\nRonald Cole                                     E-mail: zippy@ecst.csuchico.edu\nSenior Software Engineer                        Phone: +1 916 899 2100\nOPTX International                              \n            \"The Bill Of Rights -- Void Where Prohibited By Law\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7971, "properties": {"category": "sci.electronics", "text": "From: myers@hpfcso.FC.HP.COM (Bob Myers)\nSubject: Re: Scope questions\nOrganization: Hewlett-Packard, Fort Collins, CO, USA\nLines: 31\n\n> \tIf my life depended on it, I'd say that it's a scope that\n> \tuses long-persistance phosphor to keep the successive\n> \ttaces on the screen for some unit of time - \"store\" them.\n> \tDo I get to live?\n\nWe'll let you live, but just this once....\n\nThere's more to a real \"storage\" scope than just a long-persistence\nphosphor.  Actually, the phosphor ISN'T usually anything special at all;\nwhat makes a storage tube work is a screen placed just *behind* the phosphor,\nwhich becomes charged as the electron beam intially \"writes\" the trace.\nWith the trace now written to the screen, a separate low-level \"flood\"\nelectron gun keeps the image lit by exciting those areas of phosphor\nwhich are next to the \"written\" areas on the storage screen.  There are\nsome problems with this - the resolution is limited compared to a non-storage\ntube, and the stored trace tends to \"bloom\" with time. \n\nOf course, this is pretty much obsolete technology, done in by the current\ndigital scopes which use raster-scan displays and keep everything in a\nframe-buffer memory anyways.\n\n> / Filip \"I'll buy a vowel\" Gieszczykiewicz. | Best e-mail \"fmgst+@pitt.edu\"  \\\n          ^^^^^^^^^^^^^^^^^^\n\nAh, yes - from the same people who brought you that amazing new reading\nprogram that's sweeping Eastern Europe: \"Hooked on Consonants!\" :-)\n\n\nBob Myers  KC0EW   Hewlett-Packard Co.      |Opinions expressed here are not\n                   Systems Technology Div.  |those of my employer or any other\nmyers@fc.hp.com    Fort Collins, Colorado   |sentient life-form on this planet.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7972, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gt8798a@prism.gatech.EDU (Anthony S. Kim)\nSubject: Syquest 150 ???\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 3\n\nI remember someone mention about a 150meg syquest.  Has anyone else\nheard anything about this?  I'd be interested in the cost per megabyte and the\napproximate cost of the drive itself and how they compare to the Bernoulli 150.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7973, "properties": {"category": "rec.motorcycles", "text": "From: randy@megatek.com (Randy Davis)\nSubject: Re: Observation re: helmets\nReply-To: randy@megatek.com\nOrganization: Megatek Corporation, San Diego, California\nLines: 38\n\nIn article <1qk5oi$d0i@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n|In article 211353@mavenry.altcit.eskimo.com, maven@mavenry.altcit.eskimo.com (Norman Hamer) writes:\n|> \n|> The question for the day is re: passenger helmets, if you don't know for \n|>certain who's gonna ride with you (like say you meet them at a .... church \n|>meeting, yeah, that's the ticket)... What are some guidelines? Should I just \n|>pick up another shoei in my size to have a backup helmet (XL), or should I \n|>maybe get an inexpensive one of a smaller size to accomodate my likely \n|>passenger? \n|\n|If your primary concern is protecting the passenger in the event of a\n|crash, have him or her fitted for a helmet that is their size.  If your\n|primary concern is complying with stupid helmet laws, carry a real big\n|spare (you can put a big or small head in a big helmet, but not in a\n|small one).\n\n  Well, you can accomplish both goals, actually, if you have a definite\nphysical type in mind when you go to these (cough) church meetings..  If\nyour tastes tend to smaller, more petite (cough) churchgoers, it is more\nlikely that they will have a smaller head, and you can safely get a medium\nor small helmet.\n\n  This works for me, and I traded my spare large helmet with my best friend,\nwho, at 6'9\", tends to look more for women that are over 6'0\", and can't\nusually fit into the medium size helmet he previously had...\n\n  Of course, if you aren't picky what size (*cough*) churchgoers you give\nhelpful motorcycle rides to, then Ed's advice will hopefully cover any\neventuality as far as legality is concerned, and a spare handtowel in the\ntankbag makes acceptable padding so the passenger can see out of the viewport\n(rather than the padding above the viewport) in the cases of extreme mismatch.\n\nRandy Davis                            Email: randy@megatek.com\nZX-11 #00072 Pilot                            {uunet!ucsd}!megatek!randy\nDoD #0013\n\n       \"But, this one goes to *eleven*...\" - Nigel Tufnel, _Spinal Tap_\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.379+0000", "event": "documents", "entityId": 7974, "properties": {"category": "rec.autos", "text": "From: chuck@eos.ncsu.edu (Chuck Kesler)\nSubject: Re: Ford Probe - Opinions? (centered around the GT)\nOrganization: North Carolina State University, Project EOS\nLines: 143\n\nIn article <1993Apr20.002651.20797@sco.com> nathanp@sco.COM (Nathan) writes:\n>\n>\"Jeremy G. Mereness\" <zonker+@CMU.EDU> says:\n>>\n>>Can anyone offer any opinions of the Ford Probe... ala how they do in\n>>the long run, repair records, reliability, mileage, etc?\n>>\n>>I am fixing to buy a car in the next few months aiming toward something\n>>a little bigger than a typical small car and with a little more power. I\n>>am considering the MX-6, Probe, Accord, Corolla, and the 240SX. \n...\n>I bought a '93 Probe GT with the PEP 263A last July (now at 9500 miles)\n>after debating over the Sentra SE-R/NX2000, MX6, MR-2, Stealth, Prelude, \n>and Celica.\n...\n>The car design is different than earlier years, so it's too early to see its\n>reliability so far.  For what it's worth, my comments:\n>\n>My dislikes:\n>Shutting door with windows up from inside rarely makes good wind seal.\n\nSome other owners on the ford-probe@world.std.com mailing list have commented \nabout this problem, but I haven't seen it happen on my 3 month old \n'93 Probe GT.  I think this may be something that Ford has corrected since \nthe initial batch of cars.  Also, someone said that Ford has issued a \nservice bulletin to inform dealers about how to correct this problem, so you \nmay be able to get your dealer to fix it.\n\n>Headlights have \"stuck\" up a few times (weather?)\n>air conditioning broke ~4000 miles (pressure cycling switch)\n>condensation around rear washer fluid container doesn't drain completely.\n\nHaven't seen any of these problems, nor have I seen these mentioned on the\nmailing list, so these might just be having bad luck with these.\n\n>crammed engine; little hope for do-it-yourselfers (typical)\n\nDefinitely!\n\n>parts somewhat more expensive than normal Ford parts\n>underside plastic doesn't like sharp driveways and speedbumps (typical).\n>assembly gripes: tape on radiator, screw fell out of dash, seat seams not \n>stitched properly.  Hopefully just a fluke.\n\nNo problems like these either.  I haven't been able to find any obvious \nplaces where they screwed up.\n\n>Ford only gives 1 key with the car.  C'mon Ford, spend an extra few pennies!\n\nHmmm!  I got two keys with my car.  Something tells me you got stiffed by\nyour dealer on this.  (Actually, if you count the \"credit card\" key that \ncame in the owner's binder, I got 3 keys, but since the credit card key\ndoesn't have any teeth cut in it yet, I guess I won't count it. :-))\n\n>Rear hatch has no padding on corners when up.  I'm waiting for the day when\n>I bash my head on the corner.\n>horn buttons behind air bag in spokes and not in center (personal preference)\n\nThe latter is probably because of the air bag.  It's pretty much takes up\nall the space where you'd expect to find the horn.\n\nSpeaking of the horn, I was surprised to find that the Probe comes with one\nof those nice 'merican sounding horns instead of the Japanese sounding kind.\nThe previous Probes had Japanese horns.\n\n>Tires fling dirt/mud onto side of car \n\nYeah, not very badly, but enough to be annoying sometimes.\n\n>My Likes:\n>engine (design/valves/sounds/smoothness/power/mileage/torque) -- definitely #1\n>handling (very good for FWD; understeer only at limits)\n>transmission (the 5 speed is a must)\n>usable instrumentation (lovely readable analog everywhere)\n>Very little torque steer at full power (much better than the '90 SHO I drive)\n>stability at 100+mph (high gearing though)\n>low cowl (good visibility in front)\n>Heated outside mirrors (nice in fog, never tested in freezing weather)\n>ABS/Air bag (see above)\n>rear seats fold down (I have few rear seat passengers so a trunk not important)\n>No shake/rattle noises when going over bumps/potholes (still!)\n>Tires: 225/55VR16 Goodyear Eagles (70% left; hoping for 30K :-)\n\nI agree strongly with all of the above, especially about the engine.  The\ninterior is very, very nice too.  Very pleasing to the eye, and ergonomically\nsound.\n\n...\n>I drive it to and from work\n>each day on relatively smooth roads, and most noticable thing is that the\n>Probe's suspension doesn't like potholes.  When you test drive one, find a \n>potholed road somewhere around town and see if the jarring you get is \n>tolerable.\n\nYes, this car's stiff suspension isn't for everyone.  I personally like it,\nbut if you find it a little harsh but otherwise like the car, I'd strongly\nsuggest looking into the MX-6.\n\n>If you have 3+ passengers, by all means bring them along too.  They'll find\n>that they have no room in the back and you'll find that the car rides\n>differently (if that's \"better\" is up to you).  \n\nThe problem with the back seat is that there's no leg room.  Plenty of \nhead room, though.  Shorter people fit back there without any complaints,\nso long as the seat they are sitting behind is pulled forward a bit to \ngive them a place to put their feet.\n\n>Also, there's a lot of glass\n>around you which I wasn't expecting; the temperature inside the car gets pretty\n>hot in the summer.  My back seat passengers (now very few) complain about\n>the lack of ventilation; you may want to consider that when combined with\n>the heat.\n\nThe power moonroof can greatly improve the ventilation throughout the car. :-)\nI really enjoy the moonroof, by the way, but then I've always been a sucker\nfor open air driving.  No leakage problems or anything like that...yet!\n\n>I've heard that the exhaust system has trouble, but mine works fine.\n\nI haven't heard about this one.  I know that some of the very early Probes\n('89 and maybe '90) had problems with prematurely rusting mufflers (which\nFord will replace at no charge), but I haven't heard about anything like\nthis concerning the '93 Probes.\n\nI haven't had any real trouble with this car outside of a CV joint boot\nthat was leaking, but the dealer took care of that promptly, and even\ngave me a free rental car for the day and a half that I was without my\ncar.  I was quite happy with the way they handled...especially considering\nthat I was expecting the worst from them!\n\nFrom what I've heard, it sounds like Ford/Mazda had some QC problems with \nthe Probe (and probably MX-6) when they first went into production, but \nI think these problems have mostly been corrected at this point.  That's\nalmost always to be expected with a completely new car like this, though.\n\nHope this helps,\n\n-chuck-\n-- \n   Chuck Kesler                     /|<  Internet:   chuck@eos.ncsu.edu\n   Unix Systems Programmer           |   US Mail:    Box 7901, NCSU Campus \n   Engineering Computer Operations   |               Raleigh, NC 27695 USA\n   North Carolina State University   |   Phone:      +1 919 515 2458\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7975, "properties": {"category": "sci.med", "text": "From: dbc@welkin.gsfc.nasa.gov (David Considine)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Code 916, NASA Goddard Space Flight Center\nLines: 19\n\nIn article <1993Apr15.180459.17852@nmr-z.mgh.harvard.edu> milsh@nmr-z.mgh.harvard.edu (Alex Milshteyn) writes:\n>This was known long ago.  Brain produces and uses some MSG naturally,\n>but not in doses it is served at some chinese places. \n>Having said that, i might add, that in MHO, MSG does not enhance\n>flavor enoughf for me to miss it.  When I go to chinese places,\n>I order food without MSG.  Goos places will do it for you.\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n\tI just wanted to point out that some of the food, particularly\n\tthe soups, are prepared in a big batch, so the restaurant\n\twon't be able to take the MSG out of it.  Sometimes its\n\tpretty hard to find out if this is the case or not.\n\n\n>Alexander M. Milshteyn M.D.   <milsh@cipr-server.mgh.harvard.edu>\n>CIPR, MGH in Boston, MA.     (617)724-9507 Vox  (617)726-7830 Fax\n\nDavid B. Considine\ndbc@welkin.gsfc.nasa.gov\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7976, "properties": {"category": "comp.graphics", "text": "From: roell@informatik.tu-muenchen.de (Thomas Roell)\nSubject: Re: 24 bit Graphics cards\nIn-Reply-To: rjs002c@parsec.paradyne.com's message of Wed, 14 Apr 1993 21:59:34 GMT\nOrganization: Inst. fuer Informatik, Technische Univ. Muenchen, Germany\nLines: 20\n\n>I am looking for EISA or VESA local bus graphic cards that support at least \n>1024x786x24 resolution.  I know Matrox has one, but it is very\n>expensive. All the other cards I know of, that support that\n>resoultion, are striaght ISA. \n\nWhat about the ELSA WINNER4000 (S3 928, Bt485, 4MB, EISA), or the\nMetheus Premier-4VL (S3 928, Bt485, 4MB, ISA/VL) ?\n\n>Also are there any X servers for a unix PC that support 24 bits?\n\nAs it just happens, SGCS has a Xserver (X386 1.4) that does\n1024x768x24 on those cards. Please email to info@sgcs.com for more\ndetails.\n\n- Thomas\n--\n-------------------------------------------------------------------------------\nDas Reh springt hoch, \t\t\t\te-mail: roell@sgcs.com\ndas Reh springt weit,\t\t\t\t#include <sys/pizza.h>\nwas soll es tun, es hat ja Zeit ...\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7977, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: islamic authority over women\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 8\n\nKeith M. Ryan (kmr4@po.CWRU.edu) wrote:\n\n: \tNice cop out bill.\n\nI'm sure you're right, but I have no idea to what you refer. Would you\nmind explaining how I copped out?\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7978, "properties": {"category": "rec.autos", "text": "From: sheinfel@ssd.comm.mot.com (Aviad Sheinfeld)\nSubject: Re: Lo Jack\nOrganization: Motorola LMPS\nKeywords: n\nNntp-Posting-Host: 145.1.172.11\nLines: 9\n\nAccording to a LoJack representative I saw recently, LoJack must be installed by\nan authorized LoJack dealer, and is placed in one of (roughly) 30 spots in the\ncar...\n\n>Thanks,\n>Steve M.  att.com!mantic!srmal\n\nSure,\nAviad\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7979, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: the usual\nOrganization: California Institute of Technology, Pasadena\nLines: 30\nNNTP-Posting-Host: sandman.caltech.edu\n\nkendall@lds.loral.com (Colin Kendall 6842) writes:\n\n>I just heard some anti-gun-control people giving the usual arguments:\n>It's everyone's right to bear arms, and the way to solve the problem\n>of people getting killed by guns is better law enforcement.\n\n>It strikes me that this argument could be logically extended as follows:\n\n>A nuclear weapon is an \"arm\", hence anyone has a right to have \n>nuclear weapons. And if someone uses his nuclear weapons to blow\n>up New York, L.A., and Chicago, that's okay as long as we have a\n>good police force capable of finding him and putting him in jail, \n>which will serve as a deterrent to others.\n\n>Do any anti-gun-control people disagree with this, and if so,  why?\n\nYes, I am pro-gun, and yes, I do disagree with this statement.\nNuclear weapons in and of themselves are dangerous.  Radioactive\ndecay of plutonium and uranium, as well as the tritium in the\nweapon, tends to be somewhat dangerous to living things.\n(Can you say \"neutron flux\"?)  Plus these things have no self-\ndefense purposes.  It's kinda hard to justify their use as\na militia weapon when at best they are meant for battlefield use\n(low-yield weapons) or at worst for industrial target obliteration\n(translation:  cities and population centers).  Not to mention that\nfor it to be used as a militia weapon and expect the user to live\nrequires some sort of launch vehicle . . .\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7980, "properties": {"category": "soc.religion.christian", "text": "From: jprzybyl@skidmore.edu (jennifer przybylinski)\nSubject: Re: Hell_2:  Black Sabbath\nOrganization: Skidmore College, Saratoga Springs NY\nLines: 14\n\nHey...\n\nI may be wrong, but wasn't Jeff Fenholt part of Black Sabbath?  He's a\nMAJOR brother in Christ now.  He totally changed his life around, and\nhe and his wife go on tours singing, witnessing, and spreading the\ngospel for Christ.  I may be wrong about Black Sabbath, but I know he\nwas in a similar band if it wasn't that particular group...\n\nHOW GREAT IS TH LOVE THE FATHER HAS LAVISHED ON US, THAT WE SHOULD BE\nCALLED CHILDREN OF GOD!  AND THAT IS WHAT WE ARE!  (1 JOHN 3:1)\n\nGrace and peace to all, (I'll see you ALL Someday!)\nJenny\njprzybyl@scott.skidmore.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7981, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Bo was a good player, you shorts (plus idiots)\nFrom: guilford@otago.ac.nz\n <1993Apr5.101636.1@otago.ac.nz> <C50M9D.Dv@murdoch.acc.Virginia.EDU>\nOrganization: University of Otago, Dunedin, New Zealand\nNntp-Posting-Host: thorin.otago.ac.nz\nLines: 106\n\nIn article <C50M9D.Dv@murdoch.acc.Virginia.EDU>, drw3l@delmarva.evsc.Virginia.EDU (David Robert Walker) writes:\n\n>      BO JACKSON 1963          \n>   1988 KCR    437  106  16   4  23   28   29   7  .253   67  .243  .288  .455\n>   1989 KCR    517  134  19   5  33   41   27  10  .274   92  .259  .314  .507\n>   1990 KCR    405  110  17   1  27   44   16   9  .286   77  .272  .343  .519\n>   1991 CWS     71   16   3   0   3   12    0   1  .240   10  .225  .337  .394\n>     MAJ      1430  366  55  10  86  125   72  27  .270  246  .256  .316  .489\n>     MAJ       598  153  23   4  36   52   30  11\n> \n> This is what Jackson looked like in 88-91, with everything converted\n> to a neutral park, on the basis of run production. His equivalent\n> average started at .253 in 88, was up to .274 in 89 and 286 in 90. So\n> let us say he had established, in his last two seasons, a .280 level\n> of play.\n\nI'm not quite sure how these numbers are generated.  It appears that in\na neutral park Bo's HR and slugging tend to drop (he actually loses two\nhome runs).  Or do they?  What is \"equivalent average?\"\n\nOne thing, when looking at Bo's stats, is that you can see that KC took\naway some homers.  Normally, you expect some would-be homers to go for\ndoubles or triples in big parks, or to be caught, and for that matter you\nexpect lots of doubles and triples anyway.  But Bo, despite his speed, \nhit very few doubles and not that many triples.  So I would expect his\nvalue to have risen quite considerably in a neutral park.  \n\n> That is good. Very good, in fact. But it probably doesn't make the top\n> ten in the league. The 10th best EQA in the AL in 1992 was Dave\n> Winfield's .296; Thomas was first at .350. First in the NL was Bonds,\n> an incroyable .378; tenth was Bip Roberts, .297. But .280 is better\n> than any season in the past five years by Joe Carter; it is about what\n> Mattingly had in 1988 (.285); what Felix Jose had the last two years;\n> just ahead of Time Raines' five-year average; better than Ryan\n> Klesko's MLEs. \n\nFelix Jose has been a .350/.440 player in a fairly neutral park.\nI would offhand guess the `89-`90 Bo at around a .330/.530 player.\nMaybe .330/.550 .  Not even close.\n\n> He got more attention from the media than was warranted from his\n> baseball playing, though; his hype was a lot better than his hitting.\n> That is the basis for the net.comments about him being overrated. The\n> media would have you beleive he was a great hitter. I think he was a\n> good, maybe very good hitter. He was IMO, something like the 30th best\n> hitter in the majors.\n\nI'd put him about there too.  \n\nNote: I hadn't realized the media had hyped him so much.  I thought he\nwas always viewed by them as a better football player, and only so-so \nat baseball.  He did only have one 30-hr, 100-rbi season, and KC wasn't\nwinning.\n\nNote 2: I maybe have harped on this a bit in the past, but there is a\nmistake being made (by the SDCN's, as they are known, on this group)\nwith respect to players like Bo and Deion and Lofton (and perhaps others).\n\nWe find, that if you look at a large group of players, their past major\nand minor league numbers will predict their future numbers fairly well.\nTheir are some caveats: the younger they are, the less good the prediction;\nthe lower the minor league, the less good (I imagine), the more recent\nthe player has left college ball, etc.\n\nNow of course, this prediction involves quite a bit of \"error.\"  Sometimes\na player with poor MLE's (Dave Justice, the 1990 Ventura) becomes a star.\nSome hitters develop (Shane Mack, Brian Downing), some don't (Oddibe\nMcDowell, Mickey Brantley).  This error involves real things: there are\nreal reasons why Oddibe didn't hit and Shane did.  It may (who knows)\ninvolve parks and batting coaches and wheaties and injuries and lifting\nand so on.\n\nBut still, you have this big pool of players, and things work pretty well.\nOne of the reasons for these predictions accuracy is the common background\nof the players.  One thing we know about professional baseball players is\nthat all of them (or almost all) have spent a good deal of time playing\nball.  Their backgrounds are similar.\n\nWhat hasn't been established is what happens when you encounter a player\nwith a different background?  Is there some reason to believe that a\nBo, or a Deion, or a Lofton, or a Tony Gwynn (?), or an Ainge, or so\non, has such a different background, that the standard model and standard\nassumptions fit this person slowly?\n\nIt hasn't been established that you can use MLE's with two-sport players.\n(It hasn't been established that you can't, but then statistics is, after\nall, an art).  I personally think otherwise lucid individuals continually\nmake completely nonsensical statements about Bo and Deion and Lofton.\n\"Look at those good-but-not-great minor league numbers,\" they say.  Well,\nwhat happens if those numbers simply don't mean what they usually mean?\nIt might mean that Ken Lofton suddenly has a better year in Houston than\nTuscon.  It might mean that Deion suddenly has a better half-year in\nAtlanta than Greenville.  \n\nThen again, it might not.  Ken and Deion might go right back in the tank\nthis year, live up to those poor MLE's.  But you guys DON'T KNOW.  What's \nworse, you don't know that you don't.  And you don't know that there are \nother players you won't know about -- injuries and lifting and wheaties \nagain.  You seem to think that the model is perfect and eternal.  It's not.\nIt's got some error.\n\nOh well.\n\nBill Guilford\n\nstill thinks \"hairy butt is truly ugly\" might be right\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7982, "properties": {"category": "rec.motorcycles", "text": "From: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nSubject: Boom! Dog attack!\nReply-To: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nDistribution: world\nOrganization: Computer Dynamics-Vancouver B.C.-(604)986-9937 (604)255-9937\nLines: 59\n\nMy previous posting on dog attacks must have generated some bad karma or\nsomething. I've weathered attempted dog attacks before using the\napproved method: Slow down to screw up dog's triangulation of target,\nthen take off and laugh at the dog, now far behind you. This time, it\ndidn't work because I didn't have time. Riding up the hill leading to my\nhouse, I encountered a liver-and-white Springer Spaniel (no relation to\nthe Springer Softail, or the Springer Spagthorpe, a close relation to\nthe Spagthorpe Viking). Actually, the dog encountered me with intent to\nharm.\n\nBut I digress: I was riding near the (unpainted) centerline of the\nroughly 30-foot wide road, doing between forty and sixty clicks (30 mph\nfor the velocity-impaired). The dog shot at me from behind bushes on the\nleft side of the road at an impossibly high speed. I later learned he\nhad been accelerating from the front porch, about thirty feet away,\nheading down the very gently sloped approach to the side of the road. I\nsaw the dog, and before you could say SIPDE, he was on me. Boom! I took\nthe dog in the left leg, and from the marks on the bike my leg was\ndriven up the side of the bike with considerable force, making permanent\nmarks on the plastic parts of the bike, and cracking one panel. I think\nI saw the dog spin around when I looked back, but my memory of this\nmoment is hazy.\n\nI next turned around, and picked the most likely looking house. The\napologetic woman explained that the dog was not seriously hurt (cut\nmouth) and hoped I was not hurt either. I could feel the pain in my\nshin, and expected a cool purple welt to form soon. Sadly, it has not.\nSo I'm left with a tender shin, and no cool battle scars!\n\nInterestingly, the one thing that never happened was that the bike never\nmoved off course. The not inconsiderable impact did not push the bike\noff course, nor did it cause me to put the bike out of control from some\ngut reaction to the sudden impact. Delayed pain may have helped me\nhere, as I didn't feel a sudden sharp pain that I can remember.\n\nWhat worries me about the accident is this: I don't think I could have\nprevented it except by traveling much slower than I was. This is not\nnecessarily an unreasonable suggestion for a residential area, but I was\nriding around the speed limit. I worry about what would have happened if\nit had been a car instead of a dog, but I console myself with the\nthought that it would take a truly insane BDI cager to whip out of a\nblind driveway at 15-30 mph. For that matter, how many driveways are\nlong enough for a car to hit 30 mph by the end?\n\nI eagerly await comment.\n\nRyan Cousinetc.|1982 Yamaha Vision XZ550 -Black Pig of Inverness|Live to Ride\nKotRB          |1958 AJS 500 C/S -King Rat                      |to Work to\nDoD# 0863      |I'd be a squid if I could afford the bike...    |Flame to\nryan.cousineau@compdyn.questor.org  |   Vancouver, BC, Canada   |Live . . .\n\n\n * SLMR 2.1a * \"He's hurt.\" \"Dammit Jim, I'm a Doctor -- oh, right.\"\n                                                                                       \n----\n+===============================================================+\n|COMPUTER DYNAMICS BBS    604-255-9937(HST)    604-986-9937(V32)|\n|Vancouver, BC, Canada -  Easy Access, Low Rates, Friendly Sysop|\n+===============================================================+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7983, "properties": {"category": "sci.electronics", "text": "From: pw@panix.com (Paul Wallich)\nSubject: Re: Help with ultra-long timing\nOrganization: Trivializers R Us\nLines: 16\n\nIn <1pqu12$pmu@sunb.ocs.mq.edu.au> johnh@macadam.mpce.mq.edu.au (John Haddy) writes:\n>In article <C513wI.G5A@athena.cs.uga.edu>, mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>|> Instead, use a quartz crystal and divide its frequency by 2 40 times\n>|> or something like that.\n>... Wouldn't a crystal be affected by cold? My gut feeling is that, as a\n>mechanically resonating device, extreme cold is likely to affect the\n>compliance (?terminology?) of the quartz, and hence its resonant frequency.\n \nYes, but in a fairly reproducible way. -40 is only a smidgen of the\ndistance to absolute zero. And in any case you're going to have to\nborrow freezer space from a bio lab or someone to test/calibrate this\ndarling anyway. Btw, you're probably going to want those big capacitors\nyou found to fire the solenoid -- High current drain on frozen batteries\ncan be an ugly thing.\n\npaul\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7984, "properties": {"category": "rec.motorcycles", "text": "From: laszlo@eclipse.cs.colorado.edu (Laszlo Nemeth)\nSubject: Re: Protective gear\nNntp-Posting-Host: eclipse.cs.colorado.edu\nOrganization: University of Colorado Boulder, Pizza Disposal Group\nLines: 19\n\nIn article <C4wKFs.BC1@eskimo.com>, maven@eskimo.com (Norman Hamer) writes:\n|> Question for the day:\n|> \n|> What protective gear is the most important? I've got a good helmet (shoei\n|> rf200) and a good, thick jacket (leather gold) and a pair of really cheap\n|> leather gloves... What should my next purchase be? Better gloves, boots,\n|> leather pants, what?\n\ncondom\n\n\nduring wone of the 500 times i had to go over my accident i\nwas asked if i was wearing \"protection\" my responces was\n\"yes i was wearing a condom\"\n\n\n\nlaz\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7985, "properties": {"category": "rec.autos", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U37955@uicvm.uic.edu>\nSubject: Internal leak in carburetor\nLines: 9\n\nHi,\n\nMy friend's 1983 Toyota Tercel accelerates by itself without using\nthe gas peddel. The repairman said it has a internal leak of air in\nthe carburetor and needs a new carburetor (costs $650). She likes\nto know if it is possible to fix the problem without replacing\nthe whole carburetor.\n\nThank you.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7986, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: The Role of the National News Media in Inflaming Passions\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 17\n\nIn article <C5L780.Apu@murdoch.acc.Virginia.EDU>, gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy) writes:\n> Kaldis writes:\n> #The fact that she was wearing a miniskirt with no underwear was\n> #presented as evidence that she was a prostitute, and the court\n> #apparently found this compelling.\n> \n> Ah, I know women who wear miniskirts without wearing underwear, and\n> they are not prostitutes.\n\nDo they have a history of working in massage parlors, and telling\nco-workers there that they are prostitutes?  Do they frequent truck\nstop parking lots at 4:00 AM, without ID on any sort?\n\n> -Greg Hennessy, University of Virginia\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7987, "properties": {"category": "rec.motorcycles", "text": "From: erika@znext.cts.com (erik astrup)\nSubject: Re: Long lasting tires for small bike.\nOrganization: pnet\nX-Newsreader: Tin 1.1 PL4\nLines: 22\n\nwsh8z@amsun29.apma.Virginia.EDU (Will Heyman) writes:\n: no rear tires as small as 110/90. There are some fronts though.\n\n\tSo get a 120/90 instead. Is there anything that size? \n\n: Any other recomendations?\n: \n\tCall the tire companies yourself and tell them what you have. \nThey can make recomendations for you. That's your best bet. Check a biker\nmagazine (Cycle World etc) for phone numbers. \nIt's possible there are no other tires available though. \n\n ==============================================================================\n  Erik Astrup                  AFM #422                              DoD #683 \n\n  1993 CBR 900RR  *  1990 CBR 600  *  1990 Concours  *  1989 Ninja 250 \n       \n      \"This one goes to eleven\" - Nigel Tufnel, lead guitar, Spinal Tap\n ==============================================================================\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7988, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Basil, opinions? (Re: Water on the brain)\nOrganization: The Department of Redundancy Department\nLines: 15\n\nIn article <1qmr5qINN5af@early-bird.think.com> shaig@Think.COM (Shai Guday) writes:\n\n>The Litani river flows in a west-southwestern direction and indeed does\n>not run through the buffer zone.  The Hasbani does flow into the Jordan\n>but contrary to what our imaginative poster might write, there has been\n>no increase in the inflow from this river that is not proportional to\n>climatic changes in rainfall.\n\nWhat did you have to go and bring THAT up for?  Now they're going to\nsay that Israel is stealing the RAIN, too....\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7989, "properties": {"category": "comp.windows.x", "text": "From: ewang@ucsee.Berkeley.EDU (Edward Wang)\nSubject: Widget source code needed\nOrganization: University of California, Berkeley\nLines: 10\nNNTP-Posting-Host: ucsee.berkeley.edu\n\nI'm considering writing my own widgets, but I like to have some sample\nwidget source code to look over first.  Where could I find something\nlike this?  Are there any archives accessible by anonymous ftp that contain \nsuch information?\n\n\t\t\t\t\t\t\tThanks,\n\t\t\t\t\t\t\tEdward\n\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7990, "properties": {"category": "talk.politics.guns", "text": "From: donb@netcom.com (Don Baldwin)\nSubject: A picture is worth a thousand words...\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 531\n\nbegin 644 outOfControl.gif\nM1TE&.#=AN@*6`?```````/___RP`````N@*6`0`\"_@Q@J)O-[XQ4#IYX::Z3\nM9PUB4ZAY9`<NY59*:/!2L0C-J^W>2(>?[-C3Q70,6A`H9)&2OA=*ELQ)?RW+\nMP3HT5F%1RQ%INGZNVMF4&WR0?4+>\"OO!,-7(-SO,K#^I=2_<=J?4,QB(`X-V\nMN)-X>+;C1^B&UI7C&#E)=7E&F)?9\"?9X`OEH.77CE(*I!5KI^08H-I8PMC9:\nM26HW\"RLFN]LK>@NH1PN[UT>YQ,&ETL#[)#=BVO0<ZZ=VB7S=**D)!?G+\\]M&\nM%`[<2MY]$=[*JFW8V>6ZYHSZG6V.#DVZ-XS?[8*X:`@M6;SB;5M'<\"\"U3VS&\nM-5E5J-JT8)P<%>&#$=I#_CH2O40*\")#=/6\\.3QW,(JY,IB,C4[6\\-Y(EPTW\"\nMRIP[*:AB'X>Z/\"K2MV5805T:/YD@28G&LIQ+AVY,6$%G\"@]4X]\"SVM2:THGS\nM;MIJ$9)1/W<AO'I]-S%F2S-!SU9URXFBW))7N[95E!'4W*':5+CZ*(/;W+'R\nM\\DK9Q-$HUH4/56*+.C5K6L<'$V-%*>HQQ\\O,P.+#:7>0RLJAS:+]LW:2Z:BC\nM8:KK.QAQW-2FK;+MR><?(Y-X<1:V,YEVQXB1;5\\&'E$.J]\\S>\\7;$!RSY7G2\nMTGT]+%:WZW&B]=*%2U.U2(3>*<)[FRUT68-87I>_N_I:3DF2`\\/^UWLI1I^)\nM_L:?@]D18E6AIMQ1A2F6T&S-074@3R+(%$5V]ODCDGI(I71:=_&)UYHJL#4H\nM3(`U\",?67N?A@B!A$:18FQ$%O;C%;B>!4Z$OF!!(8BF**:21?@8.J(1++A5H\nMV&:118><=*PEEY^,$X)&6V;DL.B=@E)&.>1W[/&&TGL,;>FC<<:(R1]\\C9'G\nM!(.Y(1(-2,4YZ$]G5)H()7U!PHACBDQ5)I6<EH%YHD)P>,EDFF\"5XV&&U=G4\nMD'KV:*C@HW0-Y^<V%FY7(G?[04E,F_;DV>\"??74*VF'7L4E=@N8IF1&5[&'S\nMVW%^018<8Q)-8YT5KQ[G!IAIK\"7A;KZ2Z%ELSUFZ_DI\\RI)W47@6+:@HA`DV\nM&DJ1ITK*:K,_X->K4=P\"I!M@-5Z:#YV>*IDH9$%N.I^DQ>F)WFS'+E83<GEA\nMB.I/)H4W)X>I601%I+PM9VZEPVXU+WA%FANP>U_86.>_CG(Y[KG<ZFO+*_RP\nMVJ^6'!-,%#6S=)D/O3:^:F#\"@9+\\W%\\W3A?AC,`@BF^U_\";9\\,+$+BMPGR])\nMZS%S/&8YAXH2[ZP5Q#*&&Z.F8[);C,A0P3CUH&&HNZZJQ*#'Z9Z1Z@=KO7;A\nME300BSP+8K`7GPTMM@9=60Z[)_+<6L^IPMGOCJ7B[0Q-SB)-,=<4^L9,6/\"M\nM'6*]I)(Y<7VQXIIR3R4G_FY-5B+#K)G-FMV-VLI>#UXLC0I/;F;!N08>](:-\nM2_=4EF.O&G3J3)YY,^H(&UOBAXP*FQUV`OJ5\"NQZUR65D24_[C6#I(L-XIVZ\nMQKLDN;1OF;OANB>)**>9.MPNDM,;&RVA>;]T\\-RN?U^TSH\";\\FU^K5[7Y/7*\nM_RF4<T[E$J;D(Y.)2\\AAW[N9`0GN;M#C%?^X%S5W:()M<(D=D1*X'N)`2WH_\nM`A30;J>HZ55I>/!26<5^!9C:X2R$WQH5?[03+E,QC&I#XY,!*Z<4>RTI:?LS\nMTE7PQC\\8BDI(QZ!.0T0TL_B!2WRE:U%7E,&Z\"Y4F?'GP$/.26)+Y(5!>4FSB\nM_ODL`1W&?<U\"[0O(D5(\"CAGMBC3/RYE3=G*_,\\8J:_B;UCXHUR[@=7\"'-)RC\nM#SL&P5J@$%D1&YWG(\"B_[FD1:!MYS\\^&Y2X.;E%E'^M0``_904.A2FQFX-U/\nM,$8?\\`UF5V#KT<MZY\"C@C<B*D&O$(Q>YA'LEXXJ)>1`F[V.W]!`1B4$13HZJ\nM()]9GL^`BJ2;EM#'LQ9N+D#54UN^=B@:9$7#<X1B(Z[X8;]FH**-SGGAY1K'\nMR#J6[UTMBV';.H2=^`&S#2SBG-%,IS/*G,9\\BD03BJ!&H$:R,S>3>@44L2G)\nM4NUM1(;@7>_DF3(*DJ$H]A-EYJ0YOQH&4!6G;,XH_L=&0_35R$RJ*6'&)CH^\nMN0CH%+Q$&2Y?]QV!T/*>533=E,J7KEC:\\V`T8QRD9&G16S2O'ERLA6W$2$#C\nMI!(WB[G<-$TFJS)\"CHYJ<J,9=>J8>39R@9($H[_V=D&4EDT>VSLJDM3I1POB\nM,\"WH.)/;1C5%A&)0H/OJ#=MF]=5)BE.!TS'E$R-Z/VLJ1X;&\"X0$M[I!M![T\nMHX.DW=HNR30=-?,_BA/L^HPHCD+!+*4@S:A'+[78>HY%'04=Z3D7%A;$B?2R\nM3$7;*E=J2_WEL)IJS$5IU4C0,$5/:,W+GS2IJL&7LC6?:J-6'XE5NBQ\"2IX^\nM@YL@'4E(DQ*S9YP]%\\[,_H%0ZU`P=W$B'&,X&,(*`==%YK,A'G\"37+[P,PZ6\nM]&#?D!I'2OE,5B4][KB8ZT6#M<AE@K,2/<DZ3A,I-FJZ]*U7WQ))MDIUMMX%\nME8;2:[3ZKBA?WC(N4/*81LMY\\F0)[531/`FDU2ZO2O-R[4K0])$]=I5BARV3\nM+Q\\82T@6]S^'_&H_PI>I^!9ON\\YM4^\\\"8^!WP+BQ)HN;`.O3)6C&58Z\"RJWH\nM>-C1U':RL@<4$A$?BZ\\,?]\"=`AVF?0%*18FNIX`)317G5/?(`2X3N)Z@+'OM\nMMJ_H\"D].W-C64`E;U%/R-+PAFY8.9:PU03[%B>\"]B.8<FAD/[Y'`8$;N?.LK\nM_CN5\"@S*!*'Q\\;`HPFT:3)6\\Q>UF'4M\"$VKQ>2Z2])I=6E<W]SBUK\\4NV%2[\nMK5,IH\\Z?BW.FLTS>SD$YR>R@V4E=-59AMFZ%O]T?)4&%.4?Z-UE$$R[+&%OJ\nM/SIYQ-?R78TQ&K.<&11B?0WH&C6MOQFV6<X&SFDU!!5);;+,KIBY\"0GA]V%W\nMP@/9EO5U8_!8R-6A6LF0OK.*VXMN$6ML14!4ZXM'O>-W:G4?U;PTCY?M;_SY\nM;\\':O;&#!WI1ZTE-JT,&\\JY_[4\"]I%>%A$FG*B4[V$D+[^(8?+C5\\%K=;$'V\nMT$4V]W(%/5,7JY\"/Q_`T3P`=\\#4CN-\\R[S&#+TTK_H0KK1TU].$T;_Q&N4&Q\nMOS4#EZ7X#%\\L$_:F%?-XK9J\\;>9Y>+Y)/T]2>EWRR$;=6EJC*>A\\$W-HAMU_\nM-5]VOGGZVK-/.^PTKM_VR.C@M'>3:-I4L'@SMZBOAQ2(LV9X!6?>;NI*EI:.\nMUNF282U1/*,XD>+>I$DG;F^`1UOL!24MV<?NZ4X'7+MKI_RG\\22F,H-R4M@.\nMJK.1K.((L4_4K<ZU+>\\Y[,-W6-=V5)]Z$X_7JDOX?]_LWLP#Y6>*=XWM,0>]\nMP#&/_.33_/@N?[3EP2U\\@W?FN;Q^>>\\;*KZCR[YXZ`9IP'B-^)2JVL2*I^\\S\nM=E_8U%_=T+P/<%4G3%FY_O>SL\\-/OMJ5C__\\VW_YF;\\\\-R&L7*EV94`\"7C-D\nM-@Y702/4-$,45>`W*%Z%*7,`>U<5@5WS)>.3)]/'$JBF+0GX=]GW9]=63LTU\nM.`*A?R?(?\"C84Y)W?/>W(^LB%%A&:G>\"1G5'.NK'8EWD5HN7+;*S@2)$1A/$\nM++OG.#M8;NN65]ZF6W3%7U?W/;A3)M2789I%!\"IHA5>(A5D(@Y6G)@9U1T/C\nM=B+R/^9515K':D@W<M1BAL/15XNE>TE8@\"!H80)H8N^&9-F&(P^G21<G3#_&\nM@-#W4UHHB(,XB!HC=LE%9.TT8<-D70>D@1K'3WNV<MF621&$.AU%-F.R;417\nM_D\"*9GM]>%E_QGY+AU7,MD2W5WX<5X4RHWV99(&>5W:$*(NS&(NB97D-ICBZ\nM,G=7$V1B^#%>(F9#*%0*\"'&YEU<?ETT0AT^_%%P*\"(?LQV(X=E?BYVK5EUVM\nMN'+P1(O;R(WZMQ/^]V]QAWTZASS8EH`^!8T(XB8`5B>K=H#.(H2^Y4<=PWC/\nMB(Q0>%L_^'%PM'&J9QYVIXBA@$+@ICY;V(T'B9\"+HWQ@\\#0<2#RG<VQQ>(-[\nM]51-XC;U.'1M)X\\^R&2K2(VR]H%P(EU89UEWI8MQA!0B9W%1]!G\"-VZ5LWD)\nM*9-6>#RV\"(N$MHJ*]66(%'CA%\"S;,897)I';Q(.H_M=+M@)_>Y)32FAM^9@\\\nM.I0%Z[=.2+AA7=84#$A@>7:\"OS*378EV_$=->4AR]1-1J;1:<L5M@Z1P2)>3\nMN_2!&AELRX@V5C5N3U9+@J9E&RE?91AJ_%AK=*9N'(A5!^:/.[6\"-GEP6..5\nM7?F-!\\=\\(!:$*!EH:2:\"^\\@A70240&>6`&EQ&!@]:>@>K:-4?K>$7-:,]'1L\nM'WE]7T2!Y%(N/LESW@>6-/=,&[.87JF8-:>9-S)7<H>4B_,[^\":-E51L&;1Q\nMU@8R9W9D'&4G579>+Q1O;<.1#+6(RCEE@D!EUTD\\Q+EHZ<>07>:2]L6\"@2@-\nMA`>.MZF%N0F+.%>9!?>4_DY'C&]2&C%%BI:9E^LD?<ZX6WRE,!VX'Y;HB_N%\nM<M+I/>O5=;]48;9#F/$(@SM&),1!GN@YBPM&F_UV.]DEF;H(1YQXF<'HE!%)\nM74L76>0WC?\")>WP'2%^TG*VU=6A%>Y]S8:<SD>]7FN&D6X'4.2EXF'W9/VLD\nMH86(<_<G6AL(DZ0$9-FYG=#'<AAYAU/W5O=9BJ(XERKYI&+)DCGYHM9)B<\")\nMA%\"*HO=5GA^$H[[);^S)I4>JHS^:GBWH<D-:F8BT:2Y:9^#T7@P4<N,'0#D6\nMI?TYG'\\9@`88GPFJ5Q#RI?A)DLA`>)O(H(7Y>]43)Z88;!8V5]-F)RDG>=>%\nM_H)+`Q+\",E!+@WSJ.9[%=S+T,W09RE7.]W4V%F6C*1E$&&M>ZE@5)Y59FFH\\\nM29H,]7_#^)Y$M:*V\"H?%R8Y3\"52:!W\"C)W5A*8N::G1BD0Z>ZHUCIW9?`BO<\nM!*F*YT&M-TELN9FUAGK6.%5S@Y-]&IQ1=G[^V7%>&GM\".3!/%Z#J)*XQ2C`#\nMZ4+T,ZIA6*2ZV93(:J^QVJG8A6^CUJ_/2HL>6*N*&JD7%GEJ!6>_^3KU\"6*?\nM0CD-\"(5SJHIH*I)[*9FFAK$4>#3P93$QPD)MZ9BBY((0&XXCNYY?N35I]*]\\\nM`;#XEV!;.:BDYGWZV)/`&D'#!FRLHZ)3.D]WX8#+_N`JK#D>XPB$C&A^KI>D\nMU`IOZ8JF:?A>9K6LTVHYDR>(_0BJG@<^*^NOA>:R0OJI69BT[>>7=.@K]N9<\nM!SJC([JSCB.@;\\BNZ@JCA+2P$CN&@7J?R!27WMI#@_890+L+\\=)\\/A6V.!JV\nMH6I:7\"LY2/2RS:J\"Q'J%&ONMF/BJ9ZM<X;E9G4FTR+FHH^B`PK5B34MRQ]E;\nM9/NY<TBF:E:@>(N72@H40T9P]RJS)V:\"LVF3FL:RSNJL1-&XA[NF<9JK!\\N+\nM$\\1NIC*=0J.V!6NN*QEXN/<W,KB4]BEG<1:5RBMO?9<H@W>5=6ILEK9PMF.Z\nMHBHNB(NRD`NJRMJL3J*X_FH:DV68<RPJ7B.XCDMFM!\"1M[#3I3PI4Q'+JBUZ\nM@2HJ/0!CFJ0IF*[7B9%ILY>)K9R58)E;NR@+K>D#P>*HLHA)-KSKM2_2NYC'\nM>5@(2NZ)=<,:*F3F3WH7P'63D3E4=68(;#Y&P&F61.%W0]*(IZVIMQ?IP!Y5\nM2S056+(ACH*1E7]8IH-[/1:\\D(^YP?WAN($+MC_Z@C7K/-;:3X!%NCS&O_HV\nMJZI8I8C'1JR%<1/(?90;8[\"'?0R:E)(Z?C*<C\"6XH%7XPVTA6+@JOEVU?[:9\nM?TJ\\OA>\\Q.SKII/K9C>XQ6C;+8%T1+M6+**YO>XJ==\\5-WQU0V]9QK;:D$,U\nM_I2G6:4\\NKE?[&[9>&]1%;/-]HZR^IB'TE0-.;M=B\\KIF\\=\\[&]G:9ELZV+8\nMVF*H^K##(Z@KU9_IE[^_F)^GBVM[2G?*B)*B\"\\#DVFSO$\\0)UVT]2A5V6AOM\nM*R\\T6:&+F[OJJR_,RLI6&\\4B/$`%EJT^2\\N)6,4';&NZO+J4'&M/J8\\/J\"J(\nM&*7W6+71^Z!RF\\)@O!4\\_!7BT:.(\"7416JVA<R5FNI!)O+O7C,?9_,;.$Z![\nMQ\\G[RVTI;,B:*<.!2<]5&7$W)\\RAC+UM\",R1K,DJZ1^CN<P:EK\"QIU=\".[$^\nM]Y7UZ<\\I.\\$(/9,%<EW5F:IH*ZB1\"L4AV8CE-<[P_NR=;CD0_5'1>GNN#[B+\nM?@6=R*O.19;)61PX2_JA*69GL6MZ:<I:K@2^G(JX30S3VUB#D$Q64+V7-7&J\nMJ@=HMR55!FR/3MA@Q2Q?'YVQD\\:WL.S.?X\"'RZ*#?RO/+P.5%_LF;@IT2I2X\nM%=S5:GJ@_QG/>O1*(QEA!<RA(.>J/RNG:KW7P^6N7[JE-2S7\\P9J,&R/1;E^\nMCCK(Y/9R=F>A#5>X=Y8WI7#2A9W-R8O9AX.-3#C5D&VJORFT_BF!CQ''=)RH\nM\\)3#S-AQ4Z6<6BIP->@^G'>41ZF65M=<0&R8ZS\"JD^J@7>P+6!.BO\\@4M^O:\nMBQET[&HQC$N_BXR6O@>I_D2;EO\"(I9XHA.A-SN%:UK!K*R.\\2`$)Q;5=N?3F\nMDU(KIA+W?0IM:D8LT#,KTMMLBUS=W81(4/+GIU08>=JVU'\\JO0S>>S<3@7;H\nM?/H=UW+*OU(<8A1LVL2'PD:ZR?[(R3DZ<!!1>659BXZIT;JT98\\JF@B>X+Y+\nMTU[LS<ILVQ)MJ`Y=RY2]W?CHTS#'6SE\\PJ\"&V#>W5PW\\>J&840T-M'QBG9=J\nMU1Q\\BTZ#(?0M;9]<XPKNXEKF5)FEDY3YD3>,H:BXV[C,M`E3-0\\)A@C3=S0L\nMM\\P(O%=];:ULJ4V]*>A\"Q1,7G\\8*0(-;$0:)Y^2TP,U9O6S\"JEU.Q%MCX`M'\nM_M>L)\\AQ+JV_;+%WO88VG'CJ:++]I8G!3+%I;'84[%`J\"YJ%%WW?1J@@2;YU\nM+K8WJKF:\"UK&U^6Y.7J<P74'0M(E;>>W+96^^E*:+25C.>OQ*KTO:<Z<I.?]\nM3*%GRE6AZIR_?;.3B#@X/+*3:N4_1YX4NMJN1LAJ3>B,WG\\D6WIWF$\\$J2>8\nMX\\O92V?\"Z)Q&6<`W7EBC*W1\\B*2+NN+,-L/YENASN>,F[H<G2MRV.WFT7N4%\nM_V44I\\7(UNLV)^Y6*Y?9;1_KRH82SAI;EXHAB?%U&=(97Y4-5,@!&91FV]Y5\nM7HEXP.^(_%?T%N9.$O`I]J!>W=K0+-!9/(RJ>ANU_@>D3LRE2E0XM?600F[#\nM!!B:S%VHT4F&TVO4A%K97-:&L<AIL@O81P4X:?(A=$[CJ;U\\*=^FYD;?34J$\nM]A*YX?Z[9I?LI7SJ]POD6F[MQ%7DICW2?HI#VJ*K1?V)98[GM_=I_3?`6^H[\nM?$3:MLS5--[LQ%?HN4[O6,VZ.ORX`'.0>,)\"HV%,AP[OO\"F2%CG1LR+,$XXB\nM/PW('.ZTI5[1JX3:(?)#<WRR,5F'A(RYW8*Z!#ZP!Z_-X!BM5AZ:^R;[ID[V\nM.[]VCVCBZ+ZB@OL[.GN,M!;O/%TM&_V_G+WYK]_\"9%YVZ=[JGC_W[YBM@\"_X\nMU5?8):N0;`:&H3;R[MWJ_GE/\\#)Y:&&$LX8XXIP$J.S.2NA\\S-D9\\Z:?E\".N\nM^'!OY\\M([SO*IN0;5^-*`('Q5\",;(633T5,QT)MW_\\'0$L6D,S>#5,G30M5X\nMF2]:;O&[H?$^K#2L(\"?S8$AVR<EPF%D`ER;@E`F5P4;7Y[;8K\"Y?S2Z%*N5F\nMH^\"M[2M,O]=.M/K'M+MS:6?WVK\\8'P)KK.(*Z7P0$Q'Q>AA!'!^#^%*^SJ`4\nM/VYF($LP*1\\Q0@?+SL),8[1TT/;\"QB;-J+Q<96F]:E/A8E7U+&]ES5I-/511\nM%#D;@\\E67P!G7T^%USPQ@1>#47?LB.HZDTE+L:;O/F$_.U\\CM(9;DR(&H<%P\nM_JM)OXE[6>W566W+YV8MR]6CI<^6(5\\L$\"Z[YV(3CTP,Q5%ZAH[=$4%*GL&3\nM$S'BL8<CR$FTYB,@PX0&JTT[J4U:R)8N-!7;%@KC)$-8=#TI68A@R7#X^('4\nM&118JHEOYO'*U4N8A$J_KAUY&4<=1V-1[]'\\8Y$>4E_^8(*#L\\X<68<KF(I1\nM!DE3-Y$.3LKS*JYM0HQ8U_(:HQ;0J'<^XP6V%[02+J5%YR+.B;.P4F]Z0?;[\nM=I.RV*26H_$\\:]4:4*_HX$I5#`UQ93:>W*S<'&GQVT-A$Q$<)VV?QQ:E#4=>\nMV%6FWW9_$Q-M3$@VDH:CD[V#;)=PQJ.Q@,>ES:9X_IN!A+'*O20][3;.'YU=\nMY_JG6=2<3%$)32\\IKTR!K)&]INJ.VVWX-1H'%HK:.^S<2@ZKB)'?D##NO,%J\nM>^P]@>38Q3KB\\K-IP>7$`TR[.99)\\+1_BC'LDN^ZN=!#T:)+)SP1X6FNJK8B\nMP0ZBD91K:*C5GJ(1-AD9!/$S!7=,L)\\4TB%Q+]PB!*L4Y8#*9C2G-,2/0]T.\nM'.<\\]!X<+B0?*R0M.>]6LDU'UW@,R$0#S6ONNB$+J@Z/7=ATJ8X/S4G/\"&Z\\\nM_$@WS#:BAJS4\\H/LN(%8)#`OS5QKTZ'PI#SS3RHSQ-#/G7C3\\DE(K<.0.R(=\nM:=.]`.7[4K,EUQ+TN<=(_FU43D<?BO)%NN(<*X\\ZI_NO2LY^PE/&H>[:9Y@\"\nM<[4RILKN4D,N8!4=\\5;)`A1\"0N$F%`O'[-:1PK.>M+G0I&<];9'*894DL$#@\nMU-LMBV'3%)=/\"NMCL;Y#M\\JVU7.S/(V_:XTTZJ!2@;S34#5)S0A;!'LL,T=J\nM?R444R.+K50Z`/7[=;)SA'6S8'>5U2-)=PPD,[0*)RV+.5W-,JNT55F*S5UD\nM/G85P-[TG,VN@X^\"]B(L1_Z4)X`)%ECA<N,%>%Q%G4W*YX;Q6J7@6J?KST'5\nM3EY79U'DQ'C:/W/>%EWHV\"JHY`'[(ZGD>6$5*5$M0>0Z:&;,A<IL%*'>:N2.\nM_JD^N\\85J4-2N$?O`)7MN']L;=&JG$45K:1M;#I:C=AI1F.R(XU[M8D+SR-R\nMPRFW,^07*V8U+,#Y73RT(BC]=R%EELO1UH`U17UL9!L?4>AG3ZR2=3/KYH1/\nMNNTS/&41,?ZK+\\#N'9W<*ZNUW*W+*T_>\\LP)*9Y6YX.U,'$!Q;:9\"ZRY'.MU\nM:@UFMSL-5[;YR5B%MW(NN3D_\\A_[X%3>+>E!]ZU7FN\\FLM.3PW9?__WY4ZWM\nMS%%2OGQ1)GY).IVUD-4COQFP)0XJ$Z,2N+?\"I&X[!PQ<68C7/OXE['-\"XM4#\nMC;4PH.5/1R3<X`E/\"*]\\-!`<N^,9XC#SE5K]\"';B_GGAI<#BNHKP+((0Q`YC\nM6O<N?=V0![:[7PK3YJT@1>^'`4R._93',A1.D8J>4I>=%E878G6/,7@;X<[4\nM-ZK@$'!G*PR.\"WNX*>R%KBN+\"M&6JE@H0(WB<P.SV@I;8T+PY,Z*<?0C_L\"D\nM+BW*3H[BZUD,T;6C[Q'RD%&B8)%\"J!#NI2QA`=M0A*28JB)2$7YHDYI>@$>W\nM<'QQ<C\":R1]1F<JR:9)\\O8%B&7V(/D-2J$--1%.D'-84EUF-C+63V.:NE<NI\nML*^4R0.B)V<6'5TB35K,TAM:Z+$Q54Z3FBC<\",,>*1M.,0N&/*0#<L`I,^L)\nM1H`,K!H4#;@3EV@0E,6D_MQSX/(MBA\"R>7DD%/*Z%@4]KK*:_>3DK8H4(S/5\nM8T)HM&$,*0D\\T^2P>K,)UU,F@\\N'#HU)-<KG$?=W,?)X2YF.K!>XEI:],Y((\nMCE7<IS]1VK(N>D8J/A3A)0,G/5G6T''A!*&3?M@Y/T6LE=VAW6\"PJ+6,GI)Z\nM=\"P1WL9G3P;6=*##W.!)4QK5SF\"0.;Y,FCX&R42$'LM6HFBA2\"EEQ'V=K3I<\nM5%*EL/71W`P.JJPZJT]X]4D(V?1ZC+NJ2[G*4R0B[7T.A:94J9FU4VTJB9RR\nM7P_U>IGUA-*B.4-LQ:[95!IN\"8&T\\^GQ^,>V.KK-DUPU)R*QVM2=7JJM5X%/\nM_B:#FE:G:0NP34/MW&2XT-0]4'7BC,D:AY/+B)HOB^2L)4)<*<>7XC\"X_<0C\nM,GT'4F@IDJPU;%!LSQ?%N['V<.LS(V%W6=K6>NVNC_VI+?G61(CR8[\"BK6#-\nM<!<[P@&UG?1CGF/V@\\^GDC%C&2L5S!PW*^OJUZ]?,^8;1RFR:)BM;D+UWG9U\nM![3LBC=XMU4:5=BSR$2E\\90Z32@8#7G=_JJVJIN<$>!4J9UXDD<T8:VD\"]46\nM7GOMIY86=9]<C\\&T\"CMUQL%-WVL1;!4-7X981^MIU?H%$/[:M++FM1[./+SB\nMQ9)S;'=UU47UA\\<.EL<I1T9K-E/LXPA3$J-#'>6:_AZ\\QVS$A[\"_W66.LP4J\nM>O;IPUR$7KZ:U3@FBY!IZ>6@D3>!3B%\"B;Y/CD^4!?1!STEVC(-<2ILMB1^1\nMRC?-3PR98#.S)X#^C:AH=NV1#KU.!C\\,40YLXVQGB-3B(6>8]=1:.@=\\:E@.\nM\"H`F;8^@DXNB>V:OHNI=3ZD;.F-`[Y=DF#79?<[B0$MSY';3Y98BT3O2/BO;\nMQ^U+]C>OQM\"YGEFQA4W6HE-;.1'+KZ.F6K7/PKG4*[($S.Y4B9#<&6/_WB=0\nM;JIT9ADMW3+;$+*T_NG4:,G\"\"J:EWBR#7)4-_=Y]4UM[X/;FS]@CXW@#<L0<\nM190N80H1\\\"WE;;U>I0DG_C)9A>N8C]-<Z_B\"?>YR8:^V93W$,S,,S&4U&]LZ\nM6+ECR-1+QNJV?B7-VA3Y\\$&BJ3G2L90H=(J9$NYV>7.+`RR8M3LOV(JN%MA^\nMDQM?:IKM?:;?&%8?M,F-;+&9_%PMKC?Q+*A4_M[INTDG=F<[5,#H^MKK6D^?\nMTA=N/.YN]G]^YKC9A^KG2587@W2\"^9S-EVJ.27)&AJ4ZP5M58)J#4<VS+?36\nMQ^OM%D]ZW10[4\\Q9RDX#JTV'<$V\\Q..^&:%[3>VDA/NP^\\H=>FG3[IAS(^&/\nM\"^?-U_G!HD0K^9C=Y\"XBCM=@(EJ8Q\"EY7%>3(NL;25$R;ON0R]WB?_YKQLF.\nM_O>6H7+<T0KIAJ<J\\]M?OWG*13?)_;=FQ/>RFS`E\\LCS?6R4<[KY?F3C-?;\"\nMZ+T-.D]P@M=>^3(JO._SI-+'=(M8+[PD9W8,8HBX+Y;`JNSZJZJTC`'%:^_X\nMJ@`/QLG>[G5&9Z?\\2?^:KOV(8-MJPK9>I8^.CVIB!L>>9_E.KX2@;(^,!W=R\nM1\\L\"K\\>@\"Y8.JWO(SHFZ9*LFCY=^#I+NI;RXZ7P\"T-S^RP&Q9.AN053H3V5^\nM3]WZKN/^JCWJ*D\\23'*L4`1-D,YL1/584)L>2>J:<*$TC86J9^\\8)0SY3-3&\nMJ]68*=^`SZ&Z;^,\\3OBHD/F@K^&^ST7\\KO(&1T]P_J+6IHSH1.[D.J+1GK`+\nM_<[E0M`'O5#\\^.7PQNKOD&S1;,]0*&Z9FJZ9;&*(PG#^`JCZX@C4Y*40\"R57\nM+\"0E0,P$5ROT@@GM-I`4<X`*&0:)B.ZYG(T/)8VF\\JJY3([I[*P1>:L`QRX2\nM(82IVNP1\\6O)*,V+6,__^*GMU.G<EG`:R_!RG+%_YLCH?N/L(*:X:A&0NDS8\nM^\"[7M(48[^P3*;&L%N_-$LC\\8D04^>T4<$@`MPJ&ID`=U]#>$(S`GK'$\\C#G\nM7(P57RSA@DSS7\"^#:DS`#'(%I7$4(4^`5N_/WHL,O<L!HZO=T)$\"&2^@E\"_.\nM4JX$5:ZV+\"@>ZS\"5-FX'_I]'[>8GN6A,((N0+]*/\"!]-S+[L&[]DK33I[22P\nM)=WLRA[2!;4O]CH,@,8JX`+JA322=!:L[F(NR;I*?&I0&(T+\\$K+#^Z0O#J%\nMRRZM#S40N\\IQG2:/G<01\"@O1-N9Q(CN(S!#/H]Q,G03NS4@2(@]-UHX0%0ER\nM-X+(VBS%#2.1(5TM)QVR(35P)`4,T,XA$(WCH-XH%Y'N%DM2)HDIO@+I1L[I\nM!<$K`<<P\\HB+'2./Q<(,IXSEP&00[(8+[9A2\"+WO_%2LRMSOU0*A=Y*)A'+N\nM-,ULX+BIVJ;*+&%2/7\"R#SULX>3P\"K]C(2]P*2-G(@D.'KD,!H.,_%Z.Z>82\nM_@'S\\8X\\B-M6DKUTZ\"G;P-\"L*9`*:!.YTU=,DRIIQ\"*)JMCZJ\"OU`]@@;9,T\nMR\"\"O<?,8DS*%#P!_<\"/E!>E$I^L2KR_7!0BSJOM^21%_J73:0>PJD1/;3A<%\nM)13M:V:THE?.,R;?X_>BCQGZ`FU(C\\;$R#FRC?E,RV2(<P!Q<=;*8/26QZ_L\nMLJ\"^*?Q\"#>@^\\N!L\\)+\";1EGKL2N4[DZ[S\"F)))@T:W(X$$YZ^%H#C&%\"Z`\\\nM;<)\\J^?N[A\\_JCRI:Q!+%#+5LD3?4J8(L>1@DC\\+%+MJ,Y]\\=!?%4SL7U/'B\nM$+DD=)X^JQ,-L*5P;B8^D,K^9]^P;`G/\\-\\NK]MX_M+I3BO:@%+2;NY'\\V?_\nM<+$=\"3-00XKV[`I)M0?W[&^6`O'O&,G4>*F0Z.Y`BVW*5+)1IA/VL+&MH$:>\nM=&[,A.VXWC,@-4V\"'@\\+7;'X'N>=?@TEN7$$[PP4:V]158@B_^^\\'O`2C7!U\nM[,T\"'77-U$A^>L=C0B4[OO\"\"MLD/I[0;C=4?62TAU;,O-]-7EN40.<Y)\"^M:\nM835657!R=DRA?!,C@>Q*.Q7BON(H:U`+]='$V)61@I3$9K$5-56M$M(IWTIS\nM2B@V(U45@[5HR+(%26<(M?7B!L]?@K$U;55*%Q,6\"'`%R^V[UK/B&&K9X-#=\nM4@19KZY\\L`PU[>5!UZ98_A9HIFHRP$1T.$E68`^SD:#4*4?*^$!,!\"7EIG)0\nM3/$OZ6864.M3-UM1#*$K2<FP2VGK!HO,(H'2$H.1N#!5T5)62$U-*#,Q/IT5\nM<CY5]C:U9E3*/<_P8,$Q`=$3.JGT[+!I*\\>QZBBU82]35M@,-Z&.JOIS`X>2\nM$\"O3!J7VQ.9U1$]49M:Q6!'N39DU.,/,54M592LTTT3.2]Y/\\.#RGZ022*^H\nMU6C+&]FJ<3]/F\":T8W4O$_GN)\"-FX&8GLB[(70611\".4]\\\"K*6E5/KT,1^_P\nM830G4^B1`Z/T+_GT6Q_7<(\\4('?O3<9L0!%RM`ILO:H1=55-,`CPPLZU0\"&/\nM_N7\")W8?Q$@ATE6GCVK!YA\\[]#/!-5_=S7J=]4=O<D.M%DBA-';8;U=&<:68\nMMZ'4UV[]2S\\7J1VYL$S#[G@9:R`#[1T9%0\\Q:F)037\"Q=:-$U2+\\,4=5-VR<\nM\\/-N%_54L$[*S?]\"576>*Q9?<TYV4/6T<GB+,K>,L=T:L#/;]RV=BZ2*=V?Y\nM*1MQQ=B*-ON\";MW\\=U7J\"#8=SCK7CD1!=/FHUGLST\"^WMO%JU6LEX7<43V[A\nMELE&>-*TB$O]0'BC[B'KD4Z#EUS,+E/-HXTXCTG!U#^.5+YR$!OT#P_K[@;[\nMZ@GOSR49V(R?=7/[4>QTIM?&9&ZW1B'R*C3E`7/;_E!7T:^#/15YJT\"G4!56\nMKW*.5UB#0PZ-FBDKX`]J\"UB>I#!\\`NSK?NV,)9D;2_/KIH0/7Y.`G?A#\",P,\nM+\\O@-#-C\\56)M3AH:315_\\]L0V6__E6H`+A-:^V*E5`)W2:3:Z*^?@<V$ZO2\nM?C=$QW:2<VQ9]=*!*YA4Y[,:)^MLE33\\=&TSP2\\?E]>2EMA4T[4*52Y^B!>*\nMHQA.,92&!]@4\"5A4Z$AJ3/$[.959`PN84VIBZ>67]Q>VN!0A*VHZ2:W:KN^'\nM-==:\\!-IE52,M:V1U3!XV)<%@Y1P6[4Z9_A>8>PB?\"/3(!D`(#JB)7JB(5J'\nM*?JB,3JC-7JC.;JC/?JC_D$ZI\"<Z;\"NZI\"_+H[_%I#>ZC,U3I2L5+4V:AD3X\nMK$KZ9BTYIEWZY=*VHDW,A$7ZIVO:FS,4?B,Z;*-)8\"(X3H7:.I6(7CN*[AQZ\nM3X%ZI:>ZJJWZJK$ZJ[5ZJZ_ZGG&Z8T.XJ(]1HO=U?H-Z@U7ZF9*7N<[ZJY4W\nME6$%JM!6&]M:K+7R/XPT@G$:8MV:>A@Y0@^TVXQOI(':HL6:JQ$[L14[JPV[\nML\"_Z@;]:CFF:4B-#49&,?A^;K(.:IEB3IZWL\"%UZL34:=%37K@_[L,N+H<49\nM::GQKY6UED461\\/9?+%:NQI;M'$[MW5[MS%X/5\\/)_7SA1V&F@E[/Q/)0Z6M\nM_J]GZK1WVY>$6'`[R2I_CE>3BFR$;);K:Y&E&J6WVHB:^[O!.[S%FPL)&SU7\nME*)3&Z?*.Z?'*+3]9J_W$J;C4@`7;T=Y&[U)*E`UV[3C]#&+6[/56@?/VG/H\nMP[43^F41F+FI&K]-6[P=_,$AO+:YFXKOJ>H$&:SMAM)DI4CW&ZC:M:X'L[XC\nM.[1S.RV]\\L:>)BLW6Z9N=$?GU.'`658SVH$=F\\0C_,9Q/,=#6G8;'+,[S.TV\nM>R<OL)Y'?,7;>FJ\\Z^KN-W=+/*T34VU1>[8;&F5__,CS&Z/'-Q^@6JF_\\V91\nM$,MK?,9U?,S)/,=#+;)O&O>.F`U/.SL;'+Z3&[B5_IL9K?Q4%%R?ZC.\\^1&D\nM97B0Q3Q[.1',JUBH`UN<%URT[T^_RWS1&3W,Q5S0V[RGV-O(C5S#W#NF9LVS\nM?DS3F<J*2V_WQ%&'F9G/!]RH>B][!?32,UO%EGIOZR_2'7V_&WW6:3W\"0U==\nMX^+8]\"W*>2IJ@YR:*[!B?[''PV6RX=L,-[S6_SR64['2_7JP95W0%:.UPQE<\nM`G-B%;>CH5S9N;W;M7W27\\+3T=S9D[0WA]TNTWK<W?*4Z=Q:^9O<X:O#;9S4\nM%UN10;W.05QNF'S2\"4:)\"!R+[URK;]O;\"=[659.3`5Q5X%SC^!NQTITO$:88\nMSV\\2(;`@:_J8_'N\\V]C*_FV69:,=OX&]@)V4B;!]WG<<P!]]?`M^Y1O=W87)\nM8LU5S2$9V2?0PN#<B#E5:(&EXN^4X\\M8S^71I;+V\\>+OOW4UK_M;3SF:G27<\nMY%G^Z0G^`,W1TH%N@[-3:+-*WCMQYE'=LR<NR(^>W+_9G16[?6M6_4[:Z-<;\nM'S=KY'W;J:K2Z:%^[KU=ZC%1WN5;P\\>]G&Y^X2F=BJ]KFGV>TED]=\"W,P,F>\nMJ]57REP1ZW[59^VHJ7G7GUF:NU<=TND^\\VG=BB5;O7'+$L]2YOL:;@2_N7K=\nM%U.XW'$0[[_/EC=1Q_V-U^DGPP5)]%:?0@&Z7K.=Z;^\\R.4^\\34_^+^];TH'\nM_F0-#^5'T]@;U:J>5.*ED/8EF/!W[,CCJCG'G\"C?'=.%+O0M/^*E/*_]F5$I\nM[Z-!5?C-_[NE%O0W=O3W\\A+;$K6/Z>_3_7`5WHL@=?[Q'9=5^^&OGW`&G\\<(\nM(#BFGMF\"8U#.VN;-&>H=]A,Z$4*&%+J,B<F>+QS+,UW;-Y[''B9=E@\\(7'UZ\nMPE5).$PJ*\\L(DD?Y47M5D)79($X9(*@VR-MRMD5DUMC2L6E@EY/K5/S@:Q<W\nM*LYJ,)[Z'5U8%U.;3:!AHN(B8V,.X)&1I%37VU6EW=+3'L=>59Q:F&52WF:0\nMQ1CGYQ?FF:L5Y1RBX^'+'1HH3N!HKESIF1]?<!V<_LKIR6RB23)ML_,SM$B:\nM;R@QJ_#DG##U:BB*-6%OM1IUL>9U-^'G9E^JWF5D9K0.R:UNBO&T.O:KN[=>\nM(4%RI,E@5JA(N'D*%S(T1`D<0$EI1)WBQNY;N%+;,,7+Q?&<OG<@]8W[4\\;/\nMAU3C).;3U#\"@-C9@DJ'[5[$D'W\\Q=Z0P2._!P)=\"AQ)%9@J8*I=$<*VKR30I\nMR961-+(B4R+=S(M>5G8;!<P54BE!ZX'ZA:_H#)\\$C=I<=]'?0YCF?*I]U/'N\nM3K1Z][KAQS$B-D]^;1X=Y#5;5L-XVL:S6%4J64CMR'S]:@HGT&$3^9JK03?D\nM,2I8S,+M9*]O9T&J'SVU_I6Z)>?81$6*!:U-<DN`3<65EG6D-U:H*JE.]3'0\nM'>5^(,F.Y`V+I>Q[=MOJ+DX:IT'FR]B2DJFXS1N/T<<W2U>8*WJ+^\\)[*];U\nMIDKX@B^A&2XN*NC)PY1'#GU?(\"Q8D$>+3J-A)%YM!2;T$W>*\"/C:6K`-.&%Y\nMUC6GQ'O\"D00/?5MI1-A!'\"+8RDW+<?(;1929EE(G$W78XH'S6<8<A=.M4=-@\nMC\\WW5EYR$7.0:8M)&\"%%OF5&9(U).A+?8]?\\LYM6^9%8F%.-K2=?=1]&Y&2'\nM^LU8&GOMX:-@4$I.)R4DSFT$W%DT'7D;D#WR)\">$8\\IE)IZ>H7=E)H<)YF)&\nM_M_YR66@]CEVHHA58GC@&&:485]94,74:&UUXCD+E,4%%A\";BT9X(Y`T,A++\nM64;VE\">J#.*FI5MBU;=HFKS0=@QB&UF8C3PM$K?KE)6MJ\"*4&;[:RZP;7I:J\nMG`)6ZE(<7:XY*70[N95/73\"T``Z=R&IKUZH8X=9>K&KZQXM[W7U['&2()8@H\nME7?1!NRC.5YIEI4Z2;HM,M,.4F)!.VX*(\"XCJE9MFWT.B1J^\"1,4UVXZ=ENO\nMIK=6:N\"FP@;J(:#H1OJ627V4B..U=NX8RX\\S647P;.4\"!NF/^]A*:K;2!-S0\nMJQ1;^A+*\"L_9+3R%%AEN=Z8.6UT3AZJW944U8Z9T_D[).7T2T5:B:6Q8%NJ+\nMKZBKB=?OE%(9T]IV1;4\\],$ZFQWTG[8=%[6\"_)83G)C7\\3@8*IX>IMTV7C9'\nM--*1?F&>2/\"UG.K@0O;\\9F*&SAFS7B&KN-F2!K^8\\]D`/ZMIHG!*[!S@N\"[6\nM9-Q!NPKCY%;G'6]*I((*M-'!T$TNW%B7.E?1_;(GHM!<<W8W=#/7,CC9GE;N\nM798?2=U;$[Z!_='?A/&=;IR&A^IR3E\"/,.W#TT><N9B<?ZSS@];>F9NW/U>H\nM=337Q7?F4D$R5CW,PW_>J[S!!;_T]QT5#_%V@2,?+/^>DSH654U6YCJ5Y+\"T\nM&=9Q:G:H\\AVUI(2D>AS-_D$WB]S7HG0U\\?EO3U6\"H/P.\"+K$X`IO?!*>4PR(\nMN;0Q\"6UJHA>)O*0X$+K):^GYEV*(P[@!A2DU6>.@D&SHC!ZFCT_84M6?BM7\"\nM$+JF>!W<7Q1:L[D(EL^`+0Q>Z71XGH[]BH!56PVV<!2B5D3-1-C;88WJ4L$W\nMO6\\L-_CA!8>(,8204\"T!8QKOU,9$HSQQCG^!50;OP[OV^>QY$M%AN/JF++OM\nMIV,O\"N3LU@@F6F70641,TO66,<`!>F&3=$02&(.X\"!!\"@UX?VAKZ-.27+F5J\nMCU74G@G])HOW3*Q<@K2D4O07PP!NC(P!^M7&^@.J7I*KDK8J$J/^HZW4T<&3\nM_EYT)D+T!$/PU()FN7)A'!M!.5=>+E-O.V\"N8#<2]8#(>8P4V#?71:D5!>ED\nM)D*E$WWT+!JI,VW+?-0M6,0\"?>JN=VSTSK[$YK8>%0Z#>>3FXF3ID?T9R6*Y\nME-Y3K\"B/K'RR;J3S62#!U`[YF&I@M&+HUYS4T=A)RX$\\9\"90HIG)?GZJ5MM4\nMDCUHB%!,(M.;['I0V%XF.C$P+($415Q\"#-G3RCB*F>ZTV!$39[S^70Y<LESB\nMI<`B@HJ>Q*.@%-BHQ(>S@@V3E#,=3[$`J;G,B$9XS'+7-]8UTJ0HT654^8.O\nM5*I0&#HJ=+6CX\"J3!2\"SHC$Z4E4!2CM)53U)KZ\\-_CJL7TWZ59HB,)G*6V'M\nMG\"K\"?>&QC5,<UB'15I6X)D>G5--0V,9F+D4Q;5Z]A*FNHHF*:SE3JV43Y2A1\nM^\\_7+E:@$169/P7IPD3:R92765Z<[A=%!:)D,D<=YVE=$[$=;+1,,;K7-:.*\nMDI1:H[5PY(EH:ZL,Q6JWB$OU3S@-EMGY3;%\\D,TM]_A5PC7QQU[`;==WDH<'\nMRTA6N:]\\:>.@H-JKL!81:D1L=Q&6W0`+Y79B[1S;CO58=6A,BFUM[&?A-]UG\nMMA.0N\"MI1AW\"SE;13Y[<)0\\T^ZN%_>JUL6DB<#5/1<?X,99\"2J5=0\\\\C7TDM\nM<I>/#(]NE&K3)^@-7N5`_B#>BGG))GK,N>-3<71A\"DW`[I>?!`(PBIN(%U3N\nM[E+)0U=8SWG,TF%&F845%V9QAYQG%G6+#PV9S#Z<YE>@$)*=&::9FDQB)W?2\nMFE'>V9'6%^<]>VZA2&Y,:*,54&*:;I=SC6P,R\\S%1?8QBX!:4%HV/&,#,_5$\nM<6:*G$6<RO_>>;L^;BIL^8)?.6;XCP73Y<Q`M[T8F[=DE&SK+Y[6#YP^]GK4\nMB]8W[_'I0?N0MDJF;C,U3>I1N_)Y]1S?D!5\"[//5.+*/U.TI#7P\\4Y_8=96.\nMKT8U4T!<SK\"LD-*PGL4+K67+C]SD+G8EVMMG@-EZQIV&R7N->.7OT=*<$%LN\nM_H\\4E;?.SLBMW90@RQQ\"X3+F&9+G?C?\"=>V)<\"^,U^]V-;6]K#(@\"RJXK2:K\nMZ7+*P%D34-O0+J2UZWE*:MHZ?`4_[,'MO)\"4HQ@Y%2888!I'TV)*S5_Q[/(9\nMQTHH5@O7C!WH>\"T-4Y^`R\\VK:>EWM;MZY(0SW<Z*UA%J6!Y\"-->1HY3%MLAB\nM56]Z]A;D.S6NQQG]QU6PJ>@D_W0!/<PUJ3<=X?SVMF';#FXJ0F1^XD3PN-Y9\nMV&K;DM#5:V>G',UM,FUW\"/SN,RF3+??%`W2>@F:\\-L%YQ^0F<-R!23`)%^3;\nMP+'7>D@W]0I)8[^X&Q-8/D;[K:\\*^=7S,>Q68;VR_B'\\8J8BK8]K[>!I:>WG\nMW&F[N?*:VPRQ`\\Y(?Z['96\\\\[),/;^&37OE1/_.?U\\+UL>=/A6U&]637R?%'\nM:ZG#.N4RM^;9XXI3V?GF+_TQS_^,,%$,$$3/'W@':DLI=CV)`5ITWFOO>/J6\nMW.'/I[VD?1Y_0,O%J!_C39*1&6!LE1:RO<;*$->%F!!#\"1YV@-U0,<9/L</H\nMQ=R@55!SN=P5$98\",ITDJ=D(`A0`YA7W89-8T1M>G,;RY1LP`9V\"A9?PM0[E\nML06'D<*N(>#^\\=4)WIG2!2%#X-B4>=3T34^TI1):B5)_Y%#O[<>_]*\"]M<T3\nM*I8PC1=<-,KIN-?2$6'+_CD6&)82]*7?$S:8UZD:&]5=9LW*K$%-5\"`%;J6(\nM4ZG5X]F8<<A@C06?#Q84[+'=&)I?D'64!T5<C*0:'C90ZP%:(PG@QX5$.MF<\nM\\=@.\\-G?!JK/WBR8E2FA8Z$,(&YB(*:,Q4'@Y$E??045)=X7M('%\")U7KDT<\nM]NV@E+7.\\5E.'QK>_GUB^)D@)1(<PC1?*+J8I<E1!F8>*G)4SMF&\"_J7#H[,\nM#+K/`QZ.%IH6:?5B]FD%R(C?#R+2%X+5UPG0-,Z6.`;CV?3<6/F:]NP4I%D6\nMU_50=OB4'L*AZ4U-$+$A$Y94T*5BJ1BC$,6C#[K/$7H7^=\"<*0ZBOZV=(K9>\nM_NP8'3EJV\"@&TS:*(8?]U+41H.4=D9]=US>:WL\\%(\"?BCY2)UXWAF9@IE-7Y\nMGAMFW.7QHG2DF\")*&]PP)%!A816R2T.2FDWRW,7IEM51&0!.9%X`#^VL$<=,\nMF$=.(03.(4&QU1VR(/HURS`ZXP\\68E,67E7&%D_BEQ_.XOM0TDUFE42:V7IU\nMXE\"^)'25W[Q!'.)1(_P\\3AEM7@.ZXQI:T`;-)3ZJ`NHQ)7X,6S<\"HU79(!`1\nM#]`YDAG`U55^Y5RZDTOYFR-BF%>.I=(XCDFA6<5AT2])55YB&2KZH5JVF<F1\nM%66VX,EAW0UNSK=$'J)M%68M(D\\1'RZB7?O0%PXA_B825J;CU0HN9HRX*1,`\nMK1FAJ5`6JIMPZN9N@1Z3#=;*0<Z0)*#..:-:B1;;<=X\\,,-G0!C=2>';S2!A\nMIA]M8F,!@B#&T`WOB>3P94MH6A70G%,';-A&2:48D4R%R1><Q5U%]F6=1&9>\nM?1`A6I\"EZ>)2-B,,4F=K<E8`/IW'^:4!UM+QW:(LFF3T;.0\">4\\#\\4ULXI_N\nMU1_\\$5G'C6/A-8Q>>2(2*HY\\[N?<:='Y*)>`\"A&#YN(S+DMW5LQ6?%]I<J'?\nMW:5U>@X11:-2XJ;3*)H9A:==)2\"%%=ANDJ'=J2\"('!Q^SHU]-AQ^$-O=<.$5\nM9\"=LOJC!R6A*.B+#=5U._I'ECH7173),1_I*:5I8TJSC/KU<$<))_^GB<_K=\nM:F+E0D:?N]7C7[J6A#@+<F7;EEHIDZXH\"$+5.3[F(DJGQGG?*[4E=D9<;RYI\nM\\0'D=&;H5G+H?>I=%M;IW$6DKF#@U!B(1FI5*Z;D5/*CG^I81&ZAHF*DEZ&A\nMIT(49(J\"Z/GH%S$J,G:-0K)DIEIJ5;%F^'T2U\"W?I!)6U>%HAU&=WN'JG5JG\nMJG&@GTH3<3'HZ:EIKT&98U9:SX\"I@[$GX&'I0.$><[*8D6*K:`K$-A59^9$J\nM6\"[H#9E9ANS>F:RK93IELS:<1\"'@=K8-C$5/3%$E6K7J\"!U>8RHH:.VH9T6J\nM_HSU'YXJ'%WAFTQ:(T3ZHR2.GAC^3G&B9_7-JXU(XHR&W9:]FF8ID-+U7%*-\nMU'I**3K5YG\\PH#>.J+=PIK]$FKTD+/+!HJ-)WH_>IL2AA7^&FO+QJ0\"-G\\D^\nM#F`^E]8L*R$NK.@UDHP>+(V-5ZGM+/7<%G+69K`6ZUX%&FI>ZX+)H7YRZHTH\nMIE6:I>*M7S:1X#4&+3@Z4L=*;*WEH,6VG_F\\86>%3IB5YZ`0JD\\.!2)>!4LR\nM:YJ=4)Z&;:T68[J`J021*YJBXR96K=P9;9,@G85\"3BG6U+2>&!H>V,]:CPKJ\nM:=2:#TM-+C4E%'K![*92;%S$H)*JDK?636S\"H]!._L'<RJSLC\"\"@HBWJ&>V$\nM.FTLH2CO=A[AE=;R9\"G%%23]B6\"3(FA@NF2V)J1#AE=)_EL`@>N%8>RV]*'/\nM?DG,&N']W*-=FET%MJBN\\LJMQ>DN(M:Y,2?%&E:[`EBY0J'JYEL><6Y([:KL\nM4J^HR8@V#N?)N%P'>ABGC2?5=I%'NE%\"3NX9IB-\"%JTF^FWYJAR:EDG#3A!N\nMOA-2T<_(S2_C*J[]%A%LSJ.]-DT<W@OES*=O29C<)FD97IPXE2U_#FHU0>W?\nM7C`+_^)OF>FW'<I#.ND&5V_:=J&:QA7'UMTNY\"R)&B)[R=\"\\*:7#Y*N?</\"Q\nMJJ9`&2DC4>0RDF))8$I4_NZPE=''[0JP^N`?QMF1:UX,V5'IYI)7*VGF7L;>\nM&ALLIDJQQ6;L9'TCIZ*P2$UJ!&MQ8GVP[YGP&2OG;,(@^OQ8JA8FQW;/ZMP)\nMZ*(O6)XB%\",OI2*K\"+9CZ\"FCJ.JQ$`9QM&)FY-+H:&;=;&T6D'V)MN:=B?$8\nMR@+O\\38O1<EA<LXP*&I,NS0:?!D3)A<;JK;G]?;QR$GG<UUA(O:PK)E3*5[8\nM]&FOFS6R5&[5U,4?K]\"R^-KR+<^46\\JC'P.L[RXE%F/MN!2SYA8F#4Z;)N[G\nML!+?ISHKK7UF*,*9-PO5QTYSI_DJ>*HMH&[J:0S8^&;E@/IPN[YBMKJ)JD(R\nM_GF!9@:?8$6*7/3\",#Q[8Q<#L99>,[$^7O;\\)OZ2F34;*_9EM+$6-,D!)$,J\nMM/W.YT*CVSQOJ^U>\\ZSNU77N'@!U\\&VZL[1-5$BJGNA&B6^.M(`MINJ!-$ZG\nMZP`WM/5J1IBN])_5WC#SGY9=&V4^6U%SKW0LL;-B91%;Z3V?ZQOW]/W2<Q!O\nMXZ)-K_QE'M9V]:*&\\$>AL0.6V&&\"ZI$FK@8;KR23HR`#<#/N(\\JM,E:?;13^\nM+NL^!XPDLP['*#_+[:\\^%1W^+;/`ITJ3[IZ2'D<G)EZ33Q!6]0&#VI)\"\\%O?\nM-6%6:4E[\\%X[$+[6+2H7%;P\\L1':]%U)<V/;*/GV_D7*22`@WTR7KEX&WDK?\nMN7`D\"30F#\\=1F_2_2B&QIBB;4I^4NJB#KBJO9=E!QDRHIC5-\"^LH[NU+\\32(\nM&3;YE36/LL352#<8YL$F_W`V=PK&K605*RTGR:+6ONHVK]5Z>:BQ9;$NU&6F\nM7K`Z=R9N#P_AKF_SI?9=$]GI;+5AGC#R'\"9,9M\\'0@]XZ<NE&JY=F=4*FR;Q\nM-\"])6N35#:1=5\\Y2,[@^R^]^$Z,)WRX?Y^5F_O%><W*$F5=`67:7IK%7:J;P\nMOFQ+UC==8I=]:7>5S61PL]1Y739FHV3P#7`(<W,+KO`7&[(K'XY#/>#'5A;*\nMVF)^\"O6#6]-\\>_99TWB-_BOPUAZX7]O7AK]17I]JAZ>6/9V:YPX7.,?G.,<V\nM\\Q9DJ%':*1.VFN=Q>%,Y@UBYV4YK-LD4C.^WAWMW@<_C8KN9,6O@HO8;'0NU\nM_!+<'8OYQ(&?]Y*N=C/CX@2HCA/.(#?@BN-96V\\Y5YXTY+J>=\\ZVT]J=&<LF\nMG5Y2ULS>=TEY$W/GD;KLID.J6_?N*R]6\\=+)J7\\R+&NZHV>N.J$D2)958NMI\nM=].@+&/Y$L<K%-THI+<I&>N1-:ZVX,ZZ;>$MA-OUD,&1`>LZN'$Z/YOT'SO7\nM/].SKVH.6%LZ7:?X,5XU-^?H:W/Y<)=WZL6Z;)QOI5YC'(G*_RYG<VN[PG;J\nM_G>7[J'QEO/RX*!/]/5)KDV>RS&*]%PSL9O_#O8:\"UHFJU3/K)QJ.6A?8;S=\nMN0D.,;]W]')W,CW&VB*+C@?K<B*S=.XZ)IVO;D(YZD&AH.L1NCI#7K\"N3T&C\nMN81W+P)__(-S,5<W%:P=A2D!+6ZY6K('=W#\"WU)XTM9XD8.:.JZ*=HA5O5'5\nM$)>O:5;AL4H&<+/]9WQ-IL]'GL!Z.;>)9VF;3(&\"6G'+I;,5X!0;Q^O98BLJ\nMNDQ\\X)*1N\"O/^8MGO;077$]Q%YJ+<9R/?>0XS.\\.(!].`S(/>Y_RW=&CL\"[E\nM<'%M4MRT%Q5JGF?\\G-5WOM.[9D$1?HV_(S%S8C5'_N*Q?.;I&CXS,U`Y-<^A\nMOHN$T;;E2'GGBO.-@W-@U9IP(OA5\\Y'N6[[G0SV)U72:^Y_,Y73,W6UJ*F[*\nMRWENU^D>YB%4<P\\WRJJT$J3)U=O3P[UD4EHZ$[C(A1CC]\"@^5?WY6ST0+0L_\nMCFTDOVND/R+U<RN9PJZS,SGK/U\";]\\W'C/K;6RL!(,\"T/+U^J#$*Y9H9!]ZM\nMNS#Q^1;)ZTQE!3<#]=X4GFF1Q2-<+2MSV@6%PR\"0&!KQ5!?.*/*!,EFZY8J*\nM/&:U6V[7^P6'Q>.L!F0TDUS-9[)5?;_;%\"D=JXM6V\\8CFIYN>:(!M!,<E!E$\nM0414Y//!FH)<<MRB_#(K_@J9^XED8[Q1JV'#VS-44KLA4UUE;75]A=VQM./D\nM#-U+\\LO55#JM2^V=Y*VSZ(&#R^/3/6P:*GUA;*R)EHZ9)0[<];GJB[5T+!Z>\nM(_$,=5I+?:9*_HUU?X>/[Y:OS/F#1L6E')>]L_JOA:V0O5I7=*E2]F\\30%!K\nM8,A89,-:(WR/CDF*(P<CO8L*?VA8Z''BKD3E((ZBN,%<1XXM7;XD$@X/L(WT\nM])&T-4PDK3.T2B1L&#`@R(Q:KA55.8.@/I0E1U8CES(.D'U!>1F#R;)G.%_%\nM)HZJ@/*<.ERYRF9%FU8M36'`CL9$:H4HN;%\"YW:ZJO&GQ64,!Q(58^SMV8PR\nM_D]6P^=4F@N>F.P6Y7J4JBNLV:`UK$KWEL.HGE0FMI;3Y%K2I3D:%EK3&P.E\nM)D-6Q<M3H[T>@#U^E\")8IVF=)9,^G`;V:\\5VSH3,-/WVGK_(23_)E*@NFANQ\nMGGE?QTZFV4U3_(Q#4G[/-;_)!GN1#V;535L]XO.&[^?2<&?@3:EI#BY;*[)(\nM?N'\"@@^GC@R)ZB-!(O*JE-`0/\"D[!Q_D@KO<T@.OC$I<*P@)K(`BJ+^VN,GK\nM/0V7FS\"D^%XJ+SA1*@*.FO4N.4Z_>5:S<!W,NK*/NQS#^BT%T5J$,$@AEYIP\nMJ!$]K$>U$W#*(Z<BT]GF+^:.1!*@<>[:+TO_P+B+_IGZJGMJ16X\"/(;,*2F+\nM,$3'MBF0P.<\\ZRXQ4(2[;$@[[Q0M1\"4[#*PL\\V9C*ST.;6PG(?20PV1,ML#)\nM\"HTVQ_LL-#JYPK.5P4BD]\"KT>(P3@G+$VJJZ2D<E]<%-Q2E4(-O@I)+1XMIC\nM9T1SS.SO(%IQ%(6B3U6,B$4MPS#S5N/\"0]3)\"N-D@D!6.]61P5*?Y:U)!Y&S\nM2,E9#@JFV+UZ0M6J3&'DTBVCY.K,0,[D_#2UTBI#*$E4)ZN20M0VF75!$9N!\nM-E]]PX5Q)@ZWRM-&>`7U;\\UN82N//W>^&=>)7-')-<%E]TQ+V!.[:3*?J;CE\nM44\"O?!5XI7U')AF>-<T#_E$U0`@-:M4257TQ4!35C3\"ZPWH$F>\"X3!:HW6]K\nM/<7$?FXU5$3+:\"XYZ5(-_@]F/VJCCB]CBQWH:\"LS]*7:EBS.X2NF'%9P8HIY\nMEE$[:[%^^>)7+<M,&Z.Y5CKN2@?FLVRZC61/8<>:RSD*:66>&?`:O69P,?PH\nMK#@;N)^4[,:4B2S;'X`%S/!QN2_?-U@H3X6:Q*Z6H[8W#PEI^5<A%UN2K'2M\nM0SQQ8;C^6))#G[QZRQ>56QQSW;&#KZ\\B?:>RS$<H+5H_EN>-LD+3[13S0#<G\nM%9GI=<W.<V@C_Z9-1K['8'=W[TFC%3;K14\\42IIM\\TG<W]U;WV^.Y[;!K!RE\nM_LLM=^Y'O_^FY/VEG=\\-T[[;]P1HJM<QB3/S`0KI,$(Z>M$.1-1:F?D@.#;X\nMM:9!SL,06)!V.>_XCFK7\"-_:6&&_`98P1AN+SY\\T)BO(82-T(A3>;=A7&6FQ\nM0V\"D:HJ/\\`.5]:#F=,\":G#;P%:MXD`E])D2B?!H3M6<`#%X?Q%_RTG:[*4&-\nM>+6KG.R6!S[HH4LS#G&<`#?UP'<)#D\"_Z-X6D[C&53P1:Z3H6[;21RBZ/4XW\nMNZE>U1HX1L^-2B)>/,QX0L;&8<U0C4K<(\"$5::GA<8M_V]N-]\")XK/,$+VH$\nM*YZ4$MDPM0@'CCE<71A).\"17G8@0H[3)(E5)O03>_BN,4TN?VY:X-ELU4G24\nM!(FVS.C'!=''DZ`ACGI6F:9A%M.8F<BC_MBSK1LM4'(%.Y)N)JFGUIV&D;/S\nM)2`A>4SQ5?.8WTPB%$]EOBQ&DX5(>DTSW2C%TO&/@A`\"$GT\"R2)W6@Z<\\;IG\nM/K]7-/VY$U.F!%T0Y;BW#KE,0K5#)8J4THE'7?)?^H1H1,$903\\Y:5O8.ED,\nM\\P88OMVP2VC$(P[1E2P$M>EZ6I-H2E6Z1O>U$X\\*/!ZLY&A+2[Z1-<@49K[H\nME#U[?F>E/P6J&&'9SUO^$VTTG2G[DEI.Y*TS<QK<21K_D]\"@5M6J:/D9`HU:\nMMW/RJ7R,:FD]M2A#JC;J_I!IDNI5U;I6WC%)0@;[*\"TUF3>C(72.QL);'^=V\nMF;+NC*U_!6PG%?>Y)I)S'HH:GW<&2UBDT;%_*>UK8\"4[V1G%;&(-U,LY!Y8P\nMQ!:P<S%M:2RY2EG2EM:TX2+J(Y4:(.!EKYF:Y\"B@^+C-T];6MJ<5)]O,8KM6\nM/9.Q>.V<'F%9M9VE];;'1>Y*PQHPRG&.DPR+Y00W9U%O56\\^R<5N=M7:2A52\nM#J?6S:Q8R[=`9BI,2P0]JW;5NUZY[;&B%=UM#>/RPL4R\\[K,E=K+;A@S]O;7\nMOT+]''4/FAJ,6JV*ZAKO'?]40.7E-[+_A7\"$UP*=@]GTO@D#:5<K&9N!MD^8\nM_IO]D.>,*V$2EQB>^+4A29/Q/[7E5ZF]%2Z1SI*Q3(S8Q#?&L5EG5SI1VM2P\nMZC.OY<\"ZI`Y[$V\\I[E:.E;QD1.K7E?#%)D/(6%?.!EA*/PL:3=:YEP`RV<M?\nM/N-R':M:EKT6IPS#<I&#RS@M^M.\\,`1SG.5,S-FNSX\"A3>PRJ>A$-;TV913U\nMZ3@C-V=\"%]J9<67N03_:.$M*E\\%E)\".+^4Q#1QK:TI<^<`==>&<_Q^:S(M9L\nM5(],X`.GL(?CPW2JE^PRII+/@&?J;(7QJCRJ]?%IMZ$*9F>39E7WFL2QDF\\6\nM%4NON^TWH#+%,IZON.59<UFT>O5UM-7;RD2[4I9#_IS<0Z'XJEN'MJ<P`X^C\nM66UC:9>;LE@*MCI7R]AE%]2<LHUQ+9$G7/K2&'$/-G>^5<E`#U?[U!E`6;/5\nMK>>+'O79((;O7*478F,Z3]\\/[X)3$^Q2ZG9ZO_76$UQUMCV#^L7;+93E/14+\nM<9+7.,/V[9BBS?QQ74H:2Z'6<UVGFUG^7DO8;`13,$L.\\5J+]]I,]+$X\"^[J\nMF#KMV6SNL>0&U>=!LQ1D0MMYM)E]RK&V?--\\+>>H,UX(3UEXJ#5%>7G+K/1)\nMAU.;_(WZI8==:K]MI]5(;F37#U1Q:5K;J5%,YYK16YRE;Q)S.QIYVJ6-\\@T[\nM&\\I'C?)C&`[<GG7TU&VN_N2:&8]A62,QE%`7?*$/'WFO^WS1#-ZQE1/URTFI\nMQXT)]R!=(<-AW7KO80OY=N9OK/<H1;K'<I>B^YI#U*-]/H-E-'W<>\\:Q&0.-\nMG9:_X,]E+^>OPEB(5^<CD35T874Z=IZ2XM5H=.G;MF%+RDOE\\SX]\"?OT+C^Y\nMW9VDXT_N4-R<(,J'4O#T+]B:6[PWR6)57\\#1\"=O\"[&XX;N\\R\\XLPRJ,F_&N^\nM:ILFQWLKF,LF72&<%=HSM-D[+\"*_&(.\\OW,XV,,\\`3R_JS,Z#&LB,@,@3M.T\nMS<$L'5&62)F5K^L\\X],_IANNO&NO^ANYV.-`Y**VF?(Y<#L\\'Z(ZH$L]WW!`\nM_C'1LO?A,>*;I0R;M9#:I<2!&T'SKAO$K1%LM5<20=X3,-S0F.*CGP6D/PM:\nMP=^K.`TS)YO;B&^QMW<Z(S3YFBK#-RE4I+:Q0&\"[/Z;K.I>:%^T3,`H#I>=X\nM$\\0K*E9+E:O1M0V<.#5<0Y0*#%+S(3B4+$130O8KP3J[+DW+%$\"S1&#ZHB',\nMQ%'#'@(LP0:CLO[CK<#)'4%K1$<$K.:CO$.\\PIO;OBR<D^<CO[`IJ5WYO1U+\nM-W*B-#LSL*S#L\\!I.G#ACX]Y0U7<)PEDO$9#,=`)'?LC05AK/^?8H=_P-^D:\nMLP93E+';NG<#L0%J*'XJ/V1<)83#)'4#0??`ID?2_L7?P4+H$94O'\"DZC+EU\nMDY<D_,8->ZGI>0>-LS)R!*K8\"JBA:T;V>SXK!$*Z@SXP(3TPM\"4ZM\")\\$L2B\nM6SRF.48O0*5J++B+!$B2^<$W:T'=*\\-K?+5,%$EB&#\\PNCP)JD.]ZD00BB*-\nMRC:_RQPP4DB.[,BEB3=TE#7[4T!)Y#1:?#7,\\!HP)`S#,L>L41M(7+\"7(S?7\nM\"Y1TS,E\\HCYER\"B+^C2/<C*K4SGUNRF'B92ZN!*OFZ(##,H@^S\"Z(@R<[*05\nM1+6I_*;B&3<4VKWM&SI,'$%*/(<[>!0BS*V@^S[)\"S0C$Y<C\\BNXS$EGHSG.\nM4ZT]>ZLK]$)?N;TKVT3I_J@U'MRZ(:-\"\\3$VLL,+!4),<DS`G^LY@\\3#A#S(\nMU`(^ZDN'_-C!0AS$FUL]LJR2IH0VEF#+T,PQ@IJX('RRJB2.5XQ,)&O$/5))\nM75.\\\"QRO<Q1,\\/(L900<Z-+-J(NKP,M+U'PRCP$ZB(%%!'REFRD]K^PVW=I%\nMK;-!F2DO0CS,Z2RY[F+,(DPQUAPPX>3.>;,ZJ=F,L#//BZ`O=^NF\\<PJ7GP;\nM_)F@W&3/<UN4ZE)+H5S+:-S*U*P+)RO,]@,X[IPY(4.Z`9/%%S.>L;JD_1G,\nMG1C'`[VM[C.D[*2XIHI&^C3)G$G(B]JIC;PR@6.T2WD,UA$:C).KYKI-\"350\nM_A)=I.K\\RMWS1EM8KI+,FO?S-_[+S).Z3XH$/G6LL+4#.YY2S_B4C;Y#*D0$\nMTM*\"KL;,0I%\\QJ\"<NS*=3`_32L.;18($J2/]S%_Y1D1!MZC<#_%<TS,9T/[L\nMTD?,-,RD1]AD4*'<RUR<1>TLT$`4OGF#P9`#+_WK19D$4>ULO-;C.U)+CCU-\nM1B,+O1XL2)^<3'_QU+\\$QCYSN$B2(0Y=QBQMCYE432WEJ*X<U1:4U%/=FNQ<\nM0$RUIL#\\MTVS4\\]#TE#=SFV+K30-U%^=R3P:R/[I3&A\"IGRDL8\\T3<S4'D!I\nM(XRT4B[D4ERU'N\\S41&\\R>IZS$#U5(?B2E*5S:ML_C=]%,?Y<K4I.E,B[4Z@\nM-%1*C46WRU93J\\0U%5:*:T(L\"DTYG\"Y1+<Y)!<K<\"L/ZK+V$!4Z[NM-.Y$E?\nM)%84*B1`W\"CH\"]8V5;-WXSXX(T:0,]?&_+A;$M6.3$5[@L9PA5#=Z\\(5;<8[\nMQ$MC?:%;4\\+_@3O;.[V#K%@63+_3O,X`RR1(?`5[TTL(U4<ZHU0!G#K0`TPU\nM/4GG<DLBS:#A[,YM>[N`K32R:RU9?4B))9Z8U<%*RY@K2J:6Q3IJRA]_?4_<\nMP[^IE1^Q],7VK,<3'=?(K!.3#%<Q1,AXG41)O;NZA=@D2[I0+,UA);B_;54I\nM[4:[`ME=N]<S$U'?L]\"D_KJ4N1Q3DG/5GK18^70;%HTC6.59D@S)@GVL9%NL\nM_7O8\"57.O$(?X\"0/4+5)X</*#V4D9'7;=U38VONBI^.Q4R1,[?+!8X/(<X79\nM\"L366_753PI=-XO8)$U.;BL[]\"O2=`0TGM7+X%5=LL1&LSU;-WQ0YV*X.&59\nMD+16EOPO5['/GIU/JS5.EGW-S47)>85<EI.^6DJ5L7M66IM2]71<Q:S7[O5.\nMJ8U6-,'8SIVY6.5#D@C%?OV.JD2]O[K$(SRVAQW.293:)P6WU%'(L<U&/[&]\nM_/M%)*S:B03A^KE'BH6C]\\RKM(79QFW6/137G.I;=B1@7B,F'DW#'TV:Z4W6\nM_O-54>;]WQ4&5KLS2-6$7[WM*L*K15,51<Z#W>>T5P4I6Q7%TI<4U*,<(79[\nM4:S]UGHAX&%\\KE;17!\\=T;_SL2'N4R3%NGP5T_@B4^^44F7*UP_-WIVDP+I)\nMO?W$+UQ;U9LUS;TM5^.%SH2\"VC8>P[O\\82SDEXJ%U\\T[H6$RWPZUVJ5%7]`E\nMU+$DHD6639ZTW@WN/52MLNV,6YUAH3)K1Y5#34.^3M[;0)]QJPSVON0=RAYM\nM&-ZD2QA3X^.#P:>,EK$E2N&]V\\`MR4KFVQ(QY0R<Y,K[3@=S7J6T0-\\\"WC$,\nMM2DN2UD<Y`E..C*\\XO!U6\">-+R]$3HJY7YI#8L#M_L4I6RI=7ICF#3;%'#@_\nM)EMBTU?JW5T4_6-;[3<KEJ_E?+QT1<.--6/,)60#S+I&Q5D]O29M3LL\"H]OB\nMR^:(M#,QB])4C-04GLVR8A=_(M;^!=;%!63.+65(B]WU-;A+EF1:9E+5LYV^\nM$^C\\#=.5BV9H%J\\Y/<$Q-KE;U<;]U:^.+L6:!ESGS=K0'>5;AH(R?=KSE#%[\nM?F`9/>1)UL,VK,\\&EF)P_4#&:#N6+M;5C6B,U<_A&^!PCL@XMDM@ON5YEM!T\nM#E]W;1K+W-LQIKJUU6`(WEGBW.<415L]YK!-'M<Z/%BASN)?YF!YY>3!;5+,\nM'=,*7+^!%=]5%=&9W4]._D;</^VMQ%NQ9C;K4JI68O;?LW7I:J$M=.55MF7=\nML5AH%_V1>^[&^[7DSVYIRVS;32U;ZI7K4JWF=G)#UW;!@0Y@;TU4_!VLT0Z_\nM-;:^Z!-N>3A)FK92%R7`R_;`]#W43([J++XSCG9.2`IK$*W<=UUM$@S#+@1K\nM\"8KMARYD0Z+/#DN1W*4I@C3'C-KH+6[-0S7L+:P^N*XICRP[5*T'3HW@NGM%\nM@O;F\"*U@(%8Q-I[B.A-P2F9?!![FSU;2B_WNH>#KSOL;##I\"9L-/.[2^43Y=\nM]SU?]^UJSRQ:I8G?)4R2CW3GW_7@J/YK4T;833SPD_6N\\>[K%2YP=C3FL);N\nM_G\\>;XX38TYMZ_SL%2:660\\V0@+'2Y<5-1PG8;X&;B;THY?69[12[`+\\5@K%\nM;+K^Z^AN$!Y]Y\\R>K1MN94!^:NV>X2W_:.P67D\"$Z,!C16N4;7(&:8';U9N-\nMXR7]P?NZZDY3/!P&EZ\\FV`#DSYB#5UB62U?VW__N;W(%[$@^TH45TJ:MX+V.\nM\\1:]6,#\\9THW$5)`P><A7WYK9ZH>Z3B'/(,EZY6-1=6V<]QQ)EFNZX!A<2B=\nM$6Q]O.?L8_>+]!;?RAHOU&81<V-.V5->\\=JU=<^MY^+]U\"B^[32>YZ-464TO\nMO98<S>3T5NYE]#Y'2`!D[SD%Y35&\\V.?5I&(6(,V_MJ.&^KO-'(G1FX5;BK6\nM7N^5,'0V9G`&_>AVE_=\"?^%V$W9E9%ID_O+NB#Z-!:W-I+=4WEHW5?`0EG6G\nMG6\\CC,#[N1=57L]/5C_0Y%PM+&('M69AOOA@G_#LAG&AGO<<IV<RG?,ZPF*,\nM1KO\\'+_F007GZR'C%,@;9UYKSV,3_\\DWNCCJD%,5DY3DXU5>EW\"4-W;\"\\[@*\nMIV*!QW=J+G92+^WN_GCK@G0?QW(4_WBGUFF-=_$'+UH^EL$4/QP,LMWZK4*C\nM.\\V(3]C?>GF2!-/@7=[-B%!U#CX$O_KO:N2;?^,.K_6I_]5VAWMZ!_#_5?=Z\nMMWJ-7VKD1=CK9>)L-^VN_O>E+FIJU/WN</ZZ_G9Q3;;XJ2[BJ/5TR)9Y-@'Z\nMI]=J\\M9PN=7C%IUV;Y8[JC=TOYYF[=MKME_WP)=W'M_Q._?HD53V!_T17.Q<\nMPV%WL%U--`7^F;;IOVQ'Z);1XZ6GONGANHSZ+@;3/>'?N9;,L79=6\"4]E53^\nM&<_IO1]MU?=^0VUZC/])DQ==JL?]=;;8Z&7S'!JILUO&!DU0.1ZJ#:=_ZT;H\nMTE=*C)=7@V>*$)S0N24`)):XVLX0I28GI`]8??OV76@L(%:*THE]9JN@V=&J\nML!C/;)1[;L5L'!;.$;R1#C)DDO1B+D<C6[\"2J0I]N>)ERMUZNT,M%_@5;\\6X\nM_J<S3`:C0+Q5NXH-_^YCO#N__]+2.H&!:48427T:$U`IB'^.A(]PD),\\?X6,\nM?G,K6)AH64<OBTBA2D=+AXN),EEF'YF-H3V3;9B/5WN)J9%KF[\"?AJ)0)EZO\nM>B6*>)UZ6LO)E+K/-7`UP(=KRKW64\\Z1T8#0VFHTW8S>.C<6<2G.J594IJ:Z\nMUTX1@YGE9YUTO^C/5K>]6+'#IHZ2I4I$[LD+%K!,'7RTS*'1)I'0I1DG)!W;\nM*%&?L5L(.68<9I#AN%\\<+Q)$I)((,DV-1I4J)0\\>O\"@A03:4PXW/QVPD^?7,\nM*5!5R7!#R@$5)$H-*7,(C;;KR%/6RF/56IXB.?)D_C>AL>9AS!I2!55OX\")J\nMG*6P;;JPM`3)5(*1ILPH9'?F*P+0JA\"??CWZM>A6V`\\PP:S9$KS/WM-5`Y<\"\nM)I=VI+^K1Q_C0GHM;U14@D6R#<R2,N1J-@ZBY(HN--A*G%K%70CJYIM3=+=B\nM[@%QW<3&BF0!/[W;;$Y]D.@E%EUK\\NW*'7O#\\AJYT'#2IC5V%JM9M>FQQK\\Q\nMS9X6.A/KF+\\S;_55^ER<<^_F=DJ1?FODL1D?=\\6Y'42CX;4''5[D+,:7=.#4\nM9F!^LBDEV7C@=0>>6UYQI5Q_2+UEF7IH58AA5:*5!!55OKFGDS+K'8:/@K4U\nM08I<\\[U'X5E#3?9;C2;R_F+@:H09XIAJ0+G2W79JC2;@/.=]9V0T'(HC7H<2\nMIAAA9\\G]J-*\")+)WT8-%<8A2/#,M1^!AAEF8U!PU`K&3EE;:TR)H768)(7TI\nMS?BFDP%*AMYT@+WD$!_\"%6C>A#2.>$<Q(KZ958^\"=C4EEY0!^I$Q!?F9\"Q67\nMXC0F:/54)E^3-C;3#QV.$KD6J#@R^1B6EDXSYJ#[!2D)I)[)VJ.AC+Y8*V?>\nMG2GG-R0ZXF%%.$9UYG^DE;E/<(1>:,1Y`/9AY:TZ+:H0:Q]2$Z*?XV2T74\\`\nM\"7M61#SNV:\"6():IY*F>4?<DJK_NY^:C\\+8)K(Y9,ML5<2ZHR6RFF&K7+YZ9\nMP?&+H&NN[9E>E,D%E:J4SBJ8;'6*(4ED40JC2Q0V<1[+HS3OTHO=DK,J:J^9\nM\\,;4+L/R:H58GG9N9NF_SPZX3+2M5EOI2W\\UH]3#16()],O2)@AKL$-^^)L<\nMK1']3DM+!TJK6*6BUG\"J'I\\4\"\\LAB^1UKAP#'3;),D^Z:U(WDTM>?Q@#>?#,\nM8%\\6-#\"V_MFQMJ9FO)I<V.KE=*9QCNURB57=ZBC2(:\"88(AU$AMEO9YJFS-<\n0]L;ZY[6@LL*75&U^40``.^KE\n`\nend\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7991, "properties": {"category": "comp.graphics", "text": "From: joshuaf@yang.earlham.edu\nSubject: Re: TIFF -> Anything?!\nOrganization: Earlham College, Richmond, Indiana\nLines: 15\n\nIn article <1993Apr23.033843.26854@spartan.ac.BrockU.CA>, tmc@spartan.ac.BrockU.CA (Tim Ciceran) writes:\n> There is a program called Graphic Workshop you can FTP from\n> wuarchive.  The file is in the msdos/graphics directory and\n> is called \"grfwk61t.zip.\"  This program should od everthing\n> you need.\n> \n> -- \n> \n> TMC\n> (tmc@spartan.ac.BrockU.ca)\n\n\nTHANKS!  It did work, and it is just what I needed thanks...\n\nJoshuaf\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7992, "properties": {"category": "comp.windows.x", "text": "From: m91nen@tdb.uu.se (Nils Engstrom)\nSubject: Re: compiling on sun4_411\nOrganization: Department of Scientific Computing, Uppsala University\nLines: 15\n\nIn article <Yfo=qfe00WB2QzZ7EZ@andrew.cmu.edu> Wilson Swee <ws8n+@andrew.cmu.edu> writes:\n>_sin\n>_cos\n>_pow\n>_floor\n\nLink with '-lm' (math library).\n\n>_get_wmShellWidgetClass\n>_get_applicationShellWidgetClass\n\nThis is a bug in Sun's shared libraries. Linking with\n'-assert nodefinitions' should do the trick.\n\n\tn\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7993, "properties": {"category": "sci.med", "text": "From: proberts@informix.com (Paul Roberts)\nSubject: Re: Too many MRIs?\nOrganization: Informix Software, Inc.\nLines: 11\n\nIn article <1993Apr12.165410.4206@kestrel.edu> king@reasoning.com (Dick King) writes:\n>\n>I recall reading somewhere, during my youth, in some science popularization\n>book, that whyle isotope changes don't normally affect chemistry, a consumption\n>of only heavy water would be fatal, and that seeds watered only with heavy\n>water do not sprout.  Does anyone know about this?\n>\n\nI also heard this. I always thought it might make a good eposide of\n'Columbo' for someone to be poisoned with heavy water - it wouldn't\nshow up in any chemical test.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7994, "properties": {"category": "rec.sport.hockey", "text": "From: kozloce@wkuvx1.bitnet\nSubject: Re: Atlanta Hockey Hell!!DIR\nOrganization: Western Kentucky University, Bowling Green, KY\nLines: 18\n\n> Someone give SportChannel a call (or maybe Ted Turner).\n> Wasn't USA network covering the playoffs years ago?\n> \n> Jim G.\n\nOh to be back in the good old days when I lived in Florida (Florida for\nPetes sake!!) and could watch hockey every night as ESPN and USA alternated\ncoverage nights. Oh well I guess it would be too simple for the home office\nto look back into their past to solve a problem in the present...\n\nOf course I shouldn't complain. At least I'm getting to watch the playoffs\nfor a change. (Hooray!!) Now if the ESPN schedulers will realise there are\nother teams except Pittsberg in the Patrick. (Sounds like a Dr Suess Book\n=)\n\nKOZ\n\nLETS GO CAPS!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.380+0000", "event": "documents", "entityId": 7995, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Fundamentalism - again.\nOrganization: Aiken Computation Lab, Harvard University\nLines: 19\n\nIn article <khan0095.734814178@nova> khan0095@nova.gmi.edu (Mohammad Razi Khan) writes:\n>One of my biggest complaints about using the word \"fundamentalist\"\n>is that (at least in the U.S.A.) people speak of muslime\n>fundamentalists                                  ^^^^^^^muslim\n>but nobody defines what a jewish or christan fundamentalist is.\n>I wonder what an equal definition would be..\n>any takers..\n\n\tThe American press routinely uses the word fundamentalist to\nrefer to both Christians and Jews.  Christian fundementalists are\noften refered to in the context of anti-abortion protests.  The\nAmerican media also uses fundamentalist to refer to Jews who live in\nJudea, Samaria or Gaza, and to any Jew who follows the torah.\n\nAdam\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 7996, "properties": {"category": "sci.space", "text": "From: dragon@access.digex.com (Covert C Beach)\nSubject: Re: Mars Observer Update - 03/29/93\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 33\nDistribution: world\nNNTP-Posting-Host: access.digex.net\nKeywords: Mars Observer, JPL\n\nIn article <1pcgaa$do1@access.digex.com> prb@access.digex.com (Pat) writes:\n>Now isn't that always the kicker.  It does seem stupid to  drop\n>a mission like Magellan, because there isn't  70 million a year\n>to keep up the mission.  You'd think  that ongoing science  could\n>justify the money.  JPL gets accused of spending more then neccessary,\n>probably some validity in that,  but NASA  does put money into some\n>things  that really are Porcine.  Oh well.\n\nI attended a colloquium at Goddard last fall where the head of the \noperations section of NASA was talking about what future missions\nwere going to be funded.  I don't remember his name or title off hand\nand I have discarded the colloquia announcement. In any case, he was \nasked about that very matter: \"Why can't we spend a few million more\nto keep instruments that we already have in place going?\"\n\nHis responce was that there are only so many $ available to him and\nthe lead time on an instrument like a COBE, Magellan, Hubble, etc\nis 5-10 years minumum.  If he spent all that could be spent on using\ncurrent instruments in the current budget enviroment he would have\nvery little to nothing for future projects.  If he did that, sure\nin the short run the science would be wonderful and he would be popular,\nhowever starting a few years after he had retired he would become\none of the greatest villans ever seen in the space community for not\nfunding the early stages of the next generation of instruments.  Just\nas he had benefited from his predicessor's funding choices, he owed it\nto whoever his sucessor would eventually be to keep developing new\nmissions, even at the expense of cutting off some instruments before\nthe last drop of possible science has been wrung out of them.\n\n\n-- \nCovert C Beach\ndragon@access.digex.com\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 7997, "properties": {"category": "sci.crypt", "text": "From: WHMurray@DOCKMASTER.NCSC.MIL\nSubject: Licensing.....\nOrganization: Yale CS Mail/News Gateway\nLines: 49\n\n\n>This thread brings up the more general question.  Can any crypto\n>implementation for which highly publicly scrutinized source code is not\n>available EVER be trusted?\n\nAfter IBM had invented the DES and the NBS had advertised for proposals,\nbut before IBM had decided to respond, I argued strenuously that they \nshould not; they should keep it proprietary. \n\nThe biggest proponent of proposing was Dr. Lewis Branscomb.  Dr. Branscomb\nwas the IBM Chief Scientist and had come to IBM from NBS.  Fortunately\nfor all of us, Dr. Branscomb understood the answer to the above question\nmuch better than I.  He realized how difficult it would be to gain\nacceptance for any cryptographic mechanism.  Because of the necessary\ncomplexity, publicity would not be sufficient and neither would \nauthority.  In fact, it has taken both of those plus more than 15 \nyears.\n\nWe have also had independence.  The DES was solicited by NBS, invented\nand proposed by IBM, and vetted by NBS.  It has also been examined and\nvetted by experts like Adi Shamir, who are not subject to influence by\nany of these.\n\nEven now, there are still people posting on this list who do not trust\nthe DES in spite of all the time, all of the analysis, and all of the\npublic scrutiny.\n\n(Of course, it is just this point that NIST misses when it attempts to \ngain acceptance for a novel mechanism, developed in secret, on the basis\nof authority alone.)\n\nWe had a long thread here about whether or not the NSA can \"break\" the\nDES.  That is a silly question.  At some cost and in some time they\ncan \"break\" anything.  The important question is at what cost and in\nwhat time.\n\nThe fundamental strength of the DES and RSA are not nearly so important\nas what we know about their strength.  As long as we understand the\ncost and duration for an attacker, then we can use them in a safe way.\nAt this point, we may never replace either because of the inability of\nany successor to overcome this knowledge gap.\n\nDES and RSA are among the most significant inventions of the century\nand the most important inventions in the history of cryptography.\nWe are damned lucky to have them.\n\nWilliam Hugh Murray, Executive Consultant, Information System Security\n49 Locust Avenue, Suite 104; New Canaan, Connecticut 06840                \n1-0-ATT-0-700-WMURRAY; WHMurray at DOCKMASTER.NCSC.MIL\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 7998, "properties": {"category": "comp.windows.x", "text": "From: matt@centerline.com (Matt Landau)\nSubject: Looking for updated XView textedit source (w/d-n-d support)\nArticle-I.D.: armory.1ri2o2$3hm\nOrganization: CenterLine Software, Inc.\nLines: 28\nNNTP-Posting-Host: 140.239.1.32\n\nThe XView version 3 source distribution included in the contrib section \nof X11R5 included the source to the textedit program.  I'd like to take \nthe sources and modify them to add support for a ToolTalk-like message \nserver, and maybe for ToolTalk while I'm at it, since the Sun-supplied\ntextedit binary doesn't seem to speak tooltalk.\n\nHowever, the sources in the R5 contrib area seem to be for an older\nversion of textedit than the version shipped with OpenWindows 3.  For\nexample, the OWN 3.0 textedit includes drag and drop support and a \ndropsite in the main control area, while the source in contrib/xview\nknows nothing about drag and drop.\n\nThe textedit.c included in the xview sources says it's version 15.50,\ndated 5/22/90, while doing a 'what textedit' on the OWN 3.0 binary says:\n\n        textedit.c 2.62 91/09/14 Copyr 1990 Sun Micro\n        dragdrop.c 1.26 91/09/14 Copyr 1990 Sun Micro\n        tooltalk.c 2.16 91/09/14 Copyr 1990 Sun Micro\n        ds_relname.c    1.7 91/09/14 Copyr 1990 Sun Micro\n\nSo, does anyone know if the 9/14/91 sources to textedit are available?\nI'd really like to work from the latest source if possible.\n\nPlease reply by email, and I'll post a summary if there's enough \ninterest.\n--\n Matt Landau\t\t\tWaiting for a flash of enlightenment\n matt@centerline.com\t\t\t  in all this blood and thunder\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 7999, "properties": {"category": "talk.politics.misc", "text": "Organization: City University of New York\nFrom: <F36SI@CUNYVM.BITNET>\nSubject: Re: Most recent U.N. members?\nLines: 4\n\n   # 179 Czech Republic  # 180 Republic of Slovakia  They were admitted early\n      this year.  Liechenstein was also recently admitted.  Also San Marino.\n       Both within the last 12 months.  Incredible what passes for a nation-sta\n           state nowadays.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8000, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: guyd@austin.ibm.com (Guy Dawson)\nSubject: Re: IDE vs SCSI\nOriginator: guyd@pal500.austin.ibm.com\nOrganization: IBM Austin\nLines: 35\n\n\nIn article <1qlbrlINN7rk@dns1.NMSU.Edu>, bgrubb@dante.nmsu.edu (GRUBB) writes:\n> In PC Magazine April 27, 1993:29 \"Although SCSI is twice as fasst as ESDI,\n> 20% faster than IDE, and support up to 7 devices its acceptance ...has\n> long been stalled by incompatability problems and installation headaches.\"\n> note what it does NOT site as a factor: PRICE.\n\nThere is a premium of approx $200 for the controller. What is nice is \nbeing able to run hard disks, tape drives, cd-roms and scanners of\none dma channel and interupt!\n\nSCSI makes sense is you are going to load up a machine, if you just want\na standard box for Windows then IDE makes sense.\n\nI have one loaded box that uses SCSI and run Unix and one standard box\nthat runs DOS/Windows that uses IDE.\n\n\n[ By standard I mean - 486, 4-8MB RAM, 200MH disk, S3 video ]\n\n> int eh same article the PC would will get plug and play SCSI {from the\n> article it seems you get plug and play SCSI-1 only since SCSI-2 in FULL\n> implimentation has TEN NOT 7 devices.}\n\nI beleive this last bit is just plain wrong!\n\n> SCSI-1 intergration is sited as another part of the MicroSoft Plug and play\n> program.\n\nGuy\n-- \n-- -----------------------------------------------------------------------------\nGuy Dawson - Hoskyns Group Plc.\n        guyd@hoskyns.co.uk  Tel Hoskyns UK     -  71 251 2128\n        guyd@austin.ibm.com Tel IBM Austin USA - 512 838 3377\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8001, "properties": {"category": "alt.atheism", "text": "Subject: Re: <Political Atheists?\nFrom: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 47\n\nIn article <1993Apr3.212139.14076@blaze.cs.jhu.edu> arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n>In article <1pj9bs$d4j@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>>I would say that one innocent person killed is in some sense\n>>as bad as many.   We certainly feel that way when we punish\n>>someone for a single murder.\n>>Now if we reform system X, by reducing the number of deaths\n>>by one, we produce system XX.    I'd say we should not go back\n>>to system X, even though by doing so we would re-introduce only \n>>a single extra death.\n>\n>Bob seems to think that one is as bad as many in a sense somewhat stronger than\n>the one you indicate.\n>--\n\n  Yes, I do.  \n\n  My argument is that the sole purpose of the death penalty is to\n  kill people.  That is it's primary (and I would argue only)\n  purpose.  To continue to kill people by a practice that has\n  almost no utility, especially when you know you will be killing\n  innocents, is unconscionable.\n\n  At the very least, the existence of the prison system and our\n  transportation system are based on their merits to society, not\n  their detriments.  We are willing to accept a few lost innocent\n  lives because there is an overwhelming benefit to the continued\n  existence of these systems.  One has to stretch the evidence and\n  the arguments to make the same claim for capital punishment.\n\n  Just in case I wasn't clear again:  We maintain a capital\n  punsihment system that kills innocent people and provides us with\n  no net positive gain.  Why?\n\n  Were you to pin me in a corner and ask, I would have to respond\n  that I don't belief the state should have the right to take life\n  at all.  But I won't open that debate, as it seems others are\n  tiring of this thread on a.a anyway.\n\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8002, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ted@isgtec.com (Ted Richards)\nSubject: Re: pc-X\nDistribution: usa\nOrganization: ISG Technologies Inc. Mississauga Ont. Canada\nLines: 43\nX-Newsreader: TIN [version 1.1 PL9]\n\nTo following up my own note:\nTed Richards (ted@isgtec.com) wrote:\n: Al DeVilbiss (al@col.hp.com) wrote:\n: :\n: : It looks like everything works as advertised but I am disappointed\n: : with the speed.  I'm using an Intel 400 internal 14.4k modem in the PC\n: : with Telebit 14.4k on the Unix end, which are currently limited to\n: : 19.2Kbits by the Unix com link. To get a quantitative comparison, I\n: : did 'cat file' where \"file\" is 20 kbyte uncompressed ascii text, and\n: : it took 75 seconds to scroll through an X window over the modem link,\n: : 270 chars/sec.  Using the identical hardware and Procomm+FW the same\n: : \"cat file' takes 11 seconds, 1820 chars/sec.  BTW, I use NCD PC XView\n: : on my PC at work (HP) every day for the same Unix access from a PC over\n: : a LAN and like that just fine.  The same 'cat file' scrolls by in\n: : ~2 seconds on the LAN connection.\n\nI just tried a few experiments. I cat'd a 20261-byte file (471 lines)\nunder various scenarios:\n\nPC-Xview for DOS in a full-screen OS/2 window (1024x768x16):    18 sec\nTelix (DOS) in an OS/2 window (1024xs768x256):                  107 sec!\nTelix (DOS) is a full-screen OS/2 window (standard VGA):        11 sec\nTelix (DOS) in a Windows 3.1 window (1024x768x256):             30 sec\nUW/WIN in a seamless OS/2 window (1024x768x256):        gave up after 4 min!\nUW/WIN in Windows 3.1 (1024x768x256):           faster, but gave up after 2 min\nUW/WIN in a seamless OS/2 window using pg       30 sec, could have been a\n                                                little faster (I had to keep\n                                                hitting the space bar)\n\nI was using an ATI Wonder XL video card, by the way.\n\nSo PC-Xview for DOS looks pretty good (and the line-by-line scrolling\nin OS/2 desktop looks pathetic, although full-page redraws are pretty\ngood).\n\nI tried it under PC-Xview using my normal (9x15bold or 10x20) font,\nand with a very small font, and there was no difference in the times.\nThe modem receive light was on pretty solidly, so it looks like the\nbottleneck was the 9600-baud modem, not the screen drawing.\n\n--\nTed Richards            ted@isgtec.com             [...!uunet.ca!isgtec!ted]\nISG Technologies Inc.   6509 Airport Rd., Mississauga  Ont.  Canada   L4V 1S7\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8003, "properties": {"category": "talk.politics.misc", "text": "From: gemmellj@merrimack.edu\nSubject: e-mail to the hill ??\nOrganization: Merrimack College, No. Andover, MA, USA\nLines: 4\n\nNow, that Clinton can get e-mail, i'm wondering if Congress is also\ngoing on line.. If so, does anyone have the address to reach them??\nI'm also looking for Bill's e-mail address.\nplease e-mail me, i am not a regualar reader of this newsgrouop.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8004, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: russell@alpha3.ersys.edmonton.ab.ca (Russell Schulz)\nSubject: Re: 16550 UARTs (was: uucico for windows)\nReply-To: russell@alpha3.ersys.edmonton.ab.ca (Russell Schulz)\nOrganization: Private System, Edmonton, AB, Canada\nX-Newsreader: rusnews v1.03\nLines: 14\n\nturtle@west.darkside.com (Fred Waller) writes:\n\n>> 16550s are _not_ stupid!  \n> \n>   Actually, they are, in the sense that hardware solutions to \n>   a software problem are not proper.  A programmer's function \n\n[much deleted]\n\namazing.  I could not find _one_ reference to waffle in all of this.\n\nfollowups redirected out.\n-- \nRussell Schulz  russell@alpha3.ersys.edmonton.ab.ca  ersys!rschulz  Shad 86c\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8005, "properties": {"category": "talk.politics.misc", "text": "From: dreitman@oregon.uoregon.edu (Daniel R. Reitman, Attorney to Be)\nSubject: Re: Traffic Case\nArticle-I.D.: oregon.5APR199315572465\nDistribution: world\nOrganization: University of Oregon\nLines: 20\nNNTP-Posting-Host: oregon.uoregon.edu\nNews-Software: VAX/VMS VNEWS 1.41\n\nIn article <1993Apr5.140934.876@colorado.edu>,\n ajteel@dendrite.cs.Colorado.EDU (A.J. Teel) writes...\n>\tThe [McDonald] case was dismissed in the interests of Justice\n\nOn whose authority do you have this and on what grounds was it \ndismissed?\n\n\t\t\t\t\t\tDaniel Reitman\n\nHOW NOT TO WRITE A DEED\n\nOne case involved the construction of a conveyance to grantees \"jointly, as \ntenants in common, with equal rights and interest in said land, and to the \nsurvivor thereof, in fee simple. . . . To Have and to Hold the same unto the \nsaid parties hereto, equally, jointly, as tenants in common, with equal rights \nand interest for the period or term of their lives, and to the survivor thereof \nat the death of the other.\"\n\nThe court held that the survivorship provision indicated an intent to create a \njoint tenancy.  Germain v. Delaine, 294 Ala. 443, 318 So.2d 681 (1975).\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8006, "properties": {"category": "alt.atheism", "text": "Subject: Re: Ancient islamic rituals\nFrom: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 33\n\nIn article <1993Apr3.081052.11292@monu6.cc.monash.edu.au> darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n>I propose\n>that these two trends -- greater level of general depression in society\n>(and other psychological problems) and greater sexual promiscuity -- are\n>linked, with the latter being a prime cause of the former.  I cannot\n>provide any evidence beyond this at this stage, but the whole thesis\n>seems very reasonable to me and I request that people ponder upon it.\n>\n\n  Damn right you can't provide any evidence for it.  \n\n  Rarely are any widespread social phenomenon reducible to such a\n  simple premise.  If they were, psychology would be a hard science\n  with roughly the same mathematical soundness as physics.  \n\n  Your premise may well be right.  It is much more likely, however,\n  that it reflects your socialization and religious background, as\n  well as your need to validate your religious beliefs.  Were I to\n  pretend to have all the answers (and I don't), I would say that the\n  xenophobia, guilt, and intolerance brought about by adherence to \n  fundamentalist religions play just as large a role in depressing\n  the members of our society.\n\n  Your mileage obviously varies.\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8007, "properties": {"category": "comp.sys.mac.hardware", "text": "From: DJCOHEN@YaleVM.YCC.Yale.Edu (Daniel Cohen)\nSubject: Re: Interesting ADB behaviour on C650\nNntp-Posting-Host: yalevm.ycc.yale.edu\nOrganization: Yale University\nLines: 20\n\nIn article <1993Apr15.181440.15490@waikato.ac.nz>\nldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes:\n \n>I've noticed an interesting phenomenon on my Centris 650. If I unplug the\n>keyboard and mouse and plug them in again without turning the power off,\n>the mouse suddenly switches to about half its normal movement speed. I check\n>the \"Mouse\" control panel, and there's no change in its setting there--it's\n>still on full speed, the way I like it. Restarting the machine restores the\n>normal mouse speed.\n>\n>By the way, it happens with both the newer-style mouse that came with the\n>Centris, and the older-style mouse from my IIfx at work. Thus I don't think\n>it has anything to do with the resolution setting in the mouse--it's\n>definitely a quirk of the ADB interface (either hardware or software) in the\n>Centris itself.\n \nI have noticed this exact same phenomenon occurs with my LCIII.  Perhaps it is\na quirk of the new machines?\n \n--Dan\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8008, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman 03/14\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nKeywords: bmp, wallpaper\nLines: 958\n\n\n------------ Part 3 of 14 ------------\nM\"`@(\"`@(\"`@(\"`@(\"`@(G.3DY.3DY.3DY.3DY.3DY.3DY.3DY.2#IJ:FIJ:F\nM@^3DY.3DG.OKZZNKJZOKZYSDY.2#IJ9$B-RYB(C<$!\"(H#YM.LISRG-SV#HZ\nMRG/8<]C*<VW8.MC8V#K*RLIS.M@Z<]C*<]C8V,HZ.FW*.MAM<W-S<W,Z<\\IM\nM;<J6<]@\\RD%M<\\IM\"`@(\"`@(\"`@(\"`@```\"\"$Q.\"`\"MAFYN;/JZ(N;G<B*Z@\nM/IN;\"I\\7]1>?@0H*FYN;FSX^/J\"@KJZNB(C<N;FYN;:VN;FYN;FYN;FY/#Q%\nMW3S==]W1W3S=17?=/$5%=]UW147117?=W7?==W=W=]W=T7=WW=W==X6%W=UW\nM0(5`0-W==W?==X710-W=A4!WW=V%A=W==]U`2=U)=]UW=W=W=]U`W2/=A85W\nM0-W=A=V%W=%`T=UW0'?=T87=T7=W=T\"%=W=WT='==W=WA=W1T7?=A='=W=%W\nM1=W=W7<\\T=W=W44\\/-$\\1=W=W=U%=T5%T=W1W=W=T3P\\/-W=/#S=T3Q%/-$\\\nM/-%%T=$\\W3S1/-'=/-U%W3Q%1=W=W=W=/-W=/$71/-T\\W=T\\W45WW45%W=W1\nMT3Q%W7?=1=U%/$7=W=%WT=T\\147=145%144\\1='1145W/-%%/$5%W471T3QW\nM=]'=T3P\\W3S=/-W=W7<\\/'=%/#P\\/#S=W=W=/#P\\T=W113S=/-'=/$5%/$4\\\nM13P\\T3S=17-%<Y9%T=$\\199SEI;1/$5S17-%<W-M<]B6EMB6ECS*<W/*V',\\\nMV-AMV,ISV,K*V&US/,IID89I.I&1:<<OQ\\>1D88OD6F1RI'*D<HZRCJ1.LK*\nMD<K*V)'*V#K8.LK*V,HZV-C*;3J1.CK8+R_8V$$ORCK8.LK*RLHZRD$ZRH;*\nM.I&1+\\II:9$Z.FF1AL?'QVDZD<<Z.L=ID2^1QY&1D34UQ[^&QS4UQ\\<L'L<L\nM++^_'L<L?;]]'BQ]+\"Q]771]75U]+!XL?;JZ?;)=NG1TLL)=NEVZPL(FNK*Z\nM7;I=NKJZ&ET:NET:NKH:PKIRNAIR)KJZNL*Z&B:Z&B:ZNB8F)AJR)EVZNKH:\nMNB9=LL*Z7;JZNB:ZNG1TNK*ZNKJR71Y]?5TL77T>?2Q]++HL+#4L+\"PL-35]\nM+#5]-2PU-34LQ\\<U+,?':<>_-<<UOVEI-<=I+Y%ID<>&AFG'QSJ&:9$ZD9$O\nM+Y&1AI&1.I$Z.LK*.I$Z.CHZV#K*.M@Z06UMRMC80<K*V'-!RG-S;3IM07-M\nMRG/8V,HZ<W-M<\\J6EG-!06T(\"`@(\"`@(\"`@(\"`@(G)R<G)R<G)SDY.3DY.3D\nMY.3DY.3DY.2#IJ:FIJ:F@^3DY.3DG.OKJZNKJZOKZYSDY.2#IJ9$B+FYB(B(\nMN1`0KJ\"NRLIS<T%SV,K8V,J6V#K8V,K*V-AM<]AM<\\ISV'-S<W/8EFU!0<IM\nMRMC8.G-SELK8.MC*<\\K8<]C8;7/*<\\IS;98(\"`@(\"`@(\"`@(\"(*\"`(03O(0`\nM`\"L1FYL^/JZ(N;G<B*Z@/IL*@9_U]9^!\"@J;FYM\\/GP^/CZ@H*ZNKHB(W-RY\nMN;:YN;G<W-S<W-S<T471145WW45%=SQ%=W?1W='=W=UWW45%=W?=1=W=T=%%\nMW85W=]W1T=V%W7?==X5`A7=WW=V%A=V%=]V%T4#=0'?==W=WW7=WW7=WA=W=\nM=TEWT85WW7>%0$!`W=V%W7?=W=W=T=U`A=UW=]'=0-'==]'11=V%T7?1T7?1\nMT7>%=]&%T471T47=17?=W=UW=T5W=W?1=W=%=SS=T=%WW=%%W7?==SQ%=SQ%\nM17=%W7<\\/-W=/-W=/-T\\W3S=W3S=T=T\\W7<\\T471=SS=/$5%/'=%17=%T=U%\nM/-UWW=T\\/#Q%T7<\\W47=W=UWW=W=1=W=W=W=17?11=U%1=W=1=W=W=W1T=%%\nMW=%%W45WT471T7?==]'=A46%1=UW1='1T=UWW471=T5WW=W=1=U%=]W=T=%%\nMW7?=/-W=W=$\\/#P\\1=$\\/#P\\W44\\/-%%W3Q%T=&61=%%/)9S13P\\ED5SED4\\\nM<W-S<T78;3S8;44\\<Y9M<\\H\\<]C8V'-SV#S8RG-ID6G'D9&_+\\?'+\\=IQSK'\nM.CHZQX8ZD3J&ACK*RH;*.B]!.CHZ.LJ1.MC*RCHZD2_8D<K8RLHORI$Z.CI!\nMRCHZV-@Z+SK*0<K*.LK*.B\\ZRI$Z.I'*D6F1RFDO:89!+R\\O.I%I:2^&Q\\=I\nMD<>1D9&1QY%IQ\\?'+,<LQ\\?'+,<LQS4UORPL+#5]OWUT+'0U'C4L+,+\"75U=\nM7<)]+'TLPAY=PGT>?72Z?5U=PKK\"PEVRNK*RNKH:PKJZNB:RLAJRNKJZNK)=\nM&B8:7;JZ71HF)AJZ7;)=LEU=7;I=NEU=LB:Z75U])EW\"75U]7;I=NK*ZNKI]\nMNGTL+'UT77U]'BPL'BQ]770L?7TL?1XU+\"P>Q\\<LO\\>_-2PL:2S'-8;'QS7'\nMD<=ID6G'+\\<O:3K'QY$Z:9$O.B^&:2\\Z.CIID9$Z.I&1+Y&1.LK*RLHO.LHO\nMRCHZV#IM.CK*;<K8.G-SRMC*RMAM<SK8.G/8;=AS<\\K*V`@(\"`@(\"`@(\"`@(\nMG)R<G)R<G)R<Y.3DY.3DY.3DY.3DY.2#IJ:FIJ:F@^3DY.3DG)SKJZNKJZOK\nMZYSDY*&#IJ9$B+G<KJZ(B(@0B*ZNKLIS<\\K*V,K8RG,Z;<K*RG-SV,K8V,IS\nMV#K8EFW*V,ISRCI!<]C*<\\ISRCISV'-SV'/*.D%MV&W8V&W*ELK8R@@(\"`@(\nM\"`@(\"`@K`+R\\@A.\\@H(`*Q$1FYL^H*[<N;F(KJ`^/IL*@1?U%Y\\*\"IN;FWP^\nM?#X^/CX^H*\"@KJZNB-S<N;:YN=R(B(B(B(B(W=T\\/$7=/$7=13S1=]U%T7?=\nMW=W=17=%W7=%T='=W7=%=]W1=W?=W7?=W45WT45WW7?1=W?=W=U`W7=W=]UW\nMA=W=W='=T='==X7=W=W=T=W==X7=A4\"%0'?=W7>%=W?==]V%W4#1=X5WT85`\nMW871=]%WW=V%W=W1T7=%T=W==]U%=]W=W7?1=W=WW=%%1='=17?1T45%144\\\nM=W?1=T4\\1=U%W3S=/#S=1='=T=%%W='1T='=W7<\\W7?==]'=T='=T47=T=UW\nM13QWW7=%W7?1W=UWW7?1145W145%=]W117?1=W?==]W1A=W=1=U%A87=T7=W\nM=X6%W7?=T=U`W7=W=]W1W86%=]UWW7?=W7=W=T!WT=&%=]UW17=W=W?=A=UW\nMW7=WA='==W=%W7=W147=1=%%W7?=W7<\\=SQ%/-W11=W113S1T=T\\T3P\\/);=\nM/#S1<W,\\/#QS/$4\\T6UMV$66<SQS1=AS/#S8V'/8/#P\\<]@\\;<ISEG/*/,J_\nMQVG'OS7'AH:1QY%I+\\>1QX9I.FF1:9$Z.FE!:3HZD3J1RI'*D3HZ.LJ1D=C*\nM03HZRLI!RB_*.CHZ+R\\Z.CHOV)'*V-@Z.CJ1RCHZV-A!.B^1RCHZRLJ1.LK*\nM+VE!.FDO.D$Z.CHZD<<Z:9&1Q\\=ID6G'Q\\>1:<?':35IQ\\?'-<=IQ\\<L-2PU\nMQRS''L<L+\"PU=\"Q]?;]T?34>-7T>?5UT?2Q=+\"PL'GVZ=+I]?7VZ?<)TNKHF\nMLK)=)KJZ)K*ZNETF)KHFNL(F)G0F7;HFLETF7;I=PKJZ729=NKITNKHF)KJZ\nMNKITPK)=PG2ZNKH>LG1]71ZZ=\"RZ?;H>72Q]+!XL75TL+\"PL+'TL+\"PL?36_\nM+\"PUO[\\L-2PU+\"S':2PLQ\\?'QVG'OVF1D6G'QVEID<?'AI$Z:9%I+VDZ+SII\nMD2^1D3HO+Y&1RLK*V#HZRCK*.M@ZV-@O.FW8<W,Z.LHZ.M@Z.D'8<W/*RFUS\nMV,HZ07,(\"`@(\"`@(\"`@(ZYR<G)R<G)SDY.3DY.3DY.3DY.3DY.2#@Z:FIJ:F\nM@^3DY.3DY)SKJZNKJZOKZYSDY.2FIF5$B+G<KJ\"NKJZ($(BNKJZ(;99S<VT\\\nM<W-SV-A!ELK*V&W*V'-MV-ASV,ISRI;8<T'8RLISRLISV$$ZV&W8RLK*V#HZ\nM<SK8<VUMV,J6\"`@(\"`@(\"`@(\"```@A,3O!,````1$1$1FSX^KHBYN=R(KJ`^\nMFYL*GQ?U%Y\\*\"IN;?'P^/CX^/CX^/CZ@H*ZNB(C<N;:YW(BNKJZNKJZN1=U%\nM1=W=/-'=1='=W='=W=U%W45WW=%WT7?==]UW=]U%=W=W=]UWW=UWT=W1T=W1\nMT=W==W=WW7=W0-W==]UW=]UWA=W=T=W=W7?=A='=W7?10(7=0-'==W?=A87=\nMA='=W7?=A7=WW=W1W47==]'1A7?==X6%W=UWT=UWW7?=17=W=]W=T=U%T=U%\nMT45WT='=/$5%W=UWW7?1/-W1=T5WW=UWW='=W='=W4711=W=T=%W=]W==]%%\nMT47==]'=147=W=%%W7=WT871W471T=&%W=V%W7=WT=UW=]V%W7=`T=V%A=UW\nM=]V%=W=WW=W=A=UWA4F%0-U`=]V%W7=WA=UW=T!W0(5`=]W==]W==TEWW7=W\nMW87=W4!`0'?==T#=W7=W=]W=T7?1A86%=W>%W='==W?=W=U%=W=WW471T47=\nMT7?=/#S11=$\\T=T\\W3P\\ED4\\W=U%<SQS145%/-'1;7-%ECQM/&US<W,\\/-B6\nMRCS8;99S<W.6;7/*EMC'Q[_'-34L-6EIQ\\<U:;\\UAI$OD6EI+R^&Q\\<ZQVF&\nMQY$Z:6DZAFG*.H8O.I$ZRLHZ.I$ZD2\\ZRB^1.CHOV,HOD2_*D3K*+SHZV#HO\nM.LK*+R_*+\\K*.I$ZV$'*+R^1D<K*D2\\ZACJ1:6F1AI&1.CIIQY&1+Y%I.FDO\nM+VF1:9&1OX:&QS61QVG'-;^_O\\<U+,<LQ\\<L-<?'+,>_?7U]'BQ]-71]-34L\nM?2QT72PL=!Y=NEVZ='UTNBQ]NKHLLG3\"NG2Z'KK\")GU]NKJZ)K)]PEU]NEVR\nMNEU]LEVZNGVZNB:Z?;JZ75VZNEUT?;I='G2RNEU]NBP>'L)=71ZZNGVZ='TL\nM+![\"?1XL'BQ]-7T>+'V_+\"Q]OWTL+,>_+#4L-2PUQRR_O\\=I+,?'QX8UD#`P\nMQ[]I+Y&1QVF1QX:1+\\<ZQVEI.FDZ.LHZ.CK*RI$Z+SK*RLJ1D3HZ+R_*+Y'*\nM.CK*;6W8V,I!.FW*RD%SRG/*V`@(\"`@(\"`@(\"`@(Z^OKG)R<G)SDY.3DY.3D\nMY.3DY.3DY.3D@Z:FIJ:F@^3DY.3DY)SKJZNKJ^OKG.3DY(.FID3HW+G<KJ\"@\nMH*\"NN8B(KHBU<\\K*RFUSECS8V,IS/,K*<W.6V$%S<\\J6RG/*/,ISV,ISRG.6\nMV'/*V#ISV,IS.FW*<VW8.MC8EMAS<P@(\"`@(\"`@(\"`@(80``O!,3$X(`*Q$1\nM$1$11#Z@KMRYN8BNKCX^FU:!@1?U%Y^!5IN;?#X^H#X^/CX^/CZ@H*\"NB(C<\nMN;:YW*ZNKJZNKJZN/#Q%/#S=W=W=/-W=145%13S=W7?1W3Q%=]W==W=%T45W\nMW=%W1471T45W=]'1=T6%=T7=T=U%T='=T=&%T7=WW=%W0'?=W=&%A7?1/S\\_\nMFJ[=(]UW17>%A46%=W>%W7?=A7?=W=W=W7?=W7?==X5WW87=W=%WW='=W7?1\nMT=U%W47==]'=W45%W45WW45%W=W1W=%WW7<\\W=W117=%/-W=T='=147=T45W\nM=T5WW7=W17?==]%WT=&%T471=X5W=X71T='1W7?=T4\"%T=UW=X5`T=W=0-UW\nMW7=WW4!WW7=W=X7=W7=WW=UWA4!WA=V%=TE)=]V%A4F%=X5WW87=A4!)0'=)\nM0$E`=T!)285W=X6%27>%A7=W=X7=W7=)A86%A7=W=]U)W=W=287=W87==]W=\nMW85WW871T='1=]UW=W?117=W/-%W/-W11='1T='=T47=/#P\\<]U%/'-S17,\\\nM<SQM17,\\;7-%16USV):6/',\\/&T\\/)8\\/'-S<W-]OWTL+\"PL'C7'+#4L+,=I\nM-88UD;]IQ[_'Q\\=IO\\=ID6EI:<<OQVEID6EI:2^1:3HZD<K*.I&&.B\\ZD3HZ\nM+SK*RCK*.B\\Z.M@Z+SK*D9%!+Y&1V#HZ.LHZ.B_*.I'*.CHOD3HORB_*+R\\Z\nM.CHZ+X9I.B]I.L=I.FF1D3HO.L>1.L=IQR^&O\\?':9&_Q\\?'AFG'Q[_':<?'\nMQ\\?'Q\\?'Q\\?'QRS'?34LQ\\>_-34U+'TU='U]+%TL+\"Q]PEVZ?2Q=='U]+\"PL\nM?;I]NL*Z77UT77VRNGVZNA[\"NKI=7;IT'KH>='0>?;I]7<*Z?;JZNGVZ'EVZ\nM?1XLNGUTPKI=?7W\"NGU]+\"S\"=%TL?1X>-7T>=#5T+\"Q]+!XL-7U]Q\\<L'C4U\nM-1XL+#4LO]34`FYND#!\\5I1@]5$UD<>_Q\\?':<<OQ\\<OD89I:2\\Z:3I!.H:1\nM+\\HZ+R\\Z0<HZRLK8.LJ1RCHORMB1V#K8;=C8.LH(\"`@(\"`@(\"`@(\"`@(\"`@(\nMZ^OKG)R<G)SDY.3DY.3DY.2<G)R<Y.3D@Z:FIJ:#@^3DH>2AH:$-#:OKG*&A\nMX8.#94A*2DK3YKF(KCX^/CZ@$!\"(B(@0/&W*EMAM<VUMRLH\\RFW*V#QM;<K8\nMV-AS;<IS<VUS0<K8EFW*;<K*<W/8<\\ISV,K*RFW8;6USRCIS\"`@(\"`@(\"`@(\nM\"`@(80\"\"$[P3$P!A$1&0D)!$2DI*TRXNT]-*2DA(<*&AH0T-#2>A@YN;?#Z@\nMH*\"@/CX^/CZ@H*ZNKHC<N;:YB*ZNH*\"NKJZN/)8\\W='=/-W11='1T=W=W='1\nM/-%W1='==]U%=SS1=]W1=W=%1=%%=W=WW=W=T=%WW='=1=W==W=%=W?1T=V%\nMA=W==T5WW2C-!`0_/S]YI(B(W+FYN=U%=W?=T7?1=W=W1='=W45WA7?1=W?1\nMW=UWW7=%T7?=T=%WW7?1T7=%1=T\\W3QWW=U%T=%%W47==W=W=]W==]%%T45W\nMT45WT=UWW=W1T7?==W?1T7?=T='=W=V%W7?==]&%W=%`W=W=W=UWA4#1=]V%\nMW=UWA7=WA=U`W7?==T!`=]U)0$F%W=U)A4E)285`0-UW=T!`A4E`24GC27=`\nMA2-)24!W27?CA4EWA7=)0$E`(^.%=T!)=W=)=TF%=X5W27=W=]U)A4EW22-)\nM=TEWW=U)W85WA4F%=T!W0$#=0(5W=]W1=]'=17=WW=U%1=W=1=T\\=]%WW45%\nMW3P\\W='=W98\\EI;1/-$\\T7-S<SP\\/-%M<SP\\17-%V#QMEG.613P\\V-ASV)9]\nM'G1=-5TL+#4U?7U]ORS'Q\\<L+#4LQRR_OX9IAL?'Q[_'QY&_Q[^1D<<O+\\<Z\nM.I%IQY$Z:2]!:3J&.I$O:3HZ:<HZD2]!.CK*+SJ1D<HO03K*RI'8.CI!.CHZ\nM.I$O+SK*RH8ORH;*RH:&.FDOD4$O:9&10<II:3J1.B]I.CHZ:3HOD3II.I$O\nM:6F&AI'':9&&QY''O\\=I:;_'Q\\=IO\\>_+\"PU+\"R_-37'-<?'+!XLQRS'-2PL\nM'BQ]?36_+#4>+'T>-35=+\"Q]'GW\"PAXL=%U]75UTPGT>?;I=?<*Z++IT?1YT\nM'GU]75U=NL)=NEW\"PGVZNEUTNAY]?7VZ'EU=77T>=\"PL+\"PL?2PL75U=?34>\nM+'TL'BPU++]T=\"PL'C4>QRS4U-34U-34`FYN$3!\\5E9@]5%@S#=65C7':<>1\nMD9%IQ\\<OQ\\<ZD<=IACHOD6DOQSHZ.CHZ.H8Z:<K*RI&1.CJ103K*D0@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(Z^OKZ^OKG)SDY.3D$8.#@Z&AY)R<Y.3DH:&A@X.#\nM@X.#H>2AH:$-#0VKZYRAH8.#941(2$K3YN;3H#X^FSX^B!`0B+40;<IS;6UM\nM<Y9SEG/*RG/*RLJ609;*ELHZ;6US<\\K8.FTZRMB6V,ISRFUSRG/*<]C*<W/*\nM;=C8\"`@(\"`@(\"`@(\"`@(\"`@(80\"\"$X*\\A!&0D)!N2DI*2M/3TR[3TTI$1'!P\nMX:&AH2<-#0VAH>%P&$A(2$B^ODA(OKZ^2DK3T^;F+N\"YB*ZNH*\"NKJZN/$4\\\nMW9:6/#Q%/$5%/$7=T=U%T=T\\/#P\\/$7=W=U%T45%T7<\\T7=%=]W==]W1W=W=\nMT=W==W?==]W=185WT=W==T4<'#DH*\"C-!`0_/WEYB-S<N;FVMK:YW*ZDW7?=\nMT7?117=%=T7==T5%=T5WT=UWT='1T47117=W1=U%1=W==T7=W7=WT7?=T45%\nMW=W==W=W13QWW7?=1=W==]W=T7?=T7?=T7?1W7=W1=V%W7?=W=UWA4#=T4#1\nM=W?==T!W=]UW=W?=W87==W=W24\"%=TF%=T!)27=)0$E`A4EWA4!W=TGC0$E`\nM24GCXT!`A4E`24!W0'=W=X5`X^-)0$EW=^-)A>-)X^-`2>-)A85`XT!)XW=)\nMA7=WA85)=TEW0.-W24E)0$E)0$F%A85WW=UW285)=X6%0-U`W=UWW4#1A=&%\nM=]UWW='1W=UWW=%WT=UWW='1/#QWT3Q%/#Q%<SS=/-T\\/$71EG-S13P\\16V6\nMECQ%145S/$5%13Q%/'-]'KH>+'UT?7U=+%U=?1Y]+#4L'K_'?;\\UQ\\>_-<<U\nMQS5I++\\UO\\<UQS7'D<=ID6G':2_'QY&1AI&1QR\\ZQVF&QR_'+R\\Z.H8Z.FF&\nM.B\\OD<J&+SHZRCK*RH8O+Y'*+SK*RI$ZRLJ&RH;*RI&1RLHZ09&&0<K*+VF1\nM:3HZ.FDO:3HZD3J1.I&&D3HZ.B_'+R\\O.B^1D6EID9&1QVG'OY%ID<=ID;^_\nM-<<U-2R&QVG'OVDUQVDUQ[\\L-1X>'AZ_+#7'-7TU?7V_=#4>?35]'BPL='TL\nM-70>-5U=-2Q=PBPL75U]'BPL+!Y=?;I]75UT+!Y]+\"Q]7;I=?;I]'KJZ+'UT\nM'BQ]++K\"+%T>?5U]?5U==#5T=#5]734U=\"PUU-34U-34:]34U-34`F[9$3!<\nM5I1@]5',-U965E967%Q<D<>1Q\\=IO\\>_Q\\?':2]IQSK':3HO.FF1QR^1.H9I\nMD2\\ORCH(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\")P-#0V<Z^OKZYR<H:&#\nM@X.AH>2<G)SDY*&AY.2AH:&AH>3DG`T-#0VKJZL-#:&A@W!(2M/3YN;32CZ;\nMFSX^KH@0M;40V&T\\RLIMRLJ6V,IS<]C8<SS8<\\ISRLIS<\\IS<W/*;7-M<VTZ\nM.FTZ<W/8V&UM.FW*RFT(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(80\"\"$X*\"`&%N;FX[\nMT]/3YN8N+N;3T]-*2DA(<(.AH:$GW@VK#:'A<$A$2+X[.SL[.SL[YBXNX.`N\nM+N;3TTI*2DI*2DI%13P\\T=&61=W1<T66/-'=/-U%1=T\\W=$\\1=W=W3Q%/$5%\nM17=W/-'=W45%T=UW=]UW1=U%=W?==]'11=U%*\"@H.1P<.2@H*,T$!#\\_8GEY\nMW-PBN;:VMK:YB*ZS?)M6-Q?=W7?1W7=W1471W=UW=T5%/'?117=%W3S=T=W1\nMW45W17=%W45%/'?=T='=145W=W?11=W1W45%=W=%T=%W1471T=%W=W=W=X5W\nMA87=W7=WW7?=W=W=A85WW7?=A4EW=TF%24!)0-U)0'=)=W=`285W=TGC27=)\nMA4E)0'=)0$GCA85`XTE)XX6%X^/C285)2>/CX^/CA4E`24F%A4GC0$DCXTE`\nMX^-)24!)0$E)XX5)A4GC24E`XW?CA85`XTE`=TE)XTGC24GCXW=W=W>%=TE)\nM=W>%0'=)W4!)W7>%W=U`A7?=W7?1=]W1T7=WW=%W1=%%1=W=W=$\\1=W1W44\\\nMW=U%19;=T45S/)8\\<]$\\<W-%/#Q%T7-S13P\\;3Q]77VZNKIT7;HL='U]'BPL\nM+\"S\"PBQT'BPU-2PLQS4UOS7'+,<U-<>_-;_'Q\\=I-36_:9'':9&1D88OQY$O\nMQVG'+VF1:6DZ+SHZ:2\\ZD4&&D9$ZD88ORH:1AH:1RCII.B]!RB^1RB^1D2_*\nMAH;*+\\K*AD$ZAD&&:3HO.FF1.LHZRI$O0<II:9$ZD3II+T$Z:9&1.FDZ.FF1\nM:<<ZAB^1.FF&AL<O.I&1Q\\>1+Y&_:<>_-<?':36_Q\\>&Q\\?'ORPLQRPU++\\L\nM+,>_+!X>++_'?37'?34U'BQ]?34L'GU=?7T>72QT-7UT+!XU+'U=?2PL+\"QT\nM=%U]71Y]'EU==\"PL'BRZ+%TL+\"PL72QT+\"QT=\"P>+%W\"?34L?5?4U-34U-34\nMU-34:]34U-34;FZ0$7Q65LQ1]5$W5E967%Q<7%Q<7%Q65E:_OVG'D36&Q[]I\nM:<?':6G'+Y%I+VDO+VDZ\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(#0WKZ^NKZ^OKZ^OKZ^OKZZNKJZNKJPWUO%(HH8$W-X0YZPWU]?4<JPT7\nM#:&AH65$2DK3V]O32D1$FSX^/JX0$+40<Y;*V'-SV'-SEG-SV,K80<K8RFUS\nM;=AMV&W8RG/8;7/8.CHZ.LK*V'-M.LK8;0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(80\"$$P``86&0;M,[T]/3T^;3T^8N+B[3P=,^I\"5&Y.&?S!=VJR?6?+/.\nM1#ZNK+X[.SLAYBXNX.`N+N;FT]/3T]/3/#P\\ECP\\T7,\\T=%%/-%%/$5%/-U%\nM13S1W=T\\T='=T='1W='=W3Q%147=W=W=T='==SQ%=SQ%T=UW=R@H*\"@H*\"@Y\nM'!PY.2@HS00$!#\\_>7D%W\"*YN;:VMKG<B*1\\FU:?%_7U%V\"?-]W=W=W=W7?1\nMT3S=W47==]U%T7=%T=W==]UWW7?=1=U%W=U%=]%%1=W=17=%W7=%=W?=W471\nMW7=WT45W1=W==W?=0'?==W?1W7=W=X7=0$#=0$F%W4#=A4\"%=W=WA85W0$F%\nM0$F%0$!)=^-)24F%A4!)0$\"%X^/CXT#C2>-`X]=)X^.%2>-)XTE)2>/CX^-)\nMX^/CXTGCX^-`X]=`2>-)24E)24E`XTE)0'M`2>/C0.-)XTGCXX7C24GCA4GC\nM2>/C24F%=W=`0$GCA4E`24E)=]UW=W?=W=V%0'=)=W?==]&%=]'=T7=W=T7=\nM=]U%=]U%=]%%W=W=1471W=T\\1=%%T3S=W44\\T7,\\EG-%T3P\\/$5%<Y8\\/-&Z\nMNB:Z75TFNB:Z?;I]?<*ZNEVZNBQTNKI=77U]+\"Q]+!XL=!Y]?2Q]?2P>++_'\nMQ[\\LO\\<UOVF_O\\>_QX9IAL=IAI%IQ[^1:2^&AL=IQSHOQ\\<O:3HOD6DZAI&&\nM+SK'D<HZ:3II+R^1RCK*.CJ1AI'*+X:&D3HO.B_*RCHOD9%!D3HZ+Y$ZD3II\nM.B\\ZRH8O.LJ1.CK*RH9!:<J1.I&&.CHZ.FDZD89ID6G'.H:&D3II+SK'+Y$Z\nMQX:1D;_'QY''Q\\=I:6EI:;\\UQS7':2S'QVEI+,?'O[\\L'K\\LQRPU+,>_QRPL\nM+'TU+!YT-2PU-7U]-7U=+%TL-1Y=+%TL=\"QT+\"PL?7T>+'TL71Y=?7TL?<(L\nM'GT(;G_4U-34U-34U-34U-34U&O4U-0\";FX1$596-U'U4<Q65EPP,#`P,'Q\\\nM7%Q65E965E965L>&-;^1Q\\>_D37'-;_':6D(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`CKZ^N<G.2AH:&AH:&AH0$!`0%VJPWU$W8H\nMG\"?,8'8YZPWU]?6KZ]Y@-Y3A5C!E2$K3V]O3TTI*93X^/J`0$!`0;<IS<VW8\nM<]AMV-C8V)9!RG/*RLK*RG/8V#ISRLK8RCIS.G,ZRLK8.LK8\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(*P\"\\O```8<,[(2$AT]/3T]/3T]3/U-2`P4H^\nM:B5&Y.&?8/5VZ^'6?+/.1#NDK*\"D\\3L[T]/3T^8N+N#@X.#@X$5%/$4\\/#R6\nM/#S1<]$\\T3S1W7/1W44\\/-'=EI;=/-'1/#P\\/#Q%T3S=T=W1/-W1W3S=/$71\nM1=W-S<W-*\"@H*\"@H*#D<'!PY*\"C-!`0$!#]B>7D%(KFYN;:VN;G<K*1\\5I_U\nM]1=@GS<W-PH*\"@H\\T3Q%W3P\\1='=T7?11=U%17<\\W=W=13S=/#Q%=]W==T71\nMW=T\\W7?1W47==]W=1='=W='=W85WW871=W=`A87=W85W=W>%A4!`W7=W=X5`\nMW4!)0$!)27=W=TEWA7=)XT!)XTGC(T!)=X5)XTGC0$E)A>-`2>-)X^/C0$#C\nM24!)0$#CXT!`X^-[X^-)24GCX^/CXWM[X^-)XTE)>WOC2>-)XT#CXT#C0$E)\nMX^/CXTE)A4#CX^-)0(5)X^.%24#C0$\"%=X6%=X4C0$E)=TEW285W27>%A4\"%\nM24EW0-U)0-U`A=%W=]'=W7?1=W=WW7=W=T7=W=%W=]UW=T7=T=W=/-V6W=T\\\nMT44\\/#Q%1=%%1466144F&K+\"NB:ZNB8FNKHFLK)])G2ZNK*Z='VZPG2Z++HL\nM77VZ72PL771=+'0L+%TLOWTUO[^_OWTLO\\<U-<<L-34LQRS'QVDUQ\\>&O[^&\nM:<?'Q[\\O+\\<OQVF1:9$ZD<<ZACK':88Z:6DO:2^1+X8Z.FDZRI$Z:3J1ALHO\nMRFDZ.CJ1RB\\ZRH8Z+Y'*RLHZ03HZ.B\\Z.FG*D3HZD8:103HZ.B]ID89I+Y$Z\nM+SK*D6F1:9$Z02]I.CJ&.B\\OACK'.H9I:<>1D9$OAL?'D6F1Q[\\UQ\\=IQVG'\nM:2S'-34UQRPLQ[]IO\\<U+#6_O[_'OS7'?34LOS4U+#5T'G0L-35]+\"PU+'1=\nM?71T?7U]+%TL?7U=71$1$9!N;@+4U-34U-34U-34U-34U-1KU-0\";I`1,U;,\nM4?51S%96?#`PL[,P,#`P?%Q65E965E967%Q65E96:<<UQ\\?'\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"(.#@X.#@X-U\nM=75U=2M9E5)VJPWU$W8YZ]X74;P<JPWU45&K#2<W5E;A7+.S965$2M/;VXW3\nM2DI*FSZ($!`0RFUMRD$ZRD'*V,K*RCIM;<IM<\\IS.LHZ<VW8V'/*RCHZ;6W*\nMV`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(*P\"\\@@!A8=,[(2$A\nM(>;F5U?4U,_/S]2`34H^:F%&Y\">?8/4<ZZ&.7#!C9;ZD9*\"D\\:R^2DK3T^;F\nM+BXNX.#@;3Q%V$4\\EG,\\/#Q%/'-SEG,\\/$5%<SR6/'/1/$71W3Q%W=U%13Q%\nM1=T\\W=W=W=W113P\\'#DY*\"@H*\"@H*\"@H*\"@H.3D<'#DH*,T$!`0$/S]B>7D%\nM(KFYN;:VMKG<I+-\\5A?U8)\\W\"@H*\"E965@I65IM\\I#S1W3S=T=T\\W3P\\W=W=\nMW=%%W3P\\=T4\\=SS=/-W=/$71=SS=T=W=T=W=1=UWW7=WT7?=W86%W=V%0'=W\nMW4#=0(5W=T\"%0\"-WW85W24E)W7=W0$E`24!`A7=`24!)24!`A4F%XX7CXT#C\nM24E)XX5)285`XTGCX^/C2>-[0.-`XTGCXWM)XTGCX^-[XXI)X^-)24GCXWOC\nMXTGCXTE)XXI)XTE[XTE)X^/CXT!`0.-[24E)XTE)X^/CXX7CXX5`2>/C=^-)\nM=W=W0'=`24!)=TE)=T!W=]UWW87=A4!W=W>%=W=`=X7=A=W1T7=%T7=WW7=W\nM14711=W=T471T3S=W=U%/-W=/$7=13P\\W9;=W=&RNB8:LK*ZLAJZ<B;\"7;I=\nMPEVRNKJRNEUT772RPK)]=%U]?;K\"77U]NBQ]NETL=%TL'G0U?5U=?34U?7V_\nMOWTL-2PLQRPLO[\\LQS4UQS4L-6EI-6F_Q\\?'D6G':<>_QX:1QR_'Q\\>1.FEI\nMQ\\=I:3HZQSJ&D9&1:6EI.CHZ:<HZ.LII.LHZ:<J&.B^&.LK*RLHZD3HZ.H;*\nM.CK*+T'*.B^1+R\\O+\\HZD4&&D9'*.I'*0<HORI'*D3HZ:9$Z:3HO06DZAFF1\nM:9$OQY&&:9&1Q\\?':<?'AL>_D;]IQVF_Q[]IAL=I-2S'+\"QI+#7'Q\\?'-2P>\nM-7V_QS7'+\"PL++\\U-2P>?70L+'T>-1X(\"`@(*RMA$9!+2W_4U-34U-34U-34\nMU\"`@U-34U-0\";B4S,\\Q1]5%@E%9\\,+.:FIJ:LS`P,'Q<5E965E9<7'Q<7%Q<\nM?#`P86$(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`A!=75U=75U=75U=2N5E943JZOU$W8<JPT741,<JPWU45&KG)]6\nM5ES6?)ID,%R#@V5*2HWF2DI*93ZN$!`0V&W*<\\HZRCK*0<K8V,K*03K*;<HZ\nM.B_80<HO+SHZ.M@Z\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(80\"\\@F%P2$H[.R&`\":*B%!3(U,_/@-0V34B;?&&7Y\"<74?4<ZZ&!7#!C\nM98Y\\FJ\"DK/$^2DI*T^;F+N#@+I9S;99SEG/8;45S/-@\\<SR6/#R6<T5%145%\nM/$71147=<SR6ECP\\W3QSEMW1<SS=W1P<'!P<'!PY*\"@H*\"@H*\"@Y.3DY.1P<\nM'#DHS00$!`0$/S]B>7D%(KFYMK:VMKG<KK.;-_5@-U965E965E965E965GRS\nMI-W1EMT\\T=U%W=T\\13P\\W47=/#P\\W=W1W3S=W3S1147==]%WW='=17?=17=%\nMW47=W=&%A7?=A7=`T=W=W=W=A4EW=W>%W87=0$\"%=TF%=TF%=TF%=T#CA85)\nM24E)24#C2>-)2>-)XTE)XX5)XT!)X^/C>TGC24GCX^/CXT#7X^-)X^/CBN-)\nMX^-)XTGCX^-)X^-)BN/CX^-)XTE)XWM)>XI)>WM)2>/CXTGCX^-`0$E`X^-`\nM2>/C0..%XT!`XTGCXX6%XTE)=TE)XT\"%XT!`=T!)24EW=X5W=]U)24F%W7=`\nMA85WW=UW=]'=W87=W='=17?=W=W1T3S1W3Q%=SQWW3P\\1=W=/$5%T47=/-T:\nM&G(:NAJZ&KIR)B9RNKHF)AJZNKH:NB:Z&B8FNAI=LB8FNK*ZNEVZ=+HFNL)=\nMNGU='GVZ=\"RZ+'U=?5U=+%TU?2PU-2R_+'V_?;\\LQWU]QS4LQ\\>_-;\\LQVG'\nMQ\\=IO[_':<>_Q[]I:;]I:<=IQR]I+\\<OAI%IQSHZ:6DZ:3HZ:3J1:<HZ0<HZ\nMD3HZ09'*RCJ1.H8ZRLK*D2^1RLJ1+R_*D<K*.M@Z+SK*.LK8V)'8.CK*.CJ1\nMD<J1RD$OD<HZRD$Z.CHZD9$Z.I$Z.CHZ:6DZQY$Z.I$Z+Y%I+\\?'D<>&:<?'\nMAL>&D;_'AFDU+&G'OVG'Q[_'+#7'QQZ_?<?'-37'QRS'\"`@(\"`@(\"`@(,S,1\nM$9!N;M34U-34U-34U-34U'_4U\"#4U\"!ND!$S4E'U46`W5EPPLYJ:FIJ:FIJS\nMLS`P7%965EQ\\,#`P?#`P,#\"S86&02TM_\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\",HZAI&1RG5U=76IJ9Z>G@%24G:\\JZOU$W8<\nMJPWU]1,<JPWU45&KG.%65GS6LYJLL[/KY(.#941*C2XNC=-*$!`0RCHZV,K8\nM+R_*.B\\ZV\"_*+SK8+R\\O.LHO+Y%!RLH(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(80\"\\`(-PJJJJJJJJ:\\#`P,#/U-34S]0V34B;\nM?-`YG\"<74?4<ZZ&.5C!C@XY\\FJ`^K*2@@V5*2M/3YBYSV,H\\V,H\\<]AS/)9S\nM198\\199%V'-%<SS113P\\/-'1/$4\\17-%/-W1/$7=<T4(\"#DY.3DY.1P<'#DY\nM.2@H*\"@H*\"@H.3DY'!P<'#DH*,W-!`0$/S]B>7D%(KFYMK:VMKG<I+-6%_6?\nM5E965E965E965E96FWRSI$5SW='113S=W=$\\/#S1T9;=W=W=13S=W7?=T=W=\nM17=W13Q%W=UW145%W45%=]U%17=W=X7=W=UWW7?1W85`0-W=0'?==TEWW85W\nM=TE)W85`0'=)286%=^-)A>-WXX7CA86%A87CX^/CXTGC(T!`>^/CX^-)X^-[\nMXTE)X^.*27OC24GC>WN*27OCXXJ*XWOCXWM)BDE[BHI)BHKC>^/C27OCX^-)\nM27OCXTE[X^/C2>-`0.-)XT#CA4GC0./CX^-)2>/C0(5)0(5W=W=W0'=WA7>%\nM0$!W0-UWW4#=2=UW=]U)W87=A=UWT=W==X7=A7?=A87=T47=1=W==W?113QW\nMW3S=1=$\\/-%WW44\\W=T:)B9R&B8:NKIR)G(:)KH:NKJZNKHFNAJZ&K*Z)K(F\nM&KHF&B8:)AH:NL)=NK*Z?;*ZNGW\")GVZ)G1]77UT7;ITNBPL75U]7;HL77TL\nM?7U]-34U'C5]Q[\\LO\\>_+,?'+#7':<=IQ[\\UQVDU-<=IQVDUQVF&AL>1:<<O\nMD2_'Q\\?'.FDO.FDZ.I$Z:3HZ.LHOALJ1D9&1RH8O.I&1D<HZRI'8+]C8V#J1\nMV#HZV,K*.I'8.B\\ZV#HZV#K*RB_*+]@O.LJ1V)$ZRLHZRLK*02^&D3J1:6DZ\nM:4$OAH9I.FG'+\\>1Q\\=I:6EIQR\\OQ\\>1QX8UQS4UQ\\?'Q\\>_Q\\<LQ\\<UQP@(\nM\"`@(\"`@(\"`@(\"`@(,S,1$9#9;@+4U-34U-34U-34`@(\"`M34U`)N)3,S=O51\nM8#=65EPPFIID9&1D9)J:FK,P,%Q<7'PP,#`P,#`P,+.:89!+2\\M_\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`C'D8:&+R_'D89I.B_'4E)2\nM4E(!`0%V=KQVJZOU$[P<JPWU]1,<JPWU45&KG(%6?+.^I/$BFK/KJYRA@Z9$\nM1-,AC2[;TQ`0V$&1RCHZ+Y'8.CK*.D$ZAH:1.B^&D9$Z.@@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(80`<'%(Y[N[N1NY&\nMV:EU=774U-34S]0VY4B;F]`YG-X74?4<JZ&!5E9C@XY\\LSZ@K*Z@ZYRA@X-E\nM/-C*V-AS<Y;*V,ISV&US<]AM<W-%198\\<T5%/&T\\/'-M;3Q%145%<Y8\\/$4(\nM\"`@(\"#DH*\"@Y.3DY.3DY.2@H*\"@H*\"@H.3DY'!P<'#DH*\"C-!`0$/S]B>7EY\nMW+FYMK:VMKG<KGQ6%Q<*5E:;FYM65E965E96FWRSI-'1T3P\\T='=ECR6T=&6\nM/#P\\T=T\\/-$\\/#S=1471T44\\T7<\\/$5%W471W47=W7?=17?==]U%=X5WW7?1\nM=W?=W=W=A7=WW7=)=T#==W=`=TE`27=`A7=)2>/C=TE)24E`A4!W=^-)=T#C\nM0$E)X^-)2>/C2>/C24GCX^-)XTGCX^/CXXKCX^-)XXI[28KC24E)XXI)>WOC\nMX^/C27OCXTE[XWOCX^/C>TE`X^/CXT#CX^-)2==`2>.%24GCA>-`285W2>/C\nMA>-`24F%0.-W=^-`27=`0$!)A7=`=TG=24#=0'?==X7==]%`=]W==T`C=]&%\nM1='1T7?1W47==]W1=W?1145W1='=W=W1=]T\\W44:)G)R)B9RNG(:NAIR<KHF\nM)G*Z)KIR<KH:&B8:NG*R&K)RNB8F&AJZNK(:NL+\"<KJZ&EU=LB8:NL)T)KJR\nMNG2ZNKI]=%U]7;I=71X>'GW\"'AX>NBQ=-7TU770L+\"P>?7W''GTUQ\\?'-37'\nMO[_'Q\\<U:6DUQVG':89ID<<OQY%I:9&1:3K'AL?'D<>&.CHORI&1.CHZ.I&1\nM+Y$O+Y'*V)$ZRLK*D4'*RD'*V#K*+Y'*.MAM+\\K*V-C*+T$ZV,K*RMC*.CK*\nM+\\HZ02\\O.CHZD2\\Z.I$ZD<J1.B_*AB^1+VF1:3HZ.CHZ:<?'D<=I:2^1OVG'\nM:<>_-37':8;'QP@(\"`@(\"`@(\"`@(\"`@(\"`@(,S,1$1'9;@+4U-34U-34U&O4\nM?TM+?VO4U&YN)3-2$U%@S)165GPPFIJLK*RLK&2:FIJS,#`P,#`PL[.:FIJ:\nMFIJ:D$M+RW\\@\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"+]IQ\\?'\nMQ\\?'AFF1+R_'Q\\>&.B\\!`7AXGH2\\$Q-VJPWU$W8<ZPWU]1,<JPWU45&KG(%6\nM,)N^KB*YFJ2<Z^NA@X-E1$K32M.-C=.-D<J1D6DO.B\\ZD9&1AFDZ.L>1:2]I\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@Z\nM:2]I80?N[I4<65GN1NY&V9Z>GIX)U-34\"<ANY7\";FRLYZ]X7%_5VJR>!5E9C\nM@XY\\FCZ@K*P^H9SKZ]@Z<VV6V,ISV,K*RMASV'-M/#QS/#P\\ECR613S8/'-S\nM/)9M;3R6/$5S/`@(\"`@(\"`@(\"#DH*\"@H.3DY.3DY.2@H*,TH*\"@H*#DY'!P<\nM'#DH*\"C-!`0$!#\\_8GEYW+FYMK:VMKG<FGQ6]1=65ER;FWR;FYM65E96FWRS\nMI#P\\198\\/-'1T=W1ECQ%/-T\\W=V6T=&6T9;1/$5%/#Q%145W/#S1W3S=1='=\nMW=$\\T47==]W=W=W1A7?=W84CW4!WA=V%T4EW0$#=W=W=24!W=TE)=T!)XW=W\nMA4GC0'=)A4GCX^-WA4E`XTGCX^/CU^-)X^/CX^/C0$GC0$!`0'M)X^/CXTE[\nMX]=)XWOCX^/C2>-)28KCXTGCX^/C>^/CX^-)XTE)XTE)0.-)>^-)X^/C0$E)\nMXT#C0$F%A85`2>.%XTGC0$#C0$F%=TEW=W=)27=)=TEW0(5W24!W27>%=TEW\nM=W=WW7?=W=V%A7=WW7?=W=UW=]'1A=W1W45W17=W=W=%W=W=1=%W=]W1=]T:\nMNKHF)AIR<AHFNG)R<B8:)KH:)G)R<G*R&K*RNG)R<AIR<AHF)AIR)B8:<B9R\nM)G(FNG*Z<AJZ&KIRLAH:NB9=)KI=7;*Z)K*Z7;JZ77TF=+I]NKIT72Q=71XL\nM=%W\"PBPL77U]+'TL+#5]?<<L?2PUO\\<LQ\\?'Q\\?'QVEI:6G'QY&&:8:&QY&_\nM+X9I:3II.I$OQR^&+X9ID2\\Z.CK*.CHZ03HZ.B\\O.CHZ+SHOV,HZRCHZRFUM\nMV#K8;=C8.MC*.LHZRM@ZRCK8.MC8V-A!+SK*.M@ZRMC*RCJ1D3J1D3HZRFDZ\nM.LJ1.CHZ.B_'.B^1.L?':9&1:6F_QX;'-36_Q\\<UQP@(\"`@(\"`@(\"`@(,S,S\nM$1%N;@+4U-34U-34U\"`\";FYN`M34U$M+$3.\"J^OK-U965EPPFIJ:9&2LK*RL\nMFIJ:LS`P,#\"SFIJ:FIJ:FIIDPTO+?W\\@\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@LQ\\?'+,?'OX9I:6G'QX:_D;_'QR_'D2_'.JEU=783O+QVJPWU$W8<\nMZPWU]1,<JPWU45&KG(%6,'P[B!VYK*#KZYRA@X-E.H8Z.I%I+SK'D6DZQVEI\nMQY&1QVG'D6EID9$(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`C'QR^&D9&1+\\<OD6G'ACJ1QY$<4E(!`0$)U-34:W]NY7\".\nM)\"LYZPWU]?4<JR>!5E9C@XY\\FCZ@\\8@^H:&<.LK8.M@ZV'/8RM@Z<]C*V#QS\nMV-C*V#S8<VW*V);*/-@\\<]C813QM/`@(\"`@(\"`@(\"`@(\"#DY*\"@Y.3DY.3DY\nM.2@HS00$!,TH*\"@Y.1P<'#DY*\"@HS00$!#\\_ODK3(2&YN;:VMKG<FGQ6]6!6\nM5IN;?'Q\\?'R;5E:;?'RSLW.61=%%/$5S<]%S13P\\/#Q%13Q%T='=/-W=W=T\\\nM1=T\\1=W1/-U%/-T\\T3P\\W7=%W=W=W='=1=%W=W>%T='==W>%A7=WT4!WT7<C\nMW=UWW7=)A4F%27=)24DCA7=WA4E)24!)=^-`=X7CXTE)XW?C2>/CX^-W24G7\nM24GC2>/C0(5)2>-)XX5[>TE)2>-)XTGC24#C2>-)XTGCXTGCX^/C2==`X^-)\nMXTGCXR-)24#C285`2>/CA4E`0./CXTE)0(7C0(5)0$E`0$F%27=W24EW0$EW\nM24#=24!W=W=)W4G==W=`=T#==W?=286%=X5`T7?=W87=W7?==W?==W=%A7>%\nMT7?==T5WT=W1W7?=W7>RNKJZ)KH:)B8F&AJR&AHF&B9R&G)R)G)R<AH:&AJZ\nMLKH:)G(:)B8F&B8F&B9R<B8:<G)R<B8:&B:Z&B8:LG(:<B8:NAJZNL+\"PAJZ\nM)KJZ)KJZ)EW\")B9])EU]?72R?70>=,(>?2PL?<)T+%T>+\"PL='TL-;^_'BQ]\nMO\\<LQ[]I+#7'+,?'-;^1D6G'Q\\>&Q\\?'.I$OD9$ZQR\\Z+SJ1:<I!D6DORH8Z\nM+\\HO.B^1RLHZV\"_8.MC8RCK8V-AMRLK8RLK8RLIS.MASRCHZV-AM+SK8RMC*\nM+]C*.LK*+]@O.CHZ.I&1AI%I+Y$ORLII.B^1+SJ1QY&&D9$ZD<=I:;^_Q\\<(\nM\"`@(\"`@(\"`@(\"`@(,S,1$9!N;@+4U-34U-34U-1_2TMN`M34Z$1-38.AY.NK\nMZ^ODH:$P,)J:K*RLK*RLK)J:FK.SL[.SFIJ:FIID9*RL2TM_?R#4\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"#4U+\"PU+&G'QS7'+,?'-<?'OVEI:<<UD<>&:6G'\nMD<>1=1-V=G9VJZOU$W8YZPWU]1,<JPWU45&KG(%6,#X[B&BV\\:`Z:<=ID6DZ\nMAFEI:<<Z:3J1Q\\=ID<=IQX:1+\\?'OP@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"&F1QVF1O\\=IO\\=I:6G'QY''D;_'+\\>&\nM:6EIQX:`((#4:P*JY>&.\"@$<JPWU]?4<ZZ&!5EQC@XY\\FCZN\\8@^9=C8V$$Z\nMV#HZ;<K*RLHZ03IM;3IM<Y9S<W-S/'/*/-C8RLK8<W/*/#S8/&T\\V#P(\"`@(\nM\"`@(\"!PY.3DY.3D<'#DY.2C-!`0$!`3-*\"@H.1P<'#DY*\"@HS8-P2+Z^.],A\nMX`P,#\"$A(;F(FGQ6]6\"45E:;?'RSLWQ\\FYN;?'Q\\LW,\\/&USEI8\\EG,\\ECQS\nM<]$\\/-$\\13QSED5S/$5%13Q%1=%%W47=144\\T3S=W45%/-'=1='=W=W117=%\nM1=W=17?==T5%W=W1=]TCW7>%A=W=W7?=A85`=X5W0(5)=X5W=TG==W=W=T!W\nM=T!W=X4C24E)A4#C=W>%=W?C24E)27=)A4GC24\"%24GCA4F%287C(TE`24F%\nM24E)285)24GC24#CXTF%(X6%A>/C27>%XTGC=T!`XTEW0(5`0-=)=W=)XW=`\nMA4E)=X5)24EW=T!)=X5WA4\"%W4E)W=U)0$!WA7=`=]W==R-WW87=A7=W=X7=\nM=]V%=]V%=]%`W=W=T='1=W=W1=W1W7=W=]%WW7<FNETF75TF7;H:PAHFLB8F\nM<AJR<AJR<G)R<AHF)B9R&AH:<K(F&G(F<G(F<K(:&K(F&K(:<G*R&G)R<G(:\nM)G(F&K(:NG)R<B8F)AH:<KIRNAJZNAH:&K(:NKJR)ETFNB:ZNK)]NB:Z?<*Z\nM77TLPEU]PG1]+\"PU+\"PU?2Q]QRPU+#7'-2PL:34LQ\\<U-;]IOVEID6G'D2]I\nMAH8O.L<O.FG'D2\\O+R]IRB_*+SK*+R]!RMC*.CHZ+\\HZV,HZ.B_*RM@O.CIM\nMRCHZV,HZRLIM<]ASV,K8.M@ZV,K8.FW*D3HZ.B\\O.CJ1.LHZRI&1+Y$Z+Y&&\nMD3J1+R^&D9%I\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(,S,1$9!N;@(\"U&O4U-34U-0\"\nM2\\'!P>A?C4K!P::FIH.AG.NKZ^ODY.2F942LK*SQK)J:FIJ:FIJ:FIJ:FF2L\nMK*RL2\\M_(-0@\"`@(\"`@(\"`@(\"`@(\"`@(\"`B_+#4>QRPLORPLQRPL+\"S'+,=I\nMORS'-34UQ\\?'-<=IQ\\=IQ[_'Q[QV=G9VJPWU$W8YZPWU]1,<JPWU]?6K#8%6\nM,#X[W&BV(J[':<?':<?'Q\\?'QX:1OVF_D;^_-6G'QY%I\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(-2S'-6G'AL=IOS7'\nM+#7'OS6_QS4U:6G'QY%I-<>1D2^`((#4-FZJY>&!\"E(<JPWU41<<ZZ&.5EQC\nM9;Y\\FCZN\\:Z;.I'*RCHZD2\\Z.CHZV#K*V#K*.CHZ.CI!;7/80=C*;7-SV'/8\nMRCQS<Y:6<SS8;<K*/#S*V`@(\"!P<'#DY.1P<'#DY*\"@$!#\\_/S\\$S2@H.1P<\nM'`T-H>'AX65P2+X[(2'@\\@PA(3L[ODAPX>$-#6\"45E9<?+.:FK.S?)M\\?'Q\\\nM?)9M/#P\\/&T\\/#P\\16T\\<T66/&T\\17,\\<SS1<Y8\\<W-S13QS1=$\\/-'113R6\nM13P\\145%T='=13Q%1='=T=W1T=W==W=WW3Q%=]UWT=UWW7=%T=V%A=UWW7=`\nMW=V%=T#==]UW=W=)0(7=2=U)27=W24F%(T!WA4EW27=W=W=W0$\"%=W=`24E)\nM24#C0'>%24E)24!)=^.%0$\"%=W=)XX4C285W285`0$E`=TEW=^-)X^-)XW=W\nM24#C0$E`=^-`=W=WA85)27=`24E`24E`27=W2=UWA4EWA4#=A85W0'=W=X6%\nM=R.%W7?=A7>%=X6%=T!WW4#=W=W==]W=W87=W7?==T5%=]W1=W?1W='=W=T>\nMNK)]NGVRNKI=NK*Z=%VZ)EU=&KJZNAJZNAHF<AHF&KHF<B:Z<G(:<K)RLG)R\nM<K(:&B8:&K)R)AJR)AIR&B9R<G(F&G)R&B9R<K(F)AIR&AH:&G)R&K(FNAH:\nMPKH:LB:R)B:Z75U=)GVZLL)=)G2Z?;I=?5TL'GVZ'GU]72PU+'U]?<<L+#6_\nM+,<>ORS':6EI-37'-<?':8;'OR_'QR\\ZD<<O:9%I.H:1+R\\Z.B\\ZRCHO.CHZ\nM+SK*+]@ZRLHORCK*.MC8.FUM+SHZRFU!.CK8V,K*RLHZ.B\\ZRCK*V-C*D3K*\nMRCHZRD'*+Y$O+\\J1D<HZ088O:0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(,S,1\nM$9!N;FX\"U-34U-2-7U]?Z.CHZ.CHZ$K!P41$1$1E@X.AH:&<ZZNKZZ&A@X.F\nMIIJ:FIJ:FIJ:FIJ:FF2LK*SQ2\\M_(-0@\"`@(\"`@(\"`@(\"`@(\"+_'QRP>QQY]\nMO\\?'-<<L+!XLQS6_Q\\>_+\"PUQ\\?'QRS':<=IQ[^_-<<LQW9V=G9VJPWU$W8<\nMJPWU]1,<JPWU]?6KZY]6?#X[W+&V(HC'-6G'AI''-<>1-;\\UQ\\=IQVG'Q\\<(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@L\nM-<=I+\"PLQ[]I-34LO\\?'+\"S'Q\\?'QVDU-2PUQVDUQS7':<>`((`\"-DM&Y>&!\nMGW8<JPT7S,PYG*&.7'S.9;ZSFCZNK*Z;RH8Z.LHO.D'*+T%!.CK8+SK*;<K*\nMRLK8RCHZV$$ZRMC*V#K*V&US.MASV'/8RLK*\"`@(\"`@(\"!P<'!P<'!P<'#DY\nM*,T$/V)Y8C\\$!\"BAH=X-J^L-WB?AX:'AX1A(.],A\\@PA.[Y(&.$G#0VAH8/A\nMX>%P?+.:FJ2S?'Q\\?'Q\\?#P\\<]AS<]AS;45SEG,\\ED5SV',\\/&US/#R6<T4\\\nMT44\\<Y8\\/#P\\<]$\\T3P\\1='=T3Q%/$4\\/#S1/$4\\144\\/-U%W47=T=UWT44\\\nM1=W=/#S==]$\\W=W=W87==W?1=]V%W=UWA=W1T=W==]UWT7=WA4!`W=UWW=U`\nM=]W=W=U`W7?=0'?=2=V%=W=`0$!W0-W=W4#==T!`0(5)A85)W7=`0$E)A4E)\nM27=)=X5W=]U`0-UWW=U)W4EW27>%W7=WA7=W0'>%=T!W24EW0$E`0-UW0$#=\nMW=UW=]U)W=U`=W=WW4\"%A4#=A=U`(X6%A7=WW=U`W7=WA=%WT7?1W7?1=X71\nMA7=WT7=W=W?11='=1=%=NG2Z'KI=7;IT?;)]NETF)G1T=!JZNL*R&AH:&KJZ\nMNK(F)KJR)AHFLG(F<B8F)G)R)G(:)AH:<K)R<G(:&G)R&B9R<G*W&D]R<G)R\nM<B9R)B8F&AIR)AH:<B9R)G(F&K)R)KHF&KJZLAH:&ETFLL*R)B:ZNGU]?;I]\nMNEVZ'GTL=%U]+'U='BQ]+'2_++_'-<<L-<<UOS4L:35IQVG':;^_O\\=I:6EI\nMQSHZ:6G':2]I.CI!.CHZ.D$Z+SJ1.CK8V-@Z.MC*.CHOV,K*.M@ORCK*+\\HZ\nM;<HZ+\\IM.CHZ.CHZV,HZV\"^10<K*D=C*RCHZD3H(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(,Q$1$9\"0;FX\"7U]?7U]?Z,'!IJ9-34VFID3#-DT[KO&L\nM\\*;67#`PY.2#H:'DZZOKZ^2AH8.FIIJ:FIJ:FF2LK*SQ2TM_(-1_\"`@(\"`@(\nM\"`AT=\"Q]QS4U-7V_ORQ]-7U]+,?'QS4U+\"S'-;\\>-;\\LQRS'-2PL+#7'QS4U\nM-2PUQW9V=G9VJPWU$QP<JPWU]1,<JPWU]?6K#2=67#X[W+&V'8C'O[_':6DU\nMAC7'OVF_O\\=IOP@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"\"PU-36_QS4U++\\UORPU+,?'+#4>QS6_+\"PU+,<L-34U++\\U\nM-2PU+#6`?X!N;B5&Y:&?8+PYZR>!5I0YG.&.7##.9;ZSFCZN\\:Z;:<<Z.I$Z\nM:<J1D2\\OD3J&D3K*.LK*V\"\\ZRCK*.CHZV-C*RLHZRLISRG-S;<K*\"`@(\"`@(\nM\"`@(\"!P<'!P<'!P<.3DH*`0_8GE*2DI*966#H:$G#>NK#=XW5CGD<'QD(FS3\nMM;DBI.'6-_4-)^&#941$2DI*2DI*2DJ:?'Q\\?'Q\\FSS*<SQMV-AS/',\\<W-M\nMV)9M/);8/#S8/',\\V$5S/)9S<W,\\<SQSECQS/'-SED5S/$5S/',\\17,\\W=$\\\nM/$5S/-%S/#S=/#P\\T3S=/#S=1=U%/$7=147=W3Q%147=1=W=1=W=W=W=W=UW\nM/$5%T7?11=UW=T5WT=%W1=UW=]UW=X6%=]UW=X5`=]W==W=W=]W1=]W=(]UW\nMA8710-W1W2.%=X5W0-V%=W?=2=UW=T#=W87==]W=0(7=W=W=W4#==T#=A4\"%\nM=T!`W7>%A=W=W=UW0'?=0-V%W='==]%`W=U`W=UW0'?=W4!`=W=`W=V%=W=W\nMT=V%A=UW=T5WW7?=W7?==W?=W=W=W7=WT=U%1=U]+'U]75TL'L)]+'W\"7;H>\nM770>?70FPKITNB9=PKJZNB8:LB:RNK*R&KH:NAHF)B:Z<K(:&B9R<G(F<AIR\nM&K<FMW)R<AH:)AI/<G)/<B8F<B9R<D\\F&G(:&G)R&G)R<G)R<AH:&B:RNB:Z\nM&K(F&KHF)AJZPAJZ7;JR?7VZ?5UT?;I]=\"P>?71='GTL=\"PU?2PU-2PU-;\\L\nM++_'+,<U-2S':<<UQVF1:8;'QX8ZQY%I.I$O.CK'09&1.CII:9&&RCK*.CK8\nM.I$Z.LHZ.LHZ.M@ZD<K8V-@ZV,HZRCHZV-@Z.LHZ.LK*.LJ103HZR@@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(,Q$1$41$1$I*7U]?7U]?Z.C!\nMP<##)6$$1#Y+-DV^H&2:JJ;65HQ<8X.!5HQ<X93,JZOKY.3D@X.#@Z:FFF2L\nMK/'Q;FX\"U-34\"`@(\"'TU+!XL-34L?;_'-;\\LOWTUQ\\=]+#7'?<<L-37''C4L\nMQS4L-2PUO\\<LOVDL-<>_O\\?'-79V=G9VJPWU$W8<JPWU]1,<JPWU]?6KZR=6\nM7'P[W+&G'8B_:34UQS7'OVG'OVD(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(ORPLQWTU+'TU'BPU'C6_?2R_+#4L'AX>\nM-34L+'TLQRPLOS4L+,?'++\\U-2R`?ZIN;F%&Y:&?%Q,YG.&.5E:7Y>&.?##.\nM1+ZSFCZ@K*Z;D9&1.FEID3HZ+X:1+R]ID9'*.I&1.CI!+\\HZ03J1RCK8.D'8\nM.M@ORD$(\"`@(\"`@(\"`@(\"`@(\"!P<'!P<'!PY.2@H@X.AH8.#@V5E@Z&AE^3A\nMA%*K#=XW5CF<<'QD(FS3M;FLI.'6-U'>!EQE98.#@X.#@X.#@X.#965(2$A\\\nMFSQS/',\\<SP\\/#P\\<W-S<SQM;3P\\/#QS<]AS/&V6/'/817-S/#P\\<T5%<SP\\\nM/#P\\<VT\\/&T\\EG,\\13Q%/#P\\13P\\ECQMEM$\\<SQST=$\\/#QS199S/-&6T=$\\\nMW47=/-%S17-%/$5%/#Q%T9;=13S=W=W=W44\\W3S=/$5%W='==]W1=]UW/$7=\nMW7?=/-T\\T=UW=]W=1=W=1=W=17=W17?1T=W=185WW=UWW471=W?1=W=%A7?=\nMW7?=1=W==]V%W7?==W=W=W=WT=W=T=UW=W=W0-TC=W?==W=`W=UW=X5WW85`\nM=]%`=]U`=]&%=]%W=W=W=]UWT=V%1=U%=]W1=]U%1=%W=W?=W7?=/#Q%/-TU\nM+\"S'-34U+'0>+#4L+'1]+'U]?1[\"+'TL'AX>77TFNGUT=+HFNEVZ7;JZNG*Z\nMLAIRLB8:<K(F<K)R&G)R)K)R<B9R)AHFMW(:&B9R<G*W&G)R<K<:)G*W&AIR\nM)AIRMW(F&B8F<B9R)K)R<G)RNB8F<G(F&B:Z&KI=&B8FLKHFNKITPKJZ77U]\nMNEU]++HL?70L72QT?7U]?7U]+\"PL+#4U+,<UQRS'O\\?'O\\?'-6G':9&1QY%I\nMQVG'D3J1.H8Z.LJ&D9&1ACJ&.LHZAI&1RB\\ZRB_*RCK8RD&1D<HO.M@Z+R\\Z\nM.LHZD<H(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"$U-\nM1$1*7].-7U]?7^@4%!04%!0VV6$$ICY+-N5(?\"V:1H.!5HQ64*'65HP&X90W\nM46#DY.3DY.3D@X.#@Z:FIJ9$;FX\"U-34-36_+'TUOWU]'GTL?2R_+\"PLQS4>\nM+\"PLORPL+\"PU'BPL+\"R_Q[_'QS7'+,=IQRS'+,?'-2QI:79V=G9VJPWU$W8<\nMJPWU]1,<JPWU]?6KZ]Z47'P[B&BG';DLQ\\<U-2S'QP@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@>ORQ]?34U'BPL+\"PU\nM='T>++]]+\"Q]+'U]'C5]ORPL-37'++^_?7TUOWTLQS4LOWV`?ZIN$=!&8Z'>\nM]1.7G.$*?%Q&Y>&;?+/.1#NDFCZ@K*Z;:<>&QY'':9&1:6DO.CK'.FF1.I$Z\nM+VDZ.LII03I!.I&1RCJ1RLH(\"`@(\"`@(\"`@(\"`@(\"`@(\"!P<'!P<Z^OKZYR<\nMG*&AH9P-Z^OK$Q.\\EZ'A4E*K#=XW5CGDX7R:(FS3#(BLL^&!S%$-!@KKZ^OK\nMZ^L-#:&AH8.A@X-P<$B6/',\\RMAM<]C8<W/*;7,\\/-ASV#QMRG/8V'/8EFW8\nM;<K8EG,\\EM@\\/#QSECQS<]C*V,H\\<VW8/)9MEFUMV'.6/#QS;7/8/-AM/#S*\nM;3S8/#QMV#P\\<]AM/#QS/);8EFV6<T5M/$5%/',\\V)9S<SQS<SQ%/$4\\/$4\\\nM<T5S/&US1466<W,\\144\\T471W=W=/-T\\T3S1/-U%1=W=W=W=/$5%T3S=1=W1\nM/#P\\W3S=1=UWW=U%17?=T471=]W=W7?1T=%W147==]U%17=%1=W1W='=17>%\nMT=U%=]UWW7?==W=WW87=A87==W=%W=UWT7?==]UWW47==W?=T7?1W44\\1=W1\nMW='11=T\\=SQ%/-T\\W47'ORS'+!XU+\"PL-2Q]?2PU+'U]-35=75TLNEW\"'ETL\nM?1ZZNG1]NGVZ=\"9TNKJZNKI=7;HFPAH:LB:Z&KH:<KJR)G(:)G)RLG(F3QHF\nM<G(:<G(:3R9R<K=R&AHF&AHF&G)RMQHF<AH:<AI/<G)R<G)RNK*Z)K)R)KJZ\nMNAJZLKH:NB8:)AJZLEU=7;*Z?;K\"NL)=NG1T'GT>+'U==#5TOW0>?2PU-<?'\nMQRS'-6G'+,<UQ\\?'Q\\?'Q\\>1:<>1QVG'D<>&.I''.B^&.FDZD9$Z03K*ACJ1\nM.B^&.LHZRLHZD3K*RCJ1\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\".;J5U=75U>B%!1;6Q0V8=#PIILE-N48FWPP\nME^2?-S>4S:&!5E8&X9]@46\"4E.OKZ^OKZYR<Y.2>=74XP%NB5U?4=\"PU+\"PL\nM-34>+\"Q]++\\UOWTL?2PL+'TL+\"P>QS4>-37'Q\\<L-34>OS4L++\\LOVG'QRPU\nM+&G'QW9V=KQVJPWU$W8<JPWU]1,<JPWU45&K#2=67'P[KAUH';G'ORS'\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"P>\nMOQYT?2PL?;\\L?7V_+\"Q]'G0L+!XL71XU+#5T+\"PL=#4L-2PL?34L'K^_+#4L\nM-<<U?2R`RZJ0$=#N8R<7];PHY.&;?'Q&Y7\";L[/.1#NDFCZ@9*Z;D;]IQVEI\nMD9$OD;^_D<?'QVDZQVF1+Y$OD3IID6DZRCHZ00@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\")R<G)R<G*&AH8.#@V5E@X.>GIZ>=G92E^3A696KJQ<W5CGDX9N:(FR-\nM0XB:?.&?S&`-8`J#@Z&AH:$-ZPVAH8/*;7-SV'/8ELK8EI:6/',\\<]C8<SQS\nM<\\H\\V'/*RMC8EFW*EG-SRLK*V-C8<VW8RM@\\<\\K*RLJ6<]C*<\\J6<]AMELK*\nMV);8ELIS<Y9!V-ASV-AM0<IMRLI!EMB6.G-M;4'8EG.6V,H\\<]A!<\\K8RG/*\nMRLK*ELIS/,IS;=C8/-@\\RMC8V#P\\ELH\\V#QS/'.6<SP\\<W-M/-@\\/'-M/'-M\nMEI9%;99M/$5%/$5SED5S145%1=$\\13Q%W3S1/#P\\ED4\\/#QW=]W=T='=13Q%\nMW3P\\1=W1W=T\\W=W=T=W117?1=]UW1471=W?==]'=145%W=W=1=UW=]UWW=W1\nM=]W=W3S1W=W=13P\\1='=W3Q%/$7=/#P\\/)8\\EM%I+,<LQ\\=I-2PL-34LQS7'\nM+#7'+\"PL'GV_?1XU?2PL=\"S\"+!XL+'U]?5U]?;I]7;JZPB:R=,+\"7;JZ)KK\"\nMNB8:&AJZ&B9RNKJZ<AIR<G)R<G(F)AJWMR8F<G)R&G*WMW)R<G*WMW(:<AHF\nM3QH:&AHF&G)R)B8:)K(:<AJZ<B9RNAJZNKIR728:)KHFLG0FPEUTNKJZ'K*Z\nMNKK\"=+I]72Q]+'TL-2PL++\\LO\\<>O\\<LQ[]I+&EIQRS'Q\\>1QVF1Q[]ID3K'\nM+VEI+SHZAL?'D9''.CJ1+Y&1.D$O+X9!D0@(\"`@(\"`@(\"`@(\"`@(\"'\\@(-34\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"&G':;_'\"`@(\"-17HA04\nM6UMN)=`H@YLE$>485E96.>O>%U%1JPT78,PW)V!1]6\"4E.N<G.3DGIYU=77`\nM6UL45RP>?7T>?2Q]-;\\>+,<L-1XU+,<LOS4>?2R_+'T>QRR_QRPLQQXUQ[_'\nMORS'Q\\<UQS6_Q[_'QS5IQ[\\L+':\\O!.\\JPWU$W8YZPWU]1,<JPT78%&KG)]6\nM7'P[KAT=';D(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(-1XUORPLORS'ORPL'GTLOQY]'C4U+#4U-2PL+%U]72PL-;\\>\nM?;]]+'TL?2R_?;\\U+'0LOWT>?2R`2S:0$2ON8][U]78HY'\";L[-&Y1B;LYK.\nM1#NDFCZ@FJ2;+#5I-<?'QVF&D;_'QVEI:<>1D<>1QX;'.L<OQR]I+P@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"(.#965$1'5U=3@X=75U=G9VE^3A\nM!UFKJ_7,5CGD<)N:(FR-#(B:?.&?S&`-]9^#@X.AH9S*RCQS<\\K8RG/8ELK*\nM/&W*ECS8<W.6V,K*;6USRLK*06W*ELK*V+Z.CHZ!X=X-J\\HZ<VUSV',Z0=@Z\nMV',Z.G/8RLI!RMC8.CIMRCHZRCK*.CI!RMC*RLK8RCHZV,HO.M@ZRCHZRB\\Z\nMV-@Z.I'*RB_*+VW*RCHZ;<HZRMC8RCHZ.B_8;<HORMC803HZ.LK*RCK*V-AM\nMV,IS;6W*EG/*V'-SV#S*<\\K*RI9S;7/8RFW8EI:6<T66EG,\\/$4\\<SQ%T3QS\nM/'/1T47=T3Q%144\\/-$\\/$5%/#S=T7=%T3S1T47=1=UWW44\\T=$\\W7=%=W=%\nMW3S=W47=/#Q%1='1/'<\\/#P\\W='=W3Q%1471/$5%/$5%<SS119;1/$5%EI;'\nM:;^_Q\\>&QVEIORR_QS4LQRPLQ\\<LQ[\\L+,<LOQY]-7U]71X>'GTL'EU]=%TL\nM=\"QT?7U=NGTFNKI==\"9=NB8FNKHFLAHF&G)RNAJZ)AH:LG)RLG)RLB9R<G(:\nM<AIR)B9R<G(F&G(:<G)R&G(:MR:W<K<:<G)R<K(:<B8:NK)R&G)RNAHFLG*Z\nMNB:Z&B:Z728F72:RNKJZ)EVR77T>?;I=PKI=+'0U+!YT?1Y]+\"PU-;_'+#4L\nMQ\\<L-2PL-<?'Q[\\UOS5IQ\\?'Q\\?'AL=IAL?'.CHZ+SK'QY$(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(2R#4U\"`@(\"!_?W]_?W]_?W]_RTL(\"`@(\"`@(\"`@(\"`AIQ[]I\nM:0@(\"`@(\"`@(\"`@(\"`@(\"-20)6$H@YMA$>7A\"C=@'*L-]?7U'*OU45%1#?7U\nM4<R4\"IZI=75U=3C`6[\\L+\"S'-7U]?<?'OWU]+\"S'+\"Q]-2P>O\\<>ORS'?34L\nM+\"PU'AXL+\"PL-1XL-;_'Q\\<U-34LQVDU-<?'O\\?':6F_O[P3$W83JPT7=APY\nMZ]X74;P<Z]Y@-\\RKH8%67'P[KAT=';D(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`C'QRR_O[\\L+,<L?<<U?;_'QS4L+'TL+#7'\nM?7U]?7T>?2R_ORQ]?35]+'TUORPUOQY]+'TL?2Q]-7TL?7V`2S:0$2ONZPWU\nM%P$HY!B;L[.JY4B;LYK.1#N:FCX^FJ0^QVDL+,<U-2PUQ\\=IAFEIQ\\?'Q\\>&\nMQY&_AL>_\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(V#HZ\nMREM;%!04%!04=G:51N08,UDH#?5@E#GD<)N:(FR-#(B:?.&?S&`-]1<\\RFV6\nMV,K*V,IS;7.6<W-M;<K8RMC*/'/*;<H\\V#QM0T-##`RUM4-#0T,^.SN^CHZ!\nM@2?>#:MS<\\HZ0=@ZRFW8;=C*.LK*RMC*D2_8RCHZ.I'*.B^1RB]!+\\HO.LHZ\nM0<HORCHZD3K*D<HZ:9$Z+VEIQVEI+VEID3HZD6F1:<>1:3II:2\\Z:4$Z.I$Z\nMRH;*+\\HO+SK*RCJ1RLHO.CK*.CHZ.D$Z.LK*RLHZ.MC*RLK*<]AMV,K*RFT\\\nM<]C8EMC*V,H\\RMAS;6T\\<W-SEG-M<VW1<Y:6T7/113QS/-V6/-'1T=U%T45%\nMW44\\W47=/$7=/#S1W='1T=$\\W3Q%/-$\\1=%%13S=T3S=W3P\\1=$\\/$5S/#Q%\nM/)9%/#QS/#Q%;7-S<]B1OS7'QVF1AC6_-<=I-;_'-2S'Q\\<UQ\\<LQ\\<L+,<U\nM++]]QWV_-34L-35T=\"Q]+\"PL=\"Q=NBP>NGTLLGVR=+*Z)GVR71I=&AH:LKJZ\nM)KJZNKJZ&G)R)AJZ)G*R&AHF&AIRLG(F)G*R)B9R)B8:<G)R&G(:LAH:&B8:\nM&G(:&K(:LB9RNK(:)B:R)AHFNB8:LKH:&KH:7;JZ75TFNEVZLGVZ'EVZ+%W\"\nM+\"P>=,+\"-34>?7V_'AZ_-1['Q\\<LQ[^_+&G'QRPU-6G'AL?'-<<UD9&1D2]I\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AA?R#4(\"!_?W]_?W]_?W]_?\\O+2TN0\nM86$K`((3O()67'RS\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AN)6'P@XYA$>7AGU'U\nM'.O>8&!@J^OU]?7U#?51S#=65JEU=1XU++\\L+'TL?2PL+!Z_+#5]-<=]++_'\nMQWTL'C6_-<<LORPU+,<U+!['+\"S'O\\?'-2S'+,?'O[_'QVDUQVDLQRS'+#4U\nM+&F_:1,3O'9VJ]Z?4EDHG\"?,S(0YG\"<W5I0HH8%<,'P[KAT=';D(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"S':<>_+,>_QRPL-34L\nMQ\\<L+,<L+\"PL+#5]QWT>+#4L+!Y]+\"PU-34L-;\\L?2R_?2Q]+#6_?2PL='UT\nM?35TORRJ2S:0$2ONZPWU%P'PY!B;FJ2J34@^FIK.1#N:FCX^FJ0^+!['-2PL\nM++\\LQS7'Q\\?'Q\\?'QVEIO[]I\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(D3J1ALHZRMB1+R\\Z.EM;=I4S1H,8$3-0#?5@E#GD<)N:(FR-\nM#-RL?.&!-\\S>4?7*RLK*V&W*V&UMRG,\\RMC8RLH[.SL[/CL^0T-#0T-#0T-#\nM0PRUM0Q#0T-#/CN^CHZ!@2?>#0TZV,K*V#I!03K*.CHZ+X8ZD3HZAD%I+SJ&\nMD8:1.CJ&D9&1.L<O:9$Z:<>1+R]ID6G'D2^1:6F1Q[_'D9&1:<?'Q\\=IAL?'\nMQ\\>_AFEID8:_:8:_O\\>_OR^1:6G'D9&1QY&1Q\\>1D9$O:8:1:9$OAFDZRCHZ\nMD8;*.CK*RMC*.LHZV-@Z.LK*<]ASRLK*RG-S<\\J6V,K8ECP\\<W/8<Y9S/'-S\nM<Y8\\/$66<T5%EG,\\13QS/#S1<SS=1=$\\T45%1=UST=%%1=U%W=$\\T7,\\13QS\nM/-%SED4\\/$5%<Y8\\<W-%<W/8<W/8/#QS<]C*EFV_:6G':6F&-8:&D<?'QY''\nMQX;'QY''Q\\<U-<=I:6G'OS4L+,<U++^_++]]-;]]-2Q]+'TL=!Y]+%U]'BPL\nM+%VZ?;JR?;JZPGU]NKJZNK*Z&AJZ72:RPAJZ&B9R)G(F&B9R)KIR<G(:)AHF\nM)K)R<B9R<B:R&G)R<AH:<AHF<B8:)B:RNAIR)B9R&B8:<KJZNAH:&AJZNKJZ\nM71HF)KI=PG2ZNG2RNL)TNEU=NKH>++I=+'U]?7T>?;\\U+'W'?2P>+,<L+#7'\nMQS4U++\\L:2PL:0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AA?R#4(']_\nM?W]_?W]_?W]_RTM+PY!A86$``+P3O`!67'RSD&'#2\\M_?R`@U-0@('\\(\"`@(\nM\"`AND\"7PIHYA$9PG8/7U')PG-Y24*)P745%1#9\\W5E965GU]OS4UORS'ORR_\nM'L<L-2P>-2PLQS4L?2Q]+\"Q]OWT>QQXU+\"S'Q\\>_Q\\<U+#7'-2PUQS7'QS4U\nM-34L:;_'Q\\=IQ\\?'-<<UQ\\=ID1.\\=I528Z&!`3DHH8$WE`$HY.%65E90H8Y\\\nM,+,[B!T=';D(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(OVF_\nMQ[_':;^1:37'QVEIQ\\<LQS4UO[_'++_':;\\UQRPL-<<LQ\\?''C4>-<<L+#4U\nM-;]]+,>_+'W'O[^_+#4>-2P>OS5K2S:0$2L'ZPWU8`'PY!B;FJ2J34@^FIK.\nM1)NSFCY\\FK,^'C4U+\"S'+#4UQ\\?'+\"S'Q\\=IORP(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(AH;*.B\\Z.LHZD3HZ.CHZ.CHOE0`S1J88\nM$1%0#?5@E#GD<)N:(FR-#-SQL^&!5I3>4?78RLK8RKZ.X2<-#2?ACHZ.OKX[\nM.SL[.SL[/CY#0T-#0T-#0T,,M0Q#0T-#/CN^CHZ!@9\\G#0WK.LHZ.D$OD3HZ\nMAI&1+SHZD3HZ.FEI:<?'D8;'AL?':;\\UQ\\=IQS4U-6G'-<<U:2S'-36_QRS'\nMQRS'Q[\\LQS4LQ\\<UQS4L-2PU'C4LORS'-<<L+\"S':2PUQS7'+,=I+#6&QS4U\nM-;]IQ\\?'Q\\?'Q\\>1:<>1:2_'QT%I.FG*.LJ1D<HZ.LHO.CK*;6W*V,K*RLK8\nM.G/*RLIMECS8RI;8V-AM<Y9S;3P\\/$5M/'-MECS1T99S/#QS/#Q%/-%%13P\\\nM13P\\17/1<]$\\/-%S13Q%17,\\19;8/#P\\<SQS/-@\\V#P\\/-C*V);*V$$ZRD''\nM:<<U:9''QVEIQVEI:<?'OS4UOVEID6F1Q[_'-36_QS6&-36_Q\\<U-<<U-37'\nM+\"PU-7T>ORP>'G1T?5TL+%U=72Q=NKH>NGVZ'EU=PGVRNB9=)G0F)EVZ)B8F\nM&AI=&AH:&B8FNB8FNKH:)B8F&G(:)AH:<AIR&AHF<AJR)K(:<AIR)B:R<AHF\nMNB9R<KHF)G(FNKH:PAH:&B:Z72:Z)KJZ770FNGVZLGT>75VZNKH>75T>PAX>\nM?<)=-34>=\"P>=\"Q]'C6_'GU]QRS'\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"&%A(\"#4(']_?W_+R\\O+R\\O+2TN0D&%A86$`@KP3@@!67'RSD-G#\nM2\\M_?R`@U-0@(']_\"`@(\"`AN2R7PIIMA$9SA%_51')SA5E96S:&?8&!@)X%6\nM5E965BQ]+#6_-2PL?2PU+\"PU?;^_?2S'+\"S'?34UQS4L-1XU'L>_-34LQRPL\nM-;_'Q\\?'QS6_+&EI-<<LQS4UD6F_D<?'AL?'AL<UQY&&O[QV4C,S8^&.*SDH\nMH8%6!@$HY(Y67%9CH8Y\\9*0^B!T=:+D(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`B1D<=IAFEI:<?'D9$OD;^1OY'':6F1:9$U:88UQ\\>_Q\\?':<<L\nMO[_'Q[\\U++\\U-;]IQS4L++\\L-34UQ[\\>QWTU-2PL+#7'+\"QK2S:0$2M9ZPWU\nM8`%&Y!B;FJ2J34@^FIK.1)NSFIM\\L[,^OWTU+\"PLQQXU-2PL-;\\U++\\(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`C'QY%ID2^&D9&1D3HZ\nMD3K*RB_*V,K*,P`S1J88$1%C)_47E#GD<)N:(FR-#+DBI'\".5E8G4?5M/`@(\nM\"+X8X2<-#2?ACHX8CKZ^OKZ^OKX[.SL^/CY#0T-#0PRUM0Q#0T-#/CN^CHZ!\nM@>&?#0VKJSJ1:9%IAL=ID3J1QX9I+\\?'Q\\=I:9%I:6EIAK_'+&EIQ[\\L-2PL\nMQQ['QRS'+\"PU+#6_+\"Q]?2P>+%TU75TL-34L'BPU?34U+'T>?2Q]?2Q]+'TU\nMOS5]-2PLQS4L-;]]O\\<>+\"S'+\"S'Q\\<UQ[]ID8;'O\\<OD9$OAI&1.H9ID89!\nMD9$ZD8:&+SHZ.CI!0=@Z;3K*.MC8<\\HZEFW*/#QS<SP\\RG-S<W.6EFT\\/#P\\\nM<SP\\<SQ%13P\\/&US<W-M/#S8<Y9S<SQM/-B6V-C8/-@\\V,IS;3P\\/-C*/'-S\nM<SISRFW8RMC*RCK*V#IIQVG':36_QS5ID9''-<>_:<?':<>_-6F1QS6&QS4U\nMQS7'QVF_QRS'-6EI:34U+\"S'++\\L'C4LQWTL-7TL?7TU?35]+\"PL+,)]++IT\nM=%U]++I='KI=NG1TNK*R=+ITLEVZ&B8FLB:Z&KHF&K*ZNB8:&B8F&AJZ&AHF\nM)G(:NAHF&KJR&AH:LKIR<B8F&G(:&AJZ<AJR&L*Z)AJR&K(FLAK\"LB:Z)K+\"\nMLKI=NK)T7;*Z'EVZ'GW\"'AY=++K\"72Q=+\"Q==#4L?0@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(86%A?]34(\"!_?W_+R\\O+2TM+2Y\"086%A\nM86$``;P3O()65EQ\\89!N;G]_?R`@U-0@?W]_\"`@(\"`AN2TOPIIMA$9PG%_51\nM'.2!5E964*&?-\\PW)PI6?%Q<5BPU-2Q]+'TLQS7'O[\\L+#7'?7V_'BS'Q[\\L\nM++\\L-2R_++^_Q[^_+\"PL++\\L+,?'Q\\<U+&DUQX:_Q[]I:36_Q\\?'OVEIQ\\?'\nM:6G'QW9VE3,K8^&.*SG-H8%65@$HY(Y6?%QC@XZSK*X[W&BG[[D(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"\\Z:3HZ.CI!:6DZ:2\\Z+VDZD2\\Z.I&1+VDO\nM:2_'AI&1QVDO:<<OQVF1AFF1:361O[]I:<?'-<>_:6G'QVF_-<?'-2PL-2S'\nM+\"PU++\\V2VZ0$2LYZPWU8`&7Y!B;LZ2J34@^FIK.1)NSLYN;,#\";-2PU+\"PU\nM++_'?<<L?;\\(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`C'\nM+X8OQ\\<ZAI$Z.FDO.CHZ.CI!+R\\Z+\\K*,P`S1J88$3-CH?47-SGDX9N:(FR-\nM#+D=I'\".7%8G4?4(\"`@(\"(Z.X=X-#2?ACHZ.CHZ.CHZ.CKZ^.SL[/CX^0T-#\nM0[6U#$-#0T,^/CN^CHZ!@8&?H:&<ZT0Z+Y%I.I$ZQ\\=ID<>_:<<UAL?'-34L\nM:2PLQRPL-<?'+\"PUOS4L+'UT-1XL-71=+\"PL=\"RZNBS\"?5U]+%VZ7;IT?7TL\nMNGU==+I=?;I]NGT>?5U]+%U]NEU=PL)]+'TU-5TL=#6_-34L+\"S'+,?'-;_'\nMQVG'QVG'AI''Q\\=IQY&&D6F1QSIIRCHZAB^&RLHORLHZ.LK8RLHZ;<IS;3K8\nMV-C*RI8\\<\\K8<\\K8/-@\\<\\J6/#P\\V-@\\RCP\\/',\\/'-S;3S*<W-S/#QM<]AM\nMV-B6RMC*<VUM<W/8RG-!.MC80=C8V$$ZRM@Z.LK'QRQIO[\\L+&F_QX;'-9%I\nMQ\\<UQ[_'Q\\=IAC6_:36_QX:_:6DUQVG'-37'Q\\<UQ\\?':;^_QRS'-1XUQWW'\nMORPL'BPU'C5]-34>+\"PL-2Q]+,(L+%U]?;HL77U=7;*Z7;)=LG2ZNKITNEU=\nM)KHF&B9=NB:ZNB:ZNAJZNB:R)AH:)AHF<AHF)AH:)K*RNKJZ&B8:)B:Z)K*Z\nMNK(FLB9=7;HFPKJRNKHFNB8F)K)]NKJZ='VZNEUT+'2Z77U]?7U==\"P(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AA86&0?]34U-0@\nM?W]_R\\M+2TM+PY\"086%A86$``(03O(245EQ\\86%N;@)_?R`@(-0@?W]_\"`@(\nM\"`@\"2TOPIIMA$9PG8%'U')R!5E:,8Z&!5I16X59\\,'PP7!Y]Q[\\UORPL'K\\L\nM-2PUQWT>+,?'+\"S'+\"R_O\\<LQ[\\LQRS'QRS'ORQI+,<LOS7'ORS'Q\\<UQ\\?'\nMOS6&D89IQ[^1:<?'Q\\?'+\\=ID792,S,SY>&;T`?-H8%65@$HH8Z;,#!C99NS\nMK*Y#N;&Q[[8(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(.MC*V)$Z.I$Z.CK*RD&1\nM.LHZACJ102^1.CHZ.CK*:9&1.I%ID9$Z.CJ1.FDZ:2]IACK'D<?'O\\>1Q\\?'\nMAK^1OVF1:;_'QVEIQVEI+&DL:35K;C9ND-#NZPWU%P$YY'\";LZ2JY4B;LYK.\nM99M\\,)N;?'R;++\\>+!['?34U'@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\",=I:<>1Q\\>&QR^&AL>&AFDZ:6F1.I&1ACJ1.I$Z,RL11J:.\nM$3-0H1?US#GDX9N:(FR-#+8=B$B;?%:?8/4(\"`@(\"!B.X=X-#2?ACAB.CHZ.\nMCHZ.CKZ^OCL[.SX^0T-##+4,0T-#0T,^/IN^CHZ!@8&?H:&A#433:9&1Q\\=I\nMQ[_'Q\\?':;\\U-<<L+\"PUQS4LQQXLORQ]'GTL+\"QT72Q=?;JZ'GUT'KJZ75VZ\nM)K)=75VZNK)=?;)=)KI==\":Z?<+\"LEW\"NEVR771]?5UT'BRZ=![\"+%U]+%U]\nM75U=+\"PL=\"P>ORPUO\\<LQRS'QVG'AL<UQVF1Q\\<OAL?':9&1:3HO.B\\ZD3K*\nM.D%!RI$ZRLK*.CHZV-@Z<]A!<SIS.LIM<\\IS<Y;*RLK8V$'8RI;*EG.6RLK8\nMEFUS.CK*RLISV,K*.LK*<]C*;3HZ.CK8RCHZRMC*.LHZRMB1V-C*+SHZD3J_\nM'L<UORS'+#7'+,?':<=I+,<UQS5IQS4LQRQI:;\\U-<?'-89IO\\>&-6G'-34U\nM:37'O\\=I++^_Q[\\LORPL'K\\L'K^_+\"PL+#4LOQXL?2PL'C5T'GTLPBPL'BQ]\nM?;HL?7VZNBQ]?5VZ7;JR7;(F)GUT728F75U=7;JRNK(FNETF&KJZPK*ZNKJZ\nMPB:ZNB:Z7;(:)B:ZNKJZNKJZNAI=)KI=&K*ZLKJRNG0F=+I=NKI=NKI=NEVZ\nM?7VZ?70>\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@K86&0?]34U-34U\"!_?\\M+2TM+PY\"086%A86$K`((3$X(W5E9<86&0\nM;@(\"U'\\@(-0@?W]_\"`@(\"`@\"2V[PIIMA,YPGGU'U')R!5E9<4*&!5E96X9LP\nMLWR:?!XL?2S''BPL?2Q]++\\>+#4L-2PU+'T>++\\L+,>_+\"S'QRPLORS'Q[\\U\nM:<=I+\"PLOS4LAC5IQX9ID89IQ[^1Q[^&:<?'D2\\ZQY''+Y4S,Q%AY>&;T-G-\nMH8%6!@$HH1A\\LS#.99N:\\8A#N;&G?K8(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(;=AS\nMRD'*.LI!RLHZ.G/*V#HZ.MC*.M@Z.LK8+]@Z.LHO0<J1.LHZ.CHZ.LHORB\\Z\nMAB]I:6DZ:4$Z.CHZ+Y%I:8;'+\\=ID2\\O:;]IQX;'Q\\<UOS5K;C9N;F'NG-[U\nM]827Y.&;,+.JY7\";L[/.98Y\\?`I65ER;+#4L+,<>+`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"#7'O\\>1:<>&:8:1QVDOQY&1+X8ZAB\\O\nM.B\\O.D$Z+]C*$6$11H..,S-0H1?U8!SDX9N:(FR-#+9HB$B;?%R!S!<(\"`@(\nM\"(Z.X2<-#2?A&(X8CHX8CHZ.CKZ^OCL[.SX^0T,,M0Q#0T-#0SX^.[Z;CHZ!\nM@8&?H:&AH673QSHZQ\\=IOY%IQS7'Q\\<LORS'-<=]'BR_-2Q]+#4L?70L'KJZ\nMPEVZ'EU]=+*Z7;HFNG3\"NEVZPETF)AH:LB;\"NKHF)K*Z)KJZNEVZNKJZ729=\nM729=75VZPGU]LKJZ75U]?70L?5T>?5TU+\"PLOWTLQRPL-;_'+&G'QVDU-9''\nM+\\>&Q\\?'D88ZQVEI+VF&:88ORI&1D<HZ03K*02\\ZV,K8RMC*;<K*.MC8V#IM\nM0=AM<\\K8;6TZ.LK*<]AMRLISV-C*.LK803HZV&TZV#HO.CK8+SHORM@ZRCK8\nMRLK*D88O.D$ZRCK*ALI]+'TL+'TU+!['OWW'-<?'-34U++^_Q[\\LOS4L:<?'\nMQ\\=IQ[\\L:6G'AC5I:;_'+,?'QS4L+\"S':6F_QS4UOS7'Q\\<>OS4L?2S'+'TL\nMQRPL?7TL?2PL?7TU-7TLPC5=?7U]?7U]PKI=?2Q]7<)T?;JR=\":Z?;HFLETF\nM7;JZ7;*Z729=LAH:75W\")EU=&K+\"7;JR&KK\")KHF72:ZNK*Z)EU=75TF)G0F\nMNKJZ7;JZNKI=)KI]?;JZ70@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@`86&02]34U-34U-34?W_+2TM+2TO#PY!A\nM86$K`(03$[Q@E%9<86&02TL\"`M1_(\"#4(']_\"`@(\"`C42V[PIIMA,YSAGU'U\nM'.OA5E:,4*&!5EQ<&)LPFK.:LRPL++_'?<=]?<=]?34LO[\\LQRPL+\"S'Q[\\L\nMORS'++^_+,<LQRS'+\"QI-2R_-6EIQ\\>_AC5IQS7'AI%IQY%IAK]IQX;'+R_'\nM:6DZQS,S,Q%AY7\";81$$H8Y65BLHH8Y\\FIK.1#ZD(MQ#N;&G?K8(\"`@(\"`@(\nM\"`@(\"`@(\"`C8RMAMV$'*V-ASEG/*RCK*RG,ZV&W*07/8V'/*<W/8V#HZ;<HZ\nMRMC*RG-M.FW*V#K8.LI!+R_8RCHOD<HO.CHZ+Y$Z+R_*.CII:9$OQSHZ:3HO\nM+VG'Q\\?(`C9N;B7NG\"<7]78YG.$*?'Q&Y>&;?##.@XZ;7`I65@:.QRPL\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"\"S':6DU-;^_AFF1\nMAI&1:<=I:2_':6F1QX9I:9&1.I$Z.I%!$6$11H..,S-0H2?U%QR<X9N:(FR-\nM#+:GW$B;?'R!E&`(\"`@(\"+Z.&\"<-#=[ACHZ.CAB.CHZ.CKZ^.SL[.SX^0T,,\nMM0Q#0T-#0SX^F[Z;CHZ!@9^?H:&#H8/3:<>1QY''AL<U+#4L:6DL-2P>++]]\nMOWTU=!Y=+'U=NETL=+*ZNEVZ772Z)B8:7;*Z)KJZ&KHFNKH:7;HFNAH:&AH:\nM<AHF728:&AJRLL*Z)EVZ)KI=LEVZ771='KH>NBPL+!Y]PEU]-2Q=+\"PU?;_'\nM'K_'QRPL-6G'++]I-<?'QX;':9'':<?':9&1QVEI06DZD3HZ:<J&RI'*D2^1\nMV,HZRCHZRLI!V#HZV$$ZV-@Z;3K8RLIM.MC8RCHZ.CK8;=AMV#HOD2_8RB_*\nM.B\\ZD<HZV,K*RLJ1RI'*.I'*.B\\ZAI&&+X8ZD3H>+'U=+\"Q]-5U]'C4U?;^_\nMOWV_?2PL-34U+\"PLQ\\?'+\"PU-2PU-<?'+\"PLQ\\?'OVG'Q[_'+&G'Q\\<LQS5I\nM-2S'+,?'++\\L-;_'+#4U?2PU?<<L-1XU-7U]-1XU-2QT77TL+#4>?2PL'KI]\nM?7VZ771=++I]NGU]PGU==%W\")K)TNK+\"77U]?71T)G0F7<*Z?5VZ?28FNEVR\nMNETF)B9])B8F?;HFNGTFNB:ZNKI]?;HFNET(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@`86%A2]1_?W\\@\nM(\"#4(']_RTM+2TM+2TO#86%A`(*\\$Q-@-U9<86&0PTO+RW]_?R`@(\"!_\"`@(\nM\"`C4`F[PIH[0,YPGGU'U'.LG5E:,4*&.7'PP&)NSFIJLH\"PL-2PL+'U]?7TL\nM?2R_+'V_-7U]+#5]-<<U+#5]OQ['-7T>+,>_QRPL+\"S'-37'Q\\?'Q\\?'OS7'\nMQ\\>_QVF1D<?':2^1+SIIQP@(\"#,K$1%AY7\";81$$@XY<7\"O-@XY\\FIK.1#Z(\nM(MQ#N;&Q?K8(\"`@(\"`@(\"`@(\"'-S<\\K*V',\\<SQMV-@\\;3S8EG/8/,J6EI8\\\nMRG-S<Y;8RLIMRMAS<W-SV#S8V-AS;7.6<]A!RLIS;3HZ<]@ZRCK*.CK*RLK*\nM.LHZ.I$ZRI'*.LJ&+Y%!03HZ.FG(U&L\";DNCY:$7];PYG\">!5ER7Y>&.7'QC\nM@XY65@H*E#<*\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nMQ[\\L+,<L:2QIQVF1OS61Q[^_O\\?'+R\\OD<?'QR\\Z+Y%I.FDZRI$ZD&$1EX/A\nM,S-CH9]1%QR<X9N:(FR-#+:Q(DB;LS#65@H(\"`@(\"+Z.&('>#=[A@8&.CHZ.\nMCHZ.CKZ^.SL[.SX^0T,,M0Q#0T-#H#X[.YN.CHZ!@9^?H0V#H:$N:6G'QVG'\nM:37'QS6_QRP>+#6_++\\L-2Q]+\"PLPBPL=\"RZ?7VZ7<*ZLB9=75U=75TFPB;\"\nMNAHF72:Z)B8FNAHFNKHF)L*Z)KJZNKJRPB8F&L(FLKHF=+I=='U=NKIT?7VZ\nM'BQ=72PL?5U]?7TL-2P>QS7'+\"R_:35I+,=IQ\\<UAK^1D;\\OQX;'Q\\=IQY%I\nM.I$ZAI&1.I&1ACHORLHZ0<J1RM@ZD3HZ+Y$ZD2\\O.M@OV\"_8.CJ1.B^1V-B1\nMV#K8.LJ1+\\HO.I$ZD<J1.B_*RH8ZD<K*.LHZ.H;*.CJ1.I$ZD4$Z.B^&.FD>\nM75U=?;ITNEU=+'1=+\"Q=-2P>+\"Q]QRQ]+#4L+\"PLO\\<UO\\<LQS7'Q\\?'-6G'\nM+\"PLQS6_QRS'QVDUORPU-<<LO\\<U-;_'++\\LQS7'-34L+!Y]QS4L?2PL+'U]\nMQWTL+%TU?35T+#5]+%TL+'T>+\"Q]'GU=+'U=72P>NKJZ?72Z'GT>'BRZNKI]\nM77U])KI]NGU]NK*ZNKHFNEVZ?;I=?;)TLL)=?;JZ=\"9T?;IT\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`B\"86%A2U=75U=75]34U,C4R,O+?W]_?\\M+D&%A*P\"\"O!,7-U9<86&0\nMPTM+2\\O+?W\\@U\"!_\"`@(-<?4?V[PIH[0,^LG%U'U'.LGE%:,4*&.7#`P&'RS\nMFF3QKBPUOWTU+!XU=+\\>ORQ]+\"PL'BPL+\"PU-7U]+,<L?;\\L'C6_Q\\?'+\"S'\nM+#4L+#4L+#5IQ[_'QRR_AC6_QS4U-<>1OY''\"`@(\"`@(\"!%A$1%AY7\";81$_\nM@XY\\,-`$IKZS9*S.2J#<'=Q#N;&Q?K8(\"`@(\"`@(<\\J6<\\H\\<Y;*/#S8<W-S\nM1=@\\V&UM;45M<T5MECQS;3Q%/#QMV-AS<T78/'.6/#Q%/',\\;7-S<W-SV#S8\nMRG/*RG/8RG-MV&W*RLK*V$$ZRCK8.B\\Z.MC*RCHZV)'8D3K4U`EK-FXVY:$7\nM];P<Z]Z?E%8YG*&.5EQCH8Y65H&?S,R!\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(:<<U-36_:34U:36_D8;':<?'-9%IQ\\=I:9%I.FG'+Y''\nM.H9I.B\\ZAH:1D&$1[H/A,S-CH9\\7%QR<X9N:(@5*0[E^N;X^FK/67%8(\"`@(\nM\"#N^&!@G#0TGX>&!CHZ.CHZ.CKX[.SL^/CY#0T,,M0RU0R$ATTI(2&7AH:'D\nMG)R<G`V#@YS3.I&1:;]IQ[\\UQVDLQRPLOS7'?7T>?1Z_+\"QT75T>=%U]NAZZ\nM7;K\"?5UTLEVZ)EU==%VZ7;HFNKI=)L)=NB:RLL*ZNB:Z=\":ZPB8FPGTF)B9]\nM?;I]NEU]71ZZ+\"PL'BPL'G0U770U'AXL+\"PUQRP>-;_'+,?':34UORQIAH;'\nMQ[^_D9''QR_'QR\\ZD2^1D2\\Z.FF103HO+Y$Z:9%ID9&&.H;*.B\\ORLHZRCHZ\nMRLK*RCK*.B^1.I$O.B\\OD2\\ZD3HZRLHZ.LJ1RCHOD3J1RB\\ZD9&&.CK*RCHZ\nM.CI!.H:1.H9I.B]I02^Z7;I]NL*Z?;K\"NG1=NBRZNBP>771]=!X>='TU'C5T\nM'BPU?1Z_-;^_-;\\U+,?'QQ['-<<UQRPLO[\\L+,?'+\"PU+!['QQ[''L>_+,<L\nM?7TL+\"PLOWV_QS6_-1XUQS7'OS4L++\\LOWV_?1XU+\"PL='TL'G1T+'TL+%U=\nM?2Q=71Y=NG0L'KIT'G1]?7VZ'KI='K*ZNL)=?;)]7;I]75U=7;I=)EVZ)EW\"\nM7;((\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`B\"*V%A6UL4HE=75]34U-34R,C(R`(\"`FYN\nM2R7N!UE9@A/U8%9<86&0PTM+2TM+RW]_(-0@'BR_+![4`F[PIHXK,^L-%U'U\nM'.LGE%:,4*&.7#`P&'R:FJPBKBPU+'V_+\"PU-1Z_O[\\U+'U]+#5]-2P>?1Y]\nM?7V_ORS'?7TL-2PU?35]'K\\L++\\U+\"S'-34U-<?':2S':<>&Q\\<(\"`@(\"`@(\nM\"`@(\"!$ED)`EY7\";81$_IHY\\,&$$IKZDK/%-2D,B';E#N;&Q?K8(\"`C8<W-S\nMRLK8/#QS<Y9MEG-SECP\\13QM<T4\\ECQM/$5%13S1/-&6T471ECQ%T7,\\T=%S\nM<SQSEI9%T3P\\T6W1;99M/#R6199S;3P\\/-@\\V-ASRCS8;3S*0<K8;<K8;=AS\nM.CHO;<K4\"<_4:P*JY>&?]1,<JPT78,PYZR>!5E9CH8%65H%@8%&?\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(QVG'-6EIQVF_+#4U:34UD9''OX;'\nM+VF1D9$O:2^1:2_'.B^&D9%!:6F1.CJ1D!$1[H/A,S-CH9]1%QR<X9NS\\05*\nM0[FQMCN@FIJ^,)L(\"`@(\"#L[OACA#0W>X8&!@8Z.CHZ.CA%$1$I*2M-*T],A\nM(2XNX.`AT]-*2$A(2$1$966#@X.#@^O3.L=ID<=IQVEIQS5I:;\\LQ[]IORPL\nM+!X>-35T+\"PU+\"PLPGU]7<*Z+%VZ77U=NEU=NKJZNKI=NEVZ?5U=LKJZ7;H>\nMNEVZ?;K\"?1Y=?7W\"771]+%UT+\"PL72Q=-2Q]-2PL'G0U-34U'L?'OQX>OS7'\nMQ\\>_:<<UOVEIQ\\>&D9%IQX;'QY''D9&1D9$O:6G'+\\<Z:6F&RFDZ.B]I:9&1\nMD2_*RCHZ.CHZ.LHORLJ&09'*RI$OD9$Z.CJ1+Y%!.LJ1+\\HO.LHZ:<K*.I'*\nM:3J1:2^1.I&&RFG*D8:1RCJ1+SHO.LJ1.CHZRI'\"NB9=NB;\"NK)=NGVZ75U]\nMLAX>?7VZ'BQ]+\"PLNBPL+'TL-7TL-2PU?2R_+\"PUOWTL-1XLOS4LO[\\U'K\\L\nMQ[\\LQRS'++\\LQ\\<L'C7'O[\\LORPLOWTL?1X>?7TL+#4L-2PU+,<>'BP>-34>\nM+#5]?5U]?1X>?2Q=77U]72PL=#6Z72Q]72PL=\"RZ75U]=\"QT'EVZNKJZ77VZ\nMNBQ]77T>++IT?;I=\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`B\"*V%U=<!;%%=7\nM5]3(U,C(R,@\"`FYN2TLE8=`'Y.2<JZMV`2LE)4MNJH\"`JJJJRW]_(-0@+\"PU\nM?1[4?V[PIHXKE:L-]5'U'.LGE%964*&.?#`P&'R:K/$BB'W''BR_?34U?2PU\nM+!XU+#6_=!XU-7TL+'TU+\"PL'GU]+'TL-<<UOWW'+!XU'BPU-1XU+,<UQ\\?'\nM-2PL-0@(\"`@(\"`@(\"`@(\"`@(\")`ED&XEY7\";89`_99NSFB4$ICNDK/%-2D,B\nM';E#N;&Q?K9SRG/8RLISRCP\\<\\IMV#P\\/'-%1=AS198\\;45S/#P\\145S17/1\nM<SQ%145%T3Q%EM$\\W=U%1='=<]T\\<]T\\/'/1EMW=T7,\\13S1<W,\\T=%S199S\nM/):6EI8\\V',\\/'/8V,K*/#IM<]C4U,_4\"<BJY>&!%Q,<JPWU46`<ZR>?5E9C\nMH8$W-Y\\745$7\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`C'Q\\<L:37'Q\\?'\nMO\\>_QS61OS5IOY''D9&1O\\?'Q\\?'QY$Z+SII.I&1.LHZ.B]!.CHZD!$1[H/A\nM,S-CH9]1]1SKX0HPF@5*0]QHMB&N(O$^FGP(\"`@(\"\"$[OABAZ^N<Y*&#97!E\nM1$1*2DI$1$I*2DI$1*#Q(JY*M:=:N2XA(=/3TTI*2DI*2D1E9:M*+SK':2_'\nMD<?'D<>1Q[_':<?'+&EI-;\\U-;^_QWTU?34L-2PU-7U]?2Q]+%T>?1Y]+\"Q=\nMNGU]NEUT72PL'BPL+#4L?7T>?2PL-35]+'TL?70L-5U]+#5]?;^_+#6_?2P>\nM+!X>+,?'OS7'QVDL:2S':88UQ\\<UOY''D6F1D89IAFDO:<?'.L?'.FF1QR_'\nMD9$ZQR^1.I$Z:9$Z+SK*:6F1RI$Z:6DO.I$ZD3HZ.CJ&ALHZ:88ZD2^1.FDZ\nMD9&&.CHZD2\\ZD3HZ:3K*.H8OD<J1:88Z+Y%!D4&1:4$Z0<HZRI%ID3HZ.B\\F\nM)K(F)ETFNEVZ)L)]7;JZLGU]7;I]=+)=?<+\"+%VZ72Q=?;I]+\"RZ+\"PL-5T>\nM?34L'GT>?1XU+!XL+\"R_-1Z_'BP>ORQ]+\"PU'GTL?2Q]++\\>+\"QT?2Q]OS5]\nM?2PL'BP>-2R_=\"PL?7TU?5TL+'U]+'1T+'U=-35T+!XL+%TL?2QT+%U=-5W\"\nM77TL'GTLNKJZNG0>7;HL'KJZ77U]+`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`B$`'5UP,!;%!04HM34U,C(R,C(`F[#2\\,E80>!Y($WA!-V`0$K*]#0\nM-JJJJJJJ%!2B5U=7'AXL+\"S4?V[PIHXK,ZL-]5'U'.LG5E:,4(..?#\"S2*\"L\nM\\2(=B\"Q]QWT>?<<U?1XU?35]?7TU+!Z_?7U]?2PL-34U?7TU-70L-5TL+'TL\nM+\"PLOS4LOQXL+'W'+!Y]\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\")\"0D&XEY4B;)9`_\nM99NSFB4$93N:K/%-2D,B:+E#N7ZG?K;8RLIMRI;*<\\IS<W.6RLH\\/)9S<SP\\\nM/#QS/'.6/'-SECP\\EM%S1=W=145%EMU%/-W=T44\\/-U%T7?=/-%WW44\\W=$\\\nM1=W=W='=W466W3Q%17,\\/$4\\/)9ST3QSECS8/):6<]@\\/#R`U,_4\"=2JY>&!\nMGW8<JPWU]1<<J]Z?-S=0H2=@8-X74?7U\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@UD36&Q[^_AC5IQVEIQ\\=I-6G'QY%IQ[^_QVG'QY%IQX:&+VEI:3K'+SJ1\nM.FDORFDZD4$O$1$1[H/A,S-0H9]1]1RK)X%\\FGE$.X@=N0R('1U#K*0(\"`@(\nM\"`B#H>OKH8.FIF5$2DI*2DIL(8C(Z4J@\\?&`2D,B(HC3M:=^N1!H:$,B.TI*\nM2DI*2D1$9:M$RLJ&D3J1AB\\O:89I:<?'QVG'OY''-;^_QY&_Q\\?'+&DL:;^_\nMO\\<L++\\UQ\\<U+\"S'+#4LQ[_'Q[]]-;_'+'TL+\"PUQRR_?<<UORPLQ\\<>ORPL\nM-<<U-37'Q\\?'-6DU+,>_:8;'QVEI:<>1:89IQ\\<UD;^_:6G'QY&1:6DO:6DO\nM:3J&.L>1:<<ZQVDZD6G'D2^1:89ID<=I.L>1.CHZ+VG*AFF106DZ:6F1.B^1\nM:3IID2\\OAFDZ:9%I:9$Z+R\\ZACJ&RCHZ+Y$ZD8:1.I$Z.B^1D<HZALJ1+SHZ\nM.CHZRI'*.LK*.LHOV-@F&ETF&KHFNEVZNB8FPKJZ728F=+HFNKJZNGVZ7;I]\nMNGU=NBQ=PL*Z77T>++I]PAY=NGU]?71]PBQ=?5UT+\"Q]734L+!Y=734>-2PU\nM'BPL77UT+\"Q]+\"PU+#4L72Q]'BPU+'0L=#5]-7U]?34>+!Y]-7U]'BQ==\"QT\nM+'U=?<(L77UTPBQ]+%TL?2Q=+%VZNBS\"?7U]+'U='ET(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`B\"GG5U.,#`6UL4%,C(U-34R`(\";DO#2\\.0\nM8=\"!Y)_,A!-2`2LK`0$![NY&HZHVP,!;6RPU-2PU'L?4`F[P98XK,^L-%U'U\nM'.OA5E9<4(..?#\":OJ3Q(B(=B'TU'GV_O\\<U+\"R_ORQ]?;]]'AYT'BQT735]\nM7;\\L='TL77TU+!X>71YT?1XL=%T>?70U+'T(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"&Z0;FXEY4@^2Y!Y1)NSFDL$93N:\\2)-2D,B:+E#MGZG?K;*.MC8.CIS\nMRFW80=C8V);8RCS*/#QS<T5%<T5%<W-S/#QST7,\\W=W=/-$\\/-'=1=U%/#P\\\nMT=W1/'?=/$5W/-W1T=T\\=]'1/-UW1=%%/#S=T=W=1=T\\147=EM$\\/-$\\EG.6\nM198\\/#RJU`G4\"=2JY7\".E(0<ZPWU]?4<JPT78&\"K#1=14?474?7U\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`B1OR_':9%IQS5ID6F&-<=I-<=IAK^1-<?'D<>1AB^&\nM:9$O+\\>1:9$O+SK'QY&&:6DZ:6DZD88Z$1$1[H/A,S-CH9]@]1RKWH%6,'FF\nM.Z3QW`P0L;%#(JX(\"`@(\"`@(\")RA@X.FIF5$2$@V-C9L(8C(Z4J@(B*`1\"$B\nM(HC3M:=^N;4='4,B(=/32DI$98.AZ^M$D3J1.I$Z.I&&:2\\Z.D&&D6DZ.L?'\nMD2\\Z:<>1D<<ZQY''+\\>1:<>1QY$OQY''QS61Q\\=I-6F_D6G'-<?'D<=I:9''\nM:<?'AI%IOS61Q\\>_Q\\?'D<>_D9&&:<>_D<?'Q[\\OQ\\?'Q[^&:<?'Q\\>1Q\\>&\nMQ\\>1:6DO.L>1AFDZAH9I.FEI.L<Z:9$Z.CJ108:1.FEID9%I.H8Z:3J1.I$O\nMQX:&.CHZ+SK*+SJ1:<J1:9%ID6F1D9&1D4%!RLJ&.CJ1D9&1:<HZRB\\ZAI'*\nM.CK*RI$OD<HZ.LJ1D2\\ZD<K*+R_*+]C8D4$O.B^Z)KJZ&KHF&AH:)KH:NAJZ\nM72;\"75VZ7<*ZPKJZNKHF)K)=NG2ZPEUTNGVZNEVZ'K)]LGU]77U=NKI]='U=\nM72Q='BQ]?7VZNBQ]NG1=PGVZ72Q]-5UT'BQ=75TL+!XL77U]+\"PL-7TL+#4U\nM+#4L?5TU77U]?71='C5=?5U=+#5T-5TU72Q]PGUT?7VZ77TL='1TPAZZ\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`AXGIYU=3C`6Q04\nM5\\C4U-34?VX\";FY+2VZ0)=\"!Y)_,=A-V@BLK`0%V61P<4AQ9>)ZI-2PUO\\<L\nM+#74?P+P99O0,^O>%U'U')SA5EPP8X.;?+.:OJ[Q'2)H(L<L+#4LQ[\\L-2PU\nMOS4U+#4L-34U-;\\U-7TU72Q]-34L+\"PL'ETL75U]+%TL+\"Q]P@@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"-F0;FZ0Y4@^2VYY1)NS9$L$93N:\\2)-2D,B\nM:+D,MGZV?KDZ.I&1.LHZ+R_*RMC8.LHZ;<IMV#S8;<H\\V)9S;3QS/#QM;='1\nM<W-%/#QSECQ%ED5%1=U%145%T7?1T=W1T44\\1=W=W3QW13S1T3S=1=U%/-W=\nMT44\\T=T\\W=W=/#Q%W44\\/#Q%13RJ:PG4\"=2`31B;5@$YZ]X74?4<JPT745&K\nMZ_7U]?4745'U\"`@(\"`@(\"`@(\"`@(\"`@(\",>&QSHZ:9'':9&1OY&&D<>1QVG'\nM:<>&:6EID9&_:6G'D6F&+Y%IAB^1:6DO.B_':3J103HOD9$Z:6EI$3,S[H/A\nM,S-CH8%@]7:K#9]6?`2FOK.:KB&('6BU'8@(\"`@(\"`@(\"`B#941$1$IKJJHV\nM-C9LTXC(Z4I#(AWJZ$,='=S3#*>QB(@=:$,=.Z:#H9SKG*&#IF5$.LHZ.CHZ\nMV#K8V,K8RI&1D3K*D=B1+T$ORH8O.B\\ORH8ZD4$ZD2]I.CHZ.CJ&.FF1D2\\O\nMQR\\O.I%!.FDZAFDZ.CII:6DZ.CII.B^1D9$O.CHZD2]ID3J&D2\\Z+VDZQY$Z\nM+X8Z.FEIAL<Z.CHOD2^&AD$OAI%ID2\\Z.FDZ.FEI+SK*D9$Z:3J1.I%!.CK*\nM.FDZ.CHO.FEID6DZD9&1RFF1:<<Z+SHOD6DZ.H9I.FDZ.CII:2^1:3K*.I$Z\nM.H8O.CHO.I&1.CJ1+\\HZ02\\ORI&1.I'*D=@ZRB\\Z.CK*+\\K8V-AMV,IMRCJR\nMNAH:PAJZNKJZ&AH:NK)=75TF)B8FNAJRLEVZ7;JR)B:ZLETF)AK\"729=729]\nM7;JR)KIT)EU]LGVZ=+K\"LGUTLGUTNL)]75U]PGVZNAZZ?7TL++HL?71]?7U]\nM7;I=77TL++I=++HL++K\"?;IT72Q]PEUT+\"Q=NBQT+'W\"+\"PL72P>?2QT+'TL\nM='U]?1Y=?0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(=74XP%M;%'_4U-34`G\\\";@)N;FZ0)1&!Y)\\W=A.\\=E*5=G9V\nMJJJJHT;NGGB_-2PLORPLQ\\?4U`+I1)O0,YPG%U'U')P87#`P8X.;,#\":OJXB\nM'1UH'<>_+,<L+\"R_ORR_Q[_'ORS'OWU]?1XU+\"Q]+!X>+\"PU7<)]?5T>72Q]\nMPAZZ\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\")\"0;FZ0Y4@^2VYY\nM1)NS9$L$93ND(B)-2D,=L;D,MGZY?KF1+\\<OQSHZ.FF&.CJ&.CK*+SIMRCK*\nMRLIM<VT\\<W-S;6T\\/&T\\<SR6<SS1/$71/$4\\<W.6T47=/-'=13P\\T7=%T3Q%\nM=W<\\147==W?=W=$\\T='=W=W=W='=W=W1199%W98\\/#Q%T=&J`@G4\"=2`34B;\nM5BLYG\">?4?5VJPWU]?6KJ_7U]?7U]5$7\"`@(\"`@(\"`@(\"`@(\"#K':2]!+VDZ\nM:2\\Z:3II.I%I+R]ID6F1.B^1:<>1D6G'QY$OAL<Z+SJ&.FG':9$ZQ\\>1:3II\nM.CHZD6DZD2]I,S,S.:'A,S-CH8',]1RK#9]67`2#CGRSFCN@(AVU:-P(\"`@(\nM\"`@(\"`@(95MNR,C/@(\"0D&X%TXC(Z4I#';'J7T,=:+DNM:>QB(@='0P=(:&#\nM@Z;8;3IS;<K8RG,ZV'-M;<I!<]C8.CK*.MASV#I!.FTZ.D'*.LHZ<\\K*.B_*\nMV#HZRCK*V#K*RMC*V\"\\Z.CHZV,HZV#HOV#K8+\\K8+Y'8D<HZ0=@Z.CHZ+SJ1\nMRLJ1.I&1.CK*D3HZRLHOV#HOD9$Z.CK*RLJ1:<HZRCJ&.CHZ.B^1RCJ1.B^&\nMRFDO.CIID4$O.I&1D2\\ZRI%I06DO.FDO.B^1QY&1D6EI+\\>1:9$Z.I%IRB]I\nM.CHZ:3HZ.CJ1.I&1+VEI.LHO.CHZ.LK*.CJ1.CK*.I$ZD9&1+SK8RLHZRB\\O\nMV,HZ;<IM;4'*;<HZ.LI=71I=&L)=&AI=7;JZ&AJZ75TF&B8:NKJZ&K(:NL(F\nMPKJZNB:ZNEVZNB:ZPL)=7;JZNKI=75VRNKHF7;I=NEU]LK*RNB:Z)GVZ?5W\"\nM?;I]'KI]=+I=NKJZNGVZ=\"Q]NGVZNBRZ'EU=+%U=?1ZZ71XL77TLNETL+%VZ\nM+\"S\"770>+\"PL'EU]NGU=770(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"'_4U-34?W\\\"`@)N;F[9\nM)1&!H8$W=KP3O'9V$Q,3JJJJ-JHV+\"S'-2S'QRS'Q[_4U`+I1)MA,YPG%U'U\nM'.2.?#\"S8V6;,#\":OJXB'1UH';_'-2S'+#7'Q\\<L-7V_+#4L'BPL++\\L-7TL\nM-1XL77U]-2PL?7U]'@@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\")\"0;FZ0Y4@^2VYY1)NSFDL$93ND(B)-2D,=L;:UMK&Y?KEI:37'-9%I\nMQX;'+\\>1QY$Z:3J1D3HZRCHZRLK8.FW8;3ISRI9MRFT\\RLISV-@\\<VT\\/)8\\\nM1=$\\19;1ECS=T3S=W=T\\T=W1W=T\\/-T\\W=W=W=W=/-T\\1=W=1=T\\W3S=1=T\\\nM<]$\\T9:J`@G4\"=2`34B;7\"N7Y.&!S!<<JPWU]?6KJ_7U]?7U]5$G\"`@(\"`@(\nM\"`@(D2_*+SHORD$Z.I$Z.H8OQVEI:9$O+SII:3HOQY$Z.L>1QVDO.FDZAFDZ\nMQR^1QVDO+SII:6EIAFDZ.L>1.I%I:9$O,S.5.:'A,S/EX8XW]1RK#1=6!LVA\nMCILP?+X^K\"*UL;D(\"`@(\"`@(\"`@ZV-A+PVXVJJJ0PP(%TZ[(Z4H,MN\\.C0RV\nML;DNM;9HKJX='4,=(=AMRLH\\<Y;*RG/8;<K*/'/*V,ISRLK*RMAS<Y9S<SQS\nMEI;8V&USV'/*V,K8<W-MRFW*<SS8V#QS/'.6<\\J6<\\H\\RLIM<]C*RG-S;4%S\nMRMAMRCIMRLIM.CK*<]C8<SHZV-C8RCK*RMC8V,K*+\\HO.CJ1+SK8+SJ1RCHO\nMV$$Z.B\\ZD2\\Z.H8ZAB\\Z.B^1RFDZ:8:1.B^1:3HZRCK*.CHZ.H9IQVF1:3HZ\nMAFDO.I$Z:3I!:2\\ZAI$Z.B]IACII.B^1ACK*+Y'*D2^1D3HZRCJ1.M@ZV#HO\nMRLK*09'8V,J1.CHZ.MA!.CK8RLIM<SK*;<K8.MBZNAH:&B:ZPAJZNAJZNAJR\nM&AJZLB8:&AH:)AJZ&KHF&KJRPKHF&B:ZNKJZ)B8FLB:ZNKH:&B;\"PKI=&KHF\nMPKI=729TLEU=LK)=PETF)KI]7;JZ=+JRNGVZLB:RPEVZNK*Z7;I=PBS\"77VZ\nM+'T>770>PKHL75T>++H>'ET>+'T>+'U=7;JZ'@@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"'_4U-0@R\"#4`@(\";FY+)1'6H8&4E79VO!.\\$[QVJJJJ-JHLO[\\UQQ['QRPL\nMQRS4U'_I1)MA,YPG%_7U.>2.?#\":SF6;L[.:OJ[Q'1UH'35IQRPL:2R_-;_'\nMORS'-36_-1XU+,<L+#5T+\"PL-71T'GU]\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\")`ED&X1Y4@^2VX_99NSFDL$93NN(AU-TXAH\nM?K8,N6@=L;DU+\"R_?35]'C7'-;^_-;_'QY&_:6G'Q\\=I.CHZ:<I!+\\HZD9&1\nMRLHZRCHZV-C8V,K8V#P\\V#S*V-C81=AM17-S/#P\\/#S113QS<SQS17,\\<]W=\nM/#Q%T44\\/#Q%/-%S/-'1/'-%19:J`FO4\"=2`34@^?&&7Y.$*5F`<JPWU45&K\nMJ_7U4?7U]?6?\"`@(\"`@(+SK8+SHZV\"\\ORI$ORCII+VF1+T%I+VDO+Y$Z.FF1\nMD2]IQR^1ACII:6DOQVG'D3II.I%IQY%IAFEI+SJ1.CIID2\\O+R^1,X)V.:'A\nM,S/EX8%6%QRK#1<W5LWDX59<7$B;FJP,?KD(\"`@(\"`B1+\\K*RM@Z;@()@(\"0\nMPVX%2JX\"@-.UL7X.C0RG?K8N#&AHKJXB'4,=(<K8EFT\\<]B6/#R6;98\\/,H\\\nM<]C8EFUS<W-S;=@\\<W/81=AS/#S817,\\/#P\\V$5S<T5MECP\\144\\/&W8V)9S\nM/$5S/)8\\/#QMRMAM;=C*RG,\\<SQS;=ASRI9MRMC*<W-S.LIMRCISV$%SRD'*\nMV-C*RLIM;3HZRD'*.MC802_*D3HOD<K*.CHZ.LJ1D2\\ORCI!ACK*+Y$OD6DZ\nM:6EID88O.I&&.CK'.I$Z.B^1.FDZD3K'D6F1D<<O:9$ZD2\\Z+X8ZRH:&.CHZ\nM.CJ&.LJ&D2^109%!.MC*+\\K*+SK*.CHZV\"]!V,ISRG-M.LK*.MA!RFUS.LI=\nMNKJZ)L*Z&KH:LK*RNAJR)AHFNKHF<G(:LKJZ<B8FNAIRNKJZ<B8:NK*ZNAHF\nMNK(:NKJZNKH:<KHF&AHFNAJZNET:LK)=NAI=NET:)EVRLB9=&B8:)KK\"NEVZ\nM)GVZ=+JRNKI]NKH>7;JZPGVZNKITNGU=PL(>?1Y=?1YT=!Y]77T(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"\"#4(\"#4U-0@U\"#4?\\@\"`FYN2Q$DH8%6,U*\"=A,3@G9V\nM.T-#M4-#0SL,QRR_-34LQRS4U`+I1)MA,YPG%_51.>08?#\":SD2;FBUDOJ3Q\nM(AUH'34L-;\\L-6DL++]I-2S'-2S'+\"PLQ[\\>+,<U?7TL+'T(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"!$ED&X1Y4@^2TL_\nM99NSFDL$1#N((AT2TXBG?KE#(ATB:-S\"72RZ+%TL?2PU72PU+\"Q]O[]]?<<L\nMO\\<U-34UO\\?'OX9ID8;'+Y$Z:3IID3J1RI'8.CK*;3K8.LIMV'-M<\\K*<W/8\nMRI;8/&T\\/)8\\/$5%V#QS16T\\;7,\\V'.6ECS8/&US;7,\\;0BJ`FO4\"=2`33L^\nMLV%&IAB;5C<<Z]X78%&KJ_7U]?7U]5&?\"`@(.LHZ06TOV-C*.I'*D9$ZRLK*\nMRI$O.CII.LJ1.FF1.I$O:8:1+VF1:3HO:3K'D9$Z.B]I:2^1:9$O+SHOQY%I\nMAI$OQR\\ZD9$Z,X)V.:$G,S/EX8%6%QRK#1?,5BCDX5965AB;FF1#?KD(\"`C*\nMD9'*R@A+D+,P?%96S&\"0PVX%2JX\"Z=.U?GX.C0RG?K8N#&AHKJXB'4,=(596\nM,',\\/&T\\/#S8/#QS144\\145S/#Q%/&U%;=%%<T4\\<SP\\13Q%144\\<SQ%T471\nM/)9S13QST3Q%/$5%T471<VU%<SQ%144\\/$4\\/$4\\17,\\EG,\\<VUS/)8\\/-C8\nMV',\\<W,\\/)9SED%S<\\K*.G/*V,K*;=C8;3K*V$'8.CHZRCHO.MB1D9&1D<HZ\nM:3HO.CJ1:4&1AFF106EI.H8Z.FDZD<<ZQ\\<OAI'':3HZ.CJ&D3I!Q\\>1.H8Z\nM:2_*.I&1+\\J1RCJ1.I&1RCK*.LHZ.CHORMC*RB\\ZV-C8D<HZ.B]!.LHO.LK*\nM;<K*RCHZ+\\HZ.CK*.CJZ71I=7<(FNB:Z&K(:&B:Z)B8:)B8F&AH:&B9R<G)R\nM&G*Z)AH:&KIR<KIR&B8:&G*RNKJZLAH:)KIRNKH:NAJR&K(FLB:Z&KJR&L(F\nM)K*ZNK(F)B:Z)ETF&ET:71JZ=+I=7;HF)KJRNL*ZNKHF?7W\"?7VZ'K)=NAX>\nM?7TL\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"'\\@U'_4U-34U-34(,C(?VY+\nM2Y\";@X%6,P$`4G9V@E)2.T,,M4-#0R$,0T,L+\"PLQQX@U`)B1)MA*YS>%_51\nM.>2.7#\"SSF6;FIIDOJ2L(AUH'<=IQS6_OS6_Q\\?'-34UORS'-<?'QRPUQ\\<U\nM-0@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"!$1D&X1Y4@^2Y`_99NSFDL$1#Z('6C!T[5^?KE#(B(B'8@FLKK\"PB:Z\nM)KI==+K\")KJRNEVZ=\"PL?7TL+'U==+\\L-2Q]'L<UOS4L++^&Q[^&QX9I+\\<Z\nMD<<Z.I%IRCK*.LK*.B\\ZRCK*+]C8RCK*.D'*.FUSRI;8<\\ISRLIS<Y:6;=B6\nM\"`@(\"`BJ;FO4\"=2`P=.@I$NJIDB;7%8YZR>?S,RKZ_474?7U45$GRLHZRMC*\nMV,I!.CK*+\\J1RM@ORCHZ.LJ&+Y%I:3J1.CI!.H8Z06F1QSII+Y$Z:9%I:9&1\nM.I$Z:9$OQ\\?':8:1:<?'AFG'QVDZQY'',X1V')PGE3/EX8%6%QRK#1?,E\"CD\nM)S=65G\";LYI#L;:1.B]IA@@(84MN;IJS,%96E#>0;FX%.Z[(@-.UIWX.C0QH\nML;8N#+:QB*XB(D,=(59<,&W8V)8\\/)9MED5SED5SECQS/-%%T3Q%1=%%EG/1\nM1=U%17,\\/-W1/'/1/-'113S1/$4\\1=%S/-W1ED66/#P\\T471/$4\\<Y;1EG-S\nM<SQS/'-%13QSV&T\\;7-S;=ASV'/*<]AS/,K8V'/*V-AS<SIM+VU!RCHZRLK*\nMRI'*.CJ1.I&&RB\\O.LHO.LII.CK*:2\\Z.L=ID3IID6DZ.CHZ.FG'D<<O.L>1\nMD3HZ:3HO+R^&QSII.I$OD3HZRI$Z+Y$Z+Y&&RCK*RI&1V\"^1RI$ZV#J1RB_*\nM.LHZRLK*.CK*RCK*+\\HO.D'*02_*RD'*+\\K8V,JR)AHFNB8:&G*Z)B9R<AH:\nM&KH:NG*ZNAHFNK(:<G(:&G*Z&B8F<G*R<G(:NK)R&B9R<KH:LAIR&K)R<G*Z\nM<G)RNKHF)B:R&G(F&B:ZNG*ZNKH:NB:ZNKH:&L+\"LEU==++\"NB8FNEVZ)G1T\nMPL)=PK*Z75U=NGU=70@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"']_\nM('_4U-34U-34U-34R`)+2VX^@XY<,P$K`7:\\`)52.T,,#$-#0T-#(4,,.WTU\nM?2Q_`@)B1)MA*YPG]?51.>2!5EPP8V6;FIIDOJ2L(B(='6G'QY''-8;'-<=I\nM-;_'Q\\>_Q[_'ORPL\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"+JRNF$1D)`1Y7`^2Y`_99NSFDL$1#NL'6C!T[6Q\nML2(^K\"*L(JYR<B8F&B9RLB9R&G)R)KHFNKH:LAI=LAI=&KH:NKHF?7U=PGU]\nM++I=?71=?2R_+\"PL-7TU?;_'OS7'QRQIQS61Q[]I+\\?'D2^1D9&1.B\\ZD3HZ\nM.D$Z.CJ1.LJ1.LHZ\"`@(\"`@(\"`@V;FO4\"=3JP3NNKDNJIKY\\?%8YG\">!5I2K\nM#1=@4?7U45'>.LIS.M@O;3HZ;<K8V\"\\ZRLHZD<K*V#HORCHZACK*RLJ1ACJ&\nM+VE!.CHZ:88Z.B^1:8:1D<=IACK'AL=IQR]I:6G'Q[_'D;_'D;^1,U)V')S>\nM=C/EH8$W%QRK#1?,E\"B<)S=65G\";LYI#L;:1QP@(\"`!A86%N;IJ:,%965E9N\nM;FX%.Z[(@-.UIWX.TT,=L;8NM:>QB*XB(D,=.UPPFFUMV#P\\/',\\ECP\\<Y8\\\nMV$5S/#QS<Y9%144\\/'.6<W,\\/-$\\T=T\\<SQS/-'=19;=T3S=1=$\\T9;=/#P\\\nMED5%T=%%<Y9%/$5S<VV6ECQS/)8\\V'-MV&USRM@\\;3QM<]C*V&US;7-MV',Z\nMV,K8RLK*RI$ZD3K8RB_*.LHZD6DOAH:1D9$Z:2^1D<?'.CHO.H:1:6DZD2_'\nM:3IIACHZD2_'.L>1:9&1QY&1:3IID3J1D<<Z03II.CJ&.LHZD2^1.I&&ACJ1\nMRH:1.I$Z.CK*D3HZD2^1RI'*+SHZRCK*.I$O.H8OAB_*0<K*.LI!D3HZ.D&Z\n-------- End of part 3 of 14 --------\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8009, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dark1@netcom.com (Steven Seeger)\nSubject: ANother Res QUestion!\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 14\n\nI asked a question a week or so ago about getting more res. on my monitor. I have a Magnavox MagnaScan/17 and am wondering what video cards it supports. ALso, does anybody  have Magnavox's EMail ID (if there is one) or maybe a phone number? Please reply by email as I don't read much news.\n\nThanks,\nSteve\n-- \n\n\n-------------------------------------------------------------------------------\nSteven D Seeger\t\t\t                              dark1@netcom.com~\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\"String, he's going to blow us out of the sky!\"\n\"Then why don't you hang your flabby behind out the window and BLOW him out of\n the sky???\"   -- String & Dom, Airwolf  :)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8010, "properties": {"category": "misc.forsale", "text": "From: bmaraldo@watserv1.uwaterloo.ca (Commander Brett Maraldo)\nSubject: AKG 340 Electrostatic/Dynamic Headphones For Sale\nOrganization: University of Waterloo\nDistribution: na\nLines: 14\n\n\n\tI have a pair of AKG 340 headphones for sale.  They are an electrostatic\ndyanmic headphone; a dynamic element for the bottom end and an electrostatic\nfor the high end.  They are very comfortable and sound very nice.  They are\nin like new condition.  I would like $220CDN for the pair.\n\nBrett Maraldo\n\n\n-- \n               --------     Unit 36 Research     ---------\n\t                \"Alien Technology Today\"\n  \t \t      bmaraldo@watserv1.UWaterloo.ca\n  \t           {uunet!clyde!utai}!watserv1!bmaraldo\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8011, "properties": {"category": "sci.electronics", "text": "From: haynes@cats.ucsc.edu (Jim Haynes)\nSubject: Re: History question\nOrganization: University of California; Santa Cruz\nLines: 30\nNNTP-Posting-Host: hobbes.ucsc.edu\n\n\nIn article <1qnroe$d1n@usenet.INS.CWRU.Edu> wb8foz@skybridge.scl.cwru.edu (David Lesher) writes:\n>An now-deceased prof told us willing students about a project he had\n>worked on during WWII.\n>\n>They needed a mega-power PA with very clear audio quality. The purpose\n>was to bellow at refugees from aircraft.\n>\n>Their solution was a giant compressed-air source, and a horn with\n>parallel shutters worked by a small audio system. I think he said it\n>worked very well, thus the War Dept. cancelled the project ;_}.\n\nGee, I got the idea from somewhere that devices like this were in common\nuse in WWII, so that commanders on board ships could bellow at the troops\nlanding on a beach, for example.\n\nWhich reminds me of an anecdote from the mid-60s.  At a communications\nconference a Marine Corps communications officer said he didn't care\nmuch for all the spread-spectrum multi-access expensive communication\nsystems that people were talking about at the time; what he wanted\nwas a kilowatt broadcast transmitter on the ship and a $4.95 Japanese\ntransistor radio stuck in the ear of every Marine hitting the beach.\n-- \nhaynes@cats.ucsc.edu\nhaynes@cats.bitnet\n\n\"Ya can talk all ya wanna, but it's dif'rent than it was!\"\n\"No it aint!  But ya gotta know the territory!\"\n        Meredith Willson: \"The Music Man\"\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8012, "properties": {"category": "alt.atheism", "text": "From: mas@Cadence.COM (Masud Khan)\nSubject: Re: Slavery (was Re: Why is sex only allowed in marriage: ...)\nOrganization: Cadence Design Systems, Inc.\nLines: 39\n\nIn article <1993Apr12.124221.22592@bradford.ac.uk> L.Newnham@bradford.ac.uk (Leonard Newnham) writes:\n>\n>Oh, this all sounds so nice!  Everyone helping each other and always smiling\n>and fluffy bunnies everywhere.  Wake up!  People are just not like that.  It\n>seems evident from history that no society has succeeded when it had to rely\n>upon the goodwill and unselfishness of the people.  Isn't it obvious from\n>places like Iran that even if there are only a few greedy people in society\n>then they are going to be attracted to positions of power?  Sounds like a\n>recipe for disaster.\n>\n>-- \n>\n>Leonard               e-mail:  L.Newnham@bradford.ac.uk\n\nLeonard, I'll give you an example of this....\n\nMy father recently bought a business, the business price was 150,000 pounds\nand my father approached the people in the community for help, he raised\n60,000 pounds in interest free loans from friends and relatives and \nMuslims he knew, 50,000 had cash and the rest he got a business loan, after\npaying off the Muslim lenders many of them helped him with further loans\nto help him clear the bank debt and save him from further intrest, this\nis an example of a Muslim community helping one another, why did they help\nbecause of their common identity as Muslims. In turn my father has helped\nwith people buying houses to minimise the amount of intrest they pay \nand in some cases buy houses intrest free with the help of those more\nfortunate in the community. \n\nThe fact is Leonard it DOES work without a fluffy bunny in sight!\niThat is the beauty of Islam.\n\nMas\n\n\n-- \nC I T I Z E N  +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+\n_____   _____  | C A D E N C E  D E S I G N  S Y S T E M S  Inc. |\n     \\_/       | Masud Ahmed Khan mas@cadence.com All My Opinions|\n_____/ \\_____  +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.381+0000", "event": "documents", "entityId": 8013, "properties": {"category": "sci.electronics", "text": "From: jmichael@vnet.IBM.COM\nSubject: Electric power line \"balls\"\nArticle-I.D.: almaden.19930406.142616.248\nLines: 4\n\nPower lines and airplanes don't mix. In areas where lines are strung very\nhigh, or where a lot of crop dusting takes place, or where there is danger\nof airplanes flying into the lines, they place these plastic balls on the\nlines so they are easier to spot.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8014, "properties": {"category": "comp.windows.x", "text": "From: matt@centerline.com (Matt Landau)\nSubject: Any recent information on Frescoe?\nOrganization: CenterLine Software, Inc.\nLines: 4\nNNTP-Posting-Host: 140.239.1.32\n\nDoes anyone know of any recent information on the Frescoe work being\ndone by the Consortium?  I've seen the short description that was \npublished in The X Resource, but am looking for something with a bit\nmore depth to it.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8015, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Re: My Gun is like my....\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 84\n\nIn article <1993Apr16.194708.13273@vax.oxford.ac.uk> jaj@vax.oxford.ac.uk writes:\n>What all you turkey pro-pistol and automatic weapons fanatics don't seem to\n>realize is that the rest of us *laugh* at you. You don't make me angry, you\n>just make me chuckle - I remeber being in Bellingham, Washington and seeing a\n\n[Warning: Flammage to follow...]\n\nAh, that British sense of humor.  Probably got a real gut-buster going\nwhen the IRA blew that kid up a couple of weeks ago, huh?  Of course,\nin Britain, your government has ordered you defenseless, so your way\nof coping with violent criminals is to laugh at victims.\n\n>pick-up truck in front of the car that my friend and I were in. It had a bumper\n>sticker proclaiming \"Gun Control is a firm grip on a .45.\" Now I'm sure that\n>that wanker thought he was pretty cool.\n\nI don't know about a .45.  My own preference is for 9mm.\n\n>What he didn't realize was that we took a photo of the back of his truck, and\n>showed it to our friends when we got back to Vancouver,  Canada (where I'm from\n>originally). People were guffawing at the basic stupidity of such a\n>sticker, and the even greater stupidity of the person who put it there in the\n>first place! :)\n\nAh, Canada.  Where the criminals don't bother with checking to see\nif the victims are home.  They just break on in.  America's a little\ndifferent, you see.  Criminals worry a bit more about getting shot,\nso they more frequently check to see if anyone's home.\n\n>I knew somebody else who went to one of your \"Gun-mart\" superstore places, just\n>so he could experience the sight of people putting guns and ammo into shopping\n>carts! I didn't believe it myself until I drove by one in Vegas last year!!!\n\nI've heard Gun World in Phoenix, Arizona, is fantastic!  I'm hoping\nto visit there myself soon.\n\n>Now that I live in Britain, I can see how the rest of the civilized world\n>perceives you gun-nut morons. The BBC recently referred to the American \n>penchant for pistols, automatic weapons,etc.  very  appropriately - it was\n>called a \"national eccentricity.\"\n\nAh, Britain again.  Isn't that the place where you're guilty until\nproven innocent?  Tell me, Mr. \"jaj@vax.oxford.ac.uk\" didn't Britain\ncome begging to us \"gun nut morons\" in the early 1940s for guns to\ndefend yourselves against Hitler?  Seems as though your supposedly \nenlightened government had disarmed you: \"Aw chaps, you can jolly\ngive up your guns.  If that Hitler man starts to threaten, we can \nalways hit up the Yanks for a few guns.  They've got a bloody\neccentric habit about those guns, you know.  Just hand in your\nshotgun, that's it.  Thank you.\" \n\n>The only problem is that Canada, I hear, is suffering from your national\n>eccentricity, in that easy to purchase weapons are being smuggled cross the\n>border.\n\nAin't it just amazing how those black markets work?  Damn if those\ndrugs from south america keep coming over our borders, too, even\nthough we've banned them.  Guess we might as well legalize them.  \nMakes you want to send fifty bucks to the Libertarian Party just\nthinking about it, doesn't it? \n\n>Anyway, all you gun nut Rush Limbaugh fans, please *keep* up your diatribes\n>against Brady and other  evil \"Liberal media\" plots  - you 're so damn funny!\n>You provide endless amounts of entertainment in your arguments and examples of\n>why someone should be allowed to carry a piece! Keep us all chuckling!\n>\nYour close-minded ignorance is without parallel.  I guess that's what\nhappens when you're raised as a \"subject\" without rights.  Your\ntype gravitates to those who desire to hold power over you.\n\n>Hell, I miss those NRA ads with Gerald McRainey now that I'm over here! Those\n>were like Monty Python sketches!\n\nJust chuckle as the cops beat you senseless to get a confession.\nJust laugh yourself silly when you find that confession is valid\nin court.  \"Hey mate, this is justice, British style.\" \n\nDrew \n--\nbetz@gozer.idbsu.edu\n*** brought into your terminal from the free state of idaho ***\n*** when you outlaw rights, only outlaws will have rights   ***\n*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8016, "properties": {"category": "rec.sport.hockey", "text": "From: ragraca@vela.acs.oakland.edu (Randy A. Graca)\nSubject: Re: Wings will win\nOrganization: Oakland University, Rochester, Michigan, U.S.A.\nLines: 29\nNNTP-Posting-Host: vela.acs.oakland.edu\n\ngolchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n\n>Bryan Murray has done very little as GM...Yzerman, Fedorov, Cheveldae,\n>Chaisson, the whole Russian strategy was a product of the previous\n>GM...Murray has made a couple of decent trades...that's about it...\n>that would hardly rank him as the best GM.\n\n>Wasn't Primeau, Murray's first decision as GM...\n\n>Gerald\n\nThere are many teams in the NHL who have taken a liking to Russian players.\nThe \"whole Russian strategy\" is not specific to Detroit or to Devellano,\nwho was GM before Murray.  What the previous GM also did was to trade \naway several players who have gone on to do well with other teams, most\nnotably (in my memory) Murray Craven, who had a few very good years with\nPhilly after leaving here.  Also, it's not the volume of trades that will \nnecessarily improve a team, but the quality of them.  Trading Adam Oates\nfor Bernie Federko was just plain stupid, even if Federko used to be a \ngreat player at one time.  Most of Murray's trades have worked significantly\nto the Wings' advantage, with those that didn't being soured mainly by \ninjury to the players involved (such as Troy Crowder, who suffered back\nproblems from which he never really recovered).\n\nPut Scotty Bowman, Pat Burns, or any of the other better coaches in the \nleague behind the bench of this Detroit team, and they could beat anybody.\n\n--Randy\n \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8017, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 09/14------------ Part 9 of 14 ------------\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 958\n\n\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',3'$9F8+\"Z5'1]_?W]_?WWIZ>BHJ*BHJ*BHJ*BHJ*GIZ\nM>GIZ>GIZ*BHJ*GIZ>M_?1T>EI0L+\"V9F9F9FR,A_?W_(5Z(46Q04%%=75VO4\nMU-34U-34U`(\"`@(\"`@(\"`M34?W]_?]#084O#%%O`.#AUG@&$`0$Y.?518)0&\nMC#`P8V-55555555559-65@HWGV`7]?7U%Q>?GY^?GP!@45$&*2G:VBDIGIZ'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'34T2P<'HP<$2$A+!P<'!P1(2$A)-34U-34TM,)11-];6UM;6\nMUM8[(3N^AX>'AX>'AX>'AX>'AX?$9@NE1]]Z*BJ[`SW2&;!3[8LTQ<7%9V=G\nM9V=G9V=G9V=G9V=GQ<4TBXN+B^WM4U.P&7'2TCT]F0.[>D<+9C&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AVYAA`$DF&IJH*\"NKJZ(B(B(W-P0N;:VMK:V\nMMK:VN=R(KJ0M+2W:AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMS^K/S\\]K:VLV-C;9V:D'E5E9E5G9V=G9V38V-C;``(*\"O!,3O((``````\"N5\nM=A.\"*RDI]/2,!@:4-Y2,]\"G:9&2L[,;OQO&D:@=Y><[.!05L;&QL31(2$L'!\nMP<$234U-34UJ)\"0*\"I_U\"B0DAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?%-(N+4[`9&1D9&7%QTCV9\nM`P,#`UY>7EZ[*M]'I:6E\"\\0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@NE1WHJN[N[N[LJ*GK?1Z4+9C&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<3$Q&9F9@L+I:5'\nM1T='WT='W]_?W]_?>GIZ>BHJ*BHJ*BHJ*GIZW]]'1T>EI:4+\"PMF9L3$U-3(\nMR'_(HJ);P%M;%%=75U?4U-34U-34U`(\"`@)N;FYN`@)_?R`@(-0!*]`46UO`\nM.'5UG@&$`0$Y4?518#<&!HR,8Y.3M+15556TDY-65C>?8!?U]?47%Y^?@8&!\nM7`H'S%%XGJEUAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'34T2P>CHP<$2$A(2$A(2$A(234U-\nM34U-3<[:C%%@!M;6UM;6UIN^0R&^AX>'AX>'AX>'AX>'AX>'AX>'AS%F\"PNE\nM1]]Z*EX#F3W2&1FP4^WM[>WM[5-3[>U34U-3L+\"P&1EQ<7%QTM(]/3T]F9D#\nM`UZ[N[LJ>M]'I0MF,8>'AX>'AX>'AX>'AX>'AX>'AX>'R&XK$RLD))AJ:J\"@\nMKJZNB(B(W-P0N;:VMK:VMK:VN=R(KMK:VMHI](>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX=K:S8V-C;9V=FI!UE94@?9H]G9V38V6UN5\nM=G83$Q,3$X(!`````(*$$W:5]/3T](P&!I0WS,R4C/3:+62L[,;O[*RDF`8%\nM!04%!04%!6QL;&P2$A(2$A(234UL3:YJ)`J!GY\\7\"B0DAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?M\nML!G2TCV9F9F9F9F9`P,#`P,#`P->NRIZ1Z4+9L0QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\"PNE1]]Z*KN[\nM7EZ[NRHJ>M]'\"\\2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',<3$9F9F\"PL+I:6E1T='1]_?WWIZ>BHJ*BHJ*BHJ*BHJ>GIZ>M_?\nMWT='1T>EI0L+I:6EU-34U,C(HJ);P,!;%%=75U?4U-0\"`@(\"`@(\";FYN;FYN\nM2\\M_?R#4('_0*RL46\\`X=76>>%*$`2@Y4?518#>45@:<8Y.3D[15556TDY-0\nM\"I^?%_7U]1<7%Y^?@8&!UHXK88>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=-31(2P>CH\nMP<$2$A(2$A(2$A(234U-34U-SBTP!O7,!M;6UM;6FYN;0R&^2(>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS'$\"Z5'WRI>`YF9F9F9F3T]/=+2TM+2TM+2TM+2TCT]\nM/9F9F9F9F9F9/3T]/3V9F9D]/3T]F0->N[LJ>M^E9L3$,8>'AX>'AX>'AX>'\nMAX>'R\"4!=@$*)\"28:FJ@H*ZNKJZ(B-P0N;:VMK:VMK:V$-R(KBDI*?3TC(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS;9V=G9\nMJ5E94EG9HZ.CHS9K:W9VO!.\\=G9V$Q.\"````@H(3$X(`]/3TC(P&!I0WS,PW\nM!O0I+62L[*>G(F2SF)\\%!04%!04%!05L;&QL$A(2$A+!P<'!W*YJ)(&?GQ>?\nM\"B0DAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX?2/9D#7EY>7EY>7KN[N[N[N[LJ*GK?I6;$,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q\nMQ&9F\"Z5'W]_?>GHJ*KN[NRHJ>M]'I0MFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<3$9F8+\"Z6EI4='W]]Z>GIZ>GHJ*BHJ\nM*BIZ>GK?W]_?WT='1T='1T='1Z6EI:6E1]_?U-34R,C(`A1;.,!;6Q2B5U=7\nMU-0\"`FX\"`@)N;DM+2TM+`@)_(-0@?\\M+)5<46\\`X=:F>`82$`2@Y]?518#>4\nM!@;K4%\"3D[2TM+2TDY-04)\\7%_7U]1<7%Q>?GX&.CHYA8=\"'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX=-$A(2P>CHP<$2$A(2$A(2$A)-34U-34W.SMKT-U',@8'6UM;6\nMFYL^.R$[2$B'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$\"Z5'>BJ[N[N[N[M>\nM7EY>7EY>7EY>7KN[7EY>`P,#F9F9F9F9F3W2TM+2/=+2TM+2/9D#7KN[>GK?\nMWT='1T='\"V;$AX>'AX>'AX?4`M!V=H$*\"B0DF&IJ:J\"@H*ZNB(C<N;FVMK:V\nMMK:YW(B(KO3T](R,!LR'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'V0>54EG9-C8V-FMK:W:\\$[QV4E)V=A-V=H*\"O!,3\nM@@#T]/2,C(R,C(P&-S>4!O0IVF2L\\>_&\\:1J!A<WZ>GIZ>GI>04%!6QLXN(2\nMP<'!P<'!B*YJ)`J?%_47\"B2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=>NRIZ>GIZ>GK?W]_?1T='\nMI0MFQ,3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',<1F\"Z6EI4??WWHJ*BIZ>M_?W]]'I0MFQ,0Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F\"PNEI4??\nMW]_?>GIZ>GIZ>GIZ>GIZ>M_?W]_?W]_?W]_?W]]'1Z6EI:6EI4='1Z5K`@(\"\nM`@)N;A1;.,#`6Q04%%=7U,@\"`FYN2TM+2TM+2\\-N`L@@U\"!_RTMA85<46\\!U\nM=9YX`82$`2@Y]5%1S#>4!NLH4%!0D[15556TDY-04)\\7]?7U%Q?>WM[>WI^!\nMCHZ.$1&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ(2$A(2$N@2$A(2$A(2$A(2$A(2$DU-\nM34W.SC\",S/5@GX'6UM;6FYL^/B$AOKZ'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<QQ&8+I4='1T='W]]Z*KM>7KLJ*BHJ*KN[NUY>7@,#`P.9F3T]/9F9\nMF9F9F9F9F0,#7EY>NRHJWT='1T>EI6;$AX>'AX>'AP+(2RN\\%Y^!\"@HD))B8\nM:FIJ:J\"@KHB(W!\"YMK:VMKD0W(BN]/2,C`:4S&\"'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AUG9-EMK:Z+/O!,3\nM=G92E3.5=G83O+P3O+R\"`/3T](R,C(R,]/2,C`8&C/0I+62L\\5KLK*288&`&\nMZ>GIZ>GIZ04.#N+BXN(2$DU-34W<KJ!J)`J?%_47@23JAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX??\nM1T>EI:6EI:4+\"V8+\"PL+9L2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+\"PNEI4='WT>EI0L+\"Z4+\nM\"V9F9L3$Q#$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',3'$Q&9F\"Z6E1T='1T='W]_?1T='1T='1Z6EI:6EI4='1T='1Z6EI:4+\nM\"PL+\"PMF9L3$SZ(42TM+2TM+)5O`.#C`6UM;%%=75\\@\";DO#P\\-+)24E2\\-N\nM`L@@U-34`FXE5U=;P,!U=9YX`5*$`2A1]5%1S)0&!E!04%!0D[2TM+2TDY-0\nM4%#>]0T-WB<GWA<7%R>!@8Z.$1$1AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ(2$A(2$N@2\nM$A(2$A(2$A(2$A(2$DU-;&Q553\",S/7>)X&!UM;6FYL^/CLA(4I(AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F9@NEI4='W]]Z>GIZ*BJ[\nMNUY>`P,#7EY>7EY>7EX#`P,#`P,#`P,#7KN[*BIZW]]'I0MF,3&'AX>'AX>'\nM;@+()2MV]1>?GPH*)\"0DF)AJ:FIJH*ZNB(C<W!`0$-S<B(BN](R,!C<W8%%1\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>BS\\\\3O'9V=I4S,S,SE79V=G9VE3,SVBGT]/2,C/3T*2DI]/3T\nM]\"G:+62D[._Q9+,&%P:8F(\"`Z>GIZ>D.#@X.;&QL$A)L;+G<KJ!J)`J?%_7U\nMGR1960>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX?$Q,1F9F9F9F9FQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9F8+\nM\"PL+\"PL+9F9F9F9F9F;$Q,3$Q,3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS$QQ&9F\"PL+I:6E1T='1T='I:4+\"V9F9F;$Q,3$\nMQ,3$Q,3$9F9FQ,3$Q#$QAX>'AX>'AQ1;6\\!U86%A86%A86'`.#C`P%M;6Q17\nM%%MN2\\-+)4M+2TM+PVYN`LC4U-3(`DM75U=;P#AU=9YX`5*$*\"A1]5%@-Y0&\nM4,W-4%!0D[2TM+2TDY-04%`H]?47GY^?GY\\G)R>?@8Z.CA$1$8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'$A(2$A(2Z!(2$A(2$A(2$A(2$A(2$A)-;&Q5+3\",-U'>WI^!UM;6\nMFYL^H*`A(=-(1(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS$Q9@NE1]]Z*BJ[7EX#`P,#`P.9`P->`P,#7EY>7KM>7KN[NRHJ>GK?\nM1Z6EI0O$,8>'AX>'AX>'2\\@\")2N?%_47%Y^?\"@HD)\"28F&IJ:J\"@KJZNB(B(\nMB(B(B*ZN](R,!I0W8%%148>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW9V=G9V4I4S,S,S,Y65,S,S,Q$1\nMVMHI*?3T]/0I*=K:VBDIVMHM+62D[*?QI&K,-YAJ:IB`#@X%!8#IZ04%!>GI\nM!05LMA\"(KJ!J)`J?]?7UGYZXN+B>GH>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,0Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',3'$Q#$Q,3$Q,3&'AX>',3$Q,3$Q,<3$Q,3$Q,0Q,3$QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$Q,1F9@L+\"Z6EI0L+\nM\"PMF9L0Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'%%M;6\\#`P`$!\nM`2LK*P$X=3@XP%M;6UL46\\!;;FY+2\\/#PVYN;FX\"R-34U-3(`@*B5Z);P#AU\nM=:F>`0&$.3E1]5%@-Y164%!04%!0D[2TM+2TDY-04%`H]?47GX&!@8&!GR>?\nM@8$8&!$1$1&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'31(2$A(2$A(2$A(2$A(2$A(2$A(2$A(2\nM36Q5+3\",-_7>)X&!UM;6FSX^H*!#(2%*1'\"'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+I4='W]]Z*BHJ*BJ[N[N[N[LJ\nM*GIZ>GIZ>GK?W]]'1T>EI:4+\"V;$,3$QAX>'AX<E;M1N)=`*GY\\7]?47GY\\*\nM\"B0D))B8:FIJ:J\"@H*ZNKJZNKJ0I*?2,C`8WS&!148>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'=G9V=G9V\nME3,S,S,S,S,S,S,186%D+2W:*2DI*2G:VBTM+2TM+2UD9&JD[,:LI)@7!FJD\nMI&J8@(#JZNKJZNGIZ>GIZ>FYMMR(KJ\"8)`J?]?7UGU)24E)24E*'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<Q,3$QAX>'AX>'AX>'AX<Q,3'$Q,3$,3$QAX>'AX>'AX>',3$QQ,3$Q,3$\nMQ,3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q\nM,3'$Q&9F9F9F9F9F9F9F9L3$Q,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX?/5U>B%%O`P+P3$[QV=G:\\=75U.%M;6UM;P'5;H@(\";FYN;FX\"`@+(\nMU-34U-0\"`A2B5Z);.'4X=76>>`&$.3GU]?5@S)104%!04%!0DY.TM+2TDY-0\nM4%`H.0W>GX&!@8&!@>'AX>&.CAB0D!$1AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=L;!(2$A(2$A(2\nM$A(2$A(2$A(2$A(2$A)-36S.+3\",S`W>GX'6UM:;FSX^H$-#(2'32$APAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\nM\"Z5'W]_?W]_?W]_?W]_?WT='1T='1T='1T>EI:4+\"PL+9L3$Q,0QAX>'A^XE\nM`M0\")20D\"H&?GQ?U]1>?@0HD)\"0DF)B8:FIJ:FJ@H*\"@H*0I*2GT](R4-\\Q1\nM45&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX=V=E)V=G92E3,S*S,S*RLS86%A):RL9&0M+=K:VMK:+61D9&1D\nM9&1D9&ID[,9DLP;UF+-D9+.8F&L)@(\"`@(\"JJJJJ\\(BYMMR(KFJ8)`J?]1?U\nMN+B>G@<'![BXAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS$QQ,3$Q,3$Q,3$Q,3$Q&9F\"PL+\"V9F\"PL+\"PL+9F9F\nM9L1F9@L+I:6EI:6EI:6EI0L+9L0Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS$QQ,3$9F9FQ,3$,3$Q,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AW]_(\"#4(']_RX1VO+P3$Q,3=75U=5M;6\\#`\nM=77`%*+(`@(\"`@(\"R,C(R-34U\"!_HJ)75Z);.'4X=76>>'@Y'/7U]1=@S`'-\nM4%!04%!04%\"3DY.3DU!04%`H.2@G@8&!CHZ.CA@8&!@8&$B0D-G9;H>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AVQL$A(2$A(2$A(2$A(2$A(2$A(2$A(2$A)-;$UD+2D&40W>@8'6UM:;\nMFSX^H$-#B\"'3(;Y(AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX?$9@NEI:5'1T??W]_?1T='1T='I:4+\"PMF9F;$,3&'\nMAX>'AS&'AX>'AX>'[NZJU-3(H&J8)\"0*\"I^?%_47GY\\*\"B0D)\"0DF)B8:FIJ\nM:FIJ:MK:VBDI](R,E#=@45',AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AW9V=G9V=G:5,RLK86%A*RLK824EK*RL\nMK&1D9&1D+2TM9&2LK*RLK*RL:K.LQAVD:I11F*3QK*1JF)B8-C8V-C8V-C:D\nMH*ZYMMR(KFHD)`J?%Q<7!Q$1$1$'$1$1$8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$9F9F9@L+\"PL+\"PL+\"PNEI:6E\nMI:6EI:6E1T='1T??WT??WWIZ>GHJ*BHJ*BHJ*GIZWT>E9F;$,3&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'PTO+?R`@?TN086&$\nM=KR\\O+R\\=75U=<!;P,`X=74X6Q2BR,C(U-34U-3(U-34U'\\4HE=75Z);P'4X\nM.'6>>'@H.?47%Q=@-P'-S5!04%!04%!04%!04%!04%`H*\"A0@1@8CHX8&!@8\nM&!@8&$B^;FYN;FZ'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AVP2$A(2$A(2$A(2$A(2$A(2$A(2$A(2$A)-\nM34UD,(Q@#=Z?@=;6UM:;FSZ@H$-#B+4A(2%(1(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9F9F\"PNE1T='1Z6E\"V9F\nM9L3$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX?N[D:J@-2NH*!J:B0D)`J!GQ?U\nM%Y^?\"@H*)\"0D)\"0D)\"28F)@DF-K:VBDI*?2,C)3,45%@-X>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>\\=G9V=G9V=G:5\nM*RLK82LK*RLK*V&LK*RLK*RLK*RL9&1D9*RL\\?'Q\\?'QLZ2LI^RDF#=@F*3Q\nM\\62D:IAJI-RVMMR(KJZDH*X0MMR(KFHD)`H*%Q=2,S,S!P<',S,S!Q&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$\nMQ,0Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ&9F\"PL+\nMI:6EI4='1T='W]_?W]_?>BHJN[M>7KN[N[N[N[N[N[N[7EY>7EY>7KLJ>GK?\nM1Z4+\"V9F9F;$Q#$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX=+2TM_?]34(']+2TN0A':\\$Q,3$W6>=<!;P,`X=75UP%L45]34U-34U-34\nMU-34R!045U=75Z);P'4X.'6>GI[-*&!@GY\\W`2LKS<W-4%!04%!04%!04%!0\nM4,TH.2A0DQ@8&!@8&!@8&!A(2$B^;F[+RW]_AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>';!(2$A(2$A(2$A(2\nM$A(2$A(2$A(2$A(2$A)-;&3:C)3UWB>!UM;6FYN;/CZ@H$-#B(B((2'32D2;\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q,<3$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A^[N1JJ`\nM@(\"(KJ\"@:FJ8)\"0*@9\\7]1>?GX&!\"@H*\"B0D)\"0D)\"0D*2DI*2DI*?3TC`8W\nM45',E(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'A[R\\O+R\\O'9V=E*5,S,K*RLK*RLK*RUD9*RLK*SQ\\?'QK*RLK*SQ\\>SL\nM[.RFI&3Q[^RSC&!@F*0B(JRD:IAJI-RVMMR(B*ZDH(C<MMR(KFHD)\"0DGW83\nM$Q,3$[QV=G9V4C,SAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<QQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q,<1F9@NEI4='1T??>GHJ*KN[N[N[7@.9F3T]F9F9`YF9F9F9F0,#\nM`YF9F9D#7KN[7KN[*GK?W]]'1T='I:6E\"PL+\"V;$Q#$QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'ATM+`G]_(-34U\"!_?P)+2TL!`0$!`0&>J77`P#AU\nM=75U.,!;%%=7U,C(R`(\";DLXP%L45U=75Z);P'4X.'6>GLW-E)0*\"@H**RO0\nMT,W-4%!0S<W-S<TH*,W-S2@H.2A0DU48&!@8<'!P2$A(2$A*2LM_?W\\@((>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<2$A(2$A(2$A(2$A(2$A(2$A(2$A(2$A(2$DUL;\"TP!E$-)X'6UM:;FYL^\nM/CZ@H$-#0T-#(2'3TTI$98>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'.>Y&JH\"`@!\"UB*ZNH&IJF\"0D\"H&?%_47%Y^?GY^!\"@H*\"@H*\nM\"@J!]/3T]/0I*?3TC`8W45',!O2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'$Q,3$[R\\O(2$A()2,RLK*RL!`0$K*=HM9&2L\nMK/'Q[.SL\\?'Q\\?'L[.SL[.RFIO'L[_&S!F!@F&3L[/&D:FIJI-RVMKG<B*ZD\nMKHC<MA\"(KFHD)\"0DGQ,3$W9V=E)24G9V$W92,X>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',3'$9F8+\"Z5'1]]Z*BJ[NUX#`YF9/3T]TM+2\nM<7'2TM(]/=+2TM+2/9F9F9F9`P->7EY>7EZ[N[N[N[LJ*GIZW]_?W]]'1Z4+\nM9F9FQ,3$Q#$Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AP)+`G\\@U-34(']+2TM+\nM2TN0`2O0826>J75U=3AU=:FI=77`6U=7HL\"I4GBI=75UP%L45U=75U<4P#@X\nMP'5UGE!0\"@H*\"@HK*]#0T,W-4%!0S<TH*\"@H*\"@H*\"@H.2A0DU552$A(2$A(\nM2$A*2DI*2LM_?R`@(\"`@AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AVP2$A(2$A(2$A(2$A(2$A(2$A(2$A(2$A(2$DUL\nM;+.,-PW>G];6UIN;FSX^/CZ@H*!#0T-#KCO3TTI*1&6'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=9.>ZJ@(\"`MK80B(BNKJ!J:I@D)`J?\nMGQ?U]1<7%Y^?GX$*\"@H*@9^,C(R,C/3T]/3TC`;,46`WC/3:AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AQ,3$Q,3$[R\\O+R\\O+R\"\nM`0``*P$!`0'T*2G:+61DK/'L[.SL[.SL[.S&QL;L[$VFIO'&I_%J!E%@F&0B\nM[/&D:FJSI-RVN;FYB*ZDKH@0MKG<KFJ8:FHD$Q,3$Q,3$Q,3$Q,3=E(S,X>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q&8+\"Z5'W]]Z*BJ[\nM7@.9F9D]/3T]/=)Q<7%Q<1EQ<=+2TM+2/3V9F9D#`UY>N[N[N[N[7EY>7KN[\nMN[N[*BHJ*BIZ>M_?W]]'1Z6EI:4+\"V9F9L3$Q#$Q,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMU-34U\"`@(']+2TM+D)`E82LK`;P3=@$!J75U=75U=9Z>GG4X6Q175\\!U`0&>\nMJ75UP%L45U=75U<4P#@XP#AU4%!0)\"0D)\"0K*RO0T&'-4%!0S<TH*\"@H.3DY\nM*\"@Y.2A0D[15;$I(2$A*2DI*2DI*2DI_?R`@U-34U&;$Q,3$,3&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>';&QL$A(2$A(2$A(2$A(2\nM$A(2$A)-34T2$A(234UL+3`&40TG@=;6UIN;FSX^/CZ@H*\"@H*\"@H*!*2DI*\nM2D1EAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A!Q9.4:JJH`0\nMMK:V$(B(KJZ@:FJ8)\"0*GY\\7]?7U]1<7GY^!@8&?GY\\&E#<WE`:,C(R,!C=1\nM4<R4C/3:+8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM$Q.\\O!,3$[P3$Q,3$[R$@@```(*\"@HST*2G:+62LK/'L[.SL[.SL:+&QL;'&\nM34U-P>RGQJQJ!E',F*3Q[/&DF&JDKMRVMKFYW*ZNB-P0MK;<KFIJ:FIV=G9V\nM=G9V=G92E3,1$1'9V6Z'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,<1F\"Z5'WWIZ*BJ[7@.9F9F9F9D]/=)Q&1D9&1EQ<7%Q<7%QTM(]/9F9`P->\nMN[N[N[N[NUY>7@,#`P,#F9D#`P,#7EX#`UY>N[MZ>M]'1Z6E\"PMF9L3$Q#$Q\nM,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'2Y\"0D)\"0D\"4E82LK4G83$W:$`2O0825+J:F>GG5U\nMJ9YX>)YUP%NB5UMU>(1XGIYU.%L45U=75U<46S@XP,!UDY.;FYN;FYLK*RO0\nMT-!04%!04,TH*\"@Y.1P<.3D<*,U0D[15!6Q*2DI*2DI*2DI*2DI*?R#4U\"`@\nM(\"#4,3&'AS&',8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=5\nM;&QL;&P2$A(2$A(2$A(2$A(234U-34U-$A(236QL+3`W#=XG@=;6UIN;FSX^\nM/CX^H*\"@H*\"@H*\"@2DI*2DI$98>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<<'!P<[JJJJH@0$+:V$!\"(B*ZNH&IJF\"0*\"I^?%Q?U]?47GY^?GY^?\nMGY3,8%%18,PW-S?,8%%18#<&C/3:+:R'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AQ,3$Q.\\O+P3$Q,3$[R\\O(*\"@H*\"@H2\\E(ST*=HM+62L\nM\\>SL[.SLQFBQ[^_O[['&34U-P<&GQJQJ!E',F*3Q\\:RSF&JDKMRVMKFYW(B(\nMB-P0MK;<H&IJ:FI2=G92E3,S61$1V38V:PD)\"0F'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS'$9F8+I4='W]]Z>BJ[7EX#`P.9/3T]TM(]TM)Q<1D9L+`9\nM&1D9&1D9<7'2/3V9`P,#`UY>7@.9F9F9/3T]/3T]F9F9F9F9F9D#`UY>N[LJ\nM>M_?WT='I:4+\"V9FQ,3$,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'2TM+2TM+2Y`E82LK`8*\\\nM$W8!*]!A)4MN`IZ>GIZIGG@!`7BI=<`45UMUGE(!GIYU=<`45U=75U>B6\\`X\nMP,\"TM+2;FYN;F]#0*RLK*]#04%!04,TH*#DY'!P<'#DY*,U04+2T56QL2DI*\nM2DI*2DI*2DI*?R#4U\"!_?W]_((>'AS'$Q,0Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'A[1556QL;&QL$A(2$A(2$A(2$A(234U-34U-31(236R:\nM,%;>#=XG@=;6UIN;FSX^/CX^/CX^/CX^/CX^/DI*2DI*2D2FAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AQP<'!SN):JJB(@0$+:VMA`0B(BNKJ!J:B0D\nM\"@J?GQ<7]?47%Y^?GY^?G\\Q145%145%145%146#,-Y0&C/0I+:SQ[(>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>\\O!,3$Q,3O'9VO+P3$[R\\=G9V\nM=KP3$V#,E(ST*=HM9*SQ[.SL[.S&:+'O6EI:[[%-34W!P>CO'628!E',F*3Q\nM\\61JF&JDKMRVMK:YW(C<W-P0N;;<H)AJ:@?N$=G9V=EN;FYN;C8V:PD)@`F'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<3$Q&9F\"Z5'1]_?>GHJ*KN[7@,#F3T]\nM/3T]TM+2<7$9&;\"PL%-3L!D9&7%Q<7'2TCT]/3T]TCT]/3T]/=+2TCT]/3V9\nMF9F9`P.9F0,#`P->N[LJ>GK?1T>E\"PL+\"PMF9F9F9F9F9L0Q,3&'AX>'AX>'\nMAX>',3$Q,3$Q,3$QQ,1F9F9F9F;$Q,0Q,3'$Q#$Q,3$Q,3&'AX>'AX>'AX>'\nMU-34(']_2Y`E82L!`8*\\O!,3O(0!`0$!*RN>GIZ>>`&$A`&>=3A;5Q1UG@&$\nM>)ZI=<!;HE=75U=76\\`XP,\"TM#X^/CZ;F]#0*RLK*RLK*U!04%#-*\"@Y'!PY\nM.3DH*,U04).TM%4%;$I*2DI*2DI*2DI*2M34U-34U`++?W]_Q,3$,3&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'4+15555L;&QL$A(2$A(2$A(2\nM$A(2$DU-34U-34U-36R:,`;>#=XG@=;6UIN;FYL^/CX^/CX^/CX^/CX^/CY$\nM1$I*2DI$IH>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=9=AP<'.[N1JJNB(@0\nM$+:VMA`0B(B(KJZ@:I@D)`J!GY\\7]?47GY^?GY^?S%%1S,S,S&!@8&#,-Y24\nM!@:,C/0I+63Q[.R'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'`%)VO+P3\nM$[R\\=G9V=G:\\O!,3$Q,3$Q,345%@-XST*2UDK/'L[.SL[,9HL>]:O;U:6L'!\nMP<'!Z.CH[*28!F!@F+.L\\:1J:FJDI-RYN;:YW-S<W-P0N;:(:FIJ=G99,Q'9\nM;C8V:VLV-C8V-C8V:VN'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3$QQ,1F\"PNE1]_?\nM>BHJNUY>`P.9F9D]/=+2<7%Q<1D9&;!34U-34U-3L+\"P&1D9&1D9<7%Q<7'2\nMTM+2TM(]/9F9F9F9F9D]/=+2TM+2/3V9F0->N[LJ*BIZ>M]'1Z6EI:6EI:6E\nMI:4+\"PL+\"PMFQ,3$Q,3$9F8+\"PL+\"Z6EI4='1T='1T='1T>EI:5'1T='1T='\nM1]]Z>M_?1Z4+\"PMF9F9F('_+2\\,E86$K`(*\"O!,3O':$A':\\O!.\\O!,3>'@!\nM`812`81XJ3A;5Q0X=9Y2`9ZI=<!;%%=75U=7%,#`P`4%!3X^/CZ;8=`K*RLK\nM*RLK*RM04%#-*\"@Y.1PY.2@H*,U04%\"3M+15!6QL1$1$2DI*2DI*2HW4U-34\nM(']_`DL\"JJJ'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?-4+2T\nM5555;&QL$A(2$A(2$A(2$A(2$A(2$DU-34U-3:RSC($G#0TG@=;6UM;6FYN;\nMFSX^/CX^FYN;FYN;FSX^/D1$1$1$1$1$AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMASF5'!Q2[NY&JJ\"NB!`0MK:VMA`0$(B(B*Z@:FJ8)`H*GY\\7]1<7GY^!@8',\nM45',E)0&E)0WE)0&C(R,C(R,]/0IVF2L\\>SLAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'``````\"\"@E)2`0$!`0$`4E)V=G9V=G9V=F!@45%@-P;TVBUD\\>SL\nM[,;&QFBQ[UJ]O;U:P<'HZ.CHZ.C!(K.8!F!@F&JD9*2S:K.DI(BYN;FYN=RY\nMW-S<N;:(:FH'65E2=I4S$=EN-FMK:VMK:S8V-C:'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,8>'AX>'AX<Q,3'$\nMQ&9F\"PNEI4='W]_?WWIZ*BJ[7@.9F9D]/3W2TG$9&1D9&1D9&;\"PL+\"P4[\"P\nM&1D9&1D9&7%Q<7$9&1D9<7'2TCT]/9F9F3V9/3T]/9D]/9F9F9D#`UY>NRHJ\nM*GIZ>M_?W]_?1T>EI:6EI:4+\"PMF9F8+\"PNE\"PL+I:6EI4='W]_?W]]Z>GIZ\nM>GIZ>GIZ>GHJ*BJ[N[M>7@->7EY>7KN[7EY>N[N[?W_+2TO#PY!A86$`@KP3\nM$Q,3$Q,3O+QVA(2$GG@!A(0!`80!GG5;5Z+`=9X!A'B>=<!;6U=75U=7%%O`\nMP`4%/CX^/IN;T\"LK*RLK*RLK*RNT4%!0S2@H*#D<.2@H*\"C-4%!0D[2T555L\nM;$I*2D1$1.CHZ.CHU-34U-0@@*IK\"<C(((>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AQPH4%\"TM%5556QL;!(2$A(2$A(2$A(2$A(2$A(2$DU-K&0P\nMUH$G#0W>)X&!UM;6UM:;FYN;FYN;FYLD))LDFYN;/CY$1$1$1$1$1*:'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=9.3EV'!P'[D9JH*Z(B!`0MK:V$!`0$(B(B*Z@:FJ8\nM)\"0*GY\\7]1>?GPH*\"@I14<R4!HR,C(P&C/3T]/3T]/3T]/0IVBVL\\>SL[.R'\nMAX>'AX>'AX>'AX>'AX>'AX<QT-#0*RLK*RMA86%A86%A*RLK*P!VO':\\=G9V\nM8&!145%1S`;TVBVL\\>SLQFAH:+'O[UJ]O;U:P>CHZ,'!P4U-3;.,!LQ1)&JD\nMI*2DL[.SI(BYN;FYN;FYW(C<MKFN:D9&[NXY679V=E(S$1'9[C8V-FMK\"0F'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,3$9F9F\nM9L3$Q,3$Q,3$9F8+\"Z6EI4??WWIZ>GIZ>GIZ*BHJ*KN[7EX#`YD]/3T]TM+2\nMTM)Q<7%Q<7%Q<7$9&1D9&1D9&1D9&1D9<7%Q<7%Q<7%QTCT]F9F9F9F9`P,#\nM`P,#`P,#`P,#`UY>N[LJ*BIZ>GIZ>M]'1Z6EI0L+I:6E\"PL+I:6EI:6EI4='\nMW]_?>GIZ*KN[7EY>7EY>NUY>`P.9F9F9F9F9/3T]TM+2/3V9/3T]/3T]F9F9\nMU-0@?\\M+PV%A86%A80```0$!`0$!`0$!A'9VO`%24@$!`80!GG445U=;=76>\nMA`&>=<#`6Q175U=7HEM;!04%/CX[OK[0T\"LK*RLK*RLK*RL!M)-04%#-*\"@Y\nM'#DH*\"@HS5!04).T555L;$T2Z.CHZ.C!P<'HZ-34U-34(-34(\"`@(\"`@((>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=0S2@HS5\"TM+1556QL;!(2$A(2$A(2\nM$A(2$A(2$A(2$DU-K)HPUM8GW@T-WB>?GX&!UM;6UM:;UM;6UM;6UM8D))N;\nMFSX^1$1E941$1.C!AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'[NXY65(<.0?NHVJ@H*Z(B!\"V\nMMK80$!`0B(B(B*ZNH&J8)\"0*@9\\7]1>?\"@H*\"E%1S#>,]/3T]/3T]\"DI*2DI\nM*2DI*2DIVBUDK/'Q[.SL[(>'AX>'AX>'AX>'AS&0D)\"02R4E)4M+2TM+2TM+\nMD&%A86$``7:\\$Q,3$U%145%145%1S`;TVBVL\\>SLQFBQL;'O6EJ]O5KHZ.CH\nMP<'!P4U-Y>6,!C=1!IAJLZ2DI+.DKHC<W+FYN;G<B(C<MA\"N1D;N[N[N.3,S\nM4G83=I4S$1$1$=G9;C:'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS'$9@L+\"PL+9@L+\"PL+I:6E1T='1T??W]_?W]]Z>GIZ>GIZ>GIZ>BHJ*BHJ\nM*KN[NUY>7EY>7@,#`YF9F9F9/3T]TM)Q<7%Q<7%Q<7%Q<=+2TCV9F9F9F9D#\nM7EZ[N[N[NUY>7EY>`P,#`P,#F9F9`P->7KN[N[LJ*GIZ>BHJ>GK?1T='1T='\nM1T='I:6E1]_?>GHJ*BJ[N[M>`P.9F3W2TCT]/3W2TM)Q<7%Q&1EQ<7%Q&1FP\nML+`9<7%Q<=+2TM+2TM+2SW_+2TN086$K`````````0$!`82$=KP3$[QVA`%2\nMA%(!`812GG445U=;P'6>`0&>=3C`P%NB5U=7HA1;!04[.[Z^OKYA8=#0T-#0\nMT-`K*P$!3+234%!0S2@H.1PY.3DH*\"A04%\"3M%4%;$T2$NCHZ.C!P<'!P<'4\nMU-0@(-34U-34(-34U-0@((>'AX>'AX>'AX>'AX>'AX>'AX>'A[104\"@Y*%!0\nMM+2T555L;!(2$A(2$A(2$A(2$A(2$A(2$A+QK+.^UM:!)]X-#0W>WM[>GX'6\nMUM;6UM;6@8&!UM;6)\"0DFYL^/FMEIF5EIDW!P4T^AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A^[N[I4<\nM4EGN[D9&:FIJH*Z($!\"VMK80$!`0B(B(B*ZNH&IJ)\"0*@9_U%Y^!\"@H*46#,\nME(ST*2DI*2DI*2DI*2DP*2DI*2DIVBTM9*SQ\\?'Q\\>SQ.,!;%*)7('\\@(\"`@\nMU\"`@U-34U\"!_R`)_`@)N;DLE8=```(*\\$Q-145%145%145%@S`;T*2VL\\>SL\nMQFBQL;'O6EJ]O4T2$L'!P1(234U-Y>68!C<7!IAJ:FJSLVJDKHB(W-RYN=S<\nMB(B(N8BJ1N[N.5D<''83$Q,3=E*5,Q$1V=EN;DJ'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<QQ,1F9@L+\"Z6EI4='1]_?WWIZ>GIZ>GIZ>GIZ>GIZ*BHJ\nM*BHJ>BHJ*BIZ>M_?W]]Z>BHJ*BHJ*BJ[N[N[7EY>7EX#`P,#F3T]TM(]/3W2\nM/3T]F9D#`UY>7KN[NRHJ*BIZ>GHJ*KN[N[N[7EY>`YF9F9D]F9F9`UY>7EY>\nMN[N[N[N[*BHJN[N[*GIZ>GIZ>BHJ*BJ[NUX#F3T]/3T]TG%Q<7%Q&1D9&1D9\nML+!34U-3[>WM4U-34U-3L!D9&1D9&1D9&;\"PL%-3S\\_#86%A``\"\"@KQV=E*$\nMA':\\$Q-VA`$!*]!A)25+O!-24H12>'5;5U<4P'5U>%*>=3@X.,`45U=7HA1L\nM!04[.SN^OB4E)6%A86%AT\"LK`0%,#V>TM%!04%#-*\"@Y.1PY*\"C-4%\"3DU55\nM;&P2$A(2P<'!P<'!P<'!U-34U-34U-0@?W]_?W\\@(\"\"`ZH\"'AX>'AX>'AX>'\nMAX>'AX=L556T4\"@<*%!0M+2T555L;&P2$A(2$A(2$A(2$A(2$A(2$A+QKFJ^\nMUM;6@2?>W@T-#0T-#=XGGX&!@8&!GY^!@8'6UM8D))N;/CZ@966FIDU-34U-\nM3<Z'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX?N[CD<=AP<,^[N!R0D:FJ@H*Z(M1\"VMK80$!\"(B(B(B*ZNH&J8\nM)\"0*@9_U%Y^!\"@H*-S>4!O0I*3`P*2DI*2DI*3`P,\"DI*2DI*=HM9*RL\\?'Q\nM\\?'Q\\:Q9=E)XGNYU*V$E)9!+;DL\"?R!_(-34(\"#(R`)N2R70*ROT-U%@8,Q@\nM8%%145%@-P;T*2UDK.SL[,9HL;'O6EI:;&QL;&QL;$U-3<[.SLYCC)07!IB8\nMF&IJ:FJDKHB(B-RYW(B(B(C<N:I&[CDY61P<=A-V=E)2E94S,UD1V6XV.TJ'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$QQ,3$9F8+\"Z5'1T='W]]Z>GIZ\nM>M_?W]]Z>GK?W]_?W]_?W]_?W]]'1T='1Z5'1T='1T='1T='1T??WT='W]]Z\nM>BJ[N[M>7@.9F9F9`P,#`P,#`P->7KN[NRHJ*BIZ>GHJ*BHJ*BHJ*KN[7@,#\nMF9F9F9F9`P,#`P,#`P,#`P,#`UY>7EY>7EY>7@,#`P.9/3T]TM)Q<7$9&1D9\nM&1D9&;\"P4U-3[>WMBXN+-#3%Q30T-(N+BXN+B^WM[>WM[8N+B^WM[>V+BXLT\nM@,\\E82LK`5)24@$!*RL!`7:\\$Q,3O(0!`2O086%A8783$Q.\\>'5;5U=76\\!U\nMGH1XGG4X.,!;HE=75VQL;#L[.SL[2TLE)24E)6'0*RL!`0'M[5.TM+234%!0\nM4,TH*\"@Y'#DH*%!0D[15;&QL$A(2$A(2P<'!$A(2$M34U-0@(']_?W]_JH\"`\nMJJJ`@`FJJJJJ\"=2J@(\"`JLA7$FQL556T4\"@Y*%!04+2TM%5L;&P2$A(2$A(2\nM$A(2$N@2$N@2$MR(I)B>OM;6UH&?GR<G)][>W@T-WM[>WM[>GY^?GY^!@=;6\nM)\"2;FSX^/J\"F@TU-34U-3<[.8X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<K*RM2')4<=AQ96>[N\"B0D:FJ@H*Z(B!\"V\nMMA`0$!\"(B(B(KJZ@:FJ8)\"0*GQ?U%Y^!\"@K-S0:,C/0I,#`P,\"DI*3`P,-HP\nM,\"DI*2GT*2G:+62L\\?'Q\\?'Q\\:QD+78',YYX4@&>J6$E2VY+`G\\\"?R`@U-1K\nM?\\M+D&$E+2D&8%',-S<WS&!146#,E(STVBUDK/'L[.QHL;'O6EH%!<[.SL[.\nMSL[.SL[.8V-C8Y3UE)B8F)B8F&JDKJZNKHB(B(BNKHC<1D9&[N[N.3E9'!-V\nM=I4S,S,S,S-9$1%AOD2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,0QQ,3$9F9F\nM\"PNEI4??WWIZW]_?>GIZ>M_?WWIZ>M]Z>GIZW]_?1T='1Z6E\"PL+9F8+9F9F\nM9F9F9F9F9L3$Q&8+I:5'WWHJ*BJ[N[N[N[M>7EZ[N[N[NUY>N[LJ*BHJN[N[\nM*BHJ*BHJ*BHJN[N[7EX#`P,#`UX#`P,#`P,#`P,#`P,#`YF9F9F9F3T]TG%Q\nM&1D9&;\"P4U/MBXN+-#3%Q30T-#0TQ<5G9V=G#P]G9V=G9\\7%Q<7%-#3%Q<7%\nM-#0T-,7%9V</#P\\/3$Q,@,_`82LK*RL`=KP3$Q,3$Q,3O':$A`$!`0$!`0$!\nM`0&\\$Q,3A\"LEHE=7%,!UG@%XGG5U=<!;HL_/$FQL(3L[.SL[PTM+2R4E8=`K\nM*RLKT+\"P&7$]M+2TM)-04%!0S2@H.3DY*\"A04).T!6QL;!(2$A(2$A(2$A(2\nM$N+4U\"!_1JJJJC:JJC:JJFMNJJIN;FMN;LB`;L!;`A(2$FQL;%6T4\"@Y*,U0\nM4+2T5555;&P2$A(2$A(2$A(2$N@2$A(2N=RN:B0!OK[6UM;6@8&!@8&!@9_>\nMW@T-]?47%Q<7WI^?GX'6UB0D))L^/CX^IDWE34U-3<[.8V/EY8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<K``%2O!.\\=AP<'!Q2\nM69\\*)\"2;:FJ@H*Z(B!\"VMK80$(B(B(BNKJ\"@:FHD)`J!GQ?U%Y^!\"MG9S9?T\nM]\"DI,#`P,##:VMHM+=K:VBDI](R,C\"DIVBUDK/'Q\\?'Q\\:QD+2GT!@:\\=G92\nM4@'N=1&02TM_(-34U\"!_`DMH[/%DVO0W46#,-Y0W-\\Q@8,PW!O0IVBUDK/'Q\nM[.S&L;'O6BL!>7EC4%!04%!04,W-S5!04\"@7GP:8F)B8F&JS:FIJI*Z(B*Z(\nMB(CN[N[N[NXY.3DY.5)V$Q-V=E*5,S,S,S-POF6'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3'$\nMQ,3$9F9F9F9F9@L+\"PNE1T??>GIZ>GIZ>GIZ>M_?W]]Z>GIZ>BHJ>GIZW]_?\nM1T>EI0L+9L3$Q,3$Q,3$Q,3$Q,3$9F;$Q&9F9@NEI4='1]]Z>GIZ*BHJN[N[\nMN[LJ>GIZ>GIZ>BHJ*BHJ>GIZ>GIZ*KM>7@,#`P,#`P,#F9F9F9F9F9F9F9D]\nM/3W2TG%Q<1D9L+\"PL+\"P4^V+BS3%Q6=G#TQ,3`\\/9V=G9V</#TQ,3$Q,3$Q,\nM3`\\/#V=G9V=G9P\\/#P\\/3$Q,3$Q,3$Q,3$R)B8F)ZL_`-A$1*X(3O':5E94!\nMA(2$A(2$A(2$`0$!`0$!`0$!O!.\\A\"LE;@+4`EO`J0$!GG5UP,!;HE?/$A)L\nM(2$A.SL\";FY+)270T\"LK*]!AL!EQTID#`[2TM+2TDU!04,TH*\"@Y.2@H4).T\nM56QL;&QL$A(2$A(2$@4%!6QL;(\"JJC:JJFZJ-DLE)1$E86$EJB4E)24E)6QL\nM$A(2$A)L;%6T4,TY*,U04+2T5555;&QL$A(2$A(2$A(2$A(2$A*VW*YJ)(&$\nM`9N;UM;6UM;6UM;6UM:!G]X7%_7U]?7U]?47GY^!UM8D)\"2;/CX^/CY-Y>7E\nMY<[.SL[EY>7.SI.'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<3\nM$Q,3$Q,3$[R\\O+Q2'!SU%Y\\*)\"1J:J\"@KJZ(B!`0MK80$(B(B*ZNH*!J:I@D\nM)`J?GQ?U%Y^?V=G9V9>7*2DI*2DP,-HM+2TM9\"TMVBDIC(R,C(PIVBUDK*RL\nM\\?'QK*QDVBGT!@8&C(P&E+R\\`9ZI)6'#2W^]O;U:L6CL\\63:])1@4<PWE)24\nM-\\Q@S#<&C/0IVBUDK/'Q[.S&L;'O$1$S``0$!,W-*\"@H*\"@H.3DY.3D<%Y0D\nM!E967'RS:FIJH*ZNKJZ(JD9&[NXY.3DY.3DY.3DS4G9V$Q-V4I654B=P2(.'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',3'$Q,3$9@L+\"Z6EI0L+\"Z6EI4='1T='W]_?>GIZ>GIZ>GIZ>BHJ\nM*BHJ*BIZ>M_?W]_?WT='I0L+9L3$,3&',3'$Q&9F9F9F9F9F9L3$Q,3$Q,3$\nM9F8+I4??WWIZ>GIZ>GIZ>M_?W]_?1T??W]]'1T='WWHJNUY>`P.9F9F9F9F9\nMF3T]TM+2TM(]TM+2TG$9&1FPL%/M[8N+BXLT-,7%Q<5G#TQ,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3(F)B8F)B8F)B8F)B8E,B8F)B8F)B4Q,3$Q,3$Q,3$Q,3(F)\nM@&O`P#8K,Y5V=A.\\=G:$A`$!`82$A(0!`0$!*RLK`0$!A!,3A\"MA2P+4?TMA\nM*Y65J=G`6UM;HE<2$A+@X.#@X-3(`FY+)6'0T-!A2TO%-.U3L!EQ<7&TM+2T\nMM+104%#-*\"@Y'#DH4%\"T555L;&QL;!(2$A(2$A)L;&QY>?#I-DO986%A824E\nM874E)0<K*]!A)55556QL;!(2$A)L;%6T4%`H.2A04+2T5555;&QL$A(2$A(2\nM$A(2$A(2$A*UH&HDU@&$`7B;FYN;UM;6UM;6UM;6@9^?WM[>WMX7%_7UWI^?\nM@=;6)\"0DFSX^/CX^/DWE8V-C8\\[.34W.SF-C8_`$)8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'82LK*RLK*U)V$Q,3$[QV=G9VGQ?UGX$D)&IJH*\"NKHB(B!`0\nMMK80$(B(KJZ@:FJ8)\"0D\"I^?%_7U%Y^>GI[9V=\"7,\"DI*2DP,-HM9&2LK&1D\nM+2GTC`8&!HST*=HM9&2LK*RLK&0MVBF,!@:,C(P&E&!1S(PI+:SL:.^]O;WO\nM:.SQK\"WT!F!18,PWE)24-\\S,S)2,]\"G:+62L\\?'L[,9HL>\\V;MD1$3/P\\/#P\nM*\"@Y'!P<'!P<'!P<')\\*\"E9<7'Q\\?'Q\\:J\"@I*Z`@(\"JJJI&1D;N[CDY.5DS\nME952=G83=G92)]YP<(.'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$9F8+I:6EI:6EI:5'1T='1Z6E1T='\nM1T??W]_?WWIZ*BJ[N[N[NRHJ*BIZ>GK?W]]'1Z4+\"V9FQ#&',3'$Q&9F\"PL+\nM\"PL+9L3$,3$Q,3$Q,<1F9F8+\"Z5'1T='1T='I:6EI:6E1T??W]]Z>GHJ*KM>\nM7@,#F3T]/=)Q<7$9&1D9&1D9&1D9<7%Q&1D9&1FP4^V+-#0TQ<5G#P\\/3$Q,\nM3$R)3$Q,3$R)B8F)B8F)B8F)B8F)B8F)B8F)R<G)R<G)R<G)R8F)B8F)B8F)\nMB8F)B8F)B8F)B8F)B8F)@&LV-C;9679V=A,3=E*5E0&$=G:\\O':$`0$K*]#0\nM*RLK*RN\\`2MA;@+4R$MA*[QV`:,V6VMK;!(2$N#@X.#@U-3(`FY+)24E2VX\"\nM86%A)<4TBXOM[>WMM+2TM+2T4%!0S2@H.3DH4%\"TM`5L;&QL;!(2$A(2$A)L\nM;&QL;`55M&%A86%A*ZDK*P<KT&&TM+2T555556QL;!(2$A(2;&Q5M%`H'\"A0\nM4+2T5555;&QL$A(2$A(2$A(2$N@2$K6@/B0D@0&$>(>'/CX^FYN;FR2;UM;6\nMUH&?GR<GG][>%_7U%]Z?@=;6UB0D))L^/CX^/CZ;Y6-08V-CY<[ESLX$8P10\nM*\"C086%A89!+2W_4U-34(\"!_?W_+2TO#D)`E)6$K`':\\$Q.\\@H0!`9_>]?47\nMGPHD)&IJH*\"NKHB($!\"VMK80$(BNKJ!J:I@D)`H*GY^?%_7U%YZ>GGB>J:G0\nMES`I*3`PVBUDK*RLK*QD+2GTC`8&!HST*=K:+2UD9&2L9&0M*?2,!@:,C(P&\nM-V!1-XPI+63LQN^]O5JQ[.RL+2F,S%%@S#>4E`8&E#<W-P:,]\"G:+62L\\>SL\nM[,:QL0D):S9NV1%9,U*7EY>7.1P<'!P<'!P<'#DW\"E9<?'Q<FYN;?'QJJJJJ\nMJJJJ@(\"`JJJJJD9&1D;9$1$1,Y5V=@WA)PWAX8.'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&9F\"Z6EI4='W]_?\nM1T='1]]'1T='1T??W]]Z>GK?W]]Z>BJ[NUY>N[N[N[N[*BIZ>M]'1Z5'I:4+\nM\"V9F9@NE1T='I:4+9F9F\"PL+9F9F9L3$Q,3$Q,3$Q&9F\"PL+\"PNE1T='1T='\nM1]_?>BHJNUY>7EX#`YD]/3W2<1FPL+\"PL+\"PL+!34[\"P&1D9&1D9L+!3[>V+\nM-#0T-,7%9P\\/3$Q,3$R)B4Q,B8F)B8F)B8F)B<G)R<F)R<G)R<G)R<G)R<G)\nMR<G)R<G)R<G)R<G)R<G)R<F)B8F)B8F)B8F)B8F)@&LV6VNC65)V=G83$Q,3\nM$[R\\O'9V=H0!`2O086%A)24E2R4E)2MA2P+4R$MA*[QV`2MA)6ML;!(2+BXN\nM+N;FU-3(`@)N`@+(U-1A)4M+;@+(U$P/Q32+[555M+2TDU!0S2@H.1PH4%\"T\nMM%4%;&QL;!(2$A(2$A)L;&QL;&P%5;2TM+2T4%\"3M+2TM+23M+2TM%5556QL\nM;!(2$A(2;&Q5M%`H.2A04+2T5555;&QL;!(2$A(2$A(2$A(2M:`^)\"36>(25\nMAX>'ASX^/CZ;FYLDUM;6UH&?GY^?GY_>WMX-WMZ?@=;6UB0D))L^/CX^/CZ;\nM)\"0D4\"@H*.7ESLY08\\W-*)>7[BLK86%A)9!+RW]_(\"`@U-0@(']_RTLE82LK\nM`5)V=@$K`=:!G][U]1>?\"B0D:FIJH*\"NB(@0$+:VMA`0B(BNH*!JF)@D)`J!\nMGY\\7%_7UAX>>GGB>GJG0T)<P*3`PVBUDK/'Q\\:QD+2GTC(R,C/3T*=K:VBTM\nM9&1D9\"W:](R,!@:,C(P&S%%@E(PI+63QQN^]O5JQ[/%DVO248%',-Y0&!HR,\nM!I0WE(ST*=HM9*SQ[.S&:&BQ-C8V:VMK-C9NV1$SE783=E)9'!P<'#DY.3DY\nME%9<7%Q<\"@HDFQ'9[NXV-O\"`@(\"`@(\"`@(\"JJJHV-C9NV1$1GPWA)PWAX8,Q\nM,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$\nMQ&8+\"Z6EI:6E1T='1T='W]_?>GHJ*BJ[N[N[7KN[N[M>7EY>7EX#`P.9`UZ[\nM*GK?W]]'1T='1]]'1T??W]]Z*BHJ*GIZW]]'1T>EI:4+9F9F9L0Q,3$Q,3'$\nMQ,3$Q,1F\"Z6EI4='1]]Z>BJ[N[N[7EX#`YD]TG%Q<1D9&1D9&;\"PL+`9&1FP\nML+\"PL%-34^WMBXLT-,7%Q<5G9P\\/3$Q,3$R)B8F)B8F)B8F)R<G)R<G)R<G)\nMR<G)R<D6%A86%A86%A86%LG)R<G)R<G)R<G)R<G)B8F)B8F)B8F)B8F)B8F)\nMSVLV:VNC6952!Y52=G:\\$Q.\\=E)2E3,'$=!A824E2TM+)24E86'02P+4R$MA\nM*W9V`=!A/WEY;&S3T]/32DK(U-34U-34U-3(U&$E2VX\"?]34U,C(`FXT-(M5\nMM+2TDU!0S2@H.1PH4%\"TM%4%;&QL;&P2$A(2$A(2;&QL;&P%556TM+2T4%!0\nM4%!04%!04%\"TM%55555L;!(2$A(2;&Q5M%!0*#DH4+2T555556QL;!(2$A(2\nM$A(2$A*UH#Z;/B36E0&'AX>'AX<^/CX^/IN;)-;6UH&?GY^?GY_>W@T-WMZ?\nM@=;6UM8D))L^/CX^/CX^)\"0DUM;6*&-C8V-C8U\"7*)>7[CD'`\"LK*V$E89##\nM2\\M_?W\\@U\"!_RTN0)6$K*RLK*RLD)-:!GQ?U%Y^!\"B0D:FIJH*\"NB(@0$+:V\nM$!`0B(BNH*!JF\"0D\"@J?GQ<7%_7UAX>'>`%XGIZIT\"N7,\"DPVBUD\\?'Q\\?&L\nM+=KT](R,]/0IVMK:VBTM+61D+=HI](P&!@:,C(R4S%',!O0I+:SLQN^]O5IH\nM[/%DVO0W46`WE`8&C(R,!I24!HST*=HM9/'L[&AHL;$'$=G9;FXV-FYNV1$1\nM$3,S4G9V=G83=G924E(YEY=<7%Q6\"@H'!P<'$9=&JJJJ@(\"`@(\"`@(\"`@(`)\nM\":IK:Z#6@0WA)PWAH8.E\"PL+9F9FQ#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=F\"Z6E1T='1T='W]]Z*KN[NUY>`YF9F3T]/3V9F9D]\nM/9F9`P,#`P,#7EY>N[LJ*BHJ*BHJN[M>7EY>NUY>7EX#`UZ[*BIZ>GK?WT='\nMI0L+9F;$9F9F9F9F9F9F\"PL+I:5'1T='1T='>GHJN[M>7@,#`YD]/=)Q<7$9\nML+!34U-34U.PL+!34^WMBXLTQ<5G9V=G#P],3$Q,3$Q,3$Q,3$Q,B8F)B8F)\nMB8G)R<G)R<G)R<G)R<G)R<D6%A86%A86%A86%A86%A86%LG)R<G)R<F)B8F)\nMB8F)B8F)B8F)B8F)B8F)SVLV:VNC696565E2=G:\\$W92E3,S,S,S!P<'$0<'\nMT-#0*RLK`2L!`0+4R&YA*W9V*P0$/WF3>41$1$1$P6X\"R,C(`FY+2TLKT-!A\nM)4MN`LC4U-3(`FX\"`@(\"M+2T4%!0*\"@H.1PHS5\"TM%4%!6QL;&P2$A(2$A(2\nM$FQL;&QL!56TM+104%!04%!04%!04%!0M+15555L;!(2$A(2;&Q55;10*!PH\nM4%\"TM%55555L;&P2$A(2$A(2$HB@/CX^/M:>`8>'AX>'AX>'/CX^/CZ^OM;6\nMUM:!GR>?GY_>W@T-WMZ?@8'6UM8D))L^/CX^/CZ;)\"0DUM:!@8&!4\"A0*%`H\nM*)<HESD'$2LK*RMA86%AD,-+RW]_(-0@?P)+D\"5A83YJ)\"0D)-:!G_7U%Y^!\nM\"B0D)&IJH*\"NB(@0MK:V$!\"(B*ZNH*!JF\"0D\"@J?GY\\7%_6'AX>'AP$!`7B>\nMT&'0ERDIVBUD\\?'Q\\?%D+=HI]/3T*2G:VBTM+2TM+2TMVBGTC`:4E`:,C(PW\nM8%$WC/3:9*SL:%J]O>]H[*QDVHPW46`W!@:,C(R,!@8&C(ST*=IDK.SL:+&Q\nML=G9V6YN-C8V-C8V;FYNV=D1!UE965E965F54G9V=G924I5965E9!P>7EY=&\nMJJJJ@(\"`@*J`@(\"`@(\"`\":H)KJ\"^U@WAX0TGWH-'1Z6E\"PL+\"PMFQ,3$,3$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>E1T??WWIZ*KN[N[M>`YD]\nM/=+2<1D9&1D9&1EQ<=+2TCT]/3T]F9F9F9F9F9D]/3T]/3W2TG%Q<7'2/3T]\nM/9F9`UZ[NRIZ1Z6EI:4+\"PL+\"PL+I:6EI4='1T??WT='1T='I4='1]]Z>BJ[\nMNUY>`YF9/3W2<1D9L%-34U.P4U-3[8LT-#3%9V=G#P\\/3$Q,3$Q,3$Q,3$Q,\nMB4Q,3$Q,B8F)B8F)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R186%A86%A86%A86\nM%A86R<G)R<G)R<G)R<G)R<F)B8F)B8F)B8F)B8F)SVLV:UO965E9E5E963F\\\nM$Q,3$Q,3O+R\\=E)24I654I65,S,K`0$K*P'4R.D$S3DY*`0$>7F3IJ9-34TE\nM2R5A*P$!=G92.>[NT&%A)4L\"`LC4U-34U,C(R,C(R+104%#-*\"@Y.3DHS5\"3\nMM+15!05L;&QL$A(2$A(2$A)L;&QL!555M+104%!04%!04%!04%!0M+15555L\nM;!(2$A(2$FQL5;10S3DH*%!0M+2T5555;&QL$A(2$A(2M4-#H#L^OM9XAX>'\nMAX>'AX>'ASX^/CX^OM;6UH&!)R<GWM[>W@T-WMXG@=;6UM;6)\"2;/CX^/CZ;\nM)\"36UM:!@9^?@8&!UB@H*)<HESD165E9,RMA86%AD,-+2\\M_(-34?TM+H*`^\nM/CYJ)\"0D)-:?WO7U%Y^!\"B0D)&IJ:J\"NKH@0MK80$(B(B*ZNH*!J:I@D)`J!\nMGY\\7AX>'AX>'AX>'4E)XGM!AT)?:VBVL\\?'Q\\?%D+=HI]/0I*=K:+2TM+2TM\nM+2W:VBF,!I24E`:,C`8W46\"4C\"G:9*SL:%J]O>]H[/%DVHPW4<PW!@8&!@8&\nM!@8&C/3T*2UD\\>S&L>_O\"0D)\"0D):VLV-C8V-FYN;N[NV1$'65E965E9E952\nM4G9V=G9V=E)2.3F7ET:JJJJJ@(\"JJO\"J@(\"`@(\"`$!\"UKJ\"^U@WAX0T-#8-Z\nMW]]'1T='I:4+\"PL+\"PMF9F9F9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX??\nMWWIZ*KN[7EX#F3W2<1D9L%-34U.PL!D9&1D9&1D9L+\"P4[\"P&1D9&1D9&1D9\nM&1EQ<1D9&1EQ<7'2TCT]F5Z[*GIZW]_?WWK?WT='1T??>GIZ>BHJ*BIZ>GK?\nMWT='1T??>GHJ*KN[7EY>`P.9F3W2<1FP4U-3[>V+BXLT-#0TQ6</#TQ,3$Q,\nM3$Q,3$R)B8F)3$R)B8F)B8F)B8G)R<G)R<G)R<D6%A86%A86%A86%A86%A86\nM%A86%A86%A86%A86%A86%LG)R<G)R<G)R<G)R<F)B8F)B8F)B8F)B8G)R<G)\nMSVLV:VO965E94EF5E965O+R\\O!,3$[QV4E)24E)24I65E965,S-96=#08>GI\nMS3D<*,T$>4WEY>5C*P$E8=`!65*\\4I4S[D9&)4M+`G_(U-34U-34U-34U,C(\nMU,C44,TH*#DY'!PH*%!0M+2T554%;&QL;&P2$A(2$A)L;&QL;`6TM+104%!0\nM4%!04%!04%\"TM+15555L;!(2$A(2$FQL5;104\"@<*,U04+2TM%5556QL;!(2\nM$A*U#`Q#(2$[O@&'AX>'AX>'AX>'AX<^/CZ^OM;6UH&?)][>WM[>#0T-WMXG\nM@8'6UM;6)\"0D)#X^/B0D)\"36UM;6@8&!@8&!UM;6UM;6UN[N[A$1$1%A86%A\nM89##2W]_$!`0M8BNH*\"@/CZ;)\"0D)-:?WO7U%Y^!\"@HD)\"1J:FJ@KH@0MK80\nM$(B(B*ZNKJ!J:I@D)`H*GY^'AX>'AX>'AX>'AX12`9[08267+62LK/'QK*QD\nMVBDI*2DIVMHM+2TM+2W:VMK:*?2,E#<WE`:,C`;,46`&]\"DM9/'LL5J]O5JQ\nM[/%DVO0W46`WE`8&E)24E`:,]/0IVBUD\\>RQ[VL)\"<_/S\\^`S\\\\)\"0D):VMK\nMJC8V[NX'65E24G9V$Q,3=G924E*5E94Y.3F7EY=&JJJJJJJJJJJJJJJ`@(\"V\nMMK:UKJ\"^U@WAX0T-#8,J*BIZW]_?W]]'1T='I:6EI:6EI:6EI0MF9L0Q,8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<JN[M>F3T]TG%Q&;\"P4^WMBXN+BXOM[>U34U-34^WM\nM[5/M[>WM[5-3L+\"PL!D9&1D9&1EQTM(]/3V9F0,#7KLJ*BHJ*KN[N[LJ*BJ[\nMN[N[N[N[N[N[*GIZ>GIZ>GHJ*BJ[N[N[N[N[N[N[7ID]<1FP4U/MBXLTQ<7%\nM9P\\/3$Q,3$Q,3$Q,B8F)B8F)B8F)B8F)B8F)B<G)R<G)R186%A86%A86%A86\nM%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86R<G)R<G)R<G)R<G)B8F)\nMB8F)B8F)B8F)B8F)B8F)\"6LV-FO9E9594EF54E)24E*54E*5E965E94S,S,S\nM!P<'!Q$')=EN-FMK\"<_/SR@<*,THU,@\";DLE8=`K*P$!=A-2,P<EJJJJ@,C4\nMU-34U-34U-34U,C(R,@\"`@)N;B@H.3DY'!PY*,U04+2TM+15!6QL;&QL;&P2\nM$A)L;&QL!56TM%!04,W-4%!04%!04+2TM%5556QL;!(2$A(2$FQL5;2T4\"@Y\nM*\"C-4%!0M+1556QL;!(2$K4,M0Q#0SMPAX>'AX>'AX>'AX>'AX>'/CN^OM;6\nMUH$GWM[>#0T-#0T-WMZ?@8'6UM;6UB2^OKZ^)\"0D)-;6UM;6UH&!@8&!@=;6\nMUM;6UM8D)\"0D)\"0D/CX^H*\"@KHBU$!`0$+6(KJ\"@/CXD)\"0DUM:?WO47%Y^!\nM\"@HD)\"0D:FIJH*Z($+:V$!\"(B(BNKJ!J:FJ8)\"0*@8>'AX>'AX>'AX>'AX>'\nMA`&>T&$E1F2LK*RL9&0MVBDI]\"DIVMHM+2TM+=K:VBDI]/2,E)24!@:,C)3,\nM4<P&]-HM9/'LL5J]O5JQQNQDVO0&S%%@S#<W-\\S,-Y2,]/0IVBVL\\>RQ60<1\nMV=EN-FMK\"<_/S\\_/SX\"`JJJJ-N[N!UE94G9V$W924EE965E963DY.3F7ET:J\nMJJJJJJJJJJJJJJJ(W-P0$!`0KJ\"^@0WAX0T-)Z%>N[LJ*BIZ>GK?W]_?W]]'\nM1]_?WT='1T>EI0L+\"PL+\"V9FQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<#/=+2<1FP4U/M[8N+-,7%\nMQ<4T-#2+BXOMBXN+BXN+BXN+[>U34[\"P4U-34[\"P&1D9&7%QTM+2/3T]/3T]\nMF9F9F0,#`P,#`P,#`P->7EY>N[N[N[LJ*BHJ*BHJN[M>7EZ[N[M>7EX#`YD]\nM<1FP4XN+BS3%Q6=G9P],3$Q,3$Q,B8F)B<G)R<G)R186%A86%LG)R186%A86\nM%A86%A86%A865%145%145%145%06%A86%A86%A86%A86%A86%A86%A86%LG)\nMR<G)R<F)B8F)B8F)B8E,3$Q,3$R)B8E,B8F)B8F):VLV-FNC65*565F54I65\nM4E)9!P=2E94S,P<'!P<E)=EN;F[(:PG/S\\_/\"6LV-C8V;F[9V24'!S,!=KR\\\nM$Q,3O(0!!R79JJJ`@(#4U-34U-3(R`)N;DM+2R4E2TLE)24Y.1P<'!PY*\"A0\nM4%\"TM+15505L;&QL;&QL;&QL;&QL!;2TM%!0S2@HS5!04%!04+2T555556QL\nM;!(2$A(2$FQL556T4\"@H.2@H4%!0M+15555L;&P20T,,#$,A.^&'AX>'AX>'\nMAX>'AX>'AX>'ASN^OM;6UN$GW@T-#0T-#=[>WB>?@=;6UM;6UM8D)\"0D)-;6\nMUM;6UM;6UM:!@8&!@=;6UM;6UB0D)\"0D)#X^/CX^H*\"NKHBU$!`0$+6(KJ\"@\nM/CXD)\"0DUM:?WO47GY^!\"@H*)\"0D)&IJH*Z($+:V$!\"(B(BNKJ\"@:FJ8)\"0*\nMAX>'AX>'AX>'AX>'AX>'AP&$>\"O0849&9&1D9\"W:*2GT]/0I*=K:+2W:VBDI\nM*2DI]/2,!@8&!HR,!I1@43>,]-HM9/'LL5J]O;WO:.RL+2F,-V!18&#,8&!@\nMS)2,]\"G:+62L[.QV=G924I59!P<'V=DV-FL)\"8\"`@*JJJC;N[NX'65E965)V\nM=G9V4E)2.3DY.9>7ET:JJJJJJJJJJJJJI*2NKJZ(B+40KJ\"^@=XGX0T-X:$]\nM/9F9`P->7KN[N[N[*BIZ>GK?W]_?WT='1Z6EI:6E\"PL+9L3$,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=Q\nM&1FP4^WMBS0TQ6=G9V=G9\\4TB^WM[>WM[>V+BXN+[>WM4U-34U.PL+\"PL+`9\nM&1EQ<7%Q&1D9&7%QTCT]F9D#`P->7@,#`P,#F0,#7EY>7EY>7EY>`P,#`P.9\nMF9F9F9D]TM)Q<1D9L%/M[8LTQ<7%9P\\/3$Q,B8F)B8F)R<G)R186%A86%A86\nM%A86%A86%A86%A86%A86%A86%A86%A94%A865%06%A86%A86%A86%A865%14\nM5!865%145!86%A;)R<G)R<G)B8F)B4Q,B8F)B4Q,3$Q,B8F)B8F)B8F)B8F)\nM:VLV-FLV!Y52!P>54EE9E94'V=D'!Y4S!P<')279V6[(:PD)\"0EKR,@V-F[9\nM$0=965F54E*\\=E*5E965E0$!`2O0)4O(@(#JZH#4U-3(`@)N;FYN;DM+)24E\nM)6'0T-#0'!P<'!PY*\"C-4%\"3M+2T505L;&QL;&QL;&QL;&P%5;2TM%!0S2@H\nM*\"A04%!0M+2T555556QL;!(2$A(2$FQL556T4,TH'\"@HS5!0M+15555L;&P[\nM(2$AX\"%(AX>'AX>'AX>'AX>'AX>'AX>'AX>^OM;6UN$GW@T-#0W>WM[>WB>?\nM@=;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UH&!@=;6UM;6)\"0D)\"0^/CX^/J\"@\nMH*\"NB(BU$!\"V$+6(KJ\"@/CXD)\"0DUM:?WO7>GY^!\"@H*)\"0D)&IJH*\"(B!\"V\nM$!\"(B(BNKJZ@:FIJF\"2'AX>'AX>'AX>'AX>'AX>'AX>'65(!T&%A1F0M+=K:\nM*?3T]/3T*2G:VMK:*?3T]\"DI]/2,C(R,C(P&E,Q143>,]-HM9/'LL5J]O;WO\nML>SQ9-KT!LQ145%145%@S)2,]\"G:+62L!P<'!P=9,Y524G9V4ED'V38VJH\"`\nM@(\"JJJHV[N[N[N[N!P<'65E9E5(<'!P<'!P<'#DYEY=&JJJJJJ2DI&IJH*\"@\nMKH@0KJ\"^@2<GX0T-X9S2TM+2TCT]F9D#`UZ[N[N[NRHJ*BIZ>M_?1T>EI:6E\nM\"PL+\"V9FQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<9L+!3[8N+-#3%Q<7%-#2+BXOM[>U34^WMBXN+BXOM\nM[>WM4U-3L+\"PL+`9&1D9&1D9&1D9&1EQTCV9F0->7EY>7EX#F9F9F9F9`P,#\nM`P,#`P,#`YD]/=)Q<7%Q<7$9&1D9&;!3[8N+-#0T-,5G9P],3(F)B8F)R<G)\nMR186%A86%A86%A865%145%145%145%14%A86%A86%A86%A86%A86%A86%A86\nM%A86%A86%E145%145%145%145%06%A86%A;)R<G)R<F)B8F)B8F)B8F)B8F)\nMB8F)B8F)B<G)R<G)R<G):VLV-J);V0<'V=F5E0<'65D'V=G9!]G9V1$')279\nM;LAK\"0EK:\\AN;MG9V1$'69524G9V=G924I4S!P<1!R79V6[(`LC4ZL_/\"<@\"\nM;DLE)25A86'0T\"LK`0$!`0&$A(2$A(0Y.3DY*\"A04%\"3M+2T504%;&QL;&QL\nM$FQL;&Q5M+2TDU!0S2@H*\"C-4%!0M+2T5555555L;&P2$A(2$FQL556T4,TH\nM'\"@HS5!0M+15555L;#L[.R$ATTB'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A];6\nMUN'>#0T-WM[>WB<G)Y^!@=;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6\nMUM;6)\"0D)#X^/CX^H*\"@H*ZNB+6U$!\"V$+6(KJ\"@/CZ;)\"0D)-:?%_7>GX$*\nM\"@HD)\"0D)&IJH*\"NB!\"VMA`0B(BNKJZ@H&IJF(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>54@$K*Y<MVMHI*?3TC/3T]\"DIVBDI]/3T]/0I*?3T]/3TC(P&-V!1\nM8)2,]-HM9/'LL5J]O;U:L>SQ9-HIC)3,45%145%@S)3T*=HM9*SN$0<'!P<'\nM!P<'63.5=G9261&CJJJ`@(\"`JJHV-N[N[N[N!P<'!UE969>7EY<Y.3DY'!P<\nM'#F7EYB8:FIJ:IB8:FIJH*ZVB*\"^@2?>X0T-X0T9&7%Q<7'2TM+2/3V9F0,#\nM`UY>7KN[*GIZW]]'1Z6EI:4+\"PMF9F9F9F9FQ,0QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<9&1FP4^V+BXN+BXN+BXN+\nMBXOM[>WMBXN+B^WM4U-34U-34[\"PL!D9&1D9&1D9&1D9&7%QTCT#`UY>7KN[\nM7EX#`YF9F9F9`YF9F9F9F9D]/=)Q&1FPL+\"PL+\"PL%-34U-3[8LT-,7%9P],\nM3$Q,B8F)B<G)R<G)%A86%A86%A86%A945%145%145%145%145%145%145%14\nM5%145%145%06%A945%145%145%145%145%145%145%145!86%A86%A;)R<G)\nMR8F)B8F)B8F)B8F)R<G)R<G)R<G)%LG)R<D6%A86:VO9HZ)K==G9V=F5E0<'\nM!P?9V=G9V=G9V:EUP&L)\"0EKR&YN;MDE)0<1,Y5V=E)2E5E965E9!Q$EV6XV\nMR&L)SPEK-FYNV39NV1$1!UE9`0$!`0$!A':\\O+R\\O+P3$Q.\\=H2$.2@H*,U0\nM4%\"TM+15!04%;&QL;&QL$A)L;`55M+2T4%!0S2@H*\"@H4%!0M+2T5555555L\nM;&P2$A(2$FQL556T4,TH'\"@HS5!0M+15556^OKZ^(2%*AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX?6X2?>#0W>WM[>)R<G)Y^!@=;6UM;6UM;6UM;6UM;6\nMUM;6UM;6UM;6UM;6UM;6UM8D)\"0D/CX^/J\"@H*\"@KJZ(M;6U$!\"V$+6UKJ\"@\nM/CX^:B0D)-:?]1>?@0H*)\"0D)\"0D)&IJH*\"NB!\"VMA`0B(BNKJZ@H&J'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX03A\"LKERDI]/2,C(ST]\"DI*2GTC(R,\nMC/3T*2DI]/3T](R48%%1-P:,]\"DM9/'LL5J]O;U:[\\;L9\"TI]`8W8%%145%1\nMS`;T*=HM!P<'EY>7*\"@H$1$1!P=94G9V6>ZCJJJ`@(\"`JJHV-C;N[N[N[NX'\nM!UE9.3D<'!P<'!P<'!P<'&#,E`8DF)B8F\"0DF)AJ:J`0M:\"^UB?>)PT-<`T9\nM&1D9&7%Q<7%QTM+2/3V9F9D#7EY>7KN[*BIZW]]'1Z6E\"V9FQ,3$Q,3$Q&;$\nMQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<9\nM&;\"P4U-34^WM[8OM[>WM[>WM4U/M4U-3L+`9&1FPL%-34U.PL+\"PL+\"PL+`9\nM&7'2/3V9F9F9F9F9F9F9F9D#`YD#`P.9F9F9F9D]TG$9&;\"PL+\"PL+\"PL+!3\nM4^WMBS0TQ<5G9P],3$R)B8F)R<G)R<G)R186%A86%A86%E145%145%145%14\nM5%145%14DI*2DI*2DI)45%145%145%145%145%145%145)*2DI*2DI*25%14\nM5%14%A86%A86%LG)R<G)R<G)R<G)R<G)R<G)R<G)R186%A86%A86%A86%A86\nM`FO9H\\^B-J/9-MF54ED'!]G9V3;9V=FCV:FI=117HF[9)1$'!S,SE5)V=I59\nM!P<1!P<'!^[N[J-N-LAK\"<\\):S9NV24'!P?N[NX'69654H12`0&$=KR\\$Q,3\nM$Q.\\A`$K*]#0*RLH4%!04+2TM%4%!6QL;&QL;&P2$A)L;&Q5M+2TDU!04\"@H\nM*\"C-4%!0M+2T5555555L;&P2$A(2$FQL556T4,TH.2@HS5!0M+1554B^2-,N\nMTX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'X2?>#0W>WM[>)R>?GX&!\nMUM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM8D)\"0D/CX^H*\"@H$.N\nMKK6(M;40$!`0$+6UB*Z@H#X^/FHD)-:?]=Z!\"B0D)\"0D)\"0D:FIJH*\"NB!\"V\nMMA`0B(B(KJZNH(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'$W:\\`3DI\nM]/2,C(ST]\"DI*?3TC`8&C/3T*2DI]/3TC`;,45',E(ST]\"DM9/'LL5J]O;V]\nM[VCLK\"W:](R4S&!145%18)3T*0<'!UE9EY>7EY<H!P<'65F5=G926>[N-JJJ\nM@(\"`@*JJJC8VH^[N[@<'!UDY.1P<'!PY.3F7.6!1]?51S#<W!@8D\"@H*)\"0D\nM)*`0M:\"^UMX-)PT-<.L9&1D9&1D9&1D9<7%Q<=+2TCT]F9D#7EZ[*BHJ>M_?\nM1T>EI0L+9F;$Q#$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<9L+\"PL%-34U-34U-34U-3L%-3L+\"PL+\"P&;!3[>WM\nMBXN+BXN+BXOM4U.P&7'2TM+2/3V9F9F9F9F9F9D#`UZ[N[M>`P.9F3T]/=)Q\nM&1D9&1D9L+\"P4U/M[8LT-,5G9V</3$Q,B8F)B8G)R<G)%A86%A86%A86%A86\nM%A86%A86%A86%A945%145%14DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2\nMDI*2DI*2DI*25%145%145%06%A86%A86%A86%A86%A86%A86%A86%A86%A86\nM%A86%A86%A865%145%145&NIH\\_/6S8V-MF54I4'!]DV-C;9V=DVV:FI=5M7\nM5ULX=0<1!P<SE783=I4S!UD1!^[N[N[N[NZC;FXVR`G/SVMKR#8V;F[9H^[N\nM!SDY694!`5)VO!,3O':$`0$K*]#0T-#0T\"LK4%\"3M+2T504%;&QL;&QL;&QL\nM$A)L;&Q5M+2TM%!04%#-*\"A04%\"TM+2T5555555L;&P2$A(2$FQL556T4,TH\nM.2@HS5!0M+152$I*T].'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<-#0W>WMXG)Y^!@8'6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6\nMUM8D)\"0D/CX^H*\"@0ZZNM;6UM1`0$!`0$+6UB*Z@H*`^/CXD)-:?]9^!\"B0D\nM)\"0D)\"0D:FIJH*\"(B!\"VMA`0B(B(B*ZNAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'`1.$.?2,C(ST]\"DI*?2,!I24!HST]/3T]/3TC)1@4<PW\nM!HST*=HM9/'LL>^]O;V][VCLK&3:*?2,E,Q@45%143>,!P<'!UE9EY>7EY>7\nME9524G9V=E)960?NHS:JJJJJ@(\"`JJHV-J/N[N[N!Y<Y.1P<'!P<63>4-V#U\nM41<78%$78)^?GY^?\"B0D)*`0M:\"^U@T-W@T-X;`9&1D9&1D9&1D9&1D9&7%Q\nM<=+2TM(]/9D#7EZ[*BIZW]]'1T>EI0L+9L3$Q#$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<9&1FPL+\"P4U-34U-3L+\"P\nML+\"PL+`9L+!3[>V+BXN+-#0T-(N+[>U34[`9<=+2TM+2TCV9F0->7EY>7EY>\nMN[M>`YD]/=+2<7%Q&1D9&;\"PL+!34^V+-,7%9V</#TQ,3$Q,3(F)B8F)R<G)\nMR<G)R<G)%A86%A86%A86%A86%A86%A86%E145%145))4DI*2DM75U=75U=75\nMU=75U=75U=75U=75DI*2DI*2DI*25%145%145%145%06%A86%A86%A86%A86\nM%A86%A86%A945!86%E145%145%145%145%145%145%L'H\\_/6ULV-ME9E5)9\nM!]DV-C8VV38VV=FI=5M75Q3`.'5UGIZ54G9V4I4S!UD'$>[N[N[N[N[N[FXV\nMR&L;S\\_/SPD):\\@V;C;N[NXY.3E9,Y52=A.\\=H0!`2LKT-#0T-#0*P````\"T\nMM+15!05L;&QL;&QL;&QL$FQL;&Q5M+2TM+104%!04%!04%\"TM+2T5555555L\nM;&P2$A(2$FQL556T4,TH'\"@HS5!0M'!$1$K!AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'#=[>WB<GGX&!@=;6UM;6UM;6UM;6UM;6UM;6\nMUM;6UM;6UM;6UM;6UM;6UM;6)\"0D/CX^H*!#KHBUM;6U$!`0$!`0$+6UB*Z@\nMH*`^/FHD)-;>]9_6)\"0DFVIJ:FIJ:FIJH*Z(B!\"VMA`0M8B(B(>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'`0$!=G8YC(ST]/0I]/2,E,S,\nME`:,C(R,C(R,!LQ18#>4C/3T*=HMK/'LL>^]O;V]6K'LK&0MVBGT!C=@45%1\nM479V$Q,3$W9V=G9V=G9V=G9V=G92E5E9!P?N[NZC-C8VJJJJ@(\"JJJHV-J/N\nM[I<Y.1P<45%@S)24-U%18%'U]?7U]?47%Q<7@20D)*`0M:\"^U@T-W@T-X;\"P\nML+\"PL+`9&1D9&1D9&1D9&1D9<7%Q<=+2TCV9F9D#7KN[*GK?W]]'I0L+9F9F\nM9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<9\nML+!34^WM[>WM[5-34U-34U-34U/M[>WMBXLT-#0T-#0T-(N+[5.P&1D9&7'2\nMTM(]F9D#`P,#`P,#7EX#F3W2TM)Q<1FPL+\"PL%-3[8LT-#3%Q<5G9P],3$Q,\nM3$Q,3(F)B8F)R<F)B<G)R<G)R<G)R<G)R186%A86%A86%A86%A86%E145%22\nMDI*2U=75U=75U=75U=75U=75U=75U=75U=75DI*2DI*2DI*25%145%145%14\nM5%145!86%A86%A945%145%145%145%145%145%145%145%145%14DI*2DI*2\nMDI)9-J+/6VLV-MD'!U*5!]DV-C8V-C8V-MG9=5NB5Z);P'5UJ9YX`5*\\=G92\nM4I5960<'[N[N[J,VJJK(:VL)\"1O/S\\\\):\\ANV27N[CDY.5E94E)2=A-V=E*5\nM`0$K*RLK*RLK86%A86%A854%!6QL;&QL;&QL;&QL;&QL;`55M+2TM+2TM%!0\nM4%!04+2TM%555555555L;&P2$A(2$FQL;%6T4%`H'\"@H*,U09:9$AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?>WB<G@8'6UM;6\nMUM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM:!@=;6UM;6UB0D/CZ@H$.NM;6U\nMM1`0$!`0$+80$+6UB*Z@H*`^/ILDUH'>]9_6)\"0D:FIJ:FIJ:FJ@H*Z($!\"V\nMMA`0$(B(AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?9$1$1$5E965DS`81V\nM=G9VO#F,]/3T](R4S&!@S#<&!@8&!@8&E,Q18#<&C/0IVBUD\\>SLL>^]O;V]\nM6K'L\\60M+2GTC)3,4783=E(S65D'!P=965E965E9!P<'$1$1[N[N[N[N[N[N\nM[N[N[C8VJJJ`@*JJJC8V1I>7!LQ1]5%@-Y24S%%18&!146\"?GV`7]?7UGR0D\nM)*`0M:\"^U@T-#0T-L+\"PL+\"PL+\"PL+\"PL+`9&1D9&1D9&1D9&1EQ<7%QTM(]\nM/9D#`UZ[*GK?1Z6E\"V9F9L0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=3[8N+BXN+BXOM[>WM[>WM[>WMBXLT-#0T-#0T-#0T\nMBXN+[5.P&1D9<7'2TM(]/3V9/3T]/3T]/=+2<7%Q<7%Q<1D9&;\"PL%-3[8LT\nM-,7%9P],3$Q,3(F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)R<G)R<G)R<D6\nMR<G)%A86%A945)*2DI+5U=75U=75U4)\"0D)\"0M75U=75U=75U=75U=75U=62\nMDI*2DI)45%145%145%145%145%145%145%145%145%145%145%145%14DI*2\nMDI*2DI*2DI*2DI*2DI*2DI*$-J+/6VLV-MG9V0=2!]DV-MG9-C8V-MFC-EL4\nM5U<46\\!U=9YX`0%2A(0!4E*565D'[N[NHS8VJJIK:PD)S\\_/S\\\\):\\@V;B4'\nM[CE9'!P<=A-V=E(S65D'$1$1V=EA86%AD,-+2TM+R\\O+!6QL;&QL;&QL;&QL\nM;&QL;`55M+2TM+2TM+2TM+2TM+2T5555555556QL;!(2$A(2$FQL;%6T4%`H\nM.3DH**'DR&L)AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'WB>?@=;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UH&!@8'6\nMUM;6UB0D/CZ@H*ZUM;6U$!`0$!`0MA`0$+6UB*Z@H#X^FR0DUI\\7%Y_6)\"1J\nM:FIJ:FIJ:FJ@H*Z($!\"VMA`0$(>'AX>'AX>'AX>'AX>'AX?N$1$1$1$1$1$1\nM$1$165DSE79V=G9V=G9V4E)VO+R\\'(R,C)0W8%%146#,E#<W-S<WS%%1S)2,\nM]\"G:+62L\\>S&L5J]6EI^L1TBK&0M,#`IC%99E5)V=E*560<1V=G9V=G9V=G9\nMV=EN;C8VJJHV-C8V-C8V-C8V-JJJJJJ`@*JJ-MFL9-KT!F!1]5',-Y24S%%1\nM8,S,-S<&!C>?%Q<7GR0D)*\"U$*`^U@T-#0T<4U-34U-34U-34U-34U.PL+`9\nM&1D9&1D9&1D9&1D9&7%QTM(]/9D#`[N[*GIZWT>E\"PL+9L0Q,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>+BXN+BXN+[>WM[>WM[8N+\nM-#0T-#0TBXN+BXN+B^WM[>U34[`9&7%Q<=+2TM)Q<=+2<7%Q&1D9&1D9&1D9\nML+\"PL+!34U-3[8LTQ6=G#TQ,3(F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)\nMB4Q,3$Q,3$Q,3(F)B8G)R<G)%A945)*2DM75U=75U4)\"0D)\"0D)\"0D)\"U=75\nMU=75U=75U=75U=75DI*2DI*2DE145%145%145%145%145%145%145%145%14\nM5%145)*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DE145%14T*+/HFLVH]G9V=E9\nM6=DV-MG9V38V-C8V-EL45U>B%%LX=9YX`0%2A(2$`7AXG@?9V38VJJJJJJJJ\nM:PG/S\\_/S\\_/SPEKR#9N)>XY.1QV'%)960<1$=G9;C8V;FYN`@(\"R,M_?W\\@\nM(\"!_?W\\%!04%!6QL;&QL;&QL!555M+2TM+2T5;2TM+2TM%5555555555;&QL\nM;!(2$A(2$FQL;%6T4%`H*#GK;C9K\"0D)\"0EKR&YN)1$SE783$Q-VAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>!UM;6UM;6UM;6UM;6UM;6UM;6UM;6\nMUM;6UM;6UM;6UH&!@8&!UM;6UB0D/J\"@KK6UM1`0$!`0$+80$!`0$+6(KJZ@\nMH#Z;)\"36@=[UWI_6)\"1J:FIJ:FIJ:FJ@H*Z($+:VMA\"'AX<.\"0EK:S8V-F[N\nMV>[NV=GN[A$1$1$S65E9,Y52=G9V=I4S65F54E)V=G9V=G9V$Q.\\-\\Q@45%1\nM45%1S,S,S,S,8%%@-Y2,]-JS+62L\\2+L:+%^6EI^L1TB\\:PMVC`P[A$'65)V\nM=E)960<1V=EN;C8V-C9N;FYN;NZJJJJJJJJ`@(\"`@(\"`@(\"`@*JJJFC&[/&L\nM9-KTE&!146`WE`:4S%%1S)0&!@:8F`8*GY\\7GR0D:J\"U$*`^UM[>W@U34^WM\nM[>WM[>WM[>WM[>WM4U-3L+\"P&1D9&1D9&1D9&7%Q<=+2TCT]F9D#7EZ[*BIZ\nMW]]'I0L+9L0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?M\nMBXOM[>WM[5/M[>WM[>V+BXN+BXN+BXN+-#0TBXN+[5-34[`9&1D9&1D9&;\"P\nML+\"P&1D9&1D9L%/M[>WM[>WM[8N+-,7%9P],3$R)B8G)R<G)R<G)B8F)B8F)\nMB8F)B8F)B4Q,3$P/#P\\/#P\\/9V=G9V</3$R)B8F)R<D6%E22DM75U=75U=75\nMU4)\"0D)\"U=75U=75U=75U=75U=75DI*2DI*2DI*25%145%145%145%145%14\nM5%145%145%145%145%145%145)*2DI*2DI*2DI*25%145%145%145%14%E06\nM%A86%EO/HFLVV=G9V=D'E=DV-MG9V38V-C8V-EL45U=7%!3`=:F>>`$!4H2$\nM`7AXGG5U.,#`JJJJJJJJR&L)\"<_/S\\_/S\\\\):\\ANV=D'65D<=APS61$'$1'9\nMV6XV;FYN;FYN;@(\"R&MK?W]_RTM+2P4%!6QL;&P%!04%>7F3D[2TM+155555\nM5555555555555555;&QL$A(2$A(2$FQL556TM%#-ZQ'9;C9K\":H)\"0EK`FXE\nM$3-2=A-VE3,S,S,S,S,1$1$1*RLK*P%24E)2``&'AX>'AX>'AX>'A];6UM;6\nMUM;6UM;6UM;6UM;6UH'6UM;6UM;6UM;6UM:!@8&!UM;6UB0^/J!#KK6U$!`0\nM$!`0$!`0$!`0M;6(KJ\"@/FHD)-:!GQ?UGX'6)\"1J:FIJ:FIJ:FJ@H*Z($+:V\nM$#9K\"0D)SPD):S8V;MG9$>X1$1$1$1$165DSE5)V=G9V=G9V=I65E3.54G9V\nM=G9V=G9V=G9V=G9V8,S,S,Q145%145'U]5%@-U:,,-IDK/$B[.P=:.]^6EI^\nML6@=(O%D[A$1$5E9,U)2=G92E5E9!P<1V=GN;J,V-FYN-JJJJJJ`@.J`@(\"`\nM@*JJJJK&:&BQL;'&[/&L9-KTE%'U4<R4!@:4-U%1-P:,F)B8F)@D\"I\\7GR0D\n-------- End of part 9 of 14 --------\n\nKeywords: \n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8018, "properties": {"category": "misc.forsale", "text": "From: suresh@pa.dec.com (Suresh Balasubramanian)\nSubject: *****Twin Size Mattress/BoxSprng/Frame for SALE $75*****\nOrganization: Digital Equipment Corporation\nLines: 29\nDistribution: ba\nNNTP-Posting-Host: tmax4.pa.dec.com\n\n\n!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-!-*-!-*-!-!-*-!-*!\n\n\tTwin Size - Mattress, Box Spring and Frame for SALE.\n\n\t** Medico-Pedic [type of mattress?]\n\t** Excellent condition\n        ** 2 yrs old\n\t** Well maintained\n\t\n\t-- You come and pick it up, stuff is located in PaloAlto\n\n\tAsking for: $75\n\n\n\tContact:\n\n\t\tSuresh\n\t\t(415)-617-3522 [W]\n\t\t(415)-324-9553 [H]\n\t\tE-Mail: suresh@pa.dec.com\n\n\n!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-*-!-!-*-!-*-!-!-*-!-*!\n-- \n      o o o o o o o . . .   ______________________________ _____=======_||____\n    o      _____           ||Suresh Balasubramanian      | |suresh@pa.dec.com|\n  .][__n_n_|DD[  ====_____  |Digital Equipment Corp.     | | (415) 617-3522  |\n >(________|__|_[_________]_|____________________________|_|_________________|\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8019, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Who picks first?\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 9\nNntp-Posting-Host: mail.sas.upenn.edu\n\nOttawa picks first, because they had fewer wins during the season, the\nfirst tiebreaker.\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8020, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: zrdf01@trc.amoco.com (Rusty Foreman)\nSubject: Re: 17\" Monitors\nReply-To: zrdf01@trc.amoco.com\nOrganization: Amoco Production Company, Tulsa Research\nLines: 11\n\nHas anyone taken a look at the new ViewSonic 17? They claim 1280x1024 at 76Hz.\nHow does it compare with the T560i in terms of price, and quality of display?\n\n\n|-----|  Living on Tulsa time.....  \n   |   \n   |   Rusty Foreman  - - - - - - - - rforeman@trc.amoco.com\n   |   Amoco Production Research        {...uunet}!apctrc!zrdf01\n   |   P.O. Box 3385                      phone: (918) 660-3488\n   |   Tulsa, OK 74102                      fax: 918-660-4163\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8021, "properties": {"category": "sci.space", "text": "From: steinly@topaz.ucsc.edu (Steinn Sigurdsson)\nSubject: Re: Commercial mining activities on the moon\n\t<1993Apr20.152819.28186@ke4zv.uucp>\n\t<1993Apr20.204838.13217@cs.rochester.edu>\nOrganization: Lick Observatory/UCO\nLines: 53\nNNTP-Posting-Host: topaz.ucsc.edu\nIn-reply-to: dietz@cs.rochester.edu's message of 20 Apr 93 20:48:38 GMT\n\nIn article <1993Apr20.204838.13217@cs.rochester.edu> dietz@cs.rochester.edu (Paul Dietz) writes:\n\n   In article <1993Apr20.152819.28186@ke4zv.uucp> gary@ke4zv.UUCP (Gary Coffman) writes:\n\n    > be the site of major commercial activity. As far as we know it has no\n    > materials we can't get cheaper right here on Earth or from asteroids\n    > and comets, aside from the semi-mythic He3 that *might* be useful in low\n    > grade fusion reactors.\n\n   problem with 3He (aside from the difficulty in making any fusion\n   reactor work) is that its concentration in lunar regolith is just so\n   small -- on the order of 5 ppb or so, on average (more in some\n\n   This thread reminds me of Wingo's claims some time ago about the moon\n   as a source of titanium for use on earth.  As I recall, Wingo wasn't\n ...\n   even 1% of the basalts are 5% TiO2, this is trillions of tons of TiO2\n   at concentrations only a factor of 2-3 less than in lunar high-Ti\n   basalts.  It is difficult to see how the disadvantages of the moon\n   could be overcome by such a small increase the concentration of the\n   ore (never mind the richer, but less common, terrestrial ores being\n   mined today).\n\nWhy Paul, it's obvious.\nOnce chlorine chemistry has been banned on Earth,\nas is being advocated by some groups, Ti prices will\nsharply increase (we are of course not allowed to\nassume any developments in Ti processing).\nLunar Ti will then be eminently competitive for\nthe trendy jewelry market and certain applications\nof National Importance \n\n:-) :-) :-) \n\n\n(oops, this is sci.space... wrong rules of debate ;-)\n\n\nSeriously, I'd say there is a flaw in Gary's analysis\nin that he assumes an export oriented economy, maybe\nthe lunatics will just want some native Ti for local\nuse... as to why Lunar natives are cost effective, \nanalysis has shown they will be critical in providing\na sheltered manufacturing base, technological innovation,\ncritical materials and manpower in the war between\nthe Allies and Central Powers in about two hundred years...\n\n;-)\n\n|  Steinn Sigurdsson\t|I saw two shooting stars last night\t\t|\n|  Lick Observatory\t|I wished on them but they were only satellites\t|\n| steinly@lick.ucsc.edu |Is it wrong to wish on space hardware?\t\t|\n| \"standard disclaimer\"\t|I wish, I wish, I wish you'd care - B.B. 1983\t|\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8022, "properties": {"category": "rec.autos", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Carb Cleaners - Do they work???  (Performance?) Carb rebuild?\nOrganization: NEC Systems Laboratory, Inc.\nLines: 34\n\nIn article <1993Apr15.062557.1224@slcs.slb.com> dcd@se.houston.geoquest.slb.com (Dan Day) writes:\n>In article <C5Fyt4.JBy@cpsc.ucalgary.ca> schaffer@cpsc.ucalgary.ca (Doug Schaffer) writes:\n>>\n>>How hard is a carb rebuild for moderately experienced backyard mechanic?\n>>I've done my clutch and miscellaneous little engine fixes.\n>\n>The hardest part is usually getting the darned thing off the intake\n>manifold.  Rebuilding a carb is fun, if you're into things with\n>lots of little parts.  I used to rebuild them for all my friends'\n>cars in high school, so it doesn't take a PhD.  Buy a carb rebuilding\n>kit from an auto supply store.  Buy a gallon of the best carb cleaning\n>solvent you can find (do they still make Tyme?) -- as a rule of thumb,\n>buy the one with the scariest warning labels.  Put it into a metal(!)\n>bucket.  Make yourself a dipping can by punching holes in the bottom of\n>a coffee can and attaching a wire handle to it.  If the carb cleaner\n>doesn't strip the paint right off the coffee can, you're not\n>using the right stuff.  Use the can to soak the little stuff, and\n>just hang the big parts from a coat hanger.  Wash them off with a\n>garden hose, wipe off excess water with paper towels, and air dry.\n>Then remember where all the little parts go.  Follow the rebuild\n>kit's instructions concerning float height, choke tension, etc.\n>Bolt it back on the engine and admire the super-clean carb on the\n>filthy engine.\n\n\tHeed this man's warnings!  If you get carb cleaner this strong on\nyour hands, your hands will be eaten away.  Not pretty.  Hence the \"dipping\ncan\" method.\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8023, "properties": {"category": "talk.politics.guns", "text": "From: syck5280@miller.cs.uwm.edu (Steven B Syck)\nSubject: WI and IL firearms law Questions\nOrganization: University of Wisconsin, Milwaukee\nLines: 39\nNNTP-Posting-Host: 129.89.9.13\n\n\n\nA couple of questions for you firearms law experts out there:  \n\nQuestion #1\n\nAccording to the NRA/ILA state firearms lawbook, in Wisconsin it is\n'unlawful for any person except a peace officer to go armed* with a \n\"concealed and dangerous weapon.\"  There is no statutory provision for\nobtaining a lixense or permit to carry a concealed weapon.'\n\n*  Jury instructions indicate that 'to go armed' one must have a firearm\non one's person or within his immediate control and available for use.\n\n\n\nDoes this mean that open carry is allowed?  If so, just how 'open' does it\nhave to be?  Would an in the pants holster be considered concealing?  What\nif one had their jacket on and it partially covered the weapon?  Also,\nis there any way to be allowed to carry concealed, or is it just not allowed,\nperiod? \n\nQuestion #2\n\nAs I understand it, in Evanston, IL, they have a ordinance banning handguns.\nIs there any way to get around this provision?  What would the penalty if\nyou were found out be?  What if you used said handgun in a defensive shooting\nin your apartment there?  How would the city law apply to your impending \ntrial for the shooting?\nAlso, what is IL state law concerning short barreled weapons?  Short barreled\nshotgun is what I would be interested in if a handgun were not available, \neither that or a shortened 9mm carbine (ie Colt, Marlin).  \nOne more thing, what is the chance of getting a CCW permit in IL without being\nrich or famous or related to the mayor?\n\nPlease send replies via E-Mail, as things seem to be piling up around t.p.g\na little faster than I can handle.  Thanks again \n-------   Steve Syck        syck5280@miller.cs.uwm.edu        --------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8024, "properties": {"category": "sci.electronics", "text": "From: pierson@cimill.enet.dec.com (Dave Pierson)\nSubject: Re: Swr Meter For Cb Radios\nOrganization: Digital Equipment Corporation\nLines: 31\nNntp-Posting-Host: cimill\n\nIn article <734953838.AA00508@insane.apana.org.au>,\npeter.m@insane.apana.org.au (Peter Tryndoch) writes...\n>AllThe Devil ReincarnateSWR meter for CB radios\n> \n>TD>From: ssave@ole.cdac.com (The Devil Reincarnate)\n>TD>Organization: CDAC, WA\n>TD>What\n>TD>is a good choice for a CB? 1/4 or 1/8 wave?\n>TD>  I read the installation instructions on a 1/4 wave antenna,\n>TD>and they suggested that I use an SWR to tune it at channel 12\n>TD>and channel 32 for a minimum reading.  Question is, why channel\n>TD>12 and 32?\n\n>The best antenna is one that will let out the most wave (probably not the \n>best explanation, but the rest makes sense) A one wave will cancell itself \n>out (BTW no such beastie).\n\tYes there is.  Not common for CB.  The pattern is different (sort of\n\ta cloverleaf, with four main lobes.\n\n> The best is a 1/2 wave antenna, followed by 1/4, then 1/8 etc.\n\tUse of anything under 1/4 wave for transmitting is very uncommon.  (The\n\tusual \"rubber duck\" uses a coil to fool itself into looking like a\n\tquarter wave.\n\tI reccomend the ARRL Antenna Handbook, or a good basic book.\n\nthanks\ndave pierson\t\t\t|the facts, as accurately as i can manage,\nDigital Equipment Corporation\t|the opinions, my own.\n40 Old Bolton Rd\t\t|I am the NRA\nStow, Mass 01775 USA\t\t|pierson@msd26.enet.dec.com\n\"He has read everything, and, to his credit, written nothing.\"  A J Raffles\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8025, "properties": {"category": "soc.religion.christian", "text": "From: jcj@tellabs.com (jcj)\nSubject: Re: Losing your temper is not a Christian trait\nOrganization: Huh?  Whuzzat?\nLines: 12\n\nSheila Patterson writes:\n>         \n>I always suspected that I was human too :-)  It is the desire to be like\n>Christ that often causes christians to be very critical of themselves and\n>other christians. ...\n\nI'd like to remind people of the withering of the fig tree and Jesus\ndriving the money changers et. al. out of the temple.  I think those\nwere two instances of Christ showing anger (as part of His human side).\n\nJeff Johnson\njcj@tellabs.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8026, "properties": {"category": "rec.motorcycles", "text": "From: erika@znext.cts.com (erik astrup)\nSubject: Re: Choking Ninja Problem\nOrganization: pnet\nX-Newsreader: Tin 1.1 PL4\nLines: 43\n\nstarr@kuhub.cc.ukans.edu writes:\n: I need help with my '85 ZX900A, I put Supertrapp slip-on's on it and\n: had the carbs re-jetted to match a set of K&N filters that replaced\n: the stock airbox.  \n\n\tAhh, and just how were the carbs rejeted to \"match\" the changes\nyou made to the bike? A stage three kit from K/N or Dynojet?\n\n: Now I have a huge flat spot in the carburation at : about 5 thousand RPM\nin most any gear. \n\t\n\tIsn't rejetting fun? \n\n: This is especially frustrating\n: on the highway, the bike likes to cruise at about 80mph which happens\n: to be 5,0000 RPM in sixth gear.  I've had it \"tuned\" and this doesn't\n: seem to help.  I am thinking about new carbs or the injection system\n: from a GPz 1100.  Does anyone have any suggestions for a fix besides\n: restoring it to stock?\n: \n\n\tNew CARBS??? Why would that fix it? you still have to get the \njetting right to match what seems to be a extremely overly lean condition.\nYou added a more free flowing exhaust, and then higher flowing filters. \nChances are it's to lean. BUT! This may not be,that's the big fun with \ncarb tuning. It's _very_ tricky. \n\n\tYour one and only choice (unless you want to spend many hours\nfiddling with the carbs) is to take it to a guy witha  Dyno and have he\ntune the carbs for your current set up. Otherwise you'll be playing\na guessing game for a long time...\n\n ==============================================================================\n  Erik Astrup                  AFM #422                              DoD #683 \n\n  1993 CBR 900RR  *  1990 CBR 600  *  1990 Concours  *  1989 Ninja 250 \n       \n      \"This one goes to eleven\" - Nigel Tufnel, lead guitar, Spinal Tap\n ==============================================================================\n\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8027, "properties": {"category": "rec.sport.hockey", "text": "From: klaty@atchafalaya.engin.umich.edu (Brad Alan Klaty)\nSubject: Goalies\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 10\nDistribution: world\nNNTP-Posting-Host: atchafalaya.engin.umich.edu\nOriginator: klaty@atchafalaya.engin.umich.edu\n\n\nI've heard that you can score on Belfour by shooting high \nbecause he goes down a lot, and on Potvin by shooting high \non him and then getting the rebound in because he plays so\ndeep in the net.  Any truth to these?\n\n\n\t\t\tBrad\n\nA Wings fan, but no predictions.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8028, "properties": {"category": "sci.crypt", "text": "From: mjr@tis.com (Marcus J Ranum)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Trusted Information Systems, Inc.\nLines: 21\nDistribution: na\nNNTP-Posting-Host: sol.tis.com\n\nbrad@clarinet.com (Brad Templeton) writes:\n>And this means that the FBI will want to track the customer lists of\n>better encryption phones, because \"the only reason a person would want\n>one is to evade the police.\"\n\n\tThen they'll probably also want to start tracking the customer\nlists of people purchasing SoundBlaster and similar boards, which can\nbe configured with the use of some code and a modem, to act as a pretty\ndecent digital-encrypting telephone. It's expensive, though, and kind\nof awkward. I don't know any drug lords, but I'm sure they'd favor\nsomething tappable over something secure as long as the user interface\nis nice.\n\n\tWhen you've got HRH Prince of Wales saying stupid things over\ncordless phones, it's not hard to imagine that drug dealers, child\npornographers, commies, LISP programmers, and other threats to the\ncivilized world might transact incriminating business over \"encrypting\"\ncellular phones.\n\n\nmjr.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8029, "properties": {"category": "alt.atheism", "text": "From: Nanci Ann Miller <nm0w+@andrew.cmu.edu>\nSubject: Re: Dear Mr. Theist\nOrganization: Sponsored account, School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 31\n\t<1993Apr5.024150.10193@wam.umd.edu>\nNNTP-Posting-Host: po2.andrew.cmu.edu\nIn-Reply-To: <1993Apr5.024150.10193@wam.umd.edu>\n\nwest@next02cville.wam.umd.edu (Stilgar) writes:\n> means to me.  The full quote (Michael Crichton, _Jurrasic_Park_) was \n> something like \"The earth has existed quite contently for billions of \n> years.  We have been here but for the blink of an eye, and if we were gone\n> tomorrow, the earth would not miss us.\".  I remember this quote to keep\n> myself humble when thinking that we have progressed so far or that we\n> are masters of this planet.\n  \nCool quote.\n\n> The earth doesn't need saving, it's existed quite happily with-\n> out us, we are the ones who need saving.\n\nBetter watch it.  The theists will jump on you for that... :-)\n\n> Brian West.\n> --\n> THIS IS NOT A SIG FILE            *    -\"To the Earth, we have been\n> THIS IS NOT A SIG FILE            *     here but for the blink of an\n> OK, SO IT'S A SIG FILE            *     eye, if we were gone tomorrow, \n> posted by west@wam.umd.edu        *     we would not be missed.\"-  \n> who doesn't care who knows it.    *        (Jurassic Park) \n> ** DICLAIMER: I said this, I meant this, nobody made me do it.**\n\nNanci\n\n.........................................................................\nIf you know (and are SURE of) the author of this quote, please send me\nemail (nm0w+@andrew.cmu.edu):\nLying to ourselves is more deeply ingrained than lying to others.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8030, "properties": {"category": "talk.religion.misc", "text": "From: caldwell@facman.ohsu.edu (Larry Caldwell)\nSubject: Re: Merlin, Mithras and Magick\nOrganization: Oregon Health Sciences University\nLines: 28\nNntp-Posting-Host: facman\n\nIn response to: Whitten@Fwva.Saic.Com (David Whitten):\n\nI wrote:\n\n>>There evidently was a feast of bread and wine associated with Mithras.  I\n>>have often wondered if Yeshua intentionally introduced this ritual to\n>>expand the appeal of his religion, or if it was appropriated by later\n>>worshipers.\n\nAnd you responded:\n\n>You could argue that if you wanted, but I think a more reasonable \n>argument would point out the fact that the remembrance feast was\n>very similar to the Pesach (Passover) meal during Seder, a very\n>Jewish ritual.\n\nOf course.  The feast WAS the Seder, and the accounts of it are very clear\non this point.\n\nThe difference is the connection between the bread and wine and the body\nand blood of god.  This is an old association of the Tammuz/Osiris/Mithras\nline, and not really related to Judaism.  In any case, I didn't really\nintend to argue the point.  I saw a possible association and pointed it\nout, but I haven't the foggiest notion what really happened.\n\n-- \n-- Larry Caldwell  caldwell@ohsu.edu  CompuServe 72210,2273\nOregon Health Sciences University.  (503) 494-2232\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8031, "properties": {"category": "comp.graphics", "text": "From: zyeh@caspian.usc.edu (zhenghao yeh)\nSubject: Re: Need polygon splitting algo...\nOrganization: University of Southern California, Los Angeles, CA\nLines: 25\nDistribution: world\nNNTP-Posting-Host: caspian.usc.edu\nKeywords: polygons, splitting, clipping\n\n\nIn article <1qvq4b$r4t@wampyr.cc.uow.edu.au>, g9134255@wampyr.cc.uow.edu.au (Coronado Emmanuel Abad) writes:\n|> \n|> The idea is to clip one polygon using another polygon (not\n|> necessarily rectangular) as a window.  My problem then is in\n|> finding out all the new vertices of the resulting \"subpolygons\"\n|> from the first one.  Is this simply a matter of extending the\n|> usual algorithm whereby each of the edges of one polygon is checked\n|> against another polygon???  Is there a simpler way??\n|> \n|> Comments welcome.\n|> \n|> Noel.\n\n\tIt depends on what kind of the polygons. \n\tConvex - simple, concave - trouble, concave with loop(s)\n\tinside - big trouble.\n\n\tOf cause, you can use the box test to avoid checking\n\teach edges. According to my experience, there is not\n\ta simple way to go. The headache stuff is to deal with\n\tthe special cases, for example, the overlapped lines.\n\n\tYeh\n\tUSC\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.382+0000", "event": "documents", "entityId": 8032, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: sreck@rebox.in-berlin.de (Stefan Reck)\nSubject: Re: Adaptec ACB-2322: what is it?\nDistribution: world               \nOrganization: REBOX's Host, Berlin, Germany\nLines: 14\nX-Newsreader: NWREADER [version 3.02]\n\nwright@lims01.lerc.nasa.gov (Ted Wright) writes:\n>\n> An Adaptec ACB-2322 rev B disk controller has come into my hands with\n> no documentation. Is this an ESDI controller? MFM? RLL? Something else?\n> The BIOS on it is dated 1987, if that is any help.\n\nI think it is an ESDI controller if you need the doco i can help you.\n\n  Stefan\n\n--\nStefan Reck  |  INET : sreck@rebox.in-berlin.de\nBerlin       |---------------------------------------------------------------\nGermany      |                     that's all\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8033, "properties": {"category": "sci.med", "text": "From: cerulean@access.digex.com (Bill Christens-Barry)\nSubject: cytoskeleton dynamics\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 16\nNNTP-Posting-Host: access.digex.net\nSummary: Fast dynamics of cytoskeleton re: transformed cells?\nKeywords: cytoskeleton, microtubule, tubulin\n\nI'm looking for good background and review paper references that can help me\nunderstand the dynamics of cytoskeleton in normal and transformed cells.  In\nparticular, I'm not interested in translational behavior and cell motility,\nbut rather in the internal motions of the cytoskeleton and its components\nunder normal and transformed circumstances.\n\nAlso, I'd appreciate any data on force constants, mechanical, and elastic\nproperties of microtubules, and viscous properties of cytoplasm.  Any other\ninfo relevant to the vibrational or acoustical properties of these would\nbe useful to me.\n\nThanks...\n\nBill Christens-Barry\ncerulean@access.digex.com\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8034, "properties": {"category": "talk.religion.misc", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: sgi\nLines: 40\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1qlvh1$fh0@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n|> In article <1qkn25$k@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> #Do you mean it's moral to use force on someone who advocates\n|> #the use of force?\n|> \n|> With a few provisos, yes.  Minimum force, for a start. And, it\n|> depends on what is being forced (on either side).   \n|> \n|> #Or do you mean that sometimes we have to use force on such\n|> #people out of necessity or self-defence, while recognizing\n|> #that our own actions in doing so are not moral?\n|> \n|> My opinion is that our actions would be moral, and it would be\n|> immoral not to act if action would be both necessary and effective.  \n|> Again, there many caveats and provisios.\n|> \n|> Note, my usage of \"my opinion\" is an admission that I don't have a lock\n|> on morals, not that there is no truth about morality to have a lock on.\n\nYou're admitting a lot more than that.  You are admitting that\nyour morals are situational.   You are admitting that the actions\nof other people and the situation you are in help to determine\nhow you judge the moral significance of one of your own actions.\n\nIf you employ X degree of force, that's not moral, but if you employ\nX degree of force, but previously someone else has employed Y degree\nof force, and the situation is thus-and-so, that *is* moral.\n\nThis is quite different from saying \"Employing force on other people\nis immoral, period.   Unfortunately, from time to time we are obliged\nto do this immoral thing for reasons of self-preservation, and so\nwe have to bear the moral consequences of that.\n\nFor what it's worth - and yes, I know you claim to be an agnostic -\nit's this ability to re-label things from \"immoral\" to \"moral\" \nthat I find one of the *least* attractive qualities of the religious\nmind.\n\njon.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8035, "properties": {"category": "talk.politics.misc", "text": "From: jrbeach@iastate.edu (Jeffry R Beach)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: Iowa State University, Ames, IA\nLines: 56\n\nIn article <1993Apr15.165139.6240@gordian.com> mike@gordian.com (Michael A. Thomas) writes:\n>In article <C5IJ7H.L95@news.iastate.edu>, jrbeach@iastate.edu (Jeffry R Beach) writes:\n>> In article <1993Apr15.021021.7538@gordian.com> mike@gordian.com (Michael A. Thomas) writes:\n>> >In article <C5HuH1.241@news.iastate.edu>, jrbeach@iastate.edu (Jeffry R Beach) writes:\n>> I really don't want to waste time in\n>> here to do battle about the legalization of drugs.  If you really want to, we\n>> can get into it and prove just how idiotic that idea is!  \n>\n>  Read: I do not know what the fuck I'm talking about, and am\n>not eager to make a fool of myself.\n\n\nOh, you foolish person.  I do know what the fuck I'm talking about\nand will gladly demonstrate for such ignorants as yourself if you\nwish.\n\nThe legalization of drugs will provide few if any of the benefits\nso highly taunted by its proponents:  safer, cheaper drugs along\nwith revenues from taxes on those drugs; reduced crime and reduced\norganized crime specifically; etc, etc\n\nIf you would like to prove how clueless you are, we can get into\nwhy - again a lot of wasted posts that I don't think this group\nwas intended for and something easily solved by you doing a little\nresearch.\n\n\n>  From a pragmatic standpoint, there certainly is some justification\n>if it is a vice people will commit anyway. Shall we criminalize\n>alcohol again? If the re-legalization for alcohol were done from\n\n\n\nMaking you look bad is too damn easy.  The vast social and historical\ndifferences between alcohol and other drugs make this comparison\nworthless.\n\n\n\n>Vice statutes serve\n>only to make it more expensive for the rich and more dangerous\n>for the poor, as Tim so eloquently put it. People will, however,\n\n\nAnd so it shall be if the government (by the people) decides that\nthese vices are detrimental to the society as a whole.\n\n\n>  And why, pray tell, is AIDS \"victim\" in snear quotes? Are you of\n>the revisionist sort that thinks there is no such thing as the AIDS\n>plauge? Or do they just deserve it?\n\n\nThe overwhelmingly vast majority (get the point)\nof AIDS cases are contracted thru behavioral CHOICES.  Nuff said.\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8036, "properties": {"category": "comp.windows.x", "text": "From: christy@cs.concordia.ca (Christy)\nSubject: XFree86 --- need help...\nOrganization: Computer Science, Concordia University, Montreal, Quebec\nLines: 23\n\nHi,\n\nI just got XFree86 running on my pc with Consensys and encountered a few\nminor (I hope) probems.\n\nThe pc is hooked up to a LAN where I want remote X applications to \nconnect to my X-server.  I believe the command to permit this is\nxhost.  When I'm logged on my pc and type 'xhost + '  ,  I get the error message saying\n\"You must be on local machine to enable access\". \nwhat does this mean ?  ain't I already on the local machine?\n\nAnother problem I have is with the mouse movement.  I find that the \nmouse cursor moves extremely slow and choppy.\nHow can I make the mouse cursor move more accurately?\n\n\nthank in advance.\nAny help is much appreciated.\n\nplease send replies to christy@alex.qc.ca.\n\n\nChristy\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8037, "properties": {"category": "soc.religion.christian", "text": "From: max@hilbert.cyprs.rain.com (Max Webb)\nSubject: Re: A question that has bee bothering me.\nOrganization: Cypress Semi, Beaverton OR\nLines: 47\n\nIn article <Apr.14.03.07.55.1993.5435@athos.rutgers.edu> wquinnan@sdcc13.ucsd.edu (Malcusco) writes:\n>In article <Apr.11.01.02.39.1993.17790@athos.rutgers.edu> atterlep@vela.acs.oakland.edu (Cardinal Ximenez) writes:\n>\tMy problem with Science is that often it allows us to\n>assume we know what is best for ourselves.  God endowed us\n>with the ability to produce life through sexual relations,\n\nYou assume this because you believe in a designing creator,\nand you observe our ability to procreate...\n\n>for example, but He did not make that availible to everyone.\n>Does that mean that if Science can over-ride God's decision\n>through alterations, that God wills for us to have the power\n>to decide who should and should not be able to have \n>children?\n\n.... But then you observe our ability to modify fertility\nthrough intelligence & experiment, and draw no similar conclusions\nabout God designing us for scientific inquiry & the use of the\ntechnology that it produces.  How is it that one ability is \"obviously\nfrom God\", and the other not?\n\n>\tI cannot draw a solid line regarding where I\n>would approve of Scientific study, and where I would not,\n>but I will say this:  Before one experiments with the\n>universe to find out all its secrets, one should ask\n>why they want this knowledge.\n\nI want to know the truth, and hold the Truth as the most\nbasic of all ethical values, because correct moral judgement\nrelies on knowing the truth, not vice versa. Moralities that\nassert that assent to a belief is a moral choice, and not\ncompelled by evidence inevitably cut off the limb they sit upon.\nFalsification of evidence, conscious and unconscious, follows\ncorrupting both the intellect and the heart.\n\n>I will say that each person should pray for guidance\n>when trying to unravel the mysteries of the universe, and\n>should cease their unravelling if they have reason to \n>believe their search is displeasing to God.\n>\n>\t\t\t---Malcusco\n\nIf there is a God, he has nothing to fear from truth.\nAs to imaginary gods and there followers: Be afraid. Be very\nafraid.\n\n\tMax\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8038, "properties": {"category": "comp.sys.mac.hardware", "text": "From: peter@ferranti.com (peter da silva)\nSubject: Re: DCC and MiniDisc: next DAT/DDS like story?\nOrganization: Xenix Support, FICC\nLines: 15\n\nIn article <C50CMD.1zz@newcastle.ac.uk> Tor-Olav.Berntzen@newcastle.ac.uk (Tor-Olav Berntzen) writes:\n> Another thing, why a SCSI interface ?\n\nBecause SCSI works well with removable media, and works well with large\ncapacity devices. The floppy interface you suggest handles the former, but\nit doesn't have any hooks for dealing with the latter... you'd have to kludge\nit. Plus, it's extremely low performance. AND, SCSI has gobs of room for\nexpansion compared with a floppy (I can just see it, let's stick a 5.25\",\na 3.5\", a tape drive, and a MO drive, all on the floppy interface. The\npossibilities for unexpected collisions are enormous).\n-- \nPeter da Silva                                            `-_-'\nNetwork Management Technologies Incorporated               'U` \n12808 West Airport Blvd.  Sugar Land, TX  77478  USA\n+1 713 274 5180                            \"Zure otsoa besarkatu al duzu gaur?\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8039, "properties": {"category": "comp.graphics", "text": "From: g9134255@wampyr.cc.uow.edu.au (Coronado Emmanuel Abad)\nSubject: Fonts in POV??\nOrganization: University of Wollongong, NSW, Australia.\nLines: 11\nNNTP-Posting-Host: wampyr.cc.uow.edu.au\nKeywords: fonts, raytrace\n\n\n\n\tI have seen several ray-traced scenes (from MTV or was it \nRayShade??) with stroked fonts appearing as objects in the image.\nThe fonts/chars had color, depth and even textures associated with\nthem.  Now I was wondering, is it possible to do the same in POV??\n\n\nThanks,\n\nNoel\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8040, "properties": {"category": "talk.politics.misc", "text": "From: garrett@Ingres.COM \nSubject: Re: Losers (Was Re: Stop putting down white het males.)\nSummary: Just my $.02\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nKeywords: racism, sexism, mysogyny\nOrganization: ASK Computer Systems, Ingres Product Division\nLines: 107\n\nIn article <1939@tecsun1.tec.army.mil>, riggs@descartes.etl.army.mil (Bill Riggs)        writes...\n>In article <1993Apr2.180839.14305@galileo.cc.rochester.edu> as010b@uhura.cc.rochester.edu (Tree of Schnopia) writes:\n>>In <1993Apr2.064804.29008@jato.jpl.nasa.gov> michael@neuron6.jpl.nasa.gov (Michael Rivero) writes:\n>>>  I don't know what you as a white male did. I do know what white males,\n>>>as a class, have done.\n>>>  They've invented the light bulb, the automobile, the airplane, printing with\n>>>movable type, photography, computers, the electric guitar. anasthesia, rocket\n>>>powered space flight, the computer, electricity, the telephone, TV, motion\n>>>pictures, penecillin(sp), telescopes, nylon, and the X-Ray machine.\n>>\n>>Two glaring errors here.  First, white males don't do anything as a \"class.\" \n>>INDIVIDUAL white males invented those things, which means nothing to white\n>>males as a whole.  Second, you neglected to mention Charles Manson, Hitler,\n>>McCarthy, Jack the Ripper, Ted Bundy, and a whole slew of individuals who\n>>have done horrible, evil things.  If white males can take the credit for\n>>our fellow white males' boons, we must also take the blame for our\n>>fellows' blights.  I claim we deserve neither credit nor blame for these\n>>things.\n>\n>>White males need to wake up and realize that they're being unfair, yes.  But\n>>everyone else needs to wake up and realize that being unfair right back is\n>>disgusting, racist and sexist.\n>>Why can't we learn to treat everyone fairly, without generalizing?  What\n>>stupidity gene makes this so difficult?  \"I'd like to buy the world a\n>>clue...\" \n> \n>\tThe word that is missing in this whole discourse is not the \"B\"\n>word, or the \"H\" word, or even the \"N\" or \"W\" words. It is the \"L\" word -\n>LOSER !!\n> \n>\tThat's right. When we boil all the crap out of this argument, it\n>is all about WINNING and LOSING, and nothing else. Let me explain.\n>\tIn the meantime, there is guilt for winning, maybe a fear that one\n>doesn't deserve one's bounty - or success. So there is a \"kinder and gentler\n>type of politician these days, Bill Clinton, affirmative action, and lots of\n>discourse about people who \"don't get it\". For those of us in the winning\n>business, this kind of talk is mildly irritating, but there is still no \n>suggestion of losing.\n>\tWho is D-FENS, anyway ? The answer is as plain as the horn rims on \n>your face. The guy is MICHAEL DOUGLAS, posing as a LOSER. This \n>is known as controversial casting. But that baggy short-sleeved white shirt \n>sure does look natural on Mike doesn't it. Gordon Gekko will never look the \n>same. (Though Woody always dressed that way.) Did we really expect Gekko to \n>take it easy and enjoy that kind of wardrobe, without putting up a fuss ?\n>\tWhat we are starting to lose sight of is, that bashing D-FENS is \n>the same game as bashing that poor African American slug that Clint Eastwood\n>used to blow away all the time. As that arch-WASP (male gender) George C. Scott\n>declaimed, \"Americans traditionally LOVE TO WIN. They love a winner, and will \n>not tolerate a loser.\" And so on. \n\nSince we are talking in theory and opinion, then I'll put in my $.02.\n\tFirst, a rebuttle. Personally, I love under-dogs. Unlike \nbandwagon jumpers, I abandon teams when they start winning. People that\ncheer for winners just because they are winners are insecure people who are\nafraid to be associated with something negative.\n\n>\tThe political implications are simple. If, as many socialists - and\n>Democrats - do, you consider society a finite pie to a apportioned in some \n>\"equitable\" way, then you have to worry about who is a winner and who is a \n>loser to tell whose side you are on. That could be black women today, Asian\n>homosexuals tommorrow, and yes indeed, white men some yet to be determined\n>day when the balance of the pie has finally swung against that (39%) \n>minority.\n\nOn this one point, I agree. The reason that people bash WASP's is \nbecause they have been on top for a long time. Whoever is on top is\ngoing to oppress whoever is below them so that they can stay on top.\nIf Hannibal had pushed on to Rome after his victory at Cannae we might\nall be bashing the blacks for oppressing us peacefull white people \nfor all these centuries. I seriously doubt that if the blacks had \nconquered the world that they would have treated their colonies any\nbetter/worse than the whites did.\n\tThe white race did some unspeakable things to the other races of\nthe world. But they only did what any other conquering race would have done\n(ie. Khan). The real question is, should we carry over that blame to the\npresent generation who didn't participate in the crimes? Would it do \nany good? Has it done Bosnia any good? They are fighting wars that stopped\nhundreds, even thousands, of years ago. \n\tMy opinion is, if there are inequities now, then let's change\nthem. But don't blame me for what my ancestors did. It wouldn't settle\nanything anyway.\n\n>\tEither way you go, the way of the Winner is no longer the way to be\n>popular - at least after you graduate from High School (but you'll still\n>be popular at High School reunions). But it beats being a Nerd, as I \n>would imagine Michael Douglas would now agree, and in the long run, it\n>is the only way to go.\n\nThat's where you are dead wrong. You don't join up on a side just because\nthey are winning. That makes you spineless. Winning, in high school and\nafter high school, is still the best way to be popular, but it doesn't make\nyou right. All the best causes in history were loosing causes (with only\na couple exceptions). Winning only makes a difference to other people, not\nto yourself. And what good is the opinions of other people if they only care\nhow you appear (ie. a Winner).\n\n\tIf you can't beat them, fight them every inch of the way. \n\n>Bill R.\n\n------------------------------------------------------------------------------\n\"At that moment the bottom fell out of Authur's mind.          Garrett Johnson\n His eyes turned inside out. His feet began to leak out     Garrett@Ingres.com\n of the top of his head. The room folded flat around him, \n spun around, shifted out of existence and left him sliding\n into his own naval.\" - Douglas Adams\n------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8041, "properties": {"category": "talk.politics.misc", "text": "From: cogsdell@mentor.cc.purdue.edu (tony c)\nSubject: GUILTY .. or NOT GUILTY.........(comparitive fault law)\nArticle-I.D.: mentor.C51uAI.586\nOrganization: Purdue University Computing Center\nLines: 6\n\nThanks to everyone who sent replies regarding this case.  A few of them were\nvery informative and helped very much. \n\n\n                     Once again.\n THANKS!                                                  T.C.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8042, "properties": {"category": "sci.electronics", "text": "From: miller@hmsp04.wg3.waii.com (Griff Miller X7114)\nSubject: Re: 68000\nOrganization: Western Geo. - Div of Western Atlas Intn'l Inc., Houston, TX\nLines: 24\nNntp-Posting-Host: hmsp04.wg3.waii.com\n\nIn article <1993Apr15.060043.15664@serval.net.wsu.edu> rwilley@eecs.wsu.edu (Ronald Willey - CS) writes:\n>\n>\tThe Supra accelerator that is mentioned in one of the pervious\n>articles, is not 68000 or 68020 based.  It runs on a 68030 at 28Mhz and \n>the design they are using is very simple( if you were referring to the\n>A500 exteranal model).\n\nHmm - I don't think you and I are thinking of the same thing. I was the\noriginal poster, BTW. The accelerator that I'm talking about almost\ncertainly uses a 68HC000, according to the footnotes in the Supra ad. It\nonly costs $199 list, so I really doubt if it has a 28 MHz 68030 inside.\n\nIt's called the Supra 28, or Supra Turbo 28.\nThere's an external A500 model, and an internal A2000 model.\n\nBTW, does anyone know if a 28Mhz 68HC010 exists?\n--\nGriff Miller >  Griff.Miller@waii.com  < use this for email.\n\n      *** My opinions are mine, not Western's. ***\n\n\"Dear friend, do not imitate what is evil but what is good.\n Anyone who does what is good is from God. Anyone who does\n evil has not seen God.\" - 3 John 9\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8043, "properties": {"category": "comp.graphics", "text": "From: renggli@masg1.epfl.ch (loris renggli)\nSubject: Need graph display/edit\nOrganization: Math. Dept., Swiss Institute of Technology\nLines: 17\n\nI am looking for a program that is capable of displaying a graph\nwith nodes and links and with the possibility to edit interactively\nthe graph : add one node, change one link etc...\n\nActually, a very _simple_ X11 program would be ok; all I need is to\nput some \"boxes\" (i.e. the nodes ) on a pane and be able to\nmanipulate them with the mouse (move, add or delete boxes).\n\nDoes anyone know if such program is available ?\nThanks for any help !!\n\n------------------------------------------------------------------------\nLoris RENGGLI                          phone  : +41-21-6934230\nSwiss Federal Institute of Technology  fax    : +41-21-6934303\nMath. Dept\nCH-1015 Lausanne (Switzerland)         e-mail : renggli@masg1.epfl.ch\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8044, "properties": {"category": "sci.med", "text": "From: molnar@Bisco.CAnet.CA (Tom Molnar)\nSubject: sudden numbness in arm\nOrganization: UTCC\nLines: 30\n\nI experienced a sudden numbness in my left arm this morning.  Just after\nI completed my 4th set of deep squats.  Today was my weight training\nday and I was just beginning my routine.  All of a sudden at the end of\nthe 4th set my arm felt like it had gone to sleep.  It was cold, turned pale,\nand lost 60% of its strength.  The weight I used for squats wasn't that\nheavy, I was working hard but not at 100% effort.  I waited for a few \nminutes, trying to shake the arm back to life and then continued with\nchest exercises (flyes) with lighter dumbells than I normally use.  But\nI dropped the left dumbell during the first set, and experienced continued\narm weakness into the second.  So I quit training and decided not to do my\nusual hour on the ski machine either.  I'll take it easy for the rest of\nthe day.\n\nMy arm is *still* somewhat numb and significantly weaker than normal --\nmy hand still tingles a bit down to the thumb. Color has returned to normal\nand it is no longer cold. \n\nHorrid thoughts of chunks of plaque blocking a major artery course through\nmy brain.  I'm 34, vegetarian, and pretty fit from my daily exercise\nregimen.  So that can't be it.  Could a pinched nerve from the bar\ncause these symptoms (I hope)?\n\nHas this happened to anyone else?\nNothing like this has ever happened to me before.  Does it come with age?\n\nThanks,\nTom\n-- \nTom Molnar\nUnix Systems Group, University of Toronto Computing & Communications.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8045, "properties": {"category": "sci.space", "text": "From: jbreed@doink.b23b.ingr.com (James B. Reed)\nSubject: Re: space news from Feb 15 AW&ST\nNntp-Posting-Host: doink\nReply-To: jbreed@ingr.com\nOrganization: Intergraph Electronics\nLines: 10\n\nIn article <C5ros0.uy@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n|> [Pluto's] atmosphere will start to freeze out around 2010, and after about\n|> 2005 increasing areas of both Pluto and Charon will be in permanent\n|> shadow that will make imaging and geochemical mapping impossible.\n\nWhere does the shadow come from?  There's nothing close enough to block\nsunlight from hitting them.  I wouldn't expect there to be anything block\nour view of them either.  What am I missing?\n\n\tJim\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8046, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Cameron Lewis <lewis@tanelorn.aod.dsto.gov.au>\nSubject: Re: Video Resolution Switching\nOrganization: Aeronautical Research Laboratory, DSTO\nLines: 20\nDistribution: world\nNNTP-Posting-Host: who.aod.dsto.gov.au\nX-UserAgent: Nuntius v1.1.1d17\nX-XXMessage-ID: <A7F8746BE8041432@who.aod.dsto.gov.au>\nX-XXDate: Mon, 19 Apr 93 23:23:23 GMT\n\nIn article <John_Shepardson.esh-090493161019@moose.slac.stanford.edu>\nJohn Shepardson, John_Shepardson.esh@qmail.slac.stanford.edu writes:\n>As the author of \"DPI on the Fry\" I can tell you that there is no way\nfor a\n>graphics card to know what resolution its connected monitor will actually\n>support.  That's why we have these silly cables.  The cable just\nidentifies\n>that monitor as supporting a given resolution.\n>\n>Therefore the software will support any multisync monitor.  I've heard\nthat\n>radius has a similar program for the quadra.\n\nIs this software available either commercially or public domain? If so\nwhere?\n\nCameron Lewis                  email:  lewis@tanelorn.aod.dsto.gov.au\nAir Operations Division (Melb.)                 gbb:   +61 3 647 7729\nAeronautical Research Laboratory - D.S.T.O      fax:   +61 3 646 3433\n506 Lorimer St, Fishermens Bend, Vic., Australia, 3207\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8047, "properties": {"category": "sci.space", "text": "From: n4hy@harder.ccr-p.ida.org (Bob McGwier)\nSubject: Re: What counntries do space surveillance?\nOrganization: IDA Center for Communications Research\nLines: 13\nDistribution: world\nNNTP-Posting-Host: harder.ccr-p.ida.org\nIn-reply-to: thomsonal@cpva.saic.com's message of 23 Apr 93 20:17:25 GMT\n\n\nI can tell you that when AMSAT launched some birds along a Spot satellite\n(French), that during installation of some instruments on Spot 2, there\nheavily armed legionaires who had a `take no prisoners' look on there faces.\nSpot satellites are completely capable of doing some very good on orbit\nsurveillance.\n\nBMc\n--\n------------------------------------------------------------------------------\nRobert W. McGwier                  | n4hy@ccr-p.ida.org\nCenter for Communications Research | Interests: amateur radio, astronomy,golf\nPrinceton, N.J. 08520              | Asst Scoutmaster Troop 5700, Hightstown\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8048, "properties": {"category": "sci.electronics", "text": "From: lihan@ccwf.cc.utexas.edu (Bruce G. Bostwick)\nSubject: Re: how can 0.022 uF be different from two 0.047 in series?!\nOrganization: The University of Texas at Austin, Austin TX\nLines: 13\nDistribution: usa\nNNTP-Posting-Host: doc.cc.utexas.edu\n\nIn article <C5uC68.19K@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:\n>\n>This may be a safety issue; the CSA is more paranoid in certain areas than\n>UL and such.  Two caps in series means that you don't have a short if one\n>of them shorts.\n\nNot necessarily true; a short in one, if near the maximum series\nvoltage drop, will overvoltage the other one and short it too, more\n-- \n<BGB>\nlihan@ccwf.cc.utexas.edu        /   The only reason the world hasn't\n(really Bruce Bostwick)        /   dissolved into total chaos is that\nfrom the great state of TEXAS /   Murphy's Law also applies to Murphy.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8049, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: tittle@ics.uci.edu (Cindy Tittle Moore)\nSubject: Re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nNntp-Posting-Host: alexandre-dumas.ics.uci.edu\nReply-To: tittle@ics.uci.edu (Cindy Tittle Moore)\nOrganization: ICS Dept., UC Irvine\nKeywords: printer\nLines: 25\n\nIn <~c$@byu.edu> ecktons@ucs.byu.edu (Sean Eckton) writes:\n\n>>The deskjet is SLOW.  This is in comparison to the other printers I\n>>mentioned.  I have no idea how the bubblejet compares.\n>>\n>>The interface between Win3.1 and the printer is just dandy, I've not\n>>had any problems with it.\n\n>I just bought a BJ-200 printer a couple of days ago.  I compared it to the\n>sample print of an HP DeskJet 500 and knew that the HP wasn't for me.  The\n>BJ-200 is pretty fast and really prints with good quality.  I can compare it\n>with the HP LaserJet IIID PostScript and they look almost identical (\n>depending on the kind of paper).  I don't have problems with the ink not\n>being dry, it seems to dry VERY fast.  Probably within a second.  Since\n>Canon is giving a $50 rebate until the end of May, it is really a good buy.\n\nHow much is the BJ going for?  I got mine for $300 which was in the\nend the deciding factor for me.\n\n--Cindy\n--\nCindy Tittle Moore\n\nInternet: tittle@ics.uci.edu       | BITNET: cltittle@uci.bitnet\nUUCP:     ...!ucbvax!ucivax!tittle | Usnail: PO Box 4188, Irvine CA, 92716\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8050, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wild@access.digex.com (wildstrom)\nSubject: Re: MathCad 4.0 swap file\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 12\nNNTP-Posting-Host: access.digex.net\n\nbaseball@catch-the-fever.scd.ucar.edu (Gregg Walters) writes:\n\n>I have 16MB of memory on my 386SX.  I have been running Windows\n>without a swap file for several months.  Will Mathcad 4.0 be\n>happy with this, or insist on a swap file?\n\nPresumeably, you mean without a _permanent_ swap file. If Windows needs a\nswap file, it will upo and create one if a permanent one doesn't exist.\nPermanent is generally faster though. I don't know why Mathcad wouldn't\nbe happy with either type--Ver. 3.0 is and so should any program conforming\nto the Win specification.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8051, "properties": {"category": "rec.motorcycles", "text": "From: cjackson@adobe.com (Curtis Jackson)\nSubject: Re: dogs\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 35\n\nIn article <93Apr20.193958.30419@acs.ucalgary.ca> parr@acs.ucalgary.ca (Charles Parr) writes:\n}Sheesh, even a trained attack dog is no match for a human,\n}we have *all* the advantages.\n\nI agree with this 100%. After all, when you grab under his chin and\nare careful to keep your hands away from his twisting head, what is\nhe going to do -- tailwag you to death? I even had one occasion where\nI was unexpectedly jumped by a 130 lb. German Shepherd and grabbed\nhis upper jaw in one hand and his lower jaw in the other. Now I'm\nholding his mouth open (no way is he strong enough to clamp down)\nand he can do nothing.\n\nHOWEVER, all this macho shit aside, the fact is that when you are\nriding a bike and a dog is arrowing to intercept, it may be unwise\nfor you to stop and try to deal with the dog, for the simple fact\nthat it might be through your leathers and working on your jeans\nbefore you can dismount and deal with it properly.\n\nBy all means, if you do kick the dog or otherwise get its attention,\nSTOP and STAY there. If you kick the dog and ride away, that is a\nvictory for the dog -- it drove you out of its territory. It is not\neven a qualified victory, it is a victory. If you kick it and STOP,\nand sit there, 99% of dogs will say, \"Oh, shit! This guy's serious!\"\nand back off. Now you have established your dominance over the dog,\nand it probably will not bother you again.\n\nLlamas, however, are a different story. If you stop near a llama,\nit will just hop on and insist on a ride. And that's if you're\nlucky; if it doesn't like you it'll barf you off the bike and\nsteal it!\n-- \nCurtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\nDoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\"\n\"There is no justification for taking away individuals' freedom\n in the guise of public safety.\" -- Thomas Jefferson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8052, "properties": {"category": "misc.forsale", "text": "Subject: Looking for a person [VHS for sale]\nFrom: koutd@hiramb.hiram.edu (DOUGLAS KOU)\nOrganization: Hiram College\nNntp-Posting-Host: hiramb.hiram.edu\nLines: 15\n\nI am looking for a person who made an offer of $50 for five\nof my VHS movies. I was not able to save the e-mail address\nof this person. It has been a week since we made the deal,\nplease reply.\n\nThe five movies are\nBasic Instinct\nBorn on the Forth of July\nBackdraft\nThe Prince of Tides\nPresumed Innocent\n\nDouglas Kou\nHiram College\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8053, "properties": {"category": "rec.sport.hockey", "text": "From: steve@sep.Stanford.EDU (Steve Cole)\nSubject: Re: SHARKS:  Kingston Fired!!!\nOrganization: Stanford Exploration Project\nLines: 38\nDistribution: world\nNNTP-Posting-Host: himalaya.stanford.edu\n\nIn article <1993Apr20.165132.9777@adobe.com>, snichols@adobe.com (Sherri Nichols) writes:\n|> In article <1993Apr20.085337.27224@leland.Stanford.EDU> terry@garfield.Stanford.EDU (Terry Wong) writes:\n|> >I think that Jack Ferreira's firing eventually led to Kingston's\n|> >firing.  You mention consistency of vision.  I think the\n|> >Sharks lost that with the loss of Ferreira.  There has never\n|> >been a 3 headed G.M. that has ever worked.  You need one\n|> >person making the personnel decisions at the top, not\n|> >management by committee.  The conventional wisdom\n|> >from around the league is that Ferreira would have\n|> >made the moves that would have fielded a better product\n|> >on the ice.\n|> \n|> How exactly would Ferreira accomplished this?  The three-headed GM-ship has\n|> taken a lot of heat, but nobody's explained how things would have been any\n|> different had Ferreira still been there.  Would Ferreira have made more\n|> trades?  Who would have he had traded?  Would he have made fewer trades?\n|> Who should not have been traded?\n\nI think the three-headed GM's guiding principle was to keep veterans\nin favor of youngsters only if they offered a \"significant\" advantage.\nAt the end of last season, the contracts of several veterans with somewhat\nmaginal contributions (Fenton, Bozek, Anderson, and a couple others I\ncan't remember) were bought out. The idea was that youngsters could\nplay almost as well, and had the potential to improve where these\nolder guys did not. \nAnd they traded Mullen, because he wanted to go, not because he\nwasn't good enough, but I think they were a bit too optimistic\nin thinking they could make up for his contributions.\nAn example from this season, Skriko was brought in on a trial basis\nbut not kept, because of his age. I thought he was a decent\ncontributor worth keeping around.\n\nThe youth movement has its advantages; look at Gaudreau who\nmight still be in KC if more veterans had been kept around. But\nyou have to find the right balance.\n-----------------------------------------------------------------\nSteve Cole  (steve@sep.stanford.edu, apple!sep!steve)\nDepartment of Geophysics, Stanford University, Stanford, CA 94305\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8054, "properties": {"category": "sci.space", "text": "From: bill@xpresso.UUCP (Bill Vance)\nSubject: TRUE \"GLOBE\", Who makes it?\nOrganization: (N.) To be organized.  But that's not important right now.....\nLines: 11\nX-Newsreader: TIN [version 1.1 PL9]\n\nIt has been known for quite a while that the earth is actually more pear\nshaped than globular/spherical.  Does anyone make a \"globe\" that is accurate\nas to actual shape, landmass configuration/Long/Lat lines etc.?\nThanks in advance.\n\n--\n\nbill@xpresso.UUCP                   (Bill Vance),             Bothell, WA\nrwing!xpresso!bill\n\nYou listen when I xpresso, I listen When uuxpresso.......:-)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8055, "properties": {"category": "sci.crypt", "text": "From: mbeckman@mbeckman.mbeckman.com (Mel Beckman)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: Beckman Software Engineering\nReply-To: mbeckman@mbeckman.com\nDistribution: world\nX-Mailer: uAccess LITE - Macintosh Release: 1.5v5\nLines: 35\n\n\nIn article <1993Apr17.090731.18680@clarinet.com> (sci.crypt), brad@clarinet.com (Brad Templeton) writes:\n> Interestingly enough, in designing the escrow, we may want to use some\n> rather unusual technology, such as sealed boxes of paper, or\n> destructive read memory, rather than typical computer databases, which\n> is fun for a database of hundreds of millions of keys.\n> \n\nTo me, a larger problem is that once disclosed, your keys could be used\nto decrypt any previously recorded conversations. I gather that from this\nproposal a warrant would be required to get the keys, but not to collect\nconversations! Consider the scenario where an agency collects preemptively\nall encrypted conversations for certain people likely to be targets (and\nnot necessarily \"legitimate\" targets), then arranges for some unrelated\nincident that can trigger a warrant:\n\n   \"Your honor, we know that the suspect has received calls from noted \ncrime figure Bugsy Butthead [said calls arranged by the agency] and we must \ntherefore have this warrant to determine whether this suspect, in a\nsensitive govt post, is corrupt.\"\n\n  I suppose that it is conceivable that there are session keys involved\nsomewhere, but that doesn't seem likely; if there are, why wouldn't the\ntechnical overview mention them when it goes to such details as the number\nof bits held by each escrow authority?\n\n  This scheme is full of holes, and stinks to high heaven.\n\n  -mel\n\n________________________________________________________________________\n| Mel beckman                  |   Internet: mbeckman@mbeckman.com     |\n| Beckman Software Engineering | Compuserve: 75226,2257                |\n| Ventura, CA 93003            |  Voice/fax: 805/647-1641 805/647-3125 |\n|______________________________|_______________________________________|\n \"You can observe a lot just by watching.\"  -Yogi Bera\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.383+0000", "event": "documents", "entityId": 8056, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ebd@fang.att.com (Elliot B Dierksen)\nSubject: Help with DTK I/O Plus II card needed\nReply-To: e.dierksen@att.com (Elliot Dierksen)\nOrganization: AT&T Tax Systems Development, Maitland FL\nLines: 36\n\nI am trying to help a friend of mine get the second serial port on his DTK\nI/O Plus II card working and it does not want to cooperate. The documentation\nis no help at all. As an example, it says 'The serial port can be changed to\nCOM2 from COM1 by moving jumpers.' but does not say what jumpers to move!! :-(\n\nThere are 2 banks of jumpers. The first one is labeled as follows:\nC1\nC2\nS2\nP2\nP1\nG\n\nThe second bank is labeled \"IRQ\" and has the following labels:\n5C\n5S\n4\n3\n3S\n2C\n2S\n\nI have determined that the C1 & C2 jumpers tell it to address the first\nserial port as COM1 or COM2. The P1,P2 jumpers tell it to use the printer\nport as LPT1 or LPT2. I am guessing that the \"G\" enables the game port and\nthe \"S2\" SHOULD enable the second serial port, but I can't get it to work. I\nhave tried numerous setting on the IRQ bank without success. I assume that\nthis bank must tell the card which IRQ's to use for both ports, but I don;t\nknow how.  Any suggestions would be greatly appreciated!!\n\nEBD\n-- \nElliot Dierksen   \"Is that a real poncho... I mean is that a Mexican poncho or\n                   is that a Sears  poncho?  Hmmm... no foolin'...\" -- F. Zappa\n\nW) e.dierksen@att.com  (407) 660-3377     H) elliot@alfred.UUCP  (407) 290-9744\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8057, "properties": {"category": "rec.sport.baseball", "text": "From: as16@quads.uchicago.edu (adam  shah)\nSubject: Re: When Is Melido Due Back?\nReply-To: as16@midway.uchicago.edu\nOrganization: University of Chicago\nDistribution: na\nLines: 18\n\nIn article <nittmo.734981173@camelot> nittmo@camelot.bradley.edu (Christopher Taylor) writes:\n>When are the Yankees planning on activating Melido Perez?  His 15 days on\n>the DL are up today, but are they bringing him back this weekend? \n>\n>Thanks for any info.\n> \n>\n\nThe Chicago Tribune pitching form has Perez pitching today (4/16).  But\ngiven the way that Buck changes his rotation so often, that could just be\nthe work of a confused stat-page editor.\n\n\n-- \nadam (as16@midway.uchicago.edu) \naka mercutio...\nobligatory go yankees for baseball season...\n5338 S Woodlawn Ave Apt 2/Chicago, IL 60615/(312) 667-3586\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8058, "properties": {"category": "sci.electronics", "text": "From: victor@inqmind.bison.mb.ca (Victor Laking)\nSubject: Re: Info on NEC 3D Multisync monitor\nOrganization: The Inquiring Mind BBS  1 204 488-1607\nLines: 43\n\nmyers@hpfcso.FC.HP.COM (Bob Myers) writes:\n\n> > I am looking for any info I can get on the NEC 3D monitor.\n> > I know that it is a multisync but that is about all.\n> > I plan on buying one second-hand in a while depending on its specs.\n> > \n> > Does anyone know the min/max frequencies, whether it is interlaced, \n> > non-interlaced, or both, video compatability, etc?\n> > I have seen a reference to it being .28 pitch with 1024 X 720 resolution \n> > and that it supports SVGA from one source and that it doesn't support \n> > SVGA from another source.  (Neither source seemed to have much reliable \n> > info so I don't want to take a guess.)\n> \n> I'm at home right now, and so am away from my monitor files; the following\n> is off the top of my head, subject to revision, worth-what-ya-pay-for-it\n> sort of info.  If you don't hear from anyone who has spec sheet in hand,\n> e-mail me and I'll look it up.\n> \n> If I'm remembering correctly, the 3D is a 14\" 0.28 mm pitch multisync that\n> covers at least VGA (31.5 kHz horizontal, 60 Hz vertical) to 1024 x 768 \n> 60 Hz (which is going to be about 48 kHz horizontal).  It may go somewhat\n> higher than that on the horizontal, but you won't be happy with anything\n> beyond 1024 x 768 on a 14\" 0.28 tube; you probably won't be too thrilled\n> with the 1024 x 768 on this tube, but it *will* sync up and display it.\n> (I prefer at least a 16\" 0.28 for this resolution.)  Since SVGA is 800x600,\n> it'll do that too.  The horizontal range probably goes lower than 31.5, but\n> I don't know if it goes all the way down to straight NTSC-rate TV (which need\n> about 15.75 kHz sweep).  As far as \"video compatibility\" (if I'm reading\n> the question right: it won't take anything but analog RGB inputs.  In other\n> words, it has no way to decode NTSC or Y/C video inputs.  You would need\n> some sort of board to to this conversion - like the sorts of things that \n> let you display NTSC on a VGA display.\n> \n> Hopefully, now, I'll see this response of mine, and it'll remind me to\n> look this stuff up and confirm it.  (Or force me to post a hasty retraction!)\n\nOk, I was under the impression that it accepted digital input.\n\nI still don't know for sure if it accepts BOTH interlaced and \nnon-interlaced as I have gotten conflicting info.\n\nvictor@inqmind.bison.mb.ca\nThe Inquiring Mind BBS, Winnipeg, Manitoba  204 488-1607\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8059, "properties": {"category": "rec.motorcycles", "text": "From: harley-request@thinkage.on.ca (Harley Mailing List Digest)\nSubject: Harley-Davidson Mailing List -- an Email taste sensation!\nSummary: a sort of bi-monthly not really automated announcement\nOriginator: hogreq@hog.thinkage.on.ca\nKeywords: digests, lists, harley-davidson, hogaholics\nSupersedes: <93mar09-hog-announce@hog.thinkage.on.ca>\nOrganization: Thinkage Ltd.\nExpires: Fri, 30 Apr 1993 11:00:00 GMT\nLines: 36\n\n  Anyone interesting in a mailing list for Harley-Davidson bikes, lifestyle,\npolitics, H.O.G. and whatever over 310 members from 14 countries make it,\nmay subscribe by sending a request to:\n\n              harley-request@thinkage.on.ca\n          or  uunet.ca!thinkage!harley-request\n\n***\n* Your request to join should have a signature or something giving your full\n* Email address.  Do not RELY on the header \"From:\" field being useful to me.\n*\n* This is not an automated \"listserv\" facility. Do not expect instant\n* gratification.\n***\n\nThe list is a digest format scheduled for twice a day.\n\nMembers of the harley list may obtain back-issues and subject-index\n    listings, pictures, etc. via an Email archive server. \nServer access is restricted to list subscribers only.\nFTP access \"real soon\".\n\nOther motorcycle related lists i've heard of (not run by me),\n   these addresses may or may not be current:\n\n  2-stroke:     2strokes-request@microunity.com\n  Dirt:         dirt-request@zygot.ati.com\n  European:     listserv@frigg.isc-br.com\n  Racing:       race-request@formula1.corp.sun.com\n                digest-request@formula1.corp.sun.com\n  Short Riding: short-request@smarmy.sun.com\n  Wet Leather:  listserv@frigg.isc-br.com\n\n---\nIt climbs the hills like a Matchless 'cause my Honda's built really light...\n                                    -Brian Wilson (Honda Honda)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8060, "properties": {"category": "comp.sys.mac.hardware", "text": "From: sunnyt@coding.bchs.uh.edu\nSubject: Re: Price drop on C650 within 2 months?\nArticle-I.D.: menudo.1psm47$td\nReply-To: ln63sdm@sdcc4.ucsd.edu\nOrganization: University of Houston\nLines: 19\nNNTP-Posting-Host: protein.bchs.uh.edu\n\nIn article <Apr06.184114.73926@yuma.ACNS.ColoState.EDU>  \nns111310@LANCE.ColoState.Edu (Nathaniel Sammons) writes:\n> I am going to be getting a C650 soon, but I don;t want Apple \n> to come out with the Cyclones and the Tempest in a month\n> and have the price drop on the system I want.  I have negotiated a \n> good deal with a supplier for a C650 8/80 and I would like to jump on it,\n> but, again, I don't want the price drop to smuther me.  BTW, the deal\n> I have is a C650 8/80 with mouse for $2295... does anyone know of a better\n> deal?\n> \n> thanks,\n> \n>\nIs that the low-end configuration?  If it is, it has the 68LC040 (no FPU), as  \nopposed to all the other configurations with a 68RC040 (has an FPU).  Be sure  \nyou know what you are getting before you buy!!!  The 68RC040 is around  \n$350-$400 right now, if you intend to upgrade it from a 68LC040.\n\nSunny\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8061, "properties": {"category": "rec.sport.hockey", "text": "From: doyle@cs.umass.edu (Jim Doyle)\nSubject: UMass Big East hockey underway\nOrganization: CS Dept., Umass-Amherst\nLines: 39\nNNTP-Posting-Host: gaia.cs.umass.edu\nSummary: UMass hires Head Coach for first season since 1979\nKeywords: UMass Minutemen Mallen\nX-Newsreader: TIN [version 1.1 PL9]\n\n\n\nThe mission to revive hockey at UMass is now underway. At the  4 PM Saturday\nafternoon press conference held at the new Mullins Center Arena - former\nBoston College Asst. Coach Joe Mallen was awarded the 4 year, $85,000/year\ncontract as Head Coach for the UMass Minutemen. \n\nMallen was the third viable pick for the position, right behind Jeff Jackson\n(Lake Superior) and second behind Shawn Walsh (UMaine). Previous offers for \nthe position were rumored to have been offered to the asst. coaches of\nBrown, RPI and the head coach of the AHL Springfield Indians.\n\nUMass hockey was disbanded in 1979 due to financial constraints that had\nundermined the team's position over a period of years. In late November\nof last year, the $52 million Mullins Sports Center was opened following\nits one year construction deadline. \n\nThe Minutemen are slated to play an independent Div II/Div III schedule this\nupcoming winter before officially entering Hockey East for the Winter 1994\nseason. Mallen has yet to comment on player recruitment strategies or\npotential team candidates for the Minutemen - it is expected that he will\nleverage off his inside contacts within New England, the Bay State and\nEurope to draw on competitive, top ice players for the University.\n\nUMass has slated 18 hockey scholarships for the upcoming Fall semester ; \nexpect to hear more from me as I hear more from my sources.\n\n.... J.D.\n\n\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\nJim Doyle \tUniv. of Massachusetts - Dept. of Computer Science\n\nStaff Programmer\tPUMA/DCC/CNET\t email:\tdoyle@gaia.cs.umass.edu\n\noffice:\t\tLederle GRC Room A203\t Tel.  413-545-3179\nhome  :\t\t91 Blackberry Ln         Tel.  413-549-1409\n\t\tAmherst,MA 01002-1516\t\n\t\t\t\t\t\t\t\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8062, "properties": {"category": "sci.med", "text": "From: mmatusev@radford.vak12ed.edu (Melissa N. Matusevich)\nSubject: Re: HELP ME INJECT...\nOrganization: Virginia's Public Education Network (Radford)\nLines: 5\n\nAccording to a previous poster, one should seek a doctor's\nassistance for injections. But what about Sumatriptin [sp?]?\nDoesn't one have to inject oneself immediately upon the onset\nof a migraine?\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8063, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ferch@ucs.ubc.ca (Les Ferch)\nSubject: Re: When is Apple going to ship CD300i's?\nOrganization: The University of British Columbia\nLines: 5\nNNTP-Posting-Host: swiss.ucs.ubc.ca\n\nNote that if you get the external CD300 for your Centris or Q800 you will\nmiss out on the sound mixing feature unless you are willing to run a wire\nfrom the motherboard sound input connector to the stereo output on the CD. \nConnecting to the sound input port on the back of the computer won't do\nunless you can live with mono.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8064, "properties": {"category": "comp.sys.mac.hardware", "text": "From: nestor+@cs.cmu.edu (Nestor F Michelena)\nSubject: HELP!!:  0300FF error at power-up a Mac Plus\nNntp-Posting-Host: nestor.cimds.ri.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 7\n\nI'm getting a sad Mac icon on a black screen with the error code 0300FF.\nCould someone please tell me what's wrong?  Memory? \n\nThanks a lot. I'd appreciate it infinitely...\n\nNestor Michelena\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8065, "properties": {"category": "sci.space", "text": "From: msjohnso@donald.WichitaKS.NCR.COM (Mark Johnson)\nSubject: Re: Big amateur rockets\nOrganization: NCR Corporation Wichita, KS\nLines: 86\n\npbd@runyon.cim.cdc.com (Paul Dokas) writes:\n\n>I was reading Popular Science this morning and was surprised by an ad in\n>the back.  I know that a lot of the ads in the back of PS are fringe\n>science or questionablely legal, but this one really grabbed my attention.\n>It was from a company name \"Personal Missle, Inc.\" or something like that.\n\nThe company was probably \"Public Missiles, Inc\" of Michigan.\n\n>Anyhow, the ad stated that they'd sell rockets that were up to 20' in length\n>and engines of sizes \"F\" to \"M\".  They also said that some rockets will\n>reach 50,000 feet.\n\nYup.\n\n>Now, aside from the obvious dangers to any amateur rocketeer using one\n>of these beasts, isn't this illegal?  I can't imagine the FAA allowing\n>people to shoot rockets up through the flight levels of passenger planes.\n>Not to even mention the problem of locating a rocket when it comes down.\n\nNope, it's not illegal. It is, however, closely regulated. In order to \npurchase and use the big rocket motors required, it is necessary to be\none of the following:\na) An employee of a government agency.\nb) An employee or student at a university doing research involving rockets.\nc) A member or representative of an educational organization involved in\nresearch or other uses of rockets. There are two such organizations: \nThe Tripoli Rocketry Association and the National Association of Rocketry.\nMembers of either organization must demonstrate proficiency in construction\nand flight before they are allowed to purchase large motors on their own.\n\nThe FAA will issue a waiver of its regulations, upon request, to any \norganization which can persuade them it has taken adequate precautions \nto avoid conflicts with aircraft. The usual stipulations are:\n- Only operation up to a specified ceiling is allowed. Depending on the\nlocation, this ceiling may be from 5000 to 50000 feet AGL. \n- The operator of the rocket is responsible for avoiding any aircraft\nwithin the operating radius around the launch site.\n- Flight into clouds or beyond visual range in haze is expressly prohibited.\n- The FAA will provide a NOTAM informing other users of the airspace that\nunmanned rocket operations are taking place at the specified place and time.\n\nMost of the launches that are held (and there are dozens of them every year)\nare held in areas where air traffic is relatively light, such as over the\nwestern deserts (the Black Rock Desert north of Reno is particularly popular\nsince it is 25 x 150 miles of *nothing to hit* on the ground).\n\nThe two rocketry associations test and approve motors for their members'\nuse, to insure safety. Depending on motor size, the launcher setback is\nfrom 50 to 500 or more feet. \n\nBy the way, rockets under 1 lb and powered by an \"F\" motor are exempt from\nmost Federal regulations on unmanned rockets anyway. See FAR 101, Subpart\nC, for details.\n\nAs for recovery...although the higher altitude rockets can reach up to\n50,000 feet, most of them only get to 2,000 to 5,000 feet. The typical\nrocket is 2 to 6 inches in diameter, and carries a 3 to 6 foot parachute,\nor multiple parachutes, depending on the payload. Many rockets also carry\neither a small transmitter or an audio sounder--particularly at launches\nin the eastern US, where there are more obstructions.\n\nCamera, telemetry transmitter, and video payloads are becoming quite common.\n\n>And no, I'm not going to even think of buying one.  I'm not that crazy.\n\nWhy not? It's a lot of fun...check out the traffic on rec.models.rockets\nfor information about the model (3 lb and under) and high power (everything\nbigger) rocket hobbies. As with all dangerous activities, the key is to\npractice safety. I've been flying consumer rockets ranging up to 4-5 lbs\ntakeoff weight for 27 years, and still have all my extremities intact.\n\n>-Paul \"mine'll do 50,000 feet and carries 50 pounds of dynamite\" Dokas\n\nThat's another thing. NO EXPLOSIVE WARHEADS OF ANY KIND ARE ALLOWED ON THESE\nROCKETS. NONE! Please forgive me for shouting, but that's one of the biggest\nmisconceptions people have about our hobby. \n\n>/*            Just remember, you *WILL* die someday.             */\nTrue. But it will not be related to the rocket hobby, unless I get \nhit while crossing a road with a rocket in my hand. \n-- \nMark Johnson                          USnail: NCR Peripheral Products Division\nE-mail:  Mark.Johnson@WichitaKS.NCR.COM       3718 N. Rock Rd.\nVoice: (316) 636-8189 [V+ 654-8189]           Wichita, KS  67226\n[Non-business email: 76670.1775@compuserve.com]\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8066, "properties": {"category": "talk.politics.misc", "text": "From: eck@panix.com (Mark Eckenwiler)\nSubject: Re: Capital Gains tax increase \"loses\" money\nOrganization: NWO Steering Committee\nDistribution: na\nLines: 46\n\nIn <1993Apr15.045651.6892@midway.uchicago.edu>, thf2@midway.uchicago.edu sez:\n>In article <1993Apr14.135227.8579@desire.wright.edu> demon@desire.wright.edu (Not a Boomer) writes:\n>>\n>>\tNo, I'm saying any long term investor (the ones likely to have large\n>>capital gains) would be foolish to sell in order to avoid a tax hike that a)\n>>might disappear in any given year and b) be overcome in a year or two by\n>>accumlated gains.\n>\n>To which my response is--so what?  Not all people who pay capital gains\n>taxes are long term investors.  More than enough of them aren't for there\n>to be huge blip whenever capital gains taxes get raised.\n>   I never said that *everyone* would find this advantageous.  I said that\n>more than enough would for the result to be readily noticeable and distort\n>\"trends\".\n\nEven if Brett's eventual-return figures were correct -- and they\nclearly weren't -- he'd still be wrong about the cause for the '86\nblip because he fails to consider 2 basic factors:\n\n1) As Ted notes, not everyone is a long-term investor.  One might find\noneself, as I did in late 1986, anticipating expenses in the near term\nthat require selling off holdings.  Given the choice between waiting a\nfew weeks (and taking an extra tax hit) or selling in December with\npreferential tax treatment, only a fool would choose the former.\n\n2) The fact that Brett can now construct _post hoc_ calculations of\nwhat would have been more beneficial to investors is in many respects\nbeside the point.  There was plenty of _Money_-style advice given to\nunsophisticated investors in late 1986 to \"sell now and save on\ntaxes.\"  In case anyone missed it, there was no shortage of similar\nadvice late last year (in the NYTimes, e.g.), even though that advice\nwas based not on the foregone conclusion of enacted law (as in 1986),\nbut merely on the *assumption* that Clinton would raise tax rates\n(without capping CG taxes, contrary to the current proposal).\n\nIt's nice to think that investors always behave in their optimal\neconomic interest.  Like assuming weightless ropes and frictionless\npulleys, though, this sort of thinking often fails to describe\naccurately what happens in the real world.\n\n\n-- \nMORAL: Always Choose the Right Sort of Parents \n       Before You Start in to be Rough\n                                        - George Ade\n\tMark Eckenwiler    eck@panix.com    ...!cmcl2!panix!eck\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8067, "properties": {"category": "rec.motorcycles", "text": "From: shz@mare.att.com (Keeper of the 'Tude)\nSubject: Re: Riceburner Respect\nOrganization: Office of 'Tude Licensing\nNntp-Posting-Host: binky\nLines: 8\n\nIn article <C5qqxp.IE1@cbmvax.cbm.commodore.com>, hartzler@cbmvax.cbm.commodore.com (Jerry Hartzler - CATS) writes:\n> >duck. Squids don't wave, or return waves ever, even to each\n>        ^^^^^^\n>     excuse me for being an ignoramus, but what are these.\n\nedu-breaths with more riceburner than brain...\n\n- Roid\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8068, "properties": {"category": "sci.crypt", "text": "From: ignatz@chinet.chi.il.us (Dave Ihnat)\nSubject: Re: Once tapped, your code is no good any more.\nSummary: But, for all its flaws, the domino theory was right...\nOrganization: Chinet - Public Access UNIX\nDistribution: na\nLines: 8\n\nIn article <1qpg8fINN982@dns1.NMSU.Edu> amolitor@nmsu.edu (Andrew Molitor) writes:\n>\tNot to pick on Mr. May in particular, of course, but isn't this\n>kind of the domino theory? When one little country falls, its neighbor\n>will surely follow, and before you know it, we're all mining salt\n>in Siberia for not turning in our Captain Crunch Secret Decoder Rings.\n\nBut, for all the wrongness of our attempt to correct it (VietNam, et. al.),\nthe domino theory wasn't disproved at all.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8069, "properties": {"category": "rec.motorcycles", "text": "From: svoboda@rtsg.mot.com (David Svoboda)\nSubject: Re: Another question about synthetic engi\nNntp-Posting-Host: corolla18\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 26\n\nIn article <1993Apr2.043642.5682@spectrum.xerox.com> cooley@xerox.com writes:\n|In article 17418@news.arc.nasa.gov, howland@noc2.arc.nasa.gov (Curt Howland) writes:\n|>Castrol Syntec does not contain teflon, it gets its greater\n|>lubrication by bonding to the metal surfaces of the engine, \n|>thus making the metal ride on the polymer rather\n|>than having metal-to-metal contact. I do not know if this \n|>also reduces the acid contact with the metal, but it seems \n|>likely.\n|\n|Just becase something forms a resin does not mean that\n|it's not teflon based.  The PTFE in slick-50 is not teflon\n|either, but it's still teflon based.  \n\n\"Teflon\" is a DuPont-owned tradename for PTFE.  Slick-50 does\nindeed use DuPont Teflon, though some other brands of such\nstuff may use imported PTFE of another brand.\n\n\"Teflon\", being a trade-name, should always by capitalized.\n\n(DuPont disclaims any benefits of PTFE in the oil supply of internal \ncombustion engines, BTW.)\n\nDave Svoboda (svoboda@void.rtsg.mot.com)    | \"We're bad-t-the-bone!\n90 Concours 1000 (Mmmmmmmmmm!)              |  Bad-t-the-bone!\"\n84 RZ 350 (Ring Ding) (Woops!)              |  -- Universally feared\nAMA 583905  DoD #0330  COG 939  (Chicago)   |     Denizen warcry.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8070, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Peter Hansen <pgmoffc@BNR.ca>\nSubject: Re: Help: 2 internal HDs in Mac II?\nX-Xxdate: Tue, 6 Apr 93 11:16:56 GMT\nNntp-Posting-Host: bcarm382\nOrganization: BNR\nX-Useragent: Nuntius v1.1.1d17\nLines: 54\n\nIn article <1993Apr1.054820.3942@siemens.co.at> Kurt Netzer,\nkurt@siemens.co.at writes:\n>Is it possible to install a 2nd 3 1/2\" 100 MB HD in a Mac II with a\n>5 1/4\" 40 MB Qunatum HD?\n>Can i us a 50 pin cable with 3 connectors for the internal motherboard\n>SCSI-Connector and the 2 SCSI-HD Connectors. The first HD is'nt\nterminated\n>the second will be.\n>Whats about the power supply. Where can i connect a 3 1/2\" AMP-Connector\n>to supply my 3 1/2\" HD?\n\nIt is very possible to connect another internal hard disk in any\nmacintosh if you can find the space to put it. I have a IIsi that came\nwith a Quantum 80 meg drive. When I ran into space problems, I slapped in\nanother 40 meg quantum that I had sitting on a shelf. Here is what I did.\n \nFirst off, I was concerned about space. Since both drives are Quantum\nquarter height drives, I finally decided that the logical place for them\nwas stacked one upon the other. Fine, they fit snugly. (I have not had a\nproblem with heat yet, and these drives have been running together for\nover two months.\n\nThe next problem was connecting the drive. If you have a spare internal\nhard disk power cable as I did, then half of your troubles are over. just\nsplice in the extra cable so that you get one square motherboard\nconnector and two hard disk power connectors. If you don't have a spare\ncable, you will have to buy the wires and connectors which can be found\nin any good electronics store for about $10. I would suggest properly\nsoldering/heatshrinking the connections to reduce the possibility of\nshorts or bad connections.\n\nNext, you need a ribbon cable connection. Again, I had a spare hard disk\nribbon cable, and I wanted to be careful in case this didn't word so what\nI did was purchase a crimp on 50 pin cable connector that gave me another\nmale connector in the middle of my spare cable. The part cost $10 again,\nand is easily attached with any good wood vice. The theory behind using a\ncrimp on connector is that if this doesn't work, my original cable is not\ndamaged, and I can go back to the original setup.\n\nHaving done all that, I couldn't be bothered to check the dev notes for\npower consumption so I plugged it in and it works like a charm to this\nday. \n\nIn a mac II, everything should work the same. Be careful with the ID's of\nthe drive, and ensure that the terminating resistors on both drives are\nintact. I did not try this without the terminating resistors but it\nseemed logical that if I am splitting the SCSI chain, that the signal\nshould be terminated at all the ends.\n\nLet me know if you have any more questions.\n\nPeter Hansen\nBell Northern Research\npgmoffc@BNR.ca\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8071, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: free moral agency\nLines: 34\nOrganization: Walla Walla College\nDistribution: na\nLines: 34\n\nIn article <11810@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n>From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\n>Subject: Re: free moral agency\n>Date: 14 Apr 93 21:41:31 GMT\n>In article <healta.133.734810202@saturn.wwc.edu> healta@saturn.wwc.edu (TAMMY R HEALY) writes:\n>>>\n>>In the Old testement, Satan is RARELY mentioned, if at all. \n>\n>\n>  Huh?  Doesn't the SDA Bible contain the book of Job?\n>\n>>This is why there is suffering in the world, we are caught inthe crossfire. \n>>and sometimes, innocents as well as teh guilty get hurt.\n>>That's my opinion and I hope I cleared up a few things.\n>>\n>\n>  Seems like your omnipotent and omniscient god has \"got some\n>  'splainin' to do\" then.  Or did he just create Satan for shits and\n>  giggles?\n>\n>/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n>\n>Bob Beauchaine bobbe@vice.ICO.TEK.COM \n>\n>They said that Queens could stay, they blew the Bronx away,\n>and sank Manhattan out at sea.\n>\n>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nI didn't say it NEVER mentioned Satan, I said it RARELY, if at all.  Please \nexcuse me for my lack of perfect memory or omnipotence.\n\nTammy\nP.S I'm soory if I sound cranky.  I apoplogize now before anyone's feelings \nget hurt.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8072, "properties": {"category": "comp.graphics", "text": "Subject: XV under MS-DOS ?!?\nFrom: NO E-MAIL ADDRESS@eicn.etna.ch\nOrganization: EICN, Switzerland\nLines: 24\n\nHi ... Recently I found XV for MS-DOS in a subdirectory of GNU-CC (GNUISH). I \nuse frequently XV on a Sun Spark Station 1 and I never had problems, but when I\nstart it on my computer with -h option, it display the help menu and when I\nstart it with a GIF-File my Hard disk turns 2 or 3 seconds and the prompt come\nback.\n\nMy computer is a little 386/25 with copro, 4 Mega rams, Tseng 4000 (1M) running\nMS-DOS 5.0 with HIMEM.SYS and no EMM386.SYS. I had the GO32.EXE too... but no\ndriver who run with it.\n\nDo somenone know the solution to run XV ??? any help would be apprecied..\n\t\t\n\tThanx in advance !!!! \n             \n-- \n---------------------------------------------------------------------\n*\t\t\t\t\t\t\t\t    *\n*  Pascal PERRET     \t\t|\tperret@eicn.etna.ch         *\n*  Ecole d'ing\u00e9nieur ETS\t|\t(Not Available at this time)*\n*  2400 Le LOCLE\t\t|\t\t\t\t    *\n*  Suisse \t\t\t\t\t\t\t    *\n*\t\t     !!!! Enjoy COMPUTER !!!!\t\t\t    *\n*\t\t\t\t\t\t\t\t    *\n---------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8073, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\nLines: 14\n\nIn article <1qnns0$4l3@agate.berkeley.edu> spp@zabriskie.berkeley.edu (Steve Pope) writes:\n>The mass of anectdotal evidence, combined with the lack of\n>a properly constructed scientific experiment disproving\n>the hypothesis, makes the MSG reaction hypothesis the\n>most likely explanation for events.\n\nYou forgot the smiley-face.\n\nI can't believe this is what they turn out at Berkeley.  Tell me\nyou're an aberration.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8074, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: don@hunan.rastek.com (Donald Owen Newbold)\nSubject: Re: ATM...  ==>  Now HPLJ 4 Pricing\nOrganization: Rastek Corporation, Huntsville, AL\nLines: 41\n\nWhile there are too many PS clones to count, some of which are quite poor,\ntrying to clone something that goes through regular modifications does require\nsome patience. Three questions come to mid real quick for something like\nthis.\n\nQ:\tWhich version of Adobe PS will we clone?\n\tAside from the level 1 and level 2 issues, Adobe has in the past released\n\tnew code that incorporates modifications/upgrades/fixes just as all other\n\tsoftware vendors do. The level 2 stuff may seem sound now, but I assure\n\tyou,changes will become more frequent as their customer list begins to\n\tdwindle in the face of competition. This allows them to shift people to\n\tmaintenance, as well as design efforts for level 3.\n\nQ:\tDo we duplicate the bugs, or do we make it work correctly?\n\tFrom the LaserWriter to the LaserJet 4 there have been bugs. (If I had\n\ta number to call at HP or Adobe, they'ld have heard from me.) Deciding\n\twhich approach to take depends on which printer you want to emulate.\n\nQ:\tDo we follow the Red Book, or do we follow someone's implementation?\n\tWithout a doubt, there are differences between the Red Book and Adobe's\n\tPS. With level 2 many issues have been refined but the Red Book does\n\tleave big, big holes in the implementation specific stuff. It would be\n\tnice it the Red Bood at least pined things down enough so that two\n\tdifferent implementations of Adobe's PS don't do the exact opposite given\n\tan identical set of conditions.\n\nQ:\tPSCRIPT.DRV?\n\tHaving done a lot of PS clone testing myself, the unfortunate side of\n\ttesting is the limited number of sources for test files. The primary\n\tsource we use is Genoa. And having characterizes their 1992 PS ATS files,\n\t(1300+ of them) over half are taken from PSCRIPT.DRV. It may not ideal,\n\tbut the ATS files are what the printer vendors use. I'm sure that Adobe\n\tuses them too, but Adobe's output is by definition correct, even if its\n\twrong.\n\nYes, there are some very poor clones. We've seen them here at Rastek (a sub\nof Genicom which has its own clone called GeniScript). Some are poor for lack\nof design, some are poor because they followed the Red Book, and some are poor\nbecause the vendors don't know what PS is.\n\nDon Newbold\t\t\t\t\t\t\t\t\tdon@rastek.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8075, "properties": {"category": "misc.forsale", "text": "From: rdi@cci632.cci.com (Rick Inzero)\nSubject: Drafting Machine for sale\nOrganization: [Computer Consoles, Inc., Rochester, NY\nDistribution: usa\nLines: 17\n\nFor sale:  Precision drafting machine, Bruning OGP-0180.  Solid\nolder model with spring-loaded counter balance; clamps on table.  Without\nscales.  For right handed person.  $60/make offer, includes UPS/parcel post \npostage.\n\nI'm guessing that it's from the 1940s or 1950s, a period well known for \nexcellent drafting machine construction! :-)\nIt's built with real metal parts, not cheap modern plastic, and it's painted \nthe typical office grey popular in that period.  It's smooth working, and \neach of the two \"arms\" on it measures roughly 24\".  It has a dual clamp to \nenable you to clamp it on the edge or corner of a table.\n\n---\nRick Inzero\t\t\t\t        rochester!cci632!rdi\nNorthern Telecom, LTD       \t\t\tuunet!ccicpg!cci632!rdi\nRochester, NY\t\t\t\t\trdi@cci.com\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8076, "properties": {"category": "rec.sport.baseball", "text": "From: bprisco@shearson.com (Bobby Prisco)\nSubject: Re: Pleasant Yankee Surprises\nReply-To: bprisco@shearson.com\nOrganization: Lehman Brothers, Inc.\nLines: 30\n\nIn article 120399@netnews.upenn.edu, sepinwal@mail.sas.upenn.edu (Alan Sepinwall) writes:\n>\n>And now, the not so pleasant surprises:\n>\n>\t2)Tartabull. The book on Tartabull was, keep him healthy and\n>\t  he'll produce. Well, he hasn't done too much so far. Sure. he's\n>\t  hit a few homers, but those were all solo shots, and he hasn't\n>\t  gotten any of the \"big\" RBIs that your cleanup man is supposed\n>\t  to give you. Then again, he had a slow start last year (once he\n>\t  got off the DL, that is) and turned into a one-man wrecking crew\n>See you in the Series!\n>\n>-Alan\n\n\nLet's see... April 15th... less than 30 at bats.... and you claim that he \nhasn't done too much so far!\n\nCut this guy some slack. Danny will produce this year. It's scary to think\njust how much he'll produce if he were to stay healthy all year.\n\nThe Yanks have a lot going for them this year: good starting rotation, good\nbullpen, good defense and a good lineup. Also, I like Buck Showalter. Frank\nHoward on 1st is also a good move. Everything sounds good so far. \n\nIf the Yanks stay healthy, they have a good chance at winning the pennant. This \nis the most fun I've had watching the Yanks since \"78!\n\n-Bobby\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8077, "properties": {"category": "sci.electronics", "text": "From: myers@hpfcso.FC.HP.COM (Bob Myers)\nSubject: Re: subliminal message flashing on TV\nOrganization: Hewlett-Packard, Fort Collins, CO, USA\nLines: 18\n\n> Hi.  I was doing research on subliminal suggestion for a psychology\n> paper, and I read that one researcher flashed hidden messages on the\n> TV screen at 1/200ths of a second.  Is that possible?  I thought the\n> maximum rate the TV was even capable of displaying images was 1/30th\n> of a second.  (or 1/60th of a second for an image composed of only odd\n> or even scan lines)\n\nYou are correct; the fastest \"complete\" image that could be presented on\nTV would be one field, which is 1/60 of a second (approximately).  Of course,\nthe phrase \"TV screen\" is often thrown around in reference to any CRT\ndisplay, so perhaps this researcher wasn't using normal TV rates.  Might\neven be a vector (\"strokewriter\") display, in which case the lower limit\non image time is anyone's guess (and is probably phosphor-persistence limited).\n\n\nBob Myers  KC0EW   Hewlett-Packard Co.      |Opinions expressed here are not\n                   Systems Technology Div.  |those of my employer or any other\nmyers@fc.hp.com    Fort Collins, Colorado   |sentient life-form on this planet.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8078, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: Camping question?\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 46\n\nSanjay Sinha, on the 12 Apr 93 00:23:19 GMT wibbled:\n\n: Thanks to everyone who posted in my previous quest for camping info..\n\n: Another question. \n: Well, not strictly r.m. stuff\n\n: I am looking for a thermos/flask to keep coffee hot. I mean real\n: hot! Of course it must be the unbreakable type. So far, what ever\n: metal type I have wasted money on has not matched the vacuum/glass \n: type.\n\n: Any info appreciated.\n\n: Sanjay\n\n\nBack in my youth (ahem) the wiffy and moi purchased a gadget which heated up\nwater from a 12V source.  It was for car use but we thought we'd try it on my\nRD350B.  It worked OK apart from one slight problem: we had to keep the revs \nabove 7000.  Any lower and the motor would die from lack of electron movement.\n\nIt made for interesting cups of coffee, anyhow.  We would plot routes that\ncontained straights of over three miles so that we had sufficient time to\nget the water to boiling point.  This is sometimes difficult in England.\n\nGood luck on your quest.\n--\n\nNick (the Biker)   DoD 1069   Concise Oxford\n\nM'Lud.\n\n  ___\t___   ___   ___\n {\"_\"} {\"_\"} {\"_\"} {\"_\"}\t  Nick Pettefar, Contractor@Large.\n  ' `\t` '   ' `   ` '\t\t  Currently incarcerated at BNR,\n  ___\t___   ___   ___\t\t  Maidenhead, The United Kingdom.\n |\"_\"| |\"_\"| |\"_\"| |\"_\"|\t  npet@bnr.ca  '86 BMW K100RS \"Kay\"\n  ` '\t' `   ` '   ' `\t\t  Pres. PBWASOH(UK),  BS 0002\n\t    .\n   _ _\t\t_  __ .\n  / ~ ~~\\   |  / ~~  \\\n |_______|    [_______|\n\t   _:_\n\t  |___|\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.384+0000", "event": "documents", "entityId": 8079, "properties": {"category": "sci.space", "text": "From: pjs@euclid.JPL.NASA.GOV (Peter J. Scott)\nSubject: Re: Orion drive in vacuum -- how?\nOrganization: Jet Propulsion Laboratory, NASA/Caltech\nLines: 19\nDistribution: world\nReply-To: pjs@euclid.jpl.nasa.gov\nNNTP-Posting-Host: euclid.jpl.nasa.gov\n\nIn article <1993Apr18.014305.28536@sfu.ca>, Leigh Palmer <palmer@sfu.ca> writes:\n> In article <C5nGxq.663@zoo.toronto.edu> Henry Spencer,\n> henry@zoo.toronto.edu writes:\n> >The National Air & Space Museum has both the prototype and the film.\n> >When I was there, some years ago, they had the prototype on display and\n> >the film continuously repeating.\n> \n> Great! I'll visit the National Air and Space Museum at the end of the\n> month with my wife, who was also working at General Atomic at the time.\n> Once again netnews has enriched my life.\n\nSorry to put a damper on your plans, but I was there three weeks ago and\nit wasn't there.  Not that I would have known to look for it, of course,\nbut I combed the space exhibits pretty thoroughly and something like that\nwould have caught my attention instantly.\n\n-- \nThis is news.  This is your       |    Peter Scott, NASA/JPL/Caltech\nbrain on news.  Any questions?    |    (pjs@euclid.jpl.nasa.gov)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8080, "properties": {"category": "comp.sys.mac.hardware", "text": "From: SHAGBERG@vm.cmp.ilstu.edu\nSubject: updated keyboard question for the plus\nOrganization: Illinois State University\nLines: 44\n\nI have an old Mac Plus. A couple of years ago I bought a shiney new lc.\nIt came with apple's new keyboard (with abd ports). i replaced it with\na mac-pro-plus extended keyboard (which i thoroughly enjoy, thank you\nvery much).\n \nwell, i have this extra keyboard which i would like to use on the plus\nbut there's a little problem. the plus uses an rj-11 jack for keyboard\ninput and the new keyboards don't. i got an extra adb cable from my\nlocal apple dealer (they're such nice people), but they couldn't tell\nme the order of the wires.\n \nthere are four wires in the adb cables: black, white, red, tan. I know\none's a ground, one gets the serial signal, one supplies 5 volts, and\ni forgot what the fourth one does. anyway, if you hook them up wrong\nyou'll fry a board and i <really> don't want to do <that>.\n \nif any brave souls out there have done this before, please e-mail your\nexperience directly to me. i would greatly appreciate it especially\nsince apple's original keyboard is not . . . ergonomically correct.\n \nbtw, i did take apart my new keyboard to see if i could find the\ncorrelation between the wires for the rj-11 jack and the adb since it\nhas both, but no such luck (the connections are soldered inside of\nlittle boxes). Oh, well . . .\n \none more thing: in case you are thinking that the ABD ports on the\nnewer models are different from the connection used on the plus---\nyou're right. however, you can use the telephone cable from the plus\nand connect the mac-pro-plus keyboard via its own rj-11 jack. in\nother words, this little engineering feat i wish to do *is* possible.\nit's merely a matter of finding out the correct order.\n \nomt, when i get this to work, i definitely will post the solution\nso others can, too. thanx for the input.\n \n*****************************************************************\n*  Tis the blink of an eye, tis the draught of a breath,        *\n*  From the blossoms of health, to the paleness of death,       *\n*  From the gilded saloon, to the briar in the shroud,          *\n*  O, why should the spirit of mortal be proud?                 *\n*                                                 -William Knox *\n*****************************************************************\n*  shagberg@vm.cmp.ilstu.edu                                    *\n*****************************************************************\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8081, "properties": {"category": "sci.space", "text": "From: ghasting@vdoe386.vak12ed.edu (George Hastings)\nSubject: Re: Space on other nets\nOrganization: Virginia's Public Education Network (Richmond)\nLines: 17\n\n   We run \"SpaceNews & Views\" on our STAREACH BBS, a local\noperation running WWIV software with the capability to link to\nover 1500 other BBS's in the U.S.A. and Canada through WWIVNet.\n   Having just started this a couple of months ago, our sub us\ncurrently subscribed by only about ten other boards, but more\nare being added.\n   We get our news articles re on Internet, via ftp from NASA\nsites, and from a variety of aerospace related periodicals. We\nget a fair amount of questions on space topics from students\nwho access the system.\n ____________________________________________________________\n| George Hastings\t\tghasting@vdoe386.vak12ed.edu |  \n| Space Science Teacher\t\t72407.22@compuserve.com      |  If it's not\n| Mathematics & Science Center \tSTAREACH BBS: 804-343-6533   |   FUN, it's\n| 2304 Hartman Street\t\tOFFICE:       804-343-6525   |  probably not\n| Richmond, VA 23223\t\tFAX:          804-343-6529   |    SCIENCE!\n ------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8082, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Basil, opinions? (Re: Water on the brain)\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 40\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <1993Apr15.204930.9517@thunder.mcrcim.mcgill.edu>, hasan@McRCIM.McGill.EDU  writes:\n|> \n|> In article <1993Apr15.055341.6075@nysernet.org>, astein@nysernet.org (Alan Stein) writes:\n|> |> I guess Hasan finally revealed the source of his claim that Israel\n|> |> diverted water from Lebanon--his imagination.\n|> |> -- \n|> |> Alan H. Stein                     astein@israel.nysernet.org\n|> Mr. water-head,\n|> i never said that israel diverted lebanese rivers, in fact i said that\n|> israel went into southern lebanon to  make sure that no \n|> water is being used on the lebanese\n|> side, so that all water would run into Jordan river where there\n|> israel will use it  !#$%^%&&*-head.\n\nOf course posting some hard evidence or facts is much more\ndifficult.  You have not bothered to substantiate this in\nany way.  Basil, do you know of any evidence that would support\nthis?\n\nI can just imagine a news report from ancient times, if Hasan\nhad been writing it.\n\nNewsflash:\nCairo AP (Ancient Press).  Israel today denied Egypt acces to the Red\nSea.  In a typical display of Israelite agressiveness, the leader of\nthe Israelite slave revolt, former prince Moses, parted the Red Sea.\nThe action is estimated to have caused irreparable damage to the environment.\nEgyptian authorities have said that thousands of fisherman have been\ndenied their livelihood by the parted waters.  Pharaoh's brave charioteers\nwere successful in their glorious attempt to cause the waters of the\nRed Sea to return to their normal state.  Unfortunately they suffered\nheavy casualties while doing so.\n\n|> Hasan \n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8083, "properties": {"category": "sci.med", "text": "From: georgec@eng.umd.edu (George B. Clark)\nSubject: Re: chronic sinus and antibiotics\nOrganization: University of Maryland\nLines: 4\nDistribution: na\nNNTP-Posting-Host: athens.eng.umd.edu\nKeywords: sinus, antibiotics, antibacterial\n\nYou can also swab the inside of your nose with Bacitracin using a\nQ tip. Bacitracin is an antibiotic that can be bought OTC as an\nointment in a tube. The doctor I listen to on the radio says to apply\nit for 30 days, while you are taking other antibiotics by mouth.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8084, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Symbiotics: Zionism-Antisemitism\nNf-ID: #N:cdp:1483500355:000:10647\nNf-From: cdp.UUCP!cpr    Apr 23 15:14:00 1993\nLines: 197\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Symbiotics: Zionism-Antisemitism\n\n\nZionism and the Holocaust\n-------------------------- by Haim Bresheeth\n\nThe first point to note regarding the appropriation of the history\nof the Holocaust by Zionist propaganda is that Zionism without\nanti-semitism is impossible. Zionism agrees with the basic tenet\nof anti-Semitism, namely that Jews cannot live with non- Jews.\n\nThe history and roots of the Holocaust go back a long way. While\nthe industru of death and destruction did not operate before 1942,\nits roots were firmly placed in the 19th Century. Jewish\naspirations for emancipation emerged out of the national struggles\nin Europe. When the hopes for liberation through\nbourgeois-democratic change were dashed, other alternatives for\nimproving the lot of the Jews of Europe achieved prominence.\n\nThe socialist Bund, a mass movement with enormous following, had\nto contend with opposition from a new and small, almost\ninsignificant opponent, the political Zionists.  In outline these\ntwo offered diametrically opposed options for Jews in Europe.\nWhile the Bund was suggesting joining forces with the rest of\nEurope's workers, the Zionists were proposing a new programme\naimed at ridding Europe of its Jews by setting up some form of a\nJewish state.\n\nHistorically, nothing is inevitable, all depends on the balance of\nforces involved in the struggle. History can be seen as an option\ntree: every time a certain option is chosen, other routes become\nbarred. Because of that choice, movement backwards to the point\nbefore that choice was made is impossible. While Zionism as an\noption was taken by many young Jews, it remained a minority\nposition until the first days of the 3rd Reich. The Zionist\nFederation of Germany (ZVfD), an organisation representing a tiny\nminority of German Jews, was selected by the Nazis as the body to\nrepresent the Jews of the Reich. Its was the only flag of an\ninterantional organisation allowed to fly in Berlin, and this was\nthe only international organisation allowed to operate during this\nperiod. From a marginal position, the leaders of the Zionist\nFederation were propelled to a prominence and centrality that\nsurprised even them. All of a sudden they attained political\npower, power based not on representation, but from being selected\nas the choice of the Nazi regime for dealing with the the 'Jewish\nproblem'. Their position in negotiating with the Nazis agreements\nthat affected the lives of many tens of thousands of the Jews in\nGermany transformed them from a utopian, marginal organisation in\nGermany (and some other countries in Europe) into a real option to\nbe considered by German Jews.\n\nThe best example of this was the 'Transfer Agreement' of 1934.\nImmediately after the Nazi takeover in 1933, Jews all over the\nworld supported or were organising a world wide boycott of German\ngoods. This campaign hurt the Nazi regime and the German\nauthorities searched frantically for a way disabling the boycott.\nIt was clear that if Jews and Jewish organisations were to pull\nout, the campaign would collapse.\n\nThis problem was solved by the ZVfD. A letter sent to the Nazi\nparty as early as 21.  June 1933, outlined the degree of agreement\nthat existed between the two organisations on the question of\nrace, nation, and the nature of the 'Jewish problem', and it\noffered to collaborate with the new regime:\n\n\"The realisation of Zionism could only be hurt by resentment of\nJews abroad against the German development. Boycott propaganda -\nsuch as is currently being carried out against Germany in many\nways - is in essence unZionist, because Zionism wants not to do\nbattle but to convince and build.\"\n\nIn their eagerness to gain credence and the backing of the new\nregime, the Zionist organisation managed to undermine the boycott.\nThe main public act was the signature of the \"Transfer Agreement\"\nwith the Nazi authorities during the Zionist Congress of 1934. In\nessence, the agreement was designed to get Germany's Jews out of\nthe country and into Mandate Palestine. It provided a possibility\nfor Jews to take a sizeable part of their property out of the\ncountry, through a transfer of German goods to Palestine. This\nright was denied to Jews leaving to any other destination. The\nZionist organisation was the acting agent, through its financial\norganisations. This agreement operated on a number of fronts -\n'helping' Jews to leave the country, breaking the ring of the\nboycott, exporting German goods in large quantities to Palestine,\nand last but not least, enabling the regime to be seen as humane\nand reasonable even towards its avowed enemies, the Jews. After\nall, they argued, the Jews do not belong in Europe and now the\nJews come and agree with them.\n\nAfter news of the agreement broke, the boycott was doomed. If the\nZionist Organization found it possible and necessary to deal with\nthe Nazis, and import their goods, who could argue for a boycott ?\nThis was not the first time that the interests of both movements\nwere presented to the German public as complementary. Baron Von\nMildenstein, the first head of the Jewish Department of the SS,\nlater followed by Eichmann, was invited to travel to Palestine.\nThis he did in early 1933, in the company of a Zionist leader,\nKurt Tuchler. Having spent six months in Palestine, he wrote a\nseries of favourable articles in Der STURMER describing the 'new\nJew' of Zionism, a Jew Nazis could accept and understand.\n\nThis little-known episode established quite clearly the\nrelationship during the early days of Nazism, between the new\nregime and the ZVfD, a relationship that was echoed later in a\nnumber of key instances, even after the nature of the Final\nSolution became clear. In many cases this meant a silencing of\nreports about the horrors of the exterminations. A book\nconcentrating on this aspect of the Zionist reaction to the\nHolocaust is Post-Ugandan Zionism in the Crucible of the\nHolocaust, by S. B. Beth-Zvi.\n\nIn the case of the Kastner episode, around which Jim Allen's play\nPERDITION is based, even the normal excuse of lack of knowledge of\nthe real nature of events does not exist. It occured near the end\nof the war. The USSR had advanced almost up to Germany. Italy and\nthe African bases had been lost. The Nazis were on the run, with a\nnumber of key countries, such as Rumania, leaving the Axis. A\nsecond front was a matter of months away, as the western Allies\nprepared their forces. In the midst of all this we find Eichmann,\nthe master bureaucrat of industrial murder, setting up his HZ in\noccupied Budapest, after the German takeover of the country in\nApril 1944. His first act was to have a conference with the Jewish\nleadership, and to appoint Zionist Federation members, headed by\nKastner as the agent and clearing house for all Jews and their\nrelationship with the SS and the Nazr authorities. Why they did\nthis is not difficult to see. As opposed to Poland, where its\nthree and  a half million Jews lived in ghettoes and were visibly\ndifferent from the rest of the Polish population, the Hungarian\nJews were an integrated part of the community. The middle class\nwas mainly Jewish, the Jews were mainly middle-class. They enjoyed\nfreedom of travel, served in the Hungarian (fascist) army in\nfronline units, as officers and soldiers, their names were\nHungarian - how was Eichmann to find them if they were to be\nexterminated ? The task was not easy, there were a million Jews in\nHungary, most of them resident, the rest being refugees from other\ncountries. Many had  heard about the fate of Jews elsewhere, and\nwere unlikely to believe any statements by Nazi officials.\n\nLike elsewhere, the only people who had the information and the\near of the frightened Jewish population were the Judenrat. In this\ncase the Judenrat comprsied mainly the Zionist Federation members.\nWithout their help the SS, with 19 officers and less than 90 men,\nplus a few hundred Hungarian police, could not have collected and\ncontrolled a million Jews, when they did not even know their\nwhereabouts. Kastner and the others were left under no illusions.\nEichmann told Joel Brand, one of the members of Kastner's\ncommittee, that he intended to send all Hungary's Jews to\nAuschwitz, before he even started the expulsions!  He told them\nclearly that all these Jews will die, 12,000 a day, unless certain\nconditions were met.\n\nThe Committee faced a simple choice - to tell the Jews of Hungary\nabout their fate, (with neutral Rumania, where many could escape,\nbeing in most cases a few hours away) or to collaborate with the\nNazis by assisting in the concentration process. What would not\nhave been believed when coming from the SS, sounded quite\nplausible when coming from the mouths of the Zionist leadership.\nThus it is, that most of the Hungarian Jews went quietly to their\ndeath, assured by their leadership that they were to be sent to\nwork camps.\n\nTo be sure, there are thirty pieces of silver in this narrative of\ndestruction: the trains of 'prominents' which Eichmann promised to\nKastner - a promise he kept to the last detail. For Eichmann it\nwas a bargain: allowing 1,680 Jews to survive, as the price paid\nfor the silent collaboration over the death of almost a million\nJews.\n\nThere was no way in which the Jews of Hungary could even be\nlocated, not to say murdered, without the full collaboration of\nKastner and his few friends. No doubt the SS would hunt a few Jews\nhere and there, but the scale of the operation would have been\nminiscule compared to the half million who died in Auschwitz.\n\nIt is important to realise that Kastner was not an aberration,\nlike say Rumkovsky in Lodz. Kastner acted as a result of his\nstrongly held Zionist convictions. His actions were a logical\noutcome of earlier positions. This is instanced when he exposed to\nthe Gestapo the existence of a British cell of saboteurs, Palgi\nand Senesh, and persuaded them to give themselves up, so as not to\ndisrupt his operations. At no point during his trial or elsewhere,\ndid Kastner deny that he knew exactly what was to happen to those\nJews.\n\nTo conclude, the role played by Zionists in this period, was\nconnected to another role they could, and should have played, that\nof alarming the whole world to what was happening in Europe. They\nhad the information, but politically it was contrary to their\npriorities. The priorities were, and still are, quite simple: All\nthat furthers the Zionist enterprise in Palestine is followed,\nwhatever the price. The lives of individuals, Jews and non-Jews,\nare secondary. If this process requires dealing with fascists,\nNazis and other assorted dictatorial regimes across the world, so\nbe it.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8085, "properties": {"category": "misc.forsale", "text": "From: janson@crow.csrv.uidaho.edu (Todd Janson)\nSubject: FORSALE: Norman Rockwell\nOrganization: University of Idaho, Moscow, Idaho\nLines: 21\nDistribution: world\nNNTP-Posting-Host: crow.csrv.uidaho.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\n\nOkay, okay, Norman himself isn't actually for sale.  BUT:\n\nI have two Saturday Even Post's, both of which have Norman Rockwell\nillustrations on the front cover.\n\nOctober 29, 1960  --  with candidate Kennedy on campaign\n   -- has, obviously, a Norman Rockwell of Kennedy on the cover\n\nNovember 5, 1960  --  with candidate Nixon on campaign\n   -- And here we have Nixon.  He's not a crook...\n\nThese are both in very good condition.\nLet me know if you're interested, and to what tune.  ($$)\n\n--\n*=-------------------------------------------------------------=*\n*    //                                                         *\n*   //          Todd Janson.  No group.  Moscow, Idaho          *\n* \\\\/                                                           *\n*=-------------------------------------------------------------=*\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8086, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: How large are commercial keys?\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 15\n\nbutzerd@maumee.eng.ohio-state.edu (Dane C. Butzer) writes:\n\n> Finally, can anyone even concieve of a time/place where 128 bit keys aren't\n> sufficient?  \n\nIt depends on the algorithm used. 128-bit secret keys for RSA are\ndefinitively not secure enough.\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8087, "properties": {"category": "rec.sport.baseball", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: Sandberg, Runs, RBIs (was: Re: Notes on Jays vs. Indians Series)\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nDistribution: na\nLines: 23\n\nIn article <C5JqBy.M7A@news.rich.bnr.ca> bratt@crchh7a9.NoSubdomain.NoDomain (John Bratt) writes:\n>RBIs and Runs scored are the two most important offensive statistics.  You\n>can talk about OBP and SLG% all you want, but the fact remains:\n>\n>\tThe team that scores more runs wins the game!\n>\t---------------------------------------------\n>\n>Flame Away\n\nSo what does that have to do with RBI's?  The team with the most RBI's\ndoesn't necessarily win the game.\n\nYes, runs are the most important statistice -- for a *team*.  (So why does\nevery newspaper rank team offense by batting average?)\n\nBut for an individual player, runs and RBIs are context-dependent, and tell\nus very little about the player himself, and more about his teammates and\nposition in the batting order.\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8088, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: eugene@mpce.mq.edu.au\nSubject: Re: WP-PCF, Linux, RISC?\nOrganization: Macquarie University, Australia.\nLines: 18\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\nOriginator: eugene@macadam.mpce.mq.edu.au\n\nIn article <C5o1yq.M34@csie.nctu.edu.tw> ghhwang@csie.nctu.edu.tw (ghhwang) writes:\n>\n>Dear friend,\n>  The RISC means \"reduced instruction set computer\". The RISC usually has \n>small instruction set so as to reduce the circuit complex and can increase \n>the clock rate to have a high performance. You can read some books about\n>computer architecture for more information about RISC.\n\nhmm... not that I am an authority on RISC ;-) but I clearly remember\nreading that the instruction set on RISC CPUs is rather large.\nThe difference is in addressing modes - RISC instruction sets are not\nas orthogonal is CISC.\n\n-- \n+-----------------------------------------------------------------------------+\n|            Some people say it's fun, but I think it's very serious.         |\n|                         eugene@macadam.mpce.mq.edu.au                       |\n+-----------------------------------------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8089, "properties": {"category": "soc.religion.christian", "text": "From: aaronc@athena.mit.edu (Aaron Bryce Cardenas)\nSubject: Re: christians and aids\nOrganization: Massachusetts Institute of Technology\nLines: 94\n\nPaul Conditt writes:\n>Yes, it's important to realize that all actions have consequences,\n>and that \"rules\" were made for our own good.  But to suggest that a\n>*disease* is a *punishment* for certain types of sin I think is \n>taking things much too far.  \n[text deleted]\n>Yes, sin can have terrible consequences, but we need to be *real*\n>careful when saying that the consequences are a *punishment* for \n>sin.  \n\nI wish that you had followed this thread before jumping to conclusions.\nI haven't seen anybody write that AIDS was a *punishment* for certain\ntypes of sin (this includes Mark Ashley who you were responding to\nhere).  I myself wrote that when you don't do things God's way that\ncurses will come on you and others.  Although one definition of 'curse'\nis 'retribution', I only meant 'harm or misfortune' when I used the\nword.  Because God loves us he has told us the best way to live in his\nBible.  God doesn't cause curses, he warns us of them.\n\nKevin Davis wrote (a while ago):\n>Last week I was guilty of anger, jealousy, and whole mess of\n>other stuff, yet I am forgiven and not condemned to suffer with\n>AIDs.  To even suggest that AIDS is \"deserved\" is ludicrous.\n\nThe Bible makes it clear that we all equally deserve death (which is\nmuch worse than AIDS) -- we have all hurt God with our sin.\n\nPaul Conditt reveals his feelings:\n>In case you couldn't tell, I get *extremely* angry and upset when\n>I see things like this.  Instead of rationalizing our own fears and\n>phobias, we need to be reaching out to people with AIDS and other\n>socially unacceptable diseases.  Whether they got the disease through\n>their own actions or not is irrelevant.  They still need Jesus...\n\nThe first issue you bring up is your anger.  It is \"obvious\"ly wrong to\nbe angry (Gal 5:19-20) for any reason, especially *extremely* angry\nwhich is on par with hatred.  Jesus has every reason to be angry at us\nfor putting him on the cross with our sin, yet his prayer was \"forgive\nthem Father, they know not what they do.\"  Knowing how forgiving Jesus\nhas been with me calls me to be more forgiving with everyone out of\nlove for Him.  Please don't give in to anger, it will only cause\nfoolish quarrels and more bad feelings.\n\nIt's okay if you read something that bothers you, but you need to\naddress it in a loving way.  If right now, I felt like someone out\nthere was saying that God punishes gay or sexually immoral people with\nAIDS because they deserve punishment that others don't then I would\nframe a response something like this:\n\n\"It makes me feel very sad for someone to believe that AIDS, which is\nsimply a harmful disease not so unlike any other, is God's punishment\nfor people who have committed certain sins.  God loves all of his\nchildren equally and rejoices when a single one comes back to him.  We\nwill all be judged after we die, but until then we all have the\nopportunity to accept God's grace by earnestly seeking after him with\nall of our hearts, believing the gospel's testimony, repenting of our\nsin, confessing that Jesus is Lord at baptism, and living a new life\nfor him.\n Let us not judge someone to be eternally condemned.  God's arm is not\nto short to save.  He will do anything he can to move a hardened heart\nor a misled person.  He works for the good of all men.  Even through\nthe worst of situations, he has set the times and places for all men\nthat they may perhaps reach out and find him.\"\n\nThe second issue you bring up is seeing people rationalize their fears\nof people with AIDS.  Fortunately, what you describe as seeing is\nactually misperceiving.  You have been missing the points made in the\nearlier posts and reacting in anger to attitudes that haven't been\nexpressed.  I know that its sometimes hard to discount your\nperceptions, but please try to be open-minded.\n\nYou are quite correct in saying that we should reach out to all people\nbecause they all need Jesus.  This is what my brothers and sisters and\nI do on a daily basis.  If you would like to send me the name of the\ncity and state you live in, I will find and get you in touch with some\nbrothers who have AIDS or know people with AIDS and live nearby you so\nthat you can see the loving attitudes for yourself.\n\nThe third issue you bring up is the importance of how some individual\ncontracted AIDS.  How someone gets AIDS is only relevant to their\nsalvation in that there may be repetence involved.\n\nThe important point to be made, however, is that not listening to God's\ncommands (or advice or warnings), i.e. sinning, causes harm or\nmisfortune to yourself and others.  For this reason, a good way to\nprevent the misfortune of AIDS, which can be transmitted in sinful ways,\nis to listen to God's advice and have sex only with your wife or\nhusband.\n\nI hope that you are feeling better now, Paul.\n\nLove,\n\nAaron Cardenas\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8090, "properties": {"category": "rec.sport.hockey", "text": "From: pbarone@x102a.ess.harris.com (barone philip 00309)\nSubject: USENET Playoff Pool\nNntp-Posting-Host: x102a.ess.harris.com\nX-Newsreader: Tin 1.1 PL4\nOrganization: Harris ESS, Melbourne, Fla.\nLines: 15\n\nI saw a previous request for the Rules and Instructions for the USENET \nplayoff pool but I haven't seen any responce. Does anybody have this info?\nIf so post away or you could mail it to me. Thanks in advance.\n\n\n--\n============================================================================\nPhil Barone                  \\       Internet:  pbarone@x102a.ess.harris.com\nHarris Corporation GISD       \\\nCape Canaveral A.F.S.          \\\n407-853-8169                    \\\n============================================================================\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8091, "properties": {"category": "sci.electronics", "text": "From: griffin@camelot.bradley.edu (Mark Valentine)\nSubject: HELP: 20ma current loop to RS232 converter needed.\nSummary: I need a device that will convert 20ma current loop to RS232.\nKeywords: 20,current,loop,converter,rs232\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Bradley University\nDistribution: usa\nLines: 10\n\n\n\tWhere can I buy or build a device that will convert 20 ma\ncurrent loop signals to RS232 voltages?  I know some old terminals\ncame with that option, but none of the ones I own have that.  Anyway,\nI want to connect a computer to this old industrial computer to use\nthe computer with communications software as a console instead of\nan old DecWriter.  Please e-mail me if you have any info that would\npoint me in the right direction.  \n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8092, "properties": {"category": "talk.religion.misc", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: Question for those with popular morality\nOrganization: University of Georgia, Athens\nLines: 11\n\nIn article <1993Apr5.165709.4347@midway.uchicago.edu> dsoconne@midway.uchicago.edu writes:\n>>But there is a base of true absolute morality that we can stand on.\n>\n>Note that if the majority of people remain unconvinced, this idea\n>probably isn't worth very much in a pragmatic sense.\n\nMaybe not to you.  But to those who stand on this base, He is \nprecious.\n\nLink\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8093, "properties": {"category": "comp.windows.x", "text": "From: mahan@TGV.COM (Patrick L. Mahan)\nSubject: RE: Drawing Lines (inverse/xor)\nOrganization: The Internet\nLines: 51\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu, dyoung@media.mit.edu\n\n#\n#I'm trying to write some code that lets me draw lines and do rubber-band\n#boxes in Motif/X.  I'm running on an 8-bit display for which I've created a\n#colormap and am using almost all of the colors.  I want to draw the lines\n#in a drawing area widget -- a widget in which I'm displaying a bitmap using\n#XPutImage().  If doesn't matter if the lines I draw interactively stay\n#around when the window is refreshed.\n#\n#Currently, to draw interactively, I begin with:\n#\n#   /* drawIndex is an colortable index I reserve for the Foreground */\n#   /* my_default_bg_color is the color index for the background of my image */\n#   palette_colors[drawIndex].red =   palette_colors[my_default_bg_color].red;\n#   palette_colors[drawIndex].green = palette_colors[my_default_bg_color].green;\n#   palette_colors[drawIndex].blue =  palette_colors[my_default_bg_color].blue;\n#   XStoreColors( myDisplay, my_cmap, &palette_colors[DrawIndex], 1);\n#   XFlush( myDisplay);\n#\n#   XSetFunction( myDisplay, gc, GXxor);\n#   XSetForeground( myDisplay, gc, drawIndex);\n#\n#Then to draw I do:\n#\n#   XDrawLine( myDisplay, XtWindow( drawingArea1), gc, x1, y1, x2, y2);\n#   XFlush( myDisplay);\n#\n#And when I'm all done, to return things to normal I do:\n#\n#   XSetFunction( myDisplay, gc, GXcopy);\n#\n#\n#What I'd like to happen is for the lines I draw to be the inverse of\n#whatever I'm drawing over.  Instead what happens is I get white lines.  If\n#the lines are over a white background - nothing shows up.  If the lines are\n#over a black area - nothing shows up!  It's very strange.  But the GXxor\n#function seems right - since if I do a rubber-banding box, it erases and\n#redraws itself correctly (ie. not disturbing the underlying image).\n#\n#Any suggestions what I'm doing wrong?\n#\n\nI believe for this to work on a color display you must set the foreground of\nthe GC to be (foreground^background).\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8094, "properties": {"category": "talk.politics.guns", "text": "From: mfrhein@wpi.WPI.EDU (Michael Frederick Rhein)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Worcester Polytechnic Institute\nLines: 74\nNNTP-Posting-Host: wpi.wpi.edu\n\nIn article <93109.13404334AEJ7D@CMUVM.BITNET> <34AEJ7D@CMUVM.BITNET> writes:\n>I will be surprised if this post makes it past the censors,\n>but here goes:\n>\n>Monday, 19 April, 1993 13:30 EDT\n>\n>                    MURDER  MOST  FOUL!!\n>\n>CNN is reporting as I write this that the ATF has ignited all\n                                           ^^^^^^^^^^^^^^^\nI watched the CNN report and I never heard them report that the ATF started the\nfire.  They did speculate that the type of CS gas might have _accidentaly_\nstarted the fire.  \n\n>the buildings of the Branch Dividian ranch near Waco, TX. The\n>lies from ATF say \"holes were made in the walls and 'non-lethal' tear\n>gas pumped in\". A few minutes after this started the whole thing went up.\n                 ^^^^^^^^^^^^^\nFrom my understanding of the CNN report it was 6 HOURS after they started.\n\n>ALL buildings are aflame. NO ONE HAS ESCAPED. I think it obvious that\n>the ATF used armored flame-thrower vehicles to pump in unlit\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nThe track vehicle that I saw in the vicinity of the building where fire was \nfirst noticed looked more like an armored recovery vehicle (the type used to \ntow tanks of battle fields) and not an armored flame-thrower vehicle.\n\n>napalm, then let the wood stove inside ignite it.\n                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAs someone else has pointed out, why would the stove be in use on a warm day  \nin Texas.  It seems to me that it would be very poor planing to hope for a wood\nstove to ignite the \"napalm\" when the stove would probably not be in use.  And \nI doubt that it would have taken 6 hours to ignite it.\n\n>\n>THIS IS MURDER!\n>\n>ATF MURDERERS!  BUTCHERS!!\n>\n>THIS IS GENOCIDAL MASS-SLAUGHTER OF INNOCENT PEOPLE, INCLUDING CHILDREN!\n>\n>I have predicted this from the start, but God, it sickens me to see\n>it happen. I had hoped I was wrong. I had hoped that there was\n>still some shred of the America I grew up with, and loved, left\n>alive. I was wrong. The Nazis have won.\n                         ^^^^^^^^^^^^^^\nRight Clinton is in office.  (Sorry I couldn't resist, please no flames :))\n\n>\n>I REPEAT, AS OF THIS TIME THERE ARE **NO  SURVIVORS**!\n>\n>God help us all.\n>\n>\n>PLEASE CROSSPOST -- DON'T LET THEM GET AWAY WITH THE SLAUGHTER OF THE CHILDREN!\n>\n>\n>W. K. Gorman - an American in tears.\n\nIn short Mr. Gorman (I am assuming Mr. as a title because I don't think a woman\nwould be stupid enough to make this post) I don't know what episode of CNN you\nwere watching but it obviously was not the same one that I was watching or your\ntears seamed to have blured your hearing along with your eye sight.\n\nPlease excuse any mispelled words as I am a product of the Arkansas education\nsystem which Slick Willie of the \"Double Bubba Ticket\" has so greately improved\nduring his tenour as Governer of my great state (taking it from 49th in the \nnation in 1980 and allowing it to drop to 51st, how I don't know, and bringing\nit to 44st and back to either 48th or 49th in 1990--sorry I can't rember the \nsource of these numbers but they can be found).\n\nMichael F. Rhein\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8095, "properties": {"category": "talk.politics.guns", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: Some more about gun control...\nOrganization: Totally Unorganized\nLines: 53\n\nIn article <1993Apr16.010235.14225@mtu.edu> cescript@mtu.edu (Charles Scripter) writes:\n<In article <C5Bu9M.2K7@ulowell.ulowell.edu>\n<jrutledg@cs.ulowell.edu (John Lawrence Rutledge) wrote:\n<\n<> [ ... excellent exchange deleted ... ]\n<> It seems to me the whole reason for the Second Amendment, to give\n<> the people protection from the US government by guaranteeing that the\n<> people can over through the government if necessary, is a little bit\n<> of an anachronism is this day and age.  Maybe its time to re-think\n<> how this should be done and amend the constitution appropriately.\n<\n<    Abraham Lincoln, First Inaugural Address, March 4, 1861: \"This\n<    country, with its institutions, belongs to the people who inhabit\n<    it.  Whenever they shall grow weary of the existing government,\n<    they can exercise their constitutional right of amending it, or\n<    their revolutionary right to dismember it or overthrow it.\"\n<\n<    Rep. Elbridge Gerry of Massachusetts, spoken during floor debate\n<    over the Second Amendment, I Annals of Congress at 750, 17 August\n<    1789: \"What, Sir, is the use of a militia?  It is to prevent the\n<    establishment of a standing army, the bane of liberty. ...\n<    Whenever Governments mean to invade the rights and liberties of\n<    the people, they always attempt to destroy the militia, in order\n<    to raise an army upon their ruins.\"\n<\n<So now we know which category Mr. Rutledge is in; He means to destroy\n<our Liberties and Rights.\n\nWhat I find so hard to understand is how come some people, apparantly\nNOT connected with government or otherwise privileged, will\ngo to great lengths, redefinitions, re-interpretations, in a full-bore\nattempt to THROW AWAY THE PROTECTION OF THEIR OWN RIGHTS under the\nConstitution!!!\n\nAlmost makes me think of lemmings running into the sea during a lemming\nyear...\n\nI really wonder that Jefferson and Madison would say to these folks?\n\n<-------------------------------------------------------------\n<\"...when all government... in little as in great things, shall be\n<drawn to Washington as the centre of all power, it will render\n<powerless the checks provided of one government on another and will\n<become as venal and oppressive as the government from which we\n<separated.\"   Thomas Jefferson, 1821\n\nExcellent quote.\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8096, "properties": {"category": "misc.forsale", "text": "From: hungjenc@phakt.usc.edu (Hung-Jen Chen)\nSubject: Forsale: Dynakit PAS-2x tube pre-amp\nOrganization: University of Southern California, Los Angeles, CA\nLines: 17\nNNTP-Posting-Host: phakt.usc.edu\n\n\n Dynakit PAS-2x for sale\r\n  \r\n It's a pure tube pre-amp, using two 12AX7s in phono stage and also \r\n two 12AX7s in line stage. One 12x4 is used in power supply.\r\n\r\n clean in and out\r\n\r\n neat workmanship\r\n\r\n works fine with good sound\r\n\r\n owner's manuel\r\n\r\n\r\n\r\n Asking $100 obo plus shipping. Contact Harry if interested. Thanx.\r\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8097, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: kentiler@matt.ksu.ksu.edu (Kent P. Iler)\nSubject: Comments on an accelerated Video Card for ISA bus\nOrganization: Kansas State University\nLines: 8\nNNTP-Posting-Host: matt.ksu.ksu.edu\n\nHi,\n  I am looking to buy an accelerated video card for my 486 DX 50 with\t\nISA bus.  I have a 14\" SVGA NI monitor.  I'm currently running\nDOS 5.0 and windows 3.1, although I'm considering OS/2 in the\t\nfuture.  Can anyone make a suggestion for a video card that would\nsuit my needs?  How is Diamond speedstar? Stealth? Etc....\n\t\t\t\tThanks.\n\t\t\t\t\t--Kent\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8098, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: That silly outdated Bill (was Re: Koresh and Miranda)\nOrganization: Computer Science Department,  Stanford University.\nLines: 52\n\nIn article <1qibs0$flk@vela.acs.oakland.edu> awesley@vela.acs.oakland.edu (awesley) writes:\n>In article <1993Apr14.225910.14964@CSD-NewsHost.Stanford.EDU> andy@SAIL.Stanford.EDU (Andy Freeman) writes:\ni]>>Since there was no sniper fire, doing nothing was equally effective,\n>>as was yelling \"stop that\".  Of course, if one wants to credit the\n>>tanks with stopping non-existent sniper fire, we might was well credit \n>>it with stopping an invasion by Martians.  \n>> \n>>See \"Firearms, Violence and Civil Disorders\" (from SRI) and \"Sniping \n>>Incidents - A New Pattern of Violence\" (from Brandeis University's \n>>Lemberg Center for the Study of Violence).\n>\n>>>>There was precisely ONE\n>>>>verified sniper in the 67 riots, a drunk firing a pistol out a window.\n>\n>Actually, there was only one confirmed sniper to >die< in Detroit,\n>according to Sauter & Hines, _Nightmare in Detroit, A Rebellion & It's\n\nWhat sources did Sauter and Hines use?  In Congressional hearings\nlater, the newspaper folk admitted that their reports were completely\nwrong.  (Some of their excuses are understandable, while others amount\nto gross negligence.  Then there's their \"we lied\".)  As far as I\nknow, they never did the followup.\n\n>>So?  People other than snipers can shoot firemen.  If they are,\n>>shooting at \"snipers\" can't help.  Blowing big holes in buildings that\n>>don't contain \"sniper nests\" or worrying about travelling \"sniper\n>>squads\" is a complete waste of time.\n>\n>Interesting.  Just curious, they do you believe that tanks did blow\n>big holes in buildings in Detroit 67?\n\nI don't have any relevant knowledge about the counter-sniper tactics\nor what the govt did with the big war toys.  That's why I've only\ncommented on what they couldn't have accomplished, no matter what\nthey did.\n\n>>Nope - the \"sniper\" fire was coming from other police/guard positions.\n>\n>The guard certainly needed to learn.  But I don't agree with the\n>idea that there were no snipers at all.  From p. 121 of Sauter & Hines:\n>\n>     \"Despite the force of the National Guard in alliance with the\n>Army troops, the snipers did not stop.  The snipers boldly lay siege to the\n>Fifth Precent police station and took pot shots at the Seventh.  Firemen\n>were under constant harassment from snipers fired from half-closed\n>darkened windows in high apartment buildings and from roof-tops.\"\n\nNot in Detroit, not during the 60s.  That's newspaper copy and they\nadmitted later that they were wrong.\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8099, "properties": {"category": "talk.politics.guns", "text": "From: loki@acca.nmsu.edu (Entropic Destroyer)\nSubject: Re: Need info on 43:1 and suicide for refutation\nOrganization: New Mexico State University\nLines: 26\nDistribution: usa\nNNTP-Posting-Host: rever.nmsu.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nEntropic Destroyer (loki@acca.nmsu.edu) wrote:\n\n: I have seen these numbers quoted before, and I have seen very specific\n: refutation of them quoted as well.  If someone will be so kind as to\n: email the relevant information, I will write a letter to the editor of\n: the Co. Daily (which might get published) and send a copy to USN&WR as\n: well.\n\nThanks to all who responded.  The letter has been written (making liberal\nuse of info provided by various net.folks) and handed to the paper.  I'll\npost if it gets into the paper!\n\n--Dan\n\n--\n  DoD #202 / loki@acca.nmsu.edu / liberty or death / taylordf@ucsu.colorado.edu \n                 Send me something even YOU can't read...\n-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: 2.1\n\nmQCNAitfksQAAAEEAKceEjWI9f5KMJyKP0LOgC5dGHRpbMY2xhOo8kpEHMDyuf8a\n1BfDQSj53kosTz6HRoshSDzLVuL1/40vPjmMNtFR+vyZ4jvd3rL4iuq2umMmex3M\nitf3uLt8Xn/v/QAbsvhcFSHVJVK4Lf6wosuCMO03m2TiX31AI7VB0Uzo4yXjAAUX\ntCREYW5pZWwgRiBUYXlsb3IgPExva2lAYWNjYS5ubXN1LmVkdT4=\n=S5ib\n-----END PGP PUBLIC KEY BLOCK-----\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8100, "properties": {"category": "rec.sport.baseball", "text": "From: steph@cs.uiuc.edu (Dale Stephenson)\nSubject: Re: Defensive Averages 1988-1992, Third Base\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 122\n\nIn <C5JJrJ.EM3@cs.uiuc.edu> steph@cs.uiuc.edu (Dale Stephenson) writes:\n\n>Compiled from the last five Defensive Average reports, here are the career\n>DAs for the individual players in the reports.  Stats are courtesy of\n>Sherri Nichols.  Players are listed in descending order.\n\nAnd some comments, with some players deleted.\n\n>Third Basemen\n>-------------\n\n>Name                 1988  1989  1990  1991  1992   88-92\n>Mitchell, Kevin      .690  ----  ----  ----  ----   0.690\nYep, that Kevin Mitchell.  I never would have expected him in the\n#1 spot.\n\n>Gonzales, Rene       .685  ----  ----  ----  ----   0.685\nIt's no accident that the first two names are 1988 only.  As with first\nand second base, 1988 was the year of the glove.  Average DA was 20 points\nhigher in both leagues than any other year.\n\n>Leius, Scott         ----  ----  ----  .653  .680   0.672\nLooks good.  Too bad he's moving to short.\n\n>Pendleton, Terry     .692  .685  .631  .689  .634   0.667\nHighest five-year regular, though he's only had one year as good as Kevin\nMitchell :->.\n\n>Ventura, Robin       ----  ----  .641  .647  .677   0.657\n>Wallach, Tim         .728  .674  .600  .630  .665   0.657\n>Gruber, Kelly        .717  .657  .580  .630  .664   0.650\nThe other elite fielders in the league.\n\n>Pagliarulo, Mike     .631  ----  .575  .744  ----   0.649\nThis is an interesting line.  His 1988 figure was slightly below average.\nHis 1990 was pathetic, and his 1991 was the next best year by anybody.  Part of\nthat may be his mobility.  1988 was with the Yankees.  1990 was with the\nPadres, who appear to have a rotten infield.  1991 was with the Twins, and\njudging by Leius and Gaetti, the Metrodome may be a good place to play\nthird.\n\n>Williams, Matt       ----  ----  .633  .653  .656   0.647\nAdd another to the elite fielders list.\n\n>Caminiti, Ken        ----  .675  .630  .653  .596   0.642\n>Sabo, Chris          .751  .626  .616  .613  .575   0.642\nToo fielders whose career average may overstate their value.  I don't know\nwhat happened to Caminiti -- judging by the three previous years, his low\n1992 may be a fluke.  Sabo is merely average, however.  His incredible 1988\n(best year ever) brings his average up a lot.\n\n>Buechele, Steve      .647  .616  .647  .681  .599   0.635\nStrange last two years.\n\n>Schmidt, Mike        .628  ----  ----  ----  ----   0.628\nAccording to reputation, one of the best fielders ever at third base.\nBut at the end, he was below average.  (Average in 1988 was .643).\n\n>Boggs, Wade          .643  .659  .550  .653  .634   0.626\nBoggs has been pretty good.  I don't know what happened in 1990, but every\nother year he has been above average, usually by quite a bit.\n\n>Martinez, Egdar      ----  ----  .621  .645  .599   0.624\nLast year -- a fluke or a portent?\n\n>*NL Average*         .643  .625  .602  .623  .603   0.619\n>Seitzer, Kevin       .654  .583  .593  ----  .635   0.616\n>*AL Average*         .641  .612  .604  .620  .602   0.615\nWhy is it that the two leagues usually have defensive averages very close\nto one another, but very different from year to year?  Any ideas?\n\n>Jacoby, Brook        .624  .621  .600  ----  .597   0.613\nBrook  is declining.\n\n>Hansen, Dave         ----  ----  ----  ----  .611   0.611\n>Magadan, Dave        ----  ----  ----  ----  .609   0.609\n>Jefferies, Greg      ----  ----  ----  ----  .606   0.606\nThree first-time regulars, above average in 1992.  I'm not sure why Jefferies\ngets all the grief about his fielding.  He's never had a good year, but while\nat second he improved to become an average fielder, and is an average fielder\nat third.\n\n>Zeile, Todd          ----  ----  ----  .614  .593   0.605\nZeile, on the other hand, is a below average fielder.  Each year he's about\n10 points below average.  And it's probably not just the park, since Terry\nPendleton had excellent DAs in the three years before this.\n\n>Baerga, Carlos       ----  ----  ----  .604  ----   0.604\nMoving back to second was a good idea.\n\n>Hayes, Chris         ----  .601  .622  .606  .574   0.602\nSo why is Hayes supposed to be good defensively?  He's had a grand total\nof one year above the league DA, and was pretty bad last year.\n\n>Johnson, Howard      .628  .549  .611  .573  ----   0.588\n>Lansford, Carney     .620  .578  .594  ----  .550   0.587\nHoward Johnson and Carney Lansford -- separated at birth.  To his credit,\nHoJo did have one above average year (1990).  Lansford couldn't even break\nthe .600 mark without the help of the year of the glove.\n\n>Hollins, Dave        ----  ----  ----  ----  .577   0.577\nGood hitter, but his fielding needs work.\n\n>Sheffield, Gary      ----  ----  .584  ----  .567   0.575\nNot a good fielder.\n\n>Blauser, Jeff        ----  .573  ----  ----  ----   0.573\n>Fryman, Travis       ----  ----  ----  .571  ----   0.571\nBoth are better off at shortstop.\n\n>Gomez, Lee           ----  ----  ----  .551  .542   0.546\nTwo consecutive horrible years for Leo.  Camden Yards doesn't seem to\nhave helped his fielding any.  \n\n>Palmer, Dean         ----  ----  ----  ----  .520   0.520\nTexas slugger debuts with not only the lowest career DA, but the lowest\nDA at third ever.  Congratulations, Dean.\n-- \nDale J. Stephenson |*| (steph@cs.uiuc.edu) |*| Grad Student At Large\n\n  \"It is considered good to look wise, especially when not \n   overburdened with information\" -- J. Golden Kimball\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8101, "properties": {"category": "sci.med", "text": "From: carl@SOL1.GPS.CALTECH.EDU (Carl J Lydick)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: HST Wide Field/Planetary Camera\nLines: 28\nDistribution: world\nReply-To: carl@SOL1.GPS.CALTECH.EDU\nNNTP-Posting-Host: sol1.gps.caltech.edu\n\nIn article <1993Apr15.173902.66278@cc.usu.edu>, slyx0@cc.usu.edu writes:\n=Surprise surprise, different people react differently to different things. One\n=slightly off the subject case in point. My brother got stung by a bee. I know\n=he is allergic to bee stings, but that his reaction is severe localized\n=swelling, not anaphylactic shock. I could not convince the doctors of that,\n=however, because that's not written in their little rule book.\n\nOf course, bee venom isn't a single chemical.  Could be your brother is\nreacting to a different component than the one that causes anaphylactic shock\nin other people.\n\nSimilarly, Chinese food isn't just MSG.  There are a lot of other ingredients\nin it.  Why, when someone eats something with lots of ingredients they don't\nnormally consume, one of which happens to be MSG, do they immediately conclude\nthat any negative reaction is to the MSG?\n\n=I would not be surprised in the least to find out the SOME people have bad\n=reactions to MSG, including headaches, stomachaches and even vomiting.\n\nI'd be surprised if some of these reactions weren't due to other ingredients.\n--------------------------------------------------------------------------------\nCarl J Lydick | INTERnet: CARL@SOL1.GPS.CALTECH.EDU | NSI/HEPnet: SOL1::CARL\n\nDisclaimer:  Hey, I understand VAXen and VMS.  That's what I get paid for.  My\nunderstanding of astronomy is purely at the amateur level (or below).  So\nunless what I'm saying is directly related to VAX/VMS, don't hold me or my\norganization responsible for it.  If it IS related to VAX/VMS, you can try to\nhold me responsible for it, but my organization had nothing to do with it.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.385+0000", "event": "documents", "entityId": 8102, "properties": {"category": "sci.med", "text": "From: doyle+@pitt.edu (Howard R Doyle)\nSubject: Re: Barbecued foods and health risk\nOrganization: Pittsburgh Transplan Institute\nLines: 18\n\nIn article <dubin.735083450@spot.Colorado.EDU> dubin@spot.colorado.edu writes:\n\n>\n>I recall that the issue is that fat on the meat liquifies and then\n>drips down onto the hot elements--whatever they are--that the extreme\n>heat then catalyzes something in the fat into one or more\n>carcinogens which then are carried back up onto the meat in the smoke.\n>\n \n\nHmmm. Care to be more vague?\n\n\n=======================================\nHoward  Doyle\ndoyle+@pitt.edu\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8103, "properties": {"category": "sci.space", "text": "From: buenneke@monty.rand.org (Richard Buenneke)\nSubject: DC-X Rollout Report\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 124\n\n\nMcDonnell Douglas rolls out DC-X\n\n        HUNTINGTON BEACH, Calif. -- On a picture-perfect Southern\nCalifornia day, McDonnell Douglas rolled out its DC-X rocket ship last\nSaturday.  The company hopes this single-stage rocket technology\ndemonstrator will be the first step towards a single-stage-to-orbit (SSTO)\nrocket ship.\n\n        The white conical vehicle was scheduled to go to the White Sands\nMissile Range in New Mexico this week.  Flight tests will start in\nmid-June.\n\n        Although there wasn't a cloud in the noonday sky, the forecast for\nSSTO research remains cloudy.  The SDI Organization -- which paid $60\nmillion for the DC-X -- can't itself afford to fund full development of a\nfollow-on vehicle.  To get the necessary hundreds of millions required for\na sub-orbital DC-XA, SDIO is passing a tin cup among its sister government\nagencies.\n\n        SDIO originally funded SSTO research as a way to cut the costs for\norbital deployments of space-based sensors and weapns.  However, recent\nchanges in SDI's political marching orders and budget cuts have made SSTO\nless of a priority.  Today, the agency is more interested in using DC-X as\na step towards a low-cost, reusable sounding rocket.\n\n        SDIO has already done 50 briefings to other government agencies,\nsaid Col.  Simon \"Pete\" Worden, SDIO's deputy for technology.  But Worden\ndeclined to say how much the agencies would have to pony up for the\nprogram. \"I didn't make colonel by telling my contractors how much money I\nhave available to spend,\" he quipped at a press conference at McDonnell\nDouglas Astronautics headquarters.\n\n        While SDIO has lowered its sights on the program's orbital\nobjective, agency officials hail the DC-X as an example of the \"better,\nfaster, cheaper\" approach to hardware development.  The agency believes\nthis philosophy can produce breakthroughs that \"leapfrog\" ahead of\nevolutionary technology developments.\n\n        Worden said the DC-X illustrates how a \"build a little, test a\nlittle\" approach can produce results on time and within budget.  He said\nthe program -- which went from concept to hardware in around 18 months --\nshowed how today's engineers could move beyond the \"miracles of our\nparents' time.\"\n\n        \"The key is management,\" Worden said. \"SDIO had a very light hand\non this project.  We had only one overworked major, Jess Sponable.\"\n\n        Although the next phase may involve more agencies, Worden said\nlean management and a sense of government-industry partnership will be\ncrucial. \"It's essential we do not end up with a large management\nstructure where the price goes up exponentially.\"\n\n        SDIO's approach also won praise from two California members of the\nHouse Science, Space and Technology Committee. \"This is the direction\nwe're going to have to go,\" said Rep.  George Brown, the committee's\nDemocratic chairman. \"Programs that stretch aout 10 to 15 years aren't\nsustainable....NASA hasn't learned it yet.  SDIO has.\"\n\n        Rep.  Dana Rohrbacher, Brown's Republican colleague, went further.\nJoking that \"a shrimp is a fish designed by a NASA design team,\"\nRohrbacher doubted that the program ever would have been completed if it\nwere left to the civil space agency.\n\n        Rohrbacher, whose Orange County district includes McDonnell\nDouglas, also criticized NASA-Air Force work on conventional, multi-staged\nrockets as placing new casings around old missile technology. \"Let's not\nbuild fancy ammunition with capsules on top.  Let's build a spaceship!\"\n\n         Although Rohrbacher praised SDIO's sponsorship, he said the\nprivate sector needs to take the lead in developing SSTO technology.\n\n        McDonnell Douglas, which faces very uncertain prospects with its\nC-17 transport and Space Station Freedom programs, were more cautious\nabout a large private secotro commitment. \"On very large ventures,\ncompanies put in seed money,\" said Charles Ordahl, McDonnell Douglas'\nsenior vice president for space systems. \"You need strong government\ninvestments.\"\n\n        While the government and industry continue to differ on funding\nfor the DC-XA, they agree on continuing an incremental approach to\ndevelopment.  Citing corporate history, they liken the process to Douglas\nAircraft's DC aircraft.  Just as two earlier aircraft paved the way for\nthe DC-3 transport, a gradual evolution in single-stage rocketry could\neventually lead to an orbital Delta Clipper (DC-1).\n\n        Flight tests this summer at White Sands will \"expand the envelope\"\nof performance, with successive tests increasing speed and altitude.  The\nfirst tests will reach 600 feet and demonstrate hovering, verticle\ntake-off and landing.  The second series will send the unmanned DC-X up to\n5,000 feet.  The third and final series will take the craft up to 20,000\nfeet.\n\n        Maneuvers will become more complex on third phase.  The final\ntests will include a \"pitch-over\" manever that rotates the vehicle back\ninto a bottom-down configuration for a soft, four-legged landing.\n\n        The flight test series will be supervised by Charles \"Pete\"\nConrad, who performed similar maneuvers on the Apollo 12 moon landing.\nNow a McDonnell Douglas vice president, Conrad paised the vehicles\naircraft-like approach to operations.  Features include automated\ncheck-out and access panels for easy maintainance.\n\n        If the program moves to the next stage, engine technology will\nbecome a key consideration.  This engine would have more thrust than the\nPratt & Whitney RL10A-5 engines used on the DC-X.  Each motor uses liquid\nhydrogen and liquid oxygen propellants to generate up to 14,760 pounds of\nthrust\n\n        Based on the engine used in Centaur upper stages, the A-5 model\nhas a thrust champer designed for sea level operation and three-to-on\nthrottling capability.  It also is designed for repeat firings and rapid\nturnaround.\n\n        Worden said future single-stage rockets could employ\ntri-propellant engine technology developed in the former Soviet Union.\nThe resulting engines could burn a dense hydrocarbon fuel at takeoff and\nthen switch to liquid hydrogen at higher altitudes.\n\n        The mechanism for the teaming may already be in place.  Pratt has\na technology agreement with NPO Energomash, the design bureau responsible\nfor the tri-propellant and Energia cryogenic engines.\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8104, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: Re: Is it good that Jesus died?\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 138\n\nIn article <bskendigC5rBvn.AAI@netcom.com> bskendig@netcom.com (Brian Kendig) writes:\n\n>And I maintain:\n>\n>Some people do not want to enter into the light and the knowledge that\n>they alone are their own masters, because they fear it; they are too\n>afraid of having to face the world on their own terms.  And so, by\n>their own choice, they will remain in darkness, sort of like bugs\n>under a rock.  However, some people, but not many, will not like the\n>darkness.  Sometimes it gets too cold and too dark to be comfortable.\n>These people will crawl out from under the rock, and, although blinded\n>at first, will get accustomed to the light and enjoy its warmth.  And,\n>after a while, now that they can see things for what they really are,\n>they will also see the heights which they can reach, and the places\n>they can go, and they will learn to choose their own paths through the\n>world, and they will learn from their mistakes and revel in their\n>successes.\n\n\nAre you your own master?  Do you have any habits that you cannot break?\nFor one, you seem unable to master your lack of desire to understand\neven the slightest concept of the Bible.  Seems that ignorance has you\nmastered.  How about sexual sins?  Gotta any of those secret desires\nin your head that you harbor but can get control of?   Do you dehumanize\nwomen when they walk past you?  Do you degrade them to a sex object in\nyour head?  Are you the master of that kind of thinking?  Do you insult\npeople unknowingly, then regret it later.  Yet do it again the next\ntime opportunity presents itself?  Are you truly the master of yourself?\n\nI have admitted that I am not the master of my thought life at all times.\nThat I sometimes say things I do want to say, and then repeat my mistake\nunwantingly.  I have admitted to myself that I cannot control every aspect\nof my being.  There are times I know I shouldn't say something, but\nthen say it anyway.  There are times I simply forget a lesson.\nI, in fact, am not my own master.  I need help.  Jesus promised me\nthis help.  And I took him up on his offer.  I have willfully let\nJesus be my master because Jesus knows what is better for me than\nI myself do.  And why not?  Does not the creator know his creation\nbetter than the creation?  Does Toyota know what's better for the\nCorolla than the Corolla?\n\n>Do you see my point?  I think you're the one under the rock, and I'm\n>getting a great tan out here in the sunlight.  My life has improved\n>immesurably since I abandoned theism -- come and join me!  It will be\n>a difficult trip at first, until you build up your muscles for the\n>long hike, but it's well worth it!\n\nThen I guess ignorance is bliss for you.  Because Brian, you enjoy\nnot having a clue about the Bible.   \n\n>Don't you see?  I'm not going to accept ANYTHING that I can't witness\n>with my own eyes or experience with my own senses, especially not\n>something as mega-powerful as what you're trying to get me to accept.\n>Surely if you believe in it this strongly, you must have a good\n>*reason* to, don't you?\n\n\nCan you witness motherly love with your senses?  How does caring and\nconcern for you register with your senses?  If nothing registers\nto you other than what you can see, taste, smell, hear and touch,\nthen you better become a Vulcan and fast.  You better get rid\nof your emotions.\n\nAnd I do have a good reason to believe what I do.\n\n\n>When did I say that?  I say that I would rather CEASE EXISTING instead\n>of being subject to the whims of a deity, but that if the deity\n>decided to toss me into the fiery pits because of who I am, then so be it.\n\nThe topic was about my God and your lack of knowledge about what my\nGod says.   My God says that you will not CEASE EXISTING.  You have\nlife forever.  You can choose to either live it in hell in eternal\ntorment where there is no communication whatsoever, or can choose to \nlive it in paradise with God.  That is what my God says.  And that\nwas the issue.  Your made-up theism is what it is--made up.  It's\nwishful thinking.\n \n>Nope -- most people are Christian.  Most people are fond of feeling\n>that they are imperfect, of believing that the world is an undesirable\n>place, of reciting magical mystical prayers to make the world nice and\n>holy again, of doing just as their priests tell them, like good little\n>sheep.  You enjoy darkness, and you're proud of it.\n\nIs this the religion of Kendigianism?  Most people are not Christian.  Most\npeople, including Christians,  are not fond of feeling that they\nare imperfect.  Is \"the world an undesireable place\" a doctrine\nof Kendigianism?  It has nothing to do with my God.  Does\nKendigism have magical mystical prayers as a part of its worship?\nMine doesn't.  Does Kendigianism believe that the world will be holy again?  \nMine doesn't.  Does Kendigianism also dictate that one must obey what the\npriest tells them like good little sheep?  Mine doesn't.  Is this\na bunch of lies you tell yourself so that you can justify being \nignorant of the Bible?\n\nBrian, following Christ has nothing to do with the doctrines of Kendigianism.\nYou would find any of your doctrines in the Bible.   I don't follow Kendigianism.\nI follow Christ.   Also, to try to again show you your ignorance\nof Christ and the Bible in regards to \"priests\",  have you not read about\nthe sole Melchizedek priest in Hebrews 7 and 8?  Have you not read what the\npurpose is of the Old Testament Levitical priesthood and why there should\nNOT be priests today?  Yes, guess what?  The Catholics messed up.  I do\nnot follow Catholicism or any \"ism.\"  I follow Christ.\n\n>Nope.  You make decisions, enjoy your successes, and accept your\n>failures; then you die.  If you are content with the life you've led\n>as you reflect back on it in your final moments, then you've led a\n>good life.\n\nWhy would you want to live a good life?\nTo you, you die and that's it.  Don't contradict yourself.  You have\nno reason to live a good life.  It doesn't do you any good in the\nend.  Your life doesn't do anybody else any good  either because\neveryone dies anyway.  So you have no reason to lead a good life. Leading\na good life is meaningless.   Why do you do such a meaningless thing?\n\n>I'm sorry, I don't feel that sacrificing Jesus was something any god\n>I'd worship would do, unless the sacrifice was only temporary, in\n>which case it's not really all that important.\n\nHas the resurrection sunk in?  Jesus is alive.  Jesus is NOT dead.\nJesus was sacrified to fufill the Old Testament sacrificial system\nin its every detail.  Jesus's death was like a seed.  He needed\nto fall to the ground so that many new lives would take root.  Did\nyou miss the entire John passage as well?  \n\n\n>Forget the Bible for a minute.  Forget quoting verses, forget about\n>who said what about this or that.  *Show me.*  Picture just you and me\n>and a wide open hilltop, and convince me that you're right.\n\nForget that I am a person.  Forget that I know how to type.  Forget\nthat I know how to put a sentence together.  Forget that I know\nhow to send e-mail.   Forget my existence.  Proove to me that I\nexist.  .\n\n\nBe honest.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8105, "properties": {"category": "sci.crypt", "text": "From: tribe831@snake.cs.uidaho.edu (Mr. Duane Tribe; Esq.)\nSubject: Underground encryption (was Re: text of White House announcement ...)\nOrganization: University of Idaho, Moscow\nLines: 28\nDistribution: na\nNNTP-Posting-Host: snake.cs.uidaho.edu\n\nIn article <1qmugcINNpu9@gap.caltech.edu> hal@cco.caltech.edu (Hal Finney) writes:\n>It looks like the worst nightmares raised by Dorothy Denning's proposals\n>are coming true.  If the government continues on this course, I imagine\n>that we will see strong cryptography made illegal.  Encryption programs\n>for disk files and email, as well as software to allow for encrypted\n>voice communications, will be distributed only through the\n>\"underground\".  People will have to learn how to hide the fact that\n>they are protecting their privacy.\n\nSome thoughts:\n\nHas any work been done on encapsulating encrypted data inside \"non-encrypted\"\ndata files?  Many file formats can be written with \"gaps\" in them to hide\nother data.  New file formats could be designed to have alternate data hidden\nby dispersing it amongst the \"legitimate\" data.  The hidden data would only\nshow up with the right key(s), and a file with hidden data would be\nindistinguishable from one without.  So, only the correct key(s) would reveal\nthe presence of an \"illegal\" document.\n\nIf I devise a custom file compression algorithm and only I and a friend have\nthe uncompressor, and otherwise the file appears to be total gigerish, do I\nhave the right to transmit the file?  Will we have to \"escrow\" all our data\nfile formats?  Are gangs required to escrow their hand signals, colors and\ncatch phrases?\n\nI think that it's important to evaluate the content of electronic speach by\nreplacing the media with pen and paper or verbal speach and then re-ask the\nquestion.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8106, "properties": {"category": "talk.politics.misc", "text": "From: starowl@rahul.net (Michael D. Adams)\nSubject: Re: New Study Out On Gay Percentage\nNntp-Posting-Host: bolero\nReply-To: starowl@rahul.net\nOrganization: D Service Actuarial Consulting\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 14\n\nOn Sat, 17 Apr 1993 20:42:58 GMT, Greg Hennessy observed:\n: In article <philC5n6D5.MK3@netcom.com> phil@netcom.com (Phil Ronzone) writes:\n: #Tells you something about the fascist politics being practiced ....\n\n: Ah, ending discrimination is now fascism. \n\nIs that what they called it when Truman forced integration of the\narmed forces, despite the opposition of Congress and most of the\nAmerican public at that time?\n\n--\nMichael D. Adams          (starowl@a2i.rahul.net)          Enterprise, Alabama\n\n   \"Tilting at windmills hurts you more than the windmills.\" -- Lazarus Long\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8107, "properties": {"category": "comp.windows.x", "text": "From: dcr@mail.ast.cam.ac.uk (Derek C. Richardson)\nSubject: Allocated colors...\nNntp-Posting-Host: ioas09.ast.cam.ac.uk\nReply-To: dcr@mail.ast.cam.ac.uk\nOrganization: Institute of Astronomy, Cambridge\nLines: 20\n\nCan anyone out there tell me how to get the total number of color cells\nallocated in the default colormap?\n\ne.g.   colormap = DefaultColormap(mydisplay, myscreen);\n\nThe MAXIMUM number of allocated cells is given by DefaultCells(mydisplay,\nmyscreen), but in general the number of cells actually allocated will be\nmuch less than this, depending on the color requirements of the windows\ncurrently in place. I'd like a way to determine this number. Thanks in\nadvance!\n\nDerek\n\n-----------------------------------------------------------\n| Derek C. Richardson    | Tel: (0223) 337548 x 37501     |\n| Institute of Astronomy | Fax: (0223) 337523             |\n| Cambridge, U.K.        |                                |\n| CB3 0HA                | E-mail: dcr@mail.ast.cam.ac.uk |\n-----------------------------------------------------------\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8108, "properties": {"category": "soc.religion.christian", "text": "From: news@cbnewsk.att.com\nSubject: Re: Question about Virgin Mary\nOrganization: AT&T Bell Labs\nLines: 18\n\nIn article <May.3.05.01.53.1993.9964@athos.rutgers.edu> a.faris@trl.oz.au (Aziz Faris) writes:\n\n>[I think you're talking about the \"assumption of the Blessed Virgin\n>Mary\".  It says that \"The Immaculate Mother of God, the ever Virgin\n>Mary, having completed the course of her earthly life, was assumed\n>body and soul into heavenly glory.\"  This was defined by a Papal\n>statement in 1950, though it had certainly been believed by some\n>before that.  --clh]\n\nSo true.  I'm not sure of the basis of the belief, but it was a widely\nheld belief among the laity of the RC church and their support of it\nlead to it being declared to be true.  Basically the teaching on infallibility\nholds that the pope is infallible in matters of faith and doctrine, the\ncollege of bishops is likewise infallible, and the laity is as well.\nThe pope gets most of the attention/criticism but the consensus of the\nother bodies is equally infallible (according to RC teaching).\n\nJoe Moore\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8109, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Traditional and Historical Armenian Barbarism (Was Re: watch OUT!!).\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 106\n\nIn article <21APR199314025948@elroy.uh.edu> st156@elroy.uh.edu (Fazia Begum Rizvi) writes:\n\n>Seems to me that a lot of good muslims would care about those terms.\n>Especially those affected by the ideology and actions that such terms\n>decscribe. The Bosnians suffering from such bigotry comes to mind. They\n>get it from people who call them 'dirty descendants of Turks', from\n>people who hate their religion, and from those who don't think they are\n>really muslims at all since they are white. The suffering that they are\n\nLet us not forget about the genocide of the Azeri people in 'Karabag' \nand x-Soviet Armenia by the Armenians. Between 1914 and 1920, Armenians \ncommitted unheard-of crimes, resorted to all conceivable methods of \ndespotism, organized massacres, poured petrol over babies and burned \nthem, raped women and girls in front of their parents who were bound \nhand and foot, took girls from their mothers and fathers and appropriated \npersonal property and real estate. And today, they put Azeris in the most \nunbearable conditions any other nation had ever known in history.\n                               \n\nAREF  SADIKOV sat  quietly  in the  shade of  a  cafe-bar on  the\nCaspian Sea  esplanade of Baku and  showed a line of  stitches in\nhis trousers, torn  by an Armenian bullet as he  fled the town of\nHojali just over three months ago, writes Hugh Pope.\n\n\"I'm still  wearing the same  clothes, I don't have  any others,\"\nthe  51-year-old carpenter  said,  beginning his  account of  the\nHojali disaster. \"I was wounded in five places, but I am lucky to\nbe alive.\"\n\nMr Sadikov and  his wife were short of  food, without electricity\nfor more than a month, and cut off from helicopter flights for 12\ndays. They  sensed the  Armenian noose was tightening  around the\n2,000 to  3,000 people left in  the straggling Azeri town  on the\nedge of Karabakh.\n\n\"At about 11pm  a bombardment started such as we  had never heard\nbefore,  eight  or  nine   kinds  of  weapons,  artillery,  heavy\nmachine-guns, the lot,\" Mr Sadikov said.\n\nSoon neighbours were  pouring down the street  from the direction\nof  the  attack. Some  huddled  in  shelters but  others  started\nfleeing the town,  down a hill, through a stream  and through the\nsnow into a forest on the other side.\n\nTo escape, the  townspeople had to reach the Azeri  town of Agdam\nabout 15  miles away. They  thought they  were going to  make it,\nuntil at  about dawn  they reached a  bottleneck between  the two\nArmenian villages of Nakhchivanik and Saderak.\n\n\"None of my group was hurt up to then ... Then we were spotted by\na  car on  the road,  and the  Armenian outposts  started opening\nfire,\" Mr Sadikov said.\n\nAzeri militiamen fighting their way  out of Hojali rushed forward\nto force  open a  corridor for the  civilians, but  their efforts\nwere mostly  in vain.  Mr Sadikov  said only  10 people  from his\ngroup of  80 made it  through, including his wife  and militiaman\nson.  Seven  of  his  immediate  relations  died,  including  his\n67-year-old elder brother.\n\n\"I only had time to reach down  and cover his face with his hat,\"\nhe said, pulling his own big  flat Turkish cap over his eyes. \"We\nhave never got any of the bodies back.\"\n\nThe first groups were lucky to have the benefit of covering fire.\nOne hero  of the  evacuation, Alif  Hajief, was  shot dead  as he\nstruggled to change  a magazine while covering  the third group's\ncrossing, Mr Sadikov said.\n\nAnother hero,  Elman Memmedov, the  mayor of Hojali, said  he and\nseveral others  spent the whole day  of 26 February in  the bushy\nhillside, surrounded by  dead bodies as they tried  to keep three\nArmenian armoured personnel carriers at bay.\n\nAs the  survivors staggered the  last mile into Agdam,  there was\nlittle comfort  in a town from  which most of the  population was\nsoon to flee.\n\n\"The night  after we reached  the town  there was a  big Armenian\nrocket attack. Some people just  kept going,\" Mr Sadikov said. \"I\nhad to  get to the  hospital for treatment. I  was in a  bad way.\nThey even found a bullet in my sock.\"\n\nVictims of  war: An  Azeri woman  mourns her  son, killed  in the\nHojali massacre in February  (left). Nurses struggle in primitive\nconditions  (centre)  to  save  a  wounded  man  in  a  makeshift\noperating  theatre set  up  in a  train carriage.  Grief-stricken\nrelatives in  the town of Agdam  (right) weep over the  coffin of\nanother of the massacre victims. Calculating the final death toll\nhas been  complicated because Muslims  bury their dead  within 24\nhours.\n\nPhotographs: Liu Heung / AP\n             Frederique Lengaigne / Reuter\n\nTHE INDEPENDENT, London, 12/6/'92\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8110, "properties": {"category": "rec.sport.hockey", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Goalie Mask Update\nOrganization: Georgia Institute of Technology\nLines: 29\n\n\n\tHere are the results after three days of voting. Remember 3pts for \n1st, 2 for 2nd, and 1 for 3rd. Also, you can still turn in votes! And.. if\nthe guy isn't a regular goalie or he is retired, please include the team! \nThanks for your time, and keep on sending in those votes!\n\nPlayer                  Team                  Pts     Votes\n-----------------------------------------------------------\n1. Brian Hayward        San Jose              15        6\n   Andy Moog            Boston                15        6\n3. Curtis Joseph        St. Louis             11        5\n4. Ed Belfour           Chicago               10        5\n5. Gerry Cheevers       Boston (retired)       5        3 \n   Manon Rheaume        Atlanta (IHL)          5        2\n   Ron Hextall          Quebec                 5        2\n8. Don Beaupre          Washington             4        2\n-----------------------------------------------------------\nOthers receiving 1 vote: Artus Irbe (SJ), Tim Cheveldae (Det),\n Clint Malarchuck (Buf/SD,IHL), Grant Fuhr (Buf), Rick Wamsley \n (Tor,ret), Jon Casey (Minn), John Vanbiesbrouck (NYR),\n Ken Dryden (Mon,ret), Bob Essensa (Win), Mike Vernon (Cal),\n Glenn Healy (NYI), Tommy Soderstron (???), Ray LeBlanc (USA).\n\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8111, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: When are two people married in God's eyes?\nOrganization: AI Programs, University of Georgia, Athens\nLines: 17\n\nIn article <Apr.14.03.07.21.1993.5402@athos.rutgers.edu> randerso@acad1.sahs.uth.tmc.edu (Robert Anderson) writes:\n>I would like to get your opinions on this: when exactly does an engaged\n>couple become \"married\" in God's eyes? \n\nNot if they are unwilling to go through a public marriage ceremony,\nnor if they say they are willing but have not actually done so.\n\nLet's distinguish _real_ logistical problems (like being stranded on a\ndesert island) from _excuses_ (such as waiting for so-and-so's brother\nto come back from being in the army so he can be in the ceremony)...\n\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8112, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: iisakkil@lk-hp-22.hut.fi (Mika Iisakkila)\nSubject: Re: DX3/99\nIn-Reply-To: robert.desonia@hal9k.ann-arbor.mi.us's message of 5 Apr 93 23:53:00 GMT\nNntp-Posting-Host: lk-hp-22.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 16\n\nrobert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia)  writes:\n>I heard the rumor as well, but the story differed.  Intel was not coming \n>out with the tripling clock 486, a clone from IBM was.\n\nNo rumour, IBM's clock tripling chip was seen in some trade show last\nfall (COMDEX or something, I wasn't there). All you people who are\ndrooling after this chip do realize that it has no FPU, just like\n486SX, that Evil Marketing Ploy(tm) from Intel, don't you? It has 16K\nof internal cache, which probably is where the saved silicon real\nestate went. Because of some contract, IBM is not allowed to sell its\n486 chips to third parties, so these chips are unlikely to become\navailable in any non-IBM machines. Of course, nothing prevents other\ncompanies from implementing a DX3/99, but nobody hasn't even come out\nwith a real 486DX (FPU and all) clone yet (although AMD soon will).\n--\nSegmented Memory Helps Structure Software\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8113, "properties": {"category": "rec.sport.baseball", "text": "From: brucek@Ingres.COM (Bruce Kleinman)\nSubject: Re: Best record ever in baseball\nArticle-I.D.: pony.1993Apr6.195932.20451\nDistribution: usa\nOrganization: Ingres Corporation, A subsidiary of The ASK Group, Inc.\nLines: 5\n\nIn article <1psl0jINNam3@jhunix.hcf.jhu.edu> admiral@jhunix.hcf.jhu.edu (Steve C Liu) writes:\n>Of all teams, I believe the Cubs have the best record ever in baseball.\n>Sometime way far back. 110+ and something.\n\nI think it was the 1954 Cleveland Indians with 111.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8114, "properties": {"category": "sci.crypt", "text": "From: andersom@spot.Colorado.EDU (Marc Anderson)\nSubject: **Sorry folks** (read this)\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: na\nLines: 32\n\nIn article <1993Apr21.001707.9999@ucsu.Colorado.EDU> andersom@spot.Colorado.EDU (Marc Anderson) writes:\n[...]\n>\n>(the date I have for this is 1-26-93)\n>\n>note Clinton's statements about encryption in the 3rd paragraph..  I guess\n>this statement doesen't contradict what you said, though.\n>\n>--- cut here ---\n>\n>        WASHINGTON (UPI) -- The War on Drugs is about to get a fresh\n>start, President Clinton told delegates to the National Federation\n>of Police Commisioners convention in Washington.\n>        In the first speech on the drug issue since his innaugural,\n>Clinton said that his planned escalation of the Drug War ``would make\n>everything so far seem so half-hearted that for all practical\n[...]\n\nI just found out from my source that this article was a joke.  Heh heh..  \nIt seemed pretty damn convincing to me from the start -- I just didn't\nnotice the smiley at the end of the article, and there were a few other\nhints which I should of caught.\n\nAnyway -- I guess this 'joke' did turn out to resemble Clinton's true \nfeelings at least to some extent.  \n\nSorry about that...\n\n-marc\nandersom@spot.colorado.edu\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8115, "properties": {"category": "talk.politics.misc", "text": "From: em@hprpcd.rose.hp.com (Electronic Maintenance)\nSubject: INCREDIBLE NEW B.B.S.\nOrganization: Hewlett Packard Roseville Site\nLines: 39\nNNTP-Posting-Host: hprpcd.rose.hp.com\nX-Newsreader: TIN [version 1.1.3 PL7]\n\n\nWOW !!!!\nDid I discover a great BBS !!\nIt's called Sovereignty Lies In The People\nBBS: 916-589-4620  14.4 k baud.  FREE and Confidential\n! Fictitious names OK !  Subjects and files contained on the BBS:\n\n* FIND OUT HOW THE GOVERNMENT HAS BEEN SCAMMING US !!!!\n* State Citizenship documents and issues.\n  ARE YOU A CALIFORNIA REPUBLIC CITIZEN OR A U.S. FEDERAL CITIZEN ?\n  Remember there were only State Citizens before the 14th amendment!!\n  One is subject to federal income tax, one isn't.\n  Did you volunteer to surrender your State Citizenship when you got\n  your Social Security number?  Which one are you?\n* Tax laws and issues.  BEAT THE IRS\n* Traffic laws and issues.  BEAT TRAFFIC TICKETS.  Can you answer this one:\n  What law allows a police officer to arrest you without a warrant when\n  he issues you a ticket?\n* Religious truth issues.  ARE ALL RELIGIONS SCAMS ????\n  ARE ALL CHRISTIAN  RELIGIONS OF THE GREAT CREATOR GOD ????\n* Trust documents and issues.\n\nThe SYSOP told me that instructions to beat traffic\ntickets will be on the BBS shortly.  Beat traffic\ntickets without going to court!!!  The BBS is GREAT, spread the word !!!!\nAlso:  How come I don't hear more people talking about the\nFederal Reserve Bank?  Just ask yourself these questions:\n\n1) Why would anyone borrow money from themselves at interest?\nThe Federal government does * NOT * * NOT *\nThe Federal reserve Bank is private.  The American people are\nbeing ripped off royally.  100% of the income tax goes to pay\non the Federal debt to the Federal Reserve Bankers.  Not one\ndime goes for services.  Services like the military and\nwelfare come from excise taxes and the like.\n\n2) Why do we the American people stand for this?????\n\n** Check Out The New BBS **\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8116, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jliukkon@klaava.Helsinki.FI (Juha-Matti Liukkonen)\nSubject: Re: Please help identify this old 3Com Ethernet card\nOrganization: University of Helsinki\nLines: 29\n\nsimon@moscow.uidaho.edu (Mike Simon) writes:\n\n>In article <1qhvunINNhau@emory.mathcs.emory.edu>, splee@pd.org (Seng-Poh Lee, Speedy) writes:\n>|> I have an old 3Com ethernet card (PC AT Bus) that came out of a Apollo\n>|> workstation. I'm trying to identify it in order to use it on a PC.\n>|> \n>|> The Assembly number is 4008-00 REV 2 and it is a 16 bit card, circa\n>|> 1985.  It has an AUI port as well as a BNC coax connection.  It has\n>|> selectable address for the BIOS, IO, DMA, and IRQ locations via berg\n>|> jumpers.  It also appears to have a Intel 80186 processor on board,\n>|> presumably for buffering. \n>|> \n>|> The ethernet chip appears to be an Intel 82586, a 48 pin DIP package. Is\n>|> this chip an equivalent to the 8390 used in some cards? There is also\n>|> a 68 pin PLCC chip, called a LINK+\n\nI got two very similar sounding boards for dirt cheap, too. Their Assy\nnumbers were not 4000-series, but your description fits otherwise. They\nare 3Com 3C505's aka Etherlink Plus cards. Check out ftp.3com.com, there\nare drivers and diagnostic programs for just about any and all 3Com\ncards. I concluded that my card was the 505 after I ran their diagnostic\nprogram for 3C505 succesfully (\"..passes with flying colours\") :)\n\nAnybody know of packet drivers for these cards under OS/2..?\n\n-- \n               Juha Liukkonen, aka jliukkon@cc.helsinki.fi\n              University of Helsinki,  Dept. of  Lost Souls\n           \"Trust me, I know what I'm doing.\" - Sledge Hammer\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8117, "properties": {"category": "talk.politics.mideast", "text": "From: hernlem@chess.ncsu.edu (Brad Hernlem)\nSubject: Israeli Media (was Re: Israeli Terrorism)\nReply-To: hernlem@chess.ncsu.edu (Brad Hernlem)\nOrganization: NCSU Chem Eng\nLines: 33\n\n\nIn article <2BD9C01D.11546@news.service.uci.edu>, tclock@orion.oac.uci.edu (Tim Clock) writes:\n\n|> In article <1993Apr24.203620.6531@Virginia.EDU> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n|> >I think the Israeli press might be a tad bit biased in\n|> >reporting the events. I doubt the Propaganda machine of Goering\n|> >reported accurately on what was happening in Germany. It is\n|> >interesting that you are basing the truth on Israeli propaganda.\n|> \n|> Since one is also unlikely to get \"the truth\" from either Arab or \n|> Palestinian news outlets, where do we go to \"understand\", to learn? \n|> Is one form of propoganda more reliable than another? The only way \n|> to determine that is to try and get beyond the writer's \"political\n|> agenda\", whether it is \"on\" or \"against\" our *side*.\n|> \n|> Tim \n\nTo Andi,\n\nI have to disagree with you about the value of Israeli news sources. If you\nwant to know about events in Palestine it makes more sense to get the news\ndirectly from the source. EVERY news source is inherently biased to some\nextent and for various reasons, both intentional and otherwise. However, \nthe more sources relied upon the easier it is to see the \"truth\" and to discern \nthe bias. \n\nGo read or listen to some Israeli media. You will learn more news and more\nopinion about Israel and Palestine by doing so. Then you can form your own\nopinions and hopefully they will be more informed even if your views don't \nchange.\n\nBrad Hernlem (hernlem@chess.ncsu.EDU)\nJake can call me Doctor Mohandes Brad \"Ali\" Hernlem (as of last Wednesday)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8118, "properties": {"category": "comp.graphics", "text": "From: se92psh@brunel.ac.uk (Peter Hauke)\nSubject: Re: TIFF: philosophical significance of 42\nOrganization: Brunel University, Uxbridge, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 20\n\njoachim lous (joachim@kih.no) wrote:\n: ulrich@galki.toppoint.de wrote:\n\n: > Does anyone have any  other suggestions where the 42 came from?\n\nYep, here's a theory that I once heard bandied around.  Rather than thinking\nof the number think of the sound. For Tea Two. A sort of anagram on Tea For Two,\nTwo for Tea, For Tea Two.\n\n:-)\n\nPeter\n\n\n-- \n***********************************\n* Peter Hauke @ Brunel University *\n*---------------------------------*\n*      se92psh@brunel.ac.uk       *\n***********************************\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8119, "properties": {"category": "talk.politics.guns", "text": "From: feustel@netcom.com (David Feustel)\nSubject: Re: Die Koresh Die!\nOrganization: DAFCO: OS/2 Software Support & Consulting\nLines: 9\n\nThe explanations of Federal law enforcement officials about what\nhappened in Waco is just another example of the survivors writing the\nhistory books to put themselves in the best of a bad light.\n-- \nDave Feustel N9MYI <feustel@netcom.com>\n\nI'm beginning to look forward to reaching the %100 allocation of taxes\nto pay for the interest on the national debt. At that point the\nfederal government will be will go out of business for lack of funds.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8120, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: Some more about gun control...\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nLines: 39\n\nIn article <C5MzyK.E7G@ulowell.ulowell.edu>, jrutledg@cs.ulowell.edu (John Lawrence Rutledge) writes:\n>\n>No not, unconditional, but \"shall not be infringed\".  Infringed\n>is defined as:\n>\tTo break or ignore the terms of or obligations (an oath, \n>\tan agreement, law, or the like); to disreguard; violate.\n>\tTo go beyond the boundaries or limits; tresspass; encroach.\n>This definition implies the following of some form of existing \n>agreement.  Laws and agreements are made in advance. \n\nThe rights guaranteed by the Constitution were considered to be\npre-existing.  The only agreement was that they exist.  Therefore, no\nlaw grants such rights. Laws can only guarantee, protect, or infringe\nsuch rights.\n\n\nWebsters Third New International Dictionary of the English Language,\nUnabridged  1986\n\ninfringe\n  1.a. to break down:DESTROY\n    b. DEFEAT, FRUSTRATE\n    c. CONFUTE, REFUTE\n    d. IMPAIR, WEAKEN\n  2. to commit a breach of : neglect to fulfill or obey : VIOLATE,\n     TRANSGRESS\n     vi : ENCROACH, TRESPASS\n\ninfringement\n  1. the act of infringing : BREACH, VIOLATION, NONFULFILLMENT\n  2. an encroachment or trespass on a right or priveledge : TRESPASS\n                                      ~~~~~\n  \nNow, by what stretch of the imagination do you get your ideas about\ninfringement of rights?  \n\nAl\n[standard disclaimer]\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8121, "properties": {"category": "comp.graphics", "text": "From: petro@server.uwindsor.ca (PETRO DAVID              )\nSubject: Shareware\nDistribution: comp.graphics\nOrganization: University of Windsor, Ontario, Canada\nLines: 20\n\n\n Recently I saw the latest Computer Shopper and in it there was an article\non nice shareware graphics programs. They looked pretty good and of the 6\nlisted in the article, one I had (Graphics Workshop), one I found via\narchie (Draft Choice - old version though) and the rest I couldn't find.\nSo if there is anyone that knows where I can get the following programs\nvia anonymous ftp, please let me know.\n\nAdkins Graphics :AG1.ZIP, AG2.ZIP\nDraft Choice (latest VGA version) : DRAFTC.ZIP\nEnvision Publisher: ENVIS1.ZIP, ENVIS2.ZIP\nNeopaint: NEOPNT.ZIP\n\nThanx in advance.\nD.PETRO \n-- \n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\\n>     DAVID PETRO           KWYJIBO-- A big, dumb, balding       <\n>     Dept. of Physics                North American ape.        <\n>     University of Windsor petro@server.uwindsor.ca             <\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8122, "properties": {"category": "alt.atheism", "text": "Subject: Re: Contradictions\nFrom: kmr4@po.CWRU.edu (Keith M. Ryan)\nOrganization: Case Western Reserve University\nNNTP-Posting-Host: b64635.student.cwru.edu\nLines: 49\n\nIn article <C52oys.2CLJ@austin.ibm.com> yoder@austin.ibm.com (Stuart R. Yoder) writes:\n>: \n>: Then what would it have to do with \"in the universe\"?  You theists\n>: cannot understand that inside the universe and outside the universe\n>: are two different places.  Put God outside the universe and you\n>: subtract from it the ability to interact with the inside of the\n>: universe, put it inside the universe and you impose the rules of\n>: physics on it.\n>\n>1.  God is outside the universe.\n>2.  Things outside the universe do not have 'the ability to interact\n>    with the inside of the universe'.\n>3.  Therefore God cannot interact inside the universe.\n>\n>(2) has no basis whatsoever.  You seem to have positive knowledge\n>about this.\n\n\t(2) is a corrallary of (1).\n\n\tThe negation of (2) would contridict (1).\n\n>\n>: Although we do not have a complete model of the physical rules\n>: governing the inside of the universe, we expect that there are no\n>: contradictory events likely to destroy the fabric of modern physics.\n>: On the other hand, your notion of an omnipotent, omniscient and\n>: infinitely benevolent god, is not subject to physical laws: you\n>: attempt to explain this away by describing it as being outside of\n>: them, beyond measurement.  To me, beyond measurement means it can\n>: have no measurable effect on reality, so it cannot interact: ergo,\n>: your god is IRRELEVANT.\n>\n>1.  God is beyond measure.\n>2.  Beyond measurement means it can have no measurable effect on\n>    reality.\n>3.  Therefore God cannot have a measurable effect on reality.\n>\n>(2) has no basis whatsoever.\n\n  (2) Is a corrallary of (1)\n\n  The negation of (2) would contradict (1).\n--\n\n\n       \"Satan and the Angels do not have freewill.  \n        They do what god tells them to do. \"\n\n        S.N. Mozumder (snm6394@ultb.isc.rit.edu) \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8123, "properties": {"category": "talk.politics.misc", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: F<O>CUS/HEALTH: ONE PAYER SYSTEM B.S.\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nDistribution: na\nLines: 54\n\nUJSNYDER%MSUVX2%MEMSTVX1.BITNET@MIZZOU1.missouri.edu writes:\n>\n>There is never any mention of how much working Canadians have to \n>pay in taxes for their \"free\" health care system.  \n\nOh, *really*???\n\n>I know that more than 50% of an average daily worker's salary goes\n>towards taxes in Canada mainly because of this \"free\" health care.\n>It looks like we are pretty lucky so far.\n\nI know that when working in Alberta, Ontario and Quebec, I was aware\nthat I was paying for health insurance - e.g., in Toronto, OHIP fees\nwere listed seperately on my pay stub.\n\nWhile I'm not the only Canadian who favours lower taxes and cutbacks\nin spending, health insurance isn't on the table.  See our polls ...\nA better one might be the July 1st polls conducted for Macleans (our\nmajor English newsmagazine) by Decima Research ... Decima president\nAllen Gregg is considered one of the world's top poll researchers,\nand Mulroney's Conservatives have relied on him to keep in power in\nthe face of impossible election situations.  I haven't had a chance\nto see this year's version due to our library, but previous ones\nbefore the Americans started their assault and disinformation had\nshown satisfaction at 97% and switching to an American all-private\nsystem had support within statistical noise.  The Decima polls are\nconsidered definitive.  Even the new Reform Party, a breakoff of\ntraditionalists from the Conservatives with a mildly \"libertarian\"\nfaction, hold our public health insurance as an untouchable but that\njust a few people have to be reminded that it's not free (the average\nCanadian/European is more fiscally naive than their American\ncounterparts on issues like these).\n\nPersonally, I feel that the universal health insurance approach used\nin Canada, France and Germany -- paying to private health providers in\na nominally free market not unlike America's, minus HMO's -- depends a\nlot on values in those societies different from the U.S.  The basic\nhealth needs for life are not viewed as market, but the insurance does\nallow the market to address that -- basic health care is not viewed on\nthe level of ownership of a VCR as Americans would see it.  Plenty of\nroom is left for expenditure of private funds as extra insurance or as\n\n>Lastly, there were noises about how the Canadian system was not\n>containing costs, but, in fact, their system is currently bankrupt.\n\nPlease explain this one, hopefully in a way that Canadian readers\nbesides myself can understand and concur ...\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.386+0000", "event": "documents", "entityId": 8124, "properties": {"category": "talk.politics.guns", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: \"militia\" (incredibly long)\nOrganization: Totally Unorganized\nLines: 75\n\nIn article <C5n0vy.EJ6@ulowell.ulowell.edu> jrutledg@cs.ulowell.edu (John Lawrence Rutledge) writes:\n<In article <1qna9m$nq8@transfer.stratus.com>, cdt@sw.stratus.com (C. D. Tavares) writes:\n<-> In article <C5L0n2.5LL@ulowell.ulowell.edu>, jrutledg@cs.ulowell.edu (John Lawrence Rutledge) writes:\n<-> > But, do you knew how much organization is required to training a large\n<-> > group of poeple twice a year.  Just to try to get the same people\n<-> > every year, provide a basic training to new people so they can\n<-> > be integrated into the force, and find a suitable location, it \n<-> > requires a continually standing committee of organizers.  \n<-> \n<-> Again, my response is, \"so what?\"  Is Mr. Rutledge arguing that since\n<-> the local and federal governments have abandoned their charter to support\n<-> such activity, and passed laws prohibiting private organizations from \n<-> doing so, that they have eliminated the basis for the RKBA?   On the\n<-> contrary, to anyone who understands the game, they have strengthened it.\n<\n<No, I originally argued that the Second Amendment was \"a little bit\n<and an anachronism.\"  These prohibiting laws are examples why the are\n<an anachronism.  After all, laws in made by representatives of the \n<people.  These representatives of the people have already decided\n<that the Second Amendment does not apply or is too broad in some\n<cases.  Since these representatives feel an unconditional \n<interpretation is not wanted, then it is probable that they majority\n<of the people feel the same way.  If this is so, it is an example\n<of the people using their power of government.  If this is not\n<how the people feel, the people should stand up and state their wishes.\n\nWrong.  Neglecting that the government and media have bullshitted the\npeople almost nonstop on this issue, Constitutional limitations are\nthere to prevent a 'tyrrany of the majority'.  For example, a majority\ncould vote that given ethnics have no rights, are not people, etc.\nand it would fly using the logic above.\n\nWhen government feels the Constitution is not right for the times,\nthere is a procedure called an AMENDMENT TO THE CONSTITUTION.  THis\nis deliberately difficult, and cumbersome, to prevent abuse of those\nwho decide to ignore the people, or impose unjust policies of a\nmajority on a minority.   A lynch mob is a majority, remember, outvoting\nthe hangee.\n\nWhat the government is doing are VIOLATIONS, end-runs around the\nlimitations on the government, probably because they know that the\npeople would be very hard to convince that a good intention is behind\ntampering with the Bill of Rights.  Government propeganda on guns has\nbeen very strong and persistant, but not THAT strong.  And it just\nshows how gullible the people have become to \"I am from the government\nand am here to help you sort of line\".  We have been lied to, fed\nhalf truths, rigged stats, while the government knows their control\nlaws have no effect on crime.  They want a government monopoly on\nforce, pure and simple.  Do you REALLY want the government to be able\nto override Constitutional limitations by a simple vote of a bunch\nof elitists (congresscritters)?  I sure don't.  The Founding Fathers\nsure as hell didn't, either.\n\n<> Mox nix, Mr. Rutledge.  YOU are the only one here claiming that the\n<-> RKBA is dependent on the existence of a top-flight, well-regulated\n<-> militia.  Why this is a false assumption has already been posted a \n<-> number of times.  \n<\n<No, I simple stated that the people have a right to \"join a well\n<organized militia.\"  And I have also stated that a militia that\n<meets once or twice a year is clearly \"well organized.\"  And this\n<state of readiness that I have claimed the people have a \"right\"\n<to, is the same state of readiness expected of the militia as stated\n<by Hamilton. \n\nYou better read the Senate Subcommitte on the Constitution regarding the\nSecond Amendment, and a linguist's analisys of the Second itself.\nIN the meanwhile, show us some stuff to back up your assertions.\nAnd yes, I have the above mentioned documents (and more) online.\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8125, "properties": {"category": "rec.motorcycles", "text": "From: tony@morgan.demon.co.uk (Tony Kidson)\nSubject: Re: Info on Sport-Cruisers \nDistribution: world\nOrganization: The Modem Palace\nReply-To: tony@morgan.demon.co.uk\nX-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)\nLines: 25\n\nIn article <4foNhvm00WB4E5hUxB@andrew.cmu.edu> jae+@CMU.EDU writes:\n\n>I'm looking for a sport-cruiser - factory installed fairings (\n>full/half ), hard saddle bags, 750cc and above, and all that and still\n>has that sporty look.\n>\n>I particularly like the R100RS and K75 RT or S, or any of the K series\n>BMW bikes.\n>\n>I was wondering if there are any other comparable type bikes being\n>produced by companies other than BMW.\n\n\nThe Honda ST1100 was designed by Honda in Germany, originally for the \nEuropean market, as competition for the BMW 'K' series.  Check it out.\n\nTony\n\n+---------------+------------------------------+-------------------------+\n|Tony Kidson    | ** PGP 2.2 Key by request ** |Voice +44 81 466 5127    |\n|Morgan Towers, |  The Cat has had to move now |E-Mail(in order)         |\n|Morgan Road,   |  as I've had to take the top |tony@morgan.demon.co.uk  |\n|Bromley,       |  off of the machine.         |tny@cix.compulink.co.uk  |\n|England BR1 3QE|Honda ST1100 -=<*>=- DoD# 0801|100024.301@compuserve.com|\n+---------------+------------------------------+-------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8126, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon Wtte)\nSubject: Re: Position of 'b' on Erg. Keyboard\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 21\nNntp-Posting-Host: hemul.nada.kth.se\n\nIn <1993Apr19.143939.28983@Informatik.TU-Muenchen.DE> probulf@Informatik.TU-Muenchen.DE (Frank Probul) writes:\n\n>|> However, when I learned typing in school some years ago, I was taught\n>|> to write 'b' with my right hand. Is this a difference between Danish\n>|> and American typing, or what???\n\n>In germany you usually use the left hand for the 'b'\n\nSame in Sweden (the ergonomic keyboard is great, BUT!\nthe palm rests do NOT fix to the keyboard; they just sort\nof rests against the table. Too bad when you have the\nkeyboard in your knee...\n\nCheers,\n\n\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n  \"You NEVER hide the menu bar. You might go about and change the color\n  of it to the color of the BACKGROUND, but you never HIDE the menu bar.\"\n                      -- Tog\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8127, "properties": {"category": "alt.atheism", "text": " zaphod.mps.ohio-state.edu!wupost!uunet!olivea!sgigate!odin!fido!solntze.wpd.sgi.com!livesey\nSubject: Re: <Political Atheists?\nFrom: livesey@solntze.wpd.sgi.com (Jon Livesey)\n <1993Mar31.230523.13892@blaze.cs.jhu.edu> <11705@vice.ICO.TEK.COM> <1pic4lINNrau@gap.caltech.edu>\nOrganization: sgi\nNNTP-Posting-Host: solntze.wpd.sgi.com\nLines: 15\n\nIn article <1pic4lINNrau@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n|> \n|> >My personal objection is that I find capital punishment to be\n|> >cruel and unusual punishment under all circumstances.\n|> \n|> It can be painless, so it isn't cruel.  And, it has occurred frequently\n|> since the dawn of time, so it is hardly unusual.\n\nKoff!  You mean that as long as I put you to sleep first,\nI can kill you without being cruel?\n\nThis changes everything.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8128, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: University of Delaware\nLines: 71\nNntp-Posting-Host: chopin.udel.edu\n\nIn article <1r27vo$425@geraldo.cc.utexas.edu> mikey@ccwf.cc.utexas.edu (Strider) writes:\n>roby@chopin.udel.edu (Scott W Roby) writes:\n>:mikey@ccwf.cc.utexas.edu (Strider) writes:\n>:\n>:According to an Australian documentary made in the year before the stand off \n>:began, Koresh and his followers all believed he was Christ.  Koresh \n>:had sex with children and women married to other men in the compound.  \n>:These were the \"perfect children\" resulting from the \"great seed\" of \n>:his \"magnified horn\".  Ex-members describe him in ways not dissimilar \n>:to the way Jim Jones has been described.\n>\n>I don't know how accurate the documentary was; \n\nThe documentary interviewed Koresh and current and ex-members.  \nThe documentary disucussed Koresh's \"Christ\" status inside the cult, \ncult brain-washing techniques, and unusual sex practices (the leader \ngets any he wants, and tells others when they can or can't).  I will let \nothers decide if using religious authority to have sex with a minor is \ntechnically child abuse or not.\n\n>however, Koresh was never\n>convicted of any crimes against children, nor was the BATF after him for\n>child abuse.  \n>Their purview (in this case) is strictly in firearms violations,\n\nAll true.\n\n>so this information is irrelevant to the discussion.\n\nWell, if a fire was deliberately set by members of the cult, then the \nhistory and background of the cult is very relevant.  The history \nand backgournd of the Jones cult was very important in understanding \nwhat happened at Jonestown.\n\nNot taking into account the history and background of Koresh's cult may \nalso help explain why the FBI and BATF so badly predicted the reponses \nthey would get from inside the compund nearly every step of the way in \nthis badly handled affair.\n\n>:FBI agents have to pass rigorous psychological examinations and background \n>:checks.  Plus, those in charge will undoubtedly have to explain their \n>:decisions in great detail to congress.  Why would the FBI want to fulfill \n>:Koresh's own prophecy?\n>\n>Those in charge will undoubtedly have to explain *something*, but whether\n>their answers even remotely resembles the truth we may never know.  And who\n>is left alive to care whether the prophecy is fulfilled?  It only holds\n>meaning for the nine who survived.\n\nIt is likely that there will be at least two investigations (JD and congress) \nat this point.\n\n>:>Correction:  The *FBI* said that two of the cult members said this; so far,\n>:>no one else has been able to talk to them.\n>:\n>:So, when they talk to the news reporters directly, and relate the same \n>:details, will you believe them?\n>\n>*IF* they confirm the story, I probably will.  Definitely not until then, \n>however.\n\nInteresting and conflicting details are starting to come out.  I have \nreverted back to wait mode to find out whether the fire was intentional \nor accidental and how it started and why it spread so fast.\n\n>\n>Mike Ruff\n>-- \n\n\n-- \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8129, "properties": {"category": "soc.religion.christian", "text": "From: jhpb@sarto.budd-lake.nj.us (Joseph H. Buehler)\nSubject: Re: SSPX schism ?\nOrganization: none\nLines: 138\n\nIn article <Apr.20.03.03.06.1993.3836@geneva.rutgers.edu> shellgate!llo@uu4.psi.com (Larry L. Overacker) writes:\n\n   You ask where we are.  I would echo that question.  I'm not trying to be\n   contentious.  But assuming that the Pope has universal jurisdiction\n   and authority, what authority do you rely upon for your decisions?\n   What prevents me from choosing ANY doctrine I like and saying that\n   Papal disagreement is an error that will be resolved in time?\n   This is especially true, since Councils of Bishops have basically\n   stood by the Pope.\n\nThe ultimate question is the traditional theology of the Church.  This\nis the *only* thing that it is possible to resist a Pope for: his\ndeparture from the traditional doctrine of the Church.  If commands\nfrom *any* authority conflict with Tradition, the commands must be\ndisobeyed.\n\nMy own view on this is that this conflict could only happen in a major\nway.  God would never allow a hair-splitting situation to develop; it\nwould be too complex for people to figure out.  I don't view the\npresent situation in the Church as anything extremely complicated.\nRun through a list of what has happened in the last 30 years in the\nCatholic Church, and any impartial observer will be aghast.\n\n   It appears that much of what lies at the heart of this matter is\n   disagreements over what is tradition and Tradition, and also over\n   authority and discipline.  \n\nThe problems stem from a general widespread ignorance of the Catholic\nFaith, in my opinion.  Most Catholics know about zilch about the\nCatholic Faith; this leaves them wide open for destruction by erring\nbishops.  It's basically the Reformation part II.\n\nThere is not even a question in my mind that in some respects the\nshards of the Catholic Church are currently being trampled upon by the\nCatholic hierarchy.  I could go on listing shocking things for an\nhour, probably.\n\nTake the situation in Campos, Brazil, for example.  I'm reading a book\non what happened there after Vatican Council II.  The bishop, Antonio\nde Castro-Mayer, never introduced all the changes that followed in the\nwake of Vatican II.  He kept the traditional Mass, the same old\ncatechisms, etc.  He made sure the people knew their faith, the\nCatholic theology of obedience, what Modernism was, etc.  He\ninnoculated the people against what was coming.\n\nWell, one day the order came from Rome for his retirement.  It came\nwhen the Pope was sick.  Bishop de Castro-Mayer waited until the Pope\nrecovered, then inquired whether this command was what the Pope really\nwanted, or something that some Liberal had commanded in his absence.\nThe Pope confirmed the decision.  So the good bishop retired.\n\nThe injustice that followed was completely incredible.  A new bishop\nwas installed.  He proceeded to expel most of bishop de Castro-Mayer's\nclergy from their churches, because they refused to celebrate the New\nMass.  The new bishop would visit a parish, and celebrate a New Mass.\nThe people would promptly walk out of the church en masse.  The bishop\nwas *enraged* by this.  He usually resorted to enlisting the help of\nthe secular authorities to eject the priest from the church.  The\npriests would just start building new churches; the people were\ncompletely behind them.  The old parishes had the New Mass, as the\nbishop desired -- and virtually no parishioners.\n\nThe prime motivation for all this was completely illegal, according to\ncanon law.  No priest can be penalized in any way for saying the\ntraditional Mass, because of legislation enacted by Pope Saint Pius V.\nNor is there any obligation to say the New Mass.\n\nDuring all this process, the people of Campos, not just private\nindividuals, but including civil authorities, were constantly sending\npetitions and letters to Rome to do something about the new Modernist\nbishop.  NOTHING was ever done; no help ever arrived from Rome.\nEventually 37 priests were kicked out, and about 40,000 people.\n\n   My question to the supporters of SSPX is this:\n\n\t Is there ANY way that your positions with respect to church reforms\n\t could change and be conformed to those of the Pope? (assuming that\n\t the Pope's position does not change and that the leaders of SSPX\n\t don't jointly make such  choice.)\n\n   If not, this appears to be claiming infallible teaching authority.\n   If I adopt the view that \"I'm NOT wrong, I CAN'T be wrong, and\n   there's NO WAY I'll change my mind, YOU must change yours\", that\n   I've either left the Catholic Church or it has left me.\n\nIf the Pope defines certain things ex cathedra, that would be the end\nof the controversy.  That process is all very well understood in\nCatholic theology, and anyone who doesn't go along with it is an\ninstant non-Catholic.\n\nThe problem here is that people do not appreciate what is going on in\nthe Catholic world.  If they knew the Faith, and what our bishops are\ndoing, they would be shocked!\n\n   We sould argue from now until the Second Coming about what the \"real\"\n   traditional teaching of the Church is.  If this were a simple matter\n   East and West would not have been separated for over 900 years.\n\nThis isn't the case in the Catholic Church.  There is a massive body\nof traditional teaching.  The Popes of the last 150 years are\nespecially relevant.  There is no question at all what the traditional\ndoctrine is.\n\n   I thought that the teaching magisterieum of the church did not allow\n   error in teachings regarding faith and morals even in the short term.`\n   I may be wrong here, I'm not Roman Catholic. :-)\n\nThat's heresy, more or less.  Although they have done a great job\nsince the Reformation, the last 30 years have seen so many errors\nspread that it's pitiful.\n\nInfallibility rests in the Pope, and in the Church as a whole.  In the\nshort term, a Pope, or large sections of the Church can go astray.  In\nfact, that's what usually happens during a major heresy: large\nsections of the Church go astray.  (The Pope historically has been\nmuch more reliable.)  Everything will always come back in the long\nrun.\n\n   What would be the effect of a Pope making an ex cathedra statement\n   regarding the SSPX situation?  Would it be honored?  If not, how\n   do you get around the formal doctrine of infallibility?\n   Again, I'm not trying to be contentions, I'm trying to understand.\n   Since I'm Orthodox, I've got no real vested interest in the outcome,\n   one way or the other.\n\nYes, it would be honored.  Infallibility is infallibility.  But what\nis he going to define?  That the New Mass is a better expression of\nthe Catholic Faith than the old?  That sex education in the Catholic\nschools is wonderful?  That all religions are wonderful except for\nthat professed by the Popes prior to Vatican II?\n\n   It does if the command was legitimate.  SSPX does not view the\n   Pope's commands as legitimate.  Why?  This is a VERY slippery slope.\n\nNot really; start studying the major Catholic theologians of the last\n300 years.  Everything is very well spelled out.  The West excels at\ncritical thought, remember?  That's what Catholic theologians have\nbeen busy at for centuries.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8130, "properties": {"category": "sci.med", "text": "From: doyle+@pitt.edu (Howard R Doyle)\nSubject: Re: Hernia\nOrganization: Pittsburgh TRansplant Institute\nLines: 41\n\nIn article <C5qopx.5Mq@encore.com> sheffner@encore.com (Steve Heffner) writes:\n>A bit more than a year ago, a hernia in my right groin was\n>discovered.  It had produced a dull pain in that area.  The hernia\n>was repaired using the least intrusive (orthoscopic?) method and a\n>\"plug and patch\".\n\n\n\nI suspect you mean laparoscopic instead of orthoscopic.\n\n\n\n>Now the pain occurs more often.  My GP couldn't identify any\n>specific problem.  The surgen who performed the original procedure\n>now says that yes there is a \"new\" hernia in the same area and he\n>said that he has to cut into the area for the repair this time.\n>\n>My question to the net:  Is there a nonintrusive method to\n>determine if in fact there is a hernia or if the pain is from\n>something else?\n\n\nBy far the (still) best method to diagnose a hernia is old fashioned\nphysical examination. If you have an obvious hernia sac coming down \ninto your scrotum, or a bulge in your groin that is brought about by\nincreasing intra-abdominal pressure....\nSometimes is not that obvious. The hernia is small and you can only \ndetect it by putting your finger into the inguinal canal. \nWhether you have a recurrent hernia, or this is related to the previous\noperation, I can't tell you. The person that examined you is in  the best\nposition to make that determination.\n\nAre there non-invasive ways of diagnosing a hernia? Every now and then \nfolks write about CT scans and ultrasounds for this. But these are far\ntoo expensive, and unlikely to be better than a trained examining finger.\n\n\n====================================\n\nHoward Doyle\ndoyle+@pitt.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8131, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: The Inimitable Rushdie\nOrganization: Technical University Braunschweig, Germany\nLines: 11\n\nIn article <1993Apr16.211458.1@eagle.wesleyan.edu>\nkmagnacca@eagle.wesleyan.edu writes:\n \n(deletion)\n>Nope, Germany has extremely restrictive citizenship laws.  The\n>ethnic Germans who have lived in Russia for over 100 years\n>automatically become citizens if they move to Germany, but the\n>Turks who are now in their third generation in Germany can't.\n \nThat's wrong. They can.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8132, "properties": {"category": "rec.autos", "text": "From: rmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen)\nSubject: Re: Ad said Nissan Altima best seller?\nOrganization: University of Virginia\nLines: 35\n\nboyle@cactus.org  writes:\n> In article <1qv7mn$dql@menudo.uh.edu> thang@harebell.egr.uh.edu (Chin-Heng  Thang) writes:\n> >\tRecently, I saw an ad for the altima which says that it is the  \n> >best seller for the past 6 months, is that true? \n> >\n> \n> I too was puzzled by this obvious untruth. What I think is going on is that\n> Nissan claims that the Altima is \"the best selling new car namelplate in\n> the US\" (I think I have this near verbatim). Lee Iaccoca's statistics\n> dept. would have been proud of that sentence. What they mean, I think, is\n> that of all \"totally new models\", i.e. cars never sold before in any\n> form, the Altima is the best seller, thereby eliminating Accord, Taurus\n> etc. \n THis is from the same people who make the claim that our minivan is outsellin\ntheirs.... implying that the Nissan Quest/ Murcury Villager are out-selling\nthe Chrysler mini-vans.... not only is this not true at all, but it was a stupid\nclaim to make... the commercial was part of the introduction campaign for the \nvans.  Kind of a bold statement to make when you haven't even sold one yet, eh?\n\n\nAnd I thought Buick and Oldsmobile where bad.  Shame on you Nissan and \nMercury!\n> \n> Any other interpretations?\n> \n> \n> Craig\n> >\t Does anyone has anyhting regarding the # of cars sold for the  \n> >past 6 months?\n> >\n> >\n> >\n> >tony\n> \n> \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8133, "properties": {"category": "sci.crypt", "text": "From: smythw@vccnw03.its.rpi.edu (William Smythe)\nSubject: Re: How to detect use of an illegal cipher?\nNntp-Posting-Host: vccnw03.its.rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY\nLines: 47\n\nIn article <betel.734997645@camelot> betel@camelot.bradley.edu (Robert Crawford) writes:\n>Jay Fenton <Fenton@Kaleida.Com> writes:\n>\n>>How can the government tell which encryption method one is using without\n>>being able to decode the traffic? i.e., In order to accuse me of using an\n>>unauthorized strong encryption technique they would have to take both\n>>keys out of escrow, run them against my ciphertext and \"draw a blank\".\n>\n>\tI was thinking about this, also. It's quite possible the\n>system transmits, in clear, the serial number of the device being\n>used. That way they can start a tap, get the serial number, and use\n>the warrant for the first tap to get the key.\n>\n>\tIf they tap someone who's apparently using encryption, but\n>don't find that prefix, then they'll assume it's an \"un-authorized\"\n>encryption scheme.\n\nFrom the limited details released so far, It seems that the clipper chip \nsystem must employ some sort of public key cryptography. Otherwise, the key \nmanagement problems inherent to symetric ciphers would make the system \nunworkable. It probably has some sort of public key exchange that takes place\nat the start of each call. Thats how they would identify the private key in \ntheir data base?\n\nThis means that either the NSA has developed some non RSA public key \nalgorythm or the feds have decided to subsidize PKP & RSADSI. The former is \nrather an exciting posibility since keeping the algorythm secret while making\nchip implimentations widely avalibe will be exceptionally hard. If the feds\nare forced to make it avalible in order to gain public acceptance than that \ncould break RSA's stranglehold on public key crypto in the U.S.   \n\nAs for my impressions of the whole scheme It seems that instead of trying to\nban strong crypto, they are trying to co-opt it. Their contention that they \nneed to keep the algorythm secret to protect the security of the key\nregistration suggests possible inherent weakness to the algorythm. More likely\nis that they dont want anyone constructing black market devices which dont \nhave the keys registered. Anyone else notice that in their Q&A session, they\ntalk about releasing the keys only to people with proper autiorization but\ncarefully dance around stating that the keys will simply have to be supeonaed.\nThey seem to be trying to keep open the posibility of obtaining keys without \ncourt order even though tapping a phone line requires one. Also pick up on \ntheir implicit threat of eithe accept this or we'll ban strong crypto outright?\nI dont trust this plan at all and plan to oppose it in all (legal) ways\npossible.\n\nBill Smythe\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8134, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: walker@thufir.cs.umn.edu (Robert Paul Walker)\nSubject: DOS Board with 16 ports.\nNntp-Posting-Host: thufir.cs.umn.edu\nOrganization: University of Minnesota\nLines: 19\n\nI'm posting this for a friend that runs a BBS. I'm not sure if its under\nDOS or Windows.\n\nHe is interested in a board that has 16 ports on it. In another post,\nsomeone suggeted a DigiBoard, but didn't have too much info on it.\n\nCould someone give me information on any boards that they know of with\nthe before mentioned configuration. Models. Specifications. Prices.\n Manufacturers.\n\nThanks,\n\nRob\n\n--\n\nRobert Walker                     walker@cs.umn.edu\nComputer Science Dept.\nUniversity of Minnesota\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8135, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jschief@finbol.toppoint.de (Joerg Schlaeger)\nSubject: Re: 16Mb ISA limit\nDistribution: world\nOrganization: myself\nLines: 14\n\nrpao@mts.mivj.ca.us writes in article <C5J6zn.681@mts.mivj.ca.us>:\n> \n> marka@SSD.CSD.HARRIS.COM (Mark Ashley) writes:\n> \n> >Then the writer claims that glitches can\n> >occur in systems with over 16Mb because \n> >of that limit. That part I don't understand\n> >because the RAM is right on the motherboard.\n> >So the cpu should have no problems talking\n> >with the RAM. Can anybody explain this ?\nThe floppy is served by DMA on the motherboard,\nand original DMA-controller can't reach more than the first\n16MB (The address-space of the ISA-bus)\njoerg\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8136, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: HELP for Kidney Stones ..............\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 17\n\nIn article <1993Apr21.143910.5826@wvnvms.wvnet.edu> pk115050@wvnvms.wvnet.edu writes:\n>My girlfriend is in pain from kidney stones. She says that because she has no\n>medical insurance, she cannot get them removed.\n>\n>My question: Is there any way she can treat them herself, or at least mitigate\n>their effects? Any help is deeply appreciated. (Advice, referral to literature,\n\nMorphine or demerol is about the only effective way of stopping pain\nthat severe.  Obviously, she'll need a prescription to get such drugs.\nCan't she go to the county hospital or something?\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8137, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 99\n\n\nIn article <1r1ma9INNno7@owl.csrv.uidaho.edu>, lanph872@crow.csrv.uidaho.edu (Rob Lanphier) writes:\n|> Malcolm Lee (mlee@post.RoyalRoads.ca) wrote:\n|> \n|> : Do you consider Neo-Nazis and white supremists to be Christian?  I'd hardly\n|> : classify them as Christian.  Do they follow the teachings of Christ?  Love\n|> : one another.  Love your neighbour as yourself.  Love your enemies.  Is Jesus\n|> : Christ their Lord and Saviour?  By the persecution of Jews, they are violating\n|> : all the precepts of what Christ died for.  They are in direct violation of\n|> : the teachings of Christ.  Even Jesus who was crucified by the Jewish leaders\n|> : of that time, loved His enemies by asking the Father for forgiveness of their\n|> : sins.  I am a Christian and I bear no animosity towards Jews or any one else.\n|> : The enemy is Satan, not our fellow man.\n|> \n|> In Mark 16:16, Jesus is quoted as saying \"Whoever believes and is baptized\n|> will be saved, but whoever does not believe will be condemned.\"  I\n|> consider most Neo-Nazis and White Supremisists to be Christians because:\n|> a)  They say they are\n|> b)  They feel it necessary to justify their actions with the Bible\n|> \n\nWhere does it say in the bible that Christians are supposed to persecute\nJews?  Isn't it love your enemies instead?  They may say they are \"Christian\"\nbut do their actions speak differently?  Do you believe what everyone tells\nyou?  I don't.  I came to believe in God by my own investigation and conclusions.\nAnd ultimately by my own choice.  Salvation, however, was granted only through\nthe grace of God.\n\n|> The Bible provides us with no clear definition of what a Christian is.  It\n|> tells us what a Christian *should* do, but then it goes on to say that as\n|> long as you believe, your sins will be forgiven.  \n\nTo be a Christian is to model oneself after Jesus Christ as implied by the\nvery name Christian.  If you say you believe in your head but do not feel in\nyour heart, what does that say of your belief?\n\n|> White Supremisists and\n|> Neo-Nazis may not be your brand of Christian, but by believing in Christ,\n|> they are Christian.\n|>\n\nWhite supremists and Neo-Nazis are NOT any brand of Christian.\n\n\"If you hate your whom you can see then how can you love God whom you cannot\n see?\"\n\nWhat does this belief entail?  Believing in Christ and having your sins\nforgiven in His name does NOT give a Christian a free licence to sin.  To\nrepent of a sin is to ask forgiveness of that sin and TRY NOT to do it\nagain.  I am a Christian, but if you lump me in with racists and accuse me\nof being such, then are you not pre-judging me?  BTW, I am of Chinese racial\nbackground and I know what it is to be part of a visible minority in this\ncountry.  I don't think that I would be favourably looked upon by these\nWhite supremist \"Christians\" as you call them.\n\nAnyone can say what they believe, but if they don't practice what they preach,\nthen their belief is false.  Do you concur?\n \n|> Now, for your original statement:\n|> : |> : What bothers me most is why people who have no religious affiliation \n|> : |> : continue to persecute Jews?  Why this hatred of Jews?  The majority of\n|> : |> : people who persecute Jews are NOT Christians (I can't speak for all \n|> : |> : Christians and there are bound to be a few who are on the anti-Semitism\n|> : |> : bandwagon.)\n|> \n|> You imply here that it is predominately atheists and agnostics who\n|> persecute Jews.  I am hard pressed to think of even an example of Jewish\n|> persecution in the hands of atheists/agnostics.\n\nNazis and racists in general are the ones that come to my immediate attention.\nWhat I believe is that such people may be using the bible to mask their racial\nintolerance and bigotry.  They can do as they do and hide behind Christianity\nbut I tell you that Jesus would have nothing to do with them.\n\n|> About the only one that\n|> comes to mind would be in the former Soviet Union, where many religious\n|> people suffered some sort of persecution (not to mention many\n|> atheist/agnostics who suffered persecution for believing the government\n|> sucked).\n|> \n\nNo arguement there.\n\n|>\n|> Rob Lanphier\n|> lanph872@uidaho.edu\n|> \n\nThe only point I'm trying to make is that those who call themselves Christian\nmay not be Christian.  I ask that you draw your own conclusions by what they\ndo and what they say.  If they are not modelled after the example of Jesus\nChrist then they are NOT Christian.  If they have not repented of their sins\nand accepted Jesus Christ as their personal Lord and Saviour then they are \nNOT Christian.  These are the only criteria to being a Christian.\n\nMay God be with you,\n\nMalcolm Lee   :)\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8138, "properties": {"category": "sci.space", "text": "From: todd@phad.la.locus.com (Todd Johnson)\nSubject: Re: Vandalizing the sky.\nOrganization: Locus Computing Corporation, Los Angeles, California\nLines: 28\n\nIn article <C5t05K.DB6@research.canon.oz.au> enzo@research.canon.oz.au (Enzo Liguori) writes:\n;From the article \"What's New\" Apr-16-93 in sci.physics.research:\n;\n;........\n;WHAT'S NEW (in my opinion), Friday, 16 April 1993  Washington, DC\n;\n;1. SPACE BILLBOARDS! IS THIS ONE THE \"SPINOFFS\" WE WERE PROMISED?\n;What about light pollution in observations? (I read somewhere else that\n;it might even be visible during the day, leave alone at night).\n;Is NASA really supporting this junk?\n;Are protesting groups being organized in the States?\n;Really, really depressed.\n;\n;             Enzo\n\nI wouldn't worry about it.  There's enough space debris up there that\na mile-long inflatable would probably deflate in some very short\nperiod of time (less than a year) while cleaning up LEO somewhat.\nSort of a giant fly-paper in orbit.\n\nHmm, that could actually be useful.\n\nAs for advertising -- sure, why not?  A NASA friend and I spent one\ndrunken night figuring out just exactly how much gold mylar we'd need\nto put the golden arches of a certain American fast food organization\non the face of the Moon.  Fortunately, we sobered up in the morning.\n\n<todd>\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8139, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: was:Go Hezbollah!\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 133\n\nIn article <Apr15.175334.72079@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n>\n>It is NOT a \"terrorist camp\" as you and the Israelis like \n>to view the villages they are small communities with kids playing soccer\n>in the streets, women preparing lunch, men playing cards, etc.....\n>SOME young men, usually aged between 17 to 30 years are members of\n>the Lebanese resistance.  Even the inhabitants of the village do not \n>know who these are, they are secretive about it, but most people often\n>suspect who they are and what they are up to.  These young men are\n>supported financially by Iran most of the time.  They sneak arms and\n>ammunitions into the occupied zone where they set up booby traps\n>for Israeli patrols.  Every time an Israeli soldier is killed or injured\n>by these traps, Israel retalliates by indiscriminately bombing villages\n>of their own choosing often killing only innocent civilians.  \n\nThis a \"tried and true\" method utilized by guerilla and terrorists groups:\nto conduct operations in the midst of the local populace, thus forcing the\nopposing \"state\" to possible harm innocent civilians in their search or,\nin order to avoid the deaths of civilians, abandon the search. Certainly the\npeople who use the population for cover are *also* to blaim for dragging the\ninnocent civilians into harm's way.\n\nAre you suggesting that, when guerillas use the population for cover, Israel\nshould totally back down? So...the easiest way to get away with attacking\nanother is to use an innocent as a shield and hope that the other respects\ninnocent lives?\n\n>If Israel insists that\n>the so called \"Security Zone\" is necessary for the protection of \n>Northern Israel, than it will have to pay the price of its occupation\n>with the blood of its soldiers.  \n\nYour damn right Israel insists on some sort of \"demilitarized\" or \"buffer\"\nzone. Its had to put up with too many years of attacks from the territory\nof Arab states and watched as the states did nothing. It is not exactly\nsurprizing that Israel decided that the only way to stop such actions is to \ndo it themselves.\n\n>If Israel is interested in peace, than it should withdraw from OUR land.  \n\nWhat? So the whole bit about attacks on Israel from neighboring Arab states \ncan start all over again? While I also hope for this to happen, it will\nonly occur WHEN Arab states show that they are *prepared* to take on the \nresponsibility and the duty to stop guerilla attacks on Israel from their \nsoil. They have to Prove it (or provide some \"guaratees\"), there is no way\nIsrael is going to accept their \"word\"- not with their past attitude of \ntolerance towards \"anti-Israel guerillas in-residence\".\n>\n>I have written before on this very newsgroup, that the only\n>real solution will come as a result of a comprehensive peace\n>settlement whereby Israel withdraws to its own borders and\n>peace keeping troops are stationed along the border to insure\n>no one on either side of the border is shelled.\n\nGood lord, Brad. What in the world goves you the idea that UN troops stop\nanything? They are ONLY stationed in a country because that country allows\nthem in. It can ask them to leave *at any time*; as Nasser did in '56 and\n'67. Somehow, with that \"limitation\" on the troops \"powers\" I don't\nthink that Israel is going to be any more comfortable. Without a *genuine* commitment to peace from the Arab states, and concrete (not intellectual or political exercises in jargon) \"guarantees\" by other parties, the UN is worthless\nto Israel (but, perhaps useful as a \"ruse\"?).\n\n>This is the only realistic solution, it is time for Israel to\n>realize that the concept of a \"buffer zone\" aimed at protecting\n>its northern cities has failed.  In fact it has caused much more\n>Israeli deaths than the occasional shelling of Northern Israel\n>would have resulted in.  \n\nPerhaps you are aware that, to most communities of people, there is\nthe feeling that it is better that \"many of us die fighting\nagainst those who attack us than for few to die while we silently \naccept our fate.\" If,however, you call on Israel to see the sense of \nsuffering fewer casualties, I suggest you apply the same to Palestinian,\nArab and Islamic groups.\n\n>If Israel really wants to save some Israeli lives it would withdraw \n>unilaterally from the so-called \"Security Zone\" before the conclusion\n>of the peace talks.  Such a move would save Israeli lives,\n>advance peace efforts, give Israel a great moral lift, better Israel's \n>public image abroad and give it an edge in the peace negociations \n>since Israel can rightly claim that it is genuinely interested in \n>peace and has already offered some important concessions.\n>Along with such a withdrawal Israel could demand that Hizbollah\n>be disarmed by the Lebanese government and warn that it will not \n>accept any attacks against its northern cities and that if such a\n>shelling occurs than it will consider re-taking the buffer zone\n>and will hold the Lebanese and Syrian government responsible for it.\n\nFrom Israel's perspective, \"concessions\" gets it NOTHING...except the \nrealization that it has given \"something\" up and now *can only \nhope* that the other side decides to do likewise. Words *can be taken\nback* by merely doing so; to \"take back\" tangible items (land,\ncontrol of land) requires the sort of action you say Israel should\nstay away from.\n \nIsrael put up with attacks from Arab state territories for decades \nbefore essentially putting a stop to it through its invasion of Lebanon.\nThe entire basis of that reality was exactly as you state above: 1) Israel \nwould express outrage at these attacks and protest to the Arab state \ninvolved, 2) that state promptly ignored the entire matter, secure \nin the knowledge that IT could not be held responsible for the acts \ncommitted by \"private groups\", 3) Israel would prepare for the next \nround of attacks. What would Israel want to return to those days (and\ndon't be so idiotic as to suggest \"trust\" for the motivations of\npresent-day Arab states)?\n\n>There seems to be very little incentive for the Syrian and Lebanese\n>goovernment to allow Hizbollah to bomb Israel proper under such \n>circumstances, \n>\nAh, ok...what is \"different\" about the present situation that tells\nus that the Arab states will *not* pursue their past antagonistic \npolicies towards Israel? Now, don't talk about vague \"political factors\"\nbut about those \"tangible\" (just like that which Israel gave up)\nfactors that \"guarantee\" the responsibility of those states. Your\nassessment of \"difference\" here is based on a whole lot of assumptions,\nand most states don't feel confortable basing their existence on that\nsort of thing.\n\n>and now the Lebanese government has proven that it is\n>capable of controlling and disarming all militias as they did\n>in all other parts of Lebanon.\n>\n>Basil\n\nIt has not. Without the support, and active involvement, of Syria,\nLebanon would not have been able to accomplish all that has occurred.\nOnce Syria leaves who is to say that Lebanon will be able to retain \ncontrol? If Syria stays thay may be even more dangerous for Israel.\n>  \nTim\n\nYour view of this entire matter is far too serenely one-sided and\nselectively naive.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8140, "properties": {"category": "sci.med", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Quack-Quack (was Re: Candida(yeast) Bloom, Fact or Fiction)\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 69\n\nIn article rind@enterprise.bih.harvard.edu (David Rind) writes:\n\n>Do you believe that any quacks exist?  How about quack diagnoses?  Is\n>being a \"licensed physician\" enough to guarantee that someone is not\n>a quack, or is it just that even if a licensed physician is a quack,\n>other people shouldn't say so?  Can you give an example of a\n>commonly diagnosed ailment that you think is a quack diagnosis,\n>or have we gotten to the point in civilization where we no longer\n>need to worry about unscrupulous \"healers\" taking advantage of\n>people.\n\n\nI would say there are also significant numbers of unscrupulous doctors (of\nthe squeaky-clean, traditional crew-cut, talk to the AMA before starting\nany treatment, kind) who recommend treatments that, though \"accepted\", may\nnot be necessary for the patient at the time.  And all for making a quick\nbuck.  I would not be surprised if the cost of medical services in the U.S. is\nsignificantly inflated by these \"quacks of a different color\".  In fact, I'd\nsay these doctors are the most dangerous since they call into question the\ntrue focus of the medical profession.  The AMA and the Boards should focus\non these \"quacks\" instead of devoting unbelievable energy on 'search-and-\ndestroy-missions' to pull the licenses of those doctors who are trying non-\ntraditional or not fully accepted treatments for their desperate patients\nthat traditional/accepted medicine cannot help.\n\n\n***************************************************\nNow to make a general comment on many recent posts:\n***************************************************\n\nLately I've seen the word \"quack\" bandied about recklessly.  When a doctor or\ndoctor-wanna-be has decided to quit discussing any controversial medical\nsubject in a civilized manner, all he/she has to do is say \"quack-quack\" and\nsomehow they magically expect the readership of this newsgroup to roll over\non their backs and pee-pee on themselves in obedience.  What do they teach\nyou in medical school - how to throw your authority around?\n\nLet me put it another way to make my point clear:  \"quack\" is a nebulous word\nlacking in any precision.  Its sole use is to obfuscate the issues at hand.\nThe indiscriminate use of this word is a sure sign of incompetency;  and coming\nfrom any medical doctor (or wanna-be), where competency is expected, is real\nscary.\n\nBut what do I know, I've already been diagnosed by the sci.med.gods in this\nnewsgroup as being 'anal retentive', and 'psychotic'.  I look forward to more\nnet.diagnoses.  Hey, they're free.\n\n\nJon \"Quacks 'R Us\" Noring\n\n\n(p.s., may I suggest - seriously - that if the doctors and wanna-be-doctors on\nthe net who refuse to have an open mind on alternative treatments and\ntheories, such as the \"yeast theory\", should create your own moderated group.\nYou can call it sci.med.traditional.moderated or sci.med.AMA-approved, so you\ncan keep anal-retentives like me out of it.)\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8141, "properties": {"category": "sci.electronics", "text": "From: jkaidor@synoptics.com (Jerome Kaidor)\nSubject: Re: electronic odometers (was: Used BMW Qu\nReply-To: jkaidor@synoptics.com\nOrganization: SynOptics Communications, Santa Clara CA\nLines: 31\nNntp-Posting-Host: picasso.synoptics.com\n\n\n    Just a few comments about the feasability of zipping up a bunch of miles\non your electronic odometer with an oscillator....\n\n    I wouldn't expect to be able to do this.  Not because the engineers at BMW are\nputting in anti-fraud logic, but just because an automobile is a noisy, hostile\nenvironment for electronics, and I would expect the software to be conservative.\n\n   If I were to design a microprocessor-based odometer/speedometer program,\nit would have the following features ( just off the top of my head ):\n\n         * Debouncing/deglitching  ( Is this a real pulse, or just a glitch? )\n         * Smoothing:  The rate-of-change of speed cannot be too high:\n                                This is a car, not an electron.\n         *  Top speed limit:  Anything above 200MPH is ridiculous: must be\n                                        electrical noise or contact bounce\n\n    As for getting in and presetting the pins:  if this is the circuit board out of\na BMW dashboard, I seem to remember a single big chip with lotsa pins in the\nmiddle of the card.  Good luck getting at the counter :-).\n\n    I wouldn't expect a high input frequency to damage the meter:  remember, it's\nprobably damped so it can't move too fast, and is probably protected.  After all,\na car is an extremely hostile place for delicate electronics;  there used to be an\napp note in the National Semiconductor Linear Databook that went into this\nin good detail.\n\n                               - Jerry Kaidor ( tr2!jerry@dragoman.com, jkaidor@synoptics.com )\n\n\n                                  - Jerry Kaidor\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8142, "properties": {"category": "sci.electronics", "text": "From: gunnarh@dhhalden.no (GUNNAR HORRIGMO)\nSubject: Re: How to the disks copy protected.\nLines: 25\nNntp-Posting-Host: pc109\nOrganization: Ostfold College\n\nIn article <sehari.735331566@marge.ecss.iastate.edu> sehari@iastate.edu (Babak Sehari) writes:\n\n>I was wondering, what copy protection techniques are avaliable, and how\n>effective are they?  Has anyone have any experience in this area?\n>\n>                      With highest regards,\n>                           Babak   Sehari.\n\nOne of the easiest, and really very used ways of copyprotection, is to mark \na specific sector on the installation disk bad. This is very easy to get \naround, though, if you have any knowledge of hw-hacking, but most 'normal' \nusers (yes those lowly key-punchers) don't. Whatever you do, please do \n_not_ use a hardware key. These were very popular a few years ago, and they \nSTINK!!\n\nMAIL-mail: gunnarh@sofus.dhhalden.no    SNAIL-mail: Gunnar Horrigmo\n           gunnarh@fenris.dhhalden.no               Oskleiva 17\n                                                    N-1772 Norway\n----------------------------------------------------------------------\nDisclaimer: The above posting may seem like insignificant rubbish at \nfirst glance, but if you read between the lines, you will be \nsurprised to discover the annals of Burt Bacharach, world peace, \nOxford Advanced Readers Dictionary, quantum physics made easy, and an \neasy-to-use step-by-step walkthrough on how to make a time travelling \ndevice that actually works.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8143, "properties": {"category": "sci.crypt", "text": "From: \"Jon C. R. Bennett\" <jb7m+@andrew.cmu.edu>\nSubject: Ideas on Clipper\nOrganization: Robotics Institute, Carnegie Mellon, Pittsburgh, PA\nLines: 92\nNNTP-Posting-Host: andrew.cmu.edu\n\n\nI have an idea as to why the encryption algorithm needs to be keep secret,\nand some things that i think it implies. (Of course these could all be\nwrong.....) \n\nfrom \n\n                     THE CLIPPER CHIP: A TECHNICAL SUMMARY\n                               Dorothy Denning\n                           Revised, April 21, 1993\n\n.\n.\n.\n\nThe Clipper Chip contains a classified single-key 64-bit block\nencryption algorithm called \"Skipjack.\"  The algorithm uses 80 bit keys\n(compared with 56 for the DES) and has 32 rounds of scrambling\n(compared with 16 for the DES).  It supports all 4 DES modes of\noperation.  The algorithm takes 32 clock ticks, and in Electronic\nCodebook (ECB) mode runs at 12 Mbits per second.\n\nEach chip includes the following components:\n\n   the Skipjack encryption algorithm\n   F, an 80-bit family key that is common to all chips\n   N, a 30-bit serial number (this length is subject to change)\n   U, an 80-bit secret key that unlocks all messages encrypted with the chip\n\n.\n.\n.\n\nENCRYPTING WITH THE CHIP\n\nTo see how the chip is used, imagine that it is embedded in the AT&T\ntelephone security device (as it will be).  Suppose I call someone and\nwe both have such a device.  After pushing a button to start a secure\nconversation, my security device will negotiate an 80-bit session key K\nwith the device at the other end.  This key negotiation takes place\nwithout the Clipper Chip.  In general, any method of key exchange can\nbe used such as the Diffie-Hellman public-key distribution method.\n\nOnce the session key K is established, the Clipper Chip is used to\nencrypt the conversation or message stream M (digitized voice).  The\ntelephone security device feeds K and M into the chip to produce two\nvalues:\n\n   E[M; K], the encrypted message stream, and \n   E[E[K; U] + N; F], a law enforcement field , \n\nwhich are transmitted over the telephone line.  The law enforcement\nfield thus contains the session key K encrypted under the unit key U\nconcatenated with the serial number N, all encrypted under the family\nkey F.  The law enforcement field is decrypted by law enforcement after\nan authorized wiretap has been installed.\n\n------------------\n\nsuppose i knew how the algorithm worked and knew the N for my chip, but\ndid not know F, then by cryptanalysis i might be able to determine F from\nif law enforcement field \n   E[E[K; U] + N; F]\nnot knowing N would might make this much harder.\n\nNow suppose that I know F, (either legitimately or not),\nIf I know K (either because I am involved in the conversation, or I know U\nfor a party in the conversation), I may now be able to determine U for the\nother party.\n\nIf I know F I can also defeat the law enforcement field, since I could\nmake my own, with a different K then the one I am using. Knowing F also\nallows traffic analysis to be performed. So I might not know what you are\nsaying but I could know who you are saying it too.\n\nNow I admit that someone trying to compute U will not have lots of\nmessages to work from, but since we have no way of knowing that the key\ngeneration method does not (deliberately?) generate weak keys, or for that\nmatter that the published method is in fact used, perhaps the U's will be\nchosen from know weak keys for the system.\n\nObviously the compromise of F would be a disaster, both to law enforcement\nfor whom this whole thing is designed, and for the people who believe that\nit is giving them security. F is but one number, and I sure that alot of\npeople (more then 1) know what it is (and if some \"panel of experts\" is\ngoing to check it over for flaws then many more will know F, forget\ngrinding chips, bribery and blackmail work just fine.\n\nSo, am I wrong? Or are these problems.\n\njon\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8144, "properties": {"category": "misc.forsale", "text": "From: mmchugh@andy.bgsu.edu (michael mchugh)\nSubject: Rolling Stones 45 rpm singles for sale\nKeywords: Rolling Stones 45 rpm singles\nOrganization: Bowling Green State University B.G., Oh.\nLines: 17\n\n\nI have the following 45 rpm singles for sale. Most are collectable 7-inch \nrecords with picture sleeves. Price does not include postage which is $1.21 \nfor the first record, $1.69 for two, etc.\n\n\nRolling Stones|19th Nervous Brakdown (London Picture Sleeve)|$10\nRolling Stones|Jumpin Jack Flash (London Picture Sleeve)|$10\nRolling Stones|Mothers Little Helper (London Picture Sleeve)|$10\nRolling Stones|Paint It, Black (London Picture Sleeve)|$10\n\n\nIf you are intereste, please contact:\n\nMichael McHugh\nmmchugh@andy.bgsu.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.387+0000", "event": "documents", "entityId": 8145, "properties": {"category": "talk.politics.mideast", "text": "From: warren@itexjct.jct.ac.il (Warren Burstein)\nSubject: Re: How many Mutlus can dance on the head of a pin?\nArticle-I.D.: itexjct.2579\nOrganization: ITEX, Jerusalem, Israel\nLines: 23\n\nIn <1993Apr5.211146.3662@mnemosyne.cs.du.edu> jfurr@nyx.cs.du.edu (Joel Furr) writes:\n\n>I dunno, Warren.  Just the other day I heard a rumor that \"Serdar Argic\"\n>(aka Hasan Mutlu and Ahmed Cosar and ZUMABOT) is not really a Turk at all,\n>but in fact is an Armenian who is attempting to make any discussion of the\n>massacres in Armenia of Turks so noise-laden as to make serious discussion\n>impossible, thereby cloaking the historical record with a tremendous cloud\n>of confusion.  \n\nBut what is Hasan B. Multu's middle name?  I'm not sure, but I heard\nit was \"Bibo\".  I also seem to recall that \"Argic\" is Azari for \"bites\nthe wax Macedonian\".\n\nWe don't have a mail address, but how about finding a snail address?\nThen instead of quashing Shergold rumors, we could just redirect them\n- Ahmed Cosar is a seven year old Greek boy with an incurable case of\ncrossposting.  His wish is to get into the Usenet Book of World\nRecords for having the highest noise to signal ratio.\n-- \n/|/-\\/-\\      \n |__/__/_/    \n |warren@     \n/ nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8146, "properties": {"category": "rec.sport.hockey", "text": "From: huot@cray.com (Tom Huot)\nSubject: Re: Goodbye, good riddance, get lost 'Stars\nLines: 20\nNntp-Posting-Host: pittpa.cray.com\nOrganization: Cray Research Inc.\nX-Newsreader: TIN [version 1.1 PL8]\n\nStephen Lawrence (s4lawren@sms.business.uwo.ca) wrote:\n:         Goodbye Minnesota,...you never earned the right to have an NHL \n: franchise in the first place!\n:         Hope you enjoy your Twin city wide mania for HIGH SCHOOL HOCKEY\n: (hey, by the way my old pee wee team is having a reunion in Regina, care \n: to come up and film the event?)\n:         Yee haa Golden Gophers\n: Whatta weird town!!!!!\n\n: s4lawren@sms.business.uwo.ca (Stephen Lawrence)\n: Western Business School  --  London, Ontario\n\nThis is the second posting of this kind from an idiot at a business \nschool in Canada. What is your problem up there anyway? Is this what \nthey teach you in business school in Canada?\n--\n_____________________________________________________________________________\nTom Huot        \t\t\t       \nhuot@cray.com \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8147, "properties": {"category": "sci.electronics", "text": "From: tomb@hplsla.hp.com (Tom Bruhns)\nSubject: Re: Looking for 900MHz Spread Spectrum Modules\nOrganization: HP Lake Stevens, WA\nLines: 12\n\nbutts@shocker.ee.twsu.edu (Ronald W. Butts, Jr.) writes:\n\n>I am looking for suppliers of 900MHz spread spectrum radio modules. I need \n>to implement a two-way audio band link (essentially the guts of a cordless \n>900MHz phone is what I want.)\n\nThis isn't exactly audio, but take a look in \"RF Design\" magazine,\nApril 93, for the article \"A Robust Signaling Technique for Part 15\nRF Control Netowrk Applications.\"  Page 29.  Sources of parts are\nmentioned; in the same issue is an article that features a chipset\nfor the Digital European Cordless Telecommunications standard.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8148, "properties": {"category": "sci.med", "text": "From: ab961@Freenet.carleton.ca (Robert Allison)\nSubject: Frequent nosebleeds\nReply-To: ab961@Freenet.carleton.ca (Robert Allison)\nOrganization: The National Capital Freenet\nLines: 18\n\n\nI have between 15 and 25 nosebleeds each week, as a result of a genetic\npredisposition to weak capillary walls (Osler-Weber-Rendu). Fortunately,\neach nosebleed is of short duration.\n\nDoes anyone know of any method to reduce this frequency? My younger brothers\neach tried a skin transplant (thigh to nose lining), but their nosebleeds\nsoon returned. I've seen a reference to an herb called Rutin that is\nsupposed to help, and I'd like to hear of experiences with it, or other\ntechniques.\n-- \nRobert Allison\nOttawa, Ontario CANADA\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8149, "properties": {"category": "sci.electronics", "text": "From: cph@dmu.ac.uk (Chris Hand)\nSubject: Re: PC Based Layout Program\nOrganization: De Montfort University, Leicester, UK\nLines: 26\nX-Newsreader: TIN [version 1.1 PL8]\n\nFrank Hielscher (hielsche@aragorn.CSEE.Lehigh.Edu) wrote:\n: The PADS*.ZIP files contain subdirectories, and have to be unzipped\n: via \"pkunzip -d\". Then an xcopy /s to three floppies creates the disks\n: needed to do the install.\n\nI'm still not sure how this is supposed to work, since the .ZIP files\ntook up about 2.5Mb, so it must be a tight squeeze on those floppies...\n\nHowever, I managed to install PADS and I'm pretty impressed.  I created\na couple of schematics without problem, but whenever I try to \ncreate a PCB layout from one of *my* circuits (rather than the demos)\nit doesn't work.  I'm wondering if maybe a file isn't where it should\nbe...\n\nCan anyone who has a printed manual comment on whether the registration\nfee is worth paying?\n\n\nChris\n\n\n-- \nChris Hand, Lecturer                Internet mail: cph@dmu.ac.uk\nDept of Computing Science,          Voice: +44 533 551551 x8476\nDe Montfort University, The Gateway,  Fax: +44 533 541891  FIDOnet: 2:440/32.50\nLEICESTER, UK   LE1 9BH             >> Linux: *free* unix for IBM PCs! <<\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8150, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ejbehr@rs6000.cmp.ilstu.edu (Eric Behr)\nSubject: Buying a high speed v.everything modem\nArticle-I.D.: rs6000.1993Apr20.001127.4928\nReply-To: behr@math.ilstu.edu (Eric Behr)\nOrganization: Central Illinois Surfing Club\nLines: 26\n\nJust a quick summary of recent findings re. high speed modems. Top three\ncontenders seem to be AT&T Paradyne, ZyXEL, and US Robotics. ZyXEL has the\nbiggest \"cult following\", and can be had for under $300, but I ignored it\nbecause I need something with Mac software, which will work without any\ntweaking.\n\nThe AT&T Dataport earns nearly unanimous praises for reliability. They are\nbackordered at the moment, probably because of the special $299 price in\neffect until May. Its fax capabilities are worse than that of the other two\nmodems. WARNING: AT&T ads say that the modem comes with a Mac kit (cables &\nall), and has lifetime warranty. This applies *only* when you order\ndirectly from Paradyne! I called ElekTek (one of the distributors), and\nthey wanted to charge me $16 for cable, and gave only 1 year warranty...\n\nUSR Sportster for the Mac is also highly (but not as highly) recommended;\nit's only $250 from ClubMac, and if you are willing to roll your own cable\nand don't care about the FAXstf software, you can get the generic model\nfrom PC outlets for $190.\n\nAll this assuming that you don't have a rich uncle, and can't afford a\nMotorola Codex...  :-(    I ended up ordering the Dataport; we'll see how\nit works in two weeks or so.\n\n-- \nEric Behr, Illinois State University, Mathematics Department\nbehr@math.ilstu.edu   or   behr@ilstu.bitnet  (please avoid!)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8151, "properties": {"category": "talk.politics.misc", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: EIGHT MYTHS about National Health Insurance (Pt II)\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 156\n\nv140pxgt@ubvmsb.cc.buffalo.edu (Daniel B Case) writes:\n>gld@cunixb.cc.columbia.edu (Gary L Dare) writes...\n>>The difference in the litigation environment is reflected in the fees.\n>> \n>>Lack of defensive medicine and near-absence of malpractice is really\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n>>why we spend less using the most expensive approach of pure insurance\n>~~~~~~~~~~~~~~~~~~\n>\n>And maybe that's not such a good thing. I also read somewhere that\n>it is next to impossible in Canada to litigate against the health \n>system-class action suits are nearly impossible, and you can't sue\n>the provincial health officials at all.\n\nSince our doctors are private and the \"system\" is just an insurance\nplan, litigation would not involve the insurance fund.  Our lawyers\ndo not work on contingency, so that if you were to sue for malpractice\nthen you'd better be sure of winning to cover your fees ... likewise,\nif you were a doctor and subject of a suit, it's time to sweat.\n\n>>Since the provincial wings of the CMA are the ones that go to bat when\n>>the fee schedule hikes are presented, the politically-bent doctors\n>>were just cackling when they realized the CMA would grow in strength\n>>rather than diminish, especially when unopposed unlike in socialized\n>>medicine approaches like Britain's National Health Service.\n>\n>Oh no. Don't let the AMA know about this. They have enough power as it \n>is. Ask most Americans whether they'd like the doctors' lobby to get \n>more powerful.\n\nA few weeks ago, the president of the Canadian MA wrote a letter to\nthe NYT to decry a lobbyist's advert repeating the same old trash.\nThis is significant because the AMA and the CMA are interlinked\norganizations and he would not have done it without the approval \nof his AMA cronies.\n\n>Well, yeah, tell us about the National Defense Medical Centre outside\n>Ottawa.  Theoretically it's limited to service personnel, but some\n>studies I've heard about have suggested that about half the patients\n>there are civilians who not only have connections but aren't \"urgent\"\n>at all.\n\nIt serves the same purpose as the Bethesda Naval Hospital ... since\nnot all hospitals can provide everything, maybe they have some stuff\nthat others don't?  (Ottawa's population is only a quarter million,\nif you include the surrounding counties.)\n\n>The problem is, in a system where hospitals' annual budgets are\n>>approved by the government, how do you keep political considerations\n>out of medical decisions?  I bet that if you're an MP or MPP, or good\n>friends with one, you're put on any hospital's \"urgent\" care list no\n>matter how minor your problem. Which is OK unless you're someone who\n>gets bumped off the list for some bigshot.\n\nPeople of influence will get their way in any system, American or\nEuropean.  It's the \"Golden Rule\" - he who has the gold makes the\nrules. (-;\n\nAs for annual budgets, those are actually annual grants for facilities\n(e.g., mops, pans, etc.) given to hospitals of which most are private\nnonprofit foundations (btw, I have no problem with having aggressive\nfor-profit hospitals like the French, who use our approach ... but in\nthe Paris region they have almost as many people as Canada does so\ntheir market is much more diverse).  The rest has to be made up for\nby billings from patients who use their services.\n\n>>>WOULDN'T NATIONAL HEALTH INSURANCE MEAN THAT AMERICANS WHO ARE NOW  \n>>>FULLY INSURED MIGHT HAVE TO SETTLE FOR LESS?  \n>>>\n>>>In Canada, provincial insurance covers all health costs except dental  \n>>>care, eyeglasses, prescription drugs, ambulance service, and private  \n>>>hospital rooms, -- so many Canadians do end up buying some private  \n>>>insurance. A policy to cover all of these things runs about #40 to $40  \n>>>a month.  \n>\n>Hmm. How much difference would it make in the figure of percentage \n>of GNP spent on health care if dentistry and optometry were included \n>in the accounting?   Maybe Canada spends proportionately just as much \n>on health care as we do.\n\nThe GDP figures are combined public and private expenditures for total\noutlay, and  are compiled use the same methods by the OECD that yield \nthe 13-14% figure for the U.S.\n\n>So what happens if the health care systems financially collapse.\n\nHow?  They are collecting premiums ... and I'm an advocate of having\ncopayments like the French do in their system in order to make it look\nmore like the real insurance that it is.  The private doctors and \nhospitals will still be there after the insurance (hypothically)\ndisappears, as they were there before it appeared.\n\n>Bob Rae, the second least popular man in Ontario, warned Ontarians a\n>few years ago that if they didn't stop cross-border shopping in such\n>huge numbers, \"the services they expect from the province just won't\n>be there in a few years\"\n\nFor one thing, I think that Bob Rae is an idiot ...\n\n>He didn't say so, but I knew he meant the OHIP.\n\nMost of OHIP comes from separate premiums on your paycheck if you are\na player ...  he wants to spend our money on other things than the\nhealth insurance.  Our high taxes are high for other spending but\nhealth insurance, which is separate and optional, and it is being \nspent in a nonpartisan manner by every party. )-;\n\nOHIP is just a health insurance plan; it does not provide any kind\nof health care, that is up to you and your private doctors.\n\n>Would the private insurers take up the slack? They'd be under no\n>obligation to. Of course, they could eventually make money again, \n>but if what you say is true, they'd be loathe to do so (and out of\n>practice in handling such basic services, too).\n\nSome of the companies providing extra insurance are subsidiaries of\nAmerican companies, and their parents provide full insurance down\nhere.  Regardless, all firms up north can easily turn on cable TV\nto see how well the American firms are doing by being involved in\nbasic coverage.  The private firms are making too much money after\nhaving gotten rid of basic coverage.  They run around patting them-\nselves on the back for their own cooperation in providing extras \nfor those people who \"deserve it\".\n\n>>When private insurance realized how much money they'd make without the\n>>risks involved in basic insurance (e.g., neurosurgery) versus deluxe\n>>amenities (e.g., having to call Granada TV to replace a rental set on\n>>the fritz in someone's private hospital room), they started to pat\n>>themselves on the back for their social responsibility.  In Quebec\n>>last spring, a consortium of private insurers publicly warned against\n>>any thoughts of privatizing routine, low cost parts of that province's\n>>public health insurance plan.\n>\n>Again, I doubt Americans would like giving the insurance companies that\n>much power. I half wonder if the Canadian health insurers didn't go \n>along with the provinces and the federal government years ago because\n>they knew that there was a good chance of the public system going bust\n>in the long run, and then afterwards they could clean up (Okay, this \n>sort of contradicts what I said higher up. But it's another possibility).\n>They'd have an added bonus when arguing against government\n>involvement in their industry-as they could then point to its failure\n>instead of just citing theoretical principles.\n\nI agree ... they were in a win-win situation.  But right now, it seems\nthat they have won bigger, when you look at how full their coffers\nare.  Friends from my sisters' MBA class were still being flown out\nfor job interviews individually with insurance firms in London, ON,\n(Canada's insurance capitol a la Hartford) along with generous expense\nprivileges this year despite the ongoing post-recession blues.\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8152, "properties": {"category": "rec.sport.baseball", "text": "From: wilbanks@spot.Colorado.EDU (Kokopeli)\nSubject: Re: Old Predictions to laugh at...\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 35\n\ntedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n\n\n>From jpalmer@uwovax.uwo.ca Thu Sep 12 10:35:58 1991\n>>\n\n>>Ron Hassey will be a minor league manager with the Yankees.\n\n>Dunno what happened to him.\n\nMaybe I can help you. He's a major league coach with the Rockies.\nSo above prediction is doubly wrong.\n\nMy prediction: The Red Sox-Cubs Series and Vikings-Broncos SuperBore will\noccur at the end of the world.\n\nAnd one Rockie will finish in the top 10 of an offensive catagory this \nyear.\n\nAnd no Rockie starter will have an ERA below 3.50.\n\nAnd the Rangers fade will not begin until...August. They'll give way\nto the Angels. But still challenge to the end.\n\nReally. Not making any of this up. If I am, may God strike me down *ZZZZZZT*\n\n>------------------------------------------------------------------------------\n\n>Thanks for listening!\n>-Valentine\n-- \nDylan Wilbanks, Environ. Con : The official USENET rabid fan of the \nmajor, U of Colorado, Boulder: Colorado Rockies. Clip this .sig for \nPO Box 1143, Boulder, CO     : 20% off on your next Rockies woof!!!\n80306-1143. Life is bigger.  : (this space intenionally blank)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8153, "properties": {"category": "alt.atheism", "text": "From: davec@silicon.csci.csusb.edu (Dave Choweller)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: California State University, San Bernardino\nLines: 45\nNntp-Posting-Host: silicon.csci.csusb.edu\n\nIn article <1qif1g$fp3@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>In article <1qialf$p2m@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>|In article <1qi921$egl@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n[stuff deleted...]\n>||> To the newsgroup at large, how about this for a deal: recognise that what \n>||> happened in former Communist Russia has as much bearing on the validity \n>||> of atheism as has the doings of sundry theists on the validity of their \n>||> theism.  That's zip, nada, none.  The fallacy is known as ad hominem, and \n>||> it's an old one. It should be in the Holy FAQ, in the Book of Constructing\n>||> a Logical Argument :-)\n>|\n>|Apart from not making a lot of sense, this is wrong.   There\n>|is no \"atheist creed\" that taught any communist what to do \"in\n>|the name of atheism\".   There clearly are theistic creeds and\n>|instructions on how to act for theists.    They all madly\n>|conflict with one another, but that's another issue.\n>\n>Lack of instructions on how to act might also be evil.\n\nThat's like saying that, since mathematics includes no instructions on\nhow to act, it is evil.  Atheism is not a moral system, so why should\nit speak of instructions on how to act?  *Atheism is simply lack of\nbelief in God*.\n\n  Plenty of theists\n>think so.   So one could argue the case for \"atheism causes whatever\n>I didn't like about the former USSR\" with as much validity as \"theism\n>causes genocide\" - that is to say, no validity at all.\n\nI think the argument that a particular theist system causes genocide\ncan be made more convincingly than an argument that atheism causes genocide.\nThis is because theist systems contain instructions on how to act,\nand one or more of these can be shown to cause genocide.  However, since\nthe atheist set of instructions is the null set, how can you show that\natheism causes genocide?\n--\nDavid Choweller (davec@silicon.csci.csusb.edu)\n\nThere are scores of thousands of human insects who are\nready at a moment's notice to reveal the Will of God on\nevery possible subject.          --George Bernard Shaw.\n-- \nThere are scores of thousands of human insects who are\nready at a moment's notice to reveal the Will of God on\nevery possible subject.          --George Bernard Shaw.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8154, "properties": {"category": "talk.religion.misc", "text": "From: bskendig@netcom.com (Brian Kendig)\nSubject: Re: 14 Apr 93 God's Promise in 1 John 1: 7\nOrganization: Starfleet Headquarters: San Francisco\nLines: 19\n\nbrian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615) writes:\n>\n>Consider your mother Merlyn.  You know your mother.  What would you think\n>of me if I asserted that your mother is 9 feet tall, murdered your father,\n>and sexually abused you when you were a kid?\n\nI would just go fetch my parents, and show them to you, and thereby\nprove quite definitively that my mother is not named Merlyn, she is\nnot nine feet tall, and my father is quite alive.\n\nThen I would assert quite simply that your deity does not exist, and\nwait for a similar demonstration from you.\n\n-- \n_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n_/_/                            n'etre fait comme aucun de ceux qui existent.\n  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n /    is that it ends.                                           -- Rousseau\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8155, "properties": {"category": "sci.crypt", "text": "From: tcmay@netcom.com (Timothy C. May)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: Tin 1.1 PL5\nDistribution: na\nLines: 25\n\nDave Ihnat (ignatz@chinet.chi.il.us) wrote:\n: In article <1qpg8fINN982@dns1.NMSU.Edu> amolitor@nmsu.edu (Andrew Molitor) writes:\n: >\tNot to pick on Mr. May in particular, of course, but isn't this\n: >kind of the domino theory? When one little country falls, its neighbor\n: >will surely follow, and before you know it, we're all mining salt\n: >in Siberia for not turning in our Captain Crunch Secret Decoder Rings.\n: \n: But, for all the wrongness of our attempt to correct it (VietNam, et. al.),\n: the domino theory wasn't disproved at all.\n\nIronically, the domino theory in fact *was* a reasonable metaphor for\nthe collapse of communism, from the liberalizations in Poland and\nHungary to the border crossings in the summer of '89 to the fall of\nthe Wall later that year....and then to the ultimate collapse of the\nUSSR.\n\n-Tim May\n-- \n..........................................................................\nTimothy C. May         | Crypto Anarchy: encryption, digital money,  \ntcmay@netcom.com       | anonymous networks, digital pseudonyms, zero\n408-688-5409           | knowledge, reputations, information markets, \nW.A.S.T.E.: Aptos, CA  | black markets, collapse of governments.\nHigher Power: 2^756839 | Public Key: PGP and MailSafe available.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8156, "properties": {"category": "rec.motorcycles", "text": "From: car377@cbnewsj.cb.att.com (charles.a.rogers)\nSubject: Re: Riceburner Respect\nOrganization: AT&T\nSummary: Subtlety, subtlety\nLines: 12\n\nIn article <oXZ12B1w164w@cellar.org>, craig@cellar.org (Saint Craig) writes:\n> No anyone who is a \"true\" rider with the real riding attitude will offer a\n> wave, weather they are on a Harley or on a Honda or some other bike, inless\n> they have a serious case of my bike is better than your and you're too low\n> to be acknowleged. \n\nI may not wave:  I just wink at you with one eye.  'Course, it's hard to see\nthat through a shield and sunglasses, but hey, if you're a \"true rider with \nthe real riding attitude,\" you'll sense it.  \n\nChuck Rogers\ncar377@torreys.att.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8157, "properties": {"category": "sci.electronics", "text": "From: ptorre@hardy.u.washington.edu (Phil Torre)\nSubject: Circuit Cellar Ink address?\nOrganization: University of Washington, Seattle\nLines: 2\nDistribution: na\nNNTP-Posting-Host: hardy.u.washington.edu\nSummary: Address or phone number for subscriptions?\n\nIs CCI still published?  If so, does anyone have their address?\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8158, "properties": {"category": "rec.sport.hockey", "text": "From: ferguson@cs.rochester.edu (George Ferguson)\nSubject: Re: ABC coverage\nReply-To: ferguson@cs.rochester.edu (George Ferguson)\nOrganization: University of Rochester Hockey Science Dept.\nDistribution: usa\n\n\nIn article <9454@blue.cis.pitt.edu> ccohen@pitt.edu (Caleb N Cohen) writes:\n>   Boy - everyone has been ripping on ESPN's hockey coverage (or is it just\n>Pittsburgher's who are thrilled with Lange & Steigy?)  For all of you\n>who are unaware -> ESPN bought the air time from ABC and did all the \n>production, advertising sales, commentating, etc -> and even \n>reaped any $ made...\n\nIn the interests of saving badnwidth during this \"heated\" time of the\nyear (viz. the early flurry of \"retard\" comments coming from a certain\nstate whose name starts with P and ends with A), why don't you tell us\nsomething we don't already know?\n\nGeorge\n-- \nGeorge Ferguson                 ARPA: ferguson@cs.rochester.edu\nDept. of Computer Science       UUCP: rutgers!rochester!ferguson\nUniversity of Rochester         VOX:  (716) 275-2527\nRochester  NY  14627-0226       FAX:  (716) 461-2018\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8159, "properties": {"category": "soc.religion.christian", "text": "From: noye@midway.uchicago.edu (vera shanti noyes)\nSubject: Re: tuff to be a Christian?\nReply-To: noye@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 75\n\nIn article <Apr.17.01.10.58.1993.2246@geneva.rutgers.edu> mdbs@ms.uky.edu (no name) writes:\n>bissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n\n>>same.  Hey we can't do it, God himself inspires us to turn our lives \n>>over to him.  That's tuff and most people don't want to do it, to be a \n>\t\t\t\t^^^^^^^^^^^^^^^\n>>real Christian would be something for the strong to persevere at.  But \n>\n>\tSo you think it is easy to be a Muslim? Or be a Buddhist?\n[good points on buddhism, etc. deleted]\n\njust because one says christianity -- true christianity -- is hard to\nfollow faithfully does NOT mean that one discounts the validity and\ndifficulty of other religions.  i admire those of any religion who are\nwilling to make the kind of sacrifices and dedicate themselves\nspiritually in the way you are talking about. \n\n[more deleted]\n>And perhaps some more. But leave the crap in it out (\"woman was created\n>after man, to be his helper\" etc).\n\ndo you think this is what christianity is all about?  not all\nchristians believe in this particular story literally.  it sounds\nabove like you are supporting a policy of \"to each his own\" -- here is\nanother example of that.  if it helps someone's faith to take every\nword of the bible literally, i support and respect that, too.\n\n>>time.  We don't rush it in one day, Christianity is your whole life.  \n>>It is not going to church once a week, or helping poor people once in \n>>a while.  We box everything into time units.  Such as work at this \n>>time, sports, Tv, social life.  God is above these boxes and should be \n>\n>\tWhen ever I turn on my TV there is this Pat Robertson and\n>other brain washers (Oh boy, what an act they put on!) with an\n>1-800 number to turn in your pledges.\n>God it seems is alive and well inside these boxes.\n\nplease don't judge all of christianity by one man.  the only man one\ncan truly judge all of christianity by is jesus (makes sense, right?).\n\ni think his point about how we put our lives into little boxes is very\ntrue -- what does your comment about robertson have to do with that?\n\n>>carried with us into all these boxes that we have created for \n>>ourselves.  \t  \n\n>\tParting Question:\n>\t\tWould you have become a Christian if you had not\n>been indoctrinated by your parents? You probably never learned about\n>any other religion to make a comparative study. And therefore I claim\n>you are brain washed.\n\ni was raised agnostic -- my father was never baptised and was raised\natheist.  he is not an atheist because he found a close-mindedness\npresent in the viewpoint of his parents equal to the close-mindedness\nhe found in the viewpoint of the christians he came in contact with.\nthus i was _free_ to choose how to live my life, and he supported the\ndecision i made to join the episcopal church, although he emphasized\nto me that his respect for my beliefs should result in my not\nintruding on his beliefs, ie, i should not try to convert him, as that\nis his decision.  (please, no flames or advice on how to convert him!)\none of my good friends is hindi and i greatly respect her\nbeliefs and the culture surrounding her religion.  my best friend is\njewish and i have always held a profound resepct for the jewish\nreligion (chaim potok and isaac bashevis singer are two of my favorite\nauthors).  i really do not think you can make that kind of\ngeneralization about how christians choose -- and i do mean CHOOSE--\ntheir faith.  if they have not consciously accepted the faith in their\nadult lives (which is what confirmation represents), THEN you can talk\nabout their being brainwashed.\n\nvera\n\"if you choose not to decide,\nyou still have made a choice!\"\n\t- rush, \"freewill\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8160, "properties": {"category": "sci.electronics", "text": "From: borowski@spk.hp.com (Don T. Borowski)\nSubject: Re: help - how to construct home-built battery for 3rd grade sci report\nDistribution: usa\nOrganization: Hewlett-Packard\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 20\n\nDean Anneser (anneser@pwa-b.uucp) wrote:\n: My 9 yr old son has signed up to do a science report on batteries.  I was\n: wondering if anyone could provide me with some information as to how to\n: construct a home-built battery.  In my grade school days, I remember seeing\n: the 'ice cube tray' version, but I don't remember what to use as a good\n: electrolyte or what the easily obtainable metals were.  \n: \n: Thank you in advance.\n \nI remember watching a whole \"Mr. Wizzard\" program on this subject when\nI was a kid.  The battery constructed on the program which made the \nbiggest impression on me, and generated the most power, was made using\na galvanized bucket (for the zinc) and a copper toilet tank float.  The\nelectrolyte was sauerkraut!\n\n\nDonald Borowski    WA6OMI    Hewlett-Packard, Spokane Division\n\"Angels are able to fly because they take themselves so lightly.\"\n                                       -G.K. Chesterton\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8161, "properties": {"category": "sci.med", "text": "From: rind@enterprise.bih.harvard.edu (David Rind)\nSubject: Re: Thrush (was: Good Grief! (was Re: Candida Albicans: what is it?)\nOrganization: Beth Israel Hospital, Harvard Medical School, Boston Mass., USA\nLines: 24\nDistribution: world\nNNTP-Posting-Host: enterprise.bih.harvard.edu\n\nIn article <21APR199308571323@ucsvax.sdsu.edu> mccurdy@ucsvax.sdsu.edu\n (McCurdy M.) writes:\n>My dentist (who sees a fair amount of thrush) recommended acidophilous:\n>After I began taking acidophilous on a daily basis, the outbreaks ceased.\n>When I quit taking the acidophilous, the outbreaks periodically resumed. \n>I resumed taking the acidophilous with no further outbreaks since then.\n\nThis is the second post which seems to be blurring the distinction\nbetween real disease caused by Candida albicans and the \"disease\"\nthat was being asked about, systemic yeast syndrome.\n\nThere is no question that Candida albicans causes thrush.  It also\nseems to be the case that active yogurt cultures with acidophilous\nmay reduce recurrences of thrush at least for vaginal thrush -- I've \nnever heard of anyone taking it for oral thrush before (though \npresumably it would work by the same mechanism).\n\nCandida is clearly a common minor pathogen and a less common major\npathogen.  That does not mean that there is evidence that it causes\nthe \"systemic yeast syndrome\".\n\n-- \nDavid Rind\nrind@enterprise.bih.harvard.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8162, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: root@zeos.com (Superuser)\nSubject: ZEOS VESA Video Changes & Specs\nOrganization: Zeos International, Ltd\nLines: 61\n\n\nAs most of you know, we have recently changed our standard VESA local-bus\nvideo card from our own NCR-based card to the new Diamond Stealth 24 VLB card\nfor packages 2, 3, and 4 (package #1 still has the NCR \"screamer').  We also have\nadded the $149 upgrade from the Stealth 24 or NCR to the Diamond Viper to our\nproduct list.  Below are the comparisons of the different cards in the\nconfigurations we will offer:\n\n                     NCR              Stealth 24 VLB        Viper VLB\n64Ox480 Colors       16,256           16,256,32K,64K,16.7M 16,256,32K,64K,16.7M *\n8OOx6OO Colors       16,256           16,256,32K,64K        16,256,32K,64K *\n1024x768 Colors      16,256           16,256                16,256\n1280x1024 Colors     16               16                    16\nVideo Processor      NCR 77C22E+      S3 86C805             Weitek Power 9000\nVideo RAM            1M               1M                    1M\nMax RAM addressable\n  by Vid Processor   3M               2M                    2M\nRAM Type             DRAM             DRAM                  VRAM\nUser RAM Upgrade?    No (no sockets)  No (no sockets)       Yes (thru\nDiamond)\n64Ox480 Refresh      60-72 Hz         60-72   Hz            60-72   Hz\n8OOx6OO Refresh      56-72 Hz         56-72   Hz            56-72   Hz\n1024x768 Refresh     44-70 Hz         43-72   Hz            43-72   Hz\n128Oxl024 Refresh    43 Hz            43-60   Hz            43-74   Hz\n26 pin VESA\n  Feature Connector  No               Yes                   No \nConflict with x2E8\n  port addr (COM4)   No               YES*                  No*\nDrivers for:\n  Win 3.1            Yes              Yes                   Yes\n  ACad    9/10/11    Yes              Yes                   Yes\n  ACad 12            No               Yes**                 Yes**\n  VESA               Yes              Yes                   Yes\n  OS/2,     WinNT    NO***            NO***                 NO***\nWin 3.1 WINMARKS     10.5M****        21 M****              50M****\n\n\n^L\n*    Viper VLB with 2M of video RAM also gives 8OOx6OO 16.7M, 1024x768 32K &\n     64K, and 1280xl 024 256 color.  S3-based cards, since they are downward\n     compatible, will have the conflict with 2E8.  Diamond admits conflict will\n     exist with the Stealth 24.  The prelim Viper manual incorrectly lists the \n     S3 port addresses.  No conflict. \n\n\n**   AutoCAD 12 drivers are now currently available for Stealth, SpeedSTAR\n     24X, Stealth 24 VLB, and Viper VLB.  They can only be obtained from\n     Diamond Tech Support, 408-736-2000 and NOT on any BBS. \n\n**   OS/2 2.0 is supported for Standard VGA for all cards.  SVGA drivers\n     available in the near future.  Windows NT is not released yet, and no\n     drivers are available currently.  Diamond hopes to have all current\n     products supported in the Win NT release, on the NT disks.\n\n***  NCR testing is coming from tests ran in our tech support department was \n    at ZEOS at 1024x768x256 on Zeos DX2-66. These results are not official.\n    Diamond results are from their own DX2-66, 1024x768 256 colors @ 7OHz \n    refresh.\n\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8163, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mark.seltzer@rose.com (mark seltzer)\nSubject: ALR ProVeisa\nX-Gated-By: Usenet <==> RoseMail Gateway (v1.70)\nOrganization: Rose Media Inc, Toronto, Ontario.\nLines: 12\n\nIf anyone has any experience with the ALR ProVEISA 486DX2 system I would \nbe interested to hear your impressions of it, and of ALR in general.\n\nThank you.\n\n/mark\n\n\n\n---\n * WinQwk 2.0b#108 * Mark Seltzer,28 Ravina Cres,Toronto,Ont M4J 3M1,Canada.\n   RoseMail 2.10 : RoseNet<=>Usenet Gateway : Rose Media 416-733-2285\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8164, "properties": {"category": "rec.sport.baseball", "text": "From: gotribe@cbnewse.cb.att.com (richard.g.barry)\nSubject: Re: Reds Without Sleeves (was Re: New Uniforms)\nArticle-I.D.: cbnewse.1993Apr6.220115.16282\nOrganization: AT&T\nLines: 21\n\nIn article <1993Apr6.204514.2180@adobe.com>, snichols@adobe.com (Sherri Nichols) writes:\n> In article <12805@news.duke.edu> fierkelab@bchm.biochem.duke.edu (Eric Roush) writes:\n> >\n> >\n> >Am I the only person who thinks the Reds sleeveless uniforms are\n> >ugly?  Yet another reason why they won't win the NL West! ;)\n> \n\n> If uniforms really were a deciding factor in pennant races, the '79 Pirates\n> would have never won anything; those have to be the ugliest uniforms I've\n> ever seen, particular the all-yellow set.\n> \n> Sherri Nichols\n> snichols@adobe.com\n> \n\nMy vote goes for the ('75?) Indians with their all-red uniforms.\nBoog Powell once said he felt like a big red blood clot.\n\nRich Barry\nbarry@ihlpe.att.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8165, "properties": {"category": "rec.autos", "text": "From: david@ganglion.ann-arbor.mi.us (David Hwang)\nSubject: Re: SHO and SC\nOrganization: D.J. Services\nLines: 21\n\nIn article <5214@unisql.UUCP> wrat@unisql.UUCP (wharfie) writes:\n>In article <chrissC587qB.D1B@netcom.com> chriss@netcom.com (Chris Silvester) writes:\n>\n>>WAGON, which I have heard is somehow slightly faster than the Coupe.\n>\n>\tWagon has an automatic, it's slower.\n>\nCould be due to the rear-end ratio also.  \n\nUsually automatics have different rear-ends than manuals, from\nmy limited experience anyways.\n\nDavid\n>\n>\n\n\n-- \nDavid W. Hwang, M.D.           //    University of Michigan Medical School\n1050 Wall Street, Suite 10C   //           Telephone: 313/663-5557\nAnn Arbor, Michigan 48105    //    Internet: david@ganglion.ann-arbor.mi.us\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.388+0000", "event": "documents", "entityId": 8166, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ryanph@mrl.dsto.gov.au\nSubject: Re: SE rom\nOrganization: Defence Science and Technology Organisation\nLines: 45\nNNTP-Posting-Host: mrl.dsto.gov.au\n\nGosh, I wish people would read the postings that they are 'following up' to.\n\nIn article <C5pMsv.Jtp@wyvern.wyvern.com>, dashley@wyvern.wyvern.com (Doug Ashley) writes:\n> seanmcd@ac.dal.ca writes:\n> \n>>In article <wgwC5pDL4.43y@netcom.com>, wgw@netcom.com (William G. Wright) writes:\n>>> \n>>> \tAnyway, I was hoping someone knowledgeable\n>>> about Mac internals could set me straight: is it simply\n>>> impossible for a mac SE to print grayscale, or could\n>  \t\n>>To use the grayscale features, I believe you need a Mac equipped\n>>with colour quickdraw. I was told this somewhere or other, but it's\n> \n> I think you will find that the Mac SE can PRINT grayscale images, loaded\n> with the proper software. However, the Mac SE cannot DISPLAY grayscale on\n\nThe original poster (W G Wright) posted an item saying that he had bought a new\nwizz-bang Laser Printer from Apple (a Select 300 I think) which can print\nGrayScale. He then said that he CANNOT PRINT GRAYSCALE from his SE computer\n(and also that all the 'experts' he has dealt with agree that it is not\npossible).\n\nThis is the one major bugbear about doing a 3rd party SE upgrade (compared to\nApple's SE to SE/30 upgrade): you will never be able to run Color Quickdraw. It\nis Color Quickdraw that controls Color AND Grayscale.\n\nSEs CAN print some COLOUR: this is because Quickdraw - the original, non-colour\nversion, has the right hooks for eight colours. Some of you will remember the\n'SCSIgraph' solution to getting a colour screen for your SE (I think that it\ngave you sixteen colours by dithering or something).\n\nThere is no reason that Apple couldn't release software patches for older\ncomputers (there are lots of Mac Pluses, Classics and SEs that have been\nupgraded to 68020 and 68030 processors which should be perfectly able to deal\nwith Color Quickdraw) - but they wont, and 3rd parties are having a difficult \ntime in duplicating the Mac's ROMs (i.e. Nutek et al.).\n\nJust one Caveat: I would have thought that if you were printing a POSTSCRIPT\nGrayscale image onto a POSTSCRIPT Grayscale printer, that you would be able to\ndo so, whatever Mac you were using. (And I am pretty sure that the Select 300\nis NOT a POSTSCRIPT printer [? correct me if I'm wrong?]).\n\nPhil Ryan\nMelbourne, Australia\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8167, "properties": {"category": "comp.graphics", "text": "Subject: [ANNOUNCE] Ivan Sutherland to speak at Harvard\nFrom: eekim@husc11.harvard.edu (Eugene Kim)\nDistribution: harvard\nOrganization: Harvard University Science Center\nNntp-Posting-Host: husc11.harvard.edu\nLines: 21\n\nThe Harvard Computer Society is pleased to announce its third lecture of\nthe spring.  Ivan Sutherland, the father of computer graphics and an\ninnovator in microprocessing, will be speaking at Harvard University on\nTuesday, April 20, 1993, at 4:00 pm in Aiken Computations building, room\n101.  The title of his talk is \"Logical Effort and the Conflict over the\nControl of Information.\"\n\nCookies and tea will be served at 3:30 pm in the Aiken Lobby.  Admissions\nis free, and all are welcome.\n\nAiken is located north of the Science Center near the Law School.\n\nFor more information, send e-mail to eekim@husc.harvard.edu.\n\nThe lecture will be videotaped, and a tape will be made available.\n\nThanks.\n\n-- \nEugene Kim '96                     |   \"Give me a place to stand, and I will\nINTERNET: eekim@husc.harvard.edu   |    move the earth.\"        --Archimedes\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8168, "properties": {"category": "rec.motorcycles", "text": "From: mcguire@cs.utexas.edu (Tommy Marcus McGuire)\nSubject: Re: Countersteering_FAQ please post\nOrganization: CS Dept, University of Texas at Austin\nLines: 36\nDistribution: world\nNNTP-Posting-Host: cash.cs.utexas.edu\n\nIn article <1qmetg$g2n@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n[...]\n>horse's neck in the direction you wish to go.  When training a\n>plow-steering horse to neck-rein, one technique is to cross the reins\n>under his necks.  Thus, when neck-reining to the left, the right rein\n           ^^^^^\n[...]\n>Ed Green, former Ninjaite |I was drinking last night with a biker,\n[...]\n\n\nGiven my desire to stay as far away as possible from farming and ranching\nequipment, I really hate to jump into this thread.  I'm going to anyway,\nbut I really hate it.\n\nEd, exactly what kind of mutant horse-like entity do you ride, anyway?\nDoes countersteering work on the normal, garden-variety, one-necked horse?\n\nObmoto:  I was flipping through the March (I think) issue of Rider, and I\nsaw a small pseudo-ad for a book on hand signals appropriate to motorcycling.\nIt mentioned something about a signal for \"Your passenger is on fire.\"  Any\nbody know the title and author of this book, and where I could get a copy?\nThis should not be understood as implying that I have grown sociable enough\nto ride with anyone, but the book sounded cute.\n\n\n\n\n-----\nTommy McGuire\nmcguire@cs.utexas.edu\nmcguire@austin.ibm.com\n\n\"...I will append an appropriate disclaimer to outgoing public information,\nidentifying it as personal and as independent of IBM....\"\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8169, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: An Anecdote about Islam\nOrganization: sgi\nLines: 15\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <114127@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n|> \n|> I don't understand the point of this petty sarcasm. It is a basic \n|> principle of Islam that if one is born muslim or one says \"I testify\n|> that there is no god but God and Mohammad is a prophet of God\" that,\n|> so long as one does not explicitly reject Islam by word then one _must_\n|> be considered muslim by all muslims. So the phenomenon you're attempting\n|> to make into a general rule or psychology is a direct odds with basic\n|> Islamic principles. If you want to attack Islam you could do better than\n|> than to argue against something that Islam explicitly contradicts.\n\nThen Mr Mozumder is incorrect when he says that when committing\nbad acts, people temporarily become atheists?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8170, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: impster@umcc.umcc.umich.edu (Charles Budensiek)\nSubject: Re: Leading Edge Computer-Buy?\nOrganization: UMCC, Ann Arbor, MI\nLines: 49\nNNTP-Posting-Host: umcc.umcc.umich.edu\n\nIn article <1993Apr18.023428.17605@cronkite.ocis.temple.edu> u083s121@astro.ocis.temple.edu (cis083 sec001 spr93) writes:\n>\n>  I saw the following computer in a store and wanted to know if this is a good\n>computer or does someone see something wrong with it.  I also would like to\n[stuff deleted]\n>\n>      Leading Edge- Model PC4170E\n>\n>      * Intel 486SX/25 Mhz CPU\n>      * Supports Intel OverDrive clock-Doubling Processors(What is this?)\n>      * Upgradable to 486DX2/66\n>      * 4 MB RAM upgradable to 32 MB\n>      * 8 KB internal cache\n>      * 1.2 MB 5 1/4\" & 1.44 MB 3.5\" Disk Drives \n>      * 213 MB Hard Drive\n>      * 1024 x 768 VGA Video Resolution\n>      * 1 MB Video RAM 256 Colors\n>      * 6 Available 16-bit ISA expansion Slots\n>      * One local bus socket (16-bit ISA Compatible)\n>      * 4 5.25\" drive bays, 3 external\n>      * One 25-pin Centronics type parallel port\n>      * 2 RS-232C Serial Ports (9 & 25 pin)\n>      * One 15-pin analog video connector\n>      * One PS/2 Compatible mouse port\n>      * 200 Watt power supply\n>      * 101 key keyboard and mouse included\n>      * Software includes Windows 3.1, Dos 5.0, Microsoft Works for Windows\n>\n>      The store wants $1200 (without monitor) for this.  Is it a good price?\n>\n>      Thanks!\n>\n\nI recently bought a Leading Edge 80386DX-33 <mini tower case> and everything\nworks fine. Leading Edge seems to be a decent brand and what-not. I would\ntend to say that it is a decent deal. The only things you might want to be\nwary about is that my L.E. computer has a back-plane mounted motherboard.\nIe: The motherboard itself is a card that can be plugged in to a backplane.\nSome people don't like these configurations. The second thing is that\nwhoever set up my computer at the factory didn't really know what they were\ndoing. The installed windows video driver didn't even take advantage of the\nSVGA card/Monitor. Look forward to configuring the system optimally\nyourself.\n\n-- \n=============================================================================\n| \"Anyone have a coat hanger? My brain itches.\" | impster@umcc.ais.org\n| \"If I was a turnip, would I be revered and    | Charles Budensiek\n| \"worshipped like I would deserve to be?\"      | ph #: Ask if you want it.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8171, "properties": {"category": "rec.motorcycles", "text": "From: jpolito@sysgem1.encore.com (Jonathan Polito)\nSubject: Re: Aerostitch:  1- or 2-piece?\nOrganization: Encore Computer Corp.\nDistribution: rec\nIn-Reply-To: na4@vax5.cit.cornell.edu's message of 14 Apr 93 14:40:15 EST\nNntp-Posting-Host: sysgem1.encore.com\nLines: 41\n\n\nIn article <1993Apr14.144015.18175@vax5.cit.cornell.edu> na4@vax5.cit.cornell.edu writes:\n\n   Request for opinions:\t\n\n   Which is better - a one-piece Aerostitch or a two-piece Aerostitch?\n\n\n   We're looking for more than \"Well, the 2-pc is more versatile, but the \n   1-pc is better protection,...\"\t\n\n   Thanks in advance,\n   Nadine\n\n\nWhat is best? Books have been written on that! But in regard to\nAeroStich it really depends on your particular size, shape and needs.\nIf you upper and lower body are not proportional (according to aero\ndimensions) then it probably is going to be better mixing and matching\nthe 2 piece suit. I have the 2 piece suit and I am very happy with it.\nHaving my life quota of scars from crashing off road, I am very\nconcerned with good protection and I believe that the difference in\nprotection between the 1 and 2 piece suits is almost negligible. I\nthink the optional hip pads and back protector make much more of a\ndifference. One thing that is nice about the 2 piece is if you go\nsomewhere and then want to walk around for a while (still with jacket)\nyou can just detach and stow the pants. \n\nOne thing to note is that Goldfine has problems getting a good fit for\nmany women (with standard suits). Supposedly for smaller women (and\npetite men for that matter) the 1 piece will fit better. \n\nAnother recommendation is to pay for mods if you need them. I wish I\ngot 2-3 inches added to my pant legs. I find the Long suits are not\nreally that long (I can't imagine how short the standard suits must\nbe). \n\n--\nJonathan E. Polito \t\t    Internet: jpolito@encore.com\nEncore Computer Corp, 901 Kildaire Farm Rd, Cary, NC  27511  USA\n919-481-3730/voice  \t\t\t\t919-481-3868/FAX\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8172, "properties": {"category": "talk.politics.guns", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: My Gun is like my....\nLines: 88\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <1993Apr16.194708.13273@vax.oxford.ac.uk> jaj@vax.oxford.ac.uk writes:\n\n>What all you turkey pro-pistol and automatic weapons fanatics don't seem to\n>realize is that the rest of us *laugh* at you. You don't make me angry, you\n>just make me chuckle \n\n       That's nice.  We strive for entertainment value.  :-)     \n\n>- I remeber being in Bellingham, Washington and seeing a\n>pick-up truck in front of the car that my friend and I were in. It had a bumper\n>sticker proclaiming \"Gun Control is a firm grip on a .45.\" Now I'm sure that\n>that wanker thought he was pretty cool.\n>What he didn't realize was that we took a photo of the back of his truck, and\n>showed it to our friends when we got back to Vancouver,  Canada (where I'm from\n>originally). People were guffawing at the basic stupidity of such a\n>sticker, and the even greater stupidity of the person who put it there in the\n>first place! :)\n\n       In the first place, you have to realize the feeling goes both\nways.  Canadians laugh at the U.S., and Americans simply shrug and\nwoner why the hell we let them be a State in the first place.  ;-)       \n\n>I knew somebody else who went to one of your \"Gun-mart\" superstore places, just\n>so he could experience the sight of people putting guns and ammo into shopping\n>carts! I didn't believe it myself until I drove by one in Vegas last year!!!\n\n       Interesting strategy, posting here with complaints about\npeople elsewhere.\n\n>Now that I live in Britain, I can see how the rest of the civilized world\n>perceives you gun-nut morons. \n\n        Courtesy is apparently a dead commodity in the rest of the\ncivilized world.  \"Gun nut morons,\" indeed.        \n\n>The BBC recently referred to the American \n>penchant for pistols, automatic weapons,etc.  very  appropriately - it was\n>called a \"national eccentricity.\"\n\n        We've got guns, they've got a monarch and an economy on the verg\nof collapse.  Finger pointing across the Atlanticis a waste or time.\n\n>The only problem is that Canada, I hear, is suffering from your national\n>eccentricity, in that easy to purchase weapons are being smuggled cross the\n>border.\n\n       Canada has been blaming the U.S. for their problems for years.\nThe simple fact of the matter is this:  Ten years ago they crowed about\nhow great their system was because they'd gotten rid of the guns and\nthe U.S. would be so much better if they'd just get into the divine light\nshining from the North.  We pointed out that it was cultural differences,\nand pointed to their pre-control crime rates.  We also pointed out that\nthe history of the entire world contained smuggling, and that whenever\nsomething was wanted, it was smuggled in.\n       If the problem were based on U.S. guns, it would have surfaced\nyears before.\n\n       Now more Canadian criminals want guns.  And they are being provided.\nCanada has its own version of the drug problem.  Yet drugs are prohibited\nin the U.S.\n\n>Hell, here in Britain, the cops don't even carry guns. (That's another funny\n>thing - you see a US border guard, and he's got his .45 or .38 on his belt,\n>with tons o' spare ammo - never know, maybe some canadian shopper might get out\n>of hand. Hell, as I recall, in People's Court, even Rusty carried a gun! Never\n>know, some plaintiff might go nuts. :)  )\n\n       Saw a news report out of Britain that armed crime is on the rise,\nand several police agencies are considering have permanent \"firearms\nofficers\" to deal with it.\n\n       According to U.S. News & World Report, British handgun deaths have\nrisen over 250% over the past twelve years.  The U.S. number has dropped\n5%.\n\n       Maybe they're smuggling them across the U.S./U.K. border.  Yeah,\nthat's the ticket.\n\n>CYA!\n\n       Have a nice day, Steve.  Learn a little common courtesy and\npoliteness.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8173, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wil@shell.portal.com (Ville V Walveranta)\nSubject: Re: Fall Comdex '93\nNntp-Posting-Host: jobe\nOrganization: Portal Communications Company\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 20\n\nDLS128@psuvm.psu.edu wrote:\n: Does anyone out there have any info on the up and coming fall comdex '93? I was\n: asked by one of my peers to get any info that might be available.  Or, could\n: anyone point me in the right direction?  Any help would be appreciated.\n\n\tIt's in Las Vegas (as always) between November 16th and 20th.\n \n\tFor more information contact: The Interface Group\n\t\t\t\t      300 First Avenue\n\t\t\t\t      Needham, MA  02194-2722\n\n\tSorry, no phone number available. Consult directory service\n\tin Massachusetts for the number (617, 508 or 413).\n\n\t-- Willy\n--\n   *    Ville V. Walveranta      Tel./Fax....: (510) 420-0729     ****\n   **   96 Linda Ave., Apt. #5   From Finland: 990-1-510-420-0729  ***\n   ***  Oakland, CA  94611-4838  (FAXes automatically recognized)   **\n   **** USA                      Email.......: wil@shell.portal.com  *\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8174, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Observation re: helmets\nFrom: dev2@inform.co.nz (Michael Seales)\nOrganization: InForm Group Ltd.\nLines: 23\n\nIn article <211353@mavenry.altcit.eskimo.com>, maven@mavenry.altcit.eskimo.com (Norman Hamer) writes:\n>  \n>  Grf. Dropped my Shoei RF-200 off the seat of my bike while trying to rock \n> it onto it's centerstand, chipped the heck out of the paint on it...\n\nCONGRAULATIONS !!!! Your helmet just passed the Snell Test.\n \n>  So I cheerfully spent $.59 on a bottle of testor's model paint and \n> repainted the scratches and chips for 20 minutes.\n\nOh well, as least it looks ok now. Still, it may not save your head as well\nas before you dropped it.\n\nMike\n\n###################################################\n# Mike Seales        Yamaha XJ600 (same as FJ600) #\n# Inform Group Ltd.     DoD #0793                 #\n# Level 8 DB Tower                                #\n# 111 The Terrace    Email: homer@inform.co.nz    #\n# Wellington         Phone: 64-4-4720996          #\n# New Zealand          Fax: 64-4-4732407          #\n###################################################\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8175, "properties": {"category": "rec.motorcycles", "text": "From: sprattli@azores.crd.ge.com (Rod Sprattling)\nSubject: Re: Kawi Zephyr? (was Re: Vision vs GpZ 550)\nArticle-I.D.: crdnns.C52M30.5yI\nReply-To: sprattli@azores.crd.ge.com (Rod Sprattling)\nOrganization: GE Corp R&D Center, Schenectady NY\nLines: 31\nNntp-Posting-Host: azores.crd.ge.com\n\nIn article <1993Apr4.135829.28141@pro-haven.cts.com>,\nshadow@pro-haven.cts.com writes:\n|>In <1993Apr3.094509.11448@organpipe.uug.arizona.edu>\n|>asphaug@lpl.arizona.edu (Erik Asphaug x2773) writes:\n|>\n|>% By the way, the short-lived Zephyr is essentially a GpZ 550,\n|>\n|>Why was the \"Zephyr\" discontinued?  I heard something about a problem with\n|>the name, but I never did hear anything certain... \n\nFord had an anemic mid-sized car by that name back in the last decade.\nI rented one once.  That car would ruin the name \"Zephyr\" for any other\nuse.\n\nRod\n---               \nRoderick Sprattling\t\t| No job too great, no time too small\nsprattli@azores.crd.ge.com\t| With feet to fire and back to wall.\n\n\n\n\n\n \n\n\n\n\n\n\n \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8176, "properties": {"category": "misc.forsale", "text": "From: Arthur_Noguerola@vos.stratus.com\nSubject: son of genuine VINYL records 4SALE\nOrganization: Stratus Computer Inc, Marlboro MA\nLines: 14\nNNTP-Posting-Host: m21.eng.stratus.com\n\n          Thank you ALL for requesting my list and thank you again \n          if you purchased  vinyl from me. \n\n          LOTSA MORE VINYL LEFTOVER FOR SALE. \n          VINYL looking for a new home. \n          PLEASE BUY some (more) so I can STOP running this AD. \n\n          Bunches of 12\" vinyl records for sale \n          including a METAL ACETATE!!! NO not heavy metal music) \n          BUT EM ALL and GET AMAZING DEAL... \n          email me for BIG list and details. (Mass, USA) \n\n          arthur_noguerola@vos.stratus.com \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8177, "properties": {"category": "rec.autos", "text": "From: (Eric Youngblood)\nSubject: Re: Old Corvettes / Low insurance?\nReply-To: Peon w/o Email (Eric Youngblood)\nNntp-Posting-Host: crchh435\nOrganization: BNR, Inc.\nLines: 47\n\nIn article <1993Apr15.011805.28485@ns1.cc.lehigh.edu>, swr2@ns1.cc.lehigh.edu (SCOTT WARREN ROSANDER) writes:\n|> In article <C5Csux.Fn1@news.cso.uiuc.edu>, gdhg8823@uxa.cso.uiuc.edu (George Hei\n|> nz) writes:\n|> >After too many years of school I'm finally graduating and getting a real\n|> >job.  Of course I am trying to make plans of how to spend all this extra\n|> >money.  Right now I have an 89 accord, a good car, but not real sporty &\n|> >I was thinking of selling it in about two years and dropping around\n|> >$20k on a sports car of some kind.  After thinking about it, I may have a\n|> >better idea -- I'll keep the Accord until it drops and buy the car I've\n|> >always wanted -- a Corvette Stingray. My reasoning is that $8000 (accord)+\n|> >$8000 (corvette) =$16000 is less than what I would spend anyway.\n|> >\n|> >Basically, I'm thinking of a late 70's, early 80's for around $7-$10k.\n|> >My question is, what are good years to consider (for reliability, looks,\n|> >horsepower -- in that order, believe it or not, horsepower is not a main\n|> >concern, if I want to go fast, I get on my motorcycle) and what are\n|> >good prices?\n|> >\n|> >Also, what would insurance look like?  I'm male, single, 23 (I might\n|> >wait until I'm 25 to get the car = lower insurance). Would the fact that\n|> >I mainly drive the other car lower it?  Is there some type of \"classic\n|> >car\" or \"rarely driven\" insurance class for driving it under 10k miles\n|> >per year?\n|> >\n|>     My dad has a 66 vette and its on what you say 'classic insurance'.\n|>     Basically what that means is that it has restricted amount of driving\n|>     time, which basically means it cant be used as an every day car and would\n|>     probably suit your needs for limited mileage.\n|> -- \n\n\nIn addition to restricted mileage, many classic insurance carriers also require\nthat the vehicle be garaged when not in use.\n\n$0.02\n\nEricy\n\n\n      *---------------------------------+---------------------------*\n      | Eric Youngblood                                             |\n      | Bell-Northern Research    _                                 |\n      | Richardson, Texas 75082 _| ~-                               |\n      |                         \\,  _}                              |\n      |                           \\(    +---------------------------|\n      |                                 |   Peon w/o Email privs    |\n      *---------------------------------+---------------------------*\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8178, "properties": {"category": "sci.crypt", "text": "From: Marc VanHeyningen <mvanheyn@cs.indiana.edu>\nSubject: Re: freely distributable public key cryptography c++ code:  where?\nOrganization: Computer Science Dept, Indiana University\nLines: 43\n\nThus said ee92jks@brunel.ac.uk (Jonathan K Saville):\n>D. Wigglesworth (smhanaes@gpu.utcc.utoronto.ca) wrote:\n>\n>: Do you know of any freely distributable c++ (or c) code for public\n>: key cryptography (such as RSA)?  \n>\n>: I've tried various archie searches to no avail.  \n>\n>Have you heard of PGP? I assume from your post that you have not. PGP 2.2\n>is a freeware RSA encryption program which includes digital signatures and\n>comprehensive key management facilities. Most sites also keep the source code.\n>A growing number of people are using this excellent software to encrypt (to\n>a very high standard) their email and data. Get it before Clinton outlaws it.\n>\n>Two of the many sites are:\n>      rsa.com     /pub/pgp\n>      soda.berkeley.edu      /pub/cypherpunks/pgp\n\nPGP is not available on the archive site rsa.com.  If it were, it\nwould be highly amusing, since rsa.com (actually Public Key Partners,\nbut it's the same entity) is the organization holding the patents\nwhich they claim are violated if you actually \"make, use or sell\" PGP.\nI believe those patents also apply in Canada, but I'm not a patent\nlawyer or anything.\n\nThere is no such thing as freely redistributable code for RSA which\ncan be used in North America without legal entanglements.  You may\nwish to consider RSAREF, however, which *is* available from the FTP\nsite rsa.com in /rsaref but probably doesn't meet your definition of\n\"freely redistributable\" (it's readily available in source, in C, and\ndoes RSA, MD5, etc. and comes with a license allowing noncommercial\nuse.  Like any other strong crypto software, it's not exportable\nlegally.  It can be modified with permission from RSADSI, which a\nnumber of people have received in the past.)  For reasons that aren't\nentirely clear to me, RSA says that only U.S. people should take\nRSAREF from its server, although there aren't ITAR issues regarding\nCanada.  The RIPEM distribution site (ripem.msu.edu) has RSAREF in its\ndistribution, and is OK for Canadians.\n--\nMarc VanHeyningen   mvanheyn@cs.indiana.edu   MIME & RIPEM accepted\n\n\n\"Barney the Dinosaur is simply Rush Limbaugh in a Dinosaur Suit.\"  - Lost Boy\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8179, "properties": {"category": "rec.autos", "text": "From: cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc)\nSubject: Re: WARNING.....(please read)...\nOrganization: University of Illinois at Urbana\nLines: 33\n\ntobias@convex.com (Allen Tobias) writes:\n\n>In article <1993Apr15.024246.8076@Virginia.EDU> ejv2j@Virginia.EDU (\"Erik Velapoldi\") writes:\n>>This happened about a year ago on the Washington DC Beltway.\n>>Snot nosed drunken kids decided it would be really cool to\n>>throw huge rocks down on cars from an overpass.  Four or five\n>>cars were hit.  There were several serious injuries, and sadly\n>>a small girl sitting in the front seat of one of them was struck \n>>in the head by one of the larger rocks.  I don't recall if she \n>>made it, but I think she was comatose for a month or so and \n>>doctors weren't holding out hope that she'd live.\n\n\tThe girl's OK, actually, and she recovered well enough to go home.  I\ndon't know if she has any permanent damage, though.  Just in case anybody was\nconcerned...\n\n>>\n>>What the hell is happening to this great country of ours?  I\n>>can see boyhood pranks of peeing off of bridges and such, but\n>>20 pound rocks??!  Has our society really stooped this low??\n>>\n>>Erik velapold\n\n\tIf people start forcing others to take responsibility for their actions\nthings like this wouldn't happen.  Untill we stop blaming outside causes, and\nstart blaming the criminals, we will continue to let things like this happen.\n\n\n-- \nChintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n******************************Neil Peart, (c)1981*****************************\n*\"Quick to judge, Quick to Anger, Slow to understand, Ignorance and Prejudice*\n*And********Fear********Walk********************Hand*********in*********Hand\"*\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8180, "properties": {"category": "rec.sport.baseball", "text": "From: punjabi@leland.Stanford.EDU (sanjeev punjabi)\nSubject: When does Fred McGriff of the Padres become a free agent?\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 1\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8181, "properties": {"category": "sci.crypt", "text": "From: bob@natasha.portal.com (Bob Cain)\nSubject: Re: Pgp, PEM, and RFC's (Was: Cryptography Patents)\nOrganization: Oce Graphics USA\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 22\n\nCharles Kincy (ckincy@cs.umr.edu) wrote:\n: In article <1993Apr16.001321.3692@natasha.portal.com> bob@natasha.portal.com (Bob Cain) writes:\n: \n: >: I hope my cynicism is misplaced here.  Go ahead...I'm not afraid to\n: >: be wrong every once in a while.  But, I have an uneasy feeling that I\n: >: am right.  :(\n: >\n: >It is and you are wrong yet you emotionally state a bunch of crap as fact\n: >with a tiny disclaimer at the end.  Check your facts first and grow up.\n: >Why is there such a strong correlation between interest in cryptography\n: >and immaturity I wonder.\n: \n: Oh, I see, flame someone, tell them that they are immature, tell them\n: they are wrong, and then don't offer any proof for your assertions.\n: \n: You really *are* a putz.  Put up or shut up.\n: \n\nI will provide any proof you wish in private.  Name it, dickhead.\n\n\nPutz Cain\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8182, "properties": {"category": "soc.religion.christian", "text": "From: 18669@bach.udel.edu (Steven R Hoskins)\nSubject: Some questions from a new Christian\nOrganization: University of Delaware\nLines: 40\n\nHi,\n\nI am new to this newsgroup, and also fairly new to christianity. I was\nraised as a Unitarian and have spent the better part of my life as an\nagnostic, but recently I have developed the firm conviction that the\nChristian message is correct and I have accepted Jesus into my life. I am\nhappy, but I realize I am very ignorant about much of the Bible and\nquite possibly about what Christians should hold as true. This I am trying\nto rectify (by reading the Bible of course), but it would be helpful\nto also read a good interpretation/commentary on the Bible or other\nrelevant aspects of the Christian faith. One of my questions I would\nlike to ask is - Can anyone recommend a good reading list of theological\nworks intended for a lay person?\n\nI have another question I would like to ask. I am not yet affiliated\nwith any one congregation. Aside from matters of taste, what criteria\nshould one use in choosing a church? I don't really know the difference\nbetween the various Protestant denominations.\n\nThanks for reading my post. \n\nSincerely,\n\nSteve Hoskins\n\n[Aside from a commentary, you might also want to consider an\nintroduction.  These are books intended for use in undergraduate Bible\ncourses.  They give historical background, discussion of literary\nstyles, etc.  And generally they have good bibligraphies for further\nreading.  I typically recommend Kee, Froehlich and Young's NT\nintroduction.  There are also some good one-volume commentaries.  They\noften have background articles that are helpful.  Probably the best\nrecommendation these days would be Harper's Bible Commentary.  (I\nthink there may be a couple of books with this title.  This is a\nfairly recent one, like about 1990, done in cooperation with the\nSociety for Biblical Criticism.)  If you are committed to inerrancy,\nyou will probably prefer something more conservative.  I don't read a\nlot of conservative books, but a commentary I looked at by Donald\nGuthrie looked rather good.  He has a NT Introduction, and he's also\neditor of Eerdman's Bible Commentary.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8183, "properties": {"category": "rec.autos", "text": "From: mobasser@vu-vlsi.ee.vill.edu (Bijan Mobasseri)\nSubject: Re: Dumbest automotive concepts of all time\nArticle-I.D.: vu-vlsi.C52FrE.8qF\nOrganization: Villanova University\nLines: 17\n\n>My '66 Ford has vent windows operated by a crank, just like a window \n>(only it opened out, like a normal vent window). My '70 F100, my\n>dad's '84 Bronco, and pretty much every truck I've seen that's \n>worth riding in has vent windows.\n>\n>Does that mean that I'm not a young feller anymore? :-)\n>\n>\t\t\t\tJames\n>\n>James P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \n\nI don't understand the fascination with vent windows. They create a tremendous \nturbulence and noise that makes even a simple connversation impossible at \nspeeds above 40mph. The current flow-throuh ventilation, if designed right, \nare far more superior.\n\nBijan\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8184, "properties": {"category": "sci.crypt", "text": "From: m.t.palmer@larc.nasa.gov (Michael T. Palmer)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: NASA Langley Research Center, Hampton, VA\nLines: 52\nDistribution: inet\nNNTP-Posting-Host: oldtown.larc.nasa.gov\n\n\nIn article <1993Apr21.150815.6657@chpc.org> rboudrie@chpc.org (Rob Boudrie) writes:\n>In article <C5so84.Hxv@demon.co.uk> Graham Toal <gtoal@gtoal.com> writes:\n>>In article <2073@rwing.UUCP> pat@rwing.UUCP (Pat Myrto) writes:\n>>:If the Clinton Clipper is so very good, why not make its algrithm public\n>>:so many people can exchange ideas and examine it, rather than a few\n>>:isolated 'respected experts' (respected by whom?  for what?  Perhaps a\n>\n>One more time...\n>\n>    If they released the algorithm, it would be possible for someone\n>    to come up with an implementation which was identical, but\n>    lacking an escrowed key.\n>\n>    Note that the press announcement mentioned that the algorithm was\n>    being kept secret for security of the key escrow system.  In this\n>    case security means \"an escrowed key for EVERY clipper chip\".\n>\n>\n>    Assuming you believed all that is said about the effective of\n>    the algorithm, and the escrow system, which would you buy :\n>\n>     (a)  Chip from firm A with the escrowed key\n>     (b)  Second source chip from reputable firm B with no key\n>          in government escrow.\n>\n>    There would obviously be powerful economic incentives for a second\n>    source, non escrowed, vendor.\n\nBut what about second sources for pin-compatible non-Clipper algorithm\nchips that also have escrowed keys?  If a \"reputable firm\" produces a\nchip (with escrowed key) that is a pop-in replacement for the Clipper\nchip in my phone, and uses an algorithm that is widely known and evaluated\nand \"trusted,\" then what's the problem?\n\nThe Clipper is going to be reverse engineered anyway by any organization\nwith sufficient resources (can you say \"billions of cocaine dollars?\") so\nthose drug dealers they're so worried about will be slipping through the\ncracks.  We law-abiding (non-incredibly-wealthy) citizens, naturally, will\nnot have this recourse.  But claiming that the algorithm can't be\nreleased to prevent people from using non-key-escrowed chips is plain\ndeceitful... analysis of the chip output will provide information on\nthe necessary headers and whatnot, so the \"bad guys\" could build chips\nusing a *different* algorithm and still not escrow their keys.\n\nOr, they could just buy bunches of cheap phones at K-mart every week,\nand play Swap-the-Clipper-Chip with their cellular phone every day.\n\n\nMichael T. Palmer         |  \"A man is crazy who writes a secret in any\nm.t.palmer@larc.nasa.gov  |   other way than one which will conceal it\nRIPEM key on server       |   from the vulgar.\" - Roger Bacon, 1220-1292\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8185, "properties": {"category": "rec.sport.baseball", "text": "From: paula@koufax.cv.hp.com (Paul Andresen)\nSubject: Re: Let it be Known\nNntp-Posting-Host: koufax.cv.hp.com\nOrganization: Hewlett-Packard Company, Corvallis, Oregon USA\nLines: 15\n\nIn article <93104.233239ISSBTL@BYUVM.BITNET>, <ISSBTL@BYUVM.BITNET> writes:\n|> I would like to make everyone aware that in winning the NL West the Atlanta\n|> Braves did not lead wire-to-wire.  Through games of 4/14/93 the Houston\n|> Astros are percentage points ahead of the \"unbeatable\" Braves.\n\nAnd they deserve to be, if for no other reason than salvaging a little of the\nhonor of the NL West. The supposed strongest division in baseball lost 6 of 7\nto the East yesterday, with only the Astros prevailing.\n--------------------------------------------------------------------------------\n           We will stretch no farm animal beyond its natural length\n\n  paula@koufax.cv.hp.com   Paul Andresen  Hewlett-Packard  (503)-750-3511\n\n    home: 3006 NW McKinley    Corvallis, OR 97330       (503)-752-8424\n                            A SABR member since 1979\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8186, "properties": {"category": "sci.space", "text": "From: shafer@rigel.dfrf.nasa.gov (Mary Shafer)\nSubject: Re: Crazy? or just Imaginitive?\nIn-Reply-To: nsmca@aurora.alaska.edu's message of Thu, 22 Apr 1993 04:54:03 GMT\nOrganization: NASA Dryden, Edwards, Cal.\nLines: 25\n\nOn Thu, 22 Apr 1993 04:54:03 GMT, nsmca@aurora.alaska.edu said:\n\nnsmca> So some of my ideas are a bit odd, off the wall and such, but\nnsmca> so was Wilbur and Orville Wright, and quite a few others..\n\nThis is a common misconception.  There was nothing \"off the wall\"\nabout the Wright Brothers.  They were in correspondance with a number\nof other experimenters (Octave Chanute, Lillienthal, etc), they flew\nmodels, they had a wind tunnel.  In short, they were quite mainstream\nand were not regarded as odd or eccentric by the community.\n\nI suggest you read The Bishop's Boys or the biography by Harry Gates?\nCombs?  (I can never remember which it is--the guy that had the FBOs\nand owned Learjet for a while).  These are both in print and easily\nobtainable.  The Bishop's Boys is in trade paperback, even.\n\nEven better would be the multi-volume set of the Wrights' writings,\nbut this is out of print, rare, and hideously expensive.\n\n\n\n--\nMary Shafer  DoD #0362 KotFR NASA Dryden Flight Research Facility, Edwards, CA\nshafer@rigel.dfrf.nasa.gov                    Of course I don't speak for NASA\n \"A MiG at your six is better than no MiG at all.\"  Unknown US fighter pilot\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8187, "properties": {"category": "talk.politics.mideast", "text": "From: henrik@quayle.kpc.com \nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: NONE\nLines: 67\n\nIn article <1993Apr20.173009.10580@sol.ctr.columbia.edu>, deniz@mandolin.ctr.columbia.edu (Deniz Akkus) writes:\n|> In article <1993Apr20.164517.20876@kpc.com> henrik@quayle.kpc.com writes:\n|> >In article <1993Apr20.000413.25123@ee.rochester.edu>, terziogl@ee.rochester.edu (Esin Terzioglu) writes:\n\nhenrik]  My response to the \"shooting down\" of a Turkish airplane over the \nhenrik]  Armenian air space was because of the IGNORANT posting of the \nhenrik]  person from your Country. Turks and Azeris consistantly WANT to \nhenrik]  drag ARMENIA into the KARABAKH conflict with Azerbaijan. The \nhenrik]  KARABAKHI-ARMENIANS who have lived in their HOMELAND for 3000 \nhenrik]  years (CUT OFF FROM ARMENIA and GIVEN TO AZERIS BY STALIN) are \nhenrik]  the ones DIRECTLY involved in the CONFLICT. They are defending \nhenrik]  themselves against AZERI AGGRESSION. Agression that has NO MERCY \nhenrik]  for INOCENT people that are costantly SHELLED with MIG-23's and \nhenrik]  othe Russian aircraft. \n\nhenrik]  At last, I hope that the U.S. insists that Turkey stay out of the \nhenrik]  KARABAKH crisis so that the repeat of the CYPRUS invasion WILL \nhenrik]  NEVER OCCUR again.\n\nDA] Armenia is involved in fighting with Azarbaijan.  It is Armenian\nDA] soldiers from mainland Armenia that are shelling towns in Azarbaijan.\n\n    Well, this is your opinion ! \n\n    Turkish/ Azeris can BARK all they WANT since the ABOVE is UNTRUE. However, \n    I am sure YOU GUYS would have NEVER brought up ARMENIA's involvement if \n    KARABAKHI-Armenians had had HEAVY losses.\n\n\nDA] You might wish to read more about whether or not it is Azeri aggression\nDA] only in that region.  It seems to me that the Armenians are better\nDA] organized, have more success militarily and shell Azeri towns\nDA] repeatedly.  \n\n\tRead what ? The New York Times , that is publishing anti-armenian\n\tarticles. Nop, I have my resources. Look, everyone knows how aggressive\n        Turks/Azeris have been in the past. Armenians ARE NOT gona sit\n\taround and watch FIRE WORKS by AZERIS taught by TURKS. \n\nDA] It seems to me that the Armenians are better organized, have more success \nDA] militarily and shell Azeri towns repeatedly.  \n\n\tBuch of non-sence CRAP and you know it. Who the hell you think\n        you are talking to ? Azeris are FIGHTING LOCAL ARMENIANS in \n\tNagarno-Karabakh. You tell me who has more MIG's ? Freedom fighters\n        in Nagarno-Karabakh or Azerbaijan ?\n\n\tAgain, I will say it for the last time, ARMENIA is NOT involved\n        in this WAR and you guys WANT to bring this up in order to cover \n        up the Turkish involvment in the Karabakh. Go ahead , REPEAT as \n\tmuch as you want. \n\nDA] I don't wish to get into the Cyprus discussion.  Turkey had the right to\nDA] intervene, and it did.  Perhaps the intervention was not supposed to\nDA] last for so long, but the constant refusal of the Greek governments both\nDA] on the island and in Greece to deal with reality is also to be blamed\nDA] for the ongoing standoff in the region.  \n\n\tNot a chance ! You CAN NOT convince me (based on your REASONS)that \n\tyour GOVERNMENT did the RIGHT thing to invade CYPRUS. \n\nDA] Lastly, why is there not a soc.culture.armenia?  I vote yes for it.\nDA] After all, it is now free.  \n\n\tWell, I am NOT in the position to agree or disadree with you.\n\n\t\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8188, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: Please Help with Purchasing a 486\nNntp-Posting-Host: wind.bellcore.com\nReply-To: jchen@ctt.bellcore.com\nOrganization: Bell Communications Research\nLines: 47\n\nThe last time I was in microprocessor lab was in 1980, using Z-80.\nSo I don't know a lot of buzz terms in PC hardware.\n\nNow I need to purchase a 486, help me to ask the right questions.\n\nMotherboard:\n    I need 486-33 with 8 MB ram, with additonal slot for 8 more MB.\n    I would like to get two VESA Local Bus. One for video, not sure\n    what am I going to do with the other. \n    It must be able to run Unix.\n    \n    What are other questions that I should ask to ensure getting a\n    quality stuff? What are other important features ?\n\n\nMonitor:\n    I want a 14\" non interlaced svga, but not sure about what brand\n    to get. I can't afford NEC or SONY. What brands should I consider?\n    Acer? Touch?\n\n    What else should I ask?\n\nVideo Card: \n    I would like to run Framemaker. So I need a fast video card. Is Western\n    Digital worth the $20 over Cirrus Logic?  Do I need more than 1M of \n    V-RAM?\n\n    One company wanted $50 more for a local bus video card. Is this normal?\n    \n\nHard Drive:\n    Segate, Western Digital, Conner all have the same price. Which one is\n    more liable? which one has better performace?\n\nCase/power supply:\n    Given the choise of desktop and minitower, which one is better?\n    What is the adequate power supply?\n    Is cooling a general problem or a non-issue?\n    What features should I ask for?\n    \nDid I miss anything?\n\nI am sure that there are a lot of semi-PC-literates reading this group.\n\nYour help is greatly appreciated.\n\nJason Chen\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.389+0000", "event": "documents", "entityId": 8189, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: The guy who bad-mouthed Ulf...\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 14\n\nPatrick Walker <F1HH@UNB.CA> writes:\n>\n>If he ever tried some like that on a Yzerman, he'd \n>would have to deal with Probert now wouldn't he?\n\nDo you realize how many smiles are crossing faces after you wrote that?\n(-;\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8190, "properties": {"category": "sci.med", "text": "From: king@reasoning.com (Dick King)\nSubject: How to interview a doctor\nNntp-Posting-Host: drums.reasoning.com\nOrganization: Reasoning Systems, Inc., Palo Alto, CA\nLines: 11\n\n\nMy insurance company encourages annual physicals, and at my age [42] i'm\nthinking that BIannual physicals, at least, might be a good idea.  Therefore,\ni'm shopping for a GP.  Might as well get a good one.\n\nCould the Assembled Net Wisdom suggest things i should look for, or point me to\nthe FAQ archive if on this topic if there is one?  \n\nPlease EMail; i suspect that this topic is real Net Clutter bait.\n\n-dk\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8191, "properties": {"category": "rec.sport.hockey", "text": "From: ddlin@athena.mit.edu (David D Lin)\nSubject: Daigle/Kariya\nOrganization: Massachusetts Institute of Technology\nLines: 2\nDistribution: world\nNNTP-Posting-Host: e51-007-12.mit.edu\n\nI hear Daigle will eb the first pick next year. What is the word on Kariya???\nAnybody ever seen him play on TV???? Is he also entering the draft???\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8192, "properties": {"category": "talk.religion.misc", "text": "From: kde@boi.hp.com (Keith Emmen)\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nOrganization: Hewlett-Packard / Boise, Idaho\nX-Newsreader: Tin 1.1scd1 PL4\nLines: 8\n\nnelson_p@apollo.hp.com (Peter Nelson) writes:\n: \n:   Nut or not, he was clearly a liar.  He said he would surrender after\n:   local radio stations broadcast his message, but he didn't.  Then he\n:   said he would surrender after Passover, but he didn't.\n: \n\nThe FBI said he would surrender.  We don't KNOW what he said.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8193, "properties": {"category": "rec.motorcycles", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Boom! Hubcap attack!\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 21\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, speedy@engr.latech.edu (Speedy Mercer) says:\n\n>I was attacked by a rabid hubcap once.  I was going to work on a Yamaha\n>750 Twin (A.K.A. \"the vibrating tank\") when I heard a wierd noise off to my \n>left.  I caught a glimpse of something silver headed for my left foot and \n>jerked it up about a nanosecond before my bike was hit HARD in the left \n>side.  When I went to put my foot back on the peg, I found that it was not \n>there!  I pulled into the nearest parking lot and discovered that I had been \n>hit by a wire-wheel type hubcap from a large cage!  This hubcap weighed \n>about 4-5 pounds!  The impact had bent the left peg flat against the frame \n>and tweeked the shifter in the process.  Had I not heard the approaching \n>cap, I feel certian that I would be sans a portion of my left foot.\n>\nHmmmm.....I wondered where that hubcap went.\n\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8194, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: 10748539@eng2.eng.monash.edu.au (CHARLES CHOONG)\nSubject: 486/33 WIN3.1 HANG\nLines: 12\nOrganization: Faculty of Engineering, Monash University \n\nHELP, PROBLEM 486/33MHZ HANGS IN EXTENDED MODE TRYING TO\nACCESS DRIVES A: OR B: , SOMETIMES IT WILL DO DIR , SOMETIMES WILL HANG\nON ACCESS SOMETIMES WILL WHEN TYING A TEXT FILE.\n\nHARDWARE:\nAMERICAN MEGATREND MOTHERBOARD\nAMI BIOS 91\nCONNER 85MB HARD DRIVE\nTRIDENT 1 MEG SVGA\n\nPLEASE HELP!!!\nITS OK IN STANDARD MODE!!!\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8195, "properties": {"category": "comp.graphics", "text": "From: mdpyssc@fs1.mcc.ac.uk (Sue Cunningham)\nSubject: Fractals? What good are they ?\nOrganization: Manchester Computing Centre\nLines: 5\n\nWe have been using Iterated Systems compression board to compress \npathology images and are getting ratios of 40:1 to 70:1 without too\nmuch loss in quality. It is taking about 4 mins per image to compress,\non a 25Mhz 486 but decompression is almost real time on a 386 in software \nalone.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8196, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mau@herky.cs.uiowa.edu (Mau Napoleon)\nSubject: RFD: comp.databases.access\nOrganization: UUNET Communications\nLines: 25\nNNTP-Posting-Host: rodan.uu.net\nOganization: uiowa.edu\n\nThis is an official RFD for the creation of a new newsgroup for the\ngeneral discussion of the Microsoft Access RDMS.\n\nNAME: COMP.DATABASES.ACCESS\n\nMODERATION: UNMODERATED. At this time, no need for a moderator has been\nassertained. Future evaluation will determine if one is needed.\n\nPURPOSE: \nAccess is a new RDBMS for the Windows Operating System. It includes WYSIWYG\ndesign tools for easy creation of tables, reports, forms and queries and a\ndatabase programming language called Access Basic.\nTHe purpose of the group will be to provide help to people who use Access's \nWYSIWYG design tools to create simple databases as well as to people who use \nAccess Basic to create complex databases.\n\nRATIONALE:\nEventhough Access is a new RDBMS, it is very popular because of its Graphical\nDevelopment enviroment and its initial low price.\nBeen a version 1.0 product means that all Access users are Novices.\nFor that reason a newsgroup is needed where Access users can discuss \ntheir experiences with the product and answer each other's questions.\n-- \nNapoleon\nmau@herky.cs.uiowa.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8197, "properties": {"category": "rec.motorcycles", "text": "From: sturges@oasys.dt.navy.mil (Richard Sturges)\nSubject: Re: Help!  Which bikes are short?\nReply-To: sturges@oasys.dt.navy.mil (Richard Sturges)\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 23\n\nIn rec.motorcycles, bean@ra.cgd.ucar.edu (Gregory Bean) writes:\n>Help!  I've got a friend shopping for her first motorcycle.  This is great!\n>Unfortunately, she needs at most a 28\" seat.  This is not great.  So far,\n>the only thing we've found was an old and unhappy-looking KZ440.\n\n    I had a kz440 and thought it was the best $100 bike I've ever\n    ridden.  And mind you, I've ridden many bikes.\n\n>I seem to remember a thread with a point similar to this passing through\n>several months ago.  Did anybody keep that list?\n\n    You must be mistaken. No thread in this group has ever had a point.\n\n\nSeriously, there are many 'short' bikes out there.  What style bike\nand how much money does she have.  My SO is 5'3\" and rides her CB1\nor my hawk GT with ease.  Most cruisers are low slung.  YSR50's are\nreal short too.\n\t<================================================> \n       /        Rich Sturges           (h) 703-536-4443   \\\n      /    NSWC - Carderock Division   (w) 301-227-1670    \\\n     /  \"I speak for no one else, and listen to the same.\"  \\\n    <========================================================>\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8198, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Who's next? Mormons and Jews?\nOrganization: Stratus Computer, Inc.\nLines: 13\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <93110.11265034AEJ7D@CMUVM.BITNET>, <34AEJ7D@CMUVM.BITNET> writes:\n> As a minor point of interest, earlier news reports claim to have\n> been quoting the Governor of Texas when Her Holiness referred to\n> the Dividians as _Mormons_ and called for their expulsion\n> from TX. Any Texans have details?\n\nThe Davidians are a 60-year-old splinter from the Seventh Day Adventists,\nif that's the information you were looking for.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8199, "properties": {"category": "rec.sport.hockey", "text": "From: pkortela@snakemail.hut.fi (Petteri Kortelainen)\nSubject: Re: New Finnish Star is born?\nOrganization: Helsinki University of Technology, Finland\nLines: 22\nDistribution: inet\nNNTP-Posting-Host: lk-hp-17.hut.fi\nIn-reply-to: hahietanen@tnclus.tele.nokia.fi's message of Thu, 15 Apr 1993 09:40:41 GMT\n\nIn article <1993Apr15.114041.1@tnclus.tele.nokia.fi> hahietanen@tnclus.tele.nokia.fi writes:\n\n>I saw yesterday on TV a game between Team Sweden and Team Finland.\n>Most of us might know that it was played in Stockholm and the result\n>was 4:3 for the home team. That's nothing very special... But I was\n>very surprised of Saku Koivu. I must admit that he surprised me \n>already in the Finnish playoffs. And now on team Finland!\n\n>Saku Koivu is a light weight player, if we consider his size: According\n>to my stats he is only 172cm and 68kgs! And he is only 18! (23.11.74).\n>But he is a real two-way player! Skates well, can score, gives nice\n>passes, does even bodycheckings!!? He is really something to watch\n>in the WC. \n\n>The size isn't always everything. Maybe we remember Harlamov...\n>And they say that Saku is still growing up (3cm during last year)...\n\nSaku isn't that small any longer I guess I heard he is 177cm tall at the\nmoment and will still grow 6-8cm.\n\nPetteri Kortelainen\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8200, "properties": {"category": "rec.sport.hockey", "text": "From: snichols@adobe.com (Sherri Nichols)\nSubject: Re: Too Many Europeans in NHL\nArticle-I.D.: adobe.1993Apr6.201745.840\nOrganization: Adobe Systems Incorporated\nLines: 24\n\nIn article <1993Apr6.195022.6362@alchemy.chem.utoronto.ca> golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n>Major league baseball has told the Blue Jays and the Expos not to\n>sign Oscar Linares (I think that is his name)\n\nLinares has not defected; as I pointed out, MLB requires that the player\ndefect first.\n\n>...Canada does not have the restrictions against\n>Cubans that the US has and other major league teams have told the\n>Canadian teams that they would be very unhappy if the Expos or the\n>Blue Jays would do this.\n\nWhat a surprise.  As long as the pool of talent is not accessible to all\nteams, MLB won't let a few teams sign it.  Seems perfectly reasonable to\nme.  \n\n>  Cubans players would not have to defect\n>to play in Canada and could play the 81 home games for the Expos\n>and Blue Jays without any trouble.\n\nExcept that MLB won't allow it, which is all I ever said.\n\nSherri Nichols\nsnichols@adobe.com\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8201, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lance@hartmann.austin.ibm.com (Lance Hartmann)\nSubject: Re: S3 video card at different address\nDistribution: usa\nOrganization: IBM, Austin\nKeywords: s3 video diamond addressing\nLines: 19\n\nIn article <1qmrdd$70h@umcc.umcc.umich.edu> jon@umcc.umcc.umich.edu (Jon Zeeff) writes:\n>I'd like to add a second S3 based video card to my system.  Does anyone\n>know of a company that sells a card that can coexist with another one?\n>All I really need is color text on one monitor and fast color graphics\n>on the other.\n>\n>Probably just a configurable address would do it.\n>\n\nFor what it's worth (I haven't confirmed it), a Diamond tech-rep told\nme that ALL S3-based video cards use port addresses 0x2E0 and 0x2E8.\nIf this is true, it appears that you canNOT use more than one S3 card\nin your system.\n\nLance Hartmann (lance%hartmann.austin.ibm.com@ibmpa.awdpa.ibm.com)\n               Yes, that IS a '%' (percent sign) in my network address.\n------------------------------------------------------------------------------\nAll statements, comments, opinions, etc. herein reflect those of the author\nand shall NOT be misconstrued as those of IBM or anyone else for that matter.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8202, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Detroit-Toronto?\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 10\nNntp-Posting-Host: mail.sas.upenn.edu\n\nWhat's the deal?  c.s.h. has nothing on it yet.  Is it in OT, is it over,\nwhat?  I want to know!  We all want to know!  Where's Roger when you need\nhim?!?!?!?!  :-)\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n\t   \"A cow is not a vegetarian dish.\"  -- Keith Keller, 1993\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8203, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: David A. Fuess\nSubject: Re: Windows 3.1 slower using DOS 6 ????\nOrganization: UC LLNL\nLines: 15\nDistribution: usa\nNNTP-Posting-Host: talon.llnl.gov\n\n\nIn article <56720008@hplvec.LVLD.HP.COM> calloway@hplvec.LVLD.HP.COM (Frank Calloway) writes:\n>Not on my system.\n>\n>Frank Calloway\n\nNor mine, either of them!\n\n+---------------------------------+----------------------+\n|    _/      _/     _/    _/  _/  | David A. Fuess       |\n|   _/      _/     _/_/  _/  _/   | Dir, Center for EECS |\n|  _/      _/     _/  _/_/  _/    | Phone: (510)423-2436 |\n| _/_/_/  _/_/_/ _/    _/  _/_/_/ | Fax:   (510)422-9343 |\n+-------- Lawrence Livermore National Laboratory --------+\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8204, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: krh@cbnewsh.cb.att.com (kenneth.r.hackbarth)\nSubject: Re: Quicken 6 vs. Tobias' Managing Your Money\nOrganization: AT&T\nDistribution: usa\nKeywords: Quicken Tobias\nLines: 19\n\nI've never had quicken but I did use MYM in it's early days. I have MS Money\nfor Windows now and a financial planning package called Wealthbuilder by\nReality Technologies and Money Magazine. P.S. I also do my taxes with Turbo\nTax. All of these packages are good in their own way but none of them\nreally support me in doing what I really need to do - manage my finances.\n\nThe first company that comes along with a Windows based package that:\n    manages budgets and accounts\n    manages loans\n    calculates taxes\n    uses all of the above and knowledge about my investing philosophy to\n      help me invest in the right investment vehicles, and\n    integrates it all together\n\nwill have my business for life.\n\nKen\nkhackbarth@attmail.com\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8205, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: thia@sce.carleton.ca (Yong Thia)\nSubject: VESA LOCAL BUS\nSummary: VESA\nKeywords: VESA\nOrganization: Carleton University\nDistribution: na\nLines: 9\n\nHi! I was wondering if anyone out there could point me to where I can\nget the VESA specifications or any relevant books on this subject.\n\nRegards\nJimmy\n\n--\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8206, "properties": {"category": "comp.windows.x", "text": "From: casper@fwi.uva.nl (Casper H.S. Dik)\nSubject: Re: Trouble compiling X11R5 on SunOS_4.1.3\nNntp-Posting-Host: adam.fwi.uva.nl\nOrganization: FWI, University of Amsterdam\nLines: 29\n\nepstein@trwacs.fp.trw.com (Jeremy Epstein) writes:\n\n>dmm@head-cfa.harvard.edu (David Meleedy) writes:\n\n>[Description of compiling problems deleted.]\n\n>>gcc -fpcc-struct-return -o bmtoa bmtoa.o -O2 -funroll-loops   -L../.././lib/Xmu \n>>-lXmu -L../.././lib/Xt -L../.././extensions/lib -L../.././lib/X -L/afs/cfa/syste\n>>m/sun4c_413/usr/head/lib/X11/X11R5    \n>>ld: Undefined symbol\n>>   _XGetVisualInfo\n>>   _XFree\n>>   _XInternAtom\n\n>[etc.]\n\n>There's a bug in SunOS 4.1.3, which is alluded to in the FAQ (although\n>there it's talking about X11R4 as being affected).  You need to force\n>libXmu to be linked statically, rather than dynamically, which works\n>around the linker error.  The simplest thing to do is edit each of\n>the Makefiles where there's a failure and change the line which reads:\n>\tXMULIB = -L$(XMUSRC) -lXmu\n>to:\n>\tXMULIB = -L$(XMUSRC) -Bstatic -lXmu -Bdynamic\n\nNo. This is only relevant for OpenWindows 3.x as shipped with SunOS.\nIt is not relevant for MIT R5. MIT R5 should compile without problems.\n\nCasper\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8207, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Roe v. Wade\nDistribution: na\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 42\n\nIn article <C4xAwp.tAK@watson.ibm.com>, margoli@watson.ibm.com (Larry Margolis) writes:\n> In <1993Apr3.041411.23590@ncsu.edu> dsh@eceyv.ncsu.edu (Doug Holtsinger) writes:\n# #  \"Abortions destructive of the fetus must be permitted, even\n# #   just before birth, if they promote what the [Supreme] Court\n# #   calls ``health''\n# \n# Yes, Doug, we all know that Roe v. Wade prevents states from prohibiting\n# abortions necessary to preserve the life or health of the woman.  Only\n# very stupid people (such as yourself) confuse a discussion of mental health\n# related to \"Jane Doe\", who was in a mental institution, and attempt to claim\n# that this same argument could be applied to a woman who decided she wanted\n# an abortion because she was having a \"bad hair day\".\n# \n# As you well know, the facts are that there are about 100 third-trimester\n# abortions performed in this country annually, and those are *only* done for\n# *serious* health reasons.\n# --\n# Larry Margolis, MARGOLI@YKTVMV (Bitnet), margoli@watson.IBM.com (Internet)\n\nHmmm.  Human gestation period is something like 39 weeks.  That means\nthird trimester abortions are those done after 26 weeks.  In consulting\na 1989 World Almanac, I see that 1% of abortions in 1983 were done at \n21 weeks or more.  That's about 1268 abortions in 1983 after 21 weeks.\nUnless the number of abortions performed has dropped dramatically, or\na LOT of abortions are done between 21 and 26 weeks, I think you are\nwrong.\n\nBy the way, Roe v. Wade allowed states to adopt very, very broad\nprohibitions on third-trimester abortions, but some states, such as\nCalifornia, declined to do so.  It was reported* that what finally \nstopped third trimester elective abortions in the Bay Area wasn't law, \nbut that the only hospital doing them ran out of nurses, then doctors,\nwilling to do them.  Not surprisingly, the bay area NOW chapter was\nterribly upset about this.\n\nI remain pro-choice, but when pro-choicers compare abortion in a\nclinic to a religious ritual in a church, you have to start wondering\na bit if the pro-life criticism of abortion as modern human sacrifice\ndoesn't have a grain of truth to it.\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8208, "properties": {"category": "comp.windows.x", "text": "From: ndd@sunbar.mc.duke.edu (Ned Danieley)\nSubject: problem with Tek xterminal\nOrganization: Basic Arrhythmia Laboratory, Duke Univ. Med. Center, Durham, N.C.\nLines: 18\nNntp-Posting-Host: bal1.mc.duke.edu\nOriginator: ndd@bal1\n\n\nWe have recently purchased a Tektronix xterminal, and I'm having\na problem with it. We have a graphics widget that we wrote to\ndisplay waveforms, and it doesn't work on the xterminal. the buttons,\netc, all show up, and it seems to take the 'right' amount of time to\ndraw, but nothing is visible in the graphics window. I\nhave no clue as to where to start looking: the program works fine\non all our suns (3s and 4s, color and B&W). could anyone suggest a\nline of attack for this problem?\n\nTekXpress XP380 color xterminal running 6.0.0. host is a Sun IPX\nrunning SunOS 4.1.3 and X11R5, PL17.\n\n-- \nNed Danieley (ndd@sunbar.mc.duke.edu)\nBasic Arrhythmia Laboratory\nBox 3140, Duke University Medical Center\nDurham, NC  27710   (919) 660-5111 or 660-5100\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8209, "properties": {"category": "rec.sport.baseball", "text": "From: fls@keynes.econ.duke.edu (Forrest Smith)\nSubject: Braves \"Stoppers\"\nOrganization: Duke University; Durham, N.C.\nLines: 22\nNntp-Posting-Host: keynes.econ.duke.edu\n\n\n\tThe term \"stopper\" is generally used to refer to a pitcher, one\nwho can be counted on to pitch a strong game to keep his team from going\non a losing streak.\n\n\tThe Braves have plenty of pitchers to fit this description,\nalthough right now I'd expect Smoltz or Glavine to take the mantle.\n\n\tWhat the Braves lack, however, is an offensive stopper,\nsomebody they can look to to bring them out of their hitting slump.\nThere's just no one there.  The Braves got rid of their best pure\nhitter, Lonnie Smith, and only Terry Pendleton on the current roster\nhas ever shown more than a cursory ability to hit.\t\n\n\tOh, and another thing that worries me.  Ron Gant seems to have\nslowed down a step.  That's scary.  A slow Ron Gant doesn't have much going\nfor him.\n-- \n@econ.duke.edu     fls@econ.duke.edu     fls@econ.duke.edu    fls@econ.duke.\ns  To my correspondents:  My email has been changed.                       e\nl                         My new address is:  fls@econ.duke.edu            d\nf            If mail bounces, try fls@raphael.acpub.duke.edu               u\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8210, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cui@maccs.mcmaster.ca (Jun Cui)\nSubject: How to hold the control to a window object?\nKeywords: ObjectWindows, MS-Windows, SDK\nNntp-Posting-Host: maccs.dcss.mcmaster.ca\nOrganization: Department of Computer Science, McMaster University\nDistribution: comp.os.ms-windows.misc comp.windows.ms\nLines: 30\n\n//I'm using BC++'s ObjectWindows (version 3.1) and trying to get some data \n//processed in a window object. However, when the calling program invokes \n//the window object, it gives up the control to the window object, and keeps \n//executing the next statement. I would like the calling program, after \n//invoking the window object, to wait until the window object is closed. \n//Can I do that? My program may look like:\n\nclass MyWindow : public TWindow\n{\n\t...\n};\n\nvoid MyCallingProg(...)  // Could the calling program be a C function?\n{\t...\n\tMyWindow *MyWinObj;\n\tMyWinObj = new MyWindow(...);\n\tGetApplication()->MakeWindow(MyWinObj);\n\tMyWinObj->Show(SW_SHOWNORMAL);\n\n\tnext statement;  // I want the program to wait here until MyWinObj\n\t...              // is closed so that I can get some data back from \n\t...              // MyWinObj. I specified the window style to be \n\t...              // WS_POPUPWINDOW, didn't help. Is there any other way \n\t...              // to execute the window object so that the calling \n   ...              // program won't give up the control? Any help would \n}                   // be appreciated.   Thanks.  -- Jun\nTo talk to the Lord with PS/2 through MS-Windows\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8211, "properties": {"category": "talk.religion.misc", "text": "From: irfan@davinci.ece.wisc.edu (Irfan Alan)\nSubject: A TREATISE ON THE MIRACLES OF MUHAMMAD SAW, PART-1\nOrganization: Univ. of Wisconsin-Madison; Electrical & Computer Engineering\nDistribution: usa\nLines: 81\n\nDROPLET VOL 1, No 11, Part 1\n\nA  D R O P L E T\nFrom The Vast Ocean Of The Miraculous Qur'an\n\nTranslations from the Arabic and Turkish Writings of \nBediuzzaman Said Nursi, The Risale-i Noor\n\nVOL 1, No 11, Part 1\n------------------------------------------------------------------\n\n\n   \t\t NINETEENTH LETTER  \n\n\t\t MU'JIZAT-I AHMEDIYE RISALESI \n(A TREATISE ON THE MIRACLES OF MUHAMMAD SAW)       \n(SAW: PEACE AND BLESSINGS BE UPON HIM)\n\nIn His Name (ALLAH) , Be He (ALLAH) Glorified!\nThere is Nothing But Glorifies His (ALLAH's) Praise.\n\nIn The Name Of  Allah, The Compassionate, The Merciful\n\n   \"He is who has sent His Messenger with\nguidance and the religion of truth  to make it\nsupreme over all religion:  and sufficient is Allah\nas a Witness.  Muhammad is the Messenger of\nAllah, and those who are with him are firm\nagainst the unbelievers and merciful among\neach other.  You will see them bowing and\nprostrating  themselves, seeking Allah's grace\nand His pleasure.  Their mark is on their face\nthe sing of prostrafion; this is their similitude in\nthe Torah and Indgil.\" [the Our'an 48:28-29]\n\n   Since the Nineteenth and Thirhy-first Words\nconcerning the mission of Muhammad (SAW) prove his\nprophethood with decisive evidences, we assign the\nverification of that subject to those Words.\n   As a supplement to them, we will merely show here\nin Nineteen Signs, some  of the flashes of that great\ntruth.\n\n   FIRST SIGN:  The Owner and Master of this universe\ndoes everything with knowledge, disposes every affair\nwith wisdom, directs everything all-seeingly, treats\neverything all-knowingly, and arranges in everything with\nHis will and wisdom such causes, purposes and uses that\nare apparent to us.  Since the One who creates knows,\nsurely the One who knows will speak, since He will\nspeak, surely He will speak to those who have\nconsciousness, thought, and speech.  Since He will speak\nto those who have thought, surely He will speak to\nhumankind, whose make-up and awareness are more\ncomprehensive of all conscious beings.  Since He will\nspeak to humankind, surely He will speak to the most\nperfect of mankind and those most worthy of address and\nhighest in morality, and who are qualified to guide\nhumanity; then He will certainly speak to Muhammad (SAW), \nwho, as friend and foe alike testify, is of the highest \ncharacter and morality, and who is obeyed by one fifth\nof humanity, to whose spiritual rule half of the globe has\nsubmitted, with the radiance of whose light has been\nillumined the future of mankind for thirteen centuries, to\nwhom the believers, the luminous segment of humanity,\nrenew their oath of allegiance five times a day, for\nwhose happiness and peace they pray, for whom they call\ndown Allah's blessings and bear admiration and love in\ntheir hearts.\n\n   Certainly, He will speak to Muhammad (SAW),\nand Indeed He has done so;  He will make him the\nMessenger, and Indeed He has done so; He will make\nhim the guide for the rest of humanity, and Indeed He\nhas done so.\n\n-----------------------------------------------------------------\nTo be continued In$a Allah.\nYour Br. Irfan in Islam.\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8212, "properties": {"category": "alt.atheism", "text": "Subject: Re: Gospel Dating\nFrom: kmr4@po.CWRU.edu (Keith M. Ryan)\nOrganization: Case Western Reserve University\nNNTP-Posting-Host: b64635.student.cwru.edu\nLines: 64\n\nIn article <C4vyFu.JJ6@darkside.osrhe.uoknor.edu> bil@okcforum.osrhe.edu (Bill Conner) writes:\n\n>Keith M. Ryan (kmr4@po.CWRU.edu) wrote:\n>: \n>: \tWild and fanciful claims require greater evidence. If you state that \n>: one of the books in your room is blue, I certainly do not need as much \n>: evidence to believe than if you were to claim that there is a two headed \n>: leapard in your bed. [ and I don't mean a male lover in a leotard! ]\n>\n>Keith, \n>\n>If the issue is, \"What is Truth\" then the consequences of whatever\n>proposition argued is irrelevent. If the issue is, \"What are the consequences\n>if such and such -is- True\", then Truth is irrelevent. Which is it to\n>be?\n\n\tI disagree: every proposition needs a certain amount of evidence \nand support, before one can believe it. There are a miriad of factors for \neach individual. As we are all different, we quite obviously require \ndifferent levels of evidence.\n\n\tAs one pointed out, one's history is important. While in FUSSR, one \nmay not believe a comrade who states that he owns five pairs of blue jeans. \nOne would need more evidence, than if one lived in the United States. The \nonly time such a statement here would raise an eyebrow in the US, is if the \nindividual always wear business suits, etc.\n\n\tThe degree of the effect upon the world, and the strength of the \nclaim also determine the amount of evidence necessary. When determining the \nlevel of evidence one needs, it is most certainly relevent what the \nconsequences of the proposition are.\n\n\n\n\tIf the consequences of a proposition is irrelvent, please explain \nwhy one would not accept: The electro-magnetic force of attraction between \ntwo charged particles is inversely proportional to the cube of their \ndistance apart. \n\n\tRemember, if the consequences of the law are not relevent, then\nwe can not use experimental evidence as a disproof. If one of the \nconsequences of the law is an incongruency between the law and the state of \naffairs, or an incongruency between this law and any other natural law, \nthey are irrelevent when theorizing about the \"Truth\" of the law.\n\n\tGiven that any consequences of a proposition is irrelvent, including \nthe consequence of self-contradiction or contradiction with the state of \naffiars, how are we ever able to  judge what is true or not; let alone find\n\"The Truth\"?\n\n\n\n\tBy the way, what is \"Truth\"? Please define before inserting it in \nthe conversation. Please explain what \"Truth\" or \"TRUTH\" is. I do think that \nanything is ever known for certain. Even if there IS a \"Truth\", we could \nnever possibly know if it were. I find the concept to be meaningless.\n\n--\n\n\n       \"Satan and the Angels do not have freewill.  \n        They do what god tells them to do. \"\n\n        S.N. Mozumder (snm6394@ultb.isc.rit.edu) \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8213, "properties": {"category": "rec.motorcycles", "text": "From: James Leo Belliveau <jbc9+@andrew.cmu.edu>\nSubject: First Bike??\nOrganization: Freshman, Mechanical Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 17\nNNTP-Posting-Host: andrew.cmu.edu\n\n Anyone, \n\n    I am a serious motorcycle enthusiast without a motorcycle, and to\nput it bluntly, it sucks.  I really would like some advice on what would\nbe a good starter bike for me.  I do know one thing however, I need to\nmake my first bike a good one, because buying a second any time soon is\nout of the question.  I am specifically interested in racing bikes, (CBR\n600 F2, GSX-R 750).  I know that this may sound kind of crazy\nconsidering that I've never had a bike before, but I am responsible, a\nfast learner, and in love.  Please give me any advice that you think\nwould help me in my search, including places to look or even specific\nbikes that you want to sell me.\n\n    Thanks  :-)\n\n    Jamie Belliveau (jbc9@andrew.cmu.edu)  \n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.390+0000", "event": "documents", "entityId": 8214, "properties": {"category": "soc.religion.christian", "text": "From: noye@midway.uchicago.edu (vera shanti noyes)\nSubject: Re: When are two people married in God's eyes?\nReply-To: noye@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 51\n\ni have a question for you all related to this.  jesus condemns divorce\nseveral times in the new testament, and i have a hard time with this.\nthe catholic church (as far as i can tell) does grant annulments with\nthe statement that the marriage never really existed in God's eyes.\n(please, if i am mistinterpreting, correct me.)  however, i have\nwitnessed marriages where two people were very much in love but\nrecognized that they were destroying themselves and each other by\nstaying in a marriage, and that the problems were due to personal\nchildhood issues that had never been resolved.  i ask you, is divorce\njustified in such a case?  they knew who they were, what they were\ndoing, they were deeply in love, but in the end, it did not work out.\ni must admit that i don't see jesus forcing them to live together, or\neven condemning that they go and seek happiness with someone else\nlater on.  opinions?\n\nvera\n*******************************************************************************\nI am your CLOCK!     |  I bind unto myself today    | Vera Noyes\nI am your religion!  |  the strong name of the\t    | noye@midway.uchicago.edu\nI own you!\t     |  Trinity....\t\t    | no disclaimer -- what\n\t- Lard\t     |\t- St. Patrick's Breastplate | is there to disclaim?\n*******************************************************************************\n\n[This is a commonly discussed question, though it's been long enough\nthat I'll allow it to be asked.  As you might expect, there is a range\nof answers.  Catholics and some others will say that divorce is never\njustified.  (By the way, in situations where someone is being abused,\nor for other serious cause, separation is allowed by all traditions\nthat I know.  No one should be forced to stay in a situation where\nthey are in danger.)  Others see it as a last resort in situations\nthat have fallen apart badly enough that the best we can hope for is\nto choose the lesser of evils.  In some sense the difficult legal\nquestion turns out not to be divorce, but remarriage.  That's because\nof Jesus' statement in Mark 10:11-12 and par.  As with so many other\nthings, this turns on your approach to the Bible.  Conservative\nProtestants tend to see statements like this as having no exceptions.\nMore liberal ones are willing to make allowances for situations where\na literal interpretation would lead to painful results.  (It is noted\nthat at the time it was possible for a man to divorce his wife almost\non a whim.  Thus a common explanation in the more liberal approach is\nthat Jesus was trying to protect people from this sort of thing, not\nto establish an absolute rule to which there could never be\nexceptions.)  Catholics, as is typical with Catholic ethics, take a\ntheoretical hard line, but allow for exceptions in practice through\nthe process of anullment.  In the last discussion most of our\nnon-Catholic readers seemed to accept with some reluctance that\nin some cases there might be no good alternative, but there was a\nfeeling that the church should often be doing a better job of\nhelping people prepare for marriage and deal with problems that\ncome up during it, and that in a properly run church, divorce\nshould not be necessary.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8215, "properties": {"category": "sci.electronics", "text": "From: rogerw@world.std.com (Roger A Williams)\nSubject: Re: 68HC16 public domain software?\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 1\n\nDoesn't Motorola AMCU have something on the BBS yet? (512-891-3733)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8216, "properties": {"category": "rec.sport.baseball", "text": "From: dxf12@po.CWRU.Edu (Douglas Fowler)\nSubject: 1-dimensional teams (was Re: Royals final run total...\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 43\nReply-To: dxf12@po.CWRU.Edu (Douglas Fowler)\nNNTP-Posting-Host: slc12.ins.cwru.edu\n\n\nIn a previous article, sweda@css.itd.umich.edu (Sean Sweda) says:\n\n>\n>I've been saying this for quite some time, but being absent from the\n>net for a while I figured I'd stick my neck out a bit...\n>\n>The Royals will set the record for fewest runs scored by an AL\n>team since the inception of the DH rule.  (p.s. any ideas what this is?)\n>\n>They will fall easily short of 600 runs, that's for damn sure.  I can't\n>believe these media fools picking them to win the division (like our\n>Tom Gage of the Detroit News claiming Herk Robinson is some kind of\n>genius for the trades/aquisitions he's made)\n\n     Would you say the same thing about the Dodgers in '65 or '66?  True,\nCone is probably as good as Drysdale, and they have no Koufax, but still,\nthese teams were winning with home run leaders who had very bad totals, with\nlots of low-scoring games, etc.  And they didn't use relievers, whereas\nJeff Montgomery is having a super season for them.\n     That being said, I still picked them 5th or so, but I think a superb\npitching team can win if they have enough hitting.  There's more of a\nchance of that, I think, than of a team with tremendous hitting but no\npitching.  At least, to me.\n     I wonder, though - which one do you people think would do better - a team\nwith Johnson, Koufax in his prime, Seaver, Carlton, and Young, in no real\norder, as the starters, with Sutter, Fingers, and Lyle in the bullpen, but\nwith a puny offense (assuming good defense, like Mazeroski, Maranville, etc.)\nOr a team with poor pitching, but with an offense of Cobb, Carew, Ruth, Gehrig,\nMays, Schmidt, Wagner, and Bench - again,you pick the order.\n     I would postulate that the pitching one would be several games better by\nseasons' end.  Even the best hitters can succeed only 2/5 of the time in\ntheir best years, but a great pitcher can throw lots of shutouts - taking all\nthe players in their prime, they might throw 50 shutouts in a year.  And all\nthe offense would have to do is get 1 run across.\n     I wonder if someone with Stratomatic or something could plug such all-\ntime teams into a regular season, have it played, and report the results\nI would love to see that.\n-- \nDoug Fowler: dxf12@po.CWRU.edu  : Me, age 4 & now: \"Mommys and Daddys & other\n    Ever wonder if, after Casey : relatives have to give lots of hugs & love\nmissed the 3rd strike in the poem: & support, 'cause Heaven is just a great\nhe ran to first and made it?     : big hug that lasts forever and ever!!!\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8217, "properties": {"category": "talk.politics.guns", "text": "From: v111qheg@ubvmsb.cc.buffalo.edu (P.VASILION)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: University at Buffalo\nLines: 24\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\nIn article <1993Apr20.003522.22480@midway.uchicago.edu>, thf2@midway.uchicago.edu writes...\n>In article <1qvfik$6rf@usenet.INS.CWRU.Edu> cj195@cleveland.Freenet.Edu (John W. Redelfs) writes:\n>>Now that Big Brother has rubbed out one minority religion in Waco, who is\n>>next?  The Mormons or Jews?\n> \n>The Koreshians rubbed themselves out.  Neither Mormons nor Jews have a\n>propensity for dousing themselves with kerosene, so I'm not particularly\n>concerned.  (Or shall we blame Jim Jones on the government also?)\n> \n>Be thankful that the BATF standoff at least got some of the kids out before\n>the cult committed mass suicide.\n> \n\n\tDont you believe that the Branch Davidians committed suicide for one\nminute. I would not put it past the FBI to lob in some incendiary grenades\nwhile they feed your their story. Don't ever ever trust what your wonderful\ngovernment tells you. Janet Reno and the FBI have the murder of a hundred\npeople on their hands. Hope they can sleep at night....\n\nP.Vasilion, kb2nmv\nSUNY @ BUFFALO\n<<STD.DISCLAIMERS>>\n\n\"All you cult haters happy now? Just hope that your not next.\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8218, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bredell@tdb.uu.se (Mats Bredell)\nSubject: Re: Quadra 900 startup w/out monitor...ya right.\nReply-To: Mats.Bredell@udac.uu.se\nOrganization: Uppsala University Computing Center (UDAC)\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 16\n\nShawn FitzGerald (chungkuo@umcc.umcc.umich.edu) wrote:\n: Is there a fix for this? We have a Quadra 900 that will NOT finish startup\n: unless there is a monitor connected. This would be no problem, but since\n: we're running it as a file server, there is no need to have a monitor\n: connected all the time.\n\nI've seen a control panel made for this. I don't remember the name, where I\nsaw it, or on what Quadra models it will work. But I do know it exists :)\n\n/Mats\n\n-- \nMats Bredell                                   Mats.Bredell@udac.uu.se\nUppsala University Computing Center (UDAC)     Ph:  +46 18 187817\nDepartment of medical systems                  Fax: +46 18 187825\nSweden                                         Think straight - be gay!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8219, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Rich.Rubel@launchpad.unc.edu (Rich Rubel)\nSubject: PS/2 Appletalk card question\nNntp-Posting-Host: lambada.oit.unc.edu\nOrganization: University of North Carolina Extended Bulletin Board Service\nLines: 17\n\n\nI have a chance to buy a used PS/2 Appletalk card to create a network with\nmy home machines.  However, the guy who has the card tells me there's a\nDB-9 or DB-15 (can't remember now) on the back of the card, rather than\nthe 8-pin (or 4-pin) mini-din that I expect.  This sounds more like a\nThicknet ethernet card.  Should there be a transciever on it, like on the\nQuadras?  What would be a reasonable price to expect to pay for one of\nthese cards, keeping in mind that it's Micro-Channel Architecture, which\nmeans take your best guess and double it.\nEmail replies would be appreciated, to here or to rrr@ideas.com\nThanks.\n[RICHR]\n--\n   The opinions expressed are not necessarily those of the University of\n     North Carolina at Chapel Hill, the Campus Office for Information\n        Technology, or the Experimental Bulletin Board Service.\n           internet:  laUNChpad.unc.edu or 152.2.22.80\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8220, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mcglob@usissc.DaytonOH.NCR.COM (Brian.McGloin)\nSubject: Re: does dos6 defragment??\nReply-To: mcglob@usissc.DaytonOH.NCR.COM (Brian.McGloin)\nOrganization: DaytonOH.NCR.COM\nLines: 14\n\nIn article <1993Apr5.060929.7806@seas.gwu.edu> louray@seas.gwu.edu (Michael Panayiotakis) writes:\n>\n>Well, the subject saysit all:  does dos 6 do defragmentation??\n>\nYes, both dblspaced and non-dblspaced drives can be defragmented. I believe\nthey use Norton's Speedisk.\n\n\n\n-- \nBrian T. McGloin\t| Lift your glasses, friend, with mine \nNCR Corp.\t\t| And raise your hand with me \nUSG/ISS-OLS\t\t| I'm England stole, I'm Ireland spent \nMiamisburg, OH 45342\t| I'm an outlawed rapparee \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8221, "properties": {"category": "sci.space", "text": "From: ldaddari@polaris.cv.nrao.edu (Larry D'Addario)\nSubject: Re: Russian Email Contacts.\nIn-Reply-To: nsmca@aurora.alaska.edu's message of Sat, 17 Apr 1993 12: 52:09 GMT\nOrganization: National Radio Astronomy Observatory\nLines: 32\n\nIt is usually possible to reach people at IKI (Institute for Space\nResearch) in Moscow by writing to\n\n\tIKIMAIL@esoc1.bitnet\n\nThis is a machine at ESA in Darmstadt, Germany; IKI has a dedicated\nphone line to this machine and someone there logs in regularly to\nretrieve mail.\n\nIn addition, there are several user accounts belonging to Russian\nscientific institutions on\n\n\t<user>@sovam.com\n\nwhich is a commercial enterprise based in San Francisco that provides\nemail services to the former USSR.  For example, fian@sovam.com is the\n\"PHysics Institute of the Academy of Sciences\" (initials transliterated\nfrom Russian, of course).  These connections cost the Russians real\ndollars, even for *received* messages, so please don't send anything\nvoluminous or frivilous.\n\n=====================================================================\nLarry R. D'Addario\nNational Radio Astronomy Observatory\n\nAddresses   (INTERNET) LDADDARI@NRAO.EDU\n\t    (FAX)      +1/804/296-0324 Charlottesville\n\t\t       +1/304/456-2200 Green Bank\n\t    (MAIL)     2015 Ivy Road, Charlottesville, VA 22903, USA\n\t    (PHONE)    +1/804/296-0245 office, 804/973-4983 home  CHO\n\t\t       +1/304/456-2226 off., -2106 lab, -2256 apt. GB\n=====================================================================\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8222, "properties": {"category": "rec.motorcycles", "text": "From: mbeaving@bnr.ca (Michael Beavington)\nSubject: Re: Your opinion and what it means to me.\nNntp-Posting-Host: bmerh824\nReply-To: MBEAVING@BNR.CA\nOrganization: BNR \nLines: 16\n\n|> \n|> So, Take you own advice and wuit you whining about\n|> flames.\n|> \n\nNo brains and he can't spell either.\n\n.edu?? I hope you're not a student at Duke...\nyou would be wasting your tuition.\n\n\n===================================================\n= The Beav |Mike Beavington| Dod:9733             =\n= V65Sabre     mbeaving@bnr.ca                    =\n= My employer has no idea what I'm talking about! =\n===================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8223, "properties": {"category": "sci.electronics", "text": "From: laird@pasture.ecn.purdue.edu (Kyler Laird)\nSubject: Re: Telephone on hook/off hok ok circuit\nOrganization: Purdue University Engineering Computer Network\nLines: 6\n\nThese circuits abound in most electronic project books.  If you're more\ninclined to buy something, try Radio Shack.  I think they still have a\ndevice that is designed to disconnect an answering machine when an\nextension line is lifted.  It has LED indicators also. \n\n--kyler\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8224, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Death Penalty (was Re: Political Atheists?)\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 14\n\nThis is fascinating. Atheists argue for abortion, defend homosexuality\nas a means of population control, insist that the only values are\nbiological and condemn war and capital punishment. According to\nBenedikt, if something is contardictory, it cannot exist, which in\nthis case means atheists I suppose.\nI would like to understand how an atheist can object to war (an\nexcellent means of controlling population growth), or to capital\npunishment, I'm sorry but the logic escapes me.\nAnd why just capital punishment, what is being questioned here, the\npropriety of killing or of punishment? What is the basis of the\necomplaint?\n\nBill\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8225, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: hhaldre@stacken.kth.se (Heikki Haldre)\nSubject: (Q) CONNER HD specs\nOrganization: UTexas Mail-to-News Gateway\nLines: 6\nNNTP-Posting-Host: cs.utexas.edu\n\nCan anybody send CONNER CP-321 harddisk specifications?\nIt has 612 Cyl, and 4 HD, but I am more intrested in its time-out values, \nprecomp, etc.\n\nHeikki Haldre Internet: hhaldre@sune.stacken.kth.se\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8226, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: tomh@metrics.com (Tom Haapanen)\nSubject: Re: Hercules Graphite?\nOrganization: Software Metrics Inc.\nLines: 56\n\n> tomh@metrics.com (Tom Haapanen) writes:\n>> Has anyone used a Hercules Graphite adapter?  It looks good on paper, and\n>> Steve Gibson gave it a very good review in Infoworld.  I'd love to get a\n>> real-world impression, though -- how is the speed?  Drivers?  Support?\n\nntaib@silver.ucs.indiana.edu (Iskandar Taib) writes:\n> The PC World reviewers found out that the Herc people had hard-coded\n> Winbench text into the driver. Clever, no? In any case, the Winbench\n> results are pretty much inflated.\n\nTwo things that annoyed me about the PC Magazine review:\n\n1.  Their benchmarking technique is seriously flawed, as was clearly shown\n    by the Graphite and #9GXE's \"cheating\".  Can't they just admit that\n    their benchmark is to easy to optimize for and/or cheat on?  WinTach\n    is much harder to beat...\n\n2.  The big \"cheat\" that Hercules/IIT used was overlappipping BitBlit and\n    PolyLine optimization, and Hercules sent them a new driver which didn't\n    do this -- but produced almost identical scores.  Yet, the only thing\n    PC Magazine says is that scores are not \"legitimate\" -- couldn't they\n    at least make some comment about its real-world performance?\n\nI'm not so much going by WinBench for performance, but, rather, by Steve\nGibson's results, which are more real-world based (like using Micrografx\nDraw to benchmark).  If you believe Gibson, that is ... :)  He writes:\n\n    \"Despite these documented cheats, I have to say that in real-world\n     applications the Hercules Graphite adapter actually draws faster than\n     any other display adapter in the industry.   [...]  Even though it's\n     just a modest ISA bus card, it outperformed every local bus adapter I\n     have, including the Stealth 24 VLB, the Fahrenheit 1280VA/VLB, the\n     ATI VLB Mach32 and even the Weitek P9000-based Diamond Viper VLB.\"\n\nThis kind of praise is enough for me to be interested in it, bogus WinBench\nor not!  :)\n\n> When and if you get one send me mail.. I might buy that ATI GU+ off\n> you.. 9-)\n\nI already returned the ATI GU+.  My dealer had sold eight of them, and \nseven were returned to him.  I'm now (temporarily) back to running an\noriginal ATI GU, until I get my Graphite.  And, yes, the GU is faster in\nmy 16 MB system than the GU+, especially in bitmap handling (that's where\nyou use BitBlits).\n\nHercules has a promotion available for VARs and software developers: you\ncan buy one Graphite or Graphite VLB for 50% off list to try it out.  At\njust $199 for Graphite or $249 for the VLB version I decided it was worth\ntrying (I'm supposed to get the VLB board within two weeks).  I'll post\nmy impressions when I get it...\n\n-- \n[ /tom haapanen -- tomh@metrics.com -- software metrics inc -- waterloo, ont ]\n[       \"stick your index fingers into both corners of your mouth.  now pull ]\n[          up.  that's how the corrado makes you feel.\"  -- car, january '93 ]\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8227, "properties": {"category": "rec.sport.hockey", "text": "From: ayim@laplace.uwaterloo.ca (Alfred Yim)\nSubject: Re: Blackhawks win!!! \nLines: 15 \nOrganization: University of Waterloo\n\nIn article <1993Apr16.140953.5025@vax.cns.muskingum.edu>, jbrown@vax.cns.muskingum.edu writes:\n> The Hawks win!!  Jermey Roenick scored his 50 th goal and the Hawks put the\n> Leafs in their place, the losers column.  If the Leafs can not even beat the\n> Hawks in a match that had little or no meaning I will hate to see them against\n> the Wings.  \n> \n> Oh btw I laugh at rm, that jerky!!!\n> \n> GO HAWKS!!!\n> \n> JB\n\nBut I gotta tell ya,\n\nIf the Hawks can't beat the Blues in a game that\nIS significant I can't wait to see how the Blues\nmight do against Toronto ;)\n\nBTW, if you think that the Hawks deserved to win that game\nI think you were not watching the same one everyone else\nwas.\n\nROAR'IN LEAF FAN\n-- \n****************************************** \n*  Alfred (Yong-Jeh) Yim                 *   \n*  4B Mathematics (Actuarial Science)    * \n*  University of Waterloo, Canada.       *   \n*  E-mail: ayim@descartes.waterloo.edu   *   \n*****************************************************************************\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8228, "properties": {"category": "rec.motorcycles", "text": "From: svoboda@rtsg.mot.com (David Svoboda)\nSubject: Re: Ed must be a Daemon Child!!\nNntp-Posting-Host: corolla18\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 11\n\nIn article <1993Apr2.163021.17074@linus.mitre.org> cookson@mbunix.mitre.org (Cookson) writes:\n|\n|Wait a minute here, Ed is Noemi AND Satan?  Wow, and he seemed like such\n|a nice boy at RCR I too.\n\nAnd Noemi makes me think of \"cuddle\", not \"KotL\".\n\nDave Svoboda (svoboda@void.rtsg.mot.com)    | \"We're bad-t-the-bone!\n90 Concours 1000 (Mmmmmmmmmm!)              |  Bad-t-the-bone!\"\n84 RZ 350 (Ring Ding) (Woops!)              |  -- Universally feared\nAMA 583905  DoD #0330  COG 939  (Chicago)   |     Denizen warcry.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8229, "properties": {"category": "sci.electronics", "text": "From: vanderby@mprgate.mpr.ca (David Vanderbyl)\nSubject: Re: Power, signal surges in home...\nNntp-Posting-Host: chip\nReply-To: vanderby@mprgate.mpr.ca (David Vanderbyl)\nOrganization: MPR Teltech Ltd.\nLines: 15\n\nkludge@grissom.larc.nasa.gov (Scott Dorsey) writes:\n\n>My car, unfortunately, has so much computer junk under the hood that it's\n>astonishingly sensitive to RFI.  If I key a 2W HT over the engine with\n>the hood open, the car loses timing due to the RF leaking into the \n>distributor pickup.  Very poor design.\n\nThere was a news article a little while ago reporting a type of car (was\nit a Volvo?) was found to stall if you used a certain brand/model of cellular\nphone in it.  I seem to remember the car was recalled to fix the problem.\n\nHmmmmm... this has possibilities:\nIf the police are in pursuit of a vehicle, maybe they can bombard it with\nhigh energy RFI.  :-)\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8230, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: browning@nscf.org (Charles W. Browning)\nSubject: ** Mitsubishi MR535 Hard Drive Help!!! **\nOrganization: National Science Center Foundation\nSummary: ** Mitsubishi MR535 Hard Drive Help!! **\nKeywords: Hard Disk\nLines: 17\n\nI have a new MR535 Mitsubishi hard drive (RLL or MFM) that has been\nin storage and will not format.  I suspected that the switch settings\nmay have been moved in the movement of the drive from one place to\nanother.  Does anyone have the switch settings for this drive.  It has\nJ1 SW1 with 6 switches and SW2 has 8 switches.  SW2 is the one that \nselects the drive number.  If you have info on this drive, or know \na number I can call to configure it, please, please let me know by\nemail.  It has 977 cyl 5 heads and I think is type 17.        \n\nThanks in advance!\n\nChuck Browning\n-- \n*****************************************************\n*  Charles W. Browning *  browning@galois.nscf.org  *\n*  University of GA    *  browning@moe.coe.uga.edu  *\n*  Augusta, Georgia    *  cbrowni@eis.calstate.edu  *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8231, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mbuntan@staff.tc.umn.edu ()\nSubject: Where can I get the cheapest price?\nNntp-Posting-Host: staff.tc.umn.edu\nOrganization: University of Minnesota\nLines: 9\n\nHi all:\nDoes anyone know where I can get the cheapest price for\nthe Teleport Gold fax modem by Global Village?\nAny answer will be highly appreciated.\nThanks in advance.\n\nRegards,\n\nThian.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8232, "properties": {"category": "rec.sport.hockey", "text": "Subject: NHL Summary parse results for games played Sat, April 3, 1993\nFrom: c5ff@jupiter.sun.csd.unb.ca (COOK  Charlie)\nOrganization: University of New Brunswick\nLines: 373\n\nTampa Bay                        1 1 0--2\nPhiladelphia                     3 2 1--6\nFirst period\n     1, Philadelphia, Carkner 3 (unassisted) 1:24.\n     2, Philadelphia, Hawgood 9 (Recchi, Lindros) pp, 5:56.\n     3, Philadelphia, Lindros 37 (Recchi, Hawgood) pp, 9:52.\n     4, Tampa Bay, Beers 12 (Zamuner, Chambers) pp, 15:06.\nSecond period\n     5, Tampa Bay, Andersson 13 (Hamrlik, Lafreniere) pp, 1:58.\n     6, Philadelphia, Conroy 3 (Butsayev, Faust) 12:10.\n     7, Philadelphia, Beranek 13 (Galley, Hawgood) pp, 18:53.\nThird period\n     8, Philadelphia, Recchi 51 (Brind'Amour, Galley) pp, 17:56.\n\nPhiladelphia: 6    Power play: 5-4\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBeranek            1    0    1\nBrind'Amour        0    1    1\nButsayev           0    1    1\nCarkner            1    0    1\nConroy             1    0    1\nFaust              0    1    1\nGalley             0    2    2\nHawgood            1    2    3\nLindros            1    1    2\nRecchi             1    2    3\n\nTampa Bay: 2    Power play: 7-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAndersson          1    0    1\nBeers              1    0    1\nChambers           0    1    1\nHamrlik            0    1    1\nLafreniere         0    1    1\nZamuner            0    1    1\n\n-----------------------------------------\nVancouver                        1 0 0--1\nDetroit                          2 2 1--5\nFirst period\n     1, Detroit, Kozlov 4 (Fedorov, Chiasson) 5:20.\n     2, Detroit, Drake 17 (Ciccarelli, Coffey) pp, 7:48.\n     3, Vancouver, Ronning 24 (Slegr, Bure) pp, 17:35.\nSecond period\n     4, Detroit, Sheppard 30 (Drake, Hiller) 6:54.\n     5, Detroit, Ciccarelli 38 (Chiasson, Drake) pp, 12:13.\nThird period\n     6, Detroit, Ysebaert 31 (Fedorov, Cheveldae) sh, 4:59.\n\nDetroit: 5    Power play: 5-2   Special goals:  pp: 2  sh: 1  Total: 3\nScorer            G    A   Pts\n---------------  ---  ---  ---\nCheveldae          0    1    1\nChiasson           0    2    2\nCiccarelli         1    1    2\nCoffey             0    1    1\nDrake              1    2    3\nFedorov            0    2    2\nHiller             0    1    1\nKozlov             1    0    1\nSheppard           1    0    1\nYsebaert           1    0    1\n\nVancouver: 1    Power play: 6-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBure               0    1    1\nRonning            1    0    1\nSlegr              0    1    1\n\n-----------------------------------------\nBuffalo                          1 1 0--2\nBoston                           1 1 1--3\nFirst period\n     1, Buffalo, Audette 12 (Corkum, Wood) 16:40.\n     2, Boston, Juneau 30 (Neely, Oates) 18:39.\nSecond period\n     3, Buffalo, Errey 9 (LaFontaine, Khmylev) 10:51.\n     4, Boston, Douris 3 (D.Sweeney, Bourque) 17:57.\nThird period\n     5, Boston, Donato 12 (unassisted) 17:42.\n\nBoston: 3    Power play: 4-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBourque            0    1    1\nDonato             1    0    1\nDouris             1    0    1\nJuneau             1    0    1\nNeely              0    1    1\nOates              0    1    1\nSweeney D          0    1    1\n\nBuffalo: 2    Power play: 5-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAudette            1    0    1\nCorkum             0    1    1\nErrey              1    0    1\nKhmylev            0    1    1\nLaFontaine         0    1    1\nWood               0    1    1\n\n-----------------------------------------\nCalgary                          1 1 0 1--3\nSan Jose                         0 2 0 0--2\nFirst period\n     1, Calgary, Suter 21 (Reichel, MacInnis) pp, 17:47.\nSecond period\n     2, San Jose, Zmolek 5 (Odgers, Evason) 3:03.\n     3, San Jose, Kisio 24 (Garpenlov, Gaudreau) pp, 7:23.\n     4, Calgary, Lindberg 9 (MacInnis) pp, 12:43.\nThird period\n     No scoring.\nOvertime\n     5, Calgary, Fleury 31 (Otto, Yawney) 3:06.\n\nCalgary: 3    Power play: 8-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nFleury             1    0    1\nLindberg           1    0    1\nMacInnis           0    2    2\nOtto               0    1    1\nReichel            0    1    1\nSuter              1    0    1\nYawney             0    1    1\n\nSan Jose: 2    Power play: 9-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nEvason             0    1    1\nGarpenlov          0    1    1\nGaudreau           0    1    1\nKisio              1    0    1\nOdgers             0    1    1\nZmolek             1    0    1\n\n-----------------------------------------\nPittsburgh                       0 3 2--5\nQuebec                           2 1 0--3\nFirst period\n     1, Quebec, Kamensky 15 (Huffman) 6:05.\n     2, Quebec, Young 27 (Lapointe, Huffman) 16:52.\nSecond period\n     3, Pittsburgh, Mullen 29 (Lemieux, Murphy) 3:54.\n     4, Pittsburgh, Lemieux 60 (Tocchet, U.Samuelsson) 5:07.\n     5, Pittsburgh, Lemieux 61 (Tocchet, Stevens) 8:12.\n     6, Quebec, Young 28 (Sundin, Kovalenko) pp, 14:52.\nThird period\n     7, Pittsburgh, Tippett 4 (unassisted) sh, 3:52.\n     8, Pittsburgh, Tippett 5 (McEachern, Mullen) 8:25.\n\nPittsburgh: 5    Power play: 1-0   Special goals:  sh: 1  Total: 1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nLemieux            2    1    3\nMcEachern          0    1    1\nMullen             1    1    2\nMurphy             0    1    1\nSamuelsson U       0    1    1\nStevens            0    1    1\nTippett            2    0    2\nTocchet            0    2    2\n\nQuebec: 3    Power play: 4-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nHuffman            0    2    2\nKamensky           1    0    1\nKovalenko          0    1    1\nLapointe           0    1    1\nSundin             0    1    1\nYoung              2    0    2\n\n-----------------------------------------\nNew Jersey                       0 0 0--0\nToronto                          0 0 1--1\nFirst period\n     No scoring.\nSecond period\n     No scoring.\nThird period\n     1, Toronto, Gilmour 32 (Andreychuk, Anderson) 16:22.\n\nToronto: 1    Power play: 5-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAnderson           0    1    1\nAndreychuk         0    1    1\nGilmour            1    0    1\n\nNew Jersey: 0    Power play: 3-0\nNo scoring\n\n-----------------------------------------\nOttawa                           1 0 2--3\nHartford                         5 1 1--7\nFirst period\n     1, Ottawa, Maciver 17 (Baker, Luongo) 4:22.\n     2, Hartford, Kron 11 (Nylander, Gosselin) 5:13.\n     3, Hartford, Burt 4 (Cassels, Verbeek) 7:59.\n     4, Hartford, Cunneyworth 4 (Yake, Nylander) 9:59.\n     5, Hartford, Sanderson 42 (Cassels, Houda) 11:11.\n     6, Hartford, Verbeek 35 (Cassels, Zalapski) pp, 15:50.\nSecond period\n     7, Hartford, Sanderson 43 (Cassels, Zalapski) pp, 18:38.\nThird period\n     8, Hartford, Kron 12 (Poulin, Burt) 4:57.\n     9, Ottawa, Turgeon 23 (Lamb) 8:57.\n     10, Ottawa, Baker 17 (Luongo, Maciver) pp, 16:17.\n\nHartford: 7    Power play: 3-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBurt               1    1    2\nCassels            0    4    4\nCunneyworth        1    0    1\nGosselin           0    1    1\nHouda              0    1    1\nKron               2    0    2\nNylander           0    2    2\nPoulin             0    1    1\nSanderson          2    0    2\nVerbeek            1    1    2\nYake               0    1    1\nZalapski           0    2    2\n\nOttawa: 3    Power play: 7-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBaker              1    1    2\nLamb               0    1    1\nLuongo             0    2    2\nMaciver            1    1    2\nTurgeon            1    0    1\n\n-----------------------------------------\nWinnipeg                         1 3 2--6\nEdmonton                         1 0 3--4\nFirst period\n     1, Winnipeg, Tkachuk 27 (Housley, Zhamnov) pp, 14:38.\n     2, Edmonton, Klima 31 (Ciger, Elik) 16:05.\nSecond period\n     3, Winnipeg, King 8 (unassisted) 3:54.\n     4, Winnipeg, Zhamnov 21 (Selanne) 10:25.\n     5, Winnipeg, Domi 5 (Selanne, Housley) 18:44.\nThird period\n     6, Edmonton, Manson 15 (unassisted) 10:58.\n     7, Winnipeg, Eagles 8 (Numminen, Bautin) pp, 14:13.\n     8, Winnipeg, Zhamnov 22 (Ulanov, Selanne) 15:27.\n     9, Edmonton, Gelinas 8 (Kravchuk, Ranford) 16:48.\n     10, Edmonton, Kravchuk 10 (Buchberger) 18:42.\n\nWinnipeg: 6    Power play: 5-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBautin             0    1    1\nDomi               1    0    1\nEagles             1    0    1\nHousley            0    2    2\nKing               1    0    1\nNumminen           0    1    1\nSelanne            0    3    3\nTkachuk            1    0    1\nUlanov             0    1    1\nZhamnov            2    1    3\n\nEdmonton: 4    Power play: 3-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBuchberger         0    1    1\nCiger              0    1    1\nElik               0    1    1\nGelinas            1    0    1\nKlima              1    0    1\nKravchuk           1    1    2\nManson             1    0    1\nRanford            0    1    1\n\n-----------------------------------------\nChicago                          0 3 0 0--3\nSt. Louis                        1 2 0 0--3\nFirst period\n     1, St. Louis, Shanahan 46 (Janney, Hull) pp, 4:09.\nSecond period\n     2, Chicago, Murphy 4 (Chelios, Roenick) pp, 0:50.\n     3, St. Louis, Shanahan 47 (Hedican, Janney) 1:18.\n     4, Chicago, Noonan 16 (Murphy, Chelios) pp, 5:24.\n     5, St. Louis, Bozon 6, ps, 12:13.\n     6, Chicago, Roenick 43 (Sutter, Murphy) pp, 18:39.\nThird period\n     No scoring.\nOvertime\n     No scoring.\n\nSt. Louis: 3    Power play: 4-1   Special goals:  pp: 1  ps: 1  Total: 2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBozon              1    0    1\nChelios            0    1    1\nHedican            0    1    1\nHull               0    1    1\nJanney             0    2    2\nMurphy             0    1    1\nShanahan           2    0    2\n\nChicago: 3    Power play: 3-3\nScorer            G    A   Pts\n---------------  ---  ---  ---\nChelios            0    2    2\nMurphy             1    2    3\nNoonan             1    0    1\nRoenick            1    1    2\nSutter             0    1    1\n\n-----------------------------------------\nMontreal                         0 1 2--3\nNY Islanders                     0 2 0--2\nFirst period\n     No scoring.\nSecond period\n     1, Montreal, Brunet 10 (Carbonneau, Daigneault) 4:39.\n     2, NY Islanders, Turgeon 51 (Thomas, Kurvers) pp, 9:14.\n     3, NY Islanders, Mullen 16 (unassisted) 15:13.\nThird period\n     4, Montreal, Bellows 38 (Desjardins, Dipietro) 3:01.\n     5, Montreal, Damphousse 38 (Desjardins, Bellows) pp, 10:11.\n\nMontreal: 3    Power play: 5-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBellows            1    1    2\nBrunet             1    0    1\nCarbonneau         0    1    1\nDaigneault         0    1    1\nDamphousse         1    0    1\nDesjardins         0    2    2\nDipietro           0    1    1\n\nNY Islanders: 2    Power play: 5-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nKurvers            0    1    1\nMullen             1    0    1\nThomas             0    1    1\nTurgeon            1    0    1\n\n-----------------------------------------\nMinnesota                        2 1 0--3\nLos Angeles                      0 0 0--0\nFirst period\n     1, Minnesota, Dahlen 33 (unassisted) 2:34.\n     2, Minnesota, Courtnall 33 (Dahlen, Modano) pp, 9:30.\nSecond period\n     3, Minnesota, McPhee 14 (Sjodin, Hatcher) pp, 7:24.\nThird period\n     No scoring.\n\nMinnesota: 3    Power play: 11-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nCourtnall          1    0    1\nDahlen             1    1    2\nHatcher            0    1    1\nMcPhee             1    0    1\nModano             0    1    1\nSjodin             0    1    1\n\nLos Angeles: 0    Power play: 5-0\nNo scoring\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8233, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: richk@grebyn.com (Richard Krehbiel)\nSubject: Re: VL-bus HDD/FDD controller or IDE HDD/FDD controller?\nIn-Reply-To: taybh@hpsgm2.sgp.hp.com's message of 20 Apr 93 13:30:17 GMT\nLines: 16\nOrganization: Grebyn Timesharing, Inc.\n\nIn article <62890018@hpsgm2.sgp.hp.com> taybh@hpsgm2.sgp.hp.com (Beng Hang TAY) writes:\n\n>   Hi,\n>       I am buying a Quantum LPS240AT 245 MB hardisk and is deciding a\n>       HDD/FDD controller. Is 32-bit VL-bus HDD/FDD controller faster \n>       than 16 bit IDE HDD/FDD controller card?\n\nNo, VL-bus IDE is no faster than ISA IDE.  The IDE interface is\nfundamentally nothing more than an extension of the ISA bus, and if\nyou hook it to VL-bus it'll work as fast as the slower of the two,\nmeaning ISA speed.\n\n>       I hear that\n>       the VL bus controller is SLOWER than a IDE controller?\n\nOn the other hand, I wouldn't expect it to be *slower*...\n-- \nRichard Krehbiel                                 richk@grebyn.com\nOS/2 2.0 will do for me until AmigaDOS for the 386 comes along...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8234, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Slavery (was Re: Why is sex only allowed in marriage: ...)\nOrganization: Cookamunga Tourist Bureau\nLines: 16\n\nIn article <1993Apr14.132813.16343@monu6.cc.monash.edu.au>,\ndarice@yoyo.cc.monash.edu.au (Fred Rice) wrote:\n> Anyhow, on the basis of the apparent success of Islamic banks, it seems\n> to me that the statement that a zero-interest economy cannot survive in\n> today's world may be a bit premature.\n\nI'm sure zero-intested economical systems survive on a small-scale,\nco-ops is not an Islamic invention, and we have co-operatives working\nall around the world. However such systems don't stand the corruption\nof a large scale operation. Actually, nothing could handle human\ngreed, IMHO. Not even Allah :-).\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8235, "properties": {"category": "rec.autos", "text": "From: kevinh@hslrswi.hasler.ascom.ch (kevinh)\nSubject: Re: WARNING.....(please read)...\nOriginator: kevinh@nath\nReply-To: kevinh@hasler.ascom.ch\nOrganization: Ascom Hasler AG\nLines: 20\n\n\nIn article <C5H7qz.KyA@boi.hp.com>, wesf@boi.hp.com (Wes Fujii) writes:\n|> Brian LaRose (larose@austin.cs.utk.edu) wrote:\n|> \n|> : I never saw the guy.  The police said they thought the motive was to\n|> : hit the car, have us STOP to check out the damage, and then JUMP US,\n|> : and take the truck.  \n|> : \n|> : PLEASE BE AWARE OF FOLKS.  AND FOR YOUR OWN GOOD, PLEASE DON'T STOP!!!!\n|> \n|> Sad.  This sort of thing is on the rise across the country.  South Florida\n|> is getting a lot of national TV coverage on the subject where vacationers\n|> are being attacked (and some killed) in schemes similar to this.\n\nMake that worldwide coverage. I know numerous people who were planning\nholidays to the Florida, and have now chosen another (non-US)\ndestination. You expect this sort of thing, perhaps, in third world\ncountries - but not the US!\n\nkevinh@hasler.ascom.ch\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8236, "properties": {"category": "rec.motorcycles", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: Boom! Dog attack!\nOrganization: Iowa State University, Ames IA\nLines: 36\n\nryan_cousineau@compdyn.questor.org (Ryan Cousineau)  writes:\n\n>Riding up the hill leading to my\n>house, I encountered a liver-and-white Springer Spaniel (no relation to\n>the Springer Softail, or the Springer Spagthorpe, a close relation to\n>the Spagthorpe Viking).\n\n\tI must have missed the article on the Spagthorpe Viking.  Was\nthat the one with the little illuminated Dragon's Head on the front\nfender, a style later copied by Indian, and the round side covers?\n\n[accident deleted]\n\n>What worries me about the accident is this: I don't think I could have\n>prevented it except by traveling much slower than I was. This is not\n>necessarily an unreasonable suggestion for a residential area, but I was\n>riding around the speed limit.\n\n\tYou can forget this line of reasoning.  When an animal\ndecides to take you, there's nothing you can do about it.  It has\nsomething to do with their genetics.  I was putting along at a\nmere 20mph or so, gravel road with few loose rocks on it (as in,\njust like bad concrete), and 2200lbs of swinging beef jumped a\nfence, came out of the ditch, and rammed me!  When I saw her jump\nthe fence I went for the gas, since she was about 20 feet ahead\nof me but a good forty to the side.  Damn cow literally chased me\ndown and nailed me.  No damage to cow, a bent case guard and a\nseverely annoyed rider were the only casualties.  If I had my\nshotgun I'd still be eating steak.  Nope, if 2200lbs of cow\ncan hit me when I'm actively evading, forget a much more\nmanueverable dog.  Just run them over.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.391+0000", "event": "documents", "entityId": 8237, "properties": {"category": "sci.electronics", "text": "From: harpe@netnews.louisville.edu (Mike Harpe)\nSubject: WANTED: Protel EasyTrax for the MAC\nOrganization: University of Louisville\nLines: 12\n\nThe title says it all.  Contact me via EMAIL if you would can help me out...\n\nMike Harpe\nUniversity of Louisville\n\nP.S.  I KNOW IT IS DISCONTINUED.  I want someone who would like to sell\n      an old copy.\n-- \nMichael Harpe, Programmer/Analyst      Information Technology, Ormsby Bldg.\nharpe@hermes.louisville.edu            University of Louisville\n(502)588-5542                          Louisville, Ky. 40292\n\"He's not a man, he's a remorseless eating machine!\" - The Simpsons\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8238, "properties": {"category": "rec.autos", "text": "From: bmoss@grinch.sim.es.com (Brent \"Woody\" Moss)\nSubject: Re: Changing oil by self.\nKeywords: n\nNntp-Posting-Host: 130.187.200.5\nOrganization: Evans & Sutherland Computer Corp., Salt Lake City, UT\nDistribution: usa\nLines: 26\n\nIn article <1993Apr15.160922.8797@magnus.acs.ohio-state.edu>, sorlin@magnus.acs.ohio-state.edu (Steven J Orlin) writes:\n|> \n|> In article <1993Apr15.135514.29579@cbnewsj.cb.att.com> rdb1@cbnewsj.cb.att.com\n|> (ronald.j.deblock..jr) writes:\n|> \n|> >You can avoid these problems entirely by installing an oil drain valve in\n|> >place of the bolt.  I have one on both of my cars.  There have been no\n|> >leaks in 210,000 miles (combined miles on both cars).\n|> \n|> Yes, but then someone would have no problem draining your oil in a parking lot.\n|> \n|> all they have to do is reach underneath, turn a valve, and forget the trip \n|> home.\n|> But there is less likelyhood they have a wrench with them.\n|> \n|> I personally recommend, installing a 'special' locking drain plug to keep\n|> vandals away. :---)\n|> \n|> steve\n\nI was worried about someone stealing my oil once also. I finally \ndecided to just have my drain plug welded shut. It works great !\nI figure that when I add three or four quarts when the oil light\ncomes on every month or so that it's just as good or better than\nthe old wives tale of changing the oil AND filter every 3000 miles.\nWorks for me, I must say. \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8239, "properties": {"category": "rec.motorcycles", "text": "From: joe@rider.cactus.org (Joe Senner)\nSubject: Re: BMW MOA members read this!\nReply-To: joe@rider.cactus.org\nDistribution: world\nOrganization: NOT\nLines: 25\n\nvech@Ra.MsState.Edu (Craig A. Vechorik) writes:\n]I wrote the slash two blues for a bit of humor which seems to be lacking\n]in the MOA Owners News, when most of the stuff is \"I rode the the first\n]day, I saw that, I rode there the second day, I saw this\" \n\nI admit it was a surprise to find something interesting to read in \nthe most boring and worthless mag of all the ones I get.\n\n]any body out there know were the sense if humor went in people?\n]I though I still had mine, but I dunno... \n\nI think most people see your intended humor, I do, I liked the article.\nyou seem to forget that you've stepped into the political arena. as well\nintentioned as you may intend something you're walking through a china\nstore carrying that /2 on your head. everything you say or do says something\nabout how you would represent the membership on any given day. you don't\nhave to look far in american politics to see what a few light hearted\njokes about one segment of the population can do to someone in the limelight.\n\nOBMoto: I did manage to squeak in a reference to a /2 ;-)\n\n-- \nJoe Senner                                                joe@rider.cactus.org\nAustin Area Ride Mailing List                            ride@rider.cactus.org\nTexas SplatterFest Mailing List                          fest@rider.cactus.org\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8240, "properties": {"category": "talk.religion.misc", "text": "From: smithw@col.hp.com (Walter Smith)\nSubject: Re: Part 1 and part 2  (re: Homosexuality)\nOrganization: Colorado Springs IT Center\nLines: 51\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\nrich.bellacera@amail.amdahl.com writes:\n> \n> The results of the passing amendment in\n> Colorado has created an organization who's posters are appearing all over\n> Colorado called \"S.T.R.A.I.G.H.T.\" (I forget the whole definition off hand,\n> but the last part was Against Immoral Gross Homosexual Trash) and their motto\n> is \"Working for a fag-free America\" with an implicit advocation for violence.\n\nI live in Colorado, and have never heard of such a group.  Obviously claims \nthat their posters are appearing \"all over Colorado\" are a tad overdone... \n\n> This is sick, and it seems to be what you and Mr. Hudson, and others are\n> embracing.\n\nHardly.  Saying that homosexuality is a sin is a far cry from \n\"Working for a fag-free America\".  Saying that I wouldn't want \na homosexual babysitting for my kids doesnt mean I endorse \n\"Against Immoral Gross Homosexual Trash\".  \n\n> We Christians have a LOOOOOOOOOONG tradition of coersion and oppression\n> towards those we feel don't 'measure up',\n\nAnd now we have homosexual advocates telling us that if we don't teach \nour kids that homosexuality is natural and a perfectly acceptable \nalternative lifestyle, then they will have it done for us.  No, thanks. \n\n> The Gospel I believe is not so negative, rather it seeks ways to \"include\"\n> people. \n\nAbsolutely.  And the message is always, \"go and sin no more\".  Not, \nGo and do whatever \"feels good\". \n\nOne question, at the start of your post, you wrote:\n\n> I know many gays and I will NOT turn my back on them or their right to be free\n> form discrimination...I may have lost face with the greater Christian\n> community for the unpopularity of my beliefs, but so did the abolitionists\n> against the oppression of African-Americans.  Many were even killed and\n> treated as runaway slaves for being \"nigger-lovers\" and such.  I guess I've\n> decided the challenge is worth it.\n\nThis sounds real nice, but struck me as a little odd.  You're \npresenting yourself as if you were a straight Xian, who is sticking\nhis neck out and taking on the challenge of speaking out in support \nof gays in the church.  But I was under the impression that you\nyourself are gay.  That's all well and fine, but presenting yourself \nas sticking out your neck to help \"repressed others\" seems a bit \nuntruthful under the circumstances.... \n\nWalter\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8241, "properties": {"category": "rec.sport.baseball", "text": "From: kirsch@staff.tc.umn.edu (Dave 'Almost Cursed the Jays' Kirsch)\nSubject: Going to a Cubbies game ..  \nKeywords: tickets?, parking?, parka?\nNntp-Posting-Host: staff.tc.umn.edu\nOrganization: Li'l Carlos and the Hormones\nDistribution: usa  \nLines: 30\n\n  Well, after suffering from an intense fit of Minnesota-induced cabin fever,\nI've decided to road trip to Milwaukee and take in a couple of games this\nweekend. A couple games at County stadium will be great to relieve tension, \nbut I thought \"Why not go to Wrigley for a game too?\"  \n\n  I see the Cubs are playing the Phillies on Sat (2:05 start, I believe\nthat's Eastern time listed). I figured it would be fun to bounce down to\nWrigley for the day game and live it up a little. I'm wondering if anyone\n(esp. Cubbie fans) have some advice on: \n\n  1) If I'm taking 41 (Skokie Hwy) south until it runs into 94, what's the \n     best way to get to Wrigley? I'm planning on getting there an hour or  \n     two early and paying through the nose for parking to keep things easy. \n\n  2) Is it probable that I'll be able to walk up and get bleacher seats (2 or\n     3) on game day? I figure since it's early in the year, Ryno's out and \n     the weather isn't great I should be able to get tickets. If not, what's \n     the best way to get advance tickets; can I call the Cubs' ticket office\n     directly and pick up tickets at the will call window?  \n\n  3) Any advice on where to eat before or after the game? \n\n  4) Do they allow inflatable I-luv-ewe dolls (present from Lundy) into the \n     bleachers? :-) \n \n-- \nDave Hung Like a Jim Acker Slider Kirsch      Blue Jays - Do it again in '93 \nkirsch@staff.tc.umn.edu                        New .. quotes out of context!\n\"Not to beat a dead horse, but it's been a couple o' weeks .. this \n disappoints me..punishments..discharges..jackhammering..\" - Stephen Lawrence \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8242, "properties": {"category": "talk.politics.misc", "text": "From: edo2877@ucs.usl.edu (Ott Edward D)\nSubject: EMAIL\nKeywords: E-mail Clinton\nOrganization: Univ. of Southwestern La., Lafayette\nDistribution: usa\nLines: 5\n\ndoes anyone have Prez. Clinton`s e-mail address.\nthanks a lot \n \n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8243, "properties": {"category": "sci.med", "text": "From: hrubin@pop.stat.purdue.edu (Herman Rubin)\nSubject: Re: Science and Methodology\nOrganization: Purdue University Statistics Department\nDistribution: inet\nLines: 28\n\nIn article <1qk92lINNl55@im4u.cs.utexas.edu> turpin@cs.utexas.edu (Russell Turpin) writes:\n\n>In article <C5I2Bo.CG9@news.Hawaii.Edu> lady@uhunix.uhcc.Hawaii.Edu (Lee Lady) writes:\n>> The difference between a Nobel Prize level scientist and a mediocre\n>> scientist does not lie in the quality of their empirical methodology.  \n>> It depends on the quality of their THINKING.  \n\n\t\t\t....................\n\n>Lee Lady is correct when she asserts that the difference between\n>Einstein and the average post-doc physicist is the quality of\n>their thought.  But what is the difference between Einstein and a\n>genius who would be a great scientist but whose great thoughts\n>are scientifically screwy?\n\nThis example is probably wrong.  There is the case of one famous\nphysicist telling another that he was probably wrong.  As I recall\nthe quote:\n\n\tYour ideas are crazy, to be sure.  But they are not crazy\n\tenough to be right.\n\nThe typical screwball is only somewhat screwy.\n-- \nHerman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907-1399\nPhone: (317)494-6054\nhrubin@snap.stat.purdue.edu (Internet, bitnet)  \n{purdue,pur-ee}!snap.stat!hrubin(UUCP)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8244, "properties": {"category": "talk.politics.misc", "text": "From: brow2812@mach1.wlu.ca (craig brown 9210 u)\nSubject: Re: Stop The SeXularHumanistOppression { former my beloved  Damn Ferigner's Be Taken Over}\nOrganization: Wilfrid Laurier University\nLines: 35\n\nIn article <C5HIu1.8A9@spss.com> gregotts@spss.com (Greg Otts) writes:\n>In article <C5HCrw.Dn3@junior.BinTec.DE> muftix@junior.BinTec.DE (Juergen Ernst Guenther) writes:\n>>\n>>I never understood why Canadians, Mexicans, Brazilians etc. accusing\n>>US. people for imperialism though think of them as \"The Americans\".\n>>\n>>Not few Europeans think of you all as Americans (and of the US. as\n>>a bunch of blasphemeous trash that GOD has to extinguish sooner or later ...;) \n>>\n>> .m.\n>\n>It would not be surprising that a continent that produced fascism, communism, \n>and two world wars might have quite a few people who tend to think of other\n>people as trash that should be extinguished sooner or later.  I seem to \n>remember a gut called  Hitler who felt the same way. One wonders what would be\n>the fate of Europe if God had extinguished this nation of blasphemeous trash\n>before 1917. (Not that I believe in gods.)  How many millions of people through-\n>out the world would have to die because no force could stop the insane, bloody\n>European imperialism? Thankfully the \"imperialistic\" US helped put an end to \n>these games so that the rest of the world can sleep alittle more safely. Thus, I \n>could care less what \"not few Europeans\" think so long as they can't do anything \n>about it.\n>\n>  - Greg Otts\n>\n>These opinions are entirely my own.\n>\n\nBut remember that had God extinguished the blasphemous trash of Europe (and\nImperialism with it), the United States would not exist today to put an end\nto those \"games\"....begs the question, which came first, the chicken or the\negg???\n\nC.Brown\n \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8245, "properties": {"category": "rec.autos", "text": "From: c23st@kocrsv01.delcoelect.com (Spiros Triantafyllopoulos)\nSubject: Re: Ad said Nissan Altima best seller?\nOrganization: Delco Electronics Corp.\nLines: 23\n\nIn article <1r0vk6INNaft@cronkite.Central.Sun.COM> dbernard@clesun.Central.Sun.COM writes:\n>>I too was puzzled by this obvious untruth. What I think is going on is that\n>>Nissan claims that the Altima is \"the best selling new car namelplate in\n>>the US\" (I think I have this near verbatim). Lee Iaccoca's statistics\n>>dept. would have been proud of that sentence.\n>\n>Note that the Corolla/Prism are also new designs... but hey are not new \n>\"nameplates.\"  I guess Nissan doesn't even sell as many Altimas as\n>Toyota does Corollas, or there would be no \"nameplate\" qualifier.\n\nBut waiiiiiit, isn't Nissan officially registering the car as far as\ngovernment paperwork goes, Nissan Stanza Altima, to avoid costly and\nlengthy paperwork? I read this on the net a while ago, and someone\nactually may have said there's a little Stanza logo on the Altima\nsomewhere.\n\nYou *can* have it both ways :-)\n\nSpiros\n-- \nSpiros Triantafyllopoulos                    c23st@kocrsv01.delcoelect.com\nSoftware Technology, Delco Electronics       (317) 451-0815\nGM Hughes Electronics, Kokomo, IN 46904      \"I post, therefore I ARMM\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8246, "properties": {"category": "comp.graphics", "text": "From: dr_bobo@ponton.hanse.de (Boris Pruessmann)\nSubject: RE: VGA-Scrolling ?\nOrganization: Ponton European Media Art Lab, Hamburg\nLines: 12\n\nHi !\n\nIf you want to have Soft-Scrolling on your VGA, you have to change some \nintern registers of the CRTC. But it is a little bit difficult to explain, \nso I would suggest, you take a look at \"The Programming of the \nEGA/VGA-Adapter\" by Addison-Wesley. You will find all useful descriptions \nfor every available VGA-Register.\n\n-Boris\n\n---\ndr_bobo@ponton.hanse.de                 ---> Boris Pruessmann\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8247, "properties": {"category": "rec.autos", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: MILITECH\nNntp-Posting-Host: wind.bellcore.com\nReply-To: jchen@ctt.bellcore.com\nOrganization: Bell Communications Research\nLines: 34\n\nI saw an interesting product in NY Auto Show, and would like to \nhear your comments.\n\nMILITECH(tm) is yet another oil additive. But the demonstration of this\nproduct really impressive, if it didn't cheat.\n\nThe setup of the demo is fairly simple. A cone shaped rotor is\nhalf submerged in a small oil sink, filled with motor oil. The rotor\nis powered by an electronic motor. A metal pad is pressed against\nthe rotor using the torque wrench until the rotor stopped by friction. \nThe torque that is needed to stop rotor is read from the torque wrench.\n\nBefore MILITECH was added, the rotor was stopped with about 60 lb-ft\nof torque (You pick the brand of oil, no difference). Once MILITECH was \nadded to the oil, the rotor could not be stopped even with 120+ lb-ft of\ntorque. \n\nHere is the good part: even after the salesman emptied the oil sink, \nyou still could not stopped the rotor with the thin film remained  on it.\n\nThey say you need only add 2oz per quart of oil every 15k miles. A 16 oz\nbottle is $25.\n\nI still have my doubts. If this product is really so great, why it was\nso little known? The salesman said it is widely used in military. I didn't\nbelieve it.  The demo was so impressive, that I bought a bottle against\nmy common sense.\n\nHas anyone heard of or actually used this product? Is it real?\nIf you are going to the auto show, please visit this stand on the \nsecond floor. See if can find out if the demo is a hoax or not.\n\nJason Chen\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8248, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: <Political Atheists?\nOrganization: Case Western Reserve University\nLines: 29\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1pigidINNsot@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n\n>mathew <mathew@mantis.co.uk> writes:\n>>As for rape, surely there the burden of guilt is solely on the rapist?\n>\n>Not so.  If you are thrown into a cage with a tiger and get mauled, do you\n>blame the tiger?\n\n\tA human has greater control over his/her actions, than a \npredominately instictive tiger.\n\n\tA proper analogy would be:\n\n\tIf you are thrown into a cage with a person and get mauled, do you \nblame that person?\n\n\tYes. [ providing that that person was in a responsible frame of \nmind, eg not clinicaly insane, on PCB's, etc. ]\n\n---\n\n        \"One thing that relates is among Navy men that get tatoos that \n        say \"Mom\", because of the love of their mom.  It makes for more \n        virile men.\"\n\n        Bobby Mozumder  ( snm6394@ultb.isc.rit.edu )\n        April 4, 1993\n\n        The one TRUE Muslim left in the world. \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8249, "properties": {"category": "rec.sport.hockey", "text": "From: Robert Angelo Pleshar <rp16+@andrew.cmu.edu>\nSubject: Re: Wirtz is a weenie\nOrganization: University Libraries - E&S Library, Carnegie Mellon, Pittsburgh, PA\nLines: 18\n\t<9487@blue.cis.pitt.edu>\nNNTP-Posting-Host: po2.andrew.cmu.edu\nIn-Reply-To: <9487@blue.cis.pitt.edu>\n\nfrom Dean:\n>>In other TV news, the Penguins announced yesterday that they will have 3\n>>fewer broadcast TV games, and will have 22(!) games on some sort of\n>>subscription / pay-per-view system. Yuck.\n> \n>This is incorrect.  This year the Pens had 61 games on \"free\" TV and 6\n>games on PPV.  Next year they will have 62 games on free TV and 22 on \n>a subscription basis.  \n> \n>You actually get 1 more free game than last year, and there will be no\n>more \"radio-only\" games.\n\nYes, you're right. After going home and reading the paper, I got the\nfull details. That's what I get for making a post based on WDUQ's news.\nI should know by now they get just about every sports related item wrong.\n\nRalph\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8250, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Albert Sabin\nFrom: rfox@charlie.usd.edu (Rich Fox, Univ of South Dakota)\nReply-To: rfox@charlie.usd.edu\nOrganization: The University of South Dakota Computer Science Dept.\nNntp-Posting-Host: charlie\nLines: 62\n\nIn article <1quim9INNem8@ctron-news.ctron.com>, king@ctron.com (John E. King) writes:\n>\n>\n>rfox@charlie.usd.edu writes:\n>\n>>Bill, I have taken the time to explain that biblical scholars consider the\n>>Josephus reference to be an early Christian insert.  By biblical\n>scholar I mean\n>>an expert who, in the course of his or her research, is willing to let\n>the\n>>chips fall where they may.  This excludes literalists, who may\n>otherwise be\n>>defined as biblical apologists.  They find what they want to find. \n>They are\n>>not trustworthy by scholarly standards (and others).\n>\n>I've seen this claim about the \"Josephus insert\" flying around the\n>net too often to continue to ignore it.  Perhaps it's true.  Was\n>there only one Josephus manuscipt?  If there were, say, 100 copies,\n>the forger would have to put his insert into all of them.  By the\n>same token, since Josephus was a historian, why are biblical scholars\n>raising the flag?  Historical scholars , I would think, would have\n>a better handle on these ancient secular documents.  Can you give \n>researchers documents (page numbers, etc)?\n>\n>Jack\n\nI became aware of the claim years ago.  So I decided to check it out, on my\nown.  But, then, that was in BN times (Before Net).  So, here are some \nreferences.  See Robin Lane Fox's _The unauthorized version_, (p.284) where \nLane Fox writes, \"... the one passage which appears to [comment on Jesus' \ncareer] is agreed to be a Christian addition.\"\n\nIn my Re:Albert Sabin response (C5u7sJ.391@sunfish.usd.edu) to Jim Lippard (21\nApril 93), I noted that consensus is typically indicated subtly as in Elaine \nPagel's _The gnostic gospels_ (p.85), to wit:  \"A comment *attributed* to\nJosephus reports ... [emphasis mine]\".  Scholars sometimes do not even mention\nthe two Josephus entries, another subtlety reflecting consensus.\n\nSo far as I can deduce, today's consensus is built on at least three things: \n1) the long passage is way out of context, 2) Origen did not know about the\nlong passage, and 3) the short and long passages are contradictory. \nI don't know the references wherein the arguments which led to consensus are\norginally developed (does anyone?).\n\nBiblical scholars as I defined them include theologians and historians.  The\nformer, like the latter, incorporate historical, social, technological and\nideological contexts as well as theology.  So the distinction is blurred.  I \ndidn't elaborate on that.  Sorry.  (In turn, historians are compelled to\nincorporate theology).\n\nCan't say about the number of copies.  These were, however, BG times (Before \nGutenburg).  A hundred first editions seems exceedingly high; counting on one \nhand seems more reasonable.  Perhaps those mss. without the long insert (if any,\nbecause anything is possible) have been destroyed.  Such a practice is \ncertainly not foreign to religions.  Anyway, all we have are mss. which have \nthe two entries.  Lippart (in the message noted above) talks about an Arabic \nms.  But here the ms. date is critical.\n\n:-)\n\nRich Fox, Anthro, Usouthdakota\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8251, "properties": {"category": "talk.politics.guns", "text": "From: mjp@watson.ibm.com (Michael Phelps)\nSubject: Re: Need Senate Bill numbers and House Resolution numbers\nOriginator: mjp@bwa.kgn.ibm.com\nReply-To: mjp@vnet.ibm.com (Michael J. Phelps)\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: bwa.kgn.ibm.com\nOrganization: IBM Kingston NY\nLines: 1835\n\n\nTry the firearms archive.  Larry Cipriani's instructions follow.  By\nthe way, thanks for the archive Larry..\n\nThis year is the 103rd congress directory.\n\n----------------------------\nFrom\nwatson!yktnews.watson.ibm.com!newsgate.watson.ibm.com!news.ans.net!howland.r\nreston.ans.net!bogus.sura.net!darwin.sura.net!dtix.dt.navy.mil!mimsy!cbvox1.\n.att.com!lvc Thu Apr  8 19:41:01 1993\nArticle: 40039 of talk.politics.guns\nPath:\nwatson!yktnews.watson.ibm.com!newsgate.watson.ibm.com!news.ans.net!howland.r\nreston.ans.net!bogus.sura.net!darwin.sura.net!dtix.dt.navy.mil!mimsy!cbvox1.\n.att.com!lvc\nFrom: lvc@cbvox1.att.com\nNewsgroups: talk.politics.guns\nSubject: Information about the anonymous ftp RKBA archive\nMessage-ID: <1993Apr8.182924.7274@cbnews.cb.att.com>\nDate: 8 Apr 93 22:50:09 GMT\nSender: magnum@mimsy.umd.edu\nOrganization: Ideology Busters, Inc.\nLines: 1795\n\nThis is the INDEX file for the anonymous ftp RKBA archive.\nThe archive site has been moved and is now at:\n\n\tgodiva.nectar.cs.cmu.edu\n\t\nin the directory\n\n\t/usr0/anon/pub/firearms/politics/rkba\n\nThis archive is accessible only via anonymous ftp; instructions for\nanonymous ftp are at the end of this file.\n\nAn email server is available at another site, and as a result is\nnot completely in sync with this archive.  To get the index for\nthe rkba email-server send:\n\n\tget rkba index\n\nas the body of a message to listserv@mainstream.com\n\nFor help send:\n\n\thelp\n\nIf you have any additions or suggestions for improvement to the\nRKBA archive please let me know.\n--\nLarry Cipriani, att!cbvox1!lvc or l.v.cipriani@att.com\n\n----------------------------------------------------------------------\nFile: rkba82\n\nReport of the Subcommittee on the Constitution of the Committee on\nthe Judiciary, United States Senate, Ninety-seventh Congress, Second\nSession, February, 1982\n----------------------------------------------------------------------\nFile: congress/102nd/HCR11\n\nHouse Concurrent Resolution 11 by Mr. Crane, January 3, 1991\n\nExpressing the sense of the Congress with respect to the right of all\nAmericans to keep and bear arms in defense of life or liberty and in\npursuit of all other legitimate endeavors.\n----------------------------------------------------------------------\nFile: congress/102nd/HJR438\n\nHouse Joint Resolution 438 by Mr. Major Owens, March 11, 1992\n\nProposing an amendment to the Constitution of the United States\nrepealing the Second Amendment to the Constitution; includes comments\nby Owens entered into the Congressional Record.\n----------------------------------------------------------------------\nFile: congress/102nd/HR1133\n\nHouse Bill 1133 by Mr. Goodling, February 27, 1991\n\nTo amend title 18, United States Code, to prohibit transfer of firearm to,\nor possession of a firearm by, a person convicted of a drug crime, and to\nprovide enhanced penalties for possession of a firearm during a drug crime.\n----------------------------------------------------------------------\nFile: congress/102nd/HR1354\n\nHouse Bill 1354 by Mr. Scheuer, March 7, 1991\n\nTo end the use of steel jaw leghold traps on animals in the United States.\n----------------------------------------------------------------------\nFile: congress/102nd/HR1412\n\nHouse Bill 1412 by Mr. Staggers, March 13, 1991\n\nTo amend title 18, United States Code, to provide for the establishment\nof a national hotline which a Federal Firearms licensee may contact to\nlearn if receipt of a handgun by a prospective transferee is prohibited,\nand to require such a licensee to contact the hotline before the transfer\nof a handgun to a nonlicensee.\n----------------------------------------------------------------------\nFile: congress/102nd/HR1559\n\nHouse Bill 1559 by Mr. Gibbons, March 21, 1991\n\nTo prohibit the importation of semiautomatic assault weapons, large\ncapacity ammunition feeding devices, and certain accessories.\n----------------------------------------------------------------------\nFile: congress/102nd/HR1770\n\nHouse Bill 1770 by Mr. Smith of Florida, April 15, 1991\n\nTo amend title 18, United States Code, to prohibit certain handguns\nwhich are unsuitable for lawful sporting purposes.\n----------------------------------------------------------------------\nFile: congress/102nd/HR19\n\nHouse Bill 19 by Mr. Hughes January 3, 1991\n\nTo prohibit the possession, transfer, and certain exports of restricted\nweapons, the manufacture of firearms capable of accepting a silencer or\nbayonet without alteration, and the possession and transfer of large\ncapacity ammunition feeding devices, and for other purposes.\n----------------------------------------------------------------------\nFile: congress/102nd/HR282\n\nHouse Bill 282 by Mrs. Collins, January 3, 1991\n\nTo provide for the mandatory registration of handguns.\n----------------------------------------------------------------------\nFile: congress/102nd/HR2922\n\nHouse Bill 2922 by Mr. Cardin, July 17, 1991\n\nTo amend the Public Health Service Act to establish an entitlement of\nStates\nand certain political subdivisions of States to receive grants for the\nabatement of health hazards associated with lead-based paint, and to amend\nthe Internal Revenue Code of 1986 to impose an excise tax and establish a\ntrust fund to satisfy the Federal obligations arising from such\nentitlement.\n\n[This bill would impose upto a $0.75/pound tax on all new lead, and\n$0.37/pound tax on recycled lead.]\n----------------------------------------------------------------------\nFile: congress/102nd/HR318\n\nHouse Bill 318 by Mr. Dornan, January 3, 1991\n\nTo amend the Animal Welfare Act to prohibit dog racing and dog training\ninvolving the use of live animals as visual lure and to make such Act\napplicable to facilities that are used for dog racing or dog race training.\n----------------------------------------------------------------------\nFile: congress/102nd/HR3371\n\nHouse Bill 3371\n\t\t\t\n\"The Violent Crime Prevention Act of 1991\"\n----------------------------------------------------------------------\nFile: congress/102nd/HR371\n\nHouse Bill 371 by Mr. Marlenee, January 3, 1991\n\nTo protect persons engaged in a lawful hunt within a national forest;\nestablishing an administrative civil remedy against individuals or groups\nintentionally obstructing, impeding, or interfering with the conduct of a\nlawful hunt; and for other purposes.\n----------------------------------------------------------------------\nFile: congress/101st/HR4079\n\nHouse Bill 4079 by Mr. Gingrich, February 22, 1990\n\nTo provide swift and certain punishment for criminals in order\nto deter violent crime and rid America of illegal drug use.\n----------------------------------------------------------------------\nFile: congress/102nd/HR436\n\nHouse Bill 436 by Mr. Weiss, January 3, 1991\n\nTo prohibit the manufacture, transfer, or importation of .25 caliber\nand .32 caliber ammunition.\n----------------------------------------------------------------------\nFile: congress/102nd/HR465\n\nHouse Bill 465 by Mr. Rangel, January 7, 1991\n\nTo prohibit certain exports of fully automatic or semiautomatic\nassault weapons.\n----------------------------------------------------------------------\nFile: congress/102nd/HR4897\n\nHouse Bill 4897 by Mr. Cunningham, April 9, 1992\n\nTo amend title I of the Omnibus Crime Control and Safe Streets Act of 1968\nto deny grant funds to States unless law enforcement officers are permitted\nto carry concealed firearms.\n----------------------------------------------------------------------\nFile: congress/102nd/HR5633\n\nHouse Bill 5633 by Mr. Schumer, July 21, 1992\n\nTo amend title 18, United States Code, to expand the scope of the multiple\nfirearms sales reporting requirement, and to require that persons comply\nwith State and local firearms licensing laws before receiving a Federal\nlicense to deal in firearms.\n----------------------------------------------------------------------\nFile: congress/102nd/HR5807\n\nHouse Bill 5807 by Mr. Schumer, August 10, 1992\n\nTo impose criminal penalties upon the failure of a Federal firearms\nlicensee to report to appropriate authorities the loss or theft of a\nfirearm from the inventory or collection of the licensee.\n----------------------------------------------------------------------\nFile: congress/102nd/HR7\n\nHouse Bill 7 by Mr. Feighan\n\nTo require a waiting period before the purchase of a handgun;\nalso known as \"The Brady Bill\"\n----------------------------------------------------------------------\nFile: congress/102nd/HR750\n\nHouse Bill 750 by Mr. Russo, January 30, 1991\n\nTo amend the Internal Revenue Code of 1954 to provide that the excise tax\non handguns will be transferred to a trust fund to be used for purposes of\nproviding compensation to victims of crime, and for other purposes.\n----------------------------------------------------------------------\nFile: congress/102nd/S214\n\nSenate Bill 214 by Mr. Hatch, January 15, 1991\n\nTo provide procedures for calling Federal constitutional \nconventions under article V for the purpose of proposing \namendments to the United States Constitution.\n----------------------------------------------------------------------\nFile: congress/102nd/S2304\n\nSenate Bill 2304 by Mr. Lautenberg, March 3, 1992\n\nTo amend title 18, United States Code, to permanently prohibit the\npossession of firearms by persons who have been convicted of a violent\nfelony, and for other purposes.\n----------------------------------------------------------------------\nFile: congress/102nd/S257\n\nSenate Bill 257\n\nTo require a waiting period before the purchase of a handgun.\n----------------------------------------------------------------------\nFile: congress/102nd/S2813\n\nSenate Bill 2813 by Mr. Gore, June 4, 1992\n\nTo establish in the Government Printing Office an electronic\ngateway to provide public access to a wide range of Federal\ndatabases containing public information stored electronically.\n----------------------------------------------------------------------\nFile: congress/102nd/S2913\n\nSenate Bill 2913 by Mr. Chafee, June 30 1992\n\nTo prohibit the manufacture, importation, exportation, sale,\npurchase, transfer, receipt, possession, or transportation of\nhandguns and ammunition, with certain exceptions.\n----------------------------------------------------------------------\nFile: congress/102nd/S3282\n\nSenate Bill 3282 by Mr. Mitchell, September 28 1992\n\nTo amend title 18, United States Code, to require a waiting period\nbefore the purchase of a handgun.\n----------------------------------------------------------------------\nFile: congress/101st/S386\n\nSenate Bill 386 by Mr. Metzenbaum, February 8, 1989\n\nTo control the sale and use of assault weapons.                \n----------------------------------------------------------------------\nFile: congress/102nd/S51\n\nSenate Bill 51 by Mr. Moynihan, January 14, 1991\n\nTo prohibit the manufacture, transfer, or importation of .25 caliber\nand .32 caliber and 9 millimeter ammunition.\n----------------------------------------------------------------------\nFile: congress/102nd/S634\n\nSenate Bill 634 by Mr. Symms, March 13, 1991\n\nTo amend chapter 44, title 18, United States Code, to provide clarification\nof limitations on controls of firearms, and to prohibit the use of Federal\nfunds to political subdivisions which implement certain gun control ordi-\nnances.\n----------------------------------------------------------------------\nFile: congress/101st/S747\n\nSenate Bill 747 by Mr. DeConcini,\n\nTo amend chapter 44 of title 18, United States Code, regarding\nassault weapons.\n----------------------------------------------------------------------\nFile: congress/102nd/S789\n\nSenate Bill 789, by Mr. Moynihan, April 9, 1991\n\nTo prohibit the importation of semiautomatic assault weapons, large\ncapacity ammunition feeding devices, and certain accessories.\n----------------------------------------------------------------------\nFile: congress/102nd/S892\n\nSenate Bill 892, By Mr. Metzenbaum, April 23, 1991\n\nTo amend title 15, United States Code, to authorize the Consumer Product\nSafety Commission to regulate the risk of injury associated with firearms.\n----------------------------------------------------------------------\nFile: congress/102nd/S918\n\nSenate Bill 918, by Mr. Packwood, April 24, 1991\n\nThe amend the Internal Revenue Code of 1986 to exempt small manufacturers,\nproducers, and importers from the firearms excise tax.\n----------------------------------------------------------------------\nFile: congress/103rd/HCR3\n\nHouse Concurrent Resolution 3, by Mr. Crane, January 5, 1993\nExpressing the sense of the Congress with respect to the right of all\nAmericans to keep and bear arms in defense of life or liberty and in the\npursuit of all other legitimate endeavors.\n----------------------------------------------------------------------\nFile: congress/103rd/HJR81\n\nHouse Joint Resolution, by Mr. Owens, January 27, 1993\nProposing an amendment to the Constitution of the United States\nrepealing the Second Amendment to the Constitution.\n----------------------------------------------------------------------\nFile: congress/103rd/HR277\n\nHouse Bill 277, by Mr. Mazolli, January 5, 1993 \n\nTo amend title 18, United States Code, to require a waiting period \nbefore the purchase of a handgun. \n----------------------------------------------------------------------\nFile: congress/103rd/HR544\n\nHouse Bill 544, by Mr. Torricelli, January 21, 1993\n\nTo amend title 18, United States Code, to prohibit the transfer of 2 or\nmore handguns to an individual in any 30-day period.\n----------------------------------------------------------------------\nFile: congress/103rd/HR661\n\nHouse Bill 661, by Mrs. Collins, January 27, 1993\n\nTo provide for the manufacturer, importer, or dealer of a handgun or an\nassault weapon to be held strictly liable for damages that result from the\nuse of the handgun or assault weapon.\n----------------------------------------------------------------------\nFile: congress/103rd/HR737\n\nHouse Bill 737, by Mr. REYNOLDS, February 2, 1993\n\nTo provide for the manufacturer or importer of a handgun or an assault\nweapon to be held strictly liable for damages that result from the use\nof the handgun or assault weapon, and to amend the Internal Revenue\nCode of 1986 to increase the excise tax on firearms and use a portion\nof the revenues from such tax to assist hospitals in urban areas to\nprovide medical care to gunshot victims who are not covered under any\nhealth\nplan.\n----------------------------------------------------------------------\nFile: congress/103rd/HR1025\n\nHouse Bill 1025, by Mr. Schumer, February 22, 1993\n\nTo provide for a waiting period before the purchase of a hadgun,\nand for the establishment of a national instant criminal\nbackground check system to be contacted by firearms dealers\nbefore the transfer of any firearm.\n----------------------------------------------------------------------\nFile: congress/103rd/S108\n\nSenate Bill 108, by Mr. Moynihan, January 21, 1993\n\nTo prohibit the importation of semiautomatic assault weapons, large\ncapacity ammunition feeding devices, and certain accessories.\n----------------------------------------------------------------------\nFile: congress/103rd/S109\n\nSenate Bill 109, by Mr. Moynihan, January 21, 1993\n\nTo amend section 923 of title 18, United States Code, to require the\nkeeping\nof records with respect to dispositions of ammunition, and to require a\nstudy\nof the use and possible regulation of sales of ammunition.\n----------------------------------------------------------------------\nFile: congress/103rd/S178\n\nSenate Bill 178, by Mr. Moynihan, January 21, 1993\n\nTo amend chapter 44 of title 18, United States Code, to prohibit the\nmanufacture, transfer, or importation of .25 caliber and .32 caliber\nand 9 millimeter ammunition.\n----------------------------------------------------------------------\nFile: congress/103rd/S179\n\nSenate Bill 179, by Mr. Moynihan, January 21, 1993\n\nTo tax 9 millimeter, .25 caliber, and .32 caliber bullets.\n----------------------------------------------------------------------\nFile: congress/103rd/S376\n\nSenate Bill 376, by Mr. Lautenberg, February 16, 1993\n\nTo prohibit the transfer of 2 or more handguns to an individual in any\n30-day period.\n----------------------------------------------------------------------\nFile: congress/103rd/S414\n\nSenate Bill 414, by Mr. Metzenbaum, February 24, 1993 \n\nTo amend title 18, United States Code, to require a waiting period\nbefore the purchase of a handgun. \n----------------------------------------------------------------------\nFile: gun-free-zones\n\nText of the GUN FREE SCHOOL ZONES ACT OF 1990 from PUBLIC LAW 101-647\nNOV. 29, 1990\n----------------------------------------------------------------------\nFile: aclu\n\nA collection of articles on the ACLU's position on gun control.\nIncluded is ACLU Policy Statement #47 which gives the ACLU interpretation\nof the Second Amendment.\n----------------------------------------------------------------------\nFile: dcm-info\n\nA collection of articles explaining the Civilian Marksmanship Program.\nIn other words, \"Why does the United States Department of Defense sell\nbattle rifles to civilians ? \"\n----------------------------------------------------------------------\nFile: dial911\n\n\"Dial 911 and Die!\"  By Aaron Zelman and Jay Simkin of Jews for the\nPreservation of Firearms Ownership (JPFO)\n----------------------------------------------------------------------\nFile: fija-info\n\nThe Fully Informed Jury Amendment, and what it means to gun owners\nand the right to keep and bear arms.\n----------------------------------------------------------------------\nFile: whitemanslaw\n\nWhite Man's Law by William R. Tonso, from the December 1985\nReason magazine\n----------------------------------------------------------------------\nFile: jefferson\n\nThe First Inaugural Address of Thomas Jefferson, 2nd president of the\nUnited States.\n----------------------------------------------------------------------\nFile: jewishistory\n\nJewish History Rufutes Gun Control Activists, by Elliot Rothenberg\nfrom the February 1988 *American Rifleman*.\n----------------------------------------------------------------------\nFile: law-abiding\n\nThe Law-Abiding Gun Owner as Domestic and Acquaintance Murderer\nfrom \"Guns, Murders, and the Constitution: A Realistic Assessment of\nGun Control,\" by Don B. Kates, February, 1990, pp.45-49.\n----------------------------------------------------------------------\nFile: second-ideology\n\n\"The Second Amendment and the Ideology of Self-Protection\" by\nDon B. Kates, Jr.  Reprinted from CONSTITUTIONAL COMMENTARY,\nVol. 9. No. 1. Winter 1992, (c) 1992 by Constitutional Commentary,\n\nKates puts the Second Amendment and philosophies of self-protection\ninto a historical perspective\n----------------------------------------------------------------------\nFile: new-understa\n\nToward a New Understanding of the Second Amendment, by David T. Hardy\n----------------------------------------------------------------------\nFile: to-bear-arms\n\n\"To Bear Arms for Self Defense: Our Second Amendment Heritage\" by\nStephen P. Halbrook.\n----------------------------------------------------------------------\nFile: no-treason\n\nNo Treason, The Constitution of No Authority by Lysander Spooner\n----------------------------------------------------------------------\nFile: resistance\n\nExcerpts from the study \"Crime Control Through the Use of Armed Force\",\nby Associate Professor Dr. Gary Kleck, Florida State University School\nof Criminology, published in the February 1988 issue of SOCIAL PROBLEMS.\n----------------------------------------------------------------------\nFile: waitper-qna\n\nWaiting Period -- Questions and Answers by Handgun Control, Inc. (HCI)\nand Citizens for Safe Government (CSG)\n----------------------------------------------------------------------\nFile: warsaw\n\n\"The Warsaw Ghetto; 10 Handguns Against Tyranny\",\nby Dr. David I Caplan from February, 1988 American Rifleman.\n----------------------------------------------------------------------\nFile: wethepeople\n\nSupreme Court interpretations of the Second Amendment.\n----------------------------------------------------------------------\nFile: sc-ftp\n\nHow to retreive Supreme Court decisions via anonymous ftp.\n----------------------------------------------------------------------\nFile: alternative-policy\n\nALTERNATIVE POLICY FUTURES by Franklin E. Zimring\nfrom THE ANNALS OF THE AMERICAN ACADEMY OF POLITICAL AND SOCIAL SCIENCE.\nVolume 455, May 1981; published by The American Academy of Political\nand Social Science; 1981.\n----------------------------------------------------------------------\nFile: embarassing.2nd.amendment\n\nThe Embarassing Second Amendment by Sanford Levinson, Yale Law Journal\nVolume 99, pp 637-659 (1989)\n----------------------------------------------------------------------\nFile: nra800\n\nPhone numbers for the NRA, many are toll-free 800 numbers\n----------------------------------------------------------------------\nFile: nradrugs\n\nA collection of articles on the NRA's position on the War on Drugs.\n----------------------------------------------------------------------\nFile: fl-aw-part1\n\nFlorida A.W. Commission - Exec Summary Part 1,\n----------------------------------------------------------------------\nFile: fl-aw-part2\n\nFlorida A.W. Commission - Exec Summary Part 2,\nSTOCKTON -- THE FACTS  by Martin L. Fackler, MD\n----------------------------------------------------------------------\nFile: iwba\n\nInformation about the International Wound Ballistics Association,\nMartin Fackler, president\n----------------------------------------------------------------------\nFile: gunshyjudges\n\nGun-Shy Judges by Jacob Sullum, from the May 1991 issue of Reason Magazine\n----------------------------------------------------------------------\nFile: heatofmoment\n\nIn the Heat of the Moment, By James D. Wright\n----------------------------------------------------------------------\nFile: racist-soil\n\nArticle \"Gun Control Sprouts from Racist Soil.\" by Roy Innis,\nfrom the Wall Street Journal 11/21/91\n----------------------------------------------------------------------\nFile: core-policy\n\n\"Bearing Arms for Self-Defense -- A Human and Civil Right\" by\nRoy Innis, National Chairman, Congress of Racial Equality (CORE)\n----------------------------------------------------------------------\nFile: righttobear\n\nThe Right to Bear Arms By Sanford Levinson from the\nDaily News, Ft Walton Beach, FL.  (1991)\n----------------------------------------------------------------------\nFile: rock-island\n\nUnited States of America v. Rock Island Armory, US District Court for\nthe Central District of IL; the court ruled that making a post '86\nmachine gun is not illegal -- believe it or not.\n----------------------------------------------------------------------\nFile: dalton\n\nUnited States of America v. John William Dalton, US Court of Appeals,\nTenth Circuit, 91-1149; the court ruled that owning or transferring\na post '86 machine gun is not punishable under the NFA -- believe it\nor not.\n----------------------------------------------------------------------\nFile: waitdanger\n\nWhy Gun Waiting Periods Threaten Public Safety By David B. Kopel,\nMarch 25, 1991\n----------------------------------------------------------------------\nFile: aw-qna\n\nAssault Weapon Questions & Answers\nby Handgun Control, Inc. and Citizens for Safe Government (CSG)\n----------------------------------------------------------------------\nFile: ccw-survey\n\nA state by state survey of Carrying Concealed Weapons laws.\n----------------------------------------------------------------------\nFile: us-vs-miller\n\nUnited States vs. Miller et al., Appeal from the District Court of the\nUnited States for the Western District of Arkansas.\n\nArgued March 30, 1939 -- Decided May 15, 1939\n----------------------------------------------------------------------\nFile: presser\n\nThe history of Presser v Illinois is a fascinating exercise of how\npolitically based decisions on our Constitutional rights have come back\nto haunt us.\n----------------------------------------------------------------------\nFile: cia-ncbh\n\nA column by Neal Knox presenting evidence that former CIA agent\nEdwin O. Welles played a major role in founding HCI and NCBH.\n----------------------------------------------------------------------\nFile: conphone\n\nA list of voice and fax phone number for representatives and senators.\n----------------------------------------------------------------------\nFile: billofrights\n\nThe first 10 articles of amendment to the United States Constitution.\n----------------------------------------------------------------------\nFile: constitution\n\nThe Constitution of the United States of America\n----------------------------------------------------------------------\nFile: decl-of-indp\n\nThe Declaration of Independence\n----------------------------------------------------------------------\nFile: dont-wait\n\n\"Criminals Don't Wait -- Why Should You ?\" from the NRA.  Exposes the\nfraudulent arguments made for waiting periods.\n----------------------------------------------------------------------\nFile: external\n\nPositive Externalities of Gun Ownership, by John Kell, from\n\"The Freeman: Ideas on Liberty, October 1991 \"\n----------------------------------------------------------------------\nFile: english-hist\n\nFirearms Legislation in Great Britain, by Jan A. Stevenson\n----------------------------------------------------------------------\nFile: simkin\n\n\"Control Criminals, Not Guns\" by Jay Edward Simkin found in the\nMarch, 25 1991 [or '92?] Wall Street Journal:\n----------------------------------------------------------------------\nFile: unabridged\n\nThe Unabridged Second Amendment, by J. Neil Schulman\n\nAn interview with Roy Copperud, retired professor of journalism at\nUSC and author of \"American Usage and Style: The Consensus\".  Copperud\noffers his professional opinion on the meaning of the Second Amendment.\n----------------------------------------------------------------------\nFile: uzitruth\n\nA letter from J. Harper Wilson, Director FBI Uniform Crime Reporting\nProgram to Paul H. Blackman, Research Coordinator of the NRA stating\nthat only one police officer, of Puerto Rico, was shot and killed with\na semi-automatic 9mm Model A Uzi.\n----------------------------------------------------------------------\nFile: maketheirday\n\n\"How to Make Their Day\" by Don B. Kates Jr. and Patricia Terrell Harris\nin the National Review, October 21, 1991\n\nKates and Harris debunk several myths about firearms, criminals, and\nviolence.\n----------------------------------------------------------------------\nFile: two-myths\n\nTwo myths of gun control from \"Point Blank: Guns and Violence in\nAmerica\" by Gary Kleck.\n----------------------------------------------------------------------\nFile: aw-not-problem\n\n\"Assault Weapons Aren't the Problem\", by Gary Kleck, published in\nThe New York Times Tuesday, September 1, 1992\n----------------------------------------------------------------------\nFile: oregon-study\n\n1990 Oregon Study of Retail Firearm Sales and CHL Licensing\n----------------------------------------------------------------------\nFile: children\n\nFighting for Children's Hearts and Minds by Robert Pew, American\nRifleman - April 1992\n\nDiscusses how HCI and it's Center to Prevent Handgun Violence\nhave set out to use public schools as forums for their anti-gun\npropaganda.\n----------------------------------------------------------------------\nFile: gunssputter\n\n\"Guns and Sputter\" by James D. Wright, from July 1989 issue of REASON.\nWright exposes the flaws in the New England Journal of Medicine study\ncomparing the homicide rates of Seattle and Vancouver.\n----------------------------------------------------------------------\nFile: nejm-info\n\nA collection of articles and information on the New England Journal of\nMedicine Vancouver/Seattle handgun crime comparison study.\n\nSee also the file gunssputter, authored by James Wright.\n----------------------------------------------------------------------\nFile: dcstudy.1\n\nThe New England Journal of Medicine. 1991 Dec 5. 325 (23).\npp 1647-1650.\nEditorials: Firearms And The Killing Threshold.\nKassirer-Jerome-P.\n----------------------------------------------------------------------\nFile: dcstudy.2\n\nThe New England Journal of Medicine. 1991 Dec 5. 325 (23).\npp 1615-1620.\nSpecial Article: Effects Of Restrictive Licensing Of\nHandguns On Homicide And Suicide In The District Of Columbia.\nLoftin-Colin.  McDowall-David.  Wiersema-Brian.  Cottey-Talbert-J.\n----------------------------------------------------------------------\nFile: nejm-editorial\n\nThe New England Journal of Medicine. 1988 Nov 10. 319 (19).\npp 1283-1285.\nEditorial: Firearm Injuries: A Call For Science.\nMercy-James-A. Houk-Vernon-N.\n----------------------------------------------------------------------\nFile: nejm-letters\n\nThe New England Journal of Medicine. 1989 May 4. 320 (18).\npp 1214-1217.\nCorrespondence: Handgun Regulations, Crime, Assaults, And\nHomicide: A Tale Of Two Cities.\nBlackman-Paul-H. Hagen-Tim.  Morris-David-C.\nStolinsky-David-C. Tirer-Samuel.  Gryder-John-W.\nKuziak-John-D. Sloan-John-H. Kellerman-Arthur-L-Kellermann.\nRivara-Fred-P. Koepsell-Thomas.  Reay-Donald-T.\nLoGerfo-James-P. Rice-Charles.  Ferris-James-A. Gray-Laurel-\nA. Mercy-James-A. Houk-Vernon-N.\n----------------------------------------------------------------------\nFile: suicide.1\n\nThe New England Journal of Medicine. 1990 Feb 8. 322 (6).\npp 369-373.\nSpecial Article: Firearm Regulations And Rates Of Suicide:\nA Comparison of Two Metropolitan Areas.\nSloan-John-Henry.  Rivara-Frederick-P. Reay-Donald-T.\nFerris-James-A-J. Kellermann-Arthur-L.\n----------------------------------------------------------------------\nFile: suicide.2\n\nThe New England Journal of Medicine. 1990 Jul 12. 323 (2).\np 137.\nCorrespondence: Firearm Regulations and Rates of Suicide.\nBlackman-Paul-H. Sloan-John-Henry.  Rivara-Frederick-P.\nKellermann-Arthur.\n----------------------------------------------------------------------\nFile: totc\n\nThe New England Journal of Medicine. 1988 Nov 10. 319 (19).\npp 1256-1262.\nSpecial Article: Handgun Regulations, Crime, Assaults, And\nHomicide: A Tale of Two Cities.\nSloan-John-Henry.  Kellermann-Arthur-L. Reay-Donald-T.\nFerris-James-A. Koepsell-Thomas.  Rivara-Frederick-P.\nRice-Charles.  Gray-Laurel.  LoGerfo-James.\n----------------------------------------------------------------------\nFile: nra.cdc\n\nAn open letter from Paul H. Blackman, of NRA to the Director, Office\nof Scientific Integrity Review, U.S. Public Health Service, detailing\nwhy they should evaluate the integrity and competency of firearms research\nconducted by and for the Centers for Disease Control (CDC).\n----------------------------------------------------------------------\nFile: RKBA.000\n\nWhat the RKBA.nnn files are all about.\n\nThe RKBA.nnn series are set of small (60-100 lines typically) postings\nthat address common questions and myths about all aspects of firearms.\n----------------------------------------------------------------------\nFile: RKBA.001\n\nAccidental deaths by firearms and by other means.\n----------------------------------------------------------------------\nFILE: RKBA.002\n\nDeclining trend of accidental deaths by firearms\n----------------------------------------------------------------------\nFile: RKBA.003\n\nHomicide per capita in the US\n----------------------------------------------------------------------\nFile: RKBA.004\n\nChildren and firearms\n----------------------------------------------------------------------\nFile: RKBA.008\n\nAnnual firearm manufacture in the United States\n----------------------------------------------------------------------\nFile: RKBA.010\n\nDeclaration of Independence\n----------------------------------------------------------------------\nFile: RKBA.013\n\nTrend in weapons use for robberies (1974-86)\n----------------------------------------------------------------------\nFile: RKBA.014\n\nReasons for homicide and non-negligent manslaughter\n----------------------------------------------------------------------\nFile: RKBA.015\n\nAre firearms a leading cause of death of children?\n----------------------------------------------------------------------\nFile: RKBA.016\n\nIs the United States the most violent nation?\n----------------------------------------------------------------------\nFile: RKBA.999\n\nComplete list of all sources used for the RKBA.nnn series.\n----------------------------------------------------------------------\nFile: cox-study\n\nAnalysis of the Cox Atlanta Journal Constitution, 21 May 1989 article\non Assault Weapons, by James J. Baker of NRA-ILA, before the Select\nCommittee on Narcotics Abuse and Control, U.S. House of Representatives.\n----------------------------------------------------------------------\nFile: feder11.txt\n\nThe Federalist Papers, as transcribed by Project Gutenberg 1.1\n----------------------------------------------------------------------\nFile: great-quotes\n\nThomas Jefferson quotes and more ...\n----------------------------------------------------------------------\nFile: civilian\n\nCivilian Possession of Military Firearms, by Richard A. I. Munday,\nfrom the January/February 1988 issue of the UK Handgunner.\n----------------------------------------------------------------------\nFile: good-go-bad\n\n\"When Good, Law-Abiding Citizens Go Bad\", from UK Handgunner No. 46\nJan-Feb 1989.  Discusses how the rate of compliance of gun control\nlaws is always very low, even among otherwise law abiding citizens.\n\n----------------------------------------------------------------------\nFile: tory-national-socialism\n\n\n\"Tory National Socialism\", by Richard A.I. Munday, UK Handgunner,\nJul-Aug 86.  Discusses the gun control leanings of socialists of\nthe right.\n----------------------------------------------------------------------\nFile: the-big-lie\n\n\" Gun Grabbers vs. Assault Rifles: The Big Lie\" by Neal Knox,\n\nSemi-auto military-styled \"assault\" rifles are not now nor have they\never been a threat to society. These facts have been determined by\nthe government - but never released to the public!\n----------------------------------------------------------------------\nFile: ff-47\n\n\"The Founding Fathers and the AK-47\", by Sue Wimmershoff-Caplan\nDiscuss the question if the Founding Fathers would have approved of\nthe AK-47 for civilian ownership.\n----------------------------------------------------------------------\nFile: hcikkk\n\n\"Handgun Control, Inc., & the KKK\" by David Kopel, from the Oct 91\nissue of Gun World magazine.  Discusses the parallels in the hate\ncampaigns of the Ku Klux Klan and Handgun Control, Inc.\n----------------------------------------------------------------------\nFile: rkba-orgs\n\nA list of organizations devoted to the preservation of the Second\nAmendment.\n----------------------------------------------------------------------\nFile: victoria\n\n\"The Gun Law Handbook\" for the state of Victoria, Australia (Oct 1988).\n----------------------------------------------------------------------\nFile: nra-purposes\n\nA summary of the NRA's purposes and objectives, and positions on some\ngun control issues.\n----------------------------------------------------------------------\nFile: ktw\n\nA collection of articles relating to teflon coated, armor piercing\nbullets.\n----------------------------------------------------------------------\nFile: thompsoncenter\n\nThe Supreme Court decision in the case:\n\nUnited States of America v. Thompson/Center Arms Co.\n----------------------------------------------------------------------\nFile: DMN_Gratia_CCP\n\n\"Concealed weapons can prevent tragedies like Killeen's\" by\nDr. Suzanna Gratia in the Dallas Morning News, Sunday April\n29th, 1992\n----------------------------------------------------------------------\nFile: Knox_AW_lies\n\nNeal Knox on how military style semi-auto's are not a threat\nto public safety, how they are not fundamentally different\nthan ordinary hunting weapons, and how the gun grabbers are\nexploiting the bad image this class of weapons has to enact\nfurther gun control.\n----------------------------------------------------------------------\nFile: WSJ_Crimestrik\n\n\"The NRA Mounts a Militant Campaign Taking Aim at Criminal-Justice\nSystem\" by Alix M. Freedman staff reporter of The Wall Street Journal.\n----------------------------------------------------------------------\nFile: med-media\n\n\"Gun Prohibition in the Medical Literature - Telling the Truth?\" by\nEdgar A. Suter, MD ; discusses anti-gun bias in medical journals.\n----------------------------------------------------------------------\nFile: toy-guns\n\n\"Court Psychologist Says Toy Guns Are Good For Children\" from Gun Week,\n1989. \n\nGlen David Skoler, court psychologist for the Arlington County, VA,\nclaims \"toys of violence\" -- including toy guns are, in fact, good\nfor children.\n----------------------------------------------------------------------\nFile: awca89-appeal\n\nText of the 9th Circuit court of Appeals in the Fresno Rifle and Pistol\nClub challenge to California's Roberti-Roos Assault Weapon Control Act\nof 1989.\n----------------------------------------------------------------------\nFile: lp92-rkba\n\nThe right to keep and bear arms plank of the 1992 National Platform of\nthe Libertarian Party.\n\nAnd a reproduction of the Libertarian Party brochure\n\"Responsible Gun Ownership: Equal Rights for America's Gun Owners\"\n\nThe entire 1992 National Platform of the LP is available via anonymous\nftp on think.com in the file /pub/libernet/LP/libertarian-platform-1992\n----------------------------------------------------------------------\nFile: let-july91\n\nAn article from the July/August 1991 issue of Law Enforcement Technology\nwith a survey of police officers on their views of gun control.\n----------------------------------------------------------------------\nFile: nacp-poll\n\nA study conducted by the National Association of the Chiefs of\nPolice (NACP) through its American Law Enforcement Survey for 1989,\nin which 16,259 chiefs of police, sheriffs and law-enforcement command\npersonnel were polled with a list of 30 questions, it was determined\nthe overwhelming majority of officers support the right of private\narms ownership, and agreed that gun bans had little effect on crime.\n----------------------------------------------------------------------\nFile: hci-advert\n\nA example of the propaganda used by HCI in soliciting contributions.\n----------------------------------------------------------------------\nFile: hci-transcript\n\nA transcription of the HCI video tape \"America Needs a National\nHandgun Control Policy\"\n----------------------------------------------------------------------\nFile: gartner\n\nMichael Gartner, president of NBC News, calls for a ban on handguns\nin this USA TODAY Thursday January 16th 1992 editorial.\n----------------------------------------------------------------------\nFile: nra-lp\n\nA resolution passed by the voting membership of the NRA at its national\nconvention in Anaheim, CA stating the NRA will support third party\ncandidates.\n----------------------------------------------------------------------\nFile: cooley\n\nThomas M. Cooley, LL.D., General Principles of Constitutional Law in\nthe United States of America, 298-299 (3rd ed. 1898), a leading \nconstitutional commentator discussed the rights protected by the Second\nAmendment:\n----------------------------------------------------------------------\nFile: kilpatrick\n\n\"Gun Law Might Curb Rising Murder Rate\" by James Kilpatrick, St. Louis\nPost-Dispatch Tuesday June 23, 1992.  Kilpatrick expresses support for\na national firearms law as proposed by C. Everett Koop, that is, a\nrequirement that gun owners pass a competency test, among other things.\n----------------------------------------------------------------------\nFile: vanity-fair\n\nA summary of the 10 page article on Jim and Sarah Brady which appeared\nin the January '91 issue of Vanity Fair Magazine.\n\nQuestion: \"Was it true you wanted to get a gun to protect\n\tyourself against Hinckley?\"\n\nAnswer Jim brady: \"I had a gun\"\n----------------------------------------------------------------------\nFile: goldwin\n\n\"Gun Control Is Constitutional,\" by Robert A. Goldwin from the\nWall Street Journal edtorial page, Thrusday, December 12, 1991\n----------------------------------------------------------------------\nFile: anniston\n\nTwo articles on a murder averted in Anniston, Alabama by a man\nwith a CCW permit.  The importance of this event is that it closely\nfollowed the murders by Hennard in Texas, but the media did not\ncover Anniston.\n----------------------------------------------------------------------\nFile: staggers-brady\n\nA survey of public support for the Staggers Instant Background\nCheck and the Brady Waiting Period.  The basic finding is that\nonce the public understands the advantages of the instant background\ncheck vs. the problems with the Brady waiting period support for\nthe Brady waiting period diminishes greatly.\n----------------------------------------------------------------------\nFile: brady-vote\n\nHow Congress voted on the Staggers Instant Background Check and\nthe Brady Waiting period.\n----------------------------------------------------------------------\nFile: vs-vote\n\nHow Congress voted on the Volkmer-Sensenbrenner Amendment to\nstrike the new gun control sections from the administration\ncrime bill.\n----------------------------------------------------------------------\nFile: dc-vote\n\nHow the U.S. Senate voted on S. 2113, the repeal of the District\nof Columbia's anti-gun strict liability law.\n----------------------------------------------------------------------\nFile: covey\n\n\"Gun Control: Trying the Facts,  Weighing the Values\" A monograph based\non \"Crime, Inequality, Guns, & Equity\" by Preston K. Covey, Ph.D.,\nDirector Center for the Advancement of Applied Ethics, Carnegie Mellon\nUniversity.\n\nAddresses the desirability of gun bans: ethical aspects, equity issues,\nand other values at stake in the management of mortal risks, deadly\nforce and its instruments.  \n----------------------------------------------------------------------\nFile: assays-of-bias\n\n\"Assays of Bias on the Second Amendment: The Media Elite\" by\nPreston K. Covey, Director Center for the Advancement of Applied\nEthics [excerpts from a longer monograph]\n----------------------------------------------------------------------\nFile: cleveland\n\nA critique of:\n\nACCIDENTAL FIREARM FATALITIES IN A METROPOLITAN COUNTY (1958-1973)\nRushforth, Hirsch, Ford, and Adelson\nAmerican Journal of Epidemiology #100, 1974, pp. 499-505.\n\n\nThis is THE study that lies at the heart of the gun control\nclaim that owning a firearm for self-defense is too dangerous.\nThe claims that a defensive gun is X (=6 in this study)\ntimes more likely to be used against an innocent person than\nin lawful self-defense originated with this report in 1974.\n\nby Robert I. Kesten\n----------------------------------------------------------------------\nFile: tiananmen-lessons\n\n\"LESSONS FROM TIANANMEN SQUARE\" by Neal Knox reprinted from\nGuns & Ammo, September 1989\n\nWhy the Second Amendment is so important, even in todays more\n\"progressive\" era.  Included is a description of the 1932\nBonus March in Washington, DC in which Gen. Douglas MacArthur\nopposed unemployed WWI veterans lobbying for the government to\nimmediately pay their promised Veteran's Bonus.\n----------------------------------------------------------------------\nFile: forward-trace\n\n\"California FFL Dealer Defies \"Forward Trace\"\" by Neal Talbot in\nThe New Gun Week, March 1, 1991.\n\nDetails how the BATF bullies FFL holders into giving BATF copies\nof 4473's in violation of federal law.\n----------------------------------------------------------------------\nFile: justice-stats\n\n\"Handgun Crime Victims\", by Michael R. Rand, Bureau of Justice Statistics\nStatistician, U.S. Department of Justice.\n\nThis Bureau of Justice Statistics Special Report describes the key findings\nfrom an analysis of handgun crimes reported in the National Crime Survey\nfor 1979-87.  It describes the victims of hand-gun [sic] crime, how the\nhandgun was used during the crime, and the nature and extent of handgun\ncrime injury.  It also provides information on handgun offenders, the\nlocation of handgun crimes, and whether the crime was reported to the\npolice.\n----------------------------------------------------------------------\nFile: chafee\n\nIncluded are:\n\n1) Transcript of press conference with Senator John Chafee, and former\nSupreme Court justice Warren Burger on S. 2913, Chafee's, handgun ban.\nAlso speaking was Vernon Jordan, former member of the Jimmy Carter\nWhite House; Mayor Sharon Pratt Kelly; Michael Beard of National\nCoalition to Stop Gun Violence; Michael Casserly (executive director,\nCouncil of the Great City Schools); Dr. Carden Johnston representing\nthe American Academy of Pediatrics;\n\n2) An article by Neal Knox in which he describes how Sarah Brady kicked\nout HCI president Charles Orasin because of a disagreement on Chafee's\nhandgun ban.\n\n3) An article on Burger's support for S. 2913.\n\n----------------------------------------------------------------------\nFile: alarmist-view\n\n\"Gun Registration: An 'Alarmist' View\" by Jon vanWormer; reprinted\nfrom the December 1985 Guns & Ammo.  How an rkba moderate became a\nradical.\n----------------------------------------------------------------------\nFile: fackler-papers\n\nA list of articles by \"Col. Martin L. Fackler, M.D., F.A.C.S.\"\nWound Ballistics Lab, and where to write for copies of them.\n----------------------------------------------------------------------\nFile: gun-war\n\n\"THE GREAT AMERICAN GUN WAR\" by Barry Bruce-Briggs,\n_The_Public_Interest_  No. 45, Fall 1976, pp 37-62\n----------------------------------------------------------------------\nFile: george-will\n\n\"Repeal Second Amendment and Save Lives\", by George Will\n----------------------------------------------------------------------\nFile: reeves\n\n\"Drastic Steps to End the War at Home\" by Richard Reeves, no date\nnor publication available; placed in rkba archive 9/2/92\n\n\"Studies _Prove_ Gun Control Works\" by Richard Reeves, from the\nKansas City Star, 9/28/92.\n----------------------------------------------------------------------\nFile: canada-ban-list\n\nA reproduction of a brochure from the Canadian Department of Justice\nlisting newly prohibited and restricted firearms (as of June 1992).\n\nAlso included is the \"point system\" used to determine if a firearm\nshould be reviewed for possible banning.\n----------------------------------------------------------------------\nFile: copkiller\n\nLyrics to the rock song \"Cop Killer\" by Ice-T on the album Body Count.\n----------------------------------------------------------------------\nFile: cva.1\n\nA letter from the California Voters Alliance, asking for support in\ntheir effort to defeat anti-gun California Assemblyman Terry Friedman,\nco-author of California's waiting period law for rifles and shotguns. \n----------------------------------------------------------------------\nFile: astrology\n\n\"CRIMINOLOGY'S ASTROLOGY: The CDC Approach to Public Health Research\non Firearms and Violence\" by PAUL H. BLACKMAN, Ph.D., Institute for\nLegislative Action, National Rifle Association, 1990\n\nA paper presented at the annual meetings of the American Society of\nCriminology, Baltimore, Maryland, November 7-10\n----------------------------------------------------------------------\nFile: aw-panic\n\nThe Assault Weapon Panic: \"Political Correctness\" Takes Aim,\nat the Constitution, by Eric Morgan and David Kopel\n\nPublished by The Independence Institute, October 10, 1991\n----------------------------------------------------------------------\nFile: state-rkba\n\nA collection of RKBA provisions from State constitutions.\n----------------------------------------------------------------------\nFile: too-late\n\nChapter 13 \"But then it was too Late\" of \"THEY THOUGHT THEY WERE\nFREE: The Germans, 1933 - 1945\", by: Milton Mayer, University of\nChicago Press\n----------------------------------------------------------------------\nFile: militia-code\n\nThe legal definition of the militia of the United States of America\ntaken from:\n\nUnited Stated Code (USC), TITLE 10, Section 311 and Section 312.\n----------------------------------------------------------------------\nFile: legal-mg-crime\n\nReport No. 32 of the Firearms Coalition of Silver Spring, MD. 11/29/89\nby Neal Knox.  Knox reports that a legally registered machine gun was\nused in a drug hit.  Subsequent reports said charges were dropped for\nlack of evidence.\n----------------------------------------------------------------------\nFile: hci-cash\n\nHCI donation records to US Senators and Congressmen.\n----------------------------------------------------------------------\nFile: paulreverenet\n\nInformation about the \"Paul Revere Net\", a network of 2nd Amendment\nBulletin Boards\n\nThe Paul Revere Network (PRN) is a coast-to-coast network of\ncommitted grass-roots gun rights activists who rely upon computer\nbulletin board systems for their primary mode of communication.\nLeroy Pyle (NRA Director and 27-year San Jose police veteran)\nis Founder and Director of the PRN.  Based in San Jose, CA,\nPyle's BBS (1:143/223) currently hubs all network message\ntraffic.\n----------------------------------------------------------------------\nFile: gun-talk\n\nInformation about the NRA-ILA Bulletin Board \"Gun Talk\"\n----------------------------------------------------------------------\nFile: congressgrades\n\nA grading of congressmen based their votes on 1) the Brady Bill\n(HR7), 2) Staggers (HR1412) and 3) the Volkmer-Sensenbrenner amendment\nto strike the anti-gun provisions from the house crime bill (HR3371).\n----------------------------------------------------------------------\nFile: lawmaster\n\n\"FEDS TRASH LAW-ABIDING GUN OWNER'S HOME\", NRA official journal March\n1992, by Richard E. Gardiner.  Details how the BATF raided the home of\nJohnny Lawmaster in search of a non-existent unregistered M-16 auto-sear.\n----------------------------------------------------------------------\nFile: point-blank\n\nThe concluding chapter to \"Point Blank\" by Gary Kleck.\n----------------------------------------------------------------------\nFile: purdy-rapsheet\n\nPatrick Purdy's criminal record.\n----------------------------------------------------------------------\nFile: progundocs\n\nStatement of purpose and contact information for \"Doctors for Integrity\nin Research & Public Policy\"\n----------------------------------------------------------------------\nFile: orlando\n\nA summary of the effects of the highly publicized Orlando training\nprogram in which over 6000 women were trained in basic pistol\nmarksmanship and the law of self-defense.\n----------------------------------------------------------------------\nFile: form4signoff\n\nA letter from Wayne Miller, Chief National Firearms Act Branch of\nBATF stating that local law enforcement signoff on the ATF Form 4,\napplication for Taxpaid Transfer and Registration of Firearm [i.e.,\nmachine gun], is completely discretionary.\n----------------------------------------------------------------------\nFile: badlands.txt\n\nNew Zealand Firearms Control by Robert Badlands.\n\nA paper presented at a conference on Gun Control held at Melbourne\nUniversity-Union Theatre 27-28 August 1988.  The conference was\nsponsored by the Sporting Shooters' Association of Australia.\n----------------------------------------------------------------------\nFile: danto.txt\n\nIssues Regarding Gun Control in America by Bruce L. Danto\n\nA paper was presented at a conference on Gun Control held at Melbourne\nUniversity-Union Theatre 27-28 August 1988.  The conference was\nsponsored by the Sporting Shooters' Association of Australia.\n----------------------------------------------------------------------\nFile: fine.txt\n\nImpediments to the Purposeful Reform of (Australian) Firearms Laws by J. D.\nFine\n\nA paper presented at a conference on Gun Control held at Melbourne\nUniversity-Union Theatre 27-28 August 1988.  The conference was\nsponsored by the Sporting Shooters' Association of Australia.\n----------------------------------------------------------------------\nFile: greenwd.txt\n\nUntitled paper by Colin Greenwood\n\nA paper presented at a conference on Gun Control held at Melbourne\nUniversity-Union Theatre 27-28 August 1988.  The conference was\nsponsored by the Sporting Shooters' Association of Australia.\n----------------------------------------------------------------------\nFile: kates.txt\n\nGun Control: Recent Research on the American Experience by Don B. Kates,\nJr.\n\nA paper presented at a conference on Gun Control held at Melbourne\nUniversity-Union Theatre 27-28 August 1988.  The conference was\nsponsored by the Sporting Shooters' Association of Australia.\n----------------------------------------------------------------------\nFile: marsden.txt\n\nGun Control: A Banker's Perspective, by ??? Marsden\n\nA paper presented at a conference on Gun Control held at Melbourne\nUniversity-Union Theatre 27-28 August 1988.  The conference was\nsponsored by the Sporting Shooters' Association of Australia.\n\nNote, this paper is almost impossible to read currently as the original\nwould not scan well.  A more readable copy will be supplied later.\n----------------------------------------------------------------------\nFile: backdoor\n\nBack Door Gun Control by Peter Alan Kasler from the January 1993\nissue of American Survival Guide magazine.\n\nKasler discusses four examples of innocent people whose firearms\nare confiscated, and/or charged with a crime when none was committed,\nas examples of how gun control is implemented in the real world.\n----------------------------------------------------------------------\nFile: armed-citizen\n\n\"The Armed Citizen\" feature from \"The American Rifleman\" and \"The\nAmerican Hunter\"; these stories show how firearms are indeed useful\nfor self-defense.\n----------------------------------------------------------------------\nFile: botsford\n\nThe Case Against Gun Control by David Botsford\n----------------------------------------------------------------------\nFile: academia-bias\n\n\"Fighting Anti-Gun Bias in Academia -- an article downloaded from the\nNRA-ILA BBS \"Gun Talk\"\n----------------------------------------------------------------------\nFile: story-of-gun\n\n\"The Story of a Gun\" by Erik Larson, from \"The Atlantic\", January 1993.\n----------------------------------------------------------------------\nFile: hcr**\n\nReports to the Firearms Coalition, by Neal Knox.\n\nAll these files are named hcr then two numbers, e.g., hcr51 for\n\"Report No. 51 to the Firearms Coalition\"\n----------------------------------------------------------------------\nFile: whose.txt\n\n\"Whose Side Are They On ?\"\n\n\"Freedom From War: The United States Program For General and Complete\nDisarmament in a Peaceful World.\" an official publication of the United\nStates of America government.\n----------------------------------------------------------------------\nFile: nccfa\n\nContact information for the \"National Collegiate Coalition for Firearms\nAwareness\"\n----------------------------------------------------------------------\nFile: canada\n\nSome facts about Canadian gun control laws, gun ownership and violent\ncrime.\n----------------------------------------------------------------------\nFile: time-letter\n\nTime magazine's form letter response to criticism of their\n\"Death By Gun\" issue.\n----------------------------------------------------------------------\nFile: gun-in-school\n\n\"Health Objectives for the Nation: Weapon-Carrying Among High School\nStudents -- United States, 1990\" edited by David Dodell, D.M.D.\n\nProposes ways to reduce carrying of firearms by high school students.\n----------------------------------------------------------------------\nFile: congress-cover\n\n\"Congress Covers Itself But Not Public\" by Paul Craig Roberts, printed\nin the Cleveland Plain Dealer October 2nd, 1992.\n----------------------------------------------------------------------\nFile: hamper\n\n\"Restrictions hamper law abiding folks, not criminals.\" by\nDavid B. Kopel, printed in the Columbus OH Dispatch, January 16th.\n\nPoints out how waiting periods can cause a great deal of harm.\n----------------------------------------------------------------------\nFile: schumer-gripe\n\nA \"Washington Post\" letter to the editor by Congessman Charles E. Schumer\ndiscussing his bill, H.R. 5633, which requires law enforcement sign-off\non FFL applications.\n----------------------------------------------------------------------\nFile: sof\n\nA UPI article on a lawsuit against \"Soldier of Fortune\" which forced\nthem out of business.\n\nThis article is copyright by UPI, and archived with permission; please\nrespect the re-distribution prohibition.\n----------------------------------------------------------------------\nFile: fl-stats\n\nA summary of CCW permit statistics for the state of Florida, e.g.,\nthe number of permits issued, number revoked, number denied, etc.\nThis proves that people obtaining CCW permits are law abiding\ncitizens and are not wreckless with their firearms.\n----------------------------------------------------------------------\nFile: knox-on-ruger\n\n\"Knox Replies To Comment From Ruger Counsel's\" from\nThe New Gun Week, December 1, 1989.\n\nNeal Knox discusses how Sturm, Ruger Inc. are willing to sacrifice the\nRKBA for the benefit of their business.\n----------------------------------------------------------------------\nFile: american-blacks\n\n\"Gun Control and American Blacks\" by Raymond G. Kessler (pp. 476-478)\n\nIn the United States, the experience of blacks from slavery \nthrough the 1960's was one of the clearest and best-documented \nexamples of the political functions of gun control.\n----------------------------------------------------------------------\nFile: nraction*\n\nThe NRA-ILAs little known newsletter \"NRAction\"; names will have the\nmonth and year at the end, e.g., nraction0291.\n----------------------------------------------------------------------\nFile: americamilitia\n\n\"America's Militia\" by David B. Kopel, appeared in \"Gun World\" magazine\nDecember 1992.\n----------------------------------------------------------------------\nFile: hci93agenda\n\nThe \"Action Agenda for a National Gun Policy\" by HCI.\n----------------------------------------------------------------------\nFile: hci-newsletter\n\nThe Handgun Control Semi-Annual Progress Report for December 1992.\n----------------------------------------------------------------------\nFile: hattoripetition\n\nA petition written by the host family of Japanese exchange student\nYoshihiro Hattori, who was killed when he went to the wrong home for\na Halloween party:\n\n\"To protest the easy availability of firearms in the United States\"\n\nwhich will be presented to President Clinton.\n----------------------------------------------------------------------\nFile: hci-election\n\n\"What the Election Means for Our Gun Control Movement\" by Sarah Brady.\n----------------------------------------------------------------------\nFile: centerwall\n\nUniversity of Washington Pyschiatrist Dr. Brandon Centerwall writing\nin the April 1989 American Journal of Epidemiology says that television \nexposure is related to half of the homicides in the United States.\n----------------------------------------------------------------------\nFile: va-outrage\n\n\"An Outrage in Virginia\" by Neal Knox.  Describes how BATF used a\nVirginia gun dealer to general strawman sales and then later \"traced\"\nthose guns back to VA so they could claim 40% of guns they traced\ncame from VA.  When the dealer stopped cooperating they were convicted\nof conducting strawman sales, one of the owners committed suicide.\n----------------------------------------------------------------------\nFile: factcard93\n\nThe 1993 Firearms Fact Card published by the NRA-ILA\n----------------------------------------------------------------------\nFile: nejm43\n\nA letter to the editor of the Wall Street Journal by Preston Covey\non the factoid \"You are 43 times more likely to kill someone you know\nwith a gun than a criminal.\"\n----------------------------------------------------------------------\nFile: gifford\n\nAn op-ed piece by Dan Gifford which appeared in the March 8 1993 issue\nof the Cleveland Plain Dealer; it discusses the issue of police abuses\nand citizen self defense against such abuses.\n----------------------------------------------------------------------\nFile: reynolds\n\nAn editorial \"Gun Makers Must Pay the Price\" by Mel Reynolds (D-IL),\nmember US House of Representatives, which appeared in the 02/15/93\nissue of the Chicago Tribune.\n----------------------------------------------------------------------\nFile: pozner\n\n\"Gun Control\" with Vladamir Pozner (yes, the commie) and Phil Donahue\nfrom a Feb. 25 1993 broadcast on CNBC.\n----------------------------------------------------------------------\nFile: trustpeople\n\nCATO Institute Policy Analysis No. 109, July 11, 1988\n\"TRUST THE PEOPLE: THE CASE AGAINST GUN CONTROL,\" by David B. Kopel\n----------------------------------------------------------------------\nFile: bitterprice\n\nThe British Shooter Pays A Bitter Price, by Keith G. N. Nicholson\nfrom the American Rifleman, March 1993.\n----------------------------------------------------------------------\nFile: batman\n\n\"Cartoon Campaign for Gun Control\" from the March 8th 1993 issue\nof \"New American\"\n----------------------------------------------------------------------\nFile: batfss\n\n\"Waco Shootout Evokes Memory of Warsaw '43\" from the Wall Street\nJournal, Monday, March 15, 1993\n----------------------------------------------------------------------\nFile: academics\n\nContact information for \"Academics for the Second Amendment\"\n----------------------------------------------------------------------\nFile: propaganda\n\nAnti-Gun-Ownership Propaganda, by Doan Boal in the March, '92 issue\nof Survival Guide.\n----------------------------------------------------------------------\nFile: media-fairness\n\nMedia Fairness Action Plan Is Continuing, by James H. Warner, NRA Ass't\nGeneral Counsel, from American Rifleman, March 1993, page 54.\n\nThis describes the FCC's \"personal attack\" rule and how the NRA may\ntake advantage of this rule against broadcasters who attack the NRA.\n----------------------------------------------------------------------\nFile: artconf\n\nARTICLES OF CONFEDERATION, Proposed by Congress November 15, 1777,\nRatified and effective March 1, 1781\n----------------------------------------------------------------------\nFile: pending-bills\n\nA list of the currently pending gun control bills in the US Seante and\nHouse of Representatives.\n----------------------------------------------------------------------\nFile: noduty\n\nSelf-Reliance For Self-Defense -- Police Protection Isn't Enough!\nby Peter Kasler\n----------------------------------------------------------------------\nFile: leftout\n\nThe Second Amendment: A Right Left Out, by Doctor Linda Karen Miller\nappearing in The American Rifleman, February 1993, p. 33.\n----------------------------------------------------------------------\nFile: copsnguns\n\nWHAT COPS SHOULD KNOW ABOUT THE GUN ISSUE! by Leroy Pyle,\nfrom the May 1992 issue of Guns&Ammo.\n----------------------------------------------------------------------\nFile: crossfire\n\nA transcript of the Wednesday, March 3 1993 edition of the CNN\nshow CROSSFIRE.  The participants are Michael Kinsley, John Sununu,\nRep. Charles Schumer (D-NY) Criminal Justice Subcmte.,\nand J.F. = Rep. Jack Fields (R-TX) \n----------------------------------------------------------------------\nFile: naziconnection\n\nThe WAR ON GUN OWNERSHIP STILL GOES ON! -- GUN CONTROL'S NAZI CONNECTION!\nby Craig Peterson from the May 1993 issue of Guns & Ammo.\n----------------------------------------------------------------------\nFile: armedcriminal\n\nThe Armed Criminal in America, by James Wright, 1986.  A Research in\nBrief published by the National Institute of Justice.\n----------------------------------------------------------------------\nFile: bigotry\n\n\"BIGOTRY, SYMBOLISM AND IDEOLOGY IN THE BATTLE OVER GUN CONTROL\" by\nDon Kates, from the 1992 \"Public Interest Law Review\"\n----------------------------------------------------------------------\nFile: flmurd.ps\nFile: gamurd.ps\nFile: idmurd.ps\nFile: mtmurd.ps\nFile: nodiscr.ps\nFile: ormurd.ps\nFile: pamurd.ps\nFile: philmurd.ps\nFile: utmurd.ps\nFile: vamurd.ps\nFile: wamurd.ps\nFile: wvmurd.ps\n\nCCW laws and murder rates in several states, by Clayton Cramer.  These\nare all PostScript files and require the use of PostScript printer to\nprint.\n----------------------------------------------------------------------\nFile: hammer\n\nMarion Hammer on the Failure of Gun Control, downloaded from Gun Talk.\n----------------------------------------------------------------------\nFile: threechiefs\n\nThe views of Police Chiefs Daryl Gates (LA), Lee Brown (NYC), LeRoy Martin\n(Chicago) on gun control and other civil rights.\n----------------------------------------------------------------------\n\nRKBA archive: general information and anonymous ftp instructions.\n\nThe moderator of the firearms-politics mailing list, Karl Kleinpaste,\nhas agreed to set up an anonymous ftp archive directory for RKBA\nrelated information.  This directory can be used for things like\narticles by Kates, Wright, Tonso, Levinson, Supreme Court Decisions,\nthe RIA vs US decision, copies of legislation, and so on.  It's not\nmeant to be for the discussions that normally appear here.\n\nSo, in the future if you're looking for something check there first\nand then ask here.\n\nInstructions:\n\nShort version for techies:\n\nThe site is godiva.nectar.cs.cmu.edu.  Place contributions into the\ndirectory /usr0/anon/pub/firearms/politics/rkba.  The ftp commands\nget, put, mget, or mput should work.  Give the command \"type binary\"\nto be sure files are transferred correctly.  Your files will be moved\nto the rkba directory.  To get a file use the commands get or mget.\n\nI will maintain an index which you should get first to check if\nthe file you want to read or write already is archived.\n\nLong version for non-techies:\n\nIn order for you to use this archive your computer must be on\nthe Internet.  To connect to the archive site run the command:\n\n\tftp godiva.nectar.cs.cmu.edu\n\nIf that doesn't work you cannot use this archive.  If the ftp\ncommand is successful you'll get this prompt asking you for a\nlogin:\n\tName (godiva.nectar.cs.cmu.edu:lvc):\n\nInstead of lvc your initials will appear.  Answer this prompt with:\n\n\tftp\n\nNext you'll get this prompt asking your for your e-mail address:\n\n\tGuest login ok, send e-mail address as password:\n\nI would enter:\n\n\tl.v.cipriani@att.com\n\nYou'll enter your own e-mail address.  You'll get these lines\nor similar as output:\n\n\tRemote system is UNIX.\n\tUsing binary mode to transfer files.\n\nNext, the command prompt is printed:\n\n\tftp> \n\nIf you do not get the line \"Using binary mode to transfer files.\"\nRun the command:\n\n\ttype binary\n\nNow you're logged in to the archive machine.  There are many\ndirectories on this machine  but the two you are concerned with are\n\n\t/usr0/anon/pub/firearms/politics/rkba\nand\n\t/usr0/anon/pub/firearms/politics/incoming\n\nThere are subdirectories to the rkba directory, those are discussed below.\n\nWhen you login to the system your directory is /usr0/anon.  To retreive\nfiles change your current directory to the rkba directory with the command:\n\n\tcd /usr0/anon/pub/firearms/politics/rkba\nor\n\tcd pub/firearms/politics/rkba\n\nTo submit files change your directory to the incoming directory with\nthe command:\n\n\tcd /usr0/anon/pub/firearms/politics/incoming\nor\n\tcd pub/firearms/politics/incoming\n\nOnce you do this you'll get another ftp> prompt asking you to enter\nanother command.\n\nTo find the names of the existing files in the directory you are\nin run the command:\n\n\tls -l\n\nThis will produce something like:\n\ntotal 6021\n-r--r--r--  1 karl          6932 Jun 16  1992 DMN_Gratia_CCP\n-r--r--r--  1 karl         69149 Apr  5 19:20 INDEX\n-r--r--r--  1 karl         18965 Jun 16  1992 Knox_AW_lies\n-r--r--r--  1 karl         10930 Apr 30  1992 S361\n-r--r--r--  1 karl          8958 Jun 16  1992 WSJ_Crimestrike\n-r--r--r--  1 karl          2649 Jan 13 18:33 academia-bias\n-r--r--r--  1 karl           935 Mar 22 22:38 academics\n-r--r--r--  1 karl         36079 Aug  4  1992 aclu\n... and so on ...\n\nEach line corresponds to one file.  Reading right to left, the fields\nare the file name, the last modification date of the file, the size of\nthe file in bytes, and some permission fields which you do not need\nto be concerned with.\n\nTo get a file run the command \"get\" followed by the name of the file\nyou want, for example:\n\n\tget INDEX\nor\n\tget noduty\n\nAfter the file is transfered to your machine a message like this:\n\n\tTransfer complete.\n\t19580 bytes received in 5 seconds (4 Kbytes/s)\n\nYou can repeat the get command for every file you want to retreive.\nYou can use the mget command to retreive multiple files.  If the\nfile you want is in a subdirectory, for example, congress/103rd/HR1025\nyou should change your directory to the appropriate subdirectory first\nand then retrieve it:\n\n\tcd congress/103rd\n\tget HR1025\n\nOnce you're finished you can log off with the command:\n\n\tquit\n\nIf you have a file you want to contribute the procedure is a little\ndifferent.  First of all you should find out if the file already\nexists, so get a copy of the index file with the procedure above\nand look it over to make sure you wouldn't repeat an entry.  The\nindex will have a description of each of the files in the rkba\ndirectory.  For example:\n\n----------------------------------------------------------------------\nFile: whitemanslaw\n\nWhite Man's Law by William R. Tonso, from the December 1985\nReason magazine\n----------------------------------------------------------------------\n\nOnce you've determined you won't be duplicating an entry, login\nand change to the incoming directory command (see above).  Once\nyou are in the incoming directory use the command:\n\n\tput file_name\n\nIn this case:\n\n\tput whitemanslaw\n\nAgain there'll be a \"Transfer complete, so many bytes transfered\nin so many seconds\" message.  Now your file is on the archive\nmachine.\n\nAnother thing to watch out for is duplicate file /names/.  Be sure\nthere isn't a file in the incoming directory that is called the same\nas the file you want to write.  If you use the same name you'll\noverwrite the previous file [or you'll get an error message].\n\nYour file may have to be renamed if there is a conflict with a\nfile by the same name in the rkba directory.\n\nOnce your file is in the incoming directory send me an entry for\nthe INDEX file and I will add it to the file.\n\nIf you cannot use anonymous ftp and would still like to contribute\na file email the file to me and I'll take care of the rest.\n\nIf you submit a file and do not notify me it may be removed, so\nbe sure to let me know first.\n\nIf you have any questions feel free to ask me.\n----------------------------------------------------------------------\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n\n\n\n\n\n-- \nMichael Phelps, (external) mjp@vnet.ibm.com ..\n                (internal) mjp@bwa.kgn.ibm.com .. mjp at kgnvmy         \n (and last but not least a disclaimer)  These opinions are mine..       \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.392+0000", "event": "documents", "entityId": 8252, "properties": {"category": "comp.graphics", "text": "From: csc3phx@vaxa.hofstra.edu\nSubject: Loosing color.\nLines: 9\n\nHi guys.\n\nI am scanning in a color image and it looks fine on the screen.  When I \nconverted it into PCX,BMP,GIF files so as to get it into MS Windows the colors\ngot much lighter.  For example the yellows became white.  Any ideas?\n\nthanks\nDan\ncsc3phx@vaxc.hofstra.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8253, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: 35002_4401@uwovax.uwo.ca\nSubject: How is a Loopback connector made?\nOrganization: University of Western Ont, London\nNntp-Posting-Host: hydra.uwo.ca\nLines: 9\n\nI need to know the Pins to connect to make a loopback connector for a serial\nport so I can build one.  The loopback connector is used to test the \nserial port.\n\nThanks for any help.\n\n\nSteve\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8254, "properties": {"category": "misc.forsale", "text": "From: radley@gibbs.oit.unc.edu (Keith Radley)\nSubject: Misc Electronic Eqpt\nSummary: electronics for sale\nNntp-Posting-Host: gibbs.oit.unc.edu\nOrganization: University of North Carolina at Chapel Hill\nDistribution: usa\nLines: 20\n\n \nPanasonic KX-T3000H, Combo black cordless & speaker phone all in one.\n new- $160, now- $100 + shipping OBO.\n \nCurtis Mathes VHS VCR Remote included and it works with universal remotes.\n Works great but I replaced it with a Stereo VCR.\n paid $300 years ago, will sell for $125 delivered OBO.\n \nRadio Shack stereo amp.  2 inputs, tone, and left and right volume.  Speakers\n not included.  $20 plus shipping.\n \nIf you are interested in either of the above mail me at\n radley@gibbs.out.unc.edu.\n\n        _\n    _  //       Major: Computer Science              /<eith Radley\n    \\\\//        Minor:     English              Radley@gibbs.oit.unc.edu\n     \\/      Computer:   AMIGA 3000           University of North Carolina\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8255, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: donyee@athena.mit.edu (Donald Yee)\nSubject: S3 86c805 w/2MB = 1024x768x32k colors = Orchid Pipe Dream?\nOrganization: Massachusetts Institute of Technology\nLines: 36\nDistribution: world\nNNTP-Posting-Host: pesto.mit.edu\n\nHi\n\tI have an Orchid Fahrenheit VLB with 2MB of DRAM.  It is an S3\n86c805 based card.  I had a problem for a while after installing my\nsecond meg of DRAM for the video, and thanks to Orchid, I got a fix\nfrom their tech support (it was jumper settings not given in the\nordinary manual.  I assume it would come with memory ordered from\nthem, so I guess I should be glad they didn't just say \"Buy the memory\nfrom us\" or something like that.)\n\n\tThe one thing that I was puzzled by was why there was not a\n1024x768x32k color mode on the thing, either in full screen or\nenlarged desktop mode.  My ATI Ultra Plus can handle that, given 2MB\nof memory.  All the 2MB buys you on the Fahrenheit is 1280x1024x256.\nJust ONE more mode.  GEEZ.  Had I known, I wouldn't have bothered.  I\nasked them why, and all I got was \"Your point is well taken, but\nOrchid's software developers are busy with other projects.\"\n\n\tSo, to get to the point, finally, ARE there any s3 86c805\ndrivers out there that can handle high res hicolor modes?  I'd love to\nget another card, but perhaps it will have to wait until the next\ngeneration of cards comes out, since this card came bundled with my\nsystem and it's not so easy to exchange these things unless they're\nbroken.\n\n\tIf you want these modes, steer away from Orchids s3 86c805\ncards (ie. VLB or VA/VLB), at least until their developers are \"less\nbusy\".  If the magazines are to believed, I've only seen one s3 86c805\nproduct thus far which can handle 1024x768x32k color (Genoa?),\nalthough evenn that might be a misprint.\n\n\tPlease, if there are generic or semi-generic drivers out\nthere, let me know where I can get them.  800x600x32k is OK, but I\ncoulda gotten that with my ATI VGA Wonder XL.\n\nThanks.\ndonyee@athena.mit.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8256, "properties": {"category": "misc.forsale", "text": "From: tarq@ihlpm.att.com\nSubject: Forsale - Steyr 9mm Parabellum\nOrganization: AT&T\nLines: 25\n\n\n\t\tFOR SALE - Steyr GB 9mm Parabellum\n\t\t----------------------------------\n\t\t\t\n\t\n\tThis is an excellent handgun for the first time buyer or\n\tan experienced handgunner. It is in excellent condition.\n\tI never had a misfire with it.\n\t\n\tMake:\t\tSteyr Model GB 9mm Parabellum\n\t\n\tMagazine:\t18 rounds\n\t\n\tBarrel:\t\tHard-chrome-plated inside and outside for\n\t\t\tlong term durability and wear resistance.\n\t\t\tFixed mount.\n\t\t\t\n\tPrice:\t\t$375, obo.\n\t\n\tComes with 2 magazines, original owner's manual.\n\t\n\tContact:\tT. Ahmad, ihlpm!tarq, (708)979-0838 (weekdays)\n\t\n\t\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8257, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nSubject: SIMM Speed\nDistribution: world\nOrganization: HAL 9000 BBS, W-NET HQ, Ann Arbor, Michigan, USA\nReply-To: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nLines: 27\n\nB\nBK>Is it possible to plug in 70ns or 60ns SIMMs into a motherboard saying\nBK>wants 80ns simms? \n\nYou shouldn't have troubles.  I have heard of machines having problems \nwith slower than recommended memory speeds, but never faster.  \n\nBK>Also, is it possible to plug in SIMMs of different\nBK>speeds into the same motherboard?  ie - 2 megs of 70ns and 2 megs of 6\nBK>or something like that?\n\nSure.  I have 4 70ns SIMMs in one bank and 4 60ns SIMMS in the other ( I \nhave a 486 ).  I wouldn't recommend mixing speeds within a bank, just to \nbe on the safe side.\n\n-rdd    \nrdesonia@erim.org\n\n---\n . WinQwk 2.0b#0 . Unregistered Evaluation Copy\n * KMail 2.95d W-NET HQ, hal9k.ann-arbor.mi.us, +1 313 663 4173 or 3959\n                                                      \n----\n| HAL 9000 BBS:  QWK-to-Usenet gateway  | Four 14400 v.32bis dial-ins    |\n| FREE Usenet mail and 200 newsgroups!  | PCBoard 14.5aM * uuPCB * Kmail |\n| Call +1 313 663 4173 or 663 3959      +--------------------------------+\n| Member of EFF, ASP, ASAD  * 1500MB disk * Serving Ann Arbor since 1988 |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8258, "properties": {"category": "rec.sport.baseball", "text": "From: alird@Msu.oscs.montana.edu\nSubject: Re: cubs & expos roster questions\nArticle-I.D.: Msu.0096B0F0.C5DE05A0\nReply-To: alird@Msu.oscs.montana.edu\nOrganization: Montana State University\nLines: 13\n\nIn article <1993Apr15.003015.1@vmsb.is.csupomona.edu>, cvadrnlh@vmsb.is.csupomona.edu writes:\n>Today (4/14) Cubs activated P Mike Harkey from DL, whom did they move to make\n>room for Harkey?\n>Also, are Delino Deshields & John Wetteland of the Expos on the DL?\n>Thanks for anyone who can give me more info!\n>/===\n>Ken \n>Cal Poly, Pomona\n>\n\nWetteland is on the DL effective March 26 or something like that.\n\nrick\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8259, "properties": {"category": "sci.electronics", "text": "From: lzahas@acs2.bu.edu (Lukas Zahas)\nSubject: Re: How do DI boxes work?\nOrganization: Boston University, Boston, MA, USA\nLines: 19\n\nIn article <LANCER.93Apr15150228@oconnor.WPI.EDU> lancer@oconnor.WPI.EDU (Stephe Lewis Foskett) writes:\n>\n>I'm doing sound for a couple of bands around here and we need Direct\n>Input boxes for the keyboards.  These are the little boxes that take a\n>line level out of the keyboard and transform it into low-Z for the run\n>to the mixer.  Sadly they cost like $50 (or more) each and I'm going\n>to need like 5 or 10 of them!  I looked inside one (belonging to\n>another band) and it looks like just a transformer.  Does anyone have\n>any plans for building them?  \n>\n$50 each!!  Don't bother trying to make one yourself, just shop around a\nlittle.  I've found DOD brand DI boxes for as cheap as $20 each.  You can \nget higher end ones for more, but for PA use for bands, I wouldn't bother.\nMaking one yourself might work, but getting a sturdy enough enclosure might\nbe hard (they're made of heavy guage metal, since they're always on the floor,\nbeing kicked around a lot). For any additional questions on this topic, you \nmight want to post to rec.audio.pro\n\t\t\t\t\t\tLukas Zahas\n\t\t\t\t\t\tlzahas@bu.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8260, "properties": {"category": "rec.motorcycles", "text": "From: svoboda@rtsg.mot.com (David Svoboda)\nSubject: Re: Your opinion and what it means to me.\nNntp-Posting-Host: corolla18\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 44\n\nIn article <13516@news.duke.edu> infante@acpub.duke.edu (Andrew  Infante) writes:\n|Well, as a few of you so aptly put it, \n|get off the road, jerk, we don't wanna hear your \n|whining.\n|\n|Fine.\n|\n|Fuck off too.\n|\n|If you noticed, it was in 91, more than two years ago,\n|and YES, I've learned, and it's cost me.\n|\n|And yes, I've known people (friends and relatives) who've\n|been involved in drunk-related accidents (not them, they were hit)\n|and my cousin is still recovering.\n|\n|No, I can't take back what happened.\n|\n|Yes, it was stupid.\n|\n|But, by reminding me about it all the time, you're\n|neither helping me or yourself, so stuff your opinion.\n\nHey, man, you brought it up.  I agree completely, driving drunk is really\nstupid, and I understand and appreciate that you feel bad about it.  But\nDWI is endemic in our society.  It is a REAL problem.  And we, as \nmotorcyclists, can be in the worst of vulnerable positions around a drunk\ndriver.  (Alert readers might remember that last year I witnessed a DWI\naccident (right bloody in front of me), and was unable to save the life \nof one of the participants, as I reported here.)  Also, drunk driving by\nmotorcyclists is a prime cause of their injury and death, which raises the\ninsurance rates, forces stupidly restrictive laws, and turns the public\nagainst those of us who ride responsibly.\n\nIn my view, drunk driving should carry a mandatory prison sentence.\nIt is one of the traffic offenses which is NOT a public funds issue,\nbut a genuine safety issue.  So if YOU bring up the subject on rec.moto,\nadmitting having been caught DWI, and looking for sympathy over the \nconsequences, don't expect people to respond with warm wishes.\n\nDave Svoboda (svoboda@void.rtsg.mot.com)    | \"I'm getting tired of\n90 Concours 1000 (Mmmmmmmmmm!)              |  beating you up, Dave.\n84 RZ 350 (Ring Ding) (Woops!)              |  You never learn.\"\nAMA 583905  DoD #0330  COG 939  (Chicago)   |  -- Beth \"Bruiser\" Dixon\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8261, "properties": {"category": "talk.politics.guns", "text": "From: gt6511a@prism.gatech.EDU (COCHRANE,JAMES SHAPLEIGH)\nSubject: Re: Blast them next time\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 44\n\nIn article <1r19l9$7dv@usenet.INS.CWRU.Edu> oldham@ces.cwru.edu (Daniel Oldham) writes:\n:What happened in Waco is not the fault of the BATF. If they would of\n:had the proper equipment and personal then they could of captured the\n:\n:With the WoD and the increased crime in the streets the BATF is needed\n:more now then ever. If they blast away a few good fokes then that is\n:\n:With the arms build up in Waco they needed to hit that compound with\n:mega fire power. They could of gone in there blasting and killed a few\n\nI hope this is a joke... if not, here's my response:\n\nThe BATF has a history of no-knock raids with poor evidence, often resulting in\ninnocent people being killed or suffering injury to person or property.  I will\nNOT support the BATF until they clean up their act... Maybe...  As to equipment,\nthe BATF has damn near anything it wants...  Their faults were in intelligence\n(military and civilian definitions apply), tactics (attacking during DAYLIGHT??), methodology (the FBI stated that it is against government policy to assault\na position where there are non-combatants/potential hostages without attempting\nnegotiations first), and legality.  The BATF's jurisdiction is TAXES on firearms\nand tobacco.  They are a branch of the department of the treasury.  They have\nvery curiously backed away from their claims of illegal weaponry to push the\nchild-abuse charges... The BATF has no jurisdiction over non-firearms/tobacco\nissues! And the charges of child-abuse had been investigated in the past with\nno violence and no validation.  This was a clear case of first the BATF, then\nthe FBI, having watched too many Rambo movies...  My opinion is that the agent\nin charge should be charged with executing an illegal raid, criminal negligence,\nmurder, civil rights violations, and breaking his/her oath to uphold and defend\nthe Constitution of the US.  The warrant should be unsealed to reveal to the \npublic what justification the BATF thought it had in committing an armed assault\non American citizens.  And while on the issue of investigating this issue,\nthe Randy Weaver case and the Johnny Lawmaster case should be investigated for\nBATF wrongdoing.\n\nJames\n\nbtw, if the BATF came busting in my windows with concussion grenades, you could damn well bet I would return fire to the utmost of my ability.\n\n\n\n-- \n********************************************************************************\nJames S. Cochrane        *  When in danger, or in doubt, run in * This space \ngt6511a@prism.gatech.edu *  circles, scream and shout.          * for rent\n********************************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8262, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d2cheng@undergrad.math.uwaterloo.ca (Dominic Cheng)\nSubject: Re: Centris Cache & Bernoulli Box\nOrganization: University of Waterloo\nLines: 7\n\nYou will need Driver ver 3.5.2 to work with Quadra/Centris.  You can download\nit from iomega BBS: 1-801-778-4400\n\n--\n\nDominic Cheng (d2cheng@descartes.uwaterloo.ca)\nComputer Science, University of Waterloo, Ontario, Canada\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8263, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: shaw@feanor.xel.com (Greg Shaw)\nSubject: Re: IDE vs SCSI\nOrganization: XEL Communications, Inc.\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 39\n\nGRUBB (bgrubb@dante.nmsu.edu) wrote:\n: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n: >What does a 200-400 meg 5 megs/sec SCSI drive cost?\n: Since the Quadra is the only Mac able to deal with 5MB/s and Hard drives START\n: at 160MB I have NO idea.\n: For the Mac I have the following {These are ALL external}\n:  20MB $299 {$15/MB}\n:  52MB $379 {$7.3/MB}\n:  80MB $449 {$5.63/MB}\n: 120MB $569-$639 {$4.75-$5.33/MB\n: 210MB $979-$1029{$4.67-$4.90/MB}\n: 320MB $1499-$1549 {$4.68-$4.84/MB}\n: 510MB $1999-$2119 ($3.92-$4.31/MB}\n: etc\n\nI thought you might want the latest prices:\n\nAs of MacWeek 4/12/93: \n  Meg:   Int   Ext\n  20M - couldn't find one available.\n  42M - $159  $219\n  85M - $199  $269\n  127 - $279  $349\n  170 - $299  $359  All above are quantum, low profile (1\") 3.5\" drives\n  240 - $369  $449\n  525 - $899  $979\n  1225- $1499 $1569 - the last three are quantum 1/2 height 3.5\" drives.\n\n[ bunch o stuff deleted ]\n\n: SCSI came FROM the high end computer world with multitasking OS were the\n: standard for the most part.  \n\nHear, hear.  \n-- \n_______________________________________________________________________________\nYou can't go against nature, because when you do, \tGreg Shaw\ngo against nature, it's part of nature too.\t\tshaw@feanor.xel.com \n\t\t\tLove & Rockets\t\t\tuunet!csn!xel.com!shaw  \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8264, "properties": {"category": "talk.religion.misc", "text": "From: alizard@tweekco.uucp (A.Lizard)\nSubject: Re: OTO, the Ancient Order of Oriental Templars\nOrganization: Tweek-Com Systems BBS, Moraga, CA (510) 631-0615\nLines: 18\n\nThyagi@cup.portal.com (Thyagi Morgoth NagaSiva) writes:\n\n> \"This organization is known at the present time as the Ancient\n> Order of Oriental Templars.  Ordo Templi Orientis.  Otherwise:\n> The Hermetic Brotherhood of Light.\n> \nDoes this organization have an official e-mail address these\ndays? (an address for any of the SF Bay Area Lodges, e.g. Thelema\nwould do.)\n                                      93...\n                                       A.Lizard\n\n-------------------------------------------------------------------\nA.Lizard Internet Addresses:\nalizard%tweekco%boo@PacBell.COM        (preferred)\nPacBell.COM!boo!tweekco!alizard (bang path for above)\nalizard@gentoo.com (backup)\nPGP2.2 public key available on request\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8265, "properties": {"category": "comp.windows.x", "text": "From: rgasch@nl.oracle.com (Robert Gasch)\nSubject: Re: Expose Events\nOrganization: Oracle Europe\nLines: 5\nX-Newsreader: TIN [version 1.1 PL8]\n\nPlease excuse my previous posting. It was appended to this thread by \naccident.\n\n\n--> Robert\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8266, "properties": {"category": "rec.sport.hockey", "text": "From: slegge@kean.ucs.mun.ca\nSubject: Trade rumor: Montreal/Ottawa/Phillie\nLines: 20\nOrganization: Memorial University. St.John's Nfld, Canada\n\nTSN Sportsdesk just reported that the OTTAWA SUN has reported that\nMontreal will send 4 players + $15 million including Vin Damphousse \nand Brian Bellows to Phillidelphia, Phillie will send Eric Lindros\nto Ottawa, and Ottawa will give it's first round pick to Montreal.\n \nIf this is true, it will most likely depend on whether or not Ottawa\ngets to choose 1st overall.  Can Ottawa afford Lindros' salary?\n \nPersonally, I can't see Philli giving up Lindros -- for anything.  \nThey didn't give away that much to Quebec just to trade him away \nagain.  Not to mention that Lindros seems to be a *huge* draw in\nPhillie -- and that he represents a successful future for the \nfranchise.\n \nOttawa may be better off taking the 4 players +$15 from Montreal\nfor the pick.\n \nStephen Legge\nSLEGGE@kean.ucs.munc.ca\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8267, "properties": {"category": "misc.forsale", "text": "From: pochanay@cae.wisc.edu (Adisak Pochanayon)\nSubject: 24-pin Printer For Sale as well\nOrganization: College of Engineering, Univ. of Wisconsin--Madison\nLines: 35\n\n   I have a 24-pin printer which is an ALPs Allegro24.  It's both a fast\nprinter with LQ and a very sophisticated design.  It has a straight paper\npath and the capability of auto-forwarding sheets to tear off and then back\n(a big paper saver as you never have to waste sheets to get a current\nprint out).  It can also handle single sheets without removing the formfeed\nand has sophisticated preferences options (you can interactively program\nall the preferences to control the printer and get printed feedback without\never using a computer).  You get prompts and menus to pick your current setup\nand default set up.  This was THE top of the line LQ dot matrix when I bought\nit three years ago for $399.  It is also Epson LQ2500 compatible (besides it's\nown modes) and comes with IBM driver software (which I've never used since I\nown an Amiga).  Has a card slot for upgrading memory or fonts.\n\n    I'll let it go for $150 including shipping prepaid.  COD orders must pay\nall shipping and COD costs.\n\n   Adisak Pochanayon - 608-238-2463\n\n-------\n\n   Also a light gun and UFORCE controller for Nintendo but with PD driver\nsoftware to use them on the Amiga.  The light gun is fully remote (no wires).\nBest offer over $75 ($30 less than my cost and they are both brand new).\n\n---------------------------------- CUT HERE ----------------------------------\n\n     Jeez!!! It never fails, get in the tub and there's a rub at the lamp!\n-- The Genie from Aladdin.\n\n             pochanay@cae.wisc.edu   eddie (Adisak) Pochanayon\n Check out all of SilverFox SoftWare's Releases.... your Amiga entertainment.\n\n---------------------------------- CUT HERE ----------------------------------\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8268, "properties": {"category": "alt.atheism", "text": "From: Nanci Ann Miller <nm0w+@andrew.cmu.edu>\nSubject: Re: It's all Mary's fault!\nOrganization: Sponsored account, School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 28\n\t<C5KEqu.4xo@portal.hq.videocart.com>\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <C5KEqu.4xo@portal.hq.videocart.com>\n\ndfuller@portal.hq.videocart.com (Dave Fuller) writes:\n>   Nice attempt Chris . . . verrry close.\n> \n>   You missed the conspiracy by 1 step. Joseph knew who knocked her up.\n> He couldn't let it be known that somebody ELSE got ol' Mary prego. That\n> wouldn't do well for his popularity in the local circles. So what \n> happened is that she was feeling guilty, he was feeling embarrassed, and\n> THEY decided to improve both of their images on what could have otherwise\n> been the downfall for both. Clever indeed. Come to think of it . . . I\n> have gained a new respect for the couple. Maybe Joseph and Mary should\n> receive all of the praise being paid to jesus.\n\nLucky for them that the baby didn't have any obvious deformities!  I could\njust see it now: Mary gets pregnant out of wedlock so to save face she and\nJoseph say that it was God that got her pregnant and then the baby turns\nout to be deformed, or even worse, stillborn!  They'd have a lot of\nexplaining to do.... :-)\n\n> Dave \"Buckminster\" Fuller\n> How is that one 'o keeper of the nicknames ?\n\nNanci\n.........................................................................\nIf you know (and are SURE of) the author of this quote, please send me\nemail (nm0w+@andrew.cmu.edu):\nLife does not cease to be funny when people die, any more than it ceases to\nbe serious when people laugh.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8269, "properties": {"category": "rec.autos", "text": "From: grady@world.std.com (Dick Grady)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 18\n\nIn article <C5HqJ0.57@unix.amherst.edu> bhtulin@unix.amherst.edu (Barak H. Tulin) writes:\n>I just started reading this thread today, so forgive me if it has already been\n>mentioned.  But...what was the deal with Renault's putting the horn on the\n>left-hand turn-signal stalk?  It was a button on the end, where the washer\n>button would be on the wiper/washer stalk.  Could the Frenchies not figure\n>out the wiring through the steering wheel, or what?\n\nFord tried that also, back in 1983.  My 1983 Ranger Pickup had the horn at\nthe end of the turn-signal stalk, instead of in the center of the wheel where\nGod intended it to be. :-)  I drove two different cars then (the other an\n1984 Camry), and never did get used to pushing the turn-signal stalk to\nblow the horn.  The only time I got it right was when I was getting the\nannual state-required safety inspection!\nNot one of Ford's better ideas.\n\n-- \nDick Grady           Salem, NH,  USA            grady@world.std.com\nSo many newsgroups, so little time!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8270, "properties": {"category": "talk.politics.guns", "text": "From: jbs@rti.rti.org\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Joe's Bar and Grill\nLines: 16\n\nIn article <C5rpoJ.IJv@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>\n>Well they had over 40 days to come out with their hands up on national tv \n>to get the trial they deserved.  Instead they chose to set fire to their \n>compund hours after the tanks dropped off the tear gas.\n\nThis is about the third person who's parroted the FBI's line about the\nfires being set \"six hours after the tear gas was injected.\"  Suppose you\nwant to explain to us the videotape footage shown on national TV last night\nin which a tank with the gas-injecting tubes is pulling its injection tubes\nout of the second story of a building as the building begins to belch smoke\nand then fire?\n\nDo tell.\n\n  -joe\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8271, "properties": {"category": "rec.autos", "text": "From: rmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen)\nSubject: Re: Impala SS going into production!\nOrganization: University of Virginia\nDistribution: na\nLines: 25\n\nqazi@csd4.csd.uwm.edu  writes:\n> --From the latest issue of AutoWeek, the Chevy Impala SS will arrive in\n> dealer showrooms in mid-1994.  Dealers have already been notified.  No word\n> on the changes to be made for the production version.  My question to all of\n> you is would you buy it?  And how much would you pay for it?\n> \n> Aamir Qazi\n> qazi@csd4.csd.uwm.edu\n> --Why should I care?  I'd rather watch drying paint.\n> \n> -- \n> \n> Aamir Qazi\n> qazi@csd4.csd.uwm.edu\n\n\n> --Why should I care?  I'd rather watch drying paint\n\nAlright GM!!!! Finally my wishes have come true, Moby Dick with a Corvette\nengine.  DOn't you think they should maybe spend the money doing something\nabout the lousy build/quality/design of their bigger selling cars?  This is\nanother example of why GM is in so much trouble.  If you're going to stick\nthe LT-1 or ZR-1 engine in a car, at least make it a nice looking one.\nSheesh\n.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8272, "properties": {"category": "rec.motorcycles", "text": "From: prange@nickel.ucs.indiana.edu (Henry Prange)\nSubject: Re: (tangentially) Re: Live Free, but Quietly, or Die\nNntp-Posting-Host: nickel.ucs.indiana.edu\nOrganization: Indiana University\nLines: 20\n\nIn article <1993Apr15.035406.29988@rd.hydro.on.ca> jlevine@rd.hydro.on.ca (Jody Levine) writes:\n\nimpertinent stuff deleted\n>\n>Am I showing my Canadian University-ness here, of does anyone else know\n>what I'm talking about?\n>\n>I've        bike                      like       | Jody Levine  DoD #275 kV\n>     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n>                         ride it                 | Toronto, Ontario, Canada\n\nThere you go again, you edu-breath poser! \"University-ness\" indeed!\nLeave that stuff to us professionals.\n\nHenry Prange  biker/professional edu-breath\nPhysiology/IU Sch. Med., Blgtn., 47405\nDoD #0821; BMWMOA #11522; GSI #215\nride = '92 R100GS; '91 RX-7 conv = cage/2; '91 Explorer = cage*2\nThe unifying trait of our species is the relentless pursuit of folly.\nHypocrisy is the only national religion of this country.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.393+0000", "event": "documents", "entityId": 8273, "properties": {"category": "rec.autos", "text": "From: ct22@cunixa.cc.columbia.edu (Constantino  Tobio)\nSubject: Re: Quick Question\nArticle-I.D.: news.1993Apr6.050302.13153\nOrganization: Columbia University\nLines: 62\nNntp-Posting-Host: cunixa.cc.columbia.edu\n\nNewsgroups: rec.autos,rec.autos.vw\nSubject: Re: Quick question\nSummary:\nExpires:\nSender:\nReply-To: ct22@cunixa.cc.columbia.edu (Constantino  Tobio)\nFollowup-To:\nDistribution: \nOrganization: Columbia University\nKeywords: Removing panels.\n\nIn article <1993Apr5.211457.12789@ole.cdac.com> ssave@ole.cdac.com (The Devil Reincarnate) writes:\n> How do you take off the driver side door panel from the inside\n>on an '87 Honda Prelude?  The speaker went scratchy, and I want\n>to access its pins.\n>\n> I see only one press button and the rest is snug fit.\n>\n>\n> -S\n> ssave@ole.cdac.com\n\nQuick question. Why are you posting this to a VW newsgroup?\n\nNewsgroups: rec.autos,rec.autos.vw\nSubject: Re: Quick Question\nSummary: \nDistribution: world\nOrganization: Columbia University\nKeywords: \n\nNewsgroups: rec.autos,rec.autos.vw\nNewsgroups: rec.autos,rec.autos.vw\nSubject: Re: Quick question\nSummary:\nExpires:\nReferences: <1993Apr5.211457.12789@ole.cdac.com>\nSender:\nReply-To: ct22@cunixa.cc.columbia.edu (Constantino  Tobio)\nFollowup-To:\nDistribution: \nOrganization: Columbia University\nKeywords: Removing panels.\n\nIn article <1993Apr5.211457.12789@ole.cdac.com> ssave@ole.cdac.com (The Devil Reincarnate) writes:\n> How do you take off the driver side door panel from the inside\n>on an '87 Honda Prelude?  The speaker went scratchy, and I want\n>to access its pins.\n>\n> I see only one press button and the rest is snug fit.\n>\n>\n> -S\n> ssave@ole.cdac.com\n\nQuick question. Why are you posting this to a VW newsgroup?\nConstantino Tobio, Jr.                              ** ct22@columbia.edu **\n\"Tremble you weaklings, cower in fear, I am your ruler, land, sea and air.\n Immense in my girth, erect I stand tall, I'm a nuclear murderer.\n I am POLARIS!\"      - Megadeth, \"Rust in Peace\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8274, "properties": {"category": "comp.windows.x", "text": "From: defaria@cup.hp.com (Andy DeFaria)\nSubject: Mysterious beeping\nNntp-Posting-Host: hpclapd.cup.hp.com\nOrganization: Hewlett-Packard\nX-Newsreader: TIN [version 1.1 PL8.8]\nLines: 121\n\n[ Article crossposted from hp.windows ]\n[ Author was Andy DeFaria ]\n[ Posted on Mon, 19 Apr 1993 18:08:38 GMT ]\n\nFor some reason the following code causes my X application to beep whenever I\nintercept a keystroke and change it's meaning.  The intent of this code it to\nallow \"date\" fields the following special keys:\n\n\t[Tt]:\tInsert today's date\n\t[+=]:\tBump day up by one\n\t[-_]:\tBump day down by one\n\nI hardcoded some dates for this example.  Perhaps I shouldn't be using an\nXmText field for this.\n\n////////////////////////////////////////////////////////////////////////////// \n// \n// For some reason the following code beeps whenever any of the special keys\n// of [Tt+=-_] are hit.  Why?  The idea of this code is to interpret these\n// keys having the special meaning implied by the code.  I would like to get\n// rid of the beeping but, as far as I can tell, I'm not doing the beep and \n// am at a lose as to understanding who and why the beeping is occuring.\n// \n////////////////////////////////////////////////////////////////////////////// \n#include <X11/Intrinsic.h>\n#include <Xm/Xm.h>\n#include <Xm/RowColumn.h>\n#include <Xm/MainW.h>\n#include <Xm/Text.h>\n\nWidget\t\ttoplevel;\nWidget\t\tmainWindow;\nWidget\t\tmainPane;\nWidget\t\tdateField;\nXtAppContext\tapplication; \n\nvoid markToday (Widget date) {\n   char *todaysDate = \"04/19/93\";\n   XtVaSetValues (date, XmNvalue, todaysDate, NULL);\n} // markToday\n\nvoid markTomorrow (Widget date) {\n   char *tomorrowsDate = \"04/20/93\";\n   XtVaSetValues (date, XmNvalue, tomorrowsDate, NULL);\n} // markTomorrow\n\nvoid markYesterday (Widget date) {\n   char *yesterdaysDate = \"04/18/93\";\n   XtVaSetValues (date, XmNvalue, yesterdaysDate, NULL);\n} // markYesterday\n\nvoid datekeys (Widget          /* callingWidget */,\n\t       Widget          date,\n\t       XmTextVerifyPtr callbackData) {\n   // Capture the keys [Tt-_+=] can change their behaviour.  If found\n   // set \"doit\" to false so X won't interpret the keystroke. \n   switch (callbackData->text->ptr [0]) {\n      case 't': case 'T': \n\t markToday (date);\n\t callbackData->doit = FALSE;\n\t return;\n      case '-': case '_':\n\t markYesterday (date);\n\t callbackData->doit = FALSE;\n\t return;\n      case '+': case '=':\n\t markTomorrow (date);\n\t callbackData->doit = FALSE;\n\t return;\n      default:\n\t return;\n   } // switch\n} // datekeys\n\nvoid main (Cardinal argc, char *argv []) { \n   // Initialize Xt \n   toplevel = XtVaAppInitialize (&application, \"Application\", NULL, 0, \n\t\t\t\t &argc, argv, NULL, NULL); \n\n   // Create the toolface\n   mainWindow = XtVaCreateManagedWidget \n      (\"mainWindow\", xmMainWindowWidgetClass, toplevel, NULL);\n\n   // Create a mainWindow\n   mainPane = XtVaCreateManagedWidget\n      (\"mainPane\", xmRowColumnWidgetClass, mainWindow, NULL);\n\n   // Create a small text area\n   dateField = XtVaCreateManagedWidget\n      (\"dateField\", xmTextWidgetClass, mainPane,\n       XmNtopAttachment,\tXmATTACH_FORM,\n       XmNrightAttachment,\tXmATTACH_FORM,\n       XmNcolumns,\t\t8,\n       NULL);\n\n   // Set modifyVerifyCallback to the datekeys callback   \n   XtAddCallback (dateField, XmNmodifyVerifyCallback,\n\t\t  (XtCallbackProc) datekeys, (XtPointer) dateField);\n\n   // Realize the toplevel \n   XtRealizeWidget (toplevel);\n\n   // Go into the XtMainLoop\n   XtAppMainLoop (application); \n} // main \n\n_______________________________________________________________________________\nI swear by my life and the love of it that I will    | Andrew DeFaria\nnever live for the sake of another man nor ask       | Hewlett Packard\nanother man to live for mine.                        | California Language Labs\n                    John Galt                        | defaria@cup.hp.com\n_______________________________________________________________________________\n\n\n--\n_______________________________________________________________________________\nI swear by my life and the love of it that I will    | Andrew DeFaria\nnever live for the sake of another man nor ask       | Hewlett Packard\nanother man to live for mine.                        | California Language Labs\n                    John Galt                        | defaria@cup.hp.com\n_______________________________________________________________________________\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8275, "properties": {"category": "soc.religion.christian", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Easter: what's in a name? (was Re: New Testament Double Standard?\nOrganization: Florida State University\nLines: 63\n\nseanna@bnr.ca (Seanna (S.M.) Watson) writes:\n> Since the_day_upon_which_most_Christians_celebrate_the_resurrection_of_Jesus\n> is approaching, I thought I would comment on this:\n> \n> In article <Mar.29.03.23.31.1993.19711@athos.rutgers.edu> dsegard@nyx.cs.du.edu (Daniel Segard) writes:\n> >\n> What is the objection to celebration of Easter?  It is celebration of the\n> resurrection of Jesus.  I don't recall a command in Scripture for us to\n> celebrate the resurrection, but it is the sole and only reason that we\n> are Christians--how could we not celebrate it?  If it is only the name\n\nNot quite correct.  Biblical teaching expects us to celebrate the\nresurrection of Christ not once a year but every time someone is baptized.\n Col. 2:12-Buried with him in baptism, wherein also ye are risen with him\nthrough the faith of the operation of God, who hath raised him from the\ndead.\"  Rom. 6:4-Therefore we are buried with him in baptism into death:\nthat like as Christ was raised up from the dead by the glory of the\nFather, even so we also should walk in newness of life.\"\nThose really want to celebrate the resurrection should by faith walk in\nnewness of life after baptism.  It is not necessary to celebrate a pagan\ngoddess in the process.\n\n> >      So, as we see from Scripture, those who are of Israel will observe\n> >the 7th Day *FOREVER*.  The Gentiles who believe in the Messiah of Israel\n> >are welcome to observe the 7th Day as well, but it is not required of them\n> >since the are adopted into the Commonwealth of Israel.  The Gentiles who\n> >are grafted into the Commonwealth of Israel are only required to observe\n> >the basic commands given to those who came before Abram (see also Acts\n> >15).  No further requirements are placed upon them once they come to faith\n> >in Messiah.\n> > \n> So from this I infer that there are different rules for Christians of Jewish\n> descent?  What happened to \"there is neither Jew nor Greek, slave nor free,\n> male nor female, for all are one in Christ Jesus\"?  Jewish Christians/Messianics\n> may find certain forms of worship and certain disciplines meaningful because\n> of their cultural background, but I have a hard time understanding the \n> justification for applying rules or commandments to those who have been \n> justified by grace through faith in Jesus Christ.\n> \nPaul answered your question in Romans 9.  In v. 4 he stated that the\nadoption, the glory, the covenants, the giving of the law, the service of\nGod, and the promises were given to the Israelites.  It is a package deal.\n He goes on to identify those who are true Israelites.  Vs 6-8 makes it\nplain that the true Israelites are not those who are born that way but\nthose who accept the promise of God.  Paul continued to emphasize that he\nwas an Israelite in 2 Cor. 11:22, then in Gal 3:29 he says that all those\nwho belong to Christ are Abraham's seed, and heirs to all the promises\ngiven to the Israelites.  The promises come with the law.  It is all or\nnothing.  Why is it that you only want to discard one part of the law? \nCertainly you would want your husband to be faithful to you.  Or do you\nbelieve that adultery is no longer forbidden?  Same law.\n\nBTW  please give a reference for your statement that the Gentiles are only\nrequired to observe the basis commandmants.  Could you list those\nplease.  Acts 15 deals with circumcision and the law of Moses which was\nadded because of transgression of God's eternal law (Gal 3:19; Rom 4:15)\n\n++++++++++++\nDarius A. Lecointe                     | I got my BA when I was Born Again\nDepartment of Educational Research     | And my MA when I was Made Anew\nFlorida State University               | Now I'm getting my PhD as I become \nTel: (904) 644-0706                    | A Patient, Humble, Disciple.\nE-mail: dlecoint@garnet.acns.fsu.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8276, "properties": {"category": "comp.windows.x", "text": "From: pfuetz@igd.fhg.de (Matthias Pfuetzner)\nSubject: Available memory to the Xserver. How to get the actual size?\nOrganization: Zentrum fuer Graphische Datenverarbeitung, Darmstadt, FRG\nLines: 25\n\nHello Everybody!\n\nI have a little question:\n\nDue to more features (PEX, Drag&Drop) many applications when linked with for\nexample Motif 1.2 instead Motif 1.1 need more memory in the Xserver.\nX-terminals only have limited memory (normally no swapping possible). So my\nquestion:\n\nIs there a possibility to determine via X protocol calls the size of free\nmemory available to the Xserver?\n\nSo one can determine for example whether to start a PEX application with the\nCSS on client side or on server side (when there is enough memory).\n\nPlease reply via e-mail, I'll summarize!\n\nSincerly,\n        Matthias\n\n-- \n    Matthias Pfuetzner  |  @work:  +49 6151 155-150  | @home: +49 6151 75717\n    6100 Darmstadt, FRG | ZGDV, Wilhelminenstrasse 7 | Lichtenbergstrasse 73\n      pfuetzner@igd.fhg.de, pfuetzner@zgdvda.UUCP    |  Keith Packard said:\n      R5 is different from R4. That's why we changed the release number :-)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8277, "properties": {"category": "sci.crypt", "text": "From: matt@wardsgi.med.yale.edu (Matt Healy)\nSubject: Re: Patents (was RC2 RC4)\nNntp-Posting-Host: wardibm2.med.yale.edu\nOrganization: Yale U. - Genetics\nLines: 30\n\nIn article <bontchev.734787730@fbihh>,\nbontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev) wrote:\n> \n> ahaley@eoe.co.uk (Andrew Haley) writes:\n> \n> > : Coca-Cola has always understood it.\n> \n> > Coca-cola is made under licence in dozens of countries around the\n> > world.  You're crazy if you think PepsiCo doesn't know the recipe.\n> \n> In all those countries Coca-cola is distributed in a form of\n> concentrate what the local producers simply mix with water and other\n> simple ingredients. The trick is to know what is in the concentrate...\n> \n\nI don't know if this is still true, but at one time Coca-Cola\ntook elaborate measures to keep the formula secret.  For instance,\nseveral plants in different cities each made one of six partial\nconcentrates, which were then shipped back-and forth and remixed\nin a complicated scheme so that no single plant made the whole\nformula.  By now, I would guess that PepsiCo's chemists would have\nreverse-engineered it; can't be all that exotic.  Actually I\nprefer Pepsi anyhow; in about 3 minutes I'm gonna put money\ninto a Pepsi vending machine...\n\nMatt Healy\n\"I pretend to be a network administrator;\n the lab net pretends to work\"\n\nmatt@wardsgi.med.yale.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8278, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: what to do with old 256k SIMMs?\nOrganization: Megatest Corporation\nLines: 26\n\nIn article <1993Apr15.100452.16793@csx.cciw.ca> u009@csx.cciw.ca (G. Stewart Beal) writes:\n>In article <120466@netnews.upenn.edu> jhaines@eniac.seas.upenn.edu (Jason Haines) writes:\n>>\n>>\tI was wondering if people had any good uses for old\n>>256k SIMMs.  I have a bunch of them for the Apple Mac\n>>and I know lots of other people do to.  I have tried to\n>>sell them but have gotten NO interest.\n>>\n>>\tSo, if you have an inovative use (or want to buy\n>>some SIMMs  8-) ), I would be very interested in hearing\n>>about it.\n>>\n>One of the guys at work takes 20 of them, uses cyano-acrylate glue to make\n>five four-wide \"panels\" then constructs a box, with bottom, to use as a\n>pencil holder.\n>\n\nOr, if you've got some entreprenuerial (sp?) spirit, get a cheapy\nclear plastic box, mount the simm inside, and sell it as a 'Pet SIMM'!\n\nI'm sure there are *plenty* of suckers out there who would go\nfor it!\n\naaron\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8279, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bm967@cleveland.Freenet.Edu (David Kantrowitz)\nSubject: Can you share one monitor w/ 2 cpus?\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 6\nNNTP-Posting-Host: slc4.ins.cwru.edu\n\n\nI have a Centris 610 & want to get an IBM machine as well.\nTo save space on my desk, I would like to use one monitor\nfor both, with a switch-box. Does anyone know of a way to do\nthis?\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8280, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: The arrogance of Christians\nOrganization: Indiana University\nLines: 13\n\nI've just read Carol's response and I just had to get into this.  I've\ngot some verses which are not subject to interpretation because they say\nwhat they say.  They are 2 Peter 1:20-21, 2 Timothy 3:16-17, and\nGalatians 1:11-12.  \n\nAlso, based on the fact that Jesus is the Word incarnate and he judges\npeople if they follow him (see Acts 17:29-31 and John 5:21-27) and that\nthose who reject Jesus' teachings are judged by the very words he spoke\n(see John 12:47-50), then Jesus' words are true and do not need\ninterpretation, nor would it be just of God to judge based on his word\nif it had to be interpreted.\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8281, "properties": {"category": "misc.forsale", "text": "From: abou@dam.cee.clarkson.edu (Abou Bakr,Damon 317,268-6611,265-8419)\nSubject: Re: Forsale and Wanted (HD/Fax/Typewriter)\nArticle-I.D.: news.1993Apr6.013847.16309\nOrganization: Clarkson University\nLines: 29\nNntp-Posting-Host: dam.cee.clarkson.edu\n\nFrom article <1pf5qe$b3b@seven-up.East.Sun.COM>, by jorge@erex.East.Sun.COM (Jorge Lach - Sun BOS Hardware):\n> \n> I'm looking to *buy* the following items:\n> \n> Fax machine: a plain one, don't need any extras, just the basic model. Good\n> \tworking order only. These sell in stores for dirt cheap, so don't\n> \tmake me any offers like \"it cost me $599 but I'll sell it for $400\"\n> \n> PC-AT Hard Drive: MFM type, 40 Mbytes, half-height only. I have a Seagate\n> \tST-151 (3.5\") on my machine, looking for same or similar type\n> \n> \n> I have the following item for *sale*:\n> \n> Electronic Typewriter: Panasonic, with 22K memory, small LCD display. I'm\n> \tselling it bundled with a Panasonic computer interface for this\n> \ttypewriter. You can connect it to any PC parallel port (sorry, no\n> \tcable). It works perfect, even in Windows (TTY printer). It's\n> \tgreat if you need to send letter with \"typewriter look\". In\n> \tstand-alone mode it has 3 pitches, and several \"effects\" like\n> \tunderline, bold, overstrike. Built-in dictionary and character/word/\n> \tline correction. Asking $150 for both the typewriter and the\n> \tinterface\n> \n> -------------------------------------------------------------------------------\n> Jorge Lach\t\t\tSun Microsystems Computer Corporation\n> Jorge.Lach@East.Sun.Com\t\tEast Coast Division, Chelmsford, MA\n> -------------------------------------------------------------------------------\n> \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8282, "properties": {"category": "misc.forsale", "text": "From: akachhy@cbnewsl.cb.att.com (avinash.kachhy)\nSubject: MS Excel SDK for Sale\nOrganization: SELF\nDistribution: usa\nLines: 21\n\n\nI have the following for sale. \nAbsolutely new, I won it at a raffle and have no use for it.\n\nMicrosoft Excel Software Development Kit\nVersion 4 for MS WIndows and the Apple Macintosh\n\nContains \n  - a 498 page book by Microsoft Press \n  - 2 3.5\" floppy disks containing software/sample code\n  - a poster of the api calls etc.\n\nOrig. price is US$ 49.95.\n\nI would like to sell it for the highest offer over $30 + shipping.\n\nPlease email reply to attmail!akachhy\n\nThanks\n\nAvinash Kachhy\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8283, "properties": {"category": "rec.motorcycles", "text": "From: dug@hpopd.pwd.hp.com (Dug Smith)\nSubject: Re: Ducati 400 opinions wanted\nOrganization: Hewlett-Packard, CCSY Messaging Centre, UK.\nLines: 4\n\nI spoke to a sales dweeb in 3X, a Ducati dealer here in Blighty, and he had\nnothing good to say about them... it appears they are waaaay underpowered,\n(basically, it's the 750/900 with a 400cc engine), and there have been some\nquality problems (rusty _frame_ !!).  Save your pennies... buy the 900 :)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8284, "properties": {"category": "talk.politics.misc", "text": "From: tzs@stein2.u.washington.edu (Tim Smith)\nSubject: Re: Why Is Tax Evasion Not Considered Unpatriotic?\nOrganization: University of Washington School of Law, Class of '95\nLines: 7\nNNTP-Posting-Host: stein2.u.washington.edu\n\nipser@solomon.technet.sg (Ed Ipser) writes:\n>There is a deeper reason. Taxes,  by their very nature, are un-American.\n>One need only look at the birth and history of the US to see this fact.\n\nSo that's why the 13 newly independent states all had tax systems...\n\n--Tim Smith\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8285, "properties": {"category": "sci.electronics", "text": "From: R_Tim_Coslet@cup.portal.com\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 41\n\nIn article: <1qlg9o$d7q@sequoia.ccsd.uts.EDU.AU>\n\tswalker@uts.EDU.AU (-s87271077-s.walker-man-50-) wrote:\n>I really don't know where to post this question so I figured that\n>this board would be most appropriate.\n>I was wondering about those massive concrete cylinders that\n>are ever present at nuclear poer sites. They look like cylinders\n>that have been pinched in the middle. Does anybody know what the\n>actual purpose of those things are?. I hear that they're called\n>'Cooling Towers' but what the heck do they cool?\n\nExcept for their size, the cooling towers on nuclear power plants\nare vertually identical in construction and operation to cooling\ntowers designed and built in the 1890's (a hundred years ago) for\ncoal fired power plants used for lighting and early electric railways.\n\nBasicly, the cylindrical tower supports a rapid air draft when\nits air is heated by hot water and/or steam circulating thru a network\nof pipes that fill about the lower 1/3 of the tower. To assist cooling\nand the draft, water misters are added that spray cold water over the\nhot pipes. The cold water evaporates, removing the heat faster than\njust air flow from the draft would and the resulting water vapor is\nrapidly carried away by the draft. This produces the clouds frequently\nseen rising out of these towers.\n\nThat slight pinch (maybe 2/3 of the way up the tower) is there because\nit produces a very significant increase in the strength and rate of\nthe air draft produced, compared to a straight cylinder shape.\n\nThe towers are used to recondense the steam in the sealed steam\nsystem of the power plant so that it can be recirculated back to the\nboiler and used again. The wider the temperature difference across\nthe turbines used in the power plant the more effecient they are and\nby recondensing the steam in the cooling towers before sending it\nback to the boilers you maintain a very wide temperature difference\n(sometimes as high as 1000 degrees or more from first stage \"hot\"\nturbine to final stage \"cold\" turbine).\n\n                                        R. Tim Coslet\n\nUsenet: R_Tim_Coslet@cup.portal.com\n        technology, n.  domesticated natural phenomena\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8286, "properties": {"category": "rec.autos", "text": "From: music@erich.triumf.ca (FRED W. BACH)\nSubject: Re: Auto air conditioning without Freon\nOrganization: TRIUMF: Tri-University Meson Facility\nLines: 75\nDistribution: usa\nNNTP-Posting-Host: erich.triumf.ca\nKeywords: R12, R-12, freon, CFC, greenhouse\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr19.220321.4565@research.nj.nec.com>, behanna@syl.nj.nec.com (Chris BeHanna) writes...\n#In article <1993Apr16.160825.25622@newsgate.sps.mot.com> rapw20@email.sps.mot.com writes:\n#>In article <1993Apr15.222600.11690@research.nj.nec.com>  \n#>behanna@syl.nj.nec.com (Chris BeHanna) writes:\n#>>  ...\n#>> \tSeveral chemists already have come up with several substitutes for\n#>> R12.  You don't hear about them because the Mobile Air Conditioning  \n#>Society\n#>> (MACS), that is, the people who stand to rake in that $300 to $1000 per\n#>> retrofit per automobile, have mounted an organized campaign to squash  \n#>those\n#>> R12 substitutes out of existence if not ban them altogether (on very  \n#>shaky\n#>> technical grounds, at best, on outright lies at worst).\n#>>  ...\n#>\n#>Now, I'm not saying you're wrong because I know that the R-12 substitutes  \n#>exist, but this sounds a lot like the 200mpg carbs that the oil companies  \n#>keep us all from getting.\n# \n#\tIt sounds crazy, but it's true.  One of the best R-12 subsitutes,\n#GHG-12, is currently a commercial product.  Unfortunately, the SAE committee\n#on mobile air conditioning is comprised almost exclusively of MACS members.\n#Such being the case, no papers about any alternative refrigerant other than\n#R-134a have been accepted for review/publication.\n# \n#\tYo, John?  You want to provide some more details?  Or should I just\n#repost your voluminous repost?\n# \n#Later,\n#-- \n#Chris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\n#behanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\n#Disclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\n#agree with any of this anyway?    I was raised by a pack of wild corn dogs.\n\n\n    We here are *VERY* interested in info on R12 substitutes (in fact I\n think we really need all the info on this we can get).\n\n    I would really appreciate technical, supply, and hardware-upgrade\n details.  \n\n   Also, R12 is a useful solvent/reagent in the extraction/production of\n certain pharmaceuticals.  Any info on the substitutes' corresponding\n usefullness?\n\n    I am currently working with the local engineers who are making sure\n we are compliant with the regulations.  The trouble with regulations is\n that they only tell you what you are no longer permitted to do, not what\n you should do instead.\n\n     I think the cause of the new regulations is the Montreal Protocol\n which has a definite CFC-phase-out schedule.  (Of course the cause of\n the Montreal Protocol was all the research done on the causes of the\n Ozone Depletion Problem.)\n\n     Someone asked earlier about why the governments were working so fast\n to ban the ozone-depleting (CFC) chemicals and not gasolines and other\n greenhouse-gas-producing compounds.  The greenhouse effect (produced by\n infrared-trapping gasses like CO2 and methane) and the ozone-hole problem\n (produced by long-lived, chlorine-containing molecules) are not the same\n thing.  It is a lot easier to do something about not using the CFC's\n (chloro-fluorocarbons) than it is to stop producing CO2 and methane which\n are natural byproducts of combustion and of living (animal) organisms.\n Planting more trees and not destroying so many existing trees would help\n the greenhouse-gas problem, but would do nothing for the ozone problem.\n\n Fred W. Bach ,    Operations Group        |  Internet: music@erich.triumf.ca\n TRIUMF (TRI-University Meson Facility)    |  Voice:  604-222-1047 loc 327/278\n 4004 WESBROOK MALL, UBC CAMPUS            |  FAX:    604-222-1074\n University of British Columbia, Vancouver, B.C., CANADA   V6T 2A3\n\n These are my opinions, which should ONLY make you read, think, and question.\n They do NOT necessarily reflect the views of my employer or fellow workers.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8287, "properties": {"category": "rec.motorcycles", "text": "From: sturges@oasys.dt.navy.mil (Richard Sturges)\nSubject: Re: DOT Tire date codes\nReply-To: sturges@oasys.dt.navy.mil (Richard Sturges)\nDistribution: usa\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 12\n\nIn rec.motorcycles, cookson@mbunix.mitre.org (Cookson) writes:\n>To the nedod mailing list, and Jack Tavares suggested I check out\n>how old the tire is as one tactic for getting it replaced.  Does\n>anyone have the file on how to read the date codes handy?\n\nIt's quite simple; the code is the week and year of manufacture.\n\n\t<================================================> \n       /        Rich Sturges           (h) 703-536-4443   \\\n      /    NSWC - Carderock Division   (w) 301-227-1670    \\\n     /  \"I speak for no one else, and listen to the same.\"  \\\n    <========================================================>\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8288, "properties": {"category": "misc.forsale", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: Is itproper net etiquette to advertise a company's junk mail list?\nOrganization: Computer Science Department,  Stanford University.\nDistribution: usa\nLines: 42\n\nIn article <1993Apr15.234451.15707@leland.Stanford.EDU> thomper@leland.Stanford.EDU (Dale Buford Thompson) writes:\n\n>>My company maintains a 20,000+ mailing list which is regularly rented for\n> ^^^^^^^^^^\n\nOh no!  Someone is provided useful information AND mentioned that they\nmade money in the field.  Don't they know that usenet is reserved for\nuninformed speculation by people trying to sell their personal stuff\n(from houses to dead pcs) at a huge markup/trying to unload stuff they\nbought from their company at just under retail, and other\n\"non-commercial\" activities.\n\n>>a MS Windows utility product in the $100 range, and is available through\n>                                                   ^^^^^^^^^^^^^^\n>>Direct Media in CT., at $0.10 per name.  Please let your direct mail\n>                         ^^^^^^^^^^^^^^   !!!!!!^^^^^^^^^^^^^^^^^^^^^  \n>>marketing rep. know about this..  Thanks.\n>>               !!!! !!!!! !!!!                                             \n>\n>It is my impression that net etiquette does not allow companies to\n>use the net to directly advertise their products.\n\nThe net is not \"supposed\" to be a dumping ground for free ads, but\nreserving it for tripe doesn't seem to be a significant improvement.\n\n>In addition to improper etiquette, this product is a mailing list\n>used for generating junk mail.  \n\nSo?  Either they target it well enough to pay for it, in other words,\nthey manage to send it to people who want the stuff (in which case it\nis junk only for the \"rest\" and the transaction costs are borne\nappropriately in this case) or they go bankrupt.  Seems fair to me.\n\n>Am I correct in assuming this is improper, and if so, what can be \n>done to penalize such an improper use?\n\nYou could hold your breath.  You could kill offending messages as\nthey come onto your machine and refuse to send them any further,\nbut not until you turn blue.\n\n-andy\n--\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8289, "properties": {"category": "rec.sport.baseball", "text": "From: r4938585@joplin.biosci.arizona.edu (Doug Roberts)\nSubject: Re: Sandberg, Runs, RBIs (was: Re: Notes on Jays vs. Indians Series)\nOrganization: University of Arizona, Biotechnology, Tucson\nLines: 17\nDistribution: na\nNNTP-Posting-Host: joplin.biosci.arizona.edu\n\nIn article <C5JqBy.M7A@news.rich.bnr.ca> bratt@crchh7a9.NoSubdomain.NoDomain (John Bratt) writes:\n>RBIs and Runs scored are the two most important offensive statistics.  You\n>can talk about OBP and SLG% all you want, but the fact remains:\n>\n>\tThe team that scores more runs wins the game!\n>\t---------------------------------------------\n>Flame Away\n>-- John Bratt\nOK, you asked for it!\n\nI guess that doesn't bode well for the Cubs then does it?\n\n\nDoug Roberts - \"Willing to trade Frank Bolick for a bag of used baseballs!\"\n\t     - \"Let's go Expos!\"\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8290, "properties": {"category": "rec.autos", "text": "From: tvervaek@col.hp.com (Tom Vervaeke)\nSubject: Re: Toyota Land Cruiser worth it?\nOrganization: HP Colorado Springs Division\nLines: 20\nNNTP-Posting-Host: itchub21.cs.itc.hp.com\n\nMy wife and I looked at, and drove one last fall. This was a 1992 model.\nIt was WAYYYYYYYYY underpowered. I could not imagine driving it in the\nmountains here in Colorado at anything approaching highway speeds. I\nhave read that the new 1993 models have a newer, improved hp engine. \n\nI'm quite serious that I laughed in the salesman face when he said \"once\nit's broken in it will feel more powerful\". I had been used to driving a\nJeep 4.0L 190hp engine. I believe the 92's Land Cruisers (Land Yachts)\nwere 3.0L, the sames as the 4Runner, which is also underpowered (in my\nown personal opinion). \n\nThey are big cars, very roomy, but nothing spectacular.\n\n\n( ___ )-----------------------------------------------------------( ___ )\n | / | Tom Vervaeke           Email: tvervaek@cs.itc.hp.com        | \\ |\n | / | Hewlett Packard Co.    Phone: 719-590-2133                  | \\ |\n | / |                                                             | \\ |\n |___|          I love animals. They taste delicious.              |___|\n(_____)-----------------------------------------------------------(_____)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8291, "properties": {"category": "talk.politics.misc", "text": "From: neal@magpie.linknet.com (Neal)\nSubject: Re: rnitedace and violence\nOrganization: Manes and Associates, NYC\nDistribution: usa\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 28\n\n   I am glad that you recognize that people should not engage in denial\nand repression, and should acknowledge such. The United States, with\nits people, have recognized that repression has taken place, with the\nloss and outright abrogation of civil liberties and constitutional\nprotections of citizens. This recognition has taken the form of the\ncivil rights law (let's just discuss the federal level for now), such\nas 18 USC 241 et. seq., 42 USC 1981 et. seq, et. al.\n   With this recognition of repression, at times manifested in the\nform of collective guilt, I want people to recognize denial. \nThough it can be said that white people numerically commit more\ncrimes in the United States, because white people are a majority,\nit can also be said that black people commit a disproportionate\namount of crime in the United States, in their relation to their\nnumbers in population.\n   My views are out of experiences when I was a police officer\nin a large metropolitan area, and of a citizen. Unless people\naccount for their behavior, and for the behavior of their immediate\ncommunity, nothing will improve.\n\nRegards, \n\nNeal\n\n\n\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8292, "properties": {"category": "soc.religion.christian", "text": "From: REXLEX@fnal.fnal.gov\nSubject: Re: Assurance of Hell\nOrganization: FNAL/AD/Net\nLines: 142\n\nIn article <Apr.21.03.26.39.1993.1370@geneva.rutgers.edu>\nlfoard@hopper.virginia.edu (Lawrence C. Foard) writes:\n\n[ -and many others mailed me.  Here is a reply to one of the letters.  Seems to\nme that atheist do not like the doctrine of hell!]\n\n>There's nothing like a preacher to put fear into an\n>     ignorant man...\n\n>If God hadn't created Hell in the first place, there'd be no\n>     no need to \"die\" and save us.  Isn't it also a bit paradoxical\n>     to say \"God died\" when, in fact, no such thing is remotely\n>     possible.  Can the infinite die?\n\nYour using 20th century concepts to interprete 1st century writers.  Of course,\nin your termonology, God could not \"cease to exist.\"  However, that is not what\ndeath ever means in the Scriptures.  If you will study the word, you will see\nthat it signifies \"separation.\"  Death is separation, not ceastation.  This is\nthe reason for the agony of the cross.  For the first time in eternity, one\nmember of the Godhead was separated from the other two.  \n\nI once met a young lady that was as beautiful as any model that ever lived. \nShe was as personable as any saint ever imagined.  She was to become my\n\"girlfriend\" for several years.  However, having been drafted, we were\nseparated by distance.  To me that was a form of death.  Later, she decided\nthat she couldn't wait for me to come home and bid me adue.  That to me was\ndeath.  It was separation from that which had made me whole.  Death is\nseparation and eternal death is eternal separation from His fellowship, not\nbecause He chose to send you into outer darkness, but because you chose to go\nthere.  \n\n>> did you know that Jesus talked more\n>> about hell than He did about heaven!  \n\n>Thank you for this info.  What respect I had for the man now\n>     has been diminished tenfold.  I promise never again to\n>     say how wise or loving this man was...\n\nWhen I rebelled against my earthly father, he spanked me.  I found no wisdom in\nthat until I had grown older and especially until I had my own children.  He\nwas trying to guide me away from hurt that would enter my life if I continued\non my suicidal course.  He did it in love though I interpreted it as harsh and\nunloving.  If God warns of impending danger, that is love.  If choose to let us\ndo as we please, and then at the end tell us the rules, that would be harsh. \nYou have a conscience, no matter how calused or fallen it is, that witnesses to\nyou that a thing is wrong and that there is cause for fear.  \n\n>Being Jesus was allegedly God, I doubt he could honestly feel\n>     the pinpricks man dealt him...\n\nThis may give light to the error of your understanding.  One must have correct\nknowledge in order to have correct faith.  Faith and knowledge are inseparable.\n Jesus most certainly felt the \"pinpricks\" of life.  As the Scripture say:\n\nHeb. 4:15 For we do not have a high priest who cannot sympathize with our\nweaknesses, but One who has been tempted in all things as we are, yet without\nsin.\n\nThe kenosis passage of Phil 2 states that He gave up His Godhead attributes\nwhen He took upon Himself humanity.  It has been a favorite meditation of mine\nto think about this.  It was to be my PhD thesis.  \"The Consciousness of\nChrist.\"  I have talked at length with a great many people about this\ninteresting study, including clh.  \n\nIt is my conclussion that as Jesus, the 2nd member of the Trinity, actually\nsuffered as we do.  He became part of the human race and experienced it as we\ndo.  He \"grew in knowledge.\"  He chose not to grasp His omniscience, but chose\nto be taught.  It is my understanding that He was \"led of the Spirit\" to such\nan extent that sometimes it is hard to distinquish between Jesus the man and\nJesus as God.  But in Jn 8 where the adulterous women was thrown before Him,\nthe tenses are quite clear in that the whole situation took Him by surprise. \nThat is, He was not aware that this event was to take place in time.  He was\nliving sequential history as you or I.  \n\nMaybe some other time we can discuss this, but it is a very lengthy discussion\nand one that causes the curcuit breakers of the brain to pop more often than\nnot.\n\n>Thanks again for the info.  Just so you know, some friends and I\n>     are starting a Freethinkers organization-- and I'm going to\n>     use some of the info you provided for an organization intro-\n>     duction... :-)\n\nI was once a member of that club.  THe \"free thinker\" is a glorious ideal.  By\ncontrast, of course, you believe that the believer is the unforunate repository\nof everything that is dogmatic, inhibited, reactionary and repressive.  I find\nsuch a stance to be as amusing as it is absurd.   If the liberal humanist\nwishes to criticize a Christian or a Buddhist or a Marxist, that is his right. \nBut what he must not pretend is that he was led to this solely by his \"rational\ndoubt\" when in fact he was led to it by his \"faith\".  He must acknowledge that\nwhile it is rational doubt for him as a \"free thinker\" to criticize the\nChristian, it might equally be a rational doubt for the Christian to criticize\nhim as a humanist.  If there is no faith, there can be no dout.  There is no\nfaith which cannot choose to cast doubt on some other faith.\n\nPascal pointed out that \"sceptical arguments allow the positive to be positive.\n Few. . .speak dubiously of scepticism.\"  The fact that skeptics are not\nskeptical about skepticism is further evidence that to doubt anything we must\nbelieve in something else!  THe person who is skeptical toward one faith or\neven most faiths, will be the devoted adherent of another.  In fact, it is a\nmeasure of his poverty both that he is unaware of it and that he can define\nhimself only in negative terms, hence the term \"a\"-theist.\n\nSome people claim otherwise and argue vociferously for complete skepticism.  In\nmy campus ministry I ran across this more times than I care to remember. \nHowever, they disproved their own argument with every thought, every word,\nevery point of logic that they used.  Every moment of shared communication\nspeaks against their total skepticism.  Their very insistence of trying to make\nsense is eloquent testimony to assumptions that are powerful though silent.\n\nThat is to say, that complete skepticism is impossible and limited skepticism\nis arbitrary.  Next time you're in a room of skeptics, yell out \"Look, your fly\nis undone!\"  Each person chooses what he is skeptical about and what he\nbelieves without skepticism.  To stress this is to belabor the obvious, but it\nunderlines the point that no one can know exhaustively how he knows what he\nknows.  Pure objectivism is a myth and complete skepticism an impossiblity. \nThe answer to this impasse lies in  a 3rd way of knowing, one which is based on\npresuppositions.  But if knowledge proceeds on what must be presupposed before\nit is proved, the cover is blown on the pretentions of critical doubt, and\ncritical doubt depends on the idea that human knowledge is totally objective\nand neutral.  In other words, another myth.  \n\nPresuppositions my friend.  It is impossible to doubt anything unless there is\nsomething we do not doubt -our own assumptions/presuppostions.  Even these can\nbe criticezed only upon the basis of other assumptions.  Presuppostitons are\nour silent partners in thought but their silence must not be mistaken for\nabsence.\n\n>  I tell you what-- if God condemns me for being honest, He is\n>    unworthy of my worship.  Better to burn in Hell than to\n>     serve a tyrant in Heaven..\n\nOf course that is hardly an original statement.  Milton coined it but it had\nbeen in use for millenia.  It was even used in the first \"Highlander\" movie. \nBut again, your presuption is based on a faulty knowledge of the character of\nGod.  You are operating off of a presuppositional premise of humanistic\ntheology, not what He has revealed of Himself through history, through His\nprophets, through His Word, and lastly, but most of all, thru His Son.  If you\nare to reject God's annointed savior, then reject Him from a correct\nunderstanding of Himself.\n\n--Rex\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8293, "properties": {"category": "comp.sys.mac.hardware", "text": "From: generous@nova.sti.nasa.gov (Curtis Generous)\nSubject: Apple Tape backup 40SC under System 7.x\nKeywords: backup, tape,\nOrganization: NASA STI\nLines: 12\n\n\nI need to get an Apple 40SC tape backup unit working under\nSys 7.0.x, but do not have any drivers/software to access\nthe device.  Does anyone know where I can fidn the tools\nto access this device?\n\nAppreciate any info/comments.\n\n--curtis\n-- \nCurtis C. Generous\tgenerous@sti.nasa.gov\t\t(703) 685-1140\nNASA STI, Code JTT, Washington, DC 20546\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.394+0000", "event": "documents", "entityId": 8294, "properties": {"category": "rec.sport.baseball", "text": "From: ez027993@dale.ucdavis.edu (Gary Built Like Villanueva Huckabay)\nSubject: Alomar vs. Baerga - I was hoping to stay out of this.\nOrganization: Julio Lundy Candlelight Vigil Society\nDistribution: na\nLines: 37\n\n(Lyford \"Frosty\" Beverage) writes:\n|> Uh, yes.  Baerga has a lot of flash, but Alomar was the better hitter\n|> last year.\n|> \n|> BATTERS      BA   SLG   OBP   G  AB   R   H  TB 2B 3B HR RBI  BB  SO SB CS  E\n|> BAERGA,C   .312  .455  .354 161 657  92 205 299 32  1 20 105  35  76 10  2 19\n|> ALOMAR,R   .310  .427  .405 152 571 105 177 244 27  8  8  76  87  52 49  9  5\n|> \n\n>This is fascinating.  You say that Alomar was the better hitter last \n>year, and immediately follow that up with numbers showing that Baerga\n>had a better year.  The only category that I see which shows an advantage\n>for Alomar is OBP.\n\nWell, OBP is the most important offensive statistic, and by a big margin.\n50 points of OBP is worth considerably more than 50 points of slugging.\nThat being said, I still think Baerga was VERY SLIGHTLY better last year,\nbut I think this is as close to a wash as you're likely to find.\n\nI personally don't care much for Alomar's defense.  I don't think he's\nnearly as good as people make him out to be, and he can't turn the DP\nto save his life.  He comes across the bag improperly, and his release\nis slow.  Considering the high leverage of the DP, this is a shortcoming\nI can't overlook.  In the long term, I'd move Alomar to another position.\n\nIf the Jays could trade a hot Devon White for something, I'll be Alomar\ncould be a hell of a CF.  In the long run, I think I'd rather have Jeff\nKent at 2B and Alomar in CF than Alomar/White.\n\n\n\n\n-- \n*   Gary Huckabay   * \"You think that's loud enough, a$$hole?\"           *\n*   \"Movie Rights   * \"Well, if you're having trouble hearing it, sir,   *\n*   available thru  *  I'd be happy to turn it up for you.  I didn't     *\n*     Ted Frank.\"   *  know that many people your age liked King's X.\"   *\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8295, "properties": {"category": "rec.motorcycles", "text": "From: montasmm@ntmtv.com (Medi Montaseri)\nSubject: Saddle bags and helmets for sale...\nOriginator: montasmm@nmtvs299\nNntp-Posting-Host: nmtvs299\nReply-To: montasmm@ntmtv.com (Medi Montaseri)\nOrganization: Northern Telecom Inc, Mountain View, CA\nDistribution: ba\nLines: 28\n\nI'm selling the following items...\n\n\t- a pair of hard saddle bags \n\t- easy installation \n\t- snap release feature with lock\n\t- black \n\t- brand is Krusures\n\n\t- two oshi full face helmets\n\n\ttake all for $275\n\nThese are comming off of my bike that I'm selling, maybe \nyou could use the whole thing, bike and accessories.\n\n\t1983 Yamaha, vision 550 \n\n\tcall Medi @ work (415) 940-2306\n\t\t    home (408) 744-1169\n\nThanks\n\n\n-- \n+-------------------------------------------------------+\n| Medi Montaseri\tmontasmm@ntmtv.com \t\t|\n| \t\t\t...{ames.mcdcup}!ntmtv!montasmm\t|\n+-------------------------------------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8296, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: Islam & Dress Code for women\nOrganization: Monash University, Melb., Australia.\nLines: 120\n\nIn <16BA7103C3.I3150101@dbstu1.rz.tu-bs.de> I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n\n>In article <1993Apr5.091258.11830@monu6.cc.monash.edu.au>\n>darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n> \n>(Deletion)\n>>>>Of course people say what they think to be the religion, and that this\n>>>>is not exactly the same coming from different people within the\n>>>>religion.  There is nothing with there existing different perspectives\n>>>>within the religion -- perhaps one can say that they tend to converge on\n>>>>the truth.\n>>\n>>>My point is that they are doing a lot of harm on the way in the meantime.\n>>>\n>>>And that they converge is counterfactual, religions appear to split and\n>>>diverge. Even when there might be a 'True Religion' at the core, the layers\n>>>above determine what happens in practise, and they are quite inhumane\n>>>usually.\n>>>\n> \n>What you post then is supposed to be an answer, but I don't see what is has\n>got to do with what I say.\n> \n>I will repeat it. Religions as are harm people. And religions don't\n>converge, they split. Giving more to disagree upon. And there is a lot\n>of disagreement to whom one should be tolerant or if one should be\n>tolerant at all.\n\nIdeologies also split, giving more to disagree upon, and may also lead\nto intolerance.  So do you also oppose all ideologies?\n\nI don't think your argument is an argument against religion at all, but\njust points out the weaknesses of human nature.\n\n>(Big deletion)\n>>(2) Do women have souls in Islam?\n>>\n>>People have said here that some Muslims say that women do not have\n>>souls.  I must admit I have never heard of such a view being held by\n>>Muslims of any era.  I have heard of some Christians of some eras\n>>holding this viewpoint, but not Muslims.  Are you sure you might not be\n>>confusing Christian history with Islamic history?\n> \n>Yes, it is supposed to have been a predominant view in the Turkish\n>Caliphate.\n\nI would like a reference if you have got one, for this is news to me.\n\n>>Anyhow, that women are the spiritual equals of men can be clearly shown\n>>from many verses of the Qur'an.  For example, the Qur'an says:\n>>\n>>\"For Muslim men and women, --\n>>for believing men and women,\n>>for devout men and women,\n>>for true men and women,\n>>for men and women who are patient and constant,\n>>for men and women who humble themselves,\n>>for men and women who give in charity,\n>>for men and women who fast (and deny themselves),\n>>for men and women who guard their chastity,\n>>and for men and women who engage much in God's praise --\n>>For them has God prepared forgiveness and a great reward.\"\n>>\n>>[Qur'an 33:35, Abdullah Yusuf Ali's translation]\n>>\n>>There are other quotes too, but I think the above quote shows that men\n>>and women are spiritual equals (and thus, that women have souls just as\n>>men do) very clearly.\n>>\n> \n>No, it does not. It implies that they have souls, but it does not say they\n>have souls. And it is not given that the quote above is given a high\n>priority in all interpretations.\n\nOne must approach the Qur'an with intelligence.  Any thinking approach\nto the Qur'an cannot but interpret the above verse and others like it\nthat women and men are spiritual equals.\n\nI think that the above verse does clearly imply that women have\nsouls.  Does it make any sense for something without a soul to be\nforgiven?  Or to have a great reward (understood to be in the\nafter-life)?  I think the usual answer would be no -- in which case, the\npart saying \"For them has God prepared forgiveness and a great reward\"\nsays they have souls.  \n\n(If it makes sense to say that things without souls can be forgiven, then \nI have no idea _what_ a soul is.)\n\nAs for your saying that the quote above may not be given a high priority\nin all interpretations, any thinking approach to the Qur'an has to give\nall verses of the Qur'an equal priority.  That is because, according to\nMuslim belief, the _whole_ Qur'an is the revelation of God -- in fact,\ndenying the truth of any part of the Qur'an is sufficient to be\nconsidered a disbeliever in Islam.\n\n>Quite similar to you other post, even when the Quran does not encourage\n>slavery, it is not justified to say that iit forbids or puts an end to\n>slavery. It is a non sequitur.\n\nLook, any approach to the Qur'an must be done with intelligence and\nthought.  It is in this fashion that one can try to understand the\nQuran's message.  In a book of finite length, it cannot explicitly\nanswer every question you want to put to it, but through its teachings\nit can guide you.  I think, however, that women are the spiritual equals\nof men is clearly and unambiguously implied in the above verse, and that\nsince women can clearly be \"forgiven\" and \"rewarded\" they _must_ have\nsouls (from the above verse).\n\nLet's try to understand what the Qur'an is trying to teach, rather than\ntry to see how many ways it can be misinterpreted by ignoring this\npassage or that passage.  The misinterpretations of the Qur'an based on\nignoring this verse or that verse are infinite, but the interpretations \nfully consistent are more limited.  Let's try to discuss these\ninterpretations consistent with the text rather than how people can\nignore this bit or that bit, for that is just showing how people can try\nto twist Islam for their own ends -- something I do not deny -- but\nprovides no reflection on the true teachings of Islam whatsoever.\n\n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8297, "properties": {"category": "rec.motorcycles", "text": "From: lisa@alex.com (Lisa Rowlands)\nReturn-Path: <news>\nSubject: Paint jobs in the UK\nNntp-Posting-Host: baldrick\nOrganization: Alex Technologies Ltd, London, England\nLines: 11\n\nCan anyone recommend a good place for reasonably priced bike paint jobs, preferably but not essentially in the London area. \n\nThanks \n\nLisa Rowlands\n-- \nAlex Technologies Ltd\t\tCP House\n\t\t\t\t97-107 Uxbridge Road\nTel: \t+44 (0)81 566 2307\tEaling\nFax: \t+44 (0)81 566 2308\tLONDON\nemail:\tlisa@alex.com\t\tW5 5LT\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8298, "properties": {"category": "talk.politics.guns", "text": "From: earlw@apple.com (Earl Wallace)\nSubject: Re: \"Proper gun control?\" What is proper gun control?\nDistribution: usa\nOrganization: Apple Computer Inc. ESD/OSBU/Cross-Platform Software\nLines: 26\nNNTP-Posting-Host: apple.com\n\nIn article <C5JAtz.5G4@cbnewsc.cb.att.com> rats@cbnewsc.cb.att.com (Morris the Cat) writes:\n>...\n>Let's prohibit arms carrying by police when off-duty. Or, if they make\n>the assertion that \"Well, I need to maintain my gun\" let's make it\n>regulation that they can carry an UNLOADED firearm home, that it's\n>only fair that they be just as helpless as poor schmuck coming home\n>from his computer operator job...\n>\n>NRA Director/ex-San Jose cop Leroy Pyle states in the latest SWAT\n>magazine that anti-cops better watch out for this schism between\n>RKBA folks and the police. He asks the rhetorical question of 'What\n>if what's left of the gun lobby starts demanding the disarmament\n>of the police?\"\n>\n>Well, I guess anti-gun cops who think only they should be armed,\n>along with the wealthy and politically connected, should be made\n>to realize that screwing can cut in ways they have yet to imagine.\n>...\n\nWe all know this will never happen.  Because the Police are under the wings\nof Government, they will always be considered more important than Citizens.\n\nGovernment pens, pencils and paper are considered more important than\nCitizens.\n\nI think we have a problem with our Government.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8299, "properties": {"category": "talk.politics.mideast", "text": "From: arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee)\nSubject: Re: American Jewish Congress Open Letter to Clinton\nOrganization: Johns Hopkins University CS Dept.\nLines: 30\n\nIn article <22APR199300513566@vxcrna.cern.ch> casper@vxcrna.cern.ch (CASPER,DAVI./PPE) writes:\n>>Are you aware that there is an arms embargo on all of what is/was\n>>Yugoslavia, including Bosnia, which guarantees massive military\n>>superiority of Serbian forces and does not allow the Bosnians to\n>>try to defend themselves? \n>Should we sell weapons to all sides, or just the losing one, then?\n\nEnding an embargo does not _we_ must sell anything at all.\n\n>If the Europeans want to sell weapons to one or both sides, they are welcome\n>as far as I'm concerned.\n\nYou seem to oppose ending the embargo.  You know, it is difficult for Europeans\nto sell weapons when there is an embargo in place.\n\n>I do not automatically accept the argument that Bosnia is any worse than\n>other recent civil wars, say Vietnam for instance.  The difference is it is\n>happening to white people inside Europe, with lots of TV coverage.\n\nBut if this was the reason, and if furthermore both sides are equal, wouldn't\nall us racist Americans be favoring the good Christians (Serbs) instead\nof the non-Christians we really seem to favor?\n--\n\"On the first day after Christmas my truelove served to me...  Leftover Turkey!\nOn the second day after Christmas my truelove served to me...  Turkey Casserole\n    that she made from Leftover Turkey.\n[days 3-4 deleted] ...  Flaming Turkey Wings! ...\n   -- Pizza Hut commercial (and M*tlu/A*gic bait)\n\nKen Arromdee (arromdee@jyusenkyou.cs.jhu.edu)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8300, "properties": {"category": "rec.motorcycles", "text": "From: essbaum@rchland.vnet.ibm.com (Alexander Essbaum)\nSubject: Re: ++BIKE SOLD OVER NET 600 MILES AWAY!++\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: relva.rchland.ibm.com\nOrganization: IBM Rochester\nLines: 14\n\nIn article <6130331@hplsla.hp.com>, kens@hplsla.hp.com (Ken Snyder) writes:\n|> \n|> > Any other bikes sold long distances out there...I'd love to hear about\n|> it!\n|> \n|> I bought my VFR750 from a guy in San Jose via the net.  That's 825 miles\n|> according to my odometer!\n|> \n\nmark andy (living in pittsburgh) bought his RZ350 from a dude in\nmassachusetts (or was it connecticut?).\n\naxel\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8301, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bing@zinc.cchem.berkeley.edu (Bing Ho)\nSubject: Know anything about EISA-2?\nOrganization: UC Berkeley\nLines: 11\nDistribution: world\nNNTP-Posting-Host: zinc.cchem.berkeley.edu\n\nI read about the development of EISA-2 some time ago but dismissed it\nin light of the intense interest in VESA and PCI.  However, I recently\nwas disheartened to hear that ISA cannot address more than 16mb of RAM,\na limit that too many of us will hit all too soon.\n\nI recall that EISA-2 will support 64-bit transfer among other enhancements.\nIs there such a standard being developed?\n\n-- \nBing Ho\nbing@zinc.cchem.berkeley.edu   University of California at Berkeley   \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8302, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: al885@cleveland.Freenet.Edu (Gerard Pinzone)\nSubject: Mitsumi CD ROM drivers fix for QEMM\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 14\nReply-To: al885@cleveland.Freenet.Edu (Gerard Pinzone)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nJust to let all you faithful Mitsumi CD Rom owners....\n\nEver notice QEMM can't load you CD Rom driver high?  Ain't it a bitch?\n\nWell, you can call up Quarterdeck's BBS and get a hold of the new drivers\nthat CAN be loaded high.  Sorry , I don't have their # on me. :-(\n\nI tested them out and the seem to work great!\n-- \n   _______   ________   ________   \"Small nose, loose girls, no nipples, (.|.)\n  /   ___/  /  _____/  /  __   /   Iczer curls!\"  -=-  Gerard Pinzone     ).(\n /   ___/  /  /____   /  __   /           gpinzone@tasha.poly.edu        ( v )\n/______/  /_______/  /__/ /__/       Join the ECA Wehrmacht! Kill CM!     \\|/\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8303, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: sgi\nLines: 23\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1qkq9t$66n@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n|> \n|> I'll take a wild guess and say Freedom is objectively valuable.  I base\n|> this on the assumption that if everyone in the world were deprived utterly\n|> of their freedom (so that their every act was contrary to their volition),\n|> almost all would want to complain.  Therefore I take it that to assert or\n|> believe that \"Freedom is not very valuable\", when almost everyone can see\n|> that it is, is every bit as absurd as to assert \"it is not raining\" on\n|> a rainy day.  I take this to be a candidate for an objective value, and it\n|> it is a necessary condition for objective morality that objective values\n|> such as this exist.\n\nMy own personal and highly subjective opinion is that freedom\nis a good thing.\n\nHowever, when I here people assert that the only \"true\" freedom\nis in following the words of this and that Messiah, I realise\nthat people don't even agree on the meaning of the word.\n\nWhat does it mean to say that word X represents an objective\nvalue when word X has no objective meaning?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8304, "properties": {"category": "sci.med", "text": "From: karl@anasazi.com (Karl Dussik)\nSubject: Re: Dana-Faber Cancer Institute \nOrganization: Anasazi, Inc.  Phoenix, Arizona USA\nKeywords: Dana-Faber Cancer Institute \nLines: 13\n\nIn article <1993Apr14.090306.3352@etek.chalmers.se> e2salim@etek.chalmers.se (Salim Chagan) writes:\n>\tCan anyone send me the adress to \n>\tDana-Faber Cancer Institute in Boston, USA.\n              ^^ missing \"r\"\n\nDana-Farber Cancer Institute\n44 Binney Street\nBoston, MA  02115\n\n(617)732-3000\n\nKarl Dussik\n(\"Alumnus\" - Department of Biostatistics and Epidemiology, 1983-1986)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8305, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: robertsa@unix2.tcd.ie (Andrew L. Roberts)\nSubject: What does the .bmp format mean?\nNntp-Posting-Host: unix2.tcd.ie\nOrganization: Trinity College, Dublin\nLines: 7\n\nWhat exactly does the windows bitmap format look like? I mean, how is\nthe data stored: width, height, no. of colours, bitmap data? I couldn't\nfind anything in ths user manual, is there any other reference material\nwhich would give me this information?\n\nThanks,\nAndrew\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8306, "properties": {"category": "rec.sport.hockey", "text": "From: ayim@leibniz.uwaterloo.ca (Alfred Yim)\nSubject: And... THEY'RE OFF!!!!!\nKeywords: Leafs Chicago\nOrganization: University of Waterloo\nLines: 39\n\nWell, I gotta tell ya,\n\nlast night's Leafs game vs the Devils was a nail-bitter LET ME TELL YOU!\nIt was a well played game by BOTH teams (I thought) but according to the\nDon and Ron it was the an \"off-night\" for the Leafs and the Devils \nwere outplaying Toronto. Well, I BEG to differ....\n\nIMHO, Clark deserved to be a first star as much as Gilmour did. His\nfast breaks towards the net and the good opportunites that he\ncreated reminded me of the Clark of old. (But not to take any of the\ncredit away from Gilmour).\n\nI think the Leafs are playing GREAT hockey. WHY? \nWell first look at their injury list which includes, Cullen, Ellet,\nZezel, Macoun. Of course my question is this....how will the Leafs\nfare when they are once again \"healthy\" if they are playing this well\nso far??\n\nSecond, just look at their standings, still second in defence,\nmoved from 11th overall to 6th over in the last month, haven't lost\nat home in last 12 games, 8 game undefeated streak..etc.\n(BTW, am I wrong or was this Potvin's first shut-out? I can't \nremember him having any as of yet.)\n\nWell, as of April 3 we see that the race for first in the Norris\nhas truly begun and it will be a VERY CLOSE race between Chicago and\nToronto. And the best game of the season will probably be their last\nagainst each other. (is anyone lucky enough to have tickets to\nsee this one?)\n\nComing to the stretch and still a ROAR'IN!!!!!\nGo LEAFS Go!!!!\n-- \n****************************************** \n*  Alfred (Yong-Jeh) Yim                 *   Toronto wins the  \n*  4B Mathematics (Actuarial Science)    *     (   ?    )    CUP.\n*  University of Waterloo, Canada.       *  i like \"coca-cola\" idea personally\n*  E-mail: ayim@descartes.waterloo.edu   *  \n*****************************************************************************\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8307, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: Commercial mining activities on the moon\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 27\n\nIn article <STEINLY.93Apr21152344@topaz.ucsc.edu> steinly@topaz.ucsc.edu (Steinn Sigurdsson) writes:\n\n>Seriously though. If you were to ask the British government\n>whether their colonisation efforts in the Americas were cost\n>effective, what answer do you think you'd get? What if you asked\n>in 1765, 1815, 1865, 1915 and 1945 respectively? ;-)\n\nWhat do you mean? Are you saying they thought the effort was\nprofitable or that the money was efficiently spent (providing max\nvalue per money spent)?\n\nI think they would answer yes on ballance to both questions. Exceptions\nwould be places like the US from the French Indian War to the end of\nthe US Revolution. \n\nBut even after the colonies revolted or where given independance the\nBritish engaged in very lucrative trading with the former colonies.\nFive years after the American Revolution England was still the largest\nUS trading partner.\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------55 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8308, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Iowa State University, Ames IA\nLines: 44\n\nIn <C5rynw.Iz8@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n\n>And I suppose the FBI also prevented them from coming out with their \n>hands up while national tv cameras watch.\n\n\tWould *you* have come out if you knew the only national TV\ncameras were well over a mile away, and yet the agents with the guns\nwere only a few yards away?  They had contact with a lawyer, so I\nam inclined to believe they had an idea of what their situation\nactually was.  This also leads to the conspiracy theory that the\nlawyer had the BATF pinned on rights violations if the BD's\nacted as witnesses, hence the arson.  I doubt that one too, but\nit is still quite clear that leaving a safe place to surrender is\na rather stupid thing to do until that place is no longer safe.\n\n>Do you disbelieve everything the FBI says?\n\n\tAs a matter of course, given how they've allowed no other\nviews to be heard.  I'll reserve judgement until the trial, but so\nfar as the FBI is concerned their statements carry the same amount\nof weight as photons at rest.\n\n>The BATF is by no means devoid of fault in the handling of this affair.\n>But to suggest that they may have intentionally started the fire is \n>ludicrous.\n\n\tLudicrous, yes.  Possible, yes.  Plausible?  Get the jury.\n\n>If the fire were set by accident or by people outside the compound, I would \n>have expected far more cult members to flee the compound.  Or at least come \n>out shooting.\n\n\tThat's what gets me too.  It is likely the cult members were\nholed up in an enforced place inside the building.  With a decent arson\nattempt I suspect many of them could have been trapped.  In addition,\nthe introduction of CS gas for several hours would have rendered many\nof them immobile if not unconscious when their masks quit.  All the props\nare there, but proving what scene was played is difficult.  The only\ncertainty is that the FBI and BATF have few witnesses against them.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8309, "properties": {"category": "comp.graphics", "text": "From: e-sink@uiuc.edu (Eric W. Sink)\nSubject: Re: Looking for WMF Converter\nKeywords: WMF, windowsmetafile\nReply-To: e-sink@uiuc.edu\nOriginator: sink@ux2.cso.uiuc.edu\nOrganization: University of Illinois at Urbana\nLines: 19\n\nbuck@HQ.Ileaf.COM (David Buchholz x3252) writes:\n\n>I'm looking for any leads to the source of a good Windows\n>Meta File converter or interpreter. I need this for use\n>outside the Windows environment. PD sources preferred, but\n>not a requirement. Please reply to the address below.\n\nOn a related topic, I have been searching (with no success)\nfor a specification of the Enhanced Metafile format.  I have\nthe original WMF format (Graphics File Formats, Levine et al),\nbut no info on the 32 bit version.\n\nAny pointers ?\n\n-- \nEric W. Sink, Spyglass        | \"In all the earth, only humans have the ability\n1800 Woodfield Drive          |    to be content in bad situations...\nSavoy, IL  61826              |    and vice-versa.\"\n---- e-sink@uiuc.edu ---------|---------- 217-355-6000 -----------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8310, "properties": {"category": "misc.forsale", "text": "From: easwarakv@woods.ulowell.edu\nSubject: CD'S FOR SALE\nLines: 22\nOrganization: University of Lowell\n\n Th following cd's are for sale. Each cd cost 10$ except otherwise indicated\n which includes shipping and handling.\n\n\nAchtung baby\t\t\t\tU2 *\nJoshua tree\t\t\t\tU2 **\nThe immaculate collection              Madonna **  $12\nLove hurts                              Cher *\nGarth brooks                           Garth brooks *\nRed hot ..chilli peppers..               **\nOOOOOHHHHH\t\t\t\tTLC **\nLight and shadows\t\t\twilson **\n\n\n\n* Used only once.\n** never used, most of them are still in shrink wraps\n\nPlease email to\n\nkGC @ woods.ulowell.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8311, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: sinn@carson.u.washington.edu (Philip Sinn)\nSubject: Need Info of Maxtor 340SY SCSI jumper ID setting.\nSummary: Jumper ID of Maxtor 340SY harddrive\nKeywords: harddisk, Maxtor\nArticle-I.D.: shelley.1qusbtINNd9c\nDistribution: na\nOrganization: University of Washington, Seattle\nLines: 7\nNNTP-Posting-Host: carson.u.washington.edu\n\nI got a harddisk shipped with an IDE specification but not the\nSCSI spec. Would someone tell me how to set the jumper on\nthe harddrive? Thanks.  Please email response.\n\nPhilip Sinn\nsinn@carson.u.washington.edu\nUniversity of Washington\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8312, "properties": {"category": "talk.politics.guns", "text": "From: chuck@eng.umd.edu (Chuck Harris - WA3UQV)\nSubject: Re: CNN for sale\nOrganization: University of Maryland, Department of Electrical Engineering\nLines: 11\nDistribution: usa\nNNTP-Posting-Host: bree.eng.umd.edu\n\nIn article <C5soMx.HMD@boi.hp.com> kde@boi.hp.com (Keith Emmen) writes:\n>If anyone is keeping a list of the potential contributors, \n>you can put me down for $1000.00 under the conditions above\n\nSeems to me folks, that if you are so interested in acquiring CNN, just\nbuy your $1000 worth of stock today.  It's being traded everyday.  After you\nown your piece, we can work on the proxy votes later.  It's probably even a\ngood investment.\n\nChuck Harris - WA3UQV\nchuck@eng.umd.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8313, "properties": {"category": "sci.crypt", "text": "From: arussell@austin.ibm.com (AG Russell)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOriginator: arussell@pal500.austin.ibm.com\nOrganization: IBM Austin\nLines: 29\n\n\nIn article <1993Apr21.001230.26384@lokkur.dexter.mi.us>, scs@lokkur.dexter.mi.us (Steve Simmons) writes:\n> smb@research.att.com (Steven Bellovin) writes:\n> \n> >Thousands?  Tens of thousands?  Do some arithmetic, please...  Skipjack\n> >has 2^80 possible keys.  Let's assume a brute-force engine like that\n> >hypothesized for DES:  1 microsecond per trial, 1 million chips.  That's\n> >10^12 trials per second, or about 38,000 years for 2^80 trials.  Well,\n> >maybe they can get chips running at one trial per nanosecond, and build\n> >a machine with 10 million chips.  Sure -- only 3.8 years for each solution.\n> \n> Normally I'd be the last to argue with Steve . . . but shouldn't that\n> read \"3.8 years for *all* solutions\".  I mean, if we can imagine the\n> machine that does 1 trial/nanosecond, we can imagine the storage medium\n> that could index and archive it.\n\nAt the company I worked for previously, I received a file that was des encryped\nand the person that had sent it, went on vaction.  Rather than wait two weeks\nI set up a straight frontal attack with one key at a time.  It only took two(2)\ndays to crack the file.  No, I don't have any faith in DES.\n\nA.G.\n\n\n\n-- \nA.G. Russell   Dept A06S  OLTP section of PALS Group   VM ID  SC39093 at AUSVM1\nEmail  arussell@austin.ibm.com       Phone 512-838-7953        TieLine 678-7953\nThese are my views, on anyone else they would look silly. FREE THE BERKELEY 4.4\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8314, "properties": {"category": "soc.religion.christian", "text": "From: mprc@troi.cc.rochester.edu (M. Price)\nSubject: Re: phone number of wycliffe translators UK\nOrganization: University of Rochester - Rochester, New York\nLines: 38\n\nIn <Apr.20.03.02.03.1993.3788@geneva.rutgers.edu> mserv@mozart.cc.iup.edu (Mail Server) writes:\n[\">\"= Mark, \">>\"= mp]\n\n>>  I'm concerned about a recent posting about WBT/SIL.  I thought they'd\n>>pretty much been denounced as a right-wing organization involved in\n>>ideological manipulation and cultural interference\n\n>Good heavens, you mean my good friend Wes Collins, who took his wife and two \n>small children into the jungles of Guatemala, despite dangers from primitive \n>conditions and armed guerillas, so that the indigenous people groups their \n>could have the Bible in their native languages--the young man who led Bible \n>studies in our church, who daily demonstrated and declared his deep abiding \n>faith in the Lord of Love--you mean he really was a sneaky imperialistic *SPY*\n\n    I am sorry you find these charges amusing, Mark. I understand your\nfrustration though--it can be kind of scary to find your assumptions\nchallenged. Some of the specific cultural interference to which I refer\nincludes linguistic manipulation, for instance, their Tzotzil-Spanish\ndictionary removed both Spanish and Tzotzil words for concepts which are\nthreatening to the ruling ideology, e.g., class, conquer, exploitation,\nrepression, revolution, and described words which can express\nideological concepts in examples like \"Boss--the boss is good. He treats\nus well and pays us a good wage.\" As some of my students would say,\n\"NOT!\"  \n     Your tone implies that you are unlikely to believe me--indeed, why\nshould you? If you are interested enough to do some further research\nthough, and you sound as if you are, here are some references for you.\n \nStoll, David. _Fishers of Men or Founders of Empire? The Wycliffe Bible\nTranslators in Latin America_.\n_Sectas y Religiosidad en America Latina_.\n_Los Angeles Times_, Dec. 11. 1977.\n_Latin America Press_, May 19, 1983.\n_Washington Times_, June 22, 1984.\n\n     Happy hunting.\n\n                                                                   mp\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8315, "properties": {"category": "rec.autos", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Re: saturn -- puzzled by its pricing\nDistribution: na\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 37\n\nIn article <1993Mar31.181813.24122@magnus.acs.ohio-state.edu> jnielsen@magnus.acs.ohio-state.edu (John F Nielsen) writes:\n>In article <1pcgv5$oj9@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>>jnielsen@magnus.acs.ohio-state.edu (John F Nielsen) writes:\n>>>Because I want to get the lowest price possible, it's called capitalism.\n>>\n>>I have news for you -- capitalism is the practice of maximizing\n>>profits.\n>\n>Same difference, if you lower your costs you increase your profits.\n>\n>>Personally I'm not at all bothered by the Saturn pricing scheme.  If I\n>>don't want to pay as much as they're selling it for, I can go buy a\n>>different car from a different dealer and they get nothing.  That's\n>>competition for you.  If the dealer can be competitive charging what\n>>they do and making that kind of profit, that's capitalism at it's best\n>>and more power to 'em.\n>>\n>\n>I'd rather have the consumer dictate what things will cost not the\n>dealers.\n\nSorry, but *neither* 'dictates' the cost. It's a negotiation.\nWhether it's up front at a honda dealership in an all out \ndickering war, or more removed on a larger economic scale\n(ie, if saturn can't sell at it's price, the price drops,\nor the company stops building them), it remains a negotiated\nvalue controlled by market forces. To think that the consumer \ncontrols price is ludicrous. If the consumer controled\nprice, then cars would be *free*...And no one would build \ncars.\n\nRegards, Charles\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8316, "properties": {"category": "sci.space", "text": "From: Amruth Laxman <al26+@andrew.cmu.edu>\nSubject: Surviving Large Accelerations?\nOrganization: Junior, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 16\nNNTP-Posting-Host: po5.andrew.cmu.edu\n\nHi,\n    I was reading through \"The Spaceflight Handbook\" and somewhere in\nthere the author discusses solar sails and the forces acting on them\nwhen and if they try to gain an initial acceleration by passing close to\nthe sun in a hyperbolic orbit. The magnitude of such accelerations he\nestimated to be on the order of 700g. He also says that this is may not\nbe a big problem for manned craft because humans (and this was published\nin 1986) have already withstood accelerations of 45g. All this is very\nlong-winded but here's my question finally - Are 45g accelerations in\nfact humanly tolerable? - with the aid of any mechanical devices of\ncourse. If these are possible, what is used to absorb the acceleration?\nCan this be extended to larger accelerations?\n\nThanks is advance...\n-Amruth Laxman\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8317, "properties": {"category": "sci.space", "text": "From: kpa@rchland.vnet.ibm.com (Karl Anderson)\nSubject: Re: A WRENCH in the works?\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: oslo.rchland.ibm.com\nOrganization: IBM Rochester\nLines: 42\n\nFrom another space forum\n>  NOW WHERE DID I LEAVE THOSE PLIERS?\n    When workers at the Kennedy Space Center disassembled the STS-56\n solid rocket boosters they were surprised to find a pair of pliers\n lodged into the outside base of the right hand SRB.  The tool survived\n the trip from the launch pad up to approximately a 250,000 foot\n altitude, then down to splashdown and towing back to KSC.\n\n    NASA spokesperson Lisa Malone told the media,\n\n    \"It's been a long time since something like this happened.  We've\n lost washers and bolts (before) but never a tool like this.\"\n\n    The initial investigation into the incident has shown that a\n Thiokol Corp. technician noticed and reported his pliers as missing on\n April 2nd.  Unfortunately, the worker's supervisor did not act on the\n report and Discovery was launched with its \"extra payload\".  NASA\n officials were never told of the missing tool before the April 8th\n launch date.\n\n    The free-flying pliers were supposed to be tethered to the SRB\n technician.  When the tool was found in an aft section of the booster,\n its 18-inch long rope was still attached.  The pliers were found in a\n part of the booster which is not easily visible from the launch pad.\n|(Ron's ed. note:  naaahhh,  just too easy)\n\n    A spokesperson for the Lockheed Space Operations Company said that\n the Shuttle processor will take \"appropriate action\".  Thiokol is a\n subcontractor to LSOC for work to prepare Shuttle hardware for launch.\n\n_________________________________________________________\n\nKarl Anderson\t\nDEV/2000: Configuration Management/Version Control\n\nDept 53K/006-2\t\tRochester, Minnesota 55901\n253-8044\t\tTie 8-453-8044\nINTERNET: karl@vnet.ibm.com\nPRODIGY: CMMG96A\n\n\"To seek, to strive, to find, and not to yield.\"\n\t\t\tAlfred Lord Tennyson\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.395+0000", "event": "documents", "entityId": 8318, "properties": {"category": "sci.electronics", "text": "From: kolstad@cae.wisc.edu (Joel Kolstad)\nSubject: Radio Shack voice recognition chips\nOrganization: U of Wisconsin-Madison College of Engineering\nDistribution: usa\nLines: 10\n\nHi there,\n\nI have a friend who'd like to get a hold of a bunch of those simple voice\nrecognition chips that Radio Shack used to sell (and no longer does).  If\nanybody knows of a source for these, please e-mail me.  I'll forward the\nresponses to him.\n\nThanks!\n\n\t\t\t\t\t---Joel Kolstad\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8319, "properties": {"category": "sci.space", "text": "From: gwh@soda.berkeley.edu (George William Herbert)\nSubject: Re: Moonbase race\nOrganization: Retro Aerospace\nLines: 14\nNNTP-Posting-Host: soda.berkeley.edu\nSummary: Hmm...\n\nHmm.  $1 billion, lesse... I can probably launch 100 tons to LEO at\n$200 million, in five years, which gives about 20 tons to the lunar\nsurface one-way.  Say five tons of that is a return vehicle and its\nfuel, a bigger Mercury or something (might get that as low as two\ntons), leaving fifteen tons for a one-man habitat and a year's supplies?\nGee, with that sort of mass margins I can build the systems off\nthe shelf for about another hundred million tops.  That leaves\nabout $700 million profit.  I like this idea 8-)  Let's see\nif you guys can push someone to make it happen 8-) 8-)\n\n[slightly seriously]\n\n-george william herbert\nRetro Aerospace\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8320, "properties": {"category": "talk.politics.guns", "text": "From: crphilli@hound.dazixca.ingr.com (Ron Phillips)\nSubject: Armed Citizen - April '93\nNntp-Posting-Host: hound\nReply-To: crphilli@hound.dazixca.ingr.com\nOrganization: \"Intergraph Electronics, Mountain View, CA\"\nDistribution: usa\nLines: 150\n\n\nTHE ARMED CITIZEN\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nMere presence of a firearm, without a shot being fired, prevents\ncrime in many instances, as shown by news reports sent to The\nArmed Citizen.  Shooting usually can be justified only where\ncrime constitutes an immediate, imminent threat to life or limb\nor, in some circumstances, property.  The accounts below are from\nclippings sent in by NRA members.  Anyone is free to quote or\nreproduce them.\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   Retired Las Vegas deputy police chief Larry Bolden initially\ntried to defend himself with a steering wheel bar lock when a\ncriminal attacked him in his car.  But then the intruder wrestled\nit from him, Bolden pulled his pistol and fired several times,\nwounding his attacker and stopping the incident.  \"He was just a\ncitizen defending himself,\" a police official said.\n\t(The Review-Journal, Las Vegas, Nev., 11/11/92)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   A pair of teenaged robbers armed with a sawed-off shotgun and\nhandguns took the day's receipts from Brooklyn bodega owner Hector\nMartinez.  As they made their getaway, Martinez grabbed his\nregistered 12-gauge shotgun and gave chase.  When one fired,\nMartinez returned three blasts, slightly wounding his assailants.\nThey fled but were apprehended when they sought medical attention.\n\t(Newsday, Long Island, N.Y., 01/05/93)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   A sign posted on the door of Roman Paras' shop reads \"The \nowners of this property are armed and highly skilled to protect\nlife, liberty and property from criminal attack.\"  Apparently, a\npair of robbers didn't pause to read it as they threatened Paras'\nwife in their Oxnard, Calif., convenience store.  Hearing her\nscream, Paras grabbed his .38, ran to the front of the store and\nshot it out with the masked and armed men, killing one criminal.\n\t(The Times, Los Angeles, Calif., 12/04/92)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   Anne Marie Sullivan was showering in her Portland, Oreg., home\none morning when she heard the front door crash in.  She jumped\nout of the shower in time to see a man entering the home.  Running\nto the bedroom, Sullivan retrieved her boyfriend's pistol and\nfired two shots, mortally wounding the intruder.  The dead man had\na lengthy police and prison record.\n\t(The Oregonian, Portland, Oreg., 01/07/93)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   Mike Baranelli would have let two robbers who burst into a\nBirmingham, Ala., barber shop keep his money.  But the 75-year-old\nretired teacher was unwilling to surrender his life.  When the\nintruders ordered Baranelli, the shop owner, and another man to \nlie on the floor, Baranelli pulled his pistol and shot both men in \nthe head, killing one.  \"I felt sure there was going to be three \ndead people in there.  I think I had some divine help,\" Baranelli \nsaid.\n\t(The Sunday Advertiser, Montgomery, Ala., 01/03/93)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   Believing an elderly Harvey, Ill., couple would again be easy\nprey, a knife-wielding home invader instead met death when the\n76-year-old homeowner loosed three rounds from a semi-automatic\npistol.  Police said the dead man had been charged several times\nfor thefts from the couple's home.\n\t(The Star, Chicago Heights, Ill., 01/07/93)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   The criminal's profile was scheduled to appear on \"America's\nMost Wanted,\" but his shot at fame was abruptly canceled by a\nHallandale, Fla., service station clerk.  The Michigan prison\nescapee walked into the station and announced a robbery.  Instead\nof cash, he got bullets in the head and chest from station clerk\nGary McVey.  Police said McVey acted in self-defense and would not\nface charges.\n\t(The Sun-Sentinel, Ft. Lauderdale, Fla., 12/04/92)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   A Bridgeport, Conn., oil delivery man handed over the few\ndollars he had.  But the thug, apparently unsatisfied with his\ntake, turned his gun on his victim and demanded more money.  \nInstead of more cash, the deliveryman instead pulled his own\npistol and fired, mortally wounding the robber.  Police said the\ndead man had held up a nearby market just before the fatal\nincident.\n\t(The Courant, Hartford, Conn., 01/13/93)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   After repeated burglaries at her San Marcos, Calif., home, Joan\nVessel, 64, was ready with a .38 and a cordless phone when she\nheard glass breaking one afternoon.  When she found two teenagers\nattempting to get into her woodshed, Vessel fired a warning shot\nover their heads, marched them into the front yard and called\npolice.\n\t(The Times Advocate, Escondido, Calif., 12/25/92)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   Angry that his auto insurance had been canceled, a client used\nbrass knuckles to take it out on Brandon, Fla., agent Steven\nTaylor.  When his assailant walked out of the office, Taylor\ngrabbed a pistol kept there and held the former client at gun-\npoint until police arrived.\n\t(The Tribune, Tampa, Fla., 01/14/93)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   Dozing one evening at his Exeter, Pa., office, Jim Pisano was\nawakened by the barking of his dog.  Sitting in stunned amazement,\nhe watched as two men smashed out his office window, reached in\nand grabbed one of his hunting rifles.  Reaching a pistol on his\ndesk, Pisano fired several shots, apparently wounding one of the\nburglars, and putting them to flight.\n\t(The Times-Leader, Wilkes-Barre, Pa., 12/09/92)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   Trying on a pair of shoes was just an act for a criminal who\nthen pulled a knife and demanded money.  When the man advanced,\nthe Flint, Mich., shoestore owner drew his pistol and fired,\ncritically wounding the would-be robber.\n\t(The Journal, Flint, Mich., 01/13/93)\n==================================================================\n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n==================================================================\n   Disarmed and pistol whipped after struggling with a pair of\nshotgun-toting thugs, Brooklyn, N.Y., pharmacist Soel Melero \ncontinued fighting and managed to retrieve a second-also licensed-\nhidden pistol.  Firing three times, the druggist killed one of his\nassailants.  The other fled empty-handed.\n\t(The Daily News, New York, N.Y., 01/18/93)\n==================================================================\n-- \n*************************************************************\n*Ron Phillips               crphilli@hound.dazixca.ingr.com *\n*Senior Customer Engineer                                   *\n*Intergraph Electronics                                     *\n*381 East Evelyn Avenue               VOICE: (415) 691-6473 *\n*Mountain View, CA 94041              FAX:   (415) 691-0350 *\n*************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8321, "properties": {"category": "misc.forsale", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: soft contact lens cleaning unit (heater)\nSummary: Barnes-Hind timer heating unit for boiling soft lenses\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nDistribution: na\nLines: 17\n\n\nMy girlfriend switched to gas-permeable hard lenses and no longer\nneeds a one year old soft contact lens cleaning unit.  It's one of\nthose where you pop in the lens case filled with solution and the\nlenses, press the lighted timer button and let it cook.  No stains\n(of course -- if you've owned one of these, you understand), maybe\na little dust on the cover.\n\nBest cash offer, or equivalent worth in used CD's or Betamax tapes\n(some blanks or a couple of pre-recorded movies/concerts).\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8322, "properties": {"category": "sci.space", "text": "From: willner@head-cfa.harvard.edu (Steve Willner)\nSubject: Re: Orion drive in vacuum -- how?\nOrganization: Smithsonian Astrophysical Observatory, Cambridge, MA,  USA\nLines: 19\n\n\nIn article <C5qvJC.B4B@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry\nSpencer) writes: \n> The National Air & Space Museum has both the prototype and the film.\n\n>   However, quite possibly it's\n> no longer on display; NASM, like most museums, has much more stuff than it\n> can display at once, and does rotate the displays occasionally.\n\nThe NASM photo archives are open to the public.  All (or almost all)\nstill pictures in the collection are available for viewing, but I\ndon't know about films.  At least it might be worth a try.  I'm not\nsure if appointments are necessary, but I think not.\n\nGood luck, and let us know what you find.\n-- \nSteve Willner            Phone 617-495-7123         Bitnet:   willner@cfa\nCambridge, MA 02138 USA                 Internet: willner@cfa.harvard.edu\n  member, League for Programming Freedom; contact lpf@uunet.uu.net\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8323, "properties": {"category": "sci.electronics", "text": "From: smithr@teecs.UUCP (Robert Smith)\nSubject: Re: Conductive Plastic, what happened?\nOrganization: Litton Systems, Toronto ONT\nLines: 7\n\nIf you're thinking of reactive polymers they're making ESD safe\ncontau\biners out of it. As far as being conductive goes anything with\na resistance less than 10 to the fouth\b\brth power ohms per cubic measure\nis classed as conductive per MIL-STD-1686 for ESD protection. My $0.02\n($0.016 US).\n\nBob.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8324, "properties": {"category": "comp.windows.x", "text": "From: afielden@cbnewsb.cb.att.com (andrew.j.fielden)\nSubject: X benchmarks\nKeywords: benchmark\nOrganization: AT&T\nLines: 17\n\n\nWe are in the process of evaluating X-terminals. This includes running XRemote\nover a serial line.\nI would like to run some X benchmarks to determine comparative performance.\nHas anyone written any such benchmarks, or know of any useful programs on the\nnet ? I heard of a program called \"Xstone\", but I couldn't locate it using\narchie.\n\nPlease reply to afielden@mlsma.att.com, as I don't get to read this newsgroup\nmuch.\nThanks in advance for any help.\n\n-- \n+----------------------------------------+----------------------------------+\n|Andrew Fielden. AT&T Network Systems UK |        Tel : +44 666 832023      |\n|Information Systems Group (SUN support) |   Email : afielden@mlsma.att.com |\n+----------------------------------------+----------------------------------+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8325, "properties": {"category": "comp.windows.x", "text": "Subject: Re: Trouble compiling X11R5 on SunOS_4.1.3\nFrom: nemo@aguirre.dia.fi.upm.es (Francisco J. Ballesteros)\nOrganization: Computer Science, CLIP lab, UPM Madrid, Spain.\nNntp-Posting-Host: aguirre.dia.fi.upm.es\nIn-reply-to: dmm@head-cfa.harvard.edu's message of 2 Apr 93 21:24:05 GMT\nLines: 21\n\nIn article <1993Apr2.212405.5213@head-cfa.harvard.edu> dmm@head-cfa.harvard.edu (David Meleedy) writes:\n\n>   \t   I've been trying to compile X11R5 patchlevel 23 on a Sun Sparc\n>      IPX using SunOS_4.1.3, and gcc 2.3.3.\n>   \n>   \t   The problem occurs during the initial \"make World\".  When\n>      it gets up to compiling the standard X clients, it can't seem to find\n>      some of the libraries.  Right now we highly suspect the program \"ld\"\n>      which was updated for 4_1_3.\n>   \n\n    Yip, we had the same problem; the only fix we found was to link static\nsome of the clients, ( btw, we used cc). :-(.\n\n--\n/+=========================================++================================+\\\n||Francisco J. Ballesteros [a.k.a. Nemo]   ||  email: nemo@clip.dia.fi.upm.es||\n||org:  Computer Science, CLIP lab.        ||  phone: +34 1 336-7448         ||\n||      Campus Montegancedo s.n. U.P.M.    ||  ___         ___               ||\n||      Boadilla del Monte, Madrid, Spain. ||  \\\\   \\\\   o \\\\_)  \\   _ \\__   ||\n\\+=========================================++== \\\\__ \\\\__\\\\ \\\\ == \\_(_\\_\\_) =+/\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8326, "properties": {"category": "comp.sys.mac.hardware", "text": "From: erik@cheshire.oxy.edu (Erik Adams)\nSubject: Can I remove the 68000 under my daughterboard upgrade?\nOrganization: Occidental College, Los Angeles, CA 90041 USA.\nLines: 26\n\nThe subject says what I would like to do, here are the details:\n\nI have a 512ke with the MacRescue upgrade board that makes it the\nequivalent of a Plus (System 7 and MacEnvy both identify it as such).\n\nThe MacRescue board clips onto the 68000 on the MB.  It also has\na 68000 itself.  Periodically I have to remove the clip (not an\nentirely easy thing to do) and clean the \"legs\" of the 68000.\nLarry Pina's book asserts that this is occasionally a problem with\nsnap on upgrades:  the 68000's \"legs\" will oxidize, causing \nunusual system errors.\n\nWell, that's me.\n\nSo, I would like to do something permanent, and I think it would be\nfairly easy to put a socket in where the 68000 currently is, and\nmodify the MacRescue board to plug in.  What I'm not 100% sure of\nis whether it will work.  It seems to me that the two 68000s aren't\nacting independently; so removing one shouldn't have any effect on\nthe performance of my Mac.  I'm about 97% sure.\n\nWill someone provide the extra 3%?\n\nErik\nerik@cheshire.oxy.edu\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8327, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lepper@logopolis.mct.anl.gov (Matt Lepper 2-5950)\nSubject: Help with 3C503 and NCSA Telnet\nOrganization: Argonne National Laboratory, Argonne, Illinois\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 8\n\nHelp!\n  I'm trying to configure NCSA Telnet v2.3.05 to work with a 3C503 ethernet\nboard.  I can use FTP fine, but whenever I attempt to use Telnet, the\nmachine hangs with a blank screen and a blinking green cursor.  Any ideas?\n\nPlease e-mail:\n\tlepper@maat.mct.anl.gov\n\tmjlepper@mtu.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8328, "properties": {"category": "talk.politics.guns", "text": "From: aj359@cleveland.Freenet.Edu (Christopher C. Morton)\nSubject: Re: Waco Shootout Highlights Total Irresponsibility of the\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 13\nReply-To: aj359@cleveland.Freenet.Edu (Christopher C. Morton)\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nIn a previous article, irvine@uxh.cso.uiuc.edu (Brent Irvine) says:\n\n>Come on, guys, looks like its time to move that juvenile public-post\n>either to E-mail or to a different newsgroup (alt.sex.bondage.holly.silva?).\n\nNo, Brent that would be\nalt.sex.bondage.holly.silva.goofy.anti.semite.... :)\n\n-- \n*************************************************************************\nIf you were smarter, you'd have these opinions....\n*******************************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8329, "properties": {"category": "rec.sport.hockey", "text": "Subject: Remarks by President Clinton to NCAA Division I Champion Hockey Team\nFrom: \"nigel allen\" <nigel.allen@canrem.com>\nReply-To: \"nigel allen\" <nigel.allen@canrem.com>\nDistribution: rec\nOrganization: Canada Remote Systems\nLines: 158\n\n\nHere is a press release from the White House.\n\n Remarks by President Clinton to NCAA Division I Champion Hockey Team\nApril 19; Q&A Following\n To: National Desk\n Contact: White House Office of the Press Secretary, 202-456-2100\n\n   WASHINGTON, April 19 -- Following is a transcript\nof remarks by President Clinton to the University of Maine \"Black\nBears\" NCAA Division I hockey champions:\n\n                           The Rose Garden\n\n 9:58 A.M. EDT\n\n     THE PRESIDENT:  Good morning ladies and gentlemen.  It's\nan honor for me to welcome the University of Maine Black Bears, the\nwinner of the NCAA Division I hockey national championship to the\nRose Garden and the White House.  I understand from Senator Mitchell\nthat this is the first team from the University of Maine every to win\na national championship.  And we're glad to have them here.\n\n     I'm inspired not only by how the team pulled together to\nwin the championship, but how the entire state pulled together to\ncheer them onto victory.\n\n     Coming from a state that is also relatively small in\nsize, but also filled with pride and tradition and community, I can\nunderstand how the people of Maine must feel about the Black Bears.\nIn our state people are still talking about the time we won the\nOrange Bowl over the number one ranked football team, and that was\nback in 1978.  I'm sure that 15 years from now, the people of Maine\nwill as proud of this team as they are today.\n\n     You know, in my state football is a slightly more\npopular sport than hockey.  We don't have a lot of ice.  (Laughter.)\nBut after spending three months getting banged around in this town, I\ncan understand a little more about hockey than I did before I came\nhere.  Hockey is a tough game.  It's a hard-hitting sport.  It does\nhave one virtue though, there's a penalty for delay of game.  I wish\nwe had that rule in the Senate.  (Laughter.)\n\n     In government as in hockey, leadership is important.  In\nthe United States Senate, our team has a great captain, the Majority\nLeader and the senior Senator from Maine, George Mitchell; junior\nSenator -- Cohen looks so young, I can't imagine.  (Laughter.)  I'm\nactually bitter about Senator Cohen because he looks so much younger\nthan me.\n\n     On your hockey team, the captain Jim Montgomery has done\na great job.  He scored the winning goal late in the championship\ngame, leading you to a come-from-behind victory -- something else I\nknow a little bit about.\n\n     Sport brings out the best in individuals and in teams\nand in communities.  I share the pride that Senator Mitchell and\nSenator Cohen and Congressman Andrews and all the people of Maine\nmust feel for the Black Bears who have shown us all how to play as a\nteam, how to bring out the best in one another, and how to come from\nbehind.\n\n     I think it's important, as I ask young people from\naround America who have achieved outstanding things in working\ntogether, to come here to the White House to be recognized and\nappreciated by their country, to remember that those kinds of values\nand those kinds of virtues need to be ingrained in all of us for all\nof our lives.\n\n     We now have another role model, and I'm glad to have\nthem here today.  (Applause.)\n\n     (The President is presented with team jersey.)\n(Applause.)\n\n     THE PRESIDENT:  That's great.  I love it.  It's beautiful.\n(Applause.)\n\n     (The President is presented with an autographed stick.)\n\n     THE PRESIDENT:  Thank you.  That's great.  (Applause.)\n\n                             * * * * * *\n\n     Q  Mr. President, did you authorize the move on Waco\nthis morning, sir?\n\n     THE PRESIDENT:  I was aware of it.  I think the Attorney\nGeneral made the decision.  And I think I should refer all questions\nto her and to the FBI.\n\n     Q  Did you have any instructions for her as to how it\nshould be executed?\n\n     THE PRESIDENT:  No, they made the tactical decisions.\nThat was their judgment, the FBI.\n\n     Q  Is this a raid?\n\n     THE PRESIDENT:  And I will -- I want to refer you to --\ntalk to the Attorney General and the FBI.  I knew it was going to be\ndone, but the decisions were entirely theirs, all the tactical\ndecisions.\n\n     Q  What did you and Senator Mitchell talk about this\nmorning?\n\n     Q  Any chance for that stimulus package?\n\n     THE PRESIDENT:  Senator Mitchell ought to pay my\nquarter.  (Laughter.)  I was in there -- (laughter).\n\n     SENATOR MITCHELL:  You have to pay that quarter.\n\n     THE PRESIDENT:  I was ready.  (Laughter.)  Senator\nMitchell, he's worth a quarter any day.\n\n     Q  Any chance for your bill, sir?\n\n     THE PRESIDENT:  We talked about what was going to happen\nthis week in the Senate and about what other meetings we're going to\nhave for the rest of the week.  We only had about five minutes to\ntalk.  And we agreed we'd get back together later, around noon, and\ntalk some more.\n\n     Q  Senator Dole said over the weekend that your\ncompromise is no compromise.\n\n     THE PRESIDENT:  Well, I know he did, but, look, Senator\nDole and a lot of the other Republicans now in the Senate voted for\nthe same kind of thing for Ronald Reagan in 1983; and our research\nindicates that a majority of them over time voted for a total of 28\nemergency spending measures totalling over $100 billion when Reagan\nand Bush were President, in those administrations.  And many of those\npurposes were not nearly as worthy as putting the American people\nback to work.  I don't want to go back and revisit every one, but you\n\n\ncan do it.  You can look at the research there.  So this position\nthey're taking is not credible.  We have a very tough five-year\ndeficit reduction plan.  All these costs are covered during that time\nand then some.  And the very people that are saying this has all got\nto be paid for don't have much of a history on which to base their\nposition.  They've got 12 years of vote for stimulus measures of this\nkind that had very little to with putting the American people back to\nwork.  So I think we've got a chance to work it out, and I'm hopeful.\nWe'll see what happens today and tomorrow.  I'm feeling pretty good\nabout it.\n\n     THE PRESS:  Thank you\n\n                                 END       10:10 A.M. EDT\n\n -30-\n\n--\nCanada Remote Systems - Toronto, Ontario\n416-629-7000/629-7044\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8330, "properties": {"category": "comp.graphics", "text": "From: nfotis@ntua.gr (Nick C. Fotis)\nSubject: (17 Apr 93) Computer Graphics Resource Listing : WEEKLY [part 3/3]\nLines: 1529\nReply-To: nfotis@theseas.ntua.gr (Nick (Nikolaos) Fotis)\nOrganization: National Technical Univ. of Athens\n\nArchive-name: graphics/resources-list/part3\nLast-modified: 1993/04/17\n\n\nComputer Graphics Resource Listing : WEEKLY POSTING [ PART 3/3 ]\n===================================================\nLast Change : 17 April 1993\n\n\n11. Scene generators/geographical data/Maps/Data files\n======================================================\n\nDEMs (Digital Elevation Models)\n-------------------------------\n  DEMs (Digital Elevation Models) as well as other cartographic data\n  [huge] is available from spectrum.xerox.com [192.70.225.78], /pub/map.\n\n  Contact:\n  Lee Moore -- Webster Research Center, Xerox Corp. --\n  Voice: +1 (716) 422 2496\n  Arpa, Internet:  Moore.Wbst128@Xerox.Com\n[ Check also on ncgia.ucsb.edu (128.111.254.105), /pub/dems -- nfotis ]\n\n  Many of these files are also available on CD-ROM selled by USGS:\n  \"1:2,000,000 scale  Digital Line Graph (DLG) Data\". Contains datas\n  for all 50 states. Price is about $28, call to or visit in offices\n  in Menlo Park, in Reston, Virginia (800-USA-MAPS).\n\n  The Data User Services Division of the Bureau of the Census also has\n  data on CD-ROM (TSO standard format) that is derived from USGS\n  1:100,000 map data. Call (301) 763-4100 for more info or they have\n  a BBS at (301) 763-1568.\n\n[ From Dr.Dobbs #198 March 1993: ]\n\n      \"The U.S. Defense Mapping Agency, in cooperation with their counterpart\nagencies in CANADA, the U.K., and Australia, have released the Digital Chart\nof the World (DCW). This chart consists of over 1.5 gigabytes of reasonable\nquality vector data distributed on four CD-ROMS. .... includes coastlines,\nrivers, roads, railrays, airports,cities, towns, spot elevations, and depths,\nand over 100,000 place names.\"\n\nIt is ISO9660 compatible and only $200.00 available from:\n\nU.S. Geological Survey\nP.O. Box 25286\nDenver Federal Center\nDenver, CO 80225\n\nDigital Distribution Services\nEnergy, Mines, and Resources Canada\n615 Booth Street\nOttawa, ON\nK1A 0E9 Canada\n\nDirector General of Military Survey\n(Survey 3)\nElmwood Avenue\nFeltham, Middlesex\nTW13 7AH United Kingdom\n\nDirector of Survey, Australian Army\nDepartment of Defense\nCampbell Park Offices (CP2-4-24)\nCampbell ACT 2601 Australia\n\n\nFractal Landscape Generators\n----------------------------\n\nPublic Domain:\n\n  Many people have written fractal landscape generators. for example\n  for the Mac some of these generators were written by\n  pdbourke@ccu1.aukuni.ac.nz (Paul D. Bourke).\n  Many of the programs are available from the FTP sites and mail\n  archive servers. Check with Archie.\n\nCommercial:\n\n  Vista Pro 3.0 for the Amiga from Virtual Reality Labs -- list price\n  is about $100. Their address is:\n\tVRL\n\t2341 Ganador court\n\tSan Luis Obispo,\n\tCA 93401\n\tTelephone or FAX (805) 545-8515\n\n  Scenery Animator (also for the Amiga) is of the same caliber with Vista Pro 2.\n  Check with:\n\tNatural Graphics\n\tP.O. Box 1963\n\tRaklin, CA 95677\n\tPhone (916) 624-1436\n\n  Don't forget to ask about companion programs and data disks/tapes.\n\n  Vista Pro 3 has been ported to the PCs.\n\n\nCIA World Map II\n----------------\n[  NOTE: this database is quite out of date, and not topologically structured.\n  If you need a standard for world cartographic data, wait for the\n  Digital Chart of the World. This 1:1M database has been produced from\n  the Defense Mapping Agency's ONCs and will be available, together with\n  searching and viewing software, on a number of CD-ROMs later this summer. ]\n\n  Check into HANAUMA.STANFORD.EDU and UCSD.EDU (see ftp list above)\n  The CIA database consists of coastlines, rivers and political boundaries\n  in the form of line strokes. Also on hanauma.stanford.edu is a 720x360\n  array of elevation data, containing one ieee floating point number for\n  every half degree longitude and latitude.\n \n  A program for decoding the database, mfil, can be found on the machine\n  pi1.arc.umn.edu (137.66.130.11).\n  There's another program, which reads a compressed CIA Data Bank file and\n  builds a PHIGS hierachical structure. It uses a PHIGS extension known as\n  polyline sets for performance, but you can use regular polylines. Ask\n  Joe Stewart <joes@lpi.liant.com>.\n  The raw data at Stanford require the vplot package to be able to view it.\n  (was posted in comp.sources.unix). To be more exact, you'll have to\n  compile just the libvplot routines, not the whole package.\n\nNCAR data\n---------\n  NCAR (National Center for Atmospheric Research) has many types of\n  terrain  data, ranging from elevation datasets at\n  various resolutions, to information about soil types, vegetation, etc.\n  This data is not free -- they charge from $40 to $90 or more, depending\n  on the data volume and media (exabyte tape, 3480 cartridge, 9-track tape,\n  IBM PC floppy, and FTP transfer are all available).  Their data archive\n  is mostly research oriented, not hobbyist oriented.  For more information,\n  email to ilana@ncar.ucar.edu.\n\nUNC data tapes with voxel data\n--------------\n  There are 2 \"public domain\" tapes with data for the comparison and\n  testing of various volume rendering algorithms (mainly MRI and CT\n  scans). These tapes are distributed by the SoftLab of UNC @ Chapel Hill.\n  (softlab@cs.unc.edu)\n\n  The data sets (volume I and II) are also available via anonymous FTP from\n  omicron.cs.unc.edu [128.109.136.159] in pub/softlab/CHVRTD\n\nNASA\n----\n  Many US agencies such as NASA publish CD-ROMs with many altimetry data\n  from various space missions, eg. Viking for Mars, Magellan for Venus,\n  etc. Especially for NASA, I would suggest to call the following\n  address for more info:\n\n     National Space Science Date Center\n     Goddard Space Flight Center\n     Greenbelt, Maryland 20771\n     Telephone: (301) 286-6695\n     Email address:  request@nssdca.gsfc.nasa.gov\n\n  The data catalog (*not* the data itself) is available online.\n  Internet users can telnet to nssdca.gsfc.nasa.gov (128.183.10.4) and log\n  in as 'NODIS' (no password).\n\n  You can also dial in at (301)-286-9000 (300, 1200, or 2400 baud, 8 bits,\n  no parity, one stop). At the \"Enter Number:\" prompt, enter MD and\n  carriage return. When the system responds \"Call Complete,\" enter a few\n  more carriage returns to get the \"Username:\" and log in as 'NODIS' (no\n  password).\n\n  NSSDCA is also an anonymous FTP site, but no comprehensive list of\n  what's there is available at present.\n\nEarth Sciences Data\n-------------------\n\n  There's a listing of anonymous FTP sites for earth science data, including\n  imagery. This listing is called \"Earth Sciences Resources on Internet\",\n  and you can get it via anonymous FTP from csn.org [128.138.213.21]\n  in the directory COGS under the name \"internet.resources.earth.sci\"\n\n  Some sites include:\n  aurelie.soest.hawaii.edu [128.171.151.121]: pub/avhrr/images - AVHRR images\n  ames.arc.nasa.gov [128.102.18.3]: pub/SPACE/CDROM  - images from\n        Magellan and Viking missions etc.\n        pub/SPACE/Index contains a listing of files available in the whole\n        archive (the index is about 200K by itself). There's also an\n        e-mail server for the people without Internet access: send a letter\n        to archive-server@ames.arc.nasa.gov (or ames!archive-server). In the\n        subject of your letter (or in the body), use commands like:\n\n        send SPACE Index\n        send SPACE SHUTTLE/ss01.23.91\n\n        (Capitalization is important! Only text files are handled by the\n        email server at present)\n\n  vab02.larc.nasa.gov [128.155.23.47]: pub/gifs/misc/landsat -\n\tLandsat photos in GIF and JPEG format\n[ It was shut down - nfotis; anyone has a copy of this archive?? ]\n\nOthers\n------\n  Daily values of river discharge, streamflow, and daily weather data is\n  available from EarthInfo, 5541 Central Ave., Boulder CO  80301.  These\n  disks are expensive, around $500, but there are quantity discounts.\n  (303) 938-1788.\n\n  Check vmd.cso.uiuc.edu [128.174.5.98], the wx directory carries\n  data regarding surface analysis, weather radar, and sat view pics in\n  GIF format (updated hourly)\n\n  pioneer.unm.edu [129.24.9.217] is the Space and Planetary Image Facility\n  (located on the University of New Mexico campus) FTP server. It provides\n  Anonymous FTP access to >150 CD-ROMS  with data/images.\n\n  A disk with earthquake data, topography, gravity, geopolitical info\n  is available from NGDC (National Geophysical Data Center), 325 Broadway,\n  Boulder, CO  80303.  (303) 497-6958.\n\n  EOSAT (at least in the US) now sells Landsat MSS data older than two years\n  old for $200 per scene, and they have been talking about a similar deal\n  for Landsat TM data. The MSS data are 4 bands, 80 meter resolution.\n\n  Check out anonymous FTP to ftp.ncsa.uiuc.edu in\n  UNIX/PolyView/alpha-shape for a tool that creates convex hulls\n  alpha-shapes (a generalization of the convex hull) from 3D point sets.\n\n  The GRIPS II (Gov. Raster Image Processing Software) CD-ROM\n  is available from CD-ROM Inc. at 1-800-821-5245 for $49.\n  Code for viewing ADRG (Arc Digitised Raster Graphics) files is\n  available on the GRIPS II CD-ROM. The U.S. Army Engineer \n  Topographic Labs (Juan Perez) code is also available via FTP\n  ( adrg.zip archive in  spectrum.xerox.com )\n\nNRCC range data\n---------------\n  Rioux M., Cournoyer L. \"The NRCC Three-Dimensional Image Data Files\",\n  Tech. Report, CNRC 29077, National Research Council Canada,\n  Ottawa, Canada, 1988\n  [ From what I understand, these data are from a laser range finder,\n   and you can a copy for research purposes ]\n\n==========================================================================\n\n12. 3D scanners - Digitized 3D Data\n===================================\n\na. Cyberware Labs, Monterey, CA, manufactures a 3D color laser digitizer\n  which can be used to model parts of, or a complete, human body.\n  They run a service bureau also, so they can digitize models for you.\n\n  Address:\n    Cyberware Labs, Inc\n    8 Harris Ct, Suite 3D\n    Monterey, CA 93940\n  Phone: (408)373-1441, Fax: (408)373-3582\n\nb. Polhemus makes a 6D input device (actually a couple of models)\n  that senses position (3D) and *orientation* (+3D) based on electromagnetic\n  field interference.  This equipment is also incorporated in the\n  VPL Dataglove.\n  This hardware is also called ISOTRACK, from Keiser Aerospace.\n\nAscension Technology makes a similar 3D input device.\nThere is a company, Applied Sciences(?), that makes a 3D input\ndevice (position only) based on speed of sound triangulation.\n\nc. A company that specializes in digitizing is Viewpoint. You can ask\n   for Viewpoint's _free_ 100 page catalog full of ready to \n   ship datasets from categories such as cars, anatomy, aircraft,sports,\n   boats, trains, animals and others. Though these objects are\n   quite expensive, the cataloge is nevertheless of interest for it\n   has pictures of all the available objects in wireframe , polygon mesh.\n\n  Contact:\n\n  Viewpoint,\n  870 West Center,\n  Orem, Utah 84057\n  ph# 801-224-2222\n  fax# 801-224-2272\n  1-800-DATASET\n\n------\n\n  Some addresses for companies that make digitizers:\n\n  Ascension Technology\n  Bird, Flock of Birds, Big Bird: 6d trackers\n  P.O. Box 527,\n  Burlington, VT 05402\n  Phone: (802) 655-7879, Fax: (802) 655-5904\n\n  Polhemus Incorporated\n  Digitizer: 6d trackers\n  P.O. Box 560, Hercules Dr.\n  Colchester, Vt. 05446\n  Tel: (802) 655-3159\n\n  Logitech Inc.\n  Red Baron, ultrasonic 6D mouse\n  6506 Kaiser Dr.\n  Freemont, CA 94555\n  Tel: (415) 795-8500w\n\n  Shooting Star Technology\n  Mechanical Headtracker\n  1921 Holdom Ave.\n  Burnaby, B.C. Canada V5B 3W4\n  Tel: (604) 298-8574\n  Fax: (604) 298-8580\n\n  Spaceball Technologies, Inc.\n  Spaceball: 6d stationary input device\n  600 Suffolk Street\n  Lowell, MA, 01854\n  Tel: (508) 970-0330 \n  Fax: (508) 970-0199\n  Tel in Mountain View: (415) 966-8123 \n\n  Transfinite Systems \n  Gold Brick: PowerGlove for Macintosh\n  P.O. Box N\n  MIT Branch Post Office\n  Cambridge, MA 02139-0903\n  Tel: (617) 969-9570\n  email: D2002@AppleLink.Apple.com\n\n  VPL Research, Inc.\n  EyePhone: head-mounted display\n  DataGlove: glove/hand input device\n  VPL Research Inc.\n  950 Tower Lane\n  14th Floor\n  Foster City, CA 94404\n  Tel: (415) 312-0200\n  Fax: (415) 312-9356\n\n  SimGraphics Engineering\n  Flying Mouse: 6d input device\n  1137 Huntington Rd. Suite A-1\n  South Pasadena, CA 91030-4563\n  (213) 255-0900\n\n========================================================================\n\n13. Background imagery/textures/datafiles\n=========================================\n\n First, check in the FTP places that are mentioned in the FAQ or in the FTP\nlist above.\n\n24-bit scanning:\n----------------\n  Get a good 24-bit scanner, like Epson's. Suggested is an SCSI port for\n  speed. Eric Haines had a suggestion in RT News, Volume 4, #3 :\n  scan textures for wallpapers and floor coverings, etc. from doll\n  house supplies.\n  So you have a rather cheap way to scan patterns that don't have\n  scaling troubles associated with real materials and scanning area.\n\nBooks with textures:\n--------------------\n  Find some houses/books/magazines that carry photographic material.\n  Educorp, 1-619-536-9999, sells CD-ROMS with various imagery - also\n  a wide variety of stock art is available.\n  Stock art from big-name stock art houses, such as Comstock,\n  UNIPHOTO, and Metro Image Base, is available.\n\n  In Italy, there's a company called Belvedere that makes such books\n  for the purpose of clipping their pages for inclusion in your\n  graphics work. Their address is:\n\tEdition Belvedere Co. Ltd.,\n\t00196 Rome Italy,\n\tPiazzale Flaminio, 19\n\tTel. (06) 360-44-88, Fax (06)  360-29-60\n\nTexture Libraries:\n------------------\na. Mannikin Sceptre Graphics announced TexTiles, a set of 256x256 24-bit\n   textures. Initial shipments in 24-bit IFF (for Amigas), soon in 24-bit\n   TIFF format. Algorithmically built for tiled surfaces. SRP is $40 / volume\n   (each volume = 40 images @ 10 disks). Demo disks for $5 are available.\n\n   Contact:\n   Mannikin Sceptre Graphics\n   1600 Indiana Ave.\n   Winter Park, FL 32789\n   Phone: (407) 384-9484\n   FAX: (407) 647-7242\n\nb. ESSENCE is a library of 65 (sixty-five) new algoritmic textures for Imagine\n   by Impulse, Inc. These textures are FULLY compatible with the floating point\n   versions of Imagine 2.0, Imagine 1.1, and even Turbo Silver.\n   Written by Steve Worley.\n\n   For more info contact:\n   Essence Info\n   Apex Software Publishing\n   405 El Camino Real Suite 121\n   Menlo Park CA 94025 USA\n\n[ What about Texture City ?? ]\n\n==========================================================================\n\n14. Introduction to rendering algorithms\n========================================\n\na. Ray-Tracing:\n---------------\n\n  I assume you have a general understanding of Computer Graphics. No? Then read\n  some of the books that the FAQ contains. For Ray-Tracing, I would\n  suggest:\n   An Introduction to Ray Tracing, Andrew Glassner (ed.), Academic Press\n     1989, ISBN 0-12-286160-4\n  Note that I have not read the book, but I feel that you can't be wrong\n  using his book. An errata list was posted in comp.graphics by Eric Haines\n  (erich@eye.com)\n\nThere's a more concise reference also:\n\n  Roman Kuchkuda , UNC @ Chapel Hill: \"An Introduction to Ray Tracing\", in\n  \"Theoretical Foundations for Computer Graphics and CAD\", ed. R.A.E.Earnshaw,\n  NATO AS, Vol. F-40., pp. 1039-1060. Printed by Springer-Verlag, 1988.\n\nIt contains code for a small, but fundamentally complete ray-tracer.\n\nb. Z-buffer (depth-buffer)\n--------------------------\n\nA good reference is:\n\n        _Procedural Elements for Computer Graphics_, David F. Rogers,\n        McGraw-Hill, New York, 1985, pages 265-272 and 280-284.\n\nc. Others:\n----------\n???\n[ More info is needed -- nfotis ]\n\n========================================================================\n\n15. Where can I find the geometric data for the:\n================================================\n\na. Teapot ?\n-----------\n\n\"Displays on Display\" column of IEEE CG&A Jan '87 has the whole\nstory about origin of the Martin Newell's teapot. The article also has\nthe bezier patch model and a Pascal program to display the wireframe\nmodel of the teapot.\n\nIEEE CG&A Sep '87 in Jim Blinn's column \"Jim Blinn's Corner\" describes\nan another way to model the teapot; Bezier curves with rotations for\nexample are used.\n\nThe OFF and SPD packages have these objects, so you're advised to get\nthem to avoid typing the data yourself.  The OFF data is triangles at\na specific resolution (around 8x8[x4 triangles] meshing per patch).\nThe SPD package provides the spline patch descriptions and performs a\ntessellation at any specified resolution.\n\nb. Space Shuttle ?\n------------------\n\nTolis Lerios <tolis@nova.stanford.edu> has built a list of Space Shuttle\ndatafiles. Here's a summary (From his sci.space list):\n\nmodel1:\nA modified version of the newsgroup model (model2)\n\n406 vertices (296 useful, i.e. referred to in the polygon descriptions.)\n389 polygons (233 3-vertex, 146 4-vertex, 7 5-vertex, 3 6-vertex).\nPayload doors non-existent.\nUnits: unknown.\n\nSimon Marshall (S.Marshall@sequent.cc.hull.ac.uk) has a copy. He\nsaid there is no proprietary information associated with it.\n\nmodel2:\nThe newsgroup model, in OFF format. You can find it in\n\ngondwana.ecr.mu.oz.au , file pub/off/objects/shuttle.geo\nhanauma.stanford.edu ,  /pub/graphics/Comp.graphics/objects/shuttle.data\n\nmodel3:\nThe triangles' model.\n\nThis model is stored in several files, each defining portions of the model.\n\nGreg Henderson (henders@infonode.ingr.com) has a copy.  He did\nnot mention any restriction on the model's distribution.\n\nmodel4:\nThe NASA model.\n\nThe file starts off with a header line containing three real numbers,\ndefining the offsets used by Lockheed in their simulations:\n\n<x offset> <y offset> <z offset>\n\nFrom then on, the file consists of a sequence of polygon descriptions\n\n3473 vertices.\n2748 polygons (407 3-vertex, 2268 4-vertex, 33 5-vertex, 14 6-vertex,\n 10 7-vertex, 8 8-vertex, 8 12-vertex, 2 13-vertex, 2 15-vertex,\n 17 16-vertex, 2 17-vertex, 2 18-vertex, 3 19-vertex, 8 24-vertex).\nPayload doors closed.\nUnits: inches.\n\nJon Berndt (jon@l14h11.jsc.nasa.gov) seems to be responsible for the model\nProprietary info: unknown\n\nmodel5:\nThe old shuttle model.\n\nThe file consists of a sequence of polygon descriptions.\n\n104 vertices.\n452 polygons (11 3-vertex, 41 4-vertex).\nPayload doors open.\nUnits: meters.\n\nWe have been using this model at STAR Labs, Stanford University, for\nsome years now. Contact me (tolis@nova.stanford.edu) or my supervisor\nScott Williams (scott@star5.stanford.edu) if you want a copy.\n\n========================================================================\n\n16. Image annotation software\n=============================\n\na. Touchup runs in Sunview and is pretty good.  It reads in\n  rasterfiles, but even if your image isn't normally stored\n  in rasterfile format you could use screendump to make it a\n  rasterfile.\n\nb. Idraw (part of Stanford's InterViews distribution) can handle some\n  image formats in addition to being a MacDraw like tool.  I'm not\n  sure exactly what they are.\n  You can ftp the idraw's binary from interviews.stanford.edu.\n\nc. Tgif is another MacDraw like tool that can handle X11 bitmap (xbm)\n  and X11 pixmap (xpm) formats.  If the image you have is in formats\n  other than xbm or xpm, you can get the pbmplus toolkit to convert\n  things like gif or even some Macintosh formats to xpm.\n  Tgif's sources are available in the pub directory on cs.ucla.edu\n  (Version 2.12 of tgif at patchlevel 7 plus patch8 and patch9)\n\nd. Use the editimage facility of KHOROS (see below).\n  This is just one utility in the overall system- you can essentially do all\n  your image processing and macdraw-type graphics using this package.\n\ne. You might be able to get by with PBMPlus.  pbmtext gives you text output\n  bitmaps which can be overlaid on top of your image.\n\nf. 'ice' requires Sun hardware running OpenWindows 3.It's a PostScript-based\n  graphical editor,and it's available for anonymous ftp from Internet host\n  eo.soest.hawaii.edu (128.171.151.12). Requires Sun C++ 2.0 and\n  two other locally developed packages, the LXT library (an Xlib-based\n  toolkit) and a small C++ class library. All files (pub/ice.tar.Z,\n  pub/lxt.tar.Z and pub/ldgoc++.tar.Z) are available in compressed\n  tar format. pub/ice.tar.Z contains a README that gives installation\n  instructions, as well as an extensive man page (ice.1).\n  A statically-linked compressed executable pub/ice-sun4.Z for\n  SPARC systems is also available for ftp.\n\n  All software is the property of Columbia University and may not\n  be redistributed without permission.\n\n  ice means Image Composition Environment and it's an imaging tool that\n  allows raster images to be combined with a wide variety of\n  PostScript annotations in WYSIWYG fashion via X11 imaging\n  routines and NeWS PostScript rasterizing.\n\ng. Use ImageMagick to annotate an image from your X server.  Pick the \n  position of your text with the cursor and choose your font and pen \n  color from a pull-down menu.  ImageMagick can read and write many\n  of the more popular image formats.  ImageMagick is available as\n  export.lcs.mit.edu: contrib/ImageMagick.tar.Z or at your nearest\n  X11 archive.\n\n========================================================================\n\n17. Scientific visualization stuff\n==================================\n\nX Data Slice (xds)\n-------------------\n  Bundled with the X11 distribution from MIT,\n  in the contrib directory. Available at ftp.ncsa.uiuc.edu [141.142.20.50]\n  (either as a source or binaries for various platforms).\n\nNational Center for Supercomputing Applications (NCSA) Tool Suite\n-----------------------------------------------------------------\n\nPlatforms: Unix Workstations (DEC, IBM, SGI, Sun)\n           Apple MacIntosh\n           Cray supercomputers\n\nAvailability: Now available.  Source code in the public domain.\n              FTP from ftp.ncsa.uiuc.edu.\n\nContact: National Center for Supercomputing Applications\n         Computing Applications Building\n         605 E. Springfield Ave.\n         Champaign, IL 61820\n\nCost: Free (zero dollars).\n\nThe suite includes tools for 2D image and 3D scene analysis and visualization.\nThe code is actively maintained and updated.\n\nSpyglass\n--------\n  They sell commercial versions of the NCSA tools. Examples are:\n\n\tSpyglass Dicer (3D volumetric data analysis package)\n\t\tPlatform: Mac\n\n\tSpyglass Transform (2D data analysis package)\n\t\tPlatforms: Mac, SGI, Sun, DEC, HP, IBM\n\n  Contact:\n  Spyglass, Inc.\n  P.O. Box 6388\n  Champaign, IL  61826\n  (217) 355-6000\n\nKHOROS 1.0 Patch 5\n------------------\n  Available via anonymous ftp at pprg.eece.unm.edu (129.24.24.10).\n  cd to /pub/khoros to see what is available. It is HUGE (> 100 MB), but good.\n  Needs Unix and X11R4. Freely copied (NOT PD), complete with sources\n  and docs. Very extensive and at its heart is visual programming.\n  Khoros components include a visual programming language, code\n  generators for extending the visual language and adding new application\n  packages to the system, an interactive user interface editor, an\n  interactive image display package, an extensive library of image and\n  signal processing routines, and 2D/3D plotting packages.\n\n  See comp.soft-sys.khoros on Usenet and the relative FAQ for more info....\n\n  Contact:\n\n  The Khoros Group\n  Room 110 EECE Dept.\n  University of New Mexico\n  Albuquerque, NM 87131\n\n  Email: khoros-request@chama.eece.unm.edu\n\n\nMacPhase\n--------\n  Analysis & Visualization Application for the Macintosh.\n  Operates on 1D and 2D data arrays. Import/Export several different file\n  formats.  Several different plotting options such as gray scale,\n  color raster, 3D Wire frame, 3D surface, contour, vector, line, and\n  combinations.  FFTs, filtering, and other math functions, color look up\n  editor, array calculator, etc. Shareware, available via anonymous ftp from\n  sumex-aim.stanford.edu in the info-mac/app directory.\n  For other information contact Doug Norton (e-mail: 74017.461@@compuserve.com)\n\n\nIRIS Explorer\n-------------\n  It's an application creation system developed by Silicon\n  Graphics that provides visualisation and analysis functionality for\n  computational scientists, engineers and other scientists. The Explorer\n  GUI allows users to build custom applications without having to write\n  any, or a minimal amount of, traditonal code. Also, existing code can\n  be easily integrated into the Explorer environment. Explorer currently\n  is available now on SGI and Cray machines, but will become available on\n  other platforms in time. [ Bundled with every new SGI machine, as far as\n  I know]\n\n  See comp.graphics.explorer or comp.sys.sgi for discussion of the package.\n\n  There are also two FTP servers for related stuff, modules etc.:\n\n  ftp.epcc.ed.ac.uk [129.215.56.29]\n  swedishchef.lerc.nasa.gov [139.88.54.33] - mirror of the UK site\n\napE\n---\n  Back in the 'old good days', you could get apE for nearly free.\n  Now has gone commercial and the following vendor supplies it:\n\n  TaraVisual Corporation\n  929 Harrison Avenue\n  Columbus, Ohio 43215\n  Tel: 1-800-458-8731 and (614) 291-2912\n  Fax: (614) 291-2867\n\n        Cost:\n  $895 (plus tax); runtime version with a site-license for a single user\n  (at a time), no limit on the number of machines in a cluster.\n  $895 includes support/maintenance and upgrades.\n  Source code more.  Additional user licenses $360.\n\n  The name of the package has become apE III (TM).\n  Khoros is very similar to apE on philosophy, as are AVS and Explorer.\n\nAVS\n---\nSee also:\n        comp.graphics.avs\n\nPlatforms: CONVEX, CRAY, DEC, Evans & Sutherland, HP, IBM, Kubota,\nSet Technologies, SGI, Stardent, SUN, Wavetracer\nAvailability: AVS4 available on all the above:\n  For all UNIX workstations.\n\nContact:\n  Advanced Visual Systems Inc.\n  300 Fifth Ave.\n  Waltham, MA    02154\n\n  (617)-890-4300   Telephone\n  (617)-890-8287   Fax\n  avs@avs.com      Email\n\n  Advanced Visual Systems Inc. for: CRAY, HP, IBM, SGI, Stardent, SUN\n  CONVEX for CONVEX\n  Advanced Visual Systems Inc. or CRAY for CRAY\n  DEC for DEC\n  Evans & Sutherland for Evans & Sutherland\n  Advanced Visual Systems Inc. or IBM for IBM\n  Kubota Pacific Inc. for Kubota\n  Set Technologies for Set Technologies\n  Wavetracer for Wavetracer\n\n  FTP Site: for modules, data sets, other info:\n\tavs.ncsc.org (128.109.178.23)\n\nWIT\n---\n  In a nutshell it's a package of the same genre as AVS,Explorer,etc.\n  It seems more a image processing system than a generic SciVi system (IMHO)\n  Major elements are:\n\n  - a visual programming language, which automatically exploits the inherent\n        parallelism\n  - a code generator which converts the graph to a standalone program\n\n  Iconified libraries present a rich set of point, filter, io, transform,\n  morphological, segmentation, and measurement operations.\n  A flow library allows graphs to employ broadcast, merge,\n  synchronization, conditional, and sequencing control strategies.\n\n  WIT delivers an object-oriented, distributed, visual programming\n  environment which allows users to rapidly design solutions to their\n  imaging problems. Users can consolidate both software and hardware\n  developments within a complete CAD-like workspace by adding their\n  own operators (C functions), objects (data structures), and servers\n  (specialized hardware). WIT runs on Sun, HP9000/7xx, SGI and supports\n  Datacube MV-20/200 hardware allowing you to run your graphs in real-time.\n\n  For a free WIT demo disk, call, FAX, or e-mail (poon@ee.ubc.ca)\n  us stating your complete name, address, voice, FAX, e-mail info.\n  and desired platform.\n\n  Pricing: WIT for Sparc, one yr. free upgrades, 30 days\n  technical support....................$5000 US\n\n  Academic institutions: discounts available\n\n\n  Contact:\n  Logical Vision Ltd.\n  Suite 108-3700 Gilmore Way\n  Burnaby, B.C., CANADA\n  V5G 4M1\n  Tel: 604-435-2587\n  Fax: 604-435-8840\n\n  Terry Arden <poon@ee.ubc.ca>\n\nVIS-5D\n------\n  A system for visually exploring the output of 5-D gridded data sets\n  such as those made by weather models. Platforms:\n\n    SGI IRIS with VGX, GTX, TG, or G graphics,\n    SGI Crimson or Indigo (R4000, Elan graphics suggested), IRIX 4.0.x\n    IBM RS/6000 with GL graphics, AIX version 3 or later;\n    Stardent GS-1000 and GS-2000 (with TrueColor display)\n\n  In any case, 32 (or more) MB of RAM are suggested.\n\n  You can get it freely (thanks to NASA support) via anonymous ftp:\n\n ftp iris.ssec.wisc.edu  (or ftp 144.92.108.63), then\n\n  ftp> cd pub/vis5d\n  ftp> ascii\n  ftp> get README\n  ftp> bye\n\n NOTE: You can find the package also on wuarchive.wustl.edu in the\n graphics/graphics/packages directory.\n\n  Read section 2 of the README file for full instructions\n  on how to get and install VIS-5D.\n\n  Contact:\n  Bill Hibbard (whibbard@vms.macc.wisc.edu)\n  Brian Paul (bpaul@vms.macc.wisc.edu)\n\nDATAexplorer (IBM)\n------------------\n  Platforms : IBM Risc System 6000, IBM POWER Visualization Server\n        (SIMD mesh 32 i860s, 40 MHz)\n\n  Working on (announced) : SGI, HP, Sun\n\n  Contact:\n  Your local IBM Rep.  For a trial package ask your rep to contact :\n\n  David Kilgore\n  Data Explorer Product Marketing\n  YKTVMH(KILCORE), (708) 981-4510\n\nWavefront\n---------\n  Data Visualizer, Personal Visualizer, Advanced Visualizer.\n  Platforms: SGI, SUN, IBM RS6000, HP, DEC\n\n  Availability:\n    Available on all the above platforms from Wavefront\n    Technologies.  Educational programs and site licenses are\n    available.\n\n  Contacts:\n    Mike Wilson (mike@wti.com)\n\n    Wavefront Technologies, Inc.\n    530 East Montecito Street\n    Santa Barbara, CA 93103\n    805-962-8117\n    FAX: 805-963-0410\n\n    Wavefront Europe\n    Guldenspoorstraat 21-23\n    B-9000 Gent, Belgium\n    32-91-25-45-55\n    FAX: 32-91-23-44-56\n\n    Wavefront Technologies Japan\n    17F Shinjuku-sumitomo Bldg\n    2-6-1  Nishi-shinjuku, Shunjuku-Ku\n    Tokyo 168 Japan\n    81-3-3342-7330\n   FAX 81-3-3342-7353\n\n\nPLOT3D and FAST from NASA Ames\n------------------------------\n  These packages are distributed from COSMIC at least\n  (for FAST ask Pat Elson <pelson@nas.nasa.gov> for\n  distribution information). In general, these codes are for US\n  citizens only :-(\n\nXGRAPH\n------\n  On the contrib tape of X11R5. Its specialty is display of up\n  to 64 data sets (2D).\n\nNCAR\n----\n  National Center for Atmospheric Research. One of the original graphics\n  packages. Runs on Sun, RS6000, SGI, VAX, Cray Y-MP, DecStations, and more.\n\n  Contact:\n\tGraphics Information\n\tNCAR Scientific Computing Division\n\tP.O. Box 3000\n\tBoulder, CO   80307-3000\n\t(303)-497-1201\n\tscdinfo@ncar.ucar.edu\n\n  Cost:\n\t.edu\n\t$750 Unlimited users\n\n\t.gov\n\t$750 1 user\n\t$1500 5 users\n\t$3000 25 users\n\n\t.com users multiply .gov * 2.0\n\nIDL\n---\n  An environment for scientific computing and visualization.\n  Based on an array oriented language, IDL includes 2D and 3D\n  graphics, matrix manupulation, signal and image processing,\n  basic statistics, gridding, mapping, and a widget based system\n  for building GUI for IDL applications (Open Look, Motif, or\n  MS-Windows).\n\n  Environments:  DEC (VMS and Ultrix), HP, IBM RS6000, SGI, Sun,\n          Microsoft Windows.  (Mac version in progress)\n  Cost:  $1500 to $3750, Educational and quantity discounts\n          available.\n  See also:   comp.lang.idl-pvwave (the IDL-PVWAVE bundle)\n  Contact:    Research Systems Inc.\n              777 29th Street, Suite 302\n              Boulder, CO  80303\n              Phone:  303-786-9900\n              FAX:    303-786-9909\n              E-mail: info@rsinc.com\n  Demo available via FTP.  Call or E-mail for details.\n\nIDL/SIPS\n--------\n  \"A lot of people are using IDL with a package called SIPS. This was\n  developed at the University of Colorado (Boulder) by some people working\n  for Alex Goetz.  You might try contacting them if you already have IDL\n  or would be willing to buy it.  It's a few thousand dollars (American) I\n  expect for IDL and the other should be free.  Those are the general\n  purpose packages I've heard of, besides what TerraMar has.\n  SIPS _was_ written for AVIRIS imagery.  I'm not sure how general purpose\n  it is.  You would have to contact Goetz or one of his people and ask.  I\n  have another piece of software (PCW) that does PC and Walsh\n  transformations with pseudocoloring and clustering and limited image\n  modification (you can compute an image using selected components).  I've\n  used it on 70 megabyte AVIRIS images without problems, but for the best\n  speed you need an external DSP card.  It will work without it, but large\n  images take quite a while (50-70 times as long) to process.  That's a\n  freebie if you want it\"\n\n  \"My  favorite is IDL (Interactive Data Language) from Research Systems,\n  Inc.  IDL is in my opinion, much better and infinitely easier. Its\n  programming language is very strong and easy -- very Pascal-like. It\n  handles the number-crunching very well, also. Personally, I like doing\n  the number-crunching with IDL on the VAX (or Mathematica, Igor, or even\n  Excel on the Mac if it's not too hairy), then bringing it over to NIH\n  Image for the imaging part. I have yet to encounter any situation which\n  that combination couldn't handle, and the speed and ease of use\n  (compared to IRAF) was incredible. By the way, it's mostly astronomical\n  image processing which I've been doing. This means image enhancement,\n  cleaning up bad lines/pixels, and some other traditional image\n  processing routines. Then, for example, taking a graph of intensity\n  versus position along a line I choose with the mouse, then doing a curve\n  fit to that line (which I might do like in KaleidaGraph.) \"\n\n[ For IDL call Research Systems , for PV-WAVE call Precision Visuals and\n for SIPS call University of Colorado @ Boulder . From what I can\n understand, you can get packaged programs from Research Systems, though\n -- nfotis ]\n\nVisual3\n-------\n  contact Robert Haimes, MIT\n\nFieldView\n---------\n An interactive program designed to assist an engineer in\n investigating fluid dynamics data sets.          \n\n Platforms:  SGI, IBM, HP, SUN, X-terminals\n\n Availability:  Currently available on all of the above\n       platforms.  Educational programs and volume \n       discounts are available.\n\n Contact:\n\n Intelligent Light \n P.O. Box 65\n Fair Lawn, NJ 07410\n (201)794-7550\n        \n Steve Kramer (kramer@ilight.com)\n\n\nSciAn\n------\n  SciAn is primarily intended to do 3-D visualizations of data in an \n  interactive environment with the ability to generate animations using\n  frame-accurate video recording devices.  A user manual, on-line help, and\n  technical notes will help you use the program.\n\n  Cost : 0 (Free), source code provided via ftp.\n  Platforms : SGI 4D machines and IBM RS/6000 with the GL card + Z-buffer\n\n  Where to find it:\n  ftp.scri.fsu.edu [144.174.128.34] : /pub/SciAn\n\tA mirror is monu1.cc.monash.edu.au [130.194.1.101] : /pub/SciAn\n\nSCRY\n----\n[ From the README : ]\n\n      Scry is a distributed image handling system  that  pro-\n vides image transport and compression on local and wide area\n networks, image viewing on workstations, recording on  video\n equipment,  and  storage on disk.  The system can be distri-\n buted among workstations, between supercomputers and  works-\n tations,  and between supercomputers, workstations and video\n animation controllers.  The system is most commonly used  to\n produce  video based movie displays of images resulting from\n visualization of time dependent data, complex 3D data  sets,\n and  image  processing  operations.   Both  the  clients and\n servers run on a variety of systems that provide UNIX-like C\n run-time environments, and 4BSD sockets.\n \n The source is available for anonymous ftp:\n \n csam.lbl.gov [128.3.254.6] : pub/scry.tar.Z\n \n Contact:\n \n Bill Johnston, (wejohnston@lbl.gov, ...ucbvax!csam.lbl.gov!johnston)\n\n       or\n\n David Robertson (dwrobertson@lbl.gov, ...ucbvax!csam.lbl.gov!davidr)\n \n Imaging Technologies Group\n MS 50B/2239\n Lawrence Berkeley Laboratory\n 1 Cyclotron Road\n Berkeley, CA  94720\n\n\nSVLIB / FVS\n-----------\n  SVLIB is an X-Windows widget set based on the OSF (Open Software \n  Foundation) Motif widget set. SVLIB widgets are macro-widgets \n  comprising lower level Motif widgets such as buttons, scrollbars, \n  menus, and drawing areas. It is designed to address the reusability \n  of 2D visualization routines and each widget in the library is an \n  encapsulation of a specific visualization technique such as colormap \n  manipulation, image display, and contour plotting. It is targetted\n  to run on UNIX workstations supporting OSF/Motif. Currently, only \n  color monitors are supported. Since SVLIB is a collection of widgets \n  developed in the same spirit as the OSF/Motif user interface widget \n  set, it integrates seamlessly with the Motif widgets. Programmers \n  using SVLIB widgets see the same interface and design as other \n  Motif widgets.\n\n  FVS is a visualization software for Computational Fluid Dynamics (CFD) \n  simulations.  FVS is designed to accept data generated from these\n  simulations and apply various visualization techniques to present these\n  data graphically. \n  FVS accepts three-dimensional multi-block data recorded in NCSA HDF format.\n\n iti.gov.sg [192.122.132.130] : /pub/svlib (Scientific Visualization)\n      /pu/fvs; These directories contain demo binaries for Sun4/SGI\n\n  Cost : US$200 for academic and US$300 for non-academic institutions.\n  (For each of the above items). You're getting the source for the licence.\n\n  Contact\n  -------\n  Miss Quek Lee Hian\n  Member of Technical Staff\n  Information Technology Institute\n  National Computer Board\n  NCB Building\n  71, Sicence Park Drive\n  Singapore 0511\n  Republic of Singapore\n  Tel : (65)7720435\n  Fax : (65)7795966\n  Email : leehian@iti.gov.sg\n\n\n---------------------------------------------------------\nGVLware Distribution:\n        Bob  - An interactive volume renderer for the SGI\n        Raz  - A disk based movie player for the SGI\n        Icol - Motif color editor\n---------------------------------------------------------\n\nThe Army High Performance Computing Research Center (AHPCRC) has been\ndeveloping a set of tools to work with large time dependent 2D and 3D\ndata sets.  In the Graphics and Visualization Lab (GVL) we are using\nthese tools along side standard packages, such as SGI Explorer and the\nUtah Raster Toolkit, to render 3D volumes and create digital movies.\nA couple of the more general purpose programs have been bundled into a\npackage called \"GVLware\".\n\nGVLware, currently consisting of Bob, Raz and Icol, is now available\nvia ftp.  The most interesting program is probably Bob, an interactive\nvolume renderer for the SGI.  Raz streams raster images from disk to\nan SGI screen, enabling movies larger than memory to be played.  Icol\nis a color map editor that works with Bob and Raz.  Source and\npre-built binaries for IRIX 4.0.5 are included.\n\nTo acquire GVLware, anonymous ftp to:\n        machine - ftp.arc.umn.edu\n        file    - /pub/gvl.tar.Z\n\nTo use GVLware:\n        mkdir gvl ; cd gvl\n        zcat gvl.tar.Z | tar xvf -\n        more README\n\nSome Bob features:\n        Motif interface, SGI GL rendering\n        Renders 64 cubed data set in 0.1 to 1.0 seconds on a VGX\n        Alpha Compositing and Maximum Value rendering, in perspective\n            (only Maximum Value rendering on Personal Iris)\n        Data must be a \"Brick of Bytes\", on a regularly spaced grid\n        Animation, subvolumes, subsampling, stereo\n\nSome Raz features:\n        Motif interface, SGI GL rendering\n        Loads files to a raw disk partition, then streams to screen\n            (requires an empty disk partition to be set aside)\n        Script interface available for movie sequences\n        Can stream from memory, like NCSA XImage\n        \nSome Icol features:\n        Motif interface\n        Easy to create interpolated color maps between key points\n        RGB, HSV and YUV color spaces, multiple file formats\n        Communicates changes automatically to Bob and Raz\n        Has been tested on SGI, Sun, DEC and Cray systems\n\nBTW:    Bob  == Brick of Bytes\n        Icol == Interpolated Color\n        Raz  == ? (just a name)\n\nPlease send any comments to\n        gvlware@ahpcrc.umn.edu\n\nThis software collection is supported by the Army Research Office\ncontract number DAALO3-89-C-0038 with the University of Minnesota Army\nHigh Performance Computing Research Center.\n\n\nIAP\n---\n  Imaging Applications Platform is a commercial package for medical and\n  scientific visualization. It does volume rendering, binary surface\n  rendering, multiplanar reformating, image manipulation, cine sequencing,\n  intermixes geometry and text with images and provides measurement and\n  coordinate transform abilities.\n\n  It can provide hardcopy on most medical film printers, image database\n  functionality and interconnection to most medical (CT/MRI/etc) scanners.\n\n  It is client/server based and provides an object oriented interface. It\n  runs on most high performance workstations and takes full advantage of\n  parallelism where it is available. It is robust, efficient and\n  will be submitted for FDA approval for use in medical applications.\n\n  Cost: $20K for OEM developer, $10K for educational developer\n  and run times starting at $8900 and going down based on quantity.\n\n  The developer packages include two days training for two people in Toronto.\n\n  Available from:\n\n  ISG Technologies\n  6509 Airport Road\n  Mississauga, Ontario,\n  Canada, L4V-1S7\n\n  (416) 672-2100\n  e-mail: Rod Gilchrist <rod@isgtec.com>\n\n========================================================================\n\n18. Molecular visualization stuff\n=================================\n\n[ Based on a list from cristy@dupont.com < Cristy > , which asked for\n systems for displaying Molecular Dynamics, MD for short ]\n\nFlex\n----\n  It is a public domain package written by Michael Pique, at The Scripps\n  Research Institute, La Jolla, CA. Flex is stored as a compressed,\n  tar'ed archive (about 3.4MB) at perutz.scripps.edu [137.131.152.27], in\n  pub/flex. It displays molecular models and MD trajectories.\n\nMacMolecule\n-----------\n  (for Macintosh). I searched with Archie, and the most\n  promising place is sumex-aim.stanford.edu (info-mac/app, and\n  info-mac/art/qt for a demo)\n\nMD-DISPLAY\n----------\n  Runs on SGI machines. Call Terry Lybrand (lybrand@milton.u.washington.edu).\n\nXtalView\n--------\n  It is a crystallography package that does visualize molecules and much more.\n  It uses the XView toolkit.\n  Call Duncan McRee <dem@scripps.edu>\n\nlandman@hal.physics.wayne.edu:\n-----------------------------\n  I am writing my own visualization code right now.  I look at MD output\n  (a specific format, easy to alter for the subroutine) on PC's.  My\n  program has hooks into GKS.  If your friend has access to Phigs for X\n  (PEX) and fortran bindings, I would be happy to share my evolving code\n  (free of charge).  Right now it can display supercells of up to 65\n  atoms (easy to change), and up to 100 time steps, drawing nearest\n  neighbor bonds between 2 defining nn radii.  It works acceptably fast\n  on a 10Mhz 286.\n\nicsg0001@caesar.cs.montana.edu:\n------------------------------\n  I did a project on Molecular Visualization for my Master's Thesis, using\n  UNIX/X11/Motif which generates a simple point and space-filling model.\n\nKGNGRAF\n-------\n\nKGNGRAF is part of MOTECC-91. Look on malena.crs4.it (156.148.7.12),\nin pub/motecc.\n\nmotecc.info.txt          Information about MOTECC-91 in plain ascii format.\n----------------------------------------------------------------------------\nmotecc.info.troff        Information about MOTECC-91 in troff format.\nmotecc.form.troff        MOTECC-91 order form in troff format.\nmotecc.license.troff     MOTECC-91 license agreement in troff format.\n----------------------------------------------------------------------------\nmotecc.info.ps           Information about MOTECC-91 in PostScript format.\nmotecc.form.ps           MOTECC-91 order form in PostScript format.\nmotecc.license.ps        MOTECC-91 license agreement in PostScript format.\n\n\nditolla@itnsg1.cineca.it:\n------------------------\n  I'm working on molecular dynamic too.  A friend of mine and I have\n\n  developed a program to display an MD run dynamically on Silicon\n  Graphics.  We are working to improve it, but it doesn't work under X,\n  we are using the graphi. lib. of the Silicon Gr. because they are much\n  faster then X.  When we'll end it we'll post on the news info about\n  where to get it with ftp. (Will be free software).\n\nXBall V2.0\n----------\n  Written by David Nedde. Call daven@maxine.wpi.edu.\n\nXMol\n----\n  An X Window System program that uses OSF/Motif  for  the\n  display and  analysis  of  molecular  model data.  Data from several\n  common file formats can be read and written; current formats include:\n  Alchemy, CHEMLAB-II, Gaussian, MOLSIM, MOPAC, PDB, and MSCI's XYZ\n  format (which has been designed  for  simplicity  in  translating to\n  and from other formats). XMol also allows for conversion between\n  several of these formats.\n  Xmol is available at ftp.msc.edu. Read pub/xmol/README for\n  further details.\n\nINSIGHT II\n----------\n  from BIOSYM Technologies Inc.\n\nSCARECROW\n---------\n  The program has been published in J. Molecular Graphics 10\n  (1992) 33. The program can analyze and display CHARMM, DISCOVER, YASP\n  and MUMOD trajectories. The program package contains also software for\n  the generation of probe surfaces, proton affinity\n  surfaces and molecular orbitals from an extended Huckel program.\n  It works on Silicon Graphics machines.\n  Contact Leif Laaksonen <Leif.Laaksonen@csc.fi or laaksone@csc.fi>\n\nMULTI\n-----\nns.niehs.nih.gov [157.98.8.8] : /pub - MULTI 3.0 (Multi-Process\n\t\tMolecular Modeling Suite)\n\n+MindTool\n+--------\n+  It runs under SunView, and requires a fortran compiler and Sun's CGI\n+  libraries. MindTool is a tool  provided  for  the  interactive  graphic\n+  manipulation  of  molecules  and  atoms. Currently, up to 10,000\n+  atoms may be input.\n+  Available via anonymous FTP, at rani.chem.yale.edu, directory\n+  /pub/MindTool ( Check with Archie for other  sites if that's too far )\n\n[ I would also suggest looking at least in SGI's Applications Directory.\n It contains many more packages - nfotis ]\n\n===========================================================================\n\n19. GIS (Geographical Information Systems software)\n===================================================\n\nGRASS\n-----\n  (Geographic Resource Analysis Support System) of the US Army\n  Construction Engineering Research Lab (CERL). It is a popular geographic and\n  remote sensing image processing package. Many may think of GRASS as a\n  Geographic Information System rather than an Image Processing package,\n  although it is reported to have significant image processing\n  capabilities.\n\n  Feature Descriptions\n\n  I use GRASS  because it's public domain and can be obtained through the\n  internet for free.  GRASS runs in Unix and is written in C.  The source\n  code can be obtained through an anonymous ftp from the Office of Grass\n  Integration.  You then compile the source code for your machine, using\n  scripts provided with GRASS.  I would recommend GRASS for someone who\n  already has a workstation and is on a limited budget. GRASS is not very\n  user-friendly, compared to Macintosh software.\" A first review  of\n  overview documentation indicates that it looks useful and has some pixel\n  resampling functions not in other packages plus good general purpose\n  image enhancement routines (fft). Kelly Maurice at Vexcel Corp. in\n  Boulder, CO is a primary user of GRASS .  This gentleman has used the\n  GRASS software and developed multi-spectral (238 bands ??) volumetric\n  rendering, full color, on Suns and Stardents. It was a really effective\n  interface.  Vexcel Corp. currently has a contract to map part of Venus\n  and convert the Magellan radar data into contour maps. You can call them\n  at (303) 444-0094 or email care of greg@vexcel.com 192.92.90.68\n\n  Host Configuration Requirements\n\n  If you are willing to run A/UX you could install GRASS   on a Macintosh\n  which has significant image analysis and import capabilities for\n  satellite data. GRASS  is public-domain, and can run on a high-end PC\n  under UNIX. It is raster-based, has some image-processing capability,\n  and can display vector data (but analysis must be done in the raster\n  environment). I have used GRASS V.3 on a SUN workstation and found it\n  easy to use. It is best, of course, for data that are well represented\n  in raster (grid-cell) form.\n\n  Availability\n\n  CERL's Office of Grass Integration (OGI)  maintains an ftp server:\n  moon.cecer.army.mil (129.229.20.254).\n\n  Mail regarding this site should be addressed to\n  grass-ftp-admin@moon.cecer.army.mil.\n\n  This location will be the new \"canonical\" source for GRASS software, as\n  well as bug fixes, contributed sources, documentation, and other files.\n  This FTP server also supports dynamic compression and uncompression and\n  \"tar\" archiving of files.  A feature attraction of the server is John\n  Parks' GRASS tutorial.  Because the manual is still in beta-test stage,\n  John requests that people only acquire it if they are willing to review\n  it and mail him comments/corrections. The OGI is not currently\n  maintaining this document, so all correspondence about it should be\n  directed to grassx@tang.uark.edu\n\n  Support\n\n  Listserv mailing lists:\n\n  grassu-list@amber.cecer.army.mil (for GRASS users; application-level\n  questions, support concerns, miscellaneous questions, etc) Send\n  subscribe commands to grassu-request@amber.cecer.army.mil.\n\n  grassp-list@amber.cecer.army.mil (for GRASS programmers; system-level\n  questions and tips, tricks, and techniques of design and implementation\n  of GRASS applications) Send subscribe commands to\n  grassp-request@amber.cecer.army.mil.\n\n  Both lists are maintained by the Office of Grass Integration (subset of\n  the Army Corps of Engineers Construction Engineering Research Lab in\n  Champaign, IL). The OGI is providing the lists as a service to the\n  community; while OGI and CERL employees will participate in the lists,\n  we can make no claim as to content or veracity of messages that pass\n  through the list.  If you have questions, problems, or comments, send\n  E-mail to lists-owner@amber.cecer.army.mil and a human will respond.\n\nMicrostation Imager\n-------------------\n  Intergraph (based in Huntsville Alabama) sells a wide range of GIS\n  software/hardware. Microstation is a base  graphics package that Imager\n  sits on top of. Imager is basically an  image processing package with a\n  heavy GIS/remote sensing flavor.\n\n  Feature Description\n\n  Basic geometry manipulations: flip, mirror, rotate, generalized affine.\n  Rectification: Affine, 2nd, 3rd, 4th and 5th order models as well as a\n  projective model (warp an image to a vector map or to another image).\n  RGB to IHS and IHS to RGB conversion.  Principal component analysis.\n  Classification: K-means and isodata.  Fourier Xforms: Forward, filtering\n  and reverse.  Filters: High pass, low pass, edge enhancing, median,\n  generic.  Complex Histogram/Contrast control.  Layer Controller: manages\n  up to 64 images at a time -- user can extract single bands from a 3 band\n  image or create color images by combining various individual bands, etc.\n\n  The package is designed for a remote sensing application (it can handle\n  VERY LARGE images) and there is all kinds of other software available\n  for GIS applications.\n  Host Configuration Requirements\n\n  It runs on Intergraph Workstations (a Unix machine similar to a Sun)\n  though there  were rumors (there are always rumors) that the software\n  would be  ported to PC and possibly a Sun environment.\n\nPCI\n---\n  A company called PCI, Inc., out of Richmond Hill, Ontario, Canada, makes\n  an array of software utilities for processing, manipulation, and use of\n  remote sensing data in eight or ten different \"industry standard\"\n  formats: LGSOWG, BSQ, LANDSAT, and a couple of others whose titles I\n  forget.  The software is available in versions for MS-DOS, Unix\n  workstations (among them HP, Sun, and IBM), and VMS, and quite possibly\n  other platforms by now.  I use the VMS version.\n\n  The \"PCI software\" consists of several classes/groups/packages of\n  utilities, grouped by function but all operating on a common \"PCI\n  database\" disk file.  The \"Tape I/O\" package is a set of utility\n  programs which read from the various remote-sensing industry tape\n  formats INTO, or write those formats out FROM, the \"PCI database\" file;\n  this is the only package I use or know much about.  Other packages can\n  display data from the PCI database to one or another of several\n  PCI-supported third-party color displays, output numeric or bitmap\n  representation of image data to an attached printer, e.g. an Epson-type\n  dot-matrix graphics printer.  You might be more spe- cifically\n  interested in the mathematical operations package: histo- gram and\n  Fourier analysis, equalization, user-specified operations (e.g.\n  \"multiply channel 1 by 3, add channel 2, and store as channel 5\"), and\n  God only knows what all else -- there's a LOT.  I don't have and don't\n  use these, so can't say much about them; you only buy the packages your\n  particular application/interest calls for.\n\n  Each utility is controlled by from one to eight \"parameters,\" read from\n  a common \"parameter file\" which must be (in VMS anyway) in your \"default\n  directory.\"  Some utilities will share parameters and use the same\n  parameter for a different purpose, so it can get a bit confusing setting\n  up a series of operations.  The standard PCI environment contains a\n  scripting language very similar to IBM-PC BASIC, but which allows you to\n  automate the process of setting up parameters for a common, complicated,\n  lengthy or difficult series of utility executions.  (In VMS I can also\n  invoke utilities independently from a DCL command procedure.)  There's\n  also an optional programming library which allows you to write compiled\n  language programs which can interface with (read from/write to) the PCI\n  data structures (database file, parameter file).\n\n  The PCI software is designed specifically for remote-sensing images, but\n  requires such a level of operator expertise that, once you reach the\n  level where you can handle r-s images, you can figure out ways to handle\n  a few other things as well.  For instance, the Tape I/O package offers a\n  utility for reading headerless multi-band (what Adobe PhotoShop on the\n  Macintosh calls \"raw\") data from tape, in a number of different\n  \"interleave\" orders. This turns out to be ideal for manipulating the\n  graphic-arts industry's \"CT2T\" format, would probably (I haven't tried)\n  handle Targa, and so on. Above all, however, you HAVE TO KNOW WHAT\n  YOU'RE DOING or you can screw up to the Nth degree and have to start\n  over.  It's worth noting that the PCI \"database\" file is designed to\n  contain not only \"raster\" (image) data, but vectors (for overlaying map\n  information entered via digitizing table), land-use, and all manner of\n  other information (I observe that a remote-sensing image tape often\n  contains all manner of information about the spectral bands, latitude,\n  longitude, time, date, etc. of the original satellite pass; all of this\n  can go into the PCI \"database\").\n\n  I _believe_ that on workstations the built-in display is used.  On VAX\n  systems OTHER than workstations PCI supports only a couple of specific\n  third-party display systems (the name Gould/Deanza seems to come to\n  mind).  One of MY personal workarounds was a display program which would\n  display directly from a PCI \"database\" file to a Peritek VCT-Q (Q-bus\n  24-bit DirectColor) display subsystem.  PCI software COULD be \"overkill\"\n  in your case; it seems designed for the very \"high end\"\n  applications/users, i.e. those for whom a Mac/PC largely doesn't suffice\n  (although as you know the gap is getting smaller all the time).  It's\n  probably no coincidence that PCI is located in Canada, a country which\n  does a LOT of its land/resource management via remote sensing; I believe\n  the Canadian government uses PCI software for some of its work in these\n  areas.\n\nSPAM (Spectral Analysis Manager)\n--------------------------------\n  Back in 1985 JPL developed something called SPAM (Spectral Analysis\n  Manager) which got a fair amount of use at the time.  That was designed\n  for Airborne Imaging Spectrometer imagery (byte data, <= 256 pixels\n  across by <= 512 lines by <= 256 bands); a modified version has since\n  been developed for AVIRIS (Airborne VIsual and InfraRed Imaging\n  Spectrometer) which uses much larger images.\n\n  Spam does none of these things (rectification, classification, PC and\n  IHS transformations, filtering, contrast enhancement, overlays).\n  Actually, it does limited filtering and contrast enhancement\n  (stretching).  Spam is aimed at spectral identification and clustering.\n\n  The original Spam uses X or SunView to display.  The AVIRIS version may\n  require VICAR, an executive based on TAE, and may also require a frame\n  buffer.  I can refer you to people if you're interested.  PCW requires X\n  for display.\n\nMAP II\n------\n  Among the Mac GIS systems, MAP II is distributed by John Wiley.\n\nCLRview\n-------\n  CLRview is a 3-dimensional visualization program designed to exploit\n  the real-time capabilities of Silicon Graphics IRIS computers.\n\n  This program is designed to provide a core set of tools to aid in the\n  visualization of information from CAD and GIS sources.  It supports\n  the integration of many common but disperate data sources such as DXF,\n  TIN, DEM, Lattices, and Arc/Info Coverages among others.\n\n  CLRview can be obtained from explorer.dgp.utoronto.ca (128.100.1.129) \n  in the directory pub/sgi/clrview.\n\n  Contact:\n  Rodney Hoinkes\n  Head of Design Applications\n  Centre for Landscape Research\n  University of Toronto\n  Tel:   (416) 978-7197\n  Email: rodney@dgp.utoronto.ca\n\n==========================================================================\n\nEnd of Resource Listing\n-- \nNick (Nikolaos) Fotis         National Technical Univ. of Athens, Greece\nHOME: 16 Esperidon St.,       InterNet : nfotis@theseas.ntua.gr\n      Halandri, GR - 152 32   UUCP:    mcsun!ariadne!theseas!nfotis\n      Athens, GREECE          FAX: (+30 1) 77 84 578\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8331, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: nagel@ucsu.Colorado.EDU (Kurt Nagel)\nSubject: Re: AMI Pro 3.0 and equation mode\nNntp-Posting-Host: fido.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 37\n\nnagel@ucsu.Colorado.EDU (Kurt Nagel) writes:\n\n>Hi,\n\n>\tI'm having a problem with AMIPro when writing equations.  If the\n>equation extends past a certain point on a line, the whole thing disappears.\n>If I then try to delete the equation or cursor beyond the equation, AMI\n>goes nuts.  The line counter at the bottom of the screen increments\n>repeatedly and the only way out is to CTRL-ATL-DEL.  If I have been\n>unfortunate enough to save a document with one of these screwed up\n>equations, the document is basically trashed.  (although I have been\n>able to fix them by going into an ascii editor and deleteing large\n>chunks of the document)\n\n>\tHas anyone else experienced this?  Does Lotus know about it\n>and or have a patch???????.\n\n>Thanks in advance,\n\n>Kurt\n>nagel@fido.colorado.edu\n\nI contacted Lotus about this problem today.  It has been reported previously\nand there is a fix.  Apparantly the problem only occurs when TAB characters\nare used immediately preceding the equation frame.  The work around when\nequations are expected to touch the right margin is to delete at least one\npreceding TAB and use SPACE to align the frame (or use set frame where\nplaced w/no text wrap around).  Unforutnately, once the page run-on has\noccured you are hosed. So the moral of the story is use only SPACE characters\nto align equation frames.\n\nHope this helps the rest of you who have already contacted me with this \nproblem.\n\nKurt\nnagel@fido.colorado.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.396+0000", "event": "documents", "entityId": 8332, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman 02/14 \nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nKeywords: bmp, wallpaper\nLines: 958\n\n\n------------ Part 2 of 14 ------------\nM0./CXT!)27M)X^-)X^/CBN/C24E[X^.*X^/CX^.*X^,RBN.*,HKC,GOC,N-[\nMBC)[XS(R6'OC3C)[>XJ*,EA.BN>*>S+GBE@R6(KSYXKSBHI86$Y.Y^<R\\_-8\nMY_/SYS*/CT[S\\X_S3N>/C^>/CX_S\\UA.Y_/SC_./C_-8C_./C_/GCX^/Y_./\nM\\X_SCX^/\\_./C_/S\\_./\\X^/\\X^/CX_SCX^/C_./CX^/\\X^/C_./CX^/CX^/\nM\\X^OC_./\\X^/C_./CX_SCX_S\\X^/\\_./CX^/\\X_SCX_SCX^/CX^/CX^/C_./\nMCX^/CX_SCX^/C_./CX\\ORI&1RI$Z0<K*D2\\O.MC8.CK*.D$ZRCK*V#I!V,IM\nM;<K*.CK*;3HZ0=C8V&UMV,K*RCHZ.MC8;7/*RG-!RCK8.LIS.FW8V#K*;3I!\nM.LHZ.CHO+T$Z.CK*+SIMRCK8+T'*.CI!V,K*V#HOD9&1.CHO+SHZ08;*.CHZ\nM:9$ZAI$Z+SHZAD$ORI$Z.B\\ZQR^&:6EIACK'D9&1+SHZQY&&D9&1:2^1:2_'\nMAL<OQR_'D<>1QX;'D89IQ\\>1D;^&:<?'QY&&QY$U:6G'QVF1:<=I:89IAK_'\nMQ\\?'Q\\?'QY&1O[^&QX:1AI''QR^&+X;':2\\O:<=IQVG'AFG'D8:1D<=I.B^1\nM:9%I+X8Z:6E!+X8ZRI$Z.LHOAH8Z.CHO+Y&109'8.CHZ.CK*+\\K8V,K*<\\K8\nM<]C*<VW803IS<Y9S<\\K*;<IS/-C*/)9S<]AS/#QMV#R6V-AS;99S<Y:6/#P\\\nM/$4\\ECQ%/'-ST3P\\/#Q%<SS1T3P\\<]'1ED66W='1/#S=T471W=W1/#Q%/-W=\nM13Q%W=U%13P\\T45%/-'=W=W11=W=W3QWW471W=U%=SS1/#P\\W=%%T3P\\13S1\nMT=%%W45%1=W=W=T\\T=W=13Q%/-W=T=W=/$7113P\\T3P\\144\\EM%%W3Q%ED5%\nM/-$\\T=U%/)9%/);1W3S=W3S1ED5%/-&6<SP\\13QSW99SEG/11471<SP\\144\\\nM/#P\\/$5S/-%%/-%%1=$\\/$4\\/-&6<T4\\/#Q%/)9S/-$\\<SS1W7-SEM%S/);1\nM/-%%T3QS1=&6W3S1EM%%1=%%1=W=T3S=/#Q%1=$\\W3R6W=W1/$71/$7=/-V6\nMT=U%1=%%/-T\\W='1/#S=W7?=W=W=144\\W=T\\W=W1W3Q%T4711=%W=W?==T7=\nMA7=WT7=WA45WW=W=T7?=A86%W=U`W7=W=W?==W=`A85)=]UW27=)W85WA4!`\nMX^-)=TE`XTF%285)24E)24!)2>/C2>-`24GC2>/CXTGCX^-[27OCX^.*XXKC\nMBN/CX^.*BGN*BGOCBC).>WOCBN.*BHJ*BGN*,HHRBHJ*3DY[YTZ*YS).\\T[S\nM6/.*\\S).BEB*BHKS\\TY8\\T[S3O/SCU@R3N>/3H_S\\_-83ECS3N>/\\_-.\\X]8\nM\\X_S\\_./C_/S\\_/SCX^/6//S\\_/SY_./\\_./C_./CX^/C_./C_./C_/SC_./\nMCX^/\\X_SCX^/CX^/\\_/S\\_./CX^/\\X^/CX^/CX^/CX^/CX_SC_./\\X^/\\X^/\nMCX^/CX^/CX_S\\X_SCX^/\\X^/\\X_SC_./\\X^/CX\\ZRH8ZRLHORLHZ+SK8.MC8\nM.D$ORB\\OV#HZRB]M.MC*.CIM.MC8V#K*V-@Z06W*.G/8.MAS;=@ZRCK*RMAS\nM.CHZ.CHZ.LIS;=@Z.M@ZRCIM<\\K8<SHZRCK*.LHZV#K*.CK8.MC*RCHORCK*\nMV#I!.CJ1V$'*RCHORCJ1.LK*D9'*.H8Z:9$Z.FEIRI$ZD9$OD9%I+X8OQVDZ\nM.B\\Z.L<ZQVDZQ\\<O.L?'D6EIQ\\>1D2\\ZD2^1:6G'QY''D<>1Q\\<OQ\\=ID<>1\nMQY&&D<>_Q[^1Q\\?'QY''Q\\=IQR]I:<>1+Y&1+Y&&QY$O:6EID<?'AFDOQ\\?'\nMQY%I.CIID<=IQX:&Q\\<OD9$Z.H:1.H9IAI&1.CHZ04$Z.CJ&+X8ZD=C*D3HZ\nMV#K8RCHZ.LK8.FW*03K8RG/8.D%!<W-SRMAM<\\H\\RG-M;<ISV',\\<W/8;3P\\\nM/-AM/#P\\17-S<SQSED5%144\\<SP\\1=%%<W/113P\\/'/1/#QSW3S1/-$\\1=W1\nMT=U%W471/-W=/-W1/$71T3P\\ECP\\13P\\1=W=T3Q%/#Q%/-$\\/-'1/-W=W471\nMW3S=1=U%1='=W=$\\W=U%1='=14711=%%1='1144\\/-'1/$5%W='=T3P\\/-'=\nMT3Q%W3R6/);=ECQ%/#S1/#P\\13R6/'/=/#P\\W9;=13R6/-T\\/-%%1=U%T45%\nMW3P\\W3S1/#S1/)9%W45%144\\T7,\\ED66144\\13S1T3S1T98\\1=$\\/-%S/$5%\nM/#S113P\\1='=/#P\\/#S1ED66T='=/#QS/#R6T471/$7=/$5%/'/=/#S=/$5%\nM/-&6W='=W45%T471T3S=T45%T3P\\W=W=W=W=1=W=W=%%/#S=1=T\\W7=W/-T\\\nM145%/$7==]T\\/'=WT=U%=]%%1=W=W=U%1=UWW7>%T7>%=W>%=]'=0(5WA4EW\nM=W=)W85W27=)0$G=285W=TEWA>-W24GC24!`XW=WA2-`285)0.-)XTGC>^/C\nMXWM)XXI)X^-)>^.*28J*>TGC>^,RXWN*X^.*BD[C,GM[,DXRBN/CBHKC3C**\nM,HJ*,E@R,HKGBDZ*6(I.BC)8BN?G,HI.BHI.,D[S6$Y.YUCSYT[SC^?S\\X_S\nM\\UB/\\UA.CX]8\\TY8C^>/C_/GC^?S\\X_G\\^?SY_./\\X_S\\_/S\\_./\\X^/\\X^/\nMCX_SC_./CX^/\\_/SCX_S\\X_SCX^/\\X_SCX^/CX_SCX^/CX^/CX^/CX^/CX^/\nM\\_./\\X^/\\X^/CX^/C_./CX^/C_./CX^/\\X^/C_/SC_./\\_./CX^/CX^/C_,Z\nM.B\\OD<HZ.CHZRCHZ.CK*V#HORCHZV#K*V#IM.LK8;3K8;=C*.MC*RCHZRLI!\nM;6W*.G,Z.CK*RLHZ;3HZ.LHZRCHZRLK8V-C*V&W8.LIM.LHZRMAM.LK*+SHO\nM.M@O;<HZRM@ZV\"\\Z+\\K*.MC*RD$Z+Y$Z02\\Z.I&1.LHZRLK*ALHO+VG*.I$Z\nM.B\\OD3J&.FDOD88O:9$Z.CII:<<Z.I$OQ\\>&QR^1QVG'AL<O:2\\OD8:1D8:1\nM+R]IQY''AL>_D<<O.L?'QVEIO\\>1:6EI:<=IQ\\>&D2_'AL?':2_'Q\\=IQ\\>_\nM:6G':6DOQ\\=IQX;'AFEID6G'+SHZQ\\=IQVG'+\\=IAFF&.CHZ:3HZD6EI:9&1\nM.I$O.CJ1.LJ1+R^1D3J1+SJ1.M@Z+]@Z+]AM.CHZ0=C8V$'*.LK8V,K*V&W*\nMV'.6;=ASRCP\\V-C8<W/*;3QS/#P\\V#P\\17,\\/#P\\/);8/'-%<W-%/#Q%145%\nM/#P\\/$4\\/$4\\<SP\\13R6T7-%T3P\\/#S1W3Q%147=/-$\\T=U%/-'=W47=13S=\nMW=W11=T\\/$7=W=W=144\\1='=145%13S=T='=W3S1W3P\\13P\\W=W113S1W=$\\\nMT=$\\/-'1T=$\\144\\1=$\\/-'=T=$\\EMW11='=W44\\T47=T3P\\147=T=T\\/#P\\\nMW=W1EM$\\ECS1T=T\\/#Q%13S1/#P\\/-%%W3P\\W=T\\/#S117-%/-US/-W1T3S1\nM145%W9;=T471W47=W47=<SQ%13P\\W7,\\T45%W=$\\/-$\\/-T\\198\\19;=W=%%\nM/'/11471/#P\\T=W1T=$\\ED71/);1/#S=W3S=T3P\\W3S=/#S=/#R6145%/-W1\nM/-%%/-W1W='=W=%%=SQ%T=UW17?=147=W='=1=%%145WT7?=W=UWT=&%W=V%\nM=]'=W7?==]U`A7=W=T!W=T!WW7>%=T#=2=V%W4EWW7=WXTEW24#CXX5)=X7C\nM0$E)=^/C2>-`2>/C24GC24E)24E`XTGC>XKC2>/C2>.*XXJ*X^/CX^.*>XJ*\nMBC+C>^.*,N-[X^-[BHHR>^-[>S**BHJ*>XI.BDY.>XKG\\^=8YXJ*3E@RBN?G\nM6/-.6$[G6%CS6#+SY^=.,O./\\_-86$Y.CX^/\\_./\\_./\\_/S\\X_SCX]8CX^/\nM6//SCX^/CX_GCX^/C_./C_/SYX^/C_/GCX^/CX_SC_/SCX_SCX^/\\X_S\\X^/\nM\\_./\\_/SC_./CX^/CX^/CX_SCX^/CX^/CX^/CX^/CX^/CX^/\\X^/CX^/\\X_S\nM\\X^/C_./CX^/\\_./CX]!.I$ZD3HO.D$OV,J1.CK*RCI!D<HZ.CHZRCI!RFW*\nM.M@Z+\\K8.MC8<SK*.LK8.CK*V-AM.D%S;<HZ<VUM;<K8.FW*06W8<\\IS<\\K*\nMRCK*V&W8RM@ZRLK*.LHZ.LK8.CI!RLHZRLK*;<J1.I$ORCHZV\"_*RD'*.I'*\nM+SK*D<HOD9$ZD2_*+VDZ.I$Z.B\\ORI$O.CK*.I&&.CHZ02]I:6DZ+Y&1+SJ1\nMQY&1AI&&:6G'QR_':6F1.H8O:2_':3J&D2^1AFDZAH:1AL<OQ\\<OQR_'AB^&\nMD<>&:2^&D<?'Q\\>1QVDO.FDO+SJ1QVEI:<=I:6G'D89IQX;'QY$Z+Y%I.I%I\nM.H9I:3J1.FDZ:88O02^1.I$ZRLK*.B\\ZD9'*0<HZRLK*RMC8.M@Z.CIMRM@Z\nMV#HZ<]@Z;3K8.G/*V-B6.LISRLK8V'/8;6T\\RCR6V-C8V'-M/#P\\V#R6<T5%\nMV'-%<Y8\\<W.6/&US<SP\\13Q%T45SEI:6ED5%<T5S/$5S<SP\\13R6<Y;113Q%\nM/-UST3P\\1=&6W=$\\W=U%/-T\\/-'11=%%/$4\\13Q%/-$\\W47=/#P\\W=T\\/-T\\\nMT3S1W3P\\W=$\\/#P\\T3Q%13Q%/#P\\W44\\T3S=/);=/-$\\W='=/#S=1='1/$4\\\nM1=W=1=%%/#P\\T3S=/#P\\1=W=/#S1/#P\\/$7113S=1='=/$4\\/$71W=U%/-%%\nM/$71W47=W=%%1=%%1=T\\W3S=147=/-W1W=T\\W=U%EMW=W3S=T=$\\W3S=W=T\\\nM/#S=/$4\\/$4\\W3P\\13S1W=T\\/#Q%T98\\T3R6T471/-'1/-W=ECS=13S1EMT\\\nMW=W11='=/#S11='1T47=/#S=W3S==SS=/-T\\13QW1=T\\=SP\\/-'==T5WW7=W\nM=]$\\/-W==W?1=]W==]W=187==X7=0(4CW86%=W?=W85WA4F%=T!`=X5WA85)\nM=TE`=TE)A4E)24\"%2>-`=TE)A87CA>-)X^/C0$GC24![27OC27OC27M[X^-)\nM28J*X^/CBN/CBGOCBHJ*XS)[BN-.,C+CX^-.BDZ*BN.*XUA86%A8,C**6(I[\nM,C).BC**\\U@R,EA83N>*,O/SY^?S\\S+G3C).,N=.,ECS6//SC_/G\\_-.\\T[S\nM\\UCSC^=.YUCGC_/G\\X^/\\X_SC_/SY_/S\\_./\\X^/C^>/C_./CX^/\\X_SCX^/\nMC_./CX^/CX^/\\X^/\\X^/CX^/\\X_SCX^/CX^/C_./C_./\\X_S\\_/SC_./CX^/\nMCX^/CX_S\\_./C_./CX^/C_./CX_SCX^/CX_SCX\\ZD3HZ.CHZAB\\Z.LHZ+Y$Z\nM+SHZV-@ZD2_*+SI!0=C*+]@ORLK*RCK8;<I!.CK8<SHZRFTZRFTZ;3K8RCIS\nM<W-MRG-!V&W*V,HZV-AM0<K*<VTZ;3K*.MC*.LHZV#HZV,IM;<K8V$'*.MC8\nMRLHZ.LK8D<HZ.CK8+SK*+SHZRCHO.I&1.I$Z.B\\O+R^1.CJ1+\\K*D3K*03II\nM.LJ&AB]I:9$Z.H;'.CHZD9&1.I&1.FDZQX;'D9$ZAI$Z.FDOD<>1QSK'D<=I\nMD<=ID<>&QY&1:3IIAL?'QY%I+\\=IACHOD6EI:3K'Q\\?'+SK'AFDOQ\\<OD2]I\nMQVDZ.I$OD9$Z.FDZAI$ZD3J1.H:1:3HOD3HOAH;*D3HORLK*09&1+SJ1RLHZ\nMD3K*RLK8V#K8.B\\ZRFW8V-@OV-C*<\\HZ07/8.CK*RMC*RMC8RD'8RLK*RFT\\\nM<\\IMV#S8V&W8EG,\\/#P\\/$5S/-A%13P\\<W-M<T5M145ST7,\\/#Q%T3P\\<W,\\\nM/$5S17-S1='113Q%W3S1T44\\/#Q%/#S1/#P\\W=W=/-%%1=W1/$71EM'=ECP\\\nMT3R6T=W1/-$\\T=W=/#Q%W='=W4711=U%/$4\\W44\\W3P\\/#P\\145%147=/-T\\\nMT3S1T=T\\/-W1/-W=W='=W3Q%T='1T=$\\W=W=W471T471W=W=W=$\\145%/-W=\nM/$71147=/-$\\T3P\\/-T\\W3P\\T47=W=T\\/-W=W=T\\W47=T4711=$\\1=T\\/-W1\nMT=W1W3S=W=U%147=147=147=T45%/#Q%W=W=T45%/#S=13S1T3S=/-'=EMU%\nM/$4\\T3Q%/-T\\1='=W=U%/-$\\/-T\\147=W45%145%W3P\\W=U%T=U%W45%/-$\\\nMT='=/-UW145%W=W=W7=W147=T3S==]U%1=W=W47==]UW=W=WA87=W7=WW=UW\nMW=%`0$G=W=W=A2-`A4G==W=`24!)A85)=W=`27<C0'=W2>-W0.-`24!`24#C\nMX^,C>TE)24GC24GCX^/CXTGC28I)28J*BHKC>^/CXWOCXWN*XT[CBC+C>S(R\nM>XI8BC)83EB*BHHRBC)[BHI8>T[G3N>*YXHR,HJ*,D[G6.=8\\T[SY^=8BC+S\nMY_/SYX_S6/-8C^?SYUCSY^>/\\_-8\\UCSYUB/6%B/6//S\\X^/CX^/CX_S\\X_S\nMY_./\\X^/\\_/S\\^>/\\X^/CX^/CX_SC_/SCX^/CX_SC_/SC_./C_/S\\X_SC_./\nMCX^/CX^/C_./CX^/C_/S\\X_SC_./C_./\\_./CX^/\\_/S\\X_SCX^/\\X_S\\X_*\nMD9%!.B^1D3J1RI&1.I'*D3K8.CHZ.CHZV\"_8V#HZ.CHZRB_*03HO.LK8;3HZ\nM.LK*.LK8.FW8.CK8RFW8RFW*RLK8RD'*;3K8;4'8RCHZV#K8V#K8RMA!.MA!\nMV&TO;<HZV#IMRM@Z.M@ZRMC*.D'8RLK*RLHZ.D$ORLK*V,K*RCHO.CHZD88Z\nM.H8ORCHO.H;*.I$O+Y$O03II:6DOD6EIACIIACHZ+SHZ.CII.B]ID2\\O:6DZ\nMD6EI.H8ZAB]IQY$Z:9''QVF1:2\\O.I$ZQX;'.CK'QR^1+SJ1.L<ZD6F1Q\\?'\nMD<<Z:88Z:3J1QY$OAB\\Z:89I:<<Z+\\>1:9%ID3HZ.FF1AH9I.CHZRLHZRB_*\nM.CHZ+R\\Z.CHZD2_*D2_*RLHZD<HZ.B_8RCHZ;<K8.CK*V#HZV$$Z;<K8.CHZ\nM<SK*;<K*V'-SRMAMEG-M;=C*/&US/-C*ECP\\;3S8RCS8<VT\\17/8<]@\\/#Q%\nM<SR6/'-S/',\\<SQ%/)8\\17,\\<W-S<VV613S1T7-%<T71144\\/#S1/$5%/#Q%\nM1=T\\/-$\\T=T\\/#P\\EM%%13P\\<]&6W='1ECR6T=$\\W=$\\147=1=&6W47=W99%\nMT=$\\/-W=T3P\\W3Q%W47=13S=W=W=/#S=/-W=W47=W='11=T\\T='=W=U%W3S1\nM147=/$5%W='=W=W=1=T\\/-W=1=W=W45%W=T\\T=U%W44\\W=U%T=W1T=W=T471\nM/#P\\/-W==]W=T3S1/#Q%W3QW145%T=%%1=U%1='=/#S1T3P\\W=%%13P\\/#S1\nMW3P\\/-T\\/#S=/-T\\W4711=T\\T3S1/-T\\/-W1145%/#S=/#P\\/$71W='1W=U%\nMT='113S1T45%/$5%1='=/-'=W=U%/$5%W=W=/$7==]T\\/'?=W471=]U%=T5%\nM1=%WA=%WW7?==X71W87=T85`=W?=W=U`=W<CW86%A=W=24F%=X6%W4!W=TE)\nM=W=WUX7C=^-)24\"%0$GCXTGCA>/CXT#CXTGC2>-)XWOCXTGCXTE[X^-[BGOC\nM>^.*X^/CXXKC,C**>^.*BHKCBDZ*>XKC,C**XXHR3DZ*BGN*3C**6(I8YXI.\nM\\TXR\\XKG6/-83N>*6(KSYUCG,O-83N?G\\X_S\\_-8\\TZ/CUCS6/-8YX^/YX_S\nMYX_S\\X_S6/./C^?SY^>/C_/G\\X_G\\^?SY^?GCX_SCX_SC^>/C_./C_/S\\X_S\nMCX_SYX_S\\X^/\\X_SCX_SC_./\\X_S\\X^/C_/G\\X_SCX_S\\X_SCX_S\\X^/CX_S\nMC^>/\\X^/CX^/YX^/\\X\\Z:3HZACHO.FF1+VDZD3HO.B_*.CHZ.I'*+SJ1RI'*\nM.CHZ.CHZV,K8.MC*+\\HZ.LHZ.MAMRD%M.LHZ<SK8V#K*V-C*V#HZV#IMRLHZ\nMRLHZV#HZ.LHZ03K*.LHZ.D%!RMC*.CK*V-@ZRCHZV$'8RM@ZV\"\\Z.LHZV)$O\nMV-C*02]!+R_*RCK*.B^1D9&&RLJ1AD$O+Y$O.CJ1.LJ1D6DOD88ZD3HZD3II\nM:3HZACJ1D3K'D88OD9%IQY%IACII+SJ&D9%ID8:1Q\\>&ACJ&Q\\<O:9%I.L>1\nMD6F&Q\\>&+SJ&QY%IAI&1+R_'QY%I.CK'.B]I.FEI.FDZ:<>1:<<OAH8ZQSJ1\nM.CHZ:3J1:9&1ACHZD88ZD88O+R\\ZRCJ1+SJ1+Y$ZV#HZV#K*V,HZ03K*V,HZ\nM.FTZRCHZ;=C8<\\HZV-C*.CK8;=C*RLISELIS.MAS<\\K8/'-SRG-SV'/*<Y8\\\nM/'-S/#S*<SS8/&US/-AS;=C8ECP\\V'-S17,\\/$5M17,\\145%T3QS/#Q%/'-%\nM/)9S<SP\\<]$\\13Q%/$71/$5%17,\\1=%%ECP\\1=$\\W44\\W9;=<SS1W3S1T=T\\\nM/#Q%/)8\\EMT\\W=W=ECQ%W47=EI8\\/#S1145%/#P\\W45%W3P\\/#S=T3P\\T=U%\nM/-T\\T=T\\W=W11=%%/-%WT=W1W3Q%T3S==W=%/-$\\W=%%W=%%/-UW13S=13P\\\nM13S1T=U%W3S117=W=]'1/$7=1=U%/-%%=SS1W3S1147=17=%W=W==SS1W3S1\nMT47==SS1=T7=1=W=13Q%W=%W1=W1/$4\\T47=1=U%1='=W45%145%/$7=/$7=\nMT3Q%W47=1=W=145%W=T\\/-'113P\\/$7=/#S1/'?=T3S1/-%%13S=T3S=/$7=\nM1='=147=W3Q%=]U%=]W1=W?1=T5%T7=%=W?1T87=W=UW=W=WA87==W?=W=U`\nM=W?=A86%=W>%A7>%=TE)A4!`0..%A4E)0.-)27>%2>/CXT#CXTE`X^-)24GC\nMXT\"*27M)X^/7X^-[>^-)XTGCBGLRBHKC>XHRX^,RX^,R,HI[>S)[BHHRBC(R\nM,C(R>XJ*BC)[BDY.6$XRBO.*6/,R3C+GYS(R6%A8,N?G,EA86.=8,O/GYX]8\nM3DY8\\^?S6//S\\_/S6.>/6(_GC^>/CX_S6.>/\\UB/\\X^/CX_GC_./\\X^/\\X_S\nM\\_/SY^?SCX^/\\X^/CX^/C^>/CX^/C_/SC_./CX_SCX^/CX^/CX_SC_./\\X^/\nMC_./CX_SCX^/CX^/CX_GC_/SCX^/\\_./\\X^/CX_':2_*:6F&08;*.B^1D3HZ\nM.CHORI$O02\\ZV\"\\Z+SHO.MC*.LK*RLHZRM@ORLK*.FTZRLK*RD'*V,HZ<]C*\nM.CIMRCK8RMC*;=C*V#HZV#K8RMC8.LK*RFTZ.MA!.CHZV,K8+]C*RCK*.B_8\nMV,HZRLHORB_*RMC8D9'*.CK8RCJ1.CK8.LK*D9&1+\\J1D3HOD<J1.CK*D2\\Z\nMRCJ1:3K*.LJ&RLHZRD%I:6EIAFEI+VF1.B]I:6G'Q\\<ZD<>1D2\\ZD6DZ:3II\nMD6DOQY$O.CK'Q\\<ZACJ1D9$Z.CHOQVF1.I&1:2^1ACHZD3II+VDZ.FEID6DZ\nM.I%I+R\\O:2]I.B]!:88ORCHO+SK*02\\ORD&&:2\\Z+\\HZRLJ1.LHZD3K8RCK*\nM0<K8.CHO+SHZV,K*.CHZRCK8V-AMRLK8RFTZV-@ZV-C8RLIS;3K*.MC*;=C*\nM<]A!V,K*EG-MV);*V#S*RFUS<\\H\\<Y8\\RLH\\V#S8ELIMV)9S1=AMV);8;=C8\nM<SQMV-A%<SR6/#QMED4\\/#Q%ED66EFU%/$5S17-%1=$\\/$5%<W.6/-%%T3P\\\nMT45%/',\\13R6ED7=/$5S<SR6T7,\\ED7=1=$\\W='1T99S/-'11=W1W3S=T=V6\nMW45%ECS=/$7=T3S=W='1/$4\\1471W=T\\/-T\\/$7=1=W=/-'=W3Q%T='=1=W=\nMW7?1T7=%W=$\\T=T\\W=W1T471W47=17=WT=W=W7?=T7=%=W?1W=U%=]%WW=T\\\nM1=U%W45WT=W==]UW=T7113Q%=]W1W=W1W7<\\=]W1W=%%/-$\\T3Q%T=$\\/-'=\nMW=W=W471/-%%W='1W=W11=%%=]W=1=W11='1/$4\\/#P\\W45%1=W=13S1T=W1\nM/$71W=W=/$7=T3S=T=U%=W=W/'?=/-'=W7=W17=W=]W1T=V%W=U%T47=W=W1\nM1=%WW4!WA86%W='=A4!WA=V%0$EW27=W=T!W24!W=X6%0'=W=^-)2>-)287C\nM24E`X^.%0$GCXTE)XTE)X^-[28KC2>-)BHKCBN-)BDF*2>/CBN/C>XJ*XWN*\nM>^/C,DXRBGOC3HJ*XXKCXUB*BDXRBGN*YS+G>S)86/-8\\S).\\_-.6(KG\\UA8\nM,EA.\\T[S3D[S\\UCS\\^>/6/-.,DY8CX]8\\^?SYUCSYX_SCUB/C_/SCX^/6//S\nM6//S\\X^/C^>/C_-8\\^>/\\_./CX_SCX_G\\_./\\^>/\\X^/CX^/\\X_SC_./C^>/\nM\\_/GYX_S\\_./\\X_GCX^/\\X_SCX^/CX_GC_./\\X^/CX_GC_/G\\_./Y_./\\^<Z\nM.CHZ+X:1D3IIAI$O:9&1:9&109$Z.H8Z+SHZD2\\Z+Y$ZV,HZ+SHO.CK8V\"_*\nM.MB1RLK8V-C*V\"_8RCK*.LHOV,K*;=@ORFW*03K*RCK8RLHOV\"\\O03K*.LHZ\nMV,K*RM@Z06TZRB_*V$'*.CHZ+]C*V,HZ.MB1RCK*.CK*.MC8RCI!RCHZ+R_*\nMRI'*D<J103I!+SI!D3HZ.FDZ+SHZ+X;*:<HO:3HO.LII.FF&:6EI.H9ID9&1\nM+VDZ.B\\Z.CII.FF&AB\\ZD3J1:3J1.H8ZAFEIAFDZ0<>1D6F1.L<ZD3IID6DZ\nMD9''D3HO:6F1+X8Z.B]IAFDZD3J&.CJ&.I$Z.H;*.B_*D8:&AH9IACK*+X:1\nMACHZRLHORCJ1.LHORCK*RD'8+]@ZV-C8RLHO.LIMRB_*0=@ZV-@ZV-C8.CI!\nM;6TZRFTZV,K*;4'*;<K80<K*V-@ZRLJ607/8;7-!ELH\\RI;*RLH\\<]B6V-AS\nM<VT\\V,H\\;=@\\/-@\\V#QS<SS8/#QS<]AM;3Q%145%<]C8V$4\\V#R6;99M/'/1\nM/#P\\16U%;=$\\<]$\\/#QSEG,\\<SR6T=%ST45%/-$\\/-$\\T47=1=US198\\/-U%\nMEG/1<]'=/#QST3R6W=$\\1=T\\W44\\/#S=/-%%T=T\\147=T3S1/#P\\T44\\W=U%\nMT471W=%W1=U%W='1=T711=T\\=]W==]W=17?=W45%=W=WW='=T47=13Q%=W?=\nM145W=W=WW=W=W=%W=]%%=]UWW7=WW7=WW7=WT=UWW471T=W=W=UW=]UW/'=%\nMW7<\\T=%%T47==SQWT=W1T=U%1=U%T3S=W3S=T=W=W='=W7<\\T3S=W44\\W='=\nMW3Q%W3P\\=]W1/-W=147=T=U%W471T3Q%1='=T=U%1=W=147=/-'1W=UW1=%W\nMW3QW1='=W=W=17?=1=W=T=W1W87=W=W1W=%WA=UW=W=W=X5WW=UW0'=W24!W\nM=TE)=W=`=TE)0(7CX^.%=W=`0(7CA>-)X^/CX^/C0./C0./C2>/C>XI)XTE[\nMBN/C>XKCXWOCX^.*BN.*XXJ*XXJ*BGM[,GN*BC+CXS**>TZ*6'M8BGM86%A.\nMYTY.6#**BHI8\\UCS\\XJ*Y^=8\\^?SYT[G3DY.6.<R,H_G\\UA83O/G3H].3O/S\nM3H_GY_-.\\X].YX_SY^?S\\X_SC_./6/-86%B/YX^/CX^/CX_S\\_-8C^?SCX^/\nM\\^?S\\X_S\\_/G\\^>/CUB/\\_./CUB/C_./C^>/CX_S\\_./\\X_S\\X_S\\^>/\\_./\nMC^?S\\_./CX_G\\X^/C^?'.B_'D<=I+SHZD3J&AI&1RB\\ZD<HORI$OAI&&.CJ1\nM.CK*D3HZD2\\ZRB\\Z.B^1.CHO+SK*RM@Z.B_8RM@ZV,K*RB]MV#HZV,HZRM@Z\nMV\"\\Z.B_8RFTZRCHZ.FU!V,HZRLHZ.LHZ04$ORCHO+SK8+\\I!RLI!02]!RCHZ\nMD=C809$ZRLK*RLHZRI'*D<K8.D$ORLHZ.H:1RCK*RD$OD9&104&1.I$Z.LHO\nM.I$O.B\\Z:3HOAI$ZAFF&.CJ103I!+Y$Z.CII.LHORFDZ.I$O+X9I:3HZ.CI!\nMRFDZACHZ:9'*ACJ1D9$Z:2\\Z.I&1RCJ1.CHZ.B\\ZD9%I.H:1.FDZD3HZ03II\nMACHZ.I%!RI&1RCHZD2^1D3I!+Y'*0=@ZD3K8+\\J1.MA!09'*+\\K8+]@ORCJ1\nM+SHZRCK8RM@Z.CK803HZRLIS;<K8<SK8<\\HZRLHZ.M@Z.CK8<T%SRG/*RCK*\nMRCISED$\\RCS8<T'*<\\IMRMC*<\\ISV#R6RFW8/#QS/'.6V#QS/-AS;3QM/):6\nM<VT\\;6US<SP\\V#R6;44\\V$66/$5S/'-M/#Q%/&V6<W-%/#P\\/-$\\EG-%1471\nMEM'1/#QS145%EG-S<SS=W471/#Q%/-'=W7-%13QS/-T\\/#S=/$4\\/-$\\W=$\\\nM/-W=1=$\\=SS1T471W=%%/$7==]W1T=W=13S=/$5WT3Q%W3S=W=%WT=UW17?1\nM145W=W=%=W=%W7=W=]U%W7?1W=&%T7?=W=U%=W=W=T71=T7=W=UWW=W=W7=%\nMT7=WT='=T7?=T7=%W=W1T7?113QW=T7==T5%T='=W7=%1='1147=T3S1=T7=\nMW7?=W=$\\T3Q%W=%%13QWW='=144\\/#S1T7?=W45%/#Q%T47=1471T='==SQW\nM/#QW/#S=W=W=T7?1W=W==W?=W=W1=]%WW45WT871A=W1A=W=W=V%0'=WW4#=\nM0'?==T!)A7=)A4#==W<C=TE)=W>%XW?C285)27?C=^/C0.-`24E`2>.%2>-)\nM(^-)2>/CX^/CX^/C>^-[X^.*>^/CX^-)X^/C28J*XXJ*XS+CXT[CXXI[>XJ*\nMBN/CBHI.6#)[BN.*BEA[,C**>U@R,N<RYUA.3HJ*YTZ*3EA83O/SBO-8YS+S\nM3N=8,C+S\\UA.,O-.Y^?G6$[SY^>/\\_-.6.?S3O./YX^/C_/G6.>/CTZ/\\^?G\nM6(_GYUCS\\_/SC_/SC^>/YX^/\\_./CUCS\\^>/C_-86//G6(_S\\X]8\\X_G\\^?S\nMC_./\\X^/\\^>/\\X^/CX]8CX_S\\UCSCX_GY_/GCX_'AL<ZQ\\>&:9''QY&1QSK'\nMD88Z:<HZ.FDZ+SII+R^1+SK*.CHO.D$O03HO.LJ1.B_*D4'*D3HZ+T%!D2\\Z\nMD9'*D2_*+SK8RLHZ.B_*RCHZ09$O+SK*0<K*+\\HZ.I'*.MC8RLK8RCHOD<HO\nM09'8RI'8RB\\Z.I%!.M@Z+Y'*+\\HZ.CHZD<K*D2\\ZRM@Z.MB&+SJ1+\\J1RLK*\nM.H8Z+Y&1.LJ&.H:&.CK*:8:1:9'*.CJ1AH8ZD9$ZALJ1+Y$O.CHZACHO:3HZ\nMRCJ1RB^1.CK*D3K*.FF1+SHZ.FDORFDO.FEI.LII:6G*.B\\ZD3HZ+\\IIRLK*\nM.LHZ.I'*:8;*+R\\Z.CHZRI&&.CK*D<K*RB\\O.I'*RLHZ+Y&1V,J1.LHZ.LK8\nMRLK*.LK8V#HZV-A!.CK*+SHO.CHZRCK8RCHZ;=A!V,I!;6W8V,K8V#HZRCI!\nMRLI!.LK*.MC*;6W8V&U!<]C*RFW*<\\K8RLK*<VUSEG-S<VV6<\\K*<\\K*EFW*\nM/&US/'/*<Y9M/,K*;3P\\RCP\\/-@\\RMAM<W-SV-C8/#P\\V-AS<VUS<SP\\V&UM\nM/#P\\ED4\\/)8\\;=$\\145S/#S1EG,\\<]'1ECQS/$5%/#P\\<SQ%<]T\\T3Q%T3P\\\nMW3S1W=$\\/#S=T=U%1=W=T3Q%T=$\\1=%%W3S=/-W=1=W1W=W1/#S=13S=W7=W\nM=W=W/'=%W=W1=W?==T5%W7?1W7=%1=&%T471A=U%W85%W47=W=V%A=U%W7>%\nMW45%=W?==W?11=W=A=W=W45%=]%WW7>%T=UW=W=%W45%T45%=]%%T7=W=]W=\nMW=UWW7=%W=UWW=W==T5%/'=WT='=W=W=T44\\/#S1/-%WT3S=W3P\\1=T\\T=W1\nMT=T\\W3S=T3P\\/'?==SP\\13S=1=%WW=W=W=W=T3S=W=%%T=UW=]'1W7=W=W?=\nMT7=WT=UW1871T86%W=W=A7?1W7?=0$G=27=W=X6%=W=W27=)=TE)0$EW=TF%\nM285WXW>%2>-)0(7C287C2>/CX^/CXT!)2>/CXXKC24E[XXKCX^/CBDE[>WN*\nM2>-[BHKCX^-[X^.*BHJ*>TY[>XHRBC).,HKC>XI83GM[6$Z*,GM.BHI.,DY8\nMBE@R3HI.YXKG3N>*3D[S\\^?S\\T[S\\TY8YT[S3O/S,O-8C_-8YX_S\\_-.6/./\nM\\UCS6$Y8\\_/GC_/S3ECG\\UA8YUCG6%CS\\UCGCT[SYUCG6//G\\_-.CX_SC_-.\nM6/-8CUB/\\X^/6%B/\\UA86.=8CX^/CUA86/./\\_-8CUB/C^?S\\_./\\_/SYX_'\nMAB_'QR_':9$OQSII:3IIAI%I+R^1:8:1AI$O.CK*.I&&.FDZD3HZACHZD<HZ\nM.CJ1.B\\ZRCK*RCHZD=B10=B1RLJ1V,J1RB^1.LK*RMC8+SK*D3K*RCHZ.I$Z\nM.MC*0<J1RB_8.LK*V,HZ.B\\Z.LK*.I$Z.CJ1.MC*RCK8.LK*.LHZRI'*RM@Z\nMRD'*RLJ1.CJ1.CHZ.CJ1RLHZD3HZRCHOD3J1D<HZ:3HZRCHZ.FDZ.I&1ALHO\nMD3HZ+Y$O.I$OAI&1.H8Z+\\HZ.H8OD3J1RB\\ZD<J1+\\K*+\\HZD2\\Z.LJ1+\\K*\nM.I$ZD<HZD<HZ.B^&RLHZ09'*RLJ&ACHZRCHZ.MA!+R_*RCHZRLK*03K*+R_*\nMD<K*RLK*RCHZ+\\J1RB\\Z.M@ZV,I!+R\\Z.CHZV-C*RD%!RMC8.FW8+]@Z;=@Z\nM03HZRMC*.D$ZV,K8.D%S0=ASV#IM<\\K*;3K*RCK*0=A!.G,Z<T%!RG/8RLIS\nMRFUSRMAM;7/*EMC8V&U!V,K*RG/*RG-SRI9MV&USRCQSRG-SV-AS<Y8\\<W,\\\nMV#QS/#P\\/'-%/-C8V#QS<SS8/$5%<Y;8<W,\\<SQ%/)8\\17,\\<T4\\13P\\<Y9S\nM<]%%EG,\\/$66<]T\\/$5ST3S=/$7=/-$\\T=U%T=W=T='1/-W1/$7=W3P\\/-W=\nM/-W==W=W13Q%W=W==SS1=T5W=T5%T=W=1=W=W871=W?1=]'==X7=W7=%=X7=\nM=W?=T=UWA7>%A87=W=%WW7?=W86%W=TCT=&%A=UWW7=W=W=WT=%W=]U%W=W1\nMT47=A7=WT45%T7?1W=UW=W=WW=W1T7=W17?=T7<\\=T5WW3S=W=%%T=%%T=W=\nM/#S1=T4\\W=$\\W=W==]U%1=T\\T45%144\\17?=T='=/-%W/$7=/#P\\T7<\\W45%\nM=T5%W7=W17?11='11=U%=]UW=W=WT86%A=V%0-&%T7=W=T!W=]U`0$!)W7=)\nMW7=W27=`2=W=24EW2==W27=)=TE)=^-)27?CXX5)24GC0..%24E`XTE)>TGC\nMXTE)XWOCXTE)2>/CBDE[X^-[>XI[XXKCXWM[>WOCBN/CBN/CBGOCBHJ*BGN*\nMBGN*>WN*XTZ*>XJ*YTY8BC+GBO.*3EB*BHHR6/-.BD[GBO-.Y^<R6#+S6.=8\nM3D[G\\_,RY_/S6#).,C)8YS).3D[SYUA8\\^>/6.>/\\T[SC_/S6%B/Y_/GC^?G\nMCX_GY^?SCUA8CT[GCX_S\\^?S3H_SY^?G\\_/GC^=8\\_-.CUA8\\_/S3EA83O/S\nM\\X_SCX^/\\_/S6%B/6.?'Q\\?':2]I+\\<OD2^1.H8Z+VG'D2\\O.L<OD9$O.B]I\nMD9%IAFF&.H8ZRLHOD9$Z+SI!.CHZD8:&.I&1.I$O02^1D<K*+SI!.CJ1D<J1\nM.I'8.CJ1.LHZ.LHZD<HORCK8+Y$ZV\"\\ZRLHZ+Y$ZRLHZD9$O04&1D2^1D3K*\nMRCK*D3K*D3J1D<HORB^1.LHZ09'*RB\\Z+SHZ0<J&.H;*.CHZRLJ1+R_*+SJ1\nM.B\\Z.CI!D6DO.FF1D9%!.CHZRLK*RB\\Z.B\\Z0<K*+SHO.I&&.LIID2_*D9'*\nMRCHZRH8ZD9&&AI'*03HORD'*D<J&.LK*D3HZD9'*+\\I!RLK*.D$ZV#HOD=@O\nMD=@O09'*D3I!RI%!.M@ZRCHZRLK*V\"\\O.M@ZV\"\\O0=@ZRCK*V,K8.B_8V\"\\O\nMRCHZ.M@ORCHZ.MC8RCHZRCK8RB_*;<HZRCIM.B\\ZV,HZV#K8.CK8RMAMRM@Z\nM.CK8RLK*RMA!<SK*.FTZRCK*RCIS.CIMV#K*RLK8V,K*<\\IS.LK8<\\K*<VUS\nM<VUS<]B6/'/*/&T\\;7/*RG-SRM@\\EFW8<]C*/#S8/-@\\/&T\\<]C8;7-S<SS8\nM/$4\\/#QS/-$\\T44\\/#S1/-&6T7,\\T44\\T98\\144\\/-%%W=V6/$7=/#S1/)9%\nMW=T\\1=W1T=W=/-U%T7<\\1471W=T\\W=U%=]W=W=W1W3S=147=W=U%=W?1T=&%\nMT=UWW='==]W1T='=T47==X71W=W=T=W=W7?==T\"%(W?1W7>%=W?==]V%W4#1\nM=X5WT85`W871=]%WW=V%W=W1T7=%T=W==]U%A7?==W?1=X5W=]W1T=%WT7?1\nMT471144\\=W?==T4\\T=U%W3S=/$7=T='=T=%%W471T='=W7<\\W7?==T7=T='=\nMT47=T=UW/#QWW=U%W=U%W=W=W7=%145W145%=]W117?1=W?==]W1(]W=T=W1\nM(X5WT7>%=T!`W7?=W7=)=T!`A7?==TE)0(5`=T\"%A4!)2>-)=W?C24!)=TGC\nMX^-)XTGC2>/CXTE)X^-`X^-[24GC24E)XWOCXXI)BDGC27M[XXKCX^.*BHKC\nMBN/C>^,RXWLRX^-[BHKCBC**6./CXUB*BDZ*6'N*6$Y[BHJ*6%CG3HKG,HI8\nMYTZ*\\XI.YUA.\\UA8,HKGBHI.6#)8,HI.\\S+S3O-8\\U@R6//SBO/S\\S+GCUCS\nM6//S\\_-8C_/SCU@R3DZ/3C*/C^=.\\^>/Y_/S\\X_G\\_-8\\TZ/\\UA8YX].3ECS\nM\\T[G6$Y.3N>/\\TZ/CUCS\\X^/\\X^/CTY8Y^>/\\^?'QS7'QVG'OVEI+\\=IQVG'\nMD6F1Q\\>&:<>&:6G':3HZ.CJ1AB^1+VDZACHZQY'*.LK*:9&1:6DZAFF1.LK*\nMD9$ZRCJ1AH;*RLK*+SK*RLHZALK*.LHZRCJ1.I$ZRB_*.LHZRLHZ.I&1D<K*\nMRLJ1RLJ1+SHZ+SHZD3HO+Y&&+SJ1D<J1AI&1.LHO.CHZD<J1RCHZ.LJ&+SHZ\nMRLHZD9'*D3HZRD'*RLJ&.D'*+X8OD3HZRI$ZALHZ09&1RLJ&.I&&.LHZ.B_*\nMRD$ZD<HOD<HORLHZ.LK*RCK*RLK*.CJ1RI&1.D&1.LK*.CK*.CK*.M@ZV)%!\nM+R_*+SK*.B^1.LHZ+SHZ.I&1V)$ZRLK*03K8.CHZV#K*+Y$ZV$$Z.M@O.LI!\nM.B_8+SHZ+SK8RLK8.LHZ;<K8.CK8.CHZV#K8RCHZ.MC*+]@Z.LK*RD'*;3K8\nMRLIM.M@Z;6W8RCK8.CK*.CK*.M@ZRLIM+VUMV-@ZV'/8;7-M.MC8;<K8<\\K*\nM<]AM0=ASV,IS<SK8<\\K8<W/8<W-MRG/*<W/8/-B6;9;8/#S8RG,\\<Y;8/-C8\nM/,K8RMC8RLIS<SR6/',\\/$5S<SQS/#QS/$5S<]AS<SP\\<T5M<SP\\<]%%EMUS\nMED5%/-'1/-$\\/#Q%1=U%W3P\\/#P\\1=$\\/'?=T=UW=T7=W47==]UWT45WW=W=\nMW=%W1=W=T=W1=]W==T71W7=W=W>%W=%WW871A7>%0'?=A7?==W?=W=%W=]UW\nM0$!W=X7=W=W==T#==]'=W7?=T=V%A=U`W=W1T='10-UWA=UW=]'==W?==]UW\nMA47==W?1W=U%=]W=W='1T=W1T=UWW7=%=]%%W471W=U%W=%WT7?=W=T\\/-$\\\nM1=%WT3S1T47=145W=W?11=UW1='=W=%%147=/'=W=]W==]%%W7=WW='=17>%\nM=W?1W=W==]V%=]'1=]UWW7=`W87=W=%WW4!`A=UWW86%A7=)2=UW27>%W4EW\nMA85W24EW27=)=X5)24E)XT!)A>-`X^/C2>/CA>-`A>-)24#C27M[XT!)X^-[\nM24GCBHI)BN/C>^/CXWN*X^.*BHKCX^/C,N.*,HJ*XXKC>XI[BC)[>TY8BN.*\nM3HI.3HI.3HJ*BDY[3DZ*YXI[BN>*,HJ*YTY83O-.,C)83HHR3N<RY^?S\\T[S\nMYTY83HI.BECG6(KS,N=86.=.6$[G,O,RBN<R\\UCS\\_,R,DY.3DY.Y_/SCT[S\nM6%CSC_/S6//S\\^=8\\_/S6%A86.?G,O/G\\^=.6.=.Y_/S\\_/GCTY83H_S\\X^_\nM-<>_D6G':;^&:;^&D;^&Q\\=IO\\>1QR^1D9''QY''D3II.B_'QR\\Z:6DZ:3HZ\nMD3HO:9$OD2\\Z:2\\Z:89ID3HZD3IID6DO.FG*:3J1.H8ZD3IIRI&&.FDZAFF1\nM+SJ1AI&1D<J1.FF&+Y'*D3J&.I$Z.I&&ACHZRLJ1+X9!RFF&.D'*+VDZ.I'*\nMD4&1RI'*.I'*+\\K*+\\J1.H;*.I%!ACJ1RCHZ:3HZRCK*RLHZRCHZRLHZD8;*\nM+R^1.CHZRB^1RLK*.I&1RCHZ.I'8+Y&1D9%!.I$O+R_*D9$Z+R\\Z.CK*RB\\Z\nM.CK8.CHZV#HZV)'8.LK*RMC*;3HZ;2\\O03HOV#K8.LHZV,K*+SHZRMC8RMAM\nMRLI!.FU!+SHO03HZ.D$Z.MC8;6TZV-@Z.CHZ+]C*;3K8.CIMRLK8V#HZ.MA!\nM.M@O.CHZ.MC*.CK*+]C8+\\HZ02\\Z.D$Z.M@ORM@Z+\\IMRD'*.MAMRCK8RB_*\nMV#HZ;<HZRFTZRB_*;6TO<]AM<SK*RG/8RLK*0<IMRLK8RMAS<\\ISRMC*<]C*\nMRMASRLK806U!;9;*V-C*RG/*/'/*V'-MV'/8/)8\\RG-S;=@\\;=B6/'-S/&UM\nM/)9M145S13Q%17-%/-&617.6W99SED7=T47=/#P\\/$7=13S=W3P\\T='==SQ%\nM/-U%T3S=T3QWW47=T='=1471W=%%W7=WW7=%W=V%=]W1=W>%=]W=T=%WT7=W\nMA7?=A7=`=]UW0$!WW=UW=T#==W=W=W=WW='=0'=W=X5W=W?=0-W=W4F%W=V%\nMW87=W=V%=]U`W=W1W7?=A7>%W=%W=T7=A45WW=W=W=W=A7?==]'=W45WW=%%\nM1=U%W47=17?1W471=W=%T47=W=W1W7=%=]W==W?=T=W=T=UWW=$\\T7=W=]%W\nMW7=%=T7=W7?=W47==W?1=T5WW=UWT871=]%W=W=WT=%`A7=WW86%=W?=A=UW\nM=]W=W7=WW4#=(TE)=X6%W4F%=TE)0(5W=TF%2>/C=TGCXT!WXTF%2>/CX^/C\nMXTF%XTGCXT!)2>/C24E)>^-)X^-)>^/CXTE[BHI[2>-)XXKCBN.*XWM[BN-[\nMX^,RXWLRBC)[BGOC>XI.>S).3C(RXXKC,C).BDZ*,HJ*>WM[3GN*BGN*BHI.\nMBHHR>TY.BHKGBN<RBHKGBEA.YUA.3N>*YTY.\\UA.BHHR6#(RYUB*6$[G,DY.\nM\\XKGYT[SBECSBN<RYT[S6.?GYXJ*Y_/G6/,R\\UA83C+S\\TY.6.?G3E@R3C(R\nM\\_,R,O-8Y_/S6$[SCX_'-37'AL<U:;_':<?'-;^1O\\<UQY%I:<=I:<>&:<>&\nMD6F1QVEI.I''D6G'+SII.FDZD<=I:2^&+Y$Z:<<Z.B^&:8:1:2\\O.CHO:89I\nMRCII.H8Z06F&.CJ&D9$Z+SK*D<J1:2^&D9$ZD8:1:3HZ+VDZD8:1D3J1RLHZ\nMRCII:88Z.FG*D9$ZD<IID2\\O+\\J&.I'*.I$O:3HZ.LHZD3J1+R\\Z.FDZ.CHO\nMRLJ102^1RLK*D9&1RLK*+\\I!.CHZ.LK*RCHZD3K8.CI!V,HOV)$ZRD$ZV-@O\nM+SJ1V,K*03K*.CK8RCHZ+SK*V-@ORLHZ+\\K8;<K*V\"_8.MC*;<K*;<HZV-C8\nMRM@Z.LHZV$'*RG,Z.CHZV,K8RLHZV-@Z.FTZV-C*.CK*.B_8<]@ZV-@ZRLK8\nMRM@Z.MC*.CIMRM@Z.M@Z+\\HORB]M0<HO.CHZRB_*V,K8;<K*V#HO.B_8.B_*\nM.LK80<HZ.LK*RM@Z.M@Z.CHZ.CK8.LHZV#K8RB]MRCHZ.CK*V',ORCK8.CK*\nMV,I!RCK8.LHZ0=AMRCIS;7/8.CISV'-M<]AMV#K*RFW8V'-MEG,\\<\\IMV&US\nM/'/*/-@\\;3S8;=@\\<SQS<T5S<SQ%V',\\<T4\\<Y9M/'.6EG/1/-&6T471/-T\\\nMEG/=/$5%T=W11=U%W=U%W=W1W=%%W3S1/-UWW=%%1=W=T=U%A=V%=]W1A='1\nMA7=`A='=T=&%W87=0-'=W7=W=T#1W7=W0-U)W87==W=W285`W=UWW85`286%\nM=W?==TE)=W?=A=W=0$!)A7=W0$!WW=U`W=UWT=V%W=&%W=%`=]'==]'=A7?=\nMW47=T='==]%%W='1=W?1145W1=W=1='1=]%%T7=W147=17=WW471=]UWT=%%\nM17=W1=W=17?11471T=W==W=%1=W==]W==]UW=]UW=W=WT7=WW46%W7=WT=W=\nMW87=T8710$#==T!`W4\"%W=W==W?=2=UW24E)=T!WW4!)=T!W=W=W(T!`=^-)\nM=X7C=TE`0$EWXTE)=^/C24E)A4#CX^/C2>-`2>-[2>-)XWOC24GC>^/CX^/C\nMX^-[BN/CBGM)X^.*XXJ*BN/CXXKCXXKC>WN*,HKC>XJ*BHI[,N.*BN-.BHKC\nM3N-[BDXRBHI[BN.*,GN*BHI.XXJ*BEA[YXHR6$Z*>TY83EA[,DY[,C)8BN=[\nMBHI8BEA.YTY.3N?GBE@R3EA8YXJ*3C**BN>*BN<RBD[S\\^?S3C**\\TY.,O-.\nM\\T[G\\^?G3HHR,O-.YT[G3N?S,D[S6//S,O-.\\UB_Q\\>_O\\>_OVG'Q\\=I:6G'\nMQ[\\UQS6&QY%IAFEIQY&1:6EI:<?'Q\\>_:9''+VEIAL>&AFEID<>&D<=ID<<Z\nMQ\\=I:89ID9%ID2\\O.I&1.L=IQVG'AB\\Z+VF1:6F&.L>&.FDZD2\\Z+X8O.B]I\nMD9$Z.I%!D3II03J&+Y$Z:3HZ.CJ1AD$Z.FF&+X8ZRCIID9$ZAFF1D9$O:<HZ\nM+VEI.CJ&D3J1.LJ&.B]!.LJ&D9$O+\\HZD<J1D<J1RI%!V)&1RI'*+SK*+SHO\nM.B\\ZD<K*D3HOD<HZV\"_*RMC*.FU!.CHORLK*V-C8.B_8V-C*.LK*V,K*.FW*\nM.MC*.FTZRMC8.LIMRMC*RLK*;7/*.G,ZRM@ZV&W8RCK*RLHZ.LHZRCK*;=C*\nM.G/*.MAMV#K8RMC*0<HZRLHZ+]C8RMC*RLK8V$'*.LI!RCHO.I$O+SHZV,K*\nM.LHOD=C*.MC*V-@Z0<I!+R\\ZRCI!RI'*.I&1+SK*D<J1.M@ZRMC*.MC*0<HZ\nM.CHZD9$ZV,K8.LK*RCK8.CK*.FTOV\"_8V,K803HZV,K8RD%SRMASV-C8.CIS\nMV#K*RCK8.LJ6V#S*V',\\RLK*<W-S/,IM;7,\\/#QM/#Q%13Q%/'-M16T\\<W-S\nM<SS1<SQS<T71/-USW3S1/)9%/$5%ECQ%W45%13S=/$5%T45%1=W11=W=17=W\nM=]%%W=W=T7?=T=V%=]V%W=W==T#=W=UWW=UWW=W=27?==T!W=]U`=]U`=X5W\nMW7=W27=)=W=`0$!`=]W=A7?=0-UW0'=WA4!`2=V%2=UWW4\"%W7=W=T#==W=W\nM0(7==]UW0'=W=W=WA7>%A4\"%=]V%T7?=A85W=W=WW=%W1='==T5W=W?=1=%%\nMW7?1W=W==W=WW47=T=%%W7?=W7=%1=W1T7?=147=W='==]UW=W=W=]%WW=U%\nM=]'=W7?==]W1=W>%T7=WW='==W?=T7=WA87=W=V%=W=W27=WW4#=A7=WA7>%\nM0-W=24EWW4\"%A=UW=X5W0$!`286%0(5)XTE)XTE)0'<CXTGCA>-`A4E)0$E`\nMXTE`X^/C24GCXTGC>WM)X^.*X^/CXWM[XXI[BN.*28KCXXJ*28KCBHJ*BN-[\nMBHJ*BN/CX^/C,N.*>WOCBN.*X^.*BHJ*,HI.BHJ*XWN*BDY.XWN*BHKC>XJ*\nMBN-.XXKC6%B*,N.*3D[C6#).>UB*,HJ*BDXR,C)83GN*,HI.BDY83C(R6%B*\nMBEA86(J*6#+S6$Z*,N>*BHJ*,DY8Y_-.Y_.*6(I86.<R6$[S\\S(R6/-.3EC'\nMQS7'-34LORPUQ\\?'+,?'Q\\?':<?':37'Q\\<UAK_'D;^1:37'Q[_'D6G':6F1\nMD6F1O[_':<?'Q\\=ID;]ID;\\OQ\\>1:<=I+VEIQ\\=IQR^1D9$O:9$Z.L?':8:1\nM.CK'Q\\<Z:6DZ:2_'D88O:9%I.FDZQR]I:<<Z+Y&&+VG'.CHZ:6DZD9%I:4$Z\nM:9%I.L=IAFF&.CHZ.CI!.CHZD9$O.I$ZAI&1D3HZ+Y$ZACK*+R_*.LHZRCJ&\nMRD&1V)&1.LHZ+Y'*RLJ1RCK*RCJ1RCHZRB\\O.MC*RFTO.LK8RLHZRLK8V&W*\nMV#K*.LHZ.CK*;3K*.FW*.G/8RLHZRCK*V-@ZV#K*V-C*07,Z;3I!RFW8RCK8\nMV'/8<VUM<W-!.CHZRCIM<\\HZV-C*<SK8<SK*V#I!;=C*.CK*.LK*.CK8V,HZ\nMV#HZ.CK*RMC*.CK80=@Z.MC*RD&1V,I!D2\\O.I'*.B\\ORCHZRM@O.LHZRI$Z\nM.CHOD<J1RCK*RI&1D<HZV-C8.B\\Z+T$O.CK8RMC*.CHZ.CK8+R^1RLHZV-@O\nM;=C*.CK*V#K*<SIM.M@ZRCIMV#ISV,K*<]C8<\\IMRLISRG-SEI;*/'-M<W-S\nM<VW8V&V6/$78;3S813S8;3QMEG-%/'-SEM'1<W/1/$5%EMW=W3S=T='=1=W1\nMW471W=W=1=%WW45WT471=]W1W7?==]UWW=%%W=W1=]W=A7>%A=W1W4!W0'=W\nM=]UWW=V%27=`=W?==TE)W4F%=X5WW=V%0'=W=W=W=]U`0(7==X5WW4G=A85)\nMA4F%0'=W=]UW=]UW=W>%W=UW=]U`A85WW87=W=UWA=V%(X6%A7=`A=W1T=V%\nMW7?==]W==]V%147=W=%WT7?=1=U%W45W=T5W=W=WT45W1=UW=T7==]&%W45%\nM=]%WT7=W1=%%W=W1=X5WW47=A=W=A=U%W=V%=W?1=T6%A86%=X7==]&%0(7=\nMW7=WW7=W0-UW27?==W=W0$E`22-`A85W24EW285)A7=`UT!)XT!)0'=W=TE)\nM27=)XT\"%=TGC0$F%0./CA4E`X^/CX^-)0$GCX^/CX^/C>WM[X^-)XXI)X^-)\nMXXJ*XTE)X^-)XTGCX^-[BGOCX]>*28I[BGN*>^.*BHI[XXKCXXKCBGOCBGM[\nM>XJ*BHJ*X^.*X^/C,N,RXS)[XXJ*,HI[>^.*X^.*3HI[,HHR,GM.>U@RBDY.\nMBDZ*,EA.3HKC3C**XWM.6#**6%CG,EB*>XHRYXJ*3HKGBN?G6(I[6#(RBHJ*\nMBDZ*6(HR\\S(RBECS,HJ_-<>_QS4U+,>_+,?'QS6_:36_Q\\=IQVG':<<U:37'\nM:;]IOS4UQ\\>_:37':35I:<?'-<?'AFG'OVDUQ\\>&AL>1:<=IAK^_:6EID<>1\nMD;^1+VG'D<=ID6EIQ\\=I:6EID<=ID<=I:9''+R^1D<?':89I:<<Z.CHZ:3II\nMD<<ZD88Z.L=I+VDO:6F&.I$ZD6DZ.CHZACHZ.FDZD6EI+Y&1D9&1AFDZD9%I\nMRFF1.CIIRI$Z.CHZALHO.LJ1.LHZRLHZ09&1D3HZRM@ZRD'*V,HZD3HZ.B\\O\nM+\\K8RFW*RCK*+]C*+\\HZV-C8.LK8RCIMRCIMRD'8V-C*RLIS<SK*V,IM07-S\nMV,IM.LK*.FUSV,K*;7/*RLK*<W-S07-SRLK*RCK8.CI!RLK8V,K*;7,ZV,IM\nM;=C*;3K806TZRCHZRB_*+SK8.LK803K*V\"\\ORLHZRLJ1RLJ1+SJ109$Z.LK*\nMD<I!D9%!.CHORI$Z03K*.LK*D2\\OD<HO.LK*D3K*V)'*D<K*D9'8V,K*D9'*\nMV-@ZD2^1RLK*D3HORM@ZV$'*RCK*RMC8V#K8V-AM;<K*RLK8;6W*V,HZ<]AS\nMV&USRLK*V,K*RCQM/'-M/-B6/&T\\<]ASV-C8V#QS/$4\\;3QM<T5M19:6T3P\\\nM1=%S/-'=/$7=/#S=W3P\\W=T\\1='==W?=W47=/-W1T=UW=]V%A7?11=UWT=UW\nMT=&%=]UW0'=`T=V%W7=WW7=WW=UW2=W=27?=24G=A4EW=W=W=W=)=X5W24E`\nM0'=)=T!W=W>%W2-`0$\"%0'=WW86%=W=`285WA85WW4!`27=W27=)W7=WW=W1\nMW=W==X7=W4#=W2.%0-UWT7?==]W1W=W=A7=WT7=WW=U%W=V%=W?=W=UW=W=W\nMW87=W7=%=T7=145%W7?1W=W1T7?=1=W=W=W1W85%=]V%1=UWW='=W=W==X7=\nMW=V%=W>%A7?=T8710$#=W=%`=W>%W4#=A=UW0-V%=W=`A4F%A4E`27=)0$EW\nM27=)0'>%XW=W0'=W285W24F%0$GC24F%XX6%X^-`X^/C0./CX^/CA4#C0./C\nMX^/CXT#C24GC>^-[2>-)X^-[24GCX^-)BN/CX^-)XWOCX^.*XTGC2>/CX^.*\nMXXJ*XTGCXXKCXXI[XXI[X^-[X^/CBN/C>^.*XXJ*>^/CX^.*X^.*>WOCBN.*\nMBN/CBGM[>S(RBHKCBHKCBN/CX^.*BHHR>WM.,N.*3D[C,N-[3DZ*6(J*6.-.\nM,N.*3DY8BHJ*BHJ*Y^=[,DXRBHJ*,N=8,EB*6(K'OS7'QQXL+,<L+\"S'QS6_\nMQ[_'+#7'+\"R_Q[_'++^_+,<LO\\>_Q\\?'+\"QIORR_+\"S'QRPUQVEIQ\\<UOS7'\nMQ\\?'QVEIQ\\>_:34UD9%IOVG'QS6&AC5I-<>_QVEI:<?'-;]I:9%IQ[]ID8:_\nMAL>1Q\\?'O\\?'Q\\?':2\\OQY''D6G'+VEID9&1.CJ&.L<Z.L<Z.L>1D<=IACK'\nM+SHZD3HZ.FDZ.I$Z.CK*RI$Z+\\HZ:3IIRLJ103J1.CHZ.LHZ.CJ1.LK*0<HO\nM+R]!.B_80<K*RMAMRM@O+\\HZ0=C8V,K*;=C8V,ISRMC*RG/*RLIMV&USRCK*\nM;7/8;99S<VUS.FUSRM@Z<\\K8RMAS<W.6RFUSV);*V,IMV,K8ELK*RLK*<]@Z\nM<\\IS<\\HZ<\\K*0<IS.CISRG-M.MC*.M@Z.MA!RB\\ZV-C8V#K*V&TO+SK*.M@O\nM.MC*+SHZV#K8RB\\Z+Y'8.LHZRCHZ.I'*RLK*D2_*RLII.B^1ACJ1.FF1.CK*\nM.CHZ+X9I.I$OD3J1D4$ZD9&1D3K*AD'*D<I!+SJ1+\\HZ.I&1+SHZD<HOV#HZ\nMV,IMV$$ZRMC8;=A!RD'*RMC8;4'*RG-S;99!<\\IS<Y8\\RCS8/#QM;3R6/-C8\nM<T4\\<Y8\\EG-S17-S;7,\\/#R6<Y8\\ECP\\W3Q%W3S=T=U%T=U%/'=%1=UW1=UW\nMT7=WW7=WW=W=T45WW=U%T=UWA87==]W=W4!W2=U`=]V%A7=WA7?=24!W0'=`\nM0'=`0(5)W4E)=]U`W4E`A=UWW7=WW4EWA4G==W=`=W=`0-UW2=U`24\"%A7=`\nM=]U)27>%0'=`0'=W=R-`W2/=A7?=24!`=]U`W4!WT=U`W7?==R-WW7=W=W?=\nMT7?=A=W==T7==]UWT='=W=UWT7=WT=UW=]UW=W=W=]W1W471W='==W?==]UW\nMW=V%=W=W=]%%T='=W7>%=]'==W=W=W=`T=%W=W=WW4!`A7=W0-UWT=%WA7=W\nM=]UWA85)W86%=W?==TE)2=U)285)A7?=W4E`=R-W=TE)0$\"%0(7CXX7C=X5W\nM=^-WA>-`A4E)0$!)X^-`A85)A4F%287CXTE)X^-)24E)X^/C0./CX^-)X^-)\nMX^-)>^/C2>/C>TGCXWOCX^-[X^-[24E)27M[>^/CXWN*24F*24GCXWN*BN/C\nMX^-[X^/CXXI[X^-[BN/CBDF*XXJ*>TGCBN/C>S+CXXKCXXJ*XWOCXWLRXXKC\nMBHI[,C+CBGN*>^.*BHHR>WM[,N-[XXI.BDZ*BGLR>XJ*>TY8,N=8BHI.3DZ_\nM+,>_+\"PLQS4U?7U]O\\<L+\"S'+#7'Q\\?'+,?'+#6_Q\\<L:<<L+\"R_++_'O\\<U\nMQVDUQS4U+#4LQRS'QS7'OVG'QVG':<=IQS4UQRPU:8;':88UO\\>_:6G'-<?'\nM-6EI:<<UD9$UQY''-361-9&1AFEIQVF1AK_'O\\>1QX:1Q[_'Q\\?'+VG'Q\\?'\nM:6F1+VF1:9'':<?'AL?':<=ID3HZD6F1.H:1.H:1D88O03HZ+SHZ03J&:3HZ\nMRCHZ:2^1RD&1ALJ1RD$Z+\\HZ.CK*RI$ZV-@ZRCK*03IMV&W*RD$Z07/*.CI!\nMRLIMRG-SV,HZRFW*V-C8RMC*;3IMV'.6RMAM<\\IM<Y:6RI8Z/-AMV,IS<W-S\nMRG/8V,IMRD&6V-C8EMASELIS;9;*;7-S.LK*<\\K*RFUM;6W803K8.MAM.LK*\nM;7,Z;<K*RCHORCK8.LHZV,K8.D$Z+\\HZ.I'*.LK*D2_8D8;*ACK*.FDZD3J1\nMRI$Z.D$O.CHZD3J&.H8O.CHO:3HZ.CJ&.LK*.LI!.CJ1RCJ1.I$Z.CHZD3HZ\nMD3K*03J1D9%!RLJ1.CK8+Y'8RM@ORCK8RMAS.LK8V#K8V-AM<SHZ;<HZ0=AM\nM07-M/,IM;3QSRCR6/-AM/'-S;3S8;=C8<SP\\/#QMT3Q%EG,\\/-$\\/-U%/#Q%\nMW44\\/-%%W=%%1=W==]'==]W==]W==]V%=]'=W7=W=X7==X7==W?=T=U`W=V%\nM=]UW0'=)A=UW=X5W=]U)=W>%A7=)=W=W27=`A85W0'>%A7>%=T!)A85)=X6%\nMA86%27=W27=W=W=W286%=TEW=T!WW4EW2=UW=T#==X5W=W=`W=W=0$\"%W4#=\nM=]W1W=W1W871T=V%W=UWW=V%T='=(W?1W85WT=%W=]%WW471T=UWA=%W=]UW\nMW85WW85WW='1=]W=W=V%=W?==W?=T7?=W=UWW471=]W=W7=W=]W1W85`=X5W\nMW7?=W7=`T4!WA7=`2=V%0'=WW4!`W=U)W86%=W=W=W=WA=U`A4F%W4DC27=)\nMW7>%=TEWUT!W0.-W27>%24!)24F%=TE)A7=)A>-`X^-)XTGCXX770..%285)\nM27=`24E)A>.%0(5)XT#CA>-)X^-)2>/C0$!`2>/C2>-)27M[24G7XTE)XT#C\nM2>/CX^-)XTE[>WOC24E)X^/CXT!)XTE)XTG7XTE)X^-[XXKCX^-)XXI)BHI[\nMXTF*24GCBHI[BN/CBGO7>XKC>^/CBN.*X^-[BN-[XS**XT[CBHI.3C)[>S**\nMBHHR,DY.XXJ*BC).XS)]++]]+,<>QS4>'BR_QWTL+#4LOQ['+!XUQS4L-;\\L\nM+#4U'BPLQRS'-34L+,?'+#6_+,<>QS6_+\"S'QRPL+,<LO[\\LQVDLQ\\?'Q\\<L\nM+,=IO[_'-;\\U+,<LO\\?'+,?':34U:<<U-;\\LAFG':37':<?'AL<UD<>&-<?'\nMAL>_Q[]IQ\\?'AH:_AI'':;^1Q\\<O:9&_AFF1QR]ID2_':6G'.CHOAB^1D9%I\nMD2_'.FF1+VEIACHZ.B\\O:89I:2^1.B_*RB^&.H8ZRM@ZD=C*.MC*RCK8+]A!\nM.CHZRLK8;<HZ.FW*<SHZ.LK*;<IMV',ZV,K*RMC*RG/8EFUSV,IM<W-S/'-S\nM/,IS;99S<VUSRMC*<SR6V'-SEG/*RMC*RLK8V'/*<]C8RD%S<W-SV-C*RG/8\nM;3K*<\\K*<W/8;3IM.LI!RLHZRLHZ;3K*V#HZ+\\K8RI'*RCK*V,HZ.CK*+Y&1\nM.B_*D9$ZD3HZ.CJ&.CJ&D88ZD3J1+Y$Z.LHOAI&1:9%ID4$ZRCHO03J1.CHZ\nM.CK*:<K*RI$Z+SII.I&1.CHZ.I$Z.CHOD3HZ.I&1D9$O+\\HZ.CHZV\"\\ZV#I!\nMRCHZ.MAM<W/8RLK8<SIS<\\ISRG/*<VUSV'/8<W/*/&US<SP\\<W-S<SQS17-M\nM16U%;3S1/$5%/)9S/#P\\13P\\19;=W47==T5W/-%%=W?=W7?1W=%%=W=W=]V%\nM=]'1A=UWW=UWW4!WT7?=A4E`=X7=W7=W=TE`=X6%=T!)W7=W24G=24EWA85W\nMA4G=A4EW24E`W4!)27=`=X5)0$#==]UW=X5`27=)A7=W=X6%2=W=A=UW27?=\nM=]UW=TE`W=U`2=U`=W=W=X5WA7?=W=W=W7=W=]W=W=W1A=UW=T#1=X6%=W?=\nMW7=WW86%=W>%=]W=1=W==W=W=]UW=X71W7>%=X5WW=W=W=W=T7?1A7=WA7=W\nMA=UWW7?=W7=WW=UWT7=`W=W==W>%A=UWT7>%A=UWT7?1W7?==T!`=W=`0-W=\nMW4EW0'?=W4EWA7?=W7=)A7=)=T\"%27=)0'=)285W24!)0$E)0'=`285`=TE)\nMA7>%=W>%=TGC=^-)XW?7A7=)2>/C24#C=W?C(X7C=TF%2>-W0$GC=TE`24E`\nM24F%2>-)X^-`24!)X^-)2>/CXTF%XT#CXTE)X^/CXTF%XT#CX^,C0$#CX^/C\nM2>-)0./CX^/CXTE)XTGC2>-[2>/CX^.*2>/C24GCXWM[BHKCXXI)XTF*XWOC\nMBN-[X^-[>S**,N.*BN/CX^.*BHI[XXI[>WM[3GO'?7W'OWTL-1XLORQ]-34>\nMORPL-2Q]'L>_+,<L+#4LQS4L-2Q]+#6_+,=]+\"R_QRPL'BPL+,>_'K\\L+\"PL\nM+\"PLQ[_''L?'-<<>-<<U'L<>ORPLO\\?'Q\\<U++\\UORS'O[_'+,?'-2PL-34U\nM-<>_+,<L+\"S'QS5IQVF_:35I-6G'++]I-<?'AC5IQ[_'-<=I-<?'QVEIQ\\?'\nMQ\\?'D<?'D<>&:9''D6F1.H8Z:<<OQVDZ:9$Z.CHZ+Y%I+VDZRCK*+R\\O.LK*\nM03HO+Y$Z.CHZV#J1+R_8V\"\\O+VW*V,K8V#HZ.MC*.CK8V,HZ<W/8.LIS;9;*\nM<]C*<VW8ELIS<VW8;7/*EG/*V-B6/,K8V,H\\/'-M/,IMEG/8V-@\\;7-S;7/*\nMEMAM/'.6;<K*RMASRCHZ<W-!;<IM0<HZ<SK*V#K8V-C*RMA!V,K*RCK*.CHO\nM.MC8V#K*+R_*D9&1.LK*+\\HO.LK*.LHZD<II.LHZD3HOD9$Z.B^1D3J1ACI!\nM:9%I:2^1.I&&+VEI:3HZD9%I.CJ1.CJ102]I.I$OD2\\Z.B\\Z+Y$ZRCJ1D9'*\nM.CJ1D2\\Z.M@ORI'8V#K*V-@Z.CI!RCIMRMC8.CIM0<K*<W/*RG,ZRI;8EFW8\nM;3S*V-@\\V-C8/$4\\/)8\\<VT\\<SS117-%145S13S1T=US/-W=1=W==T7=W3P\\\nMT=W1/'=WW=UWW471=W=WW7=W=]UWW7?=T=U`W7?1=]UW=W>%=]U`0$\"%A7=`\nM24!`2=UWW=UW=TEWW=U)2=UW24E`24E)W7=)=W=W=TE`24EW=W=`2=UW=X6%\nM=TE)0$EW=T\"%(T\"%0'=W0-U`W=UW=X5)=T\"%=W=)286%A7=`0-V%W=W==W=W\nM=T!WT4!WT7=WW=UW=W?==]UWW=W1=W=WA=W=A=%WW=W1=]'1=]%WW7>%W86%\nM=X71W=V%=]'=T871(]%W=W=WT7?=W=V%=T6%T7>%W85WT7?=T85WA='=W4\"%\nM=X7=0(7==]W==T!W0(5W=]U)=]U`W7?==W?=24F%=T\"%2=UW=W=W=T!)A7=W\nM0-TCW4!`A7=)A=U)=]U)=]V%27=W0$E`0(6%24!)A4!)0$E`0$!WA4EW=TE`\nM0..%27=W24E)A4!WA4E`=T!`A>-)=TE`=TEW285)A4E)=^-`24E)=TEW=TGC\nM=^/C=^/CA2-)0$DC24GCA7=)A4E)A4E)XX7CA>-`0./CX^-`2>/CXT#CXWOC\nM27OCXTGC>XJ*XTGCX^-)BHJ*>^/CBHI[X^/C>XKCXWN*XWOC>^,R>WM[>^,>\nM'L<LOS5]-2Q]QS7'OS4L-2R_?;^_+'TU?36_O\\=]+'TUOWTL'C5]-;\\LQRP>\nM+#4L-<?'?<<L+#4L+'U]-7TU-2P>ORS'ORPU-2PL+#4U++^_-<=]'K]]+,>_\nM-<>_ORS''BS'++\\U+\"S'+,?'+#7'QRP>Q[\\UQ\\?'-<<L-<=I+,<L:6G'QVEI\nMOVG'QS5I+&G'QRPU:9'':9&_QY''OY&1O[_'QVF&+R_'QX9IQY''D9%ID88O\nMD3HO+VDZ.H8OD<J&AI$ZD<HZRLI!D2_*09'*0=C8V\"\\ZV,K8.LK8RCK*.FW*\nMV#K*.G-S<\\K*RG-MV',Z<W/8RLK8EG/*RI9S<\\K8RI8\\<]AMEMAS/-AM<SQS\nMRLISV,H\\RG/8V&W8RLIM;7/*V'-MELK*<Y9S<W/*RLK8<W/*<\\K*V-C*;3K*\nMRLK*.MAS.D%MV$$ZV,K8+R_*.B\\ZV\"_*D3K8+Y$O.LJ1+Y$ZRD&1D3HOACHO\nM.B\\Z.H:1.H:1+SHZ.L<Z+SHOD3J1AI$O+SJ1:9$O+R\\Z.FEI.CHO.CHO:3J&\nM.CHZ.H9I.CJ&D6DZD3J&+SHO.I'*ALK*D3J1.I$ZRLJ1RCI!RMC*+\\HZ.M@Z\nM.MC8.LISV,ISV&USV#S*V'/*<SR6<W-S/#QS/',\\V#P\\144\\/-%S/-%%13Q%\nM/-$\\/#P\\1=U%T=UWW3S1T3S1=T5W1=%WW7?=1=UWW87==W=%A=UWW86%T=UW\nM0$!`24F%0'=`0-W=A4EW27?==W=)24EWA85`W7=)A4!)27>%0'=)A85)24F%\nM24E)0'=)0'=`27=`W7=)0'=)A4F%24!W=T!W=T!WA85`=X5W=X6%=TE`0-W=\nM2=W==X7=0(6%=]U`0'?=W=V%A=%`0$\"%W=U`0$!`=X6%W4!`W='==W>%W=W1\nM=]'10'?117=W=X7=W=UWW7?1T7>%A=W1=W=%=R/=T=W=W7=`T=UW=]UW=]W=\nMT85WW871A=&%T='=T=%W=W=W0'=WT=W=0(5W=X7==T!)A=W==W=)W4\"%W=V%\nM0$!)W4!W=TE)=T\"%A4#=2=U`24G=24F%0'>%W4!W0'?==TF%0'=)A7=`W7?=\nMW2-W27=`W7=`=T!`0$\"%A4!)=W=`=W?==]UWA7?==W=W0$!W0-UWW4!W27=W\nMA=U)=TEW27=`W7=W24EW24F%2>.%=W>%=T!`24F%=W?C27=)A4!W=T#CXT\"%\nMX]=)XTE`24GC24#CA4GCX^/CX^-)X]=)X^/CXWM)XTE[X^/C>TGCX^-[28KC\nM2>-[X^.*X^.*X^-)XXI]ORQ]+,<L+,<>-34>-1[''BPU?<=]++^_++^_OS4L\nM?1XL+'U]-7V_+!X>?35]?2Q]+'U]+\"PL+'V_ORQ]-2PU=\"QT?1XL+\"PU+\"PU\nM?34L+#5]?1XLOWT>?34L?2Q]+\"PL+\"PL+\"PL+\"PU-2Q]-;\\L?34U-2PU-2S'\nM-<?''C7'OS6_+,<>QRR_+\"PL-;_'QS5I-6DL:37'OS7':8;'D9%IOY&&Q\\<U\nMQX;'AFEID8;'AFG'+Y''Q\\>1QR]IQY$O.D&1D6G*AB^1RLHO+SHZRI'*.B\\Z\nM.LHO.MC*V,HZ+T$Z.LIM;=C8<W/*RD%S<W/*<\\K*RMC*0<K*V'/8RG/8V,J6\nM/&W8<SQS/#S8RCS8/'/*/'-SV,H\\;7,\\<Y9SRLK8<VW*V-AS<VUS;7/*<W-S\nMRCS8;7-M0=AS;=ASRFW8V,IS.G,Z.MAS03HZ;3IMRMC8RCHZ.LHZRB\\Z.LJ1\nM+R\\Z.LK*+Y$ORLHOAH8Z.D&1.CHZAI$ZAB\\O.B^1+SHO:9%!:3J1:6EID9$Z\nM:6G'D6F&+Y%IAI&104&1+Y$Z.I%I.B^1:6DO.CHZ.FF1D3HZD3HZRCK*+SHZ\nMD3HORLJ1D3K*+R\\Z.FUS0=@Z<\\HZRMC*RG-S;7/*<\\ISV-@\\V-C8;=@\\<Y9M\nM<SS8;3R617-MT3Q%<SQS13S=<W,\\/#P\\T=W=T=U%/-T\\17=%T=W1T7=%=W?=\nM=W=%W7>%17=W0-'1W=W=A=&%T4#=2=W==]U)W4!W=]U`=TE)W=V%24!`A4!W\nM24E)=X5)24EWA7=)27=W=W=`27=W0'?==TF%A85`A=V%27=W=W=)=W>%W4!`\nM287=285`A=U)24\"%A=U`=W=W=W>%=X5W=T#=A=W==X5W0(5`W7?=W85W0$#1\nMA7=W=]W=W='1=]W1W87=W7=WA7?=A87==W?=W=UWW=%WW7?=W7?=0'?==]UW\nM(W?=A7?1T=%W0-&%=]W=W=W1=W?=T85WA7=WW84CW=&%=W=WT7=W0-W==]UW\nM0-%WW4#1=]UWT=%W0(7=A7>%A=UW0-W=0'=`W7=W=X5W=X7=0-%`A=$C=]UW\nM=]UWT4!WW7=W0$!WW4#1W=W==]UWT7=`=]V%A=W=W4G==W>%A7=`=]%`W7?=\nMW7=`=T#=0-UW=]U`A7=WW4`CA=V%=X7==W=`W4!W=]UW=X5W0'=)=]W==T!W\nM285)0-V%2=U)0'=`=W=)=^.%0$GC0.-)=^-W24#C=W?C285)XTE`287CX^/C\nMX^-)24GC24#C0./C0./C2>-)>^-[27OCX^-)>XHLQQXL+#5]+'W'O\\?'OQX>\nM?2P>+\"S'OWTL?34L?7UT+#6_+\"Q]+'U]OWTU-34L+'0>?34U?2QT77U=-7TU\nM'AY]-5U]734L+'U]+'TL?2QT77TL77TL?5U='ETU='TU+!XL?34L=%U='BQ]\nM+\"PL+\"Q]+\"R_-35T+!XL?2Q]'BPL-;\\U?7U]+,<U+,<LQRS'OS7'OS4UORS'\nMQVDUQ[]I-<<LQS5I:<>&QS7':8:_AK_'+VF&:<<OQY''QY%I+\\=I+Y%I.I$Z\nM.CHZ.B\\ZRCK*.CHZRLHZ+\\HZ+\\K8.LHZ;3HZ.LK8RMC*RLI!.MAM.MA!V,J6\nMRG/*V'/*V,J6<Y;8V',\\V'/*/#S8ECS8/#R6/#S8/'.6EG-SV#S8V'-S<W-S\nM;9:6<VW*/-B6/,K*/&US<]@\\<\\K8<]ASRLISV&W*RG-SV&UMRLK*RLIMRLK*\nM.CK*+VW*;<HZV#HO+R\\Z.CHZ.LK*.LK*RCI!.LHZ:3J1D3HO:6DZD3HZD3J1\nM:9%ID9%I+SHZAL>1D6F1:88Z+Y%I.I&1:3HZD2^&.B\\O.FDO:3K'D3HZ.I%I\nM.FDZ.CII.CJ&D<K*RH:1RCK*D<J1D=@ZRI'8.LHZ.CHZ.CK8RCHZV-C8RLHZ\nM<\\IS;<IS;7-M;=B6<W-S;7/81=A%/',\\13QS<SQM/#QSECS=/#S=/$66T=W=\nM/#P\\/$5%/$7=T=U%T=UW=W=W=]'==]V%T86%T7>%T7?1=]UW=]W==W?=2=W=\nM=X7=0-UW0$!WW7?=A4EWA86%=TE`=W=)27=)A4EW2=U)0$E)W7?==TE)=W=)\nM27<C24EW=W=`285WA7<C24E)W7=`=TF%24E`285)=T!)285)A=UWA=W=W=U)\nMW4!WA4#=24!WW85`=W=W=]V%W=U`A7?=W7=W=R.%=W=WW87=W7?=T=%WW4!W\nMW2-WA=W=W7?1=]W=T='1W7=WT7=WA=W=A=UWW=%WT=W1A87==]&%T7?=W2-W\nMW87==]V%=]W=W='=T='=A7=W=]W=W=W==W?=W4#=W=W1A=%WA86%T7=WW='=\nMA7=WW2-WW7=WT=UWW86%T7?1W7>%W4\"%A85`W87=A=UWA7=W=]UWW=W=W=W1\nMT7=WA7?==R/=W=TC=T6%W45W=W=W=]W=W=&%0-W=W='1=]'==]W=W86%=]V%\nMW4\"%W85`=]V%0-UW=TE`0'=WW7=`W=UWA86%W7>%0$!W0(7=24!)=]UWW4F%\nM24EW2>-`27=)XTGC287CA86%0.-W0$E`A4#C2>-`XT![XWM)0./C27OCX^,L\nM-2PLO[\\L?;]]+,<L-;^_-2P>+#4>-;^_+,<L?;]]?;\\U=#6_ORQ]-2PL-1XL\nM?5U==%U=+%U]72PL'GU='C5]771T?2Q]?7T>='W\"72QT=%W\"?2Q]NGUT72P>\nM'BQT72S\"++I=?2RZ+\"Q=+'0>734L+%TL'BQ=?2Q]='TU-71]?2P>++\\L+'T>\nM-71]-34L'AXL+\"PL-2R_+\"R_QS7'+,?'QRR_:34U:6G'+&F_OS4UD<=IAL?'\nM:9&_:<<OQ\\=IQY&1QVG'+VF&.CJ&:4$Z.CHZRI'*03J1.LK*D3K*.LIM.B\\Z\nMRD'80<K8RM@ZV-C8<VW*<]@\\RG-S<\\J6<W/*/&UMRMAMEMAS/',\\/)9SRG.6\nMECQSEG,\\<SP\\<SP\\<W-S<W,\\<\\K8<SS8ELIS/'/8<\\H\\;=AM/'/8V,K8/,IM\nMV#K*;3ISRG/*.CISV#K8V'/8.CK*.B_*.CK*.M@O.LK8RCJ1ACK*.LHZ.B]I\nMRH9ID6DZ+Y&1:9$ZD9$Z:2]I:6DO+Y&1QY&1QVDZ.L<Z:8:1D<?'+Y$ZAB^1\nM.I$ZQY$OQSII:3HZD9$Z:2\\O.LK*RFEI:3HZRI$ZD<K*D2]!.B\\ZRCK80<HZ\nMRCHOV#K8.CK*RFW8V,K*RMC8V&V6RMC*/'/*V)8\\EG,\\V-@\\V#QS<W-S/#P\\\nM/$71T9;=T='=/$71/$7=T9;=13S=/-$\\/'=W17?=W=W=W47==W=WA='1W7=W\nMA86%=]%`=]%W(]W==]W=285)A4EW24E`A7?=W7=)24\"%0-U)A7=W24E`A4G=\nM285)24E)W7>%0(4C0(5`0'?==W=)=TG=24F%A7=)=TEW0'=W0'=`=T!W24\"%\nM24!)27>%=TE)=X5W287==W?=0'?=W7=)0-V%=W>%0$!W=W?=0-W==W=W=W<C\nMW4#=T86%W7>%T85WT4!WW=W=0-V%T=W=A=UWW=W=T4!W=W>%A45WW=%WW=UW\nMW7=WW7=W185WA=&%=W=%A=W=T7=WW7=WW=U%T7=WW85%W87=W46%=W?1A7>%\nMT46%W=UWW871=]%W185WW=W==W?=W7>%A45WW45WA=W11=UW=T7=T=UWT='1\nM=W?==]W1W=UW=W?=T7=WW45W17?1=T5%W=W=T45%=T5%W7=W=]W==]W==W?=\nMT7=WT=UWT7=WW7?=A=%WW=UW=]V%T=W1T7?1W7>%=T#=W7=WA7?=W=W=W=W=\nM0$#1=X6%0-UW0$!W0$EW0-W=A7=)2=U`24E)0'<CA4E)24GC24`C27=)0$F%\nMA4!`285`24F%XR/C0$DUORPUORP>'L?'-2Q]O\\=]-34UQRS'?7TU+#6_+!Z_\nM+\"Q]?1Y]-2PL?2Q=+!Y=+!Y]+\"PL+%TL'BPL?5TL72PL-2Q]771]++I=?<(L\nM?7TL+'TL?7U]75VZ?;HL?7VZ='VZ?7VZNEU]?1Y]+'2ZNAY]?<(L'KI]=\"PL\nM+\"Q=PETL72Q]='U]=#5]-2QT71XL?1Y]+#6_?7U]+,<L-<<>-34>+#6_-34L\nMQRS'+\"QI-<?'O\\<UQ[\\U:<?':<>1D9&1O\\=ID88ZQVF1:6F1.CHZ+X:1D<HZ\nM.CHZ+SK*.LK*.CHO.B_8.D$ZV-C*RG-S;3K8;=AS<VW*;<J6<W/8V);8RCQM\nM;=C8RMC*EI;*ECP\\/#P\\/#P\\V#QM;=C8;3QSV#P\\V#QS/-@\\/);8V'-SV-C8\nMRFW8<Y;8<W/8/'/8RLK8RG/*RG/8V&USRLK8RLK*V$'*V-@Z;6W*RLHZ+SI!\nMRMC8RLK*D2\\Z.CJ1D9'*+VF&RFDZ+VF1D3II.I$Z+VDZD9$ZQR\\Z:6DZ.CJ1\nM.L>1ACII.L=I+SII.FF&:2^1.FEID<<ZD89I+T''QR\\ZRCJ1+VDZD8;*D<J&\nMALHZ.I%!.H:1.CHZ.CHZ.LHZ.MA!.FW*V,HZ.M@Z0=C8;=AMV'/8/&T\\;6W*\nM<\\H\\/'-SRG,\\;98\\/#QS<T5S<SP\\<]$\\T7-S144\\T3S=/$7=W45%1=$\\W=W=\nMW=W1=]UWT=W1T85%T=W1W7?1W=W1W=W=A7=WW7=`W=W=W=U`A86%A=V%W7=)\nMA7?=A85)W87==]U)=X5W0'?=A85`A7>%0$!)A7=)27?==W=W=TE)0'=W24E)\nM=W=W24G=A7>%A4E`=W<C27>%=T!`=W=)0$!W=X5`W85W=X5WW4!)W=U)0$!W\nMA=V%W=W==X5WW87=A7=W=X7==]V%=]U`=]U`W7=WT=W==W<CT=W==X5W=]V%\nMW7?1A7?==]W1T=UWA471T7?==X5W=]'1T=%WW7=WA=%%W=W11=UW=]W1=]W=\nMT7=%W45W=T5W1=%WT7=%W471W=%WT=UW=]W=T='==]W==W=%=]%WT47=T7?=\nMT7=WT45%/-UW1=%%W47=W=T\\/'?1/$7=W=T\\W=W=W=W=W7=WW=W1T7?=T=W=\nM/-T\\W=%%T=U%=]'=/-U%T44\\1='=T=%WT=W1W=U%T45%W=W=1=%%=]W1W47=\nMW7=W=T5WA7=WT7?=T7?1W7?1W=V%W86%A4!WT=V%=T!W0$F%0'?=W87=W7>%\nM2=V%24EW0$E)24!W24E)XW=W0$E)24EW0.-`=W<L++\\U+#4LQS7'+\"PL-2R_\nMQRPUQRPLQ[_'-7W'+'U]'BQ]-2R_'GT>?5V_++]=?7TU+#4U-2PU?71=PGTL\nM75TL72QT?5U=?;I=PEU=77TLNGVZ++JZNGW\"NBQ]NKI=NGU]+'U]NKI=LKI=\nMNKJZ7;JZ?7UT71Y]NKHL'BRZ?2Q]'AZZ?;HL=,*Z?2PL+\"Q]+%TL?2PL?7TU\nM?7TU-;]]'C6_+\"P>-1XU+!Z_-1X>Q[\\L+\"PLQ[^_-<?'-8;'-361Q[^&D<?'\nMQ\\?':6G'.L<O+VF1AFEI:6F1.LHZD3HO0<K*.LHZ.FW*RMC8V&W*RCHZ<W,Z\nMRLISV,K8RG/8V',\\<Y8\\V#QS/);8/-B6/',\\V'-M<W-SV#QS<]@\\<T4\\V#P\\\nM<Y9S/#P\\<]@\\/&T\\V&T\\RMC8;3QS/#P\\RG,\\<W-SRG-SRLIMV)9SED%MV#K8\nM.CK8V'-S.LHZ.CK8.FTZ.CHZD3HORD'*+\\K8D3HO+SI!RCK*RI$Z:9'*06F1\nM+VDZ:<>1.FDZ.B^1D6DZD3HZQR^1D2\\ZQY%I.H8OQX8Z:9%IACK':8;':<<Z\nMD<<Z.I&&.CHO:6DZD8:1+SHZ.D&1D2\\O.LHZRCHZRLK*V-C*D3K8RM@ZRMA!\nMV#HZRG-SRMC*V);*RG-S/,IMRFUM;3P\\EM@\\V#P\\EG-%13P\\/#P\\T7/1EI:6\nM/#Q%13P\\EM'=W=W=T=W1/$7=W=UWT7=%=]'=W=%%T7>%W=UWW=&%W7=WA=W1\nM=]'1285`0$!)W=V%A4EW27=W287==W=W=T!`=T!)0$!)24!)=W=)W7=`285`\nM27=`0(5)A4!W0$\"%24EWA7=`A4E`24!`285W27=W=W>%=W=W27=W(W>%W=U)\nM=]U)0'=W=W>%0'>%0$!W2=UW=W=W=X5W=W?=A=UWW=UWW='==W=W=T!`0'=W\nMW7>%=W?==X5W=]'=A7?1W='1=W=W=X7==]UW1='1W=&%T7>%A86%17?1=]W1\nMW=W1=W=%17=%=W=W=T5WW7?=T7?==W?=1=%W/-W=W=U%1=W==W=%T3S==T7=\nMT7=%1=T\\W=$\\17?=W3S11=T\\/$5WT=W1T=T\\T='1W44\\W=T\\/$7=/$4\\T3Q%\nM/#S=W3S=/-T\\W=U%/-W=W=U%T=%%T=U%1=T\\W=U%/#S=W=V6/-U%W=$\\W=%%\nMW=$\\W3S1T='1/#P\\13S11=%W=T7=W='==]T\\W=W=W7=W1=W=147=W=V%=]UW\nMW='==]U`T7=`0(5`W=W=24!)W4#=W4#==X5)0'=`=W<CW4E)=W=`2>-`0'?'\nMO[_'+\"PLQ\\?'-;\\LQS7'Q[\\>+,<>+'TU++\\LQRR_-7TLO\\=]?7TU++\\>?5TL\nM+\"QT=\"PL+\"PL-71TPET>+%U]PGT>71Y='GTL72RZ=%U=?;I]'KJZNEVR7;H>\nMNGVZNEU]?;I])ETF?29]LKITPGU]PEU]7;JZLKJZNEVZ?1ZR?;JZ75T>NAZZ\nM?70L771]+%U]?5U=+%UT?2P>+'T>+'UT72Q]?1XL+\"Q]+\"PUQWTUORR_-2PL\nM+\"QI+&F_:<?'QVG'QVDU:<=IO[_':<<Z:3II+SIIQVF1+R]!+T&1.CK*+\\HO\nMRI$ZD3K*RCHZRLHZV'/80=@Z<W-MRLI!<Y;*<\\K*<\\IMV',\\EFT\\<W/8/#QM\nM/&T\\<VU%;7/8;3QSEMA%V#Q%V#QS/$4\\;3P\\<\\H\\<W-S<]C8<SP\\ELH\\<Y9M\nM/-ASELK*<W/*RLK*RLK*<\\K*RMC*<\\HZ.LK8.CK*RCHZV,K8RCHZ.CHZ.CJ1\nMRB_*.CHZ0<I!D3J1+X:1:3J&D6F1D6G'.I$ZD3J1+SJ1:<=I+SK'QSHZ:<>&\nMAI&1.H8O.FDZD3J1:2\\ZAL=I:88ZD3K'D2\\Z.D%ID3J1:3HOD8:&D<J&.I'*\nM.I'8+\\HZ.LK*V,K8+SHZV#I!V-C8V'/8V'-!RFUS<W-M/)8\\V#S8<VUSV#P\\\nMV'/8V$5M19;1/#QS/)9%/#S1/$4\\T3S=W47=W=W=/-'=W3Q%/-W=17=%T7?=\nMW=W1=W=WA=%WW86%=X5W=W?==T!W=W=`W4#==]UWA=U`2=U)24!W24E)27?=\nM=X5WA7>%2=U)27=)27=)W85`A7?==T!W=TEW=W?==T!`0'>%0$!W24F%=T!W\nM=TEW24\"%24F%285W=TF%W7?==W=`W4\"%27=)=]W=A7>%=W?=2=V%W4!`W=W=\nM=]UWA7?=0-UWT=W=W4#=T=V%W=UW=X7=W7?1W=UW=T!W=W?1W=%`W7?==X5W\nMT=&%W45W=]'1T7?1W7=WW=UW=]W=W7=W17=W147=W=W=W3QWT7?1W7=%1=W=\nM=]W11=$\\W=%WT3Q%/-W1W3Q%/-W1/#S=T3S1T=W=W=W=1=T\\T3S11=U%W45S\nM/#Q%/#P\\199%W3S=/#P\\/-$\\/#P\\T3Q%13Q%13P\\<T4\\W3S=/#P\\/-T\\EM$\\\nM13R6T='1/$5%T3P\\1=W1145%W3P\\145%T3P\\147=145%T=W=W=$\\W=T\\1=W1\nM1=UW147=T7?=W7=W17=%17?==X5W=]'=W=W1=W?==]&%W=UWT=V%W=W=W7?=\nM0$EWW7?=W=V%=X7==T#'+&G'QS4UOS7'++^_-2R_-34L-2PU+,?'QQXUQRS'\nM+!XL+'W'-34L+\"Q]+\"PL+\"PU=#4U770L-2PL'GTL+!Y]?1Y]?1ZZ=!ZZNKI]\nMPGU=+!ZZNEU]NGVZNK)T7;I=)GVZNKJZNKHFLKITNG1=?2:Z72:ZNB:R75VZ\nMNKHFPKI]NGU]=+JZNK)TNGU=NGW\"PAZZPKJZNEVZPKHL+'UT?7VZPAXL=%TU\nM-7TU-7TU++\\L+'TU-2PUORS'OS7'+,?'Q\\=IQ\\?'QX:_-;\\U:<>1AB]ID<>1\nMACII.CHOAB\\Z:<HZ.B\\ZRCHZV#J1D3K*.LK*.CIMV#IMV'/*;<I!<VUSRLIM\nMV'-SRLK*/,IMEMC8V',\\;3QS<VW8EFT\\EM@\\/-@\\;3S817-S<W-MV)9M<]AS\nM<VUS;6US/-AS/,ISV-B6RFT\\/-C8;<K8<\\K8RI;*RLIMRG/*RG/*;<HZRG/*\nMRFW*.CHZ.M@ZV,HZ0<HZRLHZ.LJ&D9&1RI&&+T$Z:3J&ACIID3HZ+SHZ.CHZ\nMAI$O.CJ1D6DZD9$O:<<O:88Z:2\\O+\\<ZAL=I.CHO.I$Z:3HOD8;*AI&1.FF1\nM.FF1:9'*.I&1D9&&RI$ZRI'*RLHZV-@ORLK8.CHZ.LIMRCISRMC*.LK8.G/*\nMRG/*RG,\\<\\K8/#QS<SS8<SP\\/#QM<T5%/#Q%;44\\T3P\\T3Q%T45%T=%%W=U%\nMW3P\\T7=%/-U%=T7=W7?1T=UW=]W=A871=W=WT7>%T7?=W7?=A87==T#=W7?=\nM0'=)=]UW27>%0'=`27=)A4E)0'=`27=W=TE`W7=`27=W24!`0'>%=W=WW7=W\nM24!)=W=)2=V%A85W=TE)24EW285W(T#=27=)=X5`=TE`A=U`=W?=A4F%=]W=\nM27=WA85W2=V%=X5)24#=W7?==]UW0-W=2=W=0$!WW87==]U`W=UW=W=WW7>%\nM=]UWW7?==W?1A=UW=T7=W7?=A7?1A85%1='==]W117=WW=W=W471147=1=UW\nM=]T\\1=W=T=%WW7=%/$5%W44\\=]W=/-$\\/-U%W47=1='=T=%%/#P\\1=W=W3QS\nM1='=/-T\\/#P\\T3P\\T7/1/-$\\<W-S/#Q%EM%S<T7117,\\/$4\\<SP\\;3R6ECP\\\nM145%145S/',\\13S1T7,\\EG/1EG-S<]%S<SQ%T='1T=$\\EMUS<T71W47=/#QS\nM<]U%1='113R61='=W=$\\1=U%W45%13S1/-%%W=T\\147=W45%14711=UW=]UW\nMW7?1=T7=W46%=T6%T=W1T=V%=W?==W?=A87=0(5I-<=IQX8UQ\\?'-6DUQRS'\nM-<>_Q\\<LOVG'O\\?'+,>_O\\?'-;\\>-37'ORPU?37'-7UT+\"PLOWU]'BPU+'1]\nM?1Y=770L?5VZ'G1]NGU=?5VZ=,)]NEU]NG0FPKHF7;JZLEVZ)GVZ?72Z)K*R\nMNAJR='2RLB:ZNKK\"7;I=&AJRPKJZNB8:NKJZ75U=NKI=PKK\"NB8F75U=7;I=\nM71Y]=+)]'KK\"?;HL+%TL+!YT+\"Q]?7TL77U]?5TL-;\\L-37'QS4LQRS'+,<L\nM+\"S'QVDUO\\<UQ\\>_OY%I:2^&+X8ZD3HZ.CHZD9$O+SJ1+\\K*RLHZ.B\\ZV#K*\nMV,HO<\\K*V&W8RG-SRMAM<W-SV,IS<\\IS;6US/',\\<Y:6/#P\\<Y;8;3R6V'/8\nM144\\<W/8/&UM<T5M/#QS199%<SS8<\\IS<W-SV&USELH\\;=@\\/#R6/-C*ELH\\\nMRMC8<]AS<W/*<]AS.CK8V'/*.LHO.MC8V,K*+\\HZ+\\K*D=C*D<HOD3HZ:<HZ\nM.B\\Z.FF&.CII.CII.B^1D3J1QY&1+X8ZD3II+R^1+Y$OQY%I:9$O+R\\O.H8Z\nM+Y&&D2]!:8:1+SHZD3K*+VG*.I'*.H;*088Z.LK*03K*D3K8D4&1V#HZV,HO\nM+\\ISV'/8RG/8.D'*RFW*0=C*<\\K8V,ISELH\\<SS*RCP\\1=@\\ECR6;6US<]'1\nMT3P\\1=%%/#Q%T3Q%/-'1W44\\W471W=W=/'=%1='=W='1W7?=W=%%=T5%1='=\nMT87==X6%=]W1=W=WW7?1=]%WW87=A4!W=X5)A=W=W4EW=T!W=]UW=TE)27=)\nM=X5W285)=W=W27?=A4!W0-U)A4E)0$EWA4\"%(W?=27=)A4!W0'?=W7=`A85W\nMW4E)=W?==T!W0$E)0(5`0$`C=W?==W=)24EW=TE`=W?=0(5WW4#==W>%W7?=\nM0'?=W7=`W7?=W=UW0'?=A='1=W>%T85W=W?=T7>%T=W=145%=]'=T='==]U%\nMT7?=W=%W=SQ%W3S=W='==]$\\T7<\\=]W=/-'=1=%%13S1/-$\\/#S=/-T\\W=U%\nMT44\\1=W=1='1T99%17,\\<W-%13Q%/-%%13Q%<]&6<]'1<SQS;6V6;=$\\/$5M\nM145S;3QMV'-%1466/'-S198\\V)8\\;3QS/'/8<VUS/#QS<W-M<SQS;45%/'-S\nM1471<W-%T3Q%13QS/$4\\<]'=<Y;1198\\/-W=1=W=/-%%ECQ%W=W1/-$\\/#S1\nMW3S=W7?=W=W=T45%T7=W17=%W=UWW=W==]W1W=W==W=W=]%W=W?1W=UW=]UI\nMAI%I-;_'OS5I:6G'Q\\?':;_'QVF_O\\=I:2QI++_'O\\>_+,?'QRS'O\\<U+!['\nM-7TU-34U'C4L'GT>=\"PL+,)='GTL+%TL?7TL+\"P>772Z?;JZ?7U=NK*ZNK)=\nMLEUT=\"8:NAHF)EVZNKHF7;HFLB:ZNKJR)B:ZLAI=&AH:)B8F&AJZ7;+\"&AJR\nM&KJRNEVR&EVZLKK\"7;JZLK(F?29=7;JR='U='KJZ772ZNGU]NG1]+\"Q='G0L\nM?5T>='TL?34L?2Q]++\\UQ\\<LQVG'O\\=IQ\\>_-;\\UD<?'QY&&:9%I:<>1+SHZ\nMD88OACJ1D3K*AB_*+\\K*.CK*V$$O.MC8RMC8.MA!V-B6RFV6EG/*<\\K8V-AS\nMV-AS/',\\EG,\\<]@\\V'/*V#P\\;=C8<SP\\<SP\\/$5%17,\\V#QM/'-%<W,\\/#P\\\nM/-AM<W/*EMB6<\\K*RI;*;<IM/'-SRLISV-C*RG/8RLISRCI!;3HORMC*+Y'8\nM+Y$Z+SJ1.I'*RI$ZACJ1.CI!D3HZ.I'*D<I!D3HZ:9$O.H8ZD3HO.I%I+SHZ\nMD88ZD3IIQVDZD2^1D9$OQT%ID6DZACJ1D3J1D6F&03II.CHZD9%IRCHZRLI!\nMACHZRCJ1RLHZRLHZ+T$ZRMC*RCIM0=C*V-C8<SISV-AS.CK8<]ASRG/*/,IS\nMV&V6/#P\\V'-S;6U%13Q%/#QST3QS13P\\/#P\\EI8\\/)9%T471W=W1W47=T47=\nMT=$\\W7<\\W7?=T7>%W85W=X7==W>%=W?=W7=W=]UW0-UWA85WA86%W7>%A=V%\nM=W?=A4!WW7=`285`=W=`27=`=TF%0$E)W4EW=T!`W=UWW4F%27>%27=W=W=`\nM=W=)A85)=]U`24E)=TF%=T\"%=TE)A7=`=W=`0(5)W85WA4!W=W=`W4\"%W7=`\nMW4\"%(W=)W4F%=]UWA7=WW4!`W7=W0$!WW=TC0(5W=]W1W=U`W7>%T=UWT86%\nMW45W=W?==X7117=W1='1=T7=1=W==]'=T='1W7=W1=W1/-W=W3Q%/-'=/#R6\nM/-T\\T=V6T3P\\W44\\1='1/);1W471/-%S1='1;98\\T6U%/#P\\T6T\\<T4\\<Y9S\nM<SQ%;3Q%V',\\<Y8\\/',\\<VUS;=C8<W,\\;3S8<W-S/)9%/#P\\<SR6;3P\\17-S\nM<W-%/#QS144\\<T5S16US;7-%/#P\\/$5S16U%<SP\\13S1<W-%ED4\\T=$\\T=$\\\nM/-V613R613P\\13S1T3Q%W3S113P\\/-'1/-$\\T=W11=W1147=W47=T=$\\T47=\nM=T5W1='=1='==]UWT=$O+Y&_OY&_Q\\?'D;_':6EI:6F1O\\>_:9%I:6G'QVG'\nMQ[]I+#4LQRPL+,?'QRPLQS7''C4L'C5]OQXL?7U]?34L?5U=+\"PL+%U]NGT>\nM?5U]77U]?7U=PB9]7;HFNL)=)ETFNKHF729=)KJZNKK\")AJZ)KJZ)KHFLAHF\nMLK(FLB:Z<B:ZNKJZNKJR&B:RPKJR&ETFNAH:)B:ZNAI=NKHF)B:ZLK+\"NKJR\nMNGU=NK*ZNAY]7;I]PBP>='TL75T>-7TU=#4UOWTL++\\L+#4>++\\L-2QIOVDL\nM:<?'-<>1:9''QR^1:<>1QVEI+VEI:6DZACK*:3HZ+SK8+]@O.CHZ;6W8.G,Z\nM;=AMV-C8;7/8RLISRG-MV,ISV,IM;3S*;<ISECQM/-AMEM@\\EI8\\/&V6V)9%\nM<SQM<VW8<VW8V$5%/#QS<SQMRFT\\RLK8EMB6<\\IS;6W8;=C*/,IS;7-!.LIS\nM<\\IS0<HZ.CK*RLHORMC8RFW*RCK8.LK*D3K*.LHOD88O.LK*D2^1+SJ1D2\\O\nM:2^&.CHO+\\HZ.CHZ:9$O.B\\Z:9$ZD2^1.FDZ+T$Z04$O.FF&03HZ.H8O.CI!\nM.CHZ:3HZD88Z.CJ1RCJ&RH8ZD9'*V#HZV#K8RM@ORMC*V#K*RCK8RLK*.FUS\nMRCIS<]AS<]A!RI9S/#QM/&T\\/-C8;6U%/#QMV#QS/$5S1=%SEI8\\/',\\/-%%\nM/#Q%W=V61='=/-U%1=T\\W3S1144\\1471T='1W=W1=]W=17?=W=W=W=W1=]UW\nM=X7==]W=W=%WA7=`W4!`2=UW=W?=A=U`0\"/==]U)=X5`=T!`=TE`A=W=27>%\nM285W=X5W27=W24!W24E)=TEWW4EW=X5`=]U)0$EWW4!`W=UW=R-)(W=)W=UW\nM2=TC=X5W24#=2=W=A85W=T\"%W4E)=X6%0'?=24G=0(5`0-UW0$#=0$\"%=W?=\nMT=UWW7=WA85W17?==]W=T85W=T71=]'=W7=W=]U%=W=%145%T471=T7117?=\nM14711=T\\145%T3Q%/#P\\T=W1W=$\\17/1W45S199%199ST=$\\;3S1;7,\\16UM\nMEG,\\/&U%;3P\\;45%EG,\\199S<T5MED5S;99SV&T\\<SS8/$4\\V,K*RFUM<SQ%\nM/-@\\V'/81=AMV#P\\;7/8ECQM/'-MV#P\\<Y9SEI8\\V-AS<T5S<SQM/&UM<T5M\nM198\\1471/$5%;7-%17,\\T46617,\\<W-%13Q%<T7=17.6T=USW3R6T3P\\/#Q%\nMW=U%/-$\\W=U%1=U%W44\\W=W=/'<\\/$7=T4711=V1AL<O:3K'+R^&AK]IQ\\?'\nMQ\\>1Q\\?':6F1D;_'QVEIQ\\=I:<=I-<<L:2S'+,<UQS6_+,>_-2PLQ[]]-2PL\nM'AXU+'TU72PL?70>+![\"?7U]?7VZNL*ZNKJZNKI]=\"8F72;\"7<+\")B9=NEVZ\nM&K)=NB8:)AHF&B8F&K(FLK(:&KJR)AH:<B8:NG(:NB8:NKH:LK*Z)AH:)K*Z\nM&AH:&KH:728FLB8FNAJZ75VZNGVZ77U=NGUT7;JZ'GTL?1ZZPGVZ?2Q=734L\nM'BQ]+#4U+'W'-2P>-2PU-2R_O\\?'QVF&:<?'D6F_QSIIAFF&D<=I.CJ1D6DZ\nM.H8ZAMC*RCHZV,HZRMC8V#HZRCK8<\\HZV'-MRLK*RFW8V,IM<W.6<VT\\EI;8\nM/#QM<SP\\;478EMC8V#QS<W-MV&UMEI:6;45S<W,\\/#P\\V)8\\/'/8;<H\\/',\\\nM/-AS<VW*RG/8RMC8RCISV);*V#K*V,K8.MASRCHZRD$ZV-@ZV-@ZV\"]!RCK*\nMD9$Z.CHZD<J1AI&&RCHZ.FDO+SHZD3HOD2\\Z:2\\Z.I%!+SHZD9$Z+Y$Z:6DZ\nMD2^1.B]I:9$Z+VF1.LII:89!:9&1.B_*.LJ1D3K*D=@ORI'*RCK*RD'8V-@Z\nMV#HZRLK806W*.G-M;3K8;4'*ELIS.G.6V-ASV,J6RCQS<\\K8/#Q%/#Q%/&US\nMV#Q%;44\\/#QM<SQS/',\\W='=1=%S1=W=W3S=T=T\\W44\\13S=17?=W45%=]'1\nMT='11=W==]W==]U%T7?1A47=T=UW=X6%A=UW=T!WW7?==W=W=W?=W7=`A7>%\nMW7?=A=UW0'?=0(5W0'=)=W>%285)W4!WA7?=0$EW24F%W85)27=WW4#=A7=W\nM=W=W=T!WA7=W=T!`W4F%W4EWA4EW24!)W4EW=]UWW=W=24!W=T#=0'=)A4EW\nMW=UW0-U`=W=WW='==]'=A7=WT=UWT7=WW=UW=W?=W=W1T7?==T711='1T471\nMT=%%=]T\\T=W=W=T\\144\\T=$\\/$4\\1=W=T3Q%/-W113Q%/',\\EI9S13R6EG/1\nMED5%/$5ST3QS145%;7-M<W,\\EFT\\/#QSEG,\\<SQSV-AS;3P\\<]ASEMASV#S8\nM/-AM/',\\<]@\\;6T\\V,K8<VW8/'/8V#QSEMAMRCQS;7/*<SR6/-AS/#S8/',\\\nM<W-M/)9S144\\/#P\\13QM/$66144\\;3Q%/-%S;='1<]%%/'/1T3P\\EG-S13S1\nM13S=/#P\\EI;=/#R6EG.6W='=T47=/$5%W=T\\T3P\\W=T\\T3P\\T=T\\W471T=W'\nMD<?'AI''QSII+VEIAFEIQY%IAL?'.B^1D2^_D;_'D37'D9$UO\\?'QS6_QVEI\nM:6G'Q[\\U-37'-<<LORP>QRPL++]]-7TU+#5]77U=+%U==,(LNEW\"=+H>772R\nM?7U]?7U=PK)=7;JZNET:&KJRNAH:&AJR)KJZ&K)R&G(:&G)R)B8FNKH:&KH:\nM<G(:&K(FLKJR)B8F<AIR)G*ZNG(F&L(FPK(F&B:RPAI=NK(:NK)=72:RLG1]\nM?;JZ='VZ'KI]772Z?5U]+\"Q]77TU-35]?34UQ\\<L+\"R_+#7'QVEIQS7'QVF1\nMAC7'+Y'':6G'.FEIQSJ1.I$ZD3K*.LK*.M@ZRCK*V#IMRB]!V,HZ.CHZ.MA!\nMRMAS<]C*V,K*V,ISV,IS<]@\\/#QM<SS8/',\\<W-S/#R6;3P\\;7.6/'-S<W-S\nM<W.6EG-SV-B6<VUS;3QSEG/8RLIS/'/8V'/80<I!<SK*V,K*V,K*RLK*.CHZ\nM<SHZ.M@OV,HZ+SK8+SK*RLK80<HZ.M@ZD<HZRI$ZRI&1.LHZ.CHZD3II+X8Z\nMACHZD2^1.CJ1.D&&D3HZD2\\Z:9$Z.B^1.CHOD3HZRI$O.I&1RI$ZD<K*RB^1\nMACHZD<HZRB_*V#K*RCHOV#HZ;4'*RCK8.FW8<W/8V&W8;6W*<VW8V&W*V#QS\nMECR6EFT\\/#QS;=C8/',\\V$5%16T\\;7-S<VUS1=$\\<W/1T3P\\EM$\\EG-%/$5%\nM/#Q%W='=W3S=W='==]T\\T7?=W=UWW='==T7=T7?1=W>%187=T=UWW=V%T7>%\nMA7?=W4#1T=W=W7?==]U)=W?==TF%A85)=T!)W4!`W4F%2=U)24#==X5W27>%\nM27?=(TE)W4EW=TE)27?=W7=WW4E`=X5WA4!)A7=W27>%=T!WA=UW0-U`0'?=\nM=]W==]UW0'?==X5W0'?=A4EW=W=)=W?=A7?=W85`W=W1W7?==W?=W7?=W=UW\nMT=W1W='=W='=W=%%1=%%W47==T71=]'=1=%%W47=T3R6/-%%ECS=/-'=/);1\nM<SS11=$\\<]'113S1/#Q%/$5%<]%%EG/8<VT\\16T\\/)9S/#S8/',\\<W/8/#P\\\nM/-@\\<VW8RCS8<]C8<SQM/#P\\<VW8V#S8V#S*<W,\\ELK8V-@\\/'/8<]AS;7/8\nM<SQM<SQS/#QS<VW8<SQM;7,\\/#P\\/#QS<SS8;=@\\/$5%<W-%<SQS/'.617-%\nM13S8/$5MEG,\\<W-M;6T\\<W,\\17-ST44\\17,\\13R6/-'11=$\\EG-S<SP\\ECQ%\nM145ST45%17,\\198\\13PZ:6G'.CII+R^1D6DO:3K'D6EID<>1.I$ZQ\\?'+R]I\nMD<?':<>1:;_'QVF_AL>&:6G'Q\\?'QVEI-37'+,<L'L<LQ\\=]'GTL+'0L+\"P>\nM+!Y]'EU='BPL77VZ75T>NKJZ7;JZ)KJZ)KJZ728:NB:Z)K(F)KH:&KJZNAIR\nM&AIR<B9R<AIR&K*R)G*Z)AIR<G)R<AIR&AH:<B:Z<AH:<G(:<G(:<AJZ&G*Z\nM&G*ZPAH:&B:ZNKHFLAHFNKJZ)KK\"NKIT?5VZ?;H>+%U=77T>PG0U'BPU-7V_\nM-<<L-;^_O\\<U'K\\U:34U:<?'AFEIAL=I:6F1:6F1:<>1:2^1:3II.CJ1+Y$Z\nMRM@Z.D'*V#K8.LISRCK8<W/*;=C*<Y9S;=B6RLK8ECP\\<]ASV-AS/&UM;7/8\nM/)9S/#S8<SS8RG/*V#P\\<W/8/#R6RG.6V,IS<W.6V&USV-ASV,IS/'-SRLJ6\nM;6UM<Y;8RFW*<VW*.LK*<]AS04'*.MC8V\"_8.B\\ZRLK8.CHO.CHZRCHO.CK*\nM.LHO+\\K*D9$O.CII.I'*:9'*.D&1.CHZ.LIIRCHZ.LHZRLHZRFF1.CJ1+\\II\nMD4$Z.LK*+SHZ+R_*+SJ1.CJ1RLK*.CJ1RCK*RCHZ.LIMV-C803K*RCHZV#HZ\nM<W,Z<]C*RI;*<\\K*<\\K*RMAM;=@\\<]AS;=@\\<SR6/#P\\<T78<SP\\17-%/'-S\nM/$4\\/)8\\/'-ST3S=13P\\W3P\\W45%W=T\\14711=U%=]W1T=%WW=UWT47=W=UW\nM17=%W45WT45%T85WT7?=(X7==]'=0-UW=]%`0-V%W7>%2=UW0-UW=W?=W87=\nMA4!)A=UW=]UW27=)27=W=W?=(X5`0$E)=W=W0$EW=]W==X6%0'?=W=U`A7=W\nM=]UWA=V%A=W=24E)0$G=W7>%W=U`(W=`=W=W=W=W27?=A7=WW=%W0(5WW=W1\nMT85`A=W==]UW=W?=W=UWW7?=17=W=T7=17?=W7?=/-W=T=%%=]T\\/#S=W=T\\\nMED5%W44\\EM$\\/-'=EM$\\W7-%EI8\\/'-SEG-S<Y9M<Y8\\13P\\<W-S;45%<W,\\\nM/'.6/#Q%<W-S/#P\\/-@\\/#P\\;=@\\RMAS/);8<VT\\;=C8<SQM<SS*<SP\\V)8\\\nM;=AS/',\\/&USV'/*V#QS;7/8/-@\\EMC8/&T\\/#QMECP\\V',\\<]A%/-@\\13P\\\nM<W/8EG,\\16UM;6W8<VUS144\\<VT\\<Y9S144\\1=&6<SQS/',\\<T5S/'-S199%\nM/#QS<T66/-%S/#R6<]$\\1=$\\ED4\\<SQ%19:6T3S'+R^1+Y&1AFEI.FF1AB\\Z\nM+SJ1.H:1.B\\O.CHOD3J1D2^1QSK':3K'+\\>&+X:1OVEID6F&O\\>_-6DLOVEI\nMO\\=I:<<L-2PL'BPL+'TU+'UT+%U='BPL?5TL?5U]7;JZ?;I]LGVRNL)TNKK\"\nM)KIT7<*R)K(:&KJZNB:ZLK*ZNKH:NAH:<KHFLG(F<G*Z)G(F<AIRLG(:)KIR\nM&K)R<AH:)AH:&KIRLK)R&AH:)AJZNKIRNK(F75T:LETFNKJR)KI=)KJZPEU]\nMPGT>?;K\"75U='GW\"'EU]+%U='BPU+'U]'L<U++\\LQRS'-37':36&:;^1D6G'\nM+VG'D2^&+Y%I+VF1:2^1.I%!+\\J1D3K8V\"\\ZV#K*.MAM.CISV$$Z.LIMRMC8\nMRMC*RLISV,ISV);*RCS*<\\H\\<SS8V#QS<W/8;6US/#QSEG-M;6USRCS8V-AS\nM/#S8RI;8V-C8;7-MV)9S<SS*;<K*V&V6EMC*;=C*V-AMRG-MV,K*V,K*;3IS\nM.FW*06TZV,K8V#K*V#J1RMC8.LHZRI'*+]C*RB^1+\\J1.I&&+Y$(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\",J1D3HO0<K*D9&1.LJ1.D&1D4$Z03K*RB_8RI$ZV#HORB_8\nM+]C8RD'8V#HZV,K8V-C*V$$Z<VW*;98Z<SISRLK*/,J6RCS*RLIM<SQM/#P\\\nM/#QSV-@\\<T4\\<T4\\/#P\\\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(13S=/-W=/'?=\nM=T7=W='1147=T=UWW=W==]W=W=W==]UW=]&%=]UW=W?=W7>%W=%W=]W==]%`\nM=W>%0-UWA=W=27=)=]U)=]U`0(5WW=U)27?=W4EW=TE`W4E)0'=)A87=24E)\nMW7=W24!)=X7==]U)24E)286%=TEWW7=WA7=WW4E`=W>%A7>%W=U`0(6%0$G=\nMA=W=W=UWW=W==]UW=T!WW7?=T7?1W7?1=W?11='1T7?=1=%WW='=W7?=T45%\nM1='1W47=T=T\\T=T\\T=W=W3Q%/-'11=$\\13P\\/-T\\/'/1/'-%/$5%/'-%<T5%\nM/#P\\/$5S1478/&T\\V&W8V#QM/'-S<T66/#QMV-C8<SQMEI8\\<SS8/)8\\RFT\\\nM<SP\\V#P\\<W-M;=@\\<VUS<SQSV-ASECQMV'/8<SS8ECQS/-B6/$78/#P\\<]@\\\nM<SS8V'-S<SP\\<]A%V&US<W.6V$78;7,\\<W-M;99S/#P\\<SQ%/',\\16V6;99%\nM17,\\/&US;7,\\V$4\\<SQ%<T5M<VT\\/'-%/$4\\/'-S/#QS<Y9M<SQ%/$5%16TO\nM03J&09&1.B_*+\\J1+VDZ+Y$Z+VF&RI$ZD<I!03II:8:1:3HZAL>&+R^1.CII\nM+\\?':6DOD9&1-6EIQY''-;]IQRPU-36_-2PUORP>+!XL?1XLORQT'GTL=%UT\nM71Y]+'U]?7TLNGVZ'GU=PKJZ)K)=)EU=)ETFLKHFNKHF)AH:LAHF<K)R<B:Z\nMNB8:)KH:LK(:<AIR&G)R)G(:<K*RLG(F)B:Z)AH:)G(FNG)R&B9R<B:ZLAJZ\nM&KJZNB8:LEVZPEVZ7;I=NK*ZNGVZNGVZNKI=771]?7U]+'0U?2QT+\"S''GW'\nM-1['Q\\?'QVDLQ\\?'QVEIQY%ID9%IAI%ID3HZ.CHO:9&1D89!09$Z.CHZRB_*\nM.LHZ+SIM.M@Z.LK*<W-SRLJ6<W-S07/8<W/8;=AMRFT\\V-B6<W.6<SS*/#P\\\nM<VUM/&US/'-S/'-S;=C8<SP\\/'-M;<K8/&W8<W/8ELIS<\\ISV,K8RFW*V,IS\nMRMAM<W-SRLK8.CIM0<K*;6W*RLI!.M@O+]AM.LK8.M@Z.@@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`B1.I$Z.LJ1RM@Z+R\\ZRD'*RMB1\nM.LHZD<K8RB\\O.LK*+\\K8.MC*V,IM<\\HZRM@ZRLK*.G-S<T$ZRCIM;7-M<SK*\nMRG-S<Y9MV'/*V&USRFUMRM@\\/-AM/'-S<P@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"$7117?=W3QW1=%%T7=%T=UW=]W=\nMT=W1A45%A7>%=]UW=]W==]W==X7=0-V%A=W=0(7=A4EWA4E`2=UW=X7=A=UW\nM=T#=A4F%2=U`W7=WW=UW=T\"%0'=)=TF%A7?=W4F%0$EW24!W27=)=T!WW85W\nM=TF%=]UWW7=WW2/=W4#==]UW0(5`=X4C=]UW=W?1W7?==W?=W=W=187=W7?=\nM=W?=W47=1='==W?1W3QW/#S=/-W=/#P\\13S=/-W=/$7=W3P\\/-U%/$4\\/'-S\nM/',\\<]$\\<T5S<SP\\/#QM<VUS16U%/$5S17-M13P\\;3QMEFUS/&U%/-AS<SP\\\nM<W/8/-C8<W,\\V'-S17-M/-C*<SS8/#Q%V'/8<SS8;7.6/#S8;44\\<]@\\/#P\\\nM<SQM/'-M/#Q%<T5%EI:6;7,\\13QS/-B6<W-S/'-S/$5M<W,\\EG,\\/#Q%/-AS\nMV&T\\<Y9%;3Q%/$4\\;3QS<T5M17-M<Y9S<T66V#P\\;3P\\EI9%<Y8\\/$4\\<W-%\nM/$5%/&US;44\\EI8\\17,ZD2\\ZRCHZ+R^&RB\\ZRI&&0<I!+\\J&ALJ1.I%!RB^&\nM+VDZ.CK*D3HO+X:1+VDZ:2\\Z+VF1.L>1Q\\?'Q[_'D<>1D35I-6F&Q\\<UO[]I\nM-<?'+#6_-<<L+#4>-;\\>?7U]72Q]?<)TNGVZ+'U]LKJR?72R=%VZNKI=NKH:\nMNB:ZNG*RLK(:&KJZ)G(:LG(:NAJZ&G(FNK*Z<G*R<K(FNAJR)AH:<KIR&AHF\nMLK(:)G(:&AJZ<AH:NB:RNKJR&KH:&KJZ)KJZ7;(FPETFNEVZ=+HF='VZ77UT\nM77U]?5U]7<+\"72PL-2R_+'TL'AXL-2S'+\"PUO\\>_OVG'Q\\>1O\\=I:;_'+X9I\nM:<?':<<O.FEIACJ1AH;*D<J1V#K*.M@ZRB_*.FTZ.FW8RLK*.D&6RLK*RMAM\nMEG-SECQM<VUSV-AS<VW8V'/8;7.6V',\\/#QMRFW8EI8\\RMAS/'/*RCQM;<IM\nM<W/*/,K*RMAS/,IMRFW8<W/*V'/*.G-SV,I!0<IM\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(Y.3D@Z:FID1$KH@0$-B1\nMV,K*.B\\Z.LK8.LJ1V,K*+\\K*+\\HZRB\\ZV$$Z+SK*+]@Z.MAMV,K*RMA!03I!\nMV#IS<VW*RMC*;<K8<]C*;4%S;=C*V'-S<VW8RMAS;=B6RCP\\\"`@(\"`@(\"`@(\nM````GX$*FSZ@KHC<N;D(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(T47=W7=W=W=WT=U%A871=]%WW=U`A=U`=]U`=W<C=]%W\nM0(7=W=W=24EWW=U)W=W==]W=W85)W85`=TG==T!W0\"/=W7=)W85)W=U`W=U)\nM=]V%W4F%=X7=0-U`W=V%=TG=W=V%W85WW7=W=W=W=]V%A4!`W8710-UW=X5W\nM0-%WA='==]W=W7=WW471W=UWT45%W45%W7=WT3P\\W3Q%T='=W3S=/-%%144\\\nMT=U%/#QST=T\\/$71<SS1<]%S13QST='113S1<SQ%ECP\\;3P\\17.6/$5%V$5S\nM/',\\/-ASV#S8;3P\\144\\/#QS/'-%13P\\;6T\\1=@\\<Y9S/-@\\/'-S/#P\\<SS8\nMV)9M<SQS<W-S<SP\\;99%17,\\144\\;3Q%<W,\\;6US/#QS;3P\\13P\\ED66/$5S\nM16V6<SP\\198\\145S13QM/&U%V#QS<SQSECQM/',\\/)9%<SQMV&T\\<T5M<SQ%\nM13QS<W-%<]C8V#Q%V'-S/-C8/)8\\;=AM13QS/):&03HZRI&1.CJ1AI$Z03HO\nM.I'*RI'*ACI!RI$ZRCHZD<HZ+SJ1.CK*RCHZRLII.CJ&RI$O.FF&:6G'D2^1\nMQVG'+\\>&AB^_D<=IAH9IAL<LO\\?'-2S'ORP>+#4U?<<L-2PL?2PU?2P>++I=\nM'AY]NKJZ?7VZ?5VZ?29])B:Z72:ZNETF&AHF)G(:<KH:NKJZ<G(:NB:R<G)R\nM&G(F&AH:<G)RNAIR)G)R<G(F&G)R)B8:<B9R)KIRNKHF&B8F&B:ZLKJRNAHF\nMLAJZ772Z&KHF7;JZ7<*ZLG0>PKH>7;JZ7;I]?2QT+%TL?;^_ORPL?2S'+#4L\nM++\\U:2S'QS7'O[^&OY''D9&1+\\=I.L>&D88ZRFDORB\\Z+T'*+Y$ZV$'8.MA!\nM+SHZRLIM.MC*RMAM<\\K*RMC8RMASRMAS;<K8EMAS;3R6V-C8<SS*V'-SV,K8\nMV-@\\RLISV#P\\;=AMRFW8V,J6V,ISRLISRFUSV,ISV$'*EMC*<W/*<P@(\"`@(\nM\"`@(\"`@(\"`@(\"`@(\"`@(\"`@(\"`CDY.3DY(.#@X.#Y.3DY.2<Z^NKJZNKJ^N<\nMY.3DY*:FID1$KHBY$!#*.LK*.CHZRLHZD4$O0=C*;=C8.LK*;2\\ZV#HZV-C*\nM.CK8.LHZV$'8V-C*V#HZ.CK*.CK8V-C8RD&6RFV6RMC*<W/*RFUMV,IS<\\K8\nM;7,(\"`@(\"`@(\"`@(\"+P3````@0J;FSZ@B-RYN;F(KJ`^FYL*@1?U]?7U%Y^!\nM\"@J;FYN;/CZ@\"`@(\"`@(\"`@(\"`@(\"`@(\"'?==T5%W='==]W1=]UW=X7=W7?=\nM=]V%T7=W=]UWA7?=0'=W0(5W0'?=2=W=0(5W=]UW=T!)=W=)=W=`A7=WW7?=\nM0-W==]U`W85)=W=W=W=W2=U)2=UW=W=W(]V%=W?==W=`2=W==X5WW7>%W4\"%\nMW=V%=X5W=X7=W7=WW=UWA=%WA=UW=]%%=]%W=]%WW7?1T=W1=W<\\=]$\\W45W\nMT=T\\/-U%T=W=/$7=W='1T=U%/$4\\T=W=W45%13R6/#P\\EG,\\/',\\T3P\\/'-%\nM/',\\/)8\\145M;6T\\EFUM<SQS<T5%/$5%145S13QS/#P\\<W-%EG-S199%ECQS\nMV#Q%<SQS;98\\<T5%13S1<SQMT45M<SP\\144\\17-%/',\\<VUS/'-%<SS1ED4\\\nM<SQ%/$71<SQS<VU%/&T\\<SQM/$5%16V6<W-S13P\\T=%%199%/#P\\EG,\\/#R6\nMV'-%;6T\\/#QSV#R6;6T\\/'-S198\\;=AS/&W8/&W8/&T\\V-C*/,K8EFW8<SQ!\nM+R^&.B^104$ZRI$ZD<K*D9$ZD<K*.I$Z.CJ1.I'*.LJ1+SK8RCHZ0<K*.B_*\nMRI%I+SHORCI!.H8O.I%ID3HOD3J1+SII:<?':<>1:6G'Q\\?'OVG'QVG'O\\>_\nMQRR_OWTU-2P>++\\L77U=?7T>?5T>=+ITPKH>?5W\"?2:Z?;(FNKK\")EVZNKH:\nM&L(:PAJR<AIRLB:Z<AIR)G)R<G(:LG)R<K(:&AH:&G(:)B8F&B8:NAH:<B8F\nM)G*R<B:RNAHFNKH:&AHFNKJZ)B;\"NKHF)K+\"LB8F77VZ7;*RNKH>NEVZ?2Q]\nM+'TL+\"PL75U]+#4LQS6_'L>_QQ['O[\\L+&F_QY''OY&1:6F_Q\\?'QX8O.L=I\nM+\\=ID4&104%I.LHZD2\\Z.LHORLK8V$'*V#K8RCK*;3IM;<K*RLISRG/*<W/8\nM<W-SEG/8/,J6/-AS<]@\\V#QS;<K*<\\ISRCQM<W,\\<SP\\RFW8RLH\\<]AM<]AS\nMELJ6<]AM\"`@(\"`@(\"`@(\".3DY.3DY.3DY.3DY.3DY.3DY.3DY.3D@Z:FIJ:F\nMY.3DY.2<Z^OKJZNKJ^OKG.3DY*:FID1$B(BY$+FU.M@ZRMC8.MA!.CK*.MC*\nM.CK*RLHZ.B]SV-C8RLHZ;<K8.MAM.CK*<W/*RFTZ0=C8<\\ISV#IMRG-SRG/8\nMRI;*<\\K8V'/8RG-S<]AM<P@(\"`@(\"`@(\"`@(`+R\\````@0J;FSZNB-RYN=R(\nMKCX^FPJ!GQ?U]1<7GX&!\"IN;FSX^/J\"NKHB(B-S<B(B(KJZNKHB(B(B(W=W=\nMW7=%T=%WW47=W7=W=]UWW87==]UW0-%WW=W1T7?=W=V%W4#=A4\"%W7=W0\"-W\nM0$#=0-U`=T!WA4G=0'?==]UWW7=W=]U`W4\"%W85W0-UW=]UWW85WA7=)=X5W\nM=]V%W7?=0-UWW7?=W=UW(X5`W2-WT7?=T7?1T7>%=]V%W7?=A=%W=]'==W?=\nM=]'1W45WW=U%T=%%W44\\1=U%13S1/-$\\145%T=W1/#Q%T=$\\13P\\W3S11=$\\\nMW7,\\/$4\\T7.6T=%%/)9%EG/113S1/)9S<W-M145S<T66EG.6/#R6/-$\\EG,\\\nM<W-%/#Q%/#QS<T5%ED4\\/$5M/)9%/#QS;3R6/-$\\1=$\\/#QS/#P\\<W,\\/-$\\\nM<W-%/#R6T7,\\/#P\\<W,\\1=$\\<T4\\/#P\\145S<SP\\145S145S17-S17/1<W,\\\nM<VT\\<W-%;466/#P\\;3QS;7-S;3P\\<VV6;=AS<W,\\/'/8<Y;8V-AS/'-M/-AS\nM/'-M<]B6/)9MV#S8<]@Z:3II06DZ.CJ1.D&103HZACHZ0<HZD=B1RCJ1RCHZ\nMV)'*D2^1+R_*+R\\Z.CHZD<K*.LK*RI'*D2^1.CHZRB^&.I$ZACJ&:<=IQSHZ\nMQX;'Q\\>1OY''AK_'OVG'ORR_:;\\L+\"PU+#6_+'U]?34>+'0L'ETL77T>NBP>\nM71ZZNKJRLB8FNGVZ)B8:NK+\"NB;\"NAHFNAJZ)KJZ)KH:NAJZNKHF)G)R&KHF\nM<B8:)G*RLG(FLB8:<AJZLG(:LG(F&AJZ&B:Z&B8:&AJR)G(:&ET:NK*ZPAI=\nM&GTF=+*R)GU=NGVZPGUT72RZNBQ]72PL?35]+\"P>OWV_-2PL+\"PLQ\\?':<<U\nM+\"PL:6DUQ\\>_Q[^1QSJ1D9$ZQSK'.I&&02^1+X:1D3J1.B_*RB_8RLHZV#I!\nMV#IMRG/8<SK8.LK*<]@Z.FTZ<W/*RCIMRD&6<\\K8/,ISV,K*RG/*<]AMELK8\nMV)9MRFW*RLISV,IS<]C8V`@(\"`@(\"`@(\"`@(\"`@(Y.3DY.3DY.3DY.3DY.2#\nMY.3DY.3DY.3D@Z:FIJ:F@^3DY.2<G.OKJZNKJZOKG.3DH8.FIJ9$B-RYW+D0\nMB*[*.MAM.CIMRMC8.CIM.CISV,HZ;6W*RMC*<SIM0<K*.LI!V-C*V,I!;6W*\nMRG,ZRMASV'-!RG-M.G,ZRMC8;6W*<]C*V-C*V,K8\"`@(\"`@(\"`@(\"`@``1.\\\nM`\"LK\"@J;/J\"NB+FYW(BNH#Z;FPJ?%_7U%Y^?@0H*FYN;/CZ@H*ZNB(C<W+FY\nMN=S<W-S<W-S<W-S<17?1/'=W=]UWW=UWT=%%17>%=W>%145W=]V%=R-WW7?=\nMW=W==]W10'>%W=W=0'?=0-W==T#=0'=W=]UW0-UW0'=W=W=W27=)=T#==]W=\nMW4#=24!)0$\"%A7=W=]U`W7=`0$EWW7=WA7?=W=W=W4\"%T7?==X6%T7=WW7=`\nMT85W=]W=T7?==]W1=]'=1=W1W=UW1=W1T7=WW3Q%W=W=/#P\\T7<\\/#S=/-W1\nM13P\\T45%13S=/#S1/#S=/$4\\/#P\\W44\\145%13Q%T7-%144\\W3Q%/$4\\/#Q%\nM13S=T3R6EMT\\/-%%13S1T3Q%<W-%<T4\\1=$\\13Q%W3P\\T3P\\/#S11=%ST45%\nMED4\\EM'113Q%13Q%ED5%W=US<]$\\/-W1/',\\1=U%T=US<SP\\W3P\\13R6W3Q%\nM1=&6/$71199S1=%%T7/1T471T7-M<W-S<VT\\<W-%/'-S;=C8V#QSV'-S/$5S\nMV$78/&US;9;8<Y8\\/,K*RCQM/'-S;98\\/'/*V-AIQSJ1.H9!.CHZ:<HZD9'*\nM.B\\ZRCK*D3HZD<K*V\"_*+SHZV#K8RCK*RCHZ03HZ.B_*.B\\O.MB1RCHZ.CHZ\nMD3I!.I&&RLHZ:9$Z.CHZ.H8ZQSK'+SIID<>1D6EI-;^&QX9IQS4L+\"S'QRR_\nM+#4UORPL'BPL'C5=+'U=?1Y=NL)]'L(>?1Y=PEUT7;)]?;I])KI=LKJZ)AH:\nMNKJZNKK\"&KH:NK(:&KH:LAH:&B9R&K*Z&AJZ)AJRLB8F&K)R&G*R<AHF<KH:\nM)KJZLG(:LKJZ&KJZ&AJZNK(FLB8FNEVZLGU='KJZ72RZ'KI=+'U]NBQ=+\"Q=\nM-5TL?5U]+'TU+,<UORPL+,<U-2S'OVEIQVF1OX:1Q[]I:<?'AL?'QY$Z:3II\nM09&1:9&1ALK*AM@OV#K*D3K*.LHO.CK8.LI!<]@ZRD%M<]ASRFU!<]ASRMC*\nM<\\IS;6W8RG/*RMC*<W/*<VW*/'/*EMASEMAMV`@(\"`@(\"`@(\"`@(\"`@(\"`@(\nMY.3DY.3DY.3DY.3DY.3DY.3DY.3DY.3DIJ:FIJ:F@^3DY.2<G.OKZZNKJZOK\nMZYSDY.2FIF5$B-RYB+6Y$(BN.MAM.LHZ<T'8RLK8.G-M;6TZ.G,ZRLK*;<K*\nMRLIM.LIS<\\I!V,ISV,IM.MC8RLIMRCHZEG,Z;7/*RLK8<W.6RLK8V-C*<VT(\nM\"`@(\"`@(\"`@(````@A.\"`\"LK\"IN;/J\"(W+FYB(BN/IN;\"H$7]?47GX$*\"@J;\nMFYL^/CZ@KJZ(B(C<N;FYN;FYN;FYN;FYMKFY1=T\\=W=%T=%W/'=WT7?=17=%\nM=X7==]UWW='==]'==]W1=]W=A85W=W?==X5`W87=A4\"%=W?=W=UW=W?=(X5W\nM0$#=2=W=2=W==W=W=X5WW=UW=T!)A=UWW=UW0-UW=]W=A7=W0'<CA7=WW=V%\nM=]UW=W?=0(71A=UWW7?==]W117=WW=%%=]'=W=W11=W=W7?=W45%T=T\\W7=%\nMW=W=T44\\17?=/'=%144\\W3P\\/$5%T47=1='1/-T\\W45%1=%%ECP\\/-W=199S\nM/#QST44\\T98\\W3P\\/$7=1=$\\W=T\\/-U%T=W1T99%W3P\\/$7=W3P\\/#S=T=W=\nMW=W1145%W3P\\/$4\\/#P\\/$7=/-'1/-%%1=$\\/$4\\/-'=W44\\/#Q%/-W=/-$\\\nMW9;1T=W=W='1/-U%/$4\\T7/=147=T7-%W44\\/#P\\/$5%17-%<W,\\ECQS/'-%\nM/#P\\17.616T\\V#P\\<SQM;7/8/)8\\EFUM/,IS<Y9S;7-M/#P\\V',\\;=C*V'-I\nMQR]IQR^1.L=I:6DO.CHZ.LK*RCHZ.I&1RB\\ZD3J1V)$O.CK*+Y'*RI'8+SHZ\nMRCK8RLJ1RCI!D3HZ.CK*RD$Z.CK*.D$ZD3HZ:9&1RFDZ.FF1AFF1D<?':<?'\nMAK_'D;_'D6EIQ[\\U:<<U-;\\L+\"PUQS4U-7V_'BQT-1XU-2PL+\"Q]PKH>NGVZ\nM+'2Z'GVZNKHF7;I]LB8F7;*ZLKJZ)AJZNAHFLKI=NB;\"<AHF&AJZ&KJZNB9R\nMLAH:<K*Z<K)R<K(FNG(:&G(:NKJR&AH:NB8:NAI=)K(FNL*Z729=NB9=='U=\nMNGU=NGUT'KH>+'VZ770L'AY=?35='BQ==\"R_?7U]Q[\\LQRPUQS7'+&EI:<>1\nM:<>_D36_D<?':6F&D3K'QX:1.L<Z.LJ1D9%I.LK*.B^1D=C*D3K8.CK*V,K*\nMRLK*;6TZRG-MRLK*V#I!.LK*.FTZ<]C*RI9SRG/8V):6<W/8<VW*RFW*V-C8\n-------- End of part 2 of 14 --------\n \n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8333, "properties": {"category": "rec.sport.baseball", "text": "From: jtchern@ocf.berkeley.edu (Joseph Hernandez)\nSubject: MLB Standings and Scores for Sat., Apr. 17th, 1993\nOrganization: JTC Enterprises Sports Division (Major League Baseball Dept.)\nLines: 73\nDistribution: world\nNNTP-Posting-Host: monsoon.berkeley.edu\nKeywords: mlb, 04.17\n\n\n\t     MLB Standings and Scores for Satruday, April 17th, 1993\n\t                   (including yesterday's games)\n\nNATIONAL WEST\t      Won  Lost   Pct.    GB   Last 10  Streak    Home   Road\nSan Francisco Giants   07   04    .636    --     6-4     Won 2   04-01  03-03\nHouston Astros         06   04    .600   0.5     6-4     Won 1   01-03  05-01\nAtlanta Braves         06   06    .500   1.5     5-5    Lost 3   04-03  03-02\nLos Angeles Dodgers    04   07    .364   3.0     4-6     Won 1   01-03  03-04\nColorado Rockies       03   06    .333   3.0     3-6    Lost 1   03-03  00-03\nSan Diego Padres       03   07    .300   3.5     3-7     Won 1   01-04  02-03\nCincinnati Reds        02   08    .200   4.5     2-8    Lost 4   01-03  01-05\n\nNATIONAL EAST\nPhiladelphia Phillies  08   02    .800    --     8-2    Lost 1   05-01  03-01\nPittsburgh Pirates     07   03    .700   1.0     7-3    Lost 1   03-02  04-01\nSt. Louis Cardinals    07   03    .700   1.0     7-3    Lost 1   04-02  03-01\nNew York Mets          05   04    .556   2.5     5-4     Won 1   02-03  03-01\nChicago Cubs           05   05    .500   3.0     5-5     Won 2   02-02  03-03\nMontreal Expos         05   05    .500   3.0     5-5     Won 2   02-02  03-03\nFlorida Marlins        03   07    .300   5.0     3-7    Lost 1   02-04  01-03\n\n\nAMERICAN WEST         Won  Lost   Pct.    GB   Last 10  Streak    Home   Road\nTexas Rangers          06   03    .667    --     6-3    Lost 2   04-02  02-01\nCalifornia Angels      05   03    .625   0.5     5-3    Lost 1   03-02  02-01\nChicago White Sox      05   04    .556   1.0     5-4     Won 2   02-03  03-01\nMinnesota Twins        05   04    .556   1.0     5-4     Won 1   02-02  03-02\nOakland Athletics      04   04    .500   1.5     4-4    Lost 2   04-02  00-02\nSeattle Mariners       04   05    .444   2.0     4-5    Lost 2   03-02  01-03\nKansas City Royals     02   08    .200   4.5     2-8    Lost 1   01-05  01-03\n\nAMERICAN EAST\nBoston Red Sox         07   03    .700    --     7-3    Lost 1   03-01  04-02\nNew York Yankees       06   04    .600   1.0     6-4     Won 1   03-01  03-03\nDetroit Tigers         05   04    .556   1.5     5-4     Won 3   03-00  02-04\nToronto Blue Jays      05   04    .556   1.5     5-4    Lost 1   04-02  01-02\nCleveland Indians      04   06    .400   3.0     4-6     Won 1   03-01  01-05\nBaltimore Orioles      03   06    .333   3.5     3-6     Won 2   01-02  02-04\nMilwaukee Brewers      02   05    .286   3.5     2-5    Lost 4   00-02  02-03\n\n\n\t\t\t     YESTERDAY'S SCORES\n                  (IDLE teams listed in alphabetical order)\n\nNATIONAL LEAGUE\t\t\t\tAMERICAN LEAGUE\n\nNew York Mets\t\t3\t\tChicago White Sox\t9\nCincinnati Reds\t\t1\t\tBoston Red Sox\t\t4\n\nFlorida Marlins\t\t3\t\tCalifornia Angels\t1\nHouston Astros\t\t9\t\tBaltimore Orioles\t4\n\nPhiladelphia Phillies\t1\t\tKansas City Royals\t3\nChicago Cubs\t\t3\t\tMinnesota Twins\t\t4 (10)\n\nColorado Rockies\t2\t\tSeattle Mariners\t0\nMontreal Expos\t\t3\t\tDetroit Tigers\t\t5\n\nPittsburgh Pirates\t4\t\tToronto Blue Jays\t1\nLos Angeles Dodgers\t7\t\tCleveland Indians      13\n\nAtlanta Braves\t\t0\t\tTexas Rangers\t\t3\nSan Francisco Giants\t1\t\tNew York Yankees\t5\n\nSt. Louis Cardinals\t1\t\tOakland Athletics     PPD\nSan Diego Padres\t5\t\tMilwaukee Brewers    RAIN\n-- \n-------------------------------------------------------------------------------\nJoseph Hernandez          |    RAMS  | |    /.\\  ******* _|_|_  / |   LAKERS\njtchern@ocf.Berkeley.EDU  |   KINGS  | |__ |   | DODGERS _|_|_  | |   RAIDERS\njtcent@soda.Berkeley.EDU  |  ANGELS  |____||_|_| *******  | |  |___|  CLIPPERS\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8334, "properties": {"category": "comp.windows.x", "text": "From: lanzo@tekelec.com (Mark Lanzo)\nSubject: Re: How do I find my AppContext?\nReply-To: lanzo@tekelec.com (Mark Lanzo)\nOrganization: Tekelec Inc., Raleigh NC\nLines: 12\n\nIn a prior article masc0442@ucsnews.sdsu.edu (Todd Greene) said:\n \n > Is there an Xt call to give me my application context?\n > I am fixing up an X/Motif program, and am trying to use XtAppAddTimeOut,\n > whose first argument is the app_context.  What call can I use\n > to give me this value?\n \n\tXtAppContext XtWidgetToApplicationContext(Widget)\n\nOf course, just using the app context returned from \nXtCreateApplicationContext, XtAppInitialize, etc. is the\nbest option, unless that path is not available.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8335, "properties": {"category": "comp.windows.x", "text": "From: toml@boulder.parcplace.com (Tom LaStrange)\nSubject: Re: Forcing a window manager to accept specific coordinates for a window\nOrganization: ParcPlace Boulder\nLines: 23\n\nIn article <C5r25y.HFz@cs.columbia.edu> ethan@cs.columbia.edu (Ethan Solomita) writes:\n|>\n|>\tHi. I'm trying to figure out how to make a window manager\n|>place the window where the create window command tells it,\n|>regardless of what it may think is right. (my application has\n|>reason to know better)\n|>\n|>\tI don't want to set the override-redirect because I do\n|>want all the embellishments that the window manager gives, I just\n|>want the wm to accept my choice of location.\n\n\nWhat \"it may think is right\" may be exactly what the user wants.\nAssuming that your application \"has reason to know better\" is, IMHO,\nanti-social.  If I start your application with a -geometry option are\nyou going to ignore that as well?\n\nThere's really no way to force a window manager to do much of anything\nif it's managing your window.  You can ask, you can hint, but there's\nno guarantee that you're going to get what you want.\n\n--\nTom LaStrange        toml@boulder.ParcPlace.COM\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8336, "properties": {"category": "comp.windows.x", "text": "From: marc@ccvi.ccv.FR (Marc Bassini)\nSubject: [jb@sgihbtn.sierra.com: Re: Xlib for MS/WINDOWS not an XSERVER!!!]\nOrganization: The Internet\nLines: 16\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: jb@sgihbtn.sierra.com\nCc: tech-staff@jekyll.ccvi.ccv.fr, xpert@expo.lcs.mit.edu\n\n>I think you may find that either Quarterdeck (Deskview/X) or\n>Hummingbird (eXceed) provide an Xlib for DOS.  Perhaps they also have\n>an Xlib for MS-Windows?  It's a possibility.\n>\n Yes, eXceed has windows version. Have ported some games like tetris, \nworks fine.\n\nSi c'est vrai, ce serait bien de se le procurer car a ce moment la, le\nportage Xt... Suis-je en train de perdre mon temps avec la toolkit c++\n?\n\n\t\tMarc Bassini (marc@ccv.fr, marc@cnam.cnam.fr)\n\t\t\tComputers, Communications & Visions (C2V)\n\t\t\t82 bd Haussmann, 75008 Paris FRANCE\n\t\t\tPhone 40.08.07.07, Fax 43.87.35.99\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8337, "properties": {"category": "soc.religion.christian", "text": "From: e_p@unl.edu (edgar pearlstein)\nSubject: Legal definition of religion\nOrganization: University of Nebraska--Lincoln\nLines: 8\n\n\n  .\n           It's my understanding that the U.S. Supreme Court has never \n       given a legal definition of religion.  This despite the many \n       cases involving religion that have come before the Court. \n           Can anyone verify or falsify this?  \n           Has any state or other government tried to give a legal \n       definition of religion? \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8338, "properties": {"category": "rec.sport.baseball", "text": "From: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nSubject: Re: Notes on Jays vs. Indians Series\nOrganization: Computer Science Department at Rose-Hulman\nLines: 19\nDistribution: na\nReply-To: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nNNTP-Posting-Host: g215a-1.nextwork.rose-hulman.edu\n\nIn article <C5HpCv.4HL@andy.bgsu.edu> klopfens@andy.bgsu.edu (Bruce  \nKlopfenstein) writes:\n> cmk@athena.mit.edu (Charles M Kozierok) writes:\n> > In article <1993Apr13.195301.22652@CSD-NewsHost.Stanford.EDU>  \nnlu@Xenon.Stanford.EDU (Nelson Lu) writes:\n> > } Guess which line is which:\n> > } \tBA\tOBP\tSLG\tAB\tH\t2B\t3B\tHR\tBB\n> > } X\t.310\t.405\t.427\t571\t177\t27\t8\t8\t87\n> > } Y\t.312\t.354\t.455\t657\t205\t32\t1\t20\t35\n> I just love how the Alomar fans left RBIs off this list.  Give me a break!\nA little delayed, but in the interests of fairness (stats from Elias);\n        BA    OBP   SLG  R  HR RBI RNI  %   outs\nAlomar .310  .405  .427 105  8  76 264 20.5 419\nBaerga .312  .354  .455  92 20 105 316 21.2 480\n\nSo we see that Baerga has a large advantage in RBI (runs batted in), RNI  \n(runners not driven in) and outs. \n\njohn rickert\trickert@nextwork.rose-hulman.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8339, "properties": {"category": "soc.religion.christian", "text": "From: rolfe@junior.dsu.edu (Tim Rolfe)\nSubject: Divine providence vs. Murphy's Law\nLines: 12\n\nRomans 8:28 (RSV)   We know that in everything God works for good with those \nwho love him, who are called according to his purpose. \n\nMurphy's Law:  If anything can go wrong, it will.\n\nWe are all quite familiar with the amplifications and commentary on\nMurphy's Law.  But how do we harmonize that with Romans 8:28?  For that\nmatter, how appropriate is humor contradicted by Scripture?\n--\n                                                    --- Tim Rolfe\n                                                 rolfe@dsuvax.dsu.edu\n                                                 rolfe@junior.dsu.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8340, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: AT&T Bell Laboratories\nLines: 28\n\nIn article <1993Apr20.150531.2059@magnus.acs.ohio-state.edu>, jebright@magnus.acs.ohio-state.edu (James R Ebright) writes:\n> Now why is that?  I doubt there is a trapdoor in Skipjack.  (But we will\n> never know).  And I doubt the NSA would promote a mass market chip they\n> couldn't compromise.  Ergo, NSA is now capable of compromising (probably\n> with brute force keysearch) engines of the complexity of Skipjack.  Look\n> at the specs.  Why, I bet they have thousands of little chips chugging\n> away in their crypto busters... Maybe even tens of thousands.  Complexity?\n> Not much more than a 3090.  How many such machines will fit into Fort Meade?\n\n> I think PGP2.3 should have 256 bit IDEA keys...\n\nThousands?  Tens of thousands?  Do some arithmetic, please...  Skipjack\nhas 2^80 possible keys.  Let's assume a brute-force engine like that\nhypothesized for DES:  1 microsecond per trial, 1 million chips.  That's\n10^12 trials per second, or about 38,000 years for 2^80 trials.  Well,\nmaybe they can get chips running at one trial per nanosecond, and build\na machine with 10 million chips.  Sure -- only 3.8 years for each solution.\n\nIDEA uses 128-bit keys.  Shall I bother doing the calculations for you?\nHint:  multiply 3.8 years by 2^(128-80).  And you can't do IDEA at that\nspeed; key setup takes much too long.  I wouldn't be surprised if that\nwere the case for Skipjack, too, though there's no way of knowing just\nyet.  DES used only xor because that's what was feasible with mid-70's\ntechnology.  Modern chips can do a lot more.\n\nNSA may or may not know how to crack Skipjack and IDEA (I doubt it for\nthe former; I have no idea for the latter, though it does seem to be a\nstrong cryptosystem).  But it ain't gonna be by exhaustive search.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8341, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: FLAME and a Jewish home in Palestine\nOrganization: The Department of Redundancy Department\nLines: 41\n\nIn article <C5rxH0.LJy@imag.fr> maler@vercors.imag.fr (Oded Maler) writes:\n>In article <C5HJBC.1HC@bony1.bony.com>, jake@bony1.bony.com (Jake Livni) writes:\n\n>|> Typical Arabic thinking.  If we are guilty of something, so is\n>|> everyone else.  Unfortunately for you, Nabil, Jewish tribes are not\n>|> nearly as susceptible to the fratricidal murdering that is still so\n>|> common among Arabs in the Middle East.  There were no \" killings\n>|> between the Jewish tribes on the way.\"\n\n>I don't like this comment about \"Typical\" thinking. You could state\n>your interpretation of Exodus without it. As I read Exodus I can see \n>a lot of killing there, which is painted by the author of the bible\n>in ideological/religious colors. The history in the desert can be seen\n>as an ethos of any nomadic people occupying a land. That's why I think\n>it is a great book with which descendants Arabs, Turks and Mongols can \n>unify as well.\n\nYou somehow missed Nabil's comments, even though you included it in\nyour followup: \n\n  >The number which could have arrived to the Holy Lands must have been\n  >substantially less ude to the harsh desert and the killings between the\n  >Jewish tribes on the way..\n\nI am not aware of \"killings between Jewish tribes\" in the desert.\n\nThe point of \"typical thinking\" here is that while Arabs STILL TODAY\nact in the manner you describe, like \"any nomadic people occupying a \nland\", killing and plundering each other with regularity, others have\nsomehow progressed over time.  It is not surprising then that Arabs\noften accuse others (infidels) of things that they are quite familiar\nwith: civil rights violations, religious discrimination, ethnic\ncleansing, land theft, torture and murder.  It is precisely this \nmechanism at work that leads people to say that Jewish tribes were\nkilling each other in the desert, even without support for such a\nludicrous suggestion.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8342, "properties": {"category": "rec.autos", "text": "From: rjwade@rainbow.ecn.purdue.edu (Robert J. Wade)\nSubject: Re: Improvements in Automatic Transmissions\nOrganization: Purdue University Engineering Computer Network\nLines: 36\n\nIn article <1qugvu$ai8@quad.wfunet.wfu.edu> hagenjd@wfu.edu (Jeff Hagen) writes:\n>\n>Thanx to all those who responded, particularly those \"never driven an XXX\n>but here's what it's like:\" guys...\n>\n>OK, we all know that new-age AT's are great in traffic, and do a satisfactory\n>job in acceleration when you keep your foot buried in the carpet.\n>\n>My question regards downshifting.  NOT downshifting to pass (AT's are \n>good at this now), but manually moving the lever to 3, 2, or 1 at a point\n>where you would downshift a manual-- e.g. approaching a red light, or a \n>curve, or just tooling around a parking lot in 1st or 2nd w/o shifting.\n>This is why I'm still a Manual-Trans Bigot-- the downshifting for\n>deceleration seems so natural.  When I try this in an automatic, the\n>tranny doesn't seem to understand what I want.\n>\n>Addendum-- isn't it great, after downshifting while approaching that\n>red light, when the light goes green, and you're already on-cam\n>(or the turbo's already spooled up!) -- zippppppppppp!\n>\n>Hagen.  (hagenjd@ac.wfu.edu)\n>\n\ni have a grand am with auto and quad4.  around the gear selector there is a \nplastic strip which covers the space so you can't see inside.  anyway...i took\nthe cover off and cut the end of this long strip to a specific length, the \nstrip curls up into a cirlce at one end inside.  anyway, by doing this the \nstrip can't feed into the lip that circles it,,,,so...i can push button, pull\ndown and the gear shifter will only go back to 2 from drive,,,no accidental\nhitting first.  i drive around town in 2 to keep the revs up.  shift to drive\nabove 50 and pull down to 2 when coming up to lights..if i want.  if i am\neating food...i drive in drive.  there are probably aftermarket shift kits\nthat will accomplish the same thing.  porsche's tip-tronic automatic can be \ndriven like an auto...or put into +/- mode.  tip up...upshift...tip down...\ndownshift.  of course there is an override so you don't redline the engine.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8343, "properties": {"category": "talk.politics.misc", "text": "From: rstevew@armory.com (Richard Steven Walz)\nSubject: Re: How many homosexuals are there?\nOrganization: The Armory\nLines: 94\n\nIn article <1993Apr5.000007.27707@mnemosyne.cs.du.edu> mbond@nyx.cs.du.edu (Mimi) writes:\n>In article <1993Apr3.211910.21908@news.acns.nwu.edu> dmeier@casbah.acns.n\n>u.edu (Douglas Meier) writes:\n>>In article <1pkmo9INNg7@senator-bedfellow.MIT.EDU> wdstarr@athena.mit.ed\n>\n>>(William December Starr) writes:\n>>>\n>>>And what difference does it make?  If homosexuals should not be treated\n>>>as equals with heterosexuals in the eyes of the law then it doesn't\n>>>matter if they comprise an overwhelming majority of the population, and\n>>>if they should then it doesn't matter if, numerically, they're only an\n>>>infinitesimal minority, right?\n>>>\n>>And if it makes no difference, then shoving a false number down my throa\n>\n>>shouldn't be a high priority.  After all, why should a minority group ne\n>d to\n>>inflate their numbers in order to justify the rights they claim they des\n>rve\n>>i.e. extra privileges they ask for?  \n>>\n>>If someone beats up a homosexual, he should get charged for assault and\n>>battery.  Why must we add gay bashing to the list?  Isn't this a sort of\n>>double jeopardy?  Or am I just being a fascist again?\n>>\n>>\n>>-- \n>>Douglas C. Meier\t\t|  This Space for Rent\n>>Northwestern University, ACNS \t|  \n>>This University is too Commie-\t|  \n>>Lib Pinko to have these views.\t|  dmeier@casbah.acns.nwu.edu\n>\n>\n>You know, I have thought about the issue of if someone beats up a\n>homosexual, or a black person, etc., should the crime be specified\n>as something special.  Shit, beating up anybody, regardless of race\n>and sexual orientation should be a very serious crime.  If you\n>pick out those crimes which are committed against the opposite sex,\n>different race, or a different sexual orientation, is this a form\n>of favoring those groups over other groups.  Hmm..  I mean, I think\n>that a crime committed against all people should be treated the\n>same.  But, I know that there are many people out there who are\n>very prejudice against people who are different than they are.  And\n>perhaps hate crimes laws are the only way to punish the bastards \n>appropriately.  But, why should a person who commits a crime against\n>a wealthy protestant white by a wealthy protestant white be treated\n>on a lower level.  Isn't this discrimination against the wealthy\n>white person.  \n>\n>Hmm..  Any input out there?  As a black person, I here about all\n>sorts of stories where fellow blacks are persecuted and beat up\n>because of their race.  This really tears me up.  But, a crime\n>against a white by a white should also be treated as a heinous\n>crime.  \n>\n>Please respond.  I would like to hear what other views are out ther.\n>\n>Ciao'\n>Mimi\n---------------------------\nThe federal government has used such laws to allow mutliple charges in\norder to prevent more crimes than would nromally occur just from two people\nbeing pissed off at each other. The federal government has an interest in\nthe intent of the perpetrators in the pursuit of preventing violations of\ncivil rights. It's the way they broke the back of the Klan, by putting a\nlot of people away for a very long time for harrassing blacks specifically.\nIt is a principle that has been well recognized as constitutionally valid\nsince over 100 years ago. It has been used whenever a select group was\ngetting bashed or harrassed more than any other person would just for being\npart of a minority. It is the only way we made the defeat of the south\nstick after the Civil War. People who harrassed free blacks, when normally\nthey wouldn't find themselves harrassing just anyone walking around were\nexpeditiously tried and jailed for 5 to 8 years until nobody wanted to try\nit anymore. Now with the 14th amendment guarantee of equal protection under\nthe law, the law can use multiple crime and severe penalty involving intent\nas much as is needed to protect even one human that is a hated minority to\nsomebody. They can call out the national guard just for them, as they did\nthe school girls in Alabama during desegregation in the 1950's, and the\npresident can nationalize the state militia and turn the guns of the\nmilitia that were being used to bar blacks right around to point at the\nthousands in the crowd with an order to shoot that they would have to obey\nor face possible death by firing squad under the Uniform Code of Military\nJustice for failing to obey a direct order while under arms! And by god,\nthey did! Those southern boys turned right around an fixed bayonets! And\nthe governor was left standing and was arrested by the federal marshalls\nthat had brought the order to nationalize the guard. And that's why we need\nsuch an ability in federal jurisdiction.\n-RSW\n\n-- \n* Richard STEVEn Walz   rstevew@deeptht.armory.com   (408) 429-1200  *\n* 515 Maple Street #1   * Without safe and free abortion women are   *\n* Santa Cruz, CA 95060    organ-surrogates to unwanted parasites.*   *\n* Real Men would never accept organ-slavery and will protect Women.  *\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8344, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mueck@.adsdesign.analog.com (Mick Mueck)\nSubject: Re: OK to set 54 lbs on top of Centris 610???\nReply-To: mueck@.adsdesign.analog.com\nOrganization: Analog Devices, Inc.\nLines: 14\n\nI had the same question for my 55lb NEC 5FG monitor. The Apple guy said that\ntheir 50lb 16\" monitor is OK to put ontop of the Centris and had no coment\nbeyond that. I was going to just put the NEC on the box but then I got to \nthinking - the monitor has a small tilt/swivel base so maybe the weight\nwould be more concentrated than with Apple's (I don't know the area of the \nbase of their tilt/swivel). Additionally, the CDROM drive is in the middle.\nSo I cut a piece of 3/8\" thick wood to about 16.25\" x 12\", covered it in a \ncream covered cloth, and used it as a buffer layer between the Centris's top\nand the monitor!!\n\nMick Mueck  mick.mueck@analog.com\n\n     **************** I HATE *CHIPSOFT'S* MacINTAX *******************\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8345, "properties": {"category": "comp.graphics", "text": "From: ARowatt@massey.ac.nz (A.J. Rowatt)\nSubject: Page flipping in VGA 320x200x256 mode.\nOrganization: Massey University, Palmerston North, New Zealand\nX-Reader: NETNEWS/PC Version 2c\nLines: 12\n\nHelp!\nHow do you write to the second bank/page of memory when in VGA\n320x200x256 colour mode?. ie: to perform page flipping animation\nand buffering of the screen.\n     I have tried using the Map Mask Registers, but this does not\nperform the required task (Although it does do something).\n\nNote: It *must* be able to work on a standard VGA (ie: not\nnecessarily a SVGA card).\n\nMany thanx in advance...\nAndrew\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8346, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: How to Diagnose Lyme... really\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 19\n\nIn article <C5sy24.LF4@watson.ibm.com> yozzo@watson.ibm.com (Ralph Yozzo) writes:\n\n>>Why do you think he would be called a quack?  The quacks don't do cultures.\n>>They poo-poo doing more lab tests:  \"this is Lyme, believe me, I've\n\n> \n>Are you arguing that the Lyme lab test is accurate?\n\nIf you culture out the spirochete, it is virtually 100% certain\nthe patient has Lyme.  I suppose you could have contamination\nin an exceptionally sloppy lab, but normally not.  There are no\nfalse positives.\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8347, "properties": {"category": "rec.autos", "text": "From: netops@tekgen.bv.tek.com (Randy King)\nSubject: RE: headlights problem\nKeywords: headlights\nArticle-I.D.: tekgen.2407\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 6\n\nTHANKS TO ALL OF YOU WHO RESPONDED TO MY POSTING. \n\nTHE PROBLEM WITH MY TRUCK'S HEADLIGHTS LOW BEAM PROBLEM WAS A \"LOOSE WIRE\n CONNECTION\".  IT WAS NOT THE \"FUSE\" AS A MINORITY OF YOU SUGGESTED.\n\nTHANKS AGAIN.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8348, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: swartzjh@RoseVC.Rose-Hulman.Edu\nSubject: Custom Keys\nOrganization: Rose-Hulman Institute of Technology\nLines: 8\nReply-To: swartzjh@RoseVC.Rose-Hulman.Edu\nNNTP-Posting-Host: hydra.rose-hulman.edu\n\nI am looking for a company that can make custom keys.  For instance we need\na key that says HELP, MAIN MENU, etc which we are going to use instead of\nF1,F2, F3 etc... Can anyone point me to a company that does this.  Also \ndo you have to have a special keyboard, or can I just pop off the old keys\nand pop in the new ones...\n\n\t\tThanks for the help\n\t\tJeff Swartz\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8349, "properties": {"category": "rec.autos", "text": "From: eliot@lanmola.engr.washington.edu (eliot)\nSubject: Re: Improvements in Automatic Transmissions\nKeywords: Saturn, Subaru, manual, automatic\nArticle-I.D.: engr.Apr19.045221.19525\nOrganization: clearer than blir\nLines: 40\nNNTP-Posting-Host: lanmola.engr.washington.edu\n\n\nan excellent automatic can be found in the subaru legacy.  it switches to\n\"sport\" mode when the electronics figure it,  not when the driver sets\nthe switch.. which is the proper way to do it, IMO.  so what does \"sport\"\nmode entail?  several things:\n\n1) revving to red line (or to the rev limiter in the case of the legacy)\n\n2) delayed upshifts.  (i.e. if you lift off briefly, it will remain in the\n\tlow gear.  this is handy if you are charging through corners and\n\twould like to do without the distraction of upshifts when there's\n\tanother curve approaching)\n\n3) part throttle downshifts, based on the *speed* at which the pedal is\n\tdepressed, rather than the *position* of the pedal.  modern\n\telectronics can measure this very easily and switch to sport mode.\n\tthis is wonderful if you want to charge through a green light about\n\tto turn red.  my audi senses this very well and can downshift on as\n\tlittle as half throttle if my right foot is fast enough.\n\nalso, i think that a smart automatic can deliver better gas mileage\nthan a dumb driver with a stick, all else being equal.. remember that\nthe idea of a stick being more economical than an automatic makes a\nbig assumption that the driver is smart enough to know what gear to\nuse for each situation.. how many times have you ridden with an\ninattentive driver cruising on the highway at 55/65 in 4th gear (of a\n5 speed)?  \n\nhow many % of people who drive manuals *really* know what the best\ngear to use is for every conceivable situation?  i'm sure there will\nbe some who know, but i suspect that a chip controlled automatic with\nall possible scenario/ratio combinations stored in ROM is likely to do\nbetter.  i can also say that all my previous assumptions were proved\nwrong after i got a car with instantaneous mpg readout... high gear,\nlow revs and wide open throttle is more economical than low gear, high\nrevs and small throttle opening.  the explanation is quite simple if\none sits down to think about it, but not that obvious at first sight.\n\n\neliot\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8350, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Re: Ten questions about Israel\nOrganization: University of Illinois at Urbana\nLines: 23\n\nbackon@vms.huji.ac.il writes:\n\n>In article <1483500349@igc.apc.org>, cpr@igc.apc.org (Center for Policy Research) writes:\n>>\n\n>>\n>> 4.      Is it true that in Israeli prisons there are a number of\n>> individuals which were tried in secret and for which their\n>> identities, the date of their trial and their imprisonment are\n>> state secrets ?\n\n\n>Apart from Mordechai Vanunu who had a trial behind closed doors, there was one\n>other espionage case (the nutty professor at the Nes Ziona Biological\n>Institute who was a K.G.B. mole) who was tried \"in camera\". I wouldn't exactly\n>call it a state secret. The trial was simply tried behind closed doors. I hate\n>to disappoint you but the United States has tried a number of espionage cases\n>in camera.\n\nOne of those US cases was John Pollard.\n\nEd.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8351, "properties": {"category": "comp.graphics", "text": "From: full_gl@pts.mot.com (Glen Fullmer)\nSubject: Needed: Plotting package that does...\nNntp-Posting-Host: dolphin\nReply-To: glen_fullmer@pts.mot.com\nOrganization: Paging and Wireless Data Group, Motorola, Inc.\nComments: Hyperbole mail buttons accepted, v3.07.\nLines: 27\n\nLooking for a graphics/CAD/or-whatever package on a X-Unix box that will\ntake a file with records like:\n\nn  a  b  p\n\nwhere n = a count  - integer \n      a = entity a - string\n      b = entity b - string\n      p = type     - string\n\nand produce a networked graph with nodes represented with boxes or circles\nand the vertices represented by lines and the width of the line determined by\nn.  There would be a different line type for each type of vertice. The boxes\nneed to be identified with the entity's name.  The number of entities < 1000\nand vertices < 100000.  It would be nice if the tool minimized line\ncross-overs and did a good job of layout.  ;-)\n\n  I have looked in the FAQ for comp.graphics and gnuplot without success. Any\nideas would be appreciated?\n\nThanks,\n--\nGlen Fullmer,          glen_fullmer@pts.mot.com,                  (407)364-3296\n*******************************************************************************\n*  \"For a successful technology, reality must take precedence                 *\n*   over public relations, for Nature cannot be fooled.\" - Richard P. Feynman *\n*******************************************************************************\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8352, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: was:Go Hezbollah!\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 80\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <Apr16.190846.63631@yuma.ACNS.ColoState.EDU>, bh437292@longs.LANCE.ColoState.Edu (Basil Hamdan) writes:\n|> In article <SHAIG.93Apr15220200@composer.think.com>, shaig@composer.think.com (Shai Guday) writes:\n|> \n|> That is what is so hard of South Lebanon, Israel is\n|> not fighting an army with well drawn battle lines, but a guerilla\n|> tyoe resistance which by definition and necessity blends with\n|> the local populace.  Not because they are evil cowards that\n|> use women and children as shields, but because that is the only\n|> way one can fight a more powerful better equipped occupying army.\n\nWhile that is currently true from their perspective, it is also\nworthwhile to note that in such cases the populace often does suffer\nfrom attempts to control the guerillas.  Furthermore, there were\ncases in the past of Palestinian gun emplacements being situated\nwithin villages.  The argument that can be made for small arms\nfire can not be made for field pieces.\n\n|> Hizbollah and Amal are now the main two militias.  Though\n|> Hizbollah people tend to be more committed to resistrance\n|> operation and better motivated by religious conviction.\n\nAs I recall, Amal was primarily nationalistically \"Lebanon for\nthe Lebanese\" motivated.  I think that the difference between them\nwas also a matter of funding and support.  One question does\ncome to mind however, \n\nGiven that you claim the Hizbollah to be more committed etc... and\nthat their stated position is:\n\t1.  No peace talks.\n\t2.  No peace talks.\n\t.\n\t.\n\t.\n\t.\n\tN-1. No peace talks.\n\tN.  No Israel\n\nif we assume that Lebanon and Syria are sincere in their desire for\npeace, why hasn't the Hizbollah been disarmed?\n\n|> I hope you are right on Israeli willingness to withdraw, but I still\n|> contend that withdrawal would be the better course for Israel's\n|> security, since it would reduce its  military losses, and I claim\n|> that the Lebanese and Syrian gov'ts would be able to prevent any \n|> further attacks on Northern Israel.\n\nBearing in mind the above and that military losses are more palatable\nthan civilian ones, I am sure you can understand why Israel is slow\nto act in that manner.\n\n|> |> No, the Syrian gov't is more than happy to have Israel sink into another\n|> |> Lebanese morass.  I could elaborate if necessary.\n|> \n|> Hmm...  Here we disagree on what serves Syria interests better.\n|> I think Syria wants to have Lebanon all to itself.  It would\n|> be willing to guarantee Northern Israel's security in return for\n|> Israeli withdrawal.  I don't think Syria wants Israel to be\n|> involved in its protectorate of Lebanon.  Syria is sitting at the\n|> negotiating table because it has come to accept that and wants\n|> to get a political resolution.  A renewal of hostilities\n|> along the Lebanese front could put the whole ME peace negotiations\n|> back in question.\n\nI agree that Syria wants Lebanon to be part of its greater Syria.\nI don't necessarily see that the Syrians would be unhappy to see\nIsrael up to its neck in another Lebanese morass afterwhich Syria\ncould continue on its merry schedule when Israeli public opinion\nwould lead to a second pullout.\n\n|> I agree that the loss of any human life is deplorable and regrettable.\n\n<*sigh*>\n\nWhy can't some gov'ts negotiate as easily as some people?\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninjas of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8353, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Rangers give NHL another blackeye...\nOrganization: University of Toronto Chemistry Department\nLines: 10\n\nNews reports in Toronto say that the Rangers are insisting that\nKovalev, Zubov, and Andersson play for Binghampton in the Calder\nCup playoffs, rather than return to play for their \"home\" countries\nin the World Championships.\n\n...shame on the Rangers.\n\nAnother black eye for the NHL in Europe.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.397+0000", "event": "documents", "entityId": 8354, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Center for Anti-Israel Propaganda\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 67\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nthe 'Center for Policy Research' writes...\n \n> FROM THE ISRAELI PRESS\n>\n>Hadashot, 14 March 1993:\n>\n>The Israeli Police Department announced on the evening of Friday,\n>March 12 that it is calling upon [Jewish] Israeli citizens with\n>gun permits to carry them at all times \"so as to contribute to\n>their security and that of their surroundings\".\n\n    Considering all the murders of innocent Israelis at the hands \n    of Arab death merchants, I see nothing wrong with the advice.\n\n>Ha'aretz, 15 March 1993:\n>\n>Yehoshua Matza (Likud), Chair of the Knesset Interior Committee,\n>stated that he intends to demand that the police department make\n>it clear to the public that anyone who wounds or kills\n>[non-Jewish] terrorists will not be put on trial.\n\n    As usual, the bias of the 'Center for Policy Research' echoes\n    through this newsgroup.  Here we have an enraged Likudnik who\n    is venting his spleen, and you portray it as if this is going\n    to become policy.  You don't say what the response to Matza's\n    suggestion was.  Do do not mention whether he was refering to\n    terrorists caught in the act, which could be a clear cut case\n    of self-defence.  Would you care to elaborate on this, or was\n    this all you wanted to say on the matter.  Why don't you give\n    up this 'Center for Policy Research' crap, and just post your  \n    biases without trying to legitimize them with a pompous name?\n\n>Ha'aretz, 16 March1993:\n>\n>Today a private security firm and units from the IDF Southern\n>Command will begin installation of four magnetic gates in the Gaza\n>strip, as an additional stage in the upgrading of security\n>measures in the Strip.\n>\n>The gates will aid in the searching of [non-Jewish] Gaza residents\n>as they leave for work in Israel. They can be used to reveal the\n>presence of knives, axes, weapons and other sharp objects.\n>\n>In addition to the gates, which will be operated by a private\n>civilian company, large quantities of magnetic-card reading\n>devices are being brought to the inspection points, to facilitate\n>the reading of the magnetic cards these [non-Jewish] workers must\n>carry.\n\n    A laudable precaution.  \n    \n    Every single thing you post about Israel is posted to portray\n    Israel as negatively as you can.  Deliberate omissions are an\n    integral part of the shtick.  And it's not only the incidents\n    that you do not mention, but even the stories you do post are\n    fraught with omissions, which change the entire meaning.  The\n    absurdity of your respectable name cannot hide your bias.\n\n    In your effort to portray Israel in an unfavorable light, you \n    have accomplished nothing, except to prove that a respectable \n    sounding label like the Center for Policy Research is nothing \n    but a smoke screen for someone with a heavily biased attitude \n    against Israel and the need to vent it.  \n    \n    This 'Center for Policy Research' stuff is nonsense.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8355, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 13\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>>Well, chimps must have some system.  They live in social groups\n>>as we do, so they must have some \"laws\" dictating undesired behavior.\n>So, why \"must\" they have such laws?\n\nThe quotation marks should enclose \"laws,\" not \"must.\"\n\nIf there were no such rules, even instinctive ones or unwritten ones,\netc., then surely some sort of random chance would lead a chimp society\ninto chaos.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8356, "properties": {"category": "sci.space", "text": "From: jpw@cbis.ece.drexel.edu (Joseph Wetstein)\nSubject: Sunrise/ sunset times\nOrganization: Drexel University, College of Engineering, Philadelphia, PA\nLines: 8\n\n\nHello. I am looking for a program (or algorithm) that can be used\nto compute sunrise and sunset times.\n\nI would appreciate any advice.\n\nJoe Wetstein\njpw@coe.drexel.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8357, "properties": {"category": "rec.sport.baseball", "text": "From: fisherg@egr.msu.edu (fisher greg)\nSubject: Re: Jewish Baseball Players?\nOrganization: Michigan State University, College of Engineering\nLines: 16\nNNTP-Posting-Host: eecae.ee.msu.edu\n\nIn article <1993Apr16.172502.21766@Princeton.EDU> roger@astro.princeton.edu (Roger Lustig) writes:\n>In article <1993Apr16.122649.22938@husc3.harvard.edu> fry@zariski.harvard.edu (David Fry) writes:\n>\n>>Once, on Jeopardy, the category was \"Jewish Sports Heros,\" believe it\n>>or not.  The answer was, \"This pitcher had four no-hitters with the\n>>Dodgers in the 60s.\"  The contestant said, \"Who is Hank Aaron?\" Alex\n>>Trebek said something like, \"I don't think Hank Aaron was a pitcher.\"\n>\n>Well, it *is* a Jewish name...\n>\n>8-)\n>\n>Roger\n\nThat's right.  Remember Hank Greenberg??!!\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8358, "properties": {"category": "comp.sys.mac.hardware", "text": "From: v-cckch@microsoft.com (Kenneth Charlton)\nSubject: Re: \"Jump Starting\" a Mac II\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 5\n\nApple dealerships once had kits to replace the soldered in batteries with a battery \nholder.\n\nReal easy to install, but it does require some soldering.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8359, "properties": {"category": "talk.politics.guns", "text": "From: starr@genie.slhs.udel.edu (Tim Starr)\nSubject: Re: Ban All Firearms !\nOrganization: UDel: School of Life & Health Sciences\nLines: 29\n\nIn article <16BAECE99.PA146008@utkvm1.utk.edu> PA146008@utkvm1.utk.edu (David Veal) writes:\n}In article <C5D4Hv.8Dp@undergrad.math.uwaterloo.ca>\n}papresco@undergrad.math.uwaterloo.ca (Paul Prescod) writes:\n}\n}>In article <92468@hydra.gatech.EDU> gt6511a@prism.gatech.EDU (COCHRANE,JAMES SHPLEIGH) writes:\n}>>\n}>2.If Guns were banned, and a bunch showed up in south florida, it\n}>would be 100x easier to trace and notice then a small ripple in the\n}>huge wave of the American gun-craze.\n}                  ^^^^^^^^^^^^^^^^^^\n}\n}       Do they teach courses in rude in Canada?\n\nThey don't have too.  Canadian culture is handed down largely from the United\nEmpire Loyalists who fled from the American Revolution.  Canuckleheads tend\nto have a \"cratophilic,\" or government-loving attitude towards authority.\n\nPaul Prescod is right in line with this elitist bigotry and prejudice that\nall my Canadian friends hate in their fellow citizens.  His sort of snobbish\nCanuck have an irrational horror of American democratic \"armed mobs.\"\n\nTim Starr - Renaissance Now!\n\nAssistant Editor: Freedom Network News, the newsletter of ISIL,\nThe International Society for Individual Liberty,\n1800 Market St., San Francisco, CA 94102\n(415) 864-0952; FAX: (415) 864-7506; 71034.2711@compuserve.com\n\nThink Universally, Act Selfishly - starr@genie.slhs.udel.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8360, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ph12hucg@sbusol.rz.uni-sb.de (Carsten Grammes)\nSubject: List of IDE Harddisk specs (21/04/93)\nOrganization: Universitaet des Saarlandes,Rechenzentrum\nLines: 761\nNNTP-Posting-Host: sbusol.rz.uni-sb.de\n\n\t\t    Configuration of IDE Harddisks\n\t\t    ==============================\n\n\nlast update:\t14.4.1993\n\ncollected by Carsten Grammes (ph12hucg@rz.uni-sb.de)\nand published regularly on comp.sys.ibm.pc.hardware.\n\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\nThere is explicitly NO WARRANTY\nthat the given settings are correct or harmless. (I only collect, I do\nnot check for myself!!!). There is always the possibility that the\nsettings may destroy your hardware!\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n\nSince I hope however that only well-minded people undergo the effort of\nposting their settings the chance of applicability exists. If you should\nagree or disagree with some setting, let me know immediately in order\nto update the list.\n\nIf you possess a HD not mentioned here of which you know BIOS and/or\njumper settings, please mail them to me for the next update of the list!\n\nOnly IDE (AT-Bus) Harddisks will be accounted for.\nIf not specified the Landing Zone should be set equal to the number of\ncylinders. If not specified the 'Write Precompensation' should be set\n65535. (There are BIOSes that don't even ask for it).\n\nAnother statement (maybe right):\nIDE harddisk don't have Precomp and LZone. The precomp is a built-in parameter\nand lzone isn't used because most if not every IDE disk has autopark.\n\nThe jumpers' names are given as printed on the HD's board, often only a\njumper number (JP12 means the jumper '12'). A zero means that the jumper\nis left open, a one means that the jumper is closed.\n\n\n\n***************************   C O N N E R   ***************************\n\n\n\t\tConner Peripherals Drive Geometry\n\nIDE/AT\n\nConner drives are low level formatted at the factory. It is only necessary\nto run SETUP, FDISK, and DOS FORMAT.\n\nModel   Heads  Cylinders  Sectors   PComp   L-Zone  Type  Table    LED\n\nCP2034     2     823         38      0       823    *UT     3      N/A\nCP2064     4     823         38      0       823    *UT     3      N/A\nCP2084     8     548         38      0       548    *UT     3      N/A\nCP3184     6     832         33      0       832    *UT     1       A\nCP3104     8     776         33      0       776    *UT     1       A\nCP3111     8     833         33      0       833    *UT     1       A(?)\nCP3204    16     683         38      0       683    *UT     2       B\nCP30064    4     762         39      0       762    *UT     2       B\nCP30084    8     526         39      0       526    *UT     2       B\nCP30104    8     762         39      0       762    *UT     2       B\nCP30084E   4     903         46      0       903    *UT     3       C\nCP30174E   8     903         46      0       903    *UT     3       C\nCP30204   16     683         38      0       683    *UT     3       C\nCP3304    16     659         63      0       659    *UT     3       D\nCP3364    16     702         63      0       702    *UT     3       D\nCP3504    16     987         63      0       987    *UT     3       D\nCP3554    16    1054         63      0      1054    *UT     3       B\n\nTable 1                                  Table 2\n\n       Jumper Settings                          Jumper Settings\n\nSingle Drive = Jumper ACT and C/D        Single Drive = Jumper C/D\nMaster Drive = Jumper ACT, C/D and DSP   Master Drive = Jumper C/D & DSP\nSlave Drive = No jumpers installed       Slave Drive = No jumpers installed\n\n\nTable 3\n                                     All Conner 20 Mbyte drives use\n        Jumper Settings              Drive type 2.  All Conner 40\n                                     Mbyte drives use Drive type 17.\nSingle & Master Drive = Jumper C/D\nSlave Drive = No jumpers installed   *UT = Universal translate.\n                                     Select a drive type that is\n                                     close to but does not exceed\n                                     the megabyte capacity of the\n                                     drive.  The drive will\n                                     translate to the megabyte\n                                     capacity that you have\n                                     selected.\n\n  LED\n\n  A:           B:                       C:         D:\n  J-4          J-5                      J-5        J-3\n  Pin 1 = +    Pin 3 = +                Pin 3 = -  Pin 3 = +\n  Pin 2 = -    Pin 4 = -                Pin 4 = -  Pin 4 = -\n\n\n> When I installed a Conner CP3204F (203 MB) as master and a WD Caviar 2200\n> (203 MB) as slave, both with and without the \"CP\" jumper, the Caviar had\n> seemingly normal behaviour. However, when doing writes to the Caviar, once\n> in a while it would overwrite directories etc. Using FASTBACK was almost\n> impossible.\n> \n> The workaround is to install the Caviar as the master, and the Conner\n> as the slave.\n\n\n\n***************************    F U J I T S U      ***************************\n\nDETAILS OF FUJITSU DRIVES M261xT (Standard)\n\n                   M2614ET     M2613ET     M2612ET     M2611T\n\nHeads (physical)       8           6           4           2\nCyl (physical)      1334        1334        1334        1334\nSec/trk               33          33          33          33\nSpeed (rpm)         3490        3490        3490        3490\nCapacity           180MB       135MB        90MB        45MB\n\n\n              +-----------------------------------------------+\n              |                                               |\n              +--+                                            |\n        PSU   |  |      CNH-2                                 |\n              +--+          1                                 |\n            1 |  |          .                    LED          |\n              |  | CNH-1    9      CNH-3      Connector       |\n              |  |   1           6..1            o o          |\n      40-way  |  |   .                           | |          |\n        IDE   |  |   .                                        |\n              |  |   .                                        |\n              |  |  12                                        |\n              +--+                                            |\n              +-----------------------------------------------+\n\n\n\n                 Pin        Function\n                 Position\n\n                 *  1- 2    Active mode\n                    2- 3    Slave present mode\n                    4- 5    Pin 27=IOCHRDY\nCNH-1 JUMPERS    *  5- 6    Pin 27=RESERVED\n                    7- 8    2 drive system\n                 *  8- 9    1 drive system\n                   10-11    Pin 29=IRQ14 : Pin 31=RESERVED\n                 * 11-12    Pin 31=IRQ14 : Pin 29=RESERVED\n\n\n                 Pin        Function\n                 Position\n\n                    1- 2    SLAVE drive mode\nCNH-2 JUMPERS    *  4- 5    MASTER drive mode\n                    7- 8    ECC 4 bytes\n                 *  8- 9    ECC 7 bytes\n\n\n                 Pin        Function\n                 Position\n\n                    1- 2    Write protect enabled\nCNH-3 JUMPERS    *  2- 3    Write protect disabled\n                    4- 5 -6 Reserved\n\nKey:  * (I guess!) marks factory default setting for jumper\n\n\nBIOS SETTINGS\n\nBIOS setting for the M2614ET in my system is 667 cylinders, 33 sectors\nand 16 heads.\n\n> I was trying to set my IDE drive in the subject above to a slave drive for\n> A Conner 170MB drive and contacting the support company gave me this answer (which works). The factory default on SW2 is On Off Off Off Off Off (1-6). This sets the drive to be a single drive. Setting SW2 to Off On On Off Off Off makes it a slave drive. SW1 has been set to On Off Off On (1-4) all along.\n\n\n\nMODEL      CYLINDERS   HEADS    SECTORS   CAPACITY (Million bytes)\n\nM2622T      1013        10        63         326.75\nM2623T      1002        13        63         420.16\nM2624T      995         16        63         513.51\n\n\nThere are 6 switches on the switch block on these drives.  Only 4 of \nthem have a use that I am aware of (from my M2624T manual):\n\nMaster/Slave        Master (*)      SW1-5 OFF\n                    Slave           SW1-5 ON\nECC bytes           4 bytes (*)     SW1-4 OFF\n                    7 bytes         SW1-4 ON\nWrite Protect       Disabled (*)    SW1-3 OFF\n                    Enabled         SW1-3 ON\nIO Channel Ready    Disabled (*)    SW1-1 OFF\n                    Enabled         SW1-1 ON\n\nI have no idea about the function of SW1-2 and SW1-6.  The values \nlisted with a (*) are the factory default settings.\n\n\n***************************   K A L O K     ***************************\n\nKALOK\tKL3100\t  105 MB\nBIOS:\tcyl 979     heads 6\tsectors 35\n\nKALOK   KL3120    120 MB\nBIOS:\t Cyl 981     heads 6     sectors 40\n\nThe following jumper settings have been reported for KL3100 but are probably\nalso valid for other Kalok drives.\n\nSingle HD:\no o o o o\n\no o o o-o    <-- same row as pin 1 of the IDE connector.\n\nMaster (disk 1):\no o o o o\n    |\no o o o o\n\nSlave:\no o o o o\n      |\no o o o o\n\nThese 5 pairs of pins are at the righthand side of the disk.\n\n\n\n***************************   M A X T O R   ***************************\n\nModel           Cyls    Heads   Sectors Precomp Landing Zone\n----------\t-----\t-----\t-------\t-------\t------------\nLXT-200A\t816\t15\t32\t0\t816\nLXT-213A\t683\t16\t38\t0\t683\nLXT-340A\t654\t16\t63\t0\t654\nLXT437A\t\t842\t16\t63\t0\t842\nLXT535A\t\t1036\t16\t63\t0\t1024\n\nJumpers are as follows:\n\nThe bottom of the drive looks like this (well, sort of):\n\n|        o o 1-2             |\n|        o o 3-4             |\n|        o o 5-6             |\n|        o o 7-8             |\n|        o o 9-10            |\n|                            |\n+[POWER] [IDE CONNECTOR]-----+\n\n\t\t\t\tSingle drive\t  Dual Drive System\nPin numbers\tJumper\t\tSystem\t\tMaster\t\tSlave\n-----------\t------\t\t------------\t------\t\t-----\n1-2\t\tSlave Drive\tremove\t\tremove\t\tinstall\n3-4\t\tActivity LED\toptional\toptional\toptional\n5-6\t\tSlave Present\tremove\t\tremove\t\toptional\n7-8\t\tMaster Drive\tremove\t\tinstall\t\tremove\n9-10\t\tSync Spindle\tremove (n/a)\toptional*\tremove\n\n* only one drive (the master) in an array should have this jumper installed.\n\n\n\nMaxtor 7060A    16    467   17     62,0 J14 closed, J13 closed\nMaxtor 7060A     7   1024   17     59,5 J14 open,   J13 open\nMaxtor 7060A     4    762   39     58,0 J14 closed, J13 open\nMaxtor 7060A     8    925   17     57,9 J14 open,   J13 closed\n\nMaxtor 7120A    16    936   17    124,3 J14 closed, J13 closed\nMaxtor 7120A    14   1024   17    119,0 j14 open,   J13 open\nMaxtor 7120A     8    762   39    116,0 J14 closed, J13 open\nMaxtor 7120A    15    900   17    112,0 J14 open,   J13 closed\nMaxtor 7120A     8    824   33    106,2 J14\n\nJumpers for the above 2 drives:\n\n                  J11  I/O-channel ready ( open: disabled; close: enabled )\n                  J13  see above\n                  J14  see above\n                  J15  operation-status ( open: normal; close: factory )\n       J J J J J            \n       2 1 1 1 1\n       0 9 8 7 6\n\nPower  data-cable\n\nJ16: Idle mode latch ( open: disabled; close: enabled )\nJ17: drive model ( open: 7060A; close 7120A )\nJ18: ECC Bytes ( open: 7 bytes; close: 4 bytes )\n\nMaster/Slave: drive is master and alone    : J20 closed, J19 closed\n              drive is master of two drives: J20 closed, J19 open\n              drive is slave of two drives : J20 open  , J19 closed\n\n\nMaxtor 7213A\n\nDefault (power-up) AT BIOS Translation Parameters (others possible)\nCyl   Hds  SpT  MBytes\n683   16   38   212\n\nThere are two sets of jumpers. A set of 5 and a set of\n4. With the power and IDE connector toward you, the set of 5 is\nnumbered (left to right) J16 - J20  , and the set of 4 is numbered\n(bottom to top) J22-J25. \n\nThe only jumper of normal interest is J20. Jumper it for only\ndrive in a single drive system, or master drive in a dual drive\nsystem.\n \nRemove the jumper J20 for slave drive in a dual drive system. \n\nJ19 is a dummy and may be used to store the spare shunt if the \ndrive is configured for a slave mode.\n\nJumpers J17, J18, J24, J25 are factory reserved. Abnormal operation\nmay occur if jumpered.\n\nJumper 22 is sync spindle enabled/disabled  (open=disabled)\nJumper 23 is sync slave/master              (open=slave)\nJumper 16 is I/O Channel Ready              (open=disabled)\n\n\nMaxtor 7245A (245Mb IDE; self-parking; Universal Translate):\nDrive type : User defineable\nCyl    Hds    WPC    LZ     S/T\n967    16     0      0      31      (WPC and LZ optional)\n\nMaster(2):  J20 closed\nSlave(2):   J20 open (use J19 for shunt storage)\nSingle:     J20 closed\n\n\n**********************   M I C R O P O L I S   ****************************\n\n\nDrive\t\t2105A\t\t2112A\n----------------------------------------\nUnformatted MB\t647\t\t1220\nFormatted MB\t560\t\t1050\nPlatters\t5\t\t8\nHeads\t\t8\t\t15\nCylinders\t1760\t\t1760\n----------------------------------------\n\nPerformance (both):\n\n\tTrack to track (read)\t\t1.5 msec\n\tTrack to track (write)\t\t2.5 msec\n\tAverage\t\t\t\t10 msec\n\tMax\t\t\t\t25 msec\n\tAvg Rotational Latency\t\t5.56 msec\n\tRotational speed\t\t5400 rpm (+/- 5%)\n\tData Transfer Rate\t\tupto 5Mbytes/sec\n\tInternal data rate\t\t24-40 Mbits/sec\n\nBIOS Settings:\n\n2105A\t\t1084 cyl\t16 heads\t63 sectors\n2112A*\tmaster\t1024 cyl\t16 heads\t63 sectors\n\tslave\t1010 cyl\t16 heads\t63 sectors\n\t\t\n* the 2112A emulates both master and slave\n\n\nJumpers (labelled J6 on the drive)\n\n\t----\n\t|oo| W1\\ only these 2 are used\n\t|oo| W2/\n\t|oo|\n\t|oo|\n\t|oo|\n\t----\n\n\tW2\tW1\n\t--\t--\n\tin\tin\t2112A only - drive emulates both master + slave\n\tin\tout\tDrive is master, slave is present\n\tout\tin\tDrive is slave\n\tout\tout\tDrive is master, no slave present (ie single drive)\n\n\n**********************   M I C R O S C I E N C E   ****************************\n\nMicroScience \n\nModel: 7100-00\nHeads: 7\nCylinders: 855\nS/T: 35 (?)\nSize: 105M\n\n\nModel # 8040-00.\nSize 40M  5hd/17sec/977cyl\n\n**********************   M I N I S C R I B E    ****************************\n\nMiniscribe\n\nMODEL   AT               CAP   CYC  H  RWC  WPC ENC  RATE ACCESS  SPT COMMENTS \n8225AT            3.5\"    21   745  2  -    -        8    28 MS    28\n8051AT            3.5\"    42   745  4  -    -        8    28 MS    28\n8450AT            3.5\"    42   745  4  -    -        8    40 MS    28\n\nMaster(2):  5-6\nSlave(2):   1-2\nSingle:     1-3 (shunt storage)\n\n\n***************************   N E C   *********************************\n\nNEC     D3735,  40 MB\nBIOS:\tCyl 537     Head 4\tsect 41\n\nNEC\tD3755,\t105 MB\nBIOS:\tCyl 625     Head 8\tsect 41\n\nNEC\tD3741,\t44 MB\nBIOS:\tCyl 423\t    Head 8\tsect 26\t\tWPcom 0\t\tLZone 424\n \n\nJumper\tJP12\tJP13\t    (for all above NEC drives)\nSingle  0       0\nMaster\t1\t0\nSlave   1       1\n\nThere have been reported difficulties in using WD Caviar as Master and\nNEC drives as slave - the other way it works.\n\n\n\n***************************   Q U A N T U M   *************************\n\nLogical Specs for Quantum AT Drives\nCOMPLIMENTS OF COMPUTER BROKERS OF CANADA\n\n\nModel       Cap     Avg Acc\tCylinders     Heads    Sectors/Track\n            (MB)     (ms)\n\n40AT        42        19           965          5            17\n80AT        84        19           965         10            17\n120AT       120       15           814          9            32\n170AT       168       15           968         10            34\n210AT       209       15           873         13            36\n425AT       426       14          1021         16            51\nLPS  52AT   52        17           751          8            17\nLPS  80AT   83        17           611         16            17\nLPS 105AT   105       17           755         16            17\nLPS 120AT   122       16           901          5            53\nLPS 240AT   245       16           723         13            51\n\n=================================================\nLegend:  1=Jumper Installed  0=No Jumper\n=================================================\n\n40 & 80 AT Jumpers\n\nDS  SS   Meaning\n1   0    Single drive configuration\n1   1    Master of dual drive\n0   0    Slave of dual drive\n0   1    Self-Seek Test\n\n=======================================================\n\n120, 170, 210 & 425 AT Jumpers\n\nDS  SP  SS   Meaning\n0   0   0    Slave when the Master is Quantum PRODRIVE other than 40/80A\n0   0   1    Slave in PRODRIVE 40/80A mode\n0   1   0    Slave when Master is non Quantum Drive\n0   1   1    Not Used\n1   0   1    Master drive PDIAG mode checking DASP for slave\n1   1   0    Master in PDIAG mode using SP to check if slave present\n1   1   1    Master in 40/80A mode using SP to check if slave present\n1   0   0    Single drive\n\n=======================================================\n\nLPS 52, 80, 105, 120 & 240 AT Jumpers\nDS  SP  DM*  Meaning\n0   0   0    Slave in standard PDIAG mode for compatibility with drives that use\n             PDIAG-line to handle Master/Slave communications\n0   0   1    Slave in PRODRIVE 40/80A mode compat. without using PDIAG line\n0   1   0    Self Test\n0   1   1    Self Test\n1   0   0    Master in PDIAG mode using DASP to check for Slave\n1   0   1    Master in 40/80A Mode using DASP to check for Slave\n1   1   0    Master in PDIAG mode using SP to check for Slave without\n             checking DASP\n1   1   1    Master in 40/80A mode using SP to check for Slave without\n             checking DASP\n\n\n======================================================================\n* While my Spec form marked the jumper name DM, it is labeled as CS on\n  my LPS 240AT drive.\n\n\n\nThe QUANTUM ELS series:\n\nModel       Cap     Avg Acc     Cylinders     Heads    Sectors/Track\n            (MB)     (ms)\n \nELS42AT        42        -           968          5             17\nELS85AT        85        -           977          10            17\nELS127AT       127       -           919          16            17\nELS170AT       170       -           1011         15            22\n\nWrite precomp = 0 for all Quantum drives ( probably no significance)\nLanding Zone = Cylinders\n\nStraps: If an ELS drive is \n\tmaster only, use DS\n\tmaster with slave, DS or, DS and SP in some cases\n\tslave, no strap\n\n\n***************************   R O D I M E    *********************************\n\nInformation for RO 3008A and RO 3009A series hard disk drives:\n\nDrive Types\n\n   Model\tCyls\tHds\tSectors/Trk\t No. blocks\tFormatted Cap.\n  -------\t----\t---\t-----------\t ----------\t--------------\n  RO3058A\t868\t 3\t    34\t\t   88,536\t 45.33 MByets\n  RO3088A\t868\t 5\t    34\t\t  147,560\t 75.55 MByets\n  RO3095A\t923\t 5\t    34\t\t  156,910\t 80.33 MByets\n  RO3128A\t868\t 7\t    34\t\t  206,584\t105.77 MByets\n  RO3135A\t923\t 7\t    34\t\t  219,674\t112.47 MByets\n \n  RO3059A\t217\t15\t    28\t\t   91,158\t 46.67 MByets\n  RO3089A\t325\t15\t    28\t\t  136,737\t 70.00 MByets\n  RO3129A\t492\t15\t    28\t\t  206,645\t105.80 MByets\n  RO3139A\t523\t15\t    28\t\t  219,735\t112.50 MByets\n  RO3209A\t759\t15\t    28\t\t  319,053\t163.35 MByets\n  RO3259A\t976\t15\t    28\t\t  410,211\t210.02 MByets\n\n\nLink Options\n\n   In order to install the Rodime Ro 3000A series drives the dumpers for \nthe single/dual drive and LED operation on the drive need to be set as \ndescribed in the relevant product specification.\n   I a single drive environment the drive is described as a Master.\n   In a dual drive environment the drives are described as a Master and a\nSlave. This is due to the protocal the takes place between the two drives \nwhen performing diagnostics.\n   There are four links, LK1, LK2, LK4 and LK5, adjacent to the 40 way \ninterface connector. They have the following functions and are described \nin order as viewed from the end of the drive, with the first jumper \ndescribed nearest the 40 way interface connector.\n\nLK2: LED \n     When fitted, this jumper connects the LED drive to pin 39 of the\n     interface. This allows a LED to be connected to the interface. An\n     external current limiting resistor needs to be fitted in series with\n     the LED when this option is selected. The value of the resistor will\n     be dependant on the LED type chosen but will be in the range of 130\n     Ohms ot 220 Ohms.\n\nLK1: Dual Drives\n     This jumper must be fitted when two drives are attached to a single\n     bus. It fallows communication across the 40 way interface connector,\n     indicating, to the Master drive, the presence of a Slave.\n\nLK4: Master\n     When fitted this signifies that the drive jumpered is a Master. If\n     there are two drives connected on a single bus then only one may be\n     jumpered in this way.\n\nLK5: IOChRdy\n     When fitted this connects the IOChRdy signal to the drive, it is \n     fitted when the drive is used in host systems that have a higher\n     data transfer rate than the drive i.e. greater than 4 MBytes per\n     second when using 1:1 interleave. This jumper is not normally \n     fitted as most hosts transfer at a lower rate than 4 MBytes per\n     second.\n\n   There are four possible Master/Slave configurations in which a drive(s)\nmay be jumpered:\n\n     Master, single drive with LED on interface\t\tLK2 & LK4 fitted.\n     Master, single drive without LED on interface\tLK4 only fitted.\n     Master, dual drive without LED on interface\tLK4 & LK1 fitted.\n     Slave, dual drive without LED on interface\t\tNo jumpers fitted.\n     Master, dual drive with LED on interface\t\tLK4, LK1 & LK2 fitted.\n     Slave, dual drive with LED on interface\t\tLK2 only fitted.\n\n   The Master drive will delay power-up for approximately two seconds to\nreduce power surges in applications where dual drives are used.\n\n   The other connections for a LED will be found close to the 28 way \nconnector at the other end of the drive. This LED driver is not affected\nby the link options. An internal current limiting resistor is on the \ndrive for this LED driver. Refer to the product specification for further\ndetails.\n\n\n\n\n***************************   S E A G A T E   *************************\n\nThere is a list of most Seagate HD (including MFM, SCSI, ESDIand IDE) on\nevery Simtel mirror under\n\n/msdos/dskutl/1seagate.zip\n\nIt contains info about the following drives:\n\n\t    st1144a\tst138a\t    st274a\tst3283a\nst1057a     st1156a\tst1400a     st280a\tst351ax\nst1090a     st1162a\tst1401a     st3051a\tst9051a\nst1102a     st1186a\tst1480a     st3096a\tst9077a\nst1111a     st1201a\tst157a\t    st3120a\tst9096a\nst1126a     st1239a\tst2274a     st3144a\tst9144a\nst1133a     st125a\tst2383a     st325ax\n\n\n*********************\tT E A C   **************\n\nModel: SD-3105\n\n                Cyls.   Heads   Sect/T  PreCmp  LZone   Capacity\n                ------  ------  ------  ------  ------  ---------\nPhysical         1282       4      40       -       -   105021440\nBIOS (AMI)        641       8      40       0       0   105021440 (100.2M)\n     (Award)      926      13      17       0       0   104778752  (99.9M)\n     (Phoenix)    776       8      33       0       0   104890368 (100.0M)\n\nConnectors and Jumpers:\n\n   +----+                    1           Jumper  Function\n   |....| +---+ +-------/ /---+   2 0       0    ON:  -ACT selected (ext.LED)\n   |    | |...| |::::::/ /::::|  ::::            OFF: -SLV PRESENT selected\n   +----+ +---+ +-----/ /-----+  3 1        1    ON:  Two HDD's\n     J2     J7  40    J1         ----            OFF: Single HDD\n   Power (Power)    Signal      Jumpers     2    ON:  Master (/Single)\n                                                 OFF: Slave (with 2 units used)\n                                            3    ON:  -I/O CH RDY not output\n                                                 OFF: -I/O CH RDY is output\nMaster Slave Settings:\n\nJumper no.:   1     2\n-----------------------\nSingle....:   0     1                            1, ON  = jumpered\nMaster....:   1     1                            0, OFF = not jumpered\nSlave.....:   1     0\n\n\n\n*********************\tW E S T E R N\t D I G I T A L\t **************\n\nCaviar series:\n\nName        Size (Mb)    Cylinders   Heads   Sectors\n----------------------------------------------------\nWDAC140      40.7         980            5        17\nWDAC280      81.3         980           10        17\nWDAC2120    119.0        1024           14        17\nWDAC2170    162.7        1010            6        55\nWDAC2200    202.8         989           12        35\nWDAC2340    325.4        1010           12        55\n\nPlease note that these are the *recommended* CMOS parameters. All the disks \nsupport so-called dynamic translation, and should thus be able to work with\nany parameters having fewer sectors than the total number of sectors on\nthe disk.\n\nNow, according to the manual, the jumper settings are as follows:\n\nJumper                               CP   MA   SL\n-------------------------------------------------\nSingle                                0    0    0\nMaster                                0    1    0\nSlave                                 0    0    1\nSlave with Conner CP342 or CP3022     1    0    1   \n\n\nMaybe there are 2 kinds of Caviar's floating around: \n\nIf your jumpers read MA SL and SI then use:\nJumper\tSI\tMA\tSL\nSingle\t1\t0\t0\nMaster\t0\t1\t0\nSlave\t0\t0\t1\n\nThere have been reported difficulties in using WD Caviar as Master and\nNEC drives as slave - the other way it works.\n> When I installed a Conner CP3204F (203 MB) as master and a WD Caviar 2200\n> (203 MB) as slave, both with and without the \"CP\" jumper, the Caviar had\n> seemingly normal behaviour. However, when doing writes to the Caviar, once\n> in a while it would overwrite directories etc. Using FASTBACK was almost\n> impossible.\n> \n> The workaround is to install the Caviar as the master, and the Conner\n> as the slave.\n\n\nWD93044-A  (40 MB)\nBIOS-Settings \n977 cyln, 5 heads, 17 sect, LZone: 977 ( wenn sie sie braucht )\n\n+-------+ +---+---+---+  1: drive is master\n| cable | | 1 | 2 | 3 |  2: drive is slave\n+-------+ +---+---+---+  3: second drive is a conner-drive\n\nNo jumper set: this is the only drive.\n\n\n\n********************  Useful telephone numbers...  ********************\n\nMiniscribe:     \n  303-651-6000\n\nMaxtor:\n  Info/tech support: 800-262-9867\n  FAX-back: 303-678-2618\n  BBS: 303-678-2222\n  They list their 800 number as 1(800)2-MAXTOR.\n\nQuantum:\n  408-894-4000\n  408-944-0410 (Support)\n  408-894-3218 (FAX)\n  408-894-3214 (BBS)\n\nSeagate:\n  Info/tech support: 408-438-8222\n  FAX-back: 408-438-2620\n  BBS: 408-438-8771\n\n\n*******************   last but not least   *****************\n\nIf I could help you with my little collection and if you live in a\npart of the world far away from me, how about a postcard for my pinboard?\nI will surely answer!\n\nCarsten Grammes\t\t\t\nExperimental Physics\t\t\nB38 2OG\nUniversitaet Saarbruecken\nW-6600 Saarbruecken\nGermany\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8361, "properties": {"category": "soc.religion.christian", "text": "From: king@ctron.com (John E. King)\nSubject: Re: Eternity of Hell (was Re: Hell)\nOrganization: Cabletron Systems Inc.\nLines: 8\n\ndb7n+@andrew.cmu.edu (D. Andrew Byler) writes:\n\n>And we also know that it is impossible to destroy the Soul.\n\nHmmm.  Here's food for thought:  \" ...but rather be in fear of him\nwho can destroy both soul and body in gehenna.\"  Math 10:28\n\nJack\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8362, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bjcon@cs.mcgill.ca (Brendan NEWMAN)\nSubject: Trident VGA Drivers\nOrganization: SOCS - Mcgill University, Montreal, Canada\nLines: 8\n\n\nHi, I have a trident TVGA-8900 video card and need the updated\ndrivers for Win3.1 where can I get them from an ftp site.\n\n\n\t\t\t\t\tThanks\n\n\t\t\t\t\tBJ.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8363, "properties": {"category": "comp.windows.x", "text": "From: bkline%occs.nlm.nih.gov (Bob Kline)\nSubject: X11 load on the Network\nOrganization: National Library of Medicine\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 12\n\nCan someone point me in the direction of any papers (not necessarily\nformally conducted studies) discussing how much traffic X apps generate\nfor the network, particularly in comparison with curses-bases apps \nover telnet?  Also, does an X server typically buffer up user keyboard\ninput a line at a time?  Can the X client control this, asking for\nkeystrokes immediately?  Thanks in advance for any feedback!\n\n--\n/*----------------------------------------------------------------------*/\n/* Bob Kline                                      Phoenix Systems, Inc. */\n/* bkline@occs.nlm.nih.gov                        voice: (703) 522-0820 */\n/*----------------------------------------------------------------------*/\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8364, "properties": {"category": "talk.politics.mideast", "text": "From: perlman@qso.Colorado.EDU (Eric S. Perlman)\nSubject: Re: Final Solution in Palestine ?\nNntp-Posting-Host: qso.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 50\n\nIn article <1993Apr25.171003.10694@thunder.mcrcim.mcgill.edu> ahmeda@McRCIM.McGill.EDU (Ahmed Abu-Abed) writes:\n>\n>In article <HM.93Apr24133027@angell.cs.brown.edu>, hm@cs.brown.edu (Harry Mamaysky) writes:\n>|> In article <1483500354@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n>|> \n>|>    Final Solution for the Gaza ghetto ?\n>|>    ------------------------------------\n>|> \n>|>    While Israeli Jews fete the uprising of the Warsaw ghetto, they\n>|>    repress by violent means the uprising of the Gaza ghetto and\n>|>    attempt to starve the Gazans.\n>|> \n>|>    [...]\n>|> \n>|> The Jews in the Warsaw ghetto were fighting to keep themselves and\n>|> their families from being sent to Nazi gas chambers. Groups like Hamas\n>|> and the Islamic Jihad fight with the expressed purpose of driving all\n>|> Jews into the sea. Perhaps, we should persuade Jewish people to help\n>   ^^^^^^^^^^^^^^^^^^\n>|> these wnderful \"freedom fighters\" attain this ultimate goal.\n>|> \n>|> Maybe the \"freedom fighters\" will choose to spare the co-operative Jews.\n>|> Is that what you are counting on, Elias - the pity of murderers.\n>|> \n>|> You say your mother was Jewish. How ashamed she must be of her son. I\n>|> am sorry, Mrs. Davidsson.\n>|> \n>|> Harry.\n>\n>O.K., its my turn:\n>\n>       DRIVING THE JEWS INTO THE SEA ?!\n>\n>I am sick and tired of this 'DRIVING THE JEWS INTO THE SEA' sentance attributed\n>to Islamic movements and the PLO; it simply can't be proven as part of their\n>plan !\n\nThis has been discussed before, by several people, on this net.  The\nstatement is attributable either to Hajj Amin al-Husseini, former Grand\nMufti of Jerusalem - and the leader of the Palestinian death squads\nduring the 1948 war, or to one of his chief henchmen.  \n\nIt was not coined by B'nai B'rith or, for that matter, any Jewish\norganization.  \n\n-- \n\"How sad to see/A model of decorum and tranquillity/become like any other sport\nA battleground for rival ideologies to slug it out with glee.\" -Tim Rice,\"Chess\"\n     Eric S. Perlman \t\t\t\t <perlman@qso.colorado.edu> \n  Center for Astrophysics and Space Astronomy, University of Colorado, Boulder\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8365, "properties": {"category": "sci.crypt", "text": "From: warlord@MIT.EDU (Derek Atkins)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nOrganization: Massachusetts Institute of Technology\nLines: 37\nNNTP-Posting-Host: deathtongue.mit.edu\nIn-reply-to: strnlght@netcom.com's message of Tue, 20 Apr 1993 23:52:28 GMT\n\n-----BEGIN PGP SIGNED MESSAGE-----\n\nIn article <strnlghtC5t3nH.Is1@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n\n   In article <1993Apr20.032623.3046@eff.org> kadie@eff.org (Carl M. Kadie) writes:\n\n\n   >So, don't just think of replacements for clipper, also think of front\n   >ends.\n\n   This only makes sense if the government prohibits alternative non-escrowed\n   encryption schemes. Otherwise, why not just use the front end without\n   clipper?\n\n   David\n\nDavid, they (== the gov't) have already said that they hope to DO THIS\nin the long run...\n\n- -derek\n\nPGP 2 key available upon request on the key-server:\n\tpgp-public-keys@toxicwaste.mit.edu\n\n-----BEGIN PGP SIGNATURE-----\nVersion: 2.2\n\niQBuAgUBK9TknDh0K1zBsGrxAQEAQgLFEFNH9HlHyoVHuWR5RWD9Y+mBrXkYKWsC\naAZO1x1WXhca5FG+UK9/TYYoBpBTLqGSUrgKgdzPXWFH8/+ZXgXrggwf6wP2eDSt\nBYCCYb9JRX3LoZcg5whgOi4=\n=8H7Y\n-----END PGP SIGNATURE-----\n--\n  Derek Atkins, MIT '93, Electrical Engineering and Computer Science\n     Secretary, MIT Student Information Processing Board (SIPB)\n           MIT Media Laboratory, Speech Research Group\n           warlord@MIT.EDU       PP-ASEL        N1NWH\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8366, "properties": {"category": "comp.windows.x", "text": "From: jeffcop@i88.isc.com (Jeff Copeland)\nSubject: HP Interface Architect\nNntp-Posting-Host: laila.i88.isc.com\nOrganization: INTERACTIVE Systems Corporation, Naperville, IL\nDistribution: usa\nLines: 15\n\nHey GUI folks,\n\nDoes anyone out there have experience with the HP Interface Architect\n(GUI dev tool)?  If so, can I call you and ask a couple of quick\nquestions?  I promise I'll be brief, the questions are simple, and of\ncourse I'll call on my nickel.\n\nJeff Copeland\njeffcop@i88.isc.com\n\n708-505-9100 x330\nINTERACTIVE Systems Corp. (now a Systemhouse co.)\n-- \nJeff Copeland\njeffcop@i88.isc.com          708-505-9100   x330\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8367, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: \"Imaginary\" Friends - Info and Experiences\nFrom: patb@bnr.co.uk (Patrick Brosnan)\nOrganization: BNR Europe, New Southgate, London.\nNNTP-Posting-Host: bnsgs195.bnr.co.uk\nLines: 21\n\nIn article <1993Apr2.041929.24320@mnemosyne.cs.du.edu> kditto@nyx.cs.du.edu (Kimborly Ditto) writes:\n>\n>Concerniong this thread...\n>\n>Has anyone ever seen \"Drop Dead Fred\" ??  THis movie seems to tipify the\n>\"imaginary friend\" theme rather well.  I LOVED the movie, as i had an\n>imaginary friend when i was a kid and it borught back great memories.  \n>\n>Seriously, if you have a chance, see \"Drop Dead Fred\".  It'll make ya\n>think.  especially the end.\n>\n>Blessings!\n>--Kim\n>\n\n\n-- \nPatrick Brosnan.  <patb@bnr.co.uk> || ...!mcsun!ukc!stc!patb\nNorthern Telecomm, Oakleigh Rd South, London N11 1HB. \nPhone : +44 81 945 2135 or +44 81 945 4000 x2135\n\"Oh, Flash, I love you - but we've only got 14 hours to save the universe.\"\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8368, "properties": {"category": "talk.politics.mideast", "text": "From: eggertj@moses.atc.ll.mit.edu (Jim Eggert x6127 g41)\nSubject: Re: Israeli Terrorism\nIn-Reply-To: cy779@cleveland.Freenet.Edu's message of 26 Apr 93 22:22:28 GMT\nLines: 22\nReply-To: eggertj@atc.ll.mit.edu\nOrganization: MIT Lincoln Lab - Group 41\n\t<2BDAD779.24910@news.service.uci.edu>\n\t<1993Apr26.184547.20058@das.harvard.edu>\n\t<1rhnb4$1pp@usenet.INS.CWRU.Edu>\n\nIn article <1rhnb4$1pp@usenet.INS.CWRU.Edu> cy779@cleveland.Freenet.Edu (Anas Omran) writes:\n>   In a previous article, adam@endor.uucp (Adam Shostack) says:\n>\n>   >In article <2BDAD779.24910@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n>   >>In article <AMOSS.93Apr25163327@shuldig.cs.huji.ac.il> amoss@shuldig.cs.huji.ac.il (Amos Shapira) writes:\n>   >>>cy779@cleveland.Freenet.Edu (Anas Omran) writes:\n>   >\n>   >>>Eh????  Could you please give me details about an event where a \"Neutral\n>   >>>Observer\" was killed by purpose by an Israeli soldier?\n>   >\n>\n>   There are many cases, but I do not remeber names.  The Isralis shot and killed\n>   a UN observer in Gaza in the first half of Intifada.\n>...\n\nNot exactly the same, but reminiscent of the assassination of Count\nBernadotte, who was _the_ UN negotiator during the 1948 Israeli war of\nindependence.  He was killed by the Israelis.  Seems he was being too\nsuccessful in negotiating a cease-fire, which would have worked\nterritorially against the nascent Israel, compared to continued war.\n--\n=Jim  eggertj@atc.ll.mit.edu (Jim Eggert)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8369, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: My Gun is like my American Express Card\nLines: 77\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <CMM.0.90.2.735386976.thomasp@surt.ifi.uio.no> Thomas Parsli <thomasp@ifi.uio.no> writes:\n\n>I don't remember the figures EXACTLY, but there were about 3500 deaths in Texas\n>in 1991 that was caused by guns.....\n\n       How about \"firearm related.\"\n\n>This is more than those beeing killed in car-ACCIDENTS!\n\n       Texas is unusual in this regard.  It would be nice to reduce them\nboth, though.\n\n       As Texas doesn't appear to have an murder rate that much higher than\nthe national average, I would expect it is a result of a much higher\nsuicide rate.\n\n>*I* should not suffer because of others....\n\n       Be nice if you didn't have to suffer at all.\n\n>We all agree on this one, BUT we also live in a sociaty and therefor\n>we'll have to give up *SOME* of our 'freedom' (Note the '').\n\n       Here's where we run into a problem.  I am perfectly willing to\nhave government regulation on something which is likely to cause others\nharm.  What we're discussing, though, is the extreme regulation of a large\ngroup in order to target a small group, and I don't think that's\nappropriate. \n\n>Do you have an insurance??\n>Then you'll have to pay because of what others do...       \n>\n>Do you buy anything??\n>YOU are paying for those who return goods, steal or even those who gets a bonus...\n>\n>Do you live with other people??\n>Then you 'can't' do ererything you'd want (burping/farting playing music LOUD)\n\n        Does this, then, justify anything?  At some point you have to draw\na line (at least to my way of thinking) where the government must have\nsomething a little more substantial than a set of percentages with which\nto punish an individual.\n\n        Where do *you* draw the line?  Or is there one?\n\n>One state (don't remember which, Texas??) tried to impose a rule that you could\n>only buy ONE gun each MONTH. Think you all know what happened.....\n\n        Virginia.  It passed.\n\n>I respect the right to defend yourself, but that right should not inflict on\n>other people.\n\n        Does it?\n\n>It seems like you all realize that you have a problem in America, the only\n>problem is that you won't take the car away from the drunk driver, you \n>hope to cure him first.\n\n        Cute analogy. \n\n        The U.S. doesn't treat drunk driving like a serious crime.  However,\nwe also don't confiscate cars of people who drink.  We also don't confiscate\n*all* cars because some people drink and drive.  It's the core of the legal\nsystem that in order to punish an individual (and I'd call property\nconfiscation a punishment) you must have evidence against that individual.\nThat is, it isn't enough to show that the majority of people convicted of\nmurder are white  in order to convict a particular white guy of murder.\n\n>Hope life comfirms to the standard of Winnie the Poh.\n\n        Huh?\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8370, "properties": {"category": "soc.religion.christian", "text": "From: jono@mac-ak-24.rtsg.mot.com (Jon Ogden)\nSubject: Re: Hell_2:  Black Sabbath\nOrganization: Motorola LPA Development\nLines: 38\n\nIn article <Apr.23.02.54.12.1993.3063@geneva.rutgers.edu>,\nsalaris@niblick.ecn.purdue.edu (Rrrrrrrrrrrrrrrabbits) wrote:\n\n> Jeff Fenholt claims to have once been a roadie for Black Sabbath.\n> He was never ever a musician in the band.  He was in St. Louis several\n> months back.  The poster I saw at the Christian bookstore I frequent\n> really turned me off.  It was addressed to all \"Homosexuals, prostitutes,\n> drug addicts, alcoholics, and headbangers...\" or something like that.\n> \n> Well, if I showed up with my long hair and black leather jacket I\n> would have felt a little pre-judged. \n\nI have seen Jeff Fenholt speak and I didn't find him judgemental.  I think\nthat the wording for that add was certainly inappropriate, but I think they\nwere trying to say that headbangers would like the program.  But I would\nNOT put headbangers in the same class as alcholics, etc.  it is\ncondescending.  And I believe that Jeff was wearing black when I saw him.\n\nBy the way, Fenholt played Jesus in Jesus Christ Superstar.\n\nPersonally, I'm a headbanger at times too, but I have a hard time with what\nmost of the secular metal groups promote.  Free sex and drugs (my opinion\nthat many promote these) aren't my thing.  I HAVE found several good\nChristian metal groups that I like.\n\n\nJon\n\n------------------------------------------------\nJon Ogden         - jono@mac-ak-24.rtsg.mot.com\nMotorola Cellular - Advanced Products Division\nVoice: 708-632-2521      Data: 708-632-6086\n------------------------------------------------\n\nThey drew a circle and shut him out.\nHeretic, Rebel, a thing to flout.\nBut Love and I had the wit to win;\nWe drew a circle and took him in.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8371, "properties": {"category": "sci.electronics", "text": "From: jott@scarecrow.cse.nd.edu (John Ott)\nSubject: Re: Pinout needed for TIL311\nReply-To: jott@scarecrow.cse.nd.edu (John Ott)\nOrganization: Univ. of Notre Dame\nLines: 64\n\nIn article <segal.734995860@corolla7>, segal@rtsg.mot.com (Gary Segal) writes:\n|> I've recently picked up some TIL311 display chips, but I can't find\n|> any information on them.  It seems they are no longer made by TI, and\n|> I don't have an old enough data book.  :-(\n|> \n|> It appears to have a dot-matrix led display capable of showing one hex\n|> digit.  It is in a 14 pin DIP package, but pins 6, 9, and 11 are not\n|> present.\n|> \n|> If you have any information on this part (pinout, power requirments,\n|> functions, ...) please send me e-mail.\n|> \n|> Thank You,\n|> \n|> -- \n|> Gary Segal                             Motorola Inc.            \n|> segal@oscar.rtsg.mot.com               Cellular Infrastructure Division\n|> \t--- we are standing here only to gaze at the wind ---\n\n\npin      function\n 1      led supply voltage\n 2      latch data input b\n 3      latch data input a\n 4      left decimal point cathode\n 5      latch strobe input\n 6      omitted\n 7      common gnd\n 8      blanking input\n 9      omitted\n10      right decimal point cathode\n11      omitted\n12      latch data input d\n13      latch data input c\n14      logic supply voltage (5v)\n\nLATCH STROBE INPUT, pin 5, when low, the data in the latches follow the data on the latch data\n                             inputs.  When high, the data in the latches will not change.  If the\n                               display is blanked and then restored while the enable input is high,\n                               the previous character will again be displayed.\n\nBLANKING INPUT, pin 8,    When high, the display is blanked regardless of the levels of the other\n                              inputs.  When low, a character is displayed as determined by the data\n                              in the latches.  The blanking input may be pulsed for intensity modulation.\n\nLATCH DATA INPUTS, pins 2,3,12,13,   Data on these inputs are entered into the latches when the enable\n                                          input is low.  The binary weights of these inputs are A = 1,\n                                          B = 2, C = 4, D = 8\n\nDECIMAL POINT CATHODES, pins 4, 10,   These LEDS are not connected to the logic chip.  If a decimal point\n                                          is used, an external resistor or other current limiting\n                                          mechanism must be connected in series with it.\n\nLED SUPPLY, pin 1            This connection permits the user to save on regulated Vcc current by using\n                                 a separate LED supply, or it may be externally connected to the logic\n                                 supply (Vcc).\n\nLOGIC SUPPLY (Vcc), pin 14      Separate Vcc connection for the logic chip\n\nCOMMON GROUND, pin 7,      This is the vegative termnal for all logic and LED currents except for the\n                              decimal points.\n\nJohn\njott@dickens.helios.nd.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8372, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: WARNING.....(please read)...\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 40\n\nIn article <1993Apr15.173951.20173@icf.hrb.com> jek@icf.hrb.com (Joe Karolchik) writes:\n>(I deleted your name because I don't want to sound accusative in my remark)\n>> \n>> On another occasion, on my way from Texas to Florida, I had stopped in \n>> a small motel\n>> for the night in a small town somewhere in Florida. About 5 youths were \n>> disturbing my\n>> car, setting off the alarm and challenging me to come out. When I and \n>> another tenant\n>> walked out with a 357 Magnum and a 45 automatic respectively, they vanished. \n>> Needless to say, I immediately packed-up and left.\n>> \n>> Watch out for car-jacking and staged accidents. They can be deadly!\n>> \n>I'm not going to argue the issue of carrying weapons, but I would ask you if \n>you would have thought seriously about shooting a kid for setting off your\n>alarm?  I can think of worse things in the world.  Glad you got out of there\n>before they did anything to give you a reason to fire your gun.\n\nIf I hear someone screwing with my car (ie, setting off the alarm) and\ntaunting me to come out, you can be damn sure that my Colt Delta Elite\nwill also be coming with me. It's not the screwing with the car that'd\nget them shot, it's the potential physical danger. If they're\ntaunting like that, it's very possible that they also intend to rob\nme and/or do other physically harmful things.\n\nIf they're just screwing around, no harm done. If they're bent on\nmayhem, they will receive the cure for their lead deficiency; a\n180gr. injection @1200 fps...there's no telling what today's violent\ncriminals will do. Death may be the most pleasant outcome...\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8373, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mulvey@blurt.oswego.edu (Allen Mulvey, SUNY, Oswego, NY)\nSubject: Re: Memory Slot Problem\nOrganization: SUNY College at Oswego, Oswego, NY\nLines: 26\n\nIn article <1qiijs$t27@bigboote.WPI.EDU>, ralf@wpi.WPI.EDU (Ralph Valentino) writes:\n> I finally decided to upgrade my 486-33 EISA's memory from 8 Meg to 16\n> Meg - two months after the parts warranty ran out on the (Anigma)\n> motherboard - two months too late.  It seems there's a problem with\n> one or both of the two 1M/2Mx36bit sim slots in bank B.  On boot I get\n> a pattern test failure at address 0xa00000 and the system deconfigures\n> the top 6 Meg.  The sims are good, I tried rotating all of them into\n> bank A.  On one of the configurations, however, the pattern test\n... deletions...\n> failed at 0x800000.  In all tests, the pattern that appeared was the\n same as the pattern if no sim was in place.  This leads me to believe\n> the one or two of the connector address pins are at fault and, with a\n> lot of luck, might be patchable.\n\n> \n> -Ralph\n> ===============\n> Ralph Valentino   (ralf@chpc.org)  (ralf@wpi.wpi.edu)\n> Hardware Engineer,  Worcester  Polytechnic  Institute\n> Center for High Performance Computing, Marlborough MA\n\nMany motherboards have jumpers to enable/disable the memory banks.  Did you \ncheck that out?\n\n\t\t\tAllen mulvey\n\t\t\tmulvey@blurt.oswego.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8374, "properties": {"category": "rec.sport.baseball", "text": "From: reeve@steam.Xylogics.COM (Scott Reeve)\nSubject: Re: Yankee fears.\nNntp-Posting-Host: steam.xylogics.com\nReply-To: reeve@steam.Xylogics.COM (Scott Reeve)\nOrganization: Xylogics, Inc. Burlington, MA, USA 01810\nLines: 1\n\nRawley Eastwick\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8375, "properties": {"category": "sci.crypt", "text": "From: rjq@phys.ksu.edu (Rob Quinn)\nSubject: Stray thought (was Re: More technical details\nOrganization: Kansas State University\nLines: 18\nNNTP-Posting-Host: bohr.phys.ksu.edu\n\nIn <1993Apr19.134346.2620@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n>Date: Sun, 18 Apr 93 07:56:39 EDT\n>From: denning@cs.georgetown.edu (Dorothy Denning)\n>        The Clipper Chip will have a secret crypto algorithm embedded in \n>The algorithm operates on 64-bit blocks (like DES) and the chip supports\n>all 4 DES modes of operation.  The algorithm uses 32 rounds of scrambling\n>compared with 16 in DES.\n\n So in a few years there could be millions of these chips in the USA, all\nnetworked together? Sounds like a good science fiction story - the government\nwants to crack foreign DES (or whatever) messages, so they con the public into\nindividually buying all of the components and installing them. Soon the US\ncould be covered by the largest parallel computer in the world, built on top of\nour current phone net.\n--\n| \"Those who suppress freedom always                             Rob Quinn |\n| do so in the name of law                                rjq@phys.ksu.edu |\n| and order.\" --John Lindsay                         QuinnBob@KSUVM.BITNET |\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.398+0000", "event": "documents", "entityId": 8376, "properties": {"category": "rec.sport.baseball", "text": "From: steinman@me.utoronto.ca (David Steinman)\nSubject: Re: And America's Team is....But Why?\nOrganization: UofT Mechanical Engineering\nLines: 15\n\ncka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n\n>\tThe defenition of the Underdog is a team that has no talent and comes\n>out of nowhere to contend.  The '69 Mets and '89 Orioles are prime examples,\n>not the Cubs. \n\nSorry, but it is *virtually* impossible to win a division with \"no talent\"\nover 162 games.\n\nI would amend your definition to:\n\nunderdog:  a team expected to lose, but which wins thanks to underestimated\n           talent.\n--\nDave!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8377, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: The Escrow Database.\nOrganization: DSI/USCRPAC\nLines: 17\n\nIn article <tcmayC5rs6n.Lz8@netcom.com> tcmay@netcom.com (Timothy C. May) writes:\n\n>\n>After the Waco Massacre and the Big Brother Wiretap Chip, any tactic\n>is fair.\n\nThis is pernicious nonsense!\n\nDavid\n\n\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8378, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Kawi Zephyr? (was Re: Vision vs GpZ 550)\nFrom: REE700A@MAINE.MAINE.EDU\nOrganization: University of Maine System\nLines: 17\n\nI don't know about the dinky little Zephyr's, but the 1100 (now\nthe ZR1100) looks alot like my '76 Z1/ KZ900!  The one I drooled over\nat Tri-Sports in Topsham, ME was a looker!\n\nYes, Mercury axed the Zephyr name.  Guess a lot of aging Republicans\nwanted a Zephyr and confused the Mercury with the Kawasaki :).  Oh\nwell, they're better off with the Kawasaki anyways.  Maybe it'll shake the\nstick out of their asses and  make Libertarians out of them!\n\nAs to the GPz <--> Zephyr, the only GPz I've seen had the ball-buster\ngas tank profile, not the smooth saddle - to - gas tank transition.\n_Motorcyclist_ claims the Zephyr / ZR is the modernized Z1 (KZ) from the\nseventies.\nJeff Andle   DoD #3005  1976 KZ900     REE700A@MAINE.MAINE.EDU\n\nIntermittentNet access arranged through Bowdoin College.  Please reply\nvia e-mail, since a followup might expire before I see the Net again.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8379, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenians were also partners in Nazi practices.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 82\n\nIn article <C5vBnv.CJ@blaze.cs.jhu.edu> arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n\n>This implies both sides are equal.  True, it may sometimes be difficult or\n\nStill living in an alternate universe? Numerous articles in major newspapers \n(London Times) and periodicals (Newsweek) during the war, had suggested \nthe existence of a significant collaboration between Armenians and the \nNazis. Arthur Derounian deserves credit for being the first person to \ndeal with this issue extensively. Derounian's motives were twofold: his \ndeeply held democratic convictions gave him a sense of duty and he felt \nobliged to shed light on this yet another dark chapter of Armenian history.\nConcurrently, Derounian embarked on what one would call 'crisis control' \nor face-saving. In order to forestall any potential attacks on the larger \nArmenian community in the United States, he marginalized collaboration \nas deplorable but insignificant.[1]\n\n[1] John Roy Carlson (real name Arthur Derounian), 'The Plotters,'\n    E. P. Dutton & Company, Inc., New York 1946, p. 182.\n\n\n Source: \"Mitteilungsblatt, Berlin, December 1939, Nr. 2 and 5-6\"\n\n Yet another historical fact: a fact that for years has been deliberately \n forgotten, concealed, and wiped from memory - the fact of Armenian-Nazi \n collaboration.\n\n A magazine called Mitteilungsblatt der Deutsch-Armenischen Gesselschaft\n is the clearest and most definite proof of this collaboration. The \n magazine was first published in Berlin in 1938 during Nazi rule of Germany\n and continued publication until the end of 1944. Even the name of the\n magazine, which implies a declaration of Armenian-Nazi cooperation,\n is attention-getting.\n\n This magazine, every issue of which proves the collaboration, is historically\n important as documentary evidence. It is a heap of writing that should be\n an admonition to world opinion and to all mankind. \n\n In Nazi Germany, Armenians were considered to be an Aryan race and certain\n political, economic, and social rights were thus granted to them. They \n occupied positions in public service and were partners in Nazi practices.\n The whole world of course knows what awaited those who were not considered \n \"Aryan\" and what befell them.\n\nNow wait, there is more.\n\nSource: \"From Sardarapat to Sevres and Lausanne\" by Avetis Aharonian. The \nArmenian Review, Vol. 16, No. 3-63, Autumn, Sep. 1963, pp. 47-57.\n\np. 52 (second paragraph).\n\n\"Your three chiefs, Dro, Hamazasp and Kulkhandanian are the ringleaders\n of the bands which have destroyed Tartar villages and have staged \n massacres in Zangezour, Surmali, Etchmiadzin, and Zangibasar. This is\n intolerable. Look - and here he pointed to a file of official documents\n on the table - look at this, here in December are the reports of the last\n few months concerning ruined Tartar villages which my representative\n Wardrop has sent me. The official Tartar communique speaks of the\n destruction of 300 villages.\"\n\n\np. 54 (fifth paragraph).\n\n\"Yes, of course. I repeat, until this massacre of the Tartars is stopped\n and the three chiefs are not removed from your military leadership I\n hardly think we can supply you arms and ammunition.\"\n\n\"...it is the armed bands led by Dro, Hamazasp and Kulkhandanian who\n during the past months have raided and destroyed many Tartar villages in\n the regions of Surmali, Etchmiadzin, Zangezour, and Zangibasar. There are\n official charges of massacres.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8380, "properties": {"category": "rec.autos", "text": "From: mps1@cec1.wustl.edu (Mihir Pramod Shah)\nSubject: Re: new saturn argument\nArticle-I.D.: wuecl.1993Apr6.225025.13054\nOrganization: Washington University, St. Louis MO\nLines: 78\nNntp-Posting-Host: cec1\n\nIn article <C50p1M.21o@noose.ecn.purdue.edu> rjwade@rainbow.ecn.purdue.edu (Robert J. Wade) writes:\n>\n>ok, how about this to argue about.  why does the sl2 have a much lower base\n>price than the sc2???  it's over 1k cheaper(i forget the exact amount).\n>doesn't it cost more to have the extra doors/windows/locks/motors etc. that \n>are in the 4 door????  perhaps it is just a marketing deal....people want the\n>2door, so they will pay the extra 1.2k???\n\nOk, here's what I understand:\n\nThe SL/SL1/SL2/SW1/SW2 was meant to compete with the following cars:\n\nHonda Civic\nToyota Tercel (SL,SL1)\nToyota Corolla (SL1,SL2)\nNissan Sentra\nMazda 323/Protoge'\nSubaru Loyale/Impreza\nIsuzu Stylus\nGeo Prizm\nFord Escort\nMercury Tracer\nMistubishi Mirage\nPlymouth/Dodge Colt\n\n\nTheir core competition is the Civic, Corolla, and Sentra.  Most of the other\nmodels are in the same class, but aren't the first cars you would think of.\nI threw in the Escort/Tracer because it has a good amount of Japanese\ntechnology and has similar reliability stats.  I didn't include domestic small\ncars such as the Cavalier, Sunbird, Shadow, Sundance, Tempo, and Topaz, since I\nthink Saturn is going after cars that have at least some degree of Japanese\nroots.\n\nThe SC1/SC2 was meant to compete against the following cars:\n\nToyota Paseo\nHonda Civic Si/Civic Coupes/del Sol Si\nNissan NX1600/NX2000\nMazda MX-3\nIsuzu Impulse\nGeo Storm\nFord Escort GT\n\n\nIf you look at the prices of these cars, they're more expensive than they're\n4-door counterparts.  The is good reason for this.  It is a more upscale and\ntrend-driven market.  Even though many of these models are based on sedan\nplatforms, their interior, etc. is good enough to warrant slightly higher\nprices.  Here are some of the platform derivations I can think of:\n\nTercel -> Paseo\nSentra -> NX1600/NX2000\nCivic -> del Sol\n323 -> MX-3 (not sure on this one)\nStylus -> Impulse/Storm\n\nTo illustrate, a Tercel starts at around $8000, while the Paseo starts at\naround $11,000.  Even a 4-door Tercel will cost less than a 2-door Paseo.  Now,\nyou might be saying that the Tercel doesn't offer the power that some 4-doors\noffer.  What I mean is that there is no 4-dr Tercel with a comparable\npowerplant as its sport coupe derivative.  Let's take another example: the\nIsuzu Stylus XS and Impulse XS/Storm GSi.  Both have the same powerplants (a\n1.6L 140hp engine), but the smaller 2-dr coupes are generally more expensive.\nAgain, this is because the two-door sport coupe market is a more\nfashion-oriented and trend-setting segment.  People are willing to pay more\nmoney for this type of car.  \n\n\nIn short, even though the SC1/SC2 may be smaller, hence \"less\" car, it's market\norientation dictates a slightly higher price than its mechanically equivalent\nsedan (SL1/SL2) version.\n\nI hope this clears things up a bit......\n\n\nMihir Shah\n\t \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8381, "properties": {"category": "sci.med", "text": "From: jfare@53iss6.Waterloo.NCR.COM (Jim Fare)\nSubject: Re: Endometriosis\nReply-To: jfare@53iss6.Waterloo.NCR.COM (Jim Fare)\nDistribution: world\nOrganization: Imaging Systems Division, NCR Corp, Waterloo, Ont., CANADA\nLines: 26\n\nIn article <1993Apr16.032251.6606@rock.concert.net> naomi@rock.concert.net (Naomi T Courter) writes:\n>can anyone give me more information regarding endometriosis?   i heard\n>it's a very common disease among women and if anyone can provide names\n>...\n>--Naomi\n\nEndometriosis is where cells that would normally be lining the uteris exist\noutside the uteris.  Sometimes this causes problems, often it doesn't.\nThere is generally no need to remove pockets of endometriosis unless they are\ncausing other problems.  One lady I know had Endometriosis in an ovary.  \nThis caused her a _great_ deal of pain.  Another lady I know has an     \nendometrial cyst in her abdominal wall; she is not having it removed.\n\nThe American Fertility Society has information on this and they probably \nmaintain a list of physicians in all parts of the continent that deal with\nendometriosis.  You can reach them at:\n\nThe American Fertility Society\n2140 11th Ave South\nSuite 200\nBirmingham, Alabama 35205-2800\n(205)933-8494\n\n                                     [J.F.]\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8382, "properties": {"category": "rec.motorcycles", "text": "From: kevinh@hslrswi.hasler.ascom.ch (kevinh)\nSubject: Re: Happy Easter!\nOriginator: kevinh@nath\nReply-To: kevinh@hasler.ascom.ch\nOrganization: Ascom Hasler AG\nLines: 21\n\n\nIn article <1993Apr19.154020.24818@i88.isc.com>, jeq@lachman.com (Jonathan E. Quist) writes:\n|> In article <2514@tekgen.bv.tek.com> davet@interceptor.cds.tek.com (Dave Tharp CDS) writes:\n|> >In article <1993Apr15.171757.10890@i88.isc.com> jeq@lachman.com (Jonathan E. Quist) writes:\n|> >>Rolls-Royce owned by a non-British firm?\n|> >>\n|> >>Ye Gods, that would be the end of civilization as we know it.\n|> >\n|> >  Why not?  Ford owns Aston-Martin and Jaguar, General Motors owns Lotus\n|> >and Vauxhall.  Rover is only owned 20% by Honda.\n|> \n|> Yes, it's a minor blasphemy that U.S. companies would on the likes of A.M.,\n|> Jaguar, or (sob) Lotus.  It's outright sacrilege for RR to have non-British\n|> ownership.  It's a fundamental thing\n\n\nI think there is a legal clause in the RR name, regardless of who owns it\nit must be a British company/owner - i.e. BA can sell the company but not\nthe name.\n\nkevinh@hasler.ascom.ch\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8383, "properties": {"category": "talk.politics.mideast", "text": "From: hm@cs.brown.edu (Harry Mamaysky)\nSubject: Re: Happy Birthday Israel!\nIn-Reply-To: eshneken@ux4.cso.uiuc.edu's message of Mon, 26 Apr 1993 17:57:50 GMT\nOrganization: Dept. of Computer Science, Brown University\nLines: 6\n\nIn article <C63r8F.76s@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n\n   Israel - Happy 45th Birthday!\n\nMay you and your neighbors know peace even before you see 46.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8384, "properties": {"category": "comp.graphics", "text": "From: craig@toontown.ColumbiaSC.NCR.COM (Craig S. Williamson)\nSubject: Video in/out\nReply-To: craig@toontown.ColumbiaSC.NCR.COM (Craig S. Williamson)\nDistribution: na\nOrganization: NCR E&M Columbia, SC\nLines: 14\n\n\nI'm getting ready to buy a multimedia workstation and would like a little\nadvice.  I need a graphics card that will do video in and out under windows.\nI was originally thinking of a Targa+ but that doesn't work under Windows.\nWhat cards should I be looking into?\n\nThanks,\nCraig\n\n-- \n                                             \"To forgive is divine, to be\n-Craig Williamson                              an airhead is human.\"\n Craig.Williamson@ColumbiaSC.NCR.COM                -Balki Bartokomas\n craig@toontown.ColumbiaSC.NCR.COM (home)                  Perfect Strangers\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8385, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Oops! Oh no!\nFrom: ranck@joesbar.cc.vt.edu (Wm. L. Ranck)\nOrganization: Virginia Tech, Blacksburg, Virginia\nNNTP-Posting-Host: joesbar.cc.vt.edu\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 17\n\nJACK ROGERS WATERS (jrwaters@eos.ncsu.edu) wrote:\n: In article <1ppejb$3h0@vtserf.cc.vt.edu> ranck@joesbar.cc.vt.edu (Wm. L. Ranck) writes:\n: >\n: >Well, at least I damaged my own bike.  If I had done it to someone else's\n: >property I'd *really* feel like a jerk.  As it is I just feel stupid.\n: >\n: I don't mean to be a cynic but . . . . you may want to reconsider\n: having the body work done right away.  The same type of thing\n: may happen again.  Wait till you get used to the bike, etc.\n\nWell, I waited a whole week to take the pastic bits off and take them\nto the body shop.  Is that long enough :-)\n--\n\n*******************************************************************************\n* Bill Ranck                                          ranck@joesbar.cc.vt.edu *\n*******************************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8386, "properties": {"category": "misc.forsale", "text": "From: yhdw@quads.uchicago.edu (stephen t parker)\nSubject: DOS 5.0\nReply-To: yhdw@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 16\n\n\nPosting for a friend.  Reply to him, not to me.\n\nFor Sale:  Micro Soft DOS v. 5.0\n\nMicro Soft DOS v. 5.0\nRelease date: 11/11/91\n3 1/2\" diskettes\nmanual in perfect conditioni\nbest offer accepted (I pay shippinig)\n\nContact Randall at:\n\nRandall_Clark@byu.edu\n(801) 222-0834 (home)\n(801) 378-2722 (work)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8387, "properties": {"category": "rec.motorcycles", "text": "From: asphaug@lpl.arizona.edu (Erik Asphaug x2773)\nSubject: Insurance discount\nSummary: Two or more vehicles... discount?\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 26\n\nHola amigos,\n\nQuiero... I need an answer to a pressing question.  I now own two\nbikes and would love to keep them both.  One is a capable and\nsmooth street bike, low and lightweight with wide power and great\nbrakes; the other is a Beemer G/S, kind of rough for the city but\ngreat on the long road and backroad.  A good start at a stable, but\nI don't think it's going to work.  Unfortunately, insurance is going\nto pluck me by the short hairs.  \n\nUnless... some insurance agent offers a multi-vehicle discount.  They\ndo this all the time for cars, assuming that you're only capable of \ndriving one of the things at a time.  I don't think I'll ever manage\nto straddle both bikes and ride them tandem down the street. (Turn left...\naccelerate the Zephyr; turn right... accelerate the Beemer.)  Does\nanybody know of an agency that makes use of this simple fact to\ndiscount your rates?  State Farm doesn't.\n\nBy the way, I'm moving to the Bay area so I'll be insuring the bikes\nthere, and registering them.  To ease me of the shock, can somebody\nguesstimate the cost of insuring a ZR550 and a R800GS?  Here in Tucson\nthey only cost me $320 (full) and $200 (liability only) for the two,\nper annum.\n\nMuchas gracias,\n\t\t\tEnrique\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8388, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Opel owners?\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 45\n\nIn article <C5t3B2.DG@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>boyle@cactus.org (Craig Boyle) writes:\n>\n>>In article <C5sxI4.J9B@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>>>gibbonsa@fraser.sfu.ca (Darren Gibbons) writes:\n>>>>I'm looking for information on Opel cars.  Now you ask, which model?\n>>>>Well, the sad truth is, I'm not entirely sure, but it's a two-seater,\n>>>>with roll-over headlights, hard top, and really sporty looking.  My\n>>>>friend has one sitting in his yard in really nice condition,\n>>>>body-wise, but he transmission has seized up on him, so it hasn't run\n>>>>for a while.  Does anyone have any info on these cars?  The engine\n>>>>compartment looks really tight to work on, but it is in fine shape and\n>>>>I am quite interested in it.\n>>>>Thanks!\n>>>>Darren Gibbons\n>>>>gibbonsa@sfu.ca\n>>>\t\n>>>\tThis would be the manta, would it not???  Sold through Buick dealers in the mid '70's as the price leader????\n>\n>>Sounds a lot more like an Opel GT to me. I'd guess that this is on the same\n>>chassis as the Kadett, rather than the bigger Manta - but I could easily\n>>be wrong.  I think the later Kadett's were sold here as Buick Opels.\n>\n>>Craig\n>\n>\tI think the Manta is the European name for the \"GT.\"  I'm pretty sure\nWell the European Manta and US GT have entirely different bodies. There is\nlittle or no chance that they are the same. The Manta went through several\ngenerations as the coupe version of the Ascona and was OK in its time.\n\n>that the only Kadett's sold here were/are the Pontiac LeMans.  I think the\n\nNot true. The Kadett has been in and out of the US market over the years.\nThe LeMans (old Kadett) is only the latest version. \n\nCraig\n>GT is just an early '70s to mid '70s Manta.  \n\nDifferent Cars. One looks like a sports-car, the other is a coupe.\n\n>-- \n>Chintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n>*******SIG UNDER CONSTRUCTION HARD HAT AREA********\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8389, "properties": {"category": "sci.med", "text": "From: mstern@lindsay.Princeton.EDU (Marlene J. Stern)\nSubject: Recurrent Respiratory Papillomatosis\nOriginator: news@nimaster\nNntp-Posting-Host: lindsay.princeton.edu\nOrganization: Princeton University\nDistribution: nj\nLines: 43\n\n\nWe will be holding a bake and craft sale at Communiversity in Princeton on  \nNassau Street, Saturday April 24th 12-4 p.m. to benefit the Recurrent  \nRespiratory Papillomatosis Foundation, a nonprofit foundation established to  \nencourage research toward a cure for Recurrent Respiratory Papillomatosis.  Our  \nthree year old daughter suffers from this disease.  Below is a press release  \nthat appeared in local newspapers.  Hope you can join us.\n\n\nOn Saturday, April 24 as part of Communiversity in Princeton, a local family  \nwill be having a bake and craft sale to raise money for and create public  \nawareness about a rare disease called Recurrent Respiratory Papillomatosis.\n\nBill and Marlene Stern's daughter Lindsay is afflicted with this disease  \ncharacterized by tumors attacking the inside of the larynx, vocal cords and  \ntrachea.  Caused by a virus, the tumors grow, block the air passages and would  \nlead to death from suffocation without continual surgery to remove the growths.   \nThree year old Lindsay has undergone 11 operations thus far since her diagnosis  \nlast year and faces the prospect of over a hundred operations throughout her  \nlifetime.  \n\nEven though the disease is hardly a household word, it has affected the lives  \nof enough people to inspire the formation of the Recurrent Respiratory  \nPapillomatosis Foundation,  a non-profit foundation whose goals are to provide  \nsupport for patients and families by networking patients and publishing a  \nnewsletter, enhance  awareness of RRP at the local and national level, and aid  \nin the prevention, cure, and treatment.\n\nSince medical researchers know that the virus causing the disease is similar to  \nthose viruses causing warts, they feel a cure would be within reach if money  \nwere available for research.  Because RRP is rare, it not only gets scant  \nattention but also paltry funds to search for a cure.  Part of the RRP  \nFoundation's mission is to change that. \n\nAnyone interested in contributing items to the bake and craft sale, please call  \nMarlene or Bill at 609-890-0502.  Monetary donations can be made at the  \nFoundation's booth during Communiversity, April 24th, 12 to 4 p.m., in downtown  \nPrinceton, or sent directly to:\n\n\t\t\tThe Recurrent Respiratory Foundation\n\t                50 Wesleyan Drive\n\t                Hamilton Sq., NJ  08690.\nThanks   mstern@lindsay.princeton.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8390, "properties": {"category": "sci.crypt", "text": "From: george@minster.york.ac.uk\nSubject: Non-word password generator\nOrganization: Department of Computer Science, University of York, England\nLines: 10\n\nDoes anyone know of a non-word password generator program\nfor PC's?? i.e. it will produce a nonsense word but still\nbe pronouncible. e.g. lisgollan\n\nWanted to \"force\" users to adopt more secure passwords,\nbut still be memorable!\n\nThanks - George Bolt\n\np.s. please email me as well if possible \"george@psychmips.york.ac.uk\"\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8391, "properties": {"category": "rec.sport.hockey", "text": "From: drozinst@db.erau.edu (Drozinski Tim)\nSubject: Re: Ulf and all...\nOrganization: Embry-Riddle Aeronautical University, Daytona Beach, FL USA\nLines: 59\nNNTP-Posting-Host: alpha.db.erau.edu\n\nlayfield@cpsc.ucalgary.ca (Colin Layfield) writes:\n\n>In article <1pdlksINNmq7@GIRAFFE.ZOO.CS.YALE.EDU> wuziyun%suned@cs.yale.edu (You wanna know?) writes:\n>>\n>>\n>>Let me give my two cents worth in this whole thing:\n>>\n>>  I am very sick of Pittsburg fans(and they are my second favorite team) \n>>talk about how \" why can't Bruins forget about Ulf Samuelsson when we have\n>>forgotten all about Adam Graves\"  Beside the obvious fact that Lemeuix's career\n>>was never endangered by Graves' slash while Neely is still bother by his injury,\n>>I think the most important reason is:\n>>\n>>        ADAM GRAVES HAS PLAYED CLEAN HOCKEY EVER SINCE!  WHILE ULF SAMULESSON\n>>        CONTINUES TO PLAY DIRTY(YES, TRYING TO HIT A PLAYER WHERE HE'S INJURED\n>>        IS DIRTY).  FANS HAVE CAN FORGET ABOUT ONE DIRTY PLAY BUT HOW CAN YOU\n>>        FORGET ABOUT ULF SAMULESSON WHEN EVERYNIGHT, WHEN I WATCH HOCKEY HIGH\n>>        LIGHTS, I GET REMINDED OF HOW DIRTY HE IS.\n\n>Hitting a player when he's injured is dirty?  Can you explain this statement?\n>Do you mean a player who was just injured on the ice(?) or do you mean a player\n>who is playing hurt.  If a player is hurt he should not bother playing because\n>I don't belive ANY PLAYER should be let up on just because they are playing\n>hurt.\n\n>I'm not an Ulf fan but at least I can spot the fact he is like Calgary's\n>Theoren Fleury in the respect that part of his game is to really piss other\n>players off as that's part of his job (But he lacks Ulf's size!).\n\nI AM an Ulf (and Pgh) fan, and what pisses me off about the whole Adam Graves/\nUlf Samuesson debate is that Ulf plays hard-hitting hockey (nothing wrong with \nthat) while Graves does what he does when the only way to win a game is to \nintentionally hurt someone (which bites!).\n\n>Players that REALLY piss me off are the ones who insist on hitting from behind\n>or try to go for the knees to injure the players.  This kind of garbage has\n>got to go (I would really like to see Muni get pasted as he is one of the\n>worst offenders).\n\nI thought they had instituted all kinds of new rules this season to stop crap \nlike that?!?  Is it just me, or does the officiating just still stink to high\nheaven?  IMHO, if they could get rid of the existing refs, and institute a new\nsystem with more than one ref on the ice to keep an eye on the trouble-makers\nthen a lot of these things would stop, and then the game would be ruled by the\nfinnesse players:  Mario, Selanne, Bure, Messier, et.al...\n\n>Just my $0.02.\n\n> Colin Layfield            | \"Religion and Sex are power plays,\n>                           |  Manipulate the people for the money they pay,\n> The University of Calgary |  Selling Skin, Selling God\n> Computer Science          |  The numbers look the same on their CREDIT CARDS!\"\n> layfield@cpsc.ucalgary.ca |                          - Queensryche\n\n\nTim Drozinski\nEmbry-Riddle Aero. Univ.\ndrozinst@erau.db.erau.edu\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8392, "properties": {"category": "comp.sys.mac.hardware", "text": "From: root@ncube.com (Operator)\nSubject: Re: Which fax modem is the best?\nNntp-Posting-Host: admin\nReply-To: root@ncube.com\nOrganization: nCUBE Corp., Foster City, CA\nLines: 19\n\nWell I am using The Home Office. I bought it for arounde $350.\nIt does 14.4. I don't know if it's for data or fax. But the\nfeature I use is the Voic Mail Box, which I really have liked.\n\n---\n\n\n\n                     ^~\n                     @ *  *\n  Captain Zod...    _|/_ /\n  zod@ncube.com    |-|-|/\n                  0 /| 0\n                   / |\n           \\=======&==\\===\n           \\===========&===\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8393, "properties": {"category": "rec.motorcycles", "text": "From: hesh@cup.hp.com (Chris Steinbroner)\nSubject: Re: Tracing license plates of BDI cagers?\nArticle-I.D.: cup.C535HL.C6H\nReply-To: Chris Steinbroner <hesh@cup.hp.com>\nOrganization: HP-UX Kernel Lab, Cupertino, CA\nLines: 12\nNntp-Posting-Host: hesh.cup.hp.com\nX-Newsreader: TIN [version 1.1 PL9.1]\n\nCurtis Jackson (cjackson@adobe.com) wrote:\n: The driver had looked over at me casually a couple of times; I\n: know he knew I was there.\n\noh, okay.  then in that case it was\nattemped vehicular manslaughter.\nhe definitely wanted to kill you.\nall cagers want to kill bikers.\nthat's the only explanation that\ni can think of.\n\n-- hesh\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8394, "properties": {"category": "soc.religion.christian", "text": "From: kbanner@philae.sas.upenn.edu (Ken Banner)\nSubject: Re: SATANIC TOUNGES\nOrganization: University of Pennsylvania\nLines: 51\n\nIn article <May.5.02.53.10.1993.28880@athos.rutgers.edu> koberg@spot.Colorado.EDU (Allen Koberg) writes:\n\n>.....................................................There is dis-\n>crepancy even among charismatic organizations as to the proper use\n>of tongues.  Be it revelatory with interpretation, for prayer use,\n>or for signifying believers (which I doubt since any one can do it).\n>Pentecostals (Assembly of God, Church of Christ), seem to espouse all\n>three.  Neo-pentecostals tend to view prayer use and as a sign as the\n>uses.  Speaking in tongues during a service is not usually done by\n>neo-pentecostals because for the most part, they still attend Protestant\n>churches.  Non-denominational churches seem to view the use as a sign\n>as merely optional, but recommended.\n\nKoberg,\n\n\tJust a couple of minor corrections here...\n\n\t1)  The Churches of Christ do not usually believe in speaking in\ntongues, in fact many of them are known for being strongly opposed to\nPentecostal teaching.  You are probably thinking of Church of God in\nChrist, the largest African-American Pentecostal denomination.\n\n\t2)  I'm not sure what you mean by \"signifying believers\"  but it\nshould be pointed out that the Assemblies of God does not now, nor has it\never, held that speaking in tongues is the sign that one is a Christian. \nThe doctrine that traditional Pentecostals (including the A/G) maintain is\nthat speaking in tongues is the sign of a second experience after becoming\na Christian in which one is \"Baptized in the Holy Spirit\"  That may be\nwhat you were referring to, but I point this out because Pentecostals are\nfrequently labeled as believing that you have to speak in tongues in order\nto be a Christian.  Such a position is only held by some groups and not the\nmajority of Pentecostals.   Many Pentecostals will quote the passage in\nMark 16 about \"these signs following them that believe\" but they generally\ndo not interpret this as meaning if you don't pactice the signs you aren't\n\"saved\".\n\n\t3)  I know it's hard to summarize the beliefs of a movement that\nhas such diversity, but I think you've made some pretty big\ngeneralizations here.  Do \"Neo-Pentecostals\" only believe in tongues as a\nsign and tongues as prayer but NOT tongues as revelatory with a message? \nI've never heard of that before.  In fact I would have characterized them\nas believing the same as Pentecostals except less likely to see tongues as\na sign of Spirit Baptism.  Also, while neo-Pentecostals may not be\ninclined to speak in tongues in the non-Pentecostal churches they attend,\nthey do have their own meetings and, in many cases, a whole church will be\ncharismatic.\n\nKen Banner\nDept. of Religious Studies\nUniversity of Pennsylvania\nkbanner@philae.sas.upenn.edu \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8395, "properties": {"category": "rec.autos", "text": "From: brother@mrcnext.cso.uiuc.edu (Jesse McCabe)\nSubject: There's rust on my Beamer! Help!\nOrganization: University of Illinois at Urbana\nLines: 16\n\nActually I wasn't too surprised, since I bought it with the rust.  Any of you \ngot some ideas of getting rid of this CHEAPLY (key word)??  It has eaten all \nthe\nway through on the door panels.  Can I use Bondo?  \n \nAlso, is there a good paint that will bond to Aluminum rims?  The paint thati\nwas on my rims has peeled off, actually, there's some rust looking 'stuff' on\nthe rims themselves...  but it comes off pretty easily.  \n \nOne more thing...\nHave any of you done self-painting to a car?  How do you start?  What do I need\nto do this?\n \nPlease help me!\nJesse\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8396, "properties": {"category": "comp.sys.mac.hardware", "text": "From: narlochn@kirk.msoe.edu\nSubject: General questions on software and hardware...\nDistribution: usa\nOrganization: Milwaukee School Of Engineering, Milwaukee, WI USA\nLines: 18\n\nI have just been introduced to Macintosh systems.\nI have a few questions.  E-mail prefered.\n\n1) Just what is System 7?  I want hard details not dingy commercials\nlike their ads in magazines...\n\n2) Has anyone used the Microsoft Office 3.0?  I would like\nsuggestions on, and descriptions on:\n* each has a microsoft before the actual name.\n\na) *Word 5.1:\nb) *Excel 4.0:\nc) *Power Point:\nd) *Mail 3.1\n\n3)  What is the major differences between Mac Wordperfect and Word?\n\nThanks a lot!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8397, "properties": {"category": "sci.electronics", "text": "From: rky57514@uxa.cso.uiuc.edu (Tall Cool One )\nSubject: Can I use a CD4052 analog multiplexer for digital signals?\nOrganization: University of Illinois at Urbana\nLines: 14\n\nAs the subject says - Can I use a 4052 for digital signals?  I don't see\nwhy it couldn't handle digital signals, but I could be wrong.  Anyone have\nany advice?  Thanks.\n\n\n _I_______________________________________________________________________I_\n(_@_)                                                                   (_@_)\n|   |   Raymond Yeung               Internet: Nimbus@uiuc.edu           |   |\n|   |                                         rky57514@uxa.cso.uiuc.edu |   |\n|   |   EE student at the                                               |   |\n|   |   University of Illinois    CompuServe: 70700,1011                |   |\n|   |   at Urbana-Champaign                                             |   |\n(___)-------------------------------------------------------------------(___)\n  I                                                                       I\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8398, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Proton/Centaur?\nOrganization: Express Access Online Communications USA\nLines: 15\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr20.211638.168730@zeus.calpoly.edu> jgreen@trumpet.calpoly.edu (James Thomas Green) writes:\n>Has anyone looked into the possiblity of a Proton/Centaur combo?\n\n\nI don't know a whole lot on Proton, but given that it is a multi stage\nrocket,  up to 4 stages, it may not really need the Centaur,  plus\nit may end up seriously beating on said centaur.   \n\nAlso, the centaur is not small,  unless the Proton has an oversize\nshroud you may not be able to get the centaur in under it.\n\nDennis,  you know much about this?\n\npat\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8399, "properties": {"category": "alt.atheism", "text": "From: pmoloney@maths.tcd.ie (Paul Moloney)\nSubject: Re: some thoughts.\nKeywords: Dan Bissell\nOrganization: Somewhere in the Twentieth Century\nLines: 14\n\nbissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n\n>\tNiether was he a lunatic.  Would more than an entire nation be drawn \n>to someone who was crazy.\n\nFind an encyclopedia. Volume H. Now look up Hitler, Adolf. He had\nmany more people than just Germans enamoured with him.\n\nP.\n-- \n moorcockpratchettdenislearydelasoulu2iainmbanksneworderheathersbatmanpjorourke\nclive p a u l  m o l o n e y  Come, let us retract the foreskin of misconception\njames trinity college dublin  and apply the wire brush of enlightenment - GeoffM\n brownbladerunnersugarcubeselectronicblaylockpowersspikeleekatebushhamcornpizza \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.399+0000", "event": "documents", "entityId": 8400, "properties": {"category": "sci.space", "text": "From: nanderso@Endor.sim.es.com (Norman Anderson)\nSubject: Re: A WRENCH in the works?\nOrganization: Evans & Sutherland Computer Corp.\nLines: 13\n\njmcocker@eos.ncsu.edu (Mitch) writes:\n\n\n\n>effect that one of the SSRBs that was recovered after the\n>recent space shuttle launch was found to have a wrench of\n>some sort rattling around apparently inside the case.\n\nI heard a similar statement in our local news (UTAH) tonight. They referred\nto the tool as \"...the PLIERS that took a ride into space...\". They also\nsaid that a Thiokol (sp?) employee had reported missing a tool of some kind\nduring assembly of one SRB. No more info as to the location in the SRB.\nI agree, pretty weird.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8401, "properties": {"category": "rec.sport.baseball", "text": "From: jpopovich@guvax.acc.georgetown.edu\nSubject: Re: New Uniforms\nDistribution: world\nOrganization: Georgetown University\nLines: 10\n\nWhile I enjoy the trend towards the more classic style of uniform - \nand I disagree with the person who wants a return to the non-gray road \nuniforms - it should be remembered that one of the, if not THE reason \nfor the redesigning of uniforms, especially hats (re: the new road all \ngreen A's caps and the cardinal navy blue road cap), is the marketing \nmoney to be made in sales of new merchandise. \n\nJeffrey Popovich\njpopovich@guvax.georgetown.edu\n \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8402, "properties": {"category": "rec.sport.hockey", "text": "From: cs902043@ariel.yorku.ca (SHAWN LUDDINGTON)\nSubject: Re: 1993 NHL Draft\nOrganization: York University, Toronto, Canada\nLines: 51\n\nIn article <93109.134719IO91748@MAINE.MAINE.EDU> Jon Carr <IO91748@MAINE.MAINE.EDU> writes:\n>When is the draft this year?  And will there be any coverage?\n>I know the upcomming NFL draft is on ESPN.\n>\n>Anyone got the details?\n>\n>Paul Kariya 1993 #1 Pick! (No. 2 perhaps?  He won't last long!) :-)\n>\nI don't know the exact coverage in the states.  In Canada it is covered\nby TSN, so maybe ESPN will grab their coverage!  I don't know!\n\nAs for the picks\nOttawa picks #1 which means it is almost 100% that Alexander Daigle will \ngo #1. He'll either stay or be traded in Montreal or Quebec.  IMO I would\ntake Kariya.  He should alot of leadership in the NCAA and so far in\nthe World Championships.  Daigle didn't show this for his junior team.\n\nSan Jose will then get Kariya.\n\nTampa Bay will either go for a russian Kozlov (I think that's it) or a \n    defenseman Rob Niedemeyer (probably spelt the last name wrong)\n\nBecause of expansion I won't go further but I will name other of the\nblue chip prospects\n\n   - Chris Gratton\n   - Chris Pridham\n   - a swedish player who I can't remember his name\n\nDraft Order\n-----------\n1) Ottawa\n2) San Jose\n3) Tampa Bay\n4) South Florida or Anahiem\n5) South Florida or Anahiem\n6) Hartford\n7) Edmonton\n8) Dallas\n9) NY Rangers\n10) Philadelphia\n\nthe 8th thru 10th picks could be wrong - I don't have the standings here\nand am guessing \n\n(In my mind there are 8 top notch prospects in the draft, with Kariya \n leading the way but not going #1)\n\nShawn - GO CAPS (two first round picks for the next three years - THANKS\n                 ST.LOUIS or should I say RON CARON and SCOTT STEVENS)\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8403, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: some thoughts.\nOrganization: California Institute of Technology, Pasadena\nLines: 37\nNNTP-Posting-Host: punisher.caltech.edu\nKeywords: Dan Bissell\n\nbissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n\n>First I want to start right out and say that I'm a Christian.\n\nWell, this is alt.atheism.  I hope you arent here to try to convert anyone.\n\n>It makes sense to be one.\n\nMany would disagree.\n\n[...]\n>The book says that Jesus was either a liar, or he was crazy ( a \n>modern day Koresh) or he was actually who he said he was.\n\nWell, you shouldn't give any particular book too much weight.  Actually,\nI don't think that any of these statements is correct.  It is more likely\nthat most of Jesus' fame was attributed to him after his death by those\nwho had some strong motives...\n\n[...]\n>Some other things to note.  He fulfilled loads of prophecies in \n>the psalms, Isaiah and elsewhere in 24 hrs alone.\n\nWhat's a prophecy, and what's so significant about them?\n\n>I don't think most people understand what a Christian is.\n\nI think we understand.\n\n>It is certainly not what I see a lot in churches.  Rather I think it \n>should be a way of life, and a total sacrafice of everything for God's \n>sake.\n\nWell, sell your computer and donate you life to your religion now...\nDon't waste any time.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8404, "properties": {"category": "rec.sport.hockey", "text": "Subject: Re: JETS FANS!  Hrivnak or Tabaracci??\nFrom: gtd597a@prism.gatech.EDU (Hrivnak)\nOrganization: Georgia Institute of Technology\nLines: 14\n\nIn article <1993Apr6.172313.29469@wam.umd.edu> giant@next14pg2.wam.umd.edu (Thundarr) writes:\n>After seeing Hrivnak and Tabarraci play, who\n>would you prefer to have?  And how about\n>Tyler Larter?  What ever happened to him??\n\n\tYou know what my answer will be: Hrivnak! The choice is obvious.\n\n\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8405, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Playoff pool, rules, entry form\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 39\nNntp-Posting-Host: mail.sas.upenn.edu\n\nWell, the tentative rules, anyway.  And, of course, since the season is\nnot entirely over, tentative entry form.  But who cares?  The real hockey\nseason is starting!!!!!\n\nHere's the deal:  You email (preferably) or post your predictions, AND the\nnumber of games you think each series will go.  Each round will be\nweighted, so that the Stanley Cup finals will be very important, but the\nearly rounds will still be important.  Here is the scoring:\n\nPick 1st round winner, way off on games:  2 points\nPick 1st round winner, within one game:   3 points\nPick 1st round winner, pick # of games:   5 points\n\nPick 2nd round winner, way off on games:  3 points\nPick 2nd round winner, within one game:   4 points\nPick 2nd round winner, pick # of games:   6 points\n\nPick conference champ, way off on games:  5 points\nPick conference champ, within one game:   6 points\nPick conference champ, pick # of games:   9 points\n\nPick Stanley Cup champ, way off on games: 8 points\nPick Stanley Cup champ, within one game:  10 points\nPick Stanley Cup champ, pick # of games:  14 points\nPick loser in 7, series goes 7:           2 points\nPick loser in 7, series decided in Game 7, OT: 4 points\n(these last two are sympathy points, probably won't happen anyway)\n\nObviously, picking the Stanley Cup champion is important.  I will do some\ntests to see if the format is fair, but probably I will be too lazy to\nmodify it, so the scoring will probably be like this.  As for entry forms,\nwell, this post is getting too long, so see next post. \n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8406, "properties": {"category": "sci.med", "text": "From: lady@uhunix.uhcc.Hawaii.Edu (Lee Lady)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nSummary: Gee, maybe I've misjudged you.\nKeywords: science   errors   Turpin   NLP\nOrganization: University of Hawaii (Mathematics Dept)\nExpires: Mon, 10 May 1993 10:00:00 GMT\nLines: 141\n\n\nIn article <lsu7q7INNia5@saltillo.cs.utexas.edu> turpin@cs.utexas.edu (Russell Turpin) writes:\n>-*----\n>I agree with everything that Lee Lady wrote in her previous post in\n>this thread.  \n\nGee!  Maybe I've misjudged you, Russell.  Anyone who agrees with something \nI say can't be all bad.  ;-)\n\nSeriously, I'm not sure whether I misjudged you or not, in one respect.  \nI still have a major problem, though, with your insistence that science \nis mainly about avoiding mistakes.  And I still disagree with your \ncontention that nobody who doesn't use methods deemed \"scientific\" \ncan possibly know what's true and what's not.  \n\n>  [Deleted material which I agree with.]  \n>\n>Back to Lee Lady:\n>\n>> These are not the rules according to many who post to sci.med and\n>> sci.psychology.  According to these posters  \"If it's not supported by\n>> carefully designed controlled studies then it's not science.\"\n>\n>These posters are making the mistake that I have previously\n>criticized of adhering to a methodological recipe.  A \"carefully ...\n>     ....  \n>Rules such as \"support the hypothesis by a carefully designed and\n>controlled study\" are too narrow to apply to *all* investigation.\n>I think that the requirements for particular reasoning to be\n>convincing depends greatly on the kinds of mistakes that have\n>occurred in past reasoning about the same kinds of things.  (To\n>reuse the previous example, we know that conclusions from\n>uncontrolled observations of the treatment of chronic medical\n>problems are notoriously problematic.)  \n\nOkay, so let's see if we agree on this: FIRST of all, there are degrees \nof certainty.  It might be appropriate, for instance, to demand carefully \ncontrolled trials before we accept as absolute scientific truth (to the \nextent that there is any such thing) the effectiveness of a certain \ntreatment. On the other hand, highly favorable clinical experience, even \nif uncontrolled, can be adequate to justify a *preliminary* judgement that\na treatment is useful.  This is often the best evidence we can hope for\nfrom investigators who do not have institutional or corporate support.\nIn this case, it makes sense to tentatively treat claims as credible\nbut to reserve final judgement until establishment scientists who are\nqualified and have the necessary resources can do more careful testing.\n\nSECONDLY, it makes sense to be more tolerant in our standards of \nevidence for a pronounced effect than for one that is marginal.  \n\n\nI come to this dispute about what science is  not only as a\nmathematician but as a veteran of many arguments in sci.psychology (and\noccasionally in sci.med) about NLP (Neurolinguistic Programming).  Much\nof the work done to date by NLPers can be better categorized as\ninformal exploration than as careful scientific research.  For years\nnow I have been trying to get scientific and clinical psychologists to\njust take a look at it, to read a few of the books and watch some of\nthe videotapes (courtesy of your local university library).  Not for\nthe purpose of making a definitive judgement, but simply to look at the\nNLP methodology (especially the approach to eliciting information from\nsubjects) and look for ideas and hypotheses which might be of\nscientific interest.  And most especially to be aware of the\n*questions* NLP suggests which might be worthy of scientific\ninvestigation.\n\nOver and over again the response I get in sci.pychology is  \"If this\nhasn't been thoroughly validated by the accepted form of empirical\nresearch then it can't be of any interest to us.\"  \n\nTo me, the ultimate reducio ad absurdum of the extreme \"There've got to\nbe controlled studies\" position is an NLP technique called the Fast\nPhobia/Trauma Cure.\n\nSimple phobias (as opposed to agoraphobia) may not be the world's most \nimportant psychological disorder, but the nice thing about them is that \nit doesn't take a sophisticated instrument to diagnose them or tell \nwhen someone is cured of one.  The NLP phobia cure is a simple \nvisualization which requires less than 15 minutes.  (NLPers claim that\nit can also be used to neutralize a traumatic memory, and hence is\nuseful in treating Post-traumatic Stress Syndrome.)  It is essentially\na variation on the classic desensitization process used by behavioral\ntherapists.  A subject only needs to be taken through the technique once\n(or, in the case of PTSD, once for each traumatic incident).  The\nprocess doesn't need to be repeated and the subject doesn't need to\npractice it over again at home.\n\nNow to me, it seems pretty easy to test the effectiveness of this cure. \n(Especially if, as NLPers claim, the success rate is extremely high.)  \nTake someone with a fear of heights (as I used to have).  Take them up \nto a balcony on the 20th floor and observe their response.  Spend 15 \nminutes to have them do the simple visualization.  Send them back up to \nthe balcony and see if things have changed.  Check back with them in a \nfew weeks to see if the cure seems to be lasting.  (More long term \nfollow-up is certainly desirable, but from a scientific point of view \neven a cure that lasts several weeks has significance.  In any case, \nthere are many known cases where the cure has lasted years.  To the best \nof my knowledge, there is no known case where the cure has been reversed \nafter holding for a few weeks.)  (My own cure, incidentally, was done\nwith a slightly different NLP technique, before I learned of the Fast \nPhobia/Trauma Cure.  Ten years later now, I enjoy living on the 17th\nfloor of my building and having a large balcony.)  \n\nThe folks over in sci.psychology have a hundred and one excuses not to\nmake this simple test.  They claim that only an elaborate outcome study\nwill be satisfactory --- a study of the sort that NLP practitioners, \nmany of whom make a barely marginal living from their practice, can ill \nafford to do.  (Most of them are also just plain not interested, because \nthe whole idea seems frivolous.  And since they're not part of the\nscientific establishment, they have no tangible rewards to gain \nfrom scientific acceptance.) \n\nThe Fast Phobia/Trauma Cure is over ten years old now and the clinical \npsychology establishment is still saying \"We don't have any way of \nknowing that it's effective.\"  \n\nThese academics themselves have the resources to do a study as elaborate \nas anyone could want, of course, but they say  \"Why should I prove your \ntheory?\"  and  \"The burden of proof is on the one making the claim.\"  \nOne academic in sci.psychology said that it would be completely \nunscientific for him to test the phobia cure since it hasn't \nbeen described in a scientific journal.  (It's described in a number of \nbooks and I've posted articles in sci.psychology describing it in as much \ndetail as I'm capable of.)  \n\nActually, at least one fairly careful academic study has been done (with \nfavorable results), but it's apparently not acceptable because it's a\ndoctoral dissertation and not published in a refereed journal.\n\nTo me, this sort of attitude does not advance science but hinders it.  \nThis is the kind of thing I have in mind when I talk about \"doctrinnaire\" \nattitudes about science.  \n\nNow maybe I have been unfair in imputing such attitudes to you, Russell.  \nIf so, I apologize. \n \n--\nIn the arguments between behaviorists and cognitivists, psychology seems \nless like a science than a collection of competing religious sects.   \n\nlady@uhunix.uhcc.hawaii.edu         lady@uhunix.bitnet\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8407, "properties": {"category": "comp.sys.mac.hardware", "text": "From: qman@casbah.acns.nwu.edu (Charlie Kuehmann)\nSubject: LCIII to VGA Monitor Adapters\nArticle-I.D.: ironman.qman-060493132722\nOrganization: Northwestern University\nLines: 17\nNntp-Posting-Host: ironman.ms.nwu.edu\n\nI'm having a real tough time finding out the proper adapters to use a VGA\nmonitor (an IBM 8513 sold w/ many PS/2's to be exact) on the Mac LC III. \nAll of the vendors I have called say that the internal video will not work\non a true VGA monitor but will work on a IBM Compatible multisync like the\nsony's or the NEC monitors.  I thought the VGA capability of LCIII was very\nattractive because it allowed you to use inexpensive VGA monitors.  Am I\nconfused or are these vendors just not up to speed?  Has anyone used an\nLCIII with a non multisync VGA monitor and if so where did you get your\nadapter (please be specific w/ vendor and cat #)?  I would prefer to get a\napple monitor for these LCIII's (it's unseemly to see the finder inside an\nIBM bezel) but the more money we save on monitors the more LCIII's we can\nafford and the more PS/2's we can get rid of!\n\nCharles Kuehmann\nNorthwestern University\nSteel Research Group\nqman@casbah.acns.nwu.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8408, "properties": {"category": "comp.graphics", "text": "From: cst@garfield.catt.ncsu.edu (Caroline Tsang)\nSubject: Graphics Library Package\nArticle-I.D.: ncsu.1993Apr6.051201.9535\nOrganization: Computer and Technologies Theme Program, NCSU, Raleigh\nLines: 15\n\nHi all,\n\n  I am looking for a recommandation on a good royalty free graphics\nlibrary package for C and C++ program.  This is mainly use to write\nchildren games and education software.  I heard someone mentioned Genus\nand also GFX ?  Are they any good?\n\nPlease pardon me if my question sounds a little strange, I am asking\nthis question for a friend.\n\nThanks in advance!\n\nCaroline Tsang\n<cst@garfield.catt.ncsu.edu>\n  \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8409, "properties": {"category": "comp.graphics", "text": "From: mmadsen@bonnie.ics.uci.edu (Matt Madsen)\nSubject: Re: Please Recommend 3D Graphics Library For Mac.\nNntp-Posting-Host: bonnie.ics.uci.edu\nReply-To: mmadsen@ics.uci.edu (Matt Madsen)\nOrganization: Univ. of Calif., Irvine, Info. & Computer Sci. Dept.\nLines: 27\n\nRobert G. Carpenter writes:\n\n>Hi Netters,\n>\n>I'm building a CAD package and need a 3D graphics library that can handle\n>some rudimentry tasks, such as hidden line removal, shading, animation, etc.\n>\n>Can you please offer some recommendations?\n>\n>I'll also need contact info (name, address, email...) if you can find it.\n>\n>Thanks\n>\n>(Please Post Your Responses, in case others have same need)\n>\n>Bob Carpenter\n>\n\nI too would like a 3D graphics library!  How much do C libraries cost\nanyway?  Can you get the tools used by, say, RenderMan, and can you get\nthem at a reasonable cost?\n\nSorry that I don't have any answers, just questions...\n\nMatt Madsen\nmmadsen@ics.uci.edu\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8410, "properties": {"category": "comp.sys.mac.hardware", "text": "From: petrack@vnet.IBM.COM\nSubject: changing port buffer size in ZTerm\nReply-To: petrack@vnet.IBM.COM\nDisclaimer: This posting may contain no views at all\nNews-Software: Usenet 3.1\nLines: 21\n\nSome kind soul told me that I could change the serial port buffer size\nof Zterm via ResEdit. He did not tell me HOW I could change it using\nResEdit, and I have lost his e-mail address.\n\nCould he or any one else please tell me what to do?\n\nI assume that the relevant resource is zSet, but I do not know, and\nI have no template for that resource. If you have a TMPL for the correct\nresource, I would be grateful to receive it. That way, I could play around\na bit and maybe get my Duo to do something useful with its serial port.\n(other than Appletalk).\n\nBTW, I believe that when the port stats says that maximum in buffer is\n3074 bytes, that that means increasing the buffer will help, if you are\nusing hardware handshaking. I can cram text data pretty fast into my Duo,\nand can monitor that CTS is being lowered, but the buffer never gets beyond\n3074 (out of 4096) bytes. Makes sense to me.\n\nScott Petrack\nPetrack@haifasc3.vnet.ibm.com\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8411, "properties": {"category": "comp.graphics", "text": "From: fischer@iesd.auc.dk (Lars Peter Fischer)\nSubject: Re: Rumours about 3DO ???\nIn-Reply-To: archer@elysium.esd.sgi.com's message of 6 Apr 93 18:18:30 GMT\nOrganization: Mathematics and Computer Science, Aalborg University\n\t<C51Eyz.4Ix@optimla.aimla.com> <1993Apr6.144520.2190@unocal.com>\n\t<h48vtis@zola.esd.sgi.com>\nLines: 11\n\n\n>>>>> \"Archer\" == Archer (Bad Cop) Surly (archer@elysium.esd.sgi.com)\n\nArcher> How about \"Interactive Sex with Madonna\"?\n\nor \"Sexium\" for short.\n\n/Lars\n--\nLars Fischer, fischer@iesd.auc.dk | It takes an uncommon mind to think of\nCS Dept., Aalborg Univ., DENMARK. | these things.  -- Calvin\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8412, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: himb@iniki.soest.hawaii.edu (Liz Camarra)\nSubject: Some more info. about P9000 board\nOriginator: himb@iniki\nOrganization: School of Ocean and Earth Science and Technology\nLines: 10\n\n  One more thing to add, the Orchid board vesa bios is only\nable to handle the 1 meg dram on board, the Viper however can\nutilize the 2 meg vram on board to support vesa modes such as\n1280x1024x256, 800x600x16 mil. and 1024x768x65536 under Dos.\n\n+----------------------------------------------------------------+\nStephen Lau, Elec. Engineering, Univ. of Hawaii\n don't have my own account until grad. school starts (autumn 93)\n+              Death to FM synthesis! Go Gus!                    +\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8413, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tds32845@uxa.cso.uiuc.edu (Tony Shan ~{5%6+9b~})\nSubject: Re: Help with hooking Irwin tape drive to PC\nKeywords: Irwin tape backup, external unit, help\nOrganization: University of Illinois at Urbana\nLines: 11\n\n\n     I would like to thank all those people who responded to my post.  I \nwould, however, like to clear some things up.  My tape drive is *external*.\nAlso, the connector on the back of it is of the male DB-37 pin variety.\nAs a result, I cannot easily find a cost-effective solution to use the drive.\n\n     Any advice will be greatly appreciated.  I would prefer email.\n     Thanks!\n\n..Tony Shan\n..tonys@uiuc.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8414, "properties": {"category": "sci.med", "text": "From: doyle+@pitt.edu (Howard R Doyle)\nSubject: Re: Donating organs\nArticle-I.D.: blue.8016\nOrganization: Pittsburgh Transplant Institute\nLines: 31\n\nIn article <19393@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>In article <1993Mar25.161109.13101@sbcs.sunysb.edu> mhollowa@ic.sunysb.edu (Michael Holloway) writes:\n>\n>>there been anything recent in \"Transplant Proceedings\" or somesuch, on \n>>xenografts?  How about liver section transplants from living donors? \n>>\n>\n>I'm sure the Pittsburgh group has published the baboon work, but I\n>don't know where.  In Chicago they were doing lobe transplants from\n>living donors, and I'm sure they've published.  \n\n\n\nThe case report of the first xenotransplant was published in Lancet 1993; 341:65-71.\nI can send you a reprint if you are interested.\nThere was  another paper, sort of a tour of the horizon, written by Starzl and\npublished in the Resident's Edition of the Annals of Surgery (vol 216, October 1992).\nIt's in the Surgical Resident's Newsletter section, so you won't find it in the regular\nissue of the Annals. I don't have any reprints of that one.\nA paper has been accepted for publication by Immunology Today, though I'm not sure\nwhen it's coming out, describing our experience with the two xenografts done to date.\n\n\nAs for segmental liver transplants from living related donors I must confess to a total\nignorance of that literature. We are philosophically opposed to those, and I don't keep \nup with that particular field.\n\n=====================================================\n\nHoward Doyle\ndoyle+@pitt.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8415, "properties": {"category": "sci.crypt", "text": "From: whughes@lonestar.utsa.edu (William W. Hughes)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: lonestar.utsa.edu\nOrganization: University of Texas at San Antonio\nDistribution: na\nLines: 22\n\nIn article <1qpg8fINN982@dns1.NMSU.Edu> amolitor@nmsu.edu\n(Andrew Molitor) writes:\n>In article <tcmayC5M2xv.JEx@netcom.com>\n>tcmay@netcom.com (Timothy C. May) writes:\n>\n>>-Tim May, whose sig block may get him busted in the New Regime\n>                           ^^^^^^^^^^^^^^^^^^\n>Isn't this just a little melodramatic?\n\nNot at all. Two weeks ago I registered a concern about some programming\nthat was being conducted by a student organisation here at the\nUniversity of Texas at San Antonio.  As a result, I was interrogated\nby the capus police, who also attempted to create a positive-identification\nfile (photo, fingerprints, etc.). I refused to permit this, and filed a\ncomplaint with the University administration.  The Vice-President for\nBusiness Affairs (the 'boss' of the campus police) stated that he had no\ninterest in the legal/Constitutional implications of those actions.\n\n-- \nThe greatest threat facing the citizens of the United States in the decade of\nthe 90s is the United States Government; at all levels -- Federal, State, Local\n[All opinions are mine, and I reserve the right to deny them at any time - WWH]\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8416, "properties": {"category": "rec.autos", "text": "From: jong@halcyon.com (Barking Weasel)\nSubject: Re: RFI:Art of clutchless shifting\nOrganization: Northwest Nexus Inc. (206) 455-3505\nLines: 36\n\nschludermann@sscvx1.ssc.gov writes:\n\n>I'm wondering if anybody else out there is a clutchless shifter? I've been\n>doing it my self over 200,000 miles, on my current toyota truck I've got\n>over 150k. I've heard people talk about how doing this can damage a\n>transmission. My experiences suggest otherwise. What techniques do you use?\n\n\tYeah.  I don't use the clutch all the time either.  I've done it\nwith Fords, BMW, Datsun, and Chevy and it works fine.  I can't think of\nany reason that it would damage the tranny.  Essentially you are just\ndoing what the synchros do anyhow - match the engine speed with the\ntranny speed and slip it into gear.\n\n\n>On some old pieces of junk I drove, the transmission was so\n>worn that pumping the clutch was the only way to shift, except clutchless.\n>To date I've driven rabbits, datsuns, comets, fords & a chevy. Some where\n>harder than others to shift but generally the higher the milage the smoother\n>quicker & easier they where to shift.\n\n>My technique is to ease back off the throttle and at the same time gently\n>wrist back on the shift lever. If for some reason I miss the shift window,\n>I lightly press the accelerator & try agian. I've found that clutchless\n>shifting is eaiser/quicker at high rpms (4000-7000). I also skip gears some\n>times using 1-3-5 ,1-2-4-5. \n\n\tSounds about right.  I usually slip it out during throttle-down\nand then blip the throttle and wait until it feels like things are right\n(usually about a second) and then slip it into gear...\n\n>krispy\n-- \n--------------------------------------------------------------------\nJon \"You obviously don't know who you're dealing with\" Gross\njong@halcyon.com\n--------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8417, "properties": {"category": "talk.religion.misc", "text": "From: susan_soric@upubs.uchicago.edu (Susan Soric)\nSubject: Wanted: Moltmann's God in Creation\nOrganization: Not important\nLines: 15\n\nI'm greatly in need of Jurgen\nMoltmann's book God in Creation:\nAn Ecological Doctrine of Creation.\n\nIf you have a copy you're willing to\npart with, I'd love to hear from you\nsoon.  You may call me at 312-702-\n8367 or e-mail me.\n\nThanks.\n\n==========================================================================================\nSusan Soric\nIndependent agent\nsusan_soric@upubs.uchicago.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8418, "properties": {"category": "rec.autos", "text": "From: dbernard@clesun.Central.Sun.COM (Dave Bernard)\nSubject: Re: JEEP WRANGLER - OPINI\nOrganization: Sun Microsystems\nLines: 35\nDistribution: world\nReply-To: dbernard@clesun.Central.Sun.COM\nNNTP-Posting-Host: clesun.central.sun.com\n\nIn article 4DB@vu-vlsi.ee.vill.edu, mobasser@vu-vlsi.ee.vill.edu (Bijan Mobasseri) writes:\n>How do I square this with a respectable resale value?  Easy- if it's expensive\n> to buy new, it's gonna be expensive to buy used.\n>===============================\n>A patently false statement. Try this logic on an Alfa 164. In fact, \n>marketplace has a wonderufl mechanism to \"adjust\" the value of the cars that \n>are overpriced by the manufacturer. If it is expensive to buy new it is NOT \n>necessarily expnesive to buy used. In fact, it could be real cheap to buy \n>used, depending what that car is of course. Note that I do not question your \n>statements on the reliability of Wrangler. I have never owned one, driven one \n>or been in one (I do love to have one though!).\n\n\n What I don't understand is why \n>this apparent neglect of quality for so many years has not filtered down into \n>the used market.Is Jeep so intoxicating, so irresistable and so seductive as \n>to make its purchase a fatal attraction?.\n>\n>Bijan\n\n\n\nYep.  They are popular vehicles.  You don't see a lot of previous model year\nones sitting on dealer's lots for any lenghth of time after the new ones are\nout.  The things sell, they are popular.\n\nBecause they are popular, and high-priced new, they are high price used, very\nsimple.\n\nI knew they were overpriced when I bought it... I knew they had a terrible \nreliability record when I bought it.  But I didn't expect anything like I\ngot, especially with a dealer network unable to repair it.  Personal experience\nhas quickly cured me of my infatuation with the machine.\n\nDave\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8419, "properties": {"category": "rec.sport.baseball", "text": "From: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nSubject: Re: Players Rushed to Majors\nOrganization: Computer Science Department at Rose-Hulman\nLines: 13\nReply-To: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nNNTP-Posting-Host: g215a-1.nextwork.rose-hulman.edu\n\nIn article <93122@hydra.gatech.EDU> re4@prism.gatech.EDU (RUSSELL EARNEST)  \nwrites:\n> This brings back the long suffering memories of pre-chop Braves fans who\n> kept being promised the Bob Horner - Dale Murphy back to back power slam.  \n> Who could stop that?  Guess we'll never know.\n\nWhy not? Horner played 130 games in 1985 and hit 27 HR.\nMurphy played 162 and hit 37.\nIn 1986 Horner hit 27 in 141 games and Murphy hit 29 in 160 games.\n(and the Braves lost 96 and 89 games).\n\njohn rickert\nrickert@nextwork.rose-hulman.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8420, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: louray@seas.gwu.edu (Michael Panayiotakis)\nSubject: realizing colours/win.ini setting changes to \"y\" automatically:\nOrganization: George Washington University\nLines: 32\n\nMornin' all.  I was wonderin'.....\nI got screenpeace (the screensaver, which I think is *very*\ngood), and I got a problem with it...\nThere is an option there, \"realize colour table\", and if it's\nswitched on, some wallpapers' colours will get *ucked up with\nsome screensavers (e.g. the \"flashlight\" one).  If I turn it off,\nhowever, it works well, and it's faster, so I have it off.  All's\nnice and well.  However, If I turn it off, then it will be on\nagain next time I start windows.  All the setting are set in the\nwin.ini file, and I *do* have \"save settings on exit\" selected.\n\nalso, I tried manually changing the setting in the win.ini file\nto \"n\" (for no-->realize colour table), and started windows.  It\nwill be fine for that session, but the next session will *again*\nturn the option on.\n\nI tried adding a +R (read-only) attribute to my win.ini file, and\nit worked, but my bitmap (wallpaper) saver didn't work then.\nActually, it's the same application.  Anywya, it didn't work,\nsince it must change the setting at the win.ini file.\n\nso anyone out there got any answers/suggesions/comments for me?\n\nthanks, i.a.\n\nMickey\naka mp\n-- \npe-|| ||  MICHAEL PANAYIOTAKIS: louray@seas.gwu.edu \nace|| ||                                   ...!uunet!seas.gwu.edu!louray\n|||| \\/|  *how do make a ms-windows .grp file reflect a HD directory??*\n\\\\\\\\   |  \"well I ain't always right, but I've never been wrong..\"(gd)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8421, "properties": {"category": "talk.politics.guns", "text": "From: bressler@iftccu.ca.boeing.com (Rick Bressler)\nSubject: Re: \"Proper gun control?\" What is proper gun control? (was Re: My Gun is like my American Express Card)\nOrganization: Boeing Commercial Airplane Group\nLines: 96\n\n/ iftccu:talk.politics.guns / mikey@ccwf.cc.utexas.edu (Strider) /  8:51 pm  Apr 12, 1993 /\n\n>I think most of us would rather be held up with a knife than with a gun,\n>but HOW THE HELL ARE YOU GOING TO MANAGE THAT?  You still haven't offered\n\nI've been watching this knife verses gun bit for a while now, (even\ncontributed a few comments) but this stuff \"I'd rather face a knife than\na gun\" has GOT to come from ignorance!  I used to think pretty much the\nsame thing, then I got 'educated.'\n\nPeople do not as a rule understand how deadly knives can be, or how\nquickly you can be killed with one.  Most people don't understand that\nit takes less than an inch of penetration in some areas to cause quick\n(within a minute or so) death.\n\nThe death rates from handguns and knives are within a few percentage\npoints of each other.  Many people not realizing how deadly knives are\n'try their luck' and thus more get injured by knives.  A gun is deadly\nonly in a single direction and it's only advantage is that it is a\nremote control weapon.  A contact weapon such as a knife controls a\nspherical area 7 to 10 feet in diameter.\n\nMost people have never seen knife wounds, aside from slicing a finger by\naccident.  From 21 feet or so, a knife is very nearly an even match for\na holstered gun in experienced hands, even if the knife wielder has only\nmoderate skill.  From inside 10 feet or so, a knife is a match for a\nDRAWN gun.  A knife is utterly silent, it never jams and never runs out\nof ammunition.  It is limited only by the speed, dexterity skill and\nability of it's wielder.  Criminals in general are young, fast and\nstrong.  It's interesting to note that the patterned slashing attacks\nused by many martial artists remarkably resemble the wild uncontrolled\nslashing attacks of novices.  I've talked to several well trained\nmartial artists.  They have unanimously agreed that if they ever go up\nagainst a knife they simply plan on being cut, hopefully not as bad as\nthe attacker.\n\nPracticing with firearms requires facilities and equipment.  Practicing\nwith knives requires only a small area and something to simulate a\nknife, say a popsicle stick or tooth brush.  Criminals practice their\nknife attacks in prison.\n\nIf you have not trained against knives with a firearm and do not realize\nthese facts the first inkling you will have that something is wrong is\nthe knife ripping through your throat, or in the case of an experienced\nattacker, parts of your body falling off onto the ground.  A 60 year old\nman with arthritis can close that 7 yard distance and gut you in about\none and a half seconds.  Dennis Tueller with a broken leg in a walking\ncast managed it in two.  I've seen people close that distance and strike\nin 1 second.  I'm old, over weight and slow.  I can do it in 1.3\nseconds.  I've seen morgue footage of people killed with edged weapons\nthat you would not believe.  (How about a single stab wound to the chest\nwith a TABLE FORK!  In this case the attacker used the HANDLE, not the\npointed end.)\n\nAdd to this the 'fact' that hand gun 'stopping' power is largely a myth.\nExcept in the case of a central nervous system shot, or a round that\ndestroys the skeletal structure, it takes anywhere from 3 to twelve\nseconds for a bullet wound to 'take effect.'\n\nThis is true of even heart shots.  There is the case of the police woman\nin L.A., the first recorded survivor of a .357 shot to the heart.  That\nlady not only killed her attacker, but chased him down to do it!  All\nfour of her shots, fired after SHE had been shot, struck the perp.  Atta\ngirl!  The bullet entered her on a downward angle, went through the apex\nof her heart, down through the diaphragm, clipped her liver and\ndestroyed her spleen.  It then exited her back leaving a tennis ball\nsized hole.  She died about six times on the operating table, but was\nout of the hospital in 15 days and was back on full duty in eight\nmonths!  She was off duty at the time and not wearing her vest.  She was\non her way home so happened to have her gun.  No, she doesn't think\ncivilians should have the same rights.  Sigh.\n\nThe moral of the story is that even if you DO manage to shoot a knife\nattacker, you'd better be planning on doing some dodging.  A good\nalternative is to shoot for and break the pelvis.  People can often walk\n(a little) on broken legs but a broken pelvis will nearly always anchor\nthem.  Many firearms schools recommend pelvis shots against contact\nweapons.  The target is as large as the traditional 'center of mass' and\nis more reliable to STOP somebody with a contact weapon, assuming a\ncaliber powerful enough to 'do the job.'  Hot .38's on up will usually\ndo this.\n\nRemember folks, the idea isn't to 'take em with you' but for you to live\nand them to fail, whatever the consequences for them.  This the reason\n'killing them' isn't our goal, or in many cases even good enough to keep\nus alive.\n\nI don't want to face a violent attack of any sort.  Knowing what I now\nknow, I can't rightly say I'd rather face a knife than an gun.  It would\nhave to depend on the attacker, and if I could pick and choose, I\nWOULDN'T BE THERE.  This is really the bottom line.  Criminals do not\nfear the law.  Criminals do not fear the weapon.  They fear the citizen\nbehind the weapon that has shown the resolution and determination to do\nwhatever it takes.\n\nRick.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8422, "properties": {"category": "talk.politics.misc", "text": "From: kaldis@romulus.rutgers.edu (Theodore A. Kaldis)\nSubject: Re: How many homosexuals are there?\nDistribution: usa\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 7\n\nPerhaps 1%, but most likely not more than 2%.  A new study\n(discrediting Kinsey) says so.\n-- \n  The views expressed herein are   |  Theodore A. Kaldis\n  my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n  believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n  as this would hold such views??? |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8423, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Top Ten Reasons Not to Aid Russians\nSummary: Constitutional Basis of Foreign Aid\nOrganization: Historical Accuracy, Inc.\nLines: 22\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <C513wJ.75y@encore.com> rcollins@ns.encore.com (Roger Collins) writes:\n>...\n>I ask myself, what law could we pass to prevent government from doing\n>stupid, frivilous things with OUR money?  Then I think, the Constitution\n>was supposed to do that.  Could someone please tell me what legitimate\n>constitutional power the federal government is using when it takes money\n>from my paycheck and gives it to needy countries?  Seriously.\n>\n>Roger Collins\n>\n\nSince you asked, Article I Section 1.  Article I Section 8.  Article I \nSection 10.  Article II Section 2.  Article VI.  Sixteenth Amendment.\n\nWith this as a guide, try reading it yourself.\n\njsh\n\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.400+0000", "event": "documents", "entityId": 8424, "properties": {"category": "talk.politics.guns", "text": "From: fontenot@ravl.rice.edu (Dwayne Jacques Fontenot)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Rice University\nLines: 25\n\nIn <C5tEnu.112F@ns1.nodak.edu> green@plains.NoDak.edu (Bill Green) writes:\n>Just to shed some light on the fire, it was widely reported (AP, etc.) that\n>there WERE several witnesses to BD folks starting the fires.  It has also\n>been reported that the fires broke out in several places at once, which\n>rules out a Bradley knocking over a lamp, etc. as the cause.\n\nConsider this: The BDs had more than one lamp; The tanks made more than\none hole in the building. Did anyone else notice on the video that it\nappeared that wherever there was smoke coming out of the building, there\nwas a tank nearby?\n\nThe fact that it appears that fires started in several places does not\nrule out anything.\n\nAlso, where are these several witnesses? The way I heard it (from the FBI\nspokesman on CNN) the \"witnesses\" were all people driving the tanks.\n\n>One other point, I'm no fan of Janet Reno, but I do like the way she had the\n>\"balls\" to go ahead and take full responsibility.  Seems like the waffle boy\n>had problems figuring out just where he stood on the issue.\n\nToo bad nothing will happen to her or him. The FBI and the media have\ndone their job well.\n\nDwayne Jacques Fontenot\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8425, "properties": {"category": "misc.forsale", "text": "From: bpang@tuba.calpoly.edu (Brennan Lawrence Pang)\nSubject: Hard drives, etc... for sale\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 35\n\nHARD DRIVES: (all drives include manuals, warranty)\n------------\nFujitsu 1.2 GIGabyte SCSI hard drive\n$1000\n \nQuantum 240 MEG SCSI prodrive\n$350\n \nFujitsu 90 MEG SCSI hard drive\n$175\n \nApple \"zero footprint\" hard drive case with power supply\n$75\n \nACCELLERATED VIDEO:\n-------------------\nApple 8/24GC (accellerated) graphics card with software (init)\nMillions of colors, FAST!\n$700\n \nHARDCOPY:\n---------\nApple Imagewriter II printer with spare print head (these aren't cheap)\n$300\nFAX machine: 9600 baud with leather travel case and many other accessories\n$200\n \nTo discuss the purchase of any of these items, call John at (408) 268-1769\nIf you get the answering machine, please leave a message with your name and\nphone number, letting me know which piece you are interested in.\n \nJohn\n(408) 268-1769\n\nDO NOT REPLY TO THIS ACCOUNT!\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8426, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kemper@informatik.uni-kl.de (Michael Kemper [RHRK])\nSubject: Hard disk error\nOrganization: University of Kaiserslautern\nLines: 16\n\nHi there,\n\nwhen I run Disk First Aid on my external hard drive (Quantum LPS 240) I get the followinf\nmessage: Error -535: Missing thread record (TarID=31015; TarBlock 416)\nDisk First Aid is not able to fix this problem, Norton Utils doesn't find it at all.\nWhen I use Norton Disk editor to look at TarBlock 416 I can read something like \"DirReservedArea\"\n\nMy question: How can I get rid of this error (without reformatting of course)\n\n-- \n  \\_        \\_  \\_  \\_    | Michael Kemper\n  \\__      \\__  \\_ \\_     | University of Kaiserslautern, Germany\n  \\_\\_    \\_\\_  \\_\\_      | email: kemper@rhrk.uni-kl.de \n  \\_ \\_  \\_ \\_  \\__       | \n  \\_  \\_\\_  \\_  \\_ \\_     | Although they gave me that email address,\n  \\_   \\_   \\_  \\_  \\_    | this is not the opinion of rhrk, uni-kl or de!\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8427, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Final Solution for Gaza ?\nOrganization: The Department of Redundancy Department\nLines: 54\n\nIn article <1483500354@igc.apc.org> cpr@igc.apc.org (Center for Policy Research) writes:\n\n>The Gaza strip, this tiny area of land with the highest population\n>density in the world, has been cut off from the world for weeks.\n\nAnother CPR Non-Fact.\n\n>The Israeli occupier has decided to punish the whole population of\n>Gaza, some 700.000 people, by denying them the right to leave the\n>strip and seek work in Israel.\n\nActually, they are free to leave and seek work in Egypt, except that\nthe Egyptians don't want them, either.  And who are you going to blame\nif/when Gazans establish their own state of Gaza/Palestine?\n\n>While Polish non-Jews risked their lives to save Jews from the\n>Ghetto, no Israeli Jew is known to have risked his life to help\n>the Gazan resistance. The only help given to Gazans by Israeli\n>Jews, only dozens of people, is humanitarian assistance.\n\nActually, one such Jew who did risk his life to help Gazan Arabs was\nhacked to death by Palestinean murderers just last week.  It seems\nthat the risk has been primarily from the Arabs \"in need of help\". \n\nThis is also true for telephone repairmen, traders who seek to buy\nagricultural products from Gazans, Israeli soldiers who get involved\nin fighting between feuding Palestinean groups that are as determined\nto destroy each other as they are to destroy outsiders...\n\n>The right of the Gazan population to resist occupation is\n>recognized in international law and by any person with a sense of\n>justice. A population denied basic human rights is entitled to\n>rise up against its tormentors.\n\nI just wanna see you try this here in the USA.  You know what's going\nto happen. \n\n>As is known, the Israeli regime is considering Gazans unworthy of\n>Israeli citizenship and equal rights in Israel, although they are\n>considered worthy to do the dirty work in Israeli hotels, shops\n>and fields. Many Gazans are born in towns and villages located in\n>Israel. They may not live there, for these areas are reserved for\n>the Master Race.\n\nOkay.  That's enough.  I'm not going to read this posting of yours any\nfurther.  \n\n\n>Elias Davidsson Iceland\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8428, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 70\n\n\nIn article <1r0hicINNjfj@owl.csrv.uidaho.edu>, lanph872@crow.csrv.uidaho.edu (Rob Lanphier) writes:\n|> Malcolm Lee (mlee@post.RoyalRoads.ca) wrote in reference to Leviticus 21:9\n|> and Deuteronomy 22:20-25:\n|> : These laws written for the Israelites, God's chosen people whom God had\n|> : expressly set apart from the rest of the world.  The Israelites were a\n|> : direct witness to God's existence.  To disobey God after KNOWing that God\n|> : is real would be an outright denial of God and therefore immediately punishable.\n|> : Remember, these laws were written for a different time and applied only to \n|> : God's chosen people.  But Jesus has changed all of that.  We are living in the\n|> : age of grace.  Sin is no longer immediately punishable by death.  There is\n|> : repentance and there is salvation through our Lord Jesus Christ.  And not just\n|> : for a few chosen people.  Salvation is available to everyone, Jew and Gentile\n|> : alike.\n|> \n|> Hmm, for a book that only applied to the Israelites (Deuteronomy), Jesus sure\n|> quoted it a lot (Mt 4: 4,7,10).  In addition, he alludes to it in several\n|> other places (Mt 19:7-8; Mk 10:3-5; Jn 5:46-47).  And, just in case it isn't\n|> clear Jesus thought the Old Testament isn't obsolete, I'll repeat the\n|> verse in Matthew which gets quoted on this group a lot:\n|> \n|> \"Do not think that I have come to abolish the Law or the Prophets; I have\n|> not come to abolish them but to fulfill them.  I tell you the truth, until\n|> heaven and earth disappear, not the smallest letter, not the least stroke\n|> of a pen, will by any means disappear from the Law until everything is\n|> accomplished.  Anyone who breaks one of the least of these commandments\n|> and teaches others to do the same will be called least in the kingdom of\n|> heaven, but whoever practices and teaches these commands will be called\n|> great in the kingdom of heaven.  For I tell you that unless your\n|> righteousness surpasses that of the Pharisees and the teachers of the law,\n|> you will certainly not enter the kingdom of heaven.\"  (Mt 5:17-20 NIV, in\n|> pretty red letters, so that you know it's Jesus talking)\n|> \n|> This causes a serious dilemma for Christians who think the Old Testament\n|> doesn't apply to them.  I think that's why Paul Harvey likes quoting it so\n|> much ;).\n|> \n|> Rob Lanphier\n|> lanph872@uidaho.edu \n\nI will clarify my earlier quote.  God's laws were originally written for \nthe Israelites.  Jesus changed that fact by now making the Law applicable to\nall people, not just the Jews.  Gentiles could be part of the kingdom of\nHeaven through the saving grace of God.  I never said that the Law was made\nobsolete by Jesus.\n\nIf anything, He clarified the Law such as in that quote you made.  In the\nfollowing verses, Jesus takes several portions of the Law and expounds upon\nthe Law giving clearer meaning to what God intended.  If you'll notice, He\nalso reams into the Pharisees for mucking up the Law with their own contrived\ninterpretations.  They knew every letter of the Law and followed it with their\nheads but not their hearts.  That is why He points out that our righteousness\nmust surpass that of the Pharisees in order to be accepted into the kingdom\nof Heaven.  People such as the Pharisees are those who really go out of their\nway to debate about the number of angels that can dance on the head of a pin.\nThey had become legalistic, rule-makers - religious lawyers who practiced the\nletter of the Law but never really believed in it.  \n\nI think you will agree with me that there are in today's world, a lot of\nmodern-day Pharisees who know the bible from end to end but do not believe\nin it.  What good is head knowledge if there is nothing in the heart?\n\nChristianity is not just a set of rules; it's a lifestyle that changes one's\nperspectives and personal conduct.  And it demands obedience to God's will.\nSome people can live by it, but many others cannot or will not.  That is their\nchoice and I have to respect it because God respects it too.\n\nGod be with you,\n\nMalcolm Lee  :)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8429, "properties": {"category": "misc.forsale", "text": "From: ac999135@umbc.edu (ac999135)\nSubject: <><><> WANTED: TG-16 Games --- 2 Player or More <><><>\nOrganization: University of Maryland, Baltimore County Campus\nLines: 6\nDistribution: world\nNNTP-Posting-Host: umbc8.umbc.edu\nX-Auth-User: ac999135\n\nWell, the title says it all...I'm looking to buy cheap used\nTG-16 Gmaes which have 2 or more player support (Simultaneous)....\n\nPlease email me all offers with a price...\n\nRohit\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8430, "properties": {"category": "talk.politics.guns", "text": "From: barker@rigel.cs.pdx.edu (James Barker)\nSubject: NRA address?\nSummary: address for NRA - Right to keep and bear anti-tank weapons\nKeywords: NRA Waco RKBA\nLines: 41\n\nCould someone email me a USNail address for the NRA? I'd like to write them\na letter encouraging them to see to it VERY EMPHATICALLY that the 2nd\namendment is restored to the form that the founding fathers intended.\n\nPeople like Howard Metzenbaum seem very intent on diluting the 2nd amendment\nto the point where it is no effort for the governmentski to do what they\ndid in Waco.\n\nAfter all, from what I know of the Federalist papers, it is this kind of\ntyranny the 2nd amendment was supposed to be designed to protect against.\n\nHonestly! M-60 tanks against the civilian population! Attack helicopters!\n\nWe need the right to keep and bear anti-tank weapons. Actually, if they\nintend to mass armour against the (weakly-armed, at that) civilian population,\nwe need the right to field tactical nukes. Government tyranny! Who would\nhave ever thought it would happen here!\n\nI wonder who'se house they'll run tanks through next, because the gov.\nSUSPECTS child abuse. Maybe yours! Maybe mine!\nAnd what is an Illegal Weapon (which they have yet to show us), if the\n2nd amendment is designed to do what I believe it is, and the gov. uses\ntanks against you? Government self-serving? Naaaah. Not here.\n\nTime was when the U.S. used armour/attack helicopters against small countries.\nNow, we're down to using them against to what amounts to a busload and a\nhalf of civilians.\n\n\"First they came for the Jews, but I did not stop them, because I was\nnot a Jew: Then they came for the catholics, but I did not stop them\nbecause I was not a catholic! Then they came for the lutherans, but\nthere was now no one left to stop them!\" Rev. Martin Niemoller.\n(probably didn't get it verbatim, but you get the idea).\n\nIf the NRA reads this, then never mind about the address.\nGod save us!\n\n--James S. Barker\n  Portland State University\n  barker@cs.pdx.edu\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8431, "properties": {"category": "rec.sport.baseball", "text": "From: mike@cunixf.cc.columbia.edu (Michael Chen)\nSubject: Re: Jack Morris\nNntp-Posting-Host: cunixf.cc.columbia.edu\nReply-To: mike@cunixf.cc.columbia.edu (Michael Chen)\nOrganization: Columbia University\nLines: 44\n\nIn article <1993Apr19.024222.11181@newshub.ariel.yorku.ca> cs902043@ariel.yorku.ca (SHAWN LUDDINGTON) writes:\n>In article <1993Apr18.032345.5178@cs.cornell.edu> tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n>>In article <1993Apr18.030412.1210@mnemosyne.cs.du.edu> gspira@nyx.cs.du.edu (Greg Spira) writes:\n>>>Howard_Wong@mindlink.bc.ca (Howard Wong) writes:\n>>>\n>>>>Has Jack lost a bit of his edge? What is the worst start Jack Morris has had?\n>>>\n>>>Uh, Jack lost his edge about 5 years ago, and has had only one above\n>>>average year in the last 5.\n>>\n>>Again goes to prove that it is better to be good than lucky.  You can\n>>count on good tomorrow.  Lucky seems to be prone to bad starts (and a\n>>bad finish last year :-).\n>>\n>>(Yes, I am enjoying every last run he gives up.  Who was it who said\n>>Morris was a better signing than Viola?)\n>>\n>>Cheers,\n>>-Valentine\n>\n>Hey Valentine, I don't see Boston with any world series rings on their\n>fingers.  Damn, Morris now has three and probably the Hall of Fame in his \n>future.  Therefore, I would have to say Toronto easily made the best \n>signing.  And don't tell me Boston will win this year.  They won't \n>even be in the top 4 in the division, more like 6th.\n>\n>Shawn\n>\n\nGee, I never knew Valentine made a comment about how Viola signing\nwith Boston was gonna bring a World Series title to Boston.  I don't\nthink Valentine ever said Boston will win this year.  Boy, talk about\nsensitive, insecure Toronto fans.  :)\n\nIn any case, I think Viola would have made a better signing.  Why?\nViola is younger, and is left handed (how many left handed starters does\nToronto have?\n\n\n\n-Mike\n/mike@columbia.edu\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8432, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nSummary: Response to Paul Schmidt\nOrganization: Free the Barbers, Inc.\nLines: 64\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <1993Apr15.013651.11353@tijc02.uucp> pjs269@tijc02.uucp (Paul Schmidt) writes:\n>steveh@thor.isc-br.com (Steve Hendricks) writes:\n>: \n>: As noted in another thread (Limiting govt), the problem libertarians face\n>: is insuring that the \"limited government\" they seek does not become the \n>: tool of private interests to pursue their own agenda.\n>: \n>: Believe it or not, we \"liberals\" are frequently as opposed to\n>: anti-competitive measures as you \"conservatives.\"  We don't believe,\n>: however, that competition will necessarily be protected by the actions \n>: of business interests in a \"free-market.\"  After all, in the example\n>: you cite, it was not \"liberals\" that pressed for such regulations, but\n>: good staunch conservative businessmen.\n>: \n>: As Adam Smith so eloquently demonstrated, the \"free-market\" is not \n>: something that capitalists seek to protect when they can profit from \n>: its elimination.  The same point was made by Marx -- a point of agreement \n>: between the two theorists that should tell us something.\n>\n>I do not want the government to become a tool of private interests.\n>Limited government cannot insure that private interests will not use\n>this government for their own agenda.  \n\nAgreed.  \n\n>But this is not a failure of libertarianism.  It is the fact that \n>\"Utopia is not an option.\"  There is no single system where everything \n>is perfect.  \n\nIt is a failure of libertarianism if the ideology does not provide any\nreasonable way to restrain such actions other than utopian dreams.  Just\nas Marxism \"fails\" to specify how pure communism is to be achieved and\nthe state is to \"wither away,\" libertarians frequently fail to show how\nweakening the power of the state will result in improvement in the human\ncondition.\n\n>So it is wise to look\n>for the best solution.  If you  compare countries to see which ones\n>people would rather live in, which ones have less starvation, hunger,\n>poverty, and misery, you will find that they have a more limitted\n>government than countries with alot of poverty, misery and suffering.\n>No, limitted government cannot \"insure\" anything, but it sure is better\n>than the alternative (big government.)\n\nThis is a strawman argument and fails on several grounds.  In this case,\n\"limited\" and \"big\" government are not defined.  I would point out that\nLebanon, Somalia, and the former Yugoslavia are by some definitions nations\nwith \"limited\" government, while the US, Canada, and nations in Western \nEurope (where \"people would rather live\") are often pointed out as \nnations with \"big government\" from a libertarian point of view.  \n\nThe argument is not between those who want \"limited\" government and those\nwho want \"unlimited\" government.  It is between those who believe\ngovernment regulation in a capitalist economy serves worthwhile ends and\nthose who believe such regulation is neither desirable on empirical \ngrounds nor justifiable on ideological grounds.\n\njsh\n>-- \n>Paul Schmidt: Advocates for Self-Government, Davy Crockett Chapter President\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8433, "properties": {"category": "comp.graphics", "text": "From: brentb@tamsun.tamu.edu (Brent)\nSubject: Re: Please Recommend 3D Graphics Library For Mac.\nOrganization: Texas A&M Univ., Inc.\nLines: 44\nNNTP-Posting-Host: tamsun.tamu.edu\n\ntsa@cellar.org (The Silent Assassin) writes:\n>rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter) writes:\n>\n>> Can you please offer some recommendations?\n>\n>It's really not that hard to do.  There are books out there which explain\n>everything, and the basic 3D functions, translation, rotation, shading, and\n>hidden line removal are pretty easy.  I wrote a program in a few weeks witht\n>he help of a book, and would be happy to give you my source.\n\nI think he wanted to avoid reinventing the wheel.\nI would suggest that you take your code, and submit it to\ncomp.sys.mac.binaries to be distributed (including to the ftp sites). \nMany folks, myself included, would enjoy the extra code.\n\n>\tAlso, Quickdraw has a lot of 3D functions built in, and Think pascal\n>can access them, and I would expect that THINK C could as well.  If you can\n>find out how to use the Quickdraw graphics library, it would be an excellent\n>choice, since it has a lot of stuff, and is built into the Mac, so should be\n>fast.\n\nJust to clarify, the 3D routines that are mentioned in various places\non the mac are in a libray, not the ROM of the mac.  A few years ago before\nI knew anything about implementing graphics, I came across a demo of the\nApple GrafSys3D library and it actually did a lot.  However, it is quite\nlimited in the sense that it's a low-level 3D library; your code still has\nto plot individual points, draw each line, etc ad nauseum.  It has nothing\non GL, for example, where you can handle objects.\n\nOther things to consider when talking about Apple's old 3D GrafSys library:\n\n* Unsupported;  never was and no plans exist to do so in the future\n\n* Undocumented; unless you call header files documentation...\n\nIf one knows something about graphics, you could probably figure it out,\nbut I'd assume there's better software available that gives better\noutput and is, at the same time, programmatically nicer (i.e. easier to\nprogram).\n\nJust my 2% tax\n\n-Brent\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8434, "properties": {"category": "sci.space", "text": "From: agae@palm.lle.rochester.edu (Andres C. Gaeris)\nSubject: Re: Orion drive in vacuum -- how?\nReply-To: agae@palm.lle.rochester.edu (Andres C. Gaeris)\nOrganization: UofR Laboratory for Laser Energetics\nLines: 17\nNntp-Posting-Host: palm.lle.rochester.edu\n\nIn article <1993Apr20.164655.11048@head-cfa.harvard.edu>, willner@head-cfa.harvard.edu (Steve Willner) writes:\n> \n> The NASM photo archives are open to the public.  All (or almost all)\n> still pictures in the collection are available for viewing, but I\n> don't know about films.  At least it might be worth a try.  I'm not\n> sure if appointments are necessary, but I think not.\n>\nIs posible to make copies of these photographs (or any other aerospace\nphotographs at NASM) if you pay a copyright fee?\n\n===============================================================================\nAndres C. Gaeris\t   || \"Living example of the application of Newton's\nJunior laser fusioneer\t   ||  Zeroth Law:\nagae@lle.rochester.edu\t   ||  `Every body in rest wants to remain in bed'\"\n===============================================================================\n\n \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8435, "properties": {"category": "rec.autos", "text": "From: finnegan@invader.navo.navy.mil (Kenneth Finnegan)\nSubject: Re: top 10 reasons why i love CR (not for the humor impaired)\nArticle-I.D.: cs.1993Apr6.195710.24227\nReply-To: finnegan@navo.navy.mil\nDistribution: na\nOrganization: Grumman Data Systems\nLines: 28\nNntp-Posting-Host-[nntpd-19510]: invader.navo.navy.mil\n\nIn article <1993Apr6.180456.17573@magnus.acs.ohio-state.edu>, jnielsen@magnus.acs.ohio-state.edu (John F Nielsen) writes:\n|> In article <1993Apr06.133319.7008@metrics.com> tomh@metrics.com (Tom Haapanen) writes:\n|> >CHINTS@ISCS.NUS.SG writes:\n|> >> Here are \"another\" ten reasons why we should all love CR\n|> >> 10. Car salesmen love their new car buying service\n|> >> 2. And later on buying a CR \"idealized family sedan\"\n|> >\n|> >And my number 1:\n|> >\n|> >1. The spectacle of the religious fervour of the CR \"true believers\".\n|> \n|> Or the spectacle of \"Macho Real Men\" who would never bother to read the\n|> magazine but are more than apt to criticize it.\n\nHey, I'm a \"Macho Real Man\" and I DO read it.  So I can criticize\nit all I want, especially since I pay for the publication. (They\naccept no outside advertising, don't you know....)\n\n|> John Nielsen   MAGNUS Consultant            ______   ______   __  __\t\n|> \"To you Baldrick, the Renaissance was just /\\  __ \\ /\\  ___\\ /\\ \\/\\ \\\n|> something that happened to other people,   \\ \\ \\/\\ \\\\ \\___  \\\\ \\ \\_\\ \\\n|> wasn't it?\" - The Black Adder               \\ \\_____\\\\/\\_____\\\\ \\_____\\\n\nRelying on Consumer Reports to pick your automobiles is like\nletting Field & Stream select your living room furniture.\n\nKenneth\nfinnegan@navo.navy.mil\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8436, "properties": {"category": "rec.sport.baseball", "text": "From: sepinwal@mail.sas.upenn.edu (Alan Sepinwall)\nSubject: Re: Jewish Baseball Players?\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 18\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <mssC5K47z.Fur@netcom.com> mss@netcom.com (Mark Singer) writes:\n>\n>\n>Polish and Jewish are *not* mutually exclusive.\n\n\nI didn't mean to offend or anything, I'm just quoting Stanky himself on\nthe subject. I remember one time last year he was being interviewed by\nESPN, and the interviewer (can't remember who), asked Stanky if he was\nJewish because he (the interviewer) was Jewish and wanted to see more\nJewish ballplayers. To which Stanky replied, \"I'm Polish, not Jewish.\"\n\nSo maybe that wasn't the most PC thing for Stanky to say, and maybe I was\na little naive when I posted it. I think we should just devote this\nsubject to finding actual Jewish ballplayers (I myself am Jewish and the\nonly ones I ever knew until now were Koufax, Greenberg, and Blomberg).\n\n-Alan\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8437, "properties": {"category": "talk.politics.misc", "text": "From: zippy@hairball.ecst.csuchico.edu (The Pinhead)\nSubject: Re: $50,000 Reward!\n\t<1993Apr4.104122.11197@colorado.edu>\n\t<1993Apr4.105514.11664@colorado.edu>\n\t<5APR199313494915@oregon.uoregon.edu>\nOrganization: California State University, Chico\nLines: 51\nNNTP-Posting-Host: hairball.ecst.csuchico.edu\nIn-reply-to: dreitman@oregon.uoregon.edu's message of 05 Apr 1993 12:49:00 PST\n\nIn article <5APR199313494915@oregon.uoregon.edu> dreitman@oregon.uoregon.edu (Daniel R. Reitman, Attorney to Be) writes:\n   In article <1993Apr4.105514.11664@colorado.edu> ajteel@dendrite.cs.Colorado.EDU (A.J. Teel) writes...\n   >\tNo, the definition of \"resident\" is very specific. It is the\n   >same thing as \"alien\". Look it up. Remember that the common usage of\n   >the words ARE NOT always their legal meaning.\n\n   This I gotta see some authority for.\n\nfrom Black's Law Dictionary, Revised 4th Ed., page 1473:\n\nRESIDENCE.  A factual place of abode.  Living in a particular\nlocality.  Reese v. Reese, 179 Misc. 665, 40 N.Y.S.2d 468, 472;\nZimmerman, 175 Or. 585, 155 P.2d 293, 295.  It requires only bodily\npresence as an inhabitant of a place.  In re Campbell's Guardianship,\n216 Minn. 113, 11 N.W.2d 786, 789.\n\n     As ``domicile'' and ``residence'' are usually in the same place,\nthey are frequently used as if they had the same meaning, but they are\nnot identical terms, for a person may have two places of residence, as\nin the city and country, but only one domicile.  Residence means\nliving in a particular locality, but domicile means living in that\nlocality with intent to make it a fixed and permanent home.  Residence\nsimply requires bodily presence as an inhabitant in a given place,\nwhile domicile requires bodily presence in that place and also an\nintention to make it one's domicile.  In re Riley's Will, 266 N.Y.S.\n209, 148 Misc. 588.  ``Residence'' demands less intimate local ties\nthan ``domicile,'' but ``domicile'' allows absence for indefinite\nperiod if intent to return remains.  Immigration Act 1917, sec. 3, 8\nU.S.C.A. sec. 136 (e, p).  Transatlantica Italiana v. Elting,\nC.C.A.N.Y., 74 F.2d 732, 733.  But see, Ward v. Ward, 115, W.Va 429,\n176 S.E. 708, 709; Southwestern Greyhound Lines v. Craig, 182 Okl.\n610, 80 P 2d 221, 224; holding that residence and domicile are\nsynonymous terms.  ``Residence'' has a meaning dependent on context\nand purpose of statute.  In re Jones, 341 Pa. 329, 19 A.2d 280, 282.\nWords ``residence'' and ``domicile'' may have an identical or variable\nmeaning depending on subject-matter and context of statute.  Kemp v.\nKemp, 16 N.Y.S.2d 26, 34, 172 Misc. 738.\n\n     Legal residence.  See Legal.\n\nRESIDENT.  One who has his residence in a place.  See Residence.\n\n     Also a tenant, who was obliged to reside on his lord's land, and\nnot to depart from the same; called, also, ``homme levant et\ncouchant,'' and in Normandy, ``resseant du fief.''\n\n--\nRonald Cole                                     E-mail: zippy@ecst.csuchico.edu\nSenior Software Engineer                        Phone: +1 916 899 2100\nOPTX International                              \n            \"The Bill Of Rights -- Void Where Prohibited By Law\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8438, "properties": {"category": "misc.forsale", "text": "From: blaakso@ua.d.umn.edu (Brian Laakso)\nSubject: PC Transporter FOR SALE\nOrganization: University of Minnesota, Duluth\nLines: 18\nDistribution: na\nNNTP-Posting-Host: ua.d.umn.edu\n\nHello All,\n\nI have a PC Transporter for sale. It will work with either an Apple IIe or a\nGS. However, I only have the GS installation kit. This PCT also has a\nco-processor installed. It comes with the latest software (2.05) and a 3.5\ndrive. So what you get is :\n\nPC Transporter  (no problems runs great)\nInstallation kit for above PCT (GS) with video tape instructions\nAll needed harware with color adapter for monitor\n8087 co processor installed on board\nAll manuals and software (ver 2.05 AEPC)\none 3.5 800K drive to hook to the PCT (or GS)\n\n\t\t Brian Laakso\n\nSend me your reasonable offers....\nemail blaakso@ub.d.umn.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8439, "properties": {"category": "rec.motorcycles", "text": "From: fist@iscp.bellcore.com (Richard Pierson)\nSubject: Re: Motorcycle Security\nKeywords: nothing will stop a really determined thief\nNntp-Posting-Host: foxtrot.iscp.bellcore.com\nOrganization: Bellcore\nDistribution: usa\nLines: 24\n\nIn article <2500@tekgen.bv.tek.com>, davet@interceptor.cds.tek.com (Dave\nTharp CDS) writes:\n|> I saw his bike parked in front of a bar a few weeks later without\n|> the\n|> dog, and I wandered in to find out what had happened.\n|> \n|> He said, \"Somebody stole m' damn dog!\".  They left the Harley\n|> behind.\n|> \n\nAnimal Rights people have been know to do that to other\n\"Bike riding dogs.cats and Racoons.  \n\n-- \n##########################################################\nThere are only two types of ships in the NAVY; SUBMARINES \n                 and TARGETS !!!\n#1/XS1100LH\tDoD #956   #2 Next raise\nRichard Pierson E06584 vnet: [908] 699-6063\nInternet: fist@iscp.bellcore.com,|| UUNET:uunet!bcr!fist  \n#include <std.disclaimer> My opinions are my own!!!\nI Don't shop in malls, I BUY my jeans, jackets and ammo\nin the same store.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8440, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: Requests\nLines: 53\nOrganization: Walla Walla College\nLines: 53\n\nIn article <11857@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n>From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\n>Subject: Re: Requests\n>Date: 19 Apr 93 18:25:08 GMT\n>In article <C5qLLG.4BC@mailer.cc.fsu.edu> mayne@cs.fsu.edu writes:\n>>\n(excess stuff deleted...)\n\n    \n>  However, it seems that a local church elder has been getting\n>  revelations from god about a devastating quake scheduled to level\n>  the area on May 3rd.  He has independent corroboration from\n>  several friends, who apparently have had similar revelations.  The\n>  5.7 quake was, in fact, in response to a request from the lot of\n>  them seeking a sign from god on the veracity of their visions.\n>\n>  None of this would be terribly interesting, except for the amount\n>  of stir it has created in the area.  Many, many people are taking\n>  these claims very seriously.  There are some making plans to be\n>  out of the are on the target date.  My local religious radio\n>  station devoted 4 hours of discussion on the topic.  \n>\n>  I even called up during one of the live broadcasts to tell the\n>  host that he would have a full account of my conversion on May\n>  4th, provided my family and I survived the devastation and ruin\n>  that will invariably follow the quake.\n>\n>/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n>\n>Bob Beauchaine bobbe@vice.ICO.TEK.COM \n>\n>They said that Queens could stay, they blew the Bronx away,\n>and sank Manhattan out at sea.\n>\n>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nI know of a similar incident about 3 years ago.  A climatologist( Ithink \nthat was his profession) named Iben Browning predicted that an earthquake \nwould hit the New Madrid fault on Dec.3.  Some schools in Missouri that were \non the fault line actually cancelled school for the day.  Many people \nevacuated New Madrid and other towns in teh are.  I wouldn't be suprised if \nthere were more journalists in the area than residents.  Of course, teh \nearthquake never occured.  HOw do I know about his?  I used to live in \nSouthern Illinois and the lican middle school was built directly on the \nfault line.  No we still had school... We laughed at the poor idiots who \nbelieved the prediction. :):):):)\n\nBob, if you're wanting an excuse to convert to Christianity, you gonna have \nto look elsewhere.\n\nTammy \"No Trim\" Healy\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8441, "properties": {"category": "sci.space", "text": "From: Leigh Palmer <palmer@sfu.ca>\nSubject: Re: Orion drive in vacuum -- how?\nX-Xxmessage-Id: <A7F4E4ADFD021C0B@rs5-annex3.sfu.ca>\nX-Xxdate: Fri, 16 Apr 93 06:33:17 GMT\nOrganization: Simon Fraser University\nX-Useragent: Nuntius v1.1.1d17\nLines: 15\n\nIn article <1qn4bgINN4s7@mimi.UU.NET> James P. Goltz, goltz@mimi.UU.NET\nwrites:\n>  Background: The Orion spacedrive was a theoretical concept.\n\nIt was more than a theoretical concept; it was seriously pursued by\nFreeman Dyson et al many years ago. I don't know how well-known this is,\nbut a high explosive Orion prototype flew (in the atmosphere) in San\nDiego back in 1957 or 1958. I was working at General Atomic at the time,\nbut I didn't learn about the experiment until almost thirty years later,\nwhen \nTed Taylor visited us and revealed that it had been done. I feel sure\nthat someone must have film of that experiment, and I'd really like to\nsee it. Has anyone out there seen it?\n\nLeigh\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8442, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U49839@uicvm.uic.edu>\nSubject: Re: Harry Caray\nDistribution: na\nLines: 17\n\n\nlast night bill veeck cam to me in my dreams and this is what he said:\n\ncubs suck cubs suck cubs suck cubs suck cubs suck cubs suck cubs suck\ncubs suck cubs suck cubs suck cubs suck cubs suck cubs suck cubs scuk\ncubs suck cubs suck cubs suck cubs cuck cubs suck cubs suck cubs suck\ncubs suck cubs suck cubs suck cubs suck cubs suck cubs suck cubs suck\ncubs suck cubs suck cubs suck cubs suck cubs suck cubs suck cubs suck\n\noh yeah, he aqlso added that harry is a drunken idiot who shoulda\nstayed in st louis where his heart is, but also added that fair weathered\nfans all like to be together.  i guess this is the reason harry is now\na cub fan, bud man.  note he never really left st, louis.\n\njim walker\n\ngo sox, cubs suck!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8443, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Mars Observer Update - 04/23/93\nOrganization: Jet Propulsion Laboratory\nLines: 48\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: Mars Observer, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nForwarded from the Mars Observer Project\n\n                       MARS OBSERVER STATUS REPORT\n                             April 23, 1993\n                              10:00 AM PDT\n\nFlight Sequence C8 is active, the Spacecraft subsystems and instrument\npayload performing well in Array Normal Spin and outer cruise\nconfiguration, with uplink and downlink via the High Gain Antenna; uplink\nat 125 bps, downlink at the 2 K Engineering data rate.\n\nAs a result of the spacecraft entering Contingency Mode on April 9, all\npayload instruments were automatically powered off by on-board fault\nprotection software.  Gamma Ray Spectrometer Random Access Memory\nwas successfully reloaded on Monday, April 19.  To prepare for\nMagnetometer Calibrations which were rescheduled for execution in Flight\nSequence C9 on Tuesday and Wednesday of next week, a reload of Payload\nData System Random Access Memory will take place this morning\nbeginning at 10:30 AM.\n\nOver this weekend, the Flight Team will send real-time commands to\nperform Differential One-Way Ranging to obtain additional data for\nanalysis by the Navigation Team.  Radio Science Ultra Stable Oscillator\ntesting will take place on Monday .\n\nThe Flight Sequence C9 uplink will occur on Sunday, April 25, with\nactivation at Midnight, Monday evening April 26.  C9 has been modified to\ninclude Magnetometer Calibrations which could not be performed in C8 due\nto Contingency Mode entry on April 9.  These Magnetometer instrument\ncalibrations will allow the instrument team to better characterize the\nspacecraft-generated magnetic field and its effect on their instrument.\nThis information is critical to Martian magnetic field measurements\nwhich occur during approach and mapping phases. MAG Cals will require\nthe sequence to command the spacecraft out of Array Normal Spin state\nand perform slew and roll maneuvers to provide the MAG team data points\nin varying spacecraft attitudes and orientations.\n\nToday, the spacecraft is 22,971,250 km (14,273,673 mi.) from Mars\ntravelling at a velocity of 2.09 kilometers/second (4,677 mph) with\nrespect to Mars.  One-way light time is approximately 10 minutes, 38\nseconds.\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8444, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Finnally, the Phils have support\nFrom: f67709907@violet.ccit.arizona.edu (Greg Franklin)\nDistribution: world,local\nOrganization: University of Arizona\nNntp-Posting-Host: violet\nNntp-Posting-User: f67709907\nLines: 54\n\nIn article <C4x9xA.9Ew@news.udel.edu>, philly@brahms.udel.edu (Robert C Hite) writes:\n> In article <4fjQpAu00WBLM1z50R@andrew.cmu.edu> Anuj Gupta <ag4i+@andrew.cmu.edu> writes:\n>>Everytime I have written on the net about the possibility of a\n>>successfuls season by the Philadelphia Phillies, I have gotten ripped\n>>from everybody from Pittsburgh to Calcutta.  But if all the\n>>ignoramouses, care to look at this week's Baseball Weekly, they will see\n>>that I'm not the only one who considers then as division winners - the\n>>rest of the most respected baseball writers in the country do as well.\n> \n> And these guys certainly know what they're talking about.  Every\n> bozo from Pittsburgh to Calcutta will just have to sit up and take\n> notice!  This Phils team in an offensive juggernaut which is going\n> to score a LOT of runs and put up a TON of hits on the scoreboard.\n> You people out there are going to be sick of seeing PHILLIES\n> scattered all over every offensive league leaders category in the\n> newspaper.  These guys hit .304 through Spring Training..well before\n> getting no hit yesterday.  But they had a plane to catch 45 minutes\n> after the game ended, so they're minds weren't in it.\n\nUp to this point, I really thought this had been written by a \npro-SDCN, anti-mediot poster blessed with a certain talent for\nsarcasm and biting remarks.  Somebody like me, for instance.\nThe lurid overstatements were obviously intended to humiliate the\noriginal poster.\n\n> Now, on top of the great offense, they have a slightly above average\n> pitching staff which has a lot of youth and promise.  If the\n> pitchers do their part, and Mitch keeps blown saves to a minimum,\n> look for another pennant out in left field at the Vet...\n> \n> Robert C. Hite\n> \n> P.S. Michael Jack Schmidt for COMMISSIONER\n\nBut then the scales were lifted from my eyes.  Looks like Robert is\nreally being serious.  Oh, well.\n\nI compare the performance of the 1992 Phillies with the 1987 edition,\nwhich had outstanding run producers at every position except SS, yet\nfinished at a frustrating sub-.500 level.  The 1987 folks didn't \never amount to anything, and neither will the 1992 squad, IMHO.\n\nAny other parallels with previous years' teams for this year's\neditions (in the style of 1993 Braves = 1971 Orioles)?\n-- \nGreg \"Mockingbird\" Franklin   \"Interracial mixing encompasses a lot lot more\nf67709907@ccit.arizona.edu      than mingling between G7 races.\" -- robohen\n\n   Things One Wishes to See\n     The moon, flowers, the face of a dear one.\n     Well-performed No.\n     The furnishings of a tea cottage.\n     The real thoughts of one's lover--and her letter.\n     All famous places.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8445, "properties": {"category": "comp.windows.x", "text": "From: DBOHDAL@JAGUAR.ESS.HARRIS.COM\nSubject: Icon Box\nOrganization: The Internet\nLines: 9\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\nCc: DBOHDAL@expo.lcs.mit.edu\n\nDear Xperts:\n\n  I want to place a specific group of icons in an icon box and\nhave my other icons appear outside of the box.  Does anyone\nknow if there's a way I can do this??  I'm using X11R5 and\nMotif 1.2.1.\n\nThanks!\ndbohdal@jaguar.ess.harris.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.401+0000", "event": "documents", "entityId": 8446, "properties": {"category": "rec.sport.baseball", "text": "From: davewood@bruno.cs.colorado.edu (David Rex Wood)\nSubject: Rockies need some relief\nNntp-Posting-Host: bruno.cs.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 13\n\nOnce again, the Rockies bullpen fell apart.  Andy Ashby pitched six (somewhat\nshaky) innings giving up just one run.  Then game the dreaded relief.  Three\npicthers combined to give up 3 runs (one each I believe) in the 7th inning\nand blew the save opportunity.  (Final was 4-2 vs Expos).\n\nDespite their problems in the pen, I think the Rockies are a team that wont\nbe taken lightly.  Going into today's game, the had the league's leading\nhitter and RBI man (Galarraga), two of the leaders in stolen bases (Young\nand Cole) and increasingly strong starting pitching.\n-- \n-------------------------------------------------------------------------------\nDavid Rex Wood -- davewood@cs.colorado.edu -- University of Colorado at Boulder\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8447, "properties": {"category": "rec.motorcycles", "text": "From: randy@megatek.com (Randy Davis)\nSubject: Re: V-max handling request\nReply-To: randy@megatek.com\nOrganization: Megatek Corporation, San Diego, California\nLines: 22\n\nIn article <1993Apr15.232009.8534@Newbridge.COM> bradw@Newbridge.COM (Brad Warkentin) writes:\n|Zero to very fast very quickly... lastest rumor is 115 hp at the rear wheel,\n|handles like a dream in a straight line to 80-100, and then gets a tad upset\n|according to a review in Cycle World... cornering, er well, you can't have \n|everything...\n\n  Sure you can have everything, if by \"everything\" you mean fast straight line\nperformance AND handling - present day liter sport bikes have more horsepower\nand have faster 0-60 and 1/4 mile times than the V-max...  Plus, they corner\njust a bit better...\n\n| Seriously, handling is probably as good as the big standards\n|of the early 80's but not compareable to whats state of the art these days.\n\n  Very true.\n\nRandy Davis                            Email: randy@megatek.com\nZX-11 #00072 Pilot                            {uunet!ucsd}!megatek!randy\nDoD #0013\n\n       \"But, this one goes to *eleven*...\" - Nigel Tufnel, _Spinal Tap_\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8448, "properties": {"category": "comp.windows.x", "text": "From: lehors@koala.inria.fr (Arnaud Le_Hors)\nSubject: ** Xpm 3.2g is available **\nKeywords: XPM\nOrganization: Koala Project, Bull Research France\nLines: 44\n\nOn export.lcs.mit.edu directory contrib, and avahi.inria.fr directory pub/xpm:\nxpm-3.2f-to-3.2g.patch.Z\nxpm-3.2g.tar.Z\n\n/* Copyright 1990-93 GROUPE BULL -- See license conditions in file COPYRIGHT */\n/**************************************************************************\\\n* \t\t\t\t\t\t\t\t\t   *\n*  \t\t\tHISTORY of user-visible changes\t\t\t   *\n* \t\t\t\t\t\t\t\t\t   *\n\\**************************************************************************/\n\n3.2g\t(93/04/26)\n\n    ENHANCEMENTS:\n\t- much faster close colors\n\t- piping from/to compressed files now handles GNU's gzip (.z)  format\n\t- added XpmColorKey attribute - ability to specify which visual's\n\t  colors to use (ie: now it's possible to read in a pixmap in a\n\t  color visual, but use the colors specified for monochrome).\n\t- added -mono, -grey4, -grey and -color options to sxpm to demonstrate\n\t  the XpmColorKey attribute.\n\t\t- Jason Patterson <jasonp@fitmail.qut.edu.au>\n\n    BUGS CORRECTED:\n\t- fixed bug where redefining \"None\" as a pixel stopped mask generation\n\t- minor SVR4 defines for <string.h>\n\t- fixed annoying closecolor bug related to read/write color cells\n\t- fixed minor bug in color value -> pixel overloading\n\t- manual updated to include new red/green/blue closeness attributes\n\t\t- Jason Patterson <jasonp@fitmail.qut.edu.au>\n\n\t- the top Imakefile was missing the depend target\n\t- sxpm/Imakefile fixed so that -L../lib is set before the standard\n\t  library location.\n\t\t- Vivek Khera <khera@cs.duke.edu>\n\n\t- lib/xpmP.h now defines bcopy as memcpy for VMS (required by recent\n\t  versions of VMS)\n\t\t- J. Daniel Smith <dsmith@ann-arbor.applicon.slb.com>\n\n\t- the lib/Imakefile didn't work with X11R4.\n\n-- \n Arnaud LE HORS - lehors@sophia.inria.fr - BULL Research France, Koala Project\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8449, "properties": {"category": "rec.motorcycles", "text": "From: MJMUISE@1302.watstar.uwaterloo.ca (Mike Muise)\nSubject: Re: Drinking and Riding\nLines: 19\nOrganization: Waterloo Engineering\n\nIn article <C4wKBp.B9w@eskimo.com>, maven@eskimo.com (Norman Hamer) writes:\n>  What is a general rule of thumb for sobriety and cycling? Couple hours \n> after you \"feel\" sober? What? Or should I just work with \"If I drink \n> tonight, I don't ride until tomorrow\"?\n\n1 hr/drink for the first 4 drinks.\n1.5 hours/drink for the next 6 drinks.\n2 hours/drink for the rest.\n\nThese are fairly cautious guidelines, and will work even if you happen to \nhave a low tolerance or body mass.\nI think the cops and \"Don't You Dare Drink & Drive\" (tm) commercials will \nusually say 1hr/drink in general, but after about 5 drinks and 5 hrs, you \ncould very well be over the legal limit. \nWatch yourself.\n-Mike\n  ________________________________________________\n / Mike Muise / mjmuise@1302.watstar.uwaterloo.ca \\ no quotes, no jokes,\n \\ Electrical Engineering, University of Waterloo / no disclaimer, no fear.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8450, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Magellan Update - 04/23/93\nOrganization: Jet Propulsion Laboratory\nLines: 34\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: Magellan, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nForwarded from Doug Griffith, Magellan Project Manager\n\n                     MAGELLAN STATUS REPORT\n                         April 23, 1993\n\n1.  The Magellan spacecraft continues to operate normally, gathering\ngravity data to plot the density variations of Venus in the\nmid-latitudes.  The solar panel offpoint was returned to zero degrees\nand spacecraft temperatures dropped 2-3 degrees C.\n\n2.  An end-to-end test of the Delayed Aerobraking Data readout\nprocess was conducted this week in preparation for the Transition\nExperiment.  There was some difficulty locking up to the data frames,\nand engineers are presently checking whether the problem was in\nequipment at the tracking station.\n\n3.  Magellan has completed 7277 orbits of Venus and is now 32 days\nfrom the end of Cycle 4 and the start of the Transition Experiment.\n\n4.  Magellan scientists were participating in the Brown-Vernadsky\nMicrosymposium at Brown University in Providence, RI, this week.  This\njoint meeting of U.S. and Russian Venus researchers has been\ncontinuing for many years.\n\n5.  A three-day simulation of Transition Experiment aerobraking\nactivities is planned for next week, including Orbit Trim Maneuvers\nand Starcal (Star calibration) Orbits.\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8451, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: Once tapped, your code is no good any more.\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nDistribution: na\nLines: 99\n\nstrnlght@netcom.com (David Sternlight) writes:\n\n> What follows is my opinion. It is not asserted to be \"the truth\" so no\n> flames, please. \n\nIt is incompetent, like almost anything you have posted here, so\nyou'll be flamed, sorry.\n\n> It comes out of a background of 20 years as a senior\n> corporate staff executive in two Fortune 50 companies.\n\n%/$( your \"20 years of background in two Fortune 50 companies\"; I've\nlived 30 years under a totalitarian regime, and boy, I *can* recognize\na totalitarian plot when I see one...\n\n> I'd be happy to use a crypto system supplied by the NSA for business, if\n> they told me it was more secure than DES, and in particular resistant to\n\nI am sure that -you- would be happy to use anything \"they\" tell you is\nsecure; we're talking about the intelligent people here... Or the\ncriminal ones, if you don't like the previous sentence... :-) Or those\nwho don't want their privacy to be guaranteed to be invadable by the\ngovernment - any current and future government, mind you...\n\n> I'd be happy to do so even with escrowed keys, provided I was happy about\n> the bona fides of the escrow agencies (the Federal Reserve would certainly\n> satisfy me, as would something set up by one of the big 8 accounting firms).\n\nEven if you ignore the nonsense of the above statement for a moment,\nand even if you are happy with such system and the current escrow\nagencies NOW, what guarantees that you'll be happy with them TOMORROW,\nwhen the government changes? Or when the current government throws\naway the sheep skin? All the sheep who are reasoning like you will get\ncaught by surprise, but it will be too late, because then cryptography\nthat is not guaranteed to be breakable by the government will already\nhave been outlawed... After all, you've already got privacy that is\nsaid to be breakable only by the law enforcement agencies, so if you\nare law-abiding, you have no reasons to use a stronger one, right? So,\nif you are using a stronger one, you have something to hide from the\nlaw enforcement agencies, right? Something unlawful, right? Therefore,\nstrong crypto is a clear idndication that you are doing something\nunlawful.\n\n> I'd trust the NSA or the President if they stated there were no trap\n\nConsidering the level of competence in cryptology that you have\ndemonstrated in your messages, you would trust just anything... And\nno, this is not an ad hominem attack; it's an attack against the\ncontents of your messages <grin>.\n\n> doors--I'd be even happier if a committee of independent experts examined\n> the thing under seal of secrecy and reported back that it was secure.\n\nAnd how do you know that these experts are not corrupted? And how do\nyou know that they will not make a mistake? And how do you know that\nthe version of the algorithm they will be let to examine is the same\nas the one that will be really used?\n\nRegarding the mistake - even the few information \"they\" have let out\nhas revealed a serious security hole in the protocol - the 80-bit key\nis split in two 40-bit ones, thus the whole system is easily\nbreakable, if you have only one of the keys.\n\n> I'd trust something from the NSA long before I'd trust something from some\n> Swiss or anybody Japanese.\n\nThe Swiss or the Japanese are motivated by simple greed; NSA is\nmotivated by their wish to control the people. That's why the drug\ndealers have their accounts in Swiss banks, instead of in American\nones. For some reason, they do trust the Swiss banks more... Guess\nthey'll trust the Swiss encryption more too... I see IDEA becoming\nsuddenly popular... :-)\n\n> This may seem surprising to some here, but I suggest most corporations would\n> feel the same way. Most/many/some (pick one) corporations have an attitude\n> that the NSA is part of our government and \"we support our government\", as\n> one very famous CEO put it to me one day.\n\nIt's not surprising at all, but not because of the reason you give.\nIt's because it is obvious that the US government has put a lot of\nmoney behind this program and it will support it. Thus, most\ncorporations will try to get their piece from the pie by supporting it\ntoo. The same good old greed. Strong encryption is not widely\navailable now not because of some plot, but because the companies\ndon't see much money in it. It will be available even less, if the\ncompanies can see any penalties associated with it...\n\n> Just some perspective from another point of view.\n\nYeah, just as I predicted, you are here again, to support the new\nsystem.\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8452, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Earl D. Fife <fife@calvin.edu>\nSubject: Re: SE/30 acc & graphics card?\nX-Xxdate: Mon, 19 Apr 93 05:13:14 GMT\nNntp-Posting-Host: 153.106.4.43\nOrganization: Calvin College\nX-Useragent: Nuntius v1.1.1d20\nLines: 25\n\nIn article <2BCF3DD9.8771@ics.uci.edu> Matt Madsen,\nmmadsen@bonnie.ics.uci.edu writes:\n> Are there any graphics cards for the SE/30 that also have, say, an 040\n> accelerator?  There seem to be plenty of accelerator/graphics cards for\n> the _SE_, but none (that I've seen) for the SE/30.\n> \n\nThe DayStar PowerCache for the SE/30 replaces the CPU with an accelerated\nCPU plus the powercache.  This leavese the PDS slot open for a video card.\nCurrenty, DayStar does not have the '040 in this configuration, but it is\ndue out early next year.  With their upgrade policy, you can get the '030\naccelerator now, and when the '040 version becomes available, you get\ncredit\nfor the one you have.  \n\nI am running their 50 MHz version with FPU along with a Radius Precision\nColor Pivot and I'm very satisfied.\n\n-------------------------------------------------------------------------\n\nEarl D. Fife          |          Department of Mathematics\nfife@calvin.edu       |          Calvin College\n(616)957-6403         |          Grand Rapids, MI 49546\n\n=========================================================================\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8453, "properties": {"category": "alt.atheism", "text": "From:  (Rashid)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nNntp-Posting-Host: 47.252.4.179\nOrganization: NH\nLines: 76\n\nIn article <1993Apr14.131032.15644@monu6.cc.monash.edu.au>,\ndarice@yoyo.cc.monash.edu.au (Fred Rice) wrote:\n> \n> It is my understanding that it is generally agreed upon by the ulema\n> [Islamic scholars] that Islamic law applies only in an Islamic country,\n> of which the UK is not.  Furthermore, to take the law into one's own\n> hands is a criminal act, as these are matters for the state, not for\n> individuals.  Nevertheless, Khomeini offered a cash prize for people to\n> take the law into their own hands -- something which, to my\n> understanding, is against Islamic law.\n\nYes, this is also my understanding of the majority of Islamic laws.\nHowever, I believe there are also certain legal rulings which, in all\nfive schools of law (4 sunni and 1 jaffari), can be levelled against\nmuslim or non-muslims, both within and outside dar-al-islam. I do\nnot know if apostasy (when accompanied by active, persistent, and\nopen hostility to Islam) falls into this category of the law. I do know\nthat\nhistorically, apostasy has very rarely been punished at all, let alone\nby the death penalty.\n\nMy understanding is that Khomeini's ruling was not based on the\nlaw of apostasy (alone). It was well known that Rushdie was an apostate\nlong before he wrote the offending novel and certainly there is no\nprecedent in the Qur'an, hadith, or in Islamic history for indiscriminantly\nlevelling death penalties for apostasy.\n\nI believe the charge levelled against Rushdie was that of \"fasad\". This\nruling applies both within and outside the domain of an\nIslamic state and it can be carried out by individuals. The reward was\nnot offered by Khomeini but by individuals within Iran.\n\n\n> Stuff deleted\n> Also, I think you are muddying the issue as you seem to assume that\n> Khomeini's fatwa was issued due to the _distribution_ of the book.  My\n> understanding is that Khomeini's fatwa was issued in response to the\n> _writing_ and _publishing_ of the book.  If my view is correct, then\n> your viewpoint that Rushdie was sentenced for a \"crime in progress\" is\n> incorrect.\n> \nI would concur that the thrust of the fatwa (from what I remember) was\nlevelled at the author and all those who assisted in the publication\nof the book. However, the charge of \"fasad\" can encompass a\nnumber of lesser charges. I remember that when diplomatic relations\nbroke off between Britain and Iran over the fatwa - Iran stressed that\nthe condemnation of the author, and the removal of the book from\ncirculation were two preliminary conditions for resolving the\n\"crisis\". But you are correct to point out that banning the book was not\nthe main thrust behind the fatwa. Islamic charges such as fasad are\nlevelled at people, not books.\n\nThe Rushdie situation was followed in Iran for several months before the\nissuance of the fatwa. Rushdie went on a media blitz,\npresenting himself as a lone knight guarding the sacred values of\nsecular democracy and mocking the foolish concerns of people\ncrazy enough to actually hold their religious beliefs as sacred. \nFanning the flames and milking the controversy to boost\nhis image and push the book, he was everywhere in the media. Then\nMuslim demonstrators in several countries were killed while\nprotesting against the book. Rushdie appeared momentarily\nconcerned, then climbed back on his media horse to once again\nattack the Muslims and defend his sacred rights. It was at this\npoint that the fatwa on \"fasad\" was issued.\n\nThe fatwa was levelled at the person of Rushdie - any actions of\nRushdie that feed the situation contribute to the legitimization of\nthe ruling. The book remains in circulation not by some independant\nwill of its own but by the will of the author and the publishers. The fatwa\nagainst the person of Rushdie encompasses his actions as well. The\ncrime was certainly a crime in progress (at many levels) and was being\nplayed out (and played up) in the the full view of the media.\n\nP.S. I'm not sure about this but I think the charge of \"shatim\" also\napplies to Rushdie and may be encompassed under the umbrella\nof the \"fasad\" ruling.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8454, "properties": {"category": "soc.religion.christian", "text": "From: weaver@chdasic.sps.mot.com (Dave Weaver)\nSubject: Re: Assurance of Hell\nLines: 29\n\nIn a previous article, lfoard@hopper.virginia.edu (Lawrence C. Foard) writes:\n>>\n>> did you know that Jesus talked more\n>> about hell than He did about heaven!  \n> \n> Thank you for this info.  What respect I had for the man now\n>      has been diminished tenfold.  I promise never again to\n>      say how wise or loving this man was...\n\nI have a hard time understanding this attitude.\n\nIf the gospels are the least bit accurate, then there can be little\ndoubt that Jesus belived hell was a reality.\n\nAs a teacher, what would be the wise and loving thing to do if people\nin your audience were headed there?  To warn them!  It would, however, \nbe rather cruel and/or sadistic to believe that such a place exists \nand then remain quiet about it.  \n\nThe only scenario I can envision in which dimished respect would be\njustified is if Jesus knew there was no such place as hell, and spoke\nabout it anyway, just to scare people. Unless you would accuse Jesus\nof this, I would encourage you to reconsider what a loving response \nis when you perceive someone to be in danger. \n\n---\nDave Weaver                  | \"He is no fool who gives what\nweaver@chdasic.sps.mot.com   |  he cannot keep to gain what he\n                             |  cannot lose.\" - Jim Elliot (1949)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8455, "properties": {"category": "rec.sport.baseball", "text": "From: jhunter@mta.ca (John Hunter)\nSubject: White Sox Mailing List?\nReply-To: jhunter@mta.ca\nOrganization: Mount Allison U, Sackville, N.B. Canada \nLines: 9\n\nHi Gang,\n\nI'd like to subscribe to the White Sox mailing list, if one exists.\nCan someone please e-mail me the address?\n\nThanks alot,\n-John\n\njhunter@mta.ca\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8456, "properties": {"category": "rec.autos", "text": "From: jcyuhn@crchh574.NoSubdomain.NoDomain (James Yuhn)\nSubject: Re: SHO clutch question (grinding noise?)\nNntp-Posting-Host: crchh574\nOrganization: BNR, Inc.\nLines: 15\n\nIn article <5243@unisql.UUCP>, wrat@unisql.UUCP (wharfie) writes:\n|> In article <C5H6F8.LDu@news.rich.bnr.ca> jcyuhn@crchh574.NoSubdomain.NoDomain\n|> (James Yuhn) writes:\n|> >   That's not the clutch you're hearing, its the gearbox. Early SHOs have\n|> >   a lot of what is referred to as 'gear rollover' noise. You can generally\n|> \n|> \tI have one of the first SHOs built, and _mine_ doesn't make\n|> this noise.\n|> \n\n   Geez wharfie, do you have to be so difficult? Mine was built in December\n'88,\n   which qualifies as pretty dang early, and it most certainly grinds away.\n \n   Jim \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8457, "properties": {"category": "sci.med", "text": "From: turpin@cs.utexas.edu (Russell Turpin)\nSubject: Re: Great Post! (was Re: Candida (yeast) Bloom...) (VERY LONG)\nSummary: How virtually?\nOrganization: CS Dept, University of Texas at Austin\nLines: 30\nNNTP-Posting-Host: im4u.cs.utexas.edu\n\n-*-----\nIn article <noringC5wzM4.41n@netcom.com> noring@netcom.com (Jon Noring) writes:\n>> ... if you can't observe or culture the yeast \"bloom\" in the\n>> gut or sinus, then there's no way to diagnose or even recognize\n>> the disease.  And I know they realize that it is virtually\n>> impossible to test for candida overbloom in any part of the body \n>> that cannot be easily observed since candida is everywhere in \n>> the body.\n\nIn article <C5y5nM.Axv@toads.pgh.pa.us> geb@cs.pitt.edu (Gordon Banks) writes:\n> You've just discovered one of the requirements for a good quack theory.\n> Find something that no one can *disprove* and then write a book saying\n> it is the cause of whatever.  Since no one can disprove it, you can\n> rake in the bucks for quite some time.  \n\nI hope Gordon Banks did not mean to imply that notions such as\nhard-to-see candida infections causing various problems should not\nbe investigated.  Many researchers have made breakthroughs by \nfiguring out how to investigate things that were previously thought\n\"virtually impossible to test for.\"\n\nIndeed, I would be surprised if \"candida overbloom\" were such a\nphenomena.  I would think that candida would produce signature\nbyproducts whose measure would then set a lower bound on the \nextent of recent infection.  I realize this might get quite \ntricky and difficult, probably expensive, and likely inconvenient\nor uncomfortable to the subjects, but that is not the same as \n\"virtually impossible.\"\n\nRussell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8458, "properties": {"category": "sci.crypt", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nLines: 42\n\nIn article <1r47l1INN8gq@senator-bedfellow.MIT.EDU> jfc@athena.mit.edu (John F Carr) writes:\n>\n>In most cases information you come by properly is yours to use as you wish,\n>but there are certainly exceptions.  If you write a paper which includes\n>sufficiently detailed information on how to build a nuclear weapon, it is\n>classified.  As I understand the law, nuclear weapons design is\n>_automatically_ classified even if you do the work yourself.  I believe you\n>are then not allowed to read your own paper.\n>\n\tHate to mess up your point, but it is incredibly easy to learn how\nto make a nuclear weapon.  The hard part is getting the radioactives to\nput in it.  Have you ever read Tom Clancy's _The Sum of All Fears_?  It\ndescribes in great detail how a Palestinian terrorist group constructed a\nnuclear bomb using stolen (actually found) plutonium, with some help from\nan East German nuclear physicist.  For some non fiction, read Tom Clancy's\narticle _Five Minutes Till Midnight_.  It shows how a terrorist group could\nconstruct a nuke using Neptunium, a low grade radioactive waste product\ndumped in toxic waste sites and forgotten about.  He also claims information\non constructing a nuke is easily found in any large library.  Sounds\nkind of scary, doesn't it? :-(\n\n>A less serious example: if you tell drivers about a speed trap they are\n>about to run into, you can be fined, even though you might argue that you\n>broke no law when you discovered the location of the policeman.  The charge\n>is interfering with a police officer, which is quite similar what you would\n>be doing by reverse engineering the Clipper chip.\n>\n>Don't tell me that you think this violates the Constitution -- find some\n>court cases which have struck down such laws.  Many people would not be\n>comforted by the fact that the government violated their rights when it\n>imprisoned them.\n>\n\n\tDon't know whether you could get busted for warning of a speedtrap.\n\nDoug Holland\n\n-- \n----------------------------------------------------------------------------\n|  Doug Holland                | Anyone who tries to take away my freedom  |\n|  holland@cs.colostate.edu    | of speech will have to pry it from my     |\n|  PGP key available by E-mail | cold, dead lips!!                         |\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8459, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Atlanta Hockey Hell!!\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 24\n\nMamatha Devineni Ratnam <mr47+@andrew.cmu.edu> writes:\n>\n>I can't understand how someone in the sports dept. can't even recognise\n>the name of playoffs shown on the very same station he works for.\n\nYou think that's bad ... one year, we had all three New York teams in\nthe playoffs and the cableco operator (SCNY once shared a channel with\nBET but someone forgot to throw the switch at 6PM) didn't know what I\nwas talking about ...\n\nWhile it's nice that the NHL is back on American network TV, it faces\nthe same problems as it did with the All Star game.  Local preemptions\nand zero promotion (okay, I don't watch that much TV so I'm just foaming\nall right?).  The league should have made sure that it was solid on cable\nbefore going to the networks.  In year one of the new ESPN contract, the\nsaturation coverage of SCA (all other games shown to completion, like\nthe Quebec-Montreal and Sabres-Bruins overtimes) is missed around here.\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8460, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 01/14In response to the requests for cool bitmaps I am posting one.\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 978\n\n\nDue to the resolution and size it is in 14 parts.\n\nThis is a uuencoded bitmap.  960X600 256 colors.\nThe picture is a marbled gazebo on a desert with blue sky background.\nThe size is just right for centered wallpaper on a 1024x768 display\nbecause it leaves a border at the bottom just big enough for icons\nto fit in without being on top of the picture. Reguarding image\nquality and resolution - I have not seen much better.\n\nFor those of you who haven't worked with pieced image files, here\nis how to put it back together.\n\t1. save the 14 parts to 14 individual files\n\t2. use a text editor to remove the header and footer\n\t   in each file.\n\t3. concatinate all the parts into a single file\n\t4. uudecode the file\nThere are tools available to do this without the hassle such as\nuuconvert (UNIX) and UUcoder (Windows).  If neccesary I could post\nthese tools or where to get them by FTP -- let me know.\n------------ Part 1 of 14 ------------\nbegin 644 ROMAN.BMP\nM0DT:S0@``````!H#```,````P`-8`@$`\"``H,%4L*%DX2%G*E95(4'U9:8&%\nM@?HT-%T,,$A`55U]?>K*=769QLY(1,Y9<77*RLJJUN(P/%UI@8D8&%E(3%D0\nM/%VZNKI55?)U@<[*JJH42&U$55DH*'&RVOH857T0/&$X4%6-KL:JSOH@>;:)\nMB>HT/%D42'%=7<Y$1'V9F?_*B8DL,%D858&=KO^-MKH<89&5H?_*:6DDA<HL\nM,%W*OKX8584\\2&%U<?I$0%DT-'$<896%H<X@;:7*G9V-I>)(684D>;8<89FA\nMI:65NM9QA;(@;:H\\2&G*?7UYB<8D>;IYD;8T1%G&QL9E=94HA<H01&504(59\nM5?\\H)%W*LK*VMK9978E]A?I,55DHA<XP,&'&^OI$2%F)D?(44'G*D9%]F:%E\nM8?HP.%5(885,68FAMOIM>;+*<7'*QL:VXO\\878V5G>Y`4%UA<84<:9TX1%T0\nM.%EU?<K*I:441&D<::$84'E`/%D@(%T@=;(X,%E,887*A84D@<*)F?(84'V^\nM]OHX3%5(76EU=>(@*%!I;;(D(%4@=;8<78W*966AQNK\"PL(D@<;*NKJ1B?]]\nMH:5MA=XHC=8P0%D<79&RLK)5685]>?HL+%T@::$\\/'&1D?+*F9F9LO^!E>I0\nM4*6AH:$\\,%EM:>J5KN)A8;I(4%D\\1&6=LO;*>7EI=:ZZZOH,-%`X.%E$4&DT\nM-*&EOOH00&&=NNHLC=;*KJZZZO\\43'&5I?I9686ESMZRYNX00&5$/&6JVNX4\nM3'7*C8T<'%G2^O^!D<X8685$1%EIA9D43'DX0%7*;6W*PL*VWOH868E`3%F^\nMOKX<99DT2%5M:?](2'U588U(65TP-%D@<:K*H:&!H;8\\55FNKJY]?=HD?;H<\nM99TX0%V9I?^-KJZESNX@<:Y95=+*@8&1NKYM;<IA=7DD?;Y56:55896-KK(H\nMB<YUD9U077E096E$0*6RTOK*MK8X0&6^\\OI(4'FJQOJ9QL8HB=*9D?](2/(`\nM``````````````````````````````````````#':6DO.FDZ.CJ1D4&1.I&&\nM.I&1D<K*+\\J1RI%!.B_8RCK8.LHZV,HZ.CHZ02\\Z.MC8RM@ZRCK*RMC8.D%S\nMRD'*.G,Z<W-S<T%MV-A!RG-S;=B6<]AS<\\K*;=B6/,ISRMAMEM@\\EI8\\/&V6\nMV);8<SQS<VW8<VW8V,K*RLISECQMV',\\V-AM/&U!/,I!<W-M<VW8RMC*ECS8\nMRMC*.G/*V&W8RLIS<W/*<T&6<\\IM<]A!;7,ZRMAS<W/*RD'8;3HZRMC*V#K*\nMV-C8RMC*.FW8V#HO.B_8.LK8.MC8RLHORMC*;<HZV#HO.CK8+SK*.B\\OV#K8\nM+VTOV-C8.B_803K8RLHZD=@Z+SK8.CK8.LK*.LHZ;3HZRB_8+SK8V#K8V-C*\nM.B\\ZRCHO+\\HZ;<HZ.CK8.CK8.LHZ.LK*RLHZ<W/*06W*;3K*.CK*V-C8;<IM\nM;3IS;=AS.D'*;9;*RLIS;<K8RMASV&W8V-AS<W-S<W-SRG,\\;<J6/'-S<W-M\nM/',\\1=AS/#R6/',\\V#QM/&US<Y8\\/#P\\13S1<]&6/#QS/$71/-W=T9;=T3P\\\nM<T71/-%%1='1/-%%/-W1/#P\\T3S=13S1W=UWT44\\=T7=T7=WW='=W7=%=]W1\nMW=UWT=V%=X7=W='=T=UWA4\"%A4E`=]W=0$E)W4!W=W>%W=UWW7=)=W=`=W=W\nM2>-`A4!)2>/C=W?CA>-)=^-)22-WXTE)XTGCXX6%0.-)0$!)X^-)X^/C2>/C\nMXTE[X^/CXTGCX^/C>^/CX^/CBDF*24E[BN/7XXKCBN.*BN/CX^-[XXKCXWLR\nMX^/CBHJ*,GOC>S).>^/C,HI.XS**,GN*3GN*BDXRBHI8,GN*6(I8BHJ*BC(R\nM6(J*>S**BDXRBHI.,O/S3DY.Y_-.BN=.,HJ*6//G\\_.*,DY8YS)8Y_-8\\TY.\nMYS)8,O/S,C).\\TXR6%B/CUCS6(_S3ECS6%B/C_./YX]8C^?GC^?G6//GC_/S\nMY_./6.>/\\X_S6(_SC^?S6(_SCUA8\\^?S\\X^/C_./\\UB/6.>/\\_./\\_./6(^/\nMCX^/6(^/CUB/CX_GY_/G\\X]8CUB/\\X]8Y_-8CUB/\\_/GC_./CUA8\\X^/C_./\nM\\X^/C^?SCX^/6/-8CX]8YUA8CX_S6//S6%B/\\_/S\\_-.\\X]86.?GC^?G\\UB/\nM\\X_S6(_S\\_-.CX_S\\_-.C_-8Y^?G\\_/SY^>/6/-8Y^?S\\X_SCUCSYTZ/\\X^/\nM3H_S\\_/GY^=.3H_S3EB/Y_/SCX_S\\X^/\\X^/Y^?SC_/GC_./\\_./\\X^/\\X^&\nM:<<Z+SJ1.CK'+X9I.I&1.B\\Z.CHZ.FG*RLJ1RCI!D<HZ.B_*RD'*RCK*+R_*\nMRCIM+SIM.CHZ<\\K8.G/8<SHZ<\\K*V,IS06W*;3ISV-C*RG-S;<ISEI8Z<VW*\nMECS8RLIM<SS*;<K8EMC*V#QS<W/8V&W8EG-S;<IS<W/*/,H\\V);*RG/8<\\K*\nM03S*RFUS<W/8V);8V'-SV,J6<\\K8<\\IM<]ASRG/*<]C*;=C*<SK*.CK8.LIM\nM<]ASRLK8RMC803K*.LHZ.MAS+SK8V-@ORMC8RMC8.M@Z+\\HZV&TORLK8V,HO\nM.CK8RLK*V,HZ.LHORCI!+SHZ.CHO.LHZD<HOV\"]!.M@O.CK*+SHOV,K8V-@Z\nM.B_*.LK*V-@ORCK*.CHO+SK8;4'*.LHZ.FTZV-AMRLHZ03K8;<K*.CHZ.G,Z\nM<\\K*RFTZRCIS;6W*RMC*V,K8RD'*<T'*<\\I!RM@Z<\\K*/'/8;=@\\;<K*RFUS\nMRG-S<W-SV):6/#P\\V)9M<]AS;6V6<SP\\/-AMV'-%/'-%ED5S13P\\13P\\/#QS\nM13S1/#P\\T3Q%<]$\\W=U%W3R61='=/-$\\/-W1T=%%W3S=/#S=1=T\\1=W117?1\nMW=W=W=W=W7?==]W=W7=WW=%WW=%W=]%WW87=W=%W=W>%W7?=W=UWA=UWW7?=\nM27<C=W=`=W=W24E)=W>%27=`=TE)=TGCA4GC24E)=^-)24E)287CA4!)24E)\nM24GCXTE)0.-)X^-`0.-)X^-)X^-)2>/CXTE)>^/CXTF*>^-[>^/CX^/CBN/C\nMX^/CXTF*>XI[XXKCX^/CXWOC>WLRBGM.,C**BHI.BN,R>WN*BN/C,HHR3HHR\nMBN.*>XJ*>S)83HI[,C**,HJ*3DXRBEA.,HI8YS).BO-86%@R6(KGBC)8\\_-.\nMBN>*Y^=8BO-8,C+S\\_,R3O-8\\S+S,C*/6/,R\\T[S6$Y.YTY.\\^=86//S\\^?G\nM3H]8C_-8\\_/S\\_/GC_/S\\^?SYX]8CX_G\\X^/Y^?S6//SY^?SC_/SC^?S6(^/\nMC^?GYUCS\\UCS\\_./Y_/SCX^/CX_G\\X_SC^>/C^>/C^>/6(_G\\_/S6//S\\X_G\nMY_./YX_G\\X^/\\UCSY_./\\_/S\\^>/C_/SCX_GC_./\\X]8C_./CUA83EB/C^?G\nMCX_G\\X^/YUCG\\X_S6/-8\\X^/CTY8\\^>/\\X^/\\X_SC_/SCX_SC_-.Y_-.3DY.\nMCUB/\\_./6(^/YUCSC_/S\\_-.C^=8CX_S\\_/S\\_./C_/S\\^>/\\_/S\\^=8C_./\nM\\^>/CX_G\\_./YX_S\\^=I.I$Z:3HZD2]I:6F1+T%I:88Z.CK*.CJ1AI&1RCK*\nMRLJ1D3HZ+Y%!RLHZ.LK*.CK*+\\HZRM@Z;3HZV#K8.LHZ.M@Z<\\K8<W/*RLK*\nMRFW*V&US.G/*<\\K*V-ASV-AS<]C*RCIM<\\K8RG/*<VUSRLJ6V$'*;7-SRG-S\nM<W-S;7.6EG-SV-B6<]AS<\\IS.G/8RMASRG/8V#K8RMC*.LK8;=C8<]C8V&W8\nMRLK*.LK8RCK*.FW8RLHZRMAS<VTZ;7/8V#K8RCK*.LK8.LHZV#K8V-C8RB\\Z\nMV#K8.MC8RMC*+R_*+R\\ZRM@ORLIM.LK8V,K*D=C*RMB1.CK*RLI!D3K*.B\\O\nM.LHZ.LK*.I'*+SK8.LK8V,HZ.D'*.LK8V,IM.CIM.CK8V\"_8;6W*.MC*RFW*\nMRCHZ.CHZ.M@Z.CK8V,K*.MASRCI!0<ISRMC*V,K8.LISRLK*0=ASV#K8RLIS\nM<W-SV-ASRG/*RM@\\RI8\\RCS8<\\H\\ECS8EG,\\V&T\\<]AS145M;6T\\<W-%ECQM\nM<T78V#P\\/'-S<Y8\\/#R613QS144\\17/1T=&6/-T\\/-W=/);1/#P\\/-T\\T=U%\nM/-'=/-%%W3Q%13S1W3Q%/-U%1=W=145WW7?=W7=%=W?=1=UWW47==]UWA=W1\nMT7?==]W==W=WT7=W=T!WW85W2=U`0$!W24\"%W4EW=]UWA4!WA4E`2>-)0'=`\nM24GC0$E`24!)XTGC24E`24E)XTEW0$GC0..%2>/C0.-`XTE)XWOC24E`XWM)\nMX^-)2>-)>TE[XTE)BGM)>WN*BDE)X^-)>^/C>^.*X^.*,HJ*X^/C,HHRBHI[\nMXT[CXWOC,HI[>^.*,HJ*3N.*>WM[,C**,N.*BGN*3EA[6(J*,C**BE@RYS)8\nM3N<RYXI.6(I8BHKGYUA.YXI86%CS\\_,R,HKS\\_-.6$[S\\S).\\^=.Y_/G\\^?S\nM3O-.,H]8\\T[G\\^>/\\_/GYUCS\\_/SC^?SYX_S6.>/CX_SCUA8CUB/\\^?S\\X^/\nM\\_./CX_SCX^/C_/SC_/SCX]8C_/GC^>/Y^>/C_./\\_/S\\X_G\\X^/CX_G\\_./\nMCX^/CX_GCX]8\\X_SY_-8\\X^/CX^/\\X^/C_/SYUCSCX^/\\_-8C_-8YX^/C_./\nM6(_SCX^/CT[S\\_/S\\_/S\\_-83N?GC^>/3H^/\\_-8CUB/Y_-86//GC_/SYX_S\nM\\X_SCX_G\\UB/C_/SYX_S3N?S6(_S6%CSCX]8\\^?GCX^/\\_/SYX_G6//S\\_/S\nMC^>/6%B/C^>/CUB/\\UB/C_/SYX_GCUCS\\X_SC^>1QVG'QY&1D2\\ZAI%I.L=I\nM:9%IRH8ZRLK*RFDZD4$ZD3HZD<I!D9'8D<K*RLJ1RLK803K8RMC803HZV\"_*\nMRLK*.CK*V-C8.LHZV'-!V,IS.D%M.FW*.LIS<VW*V,K8.LK*EFUSV-AS.FUM\nM;7/*.G-SRCK8<SK*RFW*RLHZ<W/*<SISRG-SV,IS<W-SRFUSRMASV,ISRG-S\nMV,HZ<VUS.D%MRG/8.G/*RMC8.G,ZRLK8RCHZ.CHZRD'*;7,ZRLK*V-C*+\\K*\nMRLIMV#K*RB\\ORCK*V-@ZRD$Z.LHZV\"_*V-C8V#HZ+]C8V#K8.B_*+SK*V,HZ\nMRB\\ZRI'8RB^1RLK804$O0<HZRLHZ+R_8V,HZ+\\K8+\\K*RM@Z;2\\ORCK8V,HZ\nMV,K*.CHZ.FW*RCK*.LK*.LK*.MC8V,HZ;<K8V,HZ;3IS<W-SV$'*V&TZRMA!\nM<]C8<Y9M<]ASV,K*RFW*EG-SRMAMRG-SRLK8<W.6<SQSV,H\\<W/8/#S8EG,\\\nM/#Q%;=AM/'-%EG-SEG-%<T4\\<VV617,\\<SQ%T7-S<SS1/#S1<SP\\<SP\\144\\\nM/-T\\T7,\\W3Q%13Q%/$4\\/-%%1=%%W=W=W3P\\T=W1=SS1W45%T=W==]U%T=%W\nM=]W=W='==]%W=]'=T='1A='=W7>%W=U`0(71=W=WA85WW7?=0$`C=W=`W=U)\nM=W=W=]UWW4!`W4!)24E)24E)27=)A7=W=X5)0'?C287C0.-WX^-)0(5)24!`\nM0(5)0./C0./C2>/C24!)24#C24E[X^/C>TGCX^/CX^/CX^-[28J*X^/CX^/C\nMXWN*BGN*BN/C>XJ*X^/C,GOCXS+CBHKC>WN*XTZ*3HKC,HJ*3N,R6'N*3N?G\nM,N=[,HI8BEB*BDY8BN>*,HI86.<RBDZ*\\TXRBECSBHI8\\_/S3E@RYTXR\\T[S\nM,C*/Y^=.\\_,R3EA8YUA8YUCS3DZ/Y^>/\\_/S3ECS3ECS\\_/S\\_./\\X_SC_/S\nM6/-8CX_S\\UCSC^?SC_/S\\^>/6.>/\\UB/\\X]86//SYX_SC_/SCX_S\\_/S6(^/\nMCX^/\\X^/C_/S\\^>/6.?SY_./Y_/S6.?S\\X^/\\_/SCUA8YUA8CX^/C_-8CUCS\nMC_/SY_/SCUCS6/-8CUCSY_/G6//S\\_-8\\_/SC_-8CX_G3EA86%B/C_-.6(_S\nMCUCGYX_S3O/G\\_./\\UA8\\X]8\\^?S\\^?GCX^/6%CSCUCSY_/S\\TZ/CTY.CX^/\nMY_/GC^?G3N>/\\^>/YX_S\\_./6/-8C_/GC_/GC_/S\\UCGYX^/C^?SY_./CX]I\nMD9$ZD2\\OQVG'.I&1D9$ZD6EI09%I.CJ&AI$ZACHZRCHZ.LHZ.CK*RI'*V\"^1\nM.CHZ.CJ1V#K8.LK8.CK*V&W*03K*.MC*;<HZ03K8RM@ZRCISRCHZ;=A!V-AS\nM<VUS;=ASRFW*;=ASRG/8.LK*V,K*RM@ZV'/*<\\K*RLISV,K*V'/8V&W*V-C*\nMRCK8RG/*<\\K*RLISRCISRMC*.FUM<\\K8RFTZ.MAS;<K*RFU!.LK*RM@Z.LK*\nM<\\K*RLK*V-C*.MC8.D'8RCK*V#HZRLK8RD'*V\"_*.B_8RLK8RM@O.CHZ.LK*\nM.LJ1V#HZRI$ORCJ1+R_*+]C8.I$Z.B\\ORCK*+SK*.CK*.CI!.LK*V#HZ.D$Z\nMRFTZRM@Z.MC8V,HOV,HZ+SK*.MC*;3HZ03HZ;=AS.LK*<]AS<W/8<\\K*.CK*\nM<\\K*<\\ISRMC*RMA!RLK*RLIS<\\IMRI;*RLISV,H\\<\\K*;<J6<SQSEMC8<\\K8\nM<]C*V'/*RCR6<W,\\/,IM/#Q%V#P\\/#P\\;3QM17-MV#Q%1=$\\/$5M/)9%198\\\nMT99S1='1<SQ%T3P\\ED6613R613QS<]U%/#P\\/-%%13Q%13S=13P\\W44\\W=U%\nM13P\\1='1/'=%W=U%W45%145%1=UWW47=T=UW=]UWT=&%W7=W=W>%W=W1T4!`\nMT=W=0'?==]V%=]UW0(5`2=U)A4!`=TEW0$EW2=V%=X5WA7=)A4#=24#C27=)\nM24!)0$E)XT!W2>-`XX5`XW<C(TGC2>/CXX77X^/CXTGCXTE)XTE[XWM)X^-)\nMXTE)X^.*BM?C24GC>^.*X^/CXTGCXWM[BN.*,N-[X^-[BC**,C+C,N-[3D[C\nM>XKC,GOCBEA[,DXR,HI[3C).3GM.,C).YXHRBE@R3HHRYXI.BC+SBC).BHJ*\nMYTZ*Y_-.3N?G6#(RYTXR6%CG\\^?S6$Y86.?SY_/G6//SCX^/\\TY.C_/S6.?S\nMY_-.6/./C^?SY_./YUB/\\X]8\\UCS\\_./C_/GCUB/C_/SCX_S\\X_S\\X]8C^?G\nMY_/GCX_S\\UB/CX^/C_./\\^?SCX^/C_./YX_G\\_/S6.>/C_/SC_-8C_/S\\X_S\nM6/-86(^/CX^/CUCGC_./\\X_SYX_S6.?S\\_./C^?SCX^/CX_SC_/GCTY8\\X_S\nM\\X]8\\_/SC_/SY_/SYX_S6/-8\\_./\\X_S\\X_SYX]86.=8\\^?GYX_G\\_/G\\TY.\nMC^=8C_/GY^?S\\X_S\\X^/\\X]8\\_/SY_/S\\_/SY_-8\\^=8\\^=8Y_/S\\_./CX_S\nMC_/SCX^/\\X^/\\X]8YX^1D6G'D6F&:88OQSII+R_'D9$OD3HZ:4'*:6F&.LJ1\nMD89!03HZ.CJ1+Y&1.B\\ZRMC*D2_*RCHZV,K8.B\\Z.M@Z.FW8V#K*.CK8RMC*\nMV,K*<\\K8RCHZ.LIS;6TZ.MAM<\\IS0<K*RG/*RG,Z<]ASRCHZ.MC*V,IS.CIM\nM<VTZV,K8V$'8RCK*RLK8V-AMV-C8.LHZRFW*<W,ZRLHZ<\\HZ.CIM.CI!V&W8\nMV&UMRCIS.B_8;6W*;3HZ+R]MRLK*RLHO+SK*V,K*+\\K80=@Z.CHZ.I$Z.LK*\nM+SHZ04$Z+R\\O.B_*V-C*RLK*.LHO.CJ1V-B1V\"\\Z+Y$ORLK*.LK*+\\K*.MC*\nMRCI!RB\\Z+]C*RCK*+\\I!V-C*+SIM+SHORD'80=C*V,HZRMAS.CHZV,ISRD$Z\nMRMC8.CK8V&W8V'/*RCK*V'/*V#K8;<ISRG-SELISRMC8V',Z<Y;*RMAMRFW*\nM/,H\\V-ASECS8/,ISRCS*/-C8EG,\\/'.6/)9MV-AM<W-S<T5%V#S8<Y:61=A%\nM;3P\\17,\\/$5S/#QSEM%SECS1/#P\\/$4\\EG-%/)8\\13P\\<SP\\1=US1=$\\T3P\\\nM/#P\\W3S=1=W=T471T47=/-$\\T3P\\1=$\\=]'=1=UW13Q%T=W==]%WT=W==]%W\nM17=%T471=W?=T7=W17>%=]UWT7>%=]W=T85`T87=T7?==]V%285W0'>%=TE`\nM=T!W0(5W27=W=W=)(T!WXW=)XW=)0$GC285)XTEWXTE)24E`A4GCX^.%X^/C\nM2>-)X^-`2>/C24!)24E)27OCXTGCXXKC2>/CXTGCXWOCXXI[BHKCX^-[XWOC\nMXXKC,GM[BHHRBN.*>XKC>^,RXXI[BHI[XTZ*6(I.BDY8BHI[BDY8>WM86(I[\nM,C).3O,R6.>*YT[S3C)8\\TZ*BC(RYT[GBEA8\\_/S,D[G3C+S6$XR,D[S,N<R\nM\\_-.CT[S6%CS\\_/S\\TY83O-.YX_S\\_./\\_./6//SCX^/\\X^/C^>/Y_/S\\UB/\nMC^?S6%B/6(_SC_./Y_/GC_/SC_./\\X_SCX_SCX^/C^?SCX]8\\UB/\\^>/Y_./\nM\\_/SYX^/CX_GC_./CX^/CX_S\\_./\\X_SC^>/6/-8\\X_GCX_GCX^/YX^/CX_G\nM6//S6/-8\\X]8CX_GCX]8CT[S\\_/G3N?S6%B/6%A83N?S\\_/G\\_/SYX_S\\^?S\nMY^>/6(_S\\X_S\\X_SY^>/\\TY83N?SCT[S\\X_SCUA83O/S\\^?G6(]8CUB/CT[G\nM6/-8\\_/S6(]8\\UCG\\^>/\\UCSC_/G\\X^/Y_./Y_-I:2_'QX:1.L<Z+R^1AL<O\nM.FF1AL?'QSIID9&&+SHO:9$Z+SJ1RLIID3IIRLHZ.LHZACK*D<I!RI$ZRCHZ\nM.CHZ02_*.CHZV#K8.MC8RLK*.LIM;<K8;=@ZV-@ZRCHZV-C*V,ISV-C*V#IS\nMRCIS<\\K803HZRCISV-AM.FUMRCK8.CI!;6UMRLHZ.G/*V#K*V#K8.MA!.CHZ\nM.LK*.D$Z.CK8.CIMV,HZ.MC8;3HZRFW*V,K*.CK*RCK8;3HZV,HZ03IMV,K8\nM;2_*RI$O.LK8RB_*.I$ORLJ1V,K8V-C*RCHZ.CK8V#K8+\\HZV#HZ0=@Z.CHZ\nMRLK8RLHZRLK*+SHZV-@Z.B_8RLHZ.CHZV\"\\Z.CHORCHZ+SHO.CK8V-@ORM@Z\nM;4$Z0<HZ;<K*RLK*.LK*RLK8;3IS<SHZV'-M<]C8;7/8V-AMV&US.MAS04%!\nM;=ASV#P\\RMAM<\\H\\V-C*<W/8<\\H\\V-C8;=ASRMAM/',\\/#S8<SS8<VW8;3P\\\nM<W-SV):617-%13QS<W-M/',\\/'-%ECQ%;99S<VT\\<W-ST=$\\/#P\\<W-%T3QS\nMW=$\\W=$\\T3S=/$5ST44\\1=$\\W45%W3S=T=W1W4711='=/#P\\/-U%W=W=1=T\\\nMW='=17?=W47==SQWW=W1W7?=W7?11471=]%WW47==W?1=W>%W7?=T85W=]W=\nM=]UWA='=W4#1=X7=W=UW0'=`=W=WW85W287=24#=27=`=^.%0(6%=W=`A4!W\nM(T\"%286%0..%2>-W24!`XX5)X^-)2==`2>-`24E[24E)XTGCXTE[XWOC2>.*\nMX^.*X^/CX^.*XXJ*XWN*>XJ*>WLRX^/CXS+CXXHR,N,RXWM.XWLR3HI.,EA8\nM3HHR,EA8,HJ*6#(R6(J*6(HRYXI86%B*\\S**,N?GY^=8\\XKG6%@R\\S)86/,R\nM3O,R6#).\\_-83DY.,O-.\\X].\\X_SYX^/6//SCUA.YUCSC_-8C^?SYT[G\\UB/\nMY^>/6%B/C_/GYX^/\\_./Y_./CX^/Y_./C_./CUB/\\X_S\\X_SCX_SCX^/\\X^/\nM\\X_GYX^/Y^>/\\X_G\\_./\\_./CX^/\\X^/YX^/C^>/C^?SY_./\\X^/YX^/6%CS\nM6(_SC_/GYX_S\\X_SCX_SC_./CX]8\\X_GY_./\\UCS\\X]86(_S\\_-8\\^?GYTY8\nMYX_SCUCGCX].\\_/S6%CSCX^/6(_S6//S3H]8CUCS\\^>/\\_-.\\^?S6/./\\UA8\nM6(_G\\_/SYX].\\^?SCX^/6.?S6//G\\X_G6(]8YX^/\\^>/\\_/GC_/S\\_./\\_.1\nM:9%IQ\\=I.L>1.L=ID6DZ.H;'.I$ZD3HZ:6DZ.FF&D3II+X8Z.LHO.B\\O+\\K*\nMRB\\Z.I$ZRLHO.I$ZRI&1D2_*.LK8D<HZ+]C*.D'8V#HZV&W*V,K8.LIMV\"\\Z\nMRFTOV,K*RG,ZRCIMRCK*.D'*<SK*<SHZRLK*V-@ZRD$ZRCHZ.D'*V#IM.CHZ\nM0<K*<]C*V#K*RCK8RG/*RCHZ;=C*06UMV$%M0=@Z.CHZV,K8RD'8.M@OV\"]!\nMRM@ZV#HZRCK*.MC8RMC*.CK8+\\HZ+\\HZ.LHZRLHO0=@ZRCHZ+R_*RCHZD3K*\nM.CK*RB\\ZRM@ZRCHZD3HORMB1V\"\\ZRB\\ZRLK*V#HZV#K*V,IM+\\HZRCK8.LHO\nMRCK*RMC*.LIMRLK8;3K*RMC8V,K8.LK*<]C*V#K8<VTZ.MC8V'-!RLIS<]C*\nMRMC80<K*<]C*RG/8<\\ISV'/8RG/8EMAM/-ASRG/8RG/8<]B6;<H\\<SP\\<\\IM\nM;7/*;3P\\;7/8/'-S/#P\\1=C8<SP\\<W-SV#P\\<T5%13R613P\\/#QM;3P\\13QS\nM/#S1145S1=&6ED5ST=$\\T=%%/-%%/#P\\17,\\/#QS1='=145%W=U%/-$\\T3S=\nM/)8\\1=W=/$5%/$5%/#S=T=%WT=W1=]UWW7?==]'1T='=1=%W=W=WW=%%W7?1\nMW7?=187=W7=W=]V%A=UW=W>%=]W==W?==W=W=TEW0'>%A4F%A7>%W7=)A=V%\nM=TE)0'>%=T!W=T!)=TE)A>-)XT!)=TEW0$!)24!`2>-WXTE`X^/CX^-)A>-`\nMXTE)2>/CXWOCXWOC>TE)>^.*XTGC2>-[BHKC>]=[X^.*BN,RBN.*X^-[>^,R\nMBHI[,HKCXS(RXXJ*XTXRBHHRBN.*BC**6(I8BDY.,DY.3HHRBHHR6%A86/,R\nM\\UA.,ECG\\S).6%CSYT[S\\^<RC^=.C_,R\\_-.\\_/SC_/S\\TY8CT[S3H_GYX_S\nM3D[SCX^/\\_./\\UCGY^>/YUCSYX]8\\_-8CX]8C_./6%B/CX]8C_./\\UCGY^>/\nMCX^/\\X^/C_/SCX_SC^>/CX_SYX_SCX^/C^>/\\_/SCX_S\\_./\\_/G6(]86%A8\nM\\^>/\\X^/C_/S6(_S\\UB/6(]8\\^>/6/./\\^>/C_-83EB/Y_./Y^=8Y_./CX]8\nMCUCS6(_SC^?GYX_G3O/S6/-.C^>/C_./6//S\\_/G3H_GC_/SY_-.3D[G\\_/S\nMYTZ/CUA83ECS6(^/C_/SCX^/\\^?S6//SCX^/\\^>/C_/S6(^/\\^>/6//SCUCS\nMYX_S\\UB/C_/S\\^?S\\X^&Q[_':6F1AB\\OD<>1:2^1:<<Z+R_':2]ID88Z.D&1\nM:3I!:9&1:2^1+\\J1.B_*.I$O.B_*+SHO+SJ1.CHOD4'*RLK*.LJ1V-C*D<HO\nMRLHZD=C8.I%!V\"\\ZRM@O+SHZRLHZV\"_*RCK8V,HZRFW*0<IM.LIM.CK*03HZ\nMV#IM.MASV#HO+R\\Z.LK8;=@ZV#HZ.FTO.CK8V#HZ.LK*.MC*.B_8V#K*RLK*\nMV\"\\O.CK8.CK*+\\HO+SK8+]@Z.LK*V#K8V)$ORLHO.MC*.LJ1.I&1RLHZRI%!\nMV#J1D<K8D=@OD<HO.I$O0=C8.B_*+\\K*.CK8.M@Z+\\K*RB_8+R\\ZRD$Z02_8\nMRMAMRB\\O.CHORMC*RCK*.M@ZRMC804'8;=@Z;3K*V,K8RCK8;7,Z;=AMRD$Z\nM<]@Z;=AS;<IMRLK*V$'8V&TZRMC8<W/*<]AM<Y:6EMASRI;8RI8\\;<K*V-C8\nMEMAS/#S*RG/*RM@\\<W.6V#R6;7-M/)8\\<VUS/'-M1=C8V'-S<]C8/$661=AM\nMEFT\\ECQ%<VU%/)8\\/$4\\/'-S;=%S144\\<T71/-%S/#Q%EI9%17,\\/-W=/$4\\\nMT3QS/)8\\13S1/#P\\ECS11=W1/-W=W47=W='1/#P\\/-W113S=W47=144\\T=UW\nMW=%%T47=147==SQ%=T7==]%%=W?=1=%W=]UWW47=T=W=A=%WA85WW7?1W=W=\nM=]W==T!WA85W0'?=0-UWW=U`0'?==W=`0'=)0$E)24F%27=)A4F%XTE`X^/C\nM2>.%0$E)A>-`XTF%0(7C0.-)X^/CXTE)X^/C24F*X^/CBN-)XXI)2>-[XTE)\nMBN-)X^/CXWOCBHKCX^.*XXI[BN.*,HI[3GM.3HHR,N.*BC**,HI8,E@RBDY8\nM6#**YS)8BHJ*YS)83DXR6(KSBDZ*\\S+S3D[S3DZ*,O/G,N?SYTY8,O/G\\X^/\nM\\S+SYX_G3O/SY_/SYT[SY_./\\_/GC^>/\\_/S\\X].C_/SCUA8\\X_S\\^>/6(]8\nM\\^?SCX^/C^?S\\^?GCX_SC_/SYX^/YX_S\\_/S\\^=8\\_-8CX_SCX^/CX_SC_/S\nMC_/S6(^/6(^/\\_./C_./CX^/YX_SCX^/\\^>/\\X_G\\X_G\\X^/\\X^/C^?SCX]8\nMC^?G3O./\\UCGCX_SC^?G\\X]8\\^>/\\_./CTZ/Y^?S\\TY.YTZ/\\X_GYX_G6.?G\nM\\^?GC_/SCUA.\\X^/C^>/\\^?S\\_./C_/GC_/G\\_/SCT[S\\_./\\_/GCUB/\\UCS\nMCUB/\\X_SCUB/\\_/G\\X_S\\UB/C^?S\\X^/\\_/SCX^_QY%I:;]ID<=ID6EIAB^1\nM:6EIQVDZD3K':6EI:89ID9&1:3HO:9$Z.CHZAI&1:3HZ:6DZD3K*RCJ1.I'*\nM03HZ.CJ1+Y$OD4$Z+SJ1V#K*RCK*.MC*.MC8V\"\\Z+SHZRD$ZRLK*.LHZRCK8\nMRB\\O.CK8V,HZRLHORB_8.M@Z.MA!RLHZV#HZV#HO.D$Z.MC*.CIMRLHZ.B_*\nM.CI!D3K8RLHO.LK*+\\HZRCHZ.MA!.MC80<K*RMC*+SK8.LK*RI$ZRD'8.I'8\nMV)'8V#HOV-@Z.B^1D<HZV$$ZV#HO.B\\OV#HZ+R^1+]C*V,HZV#K*.MC8+\\J1\nM+]C8+\\J1+\\K8.LHZRLK8V-C8+R_8+SHZ.FTO.LK*RLK*;3HZ.MAMV-AMRLIM\nMRMC*<SI!.FTZ.CK8<W,ZRG/*<SK8RD%S.G/*V,K*RLJ6<]C*07-S/'/*V,IM\nM<W/8<VV6EG,\\<VW*/'-SRMASELH\\RFUSV#S8/&US/#P\\/'/8/&T\\/',\\<SQM\nM<SP\\<SQS/-AS/#P\\13Q%/'-S/$4\\/'/1ECQS<Y9S13QM144\\<W-S/):6/#P\\\nM<SS117-SEG/1T3QS13S=13Q%W98\\1=T\\W9;=W=V6/$7=145%ECS1/#P\\W47=\nMEMW1T3S1W=W=13QWW=$\\W3Q%1=U%/$4\\=T7==SS=W471=T5W1471T7=W=T5W\nMT7?==]UWW7=WW=W1=]%W=]W1=]W1W7>%T=W==X5`=T#==X7=0(6%0$!WA7>%\nM27=)=W=WW85W=W?CX^/C0$E)A7=`27>%(^-`X^.%XTE)24E)0.-)X^/C0$!)\nM>^/C>TGC24E)X^/C2>.*>^.*XWOCBN.*BN/CBGN*X^/CXXHR,N-[>WLR>WN*\nMBN.*>TXRBC)83DY.,GN*,E@R3HHR6#).3EB*\\UCS\\_/S6.>*,O/S\\^<R6//S\nM\\_/G\\XKSYTXR\\^?G3O/S,O,R\\TY.\\X_GYX_GC_./3O./\\X]8\\_-8\\_/S\\UB/\nMC^=8CX_SCX_S6%B/\\X^/\\X_SCX_GY^?SCX^/YUB/\\_./YX^/Y_/S\\_/G\\_./\nMC_/G\\X^/6/./C^>/\\_./YX_G\\^?G6.?G\\_/S\\_/SYX_S\\UB/\\_/SY^?G6(_G\nM\\X^/Y_/SY_-8\\X_SC^>/CX]8Y^?G6/-8CX_S3EA8C^?S\\UB/C_./\\_-.3H]8\nM\\X_S6%CSYX_G6(_SYX^/C^>/YT[S6.?S\\UA.C_./6$[S\\UA.YUCSC_-8CUA.\nM\\X].\\^?S6(^/6(].6//S\\_./\\UB/C_/SCX_S6(^/YX^/CX]8\\X^/\\X^/C_.1\nMD<?'O\\>1QX:1:<>1QVEID<=IQVG'D9%ID89I:6EI:9%I.CIID4&1.H8ZD<J1\nM.CJ1:9$Z+VF&RI$ZRB^1RH8ZRCK*.I'*RLHZRCHZRCK*RCK8RCHOD3HORMB1\nMRLI!.LK*+\\HZRCHZ+\\K*V,HOV$$Z+Y'8.D$O+\\K8.MC8V#HZ.CK*.B_*+T'*\nMRLJ1+R\\ZV-@Z.LHO.CK*+\\K*.CK*.MC8.CHZ+SK8.CHZRLK*RLK*.CI!D2^1\nMRLK*V#HZV#HZ+T$Z.M@ORLK*D3K*D3J1.CHOD9&1.B^1.LJ1D=C*.LJ1.LHZ\nM+SK8RLK8.B^1D9$Z.B\\ZRLK*D<K*RLJ1.D$O.LHZRLHZV,K8.MC8RLHORCHZ\nM.CHZV#K*RLK8;7,ZRLK8V,K*;=C*;3K8.G,Z<SIMRMC*V#IM;=C*RG-S06W8\nMV,K8<W/*ECIS<]C*<W-SRFUM<W-SRMC8V-AMV-C8/#S*RI;8ECP\\/-C8/#P\\\nMEMAS/#QSV'-M<]B6<VT\\ECP\\;7-%/#QS<VT\\<T5M<T4\\<T71<SP\\199S<SP\\\nM/'-S<VT\\<]&6<SQS<SQS/-%%/#S1/$7113S113QS<]%%W471<Y9%<T7=/'/=\nMT3Q%/$71T3QSW44\\/$4\\13P\\147=T471W=%%1=W1/#QW1=%%T=$\\1=W=144\\\nMW=T\\W3QWW=W1T7?=T=UW=]W11=%%=W?=1=UW=]W=T45WW=W1=W=W=W?=(W>%\nMW4!`=W>%0'=)W87=W=U`A7>%=]UW=T!`0'=)(T\"%24E)27=)X^-`A4!WX^/C\nMX^-`24E)0$#C24GC24E`X^-[2>-)X^/CXTGCBN/C2>/C27N*XXJ*XXKC>WOC\nMBN/CX^.*>^,RX^/CXS**,C+CBHJ*3HJ*BHJ*,GLR6%B*YS)86#(R6$Z*YXJ*\nM6#).3EA.BHI.\\TZ*,O/S,C(R\\XI.,O-8\\^?S3D[S\\TZ/6(].C_/S\\_/SCX^/\nMYX_GY_/SC^>/\\UB/CX]8\\X]8\\X_GCUB/C_/S\\_/GCUB/\\_-8YX^/CX^/CX_G\nMYUB/C^>/C_/S6.?S6//G\\X^/CX^/6/./CX_SCX^/6(_SY_-8C_./CX_GYX_S\nM\\_/S\\UCS\\X_S\\X_S6%B/6(].\\UCS\\_./CX]8\\_./\\UCS6//SY_/G6.?GC_/G\nM\\UCG6/-.\\X_S3O/S6/-8C^?G\\X_SCT[SY_/G3O./YX^/\\T[SCX_G6$[S6//G\nMY^?G6.?S6//GY^?S\\TZ/\\UB/Y_./\\X_SCTZ/Y_-8\\UA86(^/\\_./YX_GCX^/\nM\\UA8\\X]8C_/S\\^=8YX_'O[^1+Y%I:9%I:9&&:6F&D6DOD<<Z.CK':<<ZD9$Z\nMD<>1.I&1D3HZ:6G'0<HZ:6F1+\\HOD6DZD88ZRH9!+\\II.I&1+SJ&D2^1D9$Z\nMAB\\Z.LK*RCHO+Y'*V\"\\Z0<HZ.D'*V#HZ.LK*V,HORMC*RCHORI&1.LK*.D$Z\nMV#HO+SK*.LK8D3K*RCK*V#HO.M@ZV-@Z.I%!D9'8.CI!D=@ORLHOD<HZRLK*\nM+T'*09$ZRCJ1RD&1RLK*RB\\ZD3HZRMB1D9&1D2^1.LK*.I&1RB\\Z+\\K*.LK8\nM.B\\Z+SHO.B_*+T$O+\\HZRCI!+R_*+T'8+T$Z.I'8RLK8.CK*RB_*RLHZ.MA!\nM+\\J1.LK*+Y%M.M@Z.LHZ03K*.LHZ.G-MV-AM.FTZ06TZ.FUS.CK8RLHZRMAM\nM<W-S<VW8RLK*<\\ISRG/*RI;*RFV6RG/*<W,\\V,K8RI;8V-C8/-C8V'/8/'-S\nMRCP\\/#P\\/)9M/#R6<W,\\V-B6<SQMV&UMEG-%17,\\V'-M<W/8;3P\\/$5%<SQ%\nM<VUSEG-%/$5%13P\\/'.6;3QMT45S/);1/-$\\EG.6/-%ST3P\\<T4\\T45SEI;1\nMT=T\\/$71<]T\\13P\\<T4\\1=U%13P\\W=W=/#S1T=W=13P\\T3Q%W=W=W=$\\T='1\nMW=T\\/-W=1471/-U%13QW1=U%W='1=]W==]%WW=W1=W?1=]U%T=W=145%147=\nMT='==W?=T=W11=W1=]W1=W?=0(6%=W=`W4EW27=W=T!`A7=`27=W(TF%A2.%\nM0(6%24E`0'>%24F%0$#C2>-)0(6%2>/C0$GC285)A>,C24E)2>-)24GCXTE)\nM28KCX^.*28KCXTGCBN/CBHJ*BHJ*>WLR>^-.>S+CBDY[XXI.BHJ*,GM.XXI[\nM,GLR3HHRBEA8BECGBHI8YS).YXI.6.=.3N=86$[G\\_,R6%A.3O,RYT[S\\X]8\nM3C+GYT[SY_-.\\X]8\\_/G3H]8YX_G\\_-8\\UB/\\X^/\\_./\\X^/\\X_S\\_/S6/./\nMCX^/CX_SCX^/\\_/GYX_SC^>/CX_GC^?SY_-8YX^/\\UA8CX_S\\^>/YUA8\\_/S\nM\\UA8\\X_SCX]8CX_SCX^/6/./C_./C_/G\\X]8\\UB/6(^/CTZ/\\UCGC^?GCT[S\nMCX_S\\^>/3DY86%CS6/-8C_/S6/./\\_/SC^?SCUCS\\UB/\\X].CX_S3O/S6(_G\nM\\X_G3O./CTZ/Y^>/CX_G3D[SYTZ/\\^?S\\_/SC_/S6(_G\\^>/Y_-8YX]8CX_G\nM6/-86.?GYX_SY_/S\\X_S6(^/\\_/SCX_S\\X^/Y^>1:<=IQ[^&OVEIQVDOQ\\?'\nMQ\\<OD<?'+Y%I+X8ZD6G':<>1AI%I.I$OQR\\Z:2\\Z.CII+VDZ.CHZD3J1+R_*\nM+R]IRI&&.CHZRCJ1RI%!RCHZ04'*D<K*D3J109&1D9'*+\\HZ.CK8.LK*.I&1\nM+SK*+T%!V#K*D<K*RI$ZV#K8RI'*RCHZ.CHORCHZ.CK*.B\\O.LK*+Y$ZD3K*\nMD3K*.LJ1.LK8D<K*RCJ1RCHZD88Z.B_*RB^1RI&1D3HO.H;*AI$O.I$ZD9$Z\nM+SHZRB_*RCJ1.LJ1.I$ZRLJ1.CJ1+X8ORH;*.CK*RI'*D9&103HZRD'*.CHO\nMD3I!+SHZD2_*RLK8V-B1V#HZ+VW8.LK*RD$ZRCK8.LHZ.LHZRFW8<SHZ.MAM\nMRM@Z.LHZ;=@ZRD'8.G/*<W-MV&UMV'-S<\\K*<\\IMRCISV)8\\RLK*;6W*V'-M\nM;7-MV'/*RG,\\/&USV&US/&UMV'/8;<IS<]AS<SQMV'-MEG.6<W,\\<]@\\145M\nMV'-M;6T\\;7-S;7-%/#QM13R6;7-M<W,\\<Y8\\/',\\T7-SEG-S/'-SEG,\\T99S\nMT3QS1=&6<W,\\145%ECQSECP\\/',\\198\\1=$\\/-%ST=$\\/#P\\17,\\W471W=$\\\nMW='=1='1T='117-%/-T\\/-W11=W=T=U%T=%%W45%T3P\\T471T3S=/-'=1=%%\nM1=UW1='=W7=%=]'==]W1=W=WW7?=T7>%=W?=A='1W86%0'?==]W==X7==W=W\nMW4\"%=TE`W7=`W=UWW=U)286%=TE)0'=`27=W24E)27=`285`24\"%X^-)XT\"%\nMX^-)X^/CXTGC2>/C24GCXWOCBN/CX^-[BGM)BN-)XWN*BN/CXWM[XXKCX^-[\nMBHHR>WLR3GOCBC**XXI[6..*6$Y8BDY.,D[GBN=83ECS6//G3O.*,EA.BD[S\nMBD[SYUCS\\TY8\\TY.\\TY8,ECG3O/S\\^=8,O/S\\_-86.?SC_./C^=.\\_/G3O-8\nM6(^/6(_S\\^>/YX_GYX_GYUCS\\_/SC_/G\\_/GC_./\\X^/C_./6//SCX_GCX_G\nMY_./\\_/G\\^=86(_SCX_S\\X_G\\X_S\\X^/6.?S\\_/SYX^/\\_/SC_/SC_-8\\X_S\nMCTZ/6/-.C^=86.>/\\UB/\\X^/6/-.6(_G\\_-.CX_G\\UCGCX_GYX]8Y^?G6$[S\nM3O./C_-.YUA.6(]8CX_S6.?G3O/S\\_./CUCSY_./6.=.3ECS\\_/G3EA.\\_/S\nMYUA8Y_-8\\_-.6(^/CX^/6%CS\\UA8CX_SC_/SY_/S\\X_S6(_S\\^=8CX^/C^?'\nMD<>1QVG'QVG'QR^&:<=IQVG'QY''QR_'D<=I.B\\ZD2\\ZD6F1+Y''D2^&.B]I\nM:9&&QSJ1+SJ1.CJ1+X8Z:9$Z.LHO.FG*:6G*:<HZAI%I+Y$ZD4'*+R_*RB\\Z\nMD<HZ.D$ZD8:&+Y$OD<HZD4$O+SHZ.CJ&+Y&1RI'*.LHORI&1RLHZD3J1.B\\Z\nM.I'*RI$Z.LK*.CJ&RI&1+R_*D3HZRCHO.I&&.D&1RLK*ACJ1.LJ1D3HZ.LJ&\nMD<K*.I'*RLK*.D&1RCJ1RD'*+\\K*.CHZD3K*RLHZRH8Z.CHO.B\\O.LJ1.CHZ\nM.B\\Z.D'8.I$OD9'*.CK*D<K*0<HZD<HO.LHOV#HO.CHZ.M@Z+\\K*.LK*0<IM\nM.LK*V'/8.CIMV'-SRCHZ.G/8RLK8<\\HZV-C*V,K*RCK*<\\K*RFUSV'/8<\\K8\nMEFUS/'-SV#QS<W-SRCS*V#S8/-AS/'.6RG-S/)8\\V&UMV#S8<SQ%<SP\\13S8\nM<W-SV'-S<]@\\EG-MEMAM/$4\\EG,\\/',\\<W-M/'-%;45S<SQ%/)8\\<SS1T44\\\nM<SQM<T4\\13Q%/#Q%T45S13P\\<]%%199%<W/117-%<SQST7,\\1=US/-%S<SP\\\nM13P\\/-%ST=&6/#P\\13S=T45ST44\\W=US/-T\\1=$\\/$71/#P\\1='=1='=W3P\\\nM/#P\\W=$\\T3Q%T3P\\1='=13P\\/-W11=U%=SS=T471W45WW45W=]W1=]W1=W?=\nM=]W1W='=T=W==]UWW87=W=U`0-W=0-V%W85)W=U)A7?=W7=`=X6%=X5W=W=)\nMA7=)A4EW=^-W27?C2>-`(^-)2>-`24GC>WM)X^-)24GC27O724GC>XKC27OC\nMX^/CXWM[XXI[BC+CBN/C>XI.3GOCBHI[BHI.BEA.,HJ*3C(R6'OGBN<R,N>*\nM6$[S\\S+GYTZ*Y_/S3O-8YS+S,O/S\\TXR3O-.6#(R6$[S3C+G6/./CTY83N?S\nM3N?S3D[S\\_/G\\_-8CX].YX_S6/-.CUB/CX_SCX]86(_SCX^/\\X_G6(^/YX^/\nM6(]8CUCG6(_GCUB/6%A8\\X^/\\X^/CX^/\\UA8C_./C^>/\\_./\\_-8C^>/C^>/\nMCX_GCX_S\\_/GC_./CX_SCX_S\\_/S\\X_SCX]8CX_S\\_./\\^?SC_-8\\_-86/-.\nMC_/SCX]8\\_-86(_GC_-8C_-8CX_SYTY.CX_S6%B/Y^>/\\UB/CX]8C_/S6(^/\nMCTY86(_SC_/S3N=.CX^/CX_S\\_./YT[S\\_/G\\UB/C^?S\\_/SCUCGCX^/CX^/\nM6(_G6/-8\\^=8\\X_S\\X^_QVF&D9&&D<=IOY$OQX;':<?'.B]I.H9I+X9I+Y''\nM:3HOQVG'QSHZ:<=I.L=IQVG'QVDO.FDO.FG*:9$Z:3HZ:6F106DO.H9I.FEI\nMRB]I.H;*.I$ZACJ&.I&1.B_*AFEI.H8Z.H8O.B\\Z.B\\O04'*RH9!ALJ1.CK*\nM.LII.LJ&.CJ1.CHZ.CJ&D2\\Z.B^1ACJ1D3K*RCIIACJ&+SHZRCJ&06DZ.B\\Z\nMD3K*.I&1:3K*D9$ZRFDO089!:3HO:<K*RD$ZRI$ZRB\\Z.H8Z.LJ1+SK*RH;*\nMD3J1RCJ&+X;*AI'*.LK*.LK*.CHORLHZ02\\ORLJ103HZ.LHO0<HZ.LK*RCK*\nMD2]!.CK*.CHZ.CK*V#K*;6TZV&UMRCK8<SHZRCHZRMC8RCK8V'/8V,ISRMAS\nMRG-!V,IMV);8<W-SV'-SRG/*/,ISV-ASV&V6RG/8EG-M/&USV-C8EG,\\V'.6\nM/#P\\<W-S16W8V-@\\1=B6<SS8V#P\\/'-M<T5%/#P\\/$4\\<T5SED4\\13Q%<SQM\nM/#QS13QS<T66/#S1T=%%<W.6/'-%199S/$5%/-'1EM&6<SP\\T45%17-%13S1\nM/'.6T45S<Y:6/#QS/#R6<SQSEG,\\/-%%<SP\\T3R6/)9%1=U%1='1W3Q%EMW=\nM144\\/#P\\W9;1W3S=/$711='=144\\/-%%T3S=/#S1W=W=T=UW1=W=T4711=%%\nM1=W1T45W=W=%W=W==W?=W7=%W85%T=%WT45W=W?==]UW0(7=T7=`A85`=X5W\nM0'?==W=)=W=)=]W==W>%0(5`0$EWXX5)=TE)XX5WXTF%X^/CX^/CA=?CX^/C\nMXTE[XWOCX^/CX^.*BGM[>^/CX^/CBHKCXWM[XXKCBN.*X^/C3N,RX^.*BDY8\nM6'N*6$Y86'M8BDY.BC**,GLRYXJ*YUA8YUCGBO/G\\UA.3O-.6/-86//G6%A.\nM3N?S\\_/G6%A.6//G6//S6/-.\\_-.\\^=8\\UCS6//GCUCSCX^/C_/GCUA8C^?S\nM\\X^/\\_/S\\_./6%B/C_/SC^>/\\_-8\\UCS\\X]8CX_SY^?SC_./CX]8YX_G6(^/\nMCUA8\\_/S6/./\\X_SCX^/C_/G\\X_G\\_/S6(^/C^=8YUB/CX_SCT[GY_./\\X_S\nMYX]8Y_/S3N?S3EB/CUCGC^?SY^?S6(^/\\TZ/6.=8YX]86//SC^?S6/-8CTY.\nMCX^/\\UCS\\^=8\\^=8\\X_GC^>/CT[GCX]8\\X_S\\X^/C^?GY_-8\\UCGYX]8\\X_S\nMCUB/6//S6%CS\\X_SC_./\\X_S\\_-86(^/CX_SCX_':<>_D<?'D<?'Q\\>1QY''\nM:6F1:6G':2_'D6DZQSJ1+VG'QSIIQSII+SJ1D6DOAB]ID3II.FEI:6G':6F1\nM.CII03HZ.B\\Z:3HZ03K*AFDZD3HZ.H8Z+SI!RCHO.I$ZD4&&.CHZD2_*+Y'*\nM+R_*.CK*.FG*D9$Z.CHOACJ10<HZ.LHO+T$Z+Y&1+X8ZAH8OACJ1.LHO+Y$O\nMD2_*ALK*AI&1D2\\Z:3HOD6F1+SK*:9&1.B]I.CJ103J1:3HO.CHZ09$O.CHO\nMD3K*:3I!D3HZAFDZD4%!D3HZ.B^1.B_*RH;*.H;*D<HZRI&1RCHZRLJ1.LK*\nM0<K*RCHO.B_*V-C8RLK*.CHZRCHZ+T'*+SIMRD'*.MC*.LK*RLIMV#HZ.LK*\nM.CK*;3K*<VW8<W-S<\\IS;<K8;6W*RG/8RMB6V'/8<]C*;3S8<\\K*;7/8/#P\\\nM<SS8<\\H\\/,K8/#P\\/#P\\;3R6<SS8V-@\\;3QM<T5S/#QM/#R6/$5SEG-SV$4\\\nM;3QS/&V6145%;99S<W-%13S1T471/-$\\/#P\\/#P\\/#QS<]%S<T5%199S13QS\nM<T4\\/);1/$5S<SQ%EG-%/'/1/$5S<W/1<W-%/',\\T=$\\/$7113P\\/'/1/$71\nM/'-%T=$\\W7-SW3Q%/-'=/)8\\<T71T=T\\T45%/#Q%/-$\\T=W1/-'=/-$\\/#R6\nMECS=1=W=/-$\\W=W1W45%17=%W=U%T=W==]'1W45W=]'11=%%=]W=1=U%=T6%\nM=W?1W=%W=]V%=]UW=X5W=]U`=T!`W86%A7=W24E`=W=)=X5)A>-`=TGCX^-`\nM(^-WX^/C2>/CX^-)XR/CX^/CX^/C2>/CXWM)X^.*XWN*BGOCBN/CBHKCBHJ*\nM>^.*,N.*BGLR>^,R3GN*,HJ*,C(RBHI[>WN*3D[G6.<RBDZ*BHI8BO.*BC).\nM6$Y.\\TY.6/,R,EA8BD[SYTY8,C).,N?S3DY.\\UA.,O,R\\TZ/\\_/SCUCS3O-.\nMCTY8C_/GY^=86(]8Y^=8\\_./\\_./C_./\\_/GY_./\\_/G\\^?S\\X_G\\X^/C_-8\nM\\^>/CX]8Y_./CUA8C_/S6/./CUB/6.=8YX^/Y_/G\\_./CUCSC^=8CX_S\\^=8\nMYX_GYX]8C_/S3EB/C_-8\\_-.\\UA8CX]83DZ/6(].C_/SYUCGYX^/\\_-.CX_S\nM6(_S6/-8CUCGC_/G6.?S3H_GY_./\\_/S\\_/GYUCG\\TZ/CX_S6//S\\UCSC_/G\nM\\TZ/\\_-.\\_./C_/S6.?S\\^>/6(^/6/./\\^>/6(_SC_/SCUCS6(^/\\_-8C_/'\nMQVF1QVEI:2_'D<>_Q\\<O+\\>1:6EIQX9I.I$ZQR\\ZAH8Z+SK'AH;'D8:1+R\\O\nM:2\\ZD<>1:3J&:3HO+Y$O.FF&ACJ1:2^1.CHZ+SJ1RI$ZD2_*:3J1AFEI.I&1\nMACIIRFDZ03J1+Y%!.CI!.FG*AD&1.CHZRFDZD6F1ACII+R\\O:3II.CJ&+R\\Z\nM:9&1:2]I.I$ZD<J1.B^1:3J&+VDZ:2^&D9&1:9$Z.D%I.CII.H9I+VEI.LHZ\nMD3J1+Y'*:3HZD9$Z.B\\ZD88ZAD$O+X:1D88ZD6F1.I&1:3II.H:1+R\\Z03J1\nMD3K*09$ZD2_*.LI!RB_8D3HZ03K*D2_*V,K*.LHZ+]C*.M@Z.B\\Z.B_8V#HZ\nMV#HZ.D'*V$'8<\\I!.LI!07/*V&W*V$$Z;6W*<\\K8;3K8RG/8V,I!V-C8/-AS\nM/-AM<\\IS;7/*RFUS/'/*RCQM<]@\\V'.6<W/8V',\\17/8/'-S/)8\\/-AMEG,\\\nM/-A%/',\\;7,\\<T5S;3QM;3QS<T5M13P\\/#QS/'-SEG-S/$5S<SQS<SP\\ECQ%\nM/'.6/'-S<SS1/#S1ECS1/#P\\ED7113QST3P\\<Y;11471/'-%199S<T5%13P\\\nM<T71ED5S/$71<SS1145S13P\\17-%1='1/$71W7,\\T9;1/#Q%<SR6EI9%145S\nM/#S1/$71W9;=/$7=W='=13Q%T=U%/-W1/#P\\T=$\\W='=1=%%W=W1W=W=/$7=\nMW=U%147==T5WW=%W17=%T7=WT7=WA=W1W7?=T=W10-U`A4#=W7=)A4#=W=UW\nM=T\"%=X7==W?C0(5)=W=W=TE)0(5)XTF%XT!)XX7CX^-)X^-)XWOCX^-[2>/C\nM27N*BN-)X^-[>^-[>^/CBC+CXS)[X^-[XXJ*,GN*XXI[6%A.BHKCBDZ*,HI[\nM,HKG>S).BC**BN>*\\S+GY^?SBD[SBDY83N?SBECS6.=.\\_-.3D[SYX]8\\^<R\nM6$[GYX]8\\^=8\\_./Y^?G\\_-8YX]8Y_/S3N>/Y_/SCX_SY^>/CUA8\\_/G3ECG\nMYX].6//GCX_SY_-.\\^?S6(_S6/-8YX]8\\X_G6(_S6.>/\\^>/C^>/C^>/6%CG\nMCUB/CUA8C_/GY_/S\\X^/CUCS\\UCG3H_S\\UCS\\_/GY_/SY_/GCX_S\\_/SC^?G\nMC_/SC_/S3D[SC_/S6//S\\UCS\\UCG6/./3H]8C^?S\\UCSYX_SYT[S3O./\\X^/\nMC^?S\\X]86(]8YX^/\\^?GC^?SY_/S\\_./\\_-86.?G\\UA8\\X^/\\_-8C^>/C_/S\nMYX^/Y^?S\\_/GCX_G\\_-IQVG'Q\\?':<>_+VF1Q\\?'+VG'+\\?'AI''+VEID<>1\nM+\\=I.H9I:8:1.FDZ:2_'D<?'QSII.CHZ.CHO+VF&D<<Z:9$Z.D&1:9&1.B^&\nMAFF&:<HZ:3J1+SHZ:3HOACK*:4$Z.I&1ACJ1.B^1.H:1:3J&+R\\Z:2^1D<I!\nM.FF1.CHZ:6EI+\\II:88ZALHOD8:1.B\\O+Y$Z:9$ZD9'*:2]ID8:1RCJ1.CHZ\nM.H8O.FDZ.CJ109$OD3J1D9$Z+Y'*.I&&AD$OD3HO.I$Z.B\\Z:6DZ:3HO.CJ1\nM.B\\ZRI&102^1D9%!.CJ&RCHZD3HOAD'*.B\\Z.I$ZD3HZV-B1D<HZ.MC*.I$Z\nM.MA!RM@OD3HZV#HZRCHZ;3K*RM@ZRMAMV#HZV&W8<SIS<W-S<SHZ.D'*RCK8\nMRLISV,K*RD'*RG/8RMAM<SQMRCS*/-ASV);*<Y8\\/-C8V#QS/'.6<SQ%/#S8\nM<W-%EI9S/'-S/#P\\17,\\<T5%<W,\\;44\\EG,\\/#QM/'-%/-%S<SS113P\\/-%%\nM/#S117-M/#P\\T45%17,\\13QS/-%%/-$\\1=&6/'-S/#S11466/#Q%ED5%1=$\\\nM/$4\\17-%17-%13R6/-%%<Y9S/#Q%/#Q%/',\\EG/113P\\T7,\\T7-S/#Q%<]%%\nM1=%S<]&6W99%<SQS13S=<SQS17,\\<W,\\T9:6<]$\\13Q%13P\\W4711=U%W44\\\nMEMW1W3S=/-W=W471W=T\\/$71W=W=T=%WW=W11=%WT45%=W?1=T5%W=&%T=W1\nM=X5WA7=`A86%W=W=A4!W285)W4E`2=U)A87==^.%0.-)A>/C24EW0$!`0$GC\nMXX5`XX5`2>-)X^-`XWOC24GCX^-)X^-[BN/CBN.*X^-[BN.*BN-[XWLR>XKC\nM,C**,C(R3DZ*6'M.6(HR3HKGBE@R,GN*6(I.BN=.3D[S6//SBDXRBC+S6$Y8\nM\\UCS\\S+S\\UCG6$XR6#+G,D[GYTY.Y_/S\\_./6/-8\\^?SY_/SC_/G\\UB/C_/G\nMC_/G\\_-.\\UA83EB/Y^?GCX_GY_/SC_/GY_./\\_-8\\X_S6(_SC^>/CX]8C_-.\nM\\_/SCX_GCX^/\\^?G\\X_S\\UA83O/G\\UA.6//GCX^/CX]83EB/C_./6/./CUB/\nM\\UCG\\UB/\\UA8\\_/SYUA.CX^/C_/S6(_S\\^?SCTY8YX^/\\^>/6.>/CX_GC_-8\nMCUB/C^>/\\UB/6(]8\\^>/\\T[SC_/G\\_/SYTZ/CX^/YUB/\\_-8\\UA8C^?SC_/G\nM6.>/\\X]8\\X^/CX^/\\_./C_./YX^/\\_/G\\_./\\X_'D9&_D<=IQY'':6G'OY&1\nMQ\\?'D<=I:6EIQY%IACJ1D<?'AI''+SII.B\\ZD6G':3HZQSJ&:6G'.FEI:9&1\nM+Y$ZD2\\O:3II.B\\OD3HO:8:&ACK*D6G'AH9I.I&1.FF1.FF1:9%!D3J1RCJ&\nM:3J1.LHZ.FDO.I&1:9$Z.FEIAFDZ.CHZ.CHOD9&1.FEIAI''AFG'AH8Z:2^1\nMQSJ&D9%I:9%IQY$Z.H9I:6F1:3HZ:2]I.L<O.CHZ.B\\ZQSJ1:2^&+\\<ZD2\\Z\nM.L<O.CJ1AI&1D3HZ.FDZ:6F1D3II.H8Z.CHO09$ORH8Z:3I!.CJ1D2^1RCK*\nM.B\\ORH8Z.LHZ.LHZV-C*.LK803HZ.MC8+]@ZV\"_8RM@ZRM@ZV,K*.LK*V&W*\nM.G,Z<\\HZV-C8<SIM.LI!RLISRLK8V-AMRI8\\<SQSELH\\V-C8<W-S/'/8/&T\\\nM;3QMV-ASV$5%V)9SV',\\V$5S16T\\<SR6<]B613QM<Y8\\<SQ%/&US;466/',\\\nM/'-%ECQ%<]%%/-&6<W-S<W-S/-&6<W-S/#Q%13S117,\\199%/$5%/-%ST9;1\nMT=%%/'-S/-%%<T4\\17-%T7-%1466ECS116V617,\\/)9%<SQ%ECQS<Y8\\/'-S\nM<]%S13P\\17/1<]%S17-S<]$\\ED5S/$4\\/-%S<T4\\ED5%/-&6144\\T9;113P\\\nMECP\\T=W=W=$\\EG-SW=&6144\\19;1/-W1T='=/-T\\W45%W=%%T3Q%/-%%W45W\nM=T5WW=W1=]'==]%WW85WA=%WT7?=A7?1T7?1A4#=W=V%=]U)0'=W2=U)A7=W\nM=TEW285`XW=`0.-)A4F%0(5)0(7CXTE)2>/C27M)XTGCX^-[2>/C>TF*>WN*\nM>WOCBHJ*X^,RBHJ*XXI[XXKCX^-.3C)[XUA.3E@RBC**BD[GBHI83N<RY^=8\nM6.=.Y^<R6/-.BC).6.?G6//S6/.*\\S+S\\XI.6$Y86//S,H_G\\UCG\\TY8\\T[G\nM3O./3O/SCX_SY_/SCT[S6/./6%B/\\X_S3N>/3DZ/\\_-8CX_S\\X_SC^>/Y_/S\nM6//G\\_/S\\_/GCX_GYX].\\_./\\X]8\\X^/3H]8Y_/S\\_-8C_-8\\_/G\\UCGC^?S\nMYUCG6/./6//S\\_/S\\^=.6.>/\\^>/CUCSCX]86//GC_/SYX^/CUA83O/G6(]8\nMC_./CX^/\\_-8C_-.C_-8\\X^/C^?S6(^/\\_./CUCG\\^?G\\X^/\\X]8CX_GCX_S\nM\\_./YX_SCUA8C_/GC_./YX_S6(^/CX^/\\X^/\\_-8YX^/CX^/6%B/C_./CX^&\nMOX;'D<?'QY$OD9$OQR\\OQVEIQR_'+Y''.FDZ.FEI.I&1D<=ID3HO:2]IQVF1\nMD88ZD2_':88O:6EI:6EI:9&1:6DZQY&&QVEI+X:1D<<Z.I$ZD<=I+VDZQSHO\nM.D%IQT&1Q\\?':6DZ.CHZQ\\?'+SHOD6DZQSHZ:9&1D2^&D89I.FDZ.FDOQVDO\nM.CJ&+VEIAH8ZD3II.H8Z:9'':<>1D<>1+SK'AI'':9$Z:6F1:<>1:6G'D9$O\nM.FEIQSJ1.FDZD9$OQSHZ:6DZD6DO.I$ZQX:1:3HZRFDZ:9&1RI$Z.I$Z.I&1\nM.I$O+X8ZD8:&+\\J&.CHZ.CHZD3K*.B^1V-@ZD3K8RLK*V#K8D=@OV&W*RCK8\nMV,K*.CIMRG-MV,HZ.CIM;<K8RMC8<\\K8RLIMV'/*;=C*V'/*RLIS<]@\\<SQS\nM;7.6EM@\\/',\\V)8\\<W-S;=C8/#P\\/$5%;3QM13QM<T5S/'-S<SS8/#Q%/#Q%\nM/'-%13P\\/$5SEFU%<Y8\\<T4\\/$5%/'-S/$4\\<T5%<W-%/#QS/'.6/$66<]%%\nMW3QS/-V6T7,\\T3P\\<]%S1=%ST7,\\<W-S/',\\EM$\\17.6ED4\\EG,\\/-'1/$71\nM<T71/',\\/'-S/'-S<SS1<]%ST7,\\;99S<]'1;=%ST3Q%;7-%<SQM/'-%<SR6\nMT45S/)9%T3S1/$5ST3Q%ED4\\13S1144\\/$4\\/#P\\1466T44\\W=&6W471W45%\nM/#S11=W1/$4\\/-W1T=W1=]U%/'=WW7?1=W?1W45W=W?1T471W86%=X7=W7=W\nMA4!`W7=WW=UW27?==TEW0-UW0'=)27>%X^.%27?C=TE)24E)24!`2>/CXTE)\nMX^-)2>-)XXKC24GC27OCXXKC>XKCBN/CXXJ*BN,R,N-[,C**BN.*,GN*>UB*\nM,HJ*,GM83EA8>XKG>XHR,EA.,C(R6(HRY_,RBDXR\\U@RYXKG6$Y.\\TZ*BO/S\nM,N?S3DY86//S\\TY.YUA83O/G3O./6//SC_/SYT[G3N>/\\^=83H_S\\X_GYUA.\nM6//SC_./\\^=83N?S\\X_GY_/S\\X^/6(].6(]86//SCX_SC_/S\\_./CX_SC_./\nM6//S6(_GCUB/YUB/\\^?S\\X^/C_/GCUB/\\UCSCX_SYX_SCUCS\\_-8CX_GY_./\nM3H^/YX^/6(]8CX_SC_/S\\^?GCUCS\\_-8\\_/GCX^/\\X_S\\X^/YX_GCX^/C_/G\nMYUCS\\_-8CX_SCX_GC^=8C^?G\\_/G\\X_S6.?S\\X^/C^?S6.?SCUCSC^=8C_/S\nMC_./C_/SY^>/\\^?SC_-IAK_'Q\\>&+VG'QY''.FF&D<=IQSJ&D6EIQY$Z+\\>1\nMD2^&QVG'QVF1Q\\?':3J1AFDOD3IID3HZ:3HZ+Y%I:3J1D88ZAI$Z.H:&AI$Z\nM:6DZ:89!.I$ZAI''.B^1:9&1.H8ZD6DOD<<Z:6DOD2_'QVG'D9&1.I$Z.CJ1\nMD2_'QSII:<>1QSK':9%ID<?'D9''.L>&:2]I.B\\OQR^&D<>1:6EI+SJ1AFF&\nM+VDOD6F1+\\=I:3K'D2_'D6EID9''QX;'QY'':3K':3J1+X9IQSJ1:8:1Q\\=I\nMD3J1+R]I.H:1:3J1RLHZ.CHZD6EI.FDZ:<HZ:<I!D9&1ACHOV\"^1ALHO03HZ\nM.CJ1RLJ1.D'*;<HZ;2\\ZRCHZ<SISV-C*.MC*.CK8<SK8.CIMV',ZRLHZRI9S\nM;<K*RG/8RG/*/-AMV&V6<SS8/'/*/#P\\/',\\<VT\\/$5M/$4\\;7-S/#P\\;99%\nM;3P\\;6T\\16US;=%%/$66/#P\\17/11=%%T44\\<]%S<]$\\/#P\\/$71<W,\\1=%S\nMT471ECP\\<T71T3R6<W/1T7,\\T3P\\1=%%144\\1='1ECS1T3P\\/#QS<W,\\EG-%\nM<T4\\EI;113Q%/#S1T45%/$4\\<W,\\<Y8\\EG-SECQS/#Q%13P\\17/1/)9S17-%\nMECQS<W-%/$71145%/$5%<W-%<W-%/'/1/$71/'-%13S1<W,\\1=%ST='1<]%S\nMECQ%/#R6<W/=1=%S/#P\\/#P\\T=T\\/#S1T=U%W='=T=$\\=]'==T7=T7?11=U%\nM=W?1W47==W?=W=W1W7?10-V%W7>%W=U`=T!)0-W==TE`24\"%24E)=T!`0'=`\nM24#C=TF%X^-)XTGCXTF%0.-)0./C>WM[>WM)>TE[X^.*BN.*XTE[BN-[BN/C\nMXS+CX^-.BN-[3N.*XXJ*BEA8BN.*3N>*>WM83HI.3HI[3C+GBDY.BHI8BN=.\nMY_,R3O/GYXI8,HI.BC+S3C).\\_/S\\UCG\\_/G\\S+S\\X_G\\_./6$XR\\X_G\\_/S\nM\\_/G6$Y.3O-.\\X_G3H_S3D[G\\T[SC_/S\\TZ/3H_S3DY8C_./3D[G3O/G\\X_S\nM\\_/S\\_/S3O/SYUCG\\X^/Y^?SCX^/C^=8\\_-8\\X].CUA8CX_SY^>/CT[G\\UB/\nMCUB/\\^?S\\_/SY^>/6(_GCX_SC^=8C^>/YUB/6.?SC_/G6(_S6(_SCX^/\\X^/\nM6%CS\\X^/C_/GYX_SC_./\\^>/6(^/CX]8\\_./C^=86/-8YX^/CX_SC_/S\\X_S\nMCX^/\\UCG\\X^/Y^>/C^?S6(_G\\X_SCX_SC_./YX^1D9%IQR_'OX:1:<<ZQVF1\nMD6DZD89IQY''QVF&QX9IQVDZQSII.H8ZD<>1.CK'+R\\ZQY$ZACJ&+SHZ.H8Z\nM.CHZAL=I:3IIQSHZD6DZD3J1.CHZ.I$Z+X8ZQSHO:8:&.L?':3HO:9%IQ\\?'\nM:3J1QSHZ:9$O.CJ1.CHZQVF&:3J1:6DO.FG'.FEI+R_'.FEI.FEID6F1D8;'\nM:89I:9$Z+SJ1:<>1QY%ID9''D9''+Y&1D<>1:88ZD3HOD9''.L>1.L<Z.L<Z\nMD<<Z:<>1+R\\Z.CIID3K'ACHZD6F1:9&1.B\\O.L<O:4&1.CI!.B\\OAB\\Z0<HO\nMD3HZ+Y$ZRLI!.M@ZRLHZRCK8D<K*V,K8RMC8V#HZRCK*RLK*RCK8V,HZV,IS\nMV,K*V,K*<W,ZV&T\\<VUSRFUMV,K*/&W*<Y9MV'-SV&W8;6V6V)9S/#QSV'-S\nMEFU%<SQM17-S146613QSECP\\17,\\T45%<T5ST3QST3P\\/'-%145%<]'117-S\nM13S1144\\W44\\/-%%1471T=%%/$66EM%ST45%145%ECQS17/1ECP\\W9;113QS\nM<SP\\ECS1T3P\\/#P\\1=$\\T45S19;117,\\<Y8\\13QS/'-%/$5SEM&6/-%%;471\nM/)9%;3R6;3QS/'-S16U%<W.6T3QS/$66/$5S/#P\\17/1ECR6/&T\\<W-S17-S\nM145S13P\\/#QST3QS/#R6ECP\\1=%%1=$\\T3S1W=W11=W1/#P\\T3Q%T3S=W=U%\nM13Q%1=U%T7?1T=UW1=U%W=UWW=W1T45%A7?=T=W==]W10-UW=]$CW4#==TEW\nM0-U`27<C24E`24!WXT!WA>-)A85W24F%X^/CX^-`0$GCX^/C0$E[27M[24GC\nMX^-)X^/CBN-[BN.*XWN*,N/CBN.*3GN*BGOCBHI.BDY.3HJ*XS**,HJ*6%B*\nMBN=[BECG,DZ*6$Y8YUB*BN?G3HI.3C**BD[S6/-.BHI.\\T[G6//S\\_/GYTY8\nM\\_-.\\^=8\\S*/6//G,O/GYUCGYUCG\\_-.3N>/YS+S\\T[S\\X^/CUA8\\UCS6%CG\nM6$[GCX_G\\_-.YX]86/-.6$[GCTZ/6%B/YUCSCX]8C^=.YUA8\\TZ/\\_./CX]8\nMCX^/\\X^/6(]8\\_/SC_/S6(^/CX]8YX]8Y^>/\\_./6%B/CUB/CUB/6/-8CX]8\nMC_./6(^/6//S\\X_GCUCGY^>/Y_./Y_./YUCSCX^/6%A8Y_./6(_G\\X^/CX_S\nMC^?S\\_/S\\^>/\\UB/6.>/\\^>/\\_./Y_/SYX_GY_-8C_-8\\_./CX_SCX_GC^>&\nM:<?'D<>&AL<ZQ\\?'+\\=IQ\\<ZD9&1.FEI:9&&QVF&+VDO.CHZ:3HZ:9&&QX;'\nMD2^1QSII+Y&1+VF1:9%I.FG'+VDZD3HZ.L?':6EI:6F1.CHZACJ1D3HZ.CJ1\nM.CHOD88O+SIIAFEID8;'+Y$OD6EIAL>&+R^1D88ZQ\\?'.I&1.L=I:<>&.H8Z\nM:3HO.I$ZACHO:<>1D9$ZQY&1D9$OD<=I:<?'Q\\>1QY$Z.H9I:89IAB^1AI''\nMQ\\>1Q\\>1QVF1:<?'.CK'D9&1:<?'.L>1QSIIAL>1.I&1.I%I.FDZD3IIQR]!\nMAI$Z.CJ&:2\\Z.B]IAI$Z.I&1D9&&.LK*.LJ1.LJ109$ORCK8.CHZV#K*+VUM\nM.LHZRLK8;3K*.MC*V,IS<SK*RG/*V,K8RMC8<W/*0=AMRLK8RI9S<Y8\\/#P\\\nM<W-S;98\\145SEG,\\;=B61=AM<SQM;45%/#Q%;3QS<VUM<]%%/)9%1=%ST7,\\\nMT=%S/#QS<]&6T471144\\13S1/#QST99SW3Q%<]%S1471<T4\\W3Q%/#Q%147=\nM<W,\\W3S1<W,\\T3Q%/$71/-%S<]%%<W,\\/#R617-%ECQS144\\/#P\\<T4\\<SS1\nM17,\\<]&6;7-%/'-%<T5S;44\\144\\17-M;3P\\/)8\\/'-%<SQS17-S;3QS;=%M\nM;44\\;7.6<SP\\<W-%ED5MECQ%<W-%/$5%/$4\\/$7117/1/-$\\17-S145SEM'1\nM/)8\\/'/1T9;=/-W1/-U%/#P\\145%W3S==]W=W47==]UW=]W=T7?==]&%T=V%\nM=W=WW=UW=]W=A7=`0-W==T#==T!WW85)27>%24!`24EWXX5)XW<C0$E)XX7C\nM24GCX^/CXTGC0.-)0./CXTGCX^/CXXKCXWOCX^.*X^/CX^/CXWN*,N/C>^/C\nM>WN*,GLR6$Y8BGM[,EB*,HHRBE@RYWM.6%B*Y_.*YXI8BN=.3O,R3HHRYXHR\nM3ECG6(KSYUCG\\T[S\\_/S6$Y.6/-.\\UA83EA.,C+SC^>/3C)8\\UCS3O,R3O-8\nMY_/GYT[SY^?GY_/SCT[SC_./Y_/G\\X_G6//G\\X].3H_SCUCSCUCS\\_/SCUA8\nM6(].3EB/\\^=.CUB/C^?S\\UB/\\^=.\\TZ/C_-8\\X_SCX_G\\^=8\\X_SCX_SYUCG\nMCX_S\\_/G\\_/S\\X_SC_-86(^/\\_-8\\X^/C_./\\X_GCX^/Y_./CUCSCX_GY_/G\nMY^>/CX_SCUB/6/-8CX_SC_/SYX^/C^>/Y^?SYX_S\\X]86//SC_/SCX^/Y^=8\nMC_/SC_./Y_./C^?S\\^>_:<>1D9%ID6F1:6G'Q\\>1QVEIQ\\=I:9''QX;'D9''\nMQSK'.I%I:3K'+Y$Z+Y&1.L<ZD9$ZD9%I:6F1:88ZD6DOD3J&AH8ZQR\\ZD3K'\nMD3K'+VDZ:3J1+Y$ZQ\\<O.B^1.FDOD89IQR\\Z:6F1D9''D<=IQ\\>1.L?'D6F&\nMD2]IQY$Z.H9IQVF&D<?'AI$ZQVG'AL>1AI''QVEIQVEI:<?'+R^1+VEID6F1\nMQSK'+R_':3J1.CK'QVG'QY''Q\\>1.CK'QY$ZAFG'QR\\O.B]IACHZ.I''.CJ1\nM.I$ZD6F&:9$Z:3J1.B\\Z.B^1:6EI.CHZRFG*RH:1.B^1.CJ1.I$OD88O.I&1\nMV\"^1+SHZV#K*RLHOV#IMRLK*;3HZV,K8;=@Z.G,ZV,IS;7-S<SK8<Y;80=C*\nMV',\\RG/*/'.6V-@\\/,ISV-AS/'-S;3P\\/#QM17-M/'-%198\\13Q%/-$\\144\\\nM/&W1<W,\\/',\\144\\/-$\\/-$\\W3S1<T66<]&6/-$\\<W,\\13R6/#P\\<W/=<SS1\nM145%/-T\\ECS=ED66<SS1/#R6T7,\\/#R6<]%S/)9S/-$\\/-%S17/=1=$\\ED4\\\nM<SQ%ED5%/'-S145ST7.6/#P\\/#S1<T4\\1=&617/1T44\\;45S;3QS;3QS17,\\\nM/$78144\\/&T\\13Q%1478/#Q%<SQ%<SQ%/$5S/$4\\ED5%;3Q%<SQ%13Q%13QS\nM199%13S1/-$\\T3S1T3QS1=%%T3S1/#S1ECR6/#R6ED5%T='=1=W1=T5%W47=\nMW='==T71/-%%W=W1=T71W=W1A7?=(]'==W?=A4!W0-W=W7=W0(5`=W=W=]V%\nM0'=WXTE`2>/C0$GCA4GC2>-)0./CX^/C2>-`2>-)XTE[X^/C24GC>^.*XXKC\nM27OCBN.*>XHR>WN*BGN*BN-[XXJ*BHI.6(HR3HI[BGLR6(J*>WN*,HI[BEA8\nMBN>*,HJ*BHKS,D[SBEA8BD[G6$[S3N?SBD[S\\S)86#+S6%CG3DY.\\TY8\\X_S\nM\\T[S6$[S3ECS\\T[GY_/G\\_/SYS).6#).YX]83O/G6/-.6(^/C^=8\\X]8Y_/S\nM\\UA83O-.CX^/\\_./6%CSCX_SY_-.CX^/\\^?SY^>/\\X_S6%CSY_/GCX_GC_/G\nM6/-8CX^/6/-8CX^/\\X^/6.>/\\_-8C^?S\\_./CUCS6(]8\\X_S\\_./\\_-8C^>/\nMCX_SCX]8C^=8C^?S6(_GCX^/6/./\\X_GYX^/C^>/\\_./\\_./CX_G\\X^/C_/S\nMY^>/6(^/CX_GCUCS\\_./C_/SCX_SY_./CX^/\\X^1QVF&QR^1:<<OQ\\=I+Y%I\nMAL=IQVF1QX9ID2_'D9%I.L<ZD9$Z+X;'+SHO.L>1+\\>1D3K'.L=I:3II.B\\Z\nM+Y$O.CII+X8O.CHZQ\\>1:6EI.L?'.FEID3HZ.CJ1AL<ZAI%I.I$Z:9$Z+R^&\nMQVEI.FDO:9%ID3K':3J&D2_'+VDZ:6G':<<Z+VF1QR^1QY$OQY''QX;':9''\nM.I&1AL?'D;]I.L<OD<?'D9''QY''+R]I+Y'':6EIAI''AI''Q\\=ID9''D<=I\nMQVF&QSK'D6F1QY''+\\<Z:<>1QX;'QVF&+\\?':6EI.FDOQVF1ACII+VF1ACHO\nMAFEI+SK*RI$OD<K*AI$ZRLHZD<K*+]@ZRCK8+]C*.M@ZV'/*;3K*.FW*06TZ\nMV,ISV-@ZV-B6;7-S/&USV&V6/'/8RCS8;=AS<W,\\V-@\\13QSV-@\\<W-SV$5S\nM;6UMV#P\\<W-S<T5M;3QS<SP\\/$5%<SP\\/-$\\/);1/#S=<]V61=%%T47=/#S=\nMEI8\\/'/1/-$\\13S1145S/#S1T=%%W=U%13R6W3QS/',\\<SP\\/#P\\W=W=W3S1\nMT3P\\/#QST47=/$5SEM$\\/-'1ECQST3P\\T7-S<Y9S13QS<SQST45M/',\\;7-S\nM/'-S16T\\199M/-$\\ECQM144\\;3P\\V)8\\<W-%EFV617,\\V#Q%1=A%/$5%<SR6\nM13P\\<Y9SED4\\ECP\\/$5%EM%S/);1/',\\/$66<SQS/',\\T98\\/'.619;=13P\\\nM144\\T3S=T=V6144\\/-U%/-'=147=147=T45W=T5WW7=WT7?=A=UWT=U`W='=\nM=T\"%=T#=W=W==T!WW4E)W7>%0$GC=X5WUX5`=TE)=^-)(TE)0.-`0$E)24!)\nMX^/CXTGCXWM[XTGCXXKCX^/C2>/C>XJ*BN.*BC**XXHR3HKC>XJ*3GN*BHJ*\nMBHI[XXI8,C(R3HJ*BGOGBHJ*YUB*BEB*6(J*,N=8,O.*BHJ*6$[GY_,R,O/S\nMBECSBN=83N?GY^?S\\UCS3EA8,O/G3C(R\\T[G3N<R\\UCS3EB/\\T[G3O/S\\^?S\nMCUCS\\_/SC_/G\\_/G\\X_SYT[GCX^/YX_SCUCS6//GC^?S6/./CUB/3H_SYX_G\nMC^>/6//S\\X]83H^/\\_/SCX_SCUB/Y_/SYUCGY^?GCUB/CX_S\\_-8C_/GCX_S\nM\\^=8C_/SCX_GCX^/\\UB/C^?SCX^/CX^/\\UB/\\X^/Y_/SC_/S\\^>/C_/SC^>/\nMCX^/\\X^/CX]8\\^>/C_./YX_SCX^/YX_S\\X_G\\X^/C_./\\^?SCX_SCX^/CX_'\nM:<<OQX9I:<>1QY''QR^&AH8ZD3J&D2_':9&1.CK':9&&D6EI+X:&QSIID<<Z\nM.I$OQY$Z.L<Z+SII.I$O:9%I+Y&1D3HZQY&1:3J&+SHZD9$Z+VEI.CHOQVDZ\nMACHOD6EI.L?'Q\\=ID9$Z.FDO.L>1QY&1+VF1:3HZ:<=I.FEIAI''QY$Z:<>1\nMQVF1:6G'QR_':<=I.FEIQVEI:89IQX:1:8:_QVDOAL=IQ\\>1+\\>1QY%IQ\\?'\nMAFF&AI''OY$OAL?'QVG':8:1D8;'Q\\<Z+\\<OQR\\ZQ\\<Z.L=I:9&&D3II.FG'\nMD6F&D2^&:6G'.CJ1:2^&:9&1.I'*RD'*.H:&D3HZD=@O.LHZV)$Z.CHZV\"_*\nM.MC*.LHOV-C8;=A!;3K*RMC8.MC8<\\J6ELISV,J6/'/8RLH\\ECS8/)9S<W-S\nM/#P\\<Y;8<T5SECQ%/&U%;99%/'/117-S<VW1144\\/#R6EM%%ECQS/$71T7/1\nM199S1=W=/#S1<]$\\W47=1='=13S=T=U%T3R613S1/$4\\W3P\\EG/11=%%/'/=\nMT3P\\W3S=T45S/$4\\<]'=T3S1T98\\/-$\\198\\1466/-$\\13R6T7-S/'-%<]$\\\nM17,\\/'-%<SS11471/#S1/'-S<]%S;3QS/$4\\/'-S/#P\\17-S17-M<Y:6<T5S\nM/',\\<T66V$66<W-S<SQ%1=@\\<SQS;3P\\/',\\;3QM/'-S/$66;=%%13QS;=$\\\nMT45%/$4\\<Y9S13P\\14711=U%ED4\\/-'=13S=/-T\\W3P\\/-W1W='1=T5%W7<\\\nM17=%=]U%W45WT=W=T87=(]V%=X7=0-W=W4G=A7=`285W27=)27=)24!)(W=)\nM=R-W2>-)284C24E`287C2>/C24E[24E[XXI[2>-)27OCBN.*2>/CXWOC,N/C\nM>WLRXS+CBN.*>XI.,D[CXXI[,DY8,C**BN.*YU@RBGM.BGM8Y^=83D[GYTZ*\nMBN>*,C**,N>*BO.*BO-8BDY8BD[S\\UA8BE@R,ECS,C)83C+S\\S(R,O,R6/-.\nM3EB/3DY.\\_-.3O-.\\_/G3EB/\\X]86$Y8CX].Y_-.\\^=.6.=8\\_./CUA.\\_./\nM\\_./\\X^/\\X_SCX]8CX_G3H_SC_-8\\_/SC_-8CUB/C_/SCX_GCX]86%CS\\UB/\nM6/./CX_GC^=8CX_SC_-8YUCSC_/GCX_G\\X]8C_/SC^>/\\_-8CX_S\\_/GYX^/\nMCX_SC^?SCX_GC_/SCX_SY_./\\X^/C_/SCX^/\\X^/C^?SCX_GCX^/\\_/SC_/G\nMC^?S\\X^/C^?SCX^/C_/'.I&1D9&1QR\\O+Y&&.FG'.FDZAL<OAH:&+SJ1.B]I\nMQR]I:6DZQSII.H;'+R\\Z.I&1QSK':2]!+X8ZD3HZACII02^&.CJ1.I$O.CHZ\nMD<<Z+Y'':2\\ZD6DZ.CJ1.H;':9$ZQ\\>1:3II.CHO:<<O:8;'Q\\=IAL>1QVDZ\nM:<?'D3K'QVF1AFEIAFEI+Y%I:9&1D6EIQ[]IQY%I+Y&1AH9I+Y&&:6EIQ\\?'\nMQ[]IAL<O:<=IQVEIQVEIQVEIQ\\>&QR^_O\\?':<=I:<=ID9$O:8:1Q\\?'Q\\=I\nMD2^1QVG'QVDZQVDZ:3J&D3J1:9$OD6F1D3HZD4&1.FG*.I$Z+T%I.LI!.CJ1\nMRCHZD2\\Z+\\K8RI$Z.M@Z+SHZ.D$Z<\\K*.CK*;3I!V,K8<T%MV'/8<\\K*RMC8\nM/'/*ELK*/-@\\RI8\\V-@\\V#QMECQS<W-S;7/8/$5M/'-M/#Q%<SP\\T466T3P\\\nMEG-%1471T=%S<]%%T3R6147113P\\W44\\T44\\W3Q%T=&61=U%13P\\147=W3R6\nMW99%T3S1W45%ED5%/#P\\17,\\/#S=T44\\W44\\1=W1EM%%144\\13P\\/'-ST=$\\\nM13Q%1='1/#R6/#Q%/'.6;7-S<SQ%1466/'-M13QS13Q%17,\\13QM<W-%<SP\\\nM;3QS;6UM<SQM/-B617,\\13R613R6/):6<W/8V',\\/#QS/#P\\<SQS;3QS1=A%\nMV$4\\/#QS<W,\\/$66<]&6144\\/#QS<]$\\<SR6<SQSEM$\\W3P\\1=T\\ECS1T47=\nM/$5%T=W=W47=W7=WW7?=145W1=W1T=%%W7=%W471=R/=0-%`W85WW7=W=W?=\nM=X5`=W=W=T#==W>%=W=W0(5W24F%X^/C0(5)24E`X]=)2>/C2>/C2>/CBN-)\nMX^-)2>-)24F*X^/CBGOCXXKCXXI[BN/C>WLR>S)[>S(R,C**>WLRBN-.XXI.\nMBHHR6$Y8>T[G>XI[YTY[BC).YXHR3D[SYS)8,ECS6.=8YUCSY_/S\\_/S,O.*\nMYT[S\\_/S\\_/G,O,R3ECS,O/S\\^<R3C)8\\UA8Y_/S\\_/S3O-86$[G\\_/G\\S).\nM\\UA8C^=.3O/S6/./YX_S\\X^/YX_S\\UB/Y^?GC^>/\\^?SCX]8C_/G6/./\\^=8\nM\\_./CUCS6(_S\\_./\\_/GC^>/\\^>/\\_./6%B/C^=8C_/S6.?G\\UCS\\_./\\_/S\nM\\X^/\\_./\\_/SY_./CX_GC_/G\\_/GC_./\\^>/CX_S\\X^/\\X^/C_/SCX^/\\X^/\nMCX^/CX^/\\X_GC_/SCX_GC_./CX^/\\X^/CX^/\\_-IQVG'D6EI:3J&.CIIQVEI\nM.I%I.B^1.B]ID2_':<<ZAFDO:3II.CHOAFF1ACJ1QSHO+Y$ZQR\\O:9$ZD9&1\nM.CHZ.H8Z.H8OQVEI:9$O.CJ&ACHZ:2\\Z.L<OQVDZ.FDZD88ZQR\\OQVDO+SII\nM:<=I:6DZ.L>&D8;'QVEI.B]ID<>1QY$O:9%IQ\\=IQ\\=ID8:_D9%I:6F1AFF1\nMQVEIQ\\>1QVDOQY&&-<?'Q\\>1:6EI:9&1:8:_O\\=IQ\\>_O\\>&OVEIOY''OVG'\nMO\\>1Q\\?'QVF_D9&1AI''ACHZQ\\=I:9$Z.L?'QSII:3II+\\>1AB^&D6DZ:3II\nM.H9I:3HZD9$ZD6G*RLJ1D4$Z.I&1V,J1.B_*D9$Z.CK*V-C8V&W8;6W*RLK8\nM0=A!RLK*;6W8RMC*<SS8V#QS/',\\<\\H\\EM@\\V-B6/'-MV#Q%/-@\\<SP\\EFT\\\nM<SQ%<W.6T3P\\T7-S145%/'-%/-%%T45%<T66/#QSED7=/#R6T3P\\W=%%13Q%\nM/#Q%T3Q%ED71144\\W9;=/#P\\W45%/-'1W='=W='=W3P\\ECP\\/-W=/#Q%T47=\nMEM'=<T71/#S1T44\\/$6613P\\EM'1/);1ECR6<T5%13QS/-$\\T99S144\\/&W1\nM13QM<W-S;466<W,\\/'-%17-S198\\;3P\\/'/81=@\\/#P\\V-C8/'-%145S;7-M\nM/&US<T4\\13QS<VUS<SS8V-@\\/',\\/-A%13QS;3Q%;3S1;45S/',\\<T4\\<]%%\nMECQ%/#S1/$5SEM$\\147=W9;=1471T='113P\\1=UW=SQ%W3QW=SQ%W471T7?=\nM1='=A871T87==W?=0$E`W4F%A4EW24!)=X5`0$F%0$E)A>-`=T!)285`24GC\nM2>-)0(5)24#C24GCX^/C24GC>^.*X^/CX^-)XWN*XXKC>^/C,C+CBHKCBGOC\nMXXJ*>WN*>^.*XS(RBN.*,HI[6.,R,E@R6$Y8,HHR>XHR>S**BEB*BC).BN=8\nMYUB*YS(R,ECG3N?S\\_/S6//S,HJ*3O-8YT[G6%CSY_,RBEA83O-.\\U@R\\S+S\nM,H_S,O/S\\_-83H].\\_/S3O./6(_S6$[S6//GCX].YT[G\\UB/CX_S6.>/Y^>/\nM\\T[G\\X^/\\UCS3H^/CX^/C^>/6(^/C^?G\\_-8C_./6/./\\^?S\\_./CX^/CX^/\nM\\_./C_./\\X_SY_./CX^/\\X_SYUCGCX^/YX^/\\^?GCX_SC^?SCX_G\\_./CX^/\nMC_/S\\X^/CX^/CX^/CX^/\\^>/C_/S\\_./CX^/\\^>/C^>/YX_S\\X^/CX_SYX_'\nM+R\\ZQY&1.I&1D3J1.CK':6EI.CHZ+Y&1.CII:3II:9&1.CHZD9&1:3J1D6F1\nM.CJ&+R]!D6DZ:3J1.CHZ:88Z:9$ORH:&.FF1.CIID<>1D3K'+VF1+Y$Z.FF1\nMD3II:2^1ACII:6DOQVG'D3II.I%IQY'':6G'+R]I.B_':9&1D89ID88O:6G'\nMD6G'D2^1QVDOQVF1D9&&D8:1AL>1OX:&QY''O[]I:<>&O\\=IOX:&:<>_Q\\>1\nMAL>_:37'QX:&QY%IQ\\>&-;]I:<>1QY&1OY&1:;^1QVF1:6G'QVEI:88O:8:1\nM:8:1D<<Z.I$O:6F&D8:&:3HZ.CJ1.I$ZAD$Z+T'*AB_*+SHO+SK*.LI!.LK*\nMV,HZRMC8+]C*.CK8RLK*RLK*.G/*RD&6.MAM;<H\\V'-M<W/*/&UM/-AS/)8\\\nM/)8\\V-C8EG,\\17-%/#Q%17-M<Y:6<W-S/-$\\T3P\\/$5ST3QS/'/11=%S/-$\\\nM<]U%/-U%/$71T3Q%1=W=/$711=$\\W=U%/-T\\13R6T=U%1471W3P\\147=W=T\\\nMW=U%/$5%/-$\\/#Q%/$7113S1W7/1/-W113S=/-$\\W7,\\ECP\\<SQS/-$\\/-$\\\nM<SS1<W,\\13P\\/&T\\16US<VT\\;3P\\13QS/#S8<SR6<W-%V',\\ED661478<W-M\nM/'-S/$78<T5%V$78/$5MV$5%/#QMV#Q%17/8<]@\\/#S8EFT\\17-%/#P\\<SP\\\nM13P\\<T5%1=%%/#P\\/$5%13P\\/'/1/-$\\1=T\\EI8\\ECR6W47=T47=1=W=1=W1\nM/-$\\/#Q%W47==]U%W471=T5WW=UWW=UW=]'=A4#==T#=W4E`=]U)27=WA4E)\nM24E)=TEW286%0.-)2>/C24!W2>.%2>.%0./C2>/CXWM`2>-)X^-)X^-)2>.*\nMX^.*X^.*BN.*BGOCX^/CXS+C>^-.,HJ*>S+CBHJ*BHKC,C(R3HI.BHKCBC**\nMBECG3HI.,C)[Y^?G3D[S,O.*,DZ*BHJ*,HI8\\S**\\XI.\\^?S3EB*YT[G,C)8\nM6%CSY_-.\\_-8YS).3H_S\\^?GY_/S\\X_SC_/GCT[S,N=.3D[G\\UCS\\UA8\\^=.\nM\\_/GYUCSCTZ/\\X].YX_S6.?S\\^>/C^?S\\X_S\\X^/\\_-8CUB/CUCS6(^/\\X_G\nMC_./6(^/YX_S\\X^/CX^/CX^/\\X^/C^>/\\X^/\\_./Y^>/Y^>/\\_./C_/SCX^/\nMC_./\\_./C_./CX_SCX^/CX_G\\X_SCX^/CX^/YX_SCX^/CX_SC_./CX_S\\X^/\nMC_./CX_SC_./CX_SCX^1.I%IQVF&.CJ&.FF&.CII:9$ZAI$OQR]I+SHZ+X8Z\nMD3HZ09%IAI$Z+SHZ:88Z:6DO:9$ZAH:1.CJ1RB^1.H:1RFDZ.CJ1:3II:9%!\nM.CI!:9$Z+VDO.H8O:9$ZD2]IAI$O:89I.B]I.L>1D3HZ+VEI+Y%ID9&1.B_'\nMAFF&D9''D2^1AB^1Q\\?'D<?'QX8OQVF1:9''QX:_OVF&:8;'Q\\>_D;_':<=I\nM:6F_-8;'O\\<U-6EI-35IAI%I:;_'-<?'Q\\?'AI''Q\\>&O[^1D8;'AL=IOY&1\nMOX:_Q\\=IAI%IQVG'QX:1.H;'QY$OD<>1:3II:6G':6EI:9&1.CJ&.FDZ.I'*\nM+SHZ.CK*RCK*+]C8D=C8D<K*.CI!V#K8;7/*;6UM.FUSV'-S;9:6V'/8/'/*\nMELH\\/-B6<]AS<Y9S/#P\\EMB6/#P\\/'-S;3R6<T4\\/#Q%1=%%T7-S17,\\1='1\nM147=14711=T\\T45%W44\\1='1T=T\\/#S1W47=W=W=T=T\\W=T\\13S=/-%%1=W=\nMW=T\\T=U%W3Q%1=%%/$7=/#P\\/#S=19;=1=W=13S=/#P\\/-V6EMT\\W=V6T45S\nMT7-S13P\\<SQ%T471/#S1W7-S/$66T7,\\T45S/#S1<]$\\<SQS<]&6/#Q%<Y8\\\nM<T5%/$5M<T5%1=@\\<VW8<W,\\V',\\ED66/'-SV-@\\;7/8EMAM/);8V-AM/$78\nM/#S8/#QMEMAS/#QS;=AM<Y;8/&U%<W-%/-%%EG,\\145%198\\ECP\\13Q%EI8\\\nMT=%%W7/1/-W1W=T\\W47=W45%W=W=/#S1=]W1W7?=1=%WT=%%T=W=W=W1W7?1\nM=]U`W7=`W4F%0'=W0'?=27=W24EW24F%2>-)X^-)0$\"%=^-)0'>%0./CXT!)\nM24E)X^-[2>/C2>/CX^/CXTF*>^.*XXI[XXI[XXK7,HKCXXKC,HI[XWOCX^/C\nM,HJ*,N-[BC**>S).XWM8>TY83C(RBDZ*BN=8BDY8,N?G,HI.6.>*YXI8,C+S\nM\\^=.BO,R\\UB*,O,R6$Y8\\U@R\\UA8\\U@RYT[S6%CSBN?SY_,R3N=86/-.\\_-.\nMY_/S6//SC_/S\\UCS3ECG3O./\\_/S\\X_SYX_SCX_S6%A86.?GCX^/6/./C_/S\nMCX]86(_SC_/GCX^/CX^/YX]86/./\\_/SY_./CX_GCX_S\\^?SCX^/YX^/\\X^/\nM\\^?GCX_GC_/SCX^/C_./\\X^/\\X_G\\_/GC_/SC_/SCX_S\\X^/C_/SYX_GC_/S\nMYX^/C_./CX^/C_./CX_GCX^/C_./C_./C_./CX]ID3K'D88OD9&1D6DO.B\\Z\nM.H8ZAB\\Z.I$O0<HZ+VG*ALHZ+SHZ.D$Z+VDZACHZRFF&:3HZ.CHO.I%I+SHO\nM.CHOD6DZ:3II.LII.B^1+\\IID8;':2^&.CHZ.FDO.L>1QSII+Y$Z:9%I:9&1\nM.I$Z:9$OQ\\?':9$OAFG'D6G'QVDZQY''+Y''Q\\>1:6F_O[^&+\\?'QY'':2^1\nMD8:_AH:_QVF1D361:34UO\\<UQVG':<>&D<=IO\\<UQS7'OVF&Q\\?'AL=ID6F1\nMQY''Q\\=IO[^1D<>&+[_':<>1AL?'QVF_D9&1:<<Z.L=I.H;'QSK'.CHOD2]I\nM+SHZ:9''D3J1.D&1:88OD8;*.I&1D9$Z.D'*.LHZRB\\Z+SK*.B_*.CK8;=C8\nMRMASRMASRLK8RFV6<Y9M<Y8\\<]C*/',\\<W/*<]@\\/&W8/&T\\/#QS17,\\<SP\\\nM;9;117-%<SP\\/-'1W45%/)8\\W3R6ECQ%/-$\\W=W113P\\T3Q%T44\\T3S1/-%%\nMT=T\\1='=1='1W=T\\W3QW1=%%/-W=W=T\\W45%/-$\\/-U%147=1=W=/-W1W3S1\nMW=&6/#S=/$4\\T='1T=$\\ED661=%S1471W9;1145%/'-%<T4\\/);11=&6/#QS\nM13R6;44\\145S<]%S;3QM/$4\\V#QM/'-%<SP\\/'.6/#QS/-@\\;7.6/'/8/#R6\nM/-@\\/$4\\/#P\\/&T\\EFT\\;9:6ECQM/'/8ECP\\<]C8;3Q%/-B6ED5S;45%16T\\\nMED4\\1=&6/$5%ED5%1471<W/1/'.6/$66T47=/$5%W=T\\W=UW/$5WT45%=SQ%\nM/$71W=UWW45WW7?=T=W=A=W=0'?==W=`=]W=A7=`=W=W24!)=TE)0$!)24!)\nM2>-)A4E`2>-)XT!)XT#C24\"%0.-)0.-)2>/C27OC2>/CX^/C28KCX^-[XXKC\nMX^.*XXI[>^.*XWM[XXKCBHJ*BC)[BHJ*BHI8XXI.BGN*BHI8,C)[6(J*3HI[\nMYXKG>TXR6(HR6$XR,N<R,HKSYUB*\\S).BHHR,HJ*\\XJ*3O-.,N=.3O,R,D[S\nM\\S)8\\^<R,O/S3N?G,DY.6/./3O/SYX_GC_/GC_-86$Z/\\_/G\\X_S\\_./C^=8\nM\\^?GYX_S3ECS\\_/S\\X^/\\^?SCX_SC_/S\\_/S\\X_GC_./CX^/YX^/C_/SCX_G\nMYX_SCX_S\\_/S\\X^/\\X^/CX_GCX^/\\X_G\\X_SC_./C_./C_./\\_./CX^/C_/S\nMCX_S\\X_SC_./CX^/CX^/\\X_SC_./\\X^/\\_./CX_GC_/S\\_./\\X_GCX^/CX\\O\nM+SJ1+\\>1.I%I+R^103II.B]I.FDZD3J1.CJ&RB\\Z+SJ&.H9I.LII0<II04&1\nMD2\\O.I$Z+SJ&:2]I.CJ&D3K*:3IIRH:1RCHZRFF&.CHZ:3HZRB^1RB\\O:2\\Z\nM04&&:2]ID<<Z.CHZ:88Z.B^1:9$O+\\=ID3IID6F&QSJ&:6EIQ\\=ID<?'+\\<O\nM:<?'QY&1O\\?':<>&OX;'OVF1:<?':<>_Q\\<UQ\\>1OX;'QS6_:6F_Q\\<UD361\nMQVDUOVF&-;\\U:37'QS5ID35IAI&&:37':9''QY''Q\\>_:<?'AI&_:6F1Q\\>1\nMAL?':<<Z.FDZQVDO:9$Z+\\<ZD3IIAI$ZAFDZACHO.I$ZRH;*RI$ZD<HO+]@Z\nMV)'*RLHZV#K*;3K*RCIS<VW*;=C8V,K8;3ISRFUSRLK8EG-S<W/*V-C*<]@\\\nM<SQ%<]ASV)8\\13QST466T3Q%/$5ST3P\\/)9%1='=198\\T47=/#R61471/-%%\nMW3Q%/#P\\13P\\W47=T=U%/-'1W=W=W=%W/-W1W=W=T=T\\13S1W=U%W=W=T3P\\\nM13P\\/$5%W3S1144\\/-W=T=U%T3P\\W471ECS=/$7=W471EMV613Q%17,\\/#S=\nM<SS1/#QS1=%%<T5%<T7113P\\ECQS<W,\\<T5M<SQS/#P\\/&T\\/&US;3QM/'-S\nM<SP\\17-M<W/8;=AS/#Q%/',\\/&T\\EI8\\/$78145%<SQS/-@\\;6US/)9S;3R6\nMEG-M<W,\\V&UM;7-S/#QSEG/1<W-%<SP\\EI9S1='1T44\\/$7=<]W=/-$\\T3S1\nM1=%%T3S1T3S=1='1W=W11='1W=%WT45W17=%W87==W?=T='=W=UWW=UWT4!`\nM=T!)=TG=A7=)24!)XX6%A7?CXTE)0.-)=X7C0$E`0$E`X^.%XT#C>^-)XT!)\nMX^/CBN-)X^/C>XI)X^.*BDF*BN/C>^-[BN-[BN.*,HKCBDY.XXKCBC**BN-[\nMX^.*BHI.BDZ*>XI[,C)8>WLR>XI8BHJ*BC(RYUB*BECGBN=.3C).6%CG6(HR\nM,HI.6.?G,DXR3HKS,N?S\\S)8\\_/GYTY8Y_-.\\_/S\\X_SYU@RY^?S\\_/S6//S\nMCUA8CX_SC_/G\\_/GY^=8\\UB/C_./CX^/\\X_SC^?G\\X_SYX_G\\X_G\\_/SCX^/\nMYX_GCX^/\\X]8\\^?SC_./CX^/CX^/\\^?SCX^/\\^?GCX^/\\_/S\\X^/\\X_SCX^/\nM\\X^/\\X^/C_./CX^/CX^/\\X^/CX_SCX^/\\X_S\\X_SCX_SCX^/\\X_S\\X^/CX^/\nMCX_S\\X_S\\X_SC_./C_.1:6EI:6DOD6F1AB\\Z.H8Z:9%I.I'*AI$O:<J109%!\nMD3IID9%!RB_*.CK*RB^1AB^&.CHZ09&1:<HZ:4&1+VEI+\\K*D9'*.CK*.I$Z\nM.LHZACII+\\K*.D$Z.I$ZD9$Z.CHZ.FDO:3HZD3HZ:8:1+SK'.I'':2]IQR^&\nMQSIIQ\\=I+R_'QR^1Q\\=IQ\\>1Q[]I:<>1Q\\=IQ[_'D8;'D<?'Q\\>1Q\\=IQS7'\nM:6G'AC7'OVF1Q[\\UO[^_AFDU:<?'Q\\<UO[^&:88UD6G'D37'AL<UD35IQS5I\nMD9&1D<?':6EIOY%I:9''AI%IQ\\?':6EID6G'D<?'QSHO:3HZ.I$ZACJ&.B]I\nMD4%I.CK*D<HO+SJ1.LJ1.CHZRLHZ.CHZ.LK8RCK8.MC*V#K8RFUSV'/*RG/*\nMRCS*;7,\\<SQS;=ASRCQ%ED5S<W.613P\\/'-S;3P\\ECS1/'-S<]'1<W-ST471\nM/$5%/#P\\T44\\<]'1/#S=W44\\1=W1W47=T3S=T47=/-'=T471W3S=W3Q%1=UW\nM/$4\\/'?=W45W/$7=T45%1=W1T=%%W3S=/$7=T=W1/#P\\1=T\\EI;1W3S1/-$\\\nM/#S=/#S1ED71145%T3S1/#P\\<SR6/'-ST='1/$5S<T5M<W,\\1=%S17,\\144\\\nM13QS1=@\\13QS/)9S<SP\\EG-S/'-M1478<]C8EG,\\<VUSV-C8/#QS<]@\\/&T\\\nM/',\\<]B6<W-S<SP\\<SQS<Y9%<W-MV$66/-C8<W-S17-%;45%/#Q%13QS<SP\\\nM<]$\\144\\EM$\\/#S=T3P\\T98\\W3S=13Q%W3Q%/'=%/#QW=]W=W=U%1=W1W7=W\nM17=W=]%WW7=WA='=0$!W0$!)=R,CW=V%0'?=24E`0$E`=W=)24F%24E)A4E`\nM24EWA>-`XX5)0.-)X^-)0./CX^/CX^-[X^.*2>-)2>/CBN-)28J*2>.*BHHR\nMBC+CXXKCX^/C,HHRBN/C>XHRXXKCBHJ*6%@R6'M[,HHR3C).BC).>UB*>XHR\nM3N<R6$XR3O/S6%CG,N?GBEB*BHI86$Y.\\^>*\\UB*Y^<R3N=8YT[S6.=83D[S\nM\\_/S6%B/3N?G6$[S6$[S3O-8\\X_GCX_SCT[S6(^/6.=8CUB/6(^/CX]8\\_/S\nMYX^/6(_GCX_SCX_G\\_/GC_./Y_/SCX^/C^>/C_./\\_./CX^/C_./\\X^/YX_S\nMC^>/\\_./CX^/CX^/\\_./\\_/SCX^/CX^/\\X_SCX^/CX^/\\X^/\\X^/\\X^/C_./\nMCX^/CX^/CX^/CX^/CX^/C_./C_/SCX^/C_./\\_,ZD<HO:3J1D9%ID4$ORI'*\nM:3HZAD$Z.CJ1RD$ZD3HZ.I$OD<J&RB^1D2\\O.CHZ+\\J1AI$Z.B_*.LHZACK*\nM:<HZD3J1D3IIRI$Z0<HZRCJ1RH8Z+\\II:3HZACK*+Y$O:3HZ.CHZ.H9ID2^&\nM:9''+Y''D9%IAL<Z:2_'+X:1Q\\<O.L?'.L>1D<>1Q[\\OAI&1:<>&:9&_D9%I\nMOVDU:8:1D;_'OVEI-<>_:35I:<>1O[_':<?'AH8UAL?':<?'-35I-6EIQ[^&\nMQX9IQVEIQ\\?':<?'AH9IAC6_D;_'D9%ID8:&QY''QY''D6G'QY''+SK'ACHO\nMQ\\<Z+Y$Z.CJ1.FF1.LII.FG*RCHZRLHZRCHZ+\\J1RCK*D2_8V,K*V#K*;<HZ\nM;7,Z.LK*V-AS<\\K*V,K*<\\IS<\\IS;7-S/'-SV#P\\;7-S16UM;3QS13Q%13QS\nM<T4\\<T4\\T='1<SS11=%S1=%%<SQSW471/$4\\W=W=/$4\\W=%%W3S=W44\\/$7=\nMW3P\\W='=/$4\\W7?=1='=1='=/$7=W=$\\/-U%/-T\\W3P\\144\\/$71T3Q%W47=\nM/#S1W='1T3P\\/$7=W3S=/#Q%13S1/#P\\/$5S1=V6/-U%/'/1145S<T4\\<Y;1\nM<T5S/-%S<W,\\17-S;3Q%/'-S/)9M/)8\\ECP\\<W,\\<W.613P\\V$66/)9S/'-S\nM<SP\\17/8<Y:6/#P\\;=@\\198\\/'/8/&T\\/)8\\;=@\\/&USV#QS/-AS/'.6;3S8\nM13QM/&US<Y8\\16T\\<SP\\T3QS199ST99S1466/-U%/-U%T=U%W3Q%W3S1=]W1\nMT45W=]'=1=T\\W=UW=]W=A47=A7=WW7?=A=W=W=UW0'=W0$E`W7=WW7=)W4EW\nM=TE`285WA4F%XT!)27?C0$F%X^.%A4GCX^/CX^/C2>/C24#CXTGC24#C27M[\nM>TGCX^-)28KC>XJ*X^-[XXKCXS**,GLRBC**XS**XXJ*XXKC>S**>UB*,HI8\nM,HI[3GM[3HHR,DZ*,HJ*,DXRYUA8>XKGBHJ*3HKS6%A.,O/S6(J*BN?GBO/S\nM\\_-.3O/S\\_-8\\_-.C_-.,D[GYX]83D[S3DZ/\\S(R\\_/SCUCS\\_/G\\TY8\\X^/\nM6%B/\\T[SC_-8\\^?GCX]8\\_./\\X^/\\_/GCX_GC^>/YX_GY_/GYX^/CX^/CX_G\nM\\_./CX^/C_./CX^/\\_./CX_SCX_S\\X^/CX_SCX^/CX^/CX^/C_./\\X^/C_./\nMCX^/CX_SCX^/C_/SCX^/CX^/CX_SC_/SC_./\\X_SCX_SCX^/CX^/CX_S\\X\\Z\nMRI&1+\\HZ:<J1:3HZ.D$Z.I$ZALK*+R\\ZD89!D3HZ.B\\ORLK*+\\J1V,HORLI!\nMD<K*D3I!V,K*.CHO.LJ1D3HZ.CJ&.CHZ02\\Z.H;*.LJ1:89IRI$Z089!RB\\Z\nM:3HZ.LHO:3J&:6EI.L>&D6EI:3J1.L<ZQSHZ.FG'.H9I.I&1:<<OQ\\?'+VG'\nM.L>&:<=IQR_'QX:_D;_'D9''D8:&:<<UO\\?'-35I-9''O\\<U:34U:37'-37'\nMQ\\?'OX:&Q[]IQVDUQS6_Q\\?':6G':6DUAFG':34UQVF1O\\?':6F_Q[_':<=I\nMQVG':6EIAI&1:<>1+VG'D2^1D9&1:3J1.CIID3HZ+SJ1.FDZD3J&D9$Z.CHZ\nM.LHZV)'8.D$Z.LK8;<IS<]@Z<W/*RCK*;<ISV-AS<\\IMV,H\\<\\K*RG/*EFW*\nM<SP\\17-SV$5MEG-%199S/#Q%<]$\\<SP\\17,\\T471/#QS/)8\\/-W=T='=W44\\\nM/-W=W3S=/#P\\13P\\/#Q%W44\\T45%/-UWT471W=UWW3P\\W45WW3S=T=%%/'=%\nMT=W1W=T\\/$7=13P\\1='11=U%W3S1W=$\\W471W=$\\1='1T=T\\T45%/-V6W99S\nM1=T\\ECS=/-$\\T=$\\/'.6/)9%<Y8\\T7.6ECP\\1=&6<W-%17-S;44\\17-%/#QM\nMECQS/#P\\/',\\13QM<T5M17-M;6V6ECS8;=ASV',\\<VUS<W-%198\\<SQ%<]@\\\nMEG/8V)8\\/#P\\V'-S/#QM/#Q%ED5S<SQMEG,\\16UM<T5S<Y8\\T=T\\19;=17,\\\nM13P\\W=W1W3S=/-U%1=T\\13Q%1=W1W471W45%W=%WT45WW7?1W45WW85%T=W=\nMW=UW0(5WA7?=0-W=27=WA7=W2=U)24!)0-U`2>-W24GC=W=`A4#C=^-WXT#C\nMA4!)A>.%XTE)2>-)>WM`0..*X^/CX^-[>XKCXXI[BDGC28J*X^/CXXJ*X^.*\nMX^/CBGM[BHJ*XXI.X^-[>S)[BHKC,C)8BGM8,DXRXUA83C).>U@RBHJ*,EA.\nM3HHRYXI8BC(RYT[SY_.*6$Z*Y^?S\\XKSYUA83DY.,C+S6#).\\TY8\\_/SY^>/\nMCUCS\\UA8\\X_S3O-8\\^?SC_./\\_/SY_./C^>/\\UCGYX^/6(^/\\_/S\\^>/C_-8\nMCX^/CX_SCX_SYX^/CX_GCX^/\\_./\\X^/YX^/C_./\\X_SYX^/C_./CX^/\\X^/\nM\\_./CX^/CX^/CX^/C_./\\X^/\\X^/\\X^/\\X_SCX^/CX^/CX_SC_/S\\_./\\X_S\nMCX^/\\X^/\\_/SC_./CX_*AH8Z+SJ1AFG*D9$ZRLK*.CK*.CK*RCHORLHO.LHZ\nMRLI!V#K8+\\HZ.LI!.MB1.B^1.I$ZRLHZV#HZ.CK*RB^1.B\\Z+Y'*RH8O04'*\nMACK*.CK*RI%!AFDZD4'*:3HZRCHZ:2^1.CHZ.CHZD88Z:3J1D<=IAFF1QVF1\nMAL>1QR_'AFDZQVG'AL=IQR^1+R^1Q\\?':<=I:9&1OVF_:<?'OS7'AI'':;_'\nM-<>1OVEIAL?'-<<U:6G'QS4UORR&-8;'Q\\=I-<<U:6EIO\\?'Q\\?'Q[\\UOX8U\nMOVF_-37'-9&_QY%IQVG'D6G'O[]I:<=ID8:1D<>1D3HO.L>1:8;'AFEI+X8Z\nM.CII:6DORCJ1RB_*+\\I!.LI!.CI!D=C*V#K*RM@ZV#K807-SV'/*.MAM<\\IS\nMRM@\\<W-SV#S*<\\K*/&T\\V&T\\<W-%<SP\\/#P\\/#S1/$4\\/#S1T3R6T3QS1=$\\\nMT3S=/#R61=%%T45%/#P\\T=$\\13S1/-T\\W45%W3Q%1=W=W45%T=U%T3S=W47=\nM=T7==]W=W3QWT=W=T=$\\W3Q%T471T=%%W=W113S=1=W=/#S=1='1/-W=/#S=\nM1=T\\/-U%T3P\\W=W1T=$\\13Q%/-%%/$4\\ED5ST47=/);1/'-S<SP\\ECP\\T44\\\nMT471/$4\\T3QM17-S/#QM;3R6/$5S/'/8EFUS/-@\\13QSV#R6;99M<SP\\EM@\\\nMEG-M/$5S/'-%/#P\\<SQM/-AS/$5%<]@\\V#P\\/&T\\/&US1=%%;7-%ED5S17-M\nMT3Q%;45S/#R6<SR6<T4\\ECQ%144\\/);1/-W1/-%%T45%/-W=145%T45W17?=\nM1=UWW=%%W47=W='1W87=W87==]%WA87=W=W=W7?==W=WA7=WA4E)24E)=X5`\nMA>-WX^-W24EW27=)A4!)0(5`24#C0$!)XT#C24GCXTE`24GCX^/CX^-)BN/C\nMXXJ*XXKC>^.*28I[BHKCX^/CBHKCXXJ*XXHR3GOC>XI.BN.*>XI.6%CC>S**\nM6#)86$Y8,EB*6%A83EA.>XI8BHJ*BO.*YTY8YS+S\\TXRY_-.3N=8BO-.,O/S\nM6%A8\\^?G\\_/SY_-.C^=8YUA.3O/GC_-8C_./6.?SCUCSY_-86.?GCX]8CX^/\nM\\_./\\X_SYX_G\\^>/C_./\\X_SCX_SCX_SC_./CX^/\\X_S\\X_G\\_./CX^/\\X_S\nMCX^/C_/SCX_SC_./\\X^/CX_SCX^/\\X^/CX^/CX^/CX_SCX^/CX_SC_./CX^/\nMCX^/CX^/CX^/\\X^/CX^/\\X^/\\X_S\\_/SCX^/C_,Z.CHZRLHZ.CJ1RH;*.CHZ\nMRB_*.CJ1.B\\Z+Y$O.LHZ.M@Z.CK*03HZ.B\\Z.CJ1.I'*03I!+SK*V-C8D<K8\nMRLHORCHO09$ZRI$Z.LJ1RLK*RCJ&+\\HORB_*RCI!.FEI.FF&+SK*:2\\ZRI$Z\nM.LHZ+\\<Z.B\\ZQVF1+SJ1D<>&+X;'Q\\>1AL>1D6G'D<=I+\\=ID9%IQ\\=I:<=I\nMD9''D<>_D;^_D88U:9&1:;^&:6F&Q\\>_-34U-35I-;\\L:<?'QS7'AL<UO[_'\nM:<?'Q\\>_QS6_:;^_OS7':<<UQ\\?'AFEI:<?'AK^&O[_'D;^1D<<OQX;'.I$Z\nMQY&&D<=I+X9IACHZ:6EI.I&1RB\\ZAI'*:6DZ.CJ1+R\\Z.CK*.LHZ.LK8RM@Z\nM;=AM.LIS0<IS<\\HZ<\\K*RLH\\RG-S;=AS/,ISV#S*;6W8ECS8;=@\\<W,\\/'-S\nM13Q%1471<T5%/',\\T45S1=$\\1=T\\EI9%/-$\\/-%%T3S11='=T3S=17<\\W=W=\nM1=W=T3QWT44\\1='=1=%WW7=WW=$\\T=W==]'=T=W1W=W1W=W11='1T=W1/#S1\nMW3S=/-'=T3S1/-U%/$7=W3Q%/$7=/-%%ECS1EMT\\T3P\\EMW1/$71W=%S<T66\nM<T4\\/#P\\T7,\\T=%%/'-M/-$\\13P\\EFW1<]B6;44\\<W-MECQS<T5M/&UM<SP\\\nM/#S8<W/8<SQ%V$5S<W.6V-@\\ED5S/#P\\<SS8ECS8/&UM/#R6<SQM/)8\\145%\nM;6W8/#Q%<SQS145S<SP\\<SQ%/-$\\17,\\<W/1/-%S/$4\\T45%/#P\\T45%1=T\\\nM13S=T3Q%W7?=T=T\\/'=%W=%%T='=W=W==W=WT86%=X7=W7?=W7=WT85WW87=\nM=]W=0$#=0(5W=W>%W7=`0$E)=W>%24GCXTE)=^-)=TGC0(5)A4#C2>/CXTGC\nMX^/C24!`27OCX^/C0(KC24F*BGOCBDF*XXJ*BHI)X^-[XWN*>XJ*X^/CXTY[\nM,N-.3HJ*XTY[3HHR>^,RBDZ*,HI.,HI83N=8BC**Y^<R3C+G3HHR,HKG3HJ*\nM6//SBEA.3N?S\\UA86$[S3D[G6/-8Y_-8\\TXR\\_-.\\X].C_-.C_/GYUB/6(].\nMY_./YX]8\\^=8CX^/\\X^/6//SYX_S\\X_SCX_SCX]8CX^/\\X^/C^>/\\X_SCX^/\nMCX_SC_/SCX_SC^>/C_/S\\X^/C_./CX_S\\X^/CX^/C_./\\X_SCX^/CX^/CX^/\nMCX^/\\X^/\\X^/CX_SCX^/\\X^/CX^/CX^/CX^/CX^/CX^/CX_SCX^/\\X_SCX]I\nMRB_*RCHORLK*RCHZRCHZRCHZV\"_*V#HZD<K*V)$ORCK8RB_8.CK*RB_8+\\K*\nMRD&1D9$ZD3HZ.MC8+\\K*.LK*.I%!.CK*V,J1.CJ1D3HZ.LK*+\\HZD2\\ZD<J&\nM.LK*0<J1D8;*0<J1089I.FF&+SHZD2]I:2_'.CK'QY$O.I&1QY$O:9&1:<?'\nM.I&&Q\\>1+[]I:88OQR^_OVG'AI%IQY''Q\\>_Q[^1:<>_QS7'QS7'Q[_':6G'\nM-6G':<?'OVDU:8:1:<<UO\\=I-37'-8;'QVF1QX;':<?'QS7'OY%I:;_':;]I\nM:<>_QVEID6F1:<?'D9&&QR^1QY%I+SHO.FG':2]I.I&&D9&&RI'*.I&&.D$O\nM.B\\ZRLHOD9'*V$'*;3K*RCK*RMC*RLISRG,ZRG/*;=C8V,IMRLIS;7-S;3P\\\nM/#S8V',\\ED78<SQS<SQ%144\\<SP\\T45%/#P\\1=$\\T=$\\/#P\\/-T\\13S1W45%\nMW=W=/-'1T=W=T3S11=W=W=%%W44\\W='1144\\13S=W3S=W7?=W=W==]T\\=T5%\nM/#Q%W=$\\W=U%W47=/-W=W3P\\1=%%/#P\\13S1W3S1T47=T44\\/$4\\T3P\\W45%\nMT=T\\/$4\\/#Q%/$5%T7/=W44\\/#QSECQ%T=%%1=%S<SP\\/'-S<]$\\;7/1;3P\\\nM;7-S/&U%/$4\\;3R6<SS8/$5M<SQ%199%;3QS/',\\;7,\\/'-%<W-M/#Q%<VV6\nMV$5S<VT\\1=C8/$5%17,\\;3QS<T5S17-ST3P\\<T4\\;7,\\/#P\\ECP\\17-ST3P\\\nMW3Q%17,\\T7,\\14711=%%T47=T=U%T3S1/-W=T=$\\T7=%T7?=W=%%=T5%W=U%\nM=]UW147=W=%WW2/==X6%W=W==]%W=T!WA7=`A4!WA7=W2=UW=W=W0'=W0'=W\nMA4#724E`2>-WA4\"%A>/CX^/CA>-`2>/C24GCX^-)XTGC28I)X^/CXTGCX^/C\nM2>/C>XKCXXJ*X^/CX^/C,C**X^,RBC+C>WM.,N.*>XJ*3C)[>S)8BC**3DZ*\nMBN=86(J*3EB*3C).6$Z*Y_.*BO/S\\TY8,N=.,HI.\\^=.\\T[SYUCG\\T[G3O/S\nM6(_S3H]8Y^=.6%CS\\X]8YUCSCX^/YX_SC^>/C_./Y^?G\\_./6.?GCX^/CX^/\nM\\^?S\\X_SCX^/\\^?SC_/GCX^/C_./CX_SC_./\\X^/\\X_S\\X_SC_./\\_./\\X^/\nMCX^/CX^/CX^/CX^/C_./CX^/CX^/CX^/CX^/\\_/SCX_SC_./\\X^/C_/SCX_S\nM\\X^/C_./CX^/CX^/CX_*.CHZ.CHZ.CJ1.B_8.M@O+R\\ZV#HORCI!.B_*RM@Z\nMRLK*.CK*V-C*RLK8.B_*.CK*+SI!.M@Z.CK*RMC*02_8V\"\\ZRD$ZRLHZ.LHZ\nMV,HZRLJ1RI&1V#K*RLK*D3J1.I'*.I$Z:<J1D3IIACJ1:6EI.FDZ09%ID6EI\nM:2^1+\\>1+VEID8;'D6DOACK'QVEI:9$ZQX8OQ\\<OD9%IOY''O[_'Q[]IQY''\nMO\\>_-9%ID37'QY%ID9&&QY''O[\\UQX:_OY&_D<?'O[_'-<<UO\\>_:88UQS61\nM-34U:<?'D6F_-<>_D6F1:8;'QVF_QVG'Q\\=IQ\\>1D89I.I'':3HZ.L<O.B\\Z\nM.FDO:4&1:6DZRD'*.CK*D3HZRLHZ.M@Z.LK8;2\\ZV&W*RCK8.MC*.FW*.CIS\nMV,K*RLISV-C8<W/*/&W*V$5SV#P\\<VW8V'-SEFU%<SQ%ECR6<W-S<Y9%T466\nM13Q%T=%%T3P\\W471W=W1W45%/#S=W3P\\1=U%1=%%W=%%W=W=W7=%=]W=W45W\nM1=W=T=T\\T4711=$\\W471/-W1=]T\\W=U%T='=W=W1/-UW1=T\\1=T\\/#Q%W47=\nMW=T\\T=W1W=$\\W=$\\/-$\\W=W=/-%%ED5S<]'1W=T\\/'.6/-$\\W3P\\/#QS/'-%\nM145S1=%S/)8\\/$71/$5%<T5MEM%%;7,\\<SQS;7-%;3P\\/#R6;3P\\/#S8/#R6\nM/$78EG,\\<SS8<T5M/&US1=AS<]AM;3R6V#Q%<W,\\/#QM;3QS<Y8\\/#P\\17-S\nM<Y8\\13Q%/#Q%/-'1T3QS<]$\\198\\13Q%<SQ%W=T\\13Q%W3P\\W='=/$4\\145%\nMW=W=/'<\\W=W1T7=WW=W=T=UW17?1T='=T7=WW=W1=X6%=W=W0'?=W4!W=T!W\nM0-U)=W=W=]UW24EW=T!W=TF%0$!)0'=)=W?CX^/CX^.%0-=)XTGC24E[XT!)\nM24E)X^-)XWOCXWM[XWOCXXI)X^.*XWN*XWM[>XI[>^.*BGN*BN.*XXJ*,HHR\nM,HI.BHI8>WN*BC**BHI8BHI.BDY[>^>*BN=8BC(R3D[G3ECGYT[SBDY86$Y.\nMYTY8YT[S,N=.3O-8,D[GY^?SCX^/Y_-8\\_/S\\_/SC_/S3EB/\\UCS6%CS\\_./\nMC_/S\\X]8Y^?SYX_SCX^/CX_GC_./C_./C_./C_/GC_./CX^/\\X^/CX_SCX^/\nMCX_S\\X_SCX^/C_/SCX^/C_./\\X^/CX^/C_/SC_./C_/SKX^/\\X^/C_./CX^/\nMCX^/C_./CX^/C_./C_/SCX_SCX^/\\X_S\\X^/CX^1.CJ&.B\\O.CK*RLK*RI$Z\nM+SK*.MC8.CHZ.M@Z.CHOV\"\\Z.LK8V-C8V,HZ;3HORMAMRM@Z.B\\OV$'*RLI!\nM+R\\ZRMC*RI%!V#K8.CHZ+SJ1.CK*RI$O+SHZ+Y&1D2^1.LK*.LHZRI$ZACHZ\nM:<I!:<IID6EI:3HO+VDO.FDZ.FDZ+R^1D2_'Q\\<ZD9%IAL>1:2\\ZAL?'+\\?'\nMOX9ID<>1:89IO\\>1+[_'OVG'D<?'-<=I:;^_:6EI:<>1O[\\UO\\=IO\\<UQVG'\nM:<=I:9''AK_'Q\\=I-8:1-;_'QS7'QY&_D<?':8:1QY&_:;^1OR_'QY%I+SII\nMD9&1Q\\?'QX9ID6DZ.L<Z:6F1D3II.FDZ.LHO.CK*D3HZ+R_8+SHZV,K*0<K*\nM.CHOV#HZRMC*RCK*RFUS.MASV'/8RMC8RCS*/&T\\/'-S/)9S/-B6;3S8V',\\\nM;=$\\17-%T7-S<SQ%/-$\\T3Q%1=T\\T3S1ECR6/-'113S1T3S=W=T\\T3S=W=U%\nM13S=W3S=13S1/-$\\W7?=T=W1W45WW47=1=W117=%13Q%W='=/'<\\W7<\\W='=\nM=]U%W=W1/-W1T='113S1W=W=/-W1W47=1='=/#S1W3P\\/#P\\/#S=/$4\\13S=\nM/',\\145S/$5%/);11=%%/)8\\/#P\\/'-%/-$\\/$5%T45S/)8\\<W-S17,\\<SR6\nM<VU%ED4\\13P\\13QS;7,\\/&W8/#QSV):6/#Q%<SQ%<SP\\199S/$5SV&US<SQS\nM/&V6/$5%16US/'-M199S;6US16T\\<T4\\<]%S/):6145%/$5SEG-%<SS1T45%\nMW45%W3P\\T='=W47=W=T\\W4711=$\\W=T\\T3P\\=T5WT7?=W471T=W=W7?==]%W\nMW85`W84C=W?==X6%T=W==W?=2=W=0'=W=W=)0$E)=TEW24E)24E)0(5`XT!)\nM2>.%XX5)A4GC0./C0./CXTGCXWOC24GCXTGC2>-[28J*XXI[XXI)XWOCXTGC\nM>^/CBN/CX^-[BHJ*>XJ*BGM.,HJ*,HJ*3GM8,HI83C)8,HJ*YS**BHHR,EB*\nM6$[S3O,RBHKG6.<R3HKSBO,R\\_.*3C+G,N?S6$Z/,N<R6%A.C^=.Y_/G6//S\nMCUCG\\UCG\\X^/C_./C^?S6(_S\\_./CX_GYX_S6(^/\\_/SC_./CX^/CX^/CX^/\nMCX_SCX_S\\X^/CX^/\\X^/CX^/CX^/CX^/CX^/C_./CX^/\\X_SCX^/\\X_SCX_S\nM\\X^/CX^/CZ^/KX^/CX^/CX^/CX^OC_./CX_SCX^/\\X^/CX_SCX_SCX^/\\X^&\nM+\\K*RCHZD2_8.D&1.LHORCK*.I$Z+SK*RCHZ.B\\ZRCHOV-C*.CK8V&TZ.LIM\nMRMC*RCHZRLHZ;6TZ.FW*.LI!;=C*;6TZRLHO+T'*V,HORCJ1+\\K*D=C*V-C*\nMRLHZ.B\\ZRLJ1V)%!.LHZ.CK*.I$Z.CHZ03HZACHZ.FF1D3HZ:9''.I$O:6F1\nM:3K'AFEIQX9I:<?'Q\\?'D2^1QVF1QR_'Q\\?'OY%I:6G'Q\\?':<?':8:_D8:_\nMOVF1:8;'QVF1:<?':<=I:37'AC4U-<?':<>1D37'QVF_D<?'-6EIQVDUD<?'\nMQ\\?':;_'QY%ID9$OQVF1QVEIQ\\>1D8:&D<>1D3J&.CHZAI%I:3J1.CJ102\\Z\nMRH8O+R^1.B\\Z+]C803K*RB\\ZRM@Z.G-SRG-SRG/8ELIM07-MV'-SV#QS<SS*\nM/)8\\/#QS<W.6/'-M;=@\\ECP\\198\\<SP\\19;1144\\1=%SW45%/$7=147=/):6\nM/-$\\T44\\/-W=/-W1W47=13S=W=U%/-%%W=T\\/#QW/-'=13Q%T=U%W='113S=\nM1=W1/-W=/-U%W3QW1='113P\\T471/$711=%%147=/$7=/$4\\1=T\\1=W=145%\nM/#S=/$4\\W3P\\/-$\\T3P\\W471/',\\W3P\\W466/#P\\T3S1T3Q%T3Q%13P\\T7-S\nM<Y;1EG,\\145S17-S16V6144\\145%T45S/#Q%T3R6<T4\\/#QS;3QS<T5S/#P\\\nM;45S;7-%/#Q%/$5S/#P\\<]%S/#Q%<W,\\;99S<]%%EG-S<W-%<SS1<T7113S1\nMT7,\\1=$\\<SQS/-%%<]T\\13QS/$66W3P\\W3P\\T=W1/#S=W='1=SQ%W=W=W3S1\nM=W?=W7<\\=]UWT=%WW7=WW=UW=]UW(]UWW=UW0-W=A=U`W7=W0'=WA4E)A7=)\nM2=U)0$!W24EW0'>%24!)27=)XW=W27?C0.-)0$#C2>/CU^-[2>/C>WOC2>/C\nMX^/C>^-)X^.*XTF*>WM[X^/CX^/CX^.*BC+CXTXRXXJ*BN/C,DY.,GM8BGLR\nM,N-.>TZ*,DZ*6$Y.BDXR,HI.YUB*BHKS3DY8YT[SBEA.Y_/S\\S).6#+G3N?S\nM3C*/,EB/C_-8\\UCS3H_GY_/S\\_/SCX_SY_/S\\^?SC^>/\\X^/6//SC_./C_./\nMC^?G\\X^/\\_/SCX^/CX^/\\_/S\\X_SCX^/C_/SCX^/CX^/CX_SCX^/\\_./CX^/\nMC_/SCX^/CX^/CZ^/CX_S\\_./CX^/C_./CX^/CX^/CX^/CX^/\\X^/CX_S\\_./\nMCX_SC_/SCX^/\\X^/CX\\O.D&1RI$O+SI!.MC*RLHZRD$ZRLK804$Z.FW8RCK8\nM;=A!;4'8.CHZ.FW*V-C*V#K8.M@ZRLK8RFTZ.M@ZV$%MV,IMV,HZ;3K*.CK*\nM.CK*.LK8+\\K8.LHZ.B\\ORLHZ.I$ZRCHORCJ1+\\K*+SHZ.H8OD3K*:<J&D3II\nMD3HZ.CJ&ACII+SHO.L>1D9%I.FF1QR]ID88OD<>&.I&&+R_'AH:&D9%IAL=I\nM:2^1QVF_:9&&OS5I:6F1O\\?'AI%IQ\\?'QS7'QY''O[]IQVF_:<=IQS5IQX;'\nMQY'':37'QS5IQ\\>_AL>_D6DOD6F_Q\\=IO\\<O+\\=IQY&&:9$OD3K'QVDO+X:1\nM:<<O+Y$Z.CHO+SHZ.CHZAFDZ0<I!+SHZV,K*D=C8.CK*+VW8RFUMV,IM;<K8\nMRFTZRLK*0=ASEFUS<SP\\<]@\\V#S8/&W8V)8\\/&US<]AS/&US13P\\T3Q%/-$\\\nMT='1T=$\\/#P\\T3P\\T=W=T44\\/$7=/-'=13S=147=W=U%W=U%T='=W=U%/-W=\nM/-U%1=%WW7?1W=UWW=U%W3Q%=]$\\T3QW=]U%T3S=13S1=SS=W45WT7?1W3S1\nM/$5%T45%147=/-U%/-W=W=W=/);=/-T\\147=1=W=W47=T=V6/-'1W45S17,\\\nMT=W=/$5S13R6145ST=%S13QS/#QST44\\/$4\\<W-%17,\\/'/1/#P\\/)9MEI8\\\nMEM$\\17,\\13P\\/#QS/'-S/#P\\/#S1<T4\\/',\\/-%S<SP\\13R61=$\\<]$\\EM%%\nM<]%%<SQ%1=%%/-%S/-US17/1/#S117-S/-W1W45%W45S/#P\\T3P\\13S=/$5%\nM/-'=/'=%W3P\\W7=W/-W1W=$\\145%=W=WW=W==]W=T7=WT7?1=W=WW=&%W7=W\nM=W?=0-W=W86%W=UW27=WW=U`W=W=W85W285)24E`0'=)0$EW27=)=TE`XX5)\nMXTE)X^/CA85`XTE)XTE)24GCBGN*27M)XTF*XXKCX^.*X]?CBN.*XXKC,C**\nM,N-[BGN*>^,R>S**,HHRX^/CBC**BHI[YUB*BGN*3HI8Y^=86%CGYU@R3HI.\nM3O/S\\UA.\\_-86#+S\\^=.\\S+G6/-.YUB/\\^=.\\X_GYUA8Y_./\\_./6%CSCX]8\nMCX^/C_/GCX_GC_-8Y^>/\\_/S\\X^/C^?SCX^/\\X^/Y_./\\X^/CX^/C_./C_./\nMCX_SCX^/CX^/CX_SCX_SCX^/C_./CX^/C_./CX^/CX^/CX^/\\X_S\\X^/CX^/\nMKX^/CX^/CX_SCX^/CX_S\\X_SCX^/C_./CX_SC_.1AH:1.B\\ZRMC*+]B1.CK8\nMD3HZRLHZ.CK*RCK8RCHZV-@ZRLK*RM@O.CK*;3K*RCK*.CHZV#IMRLK8V&W*\nM;=@O.MC8.LIMV#K8+SHO+\\K*0<HORFW*+R_*;9'8+Y'*+SJ1+SK*V#HORI'*\nMRB\\ZRB_*+Y$Z0<J1RH:&D3HOD2]I.CHZRCII:89IQSHZ+Y&&+X8O:88O+VEI\nMD3HOQSK':9%ID8;'D9$OQY&&D6G'QY%IOX9ID8;'AL?'Q\\>_QVEI-;]IQVF&\nMOX;'QX:1D9'':;^&QS6&D<>_O\\?'QX;':9&1-35IO[_'D6EIAL>1AL=IQY&&\nMD6G':2]IQSK'Q\\>&:6G'QR\\ZD3K':9%I.B\\ZRI%I03HO.CK*.CHO+Y'8D<K*\nM.B_*V,IM.CK*RCHZV-@ZRMAS<\\K8RG/80=C*RFW*EFW8;<IM/'-%/&T\\13R6\nM/#P\\/'-M<VU%/)9S144\\13P\\<SQ%W=%%/#P\\T3P\\T=US/-T\\T=T\\/-'=13P\\\nMW=U%W=$\\T3S117<\\T=W=W471/$5%1=$\\/-%WW=W=T=W11=T\\13P\\W=U%/#Q%\nMW=U%W=W=W7?=1=T\\W47=17?1T=W=W=W=/$5%13S=/-W1/#R6W3S1/-'=T=$\\\nM/-U%13P\\W45%1=T\\/#S=EG-%T45S<]%S<SQS/'-%<]'1ECQS/)9%/$4\\145%\nM/-&6T=$\\145SECQ%ED4\\T3S1/',\\144\\EM$\\17-S<T4\\/#P\\/#QST7,\\<]&6\nM13P\\13P\\<W/1/',\\13QS/'/1/$71T45S/#S1/'/113Q%13QS/#Q%T45%/-$\\\nMT3Q%147=<]U%1=&6ED7=1=$\\W3S=/$4\\1=W=W=T\\1=$\\/'=WT7?1T45WW47=\nMW='=W=%%1=W=1=UWW7=WA7>%W7=WW7=W=]UW0-%W0'=W24F%285`27=`(TE)\nM0(5W24!)=TGC=TE)XT#C2>-`0./C0.-)287CXTE)2>/CX^-)X^.*2>/CBN/C\nMBGM)BN/C>WM)2>/CBN,RXWLR>^-[>XI[>S**BEA[XS).3EB*6(J*,HJ*6.<R\nMBE@RBDY.3N>*6#)8YTY.,N>*YU@R6/,R\\^?SYX\\RC_-83O/SY^=.CX]8\\^>/\nMC_/GYX^/C_/S\\UCG\\X_GCX_G\\X_SCX_S6(^/C_./C_/GCX_S\\_./\\X_SCX^/\nMCX^/CX^/CX_SCX_SCX^/\\X_SCX_S\\_/SCX^/C_./C_./CX^/CX^/\\X^OCX^/\nMC_./CX_SCX^O\\X^/CX^O\\X_SCX_SCX^/CX_SCX_SCX^/CX^/CX^/\\X_S\\_,Z\nMD<HZ+]@OD9$Z.CK8RCHOV$'*.CHORD$ZRB\\ZV,K8.LK*RCK8RMC*RCK8RCIM\nM<\\K8RMASV#K*;<IMV-@ZRMC*<SHZ<VTZ;6W*.FUM.CHZ.CK8RFW*.FU!.CHZ\nM.M@Z.B\\OD2_8RMC*.M@O03K8RI'*D9'*RI$ZAI$ZRI$Z+SHZRLK*.FEI.FF&\nM:9$Z:6F1+Y$OD3K':<<O.I&1.H:&+VF1:3K'Q\\>1Q\\>_D2^1Q\\>1:2_':<?'\nMD;^1QVF_Q\\?'D6G'O[]I:9%IO\\>_QX9IQVG'AI&&D6G'-9%IQ[_':8:_D;_'\nM:<<OQR_':8:1D2]IQY''D9%ID6F1QX:1D6F1:3K'ACHZ.CHZ.B^1D3K*.CJ&\nMRB\\ZD9$O+\\HZD<K*02\\O+SHZ.LK*.CI!<]@Z.CHZ<VW*06W*<W/8;9;*RFT\\\nMV#S*/#P\\RFUS/'-SEMC8/-ASV$4\\1=A%/#QM/-%%T3R6T44\\<T5S/)9%/'.6\nMEM$\\T=US144\\/-T\\W3P\\/#S=W=T\\W3S=T=W1T='=W45%/-T\\T=%%/-U%/$5%\nMW3Q%/-'=W47=/$71/-W1T=W=/-$\\T7=%W45%13Q%/#P\\=]W=W='1W3P\\1=T\\\nM/#S=/-W1EMU%13Q%/#S=/-W1T3R6/-W11=T\\/#QS<T5%17-%W=%%W45%/-T\\\nM1=%S/$5%13QS<SQ%T=%S/#P\\T98\\/#QS/);113P\\T471145S/#S1/$66/$4\\\nM/#Q%EM$\\T='1T3Q%<Y;1T=%%<SS11=%%145ST466<T4\\/);1/'/1<T5S<T7=\nM/#S=/-W1W7-%T47=/$5%ED5%1466W=T\\/-W11=W1/)8\\W='=W47=1=W=/#Q%\nM17?=W3P\\W471W47==T711='=1=W==]W=T=UW=T7==X71A=W=A=&%W=W=W=W=\nMW=W=W7=W=W=`=X7=0'>%=W=W=W=`=T!)27=)(X5`=TGC2>-`X^/C0$E)24#C\n-------- End of part 1 of 14 --------\n\nKeywords: bitmap, wallpaper \n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8461, "properties": {"category": "rec.sport.baseball", "text": "From: kenney@tribe.b17d.ingr.COM (David Kenney)\nSubject: My 1993 Predictions\nReply-To: kenney@tribe.b17d.ingr.com\nOrganization: Intergraph Corporation, Huntsville, Alabama\nLines: 57\n\nI thought I'd post my predicted standings since I find those posted by others\nto be interesting.  Sorry this is after Opening Day.  I certify that these\nwere completed before the first pitch. :-)\n\nAL East\n1.  New York Yankees - the most (only?) improved team in this division\n2.  Toronto Blue Jays - Stewart and Morris?  No way.\n3.  Milwaukee Brewers - they always seem to do better than I expect\n4.  Baltimore Orioles - Pitching, but Devareaux, Anderson, and Hoiles will drop\n5.  Cleveland Indians - Still don't seem to know what they are doing\n6.  Detroit Tigers - All key players but Fryman are another year past peak\n7.  Boston Red Sox - Any team with Clemens and Viola might be beter than 7th\n\nAl West - this division was the toughest for me to pick.  Whoever of the top\n          4 gets pitching should win it.\n1.  Minnesota Twins - young pitchers seem to have best chance for success\n2.  Texas Rangers - I don't know why I have them here.  Jose Canseco?\n3.  Chicago White Sox - Frank Thomas but no pitching.\n4.  Oakland A's - LaRussa is the best manager and would keep any team close\n5.  Seattle Mariners - I like Pinella, but don't see much here\n6.  Kansas City Royals - will score no runs\n7.  California Angels - will win no games\n\nNL East\n1.  Montreal Expos - good all around, plus no Wallach!\n2.  St. Louis Cardinals - (Jeffries + Whiten) >> (Jose + Clark), no Galarraga\n3.  Pittsburgh Pirates - youngsters will take up more slack than expected\n4.  New York Mets - some good players, still not a \"team\"\n5.  Philadelphia Phillies - they don't impress me\n6.  Florida Marlins - they know what they're doing\n7.  Chicago Cubs - they don't know what they're doing\n\nNL West - The 2 best teams in baseball are in this division.\n1.  Atlanta Braves - Awesome starters, but offense could be a concern\n2.  Cincinnati Reds - Would not surprise me if they won it all\n3.  Houston Astros - Any team that signs Uribe won't contend. Closer to 4 than 2\n4.  San Diego Padres - Plantier could be the Sheffield of 1993\n5.  Los Angeles Dodgers - better pitching than the Giants\n6.  San Francisco Giants - because the Rockies just stink\n7.  Colorado Rockies - will become the Seattle Mariners of the NL.\n\n\nNLCS  Montreal d. Atlanta  (Braves fans, yes I'm probably contradicting\n                            what I said in my NL West comment.)\nALCS  New York d. Minnesota\n\nWorld Series  New York d. Montreal - Hating the Yankees will be\n                                     fashionable again\n\nNL MVP:  Barry Bonds, or maybe McGriff\nNL Cy Young:  Jose Rijo\nAL MVP:  Frank Thomas will deserve it (again), but Fielder might win it\nAL Cy Young:  Roger Clemens (at least will deserve it (again))\n\n-- \n-------------------------------------------------------------------------------\nDavid Kenney                                       kenney@tribe.b17d.ingr.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8462, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Clarification of personal position\nOrganization: Cookamunga Tourist Bureau\nLines: 21\n\nIn article <C5MuIw.AqC@mailer.cc.fsu.edu>, dlecoint@garnet.acns.fsu.edu\n(Darius_Lecointe) wrote:\n> I will repeat my position here.  Worshipping on Sunday has never been a\n> sin.  As a child I attended services on Saturday and Sunday--at the SDA\n> church and at the Pentecostal church across the street.  I might even go to a\n> Baptist church next week.  I worship God every day, and every Christian \n> should.  Even if we can prove that Christians should meet on Sunday (and\n> we can't) we can never prove that violation of the Sabbath is not a sin\n> any longer.  Nor can we prove that violation of Sunday is a sin.  We\n> cannot use the Sabbath commandment for that purpose.\n\nMy online Bible is on a CD, but I don't own a CD-ROM system for the\ntime being, so I can't search for the famous cite where Jesus explicitly\nstates that he didn't want to break existing (Jewish) laws. In other\nwords technically speaking Christians should use Saturday and not Sunday\nas their holy day, if they want to conform to the teachings of Jesus.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.402+0000", "event": "documents", "entityId": 8463, "properties": {"category": "comp.sys.mac.hardware", "text": "From: schandra@bme.ri.ccf.org (Shalabh Chandra)\nSubject: Trying to find a reliable Power Center for MACS\nArticle-I.D.: bme.1993Apr15.222020.4004\nOrganization: Biomedical Engineering and Applied Therapeutics, CCF\nLines: 18\n\nHi There,\n\tI am trying to find out a reliable Power Center, it is basically\na surge protector that sits below the monitor and has individual control\nfor each outlet. Some people have an opinion that none of them work well.\nThe ones that I could locate in Microcenter catalogue were:\n\nTripp Lite's Isobar Command COnsole ($79)\n\nProxima Power Director (89.95)\n\nKensington Masterpiece Plus (109.95)\n\nHas anyone used one of these? Could you please send me your feedback\non these?\n\nthanks\n\n-shalabh\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8464, "properties": {"category": "sci.med", "text": "From: spp@zabriskie.berkeley.edu (Steve Pope)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: U.C. Berkeley -- ERL\nLines: 17\nNNTP-Posting-Host: zion.berkeley.edu\n\nBetty Harvey writes,\n\n> I am not a researcher or a medical person but it amazes me that \n> when they can't find a scientific or a known fact they automatically \n> assume that the reaction is psychological.  It is mind boggling.\n\nThis, simply stated, is a result of the bankrupt ethics in\nthe healthcare and scientific medicine industries.\n\nAmerica is fed up with the massive waste and fraud that is costing\nus 15% of our GNP to support these industries, while delivering \nmarginal health care to the community.\n\nUnfortunately, the \"Clinton Plan\", in whatever form it\ntakes, will probably cost us an even greater sum.  Bleah.\n\nSteve\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8465, "properties": {"category": "talk.politics.misc", "text": "From: stephen@orchid.UCSC.EDU ()\nSubject: New 'GUESS' Out On Gay Percentage\nOrganization: Santa Cruz\nLines: 38\nNNTP-Posting-Host: orchid.ucsc.edu\n\nIn article <C5LA55.Bwq@murdoch.acc.Virginia.EDU> gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy) writes:\n>Clayton Cramer writes:\n>#Compared to the table I have already posted from Masters, Johnson,\n>#and Kolodny showing male homosexual partners, it is apparent that\n>#homosexual men are dramatically more promiscuous than the general\n>#male population.  \n>\n>Did you ever consider the selection effect that those who are willing\n>to admit to being a member sexual minority (homosexuality) are more\n>willing to admit to being a member of another sexual minority (highly\n>promiscious)? \n>\n>I didn't think that you did.\n>\n>--\n>-Greg Hennessy, University of Virginia\n\nIt is obvious that Mr. Cramer has the 'ability' to take the 'leap of faith'.\nI have listened to several of the men involved in this study, and even they\nclaim that the men involved will not 'tell the whole truth'.\n\nI put little value in extrapolating from these types of 'studies' or 'surveys',\nthey have limited subsets of individuals, and there is alot of skewing due\nto improper selection methods, and the bias of the people involved in the\nstudies on both sides- subject and researcher.\n\nWould you admit to be part of a group that was not very well liked?  Would \nyou admit to having had sex with other people at some considered abnormal\nrate (this applies to heterosexual men).  In fact, as one gay man and one\nstraight man put it, \"men lie about the number of partners, because that's\nthe thing to do\"- our culture for the male almost requires this type of\nresponse.  It may seem harmless and silly, but carries a large emotional\nand mental price tag.\n\nI hear college male students everyday talking about their 'supposed' \nconquest.  They just have to look good to one another, at least in their\neyes.  But also know that alot of this does go on, there are many college\nmales (hetero) having a lot of sex with different partners.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8466, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Kathy_McTaggart@mindlink.bc.ca (Kathy McTaggart)\nSubject: Sound input in SE/30\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 19\n\nA couple of questions for the multimedia set:\n\n\n1.  Does anybody have a phone or fax number, or e-mail address, or name of a\nprincipal in CEDAR Technologies in Dublin, New Hampshire? All I have is a\npost-office box number, and I want to ask a couple of questions before\nsending\nthem some money.  Any info much appreciated.\n\n2.  I'm running an SE/30, which came with no microphone. Is there any way,\nother than using MacRecorder with SoundEdit or CEDAR's digitizer with some\nsimilar software, to input recorded sound into my Mac? I'm trying to play\nsome\nvery short interview clips in a HyperCard stack.\n\nThanks for any and all help.\n\nKathy McTaggart\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8467, "properties": {"category": "rec.autos", "text": "From: c23tvr@kocrsv01.delcoelect.com (Thomas Redmond)\nSubject: Re: $6700 for hail damage - a record?\nOriginator: c23tvr@koptsy17\nOrganization: Delco Electronics Corp.\nDistribution: usa\nLines: 34\n\n\nIn article <1993Apr21.053516.28846@cactus.org>, boyle@cactus.org (Craig Boyle) writes:\n> In article <1993Apr20.203219.7724@pencom.com> stecz@pencom.com writes:\n> >In article <1993Apr19.235711.7285@cactus.org> boyle@cactus.org (Craig Boyle)  \n> >writes:\n> >> \n> >> \n> >> My 90 Integra was hit hard in the 3/25 hailstorm in Austin, TX. \n> >> The insurance company cut me a check for $6600 ($100 deductible)\n> >> last week.  Is this a record? Anybody else had settlements from\n> >> the same hailstorm yet?\n> >> \n> >> Craig\n> >\n> >\n> >Rumor has it that a guy at Dell Computer had his Miata totalled, so that would  \n> >be about $10k.\n> \n> I guess it either had the top down, or the hail ripped through the top, as\n> you could not do $10k worth of hail damage to a Miata body. \n> \n> Craig\n> >\n> >\n> >--\n> >--\n> >  John Steczkowski                        stecz@pencom.com\n> >    The Constitution grants you the right to life, liberty, and the\n> >    *pursuit* of happiness.  It does not attempt to guarantee that\n> >    everyone *will* be happy.\n> \n> \nThere was a Volvo owner that had $3000 dollars worth of improvements to the \nlooks of the car by hail :).\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8468, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 08/10 - Technical Miscellany\nOrganization: The Crypt Cabal\nLines: 414\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 8 of 10 of the sci.crypt FAQ, Technical Miscellany.\n Recovering Word Perfect passwords. Breaking Vigenerre ciphers. \n Encrypting Unix files/email.  Security of Unix `crypt' command.\n Encryption and compression. Key management. Letter frequency.\n The German Enigma code. Card shuffling. S/W piracy.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part08\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 8: Technical Miscellany\n\nThis is the eighth of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read the first part before the rest.\nWe don't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in the last part.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers\nevery 21 days.\n\n\nContents\n\n* How do I recover from lost passwords in WordPerfect?\n* How do I break a Vigenere (repeated-key) cipher?\n* How do I send encrypted mail under UNIX? [PGP, RIPEM, PEM, ...]\n* Is the UNIX crypt command secure?\n* How do I use compression with encryption?\n* Is there an unbreakable cipher?\n* What does ``random'' mean in cryptography?\n* What is the unicity point (a.k.a. unicity distance)?\n* What is key management and why is it important?\n* Can I use pseudo-random or chaotic numbers as a key stream?\n* What is the correct frequency list for English letters?\n* What is the Enigma?\n* How do I shuffle cards?\n* Can I foil S/W pirates by encrypting my CD-ROM?\n* Can you do automatic cryptanalysis of simple ciphers?\n* What is the coding system used by VCR+?\n\n\n* How do I recover from lost passwords in WordPerfect?\n\n  WordPerfect encryption has been shown to be very easy to break.\n  The method uses XOR with two repeating key streams: a typed password\n  and a byte-wide counter initialized to 1+<the password length>. Full\n  descriptions are given in Bennett [BEN87] and Bergen and Caelli\n  [BER91].\n\n  Chris Galas writes: ``Someone awhile back was looking for a way to\n  decrypt WordPerfect document files and I think I have a solution. \n  There is a software company named: Accessdata (87 East 600 South,\n  Orem, UT 84058), 1-800-658-5199 that has a software package that will\n  decrypt any WordPerfect, Lotus 1-2-3, Quatro-Pro, MS Excel and Paradox\n  files. The cost of the package is $185. Steep prices, but if you\n  think your pw key is less than 10 characters, (or 10 char) give them a\n  call and ask for the free demo disk. The demo disk will decrypt files\n  that have a 10 char or less pw key.''\n\n* How do I break a Vigenere (repeated-key) cipher?\n\n  A repeated-key cipher, where the ciphertext is something like the\n  plaintext xor KEYKEYKEYKEY (and so on), is called a Vigenere cipher.\n  If the key is not too long and the plaintext is in English, do the\n  following: \n\n  1. Discover the length of the key by counting coincidences.\n  (See Gaines [GAI44], Sinkov [SIN66].) Trying each displacement of\n  the ciphertext against itself, count those bytes which are equal. \n  If the two ciphertext portions have used the same key, something\n  over 6% of the bytes will be equal. If they have used different\n  key, then less than 0.4% will be equal (assuming random 8-bit bytes\n  of key covering normal ASCII text). The smallest displacement which\n  indicates an equal key is the length of the repeated key.\n\n  2. Shift the text by that length and XOR it with itself. This\n  removes the key and leaves you with text XORed with itself. Since\n  English has about 1 bit of real information per byte, 2 streams of\n  text XORed together has 2 bits of info per 8-bit byte, providing\n  plenty of redundancy for choosing a unique decryption. (And in fact\n  one stream of text XORed with itself has just 1 bit per byte.)\n\n  If the key is short, it might be even easier to treat this as a\n  standard polyalphabetic substitution. All the old cryptanalysis\n  texts show how to break those. It's possible with those methods, in\n  the hands of an expert, if there's only ten times as much text as key.\n  See, for example, Gaines [GAI44], Sinkov [SIN66].\n\n* How do I send encrypted mail under UNIX? [PGP, RIPEM, PEM, ...]\n\n  Here's one popular method, using the des command:\n\n    cat file | compress | des private_key | uuencode | mail\n\n  Meanwhile, there is a de jure Internet standard in the works called\n  PEM (Privacy Enhanced Mail). It is described in RFCs 1421 through\n  1424. To join the PEM mailing list, contact pem-dev-request@tis.com.\n  There is a beta version of PEM being tested at the time of this\n  writing.\n\n  There are also two programs available in the public domain for encrypting\n  mail: PGP and RIPEM.  Both are available by FTP.  Each has its own\n  newsgroup: alt.security.pgp and alt.security.ripem.  Each has its own FAQ\n  as well.\n\n  PGP is most commonly used outside the USA since it uses the RSA algorithm\n  without a license and RSA's patent is valid only (or at least primarily)\n  in the USA.\n\n  RIPEM is most commonly used inside the USA since it uses the RSAREF which\n  is freely available within the USA but not available for shipment outside\n  the USA.\n\n  Since both programs use a secret key algorithm for encrypting the body of\n  the message (PGP used IDEA; RIPEM uses DES) and RSA for encrypting the\n  message key, they should be able to interoperate freely.  Although there\n  have been repeated calls for each to understand the other's formats and\n  algorithm choices, no interoperation is available at this time (as far as\n  we know).\n\n* Is the UNIX crypt command secure?\n\n  No. See [REE84]. There is a program available called cbw (crypt\n  breaker's workbench) which can be used to do ciphertext-only attacks\n  on files encrypted with crypt. One source for CBW is [FTPCB].\n\n* How do I use compression with encryption?\n\n  A number of people have proposed doing perfect compression followed by\n  some simple encryption method (e.g., XOR with a repeated key).\n\n  Unfortunately, you can only compress perfectly if you know the exact\n  distribution of possible inputs. For all practical purposes it's\n  impossible to describe ``the typical English text'' beyond coarse\n  characteristics such as single-letter frequencies. You can build up\n  more and more sophisticated models of your inputs, but if the enemy\n  has a slightly more accurate model, he'll be able to find some\n  redundancy in your compressed output.\n\n  Note that nearly all practical compression schemes, unless they\n  have been designed with cryptography in mind, produce output that\n  actually starts off with high redundancy. For example, the output of\n  UNIX compress begins with a well-known three-byte ``magic number''\n  that can serve as an entering wedge for cryptanalysis.\n  \n  This is not to say that compression before encryption is inherently a\n  bad idea; it just has to be done very, very carefully, and by no means\n  removes the need for strong encryption.\n\n  Compression after encryption is silly.\n\n* Is there an unbreakable cipher?\n\n  Yes. The one-time pad is unbreakable; see part 4. Unfortunately the\n  one-time pad requires secure distribution of as much key material as\n  plaintext.\n\n  Of course, a cryptosystem need not be utterly unbreakable to be\n  useful. Rather, it needs to be strong enough to resist attacks by\n  likely enemies for whatever length of time the data it protects is\n  expected to remain valid.\n\n* What does ``random'' mean in cryptography?\n\n  Cryptographic applications demand much more out of a pseudorandom\n  number generator than most applications. For a source of bits to be\n  cryptographically random, it must be computationally impossible to\n  predict what the Nth random bit will be given complete knowledge of\n  the algorithm or hardware generating the stream and the sequence of\n  0th through N-1st bits, for all N up to the lifetime of the source.\n\n  A software generator (also known as pseudo-random) has the function\n  of expanding a truly random seed to a longer string of apparently\n  random bits.  This seed must be large enough not to be guessed by\n  the opponent.  Ideally, it should also be truly random (perhaps\n  generated by a hardware random number source).\n\n  Those who have Sparcstation 1 workstations could, for example,\n  generate random numbers using the audio input device as a source of\n  entropy, by not connecting anything to it.  For example,\n\n\tcat /dev/audio | compress - >foo\n\n  gives a file of high entropy (not random but with much randomness in\n  it).  One can then encrypt that file using part of itself as a key,\n  for example, to convert that seed entropy into a pseudo-random\n  string.\n\n  When looking for hardware devices to provide this entropy, it is\n  important really to measure the entropy rather than just assume that\n  because it looks complicated to a human, it must be \"random\".  For\n  example, disk operation completion times sound like they might be\n  unpredictable (to many people) but a spinning disk is much like a\n  clock and its output completion times are relatively low in entropy.\n\n* What is the unicity point (a.k.a. unicity distance)?\n\n  See [SHA49]. The unicity distance is an approximation to that amount\n  of ciphertext such that the sum of the real information (entropy) in\n  the corresponding source text and encryption key equals the number\n  of ciphertext bits used. Ciphertexts significantly longer than this\n  can be shown probably to have a unique decipherment. This is used to\n  back up a claim of the validity of a ciphertext-only cryptanalysis. \n  Ciphertexts significantly shorter than this are likely to have\n  multiple, equally valid decryptions and therefore to gain security\n  from the opponent's difficulty choosing the correct one.\n\n  Unicity distance, like all statistical or information-theoretic\n  measures, does not make deterministic predictions but rather gives\n  probabilistic results: namely, the minimum amount of ciphertext\n  for which it is likely that there is only a single intelligible\n  plaintext corresponding to the ciphertext, when all possible keys\n  are tried for the decryption. Working cryptologists don't normally\n  deal with unicity distance as such. Instead they directly determine\n  the likelihood of events of interest.\n\n  Let the unicity distance of a cipher be D characters. If fewer than\n  D ciphertext characters have been intercepted, then there is not\n  enough information to distinguish the real key from a set of\n  possible keys. DES has a unicity distance of 17.5 characters,\n  which is less than 3 ciphertext blocks (each block corresponds to\n  8 ASCII characters). This may seem alarmingly low at first, but\n  the unicity distance gives no indication of the computational work\n  required to find the key after approximately D characters have been\n  intercepted.\n\n  In fact, actual cryptanalysis seldom proceeds along the lines used\n  in discussing unicity distance. (Like other measures such as key\n  size, unicity distance is something that guarantees insecurity if\n  it's too small, but doesn't guarantee security if it's high.) Few\n  practical cryptosystems are absolutely impervious to analysis; all\n  manner of characteristics might serve as entering ``wedges'' to crack\n  some cipher messages. However, similar information-theoretic\n  considerations are occasionally useful, for example, to determine a\n  recommended key change interval for a particular cryptosystem.\n  Cryptanalysts also employ a variety of statistical and\n  information-theoretic tests to help guide the analysis in the most\n  promising directions.\n\n  Unfortunately, most literature on the application of information\n  statistics to cryptanalysis remains classified, even the seminal\n  1940 work of Alan Turing (see [KOZ84]). For some insight into the\n  possibilities, see [KUL68] and [GOO83].\n\n* What is key management and why is it important?\n\n  One of the fundamental axioms of cryptography is that the enemy is in\n  full possession of the details of the general cryptographic system,\n  and lacks only the specific key data employed in the encryption. (Of\n  course, one would assume that the CIA does not make a habit of telling\n  Mossad about its cryptosystems, but Mossad probably finds out anyway.)\n  Repeated use of a finite amount of key provides redundancy that can\n  eventually facilitate cryptanalytic progress. Thus, especially in\n  modern communication systems where vast amounts of information are\n  transferred, both parties must have not only a sound cryptosystem but\n  also enough key material to cover the traffic.\n\n  Key management refers to the distribution, authentication, and\n  handling of keys.\n\n  A publicly accessible example of modern key management technology\n  is the STU III secure telephone unit, which for classified use\n  employs individual coded ``Crypto Ignition Keys'' and a central Key\n  Management Center operated by NSA. There is a hierarchy in that\n  certain CIKs are used by authorized cryptographic control\n  personnel to validate the issuance of individual traffic keys and\n  to perform installation/maintenance functions, such as the\n  reporting of lost CIKs.\n\n  This should give an inkling of the extent of the key management\n  problem. For public-key systems, there are several related issues,\n  many having to do with ``whom do you trust?''\n\n* Can I use pseudo-random or chaotic numbers as a key stream?\n\n  Chaotic equations and fractals produce an apparent randomness from\n  relatively compact generators. Perhaps the simplest example is a\n  linear congruential sequence, one of the most popular types of random\n  number generators, where there is no obvious dependence between seeds\n  and outputs. Unfortunately the graph of any such sequence will, in a\n  high enough dimension, show up as a regular lattice. Mathematically\n  this lattice corresponds to structure which is notoriously easy for\n  cryptanalysts to exploit. More complicated generators have more\n  complicated structure, which is why they make interesting pictures---\n  but a cryptographically strong sequence will have no computable\n  structure at all.\n\n  See [KNU81], exercise 3.5-7; [REE77]; and [BOY89].\n\n* What is the correct frequency list for English letters?\n\n  There are three answers to this question, each slightly deeper than\n  the one before. You can find the first answer in various books:\n  namely, a frequency list computed directly from a certain sample of\n  English text. Of course any such list will be ``correctly'' computed,\n  but exactly which list you get depends on which sample was taken.\n\n  The second answer is that the question doesn't make sense. What do\n  you mean by ``English letters''? The ``English language'' is not a\n  fixed, finite, closed object that can be exactly characterized. It\n  has changed over time; it is different between different authors.\n  Any particular message will have different statistics from those of\n  the language as a whole.\n\n  The third answer is that yes, no particular message is going to have\n  exactly the same characteristics as English in general, but for all\n  reasonable statistical uses these slight discrepancies won't matter.\n  In fact there's an entire field called ``Bayesian statistics'' (other\n  buzzwords are ``maximum entropy methods'' and ``maximum likelihood\n  estimation'') which studies questions like ``What's the chance that a\n  text with these letter frequencies is in English?'' and comes up with\n  reasonably robust answers.\n\n  So make your own list from your own samples of English text. It will\n  be good enough for practical work, if you use it properly.\n\n* What is the Enigma?\n\n  ``For a project in data security we are looking for sources of\n  information about the German Enigma code and how it was broken by\n  the British during WWII.''\n\n  See [WEL82], [DEA85], [KOZ84], [HOD83], [KAH91].\n\n* How do I shuffle cards?\n\n  Card shuffling is a special case of the permutation of an array of\n  values, using a random or pseudo-random function.  All possible output\n  permutations of this process should be equally likely.  To do this, you\n  need a random function (modran(x)) which will produce a uniformly\n  distributed random integer in the interval [0..x-1].  Given that\n  function, you can shuffle with the following [C] code: (assuming ARRLTH\n  is the length of array arr[] and swap() interchanges values at the two\n  addresses given)\n\n  for ( n = ARRLTH-1; n > 0 ; n-- ) swap( &arr[modran( n+1 )], &arr[n] ) ;\n\n  modran(x) can not be achieved exactly with a simple (ranno() % x) since\n  ranno()'s interval may not be divisible by x, although in most cases the\n  error will be very small.  To cover this case, one can take ranno()'s\n  modulus mod x, call that number y, and if ranno() returns a value less\n  than y, go back and get another ranno() value.\n\n\n* Can I foil S/W pirates by encrypting my CD-ROM?\n\n  Someone will frequently express the desire to publish a CD-ROM with\n  possibly multiple pieces of software, perhaps with each encrypted\n  separately, and will want to use different keys for each user (perhaps\n  even good for only a limited period of time) in order to avoid piracy.\n\n  As far as we know, this is impossible, since there is nothing in standard\n  PC or workstation hardware which uniquely identifies the user at the\n  keyboard.  If there were such an identification, then the CD-ROM could be\n  encrypted with a key based in part on the one sold to the user and in\n  part on the unique identifier.  However, in this case the CD-ROM is one\n  of a kind and that defeats the intended purpose.\n\n  If the CD-ROM is to be encrypted once and then mass produced, there must\n  be a key (or set of keys) for that encryption produced at some stage in\n  the process.  That key is useable with any copy of the CD-ROM's data.\n  The pirate needs only to isolate that key and sell it along with the\n  illegal copy.\n\n\n* Can you do automatic cryptanalysis of simple ciphers?\n\n  schneier@chinet.chi.il.us (Bruce Schneier) says: AccessData of Orem,\n  Utah sells products that break the password scheme of a number of\n  popular Macintosh and PC software packages.  Their telephone number\n  is (801) 224-6970\n\n  No PD software has been cited but there are many papers on the\n  subject....\n\n  Peleg, S. and Rosenfeld, A.  \"Breaking Substitution Ciphers Using a\n  Relaxation Algorithm\" Comm. ACM Vol. 22(11) pp 598-605 (Nov. 1979)\n  \n  Lucks, Michael, \"A Constraint Satisfaction Algorithm for the\n  Automated Decryption of Simple Substitution Ciphers\", Advances in\n  Cryptology -- CRYPTO '88, Springer Lecture Notes in Computer\n  Science, vol. 403 (The paper also contains references to earlier\n  work on the subject.)\n  \n  John Carrol and Steve Martin, \"The Automated Cryptanalysis of\n  Substitution Ciphers\", Cryptologia, vol X number 4, Oct 86 p193-209.\n  \n  John Carrol and Lynda Robbins, \"Automated Cryptanalysis of\n  Polyalphabetic Ciphers\", Cryptologia, vol XI number 4, Oct 87\n  p193-205\n  \n  Martin Kochanski, \"A Survey of Data Insecurity Packages\",\n  Cryptologia, vol XI number 1, Jan 87 p1-15\n  \n  Martin Kochanski, \"Another Data Insecurity Package\", Cryptologia,\n  vol XII number 3, July 88, p165-177.\n  \n  Cryptologia Vol XIII Number 4  1989 pp 303-326.\n  \n  King and Bahler, \"Probabilistic Relaxation in the Cryptanalysis of\n  Simple Substitution Ciphers\" Cryptologia 16(3):215-225.\n  \n  King and Bahler, \"An Algorithmic Solution of Sequential Homophonic\n  Ciphers\".  Cryptologia, April 93 (in press).\n  \n  R. Spillman et.al., \"Use of Genetic Algorithms in Cryptanalysis of\n  Simple Substitution Ciphers\", Cryptologia, vol XVII Number 1, Jan 93\n  p31-44.\n\n\n* What is the coding system used by VCR+?\n\n  One very frequently asked question in sci.crypt is about how the VCR+ codes\n  work.  The following article attempts to describe it.\n\n    K. Shirriff, C. Welch, A. Kinsman, \"Decoding a VCR Controller Code,\"\n    Cryptologia, 16(3), July 1992, pp 227-234.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8469, "properties": {"category": "sci.space", "text": "From: dannyb@panix.com (Daniel Burstein)\nSubject: japanese moon landing?\nOrganization: PANIX Public Access Unix, NYC\nLines: 17\n\nAfraid I can't give any more info on this.. and hoping someone in greter\nNETLAND has some details.\n\nA short story in the newspaper a few days ago made some sort of mention\nabout how the Japanese, using what sounded like a gravity assist, had just\nmanaged to crash (or crash-land) a package on the moon.\n\nthe article was very vague and unclear.  and, to make matters worse, I\ndidn't clip it.\n\ndoes this jog anyone's memory?\n\n\nthanks\ndannyb@panix.com\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8470, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Organization: Ryerson Polytechnical Institute\nDistribution: na\nFrom: jeff <ACPS7117@RyeVm.Ryerson.Ca>\nSubject: For Sale: Sound Blaster Card...Hurry!\nLines: 9\n\nWell it seems that I have a soundblaster card for sale since\nI recently purchased a SBPro. The card comes complete, In mint\ncondition; with box, manuals,docs ,disks and original packaging.\nMake an offer..._Canadian_ inquiries prefered!\nRespond before APRIL 28!!!!!!!!!!!!!\n\ne-mail at acps7117@ryevm.ryerson.ca\n\nJ.M.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8471, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Its entire Muslim population had been slaughtered by the Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 31\n\nSource: \"Men Are Like That\" by Leonard Ramsden Hartill. The Bobbs-Merrill\nCompany, Indianapolis (1926). (305 pages). \n(Memoirs of an Armenian officer who participated in the genocide of 2.5 \n million Muslim people)\n\n\np. 19 (first paragraph)\n\n\"The Tartar section of the town no longer existed, except as a pile of\n ruins. It had been destroyed and its inhabitants slaughtered. The same \n fate befell the Tartar section of Khankandi.\"\n\np. 22 (second paragraph)\n\n\"Many of our men had served in the Russian Army, and were trained soldiers.\n We Armenians were rich and possessed arms. Tartars had never received\n military training. They were poor, and possessed few arms beyond knives.\n Shortly after the killing of the Tartars in our village, the revolution\n in Russia was suppressed.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8472, "properties": {"category": "misc.forsale", "text": "From: bob@nntp.crl.com (Bob Ames)\nSubject: UNIX PC Software for sale\nOrganization: CRL Internet Dialup Access    (415-389-UNIX   login: guest)\nLines: 41\nDistribution: world\nNNTP-Posting-Host: crl.com\n\nGreetings:\n\nHere is a list of items for the 3B1 which I am selling:\n\ndBase III - Full dBase III multiuser Development/Runtime for 3B1!\nMicrosoft Basic Interpreter - Gives 2.5 Megabytes RAM available!\nMicrosoft Word - Full featured mouse-based multiuser word-processor.\nMicrosoft MultiPlan - Nice multiuser spreadsheet program. \nGSS-Chart - Nice graphical program for creating business charts.\nLPI-C - A robust C compiler.  I'll throw in LPI-DEBUG:single-step,alter vars.\nAT&T Electronic Mail - Very nice Office-based front end to mail.\n\nI'll take $500 or best offer for the whole bunch.  I bought all of these\nnew in 1985, and paid over $2,000 for these excellent programs.\n\nI'd rather sell them together, but don't hesitate to make me an offer for one.\n\nI'd consider possible trades.  I'm interested in the following 3b1 Hardware:\n\nEthernet Card with or without Software\nTape Backup\nExternal Expansion Unit\nUpgraded P5.1 motherboard (Or just info on who can do the P5.1 upgrades)\nICUS 2nd hard drive upgrade kit\nAT&T 513bct, 610, 615, or 4415 terminals with the UNIXPC-style keyboard\n\nMake me an offer.\n\nBob Ames\nbob@crl.com\n707-546-0669\n\nPS:  I can get UNIX PCs with 40M Drives and 1M Motherboards loaded with 3.51m,\ncnews, smail, trn, rn, elm, nethack, gzip, HDB, and a couple other things\nfor about $550 each plus shipping.  Let me know if you're interested.\n\nPPS:  Priam D519 150M Hard Drives (Exactly same as Maxtor 2190, but faster)\nare on sale for $280 thru a vendor in LA (Number not handy, write for info)\nThis is a VERY good price for these drives, the largest, fastest HDs\navailable for the UNIX PC.  (Note, to fully use the entire 150M, you'll\nneed the P5.1 motherboard upgrade [WHO DOES THESE?], and a WD2010)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8473, "properties": {"category": "misc.forsale", "text": "From: jamull01@starbase.spd.louisville.edu (Joseph A. Muller)\nSubject: JFK autograph for sale (serious inquiries only)\nNntp-Posting-Host: starbase.spd.louisville.edu\nOrganization: University of Louisville\nLines: 12\n\n\n   After hearing about the McGovern House story on Paul Harvey I never had any\nidea how much it was worth.  The autograph is on a Senate Pass card\nand is signed 'John Kennedy.'  I don't remember if it was signed \n'Senator John Kennedy' or whether or not it was dated, because I haven't\nlooked at it in quite a while.  Currently it is in a safety deposit box.\nI would rather sell to a private collector rather then go through an auction\nhouse such as Christy's since that would tend to take away from the profit. \nIf you (or any collector you may know) has an interest in this please send\nme an e-mail expressing your interest.  I will see what I can do to make \na scanned gif of it available to prospective buyers.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8474, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mveraart@fel.tno.nl (Mario Veraart)\nSubject: Re: Help: Importing .EPS files into Word 2.0\nOrganization: TNO Physics and Electronics Laboratory\nLines: 32\n\njburke@abacus.bates.edu (jburke) writes:\n\n>I was wondering if anyone knew how to view a .EPS in Ms Word 2.0a..\n>Here are the first couple of lines if it helps...\n>%!PS-Adobe-3.0\n>%%Creator: ProWrite\n>%%Title: TCWN\n>%%Orientation: Portrait\n>%%Pages: 12\n>%%PageOrder: Ascend                                                    \n>Can any one Help?\n\n>________________________________________________________________________\n>|       James Burke       |  By reading this you agree not to hold     |\n>|                         |   the writer responsible for any evil      |\n>| jburke@abacus.bates.edu | happening that may befall you at any time. |\n>------------------------------------------------------------------------\n\nWe had a similar problem in converting a .EPS file. The solution was simple.\nWe changed the first line from %!PS-Adobe-3.0 to\n\n%!PS-Adobe-2.0\n\nThis fouled the converter, the .EPS file only contained very simple \nmove and draw statements.\n\nMario\n-- \nMario Veraart                  TNO Physics and Electronics Laboratory\nemail: rioj7@fel.tno.nl        The Hague       The Netherlands\n\"If all else fails, show pretty pictures and animated videos, \n and don't talk about performance\",  David Bailey\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8475, "properties": {"category": "rec.motorcycles", "text": "From: jburnside@ll.mit.edu (jamie w burnside)\nSubject: GOT MY BIKE! (was Wanted: Advice on CB900C Purchase)\nKeywords: CB900C, purchase, advice\nReply-To: jburnside@ll.mit.edu (jamie w burnside)\nOrganization: MIT Lincoln Laboratory\nLines: 31\n\n--\n\nThanks to all of you who gave advice on the CB900 Custom. \n\nAs recommended, I had the bike compression tested.  Compression was\na little low, but very even across the four cylinders (+/- 5 psi).  They\nsaid that it was tested a little cold, so that would explain the low \nnumbers (around 90).  Does this sound right?  Otherwise, the bike looked\ngreat.  No signs of road rash, and no rust.  This bike looks great! \nIt is now in the shop getting tuned and new tires.  \nI am opting for the Metzler ME55 and ME33 tires (thanks to those \nwho posted this other thread).  This bike is _BIG_ compared to my other bikes.  \n( Sure is alot harder to load on a trailer than the KDX200 was. )  I should\nbe road legal tomorrow.  I am ignoring the afforementioned concerns about \nthe transmission and taking my chances.\n\nBeing a reletively new reader, I am quite impressed with all the usefull\ninfo available on this newsgroup.  I would ask how to get my own DoD number,\nbut I'll probably be too busy riding ;-).\n\n----------------------------------------------------------------------\n|     |\\/\\/\\/|      ___________________                              |\n|     |      |     /                   \\                             |\n|     |      |    /  Jamie W. Burnside  \\                            |\n|     | (o)(o)   (  jburnside@ll.mit.edu )                           |\n|     C      _) / \\_____________________/                            |\n|      | ,___| /                                                     |\n|      |    /                                                        |\n|      / __\\                                                         |\n|     /     \\                                                        |\n----------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8476, "properties": {"category": "soc.religion.christian", "text": "From: mdw33310@uxa.cso.uiuc.edu (Michael D. Walker)\nSubject: Re: The doctrine of Original Sin\nOrganization: University of Illinois at Urbana\nLines: 24\n\n\n\t\n\n\tJust a quick reminder:  \n\n\tThe way you are interpreting those passages is your opinion.  You make\n\tit sound as if your opinion is somehow an undisputable fact.\n\n\tMany would interpret the passages you cite very differently.\n\n\t(Many have--several of the great theologians you mentioned do that \n\tvery thing.  These were people who had much more expertise in the\n\tinterpretation of scripture than you or me or probably anyone reading\n\tthis newsgroup.  To say that all of them are wrong and you are right\n\tis, in my opinion, (notice those last three words) coming pretty darn\n\tclose to the sin of pride.  \n\n\tIn the future I would suggest you not be so absolutist in your \n\tinterpretations, especially when contradicting highly respected\n\tdoctors of Christianity.\n\n\t\t\t\t\t- Mike Walker\n\t\t\t\t\t  mdw33310@uxa.cso.uiuc.edu\n\t\t\t\t\t  (Univ. of Illinois)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8477, "properties": {"category": "comp.windows.x", "text": "From: glb6j@smarine.UUCP (Guy Babineau)\nSubject: How do you find a window id given its name\nKeywords: xlib xwininfo\nReply-To: virginia.edu!smarine.uucp!glb6j\nOrganization: Sperry Marine, Inc.\nLines: 15\n\n\nI want to do the equivalent of an \"xwininfo -name\" via a call or set of calls\nin Xlib.  I need to map a windows name to its id.\nIt's probably easy, but I've only been programming in X for a little while.\nI've looked in the O'reilly books and didn't find it and I also checked the\nFAQ and couldn't find it.\n\nEmail to one of the following addresses and I'll post a response if it\nseems reasonable to do so.\n\n\nGuy\n-- \nGuy L. Babineau                         virginia.edu!smarine.uucp!glb6j\nSperry Marine Inc.\t\t\t72147.2474@compuserve.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8478, "properties": {"category": "rec.sport.baseball", "text": "From: scott@asd.com (Scott Barman)\nSubject: Re: Best Homeruns\nOrganization: American Software Development Corp., West Babylon, NY\nDistribution: na\nLines: 22\n\nDarryl Strawberry's moon shots were fun!  He can hit those high and far\nhome runs that if he actually ran them out he'd be rounding second base\nby the time they landed.  We used to say that he should have to file a\nflight plan at LaGuardia for some of them.  Then _Bull_Durham_ came out\nand that was changed.  :-)\n\nOn homers he pulled that didn't go high, they were microwave home runs.\nMicrowave, as in they got outta there in a hurry!  In a game in 1988, he\ncame off the bench with the flu and on the second pitch send a rocket\ndown the right field line that didn't even allow Bob Murphy the \"luxury\"\nof a home run call.  The story went he stayed in the clubhouse, the with\nthe Mets down by two and two on Davey Johnson sent for him to pinch hit.\nHe came out of the clubhouse saying \"one swing and we go home.\"  He hit\nthe homer, ran the bases, then went straight for the clubhouse to shower\nand go home.\n\nThose were the days....\n-- \nscott barman    | Mets Mailing List (feed the following into your shell):\nscott@asd.com   |            mail mets-request@asd.com <<!\n                |            subscribe\n Let's Go Mets! |            !\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8479, "properties": {"category": "misc.forsale", "text": "From: aj008@cleveland.Freenet.Edu (Aaron M. Barnes)\nSubject: Keyboards, Drives, Radios for sale!\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 24\nNNTP-Posting-Host: slc4.ins.cwru.edu\n\n\nHello.\n\nI have these items for sale.\n\nTerms are UPS COD or prepayment by money order.\n\n2 101 keyboards for IBM compatibles\n\n1 Mitsumi 1.2 MB 5 1/4 floppy disk drive\n\n1 Sony SRF-M30 digital AM/FM Stereo Walkman\n\nThe drive cost me $65, the keyboards were $40 each, and the Sony \nradio cost $45.\n\nI will sell for the best offers.\n\nThank You.\n-- \n       / /     Buchanan in `96!\n      / /      Fear the goverment that fears your guns.\n  \\ \\/ /       Without the 2nd amendment, we cannot guarantee ou\n   \\/ /        r freedoms.           aj008@cleveland.freenet.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8480, "properties": {"category": "rec.sport.hockey", "text": "From: joe13+@pitt.edu (Joseph B Stiehm)\nSubject: Re: ABC coverage\nDistribution: usa\nOrganization: University of Pittsburgh\nLines: 30\n\nIn article <cfoy0MW00Uh_41JndV@andrew.cmu.edu> am2x+@andrew.cmu.edu (Anna Matyas) writes:\n>\n>I was skeptical before the game but was pleasantly surprised at the\n>coverage.  I was particularly impressed by the close range camera coverage\n>of work in the corners and behind the play without losing a beat getting\n>back to the puck.\n>\n>Thorne is good and I've always been a fan of Clement (but I miss\n>Mike Emrick!).  My boyfriend, who is not a hockey fan, even looked up\n>at one point and said, \"These guys are pretty good announcers.\"  (This\n>is the same guy who said that Rick Tocchet looks like Charles Bronson...:)\n>\n>Mom.\n\n\n\nI have one complaint for the cameramen doing the Jersey-Pitt series:  Show\nthe shots, not the hits.  On more than one occassion the camera zoomed in\non a check along the boards while the puck was in the slot.  They panned\nback to show the rebound.  Maybe Mom's camera people were a little more \nexperienced.\n\n\n\nJoseph Stiehm\n\n\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8481, "properties": {"category": "rec.autos", "text": "From: ciarlett@mizar.usc.edu (Joni Ciarletta)\nSubject: Honda Accord Brake Problem\nOrganization: University of Southern California, Los Angeles, CA\nLines: 26\nDistribution: world\nNNTP-Posting-Host: mizar.usc.edu\n\nMy Honda Accord just hit the magic 100,000 mile mark and now\nall sorts of things are beginning to go bad. The latest problem\nI am experiencing is with my brakes.  They still stop the\ncar fine, but once I am stopped completely, my brake pedal\nwill sink another 2 or 3 inches all by itself.  If feels really\nstrange, and I am worried my brakes will quit working one of\nthese days.\n\nI checked my brake fluid, and the reservoir was full, but the\nfluid itself looked really dirty (like dirty oil).  I called\nmy mechanic and he told me I need a new brake master cylinder,\nwhich will cost me a whopping $250-300.\n\nI was just wondering if anyone out there has experienced this\nsort of thing.  If so, is my mechanic being honest? Or do I\nsimply need to have my brakes bled and new fluid put in?\n\nAny help you could provide would be appreciated.  Please send\nreplies directly to me, as I rarely have a chance to read this\nlist.  I will post the responses if there is any interest.\n\nThanks,\n\nJoni\nciarlett@mizar.usc.edu\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8482, "properties": {"category": "sci.space", "text": "From: David.Anderman@ofa123.fidonet.org\nSubject: LRDPA news\nX-Sender: newtout 0.08 Feb 23 1993\nLines: 28\n\n        Many of you at this point have seen a copy of the \nLunar Resources Data Purchase Act by now. This bill, also known as the Back to \nthe Moon bill, would authorize the U.S. \ngovernment to purchase lunar science data from private \nand non-profit vendors, selected on the basis of competitive bidding, with an \naggregate cap on bid awards of $65 million. \n        If you have a copy of the bill, and can't or don't want to go through \nall of the legalese contained in all Federal legislation,don't both - you have \na free resource to evaluate the bill for you. Your local congressional office, \nlisted in the phone book,is staffed by people who can forward a copy of the\nbill to legal experts. Simply ask them to do so, and to consider supporting\nthe Lunar Resources Data Purchase Act. \n        If you do get feedback, negative or positive, from your congressional \noffice, please forward it to: David Anderman\n3136 E. Yorba Linda Blvd., Apt G-14, Fullerton, CA 92631,\nor via E-Mail to: David.Anderman@ofa123.fidonet.org. \n        Another resource is your local chapter of the National Space Society. \nMembers of the chapter will be happy to work with you to evaluate and support \nthe Back to the Moon bill. For the address and telephone number of the nearest \nchapter to you, please send E-mail, or check the latest issue of Ad Astra, in \na library near you.\n        Finally, if you have requested, and not received, information about\nthe Back to the Moon bill, please re-send your request. The database for the\nbill was recently corrupted, and some information was lost. The authors of the \nbill thank you for your patience.\n\n\n--- Maximus 2.01wb\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8483, "properties": {"category": "soc.religion.christian", "text": "From: b8!anthony@panzer.b17b.ingr.com (new user)\nSubject: Re: The doctrine of Original Sin\nOrganization: Intergraph\nLines: 24\n\nIn article <May.2.09.48.32.1993.11721@geneva.rutgers.edu>, db7n+@andrew.cmu.edu (D. Andrew Byler) writes:\n|> Beyt (BCG@thor.cf.ac.uk) writes:\n|> \n|>\n|> 4) \"Nothing unclean shall enter [heaven]\" (Rev. 21.27). Therefore,\n|> babies are born in such a state that should they die, they are cuf off\n|> from God and put in hell,\n\nOh, that must explain Matthew 18:\n\n1) In that hour came the disciples unto Jesus, saying, \"Who then is greatest in\nthe kingdom of heaven?\"\n2) And he called to him a little child, and set him in the midst of them,\n3) and said, \"Verily I say unto you, Except ye turn, and become as little\nchildren, ye shall in no wise enter into the kingdom of heaven.\n14) Even so it is not the will of your father who is in heaven, that one of these\nlittle ones should perish.\n\nNice thing about the Bible, you don't have to invent a bunch of convoluted\nrationalizations to understand it, unlike your arguments for original sin. Face\nit, original sin was thought up long after the Bible had been written and has no\nbasis from the scriptures.\n\nAnthony\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8484, "properties": {"category": "rec.motorcycles", "text": "From: alanf@eng.tridom.com (Alan Fleming)\nSubject: Re: New to Motorcycles...\nNntp-Posting-Host: tigger.eng.tridom.com\nReply-To: alanf@eng.tridom.com (Alan Fleming)\nOrganization: AT&T Tridom, Engineering\nLines: 22\n\nIn article <1993Apr20.163315.8876@adobe.com>, cjackson@adobe.com (Curtis Jackson) writes:\n|> In article <1993Apr20.131800.16136@alw.nih.gov> gregh@niagara.dcrt.nih.gov (Gregory Humphreys) writes:\n> }1)  I only have about $1200-1300 to work with, so that would have \n> }to cover everything (bike, helmet, anything else that I'm too \n> }ignorant to know I need to buy)\n> \n> The following numbers are approximate, and will no doubt get me flamed:\n> \n> Helmet (new, but cheap)\t\t\t\t\t$100\n> Jacket (used or very cheap)\t\t\t\t$100\n> Gloves (nothing special)\t\t\t\t$ 20\n> Motorcycle Safety Foundation riding course (a must!)\t$140\n                                                         ^^^\nWow!  Courses in Georgia are much cheaper.  $85 for both.\n>\n\nThe list looks good, but I'd also add:\n  Heavy Boots (work, hiking, combat, or similar)         $45\n\nThink Peace.\n-- Alan (alanf@eng.tridom.com)\nKotBBBB (1988 GSXR1100J)  AMA# 634578  DOD# 4210  PGP key available\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8485, "properties": {"category": "soc.religion.christian", "text": "From: vek@allegra.att.com (Van Kelly)\nSubject: Re: Prayer in Jesus' Name\nOrganization: AT&T Bell Laboratories, Murray Hill, NJ, USA\nLines: 39\n\nAccording to what I have read on Biblical idioms, speaking \"in X's\nname\" is a standard Aramaic/Hebrew legal idiom for what we today\nwould call Power of Attorney.  A person from Jesus' culture authorized\nto conduct business \"in John's name\" had full authority over John's\nfinancial affairs, but was held under a solemn fiduciary obligation to\nwork only for John's benefit and consonant with John's wishes.  It was\nnot required for the steward to preface each business transaction with\n\"in John's name\"; it was sufficient to have valid power of attorney\nand be operating in good faith. (Note the overlap here between legal\nand religious definitions of \"faith\".)\n\nWith this cultural background, praying \"in Jesus' name\" does not\nmandate a particular verbal formula; rather it requires that the\npetitioner be operating faithfully and consciously within an analogous\n\"fiduciary\" relationship with Jesus and for the purposes of His\nKingdom.  The message of \"praying in Jesus' name\" is thus closely\naligned with the parable of the talents and other passages about God's\ndelegation of Kingdom business to his stewards, both resources and\nresponsibilities.  This idea of praying \"in Jesus' name\" is not only\npresent but prominent in the Lord's Prayer, although the verbal\nforumula is absent.\n\nThe act of praying the words \"In Jesus' Name\" may be beneficial if\nthey cause us to clarify the relationship of our requests to the\nadvancement of God's Kingdom.  For that reason, I'm not quite ready\nto say that the praying the formula is without meaning.\n\nPrayers to God for other purposes (desperation, anger, thanksgiving,\netc.) don't seem to be in this category at all, whether uttered by\nChristian or non-Christian, whether B.C. or A.D. (that's B.C.E. or\nC.E. for you P.C. :-).  I don't see anything in Christ's words to\ncontradict the idea that God deals with all prayers according to His\nomniscience and grace.\n\nVan Kelly\nvek@research.att.com\n\n\nThe above opinions are my own, and not those of AT&T.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.403+0000", "event": "documents", "entityId": 8486, "properties": {"category": "sci.space", "text": "From: pgf@srl03.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: Griffin / Office of Exploration: RIP\nOrganization: Univ. of Southwestern Louisiana\nLines: 43\n\nyamauchi@ces.cwru.edu (Brian Yamauchi) writes:\n\n>Any comments on the absorbtion of the Office of Exploration into the\n>Office of Space Sciences and the reassignment of Griffin to the \"Chief\n>Engineer\" position?  Is this just a meaningless administrative\n>shuffle, or does this bode ill for SEI?\n\n>In my opinion, this seems like a Bad Thing, at least on the surface.\n>Griffin seemed to be someone who was actually interested in getting\n>things done, and who was willing to look an innovative approaches to\n>getting things done faster, better, and cheaper.  It's unclear to me\n>whether he will be able to do this at his new position.\n\n>Does anyone know what his new duties will be?\n\nFirst I've heard of it. Offhand:\n\nGriffin is no longer an \"office\" head, so that's bad.\n\nOn the other hand:\n\nRegress seemed to think: we can't fund anything by Griffin, because\nthat would mean (and we have the lies by the old hardliners about the\n$ 400 billion mars mission to prove it) that we would be buying into a\nmission to Mars that would cost 400 billion. Therefore there will be\nno Artemis or 20 million dollar lunar orbiter et cetera...\n\nThey were killing Griffin's main program simply because some sycophants\nsomewhere had Congress beleivin that to do so would simply be to buy into\nthe same old stuff. Sorta like not giving aid to Yeltsin because he's\na communist hardliner.\n\nAt least now the sort of reforms Griffin was trying to bring forward\nwon't be trapped in their own little easily contained and defunded\nghetto. That Griffin is staying in some capacity is very very very\ngood. And if he brings something up, noone can say \"why don't you go\nback to the OSE where you belong\" (and where he couldn't even get money\nfor design studies).\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8487, "properties": {"category": "talk.religion.misc", "text": "From: ekr@kyle.eitech.com (Eric Rescorla)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: EIT\nLines: 16\nNNTP-Posting-Host: kyle.eitech.com\n\nIn article <1qjbn0$na4@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>In article <kmr4.1571.734847050@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n>#\tYou have only pushed back the undefined meaning. You must now define \n>#what \"objective values\" are.\n>\n>Really?  You don't know what objective value is?  If I offered the people\n>of the U.S., collectively, $1 for all of the land in America, would that \n>sound like a good deal?  \nWell, that would depend on how much we wanted the US and how much\nwe wanted the $1, wouldn't it?\n-Ekr\n\n-- \nEric Rescorla                                     ekr@eitech.com\n             Would you buy used code from this man?\n        \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8488, "properties": {"category": "comp.graphics", "text": "From: af774@cleveland.Freenet.Edu (Chad Cipiti)\nSubject: Good shareware paint and/or animation software for SGI?\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 15\nReply-To: af774@cleveland.Freenet.Edu (Chad Cipiti)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nDoes anyone know of any good shareware animation or paint software for an SGI\n machine?  I've exhausted everyplace on the net I can find and still don't hava\n a nice piece of software.\n\nThanks alot!\n\nChad\n\n\n-- \nKnock, knock.                                         Chad Cipiti\nWho's there?                                    af774@cleveland.freenet.edu\n                                               cipiti@bobcat.ent.ohiou.edu\nIt might be Heisenberg.                          chad@voxel.zool.ohiou.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8489, "properties": {"category": "comp.windows.x", "text": "From: mike@hopper.Virginia.EDU (Michael Chapman)\nSubject: Re: 4-plane Xterminal (Do I want one?)\nKeywords: plane, Xterminal\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 12\n\nIn article <C63srv.57w@watserv1.uwaterloo.ca> chudel@watarts.uwaterloo.ca (Chris Hudel) writes:\n>\n>\n>PS: all R5 apps run on R4/R3 servers,right?\n\nThe 4-bit server should work fine.  As far as I know, Xterminals\nrunning older versions can run the latest apps as long as the host \nmachine has the R5 libraries installed. I could be wrong though.\n-- \nmike@hopper.acs.virginia.edu \n\n\"I will NOT raise taxes on the middle class.\" -Unknown\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8490, "properties": {"category": "sci.electronics", "text": "From: ulan@ee.ualberta.ca (Dale Ulan)\nSubject: Part MC68SEC811E2\nNntp-Posting-Host: eigen.ee.ualberta.ca\nReply-To: ulan@ee.ualberta.ca (Dale Ulan)\nOrganization: University of Alberta Electrical Engineering\nDistribution: na\nLines: 8\n\n\nI know what the 68HC811E2 is all about, but I'm trying to figure\nout what the 68SEC811E2 is... specifically, what does the SEC\nstand for?\n\n----\nDale Ulan   VE6DAU     ulan@ee.ualberta.ca\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8491, "properties": {"category": "comp.sys.mac.hardware", "text": "From: pritchet@cs.scarolina.edu (Ronald W. Pritchett)\nSubject: Removable Storage\nOrganization: USC  Department of Computer Science\nDistribution: comp\nLines: 16\n\nWe have a Quadra 700 with 170MB HD, but need to a lot of sound sampling\nfor auditory research. What would be the best type of removable media for \nstoring these audio clips?        \n\nRon\n\n\n==============================================================================\n|       'They say I'm lazy, but                                              |\n|        it takes all my time...                                             |\n|        Life's been good to me so far!'           -Joe Walsh                |\n|----------------------------------------------------------------------------|\n|  Ron Pritchett                 Internet: pritchet@ash.cs.scarolina.edu     |\n|                                 FidoNet: Ron Pritchett @ 1:376/74.0        |\n==============================================================================\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8492, "properties": {"category": "soc.religion.christian", "text": "From: marka@hcx1.ssd.csd.harris.com (Mark Ashley)\nSubject: Re: Was Jesus Black?\nOrganization: FL\nLines: 31\n\nIn article <Apr.24.01.08.17.1993.4217@geneva.rutgers.edu> shd2001@andy.bgsu.edu (Sherlette Dixon) writes:\n>The people who post to this particular newsgroup are either too cowardly,\n\n<...more accusations about a worldwide conspiracy against blacks.>\n\nSince Jesus was born in the Middle East, then I expect his human\nfeatures to be similar to Middle Easterners at that point in time.\nAnd since the camera wasn't invented yet we can only guess what \nhe looked like. For example, with all the dinosaur bones we're\ndigging up we still don't know if they were yellow-polka-dotted,\nor purplish-orange 8-). Likewise, I don't think anybody has a \npicture of Jesus (is there ? 8-) ) So our current image of \nJesus is our best guess.\n\nOkay. So let's assume that Jesus is black. Would that make you\nfollow His techings ? Cause if you follow His teachings, skin \ncolor becomes a moot point, anyway. What counts more in your\nlife ? Your faith in Jesus or His skin color (as a human) ?\n\nIn the interest of historical accuracy, however, since Jesus\nwas from Israel wouldn't His skin color be like any other Jew ?\ni.e. fair-skinned ? Although probably heavily tanned from the\ndesert sun ? Experts in this area speak up !!! cause I'm not. 8-)\n\n\n\n-- \n-------------------------------------------------------------------------\nMark Ashley                        |DISCLAIMER: My opinions. Not Harris'\nmarka@gcx1.ssd.csd.harris.com      |\nThe Lost Los Angelino              |\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8493, "properties": {"category": "misc.forsale", "text": "From: cow@eng.umd.edu (Thomas L. Fortin)\nSubject: 1992 honda accord\nOrganization: Project GLUE, University of Maryland, College Park\nLines: 11\nDistribution: world\nNNTP-Posting-Host: pepsi.eng.umd.edu\n\n\n1992 HONDA ACCORD FOR SALE\n35,000 MILES\nALL HIGHWAY MILES\nEXCELLENT CONDITION\nWHITE\nEX MODEL \"LOADED\"\n$15,000 OR BEST OFFER\ncall tom @ (201) 653-0638 h\n           (201) 795-5636 w\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8494, "properties": {"category": "comp.graphics", "text": "From: hrs1@cbnewsi.cb.att.com (herman.r.silbiger)\nSubject: ANSI/AIIM MS-53 Standard Image File Format\nOrganization: AT&T\nKeywords: image, file format\nLines: 6\n\n\nwing the suggestion of Stu Lynne, I have posted the Image File Format executable and source code to alt.sources.\n\nHerman Silbiger\n.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8495, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@eufrat.nada.kth.se (Jon W\u00e4tte)\nSubject: Re: x86 ~= 680x0 ?? (How do they compare?)\nNntp-Posting-Host: eufrat.nada.kth.se\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 18\n\nIn <rayC5rpxB.AK8@netcom.com> ray@netcom.com (Ray Fischer) writes:\n\n>>But the interesting comparision is how fast clock-cycle chips\n>>you can get - an Alpha is WAY slow at 66 MHz, but blazes at\n>>200 MHz.\n\n>The only problem is going to be finding someone who can make a 200MHz\n>computer system.  Could be tough.\n\nYou can order one from Digital today.\n\nCheers,\n\n\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n\n -- I don't fear death, it's dying that scares me.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8496, "properties": {"category": "sci.space", "text": "From: hancock@lambda.msfc.nasa.gov (thomas hancock)\nSubject: Re: Proton/Centaur?\nOrganization: NASA/MSFC\nLines: 40\n\ndennisn@ecs.comm.mot.com (Dennis Newkirk) writes:\nThe Centaur is controlled technology..\nState Dept will not allow it to be used outside of US. Sorry.\n>In article <1993Apr20.211638.168730@zeus.calpoly.edu> jgreen@trumpet.calpoly.edu (James Thomas Green) writes:\n>>Has anyone looked into the possiblity of a Proton/Centaur combo?\n>>What would be the benefits and problems with such a combo (other\n>>than the obvious instability in the XSSR now)?\n\n>I haven't seen any speculation about it. But, the Salyut KB (Design Bureau) \n>was planning a new LH/LOX second stage for the Proton which would boost\n>payload to LEO from about 21000 to 31500 kg. (Geostationary goes from\n>2600 kg. (Gals launcher version) to 6000 kg.. This scheme was competing\n>with the Energia-M last year and I haven't heard which won, except now\n>I recently read that the Central Specialized KB was working on the \n>successor to the Soyuz booster which must be the Energia-M. So the early\n>results are Energia-M won, but this is a guess, nothing is very clear in \n>Russia. I'm sure if Salyut KB gets funds from someone they will continue \n>their development. \n\n>The Centaur for the Altas is about 3 meters dia. and the Proton \n>is 4 so that's a good fit for their existing upper stage, the Block-D\n>which sets inside a shround just under 4 meters dia. I don't know about\n>launch loads, etc.. but since the Centaur survives Titan launches which\n>are probably worse than the Proton (those Titan SRB's probably shake things\n>up pretty good) it seems feasible. EXCEPT, the Centaur is a very fragile\n>thing and may require integration on the pad which is not available now.\n>Protons are assembled and transported horizontially. Does anyone know \n>how much stress in the way of a payload a Centaur could support while\n>bolted to a Proton horizontally and then taken down the rail road track\n>and erected on the pad?  \n\n>They would also need LOX and LH facilities added to the Proton pads \n>(unless the new Proton second stage is actually built), and of course\n>any Centaur support systems and facilities, no doubt imported from the\n>US at great cost. These systems may viloate US law so there are political\n>problems to solve in addition to the instabilities in the CIS you mention. \n\n>Dennis Newkirk (dennisn@ecs.comm.mot.com)\n>Motorola, Land Mobile Products Sector\n>Schaumburg, IL\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8497, "properties": {"category": "talk.politics.mideast", "text": "From: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nSubject: Re: Enough Freeman Bashing!  Was: no-Free man propaganda machine: Freemanwith blood greetings from Israel\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman)\nOrganization: Columbia University\nLines: 18\n\nIn article <C5I6JG.BM1@eis.calstate.edu> mafifi@eis.calstate.edu (Marc A Afifi) writes:\n>pgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman) writes:\n>\n>\n>Peter,\n>\n>I believe this is your most succinct post to date. Since you have nothing\n>to say, you say nothing! It's brilliant. Did you think of this all by\n>yourself?\n>\n>-marc \n>--\n\nHey tough guy, read the topic.  That's the message.  Get a brain.  Go to \na real school.\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8498, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: louray@seas.gwu.edu (Michael Panayiotakis)\nSubject: help: object appears thrice!\nSummary: after editing win.ini [embedding..], and leaving only 1 entry\nOrganization: George Washington University\nLines: 40\n\n\nHey all...I got an equation editor, and since it didn't automagically\nappear in my \"object\" dialog box (i.e. insert-->object-->equation), I\ndecided to manually place it there.  So I went into win.ini (is there\nanother way to do this?), the [embedding] section, and added \n\nequation=equation,equation,<path\\filename>,picture.\n\ndidn't work.\nquit windows, go back.  AHA: mistake. Correct it.  It looks fine.\nstart windows...doesn't work.  play with it for a while, at one point\nhaving two entries to see if one works and th'other don't, and finally I\nget it to work.  The only thing I can see that's different now is that\nit's now the first item on the list, and it used to be the last.  But\nnow I end up with *three* \"equation\" entried, and *all* of them working.\n(and only one entry in win.ini).\n\nso does any netian know what's wrong? or rather, how to correct this?\n(i.e. make \"equation\"appear but once?).\n\nAlso, all the entries in the [embedding] appear as above.\nIt's obvious that <path\\filename> is the executable, or whatever, and\n\"picture\" has something to do withthe way it appears\n(picture/description?)\n\nbut what are the others?\ni.e., in\n\nsoundrec=sound,sound,\nwhate's the difference between the 1st \"sound\" and the 2nd?  \nand what is \"soundrec\"?? (I don't think it's the name of the executable,\nas other entries (e.g. MSWorksChart=...) aren't)\n\nthanks, i.a.\nMickey\n-- \npe-|| ||  MICHAEL PANAYIOTAKIS: louray@seas.gwu.edu \nace|| ||                                   ...!uunet!seas.gwu.edu!louray\n|||| \\/|  *how do make a ms-windows .grp file reflect a HD directory??*\n\\\\\\\\   |  \"well I ain't always right, but I've never been wrong..\"(gd)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8499, "properties": {"category": "sci.crypt", "text": "From: amolitor@nmsu.edu (Andrew Molitor)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Department of Mathematical Sciences\nLines: 38\nDistribution: na\nNNTP-Posting-Host: moink.nmsu.edu\n\nIn article <tcmayC5M2xv.JEx@netcom.com>\n\ttcmay@netcom.com (Timothy C. May) writes:\n>\n>But is it any worse than the current unsecure system? It becomes much\n>worse, of course, if the government then uses this \"Clinton Clipper\"\n>to argue for restrictions on unapproved encryption. (This is the main\n>concern of most of us, I think. The camel's nose in the tent, etc.)\n>\n\n\tNot to pick on Mr. May in particular, of course, but isn't this\nkind of the domino theory? When one little country falls, its neighbor\nwill surely follow, and before you know it, we're all mining salt\nin Siberia for not turning in our Captain Crunch Secret Decoder Rings.\n\n\tSurely the hypothesis relying on the least wild assumptions is\nto take this at face value. Our lads at the fort were asked to cook up\nsomething that's pretty secure, with a key that can be escrowed neatly,\nand they did. The government plans to sell this thing, for the reasons\nthey state. Yes, those evil guys in the FBI can probably, with some\neffort, abuse the system. I got news for you, if the evil guys in\nthe FBI decide they want to persecute you, they're gonna, and you're\ngonna hate it. Fact is, the FBI doesn't want to listen to your phone\ncalls, and if they do, and if you're using triple-DES, they'll just\nget a parabolic microphone and point it at your head.\n\n\tThis is pretty clearly an effort by the government to do exactly\nwhat they're saying they're doing. As is typical with governments,\nit's mismanaged, and full of holes and compromises. As is typical\nwith our government, it's not too bad, could be worse.\n\n\tMy interpretation.\n\n\tAndrew\n\n>-Tim May, whose sig block may get him busted in the New Regime\n                           ^^^^^^^^^^^^^^^^^^\n\n\tIsn't this just a little melodramatic?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8500, "properties": {"category": "rec.motorcycles", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Bike advice\nOrganization: Lehigh University\nLines: 11\n\nI have an '89 Kawasaki KX 80.  It is in mint condition and starts on the first\nkick EVERY time.  I have outgrown the bike, and am considering selling it.  I\nwas told I should ask around $900.  Does that sound right or should it be\nhigher/lower?\n    Also, I am looking for a used ZX-7.  How much do I have to spend, and what\nyear should I look for to get a bike without paying an arm and a leg????\n    Thanks for the help!\n\n                                                    Rob Fusi\n                                                    rwf2@lehigh.edu\n-- \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8501, "properties": {"category": "rec.sport.hockey", "text": "From: steveg@cadkey.com (Steve Gallichio)\nSubject: Re: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nArticle-I.D.: access.1pstuo$k4n\nOrganization: Cadkey, Inc.\nLines: 53\nNNTP-Posting-Host: access.digex.net\n\n\n\nBryan Smale (smale@healthy.uwaterloo.ca) writes:\n> I was thinking about who on each of the teams were the MVPs, biggest\n> surprises, and biggest disappointments this year.\n>\n> -----------------------------------------------------------------------\n>                         Team           Biggest       Biggest\n> Team:                   MVP:           Surprise:     Disappointment:\n> -----------------------------------------------------------------------\n> Hartford Whalers        Sanderson      Cassells      Corriveau\n\nMy votes (FWIW):\n\nTeam MVP: Pat Verbeek. He fans on 25% of goal mouth feeds, but he still has \n36 goals after a terrible start and has been an examplary (sp?) team captain\nthroughout a tough couple of seasons. Honorable mention: Nick Kypreos and\nMark Janssens. Probably more appropriate in the unsung heroes category than\nMVP, but Kypreos (17 goals, 320+ PIM) has been the hardest working player on\nthe team and Janssens is underrated as a defensive center and checker. I guess\nI place a greater emphasis on hard work than skill when determining value.\n\nBiggest surprise: Geoff Sanderson. He had 13 goals and 31 points last season\nas a center, then moved to left wing and has so far put up 45 goals and 80+\npoints. He now has a new Whaler record 21 power play goals, most all coming\nfrom the right wing faceoff circle, his garden spot. Honorable mention: Andrew\nCassels and Terry Yake. The kiddie quartet of Sanderson, Poulin, Nylander, and\nPetrovicky have been attracting the most attention, but Cassels is just 23\nand will score close to 90 points this season. He has quite nicely assumed the\nrole of number one center on the team and works very well with Sanderson. Yake\nbounced around the minors for a number of seasons but is still 24 and will put\nup about 20 goals and 50 points this season. Yake, like Sanderson, started\nperforming better offensively once he was converted from center to wing, \nalthough lefty Sanderson went to the left wing and righty Yake went to the\nright side.\n\nBiggest disappointment: Hands down, John Cullen. Cullen had a disasterous 77\npoint season last year, his first full season after The Trade. Cullen started\nthe season off of summer back surgery, and fell flat on his face (appropriate,\nsince he spent all of his Whaler career flat on his ass, and whining about it).\nCullen scored just 9 point on 19 games, was a clubhouse malcontent, commanded\nthe powerplay to a 9% success percentage (>21% with Sanderson), and sulked his\nway out of town. Worst of all, his 4 year, $4M contract had three years left\nto run, so no one would give up any more than the 2nd round draft pick the \nMaple Leafs offered to Hartford. Honorable mention: Steve Konroyd, also subpar\nafter signing a 3 year, $2.1M contract; Eric Weinrich, who showed flashes of\ncompetence, but overall has played poorly; Jim McKenzie, who was a much better\nhockey player two seasons ago than he is now; and Frank Pietrangelo, who only\nseemed to play well when Sean Burke was out for an extended period and he got\nto make a number of starts in a row.\n\n-SG (a real live Hartford Whalers season ticket holder)\n-steveg@cadkey.com\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8502, "properties": {"category": "comp.sys.mac.hardware", "text": "From: steveh@tasman.cc.utas.edu.au (Steve Howell)\nSubject: Re: Quadra 700 Sound\nOrganization: University of Tasmania, Australia.\nLines: 23\n\n\n\n\tThe Quadra 700 goes thru extensive initalize routines of its hardware,\nread's PRAM, obtains all info from last session including the volume\nsetting, and then executes the sound procedure for the startup sound, and\nwait's on the SCSI controller to respond to the boot up code.\n\n\nIf the DRAM produces an error, or a registers cannot be read from a device,\nor the device corrupts that address/data or control paths, then if it is\npossible, the firmware branchs to another sound routine that produces the \n'sad mac' sound.\n\n\nThis is a general breifing of the start up procedure of a typical mac.\nIf you cannot control the volume of the quadra, even at boot up, then i feel\nthere is something incorrect with the logic board. \n\nMy Quadra 700 does not show the problems you are having.\n\n\nSteve H\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8503, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Aargh! Great Hockey Coverage!! (Devils)\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 21\n\nRobbie Po <RAP115@psuvm.psu.edu> writes:\n>gld@cunixb.cc.columbia.edu (Gary L Dare) says:\n>>Locked away, waiting for the tape-delay to start ...\n>\n>I think this guy is going to be just a little bit disappointed.\n\nWhy?  I'm calling this Penguins ... in 6.  Only that with the way \nthings stand, the only radio game at that hour is from the Devils\non WABC, 770 AM.  It'd be nice to have a Sony Watchman, but ...\n\nNo need to be paranoid, Robbie.  Don't judge me by my geographic\ncoordinates ...\n\nJets over Nordiques in the final ... 7.\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8504, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: clintp@world.std.com (Clinton a Pierce)\nSubject: Need help setting PIF for games\nSummary: Can't seem to get the settings right for a few things\nKeywords: WINDOWS PIF\nOrganization: VERSYSS Incorporated, Westwood MA\nLines: 29\n\nHI there!  I have a few games that I'd like to run under Windows 3.1 and can't\nget the PIFS adjusted right.   For example Wing Commander.  In my DOS Prompt, I\nhave more than 620K available for programs.  This is enough to run WC.\nSo I build a PIF giving WC a couple of megs of extended memory etc.. and run \nit.  WC prompts: \"Loading Wing Commander...\" and then a message about \n\"Using extended memory...\" etc... and then my screen goes black (just before\nthe opening scene-the orchestra-would have appeared.)\n\nI also have a pool game that does almost the same thing.  It opens up and\nprompts me for what kind of video driver I have.  (CGA, EGA, etc...)  I\nrespond EGA and the screen goes black.   \n\nOn both of these a ctrl-alt-del getss me back to Windows.  \n\nHas ANYONE run Wing Commander under Windows?  Or has had the problems I\ndescribe and fixed them?   HEre's the rest of my setup:\n\n\t400MB Disk Free\n          8MB memory   ~5 free during WIN session\n        386DX-25\n       \nRespond here or on E-Mail.   If anyone else needs this info, send me mail in\na couple of days, and I'll forward the replies to you.\n\n-- \n-----------------------------------------------------------------------------\n Clinton A. Pierce   | Cartesian Bear = Polar Bear after coordinate transform\nclintp@world.std.com |\n------------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8505, "properties": {"category": "sci.electronics", "text": "From: rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter)\nSubject: Can Radio Freq. Be Used To Measure Distance?\nOrganization: Boeing Computer Services\nLines: 19\n\nI'm wondering if it's possible to use radio waves to measure the\ndistance between a transmitter(s) and receiver?\n\nSeems to me that you should be able to measure the signal strength\nand determine distance. This would be for short distances (2000 ft),\nand I would need to have accuracy of 6 inches, or so.\n\nHow about measuring vertical distance as well, any chance - or am I getting\nridiculous?\n\nWhat frequencies would be best for this? Or does matter?\n\nSorry if I'm \"mucking up\" the network with one of those questions best\nanswered by Bill Willis via US Mail... and I apologize for not being\n\"tuned-in\" to electronics. :-)\n\n\nR.G. Carpenter, Ph.D., P.E. (sorry... only an ME)\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8506, "properties": {"category": "sci.crypt", "text": "From: mjr@tis.com (Marcus J Ranum)\nSubject: Re: How to detect use of an illegal cipher?\nOrganization: Trusted Information Systems, Inc.\nLines: 23\nNNTP-Posting-Host: sol.tis.com\n\n>>How can the government tell which encryption method one is using without\n>>being able to decode the traffic? i.e., In order to accuse me of using an\n>>unauthorized strong encryption technique they would have to take both\n>>keys out of escrow, run them against my ciphertext and \"draw a blank\".\n>\n>\tI was thinking about this, also. It's quite possible the\n>system transmits, in clear, the serial number of the device being\n>used. That way they can start a tap, get the serial number, and use\n>the warrant for the first tap to get the key.\n>\n>\tIf they tap someone who's apparently using encryption, but\n>don't find that prefix, then they'll assume it's an \"un-authorized\"\n>encryption scheme.\n\n\tThis doesn't handle superencrypted traffic. If the clipper\ndoesn't impose any unfortunate performance side-effects there's no\nreason not to use it to superencrypt a stream of triple-DES encrypted\ntraffic. That way your traffic looks \"normal\" and perhaps anyone\ndesiring to listen in won't even bother, since they know nobody's\ngoing to really trust crypto that has classified internals for\nimportant stuff.\n\nmjr.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8507, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: amitriptyline\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 14\n\nIn article <1993Mar27.010702.8176@julian.uwo.ca> roberts@gaul.csd.uwo.ca (Eric Roberts) writes:\n>Could someone please tell me, what effect an overdose (900-1000mg) of\n>amitriptyline would have?\n\nProbably would not be fatal in an adult at that dose, but could kill\na child.  Patient would be very somnolent, with dilated pupils, low\nblood pressure.  Possibly cardiac arrhythmias.  \n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8508, "properties": {"category": "comp.windows.x", "text": "From: humesdg1@netnews.jhuapl.edu (Dave Humes)\nSubject: xwd segmentation fault\nKeywords: xwd X11\nOrganization: JHU/Applied Physics Laboratory\nLines: 22\n\nI was planning to use the following pipe to move some display data to a system\nthat has a color hardcopy unit:\n\n\txwd | xwud -display hostname:0.0\n\nI had tested it with some simple windows like the OpenWindows file manager,\nand it worked fine, but when I tried it with a more complex (larger) image,\nthe xwd part blew up with a segmentation fault.  I tried it without the pipe,\nby redirecting xwd's output to a file and then used the file as input to xwud\nand got the same error from xwud.  If I had to guess, it seems like it's\nrunning out of memory, but this happened on a SPARC 10 with 64 megs, 128 meg\nswap space, and only one user with minimal activity.  The file was about 3 MB.\n\nThis verion of xwd/xwud was supplied with the Sun OpenWindows 3.0 distribution\nwhich I believe corresponds to X11 R4.\n\nAny ideas?  Thanks in advance.\n-- \n--------------------------------------------------------------------------\nDave Humes        |    Johns Hopkins University Applied Physics Laboratory\n(410) 792-6651    |    humesdg1@aplcomm.jhuapl.edu\n---------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8509, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: Gun Talk -- Legislative Update for States\nKeywords: gun talk, ila\nOrganization: Iowa State University, Ames IA\nDistribution: usa\nLines: 15\n\nlvc@cbnews.cb.att.com (Larry Cipriani) writes:\n\n>IOWA:  All firearm related bills are dead.  Senate File 303\n>dealing with off-duty police officers carrying concealed remains\n>viable.\n\n\tThe *POWER* of the word processor and a stamp at work.\nThe fact that around here the state rep generally lives no more than\nnine miles from any constituent doesn't hurt, either.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.404+0000", "event": "documents", "entityId": 8510, "properties": {"category": "sci.electronics", "text": "From: NWZ96H@cheltenham-he.ac.uk (NWZ96H)\nSubject: Hatley & Pirbhai help...\nLines: 12\n\nHello,\n\nHas anyone used the Requirements Analsys methodology Hatley & Pirbhai ? I am\na British final year real-time degree student, and as a project I am covering\nthis methodology. I would be very grateful to anyone who could give me their\nviews on this method. Please mail me if you feel you can help, and I will send\nyou my questions.\n\nThanks in advance,\n\nDavid Phelps\t(nwz96h@chelt.ac.uk)\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8511, "properties": {"category": "comp.graphics", "text": "From: cgcad@bart.inescn.pt (Comp. Graphics/CAD)\nSubject: Re: Fonts in POV??\nNntp-Posting-Host: bart\nOrganization: INESC-Porto, Portugal\nLines: 27\n\nHi.\n\nThe RTrace ray tracer supports 3D text as a primitive, not collections of\nspheres, cylinders and so on...\nThe 3D chars are made of lines and splines that are extruded...\n\nPlease have a look at asterix.inescn.pt [192.35.246.17] in directory\npub/RTrace.\nIn pub/RTrace/tmp there are some demo images with high quality text.\nAll of them are called Text?.jpg (JPEG encoded). See them first and then\ntell me what you think.\n\nRegards,\nAntonio.\n.........................................................................\n     O     O\n    /     /                        I N E S C\n   | O   |        Antonio Costa        | E-Mail   acc@asterix.inescn.pt\n   | |\\  |   O                         |          acosta@porto.inescn.pt\n   | | \\ |  /  O  Comp. Graphics & CAD | DECnet   porto::a_costa\n   | |  \\| /  /                        |\n   | |  /  | |    Largo Mompilher 22   | UUCP     {mcvax,...}!...\n   O | |-O | |    4100 Porto PORTUGAL  | Bell     +351+02+321006\n    /   \\ /   \\\n   O     O     O          \"Let the good times roll...\"\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8512, "properties": {"category": "rec.sport.hockey", "text": "From: richard@amc.com (Richard Wernick)\nSubject: Re: Ulf and all...\nOrganization: Applied Microsystems, Redmond, WA\nLines: 20\n\nYou should be ashamed to call yourself an Ulf Samuelson fan. Anybody who plays\nthe way he does, does not belong in the NHL. There have been cheap shot artists\nthrough the history of the game, but a lot of them have been talanted players.\nBobby Clarke, Kenny Linsemen, Pie McKenzie, Chris Chelios etc.. but nobody has been\nout right as dirty a cheapshot coward as Ulf. Violence in hockey has got to be curbed\nand players like (Should have been a Women) Samuelson don't belong. When players\nlike Ulf, who's main purpose is to injure the better players in the league is allowed\nto continue, and the league won't stop it, the players should. A Christian Pro 1000\naluminum stick directed at his ugly head should do the trick nicely. If the Bruins get\na chance to meet Pittsburgh in the near future, you can bet Neely will have his day.\nThe sight of watching Ulf turtle up like the coward he is, is worth almost as much as a\nStanely Cup. This wimp of a player almost ruined the career of one the best right wingers\nin the game. If you are to remove Ulf Samuelson from the lineup, the Penguins would not\neven notice he's gone. He's an eyesore on the game of hockey.\n\n\nRich\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8513, "properties": {"category": "rec.autos", "text": "From: rts@nwu.edu (Ted Schreiber)\nSubject: Opinions on recent Alfa Spiders\nNntp-Posting-Host: mac178.mech.nwu.edu\nOrganization: Mechanical Engineering\nLines: 15\n\nAnyone have any opinions on fairly recent model Alfa Spiders ( 86-> ) \n\nReliablilty for what their class ( I'm not talking Alfa vs. Toyota corrola\nwhich is more relaible ) \n\nAs far as I can discern, in recent years, there are 3 levels with all\nbasically the same mechanical aspects.\n\nPlease email any responses \n\n\nTed Schreiber\nMechanical Enginering \nNorthwestern University\nTel: 708.491.5386 FAX 708.491.3915 Email: rts@nwu.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8514, "properties": {"category": "rec.sport.hockey", "text": "From: e8l6@jupiter.sun.csd.unb.ca (Rocket)\nSubject: Dear Montana@pinetree.org  Re: Hockey Pool\nDistribution: rec.sport.hockey\nOrganization: University of New Brunswick\nLines: 15\n\n\n\n   Hi there, I can't seem to get mail to you. Can you tell me your entire\nadress, or even your dotted decimal address?\n\n   (ie. 131.202.3.10)\n\n   Thanks,\n           rocket@calvin.cs.unb.ca \n\n-- \n\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                                           -\n-    Maurice Richard                                                        -\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8515, "properties": {"category": "soc.religion.christian", "text": "From: lfoard@hopper.virginia.edu (Lawrence C. Foard)\nSubject: Re: Assurance of Hell\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 43\n\nIn article <Apr.20.03.01.19.1993.3755@geneva.rutgers.edu> REXLEX@fnal.fnal.gov writes:\n>\n>I dreamed that the great judgment morning had dawned,\n>     and the trumpet had blown.\n>I dreamed that the sinners had gathered for judgment\n>     before the white throne.\n>Oh what weeping and wailing as the lost were told of their fate.\n>They cried for the rock and the mountains.\n>They prayed, but their prayers were too late.\n>The soul that had put off salvation, \n>\"Not tonight I'll get saved by and by.\n> No time now to think of ....... religion,\" \n>Alas, he had found time to die.\n>And I saw a Great White Throne.\n\nIf I believed in the God of the bible I would be very fearful of making\nthis statement. Doesn't it say those who judge will be judged by the\nsame measure? \n\n>Now, some have protest by saying that the fear of hell is not good for\n>motivation, yet Jesus thought it was.  Paul thought it was.  Paul said, \n>\"Knowing therefore, the terror of the Lord, we persuade men.\"\n\nA God who must motivate through fear is not a God worthy of worship.\nIf the God Jesus spoke of did indeed exist he would not need hell to\nconvince people to worship him.\n\n>Today, too much of our evangelism is nothing but soft soap and some of\n>it is nothing but evangelical salesmanship.  We don't tell people anymore, that\n>there's such a thing as sin or that there's such a place as hell.  \n\nIt was the myth of hell that made me finally realize that the whole thing\nwas untrue. If it hadn't been for hell I would still be a believer today.\nThe myth of hell made me realize that if there was a God that he was not\nthe all knowing and all good God he claimed to be. Why should I take such\na being at his word, even if there was evidence for his existance?\n\n-- \n------          Join the Pythagorean Reform Church!               .\n\\    /        Repent of your evil irrational numbers             . .\n \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n  \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n    \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8516, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: What's in a name?: the sequel\nOrganization: Kulikauskas home\nLines: 57\n\nI've been thinking about the idea that was raised (by Michael Covington, \nI think) that words mean what we think they mean, regardless of \netymology.  I've been reflecting on what certain words meant in my \nchildhood and tracing how this shaped some of my attitudes. \n\nI grew up in a home where Christ was a bad word.  People who were very \nangry said it.  The word Christian meant someone who was not a Jew.  It \ncarried connotations of otherness, of threat, of enemy.  It took some \ntime to figure out that there was a connection between `Christ' and \n`Christian'.  When I accepted Jesus, I expected to be disowned.  To \nbecome a Christian meant to join the enemy.  I knew others would \nconsider me a traitor.  At some level, I agreed, but was still prepared \nto pay this price.  Like Esau, I sold my birthright.  However, I made a \nbetter bargain.  He only got some stew, but I got the incomparable \nriches of knowing Christ.\n\nAs it turned out, my parents did not disown me.  I found out later that \nthey were hoping it was a phase that I would grow out of.  By the time \nthey had decided it wasn't a phase, they were sort of used to it.  They \ndidn't disown me but they didn't completely accept the situation either.  \nFor example, they didn't come to my wedding because it was in a church.   \nWhen I visited my grandmother in the hospital a few days before her \ndeath, she said to me, \"As far as I'm concerned, you still are a Jew.\" \nWhat she meant was that she loved me and forgave me.  But I am not a \nJew.  I am a Christian.  (I'll concede, one that likes chicken soup with \nmatzoh balls.:-)) \n\nI do not keep kosher.  I do not celebrate the Sabbath on Saturday.  My \nsons are not circumcised.  But these things are true of some people who \ndo consider themselves Jews.  It is not these rules that make people \nJews; it is the heritage from the past.  I gave up the past.\n\nThis is why I find it hard to relate to Messianic Jews.  Their \nexperience is unlike mine.  They still consider themselves Jews while \nfollowing Jesus.  Some would even say that I *must* do so, too.  \n\nI am at a stage of my life now where I would like to have a heritage.  \nIt was not something I valued very much when I gave it.  But I did have \na sense that I was giving it for God.  It may have been a small \nsacrifice.  It may have been an unnecessary sacrifice.  But I gave it \nand do not want to ask for it back.\n\nAnd while I don't have the heritage I was born with, I do have another.  \nI am an outcast from the house of Israel, but I am a member of the \nChurch.  One of the things I like about being a Catholic Christian is \nthat it is rich in tradition.  It gives me a feeling of, once again, \nbeing rooted in the past. \n\nThis is probably one of the reasons why I don't like it when people mess \naround with Christian traditions (for example, changing the name of \nEaster).  These traditions fill an important emotional need of mine.\n\nI suppose the point of all this is that people shouldn't assume that all \nbelievers of Jewish background are the same.  For some `Jewish \nChristian' is a good name, for others it is an oxymoron. \n\nJayne Kulikauskas/jayen@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8517, "properties": {"category": "comp.windows.x", "text": "From: darcym@fpddet4.mentorg.com (Darcy McCallum)\nSubject: Keyboard mapping and window placement questions\nNntp-Posting-Host: fpddet4.mentorg.com\nOrganization: mentor\nKeywords: \nLines: 27\n\nThese are two common subjects so I hope someone has had to deal with these\nspecific questions.\n\n1.  If my application depends on modifiers, what is the best lookup method?\nMy choices are to call XGetModifierMapping() for each key press with a \nmodifier, or make the call once at the init of the app and store the modifiers\nin a lookup table.  I would like to do it the second way, but I can't seem to\nget the notify when the user uses xmodmap to remap the modifiers.  I know that\nwhen an app calls XSetModifierMapping() a MappingNotify event is generated\n(non-maskable) which I can pick up and modify my internal table.  But, I don't\nseem to get any notify events when the user uses xmodmap.  If I use Xt, all \nO'Reilly has to say is '...is automatically handled by Xt...'.  If I use Xlib, ala XNextEvent(), I get nothing.  This all stems from problems with users of \nthe Sun 4/5 keyboard and the NumLock; plus various Alt/Meta/etc. modifier \nrequirements.\n\n2.  I would like to place a popup so that it will be to the immediate right\nof my main window.  I want it at the same y coord, and their right/left\nsides touching.  What I need to ask for is the x,y coord of the window \nmanager's border for the main window.  This should ring a bell with anyone\nwho has called XtMoveWidget(), immediately checking the x,y after the move\nand seeing that it is right, and in their next callback asking for the x,y\nand seeing that it is now offset by the WM border.\n\nAny help would be most appreciated.\n\nDarcy\ndarcy_mccallum@mentorg.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8518, "properties": {"category": "sci.crypt", "text": "From: ifarqhar@laurel.ocs.mq.edu.au (Ian Farquhar)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: Macquarie University, Sydney Australia\nLines: 35\nNNTP-Posting-Host: laurel.ocs.mq.edu.au\n\nIn article <19930419.155204.305@almaden.ibm.com> ameline@vnet.IBM.COM (Ian Ameline) writes:\n>  I also believe that someone will reverse engineer the clipper chip,\n>and knowlege of the algorithm will likely be fairly widespread. Any back-\n>doors or weaknesses would further discredit the scheme, and help grow\n>the market demand for a secure alternative.\n\nI must admit that this point has been running through my mind for most of\nthe discussion: one the dice are out there, it won't be long before someone\ndecaps it and, after a bit of work, has full details of the Clipper\nalgorythm.  This isn't trivial to do, but then again, it is not impossibly\ndifficult either.  Any half way decent VLSI design student should be able\nto take a photograph of a technology s/he is familiar with, and given a\ndescription of the input, output, control and supply lines, figure out \nthe function of various subsystems on the die.  Indeed, this is not an\nuncommon exercise performed during training (because it makes you think\nabout design decisions made by other designers.\n\nI could speculate that these chips are going to be manufactured using\n\"tamperproof\" carriers (unlikely - such techniques are *very* expensive\nand this thing is supposed to be relatively cheap to produce), or that\nthere will be some legal or legislative framework to prevent publication\nof the algorythm (unlikely - please correct me if I am wrong but aren't these\nsupposed to be sold internationally?).  I suppose that the most likely\nreason the algorythm is remaining secret for the moment is that some idiot\nbureaucrat, untrammeled by the realities of the situation, decided that\n\"well, we should keep it a secret because it is supposed to be secret,\nisn't it?\"\n\nJust some random thoughts...\n\n--\nIan Farquhar                      Phone : + 61 2 805-9400\nOffice of Computing Services      Fax   : + 61 2 805-7433\nMacquarie University  NSW  2109   Also  : + 61 2 805-7420\nAustralia                         EMail : ifarqhar@laurel.ocs.mq.edu.au.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8519, "properties": {"category": "comp.windows.x", "text": "From: c2xjfa@kocrsv01.delcoelect.com (James F Allman III)\nSubject: Re: GUI Study\nOriginator: c2xjfa@koptsw18\nOrganization: Delco Electronics Corp.\nDistribution: na\nLines: 33\n\n\nIn article <1993Apr23.031744.19111@mercury.unt.edu>, seth@ponder.csci.unt.edu (Seth Buffington) writes:\n> >Cutsie little Macintrash-like icons that are an instant recipe for\n> >mousitis IMHO. System 7 is undoubtedly the worst GUI I have used (out of\n> >that, RISCOS, MSWombles, and X11) simply because it does not provide enough\n> >keyboard shortcuts. Windows I must confess I quite like (cover your ears\n> >:-) ) because you can actually use it without having to ever touch the\n> >mouse.\n> [stuff delete]\n> >the user rather than making things _easier_ - and there should always be\n> >the option to do it your way if you want to, which is why I like the\n> >UNIX/X combination so much - it's so customizable. \n> \n> Hear! Hear! I agree completely. One thing I can't stand about\n> the Mac interface is its shear determination to FORCE you to use\n> the mouse(what if your mouse breaks--your whole system is\n> down!).  I like the mouse--it is handy on some occassions such\n> as cut and past and moving icons around, etc.  But for most\n> work, the keyboard and hot keys are 10-20 times faster than\n> using the mouse. Sure it is a plus to be able to do something\n> simple if you are an inexperienced user, but how long is it\n> before your are experienced? A month? Two? (Speaking of PCs at\n> the moment.)\n> \tI don't think it is too much to ask that window\n> programmers provide not only a menu/mouse interface but also\n> look forward to those who would like to move on to hot keys and\n> command line interfaces, which usually allows you to do more in\n> less time IF you are experienced.\n> \tAll of the above equally applies to windowing systems on\n> UNIX (especially since Unix is at least 500% more powerful than\n> DOS).\n> \nAnd at least 500% more user unfriendly as well!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8520, "properties": {"category": "rec.sport.baseball", "text": "From: davewood@bruno.cs.colorado.edu (David Rex Wood)\nSubject: Re: Rockies need some relief\nNntp-Posting-Host: bruno.cs.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 14\n\nIn article <1993Apr18.225740.15978@colorado.edu> davewood@bruno.cs.colorado.edu (David Rex Wood) writes:\n>shaky) innings giving up just one run.  Then game the dreaded relief.  Three\n                                              ^^^^\n>picthers combined to give up 3 runs (one each I believe) in the 7th inning\n ^^^^^^^^\n>be taken lightly.  Going into today's game, the had the league's leading\n                                             ^^^\n\nGeez, can I type or what?\n\n-- \n-------------------------------------------------------------------------------\nDavid Rex Wood -- davewood@cs.colorado.edu -- University of Colorado at Boulder\n-------------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8521, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: u96_bbayraml@vaxc.stevens-tech.edu\nSubject: FOR SALE!! DECpc325sxLP\nLines: 26\nOrganization: Stevens Institute Of Technology\n\n\n\n      FOR SALE !!!\n\n      DECpc 325sxLP\n\n   It's in very good condition, used for one year. It has\n\n      - 25 Mhz Intel 386\n      - 52 MB Hard Disk\n      - Super Color VGA Monitor\n      - 2-button mouse\n      - 1.44 MG floppy disk drive\n\n      Software:\n    ------------\n\n       - Microsoft Dos 5.0\n       - Microsoft Windows 3.1\n       - Microsoft Works for Windows 2.0\n       - Borland Turbo Pascal 6.0\n       - Borland Turbo C++ 3.0 for Dos\n       \n\n       I'm asking $1499 for the system. Send me E-mail if interested.\n      \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8522, "properties": {"category": "talk.politics.mideast", "text": "From: ab4z@Virginia.EDU (\"Andi Beyer\")\nSubject: Re: Israel's Expansion II\nOrganization: University of Virginia\nLines: 23\n\nbc744@cleveland.Freenet.Edu  writes:\n> \n>    The comparison of the Palestinian situation with the Holocaust\n> is insulting and completely false.  Any person making such a rude\n> and false comparison is either ignorant of the Holocaust, or also\n> ignorant of the situation in the mideast, or is an anti-semite.\n> \n>    To compare a complicated political situation with the genocide\n> of 6,000,000 Jews is racist in and of itself.\n> \nFirst of all I never said the Holocaust. I said before the\nHolocaust. I'm not ignorant of the Holocaust and know more\nabout Nazi Germany than most people (maybe including you). \n\tWhat I resent is ignorant statements that call people\nnames when they disagree with your position. Opposing the\natrocities commited by the Israeli governement hardly qualifies\nas anti-semitism. If you think name calling is a valid form of\nargument in intellectual circles, you need to get out more\noften.\n\tI don't think the suffering of some Jews during WWII\njustifies the crimes commited by the Israeli government. Any\nattempt to call Civil liberterians like myself anti-semetic is\nnot appreciated.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8523, "properties": {"category": "alt.atheism", "text": "From: acooper@mac.cc.macalstr.edu\nSubject: Re: Where are they now?\nOrganization: Macalester College\nLines: 38\n\nIn article <1qi156INNf9n@senator-bedfellow.MIT.EDU>, tcbruno@athena.mit.edu (Tom Bruno) writes:\n> \n> Wow.  Leave your terminal for a few months and everyone you remember goes\n> away-- how depressing.  Actually, there are a few familiar faces out there,\n> counting Bob and Kent, but I don't seem to recognize anyone else.  Has anyone\n> heard from Graham Matthews recently, or has he gotten his degree and sailed\n> for Greener Pastures (tm)?  \n> \n> Which brings me to the point of my posting.  How many people out there have \n> been around alt.atheism since 1990?  I've done my damnedest to stay on top of\n> the newsgroup, but when you fall behind, you REALLY fall behind (it's still not\n> as bad as rec.arts.startrek used to be, but I digress).  Has anyone tried to\n> keep up with the deluge?  Inquiring minds want to know!  Also-- does anyone\n> keep track of where the more infamous posters to alt.atheism end up, once they\n> leave the newsgroup?  Just curious, I guess.\n> \n> cheers,\n> tom bruno\n\n\nI am one of those people who always willl have unlimited stores of unfounded\nrespect for people who have been on newsgroups/mailing lists longer than I\nhave, so you certainly have my sympathy Tom.  I have only been semi-regularly\nposting (it is TOUGHto keep up) since this February, but I have been reading\nand following the threads since last August: my school's newsreader was down\nfor months and our incompetent computing services never bothered to find a new\nfeed site, so it wasn't accepting outgoing postings.  I don't think anyone\nkeeps track of where other posters go: it's that old love 'em and leave 'em\nInternet for you again...\n\n\nbest regards,\n\n********************************************************************************\n* Adam John Cooper\t\t\"Verily, often have I laughed at the weaklings *\n*\t\t\t\t   who thought themselves good simply because  *\n* acooper@macalstr.edu\t\t\t\tthey had no claws.\"\t       *\n********************************************************************************\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8524, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bc@idx.com\nSubject: Request info on a mystery PC card\nOrganization: IDX Corporation, S. Burlington, VT\nLines: 11\n\nWhile rummaging through a box of old PC (5150) parts, I found a half-size\nboard that looks like a comm port board.  It was made by Forte Data Systems and\nhas a copyright date of 1986 on it.  The board provides a male 24-pin connector\nand has 3 jumpers of 3 pins each, two labelled A B C.  I plugged it into my PC\nand ran Advanced diagnostics several times, changing the jumper positions each\ntime, but the system did not recognise a comm port.\n\nDoes anyone have a clue as to what this board might be or how to configure it?\nI could use another comm port if it's free.\n\nBryan\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8525, "properties": {"category": "rec.motorcycles", "text": "From: dean@fringe.rain.com (Dean Woodward)\nSubject: Re: Drinking and Riding\nOrganization: Organization for Mass Confusion.\nLines: 46\n\nMJMUISE@1302.watstar.uwaterloo.ca (Mike Muise) writes:\n\n> In article <C4wKBp.B9w@eskimo.com>, maven@eskimo.com (Norman Hamer) writes:\n> >  What is a general rule of thumb for sobriety and cycling? Couple hours \n> > after you \"feel\" sober? What? Or should I just work with \"If I drink \n> > tonight, I don't ride until tomorrow\"?\n> \n> 1 hr/drink for the first 4 drinks.\n> 1.5 hours/drink for the next 6 drinks.\n> 2 hours/drink for the rest.\n\nI took an alcohol server's class a few years ago.  (What the hey- my employer\npaid for it...)\n\nWe were told that the 1 drink / hour rule was written with 80 proof booze\nand a 195 pound person in mind.  Drinking Cuervo Gold, weighing in @ 140,\nI obviously will get drunk faster than the theoretical person mentioned\nabove.  Worse, imagine Rum & coke made with Bacardi 151...\n\nMind you all, that's for getting too drunk to drive a car.  I may only\nhave been riding for a month or so, but I plan my evenings with a very\nrigid exclusive or statement: Either don't drink, or don't ride.\nPretty simple.\n\n> \n> These are fairly cautious guidelines, and will work even if you happen to \n> have a low tolerance or body mass.\n> I think the cops and \"Don't You Dare Drink & Drive\" (tm) commercials will \n> usually say 1hr/drink in general, but after about 5 drinks and 5 hrs, you \n> could very well be over the legal limit. \n> Watch yourself.\n> -Mike\n\nSorry, mike, I have to believe that that policy works best as fertilizer,\neven if all you plan to do is drive home nice and \"safe\" in your cage...\n\n>   ________________________________________________\n>  / Mike Muise / mjmuise@1302.watstar.uwaterloo.ca \\ no quotes, no jokes,\n>  \\ Electrical Engineering, University of Waterloo / no disclaimer, no fear.\n\n\n--\nDean Woodward         | \"You want to step into my world?\ndean@fringe.rain.com  |   It's a socio-psychotic state of Bliss...\"\n'82 Virago 920        |              -Guns'n'Roses, 'My World'\nDoD # 0866\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8526, "properties": {"category": "sci.space", "text": "From: pgf@srl03.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: Space Research Spin Off\nOrganization: Univ. of Southwestern Louisiana\nLines: 37\n\nshafer@rigel.dfrf.nasa.gov (Mary Shafer) writes:\n\n>On 4 Apr 1993 20:31:10 -0400, prb@access.digex.com (Pat) said:\n\n>Pat> In article <1993Apr2.213917.1@aurora.alaska.edu>\n>Pat> nsmca@aurora.alaska.edu writes:\n>>Question is can someone give me 10 examples of direct NASA/Space related\n>>research that helped humanity in general? It will be interesting to see..\n\n>Pat> TANG :-) Mylar I think.  I think they also pushed Hi Tech\n>Pat> Composites for airframes.  Look at Fly by Wire.\n\n>Swept wings--if you fly in airliners you've reaped the benefits.\n\nDidn't one of the early jet fighters have these?\nI also think the germans did some work on these in WWII.\n\n>Winglets.  Area ruling.  Digital fly by wire.  Ride smoothing.\n\nA lot of this was also done by the military...\n\n>Microwave landing systems.  Supercritical wings.  General aviation\n>air foils.\n\nWeren't the first microwave landing systems from WWII too?\n\n>--\n>Mary Shafer  DoD #0362 KotFR NASA Dryden Flight Research Facility, Edwards, CA\n>shafer@rigel.dfrf.nasa.gov                    Of course I don't speak for NASA\n> \"A MiG at your six is better than no MiG at all.\"  Unknown US fighter pilot\n\nEgad! I'm disagreeing with Mary Shafer!\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8527, "properties": {"category": "alt.atheism", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 37\n\nIn article <30121@ursa.bear.com>, halat@pooh.bears (Jim Halat) writes:\n>In article <115288@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n>>\n>>He'd have to be precise about is rejection of God and his leaving Islam.\n>>One is perfectly free to be muslim and to doubt and question the\n>>existence of God, so long as one does not _reject_ God. I am sure that\n>>Rushdie has be now made his atheism clear in front of a sufficient \n>>number of proper witnesses. The question in regard to the legal issue\n>>is his status at the time the crime was committed. \n>\n\nI'll also add that it is impossible to actually tell when one\n_rejects_ god.  Therefore, you choose to punish only those who\n_talk_ about it.  \n\n>\n>-jim halat                             \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n                                                                            \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8528, "properties": {"category": "soc.religion.christian", "text": "From: khan0095@nova.gmi.edu (Mohammad Razi Khan)\nSubject: Re: Bible Unsuitable for New Christians\nOrganization: GMI Engineering&Management Institute, Flint, MI\nLines: 19\n\nnews@cbnewsk.att.com writes:\n\n>True.\n\n>Also read 2 Peter 3:16\n\n>Peter warns that the scriptures are often hard to understand by those who\n>are not learned on the subject.\n\nWhere do insparations/Miracles fit in?  I was a new reader to the bible\nand Qu'ran at the same time in my life and I can tell you that I would \nhave drifted in my faith if Those books were not exposed to me.\n\n\n\n>Joe Moore\n--\nMohammad R. Khan                /    khan0095@nova.gmi.edu\nAfter July '93, please send mail to  mkhan@nyx.cs.du.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8529, "properties": {"category": "sci.crypt", "text": "From: brad@optilink.COM (Brad Yearwood)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 19\n\nIn article <strnlghtC5t42t.J9B@netcom.com>, strnlght@netcom.com (David Sternlight) writes:\n> \n> Chances are the government has thought of this, and \"just anyone\" won't be\n> permitted access to enough of the internals to make a \"fake\" clipper chip.\n> Chances are that the government has classified some details of the internals\n> at a very high level, and manufacturers are required to observe security\n> safeguards and clearances corresponding to that level.\n\nAssume in this case the usual canard-adversary of narcotraficantes.  They\nprobably have more cash than the KGB did, and they're probably more generous\nat handing it out.  It will be easier than ever to find or cultivate Walkers\nand Pollards for the keys, and it will be easy enough to find someone to\nreverse-engineer the chip (unless the tamper proofing is damned clever and\neffective).\n\nBrad Yearwood     brad@optilink.com     {uunet, pyramid}!optilink!brad\nPetaluma, CA\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8530, "properties": {"category": "talk.politics.misc", "text": "Subject: Re: Stop putting down white het males.\nFrom: <RIPBC@CUNYVM.BITNET>\nOrganization: City University of New York\nLines: 31\n\nFrom: baba@Tymnet.com (Duane Hentrich)\n-BTW, I'm a WALC (white aryan lapsed catholic)\n-\n---\n-d'baba Duane M. Hentrich        baba@Tymnet.Com\n-\n   I would like to go on record as objecting to Mr. Hentrich calling\nhimself an Aryan.  The word `Aryan' is of Sanskrit origin and occurs first\nin the Hindu scripture, the Rigveda.  It seems to have been a tribal term\nbut may have had connotations of good character.  Such connotations\nare quite explicit in the sayings of the Buddha who called his religion the\neightfold Aryan path.   The word was borrowed by the German scholar\nMax Mueller who used it as a synonym for `indo-european', but then the\nNazis proceeded to steal it and started pretending that `aryan' is\nsynonymous with `nordic' which seems highly unlikely.  The people who\noriginally called themselves aryas,  the Iranians, Noprth Indians, the Afghans\nand possibly the Kurds, are none of them nordic.  So the use of the word\nby Westerners, though meant with apparent good humor in this case, is\nnontheless inappropriate.  The only Westerners who may have some claim\nto call themselves Aryans (by descent) are the Celts who seem to have wor-\nshipped a god called Aryaman who is mentioned in the Rigveda.\n\n  If you want to check what I am saying, look at  Mallory's book, ``In\nsearch of the Indo-Europeans\" or, just look at the Encyclopedia Britannica.\nThe reason this usage is offensive is that most of Ancient Indian literature\nas well as religion is directly or inderectly due to the Aryans and\nfor Westerners to butt in is really not nice, not to mention the horrible\nthings done by Germans to Jews, using a word to which the Germans have\nno clear claim.\n\nRohit Parikh\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8531, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Re: IDE vs SCSI\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 44\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\nDXB132@psuvm.psu.edu writes:\n>In article <1qlbrlINN7rk@dns1.NMSU.Edu>, bgrubb@dante.nmsu.edu (GRUBB) says:\n>>In PC Magazine April 27, 1993:29 \"Although SCSI is twice as fasst as ESDI,\n>>20% faster than IDE, and support up to 7 devices its acceptance ...has   \n>>long been stalled by incompatability problems and installation headaches.\"\n                                                                      \n>I love it when magazine writers make stupid statements like that re:      \n>performance. Where do they get those numbers? I'll list the actual\n>performance ranges, which should convince anyone that such a               \n>statement is absurd:                                                     \n>SCSI-I ranges from 0-5MB/s.                                                \n>SCSI-II ranges from 0-40MB/s.            \n>IDE ranges from 0-8.3MB/s.                          \n>ESDI is always 1.25MB/s (although there are some non-standard versions)\nALL this shows is that YOU don't know much about SCSI.\n\nSCSI-1 {with a SCSI-1 controler chip} range is indeed 0-5MB/s\nand that is ALL you have right about SCSI\nSCSI-1 {With a SCSI-2 controller chip}: 4-6MB/s with 10MB/s burst {8-bit}\n Note the INCREASE in SPEED, the Mac Quadra uses this version of SCSI-1\n so it DOES exist. Some PC use this set up too.\nSCSI-2 {8-bit/SCSI-1 mode}:          4-6MB/s with 10MB/s burst\nSCSI-2 {16-bit/wide or fast mode}:  8-12MB/s with 20MB/s burst\nSCSI-2 {32-bit/wide AND fast}:     15-20MB/s with 40MB/s burst\n \nBy your OWN data the \"Although SCSI is twice as fast as ESDI\" is correct\nWith a SCSI-2 controller chip SCSI-1 can reach 10MB/s which is indeed\n\"20% faster than IDE\" {120% of 8.3 is 9.96}. ALL these SCSI facts have been\nposted to this newsgroup in my Mac & IBM info sheet {available by FTP on \nsumex-aim.stanford.edu (36.44.0.6) in the info-mac/report as \nmac-ibm-compare[version #].txt (It should be 173 but 161 may still be there)}\n\nPart of this problem is both Mac and IBM PC are inconsiant about what SCSI\nis which.  Though it is WELL documented that the Quadra has a SCSI-2 chip\nan Apple salesperson said \"it uses a fast SCSI-1 chip\" {Not at a 6MB/s,\n10MB/s burst it does not. SCSI-1 is 5MB/s maximum synchronous and Quadra\nuses ANsynchronous SCSI which is SLOWER}  It seems that Mac and IBM see\nSCSI-1 interface and think 'SCSI-1' when it maybe a SCSI-1 interface driven\nin the machine by a SCSi-2 controller chip in 8-bit mode {Which is MUCH\nFASTER then true SCSI-1 can go}.\n\nDon't slam an article because you don't understand what is going on.\nOne reference for the Quadra's SCSI-2 controller chip is \n(Digital Review, Oct 21, 1991 v8 n33 p8(1)).\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.405+0000", "event": "documents", "entityId": 8532, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: President's Remarks at Summer Jobs Conference 4.14.93\nOrganization: MIT Artificial Intelligence Lab\nLines: 378\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\n\n                           THE WHITE HOUSE\n\n                    Office of the Press Secretary\n_________________________________________________________________\nFor Immediate Release                             April 14, 1993     \n\n\t     \n                       REMARKS BY THE PRESIDENT\n                      AT SUMMER JOBS CONFERENCE\n\n\t     \t  \n                            Hyatt Regency\n                        Crystal City, Virginia  \n\n\n11:22 A.M. EDT\n\n\t     \n\t     THE PRESIDENT:  Thank you very much.  The speech that \nOctavius gave says more than anything I will be able to say today \nabout why it's important to give all of our young people a chance to \nget a work experience and to continue to learn, to merge the nature \nof learning and work; why it's important to honor the efforts of \npeople like Jerry Levin and Nancye Combs and Pat Irving and all of \nthose who are here.  \n\t     \n\t     I want to thank the Secretaries of Labor and Education \nand all the people who work with them for sponsoring this; and my \ngood friend, Governor Wilder, for being here and for speaking; and \nall of the business and local community leaders from the city and \ncounty and state level from around America who are here. \n\t     \n\t     This has been a pretty fun day.  (Laughter.)  I loved \nhearing the young people sing.  It was music to my ears because it is \ntheir future that we are really struggling about.  (Applause.)  A \nyear and a half ago I began the quest to seek the presidency because \nI was concerned about their future.  Because I believe that our \ncountry, which had always been a beacon of hope for the young, had \ntoo little opportunity, was too divided among ourselves across lines \nof income and race and region and other ways, without a vision to \ntake us into the future.  \n\t     \n\t     I entered with the hope that together we could create \nmore opportunity and insist on much more responsibility from all of \nour people.  But in the process we might recreate the best of \nAmerica's community, knowing that together we could always to more \nthan we could individually and that we might secure our future.\n\t     \n\t     All of you here today are committed to that.  The 1,000 \njobs that Jerry Levin has committed Time-Warner to is symbolic of the \ncommitments made by many of the private sector people who are here, \nand those who are around the country.  The work that Nancye Combs \ndoes, and the successes of all the young people like those on this \nstage, and especially the eloquent statement Octavius Jeffers -- all \nthose things show that together we know what we need to do, and we're \non the right track.\n\t     \n\t     Last July when I was traveling across America's \nheartland in my luxurious bus, I visited Seneca High School in \nLouisville, Kentucky.  And there I met young people and business \npeople who were participating in the Louisville Education and \nEmployment Partnership.  I saw what Nancye Combs talked about today.  \nI saw how the young people were making an extra effort to succeed \nboth in school and at work.  I saw, as I have seen many times in my \nown state, the principle illustrated that Octavius has talked about \n-- that for millions of American young people it is really an \nimpediment to both their learning and their ability to be good \nworkers to draw a sharp dividing line between what is work and what \nis learning.\n\t     \n\t     In the world in which we are living, the average young \nperson will change the nature of work seven or eight times in a \nlifetime.  We must learn to merge the work world and the learning \nworld much better.  And we must determine that all of our young \npeople see the opportunities that some of them have had showcased \nhere today.  \n\t     \n\t     Whether you're in business or in government or in \neducation, you know that we have a big job to do when it comes to \nbuilding a future that really, honestly includes opportunity for all \nof our people.  There are still a lot of people who say, well, things \nare pretty good here in Washington and everything's fine; the best \nthing we can do about this whole thing is nothing.  They all have \njobs.  (Laughter.)  All the people who say that.  (Applause.)  \n\t     \n\t     They all have health insurance.  They all have a pretty \ngood education.  And they all have a pretty secure knowledge that \nthey'll be okay no matter what happens.  I say that not to be either \npolitical or unduly critical, but to point out that one of the great \nchallenges of this age for every advanced nation -- everyone -- is to \nfully develop the capacities of all of its people, and then find work \nfor them to do.\n\t     \n\t     All the European countries have higher unemployment \nrates than we do, but also stronger support systems for the \nunemployed.  The Japanese unemployment rate has been going up.  \nThey're going to adopt a stimulus that, even if you count it in its \nmost rigorous terms, is three or four times bigger than the one that \nI have proposed to create jobs. \n\t     \n\t     In West Germany alone, the unemployment rate is now \nabout as high as ours.  This is a big problem for advanced nations.  \nIt costs a lot of money to add an extra employee, with a lot of \npressure from low-wage producers in other countries that are growing \ntheir own economies and trying to provide new opportunity for their \npeople.  \n\t     \n\t     But it is especially important for America for two \nreasons:  One is, we have a whole lot of folks who, unless we move \naggressively, will not have the education and skills we need to be \ncompetitive and productive in a nation like this.  The second is, \neven if we educate them all, if there aren't jobs they will be robbed \nof the fruits of their educational labors.  People need to be able to \nwork in this country.  (Applause.)\n\t     \n\t     We have always had some unemployment; and, indeed, some \nof it is normal.  You've always got some people leaving jobs and \nmoving around the country and doing first one thing and another.  We \nhave now, at this moment in our history, the necessity for all big \norganizations, including the government, to reexamine the way they \nare organized and who ask whether there are too many people working \nat some kinds of jobs.  But in the whole, we must still be able to \ncreate jobs in a country like America, to provide people with the \nchance to work.  \n\t     \n\t     It's going to be difficult for me to make the welfare \nreform proposals that I will make to Congress in the next couple of \nmonths -- it's going to be hard for me to make those work if, at the \nend of all this work, to get off welfare there isn't a job.  \n(Applause.)\n\t     \n\t     So we have two tasks.  One is to develop the capacity of \nthe American people to perform without regard to race or income or \nthe circumstances of their birth.  The other is to make sure that \nthere are some opportunities for them to bring to bear for their \ntalent and to be rewarded with a paycheck.  It is a great challenge.  \nI do not pretend that all of the answers are simple.  But I know if \nyou want to ask the American people, all of them, to be more \nresponsible, if you want to recreate a sense of community in this \ncountry that bridges the lines of race and income and region, you \nhave got to have opportunity in that mix. \n\t     \n\t     A part of our vision for America has to be a future for \nevery young person in this country who's willing to play by the rules \nand work hard and strive for the end of the rainbow.  There has to be \nsomething at the end of that rainbow.  And that is what we are \nbasically here to talk about today:  What can we all do as partners, \nrecognizing none of us can do it alone, to develop the capacities of \nour people to succeed wherever they live and whatever their \nbackground.  And then, what can we do to make sure that there's \nsomething there for them to do?\n\n\t     The summer jobs program we're discussing today is an \nintegral part of that plan, because it will promote the values of \nwork and opportunity and fairness, community.  It will put the people \nfirst, and it does have a partnership between the public and private \nsector.\n\t     \n\t     I said when I addressed the United States Congress in \nFebruary on this program that I would seek to create about 700,000 \nextra summer jobs from government sources and then challenge the \nAmerican business community to meet that target so that we can create  \nmore than a million new summer jobs over and above what had been \ncreated before.\n\t     \n\t     Many, many people have responded to that challenge.  And \nJerry is just a shining example of that which has been replicated in \nthis room and around the country -- people who are going to do more \nthan they otherwise would in the private sector to give young people \na work experience.  And it is terribly important.\n\t     \n\t     I want to emphasize that this summer jobs program is \npart of an overall commitment to increase the capacity of the \nAmerican people -- from retraining defense workers who lose their \njobs and other adults who need to acquire new skills; to improving \nthe transition from school to work for young people who don't go to \ncollege but do need at least two years of post-high school training \neither on the job or in a community college or a vocational setting, \nso that they can be competitive workers, making it possible for more \npeople to go on to college who do want to go.\n\t     \n\t     All these things are part and parcel of a comprehensive \nplan.  It's also important, as I said, that we create more jobs.  The \nemergency jobs program that I asked the Congress to adopt would \ncreate a half a million extra jobs over the next year and a half, and \nthat would reduce the unemployment rate by a half a percent.  It \nwould also enable us to absorb more young people coming into the work \nforce in jobs that otherwise will not be created.\n\t     \n\t      It also will help a lot of cities and counties to \ninvest in things that need to be done at the grass-roots level --\nprojects long delayed, water projects, sewer projects, park projects, \nnew industries and particularly in small and medium-size communities \n-- a whole range of things that will improve the economy and improve \nthe environment.  \n\t     \n\t     The summer jobs program is an important part of that \nbecause we have tried for the first time, through the work of the \nLabor Department and the Education Department and through reaching \nout to people like you, to make this more than just a one-shot summer \njobs program; to integrate it with private sector efforts; to \nhopefully replicate it in each coming summer; to move these young \npeople into further educational opportunities and to further job \nopportunities; and to have a strong, meaningful education component \nto these summer jobs -- something that the United States government \nhas never fully emphasized before.  \n\t     \n\t     A lot of these young people, as you well know, because \nthey come from difficult backgrounds, because they go to school in \ndifficult and challenging circumstances, need extra help in building \ntheir basic skills in math and language, reasoning and in other \nareas.  And a lot of educational studies show that young people who \nhave difficulty in school often forget as much as 30 percent of what \nthey learn over the summer and then that has to be repeated the next \nyear.  \n\t     \n\t     What we are trying to do here is to give people the \nopportunity to learn good work habits and to reinforce their learning \nskills and to put them together; and then, hopefully, over the next \ncouple of years, if our entire program passes, to give every school \nin this country the opportunity to have a good work and learning \nenvironment.  \n\t     \n\t     There will be more applied academics, more opportunities \nfor people to learn and work during the school year, so that this \nwill not simply be an isolated moment for these young folks, but will \nbe a part of building a whole new educational experience, a whole new \nwork experience, and moving on a pathway to a better future.\n\t     \n\t     The summer jobs programs are not designed to be make-\nwork jobs.  They're designed to make a future for the people holding \nthe job.  And that's what they will do.  In the process, they'll help \nto build local communities, to strengthen local economies, to solve \nlocal problems.  Real jobs -- renovating housing, repairing public \nbuildings, doing clerical work, providing nursing assistance in \nhospitals, supervising and training children at child care centers, \nand learning all the way.  Challenging young people to learn while \nthey earn, but letting them earn.\n\t     \n\t     You know, it's very difficult to make a case to people \nwho have never seen opportunity on their own street that they should \ndo this, that, or the other thing if there's no evidence of the \nopportunity that's at the end of the effort.  I have not been sparing \nin going for the last year-and-a-half into places where it isn't \nexactly popular to say it, and say I wanted to reform the welfare \nsystem; I wanted to toughen child support; I wanted to require people \nto work; I was sick and tired of people being irresponsible in the \nuse of guns on the streets, and I wanted to change all that.  But if \nyou're going to summon people to greater responsibility, you have to \nreward them when they do the right thing with opportunity.  \n(Applause.)\n\t     \n\t     The young people we propose to put to work under our \nprogram will spend 90 hours learning basic skills, such as math, \nreading, writing -- either on the job in the classroom.  They will \nstretch their minds as well as work up a sweat.  They will have a \nsense of accomplishment.  It will literally be a summer challenge, \nbut a challenge that will take them into a different life.\n\t     \n\t     So I want to ask all of you to support this effort even \nas I, as your President, support your effort.  At the end of the \nsummer we will evaluate all the young people who participate.  We'll \nsee whether they, instead of falling behind over the summer \nacademically as too many young people do, they stayed even or moved \nahead.  I suspect that they will.  \n\t     \n\t     This summer, Secretary Reich and Secretary Riley and I \nwill be visiting many of your communities.  We'll really try to learn \nfrom you which of these efforts are working, what we should do next \nsummer, how we can build it in to what goes on during the school \nyear, how we can build in our job training efforts and the works that \nwe do with your companies to make sense of this whole thing -- so \nthat we maximize the impact of the taxpayer dollar and your private \ninvestments as well. \n\t     \n\t     We want to honor the companies and the communities, the \nbusiness leaders and the young people who do the very best jobs this \nsummer.  And, again, I want to say to all of you in private business \nwho have matched our effort, I thank you.  And to all of you who \nhaven't, and those across the country who may listen or learn about \nthis event today, I want to implore other private employers to \nstretch a little bit to give other young people a chance to work this \nsummer.  I'm telling you, we cannot go through another 10 years when \nwe don't give these children anything to say yes to.  If we exhort \nthem to do right, we've got to be able to reward them.  (Applause.)\n\t     \n\t     When the other speakers were talking, I was sitting up \nhere on the platform, listening and reveling.  And they got talking \nabout work, and I got to thinking about all the different things I've \ndone to make a living in my life.  When I was 13, I made a very \nfoolish short-term business investment:  I set up a comic book stand \nand sold two trunks full of comic books.  Made more money than I had \never had in my life.  But if I had saved those trunks, they'd be \nworth $100,000 today.  (Laughter.)\n\t     \n\t     That does not mean young people should not be \nentrepreneurial.  It just means that you can't foresee a generation \nahead.  I have mowed yards and cleared land and built houses and \nworked in body shops and the parts departments of a car dealership.  \nAnd I've done a lot of different things for a living.  Some \npeople say I got into politics to escape work.  (Laughter.)  \n\t     \n\t     I learned something from every job I ever had.  But I \ngrew up in a generation where I literally did not know a living soul \nwithout regard to race or income who wanted to work who didn't have a \njob.  I grew up in a generation when all you had to really say to \npeople is, get an education and you'll be all right.  You'll get a \njob and you'll make more money next year than you did this year.  Now \nI live in a generation full of people, most of whom don't make any \nmore money in real dollars than they did 10 years ago and they're \nworking longer hours and they're paying more for the basics of life.  \nAnd we are now wondering whether we can create the jobs that these \nyoung people want.\n\t     \n\t     Now, I want to close by reemphasizing these two things:  \nIt doesn't matter what kind of economic policies this administration \npursues, or how much productivity increases there are in the private \nsector, if young Americans don't get a good education, don't learn \nhow to work and can't be productive, those jobs will not be created \nin this country.  Machines will do the work or the work will be done \noff-shore by people who have the same skill levels and can work for a \nthird or a fourth or a fifth the wages.  So nothing we can do \neconomically will matter unless we build the skills and capacities of \nAmerica's work force.  And anybody that pretends otherwise is just \nkidding.  \n\t     \n\t     On the other hand, we need to be honest.  Every wealthy \ncountry in the world, including the United States, is having \ndifficulty creating jobs.  If I knew everything that needs to be done \nI'd be glad to tell you and we   could just call off the whole \ndeliberations of Congress and everything else.  I don't have all the \nanswers.  But I know this:  Doing nothing is not the answer.  \n(Applause.)\n\t     \n\t     And so the jobs program that I have presented to \nCongress, with the summer jobs, with the money for the cities and the \ncounties, through the Community Development Program, with the \ninfrastructure money, is a small part of a big budget.  It is an \nattempt to engage in an experiment to see whether or not, with the \neconomy recovering in terms of corporate profit, we can give a little \nboost to it, give opportunities to young people, create a half a \nmillion jobs and maybe get the engine going again.\n\t     \n\t     Most of the jobs in this program are going to be jobs in \nthe private sector, not government jobs, even though it's government \nmoney.  And the lion's share of the work in rebuilding the American \neconomy obviously will come from the private sector.  That's the kind \nof system we have and it works pretty well.  \n\t     \n\t     But this is the challenge we have.  So I ask all of you \nhere today to support the summer jobs program, to ask your friends \nand neighbors to support it, to go back home and ask your employers \nto make a little extra effort; to do what you can to help me pass the \nfunds to create the 700,000 jobs that the United States government \nshould create this summer, so that together we can have this \npartnership.  Because more than anything else, we have to give a \nfuture -- a future that our young people can believe in.  \n\t     \n\t     We need to send them a message that here in America if \nyou study hard and work hard, if you obey the law and contribute \nsomething to your community, you will be rewarded by your country.  \nYou can build a future from you own dreams. \n\t     \n\t     That has always been the promise of America.  Together \nthat's what this summer of challenge needs to be:  a reaffirmation of \nthe promise of America for so many young people to whom that promise \nhas been an illusion.  We can make it a reality.\n\t     \n\t     Thank you very much.  (Applause.)\n\n                                 END11:45 A.M. EDT\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8533, "properties": {"category": "comp.windows.x", "text": "From: Rob Earhart <earhart+@CMU.EDU>\nSubject: Re: Animation with XPutImage()?\nOrganization: Pittsburgh Supercomputing Center\nLines: 38\n\t<1993Apr22.092830.2190@infodev.cam.ac.uk>\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <1993Apr22.092830.2190@infodev.cam.ac.uk>\n\ndcr@mail.ast.cam.ac.uk (Derek C. Richardson) writes:\n> Shared memory PutImage (also mentioned by nkissebe@delphi.beckman.uiuc.edu,\n> Nick Kisseberth) looks interesting, but I need someone to point me to some\n> documentation. Is this method likely to give better results than server-\n> resident pixmaps? I'd also be interested in looking at the XView code\n> mentioned above...\n\n  There's documentation on how to use the shared memory extension in the\nX11R5 distribution.\n\n  Actually, I just finished writing a motif animation program...\n(take-lots-of-image-data-and-display-it-pretty-darn-fast). When using\non-server pixmaps or shared memory, I had to insert a delay loop to keep\nit from going too quickly :). Testing both methods side by side, they\nwere just about equal.\n\n  The advantage of SHM is that your X server doesn't grow to ridiculous\nsizes; but pixmaps can work over a network and *are* removed if your\napplication dies (one tends to use ipcrm manually quite a bit when\ndebugging SHM apps).\n\n  Shared memory also has the problem that some operating systems (e.g.\nUltrix) seem to allow only a small number of segments (~6) to be\nattached to a process at once; consequently, a redraw becomes\nXShmAttach();XShmPutImage();XShmDetach(); on Dec systems. And Dec's 24\nbit displays (like the ones I tend to use most often) don't seem to\nsupport the extension (maybe someone compiled them wrong?), and using\npixmaps causes the X server to crash (failed mallocs), so one *has* to\nuse the local unix domain socket (which really isn't that bad; one\ncopies the info three times per redraw instead of one).\n\n  In short: allowing all three forms of display, within the program is a\nGood Thing (minus SHM if running over a network), and let the user pick\nwhatever feels fastest.\n\n  (I just use an ximagehandler class and forget about it :)\n\n  )Rob\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8534, "properties": {"category": "talk.politics.mideast", "text": "From: nelson_p@apollo.hp.com (Peter Nelson)\nSubject: Re: Remember those names come election time.\nNntp-Posting-Host: c.ch.apollo.hp.com\nOrganization: Hewlett-Packard Corporation, Chelmsford, MA\nKeywords: usa federal, government, international, non-usa government\nLines: 34\n\nIn article <C5ztK0.DyI.1@cs.cmu.edu> anwar+@cs.cmu.edu (Anwar Mohammed) writes:\n>I said:\n>  In article <C5u4qI.Mz4@apollo.hp.com> nelson_p@apollo.hp.com (Peter Nelson) writes:\n>  >\n>  >  Besides, there's no case that can be made for US military involvement\n>  >  there that doesn't apply equally well to, say, Liberia, Angola, or\n>  >  (it appears with the Khmer Rouge's new campaign) Cambodia.   Non-whites\n>  >  don't count?\n>\n>  Hmm...some might say Kuwaitis are non-white. Ooops, I forgot, Kuwaitis are\n>  \"oil rich\", \"loaded with petro-dollars\", etc so they don't count.\n>\n>...and let's not forget Somalia, which is about as far from white as it\n>gets.\n\n  And why are we in Somalia?   When right across the Gulf of Aden are\n  some of the wealthiest Arab nations on the planet?  Why does the \n  US always become the point man for this stuff?   I don't mind us\n  helping out; but what invariably happens is that everybody expects\n  us to do most of the work and take most of the risks, even when these\n  events are occuring in other people's back yards, and they have the\n  resources to deal with them quite well, thank you.  I mean, it's \n  not like either Serbia, or Somalia represent some overwhelming\n  military force that their neighbors can't handle.  Nor are the \n  logistics a big deal -- it's a lot bigger logistical challenge \n  to get troops and supplies from New York to Somalia, than from \n  Saudi Arabia; harder to go from Texas to Serbia, than Turkey or \n  Austria to Serbia.\n\n\n---peter\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8535, "properties": {"category": "sci.crypt", "text": "From: markh@wimsey.bc.ca (Mark C. Henderson)\nSubject: Re: Source of random bits on a Unix workstation\nOrganization: Wimsey Information Services\nLines: 42\n\nIn article <1qs6cg$7cq@msuinfo.cl.msu.edu> mrr@scss3.cl.msu.edu (Mark Riordan) writes:\n>A few more sources are statistics on your filesystems (easily\n>and quickly obtained) and the output from the \"rusage\" system\n>call.  \n>\n>You can also exec a finger to one or more favorite heavily-used\n>systems, though this can take several seconds.\n>\n>cf. the source code to RIPEM on ripem.msu.edu.\n>\n>Mark R.\n\nOther alternatives include output of vmstat, iostat, pstat and friends\nwith various flags, or even better crash. \n\ne.g. on an RS/6000 (AIX 3.2) you can get lots of relatively\nunpredicatble data out of crash. (the output from the following script \nusually gives about 600k of goo on a moderately busy system.)\n\n#!/bin/sh\ncrash <<!\nproc -\ntty\nstack\npcb\ncallout\nvfs -\nsocket\nvnode\ninode -\nmbuf\nfile\nmst\nbuffer\nle\n!\n\n-- \nMark Henderson\nmarkh@wimsey.bc.ca\nRIPEM key available by key server/finger/E-mail\n  MD5OfPublicKey: F1F5F0C3984CBEAF3889ADAFA2437433\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8536, "properties": {"category": "misc.forsale", "text": "From: thomper@leland.Stanford.EDU (Dale Buford Thompson)\nSubject: Is itproper net etiquette to advertise a company's junk mail list?\nOrganization: DSG, Stanford University, CA 94305, USA\nDistribution: usa\nExpires: April 30, 1993\nLines: 102\n\n\nIn article <C5JCCG.3Bn@tsoft.net> you write:\n>[stuff deleted]\n>\n>My company maintains a 20,000+ mailing list which is regularly rented for\n ^^^^^^^^^^\n>one time use by the major software companies.  The method you are using to\n>\"seed\" your junk mail, isn't really effective.  Bulk mailers regulary \n>either send their databases to be \"cleaned\" by the NCOA, which if you've\n>moved recently, will revert back to the original \"xxx Cool\", and in large\n>mailings, there will likely be a dupe of you, and they'll pick the first, and use the\n>others for future mailings.\n> \n>BTW, our list is currently one of the hottest lists for actual buyers of\n>a MS Windows utility product in the $100 range, and is available through\n                                                   ^^^^^^^^^^^^^^\n>Direct Media in CT., at $0.10 per name.  Please let your direct mail\n                         ^^^^^^^^^^^^^^   !!!!!!^^^^^^^^^^^^^^^^^^^^^  \n>marketing rep. know about this..  Thanks.\n>               !!!! !!!!! !!!!                                             \n>TEd\n\nIt is my impression that net etiquette does not allow companies to\nuse the net to directly advertise their products.\n\nIn addition to improper etiquette, this product is a mailing list\nused for generating junk mail.  \n\nAm I correct in assuming this is improper, and if so, what can be \ndone to penalize such an improper use?\n\nDale Thompson\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8537, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ak333@cleveland.Freenet.Edu (Martin Linsenbigler)\nSubject: Re: icons gone\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 26\nReply-To: ak333@cleveland.Freenet.Edu (Martin Linsenbigler)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, hsano@cs.ulowell.edu (Hitoshi Sano) says:\n\n>I'm not sure if this is the proper place to post this.\n>\n>The icons on Win3.1 Program Manager have all dissapeared and i need to\n>restore them.  The files all seem to be there on the disk and I think there\n>must be a better way than re installing everything.  Thanks for any help!\n>\n>\nHmmmmm you know this happened to me also.\nI am not sure what caused it.  I think there might have been\na system error and dumped windows.  I came back and all was well\nexcept no groups. Program Manager was EMPTY.  All the .grp files were\nin the directory.  I had to remake the groups with the new and group\nselection.  ALL THE ICONS AND FILES INSIDE THE GROUPS WERE STILL THERE\nAND WORKING FINE.  Just the groups had gone out of program manager.\n\nStrange !!!!\nC-ya..... /\\/\\artin\n\n-- \n  This communication is sent by    /\\/\\artin   University of Arizona Tucson\n  =========================================================================\n  ak333@cleveland.freenet.edu   mlinsenb@ccit.arizona.edu  mlinsenb@arizvms\n  DEATH HAS BEEN DEAD FOR ABOUT 2,000 YEARS ****** FOLLOW THE KING OF KINGS\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8538, "properties": {"category": "soc.religion.christian", "text": "From: wquinnan@sdcc13.ucsd.edu (Malcusco)\nSubject: Re: A question that has bee bothering me.\nOrganization: University of California, San Diego\nLines: 56\n\nIn article <Apr.11.01.02.39.1993.17790@athos.rutgers.edu> atterlep@vela.acs.oakland.edu (Cardinal Ximenez) writes:\n\n>  Religious people are threatened by science because it has been systematically\n>removing the physical \"proofs\" of God's existence.  As time goes on we have to\n>rely more and more on faith and the spiritual world to relate to God becuase\n>science is removing our props.  I don't think this is a bad thing.\n>\n\tFirst of all, I resent your assumption that you know why I\nam threatened by science, or even that I am threatened at all,\nalthough I admit the latter.  The reason I am threatened by Science\nhas nothing to do with my need for proof of my Lord's existence--\nGod reveals Himself in many ways, including, to some degree,\nScience.\n\n\tMy problem with Science is that often it allows us to\nassume we know what is best for ourselves.  God endowed us\nwith the ability to produce life through sexual relations,\nfor example, but He did not make that availible to everyone.\nDoes that mean that if Science can over-ride God's decision\nthrough alterations, that God wills for us to have the power\nto decide who should and should not be able to have \nchildren?  Should men be allowed to have babies, if that\nis made possible.\n\n\tPeople have always had the ability to end lives\nunnaturally, and soon may have the ability to bring lives\ninto the world unnaturally.  The closest thing to artificially\ncreated life is artificially created death, and as God\nhas reserved judgement about when people should die to\nHimself, I believe we should rely on God's wisdom about how\npeople should be brought in to the world.\n\n\tThis is not to say that I reject all forms of\nmedical treatment, however.  Treatment that alleviates\npain, or prevents pain from occuring, is perfectly\nacceptable, I believe, as it was acceptable for Jesus\nto cure the sick.  However, treatment that merely \nprolongs life for no reason, or makes unnecessary \nalterations to the body for mere aesthetic purposes,  \ngo too far.  Are we not happy with the beauty God\ngave us?\n\n\tI cannot draw a solid line regarding where I\nwould approve of Scientific study, and where I would not,\nbut I will say this:  Before one experiments with the\nuniverse to find out all its secrets, one should ask\nwhy they want this knowledge.  Before one alters the body\nthey have been given, they should ask themseles why their\nbody is not satisfactory too them as it is.  I cannot\nmake any general rules that will cover all the cases, but\nI will say that each person should pray for guidance\nwhen trying to unravel the mysteries of the universe, and\nshould cease their unravelling if they have reason to \nbelieve their search is displeasing to God.\n\n\t\t\t---Malcusco\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8539, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: HINT 486 VLB/ISA/EISA motherboard\nFrom: schauf@iastate.edu (Brian J Schaufenbuel)\nDistribution: usa\nOrganization: Iowa State University, Ames, IA\nKeywords: 486, motherboard\nLines: 13\n\n\n\nI am looking at buying some Companion brand VLB/ISA/EISA motherboards with\nHINT chipsets.  Has anybody had any experience with this board (good or bad)?\nAny information would be helpful!\n\nthanks\n\n-- \n_______________________________________- Brian Schaufenbuel____________________\n| Brian J Schaufenbuel [ \"There is no art which one government sooner learns  ]\n| Helser 3644 Halsted  [  than that of draining money from the pockets of the ]\n| Ames, Ia  50012      [  people [especially college students].\" - Adam Smith ]\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8540, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Hand Held Products, Inc.\nLines: 82\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <C5sou8.LnB@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \nwrites:\n> In article <1993Apr20.163730.16128@guinness.idbsu.edu> betz@gozer.idbsu.edu  \n(Andrew Betz) writes:\n> >In article <C5rynw.Iz8@news.udel.edu> roby@chopin.udel.edu (Scott W Roby)  \nwrites:\n> >>And I suppose the FBI also prevented them from coming out with their \n> >>hands up while national tv cameras watch.\n> >>\n> >Watch from where?  Two miles away?  Far enough away that whatever\n> >really happenned must be explained through the vengeful filter of\n> >a humiliated agency that said (quote!) \"Enough is enough.\"\n> \n> Please tell me what you think would have happened had the people \n> come out with their hands up several weeks ago.\n> \nIt didn't happen.\n\n> >>scenario that is simplest and most plausible.  I do not generally \n> >>believe in conspiracy theories that involve complicated and unlikely \n> >>scenarios.\n> >\n> >The FBI sent letters to Martin Luther King's wife insinuating\n> >that MLK was having an affair!  Again, please tell us exactly\n> >how much you trust our supposedly benevolent government.\n> \n> More than someone who would not release children from the compound.\n> \nObviously.  You are an authority worshiper.\n\n> I.e., more than David Koresh/Vernon Howell/\"Jesus Christ\".\n> I saw lengthy excerpts from an Australian documentary made in \n> 1992 that clearly showed that this was a cult.\n> \n\nGive me a camera, and time with you, and I can present excerpts that show you  \nto be a cult leader.  Guarenteed. You should at least view the whole  \ndocumentary before you claim it as a source.\n\n\n> I am not pleased with the BATF handling of the affair.  I think they \n> bungled it badly from the start.  But I don't think they are \n> responsible for the fire, which started in two different places.\n> \n\nTwo places, eh?  You saw this?  Or did the wonderful FBI tell you this?  \nI saw one place.\n\n> >>The BATF is by no means devoid of fault in the handling of this affair.\n> >>But to suggest that they may have intentionally started the fire is \n> >>ludicrous.\n> >\n> >I suspect that there were plenty of camerapeople willing to\n> >risk small arms fire to get some good footage.  These people\n> >were told to get the hell out of camera range.  Why?\n> >\n\nCouldn't answer this one, eh?  This is the most important question of all, it  \nis the root cause of all the other suspicion.\n\n> >Drew \n> >--\n> >betz@gozer.idbsu.edu\n> >*** brought into your terminal from the free state of idaho ***\n> >*** when you outlaw rights, only outlaws will have rights   ***\n> >*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n> >    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n> \n> \n> -- \n> \n\nJim\n\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8541, "properties": {"category": "rec.autos", "text": "From: hong@remus.rutgers.edu (Hyunki Hong)\nSubject: VW Passat:  advice sought\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 8\n\n\nI am currently in the car market and would like opinions on a VW\nPassat GLX.  How does it compare to a Toyota Camry?  I thought the car\nlooked very solid, stable and European.  Only disappointment so far is\nthat that it doesn't offer an airbao my next question is, why isn't VW\noffering automobiles with airbags?  Should I pay the extra three\nthousand for a BMW 318 is even though it is smaller and less powerful\nthan than the Passat?\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8542, "properties": {"category": "talk.religion.misc", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: Burden of Proof\nOrganization: Case Western Reserve University\nLines: 41\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1993Apr21.182030.888@batman.bmd.trw.com> jbrown@batman.bmd.trw.com writes:\n>Actually, both are positive arguments.  (\"Positive\" may not be the best\n>description here due to possible misunderstanding, but it's the term you\n>used.)  Positive arguments/assertions can be both affirmative (i.e. God \n>exists) and negative (i.e. God does not exist).  Both carry an equal \n>burden of proof because they are both asserting that a certain idea\n>is true.  The default condition, in the absence of a preponderance of\n>evidence either way, is that the proposition or assertion is undecidable.\n>And the person who takes the undecidable position and says that he/she\n>simply disbelieves that the proposition is true, is the only one who\n>holds no burden of proof.  This is why the so-called \"weak atheist\"\n>position is virtually unassailable -- not because it stands on a firm\n>foundation of logical argument, but because it's proponents simply\n>disbelieve in the existence of God(s) and therefore they hold no burden\n>of proof.  When you don't assert anything, you don't have to prove\n>anything.  That's where weak atheism draws its strength.  But its\n>strength is also its Achilles' heel.  Without assertions/axioms, one\n>has no foundation upon which to build.  As a philosophy, it's virtually\n>worthless.  IMO, of course.\n\n\tSo, if I were to assert that there are no thousand year old \ninvisible pink unicorns* residing in my walls, I need to support this with \nevidence? I think the _lack_ of evidence shall suffice.\n\n\n\t* Who happen to like listening to satanic messages found in playing \nBeethoven's 45th symphony backwards.\n---\n\n        \"FBI officials said cult leader David Koresh may have \n         forced followers to remain as flames closed in. Koresh's \n         armed guard may have injected as many as 24 children with \n         poison to quiet them.\"\n\n        -\n        \n        \"And God saw everything he had made, and, behold, in was very \n         good.\"\n\n         Genesis 1:31\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8543, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Letter to President, Members of Congress, Newspapers, TV Stations...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nNews-Software: FSUUCP 1.2 R4\nLines: 111\n\n\n\n\n\n\n\nToday marks the 78th anniversary of the Armenian genocide of\n2.5 million Turks and Kurds in Eastern Anatolia and x-Soviet\nArmenia. The following letter, which represents a small portion \nof the full text, along with more than 200 pages of historical \ndocuments, scholarly sources, eyewitness accounts and photographs, \nwas sent to President Bill Clinton, members of Congress, editors, \nprogram directors and columnists of major newspapers, journals and \nradio/TV stations for the 78th anniversary of the Armenian genocide \nof 2.5 million Muslim people. On April 23 of every year, the people \nof Turkiye remember their dead. They grieve for lost family and the \nlost homes of their grandfathers. This year the Turkish Nation is \nmourning and praying again for her fallen heroes who gave their \nlives generously and with altruism, so that the future generations \nmay live on that anointed soil of the Turkish land happily and \nprosperously.\n\n------------------------- letter ----------------------------------\n\nDuring the years of World War I, the x-Soviet Armenian Government \nhas planned and perpetrated the 'Genocide' of the Muslim people, which \nnot only took the lives of 2.5 million Muslim people, but was also the \nmethod used to empty the Turkish homeland of its inhabitants. To this day, \nTurkish historic lands remain occupied by the x-Soviet Armenia. In order \nto cover up the fact of its usurpation of the historic Turkish homeland, \nwhich is the crux of Turkish political demands, fascist x-Soviet Armenia \ncontinues its anti-Turkish policy in the following ways:\n\n1. x-Soviet Armenia denies the historical fact of the Turkish Genocide\nin order to shift international public opinion away from its political\nresponsibility.\n\n2. x-Soviet Armenia, employing ASALA/SDPA/ARF Terrorism and Revisionism \nTriangle, attempts to call into question the veracity of the Turkish \nGenocide.\n\n3. x-Soviet Armenia has also implemented state-sponsored terrorism through\nthe ASALA/SDPA/ARF Terrorism and Revisionism Triangle in an attempt to \nsilence the Turkish people's vehement demands and protests.\n\n4. Using all its human, financial, and governmental resources, x-Soviet\nArmenia and its tools in the United States attempt to silence through\nterrorism, bribery and other subversive methods, non-Turkish supporters\nof the Turkish cause, be they political, governmental and humanitarian.\n\nUsing all the aforementioned methods, the x-Soviet Armenian Government \nis attempting to neutralize the international diplomatic community from\nmaking the Turkish Case a contemporary issue.\n\nYet despite the efforts of the x-Soviet Armenian Government and its \nterrorist and revisionist organizations, in the last decades, thanks \nto the struggle of those whose closest ones have been systematically \nexterminated by the Armenians, the international wall of silence on \nthis issue has begun to collapse, and consequently a number of \ngovernments and organizations have become supportive of the recognition \nof the Turkish Genocide.\n\nWith the full knowledge that the struggle for the Turkish territorial\ndemands are still in their initial stages, the Turkish and Kurdish people\nwill unflaggingly continue in this sacred struggle, therefore the victims\nof the Turkish Genocide demand:\n\n1. that the x-Soviet Armenian Government, as the heirs of the Armenian \nDictatorship, recognize the Turkish Genocide;\n\n2. that x-Soviet Armenia return the historic homeland to the Turkish and\nKurdish people;\n\n3. that the x-Soviet Armenian Government make material reparations for \ntheir heinous and unspeakable crime to the victims of the Turkish Genocide;\n\n4. that all world governments, and especially the United States, officially\nrecognize the Turkish Genocide and Turkish territorial rights and refuse\nto succumb to all Armenian political pressure;\n\n5. that the U.S. Government free itself from the friendly position it \nhas adopted towards its unreliable ally, x-Soviet Armenia, and officially \nrecognize the historical fact of the Turkish Genocide as well as be \nsupportive of the pursuit of Turkish territorial demands;\n\n6. that the x-Soviet Republics officially recognize the historical fact \nof the Turkish Genocide and include the cold-blooded extermination of \n2.5 million Muslim people in their history books.\n\nThe awareness of the Turkish people of the necessity of solidarity in the\nefforts to pursue the Turkish Cause is seen by the victims of the first \ngenocide of the 20th century as a positive step. Furthermore, a new \ngeneration has risen - equipped with a deep sense of commitment, politically\nmature and conscious, who determinedly pursue the Turkish Cause, through\nall necessary means, ranging from the political and diplomatic to the \narmed struggle. Therefore, the victims of the Turkish Genocide call upon\nall Muslims in the United States and Canada to participate vigorously in \nthe political, cultural and religious activities of the 78th Anniversary\nof the Armenian genocide of 2.5 million Muslim people.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8544, "properties": {"category": "rec.autos", "text": "From: rdb1@cbnewsj.cb.att.com (ronald.j.deblock..jr)\nSubject: Re: Changing oil by self.\nOrganization: AT&T\nDistribution: usa\nKeywords: n\nLines: 19\n\nIn article <1993Apr14.171718.18852@lmpsbbs.comm.mot.com> sheinfel@ssd.comm.mot.com (Aviad Sheinfeld) writes:\n>\n>>\tDo you think I can use a electric drill( change to a suitable\n>>bit ) to turn it out?  If I can succeed, can I re-tighten it not too\n>>tight, is it safe without oil leak?\n>\n>Tighten the bolt to the specified torque in your service manual.  That\n>way it won't leak, strip, break, etc. (hopefully :-) )\n>>\n>>Thank you very much in advance------  Winson\n>\n>Aviad\n\nYou can avoid these problems entirely by installing an oil drain valve in\nplace of the bolt.  I have one on both of my cars.  There have been no\nleaks in 210,000 miles (combined miles on both cars).\n-- \nRon DeBlock  rdb1@homxb.att.com  (that's a number 1 in rdb1, not letter l)\nAT&T Bell Labs   Somerset, NJ  USA\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8545, "properties": {"category": "comp.graphics", "text": "Subject: XV for MS-DOS !!!\nFrom: NO E-MAIL ADDRESS@eicn.etna.ch\nOrganization: EICN, Switzerland\nLines: 42\n\nHi !!! This is the response for Wayne Michael...and certainly for other-one :-)\n\n\nI'm sorry for...\n\n    1)  The late of the answer but I couldn't find xv221 for msdos 'cause \n\tI forgot the address...but I've retrieve it..\n\n    2)  Posting this answer here in comp.graphics 'cause I can't use e-mail,\n\tnot yet....\n\n   2) My bad english 'cause I'm a Swiss and my language is french....\n\n\nAfter a long time I retrieve the address where you can find XV for Dos...\n\n\tSite\t: omnigate.clarkson.edu\n\tAliases\t: grape.ecs.clarkson.edu\n\tNumber\t: 128.153.4.2\n\n\t/pub/msdos/djgpp/pub\n\n\tit's xv221.zip (?) I think...\n\n\nCertainly you read the other answer from Kevin Martin... He write about DV/X \n(?). \n\n    What is it ?????? Could Someone answer ????\n\t\n\tThanx in advance.... \n\n-- \n---------------------------------------------------------------------\n*\t\t\t\t\t\t\t\t    *\n*  Pascal PERRET     \t\t|\tperret@eicn.etna.ch         *\n*  Ecole d'ing\u00e9nieur ETS\t|\t(Not Available at this time)*\n*  2400 Le LOCLE\t\t|\t\t\t\t    *\n*  Suisse \t\t\t\t\t\t\t    *\n*\t\t     !!!! Enjoy COMPUTER !!!!\t\t\t    *\n*\t\t\t\t\t\t\t\t    *\n---------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8546, "properties": {"category": "rec.sport.baseball", "text": "From: gt0523e@prism.gatech.EDU (Michael Andre Mule)\nSubject: Re: Torre: The worst manager?\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 24\n\nIn article <93095@hydra.gatech.EDU> gt7469a@prism.gatech.EDU (Brian R. Landmann) writes:\n\n>\ne,\n>Later, in the ninth inning with the bases loaded and two outs he puts\n>lankford, a 300 hitter with power in as a pinch runner and uses Luis\n>Alicea, a 250 hitter with no power as a pinch hitter.  What the Helll\n>is he thinking.\n\nIf memory serves me well, Alicea hit it, and damn near tied the game.\nTorre obviously knows his players better than you do. \n\n\nSee y'all at the ballyard\nGo Braves\nChop Chop\n\nMichael Mule'\n\n-- \nMichael Andre Mule\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0523e\nInternet: gt0523e@prism.gatech.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8547, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Automatic online encryption of data\nLines: 46\n\n\tFrom: andersom@spot.Colorado.EDU (Marc Anderson)\n\n\t>Also.. how about a box that you plug your phone into, which would allow\n\t>encrypted voice communications with someone who has a similar box?  \n\t>(digitizing input speech, transmitting, and decrypting on the other end).  I \n\t>don't know how a public-key system could work in this regard, but it might \n\t[...]\n\n\theh heh... I posted this just before reading all the Clinton Chip messages..\n\tI guess they beat me to it..  Anyway, I think it would be a great idea to\n\tdevelop such a product, perhaps in the underground, as it would otherwise\n\tprobably become illegal pretty quickly here...\n\nIt's really very feasible and shouldn't be too expensive - all that's needed\nis a box with a phone jack on one side, a DSP in the middle to do codec\nfunctions of speech->compressed bytestream, and an RS232 on the other side.\n\nYou'd plug your phone into it, plug the RS232 into your computer, and have\na good old fashioned normal modem on your other RS232 port.  The CPU in the\nmiddle would do the encryption with a version of pgp modified to work on\na byte stream.\n\nWith v32bis or better modems to carry the bytestream, it should work. \nQuality would only be marginally lower than a normal telephone.\n\nAt the very highest price, you could use one of those voice-mail compatible\nmodems to do the digitisation - that puts an upper bound of about $500 on\nthe cost of such a box.  In practice, you really ought to be able to get\nthe price well below $100 - I could do it now in software on my cheap&nasty\nhome RISC box (Acorn Archimedes) with the digitising microphone I bought\nfor 25 pounds, if I knew how to write good speech compression software\n(which I don't).\n\nThe reason it won't work of course is that hardly anyone will have one -\nthe only consumer equipment to have encryption will use the wiretap chip.\nEconomics, I'm afraid.\n\nHowever... we can get about 2Kcps throughput on the internet even with\nthe bottleneck of a v32bis modem.  When we get ISDN for all (ha ha ha)\nand the new NREN, it might then be trivial to run compressed speech\nover a tcp/ip connection on the Internet.  Perhaps we should start\nthinking now of a standard to keep voice on the internet compatible\nfor everyone, and side-step the clipper stuff and use internet for\nall our phone calls in future :-)  [1/2 joking]\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8548, "properties": {"category": "sci.med", "text": "From: kiran@village.com (Kiran Wagle)\nSubject: Re: Barbecued foods and health risk\nOrganization: the Syllabub Sea\nLines: 55\nNNTP-Posting-Host: cs.utexas.edu\n\nMark McWiggins <markmc@halcyon.com> reminds us:\n\nMM> Also, don't forget that it's better for your health \nMM> to enjoy your steak than to resent your sprouts ...\n\nYES!\n\nI call this notion \"psychological health food\" and, in fact, have\ndetermined that the Four Food Groups are Ice Cream, Pizza, Barbecue, and\nChocolate.  Ideally, every meal should contain something from at least two\nof these four groups.  Food DOES serve functions other than nutrition, and\none of them is keeping the organism happy and thus aiding its immune\nsystem. \n\nAnd I didn't spend a million bucks commissioning a study that told me to\nredraw my silly little pyramid in different colors and with a friendlier\ntypeface, either.  (Ref: Consumer Reports' back page--one of the best\nthings ever to turn up there.)\n\nRich Young <young@serum.kodak.com> writes of one of six impossible things:\nRY> to consume unrealistically large quantities of barbecued meat at a time.\"\n\nDonald Mackie <Donald_Mackie@med.umich.edu> confesses:\nDM> I have to confess that this is one of my few unfulfilled ambitions.\nDM> No matter how much I eat, it still seems realistic.\n\nYeah, I want to try one of those 42oz steaks (cooked over applewood) at\nWally's Wolf Lodge Inn in Coeur d'Alene.  That seems quite\nunrealistic--unrealistically SMALL.  And a few slabs of ribs from the East\nTexas Smoker (RIP, again) in Louisville is not at all unrealistic either.  \n\nWhat say we have a rec.food.cooking dinner at the Moonlite Bar-B-Que Inn in\nOwensboro? (It's all you can eat including lamb ribs & mutton for about\n$10.)  We could invite Julie Kangas as guest of honor and see if the\nMoonlite's Very Hot Sauce is too hot for her.  (It IS too hot for me, and I\ndon't say that very often.)  And she could bring ice cream with crushed\ndried chiltepins for dessert.  \n\nAnd we could see if there IS such a thing as an \"unrealistically large\nquantity\" of barbecue--the owner of the Moonlite estimates that the\nOwensboro restaurants serve a hundred thousand pounds of meat a week in the\nsummer, and forty thousand in the winter--in a town of 50 000 or so.  Two\npounds per person per week?   Again, sure sounds unrealistic to me--thats\njust too meager to be healthy.\n\n~ Kiran (Now a two-pound slab of ribs a day, THAT's realistic.)\n\n-- \nFUZZY PINK NIVEN'S LAW:  Never Waste Calories.  Potato chips, candy,\nwhipped cream, or hot fudge sundae consumption may involve you, your\ndietician, your wardrobe, and other factors.  But Fuzzy Pink's Law implies:\nDon't eat soggy potato chips, or cheap candy, or fake whipped cream, or an\ninferior hot fudge sundae.\n                Larry Niven, NIVEN'S LAWS, N-SPACE\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8549, "properties": {"category": "sci.space", "text": "From: nicho@vnet.IBM.COM (Greg Stewart-Nicholls)\nSubject: Re: Biosphere II\nReply-To: nicho@vnet.ibm.com\nDisclaimer: This posting represents the poster's views, not those of IBM\nNews-Software: UReply 3.1\nX-X-From: nicho@vnet.ibm.com\n            <1q77ku$av6@access.digex.net>\nLines: 10\n\nIn <1q77ku$av6@access.digex.net> Pat writes:\n>The Work is privately funded,  the DATA belongs to SBV.  I don't see\n>either george or Fred,  scoriating IBM research division for\n>not releasing data.\n   We publish plenty kiddo,you just have to look.\n -----------------------------------------------------------------\n .sig files are like strings ... every yo-yo's got one.\n\nGreg Nicholls ... nicho@vnet.ibm.com (business) or\n                  nicho@olympus.demon.co.uk (private)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8550, "properties": {"category": "soc.religion.christian", "text": "From: sun075!Gerry.Palo@uunet.uu.net (Gerry Palo)\nSubject: Re: Good Jewish Arguments\nLines: 90\n\nkwfinken@pooh.harpo.uccs.edu (Kevin W. Finkenbinder)  wrote:\n\n>scott@born.phys.virginia.edu wrote:\n>: \n>:[intro deleted...] \n>: \n>:       1) Jesus wasn't really descended from David as the Messiah was supposed\n>: to have been. Joseph was, but Christians say that Joseph wasn't related to\n>: Jesus truthfully.\n>\n>        If you look at the geneology of Christ in Luke 3 and the one in\n>Matthew 1 you will notice that they trace different lines back to David.\n>I have been told that one traces Mary's line back to David and the other\n>traces Joseph's line back to David.  (Both of them go beyond David in\n>history)  Acording to some of my Jewish friends, \"Jewishness\" is passed\n>to a child by the mother and the legal rights of \"Jewishness\" are passed\n>through the father.  If it is true that one of these geneologies is\n>Mary's, then Christ's bloodline is from David through His mother.  This\n>also means that Christ had all of the legal rights of a decendant of\n>David as according to at least Roman law (and possibly Mosaic law as\n>well, but I am not sure) Joseph was Christ's LEGAL FATHER.\n\nThe argument for Luke's genealogy being that of Mary is very weak. According\nto Luke 3:23\n\n   And when he began his ministry, Jesus himself was about \n   thirty years of age, being supposedly the son of Joseph,\n   the son of Eli,\n\nAside from the fact that Mary is not mentioned, there are two possible\ninterpretations: either Joseph was her father or he was her brother.\nClearly this is not acceptable.  A third would be that Joseph, the son\nof Eli, was her Father and just happened to have the name as the man\nto whom she was betrothed. But that would seem to be grasping at\nstraws. The most straightforward interpretation is that Luke had no\nintention of tracing Mary's genealogy (in which case he would have\nnamed her) but that he traces her husband's, from David's son Nathan.\n\nThe Matthew descendant list most definitely traces down from David's\nson, Solomon, to Joseph.  Matthew 1:16 reads:\n\n   And to Jacob was born Joseph, the husband of Mary, by whom was born\n   Jesus, who is called Christ. \n\nThere are two apparent problems.  The first is, how to reconcile the\ntwo paternal genealogies - which diverge with the sons of David,\nSolomon and Nathan.  The second is, why is any genealogy of Joseph\nrelavent at all, if Joseph had nothing to do with it.  If Joseph was\nnot Jesus's physical father, then the original poster is quite\ncorrect, that claims for Jesus's messianic heritage are not based on\ntruth but only on appearances, whatever Jesus's divine nature was.\n\nThe second problem is easy, in my mind.  We assume that Joseph was not\ninvolved in the conception of Jesus in any way.  However, a Holy\nSpirit capable of working a physical conception in Mary is also\ncapable of employing the physical agency of Joseph's seed in this\nwork.  In our materialistic times we interpret viginity and its loss\nsolely in terms of a physical act, whereas it is really a matter of\npurity on a much higher level as well.  The important thing is that\nneither Mary nor Joseph was conscious of any union between them (they\nhad not \"known\"each other).  Thus the first gospel's dedication of\nhalf its opening chapter to the genealogy of Joseph is quite relevant\nto Jesus, the Virgin birth not- withstanding.\n\nTo the first question there is an answer that creates, to begin with, more\nproblems than it resolves.  It is that the two evangelists are relating \nthe births of two entirely different children of two entirely different\nsets of parents.  Except for the names of the parents and the child, and \nthe birthplace in Bethlehem there is no point in common between the two \nstories.  Matthew and Luke converge in their accounts only thirty years\nlater with the Baptism of Jesus in Jordan.  Rudolf Steiner offered his\nexplanation of how these accounts begin with two children and then converge\nwith their accounts of the one Jesus of Nazareth.  He did not derive his\nresolution from biblical study or speculation, or from other external\ndocuments, and the discussion of \"how this could be\" might bring us beyond\nthe limits of appropriateness for this newsgroup.  In any case, the\ndetails are described in Steiner's \"The Spiritual Guidance of the Human \nBeing and of Humanity\", \"The Gospel of St. Luke\", and \"The Gospel of St.\nMatthew\". \n\nWhether or not Rudolf Steiner's methods and explanation are accepted\nas valid, at least this interpretation resolves the apparent\ncontradictions of the two genealogies while leaving the text intact.\n\nAs for the passing of one's Jewishness through the mother, this was\nnever an issue with Jesus. No one ever questioned his or Mary's\nJewishness.  The issue of the genealogies has to do with his paternal\nline of descent from David, the king.\n\nGerry Palo (73237.2006@compuserve.com)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8551, "properties": {"category": "sci.electronics", "text": "From: yxy4145@ucs.usl.edu (Yu Yingbin)\nSubject: Does someone know what is the news group for IEEE.\nOrganization: Univ. of Southwestern La., Lafayette\nDistribution: usa\nLines: 2\n\n       yxy4145@usl.edu     Thanks a lot.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8552, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Eric.Choi@p5.f175.n2240.z1.fidonet.org (Eric Choi)\nSubject: Re: Educational Pricing/gray market\nOrganization: FidoNet node 1:2240/175.5 - Association Mac BBS, Grand Blanc MI\nLines: 17\n\n \n  eu> Apple does not authorise sales through Mail Order.  As a result mail\n  eu> order companies have to obtain their machines by the grey market.\n  eu> \n  eu> This market is supplied with machines from authorised resellers who\n  eu> have more machines than they can sell.  They come into this state of\n  eu> affairs by overordering either accidentally or deliberatly to get a\n  eu> better wholsale price from Apple.  In either case they often obscure\n  eu> the serial nunber to protect their identity.  As a result the warranty\n  eu> is void.\n  \nI have ordered several Macs from different mail order companies with absolutely zero problem. You have to dig around to find the true gray market dealers that sell Macs with authentic serial numbers untouched. There are value-added dealers (nothing to do with VAT, no flame please) that are very legitimate.\n\nCDA unfortunately is one of those that replace the serial number with their own to prevent Apple from tracing which authorized dealer sold that machine to CDA.\n--  \n=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n Eric Choi - Internet: Eric.Choi@p5.f175.n2240.z1.fidonet.org\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8553, "properties": {"category": "sci.electronics", "text": "From: al@qiclab.scn.rain.com (Alan Peterman)\nSubject: Fluke For Sale (was DMM Advice Needed)\nKeywords: Fluke 8062A $115\nArticle-I.D.: qiclab.1993Apr17.202510.1992\nOrganization: SCN Research/Qic Laboratories of Tigard, Oregon.\nLines: 13\n\n\nI have a spare Fluke 8062A.  This is a true RMS digital meter with\n4.5 digit display.  It's in \"average\" condition (been used) but \nworks fine - which is what Fluke's are all about.   BTW - according\nto the fellow who designed these meters, they can be converted to 8060A\nfunction by clipping a jumper, and adding the 2 extra switches..\nLike I said $115 seems fair - these sell for $300+ new.\n\n\n-- \nAlan L. Peterman                                 (503)-684-1984 hm & work\n                       al@qiclab.scn.rain.com\nIt's odd how as I get older, the days are longer, but the years are shorter!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8554, "properties": {"category": "misc.forsale", "text": "Subject: WANTED: summer sublease in Washington, DC\nFrom: kimgh@mentor.cc.purdue.edu (Gene Kim)\nDistribution: na\nOrganization: Purdue University\nLines: 9\n\n\n    I'll be spending this summer in Washington, DC working in Bowie, MD.\nDoes anyone have a summer sublease that they'd like to unload?  I'll be\nin the area from about May 7 - August 20.\n\n    Please mail me any pertinent info at (kimgh@mentor.cc.purdue.edu).\n\nThanks in advance,\nGene\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.406+0000", "event": "documents", "entityId": 8555, "properties": {"category": "comp.windows.x", "text": "From: D.Haywood@sheffield-hallam.ac.UK (Dave Haywood)\nSubject: tvtwm & xsetroot, X11R5 and Sparc 10 keyboard\nOrganization: Sheffield Hallam University\nLines: 66\nReply-To: D.Haywood@sheffield-hallam.ac.uk\nTo: xpert@expo.lcs.mit.edu\n\nHi,\n\n  Please reply to me direct as I am not a member of this list.\n\n  I am new to X, so please excuse my lax (read: \"probably incorrect\")\nterminology!\n\n  Environment: Sun Sparc 10, SunOs 4.1.3.  X11R5 path level 23.  My X process\nis started by xdm.\n\n  i) I want to setup the backgroud (root window?) of the tvtwm display to\n     display the escherknot etc (grey is a very boring colour to work on)!\n\n     The setup is as follows:\n\n        lib/X11/xdm/Xsetup_0    -   xsetroot -bitmap ... etc\n        ~user/.xsession         -   xsetroot .... etc\n                                    tvtwm\n\n     There are also .tvtwmrc and .Xdefaults files in the (~user) home\n     directory.\n\n     The xsetroot in Xsetup_0 displays the appropriate bitmap in the xdm\n     login window as expected - very nice!\n\n     Unfortunately, when the users session is started, the background of the\n     tvtwm window reverts to grey.  If I manually type xsetroot... in an\n     xterm window when the session has started, the background is changed as\n     expected.\n\n     The question is: How do I retain the background from the login window\n     and/or specify a new background on a per-user basis as part of the\n     the users session startup?\n\n ii) When I open an Xterm on the Sparc 10, not all of the keys are recognised\n     and some keys on the keyboard are not sending the correct characters.\n\n     ie: real key       key shown on screen\n         ------------   -------------------\n         hash           back slash\n         tilde          pipe\n         double quote   at symbol\n         pound          hash\n         cursor key     not recognised\n\n     This is very annoying!  Is X at fault here or the machine setup?  I have\n     installed the xterm drivers that came with X11R5 in both terminfo and\n     termcap as they seemed more uptodate.\n\n     Typing set in an xterm window shows a terminal type of xterm - as\n     expected!\n\n  Any help on how to correct either of these problems much appreciated!\n\n  Thanks,\n\nDave.\n--------------------------------------------------------------------------\nJANET   : D.Haywood@uk.ac.sheffield-hallam      | Dave Haywood.\n  or      D.Haywood@uk.ac.shu                   | Computer Services,\nINTERNET: D.Haywood@shu.ac.uk                   | Sheffield Hallam University\nTelex   : 54680 SHPOLY G                        | Pond Street,\nTel     : +44 742-533-828                       | Sheffield. S1 1WB. ENGLAND.\nFAX     : +44 742-533-840                       |\nX.400:/I=D/S=Haywood/O=Sheffield-Hallam/PRMD=UK.AC/ADMD= /C=GB\nX.500:@c=GB@o=Sheffield Hallam University@ou=Computer Services@cn=Dave Haywood\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8556, "properties": {"category": "soc.religion.christian", "text": "From: jemurray@magnus.acs.ohio-state.edu (John E Murray)\nSubject: quality of Catholic liturgy\nOrganization: The Ohio State University\nLines: 20\n\nI appreciated the follow-ups and replies to my earlier query.  One reply, which\nI have lost, suggested several parishes in New York that have good Masses, one \nof which was Corpus Christi in downtown Manhattan.  By coincidence, last week's\n_America_, the national Jesuit magazine, carried an interview with Fr. Myles \nBourke, Corpus Christi's pastor emeritus.  Fr. Bourke also directed the NT \ntranslation in the New American Bible.  He noted \"...certain practices have \nbeen introduced into the Mass in such a manner that an atmosphere of banality, \nand sometimes of hilarity, has trivialized the liturgy.\"  I note that at my \nparents' parish on Easter, helium filled balloons were distributed at the \noffertory, apparently to aid in understanding the word \"risen\".  This was not a \nkiddie mass, either, but the well-attended 11:00 Mass.\n\nI wanted to note the generous spirit behind the replies.  This newsgroup as a\nwhole offers generally moderate (perhaps because it's moderated) conversation\non topics that often lead people to extreme behavior (including myself).\nSometimes people do go over the top, but the remarkable thing is how that is\nthe exception, I think.  Benefits of the doubt are generally granted.  It seems\nso...Christian?\n\nJohn Murray\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8557, "properties": {"category": "sci.space", "text": "From: dgempey@ucscb.UCSC.EDU (David Gordon Empey)\nSubject: Re: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nOrganization: University of California, Santa Cruz\nLines: 22\nDistribution: world\nNNTP-Posting-Host: ucscb.ucsc.edu\n\n\nIn <1993Apr23.165459.3323@coe.montana.edu> uphrrmk@gemini.oscs.montana.edu (Jack Coyote) writes:\n\n>In sci.astro, dmcaloon@tuba.calpoly.edu (David McAloon) writes:\n\n>[ a nearly perfect parody  -- needed more random CAPS]\n\n\n>Thanks for the chuckle.  (I loved the bit about relevance to people starving\n>in Somalia!)\n\n>To those who've taken this seriously, READ THE NAME! (aloud)\n\nWell, I thought it must have been a joke, but I don't get the \njoke in the name. Read it aloud? David MACaloon. David MacALLoon.\nDavid macalOON. I don't geddit.\n\n-Dave Empey (speaking for himself)\n>-- \n>Thank you, thank you, I'll be here all week.  Enjoy the buffet! \n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8558, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: alee@mnemosyne.cs.du.edu (Alec Lee)\nSubject: comm.drv replacement\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 15\n\nThere was a recent post about a BBS where you could download a replacement\nfor comm.drv (Win 3.x) that fixed a lot of the problems with high-speed \nmodems.  Does anyone know of an ftp site where I can get it?\n\nThanks,\n\nAlec Lee\n\n+---------------------------------------------------------------------+\n|     Alec Lee          aslee@diana.cair.du.edu      (303) 871-5744   |\n|\t\t  \t     alee@cs.du.edu\t\t\t      |\n|---------------------------------------------------------------------|\n|\t\t \"Sexy?  But what's wrong with being sexy\"\t      |\n|\t\t\t- Nigel Tufnel, Spinal Tap\t\t      |\n+---------------------------------------------------------------------+  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8559, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: catone@compstat.wharton.upenn.edu (Tony Catone)\nSubject: Re: 17\" Monitors\n\t<C5GEH5.n1D@utdallas.edu>\nOrganization: University of Pennsylvania\nLines: 14\nNntp-Posting-Host: compstat.wharton.upenn.edu\nIn-reply-to: goyal@utdallas.edu's message of 14 Apr 93 03:17:28 GMT\n\nIn article <C5GEH5.n1D@utdallas.edu> goyal@utdallas.edu (MOHIT K GOYAL) writes:\n\n   Oh yeah, I just read in another newsgroup that the T560i uses a\n   high quality Trinitron tube than is in most monitors.(the Sony\n   1604S for example) and this is where the extra cost comes from.  It\n   is also where the high bandwidth comes from, and the fantastic\n   image, and the large image size, etc, etc...\n\nIt's also where the two annoying lines across the screen (one a third\ndown, the other two thirds down) come from.\n\n\n- Tony\n  catone@compstat.wharton.upenn.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8560, "properties": {"category": "sci.electronics", "text": "From: mjhill@eos.ncsu.edu (MICHAEL JAMES HILL)\nSubject: New applications of electronics\nOriginator: mjhill@c00483-224wi.eos.ncsu.edu\nReply-To: mjhill@eos.ncsu.edu (MICHAEL JAMES HILL)\nOrganization: North Carolina State University, Project Eos\nLines: 8\n\n\n\n\tI'm looking for brief information on new\napplications of electronics (or new electronics in\napplications.) If you know of any interesting new\nstuff, I would be intrested in hearing about it.\n\n\t\t\tThanks, MJH\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8561, "properties": {"category": "talk.religion.misc", "text": "From: arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee)\nSubject: Re: Davidians and compassion\nOrganization: Johns Hopkins University CS Dept.\nLines: 16\n\nIn article <sandvik-190493200420@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n>So we have this highly Christian religious order that put fire\n>on their house, killing most of the people inside.\n\nWe have no way to know that the cultists burned the house; it could have been\nthe BATF and FBI.  We only have the government's word for it, after all, and\npeople who started it by a no-knock search with concussion grenades are hardly\ndisinterested observers.\n--\n\"On the first day after Christmas my truelove served to me...  Leftover Turkey!\nOn the second day after Christmas my truelove served to me...  Turkey Casserole\n    that she made from Leftover Turkey.\n[days 3-4 deleted] ...  Flaming Turkey Wings! ...\n   -- Pizza Hut commercial (and M*tlu/A*gic bait)\n\nKen Arromdee (arromdee@jyusenkyou.cs.jhu.edu)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8562, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sam@ms.uky.edu (Mike Mills)\nSubject: Video cards with BNC connectors?\nOrganization: University of Kentucky\nLines: 14\n\nHello,\n\nI just recently bought a NEC 6FG.  In order to get the highest possible quality\nand refresh rates, I'd like to know if there are any accelerator cards with\nBNC connectors (as opposed to the usual d-sub connector)? \n\n\nThanks for any information,\n\n\n-- \n--Mike Mills              E-Mail:  sam@ms.uky.edu, {rutgers, uunet}!ukma!sam\n--UK Math Sciences Dept.                  mike@ukpr.uky.edu    \n--(606) 257-1429 (work) 263-0721 (home)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8563, "properties": {"category": "sci.crypt", "text": "From: hollasch@kpc.com (Steve Hollasch)\nSubject: Re: Clipper considered harmful\nSummary: Buckets of blood pouring from peoples' heads!\nOrganization: Kubota Pacific Computer, Inc.\nLines: 46\n\nbrad@optilink.COM (Brad Yearwood) writes:\n| If Clipper comes to cellular phones along with legal proscriptions against\n| using other cipher systems on these phones, a new and potentially dangerous\n| class of crime is created.\n| \n| Criminals who very badly want inscrutable tactical communications\n| (specifically the terrorists and drug dealers who proponents of key escrow\n| cite as threats) will be highly motivated to steal the cipher phone of a\n| legitimate user, and to kill this person or hold them hostage so discovery\n| of compromise of the device will be delayed.\n\n    Yow - get some sleep Brad!  You mean that people (i.e. life-is-cheap\nterrorists & drug-dealing warlords) who want to communicate in privacy will\nprefer to break into my house, kill or kidnap me, and steal my telephone,\nrather than:\n\n        - Spending $15 at K-mart to buy a new phone.\n\n        - Purchasing a load of phones from the black market / flea market /\n          super market.\n\n        - Talking (*gasp*) face-to-face.\n\n        - Walking down to any one of millions of pay phones.\n\n        - Using messengers.\n\n        - Going to excruciating effort to think of code phrases like \"I had\n          a blowout on the freeway today\".\n\n    Look, this system does nothing to threaten folks who _know_ they're\nbeing wiretapped, since it's trivial to find other avenues of communication;\nthey'd have no reason to resort to extreme measures, since a plethora of\nsimple alternatives are easily available to them.\n\n    Among all the legitimate reasons to damn the proposed system, I don't\nthink we need to worry about terrorist commie drug warlord assasin thugs\nmurdering our families, kicking the dog and leaving the toilet seat up just\nto steal a $15 telephone.  The system is more like urine testing:  it\ncatches some small number of very stupid people, has no effect on the \"bad\nguys\" with at least three neurons working in unison who wish to subvert it,\nand penalizes most heavily those who have no cause to be subject to it.\n\n______________________________________________________________________________\nSteve Hollasch                                   Kubota Pacific Computer, Inc.\nhollasch@kpc.com                                 Santa Clara, California\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8564, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: An Open Letter to Mr. Clinton\nOrganization: DSI/USCRPAC\nLines: 14\n\n\nHere's a simple way to convert the Clipper proposal to an unexceptionable\none: Make it voluntary.\n\nThat is--you get high quality secure NSA classified technology if you agree\nto escrow your key. Otherwise you are on your own.\n\nDavid\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8565, "properties": {"category": "sci.med", "text": "From: lmegna@titan.ucs.umass.edu (Lisa Megna)\nSubject: Neurofibromatosis\nOrganization: University of Massachusetts, Amherst\nLines: 15\nNNTP-Posting-Host: titan.ucs.umass.edu\n\nHello,\n\nI am writing a grant proposal for a Developmental Genetics class and I\nhave chose to look at the Neurofibromatosis 1 gene and its variable\nexpressivity.  I am curious what has already been done on this subject,\nespecially the relationship between specific mutations and the resulting\nphenotype.  My literature search has produce many references, but I want to\nmake sure I am proposing new research.  If anyone knows aything that has been\nrecently or key peopl doing research to search for using MEDLINE, I would\napprciate being informed.\n\nThank you.\n\nLisa Megna\nlmegna@titan.ucc.umass.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8566, "properties": {"category": "misc.forsale", "text": "From: sunbum@cory.Berkeley.EDU (.....)\nSubject: Stealth VRAM\nNntp-Posting-Host: cory.berkeley.edu\nOrganization: University of California, at Berkeley\nLines: 13\n\nsale item: A brand new Stealth VRAM Hi-Color card w/ 1meg display\nprice    : $135\n\nIt comes with:  install disk\n\t\tTurbo windows 3.x drivers /w 24bit color\n\t\tHalo Desktop Imager (24bit) for windows 3.x\n\t\tAdvanced AutoCAD accelerator (includes Big Picture)\n\t\ta complete manual\n\nIf interested, please e-mail  sunbum@cory.berkeley.edu\n\nthanks\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8567, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dtodd@titan.ucs.umass.edu (David M. Todd)\nSubject: Swap boot drive on 486\nOrganization: University of Massachusetts, Amherst\nLines: 11\nReply-To: David.Todd@Psych.UMass.EDU\nNNTP-Posting-Host: titan.ucs.umass.edu\n\n\nI have a 486 machine with a 3.5\" A: drive and a 5.25\" B: drive.  I\nwant to swap them so 3.5\" drive is A:  What do I have to do?\n\nTIA\n\n\n|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ David M. Todd ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n|Department of Psychology, University of Massachusetts, Amherst, MA 01003 USA|\n|Phone: 413/545-0158 ___ <David.Todd@Psych.UMass.EDU> ____  Fax: 413/545-0996|\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8568, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nLines: 20\n\nIn article <C5sv88.HJy@news.cso.uiuc.edu>, irvine@uxh.cso.uiuc.edu (Brent Irvine) writes:\n>In article <1r1j3n$4t@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>>In article <1r19tp$5em@bigboote.WPI.EDU>, mfrhein@wpi.WPI.EDU (Michael Frederick Rhein) writes:\n>>\n>>> >napalm, then let the wood stove inside ignite it.\n>>>                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>>> As someone else has pointed out, why would the stove be in use on a warm day  \n>>> in Texas. \n>>\n>>Do YOU eat all your food cold?\n>\n>Ever hear of electric ovens or microwaves?  Very popular.\n>Electric stoves outside metro-areas especially.\n\nEver hear about cutting off the electricity? That was done.\nHow effective is an electric stove then?\n\nAl\n[standard disclaimer]\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8569, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ry01@ns1.cc.lehigh.edu (ROBERT YUNG)\nSubject: How long do monitors last????\nArticle-I.D.: ns1.1993Apr5.200422.65952\nOrganization: Lehigh University\nLines: 21\n\nWell, my 14inch VGA 1024x758-interlacing 2.5 year old no brand monitor just\nbit the bullet. I pressed the power switch and a few seconds later, the power\nlight went out with a POP. Gawd, it's only been two and half years.\n\nHow long would normal monitors last? I think the problem with my monitor is\nthe power switch... but the image was getting pretty dim anyway (I needed to\nhave my contrast all the way to the max...). And the screen did flicker from\ntime to time. Is this normal (hehehe) or do I just have the worst of luck???\n\nQuestion: What do I do now???? Buy a new one? Get it fixed? Save up for a\n*really* good one and get by with a cheap EGA monitor for now? I rather save\nmy money to upgrade my 386SX to 486-66 though...\n\nThanks!\n-- \n===============================================================================\nWhat engineers say:\n    Extensive effort is being applied on a fresh approach to the problem.\nWhat they *really* mean:\n    We just hired three new guys; we'll let them kick it around for a while.\n==================(Robert) Bobby Yung_____RY01@Lehigh.Edu======================\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8570, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: The Inimitable Rushdie\nOrganization: Boston University Physics Department\nLines: 41\n\nIn article <C5HKv2.Epv@blaze.cs.jhu.edu> arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n\n>In article <115256@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n\n>>Judaism, for one. Maddi has confirmed this for one. And again I\n>>reiterate that one can easily leave the religion at any time,\n>>simply by making a public declaration. If one is too lazy to do\n>>that then the religion cannot be held responsible.\n\n>There are many \"Islamic\" countries where publically renouncing Islam can be\n>quite dangerous.  These countries might not, according to you, necessarily be\n>practicing \"true\" Islam, but the danger still remains; one cannot blame\n>failure to publically renounce Islam on \"laziness\" as opposed to a desire to\n>stay alive and well.\n\nOf course, if you're planning to pull a Rushdie then declaring one's\nleaving the religion is little to be concerned about compared to one's\nother plans.\n\n\nIn Rushdie's case, the one under discussion, one can. It is tragic that\nin _some_ \"Islamic\" countries this is so. There are, however, Islamic\ncountries (whose constitutions contains statements that Islamic law is\nto be incorporated), e.g. Kuwait, where one can freely make such\nstatements without fear.\n\n\n>Not to mention that it has already been pointed out that Rushdie has said in\n>his books that he's not a Muslim, and there have surely been enough readers of\n>his books to provide the appropriate number of witnesses.\n\nThis story has become tiresome. The conditions are clear. If you care to\nmake your point clear then make a chronology and show that he had made\npublic statements about leaving Islam prior to his writing of _TSV_. If\nhe did make such statements then he should have made _that_ clear rather\nthan trying to rejoin Islam or go on talking about his personal\nfeelings.\n\n\n\nGregg\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8571, "properties": {"category": "sci.electronics", "text": "From: ski@wpi.WPI.EDU (Joseph Mich Krzeszewski)\nSubject: Re: Need to find out number to a phone line\nOrganization: Worcester Polytechnic Institute\nLines: 9\nNNTP-Posting-Host: wpi.wpi.edu\n\nWell, this is my second try at posting on this subject. Here goes...\n\tIn Texas (Corpus Christi at least) if you pick up the phone and dial\n\t890 the phone company will read the number of the phone you are on \n\tback to you. I believe the service department uses this to make\n\tcertain they are repairing the correct lines when they open the BIG\n\tjunction boxes. I don't know if it will work but you can give it a\n\ttry. Good luck.\n \n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8572, "properties": {"category": "sci.med", "text": "From: Dan Wallach <dwallach@cs.berkeley.edu>\nSubject: FAQ: Typing Injuries (1/4): Changes since last month [monthly posting]\nSupersedes: <typing-injury-faq/changes_734664243@cs.berkeley.edu>\nOrganization: University of California, Berkeley\nLines: 51\nExpires: 22 May 1993 04:18:16 GMT\nReply-To: Dan Wallach <dwallach@cs.berkeley.edu>\nNNTP-Posting-Host: elmer-fudd.cs.berkeley.edu\nSummary: what's new and happening with Dan's FAQ and ftp archive\nOriginator: dwallach@elmer-fudd.cs.berkeley.edu\n\nArchive-name: typing-injury-faq/changes\nVersion: $Revision: 1.3 $ $Date: 1993/04/13 04:12:33 $\n\nThis file details changes to the soda.berkeley.edu archive and summarizes\nwhat's new in the various FAQ (frequently asked questions) documents.\nThis will be posted monthly, along with the full FAQ to the various net\ngroups.  The various mailing lists will either receive the full FAQ\nevery month, or every third month, but will always get this file, once\nper month.  Phew!\n\n============================================================================\nChanges to the Typing Injuries FAQ and soda.berkeley.edu archive, this month\n============================================================================\n\na few new files on the soda.berkeley.edu archive\n    the TidBITS \"Caring for your wrists\" document\n    RSI Network #11\n    Advice about \"adverse mechanical tension\"\n    More details about the new Apple keyboard\n    more info about carpal tunnel syndrome (carpal.explained)\n    more general info about RSI (rsi.details, rsi.physical)\n\n    marketing info on the Vertical\n    MacWeek article the Bat\n\nnew details on hooking a normal PC keyboard to an RS/6000\n\nupdated pricing info on the DataHand and Comfort\n\nHalf-QWERTY now available for anonymous ftp on explorer.dgp.toronto.edu\n\nnew GIF picutures!\n    The Apple Adjustable Keyboard\n    The Key Tronic FlexPro\n    another picture of the Kinesis\n    The Vertical\n    The Tony!\n\n============================================================================\n\nIf you'd like to receive a copy of the FAQ and you didn't find it in the\nsame place you found this document, you can either send e-mail to \ndwallach@cs.berkeley.edu, or you can anonymous ftp to soda.berkeley.edu\n(128.32.149.19) and look in the pub/typing-injury directory.\n\nEnjoy!\n\n-- \nDan Wallach               \"One of the most attractive features of a Connection\ndwallach@cs.berkeley.edu  Machine is the array of blinking lights on the faces\nOffice#: 510-642-9585     of its cabinet.\" -- CM Paris Ref. Manual, v6.0, p48.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8573, "properties": {"category": "talk.religion.misc", "text": "From: cotera@woods.ulowell.edu\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nLines: 38\nOrganization: University of Massachusetts Lowell\n\nIn article <1r17j9$5ie@sbctri.sbc.com>, netd@susie.sbc.com () writes:\n> In article <20APR199301460499@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen) writes:\n>>For those who think David Koresh didn't have a solid structure,\n>>or sound Biblical backing for his hour long tape broadcast,\n> \n> I don't think anyone really cares about the solid structure of his\n> sermon.  It's the deaths he's responsible for that concern most people.\n\nI assume you have evidence that he was responsible for the deaths?\n \n> Koresh was a nut, okay?  \n\nAgain, I'd like to see some evidence.\n \n> I'll type this very slowly so that you can understand.  He either set\n> the fire himself or told his followers to do so.  Don't make him out to\n> be a martyr.  He did not \"get killed\", he killed himself.\n\nOnce again, where's your proof? Suicide is considered a sin by Branch\nDavidians.  Also, Koresh said over and over again that he was not going to\ncommit suicide.  Furthermore, all the cult experts said that he was not\nsuicidal.  David Thibedeau (sp?), one of the cult members, said that the fire\nwas started when one of the tanks spraying the tear gas into the facilities\nknocked over a lantern.\n \n> The evil was inside the compound.  \n\nEvidence please?\n\n> All that \"thou shalt not kill\" stuff.\n\nI'd like to point out that the Bible says \"Do not commit murder.\" The NKJ\ntranslation mistranslates.  Self-defense was never considered murder.  The\nreason why they were stockpiling weapons is because they were afraid the\ngovernment would try something.  Their fears were obviously well founded.\n--Ray Cote\n\nThere's no government like no government.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8574, "properties": {"category": "misc.forsale", "text": "From: shapiro@oucsace.cs.ohiou.edu (Brian Shapiro)\nSubject: For Sale: Zenith 386-25 Motherboard\nDistribution: usa\nOrganization: Ohio University C.S. Dept, Athens\nLines: 30\n\n\nThe following is posted for a friend. Send replies to the address at\nthe end of the post please.\n\nAttention Zenith Z-248 owners!!!  upgrade your 8 MHz AT-class machine to '386\nperformance with a genuine Zenith motherboard for a clone price!  Motherboard\nand I/O card pop right in to your Z-248 case while keeping your existing\nvideo and disk controllers. \n\nZenith Z-386/25 motherboard featuring 16kb of 16-layer, posted-write cache\nusing 15 ns SRAM; 8 Mb of 70 ns DRAM included, accepts 20 Mb on motherboard\n(further RAM upgrades available via SuperSlots running at memory bus speeds;\n7 Expansion slots feature 4 Zenith 32-bit SuperSlots: autodetects 8/16/32-bit\nadapters; latest rev. of Z-300 setup/monitor ROMs, two serial ports, one\nparallel port, secondary fan for improved system cooling, Z-386 User's Guide,\nZ-386 Maintenance Guide and diagnostics disk included. $575 (includes\nS/H/insurance).\n\nReplies to: stann@aol.com\n\nReplies to me will be forwarded.\n\nThanks.....\n\nbrian\n-- \nBrian Shapiro, Systems Support Specialist\nOhio University, Athens, Ohio 45701\n(614) 593-1608\nshapiro@oucsace.cs.ohiou.edu or SHAPIROB@OUACCVMA.BITNET\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8575, "properties": {"category": "sci.med", "text": "From: green@island.COM (Robert Greenstein)\nSubject: Re: accupuncture and AIDS\nOrganization: Strawman Incorporated\nLines: 21\n\nIn article <C5t76D.2x6@news.cso.uiuc.edu> euclid@mrcnext.cso.uiuc.edu (Euclid K.) writes:\n>aliceb@tea4two.Eng.Sun.COM (Alice Taylor) writes:\n>\n>>A friend of mine is seeing an acupuncturist and\n>>wants to know if there is any danger of getting\n>>AIDS from the needles.\n>\n>\tAsk the practitioner whether he uses the pre-sterilized disposable\n>needles, or if he reuses needles, sterilizing them between use.  In the\n>former case there's no conceivable way to get AIDS from the needles.  In\n>the latter case it's highly unlikely (though many practitioners use the\n>disposable variety anyway).\n\nIt is illegal to perform acupuncture with unsterilized needles. No licensed\npractitioner would dare do this. Also there is not a single documented case\nof transmission of AIDS via acupuncture needles. I wouldn't worry about it.\n-- \n******************************************************************************\nRobert Greenstein           What the fool cannot learn he laughs at, thinking\ngreen@srilanka.island.com   that by his laughter he shows superiority instead\n                            of latent idiocy - M. Corelli\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8576, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: While Armenians destroyed all the villages from Trabzon to Erzurum...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 55\n\nIn article <1993Apr4.231353.34562@ns1.cc.lehigh.edu> pv02@ns1.cc.lehigh.edu (PETER VOROBIEFF) writes:\n\n><disclaimer: If there is anybody on USENET dumb enough to interpret\n>this posting as a serious and meaningful one, I want to assure this\n>entity that it was but a joke>\n\nStill yelling at the telephone and the lawn mower? People will think\nyou're just some looney howling in the wires. Now any comment?\n \n\nSource: Documents: Volume I (1919).\n        \"Document No: 76,\" Archive No: 1/2, Cabin No: 109, Drawer \n        No: 3, File No: 346, Section No: 427(1385), Contents No: 3, 52-53.\n        (To Lt. Colonel Seyfi, General Headquarters, Second Section, \n        Istanbul - Dr. Stephan Eshnanie)\n\n'Neues Wiener Tagblatt' - Vienna, 'Pester Lloyd' 'Local Anzliger' - Berlin,\n'Algemeen Handelsblat' - Amsterdam, 'Vakit' - Istanbul.\n\n\"I have been closely following for two weeks the withdrawal of Russians and\n Armenians from Turkish territories through Armenia. Although two months\n have elapsed since the clearing of the territories of Armenian gangs, I\n have been observing the evidence of the cruelties of the Armenians at \n almost every step. All the villages from Trabzon to Erzincan and from\n Erzincan to Erzurum are destroyed. Corpses of Turks brutally and cruelly\n slain are everywhere. According to accounts by those who were able to\n save their lives by escaping to mountains, the first horrible and fearful\n events begun when the Russian forces evacuated the places which were then\n taken over by Armenian gangs. The Russians usually treated the people \n well, but the people feared the intervention of the Armenians. Once these\n places had been taken over by the Armenians, however, the massacres begun.\n They clearly announced their intention of clearing what they called the\n Armenian and Kurdish land from the Turks and thus, solve the nationality\n problem. Today I had the opportunity to meet Austrian and German soldiers\n who had escaped from Russian prison camps and come from Kars and\n Alexander Paul (Gumru-Leninakan)...Russian officers tried to save the \n Turks and there were clashes between Russian officers and Armenian gangs. \n I am now in Erzurum, and what I see is terrible. Almost the whole city is \n destroyed. The smell of the corpses still fills the air. Although there are \n speculations that Armenian gangs murdered Austrian and German prisoners as \n well, I could not get the supporting evidence in this regard, but there is \n proof of murdering of Turkish prisoners of war.\"\n\n                                                     Dr. Stephan Eshnanie\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8577, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: Dreams and Degrees (was Re: Crazy? or just Imaginitive?)\nOrganization: Fermi National Accelerator Laboratory\nLines: 47\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <C5xp0K.G79@brunel.ac.uk>, mt90dac@brunel.ac.uk (Del Cotter) writes:\n> <1993Apr21.205403.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>> Sorry if I do not have the big degrees\n>>and such, but I think (I might be wrong, to error is human) I have something\n>>that is in many ways just as important, I have imagination, dreams. And without\n>>dreams all the knowledge is worthless.. \n> \n> Oh, and us with the big degrees don't got imagination, huh?\n> \n> The alleged dichotomy between imagination and knowledge is one of the most\n> pernicious fallacys of the New Age.  Michael, thanks for the generous\n> offer, but we have quite enough dreams of our own, thank you.\n\nWell said.\n \n> You, on the other hand, are letting your own dreams go to waste by\n> failing to get the maths/thermodynamics/chemistry/(your choices here)\n> which would give your imagination wings.\n> \n> Just to show this isn't a flame, I leave you with a quote from _Invasion of \n> the Body Snatchers_:\n> \n> \"Become one of us; it's not so bad, you know\"\n\nOkay, Del, so Michael was being unfair, but you are being unfair back.  \nHe is taking college courses now, I presume he is studying hard, and\nhis postings reveal that he is *somewhat* hip to the technical issues\nof astronautics.  Plus, he is attentively following the erudite\ndiscourse of the Big Brains who post to sci.space; is it not\ninevitable that he will get a splendid technical education from\nreading the likes of you and me? [1]\n\nLike others involved in sci.space, Mr. Adams shows symptoms of being a\nfledgling member of the technoculture, and I think he's soaking it up\nfast.  I was a young guy with dreams once, and they led me to get a\ntechnical education to follow them up.  Too bad I wound up in an\nassembly-line job stamping out identical neutrinos day after day...\n(-:\n\n[1] Though rumors persist that Del and I are both pseudonyms of Fred\nMcCall.\n\nBill Higgins, Beam Jockey              | \"We'll see you\nFermi National Accelerator Laboratory  | at White Sands in June. \nBitnet:           HIGGINS@FNAL.BITNET  | You bring your view-graphs, \nInternet:       HIGGINS@FNAL.FNAL.GOV  | and I'll bring my rocketship.\"  \nSPAN/Hepnet:           43011::HIGGINS  | --Col. Pete Worden on the DC-X\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8578, "properties": {"category": "talk.politics.mideast", "text": "From: perrakis@embl-heidelberg.de\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nOrganization: EMBL, European Molecular Biology Laboratory\nLines: 76\n\nIn article <93105.134708FINAID2@auvm.american.edu>, <FINAID2@auvm.american.edu> writes:\n>>  Look Mr. Atakan: I have repeated it in the past, and I shall repeat it once\n>>  more, that when it comes to how Greeks are treating the Turks in Greece,\n>>  you and your copatriots should simply shut up.\n>>\n>>  Because what you are hearing is simply a form of propaganda from your ethnic\n>>  fellows who studied at the Greek universities without paying any money for\n>>  tuition, food, and helth insurance.\n>>\n>>  And any high school graduate can put down some simple math and compare the\n>>  grouth of the Turkish community in Greece with the destruction of the Greek\n>>  minority in Turkey.\n>>\n>> >Aykut Atalay Atakan\n>>\n>>  Panos Tamamidis\n> \n>                   Mr. Tamamidis:\n> \n> Before repling your claims, I suggest you be kind to individuals\n> who are trying to make some points abouts human rights, discriminations,\n> and unequal treatment of Turkish minority in GREECE.I want the World\n> know how bad you treat these people. You will deny anything I say but\n> It does not make any difrence because I will write things that I saw with\n> my eyes.You prove yourself prejudice by saying free insurance, school\n> etc. Do you Greeks only give these things to Turkish minority or\n> everybody has rights to get them.Your words even discriminate\n> these people. You think that you are giving big favor to these\n> people by giving these thing that in reality they get nothing.\n> If you do not know unhuman practices that are being conducted\n> by the Government of the Greece, I suggest that you investigate\n> to see the facts. Then, we can discuss about the most basic\n> human rights like fredom of religion,\nIf you did not see with your 'eyes' freedom of religion you\nmust ne at least blind !\n> fredom of press of Turkish\n2 weeks ago I read the interview of a Turkish journalist in a GReek magazine,\nhe said nothing about being forbiden to have Turkish press in Greece !\n> minority, ethnic cleansing of all Turks in Greece,\nGive as a brake. You call athnic cleansing of apopulation when it doubles?\n> freedom of\n> right to have property without government intervention,\nWhat do you mean by that ? Anyway in Greece, as in every  country if you want\nsome property you 'inform' the goverment .\n> fredom of right to vote to choose your community leaders,\nWell well well. When Turkish in Area of Komotini elect 1 out of 3\nrepresenatives of this area to GReek parliament, if not freedom what is it?\n3 out of 3 ? Maybe there are only Turks living there ....\n> how Greek Government encourages people to destroy\n> religious places, houses, farms, schools for Turkish minority then\n> forcing them to go to turkey without anything with them.\nI cannot deny that actions of fanatics from both sides were reported.\nA minority of Greek idiots indeed attack religious places, which\nwere protected by the Greek police. Photographs of Greek policemen \npreventing Turks from this non brain minority were all over Greek press.\n> Before I conclude my writing, let me point out how Greeks are\n> treated in Turkey. We do not consider them Greek minority, instead\n> we consider a part of our society. There is no difference among people in\n> Turkey. We do not state that Greek minority go to Turkish universities,\n> get free insurance, food, and health insurance because these are basic\n> human needs and they are a part of turkish community. All big businesses\n> belong to Greeks in Turkey and we are proud to have them.unlike the\n> Greece which tries to destroy Turkish minority, We encourage all\n> minorities in Turkey to be a part of Turkish society.\n\n\nOh NO. PLEASE DO GIVE AS A BRAKE !\nMinorities in Turkish treated like that ? YOur own countrymen die\nin the prisons every day bacause of their political beliefs, an this\nis reported by Turks, and you want us to believe tha Turkey is the paradise\nof Human rights ?  Business of Greeks i Turkey? Yes 80 years ago !\nYou seem to be intelligent, so before presenting Turkey as the paradise of\nHuman rights just invastigate this matter a bit more.\n> \n> Aykut Atalay Atakan\n> \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.407+0000", "event": "documents", "entityId": 8579, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: sjp@ogre.apana.org.au (Steven Pemberton)\nSubject: Any info on Cyrix 486DRu2 chip?\nDistribution: world\nOrganization: Home Sweet Home\nLines: 16\n\nCyrix have released a 386 pin-conpatible 486 clone. Designed to upgrade\nold 16 & 20MHz 386's the chips are also clockdoubling. Thus a 16MHz 386\ncan be transformed into a 32MHz 486, with a single chip upgrade.\n\nUnfortunately in Australia the DRu2 sells for $700A (16MHz) and $1000A\n(20MHz), about 1.5x the price of a 486dx33 motherboard with two vlb slots!!!\n\nHow much do these thing cost in the States?\nHow well do they work?\n\nThanks for any info,\n\n             Steven Pemberton        \\o/        486 NoteBook \n      ------------------------------- | ----------------------------\n          sjp@ogre.apana.org.au      / \\          OS/2 2.0\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8580, "properties": {"category": "rec.sport.hockey", "text": "From: bdown@vis.toronto.edu (Brian Down)\nSubject: Re: Barasso - the cheap shot master?\nOrganization: Department of Computer Science, University of Toronto\nLines: 27\n\nRobert Angelo Pleshar <rp16+@andrew.cmu.edu> writes:\n\n>After watching the Pengiuns all year (and as many other teams as\n>possible), I've really noticed an increase in Tom Barasso's cheap shots\n>this year (and not noticed a corrsponding increase with other\n>goaltenders).\n\nHave a look at Ed Belfour.\n\n>He also KICKED John McLean. Of\n>course he wasn't called for that. \n\nBelfour kicked Gerrard Gallant when the Wings played the 'Hawks\na couple of weeks ago. No penalty. No review. No suspension.\nThis was after he attacked Bob Probert in the previous period.\nHe was penalized for that.\n\n>There's no doubt in\n>my mind that Barasso is the dirtiest golatender since Hextall.\n>He's also very good.\n\nLikewise Belfour. Too bad he goes down so much! :-)\n\n>Ralph\n\nBrian Down (bdown@vis.toronto.edu)\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8581, "properties": {"category": "soc.religion.christian", "text": "From: johnsd2@rpi.edu (Dan Johnson)\nSubject: Re: The arrogance of Christians\nReply-To: johnsd2@rpi.edu\nOrganization: not Sun Microsystems\nLines: 148\n\nIn article 1328@geneva.rutgers.edu, gt7122b@prism.gatech.edu (boundary) writes:\n>dleonar@andy.bgsu.edu (Pixie) writes:\n[deletia- sig]\n>>     p.s.  If you do sincerely believe that a god exists, why do you follow\n>>it blindly?  \n>>     Do the words \"Question Authority\" mean anything to you?\n>>     I defy any theist to reply.      \n>\n\n[deletia- formalities]\n\nI probably should let this pass, it's not worth the time, and it's not\nreally intended for me. But I couldn't resist. A personal weakness of mine.\nJerkius Kneeus. Tragically incurable.\n\n>The foundation for faith in God is reason, without which the existence\n>of God could not be proven.  That His existence can be proven by reason\n>is indisputable (cf. my short treatise, \"Traditional Proofs for the \n>Existence of God,\" and Summa Theologica).\n\nNot so; I can prove that the existance of God is disputable\nby showing that people dispute it; This is easy: I dispute that\nGod exists. Simple.\n\nI missed your \"Traditional Proofs\" treatise, but the proofs I remember\nfrom the Summa Theologic (the 5 ways I think it was) were rather poor\nstuff. The Ontological argument is about a billion times better, imho.\n\nI would think you'd want non-traditional proofs, considering the general\nfailure of the traditional proofs: at least the ones I know of.\n(I am thinking of the Ontological Argument, the Cosmological Argument and\nthe Teleological argument. Those are the ones traditional enough to\nhave funny names, anyway.)\n\n>Now, given that God exists, and that His existence can be proven by reason,\n>I assert that His commands must be followed blindly, although in our fallen\n>condition we must always have some measure of doubt about our faith.  Why?\n\nThis is the real question. So to discuss it, I'll assume God exists.\nOtherwise, there is no heavenly authority to babble about.\n\n>Because God is the First Cause of all things, the First Mover of matter,\n>the Independent Thing that requires nothing else for its existence, the\n>Measure of all that is perfect, and the essential Being who gives order\n>to the universe (logos).\n\nPlease show this is the case. I am familiar with the First Cause\nargument, and I'll accept (for the sake of argument) that there\nis a First Cause, even though I find some of its premices\nquestionable. The rest you'll have to show. This includes\nthat the First Cause is God.\n\n>I next assert that God is all good.\n\nGot it. I deny that God is all good. So there.\n\n>  If this is so, then that which is\n>contrary to the will of God is evil; i.e., the absence of the good.  And,\n>since God can never contradict Himself, then by His promise of a Savior\n>as early as the Protoevangelium of Genesis 3:5, God instructs that because\n>a human (Adam) was first responsible for man's alienation from the Source\n>of all good, a man would be required to act to restore the friendship.\n>Thus God became incarnate in the person of the Messiah.\n\nThis isn't self-consistent: if humans must renew the relationship,\nthen God (incarnate or not) can't do it. Well, unless you think God is\nhuman. Granted, God made himself 'human', but this is nonetheless cheating:\nThe intent of the statement is clearly that man has to fix the problem\nhe caused. God fixing it- even by indirect means- contradicts this.\n\n>Now this Messiah claimed that He is the Truth (John 14:6).  If this claim\n>is true, then we are bound by reason to follow Him, who is truth incarnate.\n\nWhy?\n\nAlso, why assume said claim is true anyway?\n\nIf *I* claim to be Truth, are you bound by reason to follow me?\n\n>You next seem to have a problem with authority.  Have you tried the United\n>States Marine Corps yet?  I can tell you first-hand that it is an excellent\n>instructor in authority.\n\n:)\n\nUndoubtably. Do you mean to imply we should all obey the commands of the\nMarines without question? You seem to imply this about God, and\nthat the Marines are similar in this respect.. If this is not what\nyou are trying to say, they please explain what it is you are saying,\nas I have missed it.\n\n>  If you have not yet had the privilege, I will\n>reply that the authority which is Truth Incarnate may never be questioned,\n>and thus must be followed blindly.\n\nWhy? Why not question it? Even if it *is* truth, we cannot know this\ncertainly, so why is it so irrational to question? Perhaps we will\nthus discover that we were wrong.\n\nYou assert that God is Truth and we can't question Truth. But\nI assert that God is not Truth and anyway we can question Truth.\nHow is it my assertion is less good than yours?\n\n>  One may NOT deny the truth.\n\nOh?\n\nI hereby deny 1+1=2.\n\nI hope you'll agree 1+1=2 is the truth.\n\nGranted, I look pretty damn silly saying something like that,\nbut I needed something we'd both agree was clearly true.\n\nNow, you'll notice no stormtroopers have marched in to drag\nme off to the gulag. No heaven lighting bolts either. No mysterious\nnet outages. I seem to be permited to say such things, absurd or not.\n\n>  For\n>example, when the proverbial apple fell on Isaac Newton's head, he could\n>have denied that it happened, but he did not.  The laws of physics must\n>be obeyed whether a human likes them or not.  They are true. \n\nThey are certainly not true. At least, the ones Newton derived are\nnot true, and are indeed wildly inaccurate at high speeds or small\ndistances. We do not have a set of Laws of Physics that always\nworks in all cases. If we did, Physics would be over already.\n\nScience is all about Questioning this sort of truth. If we didn't,\nwe'd still follow Aristotle. I'd generalize this a little more:\nIf you want to learn anything new, you MUST question the things\nyou Know (tm). Because you can always be wrong.\n\n>Therefore, the Authority which is Truth may not be denied.\n\nEven presupposing that Truth may not be Denied, and may\nnot be Questioned, and that God is Truth, it only follows\nthat God may not be Denied or Questioned. NOT that he must\nbe obeyed!\n\nWe could unquestioningly DISobey him. How annoying of us.\nBut you have not connected denial with disobedience.\n\n---\n\t\t\t- Dan \"No Nickname\" Johnson\nAnd God said \"Jeeze, this is dull\"... and it *WAS* dull. Genesis 0:0\n\nThese opinions probably show what I know.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8582, "properties": {"category": "soc.religion.christian", "text": "From: todd@nickel.laurentian.ca\nSubject: Re: When are two people married in God's eyes?y\nOrganization: Laurentian University\nLines: 48\n\nIn article <Apr.24.01.08.03.1993.4202@geneva.rutgers.edu>, marka@hcx1.ssd.csd.harris.com (Mark Ashley) writes:\n\n> Those with Bibles on hand can give the exact chapter & verse...\n> At the time Jesus told Peter that he was the \"rock\", He said\n> whatever you hold true on earth is held true in heaven, and \n> whatever you don't hold true won't be true in heaven.\n> \n> Therefore, with respect to marriage, the ceremony has to be\n> done by an RC priest. No big parties required. Just the priest,\n> the couple and witnesses. \"Divorce\" is not allowed. But anullments\n> are granted upon approval by either the bishop or the Pope \n> (not sure if the Pope delegates this function).\n> \nMaybe I'm a little tired but I can't seem to follow the logic here. If \nwhatever is held true on earth is held true in heaven how is it that a priest\n(RC only apparently) is required. \n\nIn fact if I read the next verse correctly (Matthew 18:19) I understand that\nfor a marriage to take place only two are required to agree on earth touching\none thing and it shall be done.\n\nTodd\n\n\n> -- \n> -------------------------------------------------------------------------\n> Mark Ashley                        |DISCLAIMER: My opinions. Not Harris'\n> marka@gcx1.ssd.csd.harris.com      |\n> The Lost Los Angelino              |\n\n[Unfortunately I haven't been able to find any completely precise\nstatements about what is needed.  (As usual, the current edition of\nthe Catholic Encyclopedia is frustratingly vague.)  I do know that the\npriest is viewed as a witness, and thus in some sense would not be\nrequired.  However part of the purpose of formal marriage is to avoid\nany ambiguity about who has and has not taken on the commitment.  The\ncommunity provides support to marriage, and in cases of problems are\ninvolved in helping to make sure that the people carry out as much of\ntheir commitment as possible.  Thus marriage must be a public\ncommitment.  The presence of a priest is required for a regular\nmarriage.  Where I'm not clear is exactly where the boundaries are in\nexceptional cases (\"valid but irregular\").  Ne Temere (1907) says that\nno marriage involving a Catholic is valid without a priest (according\nto the Oxford Dictionary of the Church), and they imply that the new\ncanon law retains this, but I'd rather see a more recent and\nauthoritative source.  Note that while a Catholic priest is required\nfor Catholics, the Catholic church does recognize marriage between\nbaptized non-Catholics as valid without a priest.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8583, "properties": {"category": "alt.atheism", "text": "From: chrisb@tafe.sa.edu.au (Chris BELL)\nSubject: Re: A visit from the Jehovah's Witnesses\nOrganization: South Australian Regional Academic and Research Network\nLines: 26\nDistribution: world\nNNTP-Posting-Host: baarnie.tafe.sa.edu.au\n\njbrown@batman.bmd.trw.com writes:\n\n>My syllogism is of the form:\n>A is B.\n>C is A.\n>Therefore C is B.\n\n>This is a logically valid construction.\n\n>Your syllogism, however, is of the form:\n>A is B.\n>C is B.\n>Therefore C is A.\n\n>Therefore yours is a logically invalid construction, \n>and your comments don't apply.\n\n>I appeal to Mathew (Mantis) here who wrote the excellent\n>post (now part of the FAQ) on logical argument.\n\n>Jim B.\n\nI am not Mathew (Mantis) but any (successful) first year logic student will see that you are logically correct, the other poster is logically incorrect.\n\n--\n\"I know\" is nothing more than \"I believe\" with pretentions.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8584, "properties": {"category": "comp.sys.mac.hardware", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: pb100 memory upgrade\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 16\n\njeffe@eniac.seas.upenn.edu (george) writes:\n\n>does the pb100 use different memory than the newer models?\n>I am looking to buy a 2Mb upgrade, so I need to know\n>which other powerbooks use the same 2Mb card.\n\nI think all Powerbooks use the same 2 Meg upgrade, but the\n4 Meg and 6 Meg upgrades are different for the PB100 than\nfor the other PBs.\n\n-----\nEric Smith\nerics@netcom.com\nerics@infoserv.com\nCI$: 70262,3610\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8585, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu The Liberalizer (Michael Lurie)\nSubject: Re: Best Lifetime Record in Baseball History\nArticle-I.D.: alleg.1993Apr6.210157.2758\nOrganization: Allegheny College\nLines: 19\n\nIn article <1993Apr6.114106.156@corning.com> cecce_aj@corning.com writes:\n> Speaking of the Marlins winning the opener:\n> \n> Based on lifetime percentage of games won, who has the second best  \nrecord\n> in baseball history (soon to be the best record again)?\n> \n> \n> If I had to guess I would be forced to say the Yankees.  On the other  \nhand\n> the Blue Jays might be up there too.\n> \n> Hmmmmm....\n> \n> Tony\n\nBlue Jays? No way hell, but the yankees probably do. Remember, the Yankees  \nhad the best record of any team in the 80's, and probably take the 20's  \nthrough 60's as well.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8586, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: some thoughts.\nOrganization: Technical University Braunschweig, Germany\nLines: 12\n\nIn article <bissda.4.734849678@saturn.wwc.edu>\nbissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n \n>        The arguements he uses I am summing up.  The book is about whether\n>Jesus was God or not.  I know many of you don't believe, but listen to a\n>different perspective for we all have something to gain by listening to what\n>others have to say.\n \nRead the FAQ first, watch the list fr some weeks, and come back then.\n \nAnd read some other books on the matter in order to broaden your view first.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8587, "properties": {"category": "comp.windows.x", "text": "From: rainer@sun3.eeam.elin.co.at (Rainer Hochreiter)\nSubject: Re: Multi-screen apps and window managers\nOrganization: ELIN Energeanwendung Ges.m.b.H\nLines: 20\nNNTP-Posting-Host: sun3.eeam.elin.co.at\nX-Newsreader: TIN [version 1.1 PL9]\n\n: ========================================================================\n: Jo Pelkey                                   Phone: (509)375-6947\n: Battelle Pacific Northwest Labs             Fax:   (509)375-3641\n: Mail Stop K7-22                             Email: je_pelkey@pnl.gov\n: P.O. Box 999\n: Richland, WA  99352\n: ========================================================================\n\nHi Jo,\n\nI'm also interested in your questions, so if you get any\nanswers via email and not via repost please let me know.\n\nThanks, rainer.\n\n-- \nRainer Hochreiter                | Telephone: +43 (1) 89100 / 3961\nELIN-Energieanwendung GesmbH     | Telefax  : +43 (1) 89100 / 3387\nPenzingerstr. 76                 |\nA-1141 Wien, Austria/Europe      | E-mail   : rainer@elin.co.at\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8588, "properties": {"category": "misc.forsale", "text": "From: cst@blueoak.berkeley.edu (Courtney Terry)\nSubject: For Sale: 1969 karmann ghia\nOrganization: University of California, Berkeley\nLines: 25\nDistribution: ba\nNNTP-Posting-Host: blueoak.berkeley.edu\n\n*******************************************************\n                   1969 karmann ghia\n*******************************************************\n\nThis car is in excellent running condition:\n               *********\n  *49,000 mi on new engine\n  *new tires (Aug 92)\n  *new clutch (91)\n  *new carb (91)\n  *original radio (am/fm)\n  *upholstery in great shape\n  *burgundy exterior/ black interior\n\nThis car has been well-maintained with regular tune-ups.\nUnfortunately, the car's previous owner had a minor\nfront-end collision.  The right front nose is dented\nand patched up with bondo.  I have the hard-to-find part\nneeded to repair this damage.  Besides that damage, the car\nis in excellent condition. $1600/bo\n\nCourtney  email: cst@blueoak.berkeley.edu\n          phone (after 5 on weekdays): 510-704-9237\n\n  \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8589, "properties": {"category": "talk.politics.mideast", "text": "From: 2120788@hydra.maths.unsw.EDU.AU ()\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nNntp-Posting-Host: hydra.maths.unsw.edu.au\nOrganization: school of Mathematics UNSW\nLines: 101\n\nIn article <1993Apr16.085717@IASTATE.EDU> tankut@IASTATE.EDU (Sabri T Atan) writes:\n>In article <1993Apr15.174657.6176@news.uiowa.edu>, mau@herky.cs.uiowa.edu (Mau\n>Napoleon) writes:\n>> From article <1993Apr15.092101@IASTATE.EDU>, by tankut@IASTATE.EDU (Sabri T\n>Atan):\n>> > Well, Panos, Mr. Tamamidis?, the way you put it it is only the Turks\n>> > who bear the responsibility of the things happening today. That is hard to\n>> > believe for somebody trying to be objective.\n>> > When it comes to conflicts like our countries having you cannot\n>> > blame one side only, there always are bad guys on both sides.\n>> > What were you doing on Anatolia after the WW1 anyway?\n>> > Do you think it was your right to be there?\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nI've heard many Turks say this and it surpises me that they don't read about\nit.Remember the Treaty of Sevres-as a consequence of being in the Axis powers\nin WWI.The Turks UNDER INTERNATIONAL LAW were supposed to look after their\nminorities ie. Greeks,Armenians,Kurds(I must say Turk-Kurd relations are \nimproving slightly with time) and not pose a threat to Turkey's neighbours.\nThe Turks blatantly rejected this treaty(the Germans grudgingly accepted \nVersailles which was a million times worse for the health and pride of the \nGerman people).The Greeks who had an army there,were there with BRITISH\nand FRENCH backing to enforce Sevres.\n    In possibly the first example of appeasement the Young Turk government\nmanaged screwed the Treaty of Laussane out of the weak allies,this was after \nthe Greek forces were were destroyed at Smyrna.When this occurred incidently,\nFRENCH warships were in the harbour and many Greeks trying escape swam to the \nFRENCH warships and climbed aboard only to get their arms cut off by the FRENCH\nas they clawed they're way up the sides of the ships.\nLibertae,egalitae,fraternatae.\n>> \n>> There were a couple millions of Greeks living in Asia Minor until 1923.\n>> Someone had to protect them. If not us who??\n>> \n>> > I am not saying that conflicts started with that. It is only\n>> > not one side being the aggressive and the ither always suffering.\n>> > It is sad that we (both) still are not trying to compromise.\n>> > I remember the action of the Turkish government by removing the\n>> > visa requirement for greeks to come to Turkey. I thought it\n>> > was a positive attempt to make the relations better.\n>> > \n>> Compromise on what, the invasion of Cyprus, the involment of Turkey in\n>> Greek politics, the refusal of Turkey to accept 12 miles of territorial\n>> waters as stated by international law, the properties of the Greeks of \n>> Konstantinople, the ownership of the islands in the Greek lake,sorry, Aegean.\n>> \n>> There are some things on which there can not be a compromise.\n>> \n>> \n>> > The Greeks I mentioned who wouldn't talk to me are educated\n>> > people. They have never met me but they know! I am bad person\n>> > because I am from Turkey. Politics is not my business, and it is\n>> > not the business of most of the Turks. When it comes to individuals \n>> > why the hatred?\n>> \n>> Any person who supports the policies of the Turkish goverment directly or\n>> indirecly is a \"bad\" person.\n>> It is not your nationality that makes you bad, it is your support of the\n>> actions of your goverment that make you \"bad\".\n>> People do not hate you because of who you are but because of what you\n>> are. You are a supporter of the policies of the Turkish goverment and\n>> as a such you must pay the price.\n>> \n>> > So that makes me think that there is some kind of\n>> > brainwashing going on in Greece. After all why would an educated person \n>> > treat every person from a nation the same way? can you tell me about your \n>> > history books and things you learn about Greek-Turkish\n>> > encounters during your schooling. \n>> > take it easy! \n>> > \n>> > --\n>> > Tankut Atan\n>> > tankut@iastate.edu\n>> > \n>> > \"Achtung, baby!\"\n>> \n>> You do not need brainwashing to turn people against the Turks. Just talk to\n>> Greeks, Arabs, Slavs, Kurds and all other people who had the luck to be under\n>> Turkish occupation.\n>> They will talk to you about murders,rapes,distruction.\n>> \n>> You do not learn about Turks from history books, you learn about them from\n>> people who experienced first hand Turkish friendliness.\n>> \n>> Napoleon\n>\n>\n>Well, Napoleon. It is your kind of people who are preventing peace \n>on the world. First of all, you didn't answer the question I asked\n>at the end of my posting. And then you told me some bullshit\n>throughout your posting which had no positive point about the issue,\n>filled with hatred, and filled with emotions. Why am I doing this?\n>Forget it, I don't think you are worth it to discuss the issue.\n> \n>\n>--\n>Tankut Atan\n>tankut@iastate.edu\n>\n>\"Achtung, baby!\"\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8590, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Eugenics\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 15\n\nProbably within 50 years, a new type of eugenics will be possible.\nMaybe even sooner.  We are now mapping the human genome.  We will\nthen start to work on manipulation of that genome.  Using genetic\nengineering, we will be able to insert whatever genes we want.\nNo breeding, no \"hybrids\", etc.  The ethical question is, should\nwe do this?  Should we make a race of disease-free, long-lived,\nArnold Schwartzenegger-muscled, supermen?  Even if we can.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8591, "properties": {"category": "rec.sport.hockey", "text": "From: ad215@Freenet.carleton.ca (Rachel Holme)\nSubject: Re: Canucks clinch, Bure to score 20 playoff goals\nReply-To: ad215@Freenet.carleton.ca (Rachel Holme)\nOrganization: The National Capital Freenet\nLines: 21\n\n\nIn a previous article, steveg@cadkey.com (Steve Gallichio) says:\n>\n>Ron Apland (apland@mala.bc.ca) writes:\n>> Quinn will resign as head coach (this is no secret) and HOPEFULLY they will \n>> BRING IN someone who looks at the game spatially and institutes some team \n>> disciplined play.  How about Keenan?  Give him what he wants, GM and Coach,\n>> and have Quinn upstairs as president.\n>\n>I was under the impression that Rick Ley was in line for the Canucks job\n>should Quinn step off the bench. Ley coached in the Canucks' organization\n\nBRING BACK HARRY!  (NEALE)  At least he was witty...\n\n-- \nad215@freenet.carleton.ca (Rachel Holme)]\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8592, "properties": {"category": "rec.sport.baseball", "text": "From: bodom@silver.ucs.indiana.edu (Brian Odom)\nSubject: Re: New Uniforms\nArticle-I.D.: usenet.C51vwC.Lru\nOrganization: Indiana University\nLines: 37\nNntp-Posting-Host: silver.ucs.indiana.edu\n\nIn <1993Apr5.224631.636@Virginia.EDU> tek2q@Virginia.EDU (\"Todd Karlin\") writes:\n\n>\tUsually one or two teams changes their logo or a minor\n>uniform change per season, but the past few seasons have been\n>incredible.\n>\tAny thoughts on the new (old) Reds uniforms.  I\n>remember seeing a Pete Rose rookie card, and unless I miss my\n>guess he was wearing the exact same duds.  \n>\tThe Mets (HOW ABOUT DOC'S PERFORMANCE TODAY?!!!!!) have\n>reinserted the Mets patch on the shoulder, and changed the Mets\n>insgnia on the front of the jersey.  To my knowledge it is the\n>first time that has been changed since 1962, and it reminds me\n>a little of the Dodger logo.  \n\nAs far as I know, Toronto, Pittsburgh, and New York (NL) change their\nuniforms every year.  Every other year (e.g., New York), it will say Mets\nin cursive, New York in cursive, or New York in all caps.  Minor changes,\nbut they do change them often.  Last year, I think they had New York in all\ncaps.  Did Toronto have Blue Jays or Toronto last year?  What about\nPittsburgh?\n\n>\tMany teams have opted for a return to a previous style\n>of uniform, or at least uniforms that look more traditional.\n>(Phillies, Reds, Expos, White Sox, Padres, etc.) and the once\n>bright colors have been altered to gray.  The trend has also\n>seen the newer baseball fields resembling the parks of the\n>early years, as opposed to the cookie-cutter saucer stadiums\n>construcrted throughout the sixties.\n\nI hate the gray.  They should opt for more color (like the White Sox).\nI hate white team versus gray team.  Spring training uniforms look much\nbetter.\n\n>\tWith salaries now reaching unbelievable highs, no one\n>in the comissioner's office, and inter-league play on the\n>horizon, it's nice to see that baseball at least looks like it\n>was meant to be. \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8593, "properties": {"category": "rec.motorcycles", "text": "From: mjs@sys.uea.ac.uk (Mike Sixsmith)\nSubject: Re: Countersteering, to know or not to know - what is the question?\nOrganization: University of East Anglia\nDistribution: net\nLines: 22\n\nlotto@husc4.harvard.edu (Jerry Lotto) writes:\n\n>There has been a running thread on the need to understand\n>countersteering.  I have seen a lot of opinion, but not much of it has\n>any basis in fact or study.  The bottom line is:\n\n>The understanding and ability to swerve was essentially absent among\n>the accident-involved riders in the Hurt study.\n\n>The \"average rider\" does not identify that countersteering alone\n>provides the primary input to effect motorcycle lean by themselves,\n>even after many years of practice.\n\nI would agree entirely with these three paragraphs. But did the Hurt\nstudy make any distinction between an *ability* to swerve and a *failure*\nto swerve? In most of the accidents and near accidents that I've seen, riders\nwill almost always stand on the brakes as hard as they dare, simply because\nthe instinct to brake in the face of danger is so strong that it over-rides\neverything else. Hard braking and swerving tend to be mutually exclusive\nmanouvres - did Hurt draw any conclusions on which one is generally preferable?\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8594, "properties": {"category": "misc.forsale", "text": "From: jmu@acpub.duke.edu (Joshua Mostkoff Unger)\nSubject: 486SX Motherboard/Case/Mouse\nOrganization: Duke University; Durham, N.C.\nLines: 54\nNntp-Posting-Host: raphael.acpub.duke.edu\n\nHello, I have a motherboard and a case for sale as a package.\nBoth of them came from a CompuAdd computer I bought last August and am \n  presently upgrading.\nHere are the specs--\n\nMotherboard\n-----------\nCyrix 486SL 25 MHz microprocessor\nChips and Technology chipset (SCATsx V2.3.6 SLSLC)\n8 SIMM banks for a maximum of 32 Megs of RAM\nBUILT-IN Floppy and Hard Drive Controllers\nBUILT-IN ports--1 Parallel, 2 Serial (9 and 25 pin)\nBUILT-IN Paradise SVGA controller with 1 meg of RAM (Windows drivers inc.)\n   -can do up to 1024x768 @ 256 colors\n   -based on the Western Digital WD90C31 chip\nMath co-processor slot\n3 16-bit expansion slots and 2 8-bit expansion slots\n\nCase\n----\nLow-Profile Desktop\nVery nice grey color\n150 watt power supply\nRoom for 2 floppies plus HD\n\nMouse\n-----\n3-button\nMicrosoft-compatible\nGrey color matches case\n\nAll original manuals and documentation, video drivers, etc. are included.\n\nYou are probably wondering why I must sell the case with the motherboard.\nIt is simply because the case is custom-made for this particular board and\n  you would be hard-pressed to fit another MB in it.  However, the case and\n  this motherboard were made to go together and fit perfectly.\n\nAs you can see, since this board includes drive controllers AND a video \n  controller, you can save some money by buying this unit and not a MB\n  where you would need to get IO cards, video card, and drive controllers\n  Its just a lot more convenient on the whole\n\nI would like to ask about $500 for this whole package.  I think this is a fair\n  price given the facts that it includes a video card and drive controllers/IO\n  ports.  All you need to do is add drives, a monitor, RAM, and a keyboard. \n  Also keep in mind that it isn't a generic board, but from CompuAdd.\nI also will entertain all serious offers.\n\nPlease email at jmu@acpub.duke.edu\n\nThanks\n\n-J\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8595, "properties": {"category": "talk.politics.mideast", "text": "From: cosmo@pro-angmar.alfalfa.com (Frank Benson)\nSubject: Serdar\nOrganization: UTexas Mail-to-News Gateway\nLines: 5\nNNTP-Posting-Host: cs.utexas.edu\n\nWhat are you stupid?\n---\nProLine:  cosmo@pro-angmar\nInternet: cosmo@pro-angmar.alfalfa.com\nUUCP:     uunet!bu.edu!alphalpha!pro-angmar!cosmo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8596, "properties": {"category": "sci.crypt", "text": "From: rdippold@qualcomm.com (Ron \"Asbestos\" Dippold)\nSubject: Re: Once tapped, your code is no good any more.\nOriginator: rdippold@qualcom.qualcomm.com\nNntp-Posting-Host: qualcom.qualcomm.com\nOrganization: Qualcomm, Inc., San Diego, CA\nDistribution: na\nLines: 21\n\nGraham Toal <gtoal@gtoal.com> writes:\n>Actually, I am *completely* baffled by why Dorothy Denning has chosen\n>to throw away her academic respectability like this.  It looks to me\n>like a *major* Career Limiting Move.  There can be very few people\n>who know what she's been saying who take her seriously any more.\n\nI'm not sure it is a major limiting move... in the academic circles\nI've seen, arguing for increased government intervention and\nmanagement is almost always a plus (not the least because it usually\nmeans more high paying jobs for academics as \"advisors\").  Also\nconsider that it looks like Denning has some decent NSA / government\nconnections, which is always a plus for an academic institute that\nwants more government funding and work tossed their way.\n\nDespicable, yes; career limiting, well, the publicity probably\noutweighs the drawbacks.  And there are a whole bunch of people who\nthink the whole thing is just peachy keen. If it's only going to be\nused against drug dealers, child pornographers, and terrorists, well\nit must be good. :p\n-- \nTruth is hard to find and harder to obscure.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8597, "properties": {"category": "rec.sport.baseball", "text": "From: jsr2@ns1.cc.lehigh.edu (JOHN STEPHEN RANDOLPH)\nSubject: Re: ALL-TIME BEST PLAYERS\nOrganization: Lehigh University\nLines: 198\n\nIn article <1993Apr13.115313.17986@bsu-ucs>, 00mbstultz@leo.bsuvc.bsu.edu writes\n:\n>I've recently been working on project to determine the greatest\n>players at their respective postions.  My sources are Total Baseball,\n>James' Historical Abstract, The Ballplayers (biography), word of\n>mouth, and my own (biased) opinions...\n>\n>Feel free to comment, suggest, flame (whatever)...but I tried\n>to be as objective as possible, using statistical data not inlcuded\n>for time/convience's sake.  (I judged on Rel. BA, Adj OPS, Total Average,\n>fielding range/runs, total player rating (Total Baseball), stolen bases\n>(for curiosity's sake), TPR/150 g, and years played/MVP.\n>\n>1B  Career\n> 1) Lou Gehrig\n> 2) Jimmie Foxx\n> 3) Eddie Murray\n> 4) Hank Greenberg\n> 5) Johnny Mize\n> 6) Willie McCovey\n> 7) Dick Allen\n> 8) Harmon Killebrew\n> 9) Kieth Hernandez\nIt's i before e except after c, and in people named kEIth.\n\n>10) Bill Terry\n>11) George Sisler\n>\n>2B\n> 1) Eddie Collins\n> 2) Joe Morgan\n> 3) Jackie Robinson\n> 4) Rogers Hornsby\n> 5) Nap Lajoie\n> 6) Rhyne Sandberg\nLearn to spell.  It's Ryne.\n\n> 7) Charlie Gehringer\n> 8) Rod Carew\n> 9) Bobby Grich\n>10) Bobby Doerr\n>\n>SS\n> 1) Honus Wagner\n> 2) Cal Ripken Jr\n> 3) John Lloyd\n> 4) Ozzie Smith\n> 5) Robin Yount\n> 6) Joe Cronin\n> 7) Arky Vaughan\n> 8) Luke Appling\n> 9) Ernie Banks\n>10) Lou Boudreau\n>\n>3B\n> 1) Mike Schmidt\n> 2) Ed Matthews\n> 3) George Brett\n> 4) Wade Boggs\n> 5) Ron Santo\n> 6) Brooks Robinson\n> 7) Frank Baker\n> 8) Darrell Evans\n> 9) Pie Traynor\n>10) Ray Dandridge\n>\nHow can Brooks be # 6?  I think he would at least be ahead of Ron Santo.\n\n\n\n\n>C\n> 1) Josh Gibson\n***********************\n1a)  Darren Daulton   *       MVP 1993\n***********************\n\n> 2) Yogi Berra\n> 3) Johnny Bench\n> 4) Mickey Cochrane\n> 5) Bill Dickey\n> 6) Gabby Hartnett\n> 7) Roy Campanella\n> 8) Gary Carter\n> 9) Carlton Fisk\n>10) Thurman Munson\n>\n>LF\n> 1) Ted Williams\n> 2) Stan Musial\n> 3) Rickey Henderson\n> 4) Carl Yastrzemski\n> 5) Barry Bonds\n> 6) Tim Raines\n> 7) Joe Jackson\n> 8) Ralph Kiner\n> 9) Willie Stargell\n>10) Al Simmons\n>\n>CF\n> 1) Willie Mays\n> 2) Ty Cobb\n> 3) Tris Speaker\n> 4) Mickey Mantle\n> 5) Joe DiMaggio\n> 6) Oscar Charleston\n> 7) Andre Dawson\n> 8) Duke Snider\n> 9) Kirby Puckett\n>10) Dale Murphy\n>\n>RF\n> 1) Babe Ruth\n> 2) Hank Aaron\n> 3) Frank Robinson\n> 4) Mel Ott\n> 5) Al Kaline\n> 6) Reggie Jackson\n> 7) Dave Winfield\n> 8) Roberto Clemente\n> 9) Tony Gwynn\n>10) Pete Rose\n>\n>P\n> 1) Walter Johnson\n> 2) Lefty Grove\n> 3) Cy Young\n> 4) Christy Mathewson\n> 5) Pete Alexander\n> 6) Tom Seaver\n> 7) Roger Clemens\n> 8) Bob Gibson\n> 9) Warren Spahn\n>10) Satchel Paige\n>11) Juan Marichal\n>12) Whitey Ford\n>13) Bob Feller\n>14) Jim Palmer\n>15) Steve Carlton\n>\n>Overall (estimated):\n> 1) Ruth\n> 2) Williams\n> 3) Mays\n> 4) Cobb\n> 5) Aaron\n> 6) Wagner\n> 7) Speaker\n> 8) Schmidt\n> 9) W.Johnson\n>10) Mantle\n>11) Musial\n>12) DiMaggio\n>13) F.Robinson\n>14) Grove\n>15) Henderson\n>16) J.Gibson\n>17) C.Young\n>18) Collins\n>19) Foxx\n>20) Mathewson\n>21) Alexander\n>22) Morgan\n>23) J.Robinson\n>24) Hornsby\n>25) Ott\n>26) Seaver\n>27) Clemens\n>28) Matthews\n>29) Lajoie\n>30) Yastrzemski\n>31) Kaline\n>32) Brett\n>33) Gibson\n>34) Spahn\n>35) Charleston\n>36) Berra\n>37) Ripken Jr.\n>38) Lloyd\n>39) Raines\n>40) Sandberg\n>41) Gehringer\n>42) O.Smith\n>43) Yount\n>44) Ba.Bonds\n>45) Paige\n>46) R.Jackson\n>47) Marichal\n>48) Ford\n>49) Feller\n>50) Boggs\n>\n>\n>Again, feel free to comment...\n>\n>Mike, BSU\n>\n-- \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8598, "properties": {"category": "sci.crypt", "text": "From: earle@isolar.Tujunga.CA.US (Greg Earle)\nSubject: Re: PEM and MIME\nOrganization: Personal Usenet site, Tujunga, CA USA\nLines: 54\nDistribution: world\n\nIn article <1qg8m2$2e5@nigel.msen.com> emv@garnet.msen.com (Edward Vielmetti) writes:\n>W C Newell Jr (wcn@u.washington.edu) wrote:\n>\n>>Before we can have a global multimedia e-mail solution, there must be some\n>>definition of a minimum service level, and MIME does not provide for this\n>>(yet).  \n>\n>Before the Internet will invest in software, people need to see content. \n>I would suggest that 50 attractive MIME formatted news messages a day would be\n>sufficient to get a few people thinking about adding MIME support to news\n>readers, esp if the content is really worth it.\n>\n>>IMHO, we have a long way to go before the Unix-specific MUAs, newsreaders, etc\n>>reach the service levels of the other commercial platforms.  There ought to be\n>>such a definition, consisting of known object data types and rules for their\n>>handling, included in the transport specification document.\n>\n>Yes.  But there is also a long way to go before most Mac, PC, and Windows\n>MUAs and newsreaders are ready to handle the sheer volume of news and mail\n>that many Unix specific tools are able to cope with.  When the choice is\n>\"more feechurs\" or \"make the damn thing fast enough to keep up with the\n>flood\", you have to bet that \"fast enough\" wins.\n\nEd, as usual, makes a very good point.\n\nOne time a friend of mine at Sun sent me an e-mail.  He composed it using the\nSun OpenWindows 3 \"mailtool\" which handles (non-MIME) \"attachments\" and the\nlike.\n\nSince I don't use \"mailtool\", I had to manually save it, cut & paste, and\nthen \"uudecode\" the actual attachment.  What I got - after a not-inconsiderable\namount of time spent doing this - was an audio file.  The original message\nwas over 32Kb of mail headers and uuencoded data; the resulting audio message\nwas a single sentence that I transcribed as a 135 character message.\n\nIf he had sent me the sentence in plain text, the e-mail would have been\naround 250 bytes, and it would have taken me about 3 seconds to process it at\nmost.  Instead, it was 32k and it took at least a minute.  A complete waste of\n(my) time and bandwidth, as far as I'm concerned.  Sending plain text is still\nthe most efficient method of transmission, given the same transport mechanism.\nI shudder to think what would happen if everyone started posting their Usenet\narticles as audio files instead of plain text!  Meltdown of the Net predicted!\nFilm at Eleven!\n\nBack to Mono!\t(-:\n\n[This sub-thread no longer has anything to do with PEM or administrative]\n[policy, so I've redirected followups back to comp.mail.mime ... - Greg ]\n\n-- \n\t- Greg Earle\n\t  Phone: (818) 353-8695\t\tFAX: (818) 353-1877\n\t  Internet: earle@isolar.Tujunga.CA.US\n\t  UUCP: isolar!earle@elroy.JPL.NASA.GOV a.k.a. ...!elroy!isolar!earle\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8599, "properties": {"category": "talk.politics.misc", "text": "From: gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy)\nSubject: Re: Why not concentrate on child molesters?\nOrganization: University of Virginia\nLines: 15\n\nIn article <15416@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n#That describes some straights -- and nearly all homosexual males.\n\nCan you provide any evidence that doesn't ahve massive selection\neffects?\n\nNo, I thought not.\n\nJust slander on your part.\n\n--\n-Greg Hennessy, University of Virginia\n USPS Mail:     Astronomy Department, Charlottesville, VA 22903-2475 USA\n Internet:      gsh7w@virginia.edu  \n UUCP:\t\t...!uunet!virginia!gsh7w\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8600, "properties": {"category": "talk.politics.mideast", "text": "From: mark@fenris.albany.edu (Mark Steinberger)\nSubject: Re: More on ADL spying case\nOrganization: State University of New York at Albany\nLines: 6\n\nI don't think Yigal and his friends have had as much fun for years,\nif ever, as they're getting over this ADL business.\n\nThe publicity is likely to generate some speaker's fees, too. \n\n--Mark\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8601, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Alexander Samuel McDiarmid <am2o+@andrew.cmu.edu>\nSubject: Re: SE Serial Port Speed????\nOrganization: Sophomore, Mechanical Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 14\nNNTP-Posting-Host: po4.andrew.cmu.edu\nIn-Reply-To: <QfkD=X200WBK0_Ca0n@andrew.cmu.edu>\n\nExcerpts from cmu.comp.sys.mac: 5-Apr-93 Re: SE Serial Port Speed???? by\nSamuel John Kass@andrew. \n>  \n> Sorry, I got a bit technical.  To answer your question, your Mac SE will\n> have no problem whatsoever communicating with any modem that is 57,600\n> bps or less, and since modems THAT fast don't exist yet (in a\n> standardized form), there's no need to worry.\n>  \nactually a 14.4 kbps modem using standard compression (v3.2 v4.2.bis?)\ncna reach 57,600 bps, however I have not seen any server modems that\nhave hardware compression.  I have been told the annex modems here break\nup at ~36k, but I have never seen faster than 14.4kbps.\n\n                                                                _A.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.408+0000", "event": "documents", "entityId": 8602, "properties": {"category": "sci.crypt", "text": "From: usenet@news.cso.uiuc.edu (Net Noise owner)\nSubject: Re: Facinating facts: 30 bit serial number, possibly fixed S1 and S2\nOrganization: University of Illinois @ Urbana/Champaign\nLines: 32\n\nThe only way to view this method of generating unit keys is as a back-door.\nWhat else can you call a key deterministically generated from the serial\nnumber?\n\n\n To generate the unit key for a serial number N, the 30-bit value N is\n   first padded with a fixed 34-bit block to produce a 64-bit block N1.\n   S1 and S2 are then used as keys to triple-encrypt N1, producing a\n   64-bit block R1:\n\n\t   R1 = E[D[E[N1; S1]; S2]; S1] .\n\n   Similarly, N is padded with two other 34-bit blocks to produce N2 and\n   N3, and two additional 64-bit blocks R2 and R3 are computed:  \n\n\t   R2 = E[D[E[N2; S1]; S2]; S1] \n\t   R3 = E[D[E[N3; S1]; S2]; S1] .\n\n   R1, R2, and R3 are then concatenated together, giving 192 bits. The\n   first 80 bits are assigned to U1 and the second 80 bits to U2.  The\n   rest are discarded.  The unit key U is the XOR of U1 and U2.  U1 and U2\n   are the key parts that are separately escrowed with the two escrow\n   agencies.\n\n\nWhat happens is that the need for the Escrow houses is completely eliminated.\nOr should I say, the need to _access_ the Escrow houses to decrypt the data.\nThe houses will still serve a real purpose as far as generating the illusion\nof protection, and small-town cops won't be let in on the \"secret\", so they\nwill still go through the motions of going to the Escrow houses, but the fact\nis __the Federal government CAN and WILL build a chip which generates the unit\nkeys from the encrypted serial number!__  'Nuff Said.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8603, "properties": {"category": "sci.crypt", "text": "From: mbeckman@mbeckman.mbeckman.com (Mel Beckman)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Beckman Software Engineering\nReply-To: mbeckman@mbeckman.com\nDistribution: na,world\nX-Mailer: uAccess LITE - Macintosh Release: 1.5v5\nLines: 47\n\n\nIn article <1993Apr17.032022.14021@clarinet.com> (sci.crypt,alt.security,comp.org.eff.talk,comp.security.misc,comp.org.acm,comp.org.ieee), brad@clarinet.com (Brad Templeton) writes:\n> Let's assume, for the moment, that the system really is secure unless\n> you get both halves of the encryption key from the two independent\n> escrow houses.  Let's say you even trust the escrow houses -- one is\n> the ACLU and the other is the EFF.  (And I'm not entirely joking about\n> those two names)\n\nThe problem with \"Let's assume\" reasoning is that, taken to the extreme\n(and you're close), you arrive at \"Let's assume this is perfectly OK.\"\n\nThe assumptions you make are big ones. If the system is really secure, then\nwhy does the government have to keep the algorithm secret?  There are plenty\nof encryption algorithms that don't depend upon nondisclosure to be secure,\nso why in the world use one that does?  There are reasons, of course, but\nI certainly can't think of any honest ones.\n\nNext, you assume we can \"trust\" the escrow houses. But the last time I checked,\nEVERY SINGLE BRANCH OF GOVERNMENT has experienced unauthorized disclosure,\ncorruption, and even fabrication, of supposedly secure data. The govt is\nsaying \"Yeah, but NOW we're serious, so you can trust us.\"  Bullcrypt. \n\nAnd finally, although you didn't state it explicitly, you implicitly assume\nthat the warrant mechanism in this country is safe and reasonable. The case\nin Ventura County of a man shot and killed by officers serving a deliberately\nfraudulant warrant tells me that the govt has a long ways to go on this\nscore.\n\nRemember that all this is to catch the drug dealers, right?  As others\nhave pointed out, the current proposal will, if deployed, render truly secure\nencryption much more expensive and inconvenient than Uncle Sam's brand.\nWho will be able to afford, and be sufficiently motivated, to purchase this\nexpensive, inconvenient higher protection?  Somebody with lots of extra\ncash...\n\nThe following is more true than ever:\n\n  \"When [strong] encryption is outlawed, only outlaws will have [strong]\nencryption.\"\n\n\n________________________________________________________________________\n| Mel beckman                  |   Internet: mbeckman@mbeckman.com     |\n| Beckman Software Engineering | Compuserve: 75226,2257                |\n| Ventura, CA 93003            |  Voice/fax: 805/647-1641 805/647-3125 |\n|______________________________|_______________________________________|\n \"You can observe a lot just by watching.\"  -Yogi Bera\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8604, "properties": {"category": "comp.windows.x", "text": "From: slg3x@cc.usu.edu\nSubject: X Color bitmap editor needed\nOrganization: Utah State University\nLines: 7\n\nHi Folks,\n\nDoes anybody know where I can find the \"Color\" bitmap editor\naround the public sites? Any information I do appreciate that.\n\n\nC.Chang\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8605, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <<Pompous ass\nOrganization: California Institute of Technology, Pasadena\nLines: 16\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n[...]\n>>The \"`little' things\" above were in reference to Germany, clearly.  People\n>>said that there were similar things in Germany, but no one could name any.\n>That's not true.  I gave you two examples.  One was the rather\n>pevasive anti-semitism in German Christianity well before Hitler\n>arrived.  The other was the system of social ranks that were used\n>in Imperail Germany and Austria to distinguish Jews from the rest \n>of the population.\n\nThese don't seem like \"little things\" to me.  At least, they are orders\nworse than the motto.  Do you think that the motto is a \"little thing\"\nthat will lead to worse things?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8606, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Hand Held Products, Inc.\nLines: 66\nDistribution: usa\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <93105.215548U28037@uicvm.uic.edu> Jason Kratz  \n<U28037@uicvm.uic.edu> writes:\n> In article <1993Apr15.202811.29312@CSD-NewsHost.Stanford.EDU>,\n> andy@SAIL.Stanford.EDU (Andy Freeman) says:\n> >\n> >>I have been at a shooting range where\n> >>gang members were \"practicing\" shooting.\n> >\n> >How do \"we\" know that they were gang members and not undercover cops\n> >or even law-abiding menacing minorities.  BTW - Why the sneer quotes?\n> >\n> \"We\" know because the area that the gun shop/shooting range is in is right on\n> the border of the west side of Chicago.  That is a gang infested area.  There\n> are many, many bad things going on in that area.  Also, I have several  \nfriends\n> that live very close to that area who have had problems with some of these\n> folks.  By the way, where did I say that they were minorities?  \n\nThat was what I got from your phrasing, too.  Well, then, were they (the ones  \nyou saw) black?  You don't deny seem to deny it, either.\n\n> Do you think\n> that only minorities have gangs?  Not so.  As far as the quotes are concerned\n> it was totally obvious that they weren't just practicing for marksmanship.  I\n> don't know about you but I have never seen anyone else practice marksmanship  \nby\n> taking their gun out of their coat as fast as possible and start shooting.\n\nThat is the recommended way to practice with a CCW, too.  Aim alone is no good  \nfor defense, if you can't get the gun rapidly.\n\n>  If\n> you would have been there Andy it would've been obvious to you too.  \n\nWhat, outside of prejudice, would have made it obvious?\n\n> Of course\n> it might not have been.  Who knows.  All I do know is that I was there, I  \nlive\n> here and I know that they were gang bangers.  When you live here long enough  \nit\n> becomes pretty easy to spot them via gang colors, gang signs, etc.  \n\nYes, prejudice is more subtle in the north, isn't it?\n\n> One last\n> thing.  My sister is a social worker.  She makes it her point to find these\n> things out (gang signs, colors, etc) because it is in her best interest to do\n> so.  She is nice enough to let me know these things so I can watch out for\n> myself as I live right on the border of the west side of the city. Enough  \nsaid.\n> \n\nMore than enough.  I understand you completely.\n\n> Jason\n\nJim\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8607, "properties": {"category": "sci.crypt", "text": "From: tom_van_vleck@taligent.com (Tom Van Vleck)\nSubject: Re: looking for one-way (trap-door, password encryption, etc.) algorithms\nOrganization: -\nDistribution: usa\nLines: 21\n\nMichael Levin wrote:\n>      I am looking for references to algorithms which can be used for\n> password encryption. I.e., someone has a clear-text word, runs it\n> through the algorithm, and it becomes some other sequence of symbols.\n> I want this algorithm to have the property that it is a) next to\n> impossible to reverse, and b) would take too long to try all possible\n> words to see which one works (even by use of a high-speed computer).\n> Please send references or ideas to mlevin@husc8.harvard.edu.\n\nThe original one-way encryption I put into Multics about 1968 (as suggested\n\nby Joe Weizenbaum) was invertible.  An Air Force tiger team demonstrated \nthis to me in May 1973.  I then asked an expert (who requested anonymity) \nwhat I should use instead; the expert's suggestion was to treat the \n8-byte password as both key and data for the LUCIFER encryption algorithm, \nwhich is similar or identical to DES.  This method or something stronger \nshould take care of (a).  Issue (b) is discussed in comp.security.misc: \nlonger passwords and quality control on what users can choose as passwords\nare the common tactics.\n\ntom_vanvleck@taligent.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8608, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wong@cs.tu-berlin.de (Wolfgang Jung)\nSubject: Cirrus Logic 5426 Graph Card\nOrganization: Technical University of Berlin, Germany\nLines: 23\nNNTP-Posting-Host: athene.cs.tu-berlin.de\nMime-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\nX-Newsreader: TIN [version 1.1 PL8]\n\nAfter setting up Windows for using my Cirrus Logic 5426 VLB GraphicsCard\nIt moved a normal Window from one place to another. \nMy Parameters where just the following : 486 DX 33 VLB \nThe Card is equipped with 1 MB Dram (not Vram, there are 8 sockets for Vram) \nAnd the moving of the window just looked like it looked at a friends\n386DX 25 (387DX) and an normal ISA ET4000\n\nWhat I was wondering why is it not using the BITBLT  Engine which\nis suuposed to be on the Chip.\n\nHow are the experiences here..\nHave I done something wrong ?\n(I installed the MSWIN 3.1 MultiResolution drivers which where supplied \nwith the Card ?!)\nWould be nice if somebody could tell about his experience with this card\nAlso if there are new(hopefully faster) drrivers around I would love to \nhow to get hold of them :-) (ftp or whatsoever :-) )\n\nGruss\n\tWolfgang\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8609, "properties": {"category": "talk.politics.mideast", "text": "From: goykhman@apollo.hp.com (Red Herring)\nSubject: Re: Unconventional peace proposal\nNntp-Posting-Host: dzoo.ch.apollo.hp.com\nOrganization: Hewlett-Packard Company, Chelmsford, MA\nLines: 33\n\nIn article <1483500348@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n>\n>From: Center for Policy Research <cpr>\n>Subject: Unconventional peace proposal\n>\n>\n>A unconventional proposal for peace in the Middle-East.\n>---------------------------------------------------------- by\n>\t\t\t  Elias Davidsson\n>\n\n>Having stated my assumptions, I will now state my proposal.\n>\n>1.      A Fund should be established which would disburse grants\n>for each child born to a couple where one partner is Israeli-Jew\n>and the other Palestinian-Arab.\n...\n>5.      The emergence of a considerable number of 'mixed'\n>marriages in Israel/Palestine, all of whom would have relatives on\n>'both sides' of the divide, would make the conflict lose its\n>ethnical and unsoluble core and strengthen the emergence of a\n>truly civil society. The existence of a strong 'mixed' stock of\n>people would also help the integration of Israeli society into the\n\n    Sounds just like a racial theory that Hitler outlined in Mein Kampf.\n\n>Elias Davidsson Post Box 1760 121 Reykjavik, ICELAND\n\n\n-- \n------------------------------------------------------------------------------------------\nDisclaimer: Opinions expressed are mine, not my employer's.\n------------------------------------------------------------------------------------------\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8610, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nArticle-I.D.: rwing.2075\nOrganization: Totally Unorganized\nLines: 66\n\nIn article <strnlghtC5puCL.6Kp@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>In article <Apr18.204843.50316@yuma.ACNS.ColoState.EDU>\n>holland@CS.ColoState.EDU (douglas craig holland) writes:\n>\n>\n>>\tLet me ask you this.  Would you trust Richard Nixon with your\n>>crypto keys?  I wouldn't.\n>\n>I take it you mean President Nixon, not private citizen Nixon. Sure.\n>Nothing I'm doing would be of the slightest interest to President Nixon .\n\nI am sure you didn't miss the implication that we could have another\nRichard Nixon type president in the future (perhaps not too distant\nfuture, acutally).  With that in mind, then I take it you also would\nnot object to the Gov coming up with a decision (not proposal - just\nlike Clinton Cripple is a decision, not a proposal) sprung on us to\nstart placing video cameras with sound in every room of your house,\nwhich could be activated without your knowlege.  They would be well\nconcealed so you wouldn't know the location, to prevent you from covering\nthe lens opening.  After all, nothing you're doing would be of the\nslightest interest to a government official, right?  So, you surely\nshould not object to such a proposal...\n\nNot the best anology, but the principle is pretty close - the ability\nto eavesdrop on your activity with little or no effort, without your\nknowlege, protected by entirely by \"government safeguards\".  You can\nstill draw your curtains, so you can still have your privacy from everyone\nelse (except Big Brother)!!  After all we need this for protection from\ndrug dealers and terrorists and other criminals (like 'enemies of the\nSTATE')... and you don't really have a right to \"unbreakable\" privacy\nanyway, sort of as the press release of the Clinton Cripple DECISION\nputs it...\n\nI find it curious they use the word \"unbreakable\" when the term really\nshould be \"difficult to break without proper authorization\" (which the\nGovernment most certainly has at their disposal, right?  They wouldn't\nwant to be able to break it ILLEGALLY, would they?)...  Nawww, not\n\"for the People\" Clinton....\n\nCan you, while my mind is on it, give us one good reason that the\nalgorithm should be a secret algorithm, unless this encryption scheme\neither is a joke, or contains features like a 'master key' or other back\ndoor for UNAUTHORIZED eavesdropping? If it was really even moderately\nsecure, and the government really meant to require the proper court\norder and the keys that are in the Escrow accounts to be able to decipher\nthe traffic, what is the need to keep the algorithm secret?  Seems I\nhear rather often that if an encryption scheme requires the algorithm\nto remain a secret to be effective, it is not a worthwhile scheme... is\nthis just idle talk, or is the Administration bullshitting everyone?\n\nWith GREAT skepticism, and many doubts on our Administrations intentions...\n\nAnd WAIT!! We haven't been told the NEXT gem the Administration has in\nmind for e-mail and datafile security.  The press release does say that\nthis is part of a comprehensive thing on data security for us unprivileged\ncitizens.  Perhaps 'subjects' would be the better term - 'citizens'\nsomehow does not seem appropriate... that implies a free people, 'subjects'\nbetter fits a population who serve at the pleasure of their rulers.\nOne thing for certain:  The government no longer regards the citizens\nas their bosses anymore, but the other way around...\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8611, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 12\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>Now along comes Mr Keith Schneider and says \"Here is an \"objective\n>moral system\".  And then I start to ask him about the definitions\n>that this \"objective\" system depends on, and, predictably, the whole\n>thing falls apart.\n\nIt only falls apart if you attempt to apply it.  This doesn't mean that\nan objective system can't exist.  It just means that one cannot be\nimplemented.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8612, "properties": {"category": "rec.autos", "text": "From: eliot@lanmola.engr.washington.edu (eliot)\nSubject: Re: station wagons (was  Open letter to NISSAN\nOrganization: clearer than blir\nLines: 30\nDistribution: na\nNNTP-Posting-Host: lanmola.engr.washington.edu\n\nIn article <1993Apr16.052013.23517@leland.Stanford.EDU> tedebear@leland.Stanford.EDU (Theodore Chen) writes:\n>>but you'll\n>>never catch me dead in a minivan!\n\n>even a minivan based on viper running gear?\n\nhmmmm.. not sure, since no such beast exists.. i can tell you another\nthough..  you won't catch me dead in a GMC Syclone or Typhoon either,\n1000 bhp or not.. not even the fact that Clint Eastwood has one.  just\nmy taste,  no rational reasons for it.\n\n>-teddy\n>p.s. i think the audi S4 gets a 4.2 liter V-8 next year.\n\nCAR just tested the S4 wagon with 5 banger and 6 speed manual.  Rave\nreview except for Servotronic..  Audi is trying to recoup the\ndevelopment costs for the V8, and since the V8 is not selling well,\nthey are sticking it into the 100 series cars.. Neat marketing trick,\neh?  yeah, a 100 V8-32v wouldn't be a bad idea as competition for the\nupcoming bimmer 530/540i would it?  maybe they can use a 3.6 liter\nversion to avoid conflicts with the v8 model.. then strip off all the\nluxo-garbage.  let the S4 remain with the flared arches and fat tires\nto go fight with the M5.... maybe turn up the boost a wee bit to bump\nbhp up to say 450 or so.. :-) while keeping the 100 V8 with mercedes\n500E style subtlety.\n\nblah blah blah....\n\n\neliot\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8613, "properties": {"category": "comp.windows.x", "text": "From: kaiser@informatik.uni-koblenz.de (Siegfried Kaiser)\nSubject: R5 table widget causing trouble with XtQueryGeometry\nOrganization: Universitaet Koblenz\nLines: 227\nDistribution: world\nNNTP-Posting-Host: glass.uni-koblenz.de\n\nContents:Problems with table widgets in R5\n\n\tThe following part of a program (an user interface for a simulation\n\tsystem) did work in R4, but refused to in R5. Of cause, the R4-version\n\tdid not know about the xpTableWidgetClass (we used tableWidgetClass \t\t\tinstead - caught from the net in times of R3) and XpTableChildPosition \t\t\t(formerly XtTblPosition).\n\tSince compiling with R5, the program causes a zero width or height error\n\t(on sparc-stations). The trouble-shooter is the (re)computation of the\n\tmodel_init_table - table widget: though its childs (label and asciiText \n\twidgets) exist, XtQueryGeometry returns a prefered width and height of \t\t\tzero. \n\tThus the following asignment cannot perform anything else but set the \t\t\twidth and height of the newly created widget to zero. No wonder XtPopup \t\tor XtManage- Child create zero width or height errors (dependent on \t\t\twhether width and height of the shell widget are set in the resource \t\t\tfile or not).\n\t\n\tQuestion: Does anyone know, why XtQueryGeometry returns so low prefered\n\t\t\tvalues when working on table widgets or perhaps what\n\t\t\tto do about?\n\n\tI'll be happy, if someone is able to help me. \n\tGermans are requested to answer in german.\n\t\n\tSiegfried Kaiser\n\temail: kaiser@uniko.uni-koblenz.de\n\n\t\n\tThe part of interest:\n\n\n\t/* Graphischer Neuaufbau des Model-Init-Formulars */\n\t\t/* Storing the old width and height of the viewport-\t*/\n\t\t/* widget, which is the parent of the troubling table\t*/\n\t\t/* widget, before the viewport widget is destroyed\t*/\n\t\t/* The destroying of widgets before resizing them is a\t*/\n\t\t/* relict from R3-age\t\t\t\t\t*/\n\t\n\tif (model_init_popped_up) \n\t\tXtUnmapWidget(model_init_form_view);\n\tXtDestroyWidget(model_init_form_view);\n\t\n\t\t/* Creating the subtree within the shell, of which the\t*/\n\t\t/* root is the viewport widget\t\t\t\t*/\n\t\n\tn = 0;\n\tXtSetArg(args[n],XtNfromVert,model_init_title); n++;\n\tXtSetArg(args[n],XtNfromHoriz,model_init_button_view); n++;\n\tXtSetArg(args[n],XtNallowVert,True); n++;\n\tXtSetArg(args[n],XtNforceBars,True); n++;\n\tmodel_init_form_view = XtCreateWidget(\"form_view\",viewportWidgetClass,\n\t\t\t\t\t      model_init_form,args,n);\n\n\tn = 0;\n\tmodel_init_table = XtCreateWidget(\"table\",xpTableWidgetClass,\n\t\t\t\t\t  model_init_form_view,args,n);\n\n\t\t/* create_form_widget does create and position table\t*/\n\t\t/* widget's childs. To position them it uses XpTable-\t*/\n\t\t/* ChildPosition in R5 and XtTblPosition in R4\t\t*/\n\t\t\t\t\t \n\tcreate_form_widget(ptr_model_init_obj,model_init_table);\n\n\t\t/* \t\t\t\t\t\t\t*/\n\t\t/* The crucial function call:\t\t\t\t*/\n\t\t/* intended to return the maximum height possible: if\t*/\n\t\t/* there isn't sufficient space to show the whole table\t*/\n\t\t/* widget, then the viewport shall grow as large as \t*/\n\t\t/* possible, but not beyond the border of screen.\t*/\n\t\t/* If there is enough space, the window is intended to\t*/\n\t\t/* shrienk to the smallest possible height.\t\t*/\n\t\t/*\t\t\t\t\t\t\t*/\n\n\tXtQueryGeometry(model_init_table,NULL,&pref);\n\n\t\t/* According to the algorithms idea, the new value of\t*/\n\t\t/* viewport widget's height is selected. Unfortunately\t*/\n\t\t/* pref.height = 0 leads to new_height = 0.\t\t*/\n\t\t\n\tif (form_view_height > pref.height) new_height = pref.height;\n\telse new_height = form_view_height;\n\n\t\t/* Setting the new values to viewport widgets ancestors\t*/\n\n\tw = XtNameToWidget(model_init_form,\"form_view\");\n\tXtResizeWidget(w,width,new_height,pref.border_width);\n\tXtResizeWidget(model_init_form_view,width,new_height,\n\t\t       pref.border_width);\n\n\tif (model_init_popped_up)\n\t{\n\t\t/* In case the shell, which contains model_init_form_-\t*/\n\t\t/* view and model_init_table, allready exists, is has\t*/\n\t\t/* to be resized, too.\t\t\t\t\t*/\n\t\t\n\t n = 0;\n\t XtSetArg(args[n],XtNwidth,&shell_width); n++;\n\t XtSetArg(args[n],XtNheight,&shell_height); n++;\n\t XtSetArg(args[n],XtNborderWidth,&shell_bw); n++;\n\t XtGetValues(model_init_shell,args,n);\n\t XtResizeWidget(model_init_shell,shell_width,\n\t\t\tshell_height - height + new_height,shell_bw);\n\t}; /* end of if */\n\n\tn = 0;\n\tXtSetArg(args[n],XtNwidth,&width); n++;\n\tXtSetArg(args[n],XtNborderWidth,&bw); n++;\n\tXtGetValues(model_init_button_view,args,n);\n\tXtResizeWidget(model_init_button_view,width,new_height,bw);\n\n\tXtResizeWidget(vert_bar,sbar_width,1,sbar_bw);\n\t\n\tresize_inits();\n\n\t\t/* If there is the shell's height set within the \t*/\n\t\t/* resource file, the program terminates within the\t*/\n\t\t/* first XtManageChild on its second pass through the\t*/\n\t\t/* observed function. The first pass succeeds.\t\t*/\n\n\tXtManageChild(model_init_form_view);\n\tXtManageChild(model_init_table);\n\n\n\tif (!model_init_popped_up)\n\t{\n\t\t/* In case the shell isn't popped up it has to be done.\t*/\n\t\t/* If there is no value set to the shell's height within*/\n\t\t/* the resource file, the program terminates here.\t*/\n\t\t\n\t XtPopup(model_init_shell,XtGrabNone);\n\t model_init_pop_flag = True;\n\t set_model_init_attributes();\n\t}; /* end of if */\n\n\tget_actual_init(&ptr_actual);\n\tload_form(ptr_actual);\n\t\n\t\n\t\n\t/*\t\t\t\t\t\t\t\t*/\n\t/* If someone suspects the creation of table widget's contents\t*/\n\t/* causes all the trouble, there are the sources of create_form */\n\t/*\t\t\t\t\t\t\t\t*/\n\t\n\t\t\n\tcreate_form_widget(ptr,table)\n\tt_obj              *ptr;\n\tWidget             table;\n\t\t\n\t\t/* ptr is a linear list containing attributes and para-\t*/\n\t\t/* meters of the model and additionally the correspon-\t*/\n\t\t/* ding widgets\t\t\t\t\t\t*/\n\t\t\n\t{\n\t Arg               args[10];\n\t int               n,\n\t\t\t   row,\n\t\t\t   col;\n\t t_obj             *ptr_obj;\n\t t_ident           *ptr_ident;\n\n\t\t/* Initialization of the local variables\t\t*/\n\t\t\n\t ptr_obj = ptr;\n\t col = 0;\n\t row = 0;\n \n\t /* Schleife ueber die Objekte bzw. das Pseudo-Objekt (fuer die \t\t\t\tParameter) */\n\t\t/* loop through the list of objects and pseudo-objects:\t*/\n\t\t/* every object occuring in the model has zero or more\t*/\n\t\t/* attributes and some parameters, which can be shared\t*/\n\t\t/* by several objects. \t\t\t\t\t*/\n\t\t/* Because of locality the attributes of one object are\t*/\n\t\t/* listed in a second linear list (of type t_ident),\t*/\n\t\t/* whereas the parameters, which can belong to any ob-\t*/\n\t\t/* ject are put together in a pseudo-object \t\t*/\n\t\t/* Thus the program loops through the list of objects\t*/\n\t\t/* and pseudo-objects and for each object through the\t*/\n\t\t/* list of its attributes resp. parameters.\t\t*/\n\t\t\n\t while (ptr_obj != (t_obj*)NULL)\n\t {\n\t \t/* Each object and pseudo-object is represented in a\t*/\n\t \t/* label widget\t\t\t\t\t\t*/\n\t  \n\t  n = 0;\n\t  XtSetArg(args[n],XtNlabel,ptr_obj->name); n++;\n\t  ptr_obj->label_w = XtCreateManagedWidget(\"object\",labelWidgetClass,\n\t\t\t\t\t   table,args,n);\n\t  XpTableChildPosition(ptr_obj->label_w,col,row);\n\t  col++;\n\t  row++;\n\t  ptr_ident = ptr_obj->ident;\n\n\t  /* Schleife ueber die Objekt-Attribute bzw. Parameter */\n\t  while (ptr_ident != (t_ident*)NULL)\n\t  {\n\t  \t/* Each attribute and parameter is represented in a\t*/\n\t  \t/* label and has a corresponding asciiText widget, in \t*/\n\t  \t/* which it is to be initialized.\t\t\t*/\n\t  \t\n\t   n = 0;\n\t   XtSetArg(args[n],XtNlabel,ptr_ident->name); n++;\n\t   ptr_ident->label_w = XtCreateManagedWidget(\"ident\",labelWidgetClass,\n\t\t\t\t\t      table,args,n);\n\t   XpTableChildPosition(ptr_ident->label_w,col,row);\n\t   col++;\n    \n\t   n = 0;\n\t   XtSetArg(args[n],XtNlength,ROW_LENGTH); n++;\n\t   XtSetArg(args[n],XtNstring,ptr_ident->text); n++;\n\t   XtSetArg(args[n],XtNeditType,XawtextEdit); n++;\n\t   XtSetArg(args[n],XtNwrap,XawtextWrapWord); n++;\n\t   XtSetArg(args[n],XtNresize,XawtextResizeHeight); n++;\n\t   XtSetArg(args[n],XtNuseStringInPlace,True); n++;\n\t   ptr_ident->text_w = XtCreateManagedWidget(\"text\",\n\t\t\t\t\tasciiTextWidgetClass,\n\t\t\t\t\t     table,args,n);\n\t   XpTableChildPosition(ptr_ident->text_w,col,row);\n\t   col--;\n\t   row++;\n\t   get_next_ident(&ptr_ident);\n\t  }; /* end of while */\n\t  col--;\n\t  get_next_obj(&ptr_obj);\n\t }; /* end of while */\n\t} /* end of create_form_widget */\n\n\n\t\n\nSo far the problem in detail.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8614, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Rangers name Keenan coach\nKeywords: hockey, men's professional\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 65\n\nclarinews@clarinet.com (UPI) writes in clari.sports.hockey:\n\n>\tNEW YORK (UPI) -- Mike Keenan, whose NHL coaching history\n>has been to wear out his welcome despite an impressive penchant for \n>winning, has come to the city that embraces victors above all else.\n\nWell, I could become a fan ... (-;\n\nSeriously, this news coming since Thursday has effectively robbed the\nIslanders and the Devils of any airtime on sports talk shows almost\neverywhere that I've sampled ... in fact, the playoffs almost don't\nexist now. )-; Ranger fans calling in to WFAN or to New York One's\nmidnight sports talk were in a mix of fury over this season and near-\norgasm over Keenan's hiring.  (Summarizing: Keenan is a winner and\nwill give the Broadway Bums 'da business' in pursuing the next Cup\nchase ...)\n\n>\tThe Chicago Blackhawks cut their last tie with Keenan when\n>he was forced out as general manager in November. He had given up\n>Chicago's coaching duties a year ago and his thirst for the power\n>of a GM now increases the pressure on beleaguered Rangers GM Neil\n>Smith.\n\nThis will be an interesting combination to watch ... Keenan has been\npaid enough money to put up and shut up and just be a coach, but his\nadvice on any player moves will be listened to closely.  A lot of big\nplayer moves will happen --- remember that Keenan got rid of Denis\nSavard.  The country club days are over ...\n\n>\t``When Keenan left Chicago I couldn't help but think about \n>him as our coach,'' Smith said. ``There was an indication he would \n>be taken off the market. I feared that and couldn't let that happen.''\n\nIf Paramount had given Smith an earlier sign of support and offered\nKeenan the big money to put-up-and-shut-up back in January, the\nRangers might not be heading for golf now ...\n\n>\tKeenan, 43, takes on a demoralized team that offers him a\n>chance to fashion yet another of his reclamation projects -- at the\n>highest salary ever commanded by an NHL coach. The Rangers -- owned\n>by Gulf & Western -- have bestowed upon Keenan an unprecedented $3\n>million, four-year deal,\n\n>\t``I've known Mike a long time,'' Messier said. ``We've won two\n>Canada Cups together. He's been to the finals three times. Maybe we\n>miss just one more element to win the Stanley Cup. I don't think he's\n>the same person he was 10 years ago or even five years ago. I think he\n>has changed and bettered himself with experience.''\n\nOne of Keenan's first statements was a reaffirmation that Mark Messier\nwill be the team's captain.\n\n>\tThe timing of the move gives the Rangers' new coach 2 1-2\n>months to prepare for the NHL draft (June 26), and Neil Smith may \n>not back off the their trade-happy pattern.\n\nBy then, Smith might have some bargains on Keenan's advice ... like\nmaybe unloading Phil Bourque for Tie Domi ... (-;\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8615, "properties": {"category": "comp.graphics", "text": "From: davidr@rincon.ema.rockwell.com (David J. Ray)\nSubject: Re: TIFF: philosophical significance of 42\nOrganization: Rockwell International\nX-Newsreader: Tin 1.1 PL5\nLines: 16\n\nMartin Preston (prestonm@cs.man.ac.uk) wrote:\n: In <C5sCGu.1LL@mentor.cc.purdue.edu> ab@nova.cc.purdue.edu (Allen B) writes:\n: \n: >I've got the 6.0 spec (obviously since I quoted it in my last posting). \n: >My gripe about TIFF is that it's far too complicated and nearly\n: >infinitely easier to write than to read,...\n: \n: Why not use the PD C library for reading/writing TIFF files? It took me a\n: good 20 minutes to start using them in your own app.\n: \n: Martin\n: \nWhat is the name of this PD C library for TIFF.  I'd like to get a copy of it,\nbut I can't Archie for something I don't have the filename for.\n\nThanks.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8616, "properties": {"category": "alt.atheism", "text": "From: 9051467f@levels.unisa.edu.au (The Desert Brat)\nSubject: Re: Keith Schneider - Stealth Poster?\nOrganization: Cured, discharged\nLines: 24\n\nIn article <1pa0f4INNpit@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n\n> But really, are you threatened by the motto, or by the people that use it?\n\nEvery time somone writes something and says it is merely describing the norm,\nit is infact re-inforcing that norm upon those programmed not to think for\nthemselves. The motto is dangerous in itself, it tells the world that every\n*true* American is god-fearing, and puts down those who do not fear gods. It\ndoesn't need anyone to make it dangerous, it does a good job itself by just\nexisting on your currency.\n\n> keith\n\nThe Desert Brat\n-- \nJohn J McVey, Elc&Eltnc Eng, Whyalla, Uni S Australia,    ________\n9051467f@levels.unisa.edu.au      T.S.A.K.C.            \\/Darwin o\\\nFor replies, mail to whjjm@wh.whyalla.unisa.edu.au      /\\________/\nDisclaimer: Unisa hates my opinions.                       bb  bb\n+------------------------------------------------------+-----------------------+\n|\"It doesn't make a rainbow any less beautiful that we | \"God's name is smack  |\n|understand the refractive mechanisms that chance to   | for some.\"            |\n|produce it.\" - Jim Perry, perry@dsinc.com             |    - Alice In Chains  |\n+------------------------------------------------------+-----------------------+\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8617, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: colburn@caesar (alex colburn)\nSubject: Re: GUI Application Frameworks for Windows ??\nNntp-Posting-Host: caesar.iaf.uiowa.edu\nOrganization: University of Iowa, Image Analysis Facility\nLines: 38\n\nIn article <1993Apr12.154418.14463@cimlinc.uucp> bharper@cimlinc.uucp (Brett Harper) writes:\n>Hello,\n>  \n>  I'm investigating the purchase of an Object Oriented Application Framework.  I have\n>come across a few that look good:\n>Zinc\n>----\n>  Has a platform independent resource strategy.  (Not too important for me right now)\n>\n>\n>brett.harper@cimlinc.com\n\n\nJust a thought on resources,  It is very important if you do use a\nmultiplatform toolkit to check on how it uses resources.  I have\nused Glockenspeil commonview under Motif and OS2.  I wrote a resource\nconverter from OS2 to Motif, but it really wasn't too easy, especially\nthe naming scheme. In Motif you cannot rename controls/widgets.\nWith windows you can call the OK button ID_OK in every instance,\nthis doesn't work for Motif, you'd have to call it Dialog1_OK,\nand Motif expects a text string rather than a number.  So \nyour constructor should know how to convert a #define into the\nproper resource identifier.\nI'd check on how the toolkit expects names, and that if it does\nuse resources, that is uses resources for all platforms you intend to\nport to. ( By the way, I would never use CommonView or Glockenspiel\nfor anything ) \n\n\n\nAlex.\n\n\n--\n__  __|       \\      __|       Alex Colburn                  \n   |       /   \\    |          Image Analysis Facility      \n   |      _____ \\   __|\t       University of Iowa          \n______| _/      _\\ _|          colburn@tessa.iaf.uiowa.edu  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8618, "properties": {"category": "comp.graphics", "text": "From: sigma@rahul.net (Kevin Martin)\nSubject: Re: Stay Away from MAG Innovision!!!\nNntp-Posting-Host: bolero\nOrganization: a2i network\nLines: 10\n\nIn <16BB58B33.D1SAR@VM1.CC.UAKRON.EDU> D1SAR@VM1.CC.UAKRON.EDU (Steve Rimar) writes:\n>My Mag MX15F works fine....................\n\nMine was beautiful for a year and a half.  Then it went <foomp>.  I bought\na ViewSonic 6FS instead.  Another great monitor, IMHO.\n\n-- \nKevin Martin\nsigma@rahul.net\n\"I gotta get me another hat.\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8619, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ashok@biochemistry.cwru.edu (Ashok Aiyar)\nSubject: Re: WinQVT/Net V3.4?\nArticle-I.D.: biochemi.ashok.661.0\nDistribution: usa\nOrganization: CWRU School of Medicine\nLines: 19\nNNTP-Posting-Host: axa12-slip.dialin.cwru.edu\n\nIn article <354@lorien.OCF.LLNL.GOV> dave@angmar.llnl.gov (Dave Fuess) writes:\n\n>An earlier article in this newsgroup made reference to\n>WinQVT/Net version 3.4. Realy? Where? I tried archie\n>with no luck. It's probably just a typo.\n\nNot a typo.  It was uploaded to ftp.cica.indiana.edu a couple days back.\n\n>But I sure would like to get one if it's real as I too\n>have a printer problem in WinQVT.\n\nVersion 3.4 uses standard Windows printer drivers.\n\nAshok\n\n--\nAshok Aiyar                        Mail: ashok@biochemistry.cwru.edu\nDepartment of Biochemistry                       Tel: (216) 368-3300\nCWRU School of Medicine, Cleveland, Ohio         Fax: (216) 368-4544\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8620, "properties": {"category": "rec.motorcycles", "text": "From: bethd@netcom.com (Beth Dixon)\nSubject: Re: Ed must be a Daemon Child!!\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nDistribution: usa\nLines: 29\n\nIn article <1993Apr14.133413.1499@research.nj.nec.com> behanna@syl.syl.nj.nec.com (Chris BeHanna) writes:\n>In article <bethdC5G0H6.I48@netcom.com> bethd@netcom.com (Beth Dixon) writes:\n>>Bzzzzt.  It was me.  Until I discovered my SR250 Touring Bike has a\n>>nifty little cache on it for things like coins or lipstick.  The\n>>new Duc 750SS doesn't, so I'll have to go back to carrying my lipstick\n>>in my jacket pocket.  Life is _so_ hard.  :-)\n>\n>\tAm I the only denizen who thinks that the Natural Look is the best\n>look?  The thought of kissing that waxy shit smeared all over a woman's lips\n>is a definite turn-off...\nSo does clear lipstick/chapstick/etc. fit under the \"natural look\" or\nthe \"waxy shit\" category?  I wear something on my lips to keep them from\ndrying out.  Kissing dry, cracked, parched lips isn't too fun either.\n\n>\tNot that I'll ever be kissing Beth or Noemi... ;-)\nNot if Tom has anything to say about it you won't!  Noemi speaks for\nherself.\n\nBeth\n\n=================================================================\nBeth [The One True Beth] Dixon                   bethd@netcom.com\n1981 Yamaha SR250 \"Excitable Girl\"                      DoD #0384\n1979 Yamaha SR500 \"Spike the Garage Rat\"             FSSNOC #1843\n1992 Ducati 750SS                                     AMA #631903\n1963 Ducati 250 Monza -- restoration project         1KQSPT = 1.8\n\"I can keep a handle on anything just this side of deranged.\"\n                                                        -- ZZ Top\n=================================================================\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8621, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: WC 93: Results, April 18\nOrganization: University of Toronto Chemistry Department\nLines: 43\n\nIn article <1993Apr19.211406.22528@iscnvx.lmsc.lockheed.com> spiegel@sgi413.msd.lmsc.lockheed.com (Mark Spiegel) writes:\n>\tAccording to the SJ Murky News the Team USA roster is (names and\n>\tteams played for in 1992-93 listed):\n>\n>\t\tGoalies\n>\t\t-------\n........\n>\t\tForwards\n>\t\t--------\n>\tTony Amonte\tNew York Rangers\n>\tTed Drury\tHarvard Univ\n>\tRob Gaudreau\tSan Jose' Sharks\n>\tCraig Johnson\tUniv of Minnesota\n>\tJeff Lazaro\tOttawa Senators\n>\tMike Modano\tMinnesota North Stars\n>\tEd Olczyk\tNew York Rangers\n>\tDerek Plante\tUniv of Minnesota-Duluth\n>\tShion Podein\tEdmonton Oilers\n>\tDavid Sacco\tBoston University\n>\tDarren Turcotte New York Rangers\n>\tDoug Weight\tEdmonton Oilers\n>\n\nIt looks like the Edmonton Oilers just decided to take a European\nvacation this spring...\n\nRanford, Tugnutt, Benning, Manson, Smith, Buchberger, and Corson\nare playing for Canada.\n\nPodein and Weight are playing for the US.\n\nIs Kravchuk playing for the Russians...I know he had nagging\ninjuries late in the season.\n\nPodein is an interesting case...because he was eligible to\nplay in Cape Breton in the AHL playoffs like Kovalev, Zubov,\nand Andersson...obviously Sather and Pocklington are not\nthe total scrooges everyone makes them out to be...certainly\nin this case they've massively outclassed Paramount and the\nNew York Rangers.\n\nGerald\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8622, "properties": {"category": "sci.electronics", "text": "From: rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter)\nSubject: Re: Can Microwaves Be Used To Collect XYZ Coordinates\nOrganization: Boeing\nLines: 6\n\nWhere can you get info (brochures...) on Differential GPS Systems and where to \nbuy them?\n\nBobC\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8623, "properties": {"category": "comp.graphics", "text": "From: ricky@watson.ibm.com (Rick Turner)\nSubject: Re: CorelDraw Bitmap to SCODAL\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: danebury.hursley.ibm.com\nOrganization: IBM T.J. Watson Research\nLines: 4\n\nMy CorelDRAW 3.0.whatever write SCODL files directly. Look under File|Export\non the main menu. \n\nRick\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8624, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rcomg@melomys.co.rmit.oz.AU (Mark Gregory)\nSubject: AVI file format?\nSummary: AVI file format?\nKeywords: AVI file format?\nOrganization: Royal Melbourne Institute of Technology\nLines: 21\nNNTP-Posting-Host: melomys.cse.rmit.edu.au\n\n\nHi,\n\twould someone please email (and post)\nthe AVI (Microsoft) file format.  I wish to\ndo some research using this format, as there\nare disks available with video clips.  It is\ninteresting because it interleaves sound and\nvideo.\n\nThank you\n\n\nMark Gregory Lecturer m.gregory@rmit.edu.au PH(03)6603243 FAX(03)6621060\nRoyal Melbourne Institute of Technology,\nDepartment of Communication and Electronic Engineering,\nP.O. Box 2476V, Melbourne, Victoria, 3001. AUSTRALIA.\n--\nMark Gregory Lecturer m.gregory@rmit.edu.au PH(03)6603243 FAX(03)6621060\nRoyal Melbourne Institute of Technology,\nDepartment of Communication and Electronic Engineering,\nP.O. Box 2476V, Melbourne, Victoria, 3001. AUSTRALIA.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.409+0000", "event": "documents", "entityId": 8625, "properties": {"category": "rec.motorcycles", "text": "From: jyaruss@hamp.hampshire.edu\nSubject: Misc./buying info. needed\nOrganization: Hampshire College\nLines: 15\nNNTP-Posting-Host: hamp.hampshire.edu\n\nHi. I have been thinking about buying a Motorcycle or a while now and I have\nsome questions:\n\n-Is there a buying guide for new/used motorcycles (that lists reliability, how\nto go about the buying process, what to look for, etc...)?\n-Is there a pricing guide for new/used motorcycles (Blue Book)?\n\nAlso\n-Are there any books/articles on riding cross country, motorcycle camping, etc?\n-Is there an idiots' guide to motorcycles?\n\nANY related information is helpful. Please respond directly to me.\n\nThanks a lot.\n-Jordan\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8626, "properties": {"category": "comp.graphics", "text": "From: renew@blade.stack.urc.tue.nl (Rene Walter)\nSubject: CView answers\nOrganization: MCGV Stack, Eindhoven University of Technology, the Netherlands.\nLines: 66\nNNTP-Posting-Host: blade.stack.urc.tue.nl\nSummary: some CView problems explained\nKeywords: Stupid Programming\nX-Newsreader: TIN [version 1.1 PL6]\n\nA very kind soul has mailed me this reply for the bugs in CView.\nSince he isn't in the position to post this himself, he asked me to post\nit for him, but to leave his name out. So here it comes:\n\nCView has quite a number of bugs.  The one you mention is perhaps the most\nannoying, but not the most dangerous.  As far as I can determine, it has to\ndo with the temp files that CView creates.  CView gives the user no control\nover where it places its temp files: it just places them in its\n\"current directory\".  The problem you mention occurs (as far as I can tell)\nwhen it runs out of disk space for its temp files. It seems as if CView\ndoesn't check properly for this situation.  As Cview decodes a jpeg, it seems \nto write out a temp file with all the pixel data with 24 bit colour\ninformation. Then, for 8 bit displays, it does the \"dithering\", again writing\nanother file with the 8 bit colour information.  While it is writing this\nsecond file, it also writes the data to your colour card. Then when it does\nthe last chunk of 8 bit data, it recopies all the data from the 8 bit file to\nyour screen again.  (It does this last \"recopy\" operation for its\n\"fit to screen\" feature, even when this feature is not enabled.)\n\n The result of this process is the following:\n  \n     1) If it runs out of disk space when writing the first 24 bit file, all\n        you ever see is as much data as it has room for, and the last bit of\n        data is simply repeated over and over again because CView never\n        realizes the disk has filled up and disk writes/reads aren't performed.\n\n     2) If it has enough room for the 24 bit data, but runs out of room for\n        the 8 bit data, you see almost all of the picture as it does the\n        dithering and writes to the screen card.\n        However, then when it finishes the dithering and recopies the data\n        from the 8 bit file to screen (for whatever reason it does this)\n        one again just gets a repetition of the last chunk of data for which\n        there was room on the disk.\n\nThis is just a guess, but probably fairly accurate.  At least the general\nidea is on track I think, although I have probably made errors in details\nabout file I/O etc.  The way around this is  of course to clear up sufficient\ndisk space.  The temp files for large JPEG's (1200x900 and bigger) can be\nvery large (3 Meg + 1 Meg ).  On some of the largest I have needed in excess\nof 6 Meg free disk space.\n\n\nCView has a much more serious bug: if you are trying to display a file from\na floppy, and you change floppies while CView has some temp file open on the\nfloppy, then CView in certain circumstances will write the directory (and FAT\ntable? I can't remember) for the removed floppy onto the newly inserted\nfloppy, thus corruptimg the new floppy in a very serious, possibly\nunrevcoverable way.  SO BE CAREFUL!  It is incredibly poor programming for a\nprogram to do this.  On the other hand, when choosing files in the Open Files\nmenu, CView insists on doing a few disk reads every time one moves the\nhi-lighter square.  Incredibly annoying when it could do them all at once\nwhen it gets the directory info.  And really, how much effort does it take to\nsort a directory listing?\n\n\nWith much thanks to the originator of this article.\n +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+\n |        Rene Walter          |          renew@stack.urc.tue.nl           |\n +-----------------------------+-------------------------------------------+\n | \"Will I drown in tears of sorrow, Is there hope for tomorrow,           |\n |  Will this world ever get better, Can't we all just live together       |\n |  I don't wanna live in strife  , I just wanna live my life              |\n |  I deserve to have a future...\"                                         |\n |                                     -The Good Girls    \"Future\"         |\n +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=+\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8627, "properties": {"category": "talk.politics.mideast", "text": "From: rj3s@Virginia.EDU (\"Get thee to a nunnery.....\")\nSubject: Re: Israeli Terrorism\nOrganization: University of Virginia\nLines: 32\n\neshneken@ux4.cso.uiuc.edu  writes:\n> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n> \n> >I think the Israeli press might be a tad bit biased in\n> >reporting the events. I doubt the Propaganda machine of Goering\n> >reported accurately on what was happening in Germany. It is\n> >interesting that you are basing the truth on Israeli propaganda.\n> \n> If you consider Israeli reporting of events in Israel to be propoganda, then \n> consider the Washington Post's handling of American events to be propoganda\n> too.  What makes the Israeli press inherently biased in your opinion?  I\n> wouldn't compare it to Nazi propoganda either.  Unless you want to provide\n> some evidence of Israeli inaccuracies or parallels to Nazism, I suggest you \n> keep your mouth shut.  I'm sick and tired of all you anti-semites comparing\n> Israel to the Nazis (and yes, in my opinion, if you compare Israel to the Nazis\n> you are an anti-semite because you know damn well it isn't true and you are\n> just trying to discredit Israel).\n> \n> Ed.\n> \nYou know ed,...  You're right!  Andi shouldn't be comparing\nIsrael to the Nazis.  The Israelis are much worse than the\nNazis ever were anyway.  The Nazis did a lot of good for\nGermany, and they would have succeeded if it weren't for the\ndamn Jews.  The Holocaust never happened anyway.  Ample\nevidence given by George Schafer at Harvard, Dept. of History,\nand even by Randolph Higgins at NYU, have shown that the\nHolocaust was just a semitic conspiracy created to obtain\nsympathy to piush for the creation of Israel.\n\n\n\t\t\t\t\t\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8628, "properties": {"category": "rec.motorcycles", "text": "From: tjohnson@tazmanian.prime.com (Tod Johnson (617) 275-1800 x2317)\nSubject: Re: Live Free, but Quietly, or Die\nDistribution: The entire Nugent family\nOrganization: Computervision\nLines: 29\n\n\n In article <1qc2fu$c1r@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n >Loud pipes are a biligerent exercise in ego projection,\n\nNo arguements following, just the facts.\n\nI was able to avoid an accident by revving my engine and having my\n*stock* Harley pipes make enough noise to draw someones attention.\n\nI instinctively revved my engine before I went for my horn. Don't know\nwhy, but I did it and it worked. Thats rather important.\n\nI am not saying \"the louder the pipes the better\". My Harley is loud\nand it gets me noticed on the road for that reason. I personally do\nnot feel it is to loud. If you do, well thats to bad; welcome to \nAmerica - \"Home of the Free, Land of the Atlanta Braves\".\n\nIf you really want a fine tuned machine like our federal government\nto get involved and pass Db restrictions; it should be generous\nenough so that a move like revving your engine will get you noticed.\nSure there are horns but my hand is already on the throttle. Should we\nget into how many feet a bike going 55mph goes in .30 seconds; or\nhow long it would take me to push my horn button??\n\nAnd aren't you the guy that doesn't even have a bike???\n\nTod J. Johnson\nDoD #883\n\"Go Slow, Take Geritol\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8629, "properties": {"category": "soc.religion.christian", "text": "From: norris@athena.mit.edu (Richard A Chonak)\nSubject: Re: tuff to be a Christian?\nReply-To: norris@mit.edu\nOrganization: l'organisation, c'est moi\nLines: 15\n\nIn article <Apr.17.01.10.58.1993.2246@geneva.rutgers.edu>, mdbs@ms.uky.edu (no name) writes:\n|>\n|> \tParting Question:\n|> \t\tWould you have become a Christian if you had not\n|> been indoctrinated by your parents? You probably never learned about\n|> any other religion to make a comparative study. And therefore I claim\n|> you are brain washed.\n\nYou write as if no-one ever became a Christian except people from\nChristian families.  This is not true, as quite a few people on this\ngroup can attest (including me). \n\n-- \nRichard Aquinas Chonak, norris@mit.edu, Usenet addict, INTP\nSeeking job change: sys-mgr: VAX, SIS, COBOL, DTR; progr: UNIX, C/++, X\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8630, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: larryhow@austin.ibm.com ()\nSubject: LaserJet IV upgrades to 1200dpi opinions\nOriginator: larryhow@larryhow.austin.ibm.com\nOrganization: IBM Austin\nLines: 13\n\n\n\nWhat are the current products available to upgrade the resolution?\nWhich ones support postscript?\n\nAny experiences with them, either good or bad?\n\nIs the quality difference really noticable?\n\nI'm planning on producing camera ready copy of homes.  Will the higher\nresolution be noticed for these?\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8631, "properties": {"category": "comp.windows.x", "text": "From: greg@Software.Mitel.COM (Gregory Lehman)\nSubject: Looking for drawing packages\nOrganization: Mitel. Kanata (Ontario). Canada.\nLines: 24\n\nGreetings.\n\nI am developing an application that allows a *user* to interactively\ncreate/edit/view a visual \"model\" (i.e. topology) of their network, and\nI was wondering if anyone knew of any builder tools that exist to\nsimplify this task.\n\nIn the past I have used Visual Edge's UIM/X product to develop other\nGUIs, so I am familiar with UIMSs in general.\n\nThe topology will support objects and connecting links.  Once the\ntopology is created, I want to provide the user with capabilities to\nsupport grouping, zooming, etc.\n\nI am looking for some form of a higher abstraction other than X drawing\nroutines to accomplish this.  Specifically, the zooming and grouping\naspects may prove difficult, and certainly time consuming,  if I have\nto \"roll my own\".\n\nSuggestions?\n\n-greg\n\ngreg@software.mitel.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8632, "properties": {"category": "alt.atheism", "text": "From: bcash@crchh410.NoSubdomain.NoDomain (Brian Cash)\nSubject: Re: A visit from the Jehovah's Witnesses\nNntp-Posting-Host: crchh410\nOrganization: BNR, Inc.\nLines: 51\n\nIn article <1993Apr2.115300.803@batman.bmd.trw.com>, jbrown@batman.bmd.trw.com writes:\n|> In article <C4twso.8M2@HQ.Ileaf.COM>, mukesh@HQ.Ileaf.COM (Mukesh Prasad) writes:\n|> > In article <1993Apr1.142854.794@batman.bmd.trw.com> jbrown@batman.bmd.trw.com writes:\n|> >> In article <1p8v1aINN9e9@matt.ksu.ksu.edu>, strat@matt.ksu.ksu.edu (Steve Davis) writes:\n|> >> > bskendig@netcom.com (Brian Kendig) writes:\n|> >> > \n|> >> >>- The Earth is evil because Satan rules over it.\n|> >> > \n|> >> > This is a new one to me.  I guess it's been a while since a Witness\n|> >> > bothered with me.  Are they implying that Satan is omniscient?  You\n|> >> > might try tricking them into saying that Satan is 'all-knowing' and\n|> >> > then use that statement to show them how their beliefs are\n|> >> > self-contradictary.  \n|> >> \n|> >> No, Satan is not omniscient, but he does hold dominion over the earth\n|> >> according to Christian theology (note, not to be confused with JW's\n|> >> theology). \n|> >> \n|> > \n|> > What are the standard theologies on who/what created Satan,\n|> > and why?\n|> > \n|> \n|> Orthodox Christian theology states that God created Lucifer (Satan)\n|> along with the other angels, presumably because He wanted beings to\n|> celebrate (glorify) existence and life (and thereby, God) along with\n|> Him.  Actually the whys and wherefores of God's motivations for \n|> creating the angels are not a big issue within Christian theology.\n|> \n|> But God created Lucifer with a perfect nature and gave him along with\n|> the other angels free moral will.  Lucifer was a high angel (perhaps\n|> the highest) with great authority.  It seems that his greatness caused\n|> him to begin to take pride in himself and desire to be equal to or\n|> greater than God.  He forgot his place as a created being.  He exalted\n|> himself above God, and thereby evil and sin entered creation.\n\nActually, the story goes that Lucifer refused to bow before MAN as \nGod commanded him to.  Lucifer was devoted to God.\n\nOh yeah, there is nothing in Genesis that says the snake was anything\nmore than a snake (well, a talking one...had legs at the time, too).\n\nI don't think pointing out contradictions in STORIES is the best way\nto show the error in theology:  if they think a supernatural entity\nkicked the first humans out of paradise because they bit into a\nfruit that gave them special powers...well, they might not respond\nwell to reason and logic.  :^)\n\nBrian /-|-\\\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8633, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ent811l@monu6.cc.monash.edu.au (Christopher Kuperman)\nSubject: Re: Do I need intelligent serial I/O??\nOrganization: Monash University, Melb., Australia.\nX-Newsreader: Tin 1.1 PL4\nLines: 31\n\n\nBill writes:\n: \n:   No, buy the serial port and modem. Each can be used for other things,\n: you can use the modem with your next computer (might not be a PC) or\n: upgrade the modem without changing the box. I hear that ISDN is big in\n: Europe, you might be able to get one of those beautiful ISDN modems for\n: less than the pice of a car someday (64k bidirectional).\n: \n: -- \n: bill davidsen, GE Corp. R&D Center; Box 8; Schenectady NY 12345\n: \n\n\nUnfortunately the curent United States standard on ISDN is 54Kbit..\n  :(\n\nbut i suppose whats 10Kbit.. \n\nC.Kup.\n\n _____________________________________________________________________________\n[__From_________________________________][ aka: Christopher Kuperman          ]\n[_______________________________________][ The holistic systems consultant    ]\n[____@@@@@@____________________@@_______][------------------------------------]\n[_______@@____@@@@@___@@_@@@___@@__@@___][ email: zork@yoyo.cc.monash.edu.au  ]\n[______@@____@@___@@__@@@___@__@@@@_____][------------------------------------]\n[_____@@_____@@___@@__@@_______@@_@@____][ Giv a man a fish & he'll eat for a ]\n[____@@@@@@@__@@@@@___@@_______@@__@@___][ day, teach him how to fish & he'll ]\n[_______________________________________][_eat for ever.______________________]\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8634, "properties": {"category": "comp.graphics", "text": "From: cavalier@blkbox.COM (Bill Egan)\nSubject: Re: Weitek P9000 ?\nNntp-Posting-Host: port3.houston.pub-ip.psi.net\nOrganization: Performance Systems Int'l\nLines: 13\n\njgreen@amber (Joe Green) writes:\n>> > Anyone know about the Weitek P9000 graphics chip?\n\n>Do you have Weitek's address/phone number?  I'd like to get some information\n>about this chip.\n\nYes, I am very interested in this chip.  Please follow up or email.\n\n--\nBill Egan          \nCavalier Graphics\nHouston, Texas\nEmail: cavalier@blkbox.com \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8635, "properties": {"category": "rec.motorcycles", "text": "From: pnakada@oracle.com (Paul Nakada)\nSubject: Eating and Riding was Re: Drinking and Riding\nArticle-I.D.: pnakada.PNAKADA.93Apr5140811\nOrganization: Oracle Corporation, Redwood Shores, CA\nLines: 14\nNntp-Posting-Host: pnakada.us.oracle.com\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\n\n\nWhat's the feeling about eating and riding?  I went out riding this\nweekend, and got a little carried away with some pecan pie.  The whole\nride back I felt sluggish.  I was certainly much more alert on the\nride in.  I'm sure others have the same feeling, but the strangest\nthing is that eating is usually the turnaround point of weekend rides.\n\nFrom now on, a little snack will do.  I'd much rather have a get that\nfull/sluggish feeling closer to home.\n\n-Paul\n--\nPaul Nakada | Oracle Corporation | pnakada@oracle.com\nDoD #7773 | '91 R100C | '90 K75S\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8636, "properties": {"category": "alt.atheism", "text": "From: pww@spacsun.rice.edu (Peter Walker)\nSubject: Re: Rawlins debunks creationism\nOrganization: I didn't do it, nobody saw me, you can't prove a thing.\nLines: 30\n\nIn article <1993Apr15.223844.16453@rambo.atlanta.dg.com>,\nwpr@atlanta.dg.com (Bill Rawlins) wrote:\n> \n>     We are talking about origins, not merely science.   Science cannot\n>     explain origins.  For a person to exclude anything but science from\n>     the issue of origins is to say that there is no higher truth\n>     than science.  This is a false premise.\n\nSays who? Other than a hear-say god.\n\n>     By the way, I enjoy science.\n\nYou sure don't understand it.\n\n>     It is truly a wonder observing God's creation.  Macroevolution is\n>     a mixture of 15 percent science and 85 percent religion [guaranteed\n>     within three percent error :) ]\n\nBill, I hereby award you the Golden Shovel Award for the biggist pile of\nbullshit I've seen in a whils. I'm afraid there's not a bit of religion in\nmacroevolution, and you've made a rather grand statement that Science can\nnot explain origins; to a large extent, it already has!\n\n>             //  Bill Rawlins            <wpr@atlanta.dg.com>        //\n\nPeter W. Walker          \"Yu, shall I tell you what knowledge is? When \nDept. of Space Physics    you know a thing, say that you know it. When \n   and Astronomy          you do not know a thing, admit you do not know\nRice University           it. This is knowledge.\"\nHouston, TX                     - K'ung-fu Tzu\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8637, "properties": {"category": "sci.med", "text": "From: carl@SOL1.GPS.CALTECH.EDU (Carl J Lydick)\nSubject: Re: Krillean Photography\nOrganization: HST Wide Field/Planetary Camera\nLines: 24\nDistribution: world\nReply-To: carl@SOL1.GPS.CALTECH.EDU\nNNTP-Posting-Host: sol1.gps.caltech.edu\n\nIn article <1993Apr19.205615.1013@unlv.edu>, todamhyp@charles.unlv.edu (Brian M. Huey) writes:\n=I think that's the correct spelling..\n=\tI am looking for any information/supplies that will allow\n=do-it-yourselfers to take Krillean Pictures. I'm thinking\n=that education suppliers for schools might have a appartus for\n=sale, but I don't know any of the companies. Any info is greatly\n=appreciated.\n=\tIn case you don't know, Krillean Photography, to the best of my\n=knowledge, involves taking pictures of an (most of the time) organic\n=object between charged plates. The picture will show energy patterns\n=or spikes around the object photographed, and depending on what type\n=of object it is, the spikes or energy patterns will vary. One might\n=extrapolate here and say that this proves that every object within\n=the universe (as we know it) has its own energy signature.\n\nGo to the library and look up \"corona discharge.\"\n--------------------------------------------------------------------------------\nCarl J Lydick | INTERnet: CARL@SOL1.GPS.CALTECH.EDU | NSI/HEPnet: SOL1::CARL\n\nDisclaimer:  Hey, I understand VAXen and VMS.  That's what I get paid for.  My\nunderstanding of astronomy is purely at the amateur level (or below).  So\nunless what I'm saying is directly related to VAX/VMS, don't hold me or my\norganization responsible for it.  If it IS related to VAX/VMS, you can try to\nhold me responsible for it, but my organization had nothing to do with it.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8638, "properties": {"category": "alt.atheism", "text": "From: lpzsml@unicorn.nott.ac.uk (Steve Lang)\nSubject: Re: Objective Values 'v' Scientific Accuracy (was Re: After 2000 years, can we say that Christian Morality is)\nOrganization: Nottingham University\nLines: 38\n\nIn article <C5J718.Jzv@dcs.ed.ac.uk>, tk@dcs.ed.ac.uk (Tommy Kelly) wrote:\n> In article <1qjahh$mrs@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n> \n> >Science (\"the real world\") has its basis in values, not the other way round, \n> >as you would wish it.  \n> \n> You must be using 'values' to mean something different from the way I\n> see it used normally.\n> \n> And you are certainly using 'Science' like that if you equate it to\n> \"the real world\".\n> \n> Science is the recognition of patterns in our perceptions of the Universe\n> and the making of qualitative and quantitative predictions concerning\n> those perceptions.\n\nScience is the process of modeling the real world based on commonly agreed\ninterpretations of our observations (perceptions).\n\n> It has nothing to do with values as far as I can see.\n> Values are ... well they are what I value.\n> They are what I would have rather than not have - what I would experience\n> rather than not, and so on.\n\nValues can also refer to meaning.  For example in computer science the\nvalue of 1 is TRUE, and 0 is FALSE.  Science is based on commonly agreed\nvalues (interpretation of observations), although science can result in a\nreinterpretation of these values.\n\n> Objective values are a set of values which the proposer believes are\n> applicable to everyone.\n\nThe values underlaying science are not objective since they have never been\nfully agreed, and the change with time.  The values of Newtonian physic are\ncertainly different to those of Quantum Mechanics.\n\nSteve Lang\nSLANG->SLING->SLINK->SLICK->SLACK->SHACK->SHANK->THANK->THINK->THICK\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8639, "properties": {"category": "rec.autos", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Re: Truck tailgates/mileage\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 36\n\nIn article <1993Mar30.203846.85644@ns1.cc.lehigh.edu> jh03@ns1.cc.lehigh.edu (JUN HE) writes:\n>In article <1993Mar26.221840.1204@nosc.mil>, koziarz@halibut.nosc.mil (Walter A.\n> Koziarz) writes:\n>>In article <51300059@hpscit.sc.hp.com> chrisw@hpscit.sc.hp.com (Chris Wiles) wr\n>ites:\n>>\n>>\n>>>      Consumers report did a study I think and found that most\n>>>trucks got worse mileage with the tailgate off. The tailgates on the\n>>>newer trucks actually help.\n>>\n>>oh, sure they do...  and replacing the front bumper and grille with a closet\n>>door helps mileage *and* cooling.  *if* CR actually said that, then they have\n>>bigger fools working for them than the fools that believe their drivel...  but,\n>>who am I to argue this?  just someone that's been a pickup-driver for 20+\n>>years, that's all.  forget the 'net', just take off the tailgate on hiway trips\n>>since the nets aren't designed to nor capable of restraining a load in the bed\n>>anyway.  around town, the tailgate will have a negligable effect on mileage\n>>anyway.\n>>\n>>Walt K.\n>>\n>They may help to improve mileage in some cases, I believe. With the tailgate\n>on the flow structure behind the cab may differ and the vortex drag may be\n>reduced during high speed driving.\n\nHow about those toneau covers? I've been thinking of building one\nfrom chipboard for roadtrips. Any comment on how they affect\nmileage in highway travel?\n\nCharles\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8640, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dudek@acsu.buffalo.edu (The Cybard)\nSubject: MIDI files on MS-Win3.1 and SoundBlaster 1.0?\nSummary: How can I play midi files in MS-Windows 3.1 with a SB 1.0 card?\nKeywords: MIDI, soundblaster, windows, ibm-pc\nOrganization: UB\nLines: 15\nNntp-Posting-Host: autarch.acsu.buffalo.edu\n\nI have a 486DX-33 computer with a SoundBlaster 1.0 card.  I'm running\nMicrosoft Windows v3.1.  I have the SB driver set up properly to play\nnormal sounds (.WAV files, etc.).  I want to play midi files through the\nMedia Player that is included with windows.  I know I have to set up the\npatch maps or something in the MIDI-Mapper in the Control Panel.  I KNOW\nNOTHING ABOUT MIDI.  (This is to be the way I'll get my feet wet.)\n\nHow do I set up Windows so that I can play MIDI files?\n\n  \n-- \nDavid Thomas Dudek /  v098pwxs@ubvms.bitnet     \\     __   _ The Cybard\n State University / dudek@sun.acsu.buffalo.edu   \\   /  `-' )      ,,, \n   of New York   / \"If music be the food of love, \\  | | ()|||||||[:::}\n    @ Buffalo   /   play on!\" - Wm. Shakespeare    \\ `__.-._)      ''' \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8641, "properties": {"category": "sci.med", "text": "From: jason@ab20.larc.nasa.gov (Jason Austin)\nSubject: Re: Barbecued foods and health risk\nOrganization: NASA Langley Research Center, Hampton, VA\nLines: 28\nReply-To: Jason C. Austin <j.c.austin@larc.nasa.gov>\nNNTP-Posting-Host: ab20.larc.nasa.gov\nIn-reply-to: rsilver@world.std.com's message of Sat, 17 Apr 1993 15:02:18 GMT\n\nIn article <C5Mv3v.2o5@world.std.com> rsilver@world.std.com (Richard Silver) writes:\n-> \n-> Some recent postings remind me that I had read about risks \n-> associated with the barbecuing of foods, namely that carcinogens \n-> are generated. Is this a valid concern? If so, is it a function \n-> of the smoke or the elevated temperatures? Is it a function of \n-> the cooking elements, wood or charcoal vs. lava rocks? I wish \n-> to know more. Thanks. \n\n\tI've read mixed opinions on this.  Singed meat can contain\ncarcinogens, but unless you eat barbecued meat every meal, you're\nprobably not at much risk.  I think I will live life on the edge and\ngrill my food.\n\n\tI've also read that using petroleum based charcoal starter can\nput some unwanted toxins in your food, or at least unwanted odor.\nI've been using egg carton cups dipped in paraffin for fire starters,\nand it actually lights faster and easier than lighter fluid.  Several\npeople have told me that they have excellent results with a chimney,\nbasically a steel cylinder with wholes punched in the side.  I've been\nmeaning to get one of these, but one hasn't presented itself while\nI've been out shopping.  You can make one from a coffee can, but I buy\nmy coffee as whole beans in a bag, so I haven't had a big enough can\nlaying around.\n--\nJason C. Austin\nj.c.austin@larc.nasa.gov\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8642, "properties": {"category": "comp.windows.x", "text": "From: nchan@nova.ctr.columbia.edu (Nui Chan)\nSubject: how to put RPC in HP X/motif environment?\nOrganization: Columbia University Center for Telecommunications Research\nX-Posted-From: nova.ctr.columbia.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 12\n\n\nHi, \n\nhas anybody implements an RPC server in the HP Xwindows? In SUN Xview, there\nis a notify_enable_rpc_svc() call that automatically executes the rpc processes\nwhen it detects an incoming request. I wonder if there is a similar function in\nHP X/motif that perform the same function.\n\nany help is appreciated.\n\nnui chan\nnchan@ctr.columbia.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8643, "properties": {"category": "soc.religion.christian", "text": "From: mserv@mozart.cc.iup.edu (Mail Server)\nSubject: Re: So far so good\nLines: 16\n\n>>This may be a really dumb one, but I'll ask it anyways:\n>>       Christians know that they can never live up to the requirements of  \n>>God, right? (I may be wrong, but that is my understanding)  But they still  \n>>try to do it.  Doesn't it seem like we are spending all of our lives  \n>>trying to reach a goal we can never achieve?  I know that we are saved by  \n>>faith and not by works, but does that mean that once we are saved we don't  \n>>have to do anything?  I think James tells us that Faith without works is  \n>>dead (paraphrase).  How does this work?\n\nShort reply:  We can never achieve perfect health, yet we always strive for it.  \nWe don't seek to do God's will because we're forced to, we follow His way \nbecause His way is best.  The reason it's hard is because we are flawed, not \nbecause He's unreasonable.  But we seek to follow His way because we want to \nimprove ourselves and our lives.\n\n- Mark\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8644, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lau@aerospace.aero.org (David Lau)\nSubject: Re: Accelerating the MacPlus...;)\nNntp-Posting-Host: michigan.aero.org\nOrganization: The Aerospace Corporation; El Segundo, CA\nLines: 17\n\n  Also, if someone would recommend another\n> accelerator for the MacPlus, I'd like to hear about it.\n> \n> Thanks for any time and effort you expend on this!\n> \n> Karl\n\nTry looking at the Brainstorm Accelerator for the Plus.  I believe it is\nthe best solution because of the performance and price.  Why spend $800\nupgrading a computer that is only worth $300 ????\n  The brainstorm accelerator is around $225.  It speeds up the internal\nclock speed to 16MHz.  That may not seem like much but it also speeds up\nSCSI transfers.  I think that feature is unique to brainstorm.\nCheck it out.\n\nDavid Lau\nlau@aerospace.aero.org\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8645, "properties": {"category": "rec.motorcycles", "text": "From: remmons@iat.holonet.net (Robert Emmons)\nSubject: Re: MAIL ORDER\nArticle-I.D.: iat.C535JA.Fvx\nOrganization: HoloNet National Internet Access BBS: 510-704-1058/modem\nLines: 24\n\n>If you get good service from a shop, or they regularly have merchandise\n                 ^^^^^^^\n>in stock you need, or they have a knowledgable and/or friendly sales\n                                                       ^^^^^^^^\n>staff, or if for whatever other reason you would like to do business\n>with them, which will in the aggrigate keep them in business and\n>available to fill your future needs, but they charge more for an item\n>than another store, you can usually purchase the item in the store of\n>your choice, and pay the lowest legitimate price being offered\n>elsewhere.\n\n\nSounds pretty lame to me.\n\nLet me see if I understand now. Your \"friends\" charge you extra?\nJust how much do you usually have to pay for a little\nfriendliness? Seems like you're being \"serviced\" by some\n\"friendly\" sales people.\n\n\n \nRobert Emmons                 Never hesitate to sacrifice clarity\nCalcShop Inc.                 and maintainability to save precious\nremmons@holonet.net           picoseconds during program execution. \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8646, "properties": {"category": "comp.windows.x", "text": "From: rgooch@rp.CSIRO.AU (Richard Gooch)\nSubject: Re: Motif vs. [Athena, etc.]\nOrganization: CSIRO Division of Radiophysics/Australia Telescope National Facility\nLines: 38\n\nIn article <C5K6ny.AzJ@kirk.bu.oz.au>, bambi@kirk.bu.oz.au (David J. Hughes) writes:\n> \n> >I am also concerned by this prevalence of Motif, particularly from the\n> >point of view of writing and obtaining free software.  As the Linux and\n> >386BSD communities grow, however, I think that Motif will lose some of\n> >its grip, at least in the non-commercial marketplace.  \n> \n> Ports of Motif to both 386BSD and Linux are available for a fee of about\n> $100.  This is cost recovery for the person who bought the rights to\n> redistribute.  The activity in both the BSD and Linux news groups\n> pertaining to Motif has been high.\n> \n> >I just wonder if this will also cause a divergence between commercial\n> >and non-commercial software (ie. you will only get free software using\n> >Athena or OpenLook widget sets, and only get commercial software using\n> >the Motif widget sets).  \n> \n> I can't see why.  If just about every workstation will come with Motif\n> by default and you can buy it for under $100 for the \"free\" UNIX\n> platforms, I can't see this causing major problems.\n> \n\n  I think you will find that the active Linux and 386BSD communities are\n  populated by enthusiasts who would object to paying *any* money for software.\n  Otherwise, they would probably have gone for a commercial Unix.\n  An important factor in the Linux community is that source code is always\n  available (this is probably similar in the 386BSD community, however, I'm not\n  really involved there). Many people using Linux like to stay at the cutting\n  (bleeding) edge: ie. when kernel patches, C library or compiler patches come\n  out, people like to rebuild their entire systems. The prime requirement for\n  all Linux software is that it is available under a GNU style public license.\n  Hence, Linux software uses either the Athena widgets or XView.\n  Individuals may write software requiring Motif, but I doubt it is widely\n  adopted.\n\n\t\t\t\tRegards,\n\n\t\t\t\t\tRichard Gooch....\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8647, "properties": {"category": "rec.sport.hockey", "text": "From: mikkot@romulus.math.jyu.fi (Mikko Tarkiainen)\nSubject: Re: Pens Info needed\nNntp-Posting-Host: romulus.math.jyu.fi\nOrganization: University of Jyvaskyla, Finland\nLines: 33\n\nIn article <1993Apr16.171319.13467@CSD-NewsHost.Stanford.EDU> nlu@Xenon.Stanford.EDU (Nelson Lu) writes:\n>In article <1993Apr16.074054.3124@jyu.fi> mikkot@romulus.math.jyu.fi (Mikko Tarkiainen) writes:\n>\n>>Coaching news: \n>>\t       Vasili Tichonov (ex-Assat) to San Jose Sharks \n>Wow.  So that's probably the reason why current assistant coach Drew Ramenda\n>hinted that he won't be back.  Thanks for the news, Mikko; can you (or any\n>of our Finnish netters) comment on Tichonov?\n\nThe first time I heard this piece of news was on the post game radio\ninterview here in Jyvaskyla. That was the bronze medal game in the \nSM-liiga which Tichonov's team Porin Assat (the Aces of town Pori:)\nlost.  Vasili, the son of Victor Tichonov (the famous Soviet coach),\nsaid that for a long time the Sharks have been persuading him to\ntake the assistant coach post. But he wants to be the head coach where\never he goes. He definitely won't be coaching Assat anymore (after\nthree? seasons). I don't know why.\n\nVasili is a good coach I believe. Assat was a good team, produced many\nplayers to our national team. Assat wasn't a skilled team (IMHO) but\nthey had the fighting spirit. After all, they butchered Jokerit in the\nplayoffs and gave hard time to TPS, the champs. But Assat wasn't\nconsistent, only when they were in the right mood they could beat any\nteam in the SM-liiga.\n\nI am not 100% sure about the deal with the Sharks. As I said, he wants\nto be the head coach. But he and the Sharks are going to negotiate and\ndecide during the WC. I doubt that he will be the head coach but\nmaybe they'll do some compromise.\n\nCould somebody post more information about Vasili? I know he was coaching\nin the former Soviet league; teams, results? His character as a coach?\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8648, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: charles@tinman.dev.prodigy.com ()\nSubject: Re: multiple desktops\nNntp-Posting-Host: tinman\nOrganization: Prodigy Services Company, White Plains, NY\nLines: 16\n\nIn article <C56BHt.7qF@news.Hawaii.Edu> dmcgee@uluhe.soest.hawaii.edu (Don McGee) writes:\n>\n>Is there a free/share( ware) package that will allow multiple\n>desktops in windows 3.1.  What is desired is to have a desk top\n>for several people that each can personalize by name and choice\n>of programs etc. \n\nAmishware has one included in their package. They were advertising here on the\nnet a couple of weeks ago with a riduculously (That is in a good way, Ted!)\nlow price. Does anyone remember what it was ?\n\n-- \n Charles Emmons        | charles@trintex.uucp         | These opinions are\n Prodigy Services Co.  | charles%trintex@uunet.uu.net | mine alone, unless\n White Plains NY 10601 | Voice 914-993-8856           | you would like to\n PRODIGY ID - KJRD82A  | FAX   914-993-8659           | share them.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.410+0000", "event": "documents", "entityId": 8649, "properties": {"category": "sci.crypt", "text": "From: ns111310@LANCE.ColoState.Edu (Nathaniel Sammons)\nSubject: Re: What the clipper nay-sayers sound like to me.\nDistribution: na\nNntp-Posting-Host: blanca.lance.colostate.edu\nOrganization: Colorado State U. Engineering College\nLines: 39\n\n[... a bunch of well-meaning (maybe) cynnical text about screw-thread\n\tsizes, the rights of people to have their own standards,\n\tand the non-right of the gov. to regulate screw-threads...]\n\nWell, as funny as your little comment may seem, it has very little to\ndo with your personal privacy as a citizen, and about the governemnt\nbeing able to look at everything you have ever typed into a computer\nat one point or another.\n\nThis \"Clipper Chip\" stuff is the seeds for nightmares to make the \nNightmare on Elmstreet cheese-on-celluloid movies look like episodes\nof Mr. Roger's Neighborhood.\n\nIF the gov establishes a cryptography standard that has to be used by\neveryone, and everyone's personal key is divided into two segments\nand stored at two separate, albeit easy to find places, and that key is\nonly 80 bits to begin with, we are screwed (pardon the allusion to the \naffore-mentioned article)!\n\nthe gov, I believe, as do many others probably already have the cracking chips\nfor this Clipper Chip made.  Hell, they probably based the encoder on the \nchip that cracks it, that way it's easier to break the code, but since it is a \nclassified algorythm, no one knows that they can crack it so easily.\n\nI, for one, and quite scared of this kind of thing, and plan to support \norganizations (and even disorganizations) who are fighting against this\nClipper Chip in any way that I can.\n\nI do not want the government to be able to have access, even with a search\nwarrant, to my keys... and I don't want those keys to be only 80 bits long\nto begin with!\n\n-nate sammons\n\no---------------------------+======================================o\n| \"I hate quotations.       |     This message brought you by      |\n|   Tell me what you know.\" |   Nate Sammons, and the number 42.   |\n|    --Ralph Waldo Emerson  |  ns111310@longs.lance.colostate.edu  |\no---------------------------+======================================o\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8650, "properties": {"category": "sci.med", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: Re: Is MSG sensitivity superstition?\nNntp-Posting-Host: wind.bellcore.com\nReply-To: jchen@ctt.bellcore.com\nOrganization: Bell Communications Research\nLines: 61\n\nIn article <1qmlgaINNjab@hp-col.col.hp.com>, cab@col.hp.com (Chris Best) writes:\n|> \n|> Jason Chen writes:\n|> > Now here is a new one: vomiting. My guess is that MSG becomes the number one\n|> > suspect of any problem. In this case. it might be just food poisoning. But\n|> > if you heard things about MSG, you may think it must be it.\n|> \n|> ----------\n|> \n|> Yeah, it might, if you only read the part you quoted.  You somehow left \n|> out the part about \"we all ate the same thing.\"  Changes things a bit, eh?\n\nFood poisoning is only one of the many possible causes. Yes, even other people\nshare the food. \n|> \n|> You complain that people blame MSG automatically, since it's an unknown and\n|> therefore must be the cause.  It is equally (if not more) unreasonable to\n|> defend it, automatically assuming that it CAN'T be the culprit.\n\nBoy, you computer people only know 1s and 0s, but not much about logic. :-)\n\nNo. I did not said MSG was not the culprit. What I argued was that that\nthere was enough reasonable doubt to convict MSG.  \n\nIf you want to convict MSG, show me the evidence, not quilty by suspicion.\n\n|> Pepper makes me sneeze.  If it doesn't affect you the same way, fine.\n|> Just don't tell me I'm wrong for saying so.\n\nNobody is forcing you to change what you believe.  But I certainly don't\nwant to see somebody preach to ban pepper because that makes him/her\nsneeze. That is exactly what some anti-MSG activitiests are doing\n\n|> These people aren't condemning Chinese food, Mr. Chen - just one of its \n|> (optional) ingredients.  Try not to take it so personally.\n\nLook, people with a last Chen don't necessarily own a Chinese restaurant.\nI am not interested if you enjoy Chinese food or not. Exploiting my last\nname to discredit me on the issue is hitting below the belt.\n\nWhat I am interested in is the truth. Let me give you an excert from\na recent FDA hearing:\n\n           ``There is no evidence orally consumed glutamate has any effect\non the brain,'' said Dr. Richard Wurtman of Massachusetts Institute\nof Technology. The anecdotal experiences of individuals is\n``superstition, not science,'' he said. ``I don't think glutamate\nhas made them sick.''\n\nAnd Dr. Robert Kenney of George Washington University conducted an double\nblind test in 1980 showing that the 35 people who reacted to MSG also\nhad similar reaction when they thought they had MSG but actually not.\n\nAlthough there are many contradicting personal stories told in this group,\nsome of them might have been due to other causes. But because the anti MSG\nemotion runs so high, that some blame it for anything and everything. \n\nMy purpose is to present a balance view on the issue, although I am probably\n20-1 outnumbered.\n\nJason Chen\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8651, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: \"Mohammad Al-Ansari\" <alansari@mango.ucs.indiana.edu>\nSubject: Re: 17\" Monitors\nOrganization: Indiana University Computer Science, Bloomington\nLines: 30\n\nIn article <1993Apr10.082253.19597@uxmail.ust.hk> cs_ngfo@uxmail.ust.hk (Forrest Normandy) writes:\n>I want to buy a 17\" monitor, any comment on Nanno T560i, NEC 5FG,\n>SII 17\" ???\n>\n>Thanks a lot.\n>\n>--\n>________________________________________________________________________\n> Forrest Normandy                 |     The Hong Kong University of\n> Internet : cs_ngfo@stu.ust.hk    |       Science and Technology\n> E-mail   : cs_ngfo@uxmail.ust.hk |    Department of Computer Science\n> Phone    : (852) 358-8631 Rm 608 |------------------------------------\n> Paging   : 1128635 a/c 4860      | Rm 608, UG Hall 4, HKUST, Hong Kong\n>------------------------------------------------------------------------\n\n\nWindows Sources Magazine reviewed a number of 17\" monitors recently\nand they too said that the Nanao T560i was the best monitor to get if\nyou had the money. But they also said that the Mitsubishi Diamond Pro\n17 is the next best choice and that it has superb picture quality.\nThis monitor can be had for around $1070.\n\nHas anyone actually seen any of these? I am also thinking of buying a\n17\" monitor and was going to consider the Mitsubishi. If I remember\ncorrectly, I think its viewing area is 16\" measured diagonally.\n\nThanks.\n\n--\nMohammad Al-Ansari\t\t\talansari@cs.indiana.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8652, "properties": {"category": "alt.atheism", "text": "From: L.Newnham@bradford.ac.uk (Leonard Newnham)\nSubject: Re: Islam And Scientific Predictions (was\nOrganization: University of Bradford, UK\nLines: 54\nX-Newsreader: TIN [version 1.1 PL9]\n\nUmar Khan (khan@itd.itd.nrl.navy.mil) wrote:\n>I strongly suggest that you look up a book called THE BIBLE, THE QURAN, AND\n>SCIENCE by Maurice Baucaille, a French surgeon.  It is not comprehensive,\n\n>  He was unable\n>to find a wealth of scientific statements in the Holy Qur'an, but,\n>what he did find made sense with modern understanding.  So, he\n>investigated the Traditions (the hadith) to see what they had to\n>say about science.  they were filled with science problems; after\n>all, they were contemporary narratives from a time which had, by\n>pour standards, a primitive world view.  His conclusion was that,\n>while he was impressed that what little the Holy Qur'an had to\n>say about science was accurate, he was far more impressed that the\n>Holy Qur'an did not contain the same rampant errors evidenced in\n>the Traditions.  How would a man of 7th Century Arabia have known\n>what *not to include* in the Holy Qur'an (assuming he had authored\n>it)?  \n\nThis book is worth a read to get a sensible view of this issue.\n\n\nThe book is in two sections.  Section 1 contains a fairly reasonable\nanalysis of the Bible, showing many inconsistencies between the Bible\nand modern science.  Well we all know that, no surprises.\n\nSection 2 analyses the Koran's version of the Old Testament stories,\nand seems, on the face of it, to present a good case showing the Koran\nis consistent with modern science.  However, it was plain to me, that\nthis consistency was only possible by the vague phraseology of the\nKoran.  Take the flood, for example, the bible is full of detail,\n(\"forty days and forty nights\", \"pair of every animal\", etc.), we all\nknow this is nonsense.  The Koran's description of the same event is\nso obscure as to make possible an interpretation such as \"A big river \nflooded for a few days and caused much damage\".  Yes, no contradiction\nbut also not much fact.\n\nThe Koran might be consistent with modern science, but being\nconsistent due to its vagueness compared with other books of that\ntime, does not seem much of an achievement.\n\nThe book concludes by saying something like, the Koran must have had\ndivine inspiration because at the time it was written there were a lot\nof (to us now) ridiculous ideas about the universe, and none of them\ncan be found in the Koran!  Arguing for the greatness of a book by\ntalking about what it does not contain seems absurd in the extreme.\n\nThe above is, of course, from memory so I may have missed some points.\n\n\n\n-- \n\nLeonard               e-mail:  L.Newnham@bradford.ac.uk\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8653, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: vestman@cs.umu.se (Peter Vestman)\nSubject: 768x1024 Trident Driver Wanted!\nKeywords: Trident Driver\nOrganization: Dep. of Info.Proc, Umea Univ., Sweden\nLines: 12\n\nIs there a 768x1024 Trident driver for windows anywere.  \nThis mode is supported by the drivers fo OS/2 but I have\nnot been able to find it for Windows.\n\n(768x1024 means 768 wide and 1024 high as opposed to 1024x768)\n\nAny help is appreciated.\n\n---------------------------------\nPeter Vestman\nDep of Computing Science\nUniversity of Umea, Sweden\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8654, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Arthur.Greene@p6.f204.n2603.z1.fidonet.org (Arthur Greene)\nSubject: SIMM vs DRAM\nOrganization: FidoNet node 1:2603/204.6 - Not Even Odd, Forest Hills NY\nLines: 9\n\nCan anyone tell me what the difference is between a 256K DRAM chip and a\n256K SIMM? I need the former (I think) to add memory to my Laserwriter\nLS. Someone is offering to sell me 256K SIMMS he removed from an SE, but\nI have a feeling this may not be the correct form of memory. The sockets\nin the Laserwriter look like they want the spidery-shaped chips (there\nare 4 sockets, each with, as I recall, 20 pins, arranged in two rows of 10). Believe it or not, I've never actually seen a SIMM. Help appreciated.\n--  \n=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n Arthur Greene - Internet: Arthur.Greene@p6.f204.n2603.z1.fidonet.org\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8655, "properties": {"category": "sci.electronics", "text": "From: ianchan@leland.Stanford.EDU (Ian Hin Yun Chan)\nSubject: Need help on...\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 24\n\nI need help on 4 components:\n\nBAT85 diode\n-----------\nI know Digi-key or Newark sells them, but the minimum order is 25!\nDoes anyone know where I can get smaller orders of this diode, or\nan equivalent replacement?\n\nBC546B transistor\n-----------------\nDitto for this transistor.\n\n74HC239 chip\n------------\nDigi-key, Newark and Mouser do not appear to carry ths chip - does anyone\nknow what this does and where I can obtain it?\n\nYM3623B chip\n------------\nThis Yamaha chip decodes S/PDIF data (from CD or DAT). Where can I obtain\none of these?\n\nThanks in advance,\n- Ian\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8656, "properties": {"category": "sci.crypt", "text": "From: schneier@chinet.chi.il.us (Bruce Schneier)\nSubject: ISSA '93 Conference\nOrganization: Chinet - Public Access UNIX\nDistribution: usa\nLines: 4\n\nIf there is anyone attending the ISSA conference in Arlington, VA next\nweek, I would appreciate them getting in touch with me.\n\nBruce\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8657, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: Re: Pleasant Yankee Surprises\nOrganization: Allegheny College\n\nIn article <1993Apr15.231903.4045@cs.cornell.edu> tedward@cs.cornell.edu  \n(Edward [Ted] Fischer) writes:\n> In article <1993Apr15.200629.7200@alleg.edu> luriem@alleg.edu(Michael  \nLurie) The Liberalizer writes:\n> >\n> >     Actually, I kind of liked the Abott trade. We did trade the rookie  \nof  \n> >the year, SNOW, but with Don mattingly at first for another 8 years,  \nWhy  \n> >bother.\n> \n> I'd be willing to make two wagers:\n> 1) Snow doesn't win ROY.\n> 2) Mattingly is out of baseball within five years.\n> \n\n\n\nNo, You are quite correct, but I was using some wishful thinking.\nJT snow was wasting away, while Abbott can provide a great resourse for  \nthe team.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8658, "properties": {"category": "sci.space", "text": "Subject: Space FAQ 02/15 - Network Resources\nFrom: leech@cs.unc.edu (Jon Leech)\nExpires: 6 May 1993 19:54:26 GMT\nOrganization: University of North Carolina, Chapel Hill\nKeywords: Frequently Asked Questions\nSupersedes: <net_730956391@cs.unc.edu>\nNNTP-Posting-Host: mahler.cs.unc.edu\nLines: 241\n\nArchive-name: space/net\nLast-modified: $Date: 93/04/01 14:39:15 $\n\nNETWORK RESOURCES\n\nOVERVIEW\n\n    You may be reading this document on any one of an amazing variety of\n    computers, so much of the material below may not apply to you. In\n    general, however, systems connected to 'the net' fall in one of three\n    categories: Internet, Usenet, or BITNET. Electronic mail may be sent\n    between these networks, and other resources available on one of these\n    networks are sometimes accessible from other networks by email sent to\n    special 'servers'.\n\n    The space and astronomy discussion groups actually are composed of\n    several mechanisms with (mostly) transparent connections between them.\n\n    One mechanism is the mailing list, in which mail is sent to a central\n    distribution point which relays it to all recipients of the list. In\n    addition to the general lists for space (called SPACE Digest for\n    Internet users, and SPACE on BITNET), there are a number of more\n    specialized mailing lists described below.\n\n    A second mechanism is Usenet 'netnews'. This is somewhat like a bulletin\n    board operating on each system which is a part of the net. Netnews\n    separates contributions into hundreds of different categories based on a\n    'group name'. The groups dealing most closely with space topics are\n    called 'sci.space.news', 'sci.space', 'sci.space.shuttle', 'sci.astro',\n    and 'talk.politics.space'. Contributors 'post' submissions (called\n    'articles' in netnews terminology) on their local machine, which sends\n    it to other nearby machines. Similarly, articles sent from nearby\n    machines are stored locally and may be forwarded to other systems, so\n    that an article is posted locally and eventually reaches all the Usenet\n    sites interested in receiving the news group to which the article was\n    posted.\n\n    Gateway machines redirect the Usenet sci.space group into Internet and\n    BITNET mailing lists and vice versa; the other Usenet groups are not\n    accessible as mailing lists. If you can receive netnews, its more\n    flexible interface and access to a wider range of material usually make\n    it the preferred option.\n\nMAILING LISTS\n\n    SPACE Digest is the main Internet list, and is now being run by the\n    International Space University (in only its second change of management\n    in over a decade). Email space-request@isu.isunet.edu (message body\n    should be in the format 'subscribe space John Public') to join. Note\n    that the moderated SPACE Magazine list is defunct at present for lack of\n    a moderator. Old copies of SPACE Digest since its inception in 1981 are\n    available by anonymous FTP. Retrieve\n\tjulius.cs.qub.ac.uk:pub/SpaceDigestArchive/README\n    for further details.\n\n    Elements is a moderated list for fast distribution of Space Shuttle\n    Keplerian Elements before and during Shuttle flights. NASA two line\n    elements are sent out on the list from Dr. Kelso, JSC, and other sources\n    as they are released. Email to elements-request@telesoft.com to join.\n\n    GPS Digest is a moderated list for discussion of the Global Positioning\n    System and other satellite navigation positioning systems. Email to\n    gps-request@esseye.si.com to join.\n\n    Space-investors is a list for information relevant to investing in\n    space-related companies. Email Vincent Cate (vac@cs.cmu.edu) to join.\n\n    Space-tech is a list for more technical discussion of space topics;\n    discussion has included esoteric propulsion technologies, asteroid\n    capture, starflight, orbital debris removal, etc. Email to\n    space-tech-request@cs.cmu.edu to join. Archives of old digests and\n    selected excerpts are available by anonymous FTP from\n    gs80.sp.cs.cmu.edu (128.2.205.90) in /usr/anon/public/space-tech,\n    or by email to space-tech-request if you don't have FTP access.\n\n    SEDS-L is a BITNET list for members of Students for the Exploration and\n    Development of Space and other interested parties. Email\n    LISTSERV@TAMVM1.BITNET with a message saying \"SUBSCRIBE SEDS-L your\n    name\". Email saying \"INDEX SEDS-L\" to list the archive contents.\n\n    SEDSNEWS is a BITNET list for news items, press releases, shuttle status\n    reports, and the like. This duplicates material which is also found in\n    Space Digest, sci.space, sci.space.shuttle, and sci.astro. Email\n    LISTSERV@TAMVM1.BITNET saying \"SUBSCRIBE SEDSNEWS your name\" to join.\n    Email saying \"INDEX SEDSNEWS\" to list the archive contents.\n\n    Ron Baalke (baalke@kelvin.jpl.nasa.gov) runs a mailing list which\n    carries the contents of the sci.space.news Usenet group. Email him\n    to join the list.\n\n    As a general note, please mail to the *request* address to get off a\n    mailing list. SPACE Digest, for example, relays many inappropriate\n    'please remove me from this list' messages which are sent to the list\n    address rather than the request address.\n\nPERIODICALLY UPDATED INFORMATION\n\n    In addition to this FAQ list, a broad variety of topical information is\n    posted to the net (unless otherwise noted, in the new group\n    sci.space.news created for this purpose). Please remember that the\n    individuals posting this information are performing a service for all\n    net readers, and don't take up their time with frivolous requests.\n\n    ACRONYMS\n\tGarrett Wollman (wollman@UVM.EDU) posts an acronym list around the\n\tfirst of each month.\n\n    ASTRO-FTP LIST\n\tVeikko Makela (veikko.makela@helsinki.fi) posts a monthly list of\n\tanonymous FTP servers containing astronomy and space related\n\tmaterial to sci.space and sci.astro.\n\n    AVIATION WEEK\n\tHenry Spencer (henry@zoo.toronto.edu) posts summaries of\n\tspace-related stories in the weekly _Aviation Week and Space\n\tTechnology_.\n\n    BUYING TELESCOPES\n\tRonnie Kon (ronnie@cisco.com) posts a guide to buying telescopes to\n\tsci.astro.\n\n    ELECTRONIC JOURNAL OF THE ASA\n\tDon Barry (don@chara.gsu.edu) posts the monthly Electronic Journal\n\tof the Astronomical Society of the Atlantic to sci.astro.\n\n    FLIGHT INTERNATIONAL\n\tSwaraj Jeyasingh (sjeyasin@axion.bt.co.uk) posts summaries of\n\tspace-related news from _Flight International_. This focuses more on\n\tnon-US space activities than Aviation Week.\n\n    LARGE ASTRONOMICAL PROJECTS\n\tRobert Bunge (rbunge@access.digex.com) posts a list describing many\n\t\"Large Telescope Projects Either Being Considered or in the Works\"\n\tto sci.astro.\n\n    NASA HEADLINE NEWS & SHUTTLE REPORTS\n\tPeter Yee (yee@ames.arc.nasa.gov) posts a variety of NASA material,\n\tincluding NASA Headline News (with the schedule for NASA SELECT),\n\tshuttle payload briefings and flight manifests, and KSC shuttle\n\tstatus reports. For Usenet users, much of this material appears in\n\tthe group sci.space.shuttle.\n\n    NASA UPDATES\n\tRon Baalke (baalke@kelvin.jpl.nasa.gov) posts frequent updates from\n\tJPL, Ames, and other centers on the Ulysses, Gailileo, Pioneer,\n\tMagellan, Landsat, and other missions.\n\n    ORBITAL ELEMENT SETS\n\tTS Kelso (tkelso@blackbird.afit.af.mil) posts orbital elements from\n\tNASA Prediction Bulletins.\n\n\tMike Rose (mrose@stsci.edu) posts orbital elements for the Hubble\n\tSpace Telescope to sci.astro.\n\n\tJost Jahn (j.jahn@abbs.hanse.de) posts ephemerides for asteroids,\n\tcomets, conjunctions, and encounters to sci.astro.\n\n    SATELLITE LAUNCHES\n\tRichard Langley (lang@unb.ca) posts SPACEWARN Bulletin, which\n\tdescribes recent launch/orbital decay information and satellites\n\twhich are useful for scientific activities. Recent bulletins are\n\tavailable by anonymous FTP from nssdca.gsfc.nasa.gov in\n\tANON_DIR:[000000.ACTIVE.SPX].\n\n    SHUTTLE MANIFEST\n\tKen Hollis (gandalf@pro-electric.cts.com) posts a compressed version\n\tof the Space Shuttle launch manifest to sci.space.shuttle. This\n\tincludes dates, times, payloads, and information on how to see\n\tlaunches and landings.\n\n    SOLAR ACTIVITY\n\tCary Oler (oler@hg.uleth.ca) posts Solar Terrestrial reports\n\t(describing solar activity and its effect on the Earth) to\n\tsci.space. The report is issued in part from data released by the\n\tSpace Enviroment Services Center, Boulder Colorado. The intro\n\tdocument needed to understand these reports is available by\n\tanonymous FTP from solar.stanford.edu (36.10.0.4) in\n\tpub/understanding_solar_terrestrial_reports. nic.funet.fi\n\t(128.214.6.100) also has this document in\n\t/pub/misc/rec.radio.shortwave/solarreports and is an archive site\n\tfor the reports (please note this site is in Europe, and the\n\tconnection to the US is only 56KB). A new primary archive site,\n\txi.uleth.ca (142.66.3.29), has recently been established and will be\n\tactively supported.\n\n    SOVIET SPACE ACTIVITIES\n\tGlenn Chapman (glennc@cs.sfu.ca) posts summaries of Soviet space\n\tactivities.\n\n    SPACE ACTIVIST NEWSLETTER\n\tAllen Sherzer (aws@iti.org) posts a newsletter, \"One Small Step for\n\ta Space Activist,\" to talk.politics.space. It describes current\n\tlegislative activity affecting NASA and commercial space activities.\n\n    SPACE EVENTS CALENDAR\n\tRon Baalke (baalke@kelvin.jpl.nasa.gov) posts a calendar including\n\tanniversaries, conferences, launch dates, meteor showers and\n\teclipses, and other space-related events.\n\n    SPACE NEWS\n\tJohn Magliacane (kd2bd@ka2qhd.UUCP) posts \"SpaceNews\" (covering\n\tAMSATs, NOAA and other weather satellites, and other ham\n\tinformation) to rec.radio.amateur.misc and sci.space.\n\n    SPACE REPORT\n\tJonathan McDowell (mcdowell@cfa.harvard.edu) posts \"Jonathan's Space\n\tReport\" covering launches, landings, reentries, status reports,\n\tsatellite activities, etc.\n\n    TOWARD 2001\n\tBev Freed (freed@nss.fidonet.org) posts \"Toward 2001\", a weekly\n\tglobal news summary reprinted from _Space Calendar_ magazine.\n\n\nWARNING ABOUT NON-PUBLIC NETWORKS\n\n    (Included at the suggestion of Eugene Miya, who wrote the item)\n\n    NASA has an internal system of unclassified electronic mail and bulletin\n    boards. This system is not open for public use. Specifically, NASA\n    personnel and procurement operations are regarded with some sensitivity.\n    Contractors must renegotiate their contracts. The Fair and Open\n    Procurement Act does not look kindly to those having inside information.\n    Contractors and outsiders caught using this type of information can\n    expect severe penalities. Unauthorized access attempts may subject you\n    to a fine and/or imprisonment in accordance with Title 18, USC, Section\n    1030. If in fact you should should learn of unauthorized access, contact\n    NASA personnel.\n\n    Claims have been made on this news group about fraud and waste. None\n    have ever been substantiated to any significant degree. Readers\n    detecting Fraud, Waste, Abuse, or Mismanagement should contact the NASA\n    Inspector General (24-hours) at 800-424-9183 (can be anonymous) or write\n\n\tNASA\n\tInspector General\n\tP.O. Box 23089\n\tL'enfant Plaza Station\n\tWashington DC 20024\n\nNEXT: FAQ #3/15 - Online (and some offline) sources of images, data, etc.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8659, "properties": {"category": "talk.politics.misc", "text": "From: kaldis@romulus.rutgers.edu (Theodore A. Kaldis)\nSubject: Re: How many homosexuals are there?\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 6\n\n_TOO_ many.\n-- \n  The views expressed herein are   |  Theodore A. Kaldis\n  my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n  believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n  as this would hold such views??? |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8660, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: charles@trintex.uucp (Charles Emmons)\nSubject: Version control for MAC and PC LAN\nOrganization: Prodigy Services Co.\nLines: 28\n\nWe have a LAN where we are doing development on product for multiple platforms. \nFor the moment we are only working on MAC and DOS/Windows. The department has   \nalways used sneaker net to transport files to the MAC, since it requires a      \nfilter to strip out the <LF> characters.                                        \n\nUntil recently no one concidered using any version control to mediate, and as   \na result, the 5 programmers spent a great deal of time merging files together   \nat the end of each week so that a new system could be build. We are now trying  \nto streamline this process, but are hampered by the lack of software that will  \nallow us to share files across PC and MAC platforms.                            \n\nI understand that PVCS used to do this, but that they no longer support the MAC \nproduct (anyone know why ??  Polytron ?).                                       \n\nI have seen people ask about development in multiple platforms, so I assume that\nours is not a new problem.  Who has had to deal with it ?  What solutions have  \nyou come up with?                                                               \n\nthanks in advance for any and all suggestions via posting or EMAIL. If there are\nenough EMAIL responses then I will post a synopsis of the knowledge.            \n\n-Charles Emmons                                                                 \n\n-- \n Charles Emmons        | charles@trintex.uucp         | These opinions are\n Prodigy Services Co.  | charles%trintex@uunet.uu.net | mine alone, unless\n White Plains NY 10601 | Voice 914-993-8856           | you would like to\n PRODIGY ID - KJRD82A  | FAX   914-993-8659           | share them.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8661, "properties": {"category": "comp.windows.x", "text": "From: ai900@yfn.ysu.edu (Joshua P. Weage)\nSubject: X for PC\nOrganization: Youngstown State/Youngstown Free-Net\nLines: 18\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nI have heard of two packages for the PC that support X-Win.\nThe first is Linux which is a free Unix Package.  The Second\nis X-Appeal, which sounds pretty good.  It can be found at\n garbo.uwusa.fi in the ~ftp/pc/demo/ dir.  The files are\n\n\txap13exe.zip\n\txap10fon.zip\n\tdrivers.zip\n\nThis should get you started.\n\nJosh.\n-- \n+  Joshua Weage : U.S. Snail - 277 Spring Rd, Baroda, MI  49101 +\n+  E-Mail: cs890@freenet-in-a.cwru.edu |  ai900@yfn.ysu.edu     +\n+   Fidonet:  Joshua Weage @ 1:2340/130                         +\n+  All ideas are my own and no one elses!!                      +\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8662, "properties": {"category": "comp.graphics", "text": "From: srlnjal@grace.cri.nz\nSubject: CorelDraw BITMAP to SCODAL (2)\nOrganization: Industrial Research Ltd., New Zealand.\nLines: 22\nNNTP-Posting-Host: grv.grace.cri.nz\n\n\nYes I am aware CorelDraw exports in SCODAL.\nVersion 2 did it quite well, apart from a\nfew hassles with radial fills. Version 3 RevB\nis better but if you try to export in SCODAL\nwith a bitmap image included in the drawing\nit will say something like \"cannot export\nSCODAL with bitmap\"- at least it does on my\nversion.\n If anyone out there knows a way around this\nI am all ears.\n Temporal images make a product called Filmpak\nwhich converts Autocad plots to SCODAL, postscript\nto SCODAL and now GIF to SCODAL but it costs $650\nand I was just wondering if there was anything out\nthere that just did the bitmap to SCODAL part a tad\ncheaper.\n\nJeff Lyall\nInst.Geo.&.Nuc.Sci.Ltd\nLower Hutt New Zealand\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8663, "properties": {"category": "alt.atheism", "text": "From: chrisb@seachg.com (Chris Blask)\nSubject: Re: A silly question on x-tianity\nReply-To: chrisb@seachg.com (Chris Blask)\nOrganization: Sea Change Corporation, Mississauga, Ontario, Canada\nLines: 44\n\nwerdna@cco.caltech.edu (Andrew Tong) writes:\n>mccullou@snake2.cs.wisc.edu (Mark McCullough) writes:\n>\n>>Question 2: This attitude god character seems awfully egotistical\n>>and proud.  But Christianity tells people to be humble.  What's the deal?\n>\n>Well, God pretty much has a right to be \"egotistical and proud.\"  I\n>mean, he created _you_, doesn't he have the right to be proud of such\n>a job?\n>\n>Of course, people don't have much of a right to be proud.  What have\n>they accomplished that can match God's accomplishments, anyways?  How\n>do their abilities compare with those of God's.  We're an \"imbecile\n>worm of the earth,\" to quote Pascal.\n\nGrumblegrumble...   \n\n>If you were God, and you created a universe, wouldn't you be just a\n>little irked if some self-organizing cell globules on a tiny planet\n>started thinking they were as great and awesome as you?\n\nunfortunately the logic falls apart quick: all-perfect > insulted or\nthreatened by the actions of a lesser creature > actually by offspring >\n???????????????????\n\nHow/why shuold any all-powerful all-perfect feel either proud or offended?\nAnything capable of being aware of the relationship of every aspect of every \nparticle in the universe during every moment of time simultaneously should\nbe able to understand the cause of every action of every 'cell globule' on\neach tniy planet...\n\n>Well, actually, now that I think of it, it seems kinda odd that God\n>would care at all about the Earth.  OK, so it was a bad example. But\n>the amazing fact is that He does care, apparently, and that he was\n>willing to make some grand sacrifices to ensure our happiness.\n\n\"All-powerful, Owner Of Everything in the Universe Makes Great Sacrifices\"\nmakes a great headline but it doesn't make any sense.  What did he\nsacrifice?  Where did it go that he couldn't get it back?  If he gave\nsomething up, who'd he give it up to?\n\n-chris\n\n[you guys have fun, I'm agoin' to Key West!!]\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8664, "properties": {"category": "misc.forsale", "text": "Subject: CD's For Sale\nFrom: mparikh@uceng.uc.edu (Mehul Parikh)\nDistribution: usa\nOrganization: University of Cincinnati\nLines: 19\n\nHi!\n\nI have the following 2 CD's for sale. These are absolutely new and in\nthe original packing.\n\nArtist\t\tAlbum\t\t\t\tOriginal\tSale\n\t\t\t\t\t\t Price\t\t Price\n\nMadonna\t\tThe Immaculate Collection \t$19.95+\t\t$11.95\n\nPet Shop Boys\tDiscography\t\t\t$19.95\t\t$11.95\n\nIf you are interested, pls. contact me at:\n\n\t\t\tparikhma@ucunix.san.uc.edu\n\nThanks.\n\n-M. Parikh\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8665, "properties": {"category": "sci.electronics", "text": "From: tomb@hplsla.hp.com (Tom Bruhns)\nSubject: Re: Trace size for a 15 Amp supply\nOrganization: HP Lake Stevens, WA\nLines: 34\n\nacollins@uclink.berkeley.edu (Andy Collins) writes:\n\n>How thick do I need to make a PCB trace for 15 Amps of current? and\n>Does anybody have any other thoughts on the process (what kind of PCB\n>to use, materials, thickness of copper, any advice graciously accepted)?\n\nIn four replies, I've seen no hard numbers, so here goes:  For traces\non the outside (not inner layers), expect, in 1 oz copper, at 15 amps,\nthe following temperature rises versus width.  This is from Sams'\n\"Reference Data for Engineers,\" seventh edition, Pg 5-30, which claims\nin turn to be from MIL-STD-275C...\n\n    width   Temp rise\n    inches  degrees C\n    ------  ---------\n     .125\t100\n     .15\t 75\n     .17\t 60\n     .20\t 45\n     .24\t 30\n     .33\t 20\n\nAt 10 amps, the rise for the .125 width is only about 30 degrees.\nPower goes as square of the current, plus the copper resistance goes\nup as temperature goes up...  Certainly .20\" (~5mm) traces should be \nample for what you want to do.  And 2 ounce copper almost cuts the \nrequired width in half.  (I'd do 2 oz at about 0.08\" width myself, \nI think...given that the _rated_ current is 10 amps and the 15 is\na transient or fault condition.)\n\n(There's another question: will the voltage drop be low enough?\nBut you should be able to figure this one out with wire tables or\njust the resistivity of copper.  Keep traces short and use separate\nsensing traces where appropriate, as mentioned by another poster.)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8666, "properties": {"category": "rec.autos", "text": "From: cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc)\nSubject: Re: Dumbest automotive concepts of all time\nArticle-I.D.: news.C5JnK3.JKt\nOrganization: University of Illinois at Urbana\nLines: 39\n\nparr@acs.ucalgary.ca (Charles Parr) writes:\n\n>In article <1327@qa1.WichitaKS.NCR.COM> jhart@qa1.WichitaKS.NCR.COM (Jim Hart) writes:\n>>In article <1993Mar29.161044.1@uncavx.unca.edu> bwillard@uncavx.unca.edu\n>>writes:\n>>>My TOP 10 list of dumbest automotive concepts ever\n>>>\n>>>10. 1984 Dodge Colt Vista - tachometer only avail. with automatic trans.\n>>>9. Back-up lights on Corvette - they're on the sides of the car!\n>>              ^^^^^^^^^^^^^^^^^^^            ^^^^^^^^^^^^^\n>>Sure would be interested to know what year(s) this was!\n>>I don't seem to recall ANY car with back-up lights on the sides, much\n>>less any Corvette.  I suppose I could be mis-interpreting what you are\n>>trying to say here.....\n\n>Just a quick comment. Backup lights mounted on the side\n>would actually be *extremely* useful for people backing out of\n>parking stalls...\n\n>Regards, Charles\n>-- \n>Within the span of the last few weeks I have heard elements of\n>separate threads which, in that they have been conjoined in time,\n>struck together to form a new chord within my hollow and echoing\n>gourd. --Unknown net.person\n\n\tWasn't the original intent of the reverse lights for the driver, so he\ncould see where he was backing up???  Although reverse lights on the sides\nare useful for telling whether cars are backing up out perpendicular to the\npath of the car, I don't think warnings were their original intents, since they\nare colored white.\n\n\n\n-- \nChintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n******************************Neil Peart, (c)1981*****************************\n*\"Quick to judge, Quick to Anger, Slow to understand, Ignorance and Prejudice*\n*And********Fear********Walk********************Hand*********in*********Hand\"*\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8667, "properties": {"category": "soc.religion.christian", "text": "From: sun075!Gerry.Palo@uunet.uu.net (Gerry Palo)\nSubject: Re: Christianity and repeated lives\nLines: 84\n\nIn article <May.5.02.52.15.1993.28800@athos.rutgers.edu> JEK@cu.nih.gov writes:\n>Gerry Palo writes:\n>\n> > ...there is nothing in Christianity that precludes the idea of\n> > repeated lives on earth.\n>\n>The Apostle Paul (Romans 9:11) points out that God chose Jacob\n>rather than Esau to be the ancestor of the Covenant People and\n>ultimately of the Messiah, and that He made this choice while the\n>two boys were still in their mother's womb, and therefore could not\n>possibly have done anything good or evil to deserve their appointed\n>destinies. If we admit the possibility that they had lived previous\n>lives, and that (in accordance with the Asiatic idea of \"karma\")\n>their present lives are a reward or punishment for past behaviour,\n>this makes nonsense of Paul's whole point.\n>\n\nThe existence of repeated earth lives and destiny (karma) does not\nmean that everything that happens is predetermined by past deeds.\nThere is an oriental view of it that tends in that direction, but I\ndid not subscribe to that view.  God may choose one individual over\nanother as the fit instrument for his plans, but that does not\npreclude that the development of that individual into what he is in\nthis earthly life is not the result of a longer course of development.\n\nI do not, and Rudolf Steiner did not, subscribe to the oriental view\nof an inexorable, mechanistic karma determining everything that\nbefalls one.  This is a kind of shriveled caricature of a much greater\nlaw in the context of which the deed of Christ on Golgotha and the\nultimate salvation and freedom of the human being as a working of\nChrist can be seen as the master theme and, indeed, a new impulse that\nwas completely free of karma.  Christ incarnated only once in the\nflesh, and in that he had no debt of karma or sin.  The oriental\nconcepts of reincarnation and karma, which are even more trivialized\nand mechanized in some new age teachings, incorrectly assume Jesus\nChrist to have been the reincarnation of a master.  avatar, etc.\nTheir teaching of reincarnation and karma also has no concept the\ncontinuing individuality from one life to the next (e.g. Buddhism).\nMore important, they have no concept of the resurrection of the body,\nthe ultimate continuity of the whole human being -- to ultimate\nresurrection and judgement on the Last Day.\n\nThere is another biblical passage that also has a bearing. It is the\ntenth chapter of John, devoted almost entirely to the man born blind.\nClearly here, Jesus tells the disciples that it was not his past karma\nor that of his parents that led to his blindness, but rather that a\nnew impulse is to be revealed through him.  But note that he does not\nrefute the disciples' question.  In fact, they ask it as a matter of\ncourse, the question being stated as if it were self evident that only\none of two possibilities existed - it was either the sins of the man\nhimself, obviously not in this incarnation, or the sins of his\nparents.  The fact that they even asked about the first possibility at\nall indicates an awareness of the idea on their part and the form of\nChrist's answer indicates that he did not disagree with it.\n\nThere is also Matthew 11:14, where Jesus says straight out about John\nthe Baptist,\n\n   \"If you care to accept it, he himself is Elias, who was to come.\"\n\nThis also emphasizes that the Gospels do not have a positive teaching\neither way about reincarnation -- or, in fact, about what happens to\nthe human being at all between death and the Last Day.  Even Jesus did\nnot push this teaching on people who were not ready to embrace it (\"If\nyou care to accept it\").  So I took care to point out, not that the\nBible teaches reincarnation but that it does not deny it either, and\nthat much in both scripture and fundamental Christian doctrine becomes\nunderstandable if reincarnation is understood in the right way.  I\npointedly used \"repeated earth lives\" to distinguish a little from the\noriental doctrines usually associated with the word \"reincarnation\".\nThe phrase is Rudolf Steiner's (wiederholte Erdenleben).  He noted too\nthat the idea needed to arise as a new insight in the west, completely\nfree from eastern tradition.  It did in the eighteenth and nineteenth\ncenturies, the most important expression of it being Lessing's \"The\nEducation of the Human Race\".\n\nTo return to your original point, Paul's statement about Jacob and\nEsau does not contradict the idea of repeated earth lives and karma.\nAnd both of these principles receive their fulfillment in the\nincarnation, death, and resurrection, ascension and return of Jesus\nChrist, in my view.\n\nRegards, \nGerry Palo (73237.2006@compuserve.com)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8668, "properties": {"category": "sci.electronics", "text": "From: fishman@panix.com (Harvey Fishman)\nSubject: Re: electronic parts in NYC?\nOrganization: PANIX Public Access Unix, NYC\nLines: 11\n\nThere are also a couple or three places on West 45th between Fifth and\nSixth.  \n\nHarvey\n\n\n-- \n----------------------------------------------------------------------------\n Harvey Fishman   | \nfishman@panix.com | You don't get smart except by asking stupid questions.\n  718-258-7276    |\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.411+0000", "event": "documents", "entityId": 8669, "properties": {"category": "rec.sport.baseball", "text": "From: kday@oasys.dt.navy.mil (Kevin Day)\nSubject: Re: Lots of runs\nReply-To: kday@oasys.dt.navy.mil (Kevin Day)\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 18\n\nIn rec.sport.baseball, CROSEN1@ua1vm.ua.edu (Charles Rosen) writes:\n>I have noticed that this year has had a lot of high scoring games (at least the\n>NL has).  I believe one reason are the expansion teams.  Any thoughts?\n>\n\n  Except for the fact that there seems to be a lot of high scoring AL\ngames also and I don't think the expansion teams directly affect them.\n\nK. Scott Day   (kday@oasys.dt.navy.mil)\nCarderock Division, Naval Surface Warfare Center\nCode 1252\nBethesda, Maryland 20084-5000\n\n------------------------------------------------------------------------\n*    \"The point to remember is that what the government gives       \n*     it must first take away.\"\n*                                        -John S. Coleman           \n------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8670, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Sparky Anderson Gets win #2000, Tigers beat A's\nFrom: tim@cs.cosc.georgetown.edu (Tim Snyder)\nDistribution: world\nOrganization: Georgetown University, Washington DC\nNntp-Posting-Host: cs.cosc.georgetown.edu\nLines: 33\n\nIn article <ragraca.734906386@vela.acs.oakland.edu> ragraca@vela.acs.oakland.edu (Randy A. Graca) writes:\n>Tigers' manager Sparky Anderson gets his 2,000th career win as moments ago,\n>the Tigers completed a two game sweep over the Oakland A's at Tiger Stadium\n>by beating the A's 3-2. Here are the highlights:\n>\t\t\t\tR    H   E    \n>             Oakland\t\t2    9   0\n>\t     Detroit            3    7   1\n>\n> [game description deleted]\n>\n>In the post game interview (on WJR radio in Detroit), Sparky Anderson said\n>its one of the few times he's gotten emotional in his managing career.  It\n>was a big moment for him, and I'm sure all of us Tiger fans are unanimously\n>very happy for him.  And what a way to get number 2,000!.\n>\n> [woofing deleted]\n>--Randy\n>\n\nIn another post-game interview, LaRussa claimed that Sparky was \"the\nbest manager in basebal,\" explaining that to be part of the history\nof Sparky softened the blow of losing.\n\nGo Tigers!!!\n Tim\n\n Timothy Law Snyder\n Department of Computer Science\n Reiss 225\n Georgetown University\n Washington, DC 20057\n\ntim@normal.georgetown.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8671, "properties": {"category": "talk.politics.misc", "text": "From: william@fractl.tn.cornell.edu\nSubject: Re: ABOLISH SELECTIVE SERVICE\nOrganization: Dept of TAM Cornell Univ. Ithaca, NY\nLines: 19\nReply-To: william@fractl.tn.cornell.edu\nNNTP-Posting-Host: fractl.tn.cornell.edu\n\nIn article <1993Apr15.215747.17331@m5.harvard.edu>, borden@head-cfa.harvard.edu (Dave Borden) writes:\n>The Selective Service Registration should be abolished.  To start with, the\n>draft is immoral.  Whether you agree with that or not, we don't have one now,\n>and military experts agree that the quality of the armed forces is superior\n>with a volunteer army than with draftees.  Finally, the government has us\n>on many lists in many computers (the IRS, Social Security Admistration and\n>Motor Vehicle Registries to name a few) and it can find us if it needs to.\n>Maintaining yet another list of people is an utter waste of money and time.\n>Let's axe this whole department, and reduce the deficit a little bit.\n>\n>\n>  - Dave Borden\n>    borden@m5.harvard.edu\n\n\nYou selfish little bastard. Afraid you might have to sacrafice somthing\nfor your country. What someone not approve a lone for you ? To bad.\nWhat is immoral is: people like you and the current president who don't\nhave any idea why this country still exists after 200+ years.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8672, "properties": {"category": "rec.autos", "text": "From: ae015@Freenet.carleton.ca (Steve Hui)\nSubject: Re: Instead of a Saturn SC2, What???\nOrganization: National Capital Freenet, Ottawa, Canada\nLines: 19\n\n\nOne thing that everyone is forgetting in this argument\nover the pricing of the SC1 vs. the Japanese cars is\nthe Saturns \"no-dicker sticker\".  This makes the Saturn's\nprice low in comparison to the inflated base prices of\nthe Japanese competition on paper, but in reality, one\ncould dicker several hundred dollars off the price of\nthe Japanese cars.\n\nAdmittedly, though, here in Canada, at least, the SC2 \nis in the same price class as the Civic Si, not the\nSC1.\n\nSteve Hui\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8673, "properties": {"category": "rec.autos", "text": "From: rjwade@rainbow.ecn.purdue.edu (Robert J. Wade)\nSubject: Re: Plymouth Sundance/Dodge Shadow experiences?\nOrganization: Purdue University Engineering Computer Network\nDistribution: usa\nLines: 10\n\nIn article <1qmq7tINN9l@tamsun.tamu.edu> dlb5404@tamuts.tamu.edu (Daryl Biberdorf) writes:\n>Another user recently requested info about the Shadow/Sundance\n>cars, but I haven't seen any public responses.\n>\n>What are people's experiences with these cars?\n>\n>Daryl\n>\nthey are pretty much junk, stay away from them.  they will be replaced next\nyear with all new models.  \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8674, "properties": {"category": "comp.windows.x", "text": "From: mike@hopper.Virginia.EDU (Michael Chapman)\nSubject: Compiling help\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 12\n\nI'd like to compile X11r5 on a Sony NWS-1750 running NEWS 4.1c.  The\nX distribution has support for this config, and the release notes say\nit has been tested on the machine.  BUT, also in the release notes,\nnothing from Sony is listed under the supported servers.  What am I\nsupposed to use for my r5 X server then?  How can the OS be supported,\nbut not the hardware? Is there something in the r4 binaries that can\nbe used as the r5 server? These may seem like silly questions, but\nI'm *really* confused.\n-- \nmike@hopper.acs.virginia.edu \n\n\"I will NOT raise taxes on the middle class.\" -Unknown\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8675, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kuehnel@rvs.uni-hannover.de (Stefan Kuehnel, SWL)\nSubject: Re: NT Questions\nReply-To: kuehnel@rvs.uni-hannover.de\nOrganization: RVS, Universitaet Hannover, Germany\nLines: 38\n\nIn article 5802@news.yale.edu, adriene_nazaretian@qm.yale.edu (Adriene Nazaretian) writes:\n> In article <1993Mar26.020427.29119@samba.oit.unc.edu>, tclark@med.unc.edu (Thomas B. Clark) says\n\n[...]\n\n> >2.  Is the driver support as seamless as program support?\n> >e.g., Will my Soundblaster, scanner, CD-Rom, tape backup\n> >continue to work even if there are no specific NT drivers?\n> >\n> There is a hardware compatibility guide to answer these questions.\n> There are many drivers for CD Rom and there are MIDI and other\n   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n> sound drivers installed, I dont do a lot with sound digitizing on this\n> platform, but recall seeing items for their configuration in the Control\n> Panel Applet.  There is built in support for tape backup systems as well.\n\n[...]\n\nMy Problem: I wasn't aware of the fact that I would need an *SCSI*-CD-ROM for\nWindows NT when ordering the Beta-SDK-Package. So my question: Is there any driver\navailable that will allow me to use my Mitsumi (Non-SCSI) CD-ROM for installation ?\nIf there is one, from which place (ftp-site) can I get it ?\n\nMany thanks in advance\n\n\tStefan Kuehnel\n---\n\n----------------------------------------------------------------------\n   /\\  Stefan K\"uhnel\n  |   \n  |/   kuehnel@rvs.uni-hannover.de   \n  |\\   kuehnel@swl.uni-hannover.de (neu ab. 17.04.1993)\n  |  \n\\/     Die oben wiedergegebene Meinung ist meine private und nicht die         \n       des RRZN, des LG RVS der UH oder einer anderen Institution.             \n----------------------------------------------------------------------\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8676, "properties": {"category": "sci.space", "text": "From: dietz@cs.rochester.edu (Paul Dietz)\nSubject: Commercial mining activities on the moon\nOrganization: University of Rochester\nLines: 38\n\nIn article <1993Apr20.152819.28186@ke4zv.uucp> gary@ke4zv.UUCP (Gary Coffman) writes:\n\n > be the site of major commercial activity. As far as we know it has no\n > materials we can't get cheaper right here on Earth or from asteroids\n > and comets, aside from the semi-mythic He3 that *might* be useful in low\n > grade fusion reactors.\n\nI don't know what a \"low grade\" fusion reactor is, but the major\nproblem with 3He (aside from the difficulty in making any fusion\nreactor work) is that its concentration in lunar regolith is just so\nsmall -- on the order of 5 ppb or so, on average (more in some\nfractions, but still very small).  Massive amounts of regolith would\nhave to be processed.\n\nThis thread reminds me of Wingo's claims some time ago about the moon\nas a source of titanium for use on earth.  As I recall, Wingo wasn't\ncontent with being assured that titanium (at .5% in the Earth's crust,\naverage) would not run out, and touted lunar mines, even though the\nmarket price of ilmenite concentrate these days is around $.06/pound.\nThis prompted me to look up large potential terrestrial sources.\n\nOn the moon, titanium occurs in basalts; \"high-Ti\" basalts (Apollo 11\nand 17) have 8-14% titanium dioxide (by weight).  This is nice, but...\nterrestrial continental flood basalts are also typically enriched in\ntitanium.  They very often have 3% TiO2, frequently have 4%, and\nsometimes even 5% TiO2 (again, by weight).  These flood basalts are\n*enormous* -- millions of cubic kilometers, scattered all over the\nworld (Siberia, Brazil, the NW United States, Ethiopia, etc.).  If\neven 1% of the basalts are 5% TiO2, this is trillions of tons of TiO2\nat concentrations only a factor of 2-3 less than in lunar high-Ti\nbasalts.  It is difficult to see how the disadvantages of the moon\ncould be overcome by such a small increase the concentration of the\nore (never mind the richer, but less common, terrestrial ores being\nmined today).\n\n\tPaul F. Dietz\n\tdietz@cs.rochester.edu\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8677, "properties": {"category": "rec.autos", "text": "From: sjp@hpuerca.atl.hp.com (Steve Phillips)\nSubject: Re: Ford and the automobile\nOrganization: Hewlett-Packard NARC Atlanta\nX-Newsreader: Tin 1.1.3 PL5\nLines: 14\n\n: Ford and his automobile.  I need information on whether Ford is\n: partially responsible for all of the car accidents and the depletion of\n: the ozone layer.  Also, any other additional information will be greatly\n: appreciated.  Thanks. \n: \nSSSSSoooooooooooo!!!!! Its all HIS fault!! Thank God Louis Chevrolet is \ninnocent! and that guy Diesel, HE otto feel guilty!\n\n\n--\nStephen Phillips\nAtlanta Response Center\nAtlanta, Ga.\nHome of the Braves!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8678, "properties": {"category": "talk.politics.mideast", "text": "From: deniz@mandolin.ctr.columbia.edu (Deniz Akkus)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: Columbia University Center for Telecommunications Research\nX-Posted-From: mandolin.ctr.columbia.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 43\n\nIn article <1993Apr20.164517.20876@kpc.com> henrik@quayle.kpc.com writes:\n>In article <1993Apr20.000413.25123@ee.rochester.edu>, terziogl@ee.rochester.edu (Esin Terzioglu) writes:\n>My response to the \"shooting down\" of a Turkish airplane over the Armenian\n>air space was because of the IGNORANT posting of the person from your \n>Country. Turks and Azeris consistantly WANT to drag ARMENIA into the\n>KARABAKH conflict with Azerbaijan. The KARABAKHI-ARMENIANS who have lived\n>in their HOMELAND for 3000 years (CUT OFF FROM ARMENIA and GIVEN TO AZERIS \n>BY STALIN) are the ones DIRECTLY involved in the CONFLICT. They are defending \n>themselves against AZERI AGGRESSION. Agression that has NO MERCY for INOCENT \n>people that are costantly SHELLED with MIG-23's and othe Russian aircraft. \n>\n>At last, I hope that the U.S. insists that Turkey stay out of the KARABAKH \n>crisis so that the repeat of the CYPRUS invasion WILL NEVER OCCUR again.\n>\n\nArmenia is involved in fighting with Azarbaijan.  It is Armenian\nsoldiers from mainland Armenia that are shelling towns in Azarbaijan.\nYou might wish to read more about whether or not it is Azeri aggression\nonly in that region.  It seems to me that the Armenians are better\norganized, have more success militarily and shell Azeri towns\nrepeatedly.  \n\nI don't wish to get into the Cyprus discussion.  Turkey had the right to\nintervene, and it did.  Perhaps the intervention was not supposed to\nlast for so long, but the constant refusal of the Greek governments both\non the island and in Greece to deal with reality is also to be blamed\nfor the ongoing standoff in the region.  \n\nLastly, why is there not a soc.culture.armenia?  I vote yes for it.\nAfter all, it is now free.  \n\nregards,\nDeniz\n\n\n\n\n\n\n\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8679, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gtonwu@Uz.nthu.edu.tw (Tony G. Wu)\nSubject: Re: Need video drivers for Tseng True-color \nOrganization: National Tsing Hua University (HsinChu)\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 26\n\nTony G. Wu (gtonwu@Uz.nthu.edu.tw) wrote:\n\n> Hello.\n\n>      I purchased a video card called ET-4000 true color card which\n>      can provide about 1700K colors. But the question is I can't find\n>      the corresponding drivers for windows 3.1 , I am now using 65k\n>      colors driver for win31. It works fine , but I think it will be\n>      better if I use 1700k driver. So, please tell me whether such a\n>      driver is available !\n\n>      Thanks in advance.\n\n\n  I am sorry. My card can display about 17000K colors not 1700K colors.\n\n  I hope some one could answer my question !\n\n  Thanks.\n\n\n-- \n===================== ( Forever  23,  Michael Jordan.) =====================\n    Tony G. Wu                                     gtonwu@uz.nthu.edu.tw \n    CAE/Rheology Lab.  NTHU.                       tony@che.nthu.edu.tw\n   \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8680, "properties": {"category": "misc.forsale", "text": "From: ralf@iqsc.COM (Ralf)\nSubject: Items For Sale\nOrganization: IQ Software Corp.\nLines: 24\n\n  ITEMS FOR SALE - PRICE LISTED OR BEST OFFER!!!!!!!\n\nKFC SVGA Monitor 1024X768 .28DP Non-interlaced 14\" \nScreen, still under warranty! (Brand New)          $ 290.00\n\n1200 Baud Compuadd Modem Box/docs/software         $  20.00\n\nCGA Monitor with Cga/Parallel Card                 $  30.00\n\nSCO UNIX V3.2.2 Unlimited User OS, has the base\nand extended Utilities, and UUCP                   $ 150.00\n\nTurbo C/Turbo C++ The complete reference book.     $  15.00\n\nSerial I/O Card  1 serial Port                     $  10.00\n\nJoystick, three button                             $  10.00\n\nIDE Controller with 2 Serial, 1 parallel and one\nGame port  2 available.                            $  10.00Each\n\n(210)545-4741, ask for Ralf\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8681, "properties": {"category": "comp.graphics", "text": "From: lulagos@cipres.cec.uchile.cl (admirador)\nSubject: OAK VGA 1Mb. Please, I needd VESA TSR!!! 8^)\nOriginator: lulagos@cipres\nNntp-Posting-Host: cipres.cec.uchile.cl\nOrganization: Centro de Computacion (CEC), Universidad de Chile\nLines: 15\n\n\n\tHi there!...\n\t\tWell, i have a 386/40 with SVGA 1Mb. (OAK chip 077) and i don't\n\t\thave VESA TSR program for this card. I need it . \n\t\t\tPlease... if anybody can help me, mail me at:\n\t\t\tlulagos@araucaria.cec.uchile.cl\n\n\t\t\t\t\t\t\t\t\t\t\t\tThanks.\n\t\t\t\t\t\t\t\t\t\t\t\t\tMackk. \n   _   /| \n   \\'o.O' \n   =(___)=\n      U   \n     Ack!\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8682, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: moret@masi.ibp.fr (Moret Yan - Magistere)\nSubject: adobe 3.0 and adobe 2.0\nNntp-Posting-Host: daphne.ibp.fr\nReply-To: moret@masi.ibp.fr (Moret Yan - Magistere)\nOrganization: Universite Paris VI/Paris VII\nLines: 7\n\n\n\tI wanted to create a postcript file with Win#.1, to print it on a\nlaserwriter II. It created a postcript file version adobe 3.0, but our\nlaser accept only adobe 2.0. How resolve this problem??\n\n\nThanks,\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8683, "properties": {"category": "talk.politics.mideast", "text": "From: sgoldste@aludra.usc.edu (Fogbound Child)\nSubject: Re: NEWS YOU WILL MISS, Apr 15\nOrganization: University of Southern California, Los Angeles, CA\nLines: 46\nNNTP-Posting-Host: aludra.usc.edu\n\narf@genesis.MCS.COM (Jack Schmidling) writes:\n\n>In article <1qun1aINNik5@aludra.usc.edu> sgoldste@aludra.usc.edu (Fogbound Child) writes:\n>>arf@genesis.MCS.COM (Jack Schmidling) writes:\n>>\n>>\n>>> \n>>>                      Yigal et al, sue ADL\n>>> \n>>\n>>Why do you title this \"News you will miss\" ?\n>>\n>>There have been at least three front-page stories on it in the L.A. Times.\n>>\n>>I wouldn't exactly call that a media cover-up.\n\n>This may come as a surprise to you but there are a few americans who do not\n>read the LA Times.\n\nIs this the same Monolithic, Centrally Controlled Media that you're always\ntalking about? Do you mean to tell me that the LA Times is the ONLY major\npaper to buck the Media Spiking Division's activities?\n\n\n>The Defamation League has done a first class job of damage control..in what\n>little is left of the world outside of LA.\n\n\nAssumption: When one major newspaper prints three or more articles on the front\npage regarding subject matter that is not strictly local, this is likely\nto be considered an open story, and not a coverup.\n \nLet's hear a roll call here. Anyone outside of the LA area seen articles on\nthis?\n\n>js\n\n___Samuel___\nMossad Special Agent ID314159\nMedia Spiking & Mind Control Division\nLos Angeles Offices (therefore, evidently, incompetent)\n-- \n_________Pratice Safe .Signature! Prevent Dangerous Signature Virii!_______\nGuildenstern: Our names shouted in a certain dawn ... a message ... a\n              summons ... There must have been a moment, at the beginning,\n              where we could have said -- no. But somehow we missed it.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8684, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Divine providence vs. Murphy's Law\nOrganization: AI Programs, University of Georgia, Athens\nLines: 19\n\nIn article <Apr.19.05.13.28.1993.29224@athos.rutgers.edu> rolfe@junior.dsu.edu (Tim Rolfe) writes:\n>Romans 8:28 (RSV)   We know that in everything God works for good with those \n>who love him, who are called according to his purpose. \n>\n>Murphy's Law:  If anything can go wrong, it will.\n>\n>We are all quite familiar with the amplifications and commentary on\n>Murphy's Law.  But how do we harmonize that with Romans 8:28?  For that\n>matter, how appropriate is humor contradicted by Scripture?\n                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nI've always taken Murphy's Law to be an exhortation to prudence, and\nan observation about the behavior of complex systems, rather than a\ndenial of divine benevolence.\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8685, "properties": {"category": "rec.motorcycles", "text": "From: coburnn@spot.Colorado.EDU (Nicholas S. Coburn)\nSubject: Identify this bike for me\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: usa\nLines: 24\n\nOK,\n\n    I saw a bike today and I want to know what it is.  Lets begin\nby saying that its whole rear end was definately Hawk 650.  Additionally,\nit had a CBR900RR style tank, full fairing, and only a tach.  Now, at\nfirst I thought it was an 'RC31' (a Hawk modified by Two Brothers Racing),\nbut I did not think that they made this huge tank for it.  Additionally,\nthe gauges were certainly not from a Hawk.  They looked much more like \n900RR gauges.  Overall, the bike looked like a 900RR except for the\nrear single-sided swingarm and wheel (there were straight from the Hawk)\n\nSo, what did I see?\n\n(PS, for any of you Boulder DoDers, I saw it parked at the Engineering\ncenter today. It is white with light green stripes.)\n\n\n________________________________________________________________________\nNick Coburn                     DoD#6425                      AMA#679817\n                  '88CBR1000              '89CBR600\n                       coburnn@spot.colorado.edu\n________________________________________________________________________\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8686, "properties": {"category": "misc.forsale", "text": "From: jrm@cbnews.cb.att.com (john.r.miller)\nSubject: Humminbird Depth Sounder forsale\nKeywords: sale depth\nArticle-I.D.: cbnews.1993Apr6.173100.11729\nDistribution: na\nOrganization: AT&T\nLines: 34\n\n\nHi,\n\n\tI have a Humminbird HDR200 Depth Sounder for sale. It\nhas been used for 1 season on my sailboat. \n\t\n\tAll parts are included as well as the installation\ninstructions. It is even packed in the original box it came in. There\nis no damage to the unit or the transducer. In fact, the transducer\nwas mounted *inside* the hull in a piece of pipe glued to the hull.\nSo it led a \"sheltered\" life. The transducer can be mounted either inside\nthe hull as I did, or on the transom. It cannot be placed in a hole\ndrilled into your hull.\n\n\tIt is fully waterproof and fits into a 2\" hole in a bulkhead\n(that's where I had it installed) or into a standard dashboard on a\npowerboat. It reads depth to 199' and has a backlit LCD display. It has\nan adjustable shallow water alarm built in. \n\n\tI am changing out my instruments to another manufacturer that\noutputs the NMEA 0183 information. This little depth sounder works fine\nand is very stable.\n\n\n\tIt is usually priced as low as 130$ in some catalogs, I paid 150$.\n\n\n\tThe first 80$ takes it, or best offer. \n\n\n\n\t\t\t\tJohn R. Miller\n\n\t\t\tCatalina 22, #4909 \"Tinker Toy\"\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8687, "properties": {"category": "sci.crypt", "text": "From: ebrandt@jarthur.claremont.edu (Eli Brandt)\nSubject: Re: The battle is joined\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 13\n\nIn article <1993Apr16.181040.9381@qualcomm.com> karn@servo.qualcomm.com (Phil Karn) writes:\n>It looks like Dorothy Denning's wrong-headed ideas have gotten to the\n>Administration even sooner than we feared.\n\nI'd lay long odds that it was the other way around.  Clinton didn't\njust pull this plan out of any bodily orifices; the NSA has to have\nbeen working on it for years.  While it's possible that Denning (and\nother prominent people) just happened to start arguing for such a\nsystem, it seems more likely that there was a suggestion involved.\nIf this guess is wrong, I apologize.\n\n\t PGP 2 key by finger or e-mail\n   Eli   ebrandt@jarthur.claremont.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8688, "properties": {"category": "soc.religion.christian", "text": "From: jcj@tellabs.com (jcj)\nSubject: Re: proof of resurection\nOrganization: Huh?  Whuzzat?\nLines: 14\n\nIn article <Apr.16.23.15.09.1993.1823@geneva.rutgers.edu> smayo@world.std.com (Scott A Mayo) writes:\n>...\n>I think Christianity goes down in flames if the resurrection is\n>ever disproved. ...\n\nDidn't Paul write that if the Resurrection is not true, we are the\nbiggest fools of all?  However, whether you believe in Christ or not,\nHis teachings (e.g. love your brotherman as yourself), even if only \nfollowed at a secular level, could do a great deal to alleviate some of \nthe problems we see today in the world.  Even when I was a rabid atheist \nI couldn't deny that.\n\nJeff Johnson\njcj@tellabs.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8689, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mcbride@ohsu.edu (Ginny McBride)\nSubject: Re: Trumpet for Windows & other news readers\nArticle-I.D.: ohsu.mcbride.126\nOrganization: Oregon Health Sciences University\nLines: 31\nNntp-Posting-Host: 137.53.60.24\n\nIn article <ashok.653.0@biochemistry.cwru.edu> ashok@biochemistry.cwru.edu (Ashok Aiyar) writes:\n\n>In article <1993Apr21.082430@liris.tew.kuleuven.ac.be> wimvh@liris.tew.kuleuven.ac.be (Wim Van Holder) writes:\n\n>>What the status of Trumpet for Windows? Will it use the Windows sockets ?\n\n[stuff deleted]\n\n>Currently WinTrumpet is in very late beta.  It looks like an excellent \n>product, with several features beyond the DOS version.\n\n>WinTrumpet supports the Trumpet TCP, Novell LWP, and there is also a direct to \n>packet driver version that some people are using with the dis_pkt shim.\n\n>Ashok \n\n>--\n>Ashok Aiyar                        Mail: ashok@biochemistry.cwru.edu\n>Department of Biochemistry                       Tel: (216) 368-3300\n>CWRU School of Medicine, Cleveland, Ohio         Fax: (216) 368-4544\n\nWhat's it gonna cost?  \n\nGinny McBride       Oregon Health Sciences University\nmcbride@ohsu.edu    Networks & Technical Services\n  \n=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\n|  The purpose of writing is to inflate weak ideas, obscure poor reasoning,    |\n|  and inhibit clarity. With a little practice, writing can be an intimidating |\n|  and impenetrable fog.  (Academia, here I come)   >Calvin & Hobbes<          |\n=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8690, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: europa@tomcat.raleigh.ibm.com (Welch Bryan)\nSubject: pc-junior usable?\nNntp-Posting-Host: tomcat.raleigh.ibm.com\nOrganization: IBM, Research Triangle Park, North Carolina\nLines: 13\n\nMy fiance has a pc-junior and wants to upgrade to a full 386.  Does anyone\nknow if we could use the monitor it came with on a new machine?  I heard\nit's MCGA or EGA, but not sure which.  Also, does it use cards, so we can \nuse the drive controller, floppy, etc?\n\nThanks for the help!\n-Bryan\n\n-- \nBryan Welch                                  Amateur Radio: N0SFG\nInternet: europa@vnet.ibm.com (best), bwelch@scf.nmsu.edu \nEverything will perish save love and music.--Scots Gaelic proverb\nDisclaimer: It's all opinion.  Everything.  So there.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.412+0000", "event": "documents", "entityId": 8691, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 10/14\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 956\n\n\n\n------------ Part 10 of 14 ------------\nM:J\"U$$,^UM[>WE/M[>V+BXN+BXN+BXN+BXOM[>U34U-34[\"PL!D9<7'2TM+2\nM/3T]/3T]F9F9`P,#7EY>NRIZWT='I0MFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=34U-34U-3[>WM[8N+-(LT-#3%Q<4T-#0T-,7%-#2+\nM[5-3L+\"P4U-34U-34U-34U-34U-3[>V+BXN+BS0TQ6=G#P],3$Q,3(F)B8G)\nMR<F)B8F)B8F)B8F)R8F)B4Q,3$Q,#P]G9\\7%Q6=G9V=GQ6</#TQ,B8F)R<G)\nMR1865%14DI*2DI+5U=75U=75U=75U=75U=75DI*2DI*2DE145%145%145%14\nM5%145%145%145%145%145%145%145%145%145%145%145%145%145%145%06\nM%A86%A86%A86%A86%A86%LG)R<G/HENCV=G9-MG94MDV-MG9V38V-C8V6UL4\nMSU=7HA1;.'6>>`$!`0&$`0%XGG5UP,#`P%M;%*JJJFMK\"0G/S\\_/SPD)-C9N\nMV=E&!UDS4G9V4I5960<'$=G9V=G9V=EN;FYN;FYN;F[9V=EA86%A!05L;&QL\nM!04%>7F3DV-CDY.3DY-C555555555555555L;&QL$A(2$A(2;&QL556TM!$1\nM[NXV-C8)J@F`\"6L\";MD1$3,S4G83$W924I4S,S,S$1$163,SE5)V=G9V4@$!\nM*RLK*RL!`81V=KR\\OKZ^)-;6UM;6UM;6UM;6@8&!UM;6UM;6UM;6UM:!@8&!\nMUM;6UB0^H*\"NM;6U$!`0$!`0$!`0$!\"UM8BNH*`^:B0DUH&?WO7>G];6)\"1J\nM:FIJ:FIJ:FJ@KHB($+8V-C9K\"0G/\"0EK-C9N$1$1$1%9$5E965F54G9V=G9V\nM=G9V=G9V=G9V4E)24E)24G9V=G9V=G9V=G9V=G9VE)3,8%%145%18,R4C(PP\nMVF2L(NP='1UHL7Y:6EI^L6@=-C;9V>X1$5F54E)V4G9V=G92,UD'!^[NV>[N\nM-C8VJJJ`@(#J@(\"`@*JJJFAH:&AH:+'O6K%H[/'QK\"WTE&#U43<&!@:4-V!1\nM-XR8:FIJ:I@D\"I\\7GR1J:J\"($*X^UM[>[8N+BXN+-#0T-#0T-#0T-#2+BXOM\nM[5-34[\"PL!D9<7'2/3V9F0,#`P,#`P,#7KN[NRHJ*BIZ>M]'1Z4+9L0QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=3L%-3[8N+BS0T-#3%Q<4T\nM-#0T-#0T-,7%Q<4T-(N+B^WM[>WM[5-34U-34U-34U-3[8N+BXLTQ6=G9P],\nM3$Q,3$Q,B8F)B8F)B8F)B8F)B8F)B8F)B8F)B4Q,3$Q,3`]GQ<7%Q<7%Q33%\nMQ6=G9P],3$Q,3(F)R<G)R186%E145%22DI*2DI*2DI*2DE145%145%145%06\nM%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86\nM%A86%A86%A86%A86%LG)R<G)R<G)R<G)R<G)R<G)R<F)B8F);EO9J:G9HS;9\nME:G9V=G9V=DV-C8V6UL4SU=7HA1;P'6IGGAX`0%2A`%XGG5UP,#`6UL4%!04\nM5U=7\"<_/S\\_/\"6LV-FYNV=D1$0<'6952=G92E5E9!Q$1$1$E)=G9V6YN;FYN\nM;FYN;MG9)1$1$6%A;&QL!04%!7F3DV-CDY.3>7G.SF-C8V-CSLY5;&QL;&P2\nM$A(2$A(2;&QL5783=C-9$1'9[C9KJ@F`@`EK:P)N;B41,S-2=A,3$W9V=E)2\nME3,SE5)V=A,3$Q,3=G:$4@$!`5)VO+P3$[R\\O':^OB36UM;6UM;6UM;6@8'6\nMUM;6UM;6UM;6UM;6UM;6UM;6)\"0^H*\"NM;40$!`0$!`0$!`0$+6UB*Z@H#X^\nM)\"36UI_>]?7>G]8D)\"1J:FIJ:FIJ:J\"@KHB(-C8V:VL)\"0G/\"0EK-C9N;MG9\nM$1$1$5DS,UF5=G9V=G92E3-965E965E960=965DSE5)24G9V=G9V=G9V=G9V\nM=G9V5C?,S,PWE`:,,##:9/$B'1UH:&BQ[UI:6EJ`@*JJJC8V-MD1!UE9,U)V\nM=A-V=E*560<'$>[N;C8V-C9K@(\"`@.KJ@%I:L6C&QK&Q:&AHL;%:6N]H[.SL\nMK\"WT!LQ143<&!I0&-U%1E)AJL[.S:I@D))_UGR1J:J\"($$,^U@TT-#0T-#3%\nMQ<7%Q<7%Q<7%Q30T-(N+BXOM[5-3L+`9<7'2TCT]/3V9`UY>7EY>7KLJ*GIZ\nMW]]'I:6EI:4+\"V;$Q,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?M\nM[>WMBXLT-#0T-#0TQ<7%Q<5G9\\7%Q<7%Q<7%Q<4T-(N+BXN+[>WM4^WMBXN+\nMBXLTQ<5G9P],3$Q,3$Q,3$Q,3(F)B8F)B8F)B8F)B8F)B8F)B8E,3$Q,#P]G\nM9\\7%Q<7%Q<7%Q<7%Q<7%9V</#TQ,3$R)B<G)R<G)R<D6%A86%A86%A86%A86\nM%A86R<G)R<G)R<G)R<G)B8F)B8F)B8F)B8F)B<G)R<G)R<G)R<G)R<G)R<G)\nMR<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<F)B8F)B8F)B8F)B8F)B8F)\nMB8E,3$Q,3\"6I!P?9V:.C65G9V=G9V=DV-C8V6UL45U=7HA1;P'5UGGAX>'@!\nMA%(!GG4XP%M;6Q045U=75U=7S^KJZH!K-C9N;F[9V1$1!P=96952=G9V4EE9\nM$1$1$279V=G9;FYN;FYN;FYN;F[9V=G9V=G9V=G9!04%!7EYDV-CDY-Y>7E5\nMSL[.8V/.SL[.S@4%;&QL$A(2$A(2;-GN$5DSE79V=E)9$1'N-C9K\"0D)\"0G4\nMR&[9$3.5=G83$Q,3$Q,3$Q-V$Q,3=G9V=G83$W9V=E)2=KP3$[QVA(2$4E(!\nM`;XDUM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6)#X^H*\"NM;6U$!`0\nM$!`0$+6UM8B(KJ\"@/CXD)\"36@9_>]1>?G];6)\"1J:FIJ:FJ@H*\"@KFXV-C9K\nM:VMK\"0D)\"<\\)\"6LV-F[9V1$163-9E5)V=G9VE5D1$1'N[N[N[N[N!P<'!UE9\nM63.5E5)24E)2=G9V=G9V=G9V=A,3$Q,3C\"DP,\"UD\\>P=:+&QL>]^@(\"`@`X.\nMZ>GIZ?#P\\/`HEP=965E9E5)V=G9265D'$>[N-C:J:ZJ`@(#JO;V]O;U:[[%H\nML;&QL;&QL>]:6EJQ:&CL\\2TIC#=@43>4E)24-U%@!IAJLZ1J:I@D))_U%R0D\nM:J\"N$$,^EP\\/#P\\/#P\\/#P]G9V=G9V=G9\\7%Q<4T-#2+B^WM4U.PL!D9<3V9\nMF0,#`P,#`UY>N[LJ>GK?WT>EI0L+\"PL+\"PL+\"V9F9L0QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX?MBXN+-#0T-,7%Q<5G9P\\/#P\\/#V=G9V=G9\\7%Q30T\nM-#0T-#2+BXN+BXLTQ6</#TQ,3$Q,3(F)B8E,3$Q,3$Q,3$Q,B4Q,3$Q,3(F)\nMB8F)3$Q,3`]G9V=GQ<7%Q<7%Q<7%Q<5G9V=G9V</#P],3$Q,3$R)B8F)B8F)\nMB8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8E,3$Q,3`\\/#P],3$Q,B8F)B8F)\nMB8G)R<G)R<G)R<G)B8F)B8F)B8E,3$Q,3$Q,B8F)B8F)B8F)B8F)3$Q,3$Q,\nM3(F)B4Q,3$Q,3`]G9V=G9V</#P\\/#P]GE0>IV:,V!Y4'V=G9V=DV-C8V6UNB\nM5\\]7%!04P#AUGIZ>>'AX`80!GG4X6UM;6Q175U=75U?/S^KJZH\"JJJJJJJH'\nM!UE9E5)V$W92,UE9!P<'$=G9V=G9V=G9V=DE)24E)=G9V6YN;FYN-C8V-C8V\nM;F[9V05YDY-CDY-Y>07.SL[.SL[.SL[.!05L;&P2$A(2$FMK-F[9V1$1,S.5\nM=A-V4C,S$1'9;C9KU`D)\"6L\";MD1$3,SE5)V=G9V=G92E965E952=G9V$W9V\nM4I65E5)2=G:\\$Q,3$Q,3$[R\\)-;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6UM;6\nMUM8D)#X^H*\"NM;6U$!`0$!`0M;6(B*ZNH*`^/B0D)-:!G][U]=Z?G];6)\"0D\nM:FIJ:J\"@H!$1V38V-FMK:PD)\"0D)\"<_/\"0EK-C9NV1$163-2=G9V=I5961$1\nM[N[N[N[N[N[N!P<'!UE965E965E969654E)24E)24E)24E)24E*565D'$=EN\nM-JJJJH\"`#@X.#@X.#@X.Z>GIZ>GP\\/`HEY<Y.3DY.1Q2=G9V=E*565D'$>[N\nM\\>RQ6KV]O;V]O;V]6N_O[^_O[[&Q[UJ]O;U:[[%H[&0I](S,4<PW-S<W8%$W\nMC)AJLZ1JF)@D))\\7%R1J:J\"N$*!,3$Q,3$Q,3$Q,3$Q,3$Q,#P\\/#P]G9V=G\nMQ<4T-(N+[>U34[\"P&7'2/9D#`P->7EX#`P->NRIZ>M]'1Z6EI4='I:6EI:6E\nM\"PMFQ,3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<T-,7%-#3%Q<5G9V</#P\\/\nM#V=G9V=GQ<7%Q<7%Q<7%-#0T-(N+BS0TQ6</#TQ,3$Q,3(F)B8E,3$Q,#P\\/\nM3$Q,3$Q,3$Q,3$Q,3$Q,#P]G9\\7%Q<4T-#0T-(N+-(LT-#0T-#3%Q<7%9V</\nM#P],3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3(F)B8F)3$Q,3`]G9V=G\nMQ<7%Q6</3$Q,3$Q,3$Q,3(F)B8F)B8F)B8E,3$Q,3$Q,3$P/3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3`\\/3$P/9\\4TBXN+BXN+BS0T-(OM4U.P&78'V:,V\nMV959!ZFIV=G9-C8V6VNB5\\]7HA046SAUGIYX>'AX`80!GG7`6UL4%*)75U=7\nM5U?/S^KJ@(\"JJJJJJJJXN+B7.1Q2E5D'!Q$1$=G9V6YN;FYNV=G9V=DE)24E\nMV=G9;FYN:VMKJJJJJJIK:VLV-C8V-FZ3DY-Y!04%!07.SL[.S@4%!6QL;&P2\nMS\\\\)\"6NJ-C:CV=D1$3,S4G83=I4S,Q$1;C9K\"0D)\"0G4:P)N;MD1$0<S,S,S\nM,S,S,S.5E79V=A-V=I5960<'!P<'65E965E9`0$!`5*\\$Q.\\)\"36UM;6UM;6\nMUM;6UM;6UM;6UM;6UM8D)\"0D)#X^H*\"NB+6U$!`0$!\"UM8BNKJ\"@H#X^FR0D\nMUM:?G][U]=Z?@=;6)\"0D:FIJ:J`1$1'9;C8V-FMK:VMK\"0D)\"0G/SPD):S8V\nM-F[9$1%9,U)V=G9VE5D1$1$1[N[N[N[N$>X'65E9696565F565E965E965E9\nM65E965E960<'$=FC-JJJJ@X.#@X.#@X.#@X.#@[IZ>GIZ?#P\\/#P*)>7.3DY\nM'!P<'!P3=G92-Y2,]-ID\\>QH[UJ]O;V]O;V]O5I:O;U:6EI:6KV]O;V]O5JQ\nM[*S:*?244<S,S,S,]<P&C)AJL[-JF\"0D)`J?%PIJ:J\"N$$Q,3$Q,3(F)B8F)\nMB8E,3$Q,3$Q,3$Q,#P\\/#V?%Q32+BXOM[5-3L+\"P&7'2TCV9F0.9F9D#`P,#\nM`UZ[NRHJ>M_?W]_?1Z4+\"Z6E1Z6E\"V9FQ#$QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<T\nM-#0TQ<7%Q6=G9P\\/9V=G9V=G9V=G9V=G9\\7%-#2+BXLT-,5G9V=G9P],3$Q,\nM3(F)B8F)3$Q,3$Q,3`\\/#P],3`\\/#P]G9\\7%9V?%Q<7%-#0T-(N+BXOM[>WM\nM[>V+BXN+-#3%Q<5G9V=G9P\\/#P\\/#V=G9V=G9V=GQ<7%Q<5G9\\7%Q6</#TQ,\nM3$Q,3`\\/9\\7%-#0T-#0T-#3%Q<5G9V=G#P]G9V</3$Q,3$Q,3$P/#V=G9\\4T\nM-#0TQ<7%Q6=G#P\\/#P\\/#P\\/#V=G9V=G9V=G9\\7%Q30T-#0TB^WM[>WMBXOM\nM[5-3L!G2/3V9F9D#V=DVV5E265D'J=G9-C8V:Z+/5\\]75Q046\\!UGIYX>`$!\nM`80!GG7`6Q04%%=75U=75U?/S^KJ@(\"JJJJXN+BXN+BX.1PYEY?-\\/#9V=EN\nM;C8V-C8V-FYNV=G9V=G9;FYN-JJJJJJJJJJJJJJJJJJJJJHV-C:CHZ-N-C8%\nM!04%SL[.!38V:VL)S\\_/@(\"`@(\"`JJJJ-J/9$1$S,W83=I4S$1'9;C8V:PD)\nM\"0D):VYNV241$1$',S.54G9V$Q,3$Q-V=E*5,UD'$=G9V=G9V=D1$0<1$5E9\nM65D`@G:\\O+R^)-;6UM;6UM;6UM;6UM;6UB0D)\"0D)\"0D/CX^H*!#KK6U$!`0\nM$+6UB*ZNH*\"@/CXD)\"36UI^?WA?U%]Z?@=8D)\"0D:FH1V=G9V=EN-C8V-FMK\nM:PD)\"0D)\"<_/\"0D)\"0EK-C9NV1$1$5DS6952=A-V4EDS61$1$=GNV>[9$0<'\nM!P<'!P<'!Q%9$0<'!Q$1V=G9;FYN-C8VJJJJJND.#@X.#@X.#NGIZ>GIZ>GI\nMZ>GI\\/#P\\\"@HEY>7.3D<'!P<8,S,S,PWE`:,]-IDK.S&L>]:6EI:6KV]O;V]\nMO;V]O;V]O;V]6EI:O5I:QO%DVO0&45%145%18`:,C)@ILVJ8F\"0D)`J?]0IJ\nMH*!G#TQ,3$Q,B8F)B8F)B8F)B8F)B4Q,3$Q,3$Q,3$P/#V=GQ<4T-(N+[>U3\nM4[`9<7'2TCT]F9F9F9D#`P,#`P,#7EZ[N[N[N[LJ*GK?1T='1T='1Z6EI:6E\nM\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>+-#0T-,7%Q<7%Q<4TQ<7%Q<7%9V=G9V=GQ<7%Q<7%\nMQ<7%Q<5G9P],3$Q,3$Q,3(E,3$Q,3$P/#P\\/9V=G9V?%Q<7%-#0T-#0T-#0T\nM-#2+BXN+[>V+[>U34^WM[>WM[>V+BS0TQ<7%Q<4T-#0T-#0T-#0T-(N+BXN+\nMBXN+BXLT-,7%Q<5G9V=G9\\7%Q30T-#2+BXN+B^WM[8N+-#0T-#0T-#0TQ<5G\nM#P\\/#V=G9\\7%-#2+BXN+BXN+BXN+BXN+BXN+BXN+BXLT-#0T-(N+BS0T-#2+\nMBXN+BXOM[5-34U.PL!EQTM(]/9D#7KN[*GK?WRMU=9Y24I59!]G9-C8V:\\]7\nMS\\]75Z(46\\!UGG@!`0$!A(1XGG7`6Q04HE=75U=75U?/S^KJ@(\"JJKBXN+BX\nMN+B7.1PYEY?-\\/#P\\/#PZ>GI-C8V-C9N;FYN;FYNJJJJJJJJJJJJJJJJJJJJ\nMJJJJJJJJ-C8V-C8VJJJJJC8V-C8V-C9K:PD)S\\^`@(\"`@(\"`JJJJ-N[N[@<S\nME783=I4S$1'9;C8V:PD)\"0EK;FXE$1$S,Y52=A-V=E*5E965,S,S,UD1$0<1\nMV=G9;FYNV=D1$0<'!P<'65DS,S,S,P$``%+6UM;6@8&!@8&!@=;6UH[6UHZ;\nMFYN;FYL^/J\"@0T.U$!`0$+6(B*Z@H*`^/B0D)-;6GY_>]?7UWI^?UM8D)\"3P\nMJC8V;FYN;C8V-C9K\"0D)\"0D)\"<_/SPD)\"0D)\"0D):S8V;MG9$1$1$1$163,S\nM4G83=I4S61$1$>X1$1$'!P<'!P<'!P<'!Q$1$=G9;C8V-C8VJJJJ@.GIZ>GI\nM#@X.#@X.#NGIZ>GIZ>GIZ>GI\\/#P\\\"B7ESGT](R4S%%18,S,S,PWE`:,]-ID\nMK.SL:._O6N_O[UJ]O;V]O;V]O;U:6EKOL;'O6KU::.RL+2F,8%'U]5%1E(ST\nM])AJ:FJ8F\"0D)\"2?]0IJ\\,7%9V</3$Q,3$R)B8F)B8F)R8F)B8F)B8F)B8E,\nM3$Q,3$Q,3$P/9V?%Q32+BXOM[>U3L!EQ<=+2/3T]/9F9F9F9F9F9F9D#`UY>\nM7EY>NRHJ>GIZ>GK?W]_?WT>EI0MFQ#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>+-,7%Q<7%Q<7%-#0T-,7%\nMQ<5G9V=GQ<5G9V=G9V=G9P]G9V</#TQ,3$Q,3$Q,3$Q,3`\\/#V=G9\\7%Q<4T\nM-#0T-#0T-#0TBXN+BXOM[>U34U-34U-34U.PL+\"P4^WM[>WM[>V+BXN+[8OM\nM[8N+B^WM4U/M[>WM[5-34^V+BS0T-#0T-#0T-#0T-#0T-#0T-(N+B^WM[>WM\nM[8N+[>WMBXN+-#0T-#3%Q<7%Q<4T-(N+[>WM4U-34U-34U-34[`9&1FP4^WM\nM[>U34U-34U.PL+!34U-34U-34U-34[`9&7'2/9D#N[LJ>M]'I:4+9L0Q,8>'\nMT)X!4E)26:G9-C9;HL_/S\\_/5U<46\\!UGG@!A(2$4@&>=77`6Q2BHJ)75U=7\nM5U?/ZNKJ@(\"JN+BXN+BXN)<Y'!PYE\\WP\\/#-S?#P\\.GIZ>D%!05LXM34@(\"J\nMJJJJJJJJJC8V-C:JJJJJJJJJJJHV-C8V-C8V-C:JJJJJJJIK\"0D)\"<^`@(\"`\nM@(\"`@*JJJJHV-N[N!UE94G83=E(S,Q$1V6XV:PD)\"6L\";MD1$3,SE7:\\$W9V\nM4I4S,S-9$1$1$1'9V1'9V=G9V1$'65E9,Y4S65E965DS,S,S,S,S,S,S,U+6\nM@8&!@8&!CM:.CM:.FYN;FYN;FSX^/J!#0XBUM1`0M8B(KJ`^/CZ;FR2.@8&?\nM%_7U]?7U%Y^?@8&J\\(#I@#8V-C8V-C8V:PD)\"0G/S\\_/S\\_/\"0D)\"0D)\"6MK\nM-C8V;FYN;FYN;FYN;N[9$1$1,Y5V$W:565E965F54E)2E95965D'!Q$1V=EN\nM;FXV-C:JJJKIZ>GIZ>GIZ>GI#@X.#@X.#@X.#@X.#NGIZ>SLK&3:*?2,C)0W\nM8%%@S,S,S,PWE`:,*=IDK.SL:+'O[^_O[^]:6EJ]6EI:[[&Q:&AH:&BQ6EJ]\nML>RL9-J,S%%145',C\"DI])AJ:FJ8F`8D)\"2?%X%3[8LTQ<5G9P\\/3$Q,3(F)\nMB<G)R<G)R<G)R<G)R8F)B8F)B8F)3$Q,3$Q,3`\\/#V=G9\\7%-#2+[5-34[\"P\nM&1EQ<7'2TM+2TM+2TM(]F9F9F0,#7KLJ*GIZ*BHJ>BIZ>GK?1Z6E\"V;$Q#&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?%\nMQ<7%Q30T-(N+BS0TQ<5G9V=G9V=GQ<4T-,7%Q<7%Q6=G9P\\/3`\\/#P\\/#P]G\nM9\\7%Q<7%-#0T-(N+BXN+BXN+BXN+B^WM4U-34U-3L+!34U-3L+\"PL!FPL%-3\nM4U-34^U34U-34U-34U.PL%-3L+\"PL+\"P4U-34U-34U/M[>WM[>WM[>WMBXN+\nM[>WM4U-34U-3L%-34U-34U-34^WM[>WM[>WM[>V+BS2+B^WM4U-34U-34U-3\nM4U.P&7%Q<7%Q&1FPL+\"PL!D9&1D9&1D9&1FPL!D9&1D9&7%QTCT]/0->NRIZ\nMWZ4+9F;$,8>'AX>'AX>'AX<!4@$!4@?9-C9KHL_/S\\]75U<46\\!UG@&$4@$!\nM>)Z>=3A;6Q04%!04%%=75U?/ZNKJ@(\"JN+BXN+BXN#DY'!PYE\\WP\\/#P\\/#P\nM\\.GIZ>D%!05LXN+B$A)L;&QLJJHV-C8V-C8V-C8V-C8V-C8VHZ/N[J,V-C:J\nMJJJJJJJJJJJJ@(\"`@(\"`@(\"JJJJJJC:C[NX'!UE94G9V=I4S61$1V6X\":PD)\nM\"39N;MD1$3,S4G9V$Q,3=G92E3,S61$1$1$1V1'9V=G9$0=969524E*565E9\nM!P=9,S.54G9V=G9V=G9V4E)2UM;6CM;6UHZ;FYN;FYL^/CX^H*!#0XBUM1`0\nMM8B(KJ`^/IN;)(Z!G]X7]?7U]?47G^[N\\*JJ\\(#I@#8V-C8V-C8V:PD)\"0D)\nM\"<_/SPD)\"0D):PD):VMK-C8V-C8V;NYN;NYN;NYNV=D1$5DS4G834I654E)2\nM=G9V4E*565D'$1'9;FXV-C8V-C;P\\/#P\\/#P\\/#P\\/#IZ>GIZ>GIZ>GO6KV]\nMO;WOQNSQ9-HI](R,E#?,45',-S<WS#>4!HST*2UDK.SL:+'O[^_O[^_O[^^Q\nML;&Q:,;L[.SL[.QHL5J][^SQ9-J,-\\S,8%$WC\"DI*6IJ:IB8F\"0DF\"2?TG$9\nML%/MBS3%9P\\/3$Q,3(F)B8G)R<G)R186%A86%A;)R<G)R<G)B8F)B8F)B8E,\nM3$Q,3$Q,3$Q,#P]G9\\4T-(N+B^V+B^WM4[`9&1D9&1D9<=+2TCV9F0,#7EY>\nM7KLJ*GK?WT='1Z6E\"V;$Q,3$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<T-#0T-#0T-#0T-,7%Q<7%Q<7%-#0T-#0T-#0T-,7%\nMQ6=G9V=G9\\7%Q<7%Q<7%Q32+BXN+B^WM[>WM[>WM[>WM4U-3L+\"PL!D9&1D9\nM&;\"P&1D9&1D9&1FPL+\"PL+\"PL+`9&1D9&1D9&1D9&1D9&;\"PL+\"PL+\"PL%-3\nM4[\"PL+\"PL+\"PL+\"PL+\"P&1EQ<=+2TM+2<7%Q&1D9&1D9&;\"PL%.PL+\"PL+\"P\nML+\"PL+`9L+\"PL%-3L+\"P&1D9&1D9&7%Q<7$9&7%Q<7%Q&1D9&1EQ<7%QTM+2\nMTCT]F0->7EZ[N[LJ>D>EI6;$AX>'AX>'AX>'AX>'AX>'AW:54GC9-C9KHL_/\nMSU=75U>B6SAUG@&$`7B>GIYU=<!;%!04%!04%!175U?/ZNKJ@*JJN+BXN+BX\nMN#DY'!R7E\\WP\\/#P\\/#P\\.GIZ>D%!05LXN+B$A(2;&QL;&P%!5555555-C8V\nM-C8V-C8V-C8V-JJJJJJJJJJJJJJJJJJJ@(\"`@(\"`JJJJJC8V-J/N[NX'!UE9\nM65)V=E(S61'9;C9K\"0D)\"6LV;F[9)1$S,U)V=A,3$W9V=G9V4I4S,UD1$0<'\nM$1$1$0<'65E965E9!P<'!Q$1$5DSE5)V=G9V=G83=G9V4E)2E96.CIN;FYN;\nM/CX^/CX^H*!#0XBUM1`0M8B(KJ`^/ILDCH&?WA?U]?4'[N[N[NZCHZ.C\\*KP\nMJFXV-C8V-C8V:PD)\"0G/S\\\\)\"0EK-C8V-C8V-C8V-C9N;N[N[F[9V=G9V>[N\nM$1$1$5E9,Y52=G9V=E)24G9V=E)2E5E9!P<1V=GN[J.C\\/#P\\\"A&*/#P\\/#P\nM\\/#Q\\?'L[,9HL;'O6KV]O5IH[/%D+2GTC`8WS&!146`WE)0WE)0&C/0IVBUD\nM\\>SL:+'O[^_O[[&Q:&C&QNSL[.SQ\\?'Q\\>SL:.^]6L;Q9-J,-\\S,S&\"4F\"DI\nM]&IJF)B8F)B87`.9TG$9L%.+-,7%9P\\/3$Q,3$Q,B8F)R<G)R<D6%A86%A86\nM%A86%A86%A86R<G)R<G)R<F)B8F)B8F)B8F)B4Q,3$P/#P\\/#P\\/#V=GQ32+\nMBXN+[5.PL+`9<7'2/9F9`UZ[*GIZ>M]'I:6E\"PL+\"PL+\"V9F9C&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>+BXN+BXN+-#0T-#0T-#0T\nM-#0T-#2+BXLT-#0T-#3%Q<7%Q30T-#3%Q<4TBXN+[>WM[>WM[>WM4U-34[\"P\nML!D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9L+`9&1D9<7%Q<7%Q&1D9&1D9\nM&1D9&1FP&1D9&1D9&1D9&1EQ<7%QTM+2TM+2/3T]/3V9F9F9F9D]/=+2TM+2\nMTM+2TM)QTM+2TM+2<7%QTM+2TG%QTM+2TM+2TM)Q<7%Q<7%Q<7%Q<7%Q<1D9\nM&1D9<7%QTM+2TM+2/9D#7EZ[NRIZ>GIZ>GK?1Z5F,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'=@'9-C9KHL]7S\\]75U>B6SAUG@%2>)ZI=75U.,`4%*(4%!1;6UL4\nM5U?/ZNKJ@*JJN+BX.3FXN#DY'!R7E\\WP\\/#P\\/#P\\.GIZ>D%!05LXN+B$A(2\nM;&QL;&QL!055555556QL34U-34U--JJJJJJJ@(\"`@(\"`JJJ`@(\"`@(\"`@*JJ\nMJC8V-C:CH^[N[@<'65E94G9V4CDY$1'9-C9K\"0G/\"0D)\"<AN;MD1$5DS,Y52\nM=G9V=A,3=G92E3,S,UD'!P<'!P<'!UE9$0<'!P<1$1$1$5E963,S69524E)2\nM4C-960<'!P<'!P<'$1$^/CX^/CX^H$-#0[6UM1`0M8BNH#X^FYO6@9]V=G92\nM65E960<'[N[N[N[N[N[N1MG9;FXV-C8V:PD)\"<_/\"0D):S8V-FYN;MG9V>[N\nM[A$1$1$1$1$1$1$1$1$1$5DS,S,S,Y654G9V$W9V=G9V=G9V=E)265D'!^[N\nM[BB7EY>7EY>LK/'Q\\?'Q\\?'L[.SLQFBQL;'OO;V]6K'L\\60MVO0&-\\Q@45%1\nM8#>4!@8&!HST]\"G:+62L\\>S&L>_O[^_OL6C&[.SL[/&LK*QD9&2LK/'L:.^]\nM6FCQ9\"F,-\\S,S&\"4C/3T]&IJF)B8F\"B[7@.9TG$9L%/M[8LT-,5G#TQ,3$Q,\nM3(F)B8G)R<G)%A86%A86%A86%A86%A86%A86%A86%A86%A;)R<G)R<G)R<G)\nMR8F)B8F)B8F)B8E,3$Q,3$Q,#P_%Q30TB^U34[`9<=(]F0->NRIZ*GIZW]]'\nMI0L+I:4+\"PL+9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?M\nM[>WM[8N+BXN+BXN+B^WM[>WM[>V+BXN+BS0T-#0T-#2+BXLT-(N+B^WM[>WM\nM[>U34U-3L+`9&1D9&7%Q<7$9&7%Q<7%Q<1D9&7%Q<7%Q<7%Q<7%Q&1D9<7'2\nMTM+2TM+2TG%Q<7%Q<7$9&1D9&1D9&7%Q<7%QTM(]/9F9/3T]/9F9F9F9F9F9\nMF9F9`P,#`YF9F3V9/9F9F9F9`P,#`P.9F9F9F9F9F9F9/3T]/3V9F9F9F3W2\nMTG%Q<7%Q<7%Q<7%Q<1D9&1D9&1EQ<=(]/9D#`UZ[NRHJ*GIZWT='I0MF,8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'=39KHL_/5\\]75U<46SAU>`%2>)YU\nM=74XP%L4HE>B%%M;6UL45U?/ZNK/@*JJN+BX.3FXN)<Y'!PYE\\WP\\/#P\\/#P\nMZ>GIZ>D%!05LXN+B;!)L;&QL;&QL!04%5555;&Q-34U-34U-3<'!P<'HZ.CH\nMZ(\"`@(\"`@(\"`@*JJJJHV-C8V-C8VH^[N[@=965)V=E(<63GN[D;9;C8V:PD)\nM\"0D):VLV-C9N;MD1$1%9,S.54G83$W9V4C,S,UD'!Q$1!P<1!P<1$1$1$1$'\nM!P=9$1$1!P<1$0<'$0<'!Q$1$=D1$1$1$1'9[NZC-C8V-JJJ@(\"`@.KJ#@[J\nMZH\"`@#9NV0<'65)2=A,3=G9V=E)265D'[N[N[N[NHZ,V;C8V-C8V:PD)S\\\\)\nM\"6LV-C9N;MG9V=D1$1$165F54G9V=G9V=G9V=G9V=G9V=G9V=G9V$Q,3=G9V\nM=G9V=G924E*565E96?3T*2G:VBUD9*RL\\?'Q\\>SL[.SL[,9HL;'O[^]:O;V]\nM[\\;QK\"W:](PW8%%145%@-Y0&!HR,]/0IVMHM9&2L[.QHL>_O[^^Q:.SL\\:RL\nM9\"TM+2TM+2UDK*SL:.^]6FCL9\"D&S,PW-\\PWC(R,C)B8F)A>7@.9/=)Q<1D9\nML%/MBXLT-,5G9TQ,3$Q,B8F)B8F)B<G)R<G)%A86%A86%A86%A945%145!86\nM%A86%A86%A86%A86%A86%A86R<G)R<G)R<G)R<G)R<G)R<F)B8E,3`]GQ30T\nMB^U3L+`9&7'2/9F9`P->7KLJ>M_?1Z6E\"PL+\"V;$AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX?M[5-34U-34U-3[>WM[>WM[>WM[>WM[>WM[8N+BXN+\nMBXOM[>WM[5-34U-3L+\"PL+\"PL!D9&1D9<7%Q<7%Q<=+2<7%Q<7%Q<7%Q<7%Q\nM<7$9&1D9&1D9&1EQ<=+2TM+2TM+2TM+2<7%Q<1D9&1D9<7%Q<7%QTCV9F9F9\nMF9F9F9D#`P,#`P,#`P,#`UY>7@,#`P,#`P->7EY>7EZ[N[M>7EY>7EY>7@,#\nMF9D]/3T]F0,#`YF9/=+2<7$9&;\"P4U-34U-3L+\"PL+\"P&1EQTCV9`UZ[*BIZ\nM>GK?1Z4+\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=;:\\_/\nM5U=75U<46SAUG@%2>)YU=3C`P%L45U=7%%M;6UL4%%?/ZNK/@*JJN+BXN+BX\nMN)<Y'!PYEY?P\\/#P\\/#PZ>GIZ>D%!04%;.+B;&QL;&P%;&P%!04%555L;$U-\nM34U-34U-3<'!P>CHZ.CHZ.CH7U]?7U]?Z.C!1#8V-C8VJJHV-J/N[@=965)V\nM=G8<'#DY.>[N$6XV-FL)\"0D)\"0EK-C8V;F[9$1%9,S.54E)V$Q-V4I4S,P<'\nM!Q$1!P<'$0<1$1$1$1$1$1$1$1'9V=G9V=D1$1$1V=G9V=G9[N[N[N[NJJJJ\nMJJJ`@(\"`@(#JZNH.#NKJZH\"`@*JJJD:7EY<Y'%)V=G83=G9265E9!^[N[N[N\nM[NZCHZ-N;FXV-FL)\"<\\)\"6LV-C9N;MG9V=D1$1$1695V=G9V=G9V4I4S,S.5\nM4G9V=A,3$Q,3=G9V=G9V=F!145%@S)0&C/3T]\"DI*=HM+61DK*RL\\?'Q[.SL\nM[.S&:+&Q[UI:6EJ]O;U::.RL9-HIC#=145%18&#,-Y0&C(ST*2G:+61D9*SQ\nM[,:Q[^_OL;%H[.SQK\"W:VBDI*2DIVBUD9*SLQN^]6FCL9\"D&-Y24E#<W!HR,\nMF)B8F9D]/=)Q&1FPL+\"P4U/MBS3%Q6=G#TQ,3$Q,B8F)B8F)R<G)R<D6%A86\nM%A86%A86%A865%145%145%145%145%145%145%14%A86%A86%A86%A86%A86\nM%A86%A86%LG)R<F)B8E,3`\\/9V?%-(N+B^U3L!D9<=+2/0->7EZ[*GK?WT='\nMI0O$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<9&1D9&;!34U-34U-34U-3\nM4U-34^WM[>WM4U/M[5-34U-3L+\"PL+`9&1D9&1D9&1D9&7%Q<7%Q<7%Q<7%Q\nM<7%Q<7%Q<7%Q<7%Q&1D9&1D9L+\"P&1D9&7%Q<7%Q<7%Q<=+2TM)Q<7%Q&1D9\nM&1D9&7%Q<=+2/3V9F9D#`P,#`P,#`P->7EY>`P->7KN[N[M>7KN[N[LJ*BHJ\nM*KN[NUY>7EY>7EY>`P,#`P->7KN[N[M>`P.9/=)Q&1FP4U-34[\"PL+\"P&7%Q\nM<7%QTM(]`UY>N[LJW]]'I0MFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX?/SU?/5U=;P#AUG@&$>)YU.,#`6Q2B5U=7%!1;6Q04\nM5U=7ZNK/@*JJJKBXN+BXN+B7.1PYEY?-\\/#P\\/#IZ>GIZ>D%!04%;&SB;&QL\nM;&P%!04%!555555L;$U-34U-34U-3<'!P>CHZ.CHZ.A?7U]?Z.CHZ.A$1*:F\nM965E941$9::FIH.#!SE9'!QV=AQ9.>[N1D9N-FL)\"<\\)\"0D)\"6LV-C9NV1$1\nM$5DS,Y52=G83=G92,UE9!P<'!P<'$1$1$1$1$1$1$1$'$=G9V=G9V1$1!P<'\nM!P?N[N[N[D9&1D9&JJJJJJJ`@(\"`ZNKJ#NKJZNKJ@(\"`@/\"JJJI&EY<Y.1P<\nM'!P<''9265E965E9!P<'[N[N[N[NHZIN;C8V\"0G/\"0EK-C8V;MG9$1$1$1%9\nM6952=G9V=G9V=I4S65E962N,!I3,S&!@8&!@8%%145%145%1S)0&C/3T*2G:\nMVBUD9&2LK*SQ\\?'L[.SLQFBQL>]:6KV]O;V]O5JQ[*QD+2GT!F!18,S,S,PW\nME`:,C/0IVBUD9*RLK/'L[&BQL;&Q:.SL[/%D+=KT](ST]/3T*2UD9*SQQN]:\nM6K'L9\"F,!HR,C`:4!HR,F3W2<1D9L+!34^WMBXN+-#3%Q<5G9V</3$Q,3$R)\nMB8F)B<G)R<G)R186%A86%A86%A86%A86%A865%145%145%145%145%145%14\nM5%145%145%145%06%A86%A86%A86%A86%A86%LG)R<F)B8F)3$Q,3$P/#V?%\nMB^U3L+`9<=(]F0->NRIZ>GK?1Z5F,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=Q\nM&1D9L+!34U-34U.PL+\"P4U-34U-3L+\"PL!D9&1D9&1D9&1D9&1D9&1D9&1D9\nM&1EQ<7%Q<7%Q<7%QTM+2TG%Q<7%Q<1D9&1D9L+\"PL+\"P&1D9&1D9&1EQ<7$9\nM&1D9&7%Q&1D9&1FPL!D9&1EQ<7%QTM+2/3T]F9F9F0,#`P,#`P.9F9D#`UY>\nM7KN[N[N[NRHJ*BHJN[N[N[N[N[N[NRHJ>GHJ*GIZ>M_?WWIZ>BI>`YD]TG%Q\nM&1D9&1D9&1EQ<7'2TCT]F0->NRHJ*BHJ*GK?1Z4+9L0QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\C/5Z);P#AUGGB$`9YU\nM=<#`6Q175U=7HA04%!175U=7ZNK/@*JJJKBXN+BXN+B7.1PYEY?-\\/#P\\/#I\nMZ>GIZ>GI!04%!6QL;&QL;`4%!04%5555555L34U-34U-34U-3<'!Z.CHZ.CH\nMZ%]?7^A?Z.CHZ$1$P65E965E941$9::FIH.#@X.AY)SKZ^ODH8.#941*2FL)\nM\"0G/\"0D)\"0EK:VLV-C9NV=D1$5DS,S-2=A,3=I4Y69>763E9!P<'!P<'!P<'\nM!P<'!P<'$1$1!Q%965E965DY.3DY.3DYEY>7EY=&1JJJ@(\"`ZNKJ#NKJZNJ`\nM@(\"`@(\"JJJJJ1I>7ESD<'!P<'!P<'#E965E9!P<'[N[N[J.C-C:JJC8V:PD)\nM\"<\\)\"6LV-MD1$1%963,S68P&!I3,8%'U4<PW!HR,C(R,!I3,S&!145%145%1\nM45%145%1S)2,C/0I*=HM+62LK*RL\\?'Q\\>SL[.S&:+'O[UJ]O;V]O;V][VCL\nMK&0M*?2,-U%@-S<W-S>4!HR,]\"G:+62LK/'Q\\>SL[&BQL6C&[.SQ\\:PMVO2,\nM!@:,C(ST*2UD9*SQ[+%:O;'LK-J,C/3T](P&*#W2<1D9L%/M[8N+-#3%Q6=G\nM9P\\/#P],3$Q,3$Q,3(F)B8F)R<G)R<G)%A86%A86%A86%A86%A86%A86%A86\nM5%145%145%145%145%145%145%145%145%145%145%14%A86%A86%A86%A86\nM%A86%LG)R<G)B8F)B8F)3$P/Q32+[5.PL!EQTCV9`UZ[NRIZ1Z5FQ#&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<9&1FPL+\"PL+\"PL+\"PL+\"PL+\"P&1D9<7%Q<7%Q<7%Q\nM<7%Q<7%Q<7%Q<7%Q<7%Q<7%QTM+2TM)Q<7%Q<7'2<7%Q<7$9&1D9&1FPL!D9\nM&1D9&7%Q&1D9&1D9&1D9&1D9&;\"PL+\"PL+\"P&1D9<7%Q<7%QTM+2TM(]/3T]\nM/3T]/3T]F9F9`P,#7EZ[N[LJ*GIZ>GIZ*BIZ>BHJ*GIZ>GK?W]]'W]]'1Z6E\nMI:6E1]]Z*KM>`P,#F3T]/9D]/3T]/9F9`P->7KLJ>GK?W]]'1T='1Z6E\"V8Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'A\\A;P,`X=9Y2`9YU=<#`6Q175U=75Z(45U=75U=7S^K/@(\"JJJJXN+BX\nMN+BX.1P<EY?-\\/#P\\/#IZ>GIZ>GIZ04%!05L;&QL;&P%!055555556Q-34U-\nM34U-34U-3<'!Z.CHZ.A?7U]?Z%_HZ.CHZ$1$1&5EIJ9E965E965EIJ:#@X.#\nMY)SKZYRA@X-E941*2M/F+N`N+BXA(2$A(2$[.SN^OKY(2$C9$1%9,U)V=A,<\nM4CDYE1R5E965,Y65E9524E*565E9!P=960<'63DY.1P<'!P<'!P<'!P<.3F7\nMEY>JJH\"`@.KJZ@X.#@X.ZNKJZH\"`@(\"JJJJJ1I>7.3D<'!P<.3DYEY>7[N[N\nM[NZCHZ.C-C9&I&2L\\>S&IUKO:.SQK\"TP](R,C(R,C(R,C`8WS%%14<PW!HR,\nMC(R,!I3,8&!145%1]5%145%145%1S)2,C/0IVBTM9*RLK/'Q\\?'L[.SL[,9H\nML>]:6KV]O;V]O5JQQNRL+=HI]/0&8%',E`8&E)0&C/3T*=HM9*SQ\\>SL[.SL\nM[,;&QNSL[/'QK&3:*8R4-Y0&!HR,*=HM9&3Q[&A:O5IH[\"TI*=K:7#W2<1D9\nML%/M[8LT-,5G#P\\/3$Q,3$Q,3$Q,3(F)B8F)B8F)B8F)R<G)R<D6%A86%A86\nM%A86%A86%A86%A86%A86%A86%E145%145%145%145%145%145%145%145%14\nM5%145%145%145%145!945%145!86%A86%A86%A;)R<G)B8E,3$P/9\\4T[5,9\nM<=(]`[LJ>GK?1Z6E\"PL+Q#&',3$Q,8<Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<9&1FPL+\"PL+\"P&1D9&1D9\nM&1D9<7%Q<7%QTM+2TM)QTG%Q<7%Q<7%Q<7%QTM+2TM+2TM+2TM+2TM+2TM+2\nM<7%Q&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1FPL+\"P&1D9<7%Q<7%Q\nM<7$9&1D9&1D9<7%Q<7'2TM+2/3T]F9F9`UY>7KN[*GIZW]_?W]_?W]_?W]_?\nMW]]'1T>EI:6EI:4+\"PNEI:6EI4='WWHJ*KN[7EZ[7EY>`P,#`UZ[*GIZWT>E\nMI0L+\"PL+\"PMFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'ATO`=9X!`9YU=<!;6Q175U=75U=75U=7\nM5U=7S^KJ@(\"JJJJJN+BXN+BXESD<.9?-\\/#P\\/#IZ>GIZ>GIZ>D%!04%;&QL\nM;&P%!04%5555;$U-34U-34U-34U-3<'!Z.CH7U]?7U]?7U_HZ.CHZ$1$IF6F\nMIJ:FIF5E965EIJ:F@X.#Y)SKZ^2A@V5E1$I*T],N+BXN(2$A(2'3TR$[.SN^\nMODA(2$A(2'!PX2?>#0T-#=[>WM[>WM[>)][>W@T-#0W>WB<G)R?AX>$G)]X-\nM#0W>'!PY.3D<'!QV'!PYEY=&JJJJ@(\"`@(\"(B(B(M;40$+:VMA`0$(B(KJ!J\nMF\"0*G_47-PHD))B8F&IJ:K.DI*2DI*2D9*SQ[!VG[^_&[/&L+=HIF(R,C(R,\nMC(R,C`8WS%%14<R4!HR,](R,!I3,8&!145%145%145%145%1S)2,C/0IVBUD\nM9*RL\\?'Q[.SL[.S&:+&Q[UJ]O;V]O;U:[VCLK&3:*?3TC`;,46\"4C(R,C(R,\nM]\"DIVBUDK/'L[.SL[,;L[.SL[.SQ\\?&LK\"W:]`8WS#>4!@:,]-HM+62L[,;O\nM6EJQ[&3:,#W2TG$9&;!3[8O%Q6=,3$Q,3$Q,B8F)B8F)B8F)B8F)B8F)B8F)\nMB8F)R<G)R<G)R186%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86\nM5%145%145%145%145%145%145%145%145%145%145%145%145%145%145%14\nM%A86%LG)R<F)B4Q,3`_%-.VP&=*97KMZWZ6EI:5'WT='I0L+\"PNEI:4+\"PMF\nM9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<9\nML+\"PL!D9&1D9<7$9&1EQ<7%Q<7'2TCT]/=+2TM+2TM+2<7%Q<7%Q<7%Q<=+2\nMTM+2TM+2TCT]/=+2TG%Q<7$9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9&1D9\nM&1D9<7%Q<7%Q<7$9&1D9L%-34[\"PL!D9<7%Q<7%Q<7'2TCT]F0,#7EZ[NRHJ\nM>M]'1T='1T='I:6EI:6EI:6EI:4+\"PMF9F9F9F9F9F8+\"Z6EI:6E1T??W]_?\nM>GIZ*BHJ*GK?WT>EI0L+\"V9FQ#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A]\">A'B>\nM=3A;%*)75U=75U=75U=75U?/S^KJ@(\"`JJJJJKBXN+BXN#D<.9>7\\/#P\\/#I\nMZ>GIZ>GIZ>GI!04%!04%!04%;`4%!055;$U-34U-34U-34W!P<'HZ.A?7U]?\nM7U]?7U_HZ.CHZ.A$1&6FIJ:FIJ:F965EIJ:F@X.AY)SKG*&#@V5$2DK3TRXN\nM+BXAT]/3T]/3TSL[.[Z^2$A(2$A(<'#AX2<-#0T-WB<GWM[>WM[>WM[>W@T-\nMWMXG)^'AX>'AX>'A)R?>#0T-#=[>)R?>W@T-WI_6UKX^H*\"NB+6UM;6UB(B(\nMM;40$+:VMA`0$(B(KJ!JF\"0*%_6?\"B28F)AJ:FIJI*2DI*1DK*RLK/'Q[,;O\nM[Z<=[/%D+2GTC(R,C(R,C(R,C`8WS%'U4<R4C(R,C(R,!C?,45%145%145%1\nM46!145%@S#<&C/0I+2UDK*RL\\?'L[.S&QFBQL>]:6KV]O;V]6N^Q[/%DVO2,\nMC(P&E,Q143<&C(R,C(ST]\"DM9&2L\\>SL[,9H:&C&[.SL\\?&LK*RL9\"TIC)3,\nMS#>4!@:,]-HM+62L\\>RQ6KU:!1D9L%/M4U-3[8N+-,5G#TQ,3(F)B8F)B8F)\nMB8F)B8F)B8F)B8F)R<G)R<G)R<G)R<D6%A86%A86%A86%A86%A;)R<G)R<G)\nMR<G)R<G)R<G)R<G)R<G)%A86%A86%A865%145%145%145%145)*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DE145%145%14%A86%LG)B8E,3`_%-.U3&7'2F0.[*M]'\nM1T??W]_?W]_?W]]'1T??WT>E\"V8Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<9&1D9<7%Q<7%Q<7%Q<7%Q<7%QTM+2TCT]TM(]/=+2\nM<7%Q<1D9<7%Q<7%QTM+2TM+2TM+2TG%Q<7%Q<7%Q&1D9&1D9L+\"PL+\"PL+`9\nM&1D9&7%Q<7$9&1D9<7%Q<7'2TM+2TG$9&;!34^WM[>U34[`9&1D9&1D9&1EQ\nM<=+2/9F9`UZ[NRHJ>M]'1T>EI:4+\"PL+\"PL+\"PMF9F9F9L3$,3$Q,3$QQ,3$\nMQ,3$Q,1F9@L+\"PL+I:6EI:6EI0L+\"PMF9F;$Q#&'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>>=3C`6Z)75U=75U=75U?/5U?/ZNKJ@(\"`@*JJJJJX\nMN+BXN#D<'#F7S?#P\\/#P\\.GIZ>GIZ;2TZ04%!04%!04%;`4%!55L34U-34U-\nM34U-34W!P>CHZ.CHZ%]?7U]?7^CHZ.CHZ.CH1$1EIJ:FIJ:FIJ:FIJ:F@X.A\nMY)RKG*&#941$2M/3YBXN+N;3T]/3T]/3OKZ^ODA(2$A(2'!P<'#AX2<-#0T-\nMWB<G)][>WM[>WM[>WM[>WB<GX>'AX>'AX>'AX2<GWMX-#0W>WM[>#0W>G];6\nM)+X^H$.NM;6UM;6UB(B(M;40$+:V$!`0$(B(KJ!JF\"2!%Q>!))B8:FIJ:J2D\nMI*1DK*SQ\\?'Q\\?'L':?O[\\;L\\:QDVBGTC(R,C(R,C(R,!I3,8%%14<R4!HR,\nMC(R,E,Q@4?5145%1]5%145%145%@S#<&C/0I+61DK*SQ\\>SL[&BQL>_O6EJ]\nMO;V]O;U:L<;LK\"TIC)3,S,S,8%%1-P:,C(R,C(ST*=ID9*SQ[.SLQFBQL6C&\nM[/&LK*RLK/&L9\"TIC#?,S)0&!HR,]\"DM+62L\\>RQ<1FP4U/MBS0T-#0T-,5G\nM9P],3$Q,3$R)B8F)B8F)B8F)B8F)B8F)B8F)B<G)R<G)R<G)%A86%A86%A86\nMR186R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<D6%A86%A86\nM%E145%145%145%14DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI)45%14%A;)\nMR8F)3$QG-(OM4QEQTCV9F5Y>N[M>N[M>N[LJ*GK?1T='1T='I69FQ(>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=Q<7%Q<7%Q<7%Q<7%Q<7'2\nMTM+2TM+2TCT]TM)Q<7%Q<7%Q<7%Q<7%Q<7%Q<7%Q<7%Q<7%Q<7%Q<1D9&1D9\nM&1FPL+!34U-34[\"PL+`9&1D9&1D9&1D9<7%QTM+2TM+2<7$9L+!34^WM[>WM\nM[>U34[\"P&1D9&1D9&1EQTCV9`UZ[NRHJ>M]'I:4+\"PL+\"PL+\"V9F9F;$Q,0Q\nM,3$Q,3$QAX>'AX>'AX>'AS'$Q,3$Q#$Q,3$Q,3$QAX>'AX<Q,3$Q,3&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=+%*)75U=75U=75\\_/\nM5\\_/ZNKJ@(\"`@(\"JJJJJJKBXN)<Y'#F7E\\W-S?#P\\/#P\\.GIZ9/IM.D%!04%\nM!04%!04%!6QL34U-34U-34U-3<'!P>CHZ.CHZ.CHZ.CHZ.CHZ.CHZ.CH1,%E\nMIJ:FIJ:FIJ:FIJ:#@X.AY.OKG*&#941*2M/3+BXNT]/32DI*2DI*2$A(2$A(\nM2'!P<'!PX>'A)]X-#0W>WB<GWM[>W@T-WM[>WMXG)R?AX>'A<'!P<-;AX>$G\nM)]X-#0T-WM[>#0TG@=;6OCZ@0ZZUM;6UM;6UM;6UM1`0MK80$!\"UB(BNH&IJ\nM)`J?]9\\*))AJ:J2DI*2NK*SQ\\?'Q(B(B[.P=I^_OI\\;L\\:PMVBGTF(R,C(R,\nMC(P&E#?,45%14<PWE)0&!@:4S&!145%145'U4?5145%18&#,S)0&C/0I+61D\nMK*SQ\\>SL:+'O6EJ]O;V]O;V]6N^Q[/%D+?0&S%%145%18,R4C(ST]/2,C/3T\nM*2UDK/'L[.SL[&BQL6CL[/&LK&2LK/&L9\"TIC)0W-P:,C(R,]-HM+60$&;!3\nM[8N+-#3%9P],3$Q,3$Q,3$R)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)\nMB8G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<F)B8G)R<F)B8F)B8F)\nMB8F)B8F)B8F)B<G)R<G)%A86%A86%A945%145%145%14DI*2DI*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DI)45%06%LG)B4Q,9\\4TB^U3&7'2/3V9`P,#`P,#7KLJ\nM>M_?1Z6E\"Z6EI0MF,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=Q\nM<7%Q<=+2TM+2TM+2TM+2TM+2TCW2TM+2<7%Q<7$9&1D9&1D9&1D9&1EQ<7%Q\nM<7%Q<7%Q<7%Q&1D9&;\"P4U-3[>WM[5-34U-34[\"P&1FPL!D9&7%Q<7%Q<7%Q\nM&1D9&;!34^V+BXN+BXOM[>WM[>WM[5-3L!EQ<=(]F0->N[N[*GIZWT>E\"V9F\nM9F9F9L3$Q#$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'5U=75U=7SU=7SU?JZNKJ@(\"`@(\"`JJJJJKBXN+@Y'!PY.9<HS<WP\nM\\/#P\\/#PZ9.3M.D%!04%!04%!04%56QL34U-34U-34U-3<'!Z.CHZ.CHZ.CH\nMZ.CHZ.CHZ.CHZ.CHZ$1EIJ:FIJ:FIJ:F@X.#@Z'DG.OKY*&#941*2M/F+B[3\nMT]-*2DA(2$A(2$AP<'!P<'#AX>'AX>$G)PT-#0T-WM[>WMX-#0T-#=[>)R<G\nMX>'A<'!P<'!P<-;AX>'A)][>#0T-W@T-#=Z!UM:^/J!#KK6UM1`0$!`0$!`0\nM$!\"V$!`0$(B(B*ZNH&J8)`J?]9\\*))AJI*2DKJZ(\\?'Q(NSL[.P='<:G[UKO\nMQNSL\\60MVBDI]/3TC(R,C`:4-\\Q@45'U46#,S,PW-S?,8%%18,S,S&!145%1\nM45%18&#,-Y0&C/3:+61DK/'Q[.S&L>]:O;V]O;V]O5KOL6CL\\63:])114<PW\nME)0&C(ST]/3T]/3T]/0IVBVL\\>SL[.SL[.QH:&CL[/&L9&2LK*RL9-KTC`:4\nM!HR,C/3T*=I34^WMBXLT-,7%9P],3$R)B8F)B8F)B8F)B8G)R<G)R<G)B8F)\nMB8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8G)R<G)R<F)R<G)R<G)R<G)R<G)\nMB8F)B8F)B8F)B8F)B8F)B8F)B4Q,3$Q,3(F)B8F)B8F)R<G)R<D6%A86%A86\nM%E145%145)*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*25%14%A;)B8E,#V?%\nM-(OM[5.P&1EQTCT]/3T]F0.[>M_?WT='1T='I0MF9L0QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX?2TM+2TM(]TM+2/=+2TM+2TM+2TM+2<7%Q&1D9&1D9\nM&1D9&1D9&1D9&1D9<7%Q<7%Q<1D9&;!34U-3[>V+BXN+B^WM[>WM4U-34[\"P\nML+\"PL!D9&1D9&;\"PL+\"PL+\"P4U/MBXN+BXN+BXN+BXN+BXOM4[`9<=(]F0,#\nM7EY>NRHJ>M]'I:4+\"V9FQ,3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AU=75U=75\\_JZNKJZNJ`@(\"`@*JJ\nMJJJXN+B7.1P<'#F7*,W-S<W-S?#P\\%\"3M.D%!04%!04%5555!6QL34U-34U-\nM34U-3<'!Z.CHZ.CHZ.CHZ.CHZ.CHZ.CHZ.CHZ$1EIJ:FIJ:FIJ:#@X.#H:'D\nMZZN<Y(.#941*2M/F+N;32DI*2$AP<'!P<'!PX>'AX>'AX>'A)R?>#0T-#0T-\nM#0T-#0T-#0T-#0W>)^'AX7!P&!@8&-88<-;6X>'AX2?>#0T-#0T-WI_6UKX^\nMH*!#M;6U$!`0$!`0$!`0$+80$!\"(B(BNKJ\"@:I@D)($7]9\\*))AJI*2NB(C<\nM(NSL'<;&MK:VIZ?O?N^G'>SQK&0M+=HI*2GT](R,C)0WS,Q@8%%145%18&!@\nM8&!@45%18,PW-\\Q@45%1]5%146#,-P:,]\"G:+62L\\?'L[.QH[UJ]O;V]O;U:\nM[['&[.RL+2F,-U%@-P:,]/3T*2DI*2DI*2GT]/0IVF2L\\>SLQNSL[.SLQL;L\nM[*QD9&1DK*QD+=KTC(R,C(ST]!FPL%-3[8N+BS0TQ<5G#TQ,B8F)B8F)B8F)\nMB8F)B8F)B8F)R<G)R<G)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)\nMB8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B4Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3(F)B8F)R<G)R<D6%A86%A865%145%145%145%14DI*2DI*2DI*2DI*2\nMDI*2DI*2DI)45!86R<F)B4Q,#V?%-(OM[5.PL!D9&7%QTCT#NRK?WT='1T='\nMI0MF9F9F9F;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?2TM+2TM+2TM+2TM+2TM+2\nMTM)Q<7$9&1D9&1FPL+\"PL!D9&1D9&1D9&1D9<1D9&;\"P4U/M[>V+BXN+BXN+\nMBXN+BXOM[>WM4U-34U-3L%-34U-34U-34U-3L+!34U/M[8N+[8N+BXN+BXN+\nM[>U34[`9<=(]F9D#7EZ[*BIZW]]'I0MF9L3$,3$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?/\nM5U?JZNKJZNKJZNJ`@(\"JJJJXN+B7.3D<'!PYERC-S<W-S<W-\\%\"3Z;3I!04%\nM!;2TM+2T56QL34U-34U-34U-3<'!Z.CHZ.C!P>CHZ.CHP<'HZ.CHZ.CH1$1E\nMIJ:F@X.#@X.#@X.AH>2<Z^N<H8.#941*2M,NYM/32DI$<&5E9>'AX>'AX>'A\nMX:$G)R<GW@T-#0T-#0T-#0T-#0T-#0T-#=XG)^'A<'`8OKZ^OKX8&-;6UN'A\nMX2?>W@T-#0W>)X'6)+X^H$-#M;40$!`0$!`0$!`0$!`0M8B(KJZ@H*!JF\"0D\nM\"I\\7]9\\*))AJI*Z(B-RY[!W&MK:GIZ?O[W[OIZ?&[.SQK&1D+=K:*2GT](R,\nM!I0WS,S,8&!145%145%145%145%1S#<W-S?,8%%145%18,PWE(R,]\"G:+:RL\nM\\>SL[&BQ6KV]O;V]6EJQ:.SLK&0M*8PW46\"4C(ST*=K:+2TM+2W:VMHI*2DI\nMVF2L\\>SL[.SL[.SL[.SL\\:QD9&1D9&0MVBGT]/2,<7$9L+\"PL+\"P4U/M[>WM\nM[>V+-,5G3$Q,3$Q,3(F)B8G)R<G)R<G)R<G)R<G)R<F)B8F)B8F)B8F)B8F)\nMB8F)B8E,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$R)B8F)B8E,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$P/#TQ,3$R)B8G)R<G)R<D6%A86%A945%14\nM5%145%145%145%145)*2DI*2DI*2DI*2DI*2DE14%A;)R<F)B4Q,3&?%-(OM\nML+`9&7'2TM(]F0.[*GK?>M]'1Z6EI0L+9F;$,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?2\nMTM+2<=+2TM+2TM+2TM)Q<7$9&1D9L+\"PL!D9&1D9&1D9&1D9&1D9&;\"PL%-3\nM[>V+BXLT-#0T-#0T-#2+BXN+B^WM[>U34U-34U-34U/M[>WM[>WM4U-34U/M\nM[>WM[>V+BXN+[>WM[5-3L!EQTCT]F0->NRHJ>M_?1Z6E\"PMF9L0Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'ZNKJZNKJZNJ`@(\"JJJJJN+B7ESDY.1P<.9<H\nM*\"@H*,W-S5\"3D[3IM+2TM+2TM+2T5<Y-34U-31(2$A+!P<'!Z.CHZ.C!P<'!\nMP<'!P<'!P41$Z.A$1$2FIH.#@X.#@X.#@Z'DG)SKZYSDH8.F941*2M,NYM-*\nM2D1$967AX:&AH:&AH:&A)R?>WMX-#0T-#0T-#0T-#0T-#0T-#0T-#=XGX>%P\nM<$B^OKZ^OKZ^&-;6UM;6X>$GWMX-#=XGX=;6OCZ@H$.UM1`0$!`0M;6UM;6U\nMM;6UB(BNKJ\"@:FHD)\"0*@9_U%Y\\*))AJI*Z(W+FYMK:G[^_O[^_O[Z>GQAWL\nM[/'QK*QD+2W:,\"DI](R,!I0W-S<WS,Q@45%145%145%145%18,PW-\\S,45%1\nM45%1S#>4C(ST*=HM9*SQ[.SL:+%:O;V]O;U:6K%H[/&L+=KTC,Q18)2,C/0I\nMVBUD9&1D9&0M+2W:VMK:VF2L\\>SL[.SQ\\?'Q[.SL\\:QD9&1D9\"W:*2@9L+!3\nM4U-3[5-34U-34U-3L+\"P4U/MBS3%9P],3$Q,3$R)B8F)B8G)R<G)R<G)R<G)\nMR<G)R<G)B8F)B8F)B8F)B8F)B8F)B8F)B4Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$R)B4Q,3$Q,#P]G9V=G9V=G9V</#P]G#P\\/#P\\/#P\\/#P\\/#P\\/3$Q,\nM3(F)B<G)R<G)R<D6%A86%A86%A86%A86%A945%145%145)*2DI*2DI*2DI*2\nMDI)45%06%A;)B8F)3$P/9\\4T[5.P&1EQTM+2/9D#7KN[*BHJ>M]'\"V9F9F9F\nMQ,3$AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=Q<7%QTM+2TM+2TG%Q<7$9&1D9&;\"PL+\"PL+\"P&1D9\nM&;\"PL+\"PL%-34^WMBXN+-#0TQ<7%Q<7%Q<4T-#0T-(N+[>WM4U-34U-3[>WM\nM[>WM[>WM[>WM[>WM[>WM[>WM[>WM[5-3L+`9&7'2/9F9`P->NRHJ>M]'I0L+\nM9F9FQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>`ZNJ`@(\"`\nMJJJJN+B7EY>7.1P<.3F7EY>7ERC-S<U0D[3IM+2TM+2TM+2T5<Y-34U-31(2\nM$A+!P<'!Z.CHZ,'!P<'!P<'!P<'!IL'!1$1$1*:F@X.#@X.#@X.AH>2<G.OK\nMZ^2A@X.F941*T^8NT]-*1$1E9>&#H:&A)]X-#0W>#0T-#0T-#0T-#0T-#0T-\nM#0T-#0T-#0W>WB?AX>%P2+Z^OKZ^OKZ^OM;6UM;6UN'A)][>WB?AUM:^/CZ@\nM0T.UM1`0$+6UM;6(B(B(B(BNKJZ@H&IJ:B0D)`J!GQ?U%Y\\*))AJI*Z(N;FV\nMI^_OIZ>GIZ>VQL8=[.SQ\\?&LK*QD+2W:VBDI](R,!I24E)24E#?,45'U4?7U\nM45%145%145%@8%%145%145%@S)0&C/0IVBUDK/'L[,9HL>]:O;V]O;U:[['L\nM[*PMVO2,-U%1-P:,]/0IVBUDK*QD9&1D9&0M+=K:+62L\\>SL[.SQ\\?'Q\\>SQ\nM\\:QD9&2:NUX#F3W2TG%Q&;!34U-3[>WM[>WM[>WM[8N+BXLTQ6</3$Q,3$Q,\nMB8F)B8F)B<G)R<G)R<G)R<G)R<G)R<G)R<G)R8F)B8F)B8F)B8F)3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$P/#V=GQ<7%9V=G9V=G9V?%Q<7%\nMQ<7%Q<7%9V</#P\\/#V</#TQ,3$Q,B8F)R<G)R<G)R<G)%A86%A86%A86%A86\nM%A945%145%22DI*2DI*2DI*2DI*25%14%A;)R<F)B4Q,#\\4T[5-3L!D9<=(]\nM/9F9`P.9`UZ[NRIZWT='I0L+9F9FQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=Q<7%Q<7%Q<7%Q<7$9&1D9\nM&1FPL+\"P4U-34U-34U-34^WM[>V+BXLT-#0T-,7%Q<7%Q<7%Q<7%Q<7%-#2+\nMB^WM4U/M[>WM[>WM[>WM[5-34U/M[>WM[>WM[>WM4U-3L!D9&1EQTM(]/9F9\nM`UZ[*BIZWT='I0MF9L0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX\"`JJJJJKC-EY>7ESD<.3F7EY>7EY?-S<U0DY.TM+2T\nMM+23M+2T5<Y-34U-31+!P<'!P<'!Z.CHZ,'!P<'!P<&FIJ:FIJ:FP<&FIJ:#\nM@X/DY.3DY.3DY)SKZ^N<Y*&#@Z9E1$I*T^;FTTI*1&5EX8.AH:$-#0T-#0T-\nM#0T-#0T-#0W>W@T-#0T-#0T-WM[>)R<G)R?AX7!P2+Z^OKZ^OKZ^OKZ^OM;6\nMUM;6X>'AX8'6UM:^/J\"@0[6UM1`0$+6UM8BNKJZ@H*\"@H&IJ:FHD)\"0D\"H&?\nM%_7UGX$D))AJI(C<N;;OI[:VMK:VQL8=[.SL\\?'QK*RLK&1D+2TMVBDI](R,\nMC`8&!HR,!I3,8%'U45%145%145%145%145%18&!@8&#,-P:,]\"G:+62L\\>SL\nMQFBQ[UJ]O;V]O;U:[VCL\\63:*8R48%',E(ST]\"G:+61DK*RLK*RLK&1D+2TM\nM+62L\\>SL[.SQK*RL\\?'Q\\0L+\"PL+\"Z5'WRI>F=)Q<1FP[8LT-#0TBXN+BXOM\nMBXLT-#0T-,5G9P],3$Q,B8F)B8F)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<F)\nMB8F)B8F)B8E,3$Q,#P\\/#P\\/#P\\/#TQ,#P\\/#P\\/#P\\/3$Q,3$Q,3`\\/9\\7%\nMQ<7%Q<7%Q<7%Q<4T-(N+BXN+BS0T-#3%Q<7%Q<7%Q<5G9P],3$Q,3$R)B8F)\nMB8F)R<G)R<G)R<D6%A86%A86%A865%145%14DI*2DI*2DI*2DI*2DE14%A;)\nMR<F)B4Q,#V?%-#2+[5-3&1EQTM+2TM+2TCV9`P->7KLJ>M_?WT='I:4+9L3$\nMQ#$Q,8>'AX>'AX<QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=Q\nM<7%Q<7$9&1D9&1FPL+!34U/M[>V+BXN+BXN+BXLT-#0TQ<7%Q<7%Q<7%Q<7%\nM9V=G9V?%Q<7%Q<4T-(N+B^WM[>WM[>WM[>WM[5-34U-3[>WM[>WM4U-3L+\"P\nM&1EQ<7'2TM(]F0,#7EZ[*GK?1Z6EI0MF9L0Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'1KBXEY>7ESD<.9>7\nM*)>7ERC-S<U0DY.TM+2TM+2TM+2T5<Y-34U-31+!P<'!P<'!P>CHZ.C!P<'!\nMP<&FIJ:FIJ:FIJ:FIJ:#Y.3DY.3DY)R<Z^OKZYSDH8.#IF5$1$K3YN;3TTI$\nM966#@Z&AH0T-#0T-#0T-#0T-#=[>WB<G)R?>W@T-WMXG)R<GX>'AX>'A<'!(\nMOKZ^OKZ^OKZ^OKZ^OKZ^UM;6UM;6UM;6UKZ^/J!#0[6UM1`0$+6UM:ZNH*\"@\nMH#X^/FHD)\"0D)`H*@9^?%_47GPHDF&IJI(C<MK:VML8='>SL[.SL\\?'QK*RL\nMK*QD9&1D+2TMVC`I]/2,C(R,C(R,C`8WS%%145%145%18&!@8&#,S,PW-S<W\nM-S<W!HST*=HM9*SQ[.SL:+'O6EJ]O;V]O;U:[VCLK\"W:]`;,45$W!HST]\"DI\nMVBUD9&1DK*RLK*QD9\"TM+61DK/'L[/&LK&1F\"Z5'I:6EI:6EI4='WWHJNP.9\nMTG&P[8O%9V</3$Q,3`\\/#V</#P]G9P\\/#TQ,3$R)B8F)R<G)R<G)R<G)R<G)\nMR<G)R<G)R<G)R<G)R<F)B8F)B8F)3$Q,3$Q,3`]G9V=G9V?%Q<7%9\\7%Q<5G\nM9V=G9P\\/#P\\/#V=GQ<4T-#0T-#0T-#0T-#0T-(N+B^WM4U-34U/MBXLT-#0T\nM-#0T-#0TQ<5G9V=G#P],3$Q,B8F)B8F)B8F)R<G)R<D6%A86%A865%145%14\nM5%22DI*2DI*2DI*2DE145%06%A;)R8F)3$Q,#P]G9\\7%Q32+[>U3L!D9&7%Q\nMTIF9F9D#`P->NRHJ*GK?1T>E\"PMFQ,3$Q,1F9@L+9F;$Q#&'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<9&1D9L+\"PL+!34U-3[8N+BS0T-#0TQ<7%Q6=G9V=G\nM9V=G9P\\/#V=G9V=G9V=G9V=G9V?%Q<7%-#0T-#2+BXN+BXN+[>U34U-3[5-3\nM4U-34U-34[\"P&1D9<7%Q<=+2TCV9`UZ[NRHJ>M]'I:4+\"V9F9L0QAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<YESD<.9<H*\"@H*\"C-S<U0DY.TM+2TM+2TM+2T5<Y-34U-31+!\nMP<'!P<'!P>CHZ.CHP<'!P4VFIJ:FIJ:FIJ:FIH/DY.2<G)SKZ^OKZ^N<Y*&A\nM@X.F941$2M/3YN;32D1$98.#H:&A#0T-#0T-#0T-#0T-WMXG)R<G)R<G)R<G\nM)R?AX>'AX>'AX>%P<$B^OKZ^OKZ^OKZ^OKZ^OKZ^OM;6UM;6UM;6OKX^/J!#\nM0[6UM1`0$+6UM:ZNH*\"@/CZ;)\"0D)\"0*\"H&!GY\\7]1>?@0HDF&JDKHBYMN^V\nMQNSL[\"+Q\\?'QK*QD9&1D9&1D9&1D+2TMVMHI*?3TC/3T]/3TC(R4S&!145%1\nM46!@S,S,-Y24!@:,C`8&!@8&C(STVBUDK/'L[.QHL>]:6KV]O;V]O;U:[VCL\nMK\"TI]`;,45',!HST]\"DIVBTM9&1DK*RLK*QD9\"TM+61DK/'IAX>'AX>',<3$\nM9F8+\"PNEI4??*KL#F3T]TG$9L%/M-,5G9P\\/#TQ,3$Q,#P\\/3$Q,3$R)B8F)\nMB8G)R<G)R<G)%A86%A86R<G)R<G)R<G)R<G)R<G)R8F)B8F)3$Q,3$Q,#P\\/\nM9V?%Q<7%Q<4T-#0T-#0T-#0T-#0T-,7%9\\7%-#0T-#0T-#2+BXN+BXN+BXN+\nMBXOM[5-34U-34U-34^WM[>WM[>WM[>WM[8N+BXLT-,7%9P\\/3$Q,3$R)B8F)\nMB<G)R<G)%A86%A86%A945%145%14DI*2DI*2DI*25%145%14%A86R<G)R8F)\nMB4Q,3$Q,3$Q,9\\4T-.U3L+`9&7'2TM+2/3V9F0,#7EZ[*M]'I0L+9F9F\"PNE\nMI:5'1T>E9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>PL%-34U/M[>V+BS0TQ<7%\nMQ6=G9V</#P\\/#P\\/#P\\/#P\\/#P\\/#P\\/#P\\/#P]G9V=GQ<7%Q<7%Q<4T-#0T\nM-#2+BXN+[>WM[>WM4U-34U.PL!D9&1EQ<=+2TM+2/3V9`UZ[*GIZWT>E\"V9F\nM9F9FQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>7S<W-*\"C-S<W-4).TM+2T\nMM+23M+2TM%5L34U-31(2P<'!P<'!P>CHZ.CHP<'!P::FIJ:FIJ:FIJ:F@X/D\nMY)SKZ^OKJ^OKG.2AH8.#@Z9E941$2M/FYM-*2D1E@X.AH:$-#0T-#0T-#0T-\nM#=[>WB<G)^'AX>'AX>'AX>'AX>'A<'!P<'`82$B^OKZ^OKZ^OKZ^OKZ^OKZ^\nMOK[6UM;6UM:^OCX^H*!#0[6UM1`0$!\"UM:ZNH*`^/B0D)\"0D\"@J!@9^?%_7U\nM%Y^?\"B0D:FJDB-RYMK:V'>PB\\?'Q\\:RL9*2DI*2DI*2DI&1D+2TM+=HI*?3T\nM]/3T*2GT](P&-\\Q145%146#,S#>4!HR,C/3TC(R,C(R,C/0I+62L\\>SL[&AH\nML5I:O;V]O;V]O;U:[VCLK\"W:](PW45',E(ST*2G:VMHM+61DK*RLK*QD9\"W:\nMAX>'AX>'AX>'AX>'AX>'AX<QQ&9F\"Z5'WRI>`P.9/=)Q<1FP4^WM[>V+BS0T\nMQ<7%Q<5G9P],3$R)B8F)R<G)R<G)R186%A86%A86%A86%A;)R<G)R<G)R<G)\nMR<F)B8F)B8E,3$Q,#P\\/9V=GQ<4T-(N+B^WM[>WM[>WM[>WM[>WMBXN+BXN+\nM[8N+BXN+B^WM[>WM[>WM[>WM[5-3L+\"PL+\"PL+\"PL%-34U-34U-34U-3L+\"P\nM4U-34^V+-,5G#TQ,3$Q,B8F)B<G)R<G)R186%A86%A86%A945%145%14DI*2\nMDI)45%145%145!86%A;)R<G)R8F)B8F)B8E,3$P/#V?%-(OM4[`9&;\"P&1EQ\nMTCT]F0.[>M]'I0L+9F9F\"PNEI4??WT>E9F;$Q#$Q,8>'AX>'AX>'AX>'AX?M\nM[8N+BXN+BS0TQ<5G9V=G9P\\/3$Q,3$Q,3$Q,3$Q,3`\\/#TQ,3$Q,3`\\/#P]G\nM9V=G9V=GQ<5G9\\7%Q<7%-#0T-(N+B^WM[>U34U.PL+`9&1D9<7%QTM(]/9F9\nMF0.[*GK?1Z6E\"PL+\"PMFQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<YS<U0DY.TM+2TM+23M+2TM%5L34U-31(2P<'!P<'!Z.CHZ.CHZ,'!\nMP::FIJ:FIJ:FIJ:F@^3DG.OKJ^OKZYSDY*&#@X.FIF5E1$1*T]/;YM-*1&6#\nM@X.AH:$-#0T-#=[>WM[>WM[>)R<GX>'AX>'AX>'AX>'AX7!P<'!P&!A(OKZ^\nMOKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OCX^H*!#0[6UM1`0$!\"UM8BNH*`^\nMFR0D)`H*@9^?GQ?U]1<7GX$*)\"1J:J2NB+FVMK:V'>SQ\\?&LK&2DI*2DI*2D\nMI*2DI&1D+2TM+=HI*2GT*2DI*2DI](R,E#=@4?518,S,-Y0&C(ST]\"DI]/3T\nM](ST]\"G:+:SQ[.SL:&BQ[UJ]O;V]O;V]O;U:L<;LK&3:*8R48%',E(ST*2G:\nMVMHM+61DK*P_AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$\"Z5'WWHJNUX#\nM`YF9/3W2<1D9L%-34^WMBXN+-,5G9P],3$Q,3(F)B8G)R<G)R186%A86%A86\nM%A86%A86%A86%LG)R<G)R<G)R<F)B8F)B4Q,3$P/9V?%Q<4T-#2+B^WM4U.P\nML+\"PL+\"PL%-34U-3[>WMBXN+[>WM[5-34U-34U-34U-34U-3L+`9&1D9&1D9\nML+\"PL+\"P4[\"PL+!3L+\"P&;\"PL+\"P4^V+-,7%9P\\/3$Q,3(F)B8F)B<G)R<G)\nMR<G)R<G)%A86%A945%145%145%145%145%145%06%A86%A;)R<G)R<G)R8F)\nMB8E,3$Q,3`]G9\\4T-(N+B^U34[`9TCT#NWK?1Z6E\"PMF9F9F\"T='W]]'I0L+\nM\"V;$,3&'AX>'AX>'AX>+BXN+BS0TQ<5G9V</#TQ,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,#P\\/#P\\/#V=G9V=G9V=G9V=G9\\7%Q<7%-#2+B^WM[>U34[\"P\nM&1EQ<7%QTM(]/9F9`UZ[*M_?1T>EI0MF9F;$,3&'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,3$9F9F9F9FQ,3$,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'Z;2TM+23M+2TM`5L34T2$A+!\nMP<'!P<'!Z.CHZ.CHZ,'!P::FIJ:FIJ:FIJ:F@^3DZ^NKZ^OKG.2A@X.FIJ9E\nM965$1$I*T]O;TTI*1&6#@X.AH:$-#0T-WB<G)R<G)R<G)R?AX>'AX>'AX7!P\nM<'!P<'!P<'`82+Z^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ^OKZ^.SZ@H*!#\nM0[6UM1`0$!`0M;6NH*`^)\"0DU@J!GY\\7]?7U%Y^?\"B0D)&IJI*Z(W+FVMK:V\nM'>SQ\\:QDI*2DI*2DI*2DI*2DI\"TM+2TM+=HI*?3T*2DI*2DI](R,!I3,8%%1\nM8,PWE`:,C(ST*2DI*2GT]/3T*=HM9*SQ[.QH:+'O6KV]O;V]O;V]6EJQ:.SL\nMK&0M*8R48%',!O0I*=K:VBV'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',<1F\"PNE1]_?>KM>`YF9F9D]/3W2TG%Q&;\"P4U-3[8LT-,7%9V</#TQ,\nM3(G)R<G)%A86%A86%A86%A86%A86%A86%A86%A86R<G)R<G)R<F)B8F)B4Q,\nM3$P/9V?%-#2+[>U34[\"PL!D9&1D9&1D9&1D9L+\"PL+\"PL%-34[\"P&1D9&1D9\nM&1D9&1EQ&1D9&1D9&1D9&1D9&1D9L+\"PL+\"PL+\"P&1D9&;\"PL+\"P4^WMBXLT\nM-,5G#TQ,3$R)B8F)B8F)B8G)R<G)R<G)R<G)%A86%E145%145%145%145%14\nM5%145%14%A86%A86%A86R<G)R8F)B4Q,3$Q,3$Q,3`]GQ<4TB^U34QEQ/9E>\nM>M]'I0L+\"PL+I4??W]_?WT='I0MF9F;$Q#&'AX<T-#0TQ<5G9P\\/#TQ,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#P\\/#V=G9V=G9V=G#P\\/9V=G9P\\/\nM9V=GQ<4TBXOM4[\"P&7%QTM+2TCT]F9D#7KN[*GK?WT='I:4+9F;$Q,0Q,8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,3$Q,3$Q&9F\"PL+I:6E\nMI0MF9L0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AU\"T505L31(2P<'!P<'!P<'HZ.CHZ.CHP<'!P::FIJ;!P::FIJ:F@^3D\nMZZOKZYR<Y*&#@Z:F965E1$1$1$I*T]O;TTI*1&6#@X.AH:$-#0T-)R>AH:&A\nMH2?AX>'AX>'AX>'A<'!P<'!P<'!P<!A(OKZ^OKX[.SL[.[Z^OKZ^OKZ^OKZ^\nMOKZ^OKZ^.SL[/CX^H*!#0[6UM1`0$!`0M;6NH*`^)\"36UH&?GQ?U]1>?GPH*\nM)\"28:FJ@I*Z(W+FVMN^VQNSQ\\:RDI*2DI*2DI*2DI*2DI\"TM+2TMVC`I]/3T\nM*2DI*2GT](R,C`8WS%%18,PWE`:,C/3T*2DI*2DI]/0I*=HM9/'L[,9HL5I:\nMO;V]6EI:6N_O[[%H[.SQK&0M*8R48%$W5H>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',<1F\"PNEI:5'WWHJ*KM>`P,#F9F9F9F9/3W2\nMTM)Q&1FP4U/MBS3%9P],3(F)B<G)R<D6%A86%A86%A86%A86%A86%A86%A86\nM%A86%A;)R<G)R<F)B8F)3$Q,3$P/#V?%Q32+4[\"P&1D9L!D9&1D9&1D9&1D9\nM&1D9&1D9&1D9<7%Q<7%Q<7%Q<=+2/3W2TG%Q&1D9&1D9&1D9&1D9&1D9&1D9\nM&1D9&1D9&1D9L+\"PL%-3[>V+BS3%9P],3$Q,3$Q,B8F)B8F)B8F)R<G)R<G)\nMR186%A865%145%145%145%145%145%145!86%A86%A86%A;)R<F)B8F)B8F)\nMB8F)B4Q,3`]GQ32+B^U3&7$]7KMZWT='1Z6E1T='1T='1]]'1Z6EI0L+\"V;%\nMQ<5G9P\\/3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#P\\/#P\\/\nM#P\\/#P],3$Q,3$Q,3`\\/9\\4TBXOM4[`9&7%QTM(]/9F9`UY>NRHJ*GIZWT='\nMI:4+\"V9F9F;$Q#$Q,8>'AX>'AX>'AX>'AX>'AX>'AS&',3$Q,<3$9F9F\"PL+\nM9F9F\"Z6E1T='1T='1Z6EI0L+\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>`P<'!P<'!P>CHZ.CHZ.CHP<'!\nMP::FIJ;!P<'!IJ:F@^3DZZOKZYSDY(.#@Z9E941$1$1*2DK3T]O;TTI*1&6#\nM@X.AH:$-ZPVAH:&AH:&AX>'AX>'AX>'AX>%P<'!P<'!P<'!P&$A(OKZ^OCL[\nM.SL[.SL[.[Z^OKZ^OKZ^OKZ^OCL[.SL[.SX^H*!#0[6UM1`0$!`0M;6NH*`^\nM)\"36UI^?%_7U%Y^!\"B0D))AJ:J\"@KHB(W+FVMN^VMNPB\\62DI+.SLZ2DI*2D\nMI*2DI\"TM+2W:VBGT]/3T]\"DI*2GT](R,C`8WS%%14<S,-Y0&C(ST]\"DI*2DI\nM*2DIVBUDK/'L[&BQ6EJ]O;U:[[&QL6AH:.SL[/'QK&3-AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&9F\"PNEI4='\nM1]]Z*BJ[N[N[N[N[7@,#`YF9F9F9/3W2<1FP[8LT9P],B8F)R<G)R<D6%A86\nM%A86%A86%A86%A86%A86%A86%A86%A86%LG)R<F)B8F)3$Q,3$P/#P]GQ32+\nM[5-3L+\"P&1D9&1D9&1D9&1D9L+`9&1D9&7'2TCW2TCT]/=+2TCT]F9F9/=+2\nMTG%Q&1D9&1D9&7%Q&1D9<7%Q<7%Q<7$9&1D9L+\"P4U-3[>WMBS3%Q6</#TQ,\nM3$Q,3(F)B8F)B8F)R<G)R<G)R<G)%A86%A865%145%145%145%145%06%A86\nM%A86%A86%A;)R<G)R<F)B8F)B8F)B8F)B4Q,#V?%-.U3L!EQ/0->*GK?WT='\nM1T='1T='1T??WT>E\"PL/#P\\/3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$P/9V?%-(OM[5.P&7%Q<=+2/3T]\nMF5Z[*GIZ>M_?W]]'1Z6EI:6EI:4+9L3$Q#&'AX>'AX>'AX<Q,3$Q,3'$Q&8+\nM\"PL+\"Z6EI:5'1T='1]_?WT='1T='W]_?W]_?W]]'I:6E\"V;$,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'A^KHZ.CHZ,'!P<'!IJ:FIL'!P<'!IJ:F@^3DG.NKZYSDY(.#IF5E1$1$\nM2DI*2M/3T]O;TTI*1&6#@X.AH9P-ZPVAH:'AX>'AX>'AX>'AX>'AX7!P<'!P\nM<'!P<'!P&$B^OKZ^.SL[.SL[.SL[.SN^OKZ^OKZ^OKZ^OCL[.SN^OCX^/J\"@\nM0T.UM;40$!`0M;6NH#YJ)\"36@9\\7]?47GX$*)\"0DF&IJ:J\"NB(C<N;FVMN^V\nMMATB\\62DI+.SLZ2DI*2DI*2DI*0MVMK:*2GTF)CT]/0I*?3TC(R,!I3,8%%1\nM46#,S#>4!HR,]/0I*=K:VMK:VBUDK/'LQFCO6KV]O5KOL6C&[.SLZ8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS'$Q&9F9@NE1T='1T='1T='W]]Z>BHJ*BJ[NUY>`YD]<1D9\nM4^TTQ0],3(F)B8G)R<G)R186%A86%A86%A86%A86%A86%A86%A86%A86%LG)\nMR<F)B8F)3$Q,3$Q,3`]GQ32+[>U34[\"PL!D9&1D9&1D9&1D9&1D9&1D9<7'2\nMTCT]/3T]/3T]/3V9F3T]F3T]TG%Q&1D9&1D9&1D9&1D9&7%Q<7%Q<1D9&1D9\nM&1FPL%-3[>V+BS3%Q<5G9P],3$Q,3(F)B8F)B8G)R<G)R<G)R<G)R<D6%A86\nM%A86%A86%A86%A86%A86%A86%A86%A86%A86R<G)R<G)R<G)R<G)R8F)3$Q,\nM#V?%-(OML!EQTIE>*GK?1T='1T??WWIZ>M_?W]],3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,B8F)B8E,3$Q,3$Q,3$Q,3$Q,3`\\/#P\\/#P\\/#P\\/#TQ,#V=G9\\7%Q30T\nM-(OM4[\"PL!D9<=(]/0->NRIZ>M_?1T='1T>EI:6EI:4+9F;$Q#$Q,3'$Q#'$\nMQ&9F9F9F\"PL+I4='WWIZ>GHJ*BHJ*BHJNUY>NRIZ>GIZ>GHJ*BHJ*BIZ>M_?\nMW]]'I0L+9L3$,8>'AX>'AX>'AX<Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',:K!IJ:FIL'!P<&FIJ:F3>3D\nMG.NKZ^3D@X.F965$1$I*2DI*T]/3V]O3TTI*1&6#@X.AH9SKZZ&AH:'AX>'A\nMX>'AX>'AX>'A<'!P<'!P<'!P<'!P&$B^OKZ^.SL[(2$A(2$A.SL[OKZ^OKZ^\nMOKZ^OCL[.[Z^OKZ^/CZ@H$-#M;40$!`0M;6NH#Z;)-:!GQ<7]1>?@0HD)\"28\nM:FIJH*\"NB(C<N;FVMN^VMATB\\:RDI*2SI*2DI*2DI*2DI*0MVMK:*2GTF)CT\nM]/3T]/2,C`:4-\\Q@4?5145%@8&#,-Y0&C/0I*=K:VMK:+2UD\\>SL:+%:6KV]\nM#H>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q&8+\"PL+I0L+\nMI:6EI4='1]_?>KM>`YG2<1FP4XLTQ6</3$R)B8F)R<G)R<G)R<D6%A86%LG)\nM%A86%A86%A86%LG)R<G)R<G)R<F)B8F)3$Q,3$P/9V?%-(OM4U.PL!D9&1D9\nM&1EQTM+2TM+2TM+2TM+2TCT]/3V9F9F9F9F9`P->7EY>7@,#F9F9/=+2<7%Q\nM<1D9&1D9<7%Q&1D9&1D9&1D9&1FPL+!34^WMBS0TQ<5G9P],3$Q,3$R)B8F)\nMB8G)R<G)R<G)R<G)R<D6%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86\nM%A86R<G)R<G)R<F)B8F)3$Q,3`]G-.U3L!G2/0->*M]'1T='1T??>GIZ>GI,\nM3$Q,3$Q,3$Q,3$Q,3(F)3(F)B8E,3$Q,3$Q,3$Q,3$Q,3$Q,#P\\/#P]G9V=G\nM9V=G9V?%Q<7%-#0T-(N+[>WM[5-3L!EQTCV9`[LJ*GIZ>GK?W]]'I:6E\"Z6E\nM\"V;$Q#$Q,3$QQ,1F\"PNE1T='W]]Z*KN[7EY>7KN[NUY>`YD]/9F9`P.[*BHJ\nM*BHJ*BJ[NUY>7KN[*BHJ*GIZWT='I:4+9F9F9F9F9F;$Q,0QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\nM\"PNE1]]Z>GJJIJ:F3>3DG.NKG.3D@Z9E941$1$I*2DK3T]/;V]O32DI$1&6#\nM@Z&AG.OK#:&AH>'AX>'AX7!P<'!P<'!P<'!P<'!(<'!P<'!(2$B^OKZ^.SL[\nM(2$A(2$A(3L[.[Z^OKZ^OKZ^.SL[.[Z^OKZ^OCX^H*!#KK6U$!`0M;6NH#XD\nM)-:?G][U%Y^?\"@HD)\"28:FIJH*\"NB(C<N;FVMN^VMAWL\\:RLI*2DI*2D9&1D\nM9&2DI*0M+=K:,\"GT]/3T]/3T](R,E#?,8%%1]5%145%145%18,R4C(ST*2G:\nMVMK:+60$AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<Q,<3$Q,1F9F9F\"Z5'1T??WWHJNUX#/=(9L%/M[8LT-,4/3$Q,\nMB8F)B8G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R8F)B8F)3$Q,\nM3`]G9\\4TBXOM4U.PL+\"PL+\"P&1D9<7'2TM+2TM+2TM+2/3V9F9F9`P,#`P->\nM7KN[N[M>7EY>7EY>`YF9/3T]TM)Q<7%Q<7%Q<=)Q<7%Q&1D9&;\"PL+\"P4^WM\nMBS3%9V</#TQ,3$Q,3$Q,B8F)B8F)B<G)R<G)R<G)R<G)%A86%A86%A86%A86\nM%A86%A;)%A86%A86%A86%A86%A86%LG)R<F)B8F)B4Q,3$P/#V<TBU.P&7'2\nM/9D#7BIZW]_?W]_?>M],3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3`\\/#V=GQ<4T-#0TQ33%Q<4T-#0T-#2+BXOM[5.PL+`9&=(]F0,#7KN[\nM*BIZ>M]'I:6E\"PL+\"PL+\"V9F9F9F9@NE1]_?WWHJNUX#/=+2TCT]F0,#`P,#\nM`YD]/3V9F0->N[N[NRHJ*BHJN[N[7KN[NUY>7EZ[N[LJ*BIZW]]'1Z6EI0L+\nM9F;$AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS'$9@NE1]]Z*KN[7EX#F3W2<1E3B\\4/3#GD@Z9E1$1$2DI*\nM2M/3T]O;V]/32DI$1&6#@Z&<Z^OKG*&AH>'AX>'A<'!(2$A(2$A(2$A(2$A(\nM2$A(2$A(2$B^OKZ^OCL[.SLA(2$A(2$[.SN^OKZ^OKZ^.SL[.[Z^OKZ^OKX^\nM/J\"@0ZZUM1`0$+6NH#XD)-:?WO7U%Y^!\"B0D))B8:FIJH*\"NB-RYN;:VMN^V\nMMAWL\\?'QK*RLK*RLK*RLK&1D9*0M+2W:VBDI*?3T]/3TC(R4S&!145%18&!@\nM45%145%146!@.8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$9@NEWWIZ>GHJ*BJ[\nM7@,]TAD9L%/MBS0TQ<5G9P],3$R)B8F)B8F)B8G)R8F)B8F)R<G)R<G)B8F)\nMR8G)R<G)R<G)B8F)B4Q,3$P/9\\7%-#0TBXOM[>WM4U-34[\"P&7'2TCT]/3T]\nM/3W2TM+2/3T]/9F9`P->N[LJ*GHJ*BHJ*KN[7EY>`P,#F9F9F3T]TG%Q<7'2\nMTCW2<7%Q&1D9&1D9&;\"P4U/MBXLTQ6=G9P],3$Q,3$Q,3(F)B8F)B8F)B<G)\nMR<G)R<G)%A86%A86%A86%A86%A86%LG)R<G)R<G)R<G)%A86%A;)R<G)R8F)\nMB8E,3$Q,#V?%-(OM4[`9&7'2TCV97KLJ>M_?1]],3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$P/9V?%-#0T-(LT-#0T-#0T-#0T-(N+BXN+[5-3\nML+`9&7'2TCV9`UZ[NRHJ>M_?1T='1Z6EI4='1Z6EI4='1]_?>BJ[7@,#F9G2\nM&1FPL!D9<7'2TM(]/3W2/=(]F0->7KLJ*BHJ*KN[NUY>7KN[NUY>7EX#`UY>\nM7EY>N[LJ*GK?1Z6E\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+I4??>BHJNUX#F3W2<1E3BS1G\nM3$R)B<G)%A945%22DI*2DM7JC=O;T]-*2D1$98.#H>3KJ^N<H:&A@X/AX65P\nM<$A(2+Z^OKZ^OKZ^OKZ^OKY(2$A(2$B^OKZ^OKX[.SL[.R$A(2$[.SN^OKZ^\nMOKZ^.SL^.SN^OKZ^OKZ^/CZ@H$.NM;40$+6(H#XD)-:?WO47GX$*)\"0D))B8\nM:FIJH*\"NB-RYN;:VMN^VML;L[\"+Q\\?'Q\\?'Q\\?'QK*RL9&1D9\"TM+=HP*2DI\nM]/2,C`8W8%%145$<AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS'$9J5'W]]Z*EX#`P.9/=)Q&5/M[8N+-#0TQ<7%9V</#TQ,3$Q,B8F)\nMB8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8E,3$Q,#V=GQ<7%-#2+BXOM\nM[>WM[>WM[5,9&7'2TM+2TCW2/3T]F9F9F3V9F9D#7KN[*BIZ>M_?W]_?>GHJ\nM*BHJ*BJ[7EX#`P.9F3W2TM+2TM+2TM)Q<7%Q<1D9&;\"P4U/M[8N+-,7%9P\\/\nM3$Q,3$Q,3$R)B8F)B8F)B8G)R<G)R<G)%A86%A86%A86%A86%A86R<G)R<G)\nMR<G)R<G)R<G)R<G)R<G)B8F)3$Q,3$P/9V<TB^U3L+`9&7'2/9F9`UY>*GI,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3(E,3$Q,3$Q,3`]G9\\4T-(N+BXOM[>V+BXN+\nMBXN+[>V+BXN+B^WM4U.PL!EQ<7%QTCV9`UZ[NRIZ>GK?1Z6E1T='W]_?WWHJ\nM*KN[7@.9F3T]TG$9L+!3[>WM[>WM4[`9<7%Q<=+2/0->*BIZ*BHJ*KN[N[N[\nM7EY>7EY>N[N[N[M>N[N[N[N[NRIZW]]'I0MFQ#&'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS%F\"Z5'WWHJ\nMNUX#F3W2<1FP4^TTQ0],3(F)R1865%22DI*2DM75U=75U=750D*=G9V=G9V=\nMG9V=JYR<H:&#@X.#97!P2$A(OCL[.SL[.SL[.SL[OKZ^OKY(2$A(2+Z^OKZ^\nMOKX[.SL[(3L[.SN^OKZ^OKZ^.SX^/CX[OKZ^OKZ^/CZ@H*\"NM;40$!\"(H#XD\nM)-:?WO47GPH*)\"0DF)AJ:FIJ:J\"NB-RYN;:V[^^VML8=[.SL[\"(B[.SL[\"+Q\nM\\?&LK*QD9&0M+;.'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\0+I4??WWHJ7EX#`YF9/7$9L%/M[8N+\nMBXN+-,7%Q<7%9V</3$Q,3$Q,3$Q,3$R)B8E,3$Q,3(F)B8F)3$Q,3$Q,3$Q,\nM3$P/#V=GQ30T-#0T-(N+B^WM[>WM[>WM[5-3L!D9<7'2TCT]/3T]/3T]/3V9\nMF0->NRIZ>M_?W]_?W]]'1T='W]_?WWIZ*BHJN[M>`P.9F3T]/3W2TM)Q<7%Q\nM<1D9&1FPL%/M[8N+-#3%Q6=G#P\\/#TQ,3$Q,3(F)B8F)B8G)R<G)R186%A86\nM%A86%A86%A86%A;)R<G)R<G)R<G)R<G)R<G)R<F)B8F)B8F)3$Q,3$Q,#V?%\nM-(OM4[`9&7'2TM(]F0-,3$Q,3$Q,3$Q,3$Q,3$Q,3$R)3$Q,3$Q,#V=G9\\7%\nM-(N+BXN+BXN+-#2+BXOM[>U34U/M[>U34^U3L+\"P&1EQ<=(]F0->7KLJ*GK?\nM1T='1T??WWHJN[M>`P.9/3W2TG$9L+!3BXLT-#0T-#2+B^U3L!EQ<=(]/9D#\nM`UZ[N[LJ*KN[N[N[NUY>7KLJ*GHJN[N[N[N[N[N[N[N[*GK?I0MFQ,0Q,8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q9@NE1]]Z*KM>`YG2&;!34^TTQ6=,3(F)R<D65%22DM75U=75U=75\nM0D)\"G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9WITSL[.SL[\nM.SL[OKZ^2$A(2$A(2+Z^OKZ^OCL[.SL[.SN^OKZ^OKZ^.SX^/CX^.[Z^OKZ^\nMOCX^H*!#KK40$!\"UKJ!J)-:?WO6?@0HD)\"28:FIJ:FIJ:J\"NB-RYN;:VMN^V\nMMK;&';D.AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\"T??\nM>BJ[NUX#F9D]/=)Q&1FP4U-34U/MBXN+BXLT-,5G#P],3$Q,3$Q,3$R)B8E,\nM3$Q,3$R)B4Q,3$P/#P\\/#P]G9\\7%Q30TB^WM4U-34U-3L%-34U/M4U-34U-3\nML!D9<=(]/3T]/=(]/3T]F9D#7KLJ*GIZW]_?W]_?1T>EI:6EI4??WWIZ>GIZ\nM>BHJN[M>`P.9F9D]/3T]/=+2TG%Q&1FPL%/M[>V+-#0TQ<7%Q6=G9P\\/3$Q,\nM3(F)B8F)B8G)R<G)R<G)%A86%A86%A86%A86%LG)R<G)R8F)B8F)B<G)B8F)\nMB8F)B8F)B8F)3$Q,3$Q,#P]GQ<6+[;\"P&7%QTCU,3$Q,3$Q,3$Q,3$Q,3(E,\nM3$Q,3$P/#P]G9V?%Q<4T-#0T-#0T-#2+B^WM[5.PL%-34U-34U-3L+`9&7'2\nM/3V9F0,#7EZ[NRIZW]_?W]]Z*KM>`P.9F3W2<7%Q&1FPL%/MBS0T-(N+BXOM\nM4[`9&1EQ<=(]/3V9F0,#`P,#7EY>7EY>N[N[*BIZ>GIZ*BHJ*BHJ*BHJ>GIZ\nM>M_?1T>E\"PMF9L0Q,3$Q,3$Q,3$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',<1F9@NE1]]ZNUZ9TAFP[8LT9P],B8G)R186\nM5)*2U=75U4)\"0D)\"G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=\\/#P\\/#P\\/#P1D:^1D;P\\.GIZ04.#@Z=G9V=G9V=G9V=G=75DE06R4S%\nM4W$#*D=FQ&9F\"PL+9F8QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'Q&8+I4??>KM>`YF9/=+2<7$9&;\"PL+!3[8N+-#3%\nM9V</3$Q,3$Q,3$P/#TQ,3$P/#P\\/#P\\/9V=G9V=G9V=G9\\7%-#0TB^WM4U-3\nM4U-3L+!34U-34U-34U-3L+`9&1EQ<3V9F9F9/3T]/9F9`P->7KN[*GIZWT='\nM1T='I:6E\"PL+I:5'1T??W]_?>GHJ*BHJNUY>`P,#F9F9F9D]/=+2<1D9L%-3\nM[>V+BS0TQ6=G9V</#TQ,3$Q,3$Q,B8F)B8G)R<G)R<G)R<G)R<G)%A86%A;)\nMR<G)R<G)R8F)B8F)B8F)B8F)B8F)B8F)B8F)B8E,3$Q,3`]G9\\4TB^U3L!E,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#P\\/#V=G9\\7%Q<7%Q30TBXOM[>U34[`9&7%Q\nM<1D9&7%Q<7'2/3V9`P->7EY>7EY>NRHJ>GIZ>BJ[NUX#F3T]TG%Q<7$9&;!3\nM[8LT-#0TBXOM4U-3L!D9&7'2TCT]/3T]F9F9F9F9F0,#`P,#7KN[*GIZ>GIZ\nM>GIZ>GIZ*BIZ>M_?W]_?>M_?W]]'I:4+\"V9FQ,1F9@L+\"PL+9F9FQ,2'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&9FI4??>KL#/7$9\nM4XO%#TQ,B<D6%E14DI+5U=750D)\"G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9U\"U=625!;)3&?%B[`]`[MZWZ5FQ#&'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9@M'WRJ[7@.9\nMF3W2TG$9L+!34^WMBS0TQ<7%9P\\/#P\\/3$P/#V=G9V=G9V?%Q<7%Q<7%-(N+\nMBXN+-#0T-#2+BXOM[5.PL!D9&;\"PL+\"P4U-34U-34[\"P&1EQTM(]F0,#7EY>\nM7EX#7EZ[N[N[N[LJ>GK?WT='1T>EI0L+\"PL+\"PL+\"Z6E1T??W]_?WWHJ*KN[\nM7@,#`P,#F9F9/3W2<7$9L+!34^WMBS3%Q6=G9V</#P\\/3$Q,3$Q,3(F)B8F)\nMR<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)B8F)B8F)B8F)B8F)B8F)B8F)B8F)\nMB8F)3$Q,3$Q,#V?%-(M,3$Q,3$Q,3$Q,3$Q,3$P/#P\\/#P],#P\\/9V=G9V?%\nMQ32+B^WM4[`9<7%Q<=+2TM+2/9F9`UY>N[N[NUY>`P,#`P,#7EZ[7EY>7EX#\nMF9D]TM+2TG$9&1E3[30T-(N+BXOM4[\"P&1D9&7'2TG%Q<7%Q<7'2TM+2/3T]\nMF0->7EY>NRIZW]_?WWK?>GIZ>GIZW]]'1T??WWIZ>GIZW]_?I:4+\"PL+\"PL+\nM\"PL+\"PL+9F;$AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS'$9J5'>KL#/=(9L.TT9TR)B<D65%22DM75U=75U4)\"G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9U\"0M75DE06B4Q,9XOML!EQTIE>NRK?I68Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<Q9J5'1]]Z*KM>`YF9/=)Q&;\"P4^V+BS0TQ<5G9P],3`\\/#P\\/\nM9V=G9\\7%-#2+BXN+BXN+BXOM[>WM[>WM[5-3L+`9&1FPL+\"PL+\"P&1D9&1FP\nML+\"P&1EQTCT]F0->7EY>7EY>NUY>NRHJ*GIZ>M_?1T='1Z6EI0L+\"PL+\"V9F\nM9F8+\"PL+I:6EI:5'1]]Z*BJ[NUY>`P,#`YD]TM+2<7%Q<1FPL%/MBS3%Q<5G\nM9V</#P],3$Q,3$Q,B8F)B8F)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)B8F)\nMB8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B4Q,3`],3$Q,3$Q,3$Q,3$Q,3`\\/\nM3$Q,3$Q,3$Q,3`]G9\\4T-(N+[>U3L!D9&7%QTCT]F0,#7KN[N[N[NUY>`P.9\nMF9F9F9D#`P,#`YF9/3T]TM+2<7%Q&;\"PL%-34^WM[>U34[\"P&1EQ<7%Q<7$9\nM&;\"PL+`9<7%Q<=(]/9D#`P->7KLJW]_?W]_?W]_?WWIZ>GK?>GIZ>BHJ*BHJ\nM*GK?WT='1T??1T='I:4+\"PMF9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS$QQ,0+1RI>/7&P[31G3$R)B<D6%E14DI+5U=75U=5\"\nM0D)\"G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9U\"U=75DE06R<F)\nM3$P/9S2+[;`9TCU>*M^E\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&:E1]\\J7@.9/=)Q<7$9\nM&;\"P4U/M[8LT-,7%Q6=GQ<7%Q<4TBXN+BXOM[5-34U-34[\"PL+`9&1D9&7%Q\nM<7%Q&1D9&1EQ<7%Q&1EQ<7$9&1EQ<=+2/9F9`UY>7EY>7EZ[NRIZ>GK?WT>E\nMI:6EI4='I:4+9F9F9F9F9F9F9F9F9F9F\"PL+I:5'W]]Z*BJ[N[M>7@,#`YD]\nM/=+2TM)Q<1D9L%/M[8LTQ<5G9P\\/3$Q,3$Q,3$R)B8F)B<G)R<G)R<G)R<G)\nMR<G)R<G)R<G)R<G)R<G)R8F)B8F)B8F)B8F)B8F)B8G)R<F)B8F)B8F)B4Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3`\\/9\\7%-(OM4U.PL+`9&7'2/9D#\nM`UY>7EY>7EX#`P,#F9F9F9F9F9F9F3T]/3T]/=+2TM)Q&1D9&;!34U-3L+\"P\nML+\"P&1D9<1D9&;\"PL+`9&;`9&7$]/3T]/3V9F0,#7KLJW]]'W]_?W]_?WWIZ\nM>GHJ*BIZ>GHJ*BHJ>GK?W]_?WT='1T='1T='I:6E\"V;$Q#$QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&:EWWJ[`SUQL.TT9TQ,B8G)\n-------- End of part 10 of 14 --------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8692, "properties": {"category": "comp.graphics", "text": "From: rah13@cunixb.cc.columbia.edu (Robert A Holak)\nSubject: Re: Why does Illustrator AutoTrace so poorly?\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: rah13@cunixb.cc.columbia.edu (Robert A Holak)\nOrganization: Columbia University\nLines: 3\n\nA shareware graphics program called Pman has a filter that makes a picture\nlook like a hand drawing.  This picture could probably be converted into\nvector format much easier because it is all lines. (With Corel Trace, etc..)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8693, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: staggers@cup.hp.com (Ken Staggers)\nSubject: Re: warranty extension by credit company: applies to the phurchase of computer?\nArticle-I.D.: cup.C51Cv1.MLL\nDistribution: usa\nOrganization: Hewlett-Packard\nLines: 20\nNntp-Posting-Host: writer.cup.hp.com\nX-Newsreader: TIN [version 1.1 PL9.1]\n\nHUAYONG YANG (yang@titan.ucs.umass.edu) wrote:\n: Most, if not all, credit card companies offer to double the warranty up\n: to one year, namely, if you make a purchase by a credit card, you get\n: additional warranty up to one year. Does it apply to the purchase of\n: computers? I wonder if anyone out there has used it. Is there any catch?\n: Thanks in advance.\n\nI am just about to post the results of my big computer purchase.  One\nof the key points was the ability to use my American Express card.  I \nread the fine print between double warranty policies of Amex and Citibank\nVISA.  Sure, both will allow you double warranty on computers, but Citibank\nhas a maximum claim of $250.00.  Could you imagine trying to get your\nmonitor or mother board fixed for $250.00?  Amex has NO limit on claims.\n\nRemember, if you use Amex, you must either send a copy of the warranty info\nto them in 30 days from purchase, or you must call them to pre-register and\nthen send them the paperwork within 90 days of purchase (my pre-register\npak arrived today).  Citibank VISA requires no pre-registration.\n\n--Ken\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8694, "properties": {"category": "talk.religion.misc", "text": "Organization: City University of New York\nFrom: <A54SI@CUNYVM.BITNET>\nSubject: Re: Merlin, Mithras and Magick\nDistribution: world\n <JOSHUA.93Apr19183833@bailey.cpac.washington.edu>\n <Pegasus-200493113800@fp1-dialin-1.uoregon.edu>\n <JOSHUA.93Apr20190924@bailey.cpac.washington.edu>\nLines: 38\n\n\nWhat an exciting thread (finally!)\n\nMitra is Sanskrit for Friend, as such He started out as an avatar of Lord Visnu\n mentioned first in the Vedas. Later he seems to have risen to chief prominence\n worshipped by the Persians. Associated with the Sun but NOT the Sun, he is\n the lord of contract honor and obedience, therefore naturally worshipped by\n soldiers. He was ordered by the Sun to slay the bull of heaven and He reluct-\n antly agreed because of His obligation...the blood of that bull spilled and\n grew all earth life...then Mitra and the Sun sat down to eat.\n\nWorship of Lord Mitra ended in Persia with the ascension of the Zoroastrians.\n\nHundreds of years later He was rediscovered and thrown into the Official Roman\n Pantheon (tm) for some semi-tricky reason, I forget why. But all references of\n Him ended abruptly when He was stricken from same, so apparently His worship\n was some sort of vehicle for advancement in the bureaucracy, like membership\n in the Communist Party was in the Soviet Bloc. The sociology of religion in\n ancient times is fascinating!\n\nOh, His B-day was 25 Dec. Ahem.\n\nI am not sure if the mystery cult really lasted after His was booted from the\n Roman Imperial God Roster or what. It contained mostly soldiers, with 7 levels\n of initiation. They worshipped underground in caverns in pews. The bull horns\n in those temples were for scaring away or impaling evil spirits, I'm not sure\n that they had Mithraic significance or not.\n\nI don't know that the ritual meal was of a cannibalistic nature as is the\n Christian masses. But eating deities goes way back to Old Kingdom Egypt.\n\nSomeone mentioned bullfighting. Did Mithraists sacrifice bulls? I forget. More\n likely, for a religious source, might be the shower of bull's blood enjoyed\n by the worshippers of Cybele on the Day of Blood? Cybele worship extended all\n throughout even up to France bigtime.\n-------\nCHARLES HOPE   A54SI@CUNYVM   A54SI@CUNYVM.CUNY.EDU\nGOVERNMENT BY REPORTERS...MEDIA-OCRACY.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8695, "properties": {"category": "sci.electronics", "text": "From: johne@vcd.hp.com (John Eaton)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: Hewlett-Packard VCD\nX-Newsreader: Tin 1.1 PL5\nLines: 30\n\n-s87271077-s.walker-man-50- (swalker@uts.EDU.AU) wrote:\n: \n: \n: I really don't know where to post this question so I figured that\n: this board would be most appropriate.\n: I was wondering about those massive concrete cylinders that\n: are ever present at nuclear poer sites. They look like cylinders\n: that have been pinched in the middle. Does anybody know what the\n: actual purpose of those things are?. I hear that they're called\n: 'Cooling Towers' but what the heck do they cool?\n: I hope someone can help \n:-----------------------\nDuring the nuclear fission reaction the uranium fuel can get hot enough\nto melt. When this happens the liquid uranium is pumped to the cooling\ntower where it is sprayed into the air. Contact with the cool outside air\nwill condense the mist and it will fall back to the cooling tower floor.\nThere it is collected by a cleaning crew using shop vacs and is then\nreformed into pellets for reactor use the next day.\n\nCooling towers are a lot taller than they really need to be. Power companies\nare forced to make them that tall by some enviromental law that requires the\nraw uranium emisions to be held to under 1%. This law is now under attack\nby lawyers arguing that the 1% should be measured at the edge of the property\nrather than the edge of the cooling tower. Eliminating this law will save\npower companies thousands of dollars in concrete costs for new nukes.\n\nJohn Eaton\n!hp-vcd!johne\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8696, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: liuxu@vuse.vanderbilt.edu (Xudong Liu)\nSubject: File downloading\nOriginator: liuxu@cmr1\nNntp-Posting-Host: cmr1\nOrganization: Vanderbilt University School of Engineering, Nashville, TN, USA\nDistribution: usa\nLines: 9\n\nAs a beginer, I just wonder how to transfer files from the Sun \nsystem (which is on the network) to my PC at home (not connected\nto the network). I tried to use 'COMit' to do so, but it was very\nslow and it seemed that getting multiple files at the same time\nwas impossible. Could anybody give me some hints & infomation?\n\nThank you in advance.\n\nliu \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8697, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: nsl@doe.carleton.ca (Nelson Lup Shun Liu)\nSubject: Conner CP3204F info please\nKeywords: conner\nOrganization: Dept. of Electronics, Carleton University\nLines: 11\n\nI am looking for information about this drive.  Switch settings, geometry..etc.\n\nConner CP3204F\n\nPlease reply via e-mail.  Many thanks in advance!\n\n--\nNelson\nnsl@doe.carleton.ca\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8698, "properties": {"category": "misc.forsale", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: ST (TOS) and SF Movie Videotapes (BETA) for Sale/Trade [repost]\nSummary: trade for other Beta, used CD's or barter other merchandise\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nDistribution: na\nLines: 52\n\nnyamane@nyx.cs.du.edu (Norm Yamane) writes:\n>\n>I have the following videos for sale.  All have been viewed once\n>and are in good condition:\n>\n>Star Trek (TOS) Collector's Edition\n>       All 79 episodes. (39 tapes)  Asking $800 for the lot.\n\nI've got 7 episodes left on *Beta* for Sale at US$8 each (neg.), or\nfor Trade 1-for-1 for movie on Beta or a used CD; or, a package deal\nfor $50 or whatever you care to propose in trade -- e.g., all for a\nset of good stereo headphones (e.g. Sony V6 or V7), an Apple IWII\nsheet feeder, a good used FM/Cassette stereo \"walkman\" or a hotel\ncoupon(s) for free stays FOB New York City (guests coming!)).  The\nremaining collection is as follows:\n\n         8 - Charlie X\n        11 - Dagger of the Mind\n        12 - Miri\n        17 - Shore Leave\n        20 - The Alternative Factor\n        29 - Operation-Annihilate!\n        33 - Who Mourns for Adonais?\n\nNumbers indicate episode numbering on the tape boxes, for those who\nare keeping track of what episodes they're missing in that manner.\n\nRSVP for summaries, if necessary.\n\nThe tapes are all in excellent condition in the original packaging.\nAll have been played at least once, but most have been played ONLY\nonce, and NONE have been played more than twice. Running time: ~50\nmin. ea.  (Unedited, uncut store-bought originals unlike those in\nsyndication; all have *incredible* Beta HiFi sound!)\n\nI also have the following SF and Horror movies on Beta as well; US$10\n(negotiable) or Trade (1-for-1 swap for movie on Beta or a used CD):\n\n        The Bride (Sting, Jennifer Beales)\n*       Buck Rogers Conquers the Universe (Buster Crabbe, Constance Moore)\n\nRSVP for my larger Beta movies/music trade list, or find it on Misc.forsale!\n\ngld\n\nPS: For those of you who may wonder, Beta is alive as a pro/hobbyist\nformat ... there's life beyond the corner video store! (-;\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8699, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: david@c-cat.UUCP (Dave)\nSubject: Re: IDE vs SCSI\nOrganization: Intergalactic Rest Area For Weary Travellers\nLines: 28\n\nbgrubb@dante.nmsu.edu (GRUBB) writes:\n\n{> \n{> SCSI-1 {SCSI-2 controller chip; also called SCSI-2 (8-bit)}: 4-6MB/s with \n{> 10MB/s burst.  This is advertised as SCSI-2 in BYTE 4/93:159 FOR the\n{>  PC and AT THESE SPEEDS.{NOT the Mac, the PC.}\n{> \n\nI have been following this mess for a while. excuse my need for\nclarification.  Iam thinking seriously IDE vs. SCSI and this thread\ncould not have come at a better time.\n\nthe above quote SCSI-1 {SCSI-2 controller chip}\n\nare we talking about a SCSI-1 device (e.g. HD) on a SCSI-2 Controller\nor \nare we talking about a SCSI-1 Controller that had a chip upgrade\nusing the same chip that is on a SCSI-2 controller board.\n\nthanks \n\n                                                       -David\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\nChina Cat BBS                               c-cat!david@sed.csc.com\n(301)604-5976 1200-14,400 8N1               ...uunet!mimsy!anagld!c-cat!david \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8700, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Cell Church discussion group\nOrganization: Indiana University\nLines: 7\n\nIn article <Apr.21.03.25.58.1993.1337@geneva.rutgers.edu> reid@cs.uiuc.edu (Jon Reid) writes:\n>I am beginning an e-mail discussion group about cell churches.  If you are\n\nPlease, define cell church.  I missed it somewhere in the past when this\nwas brought up before.\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8701, "properties": {"category": "rec.autos", "text": "From: tjo@scr.siemens.com (Tom Ostrand)\nSubject: Radio for Toyota Tercel\nKeywords: radio,Tercel,replacement\nNntp-Posting-Host: bugatti.siemens.com\nOrganization: Siemens Corporate Research, Princeton (Plainsboro), NJ\nLines: 19\n\nI'm looking for a replacement radio/tape player for a 1984 \nToyota Tercel.  Standard off-the-shelf unit is fine, but \nevery place I've gone to (Service Merchandise, etc.) doesn't \nhave my car in its model application book.  I want to just \ntake out the old radio, and slide in the new, with minimal time\nspent hooking it up and adjusting the dashboard.\n\nIf you have put in a new unit in a similar car, I'd like to hear\nwhat brand,  how easy it was to do the change, and any other \nrelevant information. \n\nPlease answer via E-mail.\nThanks,  Tom Ostrand\n\n-- \nTom Ostrand\t\t\tE-mail:  tjo@scr.siemens.com\nSiemens Corporate Research\tPhone:   609-734-6569\n755 College Road East\t\tFAX:     609-734-6565\nPrinceton, NJ  08540-6668\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8702, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tiger@netcom.com (Tiger Zhao)\nSubject: Re: BusLogic 542B questions\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 28\n\ngoyal@utdallas.edu (MOHIT K GOYAL) writes:\n\n\n>Can anyone tell me if this card works with the March OS/2 2.1 beta?\n\n I believe so, since the Buslogic cards have proven to be very \nreliable in OS/2 2.0....\n\n>Where do I get OS/2 drivers?\n\n Endusers (not OEM manufactures) will get all the software package with the\ncard which includes drivers for Novell, OS/2, Unix & Xenix and so forth.\n\n>Does this card work with the Toshiba 3401B cdrom? (in DOS or OS/2)\n\n Definitely.\n\n>Here is my setup:\n>quantam SCSI hd\n>toshiba 3401B cdrom\n\n>I'm considering the 542B because I have been told BusLogic's support is \n>better than Adaptecs and that the 542B performs better than the 1542C.\n>Anyways, I just want to know if the 542B will work in OS/2 & DOS with my\n>above peripheals.\n\n>Thank you extremely much for any and all replies.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8703, "properties": {"category": "sci.electronics", "text": "From: leblanc@cvm.msu.edu (Pat Leblanc)\nSubject: wireless data transfer\nOrganization: Michigan State University, College of Veterinary Medicine\nLines: 5\nNNTP-Posting-Host: inst0027.cvm.msu.edu\n\nI am involved with a Michigan company that has an application requiring \nwireless data transfer.  If you have expertise or information that may \nassist us in this project, please contact me (INTERNET: leblanc@cvm.msu.\nedu).\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8704, "properties": {"category": "talk.politics.guns", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: 2ND AMENDMENT DEAD - GOOD !\nLines: 47\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <1993Apr18.001319.2340@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n\n>Yea, there are millions of cases where yoy *say* that firearms\n>'deter' criminals. Alas, this is not provable.\n\n      Not provable.  It's about as \"provable\" as the number of votes\nvast for Bill Clinton in the last election.  If you accept the information\navailable, you can prove one way or the other.  If you refuse to accept\nit, nothing is \"provable.\"\n\n>I think that that\n>there are actually *few* cases where this is so. \n\n      Fine, support your assertation.  But, you haven't supported\nany assertations just yet.\n\n      The National Crime Survey, that secret Arm of the NRA, estimates\nbetween 40,000 and 50,000 with-gun self-defenses from assaults, and\nis considered to considerably under-report.  When broken down by weapon,\nthere is no form of \"self-defense\" including dowing nothing which is\nmore effective at avoiding injury or death.\n\n>The bulk of firarems are used against unworthy and unnesessary\n>opponents ...  those who posessa a cool jakcet you want, those who\n>would argue with you about a parking space, those who would\n>take your woman. In short, trivial and worthless causes.\n\n      Ok, support *this* assertation.  Hell, support *one*.\n\n>Too much of this has ruined you cause. There is no recovery. \n\n      That's nice.\n\n>In the near future, federal martials will come for your arms.\n\n      That's nice, too.\n\n>The 2nd amendment is dead. Accept this. Find another way.\n\n       Why on Earth should we?  If you're correct we've nothing to\nlose by continuing to argue against it and everything to gain.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8705, "properties": {"category": "alt.atheism", "text": "Subject: Re: islamic authority over women\nFrom: livesey@solntze.wpd.sgi.com (Jon Livesey)\nOrganization: sgi\nNNTP-Posting-Host: solntze.wpd.sgi.com\nLines: 11\n\nIn article <1993Apr3.214741.14026@ultb.isc.rit.edu>, snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n>\n> My claim is that a person that committs a crime doesn't believe in \n> God, for the moment that the crime is committed, at least, whether \n> they are originally believers or not.  To believe is to do good.  \n> Your statistics indicate people that have declared atheism.\n\nAnd doubtless, when an atheist does an act of charity\nthey temporarily become a Baptist.\n\njon. \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8706, "properties": {"category": "sci.space", "text": "From: MUNIZB%RWTMS2.decnet@rockwell.com (\"RWTMS2::MUNIZB\")\nSubject: Space Activities in Tucson, AZ ?\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 7\n\nI would like to find out about space engineering employment and educational\nopportunities in the Tucson, Arizona area.  E-mail responses appreciated.\nMy mail feed is intermittent, so please try one or all of these addresses.\n\nBen Muniz      w(818)586-3578      MUNIZB%RWTMS2.decnet@beach.rockwell.com \nor:  bmuniz@a1tms1.remnet.ab.com  MUNIZB%RWTMS2.decnet@consrt.rockwell.com\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8707, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: iis@netcom.com (International Imaging Syste)\nSubject: List of Favorite Windows Goodies?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 9\n\nIs anyone maintaining a list of favorite shareware and public domain Windows \nsoftware?\n\nI have several such lists for MSDOS, but they are really light on Windows\nstuff.\n\nDavid Arnstein\nInternational Imaging Systems\narnstein@iis.sun.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8708, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Jews can't hide from keith@cco.\nOrganization: sgi\nLines: 36\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1993Apr3.071823.13253@bmerh85.bnr.ca>, dgraham@bmers30.bnr.ca (Douglas Graham) writes:\n|> In article <1pj2b6$aaa@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> >In article <1993Apr3.033446.10669@bmerh85.bnr.ca>, dgraham@bmers30.bnr.ca (Douglas Graham) writes:\n|> >|>Er, Jon, what Ken said was:\n|> >|> \n|> >|> There have previously been people like you in your country.  Unfortunately,\n|> >|>                            ^^^^^^^^^^^^^^^\n|> >|> most Jews did not survive.\n|> >|> \n|> >|>That sure sounds to me like Ken is accusing the guy of being a Nazi.\n|> >\n\n[my previous posting deleted]\n\n|> \n|> Yes, yes.  This is a perfectly fine rant, and I agree with it completely.\n|> But what does it have to do with anything?  The issue at hand here\n|> is whether or not Ken accused the fellow from Germany of being a\n|> Nazi.  I grant that he did not explicity make this accusation, but\n|> he came pretty damn close.  He is certainly accusing the guy of\n|> sympathizing with those who would like to exterminate the Jews, and\n|> that's good enough for me.\n\nThe poster casually trashed two thousand years of Jewish history, and \nKen replied that there had previously been people like him in Germany.\n\nThat's right.   There have been.    There have also been people who\nwere formally Nazis.   But the Nazi party would have gone nowhere\nwithout the active and tacit support of the ordinary man in the\nstreet who behaved as though casual anti-semitism was perfectly\nacceptable.\n\nNow what exactly don't you understand about what I wrote, and why\ndon't you see what it has to do with the matter at hand?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8709, "properties": {"category": "soc.religion.christian", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Translations\nOrganization: AI Programs, University of Georgia, Athens\nLines: 25\n\nIn article <May.9.05.41.02.1993.27540@athos.rutgers.edu> ab4z@virginia.edu (Andi Beyer) writes:\n>Which Version of the Bible do you consider to be the most\n>accurate translation?\n\nWell, knowing Greek and Hebrew, I'm probably not as picky about translations\nas I would be if English translations were my only source of information.\nBUT...\n\n(1) Any verse that comes out substantially different in different trans-\nlations is almost certainly unclear in the original. \n\n(2) It is very bad practice to \"shop\" for a translation that fits your own\ndoctrinal positions.\n\nPersonally, I still like the RSV.  NRSV and NASV are also very good.\n\nI have a strong preference for editions that do _not_ indent the beginning\nof each verse as if verses were paragraphs.  The verse numbering is a\nrelatively modern addition and should not be given undue prominence.\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8710, "properties": {"category": "sci.electronics", "text": "From: sgberg@charon.bloomington.in.us (Stefan G. Berg)\nSubject: Re: Motorola XC68882RC33 and RC50\nReply-To: sgberg@charon.bloomington.in.us (Stefan Berg)\nDistribution: world\nOrganization: Not an Organization\nX-NewsSoftware: GRn 1.16f (10.17.92) by Mike Schwartz & Michael B. Smith\nLines: 25\n\nIn article <16APR199323531467@rosie.uh.edu> st1my@rosie.uh.edu (Stich, Christian E.) writes:\n> I just installed a Motorola XC68882RC50 FPU in an Amiga A2630 board (25 MHz\n> 68030 + 68882 with capability to clock the FPU separately).  Previously\n> a MC68882RC25 was installed and everything was working perfectly.  Now the\n> systems displays a yellow screen (indicating a exception) when it check for\n> the presence/type of FPU.  When I reinstall an MC68882RC25 the system works\n> fine, but with the XC68882 even at 25 MHz it does not work.  The designer\n> of the board mentioned that putting a pullup resistor on data_strobe (470 Ohm)\n> might help, but that didn't change anything.  Does anybody have some\n> suggestions what I could do?  Does this look like a CPU-FPU communications\n> problem or is the particular chip dead (it is a pull, not new)?\n> Moreover, the place I bought it from is sending me an XC68882RC33.  I thought\n> that the 68882RC33 were labeled MC not XC (for not finalized mask design). \n> Are there any MC68882RC33?\n\nI, too, have a XC68882RC50 math coprocessor, which I installed\nsuccesfully in my Mega Midget Racer (clocked at 33 MHz). I have tried\nclocking my FPU at 28 to 50 MHz and it all worked just fine. I have a\nMC68030-33 CPU. I don't know why my FPU has an XC (my original 33MHz FPU\nwas label MC68882-33), but it seems to work fine on my system. Maybe you\njust have a bad chip.\n\nStefan\n\nP.S. Or does it mean eXperimental Chip instead of Motorola Chip? .-)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.413+0000", "event": "documents", "entityId": 8711, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: To be exact, 2.5 million Muslims were exterminated by the Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 287\n\nIn article <lt88p0INN2ql@appserv.Eng.Sun.COM> linden@positive.Eng.Sun.COM (Peter van der Linden) writes:\n\n>1.  So, did the Turks kill the Armenians?\n\nSo, did the Jews kill the Germans? \nYou even make Armenians laugh.\n\n\"An appropriate analogy with the Jewish Holocaust might be the\n systematic extermination of the entire Muslim population of \n the independent republic of Armenia which consisted of at \n least 30-40 percent of the population of that republic. The \n memoirs of an Armenian army officer who participated in and \n eye-witnessed these atrocities was published in the U.S. in\n 1926 with the title 'Men Are Like That.' Other references abound.\"\n     (Rachel A. Bortnick - The Jewish Times - June 21, 1990)\n\n>2.  Or was it the Armenians who massacred the Turks?\n\nYes. To be exact, Armenians slaughtered 2.5 million Muslim people between \n1914 and 1920.\n\n\nSource #1: McCarthy, J., \"Muslims and Minorities, The Population of Ottoman \n           Anatolia and the End of the Empire,\" New York University Press, \n           New York, 1983, pp. 133-144.\n\nSource #2: Hovannisian, Richard G., \"Armenia on the Road to Independence,\n           1918. University of California Press (Berkeley and Los Angeles),\n           1967, p. 13.\n\nSource: Hovannisian, Richard G.: Armenia on the Road to Independence, 1918.\nUniversity of California Press (Berkeley and Los Angeles), 1967, p. 13.\n\n\"The addition of the Kars and Batum oblasts to the Empire increased the\n area of Transcaucasia to over 130,000 square miles. The estimated population\n of the entire region in 1886 was 4,700,000, of whom 940,000 (20 percent) were\n Armenian, 1,200,000 (25 percent) Georgian, and 2,220,000 (45 percent) Moslem.\n Of the latter group, 1,140,000 were Tatars. Paradoxically, barely one-third\n of Transcaucasia's Armenians lived in the Erevan guberniia, where the \n Christians constituted a majority in only three of the seven uezds. Erevan\n uezd, the administrative center of the province, had only 44,000 Armenians\n as compared to 68,000 Moslems. By the time of the Russian Census of 1897,\n however, the Armenians had established a scant majority, 53 percent, in the\n guberniia; it had risen by 1916 to 60 percent, or 670,000 of the 1,120,000\n inhabitants. This impressive change in the province's ethnic character \n notwithstanding, there was, on the eve of the creation of the Armenian \n Republic, a solid block of 370,000 Tartars who continued to dominate the \n southern districts, from the outskirts of Ereven to the border of Persia.\" \n (See also Map 1. Historic Armenia and Map 4. Administrative subdivisions of \n Transcaucasia).\n\nIn 1920, '0' percent Turk. \n\n\"We closed the roads and mountain passes that might serve as \n ways of escape for the Tartars and then proceeded in the work \n of extermination. Our troops surrounded village after village. \n Little resistance was offered. Our artillery knocked the huts \n into heaps of stone and dust and when the villages became untenable \n and inhabitants fled from them into fields, bullets and bayonets \n completed the work. Some of the Tartars escaped of course. They \n found refuge in the mountains or succeeded in crossing the border \n into Turkey. The rest were killed. And so it is that the whole \n length of the borderland of Russian Armenia from Nakhitchevan to \n Akhalkalaki from the hot plains of Ararat to the cold mountain \n plateau of the North were dotted with mute mournful ruins of \n Tartar villages. They are quiet now, those villages, except for \n howling of wolves and jackals that visit them to paw over the \n scattered bones of the dead.\" \n\n                             Ohanus Appressian\n                            \"Men Are Like That\"\n                                   p. 202.\n\n\n SOME OF THE REFERENCES FROM EMINENT AUTHORS IN THE FIELD OF MIDDLE-EASTERN\n HISTORY AND EYEWITNESSES OF THE ARMENIAN GENOCIDE OF 2.5 MILLION MUSLIMS\n\n1. \"The Armenian Revolutionary Movement\" by Louise Nalbandian,\n   University of California Press, Berkeley, Los Angeles, 1975\n\n2. \"Diplomacy of Imperialism 1890-1902\" by William I. Lenger, Professor\n   of History, Harward University, Boston, Alfred A. Knopt, New York, 1951\n\n3. \"Turkey in Europe\" by Sir Charles Elliot, \n   Edward & Arnold, London, 1900\n\n4. \"The Chatnam House Version and Other Middle-Eastern Studies\" by\n   Elie Kedouri, Praeger Publishers, New York, Washington, 1972\n\n5. \"The Rising Crescent\" by Ernest Jackh,\n   Farrar & Reinhart, Inc., New York & Toronto, 1944\n\n6. \"Spiritual and Political Evolutions in Islam\" by Felix Valyi,\n   Mogan, Paul, Trench & Truebner & Co., London, 1925\n\n7. \"The Struggle for Power in Moslem Asia\" by E. Alexander Powell,\n   The Century Co., New York, London, 1924\n\n8. \"Struggle for Transcaucasia\" by Feruz Kazemzadeh,\n   Yale University Press, New Haven, Conn., 1951\n\n9. \"History of the Ottoman Empire and Modern Turkey\" (2 volumes) by\n   Stanford J. Shaw, Cambridge University Press, Cambridge, New York,\n   Melbourne, 1977\n\n10.\"The Western Question in Greece and Turkey\" by Arnold J. Toynbee,\n   Constable & Co., Ltd., London, Bombay & Sydney, 1922\n\n11.\"The Caliph's Last Heritage\" by Sir Mark Sykes,\n   Macmillan & Co., London, 1915\n\n12.\"Men Are Like That\" by Leonard A. Hartill,\n   Bobbs Co., Indianapolis, 1928\n\n13.\"Adventures in the Near East, 1918-22\" by A. Rawlinson,\n   Dodd, Meade & Co., 1925\n\n14.\"World Alive, A Personal Story\" by Robert Dunn,\n   Crown Publishers, Inc., New York, 1952\n\n15.\"From Sardarapat to Serves and Lousanne\" by Avetis Aharonian,\n   The Armenian Review Magazine, Volume 15 (Fall 1962) through 17 \n   (Spring 1964)\n\n16.\"Armenia on the Road to Independence\" by Richard G. Hovanessian,\n   University of California Press, Berkeley, California, 1967\n\n17.\"The Rebirth of Turkey\" by Clair Price,\n   Thomas Seltzer, New York, 1923\n\n18.\"Caucasian Battlefields\" by W. B. Allen & Paul Muratoff,\n   Cambridge, 1953\n\n19.\"Partition of Turkey\" by Harry N. Howard,\n   H. Fertig, New York, 1966\n   \n20.\"The King-Crane Commission\" by Harry N. Howard,\n   Beirut, 1963\n\n21.\"United States Policy and Partition of Turkey\" by Laurence Evans,\n   John Hopkins University Press, Baltimore, 1965\n\n22.\"British Documents Related to Turkish War of Independence\" by Gothard \n   Jaeschke\n     \n1. Neside Kerem Demir, \"Bir Sehid Anasina Tarihin Soyledikleri: \n   Turkiye'nin Ermeni Meselesi,\" Hulbe Basim ve Yayin T.A.S., \n   Ankara, 1982. (Ingilizce Birinci Baski: 1980, \"The Armenian \n   Question in Turkey\")\n\n2. Veysel Eroglu, \"Ermeni Mezalimi,\" Sebil Yayinevi, Istanbul, 1978.\n\n3. A. Alper Gazigiray, \"Osmanlilardan Gunumuze Kadar Vesikalarla Ermeni\n   Teroru'nun Kaynaklari,\" Gozen Kitabevi, Istanbul, 1982.\n\n4. Dr. Kirzioglu M. Fahrettin, \"Kars Ili ve Cevresinde Ermeni Mezalimi,\"\n   Kardes Matbaasi, Ankara, 1970. \n\nT.C. Basbakanlik Osmanli Arsivi, Babiali, Istanbul:\n\na) Yildiz Esas Evraki\nb) Yildiz Perakende\nc) Irade Defterleri\nd) Cemaat-i Gayr-i Muslime Defterleri\ne) Meclisi Vukela Mazbatalari\nf) Dahiliye Nezareti, Kalem-i Mahsus Dosyalari\ng) Dahiliye Nezareti, Sifre Defterleri\nh) Babiali Evrak Odasi: Siyasi Kartonlar\ni) Babiali Evrak Odasi: Muhimme Kartonlari\n\nT.C. Disisleri Bakanligi, Hazine-i Evrak, Defterdarlik  \n\na) Harb-i Umumi\nb) Muteferrik Kartonlar\n\nBritish Archives:\n\na) Parliamentary Papers (Hansard): Commons/Lords\nb) Foreign Office: Confidential Print: Various Collections\nc) Foreign Office: 424/239-253: Turkey: Correspondence - Annual Reports\nd) Foreign Office: 608\ne) Foreign Office: 371, Political Intelligence: General Correspondence\nf) Foreign Office: 800/240, Ryan Papers\ng) Foreign Office: 800/151, Curzon Papers\nh) Foreign Office: 839: The Eastern Conference: Lausanne. 53 files\n\nIndia Office Records and Library, Blackfriars Road, London.\n\na) L/Political and Security/10/851-855 (five boxes), \"Turkey: Treaty of\n   Peace: 1918-1923\"\nb) L/P & S/10/1031, \"Near East: Turkey and Greece: Lausanne Conference,\n   1921-1923\"\nc) L/P & S/11/154\nd) L/P & S/11/1031\n\nFrench Archives\n\nArchives du ministere des Affaires entrangeres, Quai d'Orsay, Paris.\n\na) Documents Diplomatiques: Affaires Armeniens: 1895-1914 Collections\nb) Guerre: 1914-1918: Turquie: Legion d'Orient.\nc) Levant, 1918-1929: Armenie.\n\n\nOfficial Publications, Published Documents, Diplomatic Correspondence,\nAgreements, Minutes and Others\n\nA. Turkey (The Ottoman Empire and The Republic of Turkey)\n\nAkarli, E. (ed.); \"Belgelerle Tanzimat,\" (istanbul, 1978).\n(Gn. Kur., ATASE); \"Askeri Tarih Belgeleri Dergisi,\" V. XXXI (81),\n(Dec. 1982).\n----; \"Askeri Tarih Belgeleri Dergisi,\" V. XXXII (83),\n(Dec. 1983).\nHocaoglu, M. (ed.); \"Ittihad-i Anasir-i Osmaniye Heyeti Nizamnamesi,\"\n(Istanbul, 1912).\nMeray, S. L. (trans./ed.) \"Lozan Baris Konferansi: Tutanaklar-Belgeler,\"\n(Ankara, 1978), 2 vols.\nMeray, S. L./O. Olcay (ed.); \"Osmanli Imparatorlugu'nun Cokus Belgeleri;\nMondros Birakismasi, Sevr Andlasmasi, Ilgili Belgeler,\" (Ankara, 1977).\n(Osmanli Devleti, Dahiliye Nezareti); \"Aspirations et Agissements \nRevolutionnaires des Comites Armeniens avant et apres la proclamation\nde la Constitution Ottomane,\" (Istanbul, 1917).\n----; \"Ermeni Komitelerinin Amal ve Hareket-i Ihtilaliyesi: Ilan-i\nMesrutiyetten Evvel ve Sonra,\" (Istanbul, 1916).\n----; \"Idare-i Umumiye ve Vilayet Kanunu,\" (Istanbul, 1913).\n----; \"Muharrerat-i Umumiye Mecmuasi, V. I (Istanbul, 1914).\n----; \"Muharrerat-i Umumiye Mecmuasi, V. II (Istanbul, 1915).\n----; \"Muharrerat-i Umumiye Mecmuasi, V. III (Istanbul, 1916).\n----; \"Muharrerat-i Umumiye Mecmuasi, V. IV (Istanbul, 1917).\n(Osmanli Devleti, Hariciye Nezareti); \"Imtiyazat-i Ecnebiyye'nin\nLagvindan Dolayi Memurine Teblig Olunacak Talimatname,\" (Istanbul, 1915).\n(Osmanli Devleti, Harbiye Nezareti); \"Islam Ahalinin Ducar Olduklari\nMezalim Hakkinda Vesaike Mustenid Malumat,\" (Istanbul, 1919).\n----; (IV. Ordu) \"Aliye Divan-i Harbi Orfisinde Tedkik Olunan Mesele-yi\nSiyasiye Hakkinda Izahat,\" (Istanbul, 1916).\nTurkozu, H. K. (ed.); \"Osmanli ve Sovyet Belgeleriyle Ermeni Mezalimi,\"\n(Ankara, 1982).\n----; \"Turkiye Buyuk Millet Meclisi Gizli Celse Zabitlari,\" (Ankara, 1985),\n4 vols.\n\nRussia\n\nAdamof, E. E. (ed.); \"Sovyet Devlet Arsivi Belgeleriyle Anadolu'nun \nTaksimi Plani,\" (tran. H. Rahmi, ed. H. Mutlucag), (Istanbul, 1972).\n\nAltinay, A. R.; \"Iki Komite - Iki Kital,\" (Istanbul, 1919).\n----; \"Kafkas Yollarinda Hatiralar ve Tahassusler,\" (Istanbul, 1919).\n----; \"Turkiye'de Katolik Propagandasi,\" Turk tarihi Encumeni Mecmuasi,\nV. XIV/82-5 (Sept. 1924).\nAsaf Muammer; \"Harb ve Mesulleri,\" (Istanbul, 1918).\nAkboy, C.; \"Birinci Dunya Harbinde Turk Harbi, V. I: Osmanli Imparatorlugu'nun\nSiyasi ve Askeri Hazirliklari ve Harbe Girisi,\" (Gn. Kur., Ankara, 1970).\nAkgun, S.; \"General Harbord'un Anadolu Gezisi ve (Ermeni Meselesi'ne Dair)\nRaporu: Kurtulus Savasi Baslangicinda,\" (Istanbul, 1981).\nAkin, I.; \"Turk Devrim Tarihi,\" (Istanbul, 1983).\nAksin, S.; \"Jon Turkler ve Ittihad ve Terakki,\" (Istanbul, 1976).\nBasar, Z. (ed.);\"Ermenilerden Gorduklerimiz,\" (Ankara, 1974).\n----; \"Ermeniler Hakkinda Makaleler - Derlemeler,\" (Ankara, 1978).\nBelen, F.; \"Birinci Dunya Harbinde Turk Harbi,\" (Ankara, 1964).\nDeliorman, A.; \"Turklere Karsi Ermeni Komitecileri,\" (Istanbul, 1980).\nEge, N. N. (ed.); \"Prens Sabahaddin: Hayati ve Ilmi Mudafaalari,\"\n(Istanbul, 1977).\nErcikan, A.; \"Ermenilerin Bizans ve Osmanli Imparatorluklarindaki Rolleri,\"\n(Ankara, 1949).\nGurun, K.; 'Ermeni Sorunu yahut bir sorun nasil yaratilir?', \"Turk Tarihinde\nErmeniler Sempozyumu,\" (Izmir, 1983).\nHocaoglu, M.; \"Arsiv Vesikalariyla Tarihte Ermeni Mezalimi ve Ermeniler,\"\n(Istanbul, 1976).\nKaral, E. S.; \"Osmanli Tarihi,\" V. V (1983, 4th ed.); V. VI (1976, 2nd ed.);\nV. VII (1977, 2nd ed.); V. VIII (1983, 2nd ed.) Ankara.\nKurat, Y. T.; \"Osmanli Imparatorlugu'nun Paylasilmasi,\" (Ankara, 1976).\nOrel, S./S. Yuca; \"Ermenilerce Talat Pasa'ya Atfedilen Telgraflarin\nIcyuzu,\" (Ankara, 1983). [Also in English translation.]\nAhmad, F.; \"The Young Turks: The Committee of Union and Progress in\nTurkish Politics,\" (Oxford, 1969).\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8712, "properties": {"category": "rec.sport.hockey", "text": "From: sforsblo@vipunen.hut.fi (Svante Forsblom)\nSubject: Re: Suhonen will NOT go to Jokerit\nKeywords: Suhonen\nNntp-Posting-Host: vipunen.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 17\n\n\n>In <tvartiai.734823058@vipunen.hut.fi> tvartiai@vipunen.hut.fi (Tommi Vartiainen) writes:\n\n>>According to the inside information, Alpo Suhonen won't be the next headcoach\n>>of Jokerit. It's pretty sure that Boris Majorov will continue, although owner\n>>of the team previously said that he will chance the coach.\n\n>>Tommi\n>Wrong information. They just announced that Suhonen has made a deal with \n>Jokerit.\n> \n\n>Tommi\n\nAnd Boris Majorov has made a 1+1 year deal with Tappara.\n\nSvante\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8713, "properties": {"category": "sci.crypt", "text": "From: rlglende@netcom.com (Robert Lewis Glendenning)\nSubject: Re: The Old Key Registration Idea...\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 25\n\nThe Clipper Chip will have no effect.  Current generation PCs, portable\nand desktop, all have analog voice -> digital voice and vice versa\ncapabilities.  So, I only need a modem output to the telephone,\nand I can interpose any encryption screen on my voice traffic I want.\n\nNot even a big deal, but it will pass muster if the have a way\nof checking whether I am using their Clipper Chip encryption without\na full decoding.\n\nI have been chided for stating that Dorthy Denning was intellectually\ndishonest in the ACM debate and in this newsgroup.  I have previously\nrefrained from suggesting that she is arguing on behalf of consulting\nclients.\n\nNow, I say that it is clear that Dorthy Denning has been functioning\nas a lobbyist, not a computer scientist.  She has used legal ethics\n(truth is what you can convince anyone of), not scientific ethics\n(truth is understanding the external world).\n\nMaybe we can revoke her ACM membership? 8)\n\nLew\n-- \nLew Glendenning\t\trlglende@netcom.com\n\"Perspective is worth 80 IQ points.\"\tNiels Bohr (or somebody like that).\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8714, "properties": {"category": "sci.space", "text": "From: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nSubject: Portuguese Launch Complex (was:*Doppelganger*)\nOrganization: NASA Langley Research Center\nLines: 14\nDistribution: world\nReply-To: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nNNTP-Posting-Host: tahiti.larc.nasa.gov\n\n> Portugese launch complex were *wonderful\n\nPortuguese launch complex??? Gosh.... Polish are for American in the \nsame way as Portuguese are for Brazilians (I am from Brazil). There is \na joke about the Portuguese Space Agency that wanted to send a \nPortuguese  astronaut to the surface of the Sun (if there is such a thing).\nHow did they solve all problems of sending a man to the surface of the \nSun??? Simple... their astronauts travelled during the night...\n\n C.O.EGALON@LARC.NASA.GOV\n\nC.O.Egalon@larc.nasa.gov\n\nClaudio Oliveira Egalon\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8715, "properties": {"category": "sci.space", "text": "From: ml@chiron.astro.uu.se (Mats Lindgren)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: Uppsala University\nLines: 14\nDistribution: world\nNNTP-Posting-Host: chiron.astro.uu.se\n\nComet P/Helin-Roman-Crockett also spent some time as a temporary\nsatellite to Jupiter a few years ago if you believe the calculations\nby Tancredi, G., Lindgren, M. and  Rickman, H.(Astron. Astrophys., \n239, pp. 375-380, 1990).\n-- \n\n\n-------------------------------------------------------------\n|  Mats Lindgren             |  Mats.Lindgren@astro.uu.se   |\n|  Astronomical Observatory  |  21619::laban::ml            |\n|  Box 515                   |                              |\n|  751 20 Uppsala            |  Phone (+46) (0)18 51 35 22  |\n|  Sweden                    |  Fax               52 75 83  |\n-------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8716, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: james@dlss2 (James Cummings)\nSubject: Re: More Cool BMP files??\nOrganization: RedRock Development\nDistribution: usa\nLines: 1021\n\nIn article <1993Apr17.023017.17301@gmuvax2.gmu.edu> rwang@gmuvax2.gmu.edu (John Wang) writes:\n |Hi, everybody:\n |    I guess my subject has said it all.  It is getting boring\n |looking at those same old bmp files that came with Windows.  So,\n |I am wondering if there is any body has some beautiful bmp file\n |I can share.  Or maybe somebody can tell me some ftp site for\n |some bmp files, like some scenery files, some animals files,\n |etc....  I used to have some, unfortunately i delete them all.\n |\n |Anyway could me give me some help, please???\n |\n\n\tIn response to a \"different\" kinda wallpaper, here's what I\nuse.  I think the original gif/whatever was called \"not_real\".  The \nartist name and logo is in the lower right corner.  You will need VGA\nI think, and I have this sized for 800x600 256 color screens.  Use\nthis in your Windows directory and do not tile it.  Hope you enjoy.\n\n\nBEGIN ----------------------- CUT HERE ---------------\nbegin 666 ntreal.bmp\nM0DTV5P<      #8$   H    ( ,  %@\"   !  @                     \nM            $    ! @@P![( @ \"!A> #!_F   #CD ,56# #D.  !=>_D \nM4PA: &4H@P\"L,1  $U); &N+L0 ($!@ +4WA !,J.0 B/%H 9TJ3 $KKZP 0\nM,;, TD4I /ZGB0!)#UH (0A.  \"6E@ I !@ 4B!I \" !  !BBZX #!E1 )BV\nM_@\"3*1  4FJ) %D8\"  )$$H   @( $%5:@ X6XL .@@Y  X9'P  Q<T ^65&\nM !@RQ0 ($%( @[/G '*:QP!*,6D %SI' %L0:@!V4:P *TK2 #$(.0 0*9, \nM8CV+ &(@>P#',1@ )DUJ \",07@ [BZ\\ 8H.C ,GH_P!2$%( 1A!2 \"  $ !*\nM$$H .A!* $1?XP Q05( :A@( %I\\F@!!,6( I\"D0 $$I6@ !\"20 4@]B \"DY\nM2  (('@ 2A ( \"F+BP#_T[4 01]2 'NHUP!:(', (C[+ #E1;  M\"   :SF4\nM ! QO0\"HQOX $\"FD (,@$  6(#$ &    #%ND #^@V8 5'*4 \"T ( !Y7K0 \nM2F:# #E*8 #G4#( '2]! !@( 0!)8GH <4^D %PQ>P!%U]< 2@A1 %H(8@\"'\nMI?X )UIU #D82@!!(%H &#&M $'%Q0 6\"B4 !%!0 &V+_  C$3P 8!AS %\\Z\nM@P#,.1H O3$1 \"<^8@!9*7, /6^A %!N[  (#Q  :I*]  @8;@ :%W$ 4!TF\nM #D000 I,4( (  ( -Y++0 8,<T &\" H &LPBP Q2EL .;JZ $$0\"0!*.7, \nM)#B; 'QFO0\"/5DT .UV4 $$(2@ P 2H C2 0 ',8\" !:3HD <4&< %$-)  Y\nM5^@ .7^G (N^]@!YI<L 6'*< +K7_@\"5R/L ;4J< ! @C0!!670 61AJ %(0\nM6@ 0*9P 6B%J (2NW !):XP 6GRE &,Q@P Y&5( TTTT )PI$  \\58, +4YV\nM *PI$  F:7@ ;EJD \"- U@ A.;0 ,4%: $,I8P#302  _KR= !TO3 !@*7L \nM#ATI #2@I0  \"#$  *RT #(<< #_Z\\T *0 0 &(8\"  9*3$ *S]N !HSO0 A\nM+#D -!!> %(88@!2_OX _G16 &*#K0!6/7L /ERD %)SBP!0;_D B[OL /^6\nM=P!:$&( $0\\8  D00 !)&%P M#$0 &I3G !J090 :Y2T 'B7_0 0*:P ZUT^\nM $H@80 Y\"R@ 53)S '.:O0 A3&$ 4BEJ \"P04@ Z5M, &#G. '1<K  N'4L \nM+&:# ',@\" \"$:L< .2M- !P\\4@!6;K  .0A! $HY:@ X.I$ 4A ( \"8IC !&\nM?ZP 98/Z #4(2P  \"!  .5)B \"D[4@!B(', &@LQ &HZBP ;(#L 1&'Q #&L\nM_?W]_:S]K'EYK/W]_?W]K/W]_?W]_?W]_?VL_6JLK*P*O+R\\^_O[^_O[^Z6E\nMI<K4U-34U*;4\"0D^\"0D);&P);&QL\"6QL\"0EL\"6QL;&QL\"0EL\"0EM;6UM\"0D^\nM\"6T^;0EMIM2FRM34U*6EU*6EU*74U*6EI:74I:74U,K4U-34RDO4U,HQU-2E\nMIM0^;0EM/FUMU&W4U-1!^$K6'H)-^/C6 TT!]#5R<G(4 ;\\%'DT!]#6G<L=4\nMY@^U5)#6 X/T-7(4MN=45\"M4M?^UYY\"\"30$U<A186%0K5\"M86,>V6C5R%,=4\nMMN?GQ^?G*U@4<C6V6\"L/*^=8MA1R 34KYRMRW7)RP32%)X7PA30T)S0T0&$T\nM)X4T)T)P<%&%45%145%14:U129F9[.Q7)Y24)Y24E\">4A91!A4$_0D)!E$&%\nME$)!0C]1/W!147!144E145%14>VM<%%1<4DO1T='1T<O\\?'QSH^/CR7.C_&/\nM\\?'Q\\2]'24EQ486%-#$W>'@W-S<*-S=X>'AME%%Q47!P486%-    !HT)T)P\nM487P-)0  \"1A\"0EMU-34^S'[^_O[-PJLK*RLBXNLK*R+K*RLK*RLO J\\^S?[\nM^_O[^S'[^_O[^_O[^_O[^_L*\"JRLK*S]_9E7_9F9_9G]_9F+BXNLK*RLK JL\nMK H*K J\\O*RL\"@J\\^[R\\O+P*BXO]_=JB:6DR,C(R8F)BD6)B8I&1D9&1#>R1\nMD>SLD9&1D>SL[)'LD>SLD9'LD>SL#9'L[)'LD9'L[)&1D9&1D9&1Z#(R,FFB\nMHIG]BPK[^_O4;3X)?7UJ?6IJ:FIYK/W]_7G]>7G]-C;]-GG]-C:8VMHVVC82\nM$OTV-C8V-I@2$MH2VMK:-MK:VMH2$J*B$MD2V:)IV=EIM+1IZ+2TM&GHM-FT\nMM&EIV=EI:=FBHJ+:HMK:X4G?25%)45%146P)\"0D);6UM\"0EM;6UM\"6T)\"0D)\nM)R?P\\#0G-\"<G)S0G)S0G-#0T)PD)\"0D)\"6UM/FUM;6W4U&UMU&UMU#%M;=1X\nMU'AMU-1X;7AX,?LQ,7@Q^S$Q^WAX\"0EL;&P)\"0EM>'C4;?W]B_UJ_:S]K*QY\nM_:RL_?W]_?W]_?UY>?W]>?VL_?VLK*QJO+R\\O'U]^_O[J*BEI:C4I=34U*;4\nMI@EM/@D)\"0D);&P)\"6QL;&QL\"0EL\"6QL\"0D)\"3X);:8)/@D);6VF\"3YMU-34\nMU-34U-2EI=34I=2HU-34U*74U-34U*7*U/O4U-34U-2EU-34I=34U-2HU-34\nMU-34^_SX=!X> X. ^!X#@P$U-:=:<E@>*-8>30$U-:=R6\"M4M0\\/31Y-30$U\nM<A185%2UY^<SF[4KIP,#]#5R%+945 ^U5\"O'QQ1R-:=R5.?GQ\\?'Y^?G5,=R\nM-36V5 ]4*RL4%'(U]%3G*UARIW(U-#2%A84T)R<T)S0G-#0TA85\"A7!P<'!P\nMK:U145%147%QE\"<G)R<G)R>4)X4G\\)0GE(5!0D)!/T)\"E$(_/S\\_A86%A7!1\nM45%145%)45%145%1[5%124DO1R\\O\\?'Q\\?&/)<Z/SH_QCR6/\\?'Q\\?%'24E1\nM484G-\"=M;'AX>'AX>#$))VQ1<(5P0G!\"A6$D \"0 ))4T-$)P-!HD     $ )\nM;6W4U/O4^]3[^_O[-PH*\"@H*\"@H*\"KP*\"@J\\O+R\\O/L*^_O[^WC[^_LQ^_O[\nM^S?[^S<*^_N\\\"@J+_8O]_?V9_9F9VOW]_8NLK(N+K JL\"JP*K JL\"JR+\"HNL\nM\"JP*O H*K J+_9F9::(R,F)B8F*18F*1D9&1D>SLD9'L[)'LD9'LD9&1[)&1\nMD0WLD9'LD9&1D9&1[)$-[)'LD9&1[)&1D9&1D6)B,FFBF9G:BXN\\^_O4;6T)\nM?;Q]?6J\\:FIJ:JQYK'EY>=HV-C9Y>3;]-MK:_382$C82-MHV-A+]VMK]-OTV\nM$MK:F#82VIC:F-H2$J(2$FFBV=G9:;1IM+1IM.BTZ+1IZ-EI:;39:=G9:=FB\nMV:(2VB])24E)27%)45$)\"0D)\"0D)\"0EM;6UM;6T);0D)\"0DG-#0G)S0G-\"<T\nM)S0G)R<G)R<)\"0D)\"0EM;3YM;=1MU&UM;6UMU-0QU-1XU#$Q,7AXU/MX,?LQ\nM^S%X^_LQ^_MX>&QL\"0EL\"0EL\"6QX>-1M_?W]K/VL_:QY_:RLK'FLK/W]_?UY\nM_?W]_?W]_7FL>:S]BZQJO+Q]O/N\\^_O[^_O[J*6E^]34U-34U D);3YM\"0D)\nM\"6QL\"0D)\"6QL\"6P);0D)\"6T);:8)\"=0);::F;0G4U-2FU-2EU*6EJ#'4I:C4\nMI:6EI?LQU-2EI?O4U-34U*7[U-34^]2E^Z6E^_NEJ*6EJ/NH^_NE_/@%+ --\nM3?A*'@-- 34U<G(4MJ/6(P---:,U-5JV6%14,YM-'@--]#60<A0K5)LSM;6;\nMM>>G P---7+'*U0/,P^U*RM8MMVG<G(4*U0KQRM4*RM8QW*G-5145.=8MEBV\nMW35-YRNVQW*G 0$GA30TA87P-#0G-#0G)X6%A85\"45%147!14:U1<%%)24DG\nM)_\"4E\">4)R?PE)24)Y24E)1!04)\"/Y2%E(6%A86%A4&%A7!147%)45%124E1\nM45%)44E)22]'1R\\O+R]'\\?&/\\?$EC\\Z/SH_QC_'Q\\?%'24E1484G-#1 0!H_\nMK84:0#0TA4*%44%P<\">5      ! -#0TA6$       \"5; EMU#$QU#$QJ#'[\nM^_O[^S?[^PK[-PH*O J\\O+P*\"KP*\"OLW^WC[^_O[^_O[^S?[^_N\\^_N\\O H*\nMK*R+_?W]_9G]_?W:VOV9B_W]BZS]K(N+BZR+BZS]B_U7B_V+K(N+BXN+K/W:\nMHJ(R,C+HZ&)B8F*18I'LD>SLD9&1[.SLD9&1[ WL[)'L[)'LD9'LD>SL[)&1\nM[.R1[)'LD>R1D>QB[)&1D6)BZ**BF9G:_8L*-_O[U&UM;7U]?7V\\O&IJ:FJL\nM>:QY>:QY_38V-GDV$C8VF-H2-MHV_1(V$C8V_9@V-C82VA+:$A+:VA+:VMK:\nMVMK:$A*BV1*BV:+9:=EIM.AIM&FTZ+2TZ+3HV6FT:=FBHJ(2$B]'24E)25%)\nM45%1\"0D)\"0D)\"6UM;0D);6UM\"0EM\"0EM)_\"%\\#0T)S0G-\"<T)S0T-#0G\"0D)\nM;6T);6UM;6UM;6UM;6UMU#$Q,=0QJ-1XU#'[U#'[,3'[,?LQ^W@Q,?MX,0D)\nM\"6QL;&QL; EL;-0Q;0FL_:S]_?VL>8N+K*RLBZS]K*R+_?VL_?W]_?W]_?W]\nMK/UYK*RLO JLO'U]^[R\\^_O[^ZBEI:6EU*74U,H);0D^\"3X)\"0D)\"0D)\"0D^\nM;3X^;3X^/CX)\"=34\":;4\"=3*U&W4U-34I=2EI:74I:6EI:6EI?NEU-3[RM2E\nMU-0Q^Z6EU*6H^_LQ^Z6E^Z6H^_O[^_O[^_O[^_MW^'0L TT!^$H>34T!]*=:\nM6G)8 =8> TWT-37T6A3'Q^>U,TT#38---:=R<A14#U2U#_\\/*\\<#30'T6A2V\nM#P_G5 ]46+98<J>G<G(4QROGYUCGY^<4%*>G5.=4Y^<KMEAR6@$K5%A8%*<!\nM->4TA87P-(6%)S0T)S2%07!P<'!\"45%124E)[7%145%)+U$GE)2%0H64E/\"4\nM)X64E(5\"E)24086%<(6%A86%0D)P<'\"%485P47%)<4E1<7'?4=]144E)24DO\nM1T?Q\\?'Q\\8_.C\\Z/\\?$EC\\Z/\\8^/\\2\\O24E1A84T-  D #0T0  T-/\"%A4)P\nM<'\"%-       )!HT-(5A)  D    E D)\"6W4U-34^]3[U/LQ^_O4^_O[^_O[\nM^_L*O+P*O+S[\"KS[^_O[^_O[^[PW^_O[^_O[^_N\\O+P*O JLBXO]_9G]_=K:\nMF=K:VOW]_8N+BXN+BZR+K(O]BXO]_?V+B_V+B_V+B_V+VFEI,NAB8F)BD9%B\nM8F+LD9&1D9'L[)&1D>SLD9'LD>R1D9'LD>SL[.R1[.R1[)'L[)&1[)&1D9&1\nMD9%B8F)B8C(R:9F9_8NL\"OO[,6UM;:A]?7V\\:FIJ:GUJ>:QY>7EJ>7G.VC9Y\nM_3;]_7DVVC;]$A(2-C8VVC82_382VC8VVA+:VA+:$A+:$A(2$A+:$J(2V=FB\nMV=EIV=EIM+3HM+2TZ.BTM.AIM-EIV=FBV6G.+[@O24DOX;RF\"0D)\"0D)\"6UM\nM\"6T);6T)\"6T);6T)\"2>%)R<G)R<T)S0G-\"<T)R<G)PD);6UM;6UM;6UM;6UM\nM;6UM;=34U#'4,3$Q>#'[,=3[,3'[^_O[^_LQ^_O[,?L);&P);&QL\"0FE,3'[\nM;6T);(MY_?VL_7FL_7FL>:RL:JRLK/VL_?W]_?W]_?W]K/W]K*RLK*QJO+R\\\nMO+R\\^_O[??O[^ZBEI:6EU*74U*9MI@EM\"0D);3X)/@D);0EM\"6T);6UM;6W4\nMU-34U-34U-34U-2EI=2EI=2EI?O[I=2EI:74U*7[J-3[,=2EJ-34,=2EI?NE\nMI?NH4Z7[^_O[^_O[^_O[^WW[O#3X2@.# 37X2@.# TTUIY!:<N<>UAX#334U\nM-35RMEC'*[4/30,#38,!-7):<EA45+6UF[4K<DT!-:=RQRLS#[6UM><KQ[;=\nM6G)R<G)85\"OGYU0K*UARIP%4YU0K6%C'%+9:-50K6+:V<@$UY30GA2>%-(4T\nM-\"<T-)5\"47!145%P45%145%)24E144E)\\5&4A4%\"A864A924E)24)R<TA32%\nMA86%A86%A86%A7!\"A7!P<%%144E)<4E)25%)25%1WTE)24='\\?$O+_'QCR7.\nM\\27.SH_QCR7.C_$E\\2]'25%1A84T0   0  D&C0GA86%<'!P<(4T)  D    \nME30T0\"0      !QL\"3YMU-34^S&HU-0Q^]3[,?O[^_O[^_O[^_N\\^PJL\"KR\\\nM-S?[^Z7[^S?[^_LW^_N\\\"KR\\O J\\\"@JLBXN+_8O]_?W:VIF9VMK:VOW]_?V+\nM_8O]_?V+_?V9F9G]_?V9_8O]_?W]_9FB:3)B8F*18F)B8I&18F+L[.SLD9&1\nMD9'LD>R1D9'LD>R1[)'L[)&1D9'L#>SLD>R1D>R1[.QBD6)BZ.@R,C)IHIF9\nM_?V+K K[^VUM\":BH?7U]?;Q]?7UJ:JQJK'EY:OUY_7G]-GDV-C8V-C82$MHV\nM-MHV$A(V-C8V$MH2$MK:F-H2VA(2$A(V-C8VVJ+:VMH2VMH2HA*BHA)I:=EI\nM:6G9M#)I:>AI:=FBHJ*BSKA)24EQ<6JE\"0D)\"0EM\"0EM\"6UM;6UM\"6UM\"6T)\nM\"0EL)S0T-#0T-#0T-#0T-#0T-#0)\"0D);0EM\"6UM\"6T);0D);6UM;6UM;=0Q\nM,3'4,=1M,3$Q^S$Q,3$Q,?LQ>#'[\"0EL\"0EL\"7@Q,3&ERFUM;0D:K*QJK'FL\nM_:RLK*RLK'FLK*RLK*RL>?VL_?UYB_UY_:S]K*RLK*R\\K+R\\O+R\\O+S[O/O[\nM^_NE^Z74,=0QU*;4\":8);3X)\"6T)/@EM/FW4U*;4U-34IJ;4I<JEU-34U#&E\nMI=34I=2EI:6EI:6EI?O4I?O[U*6E^Z74I:6EI?NE^]2EI?NE4_NH^U/[O'W[\nM?;R\\O/N\\O H*U?B_'DVC3?A* P,# ?2GIW)R*QX%(P--]#4UIW(46\"M4#_\\!\nM'@,#30&G<G*V6%3G,P^UY^=830$UD-T4MN?FFP\\/Y^=86+9:IUI:<A0K*ROG\nMYU146+:G-5145.?GYUC'<G*GYU0KQQ1:337!-(6%A?#PA87P-\"<T)X5145%1\nM45%145%145%124E)24='42>4E$%\"0I2%A30T\\(4TA? T\\#2%A86%A4)\"43]\"\nMA85PA4%P<%%144E)24E)+TE)24E124E)Y\"\\O\\?'Q\\?'QCX^/CX\\EC\\[QC_&/\nMSH_Q\\4=)45&%A84T0\"0    T-#3PA4)!<%%10D      )$!A&@        \"5\nM; EM;6W4U#'4U#$Q^]34,3'4U#$QI?MX^_LW\"ON\\O+P*^S?[^_O[^_O[-S>\\\nM^_O[O/L*\"@J\\O*RLK(N+_8O]_?W]VIF9F=K:F=J9F?W]_9G]_9F+B_U7_5?]\nMF9G]_?W]F=K:F9FBHFDR8F*18I%BD6)B8I&1D9&18I&1[)&1D>R1D>SLD9&1\nM[.R1D>P-[)&1D>SL[)&1[)'LD>QB8F)B8N@R,FFBHIF9_?V+BPHW^]1M/@FE\nMJ%.H?7V\\?7V\\:FIJ:GFL:GFL>6K]_<XV-GG]-A(V_=HV-IC:HA(VVA(2$C;:\nM$A+:F-HVVA(2)'5U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U\nM=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U\nM=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U=75U\nM=75U=75U=75U=75U=75U=75U=75U=1 H;0EM\"0\"LK/W]B_VL_?W]K/VLBZRL\nM:JS]K/V+>:R+K/W]>8O]_?UYK*RLK JLO+R\\K+R\\O+R\\^_O[J*C[I:6EJ-34\nMI=34U-2FU*9MIFT);:;4U-34U-34RM34U-34U-34J-34U-34I=34^S'[U*6E\nM^]3[U/NEU*6EI?O4I:6EI:74U-2EI?O[J/O[^U/[O/N\\^[R\\O J\\K+QJK*R \nM^ 4#3?1-^'0# P,!-36G6G*V([T#34T!-35R%,=45.?FT<8C P--]*=:<A3'\nM6%3_F[4KQUI- 36G<G+'5.>;T9NU*^>V%')R<G*V6%14YU0KYUC'%%HUQU0K\nMY\\>VYQ046C5:5%@KQW)-IX,G-(7PA86%\\#2%-#0T-$)1<%%P<%%14:U145%1\nM<7%)1R_Q)R>%E#^%A87P\\(4T-/ TA86%A85!/T$_44%!<'!10G!P0G!1<%%Q\nM24E)22])24=)24E)24='1R_Q\\2_Q\\?&/CR7.\\<[Q)8_.CR7QCX_Q\\4E)44*%\nM)R<: \"0  &$T)X6%[7!)+U&5        0    \"0  \"0 80D);6UMU#'4U#'[\nMU*@Q,?O4,?LQU/LQ^_LW-_LW^PJ\\^PJ\\^_LW^_O[^_O[^_O[^[R\\K*RL\"JP*\nMK*R+B_W]_?V+_=J9VIFBF6F9:9G:F9G]_?V9_9G]_?V+_9G]_9G:F=J9F9F9\nMHFDR8NAB8I%B8I%BD6*18F)B8I'LD>SLD9'LD>R1D>R1[.R1D>R1[)'L[)'L\nM[)&1[)'LD9%B8F)B8C)I,FFBF9G:_?W]B_O[^]1M;0FERJBHJ'U]?7V\\O&J\\\nM:FIJ:GEJ:JQY>7EY_3;]-C8V-C:8_1(VVA(2_1(2HC;:$A+:-A*BHIC:VA(P\nMLRDI*2DI*2G *2DI*2DI*2DI*2DI*2DI*2DI*2DI*2G *2DI*2DI*2DI*2DI\nM*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI\nM*2DI*2DI*2DI*2DI*< I*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI\nM*2DI*< I*< I*2G #'4)\"6QA *RLK*QYK(NLK(NL:JRLK/VLK*RLK*RLK/UY\nMBWFL_:QYBZS]K*R\\:@IJO+R\\:KR\\O'V\\??O[^ZBH^_NE^]2EU-34I=34U*;4\nMU-2FU-34U-34U-34I=2EI=2EI:6EU*BH,?O4^]34U-3[^]2E^Z7[I3&E^]2E\nMU/NE^]2EI?O[^]3[I:6EJ%/[4_O[O+R\\O+RLK*RLK*S]K/SX=!Y- 0/X!1X>\nM P$U-360<E@L!8-- 34UIW*V*^=45)L('@4#30$U<G)R%,=4#PC1M><KMDT!\nM-36G<A18*^;1_[7GQU@4<MW=%!14YU14Y^?GYUBV6J-4*U0K*UCGQW)R-34K\nM5%C'IP&GP30G-(6%A?\"%\\(7P-/ T)T)145%1<(5\"A4)\"<'!P47$O+_$O-\"<G\nMA85\"A86%-/\"%A86%A85\"/S]1/U&%A7!!A>EP<'!P<'!145%)22])24='1R])\nMY$E)22\\O1T<O\\?'QC_&/SH^/)<Z/SH_QSL[QC_'Q1TE1[84G-#1   ! -#2%\nM<%%11_%'_   )  D    )     !G9T )\"0D);=34U#&H>#&H,=3[U#'4U#'[\nMU/O[^S?[^_O[\"@J\\^PHW^_LW^_O[^_N\\?;P*\"@JL\"JRLK(N+B_W]_?W]F=K:\nMF9F9HJ)IF6FB:=K]F?W]F?W]_8N+_9G]_9G:_9FBVJ)I:6EIZ#+H,F)B8F)B\nM8F+H8F)B8I&18F)BD9'L[)'L#>R1[.SL#>SLD9'LD>SLD9&1[.SLD>QBD>CH\nM,F)I,FF9F?W]_8NL\"OO[^]1M;0G*RLJHRANHJ*B\\O&IJO&IJ:JQY:FIY>7G]\nMSC9Y-GDV_38V-C8VVMJ8VC:B$A+:$A(2VA(2HA+:$A(2VG6S&<# P,# P,# \nMP,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# \nMP,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# \nMP,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# \nMP'49=0EA &=G\"JRLK IJK*QJK*RLK*RLK*RLK*S]K*S]K(MYK*RL_:QY_:S]\nMK*RLO&J\\K*R\\O+R\\O+S[O'U]^ZA3I:6EI:74I=34IM34U-34U-2ERLK*U*6H\nMU/O4I:6EJ-2EU*6EI:6EI?NEJ*BHJ*C4^]2E^]34^Z74I:7[I=2E^]2EI:6E\nMI:6E^_O[^U/[^[R\\^[P*K JLK(NLK*S]^$J_'@.#+$H%U@,#@P$!-:=R6(#6\nM TT!-?0U<A0K5+545)N]U@.# :=R<A185+7_]@BU5%C'30$U]*=RW;98*P^;\nM5.?G%+9R%+;'5+4/#P_G*\\?GMEAR-<=4YUBVY\\?'%%HUW518QQ2G-34!-#2%\nM-/\"%A86%A86%A? G)T)\"<$*%A?\"%A85\"A4)\"K5%'+_&%-#2%0H6%A86%A86%\nMA86%A86%A86%A4%P<%%P05%1K>VM<'!144EQ24DO1R\\O1T='24E)1TDO+_'Q\nM\\?'QCX\\EC\\Z/CX_Q)<Z/)8_QC_%'25%1<(4G)P   $ TA:U122^/\\84     \nM           D \"0TE D);6UMU-3[,3$Q^]3[>#'[,?O[^S'[^_O[^S?[^_LW\nM-S?[-_O[^S?[-_N\\O H*\"@JL\"KR\\K(O]B_W]_=K]VMK:F9G:HFEI:6EI:9F9\nMHFF9VMJ9_=J9_?V9_?V9VIFBF9FB::)I:3(R,F)B8F)B8I%B,NABZ&)B8F*1\nMD6*1D9&1[.SLD9'L[.R1D9&1D>SLD>SLD9'L[)%B8F(R,C)I,FFBF?W]BXL*\nM\"@K[^VUM;0D)U*6EJ!NHJ!L;?7U]?7UJ:FIJ:FIJ>6JL>?UY-GDV$GG]_?W:\nM-A*8_1+:$C8V$A(2-A(2HJ*BHA*BHMH2=1EU3T]/3T]/3T]/3T]/3T]/3T]/\nM3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3UY/\nM3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/\nM3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]$&1EU&@   #Z\\\nMK&JLK&H*K*QJK*RL:JRLK/VL>:RL>:RL>:RLB_VL>8NL>8O]K*QJ\"KR\\O+R\\\nMO+R\\?;R\\^_O[^_NH^Z6EI:6EI:74RJ74I:74I=34I=2EI:6EI?NEI:6E^Z7[\nMU*6EI=2EI:6EI:6EI?NE^Z6EJ/NEI?O[U*74^Z7[^]2E^_NE^_NEI?NH^WV\\\nM^PJ\\O+R\\K+RLK(NL_:SX)$K6 TV]^$K6'@--@_0U-7*V+-8#30$!-36G<K8/\nM#[54YP/6'DT!-5IR%+8K,P_1_[4K5!0! 34UIW)R%+98*U3GY\\=86'*G%%A4\nMF^:UM53G*UC'QQ2GYU0KYUCGQ\\=RD*,UMEC'MC4!-0$GA30T-(6%\\(640D&%\nMA87P)T*%0D*%)S0G)R>%A85\"47%)+TDG)X6%0D*%0H6%A86%A4*%A86%<(5P\nM<(5PA7!1<%%145%1K5%124E)+TDO1T='+T='1T=)1TDO+R_Q\\8_QC_&/)8_.\nM)<[QC_&/SO'Q\\2\\O25%P0B<T0!J5-'!145'QC_%10\"0        D       :\nM-)4)\"6UM;6UMU-34^]0Q,?O4^S'[^S$Q^S'[^_O[^PHW^S?[^_O[-_O[^_O[\nM^[P*K*RLK+R\\O*R+BXO]_=K:F:*9HIFBHFEI:9F9:6EI:6F9HJ+:VOW:_?W]\nMB_W:F9FBF:*9:9EI,C+H8NCH8NCH8F+H8F)B,F*18F)B8F)BD9&1D9&1D>R1\nM[.SLD9&1[)'L[.R1[)&1D6)BD>CH,C)I:6F9VOV+K H*\"OO[,6UM;0D)RLK*\nMRJ8QRJ6H&U,;?;R\\O.%J:JQJ_7EJ>7EY-GDV-C8V-C9YF#;:-OW:-A(2-A(2\nM$J*B-A(2HA(2V=H2$J)U&0S+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R[X9&74   !G&[P*O&J\\K&JLO&JL\nMK*RL:KRLK*RLK*RLK/VLK'EYK/VL_:RLK*S]K*R\\:KR\\O+R\\O+R\\^_N\\O+S[\nMO%.H^_NEI:7[I?O4I:74I:74I:74U*74I:7[I:6E^Z6EI:7[I?NH^_O[I?NE\nMI:7[^_NEI?NEI?O4I:6EI?O[I:6H^S'[^_NEJ/O[4_O[^_N\\O+R\\K+RLK*R+\nMK*S]WTI*O]8#30. ^-8# P-- 36G6L<CUAY- 34U-37=QU0S5%0K ]8> TWT\nM<G(4QU0/F]&;Y^=8QTTU-:>G<A2V6%A4*^?GQ\\>V%*=RQS/_#^?GYRNVQQ04\nMMEJV5.<KY\\?G*Q1:-4TKQQ3=I_0U-2<G\\/\"%A4)\"0H6%A7\"%A84T-$&%A86%\nM-#0T-\"<GA85\"47%'+S0T)R>%A86%]X6%A4*%A85P086%Z85\"<'!147!145%Q\nM45%1K5%Q24E)+T<O\\4='+R\\O+R\\O1T='1R]'\\?&/C_&/C_&/C\\Z/SB6/\\8_Q\nM1T>X4:V%A30T)X5!<'\"%48^/1^       \"0         9QH \"0D)\"0D)\"6UM\nMU-34>/O[,?LQ^S'[^_O[^_O[^_O[^_O[^_LW^_O[-_N\\\"@IJK*RLBXNL\"JRL\nMBXO]F?W:F9F9VJ*9HJ)I,FFBHFEI:6EI:6F9VIF9VOW]_?W]_=J9HIFBF:)I\nM:6EI,N@R8F*18F)BD9%B8F)B,F)BD6)BD9&1D9&1D>R1D9'LD9&1D9'LD9&1\nM[)'LD9&18F)I,FFB:9G:_=J+BZP*^S?[^]1M;0EMILH)ILK*&\\H;I1NHJ*BH\nMY'U]O+SA:FIJ:GEY_7G]-C8V_382$C8V_9C]$A+:$OTV$A+:$A(2HJ(2$J(2\nM$J(V$G49=<O+R\\O+R\\O+RT_%#,MKL\\7%Q;X3<\\7%:\\O+R\\O+R\\O+RPS%:\\LP\nMQ<5/$\\O+<\\7%Q8W+R\\N-Q<7%=6O+R\\O+R\\O+3\\7%Q<4,<\\L,Q6O+R\\O+RVL,\nMQ<7%Q;/+3\\6S:\\4P:\\O+R\\O+R\\LPQ6O+:\\5URVL,Q<7%Q4_+3\\6^RT_%<[/%\nMQ<7%LVO+R\\O+R\\O+R\\O+3T\\9=0   $#AO+R\\O+R\\O+R\\O J\\O*RLK&JL\"JRL\nMK/VL_:RLK*S]K*R+>?VL>8NLK*RLO+Q]O+S[O+R\\O#=3^ZC[^_NHJ*7[I:6E\nMJ/NE^_NEI?NEU*6EI?O[I:7[I?NE^_NEI?NEI:7[J*7[I?NE^Z6EI:7[^Z6E\nMI?O*I:7[I=2EI:6EJ-34I:7[^_M34S>\\^[R\\\"JR\\K*RLB_VL_:QJ^/@%U@,!\nMUOAT(P,#30$UIW)R%$K6'DWT-0$UD%H4*U14B52#'AX#335R<G(45)L(W/_G\nMMEC' 34U<G)R%%C'5\"M4*^<KQ\\=R<A185.:U5\"LKYU@4Q[;=IW)4*U0KYRNV\nM6'(U 518MK9:-0,UA84G)_ T\\(6%A85\"086%A2<T-#2%\\(7P)S0G-\"?PA85\"\nM45%1<\"<TA86%A86%A85\"A7!P47!P<$&%A7!P<(5P45%14>UQ24E145%)22])\nM1R\\O1T='+T='1T='+R\\O+_'Q\\?'QCX_QCR6/CR6/C\\Z/\\?'Q+TE)44*%)R<T\nM45%\")T)'C_&%     \"0        D   D   ); D);0D)\"6UMU*BH,=2HU-3[\nMU/LQ^S'[O+R\\O+S[^_O[^_O[^_O[^_LW\"@H*BZS]BXN+BXO]_?W]_9FBHFEI\nMF:)IHJ)I:6EIHFDRHFDR:6F9:9F9F=K]F=J9VIF9F6FBHJ)I:6EBZ&)BZ&)B\nM8F)B8F)BZ&)BZ&)BD6)B8NR1D9'L[.SLD9&1[.R1D>R1D9&18I%B8N@RHJ*B\nMF=K]_8NL\"@J\\-S?[^S'4;0D))VRFILK*\"=?*RLH;J*BH4WU]O+SA:KRL:FIY\nMK'G]>7EY-C8V-OTV-C82_38V-MHV$MH2VMK:VA(V$MJB$J*B$J*B=1D,R\\O+\nMR\\O+R\\N^)\"1K$R@DL[[%)$_+LR2*$\\O+R\\O+R\\O+BB03R[Z^#\"1U$\\L3OKXH\nM)$_+OB0HOD\\D@&O+R\\O+R\\NS) R^3R2 :\\4D:\\O+R\\L3BB2SOKZ^<XTD)\"3%\nM)\"1UR\\O+R\\O+RPXDO6N*)\"AK*\"1/OKZ^<\\M/)$_+#\"2^C;Z^OKXDBLO+R\\O+\nMR\\O+R\\N^&1EU &<:U^&\\O+R\\O+R\\O+R\\O+R\\O JL\"JRLK*RLK*RLK'FLK*S]\nM:GF+K*RLK(NLK JLO+S[O+R\\J*C[??O[4[S[J/O[^ZA3^Z6EI:6EI:7[I:6E\nMI:6EI:6E^Z7[I?NH^Z7[I?NE^Z7[I:7[^Z6H^Z6E^Z6EI:7[U/O4I<JE^]34\nMI:7[I?O[U*6EJ/O[??N\\\"KRLO*RLK'G]_?W]K\"_X^-8>30'6^+\\# P.#-9\"G\nM6A3'#B,#334U-36G6K;'*^<SYP,> TU-]*=R<E@ST=Q9W.?GQ\\<U-:=R<G*V\nMQROGYRM4*^?GQQ2GMBM4YU3G*U0K*^?'6')R<E0S*RLKYRM8<C4!6,=8%-VG\nM337I)X6%A?\"%A85\"A4)P<%&%A2>%)S2%A90G)S0T)S3PA85\"<%%1)R<T)_ G\nMA?#PA85\"0D*%<'!PA5%!A7!!<%%145%1<5%1<4E)24E)22]'1R_Q+R]'\\?'Q\nM\\?%'1T='+T<O\\?'Q\\8^/C_&/C\\[QCR6/\\?%'+TE)486%-#1\"A30G<\"_Q<$  \nM)        \"0           EM\"0D)\"6UM;6UM;=34^S&HU#'[,3'[^_L*O+P*\nMK+P*^_N\\^_O[^_O[^_L*O*RLB_W]_?V9_9G]VIEIF9FBF9EI:9FB:3)I,C)I\nM:6DR:6EI:9FBHIEIF6F9F:*BHJ)IHC)I:6EB,F)B8F)B8F)B8F)B8C+H,NAB\nM8F)BD9&1D9&1D9&1[.R1D9'LD9'LD9&18I%BZ.AI,J*BF?W]_8NLK J\\^S?[\nM^_LQ;6UM\"2<T\":;7ILJFI<K*RJBH&ZBHJ%-]?7V\\:FIY:FIY>7G]VOW:-GDV\nMF#8V-C:8VMHVF-HV$OTVF-H2VA(2$A*B$A*B$J)U&77+R\\O+R\\O+<P DC<L3\nM)\"C+RVNSOLO+#\"0PR\\O+R\\O+R\\N])&O+R\\O+Q22SR\\O+RVN )(VS)$_+RT0D\nMC<O+R\\O+R[, OLO+1\"1SQ21KR\\O+RQ,D@$]/LT^^O@\"^,\"2-Q2C+R\\O+R\\O+\nM*\"0D)\"0D*&LD*$]/LT^-R[,D3\\OY)(W+:T]/3V<PR\\O+R\\O+R\\O+RT\\9&75G\nM-#[DW_N\\O+S[O+S[O+S[O'V\\O*QJK&JLK+RLK*RLK*QYK*RLK/VLK*RL:FIJ\nM:KR\\O'W[O+S[O+S[O+S[4[S[^U/[^_M3^_O[J/NEI:6E^_LQ^S&EI?NEI?NE\nMJ*BE4_O[I:7[J*6H^Z6EJ*7[^Z74I?NE,:7[I=3[U-34I?O4I:6EI=3[^Z7[\nMJ/O[O+P*O+QJK(NLBZRL_?W]W_A*_ --]-;X= ,# TTUIW)R<A1T'@,! 34U\nM-:=R%%@K5)O131X#30$UIW(4MIMV;A_1Y^?'QP$UIW)R<A04*P]4YROGY\\?'\nM<J<45\"LKYP^UB50KYUBV%%JV]O:;*U186+84ITU4%+84<J=--8.%-(4T\\(6%\nMA85PA7!PA5%\"<(6%A30^\"C&4A2<T-\">%0D*%0E%P-\"<G-/ G-/\"%]X5P45%!\nM0G!1<'\"%<'!P<'!P45%144GM2;A)24DO22_Q1_'Q1_'Q\\?'Q\\?'Q\\?%'\\?'Q\nM\\?&/\\?'QCX\\EC\\Z/\\?&/\\?%'24E1486%-\"?PA4)125$T                \nM        80EM\"0D)\"0D)\"6UM;=34U-0QU*7[^_LWO J\\\"KR\\:KR\\\"@K[-_O[\nM^_O[^PJ\\BXO]_?W]_=JBVJ*B:9FB:9EIHJ*B:9EI,J)I,FEI::)I:6EIHJ*9\nMHJ*BHJ)I:6EI:>@R8NAB8NB18F)BD6)B8F)B8F+H8F(RZ&(R8F*1D9&1[)&1\nMD9&1[)'L[)&1D9&1D9%B8C)I,FFBF9F9_8N+K*P*O#?[^_O[U-1M\"0DG)R<G\nM%PD7ILK*RJ4;RJBH?:A]?7U]:FKAO&K]>6IY_7G.-L[:-C8V_38V_3:8-A+]\nMVA(V-A(V$OT2-C8VVIC:$J*BHG49#,O+R\\O+R\\N^)+/+RVLDQ<O+R\\O+R\\O+\nM \"3+R\\O+R\\O+R\\4D$\\MKOKXP),7+RXV^OH DLT\\D3\\O+#\"2-R\\O+R\\O+3R1/\nMR\\MU)(W%)##+R[Z^$R2 # PP)'6^)!-/ ,NS*,O+R\\O+R\\L.)(HDO20H:R2 \nM# PP)&_+3R1/RPPDC4^ , P,OA/+R\\O+R\\O+R\\O+OAD9=95!WWT^O+Q]^[S[\nM?7V\\4[R\\^WV\\O+QJO+R\\K*R\\K*RLK JL\"JRLK(NLK*RLK+QJO+R\\O+S[O+RH\nM^[RH4ZC[4U.H^U-3J/M34Z7[I?O[^ZBEJ/NE^]2HI?NE^_NE^_NH4Z7[4_NE\nM^Z6EJ*7[^Z7[4_NEI:7[I3'4^]34I:7*U*6EU*6EJ/NEI:C[^[S[O#<*K JL\nM_:S]_?W]5_TO^$H% P$!UO@%'AX#30&06G)R%+\\L TT!]#6G<G(4MEA4F]PC\nM TT! 34U<G)8,W8?W/_G*\\?'IS6GW7):6K94F[7G5\"OGY\\=RI\\?'MBNUT9OG\nMYU0KY\\<4<I\"@H='G*U0K6,=R 5K'QUAR<@$U.B<GA84TA86%0H5107!1A85\"\nMA86%)S3[\"@F%)R?P-(6%A4*%0D(T-\"<G)S0G)R>%0H6%<%%147!P45&%<'!1\nM47!P45%)47%Q2;@O24DO22\\O\\?'Q\\?'QCX_Q\\?'Q\\?'Q\\?'Q\\?&/\\8_QCX^/\nM)8^/C_'Q+T<O24E1A84G-#2%<'%)-                       ) !G\\\"<)\nM\"0D)\"0D);6UM;=2EI?O[,3'[^_N\\\"KRL\"@H*\"JR\\O/O[^_LW^[P*K(N+_9F+\nM_9F9F9F9HIFBHFF9HFF9HC)I:6EIHFF9:6F9HFEI:9F9F9EIHFDR:6DR,C(R\nMZ&)BZ&)B8F)B8I&18I%BD>AB8F(R8F(R8F)BD6)BD>R1D9&1D9'LD9&1[)%B\nM8F+H,C(R,FF9F9G]_8NL\"@H*-_LW^_O[U-1M;0D))S0G-/#PA87PA?\"%A4)\"\nM<!L;?:A]O'U]?6IJ:FIJ_7EY>3;]-GG:VC8VF-H2VC8V-C:8VOT2-GDV-C8V\nM$A(2VA*B-A(2=1EUR\\O+R\\O+RT\\DL\\O+$R0HR\\O+R\\O+R\\LD),O+R\\O+R\\O+\nM*\"1K3R@HQ8 DO1,,@+W%)\"2S3R1/R\\L, (W+R\\O+R\\NS $_+RT0D<\\4D@+-/\nM)(H3@&>^<PPDL[XD$VN-R[,HR\\O+R\\O+RR@D:\\5K)\"AK@(\"^<S D3\\NS $_+\nM# \"-#\"2^<W-K$\\O+R\\O+R\\O+R\\M/3QEUE,KDY&PW4_N\\J+R\\J/O[^U.H^ZBH\nM-[R\\?6JLO&J\\O+QJ:FIJK*P*:JQJK*RLO J\\O/M]O+S[^_M]^[S[^_NH^U/[\nMJ/M3J/NH^U/[I:BEI:7[I?NE^]2EJ/NE^_NHJ/NE4_NEI:7[J/NE^Z6EI:C[\nMI:7[I:6EI:C4^Z4QI3&EU*6EI:6EI:7[I:53^_N\\O+P*K JL_:S]_?W]_2_X\nM2M8#3:/6^ 4L TT! 36G<A2VOQX#30$!-35R<L<4QRN;;B,#3?0! 360W<=4\nM\"!]N]N=4*RL!-:>06G)R<BN;_^<K5\"O'YQ1R%%@K5/\\(FP_GYU3'%')R 1]N\nMT0^)YRNV%'(!5%A8MG*G 34>A84GA87PA?>%<'!P47!147!PA7\"%A2<WB]3P\nM\\#0G-#3P-#2%A84T-#0G)S0T\\(6%0E%\"4>VM47!P<%%!<'!P45%145%14>U)\nM24<O22]'1R_Q+_'Q\\8_Q\\8_QC_'Q\\?&/\\?'Q\\?&/\\8_Q\\8_QCX_Q\\?'Q1[A)\nM25%1<(4T)R=\"K30        D       D             $!L-\"<); D)\"0EM\nM;=34U*7[^_O[\"@JLO+S[\"@K[^S?[^_LW^[R\\\"JRL_8O]_9G:_:*BF:*BHFF9\nMHFEIHFFB,FEIF6F9HFFB:6FB::*9HFEIHJ)I,FGH,N@RZ&)BD9%BD9%BD9&1\nMD9&1D9%B8F)B8F)B8F)B8F*1D9%BD9&1[)&18I%BD6)B8F)B,C)IHJ*9VIG]\nM_?V+K(L*\"OO[^S'[^S'4U&T);\"<T)R<G-\"?P)X6%A86%0D)P44)P44%1X;Q]\nM:FIY:GEY_7G]>3;]SC8V-C8V-C8V-C82_382>38VVC82VOTV-A+]$A(2HA)U\nM&0S+R\\O+R\\O+O@#%R\\MK)+W+R\\L3$\\O+C0 DR\\O+R\\O+R\\O%)!. )'/+C23%\nM<R3%$\\NS)+.S)$_+RW4DC<O+R\\O+R[,D3\\O+=22-,\"2-#  ,<\\N-,  D +,3\nMO@ 3R\\O+LXK+R\\O+R\\O+#B03RQ,D*,N-Q21G)$\\3RT\\D3\\L,)+X3LP D) \"S\nMR\\O+R\\O+R\\O+R[X9&75L;,K*RJ@WO/N\\^_O[4ZBE^_NE^_NH4_N\\^[R\\O+P*\nM:KP*K+RL:FJL\"KR\\O+R\\O/N\\O/N\\?;R\\O/O[^WV\\4U/[^U.H^U/[J%/[J*A3\nMI?NH^Z7[I:7[^Z6E^Z53^Z7[J*BH4ZC[^Z6EUZ6E^U/[I:7[RH7*4]2EI:74\nMU-0QU)34,=34I:6EU*7[^Z6HO%.\\O+R\\K+RLK/W]_?U7=_A*= --]/A*UAX#\nM3?0! 7(4MA1*(QX# 34UIW(4%%BV6%31L0--@P$!-35R%\"N;'Q\\(M><KM@$U\nMIW):6EH4QYN;B518Q^?'6'(4ME@ST9OG5 ^UYUAR6J?TYO^;YU3GYUBV6DUR\nMMBLK<J<!-<&%-(6%\\(6%A4)\"<'!P45%1<%&M<'\"%)R>\\BX6%A2<T)R>%A86%\nMA84T)S0G)R>%A85\"<'!P45%14:U1K>VM<%%145%145%1<5%)24='22\\O1T?Q\nM\\?'Q\\8_.\\?'QC_'QC_'Q\\?'Q\\?'Q\\8^/\\8_QCX_Q\\?'Q1TE)45%!<(4T-\"=A\nM                                 $ T-#0)\"0D)\"6UM;=3[,?O[^U/[\nM\"@H*\"KS[^_O[^S?[^_O[^PJLBXO]_?W:VMJBVIF9HJ*BHJ*B:9EIF6FB:9EI\nM::*B:6EI:6FBHJ)I:6FB:6EI,C(R8NAB8F)B8I&18F*18I%BD9%BD9%B8F*1\nM,F+HZ.AB8F)BD6)B8I%B8I%B8F*18F)B8FFBHFF9_?W]_:R+K*P*\"OO[^_O[\nM^_LQU&UM\"2<G-\"<T-#0G)S0G)_ TA86%A4*%45%1[5&MY\"_DK&IJ>6IY>7G]\nM-GDV>38V>3;:VC8V-C8V-GDV>=HV-OT2-A(V$C8VVA(2$G49=<O+R\\O+R\\O+\nM#\"0PRQ,D@&O+3R0,RW,D)(W+R\\O+R\\O+O@XD:X D<\\N^),5S)(H3RPP LT\\D\nM#,L3Q22-R\\O+R\\O+3R1/RQ/%)(W+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+\nMR\\O+R\\LH),O+$R0HR\\O+R\\O+R\\O+LR1/RPP C<O+R\\O+R\\O+R\\O+R\\O+R\\O+\nM3QD9=937/I3D4Z534U-3^ZC[I?NEI?NEI?NHI:B\\O+R\\?;R\\O J\\O+R\\O+RL\nMO+R\\O+R\\O/M]O/O[O/O[O+Q]^U/[^U.H^U/[^U/[J#?[4_NEI?NEJ*6H^Z7[\nM^_NE^_M3J-?7084^I5.EUX5\"U_NE^ZBE4U&%]S^EI:74I?O4RFPTA874RM2E\nMI=3[I:77A86H-_LWO+RLK*SA26K]_?W^^$J_+$TUUO@C+$T! 0$U<G)8M@76\nM'@,! 35R<A2VMEC'5/_T TU- 0$UIW*V6#,(T=$/Y^=8 34UIUIR%+94FP_G\nM5%C'MBO'<G(4QS/_M50KY[4KQW(U-4UR5%3GYRLKQQ1R-0$K*[98IP$U 86%\nM-(6%A87WA85P07!PK5%145%1<%&%)R<T44*%A86%A84GA84G)S0T-#0G-/\"%\nM0H6%44%P45%1<%&M45%145%124E125%124E)22]'1R_Q+_'Q\\?&/\\26/C\\[Q\nMSO'Q\\8_Q\\?'Q\\?'Q\\?&/\\8_QC_'Q\\4<O1TE)45&%0H4G-#1A            \nM                  ! E&PG)PD)\"0D)\"6UMU-34^S'[^_O[-PK[O+S[^_O[\nM^_O[^_L*K(O]_=J9F:*9F9G:HJ+:HIFBF9FBHJ)I::)I:6EIF6F9:6EI:3)I\nM:6FB:6EI:3+HZ.AB8I%BD9%BD9&18F*1D9&18F)B8F)B8NAB8C)B8F*1D9%B\nMD9&18F*1D6*1Z&)BZ&DRHJ*9VMK]_8NLK H*\"OO[^S$Q^_LQ,=1M;0DG-\"<T\nM-\"<G)S0G)S3PA86%A85\"47!1<'!145%145%)>6K]>7G]_7DV>7EY_7EY_7G.\nM-C;]-C8V-C8VSC8V-C8V-MHV-A(2-OW:=1D,R\\O+R\\O+R\\L3Q0\"SRT\\H@\"@ \nM,'-KBB1/R\\O+R\\O+R\\N-9R03OHJ U8#%C1.S@\"@H)# 3$S  * Z LQ/+R\\O+\nMR\\NS)( H*(\"SR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+RPXD$\\L3\nM)\"C+R\\O+R\\O+R[YG)$^S)\"2-R\\O+R\\O+R\\O+R\\O+R\\O+R\\N^&1EU0=>40<JH\nM^ZC[J*BH4_NEJ*C[I?NHJ/O[I:7[^[R\\O/M]O+Q3O+R\\O+R\\O+R\\O%.\\^_NH\nMJ%/[^U/[^U-3J/M3^U/[^U/[^U/[^U.H4_O[I?NE^Z7[^Z53I?M3^\\I\"A85P\nM<%'[J->%0H6%I?NEI:4_]X6%A3&EI:6EU-0_-(4T\\#'4I3'4RJ74/X5\"0M=3\nMO'V\\\"@H*?5%14?W:VO[X^'0>334D^-8C P$!-35R%+98=-8C TT!]%IR<A18\nM6\"M4#QX#34T! 9\"G<A3'Q^>UM;54*[8U-35R<G(4Q^</#^<K*^=8YUAR<G(4\nMYU3G*U14*^=8<J<U35I4*RLK5%0K%%JG-518*UC= :<!A86%)X6%A86%0H5P\nM45%145%145%1<'\"%A2<T)U&%A86%A86%A86%A2<T)S0G)X6%0G!P45%144E1\nM45%145%145%Q25%145%1<5%)22]'+_%'+_'Q\\?&/\\8_Q)8^/C\\Z/\\8_Q\\?'Q\nM\\?'QC_&/\\?'Q\\?'Q\\2]'1TE145&%A84G-#0<                        \nM    0&UM;2<G)R<G\\&UM;6UMU/O4^_O[^_LW\"KP*\"KP*O+P*O/L*\"HN+_?V9\nMF1*9F9FBHIF9F9F9HJ*9HJ(R,J*B::*9F:)I::)I,FEI::)IHJ(R,C+H,N@R\nM8F)B8F*18I%B8I%BD6)B8F)B,I%B8NAB,F)BZ#)B8F*18I&18F)B8F)B8F)B\nM,C)I::)IF?W]_?VLBPH*\"C?[^_O[^_O[U#'4U&T)\"30G-\"<T-#0T)S0G)S3P\nMA?\"%0H6%A5%P07!1[5%146IJ_7EJ_6K]>7G]_7EY>7DV>?UY>=HV>38V-C8V\nMVC8V>=HV-OW:-C82-IAU&0S+R\\O+R\\O+R\\MKC8W+RVN-C8T3RQ.-C1/+R\\O+\nMR\\O+R\\MSC1/+:XV-C6O+R\\MSC8V-R\\O+RXV-C7/+R\\O+R\\O+RVN-C8V-<\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+<XW+R\\N-<\\O+R\\O+R\\O+\nM:XV-:VN-C1/+R\\O+R\\O+R\\O+R\\O+R\\O+RT]/&764&I3*WZ7[^Z6EI?NH4_NE\nMI:6EI:7[J*7[^Z6H^ZC[O*B\\^[Q3O/N\\O'V\\^_M3^_NH^ZC[I:BH^ZBE^_O[\nMJ/M3^U/[??O[4S?[^U/[4ZBE^U.EI:A3I:C[^ZC?A85P<$)PA:C7A4*%A4+*\nMI:6E/X6%A86%RC&EI:6EIH7PA86%;=34RM0QU#^%A86%/_O[^[R\\O-]P45%1\nM:OW]=_A*U@--] 7XUM9- 0$UIW)R%!1*UAX#@TTU<A1R%+;'MN=4'@--] $U\nM-:?=MEC'*RM45\"OG6#4UIUI:MA3'5.8/M>=4*U0KQW*G<K;'Y^=4*^=46+98\nM<G(!MBN)5%@K6,<4<C6G*U0KMG*C<C7E)X6%\\(6%A4*%0E%144E144E125%1\nM47\"%A2<TA5%1<'!\"<(6%A86%A30T)S0T\\(5\"0G!P47!144E1[7%Q47%144E1\nM24E)25%125%)2;@O+_'Q+_'QCX^/\\<[QSB7.\\26/\\?&/\\?'Q\\?'QC_&/\\8_Q\nM+_%'+R])25%1486%A84T)S259P                          ; DG-#0T\nM-#0T-(4)\"6W4U/LQ^_O[^_O[\"KP*O+R\\O/L*K*S]_9E7_=J9VJ*B:9G:HFFB\nM::*9VIFBF:*BHJ*BHJ*B::*B:3)IHJ)I:6EI:6GH,C+H,F)B8I&1D9&18F)B\nM8F)B8F(R8NABZ#+H,NCH,C)B8F)BD6*18F)B8F)B,F)BZ#(R:6FBHJ*9F?V+\nMK(L*O#<W^_O[>'C4U-34;6UM;0DG)S0G-\"<G-\">5)S0T)R>%A86%0G!1<'!1\nM<%%145%J_6IY:OUJ>7EJ_7EY>7EY_?UY>?UY>7EY_7EY>7G]>3;]-C8V-C;:\nM-C;]-G49=<O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+OAD9=4 GRN1!I:6E^_NEI:7[I:7[U/NEI:7[^_NH\nM^Z7[^ZC[^ZC[J/NHO/N\\^_NHJ/NEI?NEI?O[^Z6E^_NE^S&E^_O[^Z7[4_NH\nMJ*7[^Z53^_NE^_NHI:BH^_NE4X5P<(5\"A86%UX5\"A85\"A:6EI3^%A86%A84Q\nM,:74,92%A?\"%-\"?*;=34U&T_A84TA84_4Z7[^[S?45%145'A_=K^^+_6 TT!\nM^/C\\+ ,!-36G<G)R 0[6'@--3?1R<G(4QU@KYU0! P$U-36G6K84QUA4YROG\nM*U3'-34UD%K=%\"M4F_^UY^?G*\\<4<EIR%\"M45.?GYROG6!04W0'F#S.)5%A4\nMQW*GIW)46,=8<C4U 2<TA86%A85\"A7!1<'!1<4EQ24G?45%145&%A90T-%%1\nM47!P<$&%A4*%A2>5)R<GA85\"0E%145%147%145%147%144E)<7%147%124E)\nM+TDO\\4?Q1_'Q\\?&/)8_QCX^/SH_.C_'QC_'Q\\2_QC_'Q\\?'Q+_%'1T=)25%1\nM486%A2<TA30T'&<   !G                  ! -#0T/T$T-/<T- D);=34\nM,?LQ^_O[^S?[-S<*\"KR\\O JLB_W]_=J9_9FBF9FBHJ*BHMJ9F9G]VMJ9VIG:\nMF=J9HIEIHJ)I:6EI:6EIZ#)I,F)B8F+HZ)%B8F)BD6*1D6(RZ#+HZ.@RZ&(R\nMZ.CH8C)BZ.AB8NAB8F+HZ.AB8NCH,NAI:6EI::*9F?W]BXNL\"@K[^_O[>-34\nMU&UM;6UM;0D)\"2<T)S0TE33@-#0T)R<G-/\"%A4*%<(5P<%%!<%%1?6IJ>6K]\nM>7EYK'EY>7G]>?UY>7EY:OUY_7G]_?W]_7G]_7EY>3;]-GDV-C8V=1D,R\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+\nMR\\MS<\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+\nMR\\O+R\\O+R\\MKC<O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+C22S\nMR\\O+R\\N^&1EUA=?D&VRE^Z7[I?O[U*7[,:BHU*7[U*6HI:BEI:BE^Z6EI:7[\nM^_O[I:C[J/NE^_NEI:6EI:6E^_NE^Z6HJ/NEI:7[I?NEJ/O[^U.H^_NEI:6E\nM^Z6E^Z6EJ/M!<(5\"0H5\"0D)\"A4*%0H6%,3$_A86%A86%A:7*U#%\"A2?PA32%\nMA6W*;=340B?PA?#PA3]34_O[UW!1<%%P46K]_?SX=\"R#30'X2@4>@P$!-9\"G\nM6G)-OR,# P-- :=R<A3'*U0KYP,#30$UIW*V%,?'QU2UM>?G6,<! 35:<A2V\nM%\"L/_YNUM8GG*\\=RIUJV*U2UF_^UY\\>VQ[:VHYX?_YOG*^=8<G*GI^=4%')R\nM-4T!-\"<G\\(6%A85\"0D)\"45%)25%)24E)45%145&%A84G-%%145%P<'\"%A7\"%\nM-#0T-\"<TA4*%<%%P45%144E144GM47%)<5%)24EQ45%Q47%)+R\\O\\?'Q\\?&/\nMC\\Z/SH^/SO$EC_$ESO'Q\\?'Q\\8_Q\\8_Q\\2]'+T='Y$=)45%1A7!PA2<G)S0T\nM0&% 831 9T!AE31 9P!G&D!G    )Q?7/Y5 &F$T-&UM;?LQ^_LQ^_O[^_O[\nM^_LW-PH*K*R+_?V9_?W:F9F9HIF9VMJ9VIG]_?W]_?W]_?V9F=J9HFF9HJ*B\nM,FEI,FDR:6+H8NABZ&)B8F)BD9%B8F)B8NABZ&(RZ#+H8C(RZ#)B,N@RZ&)B\nM,F+HZ.@RZ#(R:3)I:6EI:9F9F?W]_8NL\"@J\\^_O[J#%X;6UM\"6T)\"6T)\"0DG\nM)R<T)S0G)S0G-\"<T-#0G-(6%A4)P<'!P<%%1WWUJ:FIJ:FIJ:GEY>6JL:OUJ\nM>?VL>?UY_7FL>?UY>7EY>?UY>?W]_7G]-C;]-C9U&75/*(W+OBB]:\\MKLRB*\nM*$]KR\\MSBBA/R\\O+R\\NS3\\O+OHJ*L\\O+R\\O+:XJ]#,O+C8J]<RB :T]/R\\N^\nMQ2BSRVNSQ<6-RVO%*,6*L\\O+R\\O+R[Z*O2@P<\\N-BBA/R\\O+R\\O+^2C%C<4D\nM<\\O%*+W%,&LP$\\L3,\"B*3XJ]O<5/BBB]:\\N^BKU/RQ. )\"1/R\\O+RT\\9&74^\nM&QL;-*6H^Z6EJ-3[I<JHRM3[U*6EI:6EI:6EI:6EI:C4^Z6EI:6HI:6EI:7*\nMJ-2EI:C4I:C4I:C4^Z6HU/NEI:C[U/NEI:6HU*7[I?O[^_NE^_NE^_NEUX5\"\nMA86%0H6%A86%A86%A87*%X6%A84TA2>%RC'4/H7PA32%\\#2%U-3*2S2%-\"<T\nMA86%03&E4U%\"4851<%%1?6I1_/B_'@.# ?CXU@,#@P$U-7)R<A0H P.#34WT\nM-7)R%+;G6\"OG'@--] &G%!3'<L<K5)LSYRM46#4!-9#=<A3'5 \\/M>8/5\"NV\nM%%JG<A14M3/_T3,K*\\=8QQ0UJ: (FP]4Q\\=:-360M2O'<G(U34UW-\"<G-(6%\nM0H5\"<%%1<%%)+TE)24E)45%145&%A2<TA4E)<5%1<%&%A86%)S0G)R>%A4)P\nM0E%124EQ45%145%)25%125%145%)[5%Q[4E)22\\O\\?%'\\?&/)8_Q)<XEC\\Z/\nMSO&/SO'Q\\?'Q\\?&/\\?'Q\\2\\O1T='24E)45%PA86%A86%)S0T)S0G-\"<GA5&%\nMA2<T830T-#1G0!J4091A      \"5\"6UMU/O[,?MX,:AX^_O[^_O[\"JR+BWG]\nM_?W]_?V95YG:VIF9_=K]_?V+_?V+_?V+_?W]F=JBF:)IHC)I:6EI,F(R8F*1\nM8I&1D6*18F)B8F)B8C+H,C+H8NAB,N@RZ&)B,NAB8C(RZ.CH,FDR,C(R:6EI\nM::*BHJ*9F?W]_8N+\"@HW-_O[^S$Q;6UM\"6T)\"0D);0D)-\"<T-\"<T-#0TX#25\nM-\"<T)S3P\\(7WA7!P07!P<'\"H?6IJO&IJK&JLK*RL:FIJ:GFL>7EJ:FIJ:GEY\nM>?VL_7EY>7FL>7EY>:QY_7DV-G49# PDC7. )\"1KR\\4D) XD) P3R[XD)&_+\nMR\\O+RXUG=3\" )\"2-R\\O+R\\L3)\"3%R\\N^)\"0H)\"0P<V=U,( D)+X3,\"1G*\"2^\nM:R0DQ;YSR\\O+R\\M/)\"2 )\"2 <XTD)+/+R\\O+R\\L,)\"0H)\"3%$R0D)+Z-$S#%\nM=<4D)#!/)\"0D +,D)\"2-R[XD)+/+RPPD)(\"-R\\O+OAD9=1ODWVPGI:6H^Z6E\nM^Z6EI:74I:C4U*C4I:6EI:6EI:6EI:7*I:6EI:6EI:6EI=3*I=34RM3*U*6E\nMI:C4I:6HU/O4U*6HU-3[U*7[^]3[J-3[U/O[I:7[^QN%0H5\"A4*%A4+WA4*%\nM]X6%A1>%A?\"%A?#P\\(5MU-<GA2?PA87PA31M;6TG)R>%A? T)X4_I:4_0D)P\nM47!!<%&LWU%T^$K6'@--^/C6'DU-30$UI]UR3;\\#34T# P$UIW(4QRM45%0>\nM TT! :=RMA046,=4M>?G*UC' 0$U<G)R%%BVM53G5+7G6,<4<G+=MBM4#]'_\nMYU186,>V6*>I'YNUM2M8<G*G-0'G5!1R6J=- ?<T)R<G)X6%A4*%<%%144E)\nM24DO24E)45%145%PA84T)TE)<5%P<$)10G TE30T-/\"%0D)145%145%)<5%1\nM25%Q44E124E)25%1<5%Q44E)+T<O+_'Q+X^/C\\[QC_&/\\26/SH_QC_'Q\\2_Q\nM\\?'Q\\?%'\\4='1TE)25%147!107\"%A86%A30T)R>%0D)P4:U1A86%-#0T9T\"4\nM)Y0G0     ! \\)0)\"0EM;=34U-34>'C4^_O[^_O[O*RLB_V+_?V+_?W]5_W]\nMVIF9B_VL_?W]B_VLB_V+F9G]VIFBHJ*B:6EI:6EI,N@R8F)B8F)BD9%B8F(R\nM8F)BZ#+H8C+H,C)BZ&(R8F+H,NCHZ&DR,FEIHJ*B:6FBHIFBF9G:VOW]_8NL\nM\"@K[-_O[^_O4,6T^;0D)\"0D)\\(6%)_ G-#0G-\"<TX\"<T-#0G-\"<G)_\"%A87W\nMA4)P<'!P45%P?7UJ:FIJ:FIJ:FIJ:FIJ:FIJ:KQJ:FIJK&IJ>7EYK'FL>:RL\nMK*QY>7G]_?W]=1EU#\"1/*\"0D)&M/)\"0D$R0D)(W+C20D#,O+R\\O+$\\4,LR0D\nMBA/+R\\O+RVL )!#+R[XD)\"0D)',3, RS)\"2*$[XD)+/+,(!K)\"0PR\\O+R\\O+\nMRR0D)+YU)\"0POB0DL\\O+R\\O+RT0D)\"0D)+[+)\"2 R\\O+3RA/*\"0DOD\\D)#!/\nMOB0D)'/+OB0DL\\O+$\\4D) YKR\\N^&1EU&SY!-$*E^Z6HI:6EI:6EI:6HU*6E\nMJ-34I:74I=0QU-3*U-0QI=0QI<K4U#&FU-34U-1MU-34U-34RJ7*U*BHU/O[\nMI:BHI:C[U*C4^]2EJ*6HU*7[^Z6E/X6%0H7WA4*%A86%A86%A86%A86%A86%\nMA86%A<IMA?#PA?\"%-(6%0LK*2X6%\\#0TA87P)Z:EIH6%]T)P<%%1<-=P4?CX\nMOQX> TWX^'0L38--]#60<G)ROP--@P--]#5R<G(45\"M8YP$# TWT-7(4%+;'\nM6,<KM8E4*UA- 35:<A3'QU14Y^?GY^=46'):<A3'ME0S\")OG6,>V6\"O'6I!_\nM5\"OGY\\<46J<U ;;G6-URITTU0I1L)R<G)X6%A4*%<%&M44DO24DO24=)25%1\nM45%P030GA:U10H5!A4*%094T)R<G)X6%0G!P<%%)25%125%1<5%)24EQ45%1\nM44E125%)24E)1R_Q\\?'Q\\8^/)<Z/SL[.C\\[Q)<Z/\\?'Q+T='\\?'Q\\?'Q+_%'\nMY$E)25%1<'!\"<(5PA86%)S0T-%%145%P44)10C25&@! E)24)T      0/!\"\nM-&P)\"6T)\"6UM;=34U-34U#'[,?LW\"JRLK*RLB_W]_?W]_=K]_?W]B_V+K(N+\nMBZRLK/W]_9F9_9F9HJ*BHJ)I,NCHZ&)B8F*1D6*1D6)B8F)B,N@RZ.@RM&GH\nM8C(RZ.AB,K2T,C)I,FF9:6F9HJ*BF=J9F5?:_?V+_:P*K H*^_LQ^_LQ,=34\nM;6T)\"0D))R>%-(6%-/\"%)S0T-#0T-#0G)S0T-#0T-\">%A87W0H5P0G!\"<$'D\nM?;Q]:GUJ:KQJ?>&\\:KQ]:KR\\:N&\\:FIJ:FJL:FK]:FIJ:FIJK&JL>7EY>?UU\nM&0RS)\"0D)\"0D:R@D)( 3)\"0D,,N^)\"1OR\\O+R\\O+3XK%)\"1/R\\O+R\\O+:R0D\nMQ<O+OB0DOB0D#,M/*# D)+/+Q20DL\\O+$VLD)\"B^C<O+R\\M/)\"0DOD0D)\"2S\nM)\"0P3W/+R\\O+#\"0D3X P$\\L )\"2^OLMKB@P )(H33P D3\\MK)\"0DC<N^)\"2S\nMR\\O+,\"0D),5KR[X9&76%)S0G</NEJ*6EI:BEI<JEI:6EI<JEI:6EU,K4U,K4\nMRM3*U-0QU*;4U,K4IM1M;6T^;3YM;=34/M34U-2ERM2HU*6EI:6EU-2EJ-3[\nMU*BEU*6H^]3[I=>%A4*%A86%A86%A86%\\(6%A87PA32%\\(6%-#0G;84T)S0G\nM)R?P-\"=!I=2%-#0T\\/ T-#2%; F%A86%A4)PA4)P45%1^/A*'@.#]/A*!1Y-\nM34T!-:=R<C4.+$U-34T!IW)R%,?'YU3G30,#30$U<A2V6%C'5%0SF^=4*S4U\nMIW)R%,=4F[54*ROG*UA8MJ?=MEA85 \\(#ROGYUC'6,>VME0K5%0K6+84W34!\nM5\"M8MMV0HW(Z/FQL;\"<G)_\"%A4)!<%%124DO1T='2>1)25%145%PA2<G-#0T\nM)S0T-#0T-#0T-#3P\\(5\"<%%145%144E144E145%Q45%)24E14>UQ47%Q24FX\nM+T?Q+_'Q\\8^/CR6/)8^/)<Z/CR6/C_'Q\\?%'\\?'Q+R\\O+T='24E145%145%P\nMA4*%A86%A30G-$*%0E&%44(T-&< 0#24E)0G9P    !A-&$T80D)\"0D);0EM\nM;=1MU-34U#'[^_L*\"@JL\"JR+K*S]_?V+B_W]_8N+B_T*K*P*O JLK/W]_?W:\nMVMH2HIF9HJ)I:3)I8NAB8F*18F)B8F)B8NCH,NAI:3)I,C+H:>AI,F)I,C)I\nM:6EI::*B::*BF9F9VOW]_?V+K*RL\"KPW^_O[^_O4U-34;6T^;0D)\"2<G-/\"%\nMA32%-#0T)S0G-#0G-#0T)S0G)R>%A?#PA86%0D)P<%%P4:A]?7U]O'U]?;Q]\nMO'U]?;Q]?7V\\O'U]?6J\\:KQJ:JQJK&IJ:KQJK&IJ:GEY:G49# PD)\"0D)\"1K\nM@\"0D !,D)  0RXTD) S+R\\O+R\\MK@  D@&O+R\\O+R\\MK \"3%R\\N^)\"03@\"0D\nMRQ.  \"2 :\\N*)\"2SR\\O+:R0D)#\"SR\\O+RT\\D)\"2^#\"0D)+,D)( POLO+R\\LP\nM)\"1SQ20,RR0D)! ,R\\L,)\"0DL\\M/)\"1/RVLD)\"1SR[XD)+/+RW,D)\"0D) P3\nMOK,9=30T)S11I:6EI?O[I:6E^Z6EI:6EI=2EU-34U,K4RM34U-3*U*;4RM2F\nMU-2F;3YM\"0D)\"0D)\"6UM;6W4U-34I<K4U-2EU*6EJ-3*RM3*U-34RJC4J-2E\nM086%A86%A86%A86%A86%A33PA86%\\(4T-(6%\\/!+-/ T\\#0T)R<G\\)34A87P\nM\\(6%A87P\\#1+A32%A87WA4)P45%P45'X2@4> TT#^/C6 X,! 0$UIW*G370>\nM30$! 34U6G)RQROG5.?6(QZ\" :=R%,?'ME2UFP@(M2NV-:=R<G(4*S.;M;7G\nM5\"O'5,=8IW)8QU0K,YNU*RLKYQ2V6'*GQ\\?GYU18Q\\>VW0%RY\\<4%%H!ITUM\nM\"0EL)R<G)X6%A4)P47!124E'+R]'1T=)24G?45%PA84G)S0T-#0G-\"<T-\"<G\nM)_\"%A85\"0E%145%)<4E144E)45%)27%144E145%1[7%)24E'+_'Q\\?'Q\\?&/\nM\\8^/C_&/\\8_Q\\?'Q\\?%'+R\\O+_'Q\\4='1TDO25%145%P<'!1A7!\"A86%)S0G\nM-#0GA4*%-&$  $ TE?\"4-&=G    &C1     \"0D)\"0EM;6UM;6UMU-3[U/O[\nM-PJ\\K J\\O&J+_8N+B_W]_8N+_:R+K&JL\"JR\\O J+_?W:F:*9HIG:F:*9HIFB\nM,N@RZ.@R8NCH8NAB8N@R,C+HZ#+H:>@RZ&DR:>AI:>@R:3)I:9FBF9F9F9F9\nM_?V+BZR+\"JP*\"@H*^_LQ^WC4U-34U&UM;6T)\"2<T-/ G\\#3P\\(6%\\(4T)S0G\nM-#0G)_ T\\#0T-\"<TA86%A4*%A85PA7!\"<$+DY+Q]?7U]?7U]J'U]?;R\\?;RH\nMJ'U]?7U]O+R\\O+QJ:KQJ:FIJ:KQJK/UY=1EU#\"0D)\"0D)&MO)\"0D$R0D)$^S\nM,\"0D* S+R\\O+R\\L,)\"0,R\\O+R\\O+RQ,D),7+R[XD)!-G) [+RPPD)##+R[, \nM)+/+OK-K \"0PRQ/+R\\O+<P D)+X,)\"3%OB0DL\\O+R\\O+RT0D)'.])\"03)\"2 \nMR\\O+RXT )\"1KRT\\ )$_+:R0D)(VS,\"0DO0S+#\"0DQ3 D)+.^&1EU)S2%A5&H\nM4ZBHI:BEI:6EI:6EU-3*I:6EIM34IM34U*;4IM34U FFU-34U&T^;0D)\"0D)\nM; D)\"0D)/FUMU-34U,JERJ7*I<K*U,K4U-34U-34U-2ERD&%A86%A86%A32%\nM\\#2%\\#3PA? G\\\"?PA?\"%-/ G-\"?P)S0G-\"<T)S0G;&PTA86%A30TA32%A?#P\nMA?\"%A86%0H5\"<$)P4?CXUAY- 0. 2@4>30$!-:>GIW)-2B-- 34U]#5R<A18\nMMBOGYQX>'DWTIW*V6%C'5'_<'VX/5\"LU6G)R<K8K5.8/M>?GQ^=86+9R<K;'\nMQU3GM>?G5%0KMA1RW34KM0_G*UBV%%C=H\\>V*[9R-35R30EM\"0EL)R<G)X6%\nMA7!145%124E'+T?D1T=)25%145&%A86%)X4G)S0G-#0G-#0T-(6%0D)P44)1\nM45%Q24E)45%)45%144E)47%145%145%144E'+T?Q+_'Q\\?'Q\\?'Q\\?'Q\\?'Q\nM\\?'Q\\?'Q1R\\O1T<O+T='1TDO25%145%1<'!PA851A86%A30G-#0T)S0:    \nM830T-)4       !       !A\"0D)\"0D);0D);6UMU-3[^_O[-PK[\"@J\\\"JRL\nMBZRLK(NLBXN+BXN+BZP*\"@JLK*R+5]JBF:+:F9G:F=J9HJ)I,FGH,NAB,F(R\nM8C)I,F+HZ#+H,FEIZ#)I,FGH,FGH,C)IHJ*BF?V9F=K]_?VLBZRL\"@J\\\"C<W\nM-_O[^WAX,:C4;6UM;0D)\"0DT-\"<G-#0G)X6%A?\"%-/ TA33P)S0T)S0GA87P\nM\\(4TA86%A?>%0D)PA5&%44&H?:A]?7U]J'U]4WVH&WVH?7V\\?:BHJ/O[\"3YM\nMU+R\\O+R\\?;QJ:FIJK*QU&0RS)\"0D)# D:W-G)\"2S)\"0.:S D)\"0D)!/+R\\O+\nMRW, )'/+R\\O+R\\NSLR0D#K.^C20DOB0DC<O+:R0DC<O+<X D,+,D#&LD)##+\nMR\\O+R\\O+,\"0D#(HD)$^^)\"2SR\\O+R\\O+#\"0D<\\4D)!,D)(#+R\\O+RS D#,O+\nM3R0D3\\MK \"0D<\\4D)\"0D)!,D)\"2^:R@DBD\\9&74TA5%12?NH^_O[4ZC[I:6E\nM^Z6EI=34U*;4RFW4IM34U-34/J9MU#YMU#YM;3X);&QL\"0D); D)\"0D)\"6UM\nM;6W4U-2EU-34U-34U,K4U&UM;6T^;6UM)S0GA33PA87P\\(6%A86%\\(4T-#0G\nM-\"<G)R?P)_ T)S0G)S0G-\"<T)S1M-(6%\\#2%\\(7PA33P-#0GA86%A?>%<'!P\nM45%P^/C6 P.# _A*2B-- ?2GIUIR% $HU@,! 4TU-35:<BLK5\"LKUB,# 36G\nMW13'ME2;65G<T;4K6#5R6MUR<A0K#YL/M8GGYU3GQQ04%!3'QU14M;7G*U@4\nM<G)R->:;F^?G5%C'MG(U<BM86%HU :?!\"3YM\"6P))R<G)R=!A5%!45'724E)\nM+T=)1TE'24E145%PA86%A86%)X4GA30T)X6%-(6%A4)P47!124G?24E)2=]1\nM45%)47%145%)24E124E)44E)+T?Q\\2_Q\\?'Q\\?'Q\\2\\O+R\\O\\4?Q1R_Q1T<O\nM+R]'+R])+TE)25%145%1<'!P<(5P<(6%A30T)S0T-)5G0)4T&D!   !G    \nM9P   &<  &<TE&P)\"6P)\"0D);6W4U#'[^_O[^S>\\\"@JLBZR+_8N+K*S]B_U7\nMBXN+K(NLK*R+_?W]5YF9F=K]VOV9F:*B::*B,FEI:3)I:6FBHFEI,FDR,C+H\nM,C)I:>@R,FDR:>@R:6F9F=K:F?W]_?W]BZP*-S<W-S?[^_O[,?O4J-34;6UM\nM;0EM;0DT)R<G-#0G\\#3P-#0TA87P\\/ TA30T-/ T\\(7P-/ T)_ T\\#2%A?>%\nMA4)P<'!P<!NHJ!NHJ%-]4ZA]4WVHJ'U3J!O[J/O[\"0D)\"6T)\":C4O+R\\?;QJ\nMO&IJO'49=0PD)\"2SOB1KR[[%   DR(W+3\"0D \"0 $\\O+R\\O+$S PR\\O+R\\O+\nM$R0D)\"0D)#\"^)  DBK[+R\\O+1##+R\\O+OL4D  S+:P D  [YR\\O+R\\L31\"0 \nM) ZSR[X  ( .3\\O+R\\M$)\"1SQ20H$X  )-40R\\O+O@!SR\\L$ \"1/RVLD)\"1S\nMQ20D)\"0DLP DBLO+<\\5KOAD9=7!P45%'^[S[4ZBH^ZBH^Z6HJ*6EJ-2EU*;4\nMIM34U-3*RM34/M1MU#YM;3YM\"0D)\"0D)\"6P); D)\"0D)\"0D)/FUM;6UMU&W4\nM;=1M;6T^\"3X)\"0D)\"90G)S0G)R<G)S0G)R<G-\"<G)R<G)R<G-\"<T)R<T-\"<G\nM-#0T)S0T)R<G-\"<G)_\"%\\/\"%A?\"%A86%A87PA86%A?>%A7!P<'#X2@4C TU-\nM)+_5(TT!-:=R<G)R3;_6 P'T 0$UD*=RME@KME36'DT!-360<A3'QW\\]W _G\nMYU3GIS6GD%IR<A14\"/^UY^<K6\"O'%')R<A3'*YNUM>=4QW)R<J>0_YNU5\"M8\nMQQ04%#7=5%BV<C4!]$UM;0D)\"0EL\"2<G)R<G)VQL; E124E'+R_D2>1)25%)\nM45%PA86%A86%A84G)R<T-\">%A86%0G!145%124E)WTE)24E125%)45%145%1\nM45%145%1<4E)+R\\O\\?'Q+R\\O+T='+T<O+R\\O+R\\O\\2\\O1T='1T<O22])+W%)\nM25%145%1<$&%<'!!A86%A84T-\"<T-&&5-!H   !G    9P   &<        <\nME6P)\"0D)\"0EM;=3[^_O[^_O[^[P*:JP*K*P*\"JRLK(O]_?U7_:R+BXN+B_W]\nMB_W:F=K:5YG]VMJ9VFF9:6EI:3)I,FEI:6EIF6EI:6EIZ#)IZ#)I:3(RZ#*B\nMHFFBHIG:_?W]_8N+K H*\"OO[^_O[^_O[,?O4U&UM;6UM;0EM;32%)S0T-#3P\nM)S0TA33PA84TA86%A87P\\(6%A?\"%-(7P)S3P)_\"%A?\"%A87WA86%A86ERANH\nMJ*BHJ!NHJ%.H4U,;J*BHJ*BH^PD)\"0EM\"0D)\"0D)J/O[?;QJ^]0)=1D,LR0D\nM,!.-)&O+RVN-C7,3R\\MSC7.-<XW+R\\O+R\\O+:W/+R\\O+R\\O+)\"0D)\"0D,!.-\nMC7-KR\\O+R\\MS<\\O+R\\O+:W.-R\\L3C7.-<W/+R\\O+R\\L3C8US<\\O+$XV-C8UK\nMR\\O+RPPD)+,D@'/+C8USC7/+R\\L3C1/+RVN-C1/+$W.-<Q-S<XUSC7-KC8US\nMR\\O+:\\N^3QEU<%%)24?[^[RHO%.\\O/M3^Z6EI:6EU*74U*:FIM0);6UMU&UM\nM;3YM;6T^\"0EL\"6P)\"0D)\"6P); EL\"0D)\"0D)\"0EM\"0D^;6T)\"0D)\"0D)\"0D)\nM\"0D))R<T)S0G-\"<T)R<T)S0G-#0G-#0T-#0G-\"<T)S0G-\"<G)R<T)R<T-#0T\nM)S0T)X6%A86%A86%\\/#P-(6%A85\"A85\"0D)P=_CX=\",#34WX= 4>34WTIW)R\nMIW(!#M8# TT! 34UIUIRQU3GM4T# 34U-:=R<A3'\"#WVM53G*\\=R-:>GIW+=\nMME1V_[54Y^?GY\\=R<MUR%+94]G;1M>=8%'):-4TSYROG*^<K6+;=IW)4*UAR\nMIP$U36QM\"0D); EL\"0D); D)\"3X^45%144E)26QL24DO2=])45%1A85PA7!P\nMA86%)S0GA86%A86%A4)1<%%)24E)<7%)24EQ45%)25%145%145%P45%144E)\nMN$='+R]'1R]'+R\\O1TE)24E'+R])+T='+R\\O+TDO24E)+TE)25%145&M[7!\"\nM<'!PA4&%A86%-\"<T)R= 9P  9P  9P  9P     :9P!G'!IL\"0D)\"0D);3YM\nMU-34U/LQ^_O[^S<*\"JRLK&JLBXN+_?W]_?W]_8NL_?W]B_V95_W]_?W]_5?:\nMVIFBHFEI:6EI:6EI:9FB:6EI:6EI:6EI:6EI,N@RZ&FB:6F9F=J9_?W]_?VL\nMK*P*\"OO[^_O[^_O[U/O4U&UM;0D)\"0D)\"2<T)X7PA86%\\#0T\\/ TA87P-/#P\nMA? TA86%A?\"%\\#3P\\#2%-\"<G)R>%A86%A87W0D)\"<'\"HI1L;J!NHJ*BH&ZBH\nMJ*BHI:6HI6P)\"0D)\"0D)\"0D)\"0FHJ/O[^VT)\"0EU&74, (IKR[X :\\O+R\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+RQ-G)&<D)\"1$R\\O+R\\O+R\\O+R\\O+\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+1\"0 )#\"-\nMR\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+R\\O+RT\\9&751\nM24E)+_NH??NH^U/[J/NH4_NEI:6HU-34IJ;4\"3YM/FUM/@D)\"0D)\"0D)\"0D)\nM\"6P)\"6P)\"6P); D); EL\"0D)\"0D)\"0EL\"0D)\"0D); D)\"0D);\"<T-. T)S0G\nM-\"<T)S0G-\"<T)R<T)R<G)S0G-\"<G)S0G-#0T-#0T)S0G)R<T)R<G-/\"%A87P\nMA86%A86%A?\"%A86%]X6%0D)!^/B_(P--'B1*U@,#@P&G<G)R<DU*UAY-3?0U\nM-:>G6K98M9O_'@/T 4TU-7)R<K;F'PA4B2OGYS4!-36GW;98M='_M53G5\"M8\nMQW):MG(46#,?'_:U5.<4<C4U350KYRM46+;'%'):-8DK6'):-35-R0D)\"0D)\nM\"0EL\"0D)\"6P)/@D)05%14=\\);&SD24E)2=]145%1A7!P07!10H6%A30GA86%\nMA86%47!1<%%)24DO22])24E)25'?45%145%P45%145%147%)+[BX+R]'+R])\nM24E)24E)24E)22])N\"])24E)+TDO22])2=])24E145%PK7!P0G!PA7!!A86%\nMA30T-#1A9V<   !G    9QR5)S] '!HG\"0D)\"6T)\"0D);=34^WAX,?O4^_O[\nM^_LW\"KP*O+RLK*RLB_V+_8O]_?V+_5?]_?U7_:R+_?W]_?V9HIFBHJ*9HFEI\nM:6EI:6EIF6FB:6FB:3(RZ&GH:3(R,J+:F=J9_9G]_8N+BZP*\"OO[^WC[^]3[\nMU*AM;6UM\"0D)\"0EL\"6QL)_#P-(6%\\#2%\\/ TA87PA?\"%A84TA87P-(6%\\(6%\nMA86%\\#2%-(4T\\(6%A?\"%A86%A85\"RLH;I<JEJ,JH&ZBEJ*BHJ*BHJ*@)\"6T)\nM\"6T)\"0EM\"0D); EL\"0D);6T^;749=4]/3T]/3T]/3T]/3T]/3T]/3T]>3T]/\nM3T]>3T]/3UY/3T]>3T]/3UY/3T]>3T]/3T]/3T]>3T]/3T]/3T]/7D]/3T]/\nM3T]/3T]/3T]/3T]/3T]/3UY/3T]/3T]/3T]/3T]/3T]/7D]/3T]/3T]/3T]/\nM3T]/3T]/3T]/T$]/T$]/T$]/T$]/3T]/3T]/3T]/#!D9=4E)1R]'O'W[O/N\\\nM^[S[J/NH4ZC[I:6EJ-34U&UM;0D)\"0D)\"0D); D)\"0D)\"0EL\"3X)\"0EL;&QL\nMA2<))R<); D)\"6P)\"0D)\"6P)\"0D)\"0EL\"6P)X\"<T-#0T-#0T)S25)S0G-\"<T\nM-#0T-#0T-)4G-#0TX#0G)^ G)R<T)S0T-\"<T)S0G)R<TA30G)R?P)X6%A?\"%\nMA86%A?>%A4+X2G0#38,>2DHL P-- 35R<J>G34K6 P,! 36G<EIR%%0S_P@#\nM TU-] $U<EK=Q\\=_T0_GMBLK<C4U-9!R%\"NUYK6UYU3G5.<4<J=8QUBV#]$(\nMFXGGQ\\=R6C4!#U0KYUCG*\\>VW9\"G*U04<J<UIP'7\"0D)\"6P)\"0D); D)\"3X^\nM\"0D)\"0D)\"0ELY$DO24E)24E145%107!P<(6%486%A32%A85\"0H5\"A5%145%)\nM24E)24DO24E)24E)45%145%1<%%145%145%124E)24DO22])<5%)45%144E)\nM24E)24DO22])24E)24E)27%)<5%145%P<'!10H51A85PA86%)R<G)S25-&$<\nM9P  9T! -$'70> ); D)\"0D)\"0D);6UMU-34^]34^_O[^_O[^_O[\"JP*O JL\nMK*S]_?W]_?V+K*S]_?U7_?VLB_V+_5>9F9FBHJ+:HFFBF:*9::)I:6FB:6DR\nM:6EI,C(R,C)IHJ*BHIG:F=K:_8N+K(L*O/LW^_O4J-34^VUM;6T);0D); D)\nM;&PG)S0G)R?PA87PA86%A86%\\(6%A?#P-/ T\\(7PA86%A33P-#2%\\\"?P-\">%\nM)S2%A86%A85\"0LK*I<JEJ!L;J*BEJ!NHJ*6ERJ@)\"0D);0EM;6UM;3YM\"0D)\nM\"6UM;6UM;6UM=;,9P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# \nMP,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# \nMP,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# P,# \nMP,# P,# P,# P,# P,# P,# P,# #!EU24=)+R_[O+R\\?;R\\J#>H^ZBEI:6H\nMU*6EI:;4RCX)\"0EL\"6P)\"0D); EL; EL\"0D^\"7AM;6ULE(5\"0H659P!A;&P)\nM;&QL\"6QL\"0D)\"6QL\"6QL;\"<TE84G)X6%<\"<TA2<T-#0T-#0T-#25-#0G-#25\nM-#0T-#0T-#0T-#0T)S0G-\"<T)S0G)R<G)S0G-#0T)S3PA86%A86%A85\"_/CX\nMOP,!31[X2BP# P,!D%I:<G(C=\",#30$UIW)R<A145 ^;#P,# TT!HS5:W;84\nM*[7_T0_G5%BG-36G6MW',^:U5.?GM>?GQUC=I[8K5%0/FS,K5.?GYQ1RIP$S\nMYROGY[986!1:IS546,=R-34U-<EM;6T); EL\"0D); D)\"0EL;&QL\"0EL\"0EL\nM24E)+TE)24E145%1<'!P45&%<$&%A86%A86%A851A5%144E)24E)+TDO24E)\nM25%)45%145%1A7#M45%145%144E)24E)24E)25%145%1K5%144E124E)24EQ\nM24E)<4E)24E)24E145%P<'!147!P44)10H5PA84T)S0G-#2586=AE)0^Y,HG\nM\"0D)\"0D)\"0D);0D)\"6UM;6UMU-34U#'[U#'[^_LW-PH*K JLK(N+B_V+_:S]\nM_8O]_?W]K(N+BZRL_=K:F=K:F9FBF=JBHJ*BHJ*BHJ)IF:(R,J*B:6FB::*B\nMHIF9VOW]BXO]K H*^S?[^_O[U'AMU&UM;0D)\"6UL;&QLE&QLE&PG)R<T-#0G\nMA85\"\\(6%\\/\"%A87PA86%A84TA87P\\(6%\\(6%\\(4TA33PA33PA86%A86%A86%\nMA:7*RJ;*I<K*I:C*J,JHJ*BHJ D);0EM;6T^;6T^;3YM;6UMU&W4U&W4;=1U\nMLRDI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI\nM*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI\nM*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI*2DI\nM*2DI*2DI*2DI*2G #'5'1T='+WV\\??M3^S?[I5.H^ZC[U*6EI:6EU-1M;0D)\nM\"0D); EL; EL;#$)\"0D);6UX;7@Q>'A!A2<T)S0:9V= '!J4; EL;&QL; D)\nM/@D)\"6QLX#0T<$*%A85P0JVM4:U1A85181IA-#0T0G\"%-#1A #0TA4)1484T\nM)R<T)S0T-\"<T)S0G-#0T)R<G)R<T)S0GA?\"%A86%A84T2O@% TV# _AT'@,>\nM P$UIY!:<DT%(TU-]#6G<G)8Q\\<K5#.U+ ,# 360IW*V%,<K,]%NW/]4*S4U\nM-37=ME0/_[7GM;6UM>?GQ[9:QRLS_YM4YU0KY\\?'QQ1R ;;G5\"OG6,>V<EJ0\nM@BM46'*G] ,!R0D)/FT);&P)\"0D)\"0D); D)\"0EL;&P)22])1T=)22])24E1\nM45%147!1<%%P<%%!A85PA4*%<(5P45%144E)22])+TE'1T='+TE)45%147!1\nM44%P47!147!145%144E125%145%P47!1<%%145%145%144E145%145%145%1\nM<5%145&M47!P45%P485P44&%A86%-\"<T-\"<TE30T-\">4)PD)\"0EM\"0D);6T)\nM\"0D)\"0D)\"0EM;=34J-34^_O[^_O[^_L*K*P*K*RLK(NLBXO]_?W]BXN+_?W]\nMF?W]_=K:F:(2HIFBHJ*9VJ*9F9FBF6EIHJ)IHJ*9HFF9F:+]F?W]_?VL\"@K[\nM^_O[^_LQU-1M;6UM\"0D)\"0D))V$TE)1L;&QL;\"<T-\"<G)R>%A86%A86%A86%\nMA86%\\#0G-(7P-(6%)R>%-(7P-(7PA84G)X4G)X4GA86%A874RANERM3*RLJH\nMJ,JHI:7*RLH)\"0D);6T^;6W4;6UM;6W4U&W4U-1MU-1X,0!U=75U=74,=75U\nM=75U=75U#'5U=75U=75U=75U=75U=75U=75U#'5U=75U=75U=75U=75U=75U\nM=75U#'5U#'5U=74,=75U=75U=75U=0QU#'5U=75U#'5U#'4,=75U=75U=75U\nM=75U=75U=0QU=75U=0QU=74,=75U=75U=75U=75U=75U=75U=75U=75U=74,\nM=740*$='1T='^_M3??NHJ*A3^Z6EI:BEI<K4U*;*ICX^\"0D)\"0EL;&QL^_TR\nMF8N95XN+>'AX,6UM;)2%0D*%A2>%A94T=$!AE&QL;&QL; D); EL;\"<GX\"<O\nM25%\"A32%A4)\"47%Q1TF%0&= A5%)45%P-$!G0#3PK5%145&M22]JJ)0G-\"<T\nM)S0T)R<T-)4T-\"<G)R<T)_\"%\\(6%A?SX^'0#30,>^ 4C'@,# 34U-35:([TC\nM38-- :=R<A3'6%@KM50>@P,!-5I:%%A4QU0/\"&Z@W+54IS4!D%H4QS.;0YO1\nMM;6UYRM8%'+'5/]VT8GG*UCGQ^=8MMTUMHGG5\"OG%!1R6J<!5\"O'6-T!3?3!\nM/@D)\"0D)\"0EL\"0EL\"6QL)X6%< D)\"5%Q22\\O22]'24<O24E145%145%145%P\nMA85P0H6%<'!P<'!P<'!144FX22])+T?D1T<O1TE)45%147!145%P47!145%1\nM45%145%145%1<%%!<'!145%145%145%1<'!145%147!145%145%1<%%!K5%1\nM<%%P44)P<(5\"A86%A86%A30T-\"<T- EL\"0EM\"0D);0D)\"0D)\"0D)\"0D);0EM\nM;=34U'C4U-3[,?O[^S<*\"JRLK(N+K/V+_?W]B_W]_?W]_?W:5_V9F=J9F9G:\nMHJ*BHJ*BF:*BF:*B:9FBHJ*BF:*BF=K:F?W]BXN+\"C?[-_LQ^S$Q,=34;0EM\nM\"6UM\"7#IA4$);2<GE&R5-#0TE30G-\"<T-#2%A86%A86%A86%\\(7PA?#P)R>%\nM-\">%\\(7P)X7PA32%)R<G)R>4)X4GA86%RLK*U,K*RLK*I:7*I<K4; D)\"0D)\nM\"0EM;6UM;6UMU-34;6UMU&W4,?MX,7@Q^_O[^_O[^_O[^_O[^_O[^S?[-_O[\nM^_MX,3'[,:C[^_MX,?MX^_O4U-1M\"0D)\"6T)\"0EM\"0D^;6W4U#'4^W@Q^_O[\nM^S%X>'@Q^S'[U#%\"UC7!>'C[,?LQA05-<KPW-_O7</R]3:=:\"0D)\"0E* Z>V\nM;=1MU8/TUVQM\"6T)\"0EL;\"<)/@D)/FP);. G45%144E124E)+TE)1R_Q1R_[\nM??NH4_M3^ZBE^Z6ERJ6EI:74U-1M;0D)\"6P)\"0D);&RL[.SL8C(RF8LW-W@Q\nM,6TG)R>%A:UP<(512?$O[4%P4874\"6QL\"0EL\"0ELX#0G+T=)25&%A84T-#0T\nMA4*M0H650&=AA7\"%-$! 9P  -#2%K5%P<%%142]7F:REI;Q!)R>5-#0G-\"<T\nM-)4G-\"<T-\"?PA86%-/CXOP,#31[X!=8>3?1- 34U-7(>!1Y-34WT-7)R%,>V\nMMBLSM0,#30$UD-VV5 \\/#YL('SW1Y^>G-34U6K985)O1W':;M;7G*Q2VW<?'\nM,_;15\"OG5\"LK6+98%*=_FRN)5%C'MMU:<C4K6,>VQS5-3<EM\"6T);0D); D)\nM; D);\"<G)T&%< EL44E)24E'24E'24E)24E)45%147!P45%\"486%07\"%<$&%\nM<'!145%144E)1R]'1T<O1T='22])25%14>UP45%144)P47!1<'!1<%%\"<%%1\nM45%P47!1<%%145%P<%%145%1<'!P47#M45%145%1[5%P47!145%P47!P486%\nM0H6%A86%A84G-\"<G\"0D)\"0D)\"0D);0D);&P)\"0D)\"0EM;6T^;=34U-34U-34\nM^_O[^S?[-S<*O H*K*RLK*RL\"JR+B_W]B_W]5]J9VIF9HA*9F=J9F9FBF:*B\nMF=JBHIFBVIG:F=J9_?V+_8NLBPHW^_O[^_O4^]34;6UM\"0D)\"2=\"04$Q>&V5\nM-#0T-#0T-#0T-#0T)R<G)R>%A?\"%]X6%A86%A30G-#0T\\#3P\\/ G)R<T-\"?P\nMA2<)\"0D))R<GE\">%RLJFRJ;*RM3*RJ:EILJEU D)\"0D)\"0D);0EM;6W4;=0Q\nMU&W4,=34^WAX,?O[^_O[^_O[^_O[^_O[^_O[-PK[^S?[^S?[^_O[^S'[,3$Q\nM,?LQ^_O[,=1M;6T)\"6UM\"0D)\"0EM;6UM;=0Q,?LQ^_O[,?LQ^\\KI 1LQ,=0Q\nMROP#-;8Q>#'[^Z5*UH.GD#<*WU%\"= 5--;9+\"3YM_-8!6L?!;?S637+!P<H)\nM\"0EL;&QL; D^\"6QL\"6QLA5%144E144E)44E122]'1R_Q+WVH-U/[4_NEJ*6E\nMI=34IM34U*:F;3X)\"0EL;&P^+]_*RL[L[.SL[)%BF0H*\"C=X,7B486&5-(5\"\nM44DO\\?'Q1T='1VJ9U EL; EL\"2<G-$?QSDE)45&%A84T-/ T-#0T-(4T=&$G\nMA2<T'&=G &<:E32%<%%107!P44G]:3)B,C(*\"6PGX#0T-\"<T)S0T)R<G-\"?P\nM-(7\\^$IT X--+/AT!2-- 0$U-?2G6A[6 P,#@P$U6G*V%,=85)N;-4U-]#5:\nM<A0KYO_1T?99;E14*Z<!-35R<EA4#VZ@6?:;#^=4QQ1R%,=4Y@]4Y^?G*[8K\nMQ\\=R-5+<M>?GYU@4%'*G-;;'Q\\<4ITT!P0EM\"3X)\"0D)\"6QL\"0EL\"6QL)T%P\nM<'!144FX1R\\O+R]'1^1)2=])45%145%P[5%P45%PA4)P<%%!<'\"M45%)24E)\nM+T='1R\\O+R]'1T?D24E145%P<$)P47!144)144)1<%%PA5%14851<%%P47!1\nM<%%10G!P<%%P07!144%P45%14:U147!145%145%P45%P486%0H5PA7\"%0H6%\nMA84); D)\"0D)\"2<T)PD)\"0EL\"0D)\"6UM;6UM;6UMU-34U*C4^_MX^_O[^_O[\nM^S<*\"@H*\"@JL\"JR+K(O]_?W]5YF9F:*9HMJBF=K:F9F9VIFBF9G:VMJ9F=J9\nMF?W]_8NLK+R\\^_O[^S'4U'C4;6UM\"0D);\"<GE-0Q>#%M830T)X65E1I 0#0T\nM-)4T-#0T-\"?PA86%A?>%A87P\\#3P\\/ T)_ T)S0G-\"<G)R<G)PD)\"0D)\"6P^\nMI@FFRLK*RJ:FRJ:FRLK*IM1L\"0D)\"0D);6UM;=34;=2HU#$QU#'4,3$Q,?O4\nM^S'[^S?[^S?[-_LW^PH*O#?[-S?[-_O[,?LQU#$QU/LQ^WAX>/O[,3'4;6T)\nM\"0D)\"0D)\"0EM;6UMU-1XU#'[^S'[,:7[,?O[=\"RG]#&E,=2%!0,U<O1X>/O[\nM0@XL 7(4-]]P<'\" +#5R6')M;4'X'C60%/372M8!<@$!W<%M\"0D)\"6P)\"6P)\nM\"3YL\"6P^44E)44E)25%)22])1T<O+T?Q4_NHJ*BHI:BEI:74RM34IM0)IFT)\nM\"0D)\"0EL\"=\\O+_'QCX_L[-SL[.PRBPJ9F9F+\"H4G0&=GE7!122\\O\\8_.C_'Q\nM1YF9;6P)\"6P)X(5)CX\\ESO%'<\"<TX$!G0$!A84 TA85144E144$T0&=G9P!G\nM\\$*%0G!1<%%1<4DOX9F+>&UM;6V4-)4T-\"<T)R<T-\"<G-/#PA?SX2@4L TT>\nM^$J_'@$! 34U-:=R(]8> TU- 360W104MEA4_YLU34T!-7)R%!3'F]$(W*#1\nMY^=8-0$U-7(4Q[:U]A^@6=R;5.<4%')R<EA45%@KYROGQUA8%-TU[*#1M><K\nMMG)R6G(U*Q186,=R 0'!IFW4;0D)\"0D)\"0D)\">#@\"3XG)W!P45%144FX24E)\nM22\\O26P)\"5%145%145%!<%%P<'!144)PA5%1<%%1K5%)24E)N$<O1T?Q\\4='\nM1TE)2=]145%145%\"<(6%47\"%44)PA4)PA7!P47!!<$)P<'!147!1<$%P<'!P\nM<'!P45%1<%%145%147!147!145&M<%%P45&%44)!A7\"%0H6%A84)\"0EM\"0DG\nM-\"<)\"0EL; D)\"0D)\"0D);6T)\"6UM;6UM;6W4U-34U-34U*C4^_O[-_LW-PJL\nMK*RL_8O]_?W]VMJ9VMJ9VIG:VIF9_9G]F?W:_9F9F?W]_?W]B_VL\"@H*\"OO[\nM^_LQ^]34U&T^;0D)\"6P)031L86% 0&<:)W\"%80  9P!G9V$T-\"?@)R<G-/\"%\nMA86%A86%A32%)R<G-\"?P-\"<G-\"<G)R<G)R<); D)\"0EM\"0FFRLJFRJ;*RLK*\nMIM2FIJ;4\"0D)\"0D)\"6UM;=34U#&H,3$QU-3[U/LQ^WC[,?O[^_O[^_O[^[S[\nMO/O[^_LW^PK[-_LW^_O[^S&HU/LQ^S'[U-3[,=34U&T);0D)\"0D)\"0D);6W4\nMU-0Q,:C4^S$Q^S'\\^#_[,85T Z<>A3'[^W1T Z-:<OO[^_MT!0.C<L?T0H5!\nM_'1--7*VQPD)=TH# :<4MC1T P%RQS5RD&T); EL;&QL\"0D^; D)\"6Q145%)\nM44E124E)22_Q+R]'1R_[J/O[4ZBHI:7[I<K4I:74U,IM/FT);&QL; E1N*VM\nM24?QCX_9[.RTCTG?^S=75[S*A2<G-!HTA5%)1_$O\\8_QSO'Q+S*9BXL*BVW4\nMW^3Q\\?&/SO%'[85  &=G &=A-#1\"45%124E'25&59V=G &<:K5&M45%Q24='\nM\\4??BWAX;6R5)Y65-#0T-\"<T-#0G-#0G-\"?P_/A*UAZ#31[X2G0C 37T-34U\nM<G(>!1X>30$U-5IR<K98QU3_#P$# TTU<G(4MEA4YO\\(H'8K*^=R336G<K98\nM*U3F=A\\?=@_GYUBV%!1RQU0KY[;G5\"M8QU3'<J?F'VZ;#RO'W5IRIS4KQ[;'\nMQZ<! 0'4U D)\"6T)\"6QL\"0D);#X^\"6PGE$%P<%%144DO22]'+]<)\"6QL\"=]1\nM45%145%145%147!P45%1<'!1K>U1<5%)2;A'N$DO+R_Q+R]'1TE)24E14>UP\nM<'!P<%%\"<'\"%<'!1A4&%<'\"%<'!P47!!<$)P485P<'!P07!P<(5P<'!1<%%1\nMK5&M4:U147!145%1<%%PA5%\"A5%14851A7!\"<'\"%A86%A86%-\"<G\"6R%\"0EL\nM; EL\"0D)\"0D)\"0EM;6T);6T^;6UM;6UM;:C4^_O[^_O[-PJLK(O]_8O]_?W]\nMVMJ9VIG]_5?]_?U7_5>9F?W:F9G]F?W]_8NLBZRLO/O[-_LQU#'4U&UM;6T)\nM\"0D);%&%-#1G9T! A7!1A94 9V=G &<  )4T-#0T-#3P-(6%\\(6%A86%\\#0T\nM\\#3P)S0G-\"<T)PD))R<)\"0D);6UM;0D)\":8)IJ:FUZ:FRJ;*RM0^;3X)\"0D)\nM;6UM;=1MU-0Q,=0Q,?LQ^S'[,?LQ^S'[^S?[^_L*\"ON\\^_L*-PH*O/L*-S?[\nM^_MX,?LQ^S'[U'@QU-1X>-34U&UM;0D)\"0D)\"0D)\"0EMU&W4U-0Q,7@Q^\\IX\nMA?A*^*9X=-8# 2-T^W@)2M9-]')R-S?[^TK6@S5R%)!145'XUH,!IQ04P6U \nM2@,!I[98 ]9--5I8IW+';0D)\"0D); D);&P^\"0D^;%%1UU%)44E)44DO22_Q\nM1_'Q2;Q]O%/[^Z7[I:74I:7*U*;*U EM\"6P);&QL)Y7@<'\"%K;CQ\\?&8C\\Z/\nM+U&%A85\"<%%1<'!1<%%145%1N$='+T?QC\\[Q\\39B,IF9F3(R,O&/SO'QCX^X\nMK85 9P!G&C1PK5%124E'\\4=)A31G &=G0#2%0B<T-#0_1R_Q\\3*+>&UA86=G\nM9P!GE325-\"<T)S0G)R<G\\\"<T^$K6'@.# _B_2B,!-34U-:=RM@$%'@--] $U\nMD%IR%,=8Y^8/] ,#]#5R%+84Q\\=4,^;<=@]4*W(! :=R%%BV5+71=G;1M2O'\nMYQ04MA14M50KYP_G5%C'6%ARIY!V\")NU5%AR<J=:IU186%@4ITTUP=34U&T^\nM\"0D)\"0EL\"3X);#X)\"6PGA4)\"45%Q24E)2>1)\"0EL\"0D)\"=]125%1<'!147!1\nM45&MK7!P47!145%127%)24E)+TE'1R_Q\\2]'1R])2=]145%1<$%\"A86%07\"%\nM0H6%A7\"%0G!P0G\"%0G!P<'!1<$&%<'!P44&%<'!P45%![>U145%147!147!1\nM<'!10E%1A5%1<'!P47!10E&%A4*%0H6%A86%A86%A4&%<'#?J-_?\"6P);0D)\nM\"6T)\"0D)\"0D)\"0D)\"6UM;=34^S'[^_LW-PH*\"HNLK*R+_?W]_?W]_8O]_8O]\nM_5?]5_U7VOW]F?W]_8NLBZP*O H*\"OO[^_MX;6UM;0D)\"6PGE E\"0H4G&D T\nMA5'Q1TEP0&=G  !G &= E325-\"<G)R<TA87PA86%\\(7PA2<T)S0T)S0G-\"<)\nM; D)\"0D);6UM\"6UM\"::FIM<)I@D)IJ;*RJ:FI@D); D)\"6T^;6UMU-3[,=0Q\nM^]3[U/LQ,3'[,?MX^_LW^_L*\"OO[\"ON\\O/L*^_LW-_O[^_O[,?O[>#'4,3'4\nM>-3[>'C4U&UM;0EM\"0D); D)\"6UM;6UMU#%X,7C4^S$_U@/X^/CX-*9*U@,U\nMUDHQ^_P% TTU<BOR-S=\"^ 4> 7*V6'!P=_C6 P$UME3T/TJ_'J-R%,=-U@,U\nMML?'<BOT\"0D); D); EL; D^;&QL/E%145%145%)24='+R]'+R\\T4_M3^U.H\nM4Z6E^Z6EU-2FU-2FU#X); EL;.!G9V=G9T! A:U)N/$O24E1</ T)R=122]'\nM+TE124E)<7!145%145%)\\8^/\\?%I8F(R8NSLSH]$1^V$CH2.(H3@CE9 X(2$\nM[82%[7!145'M-$!G &$T-(6%-$! )X5Q\\?&/8IEX0&=G9V< 9V<:-#0TX\"<T\nM)S0T-#0G-/PD2M8> P,>^ 5T'DTU-0$UIW)8HP76 P$!-34UIW)R6+94M;5-\nM P,!IW)R%!04QU145#,/YRLK<@$UIW+'ME2UYO___S/GY^?'Q[845)L/Y[6;\nMF^?GMA3'MMU:YG8(,XGG6+9:IY U*^>V6+:G 35-U-34;6T^;0D)\"0D)\"6P)\nM\"0EL;)2%A85\"4:U)<2\\O;&P)\"0EL\"0D)\"5%145%145%P45'M<%%1[:UP47!1\nM45%124E)N$=)22]'+_%'\\2])24E)25%147!1A7!P<%&%<(6%<'!PA86%A4*%\nMA86%A85\"<(6%<'!P07!P<%%!<(5P<%%P07!P[5%P45%145%145%1<'!147!P\nM45%1<%%10E%1A5&%<'\"%A4&%A86%U\\K7W]_?W]_?\"0D)\"0D)\"0D)\"0D)\"0EL\nM\"0D)\"0EM;=34J/O[^_O[^PH*O*R+BZRL_8N+B_VL_?W]_?W]B_W]_?W]F?W]\nM_?VLBZQJK J\\\"C?[^_LQU-1M\"6T)\"6R59S2%0E&%A2<G<$GQ\\8^/285G  !G\nM9V< 9T T-#0T-#0T\\/\"%A87P-#2%A87PA? T\\\"<T)S0T- EM\"0D)\"0D)\"0D)\nM\"3X)IA>F\":;7/A<); D)\"0D); D);6UM;6UMU#'4,3$Q^_LQ^S'[,?MX^_MX\nM^_LW^_L*^_O[^PJ\\\"OO[O/LW^S?[^_O[^_O[^S'[U/O4,?O4,=0QU&UM;0F4\nM)^\"5X\"=L\"0EM\"0EM;6W4;=34^W@QROCXUOA*^$KX_+\\>@Z?6^(7[2G0>30%R\nMMK;[^_Q*!1X!W5@KP4+\\^-8# :=4*W(T^'0#-5JV6!0>37*V6%C=%) )\"0EL\nM\"6P)\"0EL;&P^;#X^;$%105%124E)24<O+R\\O+S3[J/NH4U/[J*6EI=3*U*;4\nMRFT);0D);&QL&F=G9V< 9V=G0)7I0JVM0D(G)S1\"0G%Q1X_Q\\2])<5%P<(6%\nM0G!P44EI-O'QC_'H[.R1[#*$A(XB(B(B(B+KZXZ.(B).(B(B(B(B(H2$A87@\nM9P!G0&$T-\"<T831\"[4GQC]DR_7@<9V<<'!P<9V>5-#0T-#0G-\"<G)S0GE4I*\nM!2,#30/X!70L30$U 36G<K8>!1X#@P$U-36G<K94F_\\SM2,#30$U<G)R%+98\nM5.<K*U3GYU3=-35R<EA45.:;#S.UY^<KQ\\=86!3'YIO_\"-S1#RM8QU@4<G+F\nM'W:U5\"OG*Q2G<C54*UBV%%H!] '4U-34;6T^;6UM\"0D)\"6P)\"6PG)_\"%A85\"\nM45%)24D)\"0D)\"0D)\"0EL\"=]145%1<%%145%145%145%PK:U145%Q24E)N$='\nM+T='+R\\O1T<O24E)WTE14>U1A86%A86%<'\"%A86%A86%A86%A86%A85\"<'\"%\nM0H6%<'!P<(5P<(5P<'!144%P<%%1<%%P45&M47!1485107!1<'!1<%%1K:U1\nM0H5P085P<(77U]?7W]^HW]_?&QML; D)\"6P)\"0D)\"6S*U]=L\"0D)\"0D);6UM\nMU-3[,?O[^S?[-PJL\"@JLK*RLBXO]_8O]B_W]_?W]_?W]BXN+K*RL\"@H*\"@K[\nM^_LQ^]34;0D)\"6S@9V<:-(510D)PA4GQCX_.C_%W9V=G9V=G &< E325)R<G\nM)R<T)X7PA87PA84TA32%)R<T-\"<T-\"<GX\">5\"0D)\"0D)\"6QL\"6P)/@D)\"0D^\nM/@D^/CX^\"0EM;6UMU-1M,=0Q,?LQ^_LQ,7@Q^WC[^_O[^_O[^_O[^PJ\\\"KR\\\nMO/O[\"@K[-_O[,?LQ^_LQ,3'4U-0Q,?O4,=34;6UM;0EL86=G9T G\"0D)\"0D)\nM;6UMU-1X,?LQ,?N%2OCX^/CX0/CX2BP!<OA*/S_XU@---7+'IS?*^/C\\ S6V\nMQXF0K?SX'@/T<EA4*_SX!0/TI[94IR--I[;'MK;G6 D)\"0D)\"6P)\"0D^\"3YL\nM; EL;&P);$%124<O+TE)24EQ)U.H4_NHJ*53I:BEI=34U*9M/M0^;6QL\"94<\nM9V=G9V=G9P!G9T!A-/ T-/ T-\"<T)X4_47%)25%107!\"<'!1<'%)24DOSC+.\nM+V*1[&*&CHXB(H3KZ^LBCHZ.(B+KA.N$Z^N$Z^N$ZX3K(HZ.' !G9T T0$ T\nM-.FXCX^/CT=QA1IAX)24E$%!0)4TE2<T)S0G-#0T\\(5T^/@%(P--'OA*_\"P#\nM ?0! :=R% &] P-- 34U-37=QS/VW-&U30--]#6G<G(4QRM45%14Y^<K6+8U\nM6G+'Q\\=4M3.U5%3G5.?GQ[84<K94T=R@H&X/Y^=8MG):<L]NH+7G5%BV%%JG\nM 7(KYUBVW0$U3=34U-1M/FT)\"0D)\"0D)\"6QL)^ T)_\"%A851<$EQ\"6QL\"0D)\nM\"0D)\"0D)\"6QL45%145%145%144E1<5'M<'!145%Q24FX2;A)N\"\\O22\\O+TE'\nM24E)45%147!P<'!P<'\"%A84GE\"=!A4&%084G085!A85P0E&%<(6%0G!P44%P\nMA4)\"<'!P45%1<%%145%1[5%P47!147!147!145%1[5%145'M47!14=_?W]_*\nMRM=1&]_?WQOD&VP)W]_?W]_*;&QLRM?7UT%!;$$)\"0D);6UMU-2H,?O[^_LW\nM-S<WO+P*\"FJLK(N+_:S]_?W]B_VLK(NLK*RL\"KR\\-_LW-_O[^_O4;6T)\"0D)\nM;$!G&C2%45%124DOSO'.)8_QX&=G9P  9V< 9T T-\"<T-#0T-\"?P)X7PA84T\nMA? TA84T\\/ G-\"<GE30T-#0T)S0T-\"<G)S0G)VP^/CX^/FT)/@D^\"0EM;6W4\nM,3$Q,?LQ^_O[^_O[^WC[>/O[^_O[^_O[^_O[^[R\\O+R\\O+S[\"KS[-_O[^_O[\nM^_O4,?LQ,?LQ^]3[U&UM;6UM;0EM;!QG'&%A)PD)\"0D)\"6UMU#$Q,3'[,7C[\nM^_CX^$KX^$KX2OAT S6V2OCXE/C6 S5:<L>GUW'X2@4#-7+'5)\"%^/C6335R\nMQ\\<K2DK630&GMBO''H,U<E@KME0KP6UL; EL; D)\"6QL/FP^\"3YL;#YL45%)\nM24E)24E)42<T^U/[I:6EJ*7[^Z6EI:6F;:9M\"0D)\"6PG'&=G9V=G9V=G9V=G\nM9V=G9T T-#0G-\"<T)S0T\\#0T-\"<T)X6%<'!147%Q24DOY$E)1^WQCB(B(NOK\nMZ^LBCHXB(B(BA.OKZ^M;6UM;6^M;6^OKA.LB5F= E85PA856A(2$CH2.A(1P\nMX6I1A<H_/VP^-#0GE30G-\"?PA? T-'3X2G0C TT>^$H%(P-- 34UIW)R304>\nM'@,!]#4U<G(4,]$?\" \\!34T!]*=:<G)8ME0SFP^;F^?G6#5:<A3'%,>V5%3G\nMYROG*^?'%,=R%%31'Z ];@_GQ[98%'(UMG990RLKQU@4<J<!<E2V6!1R :<!\nMU-1M;6T)\"0D)\"0EL/@D^\"0DG)R<G-/\"%A4)144EL; EL\"0D)\"0D)\"0D)\"6S?\nM25%145%145%145%125%145&M45%)24FXN$DO24DO22])+TDO2=])45%1<%%!\nMA86%04$G06P))R<G)R<G)PDG)R>%085P<(6%0G\"%0G\"%<'!\"A4*%0G!PA7!\"\nM<%%P47!145%145%147!145%1[5%14>U14>0O&TD;Y!L;WQM1WQO?WQODY.0;\nMW]\\;Y-\\;W]_?J-_?U]?7UT&4E)1 E\"<)\"6UM;=3[U/O[^_O[^_LW-S>\\\"JP*\nMK(N+BXN+_:S]BXNLK*P*\"KR\\O K[^_O[^_LQ,=1M\"0D)\"0DTE94TA5%124E)\nM\\8\\EC_&/\\7=G9P  9V=G &=G9S25-#0G-\"?P-/ GA86%\\/ TA?#P-(4T)S0T\nM-#0T)S3@-. TE2<T-#0T-\"<G)R=L\"6QL/FP);6UMU-0Q,?MX^_O[^_O[-_O[\nM^_O[^_O[^_O[-_O[^_O[\"@H*\"JP*\"@J\\O H*-_LW^_LQ^S$Q,?O4U-34;6UM\nM;6UM;6T)\"0ELX$ <9T\"5)VP)\"0D)\"6UMU-0QU#'[>'C[^_L_^$KX^/CX^/CX\nM^-8#-7+X2OA*^\".#-5H46%0__/A*'@$U<E@KQW?X2M9-]%IR6,<%#@---:<4\nM*U@# S44MN=8MN?!;0D)\"6P)\"6QL\"6P)\"3X^; D)/CY!45%)45%1K2=1A87[\nM^ZBEJ/NEJ*6EJ*7*IM3*\"0D^\"6QL;\"<<'&=G'&=G9V=G9V=G9V=G9T!A-#0T\nM-/ T-\"<TE4! -#0GA4)145%124E124E)<5'ICHXB(NOKA.OK(HXB(B+KZUOK\nM6UM;6UL@(\" @(\"!;6UM;ZX3K(NWMX(Z.(B(B(B+K(NOK(B(BA(2%X$\"5-#0G\nM-)4G-#0G-#0G)X6%=/CX!=8#31[X2@4> TT!-36G6EI-U@,# TTU-:=R<L=4\nMT7;V_Y #34TUIW):6G)8,_\\(\"-'1#XGGIW)R%+84MEA45#.U5.?GQ^<4<EI8\nM5-'<'UGV5(GG6,?'6J<SW-R;Y^=8MG)R6@%R6\"M8QW(U6@')\"6T^\"0D)\"0D)\nM/@D); D^\"2<GE2<G)S2%A4)P44D)\"6QL\"0D); D); D)\"4G?25%1[5%125%1\nM44E1<5%14>U145%Q24E)+TDO24E)24=)24E)24E145%P0G!P<(6%; D); D)\nM\"0D)\"0D)\"0D);$$GA85\"<'\"%A86%0H5\"0H6%A4)\"0G!145%10E%145%P45%1\nM<'!P47!147!145$OY.3DY.'AY.3D+^3DY!ODWQODY.3DY.1]Y.0;&^3?W]_?\nMWZC?W\\H^/D&406% 80D)\"6UMU#$Q^]3[^_O[^_O[-_LW\"KP*\"JRLBXNLBZRL\nMK H*BZRLO+PW^_O[^_O4^]34;6T)\"0D))R<G-\"=P24E)\\8_.CX_.CTEA  !G\nM9V=G9P!G &= -#0T)S0G-/ G-/\"%)X6%A84G\\\"?P)_#P-\"<G)S0GE30T-\"<T\nME2>5)S0G)VP)\"0D)\"0D);6W4,=0Q^S'[^_O[^_L*^_O[-S?[^_O[-_O[^S?[\nM\"OO[^_N\\\"KR\\\"@H*\"@H*-_O[^_O[^_LQ^_O[,7AME\"<G;0F4)PD)\"0DG\"6$<\nM8965)R=L\"0D)\"0EM;6W4U#'[,?O[^_O[^_SX^/CX2OA*^/CXU@,!6OCX^/CX\nMU@,!D'+' 7!T^ 4# 35RMBM8UO@%+$TUI[98*QZ_(P,UD!3G5 %-I[8K*\\<K\nM*_0);&P)\"6P)\"0D);&P)\"3YL\"6P^\"0E!<%%142<G0D(T0:6H^_NEJ*7[J*BE\nMI:74U*9M;0D)\"0EL)T! 0$! 0!QG9V=G9V=G9V=G9V=G0&$T-(6%A86%-#2%\nMZ5%Q24='N$E)<4GM<%'MA0>.(B*$Z^M;ZXZ.CB(BZX3KZUM;6R @(\" @(\" @\nM(\" @(\"!;6UN.CHZ.(B(BZX3KZX3KZX3KZX3KZR*:CF= E325-#0G)S0G\\#2%\nMA31T^$K6U@--O?A*=\",# 360IW)R<DW6 P.#]#4UIW)R%,=4F]'1D$U- ?1:\nM<G)R<EA4T=S_#___5\"NG<G)R%!3'5)O1T0_G*\\?GQUBV<L=4FPAV=O_G5\"M8\nMQUAR-<_V_[6)*\\=8MMUR-3546+84<C5R-1=M\"6T)\"6P)\"0D)\"0D)\"0D))T%P\nM-#0GE\">%0G!144EL\"0D)\"0D)\"0D);#Y'22_?25%1<%%144E145%1<4E1<5%1\nM25'M24E)N$DO24G?24E)2=])45%145%144%!E D)\"0D);&P)\"6QL\"0D)\"0D)\nM;\">4085\"0D)\"A4*%A85\"0H5\"A85\"0G!P<'!147!1<%%1<%%145%145%14>3D\nMY.3AY.'DY.3DX>3DY.3DY.3DY-_DY.3A+^0;&^1)W]^HWZC?W]^HJ-?704&4\nM)QQL\"0D);6UMU-0Q^S$Q^_O[^_O[^_O[O/L*\"KR\\K*RL\"JR+K*RL\"@H*O/O[\nM^_O[U/O4U&UM\"0D)\"2<G-#0G<$DO+R_Q\\27.CR6X&F=G9V=G  !G &=G9QHT\nM)S0T)S0G-(6%-(6%\\(7P-/#P\\#3P-\"<G-#0TE30T)S3@-#0G-#0T)S0G\"0D)\nM\"0D)\"0EMU-34,?LQ^_O[^_LW^S?[-_O[^_LW^_O[^_O[^PK[O/L*\"@H*\"JR\\\nMO H*^S?[^_O[,3'[,?O[,3$Q02<T)Y0G)R<)\"0DG-#YM/FW4U-24\"0D)\"0EM\nM;6UM,3$Q^_O[^_O[^_NE2OA*^/CX^/CX2DK6 S7T^/A*^$K\\ P$U6L<!_/CX\nMUH,!-5HK5%C62M8>335:<K8K-;W630$UMN:)% &GMK94*U0K5 D)\"6P)\"6P)\nM\"0D); D^;&P);&P)/FR%07!P<(6%-(5L^Z6EI:6EI:6EI:6EU*;4/CX)\"0EL\nM;&$G)X4TA85\"A> T&AP<9V=G9V=G9V=G0)4TA?=\"45%145%Q24FX24E)27%1\nM0D&%A86.CB(BQ.M;6R)6CB(BQ.OK6UM;6R @(\" @KZ^OKZ^OKR @(\"#KCHXB\nM(B+KZX3KZ^M;6UM;6UM;6UOKZX3$3DXT)R<T)S0T\\#2%A?\"%A30D2B/6 TT%\nM^$J_'DU--36G<G):304#34T!-36GIW+=QU0S_]'T P--IW)RW=W=ME0(=@^U\nM,[7G5*=:<G)RQP\\(;G;15.?GY\\?G6!04QU0S_PB;M2LKMN=8MMVGD/:;M2M4\nM*^<4<EHU<L<K6,>G-7(U%PD)\"0D)\"0D)\"0D^\"0D)\"0DGA7#M\\#0T\\\">%0E%1\nM40D); EL;#[724<O1T=)24G?25%1<%%145%Q45%145%145%1<7%124E)24E)\nM24E)24E125%)45%145%\"<&P);&P)\"0D)\"6QL\"0D)\"0D)\"6P);\">%A4)\"A85\"\nMA85\"0H6%A86%0H5\"]T)\"<'!144)145%1<.U1<%'DY-_DY.3DY.%]X>3AY.'D\nMX2_AY.3AY\"_DY.3DY.3DX2_D&QOD&^3DW^2HW]_?W]<^/I24&@D)\"0D);3[4\nMU-34^_O[^_O[^_O[^_O[-_L*O J\\\"JRLK(NLK*P*O/O[^_O[,3%XU&UM;0D)\nM\"0DG)S0T)X4O\\2]'\\<Z/\\8_Q24!G &=G &=G9V=G9QPT<#0T-. T)R?P\\/\"%\nMA87PA87P-#0T)S0G-#0G)S0G)Y5\"A30G-#25)S3@)VP); D)\"0EM;=34,3'[\nM,?O[-S>\\^_O[^S?[-_O[-_O[^_O[\"OO[^PK[O+P*O H*O J\\\"OO[^_LQ^S'[\nM^_O[U#$Q/B<T-#0T-#0TE&%A-\">E^_O[^]34U D)\"0EL;6UMU-34^_O[^_O[\nM-_O[^U'X^/CX2OA*^/CX=\"---0'X^/CX2M8L 35R6 %*^+_6 X,UMN:)5\",.\nM!2,#-7)R%\"M4OQX!-7+FFU04 :=R%%A46%18\"0D)\"6P)\"6P)\"6P)\"6QL\"3X)\nM; D^/FQ!02<G)R<G)VRHI:6EI=2EI:74I:74U-1M;3X)\"6QL0#0GA85\"A4)1\nM25%1<#0<0$ <9V=G9V=G9V'PA:U1<5%125%147\"M<(4T-/ GE\"<T!XXBQ.OK\nM6R)G!XXB(NN$ZUM;6R @(\"\"O(*^OKZ^OKZ^O\"Z\\@(@>.(B+KA.OK6UM;6UM;\nM(\" @(%L@6R!;6^OKA\"(G-#0T)R>%A86%A86%_$J_+!X#31X.2@4#34U--36G\nM<G(>!1X#3?0!-35R<K985)O_F_0#3?0U<G*V<A3'5-%NF[7GY^<K-5IR<E@/\nMW!]N]IN)*^<K*^?GML=45%3_T0_G5.=8Q[84<J?/;@C_Y^=8Q\\=R<C4U*[8K\nM%%JC<J<_\"0D)\"0EL\"0D)\"6QL\"3X^/CY!05'M)R<G)_\"%0G!1<4D)/M]'+_$O\nM\\4='+T='24G?45%1<%%145%)45%147%145%1[7%Q24E124EQ24E124E)25%1\nM45%145$); D);&P)\"0D)\"0D)\"0EM\"0D)\"0D)E\">%A85\"]T*%0H6%A86%A86%\nMA86%A7\"%0G!P45%P45%14>3DW^3DY.3DW^3DY\"\\OX>0OX>3AX>3AX>3DY.3D\nM+^1]X>1]Y.3DY.3?WQO?W]_?W]?7U]<^/I24\"6QL\"0D);6W4U/LQ,?LQ^S'[\nM^_O[^S?[-_L*\"KRLO&H*\"@H*\"C?[^_O[^_O[,=1M;0D)\"0DG-\"<T)R=\"<4E)\nM2?&/)8_.CT?@ &=G9V=G9V< 9V= A5'Q1X4T-\"<T)S0G)_ TA84TA86%)S0T\nM)S0G)S0T-#25-\"<T)S0TA7!PE2=L\"6P)\"0EM;6W4U'C4^WC[^_O[-PK[^PK[\nM-_O[^S<W^_O[\"OO[\"KR\\^[P*\"KR\\\"@H*\"C<W^_LQ^S'[U-34U-1M\"2<T-\">%\nMA84GA84G)X5P?:RLK*P*^PD)\"0DG)VUMU,IL^_O[^S?[^_O[^S?[-/CX2OCX\nM^/CX2OB_UDWT3?CX2OB_UAX!-7+'6/CX2M8#3354\"#.)3?C6U@/TW;84Q\\<%\nM P$UMN8SY\\<!I[8S5\"M8*RMM\"0D)\"0D)\"0D)\"6P)\"0D^\"6P)\"0D^;#XG)R<G\nM)R<);-34RM34RM2FU$O4;6T^;0D^\"0D);&R5)R>%A84TA:UQ1T<O25&%)S3@\nM0$!G9V=G9T\"%0G!14:U\"A33@-&&50&= E95M;%:.(B*$Z^L' %:.(B*$Z^M;\nM6UL@(\" @KZ\\+KZ\\+2 L+\"PL@(E:.(B(BA.OKZUM;6R @(\" @(\" @(\" @(\" @\nM(%OKZR(BX\"<T-#2%A86%A85W@$K^UG2.CHXB(B+@(H7!-7):<DT%'@-- 37T\nM-:=R%,?G,P\\S30-- 35R<EA8MEC'T1_<,^<KYU0UIUIRMD-N;G;_#^=4*RM4\nM*RM8QU0K5-'1M>?G*^?'%-U:I\\]V60A4YROG%'*GHP'GYUBVIS5--<EM;0D)\nM\"0D)\"0EL\"0EL\"0EL\"0EL05%1K\"<G)X6%<.U124DO+R]'\\4<O\\?$O1TDO24G?\nM45%1<%'M45%)44E145%145%Q[7%Q44E)24EQ44E)45%145'745%107!!06P)\nM\"0D^/FUM/FT)\"0D)\"0EL;\">%A?\"%A86%A86%A86%A33P-(6%A87PA4*%<%%P\nM45%1W^3?W^3D2=_D&^3DY.3AY.3AX>'A+WWA+^3AX>'A+^3DY.'DX>3DY.3D\nM?>3DW]^HJ-^HJ-_7UT%!;)24E94)\"0EM;=34U#'[^_O[^S'[>/O[^S<W^[R\\\nMK H*\"@H*-S<W^_O[^]3[,:AM;6T)\"0DG)S0T)S2%A5%Q44DOC_&/SH])-&< \nM9V<  &=G9V= 8311N,XO484T-\"<G)R<T-/ TA?\"%)S0G)R<T)Y4T-\"<G)S0G\nME2<G04%!07!!; EL\"0D);=34U#'[,?LQ^_O[^_LW-[S[^_O[-_O[^_L*^_O[\nM\"OL*^_N\\\"@J\\K*R\\\"@K[^_O[,?O4U-1M;=1M;6PG-\">%A5%P45%P<'!1Y-K:\nMHJ+]\"FT)\"> T-\"=M;6TGA<K[^]>H^S<*\"KS[^_O\\^/CX^/CX2OCX^-8#335-\nM^/CX^-8>@S5:MEA4^/A*!1Y-I[94,^<>^+_6334SYL?G6!X# 36VQ\\<K6#5:\nMMIOGY[;G*\\$)\"0D)\"6QL\"0D); D)\"6P)\"6QL\"0D);&P)/FP)\"0ELU-34ILIM\nMU-2F/@D);0D)\"0D);&P)E$)\"0H6%[4*%A4)P44DO24E10C0T)V%G9V=G9T T\nME94T&D <9T! '&<<9V= -)0:CB(BZ^OK0&=6CHXBZ^OK6UM;(\" @KZ\\+KTBR\nM\"PL+\"PL+ZT!6CHXBQ.OKZUM;6R @(\" @(*\\@KZ\\@KR\"O(\" @(\"!;6X2:X#0T\nMA86%A86%A70'CHXB(B(B(NLBA.LBA\"(B(G#T(THC'@,!-34UIW*VQU2VYU1-\nM TWT-:=RME186%1_61__YU0K6#4U-7)RYT-_FYNUY^=4*UA46,=8QU14\"&X(\nMM>=4*RL4<I\"GHYM9W \\K5%C'<J<UHU0KYQ1R-4TUR3X)\"0D)\"0D)\"0D)\"0D)\nM\"0EL\"2<G05$RBVPG)Y1!<'!124E'+_$O+_%'+R]'1TE)24EQ45%P45%145%)\nM45%)45%145%Q4>UQ24E144E)45%145%1; EL;&QL\"6QL\"0D);6UMU&T);6T)\nM\"0D)\"6PG)R>%)X6%A86%A86%\\(7PA87P\\(7PA86%A4)\"A7!1W^3DY$GD&^3?\nMY\"\\;2>3DW^3DX>'DX>3A+^'DX>'DY.3DY.3DY.3DY.3DY!ODW]^HW]_?J-_?\nMW]?7UX4T)R= 9Y5M\"0EMU-34U-0Q,?LQ^]3[^_O[^_N\\^PH*O#<W-_O[^_O[\nM,?LQ^]34;6T)\"0EMA86%)X4T-#0T-\"=1<?&/SB6/285G9V=G9V=G9V=G832%\nM44DO\\4F%A84G-#0T-\"<G)_\"%A33PA30T-\"<T-\"?@)^ GX\"<G; D)\"0D); D)\nM\"0EM;6W4U-0Q^S'[^_O[^_LW-_O[-S?[^_O[\"KS[^_O[\"OL*O+R\\O J\\O H*\nM\"@K[^_O[,?O4U-1M;6UM;0F4A86%0G!145%125%)2?&TZ.@RVN%M\"94T-\">4\nM;0F4A87*^\\IPU_M1O/O[-_O[^_A*)/A*0/CX^$KXUH,!ITWX^$I*(P,!-5JV\nMQP'X^+\\% S5:<A0K*P-*OQY--;8(5\"NV'@,!IW*V%+94-:>VYBLKMN?GP6T)\nM\"6P)\"0EL\"6P)\"0EL; D);&QL;&QL\"3X);&P); G4U-34U,H)I@EM\"6P);&P)\nM;&R4E1Q -(5P47%Q4>UPA4)\"44DO+TE1084T0&=G9V=G9T <'$! 8> G0H4G\nMX#0G894:9P>.(B+K11QG@(Z.(B+KZUM;(\" @(*^O\"Z\\+\"PL+\"PL+\"XYG!XXB\nM(B*$Z^M;6R @(\" @KZ^OKZ^O\"Z\\+KZ^OKZ\\@(\"!;6^N$!V=G0-5TA7\".CHXB\nM(B+KA.OKA.OKZ^OKZX3KZX0B*-8C S4U-36G6A18Q\\?'5$T# 0$U-7(4QUC'\nMMO]9;IOGYUBV-34U-7*VYU3G,[54YROGYUA46+98Q[71'Q\\(5(E46+9:IZ>0\nM#VYN#^<KMEARIY UY^?'6-UR 0'!\"0D)\"6P)\"0D)\"0D)\"0EL; EL;\"<GE#<R\nMF6PG)Y2%47!122]'+T?Q+_%'1_%'1T=)24E)45%145%145%145%Q45%145%1\nM45%145%)45%1; D)\"6P)\"0D)\"0D)\"6UM;0EMU-34U&T^\"0D)\"0D)\"0F4)X6%\nM)R<G)X6%A86%)X6%)X6%A86%A86%A3]1RM??W]_DY-])W^3DY.3DY.0OY\"_D\nMY\"_AX>'AX>'DY.'AX>'AY.3DY.3DY.3?Y-_DW^3?Y.3?&]_?07\"%A2<T-$ <\nM)PEM;6W4U/O[^]3[^S&H^_O[^_LW-PH*-_O[^_O[^_O[U/O[U-1M;6T)\"0D)\nMA86%A86%A84G)S0G-(5)CX^/+U%\"0 !G9P!G &=G0)4TA4)12?%)<(6%A7 T\nM)R<G-\"<T)R<T\\#0G)R<G)R<GX D)\"0D)\"0D)\"0D)\"0EM;0D^;3YMU-0Q,7AX\nM^_O[^_O[^_O[^_O[^PJ\\O/O[^_N\\O+R\\O+P*O+P*\"@J\\\"@H*^_O[,?O4U&UM\nM;6T)\"0EP<.U1<%%P45%124<O+R\\OV>ABZ&G?;&PG-#0GE DT\\(6%U]>%0G!!\nM<-?[O/O[^S?7^/A*^/CX2OCX^/C6 P&G'OCX^$H> P.#D,=8H_A*2OP#]*=:\nMME14 0YT'@,U<D,SYRL#30$U<A3'QU@U-7)4YU1R*RO!;0D)\"0D)\"0D)\"0D)\nM\"6P)\"6P)\"6P)/@EL\"6P); EL\"=34RDNFU-0);3X);&QL\"6PG&E8<'&<<0)4:\nM0G!1<5%147!144E)27%P-#0<9V=G9V= E30G)Y24<$E124E1<(6%E4!6CB(B\nMQ.MG@&=6CB(BZX3K6UL@(\"\"O\"Z\\+\"T@+\"PLX.#B.0&>.CB+KZ^OK6UM;(\" @\nM(*^OKPL+2 M(\"T@+2 NOKZ^O(\" @6^LB0&> 9V= CHXB(L3KA.OKZUM;6UM;\nM6UM;6UOKZ^N$X/X# 34U-35R<K986,=4] -- 34U<A3'MEA8FUD?T;4K5%@!\nM-36G<A3'QU0/F[7G5.?'5%A8MEC'5.;<H!^UYRLK%'*G-:.;\"':U*UC'QW*G\nMIZ=4Q^>V<J<! 3H)\"0EL\"0D)\"0EL; D)\"0D)-#0T)R=L\"HN9BVPGE\"=P45%1\nM24<O+_'Q1_'Q+T<O24E)2=]145%P<%%145%145%145&M45%145%145%145$)\nM\"0EL\"0EM\"0D)\"3X^;3X)U-2F;=1M;6T)\"0D)\"0D))R<G)R?P\\/#P-/\"%A2<G\nM)R<G)R<G-\"<G)T%!/]?7U]_?W]_DW^3D2:C?Y-_DY.3DY.0OX>3A+^3DY\"_D\nMY.3DY.3DY.3DY'WDY.3DY.3?&^3?WZCDWW!P086%)S0GE4 G\"0EM;=34U-0Q\nM^]34U/LQ^S'[^_O[-_O[^S?[^_O[^S'[U-1M;0EM\"0D);85!<'!P<'\"%A86%\nM)S0T-#1!+[AP<$!G9V=G9V=G9T T-\"<G0E$O25%PA85P486%-#0G-\"<T)R<G\nM)R<G)R=L\"6P)\"0D)\"0D^;6UM;6UM;3YM;6UM;6W4U#'[^_O[^_O[^_O[^_O[\nM\"OL*^_O[O/N\\O H*\"KR\\O J\\O J\\O(LW-_O[^S'4U-1M;6UM\"5%145%145%1\nM44E)1T?Q\\?'Q)9B1D9C./PDT)S0T)VSP-(6%0M=!A5&%<'#7^PK[^_L*^W?X\nM^/CX2OCX2OCX^\".# :?6^/CX2BP# TTUMC--^/@%'DT!IW*VYXFC2@4>3:-R\nMMO_GYS4# ?1:ML<KYS4U6K;GYUA4*_0)\"0EL\"0D)\"0D)\"0D)\"0D); D);&P)\nM\"0EL\"6P)\"0D);=34U-2FU D)\"0EL\"?V95PJEX!I PT <9V=G&F&%K;BX1TE)\nM24E)485 9V=G'&=G9V=G0#0G>'AME%%1+R]145%1X >.(NOK0&< 9XZ.(NOK\nMZUM;(\" @(*^O\"T@+\"S@+\"S@+CF=GCHXB(H3K6UM;(\" @(*\\+KTA(\"T@+\"PL+\nM\"PL+\"PL+2*^O(\" @6ULB!V=GCHXB(B*$Z^OK6UM;6UL@(\" @(\"!;(%M;6^OK\nM(H5--34U-7)R6+945#--'DWT 35R<A3'QU0(H*#VM>=8YS4U-:=R%+985#.;\nMF^<KYRM8Q[84Q\\=4#PAN=N<KMEBVW:<U] __F^=4YQ04<MUR ><KQUAR<DT!\nMY0D)\"6QL; D)\"6P);&QL)R<T)S0G)VUX>(N9F6TGE)1P45%)+T<O1_'Q+_%'\nM+T<O1TE)24E145%144%P45%1[5%P45%145%145%145$)\"0D)\"0D)\"0D^;0EM\nMU EM;6UM;=34IFT^\"0EM\"6T)\"6PG)VP)\"2<G-#0G)R<G)R<G)R<G)R<^04&4\nME&Q!03YQU]_?W^3DW^3D2>3DY$GD+^3DY.3AX>'AX>'AY\"_DX>'DX>3DY.3D\nMY.3DY.3D&^3DW^3?Y-]P<'!PA86%)VR4X,-L\"6UMU-3[,?LQ^_O[,?O[^_LW\nM-_O[^_O[^_O[^]3[^S'4;0D)\"0D)\"0F%A7!P<$%P<'!PA86%A30G)S25A?! \nM9V=G9P!G9V=G-#0T-#2M<4E1<'\"%A7\"%A30T-#0G-\"<G)R<G\"0EL\"0D)\"6T)\nM;3YM;6UMU-1M;6W4;=1MU-1X>'AX^_O[^_O[^_LW^_L*^_O[\"KS[\"KP*O H*\nMO J\\K H*K+P*O H*^S?[^S'4U&UM;0D)\"0E1K5%Q24E)44DO+R\\O\\?'.CX^/\nMV<XOA2<GE2<T)R>4-/#PA86%0G!PA7!PUPJ\\^_LW^_LW-/CX2OCX^/CX^$I*\nM'H,! 07X2OA*_!X#3:.V5#7X^-:\"334U<O_G5 &]U@--D*>VYE3G QX#-3,S\nMYU0K<C5R%\"LK*ROG] D); D); D)\"0D)\"0D)\"6P)\"0EL\"0D);&P)\"0EL\"6W*\nMRM3*2VVFRFT)/@EL&U>9,IF+J-=1A2=A9QQG9QQAA5%QN\"_Q1U%P81QG9V=G\nM9QQG9V<<E/LWBU<W\"CY122\\O2>T<CB(B(HXD9P 'CB(BA.OK6UL@(*^O\"PL+\nM\"PL+\"PLX..MG9P>.(B(BZ^M;6R @(\"\"OKZ\\+\"PL+\"PLX\"PL+\"SBO\"PL+\"PNO\nMKR @6XYG9XZ.(B+$Z^OK6UM;6R @(\" @(\" @(\" @(\" @6UM;A(1QHS6G6K98\nMM0^;FTT> TT!]*=R<A3'5)O</9VUYXD4-35:<G(4Q\\<K5 \\SY^<KY^=86'(4\nM6%0S\"-S15.<K*UARIS4U#P]4*^?'QW(4<EH!*U18QW*G 37E\"0D);&P)\"0D)\nM25$);&Q')R>%E)1L>'AX> J+-Y0G)X5\"45%)22\\O\\4?Q+_%'\\4<O1TE)45%1\nM45'M45%1<%%145%14>U145%145%L; D); EM\"3YM;6T^;0EM;6T)U-34;=1M\nM;3YM/CX^/FT)\"0D);\"<G)R<G)R<G\"6P)\"0D^)VPG;&R4E)24)Y2404'7U]_?\nM&^3?Y.3DY$GDY.3D?>3D+^3DX>3DX>3DY.3DY.3DX7WDY.3DY.3DY.3DW^3D\nMY.3DY.1P<!O7W]=!/I0G; D)\"6W4U-2H,7@Q^S'[^_O[^_O[^_LQ^_O[U/O[\nM^]34;6UM\"0D)\"85\"A7\"%A85P<%%PA4*%A84TA30T-#0G&F=G9V=G9V=G9V= \nM0&$TA5'M45'MA864)PDG)X6%A33@)VP)\"6T)\"0D^;6UM/FUM;=1MU-0QU-34\nMU&W4;7AX>/O[^_O[^_L*^_L*^_L*^_O[\"KS[O+R\\O+RLK*P*BZP*K*P*\"@J\\\nM^_O[^_O4U-1M;0D)\"0E!<%%145%14;@O22])+_'QCX\\ESH_Q430T-\"<T)S0G\nEND ------------------------- CUT HERE ---------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8717, "properties": {"category": "sci.space", "text": "From: kjenks@gothamcity.jsc.nasa.gov\nSubject: Re: Russian Email Contacts.\nOrganization: NASA/JSC/GM2, Space Shuttle Program Office\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 10\n\nI am coordinating the Space Shuttle Program Office's e-mail traffic to\nNPO Energia for our on-going Joint Missions.  I have several e-mail\naddresses for NPO Energia folks, but I won't post them on the 'Net for\nobvious reasons.  If you need to know, give me a yell.\n\n-- Ken Jenks, NASA/JSC/GM2, Space Shuttle Program Office\n      kjenks@gothamcity.jsc.nasa.gov  (713) 483-4368\n\n     \"The earth is the cradle of humanity, but mankind will not stay in\n     the cradle forever.\" -- Konstantin Tsiolkvosky\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8718, "properties": {"category": "talk.religion.misc", "text": "From: parys@ccsua.ctstateu.edu\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nKeywords: Success\nLines: 140\nNntp-Posting-Host: ccsua.ctstateu.edu\nOrganization: Yale University, Department of Computer Science, New Haven, CT\n\nI told some friends of mine two weeks ago that Koresh was dead.  The FBI and\nthe BATF could not let a man like that live.  He was a testimonial to their\nstupidity and lies.    \n\nNow before everyone gets crazy with me, let me say that Koresh was crazy as \na bed bug, but out government was crazier...and they lied to us.\n\nThey told us compound had been under survaillance for quite some time.  Yet, \nwhoever was watching the place failed to see that Koresh went jogging and into\ntown on a regular basis.  Everyone in the area claimed to have seen him and \nwondered why they didn't pick him up then.  There are two possible answers.\nFirst, they didn't see him.  What kind of survaillance is that?  Second, they\ndidn't care.  They wanted a confrontation.  They wanted publicity and they got\nit.\n\nAfter the first battle, they told us that they did not know he knew they were\ncoming.  They also said it would have been foolish to go in knowing that.\nWell, we know now that they intercepted the informants call and went in anyway.\n\nDid they explore all of the possibilities for ending the seige?  According to\nthem they did, but according to the Hartford Courant, the woman that raised\nKoresh (His Grandmother) was not allowed to go in and see him.                 \n The FBI agent who she spoke with was Bob Ricks and according to the paper he\nsaid:\n\n\"A lot of people think if you just talk to them logically they will come out.\nHis grandmother raised Vernon Howell; (Koresh's Real name)  she didn't raise\nDavid Koresh.\"\n\nSomeone who raises you and loves you does not speak to you strickly on a\nlogical level.  There is also an emotional level on which they can reach you.\n\nHere's another one.  All during this operation the FBI has been claiming that\nthey feared a mass suicide and that is one of the reasons that something must\nbe done.  Now they claim they never thought he would do it?\n\nI knew they were going to do something when they started talking about how\nmuch money this was costing.  That was the start of the \"Justification\" part\npart of the plan.  That's when I knew it would come soon.\n\nBut, back to the plan.  It is considered \"Cruel and Unusal Punishment\" to\nexecute criminals in the minds of many people, but look at what's acceptable.\n\nThey knew the parents (adults) had gas masks.  They did not know, or were not\nsure, if the children had them.  So the plan was to pour the gas into the \ncompound.  The mothers, seeing what the gas was doing to their children were\nsupposed to run out and that would only leave the men to deal with.\n\nI spent two years in the army and like everyother veteran I went through CBR\n(Chemical, Biological Radiological) warfare training.  Part of that training\nis going into a room filled with the same stuff that the children were\nsubjected to.  To make the stuff really interesting the gas also has a chemical \nagent that irritates the skin.  You think its on fire.\n\nI have no doubts the children would become hysterical.  Its not the kind of\nthing you never want to do again.  This was the plan, the final solution.\n\nWe waited 444 days for our hostages to come home from Iran.  We gave these\npeople 51 days.  \n\nI stated on several occasions that there was absolutely nothing in this whole\nthing that the government could point to as a success.  Well, FBI agent Ricks\nchanged my mind.  Again a newclip from the Hartford Courant:\n\n\"And while expressing regret at the loss of life, he suggested that the\noperation had been at least a modified success because not a single federal\nshot had been fired and not a single federal agent had been hurt.\"\n\nIt took 17 dead children to get us that new definition of success.\n\nOne more thought.  The government claimed that they believed he had automatic\nweapons on the premises. \n                                                      \n        HE HAD A LICENSE FOR THE 50 CALIBER MACHINE GUN!\n\nTHEY KNEW DAMN WELL HE HAD ONE. THEY ALSO KNEW HE HAD IT LEGALLY!\n\nStill, without the element of surprise they sent in agents to get him.\nFor all of this my President takes full responsibility.  What a guy!\nI hope he gets it.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\nIn article <exuptr.1431.0@exu.ericsson.se>, exuptr@exu.ericsson.se (Patrick Taylor, The Sounding Board) writes:\n> In article <11974@prijat.cs.uofs.edu> bill@triangle.cs.uofs.edu (Bill Gunshannon) writes:\n> \n>>Before you go absolving the BATF & FBI of all blame in this incident, you should\n>>probably be aware of two important facts.\n>>1.  There is no such thing as non-toxic tear gas.  Tear gas is non-breathable\n>>    remaining in it's presence will cause nausea and vomiting, followed eventually\n>>    by siezures and death.  Did the FBI know the physical health of all the people\n>>    they exposed??  Any potential heart problems among the B-D's??\n> \n> No doubt it is dangerous stuff when concentrated.\n> \n>>2.  Have you ever seen a tear gas canister??  Tear gas is produced by burning a\n>>    chemical in the can.  The fumes produced are tear gas.  The canister has a \n>>    warning printed on the side of it.  \"Contact with flamable material can result\n>>    in fire.\"  Now, how many of these canisters did they throw inside a building \n>>    they admited was a fire-trap??\n> \n> None.  They used non-incindiary methods, which means they produced the gas \n> outside the building and pumped it in via the tanks.\n> \n> ---\n>  ----------------------------------------------------------------------------\n>  ---------Visit the SOUNDING BOARD BBS +1 214 596 2915, a Wildcat! BBS-------\n> \n>  ObDis: All opinions are specifically disclaimed. No one is responsible.\n> \n>     Patrick Taylor, Ericsson Network Systems  THX-1138\n>     exuptr@exu.ericsson.se                    \"Don't let the .se fool you\"\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8719, "properties": {"category": "rec.sport.baseball", "text": "From: cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc)\nSubject: Re: DAVE KINGMAN FOR THE HALL OF FAME\nOrganization: University of Illinois at Urbana\nLines: 59\n\n(Steve Tomassi) writes:\n\n>     Hi, baseball fans! So what do you say? Don't you think he deserves it?\n>I\n> \n>mean, heck, if Dave Winfield (ho-hum) is seriously being considered for it,\n>as\n\n>is Lee Smith (ha), then why don't we give Dave Kingman a chance? Or Darrell\n\n>Evans! Yeah, yeah! After the Hall of Fame takes in them, it can take in\n>Eddie\n\n>Murray and Jeff Reardon.\n\n>     Well, in any case, I am sick and tired (mostly sick) of everybody\n>giving\n\n>Hall of Fame consideration to players that are by today's standards,\n>marginal.\n\n>Honestly, Ozzie Smith and Robin Yount don't belong there. They're both\n\n>shortstops that just hung around for a long time. Big deal.\n\n>     Let's be a little more selective, huh? Stop handing out these honors\n>so\n\n>liberally. Save them for the guys who really deserve it. Face it, if\n>something\n\n>isn't done, there will be little prestige in the Hall of Fame anymore. When\n\n>certain individuals believe that Steve Garvey or Jack Morris are potential\n\n>candidates, the absurdity is apparent. Gee, can these guys even compare to\n\n>the more likely future Hall of Famers like Kirby Puckett or Nolan Ryan?\n\n\n>\n>Q Steve\n\n\tWhat's the difference between Nolan Ryan and Yount?  Both have hung\naround for years, and continue to post great stats.  Why shouldn't Dave Kingman\nget into the Hall?  Or Murray, Evens, Reardon, and others?  What the hell do\nyou have to do?  Ask an opposing pitcher whether he thinks that Winfield should\nbe in the hall...  God.  Pretty soon you'll be saying that Cal Ripken doesn't\ndeserve to be in the Hall.  Then, I'll flame you. :-)\n\n\n\n\n\n-- \nChintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n******************************Neil Peart, (c)1981*****************************\n*\"Quick to judge, Quick to Anger, Slow to understand, Ignorance and Prejudice*\n*And********Fear********Walk********************Hand*********in*********Hand\"*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8720, "properties": {"category": "sci.crypt", "text": "From: uni@acs.bu.edu (Shaen Bernhardt)\nSubject: Re: What the clipper nay-sayers sound like to me.\nDistribution: na\nOrganization: Boston University, Boston, MA, USA\nLines: 60\n\nIn article <1qsvfcINNq9v@dns1.NMSU.Edu> amolitor@moink.nmsu.edu (Andrew Molitor) writes:\n>\n>\tThe following is available in some FTP archive somewhere, I insert\n>my comments liberally throughout this demonic memo of Big Brotherdom:\n>\n>>\tWhite House Announcement on Screw Thread Standards\n>>\t--------------------------------------------------\n>>\n>>\tThis is to announce that the American National Standards\n>>Institute (or whatever it is) has been given the authority to define\n>>standard dimensions for screw threads.\n>\n>   Look! This is clearly the first step toward outlawing our\n>   own screw thread specifications. If this madness isn't fought,\n>   tooth and nail, every step of the way, it'll be a crime to use\n>   screw threads other than those our Fearless Leaders so *graciously*\n>   define for us.\n\n[Sarcastic text deleted, No value judgement implied]\n\n>\tScrew you, Bill Clinton! You and your totalitarianist thugs!\n>\n>------------------------------------------------------------------------\n>amolitor@nmsu.edu | finger for PGST personal screw thread pitch, or\n>Screw Threads     |  see the screw thread servers.\n>must be freed!    |\n>------------------------------------------------------------------------\n\nAt first I was going to complain that your analogy was completely\nirrelevant.  But then I remembered something.\n\nRemember that move to get the U.S. to the metric system all those\nyears ago?  As far as I know we were supposed to be there by now.\n\nThe government sold it as better for the people, easier to be in\ntune with the rest of the world.  They had decided it was for\nour own good.\n\nThen, when the plan was released, it soon became apparant that the\ngovernment were a bunch 'o' thickies.\n\nThink about it, change all the railroad track widths, signs,\nscrews, abolish the old regime.\n\nAt the cost of millions of dollars.\n\nYour point is well taken.  You think there is nothing to worry\nabout, you could care less who designs your cryptography, any\nmore than who designs your screws or the system of measurement\nyou use.\n\nSit back, that's right, just relax, we'll take care of all your\nneeds Mr. Molitor.\n\n\n-- \nuni@acs.bu.edu  ->  Public Keys by finger and/or request\nPublic Key Archives: <pgp-public-keys@pgp.iastate.edu> \nSovereignty is the sign of a brutal past.<>Fight Clinton's Wiretap Chip!\nDF610670F2467B99 97DE2B5C3749148C <> Crypto is not a Crime! Ask me how!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8721, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: Press Briefing by George Stephanopoulos 4.15.93\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 1135\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\t     \n\n\n                           THE WHITE HOUSE\n\n                    Office of the Press Secretary\n_____________________________________________________________________\nFor Immediate Release                                  April 15, 1993\n\n\n                            PRESS BRIEFING\n                       BY GEORGE STEPHANOPOULOS\n\n                          The Briefing Room\n\n\n\n1:04 P.M. EDT\n\t     \n\t     \n\t     MR. STEPHANOPOULOS:  Good afternoon.  \n\t     \n\t     Q\t  Could we do this on the lawn?\n\t     \n\t     MR. STEPHANOPOULOS:  That would be nice.  Let's go out \nto the cherry blossoms.  We'll do like the President.\n\t     \n\t     Q\t  Is the stimulus package dead? \n\t     \n\t     MR. STEPHANOPOULOS:  Absolutely not.  \n\t     \n\t     Q\t  Can you tell us more about the Dole talks?  You \nsaid it was a good visit, but no compromise.\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.  The President had a good talk \nwith Senator Dole last night.  I think that as we said before, there \nwere no specific compromises on either side, although it was a very \ngood discussion about the jobs package and about other issues as \nwell.  As you know, the President first called Senator Dole I believe \nTuesday night to talk about the Russian aid package.  They did not \nspeak -- Senator Dole called him back Wednesday morning -- when the \nPresident was out.  Instead he spoke with Tony Lake, and at the close \nof that conversation, indicated that he wanted to speak to the \nPresident about the jobs and stimulus package.  They finally talked \nabout that yesterday afternoon.\n\t     \n\t     At the close of that discussion they said that they \nwould have another talk last night, which they did, when the Senator \nwas up in New Hampshire.  And although there were no specific \ncompromises made on either side, they did say that they would \ncontinue to have some discussions.  And that's where we are.\n\t     \n\t     Q\t  Well, who is giving in?  Where is it standing --are \nboth making concessions?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know that it's at that \nphase.  No compromise has been made.  As the President has said \nconsistently, he intends to come forward with an adjusted package.  \nHe believes in the package, but he believes that if it's going to \ntake adjustments to get the minority to release it, he's willing to \nmake those adjustments.\n\t     \n\t     Q\t  On the subject of a VAT --\n\t     \n\t     MR. STEPHANOPOULOS:  Oh, boy.\n\t     \n\t     Q\t  Can we stay on this for one more minute?\n\t     \n\t     MR. STEPHANOPOULOS:  Sure.\n\t     \n\t     Q\t  We have a problem with the five minutes --\n\t     \n\t     Q\t  I know no decisions have been made, but what would \nlead the health group to believe that a VAT might be necessary?\n\t     \n\t     MR. STEPHANOPOULOS:  Sorry, Andrea, I'm not going to go \ndown that road.  No decisions have been made.  As the President said \nthis morning, a number of groups, a number of members of Congress, a \nnumber of other organizations have recommended that this be looked \nat.  The working group is looking at it, but no decisions have been \nmade.\n\t     \n\t     Q\t  To follow, have they done that directly through \nhim?  Have labor and business groups been in touch with the President \nabout it?\n\t     \n\t     MR. STEPHANOPOULOS:  Not to my knowledge, although \nthere's a lot of people who have public decisions in support of the \nVAT.  But the President has not made a decision.\n\t     \n\t     Q\t  At the meetings that he's had with his own task \nforce advisers, have they discussed the funding issue and what the \npossible options would be?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't think that that has been \npresented for a decision, no.\n\t     \n\t     Q\t  Not for a decision, but has it been discussed as an \noption?\n\t     \n\t     MR. STEPHANOPOULOS:  Again, there are a lot of levels of \nbriefing.  I do not believe that the VAT has been presented to the \nPresident as, okay, this is something for you to decide on.  \n\t     \n\t     Q\t  You're not saying he didn't know it was being \nconsidered, though, are you?\n\t     \n\t     MR. STEPHANOPOULOS:  No, he said it's being considered.\n\t     \n\t     Q\t  He knew that.\n\t     \n\t     Q\t  But has he discussed that with his advisers?  \nThat's what I'm asking.\n\t     \n\t     MR. STEPHANOPOULOS:  The President has said it's being \nconsidered.  I do not know what level of discussion there has been \nover the VAT.  It is something the working groups are looking at.  I \ndon't even know that it's --\n\t     \n\t     Q\t  But he didn't say he was considering, did he, at \nthis stage?\n\t     \n\t     MR. STEPHANOPOULOS:  No, he is not.  I think we're \ngetting into something of a metaphysical debate right here.  What is \nconsidered -- \n\t     \n\t     Q\t  Well, he is the one who said, I haven't reviewed \nit.\n\t     \n\t     MR. STEPHANOPOULOS:  That is true.  That is what I just \nrepeated. \n\t     \n\t     Q\t  George, is there any concern here that as a result \nof the definite statement he made in February and the promise that if \nit were to be considered he'd let us know, and having it trickle out \nthe way it did, that there may now be the development of a \ncredibility gap on this issue and others?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't think so.  I mean, it is \nnow public knowledge that this is being considered.\n\t     \n\t     Q\t  Is he or you at all embarrassed about the absolute \nstatements that were made from this platform to the effect that it \nwas off the table and was not being considered, and then to have it \ncome out not from you people, but --\n\t     \n\t     MR. STEPHANOPOULOS:  Well, wait a second.  It came out \nfrom the administration.  What are you talking about?\n\t     \n\t     Q\t  What I'm saying is, though, that the President said \nhe would let us know. \n\t     \n\t     MR. STEPHANOPOULOS:  Right.\n\t     \n\t     Q\t  You people then said -- you said, I believe, that \nit's not going to be on the program.\n\t     \n\t     MR. STEPHANOPOULOS:  On March 25th.\n\t     \n\t     Q\t  On March 25th. \n\t     \n\t     MR. STEPHANOPOULOS:  Circumstances change.\n\t     \n\t     Q\t  Well, I understand.  But we have to find that out \nby rooting around in the fine print of an interview\n\t     \n\t     MR. STEPHANOPOULOS:  Rooting around -- I know you did do \na very good job there to read the USA Today article.  But this is --\n(laughter) -- the Deputy Director of the OMB and the Secretary of \nHealth and Human Services.  I mean, that is common anytime you guys \nwrite a story that has an unattributed quote from somebody in the \nClinton administration, the headline is -- I'll look at it right \nhere, and AP story -- \"Clinton wants more money for spying.\"\n\t     \n\t     Q\t  What about his remark that if it were being \nconsidered, he'd tell us about it?  \n\t     \n\t     MR. STEPHANOPOULOS:  And the administration's concerned, \nand he'd let you know.\n\t     \n\t     Q\t  And did he?\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.  Absolutely.  What did he say \nthis morning?\n\t     \n\t     Q\t  It had to be dragged out of you here yesterday.\n\t     \n\t     MR. STEPHANOPOULOS:  It didn't have to be dragged out of \nme.  We had the Deputy Director of the OMB, we had the Secretary of \nHealth of Human Services say it was being considered.  That is his \nadministration.  That is his administration policy.\n\t     \n\t     Q\t  Were these authorized trial balloons, or were they \norchestrated leaks?  I mean, what was the --\n\t     \n\t     MR. STEPHANOPOULOS:  They were asked questions, they \nanswered the questions.\n\t     \n\t     Q\t  You're saying here that it didn't have to be \ndragged out, that you more or less made it clear yesterday you were \nconsidering it.\n\t     \n\t     MR. STEPHANOPOULOS:  Absolutely.  I was very clear.  \nPainfully clear.\n\t     \n\t     Q\t  Was there a particular political strategy in making \nit clear the administration is considering a new tax increase on tax \nday?\n\t     \n\t     MR. STEPHANOPOULOS:  No, it was just this issue is being \nconsidered.  They were asked if it was being considered; they \nanswered that it was being considered.\n\t     \n\t     Q\t  George, The New York Times --\n\t     \n\t     Q\t  Why do it yesterday?\n\t     \n\t     MR. STEPHANOPOULOS:  They were asked.\n\t     \n\t     Q\t  The New York Times reports today that Secretary \nReich and the chief economist at the Labor Department used apples and \noranges numbers in order to portray last month's unemployment figures \nin a way that was supportive of the President's job stimulus bill, \nbut which turned out to be totally false.\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know if it was totally \nfalse, but I think -- (laughter) -- the chief economist at the Labor \nDepartment did grant that it was an inappropriate mixing, and they \nsay that. \n\t     \n\t     Q\t  The question is, is the President concerned about \nbehavior that amounts to corrupting government data?  And what's he \ndoing about it, if so?\n\t     \n\t     MR. STEPHANOPOULOS:  The chief economist has said that a \nmistake was made, it won't happen again, and that's the end of the \nmatter.\n\t     \n\t     Q\t  Isn't that the same information that goes to the \nPresident?\n\t     \n\t     Q\t  If I could go back to the stimulus package --\n\t     \n\t     MR. STEPHANOPOULOS:  There's two separate pieces of \ninformation.  I think that's where the confusion was.\n\t     \n\t     Q\t  When did you all first learn about this mistake \nthat was made?\n\t     \n\t     MR. STEPHANOPOULOS:  I read the article this morning.\n\t     \n\t     Q\t  And as far as you know, is the President aware of \nit?\n\t     \n\t     MR. STEPHANOPOULOS:  I think so.\n\t     \n\t     Q\t  And was he aware of it before he read about it in \nThe New York Times?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know.  Not to my knowledge.\n\t     \n\t     Q\t  Did you ever hear about it before this morning?  \nAnything?\n\t     \n\t     MR. STEPHANOPOULOS:  I didn't.\n\t     \n\t     Q\t  Wasn't the President given an erroneous spin on \nthis for his own purpose?  For his speeches, for his arguments?\n\t     \n\t     MR. STEPHANOPOULOS:  Well again, I'm not sure.  Both \nstatements are true.  What the Labor Department has granted is that \nmixing them in one sentence, essentially, was misleading.  They said \nit was a mistake.  They said they wouldn't do it again.\n\t     \n\t     Q\t  Did they drop it -- is this something that you \nchoose to spin or make an issue of?\n\t     \n\t     MR. STEPHANOPOULOS:  Whenever fewer people are out of \nwork, we're gratified.  But that doesn't take away from the need to \nget this jobs package going.\n\t     \n\t     Q\t  If I could go back to the stimulus package for a \nminute.  You said that the President plans to come forward with an \namendment.  Is the timetable still what it was -- that the amendment \nwould be laid down on Monday and voted on on Tuesday, or did he, in \nthe conversation with Dole, talk about the possibility of putting \nthat off for a few more days to give more time for the discussion?\n\t     \n\t     MR. STEPHANOPOULOS:  I think at this point there's no \nchanges in the schedule at all.  I don't know that they discussed the \ntiming like that.\n\t     \n\t     Q\t  Do you believe that you're closer or getting closer \nthis week than you were last week?\n\t     \n\t     MR. STEPHANOPOULOS:  Again, I believe that we're going \nto pass a jobs package.  The President is prepared to make \nadjustments in order to get that to happen.  I don't know where the \nvotes are on cloture at this particular time.  I don't know what's \ngoing to happen until we have a vote.  But the President believes \ndeeply in this jobs package and wants to get it done.\n\t     \n\t     Q\t  Has there been any indication that this situation \nhas changed?\n\t     \n\t     MR. STEPHANOPOULOS:  We're going to continue to work on \nit.  We'll know when the votes are taken.\n\t     \n\t     Q\t  George, last week you said that there are -- or \nvarious people in the administration were saying that you couldn't go \nthrough Dole, you were going to have to try and go around him because \nhe was immovable on this subject of a compromise, or at least the \ncompromise he wanted was not anything like the one that you could \naccept.  This week you're talking to him.  Is that because you've \nrealized that the peeling off effort wasn't going to work?\n\t     \n\t     MR. STEPHANOPOULOS:  That's because Senator Dole wanted \nto talk to the President about the stimulus package.\n\t     \n\t     Q\t  He initiated the conversation?\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.\n\t     \n\t     Q\t  Secretary Reich this morning said that, in fact, \nthe President is not willing to compromise on this bill at all.  You \nsay he's making --\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know that that's exactly \nwhat he said.  I think he said he didn't have any indication that \nthere was any compromises yet or that there would be a compromise, \nand the President doesn't want to compromise.  And the President \ndoesn't want to compromise.  But if he has to make adjustments to get \nit through, he will.\n\t     \n\t     Q\t  Officials here yesterday said that Panetta was \nworking on a series of adjustments that might be made public before \nthe actual vote.\n\t     \n\t     MR. STEPHANOPOULOS:  It's possible.\n\t     \n\t     Q\t  Today?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm not sure exactly when that will \nhappen, but I think that it's very possible that we'll come forward \nwith some sort of a different package, or Senate Democrats will come \nforward with some sort of a different package in order to get it \npassed.\n\t     \n\t     Q\t  As we understood his conversations with Dole, the \nfirst one was some discussion of this and I'll get back to you \ntonight with some details or some adjustments, or whatever the phrase \nis.  Did he offer him some details or some adjustments?  \n\t     \n\t     MR. STEPHANOPOULOS:  I think it's a question of how \ndetailed.  I mean, I think they had a general discussion about the \npackage last night, subsequent to their conversation yesterday \nafternoon.  I believe that there will be follow-up discussions today \nin the Senate, not necessarily between the President and Senator \nDole.  And let me just reiterate, neither side has made specific \ncompromises at this date.  When we have something we'll let you know.  \nAnd I'm not suggesting that Senator Dole has accepted anything that \nwe've talked about or that we've offered anything in a hard way.\n\t     \n\t     Q\t  What are the follow-up discussions if not the \nPresident and Dole?\n\t     \n\t     MR. STEPHANOPOULOS:  I think Senator Mitchell is going \nto talk to Senator Dole.\n\t     \n\t     Q\t  Is that a threat?  (Laughter.)\n\t     \n\t     Q\t  Did the President say to Senator Dole, all right, \nhow about this number as an overall size, or did Dole say to the \nPresident, I can go as high as this?  Did they talk numbers?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't think it was a negotiation \nin that respect.  It was more of a discussion about their positions.\n\t     \n\t     Q\t  Did they discuss actual numbers?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm just not sure.  I know they \ntalked about the basic outlines of the packages.  I think they talked \nabout the programs they cared about.  I don't know if they got to the \nlevel of this many x-billion dollars. \n\t     \n\t     Q\t  Does Dole have to sign off before there is a \npackage?\n\t     \n\t     MR. STEPHANOPOULOS:  No, of course not.\n\t     \n\t     Q\t  Did the White House have anything to do with the \nprotesters who showed up in New Hampshire today where Senator Dole \nwas speaking?  Was that in any way organized by --\n\t     \n\t     MR. STEPHANOPOULOS:  Not to my knowledge, no.\n\t     \n\t     Q\t  And has the President been in touch with Senators \nKohl or Feingold?  \n\t     \n\t     MR. STEPHANOPOULOS:  I don't think he's talked to them, \nno.\n\t     \n\t     Q\t  George, is the President considering the more \npalatable fact of having a national sales tax instead of having the \nhaves having to continuously pay for the have-nots?  And is he going \nto scrap his proposed tax on the privileged few, with the haves \nhaving to pay for the have-nots?\n\t     \n\t     MR. STEPHANOPOULOS:  The President believes deeply that \nthe tax rates on upper income Americans, as he presented in his \nbudget, should go up.  And I think for the second half of your \nquestion, I'll refer you to my briefing from yesterday.\n\t     \n\t     Q\t  George, on the subject of accuracy in information, \nyou suggested the other day that the stimulus package included money \nthat would solve the water problem in Milwaukee.  Apparently that is \nnot true.  It's actually waste water money.\n\t     \n\t     MR. STEPHANOPOULOS:  It's waste water money for \nWisconsin, and some could go to Milwaukee. \n\t     \n\t     Q\t  But it would not affect the drinking water problem \nbecause it's waste water money, right?\n\t     \n\t     MR. STEPHANOPOULOS:  It would affect the water treatment \noverall. \n\t     \n\t     Q\t  But the implication from your statement the other \nday was that it would help fix this disease problem in Milwaukee now.  \nWould you agree that's not the case?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm not sure of the specifics.  I \nknow that it goes to the overall water treatment in Wisconsin.\n\t     \n\t     Q\t  A leftover question from this morning, which was, \nwhen did the President find out that the task force was deliberating \non a VAT?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm not sure exactly when.  I just \ndon't know.  I assume it came up over the last -- certainly between \nthe time that we had commented on in the past and two days ago.  \n\t     \n\t     Q\t  So sometime since March 25th?\n\t     \n\t     MR. STEPHANOPOULOS:  I think that's right.  I don't know \nthe exact date.\n\t     \n\t     Q\t  George, the President this morning mentioned that \nsome labor and business groups are for the VAT tax.  Apparently, the \nNational Association of Manufacturers talks about perhaps the VAT tax \nbeing okay if it replaces the BTU tax.  So does the President feel \nthat perhaps this might be in place of some other tax he's proposed, \nor is this totally in addition to the other taxes he's already \nproposed?  \n\t     \n\t     MR. STEPHANOPOULOS:  I think we've said all we have to \nsay about the VAT at this point.  I mean, there's just no -- this is \nbeing considered by the health care working groups, and that is all.  \nThe President hasn't made any further decisions beyond that. \n\t     \n\t     Q\t  But it would be to finance health care, it wouldn't \nbe to replace some other tax that finances -- it wouldn't replace the \nincome tax, for instance?\n\t     \n\t     MR. STEPHANOPOULOS:  There have been no discussions on \nthat.\n\t     \n\t     Q\t  In terms of getting a VAT tax through Congress, \nSenator Dole's press release today said VAT -- on tax day.  Do you \nthink -- does it have a chance of getting through Congress?  Would it \nhave a chance?\n\t     \n\t     MR. STEPHANOPOULOS:  I have no idea. \n\t     \n\t     Q\t  Is that a consideration whether you all put it \nforward?\n\t     \n\t     MR. STEPHANOPOULOS:  That would become a consideration \nif the President were to decide to do it.  It's not in consideration \nnow.\n\t     \n\t     Q\t  You said at the beginning of the briefing that \ncircumstances had changed and that had caused the VAT to now be under \nconsideration.\n\t     \n\t     MR. STEPHANOPOULOS:  Yes, what the President referred to \nthis morning.  These groups came forward and said this is something \nthat has to be considered.\n\t     \n\t     Q\t  Those are the circumstances that have changed?  \nThat's the only difference between now and when he emphatically ruled \nit out that groups have asked it to be considered?\n\t     \n\t     MR. STEPHANOPOULOS:  That's what he said. \n\t     \n\t     Q\t  Is that true?\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.\n\t     \n\t     Q\t  Was there, in fact, some understanding that sin \ntaxes would not produce enough money for the health care benefits?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm not going to get into the \ndeliberations.\n\t     \n\t     Q\t  But, George --\n\t     \n\t     MR. STEPHANOPOULOS:  No.  What the consideration is, as \nthe President said, groups came forward and said this is something \nyou ought to consider.  The working groups are looking at it. \n\t     \n\t     Q\t  Is that the only thing that's changed since his \nprior statement and your prior statement on the VAT?\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.\n\t     \n\t     Q\t  Can you explain how those groups -- how that \ninformation got to him that groups wanted it?  Was it just reading \nthe newspaper or did groups make presentations?\n\t     \n\t     MR. STEPHANOPOULOS:  I think the groups -- as you know, \nthe health care task force has met with dozens of groups.\n\t     \n\t     Q\t  But this is the President's knowledge that these \ngroups had come forward.\n\t     \n\t     MR. STEPHANOPOULOS:  I think he was referring to what \nwas coming to the working groups.  Obviously, there have also been \npublished positions in the newspapers.\n\t     \n\t     Q\t  Have certain groups briefed him on the group's \npresentations to them?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know if they've briefed him \n-- I mean, how detailed the briefings have been.    I know that the \nworking groups decided to look into this after being pressed by these \ngroups.\n\t     \n\t     Q\t  What kind of arguments did the groups make that \nwere persuasive enough that the President would change the position \nthat he had enunciated previously?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know, it's just they've had \nlongstanding positions that this would be a good way to finance \nhealth care.\n\t     \n\t     Q\t  The President wasn't aware of those longstanding \npositions?\n\t     \n\t     MR. STEPHANOPOULOS:  He may have been at some level.  \nObviously, he's been a governor for a long time and he knows the \nbasic arguments for and against a VAT tax.\n\t     \n\t     Q\t  What we're trying to figure out here -- you're \ntelling us that the only change, the only thing that affected this \nchange in the President's attitude toward the VAT between February \nand now --\n\t     \n\t     MR. STEPHANOPOULOS:  The President's attitude hasn't \nnecessarily changed.  I mean, he has not made a decision.\n\t     \n\t     Q\t  I know, but the President said that it was off the \ntable.  So did you.  And you're saying that the only thing that's \nchanged is the positions of these groups, except you're also \ndescribing them as longstanding positions.  I don't see the change.  \nIf these groups haven't had any change in their position that's been \nmade to the President --\n\t     \n\t     MR. STEPHANOPOULOS:  Well, they've made the \npresentations to the health care task force.\n\t     \n\t     Q\t  There's no relationship at all between the fact \nthat sin taxes that he had said -- suggested in February that he \nfavored will not produce enough revenue to finance --\n\t     \n\t     MR. STEPHANOPOULOS:  I don't think he ever suggested \nthat they would produce all the revenue.\n\t     \n\t     Q\t  Well, he suggested that he thought that those were \nappropriate ways to finance health care.\n\t     \n\t     MR. STEPHANOPOULOS:  He did say that.  I don't know that \nhe said anything to refute that.\n\t     \n\t     Q\t  But, in fact, has the task force discovered that \nthere wouldn't be enough revenue from those taxes to finance the kind \nof core benefits --\n\t     \n\t     MR. STEPHANOPOULOS:  Again, I don't think that the task \nforce ever suggested that there would.\n\t     \n\t     Q\t  George, if he advocated a VAT tax, would that break \nhis promise not to raise taxes on the middle class to pay for his \nprograms?\n\t     \n\t     MR. STEPHANOPOULOS:  I can't comment on a hypothetical \nsituation.\n\t     \t  \n\t     Q\t  But does that promise -- would that promise not to \nraise taxes on the middle class to pay for the programs prevent him \nfrom seeking a VAT tax?\n\t     \n\t     MR. STEPHANOPOULOS:  The President has made no decisions \non the VAT tax.  When he does, we'll tell you and we'll explain the \nimplications then.\n\t     \n\t     Q\t  Which specific groups can you cite -- business, \nlabor or otherwise -- whose recommendations to the health care task \nforce has prompted this consideration?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't have the specific.  I just \ndon't have that.\n\t     \n\t     Q\t  George, can you tell us to what extend these other \nalternatives, for instance, the employer tax or the sin taxes or \nother financing options are also still on the table and what these \noptions are?\n\t     \n\t     MR. STEPHANOPOULOS:  No, as members of the task force \nand representatives of the working groups have said, they are looking \nat a wide variety of options.  I think that Ira Magaziner said that \nthere are 20 different options under consideration.  But I'm not \ngoing to comment --\n\t     \n\t     Q\t  What's the scope --\n\t     \n\t     MR. STEPHANOPOULOS:  I'm just not going to comment on \nthem, no.\n\t     \n\t     Q\t  What's the scope of the need?  How much are you \ntalking about that has to be produced by one or a combination of the \n--\n\t     \n\t     MR. STEPHANOPOULOS:  That's what the health care task \nforce is looking at.\n\t     \n\t     Q\t  Since there's not going to be any briefing on the \nMiyazawa visit, two questions:  One, generally what does the \nPresident hope to use that meeting for, but more specifically, is his \ntask complicated by the Japanese anger over the Vancouver note and \nthe remark about market access at the press conference?\n\t     \n\t     MR. STEPHANOPOULOS:  The Vancouver note?\n\t     \n\t     Q\t  Does no mean yes.\n\t     \n\t     Q\t  Yes and no.\n\t     \n\t     MR. STEPHANOPOULOS:  Well, I don't know.  I saw the \nPrime Minister's press conference where he was asked the question \nabout that note and he gave a very gracious and complete answer when \nhe was asked the question.  The questions of trade are something that \ncertainly will be discussed between the Prime Minister and the \nPresident.  There is obviously a trade imbalance between Japan and \nthe U.S. that we want to do something about.\n\t     \n\t     Q\t  Also in those comments the Prime Minister made he \nsuggested that the United States should come down heavy on him in \nterms of trade.  Are you going to oblige?  \n\t     \n\t     MR. STEPHANOPOULOS:   I think the President will state \nour views on trade very clearly and our views on the trade deficit \nvery clearly.  I don't necessarily want to agree with your \ncharacterization of the Prime Minister's comments.\n\t     \n\t     Q\t     that we need specific export targets, specific \nnumerical targets -- is that what he's going to discuss with \nMiyazawa?\n\t     \n\t     MR. STEPHANOPOULOS:  They're going to have a broad \ndiscussion of a wide range of trade issues.  I don't want to get into \nthose specifics until after the meeting.\n\t     \n\t     Q\t  Why?\n\t     \n\t     Q\t   That's the crux of the issue, right?  Whether or \nnot -- does the President believe that without specific numerical \ntargets, it is really, as he said in his press conference, sort of \nhopeless that this is going to change very much?\n\t     \n\t     MR. STEPHANOPOULOS:  The President believes that we must \nhave pressure on Japan to turn the trade imbalance around.  I do not \nwant to get into the specifics of how that would be done.\n\t     \n\t     Q\t  But does the President believe that their stimulus \npackage announced yesterday will rectify the imbalance?\n\t     \n\t     MR. STEPHANOPOULOS:  I think, first, the President wants \nto get a full briefing on the stimulus package from Prime Minister \nMiyazawa himself, and then he'll make the comment on it.\n\t     \n\t     Q\t  How about the Russian aid package?  There seems to \nbe some confusion about how the U.S. views that, Secretary \nChristopher saying -- or Bentsen saying the Japanese may need to do \nmore, the Japanese saying that that's not what they heard?\n\t     \n\t     MR. STEPHANOPOULOS:  Again, we're going to continue to \nwork with all our allies in the G-7, and we're going to continue to \npress for help for Russian reform, Russian democratic reform.  And I \nthink that, so far, we had a very good announcement out of Tokyo and \nwe're going to continue to work with our allies for bilateral \npackages.\n\t     \n\t     Q\t  Do you think the Japanese need to do more?\n\t     \n\t     MR. STEPHANOPOULOS:  We're going to continue to work \nwith all our allies to do as much as we can.\n\t     \n\t     Q\t  Secretary Christopher was asked today on the Today \nShow this morning what he thought of Margaret Thatcher's comments on \nthe Bosnia policy.  And he said, \"It's a rather emotional response.\"  \n\t     MR. STEPHANOPOULOS:  Over an emotional issue.\n\t     \n\t     Q\t  Right -- to an emotional problem.  Does the White  \nHouse condone that kind of remark?\n\t     \n\t     MR. STEPHANOPOULOS:  I think that Secretary \nChristopher's remarks speaks for itself.  The President believes also \nthat this is a deeply troubling situation that we're trying to find \nanswers for. \n\t     \n\t     Q\t  But that specific -- \"rather emotional response\" -- \nspecific term?\n\t     \n\t     MR. STEPHANOPOULOS:  No, it speaks for itself.\n\t     \n\t     Q\t  In connection with that, doesn't it seem that with \nthe numbers of people who are being killed at this very moment, is it \ngood American policy to put off some decisions that might be made now \nto help Boris Yeltsin win a referendum?\n\t     \n\t     MR. STEPHANOPOULOS:  For example?\n\t     \n\t     Q\t  To take stronger action, to take military action -- \nair strikes, anything that can be done?\n\t     \n\t     MR. STEPHANOPOULOS:  The President believes that what \nmust be done now is to push harder for sanctions.  He is also -- as \nyou know, the administration has been discussing lifting the arms \nembargo.  He believes those are the appropriate ways to increase \npressure at this time.\n\t     \n\t     Q\t  What is your response to the critics who would say \nthat the U.S. is now stymied by trying to help Boris Yeltsin retain \nthe presidency?\n\t     \n\t     MR. STEPHANOPOULOS:  They're wrong.  We're pressing hard \nfor the Serbs to come to the negotiating table.  We're pressing hard \nfor increased sanctions, and we're talking to our allies about the \narms embargo.\n\t     \n\t     Q\t  You were putting great store in Vance and Owen \ngetting people to agree to that.  Now, Vance and Owen have both said \nthat military force to some extent would be acceptable.  Does that \nchange your thinking?\n\t     \n\t     MR. STEPHANOPOULOS:  Clearly, we're going to listen to \nwhatever people who have put so much time into a situation have to \nsay.  But at this point, the President is moving forward on sanctions \nand talking about the arms embargo.\n\t     \n\t     Q\t  A follow-up on a Dee Dee comment this morning.  She \nsaid she would be able to provide some administration officials who \ncould document the effect the sanctions are having in Bosnia.  Are \nyou going to be able to do that, or do you have anything --\n\t     \n\t     MR. STEPHANOPOULOS:  I don't think that's what she said.\n\t     \n\t     Q\t  That's exactly what she said.\n\t     \n\t     MR. STEPHANOPOULOS:  I don't think that's true.  But \nwhat she said -- we would look into the situation of what kind of \nevidence can be provided in Bosnia.  Obviously, if there are \nconnections between the Bosnian Serbs and the Serbs in Belgrade and \nwe are tightening the screws on the Serbs in Belgrade, that will have \nan effect over time.  I do not know day by day, minute by minute, \nwhat kind of help is being given between the two and what the exact \neffect has been.   But, clearly, we are slowing the shipment of goods \ninto Belgrade.  We are having an effect on the Serbs there.  What \nkind of effect that will eventually have on the Bosnian Serbs I don't \nknow.  But one thing I would say is if it were having no effect at \nall, I don't know why they'd be fighting it so much.\n\t     \n\t     Q\t  Are the First Lady's tax returns going to be \nreleased?\n\t     \n\t     MR. STEPHANOPOULOS:  I think there's a joint tax return.  \nAnd it will be probably later today.\n\t     \n\t     Q\t  Is the President considering signing an executive \norder banning discrimination against homosexuals in the federal work \nforce as part of the gay rights march here next week?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't think there's any proposal \nfor that at this time, not that I know of.\n\t     \n\t     Q\t  It's something that the President promised during \nthe campaign that he would do.\n\t     \n\t     MR. STEPHANOPOULOS:  I have not seen any -- I don't \nthink it's anything that's on his plate right now.\n\t     \n\t     Q\t  Is he meeting with gay rights leaders at any point \non this issue?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know about on this issue.  \nI assume that he'll meet with representatives of the gay and lesbian \ncommunity sometime soon, as he meets with representatives of lots of \ndifferent groups and communities.\n\t     \n\t     Q\t  Do you know if that's scheduled --\n\t     \n\t     MR. STEPHANOPOULOS:  It's probably going to be tomorrow.\n\t     \n\t     Q\t  Probably going to be tomorrow?  (Laughter.)\n\t     \n\t     Q\t  It's a good thing you asked.\n\t     \n\t     Q\t  Who's probably going to be there?  (Laughter.)\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know.\n\t     \n\t     Q\t  How long --\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know.  That's all I know.\n\t     \n\t     Q\t  Do you know if it's at 3:00 p.m. tomorrow?  \n(Laughter.)\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know what time it is.  I \ndon't even know for sure if it's going to be tomorrow.\n\t     \n\t     Q\t  Environmental groups have asked him to make a major \nspeech next week of some kind.  Is that going to happen, do you know?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know if they've asked, but \nI think the President has always planned, as he did last year, to \ngive a speech on Earth Day and I expect that he will.  If it's not \nexactly on Earth Day, it might be a day before or something like \nthat.\n\t     \n\t     Q\t  Is he planning to sign or announce the signing of \nthe biodiversity treaty in connection with Earth Day?\n\t     \n\t     MR. STEPHANOPOULOS:  Again, I don't know the specific \ntiming of something like that, but it's certainly something under \ndiscussion and something we've been working on.\n\t     \n\t     Q\t  Campaign finance reform?\n\t     \n\t     MR. STEPHANOPOULOS:  We're working on it.\n\t     \n\t     Q\t  Do you think it will be next week?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm just not sure.\n\t     \n\t     Q\t  The biodiversity treaty is something you're working \non?  I missed the question.\n\t     \n\t     MR. STEPHANOPOULOS:  Yes, something we're working on.  \nHe asked if it was ready to be signed, and I said I didn't know \nanything about that but it's something we've certainly been working \non.\n\t     \n\t     Q\t  Do you know what organizations might be represented \nin this meeting with the gay and lesbian groups?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't.\n\t     \n\t     Q\t  Do you know if he is going to reconsider being out \nof town on the day of the march?\n\t     \n\t     MR. STEPHANOPOULOS:  He's got to be at the Senate \nmeeting in Jamestown, and I believe he's also going to be giving a \nspeech to the American Association of Newspaper Publishers in Boston \non Sunday, as he did last year.\n\t     \n\t     Q\t  Would you have told us if she had not pressed you \non the question?\n\t     \n\t     MR. STEPHANOPOULOS:  On what?\n\t     \n\t     Q\t  On the gays.\n\t     \n\t     MR. STEPHANOPOULOS:  When we went through the \nPresident's schedule for the day, certainly.\n\t     \n\t     Q?\t    George, what day is the publisher's speech?  Is \nthat Sunday?\n\t     \n\t     MR. STEPHANOPOULOS:  I think it's a Sunday.\n\t     \n\t     Q\t  And Saturday he'll be in Jamestown?\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.\n\t     \n\t     Q\t  So you're just going to be in Jamestown for one \nday?\n\t     \n\t     MR. STEPHANOPOULOS:  No, I'm not sure.  I don't know how \nlong the Senate thing goes.  It might go overnight.  I just don't \nknow.\n\t     \n\t     Q\t  You would have made the gay meeting public, right?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm certain if we had the meeting \n-- I don't know about open to the press, but we would have told you \nabout it.\n\t     \n\t     Q\t  I mean, because it is, as far as I can tell, the \nfirst time in history a President has met in the Oval Office with --  \n\n\t     MR. STEPHANOPOULOS:  I didn't say it was going to be in \nthe Oval Office.  (Laughter.)  But I didn't -- I'm not say that it's \nnot, but I didn't say that it was.  (Laughter.)\n\t     \n\t     Q\t     at the White House in the Bush administration \ngay officials were invited to a bill signing ceremony and the White \nHouse had to repudiate having done that.  So I just wanted to make \nsure --\n\t     \n\t     MR. STEPHANOPOULOS:  Well, the President wouldn't do \nanything like that.\n\t     \n\t     Q\t  Certainly not.\n\t     \n\t     Q\t  What marching orders did the President give to \nGeneral Vessey?\n\t     \n\t     MR. STEPHANOPOULOS:  They had a very good discussion for \nabout half an hour today.  He wanted -- the most important thing was \nhe had a full accounting for American POWs and MIAs.  He will \nobviously look into the circumstances surrounding this new document.  \nThe President stressed that he wanted the fullest possible accounting \nand said that only when we have that can we even consider any changes \nin our policy towards Vietnam.  He'll be looking at Vietnam's \nresponse to the questions raised by the document and he'll also look \ninto investigations on discrepancy cases, increased efforts on \nremains, implementing trilateral investigations -- and access to \nmilitary archives.  \n\t     \n\t     And Ambassador Toon also briefed the President on the \nactivities of the joint commission and on the document.\n\t     \n\t     Q\t  Vietnam says it's a fake.  What is the DOD analysis \nat this stage?\n\t     \n\t     MR. STEPHANOPOULOS:  It's not completed yet, and it's \nalso the first thing that General Vessey will bring up with the \nVietnamese.\n\t     \n\t     Q\t  A number of Defense officials have been saying that \nthey think that the 600 or so prisoners referred to are, in fact, \nnon-Americans that the Vietnamese had captured who they referred to \nas Americans from time to time.  Do people -- \n\t     \n\t     MR. STEPHANOPOULOS:  We don't have any final \ndetermination.  We're going to wait for the complete review; when we \nhave it, we'll make a judgment.\n\t     \n\t     Q\t  I know you don't have any final determination, but \ngiven all of the intense public interest in this, do you think that \nthat's a likely possibility?\n\t     \n\t     MR. STEPHANOPOULOS:  I just don't want to characterize \nit in any way until the review is complete.\n\t     \n\t     Q\t  George, was there a topic scheduled for the speech \nin Boston?\n\t     \n\t     MR. STEPHANOPOULOS:  No. \n\t     \n\t     Q\t  Is the President going to have a press conference \ntomorrow with Miyazawa?\n\t     \n\t     MR. STEPHANOPOULOS:  I think so, but I'm not positive.  \nYes, I expect, yes.\n\t     \n\t     Q\t  Was Toon in with Vessey?  \n\t     \n\t     MR. STEPHANOPOULOS:  Yes. \n\t     \n\t     Q\t  He was in on the meeting?\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.\n\t     \n\t     Q\t  What was the question?\n\t     \n\t     MR. STEPHANOPOULOS:  Was Ambassador Toon in with Vessey, \nand the answer is yes. \n\t     \n\t     Q\t  Do you have any response to The Wall Street Journal \nreport this morning the President's distressed about some of his \npress clippings and that perhaps he's distressed with you about that?\n\t     \n\t     MR. STEPHANOPOULOS:  No.  Well, I do have a response.  I \nthink the article was highly misleading to the extent that it implied \nthat the President has had restricted access to the press.  I would \npoint out that he's answered 358 questions on 77 occasions, more than \nany of his predecessors. I would also point out it also --\n\t     \n\t     Q\t  How many questions?\n\t     \n\t     MR. STEPHANOPOULOS:  Three hundred fifty-eight, on 77 \noccasions.\n\t     \n\t     Q\t  How many were while he was jogging?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, no, that's actually a very \ngood question, Andrea.  And I would point out further that the \narticle also implied that these questions were only answered at \ntightly controlled photo opportunities, which is just patently false.  \nHe's had 13 press conferences in either the East Room, the Oval \nOffice or the Roosevelt Room or the Briefing Room, in addition to \nquestions taken at photo opportunities, and that is only the --\n\t     \n\t     Q\t  Oval Office press conference -- when was that? \n\t     \n\t     MR. STEPHANOPOULOS:  He's answered questions in the --\nEast Room.  He's had five in the East Room, he's had one in the Oval \nOffice, he's had one in the Rose Garden, he's had one or two in the \nRoosevelt Room.  And this is just to the White House, Washington \nPress Corps.  In addition to that, he's had 17 interviews with local \ntelevision anchors.  He's met with the editorial board of The \nPortland Oregonian.  He's had an hour-long interview with Dan Rather. \nHe's had interviews with local press from California, Florida and \nConnecticut --\n\t     \n\t     Q\t  Can you address the question of the attitude?  The \narticle implies that he doesn't --\n\t     \n\t     Q\t  Why doesn't he like us?  (Laughter.)\n\t     \n\t     Q\t  Did you really get blamed for that Post story?\n\t     \n\t     Q\t  The story is that you -- are you held responsible \nfor it.\n\t     \n\t     MR. STEPHANOPOULOS:  I don't think I'm going to comment \nabout this.\n\t     \n\t     Q\t  Are you denying that the President has shown \ndispleasure publicly?\n\t     \n\t     MR. STEPHANOPOULOS:  I am not commenting on the \ndiscussions between the President and myself.\n\t     \n\t     Q\t  Did the President write that letter to Chris \nWebber?\n\t     \n\t     MR. STEPHANOPOULOS:  What?\n\t     \n\t     Q\t  The letter to the University of Michigan basketball \nplayer?\n\t     \n\t     MR. STEPHANOPOULOS:  Oh, yes.\n\t     \n\t     Q\t  That is an authentic letter?\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.\n\t     \n\t     Q\t  Since the President first talked about the VAT in \nFebruary, he said at the time that he thought there probably should \nbe exceptions made in basic necessities such as food and clothing.  \nDoes he still hold that position given the impact it could have?\n\t     \n\t     MR. STEPHANOPOULOS:  Again, I just can't comment on a \nproposal he hasn't made.\n\t     \n\t     Q\t  George, does the President have some agenda for \nthis meeting with the gay leaders tomorrow?\n\t     \n\t     MR. STEPHANOPOULOS:  Well, I think it will just a \ngeneral meeting on the wide range of issues that they care about \nincluding AIDS and other issues -- civil rights.\n\t     \n\t     Q\t  The military issue?\n\t     \n\t     MR. STEPHANOPOULOS:  I'm certain it will come up.\n\t     \n\t     Q\t  Is he using this event to name the AIDS --\n\t     \n\t     MR. STEPHANOPOULOS:  I don't think so.\n\t     \n\t     Q\t  George, what specifically is the President doing to \nprepare for tomorrow's meeting with the Prime Minister Miyazawa?\n\t     \n\t     MR. STEPHANOPOULOS:  He's had briefing memos.  He's had \ngeneral discussions with members of the Treasury Department, the \nTrade Representative and others.\n\t     \n\t     Q\t     report yet?\n\t     \n\t     MR. STEPHANOPOULOS:  I don't know if he has the report \nreferred to in The Times, but Ambassador Kantor was here to brief him \ntoday.\n\t     \n\t     Q\t  He was?\n\t     \n\t     MR. STEPHANOPOULOS:  Yes.\n\t     \n\t     Q\t  Does he intend to use any of these instances that \n--\n\t     \n\t     MR. STEPHANOPOULOS:  Again, I don't know that the \nreport's been presented.  But obviously, the President will press \nhard in any case where he thinks that a violation has occurred.\n\t     \n\t     Q\t  In terms of the Wall Street Journal, the thrust was \nthat there's a real schism here -- a hostility.  Do you think he \nfeels that way?\n\t     \n\t     MR. STEPHANOPOULOS:  Not at all.  As I said on the \nrecord in the article, I think the President likes reporters.  Again, \nI think that the thrust of the article was still misleading.  The \nthrust of the article was that in some way, some attitude which the \nPresident may or may not have is affecting access when, in fact, he \nhas the most open, accessible administration than have any in recent \nhistory.\n\n\t     Q\t  Can we come up to your office?  (Laughter.)\n\n\t     MR. STEPHANOPOULOS:  If you're invited.  \n\t     \n\t     THE PRESS:  Thank you.\n\n                                 END                    1:34 P.M. EDT\n\t     \n#57-04/15\n\t     \n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8722, "properties": {"category": "sci.space", "text": "From: rlennip4@mach1.wlu.ca (robert lennips 9209 U)\nSubject: Re: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nX-Newsreader: TIN [version 1.1 PL6]\nOrganization: Wilfrid Laurier University\nLines: 2\n\nPlease get a REAL life.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8723, "properties": {"category": "sci.electronics", "text": "From: baden@inqmind.bison.mb.ca (Baden de Bari)\nSubject: *]] MOSFET help...\nOrganization: The Inquiring Mind BBS  1 204 488-1607\nLines: 28\n\n \n        Since I'm not all too keen on this area of hooking them up, I'm \nasking for help.  I know better than to hook a 12v, 1a stepper line to \none, unless it can take it; however what about if I've got a 24-60v \nstepper.  What sort of curent limmiting circuitry would be involved (a \nsmall schematic would probably be helpfull).  \n        Also, I've looked into the TIPC2701N by TI, and I was wondering \nif I should use the same suggested (by you replying to this message) \ncurrent limiting circuitry on each of the 7 mosfets in the package as \nthat illustrated in the schematic (which you the replyer would hopefully \nhelp me with).\n \n                                ... hmm... different request... \n \n                Thanks.\n\n \n  _________________________________________________\n  Inspiration  |   ___                             |\n  comes to     |  \\   o  baden@sys6626.bison.mb.ca |\n  those who    | (  ^  ) baden@inqmind.bison.mb.ca |\n  seek the     |   /-\\      =] Baden de Bari [=    |\n  unknown.     |                                   |\n  ------------------------------------------------- \n \n\nbaden@inqmind.bison.mb.ca\nThe Inquiring Mind BBS, Winnipeg, Manitoba  204 488-1607\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.414+0000", "event": "documents", "entityId": 8724, "properties": {"category": "talk.politics.guns", "text": "From: awesley@vela.acs.oakland.edu (awesley)\nSubject: Re: That silly outdated Bill (was Re: Koresh and Miranda)\nOrganization: Oakland University, Rochester, Michigan, U.S.A.\nLines: 115\nNNTP-Posting-Host: vela.acs.oakland.edu\n\nscottj@magic.dml.georgetown.edu (John L. Scott) writes:\n\n\n: The issue has never been whether tanks were used in Detroit in 1967.  It\n: has been whether they fired their main guns.  \n\nNever?  This is incorrect.  Either you don't read very well or resort\nto falsehoods in an attempt to make a point.\n\nAt the risk of boring and belaboring the point, my claim was\nthe chain was regarding the tanks \"last used in Detroit in 48\".\nThe text follows.\n\n:  You did not merely claim that\n: tanks were used--you claimed that they fired their main guns to suppress\n: sniper fire and that they were \"quite\" effective at this.  \n\nIndeed, when Coffman claimed they were only used as APCs, I did say\nI had been told they did fire their main guns.  \n  ^^^^^^^^^^^^^\n: You continue to\n: back away from this claim and defend something else that nobody is\n: disputing.\n\nWell, the poster who I responded to did dispute the use of tanks\npost-48.  Rude of you to call Gary Coffman a nobody.  \n\n: \"Well, it's not the main gun.\"  Gee, that's only the entire point.  Are you\n: now going to admit that you were wrong?\n\nThat was the entire point to *you*.  What exactly did I claim?\n   --------------------------------------------------\n  \"I've heard eye-witness descriptions of tanks using their main guns\nto respond to sniper fire.  Quite effectively.\"\n   --------------------------------------------------\n\n  I wasn't wrong . . . I've heard those descriptions.  If you're\npaying attention, I've mentioned that I saw the tanks with my own\neyes, but the main gun firing was an account I heard.  That helps\npeople judge whether or not to kick in the, to use your words,\n\"bullshit filters\".  Stating that I *claimed* this is a falsehood.\n\n  What was it I claimed as fact?  Here's the entire post:\n  --------------------------------------------------\n>We haven't used tanks against the black ghettos since Detroit 1948. \n\nCorrection.  I know they used tanks in Detroit 1968.  I saw em, it\nwas well covered in the news at that time.  Gordon Lightfoot mentions\nit in his song \"Black Day in July\".\n  --------------------------------------------------\n\n  Since you don't dispute that and claim that nobody else does, that\nmeans I was right.  \n\n: I will never read of tanks firing their main guns in Detroit in the '67\n: riots.  There is simply no way that such an event could have taken place\n: without it being common knowledge even 26 years later.  The American\n: military firing shells from tanks in American cities on blacks would have\n: been *big* news.\n\n   So one would suppose.  Some folks think in happened in 48.  \n\nAwesley goes on:\n  You can also read of the troops using grenade launchers.\n\n: To fire fragmentary grenades?  I doubt that as well.  To fire concussion\n: grenades?  Perhaps.  To fire tear gas?  Certainly.  But you would be\n: perfectly willing to let us believe they fired frags, wouldn't you, since\n: it makes your other claim seem more plausible.\n\nJohn, again, strawman techniques.  Do you feel you're losing it so you\nhave to stretch what I said and knock that down?  What I read said\nnothing about what they fired.  And so I put nothing in there.  If you\nneed some help, let me know and I'l take your side of this for a\nwhile.  You're not scoring here, you're boring here. \n\n: If tanks had fired their main guns in Detroit, people would have been\n: screaming about it for the past two and half decades.  I would know about\n: it. \n\n   Glad to know you're such an expert.  Nice to hear some an\nauthority.  I especially appreciate your basis of knowledge -- if it\nhad happened, you would have know it.  Since you are such an\nauthority, you probably know that people did scream about an alleged\nmassive cover-up in the number of people killed in the Detroit riot.\nSome claimed 100+ dead, others said 300.  The offical number is 43 but\nthe Concise Columbia Encyclopedia says it was \"several\".  I've also\nheard some things about that but I won't dare repeat them.  You'd\nassert that I claimed they were truth.\n\n: Unless you also claim that the National Guard managed to cover it up. \n\n   Taking the tour after the riots, it was pretty easy to tell the \ndifference between Army and Guard troops.  Or so I recall from 26 \nyears ago.  And I seem to recall it was the Army running the tanks.\nSo it would have been an Army cover-up.\n\n   Another part of my memories was that while most damaged building\nwere burnt, some were in rubble.  Based on what I remember, I was and\nam inclined to believe an old sarge or two.\n\n: If your mind is open enough to believe that, well, good for you.  I prefer\n: to live in reality.   And here in reality, I find it hard to believe that\n: those tanks even had any shells, much less fired them.\n\n   Given the level in destruction in Detroit, I'm quite willing to believe\nthat they did fire their guns.\n\n   Now then, we've bored the shit out of anyone whose bothered to read\nthis far and all you've managed to say is that you don't believe the\naccount I cited.\n\n: --John L. Scott\n\n                                  -- wes\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8725, "properties": {"category": "sci.med", "text": "From: szikopou@superior.carleton.ca (Steven Zikopoulos)\nSubject: Re: prozac\nOrganization: Carleton University\nLines: 14\n\nIn <C5L2x5.4B7@eis.calstate.edu> agilmet@eis.calstate.edu (Adriana Gilmete) writes:\n\n>Can anyone help me find any information on the drug Prozac?  I am writing\n>a report on the inventors , Eli Lilly and Co., and the product.  I need as\n>much help as I can get.   Thanks a lot, Adriana Gilmete.\n\nPDR and CPS are good places to starts.\n\ndo a medline search... lots of interesting debates going on (remember\nwhen Prozac was impicated in suicidal behaviour?)\n\nsteve z\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8726, "properties": {"category": "rec.autos", "text": "From: jwg@sedv1.acd.com ( Jim Grey)\nSubject: Re: Necessity of fuel injector cleaning by dealership\nOrganization: Hell                                           \nLines: 19\n\nIn article <1993Apr2.174850.6289@cbnewsl.cb.att.com> prm@cbnewsl.cb.att.com (paul.r.mount) writes:\n>\n>In your experience, how true is it that a fuel injector cleaning\n>will do much more good than just using detergent gas.   While I\n>agree that a clogged fuel injector would darken my day, how clogged\n>do they get, and is $59 a good price (or can I do it myself by buying\n>a can of ____ (what?) and doing ___ what?\n\n\nA \"fuel injector cleaning\" at the dealer is probably little more than\nthem opening your gas tank, dumping in a bottle of fuel injector cleaner,\nand sending you on your merry way $59 poorer.  Go to KMart and buy the\ncleaner yourself for $1.29.\n \nJust because you dealer sez you need it, don't mean it's necessarily so.\nBe suspicious.\n \njim grey\njwg@acd4.acd.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8727, "properties": {"category": "misc.forsale", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Re: VHS movie for sale\nOrganization: Georgia Institute of Technology\nLines: 14\n\nIn article <1qvk1u$jnu@bigboote.WPI.EDU> martimer@jaguar.WPI.EDU (the random one...) writes:\n>>Dance with Wovies\t($12.00)\n>\t    ^^^^^^ what the  hell ios a 'wovie' ?? (wovy (sp))??\n\t\t\t\t  ^^^\n\t\t           what the hell is 'ios'? \n\nFix your own typos before you blame others....\n\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8728, "properties": {"category": "talk.politics.guns", "text": "Subject: thanks to poster of NY Times article on ATF in Texas\nFrom: kim39@scws8.harvard.edu (John Kim)\nDistribution: world\nOrganization: Harvard University Science Center\nNntp-Posting-Host: scws8.harvard.edu\nLines: 12\n\n\ngood job to whoever posted the article.  I'd\nbeen saving that NYTimes edition for a while, planning to ytpe it\nin myself, but now I don't have to.\n\nFor all of those people who were worried about whether or not\nthe media would even question the raid, we owe it to the\nNY Times (despite their rabidly anti-gun editorials) for \nbeing willing to talk to these 4 BATF  agents.\n\n-Case Kim\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8729, "properties": {"category": "sci.space", "text": "From: Andrew Rogers <rogers@ial3.jsc.nasa.gov>\nSubject: Re: Life on Mars???\nX-Xxdate: Wed, 21 Apr 93 16:03:51 GMT\nOrganization: Lockheed Engineering & Sciences Company\nX-Useragent: Nuntius v1.1.1d17\nLines: 9\n\nIn article <1993Apr20.120311.1@pa881a.inland.com> Don Schiewer,\nschiewer@pa881a.inland.com writes:\n>What is the deal with life on Mars?  I save the \"face\" and heard \n>associated theories. (which sound thin to me)\n>\n>Are we going back to Mars to look at this face agian?\n>Does anyone buy all the life theories?\n\ntry   alt.alien.visitors\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8730, "properties": {"category": "rec.sport.baseball", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: And America's Team is....But Why?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 20\n\nkingoz@camelot.bradley.edu (Orin Roth) writes:\n\n>   Well, my guess is because America loves underdogs. Every year, no matter\n>   the Cubs' talent or the predictions, they never (as close to never as\n>   possible) win anything. Over the years, as the losing has mounted, America\n>   has fallen in love with these perennial losers. The Cubs have more fans\n>   in Chicago then some teams do worldwide. The Cubs have more fans \n>   worldwide than most of the teams in their division combined. \n>   An aura of excitement surrounds the Cubs at the beginning of the season\n>   like no one else. (including the WS champs) It must be that Eternal Hope.\n\nActually I admired the spirit of the fan at the Cubs opener several years\nago who held up a sign that said \"Wait Till Next Year\".\n\n-----\nEric Smith\t    | \"He threatened me! If it was a President of the\nerics@netcom.com    |  United States you'd investigate! ... What's the\nerics@infoserv.com  |  difference? I'm a Comedian of the United States!\"\nCI$: 70262,3610\t    |\t\t- Jerry Seinfeld\n \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8731, "properties": {"category": "talk.politics.misc", "text": "From: kbanaian@bernard.pitzer.claremont.edu (King Banaian)\nSubject: Re: Swimming pool defense\nLines: 24\nOrganization: Pitzer College\n\nIn article <1993Apr17.201310.13693@midway.uchicago.edu> thf2@kimbark.uchicago.edu (Ted Frank) writes:\n>In article <dasmith.734719640@husc.harvard.edu> dasmith@husc8.harvard.edu (\nDavid Smith) writes:>>Granted, the simple fact of holding down a job will \nimprove these kids' chances>>of getting another job in the future, but what \ninner city kid would want to hold>>down just one more minimum wage job when \nthere is so much more money to be made>>dealing drugs?  \n>\n>What suburban kid would want to hold down a minimum wage job when there is so\n>much more money to be made dealing drugs?\n>\n>Yet, somehow, surburban kids do hold down minimum wage jobs.  So do inner\n>city kids, when give the chance.  Any reason you think that inner city kids\n>are incapable of doing legitimate work?\n\nI suppose the correct answer is not \"family values\"?\n\nS'pose not.  Never mind.  Sorry.\n\n--King \"Sparky\" Banaian                 |\"It's almost as though young\nkbanaian@pitzer.claremont.edu           |white guys get up in the\nDept. of Economics, Pitzer College      |morning and have a big smile\nLatest 1993 GDP forecast:  2.4%         |on their face ... because,\n                                        |you know, Homer wrote the\n                                        |_Iliad_.\"  -- D'Souza\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8732, "properties": {"category": "comp.windows.x", "text": "From: rgooch@rp.CSIRO.AU (Richard Gooch)\nSubject: Re: Animation with XPutImage()?\nOrganization: CSIRO Division of Radiophysics/Australia Telescope National Facility\nLines: 51\n\nIn article <1993Apr22.092830.2190@infodev.cam.ac.uk>, dcr@mail.ast.cam.ac.uk (Derek C. Richardson) writes:\n> I just implemented this and it seems I can just about achieve the display\n> rates (20 400x400x8 frames / sec on IPX) that I get with Sunview, though\n> it's a bit \"choppy\" at times. Also, loading the data, making an XImage,\n> then XPut'ing it into a pixmap is a bit cumbersome, so the animation is\n> slower to load than with Sunview. Is there a better way to load in the\n> data?\n> \n> rgooch@rp.CSIRO.AU (Richard Gooch) writes:\n> >  If you need speed, and your client can run on the same host as the X server,\n> >  you should use the shared memory extension to the sample X server (MIT-SHM).\n> >  xdpyinfo  will tell you if your server has this extension. This is certainly\n> >  available with the sample MIT X server running under SunOS.\n> >  A word of warning: make sure your kernel is configured to support shared\n> >  memory. And another word of warning: OpenWindows is slower than the MIT\n> >  server.\n> >  I have written an imaging tool (using XView for the GUI, by the way) which\n> >  yields over 10 frames per second for 512*512*8 bit images, running on a Sparc\n> >  IPC (half the cpu grunt of an IPX). This has proved quite sufficient for\n> >  animations.\n> >\n> >\t\t\t\tRegards,\n> >\n> >\t\t\t\t\tRichard Gooch....\n> \n> Shared memory PutImage (also mentioned by nkissebe@delphi.beckman.uiuc.edu,\n> Nick Kisseberth) looks interesting, but I need someone to point me to some\n> documentation. Is this method likely to give better results than server-\n> resident pixmaps? I'd also be interested in looking at the XView code\n> mentioned above...\n> \n> Thanks for the help so far. If I get something decent put together, I'll\n> definitely post it to the Net.\n> \n\n  The MIT tapes come with documentation written by Keith Packard on the Shared\n  Memory Extension to X. Look in:  mit/doc/extensions/mit-shm.ms\n  I found this invaluble. Unfortunately, there is a bit of work to set up the\n  shared memory segments, making an XImage from it, etc. Also, there is an\n  extension query to determine if the server supports it, but you still need to\n  test if the server is running on the same host and if shared memory is enabled\n  in the kernel. I have written layers of convience routines which make all this\n  transparent.\n  As for the XView code, well, I doubt that would be considered interesting.\n  The interesting stuff is done in a C object library. People interested in this\n  code can Email me.\n\n\t\t\t\tRegards,\n\n\t\t\t\t\tRichard Gooch,\n\t\t\t\t\trgooch@atnf.csiro.au\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8733, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: Mogilny must be benched.\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nLines: 19\n\nIn article <wong.734890713@sfu.ca> wong@fraser.sfu.ca (Sam S. Wong) writes:\n>> About 4 or 5 weeks ago I read in the Toronto Sun a quote from Alex; it\n>> went something like [sarcastically]:\n>> \"Yep, Patty's the man.  He's responsible for the team's success...I'm a \n>> nobody around here.\"\n\n>How can you assume it was a sarcastic remark?\n>For someone whose first language is not English, I would interpret\n>that comment to mean that he believes Pat is the MVP on the team and that\n>he is just one of the other normal players.  Quite modest I might say.\n\nWell, I don't recall assuming anything, except perhaps that the columnist \nwho reported the incident was telling the truth i.e. the sarcastic impression\ncame from _him_ (Steve Simmons?).  Besides, to my knowledge Alex has a pretty\nfair grasp of the English language...and his recent comment after the Detroit\ngame would indicate that this remark _is_ what I think it to be.  Very low.\n\n\ndchhabra@stpl.ists.ca\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8734, "properties": {"category": "talk.religion.misc", "text": "From: bcash@crchh410.NoSubdomain.NoDomain (Brian Cash)\nSubject: Re: Are atoms real? (was Re: After 2000 years blah blah blah)\nNntp-Posting-Host: crchh410\nOrganization: BNR, Inc.\nLines: 15\n\nPetri and Mathew,\n\nYour discusion on the \"reality\" of atoms is interesting, but it\nwould seem that you are verging on the question \"Is anything real\":\nthat is, since observation is not 100% reliable, how can we say\nthat anything is \"real\".  I don't think this was the intention\nof the original question, since you now define-out the word\n\"real\" so that nothing can meet its criteria.\nJust a thought.\n\nBrian /-|-\\\n\nPS  Rainbows and Shadows are \"real\": they are not objects, they\nare phenomenon.  An interesting question would be if atoms\nare objects (classical) or phenomenon (neo-quantum) or what?\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8735, "properties": {"category": "alt.atheism", "text": "From: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nSubject: Re: <Political Atheists?\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 34\n\nIn article <1993Apr15.150938.975@news.wesleyan.edu> SSAUYET@eagle.wesleyan.edu (SCOTT D. SAUYET) writes:\n>In <1qabe7INNaff@gap.caltech.edu> keith@cco.caltech.edu writes:\n>\n>>> Chimpanzees fight wars over land.\n>> \n>> But chimps are almost human...\n>> \n>> keith\n>\n>Could it be?  This is the last message from Mr. Schneider, and it's\n>more than three days old!\n>\n>Are these his final words?  (And how many here would find that\n>appropriate?)  Or is it just that finals got in the way?\n>\n\n  No. The christians were leary of having an atheist spokesman\n  (seems so clandestine, and all that), so they had him removed.  Of\n  course, Keith is busy explaining to his fellow captives how he\n  isn't really being persecuted, since (after all) they *are*\n  feeding him, and any resistance on his part would only be viewed\n  as trouble making.  \n\n  I understand he did make a bit of a fuss when they tatooed \"In God\n  We Trust\" on his forehead, though.\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8736, "properties": {"category": "rec.autos", "text": "From: chriss@netcom.com (Chris Silvester)\nSubject: Re: SHO and SC\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 39\n\nIn article <1993Apr16.193553.27118@mksol.dseg.ti.com> a207706@moe.dseg.ti.com (Robert Loper) writes:\n>In article <C5L8rE.28@constellation.ecn.uoknor.edu> callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>>In article <1993Apr15.232412.2261@ganglion.ann-arbor.mi.us> david@ganglion.ann-arbor.mi.us (David Hwang) writes:\n>>\n>>I would be willing to bet that if we removed the automatic\n>>transmissions from all \"performance-type\" cars (like the 5.0l\n>>Mustangs, Camaros, and the like) we'd cut down on the number of\n>>accidents each year. Autos are fine for sedate little sedans,\n>>but they have no business in performance cars, IMHO.\n>>\n>>\t\t\t\tJames\n>>\n>I have to disagree with this.  I have a 92 Z28 with a 350 and a 4-speed auto\n>w/ overdrive, and it is really better that way.  Chevy autos are reknowned\n>for their long life and ability to handle copious amount of power.  I live \n>in the Dallas area, and a manual would be much harder to drive in the traffic \n>here.  Now if I still lived out in the sticks like I used to, a manual would be\n>more fun.  \n>\nI don't know if it's as much an issue of their ablility to handle the\npower as it is the power they lose (in the torque converter, etc).\n\n>Safety-wise, an auto is less distracting...I would hate to have to be    \n>shifting gears while I was trying to ease into traffic in the freeways here.\n>Performance-wise, I can hold my own against any stock 5.0 Mustang or 5.0\n>Camaro w/ a five speed.  \n>\nHowever, if you encounter a '93 Formula with 5.7L & 6-Speed Manual,\nYou'll be SOL, I'm afraid. ;) BTW, I know of what I speak as a former\nowner of a 5.7L Auto IROC (1989) and current owner of the\naforementioned car... \n \nChris S. \n-- \n--------------------------------------------------------------------------------\nChris Silvester      | \"Any man capable of getting himself elected President\nchriss@sam.amgen.com |  should by no means be allowed to do the job\"\nchriss@netcom.com    |   - Douglas Adams, The Hitchhiker's Guide to the Galaxy\n--------------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8737, "properties": {"category": "rec.autos", "text": "From: hanguyen@megatest.com (Ha Nguyen)\nSubject: Re: Changing oil by self.\nOrganization: Megatest Corporation\nLines: 22\n\nIn article <1993Apr14.203800.12566@progress.com> damelio@progress.COM (Stephen D'Amelio) writes:\n>bmoss@grinch.sim.es.com (Brent \"Woody\" Moss) writes:\n>\n>>You could take a screw driver and hammer and start punching holes in\n>>various locations and when some black slippery stuff starts pouring\n>>out then you would know that the oil drain plug is nearby (within a foot\n>>or two anyway). Close the holes with toilet paper before refileing with oil\n>>though.\n>\n>You have to *refill* the engine with oil! Wow, no wonder I can't get\n>an engine to last more than my first oil change. Don't forget to\n>punch holes in the radiator too, it will spray nice refreshing water\n                    ^^^^^^^^\n>on the engine and keep it nice & cool. ;-)\n>\n>-Steve\n\nGee, you really make me confused.  What is radiator?  Where is it located?\nWhat does it look like?  Will it release any radiation (since it sounds \nlike radia-tion genera-tor) when you punch holes?\n\nhanguyen\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8738, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Biosphere II\nOrganization: Express Access Online Communications USA\nLines: 22\nNNTP-Posting-Host: access.digex.net\n\nIn article <19930419.062802.166@almaden.ibm.com> nicho@vnet.ibm.com writes:\n|In <1q77ku$av6@access.digex.net> Pat writes:\n|>The Work is privately funded,  the DATA belongs to SBV.  I don't see\n|>either george or Fred,  scoriating IBM research division for\n|>not releasing data.\n|   We publish plenty kiddo,you just have to look.\n\n\nNever said you didn't publish, merely that there is data you don't\npublish,  and that no-one scoriates you for those cases.  \n\nIBM research  publishes plenty, it's why you ended up  with 2 Nobel\nprizes in the last 10 years,  but that some projects are deemed\ncompany confidential.  ATT Bell Labs,  keeps lots of stuff private,\nLike Karamankars algorithm.  Private moeny is entitled to do what\nit pleases, within the bounds of Law,  and For all the keepers of the\ntemple of SCience,  should please shove their pointy little heads\nup their Conically shaped Posterior Orifices.   \n\npat\n\n\twho just read the SA article on Karl Fehrabend(sp???)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8739, "properties": {"category": "sci.med", "text": "From: mckay@alcor.concordia.ca (John McKay)\nSubject: Lasers for dermatologists\nOriginator: mckay@alcor.concordia.ca\nNntp-Posting-Host: alcor.concordia.ca\nOrganization: Concordia University, Montreal, Quebec\nLines: 15\n\n\nHaving had limited tinea pedis for more than 30 years, and finding\nit resistant to ALL creams and powders I have tried, I wonder why\ndermatologists do not use lasers to destroy the fungus. It would\nseem likely to be effective and inexpensive. Are there good reasons\nfor not using lasers?\nI was told that dermatology had not yet reached the laser age.\n\nJohn McKay\nvax2.concordia.ca\n\n-- \nDeep ideas are simple.\n                      Odd groups are even.\n                                           Even simples are not.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8740, "properties": {"category": "rec.sport.hockey", "text": "From: vzhivov@superior.carleton.ca (Vladimir Zhivov)\nSubject: Flames Truly Brutal in Loss\nOrganization: Carleton University\nLines: 28\n\nAs the subject suggests the Flames were not impressive this afternoon,\ndropping a 6-3 decision to the LA Kings. Most of the Flames neglected\nto show up, especially in their own zone, as the Kings hit at least\nfive posts! The Flames best line was probably\nSkrudland-Paslawski-Berube (which tells how bad the Flames were). Gary\nSuter scored a great goal (in fact all three Flame goals were scored\nby D-men - Yawney and Dahlquist getting the others), but also made\nsome bonehead plays. For the Kings, Pat Conacher was especially\nimpressive. \n\nThe games was VERY chippy, as Dan Mirouelli lost control early and\nnever recovered it; there were high-sticks, cross-checks, punches,\nhits from behind. Fleury got a game misconduct for rubbing out Warren\nRychel from behind. Flames dominated the game physically, but failed\nto take advantage due to horrendous defensive lapses (I don't think\nVernon can be blamed for any of the goals). Calgary went with 7 D-men,\nas Roger Johansson played LW; he looked lost IMHO - I hope King\ninserts Chris Lindbergh, Paul Kruse, or Sergei Makarov for Wednesday's\ngame. Gretzky left the game in the 2nd period with a charley-horse; no\nidea how serious - he didn't return.\n\nI still think the Flames should win this series, but they better\nbuckle down.\n\n- Vlad the Impaler\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8741, "properties": {"category": "sci.space", "text": "From: jdnicoll@prism.ccs.uwo.ca (James Davis Nicoll)\nSubject: Re: New planet/Kuiper object found?\nOrganization: University of Western Ontario, London\nDistribution: sci\nNntp-Posting-Host: prism.engrg.uwo.ca\nLines: 20\n\nIn article <STEINLY.93Apr23130246@topaz.ucsc.edu> steinly@topaz.ucsc.edu (Steinn Sigurdsson) writes:\n>In article <1r9de3INNjkv@gap.caltech.edu> jafoust@cco.caltech.edu (Jeff Foust) writes:\n>\n>   In a recent article jdnicoll@prism.ccs.uwo.ca (James Davis Nicoll) writes:\n>   >\tIf the  new  Kuiper belt object *is*  called 'Karla', the next\n>   >one  should be called 'Smiley'.\n>\n>   Unless I'm imaging things, (always a possibility =) 1992 QB1, the Kuiper Belt\n>   object discovered last year, is known as Smiley.\n>\n>As it happens the _second_ one is Karla. The first one was\n>Smiley. All subject to the vagaries of the IAU of course,\n>but I think they might let this one slide...\n\n\tGee, I feel so ignorant now...\n\n\tResearch, then post.\n\n\t\t\t\t\t\t\tJames Nicoll\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8742, "properties": {"category": "rec.motorcycles", "text": "From: egreen@east.sun.com (Ed Green - Pixel Cruncher)\nSubject: Re: Countersteering_FAQ please post\nOrganization: Sun Microsystems, RTP, NC\nLines: 26\nDistribution: world\nReply-To: egreen@east.sun.com\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article L2A@well.sf.ca.us, pstone@well.sf.ca.us (Philip K. Stone) writes:\n>\n>Hey Ed, how do you explain the fact that you pull on a horse's reins\n>left to go left?  :-)  Or am I confusing two threads here?\n\nThree, actually.  I believe I discussed countersteering a horse\nbefore.\n\nBasically, there are two ways to steer a horse, plow-rein and\nneck-rein.  Plow-reining steers him by keeping the reins separate, and\nyou pull in the direction you wish to go.  Neck-reining steers a horse\nby holding the reins together in one hand, and pulling against the\nhorse's neck in the direction you wish to go.  When training a\nplow-steering horse to neck-rein, one technique is to cross the reins\nunder his necks.  Thus, when neck-reining to the left, the right rein\npulls against the right side of the neck, but the left side of the bit\n(which the horse is used to from his plow-reining days).\n\nAre you sorry you asked yet?\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8743, "properties": {"category": "rec.motorcycles", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U56673@uicvm.uic.edu>\nSubject: buying advice needed\nLines: 18\n\nI am looking for advice on buying a susuki GS1100E.  does anyone out there\nknow about any inherent flaws the bike may have or problems i should look\nfor?\nwhat about insurance rates (is this bike blacklisted)?\nalso, as a person who has never ridden a motorcycle yet is buying a 1100\nto start off with.... am I crazy?  I have been told by some people to start out\nsmall.... and by others that i am lage enough to handle an 1100 right off from\nthe start (6'4\" 210 pounds) because some others might be a tad bit small.\n\nOh yeah, one more question.  Anybody in the chicago area know of any good\ninstruction schools or programs where i could get aquanted before i just go\nbuy one and kill myself getting it home.\n\nthanks,\n   brian\n\np.s. please email me direcly because i do not get much of a chance to read your\ngroup...   thanks again.. :)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8744, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Bungee After Dark module uploaded\nFrom: ajbennett@miavx1.acs.muohio.edu (Andrew Bennett)\nOrganization: Spandex Admirers Intl.\nLines: 17\n\nHey folks!\n\nJust moments ago, I uploaded the Bungee Jumper After Dark module that\nwas widely talked about on here some time ago.\n\nIt's at ftp.cica.indiana.edu, in /pub/pc/win3/uploads, titled simply\nbungee.zip.\n\nBe sure to set your ftp connection to binary mode before downloading.\nIf you have any other After Dark shareware/freeware modules, please\nupload them too.  The more the merrier.\n\n\nAndrew\n--\n\nAndrew Bennett   ajbennett@miavx1.acs.muohio.edu    What planet are you from?\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8745, "properties": {"category": "misc.forsale", "text": "From: kpeterso@nyx.cs.du.edu (Kirk Peterson)\nSubject: Hewlett Packard DeskJet 500 inkjet printer for sale...\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 43\n\n\nFor Sale ...:\n \n        Hewlett Packard DeskJet 500 inkjet printer.\n \n        o Perfect condition both internally and externally\n        o Comes with two FULL ink cartridges\n        o Less than six months old\n        o Comes with all original packaging, manuals, cables\n          and software\n \n        This is truly an excellent printer and is the low-cost\n        alternative to a laser printer.  It prints with the\n        quality of a laser printer, but for a fraction of both\n        the inital cost and he long term cost (that is,\n        replacement of ink cartridges as opposed to replacement\n        of toner).  The printer prints at a maximum of 300*300\n        (D)ots (P)er (I)nch (D.P.I.) on many different types\n        and sizes of paper, including envelopes and\n        transperencies.  Printer prints in both landscape and\n        portrait modes.  Printer can accept up to two\n        cartridges giving it things like more memory or\n        additional fonts.  Printer works excellently with\n        Windows and DOS and brings TrueType to its full\n        potential.\n \n        I originally purchased the printer for $375.00.  Make me\n        an offer, but I would prefer to stay in the $300.00\n        range.  I will pay the shipping to anywhere in the \n        continental U.S.A.\n \n        If you are interested, please either leave me email or\n        call Kirk Peterson at (303) 494-7951 anytime.\n \n        Thanks!\n \n\n\n        P.S. The printer will work with any computer that\n             can accept a standard parallel or serial\n             connection.  (That is, IBM, Amiga, etc.)\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8746, "properties": {"category": "misc.forsale", "text": "Subject: Wanted restaurant equipment\nFrom: smp@cerc.wvu.edu (Shailesh M. Potnis)\nOrganization: Concurrent Engineering Research Center\nNntp-Posting-Host: cathedral.cerc.wvu.edu\nLines: 17\n\nWanted restaurant equipment for starting a new restaurant\n\n1) 4-6 Burner Stove\n2) Hot Plate\n3) Fryer\n4) Stainless Steel tables, Shelves etc\n5) Pots n Pans\n\nand a number of other items\n\nIf interested, pl. email\n\nShailesh\n\n-- \nShailesh Potnis, Associate\t|Concurrent Engineering Research\nMember of Technical Staff\t|Center, West Virginia University\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8747, "properties": {"category": "rec.autos", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Changing oil by self.rist, another dealer service scam...\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 21\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, bmoss@grinch.sim.es.com (Brent \"Woody\" Moss) says:\n\n\n>\n>I was worried about someone stealing my oil once also. I finally \n>decided to just have my drain plug welded shut. It works great !\n>I figure that when I add three or four quarts when the oil light\n>comes on every month or so that it's just as good or better than\n>the old wives tale of changing the oil AND filter every 3000 miles.\n>Works for me, I must say. \n>\n\nI did the same thing to my drain plug for the same reasons.  I was wondering\nhow you filled your crankcase though as I welded my hood shut also out of fear\nthat somebody might steal my air-filter.\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8748, "properties": {"category": "misc.forsale", "text": "From: gt4661a@prism.gatech.EDU (gt4661a gt4661a PAOLO,MARC ANTHONY)\nSubject: Computer For Sale\nDistribution: atl\nOrganization: Georgia Institute of Technology\nLines: 5\n\n-- \nPAOLO,MARC ANTHONY\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:     ...!{allegra,amd,hplabs,ut-ngp}!gatech!prism!gt4661a\nInternet: gt4661a@prism.gatech.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.415+0000", "event": "documents", "entityId": 8749, "properties": {"category": "talk.politics.guns", "text": "From: jrm@gnv.ifas.ufl.edu\nSubject: Re: Ban All Firearms !\nLines: 40\n\nIn article <1993Apr14.183025.29688@sco.com>, allanh@sco.COM (Allan J. Heim) writes:\n> \n> papresco@undergrad.math.uwaterloo.ca (Paul Prescod):\n> \n>    >Drugs are banned, please tell me when this supply will dry up?\n> \n>    Drugs are easier to manufacture, easier to smuggle, easier to hide.\n>    No comparison.\n> \n> Then let's use another example--alcoholic beverages.  Bottles of whiskey\n> are larger, heavier, and more fragile than bags of drugs.  Barrels and\n> kegs are larger and heavier still, and are difficult to manipulate.\n> Yet, a lot of people managed to get very rich off of the smuggling of\n> booze into this country during the years of Prohibition.  There was a\n> demand, so an entire industry formed to supply it.\n\n\tIf alcohol were again banned today, it would be MUCH more\n\tdifficult to manage a large-scale smuggling operation. \n\tThe cops now rank just a narrow notch below the military\n\tin communications, intelligence gathering and firepower.\n\n\tIn a similar vein, the amount of marijuana smuggled into\n\tthis country has greatly decreased. This is because its\n\tvalue-per-pound is very low when compared to cocaine or\n\theroin. It's simply not worth the risk, it's uneconomical.\n\tNow, most reefer is domestic. There is less pressure on\n\tthe domestic producer (showy raids notwithstanding) and\n\tthus it is economical. Of note though ... domestic reefer\n\tis now very strong, so a small volume goes a long way.\n\tYou cannot make alcohol stronger than 200 proof - not a\n\tgood dollar/pound deal. \n\n\tFirearms tend to fall into this low dollar/pound area.\n\tIt would not be economic to smuggle them in. All production\n\twould have to be local. There are not all that many people\n\twho have both the skill AND motivation to assemble worthwhile\n\tfirearms from scratch. High-ranking crime figures could\n\tobtain imported Uzis and such, but the average person, and\n\taverage thug, would be lucky to get a zip-gun - and would\n\tpay through the nose for it. \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8750, "properties": {"category": "talk.politics.misc", "text": "From: kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm)\nSubject: Re: NC vs Hunt (Marine Gay Bashing in Wilmington NC) verdict\nOrganization: University of Illinois at Urbana\nLines: 15\n\ntfarrell@lynx.dac.northeastern.edu (Thomas Farrell) writes:\n>>So you feel that the defendents should have been convicted regardless of the\n>>evidence. Now that would truely be a sad day for civil rights.\n\n>I don't know about everybody else, but to me, they should have been\n>convicted BECAUSE of the evidence, which in my mind was quite\n>sufficient.\n\n\n\n    So, you sat in the court room and listened to the case.  After careful\nconsideration, you have come to your conclusion.  Well, good for you.\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8751, "properties": {"category": "misc.forsale", "text": "From: davidson@mail.sas.upenn.edu (David Davidson)\nSubject: Portable Color T.V. $160\nDistribution: usa\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 20\nNntp-Posting-Host: mail.sas.upenn.edu\n\n\nHey,\n \n        I have a Color Watchman by SONY for sale. It is 6\"x3\"x1\" in total\nand the screen is 2.75\" diagonal, over 2\" wide, over 1.5\" tall. I got it 2\nyears ago for $320, so I'm asking $160 obo.\n \n        * VHF and UHF switch for channels 2 through 69.\n        * slot for Audio/Video in from VCR (appropriate cord provided)\n        * slot for phones\n        * slot for A/C adaptor (A/C adaptor also provided)\n        * slot for external Antenna (internal antenna provided)\n        * On/Off switch\n        * Manual Tuning, Volume, Brightness and Hue\n        * Battery run as well (4 AA batteries provided)\n \nIt's been used very little. Looks like new. Email if interested.\n\n-dave\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8752, "properties": {"category": "talk.politics.misc", "text": "From: kevin@rotag.mi.org (Kevin Darcy)\nSubject: Re: Who be Conservative on this.....\nOrganization: Who, me???\nLines: 31\n\nIn article <1993Apr5.005204.29158@mnemosyne.cs.du.edu> mcochran@nyx.cs.du.edu (Mark A. Cochran) writes:\n>kevin@rotag.mi.org (Kevin Darcy) writes:\n>>In article <1993Apr2.155820.16998@mnemosyne.cs.du.edu> mcochran@nyx.cs.du.edu (Mark A. Cochran) writes:\n>>>\n>>>The SC allows restrictions after 'viability' (a term never medically defined) \n>>                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>>\n>>Any physician who can't make a reasonable stab at determining whether a given\n>>fetus is viable or not is not qualified to perform an abortion. \n>\n>Kebbin shows that he does not know the difference between determining\n>the viability of an *individual* fetus, and providing the \"universally\n>accepted medical definition[s] of viability\" \n\nI was not discussing \"universal\" definitions in this post, Mark. Please\nrefrain from dragging in irrelevancies.\n\nDo you agree with my statement above about physicians being unqualified if\nthey can't determine viability?\n\n>>Since we know\n>>that there are SOME physicians out there who are qualified to perform \n>>abortions, then obviously SOME medical definition of \"viability\" is being \n>>employed. \n>\n>On an case by case basis, viability is relatively easy to determine.\n\nAnd that's good enough for the law, Mark. So why do you keep whining that\nviability \"isn't defined\"? What purpose does your whining serve?\n\n\t\t\t\t\t\t\t\t- Kevin\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8753, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U49839@uicvm.uic.edu>\nSubject: Re: White Sox Update\n <1993Apr11.213102.4954@midway.uchicago.edu>\nLines: 9\n\ni think lamont is tryin sax out in left because he is messing with his\nmind.  he is trying to stir loose the mental block that he has had.\nsax was supposed to play in left last night (4-14) but we were rained\nout.  it's not like we need to add any more outfielders to our team.\n\nit's mental\n\njimmy\ngo sox, cubs suck!  (that's the white sox, dontcha know?)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8754, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Revelations - BABYLON?\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 38\n\nRex (REXLEX@fnal.fnal.gov) writes:\n\n>It is also of interest to note that in 1825, on the occasion of a\njubilee, Pope >Leo the 12th had a medallion cast with his own image on\none side and on >the other side, the Church of Rome symbolized as a\n\"Woman, holding in >her left hand a cross, and in her right a cup with\nlegend around her, >'Sedet super universum',  'The whole world is her\nseat.\"\n\n\tYou read more into the medal than it is worth.  The Woman is the\nChurch.  Catholics have always called our Church \"Holy Mother Church\"\nand our \"Mother.\"  An example would be from St. Cyprian of Carthage, who\nwrote in 251 AD, \"Can anyone have God for his Father, who does not have\nthe Church for his mother?\"\n\tHence the image of the Church as a woman, holding a Cross and a Cup,\nwhich tell of the Crucifxition of Our Lord, and of the power of His\nBlood (the grail legend, but also, more significantly, it shows that\n\"This is the Cup of the New Covenant in my blood, which shall be shed\nfor you and for many.\" (Luke 22.20), the Cup represents the New Covenant\nand holds the blood of redemption).  The fact that the woman is holding\nboth and is said to have the whole world for her seat, is that the\nCatholic Church is catholic, that is universal, and is found throughout\nthe world, and the Church shows the Crucifixtion and applies the blood\nof redemption to all mankind by this spread of hers, thorugh which the\nHoly Sacrafice of the Mass, can be said and celebrated in all the\nnations as Malachi predicted in Malachi 1.11, \"From the rising of the\nsun to its setting, my name is great among the gentiles, and everywhere\nthere is sacrafice, and there is offered to my Name a clean oblation,\nfor my Name is great among the gentiles, says the Lord of hosts.\"  And\nso we acknowledge what St. Paul wrote \"For as often as you eat this\nbread and drink this cup, you show the Lord's death until he comes.\" (1\nCorinthians 11.26)\n\n\tYou are quite right about the identification of \"Babylon the Great,\nMother of all Harlots\" with Rome.  I think we simply disagree as to what\ntime period of Rome the Apostle John is talking about.\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8755, "properties": {"category": "talk.religion.misc", "text": "From: muttiah@thistle.ecn.purdue.edu (Ranjan S Muttiah)\nSubject: cults (who keeps them going ?)\nOrganization: Purdue University Engineering Computer Network\nLines: 9\n\n\nMr. Clinton said today that the horrible tragedy of the Waco fiasco\nshould remind those who join cults of the dangers of doing so.\nNow, I began scratching my head thinking (a bad sign :-), \"don't the \nmainstream religions (in this case Christianity...or the 7th day \nadventist in particular) just keep these guys going ? Isn't Mr. Clinton \ncondemning his own religion ? After all, isn't it a cult too ?\"\n\n... bad thoughts these.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8756, "properties": {"category": "talk.religion.misc", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: [lds] Gordon's Objections\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 38\n\nIn article <C5rp8K.Kw2@acsu.buffalo.edu> psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss) writes:\n>Gordon Banks quoted and added...\n>\n>gb> In article <C53L1s.D61@acsu.buffalo.edu>\n>gb>  psyrobtw@ubvmsd.cc.buffalo.edu (Robert Weiss) writes:\n>gb>\n>gb> >The Mormon Jesus is the spirit brother of Lucifer. That Jesus is God\n>gb> >the Father's first born spirit child. That Jesus was begotten on earth\n>gb> >through natural means, not by the Holy Ghost. That He sweat His blood\n>gb> >for our sins in the Garden of Gethsemane. That His blood cannot\n>gb> >cleanse from all sin. That He is now among many millions of other\n>gb> >gods. That Jesus is Jehovah and the Father is Elohim (in the OT\n>gb> >Jehovah and Elohim are the same). That He needed to be saved.\n>gb>\n\n\nIt is true that Mormons believe that all spirits (including Jesus,\nLucifer, Robert Weiss) are in the same family.  It does not mean\nthat Jesus was created, but rather that Lucifer and Robert Weiss\nwere not.  I agree that this is a \"heresy\".  So what?  \nThe sweating of blood in Gethsemene is\nnot a basic Mormon doctrine.  Jesus did not perform the atonement\nin Getheseme alone, as some anti-Mormons are trying to teach.  \nAs far as the \"unpardonable sin\" whatever that is, it is Biblical,\nand not specifically Mormon.  It is also called the sin against\nthe Holy Ghost.  Most Bible scholars (other than conservative\nones) do not believe Jehovah and Elohim were always the same.\nI'm sure you've heard of the J and the E texts?  I don't\nknow what you mean by \"That He needed to be saved\".  Jesus?\nJehovah?  Elohim?  In Mormon doctrine, Jesus was sinless,\nand thus did not \"need to be saved\".  \n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8757, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: Press Release on USIA Appointments\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 101\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n_________________________________________________________________\n\nFor Immediate Release                        April 15, 1993\n\n\n\n AMERICAN UNIVERSITY PRESIDENT JOSEPH DUFFEY NAMED TO HEAD USIA,\n        MICA TO CHAIR BOARD FOR INTERNATIONAL BROADCASTING\n\n\nWashington, D.C. -  President Clinton today announced his \nintention to nominate American University President and former \nState Department Assistant Secretary Joseph Duffey to be Director \nof the United States Information Agency. The President also \ndesignated Daniel Mica Chairman of the Board for International \nBroadcasting.\n     \n     \"Joe Duffey's expertise in the fields of education, \ncommunications and foreign affairs is vast and will serve him \nwell as he takes the helm at USIA and works to promote the ideals \nof democracy and freedom abroad,\" the President said. \n\n     President of American University in Washington, D.C. since \n1991, Duffey previously served nine years as Chancellor and \nPresident of the University of Massachusetts at Amherst. In 1977 \nhe served as Assistant Secretary of State, Education and Cultural \nAffairs in the State Department. Duffey served as Chairman of the \nNational Endowment for the Humanities under both Presidents \nCarter and Reagan. \n\n     In 1978 and 1980, Duffey served as a United States delegate \nto the General Conference of the United Nations Educational, \nScientific and Cultural Organization. In 1991, Duffey served as \njoint head of the U.S. Delegation observing national elections in \nEthiopia. \n\n     USIA, which celebrates its 40th anniversary this year, is an \nindependent foreign affairs agency within the executive branch \nthat explains and supports U.S. foreign policy and national \nsecurity interests abroad through a wide range of information \nprograms. Among the agency's programs are the Fulbright academic \nprogram, Voice of America, the Worldnet satellite television \nsystem and a network of overseas libraries and cultural centers.  \nThe agency has more than 210 posts in more than 140 countries.\n\n                              (more)\nPress Release\npg. 2\n\n\n\n\n     Mica becomes Chairman of the Board for International \nBroadcasting after serving as a member of the board since 1991.\n\n     \"Dan Mica has done an excellent job on the Board of \nInternational Broadcasting and I expect he will continue as \nchairman to promote the cause of democracy abroad,\" the President \nsaid.\n\n\n     Biographical sketches of the appointees follow:       \n\n\nJoseph Duffey has served as President of American University \nsince 1991. Prior to his tenure at American, Duffey served as \nChancellor and President of the University of Massachusetts at \nAmherst (1982 - 91) and as a Guest Scholar at the Brookings \nInstitution (1982). He served as Chairman of the National \nEndowment for the Humanities from 1977 - 82 and as Assistant \nSecretary of State, Education and Cultural Affairs with the \nDepartment of State in 1977. Duffey holds 14 honorary degrees \nfrom American colleges and universities. In 1980 he was named \nCommander of the Order of the Crown by the King of Belgium and he \nhas been a member of the Council of Foreign Relations since 1979. \nDuffey received a BA from Marshall University in 1954, a BD from \nthe Andover Newton Theological School in 1958, a STM from Yale \nUniversity in 1963 and a Ph.D. from the Harvard Seminary \nFoundation in 1969. Duffey is a member of the National Business-\nHigher Education Forum and a founder and co-chairman of the \nWestern Massachusetts Economic Development Conference. Duffey is \nmarried to Anne Wexler and has four sons.\n\n\nDaniel Mica is a former U.S. Representative from the 14th \nDistrict of Florida and has served on the Board of International \nBroadcasting since 1991. During his tenure in Congress from 1979 \n- 89 he served on the House Committee on Foreign Relations and \nwas appointed by President Reagan as the Congressional \nRepresentative to the United Nations. \n\n\n                           -30-30-30- \n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8758, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenians will not get away with the genocide of 204,000 Azeri people.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 163\n\nIn article <1993Apr20.190606.13801@kpc.com> henrik@quayle.kpc.com  writes:\n\nDA] Armenia is involved in fighting with Azarbaijan.  It is Armenian\nDA] soldiers from mainland Armenia that are shelling towns in Azarbaijan.\n\n>    Well, this is your opinion ! \n\nAre you related to 'Arromdian' of ASALA/SDPA/ARF Terrorism and Revisionism\nTriangle? If you feel that you can simply act as a fascist Armenian \ngovernmental crony in this forum you will be sadly mistaken and duly \nembarrassed. This is not a lecture to another historical revisionist \nand a genocide apologist, but a fact. This time, fascist x-Soviet Armenian \nGovernment will not get away with the genocide of 204,000 Azeri men, women \nand children. Not a chance.\n\n>\n The SUNDAY TIMES 8 March 1992\n>\n Morgues fill as Azeris head for all-out war\n -------------------------------------------\n>\n Thomas Goltz, the first to report the massacre by Armenian soldiers in\n the worst violence since the breakup of the Soviet Union, reports from\n Agdam\n ------\n>\n Khojaly used to be a barren town, with empty shops and treeless dirt\n roads. Yet it was still home to thousands of people who, in happier\n times, tended fields and flocks of geese. Last week it was wiped off\n the map.\n>\n .......\n>\n As sickening reports trickled in to the Azerbaijani border town of\n Agdam, and the bodies piled up in the morgues, there was little doubt\n that Khojaly and the stark foothills and gullies around it had been\n the site of the most terrible massacre since the Soviet Union broke\n apart.\n .......\n>\n I was the last Westerner to visit Khojaly. That was in january and\n people were predicting their fate with grim resignation. Zumrut Ezoya,\n a mother of four on board the helicopter that ferried us into the\n town, called her community \"sitting ducks, ready to get shot\". She and\n her family were among the victims of the massacre on February 26.\n .......\n>\n \"The Armenians have taken all the outlying villages, one by one, and\n the government does nothing.\" Balakisi Sakikov, 55, a father of five,\n said. \"Next they will drive us out or kill us all,\" said Dilbar, his\n wife. The couple, their three sons and three daughters were killed in\n the assault, as were many other people I had spoken to.\n ......\n>\n \"It was close to the Armenian lines we knew we would have to cross.\n There was a road, and the first units of the column ran across then\n all hell broke loose. Bullets were raining down from all sides. we had\n just entered their trap.\"\n>\n The azeri defenders picked off one by one. Survivors say that Armenian\n forces then began a pitiless slaughter, firing at anything moved in\n the gullies. A video taken by an azeri cameraman, wailing and crying\n as he filmed body after body, showed a grizzly trail of death leading\n towards higher, forested ground where the villagers had sought refuge\n from the Armenians.\n>\n \"The Armenians just shot and shot and shot,\" said Omar Veyselov, lying\n in hospital in Agdam with sharapnel wounds. \"I saw my wife and\n daughter fall right by me.\"\n>\n People wandered through the hospital corridors looking for news of the\n loved ones. Some vented their fury on foreigners: \" Where is my\n daughter, where is my son ?\" wailed a mother. \"Raped. Butchered. Lost.\"\n>\n Azerbaijan has said as many as 1,000 refugees were killed as they\n tried to flee. The Armenians have denied this, saying the civilians\n were caught in \"crossfire\".\n .......\n>\n\nSource: The Times, 2 March 1992.\n\nCORPSES LITTER HILLS IN KARABAKH\n\nANATOL LIEVEN COMES UNDER FIRE WHILE FLYING WITH AZERBAIJANI FORCES TO \nINVESTIGATE THE ALLEGED MASS KILLINGS OF REFUGEES BY ARMENIAN TROOPS...\n\nAs we swooped low over the snow-covered hills of Nagorno-Karabagh we saw \nthe scattered corpses. Apparently, the refugees had been shot down as \nthey ran. An Azerbaijani film of the places we flew over, shown to \njournalists afterwards, showed DOZENS OF CORPSES lying in various parts \nof the hills.\n\nThe Azerbaijanis claim that AS MANY AS 1000 have died in a MASS KILLING \nof AZERBAIJANIS fleeing from the town of Khodjaly, seized by Armenians \nlast week. A further 4,000 are believed to be wounded, frozen to death \nor missing... \n\nSeven of us squatted in the cabin of an Azerbaijani M24 attack helicopter \nas we flew to investigate the claims of the mass killings. Suddenly there \nwas a thump against the underside of the aircraft, a red flash of tracer \nripped past the starboard wing, and the helicopter rocked sharply. We \nswung round, and there was a deafening burst of fire from the cannon \nunder our wing as the helicopter crew returned fire.\n\nWe had been fired on from an Armenian anti-aircraft post. We swung round \nagain, tipped to starboard and appeared to dive straight down into a \nvalley. The brown earth swooped around our heads, the helicopter swung \nround again and followed the contours of the ground. Our cannon fired \nrepeated blasts.\n\nLater it emerged that a civilian helicopter that we had been escorting \nhad landed successfully at Nakhichevanik in the east of the disputed \nenclave of Nagorno-Karabakh, to pick up some of the dead. We had, in \nfact, been attacked both by ground fire and by an Armenian helicopter. \nI had seen the Armenian helicopter intermittently through the window, \nits cannons firing, but had thought - mistakenly - that it was on \n\"our side\". Our group of Western journalists had embarked on a \nsearch-and-rescue flight that had become a combat mission.\n\nOur flight consisted of the civilian passenger helicopter and two \nM24 Soviet attack helicopters in the Azerbaijani service, nicknamed \nflying crocodiles for their armour. Our party was in the second \ncrocodile. The civilian helicopter's job was to land in the mountains \nand pick up bodies at sites of the mass killings. The attack helicopters \nwere there to give covering fire if necessary.\n\nThe operation showed a striking sign of the disintegration of the Soviet \narmed forces because our pilot was a Russian officer. An Azerbaijani \nofficial told us that there were now five former Soviet military \nhelicopters -and their pilots- fighting for Azerbaijan. \"They have \nsigned contracts to fly for us,\" he said. The helicopter we engaged \nin combat was most probably flown by a brother-officer of our Russian \npilot, but fighting for the Armenians.\n\nWe had taken off just before 5pm on Saturday from Agdam airfield, an \nheated for the Armenian-controlled mountains of Karabakh, a sheer \nwhite wall in the distance. The civilian helicopter picked up four \ncorpses, and it was during this and a previous mission that an \nAzerbaijani cameraman filmed the several the several dozen bodies \non the hillsides. We then took off again in a hurry and speed back \ntowards Azerbaijani lines. Azerbaijani gunners on the last hill before \nthe plain - and safety - gazed up at us as we passed.\n\nBack at the airfield in Agdam, we took a look the bodies the \ncivilian helicopter had picked up. Two old men a small girl were \ncovered with blood, their limbs contorted by the cold and rigor \nmortis. They had been shot.\n\nWhat did our Russian pilot think of the tragedy, our close shave, \nand the war in Nagorno-Karabakh? He gave us CHEERFUL GRIN, POLITELY \nDECLINED TO ANSWER QUES TIONS, AND MARCHED OFF TO HIS DINNER.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8759, "properties": {"category": "misc.forsale", "text": "From: donald@dswalker.EBay.Sun.COM (Don Walker)\nSubject: Items for SALE\nArticle-I.D.: male.1ps3s4$6g\nReply-To: donald@dswalker.EBay.Sun.COM\nDistribution: world\nOrganization: Sun Microsystems, Inc.\nLines: 19\nNNTP-Posting-Host: dswalker.ebay.sun.com\n\n\n                        ITEMS FOR SALE\n\n\n\n1. Howard Miller Clock. It chimes like a grandfather clock. $250\n\n2. Painting- A Tiger in the snow. It is a beautiful painting, the tiger\n   looks like it can jump off of the canvas and get you. $200\n\n3. Mens Diamond Ring, size 10 - $500\na. 3 rows of diamonds\nb. 18k gold\n\nCall or email me.\n\nDonald Walker\nhm 408-263-3709\nwk 408-276-3618\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8760, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Disillusioned Protestant Finds Christ\nOrganization: Cookamunga Tourist Bureau\nLines: 23\n\nIn article <C5KxDD.K4J@boi.hp.com>, jburrill@boi.hp.com (Jim Burrill)\nwrote:\n> If Jesus never taught the concept of the Trinity, how do you deal with the \n> following:   \n> \n>    Mat 28 18 Then Jesus came to them and said, \"All authority in heaven\n>    and on earth has been given to me.\n> \n>    Mat 28 19 Therefore go and make disciples of all nations, baptizing\n>    them in the name of the Father and of the Son and of the Holy Spirit,\n> \n>    Mat 28 20 and teaching them to obey everything I have commanded you.\n>    And surely I am with you always, to the very end of the age.\" \n\nJim, please, that's a lame explanation of the trinity that Jesus provides\nabove. Baptizing people in the name of three things != trinity. If\nthis is the case, then I'm wrong, I assumed that trinity implies that\nGod is three entities, and yet the same.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8761, "properties": {"category": "misc.forsale", "text": "From: tpremo@mentor.cc.purdue.edu (Cinnamon Bear)\nSubject: Onkyo 55w/ch integrated amp forsale:\nOrganization: Purdue University Computing Center\nDistribution: usa\nLines: 18\n\nI have a Onkyo integrated amplifier that I am looking to get rid of.\n\t60w/ch\n\tintegra series \n\tworks great\n\tnot a problem\n\n\tAsking $100 OBO\n\n\tIf your interested call me at (317)743-2656  or email this address.\n\tMAKE ME AN OFFER!!!\n\t                 \nTodd\n\n-- \n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n (___________________________________ %   Todd Premo  \n         /              /      /      %   Purdue Universtiy \n       /    __\t __   / __   /        %   Environmental Engineering \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8762, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jeffh@ludwig.cc.uoregon.edu (Jeff Hite )\nSubject: Re: Mac Plus is constantly rebooting!\nArticle-I.D.: pith.1qk7nu$ra8\nOrganization: University of Oregon Network Services\nLines: 25\nNNTP-Posting-Host: ludwig.cc.uoregon.edu\n\nIn article <C5Hsyu.Dxq@hpuerca.atl.hp.com> russ@hpuerca.atl.hp.com (Russ  \nHodes) writes:\n> Tae Shin (tshin@husc8.harvard.edu) wrote:\n> : \n> : Basically, the Mac Pluses are constantly rebooting themselves, as if  \nthe\n> : reboot button were being pushed.  Sometimes the Mac is able to fully  \nboot\n> : and display the desktop, but it is only a matter of time before it  \nreboots\n> : again.  At times, the frequency is as high as several times a minute. \n> : \n>    I wonder if your Mac has those little \"RESET / INTERUPT\" switches\n>    installed.  They are plastic devices that push on the switches which\n>    are inside the mac.  Or mabey those switches are bad and need\n>    replacing.\n\nThis problem is usually a low +5 Vdc from the power supply, there is an  \nadjustment for this on the supply. If the voltage is still unstable or low  \nthen the culprit is probably a bad rectifier at CR20.\n\nJeff Hite\nComputing Center\nU of Oregon\njeffh@ludwig.cc.uoregon.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8763, "properties": {"category": "rec.sport.hockey", "text": "From: roney@selkirk.sfu.ca (Chris J. Roney)\nSubject: Re: div. and conf. names\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nDistribution: na\nLines: 33\n\nepritcha@s.psych.uiuc.edu ( Evan Pritchard) writes:\n\n\n>\tNo, I would not want to see a Ballard division.  But to say\n>that these owners are assholes, hence all NHL management people are\n>assholes would be fallacious.  Conn Smythe, for example, was a classy\n>individual (from what I have heard). \n\n     Depends on what you mean by classy. From what I've heard about\nhim, he was about as classy as Harold Ballard.  Only difference was\nthat back then almost all the owners were like that, so he seemed okay\nby comparison.  Read the book \"Net Worth\" for one view of what Smythe\n(and Norris and Adams and Campbell) were like. \n\n>\tAlso, isn't the point of \"professional\" hockey to make money\n>for all those involved, which would include the players.  What I think\n>you might be saying is that the players have not made as much money as\n>should have been their due, and it is the players that are what make\n>the game great not the people who put them on the ice, so naming\n>division after management people rather than players is adding insult\n>(in the form of lesser recognition) to injury (less money than was\n>deserved).   \n\n\n     Even more specifically, I think what Roger was saying (and I said\nit previously too) is that these are NOT the people who made the\nleague great, so why should divisions, conferences etc. be named after\nthem instead of Morenz, Vezina, Howe, Orr etc., the people who DID\nmake it great.  Instead, the NHL has chosen to immortalize the men who\ngot rich off of the men who made the game great.  \n\n-- \nChris Roney  (e-mail chris_roney@sfu.ca)\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8764, "properties": {"category": "rec.motorcycles", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Kawasaki 440 AE for sale.\nOrganization: Express Access Online Communications USA\nLines: 6\nDistribution: world\nNNTP-Posting-Host: access.digex.net\n\n\n\nIncluded in thas  sale is a Cover  .  THe cover is not sold separately.\nThe trailer is not being sold.   \n\npat\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8765, "properties": {"category": "sci.electronics", "text": "From: Wayne Alan Martin <wm1h+@andrew.cmu.edu>\nSubject: Re: Help with ultra-long timing\nOrganization: Senior, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 7\nDistribution: world\nNNTP-Posting-Host: po4.andrew.cmu.edu\nIn-Reply-To: <1pqk9b$ib4@sunb.ocs.mq.edu.au>\n\nSounds like a job for a universal time reciever.  I don't know the\nlogisitics of the situation, but if you could just place a reciever in\nsnow and place the oscillator in a nice lab somewhere else, your\nproblems should be solved.\nJust a suggestion.\n\nWayne Martin\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8766, "properties": {"category": "talk.politics.misc", "text": "From: stephen@orchid.UCSC.EDU ()\nSubject: Re: The Evidence\nOrganization: Santa Cruz\nLines: 59\nNNTP-Posting-Host: orchid.ucsc.edu\n\nIn article <15177@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n>In article <113567@bu.edu>, kane@buast7.bu.edu (Hot Young Star) writes:\n>> In article <cjkC4MCwp.8ox@netcom.com> cjk@netcom.com writes:\n># #If homosexuals did keep themselves in the privacy of their own home, this \n># #wouldn't be a problem.  However, there are various 'cliques' (sp?) that\n># #don't.  They want to present the argument that it is just as moral and\n># #right as heterosexuality.\n># \n># You know, I'm offended by newspapers publicly announcing weddings.\n># Heterosexuals should keep their nutpials out of the public eyes. They\n># should be banned from wearing wedding rings. From having legal recognition\n># of marriage.\n># \n># Anything that's public and sexual don't mix.\n>\n>The difference, of course, is that we are right, and you are wrong.\n>If you are a minority that wants freedom, it helps to not be \n>obnoxious about it.  It does not surprise me that as groups like\n\nTRANSLATION- you minorities stay in predesignated areas.  We the majority\nare 'right', anything you do is 'wrong', since might makes right, and\nthe majority always rules.\n\n>Queer Nation become increasingly belligerent in their public \n>demonstrations, that violence against homosexuals rises.  Anything\n>that reminds the crazies who like to beat up homosexuals of their\n>presence is going to aggravate things.\n\n\nOh- crime prevention at its best.  Well let's extrapolate this, maybe if \nyou didn't display all of your private property, then those nasty theifs\nwouldn't go after it.  And don't carry any money, that way those muggers\nwon't bother you.\n\n>\n>And you still don't realize that either way it is, says that homosexuals\n>are very dangerous to children.\n>\n># \n># So tell me---what's immoral about homosexuality?\n>\n>The promiscuity and fetishism that characterizes it.  The sexual\n>predatory component that glorifies the pursuit of \"candy-ass\" and\n>\"hairless cocks\" in the words of Le JoJo, the typical homosexual.\n\nOh I did not know that Le JoJo is a typical homosexual.\n\nStop making statements about something you know nothing about, that is\ngay people.  You make your sweeping generalizations with no grounding \nin reality.\n\n\nWhat I hope is not true- That you are a typical heterosexual.  Anyone want\nto comment on this?\n\nAnd if you are typical then I can start extrapolating a lot of interesting\nconjectures about heterosexuals.\n\n>-- \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8767, "properties": {"category": "talk.politics.mideast", "text": "From: backon@vms.huji.ac.il\nSubject: Re: From Israeli press. Madness.\nDistribution: world\nOrganization: The Hebrew University of Jerusalem\nLines: 165\n\nIn article <1483500342@igc.apc.org>, Center for Policy Research <cpr@igc.apc.org> writes:\n>\n> From: Center for Policy Research <cpr>\n> Subject: From Israeli press. Madness.\n>\n> /* Written  4:34 pm  Apr 16, 1993 by cpr@igc.apc.org in igc:mideast.forum */\n> /* ---------- \"From Israeli press. Madness.\" ---------- */\n> FROM THE ISRAELI PRESS.\n>\n> Paper: Zman Tel Aviv (Tel Aviv's time). Friday local Tel Aviv's\n> paper, affiliated with Maariv.\n>\n> Date: 19 February 1993\n>\n> Journalist: Guy Ehrlich\n>\n> Subject: Interview with soldiers who served in the Duvdevan\n> (Cherry) units, which disguise themselves as Arabs and operate\n> within the occupied territories.\n>\n> Excerpts from the article:\n>\n> \"A lot has been written about the units who disguise themselves as\n> Arabs, things good and bad, some of the falsehoods. But the most\n> important problem of those units has been hardly dealt with. It is\n> that everyone who serves in the Cherry, after a time goes in one\n> way or another insane\".\n\n\nGee, I'd better tell this to the Mental Health Branch of the Israeli Army\nMedical Corps ! Where would we be without  you, Davidson ?\n\n\n\n\n\n>\n> A man who said this, who will here be called Danny (his full name\n> is known to the editors) served in the Cherry. After his discharge\n> from the army he works as delivery boy. His pal, who will here be\n> called Dudu was also serving in the Cherry, and is now about to\n> depart for a round-the-world tour. They both look no different\n> from average Israeli youngsters freshly discharged from conscript\n> service. But in their souls, one can notice something completely\n> different....It was not easy for them to come out with disclosures\n> about what happened to them. And they think that to most of their\n> fellows from the Cherry it woundn't be easy either. Yet after they\n> began to talk, it was nearly impossible to make them stop talking.\n> The following article will contain all the horror stories\n> recounted with an appalling openness.\n>\n> (...) A short time ago I was in command of a veteran team, in\n> which some of the fellows applied for release from the Cherry. We\n> called such soldiers H.I. 'Hit by the Intifada'. Under my command\n> was a soldier who talked to himself non-stop, which is a common\n> phenomenon in the Cherry. I sent him to a psychiatrist. But why I\n> should talk about others when I myself feel quite insane ? On\n> Fridays, when I come home, my parents know I cannot be talked to\n> until I go to the beach, surf a little, calm down and return. The\n> keys of my father's car must be ready for in advance, so that I\n> can go there. I they dare talk to me before, or whenever I don't\n> want them to talk to me, I just grab a chair and smash it\n> instantly. I know it is my nerve:  Smashing chairs all the time\n> and then running away from home, to the car and to the beach. Only\n> there I become normal.(...)\n>\n> (...) Another friday I was eating a lunch prepared by my mother.\n> It was an omelette of sorts. She took the risk of sitting next to\n> me and talking to me. I then told my mother about an event which\n> was still fresh in my mind. I told her how I shot an Arab, and how\n> exactly his wound looked like when I went to inspect it. She began\n> to laugh hysterically. I wanted her to cry, and she dared laugh\n> straight in my face instead ! So I told her how my pal had made a\n> mincemeat of the two Arabs who were preparing the Molotov\n> cocktails. He shot them down, hitting them beautifully, exactly as\n> they deserved. One bullet had set a Molotov cocktail on fire, with\n> the effect that the Arab was burning all over, just beautifully. I\n> was delighted to see it.  My pal fired three bullets, two at the\n> Arab with the Molotov cocktail, and the third at his chum. It hit\n> him straight in his ass. We both felt that we'd pulled off\n> something.\n>\n> Next I told my mother how another pal of mine split open the guts\n> in the belly of another Arab and how all of us ran toward that\n> spot to take a look. I reached the spot first. And then that Arab,\n> blood gushing forth from his body, spits at me. I yelled: 'Shut\n> up' and he dared talk back to me in Hebrew! So I just laughed\n> straight in his face. I am usually laughing when I stare at\n> something convulsing right before my eyes. Then I told him: 'All\n> right, wait a moment'. I left him in order to take a look at\n> another wounded Arab. I asked a soldier if that Arab could be\n> saved, if the bleeding from his artery could be stopped with the\n> help of a stone of something else like that. I keep telling all\n> this to my mother, with details, and she keeps laughing straight\n> into my face. This infuriated me. I got very angry, because I felt\n> I was becoming mad. So I stopped eating, seized the plate with he\n> omelette and some trimmings still on, and at once threw it over\n> her head. Only then she stopped laughing. At first she didn't know\n> what to say.\n>\n> (...) But I must tell you of a still other madness which falls\n> upon us frequently. I went with a friend to practice shooting on a\n> field. A gull appeared right in the middle of the field. My friend\n> shot it at once. Then we noticed four deer standing high up on the\n\n\nSigh.\n\nFour (4) deer in Tel Aviv ?? Well, this is probably as accurate as the rest of\nthis fantasy.\n\n\n\n\n\n> hill above us. My friend at once aimed at one of them and shot it.\n> We enjoyed the sight of it falling down the rock. We shot down two\n> deer more and went to take a look. When we climbed the rocks we\n> saw a young deer, badly wounded by our bullet, but still trying to\n> such some milk from its already dead mother. We carefully\n> inspected two paths, covered by blood and chunks of torn flesh of\n> the two deer we had hit. We were just delighted by that sight. We\n> had hit'em so good ! Then we decided to kill the young deer too,\n> so as spare it further suffering. I approached, took out my\n> revolver and shot him in the head several times from a very short\n> distance. When you shoot straight at the head you actually see the\n> bullets sinking in.  But my fifth bullet made its brains fall\n> outside onto the ground, with the effect of splattering lots of\n> blood straight on us. This made us feel cured of the spurt of our\n> madness. Standing there soaked with blood, we felt we were like\n> beasts of prey. We couldn't explain what had happened to us. We\n> were almost in tears while walking down from that hill, and we\n> felt the whole day very badly.\n>\n> (...) We always go back to places we carried out assignments in.\n> This is why we can see them. When you see a guy you disabled, may\n> be for the rest of his life, you feel you got power. You feel\n> Godlike of sorts.\"\n>\n> (...) Both Danny and Dudu contemplate at least at this moment\n> studying the acting. Dudu is not willing to work in any\n> security-linked occupation. Danny feels the exact opposite. 'Why\n> shouldn't I take advantage of the skills I have mastered so well ?\n> Why shouldn't I earn $3.000 for each chopped head I would deliver\n> while being a mercenary in South Africa ? This kind of job suits\n> me perfectly. I have no human emotions any more. If I get a\n> reasonable salary I will have no problem to board a plane to\n> Bosnia in order to fight there.\"\n>\n> Transl. by Israel Shahak.\n>\n\nYisrael Shahak the crackpot chemist ?  Figures.  I often see him in the\nRechavia (Jerusalem) post office. A really sad figure. Actually, I  feel sorry\nfor him. He was in a concentration camp during the Holocaust  and it must have\naffected him deeply.\n\n\n\n\nJosh\nbackon@VMS.HUJI.AC.IL\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8768, "properties": {"category": "comp.windows.x", "text": "From: mikes@ase.co.UK (Mike Schofield-00000315)\nSubject: xterm with status line and color\nOrganization: The Internet\nLines: 6\nTo: xpert@expo.lcs.mit.edu\n\n\nI'm looking for a version of xterm which handles color and vt220 style status\nlines. Can anyone out there help?\n\nThanks\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8769, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rajiev@cfmu.eurocontrol.be (Rajiev Gupta)\nSubject: Re: Questions about Windows NT.  Help!\nNntp-Posting-Host: shelduck\nOrganization: Eurocontrol - Central Flow Management Unit\nKeywords: Windows NT, unix, sun sparc\nLines: 36\n\nIn article <C562Cq.FC7@ms.uky.edu> shan@ms.uky.edu (Minghua SHAN) writes:\n>\n>I don't know much about Windows NT, but I've always thought\n>that Win NT would run only on Intel 386/486 compatable systems.\n>We are setting up a network which includes a SUN Sparc Server 4/490\n>and about a dozen PC's. Some people suggest that we run Windows NT\n>on the SUN Sparc Server 4/490 replacing the current OS (SunOS).\n>I don't know whether this is possible and whether this would do us any\n>good. I would appreciate any help on answering a few questions below.\n>\n>1. Does Windows NT run on Sun Sparc Server 490?\n>2. If the answer to question 1 is yes, does it run unix applications\n>   (such as SAS for unix).\n>3. Is Windows NT a multiuser OS?\n>4. When will Windows NT be released?\n>5. Is there any telephone number that I can call and get more\n>   info on Win NT?\n>\n>Thank you.\n>\n>Minghua Shan\n\nAs far as I have read WIN NT will be supported on Intel, DEC ALPHA and the MIPS R4000\nseries of processors only. I do remember though reading a rumour about Sparc support\nsometime in the future. I am not sure what you mean by running \"unix applications\".\nYou would have to have SAS for WIN NT (or maybe SAS for WIN16 etc). I have read \nthat MS will anounce avalaibility of WIN NT by end of May 93 (Comdex Spring). Hope\nthis helps.\n\nRajiev Gupta\n\n-- \nRajiev GUPTA\t\t\tEurocontrol - CFMU\tDisclaimer:\nrajiev@cfmu.eurocontrol.be\tRue de la Loi 72\tThese are *my* views,\nTel: +32 2 729 33 12            B-1040 BRUXELLES\tnot my companies.\nFax: +32 2 729 32 16            Belgium\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8770, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 9\nNNTP-Posting-Host: lloyd.caltech.edu\n\nkmr4@po.CWRU.edu (Keith M. Ryan) writes:\n\n>>But chimps are almost human...\n>Does this mean that Chimps have a moral will?\n\nWell, chimps must have some system.  They live in social groups\nas we do, so they must have some \"laws\" dictating undesired behavior.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.416+0000", "event": "documents", "entityId": 8771, "properties": {"category": "soc.religion.christian", "text": "From: jemurray@magnus.acs.ohio-state.edu (John E Murray)\nSubject: quality of Catholic liturgy\nOrganization: The Ohio State University\nLines: 37\n\nI would like the opinion of netters on a subject that has been bothering my\nwife and me lately: liturgy, in particular, Catholic liturgy.  In the last few\nyears it seems that there are more and more ad hoc events during Mass.  It's\ndriving me crazy!  The most grace-filled aspect of a liturgical tradition is\nthat what happens is something we _all_ do together, because we all know how to \ndo it.  Led by the priest, of course, which makes it a kind of dialogue we \npresent to God.  But the best Masses I've been to were participatory prayers.\n\nLately, I think the proportion of participation has fallen, and the proportion\nof sitting there and watching, or listening, or generally being told what to do\n(which is necessary because no one knows what's happening next) is growing.\nExample.  Last Sunday (Palm Sunday) we went to the local church.  Usually\non Palm Sunday, the congregation participates in reading the Passion, taking\nthe role of the mob.  The theology behind this seems profound--when we say\n\"Crucify him\" we mean it.  We did it, and if He came back today we'd do it\nagain.  It always gives me chills.  But last week we were \"invited\" to sit\nduring the Gospel (=Passion) and _listen_.  Besides the Orwellian \"invitation\", \nI was really saddened to have my (and our) little role taken away.  This seems\ntypical of a shift of participation away from the people, and toward the\nmusicians, readers, and so on.  New things are introduced in the course of the\nliturgy and since no one knows what's happening, the new things have to be\nexplained, and pretty soon instead of _doing_ a lot of the Mass we're just\nsitting there listening (or spacing out, in my case) to how the Mass is about\nto be done.  In my mind, I lay the blame on liturgy committees made up of lay\n\"experts\", but that may not be just.  I do think that a liturgy committee has a\nbias toward doing something rather than nothing--that's just a fact of\nbureaucratic life--even though a simpler liturgy may in fact make it easier for\npeople to be aware of the Lord's presence.\n\nSo we've been wondering--are we the oddballs, or is the quality of the Mass\ngoing down?  I don't mean that facetiously.  We go to Mass every Thursday or\nFriday and are reminded of the power of a very simple liturgy to make us aware \nof God's presence.  But as far as the obligatory Sunday Masses...maybe I should \njust offer it up :)  Has anyone else noticed declining congregational\nparticipation in Catholic Masses lately?\n\nJohn Murray\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8772, "properties": {"category": "rec.sport.baseball", "text": "From: krattige@hpcc01.corp.hp.com (Kim Krattiger)\nSubject: Re: Kevin Rogers\nOrganization: the HP Corporate notes server\nLines: 14\n\n>/ hpcc01:rec.sport.baseball / pjtier01@ulkyvx.louisville.edu / 12:23 pm  Apr 14, 1993 /\n>\n>What's up with Kevin Rogers of San Francisco??  I thought he was slated to be\n>the fifth starter, but he's only gotten a few relief appearences.  Are they\n>going with four starters for now, or is someone else the fifth?\n>\n>                                                             Thanks,\n>                                                                   P. Tierney\n>----------\n>\nGiant's have a five man rotation of  John Burkett, Trevor Wilson,\nBill Swift, Jeff Brantley, and Bud Black/Dave Burba.  Black has\nbeen put on the 15 day disables and Dave Burba will take his starts.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8773, "properties": {"category": "rec.autos", "text": "From: baker@DFWVX1.DALLAS.GEOQUEST.SLB.COM\nSubject: insurance says car is totalled.\nNntp-Posting-Host: dfwvx1.dallas.geoquest.slb.com\nReply-To: baker@dfwdsr.sinet.slb.com\nOrganization: Schlumberger Data Services - Dallas\nLines: 26\n\n\n\n\n\t\ton wednesday morning, another driver decided to illegally\n\t\tturn left in front of me, doing great damage to my car\n\t\t(Honda Civic).\n\t\ti have yet to pay off the car, and the body shop says the\n\t\tinsurance company wants to total the car.  i haven't\n\t\tbeen able to get in touch with the person handling my claim,\n\t\tso i checked on some things:\n\t\n\t\t\t1) my payout is $3700.00\n\t\t\t2) Blue Book retail is $5650.00\n\t\t\t3) loan value is $4450.00\n\t\t\t4) trade-in value is $4000.00\n\n\t\tcould anyone give me any advice on what i should/could do\n\t\tif the insurance company does not give me a reasonable\n\t\tamount for the loss of the car.\n\n\t\t\t\tthanks,\n\t\t\t\tjames baker\n\n\t\t\t\tbaker@dfwvx1.dallas.geoquest.slb.com\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8774, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc2.arc.nasa.gov (Curt Howland)\nSubject: Re: What is it with Cats and Dogs ???!\nOrganization: NASA Science Internet Project Office\nLines: 29\n\nIn article <gate.3gPD2B1w165w@ryang1.pgh.pa.us>, \nryang@ryang1.pgh.pa.us (Robert H. Yang) writes:\n|> Hi,\n|> \n|> \tSorry, just feeling silly.\n|> \n|> Rob\n\n\nNo need to appologise, as a matter of fact\nthis reminds me to bring up something I\nhave found consistant with dogs-\n\nMost of the time, they do NOT like having\nme and my bike anywhere near them, and will\nchase as if to bite and kill. \n\nAn instructor once said it was because the \nsound from a bike was painfull to their \nears. As silly as this seams, no other options\nhave arrizen. \n\nnet.wisdom?\n\n---\nCurt Howland \"Ace\"       DoD#0663       EFF#569\nhowland@nsipo.nasa.gov            '82 V45 Sabre\n     Meddle not in the afairs of Wizards,\n for it makes them soggy and hard to re-light.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8775, "properties": {"category": "sci.electronics", "text": "From: vanderby@mprgate.mpr.ca (David Vanderbyl)\nSubject: Re: HV diodes\nNntp-Posting-Host: chip\nReply-To: vanderby@mprgate.mpr.ca (David Vanderbyl)\nOrganization: MPR Teltech Ltd.\nLines: 15\n\nIn article <1pohuq$4sq@grouper.mkt.csd.harris.com>, wdh@grouper.mkt.csd.harris.com (W. David Higgins) writes:\n|> I believe the only thing that needs correction, Mr. Vanderbyl, is your\n|> attitude.\n\nNope, Mr. Myers has found the bad mistake and posted a correction, thank God.\n\n|> Acting the child won't gain you any favors or make a\n\nWho's acting?\n\n|> positive impression with anybody.  Ghod knows you've make an impression\n|> on me;  just not a positive one.\n\nOh no, I haven't impressed Mr. Higgins.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8776, "properties": {"category": "rec.motorcycles", "text": "From: ahatcher@athena.cs.uga.edu (Allan Hatcher)\nSubject: Re: Traffic morons\nOrganization: University of Georgia, Athens\nLines: 37\n\nIn article <Stafford-200493102833@stafford.winona.msus.edu> Stafford@Vax2.Winona.MSUS.Edu (John Stafford) writes:\n>In article <10326.97.uupcb@compdyn.questor.org>,\n>ryan_cousineau@compdyn.questor.org (Ryan Cousineau) wrote:\n>> \n>> NMM>From: nielsmm@imv.aau.dk (Niels Mikkel Michelsen)\n>> NMM>Subject: How to act in front of traffic jerks\n>> \n>> NMM>The other day, it was raining cats and dogs, therefor I was going only to\n>> NMM>the speed limit, on nothing more, on my bike. This guy in his BMW was\n>> NMM>driving 1-2 meters behind me for 7-800 meters and at the next red light I\n>> NMM>calmly put the bike on its leg, walked back to this car, he rolled down the\n>> NMM>window, and I told him he was a total idiot (and the reason why).\n>> \n>> NMM>Did I do the right thing?\n>\n>\timho, you did the wrong thing.  You could have been shot\n> or he could have run over your bike or just beat the shit\n> out of you.  Consider that the person is foolish enough\n> to drive like a fool and may very well _act_ like one, too.\n>\n> Just get the heck away from the idiot.\n>\n> IF the driver does something clearly illegal, you _can_\n> file a citizens arrest and drag that person into court.\n> It's a hassle for you but a major hassle for the perp.\n>\n>====================================================\n>John Stafford   Minnesota State University @ Winona\nYou can't make a Citizens arrest on anything but a felony.\n.\n  \n\n\n>\n>                    All standard disclaimers apply.\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8777, "properties": {"category": "sci.space", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: A WRENCH in the works?\nLines: 31\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nIn article <25228@ksr.com>, jfw@ksr.com (John F. Woods) writes:\n>nanderso@Endor.sim.es.com (Norman Anderson) writes:\n>>jmcocker@eos.ncsu.edu (Mitch) writes:\n>>>effect that one of the SSRBs that was recovered after the\n>>>recent space shuttle launch was found to have a wrench of\n>>>some sort rattling around apparently inside the case.\n>>I heard a similar statement in our local news (UTAH) tonight. They referred\n>>to the tool as \"...the PLIERS that took a ride into space...\". They also\n>>said that a Thiokol (sp?) employee had reported missing a tool of some kind\n>>during assembly of one SRB.\n\nIt was a test of the first reusable tool.\n\n>\n>I assume, then, that someone at Thiokol put on their \"manager's hat\" and said\n>that pissing off the customer by delaying shipment of the SRB to look inside\n>it was a bad idea, regardless of where that tool might have ended up.\n>\n>Why do I get the feeling that Thiokol \"manager's hats\" are shaped like cones?\n\nPointy so they can find them or so they will stick into their pants better, and\nbe closer to their brains?\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\npyron@skndiv.dseg.ti.com          |solutions, not gestures.\nPADI DM-54909                     |\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8778, "properties": {"category": "comp.graphics", "text": "From: Geoffrey_Hansen@mindlink.bc.ca (Geoffrey Hansen)\nSubject: Re: VESA on the Speedstar 24\nOrganization: MIND LINK! - British Columbia, Canada\nLines: 12\n\nUsing the VMODE command, all you need to do is type VMODE VESA at the dos\nprompt. VMODE is included with the Speedstar 24.  I have used the VESA mode\nfor autodesk animator pro.\n\n--\n   <=================================================|\n             |     geoffrey_hansen@mindlink.bc.ca    |\n             |=================================================>\n \"Inumerable confusions and a feeling of despair invariably emerge\n  in periods of great technological and cultural transition.\"\n                                                     Marshall McLuhan\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8779, "properties": {"category": "talk.politics.mideast", "text": "From: hasan@McRCIM.McGill.EDU \nSubject: Re: ISLAM BORDERS vs Israeli borders\nOriginator: hasan@haley.mcrcim.mcgill.edu\nNntp-Posting-Host: haley.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for  Intelligent Machines\nLines: 51\n\n\nIn article <1993Apr5.202800.27705@wam.umd.edu>, spinoza@next06wor.wam.umd.edu (Yon Bonnie Laird of Cairn Robbing) writes:\n|> In article <C50wJJ.J4r@newsflash.concordia.ca> ilyess@ECE.Concordia.CA  \n|> (Ilyess Bdira) writes:\n|> > > 1)why do jews who don't even believe in God (as is the case with many\n|> > of the founders of secular zionism) have a right in Palestine more\n|> > than the inhabitants of Palestine, just because God gave you the land?\n|> G-d has nothing to do with it. Some of the land was in fact given to the  \n|> Jews by the United Nations, quite a bit of it was purchased from Arab  \n|> absentee landlords. Present claims are based on prior ownership (purchase  \n|> from aforementioned absentee landlords) award by the United Nations in the  \n|> partition of the Palestine mandate territory, and as the result of  \n|> defensive wars fought against the Egyptians, Syrians, Jordanians, et al.\n|> \n|> ***\n|> > 2)Why do most of them speak of the west bank as theirs while most of\n|> > the inhabitants are not Jews and do not want to be part of Israel?\n|> First, I should point out that many Jews do not in fact agree with the  \n|> idea that the West Bank is theirs. Since,  however, I agree with those who  \n|> claim the West Bank, I think I can answer your question thusly: the West  \n|> bank was what is called the spoils of war. Hussein ordered the Arab Legion  \n\n\t\t\t^^^^^^^^^^^^^^^^^^^^\nThis is very funny.\nAnyway, suppose that in fact israel didnot ATTACK jordan till jordan attacked\nisrael. Now, how do you explain the attack on Syria in 1967, Syria didnot\nenter the war with israel till the 4th day .\n\nBy the way it is funny that you are implying that the reason behind 1967\nby israel was only to capture Sinai, egypt ! \n\n \n|> to attack Israel, which was a poor move, seeing as how the Israelis  \n|> promptly kicked his butt. The territory is therefore forefeit.  Retaining  \n|> possession of ALL of the West bank is  not desirable, but it beats  \n|> national suicide for the Israelis. Put another way, one could ask why it  \n|> is that so many Palestinians seem to think that Tel-Aviv belongs to them  \n|> and the future state of Palestine. As long as this state of affairs  \n|> continues, it seems that to give the Palestinians a place from which they  \n|> can launch attacks on Jews is a real poor idea. Giving up the entire West  \n|> Bank would be idiotic froma security standpoint.  In addition, there is  \n|> the small matter of Jerusalem, which is considered to be part of the West  \n|> Bank. The chances of the Israelis giving up Jerusalem are nil. Even  \n|> leftists who think Yasser is a really cool dude, like Yossi Sarid, aren't  \n|> going to propose giving up Jerusalem. If he did, he'd get run out of town  \n|> on a rail.\n|> \n|> \n|> \t\t\t\t\tchag sameach!\n|> \t\t\t\t\t\tjeff\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8780, "properties": {"category": "soc.religion.christian", "text": "From: topcat!tom@tredysvr.tredydev.unisys.com (Tom Albrecht)\nSubject: Re: Revelations\nOrganization: Applied Presuppositionalism, Ltd.\nLines: 25\n\nphil.launchbury@almac.co.uk (Phil Launchbury) writes:\n\n> >The \"apostate church\" of Revelation most likely refers to the 1st century\n> >Jews who rejected their Messiah and had Him crucified.  John refers to them\n\n> I'm afraid not. It refers to the church that Christ founded. Many, many\n> times he warns that the church will fall away into heresy as do the\n> apostles. For an example look at the parables in Matthew 13:31-33. They\n> refer to 'the kingdom of heaven' (the church) and the process of how\n> they will be corrupted.\n\nSorry, but I think this interpretation of the Matthew 13 parables is\nnonsense. I.e.,\n\n> 'yeast' - *ALWAYS* stands for sin/corruption/heresy. For example 'beware\n> of the yeast of the Pharisees'. ...\n\nMatthew 16:12 explains that by \"leaven of the Pharisees\" Jesus was simply\nreferring to their teaching; not sin/corruption/heresy.\n\nJesus gaves His apostles the keys of the kingdom and said that\nthe gates of hell would not prevail against His church.\n\n--\nTom Albrecht\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8781, "properties": {"category": "soc.religion.christian", "text": "From: Petch@gvg47.gvg.tek.com (Chuck Petch)\nSubject: Daily Verse\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 4\n\nHow much better to get wisdom than gold, to choose understanding rather\nthan silver! \n\nProverbs 16:16\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8782, "properties": {"category": "rec.motorcycles", "text": "From: jamesf@apple.com (Jim Franklin)\nSubject: Re: Tracing license plates of BDI cagers?\nOrganization: Apple Computer, Inc.\nLines: 19\n\nIn article <1993Apr8.202746.12159@adobe.com>, cjackson@adobe.com (Curtis\nJackson) wrote:\n> \n\n> Good advice, of course. Thanks, Hesh. Time to go back for a Zen\n> refresher course.\n> \n> \"Imagine you are a lily, gently floating in a still, darkened pool.\"\n\nAnd some BDC in a Volvo comes careening off the freeway and lands on top of\nyou in said pool. You can't win.\n\njim\n\n*   Jim Franklin * jamesf@apple.com        Jim Bob & Sons                 *\n* 1987 Cagiva Alazzurra 650         |    .signature remodling       *\n* 1969 Triumph 650 (slalom champ) |     Low price$ Quality workman-     * \n* DoD #469               KotP(un) |               ship       * \n                                        Call today for free estimit\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8783, "properties": {"category": "sci.crypt", "text": "From: jfc@athena.mit.edu (John F Carr)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: Massachusetts Institute of Technology\nLines: 16\nNNTP-Posting-Host: achates.mit.edu\n\nIn article <19930419.155204.305@almaden.ibm.com>\n\tameline@vnet.IBM.COM (Ian Ameline) writes:\n\n>  I also believe that someone will reverse engineer the clipper chip,\n>and knowlege of the algorithm will likely be fairly widespread.\n\nThe chip and algorithm are classified.  If you reverse engineer it and\ntell people, you are likely to go to jail.\n\nPerhaps some foreign governments or corporations could help us out by\ncracking the system outside the USA.  The US government could probably\nstop importation of clone hardware, but a software implementation\nshould be practical.\n\n--\n    John Carr (jfc@athena.mit.edu)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8784, "properties": {"category": "rec.autos", "text": "From: dennisk@cs.uoregon.edu (Dennis Kennedy)\nSubject: '72 Chevelle SS forsale\nOrganization: University of Oregon\nLines: 11\nDistribution: usa\nNNTP-Posting-Host: fp2-cc-25.uoregon.edu\n\nI don't want to sell this car, but I need money for college.\n1972 Chevelle Super Sport\nRebuilt 402, four speed, 12 Bolt positrac\nNumbers match\n110,000 original miles\nno rust\nLooks and runs excellent\n$5995 or best offer.\nCall Dennis at (503)343-3759\nor email dennisk@cs.uoregon.edu\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8785, "properties": {"category": "rec.sport.baseball", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: Jewish Baseball Players?\nArticle-I.D.: midway.1993Apr15.221049.14347\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 32\n\nIn article <1qkkodINN5f5@jhunix.hcf.jhu.edu> pablo@jhunix.hcf.jhu.edu (Pablo A Iglesias) writes:\n>In article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>>Just wondering.  A friend and I were talking the other day, and\n>>we were (for some reason) trying to come up with names of Jewish\n>>baseball players, past and present.  We weren't able to come up\n>>with much, except for Sandy Koufax, (somebody) Stankowitz, and\n>>maybe John Lowenstein.  Can anyone come up with any more.  I know\n>>it sounds pretty lame to be racking our brains over this, but\n>>humor us.  Thanks for your help.\n>\n>Hank Greenberg would have to be the most famous, because his Jewish\n>faith actually affected his play. (missing late season or was it world\n>series games because of Yom Kippur)\n\nThe other Jewish HOF'er is Rod Carew (who converted).  \n\nLowenstein is Jewish, as well as Montana's only representative to the\nmajor leagues.\n\nUndeserving Cy Young award winner Steve Stone is Jewish.  Between Stone,\nKoufax, Ken Holtzman (? might have the wrong pitcher, I'm thinking of the\none who threw a no-hitter in both the AL and NL), and Big Ed Reulbach,\nthat's quite a starting rotation.  Moe Berg can catch.  Harry Steinfeldt,\nthe 3b in the Tinkers-Evers-Chance infield.\n\nIs Stanky Jewish?  Or is that just a \"Dave Cohen\" kinda misinterpretation?\nWhatever, doesn't look like he stuck around the majors too long.\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8786, "properties": {"category": "talk.politics.mideast", "text": "From: B8HA000 <B8HA@MUSICB.MCGILL.CA>\nSubject: Re: BB Confessions.\nLines: 46\nNntp-Posting-Host: vm1.mcgill.ca\nOrganization: McGill University\n\nIn article <1993Apr18.022218.17318@thunder.mcrcim.mcgill.edu> ahmeda@McRCIM.McGill.EDU (Ahmed Abu-Abed) writes:\n>\n>In article <C5Hu6q.CG3@news.cso.uiuc.edu>, eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n>|> cl056@cleveland.Freenet.Edu (Hamaza H. Salah) writes:\n>|>\n>|>\n>|> >In a previous article, friedenb@sapphire.egr.msu.edu (Gedaliah Friedenberg) says:\n>|>\n>|> >>\n>|> >>For all those interested, I would like to inform all that Binyamin Netanyahu\n>|> >>(leader of the Israeli Likud party) will be interviewed on CNN tonight on\n>|> >>Larry King Live.\n>|>\n>|>\n>|> >didn't this guy go crying on the \"zionist\" tv confessing\n>|> >that he committed adultary, and was cheating on his wife..\n>|>\n>|> >a typical jew leader, huh?\n>|>\n>|> Yes.  He is.  Actually, the typical Muslim/Arab leader hides the fact that he\n>|> commited adultery by choosing a camel over his husband (or a small male child,\n>|> whichever is more readily availible).\n>|>\n>|> >--\n>|> >                  ___________________ cl056@cleveland.Freenet.Edu _____________\n>|> >                 (______   _  |   _  |_\n>|> >_____ H A M Z A ________) |-| |_ |-| | |\n>|>\n>|> Ed.\n>|>\n>\n>But the irony is that the Jewish population has no problem in electing\n>a leader who has CONFESSED  to having an extra marrital affair.\n>\n>This is a first.\n>\n>AA.\n>.\n>.\nWhat else do you expect?  Israel is trying to portray itself\nas the great democracy.  One requirement is to have a leader\nwho previously had an extra-marital affair (e.g. Bill Clinton)\nIt helps if your wife says it's OK.\n\nSteve\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8787, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Too fast\nArticle-I.D.: cactus.1993Apr17.063040.2177\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 63\n\nIn article <1qmcih$dhs@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>boyle@cactus.org (Craig Boyle) writes:\n>>The quality of autobahns is something of a myth. The road surface\n>>isn't much different to a typical TX freeway. They are better\n>>in terms of lighting, safety, signs, roadmarkings etc.\n>\n>They light the highways in Texas?  Funny, everywhere else I've been\n>they only light 'em at junctions.\n\nSorry, by \"they\" I meant autobahns, not US freeways.\n\n>\n>I won't even get into how much road markings vary between states and\n>localities except to say that there are some areas where markings are\n>essentially nonexistant.\n>\n>>>than most of the roads here. A dip in the asphalt that you test your\n>>>shocks on at 60 will kill you at 130. Don't get me wrong, I love to\n>\n>>It would have to be quite severe. I don't recall any US freeway,\n>>without road damage warnings, that i would regard as unsafe\n>>at 130 in any decent, well damped car.\n>\n>I suspect you have very limited experience -- US freeways vary\n>dramatically, particularly between states.  I can name a number of\n>interstate highways in various parts of the country where 130 would be\n>very optimistic in any car.\n\nWell, I've driven in every state but Alaska, and drive about 60k per year.\nI take long cross country trips any chance I get - its fun for me and I\ncan get reimbursment.\nMy job allows me to drive rather than fly. Not to labor the point, but\nI've driven just about every freewayin the US, Germany, UK and France plus\nsome in Mexico, which was surpisingly good.\n\n>\n>I'm not sure what you call \"quite severe\" in terms of road deviations\n>but I suspect every single bridge junction on I84 through CT would be\n>considered so.  They're hard to take at 85mph.  That's not the only\n>interstate I've seen with such deviations, but it's one I drive\n>frequently.\n\nYes, but as a %age of the total freeway in the US? \nAll you have to do in this case is mark the hazard, advising people to\nslow to 85 or so. \n\n>\n>Texas is pretty much an edge-case -- you can't assume that everywhere\n>has roads in such good condition, such flat terrain, and such\n\nTexas freeways are varied, sometimes a good surface. Mostly flat. But,\nI5 in CA is comparable and hilly.\n\n>wide-open spaces.  It just ain't so.\n>\nGiven the absence of other traffic and car built for 130 (e.g. 535) \nmost US freeways are just fine. The problem is other road users and\ncops.\n\n>jim frost\n>jimf@centerline.com\n\nCraig\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8788, "properties": {"category": "talk.politics.mideast", "text": "Subject: Re: How many israeli soldiers does it take to kill a 5 yr old child?\nFrom: jhsegal@wiscon.weizmann.ac.il (Livian Segal)\nOrganization: Weizmann Institute of Science, Computation Center\nLines: 16\n\nIn article <1qhv50$222@bagel.cs.huji.ac.il> ranen@falafel.cs.huji.ac.il (Ranen Goren) writes:\n>Q: How many Nick Steel's does it take to twist any truth around?\n>A: Only one, and thank God there's only one.\n>\n>\tRanen.\n\nAbsolutely not true!\nThere are lots of them!\n\n  _____   __Livian__  ______    ___    __Segal__  __  __      __  __      __\n *\\   /*    |       |       \\      \\     \\      |   |   |       |   \\       |\n***\\ /***   |       |   |__  |  /_  \\     \\     |   |   |       |    \\      |\n|---O---|   |       |       /        |     \\    |   |   |       |     \\     |\n\\  /*\\  /    \\___   /   |  \\    |    |   |  \\   |   |    \\___   /   |   /   |\n \\/***\\/           /    |   \\   |    |   |      |   |          /    |       |\nVM/CMS: JhsegalL@Weizmann.weizmann.ac.il UNIX: Jhsegal@wiscon.weizmann.ac.il\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8789, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: Dumb Question: Function Generator\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 36\n\n1)  Output offset:  Obtain the service manual for the oscilloscope\nand adjust the internal output offset contorl.  There is virtual\ncertainty that there is an internal ajustment for the offset\ncontrol's zero detent position.\n\n2)  Verify that the function generator is properly loaded.  Many\ngenerators expect you to supply a 50 ohm load.  Go to a hamfest\nflea market and scrounge around for a pass-through 50 ohm\nterminator that has a male and female BNC (or whatever) connector\non it.  The calibrator on my Tektronix scope is designed to put out\n.4v into a 1 meg load, but .1 volt into a 50 ohm load.  You may\nalso find that loading the output of the function generator also\nreduces the harmonic distortion.\n\nBuild an attenuator.  You don't have to use (and I wouldn't want to\nuse) the input impedance of the device under test as part of the\nvoltage divider to drop the input test voltage.  Consider this:\n\n------10K--------+---------? ohm ----\n                 |\nGen            50 ohm            D.U.T.\n(loaded)         |\n-----------------+-------------------\n\nThink about the ratio of 50/10K and then think about the accuracy\nto which you can read voltages on your oscilloscope.  You can\nvirtually discount the loading of the D.U.T.  Also you have the\nmillivolt test generator you want.\n\nGood luck,\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8790, "properties": {"category": "comp.windows.x", "text": "From: pmartz@dsd.es.com (Paul Martz)\nSubject: Re: 24-bit Static color: will clients like it?\nNntp-Posting-Host: bambam\nReply-To: pmartz@dsd.es.com (Paul Martz)\nOrganization: Evans & Sutherland Computer Corp., Salt Lake City, UT\nLines: 38\n\nIn article <1993Apr26.123918.1@vxcrna.cern.ch>, roeber@vxcrna.cern.ch (Frederick Roeber) writes:\n> I'm writing an X server for some video-generation equipment.  The\n> hardware is \"truecolor\" in YUV space; in X terms it has a 24-bit\n> static color visual.  I would really like to have the server just\n> present this static visual, but I'm not sure if this will be \n> acceptable to \"most\" X clients.  The three problems I see are:\n> \n>   1) The colormap, though huge, is static.\n>   2) All pixels would be 3 bytes wide.\n>   3) Because the hardware actually lives in YUV space, the\n>      translation RGB->YUV will introduce some rounding error.\n\nWe tried to ship an X server once that only supported a 24bit\nTrueColor visual. The main problems we encountered were:\n\n\t1) Clients written with logic like the following:\n\n\t    if (DefaultDepth() != 1)\n\t\t/* Assume default depth is 8bit */\n\n\t   These clients need an 8bit deep visual in the root window\n\t   to run correctly.\n\n\t2) Other clients didn't even bother to do that much, and just\n\t   outright assumed they had a *dynamic* visual class, with a\n\t   dynamic colormap. XStoreColors doesn't work on cmaps\n\t   associated with Static or TrueColor visual classes, but\n\t   many clients don't bother to check, they just start\n\t   throwing XStoreColor calls at you.\n\nThough both are clearly client error, this is the case with so many\nclients that it's easier for you to expose 8bit PseudoColor as a\ndefault root window visual, than it ever would be for all these client\nwriters to change their clients to do the right thing.\n--\n\n   -paul\tpmartz@dsd.es.com\n\t\tEvans & Sutherland\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8791, "properties": {"category": "soc.religion.christian", "text": "From: sdixon@andy.bgsu.edu (Sherlette Dixon)\nSubject: Re:  My original post (Was Jesus Black?)\nOrganization: Bowling Green State University Student\nLines: 11\n\nMy, my, my.  I knew that I would receive a response to my post, but not\nTHIS extensive.  Thank you to all who responded; it at least showed that\npeople were willing to think about it, even though the general response was\na return to the same old \"Why should it matter?\" question.  To those of you\nwho were a part of this response, I suggest that you read the articles\ncovering this same question in soc.culture.african.american, for you are in\nDIRE need of some cultural enlightenment.\n\nHasta luego\n\nSherlette\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8792, "properties": {"category": "comp.graphics", "text": "From: capelli@vnet.IBM.COM (Ron Capelli)\nSubject: Re: detecting double points in bezier curves\nDisclaimer: This posting represents the poster's views, not those of IBM\nNews-Software: UReply 3.1\nLines: 16\n\nIn <ia522B1w165w@oeinck.waterland.wlink.nl> Ferdinand Oeinck writes:\n>I'm looking for any information on detecting and/or calculating a double\n>point and/or cusp in a bezier curve.\n\nSee:\n   Maureen Stone and Tony DeRose,\n   \"A Geometric Characterization of Parametric Cubic Curves\",\n   ACM TOG, vol 8, no 3, July 1989, pp. 147-163.\n_______________________________________________________________________\n\n...Ron Capelli                 IBM Corp.  Dept. C13,  MS. P230\n   capelli@vnet.ibm.com        PO Box 950\n   (914) 435-1673              Poughkeepsie, NY  12602\n_______________________________________________________________________\n\n\"There are no answers, only cross references.\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8793, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: Dumbest automotive concepts of all time\nDistribution: na\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 42\n\nIn article <24485@drutx.ATT.COM> klf@druwa.ATT.COM (FranklinKL) writes:\n>In article <C5HHGM.1rM@constellation.ecn.uoknor.edu>, callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>| In article <1993Apr13.215605.26252@slcs.slb.com> dcd@se.houston.geoquest.slb.com (Dan Day) writes:\n>| >In article <1q4466INNb85@ctron-news.ctron.com> smith@ctron.com writes:\n>| >>\n>| >>It's a big aftermarket business.  Almost no cars come from the factory with\n>| >>vynal any more, and any fake \"convertible\" job _definitely_ came from some\n>| >>aftermarket place.  What amazes me is how much people are willing to pay for\n>| >>bad taste\n>| >\n>| >How about those really ugly fake wheel compartments stuck onto the\n>| >trunk or side (or both sides!) of some tacky luxury cars?\n>| \n>| Some of 'em aren't fake (if you're talking about the Continental kit,\n>| named after the Lincoln Continental, the first car to sport one). I\n>| personally would _love_ to have a '56 T-Bird with a Continental kit\n>| (and the supercharged V-8 :-); that is one of the most beautiful\n>| cars ever built, IMHO.\n>| \n>| \t\t\t\tJames\n>| \n>\n>The Continental may have been the first \"modern era\" auto to mount the\n>spare on the rear of the car but it was hardly the first car to sport one.\n>Various mounting techniques for rear mounting the spare were quite common\n>in early automobiles, both US and Foreign.\n\nThe 1941 Lincoln Continental was the first car to sport the \"continental\nkit.\" The continental kit is not to be confused with ye olde outside\nmounting bracket; a continental kit is a very specific ornament/storage\ncompartment. (The 1941 Continental has a neat trunk; it looks rather\nlike a laundry hamper, IMHO. :-)\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8794, "properties": {"category": "rec.motorcycles", "text": "From: staal@idt.unit.no (Staal Amund Vinterbo)\nSubject: Re: Countersteering_FAQ please post\nReply-To: staal@idt.unit.no (Staal Amund Vinterbo)\nOrganization: Norwegian Institute of Technology\nLines: 33\n\nIn article <mjs.734954875@zen.sys.uea.ac.uk>, mjs@sys.uea.ac.uk (Mike Sixsmith) writes:\n|> \n|> Formal training is in my view absolutely essential if you're going to\n|> be able to ride a bike properly and safely. But by including countersteering\n|> theory in newbie courses we are confusing people unnecessarily, right at\n|> the time when there are *far* more important matters for them to learn.\n|> And that was my original point.\n|> \n|> Mike\n\nWhile I agree with you on that formal training is essential for safe riding,\nI disagree strongly with your original point. The point of formal training \nmust be to prepare riders for the road. Preparedness is in my opinion\nto know as much as possible. So, to exclude some aspects of riding a bike \nin a course is wrong IMHO. Now to countersteering in particular.\nCountersteering is something that must be trained. A common reaction among \nnew bikers (or bicycle riders) in an emergency situation, is to steer the \nmotorcycle like a bicycle. As we know this makes the motorcycle go in the\ndirection opposite to what was intended. Needless to say, this is dangerous.\nI have a specific example: A rider in a left turn. The rider thinks he/she\nis to close to the right shoulder of the road, and tries to steer the \nmotorcycle to the left by pulling the left handle and pushing the right \nhandle. The motorcycle straightens up and goes off the road. \nA worse scenario: The same rider, same turn. In the middle of the turn\nthe rider sees a truck coming towards him/her. The panicking rider tries\nto steer the motorcycle away from the truck and crashes right into it.\n\nThe main function of a riding course is to teach how to avoid emergency \nsituations, AND what to do if in one. Thus, the knowledge (and training) of\ncountersteering is IMHO a must in any riding course.\n-- \nstaal@idt.unit.no  \n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.417+0000", "event": "documents", "entityId": 8795, "properties": {"category": "sci.space", "text": "From: Wales.Larrison@ofa123.fidonet.org\nSubject: Space Advertising (2 of 2)\nX-Sender: newtout 0.08 Feb 23 1993\nLines: 82\n\n   Two developments have brought these type of activities back to\nthe forefront in 1993.  First, in February, the Russians deployed a\n20-m reflector from a Progress vehicle after it had departed from\nthe Mir Space Station.  While this \"Banner\" reflector was blank,\nNPO Energia was very active in reporting that future  Banner\nreflectors will be available to advertisers, who could use a space-\nbased video of their logo or ad printed on the Banner in a TV\ncommercial, as filmed from the Mir.\n   The second development, has been that Space Marketing Inc, the\nsame company responsible for merchandising space on the Conestoga\nbooster and COMET spacecraft, is now pushing the \"Environmental\nBillboard\".  As laid out by SMI Chief Engineer Dr Ron Humble of the\nUniversity of Colorado Space Laboratory and Preston Carter of the\nLawrence Livermore National Laboratory, the \"Environmental\nBillboard\" is a large inflatable outer support structure of up to\n804x1609 meters.  Advertising is carried by a mylar reflective area,\ndeployed by the inflatable 'frame'.\n   To help sell the concept, the spacecraft responsible for\nmaintaining the billboard on orbit will carry \"ozone reading\nsensors\" to \"continuously monitor the condition of the Earth's\ndelicate protective ozone layer,\" according to Mike Lawson, head of\nSMI. Furthermore, the inflatable billboard has reached its minimum\nexposure of 30 days it will be released to re-enter the Earth's\natmosphere. According to IMI, \"as the biodegradable material burns,\nit will release ozone-building components that will literally\nreplenish the ozone layer.\" The remaining spacecraft will monitor\nthe atmosphere for another year before it, too, re-enters and burns\nup and \"adds to the ozone supply.\"\n   This would not be a cheap advertisement, costing at least several\nmillions of dollars (exact costs were not available).  But SMI\nestimates that market exposure would be 3-5X that of the people who\nwatched the SuperBowl, where a 30-second advertising 'unit' cost\n$600,000.  Since SMI is located in Atlanta, Georgia, it is being\npromoted as being available in time for the opening of the 1996\nSummer Olympics in Atlanta.\n  \nBut back to Brian's questions:\n>And does anyone have any more details other than what was in the WN\n>news blip?  How serious is this project?  Is this just in the \"wild\n>idea\" stage or does it have real funding?\n  \n    See above. As for serious -- if they can get $15-20 M or so (my\nestimate of $5-10 for development costs and a flight unit, plus\n$10-15 M for a launch), then it's probably real.  They are claiming to\ntailor the orbit to overfly specific locations at specific times for\noptimum advertising impact so they probably can't piggy back upon\nsomeone else's planned launch and will have to buy a dedicated\nlaunch.  That's a $10-15 M cost they need to raise, right there.\n    And there will probably be some legal challenges to this as\nwell.  Note there is one potential legal challenge to SMI on the use\nof launch vehicle advertising already.  While I don't think the\nlegal challenges would win out (and yes, I am an amateur astronomer,\nand no, I don't really like the idea of this additional light\npollution, but I know of no prohibition of it...),  the legal\nchallenges and court fights would probably remove any positive\naspects of the advertising.  I can imagine several ways to make the\nadvertisers look like louts for doing this -- which would change\npositive market exposure to negative market exposure, and negate the\nspace advertising advantage.  (Would you spend $15 M to look like an\nidiot?)\n   (And light pollution might not be too bad -- if it's in a low\nenough orbit, and it relies upon reflected light only, it would\nonly be visible for a short time just after local dusk and before\ndawn.  For maximum market exposure, you want to have it visible just\nafter dusk --minimizing impact on astronomy, since that's the time\nof worse seeing due to day/night thermal turbulence.  It might still\nbe a problem, but perhaps there are ways to mitigate this...)\n    As for having real funding -- none that I can identify.  There\nwere about 60 expressions of interest made on the Conestoga\nadvertising opportunity, but that included curious folks and was for\nonly a $500,000 commitment.  I haven't heard of any serious funding\nfor this, but I'm sure they are shopping the venture around looking\nfor some money in order to flesh out the concept some more.  But I\nam confident there are no firm or paying customers at this time.\n  \n   And if anybody wants to cross-post this to sci.astro, please be\nmy guest.  I don't have posting privileges to that area (or at least\nI don't THINK I do...).\n -------------------------------------------------------------------\n Wales Larrison                            Space Technology Investor\n\n--- Maximus 2.01wb\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8796, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Orbital RepairStation\nOrganization: U of Toronto Zoology\nLines: 21\n\nIn article <C5MtyJ.12q@well.sf.ca.us> collins@well.sf.ca.us (Steve Collins) writes:\n>The difficulties of a high Isp OTV include...\n>If you go solar, you have to replace the arrays every trip, with\n>current technology.\n\nYou're assuming that \"go solar\" = \"photovoltaic\".  Solar dynamic power\n(turbo-alternators) doesn't have this problem.  It also has rather less\nair drag due to its higher efficiency, which is a non-trivial win for big\nsolar plants at low altitude.\n\nNow, you might have to replace the *rest* of the electronics fairly often,\nunless you invest substantial amounts of mass in shielding.\n\n>Nuclear power sources are strongly restricted\n>by international treaty.\n\nReferences?  Such treaties have been *proposed*, but as far as I know,\nnone of them has ever been negotiated or signed.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8797, "properties": {"category": "talk.religion.misc", "text": "From: jmeritt@mental.MITRE.ORG (Jim Meritt - System Admin)\nSubject: Keep Firm the foundations!\nOrganization: UTexas Mail-to-News Gateway\nLines: 6\nNNTP-Posting-Host: cs.utexas.edu\n\nJOB 26:7  He stretcheth out the north over the empty  place,  and\nhangeth the earth upon nothing.\n\nJOB 38:4  Where wast thou when I  laid  the  foundations  of  the\nearth? declare, if thou hast understanding.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8798, "properties": {"category": "talk.politics.misc", "text": "From: wdstarr@athena.mit.edu (William December Starr)\nSubject: Re: Law and Economics\nOrganization: Northeastern Law, Class of '93\nLines: 174\nNNTP-Posting-Host: nw12-326-1.mit.edu\nIn-reply-to: thf2@midway.uchicago.edu\n\n\n[Procedural note: Ted directed followups to misc.legal only.  While I\nrespect his right to do so, my own opinions are that (1) \"Followup-To\"\nfields are mere suggestions, not mandatory commands and (2) this issue\nis of sufficient (a) general political relevance and (b) civil liberties\ninterest to warrant keeping it active in t.p.m and a.s.c-l as well, at\nleast for this round.]\n\nIn article <1993Apr11.155955.23346@midway.uchicago.edu>, \nthf2@midway.uchicago.edu said:\n\n> Uh, no.  That's not what happened in _Boomer_.  What happened in\n> _Boomer_ was that the judge didn't allow the plaintiffs to blackmail\n> the cement plant by demanding a multi-million dollar plant to be shut\n> down over $185,000 in damages, and required the plant to pay the\n> plaintiffs the $185,000 to make them whole.  The plant would never\n> have been shut down-- the plaintiff's lawyers would have just\n> negotiated a windfall settlement, because the plaintiffs would prefer\n> an amount greater than $185K to having the plant shut down, while the\n> plant would prefer any amount less than the value of the plant to have\n> the plant continue in operation.  Everyone's property rights were\n> protected; the plaintiffs were made whole; unnecessary settlement\n> costs were avoided.\n\nOkay, now here's my interpretation of _Boomer_, based on the facts as\npresented in the New York Court of Appeals<*> holding (_Boomer v.\n\n<*>Note: The New York Court of Appeals is the highest court in New York\n   State.  While the United States and 48 of the fifty states call their\n   highest court \"Supreme Court,\" \"Supreme Judicial Court\" or \"Supreme\n   Court of Appeals,\" Maryland and New York call theirs simply the\n   \"Court of Appeals.\"  To make matters worse, New York also calls its\n   _second-highest_ court the \"Supreme Court, Appellate Division\"...\n\nAtlantic Cement Co._, 26 N.Y.2d 219, 257 N.E.2d 870 (1970)):\n\nOscar H. Boomer, et al., owned land near the Atlantic Cement company's\nplant near Albany, N.Y.  (The fact pattern gives no information as to\nwhich came first, the plaintiff's acquisition of the land or he\ndefendant's start of production at their cement plant.)  In the course\nof its regular operations, the cement plant did injury to the\nplaintiffs' property via dirt, smoke and vibrations emanating from the\nplant.  The plaintiffs sought injunctive relief -- that is, they asked\nthe court to order Atlantic Cement to stop damaging their property.\n\n(Commentary: this seems entirely reasonable to me.  Boomer at al owned\ntheir property and, presumably, a right to quiet enjoyment of it.\nAtlantic Cement's actions were depriving Boomer et al of that right.)\n\nInstead of granting the plaintiffs' request for an injunction, the court\nordered them to accept the damage being done to their property, provided\nthat Atlantic Cement paid them $185,000 in compensatory damages.  In\nother words, the court granted Atlantic Cement Co., a private party, the\npower and authority to _take_ the plaintiffs rights to quiet enjoyment\nof their property by eminent domain.  A taking by eminent domain is\nalways problematical even when it's done by the state; allowing a\nprivate firm to do it is, in my opinion, totally wrong.\n\n(Yes, I know, the _Boomer_ court didn't call it eminent domain.  But if\nit walks like eminent domain and swims like eminent domain and quacks\nlike eminent domain...)\n\nLet me take issue with the way you've presented the case... you say that\n\"What happened in _Boomer_ was that the judge didn't allow the\nplaintiffs to blackmail the cement plant by demanding a multi-million\ndollar plant to be shut down over $185,000 in damages.\"  Blackmail?\n\n    (Pulls out Black's Law Dictionary, Abridged 5th Edition....\n    \"Blackmail: Unlawful demand of money or property under threat to\n    do bodily harm, to injure property, to accuse of crime, or to expose\n    disgraceful defects.  This crime is commonly included under\n    extortion statutes.\")\n\nHow do you define as \"blackmail\" one party's act of demanding the right\nto set its own sale price for a unique piece of property which it owns\nand which another party has expressed an interest in buying?  Or of\ndemanding the right not to sell that property at any price?  As I see\nit, Boomer et al, having found themselves in the fortunate position of\nowning something which Atlantic Cement had to purchase if it wanted to\nstay in business, had every right in the world to set whatever price\nthey wanted.  There isn't, or at least shouldn't be, any law that says\nthat you have to be a nice guy in your private business dealings.\n\nYou go on to say: \"The plant would never have been shut down -- the\nplaintiff's lawyers would have just negotiated a windfall settlement,\nbecause the plaintiffs would prefer an amount greater than $185K to\nhaving the plant shut down, while the plant would prefer any amount less\nthan the value of the plant to have the plant continue in operation.\"\n\nIf so, so what?  Since when are the courts supposed to be in the\nbusiness of preventing parties from reaping windfall settlements from\nother parties when those settlements arise from wrongful acts by those\nother parties?  If Atlantic Cement didn't want to have to face a choice\nbetween paying a windfall settlement or going out of business, well,\nshouldn't Atlantic Cement have thought of that before going _into_\nbusiness?  (I note that as far as the facts show Boomer et al were _not_\nthe parties responsible for bringing about this situation -- that was\nAtlantic Cement's own fault for choosing to build and operate the type\nof plant they did where and when they did.)\n\nAnd then you say: \"Everyone's property rights were protected; the\nplaintiffs were made whole; unnecessary settlement costs were avoided.\"\nAs above, I dispute your claim that the plaintiffs were \"made whole.\"\nThey were, in fact, by court action deprived of their rights as owners\nof property to choose to sell or not sell that property at a price\nacceptable to them.  And for that deprivation they were _not_ made\nwhole.  And again I ask: Since when are the courts supposed to be in the\nbusiness of ensuring that \"unnecessary\" settlement costs are avoided?\n(If so, I've been miseducated -- I always thought that the courts were\nsupposed to be in the business of ensuring that justice is done.)\n\n> Is _Boomer_ really being taught as \"infamous?\"  That's really sad if\n> it is, because I fail to see how it's less than completely sensible.\n> You should read the law and economics stuff first-hand instead of\n> filtered through teachers who clearly don't like it, for whatever\n> inexplicable reasons.\n\n(1) _Boomer_ is not being taught as \"infamous,\" at least not at my\nschool.\n\n(Aside: Northeastern Law usually does a very good job of hiring for\ntheir first-year, mandatory classes (such as Torts, where I first\nencountered _Boomer_) instructors who, regardless of their personal\nopinions, can and do teach the law neutrally.  When the students get\ninto their second and third years, in which the students (a) can pick\nand choose which courses to take (except for the mandatory Professional\nResponsibility, of course) and (b) are presumed to be a bit more worldly\nand self-confident, less likely to be consciously or sub-consciously\nintimidated by Law School Professors and able to learn from openly\nbiased instructors rather than be indoctrinated by them, the instructors\ntend to be more open in expressing their own opinions.  This is\nespecially true of part-time instructors who, in real life, are\npracticing attorneys or sitting judges... this can be _very_\neducational, sometimes far more so than being taught by a somewhat\ncloistered scholar.  End of aside.)\n\nI called it infamous because that's my opinion of it.  For the reasons\nI've stated above, I believe it to be a triumph of something that I can\nonly call \"economic correctness\" over justice.\n\n(2) It is \"completely sensible\" only if you believe that the alleged\nright of the owners of Atlantic Cement to stay in business and avoid\nlosing a lot of their own money due to their own wrongful act, and\nthe alleged right of several hundred Atlantic Cement employees to\nnot have their jobs disappear, should trump the rights of people who\nown property which was damaged by Atlantic Cement's wrongful acts.\n(And if you believe that it is correct for the courts (or any other\nbranch of government) to grant to private parties the right to take\nother people's property by eminent domain.)\n\n> You'd like Posner, Bill.  He's a libertarian.\n\nReally?  I didn't know that... what, if anything, has he had to say\nabout cases like _Boomer_?\n\n> Of course, he has too much of a paper trail to ever be nominated by a\n> president, Democrat (won't like his antitrust stance) or Republican\n> (won't like his support of gay marriage), and if bright law students\n> \"shiver\" at what they don't understand, it's easy to imagine how the\n> press will play it up as baby-selling.  (I've seen Mike Godwin claim\n> that Posner asserts that law and economics is applicable to everything\n> and is the end-all and be-all, when Posner says precisely the\n> opposite.)  So it goes.\n\nI've admitted that my understanding of the field generally referred to\nas \"law and economics\" is weak.  If it advocates the use of economical\nanalysis as one of many \"tie-breaker\" factors which courts may use to\nhelp them reach decisions in cases in which the dispute, as measured by\nthe scale of \"justice\", is evenly balanced, fine.  But as illustrated by\n_Boomer_, it is _not_ fine when the courts start viewing the economics\nof a case as being more important than the justice of a case.\n\n-- William December Starr <wdstarr@athena.mit.edu>\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8799, "properties": {"category": "soc.religion.christian", "text": "From: dxf12@po.cwru.edu (Douglas Fowler)\nSubject: Giving \"spiritual gifts\"\nReply-To: dxf12@po.cwru.edu (Douglas Fowler)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 20\n\n\n     I just thought I'd share a nice experience before my exam today.\nI was walking down the streets on our campus, and a beggar came up and asked\nme for any spare change I might have.  I had a dollar or so that I gave her,\nand - not wanting to give away all my money to strangers (I generally give\na dollar as that will buy a little food at McDonalds or something) - I offered\nher some \"spiritual gifts,\" as I called them, rather than gifts of money.\nI talked of how great I felt that God had made such a pretty day, and how\nnice it was to give to people - she then said she was getting married soon.\nShe talked about how she and her husband had very little (they may not have\neven had a house, for all I know), but that they felt a very special love in\nthe Lord, an unselfish kind of caring.  It warmed my heart to know that 2\npeople can have so little monetarily, and realize that spiritually they are\nindeed very rich.  A good lesson for all of us who say we want more, more,\nmore; what we really need cannot be counted, or sold, or bought.\n-- \nDoug Fowler: dxf12@po.CWRU.edu  Heaven is a great big hug that lasts forever\n        \"And when that One Great Scorer comes to mark against your name;\n   He writes, not whether you've won or lost, but how you played the game\"\n                      --Grantland Rice\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8800, "properties": {"category": "talk.politics.mideast", "text": "From: francesca_M._Benson@fourd.com\nSubject: Serdar\nOrganization: 4th Dimension BBS\nLines: 5\nNNTP-Posting-Host: cs.utexas.edu\n\nYou are such a LOSER!!!!\n********************************************************************\nSystem: fourd.com                                Phone: 617-494-0565\nCute quote:  Being a computer means never having to say you're sorry\n********************************************************************\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8801, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mulvey@blurt.oswego.edu (Allen Mulvey, SUNY, Oswego, NY)\nSubject: Re: Can't set COM4\nDistribution: usa\nOrganization: SUNY College at Oswego, Oswego, NY\nLines: 28\n\nIn article <C5rAJn.67@cbnewsh.cb.att.com>, k4bnc@cbnewsh.cb.att.com (john.a.siegel) writes:\n> I have been unable to get COM 4 to work - diagnostic programs such as msd show\n> nothing installed.  I think the software options are OK - is there a known\n> hardware conflict and/or workaround for this problemand CD ROM\n> System is a G2K 486DX2/66 tower with ATI video card\n> Ports are set as follows \n>   On board COMa = COM1 IRQ4 to external device\n>   Internal modem = COM 3 IRQ5\n>   DFIO port card primary port = COM 2 IRQ3  mouse\n>   On board COM B = COM 4 IRQ 9  <--- DOES NOT WORK\n> I have run this from a boot disk with only command.com to eliminate softwar\n> \n> Any suggestions before I call technical support?\n> John Siegel\n> k4bnc@cbnewsh.att.com\n> jas@hrollie.hr.att.com\n\nI had this problem some time ago.  Some BIOSes do not automatically install \nCOM3 or COM4 in the port tables. Programs like most modem programs which \nwrite directly to the port work fine but anything that uses a BIOS call \nfails. Find a BBS or FTP site where you can get a copy of PORT FINDER. Put \n\"device=pf.sys\" in your config.sys or run pf.com from your autoexec.bat. \nThis little program will locate all existing ports and make sure the BIOS \ntables are updated. It works great. PF will also let you swap ports and \nsuch also if that is of any value to you.\n\n\t\t\tAllen Mulvey\n\t\t\tmulvey@blurt.oswego.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8802, "properties": {"category": "rec.motorcycles", "text": "From: irwin@cmptrc.lonestar.org (Irwin Arnstein)\nSubject: Re: Cultural Enquiries\nOrganization: CompuTrac Inc., Richardson TX\nLines: 24\n\nIn article <1phuse$5u1@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n>In article 28712@aber.ac.uk, azw@aber.ac.uk (Andy Woodward) writes:\n>>Two questions that fascinate me:-\n>\n>Check you local blue light special for a sale on lives...\n>\n>>1) Why are rednecks called rednecks?\n>\n>The origin of the slang is probably a reference to a sunburned neck,\n>often obtained while performing honest work outdoors.  The neck is\n>specified to distinguish these people, whose shirt-protected chest and\n>back are pale, from the elitist wealthy, who, in their idiotic quest\n>for darker skin pigmentation as a badge of leisure time, overdo it and\n>get full-body sunburns.\n>\n\nMore like those who use their backs instead of their minds to make\ntheir living who are usually ignorant and intolerant of anything outside\nof their group or level of understanding.\n-- \n-------------------------------------------------------------------------\n\"Tuba\" (Irwin)      \"I honk therefore I am\"       CompuTrac-Richardson,Tx\nirwin@cmptrc.lonestar.org    DoD #0826            (R75/6)\n-------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8803, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Genocide is Caused by Theism : Evidence?\nOrganization: Technical University Braunschweig, Germany\nLines: 21\n\nIn article <1qibo2$f4o@horus.ap.mchp.sni.de>\nfrank@D012S658.uucp (Frank O'Dwyer) writes:\n \n>\n>#>In the absence of some convincing evidence that theist fanatics are more\n>#>dangerous than atheist fanatics, I'll continue to be wary of fanatics of\n>#>any stripe.\n>#\n>#I think that the agnostic fanatics are the most dangerous of the lot.\n>\n>Fair point, actually.  I mentioned theists and atheists, but left out\n>agnostics.  Mea culpa.\n>\n \nNo wonder in the light of that you are a probably a theist who tries\nto pass as an agnostic. I still remember your post about your daughter\nsinging Chrismas Carols and your feelings of it well.\n \nBy the way, would you show marginal honesty and answer the many questions\nyou left open when you ceased to respond last time?\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8804, "properties": {"category": "talk.politics.mideast", "text": "From: hernlem@chess.ncsu.edu (Brad Hernlem)\nSubject: Re: was:Go Hezbollah!\nReply-To: hernlem@chess.ncsu.edu (Brad Hernlem)\nOrganization: NCSU Chem Eng\nLines: 128\n\n\nIn article <2BCE0918.6105@news.service.uci.edu>, tclock@orion.oac.uci.edu (Tim Clock) writes:\n|\n|> In article <Apr15.175334.72079@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n|> >\n|> >It is NOT a \"terrorist camp\" as you and the Israelis like \n|> >to view the villages they are small communities with kids playing soccer\n|> >in the streets, women preparing lunch, men playing cards, etc.....\n|> >SOME young men, usually aged between 17 to 30 years are members of\n|> >the Lebanese resistance.  Even the inhabitants of the village do not \n|> >know who these are, they are secretive about it, but most people often\n|> >suspect who they are and what they are up to.  These young men are\n|> >supported financially by Iran most of the time.  They sneak arms and\n|> >ammunitions into the occupied zone where they set up booby traps\n|> >for Israeli patrols.  Every time an Israeli soldier is killed or injured\n|> >by these traps, Israel retalliates by indiscriminately bombing villages\n|> >of their own choosing often killing only innocent civilians.  \n|> \n|> This a \"tried and true\" method utilized by guerilla and terrorists groups:\n|> to conduct operations in the midst of the local populace, thus forcing the\n|> opposing \"state\" to possible harm innocent civilians in their search or,\n|> in order to avoid the deaths of civilians, abandon the search. Certainly the\n|> people who use the population for cover are *also* to blaim for dragging the\n|> innocent civilians into harm's way.\n|> \n|> Are you suggesting that, when guerillas use the population for cover, Israel\n|> should totally back down? So...the easiest way to get away with attacking\n|> another is to use an innocent as a shield and hope that the other respects\n|> innocent lives?\n\nTell me Tim, what are these guerillas doing wrong? Assuming that they are using\ncivilians for cover, are they not killing SOLDIERS in THEIR country? If the\nbuffer zone is to prevent attacks on Israel, is it not working? Why is it \nfurther neccessary for Israeli guns to pound Lebanese villages? Why not just\nkill those who try to infiltrate the buffer zone? You see, there is more to\nthe shelling of the villages.... it is called RETALIATION... \"GETTING BACK\"\n...\"GETTING EVEN\". It doesn't make sense to shell the villages. The least\nit shows is a reckless disregard by the Israeli government for the lives of\ncivilians.\n\n\n|> >If Israel insists that\n|> >the so called \"Security Zone\" is necessary for the protection of \n|> >Northern Israel, than it will have to pay the price of its occupation\n|> >with the blood of its soldiers.  \n\n|> >If Israel is interested in peace, than it should withdraw from OUR land.  \n|> \n|> What? So the whole bit about attacks on Israel from neighboring Arab states \n|> can start all over again? While I also hope for this to happen, it will\n|> only occur WHEN Arab states show that they are *prepared* to take on the \n|> responsibility and the duty to stop guerilla attacks on Israel from their \n|> soil. They have to Prove it (or provide some \"guaratees\"), there is no way\n|> Israel is going to accept their \"word\"- not with their past attitude of \n|> tolerance towards \"anti-Israel guerillas in-residence\".\n\nIf Israel is not willing to accept the \"word\" of others then, IMHO, it has\nno business wasting others' time coming to the peace talks. \n\n|> >\n|> >I have written before on this very newsgroup, that the only\n|> >real solution will come as a result of a comprehensive peace\n|> >settlement whereby Israel withdraws to its own borders and\n|> >peace keeping troops are stationed along the border to insure\n|> >no one on either side of the border is shelled.\n|> \n|> Good lord, Brad. [....]\n\nNo, I am not Basil. I think Basil is a very intelligent person and I\nrespect what he writes. Basil is a person that I would gladly call\na friend. He is, however, not me. Nor am I Lebanese, as some seem to\nsuspect.\n \n|> >This is the only realistic solution, it is time for Israel to\n|> >realize that the concept of a \"buffer zone\" aimed at protecting\n|> >its northern cities has failed.  In fact it has caused much more\n|> >Israeli deaths than the occasional shelling of Northern Israel\n|> >would have resulted in.  \n|> \n|> Perhaps you are aware that, to most communities of people, there is\n|> the feeling that it is better that \"many of us die fighting\n|> against those who attack us than for few to die while we silently \n|> accept our fate.\" If,however, you call on Israel to see the sense of \n|> suffering fewer casualties, I suggest you apply the same to Palestinian,\n|> Arab and Islamic groups.\n\nTim, you are ignoring the fact that the Palestinians in Lebanon have been\ndisarmed. Hezbollah remains the only independent militia. Hezbollah does\nnot attack Israel except at a few times such as when the IDF burned up\nSheikh Mosavi, his wife, and young son. Of course, if Israel would withdraw\nfrom Lebanon and stop assassinating people and shelling villages they wouldn't\nmake the Lebanese so mad as to do that. Furthermore, with Hezbollah \nsubsequently disarmed, it would not be possible.\n\n|> >and now the Lebanese government has proven that it is\n|> >capable of controlling and disarming all militias as they did\n|> >in all other parts of Lebanon.\n|> >\n|> >Basil\n|> \n|> It has not. Without the support, and active involvement, of Syria,\n|> Lebanon would not have been able to accomplish all that has occurred.\n|> Once Syria leaves who is to say that Lebanon will be able to retain \n|> control? If Syria stays thay may be even more dangerous for Israel.\n\nTim, when is the last time that you recall any trouble on the Syrian border?\nNot lately, eh?\n\nIsrael knows very well that the Syrians are able to restrain ALL who would use\nterritory under their control to attack Israel. While Lebanon would be better\noff with Syria and Israel out of its borders, the presence of Syrian troops\nin Lebanon has meant a sharp decrease in attacks on Israeli territory (not on\nIsraeli troops in Lebanon, however. Please note the distinction) in the\npast two years.\n\n|> >  \n|> Tim\n|> \n|> Your view of this entire matter is far too serenely one-sided and\n|> selectively naive.\n\nI disagree, Basil has always seemed to me to be a cool-headed person, slow\nto anger (certainly more so than I). What is most important is that he is an \nactual witness to things from the other end of the Israeli guns. If only the \nIsraeli government would remember what it was like when the roles were \nreversed perhaps they would moderate their \"retaliation\".\n\nBrad Hernlem (hernlem@chess.ncsu.EDU)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8805, "properties": {"category": "talk.politics.mideast", "text": "From: stssdxb@st.unocal.com (Dorin Baru)\nSubject: Reasons : was Re: was: Go Hezbollah!!\nOrganization: Unocal Corporation\nLines: 35\n\n\n\nHossien Amehdi writes:\n\n>I am not in the business of reading minds, however in this case it would not\n>be necessary.  Israelis top leaders in the past and present, always come across\n>as arrogant with their tough talks trying to intimidate the Arabs.  \n\n>The way I see it, Israelis and Arabs have not been able to achieve peace\n>after almost 50 years of fighting because of the following two major reasons:.\n\n> 1) Arab governments are not really representative of their people, currently\n >   most of their leaders are stupid, and/or not independent, and/or\n>    dictators.\n\n> 2) Israeli government is arrogant and none comprising.\n\n\n\nIt's not relevant whether I agree with you or not, there is some reasonable\nthought in what you say here an I appreciate your point. However, I would make 2\nremarks: \n\n - you forgot about hate, and this is not only at government level.\n - It's not only 'arab' governments.\n\nNow, about taugh talk and arrogance, we are adults, aren't we ? Do you listen \nto tough talk of american politicians ? or switch  the channel ? \nI would rather be 'intimidated' by some dummy 'talking tough' then by a \nbomb ready to blow under my seat in B747.\n\n\n\nDorin\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8806, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jmk13@po.cwru.edu (Joseph M. Kasanic)\nSubject: Re: how do you like the Apple Color OneScanner?\nArticle-I.D.: usenet.1pt46r$li6\nDistribution: world\nOrganization: Case School of Engineering\nLines: 19\nNNTP-Posting-Host: b63545.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7E78C567302F839@b63545.student.cwru.edu>\nX-XXDate: Tue, 6 Apr 93 03:36:54 GMT\n\nIn article <1993Apr5.203903.12192@midway.uchicago.edu> JohnC,\njcav@ellis.uchicago.edu writes:\n>We're all set to buy one of these for the office, to use for scanning in\n>color photographs and for optical character recognition.  We've played\nwith\n>the original grayscale OneScanner and were very pleased.  Is the color\nmodel\n>comparable in quality?\n>\n>Also, what brand of OCR software would you recommend?  We're leaning\ntoward\n>Caere OmniPage.  Any better ideas?  Thanks.\n\nI work in a campus bookstore and we had the opportunity to demo the Color\nOne\nScanner.  I found it to be very impressive as well as affordable (with the\n educational discount of course!).  Note also that it comes with Ofoto\nsoftware\nwhich is sufficient for our needs.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8807, "properties": {"category": "talk.politics.mideast", "text": "From: ohayon@jcpltyo.JCPL.CO.JP (Tsiel Ohayon)\nSubject: Re: Israeli Terrorism, Anas the Anus\nOrganization: James Capel Pacific Limited, Tokyo Japan\nLines: 20\n\nAnas Omran writes in his earlier posting:\n\n[ANAS] A high rank Israeli officer was killed during a clash whith a Hamas\n[ANAS] Mujahid.  The terrorist Israelis chased and killed a young Mujahid\n[ANAS] using anti-tank missiles.  The terrorist zionists cut the Mujahid's\n[ANAS] body into small pieces to the extend that his body was not recognized.\n[ANAS] At leat ten houses were destroyed by these atni-tank missiles.\n\nIf indeed Israeli soldiers killed a \"Hamas Mujahid\" with an anti-tank missile\nthen I'm almost sure that the \"terrorist zionists\" would not have been able\nto cut up a body which was probably desintegrated by the missile.\n\nStop polluting the net with you fantasies.\n\nTsiel\n-- \n----8<--------------------------------------------------------------->8------\nTsiel:ohayon@jcpl.co.jp\t   | If you do not receive this E-mail, please let me\nEmployer may not have same | know as soon as possible, if possible.\nopinions, if any !         | Two percent of zero is almost nothing.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8808, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Keith Schneider - Stealth Poster?\nOrganization: California Institute of Technology, Pasadena\nLines: 19\nNNTP-Posting-Host: lloyd.caltech.edu\n\nmam@mouse.cmhnet.org (Mike McAngus) writes:\n\n>Let me see if I understand what you are saying.  In order to talk \n>knowledgeably about religion, Atheists must first have been so immersed \n>in a religion that only the rare individual could have left.  \n\nNo, you don't understand.  I said that I don't think people can discuss\nthe subjective merits of religion objectively.  This should be obvious.\nPeople here have said that everyone would be better off without religion,\nbut this almost certainly isn't true.\n\n>>But really, are you threatened by the motto, or by the people that use it?\n>The motto is a tool.  Let's try to take away the tool.\n\nBut, guns and axes are tools, both of which have been used for murder.\nShould both be taken away?  That is to say, I don't think motto misuse\nwarrants its removal.  At least not in this case.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8809, "properties": {"category": "misc.forsale", "text": "From: holmes@mrx.webo.dg.com (Chris Holmes)\nSubject: CASIO CZ-101 49 key synth $125/BO\nReply-To: holmes@mrx.webo.dg.com\nOrganization: Data General Corporation, Westborough, MA\nLines: 29\n\nOK... I've done a little research and the price I've been asking\nwas a BIT high.  So...\n\n\tCasio CZ-101 Synthesizer\t$125 or best offer\n\nFeatures:\nuses FM modulation to create sounds -- \n\tprogrammable ADSR envelopes for each of 2 DCA's (amplitude), 2 DCW's \n\t(pitch, like a VCF), and 2 DCO's (waveform, like VCO) with up to 8 \n\tsteps for each\n16 preset sounds, 8 more in memory, 8 more still in RAM cartridge.\n49 stubby keys\nPitch Bend Wheel\nMIDI in/out ports\n\nIncludes:\nAll the manuals you could ever want\nAC adapter (can use 6 D batteries)\nLine cord\n1 RAM cartridge -- holds 8 additional sounds\n\nI'll throw in a bunch of sheet music and \"Play Rock Keyboards\" too.\n\n-- \n-----------------------------+------------------------------------------------\n     Christopher Holmes      |   Do not insert this email in the ear canal.\n Terminals Development Group |  My evil twin blew up the World Trade Center\n   Data General Corporation  |   and all I got was this stupid .sig file!\n        Westboro, MA         |       Internet: holmes@mrx.webo.dg.com \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8810, "properties": {"category": "sci.space", "text": "From: gary@ke4zv.uucp (Gary Coffman)\nSubject: Re: What if the USSR had reached the Moon first?\nReply-To: gary@ke4zv.UUCP (Gary Coffman)\nOrganization: Destructive Testing Systems\nLines: 63\n\nIn article <93110.031905SAUNDRSG@QUCDN.QueensU.CA> Graydon <SAUNDRSG@QUCDN.QueensU.CA> writes:\n>In article <1993Apr18.091051.14496@ke4zv.uucp>, gary@ke4zv.uucp (Gary Coffman)\n>says:\n>>It's conceivable that Luna will have a military purpose, it's possible\n>>that Luna will have a commercial purpose, but it's most likely that\n>>Luna will only have a scientific purpose for the next several hundred\n>>years at least. Therefore, Lunar bases should be predicated on funding\n>>levels little different from those found for Antarctic bases. Can you\n>>put a 200 person base on the Moon for $30 million a year? Even if you\n>>use grad students?\n>\n>You might be able to _run_ one for that; put it there, hardly.\n>\n>Why do you think at least a couple centuries before there will\n>be significant commerical activity on the Moon?\n\nWishful thinking mostly. It's more likely that the Moon will never\nbe the site of major commercial activity. As far as we know it has no\nmaterials we can't get cheaper right here on Earth or from asteroids\nand comets, aside from the semi-mythic He3 that *might* be useful in low\ngrade fusion reactors. Exploring it would satisfy a curiosity itch, \nand it's position in the gravity well of Earth coupled with it's heat \nsink capacity could offer some military utility for \"high ground\" military\nweapons systems, but it holds very minute commercial value. If space \ntravel becomes cheap enough, it might become a tourist attraction as \nMt. Everest and the Antarctic have become, but that's a very minor \nactivity in the global scope of things.\n\nLuna has an inconvienent gravity field. It's likely too low to prevent\ncalcium loss, muscle atrophy, and long term genetic drift. Yet it's\ntoo high to do micro-G manufacturing. Space based colonies and factories\nthat can be spun to any convienent value of G look much better. Luna\nhas a modest vacuum and raw solar exposure two weeks a month, but orbital\nsites can have better vacuums and continous solar exposure. Luna offers\na source of light element rocks that can serve as raw materials, heatsink,\nand shielding. The asteroids and comets offer sources of both light and\nheavy elements, and volatile compounds, and many are in less steep gravity\nwells so that less delta-v is required to reach them.\n\nWe don't use 2/3rds of the Earth now, the seafloors, and we virtually\nignore Antarctica, a whole continent. That's because we don't have to\ndeal with those conditions in order to make a buck. Luna is a much more\nexpensive place to visit, or to live and work. I think we'll use the\neasier places first. That pushes Lunar development back at least a few\ncenturies, if not much longer.\n\nLuna's main short term value would be as a place for a farside radio\nastronomy observatory, shielded from the noisy Earth. Or as the site\nof a laser, particle beam, or linear accelerator weapons system for\ndefending Earth, or bombarding it as the case may be. The first is\nunlikely because of the high cost for such a basic science instrument.\nThe second is just as unlikely because conventional nukes are good\nenough, and the military would really rather see the Earth safe for\nconventional warfare again. There's little glory in watching from a\nbunker as machines fight each other over continental ranges. Little\nultimate profit either.\n\nGary\n-- \nGary Coffman KE4ZV          |    You make it,     | gatech!wa4mei!ke4zv!gary\nDestructive Testing Systems |    we break it.     | uunet!rsiatl!ke4zv!gary\n534 Shannon Way             |    Guaranteed!      | emory!kd4nc!ke4zv!gary \nLawrenceville, GA 30244     |                     | \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8811, "properties": {"category": "soc.religion.christian", "text": "From: jsledd@ssdc.sas.upenn.edu (James Sledd)\nSubject: intolerance - eternal life - etc\nOrganization: Social Science Computing\nLines: 89\n\nHi Xian Netters,  God bless you\n\nCONTENTS\n1. intro\n2. love your neighbor\n3. reaction to posts\n   a. purpose\n   b. eternal life\n\nI've been reading this news group religiously =) for about a month. \nSometimes It really gives me what I need, spiritually.  At other times I\nget a little IRATE.  \n\nThere are all kinds of people in every group and I take offense at\nintolerance.  It's awfully hard to tolerate such people. =) ( OOPS! I've\ngone over my smiley quota already and it's only the second paragraph =(. \nIMHO they should follow the commandment to love thy neighbor and leave\nthe judging up to GOD.  \n\nSPECIFICALLY:\none's sexual orientation is part of one's self\nlove the sinner hate the sin DOES NOT APPLY\n\nPay attention fundaligionists.  Love your neighbor wether you like it\nor not.  I'd be happy to get flamed endlessly and loose scripture\nquotation contests galore to defend this point.  I beleive this is\ncorrect. \n\nBTW Love the sinner hate the sin is a slippery slope, with hatred at the\nbottom. \n\n\nINCREDIBLY CHOPPED UP POST\nI won't even try to tell you where the deletions came out\n> means Jayne\n>> means Dan Johnson\n>>> means Eric\n\nIn article 28388@athos.rutgers.edu, jayne@mmalt.guild.org \n(Jayne Kulikauskas) writes:\n>gsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n\n>No free gifts of meaning. (I never quite understood how any\n>God can just \"give\" your life meaning, actually. If he\n>says you exists to do or be X, that gives you a purpose\n>if you care to accept it, but is that the same thing? But\n>I digress...) \n\nI find that I am dissatisfied with the little purposes that we can\nmanufacture for ourselves.  Little in the cosmic sense.  Even the\ngreatest of the great pharos are long gone, the pyramids historical\noddities being worn down by the wind, eventually to be turned into dust.\nMankind itself will one day perish.  Without some interconnectedness\nthat transcends the physical, without God, it is all pointless in the\nend.  Most people are able to live with that, and for them little\npurposes (success, money, power, effecting change, helping others)\nsuffice.  I suppose they never  think about the cosmic scale, or are at\nleast able to put it out of their minds.\n\nTo me, it is comforting to know that reality is an illusion.  That the\ntrue reality underneath the the physical is spirit.  That this world is\na school of sorts, where we learn and grow, and our souls mature.  That\ngives a purpose to my little purposes, and takes some of the pressure\noff.  It's not so necessary to make this life a success in human terms\nif you're really just here to learn.  It's more important to progress,\ngrow, persist, to learn to love yourself and others and to express your\nlove, especially when it's dificult to do so.  Honest effort is rewarded\nby God, he knows our limitations.\n\n\n>> I will live forever with God.\n>\n>Ah, now here we begin to diverge. I will not live forever\n>with anyone.\n>\n>(I don't think you will either, but you are welcome to your\n>opinion on the matter.)\n\nInteresting theological question.  I have a feeling that most common\nperception of eternal life is WAY off base.  If I were to be imprisoned\nin the limited ego/mind I am in now I doubt I would choose imortality. \nIt would get awfully boring.  \n\nTWO SERIOUS QUESTIONS/INVITATIONS TO DISCUSSION\n1. What is the nature of eternal life?\n2. How can we as mortals locked into space time conceive of it?\n\nPossible answer for #2: The best we can do is Metaphor/Analogy\nQuestion 2A  What is the best metaphor?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8812, "properties": {"category": "soc.religion.christian", "text": "From: nichael@bbn.com (Nichael Cramer)\nSubject: Re: Some questions from a new Christian\nReply-To: ncramer@bbn.com\nOrganization: BBN, Interzone Office\nLines: 49\n\nOFM responds to a query about reference works:\n\n   [Aside from a commentary, you might also want to consider an\n   introduction.  These are books intended for use in undergraduate Bible\n   courses.  They give historical background, discussion of literary\n   styles, etc.  And generally they have good bibligraphies for further\n   reading.  I typically recommend Kee, Froehlich and Young's NT\n   introduction...\n\nTwo other Intros to consider:\n\nThe \"Introduction\" by Ku:mmel is a translation of a strandard NT text.\nThe references are slightly dated and the style is somewhat dense, but\nthe book contains a wealth of information.\n\nPerrin and Duling's Intro is also very good.  It's somewhat more\nmodern than Ku:mmel's but not quite so densely packed.  Also the\nauthors tend to go through the books of the NT in the historical order\nof composition; this gives a very useful perspective on the\ndevelopment of the NT.\n\n   ... There are also some good one-volume commentaries.  ... Probably the\n   best recommendation these days would be Harper's Bible Commentary.\n\nA slight dissent: I think the Harper's is \"OK\" but not great.  One\nparticular problem I have is that it tends to be pretty skimpy on\nbibliographic material.  My feeling is that it is OK for quick\nlook-ups, but not real useful for study in depth (e.g. I keep a copy\nin my office at work).\n\n   ... (I think there may be a couple of books with this title...\n\nSo far as I know there is the only one book with this exact title\n(James L Mays, general editor, Harper and ROw, 1988) although I think\nI recall a (older) series under the name \"Harper Commentaries\".  Also\nthere's a separate Harper's Bible Dictionary (most of my comments on\nthe HC also apply to the HBD.)\n\nMy favorite one-volume commentary is the \"New Jerome Biblical\nCommentary\".  The NJBC is rather Catholic in focus and somewhat biased\ntowards the NT.  (The reader can decide for her- or himself whether\nthese are pluses or minuses.)  In any case the scholarship is by and\nlarge excellent.\n\nNOTE: The NJBC is a completely reworked, updated version of the\n\"Jerome Biblical Commentary\", copies of which can still be found on\nsale.\n\nNichael\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8813, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith)\nSubject: Re: IDE vs SCSI\nOrganization: The John P. Robarts Research Institute, London, Ontario\nNntp-Posting-Host: valve.heart.rri.uwo.ca\nLines: 54\n\nIn article <1qk7kvINNndk@dns1.NMSU.Edu> bgrubb@dante.nmsu.edu (GRUBB) writes:\n>>point of view, why does SCSI have an advantage when it comes to multi-\n>>tasking?  Data is data, and it could be anywhere on the drive.  Can\n>>SCSI find it faster?  can it get it off the drive and into the computer\n>>faster?  Does it have a better cache system?  I thought SCSI was good at\n>>managing a data bus when multiple devices are attached.  If we are\n>>only talking about a single drive, explain why SCSI is inherently\n>>faster at managing data from a hard drive.\n\n>IDE:  Integrated Device Electronics \n> currently the most common standard, and is mainly used for medium sized \n> drives. Can have more than one hard drive. Asynchronous Transfer: ~5MB/s max.\n\nWhy don't you start with the spec-sheet of the ISA bus first?\nYou can quote SCSI specs till you're blue in the face, but if they\nexceed the ISA bus capability, then what's the point?\n\nWho says IDE is limited to 5 megs/sec?  What about VLB-IDE?  Does anyone\nknow how they perform?\n\n>So at its LOWEST setting SCSI-2 interface in Asynchronous SCSI-1 mode AVERAGES \n>the through put MAXIMUM of IDE in asynchronous mode.  In full SCSI-2 mode\n>it blows poor IDE out the window, down the street, and into the garbage can.\n\nAs implimented on what system?  \n\n>The problem becomes can the drive mechanisim keep up with those through put\n>rates and THAT is where the bottleneck and cost of SCSI-2 comes from.  NOT\n>the interface itself but more and more from drive mechanisims to use the\n>SCSI-2 through put.  \n\nGiven the original question (SCSI used only as a single hard drive\ncontroller),  is it then necessary to get a SCSI drive that will do\nat least 5, maybe 10 megs/sec for the SCSI choice to make any sence?\nWhat does a 200-400 meg 5 megs/sec SCSI drive cost?\n\n>The cost of SCSI interface is a self fulliling\n>prophisy: few people buy SCSI because it is so expencive for the PC, which\n>in turn convices makes that mass producing SCSI {which would reduce its\n>cost} is unwarented, and so SCSI is expencive. {That is the effect of the\n>Rule of Scale: the more items sold the less EACH item has to bare the brunt\n>the cost of manufacture and so the less each item has to cost}\n\nThe original CGA cart back in '84 was $300.  I think the original EGA card\n(or PGA?) was $800.  SCSI has stood relatively alone in not coming down\nin price, mainly because we're talking about PC's and not Sun's or Sparc\nor SGI or (name your favorite unix workstation).  That is, after millions\nof PC buying decisions over the years, SCSI has had plenty of time to\ncome down in price.\n\nI won't argue that the SCSI standard makes for a good, well implimented\ndata highway, but I still want to know why it intrinsically better\n(than IDE, on an ISA bus) when it comes to multi-tasking OS's when\nmanaging data from a single SCSI hard drive.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8814, "properties": {"category": "rec.sport.hockey", "text": "From: chuck@mks.com (Chuck Lownie)\nSubject: Re: Tie Breaker....(Isles and Devils)\nOrganization: Mortice Kern Systems Inc., Waterloo, Ontario, CANADA\nLines: 27\n\nIn article <lrw509f@rpi.edu> wangr@rpi.edu writes:\n>\tAre people here stupid or what??? It is a tie breaker, of cause they\n>have to have the same record. How can people be sooooo stuppid to put win as\n>first in the list for tie breaker??? If it is a tie breaker, how can there be\n>different record???? Man, I thought people in this net are good with hockey.\n>I might not be great in Math, but tell me how can two teams ahve the same points\n>with different record??? Man...retard!!!!!! Can't believe people actually put\n>win as first in a tie breaker......\n>\n>\n\n\nI didn't see any smilies in this message so.......\n\n                W     T    L    PTs\n   Team A      50    30    4    104\n   Team B      52    32    0    104\n\n\nThere you go.  Two teams that tie in points without identical records.\n\n\n-- \n\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8815, "properties": {"category": "sci.med", "text": "From: turpin@cs.utexas.edu (Russell Turpin)\nSubject: Re: H E L P   M E   ---> desperate with some VD\nOrganization: CS Dept, University of Texas at Austin\nLines: 17\nNNTP-Posting-Host: saltillo.cs.utexas.edu\nSummary: Here's help.\n\n-*----\nIn article <1993Apr17.115716.19963@debbie.cc.nctu.edu.tw> mjliu@csie.nctu.edu.tw (Ming-zhou Liu) writes:\n> I have bad luck and got a VD called <Granuloma ingunale>, which involves\n> the growth of granules in the groin.  I found out about it by checking \n> medicine books and I found the prescriptions. ...\n\nMing-zhou Liu's main problem is that he has an incompetent\nphysician -- himself.  This physician has diagnosed a problem,\neven though he probably has never seen the diagnosed disease\nbefore and has no idea of what kinds of problems can present\nsimilar symptoms.  This physician now wants to treat his first\ncase of this disease without any help from the medical community.\n\nThe best thing Ming-zhou Liu could do is fire his current\nphysician and seek out a better one.\n\nRussell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8816, "properties": {"category": "alt.atheism", "text": "From: mangoe@cs.umd.edu (Charley Wingate)\nSubject: Benediktine Metaphysics\nLines: 24\n\nBenedikt Rosenau writes, with great authority:\n\n>     IF IT IS CONTRADICTORY IT CANNOT EXIST.\n\n\"Contradictory\" is a property of language.  If I correct this to\n\n\n      THINGS DEFINED BY CONTRADICTORY LANGUAGE DO NOT EXIST\n\nI will object to definitions as reality.  If you then amend it to\n\n      THINGS DESCRIBED BY CONTRADICTORY LANGUAGE DO NOT EXIST\n\nthen we've come to something which is plainly false.  Failures in\ndescription are merely failures in description.\n\n(I'm not an objectivist, remember.)\n\n\n-- \nC. Wingate        + \"The peace of God, it is no peace,\n                  +    but strife closed in the sod.\nmangoe@cs.umd.edu +  Yet, brothers, pray for but one thing:\ntove!mangoe       +    the marv'lous peace of God.\"\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.418+0000", "event": "documents", "entityId": 8817, "properties": {"category": "soc.religion.christian", "text": "From: phs431d@vaxc.cc.monash.edu.au\nSubject: Re: The arrogance of Christians\nOrganization: Monash University - Melbourne. Australia.\nLines: 41\n\nIn article <Apr.13.00.08.47.1993.28427@athos.rutgers.edu>, hayesstw@risc1.unisa.ac.za (Steve Hayes) writes:\n> \n> Say, for example, there are people living on a volcanic island, and a group \n> of geologists determine that a volcano is imminent. They warn the people on \n> the island that they are in danger, and should leave. A group of people on \n> the island is given the task of warning others of the danger.\n> \n> They believe the danger is real, but others may not. \n> \n> Does that mean that the first group are NECESSARILY arrogant in warning \n> others of the danger? Does it mean that they are saying that their beliefs \n> are correct, and all others are false?\n\nBut what if the geologists are wrong and these people are warning of a\nnon-existent danger?  Analogies can only push an argument so far (on both\nsides).  Both Melinda's and yours assume the premises used to set up your\nrespective analogies are true and thus the correct conclusion will arise.\n\nThe important point to note is the different directions both sides come from.\nChristians believe they know the TRUTH and thus believe they have the right\n(and duty) to tell the TRUTH to all.  \n\nChristians can get offended if others do not believe (what is self-evidently\nto them) the TRUTH. Non-christians do not believe this is the TRUTH and get\noffended at them because they (christians) claim to know the TRUTH.\n\n(BTW this argument goes for anyone, I am not just bagging christians)\n\nNeither side can be really reconciled unless one of the parties changes their\nmind.  As Melinda pointed out, there is no point in arguing along these lines\nbecause both approach from a different premise.  A more useful line of\ndiscussion is WHY people believe in particular faiths.\n\nPersonally, I don't mind what anyone believes as long as they allow me mine\nand we can all live peacefully.\n\n> Steve Hayes, Department of Missiology & Editorial Department\n\n-- \nDon Lowe, Department of Physics, Monash University, \nMelbourne, Victoria, Australia, 3168.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8818, "properties": {"category": "talk.politics.guns", "text": "From: tzs@stein.u.washington.edu (Tim Smith)\nSubject: Re: FBI Director's Statement on Waco Standoff\nArticle-I.D.: shelley.1r2ko0INNqe5\nOrganization: University of Washington School of Law, Class of '95\nLines: 9\nNNTP-Posting-Host: stein.u.washington.edu\n\nfeustel@netcom.com (David Feustel) writes:\n>We have NO evidence that BATF & FBI would not have started shooting\n>when and if people had started coming out of the burning building.\n\nOh?  How about the press?  If the BATF & FBI were going to shoot people\nleaving a burning building, don't you think they would get rid of the\npress first?\n\n--Tim Smith\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8819, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: Mike Francesa's 1993 Predictions\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 24\n\nIn article <1993Apr5.123904.17806@porthos.cc.bellcore.com> dick1@herahera.cc.bellcore.com (vaughn,richard) writes:\n>In article <1993Apr2.171819.1@ulkyvx.louisville.edu>, pjtier01@ulkyvx.louisville.edu writes:\n>> In article <1993Apr2.133703.28131@porthos.cc.bellcore.com>, dick1@herahera.cc.bellcore.com (vaughn,richard) writes:\n\n>>> Mike Francesa mentioned his '93 baseball picks in\n>>> passing on the radio yesterday.  Being that this is Francesa\n>>> talkin', the opinions are well worth consideration.\n\n>> Indeed!  After all, he was the wizard foresaw the Year of the Big East in the\n>> NCAA Tournament!  Unfortunatly, none of those teams made it into the Sweet\n>> Sixteen, much less New Orleans.\n\nNeither did he!\n\n>Overall Mike Francesa has an *outstanding* prediction record.\n\nOverall?  How do you figure?\n\n>Ignore him at your own peril.\n\nSo far my radio hasn't exploded from not being tuned to 660...\n\n\nRoger\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8820, "properties": {"category": "misc.forsale", "text": "From: richg@sequent.com (Richard Garrett)\nSubject: Wanted original Shanghai for PC\nArticle-I.D.: sequent.1993Apr21.153350.28573\nDistribution: na\nOrganization: Sequent Computer Systems, Inc.\nLines: 11\nNntp-Posting-Host: crg8.sequent.com\n\nI am looking for shanghai, solitaire game with mahjongg tiles\nfor PC's.  if you have a copy laying around, send email to:\n\nrichg@sequent.com\n\nthanks,\n-- \n             OOo O                Rich Garrett\n             O oO                 richg@sequent.com\n              o                   WORK (503) 578-3822\n       _____ o o\t\t  \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8821, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Morality? (was Re: <Political Atheists?)\nOrganization: sgi\nLines: 47\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1ql667INN54a@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >I don't expect the lion to know, or not know anything of the kind.\n|> >In fact, I don't have any evidence that lions ever consider such \n|> >issues.\n|> >And that, of course, is why I don't think you can assign moral\n|> >significance to the instinctive behaviour of lions.\n|> \n|> What I've been saying is that moral behavior is likely the null behavior.\n|> That is, it doesn't take much work to be moral, but it certainly does to\n|> be immoral (in some cases).\n\nThat's the craziest thing I ever heard.   Are you serious?\n\n\t\"it doesn't take much work to be moral?\"\n\n|> Also, I've said that morality is a remnant of evolution.  \n\nReally?   And that's why people discuss morality on a daily basis?\nBecause it's a kind of evolutionary hangover, like your little toe?\n\n|> Our moral system is based on concepts well practiced in the animal \n|> kingdom.\n\nThis must be some novel use of the phrase \"based on\" with which I\nam not sufficiently familiar.    What do you mean by \"based on\" and \nwhat is the significance of it for your argument?\n\n|> \n|> >>So you are basically saying that you think a \"moral\" is an undefinable\n|> >>term, and that \"moral systems\" don't exist?  If we can't agree on a\n|> >>definition of these terms, then how can we hope to discuss them?\n|> >\n|> >No, it's perfectly clear that I am saying that I know what a moral\n|> >is in *my* system, but that I can't speak for other people.\n|> \n|> But, this doesn't get us anywhere.  Your particular beliefs are irrelevant\n|> unless you can share them or discuss them...\n\nWell, we can.   What would you like to know about my particular moral\nbeliefs?\n\nIf you raise a topic I've never considered, I'll be quite happy to \ninvent a moral belief out of thin air.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8822, "properties": {"category": "rec.sport.baseball", "text": "From: dtate+@pitt.edu (David M. Tate)\nSubject: Re: Notes on Jays vs. Indians Series\nDistribution: na\nOrganization: Department of Industrial Engineering\nLines: 34\n\nSubstituting irony for brains, (Bruce Klopfenstein) said:\n\n>dtate+@pitt.edu (David M. Tate) writes:\n\n>> Of *course* they left RBIs off; we're comparing Alomar the individual with\n>> Baerga the individual, so only individual stats count.  \n\n>I forgot.  Most runs are scored by players stealing home, so RBI don't\n>count for anything.\n\nUh, right.  You also forgot that you can't get an RBI (barring a HR) with\nnobody on base.  What fraction of all runs come on solo HR?\n\nMost runs are scored because there happened to be players on base when the\nbatter did something good.  I use the phrase \"happened to be\" advisedly.\nLots of people have tried to figure out who the players are who have the\nmost ability to \"turn it up a notch\" in clutch/RBI/whatever situations, and\nwhat they've found is that there is no evidence that *anyone* has such an\nability to any measurable extent.  There are no clutch hitters.  People who\ntend to do things that *would* cause an RBI if there were somebody on base\nend up getting RBIs proportional to how many of their teammates obliged by\nbeing in position.  \n\n>My mistake.\n\nI agree.\n\n\n\n-- \n   David M. Tate   (dtate+@pitt.edu) |  Greetings, sir, with bat not quick \n     member IIE, ORSA, TIMS, SABR    |  Hands not soft, eye not discerning\n                                     |  And in Denver they call you a slugger?\n   \"The Big Catullus\" Galarraga      |  And compare you to my own Mattingly!?\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8823, "properties": {"category": "talk.religion.misc", "text": "From: mathew@mantis.co.uk (mathew)\nSubject: Re: After 2000 years, can we say that Christian Morality is oxymoronic?\nOrganization: Mantis Consultants, Cambridge. UK.\nLines: 32\nX-Newsreader: rusnews v1.01\n\nforgach@noao.edu (Suzanne Forgach) writes:\n> From article <1qcq3f$r05@fido.asd.sgi.com>, by livesey@solntze.wpd.sgi.com \n> (Jon Livesey):\n> > If there is a Western ethic against infanticide, why\n> > are so many children dying all over the world?\n> \n> The majority of the world isn't \"Western\".\n\nSuperficially a good answer, but it isn't that simple.  An awful lot of the\nstarvation and poverty in the world is directly caused by the economic\npolicies of the Western countries, as well as by the diet of the typical\nWesterner.  For instance, some third-world countries with terrible\nmalnutrition problems export all the soya they can produce -- so that it can\nbe fed to cattle in the US, to make tender juicy steaks and burgers.  They\nhave to do this to get money to pay the interest on the crippling bank loans\nwe encouraged them to take out.  Fund-raising for Ethiopia is a truly bizarre\nidea; instead, we ought to stop bleeding them for every penny they've got.\n\nPerhaps it's more accurate to say that there's a Western ethic against\nWestern infanticide.  All the evidence suggests that so long as the children\nare dying in the Third World, we couldn't give a shit.  And that goes for the\nsupposed \"Pro-Life\" movement, too.  They could save far more lives by\nfighting against Third World debt than they will by fighting against\nabortion.  Hell, if they're only interested in fetuses, they could save more\nof those by fighting for human rights in China.\n\nAnd besides, Suzanne's answer implies that non-Western countries lack this\nethic against infanticide.  Apart from China, with its policy of mandatory\nforced abortion in Tibet, I don't believe this to be the case.\n\n\nmathew\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8824, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dewinter@prl.philips.nl (Rob de Winter)\nSubject: WANTED: Address SYMANTEC\nOriginator: dewinter@prl.philips.nl\nOrganization: Philips Research Laboratories, Eindhoven, The Netherlands\nLines: 17\n\nI am looking for the exact address of the Symantec Coporatoin, which \ndistributes Norton Desktop and other Windows software.\n\nThe information I am looking for is:\n\nMail address\nPhone number\nFax number\nE-mail address\n\nThanks in advance.\n\n-- \n*** Nothing beats skiing, if you want to have real fun during holidays. ***\n***       Rob de Winter  Philips Research, IST/IT, Building WL-1        ***\n***       P.O. Box 80000, 5600 JA  Eindhoven. The Netherlands           ***\n***       Tel: +31 40 743621  E-mail: dewinter@prl.philips.nl           ***\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8825, "properties": {"category": "comp.sys.mac.hardware", "text": "From: cph@quake.sylmar.ca.us (charles hobbs)\nSubject: Color inks for Stylewriter\nOrganization: Quake Public Access, Sylmar CA\nLines: 9\n\nI know that Jet Inc makes refills for the Stylewriter and Deskwriter\nink jet cartridges in several colors....but are pre-filled cartridges\nin color available from anyone (or do I have to use-up one cartridge \nbefore I have a chance to print in color?)\n\nAlso, are inks in process colors (cyan, magenta, yellow) available\nto refill cartridges?\n\nThanks in advance....\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8826, "properties": {"category": "comp.sys.mac.hardware", "text": "From: chyang@engin.umich.edu (Chung Hsiung Yang)\nSubject: Re: Computer Engr vs. Computer Science\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 54\nDistribution: usa\nNNTP-Posting-Host: arno.engin.umich.edu\n\nIn article <tecot.735093703@Xenon.Stanford.EDU> tecot@Xenon.Stanford.EDU (Edward M. Tecot) writes:\n>>A professor of mine once said \"The difference between a Computer Engineer and\n>>a Computer Scientist is about $5000\" meaning the Engineer makes $5000 more than\n>>P.S. The $5000 is not just a joke\n>>Scott\n>\n>For the most part, this is a bunch of bunk.  I've got a Computer Engineering\n>degree, yet I've spent the last 7 years writing software that people actually\n>use.  Moreover, the salary distinctions are incorrect; I received 3 job offers\n>upon graduation; the two jobs that actually used my hardware experience were\n>$7000/year lower!  My advice is to decide which classes and projects most\n>interest you, and pick the major that allows you to take them.\n>\n>_emt\n\n\tWell here is my $0.02 worth.  Advice from a grad student.\n\n\tI agree with the gentlemen who wrote the comment before me.\nThe important thing is pick what ever interest you the most and \nlearn as much as possible about it.  \n\n\tIn my five years of education in this field, though brief \ncompare to alot of people, I had to think about this kind of \nquestion a lot.  Did I make the right decision in going into\nElectrical Engineering as opposed to Computer engineering or\nCS?  The more I go thru school, the more I believe that this\nkind of question is irrelevant.  \n \n\tI have come to believe that choosing CS because one \ndoes not like hardware or choosing hardware because one does\nnot like to program is really doing an injustice of building\nand computer and making it useful for something.  Everything\nis interwoven and inseparable.  CS, CE, and EE are all a \npart of a really great discipline and do depend on each other.\n\n\tMy advice is don't limit yourself, but make a decision\nbased on which major will give you the best opportunities to \nlearn.  That of course depends on the curriculum at your \npersective school.  I would choose a major that allows me to\nexplore as much as possible.  Beside, I don't know why the\nschool would make a student choose a major before her/his\nsophamore year.                  \n\n\tHey you may be so interested in this field that you \ndecided to learn all about the making of computers in which \ncase, you suffer a little more and go to grad school.\n\n\tAbout the money.  Don't look at the averages, if you\nare good, you are going to earn more money than anyone else. \nIf you are a superstar programmer, you will earn millions.  \nLike wise if you are a hotshot computer designers.        \n\n- Chung Yang\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8827, "properties": {"category": "rec.autos", "text": "From: cka52397@uxa.cso.uiuc.edu (CarolinaFan@uiuc)\nSubject: Re: Saturn's Pricing Policy\nArticle-I.D.: news.C51sMA.AnC\nOrganization: University of Illinois at Urbana\nLines: 75\n\ncs012055@cs.brown.edu (Hok-Chung Tsang) writes:\n\n>In article <C4vIr5.L3r@shuksan.ds.boeing.com>, fredd@shuksan (Fred Dickey) writes:\n>|> CarolinaFan@uiuc (cka52397@uxa.cso.uiuc.edu) wrote:\n>|> : \t\n>|> : \tThe biggest problem some people seem to be having is that Saturn\n>|> : Dealers make ~$2K on a car.  I think most will agree with me that the car is\n>|> : comparably priced with its competitors, that is, they aren't overpriced \n>|> : compared to most cars in their class.  I don't understand the point of \n>|> : arguing over whether the dealer makes the $2K or not?  \n>|> \n>|> I have never understood what the big deal over dealer profits is either.\n>|> The only thing that I can figure out is that people believe that if\n>|> they minimize the dealer profit they will minimize their total out-of-pocket\n>|> expenses for the car. While this may be true in some cases, I do not\n>|> believe that it is generally true. I bought a Saturn SL in January of '92.\n>|> AT THAT TIME, based on studying car prices, I decided that there was\n>|> no comparable car that was priced as cheaply as the Saturn. Sure, maybe I\n>|> could have talked the price for some other car to the Saturn price, but\n>|> my out-of-pocket expenses wouldn't have been any different. What's important\n>|> to me is how much money I have left after I buy the car. REDUCING DEALER PROFIT\n>|> IS NOT THE SAME THING AS SAVING MONEY! Show me how reducing dealer profit\n>|> saves me money, and I'll believe that it's important. My experience has\n>|> been that reducing dealer profit does not necessarily save me money.\n>|> \n>|> Fred\n\n\n>Say, you bought your Saturn at $13k, with a dealer profit of $2k.\n>If the dealer profit is $1000, then you would only be paying $12k for\n>the same car.  So isn't that saving money?\n\t\n\tYes.  But the point is that prices are competetive.  Saturn may\nwell be selling a car intended on giving the dealer a $2000 profit, but \nsince a comperable Honda with $500 profit is more expensive, it may be well\nworth it to buy the Saturn.\n\n>Moreover, if Saturn really does reduce the dealer profit margin by $1000, \n>then their cars will be even better deals.  Say, if the price of a Saturn was\n>already $1000 below market average for the class of cars, then after they\n>reduce the dealer profit, it would be $2000 below market average.  It will:\n\n>1) Attract even more people to buy Saturns because it would SAVE THEM MONEY.\n> \n>2) Force the competitors to lower their prices to survive.\n\n>Now, not only will Saturn owners benefit from a lower dealer profit, even \n>the buyers for other cars will pay less.\n\n\n\tNot necessarily.  It seems to me that Saturn salesdroids, who don't \nmake a commision, whereas their counterparts at other dealerships generally\ndo, make more $$ per hour or whatever.  This means that Saturn doesn't give up\nthe profit to their employees through commision, which IS taken out of per-\ncar profits.  They just pass it along to less pressureing salesmen/women.\n\n>Isn't that saving money?\n\n\tMaybe.  Maybe not.  Depends on accounting practices.  I'd rather pay\nmore for dealer service that doesn't cut corners to contain costs...\n\n\n>$0.02,\n>doug.\n\n$2/100\nCKA\n'87 (Carolina) Blue Honda Civic DX\n\n\n-- \nChintan Amin  The University of Illinois/Urbana Champaign mail: llama@uiuc.edu\n******************************************************************************\n*\"Because he was human      Because he had goodness      Because he was moral*\n***************They called him insane...\"  Peart \"Cinderella Man\"*************\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8828, "properties": {"category": "rec.motorcycles", "text": "From: mtrost@convex.com (Matthew Trost)\nSubject: Re: The best of times, the worst of times\nNntp-Posting-Host: eugene.convex.com\nOrganization: CONVEX Computer Corporation, Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 17\n\nIn <1993Apr20.161357.20354@ttinews.tti.com> paulb@harley.tti.com (Paul Blumstein) writes:\n\n>(note: this is not about the L.A. or NY Times)\n\n\n>Turned out to be a screw unscrewed inside my Mikuni HS40 \n>carb.  I keep hearing that one should keep all of the screws\n>tight on a bike, but I never thought that I had to do that\n>on the screws inside of a carb.  At least it was roadside\n>fixable and I was on my way in hardly any time.\n\nYou better check all the screws in that carb before you suck\none into a jug and munge a piston, or valve. I've seen it\nhappen before.\n\nMatthew\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8829, "properties": {"category": "sci.crypt", "text": "Subject: Re: Keeping Your Mouth Shut (was: Hard drive security)\nFrom: vkub@charlie.usd.edu (Vince Kub)\nReply-To: vkub@charlie.usd.edu\nOrganization: The University of South Dakota Computer Science Dept.\nNntp-Posting-Host: charlie\nLines: 82\n\nIn article <1993Apr13.143712.15338@cadkey.com>, eric@cadkey.com (Eric Holtman) writes:\n>In article <Apr13.011855.69422@yuma.ACNS.ColoState.EDU> holland@CS.ColoState.EDU (douglas craig holland) writes:\n>>\n>>I'm not a lawyer, so correct me if I'm wrong, but doing that could be\n>>considered obstruction of justice, which could land you in prison for\n>>quite a while.\n>>\n>>The thing that's great about the secret key is it is IDEA encrypted, so\n>>even if the FBI do get the key, they're SOL unless they know the magic\n>>word.  If they try to force you to give them your pass phrase, just say\n>>\"Oops, I forgot.\"  Since the burden of proof is still on the prosecution\n>>in this country, if you keep your mouth shut, how can they prove that you\n>>didn't forget your pass phrase.\n>>\n>\n>Well, I'm no lawyer, but I'll supply some ancedotal evidence which may\n>change your mind.  ** Note ** I do not agree AT ALL with what went on in\n>this case, and neither will most of you.  THAT DOESN'T CHANGE THE FACT \n>THAT IT *DID* HAPPEN.  Right here in America even.....\n>\n>About three or four years ago, there was a rather nasty custody case in\n>or around Washington D.C.  The upshot was, an ex-husband was suing for \n>visitation rights, which were granted.  The woman believed that the man\n>had been sexually molesting her children.  (much like Allen/Farrow, but\n>not as famous).  Anyhows, she spirits away the kids and refuses to tell the\n>court where they are, and denies him visitation rights.\n>\n>She \"keeps her mouth shut\", and what happens?  She SITS IN JAIL for almost\n>a year, on CONTEMPT OF COURT, until the legislature passes a special law\n>limiting the time a person can be held.  If they hadn't passed the law, she'd\n>most likely still be there.  The kids were in New Zealand, I belive.\n>\n>Now (story finished, commetary starting)....  IMHO, the only reason the\n>legislature moved was because there was an outpouring of public sympathy\n>for this woman...  most people believed she was right, and were outraged.\n>Not likely to happen for Joe Random Drug Dealer, Child Molester or perfectly\n>innocent privacy lover, who might have something\n>to hide.  Innocent until proven guilty doesn't mean you get to walk out\n>of court humming a happy tune because the FBI can't read your disk.  Just\n>ask those held for contempt, those who can't make bail, etc, etc.\n>\n>Again.... I disagree totally with the concept of holding someone based\n>on suspicion, but people who keep thinking that it won't happen are bound\n>to get a rude shock when it does......\n>-- \n\n Also not a lawyer, etc. but if I remember correctly the Contempt of Court\nbusiness is used in order to compel cooperation with what is (perhaps\nquestionably, different issue) the legitimate business of that court. Quite\nliterally the party is found guilty of holding the court \"in contempt\". Now,\nthe original scheme as suggested here would be to have the key disappear if\ncertain threatening conditions are met. Once the key is gone there is no\nquestion of Contempt of Court as there is nothing to compell, the key is no\nlonger there to be produced.\n\n  Obstruction of justice would be a different issue but if the suspect in\nquestion would have some legitmate reason to protect his data from prying eyes\n(however extenuated) I think that this charge would be a hard nut to make. \n\n  Perhaps it is time for a lawyer to step in and clear this all up?\n\n\n             -=*=-    -=*=-     -=*=-     -=*=-    -=*=-\n                                 \nVincent A. Kub, WD0DBX            |  \"Saints should always be judged\n                                  |   guilty until they are proven\n    vkub@charlie.usd.edu          |   innocent.\" -Geo. Orwell\n                                  |\n     14 W.Cherry St. #2           |  \"It is good to die before one has\n  Vermillion, S.Dakota 57069      |   done anything deserving of death.\"\nphone or fax to (605) 624-8680    |       - Anaxandirdes\n                                  |            King of Sparta\n  -------------------------------------------------------------------\n\n-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: 2.2\n\nmQBNAiudo1MAAAECAKRkUUWW+Tqsoa1nD+GaSbpXcDhSrHpMEBPjKlyiKuIjzaT6\nauO/hnqW/652YicVaJlXspb5D2giMc09TG2sGY0ABRG0CVZpbmNlIEt1Yg==\n=IuUb\n-----END PGP PUBLIC KEY BLOCK-----\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8830, "properties": {"category": "rec.sport.hockey", "text": "From: cdkaupan@eos.ncsu.edu (CARL DAVID KAUPANG)\nSubject: Stop predicting\nOriginator: cdkaupan@c00544-106ps.eos.ncsu.edu\nReply-To: cdkaupan@eos.ncsu.edu (CARL DAVID KAUPANG)\nOrganization: North Carolina State University, Project Eos\nLines: 10\n\n\nIt is really annoying to see all of these\npredictions on the Net.  Who really cares\nwho you think will win?  Please stop with\nthe predictions, we all know the Caps are\ngoing to win the Cup, so let it go at that.\n\n\nDavid Kaupang\ncdkaupan@eos.ncsu.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8831, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: shenx@helium.gas.uug.arizona.edu (xiangxin shen  )\nSubject: Re: What is AT BUS CLK Speed?\nOrganization: University of Arizona, Tucson\nLines: 22\n\nIn article <1993Apr14.160915.22866@debbie.cc.nctu.edu.tw> is81056@cc.nctu.edu.tw (Wei-Shi Hwu) writes:\n>Robert Desonia (robert.desonia@hal9k.ann-arbor.mi.us) wrote:\n>\n>: S >There is one param in the bios setup that says AT BUS CLK.  I have\n>: S >it set to the default of 4, but was able to get it to work with 3.\n>: S >The SI at 3 was 142.something.  I didnt want to mess anything up\n>: S >so I set it back to 4.  Also, the PC didnt boot with it set at 2.\n>: S >\n>: S >What exactlt dows this do, and should I leave it at 4?\n>\n>I think it's impossible to let AT-Bus operated too much more than\n>8MHz.  I have a C & T Neat 286-20 mother board, And I set the AT-BUS\n>clock to 10 MHz, but the HD stopped when it boot.  So it's correct\n>that CLK/n means how many wait states.\n>\n>   Sm. \n\nI think it all depends on your motherboard and the cards you have in your system.  Your HD stopped boot probably because your HD controller can't handle the faster BUS speed.  I have a 486-33DX, I set my bus divider to CLK/2.5, that is close to 13MHz.  I can gain singificant performace increase on my Video card and harddisk transfer rate when I boost the bus speed.  And my system work flawlessly under this setting.  And you know what, when I go to CLK/2(17MHz BUS), my HD refuse to boot.  \n\nJust my 2 cent.\n\nJim\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8832, "properties": {"category": "comp.windows.x", "text": "From: dick@bart.starnet.com (Dick Montgomery)\nSubject: Re: X-window for PC\nOrganization: StarNet Communications Corp.\nLines: 23\n\nBriefly, StarNet Communications has four PC X server packages.\n\n\tMicro X-lite\t\t$ 75.00\n\t\tIncludes integrated tcp/ip, runs in 640KB, no arcs().\n\n\tMicro X-enlite\t\t$150.00\n\t\tIncludes integrated tcp/ip, runs under DOS, shape extension\n\t\t   \"     interface to Novell tcp/ip\n\n\tMicro X-DOS\t\t$345.00\t\t($225 ea. in a 5-pack)\n\t\tIncludes integrated tcp/ip, runs under DOS, shape extension\n\t\t   \"     interface to Novell tcp/ip, FTP's PC/TCP, & PC-NFS.\n\n\tMicro X-WIN\t\t$425.00\t\t($300 ea. in a 5-pack)\n\t\tIncludes Lanera TCPOpen tcp/ip stack & utilities\n\t\t   \"     interface to FTP's PC/TCP, Sun's PC-NFS, & WinSock.\n\nFor more information contact:\n----------------------------------------------------------------\nStarNet Communications\t\tFAX:\t   1-408-739-0936\n3073 Lawrence Expressway\tVoice:\t   1-408-739-0881\nSanta Clara, Ca.  95051\t\tE-mail     microx@starnet.com\n----------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8833, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: Re: How to get there? (was Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: Fermi National Accelerator Laboratory\nLines: 27\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <1993Apr15.051309.22252@stortek.com>, pg@sanitas.stortek.com (Paul Gilmartin) writes:\n> Bill Higgins-- Beam Jockey (higgins@fnalf.fnal.gov) wrote:\n> : While you're at it, comet experts, explain how a comet gets into\n> : Jovian orbit to begin with!\n> \n> : There are non-gravitational forces from heating and outgassing when a\n> : comet gets into the inner solar system.  [...]\n> \n> Don't forget the Galilean satellites of Jupiter.  \n \n My poor old physics intuition will be very surprised if these tiny\n masses, sitting very close to Jupiter, play any role whatsoever in the\n problem.   Or, to put it more technically, the extra \"volume\" they add\n to the phase space of possible capture trajectories is negligible.\n \n Jupiter is 2E27 kg, while the Galilean satellites are around 1E23.\n \n Also, as I said, the few references that I've looked at do not\n mention outgassing or breakup as important processes.  The important\n thing is a Jupiter-Sun-comet \"reverse slingshot\" that leads to a\n weakly Jupiter-bound orbit for the comet (at least a temporary one).\n \n Bill Higgins                       | Late at night she still doth haunt me\n Fermilab                           | Dressed in garments soaked in brine\n Bitnet:       HIGGINS@FNAL.BITNET  | Though in life I used to hug her\n Internet:   HIGGINS@FNAL.FNAL.GOV  | Now she's dead, I draw the line!\n SPAN/Hepnet:       43011::HIGGINS  |  --after the tragedy, \"Clementine\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8834, "properties": {"category": "sci.space", "text": "From: jennise@opus.dgi.com (Milady Printcap the goddess of peripherals)\nSubject: Looking for a little research help\nOrganization: Dynamic Graphics Inc.\nLines: 19\nDistribution: usa\nNNTP-Posting-Host: opus.dgi.com\n\n\nHi,\n  \n  I'm writing a science fiction script and I'm looking for some\nanswers to questions regarding the Moon and Earth. My starting point\nis an impossible situation.  [I checked with a professor at berkeley\nand his response was a VERY helpful \"can't happen\".] If you enjoy\nplaying with unusual ideas and are willing answer some questions\nplease contact me via e-mail (jennise@dgi.com).\n\n  I get extremely annoyed when screen and tele-plays ignore basic\nfacts about computers that I'm determined to be as scientifically\naccurate as I can.\n\n\n  Sorry for being vague, but I'd like to protect my idea as much as I\ncan until I'm ready to sell it (hopefully).\n\nJennise\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8835, "properties": {"category": "talk.politics.misc", "text": "From: pcollac@pyrnova.mis.pyramid.com (Paul Collacchi)\nSubject: Re: Supply Side Economic Policy (was Re: David Stockman )\nReply-To: pcollac@pyrnova.mis.pyramid.com (Paul Collacchi)\nDistribution: na\nOrganization: Pyramid Technologies, Mt. View, California.\nLines: 43\n\nIn article <Ufk_Gqu00WBKE7cX5V@andrew.cmu.edu>, ashish+@andrew.cmu.edu\n(Ashish Arora) writes:\n|> Excerpts from netnews.sci.econ: 5-Apr-93 Re: Supply Side Economic Po..\n|> by Not a Boomer@desire.wrig \n|> [...]\n|> \n|> >    The deficits declined from 84-9, reaching a low of 2.9% of GNP before  \n|> > the tax and spending hike of 1990 reversed the trend.\n|> >  \n|> > Brett\n|> Is this true ?  Some more details would be appreciated.\n|> \n|> cheers\n\nActually not.  Brett himself has actually posted the data previously.\nWhat declined from 84 to 89, as I remember it, was _percent\nincrease_in_deficit_growth, i.e. the rate of growth of the deficit \n(2nd derivative of total deficit with respect of to time) decreased.\nBrett apparently has numbed himself into thinking that the deficit\ndeclined.  If you keep spending more than you earn, the deficit keeps\ngrowing.  If you keep _borrowing_ at a lesser rate than you borrowed\npreviously, the deficit increases.  You only decrease deficits when your\nincome exceeds spending and you use the difference to pay off debts.\n\nFiggie's book paints the real data, pictorially, in gory detail.  Each\npresident, essentially ran up twice as much total debt, in half the time.\nReagan/congress was simply awful.  Bush/congress was unbelievable.\n\nAs a really rigorous aside to this thread.....\n\nDuring pledge night the other night on the public channel, there was an\n\"economist\" who gave an hour or so presentation.  His data was predictive\nand based largely on population data. I don't know his name, but his\narguments were brilliant.  He confirmed, with data, what many of us know\nwith common sense -- the boom of the 80's has nothing to do with government\npolicy, particularly \"supply side\" policy, since taxes do not \"cause\" \neconomic activities.  People cause economic activity.  More can be \nexplained by watching population waves roll through the years and \ncreate cycles.  He has made models and predictions for years well into\nthe middle of next century.  It will be neat to see how accurate he\nis.\n\nPaul Collacchi\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8836, "properties": {"category": "alt.atheism", "text": "Subject: Re: islamic authority over women\nFrom: kmr4@po.CWRU.edu (Keith M. Ryan)\nOrganization: Case Western Reserve University\nNNTP-Posting-Host: b64635.student.cwru.edu\nLines: 29\n\nIn article <1993Apr6.124112.12959@dcs.warwick.ac.uk> simon@dcs.warwick.ac.uk (Simon Clippingdale) writes:\n\n>For the guy who said he's just arrived, and asked whether Bobby's for real,\n>you betcha. Welcome to alt.atheism, and rest assured that it gets worse.\n>I have a few pearls of wisdom from Bobby which I reproduce below. Is anyone\n>(Keith?) keeping a big file of such stuff?\n\n\tSorry, I was, but I somehow have misplaced my diskette from the last \ncouple of months or so. However, thanks to the efforts of Bobby, it is being \nreplenished rather quickly!  \n\n\tHere is a recent favorite:\n\n\t--\n\n\n       \"Satan and the Angels do not have freewill.  \n        They do what god tells them to do. \"\n\n        S.N. Mozumder (snm6394@ultb.isc.rit.edu) \n\n\n--\n\n\n       \"Satan and the Angels do not have freewill.  \n        They do what god tells them to do. \"\n\n        S.N. Mozumder (snm6394@ultb.isc.rit.edu) \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8837, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: al885@cleveland.Freenet.Edu (Gerard Pinzone)\nSubject: CD SPEEDWAY - any good?\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 12\nReply-To: al885@cleveland.Freenet.Edu (Gerard Pinzone)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nAnybody use CD Speedway out there?  Is it as good as they say?  I hate\nwaiting around for my CD to finish loading the next level in WC and the\nsuch.\n\nHow much memory does it eat up?\n\n-- \n   _______   ________   ________   \"Small nose, loose girls, no nipples, (.|.)\n  /   ___/  /  _____/  /  __   /   Iczer curls!\"  -=-  Gerard Pinzone     ).(\n /   ___/  /  /____   /  __   /           gpinzone@tasha.poly.edu        ( v )\n/______/  /_______/  /__/ /__/       Join the ECA Wehrmacht! Kill CM!     \\|/\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8838, "properties": {"category": "sci.med", "text": "From: Mark W. Dubin\nSubject: Re: ringing ears\nOriginator: dubin@spot.Colorado.EDU\nKeywords: ringing ears, sleep, depression\nNntp-Posting-Host: spot.colorado.edu\nReply-To: dubin@spot.colorado.edu\nOrganization: Univ. of Colorado-Boulder\nLines: 31\n\njfare@53iss6.Waterloo.NCR.COM (Jim Fare) writes:\n\n>A friend of mine has a trouble with her ears ringing. [etc.]\n\n\nA.  Folks, do we have an FAQ on tinnitus yet?\n\nB.  As a lo-o-o-ong time sufferer of tinnitus and as a neuroscientist\nwho has looked over the literature carefully I believe the following\nare reasonable conclusions:\n\n1. Millions of people suffer from chronic tinnitus.\n2. The cause it not understood.\n3. There is no accepted treatment that cures it.\n4. Some experimental treatments may have helped some people a bit, but\nthere have be no reports--even anecdotal--of massive good results with\nany of these experimental drugs.\n5. Some people with chronic loud tinnitus use noise blocking to get to sleep.\n6. Sudden onset loud tinnitus can be caused by injuries and sometimes\nabates or goes away after a few months.\n7. Aspirin is well known to exacerbate tinnitus in some people.\n8. There is a national association of tinnitus sufferers in the US.\n9. One usually gets used to it.  Especially when concentrating on\nsomething else the tinnitus becomes unnoticed.\n10.  Stress and lack of sleep make tinnitus more annoying, sometimes.\n11.  I'm sure those of us who have it wish there was a cure, but there\nis not.\n\nMark dubin\nthe ol' professor\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8839, "properties": {"category": "misc.forsale", "text": "From: egret@wet.UUCP (thomas helke)\nSubject: Re: Kiev 88 Medium format camera, !!! Cheaper Prices !!!\nDistribution: usa\nOrganization: Wetware Diversions, San Francisco\nLines: 8\n\nI agree. I own one. Aside from the shutter, it is built like\na little tank. A very good camera. Your price sounds reasonable,\ntoo. New, I paid $565 for my KIEV 88 Camera Kit. Good luck.\n\nThomas Helke\negret@wet.UUCP   \n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8840, "properties": {"category": "rec.autos", "text": "From: mart@csri.toronto.edu (Mart Molle)\nSubject: Re: Changing oil by self.\nDistribution: mxmsd\nLines: 26\n\nbobml@mxmsd.msd.measurex.com (Bob LaGesse) writes:\n\n[Long silly discussion deleted...]\n\n>                              And while you're at it, why bother with removing\n>the drain plug when you could remove the dipstick instead and suck it out from\n>there with your mouth and then spit it out?\n\nThis suggestion isn't as far-fetched as it sounds.  Years ago in another\ntime and place, I used to do oil changes in boats powered by automotive\nengines.  In many cases, there was no way to get any sort of a tray under\nthe oil pan because it was boxed in by the bottom of the hull and various\nfloation chambers on each side.  And if you *did* get something there, you'd\nspill all the oil out of it for sure trying to get it back out again.\n\nSo we used a small pump powered by an electric drill to suck the oil out\nthe dipstick hole.  There was a long/thin hose on the inlet side designed\nto fit down the dipstick tube, and another, thicker/shorter hose on the\noutlet side that you put into any convenient container.  I'm sure these\ngadgets are still available from marine hardware suppliers if you want one.\n\nMart L. Molle\nComputer Systems Research Institute\nUniversity of Toronto\nToronto, Canada M5S 1A4\n(416)978-4928\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.419+0000", "event": "documents", "entityId": 8841, "properties": {"category": "misc.forsale", "text": "From: walshs@cs.uwp.edu (Steven Walsh)\nSubject: Sony Receiver and Ten Disc changer for sale!\nKeywords: receiver, compact disc, changer\nOrganization: University of Wisconsin - Parkside\nDistribution: misc.forsale\nLines: 38\n\nFor sale\n--------\n\nSTR-AV1070 Audio Receiver\n-------------------------\n120 Watts per channel\nDolby Surround sound with Pro Logic\nLearning Programmable remote\n10 Watts per channel for surround sound\nSupports Dual Room Link Control (to hear another source in a different room)\nIndex filing of all radio stations\n7 band equilizer with real-time analyzer\n\nI need to get $450 for this unit or best offer.\n\nCDP-C910 Sony ten disc changer\n------------------------------\nTen disc cartridge\nCustom File of your favorite program or title or volume for each disc\n\t\t(Up to 184 disc memory!)\nRemote control\nFixed and Variable volume outputs\nOptical output\n8x Oversampling rate\n\n$325 firm.\n\nI purchased these items about 6 months ago and need to sell them now to\nbuy a house.  Both units are in immaculate shape and are priced to move.\n\n\nSteven Walsh\nwalshs@cs.uwp.edu\n(414) 654-4473\n\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8842, "properties": {"category": "rec.sport.baseball", "text": "From: craige@sad.hp.com (Craig Eid)\nSubject: Candlestick Park experience (long)\nOrganization: HP Sonoma County (SRSD/MWTD/MID)\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 36\n\n\nI've been a Giants season ticket holder for years and never really complained\nabout the old ballyard place. Sure, it's been cold, the food lines were long,\nand the hired hands were surly, but this was all part of the Giants mystique.\nOr so I thought.\n\nI went to Tuesday's game (3 - 1 Giants over the Marlins) and the 'Stick was \na much different place. Nothing short of a dome will eliminate the wind, but \neverything is a lot better. The lines are a lot shorter, the bathrooms are\nCLEAN and have running water, and the hired hands were very polite. \n\nThe new foghorn (lights up and blows after each homerun) and the wooden fence\nare very nice, as are the new bleachers. The bleachers start right at the top\nof the fence and give a great view, and they've got beer stands at the\nbottome of the bleachers. The only complaint is that the electronic \nold-fashioned scoreboard looks electronic - could be better.\n\nThese things should have been done a long time ago, but it took a real \nbusinessman (ex - Safeway President Peter Magowan) to figure it out. Just \nlike he used to tell his checkers, \"If the customers don't come back, I don't\nneed as many checkers\". This isn't a knock on Bob Lurie - he was a competent\nbusinessman but he didn't deal much with the general public.\n\nI'll give an example of how the level of service has changed. The onion \ndispenser jammed as I was using it. An attendant came over, apoligized for\nthe problem and proceeded to fix the machine. After he was done, he cleaned\nthe machine and said he was glad to be able to help. In the old days, there\nwas no attendant and the folks at the concession stands would say \"Go to\nthe stand 100 feet away - they might be able to help\".\n\nAll in all, it was a fun day\n\n\n--\nCraig Eid \ne-mail address    craige@hpsad.sad.hp.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8843, "properties": {"category": "rec.motorcycles", "text": "From: robinson@cogsci.Berkeley.EDU (Michael Robinson)\nSubject: Re: Cultural Enquiries\nOrganization: Institute of Cognitive Studies, U.C. Berkeley\nLines: 14\nNNTP-Posting-Host: cogsci.berkeley.edu\n\nIn article <1993Apr5.094451.8144@aber.ac.uk> azw@aber.ac.uk (Andy Woodward) writes:\n>I am getting bored with winding up Americans. Its like bombing fish\n>in a barrel. \n\nOr little children at the market.\n\n(Or is that the Irish?  Hard to keep all you not-really-English types\n straight.)\n\n\n-- \n  ----------------------------------------------------------------------------\n  Michael Robinson                          UUCP:   ucbvax!cogsci!robinson\n                                        INTERNET: robinson@cogsci.berkeley.edu\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8844, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: Re: Pleasant Yankee Surprises\nOrganization: Allegheny College\nLines: 9\n\nIn article <120399@netnews.upenn.edu> sepinwal@mail.sas.upenn.edu (Alan  \nSepinwall) writes:\n Farr's ERA is in the\n> \t  20s or 30s, and Howe's is.....infinite. (I didn't think such\n> \t  a thing was possible, but it is). \n\n\nActually, according to USA today, Howe has 1 inning atttributed to him,  \nbut maybe that is incorrect. By the excellent report.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8845, "properties": {"category": "rec.sport.hockey", "text": "From: JBE5 <JBE5@MUSICB.MCGILL.CA>\nSubject: Nords 3 - Habs 2 in O.T. We was robbed!!\nLines: 50\nNntp-Posting-Host: vm1.mcgill.ca\nOrganization: McGill University\n\nAargh!\n\nPaul Stewart is the worst and most biased ref. presently in the NHL.\nHe called a total of 4 penalties on the Habs and one on the Nordiques.\nThe Nords' penalty came in O.T.  Stewart, being an ex-Nordique himself,\nwas looking to call penalties on the Habs while letting the Nords\nget away with murder...WE WAS ROBBED!!!!\n\nIt was an excellent game with plenty of end-to-end rushes and tremendous\ngoalkeeping.  The Nords tied it with over 1 minute to go while Lebeau\nwas serving a penalty.  I don't mind Stewart calling a penalty in the\nlast 5 min. of the game, but AT LEAST BE FAIR ABOUT IT.  The Nords were\ncaught with their hand in the cookie jar more than once.  Stewart turned\nthe other cheek...BASTARD!\n\nPatrick Roy collapsed after letting in the tieing goal. He was shaky and\non his knees for the rest of the night.  The winning goal shouldn't have\ngone in.\n\nDon't get me wrong, I'm not blaming the loss on Stewart.  The Habs had\nplenty of chances to capitalize, Muller, LeClair, Haller, etc. but\nfailed to put the puck in the net.  That's what did them in.  But\nMr. Stewart didn't help matters at all.\n\nOh well, at least the Bruins lost in O.T. also Ha, Ha!!--)\n\n                               ,,,\n                              (0-0)\n============================oOO(_)OOo===================================\nThe Czar of Mainframe Computing <JBE5@MUSICB.MCGILL.CA>\nMcGill University\n\n --> I'M TOO SEXY FOR COBOL.\n\n---> Habs...will beat the Nords in 7!!!!\n\n---> Let's Go Expos!\n             ===========================================\n             | Hickory, dickory doc,                   |\n             | She took a good look at your cock.      |\n             | It's really scary all rinkled and hairy,|\n             | It smells like a 10 year old sock!      |\n             |           --Andrew Dice Clay            |\n             ===========================================\n\n DISCLAIMER:\n************************************************************************\n*   Needless to say that the opinions expressed by THE CZAR represent  *\n*   those of the faculty, staff, and students of McGill University.    *\n************************************************************************\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8846, "properties": {"category": "sci.med", "text": "From: ron.roth@rose.com (ron roth)\nSubject: Selective Placebo\nX-Gated-By: Usenet <==> RoseMail Gateway (v1.70)\nOrganization: Rose Media Inc, Toronto, Ontario.\nLines: 30\n\nT(> Russell Turpin responds to article by Ron Roth:\nT(>\nT(> R> ... I don't doubt that the placebo effect is alive and well with\nT(> R> EVERY medical modality - estimated by some to be around 20+%,\nT(> R> but why would it be higher with alternative versus conventional \nT(> R> medicine?\"\nT(>  \nT(>  How do you know that it is?  If you could show this by careful \nT(>  measurement, I suspect you would have a paper worthy of publication\nT(>  in a variety of medical journals.  \nT(>  \nT(>  Russell \n\n If you notice the question mark at the end of the sentence, I was\n addressing that very question to that person (who has a dog named\n sugar) and a few other people who seem to be of the same opinion.\n\n I would love to have anyone come up with a study to support their\n claims that the placebo effect is more prevalent with alternative\n compared to conventional medicine.\n Perhaps the study could also include how patients respond if they\n are dissatisfied with a conventional versus an alternative doctor,\n i.e. which practitioner is more likely to get punched in the face\n when the success of the treatment doesn't meet the expectations of \n the patient!\n\n  --Ron-- \n---\n   RoseReader 2.00  P003228: When in doubt, make it sound convincing!\n   RoseMail 2.10 : Usenet: Rose Media - Hamilton (416) 575-5363\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8847, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Omnipotence (was Re: Speculations)\nOrganization: sgi\nLines: 35\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1993Apr5.171143.828@batman.bmd.trw.com>, jbrown@batman.bmd.trw.com writes:\n|> In article <2942949719.2.p00261@psilink.com>, \"Robert Knowles\" <p00261@psilink.com> writes:\n|> >>DATE:   Fri, 2 Apr 1993 23:02:22 -0500\n|> >>FROM:   Nanci Ann Miller <nm0w+@andrew.cmu.edu>\n|> >>\n|> >>\n|> >>> > 3. Can god uncreate itself?\n|> >>> \n|> >>> No.  For if He did, He would violate His own nature which He cannot do.\n|> >>> It is God's nature to Exist.  He is, after all, the \"I AM\" which is\n|> >>> a statement of His inherent Existence.  He is existence itself.\n|> >>> Existence cannot \"not-exist\".\n|> >>\n|> >>Then, as mentioned above, he must not be very omnipotent.\n|> >>\n|> \n|> What do you mean by omnipotent here?  Do you mean by \"omnipotent\"\n|> that God should be able to do anything/everything?  This creates\n|> a self-contradictory definition of omnipotence which is effectively\n|> useless.\n|> \n|> To be descriptive, omnipotence must mean \"being all-powerful\" and\n|> not \"being able to do anything/everything\".\n|> \n|> Let me illustrate by analogy.\n|> Suppose the United States were the only nuclear power on earth.  Suppose\n|> further that the US military could not effectively be countered by any\n|> nation or group of nations.  The US has the power to go into any country\n|> at any time for any reason to straighten things out as the leaders of the\n|> US see fit.  The US would be militarily \"omnipotent\".\n\nDid you check with the Afghans before posting this?   They\nmight disagree.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8848, "properties": {"category": "talk.politics.misc", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: Tieing Abortion to Health Reform -- Is Clinton Nuts?\nOrganization: Corporation for Open Systems\nDistribution: world \nLines: 37\n\nIn <1993Apr5.170349.10700@ringer.cs.utsa.edu> sbooth@lonestar.utsa.edu (Simon E. Booth) writes:\n\n>In article <1993Apr2.230831.18332@wdl.loral.com> bard@cutter.ssd.loral.com writes:\n>>sbooth@lonestar.utsa.edu (Simon E. Booth) writes:\n>># sandvik@newton.apple.com (Kent Sandvik) writes:\n>># >We already kill people (death penalty), and that costs even more\n>># >money, so you could as well complain about this extremely barbaric\n>># >way of justice.\n>>#\n>># But the death penalty is right.\n>>#\n>># And how expensive can an execution be? I mean, I think rope, cyanide\n>># (for the gas), or the rifles and ammunition to arm firing squads are\n>># affordable.\n>>#\n>># Now, perhaps lethal injection might be expensive, in that case, let's\n>># return to the more efficient methods employed in the past.\n>>\n>>Oh, sure, the death *penalty* is fairly inexpensive, but the trial and\n>>sentencing can run millions.\n\n>>\n>>--strychnine\tunless you wanna cut costs by skipping the trial and\n>> sentencing... you murderous little rat-bastard\n\n>  Why as a matter of fact, I was thinking of that as a way to make\n>the system more efficient.  And the only murderous rat-bastards are\n>aboritionists.\n\nYeah, Simon's no rat-bastard, he's the Head Attack Puppy :-)\n\n\n>Simon\n\n\nTOG\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8849, "properties": {"category": "comp.windows.x", "text": "From: larry@gator.rn.com (Larry Snyder)\nSubject: Dell 2.2 EISA Video Cards\nOrganization: GatorNet, Lake Mary, Florida\nLines: 4\n\nDoes XFree86 support any EISA video cards under Dell 2.2?\n-- \nLarry Snyder                               \nlarry@gator.rn.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8850, "properties": {"category": "soc.religion.christian", "text": "From: bohja@cnsvax.uwec.edu\nSubject: WITCHES AND WICCAN:  your opinion\nOrganization: University of Wisconsin Eau Claire\nLines: 19\n\nI am a student at UW-Eau Claire.  I am doing a paper an witches and wanted to\nget your point of view.  I will not use you name unless you specifically tell\nme to do so.\n\nPlease answer this question:\n\nAs a Christian, are you offended by witches and Wiccan?  Do you feel that tehy\nare pagan in the evil sense of the word?\n\nYou time and cooperation is appreciated.  Thanks, J.\n\n-This survey is being conducted in partial fulfillment of the course\nrequirements for Engl 201, taught by Karen Welch at the University of\nWisconsin-Eau Claire.  This course is in compliance with the course\ncertification requirements of the University Institutional Review Board for the\nPRotection of Human Subjects.\n\n[but is it in compliance with any reasonable method for choosing\nsamples???  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8851, "properties": {"category": "sci.electronics", "text": "From: wb8foz@skybridge.SCL.CWRU.Edu (David Lesher)\nSubject: Re: 74ACT???\nOrganization: NRK Clinic for habitual NetNews abusers - Beltway Annex\nLines: 29\nReply-To: wb8foz@skybridge.scl.cwru.edu (David Lesher)\nNNTP-Posting-Host: skybridge.scl.cwru.edu\n\nOthers said:\n# 74S\tLater modification of 74 for even higher speed, at some cost in\n# \tpower consumption.  Effectively obsolete; use 74F.\n# \n# 74LS\tCombination of 74L and 74S, for speed comparable to 74 with lower\n# \tpower consumption.  Best all-round TTL now, widest variety of\n# \tdevices.\n# \n# 74F\tFast as blazes, power not too bad.  The clear choice for high\n# \tspeed in TTL.  Availability and prices generally good.\n\nI hate to disagree w/ a fellow as smart as Henry, but...\n\nA few years back, I worked on a project using lots of high-speed\nstuff.  (My part was slow & parallel, whew.) The mild-mannered designer\nworking on the fast (serial) stuff cussed & swore at 74F all the time.\nIt was the Harry Reams of TTL. One ultra-tiny power line glitch, one\nhickup, one eyeblink across the board, and bang - the F had\ntoggled/counted/whatevered.  At times he swore it would count even\nwithout any 5 volt supply ;-} You can guess what the \"F\" stood for....\n\nThey would do anything to push S or work around it to avoid using F. I\ndon't think I'd consider using F to replace S unless the consequences\nwere *fully* understood.......\n--\nA host is a host from coast to coast..wb8foz@skybridge.scl.cwru.edu\n& no one will talk to a host that's close............(301) 56-LINUX\nUnless the host (that isn't close).........................pob 1433\nis busy, hung or dead....................................20915-1433\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8852, "properties": {"category": "sci.crypt", "text": "From: tedwards@eng.umd.edu (Thomas Grant Edwards)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Project GLUE, University of Maryland, College Park\nLines: 25\nDistribution: na\nNNTP-Posting-Host: pipa.src.umd.edu\n\nIn article <1r1r3nINNebn@dns1.NMSU.Edu> amolitor@nmsu.edu (Andrew Molitor) writes:\n>In article <C5so84.Hxv@demon.co.uk> Graham Toal <gtoal@gtoal.com> writes:\n>>Actually, I am *completely* baffled by why Dorothy Denning has chosen\n>>to throw away her academic respectability like this.\n\n>\tActually, I've been following her remarks for some time, with\n>interest. I'm also a member of academia, and her remarks have nothing\n>but elevate her respectability in my eyes. It remains to be seen whether\n>you are the radical fringe, or I.\n\n>\tIt is generally an error to assume that your beliefs are held by\n>the majority, or even a sizable minority. Especially when you're seeing\n>tens, nay dozens, of people on usenet agreeing with you.\n\nThe people on usenet are clearly a special bunch.  We live the net, which\nis the future of our culture.  Usenetters have rapid electronic access to\ninformation.  Society in general must depend on CNN.  \n\nI can only hope we can make this information accessable by the public before\nthe radical fringe, which _is_ the majority, destroys the fabric of\nthis country.  Freedom is never easily won.\n\n-Thomas\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8853, "properties": {"category": "rec.sport.hockey", "text": "Organization: Central Michigan University\nFrom: Ryan J. Thieme <33CWDTR@CMUVM.CSV.CMICH.EDU>\nSubject: Re: How to beat Pittsburgh!\n <AfnKOVK00UhB01RDtJ@andrew.cmu.edu>\n <1993Apr15.214902.3372@guvax.acc.georgetown.edu> <9169@blue.cis.pitt.edu>\nLines: 7\n\nHow do you beat the Penguins?\n\n\nCrash the team plane.\n\n\nRyan\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8854, "properties": {"category": "comp.graphics", "text": "From: dgf1@quads.uchicago.edu (Dr. Eldon Tyrell)\nSubject: Re: So what is the fastest Windows video c\nReply-To: dgf1@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 21\n\nIn article <1993Apr17.054600.24917@exu.ericsson.se> ebuhcb@ebu.ericsson.se writes:\n>In article 16APR199309101156@trentu.ca, ayounes@trentu.ca (Amro Younes, Trent University, C.C. #314, Peterborough, ON, Canada K9J 7B8. (705) 749-0391) writes:\n>>I have the ATI GRAPHICS ULTRA PRO EISA version.  I must admit it has \n>>received bad press but that was due to the faulty drivers it had.  \n>\n>PC Magazine seems to be impressed with the ATI card in their most recent\n>reviews.  In the April 13th issue they rate the ATI Graphics Ultra Pro\n>(EISA version) as their \"Editor's Choice\".  They noted that the drivers\n>had improved since they tested the ISA version in January...\n>                                                            ...Cuyler\nYeah - they also gave it their \"Editor's Choice\" in the run-down of\ngraphics accelerators they tested in the previous issue, which is why\nI bought (and then returned) mine.  The only conclusion I can come up with\nis that PC Magazine has wildly different ways on determining the worthiness\nof a video card than I do.\n\n-- \nDavid Farley                           The University of Chicago Library\n312 702-3426                              1100 East 57th Street, JRL-210\ndgf1@midway.uchicago.edu                         Chicago, Illinois 60637\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8855, "properties": {"category": "sci.space", "text": "From: gallas2@marcus.its.rpi.edu (Sean Michael Gallagher)\nSubject: Funding for NASA\nArticle-I.D.: rpi.87g54s_\nLines: 8\nNntp-Posting-Host: marcus.its.rpi.edu\n\nI am doing a political science paper on the funding of NASA and pork-barrel \npolitics.  I would be interested in information about funding practices and\nhistories of some of the major programs (Apollo, STS, SSF, etc) and the\nfunding of SSTO to contrast.  Could someone please recommend some sources\nthat would be useful?  Thank you.\n-- \nSean Gallagher\ngallas2@rpi.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8856, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lyourk@cbnewsc.cb.att.com (Loran N. Yourk)\nSubject: Wanted ISA mouse port with high interrupt\nOrganization: AT&T\nDistribution: na\nLines: 13\n\n\nWith a sound card on interrupt 5, two serial ports (one for modem on i4,\none for Miracle Piano on i3) and a printer port on i7, I have run out of\nlow interrupts.  What I would like is a mouse port with an interrupt of\n10, 11, or 12 (which ever interrupt the PS/2 mouse port uses) in in ISA\ni486 computer.  I called technical support of Microsoft, Logitech, & ATI\n(checked what interrupts the mouse port on the ATI video cards can use)\nand they all said the only interrupts possible on these cards was ones\nlower than 7.  Does anyone know of any board for an ISA bus which will\nallow a mouse port (or even a serial port) with high interrupts?\n\nLoran Yourk             (708)979-9378\nAT&T                    lyourk@ihlpm.att.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8857, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Fear, Uncertainty, Doubt\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 10\nNNTP-Posting-Host: access.digex.net\n\n  I suspect that the decisive element in the political battle will be the\nFUD (Fear, Uncertainty, Doubt) factor.\n  If the people who would be end users of the Cripple Chip hear of the whole\ndebate only vaguely -- the government says it's solid; other people in the\nfield say it's Swiss cheese -- the balance of doubt could shift against the\nFeds.  Any attempt to limit other forms of encryption could then be presented\nas the government covering its own butt by protecting its poor product from\nsuperior competition.\n  Comments?\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8858, "properties": {"category": "sci.electronics", "text": "From: ali@cns.nyu.edu (Alan Macaluso)\nSubject: MICROPHONE PRE-AMP/LOW NOISE/PHANTOM POWERED\nNntp-Posting-Host: liu.cns.nyu.edu\nReply-To: ali@cns.nyu.edu\nOrganization: New York University\nLines: 13\n\nI'm looking to build a microphone preamp that has very good low-noise characteristics,  large clean gain, and incorportates phantom power (20-48 volts (dc)) for a PZM microphone.  I'm leaning towards a good, low-cost (??) instrumentation amplifier to maintain the balanced input from the microphone, for its good CMRR, internal compensation, and because i can use a minimal # of parts.  \n\nDoes anyone out there have any experience, suggestions, advice, etc...that they'd like to pass on, I'd greatly appreciate it.\n\n\n---\nA l a n  M a c a l u s o\t\t \tPURPLE MOON GIANTS\nali@cns.nyu.edu  \t\t\t\t158 E. 7th. St. #B5\n(212) 998-7837\t\t\t\t\tNYC  10009\n\t\t\t\t\t\t(212) 982-6630\n\n\t\t\n\t        \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8859, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cs3sd3ae@maccs.mcmaster.ca (Holly       KS)\nSubject: Eric Bosco where are you?\nNntp-Posting-Host: maccs.dcss.mcmaster.ca\nOrganization: Department of Computer Science, McMaster University\nLines: 4\n\nEric, send me your email address, I lost it! I've reconsidered!\n\nKevin\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8860, "properties": {"category": "rec.motorcycles", "text": "From: plevine@orca.NoSubdomain.NoDomain (Peter Levine)\nSubject: BIKE FOR SALE ... 1986 Harley FLHTC\nOrganization: URI Department of Electrical Engineering\nLines: 12\n\n\n\nFor sale 1986 Harley FLHTC Liberty Edition.\nGood condition. Many extras. Asking $7500.\nLocated in Rhode Island.\n\n      Peter Levine\tplevine@ele.uri.edu\n\n\n\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8861, "properties": {"category": "rec.sport.hockey", "text": "From: richard@amc.com (Richard Wernick)\nSubject: Bruins in the Playoffs\nOrganization: Applied Microsystems, Redmond, WA\nDistribution: na\nLines: 19\n\nWell Bruins fans it's playoff time again.\nIt looks like the B's have peaked at the right time.\nGetting out of the Adams is going to be a cat fight to the end.\nAfter what they did to Montreal and Quebec, these teams will be out for\nrevenge. If Neely can stay healthy, and both Bourque and Moog stay sharp,\nwe should get to see Neely finally take out two years of frustration \non Ulf (I don't fight) Samuelson. I don't agree with fighting in the NHL,\nbut if there is one guy who deserves to be taken out good, it's him.\n\nThis is going to be a good series, Go Bruins!!!!\n\n\nRchard\nrichard@amc.com\n\n\n \n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8862, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Albert Sabin\nFrom: lippard@skyblu.ccit.arizona.edu (James J. Lippard)\nDistribution: world,local\nOrganization: University of Arizona\nNntp-Posting-Host: skyblu.ccit.arizona.edu\nNews-Software: VAX/VMS VNEWS 1.41    \nLines: 53\n\nIn article <C5p660.36t@sunfish.usd.edu>, rfox@charlie.usd.edu writes...\n>In article <1993Apr15.225657.17804@rambo.atlanta.dg.com>, wpr@atlanta.dg.com (Bill Rawlins) writes:\n>>|> >|> \n>>|> However, one highly biased account (as well as possibly internally \n>>|> inconsistent) written over 2 mellenia ago, in a dead language, by fanatic\n>>|> devotees of the creature in question which is not supported by other more \n>>|> objective sources and isnt  even accepted by those who's messiah this creature \n>>|> was supposed to be, doesn't convince me in the slightest, especially when many\n>>|> of the current day devotees appear brainwashed into believing this pile of \n>>|> guano...\n>>\n>>       Since you have referred to the Messiah, I assume you are referring\n>>        to the New Testament.  Please detail your complaints or e-mail if\n>>        you don't want to post.  First-century Greek is well-known and\n>>        well-understood.  Have you considered Josephus, the Jewish Historian,\n>>        who also wrote of Jesus?  In addition, the four gospel accounts\n>>        are very much in harmony.  \n> \n>Bill, I have taken the time to explain that biblical scholars consider the\n>Josephus reference to be an early Christian insert.  By biblical scholar I mean\n>an expert who, in the course of his or her research, is willing to let the\n>chips fall where they may.  This excludes literalists, who may otherwise be\n>defined as biblical apologists.  They find what they want to find.  They are\n>not trustworthy by scholarly standards (and others).\n> \n>Why an insert?  Read it - I have, a number of times.  The passage is glaringly\n>out of context, and Josephus, a superb writer, had no such problem elsewhere \n>in his work.  The passage has *nothing* to do with the subject matter in which \n>it lies.  It suddenly appears and then just as quickly disappears.\n\nI think this is a weak argument.  The fact is, there are *two* references to\nJesus in _Antiquities of the Jews_, one of which has unquestionably at least\nbeen altered by Christians.  Origen wrote, in the third century, that\nJosephus did not recognize Jesus as the Messiah, while the long passage\nsays the opposite.  There is an Arabic manuscript of _Antiquities of the\nJews_ which contains a version of the passage which is much less gung-ho\nfor Jesus and may be authentic.\n   There is no question that Origen, in the third century, saw a reference\nto Jesus in Josephus.  There are no manuscripts of _Antiquities_ which\nlack the references.\n\nIt is possible that it was fabricated out of whole cloth and inserted, but\nI don't think it's very likely--nor do I think there is a consensus in\nthe scholarly community that this is the case. (I know G.A. Wells takes\nthis position, but that's because he takes the very small minority view\nthat Jesus never existed.  And he is a professor of German, not of\nbiblical history or New Testament or anything directly relevant to\nthe historicity of Jesus.)\n\nJim Lippard              Lippard@CCIT.ARIZONA.EDU\nDept. of Philosophy      Lippard@ARIZVMS.BITNET\nUniversity of Arizona\nTucson, AZ 85721\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8863, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: russ@deakin.OZ.AU (Russ Sharp)\nSubject: Character missing in TTF\nOrganization: Deakin University, Victoria, Australia\nLines: 22\nNNTP-Posting-Host: ariel.eng.deakin.oz.au\n\nWord 2.0c doesn't show the period-centred character to indicate\nspaces if I use the TTFonts from CorelDraw.  Our editors need to\nbe able to see how many spaces are in text but the character \ndisplayed is a large hollow box.  They overlap each other and\ncharacters on each side, which is useless.\n\nI believe the character used by W4W is the period-centred (0183).\nThis character shows up with the windows Charmap display as the\nhollow box which tends to confirm this.  I have edited the corel\nfont with Fontmonger and changing the font graphics for the 0183\ncharacter makes no difference to the font output in Charmap or W4W.\nAltering the paragraph (0182) or cedilla (0184) does alter their font\ngraphics displayed however!!\n\nIs the W4W character used to indicate spaces the period-centred\ncharacter?  Has anyone been able to get this character displayed\nfrom a CorelDraw TTF?\n\n--\n                                                                         ____ \nRuss Sharp    russ@deakin.edu.au    ph (052)27 1141    fax (052)27 2015  \\  /\nDeakin University, School of Engineering & Technology, Geelong, Australia \\/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8864, "properties": {"category": "talk.politics.guns", "text": "Subject: Re: My Gun is like my American Express Card\nFrom: steiner@jupiter.cse.utoledo.edu (Jason 'Think!' Steiner)\nNntp-Posting-Host: jupiter.cse.utoledo.edu\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 58\n\nJason Kratz (U28037@uicvm.uic.edu) writes:\n> PA146008@utkvm1.utk.edu (David Veal) says:\n> >Jason Kratz <U28037@uicvm.uic.edu> writes:\n> >\n> >Don't be silly.  Of course you can.  The police have everything \n> >the gangs have and then some.  Plus they've got access to the \n> >National Guard (via the Governor) if things get too rough.  That's \n> >tanks for those of you who've never seen them at play.  Of course, \n> >they've got rifles and helicopters.\n> >\n> >And as far as fully-automatic weapons, you can be a lot better\n> >armed if you want to hit what you aim at.\n>\n> What seems to be happening here is the situation getting totally \n> blown out of proportion.  In my post I was referring to your \n> regular patrolman in a car cruising around the city vs. gang \n> members.  Of course the police have access to the things that you \n> mentioned but do they use tanks and such all of the time?  Of \n> course they don't and that's the point I was trying to make.  Every \n> day when I go out to lunch I always see cops coming in.  The \n> majority that I see are still carrying revolvers.  Not that there \n> is anything wrong with a revolver but if you're a cop that is up \n> against some gang member with a couple of automatics in his coat (I \n> mean semi-auto handguns) you're going to be at a disadvantage even \n> with training.\n\nhow so? i think you're making assumptions here that might not \nnecessarily be true. -my- personal choice would be a semi-auto, but \nrevolvers are just as effective, if not more so.\n\n> I have been at a shooting range where gang gang members were \n> \"practicing\" shooting.  They were actually practicing taking out \n> their guns as quick as possible and shooting at the target and they \n> weren't doing too badly either.\n\nrelevancy, please? you sound shocked, but that hardly proves anything.\n\n> The University cops here (who are are state cops) are armed better \n> than the Chicago police.  It seems most state cops are.  I don't \n> know where you are originally from David but you live in Tennesse \n> and I live in Chicago and see this crap everyday on the news and in \n> the papers.  I think the situation is just a tad different here \n> than there.\n\nwait, doesn't Chicago have -serious- gun control? if so, why do the\npolice need all that firepower in the first place? (sarcasm alert)\n\nall the patrol cars i've seen around here have shotguns clamped to \nthe dash board. IMHO, that's all the police need to outgun just about \nanything.\n\njason\n\n--\n`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`\n`,` The Crystal Wind is the Storm, and the Storm is Data, and the Data  `,`\n`,`  is Life -- The Player's Litany, from _The Long Run_ by D.K. Moran  `,`\n`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,` steiner@jupiter.cse.utoledo.edu `,`,`,`\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.420+0000", "event": "documents", "entityId": 8865, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jtrascap@nyx.cs.du.edu (Jim Trascapoulos)\nSubject: Re: Can I put a 1.44 floppy in an SE?\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 24\n\nericr@solbourne.com (Eric Robison) writes:\n\n>I've got a Mac SE, I've got a spare 1.44mb floppy drive. I've seen SE's \nith\n>a 1.44 floppy drive. Can I put my floppy drive into my SE and get it to \nork?\n>If so, how?\n\n>Thanks!\n\n>Eric\n\n>-- \n>| Eric Robison                 |Disclaimer: I claim dis.\n>| ericr@Solbourne.com          | \n>| GET ME OFFA THIS &*^*&%&^# PLANET!!   \n \nSure thing - You'll have to get an FDHD upgrade kit from Apple, which\nincludes a HD floppy drive, 2 different chips (the SWIM chip was mentioned\nin another post) and a different floppy drive cable. Get the Apple kit\nthrough your dealer.\n \n** Jim Trascapoulos * jtrascap@nyx.du.edu * \"What size ID do YOU wear?\" **\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8866, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nSubject: DX3/99\nDistribution: world\nOrganization: HAL 9000 BBS, W-NET HQ, Ann Arbor, Michigan, USA\nReply-To: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nLines: 24\n\n\nKM>  Is the 486DX3/99 anything more than a myth?  I haven't heard of it\nKM>from any source that I trust, and I sure don't see any ads for DX3/99\nKM>machines in Computer Shopper.  Intel is pretty busy with the Pentium\nKM>right now; I can't seem them introducing their own competition.\n\nI heard the rumor as well, but the story differed.  Intel was not coming \nout with the tripling clock 486, a clone from IBM was.  I got this rumor \nfrom a pretty good source ( Has designs computer equipment, and hav never \nbeen wrong let, but there is a first time for everything. )\n\n...  I can just hear that rumor-mill turning now ...\n\n-rdd\n\n---\n . WinQwk 2.0b#0 . Unregistered Evaluation Copy\n * KMail 2.95d W-NET HQ, hal9k.ann-arbor.mi.us, +1 313 663 4173 or 3959\n              \n----\n| HAL 9000 BBS:  QWK-to-Usenet gateway  | Four 14400 v.32bis dial-ins    |\n| FREE Usenet mail and 200 newsgroups!  | PCBoard 14.5aM * uuPCB * Kmail |\n| Call +1 313 663 4173 or 663 3959      +--------------------------------+\n| Member of EFF, ASP, ASAD  * 1500MB disk * Serving Ann Arbor since 1988 |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8867, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Abyss: breathing fluids\nArticle-I.D.: access.1psghn$s7r\nOrganization: Express Access Online Communications USA\nLines: 19\nNNTP-Posting-Host: access.digex.net\n\nIn article <C4t3K3.498@cck.coventry.ac.uk> enf021@cck.coventry.ac.uk (Achurist) writes:\n|\n|I believe the reason is that the lung diaphram gets too tired to pump\n|the liquid in and out and simply stops breathing after 2-3 minutes.\n|So if your in the vehicle ready to go they better not put you on \n|hold, or else!! That's about it. Remember a liquid is several more times\n|as dense as a gas by its very nature. ~10 I think, depending on the gas\n|and liquid comparision of course!\n\n\nCould you use some sort of mechanical chest compression as an aid.\nSorta like the portable Iron Lung?   Put some sort of flex tubing\naround the 'aquanauts' chest.  Cyclically compress it  and it will\npush enough on the chest wall to support breathing?????\n\nYou'd have to trust your breather,  but in space, you have to trust\nyour suit anyway.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8868, "properties": {"category": "misc.forsale", "text": "From: steveg@bach.udel.edu (Steven N Gaudino)\nSubject: Hard Drive for sale!\nNntp-Posting-Host: bach.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 6\n\nI had posted this before, but the buyer fell through, so here goes again....\n\nWestern Digital Caviar 2200, 212 meg IDE HD, 3.5 inch drive.  Has built in\ncache (I believe it's 64k, but I'm not positive).  Still in unopened, \noriginal static bag.  Asking $275, obo.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8869, "properties": {"category": "comp.graphics", "text": "From: sigma@rahul.net (Kevin Martin)\nSubject: Re: TIFF: philosophical significance of 42\nNntp-Posting-Host: bolero\nOrganization: a2i network\nLines: 14\n\nIn <1r0ms5$k65@ratatosk.uninett.no> joachim@kih.no (joachim lous) writes:\n>> Does anyone have any  other suggestions where the 42 came from?\n>I don't know where Douglas Adams took it from, but I'm pretty sure he's\n>the one who launched it (in the Guide). Since then it's been showing up \n>all over the place.\n\nDouglas Adams once said (paraphrased from memory): \"I just picked it.  It\nseemed like the sort of number you wouldn't be afraid to take home to meet\nyour parents.  Nice and even, perfectly normal.\"\n\n-- \nKevin Martin\nsigma@rahul.net\n\"I gotta get me another hat.\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8870, "properties": {"category": "soc.religion.christian", "text": "From: shellgate!llo@uu4.psi.com (Larry L. Overacker)\nSubject: Re: SSPX schism ?\nOrganization: Shell Oil\nLines: 34\n\nIn article <Apr.13.00.09.07.1993.28452@athos.rutgers.edu> simon@giaeb.cc.monash.edu.au (simon shields) writes:\n>Hi All\n>\n>Hope you all had a Blessed Easter. I have a document which I believe\n>refutes the notion that the SSPX (Society of Saint Pius X) is in\n>schism, or that there has been any legitimate excommunication. If\n>anyone is interested in reading the truth about this matter please\n>email me and I'll send them the document via email. Its 26 pages long,\n>so I wont be posting it on the news group.\n\nI may be interesting to see some brief selections posted to the net.\nMy understanding is that SSPX does not consider ITSELF in schism\nor legitimately excommunicated.  But that's really beside the point.\nWhat does the Roman Catholic church say?  Excommunication can be\nreal apart from formal excommunication, as provided for in canon law.\n\nAfter all we Orthodox don't cinsider ourselves schismatic or\nexcommunicated.  But the Catholic Church considers us dissident.\n\nIf this is inappropriate for this group or beyond the charter,\nI'm sure OFM will let us know.\n\nLarry Overacker (llo@shell.com)\n-- \n-------\nLawrence Overacker\nShell Oil Company, Information Center    Houston, TX            (713) 245-2965\nllo@shell.com\n\n[I think it's within the charter.  Whether this is actually the best\ngroup in which to discuss it is up to the people concerned.  I am not\ninterested in having this reinvoke the general Catholic/Protestant\npolemics, but I don't see why it should -- the issue is primarily one\nspecific to Catholics.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8871, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mars@carroll1.cc.edu (Sean Tyler Mars)\nSubject: Help: Blowing the stack\nExpires: 29 Apr 93 23:00:00 GMT\nOrganization: Carroll College-Waukesha, WI\nLines: 25\n\n\n\tHi everyone,\n\tI have a question regarding my stack on my pc.  I am programming \nin Turbo C 3.0 and my program is rather large (model large too).  I keep \ngetting errors that I am running out of memory after a while of running the \nprogram. When I compile the program, it says I have 4.45 meg of RAM so \nI can't seem to explain why it crashes.\n\nAll it is doing is running in a loop while the operator is idle and\nafter a while of sitting, it will screw up all the variables. This leads\nme to believe that my stack is filling up and overflowing.  \n\nDoes the program take memory up when it is calling void functions\nthat do not return anything??\n\n\tI have been working on this problem for days and I would really\nappreciate any responce.  If this is not the correct newsgroup, I will\ngladly re-post, but this is the only I could find.\n\nThanks in advance,\nSean Mars\nEmail mars@carroll1.cc.edu\nCarroll College \nWaukesha, WI\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8872, "properties": {"category": "misc.forsale", "text": "Subject: items for sale [must sell]\nFrom: koutd@hiramb.hiram.edu (DOUGLAS KOU)\nOrganization: Hiram College\nNntp-Posting-Host: hiramb.hiram.edu\nLines: 62\n\nItems for sale.....\n\nThis package was bought throught a award give-away company. I attempted\nto cancel my order before I received the package, but I was too late and\nthe company refused to take the package back for refund. I know the truth\nwhich I would never get my $697 back, but I wish to get my money back as\nclose as possible. Here is the describtion of the package...\n\nNishika 3D camera\tIt takes very good picture, never been opended\n\t\t\tor used. It came with wide angle flesh, carring\n\t\t\tcase, film, and a instruction video. It has four\n\t\t\tlens and created a 3D effect on a regular 35mm\n\t\t\tfilm.\n\nJewelry\t\t\tIt came with the package as additional gift.\n\nBahama vacation voucher\tThe voucher is good for two RT airfare to Freeport.\n\t\t\tThe users get a special hotel rate of $27 per-person\n\t\t\tper-night. Meals, ground transfer, hotel tax is\n\t\t\t_not_ included.\n\nLas Vegas, Reno, Orlando\tThe voucher provides one RT airfare, and\n\t\t\t\thotel accomodation for 3 days/ 2 nights.\n\t\t\t\tMeals, ground transfer, hotel tax is not\n\t\t\t\tincluded. The voucher is good for all 3\n\t\t\t\tlocations, but you can't travel to all 3\n\t\t\t\tplaces at once.\n\nCancun, Mexico\t\tThe voucher provides one RT airfare, and hotel\n\t\t\taccomodation for 3 days / 2 nights. Meals and\n\t\t\tground transfer, hotel tax is not included as\n\t\t\tusual.\n\nI paid $697 for the whole package. So try not to be cold-blooded when you\nmake your offer. Details would be provided by request. I do wish to sell\nthe whole package at once. So if you are just looking for the vacation\nvouchers, I don't care if you sell the camera to other for a higher pric\nIf you are interested in the camera, you could treat the vacation vouchers\nas gift.\n\nIf you receive a letter in your mail box which says that you are selected\nto be part of the sweeptake and you have at least one out of five awards. \nTrust me, you would get the exactly the same package as I did. There is \nonly one award which will be given away. So don't bother even to call them \nback, if you are really interested, you could get it from me for a cheaper \nprice. And you could receive the package within a week ( I waited three \nmonths to get my first and final packages). Also, they would ask for your\ncredit card number and you have to pay for the interest to the credit \ncard company. So why spend more than you should when you could get them\nfrom me for a cheaper price.\n\nIf you are interested, please reply to me as soon as posible. I really\nwish to get this over with. Make me an offer, if I am confortable with\nyour offer, I would send the package by U.P.S. the next day morning.\nMore details could be given if you wish.\n\nPlease contact me at koutd@hirama.hiram.edu\n\nDouglas Kou\nHiram College\ne-mail address--- koutd@hirama.hiram.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8873, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 11\nDistribution: na\nNNTP-Posting-Host: access.digex.net\n\n  The dead giveaway is the repeated protestations that the new plan is aimed\nat \"criminals\", \"drug dealers\", \"terrorists\", etc.  You'd think the tactic\nwould be too obvious to trot out yet again after a decade of Sarah and the\nrest of the Brady Bunch using it to destroy the Second Amendment, but evidently\nthe control nuts feel it will serve them one more time.\n\n  As far as the export needs of American companies are concerned, I could\nalmost believe that the plan to saddle the US industry with a hidden sabotaged\nalgorithm was invented by a cabal of Japanese lobbyists.\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8874, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: University of Tennessee Computing Center\nLines: 293\n\nDear friends,\n\nI am a graduate student in Education at the University of Tennessee. As part of\nthe requirements for a research class in music education I designed a\nquestionnaire to colect data for my research project. The study intends to\ndetermine which techniques (if any) have been used to teach music for the deaf.\n\nIf you have any experience in music education for the deaf and would like to\nhelp me with this project, your help would be very much appreciated. \n\nIf you also want to exchange some ideas about the subject matter, feel yourself\nwelcome. I have been working in this area for a while (in Brazil _ by the way,\nI am Brazilian _ and also in US) and I am very pleased with the results.\n\nI hope that this inquiry will not cause too many inconveniences. Thank you for\nor time and consideration.\n\n\n                         __QUESTIONNAIRE__\n                  Teaching Music for deaf children.\n\nNAME ________________________________\nADDRESS/ E-MAIL _____________________\nEMPLOYING INSTITUTION _______________\nYEARS OF EXPERIENCE_________ GRADE LEVEL(S)____\nEDUCATIONAL BACKGROUND:BACHELOR__ MASTERS__ DOCTORATE__\nPROFESSIONAL FIELD:SPECIAL EDUC.__  MUSIC EDUC.__ OTHER*__\n*If you checked \"other\", please indicate your major: ____\n\n\tSome school systems require music to be taught to deaf children, other\nschool systems have not thought of the possibility to teach music for children\nwith hearing limitations. The following questionnaire was designed to find out\nhow teachers face the issue of teaching or not teaching music for the deaf.\nAlso, a part of this study is to determine teachers attitudes towards music\nprograms for deaf children.\n\n\tDIRECTIONS:\n\tREAD THE FOLLOWING QUESTIONS AND CIRCLE THE NUMBER THAT BEST DESCRIBES\nYOUR ATTITUDE TOWARDS MUSIC FOR DEAF CHILDREN (LEFT COLUMN), AND CIRCLE THE\nAPPROPRIATE \"YES\", \"NO\" OR \"NOT APPLICABLE\", WHETHER YOU DO THE TASK (RIGHT\nCOLUMN).\n\nSD= Strongly disagree\t\t\tY= yes\nDIS= Disagree\t\t\t\tN= no\nNEU= Neutral\t\t\t\tN/A= not applicable\nAG= Agree\nSA= Strongly agree\n\nSD  DIS  NEU  AG  SA\t\tCOMPETENCIES\t\t\tY  N  N/A\n___________________________________________________________________________\n1   2    3    4   5\t1.Deaf children can be educated in      y  n  n/a\n \t\t\tmusic.\n1   2    3    4   5\t2.Deaf children should have regular     y  n  n/a\n\t\t\tmusic classes.\n1   2    3    4   5\t3.A special music teacher must posses   y  n  n/a\n\t\t\tan appropriate training in a variety\n\t\t\tof communication methods to use with\n\t\t\tdeaf children.\n1   2    3    4   5\t4.In preparing the lessons the teacher  y  n  n/a\n\t\t\tmust keep in mind that deaf children\n\t\t\tmay present special needs in order to\n\t\t\tparticipate in musical activities.\n1   2   3     4   5\t5.Deaf and normal hearing children   \ty  n  n/a\n\t\t\tshould have music classes together.\n1   2   3     4   5\t6. 80% of a succesful music experience  y  n  n/a\n\t\t\tby a deaf child depends upon the\n\t\t\tteacher's creativity and commitment\n\t\t\twith the subject matter.\n1   2   3     4   5\t7.Deaf children can learn to appreciate y  n  n/a\n\t\t\tmusic but they will never be a musician\n\t\t\tor a performer.\n1   2   3     4   5\t8.Deaf children are not able to\t\ty  n  n/a\n\t\t\tdiscriminate and recognize sounds.\n1   2   3     4   5\t9.Deaf children can not distinguish\ty  n  n/a\n\t\t\tamong loud and soft sounds.\n1   2   3     4   5\t10.Deaf children can never match the    y  n  n/a\n\t\t\tmusic in their head to a note on a\n\t\t\tmusical instrument.\n1   2   3     4   5\t11.The most appropriate material to\ty  n  n/a\n\t\t\tstart music classes for the deaf\n\t\t\twould be the folk songs said he would be replaced by the military commandant of\nBaku, police Major-General Abdullah Allakhverdiyev. There was no official\nconfirmation.\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8875, "properties": {"category": "talk.politics.mideast", "text": "From: nabil@ariel.yorku.ca (Nabil Gangi)\nSubject: Dear Mr Ajami\nOrganization: York University, Toronto, Canada\nLines: 20\n\nI have read -just today- two articles dripping of hate and offence to\na great deal of people. I could  find as much matching hatred in your\narticles as I have found in some of the self-righteous \"Kill-in-the-name\nof God\" people.\n\nI don't know why you are so attcaking to everyone, is it a reaction to\nthe hatred calls on this newsgroup, or is it a reaction to hardships\nyou have seen and experienced from before...\nI have learnt not to judge people by only what they say, but rather\ntry to put myself in their place and aspire to understand their\nfeelings.\n\nI hope you would be able to do the same with everyone, starting by your\nownself, because only through that you could be able to understand your\nfeelings and act in a the manner you would aspire everyone to adopt.\n\nThanks for your time\n\nNABIL\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8876, "properties": {"category": "comp.graphics", "text": "From: spencer@med.umich.edu (Spencer W. Thomas)\nSubject: Re: cylinder and ray\nOrganization: University of Michigan HSITN\nLines: 17\nNNTP-Posting-Host: guraldi.itn.med.umich.edu\nIn-reply-to: katkere@krusty.eecs.umich.edu's message of Thu, 15 Apr 1993 04:04:23 GMT\n\n\nSketch:  Rotate so cylinder axis is || Z axis.\n\nIntersect X/Y projection of line with projected cylinder (similar to,\nbut easier than, sphere intersection).  Result: no intersection, one\nintersection, or two intersections, parameterized along line by t0 and\nt1.  Now look at Z, and compute intersections of line with top and\nbottom planes of cylinder.  This gives t0' and t1'.  The interval of\nintersection is then the bit of the line from [t0,t1] INTERSECT [t0',t1'].\n\nDetails left as an exercise for the reader.\n\n=S\n--\n=Spencer W. Thomas \t\t|  Info Tech and Networking, B1911 CFOB, 0704\n   \"Genome Informatician\"\t|  Univ of Michigan, Ann Arbor, MI 48109\nSpencer.W.Thomas@med.umich.edu\t|  313-764-8065, FAX 313-764-4133\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8877, "properties": {"category": "comp.graphics", "text": "From: ken@cs.UAlberta.CA (Huisman Kenneth M)\nSubject: images of earth\nNntp-Posting-Host: cab101.cs.ualberta.ca\nOrganization: University of Alberta\nLines: 14\n\nI am looking for some graphic images of earth shot from space. \n( Preferably 24-bit color, but 256 color .gif's will do ).\n\nAnyways, if anyone knows an FTP site where I can find these, I'd greatly\nappreciate it if you could pass the information on.  Thanks.\n\n\n( please send email ).\n\n\nKen Huisman\n\nken@cs.ualberta.ca\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8878, "properties": {"category": "talk.politics.misc", "text": "From: tzs@stein2.u.washington.edu (Tim Smith)\nSubject: Re: \"Winning\" Tax Case!\nArticle-I.D.: shelley.1pqi26INNl8j\nDistribution: world\nOrganization: University of Washington School of Law, Class of '95\nLines: 27\nNNTP-Posting-Host: stein2.u.washington.edu\n\ndreitman@oregon.uoregon.edu (Daniel R. Reitman, Attorney to Be) writes:\n>Which makes it legally unsound.  If I were representing Mr. Teel, \n>I'd try a procedural approach if I could find one, or recommend \n>he plea-bargain.  He's setting himself up to be in hot water.\n\nIndeed.  Reading the cases of people who've tried the various things\nMr. Teel suggests show that defendants fall into two classes: (1) those\nwho win on procedural grounds or some grounds not related to their\nclaim, and (2) those who lose.\n\nConsider Newman v. Schiff, 778 F.2d 460 (8th Cir.1985), which I've seen\ncited by tax protestors other than Mr. Teel as a win for Mr. Schiff.\nMr. Schiff offered $100,000 on TV to anyone who would call in the\nshow and cite any section of the Internal Revenue Code that says that\nan individual has to file a return.\n\nMr. Newman took him up on it.  Mr. Newman had seen the show in a rebroadcast\nthe next morning.  Mr. Schiff claimed that the offer only extended to\npeople who actually say the original broadcast, and so there was no offer\nfor Mr. Newman to accept, and so no unilateral contract was formed, and\nso Mr. Schiff did not have to pay $100,000.\n\nMr. Schiff was correct, and so won.  So, yes, Mr. Schiff won against a\nclaim on the $100,000 reward.  However, his win had nothing to do with\nthe tax code.\n\n--Tim Smith\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8879, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: Stratus Computer, Inc.\nLines: 33\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <KEVIN.93Apr20085431@axon.usa>, kevin@axon.usa (Kevin Vanhorn) writes:\n> In article <C5rpoJ.IJv@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n> >\n> > Two of the nine who escaped the compound said the fire was deliberately set \n> > by cult members.\n> \n> Correction: The *FBI* *says* that two of the nine who escaped said the fire\n> was deliberately set by cult members.  Since the press was kept miles away,\n> we have absolutely no independent verification of any of the government's\n> claims in this matter.\n\nMoreover, the BATF has admitted having agents in the compound, and as\nfar as I have been able to ascertain, those agents were still in the\ncompound when the first shots were fired.  For all we know, these two\npeople may BE the agents, who would certainly be unlikely to stay around\nand \"cook\" with the faithful...\n\nAssuming the two people in question were even in the compound at all.\n\nMaybe I sound paranoid, but I watched Janet Reno last night harping on\nhow much David Koresh was a big, bad child abuser, and I kept wondering \nwhy she -- much less BATF -- wanted us to infer that she had any \njurisdiction over such accusations in the first place.\n\nI'm POSITIVE that the \"sealed warrant\" is not for child abuse.  What was\nit for?  Peobably weapons violations.  Janet Reno didn't say WORD ONE\nlast night about weapons violations.  Why?  Because she knows that such\na case is no longer believable?\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8880, "properties": {"category": "rec.sport.baseball", "text": "From: mtissand@magnus.acs.ohio-state.edu (Michael D Tissandier)\nSubject: Re: Phillies sweep; Reds awful: Reds report 4-14\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 63\n\nIn article <C5IALu.Jn9@usenet.ucs.indiana.edu> rstimets@silver.ucs.indiana.edu\n(robert and stimets) writes:\n>Actually, I'm not sure that Philly won-- but they were ahead 2-7 in the bottom\n\n>of the eighth. I was going to post the box score but since Cinci was playing\n>so criminally bad, the pub I was at had to turn the game off.\n>\n>So here's what's up:\n>\n>Cincinnati had seven hits, all singles, by the end of the eighth.  This makes\n>it six games with exactly ONE extra base hit.\n>\n>Cincinnati was 0-5 with runners in scoring position.\n>---Now if a team is going to be completely without power, they absolutely\n>HAVE to hit in clutch situations.\n>\n>Cincinnati starter Tom Browning pitched 4.1 innings, giving up 5 runs and 10 h\nits\n>while striking out 5.  He was surely the loser tonight.\n>---Reds starters, while supposedly solid, have won only one game this year.\n>(Of course, the Reds have only won two...)\n>\n>Clean-up batter Sabo went 0-4.  Besides yesterday's homer, he's SUCKED at the\nplate.\n>\n>Dibble may not actually return Friday. This may not mean anything since Cinci\nmay\n>not find themselves in a save situation for a while...\n>\n>Speaking of which, The Reds have ha exactly one lead this week... for one-and-\n>a-half innings after Chris' dinger on Tuesday.\n>\n>Manager Tony Perez says the Reds are just not swinging the bat well right now.\n>---Good call, Doggie.\n\nWell, there's a big difference between \"just not swinging the bat well\" and\nwhat the Reds are doing at the plate....UUUGGGHHHH!!!!!\n\n  A Reds fan on the verge of a nervous breakdown....\n\n  --Mike\n\n  \"Why is it that the prognosis on Kevin Mitchell is 'Out 2-3 days' no matter\n    what day you read it???\"\n                            -Gary Burbank\n\n------------------------------------------------------------------------\n  I've told you before and I'll tell you again.  The strong\n   survive and the weak disappear.  We do not intend\n   to disappear.\n\n        ---Jimmy Hoffa\n\n                  mtissand@magnus.acs.ohio-state.edu\n------------------------------------------------------------------------\n\n\n>\n>\n>Cynically yours,\n>\n>\n>RStimets\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8881, "properties": {"category": "rec.sport.hockey", "text": "From: \"James J. Murawski\" <jjm+@andrew.cmu.edu>\nSubject: This Year's vs. Next Year's Playoffs\nOrganization: Administrative Computing & Info Services, Carnegie Mellon, Pittsburgh, PA\nLines: 37\nNNTP-Posting-Host: po2.andrew.cmu.edu\n\n\nWell, since someone probably wanted to know, here's this year's playoff\nmatchups on the left, and what the matchups would be next year under the\nnew alignment and playoff-matchup rules.  The same 16 teams make the playoffs\nunder next year's rules, and three of the first round matchups are the same\n(QUE-MTL, CHI-STL, VAN-WIN).\n\nPIT --+                      +-- CHI | PIT --+                      +-- CHI\n      +---+              +---+       |       +---+              +---+\nNJ  --+   |              |   +-- STL | BUF --+   |              |   +-- STL\n          +---+      +---+           |           +---+      +---+\nWAS --+   |   |      |   |   +-- DET | QUE --+   |   |      |   |   +-- TOR\n      +---+   |      |   +---+       |       +---+   |      |   +---+\nNYI --+       |      |       +-- TOR | MTL --+       |      |       +-- CAL\n              +------+               |               +------+\nBOS --+       |      |       +-- VAN | WAS --+       |      |       +-- VAN\n      +---+   |      |   +---+       |       +---+   |      |   +---+\nBUF --+   |   |      |   |   +-- WIN | NJ  --+   |   |      |   |   +-- WIN\n          +---+      +---+           |           +---+      +---+\nQUE --+   |              |   +-- CAL | BOS --+   |              |   +-- DET\n      +---+              +---+       |       +---+              +---+\nMTL --+                      +-- LA  | NYI --+                      +-- LA\n\n\n====================================================================\n    Jim Murawski\n    Sr. Software Engineer               (412) 268-2650  [office]\n    Administrative Computing and        (412) 268-6868  [fax]\n         Information Services           jjm+@andrew.cmu.edu\n    Carnegie Mellon University          Office: UCC 155\n    4910 Forbes Avenue\n    Pittsburgh, PA 15213-3890\n\n    \"Le Mieux!  Le Magnifique!  Soixante Six!  Claude...NON!\"\n\nThere are 1374 days until Clinton (Clinocchio) leaves office (1373 too many).\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8882, "properties": {"category": "soc.religion.christian", "text": "From: dohertyl@dcs.gla.ac.uk (dohertyl)\nSubject: (none)\nOrganization: Glasgow University Computing Science Dept.\nDistribution: uk\nReturn-Path: <dohertyl@uk.ac.gla.dcs>\nX-Mailer: mail-news 2.0.5\nLines: 2\n\nI AM Satan!\n\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8883, "properties": {"category": "rec.sport.baseball", "text": "From: jclouse@discover.wright.edu (Jim Clouse)\nSubject: World Series Stats\nNntp-Posting-Host: discgate\nOrganization: Wright State University\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 3\n\nDoes anybody else think that WS stats should become part of\na player's career stats?   Why not?\n \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8884, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Societal basis for morality\nOrganization: Cookamunga Tourist Bureau\nLines: 18\n\nIn article <C5prv8.5nI@news.cso.uiuc.edu>, cobb@alexia.lis.uiuc.edu (Mike\nCobb) wrote:\n> we have to expect others to follow our notion of societally mandated morality?\n> Pardon the extremism, but couldn't I murder your \"brother\" and say that I was \n> exercising my rights as I saw them, was doing what felt good, didn't want\n> anyone forcing their morality on me, or I don't follow your \"morality\" ?\n\nGood statement! Should we apply empirical measurements to define exact\nsocial morals? Should morals be based on social rules? On ancient\nreligious doctrines? It seems there will *NEVER* be a common and single\ndenominator for defining morals, and as such defining absolute\nand objective morals is doomed to fail as long as humans have \nthis incredible talent of creative thinking.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8885, "properties": {"category": "sci.crypt", "text": "From: bear@kestrel.fsl.noaa.gov (Bear Giles)\nSubject: Re: Fifth Amendment and Passwords\nOrganization: Forecast Systems Labs, NOAA, Boulder, CO USA\nLines: 29\n\nIn article <1993Apr20.000359.20098@bernina.ethz.ch> caronni@nessie.cs.id.ethz.ch (Germano Caronni) writes:\n>\n>Just a question. \n>As a provider of a public BBS service - aren't you bound by law to gurantee\n>intelligble access to the data of the users on the BBS, if police comes\n>with sufficent authorisation ? I guessed this would be  a basic condition\n>for such systems. (I did run a bbs some time ago, but that was in Switzerland)\n\nThat sounds like an old _Dragnet_ episode.\n\n  \"Joe and I went to the apartment of Prime Suspect.  Nobody answered the\n  door, but his landlord gave us permission to search the apartment.\"\n\nPerhaps that worked in California in the 60's, but as I understand the\nlaw landlords do _not_ have authority to grant permission to search space\nrented by a third party, provided the lease is not in default, etc.\n(I'm not even sure if they can provide the master key, when shown a search\nwarrant, since the _subject_ of the search is supposed to be notified).\n\nAt this point the question becomes: did the user \"rent\" the disk space\nher encrypted file occupies?  If she did, it _should_ fall under the same\nbody of case law that applies to apartments, storage lockers, etc.  (As\nto whether any court would recognize this fact....)  If she did not (i.e.,\nno compensation exchanged), I don't know how it would be treated -- there\ndoesn't seem to be a non-cyberspace equivalent.\n\n-- \nBear Giles\nbear@fsl.noaa.gov\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8886, "properties": {"category": "rec.sport.baseball", "text": "From: re4@prism.gatech.EDU (RUSSELL EARNEST)\nSubject: Re: Players Rushed to Majors\nOrganization: Georgia Institute of Technology\nLines: 29\n\nIn article <1993Apr15.145753.21557@holos0.uucp>, lbr@holos0.uucp (Len Reed) writes:\n> In article <C5Hq3o.G4p@tss.com> hanson@tss.com (Hanson Loo) writes:\n> >Didn't Bob Horner go straight from Arizona State Univ.\n> >to the Atlanta Braves? I remember he had one great\n> >month hitting dingers and then the next I heard\n> >he was in Japan.\n> A month?  Well, he did have a short career--compared to what one might\n> have expected for such a highly touted prospect--due to being injury prone,\n> overweight, and having no work ethic.  But he certainly did not\n> suffer from being rushed to the bigs.\n\nSorry Len, this is exactly how he suffered from being rushed to the bigs.\nBeing overweight and having no work ethic, leading to being injury prone with\nnothing to loose, might have been corrected in Richmond.  (Did you intend a \nsmiley after your comment?)\n\nThis brings back the long suffering memories of pre-chop Braves fans who\nkept being promised the Bob Horner - Dale Murphy back to back power slam.  Who\ncould stop that?  Guess we'll never know.\n\nP.S. - Rocky fans (are there any yet?)  Is Dale getting any playing time out\nthere?  I plan to be at the game on June 28th, they'll have to play him then.\n\n\n-- \n\"Read that to memory and process it!\" - RUSSELL EARNEST\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp: ...!{allegra,amd,hplabs,seismo,ut-ngp}!gatech!prism!re4\nARPA: russell.earnest@housing.gatech.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8887, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: fibromyalgia\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\n\nIn article <93Apr5.133521edt.1231@smoke.cs.toronto.edu> craig@cs.toronto.edu (Craig MacDonald) writes:\n>>  It may be extremely\n>>common, something like 5% of the population.  It is treatable with\n>>tricyclic antidepressant-type drugs (Elavil, Pamelor).  \n>\n>Why is it treated with antidepressants?  Is it considered a\n>psychogenic condition?\n\nNo.  That these drugs happen to be useful as antidepressants is neither\nhere nor there.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8888, "properties": {"category": "sci.electronics", "text": "From: payne@crl.dec.com (Andrew Payne)\nSubject: WANTED:  TCM3105 chips, small quantities\nOrganization: DEC Cambridge Research Lab\nLines: 16\n\n\nDoes anyone know if a source for the TCM3105 modem chips (as used in the\nBaycom and my PMP modems)?  Ideally, something that is geared toward \nhobbyists:  small quantity, mail order, etc.\n\nFor years, we've been buying them from a distributor (Marshall) by the\nhundreds for PMP kits.  But orders have dropped to the point where we can\nno longer afford to offer this service.  And all of the distributors I've\nchecked have some crazy minimum order ($100, or so).\n\nI'd like to find a source for those still interested in building PMP kits.\nAny suggestions?\n\n-- \nAndrew C. Payne\nDEC Cambridge Research Lab\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.421+0000", "event": "documents", "entityId": 8889, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: tittle@ics.uci.edu (Cindy Tittle Moore)\nSubject: Re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nKeywords: printer\nArticle-I.D.: ics.2BD73621.3894\nReply-To: tittle@ics.uci.edu (Cindy Tittle Moore)\nOrganization: ICS Dept., UC Irvine\nLines: 22\nNntp-Posting-Host: alexandre-dumas.ics.uci.edu\n\nI edited a few newsgroup from that line (don't like to crosspost THAT\nmuch).  I can't compare the two, but I recently got an HP DeskJet 500.\n\nI'm very pleased with the output (remember that I'm used to imagens,\nlaser and postscript printers at school -- looks very good.  You have\nto be careful to let it dry before touching it, as it will smudge.\n\nThe deskjet is SLOW.  This is in comparison to the other printers I\nmentioned.  I have no idea how the bubblejet compares.\n\nThe interface between Win3.1 and the printer is just dandy, I've not\nhad any problems with it.\n\nHope that helps some.\n\n--Cindy\n\n--\nCindy Tittle Moore\n\nInternet: tittle@ics.uci.edu       | BITNET: cltittle@uci.bitnet\nUUCP:     ...!ucbvax!ucivax!tittle | Usnail: PO Box 4188, Irvine CA, 92716\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8890, "properties": {"category": "comp.windows.x", "text": "From: brian@mdavcr.mda.ca (Brian Lemire)\nSubject: Joining the X Consortium ????\nOrganization: MacDonald Dettwiler, 13800 Commerce Parkway, Richmond, BC, Canada  V6V 2J3\nLines: 6\n\nHi,\n\n\tDoes anyone have any information on joining the X Consortium ? What\nare the costs, what are the benefits, who should I contact ? Thanks\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8891, "properties": {"category": "rec.sport.hockey", "text": "From: 900073s@dragon.acadiau.ca (Donald Smith)\nSubject: Re: LIST OF TEE TIMES AT METROPOLITAN TORONTO GOLF COURSES FOR MONDAY\nOrganization: Acadia University\nLines: 17\n\nlee139@gaul.csd.uwo.ca (Steve Lee) writes:\n\n\n>In article <C5spEC.EuC@noose.ecn.purdue.edu> stamber@rainbow.ecn.purdue.edu (Kevin L. Stamber) writes:\n\n>Woops!  This is rec.sport.hockey! Not rec.sport.golf!  Hope you check the\n>newsgroup header next time before posting!\n\n>Steve Lee      *      University of Western Ontario      *      London, Canada \n>                      lee139@obelix.gaul.csd.uwo.ca          \n\n  Actually Steve, I think he was refering to the Leafs, and when they can\nbe expected to hit the greens...\n\n-- \n  ACADIA AXEMEN! CIAU CHAMPIONS, 1993! \n  Donald.Smith@dragon.acadiau.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8892, "properties": {"category": "comp.windows.x", "text": "From: Gary Keim <gk5g+@andrew.cmu.edu>\nSubject: Re: X Toolkits\nOrganization: School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 32\nNNTP-Posting-Host: po4.andrew.cmu.edu\nIn-Reply-To: <C5y8wJ.3zE@undergrad.math.uwaterloo.ca>\n\nExcerpts from netnews.comp.windows.x: 23-Apr-93 X Toolkits Paul\nPrescod@undergrad.m (1132)\n\n\n> I am getting Linux, so I will have InterViews, but I don't know how it\n> will look.  I get the impression Andrew is from the FSF, but I don't\n> know what it looks like either.\n\nIf you're on the internet and your site isn't sheltered from external\ntcp/ip traffic, you can use the Remote Andrew Demo to see what the\nAndrew Toolkit looks like:\n\nRemote Andrew Demo Service\n\nThis network service allows you to run Andrew Toolkit applications\nwithout the overhead of obtaining or compiling the Andrew software.  You\nneed a host machine on the Internet, and you need to be running the X11\nwindow system.  A simple \"finger\" command will allow you to experience\nATK applications firsthand.  You'll be able to compose multimedia\ndocuments, navigate through the interactive Andrew Tour, and use the\nAndrew Message System to browse through CMU's three thousand bulletin\nboards and newsgroups.\n\nTo use the Remote Andrew Demo service, simply run the following command\non your machine:\n\n    finger help@atk.itc.cmu.edu\n\nThe service will give you further instructions.   \n\nGary Keim\nAndrew Consortium\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8893, "properties": {"category": "talk.politics.guns", "text": "From: glover@tafs2.mitre.org (Graham K. Glover)\nSubject: The Cold War: Who REALLY Won?\nNntp-Posting-Host: gglover-mac.mitre.org\nOrganization: The MITRE Corporation, McLean, VA\nLines: 13\n\nIf one reasons that the United States of America at one time represented \nand protected freedom << individual liberty and personal responsibility >> \n(and I do, in fact, think that this is true) and that totalitarianism << \nabsolute government control and tyranny >> represents freedom's opposite \n(which it does), did the USA really win the cold war?\n\nStandard disclaimers ALWAYS apply!\n\n----------------\nGraham K. Glover\n----------------\n\nUNMUTUAL\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8894, "properties": {"category": "rec.autos", "text": "From: vlasis@cybernet.cse.fau.edu (vlasis theodore)\nSubject: Re: WARNING.....(please read)...\nOrganization: Cybernet BBS, Boca Raton, Florida\nLines: 20\n\nneilson@seoul.mpr.ca (Robert Neilson) writes:\n\n> [sorry for the 0 auto content, but ... ]\n> \n> > That is why low-abiding citizens should have the power to protect themselve\n> > and their property using deadly force if necessary anywhere a threat is \n> > imminent.\n> >\n> > Steve Heracleous\n> \n> You do have the power Steve. You *can* do it. Why don't you? Why don't you\n> go shoot some kids who are tossing rocks onto cars? Make sure you do a good\n> job though - don't miss - 'cause like they have big rocks - and take it from\n> me - those kids are mean.\n\nDitto,\n\nI you dont do it yourself nobody, will.\nUnless I am behind you, so both of us can shoot them bastards.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8895, "properties": {"category": "sci.med", "text": "From: wcsbeau@alfred.carleton.ca (OPIRG)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Carleton University, Ottawa, Canada\nLines: 111\n\nIn article <1993Apr16.190447.8242@spdcc.com> dyer@spdcc.com (Steve Dyer) writes:\n>In article <1993Apr16.155123.447@cunews.carleton.ca>\nwcsbeau@alfred.carleton.ca (OPIRG) writes:\n>\n>>Maybe you missed it amidst the flurry of responses?\n>\n>You mean the responses some of which pointed to double-blind tests\n>which show no such \"chinese restaurant effect\" unique to MSG\n>(it's elicited by the placebo as well.)\n\nMany people responded with more anecdotal stories; I think its safe to\nsay the original poster is already familiar with such stories.\nPresumably, he wants hard info to substantiate or refute claims about\nMSG making people ill. \n\nSimilarly, debunking such claims without doing research (whether\nliterature and lab), is equally beside the point. The original poster\nno doubt already knows that some people think 'Chinese Restaurant\nSyndrome' is bogus.\n\nPlacebos are all very interesting, but irrelevant to the question of\nwhat effects MSG has. You could have real effects *and* placebo\neffects; people may have allergies in addition. \n\n>\n>>Yet again, the use of this\n>>newsgroup is hampered by people not restricting their posts to matters\n>>they have substantial knowledge of.\n>\n>Like youself?  Someone who can read a scientific paper and apparently\n>come away from it with bizarrely cracked ideas which have nothing to\n>do with the use of this substance in human nutrition?\n\nHave you read Olney's work? I fail to see how citing results from\npeer-reviewed studies qualifies as \"bizarrely cracked\".\n\n>>For cites on MSG, look up almost anything by John W. Olney, a\n>>toxicologist who has studied the effects of MSG on the brain and on\n>>development.  It is undisputed in the literature that MSG is an\n>>excitotoxic food additive,\n>\n>No, it's undisputed in the literature that glutamate is an amino acid\n>which is an excitatory neurotransmitter.  There is also evidence that\n>excessive release of glutamate may be involved in the pathology of certain\n>conditions like stroke, drowning and Lou Gehrig's disease, just to name a few.\n>This is a completely different issue than the use of this ubiquitous amino acid\n>in foods.  People are not receiving intra-ventricular injections of glutamate.\n\nTests have been done on Rhesus monkeys, as well. I have never seen a\nstudy where the mode of administration was intra-ventricular.  The Glu\nand Asp were administered orally. Some studies used IV and SC.\nIntra-ventricular is not a normal admin. method for food tox. studies,\nfor obvious reasons. You must not have read the peer-reviewed works\nthat I referred to or you would never have come up with this brain\ninjection bunk.\n\n>>Too much in the diet, and the system gets thrown off.\n>\n>Sez you.  Such an effect in humans has not been demonstrated in any\n>controlled studies.  Infant mice and other models are useful as far\n>as they go, but they're not relevant to the matter at hand.  Which is\n>not to say that I favor its use in things like baby food--a patently\n>ridiculous use of the additive.  But we have no reason to believe\n>that MSG in the diet effects humans adversely.\n\nPardon me, but where are you getting this from? Have you read the\njournals? Have you done a thorough literature search?\n\nBut, you're right, mice aren't the best to study this on. They're four\ntimes less sensitive than humans to MSG.\n\n>>Glutamate and aspartate, also an excitotoxin are necessary in\n>>small amounts, and are freely available in many foods, but the amounts\n>>added by industry are far above the amounts that would normally be\n>>encountered in a ny single food.\n>\n>Wrong.  Do you know how much aspartate or phenylalanine is in a soft drink?\n>Milligrams worth.  Compare that to a glass of milk.  Do you know how much\n>glutamate is present in most protein-containing foods compared to that\n>added by the use of MSG?\n\nThe point is exceeding the window. Of course, they're amino acids.\nNote that people with PKU cannot tolerate any phenylalanine.\n\nOlney's research compared infant human diets. Specifically, the amount\nof freely available Glu in mother's milk versus commercial baby foods,\nvs. typical lunch items from the Standard American Diet such as packaged\nsoup mixes. He found that one could exceed the projected safety margin\nfor infant humans by at least four-fold in a single meal of processed\nfoods. Mother's milk was well below the effective dose.\n\n\n>>Read Olney's review paper in Prog. Brain Res, 1988, and check *his*\n>>sources. They are impecable. There is no dispute.\n>\n>Impeccable.  There most certainly is a dispute.\n\nBetween who? Over what? I would be most interested in seeing you\nprovide peer-reviewed non-food-industry-funded citations to articles\ndisputing that MSG has no effects whatsoever. \n\n>\n>Steve Dyer\n>dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n\nHmm. \".com\". Why am I not surprised?\n\n- Dianne Murray   wcsbeau@ccs.carleton.ca\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8896, "properties": {"category": "comp.windows.x", "text": "From: herlock@lclark.edu (Jon Herlocker)\nSubject: How to access 24-bit color on cg8?\nArticle-I.D.: lclark.1993Apr28.000956.12004\nOrganization: Lewis & Clark College, Portland OR\nLines: 15\nX-Newsreader: TIN [version 1.1 PL8]\n\nWe have a Sun 3/80 and we have just acquired a cg8 frame buffer card.\n\nThe cg8 is supposed to support both a 24-bit color visual and a monochrome visual.\nThe default visual for the xnews server is the monochrome, and we are unable to change it to\nthe 24-bit visual. We have tried using XGetVisualInfo to get a visual of depth 24, but had no\nsuccess.  xdpyinfo gives no information about a 24-bit deep visual, only monochrome. \n\nThere are two possible solutions:\n\tIf someone has patches for X11R5 Xsun server, could they forward them to us?\n\n\tOtherwise, could someone instruct us how to access the 24-bit color in openwindows?\n-- \nJon Herlocker\t\temail:  herlock@lclark.edu\nLewis & Clark College\nPortland, OR 97219\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8897, "properties": {"category": "sci.electronics", "text": "From: baden@sys6626.bison.mb.ca (baden de bari)\nSubject: **] A/D board quiry:\nOrganization: System 6626 BBS, Winnipeg Manitoba Canada\nLines: 21\n\n \n        On an A/D board I've got, I'm using the A/D lines.  It measures \nthe voltages properly, ie: with a 7v power supply it reg's 7v and with \n5v, it reg's 5v.  Problem is when I've got the input voltage, and I wish \nto lower it via a resistor.  The sensitivity of the board is so great \nthat I can triger it with holding the 5/7v wire in one hand, and touch \nthe probe and it will register the full input voltage.  A 1m resistor \nonly lowers voltage by .1v so this is not too feesable. \n \n                What could the problems be and what else could I use\nto lower the input voltage?  (btw I've got it grounded correctly)\n \n \n  _________________________________________________\n  Inspiration  |   ___                             |\n  comes to     |  \\   o  baden@sys6626.bison.mb.ca |\n  those who    | (  ^  ) baden@inqmind.bison.mb.ca |\n  seek the     |   /-\\      =] Baden de Bari [=    |\n  unknown.     |                                   |\n  ------------------------------------------------- \n \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8898, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: CCMB <CCMB@MUSICA.MCGILL.CA>\nSubject: What DMA's are my system using?\nLines: 10\nNntp-Posting-Host: vm1.mcgill.ca\nOrganization: McGill University\n\nHello,\n\n    I am having a small problem with my sound blaster pro and a game.\nIs there a utility out there that would tell me what DMA's my system\nis using?\n\n\nThanks,\nMark Brown\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8899, "properties": {"category": "misc.forsale", "text": "From: ginkgo@ecsvax.uncecs.edu (J. Geary Morton)\nSubject: Big Block Dodge Carburetor\nOrganization: UNC Educational Computing Service\nLines: 11\n\n\nNAPA remanufactured large 4 barrel carburetor for 78-80\nbig-block 360/440 Dodge.  Part #4-244.  New in box w/manifold gasket.\nRetail: $345.00\nNAPA price: $250.00\n\nYour price $100.00 + shipping\n\ncontact Geary Morton <ginkgo@uncecs.edu>\nphones: 919-851-6565(h) 919-549-7017(w)\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8900, "properties": {"category": "rec.motorcycles", "text": "From: joe@rider.cactus.org (Joe Senner)\nSubject: Re: Shaft-drives and Wheelies\nReply-To: joe@rider.cactus.org\nDistribution: rec\nOrganization: NOT\nLines: 9\n\nxlyx@vax5.cit.cornell.edu (From: xlyx@vax5.cit.cornell.edu) writes:\n]Is it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n\nyes.\n\n-- \nJoe Senner                                                joe@rider.cactus.org\nAustin Area Ride Mailing List                            ride@rider.cactus.org\nTexas SplatterFest Mailing List                          fest@rider.cactus.org\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8901, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: Once tapped, your code is no good any more.\nArticle-I.D.: rwing.2089\nDistribution: na\nOrganization: Totally Unorganized\nLines: 45\n\nIn article <1993Apr19.193528.5655@cs.ucla.edu> geoff@ficus.cs.ucla.edu (Geoffrey Kuenning) writes:\n>In article <2073@rwing.UUCP> pat@rwing.UUCP (Pat Myrto) writes:\n>\n>> fishing expeditions without the target's knowlege.  Don't give up the\n>> right to be safe from that - that should be non-negotiable, and Clinton\n>> and Co. know it (which is probably why they quietly developed this thing,\n>> figuring if they get it this far, they can ram it on through).\n>\n>It always amazes me how quick people are to blame whatever\n>administration is current for things they couldn't possibly have\n>initiated.  This chip had to take *years* to develop, yet already\n>we're claiming that the Clinton administration sneaked it in on us.\n>Bullshit.  The *Bush* administration and the career Gestapo were\n>responsible for this horror, and the careerists presented it to the\n>new presidency as a fait accompli.  That doesn't excuse Clinton and\n>Gore from criticism for being so stupid as to go for it, but let's lay\n>the body at the proper door to start with.\n\nYou are so correct - Clinton did not initiate it.  He just cast it in\nGRANITE by implimenting, NOT stopping the DECISION.  I also stated in another\npost I don't give a damn what administration does it, I still find it\ntotally unacceptable, and whoever impliments it or rams it down our throats\nought to be run out of office.\n\nAlso, Bush was not trying to deprive us of our Second Amendment rights.\nClinton is BUSTING HIS BUTT in that regard.  That reveals a total difference\nin philosophy.  Clinton appears to support the idea of TOTAL people\ncontrol.  Eavesdropping whenever they feel like it, no real security\nfor the common person, and no ability to defend oneself against illegal\nattack, from whatever source.  \"Trust us, we will protect (and control)\nyou... if we don't find it inconvenient...\"\n\nClinton has also shown his utter contempt for public disclosure and\naccountability, as well.  He had plenty of time to change the policy.\n\nHE DIDN'T.  HE EXPANDED ON IT.\n\nI bet had Bush been in office, you would be in there howling louder\nthan I.\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8902, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: fragante@unixg.ubc.ca (Gv Fragante)\nSubject: Re: Winjet accelerator card\nOrganization: The University of British Columbia\nLines: 10\nNNTP-Posting-Host: unixg.ubc.ca\n\nIn <C5r1yA.3EF@unix.portal.com> wil@shell.portal.com (Ville V Walveranta) writes:\n\n>\tWinJet is not a video card -- it's _printer_ accelerator manufactured\n>\tby LaserMaster (Eden Prairie, MN).\n\nI know there's a WinJet for the LaserJet and there's also a WinJet accelerator\nvideo card. This is probably not available in the US, but I am sure it is\nbeing marketed in Canada. I thought you guys over there would have heard some-\nthing about it.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8903, "properties": {"category": "alt.atheism", "text": "From: cjhs@minster.york.ac.uk\nSubject: Re: free moral agency\nDistribution: world\nOrganization: Department of Computer Science, University of York, England\nLines: 11\n\n: Are you saying that their was a physical Adam and Eve, and that all\n: humans are direct decendents of only these two human beings.?  Then who\n: were Cain and Able's wives?  Couldn't be their sisters, because A&E\n: didn't have daughters.  Were they non-humans?\n\nGenesis 5:4\n\nand the days of Adam after he begat Seth were eight hundred years, and\nhe begat sons and daughters:\n\nFelicitations -- Chris Ho-Stuart\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8904, "properties": {"category": "comp.windows.x", "text": "From: yue1016@cs.uh.edu (Yue Huang)\nSubject: Ask the ftp address of \"Kerberos Version 5 draft RFC\"\nOrganization: Computer Science dept.,  Univ. of Houston (Main Campus)\nLines: 1\nDistribution: world\nNNTP-Posting-Host: rodin.cs.uh.edu\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8905, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: saz@hook.corp.mot.com (Scott Zabolotzky)\nSubject: .GIF to .BMP\nOrganization: Motorola, Inc.\nDistribution: usa\nNntp-Posting-Host: 129.188.122.164\nLines: 12\n\n\nDoes anybody have any idea where I could find a program that can\nconvert a .GIF image into a .BMP image suitable for a Windows \nwallpaper (i.e. 256 colors).  Hopefully there's something out there\nI can get from an ftp site somewhere...\n\nThanks in advance...\n\nScott\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8906, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: Gospel Dating\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 22\n\nJim Perry (perry@dsinc.com) wrote:\n\n: The Bible says there is a God; if that is true then our atheism is\n: mistaken.  What of it?  Seems pretty obvious to me.  Socrates said\n: there were many gods; if that is true then your monotheism (and our\n: atheism) is mistaken, even if Socrates never existed.\n\n\nJim,\n\nI think you must have come in late. The discussion (on my part at\nleast) began with Benedikt's questioning of the historical acuuracy of\nthe NT. I was making the point that, if the same standards are used to\nvalidate secular history that are used here to discredit NT history,\nthen virtually nothing is known of the first century.\n\nYou seem to be saying that the Bible -cannot- be true because it\nspeaks of the existence of God as it it were a fact. Your objection\nhas nothing to do with history, it is merely another statement of\natheism.\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8907, "properties": {"category": "rec.autos", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Isuzu Amigo Opinions sought\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 16\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, sdexter@shl.com (Scott Dexter) says:\n\n\n>I like the Amigo; I would like some feedback...\n>\n>Any and all feedback appreciated-\n\n\nYet another Jeep wannabe designed for yuppies who will never take it off road but want\nto look \"outdoorsey\".\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8908, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Riddle me this...\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: usa\nLines: 16\n\nIn article <1r1lp1INN752@mojo.eng.umd.edu> chuck@eng.umd.edu (Chuck Harris - WA3UQV) writes:\n>>If so, why was CS often employed against tunnels in Vietnam?\n\n>CS \"tear-gas\" was used in Vietnam because it makes you wretch so hard that\n>your stomach comes out thru your throat.  Well, not quite that bad, but\n>you can't really do much to defend yourself while you are blowing cookies.\n\nI think the is BZ gas, not CS or CN. BZ gas exposure results in projectile\nvomiting, loss of essentially all muscle control, inability to concentrate\nor think rationally and fatal reactions in a significant fraction of\nthe population. For that reason its use is limited to military\napplications.\n\n                                                          Frank Crary\n                                                          CU Boulder\n \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8909, "properties": {"category": "soc.religion.christian", "text": "From: k053730@hobbes.kzoo.edu (Philip G. Sells)\nSubject: Hebrew grammar texts--choose English or German?\nOrganization: Kalamazoo College Alumni Association\nLines: 28\n\nGreetings,\n\nProbably a tired old horse, but...  maybe with a slightly different\ntwist.  I wanted to know if there are any good English-language texts\nfor learning ancient Hebrew, and how these compare with German\neducational texts qualitywise, if anybody has an idea.  I can't figure\nout if I should buy one here for later study or wait until I get back to\nthe U.S.\n\nSomething I find interesting about studying theology in Germany is the\nfact that the students get their ancient language-learning out of the\nway early [I'm not a theology student, but I spend a lot of time with\nsuch folks] in their careers.  They take the first two years or so to just\ndo Greek and Latin and Hebrew [possibly Aramaic, too--who knows].\nWhat's it like at divinity schools or seminaries in the States?  Is\nthere a lot of language instruction done?  I really don't have a basis\nfor comparison.\n\nRegards, Phil\n-- \nPhilip Sells                 Is anything too hard for the LORD?\nk053730@hobbes.kzoo.edu           --Gen. 18:14\n\n[For better of worse, we don't have the tradition of classical\neducation in the U.S., so generally if a seminary believes students\nshould know Greek, they have to teach it.  It's common for seminaries\nto require at least a semester each of Hebrew and Greek, though of\ncourse more is required for serious scholarship.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8910, "properties": {"category": "misc.forsale", "text": "From: mageors@sdf.lonestar.org (Bill Mageors)\nSubject: Genie Garage door remote forsale\nOrganization: sdf public access Unix - Dallas, TX.\nLines: 11\n\n\nI have a genie garage door transmitter forsale, this unit is a three\nbutton station. will operate three different door or gate openers.\nHas never been used, normaly goes for $45.00 Im ask $20.00 + shipping.\nIf interested please email me.\n \nmageors@sdf.lonestar.org \n\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8911, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Eco-Freaks forcing Space Mining.\nArticle-I.D.: aurora.1993Apr23.123433.1\nOrganization: University of Alaska Fairbanks\nLines: 43\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <1r96hb$kbi@access.digex.net>, prb@access.digex.com (Pat) writes:\n> In article <1993Apr23.001718.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>>In article <1r6b7v$ec5@access.digex.net>, prb@access.digex.com (Pat) writes:\n>>>  Besides this was the same line of horse puckey the mining companies claimed\n>>> when they were told to pay for  restoring land  after strip mining.\n>>===\n>>I aint talking the large or even the \"mining companies\" I am talking the small\n>>miners, the people who have themselves and a few employees (if at all).The\n>>people who go out every year and set up thier sluice box, and such and do\n>>mining the semi-old fashion way.. (okay they use modern methods toa point).\n> \n> \n> Lot's of these small miners  are no longer miners.  THey are people living\n> rent free on Federal land,  under the claim of being a miner.  The facts are\n> many of these people do not sustaint heir income from mining,  do not\n> often even live their full time,  and do fotentimes do a fair bit\n> of environmental damage.\n> \n> These minign statutes were created inthe 1830's-1870's  when the west was\n> uninhabited  and were designed to bring people into the frontier.  Times change\n> people change.  DEAL.  you don't have a constitutional right to live off\n> the same industry forever.  Anyone who claims the have a right to their\n> job in particular,  is spouting nonsense.   THis has been a long term\n> federal welfare program,  that has outlived it's usefulness.\n> \n> pat\n> \n\nHum, do you enjoy putting words in my mouth? \nCome to Nome and meet some of these miners.. I am not sure how things go down\nsouth in the lower 48 (I used to visit, but), of course to believe the\nmedia/news its going to heck (or just plain crazy). \nWell it seems that alot of Unionist types seem to think that having a job is a\nright, and not a priviledge. Right to the same job as your forbearers, SEE:\nKennedy's and tel me what you see (and the families they have married into).\nThere is a reason why many historians and poli-sci types use unionist and\nsocialist in the same breath.\nThe miners that I know, are just your average hardworking people who pay there\ntaxes and earn a living.. But taxes are not the answer. But maybe we could move\nthis discussion to some more appropriate newsgroup..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8912, "properties": {"category": "rec.motorcycles", "text": "From: davec@Autodesk.COM (Dave Cooper)\nSubject: *FOR SALE*: H-1 500...\nOrganization: Autodesk Inc., Sausalito CA, USA\nLines: 13\n\n\n     1975 H-1 500\n     Brand new top end\n     Chambers\n     Clean + black!\n     1,500$\n     Paul: (510) 839-2161\n\nPlease do not contact this email address: contact the seller.\n\nCheers\n\nDAVE\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8913, "properties": {"category": "sci.med", "text": "From: neal@cmptrc.lonestar.org (Neal Howard)\nSubject: Re: seek sedative information\nOrganization: CompuTrac Inc., Richardson TX\nLines: 18\n\nIn article <C5uBrn.F0u@fig.citib.com> ghica@fig.citib.com (Renato Ghica) writes:\n>\n>has any one heard of a sedative called \"Rhoepnol\"? Made by LaRouche,\n>I believe. Any info as to side effects or equivalent tranquillizers?\n\nYou probably mean \"RoHypnol\", a member of the benzodiazepine family,\nchemical name is flunitrazepam. It is such a strong tranquilizer that it is\nprobably best refered to as a hypnotic, rather than a tranquilizer. Just one\npill will knock you on your ass. Side effects may be similar to valium, xanax,\nserax, librium and other benzodiazepines. \n-- \n=============================================================================\nNeal Howard   '91 XLH-1200      DoD #686      CompuTrac, Inc (Richardson, TX)\n\t      doh #0000001200   |355o33|      neal@cmptrc.lonestar.org\n\t      Std disclaimer: My opinions are mine, not CompuTrac's.\n         \"Let us learn to dream, gentlemen, and then perhaps\n          we shall learn the truth.\" -- August Kekule' (1890)\n=============================================================================\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8914, "properties": {"category": "soc.religion.christian", "text": "From: news@cbnewsk.att.com\nSubject: Re: An agnostic's question\nOrganization: AT&T Bell Labs\nLines: 42\n\nIn article <Apr.17.01.11.16.1993.2265@geneva.rutgers.edu> jdt@voodoo.ca.boeing.com (Jim Tomlinson (jimt II)) writes:\n>Pardon me if this is the wrong newsgroup.  I would describe myself as\n>an agnostic, in so far as I'm sure there is no single, universal\n>supreme being, but if there is one and it is just, we will surely be\n>judged on whether we lived good lives, striving to achieve that\n>goodness that is within the power of each of us.  Now, the\n>complication is that one of my best friends has become very\n>fundamentalist.  That would normally be a non-issue with me, but he\n>feels it is his responsibility to proselytize me (which I guess it is,\n>according to his faith).  This is a great strain to our friendship...\n\nSorry to disappoint you, but I'm afraid your friendship is in danger.  \nPerhaps you should examine in yourself why as such a good friend, you \nare unwilling to accept this imortant part of your friends life?  Why \ndo you call into question his faith?  Your friend has changed, he has \nfound something that fills a need in his life.  You need to decide if \nyou are still his friend, whether you can accommodate his new life.  \nIt sounds as if you are criticizing him for a fundamental belief in \nthe Bible, yet you are quick to reveal that your fundamental belief \nthat it is superstition.  Perhaps if he knew you at least took him \nseriously, that you at least took an interest in the light he has found, \nthat you at least tried to understand what has become a special part of \nhis life, you could together decide to become fundamentalists, respect \neach others differences and remain friends, or part ways.  Maybe even if \nyou stuck it out with him, you could help him to un-convert.  Of course, \nif you go in with that attitude he will surely see through your intentions \nand begin to resent you.\n\nI happen to be a person very tolerant of fundamentalists, because I know\nthat the idea of a simple black and white approach to life is appealing.\nI don't happen to share the beliefs of fundamentalists, but I am not\noffended by their prosyletizing.  I had a few good conversations with\nsome Witnesses who came to my door.  I didn't switch my beliefs, but for\nthose at home who maybe need a friendly face to invite them somewhere,\nthe Witnesses provide a wonderful service.  You may have been conditioned\nto believe that religion is unimportant and witnessing is obnoxious, but\nwhy?  Are you afraid you might be converted and become one of them, that\nyou will be swept up in fundamentalism, that you will become a weirdo.\nFriendship's a two-way street.  You must respect your friend, ALL of him,\nincluding his beliefs, if you want the friendship to continue.\n\nJoe Moore\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.422+0000", "event": "documents", "entityId": 8915, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Computer Science Department,  Stanford University.\nDistribution: usa\nLines: 44\n\nIn <93104.173826U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>What seems to be happening here is the situation getting totally blown out of\n>proportion.  In my post I was referring to your regular patrolman in a car\n>cruising around the city vs. gang members.  Of course the police have access\n>to the things that you mentioned but do they use tanks and such all of the\n>time?  Of course they don't and that's the point I was trying to make.  Every\n>day when I go out to lunch I always see cops coming in.  The majority that I\n>see are still carrying revolvers.\n\nSo?  Look in the trunk some time.  Heck - look at the dash.  That\nfunny thing attached with a quick-release is a gun.  The ones in the\ntrunk are \"better\".  (I don't have numbers for Chicago, but\nPhiladelphia police cars carried multiple automatic weapons and\nthousands of rounds as standard issue in the 60s.)\n\n>Not that there is anything wrong with a\n>revolver but if you're a cop that is up against some gang member with a couple\n>of automatics in his coat (I mean semi-auto handguns) you're going to be at a\n>disadvantage even with training.\n\nWhat is the nature of this disadvantage?  If the cop can shoot, 6\nrounds will do the job against a single opponent (especially since the\ncop has guaranteed backup).  If the \"gang member\" can shoot, the extra\nrounds don't help.  The only time this difference can matter is if\nneither can shoot, and cops aren't supposed to be throwing lead around\nlike that.\n\nBTW - most cops carry multiple guns.  You're not supposed to know\nabout the second, third, and so on.\n\n>I have been at a shooting range where\n>gang members were \"practicing\" shooting.\n\nHow do \"we\" know that they were gang members and not undercover cops\nor even law-abiding menacing minorities.  BTW - Why the sneer quotes?\n\nThey were actually practicing\n>taking out their guns as quick as possible and shooting at the target\n>and they weren't doing too badly either.\n\nThen the extra rounds won't make any difference, so why is it an issue?\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8916, "properties": {"category": "sci.crypt", "text": "From: rlglende@netcom.com (Robert Lewis Glendenning)\nSubject: Re: Estimating Wiretap Costs/Benefits\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 61\n\nIn article <1993Apr20.203756.20667@kronos.arc.nasa.gov> hanson@kronos.arc.nasa.gov (Robin Hanson) writes:\n>I'm attempting to write a serious policy paper examining whether the\n>proposed wiretap (or \"Clipper\") chip is a cost-effective tool for\n>police investigation.  That is, ignoring concerns about government\n>intrusions into individual privacy, is the value of easy wiretaps to\n>investigators greater than the cost to the communications industry,\n>and their customers, to support this wiretap technology?  \n>\n>A rough estimate suggests that wiretaps are worth about five million\n>dollars per year to U.S. law enforcement agencies.  (In 1990, 872 U.S.\n>wiretaps led to 2057 arrests, while total police expenditures of $28\n>billion led to 11.25 million arrests [ref US Statistical Abstracts].)\n>I'm working on estimating this wiretap benefit more accurately, but\n>I'd like to ask hardware experts out there to help me with estimating\n>the costs of the new proposed wiretap technology.\n>\n>Please send me quotable/citeable estimates for:\n>\n>- How many chips which would need to be made per year to keep all\n>  phones with wiretap chips?\n>- How much would it cost to make each chip?\n>- How much did it cost to develop this technology in the first place?\n>- How much more would supporting hardware, people, etc. cost, per chip?\n>- What percentage cheaper would encryption chips and support have been\n>  if private enterprise could compete to meet customer encryption needs?\n>- What percentage of phone traffic would be taken up by the proposed\n>  \"law enforcement blocks\"?\n>- What is the total cost of handling all phone traffic per year?\n>\n>Put another way, the question I'm asking is, what if each police\n>agency that wanted a particular wiretap had to pay for it, being\n>charged their share of the full social cost of forcing communication\n>to be wiretap compatible?  Would they choose to buy such wiretaps, or\n>would they find it more cost-effective to instead investigate crimes\n>in other ways?\n>-- \n>Robin Hanson  hanson@ptolemy.arc.nasa.gov \n>415-604-3361  MS-269-2, NASA Ames Research Center, Moffett Field, CA 94035\n>510-651-7483  47164 Male Terrace, Fremont, CA  94539-7921 \n\nFirst, what the fuck is NASA doing wasting my tax dollars doing\npolicy papers on stuff far outside of their purvew/mission?\n                                                                         \nSecond, this isn't a problem of economics.  This is a problem of\nthe incremental accumulation of police-state powers by our government.\n \nHow, exactly, do you put a price on the loss of freedom of a society?\nMaybe use the dollars/life lost calculations for the extra people\nkilled by the gov.  The pain and suffering cases for those tortured.\nThe dollars/life lost caused by the inevitable collapse of the economy,\nand all the secondary effects of diseases, diet, etc.  Plus, the\ninevitable collapse of the economy as the gov controls it, becomes \ncorrupt, etc.\n\nDo us a favor.  Resign rather than right this paper for NASA.  Go\ndo useful work for the society.\n\nlew\n-- \nLew Glendenning\t\trlglende@netcom.com\n\"Perspective is worth 80 IQ points.\"\tNiels Bohr (or somebody like that).\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8917, "properties": {"category": "sci.electronics", "text": "From: smckinty@sunicnc.France.Sun.COM (Steve McKinty - SunConnect ICNC)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nOrganization: SunConnect\nLines: 26\nDistribution: world\nNNTP-Posting-Host: hardy.france.sun.com\nKeywords: Nuclear\n\nIn article <1qlg9o$d7q@sequoia.ccsd.uts.EDU.AU>, swalker@uts.EDU.AU (-s87271077-s.walker-man-50-) writes:\n> \n> \n> I really don't know where to post this question so I figured that\n> this board would be most appropriate.\n> I was wondering about those massive concrete cylinders that\n> are ever present at nuclear poer sites. They look like cylinders\n> that have been pinched in the middle. Does anybody know what the\n> actual purpose of those things are?. I hear that they're called\n> 'Cooling Towers' but what the heck do they cool?\n\nWater. Nuclear stations don't generate electricity directly from the\nreactor, they use the reactor to generate heat. The heat is then used to\nheat water just as in a conventional oil or coal station, and the\nresultant steam drives the turbines.\n\nThe cooling towers are used to cool the steam and recondense it into water\nto continue the cycle\n\nSteve\n\n-- \nSteve McKinty\nSun Microsystems ICNC\n38240 Meylan, France\nemail: smckinty@france.sun.com\t   BIX: smckinty\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8918, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Could this be a migraine?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 34\n\n\nIn article <20773.3049.uupcb@factory.com> jim.zisfein@factory.com (Jim Zisfein) writes:\n\n>Headaches that seriously interfere with activities of daily living\n>affect about 15% of the population.  Doesn't that sound like\n>something a \"primary care\" physician should know something about?  I\n>tend to agree with HMO administrators - family physicians should\n>learn the basics of headache management.\n>\nAbsolutely.  Unfortunately, most of them have had 3 weeks of neurology\nin medical school and 1 month (maybe) in their residency.  Most\nof that is done in the hospital where migraines rarely are seen.\nWhere are they supposed to learn?  Those who are diligent and\nread do learn, but most don't, unfortunately.\n\n>Sometimes I wonder what tension-type headaches have to do with\n>neurology anyway.\n\nWe are the only ones, sometimes, who have enough interest in headaches\nto spend the time to get enough history to diagnose them.  Too often,\nthe primary care physician hears \"headache\" and loses interest in\nanything but giving the patient analgesics and getting them out of\nthe office so they can get on to something more interesting.\n\n\n>(I am excepting migraine, which is arguably neurologic).  Headaches\n\nI hope you meant \"inarguably\".\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8919, "properties": {"category": "misc.forsale", "text": "From: jks2x@holmes.acc.Virginia.EDU (Jason K. Schechner)\nSubject: Foot switches for sale\nOrganization: University of Virginia\nLines: 11\n\n\n\tI have 2 foot switches for sale.  They're great for guitar\namps, and keyboards.  Each is about 1\" in diameter with a 6' (or so)\ncable.  I'd like $15 for both, but make me an offer, who knows...\n\n-Jason\n-- \nSettle down, raise a family join the PTA, \nbuy some sensible shoes, and a Chevrolet\nAnd party 'till you're broke and they drag you away. It's ok.\n\t\t\t\t\tAl Yankovic\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8920, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Hand Held Products, Inc.\nLines: 48\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <1r0v4c$i1j@menudo.uh.edu> HADCRJAM@admin.uh.edu (MILLER, JIMMY A.)  \nwrites:\n> In <1r0poqINNc4k@clem.handheld.com> jmd@cube.handheld.com writes:\n> \n> > In article <C5rDAw.4s4@dartvax.dartmouth.edu> zed@Dartmouth.EDU (Ted  \n> > Schuerzinger) writes:\n> > Well, it's now Tuesday morning.  Where are those two arsons, now?  I said  \n> > yesterday they would vanish, and there has been no further mention of them,  \n> > just the desired \"impression\" is left.\n> \n>   According to KIKK radio in Houston, all nine survivors are either in hos-\n> pitals or in jails.  Inlucding the two who allegedly helped start the firess.\n\nIn the FBI briefing, no mention was made of having the fire starters in  \ncustody.\n> \n> > Why could no one else even talk to them?  Why could Koresh's grandmother  \nnot  \n> > talk to him or even send him a taped message?  Why the total isolation?\n> \n>   Well, it wasn't TOTAL, 100% isolation.  After the lawyer snuck in the first\n> time, they (the FBI, etc) let him go back inside several times, including, I\n> think, the day before the final assualt.\n> \n\nWhy not his mother?  Why not the media?\n\n> semper fi,\n> \n> Jammer Jim Miller \n> Texas A&M University '89 and '91\n>  \n_______________________________________________________________________________ \n_\n>  I don't speak for UH, which is too bad, because they could use the help.     \n> \"Become one with the Student Billing System. *BE* the Student Billing  \nSystem.\"\n>  \"Power finds its way to those who take a stand.  Stand up, Ordinary Man.\"    \n>       ---Rik Emmet, Gil Moore, Mike Levine: Triumph \t\t              \n\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8921, "properties": {"category": "sci.crypt", "text": "From: grady@netcom.com (1016/2EF221)\nSubject: Re: powerful \"similarity\" too\nOrganization: capriccioso\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 44\n\nI've been asked to supply more specific directions\nfor automated fetching of the source and documentation\nfor \"agrep,\" the powerful similarity pattern matching tool.\n\nIt is at\n\ncs.arizona.edu\n192.12.69.5\n\nin directory\n\n/agrep/README\n/agrep/agrep-2.04.tar.Z\n/agrep/agrep.ps.1.Z\n/agrep/agrep.ps.2.Z\n\n(The .ps suffixed files are the optional postscript docs; \na reasonably good research report with benchmarks is\nincluded.)\n\nNote for Macintosh MPW users: after a few hours of drudgery,\nI ported the tool to MPW 3.2.3 running under System 7.1.\nIf you would like me to e-mail a binhexed copy of the tool\nsuitable for dropping in to your MPW/tools folder, please write...\n\nOther than the more purely cryptographic uses for the tool\nI've been having lots of fun picking up the \"lost\"\nreferences to things I'm interested in. For example,\nstarting a search like:\n\nagrep -1 -i 'Burning Chrome' cyberpunkspool \n\nimmediately finds references like 'burning crome' that I\nhave always missed before.  See how many times John\nGilmore's name is mentioned in the CUD archives\n(and how often misspelled).  How about _your_ name?\n\nAs usual, I will e-mail the uuencoded tar.Z upon request\nif you cannot do anonymous FTP.\n\n\n-- \ngrady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8922, "properties": {"category": "rec.sport.hockey", "text": "From: desperate fan\nSubject: HELP! WC coverage in Europe\nOriginator: tervo@messi.uku.fi\nOrganization: University of Kuopio, Finland\nLines: 6\n\nVielen dank\nDesperate Fan\n\nPS. Sweden vs Finland finished 6-6 in Gothenburg 15th Apr.\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8923, "properties": {"category": "sci.space", "text": "From: byab314@chpc.utexas.edu (Srinivas Bettadpur)\nSubject: Re: Vandalizing the sky.\nOrganization: Center for Space Research, University of Texas at Austin\nLines: 15\n\nIn article <1993Apr23.140649.1@rhea.arc.ab.ca> thacker@rhea.arc.ab.ca writes:\n>In article <C5t05K.DB6@research.canon.oz.au>, enzo@research.canon.oz.au (Enzo Liguori) writes:\n>\n>> What about light pollution in observations? (I read somewhere else that\n>> it might even be visible during the day, leave alone at night).\n>\n>No need to be depressed about this one.  Lights aren't on during the day\n>so there shouldn't be any daytime light pollution.\n\n  Thanks for these surreal moments....\n                                               Srinivas\n-- \nSrinivas Bettadpur        Internet : byab314@hermes.chpc.utexas.edu\nP.O. Box 8520, Austin, Tx. 78713-8520, U.S.A.  Tel. (512) 471 4332\nBITNET : byab314@uthermes\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8924, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ong_mang@iastate.edu (sleeping_dragon)\nSubject: Wanted: Opinions on MAG 17S and NANAO 560i monitor\nSummary: Wanted: Opinions on MAG 17S and NANAO 560i monitor\nOrganization: Iowa State University, Ames, IA\nDistribution: usa\nLines: 15\n\nHi,\n\nI'm looking to buy a 17\" monitor soon, and it seems that I can't decide what\nmonitor I should buy. I have a MAG 17S (this is a .25 dpi version and it using\na TRINITON tube) and a NANAO 560i in mind.\n\nDoes anyone know of any specification or problems these monitor have?\n\nActually, any related opinions at buying a 17\" monitor will be welcomed.\n\n\n Thanks in advance,\n\n ong_mang@iastate.edu\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8925, "properties": {"category": "sci.space", "text": "From: swoithe@crackle.uucp (Stan Woithe)\nSubject: Re: Mars Observer Update - 04/14/93\nOrganization: University of Adelaide\nLines: 30\nDistribution: world\nNNTP-Posting-Host: crackle.itd.adelaide.edu.au\nKeywords: Mars Observer, JPL\n\nHiya \n\nI'm a VERY amuture astronomer in Adelaide Australia, and today, I heard some\nvery interesting and exciting news from a local program on TV. As I couldn't\nfind anything on it on the news server, I have posted this. However, if it is\nold information, tell me, and ill sue the TV station for saying they are \n'Up to date' ;-)\n\n(Also, my news server could be slow. . so . . .!!!\n\nI only caught the end of the article, so all the information on the topic\nis not known to me at the moment.\n\nThe news is of a small 'psudo' planet outside the orbit of pluto found in a \nHawiian obsevatory, supposably 'recently' - acording to the report.\nIt was meant to be about 150miles in diamater, and a faily large distance \nfrom the plutos orbit.  (it had a computer drawing, and the orbit distance\nfrom pluto was about the same as neptune to pluto when they are furthest\napart.  This is all I found out about it. OH it is called Karna. (un-officially\n).  \nCAn anyone give any more information to me on it???\n\nThanx.\n\nBrendan Woithe\nswoithe@crackle.aelmg.adelaide.edu.au\n\nBTW - if this is old news, does anyone know a good lawyer. . . .8)\n\n-------------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8926, "properties": {"category": "alt.atheism", "text": " zaphod.mps.ohio-state.edu!wupost!uunet!olivea!sgigate!odin!fido!solntze.wpd.sgi.com!livesey\nSubject: Re: <Political Atheists?\nFrom: livesey@solntze.wpd.sgi.com (Jon Livesey)\n <1p6rgcINNhfb@gap.caltech.edu> <1p88fi$4vv@fido.asd.sgi.com> \n <1993Mar30.051246.29911@blaze.cs.jhu.edu> <1p8nd7$e9f@fido.asd.sgi.com> <1pa0stINNpqa@gap.caltech.edu> <1pan4f$b6j@fido.asd.sgi.com>\nOrganization: sgi\nNNTP-Posting-Host: solntze.wpd.sgi.com\nLines: 20\n\nIn article <1pieg7INNs09@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >Now along comes Mr Keith Schneider and says \"Here is an \"objective\n|> >moral system\".  And then I start to ask him about the definitions\n|> >that this \"objective\" system depends on, and, predictably, the whole\n|> >thing falls apart.\n|> \n|> It only falls apart if you attempt to apply it.  This doesn't mean that\n|> an objective system can't exist.  It just means that one cannot be\n|> implemented.\n\nIt's not the fact that it can't exist that bothers me.   It's \nthe fact that you don't seem to be able to define it.\n\nIf I wanted to hear about indefinable things that might in\nprinciple exist as long as you don't think about them too\ncarefully, I could ask a religious person, now couldn't I?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8927, "properties": {"category": "alt.atheism", "text": "From: simon@dcs.warwick.ac.uk (Simon Clippingdale)\nSubject: Re: islamic authority over women\nNntp-Posting-Host: nin\nOrganization: Department of Computer Science, Warwick University, England\nLines: 49\n\nIn article <1993Apr5.023044.19580@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n\n> One thing that relates is among Navy men that get tatoos that say \"Mom\",\n> because of the love of their mom.  It makes for more virile men.\n> Compare that with how homos are raised.  Do a study and you will get my\n> point.\n\nOh, Bobby. You're priceless. Did I ever tell you that?\n\nMy policy with Bobby's posts, should anyone give a damn, is to flick\nthrough the thread at high speed, searching for posts of Bobby's which\nhave generated a whole pile of followups, then go in and extract the\nhilarious quote inevitably present for .sig purposes. Works for me.\n\nFor the guy who said he's just arrived, and asked whether Bobby's for real,\nyou betcha. Welcome to alt.atheism, and rest assured that it gets worse.\nI have a few pearls of wisdom from Bobby which I reproduce below. Is anyone\n(Keith?) keeping a big file of such stuff?\n\n     \"In Allah's infinite wisdom, the universe was created from nothing,\n        just by saying \"Be\", and it became. Therefore Allah exists.\"\n           --- Bobby Mozumder proving the existence of Allah, #1\n\n     \"Wait. You just said that humans are rarely reasonable. Doesn't that\n      contradict atheism, where everything is explained through logic and\n      reason? This is THE contradiction in atheism that proves it false.\"\n           --- Bobby Mozumder proving the existence of Allah, #2\n\n              \"Plus, to the believer, it would be contradictory\n                    to the Quran for Allah not to exist.\"\n           --- Bobby Mozumder proving the existence of Allah, #3\n\nand now\n\n   \"One thing that relates is among Navy men that get tatoos that say \"Mom\",\n    because of the love of their mom. It makes for more virile men. Compare\n    that with how homos are raised.  Do a study and you will get my point.\"\n         -- Bobby Mozumder being Islamically Rigorous on alt.atheism\n\nMmmmm. Quality *and* quantity from the New Voice of Islam (pbuh).\n\nCheers\n\nSimon\n-- \nSimon Clippingdale                simon@dcs.warwick.ac.uk\nDepartment of Computer Science    Tel (+44) 203 523296\nUniversity of Warwick             FAX (+44) 203 525714\nCoventry CV4 7AL, U.K.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8928, "properties": {"category": "rec.sport.hockey", "text": "From: twork@egr.msu.edu (Michael Twork)\nSubject: Re: Thumbs up to ESPN\nOrganization: Michigan State University\nLines: 6\nReply-To: twork@egr.msu.edu (Michael Twork)\nNNTP-Posting-Host: frith.egr.msu.edu\nistribution: \nOriginator: twork@frith.egr.msu.edu\n\n>Especially when the wings player hit the rut and went into the\nboards injuring his shoulder and they blotted out the injury report.\n\nThe Wings player was Yves Racine, and he returned later in that same period.\n\nMike\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8929, "properties": {"category": "comp.windows.x", "text": "From: inoue@crd.yokogawa.co.jp (Inoue Takeshi)\nSubject: How to see characterset from wchar_t\nNntp-Posting-Host: emu\nDistribution: comp\nOrganization: Yokogawa Electric Corporation, Tokyo, Japan\nLines: 137\n\n\nWe developed a toolkit running on the X Window System.\nThe toolkit copes with any languages based on X11R5's i18n\nfacility. As you know, there are 2 kinds of i18n implementation from MIT's \nX11R5 release -- Xsi and Ximp. Our original implementation of the toolkit\nuses Xsi.\n\nOur toolkit manages each character's size based on our own font management system.\nIn order to do that, the 'wchar_t' typed character strings must be decomposed\nto character sets. This means that if one wchar_t type compound string with \nASCII and Kanji mixed, for example, is given, each element of the wchar_t\narray must be checked its corresponding character set based on a bit layout\nand application environment's locale. In this case if the locale is 'japanese',\neach wchar_t character will be classified either to iso8859-1, jisx0208 or so.\n\nWe need a function to do this. The function must check how many characters\nfrom the top are the same character set and what the character set is.\n\nWe could not find any public X11R5 function to do that and inevitably, used\nXsi's internal functions to construct that function. The following is the\nsource code of that function 'decomposeCharacterSet()'.\n\n\n//I18N.h\n// This may look like C code, but it is really -*- C++ -*-\n// $Id: I18N.h,v 1.1 1992/01/21 12:05:24 iima Exp iima $\n\n#ifndef _I18N_H\n#define _I18N_H\n\n#include <X11/Xlib.h>\n\nextern int decomposeCharacterSet(const wchar_t *wc_str,\t/* IN */\n\t\t\t\t int wc_len,\t\t/* IN */\n\t\t\t\t char *buf,\t\t/* OUT */\n\t\t\t\t int *buflen,\t\t/* IN/OUT */\n\t\t\t\t int *scanned_len,\t/* OUT */\n\t\t\t\t char **charset);\t/* OUT */\nextern XmString wcharToXmString(const wchar_t *wc_str);\nextern XmStringCharSet charsetOfWchar(const wchar_t wc);\n\n#endif /* _I18N_H */\n\n//I18N.cc\n/* $Id: I18N.cc,v 1.1 1992/01/21 12:05:05 iima Exp $ */\n\n#include <stdlib.h>\n#include <X11/Xlibint.h>\n#include <Xm/Xm.h>\n#include \"I18N.h\"\n\nextern \"C\" {\n#include <X11/wchar.h>\n#define _XwcDecomposeGlyphCharset XXX_XwcDecomposeGlyphCharset\n#define _Xmbfscs XXX_Xmbfscs\n#define _Xmbctidtocsid XXX_Xmbctidtocsid\n#include \"Xlocaleint.h\"\n#undef _XwcDecomposeGlyphCharset\n#undef _Xmbfscs\n#undef _Xmbctidtocsid\n    extern int _XwcDecomposeGlyphCharset(XLocale, const wchar_t*, int,\n\t\t\t\t\t char*, int*, int*, int*);\n    extern Charset *_Xmbfscs(XLocale, _CSID);\n    extern _CSID _Xmbctidtocsid(XLocale, _CSID);\n};\n\nint decomposeCharacterSet(const wchar_t *wc_str,/* IN */\n\t\t\t  int wc_len,\t\t/* IN */\n\t\t\t  char *buf,\t\t/* OUT */\n\t\t\t  int *buf_len,\t\t/* IN/OUT */\n\t\t\t  int *scanned_len,\t/* OUT */\n\t\t\t  char **charset)\t/* OUT */\n{\n    XLocale xlocale = _XFallBackConvert();\n    int ctid;\n    int status;\n    Charset *xcharset;\n    \n    status = _XwcDecomposeGlyphCharset(xlocale, wc_str, wc_len, buf,\n\t\t\t\t       buf_len, scanned_len, &ctid);\n    if (status == Success) {\n\txcharset = _Xmbfscs(xlocale, _Xmbctidtocsid(xlocale, ctid));\n\t*charset = (xcharset) ? xcharset->cs_name : NULL;\n    }\n    else\n\t*charset = NULL;\n    return status;\n}\n----------------\n\nAn included file above, \"Xlocaleint.h\", is also Xsi internal and we copied\nthe file to the toolkit directory and compiled.\n\nA serious issue occured when we tried to compile a toolkit application on\nour HP machine with its OS version of HP-UX9.01.\n\nWhen we tried to link an application based on our toolkit,\nlink errors occured saying that the following functions are missing:\n    _Xmbctidtocsid (code)\n    _Xmbfscs (code)\n    _XwcDecomposeGlyphCharset (code)\n    _XFallBackConvert (code)\n\nWe had used MIT release version of X11R5 and its Xsi implementation until\nHP-UP9.0 and ran applications successfully. One of the reasons to use Xsi was that\nbecause HP did not release HP's X11R5 until the OS 9.0 and we had no way to \nknow how HP's R5 would be implemented. We had hoped Xsi's popularity and used \nits internal functions. \n\nThe HP's linker complains that there are no Xsi internal functions implemented.\nWe observe from HP's libX11.a, they used some Ximp implementation but we are\nnot sure if they used MIT's vanilla Ximp version or their own version of Ximp and\ntherefore, finding just counter part functions in MIT's Ximp for Xsi does not\nseem to lead us a solution.\n\nMy question and goal is to know how we can construct a function like\n'decomposeCharacterset()' listed above. Is there any function to check\ncharacter set of each element of wchar_t type strings depending on locales?\nIf it is a public function, that is perfect but even if it is not, we\nwant to use any internal functions in HP's X11R5 as we did for MIT's R5.\n\nIn order to render a 'wchar_t' type string, there must be some machinery\nto judge character sets and that is how the proper fonts are selected for\nthe string. We have no way to find out that without any HP's X11R5 source \nfiles. We want to know how we can use that for our goal. \nAny help or comments would be highly appreciated.\n\nI also appreciate if anyone tell me about Ximp treating around this area\neven if it is not HP's implementation.\n\nThank you.\n\n--\n\t\t\t\tTakeshi Inoue\n\t\t\t\tinoue@crd.yokogawa.co.jp\n\t\t\t\tYokogawa Electric Corporation\n\t\t\t\tOpen Systems Laboratory\t0422(52)5557\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8930, "properties": {"category": "sci.med", "text": "From: rog@cdc.hp.com (Roger Haaheim)\nSubject: Re: sex problem.\nArticle-I.D.: news.C52E58.L8G\nOrganization: HP California Design Center, Santa Clara, CA\nLines: 15\nNntp-Posting-Host: hammer.cdc.hp.com\nX-Newsreader: TIN [version 1.1 PL8]\n\nlarry silverberg (ls8139@albnyvms.bitnet) wrote:\n> Hello out there,\n\n> She suggested we go to a sex counselor, but I really don't want to (just yet).\n\nInteresting.  Does she know you have placed this info request on the\nnet for the world to see?  If not, how do you think she would react\nif she found out?  Why would you accept the advice of unknown entities\nrather than a counselor?\n\n> Any suggestions would be appreciated.\n\nSee the counselor.\n\nWell, you asked.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8931, "properties": {"category": "sci.crypt", "text": "From: purinton@toyon-next.Stanford.EDU (Joshua Jordan Purinton)\nSubject: Re: The [secret] source of that announcement\nOrganization: Stanford University\nLines: 22\n\nIn article <1r3hgqINNdaa@uwm.edu> Rick Miller <rick@ee.uwm.edu> writes:\n>jbotz@mtholyoke.edu (Jurgen Botz) writes:\n>>marc@mit.edu (Marc Horowitz N1NZU) writes:\n\n\n>>Seems like sombody didn't like your snooping around, Marc.\n>\n>Or, the more *likely* explanation is that Marc is spoofing.\n>                                          ^^^^^^^^^^^^^^^^\n>I sincerely doubt that Denning and crew are keen enough to react that\n>quickly, and I doubt they'd want to cripple their SMTP server t'boot.\n>\n\nMarc is not spoofing.  Try it yourself.  At least, the commands work\nexactly as he described (i.e. they do not work.)\n\n- Josh.\n\n\n-- \nNo pattern, content or thing is the being who looks out from each pair of eyes.\nAnd only that is important.  - E. T. Gendlin\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8932, "properties": {"category": "sci.electronics", "text": "From: bailey@vader.egr.uri.edu (Scott Bailey)\nSubject: Re: Jacob's Ladder\nSummary: Jacob's Ladder and other projects\nKeywords: jacob's ladder,projects,book\nOrganization: University of Rhode Island / College of Engineering\nLines: 30\n\nHi all,\n I've been following this thread about jacob's ladder for a few weeks and I\nhappened to come across one of the best project books that I've seen in a \nwhile.  The book \"Gadgeteer's Goldmine\" by Gordon McComb offers over 55 \nexcellent low cost projects including: Jacob's Ladder, tesla coils, plasma \nspheres, a Van de Graaff generator, robots, an IR scope, and several laser \nprojects.  The instructions come with complete part lists, warnings and \ndiagrams.  For those of you who are interested in building any of the above \nlisted projects, you should seriously consider getting this book.  The \npaperback version is only $19.95 too.\n\nFor those who want more information:\nTitle: Gadgeteer's Goldmine!  55 Space-Age Projects\nAuth:  Gordon McComb\nPub:   TAB Books\nCW:    1990\nISBN:  0-8306-8360-7\n\t0-8306-3360-X (paperback)\n Price: $19.95 (paperback)\n\n -Scott\n\n/-----------------------------------------------------------------------------\\\n| Scott A. Bailey            | #include \"std_disclaimer.h\"                    |\n| ECL Operator               |------------------------------------------------|\n| Computer Engineering       | I'm just a knight who chases the moon...       |\n| University of Rhode Island | Haven't caught it yet,but I haven't let that   |\n| bailey@vader.egr.uri.edu   | keep me from still trying each day and night   |\n| bailey@ecl1.uri.edu        |    --(----------           ----------)--       |\n\\-----------------------------------------------------------------------------/\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8933, "properties": {"category": "rec.sport.hockey", "text": "From: farenebt@logic.camp.clarkson.edu (Droopy)\nSubject: AHL News\nOrganization: Clarkson University\nLines: 43\nNntp-Posting-Host: logic.clarkson.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nDALLAS HELPS HAWKS STAY IN MONCTON\nAfter announcing that they would pull their affiliation out\nof Moncton, the Winnipeg Jets changed their mind. \n\nThe Jets announced the move when they said that they would be slashing\ntheir minor league roster from 20-something to around a dozen; and they\nwanted to share with an existing AHL or IHL franchise.\n\nEnter the Dallas Lone Stars. Dallas agreed to supply the remaining\n6 or 8 players to the Moncton franchise. Thus keeping the Hawks\nin the New Brunswick city.\n\nThe deal is for one year and will be extended to three years if\nthe season ticket base increases to over 3000. The Hawks only sold\n1400 for this year.\n\nSAINT JOHN FLAMES OFFICIAL\nThe Calgary Flames have officially signed a deal with the city of\nSaint John, NB. The Saint John Blue Flames will play in the 6200\nExhibition Center. The Flames still have to apply for an expansion\nfrnachise from the AHL but are expected to have no trouble.\n\nCAPS FOLLOW JACKS TO MAINE\nDespite rumors to the contrary, the Capitals will follow the Baltimore\nSkipjacks to Maine. The Caps' current farm team, the Baltimore Skipjacks,\nannounced that they would move to Maine and become the Portland Pirates.\nThere was much doubt as to if the Caps would follow but they announced\na limited deal with Portland. They would supply a dozen or so players\nincluding 2 goalies. They become the third team to announce a limited\nfarm team along with Moncton and the Capital District Islanders.\n\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n    + Bri Farenell\t\t\tfarenebt@craft.camp.clarkson.edu   +\n    + AHL and ECAC contact for rec.sport.hockey\t\tGo USA Hockey!\t   +\t\n    + Adirondack Red Wings, Calder Cup Champs: '81  '86  '89  '92\t   +\n    + Clarkson Hockey, ECAC Tournament Champs: '66  '91  '93\t\t   +\n    + Glens Falls High Hockey, NY Division II State Champs: '90  '91       +\n    + AHL fans: join the AHL mailing list: ahl-news-request@andrew.cmu.edu +\n    + CONGRATS TO THE BOSTON BRUINS, 1992-93 ADAMS DIVISION CHAMPIONS      +\n    + PHOENIX SUNS, 1992-93 PACIFIC DIVISION CHAMPIONS\t\t\t   +\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n\t\t\t\t\t\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8934, "properties": {"category": "rec.sport.hockey", "text": "From: filipows@spk.hp.com (Dennis Filipowski)\nSubject: ? Octopus\nOrganization: Hewlett-Packard\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 4\n\n   During the Detroit game Mon night there were octopus thrown on\n   the ice what is the meaning or symbolism here?  They used to\n   throw fish on the ice here in Spokane afew years ago. I never \n   knew where this came from.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8935, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: Richard Soderberg <richard.soderberg@mic.ki.se>\nSubject: What disk drives are out there?\nX-Xxmessage-Id: <A7F8983A43017A15@bart.mic.ki.se>\nX-Xxdate: Mon, 19 Apr 93 16:56:10 GMT\nNntp-Posting-Host: bart.mic.ki.se\nOrganization: MIC-KIBIC, the Karolinska Institute, Sweden\nX-Useragent: Nuntius v1.1.1d17\nLines: 14\n\nWhen sw is delivered you will often (always?)  get 360 k\ndiskettes if you opt for the 5 1/4 inch format. How big a %-tage\nof existing PC/XT/AT/PS2's have these low capacity drives as\ntheir only diskette station? \n                                   (o o)\n+------------------------------oOO--(_)--OOo-----------------------------+\n|  Richard Soderberg, MD             |   The Karolinska Institute        |\n|  Systems analyst                   |   MIC-KIBIC                       |\n|  Voice#:  +8 46 728 80 00          |   Library and                     |\n|  Fax#  :  +8 46 33 04 81           |   Medical Information Center      |\n|  Snail :  PO Box 602 01            |   Doktorsringen 21 C,             |\n|           S-104 01 Stockholm       |   S-104 01 Stockholm              |\n|  Email :  richard@micb.mic.ki.se   |   SWEDEN                          |\n+------------------------------------+-----------------------------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8936, "properties": {"category": "rec.motorcycles", "text": "From: csk@wdl50.wdl.loral.com (Chuck Kuczaj)\nSubject: Re: MOTORCYCLE DETAILING TIP #18\nOrganization: Loral Western Development Labs\nLines: 26\n\nmbeaving@bnr.ca (Michael Beavington) writes:\n\n>Don't you just hate when the speedo and tach on your\n>bike start to cloud over from all that nasty sunshine?\n>The detailing tip of the week is to use rubbing compound.\n\n>Moisten a rag, apply some rubbing compound and work into the\n>translucent, previously transparent, material. After a few \n>minutes of working on the plastic face, the dial, or plastic \n>face will be clear once more. Will not work for glass.\n\n>-- \n\n>BTW.  I am not responsible for damages incurred when using \n>      the above method.  Most models can use the treatment\n>      safely.\n\n\n>=============================================================================\n>= The Beav |Mike Beavington|BellNorthernResearch Ottawa,Ont,Canada| Dod:9733=\n>= Seca 400->Seca 400->RZ350->Seca750->Suzuki550->Seca650turbo->V65Sabre     =\n>= (-> 1994 GTS1000 ...can't afford the '93) |  mbeaving@bnr.ca              =\n>=============================================================================\n\nMcGuire's makes a plastic scratch/removing compound and a plastic\npolishing compound which really work great as well.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8937, "properties": {"category": "sci.crypt", "text": "From: jhesse@netcom.com (John Hesse)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 21\n\nIn article <strnlghtC5LGFI.JqA@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>\n>\n>Though I share many of the concerns expressed by some, I find the proposal\n>less threatening than many others, since right now most Americans have no\n>secure telephony, and any jerk with a pair of clip leads and a \"goat\" can\n>eavesdrop. This would also plug up the security hole in cellular and\n>cordless phones.\n>\n\nOh great. Wonderful news. Nobody can listen in--except the feds. You\nbelieve that the feds offer the least threat to liberty of anyone, and I'm\nsure I do too.\n\nGlad that jerk won't be tapping my phone anymore.\n-- \n------------------------------------------------------------------------------\nJohn Hesse           |          A man,     \njhesse@netcom.com    |                 a plan, \nMoss Beach, Calif    |                         a canal, Bob.\n------------------------------------------------------------------------------\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.423+0000", "event": "documents", "entityId": 8938, "properties": {"category": "talk.politics.misc", "text": "From: bearpaw@world.std.com (bearpaw)\nSubject: Re: MOW BODYCOUNT\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 33\n\nspp@zabriskie.berkeley.edu (Steve Pope) writes:\n\n>> Any thoughts on who is going to count all of the gorgeous bodies at \n>> the MOW?  The press?  The White House Staff?  The most Junior \n>> Senator?  The King of the motss/bi?  \n>>\n>> Just curious as to whose bias we are going to see when the numbers \n>> get brought out.\n>\n>Probably, law enforcement people (Park Service Police and D.C. cops),\n>who will use aerial photographs and extrapolate based on the\n>density of the crowd in small regions.\n>\n>These sort of techniques derive from Army Intelligence and CIA\n>methods of estimating troop strength, and tend to be\n>methodologically skewed to always come up with inflated numbers,\n>so as to justify bigger budgets.\n\nJudging from past experience (the '87 March, a Peace and Justice March the \nsame year, and 3 different Pro-coice Marches), The Park Service will come out\nwith an estimate that is approximately 1/2 the estimate that organizers will\ncome up with - though the last Choice march I went to had a sign-in system, \nand the numbers ended up closer.  And then you've got the media types in their\nhelicopters, rolling dice.\n\nI believe the MOW plans and handing out some sort of wristband thingy, and \nbasing their count on those.  I see two problems with this.  One, can they \nget *everybody* to take one (and only one)?  Two, they couldn't possibly have\nbeen able to choose a color/design that won't clash with *somebody's* outfit!\n\n:->\nbearpaw\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8939, "properties": {"category": "sci.space", "text": "From: stephens@geod.emr.ca (Dave Stephenson)\nSubject: Re: Space Advertising (2 of 2)\nNntp-Posting-Host: ngis.geod.emr.ca\nOrganization: Dept. of Energy, Mines, and Resources, Ottawa\nLines: 15\n\nAs for SF and advertising in space. There is a romantic episode\nin Mead's \"The Big Ball of Wax\" where the lovers are watching \nthe constellation Pepsi Cola rising over the horizon and noting\nthe some 'stars' had slipped cause the Teamsters were on strike.\n\nThis was the inspiration for my article on orbiting a formation\nof space mirrors published in Spaceflight in 1986. As the reviews\nsaid: this seems technically feasible, and could be commercially viable\nbut is it aesthetically desirable?  These days the only aesthetics\nthat count are the ones you can count!\n--\nDave Stephenson\nGeological Survey of Canada\nOttawa, Ontario, Canada\nInternet: stephens@geod.emr.ca\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8940, "properties": {"category": "talk.politics.guns", "text": "From: mcclary@netcom.com (Michael McClary)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: Committee to commemorate the WACO Ghetto Uprising\nLines: 23\n\nIn article <1r0mtoINNa59@cronkite.Central.Sun.COM> dbernard@clesun.Central.Sun.COM writes:\n>Gordon Storga writes:\n>\n>>Gentleman, are we also forgetting the near genocide of the Native American\n>>for the barbaric act of being \"heathen\" (i.e. a non-Christian) by a\n>>predominantly Christian government.  That's a little over 200 years as I\n>>recall.  I'd say that for the most part it was religious persecution\n>>(their religion dictated their lifestyle).\n>\n>This is a stretch.  In fact, a great many of the persecuted Indians were\n>Christian, a great many.  It would be simpler to state the obvious, that\n>white people wanted land the Indians dominated or threatened.  I really\n>don't think the government cared a hill of beans about the Indians' religion.\n\nMy Native American Girlfriend asks: \"If the government really doesn't\n'care a hill of beans' about our religion, how come they're still\nbusting us for it in Oregon, Washington, and a few other places?\nYou'd be a Christian, too, if the U.S. Army marched you into church\nat gunpoint.\"\n-- \n=\t=\t=\t=\t=\t=\t=\t=\t=\t=\nMichael McClary\t\t\t\t\t\tmcclary@netcom.com\nFor faster response, address electronic mail to:\tmichael@node.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8941, "properties": {"category": "alt.atheism", "text": "From: rush@leland.Stanford.EDU (Voelkerding)\nSubject: Re: Death Penalty (was Re: Political Atheists?)\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 52\n\nIn article <11812@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n>In article <1993Apr14.205414.3982@leland.Stanford.EDU> rush@leland.Stanford.EDU (Voelkerding) writes:\n>>\n>>If we worry about the one case in 20,000 (or more) where an innocent man is\n>>convicted of something horrible enough to warrant the death penalty,  and\n>>hence put laws into place which make it virtually impossible to actually\n>>execute real criminals,  then the death penalty is not serving its original\n>>purpose.  It should either be changed or done away with.\n>>\n>\n>  I don't have numbers to back this up, so take the following\n>  accordingly.\n>\n>  You use an off-the-cuff number of 1 in 20,000 innocent people\n>  sentenced to die as an acceptable loss for the benefit of capital\n>  punishment.  I'd be very, very surprised if the ratio were that\n>  low.  There have been approximately a dozen known cases of the\n>  execution of the innocent in the US since the turn of the century.\n>  Have we in that same period sentenced 240,000 people to death?\n>  Accounting for those cases that we don't know the truth, it seems\n>  reasonable to assume that twice that many innocent people have in\n>  fact been executed.  That would raise the number of death\n>  sentences metered out since 1900 to half a million for your\n>  acceptance ratio to hold.  I rather doubt that's the case.\n>\n>\n>  The point, of course, is what *is* an acceptable loss.  1 in\n>  10,000?  Seems we're probably not doing even that well.  1 in 100?\n>  1 in 2?  Or should we perhaps find a better solution?\n>\n>/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n>\n>Bob Beauchaine bobbe@vice.ICO.TEK.COM \n>\n\nAny suggestions as to what a better solution might be?  I realize the\noff-hand nature of the numbers I used.  And I can't answer as to what\nan acceptable loss rate is.  However,  as I said in another post,  I\ndespise the idea of supporting criminals for life.  It's the economics\nof the situation that concern me most.  The money spent feeding, clothing,\nhousing and taking care of people who have demonstrated that they are\nunfit to live in society could go to a number of places,  all of which\nI, and probably others,  would consider far more worthwhile and which\nwould enrish the lives of all Americans.  Give people jobs,  give the\nhomeless shelter.  Any number of things.\n\nClyde\n\n\n-- \nLittle girls,  like butterflies, don't need a reason!\n\t\t\t\t\t- Robert Heinlein\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8942, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rxg3321@ultb.isc.rit.edu (R.X. Getter)\nSubject: How do I put an HD on an XT?\nNntp-Posting-Host: ultb-gw.isc.rit.edu\nOrganization: Rochester Institute of Technology\nLines: 12\n\nThis may be a dumb question, but I need to put a hard drive on my father's\nPC/XT, either MFM, RLL, or IDE. I know how to hook it up, but how do I tell\nthe computer the geometry of the drive. On my 386, you set it in the BIOS, but\nI doubt that's how it's done on an XT. I thought it might be software with\nthe controller card, but the IDE card for XT's that I saw didn't come with\nany. Also, how do I low level format it once it's on the computer? (Assuming\na drive which needs formatting)\n\nadvTHANKSance,\n\nRob\nrxg3321@ultb.isc.rit.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8943, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: Animation with XPutImage()?\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 37\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nIn article <1993Apr21.154620.16330@infodev.cam.ac.uk>, dcr@mail.ast.cam.ac.uk (Derek C. Richardson) writes:\n\n|> Two years ago I wrote a Sunview application for fast animation\n|> of raster files. With Sunview becoming rapidly obselete, I've\n|> finally decided to rewrite everything from scratch in XView.\n|> I put together a quick test, and I've found that XPutImage()\n|> is considerably slower (factor of 2 on average?) than the\n|> Sunview command pw_rop() which moves image data from memory\n|> pixrects to a canvas. This was on a Sparc IPX. It seems that:\n|> (1) the X protocol communication is slowing things down; or\n|> (2) XPutImage is inefficient...or both! My question is, what\n\nThe protocol has to move the whole image from process memory to server\nmemory, this is the hog. The conversions in the XPutImage() are\nfast.\n\n|> is the fastest way in X11R5 to dump 8 plane image data to\n|> a window? Can I take advantage of the fact that the client is\n|> running on the same machine as the server? Or am I stuck with\n\nYes, by utilizing the MIT-SHM extension, that provides an XPutImage\nderivate that uses shared memory. Fine fast.\n\n|> XPutImage() (in which case I might as well give up now...)?\n|> \n\nNo. You can still XPutImage all of the frames onto pixmaps (thus moving\nthem to server memory) and then replay them fastest using XCopyArea()\nBUT be aware, this is a major server memory bummer !\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8944, "properties": {"category": "comp.sys.mac.hardware", "text": "From: cmmiller@iastate.edu (C. M. Miller)\nSubject: Re: LCIII vs. Centris 610?\nArticle-I.D.: news.C51s6w.9nr\nOrganization: Iowa State University, Ames, IA\nLines: 29\n\nIn article <1993Apr5.221603.17245@nctams1.uucp> tomj@pnet16.cts.com (Tom Jenkins) writes:\n>Title says it all.  I'd be particularly interested in the performance\n>difference.  Just how much faster (50%?) is the Centris 610 over the LCIII?\n>\n>--Tom\n>\n>UUCP: humu!nctams1!pnet16!tomj\n>ARPA: humu!nctams1!pnet16!tomj@nosc.mil\n>INET: tomj@pnet16.cts.com\n\nWhen Apple came with their demos to Iowa State, I got a chance to run\nSpeedometer3.1 on some of the new Macs.  Both machines were running\nSystem7.1, had a 14\" RGB.  Don't know what the caches were set to.\nNeither machine had an FPU  It appears that the Centris610 is quite a\nbit faster than the LC III:\n\n\t\tCentris610\t\tLCIII\n\nCPU\t\t13.01\t\t\t6.92\nGraf\t\t15.67\t\t\t7.69\nDisk\t\t2.22\t\t\t2.44\nMath\t\t25.57\t\t\t10.19\n\nP.R. Rating\t12.91\t\t\t6.58\n\nSo, there is a comparison.  There is definitely a very noticable speed\ndifference between these two machines according to Speedometer3.1.  \n\nChad\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8945, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: volkert@kub.nl (Volkert)\nSubject: RE: 80486DX-50 vs 80586DX2-50\nOrganization: Tilburg University, Tilburg, The Netherlands\nNntp-Posting-Host: itkdsh.kub.nl\nLines: 19\n\n-------------------------------------------------------------------------\nAnonymous,\n\nI saw a posting about the choice between 80486DX-50 and a 80486DX2-50.\nI was wondering: although a DX-50 is faster because of the path to it's\nexternal cache, shouldn't the choice be the DX2-50 as that one can be\nmade to work properly with a local-bus? I mean, cache speed is one thing,\nbut all your speed will be blocked during video I/O, so just get that\nfaster... \nI'm willing to speculate that the DX2-50 with local-bus will be 2-4 times \nas fast as the DX-50 and probably as expensive (or cheap ;-)!\n\nregards, JV\n                                                                /////\nname:    J-V Meuldijk                                          [ o o ]\naddress: gildelaar 4                                            \\_=_/\n         4847 hw teteringen                                     _| |_ \n         holland                  e-mail:  volkert@kub.nl      / \\_/ \\\n_____________________________________________________________oOOO___OOOo__\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8946, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: How does it really work? (was Re: text of White House announcement and Q&As on clipper chip encryption)\nLines: 22\n\n\tFrom: Marc VanHeyningen <mvanheyn@cs.indiana.edu>\n\n\tThe majority of the discussion involving this \"Clipper Chip\" seems to\n\tpertain to the encryption of telephone conversations.  Does anyone\n\tknow if that means this chip is designed to work primarily with analog\n\tsignals?  The language sort of suggests this, but it's hard to say.\n\nI'd lay a few bucks that its just data-in-data-out in parallel.  I suspect\nto make it a phone you'd need a codec and speech compression.  There would\nbe a loss of bandwidth on the speech signal, which I suspect would scupper\nany of the suggestions I've seen here about putting a different encryption\nfront end on it.\n\nThere's no hint of any modulation scheme in the docs.  I'm sure it's purely\na digital chip.  The back end will come later, but I'm *positive* it won't\nbe left to the manufacturers - they all have to be the same modulation\nscheme to make it easy for the NSA to tap them.\n\nThe only other possibility is that this is intended only for ISDN phones.\n(Puts a whole new spin on EFFs obsession about ISDN if true, bwahahaha! ;-) )\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8947, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: WH proposal from Police point of view\nOrganization: DSI/USCRPAC\nLines: 18\n\n\ndwight tuinstra posts a very interesting message in which he comments on the\neffects of the Clipper chip on state and local police. Actually, reading\nbetween the lines, it could be a very good thing for civil liberties in one\nrespect, since it will at least prevent cowboy cops and cowboy state and\nlocal agancies from reading your traffic if they tap it illegally.\n\nThere has been extensive discussion in the eff forum, for example, about\ninadmissible taps being used to develop information that could then lead to\nadmissible evidence.  This might put a stop to such things, which must from\ntime to time be simple fishing expeditions.\n\nDavid\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8948, "properties": {"category": "talk.politics.mideast", "text": "From: ilyess@ECE.Concordia.CA (Ilyess Bdira)\nSubject: Remember those names come election time.\nKeywords: usa federal, government, international, non-usa government\nNntp-Posting-Host: davinci.ece.concordia.ca\nOrganization: ECE - Concordia University\nLines: 77\n\nIn article <christopherU3AK245pe@clarinet.com> clarinews@clarinet.com (SID BALMAN Jr.) writes:\n \tWASHINGTON (UPI) -- Secretary of State Warren Christopher said Tuesday\n there are better ideas to stop the human slaughter in the Balkans than\n ordering American fighters to bomb the Serbs, but a frustrated senator\n told him to do just that.\n \t``We've not done a damn thing,'' Sen. Joseph Biden, D-Del., told\n Christopher at a hearing of the Senate Foreign Relations Committee. \n ``Preventive diplomacy is not in your capability right now in Bosnia-\n Herzegovina.\n \tBiden chastised the administration and its Republican predecessor for\n what he characterized as a limp response to the Serbian policy of \n ``ethnic cleansing'' of Muslims, including rape and shelling of\n civilians.\n \t``The time has come for us and the world to stop bemoaning the fact\n that all the options are bad ones,'' Biden said. ``They are all bad ones\n and we ought to pick a couple.''\n \tBiden also endorsed lifting an international arms embargo against the\n former Yugoslavia so the Muslim-dominated Bosnian government might have\n a chance to at least defend itself against the Serbs.\n \tChristopher said this could give an opening role in the conflict to\n                     ****************************************************\n the radical Islamic government of Iran.\n***************************************\nO, I C!\n   Biden endorsed bombing Serbian heavy weapons around the besieged\n  eastern town of Srebrenica.\n  \t``There's not a military person...who will not tell you that they\n  could today, if you gave them the order, take out the heavy weaponry\n  around Srebrenica,'' Biden said.\n  \t``If you did nothing else, nothing else but that, you would have\n  saved hundreds of women and children who are being absolutely massacred\n  right now.''\n  \tMilitary action ``is the only thing that's going to change the\n  equation,'' Biden said.\n....................................\n  \tDespite the frustrations and pressure, Christopher had no enthusiasm\n  for American combat aircraft to strike Serb positions in Bosnia-\n  Herzegovina.\n....................\n>\t``Clearly we are at a turning point in the Bosnia situation,''\n>Christopher said. ``Air strikes are among those steps that are so\n>complex because they tend to interfere with the humanitarian endeavours.\n>I think there may be better options.''\n\nHumanitarian as in feeding them and let them get raped and killed.\n\n>political conflict. Clinton vowed during the presidential campaign to\n\t             *******(then)\n>lift the arms embargo and to strike at Serbian heavy weapons with U.S.\n>combat aircraft.\n>\tChristopher said airstrikes would likely ``increase the level of\n\t*******************(Now)\n>fighting and cause our allies to draw back'' or even ``pull out the\n>humanitarian effort.''\n>\tGreat Britain and France have balked at foreign military intervention\n>in Bosnia-Herzegovina for fear that their peacekeeping troops on the\n>ground may suffer Serbian retribution.\n\nWhy don't they get the hell out of there, they ared doing nothing to\nprotect the victims anyway.. Maybe becasue they have a different agenda.\n\n>\tSen. Nancy Kassebaum, R-Kan., seemed to agree with Christopher's\n         *************************\n>assessment and stressed the need not to build up Bosnian expectations\n>for heavy U.S. military intervention.\n>\t``It's very important that expectations aren't raised high on the\n>part of the beleagured Bosnians,'' she said.\n>\tAir strikes might have made a difference eight months ago, she said,\n>but the strategic significance of that step now is questionable. Like\n>Christopher, Kassebaum said it might jeopardize the humanitarian relief\n>effort.\n\nNow that they made sure the Bosnian (who were the only real subject of the\nembargo last year, as everybody knows that the Serbs had an unlimited supply\nof arms) wre massacred without having a chance to defend themselves, Now this\nevil coldhearted snake is saying \"it is too late to save them, so let them die.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8949, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: masaoki@hpysodk.tky.hp.com (Masaoki Kobayashi)\nSubject: --- CR-ROM Drive Recommendation? ---\nOrganization: YHP Hachioji HSTD R&D, Tokyo Japan\nLines: 24\n\nHi all,\n\n  I would like to purchase CD-ROM drive. The specs I would like to have is:\n\n   * Applicable to Kodak multisession Photo-CD\n   * SCSI(2) Interface\n   * Compatible with Adaptec-1542B\n   * Does not need any caddies\n   * Cheaper ( < $500 if possible)\n   * Double Speeded\n\n  I believe there are no drives satisfying all of the above condition,\n  so I would like to know all of your opinion.  The above conditions\n  are sorted by my priority.\n  I think NEC CDR74-1/84-1 is a little bit expensive, but it DOES satisfy\n  almost all of the above conditions. The problem is that I do not know\n  the compatibility with 1542B. Has someone succeeded to connect these\n  NEC drives to 1542B? I have heard a rumor that NEC drive is incompatible\n  with 1542B adapter.\n  Any suggestions are greatly appreciated.\n\nThanks in advance,\nKobayashi,Masaoki\n(masaoki@tky.hp.com)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8950, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: Drinking and Riding (eww, gross)\nOrganization: Ontario Hydro - Research Division\nLines: 16\n\nIn article <MJMUISE.38.733926270@1302.watstar.uwaterloo.ca> MJMUISE@1302.watstar.uwaterloo.ca (Mike Muise) writes:\n>\n>1 hr/drink for the first 4 drinks.\n>1.5 hours/drink for the next 6 drinks.\n>2 hours/drink for the rest.\n\nIn my case it goes down after the first four, because the fifth one usually\nmakes me throw up the last two.\n\nNeedless to say, I don't drink very much anymore, as the last time that\nhappened was in the second year of my undergrad. I was a silly .edu breath,\nand pretty bad breath at that.\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8951, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: swh@capella.cup.hp.com (Steve Harrold)\nSubject: Re: Need Info on Diamond Viper Video Card\nOrganization: Hewlett Packard, Cupertino\nLines: 46\n\nExperiences with Diamond Viper VLB video card\n\nSeveral problems:\n\n1) The ad specified 16.7 million colors at 640x480 resolution with 1MB\n   of VRAM, which is what I have. This color depth is NOT SUPPORTED\n   with video BIOS version 1.00 and drivers version 1.01. A max of 65K\n   colors are supported at 640x800 and 800x600 resolutions with 1MB\n   VRAM.\n\n2) With the 65K color choice I notice two minor irritations:\n\n   a) Under NDW, when an entry in a list is highlighted (such as in an\n      Open menu) and then is deselected, a faint vertical line often\n      remains where the left edge of the highlighted rectangle used to\n      be.\n\n   b) With Word for Windows, when you use shading in a table, the\n      display shows the INVERSE of the shading; for example, if you\n      shade the cell as 10%, the display is 90% (the printout is OK).\n\n3) The big killer bug is using the Borland C++ Integrated Development\n   Environment. The problem occurs when you click on the Turbo Debugger\n   icon (or use the Debugger option in the Run command), and the\n   debugger application goes to VGA character mode (as it is designed\n   to do). The screen goes haywire, and is largely unreadable. The\n   Turbo Debugger display is all garbled.\n\n   Through trial and error, I have found that when the disrupted screen\n   is displayed you should do [Alt-Spacebar] followed by the letter\n   \"R\". This instructs Turbo Debugger to refresh the screen, and it\n   does this satisfactorily. I wish I didn't have to do this.\n\n   The bug is more than with the Diamond drivers. The same disruptive\n   behavior happens with the standard VGA driver that comes with\n   Windows. There must be something in the video card that mishandles\n   the VGA mode.\n   \n   The problem is not my monitor. The same bug shows up when I use\n   another monitor in place of my usual one.\n\nI still like this video card, and am hoping its problems will be\nremedied (they do offer a 5 year warranty).\n\n---\nswh, 20apr93\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8952, "properties": {"category": "talk.politics.guns", "text": "From: mikey@ccwf.cc.utexas.edu (Strider)\nSubject: Re: CNN for sale\nOrganization: The University of Texas at Austin, Austin TX\nLines: 40\nDistribution: usa\nNNTP-Posting-Host: louie.cc.utexas.edu\n\nIn article <93106.21394634AEJ7D@CMUVM.BITNET> <34AEJ7D@CMUVM.BITNET> writes:\n|In article <2001.150.uupcb@yob.sccsi.com>, jim.wray@yob.sccsi.com (Jim Wray)\n|says:\n|>\n|> Bill Vojak:\n|>\n|> BV>I read in the paper yestarday that Ted Turner wants to \"trim\" down\n|> BV>his media holdings and is putting CNN up for sale.  The #1 potential\n|> BV>bidder?  TIME/Warner of course.  Sigh . . . . . Just what we need. :-(\n|>\n|> Maybe now's the time for us, the NRA, GOA, CCRTKBA, SAF, et al to band\n|> together and buy CNN as *our* voice. Wouldn't that be sumpin....broadcast\n|> the truth for a change and be able to air a favorable pro-gun item or two...\n|>\n|I would like to see this happen. I don't think it will. I don't\n|think the average gun-owner will take any notice of what is happening\n|until they break down HIS door.\n|\n|BUT I will go on record publicly to the effect that I will contribute a\n|minimum of $1,000.00 to the buy-out fund if it can be organized and made\n|viable. Anybody else want to put their money where their mouth is?  :)\n|There ar 50+ MILLION gun owners out there. If - and it's a big and\n|not very realistic if - we got hold of CNN, the anti-gun bullshit would\n|STOP RIGHT THERE. Why won't it happen - because nobody will get off their\n|ass and MAKE it happen. Nuts.\n\nI will join the ranks here.  If someone has the ability to actually put this\nthing together and get enough support, I'll also contribute $1000 to the \neffort.  And jeeze, people, I'm a *student*, with *no job* yet, and I will\nput up my own hard-earned savings if it means we have a shot at getting\nthe truth told on the airwaves.  Count me in.\n\nMike Ruff\n-- \n- This above all, to thine own      S T R I D E R      mikey@ccwf.cc.utexas.edu\n-     self be true.  --Polonius     *  * *****    **  *  * **** ***** *** *   *\nThose who would sacrifice essential *  *   *     *  * *  * *      *    *  **  *\n   liberties for a little temporary *  *   *     **** *  * ****   *    *  * * *\n   safety deserve neither liberty   *  *   *     *  * *  *    *   *    *  *  **\n   nor safety.  --B. Franklin       ****   *     *  * **** ****   *   *** *   *\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8953, "properties": {"category": "rec.sport.baseball", "text": "From: cpc4@ns1.cc.lehigh.edu (CONNIN PATRICK COLGAIN)\nSubject: A.L. East is best in baseball!\nOrganization: Lehigh University\nLines: 27\n\nIs there any doubt that this is true?  After a few down years, the A.L. East\nis back to where it was in the early eighties.  With the emergence of the O's\nand the Yanks, it is far and away the best.  While the N.L. West has the best\nteam in baseball, and the Reds aren't bad either, they have nothing else.  The\nGiants, Astros, and Padres all have talent, they do not have the all arounf\nteams that are found in the A.L. East.  And the Dodgers just plain suck.  As\nfor the Rockies, who knows?\n   The A.L. East has the defending champs, and although they lost a lot to\nfree agency, Toronto is still one of the best in baseball.  The Orioles have\nthe preseason favorite to win the Cy Young in Mike Mussina, and you can never\nforget about Ripken.  The signings of Harold Baines and Harold Reynolds don't\nhurt to much either, although I always liked Bill Ripken.  While they let a\nlot go this summer (Randy Milligan, Joe Orsulak, Bill Ripken, Bob Milacki, Sam\nHorn, Storm Davis, and Craig Lefferts), they kept the heart of their team\nintact.\n\nMy predicted finish:\n1. Baltimore (Could be a biased opinion)\n2. NY Yankees\n3. Toronto\n4. Milwaukee\n5. Detroit\n6. Boston\n7. Cleveland (Would have been higher if not for the accident)\n\nGo O's!!!!!!!!\n-- \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8954, "properties": {"category": "sci.crypt", "text": "From: lars@spectrum.CMC.COM (Lars Poulsen)\nSubject: Re: Is there ANY security in the Clipper?\nOrganization: CMC Network Systems (Rockwell DCD), Santa Barbara, CA, USA\nLines: 35\n\nIn article <ZEEV.93Apr18014822@sepia.ccc.amdahl.com> zeev@ccc.amdahl.com (Ze'ev Wurman) writes:\n>It seems to me that all discussions about Clipper security are almost \n>irrelevant - if I cannot choose the key, but have to use a key chosen for\n>me by the foundry, the security of the WHOLE UNIVERSE OF USERS is as good\n>(or as bad) as the security of VLSI Technologies Inc.\n\n- or their handlers.\n\n>It is a trivial effort to run any ciphertext agains ALL THE KEYS EVER \n>MANUFACTURED - after all we are talking about 1 to 100 million keys that\n>will ever be manufactured. The key depositories can be as secure and\n>incorruptible as they wish to be, nobody cares anyway...:-(\n\nThey key depositories are IRRELEVANT. In order for the applicable law\nenformcement agencies to be able to know what keys to request from\nescrow, the system will have to squawk its serial number in clear text\nas part of the link establishment protocol. Whoever owns the program \nthat assigns keys to each serial number won't need access to the key\ndepository.\n\nIn other words, the FBI may need a court-ordered release of escrowed\nkeys, but the NSA has the keys before the chip is ever manufactured.\nThere is no need to go through the escrow or to try all keys. While\nrelations between law enforment agencies have sometimes been strained,\nthere is also a long history of trading favors. This will re-establish\nthe NSA as a very important agency for everyone to get along with,\nbecause they can give you untraceable encryption leaks without court\norders.\n\nThe more I think about this affair, the fouler it smells. I'd rather\nhave a DES with an engineered-in backdoor ...\n-- \n/ Lars Poulsen, SMTS Software Engineer\tInternet E-mail: lars@CMC.COM\n  CMC Network Products / Rockwell Int'l\tTelephone: +1-805-968-4262\t\n  Santa Barbara, CA 93117-3083\t\tTeleFAX:   +1-805-968-8256\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8955, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: I believe in gun control.\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nLines: 17\n\nIn article <C4vG3F.Kx3@apollo.hp.com>, nelson_p@apollo.hp.com (Peter Nelson) writes:\n> cj195@cleveland.Freenet.Edu (John W. Redelfs) writes:\n>>I believe in gun control.  How about you?\n>\n>  I believe in gun control, too . . . assuming by \"gun control\"\n>  you mean always being able to hit your target.\n>\n>\n>---peter\n>\n   Or, how about the Clint Eastwood line in \"Pink Cadillac\" -\n      \"I believe in gun control.  If there's a gun around, I wanna be\n       the one controlling it.\"\n\nAl\n[standard disclaimer]\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8956, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: \"Conventional Proposales\": Israel & Palestinians\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 69\n\nThe latest Israeli \"proposal\", first proposed in February of 1992, contains \nthe following assumptions concerning the nature of any \"interim status\" \nrefering to the WB and Gaza, the Palestinians, implemented by negotiations.\nIt states that:    \n   >Israel will remain the existing source of authority until \"final status\"\n    is agreed upon;\n   >Israel will negiotiate the delegation of power to the organs of the \n    Interim Self-Government Arrangements (ISGA);\n   >The ISGA will apply to the \"Palestinian inhabitants of the territories\"\n    under Israeli military administration. The arrangements will not have a \n    territorial application, nor will they apply to the Israeli population \n    of the territories or to the Palestinian inhabitants of Jerusalem;\n   >Residual powers not delegated under the ISGA will be reserved by Israel;\n   >Israelis will continue to live and settle in the territoriesd;\n   >Israel alone will have responsibility for security in all its aspects-\n    external, internal- and for the maintenance of public order;\n   >The organs of the ISGA will be of an administrative-functional nature;\n   >The exercise of powers under the ISGA will be subject to cooperation and \n    coordination with Israel. \n   >Israel will negotiate delegation of powers and responsibilities in the \n    areas of administration, justice, personnel, agriculture, education,\n    business, tourism, labor and social welfare, local police,\n    local transportation and communications, municipal affairs and religious\n    affairs.\n\nSeveral question do come to mind concerning the \"success\" we all hope for \nin the ongoing negotiation process. These arrangements certainly seem to \nbe essentially a rejection of any Palestinian \"interim\" self-control. \nWithout exposing itself to unwarranted risks and creating irresversible \nvulnerability, can Israel reasonably put forward (at later points in the \nnegotiating process) more \"relaxed\" proposals for this\"interim\" period? \nHow should proposals (from either side) be altered to temper their \n\"maximalist\" approaches as stated above? How can Israeli worries ,and \ndesire for some \"interim control\", be addressed while providing for a  \nvery *real* interim Palestinian self-governing entity?\n\nTim\n\n>Later comment:\n>\n>There seem to be two perceptions that **have to be addressed**. The\n>first is that of Israel, where there is little trust for Arab groups, so\n>there is little support for Israel giving up **tangible** assets in \n>exchange for pieces of paper, \"expectations\", \"hopes\", etc. The second\n>is that of the Arab world/Palestinians, where there is the demand that\n>these \"tangible concessions\" be made by Israel **without** it receiving\n>anything **tangible** back.  Given this, the gap between the two stances\n>seems to be the need by Israel of receiving some ***tangible*** returns\n>for its expected concessions. By \"tangible\" is meant something that\n>1) provides Israel with \"comparable\" protection (from the land it is to \n>give up), 2) in some way ensures that the Arab states and Palestine \n>**will be** accountable and held actively (not just \"diplomatically) \n>responsible for the upholding of all actions on its territory (by citizens \n>or \"visitors\").\n>\n>Israel is hanging on largely because it is scared stiff that the minute\n>it lets go (gives lands back to Arab states, no more \"buffer zone\", gives\n>full autonomy to Palestinians), ANY and/or ALL of the Arab parties\n>could (and *would*, if not \"controlled\" somehow) EASILY return to the \n>traditional anti-Israel position. The question then is HOW to *really*\n>ensure that that will not happen.\n\n\n\n--\n______________________________________________________________________________\nTim Clock                                   Ph.D./Graduate student\nUCI  tel#: 714,8565361                      Department of Politics and Society\n     fax#: 714,8568441                      University of California - Irvine\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8957, "properties": {"category": "comp.sys.mac.hardware", "text": "From: scotts@bbking.FtCollinsCO.NCR.COM ( Scott Sherman)\nSubject: Re: Computer Engr vs.  Computer Science\nDistribution: usa\nOrganization: NCR Microelectronics Products Division (an AT&T Company)\nLines: 20\n\nIn article <1993Apr10.210242.340@macadam.com>, mike@macadam.com writes:\n|> I am a freshman in college and can't decide whether to major in computer  \n|> engineering or computer science.  Any advice or suggestions will be  \n|> appreciated.\n|> \n|> Thanks,\n|> Mike\n\nA professor of mine once said \"The difference between a Computer Engineer and\na Computer Scientist is about $5000\" meaning the Engineer makes $5000 more than\nthe CS.\nSeriously though the main difference is that most CS people write programs that\npeople will use, i.e. database, graphics, word processors, etc., while an\nengineer writes for machines or control systems, i.e. the \"computer\" in your\ncar, a flight control system, computer controled devices, etc. In other words\nCS writes SOFTWARE while CSE writes FIRMWARE. \nThese are generalizations but for the most part that is what the difference is.\n\nP.S. The $5000 is not just a joke\nScott\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8958, "properties": {"category": "rec.sport.baseball", "text": "From: CROSEN1@ua1vm.ua.edu (Charles Rosen)\nSubject: Re: Torre: The worst manager?\nNntp-Posting-Host: ua1vm.ua.edu\nOrganization: The University of Alabama, Tuscaloosa\nLines: 61\n\nIn article <93095@hydra.gatech.EDU>\ngt7469a@prism.gatech.EDU (Brian R. Landmann) writes:\n \n>Joe Torre has to be the worst manager in baseball.\n>\n>For anyone who didn't see Sunday's game,\n>\n>With a right hander pitching he decides to bench Lankform, a left handed\n>hitter and play jordan and gilkey, both right handers.\n>\n>Later, in the ninth inning with the bases loaded and two outs he puts\n>lankford, a 300 hitter with power in as a pinch runner and uses Luis\n>Alicea, a 250 hitter with no power as a pinch hitter.  What the Hell\n>is he thinking.\n>\nFor your information, Lankford is injured (I think it is his shoulder or rib\ncage), so he could not use him as a pinch hitter.\n \n>Earlier in the game in an interview about acquiring Mark Whiten he commented\n>how fortunate the Cardinals were to get Whiten and that Whiten would be a\n>regular even though this meant that Gilkey would be hurt, But torre said\n>he liked Gilkey coming off the bench.  Gilkey hit over 300 last year,\n>what does he have to do to start, The guy would be starting on most every\n>team in the league.\n>\nI do believe that Whiten was a very good aquisition for the Cards.  He does\nnot have too much offensive capabilities, but he is an awesome defensively.\nSince when have the Cardnials actually thought of offense instead of defense?:)\nI forgot who St. Louis gave up for him, but it was not too much.\n \nAs far as Gilkey is concerned, he is a leftfielder and so is Brian Jordan, who\nbeat him out.  I expect to see a Gilkey/Jordan platoon in LF.\n \n>Furthermore, in Sundays game when lankford was thrown out at the plate,\n>The replay showed Bucky Dent the third base coach looking down the line\n>and waving lankford home,\n>\nI agree with you on this one.  As soon as Larkin threw that ball, I knew that\nLankford was a dead bird.  But how could Dent have known that Larkin would make\na perfect throw?\n \nI strongly believe that Torre is one of the best managers in baseball.  Don't\nforget the overachieving Cards of '91 that won all those close games and went\nfrom last place to second place (although they were oveshadowed by the Braves/\nTwins last to first climb).  He won a division title, and barely lost a pennant\nrace when he was with the Braves (why Atlanta ever even considered firing him I\nwill never understand).  With Torre at the controls, the Cardinals are heading\nin the right direction.\n \nOne more thing, one game does not make a season.  Yes, they lost to the Reds,\nbut with the second best pitching staff in the National League (first in the\nEast), and a pretty good offense, the Redbirds will win a lot more than they\nlose.  Maybe this is the year that they will go all the way.\n \nCharles, a very enthusiastic Cardnials fan\n \n  -----------------------------------------------------------------\n  \u00ba Charles Rosen            \u00ba      THIRTY-FOUR TO THIRTEEN!!!    \u00ba\n  \u00ba University of Alabama    \u00ba   NATIONAL CHAMPS!!!  ROLL TIDE!!! \u00ba\n  \u00ba Tuscaloosa, AL           \u00ba         (Need I Say More?)         \u00ba\n  -----------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8959, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: servis@author.ecn.purdue.edu (Brian K Servis)\nSubject: Re: How Redirect PRINT MANAGER To FILE?\nOrganization: Purdue University Engineering Computer Network\nLines: 33\n\nu7911093@cc.nctu.edu.tw (\"By SWH ) writes:\n\n>Who can tell me which program (PD or ShareWare) can redirect windows 3.1's\n>output of printer manager to file? \n\n>\tI want to capture HP Laser Jet III's print output.\n\n> \tThough PostScript can setup print to file,but HP can't.\n\n>\tI use DOS's redirect program,but they can't work in windows.\n\n>\t\tThankx for any help...\n>--\n> Internet Address: u7911093@cc.nctu.edu.tw\n\n>    English Name: Erik Wang\n>    Chinese Name: Wang Jyh-Shyang\n\n> National Chiao-Tung University,Taiwan,R.O.C.\n\nTry setting up another HPIII printer but when choosing what port to connect it\nto choose FILE instead of like :LPT1.  This will prompt you for a file name\neverytime you print with that \"HPIII on FILE\" printer. Good Luck.\n\n\nBrian Servis\n===========================================================================\n||  servis@author.ecn.purdue.edu   ||         \"It Happened This Way\"     ||\n===================================|| actual quotes from insurance claims||\n||  What I say may not be what I   ||                                    ||\n||  think. What I say may not be   ||  \"The pedestrian had no idea which ||\n||  what Purdue thinks.            ||   way to go, so I ran him over.\"   ||\n===========================================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8960, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dsou@btma57.nohost.nodomain\nSubject: Speedstar 24X & Windows Enhanced Mode\nReply-To: dsou@btma57.nohost.nodomain ()\nLines: 17\nNntp-Posting-Host: 7.597\n\n\nHi,\n\nI have a 486/66MHz SYS based PC with 8M RAM and a problem.\n\nWhat is the best way to configure high memory with QEMM/386MAX ??\nI have a SPEEDSTAR 24X video card and use Hyperdisk disk cache\nsoftware. The problem is running Windows 3.1 in Enhanced mode and\nhaving any high memory to load stuff high?\n\nNote :\nI tried, as recommended to exclude the region A000-C7FF but Windows\ninsists on starting in Standard mode.\n\nAny suggestions?\n\nDan\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.424+0000", "event": "documents", "entityId": 8961, "properties": {"category": "soc.religion.christian", "text": "From: tbrent@florin.ecn.purdue.edu (Timothy J Brent)\nSubject: Re: Pantheism & Environmentalism\nOrganization: Purdue University Engineering Computer Network\nLines: 26\n\nIn article <Apr.9.01.09.29.1993.16586@athos.rutgers.edu> jono@mac-ak-24.rtsg.mot.com (Jon Ogden) writes:\n\n>So we see that we are masters of this planet.  It IS ours to care for and\n>ours to look after.  We will be judged on how well we do this task.\n>C.)  We are not to be in the business of spreading lies.  What we tell\n>others we must be sure is true.  We should check out the information,\n>verify it with scientific fact and go from there.\n\t\t\t   ^^^^\n\nJust what are these \"scientific facts\"?  I have never heard of such a thing.\nScience never proves or disproves any theory - history does.\n\n-Tim\n\n ______________________________________________________________________________\n|\t\t\t\t|\t\t\t\t       \t       |\n|       Timothy J. Brent        |   A man will come to know true happiness,    |\n|   BRENT@bank.ecn.purdue.edu   |   only when he accepts that he is but a      |\n|=========$$$$==================|   small part of an infinite universe.\t       |\n|       PURDUE UNIVERSITY       |\t\t\t  \t   -Spinoza    |\n| MATERIALS SCIENCE ENGINEERING |\t\t\t \t [paraphrased] |\n|_______________________________|______________________________________________|\n\n[I hope we don't get embroiled in a discussion over words here.  When\nsomebody says \"get the facts\", I'm not sure we need to get into\narguments over the philosophy of science.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8962, "properties": {"category": "comp.sys.mac.hardware", "text": "From: joshc@csa.bu.edu (Josh Carroll)\nSubject: Racet Optical\nOrganization: Computer Science Department, Boston University, Boston, MA, USA\nLines: 13\nOriginator: joshc@csa\n\n\n  I've got a Racet 5.25\" MO Drive with a Ricoh RO-5030E mechanism with the\nnew ROMs... The thing is, I have a new TOSOH Optical Disk 512/bytes per\nsector cart for the thing that refuses to mount or be formatted... all the\ncarts that I have for the drive that work are Racet Certified Media\n512k/sector carts... All I can think of is that this TOSOH cart uses some\nkind of incompatible low level format... anyone know what software will\nallow this to be formatted on this drive? or a new DIP setting for the\nmechanism? I've tried just about every combination of drivers and custom\nformatting programs I can find with no luck... any ideas?\n\njoshc@csa.bu.edu  (if you have a good idea, please e-mail it to this\naddress if possible, I can't check this newsgroup constantly, thanks)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8963, "properties": {"category": "sci.crypt", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Re: Once tapped, your code is no good any more.\nDistribution: na\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nLines: 50\n\nIn article <1qpg8fINN982@dns1.NMSU.Edu> amolitor@nmsu.edu (Andrew Molitor) writes:\n>In article <tcmayC5M2xv.JEx@netcom.com>\n>\ttcmay@netcom.com (Timothy C. May) writes:\n>>\n>>But is it any worse than the current unsecure system? It becomes much\n>>worse, of course, if the government then uses this \"Clinton Clipper\"\n>>to argue for restrictions on unapproved encryption. (This is the main\n>>concern of most of us, I think. The camel's nose in the tent, etc.)\n>>\n>\n>\tNot to pick on Mr. May in particular, of course, but isn't this\n>kind of the domino theory? When one little country falls, its neighbor\n>will surely follow, and before you know it, we're all mining salt\n>in Siberia for not turning in our Captain Crunch Secret Decoder Rings.\n>\n>\tSurely the hypothesis relying on the least wild assumptions is\n>to take this at face value. Our lads at the fort were asked to cook up\n>something that's pretty secure, with a key that can be escrowed neatly,\n>and they did. The government plans to sell this thing, for the reasons\n>they state. Yes, those evil guys in the FBI can probably, with some\n>effort, abuse the system. I got news for you, if the evil guys in\n>the FBI decide they want to persecute you, they're gonna, and you're\n>gonna hate it. Fact is, the FBI doesn't want to listen to your phone\n>calls, and if they do, and if you're using triple-DES, they'll just\n>get a parabolic microphone and point it at your head.\n>\n\tWith E-Mail, if they can't break your PGP encryption, they'll just\ncall up one of their TEMPEST trucks and read the electromagnetic emmisions\nfrom your computer or terminal.  Note that measures to protect yourself from\nTEMPEST surveillance are still classified, as far as I know.\n\n>\tThis is pretty clearly an effort by the government to do exactly\n>what they're saying they're doing. As is typical with governments,\n>it's mismanaged, and full of holes and compromises. As is typical\n>with our government, it's not too bad, could be worse.\n>\n>\tMy interpretation.\n>\n>\tAndrew\n>\n>>-Tim May, whose sig block may get him busted in the New Regime\n>                           ^^^^^^^^^^^^^^^^^^\n>\n>\tIsn't this just a little melodramatic?\n\n\tIf the new regime comes to fruition, make sure you protect your First\nAmendment rights by asserting your Second Amendment Rights.\n\n\t\t\t\t\t\tDoug Holland\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8964, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Why not concentrate on child molesters?\nArticle-I.D.: optilink.15209\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 42\n\nIn article <C4vrII.H2@exnet.co.uk>, s0xjg@exnet.co.uk (Xavier Gallagher) writes:\n> In article <15150@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n> >In article <C4oBCK.761@unix.portal.com>, drakon@shell.portal.com (Harry Benjamin Gibson) writes:\n# #They believe that they have a right to FORCE people to hire them,\n# #rent to them, and do business with them, regardless of the feelings\n# #or beliefs of the other person.\n# \n# Cramer, you are off your target again.  The law *forces* no one to obey\n# it.  At every point any individual may stand up and say *this law\n# sucks*.  Even you could say this.  Gay men and women have not *forced*\n\nYou mean they passed a law that does nothing at all?  No enforcement\nmechanisms?  As usual, you are wrong.\n\n# any off this.  Changes in the law have been brought about by\n# democratic* processes, those same processes are the ones that protect\n# you from certain abuses.\n\nYeah, right.  I guess the next time a homosexual complains about\nsodomy laws, I can just echo your stupidity about \"democratic\nprocesses\" and he won't have any basis for complaint.\n\n# #I must admit that I never understood why it is referred to as an \n# #abomination, until I started to read soc.motss, and started finding\n# #evidence that homosexuality is a response to child molestation --\n# #which is disproportionately done by homosexuals.  (Just to make\n# #Brian Kane happy -- 30% of molestation is done by homosexuals and\n# #bisexuals, but it is possible that this is because homosexual/bisexual\n# #molesters have far more victims than heterosexual molesters.)\n# \n# No it isn't.  No it isn't. No it isn't and it depends on the subset\n# (note *subset*) of abuse you look at.\n\nRepeating it three times makes it more correct?\n\n# #Clayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\n# #Relations between people to be by mutual consent, or not at all.\n# \n# * Xavier Gallagher*************************** Play  ***************************\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8965, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: hendersond@iccgcc.decnet.ab.com (Doug Henderson)\nSubject: Kaypro 286 jumper settings\nLines: 16\n\nI received a Kaypro 286i computer (DOS) without a manual that \ndescribes the jumpers on the motherboard.  It came with\n640KB and I up'd it to 1MB.  But the computer or setup does not\nrecognize the extra 384K. \n\nDoes anyone know if this computer is capable of greater than 640K\non the main board and what jumpers are required to expand it to 1MB?\n\nSome specs:\n\tKaypro main board assy number 81-621\n\tPhoenix BIOS v1.51 1985\n\nThanks in advance,\nDoug\n \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8966, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: Braves Pitching UpdateDIR\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 23\n\nIn article <1993Apr15.214032.1@acad.drake.edu> sbp002@acad.drake.edu writes:\n\n>> Not clear to me at all.  I'd certainly rather have a team who was winning\n>> 4-1 games than 2-1 games.  In the 2-1 game, luck is going to play a much\n>> bigger role than in the 4-1 game. \n\n>But you still need the pitching staff to hold the opposing team to\n>one run.\n\nNot if you've scored four runs, you don't!  Why strain even the best pitching\nstaff?  Why not make it easier for them?  \n\nIn the 2-1 game, the best pitching staff in the world can't compensate\nfor a blown call, a bad hop, a gust of wind.  Winning close is the \nwrong way to win; both keeping opposing runs down AND scoring a lot \nyourself are insurance against the \"Shit happens\" aspect of baseball.\n\nNot every great teamhas even *good* pitching.  The Big Red Machine of\nthe 70's was league-average in pitching.  But somehow, Rose-Morgan-Bench-\nPerez-etc. managed to win 100 games more than once, peaking at 108.\n\nRoger\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8967, "properties": {"category": "rec.sport.hockey", "text": "From: MWEINTR@auvm.american.edu\nSubject: Re: Trade rumor: Montreal/Ottawa/Phillie\nArticle-I.D.: auvm.93095.210625MWEINTR\nOrganization: The American University - University Computing Center\nLines: 38\n\nAlso sprach slegge@kean.ucs.mun.ca ...\n\n>TSN Sportsdesk just reported that the OTTAWA SUN has reported that\n>Montreal will send 4 players + $15 million including Vin Damphousse\n>and Brian Bellows to Phillidelphia, Phillie will send Eric Lindros\n>to Ottawa, and Ottawa will give it's first round pick to Montreal.\n>\n>If this is true, it will most likely depend on whether or not Ottawa\n>gets to choose 1st overall.  Can Ottawa afford Lindros' salary?\n>\n>Personally, I can't see Philli giving up Lindros -- for anything.\n>They didn't give away that much to Quebec just to trade him away\n>again.  Not to mention that Lindros seems to be a *huge* draw in\n>Phillie -- and that he represents a successful future for the\n>franchise.\n>\n>Ottawa may be better off taking the 4 players +$15 from Montreal\n>for the pick.\n>\n>Stephen Legge\n>SLEGGE@kean.ucs.munc.ca\n\nTwo things:\n\n1. Didn't the trade deadline pass two weeks ago?\n\n2. The FLYERS would never ever EVER give up Lindros, simple as that.\n\nGo Flyers, Cup in '94...\n\nMike\n---\n***Yes-Rush-Marillion-ELP-Genesis-King Crimson-Dream Theater-Beatles***\n* Mike Weintraub, aka Jvi on IRC              \"Courageous convictions *\n* mweintr@american.edu                         will drag the dream    *\n* jedi@wave.cerf.net                           into existence\"        *\n* The American University, Washington DC        - Rush (NOT Limbaugh) *\n***Go Philadelphia Flyers, Vancouver Canucks & Philadelphia Phillies***\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8968, "properties": {"category": "sci.med", "text": "From: turpin@cs.utexas.edu (Russell Turpin)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: CS Dept, University of Texas at Austin\nLines: 18\nDistribution: inet\nNNTP-Posting-Host: im4u.cs.utexas.edu\n\n-*-----\nIn article <1993Apr15.150550.15347@ecsvax.uncecs.edu> ccreegan@ecsvax.uncecs.edu (Charles L. Creegan) writes:\n> What about Kekule's infamous derivation of the idea of benzene rings\n> from a daydream of snakes in the fire biting their tails?  Is this\n> specific enough to count?  Certainly it turns up repeatedly in basic\n> phil. of sci. texts as an example of the inventive component of\n> hypothesizing. \n\nI think the question is: What is extra-scientific about this?  \n\nIt has been a long time since anyone has proposed restrictions on\nwhere one comes up with ideas in order for them to be considered\nlegitimate hypotheses.  The point, in short, is this: hypotheses and\nspeculation in science may come from wild flights of fancy, \ndaydreams, ancient traditions, modern quackery, or anywhere else.\n\nRussell\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8969, "properties": {"category": "soc.religion.christian", "text": "From: rjs2@po.cwru.edu (Richard J. Szanto)\nSubject: Re: When are two people married in God's eyes?\nReply-To: rjs2@po.cwru.edu (Richard J. Szanto)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 27\n\nIn a previous article, randerso@acad1.sahs.uth.tmc.edu (Robert Anderson) says:\n\n>I would like to get your opinions on this: when exactly does an engaged\n>couple become \"married\" in God's eyes?  Some say that if the two have\n>publically announced their plans to marry, have made their vows to God, and\n>are unswervingly committed to one another (I realize this is a subjective\n>qualifier) they are married/joined in God's sight.\n\nI have discussed this with my girlfriend often.  I consider myself married,\nthough legally I am not.  Neither of us have been with other people sexually,\nalthough we have been with each other.  We did not have sexual relations\nuntil we decided to marry eventually.  For financial and distance reasons,\nwe will not be legally married for another year and a half.  Until then,\nI consider myself married for life in God's eyes.  I have faith that we\nhave a strong relationship, and have had for over 4 years, and will be\nfull of joy when we marry in a church.  First, however, we must find a\nchurch( we will be living in a new area when we marry, and will need to\nfind a new church community).\n\nAnyway, I feel that if two people commit to marriage before God, they are\nmarried and are bound by that commitment.\n\n-- \n\t\t\t\t\t\t-Rick Szanto\n-Polk Speakers Rock\t\t\t\t-Computer Engineer\n-Mac's Suck (Nothing Personal)\t\t\t-Case Western\n-Zeta Psi Rules\t\t\t\t\t-Reserve University\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8970, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jartsu@hut.fi (Jartsu)\nSubject: Good display card for 14\" multisync?\nNntp-Posting-Host: lk-hp-20.hut.fi\nReply-To: jartsu@vipunen.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 20\n\n\nHi there!\n\nI wonder if anyone knows and can recommend me a good NuBus display\ncard for driving a 14\" multisync (NEC 3D)?\nThe NEC 3D can do horizontal refresh from 15.5 kHz to 38 kHz and\nvertical from 50 Hz to 90 Hz and can do max 1024x768 interlaced,\nthough I am looking for something more like 800x600 or 832x624\nnoninterlaced.\nIt would be very nice to find a card which can be programmed quite\nfreely within these limits and is capable to display at least\n8bits/pixel, preferably more.\n\nIs there anything on the market that comes even close?\n\n\nThanks\n\n--\nJartsu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8971, "properties": {"category": "rec.sport.baseball", "text": "From: rja@mahogany126.cray.com (Russ Anderson)\nSubject: Re: NL vs. AL?\nOriginator: rja@mahogany126\nLines: 12\nNntp-Posting-Host: mahogany126\nOrganization: The 1991 World Champion Minnesota Twins!\n\n\nIn article <C5Dxqp.Hoo@news.rich.bnr.ca>, bratt@crchh7a9.NoSubdomain.NoDomain (John Bratt) writes:\n\n> How about game length?  I don't know if this is a valid statement or not, \n> but AL games sure seem to last a lot longer.\n\nMake sure to take the Sutcliff, Fisk, ect. factor into account.\n\n-- \nRuss Anderson    |  Disclaimer: Any statements are my own and do not reflect\n------------------              upon my employer or anyone else.  (c) 1993\nEX-Twins' Jack Morris, 10 innings pitched, 0 runs (World Series MVP!)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8972, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Looking to buy Dodge Stealth, have questions\nKeywords: questions\nArticle-I.D.: cactus.1993Apr6.041810.17295\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 88\n\nIn article <1993Apr5.203719@usho0b.hou281.chevron.com> hhtra@usho0b.hou281.chevron.com (T.M.Haddock) writes:\n>In article <1993Apr2.030031.15691@cactus.org>, boyle@cactus.org (Craig Boyle) writes:\n>|> In article <1993Apr1.104746@usho72.hou281.chevron.com> hhtra@usho72.hou281.chevron.com (T.M.Haddock) writes:\n>\n> I found a Mopar spec sheet this weekend:\n\n>\n>               model         wgt    hp\n>             Stealth         3086   164\n>             Stealth ES      3186   222\n>             Stealth RT      3373   222\n>             Stealth RT TT   3803   300\n>\n> Okay, I'll take \"their\" word for it.\n\nThese arethe numbers I have been stating in the past 5-10 messages. It\nreally angers me that you insisted you were right, and that you had\nno clue what your own car weighed. Why didn't you check when I first\ntold you that your figures were implausible?\n\n\n>\n\n>\n>> I am giving every chance to retract figures widely known. The Mustang is\n>> rated at 205.  222-205 is 17. You have a 17hp advantage over a Mustang\n>\n> Seems that the 1993 Mustang 5.0 is rated at 205 hp ONLY because Ford\n> changed its testing procedures.  Under the older procedures, it still \n> rates closer to 225 hp.  That means that the Mustang has 3 hp more.\n> \nI'd like to hear a better explanatin of how you come to that \nconclusion from the above data.\n\n>\n>> Big threat. You are KO'd by a Civic, acording to C+D \n>\n> Yeah, sure, in your wet dreams.  And that's probably where you got \nNo, sorry your wrong again. *You* quoted the del Sol as doing 0-60 in\n8.1 according to C+D. Interestingly, the Stealth ES, which is\n*faster* than your RT does the samerun in 8.5 seconds according to\nC+D. Kind of embarassing isn't it? Why didn't you check the figures\n\nbefore posting? It only makes you look stupid when you are caught out\ntwice with *your own* figures.\n\n> that 11.2 second 0-60 for the Stealth.\n>\n>\n>>> I'll check C&D's 5/91 issue.  Strange that you claim to have that \n\nYou really should have checked.\n\n>>\n>> Go ahead and check asshole, you'll realize what an idiot you are for not\n>> checking data beforeposting. Car+ Drive, may 91. Stealth ES, 222hp,\n>> automatic.\n>\n> For 3 posts now you've been harping on this May 1991 issue of Car & Driver\n      *2*\n> without posting any numbers.  Why not?  Because they prove me right and you\n> ain't got the guts to admit it?  Yeah, thought so.\n>\nIf you insist, I gave you every chance to retract, but:\n\n  Dodge Stealth ES Auto does an 8.5/16.4 - Wonder why you couldn't find it?\n\nDo you realize that a 9k Sentra (C+D) will run a 16.7, that a Sentra SE-R or Saturn\nwill run in the 15's? Don't you think it is kind of strange that your\n222hp sports car is so easily beaten. \n\nA Mustang 5.0, which weights about the same (according to *your* numbers),\nhas less power and is much quicker? Care to explain. Don't be abusive,\njust try and come up with a rational explanation of where those 222hp\nwent to, its a mystery to me.\n\n>> The Sentra SE-R really is alot quicker than the 222hp FWD Sports car.\n>> You are close to the 9k sentra-e. Go look up the numbers in C+D - and\n>> report please.\n>\n> No, I'm going to play your game -\n\n>\n>       No way, Sentra's are SLOW!  I took a test drive and it took\n>       21.7 to go 0-50!  Why, even the Hyundai Excel blows it doors\n\nI guess you drove a 5 speed and couldn't shift/\nCraig\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8973, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: peter@psychnet.psychol.utas.edu.au (Peter R. Tattam)\nSubject: Beta testers required for winsock version of Windows Trumpet\nOrganization: Psychology Department, University of Tasmania\nLines: 11\n\nContact me for details.\n\n   peter@psychnet.psychol.utas.edu.au\n\nPeter\n\n----------------------------------------------------------------------------\nP.Tattam                                    International Phone 61-02-202346\nProgrammer, Psychology Department           Australia     Phone   002-202346\nUniversity of Tasmania, Hobart, Tasmania, Australia\n----------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8974, "properties": {"category": "rec.autos", "text": "From: johnson@spectra.com (boyd johnson)\nSubject: Re: WARNING.....(please read)...\nOrganization: Spectragraphics Corporation\nLines: 31\n\nIn article <C5JGC4.AJJ@dove.nist.gov> keys@starchild.ncsl.nist.gov (Lawrence B. Keys) writes:\n\nThis isn't anything new.  Back in 1985 I was driving under a high\noverpass at night on I-805 in San Diego when I caught a glimpse of\nsomeone on the overpass.  As I passed under a rock slammed against the\nmetal between the winshield and right front window.  My girlfriend was\nin the seat next to it.  I called the police from the next exit, but I\ndoubt if they were found.\n\nAbout five years ago in San Diego someone was put into a coma from a\nbrick being thrown through his sunroof as he was driving and\nsubsequently crashed.  I don't think he ever came out of the coma, and I\nhaven't heard anything about it for a couple years.\n\n>I know that this isn't the group for it, but since you brought it up,\n>does anyone have any idea why they haven't \"bombed\" the Waco cult?    \n\nProbably because there are many children there.  Also the minor fact\nthat other than defending themselves from 100 some people attacking them\nthey haven't threatened or attacked anyone outside the compound in\nyears.  Being a promiscuous religious nut does not constitute grounds\nfor a mass murder of Koresh and his followers.\n\nSorry for posting this to this group, but I thought the previous post\nneeded a rebuttal.  If you follow-up to this portion please cross-post\nand direct follow-ups to a more appropriate newsgroup.\n\n-- \n====== Boyd Johnson   nosc!spectra.com!johnson  San Diego, California ======\n\tIntermittent newsfeed at best and only to selected groups.\n\tMy opinions certainly don't match those of my employer.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8975, "properties": {"category": "sci.med", "text": "From: marcbg@feenix.metronet.com (Marc Grant)\nSubject: Adult Chicken Pox\nOrganization: Tx Metronet Communications Services, Dallas Tx\nDistribution: usa\nLines: 13\n\nI am 35 and am recovering from a case of Chicken Pox which I contracted\nfrom my 5 year old daughter.  I have quite a few of these little puppies\nall over my bod.  At what point am I no longer infectious?  My physician's\noffice says when they are all scabbed over.  Is this true?\n\nIs there any medications which can promote healing of the pox?  Speed up\nhealing?  Please e-mail replies, and thanks in advance.\n\n-- \n|Marc Grant          | Internet: marcbg@feenix.metronet.com |\n|POB 850472          | Amateur Radio Station N5MEI          |\n|Richardson, TX 75085| Voice/Fax: 214-231-3998              |\n    - .... .- - ...  .- .-.. .-..    ..-. --- .-.. -.- ...\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8976, "properties": {"category": "rec.autos", "text": "From: mliggett@silver.ucs.indiana.edu (matthew liggett)\nSubject: Re: Opel owners?\nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 62\n\nIn <C5t3B2.DG@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n\n>boyle@cactus.org (Craig Boyle) writes:\n\n>>In article <C5sxI4.J9B@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>>>gibbonsa@fraser.sfu.ca (Darren Gibbons) writes:\n>>>>I'm looking for information on Opel cars.  Now you ask, which model?\n>>>>Well, the sad truth is, I'm not entirely sure, but it's a two-seater,\n>>>>with roll-over headlights, hard top, and really sporty looking.  My\n>>>>friend has one sitting in his yard in really nice condition,\n>>>>body-wise, but he transmission has seized up on him, so it hasn't run\n>>>>for a while.  Does anyone have any info on these cars?  The engine\n>>>>compartment looks really tight to work on, but it is in fine shape and\n>>>>I am quite interested in it.\n>>>>Thanks!\n>>>>Darren Gibbons\n>>>>gibbonsa@sfu.ca\n>>>\t\n>>>\tThis would be the manta, would it not???  Sold through Buick dealers in the mid '70's as the price leader????\n\n>>Sounds a lot more like an Opel GT to me. I'd guess that this is on the same\n>>chassis as the Kadett, rather than the bigger Manta - but I could easily\n>>be wrong.  I think the later Kadett's were sold here as Buick Opels.\n\n>>Craig\n\n>\tI think the Manta is the European name for the \"GT.\"  I'm pretty sure\n>that the only Kadett's sold here were/are the Pontiac LeMans.  I think the\n>GT is just an early '70s to mid '70s Manta.  \n>-- \n>Chintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n>*******SIG UNDER CONSTRUCTION HARD HAT AREA********\n\nBzzt.\nThe manta was a two-door sedan in the US.\nIt had a 1900 engine.\nWas sometimes referred to as an Opel 1900.\nManta's are also ve hot and fun cars too.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n-- \n/-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-=*=-\\\n| |\\/|  __   -=> mliggett@silver.ucs.indiana.edu <=- (mliggett@iugold.bitnet  |\n* |  |/\\||   'junk' collector, toys R us kid, antiauthoritarian, and fan of   *\n| frogs, iguanas, and other herps.\t\t\t\t\t      |\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8977, "properties": {"category": "rec.sport.baseball", "text": "From: jmann@vineland.pubs.stratus.com (Jim Mann)\nSubject: Re: Rickey Henderson\nArticle-I.D.: transfer.1psbdn$lru\nReply-To: jmann@vineland.pubs.stratus.com\nDistribution: usa\nOrganization: Stratus Computer Inc, Marlboro MA\nLines: 57\nNNTP-Posting-Host: gondolin.pubs.stratus.com\n\nIn article <1993Apr6.155118.5779@ra.msstate.edu> js1@Isis.MsState.Edu  \n(Jiann-ming Su) writes:\n> In article <ls1d6vINNs65@appserv.Eng.Sun.COM>  \nstr@maredsous.Eng.Sun.COM (Todd Rader) writes:\n> >Stay in school.  You have a lot to learn.\n> \n> Learn what?  I know that 3 million dollars is A LOT of money.  I  \nknow \n> Rickey Henderson doesn't have a career out of baseball.  I know if  \nhe \n> didn't have baseball, he wouldn't be making near the money he is  \nnow.\n> \n\nAnd Michael Jackson, Jack Nicholson, and Bill Cosby wouldn't be \nmaking near as much money if they weren't entertainers. So what's\nyour point?\n\n> I just don't understand how some athlete, who only plays a sport  \nfor a \n> living for millions of dollars, say he is not being paid enough.\n> \n> If nobody will sign him for his asking price, he will be the one  \nhurting.\n> The A's will still win without him.\n\nWill they?  You can't usually take away one of the team's best\nplayers and still expect them to win.  Or do you think the \nPirates will continue to win without Barry Bonds.\n\n> \n> Remeber, many of these athletes have NOTHING if not for their  \nathletic \n> ability.  NOTHING.  They are getting paid MUCH more than most hard  \nworking\n> citizens, and they are complaining of not enough pay.\n\nSo. Again, Jack Nicholson gets paid much more than most hard\nworking citizens (and much more than Rickey Henderson for that\nmatter). \n\n> \n> I don't have a problem with them making millions.  My problem is  \nwhen the\n> say they aren't being paid enough, when they already get 3  \nmillion--also,\n> their numbers get worse.\n\nThe reason the latter often happens is that many of these folks\nstart making the real big salaries late in their career, when they\nare on the decline. (There are exceptions, of course. Dave Parker\nfell apart after making his first million because he put most\nof that million up his nose.)\n\n--\nJim Mann            \nStratus Computer   jmann@vineland.pubs.stratus.com  \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8978, "properties": {"category": "rec.motorcycles", "text": "From: bakalis@apollo.HP.COM (Steven Bakalis)\nSubject: Re: Speeding ticket from CHP\nArticle-I.D.: apollo.C52JGB.K99\nOrganization: Hewlett-Packard Company, Chelmsford, MA\nLines: 18\nNntp-Posting-Host: fantail.ch.apollo.hp.com\n\nIn article <1pqarb$fnq@gaia.ucs.orst.edu>, crucej@osshe.edu (Jerry Cruce) writes:\n|> Peter Nesbitt (0005111312@mcimail.com) wrote:\n|> : Riding to work last week via Hwy 12 from Suisun, to I-80, I was pulled over by\n|> : a CHP black and white by the 76 Gas station by Jameson Canyon Road.  The\n|> : officer stated \"...it <looked> like you were going kinda fast coming down\n|> : highway 12.  You <must have> been going at least 70 or 75.\"  I just said okay,\n|> : and did not agree or disagree to anything he said. \n|> \n\n1) The next time you get stoped by a cop, never never never admit to anything.\n\n2) Don't volunteer any information.\n\n3) When a retoracle question is ask by the cop, like \"...it <looked> like you were going kinda fast coming down highway 12.  You <must have> been going at least 70 or 75?\" -- the correct reponse is to deny it. This technique is employed by police to help establish guilt, especially when (9 times out of 10) he/she is not sure who was doing the speeding. If the cop is unsure this may be the difference of him letting you off the hook or getting the tissue.\n\nHope this helps for next time.\n\nSteven Bakalis\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8979, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: sp1marse@lina (Marco Seirio)\nSubject: Small PC\nLines: 15\nX-Newsreader: Tin 1.1 PL3\n\nI'm looking for a PC that is small and doesn't break apart if you drop\nit on the groud. \nIt doesn't have to have graphics, text only will do\njust fine. It doesn't have to be fast either, 8086 will do, I hope.\nBut you must stand a pretty hard enviroment without breaking apart,\njumnping on it or trying to use it outdoor while it is raining and so\nforth. I need 640Kb of memory and a convinient way of loading\napplications into it that I wrote myself (floppy or somekind of\nwriteable cartridge?). \n\nIs there a PC like that?? And where can I get more info?\nI know of the Atari portfolio but it can't stand the rain....\n\n\n      Marco Seirio - In real life sp1marse@caligula.his.s\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8980, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: etobkkc@etn.ericsson.se (Karlsen Bjorn)\nSubject: Re: How is a Loopback connector made?\nIn-Reply-To: 35002_4401@uwovax.uwo.ca's message of Mon, 19 Apr 1993 17:26:28 GMT\nNntp-Posting-Host: aliboats.etn.ericsson.se\nReply-To: etobkkc@hisoy.etn.ericsson.se\nOrganization: Ericsson AS\nLines: 27\n\n35002_4401@uwovax.uwo.ca writes:\n\n>I need to know the Pins to connect to make a loopback connector for a serial\n>port so I can build one.  The loopback connector is used to test the \n>serial port.\n>\n>Thanks for any help.\n\nFrom a recent BYTE magazine i got the following:\n\n[Question and part of the answer deleted]\n\n  If you are handy with a soldering iron, the loopback plugs are easy to\nmake.  On a serial RS-232 nine-pin port, use a female DB-9 connector and\nconnect pins 1 to 7 to 8; 2 to 3; and 4 to 6 to 9.  For serial RS-232 \n25-pin ports, you'll need a female DB-25 connector with pins 1 to 7;\n2 to 3; 4 to 5 to 8; 6 to 11 to 20 to 22; 15 to 17 to 23; and 18 to 25\nconnected.  To test a Centronics 25-pin parallel port, you'll need to\nconnect pins 1 to 13; 2 to 15; 10 to 16; 11 to 17; and 12 to 14 in a male\nDB-25 connector.\n\n\t\t\t\t\t-Stan Wszola\n---\n\nI haven't tried it. Use at own risk.\n\n-KKC-  etobkkc@hisoy.etn.ericsson.se\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8981, "properties": {"category": "sci.med", "text": "From: ruegg@med.unc.edu (Robert G. Ruegg)\nSubject: Re: Eugenics\nKeywords: gene pool; wisdom; virtue\nNntp-Posting-Host: naples.med.unc.edu\nOrganization: UNC-CH School of Medicine\nLines: 84\n\nSubject: Re: Eugenics\n(Gordon Banks) writes:\n/\n;Probably within 50 years, a new type of eugenics will be possible. \n;Maybe even sooner.  We are now mapping the human genome.  We will \n;then start to work on manipulation of that genome.  Using genetic\n;engineering, we will be able to insert whatever genes we want.\n;No breeding, no \"hybrids\", etc.  The ethical question is, should\n;we?\n \nTwo past problems with eugenics have been \n1) reducing the gene pool and \n2) defining the status of the eugenized.\n \nInserting genes would not seem to reduce the gene pool unless the inserted\ngenes later became transmissible to progeny. Then they may be able to\ncrowd out \"garbage genes.\" This may in the future become possible. Even if\nit does, awareness of the need to maintain the gene pool would hopefully\nmean provisions will be made for saving genes that may come in handy\nlater. Evidently the genes for sickle cell disease in equatorial Africa\nand for diabetes in the Hopi *promoted* survival in some conditions. We\ndon't really know what the future may hold for our environment. The\nreduced wilderness- and disease-survival capacity of our relatively inbred\ndomesticated animals comes to mind. Vulcanism, nuclear winter, ice age,\nmeteor impact, new microbiological threats, famine, global warming, etc.,\netc., are all conceivable. Therefore, having as many genes as possible\navailable is a good strategy for species survival. \n \nOf course, the status of genetically altered individuals would start out\nas no different than anyone else's. But if we could make\n\"philosopher-kings\" with great bodies and long lives, would we (or they)\nwant to give them elevated status? We could. The Romans did it with their\nkings *without* the benefits of such eugenics. The race eventually\nrealized and dealt with the problems which that caused, but for a while,\nit was a problem. Orwell introduced us to the notion of what might happen\nto persons genetically altered for more menial tasks. But there is nothing\nnew under the sun. We treated slaves the same way for millennia before\n\"1984.\"   \n \nI see no inherent problem with gene therapy which avoids at least these 2\nproblems. Humans have always had trouble having the virtue and wisdom to\nuse any power that falls into their hands to good ends all the time. That\nhasn't stopped the race as a whole yet. Many are the civilizations which\nhave died from inability to adapt to environmental change. However, also\nmany are the civilizations which have died from the abuse of their own\npower. The ones which survived have hopefully learned a lesson from the\nfates of others, and have survived by making better choices when their\nturns came.\n \nNot that I don't think that this gene altering power couldn't wipe us off\nthe face of the earth or cause endless suffering. Nuclear power or global\nwarming or whatever could and may still do that, too. \n \nThe real issue is an issue of wisdom and virtue. I personally don't think\nman has enough wisdom and virtue to pull this next challenge off any\nbetter than he did the for last few. We, as eugenists, may make it, an we\nmay not. If we don't, I hope there are reservoirs of \"garbage\" people out\nin some backwater with otherwise long discarded \"garbage\" genes which will\npull us through. \n \nI believe that the real problem is and will probably always be the same.\nMan needs to accept input from the great spirit of God to overcome his\nlacks in the area of knowing how to use the power he has. Some men have,\nand I believe all men may, listen to and obey the still small voice of God\nin their hearts. This is the way to begin to recieve the wisdom and virtue\nneeded to escape the problems consequent to poor choices. Peoples have\ndied out for many reasons. The societies which failed to accept enough\ninput from God to safely use the power they had developed have destroyed\nthemselves, and often others in the process. It is self-evident that the\nones which survive today have either accepted enough input from the Spirit\nto use their powers wisely enough to avoid or survive their own mistakes\nthus far, or else haven't had enough power for long enough. \n \nIn summary, I would say that the question of whether to use this new\ntechnology is really an ancient one. And the answer, in some ways hard, in\nsome ways easy, is the same ancient answer. It isn't the power, it is the\nSpirit.\n \nSorry for the long post. Got carried away.\n \nBob (ruegg@med.unc.edu)\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8982, "properties": {"category": "comp.graphics", "text": "From: mor@expo.lcs.mit.edu (Ralph Mor)\nSubject: Re: Tom Gaskins Pexlib vs Phigs Programming Manuals (O'Reilly)\nOrganization: X Consortium, MIT Laboratory for Computer Science\nLines: 49\n\nmerlin@neuro.usc.edu (merlin) writes:\n\n>Could someone explain the difference between Tom Gaskins' two books:\n\n>  o  PEXLIB Programming Manual\n>  o  PHIGS Programming Manual\n\n>Why would I want to buy one book vs the other book?  I have an 80386\n>running SCO UNIX (X11R4) on my desktop, a SUN IV/360 in my lab, and \n>access to a variety of other systems (Alliant FX/2800, Cray Y/MP) on\n>the network.  Mostly, we would like to do 3D modeling/visualization\n>of rat, rabbit, monkey, and human brain structure.\n\nRather than decide which book you want to buy, you need to decide which\nprogramming interface you want to use, then buy the appropriate book.\n\nI wrote an article for the X Resource which discusses the differences\nbetween PHIGS and PEXlib (it will appear in Issue 6 which should be out\npretty soon).  But here's a brief summary...\n\nPHIGS is a graphics API which was designed to be portable to many\ndevices.  Most implementations support the X Window System and take\nadvantage of a 3D extension to X called \"PEX\".  PEXlib is a slightly\n\"lower\" level API which was designed to efficiently support the PEX\nextension to X.\n\nSome advantages of using PEXlib...\n- Integrates with Xlib,Xt,Motif,etc. better than PHIGS\n- Provides immediate mode capabilities\n- Is free of \"policy\"\n- PEX supports PHIGS, but is currently being extended to support\n  features not found in PHIGS (like texture mapping, anti-aliasing).\n  PEXlib will give you access to all of these features.\n\nSome advantages of using PHIGS...\n- Support for multiple devices, not just X based ones\n- Support for archiving, metafiles, hardcopy output\n- PHIGS has predefined input devices to make input easier\n- PHIGS can handle exposure events and resizing for you\n- PHIGS can help you with colormap selection/creation.\n\nIf you're working strictly in X and don't care about things like\narchiving, I would go with PEXlib.  Either way, you will find that\nboth API's have a lot in common.\n\nRalph Mor\nMIT X Consortium\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8983, "properties": {"category": "misc.forsale", "text": "From: yb025@uafhp..uark.edu (John Schiefer)\nSubject: engagement ring give up\nSummary: Beautiful 14k gold band with a .33 carat diamond.  very clean.\nKeywords: holmes\nArticle-I.D.: moe.1psvhj$gp5\nOrganization: Kansas State University\nLines: 3\nNNTP-Posting-Host: uafhp.uark.edu\n\nDiamond engagement ring.  14k gold band.  33point  diamond.  appraised at\n1900 dollars.  Will sell for 600 dollars. Appraisal available upon request.\nsend e-mail to yb025@uafhp.uark.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.425+0000", "event": "documents", "entityId": 8984, "properties": {"category": "comp.windows.x", "text": "From: d3e758@bucky.pnl.gov (JE Pelkey)\nSubject: Multi-screen apps and window managers\nOriginator: d3e758@bucky.pnl.gov\nOrganization: Battelle Pacific N.W. Labs\nLines: 50\n\n\n\nI am working on a project to provide an emergency management\ninformation system.  In keeping with more classic command and\ncontrol type systems, we are considering developing a dual screen monitor\nsystem in order to provide a status board on it's own monitor.  \nI have a number of X level questions regarding this:\n\n(We are devloping on Unix systems using X/Motif. Platform will be \npredominantly Sun's, probably with ports to RS/6000 as well).\n\nI am assuming the standard dual monitor systems are configured\nsuch that we are talking about one X display and multiple screens,\nand not multiple X displays.   Given this:\n\n\t- Is changing input focus from one screen to the other as simple\n\tas tracking your mouse from one screen to the other?  There's\n\tnothing special that needs to be done to shift focus between\n\tscreens?\n\n\t- Do I have to run separate window managers on the separate\n\tscreens or are there multiscreen window managers out there?\n\tWhat are they; who sells them...\n\n\t- Is a multi-screen window manager the only way I can grab a\n\twindow frame and move a window from one screen to the next?\n\n\t- Is there any way for the application to transparently see\n\tmultiple screens as one logical x-y plane, or does the hardware\n\tonly provide for each screen to start at 0,0?\n\n\t- Any thoughts on the difficulties involved with designing a\n\tsystem capable of using either multiple screens or a single\n\tscreen (perhaps running a virtual window manager to simulate\n\tmultiple screens instead)?  \n\tI am assuming that this is not a major issue - that I can rely\n\ton providing config files which will specify for each\n\tconfiguration the screen placement of each window in the\n\tapplication.  Any thoughts or suggestions from past experience\n\tare more than welcome.\n\n\n========================================================================\nJo Pelkey                                   Phone: (509)375-6947\nBattelle Pacific Northwest Labs             Fax:   (509)375-3641\nMail Stop K7-22                             Email: je_pelkey@pnl.gov\nP.O. Box 999\nRichland, WA  99352\n========================================================================\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8985, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: eugenehs@phakt.usc.edu (HEUGE aka Eugene Hsu)\nSubject: Re: pc-X\nOrganization: University of Southern California, Los Angeles, CA\nLines: 25\nDistribution: usa\nNNTP-Posting-Host: phakt.usc.edu\n\nIn article <4552@isgtec.isgtec.com> ted@isgtec.com (Ted Richards) writes:\n>Al DeVilbiss (al@col.hp.com) wrote:\n>:\n>: I just brought up NCD's PC-XView, Windows version, to use over a \n>: modem link to a Unix system at HP. Installation is easy, but you\n>: need a program, also from NCD, called XRemote to run on the Unix host.\n>: Total software cost for one seat was ~$200.\n>\nAnyone here know if NCD is doing educational pricing on these software\npackages for those of us strapped for cash?\n\nThanks\n\n=eugene=\ns\n>--\n>Ted Richards            ted@isgtec.com             [...!uunet.ca!isgtec!ted]\n>ISG Technologies Inc.   6509 Airport Rd., Mississauga  Ont.  Canada   L4V 1S7\n\n\n-- \n=>  Eugene Hsu (aka HEUGE)           The University of Southern California  <=\n=<  eugenehs@scf.usc.edu             Electrical and Biomedical Engineering  >=\n=>     \"HO, HO, freaking HO... yeah yeah....who's Santa's next victim?\"     <=\n=>      KROQ 106.7's The New Detective, as he goes undercover 12/15/92      >=\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8986, "properties": {"category": "soc.religion.christian", "text": "From: noye@midway.uchicago.edu (vera shanti noyes)\nSubject: Re: Serbian genocide Work of God?\nLines: 89\n\nnote: i am not the original poster, i am just answering because i\nthink this is important.\n\nIn article <May.5.02.50.17.1993.28624@athos.rutgers.edu> db7n+@andrew.cmu.edu (D. Andrew Byler) writes:\n>revdak@netcom.com writes:\n[evil result of human sinfulness, rather than the will of God]\n>In a certain sense yes.  But in the sense that God allows evil to\n>happen, when obviously (He being God) He could have not had it happen,\n>does in a certain sense mean that He wills it to happen.  God does not\n>condone evil, but instead uses it for good, as you say, however, what\n>God desires, must be seperated from what actually happens.  For example,\n>\"God desires that all should be saved\" (1 Timothy 2.4), however, it is\n>quite obvious that nowhere near all are saved.  Was God's will thwarted?\n> No, because His will cannot be escaped, for even when it appears that\n>it is your will doing something, it is actually the will of God which by\n>His grace has disposed us to do as He wishes.  So we come to the age old\n>question, why does evil occur?  To which we must answer that God allows\n>evil to occur, though He does not condone it, so that His ultimate plan\n>may be brought to sucess.  Personally, I suggest reading the parts of\n>the Summa Theologica of St. Thomas that deal with the knowledge of God\n>to get a good grasp on this whole idea.\n\nwhoo.  i'm going to have to be very careful with my language here.  i\nthink God is voluntarily giving up his omniscience in this world so\nthat we can decide on our own where we go -- free will.  in this sense\nGod allows evil to occur, and in this sense can be \"held responsible\"\nas my chaplain says.  however, his will is, of course, that all be\nsaved.  he's not going to save us \"by himself\" -- we have to take a\nstep in his direction before he will save us.  read that last sentence\ncarefully -- i'm not saying we save ourselves.  i'm saying we have to\nACCEPT our salvation.  i do not believe in predestination -- it would\nappear from what you say further down that you do.  \n\n[stuff deleted]\n>I am not saying that anyone deserves punishment more than someone else.\n>I am simply pointing out that God could be using the Serbians and\n>Croatians as instruments of His punishment, as he did with the\n>Israelites against the Cannanites.\n\nok -- i have trouble with that, but i guess that's one of those things\nthat can't be resolved by argument.  i accept your interpretation.\n\n[more deleted]\n>>The issue is not questioning why God has made the world in the way God\n>>so chooses, it is whether _I_ am discerning the world in the way God\n>>intends it.  The debate is about whether we should not oppose the Serbians\n>>in their \"ethnic cleansing\" because they might be \"doing the will of God.\"\n>\n>And I said Christians should not be participants in such wars and\n>slaughters. That does not mitigate the fact that God allows this evil to\n>continue, for He is patient and willing that none should perish, so He\n>waits for those whom He has foreknown to turn to Him from their evil.\n\t\t\t     ^^^^^^^^^\nthis is what indicates to me that you may believe in predestination.\nam i correct?  i do not believe in predestination -- i believe we all\nchoose whether or not we will accept God's gift of salvation to us.\nagain, fundamental difference which can't really be resolved.\n\n[yet more deleted]\n>I am not saying that the evil befalling the Bosnians is justified by\n>their guilt.  I am saying that it is possible that God is punishing them\n>in this way. In no way is this evil justified, bu that does not mean\n>that God cannot use evil to further His purposes.  I am not accusing the\n>Bosnians, though they may very well be guilty of great sins, but that is\n>up to God to judge.  We are all defendants when the time comes for our\n>judgement by God.  Let us all sincerely hope and pray that we will have\n>Jesus Christ as our advocate at that judgement.\n\nyes, it is up to God to judge.  but he will only mete out that\npunishment at the last judgement.  as for now, evil can be done by\nhuman beings that is NOT God's will -- and the best we can do is see\ntaht some good comes out of it somehow.  the thing that most worries\nme about the \"it is the will of God\" argument is that this will\nconvince people that we should not STOP the rape and killing when i\nthink that it is most christ-like to do just that.  if jesus stopped\nthe stoning of an adulterous woman (perhaps this is not a good\nparallel, but i'm going to go with it anyway), why should we not stop\nthe murder and violation of people who may (or may not) be more\ninnocent?\n\n>Andy Byler\n\nvera\n*******************************************************************************\nI am your CLOCK!     |  I bind unto myself today    | Vera Noyes\nI am your religion!  |  the strong name of the\t    | noye@midway.uchicago.edu\nI own you!\t     |  Trinity....\t\t    | no disclaimer -- what\n\t- Lard\t     |\t- St. Patrick's Breastplate | is there to disclaim?\n*******************************************************************************\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8987, "properties": {"category": "alt.atheism", "text": "From: edm@twisto.compaq.com (Ed McCreary)\nSubject: Re: YOU WILL ALL GO TO HELL!!!\nIn-Reply-To: 's message of Fri, 16 Apr 1993 15: 50:02 EDT\nOrganization: Compaq Computer Corp\nLines: 11\n\n>>>>> On Fri, 16 Apr 1993 15:50:02 EDT, <JSN104@psuvm.psu.edu> said:\n\nJ> YOU BLASHEPHEMERS!!! YOU WILL ALL GO TO HELL FOR NOT BELIEVING IN GOD!!!!  BE\nJ> PREPARED FOR YOUR ETERNAL DAMNATION!!!\n\nHmm, I've got my MST3K lunch box, my travel scrabble, and a couple of\nkegs of Bass Ale.  I'm all set!  Let's go everybody! \n--\nEd McCreary                                               ,__o\nedm@twisto.compaq.com                                   _-\\_<, \n\"If it were not for laughter, there would be no Tao.\"  (*)/'(*)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8988, "properties": {"category": "rec.sport.hockey", "text": "From: boora@kits.sfu.ca (The GodFather)\nSubject: ABC: The Real Thing?\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 7\n\n\n\tOk, it seems that everyone else in canada was treated to the \nREAL ABC telecast while only the people on ROGERS TV in Surrey BC \nwere treated to two channels with Don \"I stink as a Commentator\" Whitman\ndoing the play-by-play.\n\n\tThe GodFather.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8989, "properties": {"category": "talk.politics.mideast", "text": "Subject: Re: was:Go Hezbollah!!\nFrom: mafifi@eis.calstate.edu (Marc A Afifi)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 43\n\nstssdxb@st.unocal.com (Dorin Baru) writes:\n> Even the most extemist, one sided (jewish/israeli) postings (with which I \n> certainly disagree), did not openly back plain murder. You do.\n> \n> The 'Lebanese resistance' you are talking about is a bunch of lebanese \n> farmers who detonate bombs after work, or is an organized entity of not-\n> only-lebanese well trained mercenaries ? I do not know, just curious.\n> \n> I guess you also back the killings of hundreds of marines in Beirut, right?\n> \n> What kind of 'resistance' movement killed jewish attlets in Munich 1972 ?\n> \n> You liked it, didn't you ?\n> \n> \n> You posted some other garbage before, so at least you seem to be consistent.\n> \n> Dorin\n\nDorin,\nLet's not forget that the soldiers were killed not murdered. The\ndistinction is not trivial. Murder happens to innocent people, not people\nwhose line of work is to kill or be killed. It just so happened that these\nsoldiers, in the line of duty, were killed by the opposition. And\nresistance is different from terrorism. Certainly the athletes in Munich\nwere victims of terrorists (though some might call them freedom fighters).\nTheir deaths cannot be compared to those of soldiers who are killed by\nresistance fighters. Don't forget that it was the French Resistance to the\nNazi occupying forces which eventually succeeded in driving out the\nhostile occupiers in WWII. Diplomacy has not worked with Israel and the\nLebanese people are tired of being occupied! They are now turning to the\nonly option they see as viable. (Don't forget that it worked in driving\nout the US)\n\n-marc\n\n\n--\n______________________________________________________________________________\nSome people are so narrow minded they can see through a crack in a door with\nboth eyes. \nMy opinions should be yours. My employer has no opinions.\n______________________________________________________________________________\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8990, "properties": {"category": "comp.graphics", "text": "From: sts@mfltd.co.uk (Steve Sherwood (x5543))\nSubject: Re: Virtual Reality for X on the CHEAP!\nReply-To: sts@mfltd.co.uk\nOrganization: Micro Focus Ltd, Newbury, England\nLines: 39\n\nIn article <1r6v3a$rj2@fg1.plk.af.mil>, ridout@bink.plk.af.mil (Brian S.  Ridout) writes:\n|> In article <1993Apr15.134802.21995@mfltd.co.uk>, sts@mfltd.co.uk (Steve Sherwood (x5543)) writes:\n|> |> Has anyone got multiverse to work ?\n|> |> \n|> |> I have built it on 486 svr4, mips svr4s and Sun SparcStation.\n|> |> \n|> |> There seems to be many bugs in it.  The 'dogfight' and 'dactyl' simply do nothing\n|> |> (After fixing a bug where a variable is defined twice in two different modules - One needed\n|> |> setting to static - else the client core-dumped)\n|> |> \n|> |> Steve\n|> |> -- \n|> |> \n|> |>          Extn 5543, sts@mfltd.co.uk, !uunet!mfocus!sts\n|> |> +-----------------------------------+------------------------+ Micro Focus\n|> |> | Just like Pariah, I have no name, |    rm -rf *            | 26 West Street\n|> |> | Living in a blaze of obscurity,   |      \"rum ruff splat\"  | Newbury\n|> |> | Need courage to survive the day.  |                        | Berkshire\n|> |> +-----------------------------------+------------------------+ England\n|> |>          (A)bort (R)etry (I)nfluence with large hammer\n|> I built it on a rs6000 (my only Motif machine) works fine.  I added some objects\n|> into dogfight so I could get used to flying.  This was very easy. \n|> All in all Cool!.  \n|> Brian\n\nThe RS6000 compiler is so forgiving, I think that if you mixed COBOL & pascal\nthe C compiler still wouldn't complain. :-)\n\nSteve\n-- \n\n         Extn 5543, sts@mfltd.co.uk, !uunet!mfocus!sts\n+-----------------------------------+------------------------+ Micro Focus\n| Just like Pariah, I have no name, |    rm -rf *            | 26 West Street\n| Living in a blaze of obscurity,   |      \"rum ruff splat\"  | Newbury\n| Need courage to survive the day.  |                        | Berkshire\n+-----------------------------------+------------------------+ England\n         (A)bort (R)etry (I)nfluence with large hammer\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8991, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: misra@matt.ksu.ksu.edu (Yoda)\nSubject: Re: Booting from B drive\nOrganization: Kansas State University\nLines: 14\nNNTP-Posting-Host: matt.ksu.ksu.edu\n\ndjweisbe@unix.amherst.edu (David Weisberger) writes:\n\n>I have a 5 1/4\" drive as drive A.  How can I make the system boot from\n>my 3 1/2\" B drive?  (Optimally, the computer would be able to boot\n>from either A or B, checking them in order for a bootable disk.  But\n>if I have to switch cables around and simply switch the drives so that\n>it can't boot 5 1/4\" disks, that's OK.  Also, boot_b won't do the trick\n>for me.)\n\n>Thanks,\n>  Davebo\n\tYou can try to get into the setup byt pressing CTRL-ALT-INS or \n\tCTRL-ALT-PrintScreen on most PC's. That should give you an option\n\tto set regarding the drives to boot from. \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8992, "properties": {"category": "sci.electronics", "text": "From: Mark-Tarbell@suite.com\nSubject: Switch-mode power supply\nOrganization: Suite Software\nLines: 17\nReply-To: suite!tarbell@uunet.uu.net\nNNTP-Posting-Host: gilgamesh.suite.com\n\nIs there a typical component or set of components\nthat are at fault when a switch mode power supply \ngoes south?\n\nThe supply is for a disk drive. Any general hints\nwould be appreciated!\n\nThanks!\nMark-Tarbell@suite.com\nat fault when a switch mode power supply \ngoes south?\n\nThe supply is for a disk drive. Any general hints\nwould be appreciated!\n\nThanks!\nMark-Tarbell@s$\u0003\u0003\u001b$BVh\u001b(J\u0006\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8993, "properties": {"category": "sci.electronics", "text": "From: gsulliva@enuxha.eas.asu.edu (Glenn A Sullivan)\nSubject: Re: making copy of a Video tape\nSummary: Here is Go-Video\nOrganization: Arizona State University\nLines: 14\n\nIn article <136390006@hpcuhe.cup.hp.com>, pi@hpcuhe.cup.hp.com (Paul Ilgenfritz) writes:\n> \n> I think the Go Video dual cassette machines do a direct tape to tape copy\n> which transfers Macrovision to the copy.  I you can find one of these, it\n> would be worth a try.\n\nGo-Video machines used in HQ2 mode will copy even the MacroVision.\nGo-Video phone number (602)998-3400. \n\nAsk for sales department. Since the state of Arizona does not go on \nDaylight Savings time, we effectively are in Pacific time zone.\n\nAllen Sullivan\nDesigning various stuff for GO-Video\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8994, "properties": {"category": "talk.politics.misc", "text": "From: ssoar@tekig5.pen.tek.com (Steven E Soar)\nSubject: Re: Supply Side-revenue\nDistribution: na\nLines: 22\n\nIn article <C5217t.J5B@newsserver.technet.sg>, ipser@solomon.technet.sg (Ed Ipser) writes:\n> \n> The result is that Clinton now HOPES to reduce the deficit to a level \n> ABOVE where it was when Reagan left office.\n\nWhich, considering the amount Bush&congress added to it, would be a\nnot-inconsiderable achievement.\n\nWhile we're on the subject, I also believe that the supply-side claim that\nreducing taxes raised revenue is also false, because they typically factor in\nSocSec taxes, which were *raised* a considerable amount, at the same time that\nincome taxes were cut.  If you look at income tax revenue alone, it fell after\nafter the cuts began, and didn't recover for several years. By then, record\ndeficits were well entrenched.\n> \n> Chew on that awhile.\n\n*crunch, crunch*\n\nsteve soar\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8995, "properties": {"category": "comp.windows.x", "text": "From: tom@DONT_USE.NETcom.COM (Thomas Tulinsky)\nSubject: Wcl for Solaris 2?\nOrganization: The Internet\nLines: 15\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu, tom@DONT_USE.netcom.com\n\nIs there a version of Wcl that has been ported to Solaris 2, including\nANSI C? I had numerous problems trying to compile Wcl under Solaris, \nand the functions do not have prototypes.  \n\nI have Wcl 2.01 from the Sun User Group's 1992 CDs.\n\nPlease email answers as I am not on this list.\n\n\n----------------------------------------------------------------------------\nTom Tulinsky\t\tCapital Management Sciences\t    West Los Angeles\n\t\t\t        310 479 9715\nMANUALLY ADDRESS answers to:\n\tzuma!tom@netcomsv.netcom.com\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8996, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bsteinke@es.com (Bruce Steinke)\nSubject: Re: Program manager ** two questions\nNntp-Posting-Host: 130.187.90.30\nReply-To: bsteinke@es.com (Bruce Steinke)\nOrganization: Evans & Sutherland Computer Corp., Salt Lake City, UT\nLines: 20\n\nIn article <1993Apr22.204406.20330@vpnet.chi.il.us>, lisbon@vpnet.chi.il.us (Gerry Swetsky) writes:\n|> \n|> (1) Is it possible to change the icons in the program groups?  I'd like\n|>     to give them some individuality.\n|> \n|> (2) Can you set up a short-cut key to return to the Program Manager? \n|>     I know <CTL><ESC>, <ESC> will do it, but I'd rather set it up so I \n|>     can avoid the task list and get back to the P/M with <ALT><F1>.\n\nI use PlugIn, an enhancement to Program Manager. It allows (1) for sure, I\ndon't know on (2). Anyway, give it a try. I like it a lot and registered it\nright away It can be found at ftp.cica.indiana.edu [129.79.20.84] in\n/pub/pc/win3/util/plugin13.zip\n\n-Bruce\n--\n  Bruce F. Steinke                    | \"Never know when you're going to\n  bsteinke@dsd.es.com                 |  need a good piece of rope.\"\n  Software Technical Support Engineer |               Sam Gamgee\n  Evans & Sutherland Computer Corp.   |      <My mail, My Opinions>\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8997, "properties": {"category": "talk.politics.mideast", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Re: was:Go Hezbollah!!\nOrganization: University of Illinois at Urbana\nLines: 17\n\nmafifi@eis.calstate.edu (Marc A Afifi) writes:\n\n>Let's not forget that the soldiers were killed not murdered. The\n>distinction is not trivial. Murder happens to innocent people, not people\n>whose line of work is to kill or be killed. It just so happened that these\n>soldiers, in the line of duty, were killed by the opposition. \n\nThat still doesn't mean we should cheer their deaths.  Policemen are also in \nthe line of fire and their job includes the possibility of getting killed.  \nShould we be happy when they die?  As I said before, the question is not\nwhether or not you agree with the policies of Israel.  You may wish for the\nIsraelis to cease occupation, but don't rejoice in death.\n\n>-marc\n\nEd.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8998, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rick@sundance.SJSU.EDU (Richard Warner)\nSubject: Re: WinBench\nOrganization: San Jose State University - Math/CS Dept.\nLines: 36\n\nal@col.hp.com (Al DeVilbiss) writes:\n\n>jorge@erex.East.Sun.COM (Jorge Lach - Sun BOS Hardware) writes:\n>> Is there any FTP site that carries WinBench results for different graphics\n>> cards? In Excel (XLS) format? What is the latest version of WinBench and\n>> how do they differ? Is the source available, and has anybody try to port it to\n>> X-Window, at least in a way that will make comparisons possible?\n>> \n>On ftp.cica.indiana.edu in pub/pc/win3/misc/winadv.zip is a writeup by\n>Steve Gibson of InfoWorld with winbench 3.11 and a number of other \n>benchmark results for nine isa and four VLB video cards.  This is a \n>very current upload and is likely to have any card you're currently \n>giving serious consideration.  Not in XLS format.  Latest version of\n>WinBench that I know of is ver 3.11.  I believe they try to maintain\n>the same rating scale between versions, and new versions are released\n>to defeat the lastest coding tricks put in by driver programmers to\n>beat the benchmarks.  Don't know on the last one.\n\nAnd why they are considering using WinBench as a test, they may want\nto read everything Steve Gibson has said on the subject in his\nInfoWorld column the past couple of month.  In short, virtually\nevery board manufacturer cheats on the test by writing things in the\ndriver that is there only to make the board appear faster on the\nWinBench suite.  So the WinBench score has no bearing in reality to\nhow cards stack up on real world tasks.\n\nIn the last PC-Magazine they benchmarked some of the new accelerators,\nand admitted that many of them 'cheated' on WinBench.  Interestingly,\nthey 'allowed' one type of cheating behaviour (caching for bitblt\noperations, no matter how unreal), yet did not allow a couple of other\ntypes of cheating behaviour that some of the cards used.  At least\none card was eliminated from the \"Editor's Choice\" because of\ncheating on the benchmark.\n\n>Al DeVilbiss\n>al@col.hp.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 8999, "properties": {"category": "talk.religion.misc", "text": "From: ba@mrcnext.cso.uiuc.edu (B.A. Davis-Howe)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: University of Illinois at Urbana\nLines: 39\n\nch981@cleveland.Freenet.Edu (Tony Alicea) writes:\n\n\n>In a previous article, ba@mrcnext.cso.uiuc.edu (B.A. Davis-Howe) says:\n\n>>\n>>ON the subject of how many competing RC orders there are, let me point out the\n>>Golden Dawn is only the *outer* order of that tradition.  The inner order is\n>>the Roseae Rubeae et Aurae Crucis.  \n>>\n\n>\tJust wondering, do you mean the \"Lectorium Rosicrucianum\"?\n>Warning: There is no point in arguing who's \"legit\" and who's not. *WHICH*\n>Golden Dawn are you talking about?\n\nNo, I don't mean the LR, whatever that is.  As for which GD, I'm using _The\nComplete Golden Dawn System of Magic_ as my source, so (unless Regardie is\nlying) I'm pulling the name out the the original order's rituals.  The\nmultiple modern groups are part of why I through in the comment about all\nthe \"spin-offs\".\n\n>\tJust for the sake of argument, (reflecting NO affiliation)\n>I am going to say that the TRUE Rosicrucian Order is the Fraternitas\n>Rosae Crucis in Quakertown, Penn.,\n\nAs a member of the Religious Society of Friends (my membership is in the\nUrbana-Champaign (IL) Friends Meeting) I find that amusingly ironic. :)\n\n>\tAny takers? :-)\n\nNot me--I don't want to belong to *anything* which runs around claiming to\nbe the TRUE whatever.  I find that disgusting. :(\n\nEnjoy the journey!\n                      --Br'anArthur\n                                      Queer, Peculiar, and Wyrd! :-)\n\n******************************************************************************\nClosed minds don't want to know.        --JJObermark\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 9000, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Re: My Gun is like my....\nOrganization: Ideology Busters, Inc.\nLines: 80\n\nIn article <1993Apr16.194708.13273@vax.oxford.ac.uk>\n\tjaj@vax.oxford.ac.uk writes:\n>What all you turkey pro-pistol and automatic weapons fanatics don't\n>seem to realize is that the rest of us *laugh* at you.\n\nSo what.  We think you're pretty hilarious too.\n\nI love how you Brit's kiss royal arse.  That you're willing to throw\nout freedom-of-speech for the sake of protecting the reputation of the\nroyal sluts.\n\nThat the British government advertised in American newspapers \"Send A Gun\nto Defend a British Home -- British civilians, faced with threat of\ninvasion, desperately need arms for the defense of their homes.\" during\nWWII.  [American Rifleman November, 1940]\n\nThat The Obscene Publications Act and the Misuse of Drugs Act have been\nused as justification for the police to seize masterpieces such as William\nS. Burrough's \"Junky\", Hunter Thompson's \"Fear and Loathing in Las Vegas\",\nand Tom Wolfe's \"The Electric Kool-Aid Acid Test\".  British courts have\nnever recognized the right to assemble or to demonstrate.\n\nThat evidence obtained form coerced confessions is allowed in a trial.\n\nThat only serious felonies warrant a trial by jury.\n\nThat suspected terrorists must prove their innocence, instead of the\ngovernment having to prove their guilt.\n\nThat the secretary of state may issue an \"exclusionary order\" which\nbars someone from ever entering a particular part of the United Kingdom,\nsuch as Northern Ireland or Wales.\n\nThat the BBC banned Paul McCartney's \"Give Ireland Back to the Irish\"\nas well as John Lennon's \"Give Peace a Chance\" during the Gulf War.\n\nYes, England is very very funny.  And very pathetic.\n\n>I knew somebody else who went to one of your \"Gun-mart\" superstore\n>places, just so he could experience the sight of people putting guns\n>and ammo into shopping carts! I didn't believe it myself until I\n>drove by one in Vegas last year!!!\n\nSo what.  Laughter is a way of dealing with things we find uncomfortable.\nI thought the \"Las Vegas Show Girl\" ads on Las Vegas street corners were\npretty funny.\n\nYes indeed, there are many strange and wonderous things in this country.\nI wouldn't have it any other way.\n\n>Now that I live in Britain, I can see how the rest of the civilized world\n>perceives you gun-nut morons. The BBC recently referred to the American \n>penchant for pistols, automatic weapons,etc.  very  appropriately - it was\n>called a \"national eccentricity.\"\n\nI don't disagree with that, I don't think it's bad either.\n\n>The only problem is that Canada, I hear, is suffering from your national\n>eccentricity, in that easy to purchase weapons are being smuggled cross the\n>border.\n\nSo what.  If they didn't come from here they would come from elsewhere\ndisguised as cocaine.\n\n>Anyway, all you gun nut Rush Limbaugh fans, please *keep* up your diatribes\n>against Brady and other  evil \"Liberal media\" plots  - you 're so damn funny!\n>You provide endless amounts of entertainment in your arguments and examples\n>of why someone should be allowed to carry a piece! Keep us all chuckling!\n\nYou can laugh all you want, for us it's a matter of life or death.\nI don't find that funny in the least.\n\nAs for England:\n\n\"As our allies become more open, Britain grow yet more secretive and\ncensorious.  Perhaps the real British vice is passivity, a willingness\nto tolerate constraints which others would find unbearble.\" [in \"Britain,\nAn Unfree Country\" by Terrence DeQuesne and Edward Goodman, pp 33.]\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 9001, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Re: Once tapped, your code is no good any more.\nIn-Reply-To: louie@sayshell.umd.edu's message of 17 Apr 1993 13:10:00 GMT\nReply-To: pmetzger@lehman.com\nOrganization: Lehman Brothers\n\t<1qovj8$74m@ni.umd.edu>\nDistribution: na\nLines: 24\n\n\nIn article <1qovj8$74m@ni.umd.edu> louie@sayshell.umd.edu (Louis A. Mamakos) writes:\n\n   In article <tcmayC5M2xv.JEx@netcom.com> tcmay@netcom.com (Timothy C. May) writes:\n\n   >But is it any worse than the current unsecure system? It becomes much\n   >worse, of course, if the government then uses this \"Clinton Clipper\"\n   >to argue for restrictions on unapproved encryption. (This is the main\n   >concern of most of us, I think. The camel's nose in the tent, etc.)\n\n   Excuse me?  This has *already* happened.  There's a couple of humps in\n   the tent already.  Ask the folks at Qualcomm what became of the\n   non-trivial encryption scheme they proposed for use in their CDMA\n   digitial cellular phone standard?  There *already* are restrictions in\n   place.\n\nYou have it slightly wrong. They dumped the encryption system because\nthey could not export it -- not because they could not produce it for\nU.S. use. There are no legal restraints on citizen use of strong\ncryptography -- yet.\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 9002, "properties": {"category": "rec.autos", "text": "From: bob1@cos.com (Bob Blackshaw)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: Corporation for Open Systems\nDistribution: na\nLines: 21\n\nIn <1993Apr15.040118.29272@slcs.slb.com> dcd@se.houston.geoquest.slb.com (Dan Day) writes:\n\n>In article <C5HHGM.1rM@constellation.ecn.uoknor.edu> callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>>In article <1993Apr13.215605.26252@slcs.slb.com> dcd@se.houston.geoquest.slb.com (Dan Day) writes:\n>>>\n>>>How about those really ugly fake wheel compartments stuck onto the\n>>>trunk or side (or both sides!) of some tacky luxury cars?\n>>\n>>Some of 'em aren't fake (if you're talking about the Continental kit,\n>>named after the Lincoln Continental, the first car to sport one). I\n>>personally would _love_ to have a '56 T-Bird with a Continental kit\n>>(and the supercharged V-8 :-); that is one of the most beautiful\n>>cars ever built, IMHO.\n\nI'd go for a '39 Lincoln Continental if I could find one. Sad part is\nthat Edsel Ford designed it, and look at the abortion they named after\nhim. Ain't no justice.\n\n\n>Okay, I'll admit it looks nice on the T-Bird (as a previous owner\n>of 1967 and 1968 Thunderbirds, I'm biased anyway).\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 9003, "properties": {"category": "rec.sport.baseball", "text": "From: sepinwal@mail.sas.upenn.edu (Alan Sepinwall)\nSubject: Re: Yankee fears.\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 26\nNntp-Posting-Host: mail.sas.upenn.edu\n\n\nI would e-mail this to you, but my mailserver doesn't recognize you or\nsomething.\n\nAnyway, the worst pitcher on the Yanks. If you mean currently on the team,\nthen I have to go with Scott \"I'm a schizophrenic...No, I'm NOT!\"\nKamienicki. Sure, occasionally the guy can pitch well for 5 or 6 innings,\nbut then he starts to go insane. A sure sign that he's losing his stuff\n(and his mind) is when he starts to stalk around the mound between batters\nand yell at himself.\n\nThe worst all-time Yanks pitcher?  Gotta go with Ed \"New York? I have to\npitch in [gulp] New York?\" Whitson. 'Nuff said!\n\n\n--I'm outta here like Vladimir!\n-Alan Sepinwall XVIII\n\n===========================================================================\n| \"What's this?  This is ice.  This is what happens to water when it gets |\n|  too cold.  This?  This is Kent.  This is what happens to people when   |\n|  they get too sexually frustrated.\"                                     |\n|               -Val Kilmer, \"Real Genius\"                                |\n===========================================================================\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 9004, "properties": {"category": "rec.sport.baseball", "text": "From: rachford@en.ecn.purdue.edu (Jeffery M Rachford)\nSubject: Ryno correction\nOrganization: Purdue University Engineering Computer Network\nDistribution: na\nLines: 13\n\n\nI made a mistake on the posted article [been fighting food\npoisoning for last 24 hours...]\n\nThe second paragraph should state the following...\n\n\"Doctors cleared Sandberg to swing a padded bat at a ball\non a tee and to catch a ball in his gloved hand.\"\n\nSorry for the error, didn't know it until after posting.\n\nJeffery\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 9005, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tso@cephalo.neusc.bcm.tmc.edu (Dan Ts'o)\nSubject: Re: How much memory for WP for Windows?\nOrganization: Baylor College of Medicine, Houston,Tx\nLines: 8\nDistribution: world\nNNTP-Posting-Host: cephalo.neusc.bcm.tmc.edu\n\nIn article <1ps6pjINNdua@rave.larc.nasa.gov> jka@air77.larc.nasa.gov writes:\n)  The documentation says that Wordperfect for windows, requires 4 M of ram, but\n)when I try to install it on my laptop I get a not enough memory error message.\n)I've unloaded everything that I possibly could but still, NOT ENOUGH MEMORY.\n)Anyone have any ideas as to why this might be happening. \n\n\tAre you sure you're not running Windows in real mode ? Is it Windows\n3.1 ? Do you have a permanent swapfile built ?\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 9006, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: DC-Y trajectory simulation\nKeywords: SSTO, Delta Clipper\nOrganization: University of Illinois at Urbana\nLines: 91\n\n\nI've been to three talks in the last month which might be of interest. I've \ntranscribed some of my notes below.  Since my note taking ability is by no means\ninfallible, please assume that all factual errors are mine.  Permission is \ngranted to copy this without restriction.\n\nNote for newbies:  The Delta Clipper project is geared towards producing a\nsingle staget to orbit, reusable launch vehicle.  The DC-X vehicle is a 1/3\nscale vehicle designed to test some of the concepts invovled in SSTO.  It is \ncurrently undergoing tests.  The DC-Y vehicle would be a full scale \nexperimental vehicle capable of reaching orbit.  It has not yet been funded.\n\nOn April 6th, Rocky Nelson of MacDonnell Douglas gave a talk entitled \n\"Optimizing Techniques for Advanced Space Missions\" here at the University of\nIllinois. Mr Nelson's job involves using software to simulate trajectories and\ndetermine the optimal trajectory within given requirements.  Although he is\nnot directly involved with the Delta Clipper project, he has spent time with \nthem recently, using his software for their applications.  He thus used \nthe DC-Y project for most of his examples.  While I don't think the details\nof implicit trajectory simulation are of much interest to the readers (I hope\nthey aren't - I fell asleep during that part), I think that many of you will\nbe interested in some of the details gleaned from the examples.\n\nThe first example given was the maximization of payload for a polar orbit.  The\nmain restriction is that acceleration must remain below 3 Gs.  I assume that\nthis is driven by passenger constraints rather than hardware constraints, but I\ndid not verify that.  The Delta Clipper Y version has 8 engines - 4 boosters\nand 4 sustainers.  The boosters, which have a lower isp, are shut down in \nmid-flight.  Thus, one critical question is when to shut them down.  Mr Nelson\nshowed the following plot of acceleration vs time:\n                  ______\n3 G         /|   /      |\n           / |  /       |          As ASCII graphs go, this is actually fairly \n          /  | /        |\t   good.  The big difference is that the lines\n2 G      /   |/         |          made by the  /  should be curves which are\n        /               |          concave up.  The data is only approximate, as\n       /                |          the graph wasn't up for very long.\n1 G   /                 |\n                        |\n                        |\n0 G                     |\n\n             ^          ^\n           ~100 sec    ~400 sec\n\n\nAs mentioned before, a critical constraint is that G levels must be kept below\n3.  Initially, all eight engines are started.  As the vehicle  burns fuel the\naccelleration increases.  As it gets close to 3G, the booster engines are \nthrotled back.  However, they quickly become inefficient at low power, so it\nsoon makes more sense to cut them off altogether.  This causes the dip in \naccelleration at about 100 seconds.  Eventually the remaining sustainer engines\nbring the G level back up to about 3 and then hold it there until they cut\nout entirely.\n\nThe engine cutoff does not acutally occur in orbit.  The trajectory is aimed\nfor an altitude slightly higher than the 100nm desired and the last vestiges of\nair drag slow the vehicle slightly, thus lowering the final altitude to \nthat desired.\n\nQuestions from the audience:  (paraphrased)\n\nQ:  Would it make sense to shut down the booster engines in pairs, rather than\n    all at once?\n\nA:  Very perceptive.  Worth considering.  They have not yet done the simulation.    Shutting down all four was part of the problem as given.\n\nQ:  So what was the final payload for this trajectory?\n\nA:  Can't tell us.  \"Read Aviation Leak.\"  He also apparently had a good \n    propulsion example, but was told not to use it.  \n\nMy question:  Does anyone know if this security is due to SDIO protecting\nnational security or MD protecting their own interests?\n\nThe second example was reentry simulation, from orbit to just before the pitch\nup maneuver.  The biggest constraint in this one is aerodynamic heating, and \nthe parameter they were trying to maximize was crossrange.  He showed graphs\nof heating using two different models, to show that both were very similar,\nand I think we were supposed to assume that this meant they were very accurate.\nThe end result was that for a polar orbit landing at KSC, the DC-Y would have\nabout 30 degrees of crossrange and would start it's reentry profile about \n60 degrees south latitude.\n\nI would have asked about the landing maneuvers, but he didn't know about that\naspect of the flight profile.\n\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n\t\t    \"Find a way or make one.\"\n\t             -attributed to Hannibal\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.426+0000", "event": "documents", "entityId": 9007, "properties": {"category": "talk.politics.mideast", "text": "From: ucer@ee.rochester.edu (Kamil B. Ucer)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nOrganization: University of Rochester Department of Electrical Engineering\n\nIn article <1993Apr16.142935.535@cs.yale.edu> karage@scus1.ctstateu.edu (Angelos Karageorgiou Greek and Macedon the only combination) writes:\n>\n>\tOk. My Aykut., what about the busload of Greek turists that was\n>torched, and all the the people in the buis died. Happened oh, about 5\n>years ago in Instanbul.\n>\tWhat about the Greeks in the islands of Imbros and tenedos, they\n>are not allowed to have churches any more, instead momama turkey has\n>turned the church into a warehouse, I got a picture too.\n>\tWhat about the pontian Greeks of Trapezounta and Sampsounta,\n>what you now call Trabzon and Sampson, they spoke a 2 thousand year alod\n>language, are there any left that still speek or were they Islamicised?\n>\tBefore we start another flamefest , and before you start quoting\n>Argic all over again, or was it somebody else?, please think. I know it\n>is a hard thing to do for somebody not equipped , but try nevertheless.\n>\tIf Turks in Greece were so badly mistreated how come they\n>elected two,m not one but two, representatives in the Greek government?\n>How come they have free(absolutely free) hospitalization and education?\n>Do the Turks in Turkey have so much?If they do then you have every right\n>to shout, untill then you can also move to Greece and enjoy those\n>privileges. But I forget , for you do study in a foreign university,\n>some poor shod is tiling the earth with his own sweat.\n>\tBTW is Aziz Nessin still writing poetry? I'd like to read some\n>of his new stuff. Also who was the guy that wrote \"On the mountains of\n>Tayros.\" ? please respond kindly to the last two questions, I am\n>interested in finding more books from these two people.\n>\t\n>\n>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n>Yeian kai Eytyxeian  | The opinions expressed above are nobody else's but\n>Angelos Karageorgiou | mine,MINE,MIIINNE,MIIINNEEEE,aaaarrgghhhh..(*&#$$*((+_$%\n>Live long & Prosper  | NO CARRIER\n>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n>>     Any and all mail sent to me , can and will be used in any manner        <\n>>     whatsoever. I may repost or publicise parts of messages or whole        <\n>>     messages. If you disagree, please exercise your freedom of speech       <\n>>     and don't send me anything.                                             <\n\nDear Mr. Karageorgiou,\nI would like to clarify several misunderstandings in your posting. First the    bus incident which I believe was in Canakkale three years ago, was done by a    mentally ill person who killed himself afterwards. The Pontus Greeks were ex-   changedwith Turks in Greece in 1923. I have to logout now since my Greek friend\nYiorgos here wants to use the computer. Well, I'll be back.Asta la vista baby.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9008, "properties": {"category": "comp.graphics", "text": "From: kuryakin@bcstec.ca.boeing.com (Rick Pavek)\nSubject: VISION-3D site and email unavailable\nOrganization: Boeing\nLines: 21\n\nI used the information provided in the recent resource listings and\ntried to ftp to:\n\nccu1.aukland.ac.nz [130.216.1.5]:  ftp/mac/architec - *VISION-3D facet\n\nand received an 'unknown host' message.\n\nmail to Paul D. Bourke (pdbourke@ccu1.aukland.ac.nz) bounces with basically\nthe same problem.\n\nWhere'd he go????\n\nRick\n\n \n\n-- \nRick Pavek                       | Never ask a droid to outdo its program.\nkuryakin@bcstec.ca.boeing.com    |           \nSeattle, WA                      |   It wastes your time\n                                 |          and annoys the droid.  \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9009, "properties": {"category": "talk.religion.misc", "text": "From: joslin@pogo.isp.pitt.edu (David Joslin)\nSubject: Re: Language and agreement\nOrganization: Intelligent Systems Program\nLines: 59\n\nI responded to Jim's other articles today, but I see that I neglected\nto respond to this one.  I wouldn't want him to think me a hypocrite\nfor not responding to *every* stupid article on t.r.m.\n\nm23364@mwunix.mitre.org (James Meritt) writes:\n>From my handy dictionary:\n[dictionary definitions of \"not\" \"disagree\" and \"agree\" deleted]\n>Please operationally differentiate between \"not disagree\" and \"agree\".\n\nOh, but I'm weary of trying to wade through Jim's repertoire of \nred herrings and smoke screens.\n\nLet's see what we get when we run all four articles posted by Jim today\nthrough the 'discord' filter (a Markov chain program that Steve Lamont\nwas kind enough to send me):\n\n\tTaking action? A white geese be held\n\tas an accomplice to be held as\n\ta decision upon the door\n\tA black and white goose waddles past\n\tthe eyes of the door. \n\tHits it with the confidence interval for \n\tthat individual is held responsible \n\tfor that, that individual \n\tmay be held as a \n\tgetaway car may be held \n\tas an uncountably large number \n\tof the driver of something \n\tand agree.\n\n\tA black goose \n\twaddles past the person imprisoned?\n\n\tWhite goose waddles past the \n\tconfidence interval for the population \n\tof geese be axed, \n\tfine.\n\tAnd white goose \n\twaddles past the door.\n\nDoes running Jim's articles through 'discord' make them more\ncoherent?  Less coherent?\n\nOr has 'discord' turned Jim's articles into an angst-ridden poem\nabout making choices in a world filled with uncertainty, yet being\nheld responsible for the choices we make?  Do the geese symbolize\nan inner frustration with ambiguity, a desire that everything be\nblack and white, with no shades of gray?  Does the \"getaway car\"\ntell us that to try to renounce the existential nature of our\nbeing is not to \"get away\" from responsibility for our actions,\nbut rather to take the role of the passive accomplice, the\n\"driver\" of the getaway car, as it were?  Does the juxtaposition\nof man and machine, car and driver, reveal a subtext: an internal\nconflict between determinism and moral responsibility?\n\nOr am I reading too much into a collaboration between Jim and\na random number generator?\n\ndj\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9010, "properties": {"category": "comp.graphics", "text": "From: joachim@kih.no (joachim lous)\nSubject: Re: TIFF: philosophical significance of 42\nOrganization: Kongsberg Ingeniorhogskole\nLines: 28\nNNTP-Posting-Host: samson.kih.no\nX-Newsreader: TIN [version 1.1 PL8]\n\nMarc T. Kaufman (kaufman@Xenon.Stanford.EDU) wrote:\n\n> -> Does anyone have any  other suggestions where the 42 came from?\n\n>    At this moment the King, who had been for some time busily writing in\n> his note-book, called out \"Silence!\" and read out from his book\n> \"Rule Forty-two. All persons more than a mile high to leave the court.\"\n>    Everybody looked at Alice.\n>    \"I'm not a mile high,\" said Alice.\n>    \"You are,\" said the King.\n>    \"Nearly two miles high,\" added the queen.\n>    \"Well, I sha'n't go, at any rate,\" said Alice; \"besides, that's not\n> a regular rule: you invented it just now.\"\n>    \"It's the oldest rule in the book,\" said the King.\n>    \"Then it ought to be Number One,\" said Alice.\n\nDoes anybody have a collection of occurances of 42? (before and after\nThe Guide). If not, I would like to receive any odd bits you might know.\npostings to alt.fan.douglas.adams.\n\n\n--\n    _______________________________\n   / _ L*   /  _  / .    /      _  /_  \"One thing is for sure: The sheep\n  /  _)    /()(/(/)//)) /_ ()(/_) / /  Is NOT a creature of the earth.\"\n / \\_)~  (/ Joachim@kih.no       / /     \n/_______________________________/ / -The back-masking on 'Haaden II'\n /_______________________________/  from 'Exposure' by Robert Fripp.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9011, "properties": {"category": "sci.crypt", "text": "From: amolitor@nmsu.edu (Andrew Molitor)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: Department of Mathematics\nLines: 28\nNNTP-Posting-Host: moink.nmsu.edu\n\nIn article <1993Apr20.192105.11751@ulysses.att.com>\n\tsmb@research.att.com (Steven Bellovin) writes:\n>\n> [ responding to claims about Skipjack cracking engines ]\n>\n>Thousands?  Tens of thousands?  Do some arithmetic, please...  Skipjack\n>has 2^80 possible keys.  Let's assume a brute-force engine like that\n>hypothesized for DES:  1 microsecond per trial, 1 million chips.  That's\n>10^12 trials per second, or about 38,000 years for 2^80 trials.  Well,\n>maybe they can get chips running at one trial per nanosecond, and build\n>a machine with 10 million chips.  Sure -- only 3.8 years for each solution.\n>\n\n\tI think I should also point out that the mystical DES engines\nare known plaintext engines (unless you add a ton of really smart\nhardware?)\n\n\tThe 'plaintext' is digitized voice, and exists for a very short\ntime, probably in a couple inches of copper, tops. It's flatly not\navailable -- your bug in my office can hear my voice, and even digitize\nit, but it's going to get a different bitstream.\n\n\tIt is horribly naive to suppose that regular folks can figure\nout how to crack skipjack, or clipper based telephones. I'm certainly\nnot devoting a great deal of thought to it.\n\n\tAndrew Molitor\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9012, "properties": {"category": "talk.politics.mideast", "text": "From: adams@bellini.berkeley.edu (Adam L. Schwartz)\nSubject: Danny Rubenstein speaking tonight.\nNntp-Posting-Host: bellini.berkeley.edu\nOrganization: U.C. Berkeley -- ERL\nLines: 7\n\n\nDanny Rubenstein, an Israeli journalist, will be speaking tonight \n(Wednesday, 7:30 pm) on the messy subject of politics in Israel.\nHe is speaking at Hillel on the U.C. Berkeley campus.\n\n-Adam Schwartz\nadams@robotics.berkeley.edu\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9013, "properties": {"category": "rec.autos", "text": "From: kurt@oddjob.uchicago.edu (Kurt Henriksen)\nSubject: BRAKE ROTORS...CROSS DRILLING...312 702 8323\nOrganization: University of Chicago, Astronomy and Astrophysics\nDistribution: na\nLines: 1\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9014, "properties": {"category": "comp.graphics", "text": "From: sas58295@uxa.cso.uiuc.edu (Lord Soth       )\nSubject: MPEG for MS-DOS\nOrganization: University of Illinois at Urbana\nLines: 13\n\nDoes anyone know where I can FTP MPEG for DOS from?  Thanks for any\nhelp in advance.  Email is preferred but posting is fine.\n\n\t\t\t\tScott\n\n\n---------------------------------------------------------------------------\n| Lord Soth, Knight |||| email to --> LordSoth@uiuc                ||||||||\n| of the Black Rose |||| NeXT to ---> sas58295@sumter.cso.uiuc.edu ||||||||\n|   @}--'-,--}--    |||||||||||||||||||||||||||||||||||||||||||||||||||||||\n|-------------------------------------------------------------------------|\n|    I have no clue what I want to say in here so I won't say anything.   |\n---------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9015, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: Need info on 43: 1 and suicide for refutation\nLines: 85\nOrganization: University of Tennessee Division of Continuing Education\nDistribution: usa\n\nIn article <1qmuv8INNl8s@dns1.NMSU.Edu> loki@acca.nmsu.edu (Entropic Destroyer) writes:\n\n>The following is quoted from the tail end of a (rather condescending)\n>article about Paxton Quigley, that appeared in US Snooze and World Lies,\n>(sorry... i think it was in the wall street journal...)\n>and was repeated in the Colorado (people's) Daily, a student newspaper\n>at the University of Colorado at Boulder.\n>\n>\"A study of residential gunsot deaths in King County, Wash., found that\n>a gun in the home was 43 times more likely to be used to kill its owner,\n                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n>spouse, a friend, or child than to kill an intruder.  \n\n       The \"used to kill\" is the heart of the misinformation.  It's one\nof those technically accurate phrasings that conveys the wrong impression.\nWhat Mr. Quiqley is more than aware of, I'm sure, is that when people\nread this they think violent arguments where one member of the family\ngrabs a gun and shoots another, thereby creating a tragic situation\nwhich could easily have been avoided had the gun not been there, or\na tragic accident, especially involving a child.\n\n       Unfortunately, that's not the way things stack up.  The majority\nof that 43 \"times\" (37 I believe) are suicides.  That is, someone \nintentionally took a firearm and shot themselves intending to kill \nthemselves.  And why it's popular to try and blame suicides on guns,\nthe evidence doesn't support this.  Internal studies, as well as\ncomparative studies with other countries, indicate that cultural\nfactors far outweigh whether a person will kill themselves or not.\n(Japan, for instance, has a slightly higher rate than the U.S.  There\npeople jump off buildings.)\n\n       According to the National Crime Survey, 40% of violent crime\nis commited by \"non-strangers,\" which mistakenly has been generalized\nregarding the King County study to mean, \"Friends and family.\"  That\nis, Mr. Quigley, and others who quote this statistic, are banking on\nthe mental image that a \"Friend, family member, or child,\" equates\nto a loving relationship, and that it was cut short in a moment of\nanger.  Unfortunately, all too often husbands beat and kill wives,\nchildren assault parents, or vice-versa.  Most rapes are commited by \nsomeone known to the victim, for instance.  Essentially, that a gun\nwas used against a \"friend\" or family member doesn't mean they\nweren't trying to hurt the other person.  Crime is highest among\npoor urban families, and those are also the areas most \"at risk\"\nfor family problems, especially violent ones.  A son in a gang may\nnot be as loving toward his parents if they disapprove than a suburban\nkid might.\n\n       Finally, it hinges on the fallacy that a dead intruder is the\nonly value of a self-defense firearm.  Using the minimum figures I\nworked out using the NCS I got about an 80:1 ratio between deadly\nself-defenses (justifiable homicides) and with-gun self-defenses.\nBetween the FBI Uniform Crime report and the NCS there's an enormous\namount of data and anybody with the calculator can crunch the numbers.\nAs such it is incorrect to assume that a dead body is the only valid\nmeans of determining the success of such a defense, since according\nto the NCS (which has been considered by many to seriously under-report\ndefenses) there were far more successful with-gun defenses than intruders\nkilled.\n\n       Not it also confines itself to the home, where attack by a \"friend\nor family member\" is far, far more likely, and excludes any defense\nwhich occurs outside the home.  (I believe a large number occur in\nbusinesses.)\n\n>Studies by the \n>Western Psychiatric Institute, in Pittsburgh, found that the mere presence\n>of a gun in the home sharply incresases the likelihood a family member\n>will commit suicide, even in the absence of psychiatric illness.\"\n\n       I have not seen the exact data for this, so I can't comment.  I\nwill point out Canada's and Japan's suicide rate as indications that\nculture far more than firearm availability affect suicide rates.\n\n       There was also a comparative study between Canada (for what\nit's worth, considering the difficulty of comparing across cultural\nlines) published in the New England Journal of Medicine (I can get the\nexact cite if you need it) that concluded that restrictive firearm laws \nwould not significantly impact the over-all suicide rate.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9016, "properties": {"category": "rec.motorcycles", "text": "From: egreen@East.Sun.COM (Ed Green - Pixel Cruncher)\nSubject: Re: insect impacts\nOrganization: Sun Microsystems, RTP, NC\nLines: 35\nDistribution: world\nReply-To: egreen@East.Sun.COM\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article 7290@rd.hydro.on.ca, jlevine@rd.hydro.on.ca (Jody Levine) writes:\n>>>\n>>>how _do_ the helmetless do it?\n>>\n>>Um, the same way people do it on \n>>horseback\n>\n>not as fast, and they would probably enjoy eating bugs, anyway\n\nEvery bit as fast as a dirtbike, in the right terrain.  And we eat\nflies, thank you.\n\n>>jeeps\n>\n>you're *supposed* to keep the windscreen up\n\nthen why does it go down?\n\n>>snow skis\n>\n>NO BUGS, and most poeple who go fast wear goggles\n\nSo do most helmetless motorcyclists.\n\n>The question still stands. How do cruiser riders with no or negligible helmets\n>stand being on the highway at 75 mph on buggy, summer evenings?\n\nhelmetless != goggleless\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9017, "properties": {"category": "rec.sport.hockey", "text": "From: ddf@mips.com (Dee Dee France)\nSubject: European/Russian Hockey team addresses?\nOrganization: Silicon Graphics, Inc\nLines: 56\nNNTP-Posting-Host: ralph.mti.sgi.com\nOriginator: ddf@ralph.mti.sgi.com\n\nDoes anyone have the addresses to any of the following hockey teams\nlocated in the Czech/Slovak Republics, Finland, Russia or Sweden?\nAny information on how to find these addresses would also be appreciated.\n\nAik\nAssat\nBrynas\nBudejovice\nChelabinsk\nDjurgarden\nDynamo\nEskulap\nEspoo\nFarjestad\nFrolunda\nHPK\nHV-71\nHifk\nIlves\nJYP HT\nJihlava\nJokerit\nJokp\nKalpa\nKhimik\nKladno\nKristall\nLada\nLeksand\nLitvinov\nLukko\nLulea\nMalmo\nMetallurg\nModo\nOlomouc\nPardubice\nRed Army\nRogle\nSkoda\nSlovan\nSoviet Wings\nSparta\nSpartak\nTPS\nTappara\nTrencin\nTuto\nVantaa\nVasteras\nYaroslavl\nZlin\n\n-- \nDee Dee France\nddf@sgi.com \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9018, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rrn@po.CWRU.Edu (Robert R. Novitskey)\nSubject: The \"P24T\"\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 14\nReply-To: rrn@po.CWRU.Edu (Robert R. Novitskey)\nNNTP-Posting-Host: slc12.ins.cwru.edu\n\n\nHay all:\n\n    Has anyone out there heard of any performance stats on the fabled p24t.\n I was wondering what it's performance compared to the 486/66 and/or\npentium would be.  Any info would be helpful.\n\nLater\nBoB\n-- \nRobert Novitskey | rrn@po.cwru.edu | (216)754-2134 | CWRU Cleve. Ohio\n----------------------------------------------------------------------\nCOMPUTER ENGINEER AND C PROGRAMMER |  NOW SEEKING SUMMER JOBS\n----------------------------------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9019, "properties": {"category": "sci.crypt", "text": "From: sphughes@sfsuvax1.sfsu.edu (Shaun P. Hughes)\nSubject: Clipper Crap\nOrganization: San Francisco State University\nLines: 17\n\n\n>encryption's dual-edge sword:  encryption helps to protect the\n>privacy of individuals and industry, but it also can shield\n>criminals and terrorists.  We need the \"Clipper Chip\" and other\n ^^^^^^^^^^^^^^^^^^^^^^^^\n\n\n   Just a random passing thought, but can anyone cite a documented use\nof encryption technology by criminals and terrorists.\n   (Excluding the Iran-Contra Gang)\n\n\n-- \n\n             Shaun P. Hughes  sphughes@sfsuvax1.sfsu.edu \n\n                    finger for PGP 2.2 Public Key\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9020, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: d12751@tanus.oz.au (Jason Bordujenko)\nSubject: DAC Circuit\nOrganization: Pro-Net Australia\nLines: 54\n\nG'day All,\n\nI was looking to build a Parallel Port Digital to Analogue Converter the other\nday and came across this schematic which I promptly threw together on a piece\nof VeroBoard:\n\n\n     P2----22k----+\n     P3----48k----|\n     P4----100k---|\n     P5----200k---|\n     P6----400k---|\n     P7----800k---|    10uf electrolytic\n     P8----1M6----|  +\n     P9----3M2----+---||--+----------\n                          |            +\n            47nF ceramic  -   \n                          -\n                          |            -\n     P25------------------+----------\n\n\n(Please excuse the obvious limits of the Lower ASCII char set :=)\n\nI have it all constructed here and sitting inside a nice little grey ABS box.\n\nUnfortunately I can't get it to work... I have a little demo here by the name\nof Cronologia (Which the schematic came from) and all I can get it to pump\nout of the box is data type hash/static with a small amount of music signal\nbehind it - it's even worse than the speaker inside the machine.\n\nDoes anybody out in net.colourful.computer.world have any ideas/suggestions/\nbetter designs/improvements/wastepaper bin... etc?\n\nMany thanks for a reply via this conference or email.\n\n  //\n\\X/  Regards, Jason.\n---\n\n+-------------------------------------------------------------------------+\n| Jason Bordujenko                                    Computer Department |\n| InterNet/UseNet: d12751@tanus.oz.au           Townsville Grammar School |\n| FidoNet Node   : 3:640/702 (Grammar BBS)               45 Paxton Street |\n| Data Phone No. : +61 77 72 6052 (Int.)       Townsville Queensland 4810 |\n|                : (077) 72 6052 (Aust.)                        Australia |\n| Facsimilie     : +61 77 72 2340 (Int.)                                  |\n|                : (077) 72 2340 (Aust.)                                  |\n+-------------------------------------------------------------------------+\n|                           God made him simple,                          |\n|                           science made him god                          |\n|                                                                         |\n|                    -Stephen King's `The LawnMower Man'                  |\n+-------------------------------------------------------------------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9021, "properties": {"category": "sci.electronics", "text": "From: linnig@m2000.dseg.ti.com (Mike Linnig)\nSubject: Re: books/info on audio DSP ??\nIn-Reply-To: scst83@csc.liv.ac.uk's message of 6 Apr 93 13:36:13 GMT\nNntp-Posting-Host: m2000.dseg.ti.com\nOrganization: Texas Instruments, Defense, Systems and Electronics Group.\n\t<C52DsD.7pB@compsci.liverpool.ac.uk>\nDistribution: rec,sci\nLines: 25\n\nIn article <C52DsD.7pB@compsci.liverpool.ac.uk> scst83@csc.liv.ac.uk (Chris Smith) writes:\n\n> I'm looking to build a DSP for guitar processing. Hence lots of background\n> information would be really useful !\n> \n> If anyone's got any info, could they email.....\n\nWell, I'm not sure I'd use this to process a guitar but there was a audio\nfilter DSP construction article in the Sept 92 issue of QST magazine (Ham Radio\noriented).  The DSP is available in kit form for about $120.\n\nThis particular DSP filter was targetted toward processing audio to remove\nnoise (static).  I built it and it really works well.  The source code is\navailable too.  It makes a noisy audio signal much easier to hear.  Note that\nthis is for communication applications and is not \"high fidelity\".\n\n\n\n--\n- - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +\nMike Linnig, Texas Instruments Inc. | 97.43% of all statistics are made |\nPhone: (214) 575-3597  CALL: N5QAW  | up; most of them (83.6 percent)   |\nInternet: mike.linnig@dseg.ti.com   | are wrong.                        |\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9022, "properties": {"category": "talk.politics.mideast", "text": "From: alaa@peewee.unx.dec.com (Alaa Zeineldine)\nSubject: Re: Facts about WTC Bombing\nOrganization: Digital Equipment Corp.\nX-Newsreader: Tin 1.1 PL3\nLines: 27\n\nbackon@vms.huji.ac.il writes:\n: In article <1pll52$sms@usenet.INS.CWRU.Edu>, cl056@cleveland.Freenet.Edu (Hamaza H. Salah) writes:\n: >>     WHO is Josie Hadas?\n: \n: \n: I see you didn't notice my recent posting.\n: \n: The FBI found that \"Josie Hadas\" was simply an alias taken by Salameh.\n: \n\nI have the sources for the information in the Chronology, including the\nNY Daily News of March 5 that reports the arrest of Josie Hadas and a\ncopy of the foreign press reports of her release shortly afterwards.\n\nWhat is the source for your alias story?\n\nAnd pray tell me how can the FBI arrest and release an alias?\n: \n: >>     WHAT is the relationship between that person and the Israeli mussad?\n: \n: Zilch, zero, nothing. Like the IQ of the idiot who posted this absurdity in the\n: first place.\n\nWhat has IQ to do with collecting information and putting it forward. Why\nhas the FBI refused comment on the Guardian reporter's question about\nHadas' link with Israeli Intelligence (the information did not mention\nthe Mossad explicitly).\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9023, "properties": {"category": "comp.graphics", "text": "From: kmembry@viamar.UUCP (Kirk Membry)\nSubject: Re: Rumours about 3DO ???\nReply-To: rutgers!viamar!kmembry\nOrganization: Private System\nLines: 11\n\nRead Issue #2 of Wired Magazine.  It has a long article on the \"hype\" of\n3DO.  I've noticed that every article talks with the designers and how\n\"great\" it is, but never show any pictures of the output (or at least\npictures that one can understand)\n\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nKirk Membry                                    \"Our Age is the Age of Industry\"\nrutgers!viamar!kmembry                         - Alexander Rodchenko\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9024, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rgonzal@gandalf.rutgers.edu (Ralph Gonzalez)\nSubject: using 1.4 Mb disks with Mac II?\nArticle-I.D.: gandalf.Apr.6.13.20.40.1993.1397\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 11\n\n\nDo you need to get a ROM upgrade to use a 1.4 Mb floppy drive with\na Mac II? Or are there 3rd party drives which work with the Mac II's\nown ROMs?\n\nThanks,\nRalph\n-- \nRalph Gonzalez, Computer Science, Rutgers Univ., Camden, NJ\nPhone: (609) 225-6122; Internet: rgonzal@gandalf.rutgers.edu\n--\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9025, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: Rewording the Second Amendment (ideas)\nOrganization: California Institute of Technology, Pasadena\nLines: 41\nNNTP-Posting-Host: sandman.caltech.edu\n\ndfo@vttoulu.tko.vtt.fi (Foxvog Douglas) writes:\n\n>Nerve gas and mustard gas are well defined.  Other poisonous\n>gasses should be individually banned only if it can be shown that there\n>is no use not related to weaponry.  Licenses should be available for\n>research purposes on such chemicals.\n\n>I am not a lawyer, but these ideas could certainly be a basis for \n>definitions.\n\nI hope you realize how trivial it is to manufacture these compounds.  Given\nabout $10k in lab equipment and chemicals (which are commercially available)\nand given the knowledge that I have (graduating BS, Ch, 1993) I could \nsynthesize enough of these compounds to make a serious dent in the population\nof several major US cities.  As also noted, the knowledge is there for\nthe production of nuclear weapons.  It's not even that restricted.  The\nonly thing is the expense.  \n\nNow I'm not going around making these things, but it's not 'cause of any\nlaw; I simply don't get any marginal benefit out of killing anyone.  Any\nlaw you enact in this respect is only going to give you the ability to \nadd a charge against someone who does make and use said weapons.  In the\ncase of chemical agents, I seriously doubt that you would even know that\nsomeone had set up a lab until after the weapons had been used.  \n\nPart of the trouble with the chemical-weapons ban treaty between the US\nand the USSR is that many of the precursors to chemical weapons such as\nGB and Sarin, etc., is that they have very valid commercial uses, and \nit is very easy to divert those precursors to chemical weapons manufacture\nwithout anyone knowing about it.\n\n>>< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n>><  ISU only censors what I read, not what I say.  Don't blame them.  >\n\n\n>-- \n>doug foxvog\n>douglas.foxvog@vtt.fi\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9026, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: WARNING.....(please read)...\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 32\n\nIn article <1993Apr17.051701.3419@nuscc.nus.sg> matmcinn@nuscc.nus.sg (Matthew MacIntyre at the National University of Senegal) writes:\n>callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>: >> \n>: >I'm not going to argue the issue of carrying weapons, but I would ask you if \n>: >you would have thought seriously about shooting a kid for setting off your\n>: >alarm?  I can think of worse things in the world.  Glad you got out of there\n>: >before they did anything to give you a reason to fire your gun.\n>: \n>I think people have a right to kill to defend their property. Why not? Be\n>honest: do you really care more about scum than about your  car?\n\nYo! Watch the attributions--I didn't say that!\n\nAgain, this isn't an appropriate forum for discussions on whether you\nshould shoot someone for property damage/vandalism/theft, but every\nresponsible gun owner realizes that there are limits, and the punishment\nmust fit the crime. I mean, think about it--is a (really) harmless\nprank worth killing over?\n\nAs I said, the situation described (punks setting off alarms and\ntaunting people to come out) could turn very ugly very quickly, and\nit is worth being prepared when your life is potentially on the line.\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9027, "properties": {"category": "rec.sport.hockey", "text": "Subject: Re: Tie Breaker....(Isles and Devils)\nFrom: caldwell8102@mtroyal.ab.ca\nOrganization: Mount Royal College, Calgary, Alberta\nLines: 21\n\nIn article <lrw509f@rpi.edu>, wangr@vccsouth22.its.rpi.edu ( Rex Wang ) writes:\n> \tAre people here stupid or what??? It is a tie breaker, of cause they\n> have to have the same record. How can people be sooooo stuppid to put win as\n> first in the list for tie breaker??? If it is a tie breaker, how can there be\n> different record???? Man, I thought people in this net are good with hockey.\n> I might not be great in Math, but tell me how can two teams ahve the same points\n> with different record??? Man...retard!!!!!! Can't believe people actually put\n> win as first in a tie breaker......\n\nThen allow me to enlighten you, Rex. You see, there's a thing called a tie. \nA tie is worth one point (I know, I know. You're not good at math. But bear\nwith me). A win is worth two points. So, getting two ties is the same as \ngetting one win. If your team played two games, won one and lost one, you'd\nhave two points. If my team played two games and tied them both, we'd also\nhave two points. We'd be tied in the standings even though our records are\ndifferent.\n\nPerhaps you should learn something about hockey before posting again. (I am\nstarting to sound like Roger or what?)\n\n\t\t\t\t\t\t\t\tAlan\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9028, "properties": {"category": "rec.sport.baseball", "text": "From: spork@camelot.bradley.edu (Richard Izzo)\nSubject: Re: Royals\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Bradley University\nDistribution: na\nLines: 20\n\nIn <randall.734911319@moose> randall@informix.com (Randall Rhea) writes:\n\n>The Royals are darkness.  They are the void of our time.\n>When they play, shame descends upon the land like a cold front\n>from Canada.   They are a humiliation to all who have lived and\n>all who shall ever live.   They are utterly and completely\n>doomed.\n>Other than that, I guess they're OK.\n\n\tOh, lighten up.  What depresses me is that they might actually \nfinish last, which I believe hasn't happened since their second season in \n1970.  Never mind that Gubizca is 0-2 with a 16.50 ERA, Gardner at 7.50,\nour main recent acquisitions (Lind, McReynolds, Jose) are averaging .210,\nDavid Cone is 0-2 (about how he was doing in KC before joining the Mets \nseveral years ago), our hitting sucks, and our pitching has collapsed, \nand we've won one game at home; they've won more games in their first ten\ngames than last year, and Brian McRae is actually batting over the \nMendoza line!\n\nrich.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9029, "properties": {"category": "rec.sport.baseball", "text": "From: thornley@micro.cs.umn.edu (David H. Thornley)\nSubject: Re: Erickson, Keith Miller?\nArticle-I.D.: news2.C5LHyD.GEx\nOrganization: University of Minnesota, Minneapolis, CSci dept.\nLines: 17\nNntp-Posting-Host: micro.cs.umn.edu\n\nIn article <1993Apr16.032554.12401@mintaka.lcs.mit.edu> frankkim@CATFISH.LCS.MIT.EDU (Frank Kim) writes:\n>\n>HI,\n>\n>I was just wondering if anyone knew when Erickson\n>and Keith Miller are expected to come back and what\n>exactly ails them.\n>\nDunno about Miller.\n\nIf you mean Scott Erickson, currently the reigning Twins Least Consistent\nGood Player, he pulled a muscle in the neighborhood of the rib cage that\nmade it essentially impossible for him to pitch temporarily, and is\nexpected back on the mound Sunday.\n\nDavid Thornley\n\"With tickets to see one of the Scott Ericksons pitch\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9030, "properties": {"category": "sci.crypt", "text": "From: smk5@quads.uchicago.edu (Steve Kramarsky)\nSubject: Re: Fifth Amendment and Passwords\nReply-To: smk5@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 23\n\nIn article <1993Apr17.122651.1874@sugra.uucp> ken@sugra.uucp (Kenneth Ng) writes:\n>In article <1993Apr16.165423.27204@linus.mitre.org: ptrei@bistromath.mitre.org (Peter Trei) writes:\n>:Judge: \"I grant you immunity from whatever may be learned from the key\n>:\titself\"\n>:You:    \"The keyphrase is: \"I confess to deliberately evading copyright; \n>:\tthe file encoded with this keyphrase contains illegal scans of \n>:        copyrighted Peanuts strips.\"\"\n\nCan we use murder instead of copyright violation, just to keep things\nstraight?  The 5th applies only to criminal cases which copyright \ninfringements are not (they are civil).\n\nSteve\n\nP.S. I'm sorry to waste bandwidth on a quibble, I just don't want\nanyone to get confused.  I think a bunch of kiddie porn GIFs make\na better test case than a bunch of Peanuts strips and that IS criminal\nboth in posession and distribution.\n\n-- \n            Steve Kramarsky, University of Chicago Law School\n           steve@faerie.chi.il.us -or- smk5@quads.uchicago.edu \n     \"All I did was kiss a girl.\" - Jake, the night before his hanging.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.427+0000", "event": "documents", "entityId": 9031, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: hwrvo@kato.lahabra.chevron.com (W.R. Volz)\nSubject: Re: Norton Desktop for Windows 2.2\nOrganization: Chevron Oil Field Research Company\nLines: 18\n\nIn article <1993Apr2.180451.15428@exu.ericsson.se>, ebuwoo@ebu.ericsson.se (James Woo 66515) writes:\n|> Hi,\n|> I wonder if anyone has had a chance try out Norton Desktop for Windows\n|> version 2.2 yet. I understand the upgrade cost from 2.0 to 2.2 is about\n|> $20.00 but I have no idea what the new version has.\n|>  \nI got the offer to upgrade this weekend. It's $19 + $8.50 shipping and\nhandling. The S+H seem way too steep for just a couple of disks. Sounds\nlike ripoff city. Can this purchased at vendors?\n\n-- \n\n======================\nBill Volz\nChevron Petroleum Technology Co.\nEarth Model/Interpretation & Analysis Division.\nP.O. Box 446, La Habra, CA 90633-0446\nPhone: (310) 694-9340 Fax: (310) 694-7063\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9032, "properties": {"category": "misc.forsale", "text": "From: kssimon@silver.ucs.indiana.edu (kenneth steven simon)\nSubject: Re: Deal gone bad! What to do?\nSummary: small claims - you have to be there \nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 24\n\n rjkoppes@news.weeg.uiowa.edu (Randy Koppes) writes:\n\n  >Have you head of small claims.  You may have to put money up\n  >front for the filing fees, and then possibly having the local \n  >sheriff of his/her city to deliver the bad news.  In the end \n  >the other party will end up paying for his/her mistake with \n  >interest from the time of the filing to the pay date of the\n  >defendent\n\nI think the problem with small claims court is that you have to go to\nthe location of the person you're taking action against.  It seems to\nme the time and money involved in travelling out there (unless this\nperson is close to you) wouldn't be worth it for a small claim.\nIt really depends on how much money you're out.\n\nIf I am wrong about any of this, someone please correct me! ;)\n\n\n\n-- \n-----------------------------------------------------------------\nKenneth Simon               Dept of Sociology, Indiana University\nInternet: KSSIMON@INDIANA.EDU              Bitnet: KSSIMON@IUBACS \n-----------------------------------------------------------------\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9033, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: xtifr@netcom.com (Chris Waters)\nSubject: Re: PC/Geos, Windows, OS/2, and Unix/X11\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 58\n\nIn <sehari.734022369@vincent2.iastate.edu> sehari@iastate.edu (Babak Sehari) writes:\n\n>---\n\n>With my limited knowladge about the PC Geos, I came out with following \n>comparison:\n\n>                 PC Geos      Windows       OS/2    Unix/X11\n>                ________      _______       ____    _______\n\n>2. can run win\n>   programs        nop           yap         yap     nop\n                                                       ^\n                                                      Novell is at least\n                                                      demoing windows apps\n                                                      running under UNIXWare.\n\n\n>5. can run unix    nop        I have not     nop     yap\n>                              heard of it\n                                   ^           ^\n                                Try MKS.     MKS &\n                                           others, esp.\n                                              EMX\n\nNote here: the MKS toolkit (for DOS/Windows & OS/2) gives you a good\nsuite of standard UNIX utilities.  There are other similar systems from\nother vendors as well.  The EMX system for OS/2 gives you most of the\nstandard UNIX system calls for recompiling your UNIX programs under\nOS/2.  Not quite the same thing as actually running UNIX programs\ndirectly in either case, but EMX makes OS/2 almost as compatible with\nUNIX systems as many UNIX systems are with each other.  And, best of\nall, EMX is free.  :-)\n\nThere is a similar system (GO32) for DOS, but it doesn't work with\nWindows, as far as I know.\n\n>7. price          $120          $70         $120     free-$1000s\n>                                                     A good one\n>                                                     costs $400-$700 \n>                                                     avaliable on Ext.\n>                                                     card too.\n\nShould add in the cost for DOS with both Geos and Windows, neither of\nwhich is a standalone OS at this point.  Neither OS/2 nor UNIX requires\nDOS.\n\nBTW, two of the best unices I've seen for the pee cee are UNIXWare ($300\nfor the personal edition) and LINUX (free).  So I don't agree that \"a\ngood one costs $400-$700.\"  :-)\n\nAnd, if you really want to check out the various options available to\nyou, you should also look into DESQview and DESQview/X.\n\ncheers\n-- \nChris Waters    | the insane don't |\"Judy's in the bedroom,\nxtifr@netcom.COM| need disclaimers | Inventing situations.\"  -D. Byrne\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9034, "properties": {"category": "talk.politics.mideast", "text": "From: dzk@cs.brown.edu (Danny Keren)\nSubject: Re: Himmler's speech on the extirpation of the Jewish race\nOrganization: Brown University Department of Computer Science\nLines: 56\n\nIt is appropriate to add what Himmler said other \"inferior races\" \nand \"human animals\" in his speech at Posen and elsewhere:\n\n\nFrom the speech of Reichsfuehrer-SS Himmler, before SS\nMajor-Generals, Posen, October 4 1943\n[\"Nazi Conspiracy and Aggression\", Vol. IV, p. 559]\n-------------------------------------------------------------------\nOne basic principal must be the absolute rule for the SS man: we\nmust be honest, decent, loyal, and comradely to members of our own\nblood and to nobody else. What happens to a Russian, to a Czech,\ndoes not interest me in the slightest. What the nations can offer\nin good blood of our type, we will take, if necessary by kidnapping\ntheir children and raising them with us. Whether nations live in\nprosperity or starve to death interests me only in so far as we\nneed them as slaves for our culture; otherwise, it is of no interest\nto me. Whether 10,000 Russian females fall down from exhaustion\nwhile digging an anti-tank ditch interest me only in so far as\nthe anti-tank ditch for Germany is finished. We shall never be rough\nand heartless when it is not necessary, that is clear. We Germans,\nwho are the only people in the world who have a decent attitude\ntowards animals, will also assume a decent attitude towards these\nhuman animals. But it is a crime against our own blood to worry\nabout them and give them ideals, thus causing our sons and\ngrandsons to have a more difficult time with them. When someone\ncomes to me and says, \"I cannot dig the anti-tank ditch with women\nand children, it is inhuman, for it will kill them\", then I\nwould have to say, \"you are a murderer of your own blood because\nif the anti-tank ditch is not dug, German soldiers will die, and\nthey are the sons of German mothers. They are our own blood\".\n\n\n\nExtract from Himmler's address to party comrades, September 7 1940\n[\"Trials of Wa Criminals\", Vol. IV, p. 1140]\n------------------------------------------------------------------\nIf any Pole has any sexual dealing with a German woman, and by this\nI mean sexual intercourse, then the man will be hanged right in\nfront of his camp. Then the others will not do it. Besides,\nprovisions will be made that a sufficient number of Polish women\nand girls will come along as well so that a necessity of this\nkind is out of the question.\n\nThe women will be brought before the courts without mercy, and\nwhere the facts are not sufficiently proved - such borderline\ncases always happen - they will be sent to a concentration camp.\nThis we must do, unless these one million Poles and those\nhundreds of thousands of workers of alien blood are to inflict\nuntold damage on the German blood. Philosophizing is of no avail\nin this case. It would be better if we did not have them at all -\nwe all know that - but we need them.\n\n\n\n-Danny Keren.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9035, "properties": {"category": "rec.autos", "text": "From: tedebear@leland.Stanford.EDU (Theodore Chen)\nSubject: Re: Toyota wagons\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 15\n\nIn article <1993Apr5.213032.26844@pmafire.inel.gov> russ@pmafire.inel.gov (Russ Brown) writes:\n>In article <1pq6bl$9rj@news.ysu.edu> ak296@yfn.ysu.edu (John R. Daker) writes:\n>>Has anybody noticed that Toyota has an uncanny knack for designing horrible\n>>ugly station wagons?  Tercels, Corollas, Camrys.  Have their designers no\n>>aesthetic sense at all?\n>>-- \n>The new Camry Wagon may just be even uglier than my Tercel.   :-)\n\ntoyota has cornered the market on ugly station wagons.\nafter seeing the new camry sedan, i had thought toyota would\nfinally turn out something nice-looking.  the new camry station\nwagon bears a strong resemblance to a hearse, and a weird looking\none at that.\n\n-teddy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9036, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss)\nSubject: [lds] Hal's reply\nOrganization: University at Buffalo\nLines: 38\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\nIn article <C51nLs.7As@boi.hp.com>, hall@boi.hp.com (Hal Leifson) writes...\n\n[...Dr. England's story deleted, it was a nice read the first time \nthrough...]]\n\n>now lead the Church.  I, for one, do not wish to be labelled \"Christian\", if \n>those who profess themselves as Christians attack my beliefs because they are \n>intollerent (for example) of the way my religion may interpret Biblical \n>scriptures of the same source to have a different meaning and implication \n>than mainstream Christianity would give it. \n\n\tIt isn't so much a matter of 'interpretation' of Bible texts \nthat sets Mormonism apart from orthodoxy as it is a matter of \n*fabrication*.\n\n\tAbout 20 years ago, _National Lampoon_ had some comic strips \nin them that were drawn by Neal Adams. They were called \"Son o' God\" comics. \nIt was a parody of the Jesus in the Bible. In the comic, there were a \ngroup of thirteen Jewish kids from Brooklyn, and when one of them said \nthe magic word, he turned into \"Son o' God.\" He went from a myopic, \ncurly headed, yarmulke wearing boy to a replica of the stylizied \nportraits of Jesus --- with long flowing brown hair and gentile \nfeatures.\t\n\n\tNow, if someone were to profess faith in this NatLamp Jesus, \nand claim that they were a Christian because they believed in this \nNatLamp Jesus, we would have to say that this was fallacious since \nthis Jesus was a fabrication, and did not really exist.\n\n\tThis is the exact same thing that the LDS do when they claim \nthat they are Christian. They profess faith in Jesus, but the Jesus \nthat they profess to have faith in is as much a fabrication as the \nNatLamp Jesus was.\n\n\n=============================\nRobert Weiss\npsyrobtw@ubvms.cc.buffalo.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9037, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 29\n\n\nIn article <sandvik-150493181533@sandvik-kent.apple.com>, sandvik@newton.apple.com (Kent Sandvik) writes:\n|> In article <1993Apr15.200231.10206@ra.royalroads.ca>,\n|> mlee@post.RoyalRoads.ca (Malcolm Lee) wrote:\n|> > These laws written for the Israelites, God's chosen people whom God had\n|> > expressly set apart from the rest of the world.  The Israelites were a\n|> > direct witness to God's existence.  To disobey God after KNOWing that God\n|> > is real would be an outright denial of God and therefore immediately punishable.\n|> > Remember, these laws were written for a different time and applied only to \n|> > God's chosen people.  But Jesus has changed all of that.  We are living in the\n|> > age of grace.  Sin is no longer immediately punishable by death.  There is\n|> > repentance and there is salvation through our Lord Jesus Christ.  And not just\n|> > for a few chosen people.  Salvation is available to everyone, Jew and Gentile\n|> > alike.\n|> \n|> Jews won't agree with you, Malcolm.\n|> \n|> Cheers,\n|> Kent\n|> ---\n|> sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n\nA lot of people won't agree with me.  That's their right and I respect that.\nHowever, to the point, Jews are also covered by the saving grace of Jesus\nChrist.  There are Jews who have become Christians.\n\nThis brings up another question I still have to ponder:  why is there so \nmuch anti-Semitism?  Why do people hate Jews?  I don't hate Jews.  I consider\nthem to be like anyone else, sinners we all are.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9038, "properties": {"category": "talk.religion.misc", "text": "From: Thyagi@cup.portal.com (Thyagi Morgoth NagaSiva)\nSubject: David Koresh - Messianic Cult???\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 12\n\nHello.\n\n\nI just read my first newspaper in a while and noticed an article on a\n'messianic cult' leader named 'David Koresh'.\n\nI'd like to know more about this and what is going on with them.\n\nPlease email me as I don't normally read this newsgroup.  Thanks.\n\n\nThyagi@HouseofKaos.Abyss.com\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9039, "properties": {"category": "rec.sport.hockey", "text": "From: mmb@lamar.ColoState.EDU (Michael Burger)\nSubject: TV Schedule for Next Week\nDistribution: na\nNntp-Posting-Host: lamar.acns.colostate.edu\nOrganization: Colorado State University, Fort Collins, CO  80523\nLines: 20\n\nUnited States TV Schedule:\nApril 18   Devils/Islanders at Pittsburgh   1 EST  ABC  (to Eastern time zone)\nApril 18   St. Louis at Chicago             12 CDT ABC  (to Cent/Mou time zones)\nApril 18   Los Angeles at Calgary           12 PDT ABC  (to Pacific time zone)\nApril 20   Devils/Islanders at Pittsburgh   7:30   ESPN\nApril 22   TBA                              7:30   ESPN\nApril 24   TBA                              7:30   ESPN\n\nIf somebody would send me the CBC/TSN schedule I'll post that as well.\n\n\n*******************************************************************************\n*  Mike Burger                    *  My Canada includes, Quebec, Ontario,     *\n*  mmb@lamar.colostate.edu        *  the Maritimes, the Prairies, and Florida *\n*  A Beginning Computing TA Stud  *  four months a year.                      *\n*  over 500 students served       *    --Royal Canadian Air Farce             *\n*******************************************************************************\n*      University of Michigan - 1990  --  Colorado State University - 199?    *\n*******************************************************************************\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9040, "properties": {"category": "rec.sport.hockey", "text": "From: gp2011@andy.bgsu.edu (George Pavlic)\nSubject: Matt Militzok please read!\nOrganization: Bowling Green State University B.G., Oh.\nLines: 6\n\n\nSorry to everyone for wasting space.  Matt, the other day you posted that\nyou were doing a mailing list of playoff stats.  I lost your address. \nPlease put me on that list.  Thanks.\n\nGeorge \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9041, "properties": {"category": "rec.sport.hockey", "text": "From: igor@pravda.tse.su\nSubject: Who will broadcast the WC\nOriginator: tervo@messi.uku.fi\nOrganization: Central Red Army, Soviet Union\nLines: 9\n\nWhich GERMAN satellite channels will show the World Championship action\nfrom Dusseldorf & Munich?\nSomeone please tell me (must be able to root for the Red Machine)!\n\nThank you\n \n***Russians for the world title, Nordiques for the Cup!!!***\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9042, "properties": {"category": "comp.windows.x", "text": "From: bambi@kirk.bu.oz.au (David J. Hughes)\nSubject: Re: Motif vs. [Athena, etc.]\nOrganization: Bond University, AUSTRALIA\nLines: 52\n\nberry@durian.citr.uq.oz.au (Andrew Berry) writes:\n\n>My impression is that most people use Motif because their OS vendor\n>supplies it with X (SunOS users excluded), and because it is similar in\n>\"look and feel\" to MS-Windows and OS/2 PM.  Personally, I also prefer\n>the \"look and feel\" of Motif (no flames please -- just an opinion).\n\nSeeing as Motif has been adopted by Sun, IBM, HP +++ (can't remeber the\nother members in the recent announcement), I'm sure you'll see it on\nvirtually every workstation (ie. Sun, IBM, HP and DEC must make up the\n**VAST** majority of all hardware).\n\n\n>I am also concerned by this prevalence of Motif, particularly from the\n>point of view of writing and obtaining free software.  As the Linux and\n>386BSD communities grow, however, I think that Motif will lose some of\n>its grip, at least in the non-commercial marketplace.  \n\n\nPorts of Motif to both 386BSD and Linux are available for a fee of about\n$100.  This is cost recovery for the person who bought the rights to\nredistribute.  The activity in both the BSD and Linux news groups\npertaining to Motif has been high.\n\n\n>I just wonder if this will also cause a divergence between commercial\n>and non-commercial software (ie. you will only get free software using\n>Athena or OpenLook widget sets, and only get commercial software using\n>the Motif widget sets).  \n\n\nI can't see why.  If just about every workstation will come with Motif\nby default and you can buy it for under $100 for the \"free\" UNIX\nplatforms, I can't see this causing major problems.\n\n\nSide Note :\n---------\nAll the X based code I am writing (and will distribute freely when\ncompleted) is based on Motif because from a programmatic and also \"look\nand feel\" point of view I like it the best (no flames on this one\nplease).\n\n\n\nbambi\n\n   ___                                 David J. Hughes     bambi@bu.oz.au\n  /   \\                /  /    /        \n /  __/ __   __   ____/  /    / __          Senior Network Programmer\n/    \\ /  \\ /  \\ /   /  /    / /  \\  /    Comms Development & Operation\n\\____/ \\__//   / \\__/   \\___/ /   / /       AUSTRALIA  (+61 75 951450)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9043, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lgorbet@triton.unm.edu (Larry P Gorbet ANTHROPOLOGY)\nSubject: Re: Floptical Question\nOrganization: University of New Mexico, Albuquerque\nLines: 11\nNNTP-Posting-Host: triton.unm.edu\n\nIn article <bmyers-140493201843@slip-x27.ots.utexas.edu> bmyers@ccwf.cc.utexas.edu (Billy Lee Myers, Jr.) writes:\n>...the last time I looked, floptical disk\n>weren't all that cheap, ($30 per floptical disk = $1.40 per megabyte, $60\n>per sysquest is $1.36 per megabyte).\n\nFlopticals have been available since the beginning of the year at $25\nper floptical (= $1.20 per megabyte), and I have seen them advertised\nin MacWEEK at $20 (< $1.00 per megabyte).  For someone on a tight\nbudget, the fact that the minimal dollar increment for more storage is\nless---$25 versus $60---sometimes matters.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9044, "properties": {"category": "sci.med", "text": "From: steveo@world.std.com (Steven W Orr)\nSubject: Need to find information about current trends in diabetes.\nOrganization: SysLang, Inc.\nLines: 15\n\n\nI looked for diab in my .newsrc and came up with nuthin. Anyone have\nany good sources for where I can read? In particular, I'm interested\nin finding out more about intravenous insulin injection for hepatic\nvein liver activation. (Whew! Wotta mouthful!)\n\nAnything that smells like a pointer would be helpful: newsgroup,\nmailinglist, etc....\n\nMany thanks.\n\n-- \n----------Time flies like the wind. Fruit flies like bananas.------------------\nSteven W. Orr      steveo@world.std.com     uunet!world!steveo\n----------Everybody repeat after me: \"We are all individuals.\"-----------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9045, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: sgi\nLines: 38\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1qjf31$o7t@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n|> In article <1qimbe$sp@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> #In article <1qif1g$fp3@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n|> #|> In article <1qialf$p2m@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> #|> \n|> #|> I forget the origin of the quote, but \"I gotta use words when I talk to\n|> #|> you\".  An atheist is one who lacks belief in gods, yes?  If so, then\n|> #|> it's entirely plausible that an atheist could dig Lenin or Lennon to\n|> #|> such an extent that it might be considered \"worship\", and still be\n|> #|> an atheist.  Anything else seems to be Newspeak.\n|> #\n|> #Ask yourself the following question.   Would you regard an ardent\n|> #Nazi as a republican, simply because Germany no longer had a Kaiser?\n|> \n|> No, because that's based on false dichotomy.   There are more options\n|> than you present me.  \n\nAnd that, of course, is the point.   You can't simply divide the\nworld into atheists and non-atheists on the basis of god-belief.\n\nIf all you care about is belief in a supernatural deity, and\nhave nothing to say about behaviour, then belief in a supernatural\nbeing is your criterion.\n\nBut once you start talking about behaviour, then someone's suscept-\nibility to be led by bad people into doing bad things is what you \nare - I assume - worried about.\n\nAnd in that area, what you care about is whether someone is sceptical,\ncritical and autonomous on the one hand, or gullible, excitable and\neasily led on the other.\n\nI would say that a tendency to worship tyrants and ideologies indicates\nthat a person is easily led.   Whether they have a worship or belief \nin a supernatural hero rather than an earthly one seems to me to be\nbeside the point.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9046, "properties": {"category": "sci.crypt", "text": "From: al@escom.com (Al Donaldson)\nSubject: Re: Once tapped, your code is no good any more.\nReply-To: al@escom.COM (Al Donaldson)\nOrganization: ESCOM Corp., Oakton VA (USA)\nDistribution: na\nLines: 16\n\namolitor@nmsu.edu (Andrew Molitor) writes:\n>Yes, those evil guys in the FBI can probably, with some\n>effort, abuse the system. I got news for you, if the evil guys in\n>the FBI decide they want to persecute you, they're gonna, ...\n\nAnd if Richard Nixon had had this kind of toy, he wouldn't have had\nto send people into the Watergate.\n\nBut that's not really the issue.  The real issue is whether this \nwill be used to justify a ban against individuals' use of private \n(i.e., anything else) encryption methods.\n\nUnrelated question...isn't the term \"Clipper,\" as neat as it is,\nalready taken by Intergraph?\n\nAl\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9047, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University)\nSubject: Re: Interesting ADB behaviour on C650\nOrganization: University of Waikato, Hamilton, New Zealand\nLines: 20\n\nIn article <1993Apr15.181440.15490@waikato.ac.nz>, I said:\n\n> I know that plugging and unplugging ADB devices with the power on is \"not\n> supported\", and you can hit problems if you have multiple devices with\n> clashing addresses, and all that.\n\nI've had a couple of e-mail responses from people who seem to believe that\nthis sort of thing is not only unsupported, it is downright dangerous.\n\nI have heard of no such warnings from anybody at Apple. Just to be sure, I\nasked a couple of our technicians, one of whom has been servicing Macs for\nyears. There is *no* danger of damaging logic boards by plugging and unplugging\nADB devices with the power on.\n\nSCSI, yes, ADB, no...\n\nLawrence D'Oliveiro                       fone: +64-7-856-2889\nComputer Services Dept                     fax: +64-7-838-4066\nUniversity of Waikato            electric mail: ldo@waikato.ac.nz\nHamilton, New Zealand    37^ 47' 26\" S, 175^ 19' 7\" E, GMT+12:00\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9048, "properties": {"category": "comp.windows.x", "text": "From: rao@cse.uta.edu (Rao Venkatesh Simha)\nSubject: xrn , xarchie for HP's\nNntp-Posting-Host: cse.uta.edu\nOrganization: Computer Science Engineering at the University of Texas at Arlington\nLines: 10\n\n\n\tHi,\n\tI need xrn and xarchie for the HP's (9000/730, version 8 OS), either in\nthe source form or, (preferably) in executable form. Please suggest\nwhere I can find this, \n\tSend e-mail to: rao@cse.uta.edu\nThanks in advance,\nRao.\n-- \nSSC\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9049, "properties": {"category": "talk.religion.misc", "text": "From: bskendig@netcom.com (Brian Kendig)\nSubject: Re: Is it good that Jesus died?\nOrganization: Starfleet Headquarters: San Francisco\nLines: 203\n\nbrian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615) writes:\n>bskendig@netcom.com (Brian Kendig) writes:\n>\n>>And I maintain:\n>>\n>>Some people do not want to enter into the light and the knowledge that\n>>they alone are their own masters, because they fear it; they are too\n>>afraid of having to face the world on their own terms.  ...\n>\n>Are you your own master?  Do you have any habits that you cannot break?\n\nIf I have a habit that I really want to break, and I am willing to\nmake whatever sacrifice I need to make to break it, then I do so.\nThere have been bad habits of mine that I've decided to put forth the\neffort to break, and I've done so; there have been other bad habits\nthat I've decided are not worth the effort to break.  It's my choice,\neither way.\n\nI am my own master.  I choose what I want to do.  I weigh the benefits\nof my actions against their consequences, and I use my experience to\nhelp me deal with the unexpected, which in turn make me more experienced.\n\nI don't always succeed, but I never fail, either -- I learn.\n\nDo *you* have any habits you can't break?  Why not?\n\n>For one, you seem unable to master your lack of desire to understand\n>even the slightest concept of the Bible.\n\nI have arrived at my own understanding of Christianity, just as you've\nprobably arrived at your own understanding of Islam that is most\nlikely very different from the way a Moslem thinks of his religion.\nAre you \"unable to master your lack of desire to understand even the\nslightest concept of the Quran\"?  If that's different, then how is it\ndifferent from what you accuse me of?  Can I accuse you of having no\ndesire to understand even the slightest concept of atheism?\n\n>How about sexual sins?  Gotta any of those secret desires\n>in your head that you harbor but can get control of?   Do you dehumanize\n>women when they walk past you?  Do you degrade them to a sex object in\n>your head?\n\nOf COURSE not.  That's disgusting.  For centuries, religions have been\ndiscriminating on sex and treating women as second-class humans;\nthat's one of the reasons I renounced my Christianity.\n\n>Do you insult\n>people unknowingly, then regret it later.  Yet do it again the next\n>time opportunity presents itself?\n\nNo.  I don't insult people.  Period.  It's not in my nature, and it's\nnot something that I want to do, either.\n\n>Are you truly the master of yourself?\n\nNot yet -- but my life is the ground I use to practice on.  The fun is\nin the getting there!\n\n>I have admitted that I am not the master of my thought life at all times.\n>That I sometimes say things I do want to say, and then repeat my mistake\n>unwantingly.  I have admitted to myself that I cannot control every aspect\n>of my being.  There are times I know I shouldn't say something, but\n>then say it anyway.  There are times I simply forget a lesson.\n>I, in fact, am not my own master.\n\nWe don't start out perfect; we've got to strive to be something\nbetter.  I know my shortcomings, and I know my strengths, and I live\nmy life according to the decisions I make, and I am content to abide\nwith the consequences of my decisions as easily as I'll accept the\npraise for them.  There have been times in my life when I've made\nmistakes, yes; I try to never make the same mistake twice.\n\n>I need help.  Jesus promised me\n>this help.  And I took him up on his offer.  I have willfully let\n>Jesus be my master because Jesus knows what is better for me than\n>I myself do.\n\nI regard Christ as a myth.  I feel that there are far too many people\noffering far too many interpretations of what he supposedly said and\ndid.  The only person who can really judge me is *me*.  I choose the\nroads I travel, and I decide whether or not I want to reach the end of\nany given road or turn back -- and as long as I don't *always* turn\nback, there's no shame in it.  When I need help, I seek out my friends.\n\n>>Do you see my point?  I think you're the one under the rock, and I'm\n>>getting a great tan out here in the sunlight.  My life has improved\n>>immesurably since I abandoned theism -- come and join me!  It will be\n>>a difficult trip at first, until you build up your muscles for the\n>>long hike, but it's well worth it!\n>\n>Then I guess ignorance is bliss for you.  Because Brian, you enjoy\n>not having a clue about the Bible.   \n\nAnd you don't have a clue about what I'm saying, either.  Open your\neyes and SEE; open your ears and LISTEN.  I'm not just spouting off\nempty words.  This is my LIFE, this is what gives me MEANING.\n\n>>Don't you see?  I'm not going to accept ANYTHING that I can't witness\n>>with my own eyes or experience with my own senses, especially not\n>>something as mega-powerful as what you're trying to get me to accept.\n>>Surely if you believe in it this strongly, you must have a good\n>>*reason* to, don't you?\n>\n>Can you witness motherly love with your senses?  How does caring and\n>concern for you register with your senses?  If nothing registers\n>to you other than what you can see, taste, smell, hear and touch,\n>then you better become a Vulcan and fast.  You better get rid\n>of your emotions.\n\nHuh?  You're going WAY off the track here.\n\nI say my mother loves me.  How do I know, you ask?  I can point to\ndefinite things she's done for me, and I can even just bring her to\nyou so you can ask her, face-to-face.\n\nYou say your deity loves you.  How do you know, I ask?  You can't even\nconvince me that it exists!\n\n>My God says that you will not CEASE EXISTING.  You have\n>life forever.  You can choose to either live it in hell in eternal\n>torment where there is no communication whatsoever, or can choose to \n>live it in paradise with God.  That is what my God says.  And that\n>was the issue.  Your made-up theism is what it is--made up.  It's\n>wishful thinking.\n\nIf any god dangles 'heaven' before me like a carrot, promising untold\npleasures to me if I'll only suspend my disbelief and ignore my\nrationality for just this once, then I would choose 'hell'.  I can\n*not* lie to myself to placate another being, no matter how powerful\nit is.\n\nNote also that there are several gods trying to lure me this way:\nYahweh, Allah, Zeus, Odin, Ra...  Please give me a solid reason to\nchoose one of them over the others.\n\n[ description of Kendigism deleted -- hee hee! ]\n\n>Why would you want to live a good life?\n>To you, you die and that's it.  Don't contradict yourself.  You have\n>no reason to live a good life.  It doesn't do you any good in the\n>end.  Your life doesn't do anybody else any good  either because\n>everyone dies anyway.  So you have no reason to lead a good life. Leading\n>a good life is meaningless.   Why do you do such a meaningless thing?\n\nThat paragraph demonstrates that you haven't listened to a single word\nI've said.\n\nHave you ever gone to an amusement park?  Why?  I mean, after a few\nhours, it closes, and nothing's different except that you're a few\ndollars lighter.  Going to the amusement park doesn't do you any good\nat all.  Why do you do such a meaningless thing?\n\nThe answer is that you think it's fun.  You play the skee-ball over\nand over because you'd like to get better at it, even though you're\nnot going to win anything better than a stuffed animal even if you\nblow ten dollars on it.  You ride the roller coaster because it's an\nthrilling experience, even though (because?) it scares the dickens out\nof you.\n\nIn the same way, I think life is fun.  And I don't intend to leave the\namusement park of life until they close down for the night!  :-D\n\n>>I'm sorry, I don't feel that sacrificing Jesus was something any god\n>>I'd worship would do, unless the sacrifice was only temporary, in\n>>which case it's not really all that important.\n>\n>Has the resurrection sunk in?  Jesus is alive.  Jesus is NOT dead.\n\nSo you (and your holy book) say.  By the same token, therefore, Santa\nClaus delivers toys every xmas.  Don't you see?  I have NO REASON to\nbelieve that what you say is true.  Please give me some reason that I\ncan't similarly apply to Santa Claus.\n\n>>Forget the Bible for a minute.  Forget quoting verses, forget about\n>>who said what about this or that.  *Show me.*  Picture just you and me\n>>and a wide open hilltop, and convince me that you're right.\n>\n>Forget that I am a person.  Forget that I know how to type.  Forget\n>that I know how to put a sentence together.  Forget that I know\n>how to send e-mail.   Forget my existence.  Proove to me that I\n>exist.  .\n\nI can't do it, because your existence means nothing more to me than\njust your communications over the net.  You have no more bearing on\nnor importance in my life than that; remove it, and you will cease to\nbe significant to me.\n\nAre you thereby inferring that your deity is nothing more than a\ncollection of verses in a book, and cannot be supported without\ninvoking them?\n\nOr do you mean that the existence of your deity (and, in fact, any\nother deity that can be written about) is as real as your own\nexistence?\n\nWhy do you believe what you believe?\n\n-- \n_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n_/_/                            n'etre fait comme aucun de ceux qui existent.\n  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n /    is that it ends.                                           -- Rousseau\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9050, "properties": {"category": "talk.politics.misc", "text": "From: ckincy@cs.umr.edu (Charles Kincy)\nSubject: Re: Clinton's immunization program\nNntp-Posting-Host: next4.cs.umr.edu\nOrganization: University of Missouri - Rolla, Rolla, MO\nLines: 18\n\nIn article <1993Apr16.030703.23005@magnus.acs.ohio-state.edu> rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) writes:\n>Excuse me for sticking my nose in, but any parent/parents who do not allready \n>immunize their children (especially if it is already free), don't deserve one \n>frigging dime of tax money for health care for themselves, or public health \n>care service.\n>\n>(I know the immunization program and the coming national health care issue are \n>slightly seperate issues, but anybody who wouldn't help their kids, don't \n>deserve my tax help).\n\nHmmmmm......what about their kids?\n\ncpk\n-- \nIt's been 80 days.  Do you know where your wallet is?\n\nSlick Willy's already got his hand in my pocket.  I'm just afraid\nof what he might grab hold of.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9051, "properties": {"category": "talk.politics.mideast", "text": "From: hm@cs.brown.edu (Harry Mamaysky)\nSubject: Heil Hernlem \nIn-Reply-To: hernlem@chess.ncsu.edu's message of Wed, 14 Apr 1993 12:58:13 GMT\nOrganization: Dept. of Computer Science, Brown University\nLines: 24\n\nIn article <1993Apr14.125813.21737@ncsu.edu> hernlem@chess.ncsu.edu (Brad Hernlem) writes:\n\n   Lebanese resistance forces detonated a bomb under an Israeli occupation\n   patrol in Lebanese territory two days ago. Three soldiers were killed and\n   two wounded. In \"retaliation\", Israeli and Israeli-backed forces wounded\n   8 civilians by bombarding several Lebanese villages. Ironically, the Israeli\n   government justifies its occupation in Lebanon by claiming that it is \n   necessary to prevent such bombardments of Israeli villages!!\n\n   Congratulations to the brave men of the Lebanese resistance! With every\n   Israeli son that you place in the grave you are underlining the moral\n   bankruptcy of Israel's occupation and drawing attention to the Israeli\n   government's policy of reckless disregard for civilian life.\n\n   Brad Hernlem (hernlem@chess.ncsu.EDU)\n\nVery nice. Three people are murdered, and Bradly is overjoyed. When I\nhear about deaths in the middle east, be it Jewish or Arab deaths, I\nfeel sadness, and only hope that soon this all stops. Apparently, my\nview point is not acceptable to people like you Bradly.\n\nHernlem, you disgust me.\n\nHarry.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9052, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dil.admin@mhs.unc.edu (Dave Laudicina)\nSubject: More Diamond SS 24X\nNntp-Posting-Host: dil.adp.unc.edu\nOrganization: UNC Office of Information Technology\nLines: 11\n\nHas anyone experienced a faint shadow at all resolutions using this\ncard. Is only in Windows. I have replaced card and am waiting on \nlatest drivers. Also have experienced General Protection Fault Errors\nin WSPDPSF.DRV on Winword Tools Option menu and in WINFAX setup.\nI had a ATI Ultra but was getting Genral Protection Fault errors\nin an SPSS application. These card manufactures must have terrible\nquality control to let products on the market with so many bugs.\nWhat a hassle. Running on Gateway 2000 DX2/50.\nThx Dave L\n\n \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9053, "properties": {"category": "comp.windows.x", "text": "From: skip@eco.twg.com (Skip Koppenhaver)\nSubject: Pulldown menu periodically hangs application on OpenWindows 3.0\nNntp-Posting-Host: eco.twg.com\nReply-To: skip@eco.twg.com\nOrganization: The Wollongong Group (East Coast Operations)\nLines: 47\n\n\nHas anyone found a fix for the following problem?\n\nClient Software:\tSunOs 4.1.1, X11R5\nServer Hardware:\tSun IPC\nServer Software:\tSunOs 4.1.1, Open Windows 3.0 (w/ patch 100444-37)\n\nA Motif 1.2.2 application will periodically hang when run against the\nOpenWindows 3.0 server (xnews). The pulldown is displayed but then no\nbutton actions have any effect. Sometimes pressing <Return> will\nunstick the application but not usually. It looks like the pulldown is\ngrabbing the focus and never letting go. Other windows on the display\ncontinue to get updated so the server isn't hanging. If I log in from\nanother terminal and kill the Motif application then everything gets\nback to normal. The same application when run against other X servers\n(including MIT X11R5 Xsun, DecWindows, Tektronix X terminal) has no\nproblems. This is obviously a OpenWindows problem but I need a\nwork-around since most of our customers are OpenWindows users.\n\nI have tried the following things:\n\n    1. Installing the latest version of the OpenWindows server patch\n       (100444-37).\n\n    2. Using mwm (version 1.2.2) instead of olwm.\n\n    3. Applying the patch specified in the Motif FAQ (question 110).\n       This had the effect of disabling the point-and-click method of\n       menu interaction (as opposed to the click-and-drag method), and\n       screwing up the menu mnemonics keys. It did seem to help, but I\n       was still able to get the application to hang.\n\nRepeat By:\n\nThis is an intermittent problem so you'll have to try several times.\n\nClick and release on a menu heading (pulldown menu will pop up)\n\nClick and release on a menu item\n\nRepeat until application hangs\n\n\nAny help would be appreciated. Thanks in advance.\n--\nSkip Koppenhaver\nskip@eco.twg.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9054, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jmk13@po.cwru.edu (Joseph M. Kasanic)\nSubject: Re: 14\" monitors\nArticle-I.D.: usenet.1pt3oe$li6\nDistribution: world\nOrganization: Case School of Engineering\nLines: 16\nNNTP-Posting-Host: b63545.student.cwru.edu\nX-UserAgent: Nuntius v1.1.1d20\nX-XXMessage-ID: <A7E78A881501F839@b63545.student.cwru.edu>\nX-XXDate: Tue, 6 Apr 93 03:29:12 GMT\n\nIn article <1pco6eINN99i@corona.hsc.usc.edu> Daniel S. Chen,\ndschen@corona.hsc.usc.edu writes:\n>\tI'm interested in getting a 14\" color monitor for my new LCIII.\n>Unfortunately, I'm really quite confused with the Sony monitors.\n>Could someone please compare the Sony 1320, 1304 and the Apple 14\"? \n>\t\t\t\t\tThanks. Dan\n\nJust thought I would mention that Sony no longer manufactures the CPD-\n1304 because of several manufacturing flaws.  The new model is now the\n1430, which just like Apple's new Sony Trinitrom CLAIMS to be 14 inches.\nI'm not sure of the details on the defects, but I work at our schools\nbookstore\nand can tell you that nearly half of them were returned with some kind of \ndefect or another.\n\nJust my two cents worth.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.428+0000", "event": "documents", "entityId": 9055, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: When are two people married\nLines: 128\n\nLISTOWNER: I have sent this to Mr Anderson privately. Post it only\nif you think it of general interest.\n\nHere is a copy of something I wrote for another list. You may\nfind it relevant.\n\nA listmember asks:\n\n > What makes common-law marriages wrong?\n\nA common-law marriage is not necessarily wrong in itself. There is\nnothing in the Bible (Old or New Testament) about getting married by\na preacher, or by a priest (Jewish or Christian). And in fact Jewish\npriests have never had any connection with weddings.\n\nThere is a common notion that the marriage is performed by the\nclergyman. In fact, the traditional Christian view (at least in the\nWest) is that the bride and groom are the ministers of the marriage,\nand that the clergyman is there only as a witness.\n\nHOWEVER!\n\nThe essential ingredient of a marriage is mutual commitment. Two\npersons are considered to be married if and only if they have bound\nthemselves by mutual promises to live together as husband and wife,\nforsaking all others, till death do them part.\n\n      The reason why those who have reason to be concerned about who\nis married to whom have always insisted on some kind of public\nceremony is in order that society, and the couple themselves, may be\nclear about whether a commitment has been made.\n\nSuppose that we do away with the public ceremony, the standard vows,\netc. Instead, we have a man and a woman settling down to live\ntogether.\n      After a year or so, the man says to the woman: Hey, honey, it\nwas great while it lasted, but I think it's time to move on.\n      She says: What are you talking about?\n      He says: I am leaving you and looking for someone prettier and\nyounger.\n      She says: But you can't. We are married!\n      He says: What are you talking about? We never got married.\n      She says: I remember distinctly what you said to me the night\nwe first made love. You said: \"My love for you is as deep as the\nocean, as eternal as the stars. As long as I live, I am yours,\nutterly and completely. When I lie on my deathbed, my last feeble\nbreath will utter your name. My...\"\n      He says: Oh that! That was just rhetoric. Just poetry. When a\nman is in a romantic mood, he is bound to say all kinds of silly\nthings like that. You mustn't take them literally.\n\nAnd that is why you have an insistence on a formal ceremony that is\na matter of public record.\n      The Church insists on it, because it is her duty (among other\nthings) to give moral advice, and you cannot give a man moral advice\nabout his relations with a woman if you have no idea who is married\nto whom, if anybody, and vice versa.\n      The State insists on it, since the state has a concern with\nproperty rights, with child care and support, and therefore needs to\nknow who has made what commitments to whom.\n      Prospective fathers-in-law insist on it, because they don't\nwant their daughters seduced and abandoned.\n      Prospective spouses insist on it, because they want to make\nsure they know whether what they are hearing is a real commitment,\nor just \"poetry.\"\n      And persons making vows themselves insist on making them\nformally and publicly, in order that they may be clear in their own\nminds about what it is that they are doing, and may know themselves\nthat this is not just rhetoric. This is the real thing.\n\n      Hence the insistence on a formal public explicit avowal of the\nmarriage commitment.  The Church goes further and insists that, when\nChristians marry, a clergyman shall be present at the wedding and\nrecord the vows on behalf of the Church, not because it is\nimpossible to have a valid wedding without a clergyman, but in order\nto make sure that the couple understand what the Christian teaching\nabout marriage is, and that they are in fact promising to be married\nin a Christian sense. The Church also prefers a standard marriage\nvow, and is wary of letting couples Write their own vows, for much\nthe same reason that lawyers prefer standard terminology when they\ndraw up a will or a contract. Certain language has been repeatedly\nused in wills, and one can be sure how the courts will interpret it.\nTry to say the same thing in your own words, and you may find that\nthe probate judge's interpretation of them is not at all what you\nintended.  Similarly, the Church prefers to avoid endless debates\nabout whether \"You are my main squeeze\" and \"I am here for the long\nhaul\" do in fact cover the same territory as \"forsaking all others\"\nand \"till death do us part.\"\n\n      This topic has come up on the list before. (Is there any topic\nthat hasn't?) One listmember was asking, \"If a couple love each\nother and are living together, isn't that marriage in the eyes of\nGod?\" Eventually someone asked, \"In that case, what is their status\nif they break up? Is that the moral equivalent of getting a divorce?\nAre they in a relationship that God forbids either of them to walk\nout on? \" The original questioner said: \"Good grief, I never thought\nof that!\" In fact, there are reasonable grounds for suspecting that\nsomeone who says, \"We don't need a piece of paper or a ceremony in\nfront of a judge or a preacher in order to show that we love each\nother,\" is trying to have it both ways -- to have the advantages of\nmarriage plus the option of changing his mind with a minimum of\nbother.\n\nAt this point someone may say, \"None of this applies to me and my\nmate. We are quite clear on the fact that we have assumed a lifelong\ncommitment, 'for better or worse, forsaking all others, till death\nus do part.' So in our case, no ceremony is needed.\"\n     To this my reply would be: The reason for requiring a driver's\nlicense is to keep dangerous drivers off the road.  What is wrong in\nitself is not the existence of unlicensed drivers, but the existence\nof dangerous drivers. However, testing and licensing drivers is an\nobvious and reasonable means of pursuing the goal of reducing the\nnumber of dangerous drivers on the road. Therefore the State rightly\nmakes and enforces such laws, and you the citizen have a positive\nmoral obligation to refrain from driving without a license no matter\nhow much of a hotshot behind the wheel you think you are.\n\nBack to the original question. We have a listmember who knows a\ncouple who have been living together for around 20 years. He asks:\nAt what point did they stop fornicating and start being married? I\nanswer: at the point, if any, where they both definitely and\nexplicitly accepted an obligation to be faithful to each other, for\nbetter or worse, as long as they both lived. If they have accepted\nsuch an obligation, what are their reasons for not being willing to\ndeclare it in front of, say, a justice of the peace?\n\n Yours,\n James Kiefer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9056, "properties": {"category": "comp.graphics", "text": "From: KINDER@nervm.nerdc.ufl.edu (JIM COBB)\nSubject: ET 4000 /W32 VL-Bus Cards\nOrganization: University of Florida, NERDC\nLines: 3\nNNTP-Posting-Host: nervm.nerdc.ufl.edu\nX-Newsreader: NNR/VM S_1.3.2\n\nDoes anyone know of a VL-Bus video card based on the ET4000 /W32 card?\nIf so: how much will it cost, where can I get one, does it come with more\nthan 1MB of ram, and what is the windows performance like?\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9057, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ubs@carson.u.washington.edu (University Bookstore)\nSubject: Re: Why does Apple give us a confusing message?\nArticle-I.D.: shelley.1qs4fjINN74f\nOrganization: University of Washington, Seattle\nLines: 37\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <C5nGII.BGx@news2.cis.umn.edu> bunt0003@student.tc.umn.edu (Monthian Buntan-1) writes:\n>\n>Hi there,\n>\n>Does anyone know why Apple has an ambiguous message for\n>C650 regarding fpu?  In all Mac price lists I've seen, every C650\n>has the message \"fpu: optional\".  I know from what we've discussed in this\n>newsgroup that all C650 have the fpu built in except the 4/80\n>configuration.  Why would they be so unclear about this issue in their\n>price list?\n>I'm planning to buy the C650 8/230/cd pretty soon, but I'm now getting\n>confused with whether it comes with fpu or not.\n>Why say \"optional\" if it's built in?\n>Please, anybody help me understand this game.\n>\n>Regards,\n>\n>Thian.\n>\nIf you get the Centris 650 with CD configuration, you are getting a Mac with\na 68RC040 processor that has built-in math coprocessor support.  My \nunderstanding is that the \"optional fpu\" refers to your option of purchasing\nthe Centris 650 4/80 without FPU OR one of the other configurations WITH FPU.\n\nApple does not offer an upgrade from the non-FPU system to become an FPU\nsystem.  And, it is unclear whether the '040 processor on the non-FPU system\n(a 68LC040) can be replaced with a 68RC040 supplied by another vendor.\nApple did send a memo out at one point sating that the Centris 610, which ONLY\ncomes with a non-FPU 68LC040 processor CANNOT be upgraded to support an FPU -\nthe pin configurations of the two chips apparently do not match so you cannot\nswap one for another (again, according to Apple's memo).\n\nHope that helps.\n\nKevin Lohman\nUniversity Book Store, University of Washington\nBuyer for the UW Apple Computers for Education Program\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9058, "properties": {"category": "comp.sys.mac.hardware", "text": "From: geoffb@coos.dartmouth.edu (Thumper)\nSubject: Re: New Apple Ergo-Mouse\nReply-To: geoffb@Dartmouth.EDU\nOrganization: Amos Tuck School\nLines: 16\nDisclaimer: I don't represent Dartmouth and Dartmouth doesn't represent me.\n\nIn <5APR199312491648@utkvx.utk.edu> nwcs@utkvx.utk.edu (Schizophrenia means never being alone) writes:\n\n>Does anyone know how to open up the Apple Ergo-Mouse (ADB Mouse II)?  Mine\n>lives near a cat (true, really...) and picks up her fur.  From what I can tell,\n>it looks like Apple welded it shut.  \n\n\nBy rotating the plate around the mouse ball counter-clockwise you can open\nthe mouse and clean it. It isn't as obvious as the Desktop Bus Mouse I but\nit opens quite easily once you see what has to be done.\n\n-Geoff\n--\ngeoffb@Dartmouth.EDU - Computing Support Consultant, Tuck School of Business\n\n                       If you don't vote... you don't count.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9059, "properties": {"category": "sci.crypt", "text": "From: karn@servo.qualcomm.com (Phil Karn)\nSubject: The battle is joined\nNntp-Posting-Host: servo.qualcomm.com\nOrganization: Qualcomm, Inc\nLines: 290\n\nIt looks like Dorothy Denning's wrong-headed ideas have gotten to the\nAdministration even sooner than we feared. It's time to make sure they\nhear the other side of the story, and hear it loudly!\n\nPhil\n\n\n\n------- Forwarded Message\n\nSubject: text of White House announcement and Q&As on clipper chip encryption\n\nNote:  This file will also be available via anonymous file\ntransfer from csrc.ncsl.nist.gov in directory /pub/nistnews and\nvia the NIST Computer Security BBS at 301-948-5717.\n     ---------------------------------------------------\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n\n_________________________________________________________________\n\nFor Immediate Release                           April 16, 1993\n\n\n                STATEMENT BY THE PRESS SECRETARY\n\n\nThe President today announced a new initiative that will bring\nthe Federal Government together with industry in a voluntary\nprogram to improve the security and privacy of telephone\ncommunications while meeting the legitimate needs of law\nenforcement.\n\nThe initiative will involve the creation of new products to\naccelerate the development and use of advanced and secure\ntelecommunications networks and wireless communications links.\n\nFor too long there has been little or no dialogue between our\nprivate sector and the law enforcement community to resolve the\ntension between economic vitality and the real challenges of\nprotecting Americans.  Rather than use technology to accommodate\nthe sometimes competing interests of economic growth, privacy and\nlaw enforcement, previous policies have pitted government against\nindustry and the rights of privacy against law enforcement.\n\nSophisticated encryption technology has been used for years to\nprotect electronic funds transfer.  It is now being used to\nprotect electronic mail and computer files.  While encryption\ntechnology can help Americans protect business secrets and the\nunauthorized release of personal information, it also can be used\nby terrorists, drug dealers, and other criminals.\n\nA state-of-the-art microcircuit called the \"Clipper Chip\" has\nbeen developed by government engineers.  The chip represents a\nnew approach to encryption technology.  It can be used in new,\nrelatively inexpensive encryption devices that can be attached to\nan ordinary telephone.  It scrambles telephone communications\nusing an encryption algorithm that is more powerful than many in\ncommercial use today.\n\nThis new technology will help companies protect proprietary\ninformation, protect the privacy of personal phone conversations\nand prevent unauthorized release of data transmitted\nelectronically.  At the same time this technology preserves the\nability of federal, state and local law enforcement agencies to\nintercept lawfully the phone conversations of criminals. \n\nA \"key-escrow\" system will be established to ensure that the\n\"Clipper Chip\" is used to protect the privacy of law-abiding\nAmericans.  Each device containing the chip will have two unique\n\n\n                                2\n\n\n\"keys,\" numbers that will be needed by authorized government\nagencies to decode messages encoded by the device.  When the\ndevice is manufactured, the two keys will be deposited separately\nin two \"key-escrow\" data bases that will be established by the\nAttorney General.  Access to these keys will be limited to\ngovernment officials with legal authorization to conduct a\nwiretap.\n\nThe \"Clipper Chip\" technology provides law enforcement with no\nnew authorities to access the content of the private\nconversations of Americans.\n\nTo demonstrate the effectiveness of this new technology, the\nAttorney General will soon purchase several thousand of the new\ndevices.  In addition, respected experts from outside the\ngovernment will be offered access to the confidential details of\nthe algorithm to assess its capabilities and publicly report\ntheir findings.\n\nThe chip is an important step in addressing the problem of\nencryption's dual-edge sword:  encryption helps to protect the\nprivacy of individuals and industry, but it also can shield\ncriminals and terrorists.  We need the \"Clipper Chip\" and other\napproaches that can both provide law-abiding citizens with access\nto the encryption they need and prevent criminals from using it\nto hide their illegal activities.  In order to assess technology\ntrends and explore new approaches (like the key-escrow system),\nthe President has directed government agencies to develop a\ncomprehensive policy on encryption that accommodates:\n\n     --   the privacy of our citizens, including the need to\n          employ voice or data encryption for business purposes;\n\n     --   the ability of authorized officials to access telephone\n          calls and data, under proper court or other legal\n          order, when necessary to protect our citizens;\n\n     --   the effective and timely use of the most modern\n          technology to build the National Information\n          Infrastructure needed to promote economic growth and\n          the competitiveness of American industry in the global\n          marketplace; and \n\n     --   the need of U.S. companies to manufacture and export\n          high technology products.\n\nThe President has directed early and frequent consultations with\naffected industries, the Congress and groups that advocate the\nprivacy rights of individuals as policy options are developed.\n\n\n\n                                3\n\nThe Administration is committed to working with the private\nsector to spur the development of a National Information\nInfrastructure which will use new telecommunications and computer\ntechnologies to give Americans unprecedented access to\ninformation.  This infrastructure of high-speed networks\n(\"information superhighways\") will transmit video, images, HDTV\nprogramming, and huge data files as easily as today's telephone\nsystem transmits voice.\n\nSince encryption technology will play an increasingly important\nrole in that infrastructure, the Federal Government must act\nquickly to develop consistent, comprehensive policies regarding\nits use.  The Administration is committed to policies that\nprotect all Americans' right to privacy while also protecting\nthem from those who break the law.\n\nFurther information is provided in an accompanying fact sheet. \nThe provisions of the President's directive to acquire the new\nencryption technology are also available.  \n\nFor additional details, call Mat Heyman, National Institute of\nStandards and Technology, (301) 975-2758.\n\n- - ---------------------------------\n\n\nQUESTIONS AND ANSWERS ABOUT THE CLINTON ADMINISTRATION'S\nTELECOMMUNICATIONS INITIATIVE\n\n\n\n\nQ:   Does this approach expand the authority of government\n     agencies to listen in on phone conversations?\n\nA:   No.  \"Clipper Chip\" technology provides law enforcement with\n     no new authorities to access the content of the private\n     conversations of Americans.\n\nQ:   Suppose a law enforcement agency is conducting a wiretap on\n     a drug smuggling ring and intercepts a conversation\n     encrypted using the device.  What would they have to do to\n     decipher the message?\n\nA:   They would have to obtain legal authorization, normally a\n     court order, to do the wiretap in the first place.  They\n     would then present documentation of this authorization to\n     the two entities responsible for safeguarding the keys and\n     obtain the keys for the device being used by the drug\n     smugglers.  The key is split into two parts, which are\n     stored separately in order to ensure the security of the key\n     escrow system.\n\nQ:   Who will run the key-escrow data banks?\n\nA:   The two key-escrow data banks will be run by two independent\n     entities.  At this point, the Department of Justice and the\n     Administration have yet to determine which agencies will\n     oversee the key-escrow data banks.\n\nQ:   How strong is the security in the device?  How can I be sure\n     how strong the security is?  \n\nA:   This system is more secure than many other voice encryption\n     systems readily available today.  While the algorithm will\n     remain classified to protect the security of the key escrow\n     system, we are willing to invite an independent panel of\n     cryptography experts to evaluate the algorithm to assure all\n     potential users that there are no unrecognized\n     vulnerabilities.\n\nQ:   Whose decision was it to propose this product?\n\nA:   The National Security Council, the Justice Department, the\n     Commerce Department, and other key agencies were involved in\n     this decision.  This approach has been endorsed by the\n     President, the Vice President, and appropriate Cabinet\n     officials.\n\nQ:   Who was consulted?  The Congress?  Industry?\n\nA:   We have on-going discussions with Congress and industry on\n     encryption issues, and expect those discussions to intensify\n     as we carry out our review of encryption policy.  We have\n     briefed members of Congress and industry leaders on the\n     decisions related to this initiative.\n\nQ:   Will the government provide the hardware to manufacturers?\n\nA:   The government designed and developed the key access\n     encryption microcircuits, but it is not providing the\n     microcircuits to product manufacturers.  Product\n     manufacturers can acquire the microcircuits from the chip\n     manufacturer that produces them.\n\nQ:   Who provides the \"Clipper Chip\"?\n\nA:   Mykotronx programs it at their facility in Torrance,\n     California, and will sell the chip to encryption device\n     manufacturers.  The programming function could be licensed\n     to other vendors in the future.\n\nQ:   How do I buy one of these encryption devices? \n\nA:   We expect several manufacturers to consider incorporating\n     the \"Clipper Chip\" into their devices.\n     \nQ:   If the Administration were unable to find a technological\n     solution like the one proposed, would the Administration be\n     willing to use legal remedies to restrict access to more\n     powerful encryption devices?\n\nA:   This is a fundamental policy question which will be\n     considered during the broad policy review.  The key escrow\n     mechanism will provide Americans with an encryption product\n     that is more secure, more convenient, and less expensive\n     than others readily available today, but it is just one\n     piece of what must be the comprehensive approach to\n     encryption technology, which the Administration is\n     developing.\n\n     The Administration is not saying, \"since encryption\n     threatens the public safety and effective law enforcement,\n     we will prohibit it outright\" (as some countries have\n     effectively done); nor is the U.S. saying that \"every\n     American, as a matter of right, is entitled to an\n     unbreakable commercial encryption product.\"  There is a\n     false \"tension\" created in the assessment that this issue is\n     an \"either-or\" proposition.  Rather, both concerns can be,\n     and in fact are, harmoniously balanced through a reasoned,\n     balanced approach such as is proposed with the \"Clipper\n     Chip\" and similar encryption techniques.\n\nQ:   What does this decision indicate about how the Clinton\n     Administration's policy toward encryption will differ from\n     that of the Bush Administration?  \n\nA:   It indicates that we understand the importance of encryption\n     technology in telecommunications and computing and are\n     committed to working with industry and public-interest\n     groups to find innovative ways to protect Americans'\n     privacy, help businesses to compete, and ensure that law\n     enforcement agencies have the tools they need to fight crime\n     and terrorism.\n\nQ:   Will the devices be exportable?  Will other devices that use\n     the government hardware?\n\nA:   Voice encryption devices are subject to export control\n     requirements.  Case-by-case review for each export is\n     required to ensure appropriate use of these devices.  The\n     same is true for other encryption devices.  One of the\n     attractions of this technology is the protection it can give\n     to U.S. companies operating at home and abroad.  With this\n     in mind, we expect export licenses will be granted on a\n     case-by-case basis for U.S. companies seeking to use these\n     devices to secure their own communications abroad.  We plan\n     to review the possibility of permitting wider exportability\n     of these products.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9060, "properties": {"category": "misc.forsale", "text": "From: holmertz@ike.navo.navy.mil (Steve Holmertz)\nSubject: Parametric EQ (Car)\nNntp-Posting-Host-[nntpd-23809]: ike.navo.navy.mil\nKeywords: EQ Audio Stereo\nOrganization: Naval Oceanographic Office\nLines: 16\n\nHiFonics \"Ceres\" 3-Band Parametric Equalizer\n\nSpecs:\t3-Bands: 1. 40-640Hz; 2. 100Hz-3KHz; 3. 500Hz-16KHz\n\tBoost/Cut: +/-20db\n\tTHD: Less than 0.02%\n\tSize(WxHxD): 190mmx53mmx120mm\n\nThis EQ has three variable bands as indicated above with\nvariable Q. It also has a subwoofer output with variable\ncutoff frequency. I originally paid $129 for the unit and\nused it for 3 months before selling the car. It is in\nexcellent condition with all the wiring and hardware intact \nand manual in original box. Asking price: $75\n\nholmertz@pops.navo.navy.mil \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9061, "properties": {"category": "sci.electronics", "text": "Subject: Re: Principle_of_the_Breathalyzer\nFrom: srgxnbs@grace.cri.nz\nOrganization: Industrial Research Ltd., New Zealand.\nNNTP-Posting-Host: grv.grace.cri.nz\nLines: 3\n\nIn NZ apparently things like aftershave are also giving positive\nreadings\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9062, "properties": {"category": "rec.motorcycles", "text": "From: pky@fmg.bt.co.uk (Pete Young)\nSubject: Re: For JOHS@dhhalden.no (3) - Last \nOrganization: British Telecom\nX-Newsreader: Tin 1.1 PL5\nLines: 23\n\nNick Pettefar (npet@bnr.ca) wrote:\n\n: Tsk, tsk, tsk.  Another newbie bites the dust, eh?  They'll learn.\n\nNewbie. Sorry to disappoint you, but as far as the Internet goes I was\nin Baghdad while you were still in your dads bag.\n\nMost of the people who made this group interesting 3 or 4 years ago\nare no longer around and I only have time to make a random sweep\nonce a week or so. Hence I missed most of this thread. \n\nBased on your previous postings, apparently devoid of humour, sarcasm,\nwit, or the apparent capacity to walk and chew gum at the same time, I\nassumed you were serious. Mea culpa.\n\nStill, it's nice to see that BNR are doing so well that they can afford\nto overpay some contractors to sit and read news all day.\n\n\n-- \n  ____________________________________________________________________\n  Pete Young        \t  pky@fmg.bt.co.uk        Phone +44 473 227151\n    \"Most people prefer entertaining nonsense to unexciting reality\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9063, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Menangitis question\nArticle-I.D.: pitt.19439\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 42\n\nIn article <C4nzn6.Mzx@crdnns.crd.ge.com> brooksby@brigham.NoSubdomain.NoDomain (Glen W Brooksby) writes:\n>This past weekend a friend of mine lost his 13 month old\n>daughter in a matter of hours to a form of menangitis.  The\n>person informing me called it 'Nicereal Meningicocis' (sp?).\n>In retrospect, the disease struck her probably sometime on \n>Friday evening and she passed away about 2:30pm on Saturday.\n>The symptoms seemed to be a rash that started small and\n>then began progressing rapidly. She began turning blue\n>eventually which was the tip-off that this was serious\n>but by that time it was too late (this is all second hand info.).\n>\n>My question is:\n>Is this an unusual form of Menangitis?  How is it transmitted?\n>How does it work (ie. how does it kill so quickly)?\n>\n\nNo, the neiseria meningococcus is one of the most common\nforms of meningitis.  It's the one that sometimes sweeps\nschools or boot camp.  It is contagious and kills by attacking\nthe covering of the brain, causing the blood vessels to thrombose\nand the brain to swell up.\n\nIt is very treatable if caught in time.  There isn't much time,\nhowever.  The rash is the tip off.  Infants are very susceptible\nto dying from bacterial meningitis.  Any infant with a fever who\nbecomes stiff or lethargic needs to be rushed to a hospital where\na spinal tap will show if they have meningitis.  Seizures can also\noccur.\n\n>Immediate family members were told to take some kind of medication\n>to prevent them from being carriers, yet they didn't have\n>any concerns about my wife and I coming to visit them.\n>\n\nIt can live in the throat of carriers.  Don't worry, you won't get \nit from them, especially if they took the medication.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9064, "properties": {"category": "sci.space", "text": "From: dennisn@ecs.comm.mot.com (Dennis Newkirk)\nSubject: Re: Proton/Centaur?\nOrganization: Motorola\nNntp-Posting-Host: 145.1.146.43\nLines: 37\n\nIn article <1993Apr20.211638.168730@zeus.calpoly.edu> jgreen@trumpet.calpoly.edu (James Thomas Green) writes:\n>Has anyone looked into the possiblity of a Proton/Centaur combo?\n>What would be the benefits and problems with such a combo (other\n>than the obvious instability in the XSSR now)?\n\nI haven't seen any speculation about it. But, the Salyut KB (Design Bureau) \nwas planning a new LH/LOX second stage for the Proton which would boost\npayload to LEO from about 21000 to 31500 kg. (Geostationary goes from\n2600 kg. (Gals launcher version) to 6000 kg.. This scheme was competing\nwith the Energia-M last year and I haven't heard which won, except now\nI recently read that the Central Specialized KB was working on the \nsuccessor to the Soyuz booster which must be the Energia-M. So the early\nresults are Energia-M won, but this is a guess, nothing is very clear in \nRussia. I'm sure if Salyut KB gets funds from someone they will continue \ntheir development. \n\nThe Centaur for the Altas is about 3 meters dia. and the Proton \nis 4 so that's a good fit for their existing upper stage, the Block-D\nwhich sets inside a shround just under 4 meters dia. I don't know about\nlaunch loads, etc.. but since the Centaur survives Titan launches which\nare probably worse than the Proton (those Titan SRB's probably shake things\nup pretty good) it seems feasible. EXCEPT, the Centaur is a very fragile\nthing and may require integration on the pad which is not available now.\nProtons are assembled and transported horizontially. Does anyone know \nhow much stress in the way of a payload a Centaur could support while\nbolted to a Proton horizontally and then taken down the rail road track\nand erected on the pad?  \n\nThey would also need LOX and LH facilities added to the Proton pads \n(unless the new Proton second stage is actually built), and of course\nany Centaur support systems and facilities, no doubt imported from the\nUS at great cost. These systems may viloate US law so there are political\nproblems to solve in addition to the instabilities in the CIS you mention. \n\nDennis Newkirk (dennisn@ecs.comm.mot.com)\nMotorola, Land Mobile Products Sector\nSchaumburg, IL\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9065, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 11\nNNTP-Posting-Host: punisher.caltech.edu\n\narromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n\n>>The motto originated in the Star-Spangled Banner.  Tell me that this has\n>>something to do with atheists.\n>The motto _on_coins_ originated as a McCarthyite smear which equated atheism\n>with Communism and called both unamerican.\n\nNo it didn't.  The motto has been on various coins since the Civil War.\nIt was just required to be on *all* currency in the 50's.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9066, "properties": {"category": "sci.med", "text": "From: yozzo@watson.ibm.com (Ralph Yozzo)\nSubject: Re: How to Diagnose Lyme... really\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: king-arthur.watson.ibm.com\nOrganization: IBM T.J. Watson Research Center\nLines: 29\n\nIn article <19688@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>\n>In article <1993Apr12.201056.20753@ns1.cc.lehigh.edu> mcg2@ns1.cc.lehigh.edu (Marc Gabriel) writes:\n>\n>>Now, I'm not saying that culturing is the best way to diagnose; it's very\n>>hard to culture Bb in most cases.  The point is that Dr. N has developed a\n>>\"feel\" for what is and what isn't LD.  This comes from years of experience.\n>>No serology can match that.  Unfortunately, some would call Dr. N a \"quack\"\n>>and accuse him of trying to make a quick buck.\n>>\n>Why do you think he would be called a quack?  The quacks don't do cultures.\n>They poo-poo doing more lab tests:  \"this is Lyme, believe me, I've\n>seen it many times.  The lab tests aren't accurate.  We'll treat it\n>now.\"  Also, is Dr. N's practice almost exclusively devoted to treating\n>Lyme patients?  I don't know *any* orthopedic surgeons who fit this\n>pattern.  They are usually GPs.\n>-- \n \nAre you arguing that the Lyme lab test is accurate?\nThe books that I've read say that in general the tests\nhave a 50-50 chance of being correct.  (The tests\nresult in a large number of both false positives and\nfalse negatives.  I am in the latter case.)\n\nWe could get those same odds by \"rolling the dice\".\n\n-- \n Ralph Yozzo (yozzo@watson.ibm.com)  \n From the beautiful and historic New York State Mid-Hudson Valley.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9067, "properties": {"category": "comp.graphics", "text": "From: kennu@mits.mdata.fi (Kenneth Falck)\nSubject: Re: CView answers\nOrganization: Microdata International Telecomm Service\nNntp-Posting-Host: mits.mdata.fi\nLines: 32\n\nIn article <C5Mv2n.49t@rahul.net> bryanw@rahul.net (Bryan Woodworth) writes:\n>In <1993Apr17.113223.12092@imag.fr> schaefer@imag.imag.fr (Arno Schaefer) writes:\n>\n>>Sorry, Bryan, this is not quite correct. Remember the VGALIB package that comes\n>>with Linux/SLS? It will switch to VGA 320x200x256 mode *without* Xwindows.\n>>So at least it is *possible* to write a GIF viewer under Linux. However I don't\n>>think that there exists a similar SVGA package, and viewing GIFs in 320x200 is\n>>not very nice.\n>\n>No, VGALIB?  Amazing..  I guess it was lost in all those subdirs :-)\n>Thanks for correcting me.  It doesn't sound very appealing though, only\n>320x200?  I'm glad it wasn't something major I missed.\n\nTommy Frandsen's VGAlib (which is probably what you're talking about)\nwill do the standard VGA modes, some tweaked modes and then the Tseng\nET4000 Super VGA modes. I have an ET4000 and I'm viewing GIF's at\n640x480/256 (I have a lousy/small monitor) with dpg-view on Linux. I\nthink I had to change some constants in the dpg-view sources to make it\nuse the ET4k modes.\n\nVGAlib's sources seem to be designed for easy addition of new Super VGA\nsupport; each mode is an array of register values and there's a program\nthat dumps an array declaration of this kind describing the current\nmode. Haven't tried it though...\n\n(Btw, my version of VGAlib is 1.2.)\n\n-- \nkennu@mits.mdata.fi\nTry Linux, a free UNIX by Linus Torvalds for 386+'s. Read comp.os.linux\n(or ask me by email if you like) for more information. You can run X11,\nTeX, GNU EMACS and much more on top of a nice POSIX environment.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9068, "properties": {"category": "comp.windows.x", "text": "From: singg@alf.uib.no (Kurt George Gjerde)\nSubject: Re: Drawing Lines (inverse/xor)\nOrganization: University of Bergen, Norway\nLines: 36\n\nIn article <1993Apr19.191531.15865@news.media.mit.edu>, dyoung@media.mit.edu (David Young) writes:\n\n  :\n  :\n\n|>    XSetFunction( myDisplay, gc, GXxor);\n|>    XSetForeground( myDisplay, gc, drawIndex);\n|> \n|> Then to draw I do:\n|> \n|>    XDrawLine( myDisplay, XtWindow( drawingArea1), gc, x1, y1, x2, y2);\n|>    XFlush( myDisplay);\n|> \n|> And when I'm all done, to return things to normal I do:\n|> \n|>    XSetFunction( myDisplay, gc, GXcopy);\n|> \n|> \n|> What I'd like to happen is for the lines I draw to be the inverse of\n|> whatever I'm drawing over.  Instead what happens is I get white lines.  If\n|> the lines are over a white background - nothing shows up.  If the lines are\n|> over a black area - nothing shows up!  It's very strange.  But the GXxor\n|> function seems right - since if I do a rubber-banding box, it erases and\n|> redraws itself correctly (ie. not disturbing the underlying image).\n|> \n|> Any suggestions what I'm doing wrong?\n|> \n|> david\n\n\n   Try change the GXxor to GXequiv.  I have to do this for programs that\n   are to run on NCD terminals (on Sun terminals I have to change it\n   back to GXxor)...\n\n\nKurt.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9069, "properties": {"category": "talk.politics.mideast", "text": "From: jar2e@faraday.clas.Virginia.EDU (Virginia's Gentleman)\nSubject: Re: Israeli Terrorism\nOrganization: University of Virginia\nLines: 12\n\nWould it be asking too much for you to DOCUMENT these allegations of\n\"Israel used to arrest and kill neutral reporters\"? I think you confuse\nIsrael with other nations of that geographical region to which the notion\nof a free, unmonitored by the government, press corps would be a joke.\n\nAs for the notion that Israel threatens the human rights of Palestinians by\nsealing off the Gaza strip, get real. When the Palestinian-on-Palestinian\ncivil war stops and all Palestinians can behave like mature human beings,\nIsrael will talk concessions on both sides for peace. Not before.\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9070, "properties": {"category": "sci.med", "text": "From: jhoskins@magnus.acs.ohio-state.edu (James M Hoskins)\nSubject: Cost of Roxonal\nNntp-Posting-Host: photon.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: na\nLines: 5\n\n\nDoes anyone know the approximate prescription cost\nof a 250 ml bottle of Roxonal (morphine)?\n\nThanks.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9071, "properties": {"category": "rec.sport.hockey", "text": "From: mep@phoenix.oulu.fi (Marko Poutiainen)\nSubject: Re: Finland/Sweden vs.NHL teams (WAS:Helsinki/Stockholm & NHL expansion)\nOrganization: University of Oulu, Finland\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 40\n\n: FINLAND:  \n: \n: D-Jyrki Lumme.......20\n: D-Teppo Numminen....20\n: D-Peter Ahola.......13\n: \nWell well, they don't like our defenders (mainly Lumme and Numminen)...\n\n: C-Jari Kurri........25\n: C-Christian Ruuttu..16\n: \nNow, do YOU think that Ruuttu is only worth 16 ? I think it might be 20.\n\n: R-Teemu Selanne.....27\n: \nCompared to Kurri, Selanne's points are too high, lets make it 25 or 26.\n\n\n: well in the Canada Cup and World Championships largely due to the efforts of\n: Markus Ketterer (the goalie), 3-4 or the players listed above and luck. There's\n: presumably a lot of decent players in Finland that wouldn't be superstars at\n: the highest level but still valuable role players, however. My guess would be\n: that the Finnish Canada Cup team would be a .500 team in the NHL.\n\nWow, now, it looks like you don't like our players? What about guys like:\nNieminen, Jutila, Riihijarvi, Varvio, Laukkanen, Makela, Keskinen and (even\nif he is aging) Ruotsalainen? The main difference between finnish and North-\nAmerican players is, that our players tend to be better in the larger rink.\nThe Canadian defenders are usually slower that defenders in Europe. \nAnd I think that there was more in our success than Ketterer and luck (though\nthey helped). I think that the main reason was, that the team worked well\ntogether.\n--\n***********************************************************************\n* 'Howl howl gargle howl gargle howl howl howl gargle howl gargle howl* \n*  howl gargle gargle howl gargle gargle gargle howl slurrp uuuurgh'  *\n*                                       -Prostetnic Vogon Jeltz       *\n***********************************************************************\n\t-Marko Poutiainen\n\t mep@phoenix.oulu.fi\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9072, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 14/14\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 449\n\n\n\n------------ Part 14 of 14 ------------\nM<1D9&;\"P4U/M[>V+BXN+-#0T-#0TQ33%Q6=G9V=G#P\\/#P\\/9V?%Q<7%Q30T\nM-#0T-#0TBXOM[>WM4U.PL+\"P&1D9&1D9&1D9&1D9&1D9&1D9&1D9<7%Q<7$9\nM&7%Q<7%Q<=+2TCT]/9F9F0,#7EY>N[N[*BHJ>GIZW]_?W]_?W]]'1T='I:6E\nMI4='I:6E\"PL+\"V9FQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<3$\nMQ&9F9F9F\"PL+\"PL+I:6EI:6EI4='1T='1T='W]_?>GIZ*BJ[N[N[NUY>`P.9\nMF3W2<1D9&;\"P4U/M[8N+-#0T-#0T-#0T-#0T-#0T-,7%Q<7%9V=G9V=G9P\\/\nM#TQ,3$Q,3(F)B8F)B8F)B8F)B8F)B8F)B8F)B4Q,3$Q,3$Q,3`\\/9\\7%Q<4T\nM-(N+[;`9<=(]F0->NRIZWT='I0MF9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ&9F\"PL+I:5'1T??WWK?\nMW]_?>GIZ*KM>7@,#F3T]TM+2/3T]/3T]/3V9F0,#`UY>7@,#`YF9F9F9F9F9\nMF9D#NRHJ>M_?I0MF,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',<3$,3$Q,3$Q,3$Q,3$QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX<Q,3$Q,3$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@NE1T??\nMWWHJ*KN[7EX#F9D]TG%Q<7$9L+\"P4U-3[>WMBXN+-#0T-#0T-#0TQ<7%9V</\nM#P\\/#P]G9V=G9V?%9V?%Q<7%Q30T-(N+B^WM[5-34[\"P&1FPL+\"PL!D9&1D9\nM&;\"P&1D9&1D9&1D9&1D9&1D9&1EQ<=+2/3V9F9F9`P,#`P,#7EY>N[LJ*GIZ\nM>GIZ>GIZ>GIZ>GIZ>M_?W]_?W]]'1Z6E\"PMF9L3$,3&'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>',3$Q,3$QQ,3$Q&9F9F9F9F8+\"PL+\"PL+\"Z6EI:5'1T??WWHJ\nM*KN[NUY>`P,#`P,#F3W2<1D9L%-34^WM[8N+-#3%Q6=G9V=G9V=G9V=G9V=G\nM9V</#P\\/#TQ,3$Q,3$Q,3$Q,3(F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)\nM3$Q,3$Q,3$Q,#P]G9V?%Q30TBXM3L!EQTCV9`[LJ>M]'I:4+\"V;$Q,0Q,3&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<Q,<3$9@L+I:6E1T??WWK?W]_?>GHJN[M>7@,#F9D]/3T]/9F9/9F9F9F9\nM`P->7EY>7EX#F9F9F9F9`P,#7KN[*GK?1T>E9L0QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,0Q,3$Q,3$Q,3$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',3'$9F8+I4='WWIZ*KN[7EX#`P.9/=+2<7$9&;\"PL+\"P4U-3[>WM[8LT\nM-#0TBXN+-#0T-,7%9V=G9V=G9V=G9V=G9V=G9V=G9V?%Q<4T-(N+BXOM[5-3\nML+\"PL+\"PL+\"PL+\"PL+\"PL+\"PL+\"P&1D9L+\"P&1D9&1D9<7%QTM+2TCT]/3T]\nMF9F9F9F9`P,#7KN[NRHJ*BHJ*BHJ*BJ[N[N[NRHJ*BHJ*GIZW]]'I0L+9L3$\nMQ,3$Q#$Q,3$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>',3$QQ,3$Q,3$Q,1F9F9F\nM9F8+\"PL+\"Z6E1]]Z>BJ[NUX#`YF9F9D]/=)Q<1D9L%-3[8N+BS0T-,7%9V=G\nM#P\\/3`\\/#P],3$Q,3$Q,3$Q,3$Q,3$Q,3$R)B8F)B8F)B8F)B8F)R<G)R<G)\nMR<G)R<G)R<G)R8F)B8F)B8F)B8E,3$Q,3`\\/#V=G9\\7%Q32+[5.P&1G2/0->\nM7KLJ>M_?1T>EI0MFQ,3$,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q&9F9@L+I4='W]_?W]]Z>BJ[N[N[\nM7EX#`P.9F9F9`P.9F9D#`P,#`UY>7KN[7EX#`YD#`P,#`UY>NRIZWT>EI0O$\nM,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q\nM,<3$Q#'$Q,3$,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3$QAS&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS'$Q&8+I4??WWIZ*KN[7EX#`P.9F3T]TG%Q&1D9\nM&1D9L+!34U-34U/MBXLTBXN+BXN+BS0TQ<7%Q<7%Q<7%9V=G9V=G9V=G9V=G\nM9V?%Q30T-#2+B^WM[5-34U-34U-34[\"PL+\"PL+\"P4U.PL+\"PL+\"PL+\"PL+\"P\nML!D9<7%Q<7%Q<7%QTM+2TM+2TCT]F9D#`UY>7EY>7EY>7EX#`P->7@,#7EY>\nM7KN[NRHJ>M_?1T>E\"PL+9F9F9F;$Q,3$,3$QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AS$Q,3$QQ,3$Q,1F9F9F9@NEI=]Z*KN[7@.9F3T]TM)Q<1D9L+!3\nM[>V+-#3%Q6=G9P\\/#P],3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,B8F)B8F)B8F)\nMB8F)B8F)B8F)R<G)R<G)R<G)R<G)R<G)R<F)B8F)B8F)B8F)B4Q,3`\\/9V=G\nM9V?%Q30T-(OML!EQTCV9F0->NRHJ*GK?W]]'I:4+\"V9FQ,0Q,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,3$\nMQ&8+\"Z6E1T='1]]Z>BJ[N[N[N[M>7@,#`P,#`P,#`P,#`P->7KN[N[N[7EY>\nM`UX#`UY>7EZ[*GK?1PMFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<QQ,3$Q,3$Q,3$Q#$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',3$Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$9F8+I:5'WWHJN[N[7EX#\nM`P,#F9D]/3W2TG%Q<1D9&1D9&;\"PL+\"P4^WMBXOM[>WMBXN+-#3%Q<7%Q<7%\nMQ<7%9V=G9V=G9V=G9V=G9\\7%-#0T-(N+[>U34U-34U-34U-34U-34U-34U-3\nML+\"PL+\"PL+\"PL+\"PL+\"PL!D9&1D9&1D9<7%Q<7%Q<7%Q<=+2/3V9F9F9F9F9\nMF9F9F9F9F9F9F9F9F0->7KN[NRHJ>GIZW]_?1T>EI0L+9F9F9L3$Q,0Q,3&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,3$QQ,1F9@L+I4??>BJ[\nM7EX#F9D]/=+2<7$9&;!3[>V+-#3%9V=G#P],3$Q,3$Q,3$Q,3$Q,3$Q,3$R)\nMB8F)B8F)B8F)B8F)B8F)B<G)B8F)B8F)B8F)B8G)R8F)B8F)B8F)B8F)B8F)\nMB8E,3$Q,3$P/#P]GQ<7%Q30T-(N+[>U3L+`9&7%QTCV9`UZ[*BHJ*BIZ>GK?\nMWT>E\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS$Q,3'$Q,1F9F8+I:6E1T=Z>BHJ*BHJ*BJ[7EY>7EY>\nM7EY>`P,#7KN[N[N[N[N[N[N[NUY>N[N[*GK?WT>E\"\\0QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F9F9FQ,3$Q,3$Q#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@L+\nMI:6E1WHJ*KM>7EX#`P.9F9F9F9F9/3W2TM)Q&1D9&1D9&1D9&;!34U-34U-3\nM[>V+BS0TQ<7%Q<7%Q<7%Q6=G9V</#P\\/9V=G9V=G9V?%Q30TBXOM[>WM[>WM\nM[>WM[5-34U-34U-34U-34U-34[\"PL!D9&;\"PL+\"PL+\"P&1D9&1D9&1D9&1D9\nM&1EQ<7'2TM+2/3T]/=+2TCT]/3T]/3T]/3V9F0,#`UY>N[N[N[LJ*GIZW]]'\nM1Z6EI0L+\"V9FQ,3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS$QQ,1F9@L+I4??WWHJNUY>`P.9/3W2TG%Q&;!34^V+BS3%Q6=G9P\\/#P],\nM3$Q,3$Q,3$Q,3$Q,3(F)B8F)B8F)B8F)B<G)R<G)R<F)B8F)B8F)B8F)B8F)\nMB8F)B8F)B8F)B8E,3$Q,3$Q,#P]G9\\7%Q30T-(N+[5-34U.PL!D9&1D9&1D9\nM&7'2TCV9F0->7EZ[*GIZ>M_?I0MFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q,<3$9@NE\nMI4??W]_?W]_?>GHJ*KN[N[M>7EY>7EZ[*BHJ>BHJN[N[NRHJ*BHJ*GK?WT='\nMI0MFQ(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9F;$Q,3$\nMQ&;$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,3&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<QQ&8+I:5'WWHJ*KN[NUY>7EX#`YF9F9F9F9D]/=+2TG%Q<1D9\nM&7$9&1D9&;\"PL+\"P4U/M[8N+-#3%Q<7%Q6=G9V=G9V</#P\\/#P\\/#P\\/#P]G\nM9V?%Q30TBXN+B^WM[8N+[>WM[>WM[>WM[>WM[>WM[5-3L+\"PL+\"PL+`9&1FP\nML+\"P&1D9&1D9&1D9&1D9&1D9<7%Q<7%Q<7%Q<7%QTM+2TM+2TM+2TM(]/9D#\nM`P,#7EZ[N[LJ>GK?W]]'1T>EI:6E\"PMF9L3$,3$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX<Q,<3$9F8+\"Z5'WWIZ*KM>`YD]/=+2<7$9&;!3\nM[>V+-,7%9V=G#P\\/#TQ,3$Q,3$Q,3$Q,3$Q,3(F)B8F)B8F)R<G)R<G)R<G)\nMR<F)B8F)B8F)B8F)3$Q,3$Q,3$Q,3$Q,3$Q,3$P/#V?%Q30TBXN+[>U34[`9\nM&7$9&1D9&1EQ<1D9L+`9&1D9&7%QTM(]F9D#`UZ[*GIZWT>E\"V;$,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS'$9@L+I:6EI:6EI4='W]_?>GHJ*KM>7EY>NRIZ>GIZ\nM>GHJ*BHJ*GIZ>GK?1Z6EI0MFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',3$QQ,3$Q,3$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\"Z5'1]]Z>BHJN[M>7@,#`P,#`YF9\nM`P.9F3T]TM(]TM)Q<7%Q<7$9&1D9&1D9&;!34^WMBXLT-,7%Q<7%Q<5G9V=G\nM#P\\/3$Q,3$Q,3$Q,#P]G9\\7%Q30TBXN+BXOM[>WM[>WM[>WM[>WM[>WM[>WM\nM[5-34U-34U-34[!34U-34[\"PL+\"P&1D9L+\"PL+`9&1D9&1D9&1D9&1D9&1EQ\nM<7%QTM+2TCT]/3T]F9F9F9D#`UY>N[LJ>GK?W]_?1T='1Z6EI0L+9L3$Q#$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q&9F\"Z5'WWHJ\nMN[M>`YD]/=)Q&1D9L+!3[>V+-,7%Q6=G9V</#P],3$Q,3$Q,3$Q,3$Q,3$R)\nMB8F)B8F)B8G)R<G)R8F)B8F)B8F)3$Q,3$Q,3$Q,3$Q,3$Q,#P\\/9V=G9V?%\nMQ30T-(OM[>U3L+`9&1EQ<7%QTG%Q<7%Q<7$9&;\"PL+\"PL+\"PL!D9<=(]/9F9\nM`UZ[*GK?1T<+9F;$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q&9F9F8+\"Z6EI:6E\nM1T='1]_?>BHJN[LJ*GIZW]_?>GIZ*BIZ>GIZWT>E\"PMFQ#$QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<3$Q,3$Q,0Q,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F9F8+I4='WWIZ\nM*KN[7@,#7EX#`P,#`P,#`P.9/3T]TM+2TG%Q<7%Q<7'2TM+2TG$9&;\"P4^V+\nMBS0T-#0T-#3%Q<5G9P\\/3$Q,3$Q,3$Q,3$P/#V=GQ<7%-#0T-(N+B^WM[>WM\nM[>WM[>WMBXN+BXOM[>WM[>WM[>WM[>WM[>WM[>U34U.PL+\"PL+\"P4U-34U-3\nML%-34[\"PL!D9&1D9&1D9<7'2TCT]/3V9F9F9F9F9F9D#7EY>N[LJ>GIZW]_?\nM1T='I:6E\"PL+9L3$Q#$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS$QQ&8+\"Z5'WWHJN[M>`YD]TG$9&;\"PL%-3[>V+BS3%Q<7%Q<5G9V</\nM#P\\/3$Q,3$Q,3$Q,3$Q,3$R)B8F)B8F)B8F)B8F)B8F)B8E,3$Q,3$Q,3$Q,\nM#P\\/#P\\/9V?%Q<4T-#2+BXN+[>WM4U.P&1EQTM(]/3T]/=+2TG%Q<7$9&1D9\nML+\"PL+\"PL+\"P&1EQ<=(]/9D#`UZ[*GK?1T>E\"PMFQ(>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q,<3$9F9F\"PL+\"PL+\"PL+\"Z5'W]_?W]_?W]]'1T??>GIZ>GK?WT='\nMI0MFQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F9L3$Q,0Q,3&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,3'$9F9F\"Z6E1]]Z>BHJNUY>7EY>7EY>7@,#`YF9/3W2TM+2TG%Q<7%QTM+2\nM/3W2TM+2<7$9&;!3[>V+BS0T-#0T-,7%Q6=G#P],3$Q,3$Q,3$P/#P\\/9V=G\nM9\\7%Q30T-(N+BXN+BXOM[>V+BXN+BXN+BXN+BXN+BXN+BXN+BXN+BXOM[>U3\nM4U-34U-3[>WM[>WM4U/M[5-3L+\"PL+\"P&1D9&1EQ<=(]/9F9F0,#`P,#`P->\nM7EZ[N[N[*BHJ>GIZ>M_?1T>EI0L+\"V9F9L3$Q#$Q,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,1F\"PNE1]]Z*KL#F3T]TG%Q&;\"P4U-3\nM[8N+-#3%Q<7%Q<7%Q6=G9V=G9P\\/#P],3$Q,3$Q,3$Q,3$Q,B8F)B8F)B8F)\nMB8F)3$Q,3$Q,3$Q,3$Q,3$P/#P\\/#P\\/#V=GQ30TB^WM4[\"P&1EQ<=+2TCT]\nMF9D]/3T]/=)Q&1D9&1D9L+\"PL+\"PL+\"P&1D9<7%QTM+2TCV9F0,#7KLJ>M]'\nM\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$9F9F\"PL+\"V9FQ,0QQ&8+I:6E\nM1T>EI:5'1]_?W]_?WT='1T>E\"\\0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<QQ#$Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS'$9F9F9@NE1]]Z>BHJ*KN[7EX#7EY>7EX#`YF9/=+2\nMTM+2TM(]TM+2TM+2TCT]/3W2TM+2<7$9&;!3[>WMBXN+BS0T-,7%9V</#TQ,\nM3$Q,3$P/#P\\/#P\\/9V=G9\\7%Q<4T-#0T-#0T-(N+BXN+BXN+BXN+BXN+BXN+\nMBXLT-#0T-#2+BXN+[>V+BXN+BXN+BXN+[>WM[>U34U-34U-34[\"PL+`9&7%Q\nMTM(]/9D#`P,#7EZ[N[LJ*BHJ*BHJ*BHJ*BHJ>M_?1Z6E\"PMF9F;$Q#$Q,8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F9@L+I4=Z\nM*KM>F9D]TG%Q&;\"P4U/M[8LT-#3%Q<7%Q<7%Q<5G9V=G9V=G9V=G9V=G9P\\/\nM#TQ,3$Q,3$Q,3(F)B4Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#V=G9\\4T\nM-(OM4[`9&7'2TM+2TCT]/3W2TM+2TM)Q&1D9&1D9&;\"P4U-34U-34U-34[\"P\nML+`9&1EQTM(]F9D#`UZ[>D<+9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q\nMQ&9F9F;$Q#$Q,3$Q,<1F9F8+\"PL+\"Z6E1T='1]_?1T='I:5FAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9F8+\"Z6E1]]Z>BHJ*KN[7EX#\nM`P,#`P,#`YF9F3T]TM(]/3T]/=+2TCT]/3T]/=+2TM)Q<=)Q<1D9L%-3[>V+\nMBXN+-#3%9V=G#P\\/#TQ,3$Q,#P\\/#P\\/#P\\/#P]G9V=GQ<7%Q<7%Q<7%Q30T\nM-#0TBXN+BXN+BXN+BXLT-#0T-#0T-#0T-#0T-#0T-#0T-#0T-(N+BXOM[>WM\nM[>WM[5-34U.PL+`9&7'2TCT]F9D#7EZ[N[LJ*BIZ>GIZW]_?WWIZ>M_?1T>E\nMI0L+9F;$,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<QQ,1F9@NE1]]Z*KM>`YD]TG$9&;!34^WM[>V+BS0T-#0T-#0T-,7%\nMQ<7%Q<7%Q<7%Q<7%Q<5G9V</#TQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,#P]G9\\7%-(OM4[\"P&1EQ<=+2/3T]/3T]/3W2TM(]TM+2<1D9\nML+\"P4U-34^WM[>WM[>WM4U-34[\"P&1EQTCT]F0->NRIZ1PO$,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS$QQ,1F9L0QAX>'AX<Q,3$QQ,3$Q&9F9F8+I4='\nM1T='1T>E\"\\2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+I:5'\nM1]_?>BJ[N[M>7EX#`YF9F9F9/3V9/3V9F9F9/3T]/3T]/3T]/3T]/3W2<7%Q\nM<=+2TG$9&;\"P4^WMBXN+-#0TQ6=G9P\\/#P\\/3$Q,3`\\/#P\\/#P\\/#P\\/#P]G\nM9V=G9V=G9\\7%Q<7%Q30T-#0T-#0T-#0T-#0T-#0T-,7%Q<5G9V=G9V=GQ<7%\nMQ<7%Q<7%-#0TBXN+[>WM[>WM[>U34U.PL!D9<=(]/9D#`UY>NRHJ>GK?W]_?\nM1T='1T='1T='1T>EI0L+\"V9F9L3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,1F\"Z5'WWIZ*KM>`SW2<1D9L+!34U/M\nM[>WMBXN+BS0T-#0T-#0T-#0T-#0T-#0T-#0T-#3%Q<5G9P\\/3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#P]G9\\7%-(OM[5.PL!D9<7'2/3T]\nM/3T]/3T]/3T]/3T]/=+2<7$9L+!34^WMBXN+B^WM[8OM[5-3L!D9<=+2/9D#\nM7KLJ>M]'\"V;$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<3$Q#&'AX>'\nMAX>'AX>'AX>',3$Q,<1F\"PNEI:6EI0MF,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',69F\"Z5'W]_?>BHJNUX#`P,#F9F9/3T]/3T]/3T]/9F9F9F9F9F9\nMF9F9F9F9F3T]TG%Q<7%Q<7%Q&1FPL%/MBXLT-#0TQ<7%9V=G9V</#P\\/#P\\/\nM#P\\/#P\\/#P\\/#P\\/#P\\/#P\\/9V=G9V=G9V?%Q<7%-#0TQ<7%Q<7%Q<5G9V=G\nM9V=G#P\\/#P\\/9V=G9V=G9V=G9\\7%Q<4T-(N+BXN+[>WM[5-34[`9&7'2/9D#\nM`UY>NRIZW]]'1T>EI:4+\"PL+\"PL+9F9F9L3$Q,0Q,3$QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q&8+I4??>BJ[\nM7EX#`YD]<1D9L+!34^WM[>V+BXN+BXN+BXN+BXN+-#0T-#0T-#0T-(N+BS0T\nM-#3%Q6=G9P\\/3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#P]G9\\7%\nM-#2+[5.P&7%QTM+2/3V9F9F9/3W2TCT]/3T]/3T]/3W2<7$9&;!34^WM[>WM\nM[>U34U-3L!D9<=(]F0->NRIZWT='I:4+9L0QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<Q,<3$Q#&'AX>'AX>'AX>'AX>'AX>',<3$Q&9F\"PL+9L2'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS'$9@NE1]_?>GHJN[M>`YF9/3T]/3W2TCT]\nM/3T]/9F9/9F9/3V9F9D#F9F9F3W2TM+2TG%Q<1D9&1D9L%-3[8N+-#0T-,7%\nMQ<7%9V=G9V=G9V=G#P\\/#P\\/3$Q,3$Q,3$Q,#P\\/#P\\/#P\\/#P\\/9V=G9V?%\nM9V=G9V=G9V</#P\\/#P\\/#TQ,3$Q,#P\\/#P\\/#P\\/#V=G9V=GQ<7%Q<4T-(N+\nMB^WM[5-3L!D9<=(]F0->NRIZ>M]'I0L+\"V9F9L3$Q,3$Q,3$,3&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS$QQ&9F\"PNE1]_?>BJ[7EX#F3W2<1D9L+!3[>WM[>V+B^WM[>WM[>WM[>V+\nMBXN+BXN+BXN+-#0T-#0TQ<7%Q6=G9P\\/#P\\/#P],3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3`\\/#P\\/9V?%Q32+B^U34[`9<7'2TCT]/3V9F0,#`P,#`P,#`P,#`P,#\nM`P.9F9D]TG%Q&1FPL%-34[\"P&1D9&1G2/3V9`UZ[*GK?I:4+\"V;$,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',<1F9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$9F8+I4='WWIZ*KM>\nM`YD]/3T]/3W2TM(]/3T]/9F9F9F9F9D]/3V9F9F9F3T]/=+2<7%Q&1D9&;\"P\nML+!3[>WMBXLT-#0T-#3%Q<7%Q<7%Q<5G9V=G9P\\/#TQ,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$P/#P\\/#P\\/9V</#P\\/#P],3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$P/\nM#V=G9V=G9\\7%Q30TBXOM[>U34[`9&7'2/0->NRIZWT='I0MF9L3$,3&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<Q,3'$Q&9F\"Z5'WWIZ>BHJNUX#`YD]TG%Q&1FPL%-3\nM4U-34U-34U-34U-34U-3[>WM[>WM[8N+BS0T-#0T-#3%Q<7%9V</#P\\/#P\\/\nM#P\\/#P],3$Q,3$Q,#P\\/#P\\/9P\\/9V=G9\\4T-(OM[5.PL!EQTM(]/9F9F0,#\nM7KN[N[N[N[LJN[N[N[M>7EY>7EX#`YF9/=+2<7%Q<7%Q<7'2TCT]F0,#7KN[\nM*M]'I:4+Q#$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$\nM9F8+I4='W]]Z*BJ[7@.9/=+2TM+2TM+2/3T]/3V9F9F9F9F9/3T]/3T]/3T]\nM/3W2TM)Q&1FPL+\"PL+!34^WMBXN+-#2+BXLT-#3%Q30T-#0TQ<7%9V=G#P\\/\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3`\\/#V=G9V?%Q30T-(N+[>U3L!D9<=(]F0.[NWK?1T>E\nMI0MFQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F9@L+I4??W]]Z>BHJ\nMNUY>`P.9/3W2TG%Q&1D9&1D9&1D9L+\"PL+\"PL+!34U-34^WM[8N+BXLTQ<7%\nMQ6=G9V=G#P\\/#P\\/#P\\/#P\\/#P\\/#P\\/9V=G9V=G9V?%Q<7%Q<7%-#2+B^U3\nM4[\"P&7%QTCV9F0,#7EY>7KN[NRHJ*BHJ>GIZ>BHJ*KN[N[N[NUY>7@.9/3T]\nM/3T]/3V9F9D#`UY>N[LJ>M]'I0L+9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS'$9@L+\"PNE1]]Z*BHJNUX#`YD]/3T]/=+2TCT]/3T]/3V9\nMF9F9F3T]/3T]/3T]TM(]TM)Q&1D9L%-34U-34^WM[8N+BXN+BXN+BS0T-#0T\nM-#0T-#3%Q<5G9V</#P],3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,#P]G9\\7%-#2+BXOM[5.P&7'2\nMTCV9`UZ[*GK?1Z4+\"V;$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q\nMQ,1F\"PNEI:5'1T??>GHJ*KM>7@.9F3W2TM+2<7%Q&1D9<7%Q<7$9&1D9&1D9\nML+\"P4U/M[>V+BXLT-,7%9V</#P\\/3$Q,3$Q,#P\\/#P\\/#P\\/#P]G9\\7%-#0T\nM-#2+BXN+BXN+B^WM4U.PL!D9<=+2/3V9`P,#`UY>7KN[N[LJ*BIZ>M_?W]_?\nMW]_?WWIZ>BHJ*BHJN[M>`P,#`P,#`P->7KLJ*BHJ>M]'\"PMFQ#$QAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS'$Q,3$Q,3$9@L+I0NE1]]Z*BJ[N[M>7@.9F3T]\nM/3T]/3T]/3T]/3T]/3V9F3T]/3T]F9F9/3T]/=+2<1D9&;\"P4^WM[>WM[>V+\nMBXN+BXN+BXN+BXN+-#0T-#0T-#0TQ<5G9V</#TQ,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3`\\/#V=GQ<4T\nM-(N+B^WM4[`9&7'2/9D#7KLJ>M]'I0MF9L0Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<QQ,1F9@NEI4='1]_?>BHJNUY>`P.9F3T]/3W2TM+2\nMTM+2TM+2<7%Q&1D9&;\"PL+\"P4U/M[8N+BXLT-#3%Q6=G#P\\/3$Q,3$Q,3$Q,\nM3$Q,3`\\/9V=GQ<7%-#2+BXOM[>U34U/M[5-34[\"P&1EQ<=(]F9D#`UY>7EY>\nMN[N[N[LJ*GIZW]]'1T='1T>EI:6E1T??WT='W]_?WWIZ*BHJ*BHJ*GIZ>GIZ\nMWT>E\"\\0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3'$9F8+\"PL+\"PNEI:5'1]_?\nM>BJ[NUY>7EX#F9F9/3T]/3T]F9D]/3T]/3T]/3T]/3V9F9F9F9F9/3W2<7%Q\nM<1D9L%/M[>WM[>WM[>WM[>WMBXN+BXLT-#0TBXN+-#0T-#3%Q<5G9P\\/3$Q,\nM3$Q,3$Q,3$Q,3$Q,3$Q,B8E,B8F)3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3`\\/\nM#P]G9\\7%Q<4T-#0T-(N+[5-3L!D9<=(]`UZ[*GK?WT<+9L0QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ&8+\"Z6E1]]Z>BJ[\nM7EY>`P,#F9F9F9F9F9F9F9F9F3T]TM+2<7$9&1D9&1D9L%-3[>V+BXLT-#3%\nMQ<5G9V</#P\\/#P\\/#TQ,#P\\/#V=G9\\7%-#0TBXOM[>WM4U-34U-3L+\"P&1D9\nM&7%QTCT]F9D#7EZ[NRHJ*GIZ>GIZW]_?WT='I0L+\"PL+\"PL+\"PL+\"PL+I:6E\nMI:5'1T??W]_?W]]'1T='I:4+\"V;$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$9@NE\nMI:6EI:5'1Z5'1]_?>BJ[7EX#`P,#`YF9F9D]/3T]/9F9F3T]/3W2TM+2TCT]\nMF9F9F9F9F9D]TG%Q<1D9&;!34^WM[>WM[>WM[>V+BXN+BS0T-#0T-#0TBXN+\nMBS0TQ<7%9V</#P],3$Q,3$Q,3$Q,3$Q,3$Q,3$R)B8F)B4Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3$Q,3`]G9\\7%-(N+BS0TBXN+[>U34[`9&7'2/9E>NWI'I:4+9L3$\nM,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',3'$9F8+I4??>GHJN[N[N[M>7EY>7@,#`P.9F9F9F9D]/3W2TG%Q<7%Q\nM<1D9L+!34^WMBS0TQ<7%9V?%Q6=G9V=G#P\\/9V=G9V=GQ<7%-#2+B^WM4U-3\nM4U.PL+\"PL!D9&1EQ<7%Q<7'2TM(]F9D#`UY>N[LJ>GIZW]]'1T='1T>EI0L+\nM9F9F9@L+\"PL+\"PL+\"PL+\"PL+\"PL+\"Z6EI:6EI:6E\"PMF9F9F9L3$,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\n=AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\n`\nend\n-------- End of part 14 of 14 --------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9073, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Bill 'Blame America First' Clinton Strikes Again.\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: na\nLines: 82\n\nIn article <12741@news.duke.edu> eyc@acpub.duke.edu (EMIL CHUCK) writes:\n> >This argument sounds very stupid.. if the ability to make guns from\n> >\"simple metalworking\" was easy,  then Drug dealers would make their own \n> >wouldn't they???..\n\nThey do. According the the Los Angeles Police Department, illegal\nmanufacture is one the three primary sources of machine guns and\nsubmachine guns used in crimes (sumggling and theft from the\npolice and military being the other two.) Washington D.C. police\nhave stated that 40% (If I'm remembering the figure correctly) of\nthe guns they conficate were illegally built.\n\n> >...why spend hundreds of dollars buying a gun that\n> >somebody else made cheap and is selling it to you at an\n> >exorbitant markup???...\n\nIt takes about 6 hours and a few tools to make one (at least one\nof reasonable quality). Unless the drug dealer enjoyes messing\naround on a lathe (say, as a hobby), he's going to have to \npay someone anyway. Materials plus six hours of a machinist's\ntime for something legal would run about $100. The blackmarket\nprices for guns are usually in the $50 to $200 range (at least\nthose few I've seen cited in newspaper articles were...)\n\n> >...The simple truth of the matter is, that regardless\n> >of how easy it is to make guns, banning guns will reduce the \n> >the number of new guns and seriuosly impede the efforts of a \n> >killer intent on buying a weapon....\n\nWashington D.C. has a total ban on handguns and prohibits assembled\nrifles within city limits. It's homicide rate is almost ten\ntimes the national average. It is also illegal for a D.C.\nresident to drive to the Virginia or Maryland suburbs and\nbuy a gun (dealers are required by federal law to check IDs\nand make sure the buyer isn't from another state) so the ban \ncan not be easily side-stepped.\n\n> >To show why the tools argument is the silliest i have ever seen.. take an\n> >analogy from computer science... almost every computer science major\n> >can write a \"wordprocessor\" yet we(comp sci majors)  would willingly pay 3  \n> >to 400 bucks for a professional software like wordperfect... why don't we  \n> >just all write our own software???...... Because it is highly  \n> >inconvinient!!!..\n\nSure. But it you couldn't buy one, you would write your own (in\nfact, people _did_ write their own 15 years ago...) More likely,\nyou would find a friend who was a particularly good programer\nand get him give you a copy of his. Software is a _very_ bad\nexample for your case: How many people do you know with illegal\ncopies of $400 word processors? If people want something, and\nit isn't available (or affordable) legally, they will usually\nget it illegally.\n\n> >Same with guns...\n\nQuite.\n\n> >secondly.. how does one get this gunpowder for the \n> >\"home made gun\" ???\n\n13-3-2. The formula has been around for half a million years.\nOr are you going to restrict sales of sulpher, charcoal and\nsaltpeter? That's alot cruder than modern smokless powder, but\nit works very well. The only real problems are a ~25% reduction\nin energy (so a .357 magnum would \"only\" be as deadly as a 9mm)\nand it makes alot more smoke... Of course, a smart black marketeer\ncould just make the gun in 9mm and steal the ammunition from the\npolice (the police are often corruptable, and things are known\nto disappear from police evidence rooms and armories and\nreappear on the streets...)\n\n> > If guns were really that simple to make... the Bosnian muslims would\n> >be very happy people (or is it the case that metalworking tools are\n> >banned in bosnia??? (deep sarcasm)  ).\n\nPerhaps you weren't watching the news two years ago, but the Serbs \nalso tried to invade Slovinia. They were driven out after a few\nweeks by partisans armed with home-made _anti-tank_ weapons.\nThe Afghan rebels frequently made their own rifles. \n\n                                                Frank Crary\n                                                CU Boulder\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9074, "properties": {"category": "comp.graphics", "text": "From: lasse@mits.mdata.fi (Lasse Reinikainen)\nSubject: Re: WANTED: Multi-page GIF!!\nOrganization: Microdata Oy, Helsinki, Finland\nNntp-Posting-Host: mits.mdata.fi\nLines: 16\n\nIn article <1993Apr20.053250.24854@worak.kaist.ac.kr> stjohn@math1.kaist.ac.kr (Ryou Seong Joon) writes:\n>Hi!... \n>\n>I am searching for packages that could handle Multi-page GIF\n>files...    \n\nIf you are looking for viewer try VPIC60\n\n    __________________           __\n    \\_________________|)____.---'--`---.____\n                  ||    \\----.________.----/\n                  ||     / /    `--'                  lasse@mits.mdata.fi\n                __||____/ /_\n               |___         \\\n                   `--------'\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.429+0000", "event": "documents", "entityId": 9075, "properties": {"category": "sci.space", "text": "From: gnb@leo.bby.com.au (Gregory N. Bond)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nIn-Reply-To: gene@theporch.raider.net's message of Sun, 18 Apr 1993 19:29:40 GMT\nNntp-Posting-Host: leo-gw\nOrganization: Burdett, Buckeridge & Young, Melbourne, Australia\nLines: 32\n\nIn article <6ZV82B2w165w@theporch.raider.net> gene@theporch.raider.net (Gene Wright) writes:\n\n   Announce that a reward of $1 billion would go to the first corporation \n   who successfully keeps at least 1 person alive on the moon for a\n   year. \n\nAnd with $1B on offer, the problem of \"keeping them alive\" is highly\nlikely to involve more than just the lunar environment! \n\n\"Oh Dear, my freighter just landed on the roof of ACME's base and they\nall died.  How sad.  Gosh, that leaves us as the oldest residents.\"\n\n\"Quick Boss, the slime from YoyoDyne are back, and this time they've\ngot a tank!  Man the guns!\"\n\nOne could imagine all sorts of technologies being developed in that\nsort of environment.....\n\nGreg.\n\n(I'm kidding, BTW, although the problem of winner-takes-all prizes is\nthat it encourages all sorts of undesirable behaviour - witness\nmilitary procurement programs.  And $1b is probably far too small a\nreward to encourage what would be a very expensive and high risk\nproposition.)\n\n\n--\nGregory Bond <gnb@bby.com.au> Burdett Buckeridge & Young Ltd Melbourne Australia\n   Knox's 386 is slick.            Fox in Sox, on Knox's Box\n   Knox's box is very quick.       Plays lots of LSL. He's sick!\n(Apologies to John \"Iron Bar\" Mackin.)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9076, "properties": {"category": "talk.politics.misc", "text": "From: texx@ossi.com (Robert \"Texx\" Woodworth)\nSubject: Re: CA's pedophilia laws\nOrganization: Open Systems Solutions Inc.\nLines: 54\nNNTP-Posting-Host: nym.ossi.com\n\n#1\n\nClayton, my man...\n\nYou are a tad out of touch....\n\nFirst, gay comunities all over the country are in the process of excluding NAMBLA\nfrom parades etc.\n\n#2\n\nNobody from NAMBLA is gonna get a job in a day care centre.  The same liberals you are\nupset about are also passing laws that make tough background checks for childcare\npeople.\n\n#3\n\nTell me, how would you feel if your employer fired you for your antigay post on the\ninternet?  Would you be upset ?  I`ll bet you would be pissed!\nTo some, your posts ,ight make the company look bad.\nWhile your posts offend me I dont think it would be right for you to get fired over\nit.\n\nI dont believe the gay comunity is asking for hiring quotas like the affirmative\naction laws of the 60's did.\nMy understanding is that the gay community just wants the same rights the srtraights\nhave.  I dont think people should have their leases cancelled when their landlord\nfinds out they are gay.  I dont think that when someone sees someone walk out of\na gay business and then blabs it all over work that the gay person gets fired.\nDo you REALLY think these are justified ?\n\n#4\n\nClayton, I am told you are a parent a couple times over.\nHave you been following the strip in the paper \"For Better or For Worse\" ?\n\nI honestly want your opinion as a parent on the strip.  \n\nDo you really care about your childeren\nas much as friends of mine tell me ?  How much do you care about your childeren ?\nHow much do you care about other people's childeren?  Do you care about MY childeren?\nDo you care about my sister's childeren ?\n\nIf one of your kids told you he/she was gay, would you throw them out of your home\nin the middle of the night?\n\nWould you approve of your childeren driving down to San Francisco to trow bottles\nat and beat up on gay people?  Would you condone your childeren beating up on someone\nelses childeren ?\n\n\nI await your answers to these queastions.  PLease no flaming...\nThis is to be a civilised discussion, from one father to another.\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9077, "properties": {"category": "talk.politics.mideast", "text": "From: gd8f@kelvin.seas.Virginia.EDU (Gregory  Dandulakis)\nSubject: Re: Turkey-Cyprus-Bosnia-Serbia-Greece (Armenia-Azeris)\nOrganization: University of Virginia\nLines: 59\n\nIn article <93106.082650FINAID5@auvm.american.edu> <FINAID5@auvm.american.edu> writes:\n>Message-ID: <1993Apr15.174657.6176@news.uiowa.edu> Mr.Napoleon responds:\n>\n>** There were a couple millions of Greeks living in Asia Minor\n>**until 1923 Someone had to protect them. If not us who??\n>\n>\n>Is that so? or you were taking advantage of weakness of ottoman\n>empire to grab some land. As soon as you got green lights from\n>allied forces, you occupied Izmir and other cities in western\n>Turkey. You killed and  raped millions people without any reason.\n>Of course, you paid the price. Mustafa Kemal Ataturk made\n>you swim in aegean sea but not far enough. Your aggressions thru\n>Turkey at anytime in the past did not get you any reward and shall\n>not get you anywhere.\n\n\nDon't swallow propaganda as truth Sir. British promised to Venizelos\n(greek PM) that mainly greek populated areas of the Ottomans will be\ngiven to Greece, _if_ he will agree to drag Greece in the side of\nthe British during the WWI (because the greek King was proGerman).\nThe British succeeded by bombarding Athens (1916), killing quite a few,\nforcing abdication of the King, division of Greece into two separate\nstates (North-South), and finally laying the ground for the most disasterous\ndivision between greeks for our century.(So don't feel bitter that the\n\"Allies\" gave any green light because they liked us....)\n\nAnyway, the British succeed to establish Venizelos, war starts at a second\nfront against the Germans in the south while they were fighting the war\nin the East against the Russians, and finally the WWII came in an end.\nAfter that the British (and French) forgot immediately their promises\n(as usually). Even though publicly they say that they support the Greek\ncause, practically they not only do nothing, but instead, using some usual\n\"reasoning\" and other crap rhetoric as a pretext, they gradually\nbackup Kemal (who had given now to the British \"water and bread\" that\nhe will dissolve the superethnic Ottoman and contract it into a small\nethnic-state). The main drive behind this British switch was the plan\nto keep a Muslim state in the region as buffer against a Russian expansion\ninto warm-water facilities. The \"greek empire\" being an Orthodox Christian\nstate was too prone to become Russian client.\n\nOut of this intrigue, the current state of affairs was established on our\nlands. While Venizelos and Kemal were promoted as true \"Giants\" by the\nBritish, since they worked to realize their goals in the region.\nUnder the same plan, currently Greece and Turkey are recipients of big\nmilitary funds from the US; both they are functioning as anti-Russian\nbuffers, while simultaneously both remain good clients of State Dept. because\notherwise the use of terror of changing \"the balance of power in the Aegean\"\nwill be used.\n\nUnder the same exact rational you should see the Cyprus problem.\n\nGr\n\nPS: I don't make any anti-...whatever rhetoric. This is the situation\n    in our region and needs to be said. The previously mentioned powers\n    are not anything special; they are fucntioning the same way which\n    anyone else functions all throughout history. So I don't selectively\n    single them out; just they are relevant to _our_ current afairs.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9078, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Just what is in the Jobs/Pork bill?\nSummary: Answer: Local communities decide what to do with block grants\nDistribution: usa\nOrganization: Just a Boomer, Inc.\nLines: 73\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <C5L5uM.IsF@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson) writes:\n>This was in Wed. WSJ.\n>\n>[start]\n>The white house, seeking to mount public pressure on GOP senators, bombarded\n>news outlets in some senator's home states with news releases warning that\n>certain projects may not be funded if the $16billion stimulus bill isn't\n>passed.\n>\n>None of the projects mentioned are actually in the bill, rather they are\n>part of a wish list that may be funded from the $2.56 billion in\n>Community Development Block Grants.\n>\n>...\n>\n>[end]\n>\n>I could have sworn I heard a bunch of Clintonites going on and on, raving\n>about how dishonest it was that the Rebublicans were taking items from this\n>wish list in order to ridicule this bill. Now that Clinton is using that\n>same list in order to garner support for the bill, are you guys going to\n>do the honorable thing and say that Clinton is being dishonest.\n\nAs one of the \"Clintonites\" cited above, I'll try to clarify since this\nis not a case of Clinton's \"dishonesty.\" (I won't necessarily defend him\non other issues.)  \n\nThere were NEVER any specific projects included in the Community\nDevelopment Block Grant portion of the President's proposal.  Congressional\nRepublicans, in an effort to discredit the stimulus package, selected what\nthey felt were silly sounding projects from a wish-list of POTENTIAL \nprojects prepared by the US Mayors' Conference before the stimulus package\nwas ever proposed.  (The document in question was designed to pressure the\nWhite House to increase the size of the block grant proposal submitted\nto Congress.  It didn't work.)\n\nThe $2.56(?) billion proposed in the stimulus package came nowhere close\nto covering the total estimated cost of the original wish-list.  If it\nwere passed, communities would have to select which projects to fund and\nat what level.\n\nIn the case of Spokane, Wa., Tom Foley's home district, no one ever\nexpected to be able to refurbish a local swimming pool (one of the \nRepublicans' examples) FROM THE FUNDS AVAILABLE IN THE STIMULUS\nPACKAGE since the estimated cost of doing so exceeded the total \namount of block grant funds the city would receive from the stimulus \npackage for ALL projects.  \n\nThe plan, instead, was to use the money on public housing construction\nand remodeling to cope with a severe housing shortage.  (Yup, there are\nplaces where that is true.)  The swimming pool improvements were near the\nbottom of a long list of priorities prepared by the city.  The $3 million\nor so to be received would cover only a few of the most pressing\npriorities.\n\nIf the block grants are cut from the stimulus package, it is these projects\nthat will be affected by the lack of funds.  And that is why the Clinton\nadministration has been publicizing the issue.\n\nA final point.  One may or may not like community block grants.  It is\nworth noting, however, that Congressional Republicans' opposition to them\nis new.  Since the Nixon administration, Republicans have generally \nsupported such grants as an alternative to targeted federal spending,\narguing that local governments are far better able to determine spending\npriorities than \"Washington bureaucrats.\"  \n\nIs it clear now?  Or is this all too complicated to understand?\n\njsh\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9079, "properties": {"category": "soc.religion.christian", "text": "From: Petch@gvg47.gvg.tek.com (Chuck Petch)\nSubject: Daily Verse\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 4\n\nFor whoever does the will of my Father in heaven is my brother and sister\nand mother.\" \n\nMatthew 12:50\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9080, "properties": {"category": "sci.space", "text": "From: DKELO@msmail.pepperdine.edu (Dan Kelo)\nSubject: M-81 Supernova\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 7\n\n\nHow 'bout some more info on that alleged supernova in M-81?\nI might just break out the scope for this one.\n____________________________________________________\n\"No sir, I don't like it! \"-- Mr. Horse\nDan Kelo     dkelo@pepvax.pepperdine.edu\n____________________________________________________\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9081, "properties": {"category": "sci.med", "text": "From: mdf0@shemesh.GTE.com (Mark Feblowitz)\nSubject: Re: Is MSG sensitivity superstition?\n\t<1qht2d$8pg@eagle.lerc.nasa.gov> <1qhu7s$d3u@agate.berkeley.edu>\nReply-To: mfeblowitz@gte.com\nOrganization: GTE Laboratories Inc.\nLines: 17\nIn-reply-to: spp@zabriskie.berkeley.edu's message of 14 Apr 93 21:03:56 GMT\n\nIn article <1qhu7s$d3u@agate.berkeley.edu> spp@zabriskie.berkeley.edu (Steve Pope) writes:\n\n   It's worse than that -- there *is* no such thing as\n   a double-blind study on the effects of MSG, by\n   virtue of the fact that MSG changes the taste of food in\n   a characteristic way that is detectable by the subject and\n   that cannot be duplicated by a placebo.\n\nCommon! You can easily disguise  to flavor of  MSG by putting  it in a\ncapsule. Then,  the  study  becomes  a  double  blind of  MSG capsules\nagainst control  capsules (containing exactly  the same contents minus\nthe MSG).\n--\n-------------------------------------------------------------------------\nMark Feblowitz,   GTE Laboratories Inc., 40 Sylvan Rd.  Waltham, MA 02254\nmfeblowitz@GTE.com, (617) 466-2947, fax: (617) 890-9320\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9082, "properties": {"category": "soc.religion.christian", "text": "From: mpaul@unl.edu (marxhausen paul)\nSubject: Re: \"National repentance\"\nOrganization: University of Nebraska--Lincoln\nLines: 37\n\nmcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n\n>I heard on the radio today about a Christian student conference where\n>Christians were called to \"repent\" of America's \"national\" sins, such\n>as sexual promiscuity.\n\n>How can I repent of _someone else's_ sin?   I can't.\n\n>And when I claim to \"repent\" of someone else's sin, am I not in fact\n>_judging_ him?  Jesus equipped us to judge activities but warned us\n>not to judge people. \"Judge not that ye be not judged.\"\n\nStrictly speaking, you're right - we can't repent _for_ somebody else,\nfor what they've done.  I guess I don't think it's out of line to talk\nabout a generalized repentence for our contribution to or participation\nin \"The sins of society\" , or for our tacit approval (by our silence) of\nsinful attitudes or practices....it may be that we're also just plain\nbegging for mercy, hoping God will withhold his hand of judgement on\nour whole country for the sake of a few, much as Abraham sought to do\nfor the sake of Lot.  (Hmmm, the results there were pretty cautionary...)\n\nA few times lately when I've observed some either out-and-out sinful \nactivity, or just some self-destructive activity, I've gotten a strong\nimpression that many folks really don't know any better.  Christ's pity\non the crowds as being \"like sheep without a shepherd\" rings true to me.\nIf these folks don't have a clue, do I bear _any_ responsibility for my\nnot having communicated a better way?  Worse still; have I expressed \njudgement and disgust at their doings, and thus alienated them from any \npositive relationship whereby I might pass along anything positive?  \nI _know_ I've got something to repent about on that score.\n\nAnyway, it's a real interesting question.  \n--\npaul marxhausen .... ....... ............. ............ ............ .......... \n .. . .  . . . university of nebraska - lincoln .  . . .. . .  .. . . . . . . .\n .     .    .  .   .     .   .  .    .   .  .   .    .   .  grace .   .    .  . \n   .         .       .      .        .        .      .        .   happens .     \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9083, "properties": {"category": "sci.electronics", "text": "From: mblock@reed.edu (Matt Block)\nSubject: Re: How to the disks copy protected.\nArticle-I.D.: reed.1993Apr20.230749.12821\nOrganization: Reed College, Portland, Oregon\nLines: 36\n\nIn article <sehari.735331566@marge.ecss.iastate.edu> sehari@iastate.edu (Babak Sehari) writes:\n>---\n>\n>I was wondering, what copy protection techniques are avaliable, and how\n>effective are they?  Has anyone have any experience in this area?\n>\n>                      With highest regards,\n>                           Babak   Sehari.\n\n\tUh oh...\n\tUmm, there are a number of copy protection schemes.  Some involve\nmodifying the physical media, and some involve encryption schemes, &c.\n\tAll of the ones that have existed over the course of computing have\nbeen successful for a time.  I recall, however, near monthly releases of new\nways to \"crack\" the copy protection scheme of the latest releases.  The fact\nis, none of them are completely secure, or anywhere near it.  Some are more or\nless difficult to crack, and some have already been cracked.\n\tI guess what I am saying is that your question is difficult, if not\nimpossible, to answer.  What exactly do you want to know?  Do you need a good\none for a project you are working on?  How secure must it be?  Are you trying\nto crack one that someone else has used?  I can probably make suggestions,\nassuming the activity is strictly legal.  (In general, it is a BAD idea,\nlegally, to tamper with copy protection.  It can also lead to corruption of\nfiles which you necessarily do not have back ups of (being as they are copy\nprotected,) which can be devestating.)  Do you have absolutely no ideas for\npractical applications, and are merely curious?\n\tPlease clear up those questions, and I'll try to help as much as I\ncan.\n\n\tIncidentally, the \"Uh oh...\" at the top is indicative of the dread\nanyone who has watched their friends hacking equipment be carted off feels\nwhen they are asked how to hack.  The area you are broaching is wrought with\ndangers, many of which include breaking the law, or at least addressing it\n(from one side or the other.)\n\nMatt\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9084, "properties": {"category": "misc.forsale", "text": "From: davidk@netcom.com (David Kiviat)\nSubject: 88 Toyota Camry super deluxe $9.9k\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 15\n\n88 toyota Camry - Top Of The Line Vehicle\nblue book $10,500\nasking 9,900.\n\n73 k miles\nauto transmission\n \nHas Everything!\n\nowned by a meticulous automoble mechanic\n\ncall (408) 425-8203 ask for Bob.\n\nposted for a friend.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9085, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: thoughts on christians\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 17\n\nEd McCreary (edm@twisto.compaq.com) wrote:\n: >>>>> On 16 Apr 93 05:10:18 GMT, bobbe@vice.ICO.TEK.COM (Robert Beauchaine) said:\n\n: RB> In article <ofnWyG600WB699voA=@andrew.cmu.edu> pl1u+@andrew.cmu.edu (Patrick C Leger) writes:\n: >EVER HEAR OF\n: >BAPTISM AT BIRTH?  If that isn't preying on the young, I don't know what\n: >is...\n: >\n: RB>   \n: RB>   No, that's praying on the young.  Preying on the young comes\n: RB>   later, when the bright eyed little altar boy finds out what the\n: RB>   priest really wears under that chasible.\n\nDoes this statement further the atheist cause in some way, surely it's\nnot intended as wit ...\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9086, "properties": {"category": "comp.windows.x", "text": "From: EEI.EEIIHY@memo.ericsson.SE (353-1-2800455)\nSubject: help\nOrganization: The Internet\nLines: 5\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: XPERT@EXPO.LCS.MIT.EDU\n\n--- Received from EEI.EEIIHY  353-1-2800455         93-04-26 12.28\n  -> VAX.XPERT..EXPO.LCS.MIT.EDU..INET\n  -: - - - - - - - - - - > MAIL USER IN VAX AND INTERNET\nhelp\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9087, "properties": {"category": "comp.windows.x", "text": "From: adrian@ora.COM (Adrian Nye)\nSubject: Re:  xwininfo\nOrganization: O'Reilly and Associates, Inc.\nLines: 11\nReply-To: adrian@ora.com\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\n\n\n\n> I want to do the equivalent of an \"xwininfo -name\" via a call or set of calls\n> in Xlib.  I need to map a windows name to its id.\n> It's probably easy, but I've only been programming in X for a little while.\n\nDo you have the X source code?  Simply look in mit/clients/xwininfo/xwininfo.c and you\nwill find out exactly how to do it.  :-)\n\nAdrian Nye\nO'Reilly and Associates.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9088, "properties": {"category": "talk.politics.misc", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Help fight the Clinton Administration's invasion of your privacy\nOrganization: University of Toronto Chemistry Department\nLines: 16\n\nIn article <9308@blue.cis.pitt.edu> cjp+@pitt.edu (Casimir J Palowitch) writes:\n>The Clinton Administration wants to \"manage\" your use of digital\n>encryption. This includes a proposal which would limit your use of\n>encryption to a standard developed by the NSA, the technical details of \n>which would remain classified with the government.\n>\n>This cannot be allowed to happen.\n>\n\nIt is a bit unfair to call blame the Clinton Administration alone...this\ninitiative was underway under the Bush Administration...it is basically\na bipartisan effort of the establishment Demopublicans and\nRepublicrats...the same bipartisan effort that brought the S&L scandal,\nand BCCI, etc.\n\nGerald\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9089, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: Motorola XC68882RC33 and RC50\nOrganization: Megatest Corporation\nLines: 21\n\nIn article <C5qwv2.Bz0@zoo.toronto.edu> henry@zoo.toronto.edu (Henry Spencer) writes:\n>In article <sgberg.23xu@charon.bloomington.in.us> sgberg@charon.bloomington.in.us (Stefan Berg) writes:\n>>... I don't know why my FPU has an XC (my original 33MHz FPU\n>>was label MC68882-33), but it seems to work fine on my system...\n>>P.S. Or does it mean eXperimental Chip instead of Motorola Chip? .-)\n>\n>The rule for the designations is that if it says MC, that means it works\n>*exactly* the way the datasheet/book specifies.  If it says XC, that means\n>there is at least one known bug.  Often these bugs are small and obscure;\n>you might never run into them in practice.\n>\n\nXC units are often pre-production sample devices.  Those are normally\ndistributed for evaluation as freebies and are not guaranteed to\nmeet every spec.\n\n>At least Motorola admits it, unlike certain other companies...\n\nYep, that's for sure...that's one thing I like most about Motorola.\n\naaron\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9090, "properties": {"category": "talk.politics.mideast", "text": "From: oaf@zurich.ai.mit.edu (Oded Feingold)\nSubject: Re: NEWS YOU WILL MISS, Apr 15\nOrganization: M.I.T. Artificial Intelligence Lab.\nLines: 18\nDistribution: world\nReply-To: oaf@zurich.ai.mit.edu\nNNTP-Posting-Host: klosters.ai.mit.edu\nIn-reply-to: arf@genesis.MCS.COM's message of 15 Apr 1993 22:51:03 -0500\n\nSorry, ARF - you dog,\n\nThat news was suppressed because the Israeli national volleyball team\nrepeatedly spiked it.\n\nLet this be a lesson to others not to invoke the wrath of sports nuts.\n(Brits lead the way in this regard, with ~220 casualties in the last 2\nyears.)\n\nAnyway, Yigal would never sue.  His life is (presumably) so pristine\nthat its most intimate details could be revealed without harm to\nanyone.  Might even be good instruction for some people I can think of.\n\nMe, I _would_ sue!  I hate the way sports dominates the media.\nAnyway, the last 3 ADL agents watching me die of boredom before filing\ntheir reports.  I've damaged their Atlanta operation something fierce.\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9091, "properties": {"category": "sci.med", "text": "Subject: What are knots?\nFrom: ng4@husc11.harvard.edu (Ho Leung Ng)\nNntp-Posting-Host: husc11.harvard.edu\nLines: 8\n\n    What exactly are knots, those sore, tight spots in your muscles?\nIn certain kinds of massage, people try and break up these knots; it this\nreally helpful?\n\n\nHo Leung Ng\nng4@husc.harvard.edu\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9092, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: Cookamunga Tourist Bureau\nLines: 17\n\nIn article <1qknu0INNbhv@shelley.u.washington.edu>, > Christian:  washed in\nthe blood of the lamb.\n> Mithraist:  washed in the blood of the bull.\n> \n> If anyone in .netland is in the process of devising a new religion,\n> do not use the lamb or the bull, because they have already been\n> reserved.  Please choose another animal, preferably one not\n> on the Endangered Species List.  \n\nThis will be a hard task, because most cultures used most animals\nfor blood sacrifices. It has to be something related to our current\npost-modernism state. Hmm, what about used computers?\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9093, "properties": {"category": "rec.sport.hockey", "text": "From: maX <maX@maxim.rinaco.msk.su>\nSubject: Only test message\nDistribution: world\nOrganization: Home\nReply-To: maX@maxim.rinaco.msk.su\nKeywords: test\nLines: 2\n\nIt's only test message.\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9094, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dab6@po.CWRU.Edu (Douglas A. Bell)\nSubject: Re: Why VESA Local-Bus ????\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 15\nReply-To: dab6@po.CWRU.Edu (Douglas A. Bell)\nNNTP-Posting-Host: slc12.ins.cwru.edu\n\n\nIn a previous article, guyd@austin.ibm.com (Guy Dawson) says:\n\n>Something to bear in mind is what the V in VLB stands for!\n>\n>V for Video - the origional intention of the bus was to speed up\n>the bus so that large memory to memory transfers would be faster.\n>This is espically useful in transfering data from main memory to\n>video memory.\n\n\nWell, not to be picky, but the V in VLB stands for VESA.\nWhile the V in VESA stands for video, saying the V in VLB stands\nfor video is not entirely correct.\n-- \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9095, "properties": {"category": "comp.graphics", "text": "From: csc3phx@vaxa.hofstra.edu\nSubject: Color problem.\nLines: 8\n\n\nI am scanning in a color image and it looks fine on the screen.  When I \nconverted it into PCX,BMP,GIF files so as to get it into MS Windows the colors\ngot much lighter.  For example the yellows became white.  Any ideas?\n\nthanks\nDan\ncsc3phx@vaxc.hofstra.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9096, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kwgst+@pitt.edu (Mr. Someone)\nSubject: modem question\nArticle-I.D.: blue.9061\nOrganization: pre-EE\nLines: 2\n\n\n\t\t\t\t\tart\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9097, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mikgr@wpsun4.UUCP (Michael Grant)\nSubject: Re: COMMENTS ==> VIDEO BLASTER (Creative Labs)\nOrganization: WordPerfect Corporation, Orem UT\nLines: 42\n\nIn article <1993Apr14.062219.11573@ultb.isc.rit.edu>, mej0381@ritvax.isc.rit.edu writes:\n> >In <115080@bu.edu> heiser@acs2.bu.edu (Bill Heiser) writes:\n> > \n> >>In article <C4rDy0.Fw9@chinet.chi.il.us> randy@chinet.chi.il.us (Randy Suess) w\n> >rites:\n> >>>>The video blaster doesn't work with the ATI GRaphics Ultra Pro, doesn't work\n> >>>>with >15M system RAM.\n> > \n> >>Are you serious?  So I can't use a Video Blaster in my 16mb 486/33?\n> >>What are the alternatives (other than removing memory?)\n> > \n> >Get a better one.  Hows about the Win/TV thing?\n> >--\n> >The Wailer at the Gates of Dawn              | banshee@cats.UCSC.EDU       |\n> >Just who ARE you calling a FROOFROO Head?    |                             |\n> >oD#0667  \"Just a friend of the beast.\"      | banshee@ucscb.UCSC.EDU      |\n> >2,3,5,7,13,17,19,31,61,89,107,127,521,607....| banshee@ucscb.BITNET        |\n>  \n> No good. I perfer WatchIT TV. It can run in DOS and Windows. Win/Tv only run in \n> windows. Sorry....\n>  \n> --\nStill no good.  WatchIT TV will not work on a with local bus video.\nIt will not work in any high reolution modes either.  The people who\nmake the card assure me that they will have a card available in June \nthat supports both local-bus and hi-res.  BTW does anyone know the\nname of the company who makes watchit tv?  Phone #?  BBS? Internet?\n\nThanks\n\nMichael Grant\n(mikgr@wordperfect.com) or\n(mikgr@wpsun4.uunet.uu.net)\n\n\n\n\n\n\n\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9098, "properties": {"category": "misc.forsale", "text": "From: hernandez@info-gw.mese.com (Manny Hernandez)\nSubject: Misc. Items (PIP TV tuner,CB Ant,Gym,Scanner & Run brds)\nDistribution: atl.forsale,misc.forsale\nOrganization: Information Gateway BBS -- +1 404-928-7873\nLines: 77\n\nI have the following items for sale.\n\nRabbit PIP tuner\nSoloFlex-like gym\nScanner (800 Mhz)\nCB Antenna\nBlazer/Jimmy running boards\n\n----\nRabbit PIP (picture-in-picture) Box.\n\nThis device when used with a VCR tuner will allow you to\nhave a second channel popped up on any corner of the screen.\nThe you can press SWAP on the remote and the small picture\nwill be swapped with the main picture.\n\nThe only limitation to this box is that it is has 36 channel\ntuner. This means that the box itself cannot tune higher\nthan cable channel 36. However, if your VCR tuner is capable\nof tuning higher than this, then you simply tune the VCR to the\nchannel desired and then swap pictures (assuming the alternate\npicture is channel 36 or lower) and it will work fine.\n\nOriginal cost: $149\nWill sell for:  $75\n\n\n----\nRunning boards for Jimmy or Blazer\n\nBrand new black running boards for the S10/15 models. I purchased them\nand realized that I could not use (after return period expired) them \nbecause of wheel trim that I have installed on my vehicle. \n\nOriginal cost: $125\nWill sell for: $ 65\n\n----\nRegency MX4200 20-Channel Scanner\nRecieves cellular frequencies (800-950 mhz) along\nwith 7 other bands. Brand new Ni-Cad battery pack.\n\nOriginal Cost: $249\nWill sell for: $135\n\n----\nGYN/Plex model 2000 workout Gym, similar to Solo-Flex \n\nThis gym is similar to Solo-Flex in that it uses resistance\nbands to increase the effective lifting weight. It is all black \nand made of steel. I have an extra set of bands that I purchased \nthat will be included.\n\nOriginal cost: $349\nWill sell for: $125\n\n----\nBig Stick CB Antenna for 27 Mhz band.\n\nWill sell for: $30\n\nBecause of weight or or other difficulty, last 2 items \nfor Atlanta area only please.\n\nI will share non-COD shipping charges. \n\nThanks\n\nManny\n\n\n-----------------------------------------------------------------------\nInformation Gateway BBS +1 404-928-7873  Public Access Newsgroups/Email\t\nPlease reply to:   \thernandez@info-gw.blackwlf.mese.com  (Sysop)\n                           hernandez@info-gw.atl.ga.us\n\n \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.430+0000", "event": "documents", "entityId": 9099, "properties": {"category": "rec.sport.baseball", "text": "From: dwarner@journalism.indiana.edu (David J.)\nSubject: Re: Yankee Bullpen - HELP!!!!!!!!!!!!!\nNntp-Posting-Host: clove.journalism.indiana.edu\nReply-To: dwarner@journalism.indiana.edu\nOrganization: Indiana University\nLines: 15\n\nAlan Sepinwall writes\n> [Bullpen Blues deleted]\n> \n> What's Buck gonna do? And what's George gonna do if this continues to happen?\n> \n> -Alan\n\nGeorge will do the only logical thing he can do when the Yanks' bullpen isn't  \nperforming -- fire the manager.\n\n--\nDavid J.(dwarner@journalism.indiana.edu)*****Blue Riddle Productions 1993\n*-------------------------------It's on.--------------------------------*\n***\"THE RAP IS AN ART EP\" is coming out on tape -- this time for real.***\n*------------------------E-mail me for the 411.-------------------------*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9100, "properties": {"category": "rec.sport.baseball", "text": "From: ez027993@dale.ucdavis.edu (Gary Built Like Villanueva Huckabay)\nSubject: Jose Canseco's Swing - 1992 vs. 1986.\nOrganization: Julio Machado Candlelight Vigil Society\nDistribution: na\nLines: 50\n\nWas going over some videos last night.....\n\nStudying 1986 and 1992 videotapes of Jose Canseco proved to be very\ninteresting.  And enlightening.\n\nHere's my analysis of Jose Canseco, circa Sep '92, and Jose Canseco,\ncirca June 1986.\n\n1.  He's bulked up too much.  Period.  He needs to LOSE about 20 pounds,\n    not gain more bulk.\n\n2.  His bat speed has absolutely VANISHED.  Conservatively, I'd say he's\n    lost 4%-7% of his bat speed, and that's a HUGE amount of speed.\n\n3.  That open stance is KILLING him.   Note that he acts sort of like\n    Brian Downing - way open to start, then closes up as ball is\n    released.  Downing could do this without significant head movement -\n    Canseco can't.  Also, note that Canseco doesn't always close his\n    stance the same way - sometimes, his hips are open, sometimes,\n    they're fully closed.  Without a good starting point, it's hard\n    to make adjustments in your swing.\n\nWhat would I do, if I were Jose?\n\nAside from salting away a large sum of a cash that I could never touch,\nso that I'd never have to work again, I'd restructure my entire swing.\n\nFirst, minimize movement before the swing.  Close and widen the stance,\nand severely cut down the stride I take on my swing.  Hopefully, this\nwill cut down on the time I need to swing, and will allow me to move\nthe bathead more freely.\n\nSecond, drop 20 pounds.  Cut out the weight work.\n\nThird, relax the wrists.  Will cost some power, but until I can find\nmy 1988 stroke, concentrate on keeping the back shoulder up, rolling\nthe wrists through the strike zone, and hit line drives.  His strength\n is more than enough so that some of those line drives will get out of\nthe park.\n\nIf Canseco's open stance and resulting bad habits are a result of his back\nproblems, he'll be out of baseball in three years.  If not, he could\nstill hit 600+ HR.\n\n\n-- \n*   Gary Huckabay   * \"You think that's loud enough, a$$hole?\"           *\n*   \"Movie Rights   * \"Well, if you're having trouble hearing it, sir,   *\n*   available thru  *  I'd be happy to turn it up for you.  I didn't     *\n*     Ted Frank.\"   *  know that many people your age liked King's X.\"   *\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9101, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Moon Colony Prize Race! $6 billion total?\nLines: 26\nNntp-Posting-Host: acad3.alaska.edu\nOrganization: University of Alaska Fairbanks\n\nI think if there is to be a prize and such.. There should be \"classes\"\nsuch as the following:\n\nLarge Corp.\nSmall Corp/Company (based on reported earnings?)\nLarge Government (GNP and such)\nSmall Governemtn (or political clout or GNP?)\nLarge Organization (Planetary Society? and such?)\nSmall Organization (Alot of small orgs..)\n\nThe organization things would probably have to be non-profit or liek ??\n\nOf course this means the prize might go up. Larger get more or ??\nBasically make the prize (total purse) $6 billion, divided amngst the class\nwinners..\nMore fair?\n\nThere would have to be a seperate organization set up to monitor the events,\numpire and such and watch for safety violations (or maybe not, if peopel want\nto risk thier own lives let them do it?).\n\nAny other ideas??\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9102, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: It is sickening to think that the Armenians are capable of such...\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 329\n\nIn article <1993Apr9.140123.12253@sol.ctr.columbia.edu> halsall@MURRAY.FORDHAM.EDU (Paul Halsall) writes:\n\n>\tIt's curious that Serdar spend his time attacking Greeks and\n>Armenians. Who just happen to be historical opponents of Turkey. The\n\nBecause, the x-Soviet Armenian government got away with the genocide \nof 2.5 million Turkish men, women and children and is enjoying the \nfruits of that genocide. And they are doing 'it' again. Are you so \nblind?\n\n>problem is, everybody - Arab, Greek, Bulgar, Serb, Russian, Tartar, \n>Circassian, Persian, Kurd - is, or has been an opponent. Who has been\n\nKurds 'R' us; Armenians 'R' not.\n\n>an ally? This historic circumstance seems to have taken a certain\n>toll on Serdar: perhaps he should be posting to alt.raving.nationalist\n>rather than soc.history?\n\nExcuse me?\n\n \"We closed the roads and mountain passes that might serve as \n  ways of escape for the Tartars and then proceeded in the work \n  of extermination. Our troops surrounded village after village. \n  Little resistance was offered. Our artillery knocked the huts \n  into heaps of stone and dust and when the villages became untenable \n  and inhabitants fled from them into fields, bullets and bayonets \n  completed the work. Some of the Tartars escaped of course. They \n  found refuge in the mountains or succeeded in crossing the border \n  into Turkey. The rest were killed. And so it is that the whole \n  length of the borderland of Russian Armenia from Nakhitchevan to \n  Akhalkalaki from the hot plains of Ararat to the cold mountain \n  plateau of the North were dotted with mute mournful ruins of \n  Tartar villages. They are quiet now, those villages, except for \n  howling of wolves and jackals that visit them to paw over the \n  scattered bones of the dead.\" \n\n                             Ohanus Appressian\n                            \"Men Are Like That\"\n                                   p. 202.\n\n\nA genocide is a deliberate and organized massacre of people in an \nattempt to exterminate a race. This is the worst crime in history. \nIt happened to the Turks in eastern Anatolia and the Armenian \ndictatorship. 2.5 million Turks and Kurds were killed in the worst \nways imaginable. It is sickening to think that the human race is capable \nof such actions, but there is no denying the fact that the Armenian \ngenocide of 2.5 million Muslims happened.\n\nPeople of Turkiye deeply sympathize with those whose relatives were \nkilled in the Turkish genocide. I understand their anger that there \nare those who still deny that the Turkish genocide indeed took place, \ndespite the fact that the genocide of 2.5 million Turks has been \nwell documented over the past six decades. We cannot reverse\nthe events of the past, but we can and we must strive to keep the\nmemory of this tragedy alive on this side of the Atlantic, so as\nto help prevent a recurrence of the extermination of a people\nbecause of their religion or their race. \n\nSource: Bristol Papers, General Correspondence: Container #32 - Bristol\n        to Bradley Letter of September 14, 1920.\n\n\"I have it from absolute first-hand information that the Armenians in \n the Caucasus attacked Tartar (Turkish) villages that are utterly \n defenseless and bombarded these villages with artillery and they murder\n the inhabitants, pillage the village and often burn the village.\"\n\n>\tLets get somethings straight.\n\nWhy not?\n\n>1.\tArmenians are no angels, but they were subject to Turkish genocide.\n\nAnd the Germans were subject to Jewish Genocide? Are you for real? \nTell me 'Halsall', were you high on \"ASALA/SDPA/ARF\" forgeries and\nfabrications when you wrote that? Where is your non-existent list\nof scholars. Here is mine: During the First World War and the ensuing \nyears - 1914-1920, the Armenian Dictatorship through a premeditated \nand systematic genocide, tried to complete its centuries-old policy \nof annihilation against the Turks and Kurds by savagely murdering \n2.5 million Muslims and deporting the rest from their 1,000 year \nhomeland.\n\nThe attempt at genocide is justly regarded as the first instance\nof Genocide in the 20th Century acted upon an entire people.\nThis event is incontrovertibly proven by historians, government\nand international political leaders, such as U.S. Ambassador Mark \nBristol, William Langer, Ambassador Layard, James Barton, Stanford \nShaw, Arthur Chester, John Dewey, Robert Dunn, Papazian, Nalbandian, \nOhanus Appressian, Jorge Blanco Villalta, General Nikolayef, General \nBolkovitinof, General Prjevalski, General Odiselidze, Meguerditche, \nKazimir, Motayef, Twerdokhlebof, General Hamelin, Rawlinson, Avetis\nAharonian, Dr. Stephan Eshnanie, Varandian, General Bronsart, Arfa,\nDr. Hamlin, Boghos Nubar, Sarkis Atamian, Katchaznouni, Rachel \nBortnick, Halide Edip, McCarthy, W. B. Allen, Paul Muratoff and many \nothers.\n\nJ. C. Hurewitz, Professor of Government Emeritus, Former Director of\nthe Middle East Institute (1971-1984), Columbia University.\n\nBernard Lewis, Cleveland E. Dodge Professor of Near Eastern History,\nPrinceton University.\n\nHalil Inalcik, University Professor of Ottoman History & Member of\nthe American Academy of Arts & Sciences, University of Chicago.\n\nPeter Golden, Professor of History, Rutgers University, Newark.\n\nStanford Shaw, Professor of History, University of California at\nLos Angeles.\n\nThomas Naff, Professor of History & Director, Middle East Research\nInstitute, University of Pennsylvania.\n\nRonald Jennings, Associate Professor of History & Asian Studies,\nUniversity of Illinois.\n\nHoward Reed, Professor of History, University of Connecticut.\n\nDankwart Rustow, Distinguished University Professor of Political\nScience, City University Graduate School, New York.\n\nJohn Woods, Associate Professor of Middle Eastern History, \nUniversity of Chicago.\n\nJohn Masson Smith, Jr., Professor of History, University of\nCalifornia at Berkeley.\n\nAlan Fisher, Professor of History, Michigan State University.\n\nAvigdor Levy, Professor of History, Brandeis University.\n\nAndreas G. E. Bodrogligetti, Professor of History, University of California\nat Los Angeles.\n\nKathleen Burrill, Associate Professor of Turkish Studies, Columbia University.\n\nRoderic Davison, Professor of History, George Washington University.\n\nWalter Denny, Professor of History, University of Massachusetts.\n\nCaesar Farah, Professor of History, University of Minnesota.\n\nTom Goodrich, Professor of History, Indiana University of Pennsylvania.\n\nTibor Halasi-Kun, Professor Emeritus of Turkish Studies, Columbia University.\n\nJustin McCarthy, Professor of History, University of Louisville.\n\nJon Mandaville, Professor of History, Portland State University (Oregon).\n\nRobert Olson, Professor of History, University of Kentucky.\n\nMadeline Zilfi, Professor of History, University of Maryland.\n\nJames Stewart-Robinson, Professor of Turkish Studies, University of Michigan.\n\n.......so the list goes on and on and on.....\n\nNow wait, there is more.\n\n  Mark Alan Epstein, 'The Ottoman Jewish Communities and their Role\n  in the Fifteenth and Sixteenth Centuries,' Klaus Schwarz Werlag,\n  Freiburg (1980).\n\n  page 19:\n\n <<During the fifteenth century, when the Ottomans were struggling to\n  reestablish themselves in the Balkans, there was considerable turmoil\n  among the Jewish communities in Central and Western Europe. Even if\n  the difficulties of the darker centuries immediately preceding the\n  fourteenth are minimized, it is easy to understand the attraction which\n  Ottoman life, particularly when compared to life in Europe, held for the\n  Jews. There is no way to tell how many Jews left Christendom for the\n  realm of the rising Muslim Ottomans, but with each account of persecution\n  in or expulsion from Christian countries it is recorded that some Jews\n  fled to Ottoman territory. The regularity of these reports suggests that\n  the Ottomans were considered reasonably tolerant protectors and that\n  there was a regular trickle of Jewish families moving southward and\n  eastward from Western and Central Europe. (...) It is evident that the\n  effects of plague, late crusades, and the general intolerance and\n  persecution of Jews in Christian Europe resulted in the redirection\n  of the whole focus of Jewish life which, for more than two centuries,\n  was to be oriented toward Muslim East.>>\n\n\n  page 21:\n\n  <<In the second quarter of the fifteenth century the foremost official\n  in the  Edirne Jewish community was Rabbi Yitzhak Sarfati the Ashkenazi\n  Chief Rabbi of the city. He was the most important rabbi in the city and\n  the author of an important letter which tells us something of the situation\n  of the Edirne Jewry in the fifteenth century. Sarfati himself was from\n  Christian Europe and supposedly wrote this letter at the behest of two\n  recent arrivals from there, who, upon seeing the prosperity and freedom\n  of the Ottoman Jews, prevailed upon him to write their European\n  coreligionists apprising them of the situation and urging them to migrate.\n  This remarkable letter advised its recipients not only of the pleasant\n  conditions in the Ottoman domains, but described as well the ease of\n  travel to Palestine and the holy places, an attraction to those who\n  would make a pilgrimage or choose to be buried there.>> (*)\n\n\n  page 41:\n\n <<...the impression gained from the Hebrew sources is that the Jews were\n firmly aware of the community of interests which existed between them\n and the Ottomans, especially in comparison to relations with the Christians\n of Europe.\n\n Confirmation of the commonality of interests between Muslims and Jews is\n also indicated by the fact that European Christians perceived the Jews\n as allies of Islam and were well aware of Muslim-Jewish cooperation.\n Certainly the activity of important Jewish financiers and politicians\n representing the Ottoman government abroad did not pass unnoticed. European\n sources are the basis for much of our knowledge of their careers. In addition\n it appears that Christian pirates plundered ''Turks and Jews,''  their\n sworn enemies, and that Europeans considered the Jews to be agents who\n regularly reported to the Ottomans.\n\n There are well-known examples of overt Jewish support for the Ottomans\n in the struggle against European powers. The two best known instances\n of Jewish support for the campaigning Ottomans are the frequently cited\n instances of the Jewish contributions to the conquests of Buda, in the\n early sixteenth century, and of Rhodes. We also have reports of sympathy\n for the Ottomans during the siege of Chios. An unpublished Ottoman\n document shows dramatically the mutual interests which existed in some\n Greek towns...>>\n\n page 43:\n\n  <<It is clear that throughout the sixteenth century it was a generally\n accepted fact that the interests of Jews and Muslims coincided frequently,\n and all parties involved, Jews, Muslims, and Christians, were aware of\n the situation.>>\n\n\n page 46:\n\n <<...it seems that the relations between Greeks and Jews were not\n particularly cordial. The two groups had little in common, few common\n interests, and perceived no common philosophical or religious tradition\n which could serve as the basis for cooperation, rather than enmity. If\n there was any identifiable bond of good will which existed between\n religious communities in the fifteenth and sixteenth centuries, it was\n that between Muslims and Jews, neither of whom had much in common with\n the Orthodox.>>\n\n page 46:\n\n <<The general impression of Muslim-Jewish relations in the Ottoman context\n during the fifteenth and sixteenth centuries is one of community of\n interests. From the earliest times the Ottomans seem to have welcomed\n Jews to their territory and to have found in the communities already\n existing in places which they conquered a cooperative element. The Jewish\n response to this tolerance was a steady flow of Jews from Christian\n countries to Ottoman domains.>>\n\n page 151:\n\n  <<From the period before 1453 we have only a few indications that the\n  Ottoman-Jewish relationship was well on the course of amity which would\n  characterize it for years afterward, but the liberality of the Ottomans,\n  in contrast to the intolerance of the Byzantines, and the protection and\n  the security which the Ottomans offered, in comparison to conditions\n  elsewhere, leave little doupt that even then both the Ottomans and the\n  Jews recognized their mutual interests...>>\n\n  page 161:\n\n  <<It is impossible to say how fundamental the Jews were in the success\n  of the Ottomans in rebuilding Istanbul or in Ottoman mercantile success\n  in the sixteenth century. That they played an important role in both\n  cannot be doupted. It is also unclear whether they were important enough\n  to say that the Ottomans would not have experienced their great success\n  without the Jews and that no other group could have been found to serve\n  the Ottomans as well as did the Jews. It is, however, unmistakably clear\n  that there are few parallels in world history to this remarkable\n  partnership between Jews and the non-Jewish society in which they lived.\n  We must conclude that the Ottomans could probably not achieved their\n  success without a group performing certain tasks for them as well as the\n  Jews did. Certainly for the Jews of the fifteenth and sixteenth centuries\n  the Ottoman Empire was a most remarkable and salubrious home.>>\n\n\n(*) A version of Rabbi Sarfati's [Tzarfati] letter is given by Prof.Shaw:\n\n  page 32:\n\n  <<Your cries and sobs reached us. We have been told of all the troubles\n  and persecutions which you have to suffer in the German lands....I hear\n  the lamentation of my brethren...The barbarous and cruel nation ruthlessly\n  oppresses the faithful children of the chosen people...The priests and\n  prelates of Rome have risen. They wish to root out the memory of Jacob\n  and erase the name of Israel. They always devise new persecutions. They\n  wish to bring you to the stake...Listen my brethren, to the counsel I will\n  give you. I too was born in Germany and studied Torah with the German\n  rabbis. I was driven out of my native country and came to the Turkish land,\n  which is blessed by God and filled with all good things. Here I found rest\n  and happiness; Turkey can also become for you the land of peace...If you\n  who live in Germany knew even a tenth of what God has blessed us with\n  in this land, you would not consider any difficulties; you would set out\n  to come to us...Here in the land of the Turks we have nothing to complain\n  of. We possess great fortunes; much gold and silver in our hands. We are\n  not oppressed with heavy taxes, and our commerce is free and unhindered.\n  Rich are the fruits of the earth. Everything is cheap, and every one of us\n  lives in peace and freedom. Here the Jew is not compelled to wear a yellow\n  hat as a badge of shame, as is the case in Germany, where even wealth and\n  great fortune are a curse for a Jew because he therewith arouses jealousy\n  among the Christians and they devise all kinds of slander against him\n  to rob him of his gold. Arise my brethren, gird up your loins, collect\n  your forces, and come to us. Here you will be free of your enemies, here\n  you will find rest...>>[13]\n\n[13] Israel Zinberg, A History Of Jewish Literature. vol.V. The Jewish\n     Center of Culture in the Ottoman Empire (Hebrew Union College Press,\n     Ktav Publishers, New York, 1974).\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9103, "properties": {"category": "talk.politics.misc", "text": "From: margoli@watson.ibm.com (Larry Margolis)\nSubject: Re: I thought commercial Advertising was Not allowed\nDistribution: na\nNews-Software: IBM OS/2 PM RN (NR/2) v0.17i by O. Vishnepolsky and R. Rogers\nLines: 35\nReply-To: margoli@watson.IBM.com (Larry Margolis)\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: netslip63.watson.ibm.com\nOrganization: The Village Waterbed\n\nIn <C50sMA.3GK@voder.nsc.com> matt@galaxy.nsc.com (Matt Freivald x8043) writes:\n>In article 164871 in talk.politics.misc, margoli@watson.ibm.com\n>(Larry Margolis) writes:\n>\n>>>I would suggest that legal precedent defines a human being (i.e., a person\n>>>whose rights are protected by the Constitution and the law) as someone with\n>>>a functioning brain.\n>\n>>No, if you want to use legal precedent, you should take a look at the\n>>Model Penal Code, on which many states base their criminal code:\n>\n>My apologies if I was unclear; I was not trying to start a statutory\n>debate, since there are many (in some cases conflicting) statutes on\n>the books.  I was merely suggesting a paradigm that might make sense\n>for a pro-choicer IMHO.\n\nAnd I was pointing out that legal precedent defines a human being as\nreferring only to the born, so your suggestion was incorrect.\n\n>>>If at some point an unborn child is a human being, the parents clearly\n>>>have the same responsibilities toward her as any other parents have toward\n>>>their children.\n>\n>>And no parent can be forced to supply bodily resources toward their children,\n>>even if necessary to save the child's life.\n>\n>There is a confusion here between action and inaction: a parent does not have\n>to run out in front of a bus to save their child's life either, but a parent\n>IS required to feed his children.\n\nThere is a confusion here about what \"bodily resources\" constitutes.  Blood\ntransfusions and organ donations involve bodily resources; your examples\ndo not.\n--\nLarry Margolis, MARGOLI@YKTVMV (Bitnet), margoli@watson.IBM.com (Internet)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9104, "properties": {"category": "rec.autos", "text": "From: aas7@po.CWRU.Edu (Andrew A. Spencer)\nSubject: Re: wife wants convertible\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 17\nReply-To: aas7@po.CWRU.Edu (Andrew A. Spencer)\nNNTP-Posting-Host: slc5.ins.cwru.edu\n\n\nIn a previous article, nuet_ke@pts.mot.com (KEITH NUETZMAN X3153 P7625) says:\n\n>\n>HELP!!!\n>my wife has informed me that she wants a convertible for her next car.\n>We live in South Fla., so we are definitely in the right are for one.\n>My wife has mentioned the Miata, but I think it is too small.\n>I would like to wait for the new Mustangs ( Dec. '93 I think).\n>Anyone have any opinions on any/all convertibles in a reasonable price range.\n>\n>                                           Thanx\n>\n\nGeo Metro LSi\n:-)\nDREW\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9105, "properties": {"category": "comp.graphics", "text": "From: prestonm@cs.man.ac.uk (Martin Preston)\nSubject: Problems grabbing a block of a Starbase screen.\nKeywords: Starbase, HP\nLines: 26\n\nAt the moment i'm trying to grab a portion of a Starbase screen, and store it\nin an area of memory. The data needs to be in a 24-bit format (which\nshouldn't be a problem as the app is running on a 24 bit screen), though\ni'm not too fussy about the exact format.\n\n(I actually intend to write the data out as a TIFF but that bits not the\nproblem)\n\nDoes anyone out there know how to grab a portion of the screen? The\nblock_read call seems to grab the screen, but not in 24 bit colour,\nwhatever the screen/window type i get 1 byte per pixel. \n\nthanks in advance,\n\nMartin\n\n\n\n\n--\n---------------------------------------------------------------------------\n|Martin Preston,      (m.preston@manchester.ac.uk)    | Computer Graphics |\n|Computer Graphics Unit, Manchester Computing Centre, |    is just        |\n|University of Manchester,                            |  a load of balls. |\n|Manchester, U.K., M13 9PL     Phone : 061 275 6095   |                   |\n---------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9106, "properties": {"category": "comp.windows.x", "text": "From: hans@xelion.nl (Hans Bos)\nSubject: Save Under with X11R5\nKeywords: Save Under, X11R5\nOrganization: Xelion bv\nLines: 26\n\nI have the following problem on X11R5 servers.\n\nWhen a window of my is obscured by a pop up window which has\nthe Save Under attribute set, the subwindows of my window are not restored.\n\nNormally, the subwindows are redrawn when the parent window gets an expose\nevent, but because the save under attribute is used for the pop up window\nthat obscured my window, no expose event is sent.\n\nWhen ExposureMask is set for the child windows, those windows are correctly\nupdated when the popup window disappears, however then the application\ngets too many expose events and you see extra redraws.\n\nEverything works fine with X11R4.\n\nIs this something that is changed between X11R4 and X11R5 (obvious)?\nIs it something I do wrong?\nIs there something that the popup window should do (which is also mine)?\nIs this a bug in X11 release 5?\n\nGreetings,\n-- \n----------------------------------------------------------------------\nHans Bos                     \t   domain : hans@xelion.nl\nXelion BV                          uucp   : ...!sun4nl!xelion!hans\nPostbus 88                         phone  : +31 15 622121\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9107, "properties": {"category": "comp.graphics", "text": "From: chris@zeus.alta-oh.com (Chris Murphy)\nSubject: Re: Needed: Plotting package that does...\nNntp-Posting-Host: zeus.alta-oh.com\nOrganization: ALTA Analytics\nLines: 38\n\nIn article <FULL_GL.93Apr18005752@dolphin.pts.mot.com>, full_gl@pts.mot.com (Glen Fullmer) writes:\n|> Looking for a graphics/CAD/or-whatever package on a X-Unix box that will\n|> take a file with records like:\n|> \n|> n  a  b  p\n|> \n|> where n = a count  - integer \n|>       a = entity a - string\n|>       b = entity b - string\n|>       p = type     - string\n|> \n|> and produce a networked graph with nodes represented with boxes or circles\n|> and the vertices represented by lines and the width of the line determined by\n|> n.  There would be a different line type for each type of vertice. The boxes\n|> need to be identified with the entity's name.  The number of entities < 1000\n|> and vertices < 100000.  It would be nice if the tool minimized line\n|> cross-overs and did a good job of layout.  ;-)\n|> \n|>   I have looked in the FAQ for comp.graphics and gnuplot without success. Any\n|> ideas would be appreciated?\n|> \n|> Thanks,\n|> --\n|> Glen Fullmer,          glen_fullmer@pts.mot.com,                  (407)364-3296\n|> \n\nHi,\n  See Roger Grywalski's response to :\n\nRe: Help on network visualization\n\nin comp.graphics.visualization.\n\nAmongst other things, it does exactly this!\n\n-- \nChris Murphy    -   chris@alta-oh.com\n(614) 792-2222      Columbus. OH.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9108, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tpeng@umich.edu (Timothy Richard Peng)\nSubject: Re: Apple 14\" monitor\nOrganization: University of Michigan -- Ann Arbor\nLines: 4\nReply-To: tpeng@umich.edu\nNNTP-Posting-Host: livy.ccs.itd.umich.edu\nOriginator: tpeng@livy.ccs.itd.umich.edu\n\nthis must be a FAQ from the very first days of the 13\"RGB!!!!\n\nand as for a better monitor for your $$, well, the NEC 4FG/3FGx are\npretty nice...\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9109, "properties": {"category": "misc.forsale", "text": "From: afhetzel@netcom.com (A.F. Hetzel)\nSubject: Aviation Headset D.C. H10-40 For Sale\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 25\n\n\nFor Sale:\n\nDavid Clark H10-40 Aviation Headset\n\nExcellent Condition (not even a scratch) -- original packaging.\n\n     Discover for yourself why the H10-40 continues to be the favorite headset\nof thousands of pilots.  It was the first headset to have the advanced M-4\namplified electret microphone - with a frequency response specifically\ndesigned to match the human voice.  Also includes durable universal boom\nassembly and a noise reduction rating (NRR) of 24dB.  Weighs 19 oz.\n\n** Includes Telex \"push to talk switch\"\n\nAsking $220.00 U.S.\n\nShipping negotiable.     \n\nFor more information respond to: afhetzel@netcom.com (Andrew)\n\n-- \n Andrew F. Hetzel            \"I complete less work before 9:00am than  \n afhetzel@netcom.com          most people do all day.\"              \n Ann Arbor, MI USA                          \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9110, "properties": {"category": "talk.politics.guns", "text": "From: \"George Guillory\" <wk04942@worldlink.com>\nSubject: Tx. Senator Bob Krueger RTKBA statement\nNntp-Posting-Host: 127.0.0.1\nOrganization: Performance Systems Int'l\nX-Mailer: WORLDLink-DOS (3.3)\nLines: 10\n\nFor those of you interested, I just finished talking with a \nrepresentative of Senator Bob Krueger's reelection campaign about his \nposition on the RTKBA.  Krueger was appointed by the  Democratic Governor \nof Texas to complete Lloyd Bentsen's unexpired term.\n\nThe representative said that Senator Krueger did not have a position and \nwould only comment on specific legislation that was pending.  No comment \nwas available on the various versions of the Brady Bill.\n\nBe warned and vote accordingly.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9111, "properties": {"category": "talk.politics.guns", "text": "From: kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm)\nSubject: Re: 2%: We're undertaxed/Poll\nOrganization: University of Illinois at Urbana\nLines: 39\n\nkennejs@a.cs.okstate.edu (KENNEDY JAMES SCOT) writes:\n\n>In article <1993Apr16.190829.17141@cunews.carleton.ca> akasacou@alfred.carleton.ca (Alexander Kasacous) writes:\n>>In article <VEAL.729.734979393@utkvm1.utk.edu> VEAL@utkvm1.utk.edu (David Veal) writes:\n>>\n>>>\n>>>       No, what you said was that we had spent money on \"guns\" rather than\n>>>\"people,\" as Canada does.  Which is ridiculous.\n>>>\n>>\n>>Once again I have over estimated the general level of intellegence of\n>>the average reader of rush-limbaugh.  Canada PER CAPITA spend more\n>>money on people where the US spend more money PER CAPITA on guns.\n\n>What exactly do you mean when you say the U.S. spends more per capita on\n>guns than Canada does?  Are you talking about the U.S. government or are you\n>talking about the purchase of guns by private citizens or both?  If you are\n>referring to private citizens then your point is irrevelant because what\n>individuals do with their money is essentially *their* business.\n\n>If, on the other hand, you meant that the U.S government spends more per\n>capita on guns than Canada does then your point *is* relevant.  So, if this\n>is true then the U.S. needs to get its priorities straight.  People are more\n>important than guns.  That is not to say that guns aren't important.  I'm\n>just saying that if the U.S government *does* spend more per capita on guns\n>than they do on people then something is awry.\n\n\n    He meant the US spends more per capita on guns than Canada which isn't\nreally surprising because we were so busy protecting the western world from\nthe USSR that all other countries could slack off on their defense spending.\n\n    I would like to see if the US spends more per capita on people than \nCanada does.  This is a true apples - apples comparison where the previous\npost was apples - oranges.\n\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9112, "properties": {"category": "sci.crypt", "text": "From: djb@silverton.berkeley.edu (D. J. Bernstein)\nSubject: Re: Off the shelf cheap DES keyseach machine\nOrganization: IR\nLines: 12\n\nIn article <1993Apr21.132318.16981@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n> And key size is one of the things that can be\n> verified externally.\n\nGee. Say they feed the 80-bit key through Snefru-8 and take the first 60\nbits of the result, then use those 60 bits as the real key. How do you\nfigure out that each key is one of 2^20 ``equal'' keys? You can try a\nbirthday attack, but if the key can be changed only once a second then\nyou will need several lifetimes to get reliable statistics. Somehow I\ndon't think you could catch the NSA at this sort of skulduggery.\n\n---Dan\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9113, "properties": {"category": "alt.atheism", "text": "From: timmbake@mcl.ucsb.edu (Bake Timmons)\nSubject: Re: Amusing atheists and agnostics\nLines: 66\n\n\nJames Hogan writes:\n\ntimmbake@mcl.ucsb.edu (Bake Timmons) writes:\n>>Jim Hogan quips:\n\n>>... (summary of Jim's stuff)\n\n>>Jim, I'm afraid _you've_ missed the point.\n\n>>>Thus, I think you'll have to admit that  atheists have a lot\n>>more up their sleeve than you might have suspected.\n\n>>Nah.  I will encourage people to learn about atheism to see how little atheists\n>>have up their sleeves.  Whatever I might have suspected is actually quite\n>>meager.  If you want I'll send them your address to learn less about your\n>>faith.\n\n>Faith?\n\nYeah, do you expect people to read the FAQ, etc. and actually accept hard\natheism?  No, you need a little leap of faith, Jimmy.  Your logic runs out\nof steam!\n\n>>>Fine, but why do these people shoot themselves in the foot and mock\n>>>the idea of a God?  ....\n\n>>>I hope you understand now.\n\n>>Yes, Jim.  I do understand now.  Thank you for providing some healthy sarcasm\n>>that would have dispelled any sympathies I would have had for your faith.\n\n>Bake,\n\n>Real glad you detected the sarcasm angle, but am really bummin' that\n>I won't be getting any of your sympathy.  Still, if your inclined\n>to have sympathy for somebody's *faith*, you might try one of the\n>religion newsgroups.\n\n>Just be careful over there, though. (make believe I'm\n>whispering in your ear here)  They're all delusional!\n\nJim,\n\nSorry I can't pity you, Jim.  And I'm sorry that you have these feelings of\ndenial about the faith you need to get by.  Oh well, just pretend that it will\nall end happily ever after anyway.  Maybe if you start a new newsgroup,\nalt.atheist.hard, you won't be bummin' so much?\n\n>Good job, Jim.\n>.\n\n>Bye, Bake.\n\n\n>>[more slim-Jim (tm) deleted]\n\n>Bye, Bake!\n>Bye, Bye!\n\nBye-Bye, Big Jim.  Don't forget your Flintstone's Chewables!  :) \n--\nBake Timmons, III\n\n-- \"...there's nothing higher, stronger, more wholesome and more useful in life\nthan some good memory...\" -- Alyosha in Brothers Karamazov (Dostoevsky)\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9114, "properties": {"category": "rec.autos", "text": "From: murthy@watson.ibm.com (Sesh Murthy)\nSubject: Re: Bimmer vs Beamer\nDistribution: usa\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: panini.watson.ibm.com\nOrganization: IBM T.J. Watson Research Center\nLines: 12\n\nIn article <1993Apr18.173934.14572@newsgate.sps.mot.com>, markm@latium. (Mark Monninger) writes:\n|> Although not in direct response to the referenced article, just to set the \n|> record straight, Beamers are BMW motorcycles. BMW cars are Bimmers. Please,\n                    ^^^^^^^\nHuh!  I though Beamers were IBM employees :-)\n\n|> let's get our terms straight.\n|> \n|> Actually, some purists would argue that the only true Bimmer is a round\n|> tail light 2002 or 1600.\n|> \n|> Mark\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9115, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gjp@sei.cmu.edu (George Pandelios)\nSubject: Re: HELP: Need DIAGNOSTIC DISK for my COMPAQ DESKPRO 286.\nOrganization: The Software Engineering Institute\nLines: 29\n\n\nIn article <Apr.11.20.16.21.1993.26848@clam.rutgers.edu>, steuer@clam.rutgers.edu (robert Steuer) writes:\n|> My emergency management group was given about 30 COMPAQ DESKPRO 286's\n|> from a local company as they were outdated.  Problem is though, it\n|> seems that the CMOS settings cannot be set without this Diagnostic\n|> Disk.\n|> We get this error msg on boot up:\n|> 162-System Options Not Set-(Run Setup)\n|>     Insert DIAGNOSTIC diskette in Drive A:\n|> \n|> If someone has this disk, please e-mail me.  Thank You!\n|> -------------------------------------------------------------------------------\n|> | Robert M. Steuer               Amateur Radio: KF2EK@N3FOA.#EPA.PA.USA.NA    |\n|> | Rutgers University             Internet: steuer@clam.rutgers.edu            |\n|> | VHF Repeater System            Cherry Hill, NJ - KF2EK Repeater 145.370MHz  |\n|> | Computer Operating System      OS/2 2.0 - Why settle for less?              |\n|> -------------------------------------------------------------------------------\n\nRobert,\n\nYou have probably solved your problem by now.  Anyway, if you can get your\nhands on QA Plus (version 4.21, maybe others as well), it will let you write\nthe COMPAQ CMOS settings.  I know because I just did it. \n\nI was just about to search for such a diagnostic disk when my brother-in-law \nfixed an old DESKPRO with it.  You might try the simtel mirror FTP sites.\n\nGeorge\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9116, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bca@ece.cmu.edu (Brian C. Anderson)\nSubject: Re: Win NT - what is it???\nOriginator: bca@packard.ece.cmu.edu\nLines: 11\nReply-To: bca@ece.cmu.edu (Brian C. Anderson)\nOrganization: Electrical and Computer Engineering, Carnegie Mellon\nDistribution: cmu\n\n\nIn article <1qmc7e$g1b@access.digex.net>, wild@access.digex.com (wildstrom) writes:\n|> From: wild@access.digex.com (wildstrom)\n|> Subject: Re: Win NT - what is it???\n|> Date: 16 Apr 1993 09:27:10 -0400\n//// Much stuff deleted //////\n\nWhat is Win32?  I upgraded to Mathcad 4.0 and it installed a directory for\nWin32 under \\windows\\system .  During the upgrade it told me that win32 was\nrequired.\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9117, "properties": {"category": "rec.sport.baseball", "text": "From: cac@owlnet.rice.edu (Christopher Andrew Campbell)\nSubject: Re: Royals\nSummary: never\nOrganization: Rice University\nDistribution: na\nLines: 12\n\nIn article <spork.735077099@camelot> spork@camelot.bradley.edu (Richard Izzo) writes:\n        B.S. about darkness deleted.\n>\tOh, lighten up.  What depresses me is that they might actually \n>finish last, which I believe hasn't happened since their second season in \n>1970.\n\tnope The Royals are the only team in the majors that have not\n     finished in last place.    ^^^^    Of course this doesn't include \n     the marlins and the rockies but they have a good chance at \n     finishing last also.\n>rich.\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9118, "properties": {"category": "comp.sys.mac.hardware", "text": "From: seanmcd@ac.dal.ca\nSubject: PowerPC ruminations; was Re: LCIII->PowerPC?\nOrganization: Dalhousie University, Halifax, Nova Scotia, Canada\nLines: 47\n\nIn article <186177@pyramid.pyramid.com>, andrem@pyrtech.mis.pyramid.com (Andre Molyneux) writes:\n> In article <1qksuq$1tt8@hal.gnu.ai.mit.edu>, mirsky@hal.gnu.ai.mit.edu\n> (David Joshua Mirsky) writes:\n> |> Hi. I own an LCIII and I recently heard an interesting rumor.\n> |> I heard that the LCIII has a built in slot for a PowerPC chip.\n> |> Is this true? I heard that the slot is not the same as the PDS\n> |> slot.  Is that true?\n> |> \n> |> Thanks\n> |> David Mirsky\n> |> mirsky@gnu.ai.mit.edu\n> \n> Well, I also have an LC III.  Popping the top revealed:\n> \n> \tOne \"socket\" for an additional VRAM SIMM\n> \n> \tOne \"socket\" for a 72-pin RAM SIMM\n> \n> \tOne socket for a flat-pack FPU\n> \n> \tA processor-direct slot (PDS) identical to the LC/LC II, but with\n> \tan additional set of connetions to one side (for the full 32-bit\n> \tdata path that the LC/LC II lacked\n> \n> That's it.  I guess a board with a PowerPC chip could be made that would fit\n> in the PDS, but that's the only place.\n> \nSo, will it be possible to have a NuBus or PDS PowerPC upgrade, or will it \nrequire a logic board swap? It would be interesting for Apple to come out with\na NuBus PowerPC that allowed use of the CPU's 680x0, like RocketShare. But I \nguess that's getting a bit fantastic!\n\nI was wondering, since MacWeek reported that developers were 'seeded' with\nPowerPCs on a NuBus card.\n\nAlso, any word on machine arrivals or estimated speed? Last I heard, the \nestimates were around 3-4 times the speed of a Quadra in native RISC mode. I\nheard an Apple employee mumble something about the arrival of PowerPC machines\nat a much earlier date that Q1 94, but I doubt it's true.\n\nFinally, is the PowerPC developer's CD 'mini-course' available? I saw it \nadvertised in the developer's university calendar, and I'd like to know if it's\nat all *interesting*.\n\nSean\n--------------\nseanmcd@ac.dal.ca\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9119, "properties": {"category": "sci.crypt", "text": "From: bill@Celestial.COM (Bill Campbell)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Celestial Software, Mercer Island, WA\nDistribution: na\nLines: 53\n\nIn <1993Apr17.032828.14262@clarinet.com> brad@clarinet.com (Brad Templeton) writes:\n\n:It occurs to me that if they get a wiretap order on you, and the escrow\n:houses release your code to the cops, your code is now no longer secure.\n\nA very good point!\n\n:It's in the hands of cops, and while I am sure most of the time they are\n:good, their security will not be as good as the escrow houses.\n\nWhy should we expect the cops to be honest!  They're underpaid\nfor the risks they face every day.  The media dumps on the all\nthe time and blames them for all sorts of discrimination,\nbrutality....  How can we expect them to be more than human?\n\nBesides there are lots of cases of police abuses ranging from\nprotection scams to outright robbery (when I worked in D.C. there\nwas a breakin at a local Radio Shack and the alarm company heard the\ncops responding to the call over the audio pickup in the store:-).\n\n:What this effectively means is that if they perform a wiretap on you,\n:at the end of the wiretap, they should be obligated to inform you that\n:a tap was performed, and replace (for free) the clipper chip in your\n:cellular phone so that it is once again a code known only to the\n:escrow houses.\n\nThen you would know that Big Brother had been listening.  Does he\nreally want to let you know?\n\n:Do the police normally reveal every tap they do even if no charges are\n:laid?   In many ways, it would be a positive step if they had to.\n:Judges set time limits on warrants, I assume.  At the end of the time\n:limit they should have to renew or replace your chip.\n\n:That's if we go with this scheme, which I am not sure I agree with.\n\nI'm completely against anything that makes it easier for the\ngovernment to encroach on the rights of individuals.  The\nfounders of this country spent a lot of effort limiting the power\nof the government and specifying exactly what the governments\nrights were (and this didn't include a gov't spy in every\nbedroom).  IMHO, there are entirely too many things going on\ntoday designed to preserve the government organism at the expense\nof individuals.  Look around and reread 1984 and many early\nHeinlein books.  Aren't there many parallels between the thought\npolice (can you spell Waco Texas?), and Heinlein's ``Crazy Years''?\n\nBill\n-- \nINTERNET:  bill@Celestial.COM   Bill Campbell; Celestial Software\nUUCP:   ...!thebes!camco!bill   6641 East Mercer Way\n             uunet!camco!bill   Mercer Island, WA 98040; (206) 947-5591\nSPEED COSTS MONEY -- HOW FAST DO YOU WANT TO GO?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9120, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Wings will win\nOrganization: University of Toronto Chemistry Department\nLines: 42\n\nIn article <ragraca.735309624@vela.acs.oakland.edu> ragraca@vela.acs.oakland.edu (Randy A. Graca) writes:\n>golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n>\n>>Bryan Murray has done very little as GM...Yzerman, Fedorov, Cheveldae,\n>>Chaisson, the whole Russian strategy was a product of the previous\n>>GM...Murray has made a couple of decent trades...that's about it...\n>>that would hardly rank him as the best GM.\n>\n>There are many teams in the NHL who have taken a liking to Russian players.\n>The \"whole Russian strategy\" is not specific to Detroit or to Devellano,\n>who was GM before Murray.  What the previous GM also did was to trade \n>away several players who have gone on to do well with other teams, most\n>notably (in my memory) Murray Craven, who had a few very good years with\n>Philly after leaving here.  Also, it's not the volume of trades that will \n>necessarily improve a team, but the quality of them.  Trading Adam Oates\n>for Bernie Federko was just plain stupid, even if Federko used to be a \n>great player at one time.  Most of Murray's trades have worked significantly\n>to the Wings' advantage, with those that didn't being soured mainly by \n>injury to the players involved (such as Troy Crowder, who suffered back\n>problems from which he never really recovered).\n>\n\nDevallano went earlier and more extensively to the Russian strategy\nthan anyone else...and was the first GM to \"waste\" high draft choices\non young Russians...Devallano would still be GM but he succombed to\nDemers pleading to make the Oates-Federko et al trade...which is the\ndeal that sealed his fate.\n\nMurray has made some decent trades...no doubt...but these are more\ndue to the stupidity or cheapness of other teams than brilliance on\nhis part...Washington was too cheap to pay Ciccarelli so they\nessentially gave him away...and Carson was really a big anchor to\nthe team, and he was able to sucker a rookie GM to give him Paul\nCoffey for deadweight.\n\nIf Detroit still fails this year because he was one defenseman short...\nthen he will have wasted an opportunity because Manson was available,\nand he was unable to pull the trigger.  It is his judgement that he\nhas enough with what he's got...Yzerman doesn't have that many more\nyears in his prime.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9121, "properties": {"category": "talk.politics.misc", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Hate Crimes Laws\nArticle-I.D.: midway.1993Apr6.043935.27366\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 40\n\nIn article <1993Apr5.050127.22304@news.acns.nwu.edu> dmeier@casbah.acns.nwu.edu (Douglas Meier) writes:\n>In article <1993Apr4.011042.24938@isc-br.isc-br.com> steveh@thor.isc-br.com\n>(Steve Hendricks) writes:\n>>In article <1993Apr3.211910.21908@news.acns.nwu.edu>\n>>dmeier@casbah.acns.nwu.edu (Douglas Meier) writes:\n>>>...\n>>>If someone beats up a homosexual, he should get charged for assault and\n>>>battery.  Why must we add gay bashing to the list?  Isn't this a sort of\n>>>double jeopardy?  Or am I just being a fascist again?\n>>\n>>() To deter an epidemic of \"gay bashing\" that has not been deterred by\n>>   assault laws.  \n>\n>So we ought to make beating up a homosexual more illegal than beating up a\n>straight?  \n\nAnd who's advocating that?  Hate crimes laws are aimed at the motivations\nof the acts.  Just like premeditated homicide is treated stricter than\nheat-of-passion homicide.\n\n>>() No, it is not \"double jeopardy.\"  A single act may lead to multiple\n>>   charges and multiple crimes.\n>\n>I think what you meant to say here was, \"With the current mutation of the US\n>Constitution under the current police state, someone may be charged multiple\n>times for one act if the victim in question is of the right shade.\"  A single\n>act should never merit more than on charge.  \n\nSo if I set off a bomb in the World Trade Center, I can only be charged with\nmore than one murder, and not the other five deaths and extensive property\ndamage?  After all, the bomb was a single act.\n\n>Douglas C. Meier\t\t|  You can't play Electro-magnetic Golf\n\n\n-- \nted frank                 | \"However Teel should have mentioned that though \nthf2@kimbark.uchicago.edu |  his advice is legally sound, if you follow it \nthe u of c law school     |  you will probably wind up in jail.\"\nstandard disclaimers      |                    -- James Donald, in misc.legal\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.431+0000", "event": "documents", "entityId": 9122, "properties": {"category": "misc.forsale", "text": "From: erc@plitvice.berkeley.edu (Eric Ng)\nSubject: Sega Genesis plus 9 sports games for sale\nNntp-Posting-Host: plitvice.berkeley.edu\nOrganization: University of California at Berkeley\nDistribution: usa\nLines: 23\n\nFOR SALE\n\n\t1 Sega Genesis (including all cables, manuals, boxes)\n\t1 controller\n\t9 games, including all manuals and boxes:\n\t\tSonic the Hedgehog\n\t\tRoad Rash\n\t\tJohn Madden Football '92\n\t\tN.H.L. Hockey\n\t\tSportstalk Baseball\n\t\tBulls vs. Lakers and the N.B.A. Playoffs\n\t\tJohn Madden Football '93\n\t\tN.H.L.P.A. Hockey\n\t\tSuper Monaco GP II\n\nAll of the above for $300 (or best offer); price includes UPS COD\nshipping.\n\nSend e-mail to erc@zabriskie.berkeley.edu if interested.\n\n-eric\n--\neric ng  erc@zabriskie.berkeley.edu  ...!ucbvax!zabriskie!erc\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9123, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nSummary: More on failed governments\nOrganization: Failed Libertarian Opportunities, Inc.\nLines: 24\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <18APR199314034390@venus.tamu.edu> gmw0622@venus.tamu.edu (Mr. Grinch) writes:\n>In article <1993Apr18.172531.10946@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes...\n>> \n>:It would seem that a society with a \"failed\" government would be an ideal\n>:setting for libertarian ideals to be implemented.  Now why do you suppose\n>:that never seems to occur?...\n>\n>\n>I fail to see why you should feel this way in the first place.  Constant\n>combat isn't particularly conducive to intellectual theorizing.  Also,\n>they tend to get invaded before they can come to anything like a stable\n>society anyway. \n\nAnd the reason that the Soviet Union couldn't achieve the ideal of pure\ncommunism was the hostility of surrounding capitalist nations...Uh huh.\nSomehow, this all sounds familiar.  Once again, utopian dreams are \nconfronted by the real world...\n\n>\n>Mr. Grinch\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9124, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: For sale; Edmonton Oilers.\nOrganization: University of Toronto Chemistry Department\nLines: 31\n\nIn article <mcm12B2w165w@ersys.edmonton.ab.ca> mbevan@ersys.edmonton.ab.ca (Mark Bevan) writes:\n>\n>He was already offered $65 million for them from Northlands Coliseum\n>but refused the offer.... I don't think he is going to sale. I think he\n>may decide to move the team to the States though where he can draw\n>more revenue from the team.\n>\n\nPocklington just wanted to wake up the powers that be holding political\noffice, in Northlands, and in the business community that the Oilers\nwith their current lease arrangement are in a state where on a yearly\nbasis they will likely have an operating loss based on \"normal\" hockey\nrevenues and expenses.  That he did this was a good thing...it is better\nhe complain early, and make the city aware of a potential looming crisis\nbefore he begins to lose millions and millions of dollars...which would\ntruly jeopardize the franchise.\n\nPocklington's first option is not to sell or to move, but to sell\na minority share of the team (to realize some of the appreciated value\nof the team) and to get a better arena deal, either in Northlands, or\nvia a new building.  Pocklington probably isn't going to get exactly\nwhat he wants...but ultimately he will probably get enough, or will\nsell to someone who will probably get enough.\n\nThere are a lot of risks in moving a team also...\n\n...one has to remember \"Peter Puck's principle\"...it is better to\nspend other people's money than one's own if at all possible.\n\nGerald\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9125, "properties": {"category": "comp.sys.mac.hardware", "text": "From: d88-jwa@hemul.nada.kth.se (Jon Wtte)\nSubject: Re: Stereo sound problem (?) on mac games\nKeywords: sound stereo, Quadra, 900, PowerBook, 170\nOrganization: Royal Institute of Technology, Stockholm, Sweden\nLines: 26\nNntp-Posting-Host: hemul.nada.kth.se\n\nIn <1qsfak$skc@network.ucsd.edu> dpb@sdchemw2.ucsd.edu (Doug P. Book) writes:\n\n>But, the following games only play out of the left channel:\n\n...\n\n>But still, STEREO system beeps do play in stereo, through BOTH speakers.\n\nMac sound hardware is diverse; some macs play in stereo and\nmix the output (the SE/30 for instance) while others play in\nstereo but ONLY has the left channel for the speaker, while\nsome are \"truly\" mono (like the LC)\n\nDevelopers know that stuff played in the left channel is\nguaranteed to be heard, while the right channel isn't. Some\nsend data to both, some only send data to the left channel\n(the first is preferrable, of course)\n\nCheers,\n\n\t\t\t\t\t/ h+\n-- \n -- Jon W{tte, h+@nada.kth.se, Mac Hacker Deluxe --\n Engineering: \"How will this work?\" Science: \"Why will this work?\" Management:\n \"When will this work?\"  Liberal Arts: \"Do you want fries with that?\"\n                     -- Jesse N. Schell\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9126, "properties": {"category": "rec.sport.hockey", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <JOLD@vma.cc.nd.edu>\nSubject: Re: Octopus in Detroit?\n <1993Apr18.100640.1@nickel.laurentian.ca>\nLines: 9\n\nIn Detroit, the octopus is a symbol from the old days of the league. In\nthe era of the Original 6, four teams made the playoffs.  To win the Cup,\na team had to win two seven-game series - in other words it took 8\nplayoff wins to win the Cup.  The octopus (8 legs) has become a common\nDetroit symbol.  Every year around playoff time people start sneaking\noctopus (octopi?) into the Joe Louis Arena and throwing them onto the ice.\n\n                                J. Old\n                                e-mail: JOLD@vma.cc.nd.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9127, "properties": {"category": "talk.politics.misc", "text": "From: dil8596@ritvax.isc.rit.edu\nSubject: Re: Stop putting down white het males.\nNntp-Posting-Host: vaxb.isc.rit.edu\nReply-To: dil8596@ritvax.isc.rit.edu\nOrganization: Rochester Institute of Technology\nLines: 33\n\nit may be a little late to reply to your tirade and also on an inaapropriate\nboard but along with all of the so called great things the white male has done they have also contributed to society by means of mass genocide, the theft of\nideas and cultures, creating and the perptration of historical lies throughouttime among many other horrible activities.\nbut every culture has its upside and its downside.  it seems to me that the \nwhite male (must be extremely ignorant to qualify for the following - if\nyou're not disregard) and western culture are the only things that look to \nactively classify things as good or bad, worthy or unworthy (ya dig)\nit can be seen with slavery and the manipulation and destruction of the \namerican indians civilization.  nothing but selfish acts that benefit one \ngroup of people (and not even their women get or got respected or regarded as\nequal - ain't that some stuff)\n\nwhite men - not being specific - but in a lot of cases are just wack or have\nwack conceptions of how the world is to serve their purpose.  \n\njust look at david koresh - throughout history (i may be shortsighted on this one so excuse my predjudiced ignorance) only white men associate themselves withbeing GOD.  no other culture is ignorant or arrogant enough to assume such a \nposition.  and then to manipulate and mislead all those people.\n\nhmmm...  i'd say look in your history books but since it seems that history \nhas been written to glorify the exploits of white men you'd only find lies.\n\nawww that's enough already from me because this has nothing to do with sex or this board.  if ya'd like to continue this discussion e-mail me and we can \ncompare and contrast ideas\n\n\t\t\ti like conflict - it's educational when the \n\t\t\tcommuncation is good......................\n\nmy $.02 worth\n\n(i apologize to those who thought this was going to be about SEX but i was\nprompted by a response i found up here)\n\ndave lewis - frisky HANDS man\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9128, "properties": {"category": "sci.electronics", "text": "From: klg@mookie.mc.duke.edu (Kim Greer)\nSubject: Re: electronic odometers (was: Used BMW Question ..... ???)\nOrganization: Duke Medical Center - Radiology\nLines: 27\nNntp-Posting-Host: mookie.mc.duke.edu\n\nIn article <1993Apr15.044636.29924@slcs.slb.com> dcd@se.houston.geoquest.slb.com (Dan Day) writes:\n>That's scary -- if there's a way to set an arbitrary mileage figure\n>into the odometer, you can't trust *any* odometer reading, even\n>if you can prove that the odometer itself is the same one that\n>came on the car originally.\n\n  I was wondering if anyone can shed any light on just how it is that these\nelectronic odometers remember the total elapsed mileage?  What kind of\nmemory is stable/reliable enough, non-volatile enough and independent enough\n(of outside battery power) to last say, 10 years or more, in the life of a\nvehicle?  I'm amazed that anything like this could be expected to work for\nthis length of time (especially in light of all the gizmos I work with that\nare doing good to work for 2 months without breaking down somehow).\n\nSide question:  how about the legal ramifications of selling a used car with\na replaced odometer that starts over at 0 miles, after say 100/200/300K\nactual miles.  Looks like fraud would be fairly easy - for the price of a\nnew odometer, you can say it has however many miles you want to tell the\nbuyer it has.\n\nThanks for any insight.\n\n\nKim Greer                       \nDuke University Medical Center\t\t klg@orion.mc.duke.edu\nDiv. Nuclear Medicine  POB 3949\t\t voice: 919-681-5894\nDurham, NC 27710  \t\t         fax: 919-681-5636\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9129, "properties": {"category": "rec.autos", "text": "From: larry@boris.webo.dg.com (Larry Rogers)\nSubject: Re: Saturn 91-92 Manual Transmission Problem\nIn-Reply-To: cimjfg@sn370.utica.ge.com's message of Tue, 13 Apr 1993 20:50:21 GMT\nOrganization: Data General, Westboro, Mass.\nLines: 34\n\n\nI had exactly the same problem with a 1981 Horizon.  Third gear would\njust disengage.  Engine would rev up.  Kind of disconcerting.\n\nI sold that car quite a few years back but the memory of that tranny\nsticks with me.  It also had a clutch chatter in first that the dealer\ncould not fix.  If the lemon law had been in place then, that car\nwould have been covered.\n\nI have had several Jap cars since then (figuring the Horizon was my\ncontribution to the American Auto Companies), and have never seen any\nbad behavior with the exception of a Toyota Tercel with a bit of\nclutch chatter that they did fix on the first try.\n\nAnyway, from that day forward, I have sworn that I would never\npurchase another American car with a standard.  American manufacturers\ndon't have a clue on how to manufacture five speed transmissions and\nhave been doing the automatics much longer and on many more cars.\nHowever, I hate automatics, so I am still buying Jap cars.\n\nNot sure this is any help, but other cars do this too.\n\nCheers, Larry\n--\n    @@               Larry Rogers               *\n   @@@               larry_rogers@dg.com        *   Big Brother\n   @@@ &&&           larry@boris.webo.dg.com    *   is Watching\n    @@ &&            Data General  508-870-8441 * \n\nThe opinions contained herein are my own, and do not reflect the\nopinions of Data General or anyone else, but they should.\n\n\"Sometimes we are the windshield, sometimes we are the bug\"\n   Dire Straits\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9130, "properties": {"category": "soc.religion.christian", "text": "From: cmgrawbu@eos.ncsu.edu (CHRISTOPHER M GRAWBURG)\nSubject: HELPHLPHELPHELP\nReply-To: cmgrawbu@eos.ncsu.edu (CHRISTOPHER M GRAWBURG)\nOrganization: North Carolina State University, Project Eos\nLines: 149\n\n*******\n*******  This is somewhat long, but pleas read it!!!!!!!!!!!!!!!!!\n*******\n\n\n\nBoy am i glad you decided to read this. I've got a problem that \nI need as many people's help from as possible.\n\nBefore I go in to the details of this, let me go ahead and tell\nyou that (though it may sound it) this is not one of those boy\nmeets girl problem...at least not totally like that to me....Anyway...\n\nOK, I am a 19 year old Sophmore at NCSU. About 10 years ago, my family\nand I were vacationing at the coast in a cottage we rented. Across the\nstreet, was ths girl who would whistle at me whenever she saw me...\nher name in Erin. Well, we became friends that week at the beach and have\nbeen writing each other for about 10 years....there was a period of about\n2 years we lost contact..but that was a while ago. \n\nBy the way...Erin lives in Kansas and me in NC.\n\nOK, last year in one of her letters, she says that she is coming\nback to NC to see some of her family who are gonna be there. So I\ndrove about 4 hours to see her. This is where it begins....I spent\nthe whole day with Erin....one of the best days of my life. Even though\nwe had been writing each other, we still had to get used to being\nin person....she has got to be the most incredible woman I ever met.\n(She's one year older than me BTW). I mean, no person in the world could\nask for a better person. Not only was she incredibly beautiful (not to \nmention WAY out of my league...although I'm  not unattractive mind you), but\nshe had a great personality and a great sence of humor. Her family\nis one of those families who goes to church but that is about the\nextent of their Christianity...you know the kind of people. But she\nknows I am a Christian. \n\nWell, you get the idea of what I think of her. If there is ever such\na thing as love at first sight....I found it. That was last year...I kid\nyou not when I say that I have thought about her EVERY day since then.\n\nIn out letters, Erin and I always kid each other about not finding\ndates..(which is true for me, but I know it can't be for her).\nShe has had some problems at home, her folks split up and she ended\nup leaving school....Now we are at the present...\n\nLet me give you part of the letter I got from her last week....\n\n\n\"Okay, now I'm going to try to explain my life to you. I'm not\ngoing to KU anymore because something just isn't right. College\njust wasn't clicking with me here. Greek life is really big here and\nthat just isn't my way. I wasn't taking any classes that truly interested\nme & i really have no idea of what i want to do with my life. I was\ninterested in something medical (Physical Therpy) & I love working with \nkids, but 'it' just didn't work for me at this university. And my parents\ncould tell.\n\n\"So I'm working full time at the Bass Store [Bass shoes that is] and now\nI have a part-time job at a local daycare. I work in the infant room\nM-W-F. I've really enjoyed it so far. It spices up my week a little bit and \nit's great experience.\n\n\"As of now, I'm not planning on going back to school in the very\nnear future. The main reason being my indecision on what I want to\nstudy. But I definatley plan on going back within the next couple of\nyears. Where? I have no idea--except for one thing, it won't be\nto Kansas.\n\n\"Right noew I'm discussing a promotion with my boss and district \nmanager. It looks like I'll train at the store I work at now for\nabout 4-6 months as Assistant Manager and when that's done, I'll \nbasically be given a list of stores (newly or soon to be built) to \nchose where i would like to manage. I've pretty much decided on either\none of the Carolinas (hopeully close to the beach) Wouldn't it\nbe fun to actually see each other more than once every few years??\nWhat do you think abou that? I would like to know your opinion.\n\n\"This job would pretty much be temporary. But it is VERY GOOD pay\nand any thye of management experience would look good on an application\nor resume. The company is solid and treats it employees very well. Good\nbenefits, bonuses & medical plans. Plus- after 1 year of full-time\nservice, they will reimburse tuition. I do have school money waitng\nfor me, but this will help, especially since I will probably end up \npaying out of state tuition wherever I go.\n\n\"Chris, i really would like to know what you think of my decision. I \nrespect your opinion. I've been completely lost for what to do for \nsoooo long that when the opportunity came along it sounded really \ngood. I do like my job although I'm about 99.9% sure that i want\nto do more with my life than reatil management..but it IS something.\nI don't think earning about $20,000 a year for a 20 year old female\nis too bad. \n\n\"Anyway, onto your career decisions. I'll solve your problem right now,\nMARRY ME...\n\n\"You can do your pilot thing-- I like to be by myself sometimes! Seriously\n(or not as seriously)- do what will make you the happiest, worry about the\nhome life later.\"\n\n***********\n\nOK, well I'm sure you see what has got me so uptight. What do you\nthink she meant about the marraige thing?? \n\nI dream at night about marrying her, and then she mentions it in her\nletter!!! I don't know what to think??\n\nSince she wants to move to the Carolina's should i search out a \nBass store near here and aske her to come to Carolina???\n\nI always pick on those people who graduate from high school and\nget married....but what does she mean??? \n\nI've had a lot of stress lately with exams and also the fact that \nI don't date beacause 1) No time  2) Not that much $$ 3) that\nmost college women are wrapped up in the social scene with  the\nGreeks whic as a Christian I can't support-----and here\nshe says she doesn't like the Greek thing either!!\n\nMaybe I'm so stunned because there is actually a girl that I am\nso attracted to paying some real attention to me.\n\nI mean, what if she did move to NC...what would I do??? I'm\nonly 19 and she 20....I'm only a Sophmore struggling through\nclasses..\n\nI have prayed about this over the past year from time to time..\nsaying, \"God if she is the right one, let the situation open up..\"\n\nCould this be my sign???\n\nI would do ANYTHING to get her to NC...here is some moree that makes \nit worse..\n\nShould I call her?? I'm terrible over the phone. I don't even like\nto talk to my friends here for longer than 3 minutes.\n\nI mean, what would a girl as perfect as her want with a very\naverage guy like me??\n\nI'm really confused....I would really appreciate any help i can get.\n\nThanx \n\nChris\n\n[I have a feeling that it might be more appropriate to talk with\nChris directly via email.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9131, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: japanese moon landing?\nOrganization: U of Toronto Zoology\nLines: 22\n\nIn article <C5LDoD.7pC@news.cso.uiuc.edu> rls@uihepa.hep.uiuc.edu writes:\n>allow it to go into lunar orbit without large expenditures of fuel to slow\n>down. The idea is that 'natural objects sometimes get captured without\n>expending fuel, we'll just find the trajectory that makes it possible\". The\n>originator of the technique said that NASA wasn't interested, but that Japan\n>was because their probe was small and couldn't hold a lot of fuel for\n>deceleration.\n\nActually, Hiten wasn't originally intended to go into lunar orbit at all,\nso it indeed didn't have much fuel on hand.  The lunar-orbit mission was\nan afterthought, after Hagoromo (a tiny subsatellite deployed by Hiten\nduring a lunar flyby) had a transmitter failure and its proper insertion\ninto lunar orbit couldn't be positively confirmed.\n\nIt should be noted that the technique does have disadvantages.  It takes\na long time, and you end up with a relatively inconvenient lunar orbit.\nIf you want something useful like a low circular polar orbit, you do have\nto plan to expend a certain amount of fuel, although it is reduced from\nwhat you'd need for the brute-force approach.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9132, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mhembruc@tsegw.tse.com (Mattias Hembruch)\nSubject: Re: Telix problem\nArticle-I.D.: tsegw.C5w3HD.JIv\nOrganization: Toronto Stock Exchange\nLines: 20\n\ndericks@plains.NoDak.edu (Dale Erickson) writes:\n\n>When I use telix (or kermit) in WIN 3.1, or use telix after exiting windows\n>to dos, telix can not find the serial port. If you have some ideas on how\n>to solve this problem or where I can find further information, send me email\n>or send it to the news group.  Thanks.\n\nYou may have to define your serial ports under windows (I think it's the \nControl Panel, PORTS options..)\n\n>Dale Erickson \n>dericks@plains.nodak.edu\n>-- \n>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nMattias\n-- \nMattias Hembruch\n>> My views do not necessarily reflect those of the TSE. <<\nE-mail: mhembruc@tse.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9133, "properties": {"category": "misc.forsale", "text": "From: thad@cup.portal.com (Thad P Floryan)\nSubject: Re: Maxtor 2190 info needed (was Re: UNIX PC Software for sale)\nOrganization: The Portal System (TM)\nLines: 25\n\nIn article <colinm.735327894@cunews>\ncolinm@max.carleton.ca (Colin McFadyen) writes:\n\n|  Does anyone know what the jumpers should be set to on the Maxtor 2190??\n|  I have a 2190 that came off of a VS2000 that I would like to use on a PC.\n\nFrom the Maxtor Product Specification and OEM Manual, Doc. 1011002 Rev. F,\npage 35:\n\n         J2, (20)                 J1 (34)            POWER\n      |xxxxxxxxxx|        |XXXXXXXXXXXXXXXXX|       | UUUU |\n+-----+          +--------+                 +-------+      |\n|                            4 C 3 2 C 1                   |\n|                          [ O O O O O O ]                 |\n\n\nThe only option you \"should\" jumper is the drive select, shown as \"4C32C1\"\nabove.  There is also a drive power-up option jumper (elsewhere on the\ndrive's board) but the odds of that having been unset are slim.\n\nSince the 3B1 \"normally\" has only one HD, you would jumper betwwwn \"C1\" to\nselect the first (possible) drive address; if the 2190 is your second drive\non the 3B1, then jumper between \"2C\".\n\nThad Floryan [ thad@btr.com, thad@cup.portal.com, thad@netcom.com ]\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9134, "properties": {"category": "sci.space", "text": "From: bobc@sed.stel.com (Bob Combs)\nSubject: Re: Blow up space station, easy way to do it.\nOrganization: SED, Stanford Telecom, Reston, VA 22090\nLines: 16\n\nIn article <1993Apr5.184527.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>This might a real wierd idea or maybe not..\n>\n>\n>Why musta  space station be so difficult?? why must we have girders? why be\n>confined to earth based ideas, lets think new ideas, after all space is not\n>earth, why be limited by earth based ideas??\n>\nChoose any or all of the following as an answer to the above:\n \n\n1.  Politics\n2.  Traditions\n3.  Congress\n4.  Beauracrats\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9135, "properties": {"category": "misc.forsale", "text": "From: DMCOLES@NUACVM.ACNS.NWU.EDU\nSubject: Chicago area roommate needed (Evanston)\nNntp-Posting-Host: nuacvm.acns.nwu.edu\nOrganization: Northwestern University\nLines: 21\n\n  Non-smoking roommate needed\n          to sublet\n   1BR in 2BR carpeted apt.\n         in Evanston, IL\n  near the Dempster el stop\n     parking is available\n \nRent is $322.50/mo. + 1/2 utils.\n \n  avail. May 1 - beg./end Aug.\n (entire apt. available Sept. 1)\n \nRoommate is 26 years-old, vegetarian,\n  non-smoking female who works at\n         Northwestern\n \n    No neat freaks please!\n \nCall Denise (708) 491-7603 (w)\n            (708) 869-8307 (H)\n     dc@nwu.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9136, "properties": {"category": "sci.crypt", "text": "From: hanson@kronos.arc.nasa.gov (Robin Hanson)\nSubject: Estimating Wiretap Costs/Benefits\nNntp-Posting-Host: jabberwock.arc.nasa.gov\nOrganization: NASA/ARC Information Sciences Division\nLines: 38\n\nI'm attempting to write a serious policy paper examining whether the\nproposed wiretap (or \"Clipper\") chip is a cost-effective tool for\npolice investigation.  That is, ignoring concerns about government\nintrusions into individual privacy, is the value of easy wiretaps to\ninvestigators greater than the cost to the communications industry,\nand their customers, to support this wiretap technology?  \n\nA rough estimate suggests that wiretaps are worth about five million\ndollars per year to U.S. law enforcement agencies.  (In 1990, 872 U.S.\nwiretaps led to 2057 arrests, while total police expenditures of $28\nbillion led to 11.25 million arrests [ref US Statistical Abstracts].)\nI'm working on estimating this wiretap benefit more accurately, but\nI'd like to ask hardware experts out there to help me with estimating\nthe costs of the new proposed wiretap technology.\n\nPlease send me quotable/citeable estimates for:\n\n- How many chips which would need to be made per year to keep all\n  phones with wiretap chips?\n- How much would it cost to make each chip?\n- How much did it cost to develop this technology in the first place?\n- How much more would supporting hardware, people, etc. cost, per chip?\n- What percentage cheaper would encryption chips and support have been\n  if private enterprise could compete to meet customer encryption needs?\n- What percentage of phone traffic would be taken up by the proposed\n  \"law enforcement blocks\"?\n- What is the total cost of handling all phone traffic per year?\n\nPut another way, the question I'm asking is, what if each police\nagency that wanted a particular wiretap had to pay for it, being\ncharged their share of the full social cost of forcing communication\nto be wiretap compatible?  Would they choose to buy such wiretaps, or\nwould they find it more cost-effective to instead investigate crimes\nin other ways?\n-- \nRobin Hanson  hanson@ptolemy.arc.nasa.gov \n415-604-3361  MS-269-2, NASA Ames Research Center, Moffett Field, CA 94035\n510-651-7483  47164 Male Terrace, Fremont, CA  94539-7921 \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9137, "properties": {"category": "talk.politics.guns", "text": "From: nate@psygate.psych.indiana.edu (Nathan Engle)\nSubject: Re: ATF BURNS DIVIDIAN RANCH - UPDATE\nNntp-Posting-Host: mushroom.psych.indiana.edu\nOrganization: Psych Department, Indiana University\nDistribution: usa\nLines: 28\n\n<34AEJ7D@CMUVM.BITNET> writes:\n>Ah yes, I see a few liberal weenies have come out of the woodwork\n>to defend the burning of the children.\n\n    Actually all the liberals I've seen have deplored the burning of \nchildren. I would far preferred that the Davidians had not set the \nfire that burned themselves and their children to death, but I don't \nbelieve that the responsibility for the fire (or the almost complete \nabsense of attempts to escape the blaze) can be placed at the door of \nthe Federal authorities.\n\n>Probably drooled all over themselves while watching the TV coverage.\n\n    Not so. My wife got me a convenient plastic \"drip pan\" for Christmas...\n\n>Probably had a few like that in Nazi Germany, as well.\n\n    Yeah, those Nazis. You know how we liberals just love those Nazis.\n\n>Oh yeah, ATF/FBI now claims, according the the media, that there are\n>a few survivors. The number seems to vary minute by minute.\n\n    Yeah, as information trickles in... funny how that works...\n\n--\nNathan Engle                        Software Juggler\nPsychology Department               Indiana University\nnate@psygate.psych.indiana.edu      nengle@silver.ucs.indiana.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9138, "properties": {"category": "comp.windows.x", "text": "From: venky@engr.LaTech.edu (Venky M. Venkatachalam)\nSubject: FAQ in comp.windows.x\nOrganization: Louisiana Tech University\nLines: 6\nNNTP-Posting-Host: ee11.engr.latech.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nIs there any FAQ list for Programming in X windows? \n\nThankx for the info\n\t\t\tbye\n\t\t\t\tvenky\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9139, "properties": {"category": "misc.forsale", "text": "From: goldberg@oasys.dt.navy.mil (Mark Goldberg)\nSubject: Camera bags for sale\nReply-To: goldberg@oasys.dt.navy.mil (Mark Goldberg)\nDistribution: usa\nOrganization: Naval Surface Warfare Center, Annapolis, MD\nLines: 43\n\n\n    1. Large padded Cordura bag (maker unknown) nge exterior, black\n\t straps and interior.  Five outside pocket plus lid compartment.\n\t Lid overlaps.  Internal dividers can be repositioned.  Held\n\t my whole 2-1/4 Bronica system, Metz flash, etc. $50.\n\n    2. Small \"Nikon\" shoulder bag. SORRY.  SOLD & SHIPPE.\n\n    3. Small \"Nikon\" belt pouch.  Khaki like #2.  Similar in design\n\t Army ammo pouch - belt clips, etc.  Holds flash or small\n\t zoom, lens cleaner, etc.  $5.\n\n    4. Domke belt pouch, black.  Also has metal loops of you want to\n\t attach strap.  Velcro closure.  Similar to #3 in concept, but\n\t bigger.  Holds 35-135 zoom or flash, small accessories, etc.\n\t Hardly used; cost me $20 originally - will sell for $15.\n\n    5. Coast camera bag - tan with brown strap.  Main and front pocket.\n\t Can hold AF slr with small zoom plus flash, film, etc.  Matl\n\t looks like Gore-Tex but I don't think it really is. $15.\n\n\n\nTERMS:  Payment in advance by money order/bank check, or cash.  Buyer\npays shipping.  #1 must go UPS.  For the others, send me an adequate\nself addressed mailing envelope (padded recommended) with enough postage.\n   /|/| /||)|/  /~ /\\| |\\|)[~|)/~   |   Everyone's entitled to MY opinion.\n  / | |/ ||\\|\\  \\_|\\/|_|/|)[_|\\\\_|  |      goldberg@oasys.dt.navy.mil\n========Imagination is more important than knowledge. - Albert Einstein=======\n\n\n\n\n\n\n   /|/| /||)|/  /~ /\\| |\\|)[~|)/~   |   Everyone's entitled to MY opinion.\n  / | |/ ||\\|\\  \\_|\\/|_|/|)[_|\\\\_|  |      goldberg@oasys.dt.navy.mil\n========Imagination is more important than knowledge. - Albert Einstein=======\n\n\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9140, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: We're from the government and we're here to help you\nSummary: Historical examples and the US Constitution\nOrganization: Free the Barbers, Inc.\nLines: 76\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <1993Apr8.200326.27560@infonode.ingr.com> albeaj@jima.b17d.ingr.com (Jim Albea) writes:\n>\n>\n>In article <1993Mar24.235606.15959@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes:\n>\n>Ouch, now that really hurts.  I'm being accused of no breadth nor depth\n>to my historical knowledge because I'm unwilling to agree that economic\n>inequality leads to poverty and from there to \"social and political\n>instability\".  You go read your history again.  POVERTY is the main\n>engine of social instability (in this context, we'll put aside religious\n>turmoil, mass migrations, etc.).  \n\nWell, the fact of the matter is that poverty is imperfectly related to \nsocial and political instability, while economic inequality is much more\nstrongly related.  In virtually all major revolutions including\nEngland (the Puritan revolution), France, Russia and China, the \nrevolutions occurred as economies were undergoing substantial long term \ngrowth and poverty was declining.  What sets off revolutions is massive\ninequality coupled with a perception on the part of those at the bottom\nthat social change is possible.\n\nIf \"poverty (were) the main engine of social instability,\" this typical\nhistorical pattern would not hold.  In fact, revolutions would have been\nfar more typical before the nineteenth century than since that time.\n\n[Much deleted...]\n\n>|> Gee, Jim, if you'll check the Constitution you'll find \"in order to...\n>|> promote the general welfare...do ordain and establish this Constitution...\"\n>|> I'm surprised you missed it.  It's right there in the first paragraph.  I\n>|> would have thought you would have made it at least through the preamble.\n>\n>You almost got it right, and it was a good try, but you should follow your\n>own advice.  The PREAMBLE to the CONSTITUTION does read as you have quoted\n>but let us not forget that after all it is only the preamble.  It is not\n>a binding part of the Constitution and carries no weight in the law.  That \n>poor tortured paragraph has got to be one of the most unfortunate passages \n>in the English language - witness the legions of blowhards like yourself who\n>think those vague flowery phrases are part of the law of the land.  Do you\n>really believe that a politician only has to give lip service to \"promoting\n>the general welfare\" to be within the limits of the constitution?\n\nSorry, buddy, but some other \"blowhards\" managed to include the \"general\nwelfare\" in another portion of the constitution.\n\nArticle I Section 8: \"The Congress shall have the power to lay and collect\ntaxes...to pay the debts and provide for the common defence and GENERAL\nWELFARE of the United States...\"\n\nI guess they wanted to make sure everyone understood they meant what they\nsaid in the preamble.\n\n>Just to make sure you've got the point, let's do a little experiment.  What\n>if the constitution read as follows?\n>\n>Preamble: We the people, to promote the general Welfare, do ordain\n>          and establish this Constitution for the United States of\n>          America.\n>\n>Constitution:  The Federal Government shall have one function and one\n>               function only - to provide for the defense of the nation.\n>\n\nBut as noted above, the constitution doesn't say that, does it?\n\n>The government would not then have two functions: defense and Welfare.  \n\nBut since it explicitly includes both the general welfare and defense\nin Article I, Section 8, I guess you'll grant that botha are constitutional\nfunctions.  Right?\n\njsh\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9141, "properties": {"category": "talk.politics.misc", "text": "From: jamesdon@infoserv.com (James A. Donald)\nSubject: Re: \"Winning\" Tax Case!\nOrganization: The Liberty Trust\nLines: 22\nX-Mailer: TMail version 1.13\n\n\n> Do you have a strange definition of \"winning\" that you titled this thread\n> \"Winning Tax Case!\"?  Sloan *lost*.  By a unanimous 3-0 decision that tore\n> his arguments to pieces.  He went to prison using these arguments.  See\n> United States v Sloan, 939 F2d 499 (7th Cir 1990), aff'g 704 F Supp 880.\n\nThe tax protesters are legally correct, but they are put in jail anyway.\n\nThe weakness of the governments legal position is shown by the fact that when\nsomeone protesting tax or gun laws on legal grounds gets a federal jury trial\n(very rare) the feds blatantly stack the jury, with the same old faces turning\nup time after time.\n\nHowever Teel should have mentioned that though his advice is legally sound, if\nyou follow it you will probably wind up in jail.\n\n----------------------------------------------------------------------\n                       |\nJames A. Donald        |  Joseph Stalin said: \"Ideas are more powerful\n                       |  than guns.  We would not let our enemies have\njamesdon@infoserv.com  |  guns, why should we let them have ideas.\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.432+0000", "event": "documents", "entityId": 9142, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nArticle-I.D.: martha.1993Apr6.161640.18833\nOrganization: University of Tennessee Division of Continuing Education\nLines: 46\n\nIn article <C4tM1H.ECF@magpie.linknet.com> manes@magpie.linknet.com (Steve Manes) writes:\n>hambidge@bms.com wrote:\n>: In article <C4psoG.C6@magpie.linknet.com>, manes@magpie.linknet.com (Steve Manes) writes:\n>\n>: >: Rate := per capita rate.  The UK is more dangerous.\n>: >: Though you may be less likely to be killed by a handgun, the average\n>: >: individual citizen in the UK is twice as likely to be killed\n>: >: by whatever means as the average Swiss.  Would you feel any better\n>: >: about being killed by means other than a handgun? I wouldn't.\n>: \n>: >What an absurd argument.  Switzerland is one-fifth the size of the\n>: >UK with one-eigth as many people therefore at any given point on\n>: >Swiss soil you are more likely to be crow bait.  More importantly,\n>: >you are 4x as likely to be killed by the next stranger approaching\n>: >you on a Swiss street than in the UK.\n>\n>: You are betraying your lack of understanding about RATE versus TOTAL\n>: NUMBER. Rates are expressed, often, as #/100,000 population.\n>: Therefore, if a place had 10 deaths and a population of 100,000, the\n>: rate would be 10/100,000.  A place that had 50 deaths and a population\n>: of 1,000,000 would hav a rate of 5/100,000.  The former has a higher\n>: rate, the latter a higher total.  You are less likely to die in the\n>: latter.  Simple enuff?\n>\n>For chrissakes, take out your calculator and work out the numbers.\n>Here... I've preformatted them for you to make it easier:\n>\n>\t\t\thandgun homicides/population\n>\t\t\t----------------------------\n>\tSwitzerland :\t24 /  6,350,000\n>\t         UK :    8 / 55,670,000\n>\n>.... and then tell me again how Switzerland is safer with a more\n>liberal handgun law than the UK is without...by RATE or TOTAL NUMBER.\n>Your choice.\n\n       If you want to talk \"less likely to get killed with a handgun\"\nyou'd have a point.  \"Safer\" includes other things than simply handguns,\nand you can't conclude \"safer\" by ignoring them.\n\n       Now if somebody's got the total homicide rates...\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu  (Mail to VEAL@utkvm1.utk.edu will bounce.)\n\"Taxes are not levied for the benefit of the taxed.\" - Lazarus Long\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9143, "properties": {"category": "sci.crypt", "text": "From: rab@well.sf.ca.us (Bob Bickford)\nSubject: Re: More technical details\nNntp-Posting-Host: well.sf.ca.us\nOrganization: Whole Earth 'Lectronic Link\nLines: 17\n\n\nThe system, or 'family', key would appear to be cryptographically\nuseless, since *every* chip must know it and be able to remove its\neffects from the bitstream.  I daresay that it will be widely known\nalmost immediately after this system is deployed, and since it's been\npointed out that there is not a separate decrypt key -- the same key\nis used for both encryption and decryption -- there goes any benefit\nto the use of a system-wide key in SkipJack.\n--\n Robert Bickford      \"A Hacker is any person who derives joy from\n rab@well.sf.ca.us    discovering ways to circumvent limitations.\" rab'86\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\"I recognize that a class of criminals and juvenile delinquents has\ntaken to calling themselves 'hackers', but I consider them irrelevant\nto the true meaning of the word; just as the Mafia calls themselves\n'businessmen' but nobody pays that fact any attention.\"            rab'90\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9144, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tcking@uswnvg.com (Tim King)\nSubject: Gateway 2000 & booting from floppy\nOrganization: Ground Zero\nLines: 17\nX-Newsreader: Tin 1.1 PL5\n\n\nI have a Gateway 4DX-33V with my 3.5 inch floppy as drive A.  I\naccidentally discovered that if a have a floppy from ONE particular\nbox of diskettets in the A drive when I boot up, rather than getting\nthe \"Non-system diskette\" message, the machine hangs and the CMOS\ngets overwritten (luckily, Gateway sends a print of the standard\nCMOS settings with their systems).  This only happens with a box\nof pre-formatted Fuji disks that I have, no other disks cause this\nproblem.  If I re-format one of the Fuji disks, the problem goes away.\nI did a virus scan (scan v1.02) of the disks and found nothing.\n\nAnyone have any idea what is going on here?  Hardware problem?  A\nvirus that can't be detected?  The system reading in garbage from\nthe boot sector?\n\n--\nTim King, tcking@uswnvg.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9145, "properties": {"category": "talk.politics.guns", "text": "From: rubinoff+@cs.cmu.edu (Robert Rubinoff)\nSubject: Re: Gritz/JBS/Liberty Lobby/LaRouche/Christic Insitute/Libertarian/...\nNntp-Posting-Host: spino.soar.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 15\n\nIn article <93105.230230U23590@uicvm.uic.edu> <U23590@uicvm.uic.edu> writes:\n>Note that Bo Gritz was on the Populist party ticket with David\n>Duke (for veep) in 1988 until he found out that Duke was leading\n>he ticket, when he withdrew his candidacy.  So Gritz gave up his\n>chance to be Vice President of the US just to aviod supporting\n>Duke.\n\nI'd hardly call that \"giving up his chance to be Vice President of the US\";\nthe chance of the Populist Party ticket winning is essentially nil.  Still,\nit does imply that he doesn't want to be associated with Duke.\n\n  Robert\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9146, "properties": {"category": "talk.politics.misc", "text": "From: kane@buast7.bu.edu (Hot Young Star)\nSubject: Re: Why not concentrate on child molesters?\nOrganization: Astronomy Department, Boston University, Boston, MA, USA\nLines: 24\n\nIn article <15149@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n\n>In article <113328@bu.edu>, kane@buast7.bu.edu (Hot Young Star) writes:\n\n>>When are you going to admit that the data you presented show\n>>just this---that only about 3% of child molesters are gay, and thus are\n>>NOT overrepresented with respect to the general incidence of homosexuality?\n\n>When someone can show something besides a Redbook article.\n\nCorrect me if I'm wrong, but isn't this irrelevant?\n\nEither the data shows something, or it doesn't. Regardless of what other\nstudies show.\n\nAdmit it. What you SHOWED to us doesn't prove that gay men are more likely\nto be molesters.\n\nBrian\n------------------------------------------------------------------------------\nkane@{buast7,astro}.bu.edu (Hot Young Star) Astronomy Dept, Boston University,\nBoston, MA 02215. True personal salvation is achieved by absolute faith in\nones true self.\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9147, "properties": {"category": "soc.religion.christian", "text": "From: revdak@netcom.com (D. Andrew Kille)\nSubject: Re: Serbian genocide Work of God?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 22\n\nJames Sledd (jsledd@ssdc.sas.upenn.edu) wrote:\n: Are the Serbs doing the work of God?  Hmm...\n\n: I've been wondering if anyone would ever ask the question,\n\n: Are the governments of the United States and Europe not moving\n: to end the ethnic cleansing by the Serbs because the targets are\n: muslims?\n\n: Can/Does God use those who are not following him to accomplish\n: tasks for him?  Esp those tasks that are punative?\n\n: James Sledd\n: no cute sig....  but I'm working on it.\n\nAre you suggesting that God supports genocide?\nPerhaps the Germans were \"punishing\" Jews on God's behalf?\n\nAny God who works that way is indescribably evil, and unworthy of\nmy worship or faith.\n\nrevdak@netcom.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9148, "properties": {"category": "sci.electronics", "text": "From: sciamanda@edinboro.edu\nSubject: Re: Emergency Vehicle Sensors?  traffic-light-phreaks?\nOrganization: Edinboro University of PA\nLines: 21\n\nIn article <LINNIG.93Apr7154239@m2000.dseg.ti.com>, linnig@m2000.dseg.ti.com (Mike Linnig) writes:\n> Folks,\n> \n> Here in the Dallas area I have noticed that it is quite common to see an odd\n> \"sensor\" on top of traffic lights.  These have been here for at least six\n> years.  I've often wondered what they are.\n> . . . \n> Mike Linnig, Texas Instruments Inc. | 97.43% of all statistics are made |\n> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nHere in Erie, PA there is a system in the inner city called Rado-Lite (a \ntrade name) which allows police and ambulance vehicles to gain right of \nway by controlling traffic lights through RADIO signals.  The receivers \nlook much like what you describe, but they include a UHF whip antenna (less\nthan a foot tall) and a light which flashes on and off to let traffic know that \nan emergency vehicle has taken control and is approaching.  Local folklore \nsays this system was invented here; I don't know if this company has any \nother installations.  It has been in operation for at least 30 years, going \nonly by my memory.\n\nBob Sciamanda\nEdinboro Univ of PA\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9149, "properties": {"category": "comp.sys.mac.hardware", "text": "From: mlobbia@sdcc13.ucsd.edu (Kaneda)\nSubject: SUMMARY: ZyXEL Strings\nKeywords: ZTerm, FirstClass, Telefinder strings\nLines: 90\nNntp-Posting-Host: sdcc13.ucsd.edu\n\n\nI write:\n>I recently got a ZyXEL U-1496E modem.  It's great, but I'm still having\n>some problems figuring out what strings to use in what applications.\n>I basically need strings for Z-term, FirstClass client, and Telefinder\n>client.  I've been able to get FirstClass and Z-term working by using \n>another modem's settings in FirstClass and copying them for Z-term.\n>However, it still has problems - Z-term, for example, will list 'ERROR'\n>the first time I try dialing after starting the problem.  If I cancel and\n>try again, it works fine.  Telefinder is even worse - I can't get it to\n>even wake up the modem.  So, if anyone uses a ZyXEL for any of these\n>programs, I'd greatly appreciate you sending me the setup strings you use\n>Thanks in advance!\n \nyoshio@CS.UCLA.EDU writes:\n>For zterm, I initially did the following:\n>atz4\n>at&d0\n>at&w0\n>Then I set my init string to atz0.\n>That's it!\n \nRSMITH@PEARL.TUFTS.EDU (Rod Smith) writes:\n>I can't help you with FirstClass or Telefinder, but I've been using ZTerm\nand a\n>ZyXEL for close to two weeks now.  Here's what I did:\n>\n>Once in ZTerm, set hardware handshaking on and the bps rate to 57,600.\n(You've\n>probably already done this.)  Then I typed:\n>\n>at&d0\n>at&w\n>\n>The first line sets the modem to ignore the DTR line (necessary for\nhardware\n>handshaking with most, though not all, Mac hardware handshaking cables).\nThe\n>second stores this setting in non-volatile memory in the modem, so it's the\n>default when the modem starts.  In the modem preferences dialog, I have the\n>modem initialization string set to \"at&z0^M\", which just insures that the\n>stored setting is used (useful if starting ZTerm after using something like\nthe\n>fax software or MacWoof, which change the settings in other ways). \n>Alternatively, you could leave the factory default the way it is and just\nset\n>the ZTerm initialization string to \"at&d0^M\", which would accomplish the\nsame\n>thing IF the modem is always on before you start ZTerm, and IF other\nprograms\n>don't modify the settings.  Or \"at&z0&d0^M\" would work even if other\nprograms\n>modify the modem's settings.  I do it the way I do because I sometimes\nforget\n>to turn on the modem before launching ZTerm, and this way I'm assured of\nhaving\n>the correct DTR handling when the modem's powered up.\n \nAfter comparing the above strings with my AT commands reference guide, I\ncame up with:\nATZ0L2N2X5&D0S11=50^M\nThis is entered in the 'Initialize' box on the 'Modem Preferences' in Zterm.\nQuick summary of each commmand:\nZ0\t- Reset modem to User Profile 0.\nL2\t- Speaker volume at 2 (fairly quiet)\nN2\t- Ring volume at 2 (fairly quiet)\nX5\t- Display connect info according to setting 5 (see manual)\n&D0\t- Assume DTR (computer) is always on\nS11=50\t- Dial speed at 50 (as fast as ZyXEL can handle)\n\nIn FirstClass, I used this same string, with the addition of S0=0 right\nbefore the S11 command, in the setup box.  This disables the auto-answer \nfunction of the modem for FirstClass.  I based my modem setting on the Supra\n14.4FAX, and just changed the above mentioned string.\n\nIn Telefinder, I based my setting on the Zoom V42 - HH setting.  I changed\nthe 'Modem Initialization' string to the same one I used for FirstClass, and\neverything seems to work fine.\n\nSorry it took so long to get this summary out.  If someone wants to forward\nthis to the /info-mac/reports directory at sumex-aim, it might save other\nnewbie ZyXEL users like myself the trouble of setting up their strings, and\nalso save the net some redundant messages.  If anyone else has something\nto add, feel free.\n\nMarcus\nmlobbia@ucsd.edu\n-- \n///  Marcus Lobbia            ///\n\\\\\\  mlobbia@sdcc13.ucsd.edu  \\\\\\\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9150, "properties": {"category": "comp.graphics", "text": "From: SITUNAYA@IBM3090.BHAM.AC.UK\nSubject: test....(sorry)\nOrganization: The University of Birmingham, United Kingdom\nLines: 1\nNNTP-Posting-Host: ibm3090.bham.ac.uk\n\n==============================================================================\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9151, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ross@vorpal.ucsb.edu (Richard Ross)\nSubject: Powerbook with a math coprocessor?\nKeywords: powerbook, math coprocessor, pb160\nLines: 9\n\n\nI really want to buy a powerbook and would like one that can run \nMathematica. So I need a coprocessor but I can not afford a PB180.\n(who can?)  Is it possible to put a MCP in a PB160? The guy at the  \nbookstore says no but I didn't think he had too much of a clue.\n\nPlease respond by e-mail:  ross@sbphy.physics.ucsb.edu\n\nthanks in advance, richard\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9152, "properties": {"category": "sci.crypt", "text": "From: marc@math.uni-sb.de (Marc Conrad)\nSubject: Re: List of large integer arithmetic packages\nOrganization: Computational Linguistics Dept., U Saarbruecken\nLines: 530\nNNTP-Posting-Host: vieta.math.uni-sb.de\n\nmrr@scss3.cl.msu.edu (Mark Riordan) writes:\n\n[not very comprehensive list deleted]\n\nThere is a very comprehensive list in sci.math.symbolic, \nwhich detailed descriptions of many packages. \n(Especially you, Mark, should update your list :-) )\nHere it is: \n\n\n\t\t\tAvailable    Systems\n\nThis is the  list of  currently  developed  and   distributed  software  for \nsymbolic math applications. No informations is supplied on systems no longer \nbeing supported like: SAINT, FORMAC, ALPAK, ALTRAN, MATHLAB, SIN, SAC, CAMAL, \nScratchPad, MuMath, SHEEP, TRIGMAN, ANALITIK, SMP or CCALC.\n\nFor more detailed info on any of the systems below,  look into the directory\npub/Symbolic_Math in the anonymous FTP of \"math.berkeley.edu\". No particular \nrecommendation is made for any of these.      If you want prices contact the \ncompany. Programs are listed by (aprox.) the reverse order of the number  of \nmachines they run on, in each class, general purpose systems first.\n\nIf you have any information to add to this list (we know we are missing\nMuPAD & FELIX) please send it to :\n\n\t\t\tca@math.berkeley.edu\nPaulo Ney de Souza\nDepartment of Mathematics\nUniversity of California\nBerkeley CA 94720 \t\t\t\tdesouza@math.berkeley.edu\n\nGENERAL PURPOSE\n===============\n \nMaple:: \n\tType:      commercial\n\tMachines:  Most impressive list of machines I seen for a program:\n                   workstations (DEC, HP, IBM, MIPS, Sun, SGI, Apollo), \n                   386 PC's, Mac, Amiga, Atari, AT&T 3B2, Gould, Convex,\n                   NCR, Pyramid, Sequent, Unisys and Cray's.\n\tContact:   maple@daisy.waterloo.edu\n\t\t   Waterloo Maple Software, 160 Columbia Street West,\n        \t   Waterloo, Ontario, Canada     N2L 3L3\n        \t   Phone: (519) 747-2373\n\tVersion:   5 Release 1\n\tComments:  General purpose , source available for most routines ,\n\t\t   graphics support in 5.0. A demo of the program for PC-DOS\n\t\t   can be obtained from anonymous FTP at\n\t\t   wuarchive.wustl.edu:/edu/math/msdos/modern.algebra/maplev.zip\n\nMathematica::\n\tType: \t   commercial\n\tMachines:  Cray YMP down to Mac's and PC's\n\tContact:   info@wri.com, Phone: 1-800-441-MATH\n\t\t   Wolfram Research, Inc.\n \t           100 Trade Center Drive, Champaign IL 61820-7237\n\tVersion:   2.1\n\tComments:  General purpose, Notebook interface on Next, Mac, \n\t           nice graphics. \n\nMacsyma:: \n   \tType:      commercial\n    \tMachines:  Sun-3, Sun-4 (SPARC), VAX (UNIX and VMS), Apollo, \n\t\t   HP 9000, DEC RISC, PC386/DOS, Symbolics computers, \n\t\t   368/387 and 486 (no SX's) PC's.\n    \tContact:   macsyma-service@macsyma.com, Phone: 800-MACSYMA\n\t\t   Macsyma Inc,  20 Academy St., Arlington MA 02174-6436\n    \tVersion:   depends on machine: 417.100 is the latest (for Sun-4, HP, \n\t\t   and DEC RISC), 417.125 for PC's\n   \tComments:  General purpose, many diverse capabilities, one of the \n\t\t   oldest around. Includes propietary improvements from \n\t\t   Symbolics and Macsyma Inc. Descendant of MIT's Macsyma.\n\nDOE-Macsyma:\n\tType:      distribution fee only\n\tMachines:  GigaMos, Symbolics, and TI Explorer Lisp machines.  The NIL \n                   version runs on Vaxes using the VMS system.  The public \n                   domain Franz Lisp version, runs on Unix machines, including \n                   Suns and Vaxes using Unix.\n\tContact:   ESTSC - Energy Science & Technology Software Center \n\t\t   P. O. Box 1020 Oak Ridge TN 37831-1020\n\t\t   Phone: (615) 576-2606\n\tComments:  Help with DOE-Macsyma, general and help with issues such as\n\t           obtaining support, new versions, etc: lph@paradigm.com\n                   Leon Harten from Paradigm Assoc. Paradigm Associates, Inc. \n                   29 Putnam Avenue, Suite 6 Cambridge, MA 02139 (617) 492-6079.\n\nMaxima::\n\tType:\t   Licence for a fee. Get licence from ESTC before download.\n\tMachines:  Unix workstations (Sun, MIPS, HP, PC's) and PC-DOS (beta).\n        Contact:   wfs@rascal.utexas.edu (Bill Schelter)\n\tVersion:   4.155\n\tComments:  General purpose -  MIT Macsyma family. Common Lisp \n                   implementation by William F. Schelter, based on Kyoto\n\t\t   Common Lisp. Modified version of DOE-Macsyma available\n\t\t   to ESTSC (DOE) sites. Get the licence from ESTSC (phone:\n\t\t   615-576-2606) and then dowload the software from \n\t\t   DOS: math.utexas.edu:pub/beta-max.zip   or\n\t\t   UNIX: rascal.ics.utexas.edu:pub/maxima-4-155.tar.Z\n\t\t   Currently their charge for 1 machine license is $165 to\n\t\t   universities. Site licenses are also available.\n\nAljabr::\n\tType:      commercial\n\tMachines:  Mac's with 4Meg of RAM. \n\tContact:   aljabr@fpr.com,  Phone: (508) 263-9692, Fort Pond Research.\n                   15 Fort Pond Road, Acton MA  01720 US\n\tVersion:   1.0\n\tComments:  MIT Macsyma family descendant, uses Franz LISP.\n\nParamacs::\n\tType:      commercial \n\tMachines:  VAX-VMS, Sun-3, Sun-4, (SGI and Mac's on the works)\n\tContact:   lph@paradigm.com\n\tVersion:   ???\n\tComments:  ???\n\nVaxima::\n\tType:\t   distribution fee only\n\tMachines:  VAX-Unix\n        Contact:   ESTSC (see DOE-Macsyma above)\n\tVersion:   ???\n\tComments:  General purpose -  MIT Macsyma family descendant.\n\t\t   Includes source and binaries with assembler for Macsyma \n\t\t   and Franz Lisp Opus 38\n\nReduce::\n\tType:      commercial\n\tMachines:  All Unix workstations, a variety of mainframes, \n \t           MS-DOS/386/4Mbyte and Atari ST. \n\tContact:   reduce-netlib@rand.org\n\tVersion:   3.34 \n\tComments:  General purpose \n\nFORM::\n\tType:      Public domain verison 1 , Version 2 commercial\n\tMachines:  Msdos, AtariSt , Mac, Sun3, Sun4/sparc, Apollo, NeXT,\n \t\t   VAX/VMS, VAX/Ultrix , DECStation , and others\n\tContact:   t68@nikhef.nl (Jos Vermaseren)\n\t\t   Binary versions of version 1 are available\n \t\t   by anonymous ftp from nikhef.nikhef.nl (192.16.199.1)\n\tVersion:   1 and 2.\n\tComments:  General purpose , designed for BIG problems , batch-like\n \t\t   interface \n\nAxiom::\n\tType:      commercial\n\tMachines:  IBM RS 6000's and other IBM plataforms\n\tContact:   ryan@nag.com,  Phone: (708) 971-2337 FAX: (708) 971-2706\n                   NAG - Numerical Algorithms Group, Inc\n\t\t   1400 Opus Place, Suite 200, Downers Grove, Il 60515-5702\n\tVersion:   ???\n\tComments:  General purpose.\n\nSIMATH::\n\tType:      anonymous ftp \n\tMachines:  Suns, Apollo DN and Siemens workstations.\n\tContact:   simath@math.uni-sb.de\n\tVersion:   3.5\n\tComments:  General purpose\n\nDerive::\n\tType:      commercial \n\tMachines:  Runs on PC's and HP 95's.\n\tContact:   808-734-5801 \n \t\t   Soft Warehouse Inc. 3615 Harding Ave, Suite 505\n                   Honolulu, Hawaii 96816-3735\n        Version:   2.01\n\tComments:  Said to be very robust, gets problems that other larger\n \t\t   programs fail on. Low cost. \n\nTheorist::\n\tType:      commercial\n\tMachines:  Mac's\n        Contact:   prescien@well.sf.ca.us, phone:(415)543-2252 fax:(415)882-0530\n\t\t   Prescience Corp, 939 Howard St #333, San Francisco, CA 94103\n\tVersion:   1.11\n\tComments:  General purpose , Graphics , If you like the mac interface\n \t\t   you'll love this , fixed precision ( 19 digits ), runs on\n \t\t   smaller mac's than MMA.\n\nMAS::\n\tType:      Anonymous FTP\n\tMachines:  Atari ST (TDI and SPC Modula-2 compilers), IBM PC/AT \n\t\t   (M2SDS and Topspeed Modula-2 compilers) and Commodore \n\t\t   Amiga (M2AMIGA compiler).  \n\tContact:   H. Kredel. Computer Algebra Group\n\t\t   University of Passau, Germany\n        Version:   0.60\n\tComments:  MAS is an experimental computer algebra system combining \n\t\t   imperative programming facilities with algebraic \n\t\t   specification capabilities for design and study of algebraic\n\t\t   algorithms. MAS is available via anonymous ftp from: \n    \t\t   alice.fmi.uni-passau.de = 123.231.10.1 \n\nMockMma::\n\tType:      anonymous FTP from peoplesparc.berkeley.edu\n\tMachines:  Anywhere running Common LISP.\n\tContact:   fateman@cs.berkeley.edu\n        Version:   ???????\n\tComments:  It does Matematica (or I mispelled that!).\n\nWeyl::\n\tType:      anonymous FTP from ftp.cs.cornell.edu /pub/Weyl\n\tContact:   rz@cs.cornell.edu\n        Version:   4.240\n\tComments:  Intended to be incorporated in larger, more specialized\n\t\t   systems.\n\nFLAC::\n\tType:      ???\n\tMachines:  IBM PC's (DOS)\n\tContact:   Victor L. Kistlerov, Institute for Control Sciences, \n\t\t   Profsoyuznaya 65, Moscow, USSR\n\tVersion:   ???\n\tComments:  Functional language\n\n\nGROUP THEORY\n============\n\nCayley::\n\tType:      Cost recovery\n\tMachines:  SUN 3, SUN 4, IBM AIX and VM machines, Apollo, DEC\n\t           VAX/VMS, Mac running A/UX 2.01 or higher and Convex.\n\tContact:   cayley@maths.su.oz.au \n\t\t   Phone: (61) (02) 692 3338, Fax: (61) (02) 692 4534\n\t\t   Computational Algebra Group\n                   University of Sydney\n                   NSW 2006 Australia\n\tVersion:   3.8.3\n\tComments:  Designed for fast computation with algebraic and\n \t\t   combinatorial structures such as groups, rings,\n \t\t   fields, modules and graphs. Although it began as a\n \t\t   group theory system it has recently evolved into a\n \t\t   general (abstract) algebra system.\n\nGAP::\n\tType:      anonymous ftp (free, but not PD; basically GNU copyleft)\n\tMachines:  All Unix workstations, ATARI ST, IBM PC and MAC \n        Contact:   gap@samson.math.rwth-aachen.de\n\tFTP site:  samson.math.rwth-aachen.de (137.226.152.6) & math.ucla.edu\n\tVersion:   3.1 (3.2 to be released Dec 92)\n\tComments:  group theory calculations.\n\n\nALGEBRA & NUMBER THEORY\n=======================\n\nPARI::\n\tType:      anonymous ftp  \n\tMachines:  Most workstations, Mac and NeXT\n\tContact:   pari@mizar.greco-prog.fr\n                   anonymous ftp to math.ucla.edu (128.97.64.16)\n\t           in the directory /pub/pari\n\tVersion:   1.35\n\tComments:  Number theoretical computations, source available, key \n\t\t   routines are in assembler, ascii and Xwindows graphics. \n\t\t   PC-DOS version available from anonymous FTP at \n\t\t   wuarchive.wustl.edu:/edu/math/msdos/modern.algebra/pari386\n\nMacaulay::\n\tType:      anonymous ftp\n\tMachines:  Complete source available, Binary Mac versions available\n\tContact:   anonymous ftp to zariski.harvard.edu (128.103.1.107)\n\tVersion:   ???\n\tComments:  focused on Algebra type computations ( polynomial rings\n \t\t   over finite fields ), things like that.\n\nKant::\n\tType:      ???\n\tMachines:  ???\n\tContact:   KANT Group\n\t\t   Prof. Dr. M. E. Pohst / Dr. Johannes Graf v. Schmettow \n\t\t   Mathematisches Institut, Heinrich-Heine-Universit\\\"at \n\t\t   Universit\\\"atsstr. 1, D-4000 D\\\"usseldorf 1 \n\t\t   pohst@dd0rud81.bitnet or schmetto@dd0rud81.bitnet\n        Version:   1 & 2\n\tComments:  Kant (Computational  Algebraic  Number  Theory) is \n\t\t   subroutine  package for algorithms  from geometry of \n\t\t   numbers and  algebraic number theory. There are  two \n\t\t   versions of  Kant:  Kant  V1 is written  in Ansi-Fortran 77,\n\t\t   while Kant V2 is built on the Cayley Platform and written in \n\t\t   Ansi-C.\n\nLiE::\n\tType:      commercial \n\tMachines:  Unix workstations (SUN, DEC, SGI, IBM), NeXT, PC's,\n                   Atari and Mac's.\n\tContact:   lie@can.nl, Phone: +31 20 592-6050,  FAX: +31 20 592-4199\n                   CAN Expertise Centre, Kruislaan 413, \n                   1098 SJ Amsterdam, The Netherlands\n\tVersion:   2\n\tComments:  Lie group computations\n\nUBASIC::\n\tType:\t   anonymous FTP (ubas830.zip)\n\tMachines:  Mac and IBM PC's\n\tContact:   malm@argo.acs.oakland.edu, Phone: (313) 370-3425\n\t \t   Donald E. G. Malm, Department of Mathematical Sciences\n                   Oakland University, Rochester, MI 48309-4401\n\tVersion:   8.30\n\tComments:  BASIC-like environment for number theory. In the collection\n\t\t   of programs written for it one can find: \n\t\t   MALM (Collection of UBASIC Number Theory Programs (malm.zip)\n\t\t   by Donald E. G. Malm (and copyrighted by him), including: \n\t\t   Baillie-Wagstaff Lucas pseudoprime test, Algorithm for \n  \t\t   Chinese remaindering, Elliptic curve method to factorize n, \n\t\t   Fermat's method of factoring, General periodic continued \n\t\t   fraction to quadratic routine, Evaluates Carmichael's \n\t\t   function & D. H. Lehmer's method of solving x^2 = q (mod p).\n\t\t   UBMPQS (Prime factorization program for numbers over 80 \n\t\t   digits (ubmpqs32.zip)), that can be found in the WURST \n\t\t   Archives (wuarchive.wustl.edu).\n\nNumbers::\n\tType:      Free but not Public Domain, registration required.\n\tMachines:  PC-DOS\n\tContact:   Ivo Dntsch                   Phone:    (++49) 541-969 2346\n\t           Rechenzentrum                 Fax:     (++49) 541-969 2470\n          \t   Universitt Osnabrck         Bitnet:   duentsch@dosuni1\n          \t   Postfach 4469\n          \t   W 4500 Osnabrck GERMANY\n        Version:   202c\n\tComments:  Numbers is a calculator for number theory. It performs \n\t   \t   various routines in elementary number theory, some of  \n\t\t   which are also usable in algebra or combinatorics.\n\t  \t   Available in the anonymous FTP in ftp.rz.Uni-Osnabrueck.de  \n\t\t   in the directory /pub/msdos/math\n\nCoCoA::\n\tType:      ???\n\tMachines:  Mac's\n\tContact:   cocoa@igecuniv.bitnet\n\tVersion:   ???\n\tComments:  Computations in commutative algebra\n\nGalois::\n\tType:      Commercial\n\tMachines:  IBM-PC DOS\n\tContact:   CIFEG Inc., Kalkgruberweg 26, A-4040 Linz, Austria\n        Version:   ???\n\tComments:  Algebra and number theory microcomputer  written by\n   \t\t   R. Lidl, R. W. Matthews, and R. Wells from the U. Tasmania \n\t\t   in Turbo Pascal v3.0.\n\nGANITH::\n\tType:      Anonymous FTP\n\tMachines:  Any system with vanilla Common Lisp, X 11, and has at least \n\t\t   a rudimentary Lisp/C interface.\n\tContact:   Chanderjit Bajaj & Andrew Royappa \n                   Department of Computer Science, Purdue University\n                   West Lafayette, IN 47907\n\t\t   (bajaj and royappa@cs.purdue.edu)\n        Version:   \n\tComments:  GANITH is an algebraic geometry toolkit, for computing \n\t\t   and visualising solutions to systems of algebraic equations.\n                   It is written in Common Lisp and C, and runs under version\n  \t\t   11 of the X window system.\n  \t\t   GANITH is available from the anonymous FTP at \n\t\t   cs.purdue.edu in the file /pub/avr/ganith-src.tar.Z\n\n\nTENSOR ANALYSIS\n===============\n\nSchoonShip::\n\tType:      ???\n\tMachines:  ???\n\tContact:   mentioned in  Comp.Phys. Comm. 8, 1 (1974).\n\tVersion:   ???\n\tComments:  I have heard this program mentioned , supposely it's designed\n \t\t   for large problems (i.e. thousands of terms in series \n \t\t   expansions ). Developed at CERN for CDC7600 ? \n\nSTENSOR::\n\tType:\t   ????\n\tMachines:  VAX, SUN, Apollos, Orion, Atari & Amiga\n\tContact:   lh@vand.physto.se, \n\t\t   Lars Hornfeldt, Physics Department, University of Stockholm\n                   Vanadisv.9, S-113 46, Stockholm, Sweden\n        Version:   ????\n\tComments:  System for tensor calculus and noncommutative algebra\n\n\nLISP CALCULATORS\n================\n\nJACAL:: \n\tType:      Gnu CopyLeft\n\tMachines:  Needs a Lisp (either Common or Scheme) \n\tContact:   Available by anon ftp to altdorf.ai.mit.edu [18.43.0.246]\n\tVersion:   ???\n\tComments:  An IBM PC version on floppy for $50 is available from \n \t\t   Aubrey Jaffer, 84 Pleasant St. Wakefield MA 01880, USA.\n\nGNU-calc::\n\tType:      GNU copyleft\n\tMachines:  Where Emacs runs.\n\tContact:   Free Software Foundation\n        Version:   ???\n\tComments:  It runs inside GNU Emacs and is written entirely in Emacs\n\t\t   Lisp. It does the usual things: arbitrary precision integer,\n\t\t   real, and complex arithmetic (all written in Lisp), \n\t\t   scientific functions, symbolic algebra and calculus, \n\t\t   matrices, graphics, etc. and can display expressions with \n\t\t   square root signs and integrals by drawing them on the \n\t\t   screen with ascii characters. It comes with well written \n\t\t   600 page online manual. You can FTP it from any GNU site.\n\n\nDIFFERENTIAL EQUATIONS\n======================\n\nDELiA::\n\tType:      Informal distribution\n\tMachines:  IBM PC's (DOS)\n\tContact:   A. V. Bocharov, Program Systems Institute, \n\t\t   USSR Academy of Science, Pereslavl, \n                   P.O. Box 11, 152140 USSR, Tlx: 412531 BOAT\n\tVersion:   ????\n\tComments:  Differetial equation computations\n\n\nPC SHAREWARE\n============\n\nSymbMath::\n\tType:      shareware, student and advanced versions.\n\tMachines:  IBM PC\n\tContact:   chen@deakin.OZ.AU\n\tVersion:   2.1.1\n\tComments:  Runs on plain (640k) DOS machines. The shareware version\n\t\t   is available in the file sm211a.zip on the Wurst Archives.\n\t\t   More capable versions are available by mail-order from the \n\t           author.  \n\nCLA::\n\tType:      anonymous FTP\n\tMachines:  PC-DOS\n\tContact:   ????\n        Version:   2.0\n\tComments:  A linear or matrix algebra package which computes\n\t\t   rank, determinant, rwo-reduced echelon form, Jordan \n\t\t   canonical form, characteristic equation, eigenvalues, \n\t \t   etc. of a matrix. File cla20.zip on the Wurst Archives.\n\nXPL::\n\tType:      anonymous FTP\n\tMachines:  PC-DOS\n\tContact:   David Meredith, Department of Mathematics\n                   San Francisco State University\n                   San Francisco, CA 94132\n                   meredith@sfsuvax1.sfsu.edu\n        Version:   4.0\n\tComments:  Formerly called CCALC. Well-integrated graphics and some\n\t\t   (numerical) matrix manipulation routines. Intended for \n\t\t   calculus students. Prentice Hall sells this with a book \n\t\t   (ISBN 0-13-117441-X--or by calling 201-767-5937), but it \n\t\t   is also available (without the manual but with a \n\t\t   comprehensive help system) by anonymous FTP from \n\t\t   wuarchive.wustl.edu: /edu/math/msdos/calculus/cc4-9206.zip.\n\nAMP::\n\tType:      Commercial, evaluation copy available by anonymous FTP\n\tMachines:  PC-DOS\n\tContact:   Mark Garber (71571,2006@compuserve.com) Ph: (404) 452-1129\n     \t\t   Cerebral Software, PO Box 80332, Chamblee, GA 30366\n        Version:   3.0\n\tComments:  The Algebraic Manipulation Program (AMP) is written in \n\t\t   Modula-2 and is a symbolic calculation tool. AMP functions \n\t\t   in an interpreter mode and program mode. It  has tensor \n\t\t   manipulation using index notation.  The evaluation copy is\n\t\t   available in the anonymous FTP at:\n\t\t   ftp.rz.Uni-Osnabrueck.de:pub/msdos/math/amp30.zip\n\nMercury::\n\tType:      Shareware\n\tMachines:  PC-DOS\n\tContact:   ???\n        Version:   2.06\n\tComments:  Limited in symbolic capabilities, but is extremely adept \n\t\t   at numerically solving equations and produces publication\n\t\t   quality graphical output. This used to be Borland's Eureka!, \n\t\t   but when Borland abandoned it, its original author started \n\t\t   selling it as shareware under the name Mercury. Available\n\t\t   from anonymous FTP at \n\t\t   wuarchive.wustl.edu:/edu/math/msdos/calculus/mrcry206.zip\n\nPFSA::\n\tType:      Public Domain\n\tMachines:  PC-DOS\n\tContact:   ???\n        Version:   5.46\n\tComments:  Available from the anonymous FTP at \n\t\t   wuarchive.wustl.edu:/edu/math/msdos/modern.algebra/vol546.zip\n\nLIE::\n\tType:      Public Domain\n\tMachines:  PC-DOS\n\tContact:   HEAD@RIVETT.MST.CSIRO.AU (A. K. Head)\n\t\t   CSIRO Division of Materials Science and Technology\n\t\t   Melbourne Australia   or\n\t\t   Locked Bag 33, Clayton, Vic 3168, Australia\n\t\t   Phone: (03) 542 2861 Telex: AA 32945 Fax: (03) 544 1128\n        Version:   3.3\n\tComments:  LIE is a program written in the MuMath language (not a \n\t\t   package) for Lie analysis of differential equations. \n\t\t   Available from anonymous FTP at \n\t\t   wuarchive.wustl.edu: /edu/math/msdos/adv.diff.equations/lie33\n\nCalculus::\n\tType:      Shareware\n\tMachines:  PC-DOS with EGA\n\tContact:   Byoung Keum, Dept. of Mathematics\n\t\t   University of IL.  Urbana, IL 61801.\n        Version:   9.0\n\tComments:  Program for Calculus and Differential Equations. It has\n     \t\t   symbolic diff. & integration (simple functions), graphs.\n\t\t   Very unstable program - no reason to use it, except for\n\t\t   price (suggested registration fee is $ 30.00).\n\t\t   Available from anonymous FTP at \n\t\t   wuarchive.wustl.edu: /edu/math/msdos/calculus/calc.arc \n\n--\n     \\   /                     | Marc Conrad, Universitaet des Saarlandes \n      \\ Luxemburg              | marc@math.uni-sb.de   \nFrance \\|   Germany            | these opinions are not necessarily these   \n        \\x <---- you are here! | of the SIMATH-group (and maybe even not mine).\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9153, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mpalmer@encore.com (Mike Palmer)\nSubject: Re: DOS 6.0 Interlink\nOrganization: Encore Computer Corporation\nNntp-Posting-Host: sysgem1.encore.com\nLines: 9\n\njka@air77.larc.nasa.gov (J. Keith Alston) writes:\n\n>Hi,\n>  Does anyone know what type of cabling is required to use the Interlink\n>capability, provided in DOS 6.0?\n\nI tried a null modem cable and had two copies of procomm+ talking happily\nto one another - but Interlink kept saying \"No Connection made\".  I gave\nup and used floppies!\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9154, "properties": {"category": "misc.forsale", "text": "From: Rupin.Dang@dartmouth.edu (Rupin Dang)\nSubject: Minolta FD 50 mm forsale\nOrganization: Dartmouth College, Hanover, NH\nLines: 4\n\n\nMinolta FD 50 mm lens for sale. Good condition. Asking $30.\n\nRupin.Dang@dartmouth.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9155, "properties": {"category": "sci.med", "text": "From: klier@iscsvax.uni.edu\nSubject: Re: Modified sense of taste in Cancer pt?\nOrganization: University of Northern Iowa\nLines: 16\n\nIn article <1993Apr21.134848.19017@peavax.mlo.dec.com>, lunger@helix.enet.dec.com (Dave Lunger) writes:\n> \n> What does a lack of taste of foods, or a sense of taste that seems \"off\"\n> when eating foods in someone who has cancer mean? What are the possible\n> causes of this? Why does it happen?\n\nI can't answer most of your questions, but I've seen it happen in \nfamily members who are being treated with radiation and/or chemotherapy.\nJory Graham published a cookbook many years ago (in cooperation with \nthe American Cancer Society, I think) called \"Something has to taste\ngood\" (as I recall).\n\nThe cookbook was just what we needed several times when favorite foods\nsuddenly became \"yech\".\n\nKay Klier  Biology Dept  UNI\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9156, "properties": {"category": "sci.med", "text": "From: Mark-Tarbell@suite.com\nSubject: Amniocentesis, et. al.\nOrganization: Suite Software\nLines: 7\nReply-To: suite!tarbell@uunet.uu.net\nNNTP-Posting-Host: gilgamesh.suite.com\n\nIs there some difference between the purposes behind\namniocentesis and chorionic villi sampling? They sound\nsimilar to me, but are intended to detect different\nthings?\n\nThanks.\n\u0003\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9157, "properties": {"category": "talk.politics.guns", "text": "From: alleyja@yang.earlham.edu\nSubject: <None>\nDistribution: talk\nOrganization: Earlham College, Richmond, Indiana\nLines: 44\n\nIn article <1993Apr4.4332.33144@dosgate>, nigel.allen@canrem.com (nigel allen) writes:\n> Here is a press release from Handgun Control Inc.\n> \n>  Sarah Brady Calls On Governor to Veto NRA Bill; Bayh Urged to\n> Follow Clinton's Lead\n>  To: State Desk\n>  Contact: Cheryl Brolin of Handgun Control Inc., 202-898-0792\n> \n>    WASHINGTON, April 2 -- In a letter today to Indiana Gov. \n> Evan Bayh, Sarah Brady, wife of former White House\n> Press Secretary James Brady and chair of Handgun Control Inc.,\n> called on the governor to veto NRA-backed \"preemption\" legislation\n> (S.B. 241), which would wipe out existing local gun laws and\n> prohibit localities from enacting future regulations governing the\n> sale, possession or transfer of firearms.\n>    \"I'm counting on Gov. Bayh to show the same kind of political\n> courage President Clinton showed as governor of Arkansas, when he\n> twice vetoed this type of special-interest legislation,\" Mrs. Brady\n> said, referring to Clinton's veto of NRA-backed preemption bills in\n> 1989 and 1991.\n> \n\nI knew that Cutie would sell us out.  Full-blooded Democrat, he is :-)\n\nSeriously folks, if it can happen here (remember?  we all got gun racks on\nour 4x4s), it can happen anywhere.  Now to get that letter ready.  `Dear \nCutie, as one who didn't vote for you, I can sincerely say I am unhappy...'\n\n\n>  -30-\n> -- \n>  Nigel Allen, Toronto, Ontario, Canada  nigel.allen@canrem.com\n> --\n> Canada Remote Systems - Toronto, Ontario\n> 416-629-7000/629-7044\n\nThose who know what's best for us\nMust try to save us from ourselves\n-- RUSH\n--------------------------------------------------------------------------------\n| Jason Alley                  || The opinions expressed were given to me      |\n| Earlham College, Richmond IN || by aliens living in my pancreas.             |\n| AlleyJa@Yang.Earlham.Edu     || The Empire never ended.                      |\n--------------------------------------------------------------------------------\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9158, "properties": {"category": "sci.crypt", "text": "From: pmetzger@snark.shearson.com (Perry E. Metzger)\nSubject: Re: Do we need the clipper for cheap security?\nOrganization: Partnership for an America Free Drug\nLines: 17\n\ngtoal@gtoal.com (Graham Toal) writes:\n>\n>In the UK, it's impossible to get approval to attach any crypto device\n>to the phone network.  (Anything that plugs in to our BT phone sockets\n>must be approved - for some reason crypto devices just never are...)\n>\n\nWhats the difference between a V.32bis modem and a V.32bis modem?\n\nI'm not being entirely silly here: what I'm pointing out is that the\nmodems that they have already approved for data transmission will work\njust fine to transmit scrambled vocoded voice.\n\n--\nPerry Metzger\t\tpmetzger@shearson.com\n--\nLaissez faire, laissez passer. Le monde va de lui meme.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9159, "properties": {"category": "rec.motorcycles", "text": "Organization: Ryerson Polytechnical Institute\nFrom: Mike Mychalkiw <ACAD8059@RyeVm.Ryerson.Ca>\nSubject: Re: Cobra Locks\nDistribution: usa\nLines: 33\n\nGreetings netters,\n\nSteve writes ... <about Cobra Locks>\n\nWell I have the mother of all locks. On Friday the 16th of April I took\npossesion of a 12' Cobra Links lock, 1\" diameter. This was a special order.\n\nI weighs a lot. I had to carry it home and it was digging into my shoulder\nafter about two blocks.\n\nI have currently a Kryptonite Rock Lock through the front wheel, a HD\npadlock for the steering lock, a Master padlock to lock the cover to two\nfront spokes, and the Cobra Links through the rear swing arm and around a\npost in an underground parking garage.\n\nNext Friday the 30th I have an appointment to have an alarm installed on\nme bike.\n\nWhen I travel the Cobra Links and the cover and padlock stay at home.\n\nBy the way. I also removed the plastic mesh that is on the Cobra Links\nand encased the lock from end to end using bicycle inner tubes (two of\nthem) I got the from bicycle dealer that sold me the Cobra Links. The\nguys were really great and didn't mark up the price of the lock much\nand the inner tubes were free.\n\nLater.\n\n-------------------------------------------------------------------------------\n1992 FXSTC                            Rock 'N Roll Mike Mychalkiw\nHOG                                   Ryerson Polytechnical Institute -\nDoD #665 Just THIS side of HELL.      Academic Computing Information Centre\ndoh #0000000667 Just the OTHER side.  EMAIL : ACAD8059@RYEVM.RYERSON.CA\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9160, "properties": {"category": "talk.politics.guns", "text": "From: dlo@druwa.ATT.COM (OlsonDL)\nSubject: Re: The 'pill' for Deer = No Hunting\nLines: 20\n\nIn article <1993Apr14.182610.2330@gnv.ifas.ufl.edu>, jrm@gnv.ifas.ufl.edu writes:\n} \tThe vast majority get through life without ever having to\n} \town, use or display a firearm.\n} ...\n} \n}       Given society\n} \tas we now experience it - it seems safer to get rid of\n} \tas many guns as possible.\n\nConsidering that the uses include self defense, hunting, target shooting\nand collecting, I don't buy the notion that the vast majority of people\ndon't \"own, use or display a firearm\".\n\nBut let's say your contention is true.  What's the point of \"get[ting]\nrid of as many guns as possible\", if they weren't being used anyway?\n--\nDavid Olson            dlo@drutx.att.com\n\"Well, I did say we'll put it out and we'll put it out when we can.\n But I don't know what we can put out or when we can put it out.\"\n -- George Stephanopolous.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9161, "properties": {"category": "comp.windows.x", "text": "From: david@swat (David E. Smyth)\nSubject: Re: MS Windows VS Motif (GUI design differences), was Re: Future of Unix\nNntp-Posting-Host: swat\nOrganization: Jet Propulsion Laboratory (NASA)\nDistribution: usa\nLines: 17\n\nIk Su Yoo <ik@mobydick.leis.bellcore.com> writes:\n>\n>Another important difference is that MSW doesn't have any window that\n>handle sophisticated geometry management (like XmForm).\n\nIs this an advantage to MS Windows or to Xt?  I used to think it\nwas a big advantage for Xt, but I am not at all sure anymore...\n\n-------------------------------------------------------------------------\nDavid Smyth\t\t\t\tdavid@jpl-devvax.jpl.nasa.gov\nSenior Software Engineer,\t\t(818)306-6463 (temp! do NOT use v-mail)\nX and Object Guru.\t\t\ttempory office: 525/B70\nJet Propulsion Lab, M/S 525-3660 4800 Oak Grove Drive, Pasadena, CA 91109\n------------------------------------------------------------------------- \n What's the earliest possible date you can't prove it won't be done by?\n\t\t\t\t\t- Tom DeMarco\n-------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9162, "properties": {"category": "rec.sport.hockey", "text": "From: htilney@vax.clarku.edu\nSubject: Bruins - Klingon Connection?\nOrganization: Clark University\nLines: 7\n\nI was wondering if any Star Trek TNG fans in this newsgroup knew of a\npossible relationship between the Bruins' players Douris & Moog and the\nKlingon names Duras and Worf (Son of Moog). I suppose it's a coincidence.\n\nJust curious,\n\nBart\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9163, "properties": {"category": "rec.autos", "text": "From: nuet_ke@pts.mot.com (KEITH NUETZMAN X3153 P7625)\nSubject: wife wants convertible\nNntp-Posting-Host: 145.4.54.110\nReply-To: nuet_ke@pts.mot.com\nOrganization: Paging and Wireless Data Group\nLines: 9\n\n\nHELP!!!\nmy wife has informed me that she wants a convertible for her next car.\nWe live in South Fla., so we are definitely in the right are for one.\nMy wife has mentioned the Miata, but I think it is too small.\nI would like to wait for the new Mustangs ( Dec. '93 I think).\nAnyone have any opinions on any/all convertibles in a reasonable price range.\n\n                                           Thanx\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9164, "properties": {"category": "soc.religion.christian", "text": "From: daniels@math.ufl.edu (TV's Big Dealer)\nSubject: Re: Variants in the NT Text (cont.)\nOrganization: Whatever\nLines: 6\n\n\n\tI wish to echo what D. Andrew Kille wrote.  I know of no published form\nin English of the D-type recension of \"Acts\".  Of course, Bezae is quite bizarre\nin the gospels as well.  Only D-type texts share Bezae's strange readings.\n\t[By the way, \"D\" stands for Codex Claromontanus elsewhere.]\n\t\t\t\t\tFrank D\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.433+0000", "event": "documents", "entityId": 9165, "properties": {"category": "talk.politics.guns", "text": "From: rcanders@nyx.cs.du.edu (Mr. Nice Guy)\nSubject: Will CS burn or explode\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 13\n\nThe FBI released large amounts of CS tear gas into the compound in\nWaco.  CS tear gas is a fine power.  Is CS inflammable.  Grain dust\nsuspended in air can form an explosive mixture, will CS suspended in air\nform an explosive mix? Could large quantities of CS have fueled the\nrapid spread of fire in the compound?\n \nPlease note I am directing all followups to talk.politics.guns\n\n--\nRod Anderson  N0NZO            | The only acceptable substitute\nBoulder, CO                    | for brains is silence.\nrcanders@nyx.cs.du.edu         |       -Solomon Short-\nsatellite  N0NZO on ao-16      |\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9166, "properties": {"category": "talk.politics.guns", "text": "From: mjp@austin.ibm.com  (Michael Phelps)\nSubject: Re: Is it really apples to apples?  (Lawful vs. unlawful use of guns)\nOriginator: mjp@bwa.kgn.ibm.com\nReply-To: mjp@vnet.ibm.com (Michael J. Phelps)\nOrganization: IBM Kingston NY\nLines: 51\n\n\nIn article <1993Apr16.092618.22936@husc3.harvard.edu>,\nkim39@scws8.harvard.edu (John Kim) writes:\n|> I have been convinced of the right of AMericans to an effective \n|> self-defense, but something strikes me as odd among the\n|> pro-RKBA arguments presented here.\n|> \n|> The numbers comparing hundreds of thousands (indeed, even a\n|> million) of instances of law abiding citizens deterring\n|> criminal activity, seem valid to me.  Likewise the number\n|> of gun-caused homicides each year (about 11,000/year?).  However,\n|> it is surprising that the \"Evil AntiGun Empire \" (Darth Vader\n|> breathing sound effect here) never tries to compare\n|> \"All legitimate gun defenses\" vs. \"All gun crimes.\"  Instead, \n|> it's always \"All legitimate gun defenses,\"  which includes\n|> cases in which the criminals are shot but not killed, and\n|> cases in which the criminal is not here, vs. just \n|> criminal gun homicides, which only includes case sin which\n|> the victim died.\n|> \n|> Why is this?  Of course, it wouldn't be unreasonable to say\n|> that in each crime already measured (involving guns), the\n|> consequnces are already known and it is safe to assume that\n|> a gun-based bank robbery last week will not suddenly turn\n|> into a gun-basd robbery+homicide.  Whereas in the legitimate\n|> gun defenses, one may assume that all those criminals who\n|> were deterred would have committed more crime or more\n|> serious crimes had they not been deterred.\n\nI think its an attempt to show lives_saved v lives_lost; all other\n gun related crimes don't result in lives_lost.  On the other hand,\n its impossible to know how many of the successful self defenses \n prevented lives from being lost.  In other words, the lives_lost\n is pretty clear [its the homicide and non negligent manslaughter\n number], while the lives saved is some percentage of the successful \n self defenses.  Clearly that percentage doesn't have to be real \n high to show that lives_saved > lives_lost.\n\nAs a semi-related point, check out Kleck's \"Point Blank\".  I believe\n it goes into some related areas; it also is well written and informative. \n\n|> \n|> -Case Kim\n|> \n|> kim39@husc.harvard.edu\n|> \n\n-- \nMichael Phelps, (external) mjp@vnet.ibm.com ..\n                (internal) mjp@bwa.kgn.ibm.com .. mjp at kgnvmy         \n (and last but not least a disclaimer)  These opinions are mine..       \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9167, "properties": {"category": "talk.politics.misc", "text": "From: hampton@umcc.umcc.umich.edu (Kevin Podsiadlik)\nSubject: Re: Top Ten Excuses for Slick Willie's Record-Setting Disapproval Rati\nOrganization: UMCC, Ann Arbor, MI\nLines: 23\nNNTP-Posting-Host: umcc.umcc.umich.edu\n\nIn article <2671@emoryu1.cc.emory.edu> libwca@emory.edu (Bill Anderson) writes:\n>shapiro@sofbas.enet.dec.com (Steve Shapiro) writes:\n>: \n>: Oh, and BTW, its William Jefferson Blythe Clinton.\n>\n>No, it's not- and I really fail to understand the use of that name\n>as an insult.  Do you feel that being adopted implies some sort of\n>moral failing?\n\nNo, it's a sign of aristocrtic out-of-touchness with the middle\nclass.  You ask George Herbert Walker Bush about that.\n\nAnd that's not his full name?  What, then, is it?\n\n---\n\"Even Quayle had his honeymoon period.  It lasted a full 48 hours \nafter he was chosen as Bush's running mate.\"\n\n-- \nKevin J. Podsiadlik          | \nVaporware Engineer 2nd class |    \"This 'contribution' the President wants \nE-mail: hampton@ais.org      |     us to make... is it tax deductible?\"\nCompuServe: 71460,3602       |                             -- Larry Wright\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9168, "properties": {"category": "sci.crypt", "text": "From: cmsph02@nt.com  (Steven Holton)\nSubject: Re: Do we need the clipper for cheap security?\nOrganization: Northern Telecom, Inc.\nLines: 25\n\nIn article <1r1f62$rh5@news.intercon.com>, amanda@intercon.com (Amanda\nWalker) wrote:\n> One thing that Clipper offers is interoperability, at a higher degree of \n> security than we currently have in non-proprietary voice encryption systems.\n> This means it will be cheaper than anyone's proprietary scheme, and easier to \n                        ^^^^^^^\nProbably cheaper than you think.  I'll bet some of my (and yours)\ntax dollars become a subsidy for these chips.  If these chips don't\nsell well, what's to stop the US government from 'giving' them\naway (in the interest of National Security)?\n\n> deploy.  This is, of course, either a bug or a feature depending on how you \n> look at it :).\n> \n> Amanda Walker\n> InterCon Systems Corporation\n\n-- \nSteven P. Holton\nNetwork Administrator - RTP FAST\nNorthern Telecom, Inc.\nReplies To:  cmsph02@nt.com\non bounce: [ sholton@aol.com | 70521.2430@compuserve.com ]\n \n\"Opinions expressed here are my own.\"\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9169, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: Looking for replacement for a JVC-disk\nFrom: michael@pcmith.rks.se (Michael Thurbin)\nOrganization: Sommarvagen 1, S-352 37 Vaxjoe, SWEDEN\nLines: 22\n\nHi!\nI got hold of an old Zenith 286 Laptop with model# ZWL-183-45\n\nThe hard-disk is dead but the rest seems to work. I took the Zenith apart and found a very strange\ndisk for wich I now try to replace.\n\nThe disk is marked JVC, model JD3824R00-1.\nHas anyone any specs. on this disk or suggestion where i can find it or a cheap replacement for it.\n\nThanks for your help.\n\n-- Michael\n\nMichael Thurbin (michael@pcmith.rks.se)\n\n-- \n**************************************************************************************************\nMichael Thurbin\nSommarvagen 1\t\tPhone: +46 (0)47021340\nS-352 37 Vaxjoe\t\tFax:   +46 (0)47048978\nSWEDEN\n**************************************************************************************************\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9170, "properties": {"category": "comp.sys.mac.hardware", "text": "From: RUTIJOH1@chico.acc.iit.edu (USERS)\nSubject: Re: > Re: > RE: 1024 x 768 video on Q800 --- adaptor pinouts\nIn-Reply-To: Gene's message of Wed, 14 Apr 1993 18:06:15 GMT\nOrganization: ILLINOIS INSTITUTE OF TECHNOLOGY, CHICAGO\nX-News-Reader: VMS NEWS 1.24\nLines: 17\n\n> This does not make sence...why would the 4FG work but the 3FGx not\n> work...it is the\n> same monitor without accucolor and digital controls...works fine at\n> 1024x768 with\n> SVGA...what's the deal....anyway you can get a SVGA 14\" with .28mm and\n> 1024x7 68\n> for $279 at Damark...are you saing that it probably would work while a\n> $600 NEC won't?\nThe 3FGx has a maximum horizontal scan rate of 49KHz, so driving it\nat 60.24KHz to get 1024 x 768 on the Mac is WAY BEYOND the tolerance            The 4FG is spec'ed at 57KHz, so going 60.24KHz is only 5-6% above\nthe minimally guaranteed figure.\n\nI too doubt if the Damark monitor would sync to a Mac at 1024 x 768.            Like most things, you get what you pay.  That's the deal.\n\n-John Rutirasiri.\n\nP.S. I wouldn't have posted if I wasn't sure.  \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9171, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: downs@helios.nevada.edu (Lamont Downs)\nSubject: Re: ATM\nLines: 15\nNntp-Posting-Host: cat.lv-lib.nevada.edu\nOrganization: UNLV\n\n>>So good that there isn't any diff whether or not ATManager is turned\n>>on or not. Is it worth it to run ATM at all? Especially with these\n>>better printer technologies ... and TT?\n>\n>There are some fonts that are only available as PS fonts.  If you\n>have a PS font that you want to use, use ATM.  Otherwise, it is\n>a waste of system resources.\n>\n-----Or, if you need to use a service bureau and they're only set up to use\nType 1 fonts. From what I've heard (pure hearsay) the results of outputting\nTT fonts as Type 1 is _not_ as good as using high-quality Type 1 fonts in\nthe first place.\n\nLamont Downs\ndowns@nevada.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9172, "properties": {"category": "comp.graphics", "text": "From: weber@sipi.usc.edu (Allan G. Weber)\nSubject: Need help with Mitsubishi P78U image printer\nOrganization: University of Southern California, Los Angeles, CA\nLines: 26\nDistribution: na\nNNTP-Posting-Host: sipi.usc.edu\n\nOur group recently bought a Mitsubishi P78U video printer and I could use some\nhelp with it.  We bought this thing because it (1) has a parallel data input in\naddition to the usual video signal inputs and (2) claimed to print 256 gray\nlevel images.  However, the manual that came with it only describes how to\nformat the parallel data to print 1 and 4 bit/pixel images.  After some initial\nproblems with the parallel interface I now have this thing running from a\nparallel port of an Hewlett-Packard workstation and I can print 1 and 4\nbit/pixel images just fine.  I called the Mitsubishi people and asked about the\n256 level claim and they said that was only available when used with the video\nsignal inputs.  This was not mentioned in the sales literature.  However they\ndid say the P78U can do 6 bit/pixel (64 level) images in parallel mode, but\nthey didn't have any information about how to program it to do so, and they\nwould call Japan, etc.\n\nFrankly, I find it hard to believe that if this thing can do 8 bit/pixel images\nfrom the video source, it can't store 8 bits/pixel in the memory.  It's not\nlike memory is that expensive any more.  If anybody has any information on\ngetting 6 bit/pixel (or even 8 bit/pixel) images out of this thing, I would\ngreatly appreciate your sending it to me.\n\nThanks.\n\nAllan Weber\nSignal & Image Processing Institute\nUniversity of Southern California\nweber@sipi.usc.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9173, "properties": {"category": "misc.forsale", "text": "From: lorne@sun.com (Lorne R. Johnson - Sun IC Region SE)\nSubject: WARRIORS TICKETS FOR SALE\nOrganization: Sun Microsystems, Inc.\nLines: 22\nDistribution: ca\nReply-To: lorne@sun.com\nNNTP-Posting-Host: normajean.west.sun.com\n\n\n   *****************************\n   * WARRIORS TICKETS FOR SALE *\n   *****************************\n\nI have 2 tickets that I can't use (Last pair this year).\n\nSection 109, Row P, Seats 8 & 9\n\nDAY\tDATE\tOPPONENT\tTIME\t\n---\t----\t--------\t----\t\nWED     4/21    Sacremento     7:30\n\nPrice: $45.00 = MY COST\n\nCall or email if you are interested in these tickets.\n\n\nLorne Johnson\nlorne@sun.com\n(408) 562-6003\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9174, "properties": {"category": "comp.windows.x", "text": "From: operator@mast.mast.queensu.ca (Me)\nSubject: Vanishing font problem....\nOrganization: Department of Mathematics, Queen's University at Kingston\nLines: 25\n\n   A colleague has a bizarre font problem on his new MIPS workstation.\nWhen he first logs on (via xdm), he has a single xterm window appear\nwith the mwm window manager running.  In this configuration, X windows\napplications (particularly xdvi) work fine.  However, if he opens up a\nsecond xterm application, suddenly xdvi cannot start in either window,\ngiving the error: Unable to load ISO 8859-1 font.\n\n   The only difference between the two xterm windows is that the initial\none references a different name in the Xsession file, with prettier\ncolours and other slight changes.  Further investigation shows that only\nopening a default xterm causes this behaviour, and more significant, ALL\nX applications can no longer load any fonts if they are invoked from the\ncommand line in either window.  If I start the xterm with a different\nfont (using the -fn option), no problems.  It would seem that the\ndefault xterm is loading a font which somehow causes the server to lose\nall of its fonts.  Note: xlsfonts in either window shows all of the\nfonts available, so there doesn't appear to be a problem in the font\ndirectories/hash-tables.\n\n   Other than rewriting the XTerm app-defaults file to use a different\nfont and hope for the best, does anyone have any ideas?\n\nMore info:  This is the most recent MIPS workstation (R4000 I believe),\n       with the most current operating system and running X11R5.\n       It is not mwm's fault, as the same problems occur under twm, etc.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9175, "properties": {"category": "talk.politics.misc", "text": "From: phil@netcom.com (Phil Ronzone)\nSubject: Temper tantrums from the 1960's\nOrganization: Generally in favor of, but mostly random.\nDistribution: usa\nLines: 40\n\nIn article <1993Apr5.193616.14521@cbnewsi.cb.att.com> gadfly@cbnewsi.cb.att.com (Gadfly) writes:\n    >Now let me get this straight. After a nice, long rant about\n    >how people need to take personal responsibility for their\n    >economic and social lives, all of a sudden 1960's radicals\n    >(such as me, I guess) are responsible for poor people's\n    >lifestyles? Tell me how that works--or do you think that poor\n    >people are just too dumb to think for themselves?\n    >\n    >There are many reasons for the disintegration of the family\n    >and support systems in general among this nation's poor.\n    >Somehow I don't think Murphy Brown--or Janis Joplin--is at\n    >the top of any sane person's list.\n    >\n    >You want to go after my generation's vaunted cultural\n    >revolution for a lasting change for the worse, try so-called\n    >\"relevant\" or \"values\" education. Hey, it seemed like a good\n    >idea at the time. How were we to know you needed a real\n    >education first--I mean, we took that for granted.\n\nThe 1960's generation were the most spoiled and irresponsible.\n\nThe Depression had create mothers and fathers that were determined that their\nkids would not want for anything -- going overboard and creating a nation of\nbrats.\n\nConsider the contrast between two famous events in July of 1969.\n\nApollo 11 and Woodstock.\n\nWhich group had large numbers of people that could not feed themselves and\nreverted to the cultural level of primitives (defecation in public etc.).\n\nAnd which group assembled, took care of itself, and dispersed with no damage,\nno deaths, no large numbers of drug problems ....\n\n-- \nThere are actually people that STILL believe Love Canal was some kind of\nenvironmental disaster. Weird, eh?\n\nThese opinions are MINE, and you can't have 'em! (But I'll rent 'em cheap ...)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9176, "properties": {"category": "talk.politics.guns", "text": "From: kennejs@a.cs.okstate.edu (KENNEDY JAMES SCOT)\nSubject: Re: 2ND AMENDMENT DEAD - GOOD !\nOrganization: Oklahoma State University\nLines: 49\n\nFrom article <1993Apr18.001319.2340@gnv.ifas.ufl.edu>, by jrm@gnv.ifas.ufl.edu:\n> Yea, there are millions of cases where yoy *say* that firearms\n> 'deter' criminals. Alas, this is not provable. I think that that\n> there are actually *few* cases where this is so. \n\nIt certainly is provable.  Around a million Americans every year defend\nthemselves with firearms.  In many of these cases the defender doesn't even\nhave to fire a shot!  The mere presence of a gun is oftentimes all the\ndeterrent that is needed.\n\nI don't like violence anymore than anyone else does.  But, taking away the\nright of Americans to keep and bear arms is not the solution to the violent\ncrime problem in this country.  If honest, law-abiding citizens are unable\nto get firearms then they will be preyed on even more by criminals who will\nbe able to acquire guns through illegal channels.  Expect to start seeing\nthe crime syndicates who smuggle drugs into this country start smuggling\nguns.  Believe me this will happen.  There is *plenty* of economic\nincentive for gangsters to illegaly import guns into this country if guns\nshould be banned by the Klintonistas.\n\n> The bulk of firarems are used against unworthy and unnesessary\n> opponents ... those who posessa a cool jakcet you want, those who\n> would argue with you about a parking space, those who would\n> take your woman. In short, trivial and worthless causes.\n\nStatistics, por favor?\n\n> Too much of this has ruined you cause. There is no recovery. \n> In the near future, federal martials will come for your arms.\n> No one will help you. You are more dangerous, to their thinking,\n> than the 'criminal'. This is your own fault. \n\nSee my previous post.  That ought to set you straight.\n\n> The 2nd amendment is dead. Accept this. Find another way.\n\nPeople have the right to keep and bear arms no matter what the\nConstitution says.  That means that even if the 2nd Amendment is\nrepealed the *people* (that's all American citizens FYI) will *still*\nhave the right to keep and bear arms.\n\n\nScott Kennedy,  Brewer and Patriot\n\nBefore:  \"David Koresh is a cheap thug who interprets\n          the Bible through the barrel of a gun...\"  --ATF spokesman\nAfter:   \"[The ATF] is a cheap thug who interprets\n          [the Constitution] through the barrel of a gun...\"  --Me\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9177, "properties": {"category": "talk.religion.misc", "text": "From: simon@dcs.warwick.ac.uk (Simon Clippingdale)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nNntp-Posting-Host: nin\nOrganization: Department of Computer Science, Warwick University, England\nLines: 29\n\nIn article <1qjclt$nh7@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n\n> [...]\n>\n> [as I recall, I first entered the fray on this matter in response to\n> an assertion by Simon Clippingdale that morality was relative.\n\nOops! Quite right. I got so busy that I saved Frank's last post back then,\nintending to respond when I could, and I sort of forgot. I'll try to do it\nsoon if anyone's still interested, and probably even if they're not.\n\n> Is he therefore trying to sell something?  I don't think so. ]\n\nWell, yes, maybe I am. I'm trying to have people buy and take on my opinions,\nthus causing said opinions to spread in time-honoured memetic virus mode until\nthe world is a veritable paradise. So how about it, folks? As they say over\nhere, You Know It Makes Sense.\n\n> Frank O'Dwyer                                  'I'm not hatching That'\n> odwyer@sse.ie                                  from \"Hens\",  by Evelyn Conlon\n\nCheers\n\nSimon\n-- \nSimon Clippingdale                simon@dcs.warwick.ac.uk\nDepartment of Computer Science    Tel (+44) 203 523296\nUniversity of Warwick             FAX (+44) 203 525714\nCoventry CV4 7AL, U.K.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9178, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Keith Schneider - Stealth Poster?\nOrganization: California Institute of Technology, Pasadena\nLines: 25\nNNTP-Posting-Host: punisher.caltech.edu\n\narromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n\n>>But, if you were to discuss the merits of racism, or its psycholgical\n>>benefits, you would do well to have experienced it personally.\n>When you speak of \"experiencing religion\" you mean someone should believe in\n>a religion.\n\nThat's right, and this is pretty impossible, right?  It would be ideal if\nwe could believe for a while, just to try out religion, and only then\ndetermine which course of thought suits us best.  But again, this is not\npossible.  Not that religion warrants belief, but the belief carries with\nit some psychological benefits.  There are also some psychological\nburdens, too.\n\n>When you speak of \"experiencing racism\", do you mean that someone should\n>believe in racism, or that they should have racist things done to them?  For\n>parallelism, the former must be what you meant, but it seems to be an odd\n>usage of the phrase.\n\nWell, if there were some psychological or other benefits gained from racism,\nthey could only be fully understood or judged by persons actually \"believing\"\nin racism.  Of course, the parallel happens to be a poor one, but you\noriginated it.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9179, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: The [secret] source of that announcement\nOrganization: DSI/USCRPAC\nLines: 23\n\n\ngrady@netcom.com suggests using a common but restricted-distribution private\nkey to allow public key system encrypted postings. In theory that will work\nfine as long as the privae key remains secure.\n\nIn practice it would be a good idea to check to see if that would be a\nviolation of some net rule, practice, custom, etc. I don't say it would be,\njust that it would be a good idea to check. This is not like rot13 where\neverybody can have the key trivially.\n\nIt would also be a good idea to check to see if such posts would be\nforwarded by the sites needed to make the chain work.\n\nOf course there'd be no problem with a discussion group travelling over\nfacilities entirely under the control of the members. Probably there would\nalso be no problem with a mailing list approach. It might even  be fun for\nsome.\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9180, "properties": {"category": "sci.electronics", "text": "From: dnewman@lynx.dac.northeastern.edu (David F. Newman)\nSubject: voltage regulator spec needed !!!!!\nOrganization: Division of Academic Computing, Northeastern University, Boston, MA. 02115 USA\nLines: 13\n\nHi there,\nI have a mac 512 with a burned out part which looks like a voltage\nregulator.  The part number is BU 406 and I believe the vender is\nSGS thomas judging by teh SGS logo printed on the package.  If anyone\nhas teh spec for this part I would greatly appreciate an email with\nthe import info so I can find a replacement.  Thanx in advance.\n\n-Dave\ndnewman@lynx.northeastern.edu\n\nBTW I don't need people telling me to throw the computer away.  If\n  I had the money the thing would be in the trash in a second, but\n  it does make a good terminal if nothing else.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9181, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jbs5g@faraday.clas.Virginia.EDU (James B. Sheire)\nSubject: SCSI Ethernet Converter For Sale\nOrganization: University of Virginia\nDistribution: usa\nLines: 6\n\nI have  a strange piece of equipment to unload. It is a Ether+ SCSI interface.\nApparently, it can be plugged into a SCSI port and from there to an ethernet.\nThat way you save a slot. Nifty. Well, I assume you people know more about it,\nso, judging by the $350 price tag new, I'll ask, say, $75? Anybody interested?\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9182, "properties": {"category": "sci.crypt", "text": "From: tuinstra@signal.ece.clarkson.edu.soe (Dwight Tuinstra)\nSubject: (new) reason for Clipper alg'm secrecy\nReply-To: tuinstra@signal.ece.clarkson.edu.soe\nOrganization: Sun Microsystems, Inc.\nLines: 38\nNntp-Posting-Host: signal.ece.clarkson.edu\n\n[Apologies for not posting to alt.clipper, or whatever, but it seems it\nmay not be in the newsfeed here.]\n\nThere may be another reason (good from NSA's point of view, horrible\nfrom everyone else's) why the algorithm/chip design might be secret.\n\nFirst, note that the \"experts\" will only look at \"details\", and of just \nthe algorithm:\n\n    In addition, respected experts from outside the\n    government will be offered access to the confidential details of\n    the algorithm to assess its capabilities and publicly report\n    their findings.\n\nWhy not the chip design?  Well, here's the possiblity:  in addition to\nencryption, the chip pre-processes voice signals to make them easier\nto analyze/transcribe electronically.  The chip, once widespread, might\neffectively be part of a massively parallel computer for \"voice-\ngrepping\" the US phone network (or the criminal & wrong-thinking patrons\nthereof).\n\nI wouldn't put it past the NSA.  Think how much easier it would make life\nfor them.\n\nAnd if this is indeed the case, think of the possible public outcry should\nit become widely known.  Thus the secrecy.\n\nIt might be a good idea to have experts in DSP, voice recognition, and\nAI conversation-understanding to be on that panel, and insist they be\ngiven (authenticatable) design specs and implementation documentation.\n\n+========================================================================+\n|  dwight tuinstra             best:  tuinstra@sandman.ece.clarkson.edu  |\n|                         tolerable:  tuinstrd@craft.camp.clarkson.edu   |\n|                                                                        |\n|           Look out, kid, it's something that you did.                  |\n|           God knows when, but you're doin' it again ...                |\n+========================================================================+\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9183, "properties": {"category": "rec.autos", "text": "From: boyle@bbsls23.bnr (Ian Boyle)\nSubject: Re: What is \" Volvo \" ?\nOrganization: BNR Europe Ltd.\nLines: 20\nDistribution: world\nReply-To: boyle@bbsls23.bnr\nNNTP-Posting-Host: bbsls23.bnr.co.uk\n\n> And all of these cars are driven fairly hard. None of them are at the head of\n> a line of cars going 30 MPH....the first two spend a lot of their operating\n> life with the speedometer pegged...and the only reason the 84 doesn't is it has\n> a 120 MPH speedo...\n> What I want to know is....have all you people who hate Volvos been traumatized\n> by someone in a 745 Turbo wagon blowing you away on the road, or what?\n\n740 Turbo in UK was good for 124mph. Useful for blowing away VW Beetles, though I\nbelieve the Beetle corners better. \n\nI can say without any doubt that I have never been blown away by any Volvo, ever.\nI've been blocked into a few car parks though by shit-head Volvo owners who 'only thought they'd be a few minutes'. This does not happen with the owners of any other makes of car.\n\nNot sure how long the small shit-box Volvos last - too damn long. The worst car I ever drove was a hired 340. In power, handling and ride it was reminiscent of something\nfrom the 50s, without the character. The 340 only ceased production a couple of years back. I've only been a passenger in the big Volvos, but that was enough. I ought to go\nfor a test drive because they offer some neat gifts.\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9184, "properties": {"category": "talk.religion.misc", "text": "From: markbr%radian@natinst.com (mark)\nSubject: Re: Freemasonry and the Southern Baptist Convention\nNntp-Posting-Host: zippy.radian.com\nOrganization: n.o.y.b\nLines: 14\n\nIn article <1qv82l$oj2@usenet.INS.CWRU.Edu> ch981@cleveland.Freenet.Edu (Tony Alicea) writes:\n>     With the Southern Baptist Convention convening this June to consider\n>the charges that Freemasonry is incompatible with christianity, I thought\n>the following quotes by Mr. James Holly, the Anti-Masonic Flag Carrier,\n>would amuse you all...\n<MUNCH!>\n>     I hope you all had a good laugh! I know *I* did! <g>,\n\nIt would be funny if it wasn't so damn *NASTY*; and as non-xian as I am, \nit's hard to believe that someone is pushing black is white and freedom\nis slavery so blatantly.\n\n\tmark\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9185, "properties": {"category": "comp.os.ms-windows.misc", "text": "Reply-To: donoghue@donoghue.win.net (Kevin Donoghue)\nFrom: donoghue@donoghue.win.net (Kevin Donoghue)\nSubject: Off Line Mail\nLines: 13\n\nI am looking for a program called VBREADER. It is an off line mail\nreader for Windows using QWK mail packets. Or if anyone knows of\nany good QWK mail readers please let me know.\n \n                                        Thanks\n                                         \n                                             Kevin \n\n_______________________________________________________________________\nKevin C. Donoghue                Internet: donoghue@donoghue.win.net\nDonoghue International           \"Few love to hear the sins they love to act\"\n2437 Grand Ave. Suite 273                -- William Shakespear  \nVentura CA 93003                  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9186, "properties": {"category": "rec.autos", "text": "From: silver@xrtll.uucp (Hi Ho Silver)\nSubject: Re: WAX RESIDUE ON BLACK MOLDING\nOrganization: What you won't find on my desk.\nLines: 17\n\nSayeth \"Joseph D. Mazza\" <mazz+@andrew.cmu.edu>:\n$I waxed my car a few months ago with a liquid wax and now have whiteish\n$smears where I inadvertantly got some wax on the black plastic molding. \n$I've tried repeatedly to remove the smears with no luck.  I'm on the\n$verge of replacing the molding altogether (it's a nice car).\n\n   Armor All removes Raindance wax on my Mazda Protege's black\nplastic bumpers.  Your mileage may vary.\n\n   Given this observation, one would be well advised to take care not to\nget any of this (or, probably, similar protectants such as Son of a Gun)\non one's paint ...\n-- \n|I know that sometimes my jaw clicks when I eat.  Void where prohibited.|\n|Have you seen this boy?  Lust never sleeps.  I say hurl.  Honey, I'm   |\n|home. _________________________________________________________________|\n|_____/ silver@bokonon.UUCP    ...!{uunet|becker|xrtll}!bokonon!silver  |\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9187, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Alt.Atheism FAQ: Atheist Resources\nSummary: Books, addresses, music -- anything related to atheism\nKeywords: FAQ, atheism, books, music, fiction, addresses, contacts\nExpires: Thu, 29 Apr 1993 11:57:19 GMT\nDistribution: world\nOrganization: Mantis Consultants, Cambridge. UK.\nSupersedes: <19930301143317@mantis.co.uk>\nLines: 290\n\nArchive-name: atheism/resources\nAlt-atheism-archive-name: resources\nLast-modified: 11 December 1992\nVersion: 1.0\n\n                              Atheist Resources\n\n                      Addresses of Atheist Organizations\n\n                                     USA\n\nFREEDOM FROM RELIGION FOUNDATION\n\nDarwin fish bumper stickers and assorted other atheist paraphernalia are\navailable from the Freedom From Religion Foundation in the US.\n\nWrite to:  FFRF, P.O. Box 750, Madison, WI 53701.\nTelephone: (608) 256-8900\n\nEVOLUTION DESIGNS\n\nEvolution Designs sell the \"Darwin fish\".  It's a fish symbol, like the ones\nChristians stick on their cars, but with feet and the word \"Darwin\" written\ninside.  The deluxe moulded 3D plastic fish is $4.95 postpaid in the US.\n\nWrite to:  Evolution Designs, 7119 Laurel Canyon #4, North Hollywood,\n           CA 91605.\n\nPeople in the San Francisco Bay area can get Darwin Fish from Lynn Gold --\ntry mailing <figmo@netcom.com>.  For net people who go to Lynn directly, the\nprice is $4.95 per fish.\n\nAMERICAN ATHEIST PRESS\n\nAAP publish various atheist books -- critiques of the Bible, lists of\nBiblical contradictions, and so on.  One such book is:\n\n\"The Bible Handbook\" by W.P. Ball and G.W. Foote.  American Atheist Press.\n372 pp.  ISBN 0-910309-26-4, 2nd edition, 1986.  Bible contradictions,\nabsurdities, atrocities, immoralities... contains Ball, Foote: \"The Bible\nContradicts Itself\", AAP.  Based on the King James version of the Bible.\n\nWrite to:  American Atheist Press, P.O. Box 140195, Austin, TX 78714-0195.\n      or:  7215 Cameron Road, Austin, TX 78752-2973.\nTelephone: (512) 458-1244\nFax:       (512) 467-9525\n\nPROMETHEUS BOOKS\n\nSell books including Haught's \"Holy Horrors\" (see below).\n\nWrite to:  700 East Amherst Street, Buffalo, New York 14215.\nTelephone: (716) 837-2475.\n\nAn alternate address (which may be newer or older) is:\nPrometheus Books, 59 Glenn Drive, Buffalo, NY 14228-2197.\n\nAFRICAN-AMERICANS FOR HUMANISM\n\nAn organization promoting black secular humanism and uncovering the history of\nblack freethought.  They publish a quarterly newsletter, AAH EXAMINER.\n\nWrite to:  Norm R. Allen, Jr., African Americans for Humanism, P.O. Box 664,\n           Buffalo, NY 14226.\n\n                                United Kingdom\n\nRationalist Press Association          National Secular Society\n88 Islington High Street               702 Holloway Road\nLondon N1 8EW                          London N19 3NL\n071 226 7251                           071 272 1266\n\nBritish Humanist Association           South Place Ethical Society\n14 Lamb's Conduit Passage              Conway Hall\nLondon WC1R 4RH                        Red Lion Square\n071 430 0908                           London WC1R 4RL\nfax 071 430 1271                       071 831 7723\n\nThe National Secular Society publish \"The Freethinker\", a monthly magazine\nfounded in 1881.\n\n                                   Germany\n\nIBKA e.V.\nInternationaler Bund der Konfessionslosen und Atheisten\nPostfach 880, D-1000 Berlin 41. Germany.\n\nIBKA publish a journal:\nMIZ. (Materialien und Informationen zur Zeit. Politisches\nJournal der Konfessionslosesn und Atheisten. Hrsg. IBKA e.V.)\nMIZ-Vertrieb, Postfach 880, D-1000 Berlin 41. Germany.\n\nFor atheist books, write to:\n\nIBDK, Internationaler B\"ucherdienst der Konfessionslosen\nPostfach 3005, D-3000 Hannover 1. Germany.\nTelephone: 0511/211216\n\n\n                               Books -- Fiction\n\nTHOMAS M. DISCH\n\n\"The Santa Claus Compromise\"\nShort story.  The ultimate proof that Santa exists.  All characters and \nevents are fictitious.  Any similarity to living or dead gods -- uh, well...\n\nWALTER M. MILLER, JR\n\n\"A Canticle for Leibowitz\"\nOne gem in this post atomic doomsday novel is the monks who spent their lives\ncopying blueprints from \"Saint Leibowitz\", filling the sheets of paper with\nink and leaving white lines and letters.\n\nEDGAR PANGBORN\n\n\"Davy\"\nPost atomic doomsday novel set in clerical states.  The church, for example,\nforbids that anyone \"produce, describe or use any substance containing...\natoms\". \n\nPHILIP K. DICK\n\nPhilip K. Dick Dick wrote many philosophical and thought-provoking short \nstories and novels.  His stories are bizarre at times, but very approachable.\nHe wrote mainly SF, but he wrote about people, truth and religion rather than\ntechnology.  Although he often believed that he had met some sort of God, he\nremained sceptical.  Amongst his novels, the following are of some relevance:\n\n\"Galactic Pot-Healer\"\nA fallible alien deity summons a group of Earth craftsmen and women to a\nremote planet to raise a giant cathedral from beneath the oceans.  When the\ndeity begins to demand faith from the earthers, pot-healer Joe Fernwright is\nunable to comply.  A polished, ironic and amusing novel.\n\n\"A Maze of Death\"\nNoteworthy for its description of a technology-based religion.\n\n\"VALIS\"\nThe schizophrenic hero searches for the hidden mysteries of Gnostic\nChristianity after reality is fired into his brain by a pink laser beam of\nunknown but possibly divine origin.  He is accompanied by his dogmatic and\ndismissively atheist friend and assorted other odd characters.\n\n\"The Divine Invasion\"\nGod invades Earth by making a young woman pregnant as she returns from\nanother star system.  Unfortunately she is terminally ill, and must be\nassisted by a dead man whose brain is wired to 24-hour easy listening music.\n\nMARGARET ATWOOD\n\n\"The Handmaid's Tale\"\nA story based on the premise that the US Congress is mysteriously\nassassinated, and fundamentalists quickly take charge of the nation to set it\n\"right\" again.  The book is the diary of a woman's life as she tries to live\nunder the new Christian theocracy.  Women's right to own property is revoked,\nand their bank accounts are closed; sinful luxuries are outlawed, and the\nradio is only used for readings from the Bible.  Crimes are punished\nretroactively: doctors who performed legal abortions in the \"old world\" are\nhunted down and hanged.  Atwood's writing style is difficult to get used to\nat first, but the tale grows more and more chilling as it goes on.\n\nVARIOUS AUTHORS\n\n\"The Bible\"\nThis somewhat dull and rambling work has often been criticized.  However, it\nis probably worth reading, if only so that you'll know what all the fuss is\nabout.  It exists in many different versions, so make sure you get the one\ntrue version.\n\n                             Books -- Non-fiction\n\nPETER DE ROSA\n\n\"Vicars of Christ\", Bantam Press, 1988\nAlthough de Rosa seems to be Christian or even Catholic this is a very\nenlighting history of papal immoralities, adulteries, fallacies etc.\n(German translation: \"Gottes erste Diener. Die dunkle Seite des Papsttums\",\nDroemer-Knaur, 1989)\n\nMICHAEL MARTIN\n\n\"Atheism: A Philosophical Justification\", Temple University Press,\n Philadelphia, USA.\nA detailed and scholarly justification of atheism.  Contains an outstanding\nappendix defining terminology and usage in this (necessarily) tendentious\narea.  Argues both for \"negative atheism\" (i.e. the \"non-belief in the\nexistence of god(s)\") and also for \"positive atheism\" (\"the belief in the\nnon-existence of god(s)\").  Includes great refutations of the most\nchallenging arguments for god; particular attention is paid to refuting\ncontempory theists such as Platinga and Swinburne.\n541 pages. ISBN 0-87722-642-3 (hardcover; paperback also available)\n\n\"The Case Against Christianity\", Temple University Press\nA comprehensive critique of Christianity, in which he considers\nthe best contemporary defences of Christianity and (ultimately)\ndemonstrates that they are unsupportable and/or incoherent.\n273 pages. ISBN 0-87722-767-5\n\nJAMES TURNER\n\n\"Without God, Without Creed\", The Johns Hopkins University Press, Baltimore,\n MD, USA\nSubtitled \"The Origins of Unbelief in America\".  Examines the way in which\nunbelief (whether agnostic or atheistic)  became a mainstream alternative\nworld-view.  Focusses on the period 1770-1900, and while considering France\nand Britain the emphasis is on American, and particularly New England\ndevelopments.  \"Neither a religious history of secularization or atheism,\nWithout God, Without Creed is, rather, the intellectual history of the fate\nof a single idea, the belief that God exists.\" \n316 pages. ISBN (hardcover) 0-8018-2494-X (paper) 0-8018-3407-4\n\nGEORGE SELDES (Editor)\n\n\"The great thoughts\", Ballantine Books, New York, USA\nA \"dictionary of quotations\" of a different kind, concentrating on statements\nand writings which, explicitly or implicitly, present the person's philosophy\nand world-view.  Includes obscure (and often suppressed) opinions from many\npeople.  For some popular observations, traces the way in which various\npeople expressed and twisted the idea over the centuries.  Quite a number of\nthe quotations are derived from Cardiff's \"What Great Men Think of Religion\"\nand Noyes' \"Views of Religion\".\n490 pages. ISBN (paper) 0-345-29887-X.\n\nRICHARD SWINBURNE\n\n\"The Existence of God (Revised Edition)\", Clarendon Paperbacks, Oxford\nThis book is the second volume in a trilogy that began with \"The Coherence of\nTheism\" (1977) and was concluded with \"Faith and Reason\" (1981).  In this\nwork, Swinburne attempts to construct a series of inductive arguments for the\nexistence of God.  His arguments, which are somewhat tendentious and rely\nupon the imputation of late 20th century western Christian values and\naesthetics to a God which is supposedly as simple as can be conceived, were\ndecisively rejected in Mackie's \"The Miracle of Theism\".  In the revised\nedition of \"The Existence of God\", Swinburne includes an Appendix in which he\nmakes a somewhat incoherent attempt to rebut Mackie.\n\nJ. L. MACKIE\n\n\"The Miracle of Theism\", Oxford\nThis (posthumous) volume contains a comprehensive review of the principal\narguments for and against the existence of God.  It ranges from the classical\nphilosophical positions of Descartes, Anselm, Berkeley, Hume et al, through\nthe moral arguments of Newman, Kant and Sidgwick, to the recent restatements\nof the classical theses by Plantinga and Swinburne.  It also addresses those\npositions which push the concept of God beyond the realm of the rational,\nsuch as those of Kierkegaard, Kung and Philips, as well as \"replacements for\nGod\" such as Lelie's axiarchism.  The book is a delight to read - less\nformalistic and better written than Martin's works, and refreshingly direct\nwhen compared with the hand-waving of Swinburne.\n\nJAMES A. HAUGHT\n\n\"Holy Horrors: An Illustrated History of Religious Murder and Madness\",\n Prometheus Books\nLooks at religious persecution from ancient times to the present day -- and\nnot only by Christians.\nLibrary of Congress Catalog Card Number 89-64079. 1990.\n\nNORM R. ALLEN, JR.\n\n\"African American Humanism: an Anthology\"\nSee the listing for African Americans for Humanism above.\n\nGORDON STEIN\n\n\"An Anthology of Atheism and Rationalism\", Prometheus Books\nAn anthology covering a wide range of subjects, including 'The Devil, Evil\nand Morality' and 'The History of Freethought'.  Comprehensive bibliography.\n\nEDMUND D. COHEN\n\n\"The Mind of The Bible-Believer\", Prometheus Books\nA study of why people become Christian fundamentalists, and what effect it\nhas on them.\n\n                                Net Resources\n\nThere's a small mail-based archive server at mantis.co.uk which carries\narchives of old alt.atheism.moderated articles and assorted other files.  For\nmore information, send mail to archive-server@mantis.co.uk saying\n\n   help\n   send atheism/index\n\nand it will mail back a reply.\n\n\nmathew\n\u00ff\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.434+0000", "event": "documents", "entityId": 9188, "properties": {"category": "comp.windows.x", "text": "From: carl@teal.csn.org (Carl Podlogar)\nSubject: need font family, weight and slant from instance of a widget\nSummary: need font family, weight and slant from instance of a widget\nKeywords: font\nNntp-Posting-Host: teal.csn.org\nOrganization: Colorado SuperNet, Inc.\nLines: 10\n\nHow can I get the font family, weight and slant from an\ninstance of a widget? Using initFontContext(), getNextFont()\nand freeFontContext() I can get the size of the font (and a\nbunch of other stuff concerning the font) but nowhere have\nI found family, weight and slant. Assume that I do not have\naccess to the source where family, weight and slant were\norginaly used when creating a fontlist.\nThanks a bunch and have a great day,\nCarl\ncarl@softsolut.com \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9189, "properties": {"category": "talk.politics.mideast", "text": "From: bh437292@longs.LANCE.ColoState.Edu (Basil Hamdan)\nSubject: Re: was:Go Hezbollah!\nReply-To: bh437292@lance.colostate.edu\nNntp-Posting-Host: parry.lance.colostate.edu\nOrganization: Engineering College, Colorado State University\nLines: 13\n\nIn article <2BCE0918.6105@news.service.uci.edu>, tclock@orion.oac.uci.edu (Tim Clock) writes:\n|> In article <Apr15.175334.72079@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n\n[.....]\n\n|> Your view of this entire matter is far too serenely one-sided and\n|> selectively naive.\n\nOooh... now THAT hurts.  I will not suffer you through more naive\nand one-sided views of mine.   Please skip my articles in the future\nOh Wise Tim, and have a good day.\n\nBasil\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9190, "properties": {"category": "sci.crypt", "text": "From: pla@sktb.demon.co.uk (\"Paul L. Allen\")\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nReply-To: pla@sktb.demon.co.uk\nOrganization: Chaos\nLines: 76\nX-Newsreader: Archimedes ReadNews\n\n-----BEGIN PGP SIGNED MESSAGE-----\n\nIn article <PMETZGER.93Apr18141006@snark.shearson.com> pmetzger@snark.shearson.com (Perry E. Metzger) writes:\n\n> In article <1qnupd$jpm@news.intercon.com> amanda@intercon.com (Amanda Walker) writes:\n> \n>    From: amanda@intercon.com (Amanda Walker)\n> \n>    jhesse@netcom.com (John Hesse) writes:\n>    > Oh great. Wonderful news. Nobody can listen in--except the feds. \n> \n>    Hey, it's better than the status quo.\n> \n>    I am far less worried about \"the feds\" tapping my phone than high school \n>    scanner surfers who get their kicks out of eavesdropping on cellular and \n>    cordless phone calls.\n> \n> I'm a political dissident. I'm scared shitless of the feds listening\n> in on my calls. My opinions are the sort that would get me\n> \"disappeared\" in a slightly less free society -- and who knows what\n> sort of society we will be in in five or ten years? I have friends who\n> have had their phones tapped -- none of this is theoretical to me.\n> \n> As for \"its better than the status quo\", well, first of all, you can\n> get a cryptophone from companies like Cylink today -- and they work\n> well. In addition, a number of groups are now working on building\n> software to turn any PC into a privacy enhanced phone right now -- and\n> they are all working in overdrive mode.\n> \n>    And yes, I'd rather just see all crypto restrictions lifted, but this is at \n>    least an incrememental improvement for certain applications...\n> \n> There ARE no crypto restrictions... yet. You can use anything you want\n> RIGHT NOW. The point is to maintain that right.\n\nThe point you all seem to have missed was covered when the UK cellphone\nscrambling system was discussed.  Incidentally, my MP has responded to\nmy questions on that issue, and it appears that the UK and other `approved'\ncountries will get the secure A5 encryption, and `dodgy' countries will\nget A5X.  Existing mobile equipment will drop to clear mode when used with\nA5X systems, but newer equipment will use A5/A5X/clear depending on the\ncapabilities of the base station.\n\nThe cops/feds do *not* need to be able to get hold of your private key to\nlisten in to cellular conversations.  Encryption is not end-to-end, but \ncellphone to base-station - it *has* to be this way so that cellular users\nand fixed installations can talk to each other.  For cellular to cellular\ncalls, the transmission is decrypted at the base-station, passed to another\nbase-station and re-encrypted.  The cops/feds can listen to the unscrambled\ncall *provided* they get a warrant to tap into the cellular provider's\nequipment.  The only reason for wanting a crackable system is so they can\nlisten without having to obtain a warrant.\n\nBut, maybe the Clipper system is secure, and they really do need a warrant\nto get the key out of escrow before they can listen in using a scanner (see\nabove - they don't *have* to go down this route anyway).  I have my doubts,\nbut even if true once they have the key they will *never* again need a\nwarrant to tap into that particular phone whenever they want.  `Well, Judge,\nit appears he wasn't a drug-dealer after all, so naturally we'll stop\nlistening in'...\n\nYou have every reason to be scared shitless.  Take a look at the records\nof McCarthy, Hoover (J. Edgar, not the cleaner - though they both excelled at\nsucking) and Nixon.\n\n- --Paul\n\n-----BEGIN PGP SIGNATURE-----\nVersion: 2.2\n\niQCVAgUBK9IAl2v14aSAK9PNAQEvxgQAoXrviAggvpVRDLWzCHbNQo6yHuNuj8my\ncvPx2zVkhHjzkfs5lUW6z63rRwejvHxegV79EX4xzsssWVUzbLvyQUkGS08SZ2Eq\nbLSuij9aFXalv5gJ4jB/hU40qvU6I7gKKrVgtLxEYpkvXFd+tFC4n9HovumvNRUc\nve5ZY8988pY=\n=NOcG\n-----END PGP SIGNATURE-----\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9191, "properties": {"category": "sci.med", "text": "From: ron.roth@rose.com (ron roth)\nSubject: Selective Placebo\nX-Gated-By: Usenet <==> RoseMail Gateway (v1.70)\nOrganization: Rose Media Inc, Toronto, Ontario.\nLines: 33\n\nK(>  king@reasoning.com (Dick King) writes:\nK(>\nK(> RR>  ron.roth@rose.com (ron roth) wrote:\nK(> RR>  OTOH, who are we kidding, the New England Medical Journal in 1984\nK(> RR>  ran the heading: \"Ninety Percent of Diseases are not Treatable by\nK(> RR>  Drugs or Surgery,\" which has been echoed by several other reports.\nK(> RR>  No wonder MDs are not amused with alternative medicine, since\nK(> RR>  the 20% magic of the \"placebo effect\" would award alternative \nK(> RR>  practitioners twice the success rate of conventional medicine...\nK(>  \nK(>  1: \"90% of diseases\" is not the same thing as \"90% of patients\".\nK(>  \nK(>     In a world with one curable disease that strikes 100 people, and nine\nK(>     incurable diseases which strikes one person each, medical science will cure\nK(>     91% of the patients and report that 90% of diseases have no therapy.\nK(>  \nK(>  2: A disease would be counted among the 90% untreatable if nothing better than\nK(>     a placebo were known.  Of course MDs are ethically bound to not knowingly\nK(>     dispense placebos...\nK(>  \nK(>     -dk\n \n Hmmm... even  *without*  the  ;-)  at the end, I didn't think anyone\n was going to take the mathematics or statistics of my post seriously.\n \n I only hope that you had the same thing in mind with your post, \n otherwise you would need at least TWO  ;-)'s  at the end to help \n anyone understand your calculations above...\n\n  --Ron--\n---\n   RoseReader 2.00  P003228:  This mind intentionally left blank.\n   RoseMail 2.10 : Usenet: Rose Media - Hamilton (416) 575-5363\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9192, "properties": {"category": "sci.med", "text": "From: bbenowit@telesciences.com (Barry D Benowitz)\nSubject: Re: eye dominance\nIn-Reply-To: rsilver@world.std.com's message of Mon, 12 Apr 1993 21:02:31 GMT\nNntp-Posting-Host: kyanite\nOrganization: Telesciences CO Systems, Inc.\nLines: 24\n\nIn article <C5E2G7.877@world.std.com> rsilver@world.std.com (Richard Silver) writes:\n\n>   Is there a right-eye dominance (eyedness?) as there is an\n>   overall right-handedness in the population? I mean do most\n>   people require less lens corrections for the one eye than the\n>   other? If so, what kinds of percentages can be attached to this?\n>   Thanks. \n\n\nYes, there is such a thing as eye dominance, although I am not sure if\nthis dominance refers to perscription strength.\n\nAs i recall, if you selectively close your dominant eye, you will percieve\nthat the image shifts. This will not happen if you close your other eye.\n\nI believe that which eye is dominant is related to handedness, but I\ncan't recall the relation at the moment.\n\n\n--\nBarry D. Benowitz\nEMail:\tbbenowit@telesciences.com (...!pyrnj!telesci!bbenowit)\nPhone:\t+1 609 866 1000 x354\nSnail:\tTelesciences CO Systems, 351 New Albany Rd, Moorestown, NJ, 08057-1177\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9193, "properties": {"category": "sci.crypt", "text": "From: C445585@mizzou1.missouri.edu (John Kelsey)\nSubject: Clipper chip and key exchange methods\nNntp-Posting-Host: mizzou1.missouri.edu\nOrganization: University of Missouri\nLines: 13\n\n   I was wanting to ask the same question Dan Bernstein asked--how does the\nClipper chip exchange keys?  If the public key is only 80 or 160 bits long,\ndoes anyone know of any public-key schemes that are secure with that key\nsize?  (Diffie-Hellman or maybe El Gamal, with p set to a constant value?)\n   Presumably, the real scheme is something like:\n \n   1.  Exchange/verify public keys.\n   2.  Send encrypted (randomly-generated) session key.\n   3.  Encrypt / Decrypt voice trafic with some sort of fast stream cipher.\n \n   Can anyone elaborate on this, or show me what I'm missing here?\n \n   --John Kelsey, c445585@mizzou1.missouri.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9194, "properties": {"category": "comp.sys.mac.hardware", "text": "From: umsmith@mcs.drexel.edu (Mathew Scott Smith)\nSubject: Axion Serial port switcher: Good or bad?\nOrganization: Drexel University\nLines: 26\n\nHi!\n\n   I'm looking into buying a serial port switcher, because while my Mac has\ntwo serial ports, I have AppleTalk, a modem, a printer, MIDI, and a sound\ndigitizer.  (2 != 5, unfortunately.)\n\n   Specifically, I'm looking at the Axion electronic switcher, because it\nseems to be fairly cheap.  (About $128 at MacZone.)\n\n   Does anyone know anything about it?  I've heard that with most of these\nthings you can still only use 2 serial ports at a time, it just prevents you\nfrom physically swapping cables.  Although I've also heard that programs\nthat use the Comm Toolbox may be able to use as many serial ports as they\nwant; does anyone know if this is true with the Axion switchbox?\n\n   Finally, if the Axion stinks, or if you're using something else that you\nthink is good, I'd be interested in hearing about other products.  I would\nlike to spend under $140, if possible.\n\n   Please reply through mail; I'm not a regular reader of this newsgroup.\nIf there's interest, I can post a summary of replies.\n\nThanks a lot!\n\nM. Scott Smith\n  (umsmith@mcs.drexel.edu)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9195, "properties": {"category": "rec.sport.baseball", "text": "From: DAK988S@vma.smsu.edu\nSubject: Re: Torre: The worst manager?\nOrganization: SouthWest Mo State Univ\nLines: 15\nNNTP-Posting-Host: vma.smsu.edu\nX-Newsreader: NNR/VM S_1.3.2\n\nIn article <93095@hydra.gatech.EDU>\ngt7469a@prism.gatech.EDU (Brian R. Landmann) writes:\n \n>\n>Joe Torre has to be the worst manager in baseball.\n>brian, a very distressed cardinal fan.\n>--\n \nNo....Hal McRae is the worst manager in baseball.  I've never seen a guy who\ncan waste talent like he can.  One of the best raw-talent staffs in the league,\nand he's still finding a way to lose.  I'll be surprised if he makes it through\nthe next 2 weeks, unless drastic improvement is made.\n \nAn even more frustrated Royals fan,\nDarin J. Keener      dak988s@vma.smsu.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9196, "properties": {"category": "rec.autos", "text": "From: barnesm@sun.com (Mark Barnes - SunSoft)\nSubject: Re: WARNING.....(please read)...\nOrganization: Sun Microsystems, Inc.\nLines: 12\nDistribution: world\nReply-To: barnesm@sun.com\nNNTP-Posting-Host: vavau.corp.sun.com\n\n...and in San Francisco recently, some of our finest examples of humanity\npoured oil over a road so that vehicles going uphill would suddnely become\nimmobile, and then they would walk right up to the vehicles and make their\ndemands known.\n--------------------------------+---------------------------------------\nMark Barnes, System Engineer    |  <insert standard disclaimers here>\nSunSoft                         |\nCorporate Technical Escalations |  I speak for myself, an individual,\nMenlo Park, CA, USA             |  not for the company for which I work.\nbarnesm@vavau.Corp.Sun.COM      |\n--------------------------------+---------------------------------------\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9197, "properties": {"category": "rec.motorcycles", "text": "From: cds7k@Virginia.EDU (Christopher Douglas Saady)\nSubject: Re: Looking for MOVIES w/ BIKES\nOrganization: University of Virginia\nLines: 4\n\nThere's also Billy Jack, The Wild One, Smokey and the Bandit\n(Where Jerry Reed runs his truck over Motorcycle Gangs Bikes),\nand a video tape documentary on the Hell's Angels I\nfound in a rental store once\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9198, "properties": {"category": "sci.crypt", "text": "From: jfw@ksr.com (John F. Woods)\nSubject: Re: Once tapped, your code is no good any more.\nDistribution: na\nOrganization: Kendall Square Research Corp.\nLines: 20\n\njohnson@trwacs.fp.trw.com (Steve Johnson) writes:\n>>-Tim May, whose sig block may get him busted in the New Regime\n>  A remark I heard the other day is beginning to take on increasingly\n>frightening significance.  The comment was made that \"In other parts\n>of the world the Democrats [note the big \"D\"] would be known as\n>Socialists\" \n\nAnd in other parts of the world, European \"Socialists\" would be known as\nfascist capitalist pigs.  Get your head out of your labels and think carefully\nfor once:\n\nAccording to the EFF announcement on this thing, the NSA has been developing\nthis turkey for *four* years.  The manufacturing contract was let *14 months\nago*.  Anyone out there who believes that the fact that Clinton's name was\non this White House announcement means that Bush or any other Republican is\na staunch supporter of personal privacy is a fool.\n\nIf this topic disturbs you, can the political finger-pointing and talk about\nwhat you can do about it.  If you've just GOT to point fingers, remember that\nthis scheme was STARTED when a secret policeman was President.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9199, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ccastco@prism.gatech.EDU (Constantinos Malamas)\nSubject: Re: Is ms-windows a \"mature\" OS?\nKeywords: ms-windows\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 46\n\nIn article <cyen.735139934@ponder> Jesse writes:\n>hi,\n>  Have you used Mac system 6.x or 7.x? If the answer is positive, you would\n>know if ms-windows is a \"mature\" OS.\n>\n>  Days ago people doubted that ms-windows is not a real OS. I can see why\n>they have such question. Ms-windows confuses many people. Microsoft\n\n[Common complaints about MS Windows deleted...]\n\n>Jesse\n>e-mail:cyen@cs.unt.edu/ic43@sol.acs.unt.edu\n\n\tHmmmm, why do I get the feeling that this is gonna start one of\nthose endless threads 'Mac Vs Win\" and might even end up as \"OS/2 Vs Win\".\nWell, I dont know if Windows is a mature OS, if I have seen one (in which\ncase that has to be X-Windows :) ), but dont be so quick to judge... \nFirst of all to try to use plain vanilla Windows is as courageous as to try\nto use plain vanilla DOS. There are _lots_ of very nice commercial and\nshareware packages/utilities that will boost up Windows past what MS itself\nthought possible :)... For example, Norton Desktop for Windows 2.0 (a replace-\nment for ProgMan) will give you group-within-a-group capability and will\neven change group icons, it will launch progs by association (well, FileMan\ndoes that too) or by dragging the file in the apps icon (now Mac doesnt do\nthat, huh? :) )... And the list goes on and on... Now, Windows _is_ kinda\nhard to finetune, boost and configure, but thats trhe price to pay for not\npaying $$$ to get a Mac or an OS/2 capable machine (an entirely differet\nstory ...)... On the other hand if you dont like the idea of PM's icons\nnot correspnding to the files themselves, well they are not supposed to :)..\nPM is a Program _Launching_ utility not a file manager... Modify your \nsettings to have FM as your shell and not PM, or get a couple of utilities\nfrom cica that supposedly give you a 'Mac feel'... I dont wanna get in the\ndiscussion which is a better system: Mac's are good in their own way -- they\nare _different_ not better or worse than Win PCs-- (actually I am writing\nthis from a Mac lab as a user assistant - so dont think I am partial to Win:) )\nBy all means check out the stuff in cica (ftp to ftp.cica.indiana.edu under\nthe pub/pc/win3 subdir user: anonymous), or wait for StarTrek (Mac's OS on\na PC !!! -- the threads we are gonna have then !!! :) )...\nJust trying to avoid another Mac-Win war...\n\n\n-- \nCostas Malamas ____________________________________________________________\nGeorgia Institute of Technology \nOIT UA -- Opinions expressed are not necessarily OIT's... \nInternet: ccastco@prism.gatech.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9200, "properties": {"category": "alt.atheism", "text": "From: spbach@lerc.nasa.gov (James Felder)\nSubject: Re: \"So help you God\" in court?\nOrganization: NASA Lewis Resaerch Center\nLines: 35\nDistribution: world\nReply-To: spbach@lerc.nasa.gov\nNNTP-Posting-Host: hopper3.lerc.nasa.gov\n\nIn article 013423TAN102@psuvm.psu.edu, Andrew Newell <TAN102@psuvm.psu.edu> writes:\n->In article <1993Apr9.151914.1885@daffy.cs.wisc.edu>, mccullou@snake2.cs.wisc.edu\n->(Mark McCullough) says:\n->>\n->>In article <monack.733980580@helium> monack@helium.gas.uug.arizona.edu (david\n->>n->>monack) writes:\n->>>Another issue is that by having to request to not be required to\n->>>recite the \"so help me God\" part of the oath, a theistic jury may be\n->>>prejudiced against your testimony even though atheism is probably not\n->>>at all relevant to the case.\n->>>\n->>>What is the recommended procedure for requesting an alternate oath or\n->>>affirmation?\n->>>\n->>>Dave\n\nSorry for using a follow-up to respond, but my server dropped about a weeks worth of news\nwhen it couldn't keep up.\n\nWhen the you are asked to swear \"So help you god\" and you have to say it, ask which one; Jesus,\nAllah, Vishnu, Zues, Odin.  Get them to be specific.   Don't be obnoxious, just humbly ask, then \nquitely sit back and watch the fun.\n\n---\n\n-----------------------------------------------------------------------------\nJames L. Felder\t\t\t|\nSverdrup Technology,Inc.\t|     phone: 216-891-4019\nNASA Lewis Research Center     \t|    \nCleveland, Ohio  44135         \t|     email: jfelder@lerc.nasa.gov \n\"Some people drink from the fountain of knowledge, other people gargle\"\n-----------------------------------------------------------------------------\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9201, "properties": {"category": "rec.sport.hockey", "text": "From: slegge@kean.ucs.mun.ca\nSubject: Re: Too Many European in NHL\nLines: 29\nOrganization: Memorial University. St.John's Nfld, Canada\n\nRA>    Here's the point: there are far too many Europeans in the NHL. \nR> I am sick of watching a game between an American and a Canadian \nRA> team (let's say, the Red Wings and the Canucks) and seeing names \nR> like \"Bure\" \"Konstantinov\" and \"Borshevshky\". Is this North America \nRA> isn't it?\n \nI disagree.  I think the NHL should feature the best hockey talent in\nthe world -- regardless of nationality.  I have to admit that when I \nsee players like Gretzky and Messier traded off to the US because the\nCanadian teams can't afford them, I have been know to say (only half-\nseriously) that we'd probably be better off if we had our own Canadian\nhockey league for Canadian players! ;-)\n\nRA> I'm all for the creation of a European Hockey League, and let \nRA> te Bures and Selannes of the world play on their own continent.    \n\nRA> \nRA> I just don't want themon mine.   \n \nAgain, it doesn't matter to me -- Russian, Finnish, Mexican, Albertan,\nNew Yorker, black, white, korean, martian, plutoneon, ... it doesn't\nmatter.\n \nAny of them can put a Leafs' jersey on if they can put the puck in! \n:-)\n\nStephen Legge\nSLEGGE@kean.ucs.munc.ca\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9202, "properties": {"category": "sci.electronics", "text": "Subject: Re: Cable TVI interference\nFrom: ganter@ifi.unibas.ch (Robert Ganter)\nOrganization: Institut fuer Informatik\nNntp-Posting-Host: schroeder.ifi.unibas.ch\nLines: 56\n\nIn article <1qevrf$4t@hpscit.sc.hp.com>  writes:\n> \n> As is typical nowadaze, you will probably have to do somebody else's job\n> for them. Although this shouldn't be needed, you might take a few minutes\n> to wander around the neighborhood with an HT sniffing for cable leakage\n> on your freq. after shutting down your system for a while. \n> \n> If you are fortunate enough to the find the hole, call the cable company and\n> get the highest link in the chain of command you can. Explain the problem,\n> whose job it really is to maintain THEIR equipment, and how much of a nice\n> guy you are to have tracked down THEIR problem for them.\n> \n> You may have been lucky and made a new contact that could be helpful in the\n> future.\n> \n> You should always try the 'honey' approach before bringing out the\n> Jack Nicholson impressions.....  >:-)\n> \n> This has worked for me in the past with the power company when tring to \n> find loose/noisy high voltage lines/hardware. Only once did I have to\n> tell them I was narrowing the problem down to a specific pole by bumping\n> a whole line of poles with my car. Got 'em out there THAT NIGHT. And, they\n> didn't have to meet Jack!\n> \n> As a disclaimer, THEIR method for finding loose hardware was usually\n> whacking the poles with a huge sledgehammer after their high tech arc-\n> finding 'scope couldn't find the problem.\n> \n> \n> \n> Bill\n> wb6 rotten zucchini garden\n\nHere in switzerland, the situation is exactly the same. The cable tv companies  \neven tried to stop amateur radio in switzerland in the beginning of cable  \ntv(they seem to be too stupid to know anything about international frequency  \nconferences or so). Even today, they use the cheapest possible coax running  \ninto problems they can't solve anymore. As Bill noted, the only way is to look  \nfor a solution with the neighbours *BEFORE* calling for the cable tv guys or  \nthe fcc. The chance to find neighbours with some sense for reason is by far  \nbigger than with these people (especially the first ones). As anywhere in an  \nadministration people don't like, if You tell them to work for the money they  \nget...\nThe problem is, that radio amateurs don't have the power to put trough their  \nrights in all cases. So let's hope they start soon with optical fibers and get  \nout of our freqencies.\n\n\nCheers   Robert  (HB9NBY)\n--\nRobert Ganter\t\t\t/------------\\\nUniversitaet Basel\t\t| I am a fan |\nInstitut fuer Informatik\t| of my plan |\nBasel/Switzerland\t\t\\------------/\nganter@ifi.unibas.ch\namateurradio: HB9NBY\tpacket: HB9NBY@HB9EAS.CHE.EU\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9203, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Syria's Expansion\nOrganization: Aiken Computation Lab, Harvard University\nLines: 95\n\nIn article <C5qHyA.5Gn@dscomsa.desy.de> hallam@zeus02.desy.de writes:\n>\n>In article <1993Apr18.212610.5933@das.harvard.edu>, adam@endor.uucp (Adam Shostack) writes:\n\n>|>In article <18APR93.15729846.0076@VM1.MCGILL.CA> B8HA000 <B8HA@MUSICB.MCGILL.CA> writes:\n\n>|>>1) Is Israel's occupation of Southern Lebanon temporary?\n\n>|>\tIsrael has repeatedly stated that it will leave Lebanon when\n>|>the Lebanese government can provide guarantees that Israel will not be\n>|>attacked from Lebanese soil, and when the Syrians leave.\n\n>Not acceptable. Syria and Lebanon have a right to determine if\n>they wish to return to the situation prior to the French invasion\n>where they were both part of the same \"mandate territory\" - read\n>colony.\n\n\tAnd Lebanon has a right to make this decision without Syrian\ntroops controlling the country.  Until Syria leaves, and free\nelections take place, its is rediculous to claim that the Lebanese\nwould even be involved in determining what happens to their country.\n\n>Israel has no right to determine what happens in Lebanon. Invading another\n>country because you consider them a threat is precisely the way that almost\n>all wars of aggression have started.\n\n\tI expect you will agree that the same holds true for Syria\nhaving no right to be in Lebanon?\n\n>|>\tIsrael has already annexed areas taken over in the 1967 war.\n>|>These areas are not occupied, but disputed, since there is no\n>|>legitamate governing body.  Citizenship was given to those residents\n>|>in annexed areas who wanted citizenship.\n\n>The UN defines them as occupied. They are recognised as such by every\n>nation on earth (excluding one small caribean island).\n\n\tThe UN also thought Zionism is racism.  That fails to make it true.\n\n>|>\tThe first reason was security.  A large Jewish presense makes\n>|>it difficult for terrorists to infiltrate.  A Jewish settlements also\n>|>act as fortresses in times of war.\n>\n>Theyu also are a liability. We are talking about civilian encampments that\n>would last no more than hours against tanks,\n\n\tThey lasted weeks against tanks in '48, and stopped those\ntanks from advancing.  They also lasted days in '73.  There is little\nevidence for the claim that they are military liabilities.\n\n\tThey evidence is there to show that when infiltrations take\nplace over the Jordan river, the existance of large, patrolled\nkibutzim forces terrorists into a very small area, where they are\nusually picked up in the morning.\n\n>|>\tA second reason was political.  Creating \"settlements\" brought\n>|>the arabs to the negotiation table.  Had the creation of new towns and\n>|>cities gone on another several years, there would be no place left in\n>|>Israel where there was an arab majority.  There would have been no\n>|>land left that could be called arab.\n\n>Don't fool yourself. It was the gulf war that brought the Israelis to the\n>negotiating table. Once their US backers had a secure base in the gulf\n>they insrtructed Shamir to negotiate or else.\n\n\tNonsense.  Israel has been trying to get its neighbors to the\nnegotiating table for 40 years.  It was the gulf war that brought the\narabs to the table, not the Israelis.\n\n>|>\tThe point is, there are many reasons people moved over the\n>|>green line, and many reasons the government wanted them to.  Whatever\n>|>status is negotiated for disputed territories, it will not be an \"all\n>|>or nothing\" deal.  New boundaries will be drawn up by negotiation, not\n>|>be the results of a war.\n\n>Unless the new boundaries drawn up are those of 48 there will be no peace.\n>Araffat has precious little authority to agree to anything else.\n\n\tNonsense.  According to Arafat, Israel must be destroyed.  He\nhas never come clean and denied that this is his plan.  He always\nwaffles on what he means.\n\n\t``When the Arabs set off their volcano, there will only be Arabs in\n\tthis part of the world.  Our people will continue to fuel the torch\n\tof the revolution with rivers of blood until the whole of the\n\toccupied homeland is liberated...''\n\t--- Yasser Arafat, AP, 3/12/79\n\n\n\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9204, "properties": {"category": "rec.autos", "text": "From: k8gj@vax5.cit.cornell.edu\nSubject: Impreza, Altima, or What??\nDistribution: rec\nOrganization: Cornell University\nLines: 14\n\nA friend of mine is cnsidering buying a new car, and is considering the\nSubaru Impreza or the Nissan Altima right now.  Which of these two cars\nwould you recommend.  We definately want an airbag and ABS, and room for\ntall people and long legs.\n\nIf you have other suggestions for cars under $13K after dealing I'd be\ninterested\nin you opinions as well.\n\nPLEASE send replies to sem1@postoffice.mail.cornell.edu, no tthis address.\n\nTHANKS!\nScott\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9205, "properties": {"category": "sci.crypt", "text": "From: Borut.B.Lavrencic@ijs.si\nSubject: Re: Cryptology in the world\nReply-To: Borut.B.Lavrencic@ijs.si\nOrganization: J. Stefan Institute, Lj, Slovenia\nLines: 25\n\nIn article <1993Apr21.031524.11080@news.weeg.uiowa.edu>, \nholthaus@news.weeg.uiowa.edu (James R. Holthaus) writes:\n\n> What is the status of cruptology for private citizens throughout the\n> world? or, more clearly, is there a listing of countries and their\n> policies on citizens encrypting electronic data?  \n> \n> I'm curious how the Europeans handle this, for instance.\n> -- \n\nGood question. I also wanted to find out and I did a while ago.\n\nIn our former communist times such activity (i.e. sending crypto emails)\nwould be prevented sooner ot later, law or no law. But now there is no law \nagainst it. So we are free to use it. We now have an EC conformant law for \nprotection and registration of personal files. You must remember that the \nsituation in small countries is vastly different from the big ones.\n-- \nBorut B. Lavrencic, D.Sc.     | X.400   :C=si;A=mail;P=ac;O=ijs;S=lavrencic\nJ. Stefan Institute           | Internet:Borut.B.Lavrencic@ijs.si\nUniversity of Ljubljana,      | Phone   :+ 386 1 159 199\nSI-61111 Ljubljana, Slovenia  |\t    PGP Public Key available on request\n\nDOLGO SMOIS KALIS OVRAZ NIKEI NJIHK OCNOO DKRIL IVSEB IPIKA\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9206, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nLines: 65\n\n] gtoal@news.ibmpcug.co.uk (Graham Toal) writes:\n] > Try reading between the lines David - there are *strong* hints in there \n] > that they're angling for NREN next,\n\n] Where?  I honestly didn't see any...\n\nHint 1:\n\n: Sophisticated encryption technology has been used for years to\n: protect electronic funds transfer.  It is now being used to\n: protect electronic mail and computer files.  While encryption\n  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nHint 2:\n\n: This new technology will help companies protect proprietary\n: information, protect the privacy of personal phone conversations\n: and prevent unauthorized release of data transmitted\n                                      ^^^^^^^^^^^^^^^^\n: electronically.  At the same time this technology preserves the\n  ^^^^^^^^^^^^^^ \n:      --   the privacy of our citizens, including the need to\n:           employ voice or data encryption for business purposes;\n                         ^^^^^^^^^^^^^^^^^^\n:      --   the ability of authorized officials to access telephone\n:           calls and data, under proper court or other legal\n                  ^^^^^^^^\n:           order, when necessary to protect our citizens;\n\nVERY BIG HINT 3:\n\n# The Administration is committed to working with the private\n# sector to spur the development of a National Information\n# Infrastructure which will use new telecommunications and computer\n# technologies to give Americans unprecedented access to\n# information.  This infrastructure of high-speed networks\n# (\"information superhighways\") will transmit video, images, HDTV\n# programming, and huge data files as easily as today's telephone\n# system transmits voice.\n\nVERY BIG HINT 4: (See above)\n\n## Since encryption technology will play an increasingly important\n## role in that infrastructure, the Federal Government must act\n## quickly to develop consistent, comprehensive policies regarding\n## its use.\n\n] > and the only conceivable meaning of \n] > applying this particular technology to a computer network is that they \n] > intend it to be used in exclusion to any other means of encryption. \n\n] I disagree, if for no other reason than that there are already other \n] standards in place.  Besides, even if they restrict encryption on the NREN, \n] who cares?  Most of the Internet is commercial anyway.  The NREN is only for \n] geovernment and university research (read the proposals--it's a \"data \n] superhighway\" for Cray users, not anything having to do with the Internet).\n\nOh, I see your point.  I think you're wrong.  But if you sit back and wait\nto find out if I'm right, it'll be too late.  Just listen *very* carefully\nfor the first 'such and such will not be permitted on network XYZ' shoe to\ndrop.\n\nG\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9207, "properties": {"category": "talk.religion.misc", "text": "From: Pegasus@aaa.uoregon.edu (Pegasus)\nSubject: Re: Merlin, Mithras and Magick\nOrganization: the Polyhedron Group\nLines: 21\nDistribution: world\nNNTP-Posting-Host: fp1-dialin-1.uoregon.edu\n\nIn article <JOSHUA.93Apr19183833@bailey.cpac.washington.edu>,\njoshua@cpac.washington.edu (Joshua Geller) wrote:\n> \n> \n> In article <Pegasus-150493132018@fp1-dialin-4.uoregon.edu> \n> Pegasus@aaa.uoregon.edu (LaurieEWBrandt) writes:\n> \nLEWB>> Lets add to those percentages 13-15% for the Orphaic docterians\nbrought LEWB>>to the group by Paul/Saul who was a high ranking initiate. On\nthe LEWB>>development of Orphaic Mysteries, see Jane Harrisons .Prolegomena\nto the LEWB>>study of Greek religion. Cambridge U Press 1922. and you can\neasly draw LEWB>>your own conclusions.\n \njosh> perhaps you can quote just a bit of her argument?\n\nLove to,but I must do it a bit later My copy of Harrison in packed, but the\nlast chapter as best as I can rember deals with Orphic mysteries and their\nviews of women though she does not come out and say it it is strongly\nimplyed that the Christian view was drawn heavly from the Orphic and other\nMajor cults of the time.\nPegasus\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9208, "properties": {"category": "talk.politics.guns", "text": "From: kevin@axon.cs.byu.edu (Kevin Vanhorn)\nSubject: American Horror File -- call for help\nOrganization: /usr/users/kevin/.organization\nLines: 30\nDistribution: usa\nNNTP-Posting-Host: axon.cs.byu.edu\n\n\nToday's atrocity in Waco has finally impelled me to start working on\nsomething I've been thinking about for some time.  Over the last few\nyears I have heard of one case after another of government running\ncompletely amok.  Unfortunately, most people are oblivious of the\ngovernment's crimes and still think of it as their protector.  So I\nintend to put together what I call the \"American Horror File\": a\ncompilation of cases where the American government has run roughshod\nover the rights of its citizens over the last few years, focusing\nespecially on deaths and injuries resulting from no-knock warrants,\nand financial ruin to innocents resulting from civil forfeiture laws,\nbut including any other cases for which I can find decent\ndocumentation.  I hope to make people blood-boiling, artery-bursting,\nred-hot enraged at their government.\n\nThe end result will probably be a book in electronic form (ASCII text\nand postscript files) detailing the government's crimes of recent\nyears.  This book will be distributed at cost, and I will encourage\npeople to post copies to BBS's, send copies on disk to friends, and\nprint out copies and give them to neighbors.\n\nThis is a call for your help.  Any information that you can send me on\nhow government is running amok will be greatly appreciated.  I would prefer\ninformation that is well-documented, with sources given, about specific\ninstances of governmental abuses.  I also welcome anyone who wants to\njoin me in collecting and researching information for this project.\n\n-----------------------------------------------------------------------------\nKevin S. Van Horn       | Is your religion BATF-approved?\nvanhorn@bert.cs.byu.edu |\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9209, "properties": {"category": "talk.religion.misc", "text": "Nntp-Posting-Host: dougn.byu.edu\nLines: 24\nFrom: $stephan@sasb.byu.edu (Stephan Fassmann)\nSubject: Re: [lds] Are the Mormons the True Church?\nOrganization: BYU\n\nIn article <C5rr9M.LJ7@acsu.buffalo.edu> psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss) writes:\n>From: psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss)\n>Subject: [lds] Are the Mormons the True Church?\n>Date: 20 Apr 93 06:29:00 GMT\n>\n>            IS THE MORMON CHURCH CHRIST'S TRUE CHURCH?\n>\n[...lots of stuff about intellectual errors deleted...]\n\nThis is cute, but I see no statement telling me why your church is the true \nchurch. I do presume that you know or at least believe that yours is true. \nAttempting to ream my faith without replacing it with something \"better\" is \na real good way to loose a person completely from Christ.\n\nThis is the greatest reason I see that these attacks are not motivated by \nlove. They only seek to destroy there is no building or replacing of belief. \nThis is not something Christ did. He guided and instructed He didn't \nseek to destroy the faith He found, He redirected it. \n\nThis is what I see when people say they \"love\" <insert favorite group here>. \nAnd I have to laugh at the irony. \n\nPlease excuse the scarcasm but it was nice to say it. \nOh, BTW Robert don't take this personally, your post was merely convinent.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9210, "properties": {"category": "sci.med", "text": "From: bhjelle@carina.unm.edu ()\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nOrganization: University of New Mexico, Albuquerque\nLines: 19\nNNTP-Posting-Host: carina.unm.edu\n\nIn article <1993Apr21.091844.4035@omen.UUCP> caf@omen.UUCP (Chuck Forsberg WA7KGX) writes:\n>In article <19687@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>>\n>>Can you provide a reference to substantiate that gaining back\n>>the lost weight does not constitute \"weight rebound\" until it\n>>exceeds the starting weight?  Or is this oral tradition that\n>>is shared only among you obesity researchers?\n>\n>Not one, but two:\n>\n>Obesity in Europe 88,\n>proceedings of the 1st European Congress on Obesity\n>\n>Annals of NY Acad. Sci. 1987\n>\nHmmm. These don't look like references to me. Is passive-aggressive\nbehavior associated with weight rebound? :-)\n\nBrian\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.435+0000", "event": "documents", "entityId": 9211, "properties": {"category": "comp.graphics", "text": "From: wlm@wisdom.attmail.com (Bill Myers)\nSubject: Re: graphics libraries\nIn-Reply-To: ch41@prism.gatech.EDU's message of 21 Apr 93 12:56:08 GMT\nOrganization: /usr1/lib/news/organization\nLines: 28\n\n\n> Does anyone out there have any experience with Figaro+ form TGS or\n> HOOPS from Ithaca Software?  I would appreciate any comments.\n\nYes, I do.  A couple of years ago, I did a comparison of the two\nproducts.  Some of this may have changed, but here goes.\n\nAs far as a PHIGS+ implementation, Figaro+ is fine.  But, its PHIGS!\nPersonally, I hate PHIGS because I find it is too low level.  I also\ndislike structure editing, which I find impossible, but enough about\nPHIGS.\n\nI have found HOOPS to be a system that is full-featured and easy to\nuse.  They support all of their rendering methods in software when\nthere is no hardware support, their documentation is good, and they\nare easily portable to other systems.\n\nI would be happy to elaborate further if you have more specific\nquestions. \n--\n|------------------------------------------------------|\n    ~~~       Here's lookin' at ya.\n  ~~_ _~~\n  |`O-@'|     Bill  |  wlm@wisdom.attmail.com\n @|  >  |@    Phone: (216) 831-2880 x2002\n  |\\___/|\n  |_____|\n|______________________________________________________|\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9212, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: W4WG & Novell\nFrom: cctr132@csc.canterbury.ac.nz (Nick FitzGerald, PC Software Consultant, CSC, UoC, NZ)\nReply-To: Nick FitzGerald <n.fitzgerald@csc.canterbury.ac.nz>\nOrganization: University of Canterbury, Christchurch, New Zealand\nNntp-Posting-Host: cantva.canterbury.ac.nz\nLines: 27\n\nIn article <1rh2mi$ea4@msuinfo.cl.msu.edu>, bilan@cps.msu.edu (Thomas J\nBilan) writes:\n\n> If I put LASTDRIVE = Z in my config.sys, NETX will run but I can't access\n> drive f: to log in to Novell.  \n> If I don't put LASTDRIVE = Z in my config.sys I can't access other W4WG \n> drives from the file-manager.\n>\n> It seems that there should be a way to make NETX work with the LASTDRIVE = \n> statement in my Config.Sys.\n\nFirst off, I haven't used W4WG (but I think that's about to change!).\n\nThe problem is the LASTDRIVE command and the way NetWare in general (and\nin this case NETX in particular) adds drives to the device chain. \nSetting LASTDRIVE=Z means there are no \"unassigned\" (as opposed to\n\"unused\") drive letters for NetWare to use, as it tacks its drive\nmappings -onto the end- of the existing list of drives.  W4WG obviously\nattaches its network drives to \"existing, unused\" drive letters.\n\nI'd guess the next thing I'd try is something like LASTDRIVE=M, which on\nmost machines will leave a fair swathe of drives for W4WG and still\nallow up to 13 NetWare drive mappings as well.\n\n+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n Nick FitzGerald, PC Applications Consultant, CSC, Uni of Canterbury, N.Z.\n n.fitzgerald@csc.canterbury.ac.nz  TEL:+64(3)364 2337, FAX:+64(3)364 2332\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9213, "properties": {"category": "rec.sport.baseball", "text": "From: jfc@athena.mit.edu (John F Carr)\nSubject: Re: proposed catcher re-sub rule\nOrganization: Massachusetts Institute of Technology\nLines: 11\nNNTP-Posting-Host: achates.mit.edu\n\n\nThe Red Sox usually have 2 catchers.  I don't think they have a backup now,\nbut they used to use Randy Kutcher as a backup catcher, as well as a middle\ninfielder and outfielder.  You don't need a good 3rd catcher, just a\ncompetent one, so you can afford to lose a little catching ability and pick\na player who can be of use elsewhere on the field.\n\n\n\n--\n    John Carr (jfc@athena.mit.edu)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9214, "properties": {"category": "sci.med", "text": "From: mhollowa@ic.sunysb.edu (Michael Holloway)\nSubject: Re: Wanted: Rat cell line (adrenal gland/cortical c.)\nOrganization: State University of New York at Stony Brook\nLines: 14\nNNTP-Posting-Host: engws5.ic.sunysb.edu\nKeywords: adrenal_gland cortical_cell cell_line rat\n\nIn article <roos.49@Operoni.Helsinki.FI> roos@Operoni.Helsinki.FI (Christophe Roos) writes:\n>I am looking for a rat cell line of adrenal gland / cortical cell  -type. I \n>have been looking at ATCC without success and would very much appreciate any \n>help.\n\nI shot off a response to this last night that I've tried to cancel.  It was \nonly a few minutes later while driving home that I remembered that your \nmessage does specifically say cortical.  My first reaction had been to suggest\nthe PC12 pheochromocytoma line.  That may still be a good compromise, depending\non what you're doing.  Have you concidered using a mouse cell line from one \nof the SV40 T antigen transgenic lines?  Another alternative might be primary\ncells from bovine adrenal cortex.  \n\nMike\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9215, "properties": {"category": "talk.politics.misc", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: Re: re: fillibuster\nLines: 55\nReply-To: hallam@zeus02.desy.de\nOrganization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n\n\nIn article <1993Apr12.002302.5262@martha.utcc.utk.edu>, PA146008@utkvm1.utk.edu (David Veal) writes:\n\n|>>Come to that under the original plan there wasn't meant to be anything\n|>>much for the federal government to do except keep the British out.\n|>\n|>       That's also untrue, but at least we're wandering a little closer\n|>toward reality.  That the Articles of Confederation fell apart is enough\n|>proof it was there for just a tad bit more.\n\nWell yes and no. The Federalist papers are propaganda and it is therefore\ndifficult to determine precisely what Maddison etc were up to from them. They\ncertainly emphasised a limited role for the federal government but this\nwas not necessarily their true position.\n\n|>>And like the house of lords which it is copied from it was given pretty\n|>>wide powers. Unfortunately they started to use them and thus the gridlock\n|>>set in.\n|>\n|>       I wasn't aware the House of Lords had \"wide powers.\"  I was under the\n|>impression is was pretty powerless compared to the House of Commons, and\n|>certainly didn't have almost equal their powers.  (The Senate is restricted\n|>only that it may not introduce bills relating to raising revenue.)\n\nThe Senate was less powerful than the House of Lords in the period in question.\nThe stripping of the powers of the House of Lords did not occur until 1914\nand David Llloyd George's budget. Even despite this the House of Lords has\nconsiderable power even today and is far from a rubber stamping body. \n\n\n|>       My reading of the Constitution and other writings gives me absolutely\n|>no reason to believe the Senate wasn't intended to make use of their \n|>law-making powers.  In fact, grid-lock appears to have been designed\n|>into the system, with the Senate being a more deliberative body to act\n|>as a check on the more-often elected House.\n\nThe system is meant to be slow to react, the problem is that it ended up\na bit too slow.\n\n\n|>       On what basis do you suggest that the Senate was supposed to be\n|>some sort of rubber-stamp for the House?  You'll note that while the\n|>President's veto may be over-ridden, the House can't do anything about\n|>a \"veto\" by the Senate.\n\nThe Presiden't veto was meant to be entirely separate. Until Bush abused it\nin a quite extraordinary manner it was used more in accord with the intent\nof being a check on unreasonable legislation. The veto was clearly regarded \nas a completely last gasp measure its use was meant to be restricted to\npreventing the legislature interfering with the actions of the executive.\n\nthe Senate is not meant to be exactly a rubber stamp body, it is meant as\na check on unrestrained legislation. That is the extra measure built into\nthe constitution in favour of the status quo, 60% of the representatives\nof the states is not a reasonable restriction. \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9216, "properties": {"category": "rec.sport.baseball", "text": "Subject: Marlin fans\nFrom: csc2imd@cabell.vcu.edu (Ian M. Derby)\nExpires: Fri, 30 Apr 1993 04:00:00 GMT\nOrganization: Virginia Commonwealth University\nKeywords: MF\nSummary: Marlin fans\nLines: 23\n\n\nI was watching the Dodgers/Marlins game yesterday and a couple of\nthings impressed me.  \n\nFirst is that the way the sun was shining in Miami, it had a summer\natmosphere in early spring for baseball.  In comparison Wrigley Field\nin early April still has a wintry look to it with the dead ivy and\nbundled up fans.  \n\nThe second and most important was the fans.  I like these guys/gals!\nI will admit I am a football fan first but I still enjoy baseball.\nIt was interesting because most of these fans are only accustomed to\nthe Miami Dolphins.  The way they were cheering, I thought it was the\nAFC playoffs.  Of course opening day may have A LOT to do with it,\nbut I really got feeling of electricity that I think is lacking with\na lot of baseball fans in other cities.  \n\nBaseball certainly needs a charge and I hope these two expansion\nteams bring back some excitement.  We'll find out Friday how Denver\nBronco fans respond. \n\nPhillies are 2-0! (I better say it now before my opportunity passes\nby)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9217, "properties": {"category": "comp.sys.mac.hardware", "text": "From: wlyle@sju.edu (Wayne Lyle)\nSubject: Driver for DataFrame XP60+B\nOrganization: St. Joseph's University\nLines: 14\n\n\tI am in need of the Driver for the Bernoulli Cartridge on a DataFrame\nXP60+B.  The hard disk on the system got fried and I haven't been able to\nlocate the original disks.  If anyone has it or know where I can get this\nplease let me know via e-mail.\n\nThanks in advance.\n\nWayne Lyle\n\n-- \n\nWayne J. Lyle\nDilworth, Paxson, Kalish & Kauffman\nPhiladelphia, PA 19109\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9218, "properties": {"category": "sci.med", "text": "From: rind@enterprise.bih.harvard.edu (David Rind)\nSubject: Re: Arrhythmia\nOrganization: Beth Israel Hospital, Harvard Medical School, Boston Mass., USA\nLines: 26\nNNTP-Posting-Host: enterprise.bih.harvard.edu\n\nIn article <1993Apr22.205509.23198@husc3.harvard.edu>\n perry1@husc10.harvard.edu (Alexis Perry) writes:\n>In article <1993Apr22.031423.1@vaxc.stevens-tech.edu>\n u96_averba@vaxc.stevens-tech.edu writes:\n\n>>doctors said that he could die from it, and the medication caused\n\n>\tIs it that serious?  My EKG often comes back with a few irregular\n>beats.  Another question:  Is a low blood potassium level very bad?  My\n>doctor seems concerned, but she tends to worry too much in general.\n\nThe term arrhythmia is usually used to encompass a wide range of abnormal\nheart rhythms (cardiac dysrhythmias).  Some of them are very serious\nwhile others are completely benign.  Having \"a few irregular beats\"\non an EKG could be serious depending on what those beats were and\nwhen they occurred, or could be of no significance.\n\nLow blood potassium levels probably predispose people with underlying\nheart disease to develop arrhythmias.  Very low potassium levels are\nclearly dangerous, but it is not clear how much of a problem\nlow-end-of-normal levels are:  a lot of cardiologists seem to treat\nanyone with even a mildly low-normal potassium level.\n\n-- \nDavid Rind\nrind@enterprise.bih.harvard.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9219, "properties": {"category": "sci.space", "text": "From: DPierce@world.std.com (Richard D Pierce)\nSubject: Re: Some Recent Observations by Hubble\nKeywords: HST, Pluto, Uranus\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 13\n\nIn article <15APR199316461058@kelvin.jpl.nasa.gov> baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n>Here are some recent observations taken by the Hubble Space Telescope:\n>\n>     o Observations were made using the High Speed Photometer of the Planet\n>       Uranus during an occultation by a faint star in Capricornus.\n                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nWow! I knew Uranus is a long way off, but I didn't think it was THAT far away!\n\n-- \n|                Dick Pierce                |\n|    Loudspeaker and Software Consulting    |\n| 17 Sartelle Street   Pepperell, MA  01463 |\n|       (508) 433-9183 (Voice and FAX)      |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9220, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: Re: ISA bus pin question; re: Diamond Speedstar 24X\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 16\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nThe JP5 on the Speedstar 24x is for those systems with boot-up problems.\nIf your system fails to boot-up proprtly, please pull off the jumper\nblock from jp5. This will not affect the proformance of the SpeedStar 24x.\n \nThis is what my manual says about jp5. I never knew that it was there\nbut the card is a real ask kicker in my book. It beats the hell out\nof my junk Sony 1604s to the point that I can't even use above 648x480\nmode much...Sam\nSome times an upgrage turns out to be a big overkill, like driving a Sony\nwith a 24x that the monitor can't handle. Or installing 60ns simms and\nthen finding out that your mother board doesn't have a cmos wait state\nadjustment to take advantage of the new 60ns simms that you just bought!\n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9221, "properties": {"category": "misc.forsale", "text": "From: dietrijj@mentor.cc.purdue.edu (dietrijj)\nSubject: WHAT A DEAL!!\nOrganization: Purdue University Computing Center\nLines: 36\n\nBOY OH BOY, HAVE I GOT A DEAL FOR YOU !!!!!!!!!\n\nHow does this sound.......\n\n\tI have decided to sell all of this as a package deal,\n(unless someone really wants something seperate, then I'm open\nto that as well).....\n\n\tKramer Striker 100st electric guitar\n\t\tDark metallic blue...\n\t\tFloyd Rose Tremlo...\n\t\tTuning lockers at the nut...\n\t\tGreat action, all-around great guitar!!\n\n\t\t\t-plus-\n\n\tKorg pme40x professional modular effects pedal board\n\t\tHas flanger, chorus, and graphic equilizer...\n\t\tHas a unique bonus...you can buy seperate pedal \"boxes\"\n\t\t\tthat sort of slide into any of the 4 existing slots..\n\t\tMono input, STEREO output...\n\t\tPerfect for the electric or acoustic guitars!!!\n\n\t\t\t-plus-\n\t\n\tDOD American Metal distortion pedal\n\t\tDurable, great sounding pedal...\n\t\tGoes great with the Korg pedal board!!\n\nThere you have it!  Everything you need for a great sound!!!\nYours as a package deal for only........$300 o.b.o.!!!!!!!!!!!!!!!!!!\n\nRespond by email to  dietrijj@mentor.cc.purdue.edu  or by phone at\n(317) 495-4426 and ask for Jason.  Thanks in advance!!!\n\n-Jason Dietrich\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9222, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tmc@spartan.ac.BrockU.CA (Tim Ciceran)\nSubject: Re: Help!  Phar lap???\nOrganization: Brock University, St. Catharines Ontario\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 29\n\nSpectre (spectre@nmt.edu) wrote:\n: Could some one tell me what:\n\n: Phar Lap err 35: The 386 chip is currently executing in virtual\n: 8086 mode under the control\n: of another program.  You must turn off this other program in order\n: to use 386|DOS-Extender to run in protected mode.\n\n: means.\n\n: This shows up on a CompuAdd Express 486-33 whenever a program \n: such as Matlab or Maple is run.  It has been tried under dr-dos\n: 6.0, msdos 5.0, and 4dos 4.01.  There is nothing, nada, in memory.\n: Nothing appears on a virus check.\n\n: Anybody?\n\n: -- \n: spectre@jupiter.nmt.edu                       spectre@cyborg1.nmt.edu\n: \"This world?  And everything in it?  *Illusions*, Richard!  Every bit\n: of it *illusions!*  *Do you understand that?*\"      -- Donald Shimoda\n\n\nI used to get this problem with AutoCad when using the NOEMS switch with \nEMM386.EXE in DOS 5.0.  If you allocate some ram to EMM386 the problem \nshould go away.\n\nTMC.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9223, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Ravi Konchigeri <mongoose@leland.stanford.edu>\nSubject: Video cable options\nX-Xxmessage-Id: <A7F4A7E9FF0200ED@kimball-pc-316.stanford.edu>\nX-Xxdate: Fri, 16 Apr 93 02:14:01 GMT\nOrganization: Stanford University\nX-Useragent: Nuntius v1.1.1d17\nLines: 11\n\n\tThere was a discussion a couple of weeks ago about using different\ncables to \nachieve different resolutions on the Quadra and Centris series.  A\ncompany that sold the cables was mentioned.  Can someone please e-mail me\nthe companies name, address, etc, and any other info that may be relevant?\n\n\n\t\"Just like everything else in life, the right lane ends in half a mile.\"\n\nRavi Konchigeri.\nmongoose@leland.stanford.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9224, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: 24-bit Static color: will clients like it?\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 37\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nIn article <1993Apr26.123918.1@vxcrna.cern.ch>, roeber@vxcrna.cern.ch (Frederick Roeber) writes:\n|> \n|> I'm writing an X server for some video-generation equipment.  The\n|> hardware is \"truecolor\" in YUV space; in X terms it has a 24-bit\n|> static color visual.  I would really like to have the server just\n|> present this static visual, but I'm not sure if this will be \n|> acceptable to \"most\" X clients.  The three problems I see are:\n|> \n|>   1) The colormap, though huge, is static.\n|>   2) All pixels would be 3 bytes wide.\n|>   3) Because the hardware actually lives in YUV space, the\n|>      translation RGB->YUV will introduce some rounding error.\n|> \n|> Being more of a server guy than a client guy, I ask: will these\n|> limitations thwart many X clients?  Or will most of the X stuff\n|> floating around blithely accept what they're given?  I could write\n|> the server to also present a pseudocolor visual of, e.g., 8 bits, \n|> but I'd rather avoid this if not necessary.\n|> \n\nEven 24Bit TrueColor machines are in most cases running an emulated\n8 bit PseudoColor visual, only to get standard x clients, motif apps and\nthelike to run. I strongly suppose you to emulate at least:\n\n> 24 Bit TrueColor. Should be no problem, only some translation. Rounding\n  should not make big misfits\n> 8 bit PseudoColor. More of a problem, you have to emulate a colormap,\n  pixel indices, conversion stuff. Furthermore, you should run your default\n  screen on this visual.\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9225, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: BMW battery\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 31\n\nKeith Hanlan, on the Wed, 14 Apr 1993 19:20:14 GMT wibbled:\n: In article <1993Apr14.181352.6246@ra.msstate.edu> vech@Ra.MsState.Edu (Craig A. Vechorik) writes:\n: >If I remember correctly, the reason that BMW's come with those expensive,\n: >and relatively worthless, short lived Varda batteries, is 'cause BMW owns\n: >a controling interest in that battery Manufacturer.                 \n\n: What's wrong with the BMW battery? I've never had problems and I know\n: numerous people that are still using the original battery in there\n: 8-10 year old beemers.\n\n\nKay, my '86 K100RS still has her original battery in.  She's OK\n--\n\nNick (the Sufficiently Well Charged Biker)   DoD 1069   Concise Oxford\n\nM'Lud.\n\n  ___\t___   ___   ___\n {\"_\"} {\"_\"} {\"_\"} {\"_\"}\t  Nick Pettefar, Contractor@Large.\n  ' `\t` '   ' `   ` '\t\t  Currently incarcerated at BNR,\n  ___\t___   ___   ___\t\t  Maidenhead, The United Kingdom.\n |\"_\"| |\"_\"| |\"_\"| |\"_\"|\t  npet@bnr.ca  '86 BMW K100RS \"Kay\"\n  ` '\t' `   ` '   ' `\t\t  Pres. PBWASOH(UK),  BS 0002\n\t    .\n   _ _\t\t_  __ .\n  / ~ ~~\\   |  / ~~  \\\n |_______|    [_______|\n\t   _:_\n\t  |___|\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9226, "properties": {"category": "talk.politics.misc", "text": "From: rick@howtek.MV.COM (Rick Roy)\nSubject: Re: So Why Does Clayton Cramer Fixate on Molesting Children\nOrganization: Howtek, Inc.\nReply-To: rick@howtek.MV.COM (Rick Roy)\nX-Mailer: uAccess - Macintosh Release: 1.6v2\nLines: 76\n\n\nIn article <1993Apr04.071624.14068@armory.com> (talk.politics.misc,alt.sex,soc.men), rstevew@armory.com (Richard Steven Walz) writes:\n] In article <93093.073457RIPBC@CUNYVM.BITNET> RIPBC@CUNYVM.BITNET writes:\n] >     I think the dialogue would go better if (at least some) gays\n] >showed awareness of a practical issue.  For example. men and women use\n] >different toilets.  Hence men who are likely to abuse girls have that\n] >avenue closed to them.  There are many other situations where it is easy\n] >to prevent sexual abuse BETWEEN the two sexes through such measures and\n] >social conventions.  It is harder to prevent it with gays but if those\n] >gays who do not abuse children (nor want to) became aware that this is\n] >a practical problem that we can solve with good will on both sides, then\n] >we can have protection for parents and children at the same time as\n] >protection for gays in those ways that are of importance to their\n] >pursuit of happiness in their own way.\n] >\n] >Just a thought\n] >\n] >Rohit Parikh\n] -------------------\n] Sorry, Rohit, but you are responding to someone well-recognized as a\n] flaming nut, i.e., Clayton Cramer. He must have been abused by a man and is\n] living his life in an attempt to vilify all men who like sex with other men\n] something slightly similar to the way his assailant liked it with him. He\n] will alter or misrepresent anything he finds to try to prove that there are\n] homosexuals who wish to rape little boys like he was coming out of the\n] woodwork. There is no hope for him. In all probability he is secretly gay,\n] which compounds his neurosis in his own mind, by thinking that someone else\n] made him that way. I don't personally see how someone like him could walk\n] and chew gum at the same time, as mentally crippled and dominated as he is\n] by his fantasies.\n] \n] He would have you believe that the figures on the percentage of people who\n] like to do it with the same sex sometime or all the time is way smaller\n] than it is, but then he will virtually assert that everyone's queer and\n] they're trying to get him. He actually believes, despite all evidence that\n] homosexuals do some huge disproportionate amount of child sexual abuse,\n] even though he insists that there may be as few as 1% of them in the male\n] population! If there were that few of them in the population, San Francisco\n] would currently be empty, because a significant portion of them have sought\n] a tolerant atmosphere in that city, and the numbers simply do not work when\n] you add up their home town origins. There is nothing to be gained by\n] communicating with Clayton Cramer, he is unable to listen to anyone.\n] -RSW\n] \n] \n] --\n] * Richard STEVEn Walz   rstevew@deeptht.armory.com   (408) 429-1200  *\n] * 515 Maple Street #1   * Without safe and free abortion women are   *\n] * Santa Cruz, CA 95060    organ-surrogates to unwanted parasites.*   *\n] * Real Men would never accept organ-slavery and will protect Women.  *\n\nSorry, but I don't see how the response applies to what was posted.\n\nUnless I am badly mistaken, Rohit is suggesting that protecting boys\nfrom men is different than protecting girls from men. There are situations\nin which boys and girls are apart from members of the *opposite* sex\n(due to social convention or whatever) and thus are safe (in at least\nsome sense). These same situations don't (necessarily) protect the\nchildren from abuse by members of the *same* sex.\n\nIf we can understand that, it's not such a tremendous leap to suggest\nthat if we all think about it hard, *someone* may come up with a\npractical solution (or even a partial solution) to some of the situations\nin which children are made vulnerable to homosexuals who wish to abuse\nthem. By working together \"with good will on both sides\", we may be\nable to start solving problems without restricting anyone's freedoms.\n\nMr. Walz on the other hand is using Rohit's post as an excuse for\npersonal attacks on Mr. Cramer. While Mr. Walz hasn't (by a *long*\nstretch) been the only one to flame Mr. Cramer, it is no less childish\nand it only serves to weaken any other arguments he may make in the\nfuture.\n\n-------------------------------------------------------------------\nRick Roy       Usenet: rick@howtek.MV.com       America Online: QED\nDisclaimer: My employer's views are orthogonal to these.\nThe early bird got worms.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9227, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: text of White House announcement and Q&As on clipper chip \n\tencryption\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 12\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\nIn article <115713@bu.edu>, uni@acs.bu.edu (Shaen Bernhardt) writes:\n> More than shocking.  What this says to me is no less than that \n> government is very interested in monitoring the public.  This does more \n> than scare me, it mortifies me. \n\nIf this is any surprise to you, *I'm* shocked.\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9228, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Davidians and compassion\nOrganization: Cookamunga Tourist Bureau\nLines: 24\n\nIn article <C5sLAs.B68@blaze.cs.jhu.edu>, arromdee@jyusenkyou.cs.jhu.edu\n(Ken Arromdee) wrote:\n> \n> In article <sandvik-190493200420@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n> >So we have this highly Christian religious order that put fire\n> >on their house, killing most of the people inside.\n> \n> We have no way to know that the cultists burned the house; it could have been\n> the BATF and FBI.  We only have the government's word for it, after all, and\n> people who started it by a no-knock search with concussion grenades are hardly\n> disinterested observers.\n\nThere's another point to be made. Those who have been inside burning\nhouses know that if they want to stay alive, it's better to run out\nfrom the building. We had one case where an FBI agent *had to \ndrag out a women* from the burning house, she run back in when\nshe saw the forces arriving. It is a good indication of the fanatical\nmind that the followers had -- including having they children burned\ninstead of saving these innocent victims of the instance.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9229, "properties": {"category": "rec.sport.baseball", "text": "From: cs902060@ariel.yorku.ca (GEOFFREY E DIAS)\nSubject: Attention anyone in Syracuse NY or Richmond VA\nOrganization: York University, Toronto, Canada\nLines: 13\n\n\n\tThere are two conflicting reports about a pitcher that is\neither in the Jays' farm system or the Braves'. His name is Bill Taylor.\nHe was picked up by the Jays, but had to be offered back to the Braves\nbefore they were able to send him to the Syracuse Chiefs.\n\n\tOne report says that the Braves took him back and assigned him\nto Richmond. The other says that he is on the Chiefs' roster. Which one is\nright?\n\n\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9230, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Nazi Eugenic Theories Circulated by\nOrganization: The Department of Redundancy Department\nLines: 68\n\nIn article <1483500351@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n\n>PS: My proposal has nothing to do with Nazi eugenics. It has to do with\n>the search for peace which would enable justice. I don't consider that\n>justice is done, when non-Jews who fled or were expelled in 1948/1967\n>are not permitted to return to their homeland. \n\nHow about Jews who were expelled from their homelands in Iraq, Syria,\nJordan, Algeria, etc.?  Don't they deserve justice, too?\n\n>This can at best be called\n>pragmatism, a nice word for legitimizing the rule of the strong. It can\n>never be called justice. \n\nWhy is your criticism ALWAYS directed against Israel, but never\nagainst the Arab states, even when they are so much more guilty of the\naccusations you make?  Is it because you now call yourself a\nPalestinean? \n\n>And peace without justice will never be peace.\n\nThis is why the \"land-for-peace\" formula is so foolish.  Land-for-land\nor peace-for-peace seems much more just, except that it would cost the\nArabs something and so is not under consideration.  \n\nLet's not forget that about half of Israel's population are refugees\nfrom Arab countries.  Somehow, THEIR land now being occupied by Arab\nstates and THEIR homes now being lived-in by Arab people are not\nincluded in any negotiations.  Is this your prescription for peace? \n\n>It is my conviction that the situation in which a state, through the\n>law, attempts to discourage mixed marriages (as Israel does), is not\n>normal. Such a state resembles more Nazi Germany and South Africa than\n>Western democracies, such as the United States, in which Jews are free to\n>marry whom they wish and do so in the thousands. \n\nAgain, you've somehow managed to overlook the fact that the Arab\nstates are much more restrictive on these points.  In fact, the\nofficially Judenrein policies of almost all of the Arab states makes\nthem resemble Nazi Germany chillingly closely.\n\n>American Jews enjoy this fact and would not love to live in a state termed\n>Christian State and to have their Green cards stamped with a mark JEW.\n\nThere are many states in which Christians can live happily, many which\nhave official religions and Christian majorities and Christian-based\nlaws.  There are some 2 dozen Arab and Islamic states.  There is only\n1 (one) Jewish state.  Do you have a problem with this?  Is this one\nJewish state too many?  There are others who might agree with you, you\nknow. \n\n>I would ask those who are genuinely interested in an exchange of views\n>and personal experiencces to refrain from emotional, infantile\n>outbursts which might leed readers to infer that Jews who respect\n>Judaism are uncivilized. Such behaviour is not good for Judaism.\n\nHave you just arrived on tpm recently???  Again, the supporters of the\nArab and Islamic camps are frequently and massively guilty of\n\"emotional, infantile outbursts\" which have weakened their positions\ndramatically.  Somehow, your criticisms are very one-sided and\nsimple-minded. \n\nP.S. How's the Fund coming along?\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9231, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rda771v@monu6.cc.monash.edu.au (A.B. Wuysang)\nSubject: Re: Hercules Graphite?\nOrganization: Monash University, Melb., Australia.\nLines: 22\n\nIn article <C5JBKF.9B8@usenet.ucs.indiana.edu> ntaib@silver.ucs.indiana.edu (Iskandar Taib) writes:\n>In article <1993Apr06.185638.12139@metrics.com> tomh@metrics.com (Tom Haapanen) writes:\n>\n>>Has anyone used a Hercules Graphite adapter?  It looks good on paper, and\n>>Steve Gibson gave it a very good review in Infoworld.  I'd love to get a\n>>real-world impression, though -- how is the speed?  Drivers?  Support?\n>\n>The PC World reviewers found out that the Herc people had hard-coded\n>Winbench text into the driver. Clever, no? In any case, the Winbench\n>results are pretty much inflated.\n\nBut the impressive performance of the Graphite was\nnot its Winmark, it was its Wintach result (esp. the paint\nperformance). Judging from the Wintach tests, I can hardly\nimagine that there is a cheat driver for it.\n\n+---------------------------------------------------+\n| Agus Budy Wuysang                                 |\n| Digitech Student                                  |\n| Monash University (Clayton)                       |\n| Melbourne, Australia                              |\n+---------------------------------------------------+\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9232, "properties": {"category": "misc.forsale", "text": "Subject: VHS movie for sale\nFrom: koutd@hirama.hiram.edu (DOUGLAS KOU)\nOrganization: Hiram College\nNntp-Posting-Host: hirama.hiram.edu\nLines: 13\n\nVHS movie for sale.\n\nDance with Wovies\t($12.00)\n\nThe tape is new and just open, buyer pay shipping cost.\nIf you are interested, please send your offer to\nkoutd@hirama.hiram.edu\n\nthanks,\n\nDouglas Kou\nHiram College\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9233, "properties": {"category": "sci.crypt", "text": "Subject: Re: Clipper considered harmful\nFrom: yuan1@scws7.harvard.edu (Nina Yuan)\nDistribution: inet\nNntp-Posting-Host: scws7.harvard.edu\nLines: 37\n\nshirriff@sprite.berkeley.edu (Ken Shirriff) writes:\n\n>It seems likely to me that that a large subset of encrypted communications\n>would be archived to tape so they could be read if sometime in the future\n>probable cause arises and a warrant is obtained.  I can even imagine this\n>being found legal and constitutional, since nothing is actually listened to\n>until a valid warrant is issued and the keys are obtained.\n\n>Imagine archiving all pay-phone conversations, so if someone turns out\n>to be a drug dealer, you can listen to all their past drug deals.  And\n>archive calls to/from suspected Mafia members, potential terrorists,\n>radicals, etc.  Imagine the convenience for the police of being able to\n>get a warrant now and listening to all the calls the World Trade Center\n>bombers made in the past year.\n\nImagine if this were available during the 1992 elections; instead of\nclumsily searching through the Clinton passport file, they could have \njust done a \"voice-grep\" (as someone stated earlier) on his telephone\nconversations for the last 10 years.\n\nI'm not a lawyer and I don't even play one on TV, but intuitively there's\nsomething wrong with having one's words archived for possible future\nuse against you.  This possibility frightens me more than any of the\ntalk about the Clipper Chip, right to cryptography, etc.\n\n>Since archiving would be such a powerful tool and so easy to do, why\n>wouldn't it happen?\n\nI'm afraid it just might.\n\n-nhy\n\n-- \n----------------------------------------------------------------------------\nNina H. Yuan                               \"It's a miracle that curiosity\nHarvard College                             survives formal education.\"\nyuan1@husc.harvard.edu                                  - Albert Einstein\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9234, "properties": {"category": "comp.graphics", "text": "From: zyeh@caspian.usc.edu (zhenghao yeh)\nSubject: Delaunay Triangulation\nOrganization: University of Southern California, Los Angeles, CA\nLines: 9\nDistribution: world\nNNTP-Posting-Host: caspian.usc.edu\n\n\nDoes anybody know what Delaunay Triangulation is?\nIs there any reference to it? \nIs it useful for creating 3-D objects? If yes, what's the advantage?\n\nThanks in advance.\n\nYeh\nUSC\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.436+0000", "event": "documents", "entityId": 9235, "properties": {"category": "rec.autos", "text": "From: eliot@lanmola.engr.washington.edu (eliot)\nSubject: Re: Manual Shift Bigots\nOrganization: clearer than blir\nLines: 20\nNNTP-Posting-Host: lanmola.engr.washington.edu\n\nIn article <C5o4nH.3su@news.cso.uiuc.edu> mchaffee@dcl-nxt07 (Michael T Chaffee) writes:\n>W/r/t performance, converter lockup is purely irrelevant.  The lockup only\n>occurs at light throttle settings and serves only to improve MPG.  Mind you,\n>a converter clutch does a lovely job of improving MPG, but the additional\n>mechanical advantage of the converter gives you more acceleration (vs. locked\n>converter clutch) than its inherent losses take away.\n\nthe transmission in my car contradicts both your assertions..  i get much\nstronger acceleration if i let the convertor lockup.. which i can induce\nby briefly lifting off,  then quickly (but not too quickly to trigger\na kickdown) applying throttle.  above 3000 rpms, the convertor will never\nunlock;  it would kickdown first.\n\nwho says there's no skill involved in driving an automatic?  i think\nof it as the throttle and shifter combined into a single pedal.  with\nmy car i can pretty much influence its shifting patterns with my\nright foot, while having both hands to steer.\n\n\neliot\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9236, "properties": {"category": "sci.med", "text": "From: uabdpo.dpo.uab.edu!gila005 (Stephen Holland)\nSubject: Re: diet for Crohn's (IBD)\nOrganization: Gastroenterology - Univ. of Alabama\nDistribution: usa\nLines: 48\n\nIn article <1993Apr22.202051.1@vms.ocom.okstate.edu>,\nbanschbach@vms.ocom.okstate.edu wrote:\n> \n> In article <1r6g8fINNe88@ceti.cs.unc.edu>, jge@cs.unc.edu (John Eyles) writes:\n> > \n> > A friend has what is apparently a fairly minor case of Crohn's\n> > disease.\n> > \n> > But she can't seem to eat certain foods, such as fresh vegetables,\n> > without discomfort, and of course she wants to avoid a recurrence.\n> > \n> > Her question is: are there any nutritionists who specialize in the\n> > problems of people with Crohn's disease ?\n> > \n> > (I saw the suggestion of lipoxygnase inhibitors like tea and turmeric).\n> > \n> > Thanks in advance,\n> > John Eyles\n> \n> All your friend really has to do is find a Registered Dietician(RD).  While \n> most work in hospitals and clinics, many major cities will have RD's who \n> are in \"private practice\" so to speak.  Many physicans will refer their \n> patients with Crohn's disease to RD's for dietary help.  If you can get \n> your friend's physician to make a referral, medical insurance should pay for \n> the RD's services just like the services of a physical therapist.  The \n> better medical insurance plans will cover this but even if your friend's \n> plan doesn't, it would be well worth the cost to get on a good diet to \n> control the intestinal discomfort and help the intestinal lining heal.\n> Crohn's disease is an inflammatory disease of the intestinal lining and \n> lipoxygenase inhibitors may help by decreasing leukotriene formation but \n> I'm not aware of tea or turmeric containing lipoxygenase inhibitors.  For \n> bad inflammation, steroids are used but for a mild case, the side effects \n> are not worth the small benefit gained by steroid use.  Upjohn is developing \n> a new lipoxygenase inhibitor that should greatly help deal with \n> inflammatory diseases but it's not available yet.\n> \n> Marty B. \n\nBe sure a dietician is up to date on Crohn's and Ulcerative Colitis.  \nPreviously, low residue diets were recommended, but this advice has\nnow changed.  Also, there will be differences in advice in patients with\nand without obstructuon remaining, so input by the physician will be \nimportant.  I find the dietician very important in my practice, and \nI send most of my patients to a dietician in the course of seeing\nthem, since dieticians know so much better how to get diet histories\nand evaluate the contents of a diet than I do.\n\nSteve Holland\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9237, "properties": {"category": "comp.windows.x", "text": "From: nicholas@ibmpcug.co.uk (Nicholas Young)\nSubject: Graphics editor required\nX-Disclaimer: The views expressed in this article are those of the author\n\talone and may not represent the views of the IBM PC User Group.\nOrganization: The IBM PC User Group, UK.\nLines: 21\n\nSee subject. An opportunity for sales-people (-persons? -entities?).\n\nI am looking for a commercial/PD graphics editor with fairly limited\nabilities that runs under X and preferably uses Motif widgets. It must\nrun on HP-UX version 9, either with or without the PEX extension. The\nsort of things I want are simple drawing, resizing and moving of objects\nsuch as lines, rectangles and text. Bounding rectangle operations are\nsufficient for object selection. Ideally it should also allow the\ncreation and placement of more complex objects such as widgets (e.g.\ntext entry fields or labels), but this is not mandatory.\n\nDoes anyone have such an animal? If you do, please mail me with details\nincluding price (especially run-time licensing since it must be\nincluded in a product). Alternatively, send glossies to me at Logica,\n68 Newman Street, London W1, including technical info please. For PD\nstuff, I have some effort that could be put into porting.\n\nThanks for any help,\nNicholas Young.\n-- \nNicholas Young (+44 71 637 9111)\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9238, "properties": {"category": "misc.forsale", "text": "From: yuanchie@aludra.usc.edu (Roger Y. Hsu)\nSubject: 14.4K Fax Modem for Sale\nOrganization: University of Southern California, Los Angeles, CA\nLines: 28\nNNTP-Posting-Host: aludra.usc.edu\n\nA slightly used (less than two months old) SupraFaxModem is for sale.\nIt comes with latest ROM 1.2H, communication software, fax software, \noriginal manuals, and the original registration card.\n\nHere are some specs:\n\n  Model #     : SUPFAXV32BIS\n  Description : SupraFaxModem V.32bis\n  Type        : Internal\n  Data Speed  : 14,400/12,000/9600/7200/4800/2400/1200/300 bps data\n\t\t(upto 57000bps with V.42 data compression)\n  Protocols   : Bell 103/212A,CCIT V.21/V.22/V.22bis/V.32/V.32bis/V.42/\n\t      : V.42bis, MNP 2-5, & MNP 10\n  Fax         : 14,400/12,000/9600/7200/4800/2400 bps send/receive fax\n\t      : Class 1 & 2 commnads\n\t      : Group III compatible\n  Transmission: V.17,V.29,V.27ter\n  other       :\n\t\tnon-volatile memory; autoanswer/autodial (tone or pulse); \n\t\textended AT commands and result codes; includes diagnostics, \n\t\tphone jacks, subscriptions to free online services.\n\t\t5 year warranty.\n\n  Asking : $180 (neg.) + S/H \n\nIf interested, please e-mail.\n\nThanks!\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9239, "properties": {"category": "talk.politics.misc", "text": "From: ndallen@r-node.hub.org (Nigel Allen)\nSubject: Reserve officers say demographics ignored in nominations to close naval, marine reserve centers\nOrganization: R-node Public Access Unix - 1 416 249 5366\nLines: 53\n\nHere is a press release from the Reserve Officers Association.\n\n Reserve Officers Say Demographics Ignored in Nominations to\nClose Naval, Marine Reserve Centers\n To: National Desk, Defense Writer\n Contact: Herbert M. Hart of the Reserve Officers Association of\n          the United States, 202-479-2258\n\n   WASHINGTON, April 13 /U.S. Newswire/ -- The Reserve Officers\nAssociation of the United States has alerted the Defense Base\nRealignment and Closure Commission that the services failed to give\nsufficient weight to demographics in recommendations made to close\n56 Naval and Marine Corps Reserve centers.\n   In letters to the closure commission and to all 86 members of\nCongress with affected locations in their constituencies, including\nSen. Sam Nunn (D-Ga.), chairman of the Senate Armed Services\nCommittee, ROA charged that the developers of the Navy-Marine list\nignored demographics of the civilian population, particularly prior\nservice personnel.\n   ROA's executive director, Maj. Gen. Evan L. Hultman, AUS (Ret.),\nsuggested \"concern that the only plausible alternative is that they\nare intentionally attempting to foreclose the Naval Reserve\ncomponents from maintaining even today's relatively low level of\nparticipation in their parent service's Total Force of the future.\"\n   He asked the commission \"to remove from consideration all\nlocations without sufficient and convincing demographic data to\nwarrant approval of the requested action.\"\n   \"Only a few of the 56 Naval and Marine Corps Reserve\ninstallations on this list are large enough to have a significant\nimpact on the community, if closed,\" wrote Hultman.  \"The major\nissue is the cumulative impact of moving or closing such a large\npercentage of the existing locations.\"\n   Hultman reminded the commission, \"The fact that the vast\nmajority of the Reserve installations on this list do not come\nclose to meeting the minimal requirements for consideration in this\nprocess certainly supports the thesis\" that these actions are\nsimply an attempt to foreclose a substantial role for the Navy and\nMarine Corps Reserve.\n   ROA also noted \"that at the end of the 1960s, when the number of\nNaval Reservists was approximately the same as today, there were 480\nNaval Reserve facilities.  If the Navy recommendations are\napproved, there will be less than 200 Naval Reserve facilities.\"\n   Facilities on the list include seven Naval Air Stations ranging\nfrom South Weymouth, Mass., to Alameda, Calif., 28 Naval\nReserve Centers in Macon, Ga., and Parkersburg, W.Va., to\nMissoula and Great Falls. Mont.  Naval/Marine Corps Reserve\nCenters include four in San Francisco, Fort Wayne, Ind.,\nBillings, Mont., and Abilene, Texas.\n   A major Marine Reserve Center on the list is that at El\nToro, Calif., plus six others.\n -30-\n-- \nNigel Allen, Toronto, Ontario, Canada    ndallen@r-node.hub.org\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9240, "properties": {"category": "rec.sport.hockey", "text": "From: gp2011@andy.bgsu.edu (George Pavlic)\nSubject: Re: Aargh!  Great Hockey Coverage!! (Devils)\nOrganization: Bowling Green State University B.G., Oh.\nLines: 22\n\nIn article <1993Apr18.203823.28597@news.columbia.edu>,\ngld@cunixb.cc.columbia.edu (Gary L Dare) wrote:\n> \n> \n> Locked away, waiting for the tape-delay to start ...\n> \n> It's nice that the Devils are starting out their playoffs on network\n> television ... too bad that their playoff game has been preempted on\n> WABC-AM for an early-season Yankees baseball game!\n> \n> It's a 12-2 win by the Texas Rangers ... and they're delaying the\n> tape-delay by another half-hour for the ballgame \"highlights\"!!!\n> \nYou think that's bad?  I'm in Bowling Green, OH, and we get ABC from\nToledo.  Well, the cable co. decided to totally pre-empt the game (no tape\ndelay, no nothing) for a stupid telethon!  Hockey is very big around here,\ntoo.  I had to listen to \"my\" Penguins win on my car radio out in the\nparking lot.  I can just be thankful for a strong radio because being 230\nmiles from Pittsburgh, the reception usually isn't good at all.  I can't\nbelieve I picked it up during the middle of the day.\n\nGeorge\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9241, "properties": {"category": "rec.motorcycles", "text": "From: jrwaters@eos.ncsu.edu (JACK ROGERS WATERS)\nSubject: Re: Cultural Enquiries\nArticle-I.D.: ncsu.1993Apr5.220413.24002\nOrganization: North Carolina State University, Project Eos\nLines: 47\n\nIn article <C50uGG.9As@cmptrc.lonestar.org> irwin@cmptrc.lonestar.org (Irwin Arnstein) writes:\n>In article <1phuse$5u1@sixgun.East.Sun.COM> egreen@east.sun.com writes:\n>>In article 28712@aber.ac.uk, azw@aber.ac.uk (Andy Woodward) writes:\n>>>Two questions that fascinate me:-\n>>\n>>Check you local blue light special for a sale on lives...\n>>\n>>>1) Why are rednecks called rednecks?\n>>\n>>The origin of the slang is probably a reference to a sunburned neck,\n>>often obtained while performing honest work outdoors.  The neck is\n>>specified to distinguish these people, whose shirt-protected chest and\n>>back are pale, from the elitist wealthy, who, in their idiotic quest\n>>for darker skin pigmentation as a badge of leisure time, overdo it and\n>>get full-body sunburns.\n>>\n>\n>More like those who use their backs instead of their minds to make\n>their living who are usually ignorant and intolerant of anything outside\n>of their group or level of understanding.\n>-- \n>-------------------------------------------------------------------------\n>\"Tuba\" (Irwin)      \"I honk therefore I am\"       CompuTrac-Richardson,Tx\n>irwin@cmptrc.lonestar.org    DoD #0826            (R75/6)\n>-------------------------------------------------------------------------\n\nThat sounds like an awfully closed minded, intolerant attitude.\n\n1/2  :')     \n\nI'm not a redneck but . . . try a walk in their shoes first.  Stereotypes\nare usually of very limited value.  I've seen as many ignorant\nself-righteous \"open minded\" new age lovers of the great planet Earth\nas I have ignorant \"red necks\".  I don't see a correlation. I don't\nbelieve that the \"redneck\" culture, if you can call it that, is\nnecessarily inferior or superior to any other.  \n\nI gotta have a beer, I'm making too much sense.  Next thing you know,\nI'll be preaching tolerance . . .. and I'm a conservative.\n\nJack Waters II\nDoD#1919\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~ I don't fear the thief in the night.  Its the one that comes in the  ~\n~ afternoon, when I'm still asleep, that I worry about.                ~\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9242, "properties": {"category": "rec.sport.hockey", "text": "From: jbarrett@aludra.usc.edu (Jonathan Barrett)\nSubject: Re: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nArticle-I.D.: aludra.1pqgq3INN2vn\nOrganization: University of Southern California, Los Angeles, CA\nLines: 15\nNNTP-Posting-Host: aludra.usc.edu\n\nI can only comment on the Kings, but the most obvious candidate for pleasant\nsurprise is Alex Zhitnik. He came highly touted as a defensive defenseman, but\nhe's clearly much more than that. Great skater and hard shot (though wish he\nwere more accurate). In fact, he pretty much allowed the Kings to trade away\nthat huge defensive liability Paul Coffey. Kelly Hrudey is only the biggest\ndisappointment if you thought he was any good to begin with. But, at best, he's\nonly a mediocre goaltender. A better choice would be Tomas Sandstrom, though\nnot through any fault of his own, but because some thugs in Toronto decided \nto threaten his career in order to avoid conceding a goal. Other than that, the\naward goes to Robert Lang, an uninspiring Czech. Robitaille could easily be\nMVP, but I'd prefer to give it to Rob Blake who is quietly becoming one of the\nleague's premier defensemen, and if the Kings manage to hold onto him and the \nrest of our young defense, it could one day mean that we'll let in fewer\ngoals than Hartford. Honorable mentions to Majestic Marty and Warren Rychel.\nJon\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9243, "properties": {"category": "sci.med", "text": "From: menon@boulder.Colorado.EDU (Ravi or Deantha Menon)\nSubject: Re: eye dominance\nOrganization: University of Colorado, Boulder\nLines: 38\nNntp-Posting-Host: beagle.colorado.edu\n\nnyeda@cnsvax.uwec.edu (David Nye) writes:\n\n>[reply to rsilver@world.std.com (Richard Silver)]\n> \n>>Is there a right-eye dominance (eyedness?) as there is an overall\n>>right-handedness in the population? I mean do most people require less\n>>lens corrections for the one eye than the other? If so, what kinds of\n>>percentages can be attached to this?  Thanks.\n> \n>There is an \"eyedness\" analogous to handedness but it has nothing to do\n>with refractive error.  To see whether you are right or left eyed, roll\n>up a sheet of paper into a tube and hold it up to either eye like a\n>telescope.  The eye that you feel more comfortable putting it up to is\n>your dominant eye.  Refractive error is often different in the two eyes\n>but has no correlation with handedness.\n> \n>David Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\n>This is patently absurd; but whoever wishes to become a philosopher\n>must learn not to be frightened by absurdities. -- Bertrand Russell\n\n\nWhat do you mean \"more comfortable putting it up to.\"  That seems a bit\nhard to evaluate.  At least for me it is.  \n\nStare straight Point with both hands together and clasp so that only the\npointer fingers are pointing straight forward to a a spot on the wall about\neight feet away.  First stare at the spot with both eyes open.  Now\nclose your left eye.  Now open your left eye.  Now close your right eye.\nnow open your right eye.\n\nIf the image jumped more when you closed your right eye, you are right\neye dominant.\n\nIf the image jumped more when you closed your left eye, you are left eye\ndominant.\n\n\nDeantha\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9244, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dcoleman@utxvms.cc.utexas.edu (Daniel M. Coleman)\nSubject: Re: Gateway 2000 and ATI LB problem.\nLines: 37\nNntp-Posting-Host: gray.cc.utexas.edu\nOrganization: The University of Texas at Austin\nLines: 37\n\nIn article <jmgree01.734040660@starbase.spd.louisville.edu>, jmgree01@starbase.spd.louisville.edu (Jude M. Greer) writes:\n> I was wondering if anyone out there has had the same problem I am having with\n> my Gateway 2000 486-33DX VL-Bus system with ATI Graphics Ultra Pro LB.  \n> When I have my computer in any resolution other than 800x600, everything is\n> fine, but whenever I use it in 800x600 (Windows, AutoCAD, GIFs) the screen \n> gets about 1 1/2 inches shorter.  At the very top and very bottom of the screen\n> there is about a 3/4\" bar of black.  The screen isn't cut off, it just squeezes\n> everything into the smaller space and messes up the aspect ratio.  While I can\n> manually change the V-Size on the back, this is a pain in the ass, and it just\n> shouldn't happen anyway.  I've called Gateway numerous times and they haven't \n> been able to help me at all.  Two different times they sent me a new card, and\n> both times the new card didn't work at all in my computer.  They even tried\n> to bill me for the first card because they didn't get it back in a couple of\n> days, when they TOLD me over the phone that they would wait more than 2 weeks\n> before billing my card.  But their customer support is a different story...\n> So, if anyone has had this same problem, please let me know if you know what\n> to do.  Hell, let me know if you don't have a solution, just so I know I'm\n> not the only one with this problem.  Thanks in advance.\n> \n> Jude M. Greer\n> jmgree01@starbase.spd.louisville.edu\n> \n> P.S.  I already tried going into the MACH 32 install program and manually set-\n> ting up the card.  Doesn't work.  Whenever I try to increase the vertical size\n> of the 800x600 screen, it just starts to cut off the top and bottom.\n> \n\nMaybe its a monitor problem.  You mentioned that you swapped cards, but not\nmonitors.  Perhaps that could be it.\n\nDan\n\n-- \nDaniel Matthew Coleman\t\t   |   Internet: dcoleman@utxvms.cc.utexas.edu\n-----------------------------------+---------- : dcoleman@ccwf.cc.utexas.edu\nThe University of Texas at Austin  |\t DECnet: UTXVMS::DCOLEMAN\nElectrical/Computer Engineering\t   |\t BITNET: DCOLEMAN@UTXVMS [.BITNET]\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9245, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: Moonbase race\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 16\n\nIn article <1r46o9INN14j@mojo.eng.umd.edu> sysmgr@king.eng.umd.edu writes:\n\n>So how much would it cost as a private venture, assuming you could talk the\n>U.S. government into leasing you a couple of pads in Florida? \n\nWhy would you want to do that? The goal is to do it cheaper (remember,\nthis isn't government). Instead of leasing an expensive launch pad,\njust use a SSTO and launch from a much cheaper facility.\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------56 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9246, "properties": {"category": "talk.religion.misc", "text": "From: markp@elvis.wri.com (Mark Pundurs)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nNntp-Posting-Host: elvis.wri.com\nOrganization: Wolfram Research, Inc.\nLines: 27\n\nIn <930415.112243.8v6.rusnews.w165w@mantis.co.uk> mathew@mantis.co.uk (mathew) writes:\n\n>There's no objective physics; Einstein and Bohr have told us that.\n\nSpeaking as one who knows relativity and quantum mechanics, I say: \nBullshit.\n\n>There's no objective reality.  LSD should be sufficient to prove that.\n\nSpeaking as one who has taken LSD, I say: \nBullshit.\n\n>> One wonders just what people who ask such questions understand by the term \n>> \"objective\", if anything.\n\n>I consider it to be a useful fiction; an abstract ideal we can strive\n>towards.  Like an ideal gas or a light inextensible string, it doesn't\n>actually exist; but we can talk about things as if they were like it, and not\n>be too far wrong.\n\nHow could striving toward an ideal be in any way useful, if the ideal \nhad no objective existence?\n--\nMark Pundurs\n\nany resemblance between my opinions and those \nof Wolfram Research, Inc. is purely coincidental\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9247, "properties": {"category": "sci.crypt", "text": "From: mvanheyn@cs.indiana.edu (Marc VanHeyningen)\nSubject: RIPEM Frequently Noted Vulnerabilities\nArticle-I.D.: usenet.C4qoH8.CHE\nExpires: Thu, 20 May 1993 00:00:00 GMT\nOrganization: Computer Science, Indiana University\nLines: 163\nContent-Type: text/x-usenet-FAQ; version=1.0; title=\"RIPEM Attacks\"\nOriginator: mvanheyn@silver.ucs.indiana.edu\nSupersedes: <C3JvK9.Ey1@usenet.ucs.indiana.edu>\nNntp-Posting-Host: silver.ucs.indiana.edu\nMime-Version: 1.0\n\nArchive-name: ripem/attacks\nLast-update: 31 Mar 93 21:00:00 -0500\n\nSOME POSSIBLE ATTACKS ON RIPEM\n------------------------------\n\nThis is a living list of potential weaknesses to keep your eyes open\nfor when using RIPEM for secure electronic mail.  It does not go into\ngreat detail, and is almost certainly not exhaustive.  Obviously, many\nof the weaknesses are weaknesses of cryptographically secured mail in\ngeneral, and will pertain to secure mail programs other than RIPEM.\nIt is maintained by Marc VanHeyningen <mvanheyn@cs.indiana.edu>.  It\nis posted monthly to a variety of news groups; followups pertaining\nspecifically to RIPEM should go to alt.security.ripem.\n\nCRYPTANALYSIS ATTACKS\n---------------------\n\n- Breaking RSA would allow an attacker to find out your private key,\n  in which case he could read any mail encrypted to you and sign\n  messages with your private key.\n\n  RSA is generally believed to be resistant to all standard\n  cryptanalytic techniques.  Even a standard key (about 516 bits with\n  RIPEM) is long enough to render this impractical, barring a\n  huge investment in hardware or a breakthrough in factoring.\n\n- Breaking DES would allow an attacker to read any given message,\n  since the message itself is encrypted with DES.  It would not allow\n  an attacker to claim to be you.\n\n  DES has only 56 bits in its key, and thus could conceivably be\n  compromised by brute force with sufficient hardware, but few agencies\n  have such money to devote to simply read one message.  Since each\n  message has a different DES key, the work for each message would\n  remain high.\n\nKEY MANAGEMENT ATTACKS\n----------------------\n\n- Stealing your private key would allow the same benefits as breaking\n  RSA.  To safeguard it, it is encrypted with a DES key which is derived\n  from a passphrase you type in.  However, if an attacker can get a copy\n  of your private keyfile and your passphrase (by snooping network\n  packets, tapping lines, or whatever) he could break the whole scheme.\n\n  The main risk is that of transferring either the passphrase or the\n  private key file across an untrusted link.  So don't do that.  Run \n  RIPEM on a trusted machine, preferably one sitting right in front of\n  you.  Ideally, your own machine in your own home (or maybe office)\n  which nobody else has physical access to.\n\n- Fooling you into accepting a bogus public key for someone else could \n  allow an opponent to deceive you into sending secret messages to him\n  rather than to the real recipient.  If the enemy can fool your\n  intended recipient as well, he could re-encrypt the messages with\n  the other bogus public key and pass them along.\n\n  It is important to get the proper public keys of other people.\n  The most common mechanism for this is finger; assuming the opponent\n  has not compromised routers or daemons or such, finger can be \n  given a fair amount of trust.  The strongest method of key\n  authentication is to exchange keys in person; however, this is\n  not always practical.  Having other people \"vouch for you\" by\n  signing a statement containing your key is possible, although \n  RIPEM doesn't have features for doing this as automatically as\n  PGP.  RIPEM does generate and check MD5 fingerprints of public keys\n  in the key files; they may be exchanged via a separate channel for\n  authentication.\n\nPLAYBACK ATTACKS\n----------------\n\n- Even if an opponent cannot break the cryptography, an opponent could\n  still cause difficulties.  For example, suppose you send a message\n  with MIC-ONLY (a PEM mode which does not provide disclosure protection)\n  to Alice which says \"OK, let's do that.\" Your opponent intercepts\n  it, and now resends it to Bob, who now has a message which is\n  authenticated as from you telling him to do that.  Of course, he may\n  interpret it in an entirely different context.  Or your opponent\n  could transmit the same message to the same recipient much later,\n  figuring it would be seen differently at a later time.  Or the\n  opponent could change the Originator-Name: to himself, register \n  your public key as his, and send a message hoping the recipient\n  will send him return mail indicating (perhaps even quoting!) the\n  unknown message.\n\n  To defeat playback attacks, the plaintext of each message should \n  include some indication of the sender and recipient, and a unique\n  identifier (typically the date).  A good front-end script for RIPEM\n  should do this automatically (IMHO).  As a recipient, you should be\n  sure that the Originator-Name: header and the sender indicated within\n  the plaintext are the same, that you really are a recipient, and that\n  the message is not an old one.  Some this also can and should be\n  automated.  The author of this FAQ has made a modest attempt at\n  automating the process of generating and checking encapsulated\n  headers; the programs are included in the standard distribution in\n  the utils directory.\n\nLOCAL ATTACKS\n-------------\n\n- Clearly, the security of RIPEM cannot be greater than the security of\n  the machine where the encryption is performed.  For example, under\n  UNIX, a super-user could manage to get at your encrypted mail,\n  although it would take some planning and effort to do something like\n  replace the RIPEM executable with a Trojan horse or to get a copy of\n  the plaintext, depending how it's stored.\n\n  In addition, the link between you and the machine running RIPEM is\n  an extension of that.  If you decrypt with RIPEM on a remote machine\n  which you are connected to via network (or, worse yet, modem), an\n  eavesdropper could see the plaintext (and probably also your\n  passphrase.)\n\n  RIPEM should only be executed on systems you trust, obviously.  In\n  the extreme case, RIPEM should only be used on your own machine,\n  which you have total control over and which nobody else has access\n  to, which has only carefully examined software known to be free of\n  viruses, and so on.  However, there's a very real trade-off between\n  convenience and security here.\n\n  A more moderately cautious user might use RIPEM on a UNIX workstation\n  where other people have access (even root access), but increase\n  security by keeping private keys and the (statically linked, of\n  course) executable on a floppy disk.\n\n  Some people will keep RIPEM on a multi-user system, but when dialing\n  in over an insecure line, they will download the message to their\n  own system and perform the RIPEM decryption there.  However, the\n  security provided by such a mechanism is somewhat illusory; since\n  you presumably type your cleartext password to log in, you've just\n  given away the store, since the attacker can now log in as you and\n  install traps in your account to steal your private key next time\n  you use it from a less insecure line.  This will likely remain the\n  situation as long as most systems use the rather quaint mechanism of\n  cleartext password authentication.\n\n  I find it nice to put a brief statement of how carefully I manage my\n  security arrangement in my .plan next to my public key, so that\n  potential correspondents can be aware what level of precautions are\n  in place.  Some people use two keys, a short one which is not\n  carefully managed for ordinary use and a longer one which is treated\n  with greater care for critical correspondence.\n\nUNTRUSTED PARTNER ATTACKS\n-------------------------\n\n- RIPEM's encryption will ensure that only a person with the private key\n  corresponding to the public key used to encrypt the data may read the\n  traffic.  However, once someone with that key gets the message, she\n  may always make whatever kind of transformations she wishes.  There \n  exist no cryptographic barriers to a recipient, say, taking an\n  ENCRYPTED message and converting it to a MIC-ONLY message, signed by\n  you and readable by anyone, although RIPEM does not provide this\n  functionality.  Indeed, the latest PEM draft I have seen specifically\n  states that such transformations should be possible to allow\n  forwarding functions to work.\n \n  Including the recipients in the plaintext, as mentioned above, will\n  make it possible for recipients of a redistributed message to be aware\n  of its original nature.  Naturally, the security of the cryptography\n  can never be greater than the security of the people using it.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9248, "properties": {"category": "talk.politics.misc", "text": "From: starowl@bolero.rahul.net (Michael D. Adams)\nSubject: Re: California Insurance Commissioner Endorses Federal Legislation to Protect Consumers from Scam Insurance Companies\nArticle-I.D.: rahul.C51D0n.3Fw\nReply-To: starowl@a2i.rahul.net\nOrganization: D Service Actuarial Consulting\nLines: 12\nNntp-Posting-Host: bolero\nX-Header: IGNORE ignore Ignore IgNoRe this line\n\nrick@sjsumcs.sjsu.edu (Richard Warner) writes:\n\n>Very simple.  An 'Insurance Commissioner' is a bureaucrat - a regulator.\n>It is his/her duties to make rules to enforce laws.  \n\n...and to make life difficult for us actuaries..... :-/\n\n-- \nMichael D. Adams\t(starowl@a2i.rahul.net)\t  Champaign, IL / southeast AL\n\n   \"THRUSH believes in the two-party system: The masters and the slaves.\"\n\t\t-- Napoleon Solo (from The Man from U.N.C.L.E)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9249, "properties": {"category": "talk.religion.misc", "text": "From: emarsh@hernes-sun.Eng.Sun.COM (Eric Marsh)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Sun\nLines: 63\nNNTP-Posting-Host: hernes-sun\n\nIn article <1qjahh$mrs@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n>In article <pww-140493214334@spac-at1-59.rice.edu> pww@spacsun.rice.edu (Peter Walker) writes:\n>#In article <1qie61$fkt@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank\n>#O'Dwyer) wrote:\n>#> Objective morality is morality built from objective values.\n\n>#But where do those objective values come from? How can we measure them?\n>#What mediated thair interaction with the real world, a moralon? Or a scalar\n>#valuino field?\n\n>Science (\"the real world\") has its basis in values, not the other way round, \n>as you would wish it.  If there is no such thing as objective value, then \n>science can not objectively be said to be more useful than a kick in the head.\n>Simple theories with accurate predictions could not objectively be said\n>to be more useful than a set of tarot cards.  You like those conclusions?\n>I don't.\n\nI think that you are changing the meaning of \"values\" here. Perhaps\nit is time to backtrack and take a look at the word.\n\nvalue n. 1. A fair equivalent or return for something, such as goods\nor service. 2. Monetary or material worth. 3. Worth as measured in \nusefulness or importance; merit. 4. A principle, standard, or quality\nconsidered inherently worthwhile or desirable. 5. Precise meaning, as\nof a word. 6. An assigned or calculated numerical quantity. 7. Mus. \nThe relative duratation of a tone or rest. 8. The relative darkness or\nlightness of a color. 9. The distinctive quality of a speech or speech\nsound. \n\nIn context of a moral system, definition four seems to fit best. In terms\nof scientific usage, definitions six or eight might apply. Note that\nthese definitions do not mean the same thing.\n\nIn my mind, to say that science has its basis in values is a bit of a\nreach. Science has its basis in observable fact. Even the usages of the\nword \"value\" above do not denote observable fact, but rather a standard\nof measurement. I would conclude that science does not have its\nbasis in values, and so your statement above fails. In fact, if one\nconcludes that a scientific set of measurements (values) are based on\nsystems derived from observation, then it must follow that in a\nscientific context, there is no such thing as there is no such thing as\n\"objective values.\"\n\nBack to the present. This has nothing to do with a moral system anyhow.\nJust because the word \"values\" is used in both contexts does not mean\nthat there is a relationship between the two contexts.\n\nIf one is to argue for objective values (in a moral sense) then one must\nfirst start by demonstrating that morality itself is objective. Considering\nthe meaning of the word \"objective\" I doubt that this will ever happen.\n\nSo, back to the original question:\n\nAnd objective morality is.....?\n\nIf you can provide an objective foundation for \"morality\" then that will\nbe a good beginning.\n\n>-- \n>Frank O'Dwyer                                  'I'm not hatching That'\n>odwyer@sse.ie                                  from \"Hens\",  by Evelyn Conlon\n\neric\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9250, "properties": {"category": "comp.graphics", "text": "From: doug@hparc0.aus.hp.com (Doug Parsons)\nSubject: 3D2 files - what are they?\nOrganization: HP Australasian Response Centre (Melbourne)\nX-Newsreader: TIN [version 1.1 PL8.5]\nLines: 12\n\nI was chaining around in the anonymous ftp world looking for 3D Studio\nmeshes and other interesting graphical stuff for the program, and found\na few files with the extension 3D2.  My 3DS v2.01 doesn't know this type\nof file, so what are they?\n\nAnd of course, the perennial... Where are some meshes, fli files, etc.\nout there?   I would have thought that someone would have collected a few\nand put them somewhere, but alas I am without this knowledge.\n\nmucho appreciato\n\ndouginoz.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9251, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: Fighting the Clipper Initiative\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 7\nNNTP-Posting-Host: access.digex.net\n\n > er, excuse me but since the escrow agencies aren't yet chosen, how can you\n >say they have a \"history of untrustworthy behavoir[sic]\"? \n\n  I refer to the Federal law enforcement apparatus (which is ultimately in\ncharge of this) generally.\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9252, "properties": {"category": "talk.religion.misc", "text": "From: royc@rbdc.wsnc.org (Roy Crabtree)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Red Barn Data Center\nLines: 49\n\nIn article <C5tByD.6zD@dscomsa.desy.de> hallam@zeus02.desy.de writes:\n...\n>Hang on you missed the point entirely, they are protesting the lack of\n>water because it DEPRIVED Koresh of his CONSTITUTIONAL RIGHT to prove\n>his DIVINITY by WALKING on it.\n\n\tYou can tell, folks, when the man has run out of reason:\n\tattack the man's beliefs (in legal terminology, argument\n\tad hominem:  attack the man, not what he did that has yet to\n\tbe proven illegal)>\n\n>\n>\n>|>>and the FBI/ATF go blasting holes into the builing and firing gas munitions.\n>|>\n>|>They used a tank to knock a hole in the wall, and they released\n>|>non-toxic, non-flammable tear gas into the building.\n>\n>You can tell that the gas did not burn because dispite the fact that\n\n\n\tWRONGo.  Remember the fire movie a couple of years ago?\n\t\"Backdraft\"?  The scene in the factory with propane gas\n\tcoming out of pipes and gasoline all over the floor,\n\twith a 750 degree flame front overhead?\n\n\t\tNote that it did not flash all at once?\n\n\tFires ignite and burn unpredictably.\n\tGases (like tear gas) mix and distribute unevenly.\n\t\tAnd flash unevenly.\n\n\tYou are not a fire analyst.  You cannnot tell.\n\t\t(NB:  Neither am I.  And I cannot tell\n\t\tNor is the FBI spokesman\n\t\tNor is Reno\n\t\tMaybe we all should shut up and get a\n\t\t\tforensics analysis first.\n\n>the building was full of it there was no flash of gas flame.\n\n\tYes,. there was a flash:  in one room, just pumped full of it.,\n\n>\n>\n>\n>Phill Hallam-Baker\n\nroyc\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9253, "properties": {"category": "sci.space", "text": "From: gary@ke4zv.uucp (Gary Coffman)\nSubject: Re: What if the USSR had reached the Moon first?\nReply-To: gary@ke4zv.UUCP (Gary Coffman)\nOrganization: Destructive Testing Systems\nLines: 30\n\nIn article <93107.144339SAUNDRSG@QUCDN.QueensU.CA> Graydon <SAUNDRSG@QUCDN.QueensU.CA> writes:\n>This is turning into 'what's a moonbase good for', and I ought\n>not to post when I've a hundred some odd posts to go, but I would\n>think that the real reason to have a moon base is economic.\n>\n>Since someone with space industry will presumeably have a much\n>larger GNP than they would _without_ space industry, eventually,\n>they will simply be able to afford more stuff.\n\nIf I read you right, you're saying in essence that, with a larger\neconomy, nations will have more discretionary funds to *waste*\non a lunar facility. That was certainly partially the case with Apollo, \nbut real Lunar colonies will probably require a continuing military,\nscientific, or commercial reason for being rather than just a \"we have \nthe money, why not?\" approach.\n\nIt's conceivable that Luna will have a military purpose, it's possible\nthat Luna will have a commercial purpose, but it's most likely that\nLuna will only have a scientific purpose for the next several hundred\nyears at least. Therefore, Lunar bases should be predicated on funding\nlevels little different from those found for Antarctic bases. Can you\nput a 200 person base on the Moon for $30 million a year? Even if you\nuse grad students?\n\nGary\n-- \nGary Coffman KE4ZV          |    You make it,     | gatech!wa4mei!ke4zv!gary\nDestructive Testing Systems |    we break it.     | uunet!rsiatl!ke4zv!gary\n534 Shannon Way             |    Guaranteed!      | emory!kd4nc!ke4zv!gary \nLawrenceville, GA 30244     |                     | \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9254, "properties": {"category": "comp.sys.mac.hardware", "text": "From: haase@meediv.lanl.gov (Peter Haase)\nSubject: Seeking FAX For Network Access\nOrganization: Los Alamos National Laboratory\nLines: 9\n\nI am seeking recommendations/Vendors for a Networkable FAX. It would\nmainly be used for outgoing FAX's from Mac's on our Net. The ability\nto Fax from other platforms would be a plus. Ethernet interface would\nbe preffered but LocalTalk would suffice. Can anyone provide any info?\nThanks in advance, --Peter\n\n<==================================+==================================>\n  Peter Haase                      +    Internet: haase@meediv.lanl.gov\n  Network Manager                  +    Los Alamos National Laboratory\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9255, "properties": {"category": "rec.sport.baseball", "text": "From: jplee@cymbal.calpoly.edu (JASON LEE)\nSubject: Re: Surgery for Hal Morris\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 17\n\nAnd then cjkuo@symantec.com (Jimmy Kuo) quoth:\n>Does it strike anyone else how silly it is to impose a 3 game suspension on \n>Morris?\n>\n>\"Let's see...  I expect to be back June 15th.  How many games do we play \n>before June 15th?  Take me off the DL 3 games before June 15th.\"\n>\n>It would be a lot more meaningful if the suspension went into effect some \n>number of games after he came back.\n\nWell, either way, the Reds have to play a man down for 3 days.\n\n-- \nJason Lee   jplee@oboe.calpoly.edu   jlee@cash.busfac.calpoly.edu    Giants\ne ^ i*pi + 1 = 0    The most beautiful equation in mathematics.      Magic\nFor all sad words of tongue and pen, the saddest are these:          Number:\n     \"It might have been.\"            John Greenleaf Whittier        153\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9256, "properties": {"category": "misc.forsale", "text": "From: ray@astro.ocis.temple.edu (Ray Lauff)\nSubject: The Abyss on LaserDisc\nOrganization: Temple University\nLines: 21\nNntp-Posting-Host: astro.ocis.temple.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\n[ Article crossposted from temple.forsale ]\n[ Author was Ray Lauff (ray@astro.ocis.temple.edu) ]\n[ Posted on Wed, 21 Apr 1993 01:04:27 GMT ]\n\nRegular CBS/FOX release of the wide screen edition of the movie\nThe Abyss for sale, asking $30, including postage.  I want to\npurchase the new director's cut and would like to unload this\nLaserDisc if possible.  \n\nTwo discs, unopened, 132 minutes, letterbox.\n\nEmail me if interested.\n    ray@astro.ocis.temple.edu\n\nRay\n\n--\nRay Lauff | Temple University Computer Services | ray_lauff@astro.temple.edu\n\n--\nRay Lauff | Temple University Computer Services | ray_lauff@astro.temple.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9257, "properties": {"category": "rec.sport.baseball", "text": "From: cub@csi.jpl.nasa.gov (Ray Miller)\nSubject: Sid Fernandez?\nNntp-Posting-Host: chopin\nOrganization: Jet Propulsion Laboratory\nDistribution: usa\nLines: 10\n\nI read this morning that Sid Fernandez left last nights' game with stiffness\nin his shoulder. Does anyone have any information as to the extent of the\ninjury (if indeed there is one), or weather the cold air in Colorado just got\nhis joints a little stiff?\n\nThanks for the help...\n|         Ray Miller           |            DISCLAIMER               |\n|  cub@chopin.jpl.nasa.gov     |  All opinions are strictly my own   |\n\t\t\t\t\t\t\t\t     \n \"I once spent a year in Philadelphia, I think it was on a Sunday\" WCFields\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.437+0000", "event": "documents", "entityId": 9258, "properties": {"category": "rec.autos", "text": "From: cf947@cleveland.Freenet.Edu (Chun-Hung Wan)\nSubject: NX2000 vs. Sentra SE-R\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 17\nReply-To: cf947@cleveland.Freenet.Edu (Chun-Hung Wan)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nI'm plannig to trade my Sentra SE-R in with a NX2000.  My car has 11,500\nmiles on it and is a '92 model.  The NX2000 the dealer is selling is a '91\nmodel with 23,000miles on it.  It has a T-Bar Roof, a/c, and an airbag,\nwhich my Sentra does not have.  They are asking for $1500.  Is that a fair\ndeal?  The only thing I noticed about the NX2000 is that the engine did not\nseem to have as much torque as my Sentra which has the same identical\nengine.  I presume that the last lady owner did not really push the engine\nto it's limits occassionaly while I did that on mine, thuis the NX2000's\nengine is a little \"tight.\"  So, if I buy the NX2000 and \"excercise\" it\nwell, should that slight power problem go away?  Any advice on this will be\nmuch appreciated.  Thanks.  Please reply via e-mail if possible.\n-- \nA motion picture major at the Brooks Institute of Photography, CA\nSanta Barbara and a foreign student from Kuala Lumpur, Malaysia.\n\n\"The mind is the forerunner of all states.\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9259, "properties": {"category": "rec.sport.baseball", "text": "From: aardvark@cygnus.la.locus.com (Warren Usui)\nSubject: rec.sport.baseball.fantasy\nOrganization: Locus Computing Corporation, Los Angeles, California\nLines: 40\n\n\n\n\t\t\t\t\t\t\tApril 1, 1993\n\n\nI am participating in an NL-league that uses standard Rotisserie rules\nexcept that the following catagories are used:\n\nFor position players:\n\tlowest batting average\n\tstrike-outs\n\tcaught-stealing\n\terrors\n\nFor pitchers:\n\tlosses\n\tblown saves\n\thigest ERA\n\t'taters allowed\n\nThis is the fifth year that I've participated in this Blowtisserie\nleague.  Last year I won the pennant due primarily to the fact that\nI had terrible pitching.  I would like to lower my batting average\nwhich is rather high because I do have Jose Offerman (who made up\nfor this by helping me lock first place in errors).  Anyway,\nsomeone offered:\n\nAndres Gallaraga for Bud Black\n\nI can afford to give up Bud Black because I still have Kyle Abbott.\nHowever, I am afraid of Andres actually doing well this season.\nShould I make the trade or not?\n\nYour comments will be appreciated.\n\n-- \nWarren Usui\n\nI'm one with the Universe -- on a scale from 1 to 10.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9260, "properties": {"category": "alt.atheism", "text": "Subject: A word of advice\nFrom: jcopelan@nyx.cs.du.edu (The One and Only)\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nSummary: was Re: Yeah, Right\nLines: 14\n\nIn article <65882@mimsy.umd.edu> mangoe@cs.umd.edu (Charley Wingate) writes:\n>\n>I've said enough times that there is no \"alternative\" that should think you\n>might have caught on by now.  And there is no \"alternative\", but the point\n>is, \"rationality\" isn't an alternative either.  The problems of metaphysical\n>and religious knowledge are unsolvable-- or I should say, humans cannot\n>solve them.\n\nHow does that saying go: Those who say it can't be done shouldn't interrupt\nthose who are doing it.\n\nJim\n--\nHave you washed your brain today?\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9261, "properties": {"category": "rec.autos", "text": "From: bw662@cleveland.Freenet.Edu (Bill Cray)\nSubject: Re: Thinking About Buying Intrepid - Good or Bad Idea?\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 6\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nI bought an Intrepid about two months ago and am very happy with\nit.  Lots of room inside and even with the smaller engine it has\nenough power for me.  The only problem I found was a small\nselection on the dealer's lots. They are hot sellers around here.\n-- \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9262, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Gaza and separation from Israel\nOrganization: The Department of Redundancy Department\nLines: 33\n\nIn article <1483500357@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n\n>The Israeli Left's inability to cope with the challenges it is\n>presented with by reality becomes obvious at those moments when\n>the reality does not line up with the expectations of the left. We\n>were able to see this clearly during the Gulf War.  Because of the\n>Palestinian's popular solidarity with Iraq, Yossi Sarid -\n>currently Minister of the Environment - made his infamous\n>statement: \"You look for me !\", i.e., I'am not making any more\n>efforts to speak with you. From Yossi Sarid's point of view,\n>Palestinian reality during the Gulf War was not the lengthy curfew\n>or the danger of hunger it brought with it, but whether or not the\n>Palestinians accepted what was acceptable to the party. Similarly\n>MERETZ, MK Deddi Tzuker, recently faced with criticism from\n>residents of the West Bank town of Beit Sahour over his\n>government's and his party's lack of action for human rights and\n>peace, responded by asking those present at the discussion whether\n>they would rather have a Likud government. From the Leftists'\n>perspective this is the best government because it is THEIR\n>government, regardless of what it does.\n>\n>These members of the Israeli Left have already decided how the\n>future of the Occupied Territories will look, and they want to\n>dictate to the Palestinians how to get there. \n\nWhen someone starts criticizing the Leftists for not being Leftist\nenough, we get a pretty clear idea of what they believe to be normal.\nI hope that your not still calling yourself fair and unbiased, Elias.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9263, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: Thomas Dachsel <GERTHD@mvs.sas.com>\nSubject: BOOT PROBLEM with IDE controller\nNntp-Posting-Host: sdcmvs.mvs.sas.com\nOrganization: SAS Institute Inc.\nLines: 25\n\nHi,\nI've got a Multi I/O card (IDE controller + serial/parallel\ninterface) and two floppy drives (5 1/4, 3 1/2) and a\nQuantum ProDrive 80AT connected to it.\nI was able to format the hard disk, but I could not boot from\nit. I can boot from drive A: (which disk drive does not matter)\nbut if I remove the disk from drive A and press the reset switch,\nthe LED of drive A: continues to glow, and the hard disk is\nnot accessed at all.\nI guess this must be a problem of either the Multi I/o card\nor floppy disk drive settings (jumper configuration?)\nDoes someone have any hint what could be the reason for it.\nPlease reply by email to GERTHD@MVS.SAS.COM\nThanks,\nThomas\n+-------------------------------------------------------------------+\n| Thomas Dachsel                                                    |\n| Internet: GERTHD@MVS.SAS.COM                                      |\n| Fidonet:  Thomas_Dachsel@camel.fido.de (2:247/40)                 |\n| Subnet:   dachsel@rnivh.rni.sub.org (UUCP in Germany, now active) |\n| Phone:    +49 6221 4150 (work), +49 6203 12274 (home)             |\n| Fax:      +49 6221 415101                                         |\n| Snail:    SAS Institute GmbH, P.O.Box 105307, D-W-6900 Heidelberg |\n| Tagline:  One bad sector can ruin a whole day...                  |\n+-------------------------------------------------------------------+\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9264, "properties": {"category": "rec.sport.baseball", "text": "From: sepinwal@mail.sas.upenn.edu (Alan Sepinwall)\nSubject: Re: Jewish Baseball Players?\nArticle-I.D.: netnews.120665\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 18\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>Just wondering.  A friend and I were talking the other day, and\n>we were (for some reason) trying to come up with names of Jewish\n>baseball players, past and present.  We weren't able to come up\n>with much, except for Sandy Koufax, (somebody) Stankowitz, and\n\nIt's Stankiewicz, not Stankowitz, and he's not Jewish - he's Polish\n(by the way, the correct pronunciation - according to Stanky himself,\nis \"ston-KEV-itch\". all the sportscasters get it wrong)\n\n>maybe John Lowenstein.  Can anyone come up with any more.  I know\n>it sounds pretty lame to be racking our brains over this, but\n>humor us.  Thanks for your help.\n\nThe only other Jewish ballplayer I can think of is Ron Blomberg, who is\nbest known as being the first DH to appear in a major league ballgame.\n\n-Alan\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9265, "properties": {"category": "comp.sys.mac.hardware", "text": "From: cf947@cleveland.Freenet.Edu (Chun-Hung Wan)\nSubject: Re: your opinion of the LaserWriter Select 310?\nArticle-I.D.: usenet.1prg8a$psr\nReply-To: cf947@cleveland.Freenet.Edu (Chun-Hung Wan)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 25\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, jcav@ellis.uchicago.edu (JohnC) says:\n\n>This model is one of the two low-cost laser printers that Apple just\n>introduced.  I'm thinking of getting one to use at home.  Have any of you\n>had any experience with this printer?   Does it have Level-2 PostScript?\n>If you've bought one, are you happy with it?\n>\n>-- \n>John Cavallino                  |  EMail: jcav@midway.uchicago.edu\n>University of Chicago Hospitals |         John_Cavallino@uchfm.bsd.uchicago.edu\n>Office of Facilities Management | USMail: 5841 S. Maryland Ave, MC 0953\n>B0 f++ w c+ g++ k+ s++ e h- p   |         Chicago, IL  60637\n>\n\nFrankly, I think this model is a screwup.  It does not have PostScriptlevel\n2, only has 13 fonts, and does not even have  fine print or photograde, or\ngrayshare.  Even the 300 model has this!  I am shocked by the kind of\nfeatures you get for this printer.  I myself was hoping for some decent\nprinter to replace the Personal Laser Writers.  \n-- \nA motion picture major at the Brooks Institute of Photography, CA\nSanta Barbara and a foreign student from Kuala Lumpur, Malaysia.\n\n\"The mind is the forerunner of all states.\"\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9266, "properties": {"category": "misc.forsale", "text": "From: laird@pasture.ecn.purdue.edu (Kyler Laird)\nSubject: WANTED: HP ScanJet (and ADF)\nOrganization: Purdue University Engineering Computer Network\nLines: 10\n\nI need some used scanners.  I'm limiting my selection to HP models\nwith document feeders.  I think this means the ScanJet Plus and the\nScanJet IIc.\n\nso...if you have one of these and want to sell it, please tell me.\n\n--kyler\n\nP.S.  I need only one with a Mac interface; the others are for IBM-PC\ncompatibles.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9267, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 04/10 - Mathematical Cryptology\nOrganization: The Crypt Cabal\nLines: 203\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 4 of 10 of the sci.crypt FAQ, Mathematical Cryptology.\n Private-key systems. Types of attacks (brute-force, cyphertext, \n plaintext, etc.). Mathematical formulation of cryptography. Security \n of one-time pads.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part04\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 4: Mathematical Cryptology\n\nThis is the fourth of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read the first part before the rest.\nWe don't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in the last part.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers\nevery 21 days.\n\n\nContents:\n\n* In mathematical terms, what is a private-key cryptosystem?\n* What is an attack?\n* What's the advantage of formulating all this mathematically?\n* Why is the one-time pad secure?\n* What's a ciphertext-only attack?\n* What's a known-plaintext attack?\n* What's a chosen-plaintext attack?\n* In mathematical terms, what can you say about brute-force attacks?\n* What's a key-guessing attack? What's entropy?\n\n\n* In mathematical terms, what is a private-key cryptosystem?\n\n  A private-key cryptosystem consists of an encryption system E and a\n  decryption system D. The encryption system E is a collection of\n  functions E_K, indexed by ``keys'' K, mapping some set of\n  ``plaintexts'' P to some set of ``ciphertexts'' C. Similarly the\n  decryption system D is a collection of functions D_K such that\n  D_K(E_K(P)) = P for every plaintext P.  That is, succesful decryption\n  of ciphertext into plaintext is accomplished using the same key\n  (index) as was used for the corresponding encryption of plaintext\n  into ciphertext.  Such systems, wherein the same key value is used to\n  encrypt and decrypt, are also known as ``symmetric'' cryptoystems.\n\n* What is an attack?\n\n  In intuitive terms a (passive) attack on a cryptosystem is any method\n  of starting with some information about plaintexts and their\n  corresponding ciphertexts under some (unknown) key, and figuring out\n  more information about the plaintexts. It's possible to state\n  mathematically what this means. Here we go.\n\n  Fix functions F, G, and H of n variables. Fix an encryption system E,\n  and fix a distribution of plaintexts and keys.\n\n  An attack on E using G assuming F giving H with probability p is an\n  algorithm A with a pair f, g of inputs and one output h, such that\n  there is probability p of computing h = H(P_1,...,P_n), if we have\n  f = F(P_1,...,P_n) and g = G(E_K(P_1),...,E_K(P_n)). Note that this\n  probability depends on the distribution of the vector (K,P_1,...,P_n).\n\n  The attack is trivial (or ``pointless'') if there is probability at\n  least p of computing h = H(P_1,...,P_n) if f = F(P_1,...,P_n) and\n  g = G(C_1,...,C_n). Here C_1,...,C_n range uniformly over the possible\n  ciphertexts, and have no particular relation to P_1,...,P_n. In other\n  words, an attack is trivial if it doesn't actually use the encryptions\n  E_K(P_1),...,E_K(P_n).\n\n  An attack is called ``one-ciphertext'' if n = 1, ``two-ciphertext'' if\n  n = 2, and so on.\n\n* What's the advantage of formulating all this mathematically?\n\n  In basic cryptology you can never prove that a cryptosystem is secure.\n  Read part 3: we keep saying ``a strong cryptosystem must have this\n  property, but having this property is no guarantee that a cryptosystem\n  is strong!''\n\n  In contrast, the purpose of mathematical cryptology is to precisely\n  formulate and, if possible, prove the statement that a cryptosystem is\n  strong. We say, for example, that a cryptosystem is secure against\n  all (passive) attacks if any nontrivial attack against the system (as\n  defined above) is too slow to be practical. If we can prove this\n  statement then we have confidence that our cryptosystem will resist\n  any (passive) cryptanalytic technique. If we can reduce this statement\n  to some well-known unsolved problem then we still have confidence that\n  the cryptosystem isn't easy to break.\n\n  Other parts of cryptology are also amenable to mathematical\n  definition. Again the point is to explicitly identify what assumptions\n  we're making and prove that they produce the desired results. We can\n  figure out what it means for a particular cryptosystem to be used\n  properly: it just means that the assumptions are valid.\n\n  The same methodology is useful for cryptanalysis too. The cryptanalyst\n  can take advantage of incorrect assumptions. Often he can try to\n  construct a proof of security for a system, see where the proof fails,\n  and use these failures as the starting points for his analysis.\n  \n* Why is the one-time pad secure?\n\n  By definition, the one-time pad is a cryptosystem where the\n  plaintexts, ciphertexts, and keys are all strings (say byte strings)\n  of some length m, and E_K(P) is just the sum (let's say the exclusive\n  or) of K and P.\n\n  It is easy to prove mathematically that there are _no_ nontrivial\n  single-ciphertext attacks on the one-time pad, assuming a uniform\n  distribution of keys. Note that we don't have to assume a uniform\n  distribution of plaintexts. (Here's the proof: Let A be an attack,\n  i.e., an algorithm taking two inputs f, g and producing one output h,\n  with some probability p that h = H(P) whenever f = F(P) and\n  g = G(E_K(P)) (i.e., g = G(K + P)). Then, because the distribution of\n  K is uniform and independent of P, the distribution of K + P must also\n  be uniform and independent of P. But also the distribution of C is\n  uniform and independent of P. Hence there is probability exactly p\n  that h = H(P) whenever f = F(P) and g = G(C), over all P and C. Thus\n  a fortiori A is trivial.)\n\n  On the other hand the one-time pad is _not_ secure if a key K is used\n  for more than one plaintext: i.e., there are nontrivial\n  multiple-ciphertext attacks. So to be properly used a key K must be\n  thrown away after one encryption. The key is also called a ``pad'';\n  this explains the name ``one-time pad.''\n\n* What's a ciphertext-only attack?\n\n  In the notation above, a ciphertext-only attack is one where F is\n  constant. Given only some information G(E_K(P_1),...,E_K(P_n)) about\n  n ciphertexts, the attack has to have some chance of producing some\n  information H(P_1,...,P_n) about the plaintexts. The attack is trivial\n  if it has just as good a chance of producing H(P_1,...,P_n) when given\n  G(C_1,...,C_n) for random C_1,...,C_n.\n\n  For example, say G(C) = C, and say H(P) is the first bit of P. We can\n  easily write down an attack---the ``guessing attack,'' which simply\n  guesses that H(P) is 1. This attack is trivial because it doesn't use\n  the ciphertext: it has a fifty-fifty chance of guessing correctly no\n  matter what. On the other hand there is an attack on RSA which\n  produces one bit of information about P, with 100% success, using C.\n  If it is fed a random C then the success rate drops to 50%. So this is\n  a nontrivial attack.\n\n* What's a known-plaintext attack?\n\n  The classic known-plaintext attack has F(P_1,P_2) = P_1,\n  G(C_1,C_2) = (C_1,C_2), and H(P_1,P_2) depending only on P_2.\n  In other words, given two ciphertexts C_1 and C_2 and one decryption\n  P_1, the known-plaintext attack should produce information about the\n  other decryption P_2.\n\n  Note that known-plaintext attacks are often defined in the literature\n  as producing information about the key, but this is pointless: the\n  cryptanalyst generally cares about the key only insofar as it lets him\n  decrypt further messages.\n\n* What's a chosen-plaintext attack?\n\n  A chosen-plaintext attack is the first of an increasingly impractical\n  series of _active_ attacks on a cryptosystem: attacks where the\n  cryptanalyst feeds data to the encryptor. These attacks don't fit into\n  our model of passive attacks explained above. Anyway, a\n  chosen-plaintext attack lets the cryptanalyst choose a plaintext and\n  look at the corresponding ciphertext, then repeat until he has figured\n  out how to decrypt any message. More absurd examples of this sort of\n  attack are the ``chosen-key attack'' and ``chosen-system attack.''\n\n  A much more important form of active attack is a message corruption\n  attack, where the attacker tries to change the ciphertext in such a\n  way as to make a useful change in the plaintext.\n\n  There are many easy ways to throw kinks into all of these attacks:\n  for instance, automatically encrypting any plaintext P as\n  T,E_K(h(T+R+P),R,P), where T is a time-key (sequence number) chosen anew\n  for each message, R is a random number, and h is a one-way hash\n  function. Here comma means concatenation and plus means exclusive-or.\n\n* In mathematical terms, what can you say about brute-force attacks?\n\n  Consider the following known-plaintext attack. We are given some\n  plaintexts P_1,...,P_{n-1} and ciphertexts C_1,...,C_{n-1}. We're\n  also given a ciphertext C_n. We run through every key K. When we find\n  K such that E_K(P_i) = C_i for every i < n, we print D_K(C_n).\n\n  If n is big enough that only one key works, this attack will succeed\n  on valid inputs all the time, while it will produce correct results\n  only once in a blue moon for random inputs. Thus this is a nontrivial\n  attack. Its only problem is that it is very slow if there are many\n  possible keys.\n\n* What's a key-guessing attack? What's entropy?\n\n  Say somebody is using the one-time pad---but isn't choosing keys\n  randomly and uniformly from all m-bit messages, as he was supposed to\n  for our security proof. In fact say he's known to prefer keys which\n  are English words. Then a cryptanalyst can run through all English\n  words as possible keys. This attack will often succeed, and it's much\n  faster than a brute-force search of the entire keyspace.\n\n  We can measure how bad a key distribution is by calculating its\n  entropy. This number E is the number of ``real bits of information''\n  of the key: a cryptanalyst will typically happen across the key within\n  2^E guesses. E is defined as the sum of -p_K log_2 p_K, where p_K is\n  the probability of key K.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9268, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Use of codine in narcolepsy.\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 18\n\nIn article <1993Mar26.005148.7899@aio.jsc.nasa.gov> stevel@aio.jsc.nasa.gov (Steve Lancaster) writes:\n\n>3) Is there any way around the scheduled drug mess so that he can use\n>just the substance that works and not one adulterated with Tylenol? \n>Can the MD perscribe a year long supply on one script? His doctor\n>basically refused to prescribe it, saying \"His clinic does not prescribe\n>controled substances. Its is 'company' rule.!\"\n>\nShort of changes by the feds, there is no way.  Codeine alone is very\ndifficult to prescribe without a lot of hassles.  Tylenol #3 is the\nbest compromise.  That way he can get refills.  The amount of acetominophen\nhe is getting with his codeine won't hurt him any.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9269, "properties": {"category": "talk.politics.misc", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: Kyle K. on Rodney King\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nDistribution: usa\nLines: 31\n\nIn article <C5pEAy.M15@news.cso.uiuc.edu> kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n>thf2@kimbark.uchicago.edu (Ted Frank) writes:\n>>In article <C5Lp0y.FDK@news.cso.uiuc.edu> kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n>>>How about the fact that you have a bunch of cops putting their lives on\n>>>the line day in and day out who are afraid as hell of a large black guy that\n>>                                                               ^^^^^\n>>>took a large amount of punishment and refused submit?  \n>>>\n>>I'm curious why you think that particular adjective is important.\n>\n>       Black is a descriptive adjective that describes Mr. King.  From many\n>of the newspaper, radio, and tv news reports I have seen, this adjective      \n>is commonly in front of his name.  I have NEVER seen anyone complain about\n>the use of this adjective when used in a benign manner.  I did not say that\n>Mr. King was a no good black!  I do not know Mr. King and would not make this\n>ascertian without some evidence to this effect.  I used it PURELY as a \n>descriptive adjective in the same manner than many ( most ) news people have\n>used it in the past.\n\nNo one is questioning whether Mr. King is black.  The question arises\nwhether King's race should make police officers \"afraid as hell.\"  Your\nstatement seems to imply that cops should have a different standard for\nlarge black guys than for just large guys in general.  \n\nThat two posts later you don't understand why anyone pointed out your use\nof the adjective is almost as informative as your original use.\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9270, "properties": {"category": "rec.sport.hockey", "text": "From: shadow@r-node.hub.org (Jay Chu)\nSubject: Lindros will be traded!!!\nOrganization: Lindros traded!\nSummary: Babe Lindros going to Ottawa!\nLines: 14\n\nTrue rumor.  Fact!  A big three way deal!\n\nEric Lindros going to Ottawa Senators.  And Senators get $15mill from\nMontreal.\n\nMontreal gets Alexander Daigle (the first round pick from Senators)\n\nPhilly gets Damphousse, Bellow, Patrick Roy and a draft pick.\n\n-- \n        ______                shadow@r-node.gts.org\n       | |__| |   If it's there and you can see it       - it's real\n       |  ()  |   If it's there and you can't see it     - it's transparent\n       |______|   If it's not there and you can't see it - you erased it!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9271, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gtonwu@Uz.nthu.edu.tw (Tony G. Wu)\nSubject: Is it possible ?\nOrganization: National Tsing Hua University (HsinChu)\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 13\n\n\nHello.\n\n      Is it possible to know minimize program manager when starting an\n      application and to restore it when the application is ended ?\n      If possible, please tell me how to do it !\n\n\n-- \n===================== ( Forever  23,  Michael Jordan.) =====================\n    Tony G. Wu                                     gtonwu@uz.nthu.edu.tw \n    CAE/Rheology Lab.  NTHU.                       tony@che.nthu.edu.tw\n   \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9272, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gpb@gpb-mac (greg berryman )\nSubject: Re: Memory upgrades\nNntp-Posting-Host: 222.1.248.85\nReply-To: gpb@gpb-mac.sps.mot.com\nOrganization: Memories at Motorola\nX-Newsreader: Tin 1.1 PL4\nLines: 33\n\njacob@plasma2.ssl.berkeley.edu (nga throgaw shaygiy) writes:\n: \n: Excuse me if this is a frequent question, I checked in\n: several FAQs but couldn't really find anything.\n\nYou are excused... the answer varies from Mac to Mac so it would be\na complex answer in the FAQ.\n: \n: I have a IIsi with the standard 5 meg memory and I want\n: (need) to add additional memory.  But I'm on a budget.\n: I really don't need more than 10 meg max, so what is\n: the best (performance wise) and most economical way\n: to do this?  Someone told me that I should only use\n: SIMMs of the same amount of memory, that is 4 1 meg,\n: 4 2 meg, etc.  What if I just wanted to buy just 1 4 meg\n: and use the rest of what I already have?  The manual\n: hasn't been very helpful with this.\n: \nThe si uses a 32 bit wide data bus and therefore you must use 4 8-bit\nwide simms.  Sorry, but no short cuts here.\n\n: Thanks.\n\nYou're quite welcome.\n: \nGreg.\n\n--\nMy words, not Motorola's.   * ______ *    EQUAL rights NOT special rights     \ngpb@gpb-mac.sps.mot.com     * \\ BI / * I will NOT ride in the back of the bus.\nGreg Berryman (512)928-6014 *  \\  /  *         SILENCE = DEATH\nMotorola Austin, Texas, USA *   \\/   *     First, be true to yourself.\nGLB mailing list ---> glblist@gpb-mac.sps.mot.com   (Motorola only)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9273, "properties": {"category": "alt.atheism", "text": "From: cobb@alexia.lis.uiuc.edu (Mike Cobb)\nSubject: Christian Morality is\nOrganization: University of Illinois at Urbana\nLines: 51\n\nIn <11836@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>In article <C5L1Ey.Jts@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike \nCobb) writes:\n>>In <11825@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) \nwrites:\n>>\n>>\n>>>  Actually, my atheism is based on ignorance.  Ignorance of the\n>>>  existence of any god.  Don't fall into the \"atheists don't believe\n>>>  because of their pride\" mistake.\n>>\n>>How do you know it's based on ignorance, couldn't that be wrong? Why would it\n>>be wrong \n>>to fall into the trap that you mentioned? \n>>\n\n>  If I'm wrong, god is free at any time to correct my mistake.  That\n>  he continues not to do so, while supposedly proclaiming his\n>  undying love for my eternal soul, speaks volumes.\n\nWhat are the volumes that it speaks besides the fact that he leaves your \nchoices up to you?\n\n>  As for the trap, you are not in a position to tell me that I don't\n>  believe in god because I do not wish to.  Unless you can know my\n>  motivations better than I do myself, you should believe me when I\n>  say that I earnestly searched for god for years and never found\n>  him.\n\nI definitely agree that it's rather presumptuous for either \"side\" to give some\npsychological reasoning for another's belief.\n\nMAC\n>/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\n>Bob Beauchaine bobbe@vice.ICO.TEK.COM \n\n>They said that Queens could stay, they blew the Bronx away,\n>and sank Manhattan out at sea.\n\n>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n--\n****************************************************************\n                                                    Michael A. Cobb\n \"...and I won't raise taxes on the middle     University of Illinois\n    class to pay for my programs.\"                 Champaign-Urbana\n          -Bill Clinton 3rd Debate             cobb@alexia.lis.uiuc.edu\n                                              \nWith new taxes and spending cuts we'll still have 310 billion dollar deficits.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9274, "properties": {"category": "sci.space", "text": "From: zellner@stsci.edu\nSubject: Re: HST Servicing Mission\nLines: 19\nOrganization: Space Telescope Science Institute\nDistribution: world,na\n\nIn article <1rd1g0$ckb@access.digex.net>, prb@access.digex.com (Pat) writes: \n > \n > \n > SOmebody mentioned  a re-boost of HST during this mission,  meaning\n > that Weight is a very tight  margin on this  mission.\n >  \n\nI haven't heard any hint of a re-boost, or that any is needed.\n\n > \n > why not  grapple,  do all said fixes,   bolt a small  liquid  fueled\n > thruster module  to  HST,   then let it make the re-boost.  it has to be\n > cheaper on mass then usingthe shuttle as a tug.   \n\nNasty, dirty combustion products!  People have gone to monumental efforts to\nkeep HST clean.  We certainly aren't going to bolt any thrusters to it.\n\nBen\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9275, "properties": {"category": "sci.crypt", "text": "From: Grant@DOCKMASTER.NCSC.MIL (Lynn R Grant)\nSubject: Re: Key Registering Bodies\nOrganization: Yale CS Mail/News Gateway\nLines: 22\n\nIf we do not trust the NSA to be a registrar of Clipper Chip key halves,\nI would not trust Mitre either.  Mitre does lots of work for NSA, at least\nin the Trusted Product Evaluation Program (evaluation of commercial off the\nshelf software for its efficacy in safeguarding classified information), and\nI assume in other, less open, programs.\n\nThere are at least two other FFRDCs (Federally Funded Research and Development\nCorporations) that work for NSA: Aerospace Corporation and the Institute for\nDefense Analysis.  Now, if NSA were to be untrustworthy (a position that I\nam neutral about, for purposes of this posting), it would be in a position to\nexert economic pressure upon Mitre to release key halves on demand.  It could\njust say, \"If you don't cooperate with us, we'll place all our evaluation\ncontracts with Aerospace and IDA.\"\n\nI am not saying that people at NSA, Mitre, Aerospace, or IDA are dishonest\nfolk.  But since they are people, and people occasionally go bad, the\nsystem works better if organizations that you are depending upon to be\nindependent really are.\n\nAnd, of course, I speak for myself, not my employer.\n\nLynn Grant\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9276, "properties": {"category": "rec.autos", "text": "From: bobml@mxmsd.msd.measurex.com (Bob LaGesse)\nSubject: Re: Changing oil by self.\nReply-To: bobml@msd.measurex.com\nOrganization: Measurex MSD\nDistribution: mxmsd\nLines: 26\n\nIn article <1993Apr15.193712.25996@news.cs.brandeis.edu>, andyh@chaos.cs.brandeis.edu (Andrew J. Huang) writes:\n> In article <1993Apr15.020356.28944@magnus.acs.ohio-state.edu> sorlin@magnus.acs.ohio-state.edu (Steven J Orlin) writes:\n> >I take the electrodes of the Amp/Ohm/Volt meter whatever and connect one\n> >to each earlobe.  Then, symmetrically insert my fingers in each of the\n> >spark plug boots. No cheating guys!  both hands must be used!\n> \n> I have just a couple of questions about this technique.\n> \n> First, what firing order should I use?  Do I start with my pointer\n> finger or my pinky?  Left hand or right?\n> \n> And secondly, I have a 12cyl and there are two cylinders unaccounted\n> for.  Any suggestions?\n> \n> /andy\n> \n \nHow about your two big toes?  And while you're at it, why bother with removing\nthe drain plug when you could remove the dipstick instead and suck it out from\nthere with your mouth and then spit it out?\n\n-- \nDomain: bobml@msd.measurex.com    Bob LaGesse, Senior Software Engineer\n  UUCP: ...!uunet!mxmsd!bobml     Measurex/Management Systems Division\n Voice: (513) 825-3931 X303       1280 Kemper Meadow Drive\n   Fax: (513) 825-5393            Cincinnati, Ohio 45240, USA\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9277, "properties": {"category": "comp.graphics", "text": "From: haberj@Informatik.TU-Muenchen.DE (Haber Joerg)\nSubject: ray tracing spline surfaces\nKeywords: ray tracing, splines\nOriginator: haberj@sunbulirsch4.mathematik.tu-muenchen.de\nOrganization: Technische Universitaet Muenchen, Germany\nLines: 17\n\n\nHi net!\nDue to further investigation I would like to study the following article:\n\tPeterson, \"Ray tracing general B-Splines\",\n\tProc. ACM Mountain Regional Conference, April 1986\nUnfortunately I didn't find it in any library's register.\nIf there is anyone having access to this paper or knowing about a\nlibrary containing those proceedings (preferrably in Germany), please \nlet me know! Any help would be appreciated! \n\nThanks a lot, \nJoerg Haber\n\n--\n  Joerg Haber                \thaberj@mathematik.tu-muenchen.de\n  Mathematisches Institut\n  TU Muenchen\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9278, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nDistribution: na\nOrganization: Totally Unorganized\nLines: 76\n\nIn article <1qnpjuINN8ci@gap.caltech.edu> hal@cco.caltech.edu (Hal Finney) writes:\n>brad@clarinet.com (Brad Templeton) writes:\n>\n>>Their strategy is a business one rather than legal one.  They are\n>>pushing to get a standard in place, a secret standard, and if they\n>>get it as a standard then they will drive competitors out of the market.\n>>It will be legal to sell better, untapable encryption that doesn't have\n>>registered keys, but it will be difficult, and thus not a plan for\n>>most phone companies.\n>\n>If Brad's analysis is correct, it may offer an explanation for why the\n>encryption algorithm is being kept secret.  This will prevent competitors\n>from coming out with Clipper-compatible phones which lack the government-\n>installed \"back door.\"  The strategy Brad describes will only work as long\n>as the only way to get compatible phones is to have ones with the government\n>chips.\n>\n>(It would be nice, from the point of view of personal privacy, if Brad\n>turns out to be right.  As long as people still have the power to provide\n>their own encryption in place of or in addition to the Clipper, privacy\n>is still possible.  But the wording of several passages in the announcement\n>makes me doubt whether this will turn out to be true.)\n\nEven if what Brad says turns out to be accurate, you can bet that the\nAdministration will have made it \"very clear\" to the vendors that \"it\nwould very much be in their best interests\" to institute a \"voluntary\"\npolicy of refusing to sell anything but Clinton Cripple equipped equipment\nto anyone other than \"Authorized government agencies and Law Enforcement\",\nor individuals and corporations who \"have been been determined by the\nAdministration to have a valid need on a case-by-case basis\" for an\neffective system.\n\nNote that this is very much like the language used in many gun control\nbills/laws the Administration is pushing for, or otherwise supporting.\nThe logic and actual rationale (as opposed to the excuses that get fed\nto the media) is the same in both cases, only the items or technology\nin question are different.\n\nI think this is no accident.  It comes from the same philosophy that\nthe government rules/controls the people, not the people controlling\nthe government, that the unconnected citizens are not sophisticated enough\nto know what is best for them, so the government must tell the people\nwhat they need or do not need ... \"we know best...\".  And the idea that\nthat a commoner can defend himself against government eavesdropping\nor unlawful attack is totally unacceptable to people with this outlook.\n\n>\n>Hal Finney\n\nCombine this all with pushing for national identity cards with 'smart\nchips' to encode anything they please (internal passport) under the\nguise of streamlining the State People's Health Care System, and with\n(you can be certain) more jewels yet to come, and one sees an extremely\nominous trend.  So what if \"1984\" will be ten years late... it still is\nturning out to be an amazingly accurate prophecy... unless a LOT of\npeople wake up, and in a hurry.\n\nOne should ALWAYS have every red warning light and bell and danger flag\ncome up when the government seeks to set itself apart in regard to\nrights, etc.  from the unconnected/unprivileged citizen (or should we\nnow be saying 'subject' instead?)...  Why SHOULDN'T the average person\nhave a good, secure system of data security, not dependent on nebulous\n'safeguards' for maintaining that security?  Why SHOULDN'T the average\nperson be able to defend himself from an agency gone rogue?  0I am sure\nthe Feds could break into any data they really wanted to (but it would\ntake some WORK), and using the same logic, one should not be allowed to\nhave a good safe, unless a duplicate of the key(s) or combination are\nsubmitted for 'safekeeping' by the government?  I don't really see a\ndifference, philosophically.  Encrypted data sure won't evaporate, not\nwith such high-tech tools as a TAPE RECORDER...\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9279, "properties": {"category": "soc.religion.christian", "text": "From: jonh@david.wheaton.edu (Jonathan Hayward)\nSubject: Re: Pantheism & Environmentalism\nOrganization: Wheaton College, IL\nLines: 46\n\nIn article <Apr.5.23.31.36.1993.23919@athos.rutgers.edu> by028@cleveland.freenet.edu (Gary V. Cavano) writes:\n>I'm new to this group, and maybe this has been covered already,\n>but does anybody out there see the current emphasis on the\n>environment being turned (unintentionally, of course) into\n>pantheism?\n\nYes.\n\n(I am adamantly an environmentalist.  I will not use styrofoam table service.\nPlease keep that in mind as you read this post - I do not wish to attack\nenvironmentalism)\n\nA half truth is at least as dangerous as a complete lie.  A complete lie will\nrarely be readily accepted, while a half truth (the lie subtly hidden) is more\npowerfully offered by one who masquerades as an angel of light.\n\nSatan has (for some people) loosened the grip on treating the earth as something\nother than God's intricate handiwork, something other than that on which the\nhealth of future generations is based.  It is being treated with respect.  You\nthink he's going to happily leave it at that?  No.  When one error is rejected,\nit is his style to push people to the opposite error.  Therefore the earth is\nnot God's intricate handiwork, not because it is rubbish, but because it is\nGod.  Mother earth is the one you are to primarily love and serve.\n\nI see two facets of a response to it:\n\n1: Care for the environment.  Treat it with proper respect, both because it is\n   God's intricate handiwork and the health of future generation, and because\n   showing the facet of one who is disregardful of such things does not\n   constitute what the Apostle Paul called \"becoming all things to all men so\n   that by all possible means I might save some.\"\n\n   Don't say \"Forget the environment, I've got important things to spend my time\n   on.\" - putting your foot in your mouth in this manner will destroy your\n   credibility in expressing the things that _are_ more important.\n\n2: Show that it is not the ultimate entity, that it is creature and not\n   creator.  Show that its beauty and glory points to a greater beauty and\n   glory.  Show that it is not the ultimate tapestry, but one of many cords\n   woven in the infinite tapestry.\n\n################################################################################\n# \"God, give me mountains # \"But the greatest   # Jonathan Hayward             #\n# to climb and the        # of these is love.\"  # Jonathan_Hayward@wheaton.edu #\n# strength for climbing.\" # I Corinthians 13:13 # jhayward@imsa.edu            #\n################################################################################\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9280, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: Jim_Chow@edgeway.wimsey.bc.ca\nOrganization: EdgeWays!\nSubject: Re: ThunderScan - got a spare ImageWriter cover?\nLines: 21\n\n>Anyone have the replacement cover needed to use ThunderScan\n>with an ImageWriter I? Or can I fool the printer into\n>working without its own cover by sticking a suitable\n>magnet into its cover-sensor?\n\n>Thanks for any help,\n>Ralph\n\n\nThe magnet trick will work. Be careful when you apply the white tape to the\nrubber carriage roller, it tells the scanner where the edge is and it can come\noff.\n\nJim\n\n\n***************************** EdgeWays! InfoLink *****************************\n  name@edgeway.wimsey.bc.ca GUI BBS: (604) 984-2777 * Voice: (604) 984-6860\n\t\t\t\t\t  *\tThe views expressed here are of the individual author only. *  \n[From FirstClass(tm) by PostalUnion Lite(tm)  from North Vancouver, BC Canada]\n******************************************************************************\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.438+0000", "event": "documents", "entityId": 9281, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: Re: Post Polio Syndrome Information Needed Please !!!\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 15\n\nDN> From: nyeda@cnsvax.uwec.edu (David Nye)\nDN> Briefly, this is a condition in which patients who have significant\nDN> residual weakness from childhood polio notice progression of the\nDN> weakness as they get older.  One theory is that the remaining motor\nDN> neurons have to work harder and so die sooner.\n\nIf this theory were true, the muscle biopsy would show group atrophy\n(evidence of acute loss of enlarged motor units); it doesn't.\nInstead, the biopsy shows scattered, angulated, atrophic fibers.\nThis is more consistent with load-shedding by chronically overworked\nmotor neurons - the neurons survive, at the expense of increasingly\ndenervated muscle.\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n                                                                                                            \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9282, "properties": {"category": "soc.religion.christian", "text": "From: weaver@chdasic.sps.mot.com (Dave Weaver)\nSubject: Help\nLines: 44\n\nIn a prior article, lmvec@westminster.ac.uk (William Hargreaves) writes:\n>\n> Now I am of the opinion that you a saved through faith alone (not what you do)\n> as taught in Romans, but how can I square up in my mind the teachings of James\n> in conjunction with the lukewarm Christian being 'spat-out'\n\nIf you agree that good works have a role somewhere, you will \ngenerally find yourself in one of two camps: \n\n   (1) Faith + Works --> Salvation\nor (2) Faith --> Salvation + Works\n\nEither (1) works are required for salvation, or (2) faith will \ninevitably result in good works. \n\nI am also of the opinion that salvation is by faith alone, based on\nEphesians 2 and Romans 3:21-31.  I also conclude that James 2, when \nread in context, is teaching bullet (2) above. When James speaks of \njustification, I would claim that he is not speaking of God declaring\nthe believing sinner innocent in His sight (Paul's use of the word). \nInstead he is speaking of the sinner's profession of faith being \n\"justified\" or \"proven\" by the display of good works. Also according \nto James 2, the abscence of such works is evidence for a \"dead\" or \n\"useless\" faith which fails to save.\n\nJames 2 is not a problem for the doctrine of salvation by faith if it\nis teaching (2).  Works would have their place, not as merit toward \nsalvation, but as evidence of true faith. \n\nRegards,\n\n---\nDave Weaver               | \"He is no fool who gives what he cannot keep to\nweaver@chdasic.sps.mot.com|  gain what he cannot lose.\" - Jim Elliot (1949)\n\n[There are of course a number of other possibilities.  The Reformers\nbelieved\n\n  salvation --> faith --> works\n\nSome of us suspect that the three things are tied up together in such a way\nthat no diagram of this form can do it justice.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9283, "properties": {"category": "talk.politics.guns", "text": "From: jrutledg@cs.ulowell.edu (John Lawrence Rutledge)\nSubject: Re: Some more about gun control...\nOrganization: Interactive Media Group - University of Massachusetts at Lowell\nLines: 146\n\nIn article <1993Apr16.010235.14225@mtu.edu>, cescript@mtu.edu (Charles Scripter) writes:\n-> > This mention of a well regulated militia is what confuses me.  According\n-> > to the Federalist Paper's, a well regulated militia has a well defined \n-> > structure and follows nationally uniform regulations.\n-> \n-> Perhaps you should actually READ the Federalist Papers!!\n\nPerhaps you should, reread Federal 29 which deals exclusively with the\n\"well regulated malitia.\"  Here is what is says about its character:\n\n\t To oblige the great body of the yeomanry, and of the other classes\n\t of the citizens, to be under arms for the purpose of going through\n\t military exercises and evolutions, as often as might be necessary to\n\t acquire the degree of perfection which would entitle them to the\n\t character of a well-regulated militia, \n\nIt also talks about the \"well regulated militia\" having a nationally\nuniform in structure and disipline.  \n\nI will note you did quote the end of this particular paragraph which states:\n\n    \tLittle more can reasonably be aimed at, with\n\trespect to the people at large, than to have them properly armed\n\tand equipped; and in order to see that this be not neglected, it\n\twill be necessary to assemble them once or twice in the course of\n\ta year.\n\nBut, do you knew how much organization is required to training a large\ngroup of poeple twice a year.  Just to try to get the same people\nevery year, provide a basic training to new people so they can\nbe integrated into the force, and find a suitable location, it \nrequires a continually standing committee of organizers.  \n\nSince a well regulate militia is nationally uniform in structure and\ndisipline, and meet once or twice a year to train, how can you claim\na \"well regulated militia\" is not well organized.  But I will concide \na \"well organized militia\" is not necessarily a \"well regulated militia.\" \n\nSeveral people have stated that the \"well organized militia\" is\nwhat is defined under 10 USC 311, which states\n\n\tThe militia of the United States consists of all able-bodied \n\tmales at least 17 years of age and, except as provided in \n\tsection 313 of title 32, under 45 years of age who are, \n\tor who have made a declaration of intention to become, \n\tcitizens of the United States and of female citizents of \n\tthe United States who are commissioned officers of the \n\tNational Guard.\n\nThis deos define the militia, but were is the adjective \"well regulated.\"\n10 USC 311 does not define a \"well regualed militia\" in any way, shape, \nor form.  It only defines who can become part of a well regulated militia\nThe Federalist Papers CLEARLY define the \"well regualed militia\" as a\nproper SUBSET of the militia.  In the same paragraph quoted above, it\ntalk above \"disciplining all the militia of the United States\" so they\nfit the \"character of a well-regulated militia.\"  This is what the\nparagraph states about the associated costs:\n\n\tIt would form an annual deduction from the productive labor \n\tof the country, to an amount which, calculating upon the \n\tpresent numbers of the people, would not fall far short \n\tof the whole expense of the civil  establishments of all \n\tthe States. To attempt a thing which would abridge the \n\tmass of labor and industry to so considerable an extent,\n\twould be unwise: and the experiment, if made, could not \n\tsucceed, because it would not long be endured.\n\n\nAnother quote provide by Charles Scripter is:\nJames Madison, Federalist Paper 41 (regarding the \"General Welfare\" clause): \n\t\"Nothing is more natural nor common than first\n\tto use a general phrase, and then to explain and qualify it by a\n\trecital of particulars.\"\n\nSo the phrase \"the right of the people to keep and bear Arms, shall \nnot be infringed\" must either qualify or explain the phrase \"a well \nregulated militia, being necessary to the security of a free state.\"  \nThe definition of \"explain\" as stated in \"The American Hertitage\nDictionary of the Enlish Language\" The New College Edition, 1982 is:\n\t1) To make plain or comprehensible; remove obscruity from;\n\t   elucidate: \"It was the economists who undertook to explain \n\t   this puzzle\"\n\t2) To define; explicate; expound: He explained his plan.\n\t3) To offer reasons for or a cause of; an answer for' justify:\n\t   explain an error\nThe second phrase clearly does not \"explain\" the first, therefore\nthe second phrase must \"qualify\" the first.  The definition given\nfor \"qualify\" is:\n\t1) To describe by enumerating the characteristics or qualities\n\t   of; characterize.\n\t2) To make competent or suitable for office, position, or \n\t   task.\n\t3) To give legal power to; make legally capable.\n\t4) To modify, limit, or restrict, as giving exceptions.\n\t5) To make less harsh or severe; moderate\n\t6) Grammar: To modify the meaning of (a word or phrase)\nSince \"the right of the people to keep and bear Arms, shall not be\ninfringed\" does not describe, modify or make less harsh anything and\nit has nothing to do with grammar or some sort of position or task.\nBy process of elimination it must fall into definition #3.  And since\n#3 deals with legal power, the same thing the Constitution does, it\nmust be the correct definition in this case.  Therefore, \"the right \nof the people to keep and bear Arms\" gives legal power to the \"well \nregualated militia\" and this legal power \"shall not be infringed\".  \n\nI thank you very much Mr Scripter, you have provided me with more \nevidence that the Second Amendment only concerns itseft with the \npeople's right to form well regulate militia, and says very little \nabout the right of an untrained person to \"keep and bear\" a .50 caliber\nmachine gun.  And since I, totally untrained in the use of any firearm\n(something I personly have meant to correct by going to a NRA gun\nsafety course and joining a gun club), cannot legally buy such a machine\ngun, I conclude the courts and democraticly elected congress agree with\nme.\n\n-> So now we know which category Mr. Rutledge is in; He means to destroy\n-> our Liberties and Rights.\n\nI mean \"to destory our Liberties and Rights.\"  Is that why a participate\nin the discussion of exactly what \"our Libertues and Rights\" are?  I \nforce my version of \"our Liberties and Rights\" by begining statements\nof what \"our Liberties and Rights\" with \"All that the Second Amendment \nclearly states to me.\"   Using expressions, such as \"states to me,\" \nclearly mean I intend to force my views on others?  I don't think so.\n\nSo in effort not to force my views and not \"to destory our Liberties and\nRights,\"  I state that nothing I have written, or will write, in\nthe matter of \"Liberties and Rights\" is the final word.  For I am only\none person among many and the final word on \"Liberties and Rights\" cleary\nand irrevocably belongs to the many.\n \n+-----------------------------+-----------------------------------------------+\n|                             |  \"If only it were a modern document, with a   |\n| John Lawrence Rutledge      | smart index and hyper links stretching all    |\n| Research Assistant          | through the world data net.  It was terribly  |\n|                             | frustrating to flip back and forth between    |\n| Interactive Media Group     | the pages and crude flat illustrations that   |\n| Computer Science Department | never even moved.  Nor were there animated    |\n| UMass - Lowell              | arrows or zoom-ins.  It completely lacked a   |\n| 1 University Ave.           | for sound.                                    |\n| Lowell, MA 01854            |  \"Most baffling of all was the problem of new |\n|                             | words...  In normal text you'd only have to   |\n| (508) 934-3568              | touch an unfamiliar word and the definition   |\n| jrutledg@cs.ulowell.edu     | would pop up just below.\"                     |\n|                             |                    from David Brin's \"Earth\"  |\n+-----------------------------+-----------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9284, "properties": {"category": "sci.space", "text": "From: pgf@srl02.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nOrganization: Univ. of Southwestern Louisiana\nLines: 8\n\nThe only ether I see here is the stuff you must\nhave been breathing before you posted...\n\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9285, "properties": {"category": "rec.autos", "text": "From: rkim@eecg.toronto.edu (Ryan Kim)\nSubject: New break pads & exhausts after 96K km (60K mi) on '90 Maxima?\nOrganization: CSRI, University of Toronto\nLines: 43\n\n\nHi, maybe someone can help me here...\nI am looking to buy this 1990 Nissan Maxima GXE for CDN$14000 right now.\nThe car has 96000 km (or about 60000 miles) on it.\nA typical mileage for 1990 cars seem to be about 70000 km (or about 43K mi).\nThe seller just informed me that when he brought the car in for certification\nhe was told that the front break pads and the exhausts had to be replaced\nto meet the legal standards.  (He said he will replace the components before\nselling the car to me.)\n\nBeing copmletely ignorant to the technical stuff on cars, I don't know\nwhat this could mean...\nIs 96K km about the time typical for replacing the above mentioned items?\nOr is this an indication that the car was abused?\nWould other things break down or have to be replaced soon?\nThe seller told me that he used the car on the highway a lot, but,\nI don't know how to verify this...  I've seen the paint chipped away\nin tiny dots in the front edge of the hood, though.\n\nAlthough the Maxima is an excellent car and the car is very clean and\nwell kept, it's currently out of warranty\n(a similarly priced '90 Accord with 70K km will have 2 years or 30K km\nworth of warranty left) and I don't want to worry about paying for\nany repair bills...\nBut, I also need a car for 5 people...  \n\nWhen will the new Maxima come out, by the way?\n\nI would very much appreciate your input in this.\nPlease reply by e-mail (preferred) or post in this newsgroup.\nThanks!\n\nRyan\n\n\n\n========\nRyan Kim\nUniversity of Toronto, EECG, Computer Graphics    rkim@eecg.toronto.edu\n\"Do not weave between traffic cones at road works.\"\n                                    - from the new British Highway Code\n                                           (Toronto Star April 3, 1993)\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9286, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jim@jagubox.gsfc.nasa.gov (Jim Jagielski)\nSubject: Re: Quadra SCSI Problems???\nKeywords: Quadra SCSI APS\nLines: 13\nReply-To: jim@jagubox.gsfc.nasa.gov (Jim Jagielski)\nOrganization: NASA/Goddard Space Flight Center\n\njim@jagubox.gsfc.nasa.gov (Jim Jagielski) writes:\n\n>What the heck is this? Is this true? APS has no info, since they get their\n>Formatter from Apollyonics and they haven't been any help...\n\t       ------------\n\nActually, it's Transoft now, and that's what I meant ;)\n-- \n    Jim Jagielski               |  \"And he's gonna stiff me. So I say,\n    jim@jagubox.gsfc.nasa.gov   |   'Hey! Lama! How about something,\n    NASA/GSFC, Code 734.4       |   you know, for the effort!'\"\n    Greenbelt, MD 20771         |\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9287, "properties": {"category": "rec.sport.baseball", "text": "Subject: Chris Webber chokes\nFrom: krueger@argon.gas.uug.arizona.edu (theodore r krueger)\nOrganization: University of Arizona, Tucson\nLines: 11\n\nAfter the marvelous \"time-out\" call by Chris Webber (which resulted in \na technical foul, since his team had no time-outs left) perhaps Webber \nwill take the place of Bill Buckner as the master of choke.  At least \nthis Red Sox fan hopes so.\n\nTed\n\n--\nWhen Chelsea Clinton's Secret Service agent had to be replaced by an active \nduty soldier she objected on the grounds that her family dislikes the military.\n\t\t----- krueger@gas.uug.arizona.edu -----\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9288, "properties": {"category": "sci.electronics", "text": "From: zstewart@nyx.cs.du.edu (Zhahai Stewart)\nSubject: Re: Police radar....Just how does it work??\nX-Disclaimer: Nyx is a public access Unix system run by the University\n\tof Denver for the Denver community.  The University has neither\n\tcontrol over nor responsibility for the opinions of users.\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 13\n\n>The father of a friend of mine is a police officer in West Virginia.  Not  \n>only is his word as a skilled observer good in court, but his skill as an  \n>observer has been tested to be more accurate than the radar gun in some  \n>cases . . ..  No foolin!  He can guess a car's speed to within 2-3mph just  \n>by watching it blow by - whether he's standing still or moving too!  (Yes,  \n\n1) How was this testing done, and how many times?  (Calibrated speedometer?)\n\n2) It's not the \"some cases\" that worry me, it's the \"other cases\" :-)\n\n(eg: suboptimal viewing conditions; even the best subjective viewer can only\npartial compensate for certain distortions and optical illusions).\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9289, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 19\n\nmathew <mathew@mantis.co.uk> writes:\n\n> bena@dec05.cs.monash.edu.au (Ben Aveling) writes:\n> > Don't forget, you are in the country that wouldn't let the Russians\n> > buy Apple II's because of security concerns.\n\n> That's nothing.  They wouldn't let the British buy Inmos Transputer systems\n> because of security concerns.  And we designed the damn things!\n\nFunny, we had plenty of them in Bulgaria, regardless of the embargo...\n:-) So much for export controls...\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9290, "properties": {"category": "sci.space", "text": "From: rdl1@ukc.ac.uk (R.D.Lorenz)\nSubject: Cold Gas tanks for Sounding Rockets\nOrganization: Computing Lab, University of Kent at Canterbury, UK.\nLines: 14\nNntp-Posting-Host: eagle.ukc.ac.uk\n\n>Does anyone know how to size cold gas roll control thruster tanks\n>for sounding rockets?\n\nWell, first you work out how much cold gas you need, then make the\ntanks big enough.\n\nWorking out how much cold gas is another problem, depending on\nvehicle configuration, flight duration, thruster Isp (which couples\ninto storage pressure, which may be a factor in selecting tank\nwall thickness etc.)\n\nRalph Lorenz\nUnit for Space Sciences\nUniversity of Kent, UK\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9291, "properties": {"category": "alt.atheism", "text": "From: ednclark@kraken.itc.gu.edu.au (Jeffrey Clark)\nSubject: Re: A Little Too Satanic\nNntp-Posting-Host: kraken.itc.gu.edu.au\nOrganization: ITC, Griffith University, Brisbane, Australia\nLines: 33\n\nmangoe@cs.umd.edu (Charley Wingate) writes:\n\n>Nanci Ann Miller writes:\n\n>>My favorite reply to the \"you are being too literal-minded\" complaint is\n>>that if the bible is really inspired by God and if it is really THAT\n>>important to him, then he would make damn certain all the translators and\n>>scribes and people interpreting and copying it were getting it right,\n>>literally.  If not, then why should I put ANY merit at all in something\n>>that has been corrupted over and over and over by man even if it was\n>>originally inspired by God?\n\n>The \"corrupted over and over\" theory is pretty weak.  Comparison of the\n>current hebrew text with old versions and translations shows that the text\n>has in fact changed very little over a space of some two millennia.  This\n>shouldn't be all that suprising; people who believe in a text in this manner\n>are likely to makes some pains to make good copies.\n>-- \nDo you honestly hold to that tripe Charley? For a start there are enough\ncurrent versions of the Bible to make comparisons to show that what you write\nabove is utter garbage. Witness JW, Mormon, Catholic, Anglican, and Greek\nOrthodox Bibles. But to really convince you I'd have to take you to a good\nold library. In our local library we had a 1804 King James which I compared\nto a brand new, hot of God's tongue Good News Bible. Genesis was almost\nunrecognisable, many of the discrepencies between the four gospels had been\nedited from the Good News Bible. In fact the God of Good News was a much\nmore congenial fellow I must say. \n\nIf you like I'll get the 1804 King James out again and actually give you\nsome quotes. At least the headings haven't changed much.\n\nJeff.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9292, "properties": {"category": "alt.atheism", "text": "From: mccullou@snake2.cs.wisc.edu (Mark McCullough)\nSubject: Re: <Political Atheists?\nOrganization: University of Wisconsin, Madison -- Computer Sciences Dept.\nLines: 109\n\n\nMy turn to jump in! :)\n\nIn article <1pi8h5INNq40@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n>(reference line trimmed)\n>\n>livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>\n>[...]\n>\n>>There is a good deal more confusion here.   You started off with the \n>>assertion that there was some \"objective\" morality, and as you admit\n>>here, you finished up with a recursive definition.   Murder is \n>>\"objectively\" immoral, but eactly what is murder and what is not itself\n>>requires an appeal to morality.\n>\n\nI think you mean circular, not recursive, but that is semantics.\nRecursiveness has no problems, it is just horribly inefficient (just ask\nany assembly programmer.)\n\n>Yes.\n>\n>>Now you have switch targets a little, but only a little.   Now you are\n>>asking what is the \"goal\"?   What do you mean by \"goal?\".   Are you\n>>suggesting that there is some \"objective\" \"goal\" out there somewhere,\n>>and we form our morals to achieve it?\n>\n>Well, for example, the goal of \"natural\" morality is the survival and\n>propogation of the species.  Another example of a moral system is\n>presented within the Declaration of Independence, which states that we\n>should be guaranteed life liberty and the pursuit of happiness.  You see,\n>to have a moral system, we must define the purpose of the system.  That is,\n>we shall be moral unto what end?\n\nThe oft-quoted line that says people should be guaranteed life, liberty\nand the pursuit of happiness as inalienable rights, is a complete lie\nand deception, as the very authors of that line were in the process of\nproving.  Liberty is never free, it is always purchased at some cost, \nalmost always at the cost to another.  Whos liberty is more inalienable?\nSimilarly for right of life.  When one person must die if he is to save\nanother, or even a group of others, whos life is more inalienable?  \nThat leads into the classic question of the value of the death penalty, \nespecially for serial killers.  Whos life and liberty is more valuable,\nthe serial killer, or the victim?  According to that beautiful line,\nthose two rights should be completely inviolate, that is, noone should be\nable to remove them.  This _includes_ government.  Admittedly the serial\nkiller has restricted some people's life and/or liberty, but is not his\nown life/liberty inviolate also?  According to the declaration of independence,\nit is.\n\n>>>Murder is certainly a violation of the golden rule.  And, I thought I had\n>>>defined murder as an intentional killing of a non-murderer, against his will.\n\nOooh, I like that.  It means that killing an infant is not murder because\nit cannot be against its will.  Reason, an infant has no will as such.\n\nSimilarly for people who are brain dead (easier to see), in a coma, etc.\n\nAlso, under current law, accidental killing is still murder.  How will you\ninclude that?\n\n>>>And you responded to this by asking whether or not the execution of an\n>>>innocent person under our system of capital punishment was a murder or not.\n>>>I fail to see what this has to do with anything.  I never claimed that our\n>>>system of morality was an objective one.\n>>I thought that was your very first claim.   That there was\n>>some kind of \"objective\" morality, and that an example of that was\n>>that murder is wrong.   If you don't want to claim that any more,\n>>that's fine.\n\nThe only real golden rule in life is, he who has the gold, makes the\nrules.  I.e. Might Makes Right.  That is survival.  Now what is wrong\nwith that?\n\n>Well, murder violates the golen rule, which is certainly a pillar of most\n>every moral system.  However, I am not assuming that our current system\n>and the manner of its implementation are objectively moral.  I think that\n>it is a very good approximation, but we can't be perfect.\n\nIf you mean the golden rule as I stated, yes, almost every system as\nimplemented has used that in reality.  Sorry, I don't deal as much in\nfiction, as I do in reality.  \n\n>>And by the way, you don't seem to understand the difference between\n>>\"arbitrary\" and \"objective\".   If Keith Schneider \"defines\" murder\n>>to be this that and the other, that's arbitrary.   Jon Livesey may\n>>still say \"Well, according to my personal system of morality, all\n>>killing of humans against their will is murder, and wrong, and what\n>>the legal definition of murder may be in the USA, Kuweit, Saudi\n>>Arabia, or the PRC may be matters not a whit to me\".\n\nWELCOME TO OZLAND!!!!!!! :)\n\nWhat is NOT arbitrary?  If you can find some part of society, some societal\nrules, morals, etc. that are not arbitrary, please tell me.  I don't think\nthere are any.\n\n>Well, \"objective\" would assume a system based on clear and fundamental\n>concepts, while \"arbitary\" implies no clear line of reasoning.\n>\n>keith\nSounds like euphemisms to me.  The difference seems to be, that objective\nis some reasoning that I like, while arbitrary is some reasoning that\nI don't like OR don't understand. \n\nM^2\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9293, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: randy@msc.cornell.edu (Randy Ellingson)\nSubject: re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nKeywords: printer\nOrganization: Cornell University\nLines: 43\n\n\nIn article <1993Apr18.041741.6051@CSD-NewsHost.Stanford.EDU> kayman@csd-d-3.Stanford.EDU (Robert Kayman) writes:\n>\n>Hello fellow 'netters.\n>\n>I am asking for your collected wisdom to help me decide which printer I\n>should purchase, the Canon BJ200 (BubbleJet) vs. the HP DeskJet 500.  I\n>thought, rather than trust the salesperson, I would benefit more from\n>relying on those who use these printers daily and use them to their fullest\n>potential.  And, I figure all of you will know their benefits and pitfalls\n>better than any salesperson.\n>\n>Now, I would greatly appreciate any information you could render on the 360\n>dpi of the Canon BubbleJet vs. the Hewlett-Packard DeskJet 500 (300 dpi).\n>Which is faster?  Is there a noticeable print quality difference,\n>particularly in graphics?  Which will handle large documents better (75\n>pages or more) -- any personal experience on either will be appreciated\n>here?  Which works better under Windows 3.1 (any driver problems, etc)?\n>Cost of memory, font packages, toner cartridges, etc?  Basically, your\n>personal experiences with either of these machines is highly desirable,\n>both good and bad.\n>\n>Advance kudos and thanks for all your input.  E-mail or news posting is\n>readily acceptable, but e-mail is encouraged (limits bandwidth).\n>\n>--\n>Sincerely,\n>\n>Robert Kayman\t----\tkayman@cs.stanford.edu  -or-  cpa@cs.stanford.edu\n>\n>\"In theory, theory and practice are the same.  In practice, they are not.\"\n>\"You mean you want the revised revision of the original revised revision\n> revised?!?!\"\n\n\nSorry for the followup, but I couldn'y get email through on your addresses.\nI, too, am trying to decide between these two printers, and I would like to\nhear what users of these printers have to say about the questions above.\n\nThank you.\n\nRandy\t\trandy@msc.cornell.edu\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9294, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: A.D.Bailey@lut.ac.uk\nSubject: Re: Utility for updating Win.ini and system.ini\nReply-To: A.D.Bailey@lut.ac.uk (Adrian D.Bailey)\nOrganization: Loughborough University, UK.\nLines: 11\n\nIn article <1993Apr20.085638.29338@news.uit.no> sp@odin.NoSubdomain.NoDomain (Svein Pedersen) writes:\n>I nead a utility for updating (deleting, adding, changing) *.ini files for Windows. \n>\n>Do I find it on any FTP host?\n>\n>Svein\n>\n\n\nIn Windows 3.0 there is a built-in called sysedit.exe that is just what you\nneed.   Windows 3.1 I don't know......\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9295, "properties": {"category": "misc.forsale", "text": "From: beers@cs.buffalo.edu (Andrew Beers)\nSubject: CPM & C64 Stuff Forsale\nDistribution: usa\nOrganization: State University of New York at Buffalo/Comp Sci\nLines: 23\nNntp-Posting-Host: hadar.cs.buffalo.edu\n\n\n=======\nFORSALE\n=======\n\nCPM Computers:\n1.  Model AMPRO A13001 Rev A, with or without 2 720K 5 1/4\" floppy drives and\n    system disks.  Z80 processor.\n2.  Unknown brand.  w/Miniscribe Model 1006 hard drive.  1/2 height 8\" Shugart\n    model 810 floppy drive.  Keyboard.  System disks.\n\nAlso:\n2 - 8\" Shugart model 801 floppy drives.\n\nAlso:\nCommodore 64 computer, 1541 disk drive.\n\nWill sell in whole or in parts.  Buyer pays shipping.\n\nTo make offers, either email beers@cs.buffalo.edu or call (716) 741-9272, and\nask for Jonathan.\n\nAndrew\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9296, "properties": {"category": "soc.religion.christian", "text": "From: eggertj@moses.atc.ll.mit.edu (Jim Eggert x6127 g41)\nSubject: Re: DID HE REALLY RISE???\nReply-To: eggertj@atc.ll.mit.edu\nOrganization: MIT Lincoln Lab - Group 41\nLines: 13\n\nIn article <Apr.12.03.44.39.1993.18842@athos.rutgers.edu> reedr@cgsvax.claremont.edu writes:\n>   The real problem was\n>   that Christians were pacifist and preached there was only one god.  When the\n>   state operates by a system of divinitation of the emperor -  monotheism \n>   becomes a capital offense.  The Jews were able to get exemption from this,\n>   and were also not evangelistic.\n\nI disagree with your claim that Jews were not evangelistic (except in\nthe narrow sense of the word).  Jewish proselytism was widespread.\nThere are numerous accounts of Jewish proselytism, both in the New\nTestament and in Roman and Greek documents of the day.\n--\n=Jim  eggertj@atc.ll.mit.edu (Jim Eggert)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9297, "properties": {"category": "talk.politics.mideast", "text": "From: jaa12@cunixa.cc.columbia.edu (John A Absood)\nSubject: Re: Hamza Salah, the Humanist\nNntp-Posting-Host: cunixa.cc.columbia.edu\nReply-To: jaa12@cunixa.cc.columbia.edu (John A Absood)\nOrganization: Columbia University\nLines: 13\n\nAre you people sure his posts are being forwarded to his system operator???\nWho is forwarding them???\n\nIs there a similar file being kept on Mr. Omran???\n\nSalam,\n\nJohn Absood\n\n\"Marlow ceased, and sat apart, indistinct and silent, in the pose of a\n meditating Buddha. Nobody moved for a time...The offing was barred by\n a black bank of clouds, and the tranquil waterway leading to the utter-\n most ends of the earth flowed sombre under an overcast sky - seemed to\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9298, "properties": {"category": "talk.politics.guns", "text": "From: arc@cco.caltech.edu (Aaron Ray Clements)\nSubject: Re: The 'pill' for Deer = No Hunting\nOrganization: California Institute of Technology, Pasadena\nLines: 16\nNNTP-Posting-Host: sandman.caltech.edu\n\njrm@gnv.ifas.ufl.edu writes:\n\n>\tNew to this planet ? EVERYTHING is dependent on either public\n>\tor political opinion, usually political. To imagine that\n>\tinalienable 'rights' are somehow wired into the vast cold\n>\tcosmos is purest egotism and a dangerous delusion.\n\n\"We hold these truths to be self-evident, that all men are created\nequal, that they are endowed by their Creator with certain unalienable\nRights, that among these are Life, Liberty, and the pursuit of Happiness.\"\n\n\t\t\t\tDeclaration of Independence\n\t\t\t\t\t4 July 1776\n\naaron\narc@cco.caltech.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9299, "properties": {"category": "misc.forsale", "text": "From: Arthur_Noguerola@vos.stratus.com\nSubject: HEAVY METAL (the magazine) for sale (NOT the MUSIC)\nOrganization: Stratus Computer Inc, Marlboro MA\nLines: 19\nNNTP-Posting-Host: m21.eng.stratus.com\n\n          I  am  cleaning  out  the coffers.  I have a virtually \n          MINT collection of HEAVY METAL magazine.  This is  NOT \n          a  music  mag  but the really neato mag with Giger and \n          Moebius  artwork,  et  al.  Jam  packed  with  amazing \n          sci-fi  and  fantasy artwork by many masters.  All are \n          mint with the exception of the 3 that have split  seam \n          on  the  cover  only but are otherwise perfect, no cut \n          outs or missing pages.  I have Sep, Nov and Dec issues \n          for 1978, ALL issues for 1979, 1980, 1981, 1982,  1983 \n          and  Jan  thru  Sep  for  1984  (72  issues  in  all i \n          believe).  I will not break  them  up.  They  will  be \n          sold  as  a  single  lot.  Send  your  offers  to  me. \n          Shipping not included,  these  are  pretty  heavy.  Of \n          course  if  you are local (Mass, USA) you can come get \n          'em in person. \n\n                      arthur_noguerola@vos.stratus.com \n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9300, "properties": {"category": "sci.space", "text": "From: brody@eos.arc.nasa.gov (Adam R. Brody )\nSubject: Re: Conference on Manned Lunar Exploration. May 7 Crystal City\nOrganization: NASA Ames Research Center\nDistribution: na\nLines: 14\n\nprb@access.digex.com (Pat) writes:\n\n\n>AW&ST  had a brief blurb on a Manned Lunar Exploration confernce\n>May 7th  at Crystal City Virginia, under the auspices of AIAA.\n\n>Does anyone know more about this?  How much, to attend????\n\n>Anyone want to go?\n\n>pat\n\nI got something in the mail from AIAA about it.  Cost is $75.\nSpeakers include John Pike, Hohn Young, and Ian Pryke.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9301, "properties": {"category": "rec.motorcycles", "text": "From: jrwaters@eos.ncsu.edu (JACK ROGERS WATERS)\nSubject: Re: GOT MY BIKE! (was Wanted: Advice on CB900C Purchase)\nKeywords: CB900C, purchase, advice\nOrganization: North Carolina State University, Project Eos\nLines: 33\n\nIn article <1993Apr16.142831.13635@ll.mit.edu> jburnside@ll.mit.edu (jamie w burnside) writes:\n>--\n>In article <1993Apr16.005131.29830@ncsu.edu>, jrwaters@eos.ncsu.edu \n>(JACK ROGERS WATERS) writes:\n>|>>\n>|>>>Being a reletively new reader, I am quite impressed with all the usefull\n>|>>>info available on this newsgroup.  I would ask how to get my own DoD number,\n>|>>>but I'll probably be too busy riding ;-).\n>|>>\n>|>>\tDoes this count?\n>|>\n>|>Yes.  He thought about it.\n>|>>\n>|>>$ cat dod.faq | mailx -s \"HAHAHHA\" jburnside@ll.mit.edu (waiting to press\n>|>>\t\t\t\t\t\t\t return...)\n>\n>Hey, c'mon guys (and gals), I chose my words very carefully and even \n>tried to get my FAQ's straight.  Don't holler BOHICA at me!\n> \nAround here, even mentioning the DoD without a number in your .sig\ncan get you soundly FAQed.  Notice, however, that I myself did\nnot FAQ the careful monk.  He was, after all, waiting to press return.\n\n\nJack Waters II\nDoD#1919\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~ I don't fear the thief in the night.  Its the one that comes in the  ~\n~ afternoon, when I'm still asleep, that I worry about.                ~\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9302, "properties": {"category": "soc.religion.christian", "text": "From: FSSPR@acad3.alaska.edu (Hardcore Alaskan)\nSubject: Looking for videotapes\nLines: 44\n\nI have been looking at some of the recent productions on homosexuality\nand decided that I was interested in videotaped copies of these.  If\nanyone can help me out here, I would very much appreciate it.\n\nHere is what I am looking for:\n\n* - \"The Gay Agenda\" produced by Ty Beeson's group The Report.\n\n* - John Ankerberg's recent series \"Understanding Homosexuality and\nExperiencing Genuine Change.\"\n\n* - James Kennedy's special on homosexuality which aired this week,\nand the portion of the previous week's program which discussed \"The\nGay Agenda.\"\n\nI will not pay money for copies, since this is copyrighted material\nand that would be illegal.  I will pay for return postage.  If\nsomebody can think of something they would desire in trade, please let\nme know and I'll see what I can do.\n\nOh, BTW, I'm watching the March On Washington right now on C-SPAN. \nOther than the fact that I'm generally repulsed by what I'm watching,\nI found one thing of interest.  General David Dinkins just finished\nspeaking, and remarked that the New York City delegation consists of\nabout 200,000 people.  Funny, I don't see 200,000 people out there,\nperiod.  Must've been quite the party scene last night.  Or maybe\ntheir exaggerations were just too much.\n\nSean Patrick Ryan****fsspr@aurora.alaska.edu or sean@freds.cojones.com\n3215 Oregon Dr. #2, Anchorage, AK  99517-2048****907-272-9184****fnord\nAbortion stops a beating heart****Disclaimer:  I didn't inhale, either\nIDITAROD SCOREBOARD 1993 - MEN 16, WOMEN 5****Read alt.flame.sean-ryan\n\n[I don't suppose you'd be interested in hearing about the homosexual\nagenda from homosexual Christians?  These portrayals of the homosexual\nagenda are regarded by some as being somewhat akin to trying to\nunderstand fundamentalist Christianity by looking at the Branch\nDividians.  You might also want to look at some outside evaluations of\nthe groups claiming to change homosexuals.  When our church (the\nPresbyterian Church (USA)) looked into this issue, even the\nconservative members of the committee were concerned about how real\nand long-lasting the changes were.  I'll be interested to get reports\nfrom police and the press about the number of people participating\ntoday.  Presumably we'll have a better idea by tomorrow.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9303, "properties": {"category": "sci.space", "text": "From: jgarland@kean.ucs.mun.ca\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nLines: 37\nOrganization: Memorial University. St.John's Nfld, Canada\n\nIn article <15APR199315012030@kelvin.jpl.nasa.gov>, baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n> In article <1993Apr15.094320.1723@sq.sq.com>, msb@sq.sq.com (Mark Brader) writes...\n>>> > So how close would the comet have gotten to Jupiter on the pass that\n>>> > put it into temporary orbit, and how far is it likely to get from\n>>> > Jupiter before it makes its escape?\n>>> \n>>> The answer to all of these questions is we don't know yet.\n>>> We don't know for sure if the comet is in a temporary orbit.\n>> \n>>I see.  I wasn't so interested in this particular case as in typical\n>>behavior, anyway.  Can these questions be answered for a previous\n>>instance, such as the Gehrels 3 that was mentioned in an earlier posting?\n> \n> Gehrels 3 was in a temporary Jovian orbit for about 3 or 4 years.  I'll\n> get the orbital elements from Dance of the Planets and post them here.\n\nSorry folks, I should have done this, and meant to just after i hit the \nsend key...\n\nOrbital Elements of Comet 1977VII (from Dance files)\n\np(au)          3.424346\ne              0.151899\ni              1.0988\ncap_omega(0) 243.5652\nW(0)         231.1607\nepoch       1977.04110\n\nAlso, perihelions of Gehrels3 were:\n\nApril  1973     83 jupiter radii\nAugust 1970     ~3 jupiter radii\n\nHope this helps...I'm even less of an orbital mechanic than I am an artist.\n\nJohn Garland\njgarland@kean.ucs.mun.ca\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9304, "properties": {"category": "talk.religion.misc", "text": "Subject: CHRISTIAN DEVIL REVEALED!\nFrom: pharvey@quack.kfu.com (Paul Harvey)\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 56\n\n>For a while I was puzzled by the the concept of Adam and Eve coming to\n>know good and evil.  This is how I resolved it.  Within God's universe\n>each action evokes an equal and opposite reaction.  There can be no good\n>without evil as an opposite.  So the issue is not what you do but to whom\n>you give your allegiance.  That is why, even in this sinful state, when we\n>perform an evil act while we are submitted to God He does not place that\n>sinful act to our account (Rom 4:8) In the same vein you can perform all \n>the good deeds in the book, if your life is not under God's control you are \n>still sinning (see Rom 14:23).\n\nNow, take a good look at at, an tell me man, there is no Christian\nDevil? There is, is real, is a virus, a meme, infecting and possessing\nthe good people and keep 'em from becoming human beings with emphasis on\nthe being! Is not a matter of good people an evil people, is all good\npeople see, but some good people vexed of the Christian Devil. An it\ncan't be burn out or lynch out or rape out. Only wise up let I rise up.\nChristian Devil is real man, how else can you explain five hundred years\nof history, even more? Can only be explained by Christians invoke\nChristian Devil.\n\nyou keep on knocking but you can't come in, i got to understand you've\nbeen living in sin, but walk right in and sit right down, i'll keep\non loving you, i'll play the clown, but bend down low, let i tell you\nwhat i know yah\n\ni've been 'buked brothers and i've been stoned, woe, woe, woe, now i'm\nhung by a tree in the the ganging on a few, woe, woe, woe, it doesn't\nmatter who the man is who lives the life he loves, it doesn't matter\nwhat the man does or the honest life he loves, i want somewhere, i want\nsomewhere, hallelujah, hallelujah, somewhere to lay my head, woe is me\n\nonly ska beat in 'eaven man\n\nstiff necked fools, you think you're cool, to deny me for simplicity, yes\nyou have gone, for so long with your love for vanity now, yes you have\ngot the wrong interpretation mixed up with vain imagination, so take jah\nsun and jah moon and jah rain and jah stars, and forever yes erase your\nfantasy, yeah, the lips of the righteous teach many, but fools die for\nwant of wisdom, the rich man's wealth is in his city, the righteous\nwealth is in his holy place, so take jah sun and jah moon and jah rain\nand jah stars, and forever yes erase your fantasy, destruction of the\npoor is in their poverty, destruction of the soul is vanity, yeah, but i\ndon't want to rule ya, i don't want to fool ya, i don't want to school\nya, things you, you might never know about, yes you have got the wrong\ninterpretation mixed up with vain, vain imagination, stiff necked fools,\nyou think you're cool, to deny me for, oh simplicity\n\nlove to see, when yah move in the rhythm, love to see when you're\ndancing from within, it gives great joy to feel such sweet togetherness,\neveryone's doing and they're doing their best, it remind i of the days\nin jericho, when we trodden down jericho wall, these are the days when\nwe'll trod true babylon, gonna trod until babylon fall\n\nthen I saw the angel with the seven seals saying, babylon throne going down\n\nwe weeping and we wailing tonight\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.439+0000", "event": "documents", "entityId": 9305, "properties": {"category": "rec.motorcycles", "text": "From: edw@boi.hp.com (Edward Walsh)\nSubject: Guzzi 850-T tires, plus fairing question\nOrganization: Hewlett-Packard / Boise, Idaho\nX-Newsreader: Tin 1.1 PL4\nLines: 59\n\n\n\n\nI have a question about tires for my Guzzi. It is a '75 850-T. The tires that\nwere on it when I just bought it are old and cracked. I do not have an\nowners manual for it (yet), but the tires listed in the Haynes manual are:\nFront, 3,50 H 18 ; Rear 4.10 H 18, and pressures recommended are 26 front and\n33 rear. Oddly, the pressure for the same tire on the T-3 is listed at 29 psi\ninstead. Anyone know the reason? As I know though, the pressure I should run\nat is that recommended by the manufacturer of the new tires I purchase.\n\nThe real question I have is this. The old tires that are on the bike are for\nthe front, a Metzler Touring Special, 4.10 H 18, and for the rear an Avon\nRoadrunner 4.70 H 18, (120/90) H 18 as marked on each tire. Both are larger\nthan that listed in the Haynes Manual. What does the owners manual recommend,\nand was it common to go up one size for this bike? Also, this will be my first\nmotorcycle with innertubes. Any comments on the various manufacturers inner\ntube qualities?\n\nThe above sizes are inches (except for the additional mark on the current\nrear tire). What is the best metric match? The local BMW dealer thought\n100/90 H 18 on the front and 120/90 H 18 on the back. He also happens to be\nvery good at getting close to matching mail order prices.\n\nI am thinking of going with a Metzler ME33 Laser (possibly Comp K) on the\nfront and ME88 on the back, both in MBS variety if possible (the longer \nlasting belting system). I already use the ME33 on both the Vision and\nFJ for the front, and like it, and I thought that with the shaft drive\nbehavior and torque from the Guzzi that the ME88 might give more predictable\nback end control and sliding behavior than a ME55 might, as well as giving\nmuch better tire milage life. Any comments?\n\nA friend told me he thought that my bike had Boranni rims which are very\ngood, but are relatively soft and have delicate sidewalls. I do not wish to\nmount the tires myself this first time, so aside from warning the shop to be\ncareful, any other comments I should make? I havn't looked at the rim to\ncheck out the make yet, if it is marked. He just told me late yesterday and\nI havn't had a chance to check the rim type.\n\nOn another note. I will remove the ugly (but in good shape....anyone want it?)\nVetter fairing, and I will run without a windscreen for a while, but eventually\nI would like a simple rounded cafe' style quarter fairing for it. It could be\nfork/handlebar mounted. Any suggestions? Is there such a thing as a frame\nmounted quarter fairing of the cafe' style for this bike? How about lower\nbars/clip-ons for it? I would like to restore the bike into a good condition\nrunner with a few modern updates, but while not being historically exactly\naccurate still have it reflect relatively well a representation of the cafe'\nstyle. (Yes I know to be picky, that period really predates this bike....it is\njust that this bike has such potential for _that_ look.)\n\n-----------------------------Edward Walsh----Hewlett-Packard Company-------\n                             edw@boi.hp.com  Disk Memory Division, MS475\n                             (208)323-2174   P.O. Box 15  Boise,Idaho 83707\n                             89FJ1200;82XZ550RJ(Vision);75Guzzi850-T;DoD#98\n\n-----------------------------Edward Walsh----Hewlett-Packard Company-------\n                             edw@boi.hp.com  Disk Memory Division, MS475\n                             (208)396-2174   P.O. Box 15  Boise,Idaho 83707\n                             89FJ1200;82XZ550RJ(Vision);75Guzzi850-T;DoD#98\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9306, "properties": {"category": "alt.atheism", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: who are we to judge, Bobby?\nLines: 31\nOrganization: Walla Walla College\nLines: 31\n\nIn article <kmr4.1572.734847158@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n>From: kmr4@po.CWRU.edu (Keith M. Ryan)\n>Subject: Re: who are we to judge, Bobby?\n>Date: Thu, 15 Apr 1993 04:12:38 GMT\n>\n>(S.N. Mozumder ) writes:\n>>(TAMMY R HEALY) writes:\n>>>I would like to take the liberty to quote from a Christian writer named \n>>>Ellen G. White.  I hope that what she said will help you to edit your \n>>>remarks in this group in the future.\n>>>\n>>>\"Do not set yourself as a standard.  Do not make your opinions, your views \n>>>of duty, your interpretations of scripture, a criterion for others and in \n>>>your heart condemn them if they do not come up to your ideal.\"\n>>>                         Thoughts Fromthe Mount of Blessing p. 124\n>>\n>>Point?\n>\n>\tPoint: you have taken it upon yourself to judge others; when only \n>God is the true judge.\n>\n>---\n>\n>   Only when the Sun starts to orbit the Earth will I accept the Bible. \n>        \n>\nI agree totally with you!  Amen!  You stated it better and in less world \nthan I did.\n\nTammy\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9307, "properties": {"category": "talk.politics.misc", "text": "From: dyoung@ecst.csuchico.edu (Douglas Young)\nSubject: Re: To be, or Not to be [ a Disaster ]\nDistribution: na\nOrganization: California State University, Chico\nLines: 77\nNNTP-Posting-Host: grotus.ecst.csuchico.edu\n\nIn article <philC5Ls4A.MEA@netcom.com> phil@netcom.com (Phil Ronzone) writes:\n>In article <612@vega.iii.com> rhockins@enrico.tmc.edu (Russ) writes:\n>    >In article <philC5Ht85.H48@netcom.com> phil@netcom.com (Phil\n>    >Ronzone) writes:\n>    >\n>    >>Not at all. You are apparently just another member of the\n>    >>Religious Left.\n>    >>\n>    >Not at all. I am not a member of the Religious Left, Right,\n>    >or even Center. In fact I don't consider myself very\n>    >religious at all [ this will probably result in flames now :)\n>    >]. In fact Phil, you should leave religion out of it. It just\n>    >clouds the issue.\n>\n>The religous left worships trees, rivers, the planet, and hates people.\n\nAnd the religious right worships engines, smokestacks, landfills,\nand hates people.\n\nWhat does this name-calling have to do with anything you are claiming about\nthe truth of environmental disaster?  Nothing that I have read in this\nthread, nor heard from anyone I have talked to, would suggest to me that \npeople fit the definition you give of the religious left.  Come off it, Phil.\nA prime motivation for protecting our environment is so that we, \npeople, can continue to live in it healthily.  We just disagree on what\nis necessary to maintaining a healthy environment FOR PEOPLE.\n\n>    >>Show me all these environmental \"disasters\". Most of them\n>    >>aren't. And the natural disasters we have had individually\n>    >>far outweigh the man-made ones.\n\n      [Russ's response deleted to save space]\n\n>I guess you missed the newspaper articles this week about Exxon presenting\n>evidnce (through the ASTM) on the issue of the Valdez incident. Seems\n>that Valdez is mostly recovered, despite the Religious Left's cries of\n      ^^^^^^^^^^^^^^^^^^^^^^^^^^\n>\"hundreds of years\".\n\nWhat!? They have already repaired that old hulk!!!?  WOW!!! ;-)\n\nI suppose you *mean* the Alaskan shores that were devastated by the\nValdez accident?  I haven't seen the articles.  What do they say exactly?\nHas [mostly] all the ocean and shore life returned?  The sands are [mostly]\nas clean as they were before?  The microbial samples are [mostly] back to \na normal balance? The fish and fowl populations have [mostly] returned?  What?\n\n>Then again, the Relgious Left claimed it would take 20 yearsb to put out\n>the Kuwait oil fires...\n[...]\n>                          You should face the facts. Love Canal\n>was not, and is  not, an environmental disaster, nor even a problem.\n>\n>Nor is Times Beach and TMI and acid rain killing trees and ....\n\nNot a problem?  Would you move to Three Mile Island?  I would imagine \nthere is some cheap property available!  \n\nThe naturally occurring catastrophic events [disasters] that destroy \nproperty (ie: hurricanes, tornados, earthquakes) do not usually leave \ntoxic wastes that prevent people from re-building their lives there.  \nThe man-made disasters (oil spills, toxic dumping, radioactive waste \ndispersions) cause death and make an area unliveable far beyond the \ninitial event.\n\n>-- \n>There are actually people that STILL believe Love Canal was some kind of\n>environmental disaster. Weird, eh?\n>\n>These opinions are MINE, and you can't have 'em! (But I'll rent 'em cheap ...)\n\n\n-- \n---)----------                                                ----------(---\n   Douglas Young         (dyoung@ecst.csuchico.edu)  \n   I don't know why, but I seem to expect a serious discussion on the net.\n---)----------                                                ----------(---\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9308, "properties": {"category": "rec.motorcycles", "text": "From: gaijin@ale.Japan.Sun.COM (John Little - Nihon Sun Repair Depot)\nSubject: Re: So, do any police ossifers read this stuff?\nOrganization: Nihon Sun Microsystems - Atsugi Technical Centre - JAPAN.\nLines: 16\nNNTP-Posting-Host: ale.japan.sun.com\nKeywords: Bear\n\n(J. R. Laferriere) writes:\n%\n% I was just wondering if there were any law officers that read this.  I have\n% several questions I would like to ask pertaining to motorcycles and cops.\n% \n\n   What happened to Charlie Lear??  He used to have \"connections\",  didn't\n   he?\n\n   (Hey, this is cyberspace mister...  you wanna 'stateside cop, ya gotta'\n   specify!)\n\n-- \n   ------------------------------------------------------------------------\n  | John Little  - gaijin@Japan.Sun.COM  - Sun Microsystems. Atsugi, Japan | \n   ------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9309, "properties": {"category": "rec.motorcycles", "text": "From: bandy@catnip.berkeley.ca.us (Andrew Scott Beals -- KC6SSS)\nSubject: Re: Your opinion and what it means to me.\nOrganization: The San Jose, California, Home for Perverted Hackers\nLines: 10\n\ninfante@acpub.duke.edu (Andrew  Infante) writes:\n\n>Since the occurance, I've paid many\n>dollars in renumerance, taken the drunk class, \n>and, yes, listened to all the self-righteous\n>assholes like yourself that think your SO above the\n>rest of the world because you've never had your\n>own little DD suaree.\n\n\"The devil made me do it!\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9310, "properties": {"category": "comp.windows.x", "text": "From: gary@ioc.co.uk (Gary Phillips)\nSubject: Re: Xt intrinsics: slow popups\nNntp-Posting-Host: ocelot.ioc.co.uk\nOrganization: Intelligent Office Company Ltd.\nLines: 26\n\nIn article <735525194.9026@minster.york.ac.uk>, cjhs@minster.york.ac.uk writes:\n> Bryan Boreham (bryan@alex.com) wrote:\n> : In article <735259869.13021@minster.york.ac.uk>, cjhs@minster.york.ac.uk writes:\n> : > The application creates window with a button \"Quit\" and \"Press me\".\n> : > The button \"Press me\" pops up a dialog box. The strange feature of\n> : > this program is that it always pops up the dialog box much faster the\n> : > first time. If I try to pop it up a 2nd time (3rd, 4th .... time), \n> : > it is *much* slower.\n> : \n> : The shell is waiting for the window-manager to respond to its\n> : positioning request.  The window-manager is not responding because\n> : it thinks the window is already in the right place.\n> : \n> : Exactly *why* the two components get into this sulk is unclear to\n> : me; all information greatly received.\n\nThe only time I've seen similar behaviour is when an X application forked a child\nwithout setting close on exec on the X display connection file descriptor.\nThe shell waited for a ConfigureNotify event that never arrived because it got\npicked up by the child.  Sometimes the shell correctly got the ConfigureNotify if\nthe timing was 'right'.\n\n-- \nGary Phillips\t\t| Email:  gary@ioc.co.uk\nPhone: +44 81 528 9864\t|\t  phones@cix.compulink.co.uk\nFax:   +44 81 528 9878\t|\t  \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9311, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Treatment of Armenians in Azerbaijan #1\nSummary: Prelude to Events Today \nOrganization: S.D.P.A. Center for Regional Studies\nLines: 223\n\n\nDEPOSITION of VITALY NIKOLAYEVICH DANIELIAN [1]\n\n\n          Born 1972\n          Attended 9th Grade\n          Middle School No. 17\n\n          Resident at Building 4/2, Apartment 25\n          Microdistrict No. 3\n          Sumgait [Azerbaijan]\n\nReally, people in town didn't know what was happening on February 27. I came \nhome from school at 12 o'clock, being excused to leave before the last period \nin order to go to Baku. When we left, everything in town was fine. Life was \nthe same as usual, a few groups of people were discussing things, soccer and \nother things. Then we got on the Sumgait bus bound for Baku for my first \ncousin's birthday, my father, my mother, and I. We spent the day in Baku, and \non the 28th, somewhere around 6:00 p.m., we got on the bus for home, figuring \nthat I'd have enough time to do my homework for the next day.\n\nWhen we were entering town, near the 12-story high-rises, our bus was stopped \nby a very large crowd. The crowd demanded that the Armenians get off the bus. \nThe driver says that there are no Armenians on board; then everyone on the bus\nbegins to shout that there are no Armenians on board. The group comes up to \nthe doors of the bus and has people get out one by one, not checking \npassports, just going by the way people look. We get off the bus, but are not \ntaken for Armenians.\n\nWe set out in the direction of home. At first we were going to go into an old \nbuilding where we knew there'd be a place to hide, but the whole road was \npacked with groups of people, all the way from Block 41 to the 8th \nMicrodistrict. These groups were emptying people's pockets and checking\npassports. People who didn't have passports with them were beaten as well.\nThen we decided to go home instead. Near the 12-story high-rises I saw burning\ncars and a great many people standing around the driveways, yelling. \"Death to\nthe Armenians\" was written on the cars.\n\nWhen we came into the courtyard--we live in an L-shaped building--it was still\nquiet. We went on upstairs, but didn't turn on any lights. We tried to call \nBaku to warn our relatives, who were due to arrive on Wednesday, not to come. \nThen there was a knock at the door. It was our neighbors, who advised us to \ncome down to stay at their place. We went down to their place, and they led us\nto the basement. They live on the first floor and have a basement which you \nenter across the balcony. We sat in the basement while an Armenian woman was \nbeaten--she ran away naked. Our neighbors' daughter said that that's right, \nthat's what the Armenians deserve, because in Stepanakert, allegedly, people \nwere being killed, 11 girls from Agdam had been raped. We didn't stay very \nlong in the basement. We tried to support one another as best we could, \nlooking out the small window with the iron grating. Papa watched and said \nthings now and then. He said that there was a fire near Building 5, probably a\ncar on fire. Then one of the groups approached our driveway and demanded that \nthey be shown the apartments where Armenians lived. The neighbors said that \nthere weren't any Armenians here, and the group set out for the other wing of \nthe building. They appeared from the 5/2 side of the building, where, I later \nfound out, a woman had been murdered. The woman who ran away naked died. Yuri\nAvakian was killed, too.\n\nWhen the crowd left, the neighbors said that it was all over and we could go \nhome. We went back up to our place and again didn't turn on the light. We \nstarted to gather up our things in order to leave Sumgait for a while. We\ntried to call a relative who lived in Sumgait, but there was no answer. We\ndecided she had already left.\n\nWe sat at home. The phone rang, and the caller asked to speak with my\nfather. I called him to the phone. It was Jeykhun Mamedov, from my father's\nwork brigade. He said he was disgusted by what was happening in our\ntown. He asked for our address and promised to get a car and help us get\nout of the city. To be quite honest, Papa didn't want to give him our address,\nbut my mother got on the phone and told him. Some 15 minutes after the\ncall a crowd ran into our entryway. Bursting into the building, they broke\ndown the door and came into the apartment . . .\n\nThey came straight to our apartment, they knew exactly where the Armenians \nwere. They came into our place. We tried to resist, but there was nothing we \ncould do. One of them took my parents' passports and began to read them. He \nread the surname \"Danielian,\" turned the page, read \"Armenian,\" and that alone\nwas enough to doom us. He said that we should be moved quickly out into the \ncourtyard, where they would have done with us. Another, standing next to him, \npushed some of the keys on the piano and said \"your death has tolled.\" They \nhad knives and steel truncheons.\n\nI had a knife in my hand. Unfortunately, I didn't use it. I just knew that if\nI didn't give up the knife things would be much worse. They struck my parents \nand said that I should put the knife on the piano. Then, one of them commanded\nthat we be taken outside. One person was giving orders. When we were taken \noutdoors I went in the middle, and my mother was behind me. Someone started to\npush her so she'd walk faster; I let her go ahead of me, and fell in behind \nher. When he tried to push me, I hit him, and at that moment they began \nbeating my parents; I realized that resistance was completely useless.\n\nWe are taken out into the courtyard, and the neighbors are standing on their \nbalconies to see what will happen next. The crowd surrounds us. At first they \nstrike me, and I'm knocked out; when I come to, they beat me again . . . I \nlose consciousness often . . . I don't see or hear my parents, since I was the\nfirst one hit and was out cold. When I come to I try to pick them up; they are\nlying next to me. The crowd is gone, the only people around are watching from \ntheir balconies. That's it. I try to pick them up, but can't. My left arm is \nbroken. I start toward the drive, wanting to tell the neighbors to call an \nambulance. The bodies of my parents are still warm.\n\nWe were attacked at around 9 o'clock. I regain consciousness at about 11 and \ntry to make it up the stairs home . . . When I knock at the neighbors' door, \nthey push me back and tell me to go away. I go up to the third floor, our \nneighbor puts a damp cloth on my head and says she will call an ambulance; she\nsends her son off for one and takes me to our apartment. I often look out the \nwindow to see if the ambulance has arrived, but I can't see very far as a \nresult of the blows, and it seems that my parents have already been taken \naway. Then I calm down and try to convince myself that they have been taken \naway, and everything will be OK.\n\nBut they were still there. Later, at 8 in the morning as I found out, the\nambulance picked them up, but they were already dead. If they received\nattention on time, it is possible they would still be alive. Later, around 12 \no'clock on the 29th, policemen in civilian clothing come to our house with \nsome \"assistants.\" They call an ambulance, and 20 minutes later it arrives, \nand I am taken to the Sumgait Emergency Hospital. There they stitch the wounds\non my head and rebind my arm. At 3 o'clock I and the other Armenians who are \nin the hospital are sent by ambulance to Baku.\n\nIn my ward at the Sumgait Hospital there were five people, all of them\nArmenians. The hospital was nearly overflowing with Armenians. The only\nAzerbaijanis there were those whose car had flipped over before the events,\nbefore the 27th.\n\nThen I was in the Semashko Hospital in Baku. I was there 38 days. When I was \nreleased, on the 40th day, I found out that my parents were dead. At first \nthey told me that they were in Moscow being treated, but later I found out \nthat they were dead. My father's older brother told me.\n\nMy father's name was Nikolai Artemovich Danielian. He was born in 1938. My \nmother, born in 1937, was Seda Osipovna Danielian. Papa worked at PMK-20, the \nleader of the roofing brigade; mamma was a compressor operator.\n\nThey were also beaten on the head. The coroner's report stated that their\nheads were smashed open and bled profusely.\n\nAt the confrontation I met Jeykhun Mamedov, who had called. As it turned out \nlater, he had been the one who tipped the crowd off. He had called \nspecifically to find out if we were at home and to find out the exact address \nand dispatch the group. He knew the phone number, but didn't know the address.\nBefore the events I had never seen him, but had often spoken with him on the \nphone, when he would ask to speak with my father. I knew him by name. He \ndenies that I was the one who answered the phone, saying that my father \nanswered it. He denies that he called from a public phone, saying that he \ncalled from home, which also isn't true. I heard noise and the sounds of \nautomobiles. As I later found out, earlier he had been convicted, but had \nnever served any time--he had received a suspended sentence. He was about 20 \nyears old. I don't know if he has since confessed or not. I am sure that he \nwas the one who tipped the crowd off. One-hundred percent sure.\n\nMy parents were from Karabagh. Father was from the village of Badar, and was \ntwo years old when his family moved to Baku, where his elder brothers were to\ngo to school. He was a student at the Naval School, but never graduated. He\nwent off to work on the virgin lands [one of the gigantic agricultural \nprojects instituted under Khrushchev.] When he returned he lived in Baku, and \nlater moved to Sumgait, helping with the town's construction. Mamma was from \nthe village of Dagdagan, also from Karabagh. She worked in Sumgait, first in \na bookstore, and later, on a construction site.\n\n\nMy sister is older than I. She lives with her husband here in Karabagh. I\nalways loved my parents. That was why I went on to 9th grade, because it\nwas their dream that I would continue my studies. I finished 8th grade and\nwanted to enter the Baku Nautical School, and after that, the Military\nSchool. But later I changed my mind, or rather, my parents got me to recon-\nsider, saying that it would be better to finish the 10th grade and then join \nthe Naval School. I was planning to be in the Navy almost my whole life\nlong--since childhood I had dreamed of being a sailor. My father wanted it\nmore than anything. He always recollected his youth, telling of the School,\nand he always said that he had made a big mistake in leaving it.\n\nNow I live in Karabagh and never plan to leave here. I will stay at the home \nof my grandfather, of my ancestors, till the end of my days.\n\nWhile in the hospital in Baku I learned the fates of many others who had\nsuffered as well, like Ishkhan [Trdatov]. He managed to hold them off [at\ntheir residence in Microdistrict 3, Building 6/2, Apartment 6.] for a long\ntime, lost his father [Gabriel], and by some miracle managed to survive. I\nalso learned of Uncle Sasha, from Building 5/2, whose daughter was raped\n\n. . . Besides them, Valery--I forgot his last name--was in the hospital too,\nabout a year younger than I, he went to School No. 14. He was riding with\nhis parents in the car. People were throwing rocks at them, he was hit, and\nhis parents brought him to the hospital, and he was in our ward. We even\ncame to be friends. Before that we had just seen each other around town. But\nin the hospital we got to know one another better. I learned of the fates of\nothers, those who had died, or who were befallen by misfortune . . .\n\nToday Suren Harutunian, the First Secretary of the Communist party of Armenia,\nwas shown on television. To be honest I am glad that Armenia agreed to \nrecognize Nagorno Karabagh as part of the Armenian Soviet Socialist Republic.\nI was repelled, no, revolted, to hear the Baku announcer who read the decision\nof the Azerbaijani Supreme Soviet Presidium against Karabagh becoming part of \nArmenia.\n\nAfter the events in Sumgait and those in Baku, the best solution is to give\nKarabagh to Armenia, return it to Armenia, since the people want to live\npeacefully with the Azerbaijanis, but everything has to be right before they\ncan do that.\n\nI arrived in Karabagh on April 11. I felt very bad. I had constant headaches.\nAfter a while my strength returned. My older sister, Suzanna, took me in. I \nthink that justice should prevail; the people are demanding their due.\n\nYou can't take away what is their due. My parents and I often spoke of Nagorno\nKarabagh, often visited here--spent almost all of my vacations here. We had \neven decided that if Karabagh would be made part of Armenia, we would move \nhere for sure. We always said that the Armenian people had suffered much, and \nthat what had been done in 1921--removing Nagorno Karabagh from Armenia--was\nwrong. Sooner or later, mistakes should be corrected. And in order to correct \na mistake, it must not be repeated; and the fate of all Nagorno Karabagh lies \nin the hands of our government.\n\nJune 13,1988\n\nStepanakert \n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9312, "properties": {"category": "rec.sport.hockey", "text": "From: etxonss@ufsa.ericsson.se (Staffan Axelsson)\nSubject: NHL Swedes: Stats, April 5\nOrganization: Ericsson Telecom, Stockholm, Sweden\nLines: 141\nNntp-Posting-Host: uipc104.ericsson.se\n\n\n Scoring stats for the Swedish NHL players, April 5:\n ===================================================\n\n Mats Sundin watch:\n\n   Most points during a season:\n \n    131  Kent Nilsson, Calgary Flames       1980-81  (49+82)\n    110  Mats Naslund, Montreal Canadiens   1985-86  (43+67)\n  * 109  Mats Sundin, Quebec Nordiques      1992-93  (43+66)\n    106  Hakan Loob, Calgary Flames         1987-88  (50+56)\n    104  Kent Nilsson, Calgary Flames       1982-83  (46+58)\n     99  Kent Nilsson, Calgary Flames       1984-85  (37+62)\n\n   Most goals during a season:\n\n     50  Hakan Loob, Calgary Flames         1987-88\n     49  Kent Nilsson, Calgary Flames       1980-81\n     46  Kent Nilsson, Calgary Flames       1982-83\n     45  Tomas Sandstrom, LA Kings          1990-91\n     43  Mats Naslund, Montreal Canadiens   1985-86\n  *  43  Mats Sundin, Quebec Nordiques      1992-93\n\n   Most assists during a season:\n\n     82  Kent Nilsson, Calgary Flames       1980-81\n     67  Mats Naslund, Montreal Canadiens   1985-86\n     66  Borje Salming, Toronto Maple Leafs 1976-77\n  *  66  Mats Sundin, Quebec Nordiques      1992-93\n     62  Kent Nilsson, Calgary Flames       1984-85\n     61  Borje Salming, Toronto Maple Leafs 1977-78\n     61  Thomas Steen, Winnipeg Jets        1988-89\n\n Ulf Samuelsson watch:\n\n   Most penalty minutes during a season:\n\n  *  243  Ulf Samuelsson, Pittsburgh Penguins   1992-93   (through 3/25)\n     211  Ulf Samuelsson, Pittsburgh Penguins   1990-91\n     206  Ulf Samuelsson, Pittsburgh Penguins   1991-92\n     184  Kjell Samuelsson, Philadelphia Flyers 1988-89\n     181  Ulf Samuelsson, Hartford Whalers      1988-89\n     174  Ulf Samuelsson, Hartford Whalers      1985-86\n     170  Borje Salming, Toronto Maple Leafs    1980-81\n \n-------------------------------------------------------------------------------\n\nRL Rk Name             Team J# Ps Ht   Wt  Born      G  A  Pts  PL  Comment\n-- -- ---------------- ---- -- -- ---  --- --------  -- -- ---  --  -------\n    1 Mats Sundin       QUE 13 C  6-2  189  2/13/71  43 66 109   7  \n    2 Ulf Dahlen        MIN 22 RW 6-2  195  1/12/67  33 38  71   5    \n    3 Thomas Steen      WIN 25 C  5-10 195  6/ 8/60  21 43  64   5\n    4 Johan Garpenlov   SJS 10 LW 5-11 185  3/21/68  21 40  61   5 \n    5 Fredrik Olausson  WIN  4 D  6-2  200 10/ 5/66  13 38  51   4\n    6 Tomas Sandstrom   LAK  7 LW 6-2  207  9/ 4/64  22 24  46   2\n    7 Per-Erik Eklund   PHI  9 LW 5-10 175  3/22/63   8 34  42      Injured\n    8 Calle Johansson   WAS  6 D  5-11 205  2/14/67   6 35  41   1\n    9 Nicklas Lidstrom  DET  5 D  6-2  180  4/28/70   7 33  40   2 \n   10 Tommy Sjodin      MIN 33 D  5-11 190  8/13/65   7 29  36     \n   11 Ulf Samuelsson    PIT  5 D  6-1  195  3/26/64   2 24  26   1 \n   12 Mikael Andersson  TBL 34 LW 5-11 185  5/10/66  13 11  24   1 \n   13 Michael Nylander  HFD 36 LW 5-11 176 10/ 3/72   5 16  21   2 \n   14 Roger Johansson   CGY 34 D  6-1  185  4/ 7/67   4 15  19   1\n   15 Jan Erixon        NYR 20 LW 6-0  196  7/ 8/62   5 10  15      \n   16 Peter Andersson   NYR 25 D  6-0  187  8/29/65   4  7  11   1 \n   17 Kjell Samuelsson  PIT 28 D  6-6  235 10/18/58   3  6   9   2 \n   18 Tommy Albelin     NJD  6 D  6-1  190  5/21/64   1  5   6      \n   19 Per Djoos         NYR 44 D  5-11 176  5/11/68   1  1   2      Binghampton?\n   20 Niclas Andersson  QUE 46 LW 5-8  169  5/20/71   0  1   1      Halifax\n   21 Thomas Forslund   CGY 27 LW 6-0  185 11/24/68   0  1   1      Salt Lake\n   22 Patrik Carnback   MON 20 LW 6-0  189  2/ 1/68   0  0   0      Injured\n   23 Patrik Kjellberg  MON 27 LW 6-2  196  6/17/69   0  0   0      Fredericton\n\n-------------------------------------------------------------------------------\nRL=Rank Last week, Rk=Rank, J#=Jersey Number, Ps=Position, Born (mm/dd/yy)\nG=Goals, A=Assists, Pts=Points, PL=Points scored since Last posted list\n===============================================================================\n\n Goalie stats:\n\n Name             Team J# Ps Ht   Wt  Born     \n ---------------- ---- -- -- ---  --- --------\n Tommy Soderstrom  PHI 30 G  5-9  163  7/17/69\n\n                                       / - - - - -  T  O  T  A  L  - - - - - \\\n\n mm/dd   vs   res  r  w/l/t  sh - sv   GP   MP  GA  GAA    SOG   SV  SV%   SO A\n -----  ---- ----  -  -----  --   --   --   --  --  ---    ---  ---  ---   -- --\n 12/17   PIT  4-5  L  0-1-0  27 - 22    1   62   5  4.84    27   22  0.815\n 12/19   CHI  3-1  W  1-1-0  28 - 27    2  122   6  2.95    55   49  0.891\n 12/20  @TBL  1-4  L  1-2-0  31 - 27    3  182  10  3.30    86   76  0.884\n 12/23   PIT  0-4  L  1-3-0  26 - 22    4  242  14  3.47   112   98  0.875\n 12/26  @WAS  5-5  T  1-3-1  41 - 36    5  307  19  3.71   153  134  0.876\n 12/29  @LAK 10-2  W  2-3-1  43 - 41    6  367  21  3.43   196  175  0.893\n 12/30  @SJS  6-2  W  3-3-1  35 - 33    7  427  23  3.23   231  208  0.900\n  1/ 2  @CGY  3-7  L  3-4-1  32 - 26    8  486  29  3.58   263  234  0.890\n  1/ 3  @EDM  2-2  T  3-4-2  33 - 31    9  551  31  3.38   296  265  0.895\n  1/ 7   WAS  8-2  W  4-4-2  33 - 31   10  611  33  3.24   329  296  0.900\n  1/ 9   NYR  4-3  W  5-4-2  26 - 23   11  671  36  3.22   355  319  0.899\n  1/10   EDM  4-0  W  6-4-2  29 - 29   12  731  36  2.95   384  348  0.906  1\n  1/14   CGY  4-4  T  6-4-3  27 - 23   13  796  40  3.02   411  371  0.903\n  1/16  @BOS  5-4  W  7-4-3  37 - 33   14  856  44  3.08   448  404  0.902\n  1/17   DET  4-7  L  7-5-3  36 - 29   15  916  51  3.34   484  433  0.895\n  1/21   BOS  4-5  L  7-6-3  32 - 27   16  976  56  3.44   516  460  0.891\n  1/23  @NYI  4-8  L  7-7-3  31 - 23   17 1036  64  3.71   547  483  0.883    1\n  1/24   HFD  5-4  W  8-7-3  25 - 21   18 1098  68  3.72   572  504  0.881\n  1/30  @PIT  2-4  L  8-8-3  35 - 32   19 1157  71  3.68   607  536  0.883\n  2/ 3  @NYR  2-2  T  8-8-4  38 - 36   20 1222  73  3.58   645  572  0.887\n  2/ 9   OTT  8-1  W  9-8-4  28 - 27   21 1282  74  3.46   673  599  0.890\n  2/11   MTL  0-0  T  9-8-5  23 - 23   22 1347  74  3.30   696  622  0.894  2\n  2/13  @NJD  4-6  L  9-9-5  32 - 26   23 1407  80  3.41   728  648  0.890\n  2/14   NJD  2-5  L  9-10-5 26 - 21   24 1467  85  3.48   754  669  0.887\n  2/16  @CGY  4-4  T  9-10-6 29 - 29   25 1512  85  3.37   783  698  0.891\n  2/18  @VAN  3-2  W 10-10-6 30 - 28   26 1572  87  3.32   813  726  0.893\n  2/20  @MIN  2-5  L 10-11-6 33 - 28   27 1632  92  3.38   846  754  0.891\n  2/22   DET  5-5  - 10-11-6 15 - 12   28 1653  95  3.45   861  766  0.890\n  3/ 2   PIT  5-4  W 11-11-6 22 - 21   29 1689  96  3.41   883  787  0.891\n  3/ 5  @WAS  3-0  W 12-11-6 36 - 36   30 1749  96  3.29   919  823  0.896  3\n  3/ 7  @NJD  4-7  L 12-12-6 41 - 35   31 1808 102  3.38   960  858  0.894\n  3/ 9  @NYI  2-4  L 12-13-6 24 - 21   32 1867 105  3.37   984  879  0.893\n  3/11   WAS  6-4  W 13-13-6 28 - 24   33 1927 109  3.39  1012  903  0.892\n  3/16   MIN  4-3  W 14-13-6 34 - 31   34 1987 112  3.38  1046  934  0.893\n  3/20  @PIT  3-9  L 14-14-6 27 - 20   35 2027 119  3.52  1073  954  0.889\n  3/21   NJD  2-3  L 14-15-6 27 - 24   36 2086 122  3.51  1100  978  0.889\n  3/24  @NYR  5-4  W 15-15-6 45 - 41   37 2146 126  3.52  1145 1019  0.890    2\n  3/27  @QUE  3-8  L 15-16-6 25 - 19   38 2186 132  3.62  1170 1038  0.887\n  4/ 1   LAK  1-3  L 15-17-6 26 - 23   39 2246 135  3.61  1196 1061  0.887\n  4/ 4   TOR  4-0  W 16-17-6 26 - 26   40 2306 135  3.51  1222 1087  0.890  4\n \n-------------------------------------------------------------------------------\nres=result, sh=shots, sv=saves\nGP=Games Played, MP=Minutes Played, GA=Goals Against, GAA=Goals Against Average\nSOG=Shots On Goal, SV=SaVes, SV%=SaVing Percentage, SO=ShutOuts, A=Assists\n-------------------------------------------------------------------------------\n\nStaffan\n--\n ((\\\\  //| Staffan Axelsson            \n  \\\\  //|| etxonss@ufsa.ericsson.se    \n\\\\_))//-|| r.s.h. contact for Swedish hockey  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9313, "properties": {"category": "sci.electronics", "text": "From: craw@yoyo.cc.monash.edu.au (Sebastian Filzek)\nSubject: IR detector 'cards'???\nSummary: IR detector cards..???\nKeywords: IR card \nOrganization: Monash University, Melb., Australia.\nLines: 23\n\nHi people..\n\nOK heres my problem.... \nI keep hearing about these little credit card type of things which\ndetect IR light....\n\nI believe that you have to 'charge them up' under normal (visible) light\nand then if they are exposed to IR light they glow or something like\nthat...\n\nI think that they are avaliable in the states and even in England, but\nalas I live in Australia.  Could someone please inform me if I can get\nthese things over here, and if so where??? and how much???\n\nAlso are they really commonly avaliable in the states, and if so, then\nhow much are they and who sells them (maybe if I cant get one here, I'll\nwrite to one of the companies over seas..)\n\nAnyway.... Thanks in advance...\n\nSab\n93\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9314, "properties": {"category": "sci.crypt", "text": "From: Borut.B.Lavrencic@ijs.si\nSubject: Re: The [secret] source of that announcement\nReply-To: Borut.B.Lavrencic@ijs.si\nDistribution: inet\nOrganization: J. Stefan Institute, Lj, Slovenia\nLines: 61\n\nIn article <gradyC5unp0.D21@netcom.com>, \ngrady@netcom.com (1016/2EF221) writes:\n> Andrew Molitor (amolitor@nmsu.edu) wrote:\n> : \n> : \t1) Monitor my phonecalls.\n> : \t2) Monitor usenet.\n> : \t3) Provide only cryptosystems they can easily crack.\n> : \t4) etc etc.\n> : \n> : \tThis is not to say that they *don't*, they might. But you don't\n> : know that they do, and you have no evidence that they do, for almost\n> : all values of you. It follows, therefore, that for most values of 'you',\n> : your claims about the NSA border on paranoia.\n> : \n> : \tAndrew\n\n.....\n.....\n.....\n\n> \n> Or maybe the Germans should have been a little more 'paranoid' about\n> their Engima with respect to Turing and the British.\n> \n> How about the cracking of the Zimmerman telegram?  Would a little\n> more paranoia have helped the Germans here?\n> \n> Maybe the NSA should have been a little more 'paranoid' about\n> Emma Woikin, or Joseph Sidney Petersen, Jr., or  ...\n> \n> Maybe you want to talk about Macmillan publishers cooperation\n> with the CIA and NSA to suppress Yardley's Japanese Diplomatic\n> Secrets or even Kahn's The Codebreakers.. paranoia, right?\n> \n> The most popular cipher systems in captured soviet spies was\n> the one-time pad, even with the necessity of keeping incriminating\n> evidence about, is known to be the only proven unbreakable system.\n> Soviet paranoia, right?\n> \n> And what do you think the NSA does with its Wullenwebers?  And \n> huge Rhombics pointed embassy row?  And their sites near\n> satellite uplink and downlink sites?  Duh.\n> \n.....  \n> -- \n> grady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n>\n\nOne case of Slovenian paranoia.\n\nOnce upon a time a tried to walk over the (famous) Marathon field, not far away \nfrom Athens. I could not do that mostly becouse the field is now a huge \nantenna farm. Probably a Greek COMINT installation, would you agree? \n-- \nBorut B. Lavrencic, D.Sc.     | X.400   :C=si;A=mail;P=ac;O=ijs;S=lavrencic\nJ. Stefan Institute           | Internet:Borut.B.Lavrencic@ijs.si\nUniversity of Ljubljana,      | Phone   :+ 386 1 159 199\nSI-61111 Ljubljana, Slovenia  |\t    PGP Public Key available on request\n\nDOLGO SMOIS KALIS OVRAZ NIKEI NJIHK OCNOO DKRIL IVSEB IPIKA\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9315, "properties": {"category": "talk.politics.misc", "text": "Organization: City University of New York\nFrom: <F36SI@CUNYVM.BITNET>\nSubject: Re: Karadzic on Bosnia peace plan\nLines: 2\n\n      What does anyone think that Judge Wopner would do if Karadzic was\n      on trial before him?  (Nevah happen, but just a thought...)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9316, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: kin@isi.com (Kin Cho)\nSubject: Viewsonic 17 experience sought\nOrganization: Integrated Systems, Inc.\nLines: 12\nNNTP-Posting-Host: tycho.isi.com\n\nI'd appreciate if you can email or post you positive\nor negative experience with this monitor, especially\ncompared to to Nanao 550i.\nI'd summarize if I got multiple responses.\n\nThanks.\n\n-- \n-kin\n\nKin Cho (kin@isi.com)\t\tVoice(408) 980-1500 ext. 230\nIntegrated Systems Inc.\t\tFax  (408) 980-0400\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9317, "properties": {"category": "misc.forsale", "text": "From: jf4527@adx.adelphi.edu (Jamie Fitzpatrick)\nSubject: Re: Photogrammetric Camera\nKeywords: photogrammetric Camera\nOrganization: Adelphi University\nLines: 20\n\n\nHello,\n\n      While refurbishing our observatory I came across the above mentioned camera. It was manufactured\nby the Instrument Corporation of Florida  ~ 1970. Now for my questions:\n\n1) Does anyone have any knowledge of this equipement ?\n2) Does anyone know of the company (phone numbers ?) ?\n3) Are there any others out there...I need some parts.\n\n\nAny responces are greatly appreciated.\n\n                                                 take care,\n                                                         jamie\n\n                                                         jf4527@adx.adelphi.edu\n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9318, "properties": {"category": "talk.politics.misc", "text": "From: jmkerrig@vela.acs.oakland.edu (KERRIGAN JOHN M)\nSubject: Re: Top Ten Ways Slick Willie Could Improve His Standing With Americans\nOrganization: Oakland University, Rochester MI.\nLines: 40\nNNTP-Posting-Host: vela.acs.oakland.edu\n\nIn article <C5KMz5.Hy4@newsserver.technet.sg> ipser@solomon.technet.sg (Ed Ipser) writes:\n:>Top Ten Ways Slick Willie Could Improve His Standing With Americans\n:>\n:>10. Institute a national sales tax to pay for the socialization of\n:>    America's health care resources.\n:>\n:>9.  Declare war on Serbia. Reenact the draft.\n:>\n:>8.  Stimulate the economy with massive income transfers to Democtratic\n:>    constituencies.\n:>\n:>7.  Appoint an unrepetent socialist like Mario Cuomo to the Suprmeme Court.\n:>\n:>6.  Focus like a laser beam on gays in the military.\n:>\n:>5.  Put Hillary in charge of the Ministry of Truth and move Stephanopoulos\n:>    over to socialzed health care.\n:>\n:>4.  Balance the budget through confiscatory taxation.\n:>\n:>3.  Remind everyone, again, how despite the Democrats holding the\n:>    Presidency, the majority of seats in the House, and in the Senate,\n:>    the Republicans have still managed to block his tax-and-spend programs.\n:>\n:>2.  Go back to England and get a refresher course in European Socialism.\n:>\n\n  ***SNIP***\n\nAnd the number one way Slick Willie could improve his standing with\nAmericans...\n\n(Drum roll Anton)\n\n1.  Get himself an appointment with Dr. Kervorkian - and keep it!\n\n-- \n-------------------------------------------------------------------------------\n**        John Kerrigan        a.k.a.  jmkerrig@vela.acs.oakland.edu        **\n-------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9319, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lhenso@unf6.cis.unf.edu (Larry Henson)\nSubject: IBM link to Imagewriter -- HELP!! \nOrganization: University of North Florida, Jacksonville\nLines: 10\n\n\tHello, I am trying to hook an Apple Imagewriter to my IBM Clone.\nI seem to have a problem configuring my lpt port to accept this.  How can\nyou adjust baud, parity, etc. to fit the system?  I tried MODE, but it did\nnot work.  If anyone can help, post of e-mail.  Thanx.\n\n-- \n\t\"Abort, Retry, FORMAT?!?!?\n\tDoctor, give me the chainsaw...\n\tTrust me! I'm a scientist!\"\n\t\t\t\tLarry Henson\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9320, "properties": {"category": "sci.space", "text": "From: wallacen@CS.ColoState.EDU (nathan wallace)\nSubject: ORION test film\nReply-To: wallacen@CS.ColoState.EDU\nNntp-Posting-Host: sor.cs.colostate.edu\nOrganization: Colorado State University -=- Computer Science Dept.\nLines: 11\n\nIs the film from the \"putt-putt\" test vehicle which used conventional\nexplosives as a proof-of-concept test, or another one?\n\n---\nC/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/\nC/    Nathan F. Wallace                   C/C/           \"Reality Is\"         C/\nC/    e-mail: wallacen@cs.colostate.edu   C/C/    ancient Alphaean proverb    C/\nC/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/C/\n \n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9321, "properties": {"category": "soc.religion.christian", "text": "From: caralv@caralv.auto-trol.com (Carol Alvin)\nSubject: Re: The arrogance of Christians\nLines: 54\n\n> I've just read Carol's response and I just had to get into this.  I've\n> got some verses which are not subject to interpretation because they say\n                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> what they say.  \n  ^^^^^^^^^^^^^\nJoe, just 'cause you say they aren't subject to interpretation doesn't\nnecesarily make it so.  That's *your* *interpretation* of these texts.\n\n> They are 2 Peter 1:20-21, 2 Timothy 3:16-17, and\n> Galatians 1:11-12.  \n\n2 Peter 1:20-21\nBut know this first of all, that no prophecy of Scripture is a matter \nof one's own interpretation, for no prophecy was ever made by an act of\nhuman will, but men moved by the Holy Spirit spoke from God.\n\nThe study notes in my Bible offer three possible meanings for verse 20.\nApparantly it's not as clear to Charles Ryrie as it is to you.\n\n2 Timothy 3:16-17\nAll Scripture is inspired by God and profitable for teaching, for\nreproof, for correction, for training in righteousness; that the man of\nGod may be adequate, equipped for every good work.\n\nGalations 1:11-12\nFor I would have you know, brethren, that the gospel which was preached\nby me is not according to man.  For I neither received it from man, \nnor was I taught it, but I receieved it through a revelation of Jesus\nChrist.\n\nWhen I read these passages, it was not immediately clear to me what\nevery phrase meant.  I had stop and think about the possible\nconnotations of words, what the intent of the author may have been,\nwonder if the translator used the correct English word to convey the \nsame meaning: I had to interpret.  If you want to believe that your \nare not interpreting Scripture as you read, there's probably nothing \nI can say to change your mind.  But I think it's naive to think that \nour culture, experiences, education, do not affect everything we read.\n\n> Also, based on the fact that Jesus is the Word incarnate and he judges\n> people if they follow him (see Acts 17:29-31 and John 5:21-27) and that\n> those who reject Jesus' teachings are judged by the very words he spoke\n> (see John 12:47-50), then Jesus' words are true and do not need\n> interpretation, nor would it be just of God to judge based on his word\n> if it had to be interpreted.\n\nIn college, I took an entire course in Biblical interpretation.  Go to\nany Christian bookstore, there are scores of books on interpreting and\nunderstanding Scripture.  If interpretation is unnecessary, there are \nan awful lot of misguided Christians out there wasting a lot of time \nand energy on it.\n\nCarol Alvin\ncaralv@auto-trol.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9322, "properties": {"category": "sci.crypt", "text": "From: tuinstra@signal.ece.clarkson.edu.soe (Dwight Tuinstra)\nSubject: political point of attack: Clipper infrastructure\nReply-To: tuinstra@signal.ece.clarkson.edu.soe\nOrganization: Sun Microsystems, Inc.\nLines: 37\nNntp-Posting-Host: signal.ece.clarkson.edu\n\nMy earlier argument that \"Clipper will encourage state and local cops \nto commit criminal acts\" is largely moot, now that we've learned that \nthe FBI will perform the actual tap.  [It will encourage the *FBI* to\ncommit (even more) criminal acts, but that's not the point here.]\n\nBut this gives another avenue of attack on the Clipper proposal.  When\nthe EFF/ACLU/CPSR FOIA requests are made, they should ask for details\non the bureaucratic and equipment infrastructure that is proposed (or \neven already budgeted) for the FBI to service tapping requests -- for now\nand the projected future. \n\nFrom these figures, estimate the number of Clipper-tap requests the FBI\nis expecting.  Publish this figure.  Compare it on a per-capita basis\nwith the amount of tapping now known or suspected.\n\nAlso estimate how expensive it would be for the FBI to install more\nClipper-tapping stations, and how rapidly they could be built and\ninstalled ... ie, get the \"plus or minus\" epsilon for the near future.\n\nMight be a mite disturbing for J. Q. Public to know these things.\n\nAnd despite all the technical details [BTW, thanks to those who've been\nproviding them!], we still don't know \n\n1) how the tapping requests will be transmitted and authenticated (though\n   it isn't too hard to guess a good scheme).\n\n2) how the results will be securely transmitted (Fed Ex the audio tapes?)\n\n3) how privacy will be re-established when an investigation is complete.\n\n+========================================================================+\n|  dwight tuinstra             best:  tuinstra@sandman.ece.clarkson.edu  |\n|                         tolerable:  tuinstrd@craft.camp.clarkson.edu   |\n|                                                                        |\n|        \"Homo sapiens: planetary cancer??  ...  News at six\"            |\n+========================================================================+\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9323, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Moonbase race, NASA resources, why?\nOrganization: Express Access Online Communications USA\nLines: 9\nNNTP-Posting-Host: access.digex.net\n\n\nHenry,\n\ndidn't the Little Joe  and Big Joe  get built in under a year?\n6 months for little Joe,  and 12 Months for Big Joe?\n\ni thought i saw something on that for  a old mercury film.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9324, "properties": {"category": "soc.religion.christian", "text": "From: conditt@tsd.arlut.utexas.edu (Paul Conditt)\nSubject: Latest on Branch Davidians\nOrganization: Applied Research Laboratories, University of Texas at Austin\nLines: 28\n\nMost of you will have probably seen the news by the time you read this,\nbut the Branch Davidian compound is no more.  This morning about 6:00,\nthe feds punched holes in the compound walls by using a tank.  They \nthen started using non-lethal tear gas.  Shortly after noon, 2 cult\nmembers were seen setting fire to the compound.  So far, about 20-30\npeople have been seen outside the compound.  The fate of the other 60 or\n70 people is unknown, neither is the fate of the 17 children that were\ninside.  The compound did burn to the ground.\n\nKoresh, who at times has claimed to be the Messiah, but then backed off\nand only claimed to be a prophet, had promised several times to come\nout peacefully if his demands were met.  First, he demanded that his\nmessage be broadcast on the radio, which it was, but he didn't come out.\nHe claimed to be waiting for a message from God.  Finally, he said that\nGod told him that he needed to decipher the mystery of the 7 seals in\nRevelation, and when he was finished, he'd come out.  He finished the\nfirst one, but didn't do any more work that anyone knows of since then.\nThe federal agents did warn him that if they didn't come out, they \nwould be subjected to tear gas.\n\nI think it's really sad that so many people put their faith in a mere\nman, even if he did claim to be the son of God, and/or a prophet.  I\nthink it underscores the importance of putting you faith only in\nthings that are eternal and knowing for yourself what the Scriptures\nsay and what they mean, instead of relying on others to do it for you,\neven if those others are learned and mean well.\n\nPaul Conditt\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9325, "properties": {"category": "misc.forsale", "text": "From: tsa@cellar.org (The Silent Assassin)\nSubject: For Sale:  Misc IBM stuff\nOrganization: The Cellar BBS and public access system\nLines: 10\n\n5.25\" Internal Low density disk drive.\n\nMonochrome monitor\n\n8088 motherboard, built in parallel and serial ports, built in mono and\ncolor output, 7Mhz.\n\nLibertarian, atheist, semi-anarchal Techno-Rat.\n\nI define myself--tsa@cellar.org\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.440+0000", "event": "documents", "entityId": 9326, "properties": {"category": "talk.politics.mideast", "text": "Subject: Re: Enough Freeman Bashing!  Was: no-Free man propaganda machine: Freemanwith blood greetings from Israel\nFrom: mafifi@eis.calstate.edu (Marc A Afifi)\nOrganization: Calif State Univ/Electronic Information Services\nLines: 16\n\npgf5@cunixb.cc.columbia.edu (Peter Garfiel Freeman) writes:\n\n\nPeter,\n\nI believe this is your most succinct post to date. Since you have nothing\nto say, you say nothing! It's brilliant. Did you think of this all by\nyourself?\n\n-marc \n--\n______________________________________________________________________________\nSome people are so narrow minded they can see through a crack in a door with\nboth eyes. \nMy opinions should be yours. My employer has no opinions.\n______________________________________________________________________________\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9327, "properties": {"category": "misc.forsale", "text": "Subject: Diamond Stealth 24 24bit SVGA for sale\nFrom: bi927@cleveland.Freenet.Edu (Yi Jin)\nReply-To: bi927@cleveland.Freenet.Edu (Yi Jin)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nNNTP-Posting-Host: hela.ins.cwru.edu\nLines: 10\n\n\nBrand new, still shrink wraped Stealth 24 for sale $150 plus shipping \nand COD. \nSpecifications:\nBased on S3 801/805 32bit coporcessor, 1024x768x256 72Hz Ni, 800x600x64K NI,\n640x480x16million NI, system requires 386 or 486 based ISA or VESA VL-BUS,\nwith fast TurboWindows drivers for 3.1 and other drivers for other popular\nsoftwares like WP, Microsoft Word,Lotus,AutoCad.\n\nYJ\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9328, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: msprague@superior.mcwbst311b (Mike Sprague)\nSubject: Re: Soundblaster IRQ and Port settings\nOrganization: Xerox\nLines: 20\n\n> My solution was to switch the interrupt to IRQ 5, which is\n> unreserved in contemporary computers (using IRQ 5 for the\n> drives went out with the XT architechture ... )\n\nNot completly true.  For AT class and later machines, IRQ5 is\nreserved for LPT2.  Since it's rare to have a second parallel\nport in a PC, it's usually a good safe choice if you need an\ninterrupt.\n\nOn the other hand, we just ran into a problem with that here\nat work on a Gateway computer (4DX-33V).  It has a Modem on COM1,\na Mouse on COM2, and the other serial port was set to COM3 (which\nnormally uses the same interrupt as COM1).  We had a real fight\nwith a board when trying to use IRQ5, and discoverd the problem\nwas that Gateway had set it up such that COM3 used IRQ5.  As soon\nas we disabled COM3, our problems went away.  Grumble ... after\nseveral days of trying to figure out why the interrupt didn't work.\n\n\t\t\t~ Mike  (sprague.wbst311@xerox.com)\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9329, "properties": {"category": "comp.windows.x", "text": "From: mppa3@syma.sussex.ac.uk (Alan Richardson)\nSubject: Now available: xvertext.4.0\nOrganization: University of Sussex\nLines: 25\n\nNow available: xvertext 4.0 \n--------------\n\nSummary                                  \n-------\nxvertext provides you with four functions to draw strings at any angle in   \nan X window (previous versions were limited to vertical text). Rotation  \nis still achieved using XImages, but the notion of rotating a whole font\nfirst has been dropped.\n\nWhat's new?\n-----------\nI've added a cache which keeps a copy of previously rotated strings - thus\nspeeding up redraws.\n\nWhere can I get it? \n-------------------\ncomp.sources.x (soon...)\nexport.lcs.mit.edu : contrib/xvertext.4.0.shar.Z  (now)\n\n-- \nAlan Richardson,                             * \"You don't have to be *\nSchool of Maths & Physical Sciences,         *  old to be wise\"      *\nUniv. of Sussex, Brighton BN1 9QH, ENGLAND   * ******Judas Priest*****\nUK: mppa3@uk.ac.sussex.syma         elsewhere: mppa3@syma.sussex.ac.uk\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9330, "properties": {"category": "talk.politics.guns", "text": "From: gt6511a@prism.gatech.EDU (COCHRANE,JAMES SHAPLEIGH)\nSubject: Re: Riddle me this...\nOrganization: Georgia Institute of Technology\nLines: 18\n\nOn the subject of CS/CN/tear gas: when I received my initial introduction to\ntear gas, the first thing that came to mind was the location of the exit.  If\nthere had been anything in the way, corners to negotiate, doors to open, or \nany other obstacles to movement, I would have had a difficult time exiting the\nchamber.  And any concentration of tear gas is hazardous to individuals with\nrespiratory problems, and the wearing of soft contact lenses in a tear gas \ncontaminated area is considered a REAL BAD IDEA.  So hoping the BD's would\npeaceably come strolling out the door after being gassed is a bit unrealistic.\nIf they could have found the door, having them staggering out retching wouldn't\nbe too far fetched.  Throw in the factor of 50-51 days of being under siege and\nsubject to psychological warfare, and all bets on functional abilities are off.\nAnybody tried to get Amnesty International to jump in on this one?\n\n-- \n********************************************************************************\nJames S. Cochrane        *  When in danger, or in doubt, run in * This space \ngt6511a@prism.gatech.edu *  circles, scream and shout.          * for rent\n********************************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9331, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Historical and Traditional Armenian Barbarism and Fascism.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 28\n\nSource: \"Men Are Like That\" by Leonard Ramsden Hartill. The Bobbs-Merrill\nCompany, Indianapolis (1926). (305 pages). \n(Memoirs of an Armenian officer who participated in the genocide of 2.5 \n million Muslim people)\n\n\np. 204 (first paragraph).\n\n\"I was soon asleep. In the night I was awakened by the persistent crying of\n a child. I arose and went to investigate. A full moon enabled me to make\n my way about and revealed to me all the wreck and litter of the tragedy\n that had been enacted. Guided by the child's crying, I entered the yard of\n a house, which I judged from its appearance must have been the home of a\n Turkish family. There in a corner of the yard I found a women dead. Her\n throat had been cut. Lying on her breast was a small child, a girl about a\n year old.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9332, "properties": {"category": "talk.politics.guns", "text": "Nntp-Posting-Host: surt.ifi.uio.no\nFrom: Thomas Parsli <thomasp@ifi.uio.no>\nSubject: Re: My Gun is like my American Express Card\nIn-Reply-To: viking@iastate.edu (Dan Sorenson)'s message of Mon, 19 Apr 1993\n        08:52:42 GMT\nOrganization: Dept. of Informatics, University of Oslo, Norway\n        <1qjmnuINNlmd@clem.handheld.com>\n        <CMM.0.90.2.734911642.thomasp@surt.ifi.uio.no>\n        <viking.734945095@ponderous.cc.iastate.edu>\n        <CMM.0.90.2.735132009.thomasp@surt.ifi.uio.no>\n        <viking.735209562@ponderous.cc.iastate.edu>\nLines: 51\nOriginator: thomasp@surt.ifi.uio.no\n\n\n\nI don't remember the figures EXACTLY, but there were about 3500 deaths in Texas\nin 1991 that was caused by guns.....\nThis is more than those beeing killed in car-ACCIDENTS!\n(Yes, there could be that low sentences or high poverty could influence the\nfigures but they're still *pretty* high right??)\nI also believe Texas has some of the most liberal 'gun-laws' in USA......\n\n\n*I* should not suffer because of others....\nWe all agree on this one, BUT we also live in a sociaty and therefor\nwe'll have to give up *SOME* of our 'freedom' (Note the '').\n\nDo you have an insurance??\nThen you'll have to pay because of what others do...\n\nDo you buy anything??\nYOU are paying for those who return goods, steal or even those who gets a bonus...\n\nDo you live with other people??\nThen you 'can't' do ererything you'd want (burping/farting playing music LOUD)\n\n-What the hell is he trying to say ??\nWhen you live in a society (USA are stilll counted as one...) you\nhave to saccrifice.\nThe question is HOW MUCH.\n\n\nOne state (don't remember which, Texas??) tried to impose a rule that you could\nonly buy ONE gun each MONTH. Think you all know what happened.....\n\nI respect the right to defend yourself, but that right should not inflict on\nother people.\n\nIt seems like you all realize that you have a problem in America, the only\nproblem is\nthat you won't take the car away from the drunk driver, you hope to cure him\nfirst.\n\nHope life comfirms to the standard of Winnie the Poh.\n\n\n\n\tThis is not a .signature.\n\tIt's merely a computergenerated text to waste bandwith\n\tand to bring down the evil Internet.\n\n\n                        Thomas Parsli\n                        thomasp@ifi.uio.no\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9333, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Too Many Europeans in NHL\nArticle-I.D.: alchemy.1993Apr6.142037.9246\nOrganization: University of Toronto Chemistry Department\nLines: 14\n\nIn article <1993Apr6.044323.22829@pasteur.Berkeley.EDU> daniell@cory.Berkeley.EDU (Daniel Lyddy) writes:\n>\n>You know, you're absolutely right.  I think we should round up all those\n>players of European descent and ship 'em back to where they came from.  Let's\n>see, with whom should we start?  I dunno, Lemieux?  Hmmm...sounds like he\n>has *French* blood in him!!!  Hey!  France is part of Europe!  Send that\n>Euro-blooded boy back!!!\n>\n\nDon't you Americans study history...the French settled in North America\nas early or before the British...Lemieux can probably trace back his\nNorth American heritage back a lot further than most of us.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9334, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: 93gke@williams.edu (Greg 'Going Blank Again' Ennis)\nSubject: Soundblaster v2.0 drivers for Win 3.1??\nOrganization: Williams College, Williamstown, MA\nLines: 10\nNNTP-Posting-Host: hancock.cc.williams.edu\n\nHi all,\ncould someone please tell me if there are drivers for windows 3.1 for\nthe new soundblaster 2.0. Or will the 1.5 drivers be sufficient?\nI would be appreciate any info.\n\nThanks,\nGreg Ennis\n93gke@cs.williams.edu\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9335, "properties": {"category": "rec.sport.hockey", "text": "From: etxonss@ufsa.ericsson.se (Staffan Axelsson)\nSubject: WC 93: Results, April 20\nOrganization: Ericsson Telecom, Stockholm, Sweden\nLines: 162\nNntp-Posting-Host: uipc104.ericsson.se\n\n\n 1993 World Championships in Germany:\n ====================================\n\n Group A results:\n\n SWEDEN - CANADA  1-4 (0-0,1-1,0-3)\n\n 1st:\n 2nd: CAN 0-1 Geoff Sanderson      (Kevin Dineen)                  7:24\n      SWE 1-1 Patrik Juhlin        (Jan Larsson)                  15:23 (pp)\n 3rd: CAN 1-2 Geoff Sanderson                                      5:54 (ps)\n      CAN 1-3 Mike Gartner         (Greg Johnson,Adam Graves)     10:44 \n      CAN 1-4 Rod Brind'Amour      (Shayne Corson)                19:59\n\n            Shots on goal:    Penalties:    Attendance:     Referee:\n Sweden     10 15 12 - 37     4*2min        6,500           Rob Hearn (USA)\n Canada     10 13  6 - 29     6*2min\n\n Bill Ranford stopped 36 shots to lead Canada to a 4-1 victory in a very well\n played game.\n\n The first period started with a give away from a Canadian defenseman and\n Rundqvist came in alone on Ranford but couldn't put the puck over a sliding\n Ranford. Later on, Kevin Dineen had a great opportunity but Soderstrom \n played very well too. Stefan Nilsson had a couple of great dekes and set up\n Jan Larsson but again Ranford came up big. Period ended scoreless but the edge\n to Sweden in creating more opportunities.\n Second period action saw Tommy Soderstrom making a GREAT save. Mark Recchi\n made a backhanded cross ice pass to Lindros, Eric one timed the puck but\n Soderstrom was there to make a glove hand save. At the 7-minute mark, Canada\n started applying pressure on the Swedes. Sanderson-Dineen-Brind'Amour worked\n hard and kept the puck in the Swedes' zone. Dineen gave the puck to Sanderson\n who skated around a screened Swedish defenseman, came in on Soderstrom and\n made a wrist shot that went it by Soderstrom's far post, 1-0 Canada.\n The Swedes picked up their game after that, and Peter Forsberg had a shot\n that hit Ranford's post (the inside), went parallel to the goal line and out.\n Then Gartner got a penalty and the Swedes a power play. Jan Larsson took\n a shot from the slot, Ranford gave a rebound to Larsson who saw Juhlin by\n the far post, passed the puck and Ranford was beat, 1-1.\n Third period started as the other periods, Swedes having most of the pressure\n but the Canadians always dangerous once they were close to the Swede goal.\n At 5:54, Canada created some great chances and Arto Blomsten was forced to\n cover the puck in the Swede goal crease since Soderstrom lost sight of it.\n That resulted in a penalty shot, since a defenseman can't cover the puck in \n the goal crease. Geoff Sanderson took the penalty shot (his first ever, he\n explained afterwards), and he put it low on Soderstrom's stick side, close\n to the post. Excellent penalty shot to give Canada a go ahead goal.\n Canada increased the lead on a very suspect offside, Gartner volleyed a\n bouncing puck past Soderstrom to make it 3-1. The Swedes ran out of gas\n then and couldn't produce as good scoring chances as they had for 2,5 periods.\n The 4-1 goal came with only 1 second left, Rod Brind'Amour scoring on a\n rebound from Soderstrom, where the Swedish defense already had their minds\n in the dressing room.\n\n A very good game (the best in the WC so far?), with both goalies playing\n great. Soderstrom best player in Sweden, but Ranford even played better\n than Soderstrom, that tells you something about Ranford. Probably the best\n goalie in the world, were some comments after the game.\n Canada played a very disciplined defense, Ranford pointed out that it is\n easy to play well with a good defense. Lindros played A LOT and played well,\n Sanderson naturally game hero with two goals.\n\n The Forsberg-Naslund-Bergqvist line Sweden's best along with Larsson-Juhlin-\n Nilsson. Swedish defense played well, 197 cm 104 kg Peter Popovic had the\n task of neutralizing 192 cm 107 kg Eric Lindros, and managed this very well.\n Ranger defenseman Peter Andersson finally got to go to the WC, and considering\n that he landed in Germany just a few hours before the game, he played very\n well. Swedish coach Curt Lundmark was irritated after the game, partly because\n of the Swedes inability to score, and partly because of the linesman's mistake\n on the 1-3 goal.\n\n Lines information follows further below.\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n ITALY - SWITZERLAND  1-0 (0-0,1-0,0-0)\n\n 1st:\n 2nd: ITA 1-0 Orlando          15:47\n 3rd:\n\n Penalties: ITA 10*2min, SWI 8*2min\n Referee: Anton Danko, Slovakia\n Attendance: 3,500\n\n-------------------------------------------------------------------------------\n\n Group B results:\n\n CZECH REPUBLIC - GERMANY  5-0 (0-0,3-0,2-0)\n\n 1st:\n 2nd: CZE 1-0 Kamil Kastak        1:51\n      CZE 2-0 Jiri Dolezal       12:26\n      CZE 3-0 Petr Hrbek         19:10\n 3rd: CZE 4-0 Radek Toupal        8:28\n      CZE 5-0 Josef Beranek      17:07\n\n Penalties: CZE 7*2min, GER 6*2min 1*5min 1*10min game penalty\n Referee: Darren Loraas, Canada\n Attendance: 10,200\n\n The Czechs were clearly better than the Germans, and the German crowd\n showed their discontent by throwing in stuff on the ice after a while.\n\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n FINLAND - USA  1-1 (0-0,1-0,0-1)\n\n 1st:\n 2nd: FIN 1-0 Jarkko Varvio      4:00\n 3rd: USA 1-1 Ed Olczyk          4:26\n\n Penalties: FIN 7*2min, USA 6*2min\n Referee: Valeri Bokarev, Russia\n Attendance: 2,800\n\n I hope some Finns can provide information from this game (I didn't see the\n whole game). The Finns took the lead on a Jarkko Varvio slap shot from the\n blue line, and a soft goal for an unscreened Mike Richter.\n As far as the play in the second period goes, the Finns seemed to have the\n most control, so a 1-0 lead was warranted as I saw it.\n\n-------------------------------------------------------------------------------\n\n\t\t   SWEDEN\t\t\t   CANADA\n\n Goaltender:\t30 Tommy Soderstrom\t\t30 Bill Ranford\n\n Defense:\t 8 Kenneth Kennholt\t\t 5 Norm Maciver\n\t\t14 Fredrik Stillman\t\t24 Dave Manson\n\n\t\t 3 Peter Popovic\t\t25 Geoff Smith\n\t\t55 Peter Andersson\t\t19 Brian Benning\n\n\t\t 7 Arto Blomsten\t\t 6 Terry Carkner\n\t\t28 Roger Akerstrom\t\t 3 Garry Galley\n\n\t\t\t\t\t\t 4 Derek Mayer\n\n Forwards:\t29 Mikael Renberg\t\t15 Dave Gagner\n\t\t 9 Thomas Rundqvist\t\t27 Adam Graves\n\t\t34 Mikael Andersson\t\t22 Mike Gartner\n\n\t\t19 Markus Naslund\t\t20 Paul Kariya\n\t\t21 Peter Forsberg\t\t88 Eric Lindros\n\t\t18 Jonas Bergqvist\t\t 8 Mark Recchi\n\n\t\t 5 Patrik Juhlin\t\t17 Rod Brind'Amour\n\t\t20 Jan Larsson\t\t\t 9 Shayne Corson\n\t\t 4 Stefan Nilsson\t\t11 Kevin Dineen\n\n\t\t22 Charles Berglund\t\t10 Geoff Sanderson\n\t\t26 Michael Nylander\t\t12 Greg Johnson\n\t\t(34 Andersson/18 Bergqvist)\t14 Brian Savage\n\n\t\t\t\t\t\t16 Kelly Buchberger\n\n--\n ((\\\\  //| Staffan Axelsson            \n  \\\\  //|| etxonss@ufsa.ericsson.se    \n\\\\_))//-|| r.s.h. contact for Swedish hockey  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9336, "properties": {"category": "sci.med", "text": "From: david@stat.com (David Dodell)\nSubject: HICN610 Medical News Part 4/4\nReply-To: david@stat.com (David Dodell)\nDistribution: world\nOrganization: Stat Gateway Service, WB7TPY\nLines: 577\n\n------------- cut here -----------------\nlimits of AZT's efficacy and now suggest using the drug  either sequentially \nwith other drugs or in a kind of AIDS  treatment \"cocktail\" combining a number \nof drugs to fight the  virus all at once.  \"Treating people with AZT alone \ndoesn't  happen in the real world anymore,\" said Dr. Mark Jacobson of the  \nUniversity of California--San Francisco.  Also, with recent  findings \nindicating that HIV replicates rapidly in the lymph  nodes after infection, \nphysicians may begin pushing even harder  for early treatment of HIV-infected \npatients.\n==================================================================    \n\n\"New Infectious Disease Push\" American Medical News (04/05/93) Vol. 36, No. \n13, P. 2 \n\n     The Center for Disease Control will launch a worldwide network to track \nthe spread of infectious diseases and detect drug-resistant or new strains in \ntime to help prevent their spread.  The network is expected to cost between \n$75 million and $125 million but is  an essential part of the Clinton \nadministration's health reform  plan, according to the CDC and outside \nexperts.  The plan will  require the CDC to enhance surveillance of disease in \nthe United  States and establish about 15 facilities across the world to  \ntrack disease. \n\n     =====================================================================  \n                                April 13, 1993 \n     =====================================================================  \n\n\"NIH Plans to Begin AIDS Drug Trials at Earlier Stage\" Nature (04/01/93) Vol. \n362, No. 6419, P. 382  (Macilwain, Colin) \n\n\nHICNet Medical Newsletter                                              Page 42\nVolume  6, Number 10                                           April 20, 1993\n\n     The National Institutes of Health has announced it will start  treating \nHIV-positive patients as soon as possible after  seroconversion, resulting \nfrom recent findings that show HIV is  active in the body in large numbers \nmuch earlier than was  previously believed.  Anthony Fauci, director of the \nU.S.  National Institute of Allergy and Infectious Diseases (NIAID),  said, \n\"We must address the question of how to treat people as  early as we possibly \ncan with drugs that are safe enough to give  people for years and that will \nget around microbial resistance.\"  He said any delay would signify questions \nover safety and  resistance rather than a lack of funds.  Fauci, who co-\nauthored  one of the two papers published last week in Nature, rejects the  \nargument by one of his co-authors, Cecil Fox, that the new  discovery \nindicates that \"$1 billion spent on vaccine trials\" has been \"a waste of time \nand money\" because the trials were started  too long after the patients were \ninfected and were ended too  quickly.  John Tew of the Medical College of \nVirginia in Richmond claims that the new evidence strongly backs the argument \nfor  early treatment of HIV-infected patients.  AIDS activists  welcomed the \nnew information but said the scientific community  has been slow to understand \nthe significance of infection of the  lymph tissue.  \"We've known about this \nfor five years, but we're  glad it is now in the public domain,\" said Jesse \nDobson of the  California-based Project Inform.  But Peter Duesberg, who  \nbelieves that AIDS is independent of HIV and is a result of drug  abuse in the \nWest, said, \"We are several paradoxes away from an  explanation of AIDS--even \nif these papers are right.\" \n\n    ======================================================================   \n                                April 14, 1993 \n    ======================================================================   \n\n\"Risk of AIDS Virus From Doctors Found to Be Minimal\" Washington Post \n(04/14/93), P. A9 \n\n     The risk of HIV being transmitted from infected health-care  \nprofessionals to patients is minimal, according to new research  published in \ntoday's Journal of the American Medical Association  (JAMA).  This finding \nsupports previous conclusions by health  experts that the chance of \ncontracting HIV from a health care  worker is remote.  Three studies in the \nJAMA demonstrate that  thousands of patients were treated by two HIV-positive \nsurgeons  and dentists without becoming infected with the virus.  The  studies \nwere conducted by separate research teams in New  Hampshire, Maryland, and \nFlorida.  Each study started with an  HIV-positive doctor or dentist and \ntested all patients willing to participate.  The New Hampshire study found \nthat none of the  1,174 patients who had undergone invasive procedures by an  \nHIV-positive orthopedic surgeon contracted HIV.  In Maryland, 413 of 1,131 \npatients operated on by a breast surgery specialist at  Johns Hopkins Hospital \nwere found to be HIV-negative.  Similarly  in Florida, 900 of 1,192 dental \n\nHICNet Medical Newsletter                                              Page 43\nVolume  6, Number 10                                           April 20, 1993\n\npatients, who all had been  treated by an HIV-positive general dentist, were \ntested and found to be negative for HIV.  The Florida researchers, led by \nGordon  M. Dickinson of the University of Miami School of Medicine, said, \n\"This study indicates that the risk for transmission of HIV from  a general \ndentist to his patients is minimal in a setting in  which universal \nprecautions are strictly observed.\"   Related Story: Philadelphia Inquirer \n(04/14) P. A6 \n======================================================================   \n\"Alternative Medicine Advocates Divided Over New NIH Research  Program\" AIDS \nTreatment News (04/02/93) No. 172, P. 6  (Gilden, Dave) \n\n     The new Office of Alternative Medicine at the National Institutes of \nHealth has raised questions about the NIH's commitment to an  effort that uses \nunorthodox or holistic therapeutic methods.  The OAM is a small division of \nthe NIH, with its budget only at $2  million dollars compared to more than $10 \nbillion for the NIH as  a whole.  In addition, the money for available \nresearch grants is even smaller.  About $500,000 to $600,000 total will be \navailable this year for 10 or 20 grants.  Kaiya Montaocean, of the Center  for \nNatural and Traditional Medicine in Washington, D.C., says  the OAM is afraid \nto become involved in AIDS.  \"They have to look successful and there is no \neasy answer in AIDS,\" she said.    There is also a common perception that the \nOAM will focus on  fields the NIH establishment will find non-threatening, \nsuch as  relaxation techniques and acupuncture.  When the OAM called for  an \nadvisory committee conference of about 120 people last year,  the AIDS \ncommunity was largely missing from the meeting.  In  addition, activists' \ngeneral lack of contact with the Office has  added suspicion that the epidemic \nwill be ignored.  Jon  Greenberg, of ACT-UP/New York, said, \"The OAM advisory \npanel is  composed of practitioners without real research experience.  It  \nwill take them several years to accept the nature of research.\"   \nNevertheless,  Dr. Leanna Standish, research director and AIDS  investigator \nat the Bastyr College of Naturopathic Medicine in  Seattle, said, \"Here is a \nwonderful opportunity to fund AIDS  research.  It's only fair to give the \nOffice time to gel, but  it's up to the public to insist that it's much, much \nmore [than  public relations].\" \n======================================================================   \n\"Herpesvirus Decimates Immune-cell Soldiers\" Science News (04/03/93) Vol. 143, \nNo. 14, P. 215   (Fackelmann, Kathy A.) \n\n     Scientists conducting test tube experiments have found that  herpesvirus-\n6 can attack the human immune system's natural killer cells.  This attack \ncauses the killer cells to malfunction,  diminishing an important component in \nthe immune system's fight  against diseases.  Also, the herpesvirus-6 may be a \nfactor in  immune diseases, such as AIDS.  In 1989, Paolo Lusso's research  \nfound that herpesvirus-6 attacks another white cell, the CD4  T-lymphocyte, \nwhich is the primary target of HIV.  Lusso also  found that herpesvirus-6 can \n\nHICNet Medical Newsletter                                              Page 44\nVolume  6, Number 10                                           April 20, 1993\n\nkill natural killer cells.   Scientists previously knew that the natural \nkiller cells of  patients infected with HIV do not work correctly.  Lusso's  \nresearch represents the first time scientists have indicated that natural \nkiller cells are vulnerable to any kind of viral attack,  according to Anthony \nL. Komaroff, a researcher with Harvard  Medical School.  Despite the test-tube \nfindings, scientists are  uncertain whether the same result occurs in the \nbody.  Lusso's  team also found that herpesvirus-6 produces the CD4 receptor  \nmolecule that provides access for HIV.  CD4 T-lymphocytes express this surface \nreceptor, making them vulnerable to HIV's attack.   Researchers concluded that \nherpesvirus-6 cells can exacerbate the affects of HIV. \n\n    ======================================================================   \n                                April 15, 1993 \n     ====================================================================   \n\n\"AIDS and Priorities in the Global Village: To the Editor\" Journal of the \nAmerican Medical Association (04/07/93) Vol. 269,  No. 13, P. 1636  (Gellert, \nGeorge and Nordenberg, Dale F.) \n\n     All health-care workers are obligated and responsible for not  only \nensuring that politicians understand the dimensions of  certain health \nproblems, but also to be committed to related  policies, write George Gellert \nand Dale F. Nordenberg of the  Orange County Health Care Agency, Santa Ana, \nCalif., and the  Emory University School of Public Health in Atlanta, Ga.,  \nrespectively.  Dr. Berkley's editorial on why American doctors  should care \nabout the AIDS epidemic beyond the United States  details several reasons for \nthe concerted interest that all  countries share in combating AIDS.  It should \nbe noted that while AIDS leads in hastening global health interdependence, it \nis not  the only illness doing so.  Diseases such as malaria and many  \nrespiratory and intestinal pathogens have similarly inhibited the economic \ndevelopment of most of humanity and acted to marginalize large populations.  \nBerkley mentions the enormous social and  economic impact that AIDS will have \non many developing countries, and the increased need for international \nassistance that will  result.  Berkley also cites the lack of political \naggressiveness  toward the AIDS epidemic in its first decade.  But now there \nis a new administration with a promise of substantial differences in  approach \nto international health and development in general, and  HIV/AIDS in \nparticular.  Vice President Al Gore proposes in his  book \"Earth in the \nBalance\" a major environmental initiative that includes sustainable \ninternational development, with programs to  promote literacy, improve child \nsurvival, and disseminate  contraceptive technology and access throughout the \ndeveloping  world.  If enacted, this change in policy could drastically  \nchange the future of worldwide health. \n====================================================================   \n\"AIDS and Priorities in the Global Village: In Reply\" Journal of the American \n\nHICNet Medical Newsletter                                              Page 45\nVolume  6, Number 10                                           April 20, 1993\n\nMedical Association (04/07/93) Vol. 269,  No. 13, P. 1636  (Berkley, Seth) \n\n     Every nation should tackle HIV as early and aggressively as    possible \nbefore the disease reaches an endemic state, even at a  cost of diverting less \nattention to some other illnesses, writes  Seth Berkley of the Rockefeller \nFoundation in New York, N.Y., in  reply to a letter by Drs. Gellert and \nNordenberg.  Although it is true that diseases other than AIDS, such as \nmalaria and  respiratory and intestinal illnesses, have similarly inhibited  \neconomic development in developing countries and deserve much  more attention \nthan they are getting, Berkley disagrees with the  contention that AIDS is \nreceiving too much attention.  HIV  differs from other diseases, in most \ndeveloping countries because it is continuing to spread.  For most endemic \ndiseases, the  outcome of neglecting interventions for one year is another \nyear  of about the same level of needless disease and death.  But with  AIDS \nand its increasing spread, the cost of neglect, not only in  disease burden \nbut financially, is much greater.  Interventions  in the early part of a \nrampantly spreading epidemic like HIV are  highly cost-effective because each \nindividual infection prevented significantly interrupts transmission.  Berkley \nsays he agrees  with Gellert and Nordenberg about the gigantic social and  \neconomic effects of AIDS and about the need for political  leadership.  But he \nconcludes that not only is assertive  political leadership needed in the \nUnited States for the AIDS  epidemic, but even more so in developing countries \nwith high  rates of HIV infection and where complacency about the epidemic  \nhas been the rule.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 46\nVolume  6, Number 10                                           April 20, 1993\n\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n                               AIDS/HIV Articles\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n            First HIV Vaccine Trial Begins in HIV-Infected Children\n                                H H S   N E W S\n     ********************************************************************\n                 U.S. DEPARTMENT OF HEALTH AND HUMAN SERVICES\n                                March 29, 1993\n\n\n        First HIV Vaccine Therapy Trial Begins In HIV-Infected Children\n\n\nThe National Institutes of Health has opened the first trial of experimental \nHIV vaccines in children who are infected with the human immunodeficiency \nvirus (HIV), the virus that causes AIDS. \n\nThe trial will compare the safety of three HIV experimental vaccines in 90 \nchildren recruited from at least 12 sites nationwide. Volunteers must be HIV-\ninfected but have no symptoms of HIV disease. \n\nHHS Secretary Donna E. Shalala said this initial study can be seen as \"a \nhopeful milestone in our efforts to ameliorate the tragedy of HIV-infected \nchildren who now face the certainty they will develop AIDS.\" \n\nAnthony S. Fauci, M.D., director of the National Institute of Allergy and \nInfectious Diseases and of the NIH Office of AIDS Research, said the trial \"is \nthe first step in finding out whether vaccines can help prevent or delay \ndisease progression in children with HIV who are not yet sick.\"  If these \nvaccines prove to be safe, more sophisticated questions about their \ntherapeutic potential will be assessed in Phase II trials. \n\nThe Centers for Disease Control and Prevention estimates 10,000 children in \nthe United States have HIV.  By the end of the decade, the World Health \nOrganization projects 10 million children will be infected worldwide. \n\nThe study will enroll children ages 1 month to 12 years old.  NIAID, which \nfunds the AIDS Clinical Trials Group network, anticipates conducting the trial \nat nine ACTG sites around  the country and three sites participating in the \nACTG but funded by the National Institute of Child Health and Human \nDevelopment. \n\nPreliminary evidence from similar studies under way in infected adults shows \nthat certain vaccines can boost existing HIV-specific immune responses and \n\nHICNet Medical Newsletter                                              Page 47\nVolume  6, Number 10                                           April 20, 1993\n\nstimulate new ones.  It will be several years, however, before researchers \nknow how these responses affect the clinical course of the disease. \n\nThe results from the pediatric trial, known as ACTG 218, will be examined \nclosely for other reasons as well.  \"This trial will provide the first insight \ninto how the immature immune system responds to candidate HIV vaccines,\" said \nDaniel Hoth, M.D., director of NIAID's division of AIDS.  \"We need this \ninformation to design trials to test whether experimental vaccines can prevent \nHIV infection in children.\" \n\nIn the United States, most HIV-infected children live in poor inner-city \nareas, and more than 80 percent are minorities, mainly black or Hispanic. \n\nNearly all HIV-infected children acquire the virus from their mothers during \npregnancy  or at birth.  An infected mother in the United States has more than \na one in four chance of transmitting the virus to her baby.  As growing \nnumbers of women of childbearing age become exposed to HIV through injection \ndrug use or infected sexual partners, researchers expect a corresponding \nincrease in the numbers of infected children. \n\nHIV disease progresses more rapidly in infants and children than in adults.  \nThe most recent information suggests that 50 percent of infants born with HIV \ndevelop a serious AIDS-related infection by 3 to 6 years of age.  These \ninfections include severe or frequent bouts of common bacterial illnesses of \nchildhood that can result in seizures, pneumonia, diarrhea and other symptoms \nleading to nutritional problems and long hospital stays. \n\nAt least half of the children in the trial will be 2 years of age or younger \nto enable comparison of the immune responses of the younger and older \nparticipants.  All volunteers must have well-documented HIV infection but no \nsymptoms of HIV disease other than swollen lymph glands or a mildly swollen \nliver or spleen.  They cannot have received any anti-retroviral or immune-\nregulating drugs within one month prior to their entry into the study. \n\nStudy chair John S. Lambert, M.D., of the University of Rochester Medical \nSchool, and co- chair Samuel Katz, M.D., of Duke University School of \nMedicine, will coordinate the trial assisted by James McNamara, M.D., medical \nofficer in the pediatric medicine branch of NIAID's division of AIDS. \n\n\"We will compare the safety of the vaccines by closely monitoring the children \nfor any side effects, to see if one vaccine produces more swollen arms or \nfevers, for example, than another,\" said Dr. McNamara.  \"We'll also look at \nwhether low or high doses of the vaccines stimulate immune responses or other \nsignificant laboratory or clinical effects.\"   He emphasized that the small \nstudy size precludes comparing these responses or effects among the three \n\nHICNet Medical Newsletter                                              Page 48\nVolume  6, Number 10                                           April 20, 1993\n\nproducts. \n\nThe trial will test two doses each of three experimental vaccines made from \nrecombinant HIV proteins.  These so-called subunit vaccines, each genetically \nengineered to contain only a piece of the virus, have so far proved well-\ntolerated in ongoing trials in HIV-infected adults. \n\nOne vaccine made by MicroGeneSys Inc. of Meriden, Conn., contains gp160--a \nprotein  that gives rise to HIV's surface proteins--plus alum adjuvant.  \nAdjuvants boost specific immune responses to a vaccine.  Presently, alum is \nthe only adjuvant used in human vaccines licensed by the Food and Drug \nAdministration. \n\nBoth of the other vaccines--one made by Genentech Inc. of South San Francisco \nand the other by Biocine, a joint venture of Chiron and CIBA-Geigy, in \nEmeryville, Calif.--contain the major HIV surface protein, gp120, plus \nadjuvant.  The Genentech vaccine contains alum, while the Biocine vaccine \ncontains MF59, an experimental adjuvant that has proved safe and effective in \nother Phase I vaccine trials in adults. \n\nA low dose of each product will be tested first against a placebo in 15 \nchildren.  Twelve children will be assigned at random to be immunized with the \nexperimental vaccine, and three children will be given adjuvant alone, \nconsidered the placebo.  Neither the health care workers nor the children will \nbe told what they receive. \n\nIf the low dose is well-tolerated, controlled testing of a higher dose of the \nexperimental vaccine and adjuvant placebo in another group of 15 children will \nbegin. \n\nEach child will receive six immunizations--one every four weeks for six \nmonths--and be followed-up for 24 weeks after the last immunization.  \n\nFor more information about the trial sites or eligibility for enrollment, call \nthe AIDS Clinical Trials Information Service, 1-800-TRIALS-A, from 9 a.m. to 7 \np.m., EST weekdays.  The service has Spanish-speaking information specialists \navailable.  Information on NIAID's pediatric HIV/AIDS research is available \nfrom the Office of Communications at (301) 496- 5717.  \n\nNIH, CDC and FDA are agencies of the U.S. Public Health Service in HHS. For \npress inquiries only, please call Laurie K. Doepel at (301) 402-1663.\n\n\n\n\nHICNet Medical Newsletter                                              Page 49\nVolume  6, Number 10                                           April 20, 1993\n\n           NEW EVIDENCE THAT THE HIV CAN CAUSE DISEASE INDEPENDENTLY\n              News from the National Institute of Dental Research\n\nThere is new evidence that the human immunodeficiency virus can cause disease \nindependently of its ability to suppress the immune system, say scientists at \nthe National Institues of Health. \n\nThey report that HIV itself, not an opportunistic infection, caused scaling \nskin conditions to develop in mice carrying the genes for HIV.  Although the \nHIV genes were active in the mice, they did not compromise the animals' \nimmunity, the researchers found.  This led them to conclude that the HIV \nitself caused the skin disease. \n\nOur findings support a growing body of evidence that HIV can cause disease \nwithout affecting the immune system, said lead author Dr. Jeffrey Kopp of the \nNational Institute of Dental Research (NIDR).  Dr. Kopp and his colleagues \ndescribed their study in the March issue of AIDS Research and Human \nRetroviruses. \n\nDeveloping animal models of HIV infection has been difficult, since most \nanimals, including mice, cannot be infected by the virus.  To bypass this \nproblem, scientists have developed HIV-transgenic mice, which carry genes for \nHIV as well as their own genetic material. \n\nNIDR scientists created the transgenic mice by injecting HIV genes into mouse \neggs and then implanting the eggs into female mice.  The resulting litters \ncontained both normal and transgenic animals. \n\nInstitute scientists had created mice that carried a complete copy of HIV \ngenetic material in l988.  Those mice, however, became sick and died too soon \nafter birth to study in depth.  In the present study, the scientists used an \nincomplete copy of HIV, which allowed the animals to live longer. \n\nSome of the transgenic animals developed scaling, wart-like tumors on their \nnecks and backs.  Other transgenic mice developed thickened, crusting skin \nlesions that covered most of their bodies, resembling psoriasis in humans.  No \nskin lesions developed in their normal, non-transgenic littermates. \n\nStudies of tissue taken from the wart-like skin tumors showed that they were a \ntype of noncancerous tumor called papilloma. Although the papillomavirus can \ncause these skin lesions, laboratory tests showed no sign of that virus in the \nanimals. \n\nTissue samples taken from the sick mice throughout the study revealed the \npresence of a protein-producing molecule made by the HIV genetic material.  \n\nHICNet Medical Newsletter                                              Page 50\nVolume  6, Number 10                                           April 20, 1993\n\nEvidence of HIV protein production proved that the viral genes were \"turned \non,\" or active, said Dr. Kopp. \n\nThe scientists found no evidence, however, of compromised immunity in the \nmice:  no increase in their white blood cell count and no signs of common \ninfections.  The fact that HIV genes were active but the animals' immune \nsystems were not suppressed confirms that the virus itself was causing the \nskin lesions, Dr. Kopp said. \n\nFurther proof of HIV gene involvement came from a test in which the scientists \nexposed the transgenic animals to ultraviolet light.  The light increased HIV \ngenetic activity causing papillomas to develop on formerly healthy skin.  \nPapilloma formation in response to increased HIV genetic activity proved the \ngenes were responsible for the skin condition, the scientists said.  No \nlesions appeared on normal mice exposed to the UV light. \n\nThe transgenic mice used in this study were developed at NIDR by Dr. Peter \nDickie, who is now with the National Institute of Allergy and Infectious \nDiseases. \n\nCollaborating on the study with Dr. Kopp were Mr. Charles Wohlenberg, Drs. \nNickolas Dorfman, Joseph Bryant, Abner Notkins, and Paul Klotman, all of NIDR; \nDr. Stephen Katz of the National Cancer Institute; and Dr. James Rooney, \nformerly with NIDR and now with Burroughs Wellcome.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 51\nVolume  6, Number 10                                           April 20, 1993\n\n               Clinical Consultation Telephone Service for AIDS\n                                H H S   N E W S\n                 ********************************************\n                 U.S. DEPARTMENT OF HEALTH AND HUMAN SERVICES\n\n                                 March 4, 1993\n\n\n     HHS Secretary Donna E. Shalala today announced the first nationwide \nclinical consultation telephone service for doctors and other health care \nprofessionals who have questions about providing care to people with HIV \ninfection or AIDS. \n     The toll-free National HIV Telephone Consulting Service is staffed by a \nphysician, a nurse practitioner and a pharmacist. It provides information on \ndrugs, clinical trials and the latest treatment methods.  The service is \nfunded by the Health Resources and Services Administration and operates out of \nSan Francisco General Hospital. \n     Secretary Shalala said, \"One goal of this project is to share expertise \nso patients get the best care.  A second goal is to get more primary health \ncare providers involved in care for people with HIV or AIDS, which reduces \ntreatment cost by allowing patients to remain with their medical providers and \ncommunity social support networks.  Currently, many providers refer patients \nwith HIV or AIDS to specialists or other providers who have more experience.\" \n     Secretary Shalala said, \"This clinical expertise should be especially \nhelpful for physicians and providers who treat people with HIV or AIDS in \ncommunities and clinical sites where HIV expertise is not readily available.\" \n     The telephone number for health care professionals is 1-800-933-3413, and \nit is accessible from 10:30 a.m. to 8 p.m. EST (7:30 a.m. to 5 p.m. PST) \nMonday through Friday.  During these times, consultants will try to answer \nquestions immediately, or within an hour.  At other times, physicians and \nhealth care providers can leave an electronic message, and questions will be \nanswered as quickly as possible. \n     Health care professionals may call the service to ask any question \nrelated to providing HIV care, including the latest HIV/AIDS drug treatment \ninformation, clinical trials information, subspecialty case referral, \nliterature searches and other information.  The service is designed for health \ncare professionals rather than patients, families or others who have alternate \nsources of information or materials. \n     When a health care professional calls the new service, the call is taken \nby either a clinical pharmacist, primary care physician or family nurse \npractitioner.  All staff members have extensive experience in outpatient and \ninpatient primary care for people with HIV-related diseases.  The consultant \nasks for patient-specific information, including CD4 cell count, current \nmedications, sex, age and the patient's HIV history. \n     This national service has grown out of a 16-month local effort that \n\nHICNet Medical Newsletter                                              Page 52\nVolume  6, Number 10                                           April 20, 1993\n\nresponded to nearly 1,000 calls from health care providers in northern \nCalifornia.  The initial project was funded by HRSA's Bureau of Health \nProfessions, through its Community Provider AIDS Training (CPAT) project, and \nby the American Academy of Family Physicians. \n     \"When providers expand their knowledge, they also improve the quality of \ncare they are able to provide to their patients,\" said HRSA Administrator \nRobert G. Harmon. M.D., M.P.H.  \"This project will be a great resource for \nhealth care professionals and the HIV/AIDS patients they serve.\" \n     \"This service has opened a new means of communication between health care \nprofessionals and experts on HIV care management,\" said HRSA's associate \nadministrator for AIDS and director of the Bureau of Health Resources \nDevelopment, G. Stephen Bowen, M.D., M.P.H.  \"Providers who treat people with \nHIV or AIDS have access to the latest information on new drugs, treatment \nmethods and therapies for people with HIV or AIDS.\" \n     HRSA is one of eight U.S. Public Health Service agencies within HHS.  \n\n\n                      AIDS Hotline Numbers for Consumers\n\n                  CDC National AIDS Hotline -- 1-800-342-AIDS\n                  for information in Spanish - 1-800-344-SIDA\n          AIDS Clinical Trials (English & Spanish) -- 1-800-TRIALS-A\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHICNet Medical Newsletter                                              Page 53\n\f\n------------- cut here -----------------\n-- This is the last part ---------------\n\n---\n      Internet: david@stat.com                  FAX: +1 (602) 451-1165\n      Bitnet: ATW1H@ASUACAD                     FidoNet=> 1:114/15\n                Amateur Packet ax25: wb7tpy@wb7tpy.az.usa.na\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9337, "properties": {"category": "sci.electronics", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Motorola XC68882RC33 and RC50\nOrganization: U of Toronto Zoology\nLines: 14\n\nIn article <sgberg.23xu@charon.bloomington.in.us> sgberg@charon.bloomington.in.us (Stefan Berg) writes:\n>... I don't know why my FPU has an XC (my original 33MHz FPU\n>was label MC68882-33), but it seems to work fine on my system...\n>P.S. Or does it mean eXperimental Chip instead of Motorola Chip? .-)\n\nThe rule for the designations is that if it says MC, that means it works\n*exactly* the way the datasheet/book specifies.  If it says XC, that means\nthere is at least one known bug.  Often these bugs are small and obscure;\nyou might never run into them in practice.\n\nAt least Motorola admits it, unlike certain other companies...\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9338, "properties": {"category": "talk.religion.misc", "text": "From: cutter@gloster.via.mind.org (cutter)\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nDistribution: world\nOrganization: Gordian Knot, Gloster,GA\nLines: 22\n\nnetd@susie.sbc.com () writes:\n\n> In article <20APR199301460499@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen\n> >For those who think David Koresh didn't have a solid structure,\n> >or sound Biblical backing for his hour long tape broadcast,\n> \n> I don't think anyone really cares about the solid structure of his\n> sermon.  It's the deaths he's responsible for that concern most people.\n> \n\nAnd I think we ought to hold Christ accoountable for all of his followers \nwho died at the hand of the Romans also. It was their own fault for believing.\n\nGod, this society reminds me more of the Roman Empire every day; I guess\nI'll just log off and go watch American Gladiators.\n\n\n---------------------------------------------------------------------\ncutter@gloster.via.mind.org (chris)     All jobs are easy \n                                     to the person who\n                                     doesn't have to do them.\n                                               Holt's law\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9339, "properties": {"category": "sci.space", "text": "From: tuinstra@signal.ece.clarkson.edu.soe (Dwight Tuinstra)\nSubject: Re: Clementine name\nReply-To: tuinstra@signal.ece.clarkson.edu.soe\nOrganization: Sun Microsystems, Inc.\nLines: 21\nNntp-Posting-Host: signal.ece.clarkson.edu\n\nIn article F00001@permanet.org, Mark.Prado@p2.f349.n109.z1.permanet.org (Mark Prado) writes:\n>Please go just one step further:\n>How has the word \"Clementine\" been associated with mining?\n>\n\nCould be the (folk?) song \"Clementine\".  If memory serves, part of it goes:\n\n   In a cavern, by a canyon,\n   Excavating for a mine,\n   Dwelt a miner, forty-niner,\n   and his daughter, Clementine.\n\nAnyone who watched Huckleberry Hound can sing you the chorus :-) \nIs there a story/real person behind the song?\n\n+========================================================================+\n|  dwight tuinstra             best:  tuinstra@sandman.ece.clarkson.edu  |\n|                         tolerable:  tuinstrd@craft.camp.clarkson.edu   |\n|                                                                        |\n|        \"Homo sapiens: planetary cancer??  ...  News at six\"            |\n+========================================================================+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9340, "properties": {"category": "talk.politics.mideast", "text": "From: bdm@cs.rit.edu (Brendan D McKay)\nSubject: Re: Unconventional peace proposal\nNntp-Posting-Host: virginia\nOrganization: Rochester Institute of Technology, Rochester, NY\nLines: 42\n\nIn article <C5un2y.7Jn@apollo.hp.com> goykhman@apollo.hp.com (Red Herring) writes:\n>In article <1483500348@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n>>\n>>From: Center for Policy Research <cpr>\n>>Subject: Unconventional peace proposal\n>>\n>>A unconventional proposal for peace in the Middle-East.\n>>---------------------------------------------------------- by\n>>\t\t\t  Elias Davidsson\n>>Having stated my assumptions, I will now state my proposal.\n>>\n>>1.      A Fund should be established which would disburse grants\n>>for each child born to a couple where one partner is Israeli-Jew\n>>and the other Palestinian-Arab.\n>...\n>>5.      The emergence of a considerable number of 'mixed'\n>>marriages in Israel/Palestine, all of whom would have relatives on\n>>'both sides' of the divide, would make the conflict lose its\n>>ethnical and unsoluble core and strengthen the emergence of a\n>>truly civil society. The existence of a strong 'mixed' stock of\n>>people would also help the integration of Israeli society into the\n>\n>    Sounds just like a racial theory that Hitler outlined in Mein Kampf.\n\nSomeone else said something similar.  I will not comment on the\nvalue or lack of value of Elias's \"proposal\".  I just want to say\nthat it is very distressing that at least two people here are\nprofoundly ignorant of Nazi racial doctrine.  They were NOT\nlike Elias's idea, they were more like the opposite.  \n\nNazis believed in racial purity, not racial assimilation.  An \ninstructive example is the Nazi attitude to Gypsies.  According to \nNazi theoreticians, Gypsies were an Aryan race.  They were persecuted,\nand in huge numbers murdered, because most European Gypies were\nconsidered not pure Gypsies but \"mongrels\" formed from the pure Gypsy \nrace and other undesirable races.  This was the key difference between \nthe theoretical approach to Jews and Gypsies, by the way.  It is also \ntrue that towards the end of WWII even the \"purist\" Gypsies were \nhunted down as the theory was forgotten.\n\nBrendan.\n(email:  bdm@cs.anu.edu.au)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9341, "properties": {"category": "talk.religion.misc", "text": "From: rh@smds.com (Richard Harter)\nSubject: Re: Rawlins debunks creationism\nReply-To: rh@ishmael.UUCP (Richard Harter)\nOrganization: Software Maintenance & Development Systems, Inc.\nLines: 79\n\nIn article <1993Apr15.223844.16453@rambo.atlanta.dg.com> wpr@atlanta.dg.com (Bill Rawlins) writes:\n\n>    We are talking about origins, not merely science.   Science cannot\n>    explain origins.  For a person to exclude anything but science from\n>    the issue of origins is to say that there is no higher truth\n>    than science.  This is a false premise.  By the way, I enjoy science.\n>    It is truly a wonder observing God's creation.  Macroevolution is\n>    a mixture of 15 percent science and 85 percent religion [guaranteed\n>    within three percent error :) ]\n\nLet us explore this interesting paragraph point by point, sentence by\nsentence.\n\n\n1) We are talking about origins, not merely science.\n\nOrigins of what?  Are we speaking of the origins of life, the human\nspecies, the universe, physical law, biological diversity or what?\n\n2) Science cannot explain origins.\n\nThis is a false statement unless it is carefully qualified.  It depends\non what origins we are talking about.\n\n3) For a person to exclude anything but science from the issue of origins\nis to say that there is no higher truth than science.\n\nAgain, this is a false statement.  To begin with, the notion of \"higher\ntruth\" is distinctly dubious.  Many people believe that there are ways\nto ascertain truth that are not in the repetoire of science; they even\nbelieve that there are ways that are more reliable and certain.  Many\nbelieve that there are truths that cannot be expressed using the language\nof science.  Let it be so.  These truths are neither \"higher\" or \n\"lower\"; they are simply true.\n\nMore to the point, restricting one's discussion of origins to science\ndoes not reject other sources of knowledge; it simply restricts the\nscope of discussion.\n\n4) This is a false premise.\n\nIf this is intended as asserting that the previous sentence was false\nthen (4) is actually true.  However the context identifies it as another\nfalse [or at least theologically unsound] statement.\n\n5) By the way, I enjoy science.\n\nOn the evidence Mr. Rawlins lacks sufficient understanding of science\nto enjoy science in any meaningful sense.  One might just as well say\nthat one enjoys literature written in a language that one cannot read.\nHowever one cannot mark this sentence as false -- to follow the analogy,\nperhaps he likes the pretty shapes of the letters.\n\n6) It is truly a wonder observing God's creation.\n\nLet us not quibble; count this one as true.\n\n7) Macroevolution is a mixture of 15 percent science and 85 percent\nreligion [guaranteed within three percent error :) ]\n\nStill another false statement.  However one can make it come out true\nwith the following contextual modification:\n\n\"Macroevolution, as misunderstood by Rawline, is a mixture of 15 percent\nof what Rawlins erroneously thinks of as science, and 85 percent of\nwhat Rawlins erroneously thinks of as religion.\"\n\n-----\n\nIt is distinctly noticeable that Mr. Rawlins fails miserably to touch\non truth except when he reports personally on what he feels.  [I do\nhim the justice of assuming that he is not misinforming us as to his\npersonal reactions.]  One can account for this by the hypothesis that\nhe has an idiosyncratic and personal concept of truth.\n-- \nRichard Harter: SMDS Inc.  Net address: rh@smds.com Phone: 508-369-7398 \nUS Mail: SMDS Inc., PO Box 555, Concord MA 01742.    Fax: 508-369-8272\nIn the fields of Hell where the grass grows high\nAre the graves of dreams allowed to die.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9342, "properties": {"category": "misc.forsale", "text": "From: beng@cae.wisc.edu (Beng Ting)\nSubject: Madison/Chicago --> Italy Air Ticket Wanted\nKeywords: Madison/Chicago, Milan, Italy\nArticle-I.D.: doug.1993Apr5.193913.14385\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 13\n\nHi,\n\n\tI am looking for a round trip Madison/Chicago --> Milan (Italy)\n\tair ticket. Anybody who has a transferable ticket but will\n\tnot use it please contact me at beng@cae.wisc.edu. Open-jaw\n\tticket highly desired.\n\t\n\tThank you.\n\n\nB. T. Ting\nbeng@cae.wisc.edu\n \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9343, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Who Says the Apostles Were Tortured?\nOrganization: Technical University Braunschweig, Germany\nLines: 17\n\nIn article <1qiu97INNpq6@srvr1.engin.umich.edu>\ningles@engin.umich.edu (Ray Ingles) writes:\n \n>\n> As evidence for the Resurrection, it is often claimed that the Disciples\n>were tortured to death for their beliefs and still did not renounce\n>their claim that Jesus had come back from the dead.\n> Now, I skimmed Acts and such, and I found a reference to this happening\n>to Stephen, but no others. Where does this apparently very widely held\n>belief come from? Is there any evidence outside the Bible? Is there any\n>evidence *in* the Bible? I sure haven't found any...\n>\n \nEarly authors and legends. The most important sources can be found in the\nMartyriologia of the Catholic Church. Makes the Grimms look like exact\nscience.\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9344, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Day and night Armenians were rounding up male inhabitants...\nArticle-I.D.: zuma.9304052020\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 71\n\nIn article <734048492@locust.cs.duke.edu> wiener@duke.cs.duke.edu (Eduard Wiener) writes:\n\n>\t  Sure it joined you by ballot in 1918!  And I suppose that\n>\t  Northern Bukovina (where I was born), which has always had\n\nThat's why zoologists refer to you as a 'fecal shield'. Colonel Semen \nM. Budienny, a subsequent Soviet military fame, said about the \nArmenian genocide of 2.5 million defenseless Turkish and Kurdish \nwomen, children and elderly people during his visit to Anatolia \nin June 1919 that\n\n\"the Armenians had become troublemakers, their Hinchakist\n and Dashnakist parties were opportunist, serving as lackeys\n of whatever power happened to be ascendent.\"\n\nIn September 16, 1920, Major General W. Thwaites, Director of\nMilitary Intelligence, wrote to Lord Hardinge, Under-Secretary\nof State for Foreign Affairs:\n\n\"...it is useless to pretend that the Armenians are satisfactory\n allies, or deserving of all the sympathy to which they claim.\"[1]\n\n[1] F.O. 331/3411/158288.\n\nIn the Special Collection at Stanford Hoover Library, donated by\nGeorgia Cutler, the letter dated Nov. 1, 1943 states that\n\n\"Prescot Hall wrote a large volume to prove that Armenians were\n not and never could be desirable citizens, that they would \n always be unscrupulous merchants.\"\n\n\nSource: Documents: Volume I (1919).\n        \"Document No: 50,\" Archive No: 4/3621, Cabin No: 162, Drawer \n        No: 5, File No: 2905, Section No: 433, Contents No: 6, 6-1, 6-2.\n        (To 36th Division Command - Militia Commander Ismail Hakki)\n\n\"For eight days, Armenians have been forcibly obstructing people from\n leaving their homes or going from one village to the other. Day and night\n they are rounding up male inhabitants, taking them to unknown destinations,\n after which nothing further is heard of them. (Informed from statements\n of those who succeeded in escaping wounded from the massacres around\n Taskilise ruins). Women and children are being openly murdered or are\n being gathered in the Church Square and similar places. Most inhuman and\n barbarous acts have been committed against Moslems for eight days.\"\n\n\n        \"Document No: 52,\" Archive No: 4/3671, Cabin No: 163, Drawer \n        No: 1, File No: 2907, Section No: 440, Contents No: 6-6, 6-7.\n        (To: 1st Caucasian Army Corps Command, 2nd Caucasian Army Corps\n        Command, Communications Zone Inspectorate - Commander 3rd Army\n        General)\n\n\"As almost all Russian units opposite our front have been withdrawn, the\n population loyal to us in regions behind the Russian positions are\n facing an ever-increasing threat and suppression as well as cruelties\n and abuses by Armenians who have decided to systematically annihilate\n the Moslem population in regions under their occupation. I have \n regularly informed the Russian Command of these atrocities and\n cruelties and I have gained the impression that the above authority\n seems to be failing in restoring order.\"\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9345, "properties": {"category": "sci.space", "text": "From: jafoust@cco.caltech.edu (Jeff Foust)\nSubject: Re: New planet/Kuiper object found?\nOrganization: Caltech:  Pasadena, California, USA\nLines: 12\nDistribution: sci\nNNTP-Posting-Host: sandman.caltech.edu\n\nIn a recent article jdnicoll@prism.ccs.uwo.ca (James Davis Nicoll) writes:\n>\tIf the  new  Kuiper belt object *is*  called 'Karla', the next\n>one  should be called 'Smiley'.\n\nUnless I'm imaging things, (always a possibility =) 1992 QB1, the Kuiper Belt\nobject discovered last year, is known as Smiley.\n\n-- \nJeff Foust              [49 days!]\t\"You're from outer space.\"\nSenior, Planetary Science, Caltech\t\"No, I'm from Iowa.  I only work in\njafoust@cco.caltech.edu\t\t\t outer space.\"\njeff@scn1.jpl.nasa.gov\t\t\t-- from Star Trek IV: The Voyage Home\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9346, "properties": {"category": "rec.sport.baseball", "text": "From: gspira@nyx.cs.du.edu (Greg Spira)\nSubject: Re: Jewish Baseball Players?\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 4\n\nYou can add Steve Rosenberg, one-time White Sox reliever now in the Mets\nsystem, to the list.\n\nGreg \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9347, "properties": {"category": "sci.space", "text": "From: will@rins.ryukoku.ac.jp (William Reiken)\nSubject: Re: nuclear waste\nOrganization: Ryukoku Univ., Seta, Japan\nLines: 12\n\nIn article <1pp6reINNonl@phantom.gatech.edu>, matthew@phantom.gatech.edu (Matthew DeLuca) writes:\n>\n> Greedy little oil companies?  Don't blame them; oil companies just supply the\n> demand created by you, me, and just about everyone else on the planet.  If we\n> run out, its all our faults.\n>\n\n\tOk, so how about the creation of oil producing bacteria?  I figure\nthat if you can make them to eat it up then you can make them to shit it.\nAny comments?\n\n\t\t\t\t\t\tWill...\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.441+0000", "event": "documents", "entityId": 9348, "properties": {"category": "sci.electronics", "text": "From: mustafa@seas.smu.edu (Mustafa Kocaturk)\nSubject: How starters work really\nKeywords: fluorescent bulb starter neon\nNntp-Posting-Host: turbo_f.seas.smu.edu\nOrganization: SMU - School of Engineering & Applied Science - Dallas\nLines: 28\n\nIn article <734953838.AA00509@insane.apana.org.au> peter.m@insane.apana.org.au (Peter Tryndoch) writes:\n>\n>So when you turn on the power, this causes the bulb to work like a neon, \n>heating up and shorting out, thus providing a loop to power the heaters in \n>the main tube. When the tube fires, insufficient current runs through the \n>starter to keep the heat up and the bi-metalic strip straightens out \n>(O/C).\n\nImprecise. This description\n\n 1. ignores the role of the ballast,\n 2. misrepresents the heating effects in the starter.\n\nThe bimetalic strip cools down immediately after the contacts\nshort circuit, because the neon discharge stops, and much less\nheat is generated from the I^2R loss in the metal as compared to\nthe neon discharge.\n\nThe starter contacts open before the tube fires.  Actually,\nthe tube fires as a result of the back-emf generated in the ballast\nbecause of this immediate opening of the starter's contacts.\n\nA capacitor is connected in parallel with the contacts to prevent\nexcessive arcing during the firing.  The neon reionizes but does not draw\nsufficient current to prevent firing of the tube itself.\n-- \nMustafa Kocaturk   mustafa@seas.smu.edu  EE Dept., Room 305A, Caruth Bldg.\nHome: 214-706-5954  Office: 214-768-1475  SMU Box 753190, Dallas, TX 75275\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9349, "properties": {"category": "comp.graphics", "text": "From: s127@ii.uib.no (Torgeir Veimo)\nSubject: Re: sources for shading wanted\nOrganization: Institutt for Informatikk UIB Norway\nLines: 24\n\nIn article <1r3ih5INNldi@irau40.ira.uka.de>, S_BRAUN@IRAV19.ira.uka.de \n(Thomas Braun) writes:\n|> I'm looking for shading methods and algorithms.\n|> Please let me know if you know where to get source codes for that.\n\n'Illumination and Color in Computer Generated Imagery' by Roy Hall contains c\nsource for several famous illumination models, including Bouknight, Phong,\nBlinn, Whitted, and Hall illumination models. If you want an introduction to\nshading you might look through the book 'Writing a Raytracer' edited by\nGlassner. Also, the book 'Procedural elements for Computer Graphics' by Rogers\nis a good reference. Source for code in these book are available on the net i \nbelieve, you might check out nic.funet.fi or some site closer to you carrying \ngraphics related stuff. \n\nHope this is what you were asking for.\n-- \nTorgeir Veimo\n\nStudying at the University of Bergen\n\n\"...I'm gona wave my freak flag high!\" (Jimi Hendrix)\n\n\"...and it would be okay on any other day!\" (The Police)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9350, "properties": {"category": "sci.med", "text": "From: lady@uhunix.uhcc.Hawaii.Edu (Lee Lady)\nSubject: Re: Science and Methodology\nSummary: Merely avoiding mistakes doesn't get you anywhere.\nOrganization: University of Hawaii (Mathematics Dept)\nExpires: Mon, 10 May 1993 10:00:00 GMT\nLines: 57\n\nIn article <1993Apr11.015518.21198@sbcs.sunysb.edu> mhollowa@ic.sunysb.edu \n    (Michael Holloway) writes:\n>In article <C552Jv.GGB@news.Hawaii.Edu> lady@uhunix.uhcc.Hawaii.Edu \n    (Lee Lady) writes:\n>>I would also like to point out that most of the arguments about science\n>>in sci.med, sci.psychology, etc. are not about cases where people are\n>>rejecting scientific argument/evidence/proof.  They are about cases where\n>>no adequate scientific research has been done.   (In some cases, there is\n>>quite a bit of evidence, but it isn't in a format to fit doctrinaire\n>>conceptions of what science is.)  \n>\n>Here it is again.  This indicates confusion between \"proof\" and the process\n>of doing science.  \n\nYou are making precisely one of the points I wanted to make.\nI fully agree with you that there is a big distinction between the\n*process* of science and the end result.  \n\nAs an end result of science, one wants to get results that are\nobjectively verifiable.  But there is nothing objective about the\n*process* of science.  \n\nIf good empirical research were done and showed that there is some merit\nto homeopathic remedies, this would certainly be valuable information.\nBut it would still not mean that homeopathy qualifies as a science.  This\nis where you and I disagree with Turpin.  In order to have science, one\nmust have a theoretical structure that makes sense, not a mere\ncollection of empirically validated random hypotheses.\n\nExperiment and empirical studies are an important part of science, but\nthey are merely the culmination of scientific research.  The most\nimportant part of true scientific methodology is SCIENTIFIC THINKING.  \nWithout this, one does not have any hypotheses worth testing.  (No,\nhypotheses do not just leap out at you after you look at enough data.\nNor do they simply come to you in a flash one day while you're shaving or\nlooking out the window.  At least not unless you've done a lot of really\ngood thinking beforehand.)  \n\nThe difference between a Nobel Prize level scientist and a mediocre\nscientist does not lie in the quality of their empirical methodology.  \nIt depends on the quality of their THINKING.  \n\nIt really bothers me that so many graduate students seem to believe that\nthey are doing science merely because they are conducting empirical\nstudies.  And it bothers me even more that there are many fields, such as\ncertain parts of psychology, where there seems to be no thinking at all, \nbut mere studies testing ad hoc hypotheses.  \n\nAnd I'm especially offended by Russell Turpin's repeated assertion that\nscience amounts to nothing more than avoiding mistakes.  Simply avoiding\nmistakes doesn't get you anywhere.  \n\n--\nIn the arguments between behaviorists and cognitivists, psychology seems \nless like a science than a collection of competing religious sects.   \n\nlady@uhunix.uhcc.hawaii.edu         lady@uhunix.bitnet\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9351, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Re: plus minus stat\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 38\n\n\nIn article 20009@ramsey.cs.laurentian.ca, maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n>In <1993Apr15.160450.27799@sol.UVic.CA> gballent@hudson.UVic.CA (Greg  Ballentine) writes:\n\n>>Gainey is the best defensive forward ever.  I stand by that assessment.\n>>He was a very good player who belongs in the hall of fame.  Did you\n>>ever watch him play? He never made a technical error.\n>\n>I watched him over his entire career.  I have NEVER seen a player, and that\n>includes Russell Courtnall and Davie Keon, screw up as many breakaways as\n>Bob Gainey.  And I will never forget the time Denis Potvin caught Gainey\n>with his head down.  You have been sold a bill of goods on Bob Gainey.\n>\n>Gainey was a plugger.  And when the press runs out of things to say about \n>the stars on dynasties they start to hype the pluggers.  Grant Fuhr, Essa\n>Tikkannen, Butch Goring, Bob Nystrom, Bob Gainey, Doug Jarvis, Derek\n>Sanderson, Wayne Cashman, Bob Baun, Bob Pulford, Ralph Backstrom, Henri\n>Richard, Dick Duff...and so on...\n\nThese players all are pretty good players.  They are the depth that the\ndynasties had to win Stanley Cups.  They tend to be the very good second\nline guys- who would be first liners on most weaker clubs in the NHL.\nThey were all important to their clubs.  Probably, several of these\nStanley Cup winning teams would not have won the cups they did if it\nwere not for the depth provided by these players.\n\nThey compare to Rick Tocchet and Ron Francis of the Penguins.  Very good\nplayers who can lead lesser teams (Francis-Hartford, Tocchet-Philly) who\nprovide the depth to the team that is currently best in the NHL.\n\nAs a defensive forward, there have been none better than Bob Gainey.  That\ndoesn't mean he was the best player (or even the best forward) the Canadians\nhad at that time, but he was excellent at what he did.  Gainey could\ndominate games with his defence.  He didn't need to get goals to dominate.\nHe shut down the opposition and was thus valuable.  There has never been\nanyone any better at doing this.  Not ever.\n\nGregmeister\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9352, "properties": {"category": "sci.med", "text": "From: backon@vms.huji.ac.il\nSubject: Re: pointer for info (long shot)\nDistribution: world\nOrganization: The Hebrew University of Jerusalem\nLines: 49\n\nIn article <ZONKER.93Apr14174640@splinter.coe.northeastern.edu>, Regis M Donovan <zonker@silver.lcs.mit.edu> writes:\n> This is something of a long shot... but what the hell.  the net is\n> full of people with strange knowledge...\n>\n> I'm looking for suggestions as to what could be causing health\n> problems one of my relatives is having.\n>\n> One of my cousins has had health problems for much of her life.\n> Around the age of 10 she had some gynecological problems.  Now she's\n> in her early/mid twenties and she is going blind.\n>\n> Her eyes are not producing enough (if any) moisture.  She's been going\n> to Mass Eye and Ear and the doctors there have no clue what the actual\n> cause is.  THey have apparently tried eyedrops and such.  She is just\n> about completely blind in one eye and the other is massively\n> deteriorated.\n\n\nSjogren's syndrome has been known to induce dryness in vaginal tissue as well\nas induce primary biliary cirrhosis. Otherwise the abdominal swelling could be\ndue to a complication of Sjogren's known as pseudolymphoma which *can* produce\na splenomegaly (enlarged spleen). She should definitely see a rheumatologist.\n\nSince you don't mention skin disorder, anemia, or joint pain you'd probably\nrule out erythema nodosum or scleroderma.\n\nJosh\nbackon@VMS.HUJI.AC.IL\n\n\n\n>\n> Also, and this may or may not be related, she is having some changes\n> in her abdomen.  her stomach has swelled (i'm not sure if this is\n> stomach the organ or stomach teh area of the body).\n>\n> I guess the step they're going to take next is to do a whole battery\n> of tests to check all the other internal systmes besides just the\n> eyes...\n>\n> but just because the net is a source of large amounts of bizarre\n> knowledge, i'm going to ask: has anyone ever heard of anything like\n> this?  suggestions of things to ask about (since much of my knowledge\n> about her state comes second or third hand)?\n>\n> Thanks.\n> --Regis\n>   zonker@silver.lcs.mit.edu\n>\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9353, "properties": {"category": "rec.motorcycles", "text": "From: gdoherty@us.oracle.com (Greg Doherty)\nSubject: BMW '90 K75RT For Sale\nDistribution: ca\nOrganization: Oracle Corporation\nLines: 11\nOriginator: gdoherty@kr2seq.us.oracle.com\nNntp-Posting-Host: kr2seq.us.oracle.com\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\n\n[this is posted for a friend, please reply to dschick@holonet.net]\n\n1990 BMW K75RT FOR SALE\n\nAsking 5900.00 or best offer.\nThis bike has a full faring and is great for touring or commuting. It has\nabout 30k miles and has been well cared for. The bike comes with one hard\nsaddle bag (the left one; the right side bag was stolen), a Harro tank bag\n(the large one), and  an Ungo Box alarm. Interested? Then Please drop me a\nline.\nDAS\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9354, "properties": {"category": "sci.med", "text": "From: bmdelane@quads.uchicago.edu (brian manning delaney)\nSubject: Re: diet for Crohn's (IBD)\nReply-To: bmdelane@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 27\n\nOne thing that I haven't seen in this thread is a discussion of the\nrelation between IBD inflammation and the profile of ingested fatty\nacids (FAs).\n\nI was diagnosed last May w/Crohn's of the terminal ileum. When I got\nout of the hospital I read up on it a bit, and came across several\nstudies investigating the role of EPA (an essentially FA) in reducing\ninflammation. The evidence was mixed. [Many of these studies are\ndiscussed in \"Inflammatory Bowel Disease,\" MacDermott, Stenson. 1992.]\n\nBut if I recall correctly, there were some methodological bones to be\npicked with the studies (both the ones w/pos. and w/neg. results). In\nthe studies patients were given EPA (a few grams/day for most of the\nstudies), but, if I recall correctly, there was no restriction of the\n_other_ FAs that the patients could consume. From the informed\nlayperson's perspective, this seems mistaken. If lots of n-6 FAs are\nconsumed along with the EPA, then the ratio of \"bad\" prostanoid\nproducts to \"good\" prostanoid products could still be fairly \"bad.\"\nIsn't this ratio the issue?\n\nWhat's the view of the gastro. community on EPA these days? EPA\nsupplements, along with a fairly severe restriction of other FAs\nappear to have helped me significantly (though it could just be the\nlow absolute amount of fat I eat -- 8-10% calories).\n\n-Brian <bmdelane@midway.uchicago.edu>\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9355, "properties": {"category": "sci.space", "text": "From: dprjdg@inetg1.ARCO.COM (John Grasham)\nSubject: Re: Why not give $1 billion to first year-lo\nOrganization: ARCO Oil and Gas Company\nLines: 44\n\nkeithley@apple.com (Craig Keithley) writes:\n>\n> All in all, I'm not certain that the single goal/prize of staying on the\n> moon for a year is wise and/or useful.  How about:  A prize for the\n> first\n> non-government sponsered unmanned moon landing, then another for a\n> manned\n> moon landing, then yet another for a system to extract consumables from\n> lunar soil, another for a reusable earth/moon shuttle, and so forth. \n> Find\n> some way to build civilian moonbase infrastructure...  Having a single\n> goal\n> might result in a bunch of contestents giving up after one person\n> appeared\n> to win.  And for those that didn't give up, I find something a little\n> scary\n> about a half dozen people huddling in rickety little moon shelters.  I'd\n> like to see as much a reward for co-operation as for competition.\n>\n> Lastly, about ten or fifteen years back I seem to recall that there was\n> an\n> English space magazine that had an on-going discussion about moonbases\n> on\n> the cheap.  I recalled it discussed things like how much heat the human\n> body produced, how much lunar material it'd need for protection from\n> solar\n> flares, etc.  Unfortunately I don't remember the name of this magazine. \n> Does this ring a bell to anyone?\n>\n> Craig Keithley                    |\"I don't remember, I don't recall, \n> Apple Computer, Inc.              |I got no memory of anything at all\"\n> keithley@apple.com                |Peter Gabriel, Third Album (1980)\n>\n\nI love the idea of progressive developmental prizes, but the assumption\nhas\nbeen all along that only the U.S. Gummint could fund the prizes.  It\nwouldn't and couldn't do such a thing ... BUT ...\n\nAn eccentric billionaire COULD offer such a prize or series of prizes.\n\nAnyone know H. Ross Perot or Bill Gates personally?\n\nJohn G.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9356, "properties": {"category": "talk.politics.guns", "text": "From: rats@cbnewsc.cb.att.com (Morris the Cat)\nSubject: Re: Rewording the Second Amendment (ideas)\nOrganization: AT&T\nLines: 29\n\n\n|You believe that individuals should have the right to own weapons of\n|mass destruction?  I find it hard to believe that you would support a \n|neighbor's right to keep nuclear weapons, biological weapons, and nerve\n|gas on his/her property.  \n\nThere is no law prohibiting having biological weapons or nerve gas\non his/her property, or even walking on government property with such\nitems: ipso facto it is now one's _RIGHT_ to have such weapons of\n\"mass destruction.\"\n\nHell, the U.S. patent office has patents on the manufacture of nerve\ngas that anyone can obtain simply by sending a $1.50 to the Patent\nOffice in Washington, D.C. (P.O. Box 8). These same patents are\nverboten to English citizens from their own patent office, which doesn't\nsurprise me based on the mistrust of the UK government against private\nownership of semi-automatic rifles.\n\n|If we cannot even agree on keeping weapons of mass destruction out of\n|the hands of individuals, can there be any hope for us?\n\nSo, you are saying we should have legislation prohibiting owning \nbiological warfare agents or nerve agents? Will you pass laws against\nowning chlorine gas or cyanide as well? Will you pass laws against\nowning acetylene gas that could have been used against the Bradley\nIFVs had the Branch Dividians known of their anti-combustion engine\neffects? Will you pass laws against owning 5-gallon cylinders of\npropane because they could have been used as flame throwers? Yes, the \nproverbial \"Road to Hell;\" it's always for \"Our Own Good.\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9357, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: john@wa3wbu.UUCP (John Gayman)\nSubject: Another happy Gateway owner\nOrganization: WA3WBU, Marysville, PA\nLines: 43\n\n\n   Since I've been seeing all kinds of complaints regarding Gateways\nlately on here, I thought I post my recent pleasant experiences. My\nmachine (4DX2-66V) this past Friday. This was two weeks to the DAY from\nwhen I called the order in. \n\n   Upon unboxing it I found everything to be in perfect order. All the \nperipherals I ordered were properly installed (Jumbo-250 & CD-ROM). I\nwas very impressed with the quantity and quality of the Gateway \ndocumentation. All software came with the original disks and manuals.\nThe Gateway manual itself is in a nice 3-ring binder. The ATI GUP came\nwith build59 drivers. All other software I specified (Microsoft Office)\nwas properly installed. The machine came right up out of the box and \nhas been performing flawlessly. It's been on all weekend and it hardly\neven reaches room temperature. I think the big roomy tower case has a \nlot to do with it. \n\n   It's up and running DOS 6.0 with no problems. I've also read about\nsome people having problems with high speed serial communications. \nI used the DOS 6.0 InterLink program which lets me link to my old\ncomputer via a serial port at 115.2K baud. It then \"maps\" the other\nmachines two hard disks as my disks F & G. You can \"cd\" to these\ndrives and either run programs or copy files. It's almost like a\npeer-peer lan except you can also *run* programs on the other machine.\nIt's not a two way street. The other machine is the server and this\nmachine is the client. So thats where it seems to differ from the \npeer to peer stuff. For a bundled DOS utility its very impressive. \n\n  My Jumbo-250 took about 11 minutes to back up 117MB of data. I also\nby-passed any potential Gateway monitor problems by taking the $430\ncredit and applying it towards a NEC 4FG. I love this monitor!\n\n  So, I'm glad there is some good news Gateway stories and I'm glad it\nwas me. (Now if it just KEEPS working). :-)\n\n\n\t\t\t\t\tJohn\n\n\n-- \nJohn Gayman, WA3WBU \nUUCP: uunet!wa3wbu!john\nPacket: WA3WBU @ WB3EAH \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9358, "properties": {"category": "sci.electronics", "text": "From: bps@ektools.kodak.com (Bruce P. Sidari)\nSubject: Re: A question about 120VAC outlet wiring..\nOrganization: Eastman Kodak\nLines: 29\n\nIn article <1993Apr15.212629.1834@cmkrnl.com> jeh@cmkrnl.com writes:\n>In article <1993Apr14.172145.27458@ecsvax.uncecs.edu>, crisp@ecsvax.uncecs.edu (Russ Crisp) writes:\n>> I'm considering modernizing some old wiring in my home, and\n>> I need a little advice on outlet wiring.  Several outlets\n>> are the old 'two prong' type, without the ground.  Naturally,\n>> the wire feeding these outlets is 12/2, WITHOUT the ground\n>> wire.  I noticed at the fusebox that some circuits have the\n>> 12/2 with ground, and that on these circuits, the ground\n>> wire was tied to the same bus as the neutral (white) wire.\n>\n>They are supposed to be connected together at the breaker panel... but nowhere,\n>repeat NOwhere, else.  (Well, almost.  There are strange exceptions for things\n>like sub-panels.)\n>\n>\n>\t--- Jamie Hanrahan, Kernel Mode Systems, San Diego CA\n>Internet:  jeh@cmkrnl.com  Uucp: uunet!cmkrnl!jeh  CIS: 74140,2055\n>\n\nNot even in sub panels!  The only place the neutral should be connected to the\nground is in a SERVICE DISCONNECT!  In your house the \"main\" panel serves as\nthe service disconnect.  Sub panles in your garage or workshop for example must\nmaintain seperate neutral and ground busses because they are not  service\ndisconnect equipment.\n\n\nSteve Woodard, KD2KQ - not a licensed electrician, but I can read the NEC book.\n                       (my brother is though)  :)\n \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9359, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsd.cc.buffalo.edu (Robert Weiss)\nSubject: [lds] Gordon's question on the Nicene Creed\nOrganization: University at Buffalo\nLines: 28\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsd.cc.buffalo.edu\n\nGordon Banks quoted and added...\n\ngb> In article <C50M5p.Eoz@acsu.buffalo.edu>\ngb> psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss) writes:\ngb>\ngb> >\ngb> >  Christians have professed for more than 1660 years the Nicene\ngb> >Creed, a statement of beliefs drawn from the truths of Scripture\ngb> >that was officially accepted by a council of church bishops\ngb> >and leaders at Nicea in 325 A.D. Christians still recite\ngb> >this creed regularly in public worship.\ngb> >\ngb>\ngb> So prior to 325 AD there were no Christians?  Or all of them really\ngb> believed the Nicean creed even before it was formulated?  Do you\ngb> really believe such an absurdity?  I'm afraid you do.  \n\n     No.\n     I really don't. Honest.\n\n     The Nicene Creed, as I mentioned above, is a brief statement of\n     beliefs that are derived from Scripture. That this certain list\n     did not exist earlier does not indicate that the beliefs summarized \n     in in did not exist before the formula was derived.\n\n=============================\nRobert Weiss\npsyrobtw@ubvms.cc.buffalo.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9360, "properties": {"category": "rec.autos", "text": "From: davew@cs.umd.edu (David G. Wonnacott)\nSubject: Questions about insurance companies (esp. Geico)\nDistribution: usa\nOrganization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742\nLines: 13\n\nI'm considering switching to Geico insurance, but have heard that\nthey do not assign a specific agent for each policy or claim.  I was\nworried that this might be a real pain when you make a claim.  I have\nalso heard that they try to get rid of you if you have an accident.\n\nI'm interestend in determining whether or not these things are true.\nHas anyone out there with Geico made a claim?  I'd be interested in\nhearing whether or not you were satisfied with the service and whether\nyou then had trouble renewing your policy.\n\nI'm also interested in any good or bad stories about Liberty Mutual or\nState Farm.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9361, "properties": {"category": "misc.forsale", "text": "From: 5417younisa@vms.csd.mu.edu\nSubject: Wanted IDE hard drive >40\nOrganization: Marquette University - Computer Services\nLines: 2\nReply-To: 5417younisa@vms.csd.mu.edu\nNNTP-Posting-Host: vmsf.csd.mu.edu\n\n and  A VGA monitor..\ne-mail\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9362, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Cobra Locks\nOrganization: NEC Systems Laboratory, Inc.\nDistribution: usa\nLines: 55\n\nIn article <1r1b3rINNale@cronkite.Central.Sun.COM> doc@webrider.central.sun.com writes:\n>I was posting to Alt.locksmithing about the best methods for securing \n>a motorcycle.  I got several responses referring to the Cobra Lock\n>(described below).  Has anyone come across a store carrying this lock\n>in the Chicago area?\n\n\tIt is available through some dealerships, who in turn have to back\norder it from the manufacturer directly.  Each one is made to order, at least\nif you get a nonstandard length (standard is 5', I believe).\n\n>Any other feedback from someone who has used this?\n\n\tSee below\n\n>In article 1r1534INNraj@shelley.u.washington.edu, basiji@stein.u.washington.edu (David Basiji) writes:\n>> \n>> Incidentally, the best lock I've found for bikes is the Cobra Lock.\n>> It's a cable which is shrouded by an articulated, hardened steel sleeve.\n>> The lock itself is cylindrical and the locking pawl engages the joints\n>> at the articulation points so the chain can be adjusted (like handcuffs).\n>> You can't get any leverage on the lock to break it open and the cylinder\n>> is well-protected.  I wouldn't want to cut one of these without a torch\n>> and/or a vice and heavy duty cutting wheel.\n\n\tI have a 6' long CobraLinks lock that I used to use for my Harley (she\ndoesn't get out much anymore, so I don't use the lock that often anymore).  It\nis made of 3/4\" articulated steel shells covering seven strands of steel cable.\nIt is probably enough to stop all the joyriders, but, unfortunately,\nprofessionals can open it rather easily:\n\n\t1) Freeze a link.\n\n\t2) Break frozen link with your favorite method (hammers work well).\n\n\t3) Snip through the steel cables (which, I have on authority, are\n\t\tfrightfully thin) with a set of boltcutters.\n\n\tFor the same money, you can get a Kryptonite cable lock, which is\nanywhere from 1/2\" to 7/8\" thick steel cable (looks like steel rope), shielded\nin a flexible covering to protect your bike's finish, and has a barrel-type\nlocking mechanism.  I don't know if it's adjustable, but my source says it's\nmore difficult to pick than most locks, and the cable tends to squish flat\nin bolt-cutter jaws rather than shear (5/8\" model).\n\n\tAll bets are off if the thief has a die grinder with a cutoff wheel.\nEven the most durable locks tested yield to this tool in less than one minute.\n\n\tFYI, I'll be getting a Krypto cable next paycheck.\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9363, "properties": {"category": "sci.crypt", "text": "From: paul@charon.gsfc.nasa.gov (Paul Olson)\nSubject: Re: White House Public Encryption Management Fact Sheet\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: Mission Operations and Data Systems\nDistribution: na\nLines: 44\n\nIn article <1qnav4$r3l@transfer.stratus.com>, cme@ellisun.sw.stratus.com (Carl Ellison) writes...\n>In article <C5LGAz.250@dove.nist.gov> clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement) writes:\n> \n>>Further, the Attorney General\n>>shall utilize funds from the Department of Justice Asset Forfeiture\n>>Super Surplus Fund to effect this purchase.\n> \n>Talk about adding insult to injury ... \n> \n>I, for one, believe that the use of civil forfeiture should be abolished by\n>a decent administration, not continued.  Instead, it looks like that\n>ill-gotten gain will be used to help pay for wiretap equipment.\n\nI wholeheartedly agree.  Knowing that WE have let our law enforcement agencies\nseize our property against the Fifth Amendment of OUR Constitution tells me that\nwe are absolving ourselves of our responsibility for SELF-GOVERNANCE.  WE have\nto take our government back from the self-serving politicians who create laws\nand rules only to better their positions within the government.  WE have allowed\nthem to take too much power from the people of this nation.  That situation has\nto be changed.\n\nAllowing the law enforcement agencies to use the seized property to pay-off drug\ninformants who lie and continue to deal in drugs is tantamount to making a pact\nwith the Devil himself.  It's a vicious cycle.  The law enforcement agencies are\nmotivated to seize property to fund their own activities.  And having no easy\nway for the citizen to regain the property intact once taken gives even more\nincentive for the agencies to take property.\n\nIt's also interesting to note that two months ago Rush Limbaugh said that\nClinton would have the \"plumbers\" out in force shortly.  Clinton and his\nhenchmen firmly believe in strong ubiquitous government control.  Anytime a\nleader believes in that, the leader will use every means possible to retain that\ncontrol and take more.\n\nWE have to take OUR government back.  Otherwise we will end up living in the\nequivalent of a high-tech third world dictatorship.  We have to take\nresponsibility for ourselves, our personal welfare, and our actions.\n\n       __  Paul J. Olson - VAX Systems Manager & Resident Amiga Addict\n  C=  ///  Voice -    301/286-4246, 301/210-7701\n __  ///   DECnet-    CHARON::PAUL                                    \n \\\\\\///    Internet - paul@charon.gsfc.nasa.gov                       \n  \\XX/     Disclaimer: Statements in my messages are wholely my own.   \n  AMIGA    \"Ignorance is a renewable resource.\" -- P.J. O'Rourke\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9364, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Great Post! (was Re: Candida (yeast) Bloom...) (VERY LONG)\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 50\n\nIn article <noringC5wzM4.41n@netcom.com> noring@netcom.com (Jon Noring) writes:\n\nHate to wreck your elaborate theory, but Steve Dyer is not an MD.\nSo professional jealosy over doctors who help their patients with\nNystatin, etc., can't very well come into the picture.  Steve\ndoesn't have any patients.\n\n\n\n>response to specificially Candida albicans, and I showed a strong positive.\n>Another question, would everybody show the same strong positive so this test\n>is essentially useless?  And, assuming it is true that Candida can grow\n\nYes, everyone who is normal does that.  We use candida on the other arm\nwhen we put a tuberculin test on.  If people don't react to candida,\nwe assume the TB test was not conclusive since such people may not\nreact to anything.  All normal people have antibodies to candida.\nIf not, you would quickly turn into a fungus ball.\n\n>This brings up an interesting observation used by those who will deny\n>and reject any and all aspects of the 'yeast hypothesis' until the\n>appropriate studies are done.  And that is if you can't observe or culture\n>the yeast \"bloom\" in the gut or sinus, then there's no way to diagnose or\n>even recognize the disease.  And I know they realize that it is virtually\n>impossible to test for candida overbloom in any part of the body that cannot\n>be easily observed since candida is everywhere in the body.\n>\n>It's a real Catch-22.\n>\n\nYou've just discovered one of the requirements for a good quack theory.\nFind something that no one can *disprove* and then write a book saying\nit is the cause of whatever.  Since no one can disprove it, you can\nrake in the bucks for quite some time.  \n\n>>...I have often wondered what an M.D. with chronic \n>>GI distress or sinus problems would do about the problem that he tells his \n>>patients is a non-existent syndrome.\n>\n\nThat is odd, isn't it?  Why do you suppose it is that MDs with these\ncommon problems don't go for these crazy ideas?  Does the \"professional\njealosy\" extend to suffering in silence, even though they know they\ncould be cured if they just followed this quack book?\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9365, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 61\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\npmetzger@snark.shearson.com (Perry E. Metzger) writes:\n> I'm a political dissident. I'm scared shitless of the feds listening in \n> on my calls. My opinions are the sort that would get me \n> \"disappeared\" in a slightly less free society -- and who knows what \n> sort of society we will be in in five or ten years? I have friends who \n> have had their phones tapped -- none of this is theoretical to me. \n\nI understand, believe it or not, and there are any number of kinds of \nconversation and communication I engage in that I wouldn't even consider \nusing this scheme for.  On the other hand, I don't see \"Clipper\" as providing \na secure channel--it just prevents casual eavesdropping.  This is part of why \nI am not worried about it per se.  Trying to look at Clipper as a serious \nsecurity tool is simply ludicrous.  It's a voice scrambler, nothing more.\n\nThere is still plenty of market for real crypto.\n\n> As for \"its better than the status quo\", well, first of all, you can \n> get a cryptophone from companies like Cylink today -- and they work \n> well.\n\nThey cost an arm and a leg, though. \"Clipper\" is obviously aimed at the mass \nmarket.  It certainly won't put Cylink out of business.\n\n> In addition, a number of groups are now working on building \n> software to turn any PC into a privacy enhanced phone right now -- and \n> they are all working in overdrive mode. \n\nThis is old news.  I can do this now.\n\n> There ARE no crypto restrictions... yet. You can use anything you want \n> RIGHT NOW. The point is to maintain that right. \n\nThere ARE restrictions.  Example: We're a networking software vendor with a \nlarge overseas share of our market.  We cannot currently ship PEM, or even \nsimple DES, in our products without case-by-case approval from the Department \nof State.  ITAR presents a material trade barrier to US firms trying to \ncompete in international information systems markets.\n\nSure, you can use whatever freebie software you want to talk over BBS's in \nthe USA.  I, on the other hand, want strong crypto (PKCS, for example) to be \nthe *default* for electronic mail, worldwide.  I want priests to be able to \nhear confession over email.  I want lawyers to be able to talk to clients in \nconfidence over email, or doctors talk with patients.  I want to be able to \norder products from my favorite Japanese mail-order catalog over the net.  I \nwant to be able to sign contracts, transact business, and so on \nelectronically.\n\nThis is so far infeasible as a result of the current restrictions on \ncrytographic systems, especially beyond the borders of the USA.\n\nClipper is irrelevant, and if it distracts the authorities into feeling safe, \nall the better.  Its only danger is if it emboldens them into trying to put \nmore restrictions into place, on the theory that it is \"good enough for \nanyone who has nothing to hide.\"  That argument is, of course, utter BS, just \nas much as \"no one needs an assault rifle\".\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9366, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Salvation by deeds\nOrganization: Indiana University\nLines: 3\n\nAnother guess to your salvation riddle would be \"saved\".\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9367, "properties": {"category": "talk.politics.misc", "text": "From: garrod@dynamo.ecn.purdue.edu (David Garrod)\nSubject: Haiti  AIDS/HIV IMMIGRANTS\nOrganization: Purdue University Engineering Computer Network\nDistribution: usa\nLines: 23\n\n\n\n     In case you missed it on the news....the first 16 Haitians\nof many that tested positive for HIV and were being held on a\nbase in Cuba have been flown to the U.S.\n     Further a U.S. judge has ruled that they must receive\nmedical treatment or be returned to a place where they could\nreceive same.\n\n      So guess what folks, we taxpayers get to pick up the tab \n(just as you might have expected) for people who have never\ncontributed a dime to the U.S. society.\n\n      I think this government has its priorities ALL SCREWED UP.\nIf they want to help Haitians....how about removing the illegal\ngovernment, how about giving them development aid?\nIT DOES NOT MAKE SENSE to waste resources on dying non-citizens\nwho will never be productive in either this country or their own.\nIt does not make sense when the same resources applied or even\njust plain given to poor people in Haiti could significantly\nhelp 100 people in Haiti per 1 AIDS-infected non-citizen immigrant.\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9368, "properties": {"category": "alt.atheism", "text": "From: ingles@engin.umich.edu (Ray Ingles)\nSubject: Re: There must be a creator! (Maybe)\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 51\nDistribution: world\nNNTP-Posting-Host: syndicoot.engin.umich.edu\n\nIn article <1993Apr2.144909.806@batman.bmd.trw.com> jbrown@batman.bmd.trw.com writes:\n>In article <1993Apr2.165032.3356@bradford.ac.uk>, L.Newnham@bradford.ac.uk (Leonard Newnham) writes:\n[deletions]\n>>...Argument from incredulity has not been considered a valid form of\n>> reasoning since medieval times.\n[deletions]\n>Interesting that you should mention that \"Argument from incredulity has\n>not been considered a valid form of reasoning since medieval times.\"  I\n>quite agree.  Why then, do some atheists here engage in it?  More than\n>a few times I have read posts where the atheists posting state that\n>they 'cannot see how a gracious and loving God can allow such evil and\n>suffering to occur as we see on the earth.'  Simply because they cannot\n>envision it, it must not be true.  If this is not an argument from\n>incredulity, I don't know what is!\n\n As you have presented it, it is indeed an argument from incredulity.\nHowever, from what I have seen, it is not often presented in this manner.\nIt is usually presented more in the form, \"And *besides*, I cannot see...\n...nor have I ever been offered a convincing explanation.\"\n Moreover, it is not unreasonable to ask for an explanation for such\nphenomena. That theism does not provide a convincing explanation is not\nan argument in theism's favor. Especially when different theisms offer \ndifferent explanations, and even different adherents of what is purportedly\nthe same theism give different explanations...\n\n>                                    God has far more complex motivations\n>and reasons for action or non-action than to simply \"fix\" evil whenever\n>and however it occurs, or even *before* it occurs.  And yet, it is this\n>very same argument from incredulity which ranks high among reasons\n>why atheists (in general) reject God and in particular the Christian God.\n\n Not im my experience. In my experience, the most common reason is the\nlack of evidence in theism's favor. You mileage may vary. :->\n\n>This seems to be the universal bane of human reasoning and rationality, \n>to wit, that it is far easier to see the logical fallacy or inept reasoning \n>on the part of one's opponents than it is to see it in oneself.\n\n Oh, heck, I'll be snide this once. :-> It's also fairly easy to attack\narguments that are not made. (I.e. 'strawmen'.)\n\n>As one Man of Wisdom put it, take the log out of your own eye before you \n>try to remove the splinter from your neighbor's eye.\n\n Sage advice indeed.\n\n Sincerely,\n\n Raymond Ingles                       ingles@engin.umich.edu\n\n \"An apple every eight hours keeps three doctors away.\" - B. Kliban\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9369, "properties": {"category": "sci.crypt", "text": "Subject: Re: Once tapped, your code is no good any more.\nFrom: pgut1@cs.aukuni.ac.nz (Peter Gutmann)\nOrganization: Computer Science Dept. University of Auckland\nLines: 48\n\nIn <1993Apr21.001707.9999@ucsu.Colorado.EDU> andersom@spot.Colorado.EDU (Marc Anderson) writes:\n\n>(the date I have for this is 1-26-93)\n\n>note Clinton's statements about encryption in the 3rd paragraph..  I guess\n>this statement doesen't contradict what you said, though.\n\n>--- cut here ---\n\n>        WASHINGTON (UPI) -- The War on Drugs is about to get a fresh\n>start, President Clinton told delegates to the National Federation\n>of Police Commisioners convention in Washington.\n>        In the first speech on the drug issue since his innaugural,\n>Clinton said that his planned escalation of the Drug War ``would make\n>everything so far seem so half-hearted that for all practical\n>purposes this war is only beginning now.'' He repeatedly emphasized\n>his view that ``regardless of what has been tried, or who has tried\n>it, or how long they've been trying it, this is Day One to me.''\n>The audience at the convention, whose theme is ``How do we spell\n>fiscal relief?  F-O-R-F-E-I-T-U-R-E,'' interrupted Clinton frequently\n>with applause.\n>        Clinton's program, presented in the speech, follows the\n>outline given in his campaign position papers: a cabinet-level Drug\n>Czar and ``boot camps'' for first-time youthful offenders.  He did,\n>however, cover in more detail his plans for improved enforcement\n>methods.  ``This year's crime bill will have teeth, not bare gums,''\n>Clinton said.  In particular, his administration will place strict\n>controls on data formats and protocols, and require the registration\n>of so-called ``cryptographic keys,'' in the hope of denying drug\n>dealers the ability to communicate in secret.  Clinton said the\n>approach could be used for crackdowns on other forms of underground\n>economic activity, such as ``the deficit-causing tax evaders who\n>live in luxury at the expense of our grandchildren.''\n>        Clinton expressed optimism that the drug war can be won\n>``because even though not everyone voted for Bill Clinton last\n>November, everyone did vote for a candidate who shares my sense of\n>urgency about fighting the drug menace.  The advocates of\n>legalization -- the advocates of surrender -- may be very good at\n>making noise,'' Clinton said.  ``But when the American people cast\n>their ballots, it only proved what I knew all along -- that the\n>advocates of surrender are nothing more than a microscopic fringe.''\n\nJust doing a quick reality check here - is this for real or did someone\ninvent it to provoke a reaction from people?  It sounds more like the\nsort of thing you'd have heard, suitably rephrased, from the leader of a \ncertain German political party in the 1930's....\n\nPeter. \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9370, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dmoyer@ccscola.Columbia.NCR.COM (Dan Moyer)\nSubject: Re: Motherboard and BIOs\nNntp-Posting-Host: ccscola\nOrganization: NCR Corp, E&M-Columbia, Columbia, SC\nLines: 19\n\nIn article <1993Apr6.152408.28341@news.unomaha.edu> hkok@cse (Kok Hon Yin) writes:\n>Can someone please tell me where can I get the best deal for Micronics or AMI\n>486-66 Motherboard with VL-BUS?  You can reply to me thru e-mail or to this\n>group. \n>\n\nI purchased a Super Voyager VLB 33Mhz board from Washburn & Company a month ago.\nI don't have the mailing address-- Clyde Washburn advertises regularly in PC Week.  He can also be reached via CompuServe.    The phone number is    \n1-800-836-8027.\n\nI think Washburn has very competitive prices compared to other AMI distributers,plus I liked  the fact he's a EE that knows what he's talking about\nconcerning hardware, and he can be easily reached via CompuServe for non  \ncritcle questions, and is very informative to his customers over the phone.\n\nRegards\nDan Moyer\nDan.Moyer@ColumbiaSC.NCR.COM\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.442+0000", "event": "documents", "entityId": 9371, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: Level 5?\nOrganization: Texas Instruments Inc\nDistribution: sci\nLines: 33\n\nIn <C5sy4s.4x2.1@cs.cmu.edu> 18084TM@msu.edu (Tom) writes:\n\n\n>Nick Haines sez;\n>>(given that I've heard the Shuttle software rated as Level 5 in\n>>maturity, I strongly doubt that this [having lots of bugs] is the case).\n\n>Level 5?  Out of how many?  What are the different levels?  I've never\n>heard of this rating system.  Anyone care to clue me in?\n\nSEI Level 5 (the highest level -- the SEI stands for Software\nEngineering Institute).  I'm not sure, but I believe that this rating\nonly applies to the flight software.  Also keep in mind that it was\n*not* achieved through the use of sophisticated tools, but rather\nthrough a 'brute force and ignorance' attack on the problem during the\nChallenger standdown - they simply threw hundreds of people at it and\ndid the whole process by hand.  I would not consider receiving a 'Warning'\nstatus on systems which are not yet in use would detract much (if\nanything) from such a rating -- I'll have to get the latest copy of\nthe guidelines to make sure (they just issued new ones, I think).\n\nAlso keep in mind that the SEI levels are concerned primarily with\ncontrol of the software process; the assumption is that a\nwell controlled process will produce good software.  Also keep in mind\nthat SEI Level 5 is DAMNED HARD.  Most software in this country is\nproduced by 'engineering practicies' that only rate an SEI Level 1 (if\nthat). \n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9372, "properties": {"category": "misc.forsale", "text": "From: radley@gibbs.oit.unc.edu (Keith Radley)\nSubject: Electronics\nSummary: new address\nNntp-Posting-Host: gibbs.oit.unc.edu\nOrganization: University of North Carolina at Chapel Hill\nDistribution: usa\nLines: 21\n\n \nPanasonic KX-T3000H, Combo black cordless & speaker phone all in one.\n new- $160, now- $100 + shipping OBO.\n \nCurtis Mathes VHS VCR Remote included and it works with universal remotes.\n Works great but I replaced it with a Stereo VCR.\n paid $300 years ago, will sell for $125 delivered OBO.\n \nRadio Shack stereo amp.  2 inputs, tone, and left and right volume.  Speakers\n not included.  $20 plus shipping.\n \nIf you are interested in either of the above mail me at\n radley@gibbs.oit.unc.edu or call me, Keith, at 919-968-7779.\n \nPS- I made a type on my email address the first posting.  It is now correct.\n\n        _\n    _  //       Major: Computer Science              /<eith Radley\n    \\\\//        Minor:     English              Radley@gibbs.oit.unc.edu\n     \\/      Computer:   AMIGA 3000           University of North Carolina\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9373, "properties": {"category": "sci.med", "text": "From: bhjelle@carina.unm.edu ()\nSubject: Re: Fungus \"epidemic\" in CA?\nOrganization: University of New Mexico, Albuquerque\nLines: 26\nDistribution: na\nNNTP-Posting-Host: carina.unm.edu\n\nIn article <19435@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>>In article steward@cup.portal.com (John Joseph Deltuvia) writes:\n>>\n>>>There was a story a few weeks ago on a network news show about some sort\n>>>of fungus which supposedly attacks the bone structure and is somewhat\n>>>widespread in California.  Anybody hear anything about this one?\n>>\n>\n>The only fungus I know of from California is Coccidiomycosis.  I\n>hadn't heard that it attacked bone.  It attacks lung and if you\n>are especially unlucky, the central nervous system.  Nothing new\n>about it.  It's been around for years.  THey call it \"valley\n>fever\", since it is found in the inland valleys, not on the coast.\n\nThere is a mini-epidemic of Coccidiodes that is occurring in,\nI believe, the Owen's Valley/ Bishop area east of the Sierras.\nI don't believe there has been any great insight into the\nincreased incidence in that area. There is a low-level\nof endemic infection in that region. Many people with\nevidence of past exposure to the organism did not have\nserious disease.\n\nBrian\n>\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9374, "properties": {"category": "rec.sport.baseball", "text": "From: bohnert@leland.Stanford.EDU (matthew bohnert)\nSubject: Re: Rickey Henderson\nOrganization: DSG, Stanford University, CA 94305, USA\nDistribution: usa\nLines: 26\n\n>\n>And Michael Jackson, Jack Nicholson, and Bill Cosby wouldn't be \n>making near as much money if they weren't entertainers. So what's\n>your point?\n\nActually, I could care less what his salary is.  It has something to do\nwith the fact that we live in America, and everyone is entitled to\nwhatever he can legally obtain.  If Sandy Alderson and the Haas family\nwillingly negotiate a salary of $35 million per year with Rickey, I couldn't\ncare less.\n\nBut what REALLY GETS MY GOAT is the bullshit he spouted in spring training,\nabout `Well... sometimes I may not play as hard, or might be hurt more\noften, in a place where I'm not appreciated'.  This quote was in the Chronicle\nabout the second week of camp, and strongly suggests that he was going to \ndog it all year if the ownership didn't kiss his butt and ante up some\nmore money.  For God's sake, Rickey, you signed a contract 4 years ago,\nnow honor it and play!  \n\nSay all you want to about Steve Garvey, and believe\nme, I hated him too, but at least when he put his signature on a piece\nof paper he shut his mouth and played hard until the contract was up.\n\nMatt Bohnert\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9375, "properties": {"category": "comp.sys.mac.hardware", "text": "From: vng@iscs.nus.sg\nSubject: Wyse 60 Terminal Emulator\nReply-To: VNG@ISCS.NUS.SG\nOrganization: Dept of Info Sys and Comp Sci, National University of Singapore, SINGAPORE\nLines: 6\n\nIs there a Wyse 60 Terminal Emulator or a comms toolbox kit available on the\nnet somewhere?\n\nThanks.\n\nVince\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9376, "properties": {"category": "talk.religion.misc", "text": "From: bskendig@netcom.com (Brian Kendig)\nSubject: Is it good that Jesus died?\nOrganization: Starfleet Headquarters: San Francisco\nLines: 114\n\nbrian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615) writes:\n>Brian Kendig writes:\n>\n>>If you can explain to me why the death of Jesus was a *good* thing,\n>>then I would be very glad to hear it, and you might even convert me.\n>>Be warned, however, that I've heard all the most common arguments\n>>before, and they just don't convince me.\n>\n>Ask Jesus himself.  He himself said why in John 12:23-32.  It\n>isn't a mystery to anyone and there certainly is no need for\n>a persuasive argument.   Read Jesus's own reply to your\n>question.\n\nJohn 12:24-26: \"Most assuredly, I say to you, unless a grain of wheat\nfalls onto the ground and dies, it remains alone; but if it dies, it\nproduces much grain.\n  \"He who loves his life will lose it, and he who hates his life in\nthis world will keep it for eternal life.\n  \"If anyone serves Me, let him follow Me; and where I am, there My\nservant will be also.  If anyone serves Me, him My Father will honor.\"\n\nWhy would I want an eternal life if I hate this one?\n\nIf we were created by a deity, why would that deity not wish us to\nenjoy what he has given us?\n\nWhy would I want to live forever?  The challenge in my life is that I\nwill die, and that I must give my life the meaning I wish it to have\nbefore that happens.  My time is here and will someday pass; I will be\ncontent to live on in the memories of my friends, and once they too\nare dead, then I will no longer have any reason to exist.\n\nIn short: even if your deity *does* exist, that doesn't automatically\nmean that I would worship it.  I am content to live my own life, and\nfend for myself, so when I die, I can be proud of the fact that no\nmatter where I end up, it will be because of *my* actions and *my* choices.\n\nIf your god decides to toss me into a flaming pit for this, then so be\nit.  I would much rather just cease to exist.  But if your god wants\nmy respect and my obedience, then it had better earn these; and if it\ndoes, then they will be very strong and true.\n\n>Jesus gives more reasons in John 16:7.  But one obvious reason\n>why Jesus died, (and as with everything else, it has nothing do with\n>his punishment) was that he could rise to life again--so that\n>we would \"stop doubting and believe\" (John 21:27).  The fact\n>that Jesus rose from the dead is my hope that I too will rise\n>from the dead.  It is an obvious point.  Do not overlook it.\n>Without this obvious point, I would have no hope\n>and my faith would be vanity.\n\nJesus wasn't the only one who rose from the dead -- I think it was\nOsiris who did the same, as well as a few characters from Greek or\nNorse legend, if memory serves.\n\nBut still: WHY would I want to rise from the dead?  Why do *you* want to?\n\n>Why did Jesus suffer in his death?  Again, ask Jesus.  Jesus\n>says why in John 15:18-25.   That's no mystery either.  \"The\n>world hates him without reason.\"  It is a direct proclamation\n>of how far we humans botch things up and thus, how much we\n>need a Saviour.\n\nIf your god wants to win my devotion, then it knows what it can do --\nprovide some way for me to believe without having to resort to blind\nfaith that could be applied equally well to any religion.\n\n>And why can't you, Brian K., accept this?  How can you?  \"The\n>world cannot accept him because it neither sees him nor knows\n>him.\"  (John 14:17).\n\nThat's precisely it.  I neither see nor know Zeus either, nor Odin.\nShall I offer them the same devotion I offer Jesus?\n\n>The animosity and the lack of knowledge\n>that comes out in your twistings of Robert's daily verses is\n>very convincing testimony of the truth of John 14:17 and 16:25.\n\nYou've got to understand my point-of-view: I see Christians spouting\nBible verse all the time as if it were some sort of magic spell that\nwill level all opposition.  Truth is, it's not.  Robert has never\ndemonstrated that he actually understands what the verses imply; he\njust rattles them off day by day.  Some brazenly fly in the face of\ncommon sense and reality, and I point these out where I can.\n\nBut even more than that, even when Christians *do* try to explain the\nverses in their own words, they do so from a Christian point of view,\nwhich is that every human being would want to be a Christian if only\nhe or she understood the Christian message properly, and then all\nstrife and suffering on the earth would end.  Here's the problem with\nthat: substitute \"Moslem\" or \"Buddhist\" or \"Satanist\" instead of\n\"Christian\", and it means the same thing.\n\nChristanity is a very nice belief set around a very nice book.  But if\nyou want to make me believe that it has any bearing on the REAL WORLD,\nyou've got some convincing to do.\n\n>I pray and hope that I do blurt out such animosity and lack of\n>knowledge. I am not perfect either.  But regardless of that, I thank\n>God that Jesus revealed himself to me, without whom I'd also be\n>bumbling about blindly though arrogantly slandering the very\n>Person who created me and who loves me.\n\nAnd in my opinion, you're bumbling about blindly making up entities\nwhere there aren't any, and depriving yourself of a true understanding\nand enjoyment of your life.  As long as you keep your beliefs to\nyourself, I'll keep my beliefs to myself -- but as soon as you start\nwaving them around, expect me to toss in my opinions, too.\n-- \n_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n_/_/                            n'etre fait comme aucun de ceux qui existent.\n  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n /    is that it ends.                                           -- Rousseau\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9377, "properties": {"category": "soc.religion.christian", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Re: Should Christians fight? / Justifiable war\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 35\n\nIn article gideon@otago.ac.nz (Gideon King) writes:\n\n>I posted this a couple of weeks ago, and it doesn't seem to have appeared  \n>on the newsgroup, and I haven't had a reply from the moderator. We were  \n>having intermittent problems with our mail at the time. Please excuse me  \n>if you have seen this before...\n>\n>Should Christians fight?\n>\n>Last week Alastair posted some questions about fighting, and whether there  \n>are such things as \"justifiable wars\". I have started looking into these  \n>things and have jotted down my findings as I go. I haven't answered all  \n>his questions yet, and I know what I have here is on a slightly different  \n>tack, but possibly I'll be able to get into it more deeply later, and post  \n>some more info soon.\n\nMay I suggest the book: \"Ethics\" by Dr. Norm Geisler, of Dallas Theological\nSeminary.  In it, he goes over all the arguments pro and con and in-between,\nand comes up with a very reasonable answer.  If I have time, and there is\nenough interest, I may post his position.\n\nJon Noring\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9378, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nDistribution: na\nLines: 28\n\nIn article <C4tM1H.ECF@magpie.linknet.com>, manes@magpie.linknet.com (Steve Manes) writes:\n>\n>For chrissakes, take out your calculator and work out the numbers.\n>Here... I've preformatted them for you to make it easier:\n>\n>\t\t\thandgun homicides/population\n>\t\t\t----------------------------\n>\tSwitzerland :\t24 /  6,350,000\n>\t         UK :    8 / 55,670,000\n>\n>.... and then tell me again how Switzerland is safer with a more\n>liberal handgun law than the UK is without...by RATE or TOTAL NUMBER.\n>Your choice.\n\nPlease, PAY ATTENTION.\nI, and others, were referring to TOTAL HOMICIDE DEATHS, NOT JUST\nHANDGUN HOMICIDES.  In terms of how likely are you to be killed,\n(regardless of how it's done, 'cause DEAD is DEAD), the UK has a\nhigher homicide rate. Period.  You are more likely to be killed in the\nUK than in Switzerland.  If you were to be murdered with a handgun,\nthen yes, Switzerland has a higher rate.  But, to belabor the point,\nyou are MORE LIKELY to be murdered in the UK. In that sense, the\nweapon is irrelevant.  The UK is more violent, period.\n\nAl\n[standard disclaimer]\n\n>\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9379, "properties": {"category": "sci.med", "text": "From: bhjelle@carina.unm.edu ()\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nOrganization: University of New Mexico, Albuquerque\nLines: 27\nNNTP-Posting-Host: carina.unm.edu\n\n\nGordon Banks:\n\n>a lot to keep from going back to morbid obesity.  I think all\n>of us cycle.  One's success depends on how large the fluctuations\n>in the cycle are.  Some people can cycle only 5 pounds.  Unfortunately,\n>I'm not one of them.\n>\n>\nThis certainly describes my situation perfectly. For me there is\na constant dynamic between my tendency to eat, which appears to\nbe totally limitless, and the purely conscious desire to not\nput on too much weight. When I get too fat, I just diet/exercise\nmore (with varying degrees of success) to take off the\nextra weight. Usually I cycle within a 15 lb range, but\nsmaller and larger cycles occur as well. I'm always afraid\nthat this method will stop working someday, but usually\nI seem to be able to hold the weight gain in check.\nThis is one reason I have a hard time accepting the notion\nof some metabolic derangement associated with cycle dieting\n(that results in long-term weight gain). I have been cycle-\ndieting for at least 20 years without seeing such a change.\n\nI think a vigorous exercise program can go a long way toward\nkeeping the cycles smaller and the baseline weight low.\n\nBrian\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9380, "properties": {"category": "rec.sport.hockey", "text": "From: ingo@sunee.uwaterloo.ca (Electroholic)\nSubject: Re: Hockey & Hispanic market\nOrganization: University of Waterloo\nDistribution: na\nLines: 34\n\nIn article <115868@bu.edu> icop@csa.bu.edu (Antonio Pera) writes:\n>\n>In article <saross01.734885336@starbase.spd.louisville.edu>, saross01@starbase.spd.louisville.edu (Stacey A. Ross) writes:\n>|> In <C5I2s2.3Bt@odin.corp.sgi.com> rickc@wrigley.corp.sgi.com (Richard Casares) writes:\n>|> >You'll have a hard time selling any sport to a community that\n>|> >can't play it on account of availability or financial reasons.\n>|> >Hockey is pretty much a sport for the white and well off.\n>\n>What is this crap? I'm only interested in intelligent discussion. If you \n>can't answer my question, just say so. Can anyone else answer the ques.?\n>\n\n\tIt's not really crap you know... only half crap ;-)   From what i \nunderstand it's very expensive to play hockey south of the border... \n(actually it's not that cheap up hear either... though once you have all the\nequipement it's not more than $300 a year... actually i haven' played in\nabout 8 years so i could be off a bit... )  In the states, where ice time\nis considerably more expensive it can cost over a thousand a year... compare \nthis to baseball and you'll see that hockey is a sport for the well-to-do...\nAnd this brings up the fact that the well-to-do in the US are majority white...\n\nBTW: what was the original question... i think it has to do with the Hispanic\ncommuntiy and playing hockey.... \n\n\n\t\t\t\t\tCheers!\n\t\t\t\t\t\ti.\n------------------------------------------------------------------------------\n|  ingo@sunee.uwaterloo.ca                   | The more violent the body     |\n|  iwweigel@descartes.uwaterloo.ca           | contact of the sports you     | \n|  ingo@electrical.watstar.uwaterloo.ca      | watch, the lower your class.  |\n|  iwweigele@electrical.watstar.uwaterloo.ca |         -- Paul Fussell       |\n------------------------------------------------------------------------------\nIf the University of Waterloo had on opinion, this probably wouldn't be it...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9381, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bauer@informatik.uni-ulm.de (Christian Bauer)\nSubject: Re: MacPlus freezes after ~1 hour use, fails to boot\nNntp-Posting-Host: christian.informatik.uni-ulm.de\nOrganization: University of Ulm\nLines: 27\n\nIn article <1osu69INN11r@tamsun.tamu.edu>, mclean@math.tamu.edu (Robert\nMclean) wrote:\n> \n> My MacPlus is having problems which seem temperature related. After using\n> it for a while it freezes. The when I turn off then on, the screen doesn't\n> show the disk icon, and then goes dark. I consulted Larry Pina's Book and \n> could not find these symptoms. Has anybody else seen such symptoms?\n> Suggestions?\n\nShure it is temperature dependent, but this does not clean all your\nproblems.\nBased on some exp. I must say that the connections between the power supply\nand the Monitor and Main Board are usable to this failure, Ram simms can be\nbadly connected due to some corrosion and the powersupply can be in the\nlast\nphase (lower Voltage).\n\nSo you can do following if you are used to such technical terms.\n1) Clean all mentioned contacts with contact spray\n2) readjust the 5 Volt level of your powersupply\n3) use a calm fan and think of preventing dust blowin\u00d4 through the floppy!\n   (a fixed piece of paper can prevent this)\nif you don't know how to do it beg a friendly technician!\n\nChristian Bauer\n\nbauer@informatik.uni-ulm.de\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9382, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Clipper chip -- technical details\nLines: 8\n\n\tThe protocol/key-management description published so far is either\n\tincomplete or incorrect. It leaves me with no idea of how the system\n\twould actually _work_. I hope the CPSR FOIA request succeeds so that\n\twe get full details.\n\nWouldn't it be easier just to ask denning@cs.georgetown.edu? ;-)\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9383, "properties": {"category": "sci.med", "text": "From: akins@cbnewsd.cb.att.com (kay.a.akins)\nSubject: Re: food-related seizures?\nOrganization: AT&T\nSummary: seizures and foods\nLines: 35\n\nIn article <PAULSON.93Apr15082558@cmb00.larc.nasa.gov>, paulson@tab00.larc.nasa.gov (Sharon Paulson) writes:\n> I am posting to this group in hopes of finding someone out there in\n> network newsland who has heard of something similar to what I am going\n> to describe here.  I have a fourteen year old daugter who experienced\n> a seizure on November 3, 1992 at 6:45AM after eating Kellog's Frosted\n> Flakes.  She is perfectly healthy, had never experienced anything like\n> this before, and there is no history of seizures in either side of the\n> family.  All the tests (EEG, MRI, EKG) came out negative so the decision\n> was made to do nothing and just wait to see if it happened again.\n> \n> Well, we were going along fine and the other morning, April 5, she had\n> a bowl of another Kellog's frosted kind of cereal, Fruit Loops (I am\n> embarrassed to admit that I even bought that junk but every once\n> in a while...) So I pour it in her bowl and think \"Oh, oh, this is the\n> same kind of junk she was eating when she had that seizure.\"  Ten \n> minutes later she had a full blown seizures. This was her first exposure\n> to a sugar coated cereal since the last seizure.......\n\nMy daughter has Epilepsy and I attend a monthly parent support group.\nJust Wednesday night, a mother was telling how she decided to throw\nall the junk food out and see if it made a difference in her 13 year-old's\nseizures.  He was having about one seizure per week.  She reported that\nshe did this on Thursday (3/11), he had a seizure on Saturday and then\nwent 4 weeks without a seizure!!  On Easter he went to Grandma's and ate \ncandy, pop - anything he wanted.  He had a seizure the next day.  She \nsees sensitivity to nutrasweet, sugar, colors, caffine and corn.  With\ncorn she says, he gets very nervous and aggresive.  \n\nWith my own daughter (age 7) , I think she is also sensitive and stays\naway from those foods on her own.  She has never had gum, won't eat\ncandy, prefers an apple to a cookie, doesn't like chocolate and won't\neven use toothpaste!!!  Her brother, on the other hand, is a junk food\naddict!  \n\nHope this helps.  Good Luck.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9384, "properties": {"category": "sci.space", "text": "From: thomsonal@cpva.saic.com\nSubject: Cosmos 2238: an EORSAT\nArticle-I.D.: cpva.15337.2bc16ada\nOrganization: Science Applications Int'l Corp./San Diego\nLines: 48\n\n>Date: Tue, 6 Apr 1993 15:40:47 GMT\n\n>I need as much information about Cosmos 2238 and its rocket fragment (1993-\n>018B) as possible. Both its purpose, launch date, location, in short,\n>EVERYTHING! Can you help?\n\n>-Tony Ryan, \"Astronomy & Space\", new International magazine, available from:\n\n------------------------------------------------------------------------------\n\nOcean Reconnaissance Launch Surprises West\nSpace News, April 5-11, 1993, p.2\n[Excerpts]\n     Russia launched its first ocean reconnaissance satellite in 26 months \nMarch 30, confounding Western analysts who had proclaimed the program dead. \n     The Itar-TASS news agency announced the launch of Cosmos 2238 from \nPlesetsk Cosmodrome, but provided little description of the payload's mission. \n     However, based on the satellite's trajectory, Western observers \nidentified it as a military spacecraft designed to monitor electronic \nemissions from foreign naval ships in order to track their movement. \n     Geoff Perry of the Kettering Group in England... [said]  Western \nobservers had concluded that no more would be launched. But days after the \nlast [such] satellite re-entered the Earth's atmosphere, Cosmos 2238 was \nlaunched. \n\n\"Cosmos-2238\" Satellite Launched for Defense Ministry\nMoscow ITAR-TASS World Service in Russian  1238 GMT 30 March 1993\nTranslated in FBIS-SOV-93-060, p.27\nby ITAR-TASS correspondent Veronika Romanenkova\n     Moscow, 30 March -- The Cosmos-2238 satellite was launched at 1600 Moscow \ntime today from the Baykonur by a \"Tsiklon-M\" carrier rocket. An ITAR-TASS \ncorrespondent was told at the press center of Russia's space-military forces \nthat the satellite was launched in the interests of the Russian Defense \nMinistry. \n\nParameters Given\nMoscow ITAR-TASS World Service in Russian 0930 GMT 31 March 1993\nTranslated in FBIS-SOV-93-060, p.27\n     Moscow, 31 March -- Another artificial Earth satellite, Cosmos-2238, was \nlaunched on 30 March from the Baykonur cosmodrome. \n     The satellite carries scientific apparatus for continuing space research. \nThe satellite has been placed in an orbit with the following parameters: \ninitial period of revolution--92.8 minutes; apogee--443 km; perigee--413 km; \norbital inclination--65 degrees. \n     Besides scientific apparatus the satellite carries a radio system for the \nprecise measurement of orbital elements and a radiotelemetry system for \ntransmitting to Earth data about the work of the instruments and scientific \napparatus. The apparatus aboard the satellite is working normally. \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9385, "properties": {"category": "talk.politics.misc", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: Clinton's immunization program\nOrganization: University of Tennessee Division of Continuing Education\nLines: 29\n\nIn article <C5JoBH.7zt@apollo.hp.com> goykhman@apollo.hp.com (Red Herring) writes:\n>In article <1993Apr14.122758.11467@magnus.acs.ohio-state.edu> jlinder@magnus.acs.ohio-state.edu (Jeffrey S Linder) writes:\n>>In article <C5FJsL.6Is@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR.C\n>>OM (Mark Wilson) writes:\n>>>On the news last night Clinton was bashing the republicans for stonewalling\n>>>his so called stimulus package.\n>>>It seems that one small item within this package was going to pay for free\n>>>immunizations for poor kids.\n>>\n>>Immunizations for children in this country are already free if you care to\n>>go have it done.  The problem is not the cost, it is the irresponible parents\n>>who are to stupid or to lazy to have it done.\n>\n>    In case you haven't noticed, Clintonites are pushing a universal health\n>    care ACCESS program.  \"Access\" here means that folks who do not give \n>    a damn about immunizing their children will have health care services\n>    delivered to their doorsteps.\n\n       I've read about more than a few of these programs that ran into\nproblems in convincing parents to get their children immunized even\nwhen they were delivered to their doorstep.  (I don't know, maybe\nthat sheet they have to be informed of about possible risks, side-\neffects, and bad reactions scares them.)  \n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9386, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: zaphod@src4src.linet.org (Steve Wechsler)\nSubject: VGA card for fixed-frequency monitor\nOrganization: The Source for Source\nLines: 19\nX-Standard-Disclaimer: I probably don't speak for src4src.linet.org.\n\n\nHas anyone connected a high-res, fixed frequency monitor to their PC?\nI have a mitubishi monitor that does 1024x768 at 60hz, but won't do\nany other resolutions.  All the video cards designed for this sort of\nthing are very expensive (>$400).  Has anyone done it with an SVGA\ncard (I know it can be done, it's just a question of getting the card\nat the right resolution and frequency)?  I'd like to use a mono\n(hercules) monitor as my dos/command line monitor, and switch to the\nmitsu for Windows or X-windows (under Linux or 3BSD).\n\nAny suggestions would be greatly appreciated.  E-mail, please.\n\nThanks,\n\n-- \nSteve Wechsler | zaphod@src4src.linet.org    |    Call Lady Hawke's Castle BBS:\nPlease respond to my queries via e-mail (post also if you like) | 516-226-4630\nbecause my site purges news much faster than I can keep up with it.\nThis message was made from 100% recycled materials.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9387, "properties": {"category": "sci.space", "text": "From: jbh55289@uxa.cso.uiuc.edu (Josh Hopkins)\nSubject: Re: Griffin / Office of Exploration: RIP\nArticle-I.D.: news.C51r3o.9wK\nOrganization: University of Illinois at Urbana\nLines: 23\n\nyamauchi@ces.cwru.edu (Brian Yamauchi) writes:\n\n>Any comments on the absorbtion of the Office of Exploration into the\n>Office of Space Sciences and the reassignment of Griffin to the \"Chief\n>Engineer\" position?  Is this just a meaningless administrative\n>shuffle, or does this bode ill for SEI?\n\nUnfortunately, things have been boding ill (is that a legitimate conjugation?)\nfor a while.  While the Office of Exploration had some great ideas, they never\ngot much money.  I've heard good things about Griffin, but it's hard to want\nhim back in a job where he couldn't do anything.\n\n>Does anyone know what his new duties will be?\n\nThe group examining the Freedom-based space station redesign proposals is \nheaded by Michael Griffin, \"NASA's cheif engineer\" in the words of Space News.\nI believe this is him.\n\n-- \nJosh Hopkins                                          jbh55289@uxa.cso.uiuc.edu\n          \"Tout ce qu'un homme est capable d'imaginer, d'autres hommes\n            \t     seront capable de la realiser\"\n\t\t\t -Jules Verne\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9388, "properties": {"category": "soc.religion.christian", "text": "From: spebcg@thor.cf.ac.uk (BCG)\nSubject: Re: Knowing God's Will\nOrganization: uwcc\nLines: 20\n\nHi,\n\nI don't know much about Bible. Could you tell me the relations of\nChristians with non-Christians in Bible? How should be The relations of\nchristian nations with each other and the relations of Christian nations\nwith other nations who are not Christians?\n\nThe other question is about the concept of religion in Bible. Does the\nreligion of God include and necessitate any law to be extracted from\nBible or is the religion only a belief and nothing to do with the\ngovernment sides? If for example, any government or a nation is one of\nthe wrongdoings according to Bible, how should they be treated? \n\nIs there any statement in Bible saying that Bible is a guide for every\naspects of life?  \n\nThank you.\n\nBeytullah\n \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9389, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dmoyer@ccscola.Columbia.NCR.COM (Dan Moyer)\nSubject: Re: Changing Motherboards - Messing With Connectors\nNntp-Posting-Host: ccscola\nOrganization: NCR Corp, E&M-Columbia, Columbia, SC\nLines: 40\n\nIn article <93105.073119IP06015@portland.caps.maine.edu> Jozef Slaby <IP06015@portland.caps.maine.edu> writes:\n>When I changed my motherboard I had a lot of trouble getting\n>LED,SPKR,TURBO,TURBOSWITCH,HDD,KLCK,RST, connectors correctly\n>reconnected. For example Turbo Switch had three wires and\n>the motherboard connection only two pins... and so on.\n>\n>Does anyone know a solution to this. Do I need to rewire the\n>connectors or what is the best way to approach this.\n>It is somewhat frustrating. I got it to work somehow but my Turbo\n>switch doesn't work at all.\n>\n\nI just put replaced the motherboard in a system and had similar questions.\nMy 2 cents worth:\n\nThe speaker connector should have two wires going to the speaker. \nA speaker being a coil, it's bidirectional and makes no difference\nwhich way you attach.\n\nTurbo switch.   There are three wires to control how you want turbo\nto become active- with the switch pushed in or the switch out.    I think\nthe middle wire is common.   Use an ohm meter to figure out which wire\nconnects with the common wire when the switch is pushed in, and which two\nwires are connected when the switch is out.   Place the appropriate\ntwo wires on the turbo berg connector of the motherboard.\n\nLED's:   (Turbo and HD)  LED's are uni directional.  Depending which\nway the wires are attached the LED will not light.  On my AMI motherboard,\nif the turbo switch wires are not attached to the berg connector on the\nboard, the board will power up in default in Turbo mode.   If your motherboard\nis like that... just attace the LED wires to the board.  If the LED doesn't\nlight, power off, reverse the connectors and try again.   It should work.\n\nIf it does, then attach the turbo switch to the board.\n\nHope this helps.\n\nDan Moyer\nDan.Moyer@ColumbiaSC.NCR.COM \n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9390, "properties": {"category": "sci.space", "text": "From: djf@cck.coventry.ac.uk (Marvin Batty)\nSubject: Re: Vandalizing the sky.\nNntp-Posting-Host: cc_sysk\nOrganization: Starfleet, Coventry, UK\nLines: 30\n\nIn article <C5t05K.DB6@research.canon.oz.au> enzo@research.canon.oz.au (Enzo Liguori) writes:\n>From the article \"What's New\" Apr-16-93 in sci.physics.research:\n>\n>........\n>WHAT'S NEW (in my opinion), Friday, 16 April 1993  Washington, DC\n>\n>1. SPACE BILLBOARDS! IS THIS ONE THE \"SPINOFFS\" WE WERE PROMISED?\n>In 1950, science fiction writer Robert Heinlein published \"The\n>Man Who Sold the Moon,\" which involved a dispute over the sale of\n>rights to the Moon for use as billboard. NASA has taken the firsteps toward this\n> hideous vision of the future.  Observers were\n>startled this spring when a NASA launch vehicle arrived at the\n>pad with \"SCHWARZENEGGER\" painted in huge block letters on the\n>side of the booster rockets. \n\nThings could be worse. A lot worse! In the mid-eighties the\nteen/adult sci-fi comic 2000AD (Fleetway) produced a short story\nfeaturing the award winning character \"Judge Dredd\". The story\nfocussed on an advertising agency of the future who use high powered\nmulti-coloured lasers/search lights pointed at the moon to paint\nimages on the moon. Needless to say, this use hacked off a load of lovers,\nromantics and werewolfs/crazies. The ad guys got chopped, the service\ndiscontinued. A cautionary tale indeed!\n\nMarvin Batty.\n-- \n****************************************************************************  \n                  Marvin Batty - djf@uk.ac.cov.cck\n\"And they shall not find those things, with a sort of rafia like base,\nthat their fathers put there just the night before. At about 8 O'clock!\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9391, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: Ed must be a Daemon Child!!\nOrganization: NEC Systems Laboratory, Inc.\nDistribution: usa\nLines: 33\n\nIn article <bethdC5JuL2.L9@netcom.com> bethd@netcom.com (Beth Dixon) writes:\n>In article <1993Apr14.133413.1499@research.nj.nec.com> behanna@syl.syl.nj.nec.com (Chris BeHanna) writes:\n>>In article <bethdC5G0H6.I48@netcom.com> bethd@netcom.com (Beth Dixon) writes:\n>>>Bzzzzt.  It was me.  Until I discovered my SR250 Touring Bike has a\n>>>nifty little cache on it for things like coins or lipstick.  The\n>>>new Duc 750SS doesn't, so I'll have to go back to carrying my lipstick\n>>>in my jacket pocket.  Life is _so_ hard.  :-)\n>>\n>>\tAm I the only denizen who thinks that the Natural Look is the best\n>>look?  The thought of kissing that waxy shit smeared all over a woman's lips\n>>is a definite turn-off...\n>So does clear lipstick/chapstick/etc. fit under the \"natural look\" or\n>the \"waxy shit\" category?  I wear something on my lips to keep them from\n>drying out.  Kissing dry, cracked, parched lips isn't too fun either.\n\n\tAgreed, but, yes, chapstick fits under the \"waxy shit\" category,\nalthough I've noticed that stealing Annette's chapstick (after she's\napplied it :-) kept my lips from cracking this past winter like they have\nin all previous winters.  Sigh...the price I must pay...\n\n>>\tNot that I'll ever be kissing Beth or Noemi... ;-)\n>Not if Tom has anything to say about it you won't!  Noemi speaks for\n>herself.\n\n\tSo does my darling Annette (okay, I guess you can ready the\nbarf bags now :-)\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9392, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: goyal@utdallas.edu (MOHIT K GOYAL)\nSubject: Re: BusLogic 542B questions\nNntp-Posting-Host: csclass.utdallas.edu\nOrganization: Univ. of Texas at Dallas\nLines: 12\n\n>beta. Support for the BusLogic cards is not included with OS/2 2.0 any longer.\n\nWhy not?  This is rather disappointing...\n\n>If you wish to install the beta from the CD/ROM, you will need to REM out the\n>Adaptec device drivers, as they have a nasty tendency to crash the BusLogic\n>cards when OS/2 attempts to use them. (Thanks Adaptec!) \n\nYep.  That's cause the latest(and presumably all future) Adaptec drivers look\nfor the string \"Adaptec\" or something to that effect in the cards BIOS.\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9393, "properties": {"category": "soc.religion.christian", "text": "From: maridai@comm.mot.com (Marida Ignacio)\nSubject: Refusing Divine Peace and Alive Prayer? (was Re: Question about Mary)\nOrganization: trunking_fixed\nLines: 147\n\nIt's like refusing 'God's kingdom come'.\n\nIn one of Jesus' revelation in this century, \"...same thing as in\nthe old days.  People refuse to believe my messengers.  Even when\nI was alive here on earth, they refuse Me.  What more when I am just\ntalking through somebody else?\" (paraphrased).\n\nWith all the knowledge believers accumulated, He would think that\nwe would be 'enlightened' enough to detect which ones are \n'authentic and divine' as opposed to 'evil or man-made'.\n\nThese signs, these miracles, are you afraid that they are not from God?\nThat these are the signs we should not open our hearts and mind to for thinking\n  they are evil?\nWell, is faith in God evil?\nIs true peace evil?  Is true love that is divine and pure evil? \nWhy can't someone accept that God can do what He wants in fulfillment of His\n  generous love and Jesus' never ending forgiveness to those who turn back to\n  Him for salvation?\nWhy are we refusing God's messenger of this truth?  The mother to all who are\n  in Christ?\nWhat brings us these:\n    fears of being shamed by what others will think or say about us?\n        which, in contrary, could be pleasing to God?\n    fears of being humbled?\n    fears of being judged as wrong (wrt mainstream standard of what is right)?\nWhy can't we tolerate non-believers' mockery or ridicule of us for the\n  sake of peace, love and obedience to God?  The humbling lessons left to us\n  by martyrs and saints?\nWe'd rather engage in never-ending bickering and disproof of each other's\n  opinion - looking at each other's mistakes - for the sake of arguments,\n  instead of having communion in one body with Christ.\nWhat makes us go blind to the truth that God is All Powerful and that He can\n  not be binded by what people wrote and have written about Him in all ages?\nWhy is our faith in God limited?  By all the words and literature we muster?\nWhat prevents us from going *beyond* being saved and extend God's rich love\n  to others who are not?\n\nWhy are our eyes not wide open to see that He continuously sees our faith, hope\n  and love which glorify Him and so He gives us indications of His \n  acknowledgements with signs/miracles (ordinary/common or divinely inspired) \n  everywhere?  Isn't that like an atheist/agnostic's view that all these\n  are just ordinary here on earth and not caused by anything supernatural?\n\nWhy then does the Holy Mother comes back to remind us:\n  \"We must really __accept that prayer__ changes the course of things and that\n  with prayers __even wars can be prevented__.\"\nbut then she continues:\n  \"You often have an egotistic attitude.  Dear children, in these days you\n  have prayed very much, __but your hands have remained empty__.\"\nWhy hesitate in proclaiming what needs to be done:\n  \"prayer, conversion, peace, penance, fasting, the Holy Mass, living life\n  as what the Gospel brings.\"?\nWhy not do so?  How?  To the world?\nTo this, the Mother says:\n  \"Start in your family.  Be a good example.  Live the Word.\"\nWhy worry if it is going to be of good use to many?\nOur Holy Mother says:\n  \"The fruits, __leave them to the Lord__, do not worry about anything or \n  anyone but entrust yourself to the Lord.\"\n\nAlthough the Holy Mother does not insist because:\n  \"You are free; I bow before the freedom which God gives you.\"\nbut she follows this with:\n  \"You are surprised because I say to you: Decide for God and yet, see how\n  you have lived this day.\"\nWhy does she constantly conveys:\n  \"Take this life toward God in the way as to __experience__ the Lord Himself\n  in your __behavior__ and __not only__ when you pray\" or one time when we \n  decide that we are saved, or talk/write about God, etc.\nThe Holy Mother warns:\n  \"Satan (the serpent) is always trying to dissuade you to turn you away from\n  my peace plan and prayer.\"  (Rev 12:17, the dragon became angry with the woman\n  and went off to wage war against the rest of her offsprings, those who keep\n  God's commandments, and bear witness to Jesus.)\n\nDo you have fear or hate for God's current messenger of true peace, love and\n  our motherly protector from the anti-Christ?\nThe one who is being apprehensive of communism, wars, famine and other evils\n  that the serpent brings upon us? \nThis obedient and blessed new Eve?\nThe mother who warns us so we can be prepared and be strong against Satan?\nHaven't there been renewed faith, hope, love, peace and obedience wherever\n  this messenger has shared her blessings and graces that God has given her\n  in good purpose?\nWhy do we choose to be blind?\nWhy fear the truth that God has been giving us a chance and sharing Christ's\n  ever-forgetting forgiveness to us through the obedient mother?\nThe mother who has been consecrated the task __to reverse__ the disobedient\n  harm and example done by the ancient Eve.\nShe has been preparing the new Eden with her Immaculate Heart.\nThe new Eden as sanctuary (the womb) for the next coming and judgement of the \n  righteous by our Lord, Jesus Christ; when The Lamb marries His bride.\nShouldn't we give her a hand in her exhaustive job of preparing us for the\n  second coming of her Son as she has been conceived without sin to bear\n  the Son of God in her womb?\nWhy fear true peace, love and renewed faith and obedience to God that Mary\n  faithfully brings to God's children?  She has been protecting the flock\n  (the rest of the offsprings) from the greedy dragon so as to present more \n  righteous members for her Son's coming.\nNot all apparitions and miracles that resulted from them are worthy\n  of belief.  With prayer and guidance from the Holy Spirit and, of course,\n  approval of our Church authorities, we should be aware of the true and\n  divinely inspired ones; specifically, the ones which aligns with the\n  Scripture.\n  \n\nAlso, our Lady reminds us of recommendation of __silence__ in our prayers:\n  \"If you speak unceasingly in your prayers, how will you be able to hear\n  God?  Allow Him room to answer you, to speak to you.\" \n\nShe encourages us (with motherly nurturing) to continue in exuberant \nfaith, hope and love to Jesus, constantly.  NOT with mere emotions, \nbut with deep, constant obedience to Jesus, her Beloved Son and\nacknowledgement of our need to have Him as part of our lives.\n\nLet's not wait to the last minute to renew our faith and the life\nthat God wants us to live; when there won't be enough time or when\nit will be late.\n                                                      \nNowadays, Mary says, \n\"Pray, pray, pray for peace...reconciliation, my children.\"\nHave peace within yourself first before you can promote peace to\nothers.  For without peace, you can not fully accept my Son.\"\n                                                                       \n\nAnd you think she's just an ordinary lady.  Not to me.  She's\nour good Mother/messenger from God and she is so nice enough to\nshare God's kingdom to us through her Son and experience it.\n\nWith Mary, we are assured that The Lamb always succeeds.\n\n-----\nNote:  All enclosed in quotes are from \"Latest News of Medjugorje\"\n       Number 10, June, 1991 by Fr. Rene' Laurentin.\n\n-----\n\nO, new Mother of Eden, Most Pure\nPreparing the sanctuary for true christians\nCleansing us with peace for God's kingdom come\nBring us to your loving, protective and obedient Church\nThat we may belong in one Body to your Son, Jesus Christ, our Lord\nAnd not go astray from His perfect completeness\nPray that we ourselves pray with the Holy Spirit guiding us\nSo that we may help you in strength to conquer the enemies of your Son\n  while you prepare us for Him with your Immaculate Heart.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.443+0000", "event": "documents", "entityId": 9394, "properties": {"category": "comp.graphics", "text": "From: ederveen@athena.research.ptt.nl (Ederveen D.)\nSubject: Micro World Data Bank II ?\nNntp-Posting-Host: athena.research.ptt.nl\nReply-To: D.N.M.Ederveen@research.ptt.nl\nOrganization: PTT Research, The Netherlands\nLines: 18\n\nI'm looking for a database called \"Micro World Data Bank II\", a database\nwith digital map information containing 178,068 latitude, longitude points.\nIt is said to be in the public domain. If anyone knows a place where I can\nget it (preferably FTP/gopher/mailserver etc.; otherwise snail mail) please\nlet me know. I you have it yourself and are willing to send me the file,\ndrop me a line.\n\nI'll be using it with a program called VERSAMAP by Charles H. Culberson.\nIf anyone knows of another detailed database that can be used with this\nprogram (preferably PD), I would be very interested.\n\nReplies by e-mail please, directly to me, I don't read this group regularly.\nIf there's interest I'll post a summary, of course.\n--\nDerk Ederveen                        (FidoNet 2:283/323)  tel. +31-70-3323202\nD.N.M.Ederveen@research.ptt.nl / ederveen@hlsdnl5.bitnet  fax. +31-70-3326477\n  x400: /c=nl/admd=400net/prmd=ptt research/o=ptt research/s=ederveen/i=dnm\n  ** \"I wish I was a warrior, in every language that I speak\" - Lou Reed **\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9395, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: Re: Migraines and scans\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 37\n\nDN> From: nyeda@cnsvax.uwec.edu (David Nye)\nDN> A neurology\nDN> consultation is cheaper than a scan.\n\nAnd also better, because a neurologist can make a differential\ndiagnosis between migraine, tension-type headache, cluster, benign\nintracranial hypertension, chronic paroxysmal hemicrania, and other\nheadache syndromes that all appear normal on a scan.  A neurologist\ncan also recommend a course of treatment that is appropriate to the\ndiagnosis.\n\nDN> >>Also, since many people are convinced they have brain tumors or other\nDN> >>serious pathology, it may be cheaper to just get a CT scan then have\nDN> >>them come into the ER every few weeks.\nDN> And easier than taking the time to reassure the patient, right?\nDN> Personally, I don't think this can ever be justified.\n\nSigh.  It may never be justifiable, but I sometimes do it.  Even\nafter I try to show thoroughness with a detailed history, neurologic\nexamination, and discussion with the patient about my diagnosis,\nsalted with lots of reassurance, patients still ask \"why can't you\norder a scan, so we can be absolutely sure?\"  Aunt Millie often gets\ninto the conversation, as in \"they ignored Aunt Millie's headaches\nfor years\", and then she died of a brain tumor, aneurysm, or\nwhatever.  If you can get away without ever ordering imaging for a\npatient with an obviously benign headache syndrome, I'd like to hear\nwhat your magic is.\n\nEvery once in a while I am able to bypass imaging by getting an EEG.\nMind you, I don't think EEG is terribly sensitive for brain tumor,\nbut the patient feels like \"something is being done\" (as if the\nhours I spent talking with and examining the patient were\n\"nothing\"), the EEG has no ionizing radiation, it's *much* cheaper\nthan CT or MRI, and the EEG brings in some money to my department.\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n                                                                         \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9396, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: [long]: Gun Hearings Day in Massachusetts (April 7)\nOrganization: Stratus Computer, Inc.\nLines: 263\nDistribution: usa\nNNTP-Posting-Host: rocket.sw.stratus.com\n\n[This is a co-authored report from two of us who were there.]\n\nGun Owners Action League, our state rifle association, started the day\nwith a rally in the secluded courtyard behind the statehouse at 9:30.\nIt was looking sparse (about 40 people) until the speaker began,\nwhereupon about 120 more people followed the loudspeakers from\nwherever they had been lost, and filled out the area something proud.\n\nMike Yacino of GOAL spoke.  One of his best throwaway lines was to\nremind us that all of us holders of carry permits there had been\nchecked and certified clear of all crimes by the state; while the\npeople in the Statehouse behind us only had to be certified clean of\n\"election fraud\" to hold their jobs.\n\nNancy Snow and Amos Hamburger were busy handing out ID buttons and\nsheets describing all the bills to be presented at the hearings, and\ntelling people where to find their own representatives (and in too\nmany cases, who they were).\n\nMike warned us that the committee was going to suspend its rules and\ndiscuss a bill that hadn't made it onto the official list.  It seems a\ndelegation of students from Simon's Rock of Bard College (alma mater\nof Wayne Lo, who shot up the place with an SKS late last year) was\nbeing bussed in to testify for a bill to ban all sales of firearms or\nammo to anyone who is not a state resident.\n\nThe hearings were originally scheduled in the (large) Gardner\nAuditorium at 10:30, but that had been pre-empted by the Governor's\nhearings on the Framingham Eight (women in prison for killing abusive\nhusbands, and seeking release).  So we had until 1:30 to buttonhole\nour representatives, after which we would be squashed into an\ninadequate hearing room.\n\nOne of my representatives' staffers was somewhat offensively smarmy.\nHe said, \"Oh, it must be gun hearings day again!  The gun lobby is\nalways so organized every year.\"  I got a little pissed, and replied,\n\"I'm not from the gun lobby -- I'm from your district.\"\n\nAt 12:30, your second reporter arrived in time to notice a\ndemonstration going on in front of the statehouse (where the\npro-gunners weren't).  Randy Price from the TV News was there, in his\nmirror reflective shades, talking to one of the anti-gun types, and\nseveral Simon's Rock anti-gun \"close-the-loophole\" protestors.\n(Earlier, Randy had covered the GOAL rally.)\n\nThe room we had been assigned seated about 50.  Remember, there were\nabout 160 gun owners there, plus another 20-30 students and teachers\nfrom Bard.  One of us had already reserved a seat; the other never got\ncloser than the atrium outside -- and there was a crowd behind HIM.  A\ncop took up station at the entrance and prevented the rest of the\ncrowd from coming in.  Soon after the debate started, a loudspeaker\nwas set up outside in the hall for the benefit of everyone else.\n\nEveryone who was there (inside and outside) got to sign up on a sheet\nsaying what their position was on which bills.  Most of us signed up\nto \"support GOAL's position\" on \"all bills.\"\n\nFirst, because of their time constraints, public officials got to\ntestify.  And first up was the bill that nobody had seen (the students\nhad some curfew, I guess).  \n\nCurrently, Massachusetts law allows a non-resident to purchase long\nguns or ammo from a local dealer provided he complies with the laws of\nhis own state.  Previously, the law was similar, but applied only to\nnon-residents from states adjoining Massachusetts.  The Simon's Rock\nfolks called the current law a \"loophole\" and wanted it closed.\n\nTwo of their reps spoke about Wayne Lo and his \"SKS assault rifle.\"\nThe second one, Hodgekiss, a co-sponsor, had done his homework so well\nthat he kept confusing Montana (Wayne Lo's home state) with Missouri,\nand became belligerent when about five gun owners in the gallery\ncorrected him after his second muff.  Carr, from Gloucester, claimed\nthat the new bill would put the law back the way it was, but he was\nlying: the new bill allows purchases by non-residents of adjoining\nstates ONLY if they have licensing in their own state \"as strong as\"\nthat in Massachusetts.  Since none of them do, that's that.\n\nSome of the things these two said were really offensive.  \"In some of\nthese other states, anyone can buy a gun as long as he's breathing!\"\n(Oooooo!)  \"We have some very, very good gun laws in Massachusetts; if\nonly the other states would adopt the same type of laws, we wouldn't\nbe having this situation -- but they won't.\"  (Naughty, naughty!)\n\nNext up was Boston city councilman Albert \"Dapper\" O'Neill.  He was\nthere to testify pro-gun, but in some ways he was a liability.  He's\nreasonably elderly and tends to wander and repeat himself, plus he's\nalmost a caricature of a law-n-order politician.  He badmouthed the\nACLU, said violent criminals should be executed, and that if he were\njudge, he'd give arrestees their \"last rights\" (pun intended) on the\nspot (at which many of the gun owners applauded, which bothered me.)\nHe said that all the proposed gun restrictions were a step in the\nright direction -- for the criminals.  He said this FOUR times :-(\n\nTwo of the bills under consideration would allow police to rescind a\nCCW or FID, and confiscate all your guns, if someone had filed a\nrestraining order against you.  (Note that the filing of a restraining\norder requires no warrant, no hearing, no evidence, and no conviction\n-- just an accusation.)  Senator Barrett of Reading testified in favor\nof it, and patronized the pro-gunners there several times by saying,\n\"I'm sure all the gun owners here will agree with me that we have to\nget these weapons out of the hands of people that our courts have\nconvicted.\"  I haven't seen such a disgustingly disingenuous\nperformance since Nixon whined that he wasn't a crook.\n\nBarrett also spoke in favor of the bill making the FID card renewable\nevery five years, instead of permanent as it is now.  The stated\npurpose is to remove FID cards from those who have become ineligible.\n\"Revenue has nothing to do with it.\"  (Yeah, right.)  Apparently, some\ncongressmen think we're stupid enough to swallow the argument that\nit's preferable to process 1.6 million renewals every cycle in the\nvague hope of catching a recent felon than to simply take the goddamn\ncard away from a criminal at conviction time.  As usual, hassle the\nlaw-abiding instead of the crook.\n\nThe two co-chairs of the committee were Rep. Caron and Sen. Jujuga.\nJujuga didn't say much (he was a co-sponsor of both \"restraining\norder\" bills) but Caron struck me as a sharp guy that wouldn't let any\nbad logic or lies on the part of either side to go unchallenged.  (He \nwas a co-sponsor of one of the \"restraining order\" bills as well.)  One\nof the younger reps on the committee (forgot his name) was\nvociferously pro-gun, somewhat embarrassingly so.  His heart was in\nthe right place, but his arguments seemed to be confined to, \"every\nyear it's the same damn thing, you come in here with this crap...\"\nIt's nice to have a friend on the committee, but he could have been\nmore effective.\n\nAt about 3:00, it was clear that the hall-jam couldn't continue.\nSomeone came out of another meeting hall and yelled at the cop because\nthe loudspeaker was disturbing their meeting, so the loudspeaker was\ndisconnected.  So they found a bigger hall upstairs.  One of us had\nto leave to catch his charter bus, and so missed the \"public\"\ntestimony; the other got a seat this time.\n\nCaron began by talking about how he got his FID 16 years ago, left the\nstate, and then returned without notifying them of his address change.\nHe complained that the state record system was not up-to-date and that\nhis PD back in his city of birth still thought he lived there.  Great\nquote: \"If you purchase a gun today, it will not get into the state\ncomputer system until 1999.\"  (This was also an argument he used\nagainst the renewable FID card.)\n\nTestimony was heard from several \"battered women,\" one of whom had\nbeen attacked by some guy in his 20's who had an FID card because he\ngot it when he was 15 or thereabouts.  They used a lot of emotion and\nsaid how they were scared of these men.  A staffer of Attorney General\nHarshbarger testified in favor of this anti-gun bill, saying how\n50,000 restraining orders were granted last year, and how these women\nneeded to be protected.  Caron noted that a restraining order was\ngranted for 10 days, and then a hearing was held to determine whether\nthe order would be extended to a year.  He asked whether she would be\nsatisfied if the FID were revoked at the time of this hearing rather\nthan after the initial issuance of the FID.  She gave some long\nrambling circumlocution in response.\n\nThen testimony against the bill was heard.  Mike Yacino (who looks\nsomething like Einstein) got up and made the point that restraining\norders were issued on too little evidence, that judges like to issue\nrestraining orders just to let things cool off no matter who they\nthink is right (man or woman), and that the hearings for restraining\norders are lightning sessions with little time to consider facts.\nAtty. Karen McNutt spoke with him a few times during his testimony.\n\nOther pro-gunners got up to testify.  One said he had had to file a\nrestraining order against a tenant to clear her out, and that she\ncountered by filing one against him!  He noted that this would have\nallowed the state to confiscate his guns if the new bill became law.\nOne of the junior reps noted that \"this is America\" and we have to be\ncertain that individual rights are respected.  Senator Jujuga\nreiterated this, saying that \"people who abuse smaller people can go\nto Hell as far as I care, but we have to be careful about equating\nconviction with a restraining order.\"  (Point and match, Senator.)\n\nAnother pro-gunner got up and testified that he didn't know his\ncitizenship \"expired every 5 years,\" and that a driver's license was a\nprivilege, not a right like the right to keep and bear arms.\n\nA third got up and said the problem was with the criminal justice\nsystem, and argued in favor of a death penalty bill and public\nhangings.  Senator Jujuga said he had himself tried to get a death\npenalty bill passed, and joking responded that he, too, favored public\nhangings.  The speaker then responded, \"I'll make you a deal.  You get\nme the rope, and I'll tie the noose.\"\n\nNext came public testimony on the Simon's Rock bill.  A teacher\ntestified that she had been the teacher of Wayne Lo, and that \"he\nwouldn't have been able to shoot people inside a building while he was\noutside\" without his evil gun.  She said that the \"loophole\" should be\nclosed to prevent something like this from \"ever happening again\".\n\nFour or five other kids testified in favor of this bill, one of\nspilling tears for the good legislators.  One of the students actually\nshot by Wayne Lo was also there.  Many of them had T shirts on,\nsaying, \"As long as one person can buy a gun in anger, none of us are\nsafe -- support gun control.\"  The committee was reluctant to grill or\ncorrect the kids, except for Caron, who corrected one student who had\nclaimed that anyone could apply for an FID.  \"Only residents can get\nFID's,\" he said.  (How much do you want to bet that this kid had no\nidea he had been conned into testifying for a bill that would cut\nout-of-staters completely off?)\n\nYacino and McNutt spoke again, this time noting that the bill as\nwritten would affect both ammo AND ALL guns possessed by\nout-of-staters.  Karen also noted that hunters in CT, NH, and VT could\nbe put away for a year if they wandered across the MA boundary\nsomewhere in the woods and got challenged by game wardens.  Yacino\nunderscored the fact that Lo COULD have gotten an FID as a resident\nstudent -- and, hell, even an CCW, as he had NO criminal or mental\nrecord.\n\nOne junior rep was upset that it would take MA residents longer to buy\na gun than out-of-staters, and thought it was \"elitist\".  Another\n(Caron?) said that we need the protection of preventing non-residents\nfrom buying without an FID because only two other states in the union\nhad \"FID-type\" cards, so complying with all the laws of one's home\nstate was \"not enough.\"  One pro-gun speaker replied that this\nresembled a mother watching her son in a marching band and exclaiming,\n\"Everyone's out of step but Johnny!\"\n\nAll the Bard College people were filing out as the pro-gun testimony\nfor this bill was made, and thus only pro-gunners were around when the\nother bills came under consideration.  The main bills remaining (and\nGOAL's position) were:\n\no  H.4375 and four others: Notify police chiefs so they can pull \n   licenses when a holder is convicted (strongly supported)\n\no  H.1732: Require trigger locks on all handguns sold (opposed)\n\no  H.962: Require trigger locks on all loaded firearms (strongly\n   opposed)\n\no  H.1350: Allow every municipality to enact their own gun laws \n   (opposed)\n\no  H.1731: Fund bullet-proof vests for municipal police (supported)\n\no  S.1097: State Constitutional Amendment for the RKBA (supported)\n\no  Several on police discretion in the issuance of FID cards (opposed)\n\no  Several altering non-resident license conditions (supported)\n\no  H.1135: Ban damn near all guns everywhere in the state (guess!)\n\nSome of these took only 30 seconds to consider, as the remaining\npro-gunners raised hands in unison either for or against them.\n\nMike Yacino noted that, besides the danger in screwing with a trigger\nlock on a loaded gun, that bill would make it illegal for a licensee\nto carry his concealed handgun unless it were locked.\n\nCaron blew right through H.1350 when he saw that we opposed it.\nAgain, he brought up the state's archaic records capability and said,\n\"This would create hundreds of different licensing systems.\"\n\nThe session ran late -- since it was the last scheduled hearing, it\ncould not be adjourned until everyone who wanted to had testified.  It\nended at about 6:30.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9397, "properties": {"category": "talk.religion.misc", "text": "From: caldwell@facman.ohsu.edu (Larry Caldwell)\nSubject: Re: SUNDAY! THE DAY OF OUR LORD!\nOrganization: Oregon Health Sciences University\nLines: 14\nNntp-Posting-Host: facman\n\npharvey@quack.kfu.com (Paul Harvey) writes:\n\t>dlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n>>Exactly.  Sunday worship is in honor or the *SUN*, not the *SON* of God.\n>\n>Same thing, isn't it? It's pronounced the same? What other heavenly\n>beings are resurrected? The moon? That would by lunacy, at least to a\n>sunday worshiper.\n\nI have heard that the sabbath was originally determined by the phases of\nthe moon, and had elements of moon worship.  Early stuff, Egyptian in nature.\n\n-- \n-- Larry Caldwell  caldwell@ohsu.edu  CompuServe 72210,2273\nOregon Health Sciences University.  (503) 494-2232\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9398, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Re: Ten questions about Israel\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 8\nNNTP-Posting-Host: slc8.ins.cwru.edu\n\n\n   Why does the Center For Policy Research pose such unbelievably\nstupid and loaded questions to this newsgroup.  What are you? - a\nthink tank, or a fish tank?  Every time I start to believe I have\nseen the outer boundaries of your stupidity, you come up with one\nstep beyond.  When will it end, man?  Can you actually have brain\nenough to dress and feed yourself each morning?\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9399, "properties": {"category": "sci.electronics", "text": "From: kludge@grissom.larc.nasa.gov (Scott Dorsey)\nSubject: Re: Power, signal surges in home...\nOrganization: NASA Langley Research Center and Reptile Farm\nLines: 41\nNNTP-Posting-Host: grissom.larc.nasa.gov\n\nIn article <DRAND.93Apr20150701@spinner.osf.org> drand@spinner.osf.org (Douglas S. Rand) writes:\n>In article <randall.735251839@woof> randall@informix.com (Randall Rhea) writes:\n>\n>   Hams can legally run up to 1500 watts.  It is very unlikely, however,\n>   that a ham would be running that kind of power from a car.  Ham rigs\n>\n>Not possible either.  You'd need about a 300 amp alternator for\n>just the amplifier.  I can just see it.  You need to slow\n>down on a downgrade,  so you hit the push to talk button.\n\nNow, that indeed is possible.  A good friend of mine is running about 1 KW\nPeP from his car.  Yes, he does have a second alternator.  Yes, he calls\nthe rig an \"electronic brake\" since the engine noticeably slows when the\nkey is down.\n\nMy car, unfortunately, has so much computer junk under the hood that it's\nastonishingly sensitive to RFI.  If I key a 2W HT over the engine with\nthe hood open, the car loses timing due to the RF leaking into the \ndistributor pickup.  Very poor design.\n\nI will, however, point out that ham radio operators are usually quite willing\nto help when interference is detected.  Remember that any interference is\nwasted power; if I put out 1W in the TV band, that's 1W that I am not putting\nout in the band I am trying to transmit on, and 1W can often be the difference\nbetween a nice card hanging on the wall, and nothing.  CBers, however, are\nusually not as helpful.  Most illegal CBers, however, will stop operation\nwhen you inform them of a problem.  The rest of them will stop operation when\nyou inform the local FCC office of the problem (in writing, and giving details\nand addresses).\n\n>Last, you can usually tell ham radio vs. CB.  Ham operators are\n>required to declare their call (sign) every so many minutes (no more\n>than 10).  So if you hear \"This is WA1QT\" or some other call starting\n>with A, W or K and no more than 6 total characters, you heard a ham.\n>CB'ers probably won't sign (I don't know that they're even required\n>to) and fire/police have other private ids.\n\nGood advice.  Hams will frequently give their call, and will never use\na \"handle.\"  They are less apt to use immense amounts of profanity as well,\nbut that's not to say that they don't from time to time.  \n--scott\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9400, "properties": {"category": "sci.crypt", "text": "From: eachus@spectre.mitre.org (Robert I. Eachus)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nIn-Reply-To: scs@lokkur.dexter.mi.us's message of Wed, 21 Apr 93 00:12:30 GMT\nNntp-Posting-Host: spectre.mitre.org\nOrganization: The Mitre Corp., Bedford, MA.\n\t<1993Apr19.093227.1093@jarvis.csri.toronto.edu>\n\t<1993Apr20.150531.2059@magnus.acs.ohio-state.edu>\n\t<1993Apr20.192105.11751@ulysses.att.com>\nLines: 32\n\n\n   smb@research.att.com (Steven Bellovin) writes:\n\n   >Thousands?  Tens of thousands?  Do some arithmetic, please...  Skipjack\n   >has 2^80 possible keys.  Let's assume a brute-force engine like that\n   >hypothesized for DES:  1 microsecond per trial, 1 million chips.  That's\n   >10^12 trials per second, or about 38,000 years for 2^80 trials.  Well,\n   >maybe they can get chips running at one trial per nanosecond, and build\n   >a machine with 10 million chips.  Sure -- only 3.8 years for each solution.\n\n   But there is a MUCH more pernicious problem with the scheme as\nproposed.  Building a brute force machine to test 2^40 possible keys\nif you have the other half from one escrow agent is EASY.  (One chip,\none test per microsecond gives you one break every two weeks, and that\nbreak gives you all messages involving that phone.)\n\n   The XOR scheme so that the files from one escrow agent gives you\nnothing is an improvement, but notice that XORing with (truely random)\nbit strings allows for an arbitrary number of escrow agents.  Using +\nfor XOR, SK for the escrowed key, and A and B for two random bit\nstrings, hand SK+A+B, SK+A, and SK+B to three escrow agents.  It is\npossible to come with an encoding scheme to match any escrow pattern,\nfor example 3 of 4, such that fewer cooperating escrow agents gives\nthe cracking agency no benefit.\n\n--\n\n\t\t\t\t\tRobert I. Eachus\n\nwith Standard_Disclaimer;\nuse  Standard_Disclaimer;\nfunction Message (Text: in Clever_Ideas) return Better_Ideas is...\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9401, "properties": {"category": "sci.crypt", "text": "From: marc@tanda.isis.org (Marc Thibault)\nSubject: Re: Hard drive security for FBI targets\nReply-To: marc@tanda.isis.org\nDistribution: world\nOrganization: Thibault & Friends\nLines: 45\n\n\n     1. Do a straight encryption of your keyrings and put the\n        results with misleading names somewhere they won't be noticed\n        (eg. in the \\windows directory; nobody knows what half those\n        files are).\n\n     2. Do a straight encryption of a .BAT file that will decrypt\n        the keyrings to RAMdisk and will set PGPPATH to point at it.\n\n     3. Set up another .BAT file to decrypt and execute the first\n        (again on RAM disk). Have it take the name of the target file\n        as an argument so that there is no link between this file and\n        the (non-existent) batch file referred to by the rest of the\n        system. Comment it so it looks like a test script for fooling\n        around with PGP. Set PGPPATH to the PGP directory.\n\n     4. Leave the original keyrings that came with PGP in the\n        directory with PGP; a good indication that you are playing\n        with, but haven't made serious use of PGP. Add a set of keys\n        with your name and a really simple passphrase. Never use it,\n        or use it as your widely published key for low-security\n        e-mail.\n\n     5. When needed, run the second .BAT file. Make sure all\n        intermediate and plainfiles are generated on RAMdisk.\n\n     6. When you hear the concussion grenade, hit the power switch.\n        \n        Cheers,\n                Marc\n\n---\n Marc Thibault        | CIS:71441,2226     |  Put another log\n marc@tanda.isis.org  | NC FreeNet: aa185  |  on the fire.\n\n-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: 2.0\n\nmQBNAiqxYTkAAAECALfeHYp0yC80s1ScFvJSpj5eSCAO+hihtneFrrn+vuEcSavh\nAAUwpIUGyV2N8n+lFTPnnLc42Ms+c8PJUPYKVI8ABRG0I01hcmMgVGhpYmF1bHQg\nPG1hcmNAdGFuZGEuaXNpcy5vcmc+\n=HLnv\n-----END PGP PUBLIC KEY BLOCK-----\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9402, "properties": {"category": "comp.graphics", "text": "From: lvandyke@balboa.eng.uci.edu (Lee Van Dyke)\nSubject: Wanted: map of the world type gifs\nNntp-Posting-Host: balboa.eng.uci.edu\nOrganization: University of California, Irvine\nLines: 11\n\nHi, can anyone direct me to map type gifs? \n\nI am interesting in cartography and would find\nthese gifs useful.\n\ntia,\n\n--\nLee Van Dyke\n      lvandyke@balboa.eng.uci.edu,\nUUCP: infotec!Infotec.COM!lee@sunkist.West.Sun.COM\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9403, "properties": {"category": "sci.space", "text": "From: tholen@galileo.ifa.hawaii.edu (Dave Tholen)\nSubject: Re: New planet/Kuiper object found?\nOrganization: University of Hawaii\nDistribution: sci\nLines: 18\n\nFrancisco da Fonseca Rodrigues writes:\n\n> \tTonigth a TV journal here in Brasil announced that an object,\n> beyond Pluto's orbit, was found by an observatory at Hawaii. They\n> named the object Karla.\n\nThe name is a working name only; quite unofficial.  The formal designation\nis 1993 FW.\n\n> \tThe program said the object wasn't a gaseous giant planet, and\n> should be composed by rocks and ices.\n> \n> \tCan someone confirm these information? Could this object be a\n> new planet or a Kuiper object?\n\nIt's most likely a Kuiper Belt object, with an estimated diameter of\n290 km.  The orbit hasn't been determined well enough yet to say much\nmore about it.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9404, "properties": {"category": "comp.graphics", "text": "From: jack@shograf.com (Jack Ritter)\nSubject: Help!!\nArticle-I.D.: shograf.C531E6.7uo\nDistribution: usa\nOrganization: SHOgraphics, Sunnyvale\nLines: 9\n\nI need a complete list of all the polygons\nthat there are, in order.\n\nI'll summarize to the net.\n\n\n--------------------------------------------------------\n   \"If only I had been compiled with the '-g' option.\"\n---------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9405, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dpugsle@nswc-wo.nswc.navy.mil (Donald Pugsley)\nSubject: C7 link/segment problem (calling run-time functions)\nSummary: Need help with incorrect linking of run-time lib functions\nKeywords: C7 link runtime segment\nOrganization: Naval Surface Warfare Center\nLines: 40\n\nI have a small Windows program which I can not get to work; \nThe program looks vaguely like this:\n\n=============================================\nchar f1[80];\n\nint WinMain(...\n{\n  lstrcpy ((LPSTR)f1, \"Hello\");\n  ...\n}\n\nlong far pascal WndProc(...\n{\n  lstrcpy ((LPSTR)f1, \"Hello\");\n  ...\n}\n\n============================================= \nI am using large model under Windows 3.1; after linking without\nerrors, the RC program said\n\nSorting preload segments and resources into fast-load section\nCopying segment 1 (53679 bytes)\nRC : fatal error RW1031: Segment 1 and its\n     relocation information is too large for load\n     optimization. Make the segment LOADONCALL or\n     rerun RC using the -K switch if the segment must\n     be preloaded.\n\nUsing the -K switch seems to interfere with the proper function of\nthe second lstrcpy call... can anybody explain what is going on and/or\nhow to fix it?\n\n\nThanks...\nPugsley  (dpugsle@nswc-wo.nswc.navy.mil)\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9406, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Rickey Henderson\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nDistribution: usa\nLines: 12\n\nIn article <1993Apr5.173500.26383@ra.msstate.edu> js1@Isis.MsState.Edu (Jiann-ming Su) writes:\n>I say buy out Henderson's contract and let him go bag groceries.  Next \n>season, you'll be able to sign him for nothing.  That goes for any bitching\n>ball player.\n\nI doubt Henderson would clear waivers.  And if he did, he would\ninstantly be signed for the major league minimum, with Oakland picking\nup the remaining $3 million tab.\n\nSome GMs value on-field performance too...\n\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9407, "properties": {"category": "misc.forsale", "text": "From: sgc1@cbnewsm.cb.att.com (scott.g.crawford)\nSubject: Riding Lawn Mower for Sale\nOrganization: AT&T\nDistribution: nj\nKeywords: Ariens Riding Lawn Mower for Sale\nLines: 30\n\n\n\n\t1987 ARIENS RIDING LAWN MOWER\n\n\tThis mower is in perfect condition and\n\tcontains the following features:\n\n\t- Electric Start\n\t- 26 inch cut\n\t- Double Rear Baggers\n\t- New Battery\n\t- New Engine (one year old)\n\t- Inflatable Tires (gives nice ride)\n\t- Cushioned Seat (gives nice ride)\n\t- Tuned up and blade sharpened in the\n\t  past month\n\n\tI am moving into a house that has a\n\tsmall area of grass to cut and does not\n\trequire such large mower. The engine was\n\treplaced, not rebuilt, last year due to\n\tsome faulty work done by a lawn mower\n\trepair shop.\n\n\tPRICE:  $600.00\n\tPHONE: 908-582-7028 (Day)\n\t       609-259-0763 (Nights & Weekends)\n\n\n\t\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9408, "properties": {"category": "comp.graphics", "text": "From: thinman@netcom.com (Technically Sweet)\nSubject: Re: Surface intersections\nOrganization: International Foundation for Internal Freedom\nLines: 19\n\nsp1marse@lina (Marco Seirio) writes:\n\n>I have a problem with intersections between two surfaces.\n>Does anybody have a easy to understand algorithm for that or maybe\n>even C source??\n\n\n>      Marco Seirio - In real life sp1marse@caligula.his.s\n\nYou also have a severe problem with news headers.\n\nFTP to cs.purdue.edu:pub/vanecek and pull proxima.tar.Z\nand proxima.ps.Z.  Tres spif.\n\n-- \n\nLance Norskog\nthinman@netcom.com\nData is not information is not knowledge is not wisdom.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9409, "properties": {"category": "comp.windows.x", "text": "From: hdr@ross.COM (Henry D. Reynolds)\nSubject: X11R5 on Sun4/110 cg2 comes up Mono\nNntp-Posting-Host: mowog\nOrganization: ROSS Technology, Inc. Austin, Tx.\nLines: 14\n\n\nThe 4/100 prints out the following message about it's framebuffer\n\ncgtwo0 at vme24d16 0x400000 vec 0xa8 \ncgtwo0: Sun-3 color board, fast read\n\nAnybody know the story on this?\n--\n\n- Can I have an IMPULSE ITEM instead?\n\nHenry D. Reynolds           hdr@ross.com -OR- hdr@nidhog.cactus.org\nFONE: (512)892-7802 x253    ROSS Technology, Inc.\nFAX:  (512)892-3036         5316 Hwy 290 West Suite 500 Austin, TX 78735\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9410, "properties": {"category": "rec.sport.hockey", "text": "From: caine@uxa.cso.uiuc.edu (Lord Vader)\nSubject: Trivia:  the Habs?\nOrganization: University of Illinois at Urbana\nLines: 7\n\n\nOK, I'm sure that this has been asked 100's of times before, but I\nhave wondered since I heard it...  Where the hell did the nickname\nof the \"Habs\" come from for the Montreal Canadiens?\n\nThanks in advance,\nCaine Schneider\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9411, "properties": {"category": "talk.politics.misc", "text": "From: ckincy@cs.umr.edu (Charles Kincy)\nSubject: Re: National Sales Tax, The Movie\nNntp-Posting-Host: next4.cs.umr.edu\nOrganization: University of Missouri - Rolla, Rolla, MO\nLines: 84\n\nIn article <9304151442.AA05233@inet-gw-2.pa.dec.com> blh@uiboise.idbsu.edu (Broward L. Horne) writes:\n>\n[purile babble deleted]\n\nWell, some form of guaranteed health care isn't a bad idea, but,\nyah, I'm a bit worried of a gubnint-run HMO myself.  I'd much\nrather have something like Canada has [and I'll *belt* anyone\nwho tells me to move to Canada :)], but since people will yell\nand scream \"NO!!! NOT ONE LIKE CANADA HAS!!!\", we're\nprobably all screwed.\n\n>      BROMEISTER PREDICTED:\n>\n>\t  \" $1,000 per middle class taxpayer in NEW TAXES \"\n>\n>          \" A NATIONAL SALES TAX \"\n\n\nImpressive.\n\nLet the \"GREAT CHUCKMEISTER\" make a couple predictions, if you\nwill:\n\n1.  The sun will rise tomorrow.\n2.  Rush will bash Clinton on his next show.\n3.  I will turn out to be Clinton's love child.\n\nChances are, I'll get at least one of those right, if I'm lucky.\nI may even get two.\n\n>      Now, for more AAMMMAAAAZZZZZZIINNNNGGGGG Predictions!\n>\n>      i)   The NST will be raised from 3% to 5% by 1996.\n>\t   Ooops.  They ALREADY DID it.\n>          \n>\t   Okay, then.  The NST will be raised from 5% to 7% by 1996.\n\n\nCan't argue with you there.  Once the gubnint has its hands in yer\npocket, they just can't help but feel around a bit....\n\n\n>      ii)  Unemployment will rise!\n\n\nOh, no SH**?!  You mean, our weakened economy will collapse in\nthe face of all this gubnint tax-and-spending, and everyone will\nbe in the handout line?  You're a GENIUS!!\n\n\n>      iii)  Tax revenues will decline.  Deficit will increase!\n>\t    We'll get another DEFICIT REDUCTION PACKAGE by 1997!\n>\t    Everyone will DANCE AND SING!\n\n\nDeficit reduction.  Spending cuts via fee increases?\n\n\n>      To paraphrase Hilary Clinton - \" I will not raise taxes on\n>      the middle class to pay for my programs \"\n>\n>      To paraphrase Bill Clinton - \" I will not raise taxes on\n>      the middle class to pay for my programs \"\n\nNo, any first-year PoliSci major will tell you that the Prez\n*never* raises taxes.  Congress does it.\n\nAll those who voted the Clinton ticket get to wear this *new*\nlabel.....\n\n+----------------+\n|     SUCKA!     |\n|                |\n|  Made in USA   |  \n+----------------+\n\nHook, line, and sinker!  *chuckle*\n\ncpk\n-- \nIt's been 80 days.  Do you know where your wallet is?\n\nSlick Willy's already got his hand in my pocket.  I'm just afraid\nof what he might grab hold of.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9412, "properties": {"category": "soc.religion.christian", "text": "From: dotsonm@dmapub.dma.org (Mark Dotson)\nSubject: Re: Hell_2:  Black Sabbath\nOrganization: Dayton Microcomputer Association; Dayton, Ohio\nLines: 10\n\n: I may be wrong, but wasn't Jeff Fenholt part of Black Sabbath?  He's a\n: MAJOR brother in Christ now.  He totally changed his life around, and\n: he and his wife go on tours singing, witnessing, and spreading the\n: gospel for Christ.  I may be wrong about Black Sabbath, but I know he\n: was in a similar band if it wasn't that particular group...\n\n   Yes, but Jeff also speaks out against listening to bands like Black\nSabbath. He says they're into all sorts of satanic stuff. I don't know.\n\n                          Mark (dotsonm@dmapub.dma.org)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9413, "properties": {"category": "comp.windows.x", "text": "From: roeber@vxcrna.cern.ch (Frederick Roeber)\nSubject: 24-bit Static color: will clients like it?\nReply-To: roeber@cern.ch\nOrganization: CERN -- European Organization for Nuclear Research\nLines: 24\n\nI'm writing an X server for some video-generation equipment.  The\nhardware is \"truecolor\" in YUV space; in X terms it has a 24-bit\nstatic color visual.  I would really like to have the server just\npresent this static visual, but I'm not sure if this will be \nacceptable to \"most\" X clients.  The three problems I see are:\n\n  1) The colormap, though huge, is static.\n  2) All pixels would be 3 bytes wide.\n  3) Because the hardware actually lives in YUV space, the\n     translation RGB->YUV will introduce some rounding error.\n\nBeing more of a server guy than a client guy, I ask: will these\nlimitations thwart many X clients?  Or will most of the X stuff\nfloating around blithely accept what they're given?  I could write\nthe server to also present a pseudocolor visual of, e.g., 8 bits, \nbut I'd rather avoid this if not necessary.\n\nI know there are no absolutes, but I'd appreciate hearing people's\nopinions and suggestions.  Thanks!\n\n-- \nFrederick G. M. Roeber | CERN -- European Center for Nuclear Research\ne-mail: roeber@cern.ch or roeber@caltech.edu | work: +41 22 767 31 80\nr-mail: CERN/PPE, 1211 Geneva 23, Switzerland | home: +33 50 20 82 99\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9414, "properties": {"category": "rec.sport.baseball", "text": "From: zappala@pollux.usc.edu (Daniel Zappala)\nSubject: Re: Marlins first 3 RBI\nArticle-I.D.: pollux.1psiepINNlj0\nDistribution: world\nOrganization: University of Southern California, Los Angeles, CA\nLines: 18\nNNTP-Posting-Host: pollux.usc.edu\n\n\nIn article <1psgriINNi1@rpco10.acslab.umbc.edu>, cs106116@umbc.edu (cs106116) writes:\n|> \n|> Hey, \n|> \n|>    I was watching the Orioles' game on TV yesterday (Monday)\n|> when a report came in to the booth that the first 3 runs came\n|> in on a three-run single.  Did this really happen?  If it did,\n|> how?  They said that the leadoff man knocked them in.  What \n|> exactly happened.  Thanks.\n|> \n\nWalt Weiss tripled just barely inside the right field line and into the\ncorner, driving in Santiago and Conine.  These were the first two\nRBIs.  The third came later when Weiss was knocked in.\n\n\nDaniel\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9415, "properties": {"category": "alt.atheism", "text": "Subject: Re: Don't more innocents die without the death penalty?\nFrom: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 26\n\nIn article <2942881697.0.p00168@psilink.com> p00168@psilink.com (James F. Tims) writes:\n>\n>By maintaining classes D and E, even in prison, it seems as if we \n>place more innocent people at a higher risk of an unjust death than \n>we would if the state executed classes D and E with an occasional error.\n>\n\n  I answer from the position that we would indeed place these people\n  in prison for life.\n\n  That depends not only on their predisposition towards murder, but\n  also in their success rate at escape and therefore their ability\n  to commit the same crimes again.\n\n  In other words, if lifetime imprisonment doesn't work, perhaps\n  it's not because we're not executing these people, but because\n  we're not being careful enough about how we lock them up.\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9416, "properties": {"category": "rec.autos", "text": "From: vlasis@cybernet.cse.fau.edu (vlasis theodore)\nSubject: Re: WARNING.....(please read)...\nOrganization: Cybernet BBS, Boca Raton, Florida\nLines: 61\n\ntobias@convex.com (Allen Tobias) writes:\n\n> In article <1993Apr15.024246.8076@Virginia.EDU> ejv2j@Virginia.EDU (\"Erik Vel\n> >This happened about a year ago on the Washington DC Beltway.\n> >Snot nosed drunken kids decided it would be really cool to\n> >throw huge rocks down on cars from an overpass.  Four or five\n> >cars were hit.  There were several serious injuries, and sadly\n> >a small girl sitting in the front seat of one of them was struck \n> >in the head by one of the larger rocks.  I don't recall if she \n> >made it, but I think she was comatose for a month or so and \n> >doctors weren't holding out hope that she'd live.\n> >\n> >What the hell is happening to this great country of ours?  I\n> >can see boyhood pranks of peeing off of bridges and such, but\n> >20 pound rocks??!  Has our society really stooped this low??\n> >\n> >Erik velapold\n> \n> Society, as we have known it, it coming apart at the seams! The basic reason\n> is that human life has been devalued to the point were killing someone is\n> \"No Big Deal\". Kid's see hundreds on murderous acts on TV, we can abort \n> children on demand, and kill the sick and old at will. So why be surprised\n> when some kids drop 20 lbs rocks and kill people. They don't care because the\n> message they hear is \"Life is Cheap\"!\n> \n> AT\n\nWell people fortunatly or unfortunatly ,\nonly the US is experiencing the devaluation of human life (among \ndeveloped nations).\n\nI am an American but I was raised in Europe, where the worst thing that \ncan happen to somebody is get his car broken into, or have his pocket\npicked by Slaves or Russian refugees.\n\nOf cource there will be some nutcases, but thats extremely rare.\n\nI.e. in Greece you can walk through any neighborhood at any time during\nthe night without even worrying.\n\nIn Germany , you can walk the sidewalks at 4.00 am and not even look \nbehind your back, at the sanitation crews that clean the streets to a \nsparkling cleen.\n\nWhoever of you have been there you know what I am saying.\n\nI dont have any easy answers but if we as a nation do some selfcritisism\nwe might get somewhere.\n\nOf course these postings sould be in soc.culture.US but if we reduce\ncrime here it 'll mean less car insurance rates ,thus we could spend\nmore money on modifing our cars. (Now my posting is rec.autos.tech \nrevelant).\n\nVlasis  Theodore\n\n___________________\nSoftware Engineer\nIDB Mobile Communications.\n\nSig under development ...\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.444+0000", "event": "documents", "entityId": 9417, "properties": {"category": "sci.space", "text": "From: wdwells@nyx.cs.du.edu (David \"Fuzzy\" Wells)\nSubject: Boom!  Whoosh......\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 22\n\n\nAnd one of my profs is the chief engineer for the project (Dr. Ron\nHumble, Univ. Colorado at Colorado Springs).\n\nI love the idea of an inflatable 1-mile long sign.... It will be a\nreally neat thing to see it explode when a bolt  (or even better, a\nWestford Needle!) comes crashing into it at 10 clicks a sec.  \n\n<BOOM!>  Whooooooooshhhhhh......  <sputter, sputter>\n\n<okay, PRETEND it would make a sound!>\n\nI hear <insert favorite rumor here> that it will supposedly coincide\nwith the Atlanta Olympics. \n\n\t\t\t\t\t\tFuzzy.\n===============================================================================\n_ __/|       | Lt. David \"Fuzzy\" Wells |     \"I want peace on earth,\n\\'o.O'       |    HQ AFSPACECOM/CNA    |       goodwill toward men.\" \n=(___)=      |      \"We do debris\"     |\"We're the government. We don't do that \n   U  ...ack!| wdwells@esprit.uccs.edu | that sort of thing.\"     -SNEAKERS \n===============================================================================\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9418, "properties": {"category": "talk.politics.mideast", "text": "From: arens@ISI.EDU (Yigal Arens)\nSubject: More on ADL spying case\nOrganization: USC/Information Sciences Institute\nLines: 222\nDistribution: world\nNNTP-Posting-Host: grl.isi.edu\n\nLos Angeles Times, Tuesday, April 13, 1993.  P. A1.\n\nNEW DETAILS OF EXTENSIVE ADL SPY OPERATION EMERGE\n\n\t* INQUIRY: Transcripts reveal nearly 40 years of espionage\n\t  by a man who infiltrated political groups\n\nBy Richard C. Paddock, Times staff writer.\n\nSAN FRANCISCO -- To the outside world, Roy Bullock was a small-time\nart dealer who operated from his house in the Castro District.  In\nreality, he was an undercover spy who picked through garbage and\namassed secret files for the Anti-Defamation League for nearly 40\nyears.\n\nHis code name at the prominent Jewish organization was Cal, and he was\nso successful at infiltrating political groups that he was once chosen\nto head an Arab-American delegation that visited Rep. Nancy Pelosi\n(D-San Francisco) in her Washington, D.C., office.\n\nFor a time, Cal tapped into the phone message system of the White\nAryan Resistance to learn of hate crimes.  From police sources he\nobtained privileged, personal information on at least 1,394 people. \nAnd he met surreptitiously with agents of the South African government\nto trade his knowledge for crisp, new $100 bills.\n\nThese are among the secrets that Bullock and David Gurvitz, a former\nLos Angeles-based operative, divulged in extensive interviews with\npolice and the FBI in a growing scandal over the nation-wide\nintelligence network operated by the Anti-Defamation League.\n\nOfficials of the Anti-Defamation League, while denying any improper\nactivity, have said they will cooperate with the investigation.  They\nhave refused to discuss Bullock and Gurvitz.\n\nTranscripts of the interviews -- among nearly 700 pages of documents\nreleased by San Francisco prosecutors last week -- offer new details\nof the private spy operation that authorities allege crossed the line\ninto illegal territory.\n\nAt times, the intelligence activities took on a cloak-and-dagger air\nwith laundered payments, shredded documents, hotel rendezvous with\nforeign agents and code names like \"Ironsides\" and \"Flipper.\"\n\nOn one occasion, Gurvitz recounts, he received a tip that a\npro-Palestinian activist was about to board a plane bound for Haifa,\nIsrael.  Although the Anti-Defamation League publicly denies any ties\nto Israel, Gurvitz phoned an Israeli consular official to warn him. \nShortly afterward, another official called Gurvitz back and debriefed\nhim.\n\nThe court papers also added to the mystery of Tom Gerard, a former CIA\nagent and San Francisco police officer accused of providing\nconfidential material from police files to the Anti-Defamation League.\n\nGerard fled to the Philippines last fall after he was interviewed by\nthe FBI, but left behind a briefcase in his police locker.  Its\ncontents included passports, driver's licenses and identification\ncards in 10 different names; identification cards in his own name for\nfour American embassies in Central America; and a collection of blank\nbirth certificates, Army discharge papers and official stationery from\nvarious agencies.\n\nAlso in the briefcase were extensive information on death squads, a\nblack hood, apparently for use in interrogations, and photos of\nblindfolded and chained men.\n\nInvestigators suspect that Gerard and other police sources gave the\nADL confidential driver's license or vehicle registration information\non a vast number of people, including as many as 4,500 members of one\ntarget group, the Arab-American Anti-Discrimination Committee.\n\nEach case of obtaining such data from a law enforcement officer would\nconstitute a felony, San Francisco Police Inspector Ron Roth noted in\nan affidavit for a search warrant.\n\nThe Anti-Defamation League, a self-described Jewish defense and civil\nrights organization, acknowledges it has long collected information on\ngroups that are anti-Semitic, extremist or racist. The ADL's\nfact-finding division, headed by Irwinn Suall in New York, enjoys a\nreputation for thoroughness and has often shared its information with\npolice agencies and journalists. \n\nHowever, evidence seized from Bullock's computer shows he kept files\non at least 950 groups of all political stripes, including the\nAmerican Civil Liberties Union, Earth Island Institute, the United\nFarm Workers, Jews for Jesus, Mother Jones magazine, the Center for\nInvestigative Reporting, the Bo Gritz for President Committee, the\nAsian Law Caucus and the AIDS activist group ACT UP.\n\nThe computer files also included information on several members of\nCongress, including Pelosi, House Armed Services Committee Chairman\nRon Dellums (D-Berkeley) and former Republican Rep. Pete McCloskey\nfrom the Bay Area.\n\nIn their statements, Bullock and Gurvitz said the Anti-Defamation\nLeague has collected information on political activists in the Los\nAngeles area for more than 30 years.  They said they worked closely\nwith three Los Angeles County sheriff's deputies who specialized in\nintelligence work, a Los Angeles Police Department anti-terrorism\nexpert and a San Diego County Sheriff's Department intelligence\nofficer.\n\nA spokesman for the Los Angeles Sheriff's Department said he knew\nnothing of any contact between the deputies and the ADL.  The Los\nAngeles Police Department, which earlier refused to cooperate with the\ninvestigation, and the San Diego Sheriff's Department declined\ncomment.\n\nBullock, 58, is one of the most intriguing characters in the spy\ndrama.  Although he is not Jewish, he began working undercover as a\nvolunteer for the ADL and the FBI in Indiana in 1954 after reading a\nbook about a man who infiltrated the Communist Party.\n\nBullock moved to Los Angeles in 1960 and was given a paid position by\nthe ADL as an intelligence operative, he told authorities.  In the\nmid-1970s, he moved to San Francisco and continued his spy operations\nup and down the West Coast.\n\nTo keep his identity secret, his salary has always been funneled\nthrough Beverly Hills attorney Bruce I. Hochman -- who has never\nmissed a payment in more than 32 years, Bullock said.\n\n\"I was an investigator for the ADL.  I investigated any and all\nanti-democratic movements,\" Bullock said.  \". . . Officially, I'm only\na contract worker with Bruce Hochman.  That way, the league would not\nbe officially connected with me.\"\n\nBullock said he became a master at infiltrating groups from Communists\nto Arab-American to gay radicals to skinheads, usually using his own\nname but once adopting the alias Elmer Fink.\n\n\"I'm one of a kind,\" he told police.\n\nIn recent years, however, his ADL affiliation has increasingly become\nknown, and at one point he was confronted by a skinhead armed with a\nshotgun who threatened to kill him.\n\nIn the mid-1980s, he helped San Francisco police solve a bombing at a\nsynagogue by combing through the trash of extremist Cory Phelps and\nmatching handwriting with samples on a threatening letter obtained by\npolice.  In part because of this investigation, he became close\nfriends with Gerard, who at the time was working in the San Francisco\npolice intelligence division.\n\nBullock frequently searched through the garbage of target groups.  An\nFBI report noted how he investigated one Palestinian group:\n\n\"Bullock would write reports based on what he found in the trash, and\nwould share the reports with Gerard.  Bullock also gave the trash to\nGerard for Gerard to examine.  Gerard would later return the trash to\nBullock.\"\n\nFrom a wide range of sources, Bullock compiled files on 9,876\nindividuals and more than 950 political groups.  Gerard, whose files\ncontained many identical entries, kept files on 7,011 people.\n\nIn 1987, Bullock and Gerard began selling some of their vast wealth of\ninformation to the South African government.  Bullock tells of\nmeetings secretly with South African agents at San Francisco hotels\nand receiving envelopes filled with thousands of dollars in new $100\nbills.\n\nBullock insists the information he sold consisted of data he culled\nonly from public sources. Once he rewrote an innocuous item published\nby San Francisco Chronicle columnist Herb Caen about South African\nBishop Desmond Tutu and the wife of prominent attorney Melvin Belli --\nand submitted it as his own work.\n\nBullock said it was Gerard who sold official police intelligence. \nBullock said he split about $16,000 from the South African government\nevenly with Gerard, telling him at one point, \"I may be gay but I'm a\nstraight arrow.\"\n\nIn his interviews with the police and FBI, Bullock talked freely about\nengaging in certain activities that prosecutors say would appear to\nviolate the law.\n\nFor example, Bullock admitted to receiving driver's license records\nand criminal histories from Gerard on about 50 people -- a fraction of\nthe confidential police data found in his computer.  And he said\nGerard gave him complete San Francisco Police Department intelligence\nfiles on various Nazi groups that were supposed to be destroyed under\ndepartment policy.\n\nBullock said he also received a confidential FBI report on the Nation\nof Islam that he later shredded at the Anti-Defamation League's San\nFrancisco office.\n\nBullock seemed proud of his \"Operation Eavesdrop,\" in which he used a\npaid informant, code-named Scumbag, to help tap into a White Aryan\nResistance phone message network, listening to the messages left by\nmembers of the right-wing group.  \"For a short time, it was\nwonderful,\" he told police.\n\nIn Los Angeles, ADL operative Gurvitz was hired about four years ago\nas a \"fact-finder\" to keep intelligence files and occasionally go\nundercover to the meetings of target groups.\n\nAmong other things, he told San Francisco authorities, the Los Angeles\nADL office kept a record of any Arab-American who had \"anti-Israel\nleanings\" or who wrote a letter to a newspaper expressing such\nsentiment.\n\nGurvitz was recently forced to resign after an incident in which he\nattempted to misuse the ADL intelligence network to seek revenge on a\nrival who got a job Gurvitz wanted at the Simon Wiesenthal Center for\nHolocaust Studies.  Gurvitz got confidential police data on the rival\nand threatened to expose him as a Jewish spy to a right-wing hate\ngroup.\n\nGurvitz has since begun cooperating with police and the FBI in the\nprobe, providing considerable information about the ADL operation. \nUnlike Bullock, he has been assured he is not a subject of the\ninvestigation.\n\nGurvitz declined through his father in Los Angeles to be interviewed\nby The Times. Bullock's attorney said his client would not comment.\n--\nYigal Arens\nUSC/ISI                                                TV made me do it!\narens@isi.edu\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9419, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Final Solution for Gaza ?\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 66\n\nIn article <1483500354@igc.apc.org> Center for Policy Research <cpr@igc.apc.org> writes:\n>\n>From: Center for Policy Research <cpr>\n>Subject: Final Solution for Gaza ?\n>\n>While Israeli Jews fete the uprising of the Warsaw ghetto,\n\n\"fete\"??? Since this word both formally and commonly refers to\npositive/joyous events, your misuse of it here is rather unsettling.\n \n>they repress by violent means the uprising of the Gaza ghetto \n>and attempt to starve the Gazans.\n\nI certainly abhor those Israeli policies and attitudes that are\nabusive towards the Palestinians/Gazans. Given that, however, there \n*is no comparison* between the reality of the Warsaw Ghetto and in \nGaza.  \n>\n>The right of the Gazan population to resist occupation is\n>recognized in international law and by any person with a sense of\n>justice. \n\nJust as international law recognizes the right of the occupying \nentity to maintain order, especially in the face of elements\nthat are consciously attempting to disrupt the civil structure. \nIronically, international law recognizes each of these focusses\n(that of the occupied and the occupier) even though they are \ninherently in conflict.\n>\n>As Israel denies Gazans the only two options which are compatible\n>with basic human rights and international law, that of becoming\n>Israeli citizens with full rights or respecting their right for\n>self-determination, it must be concluded that the Israeli Jewish\n>society does not consider Gazans full human beings.\n\nIsrael certainly cannot, and should not, continue its present\npolicies towards Gazan residents. There is, however, a third \nalternative- the creation and implementation of a jewish \"dhimmi\"\nsystem with Gazans/Palestinians as benignly \"protected\" citizens.\nWould you find THAT as acceptable in that form as you do with\nregard to Islam's policies towards its minorities?\n \n>Whether they have some Final Solution up their sleeve ?\n\nIt is a race, then? Between Israel's anti-Palestinian/Gazan\n\"Final Solution\" and the Arab World's anti-Israel/jewish\n\"Final Solution\". Do you favor one? neither? \n>\n>I urge all those who have slight human compassion to do whatever\n>they can to help the Gazans regain their full human, civil and\n>political rights, to which they are entitled as human beings.\n\nSince there is justifiable worry by various parties that Israel\nand Arab/Palestinian \"final solution\" intentions exist, isn't it\nimportant that BOTH Israeli *and* Palestinian/Gazan \"rights\"\nbe secured?\n>\n>Elias Davidsson Iceland\n>\n\n\n--\nTim Clock                                   Ph.D./Graduate student\nUCI  tel#: 714,8565361                      Department of Politics and Society\n     fax#: 714,8568441                      University of California - Irvine\nHome tel#: 714,8563446                      Irvine, CA 92717\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9420, "properties": {"category": "misc.forsale", "text": "From: pat@wrs.com (Patrick Boylan)\nSubject: 1985.5 Porsche 944\nKeywords: porsche 944\nLines: 69\nNntp-Posting-Host: delaware\nReply-To: pat@wrs.com\nOrganization: Wind River Systems\nDistribution: usa\n\n\n1985.5 Porsche 944\n\n    - Turbo trim (spoilers)\n    - graphite black\n    - all around excellent condition\n    - removable factory sunroof\n    - leather interior\n    - new A/C\n    - new timing belt\n    - bra\n    - 90k miles\n\n$9900 OBO\n\n- Patrick\n\n-- \n Patrick Boylan, - Wind River Systems, Alameda, CA - pat@wrs.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9421, "properties": {"category": "rec.motorcycles", "text": "From: ron@hpfcso.FC.HP.COM (Ron Miller)\nSubject: Re: MOTORCYCLE DETAILING TIP #18\nOrganization: Hewlett-Packard, Fort Collins, CO, USA\nLines: 12\n\nRe: Rubbing Compound....\n\n\nYou mean Meguire's* didn't work?\n\n\n\n* THE DOD magic elixir of choice for plastic stuff\n\n\nRon Miller\nDoD 693\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9422, "properties": {"category": "rec.sport.baseball", "text": "From: steph@pegasus.cs.uiuc.edu (Dale Stephenson)\nSubject: Re: Rockies (not Rookies)\nArticle-I.D.: pegasus.steph.733996812\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 19\n\nIn <C500u7.Kr8@news.cso.uiuc.edu> dbl50872@uxa.cso.uiuc.edu (Daniel Brian Lake) writes:\n\n>You'd think that an expansion team would be filled with young'ns, not guys\n>like Murphy, Galaragga, B Smith...\n\nIt depends.  If you can get your old veterans cheap, and if they can perform\nat a higher level than your young talent can *now*, why not the talent \ndevelop in the minors while giving the fans some familiar names to cheer.\nIf the veterans are gone in a year or two -- that should be just about right.\n\n>Maybe someone should tell those renegade front office people in Denver. :)\n\nOpen question -- which was more important to the expansion clubs, the expansion\ndraft or the regular draft.  (They've had one of each, I think.)\n-- \nDale J. Stephenson |*| (steph@cs.uiuc.edu) |*| Baseball fanatic\n\n  \"It is considered good to look wise, especially when not \n   overburdened with information\" -- J. Golden Kimball\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9423, "properties": {"category": "comp.windows.x", "text": "From: dbl@visual.com (David B. Lewis)\nSubject: comp.windows.x Frequently Asked Questions (FAQ) 4/5\nSummary: useful information about the X Window System\nArticle-I.D.: visual.C52Ep6.97p\nExpires: Sun, 2 May 1993 00:00:00 GMT\nReply-To: faq%craft@uunet.uu.net (X FAQ maintenance address)\nOrganization: VISUAL, Inc.\nLines: 968\n\nArchive-name: x-faq/part4\nLast-modified: 1993/04/04\n\n----------------------------------------------------------------------\nSubject:  80)! Where can I get an X-based plotting program?\n\nThese usually are available from uucp sites such as uunet or other sites as\nmarked; please consult the archie server to find more recent versions.\n\n gnuplot\tX (xplot), PostScript and a bunch of other drivers.\n\texport.lcs.mit.edu [and elsewhere]:contrib/gnuplot3.1.tar.Z\n\n gl_plot\tX output only [?]\n\tcomp.sources.unix/volume18\n\n graph+\n\tyallara.cs.rmit.oz.au:/pub/graph+.tar.Z [131.170.24.42]\n\tcomp.sources.unix/volume8\n\n pdraw,drawplot\t\t2D and 3D X,PS\n\tscam.berkeley.edu:/src/local/3dplot.tar.Z [128.32.138.1]\n\tscam.berkeley.edu:/src/local/contour.tar.Z [128.32.138.1]\n\tscam.berkeley.edu:/src/local/drawplot.tar.Z [128.32.138.1]\n\tuunet:~ftp/contrib/drawplot.tar.Z\n\n xgraph\t\tplot, zoom. Outputs PS or HPGL.\n\tshambhala.berkeley.edu:/pub/xgraph-11.tar.Z [128.32.132.54]\n\tsun1.ruf.uni-freiburg.de:X11/contrib/xgraph-11.tar.Z [132.230.1.1]\n\tnisc.jvnc.net:pub/xgraph-11.tar.Z [128.121.50.7]\n\tcomp.sources.x/volume3\n\tor many other sites \n\n ACE/gr (formerly xvgr and xmgr) XY plotting tools\n\tftp.ccalmr.ogi.edu [129.95.72.34]\n\tXView version: /CCALMR/pub/acegr/xvgr-2.09.tar.Z\n\tMotif version: /CCALMR/pub/acegr/xmgr-2.09.tar.Z\n\t[mirrored on export in /contrib/acegr]\n\n XGobi\t\tAn interactive dynamic scatter-plotting tool from Bellcore\n\tlib.stat.cmu.edu: general/xgobi* [log in as statlib with your email\n\tas the password; or send email to statlib@lib.stat.cmu.edu containing\n\tthe one-line message \"send xgobi from general\"]\n\tInformation from: Debby Swayne, dfs@bellcore.com.\n\n Robot\t\ta scientific XView-based graph plotting and data analysis tool\n\tftp.astro.psu.edu:pub/astrod/robotx0.46.tar.Z [128.118.147.28]\n\n plotmtv\ta multi-purpose 2D/3D plotter\n\ttanqueray.berkeley.edu:/pub/Plotmtv1.3.1.tar.Z\n\t\n\n[2/91. Thanks in part to: emv@ox.com (Ed Vielmetti); geoff@Veritas.COM \n(Geoffrey Leach); Paul A. Scowen (uk1@spacsun.rice.edu); black@beno.CSS.GOV \n(Mike Black)]\n\n----------------------------------------------------------------------\nSubject:  81)  Where can I get an X-based spreadsheet?\n\nA version of \"sc\" for X and which supports Lotus files is available from\nvernam.cs.uwm.edu in xspread2.0.tar.Z. It also includes graphing functions.\nInformation: soft-eng@cs.uwm.edu.\n\nThe GNU package OLEO is available in prep.ai.mit.edu:pub/gnu/oleo-1.2.2.tar.Z;\nit can generate PostScript renditions of spreadsheets.\n\nAlso:\n\nSeveral of the below are part of integrated office-productivity tools which may\nalso include word-processing, email, conferencing, image processing, and \ndrawing/painting, among other features.\n\nVendor                        Product    Contact Information \n------                        -------    -------------------\nAccess Technology             20/20      508-655-9191\nInformix                      WingZ      800-331-1763\nQuality Software Products     Q-Calc/eXclaim    800-628-3999 (CA:213-410-0303) \nUnipress                      Q-Calc     201-985-8000\nUniplex                       Uniplex    214-717-0068, 800-356-8063\nDigital\t\t\t      DECdecision   1-800-DIGITAL\nApplix\t\t\t      Aster*x\t 508-870-0300, 1-800-8APPLIX.\nAIS\t\t\t      XESS\t 919-942-7801, info@ais.com\nBBN Software Products         BBN/Slate  617-873-5000 slate-offer@bbn.com\nElsid Software Systems\t      Ripcam\t 613-228-9468\n\nSAS by the SAS Institute now has a spreadsheet module; the X version is\navailable on the current popular RISC platforms.\n\n----------------------------------------------------------------------\nSubject:  82)  Where can I get X-based project-management software?\n\nVendor                        \tProduct\t\tContact Information \n------\t\t\t\t-------\t\t-------------------\nProductivity Solutions\t\tUltra Planner\t617-237-1600\nQuality Software Products \tMasterPlan Version, 310-410-0303 sales@qsp.com\nDigital Tools, Inc.\t\tAutoPLAN\t408-366-6920, 800-755-0065\nNASA\t\t\t\tCOMPASS\t\t404-542-3265,\n\t\t\t\t\t\tservice@cossack.cosmic.uga.edu\nGEC-Marconi Software Systems\tGECOMO Plus\t703-648-1551\nGEC-Marconi Software Systems\tSIZE Plus\t703-648-1551\nTEI, Inc\t\t\tVUE\t\t408-985-7100\nMantix\t\t\t\tCascade\t\t703-506-8833\nAdvanced Management Solutions\tSchedule Publisher\t800-397-6829\nAuburn University\t\t??\t\t??\n\n[thanks to Pete Phillips (pete@egh-qc.co.uk); 7/92]\n[thanks to Atul Chhabra (atul@nynexst.com); 10/92]\n\n----------------------------------------------------------------------\nSubject:  83)  Where can I get an X-based PostScript previewer?\n\n\tGhostscript is distributed by the Free Software Foundation \n(617-876-3296) and includes a PostScript interpreter and a library of graphics\nprimitives. Version 2.5.2 is now available; the major site is prep.ai.mit.edu. \n[11/92] \n\n\tGSPreview (by the Computing Laboratory of the University of Kent at \nCanterbury) is an X user interface (WCL-based) to the Ghostscript 2.4[.1]\ninterpreter [5/92].  The source is available for anonymous ftp from \nexport.lcs.mit.edu as gspreview.2.0.tar.Z.\n\n\tGhostview (by Tim Theisen, tim@cs.wisc.edu) is full-function user \ninterface for GhostScript. Check ftp.cs.wisc.edu or prep.ai.mit.edu for \n/pub/ghostview-1.4.1.tar.Z [1/93]. There are also several executables available\non ftp.cs.wisc.edu:/pub/X/ghostview-exe for various architectures.\n\nAlso:\n\n\tScriptWorks is Harlequin's software package for previewing and printing\nPostScript(R) descriptions of text and graphics images; previewers for X are \navailable. For information call +44-223-872522 or send email to \nscriptworks-request@harlqn.co.uk.\n\n\tImage Network's Xps supports the full PostScript language and renders\nin color, grayscale, or monochrome. Fonts displayed are anti-aliased. Info:\nImage Network, +1 415 967 0542.\n\n\tDigital's dxpsview runs on UWS 2.1 and 2.2.\n\n\tSun's pageview runs with the X11/NeWS server. \n\n----------------------------------------------------------------------\nSubject:  84)  Where can I get an X-based GKS package?\n\n\tThe latest freely-available XGKS can be obtained from \nxgks-request@unidata.ucar.edu; this is a 2c implementation derived from the \nX11R4 contrib XGKS from IBM and the University of Illinois. The release\nis on unidata.ucar.edu [128.117.140.3] as pub/xgks.tar.Z. [12/90]\n\tIn addition, Grafpak-GKS is available from Advanced Technology Center\n(714-583-9119).\n\tGKSUL is available from gks@ulowell.edu (ULowell CS department). It is\na 2b implementation which includes drivers for a variety of devices. It can be \npassed an X window ID to use. The package includes both C and Fortran bindings.\n\n[11/90; from dsrand@mitre.org and from stew@hanauma.stanford.edu]\n\n\tAn XgksWidget is produced by Neil Bowers (neilb@leeds.dcs; \nneilb@dcs.leeds.ac.uk); the latest [10/91] conforms with the new version of \nXGKS (2.4). It is available on export in contrib/xgks-widget.tar.Z. \n\n----------------------------------------------------------------------\nSubject:  85)  Where can I get an X-based PEX package?\n\n\tThe first official release of PEX is with X11R5; fix-22 brings the\nSample Implementation server to version 5.1.\n\n\tThe final PEX 5.1 Protocol specification is now available via anonymous\nftp to export.lcs.mit.edu (18.24.0.12), in the directory /pub/DOCS/PEX/. \nChanges made from the Public Review draft are listed in the file \"5.1P_changes\"\nin that directory. [9/92]\n\n\tThe final PEXlib 5.1 document is on export in pub/DOCS/PEXlib. [11/92]\n\n\tThere is now available from the University of Illinois an \nimplementation of the PEX 4.0 specification called UIPEX. It contains a \"near-\ncomplete\" implementation of PHiGS and PHiGS PLUS. The file \npub/uipex/uipex.tar.Z is on a.cs.uiuc.edu (128.174.252.1); the porting platform\nwas an RT running 4.3.  Questions and comments can to go uipex@cs.uiuc.edu. \n\n\tIn addition, the PEXt toolkit by Rich Thomson (rthomson@dsd.es.com) is \navailable on export as PEXt.tar.Z; it includes a PEX widget making it easier to\ninclude PEX in Xt-based programs.\n\n----------------------------------------------------------------------\nSubject:  86)  Where can I get an X-based TeX or DVI previewer?\n\n\tThe xtex previewer for TeX files is available from a number of archive \nsites, including uunet; the current version is usually on ftp.cs.colorado.edu\n(128.138.204.31) in SeeTeX-2.18.5.tar.Z; pre-converted fonts are also on that \nmachine. The distribution all includes \"mftobdf\" which converts PK, GF, and PXL\nfonts to BDF format, where they can then be compiled for use by your local X\nserver. \n\tThe xdvi dvi-previewer is fairly comprehensive and easy to use. It is \nalso available from a number of sites, including uunet and export.lcs.mit.edu;\ncurrent version is patchlevel 16 [12/92].\n\n----------------------------------------------------------------------\nSubject:  87)  Where can I get an X-based troff previewer?\n\n\tX11R4 has two previewers for device-independent troff: the supported \nclient xditview, and the contributed-but-well-maintained xtroff. An earlier \nversion of xtroff also appeared on the R3 contributed source. xditview is also\nin the R5 distribution.\n\tIn addition, the xman client can be used to preview troff documents\nwhich use the -man macros (i.e. man pages).\n\tIf psroff is used its output can be viewed with a PostScript previewer.\n\nIn addition:\n\n\txproof, an X previewer for ditroff has been contributed by Marvin \nSolomon (solomon@cs.wisc.edu); version 3.5 is available on export in \ncontrib/xproof*. \t[8/90]\n\n\tElan Computer Group (CA: 415-964-2200) produces eroff, a modified \ntroff implementation, and Elan/Express, an X11 eroff previewer.\n\n\tSoftQuad (416-963-8337; USA only 800-387-2777, mail@sq.uu.net or\nmail@sq.com) offers SoftQuad Publishing Software, including a substantially-\nrewritten troff formatter, a better intermediate language with backwards \ncompatibility, and an X11[R3,R4] previewer. (This is the package adopted by \nAT&T's own MIS department, and used in and re-sold by many parts of AT&T). \n[information from Ian Darwin, SoftQuad (ian@sq.com) 3/90]\n\n\tImage Network (1-800-TOXROFF; CA: 415-967-0542) offers the Xroff \npackage, which includes a fine modified troff implementation and a set of \nX11-based page previewers. (This is the package OEM'ed by several hardware \nvendors.)\n\n[mostly courtesy moraes@cs.toronto.edu (Mark Moraes)] [2/90]\n\n----------------------------------------------------------------------\nSubject:  88)! Where can I get a WYSIWYG interface builder?\n\n\tA new release of the DIRT interface builder by Richard Hesketh works \nwith X11R5 and includes some support for the Motif widget set. From the README:\n  This builder allows the interactive creation and rapid prototyping of X user\n  interfaces using the X Toolkit and a number of Widget Sets.  Dirt generates\n  \"Wc - Widget Creation\" resource files and this distribution also includes the\n  Widget Creation Library (version 1.06, with the exception of the demos and\n  Mri/Ari source code) with the kind permission of its author David E. Smyth.\nCheck dirt.README, dirt.A2.0.tar.Z, and dirt.PS.Z on export.lcs.mit.edu.\n\n\tThe InterViews 3.0.1 C++ toolkit contains a WYSIWIG interface builder \ncalled ibuild. ibuild generates code for an InterViews application complete \nwith Imakefile and an X-resource file. Documentation is /pub/papers/ibuild.ps \non interviews.stanford.edu (36.22.0.175).\n\tQuest Windows's (408-496-1900) ObjectViews C++ package includes an\ninteractive building tool. \n\n\tDruid (Demonstrational Rapid User Interface Development) runs on SPARC \nmachines using OSF/Motif 1.0; it is intended eventually to be a full UIMS but \napparently now has only support for creating the presentation components, for \nwhich it generates C/UIL code. Info: Singh G, Kok CH, Ngan TY, \"Druid: A System\nfor Demonstrational Rapid User Interface Development\". Proc. ACM SIGGRAPH Symp \non User Interface Software and Technology (UIST'90). ACM, NY, 1990, pp:167-177.\n\n\tThe BYO interface builder is implemented in tcl.\n\nAlso:\n\tIn addition, these commercial products (unsorted) are available in \nfinal or prerelease form [the * following the product name indicates that the \nproduct is known to allow the designer to specify for each widget whether a \nparticular resource is hard-coded or written to an application defaults file,\nfor at least one form of output]. Some are much more than user-interface tools;\nsome are full user interface management systems; information on most is not\nup-to-date:\n\nProduct Name\t\tLook/Feel\tCode Output\t\tVendor\n\nHP Interface\t\tMotif 1.1\tC(Xm)\t\t\tHP/Visual Edge\n Architect/ UIMX\t\nOPEN LOOK Express\tOPEN LOOK\tC(Xol+ helper lib)\tAT&T /\n\t\t\t\t\t\t\t\tVisual Edge\nUIMX 2.0 *\t\tMotif 1.1\tC(Xm + helper code)\tVisual Edge\n\t\t\t\t\t\t\t\t514-332-6430\n\t\t\t\t\t\t\t\t& distributors\nVUIT 2.0\t\tMotif 1.1\tC/UIL[r/w]\t\tDEC \n\t\t\t\t\t\t\t\t(1-800-DIGITAL)\nX-Designer 1.1 *\tMotif 1.1\tC(Xm); C/UIL\t\tImperial\n\t\t\t\t\t\t\t\tSoftware\n\t\t\t\t\t\t\t\tTechnology, Ltd\n\t\t\t\t\t\t\t      (+44 734 587055)\n\t\t\t\t\t\t\t\tsales@ist.co.uk\nXFaceMaker2 (XFM2) * \tMotif 1.0\tC;C/script (C-like procedural \n\t\t\t\t\tlanguage);C/UIL\n\t\t\t\t\t \t\t\tNSL \n\t\t\t\t\t\t\t(33 1 43 36 77 50)\n\t\t\t\t\t\t\trequests@nsl.fr\nBuilder Xcessory 2.0 *\tMotif 1.1\tC(Xm); C/UIL[r/w]\tICS \n\t\t\t\t\tAda\t\t\t(617-621-0060)\n\t\t\t\t\t\t\t\tinfo@ics.com\nXBUILD 1.1 *\t\tMotif 1.0\tC(Xm); C/UIL \t\tNixdorf\t\n\t\t\t\t\t\t\t\t(617-864-0066)\n\t\t\t\t\t\t\txbuild@nixdorf.com\niXBUILD\t\t\tMotif 1.1\tC(Xm); C/UIL\t\tiXOS Software\n\t\t\t\t\t\t\t\tkarl@ixos.uucp\n\t\t\t\t\t\t\t\t089/461005-69\nTeleUSE 2.1 *\t\tMotif 1.1.5\tC(Xm); C/UIL[r/w]\n\t\t\t\t\t\t\t\tTelesoft\n\t\t\t\t\t\t\t\t(619-457-2700)\n\t\t\t\t\t\t\tgui_info@telesoft.com\nezX 3.2\t\t\tMotif 1.1\tC(Xm +helper lib);C/UIL;Ada\n\t\t\t\t\t\t\t\tSunrise\n\t\t\t\t\t\t\t\t(401-847-7868)\n\t\t\t\t\t\t\t       info@sunrise.com\nSnapix\t\t\tMotif\t\tC/Xm\t\t\tADNT\n\t\t\t\t\t\t\t\t+33 1 3956 5333\nOpenWindows Developers\tOPEN LOOK \tGIL [-> C/XView]\tSun\nGuide 3.0\t\t\t\tGIL [-> C++/XView]\n\t\t\t\t\tGIL [-> C/OLIT]\n\t\t\t\t\tGIL [-> C/PostScript for TNT]\nExoCode/SXM\t\tMotif\t\tC(Xm)\t\t\tExpert Object\nExoCode/Plus\t\tOPEN LOOK\tXView\t\t\t708-676-5555\nTAE+\t\t\tXw;Motif\tC(Xw,Xm); C/TCL (TAE Control Language,\n\t\t\t\t\tlike UIL[needs helper library]);\n\t\t\t\t\tVAX Fortran; Ada; C++\n\t\t\t\t\t\t\t\tNasa Goddard\n\t\t\t\t\t\t\t\t(301) 286-6034\nMOB, XSculptor\t\t\tMotif; OpenLook\tC/Xm,UIL; C/Xol\t\tKovi\n\t\t\t\t\t\t\t\t408-982-3840\nPSM\t\t\tPM, MSW 3.0,\tC/UIL\t\t\tLancorp\n\t\t\tMotif 1.1.2,Mac\t\t\t\tPty Ltd.\n\t\t\t\t\t\t\t\t+61 3 629 4833\n\t\t\t\t\t\t\t\tFax:  629 1296\n\t\t\t\t\t\t\t\t(Australia)\nMOTIFATION\t\tMotif 1.0|1.1.2\tC(Xm)\t\t\tAKA EDV\n\t\t\t\t\t\t       +49 (0) 234/33397-0\n\t\t\t\t\t\t       +49 (0) 234/33397-40 fax\nUIB\t\t\tOpen Look/Motif\tC++(OI)\t\t\tParcPlace \n\t\t\t\t\t\t\t\t+1 303-678-4626\n\t\t\t\t\t\t\t\t\nLook for magazine reviews for more complete comparisons of meta-file formats,\ndocumentation, real ease-of-use, etc; Unix World and Unix Review often carry\narticles.\n\n\tIn addition, Neuron Data (1 415 321-4488) makes Open Interface, a \nwindow-system-independent object toolkit which supports interfaces which are \nor resemble (supersets of) Mac, Windows, and Motif and Open Look; the package \nincludes an interface builder.\n\n       In addition, the GRAMMI builder supports the development of Ada/X \napplications using its own set of objects which are planned to have a Motif \nlook.  GRAMMI is written in Ada and generates Ada specs and stub bodies. \n(1-800-GRAMMI-1).\n\n\tIn addition, these non-WYSIWYG but related products may help for goals \nof rapid prototyping of the application interface:\n\n\tWCL: the Widget Creation Library. Basically describes the widget\nhierarchy and actions in a resources file; available from fine archive servers\neverywhere, including devvax.jpl.nasa.gov (128.149.1.143) in pub/. Wcl provides\na very thin layer over Xt without any internal tweaking. Version 2.5 is current\n[3/93].\n\tWINTERP: an Xlisp-based Motif toolkit allows for interpretive \nprogramming. The copy on the R4 tape is outdated; get a copy off export or \nemail to winterp-source%hplnpm@hplabs.hp.com. \n\tThe Serpent UIMS permits the building of user-interfaces without \nspecific knowledge of coding but with an understanding of attributes being set\non a particular [Motif] widget.  Beta Release 1.2 is available from \nftp.sei.cmu.edu (128.237.1.13) and can be found in /pub/serpent.  Serpent is \nalso available on export.lcs.mit.edu (18.24.0.11) in /contrib/serpent. Email\nquestions can go to serpent@sei.cmu.edu. A commercial version of Serpent is\navailable as \"Agora\" from ASET, 221 Woodhaven Drive, Pittsburgh, PA 15228.\n\tGarnet is a Common Lisp-based GUI toolkit. Information is available \nfrom garnet@cs.cmu.edu.\n\tMetaCard is a hypertext/Rapid Application Development environment\nsimilar to Apple/Claris Corporation's HyperCard (info@metacard.com). MetaCard \nis available via anonymous FTP from ftp.metacard.com, csn.org, or \n128.138.213.21.\n\n----------------------------------------------------------------------\nSubject:  89)  Where can I find X tools callable from shell scripts?\nI want to have a shell script pop up menus and yes/no dialog boxes if the user \nis running X.\n\n\tSeveral tools in the R3 contrib/ area were developed to satisfy these\nneeds: yorn pops up a yes/no box, xmessage displays a string, etc. There are\nseveral versions of these tools; few, if any, have made it to the R4 contrib/ \narea, though they may still be available on various archive sites.\n\tIn addition, Richard Hesketh (rlh2@ukc.ac.uk) has posted the xmenu\npackage to comp.sources.x (\"v08i008: xmenu\") for 1-of-n choices.  [7/90]\n\tTwo versions of XPrompt have been posted to comp.sources.x, the latter\nbeing an unauthorized rewrite. [R. Forsman (thoth@reef.cis.ufl.edu), 1/91]\n\tThere is a version of XMenu available from comp.sources.x; it is\nbeing worked on and will likely be re-released.\n\txp-1.1.tar.Z, xpick-1.0.tar.Z and xzap-1.0.tar.Z on export's contrib/\nare tools by Gerry.Tomlinson@newcastle.ac.UK which act as X versions of the \nsimple display and choice-making tools in K&P. [4/92]\n\txtpanel lets the user build a panel containing interactive objects such\nas buttons, sliders, text fields, etc., either from the command line or using a\nsimple scripting language. It is available for anonymous ftp from \nhanauma.Stanford.EDU (36.51.0.16) as pub/X/xtpanel.tar.Z and may also be found \nin the alt.sources archives.\n\n----------------------------------------------------------------------\nSubject:  90)  Where can I get an X-based debugger?\n\n\txdbx, an X interface to the dbx debugger, is available via ftp from \nexport. The current [1/91] version is 2.1 patchlevel 2.\n\tAn X interface to gdb called xxgdb is more like xdbx 2.1.2. It is part \nof comp.sources.x volume 11 [2/91]; xxgdb-1.06.tar.Z is on export.\n\tmxgdb is a Motif interface to gdb by Jim Tsillas \n(jtsillas@bubba.ma30.bull.com); version 1.1.5 was released 1/93.\n\tUPS is a source-level debugger which runs under the X11 and SunView\nwindow systems on Sun and DEC platforms. It is available from export \n(18.24.0.11) as contrib/ups-2.45.tar.Z (also ups-2.45-to-2.45.2.patch.Z)\nand unix.hensa.ac.uk (129.12.21.7) in /pub/misc/unix/ups (or try mail to \narchive@unix.hensa.ac.uk). [10/92] Unofficial fixes by Rod Armstrong \n(rod@sj.ate.slb.com) are on unix.hensa.ac.uk in \n/misc/unix/ups/contrib/rod@sj.ate.slb.com.\n\nAlso:\n\tMIPS produces a highly-customizable (WCL-based) Visual Debugger.\n\tYou should be able to use Sun's dbxtool with its X11/NeWS server.\n\tThe CodeCenter (617-498-3000) source-level debugger, available on most\nmajor platforms, includes an X-based interface.\n\tAT&T offers the eXamine Graphical Interface, an X11 interface to dbx\nand C++ dbx for Sun3 and Sun4 and sdb and sdb++ for 386 and 3B2 platforms. Call\n1-508-960-1997 or contact examine@mvuxi.att.com for more information.\n        Solbourne (+1 303-678-4626) offers PDB, its X-based debugger for C, C++\nand Fortran.  PDB uses the OI toolkit and runs in either Open Look or Motif \nmode. \n\tSCO (info@sco.com) offers dbXtra as part of several development \nsystems.\n        Lucid's Energize Programming System, a tightly integrated development\nenvironment for C and C++ programs, incorporates a graphical user interface on\ntop of an extended version of gdb. Info:  lucid-info@lucid.com, or\n(800) 223-9322.\n\n----------------------------------------------------------------------\nSubject:  91)! How can I \"tee\" an X program identically to several displays?\n\n\tThere are several protocol multiplexer tools which provide for the \nsimultaneous display of X clients on any number of machines.\n\tXMX (an X Protocol Multiplexor) is available from wilma.cs.brown.edu \n(128.148.33.66) as pub/xmx.tar.Z It works independently of the server and does\nnot affect the application being shared; it was developed for use in the\nelectronic classroom.\n\tXTV is a conference program which can be used to duplicate the\n\"chalkboard\" on several displays. Release 1 is available on the X11R5 contrib\ntapes; a more recent version is on ftp.cs.odu.edu as pub/wahab/XTV.r2.tar.Z.\n\tSHX from Michael Altenhofen of Digital Equipment GmbH CEC Karlsruhe \nalso does this; it is a \"WYSIWIS\" (What You See Is What I See) package in the \ncontext of a computer-based learning/training tool to provide online help from\nremote tutors but is also useful for general window sharing. Information: \nshX@nestvx.enet.dec.com.  SHX can be found on export and \n\t\tgatekeeper.dec.com:/pub/X11/contrib/shX.tar.Z, \n\t\tcrl.dec.com:/pub/X11/contrib/shX.tar.Z \nModifications to SHX for color mapping and private color allocation by\nMark J. Handley (M.Handley@cs.ucl.ac.uk) are on cs.ucl.ac.uk in \ncar/shX.car.tar.Z.\n\tXTrap is implemented as a server/library extension and can be used\nto record and then replay an x session. It is available as:\n\t\tgatekeeper.dec.com      pub/X11/contrib/XTrap_v31.tar.Z\n\t\texport.lcs.mit.edu      contrib/XTrap_v31.tar.Z\n\twscrawl can be used as a \"multi-person paint program\". It's available\non sax.stanford.edu as wscrawl.shar.Z.\n\tShdr implements a simple shared whiteboard, without a chalk-passing\nmechanism. It's available on parcftp.xerox.com as pub/europarc/shdr.tar.Z.\n\tSketchPad 1.0 (3/93) is a distributed interactive graphical editor \nparticularly designed for sketching. Sources have been posted to alt.sources\nand are available from ftp.igd.fhg.de (192.44.32.1) in ~ftp/incoming/sketchpad.\n\tThe NESTOR project is described in \"Upgrading A Window System For \nTutoring Functions\", Michael Altenhofen et al., the proceedings of the EXUG\nConference 11/90.\n\nAlso of use:\n        Hewlett-Packard Co. has a commercial product, \"HP SharedX\" which works\nunder HP-UX currently on their 300, 400, and 700 series workstations and their\nHP 700/RX X Stations.  Machines receiving shared windows can be any X server.\nHP SharedX consists of a server extensions and a Motif based user interface\nprocess.  Contact your local HP sales rep. for more information.\n\tIBM offers a commercial product.\n\tSun offers multi-user confering software called ShowMe.\n\tInSoft (Mechanicsburg, PA, USA) offers multi-user confering software \ncalled Communique.\n\n[Thanks in part to scott@spectra.com (Tim Scott), 5/91, and to Peter Cigehn \n(peter@lulea.trab.se), 8/92 ]\n\n----------------------------------------------------------------------\nSubject:  92)  TOPIC: BUILDING THE X DISTRIBUTION [topic needs updating to R5]\n----------------------------------------------------------------------\nSubject:  93)  What's a good source of information on configuring the X build?\n\n\tThis FAQ includes information on a number of \"gotchas\" that can bite \nyou on particular system. However, the best source of general information on \nbuilding the X11 release is found in the Release Notes. The file is bundled \nseparately from the rest of the release, so if it's become separated from your \nsources you can FTP another copy separately: the file RELNOTES.[ms,PS,TXT] at \nthe top of the distribution. The file RELNOTES is also available from the \nxstuff mail server.\n\tIn addition, O'Reilly & Associates's Volume 8 on X Administration\nincludes information on configuring and building X.\n\n----------------------------------------------------------------------\nSubject:  94)  Why doesn't my Sun with a cg6 work with R5?\n\n\tApparently gcc is the problem; it seems to produce fine code for all\nSun displays except for the cgsix. The new sunGX.o distributed with fix-07 \nmay fix the problem (note: not known to work on Solaris).\n\n----------------------------------------------------------------------\nSubject:  95)  Why doesn't my Sun with SunOS 4.1 know about _dlsym, etc.?\n\n\tIf you get errors with _dlsym _dlopen _dlclose undefined, link with \nlibdl.a.  Add \"-ldl\" to your and eventually your site.def.  You may want to \nsurround it with \"-Bstatic -ldl -Bdynamic\" if you add it to the EXTRA_LIBRARIES\nvariable, since \"syslibs\" get added after EXTRA_LIBRARIES on the eventual \ncompilation command; otherwise you may not have a shared libdl.  (Or compile \nthe stubs shared.)\n\n[thanks to Joe Backo (joe.backo@East.Sun.COM), 12/91]\n\n----------------------------------------------------------------------\nSubject:  96)  What is this strange problem building X clients on SunOS 4.1.2?\n\n\tIn SunOS 4.1.2 Sun fixed a shared-library bug in ld which conflicts\nwith the way X11R4 builds the shared Xmu library, causing these symbols to be\nundefined when building some X11 clients: \n\t_get_wmShellWidgetClass\n\t_get_applicationShellWidgetClass\nCompiling \"-Bstatic -lXmu -Bdynamic\" appears to work. \n\nTo solve the problem if you are using OpenWindows 3.0 (X11R4-based Xt), please \ncontact your local Sun office and request the following patches:\n\nPatch i.d.      Description\n100512-02       4.1.x OpenWindows 3.0 libXt Jumbo patch\n100573-03       4.1.x OpenWindows 3.0 undefined symbols when using\n                        shared libXmu\n\n[Greg Earle, earle@Sun.COM; 7/92] \n\nA source patch for use with the MIT X11R4 libraries was developed by Conrad \nKimball (cek@sdc.boeing.com); it retrofits into R4 some fixes made in R5 to\nget around this problem. The patch is on export in [1/93]\n\tcontrib/X11R4_sunos4.1.2_patch_version3.Z\n\n----------------------------------------------------------------------\nSubject:  97)  Why can't gcc compile X11R4 on my SPARC?\nI used gcc to compile the whole distribution, but I get several segmentation\nfaults when running X.\n\n\tNote first that gcc on RISC machines does not necessarily result in\nany performance increase; it certainly is not as noticeable as it is on the\n680x0 or VAX platforms.\n\n\tHere is the problem: gcc and cc use incompatible methods of passing \nstructures as arguments and returning them as function values, so when \ngcc-compiled parts of X are linked with Sun-supplied functions that pass or \nreturn structs, run-time errors occur.  Affected programs include rgb and \nthe server.\n\n\tThis is from the GCC manual:\n\n\tOn the Sparc, GNU CC uses an incompatible calling convention for \n\tstructures.  It passes them by including their contents in the argument\n\tlist, whereas the standard compiler passes them effectively by \n\treference.\n\n\tThis really ought to be fixed, but such calling conventions are not yet\n\tsupported in GNU CC, so it isn't straightforward to fix it.\n\n\tThe convention for structure returning is also incompatible, and\n\t`-fpcc-struct-return' does not help.\n\nYou can duck the problem either by using cc throughout or by using it for just\nthe routines which cause incompatibilities; the problem cannot be solved with \ncompilation flags.  \n\n\tFiles which need to be compiled using cc include:\n\t\tserver/os/4.2bsd/oscolor.c \n\t\trgb/rgb.c\n\n\tIn addition, several of the \"inet_\" functions use structs as args or\nreturn values:  \n\t\tclients/xhost/xhost.c \n\t\tclients/xauth/gethost.c. \nCalls to inet_addr in /lib/CLX/socket.c and lib/X/XConnDis.c are possibly \nharmless as they don't involve structs.\n\n[collected by bashford@scripps.edu (Don Bashford); 8/90]\n\n----------------------------------------------------------------------\nSubject:  98)  What are these I/O errors running X built with gcc?\nWhen I try to run xinit or the Xsun server I get the error \n\t\"Getting interface configuration: Operation not supported on socket. \n\tFatal server bug! no screens found.\"\n\n\tRunning the gcc fixincludes script apparently didn't work. You can do \nthis simple test:\n\n\t#include <sys/ioctl.h>\n\tSIOCGIFCONF\n\nRun that through cc -E and gcc -E.  The last line of output is the piece of \ninterest; it should be identical (modulo irrelevant differences like \nwhitespace).  If the gcc version has 'x' where the cc version has 'i', your \nfixincludes run didn't work for some reason or other; go back to your gcc\nsources and run `fixincludes`; then rebuild the X distribution. If they are \nidentical, try running a make clean in mit/server and rebuilding, just to make \nsure everything gets compiled with the proper include files.  \n\n[courtesy der Mouse, mouse@LARRY.MCRCIM.MCGILL.EDU; 9/90]\n\n----------------------------------------------------------------------\nSubject:  99)  What are these problems compiling X11R4 on the older Sun3?\nIn mit/server/ddx/sun/sunCG3C.c, we have found \"missing\" defines for \nCG3AC_MONOLEN, CG3BC_MONOLEN, CG3AC_ENBLEN, CG3BC_ENBLEN. What should these be?\n\n\tThe R4 Errata list distributed after X11R4 mentions that you can add\nthese lines to the file on older SunOS versions (e.g. 3.5) to compile:\n        #define CG3AC_MONOLEN (128*1024)\n        #define CG3AC_ENBLEN  CG3AC_MONOLEN\n        #define CG3BC_MONOLEN CG3AC_MONOLEN\n        #define CG3BC_ENBLEN  CG3AC_MONOLEN\n\n\tHowever, the Sun3 should not actually ever have the CG3 device, and so \nreferences to it can be removed from mit/server/ddx/sun/sunInit.c and the \nImakefile.  [11/90]\n\n----------------------------------------------------------------------\nSubject: 100)  What are these problems compiling the X server on SunOS 4.1.1?\nThe file <sundev/cg6reg.h> isn't being found.\n\n\tSun omitted <sundev/cg6reg.h> from SunOS 4.1.1. Remove the #include \nfrom sunCG6C.c and replace it with the line \n\t#define CG6_VADDR_COLOR   0x70016000\nThe file has changed from earlier versions of SunOS and should not be copied \nfrom another distribution.\n\n----------------------------------------------------------------------\nSubject: 101)  What are these problems using R4 shared libraries on SunOS 4?\nAll of the executables that I try to run have the following results:\n\tld.so: libXmu.so.4: not found\nor even:\n\tld.so: call to undefined procedure __GetHostname from 0xf776a96c\n\n\tIf you are building with shared libraries on a Sun, remember that you \nneed to run \"ldconfig\" as root after installing the shared libraries (if you've\ninstalled X on a file-server, run it on the server's clients, too).  While \nbuilding and installing the distribution, you need to be careful to avoid \nlinking against any existing X shared libraries you might have (e.g. those \ndistributed with OpenWindows).  You should make sure you do not have \nLD_LIBRARY_PATH set in your environment during the build or the installation.  \nIf you are going to keep xterm and xload as setuid programs, please note that \nthe shared libraries must be installed in /usr/lib, /usr/local/lib, or \n/usr/5lib for these programs to work (or else those programs must be linked \nstatically). [courtesy MIT X Consortium]\n\tNote also that the program mkfontdir is run as part of the build; it\nattempts, however, to use the shared libraries before they have been installed.\nYou can avoid the errors by building mkfontdir statically (pass -Bstatic to\nmost C compilers).\n\n----------------------------------------------------------------------\nSubject: 102)  Can OLIT programs run with R5 Xt? (_XtQString undefined)\n\nThis is a bug in the OLIT.  _XtQString was an external symbol that existed in \nX11R4 (upon which OW 3.0's libXt is based).  It wasn't documented and was \nremoved in X11R5 (MIT's guarantee of upward compatibility between the R4 and R5\nlibraries only applied to the documented interface).  \n\nA workaround is to temporarily set your LD_LIBRARY_PATH to point to the X11R4\nor OpenWindows Xt library that you linked the program against.\n\n[10/92; from Barry Margolin (barmar@think.com); 3/93 from Jeff Francis \n(jpf@heliocentric.com)]\n\n----------------------------------------------------------------------\nSubject: 103)  How do I get around the SunOS 4.1 security hole?\n\n\tThere is a security problem with certain R4 clients (xterm and xload)\nrunning under SunOS 4.1 that have been installed setuid root and are using \nshared libraries; to avoid the problem, do one of these:\n\t1) make the program non-setuid. You should consult your system\nadministrator concerning protection of resources (e.g. ptys and /dev/kmem) used\nby these programs, to make sure that you do not create additional security \nproblems at your site.\n\t2) relink the programs statically (using -Bstatic).\n\t3) install the libraries before linking and link with absolute paths\nto the libraries.\n\n[from rws@expo.lcs.mit.edu (Bob Scheifler), 12/90]\n\nThe R5 version of xterm does this automatically by rebuilding xterm against the\nnewly-installed libraries when xterm is being installed; this prevents an suid\nprogram from being built with libraries specified relatively. Note that this \nmay cause an inconvenience when doing the installation from NFS-mounted disks. \nXload has been rewritten to avoid the problem.\n\n----------------------------------------------------------------------\nSubject: 104)  How do I get around the frame-buffer security hole?\n\n\tOn many systems the frame-buffer is unsecured by default; this permits \nanyone who can log into your workstation to peek at your windowing session by \naccessing the frame-buffer directly, or, as less of a privacy issue but perhaps\nmore annoying, to [accidentally] start up a second X session on your console \ndisplay. Check the man page for fbtab(5).\n\n[Thanks to Art Mulder (art@cs.ualberta.ca); 2/93.]\n\n----------------------------------------------------------------------\nSubject: 105)  TOPIC: BUILDING X PROGRAMS \n----------------------------------------------------------------------\nSubject: 106)  What is Imake?\n\n\tImake is not a replacement for the make program; instead, it is a\nmakefile-generator that takes advantages of the include-file and macro-\nprocessing capabilities of the C preprocessor cpp to generate makefiles \nsuitable for building software on a particular system. Although it is not \nspecific to X, the X release uses it to help solve a number of the \nconfiguration issues that arise in making such a large system widely portable.\n\tImake has a fairly steep learning curve, in part because the process by\nwhich the system-specific configuration files, system-independent configuration\nfiles, and individual Imakefiles are melded to produce a Makefile is not \nobvious.\n\tThere have been several different versions of imake; the R3, R4, and\nR5 versions are different.\n\n\tYou can obtain information on imake from these sources:\n\t- the R4 and R5 release notes and imake man page include information on\nusing Imake to build X\n\t- the R4 and R5 file mit/config/README also contains useful information\n\t- on the R4 tapes, contrib/doc/imake/imake.tex is Mark Moraes' R3/R4\nguide to imake.\n\t- the R5 mit/doc/config/usenixws/paper.ms contains a paper by Jim\nFulton on an early version of Imake\n\t- Paul Dubois (dubois@primate.wisc.edu) has written a useful \nexplanation of how Imake works and how to use it in configuring X for non-\nsupported systems; the document is available from ftp.primate.wisc.edu\nin the directory ~ftp/pub/imake-stuff; look for config-X11R4.ms (troff) and \nconfig-X11R4.ps (PostScript). Some supplemental appendices are nearby. \n[7/91: document version is now 1.06] These imake papers are available by email;\nmail a message body of \"send imake-stuff help\" to almanac@primate.wisc.edu.\n\t- see \"System Administration - Imake: Friend of Foe?\" by Dinah McNutt\nin the November 1991 issue of SunExpert.\n\t- German readers should expect in June 1992 an article \"Das Meta-Make \n/ I make, you make / Schwerelos\" by Rainer Klute in \"iX \nMultiuser-Multitasking-Magazin\", directed at application programmers needing to\nwrite Imakefiles. An English-language derivative of this article is in The\nX Journal, issue 2:1.\n\t- The O'Reilly X Resource issue #2 contains Paul Davey's article on\ndemystifying Imake.\n\t- Alain Brossard's working document full of tips on Imake is in \nsasun1.epfl.ch:pub/imakefile.1.Z.\n\n[1/91;12/91;5/92;8/92]\n\n----------------------------------------------------------------------\nSubject: 107)  Where can I get imake?\n\n\tVersions are distributed with the R4 and R5 releases. An earlier \nversion is distributed with the X11R3 release; some third-party toolkits \nredistribute versions of imake along with their own implementations of the \ntemplate and configuration files. There are no real standards for such \nconfiguration files, although most *current* contributed software expects the \ntemplates distributed with X11R5.\n\texport contains the R5 distribution unpacked, so you can pick up imake\nwithout picking up the entire distribution.\n\tA stand-alone version of Imake, but one stemming from X11R5, is in\nftp.germany.eu.net:pub/X11/misc/imake/imake-pure.tar.Z (192.76.144.75).\n\n----------------------------------------------------------------------\nSubject: 108)  I have a program with an Imakefile but no Makefile. What to do?\n\n\tIf you have R4 or R5 installed on your system, run \"xmkmf\". This is a \nscript which runs imake for you with the correct arguments. The output is a \nMakefile configured for your system and based on the Imakefile. Then run make, \nwhich will use that new Makefile to compile the program.\n\n----------------------------------------------------------------------\nSubject: 109)  Why can't I link to the Xlib shape routines?\nWhen I try to compile certain programs, I get the following link error:\n\tUndefined:\n\t_XShapeQueryExtension\n\t_XShapeCombineMask\n\n\tThese routines are actually part of the Shape Extension to X (SHAPE)\nwhich was introduced in the MIT X11R4 distribution and allows non-rectangular\nwindows.  Like the other sample server extensions, the shape extension will \nonly run on a server which supports it.  Pre-X11R4 servers, as well as many \nvendor-supplied servers, do not support the shape extension, in which case \nthey will display rectangular windows anyway.\n\n\tIn order to use the shape extension, you must link to the library \nlibXext.a.  In the X11R4 distribution, this library and the associated includes\nwill be in the mit/extensions directory.  If you do not have these files, do \nnot despair:  many freeware programs which use the shape extension can also be \ncompiled without it by removing the -DSHAPE define from the Makefile; you can\nprobably do this and compile successfully against your older vendor-supplied X \nlibraries.\n\n[from John B. Melby, melby%yk.fujitsu.co.jp@uunet.uu.net, 3/91]\n\n----------------------------------------------------------------------\nSubject: 110)  What are these problems with \"_XtInherit not found\" on the Sun?\nWhen I run a X program that I wrote on a SunOS 4.0.3 or 4.1 machine I get the \nerror \"ld.so: symbol not found _XtInherit\".\n\n\tWhat you are seeing is a side-effect of a kludge in the R4 libXt.a to \nget Sun shared libraries working.  Apparently, you can't share a function that \nis both called and compared, as _XtInherit is. This was handled by putting \n_XtInherit in the same file as a function that is always used, thereby \nguaranteeing that it would be loaded -- that is, in Initialize.c, where \nXtToolkitInitialize() and XtInitialize() reside. These routines would normally\nbe called.\n\n\tYou are probably seeing this error because your program is not a normal\nXt-based program and does not call XtToolkitInitialize() anywhere. \n\t1) it may be a program that uses Xt functions but never opens a \nconnection to the X server.  [OSF/Motif's 1.1.0 UIL had this problem; it called\nXtMalloc() and other Xt functions.] The solution is to add the call to your \nprogram; the function does not have to be executed, just linked in.\n\t2) alternatively, your program doesn't need any Xt functions and is\ncorrect in not calling XtToolkitInitialize() -- it may be an Xlib or XView \nprogram. In this case, you can remove -lXt from your link command. \n\n\tIt should not be necessary to link the shared libraries statically,\nalthough this will certainly solve the problem.\n\t\n[from Jordan Hayes (now jordan@MooreNet.COM) and Danny Backx (db@sunbim.be); \n11/90]\n\n----------------------------------------------------------------------\nSubject: 111)  Why can't I compile my R3 Xaw contrib programs under the new X?\nI have a program that worked well under X11R3. When I try to link it under \nthe current version of X, I get this message:\n\tUndefined:\n\t_XtScrollBarSetThumb\n\t_XtTextSetInsertionPoint\n\t_XtTextReplace\n\n\tThere were several name changes in the Athena widget set (in addition\nto the header files moving into <X11/Xaw/>); these are mentioned in the R4\nrelease notes. In this case, these functions are not really Xt functions but\nare part of the Xaw text widget and so have been renamed from Xt* to Xaw*.\n[10/90]\n\n----------------------------------------------------------------------\nSubject: 112)  TOPIC: PROGRAMMING PROBLEMS AND PUZZLES\n----------------------------------------------------------------------\nSubject: 113)  Why doesn't my program get the keystrokes I select for (sic)?\n\n\tThe window manager controls how the input focus is transferred from one\nwindow to another.  In order to get keystrokes, your program must ask the\nwindow manager for the input focus.  To do this, you must set up what are\ncalled \"hints\" for the window manager.  If your applications is Xlib-based, you\ncan use something like the following:\n\n        XWMHints wmhints;\n        ...\n        wmhints.flags = InputHint;\n        wmhints.input = True;\n        XSetWMHints(dpy, window, &wmhints)\n\nIf your application is based on the Xt Intrinsics, you can set the XtNinput \nresource to be True (as you probably want to in any case); if you don't have\nsource, you can start up the application with the resource '*input:True'.\n\nCertain window managers, notably dxwm and olwm, are very picky about having \nthis done. \n\n\tIf you are using Sun's OpenWindows olwm, you can also add this resource\nto your defaults file to use clients that aren't ICCCM-compliant.\n\tOpenWindows.FocusLenience:       true\n\n[mostly courtesy Dave Lemke of NCD and Stuart Marks of Sun]\n\n----------------------------------------------------------------------\nSubject: 114)  How do I figure out what window manager is running?\n\n\tYou can't reliably tell; whatever mechanism you could use could be\nspoofed in any case. \n\tFor most cases, you shouldn't care which window manager is running, so \nlong as you do things in an ICCCM-conformant manner. There are some cases in \nwhich particular window managers are known to do things wrong; checking for\nparticular hints placed on the window by the window manager so that you can \nsidestep the problem may be appropriate in these cases. Alternatively, it may \nbe appropriate to determine which window manager is running in order to take\nadvantage of specific *added* features (such as olwm's push-pin menus) in order\nto give your program *added* functionality. Beware of usurping the window \nmanager's functions by providing that functionality even when it is missing;\nthis surely leads to future compatibility problems.\n\n----------------------------------------------------------------------\nSubject: 115)  Is there a skeleton X program available?\n\t\n\tThere is no general framework such as the TransSkel program for the \nMacintosh which handles lots of the odds and ends and overhead of development \nunder a window system and which can be used as a platform for additional \ndevelopment. In X, the problem is typically solved by using an interactive \napplication builder tool or by using cut&paste on existing X applications. Good\napplications which you might look to manipulate when you want to \"test just \nthis one little thing\" include contrib/clients/xskel, a simple R4 program that \nputs up a window and allows sketching in it and offers a starting point for\nquick hacks, the Xaw examples in the examples/ directory in the R3 and R4 \ndistributions, and the Xlib \"Hello World\" example in the R3 doc/HelloWorld and \nR4 doc/tutorials/HelloWorld; an updated version of this program which uses R4 \nXlib calls and current ICCCM conventions was posted in 2/90 to comp.windows.x  \nby Glenn Widener of Tektronix. \t[3/90]\n\n\tIn addition, a sample Xt program (for Xaw or Xm) by Rainer Klute \nshowing how to open multiple displays and how to catch a broken display \nconnection is available on export.lcs.mit.edu in contrib/mdisp.tar.Z. [4/92]\n\n----------------------------------------------------------------------\nSubject: 116)  Why does XtGetValues not work for me (sic)?\n\n\tThe XtGetValues interface for retrieving resources from a widget is\nsensitive to the type of variable. Your code may be doing something like this:\n\t{\n\tArg args[3];\n\tint i;\n\tint sensitive;\t\t/* oops; wrong data type */\n\ti=0;\n\tXtSetArg (args[i], XtNsensitive, &sensitive); i++;\n\tXtGetValues(widget, args, i );\n\t...\n\t}\n\nBut XtNsensitive is a Boolean, which on most machines is a single byte; \ndeclaring the variable \"sensitive\" as Boolean works properly. This problem \ncomes up often when using particular toolkits that redefine the Xt types \nDimension and Position; code that assumes they are int will have similar \nproblems if those types are actually short. In general: you are safe if you\nuse the actual type of the resource, as it appears in the widget's man page.\n[11/90]\n\n----------------------------------------------------------------------\nSubject: 117)  Why don't XtConfigureWidget/XtResizeWidget/XtMoveWidget work?\n\n\tYou're probably trying to use these functions from application code.\nThey should be used only internally to widgets; these functions are for a \nparent widget to change the geometry of its children. Other promising \nfunctions, XtMakeGeometryRequest() and XtMakeResizeRequest(), are also for use \nonly by widgets, in this case by a child to request a change from its parent.\n\tThe only way for your application to request a geometry change for a\nwidget is to issue an XtSetValues call setting some of the geometry resources.\nAlthough this will result in the widget-internal functions' being called, your\napplication code must use the standard XtSetValues interface or risk the \nwidgets' data becoming corrupted.\n\t[The Xlib calls XMoveWindow() and XResizeWindow() should similarly be \navoided; they shouldn't be used to change XtNx, XtNy, XtNwidth, or XtNheight.]\n\n----------------------------------------------------------------------\nSubject: 118)  Why isn't there an XtReparentWidget call like XReparentWindow?\n\n\tAlthough there are various details of the current implementation of\nthe Xt internals which make reparenting difficult, the major reason that no\nsuch call exists is that it remains undefined what the set of resources for\nthe \"new\" widget should be. Resources are typically set based on the location\nin the instance hierarchy; what resources should change if the instance moves?\nWhat should happen to the widget's children? And by the time such semantics are\ndefined, there would probably be little advantage over destroying the old \nwidget and creating a new widget in the correct location with the desired \nresources, as setting the resources correctly is the majority of work in \ncreating a new widget.\n\n\tNote that reparenting is possible in the OI toolkit.\n\n----------------------------------------------------------------------\n\nDavid B. Lewis \t\t\t\t\tfaq%craft@uunet.uu.net\n\n\t\t\"Just the FAQs, ma'am.\" -- Joe Friday \n-- \nDavid B. Lewis\t\tTemporarily at but not speaking for Visual, Inc.\nday: dbl@visual.com\tevening: david%craft@uunet.uu.net\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9424, "properties": {"category": "rec.motorcycles", "text": "From: arnie@magnus.acs.ohio-state.edu (Arnie Skurow)\nSubject: Re: Live Free, but Quietly, or Die\nArticle-I.D.: magnus.1993Apr6.184322.18666\nOrganization: The Ohio State University\nLines: 14\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\n\nIn article <C52nnt.J3I@dartvax.dartmouth.edu> Russell.P.Hughes@dartmouth.edu (R\nussell P. Hughes) writes:\n>What a great day! Got back home last night from some fantastic skiing\n>in Colorado, and put the battery back in the FXSTC. Cleaned the plugs,\n>opened up the petcock, waited a minute, hit the starter, and bingo it\n>started up like a charm! Spent a restless night anticipating the first\n>ride du saison, and off I went this morning to get my state inspection\n>done. Now my bike is stock (so far) except for HD slash-cut pipes, and\n                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nTherein lies the rub.  The HD slash cut, or baloney cuts as some call\nthem, ARE NOT STOCK mufflers.  They're sold for \"off-road use only,\"\nand are much louder than stock mufflers.\n\nArnie\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9425, "properties": {"category": "comp.graphics", "text": "From: tristant@syma.sussex.ac.uk (Tristan Tarrant)\nSubject: Paradise VGA\nOrganization: University of Sussex\nLines: 13\n\nI have a Paradise SVGA with 1Mb, the 90c030 chip (1D). The docs say that\nI can display the following modes : 640x480x32k colours and 800x600x32k cols\nif I have the RAMDAC HiColor Chip. I have checked the board and I do have\nsuch a chip. Now, the problem is that I can't get this mode to work !\nGraphics Workshop 6.1 claims that it can display 24 bit images dithered\ndown to 15 bit colour with my board, but it doesn't work. I have tried\nwriting some assembler code to get the modes working and I have found out\nthat each pixel is addressed by a word ( 16 bit ), but only the lower 8 bits\nare considered ( this happens in 800x600 mode, the 640x480 mode refuses to\nwork i.e. remains in text mode ).\nCould someone please help me.\n\nTristan\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9426, "properties": {"category": "sci.crypt", "text": "From: hagberg@violet.ccit.arizona.edu (HAGBERG JR, D. J.)\nSubject: Clipper and Ranting Libertarians\nKeywords: clipper clinton rant rave libertarians\nDistribution: usa,local\nOrganization: University of Arizona\nLines: 26\nNntp-Posting-Host: violet.ccit.arizona.edu\nNews-Software: VAX/VMS VNEWS 1.41\n\nI would think that you could reduce the defense of using non-clipper\nbased encryption technologies to defending freedom of expression \n(IE, free speech).  That you have to right to express whatever you\nwant in whatever form your little heart desires so long as you do\nnot impinge on the rights of others.\n\nEncrypted text/sound/video is just another form of expression of that\nparticular text/sound/video.  Just like digitized sound is another \nmeans of expression of sound -- streams of 100100101111 instead of\ncontinuous waveforms.\n\nAlso, it shouldn't be up to the government at all.  Encryption \n_Standards_ can be decided upon by Independent Standards Orgainizations\n(apologies for the acronym).  One can note how well this has worked\nwith ISO and the Metric System, SAE, etc.  Independent entities \nor consortia of people/industries in that particular area are far\nmore qualified to set standards than any One government agency.\nConsider for example what the Ascii character set would have looked\nlike if it was decided by the government.\n\nI hope this helps folks to formulate their defenses.  I'm still working\non mine and hope to be faxing my congressmen soon...\n\n\t\t\t-=- D. J. Hagberg\n\t\t\t-=- hagberg@ccit.arizona.edu\n\t\t\t-=- finger ^ for Info and PGP Public Key\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9427, "properties": {"category": "rec.motorcycles", "text": "From: mmanning@icomsim.com (Michael Manning)\nSubject: Re: Riceburner Respect\nOrganization: Icom Simulations\nLines: 27\n\nIn article <oXZ12B1w164w@cellar.org> craig@cellar.org (Saint Craig)  \nwrites:\n> shz@mare.att.com (Keeper of the 'Tude) writes:\n> \n>  No anyone who is a \"true\" rider with the real riding\n>  attitude will offer a wave, weather they are on a Harley\n>  or on a Honda or some other bike, inless they have a\n>  serious case of my bike is better than your and you're\n>  too low to be acknowleged. This you'll find is the case\n>  with most of the harley riders out here where I am,\n>  however I still give them a wave, and ride secure in the\n>  knowlege that I'm a better persob than they are.\n                              ^^^^^^\n                        perSOB, I kinda like that\n\nMost people wave or return my wave when I'm on my Harley.\nOther Harley riders seldom wave back to me when I'm on my\nduck. Squids don't wave, or return waves ever, even to each\nother, from what I can tell.\n\n--\nMichael Manning\nmmanning@icomsim.com (NeXTMail accepted.)\n\n`92 FLSTF FatBoy\n`92 Ducati 900SS\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9428, "properties": {"category": "rec.autos", "text": "From: jimf@centerline.com (Jim Frost)\nSubject: Re: Too fast\nOrganization: CenterLine Software, Inc.\nLines: 36\nDistribution: world\nNNTP-Posting-Host: 140.239.3.202\n\nboyle@cactus.org (Craig Boyle) writes:\n>The quality of autobahns is something of a myth. The road surface\n>isn't much different to a typical TX freeway. They are better\n>in terms of lighting, safety, signs, roadmarkings etc.\n\nThey light the highways in Texas?  Funny, everywhere else I've been\nthey only light 'em at junctions.\n\nI won't even get into how much road markings vary between states and\nlocalities except to say that there are some areas where markings are\nessentially nonexistant.\n\n>>than most of the roads here. A dip in the asphalt that you test your\n>>shocks on at 60 will kill you at 130. Don't get me wrong, I love to\n\n>It would have to be quite severe. I don't recall any US freeway,\n>without road damage warnings, that i would regard as unsafe\n>at 130 in any decent, well damped car.\n\nI suspect you have very limited experience -- US freeways vary\ndramatically, particularly between states.  I can name a number of\ninterstate highways in various parts of the country where 130 would be\nvery optimistic in any car.\n\nI'm not sure what you call \"quite severe\" in terms of road deviations\nbut I suspect every single bridge junction on I84 through CT would be\nconsidered so.  They're hard to take at 85mph.  That's not the only\ninterstate I've seen with such deviations, but it's one I drive\nfrequently.\n\nTexas is pretty much an edge-case -- you can't assume that everywhere\nhas roads in such good condition, such flat terrain, and such\nwide-open spaces.  It just ain't so.\n\njim frost\njimf@centerline.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9429, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: nuclear waste\nOrganization: Texas Instruments Inc\nLines: 32\n\nIn <1pp6reINNonl@phantom.gatech.edu> matthew@phantom.gatech.edu (Matthew DeLuca) writes:\n\n>In article <841@rins.ryukoku.ac.jp> will@rins.ryukoku.ac.jp (William Reiken) writes:\n\n>>\tWell this pretty much says it.  I have gotten alot of replys to this\n>>and it looks like oil is only on Earth.  So if those greedy little oil companys\n>>who obviously don't give **** about it uses up all the oil then that leaves us\n>>high a dry.\n\n>Greedy little oil companies?  Don't blame them; oil companies just supply the \n>demand created by you, me, and just about everyone else on the planet.  If we\n>run out, its all our faults.\n\nHe also ignores a few other things.  While organics would become\nsignificantly more expensive were all the oil to disappear (and thus\nsome things would no longer be economically feasible), oil is hardly\nan irreplaceable resource any more than most other consumables.  As\nsupply decreases, prices rise and alternatives become more\ncompetetive.  He also needs to consider that there has been an\nestimated 30 years of reserves pretty much as long as anyone has cared\nabout petroleum; whatever the current usage rate is, we always seem to\nhave about a 30 year reserve that we know about.\n\n[I'm not sure that last figure is still true -- we tend not to look as\nhard when prices are comparatively cheap -- but it was certainly true\nduring hte 'oil crisis' days of the 70's.]\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9430, "properties": {"category": "sci.space", "text": "From: uphrrmk@gemini.oscs.montana.edu (Jack Coyote)\nSubject: Re: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nReply-To: uphrrmk@gemini.oscs.montana.edu (Jack Coyote)\nOrganization: Never Had It, Never Will\nLines: 14\n\nIn sci.astro, dmcaloon@tuba.calpoly.edu (David McAloon) writes:\n\n[ a nearly perfect parody  -- needed more random CAPS]\n\n\nThanks for the chuckle.  (I loved the bit about relevance to people starving\nin Somalia!)\n\nTo those who've taken this seriously, READ THE NAME! (aloud)\n\n-- \nThank you, thank you, I'll be here all week.  Enjoy the buffet! \n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9431, "properties": {"category": "sci.crypt", "text": "From: prm@ecn.purdue.edu (Philip R. Moyer)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Engineering Computer Network\nDistribution: na\nLines: 27\n\nIn article <1993Apr17.032022.14021@clarinet.com>, brad@clarinet.com (Brad Templeton) writes:\n|>\n|> Let's assume, for the moment, that the system really is secure unless\n|> you get both halves of the encryption key from the two independent\n|> escrow houses.  Let's say you even trust the escrow houses -- one is\n|> the ACLU and the other is the EFF.  (And I'm not entirely joking about\n|> those two names)\n|> \n|> In that case the Prince of Wales has nothing to worry about on this\n|> system.\n\nI must respectfully disagree with this assertion, Brad.  The government is\nnotoriously sloppy with physical, communications, and information security.  They\ncan't keep their computers safe, and they're \"trying\".  Read \"DEA is\nNot Adequately Protecting National Security Information\" [GAO/IMTEC 92-31] for an\nexcellent example of what I'm talking about.\n\nPrivate sector organizations tend to be even more lax in their security measures.\nI believe that the escrow organizations will be penetrated by foreign\nintelligence services within months, if not weeks, of their selection.  Private\norganizations that lack the resources of a full-fleged intelligence service will\ntake longer - perhaps on the order of one to two years.  Nonetheless, the\npenetrations will take place, without question.\n\nPhilip R. Moyer\t\t\t\t\t\t     ECN Software Staff\nEngineering Computer Network\t\t\t\t    Voice: 317-494-3648\nprm@ecn.purdue.edu\t\t\t\t\t    Fax:   317-494-6440\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9432, "properties": {"category": "misc.forsale", "text": "From: xray@is.rice.edu (Kenneth Dwayne Ray)\nSubject: Re: Car Stereo Stolen?\nOrganization: Rice University\nLines: 31\n\n> I had the front panel of my car stereo stolen this weekend.\n\n> I need to buy the front panel of a Sony XR-U770 car stereo.\n\n> If by any chance anyone has had the body of a Sony XR-U770\n> stolen and has an otherwise useless front panel I would \n> love to buy it from you.\n\n> If you know anyone who had a removeable-front-panel car stereo\n> stolen from them, could you please forward this message to them?\n\n> Thanks!\n\n> Kris\n\nI was my understanding that the purpose of those removeable-front-panels\nwere to make the radio useless, and thus discourage theft (that is if the \ncover were removed by the owner and taken along whenever the car was left.)\n\nIf those covers were sold for anything remarkably less than the radio \noriginally costs, or even sold at all,\nthen the above discouragement wouldn't be so great.\n\nI personally would be unhappy, if I bought a radio like that, thinking that \nremoving the cover greatly depreciated the radio's value, and the covers were\nsold by the company (or other legitimate source) cheaply.\n-- \n--------8<-------If you cut here, you'd ruin your monitor------8<-------\nKenneth D. Ray\t\tExpert: Someone who knows more and more\nCRC OCIS\t\t\tabout less and less and finally\nRice University\t\t\tknows everything about nothing.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9433, "properties": {"category": "talk.religion.misc", "text": "From: agr00@ccc.amdahl.com (Anthony G Rose)\nSubject: Re: Davidians and compassion\nReply-To: agr00@JUTS.ccc.amdahl.com (Anthony G Rose)\nOrganization: Amdahl Corporation, Sunnyvale CA\nLines: 31\n\nIn article <sandvik-190493200420@sandvik-kent.apple.com> sandvik@newton.apple.com (Kent Sandvik) writes:\n>So we have this highly Christian religious order that put fire\n>on their house, killing most of the people inside.\n>\n>I'm not that annoyed about the adults, they knew supposedly what\n>they were doing, and it's their own actions.\n>\n>What I mostly are angry about is the fact that the people inside,\n>including mothers, let the children suffer and die during awful\n>conditions.\n>\n>If this is considered religious following to the end, I'm proud\n>that I don't follow such fanatical and non-compassionate religions.\n>\n>You might want to die for whatever purpose, but please spare\n>the innocent young ones that has nothing to do with this all.\n>\n>I have a hard time just now understanding that Christianity\n>knows about the word compassion. Christians, do you think \n>the actions today would produce a good picture of your \n>religion?\n>\n>\n>Kent\n>\n>---\n>sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n\n\nSurely you are not equating David Koresh with Christianity? The two are\nnot comparable.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9434, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Though his book was dealing with the Genocide of Muslims by Armenians..\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 45\n\nIn article <C5y86J.6Hs@blaze.cs.jhu.edu> arromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n\n>Then repeat everything I said before with the word \"race-related\" \n>substituted for \"racist\".  All that changes is the phrasing; complaining \n>that I used the wrong word is a quibble.\n\nWell, your Armenian grandparents were fascist. As early as 1934, K. S. \nPapazian asserted in 'Patriotism Perverted' that the Armenians\n\n        'lean toward Fascism and Hitlerism.'[1]\n\nAt that time, he could not have foreseen that the Armenians would\nactively assume a pro-German stance and even collaborate in World\nWar II. His book was dealing with the Armenian genocide of Turkish\npopulation of eastern Anatolia. However, extreme rightwing ideological\ntendencies could be observed within the Dashnagtzoutune long before\nthe outbreak of the Second World War.\n\nIn 1936, for example, O. Zarmooni of the 'Tzeghagrons' was quoted\nin the 'Hairenik Weekly:' \n\n\"The race is force: it is treasure. If we follow history we shall \n see that races, due to their innate force, have created the nations\n and these have been secure only insofar as they have reverted to\n the race after becoming a nation. Today Germany and Italy are\n strong because as nations they live and breath in terms of race.\n On the other hand, Russia is comparatively weak because she is\n bereft of social sanctities.\"[2]\n\n[1] K. S. Papazian, 'Patriotism Perverted,' (Boston, Baikar Press\n   1934), Preface.\n[2] 'Hairenik Weekly,' Friday, April 10, 1936, 'The Race is our\n   Refuge' by O. Zarmooni.\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.445+0000", "event": "documents", "entityId": 9435, "properties": {"category": "rec.autos", "text": "From: theckel@col.hp.com (Tim Heckel)\nSubject: Re: Instead of a Saturn SC2, What???\nOrganization: Colorado Springs IT Center\nLines: 7\nDistribution: na\nNNTP-Posting-Host: pizza8.cs.itc.hp.com\n\nFor those that are interested I got my fully optioned (Air, ABS,\nsunroof) '92 SE-R in September 1991 for $13,555 in Sacramento, CA. It\nwas one of the 1st '92s sold, few of the dealers had any, no local\ndealer had an ABS equipped SE-R.  I went straight to the fleet manager\nat the dealership I liked, told him what I wanted, made him aware that I\nknew what his price should be.  He called me back with exactly what I\nwanted from a dealer 125mi away, I took delivery the next day. \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9436, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: CA's pedophilia laws\nArticle-I.D.: optilink.15216\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 91\n\nIn article <1993Apr3.201408.4999@hobbes.kzoo.edu>, k044477@hobbes.kzoo.edu (Jamie R. McCarthy) writes:\n> cramer@optilink.COM (Clayton Cramer) writes:\n# #Unfortunately, homosexuals don't believe in this concept of freedom.\n# #They believe that they have a right to FORCE people to hire them,\n# #rent to them, and do business with them, regardless of the feelings\n# #or beliefs of the other person.\n# \n# Allow me to point out that Clayton is once again unfairly lumping an\n# entire class of people, as if they all have one will.  Having completely\n# dived into the abyss of believing that there are no queers in the world\n# who think differently from the child-molestation-advocating minority on\n# soc.motss, he doesn't even notice that he's starting a sentence with\n# \"They believe\" when the referent of that \"they\" is millions of people.\n# \"...so few as to be irrelevant...\"\n\nIf you don't want to be lumped together as a group, stop insisting\non being treated as a member of a group.\n\n# dreitman@oregon.uoregon.edu (Daniel R. Reitman, Attorney to Be) writes:\n# # Force people to hire?  No.  Require people to give them a fair \n# # look?  Yes.\n# \n# cramer@optilink.COM (Clayton Cramer) writes:\n# #You give them a fair look.  You decide that you don't want to hire\n# #the guy wearing the NAMBLA T-shirt.  He files a lawsuit.  You lose.\n# #Yes, such laws force you to hire homosexuals.\n# \n# Pedophiles, as well?\n\nSexual orientation is not defined by the anti-discrimination law\nthat was passed last year.  Pedophilia isn't a sexual orientation?\n\n# And, Cramer, let me describe how you'd have it, and see if this is\n# accurate.  I apply for a job at a computer company.  They see I'm\n# wearing some article of homosexual adornment, I dunno, maybe a\n# \"Silence = Death\" pin or something.  They turn me down because of\n# that.  I can't do a darned thing and have to go look somewhere else.\n# Am I correct in assuming that you wholeheartedly approve of the\n# company's actions, or at least that you wholeheartedly support their\n# right to take that action?\n\nI wholeheartedly support their right to take this action.  I wouldn't\ndo it myself, unless it was something like the NAMBLA T-shirt.\n\n# How about:  a black man applies for a job at a bank.  The bank decides,\n# based on statistics, a black person would be more likely to steal\n# money, and denies the man the job.  Would you support the bank's right\n# to this freedom?  If not, explain how this differs.\n\nI support their right to do so (just like I support your right to \nengage in sodomy with consenting adults), but I think they are doing \nsomething wrong.  I wouldn't do business with such a bank.\n\n# Clayton has repeatedly said that California's statutes classify\n# pedophilia as a sexual orientation, and that discriminating on the\n# basis of sexual orientation is illegal.\n# \n# If true, I'm frankly amazed.  But I don't trust Clayton to give me\n# the whole story.  Would someone clarify for me whether this is true,\n# what sort of discrimination Clayton's talking about (jobs? housing?\n# hate crimes?), and whether the effect of the law is really that\n# a daycare has to hire an admitted pedophile.\n# -- \n#  Jamie McCarthy\t\tInternet: k044477@kzoo.edu\tAppleLink: j.mccarthy\n\nHere's the law that was passed and signed by the governor:\n\n     The people of the State of California do enact as follows:\n\n 1       SECTION 1.  The purpose of this act is to codify\n 2  existing case law as determined in Gay Law Students v.\n 3  Pacific Telephone and Telegraph, 24 Cal. 3d 458 (1979)\n 4  and Soroka v. Dayton Hudson Corp., 235 Cal. App. 3d 654\n 5  (1991) prohibiting discrimination based on sexual\n 6  orientation.\n 7       SEC. 2.  Section 1102. is added to the Labor Code, to\n 8  read:\n 9       1102.1.  (a) Sections 1101 and 1102 prohibit\n10  discrimination or disparate treatment in any of the terms\n11  and conditions of employment based on actual or\n12  perceived sexual orientation.\n              ^^^^^^^^^^^^^^^^^^\n\n13       (b)  This section shall not apply to a religious\n14  association or corporation not organized for private\n15  profit, whether incorporated as a religious or public\n16  benefit corporation.\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9437, "properties": {"category": "soc.religion.christian", "text": "From: conditt@tsd.arlut.utexas.edu (Paul Conditt)\nSubject: Re: christians and aids\nOrganization: Applied Research Laboratories, University of Texas at Austin\nLines: 98\n\nIn article <Apr.8.00.57.49.1993.28271@athos.rutgers.edu> marka@travis.csd.harris.com (Mark Ashley) writes:\n>In article <Apr.7.01.55.33.1993.22762@athos.rutgers.edu> kevin@pictel.pictel.com (Kevin Davis) writes:\n>>Many Christians believe in abstinence, but in a moment will be overcome\n>>by desire.  We all compromise and rationalize poor choices (sin).  Last\n>>week I was guilty of anger, jealousy, and whole mess of other stuff,\n>>yet I am forgiven and not condemned to suffer with AIDs.  To even\n>>suggest that AIDS is \"deserved\" is ludicrous.\n>\n>Some rules are made because at some point man is too stupid\n>to know better. Yet, eventually man learns. But only after\n>getting a lesson from experience.\n\nYes, it's important to realize that all actions have consequences,\nand that \"rules\" were made for our own good.  But to suggest that a\n*disease* is a *punishment* for certain types of sin I think is \ntaking things much too far.  If we got some kind of mouth disease\nfor lying, would any of us have mouths left?  What if we developed\nblindness every time we lusted after someone or something?  I dare\nsay all of us would be walking into walls.\n>\n>I wonder if AIDS would be a problem now if people didn't get\n>involved in deviant sexual behaviour. Certainly, people who\n>received tainted blood are not to blame. But it just goes\n>to show that all mankind is affected by the actions of a few.\n\nYes, sin can have terrible consequences, but we need to be *real*\ncareful when saying that the consequences are a *punishment* for \nsin.  The Jews of Jesus's time believed that all sickness was the\nresult of a sin.  Then Jesus healed a blind man and said that man was\nblind to show the glory of God, not because of sin.  If AIDS, or any\nother STD is a *punishment\" for sexual sin, what do we do with \ndiseases like cancer, or multiple sclerosis, which are just as\ndebilitating and terrible as AIDS, yet are not usually linked to a\nspecific behavior or lifestyle?\n>\n>In addition, IMHO forgiveness is not the end of things.\n>There is still the matter of atonement. Is it AIDS ?\n>I don't know.\n\nAtonement is *extremely* important, but I think you've missed the mark\nabout as far as you can by suggesting that AIDS is an atonement for sin.\nThe atonement for sin is JESUS CHRIST - period.  This is the central\nmessage of the Gospel.  A perfect sacrifice was required for our sins,\nand was made in the Lamb of God.  His sacrifice atoned for *all* of\nour sins, past present and future.  God does not require pennance for\nour sins, nor does he require us to come up with our own atonement.  He\nhas graciously already done that for us.  To suggest that AIDS or \nsome other consequence is an atonement for sins is literally spitting\non the sacrifice that Jesus made.\n\nIn case you couldn't tell, I get *extremely* angry and upset when\nI see things like this.  Instead of rationalizing our own fears and\nphobias, we need to be reaching out to people with AIDS and other\nsocially unacceptable diseases.  Whether they got the disease through\ntheir own actions or not is irrelevant.  They still need Jesus Christ,\nno more and no less than we do.  I've said this before, but I think\nit's a good analogy.  People with AIDS are modern-day lepers.  Jesus\nhealed many lepers.  He can also heal people with AIDS, maybe not on\nthis earth, but in an ultimate sense.  My next-door neighbor has AIDS.\nShe has recently come to have a much deeper and more committed \nrelationship with God.  Her theology isn't what I would want it to be,\nbut God's grace covers her.  The amazing thing is that she is gaining\nweight (she's had the disease for over 2 years) and her health is\nexcellent apart from occassional skin rashes and such.  She attributes\nher improvement in her health to God's intervention in her life.  Who\nare we to suggest that her disease is some kind of punishment?  It\nseems to me that God is being glorified through her disease.\n\nPaul Overstreet, the country singer, has a good song title that I \nthink applies to all of us - But for the Grace of God, There Go I\n(or something like that).\n\nMay we all experience and accept God's grace.\n>\n>-------------------------------------------------------------------------\n>Mark Ashley                        |DISCLAIMER: The opinions expressed\n>marka@gcx1.ssd.csd.harris.com      |here are my own; they do not\n>..!uunet!gcx1!marka               |reflect the opinion or policies\n>The Lost Los Angelino              |of Harris Corporation.\n>-------------------------------------------------------------------------\n\n\n===============================================================================\nPaul Conditt\t\tInternet: conditt@titan.tsd.arlut.utexas.edu\nApplied Research\tPhone:\t  (512) 835-3422   FAX: (512) 835-3416/3259\n  Laboratories\t\tFedex:\t  10000 Burnet Road, Austin, Texas 78758-4423\nUniversity of Texas\tPostal:\t  P.O. Box 8029, Austin, Texas 78713-8029\nAustin, Texas <----- the most wonderful place in Texas to live\n\n\n  TTTTTTTTTTTTTTT              \n  TTT   TTT   TTT                 \n        TTT                    \n   TTTTTTTTTTTTT                  Texas Tech Lady Raiders\n   TT   TTT   TT                   1992-93 SWC Champions\n        TTT                    1992-93 NCAA National Champions\n        TTT\n      TTTTTTT\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9438, "properties": {"category": "comp.graphics", "text": "From: Mark A. Cartwright <markc@emx.utexas.edu>\nSubject: Re: TIFF: philosophical significance of 42 (SILLY)\nOrganization: University of Texas @ Austin, Comp. Center\nLines: 21\nDistribution: world\nNNTP-Posting-Host: aliester.cc.utexas.edu\nX-UserAgent: Nuntius v1.1\n\nWell,\n\n42 is 101010 binary, and who would forget that its the\nanswer to the Question of \"Life, the Universe, and Everything else.\"\nThat is to quote Douglas Adams in a round about way.\n\nOf course the Question has not yet been discovered...\n\n--\nMark A. Cartwright, N5SNP\nUniversity of Texas @ Austin\nComputation Center, Graphics Facility\nmarkc@emx.utexas.edu\nmarkc@sirius.cc.utexas.edu\nmarkc@hermes.chpc.utexas.edu\n(512)-471-3241 x 362\n\nPP-ASEL 9-92\n\na.) \"Often in error, never in doubt.\"\nb.) \"This situation has no gravity, I would like a refund please.\"\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9439, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Facinating facts: 30 bit serial number, possibly fixed S1 and S2\nLines: 20\n\n\tFrom: pmetzger@snark.shearson.com (Perry E. Metzger)\n\n\tdenning@guvax.acc.georgetown.edu (Vidkun Abraham Lauritz Quisling) writes:\n\n\t   Each chip includes the following components:\n\n\t      the Skipjack encryption algorithm\n\t      F, an 80-bit family key that is common to all chips\n\t      N, a 30-bit serial number\n\t      U, an 80-bit secret key that unlocks all messages encrypted with the chip\n\n\tHmmm. A thirty bit serial number. And, we are told, the unit key U is\n\tderived deterministically from this serial number. That means that\n\tthere are only one billion possible unit keys.\n\nOh hell, it's *much* worse than that.  You think they'll ever make\nmore than a million of them?  Serial numbers aren't handed out at random\nyou know, they start at 1 and work up...  Call it a 20 bit space maybe.\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9440, "properties": {"category": "comp.windows.x", "text": "From: \"Derrick J. Brashear\" <db74+@andrew.cmu.edu>\nSubject: virtual mouse in open look under X11?\nOrganization: Sophomore, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 6\nNNTP-Posting-Host: andrew.cmu.edu\n\nIs the virtual mouse simulation in ol{v}wm 3.x available under X11R5?\nI've been told I'm setting the right resource, yet it continues not to\nwork. I'm running olvwm3.3 (or olwm 3) on a Sun 3, X11R5 pl 22.\n\n-D\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9441, "properties": {"category": "rec.sport.hockey", "text": "Organization: City University of New York\nFrom: Harold Zazula <DLMQC@CUNYVM.BITNET>\nSubject: Octopus in Detroit?\nLines: 9\n\nI was watching the Detroit-Minnesota game last night and thought I saw an\noctopus on the ice after Ysebaert scored to tie the game at two. What gives?\n(is there some custom to throw octopuses on the ice in Detroit?)\n-------\nNot Responsible -- Dain Bramaged!!\n\nHarold Zazula\ndlmqc@cunyvm.cuny.edu\nhzazula@alehouse.acc.qc.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9442, "properties": {"category": "talk.politics.misc", "text": "From: jviv@usmi01.midland.chevron.com (John Viveiros)\nSubject: Re: To be, or Not to be [ a Disaster ]\nDistribution: na\nOrganization: Chevron\nLines: 31\n\nIn article <philC5Ht85.H48@netcom.com> phil@netcom.com (Phil Ronzone) writes:\n>Not at all. You are apparently just another member of the Religious Left.\n>\n>Show me all these environmental \"disasters\". Most of them aren't. And the\n>natural disasters we have had individually far outweigh the man-made ones.\n>\n>Most of your so-called disasters (Love Canal, Times Beach, TMI) aren't disasters\n>at all.\n>\n>So look, if you want to worship trees (or owls or snails or whatever), fine, do\n>so. But DON'T try to push the scaredness of YOUR religious off onto me.\n>\nIf you want to see environmental disasters, go to eastern Europe or some\nparts of the FSU (former Soviet Union).  This is because they had no\nenvironmental protection laws and were trying to increase productivity\nat any expense to justify their political systems.  Luckily for us, some\nof our politicians with vision passed some environmental laws.  That\nisn't to say that they shouldn't be modified, but all I ever hear from\nyou is that the environmental laws were dreamed up by a bunch of\nleft-wing tree-huggers intent on putting us back on horseback.  Yes,\nthere are some of those, but a lot of us simply want to procede with\ncaution.\n\n-- \nJohn Viveiros     (jviv@chevron.com)\nChevron USA        Standard disclaimer applies\nMidland TX \n-- \n               NetNews userid for nntpserver.chevron.com\n\n- Who said \"No News is good news\" ?\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9443, "properties": {"category": "rec.sport.hockey", "text": "From: westerhold@batgirl.rtp.dg.com ()\nSubject: wanted: mail order hockey equipment\nDistribution: usa\nOrganization: Data General Corporation, RTP, NC.\nLines: 11\n\n\nCould anyone recommend a mail order distributor for\nhockey equipment.\n\n\t\t\t\tThanks in Advance\n\t\t\t\tWayne\n--\n /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\\n<  Wayne E. Westerhold                    wester@dg-rtp.dg.com             >\n<  Data General Corporation               Research Triangle Park, NC       >\n \\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9444, "properties": {"category": "misc.forsale", "text": "From: Rupin.Dang@dartmouth.edu (Rupin Dang)\nSubject: Panasonic answering machine forsale\nOrganization: Dartmouth College, Hanover, NH\nLines: 3\n\nAuto Logic Panasonic answering machine with dual cassette system. I will\ninclude cassettes and AC power adaptor. Excellent condition. Asking $30 with\naccessories.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9445, "properties": {"category": "talk.politics.guns", "text": "From: mhamilto@Nimitz.mcs.kent.edu (The Lawnmowerman)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nKeywords: Nata thing !!\nNntp-Posting-Host: nimitz.mcs.kent.edu\nReply-To: Matthew Hamilton\nOrganization: Kent State University CS\nLines: 33\n\nIn article <1r1j1l$4t@transfer.stratus.com>, cdt@sw.stratus.com (C. D. Tavares) writes:\n> In article <1993Apr20.143255.12711@mcs.kent.edu>, mhamilto@Nimitz.mcs.kent.edu (The Lawnmowerman) writes:\n> \n> Oh, then, I guess that shooting THOSE kind of babies is all right.\n> \n> You sick bastard.\n> -- \n> \n> cdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\n> OR cdt@vos.stratus.com        write today for my special Investors' Packet...\n> \n\nWhy thanks for your reply to my post.  By the way, I never, never ever said \nthat it was right to shoot \"THOSE kind\" of babies.  However it was the Branch\nDavidian people in there that insisted on staying there with their \"savior\" \n(yeah right budy boy) because he had brain-washed them into believing that \nwhat ever he says is the truth, even if means that they are to give up their\nlives for <<<<HIS>>>> cause.  Therefore it is Davids fault and not the ATF's\nwho gave them 50 to 51 days to get out, this was 50 days to many for me and\nfor many of the rest of the U.S.  I am however sad to hear of the death of any \nchild unlike the sick bastard I supposedly am.\n-- \n+----------------------------------------------------------------------------+\n| Matthew R. Hamilton   | mhamilto@mcs.kent.edu    |      A.K.A              |\n| CS/ Physics Major     | 1499h751@ksuvxb.kent.edu |   (The Lawnmowerman)    |\n| Kent State University\t| 1299h751@ksuvxb.kent.edu |\t\t\t     |\n+----------------------------------------------------------------------------+\n|                                                                            |\n|                                                                            |\n|      Look here for future advice.quotes.sayings.jibberish.philosohy        |\n|                                                                            |\n+----------------------------------------------------------------------------+\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9446, "properties": {"category": "sci.space", "text": "Subject: Re: Space Research Spin Off\nFrom: shafer@rigel.dfrf.nasa.gov (Mary Shafer)\n t> <1993Apr2.213917.1@aurora.alaska.edu><1pnuke$idn@access.digex.net> \n <SHAFER.93Apr4200752@ra.dfrf.nasa.gov><pgf.734062799@srl03.cacs.usl.edu>\nOrganization: NASA Dryden, Edwards, Cal.\nIn-Reply-To: pgf@srl03.cacs.usl.edu's message of Tue, 6 Apr 1993 02:19:59 GMT\nLines: 64\n\nOn Tue, 6 Apr 1993 02:19:59 GMT, pgf@srl03.cacs.usl.edu (Phil G. Fraering) said:\n\nPhil> shafer@rigel.dfrf.nasa.gov (Mary Shafer) writes:\n\n>On 4 Apr 1993 20:31:10 -0400, prb@access.digex.com (Pat) said:\n\n>Pat> In article <1993Apr2.213917.1@aurora.alaska.edu> Pat>\n>nsmca@aurora.alaska.edu writes: >Question is can someone give me 10\n>examples of direct NASA/Space related >research that helped humanity\n>in general? It will be interesting to see..\n\n>Pat> TANG :-) Mylar I think.  I think they also pushed Hi Tech Pat>\n>Composites for airframes.  Look at Fly by Wire.\n\n>Swept wings--if you fly in airliners you've reaped the benefits.\n\nPhil> Didn't one of the early jet fighters have these?  I also think\nPhil> the germans did some work on these in WWII.\n\nThe NACA came up with them before World War II.  NASA is directly\ndescended from the NACA, with space added in.\n\nYou'll notice that I didn't mention sweep wings even though the\nX-5, tested at what's now Dryden, had them.  We did steal that one\ndirctly from the Germans.  The difference is that swept wings don't\nchange their angle of sweep, sweep wings do.  Perhaps the similarity\nof names has caused some confusion?  747s have swept wings, F-111s\nhave sweep wings.\n\n>Winglets.  Area ruling.  Digital fly by wire.  Ride smoothing.\n\nPhil> A lot of this was also done by the military...\n\nAfter NASA aerodynamicists proposed them and NASA test teams\ndemonstrated them.  Richard Whitcomb and R.T. Jones, at Langley\nResearch Center, were giants in the field.\n\nDryden was involved in the flight testing of winglets and area\nruling (in the 70s and 50s, respectively).  It's true that we\nused military aircraft as the testbeds (KC-135 and YF-102) but\nthat had more to do with availability and need than with military\ninvolvement.  The YF-102 was completely ours and the KC-135 was\nbailed to us.  The Air Force, of course, was interested in our\nresults and supportive of our efforts.\n\nDryden flew the first digital fly by wire aircraft in the 70s. No\nmechnaical or analog backup, to show you how confident we were.\nGeneral Dynamics decided to make the F-16 flyby-wire when they saw how\nsuccessful we were.  (Mind you, the Avro Arrow and the X-15 were both\nfly-by-wire aircraft much earlier, but analog.)\n\nPhil> Egad! I'm disagreeing with Mary Shafer!  \n\nThe NASA habit of acquiring second-hand military aircraft and using\nthem for testbeds can make things kind of confusing.  On the other\nhand, all those second-hand Navy planes give our test pilots a chance\nto fold the wings--something most pilots at Edwards Air Force Base\ncan't do.\n\n\n--\nMary Shafer  DoD #0362 KotFR NASA Dryden Flight Research Facility, Edwards, CA\nshafer@rigel.dfrf.nasa.gov                    Of course I don't speak for NASA\n \"A MiG at your six is better than no MiG at all.\"  Unknown US fighter pilot\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9447, "properties": {"category": "comp.windows.x", "text": "From: prunet@zephir.inria.fr (Vincent Prunet)\nSubject: Re: Monthly Question about XCopyArea() and Expose Events\nOrganization: INRIA, Sophia-Antipolis (Fr)\nLines: 55\n\nIn article <BUZZ.93Apr19125438@lion.bear.com>, buzz@bear.com (Buzz Moschetti)\nwrites:\n|> (2nd posting of the question that just doesn't seem to get answered)\n|> \n|> Suppose you have an idle app with a realized and mapped Window that\n|> contains\n|> Xlib graphics.  A button widget, when pressed, will cause a new item\n|> to be drawn in the Window.  This action clearly should not call XCopyArea()\n|> |> (or equiv) directly; instead, it should register the existence of the\n|> new\n|> item in a memory structure and let the same expose event handler that\n|> handles\n|> \"regular\" expose events (e.g. window manager-driven exposures) take care\n|> of rendering the new image.  Using an expose event handler is a \"proper\"\n|> way\n|> to do this because at the time the handler is called, the Xlib Window is\n|> guaranteed to be mapped.\n|> \n|> The problem, of course, is that no expose event is generated if the window\n|> is already visible and mapped.  What we need to do is somehow \"tickle\" the\n|> Window so that the expose handler is hit with arguments that will enable\n|> it to render *just* the part of the window that contains the new item.\n|> \n|> What is the best way to tickle a window to produce this behavior?\n\nTo incrementally update the contents of windows, I use the following trick:\n\n\t1. Set the window background to None,\n\t2. Call XClearArea(display, window, 0, 0, 0, 0, True),\n\t3. Restore the window background to its correct value.\n\nThe call to XClearArea does not repaint the window background, but still\ngenerates exposure events for visible parts of the window.\n\nIn order to let my application know that these expose events must be handled\nincrementally (something is already displayed on the screen and may need to\nbe erased), I encapsulate the 3 operations with 2 self addressed client\nmessages, which preserve asynchronicity between the client and the server.\n\nXGrabServer(display)\nclient message (start-incremental)\n \tbackground None\n\tXClearArea\n\tRestore background \nclient message (end-incremental)\nXUngrabServer(display)\n\nThe GrabServer prevents other events to be inserted by the server in the\ncritical section.\n\n---\nVincent Prunet, Sema Group Sophia Antipolis\nINRIA       BP 93    06902 SOPHIA ANTIPOLIS Cedex  FRANCE\nprunet@sophia.inria.fr, (33) 93 65 78 42, Fax:(33) 93 65 77 66\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9448, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lemay@netcom.com (Laura Lemay)\nSubject: Recommend me a PS printer\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 84\n\n\n\nI'm in the market for a laser printer. Used printers are fine, non-apple\nprinters are fine, but whatever printer I get must fit the following:\n\nRequired features:\n\n- PostScript\n\n- 300 dpi\n\n- emough memory to download fonts\n\n- The cheaper, the better.  I'd prefer under $1000.\n\n\nNice things:\n\n- anything over 4 pages per minute\n\n- scsi output for a font disk\n\n- smallish footprint\n\n\n\nDon't Care About:\n\n- PostScript Level II\n\n- networking (its just for me, and always will be)\n\n- color\n\n\nI know about Freedom of Press, but I've also heard that its painfully slow.\nI can tolerate about 4 ppm, but anything slower than that and I'm not going\nto consider the price savings worth it.  I'd be curious to hear people's\nexperience with it, tho. \n\nI also infinitely prefer laser over ink; I used to use HP deskjets in\nmy last job and wasn't impressed with the quality.  I'm a laser bigot\nand the first to admit it. :)\n\n\nI'll be using the printer to layout pages of a book I'm writing.  The\npage will include multiple fonts, PS graphics, scanned line art and\nmaybe greyscale pictures (not sure yet).  The quality doesn't need to\nbe spectacular, but it needs to be clear and readable.\n\n\nPrinters I've been looking at:\n\n\n- used LaserWriters: The plus, the NT, the NTR.  Its my understanding that\n  only the NTR has a SCSI out for a disk. True?\n\n- Personal LaserWriter (LS and NTR).  I have access to the Apple Employee\n  discount (I work for one of Apple's spinoffs), so I can get these reasonably\n  cheaply.  I've heard bad things about the LS; comments?  I'm leaning\n  towards the Personal NTR, cause it has a nice small footprint.\n\n- LaserWriter Select 300.  I hear it doesn't have PostScript, but I haven't\n  seen anything for sure.  I heard mumbles once about a \"postscript upgrade.\"\n  ??\n\n- Used HP LaserJets.  I've worked with the II and IIP on another platform, and\n  they were *painfully* slow.  Are they that bad on the mac?\n\n- I've seen ads for an Epson PS laserprinter that is running quite cheap.\n  Any comments on this printer?  I hate the styling (too many ouput trays),\n  but if its a decent printer I'll consider it.\n\n\nThanks for any comments...\n\n\n\n-- \n*********************************************************\nLaura Lemay                              lemay@netcom.com\nwriter of trifles in shadows and blood\n*********************************************************\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9449, "properties": {"category": "misc.forsale", "text": "From: thssjxy@iitmax.iit.edu (Smile)\nSubject: FORSALE:   Used Guitar amp.\nArticle-I.D.: iitmax.1993Apr15.223158.15645\nDistribution: usa\nOrganization: Illinois Institute of Technology\nLines: 14\n\n\nTwo years old Crate Guitar Amplifier model G80XL. \n\t\n\t- Handles upto 80 Watts.\n\t- Dual Input.\n\t- Two channels.\n\t- Reverb.\n\t- Three band eq.\n\t- Distortion.\n\n\nI am asking $150.\n(send me a mail to \"thssjxy@iitmax.acc.iit.edu\" if you are interested.)\nPrices maybe negotiable.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9450, "properties": {"category": "sci.med", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Re: Good Grief!  (was Re: Candida Albicans: what is it?)\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 26\n\nIn article romdas@uclink.berkeley.edu (Ella I Baff) writes:\n\n>   >If anybody, doctors included, said to me to my face that there is no\n>   >evidence of the 'yeast connection', I cannot guarantee their safety.\n>   >For their incompetence, ripping off their lips is justified as far as\n>   >I am concerned.\n>\n>This doesn't sound like Candida Albicans to me.\n\nNo, just a little anger.  Normally I don't rip people's lips off, except\nwhen my candida has overcolonized and I become:  \"Fungus Man\"!  :^)\n\nJon\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9451, "properties": {"category": "rec.autos", "text": "From: hagenjd@wfu.edu (Jeff Hagen)\nSubject: Re: Lois Chevrolet?\nOrganization: Wake Forest University\nLines: 22\nNNTP-Posting-Host: ac.wfunet.wfu.edu\n\n\n\nThe Chevrolet brothers were respected racers & test drivers for the\nBuick Co. when Durant was there.\n\nWhen the directors kicked Durant out of GM in 1910 he took Chevrolet and\nothers with him.  As mentioned before, they founded the successful\nChevrolet company.\n\nA little-known fact is that the Chevrolet Co. actually took over GM!\nThat was how Durant got back in charge of GM-- legally his new company\nChevrolet Co. did the buying, and GM was a division of Chevrolet!\n\nAfter 1920 and into the Sloan era, GM shuffled things so that the GM\nboard was superior, but there was always a degree of autonomy given\nthe Chevy division, presumably because of the initial structure.\n(If you look at the organization chart for GM in Sloan's book, Chevy\ndivision reports directly to 14th floor, not through the \"passenger\ncar division\" which covers Buick, Olds, Cadillac, and Oakland/Pontiac)\n\n-Jeff Hagen    (minor deity of worthless auto-trivia)\n hagenjd@ac.wfu.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9452, "properties": {"category": "rec.sport.hockey", "text": "From: U16028@uicvm.uic.edu\nSubject: Re: Coloured puck (was: CHANGES NOT NOTED YET!)\nArticle-I.D.: uicvm.93095.203829U16028\nOrganization: University of Illinois at Chicago, academic Computer Center\nLines: 15\n\nIn article <1993Apr5.171006.22196@bnr.ca>, dwarf@bcarh601.bnr.ca (W. Jim Jordan)\nsays:\n>The precedent was set by the WHA in their first season.  They used a red\n>puck for exhibition games and a blue one for the regular season.\n>Thankfully, they abandoned it in favour of black before the next season\n>began.\n>\n-------------------------------------------------------------------------\nOne reason that the WHA abandoned the blue puck was the fact that it\ncrumbled very quickly during play.  The blue dye that was used somehow\naffected the vulcanized rubber of the puck, decreasing its cohesiveness.\n\nTerry\nU16028@uicvm.uic.edu\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9453, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: (Joseph D. Barrus)\nSubject: Utility to expand DOS file descriptions in directory listing?\nOrganization: Naval Ocean Systems Center, San Diego, CA\nLines: 16\n\n\nI am looking for a Windows Utility that would give me a listing of files\nin a directory, but also display a description of the file.  This utility\nwould allow me to enter and edit file descriptions of, hopefully, any \nlength (maybe a small window with a scroll bar?).  I would then be able\nto browse my directories and be able to see what is in a file without\nhaving to open or execute it.  Any such beast out there?  If not, anyone\nwant to write one?\n\nJoe Barrus\nbarrus@nosc.mil\n\n\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9454, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Cause of mental retardation?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 35\n\nIn article <1993Apr13.111834.1@cc.uvcc.edu> harrisji@cc.uvcc.edu writes:\n\n>\n>Chromosome studies have shown no abnormalities.  Enzyme studies and\n>urine analyses have not turned up anything out of the ordinary. \n>MRI images of the brain show scar tissue in the white matter. \n>Subsequent MRI analysis has shown that the deterioration of the\n>white matter is progressive.\n>\n>Because neither family has a history of anything like this, and\n>because two of our four children are afflicted with the disorder,\n>we believe that it is an autosomal recessive metabolic disorder of\n>some kind.  Naturally, we would like to know exactly what the\n>disease is so that we may gain some insight into how we can expect\n>the disorder to progress in the future.  We would also like to be\n>able to provide our normal children with some information about\n>what they can expect in their own children.\n>\n\nIt could be one of the leukodystrophies (not adrenal, only\nboys get that).  Surely you've been to a university pediatric\nneurology department.  If not that is the next step.  Biopsies\nmight help, especially if peripheral nerves are also affected.\nThere are so many of these diseases that would fit the symptoms\nyou gave that more can't be said at this time.\n\nI agree with your surmise that it is an autosomal recessive.\nIf so, your normal children won't have to worry too much unless\nthey marry near relatives.  Most recessive genes are rare\nexcept in inbred communities (e.g. Lithuanian Jews).\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9455, "properties": {"category": "soc.religion.christian", "text": "From: tbrent@bank.ecn.purdue.edu (Timothy J Brent)\nSubject: Re: Atheists and Hell\nOrganization: Purdue University Engineering Computer Network\nLines: 31\n\nIn article <Apr.19.05.14.08.1993.29279@athos.rutgers.edu> atterlep@vela.acs.oakland.edu (Cardinal Ximenez) writes:\n\n>  I don't see what the problem is!  To Christians, Hell is, by definition, \n>eternal death--exactly what atheists are expecting when they die.  There's no\n>reason Hell has to be especially awful--to most people, eternal death is bad\n>enough.\n>  Literal interpreters of the Bible will have a problem with this view, since\n>the Bible talks about the fires of Hell and such.  Personally, I don't think\n>that people in Hell will be thrust into flame any more than I expect to Jesus\n>with a double-edged sword issuing from his mouth--I treat both these statements\n>as metaphorical.\n\nPhew! That takes a load off. I don't want to live forever.  I wish\nmost Christians held this view.  You can't walk across campus in\nspring without being assailed by fire-and-brimstone preachers.  I\nreally think the metaphor should be limited, at least with respect to\nteaching our children.  It's criminal to put these ideas into a young\nand trusting mind.  Besides, why not rely on the positive aspects of\nyour religion to win their faith?\n \n-Tim \n\n ______________________________________________________________________________\n|\t\t\t\t|\t\t\t\t       \t       |\n|       Timothy J. Brent        |   A man will come to know true happiness,    |\n|   BRENT@bank.ecn.purdue.edu   |   only when he accepts that he is but a      |\n|=========$$$$==================|   small part of an infinite universe.\t       |\n|       PURDUE UNIVERSITY       |\t\t\t  \t   -Spinoza    |\n| MATERIALS SCIENCE ENGINEERING |\t\t\t \t [paraphrased] |\n|_______________________________|______________________________________________|\n________________________________________________________________________________\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9456, "properties": {"category": "rec.sport.hockey", "text": "From: nlu@Xenon.Stanford.EDU (Nelson Lu)\nSubject: Possible Canadian WC Team?\nOrganization: Computer Science Department, Stanford University.\nLines: 39\n\nThis is an all-point team for the Canadian NHLers who are not playoff bound...\n\nGOALIES\nBill Ranford, Edmonton\nSean Burke, Hartford\nPeter Sidorkiewicz, Ottawa\n\nDEFENSEMEN\nZarley Zalapski, Hartford\nNorm MacIver, Ottawa\nGarry Galley, Philadelphia\nGreg Hawgood, Philadelphia\nDave Manson, Edmonton\nMark Tinordi, Minnesota\n\nCENTERS\nMark Messier, N. Y. Rangers\nGeoff Sanderson, Hartford\nBrian Bradley, Tampa Bay\nRod Brind'Amour, Philadelphia\n\nLEFT WINGS\nAdam Graves, N. Y. Rangers\nChris Kontos, Tampa Bay\nPatrick Poulin, Hartford\nShayne Corson, Edmonton\n\nRIGHT WINGS\nPat Verbeek, Hartford\nRuss Courtnall, Minnesota\nMike Gartner, N. Y. Rangers\nKevin Dineen, Philadelphia\n\n===============================================================================\nGO CALGARY FLAMES!  Al MacInnis for Norris!  Gary Roberts for Hart and Smythe!\nGO EDMONTON OILERS!  Go for playoffs next year!  Stay in Edmonton!\n===============================================================================\nNelson Lu (claudius@leland.stanford.edu)\nrec.sport.hockey contact for the San Jose Sharks\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9457, "properties": {"category": "soc.religion.christian", "text": "From: XOPR131@maccvm.corp.mot.com (Gerald McPherson)\nSubject: Re: Am I going to Hell?\nLines: 42\n\nIn <Apr.23.02.55.31.1993.3123@geneva.rutgers.edu>\nTim asks:\n\n>I have stated before that I do not consider myself an atheist, but\n>definitely do not believe in the christian god.  The recent discussion\n>about atheists and hell, combined with a post to another group (to the\n>effect of 'you will all go to hell') has me interested in the consensus\n>as to how a god might judge men.  As a catholic, I was told that a jew,\n>buddhist, etc. might go to heaven, but obviously some people do not\n>believe this.  Even more see atheists and pagans (I assume I would be\n>lumped into this category) to be hellbound.  I know you believe only\n>god can judge, and I do not ask you to, just for your opinions.\n>\n   This is probably too simplistic for some, but John 3:16 saus,\n   \"For God so loved the world that He gave His only son, that\n   whoever believes in Him should not perish but have eternal life\".\n\n   Genesis 15:6, \"And he (Abram) believed the LORD; and He reckoned\n   it to him as righteousness\".\n\n   I don't find anywhere that God restricts heaven to particular\n   ethnic groups or religious denominations or any other category\n   that we humans like to drop people into. But He does REQUIRE\n   that we believe and trust Him. In Hebrews it says that God spoke\n   of old by the prophets (the old testament), but in these last days\n   he has spoken to us by His son Jesus Christ. And we learn of\n   Him through the pages of the New Testament. The Bible tells us\n   what we need to believe. For those who have never heard, I leave\n   them in God's capable care, He will make himself known as he\n   desires. It behooves each one of us to act upon the knowledge\n   we have. If you reject the claims of Jesus, and still go to\n   heaven, then the joke's on me. If you reject him and go to hell,\n   that's no joke, but it will be final.\n\n\n   Gerry\n\n ============================\n   The opinions expressed\n   are not necessarily those\n   of my employer.\n ============================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9458, "properties": {"category": "talk.politics.misc", "text": "From: redekop@gaul.csd.uwo.ca (Tzoq Mrekazh)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: Welsh Farm\nNntp-Posting-Host: obelix.gaul.csd.uwo.ca\nLines: 16\n\nIn article <Apr.16.20.34.50.1993.6677@romulus.rutgers.edu> kaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n>So, one\n>should properly write \"Who's promiscuous?\"  The answer is: \"Many\n>homosexuals are.\"\n\n Not quite.  The answer is:  Many homosexuals, heterosexual, and bisexuals are,\nbut then, many are not.\n\n Or, more simply: Lots of people are.\n\n\n-- \n    o-  Tzoq    \"I am a good speller, I am -- C-A-T, dog...           ^ ^\n O   o- tzoq@uwo.ca                           B-A-T, Rhode Island...\" `v'\n    o-  redekop@obelix.gaul.csd.uwo.ca                 -- Junyer Bear  ^  \n= Bernoulli would have been content to die, had he but known such a^2 cos 2phi =\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.446+0000", "event": "documents", "entityId": 9459, "properties": {"category": "rec.sport.hockey", "text": "From: nlu@Xenon.Stanford.EDU (Nelson Lu)\nSubject: SHARKS REVIEW Part 2: Defensemen (2-19)\nOrganization: Computer Science Department, Stanford University.\nLines: 92\n\nI finally got it back, with great thanks to Mark Spiegel for saving and sending\nit.\n\n\n\n#2\tROB ZETTLER\t\tSeason:\t4th\nAcquired:\t'91-92, from Minnesota in dispersal draft\nGrade:\t\tC/C-\n\nZettler gave the Sharks every bit he's got this year; unfortunately, this still\nwasn't enough to make him any more than a marginal NHLer, if that.  He works\nhard, for sure, but is no better than average on defense, and is prone to\ncostly penalties and defensive lapses at times, while being basically an\noffensive zero (0 goal and 7 assists in 79 games).  He would be hardpressed\nto make the team next year.\n\n#3\tDAVID WILLIAMS\t\tSeason: 2nd\nAcquired:\t'91-92, free agent from New Jersey\nGrade:\t\tC/C-\n\nIMO, Williams was the most valuable defenseman for the Sharks in '91-92,\nplaying a combination of good offense (3 goals and 25 assists in 56 games) and\ngood defense.  But he, playing the first part of this season in Kansas City,\nwas good neither offensively nor defensively this year; it, then, appears that\n'91-92 was a fluke.  Although he improved towards the end of the season, he\nwas prone to being out of position defensively, and did not demonstrate the\nplaymaking skills that made him the team's leading scorer among defensemen last\nyear.  He would also be hardpressed to make the team next year.\n\n#4\tJAYSON MORE\t\tSeason: 2nd\nAcquired:\t'91-92, from Montreal in expansion draft\nGrade:\t\tB+\n\nAfter being touted as the team's top defensive prospects in training camp\nbefore '91-92, More had a rather disappointing '91-92, as he was not\nparticularly good defensively, and had just 17 points in 46 games.  He, then,\nproceeded to improve his game massively this season, becoming the team's most\nreliable defenseman, whom the team can count on night in and night out to play\nsteady defense and providing occasional (but only occasional) offensive flash.\nOffensively, he was even more disappointing than last year (11 points in 73\ngames), but his defense improved tremendously.  He is probably best as the\ndefensive part of a defense combination with an offensive defenseman.\n\n#5\tNEIL WILKINSON\t\tSeason: 4th\nAcquired:\t'91-92, from Minnesota in dispersal draft\nGrade:\t\tB-\n\nWilkinson was probably the team's top defensive defenseman in '91-92.  However,\npartially because of injuries, he was not the same this year, as he missed 25\ngames total due to nagging knee and back injuries, and seemed to be slowed\neven when playing.  He, then, had often to be saved by his defensive partners;\nthat is, if they are there at all.  But he also had some solid games, and if\nhe can be complete healthy, he can still be a force.\n\n#6\tSANDIS OZOLINSH\t\tSeason: 1st\nAcquired:\t'91-92, 2nd round pick in entry draft\nGrade:\t\tI (A)\n\nAt the time of his injury (December 30, against the Philadelphia Flyers),\nOzolinsh was well on track to be, IMO, the team's MVP.  A serious knee injury\nin that game, though, forced him to miss the rest of the season (47 games),\nbut he still finished as the team's top scorer among defensemen (23 points),\nwhich, of course, tells more about the lack of offense the Sharks had from\ntheir defensemen, but it also tells of Ozolinsh's abilities.  At the time, he\nwas playing very good defense along with excellent offense; he was still\nsusceptible to so-called \"rookie mistakes,\" but was probably the defenseman who\nmade the least of them on the team, rookie or veteran.  If he can come back\nfrom his injuries, he is ready to be a star.\n\n#19\tDOUG ZMOLEK\t\tSeason: 1st\nAcquired:\t'91-92, from Minnesota in dispersal draft\nGrade:\t\tB\n\nZmolek had basically a solid and durable year, being one of the only two Sharks\nto play in all 84 games of the season.  He was solid on defense, but\nafter being billed as an offensive defenseman, he didn't show it (15 points).\nHe was also prone to penalties, and his 229 penalty minutes was second on the\nteam; however, that was also an indication that he was fearly when facing tough\nphysical opponents, and he was at his best when playing physically.  But to\nbecome a fixture in this league, he needs to improve both offensively and\ndefensively, and cut down on the number of power-plays he gives to opponents.\n\n===============================================================================\nGO CALGARY FLAMES!  Al MacInnis for Norris!  Gary Roberts for Hart and Smythe!\nGO EDMONTON OILERS!  Go for playoffs next year!  Stay in Edmonton!\n===============================================================================\nNelson Lu (claudius@leland.stanford.edu)\nrec.sport.hockey contact for the San Jose Sharks\n\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9460, "properties": {"category": "rec.sport.baseball", "text": "From: rickc@krill.corp.sgi.com (Richard Casares)\nSubject: Vegas odds?\nNntp-Posting-Host: krill.corp.sgi.com\nOrganization: Silicon Graphics, Inc.\nLines: 6\n\nDoes anyone have a list of Vegas odds for teams making\nthe World Series?\n\nI'd appreciate a mailing.  Thanks,\n\nrickc@corp.sgi.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9461, "properties": {"category": "sci.crypt", "text": "From: shirriff@sprite.berkeley.edu (Ken Shirriff)\nSubject: Re: Clipper considered harmful\nOrganization: University of California, Berkeley\nLines: 24\nDistribution: inet\nNNTP-Posting-Host: hijack.berkeley.edu\n\nIn article <15469@optilink.COM> brad@optilink.COM (Brad Yearwood) writes:\n>Finally, because there is essentially no possibility of intercepting in\n>realtime the scrutable content of communications between stolen instruments,\n>there will exist strong motivation to record and archive _all_ communications\n>in the network for ex-post-facto scrutiny (once some criminal act is\n>discovered, and the instruments involved have been identified).\n\nIt seems likely to me that that a large subset of encrypted communications\nwould be archived to tape so they could be read if sometime in the future\nprobable cause arises and a warrant is obtained.  I can even imagine this\nbeing found legal and constitutional, since nothing is actually listened to\nuntil a valid warrant is issued and the keys are obtained.\n\nImagine archiving all pay-phone conversations, so if someone turns out\nto be a drug dealer, you can listen to all their past drug deals.  And\narchive calls to/from suspected Mafia members, potential terrorists,\nradicals, etc.  Imagine the convenience for the police of being able to\nget a warrant now and listening to all the calls the World Trade Center\nbombers made in the past year.\n\nSince archiving would be such a powerful tool and so easy to do, why\nwouldn't it happen?\n\nKen Shirriff\t\t\t\tshirriff@sprite.Berkeley.EDU\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9462, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: Good Grief!  (was Re: Candida Albicans: what is it?)\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\n\nIn article <noringC5snsx.KMo@netcom.com> noring@netcom.com (Jon Noring) writes:\n>>There is no convincing evidence that such a disease exists.\n>There's a lot of evidence, it just hasn't been adequately gathered and\n>published in a way that will convince the die-hard melancholic skeptics\n>who quiver everytime the word 'anecdote' or 'empirical' is used.\n\nSnort.  Ah, there go my sinuses again.\n\n>For example, Dr. Ivker, who wrote the book \"Sinus Survival\", always gives,\n\nOh, wow.  A classic textbook.  Hey, they laughed at Einstein, too!\n\n>before any other treatment, a systemic anti-fungal (such as Nizoral) to his\n>new patients IF they've been on braod-spectrum anti-biotics 4 or more times\n>in the last two years.  He's kept a record of the results, and for over \n>2000 patients found that over 90% of his patients get significant relief\n>of allergic/sinus symptoms.  Of course, this is only the beginning for his\n>program.\n\nYeah, I'll bet.  Tomorrow, the world.\n\nListen, uncontrolled studies like this are worthless.\n\n>In my case, as I reported a few weeks ago, I was developing the classic\n>symptoms outlined in 'The Yeast Connection' (I agree it is a poorly \n>written book):  e.g., extreme sensitivity to plastics, vapors, etc. which\n>I never had before (started in November).  Within one week of full dosage\n>of Sporanox, the sensitivity to chemicals has fully disappeared - I can\n>now sit on my couch at home without dying after two minutes.  I'm also\n>*greatly* improved in other areas as well.\n\nI'm sure you are.  You sound like the typical hysteric/hypochondriac who\nresponds to \"miracle cures.\"\n\n>Of course, I have allergy symptoms, etc.  I am especially allergic to\n>molds, yeasts, etc.  It doesn't take a rocket scientist to figure out that\n>if one has excessive colonization of yeast in the body, and you have a\n>natural allergy to yeasts, that a threshold would be reached where you\n>would have perceptible symptoms.\n\nYeah, \"it makes sense to me\", so of course it should be taken seriously.\nSnort.\n\n>Also, yeast do produce toxins of various\n>sorts, and again, you don't have to be a rocket scientist to realize that\n>such toxins can cause problems in some people.\n\nYeah, \"it sounds reasonable to me\".\n\n>Of course, the $60,000\n>question is whether a person who is immune compromised (as tests showed I was\n>from over 5 years of antibiotics, nutritionally-deficiencies because of the\n>stress of infections and allergies, etc.),\n\nOh, really?  _What_ tests?  Immune-compromised, my ass.\nMore like credulous malingerer.  This is a psychiatric syndrome.\n\n>can develop excessive yeast\n>colonization somewhere in the body.  It is a tough question to answer since\n>testing for excessive yeast colonization is not easy.  One almost has to\n>take an empirical approach to diagnosis.  Fortunately, Sporanox is relatively\n>safe unlike past anti-fungals (still have to be careful, however) so there's\n>no reason any longer to withhold Sporanox treatment for empirical reasons.\n\nYou know, it's a shame that a drug like itraconazole is being misused\nin this way.  It's ridiculously expensive, and potentially toxic.\nThe trouble is that it isn't toxic enough, so it gets abused by quacks.\n\n>BTW, some would say to try Nystatin.  Unfortunately, most yeast grows hyphae\n>too deep into tissue for Nystatin to have any permanent affect.  You'll find\n>a lot of people who are on Nystatin all the time.\n\nThe only good thing about nystatin is that it's (relatively) cheap\nand when taken orally, non-toxic.  But oral nystatin is without any\nsystemic effect, so unless it were given IV, it would be without\nany effect on your sinuses.  I wish these quacks would first use\nIV nystatin or amphotericin B on people like you.  That would solve\nthe \"yeast\" problem once and for all.\n\n>In summary, I appreciate all of the attempts by those who desire to keep\n>medicine on the right road.  But methinks that some who hold too firmly\n>to the party line are academics who haven't been in the trenches long enough\n>actually treating patients.  If anybody, doctors included, said to me to my\n>face that there is no evidence of the 'yeast connection', I cannot guarantee\n>their safety.  For their incompetence, ripping off their lips is justified as\n>far as I am concerned.\n\nPerhaps a little Haldol would go a long way towards ameliorating\nyour symptoms.\n\nAre you paying for this treatment out of your own pocket?  I'd hate\nto think my insurance premiums are going towards this.\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9463, "properties": {"category": "rec.sport.baseball", "text": "From: pjtier01@ulkyvx.louisville.edu\nSubject: Re: And America's Team is....But Why?\nLines: 18\nNntp-Posting-Host: ulkyvx.louisville.edu\nOrganization: University of Louisville\n\nIn article <kingoz.735066879@camelot>, kingoz@camelot.bradley.edu (Orin Roth) writes:\n>    Well, officially it's the Braves. At least up until they started winning\n>    it was. Are they still, officially? \n>    If so, why? and how did they receive this label?\n\nThere is NO TEAM, repeat, NO TEAM, that is America's team.  This is a diverse\ncountry with 26 MLB teams (+2 up north) and there is no one team that is\nAmerica's.  Who would the other teams belong to?\n\nAnd how does it happen?  Well, teams receive this monicker through success\n(Cowboys), national exposure (Cubs), or both (Braves).  It spreas aby\nsuccessful advertising campaigns.  Harry Caray, Ted Turner, amd other dupe\npeople into thinking that their representative teams are \"hip\" so that people\nwill watch them on TV and buy their products.  Arrogant local fans adapt the\nmonicker and think that \"their\" team is the one that America idolize\n\nIt comes down to dollars and egos.\n                                                                  P. Tierney\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9464, "properties": {"category": "talk.politics.misc", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: National Sales Tax, The Movie\nLines: 27\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <1993Apr16.170521.21129@midway.uchicago.edu> shou@quads.uchicago.edu (roger colin shouse) writes:\n>\n>SPEAKING OF VAT:  Did anyone see CNN's report yesterday (4/15)?  It \n>was quite hillarious (no pun intended).  They ran down how a percent tax\n>was added at each stage of manufacturing, graphicaly depicting a stack of \n>quarters being added at each wholesale stage.  When they got to the final \n>stage (the actual retail sale) the small stack of quarters added to the\n>large stack already there was said to be \"the amount paid by consumers.\"\n>In other words, they completed ignored the fact that at each stage the\n>tax would of course be passed on to the next buyer with the retail consumer\n>paying the full load.\n>\n>These are not journalists--they're lap dogs.\n\n      One of the commentators on one of the Big Three news programs \ndescribed the VAT (which ain't a sales tax) as a tax \"government's love.\"\nI was even surprised he got the reason right:  it effectively hides the\nmajority of the tax the consumer has to pay *from* the consumer.  It's\nkind of like they do with cars.  You pay far more for automobile taxes than\nmost people realize because it's contained in two dozen different taxes,\neverything from your license to your tires to your gasoline.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9465, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Traffic morons\nFrom: Stafford@Vax2.Winona.MSUS.Edu (John Stafford)\nDistribution: world\nOrganization: Winona State University\nNntp-Posting-Host: stafford.winona.msus.edu\nLines: 28\n\nIn article <10326.97.uupcb@compdyn.questor.org>,\nryan_cousineau@compdyn.questor.org (Ryan Cousineau) wrote:\n> \n> NMM>From: nielsmm@imv.aau.dk (Niels Mikkel Michelsen)\n> NMM>Subject: How to act in front of traffic jerks\n> \n> NMM>The other day, it was raining cats and dogs, therefor I was going only to\n> NMM>the speed limit, on nothing more, on my bike. This guy in his BMW was\n> NMM>driving 1-2 meters behind me for 7-800 meters and at the next red light I\n> NMM>calmly put the bike on its leg, walked back to this car, he rolled down the\n> NMM>window, and I told him he was a total idiot (and the reason why).\n> \n> NMM>Did I do the right thing?\n\n\timho, you did the wrong thing.  You could have been shot\n or he could have run over your bike or just beat the shit\n out of you.  Consider that the person is foolish enough\n to drive like a fool and may very well _act_ like one, too.\n\n Just get the heck away from the idiot.\n\n IF the driver does something clearly illegal, you _can_\n file a citizens arrest and drag that person into court.\n It's a hassle for you but a major hassle for the perp.\n\n====================================================\nJohn Stafford   Minnesota State University @ Winona\n                    All standard disclaimers apply.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9466, "properties": {"category": "comp.graphics", "text": "Subject: Re: Trying to view POV files.....\nFrom: dane@nermal.santarosa.edu (Dane Jasper)\nOrganization: Santa Rosa Junior College, Santa Rosa, CA\nNntp-Posting-Host: nermal.santarosa.edu\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 15\n\nEdward d Nobles (ednobles@sacam.OREN.ORTN.EDU) wrote:\n\n: I've been trying to view .tga files created in POVRAY.  I have the Diamond\n: SpeedStar 24 Video board (not the _24X_).  So far I can convert them to\n: jpeg using cjpeg and view them with CVIEW but that only displays 8 bit color.\n..\n: Just want to see the darn things in real color...\n\nI have an ATI ultra pro card, and have found that the easiest way to view\ntrue color images is using their windows drivers and something like winjpeg\nor photofinish.  \n\nIf anyone has a non-windows solution, I'd love to hear it!\n\nDane\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9467, "properties": {"category": "rec.autos", "text": "Subject: Traffic Rules at intersections\nFrom: jsv@math.canterbury.ac.nz (Julian Visch)\nOrganization: Department of Mathematics, University of Canterbury\nNntp-Posting-Host: sss330.canterbury.ac.nz\nLines: 20\n\nI am presently doing a masters thesis to do with traffic intersections in \nNew Zealand but a lot of the books I am researching from, are from America or\nAustralia and so I was wondering if anyone could please tell me what the road\nrules are in either country with regard to intersections.\n\nThanks\nJulian Visch\njsv@math.canterbury.ac.nz\n\n                                          ________________________\n                              ,---------+/       +----------+     \\\n                            /          ||        |          |      |\n                          /            ||        +----------+      |\n         _________------=--<I|---------+----------------------------,\n       .----=============|=========---=|=======================-->> |\n       |     ______      |             |              ______        |\n      [|    / _--_ \\     /             |             / _--_ \\       ]\n        \\__|| -__- ||___/_____________/_____________|| -__- ||_____/\n             \\____/                                   \\____/\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9468, "properties": {"category": "misc.forsale", "text": "From: anuster@wam.umd.edu (Anu Tuli)\nSubject: Car for Sale\nNntp-Posting-Host: rac3.wam.umd.edu\nOrganization: University of Maryland, College Park\nDistribution: usa\nLines: 35\n\nFrom mikefran Wed Apr 21 10:55:39 EDT 1993\nArticle: 56 of csc.general\nNewsgroups: dc.forsale,dc.general,um.general,csc.general\nPath: wam.umd.edu!mikefran\nFrom: mikefran@wam.umd.edu (Michael Francis)\nSubject: Car for Sale\nMessage-ID: <1993Apr21.142729.7039@wam.umd.edu>\nKeywords: 1981 Volkswagon Scirocco\nSender: usenet@wam.umd.edu (USENET News system)\nNntp-Posting-Host: rac3.wam.umd.edu\nOrganization: Workstations at Maryland, University of Maryland, College Park\nDistribution: csc,um,dc\nDate: Wed, 21 Apr 1993 14:27:29 GMT\n\n\n1981 Volkswagon Scirocco \n\n   Gold exterior and interior\n   5 speed transmission\n   AM/FM Stereo with cassette\n   Sunroof\n   Engine in good condition\n   New Tires\n   Needs $300 work on front left control arm because of damage caused by\n     pothole.\n   Runs well \n   Asking $800.00  AS IS / OBO.\n\n   email: mikefran@wam.umd.edu\n\n \n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9469, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: cas@spl1.spl.loral.com (Carl A Swanson)\nSubject: PC sound on a SB\nOrganization: Loral Software Productivity Lab\nLines: 9\n\nI read sometime in the last couple of weeks, an article which desribed how to play PC sound\nthrough a soundblaster. I didn't save the article and all old articles have been purged from\nour system here. \n\nWould whomever posted the article detailing where to connect the wires please re-post?\n\nSpecifically, I need to know where to connect wires from the PC speaker to the SB card.\n\nThx in Advance, Carl\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9470, "properties": {"category": "misc.forsale", "text": "From: zmed16@trc.amoco.com (Michael)\nSubject: FOR SALE: Drum Machine \nOriginator: zmed16@zircon\nOrganization: Amoco Production Company, Tulsa Research\nLines: 12\n\n\nI have an Alesis HR-16 drum machine for sale.  It includes velocity-sensitive\npads, 49 digital sounds, 99 pattern memory and 49 song memory.  If you are\ninterested, make me an offer.  Please respond to:\n\n\tzmed16@trc.amoco.com\n\nThanks,\n\nMike\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9471, "properties": {"category": "sci.med", "text": "From: melewitt@cs.sandia.gov (Martin E. Lewitt)\nSubject: Re: Altitude adjustment\nArticle-I.D.: cs.1993Apr22.055958.2377\nOrganization: nCUBE, Sandia Park, NM\nLines: 31\n\nIn article <4159@mdavcr.mda.ca> vida@mdavcr.mda.ca (Vida Morkunas) writes:\n>I live at sea-level, and am called-upon to travel to high-altitude cities\n>quite frequently, on business.  The cities in question are at 7000 to 9000\n>feet of altitude.  One of them especially is very polluted...\n>\n>Often I feel faint the first two or three days.  I feel lightheaded, and\n>my heart seems to pound a lot more than at sea-level.  Also, it is very\n>dry in these cities, so I will tend to drink a lot of water, and keep\n>away from dehydrating drinks, such as those containing caffeine or alcohol.\n>\n>Thing is, I still have symptoms.  How can I ensure that my short trips there\n>(no, I don't usually have a week to acclimatize) are as comfortable as possible?\n>Is there something else that I could do?\n\nI saw a Lifetime Medical Television show a few months back on travel\nmedicine.  It briefly mentioned some drugs which when started two or\nthree days before getting to altitude could assist in acclimitazation.\n\nUnfortunately all that I can recall is that the drug stimulated\nbreathing at night???  I don't know if that makes sense, it seems\nto me that the new drug which stimulates red blood cell production\nwould be a more logical approach, erythropoiten (sp?).\n\nAlas, I didn't record the program, but wish I had, since I live\nat over 7000ft. and my mother gets sick when visiting.\n\nPlease let me know if you get more informative responses.\n--\nPhone:  (505) 845-7561           Martin E. Lewitt             My opinions are\nDomain: lewitt@ncube.COM         P.O. Box 513                 my own, not my\nSandia: melewitt@cs.sandia.GOV   Sandia Park, NM 87047-0513   employer's. \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9472, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Alaska Pipeline and Space Station, Go Commerical.\nArticle-I.D.: aurora.1993Apr5.191701.1\nOrganization: University of Alaska Fairbanks\nLines: 15\nNntp-Posting-Host: acad3.alaska.edu\n\nSounds liek what the FED has to do is sign a 50 or more year lease to use\ncertain parts of a space station that is built and designed and such by a\ncommerical company or consortium of companies (such as like Alyeska) for a\nsmall amount of rent in return for certain incentives and such.. Such as tax\nand other right off and also a monopoly on certain products.. The commerical\nbuilders would have certain perks given to them to make there end easier (taxes\n, contracts, regulatory concesions and such..)\n\nIs it workable, just might work..\n\nAfter all, if China can lease out Hong Kong and the people of Hong Kong can\nmake money, this could work..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9473, "properties": {"category": "sci.crypt", "text": "From: wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705)\nSubject: Re: An Open Letter to Mr. Clinton\nOrganization: Sorcerer's Apprentice Cleaning Services\nIn-Reply-To: strnlght@netcom.com's message of Sat, 17 Apr 1993 04:41:19 GMT\nNntp-Posting-Host: rainier.ho.att.com\nLines: 26\n\nIn article <strnlghtC5M2Cv.8Hx@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n   Here's a simple way to convert the Clipper proposal to an unexceptionable\n   one: Make it voluntary.\n\n   That is--you get high quality secure NSA classified technology if you agree\n   to escrow your key. Otherwise you are on your own.\n\nThat's the disturbing part - use of other products IS voluntary, for now,\nand the press releases talk about the White House's unwillingness to\ndecide that citizens have a right to good commercial crypto gear,\nand about how commercial alternatives will be permitted as long as\nthey provide key escrow services.  That's a clear implication that\nthey're considering banning alternatives.\n\nAdditionally, use of real alternatives ISN'T totally legal -\nyou're not allowed to export really good crypto equipment except to\nthe government's friends (e.g. the Australian government)\nyou can only export even BAD crypto equipment with their permission,\nand the regulators who control the cellular telephone companies make\nsure there are only two competitors, so Joe's Garage Cellular can't\nstart offering a secure service.  \n--\n#\t\t\t\tPray for peace;      Bill\n# Bill Stewart 1-908-949-0705 wcs@anchor.att.com AT&T Bell Labs 4M312 Holmdel NJ\n#\t              No, I'm *from* New Jersey, I only *work* in cyberspace....\n# White House Commect Line 1-202-456-1111  fax 1-202-456-2461\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9474, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ronaldw@sco.COM (Ronald A. Wong)\nSubject: Re: Powerbook & Duo Batteries\nArticle-I.D.: ringo.ronaldw-050493173709\nDistribution: na\nOrganization: SCO Developer Relations\nLines: 32\n\nIn article <C4vr7z.EB0@usenet.ucs.indiana.edu>,\nkssimon@silver.ucs.indiana.edu (kenneth steven simon) wrote:\n> \n>  hades@coos.dartmouth.edu (Brian V. Hughes) writes:\n> \n>       >To my knowledge there is no way to fully discharge a Duo battery.\n> \n> The program PowerStrip2.0, which is freeware, has an option called\n> \"Quick Discharge.\"  You can find it on the Mac archives, probably\n> sumex-aim.stanford.edu or mac.archive.umich.edu.\n> \n> Good luck!\n> \n> \n> \n> -- \n> ----------------------------------------------------------------\n> Kenneth Simon                            Department of Sociology\n> KSSIMON@INDIANA.EDU                         Indiana University \n> ----------------------------------------------------------------\n\n\nIs it a hidden option?  I'm using PowerStrip 2.0 (by Mr. Caputo) right now\nand can't find any quick discharge option.  It definitely is on\nmac.archive.umich.edu 'cause I submitted it! \n\n______________________________________________________________________\nRon Wong                  The Santa Cruz Operation          408-427-7128\nNet & Comm Segment Mgr/   400 Encinal Street, PO Box 1900  FAX: 425-3544\nDevProgram Marketing Mgr  Santa Cruz, CA  95061-1900\nE-mail:   ...uunet!sco!ronaldw      ronaldw@sco.COM\n______________________________________________________________________\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9475, "properties": {"category": "soc.religion.christian", "text": "From: xx155@yfn.ysu.edu (Family Magazine Sysops)\nSubject: THE EMPTY TOMB...\nReply-To: xx155@yfn.ysu.edu (Family Magazine Sysops)\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 218\n\n\n \n                   THE EMPTY TOMB:  CAN WE TRUST IT?\n\n                   by the late Wilbur M. Smith, D.D.\n                              (1894-1977)\n\n          When Jesus was on Earth, He made an amazing prediction about\n     Himself, and frequently repeated it.  Let me quote it for you:\n\n                 Behold, we go up to Jerusalem; and the Son\n               of Man shall be betrayed unto the chief\n               priests and unto the scribes, and they shall\n               condemn Him to death, and shall deliver Him\n               to the Gentiles to mock, and to scourge, and\n               to crucify Him; and the third day He shall\n               rise again\" (Matthew 20:18-19).\n\n          Wholly different from the normal experience of men, Jesus,\n     who had *never* done anything worthy of death, even deserving\n     reproval, knew He would die before He was 40 years of age.  He\n     knew the very city where He would die.  He knew that the religious\n     leaders of His own race would condemn Him to death.  He knew that\n     one of His own would betray Him.  He knew that before His actual\n     death took place He would be mocked and scourged.  He knew exactly\n     how He would die--*by crucifixion.*\n\n          All this is in itself remarkable.  But more amazing than the\n     minute particulars of His foreknowledge was what He predicted\n     would follow shortly after He was buried--*that He would rise\n     again.*  He even designated the time--on the third day.\n\n          But since it is on this central fact--the death and resurrec-\n     tion of Jesus Christ--that the whole truth or untruth of Chris-\n     tianity turns, let us examine it more closely.\n\n          The body of Jesus was embalmed in long sheets of cloth\n     between the layers of which a great abundance of spices and\n     ointments was distributed.  The body was placed in a tomb which\n     had never before been used, and a great stone was rolled against\n     the entrance.  The Jewish authorities, fully aware that Jesus had\n     predicted He would rise again, had the stone officially sealed and\n     on Saturday placed a guard before the tomb to prevent the\n     disciples from carrying away the body.  Early Sunday morning some\n     of the women who were faithful followers of Christ went out to the\n     tomb to further anoint the body.  To their utter astonishment,\n     they found the stone rolled away, the body gone.  They rushed back\n     to tell the disciples.  Shortly two of Jesus' friends, Peter and\n     John, utterly skeptical about the whole affair, came and found the\n     tomb empty, just as the women had said.  Even the guards came\n     hurrying into the city to tell the Sanhedrin that had hired them\n     to guard the tomb that the body was gone (Matthew 28:11).\n\n          How did this tomb become empty?\n\n          One of the most famous New Testament scholars in America--\n     professor of New Testament literature in a large theological\n     seminary--wrote to the author in answer to my question of *how*\n     the tomb became empty, and wrote it in a letter *not* marked by\n     bitterness or sarcasm, that he could no more explain how the tomb\n     became empty than he could explain how Santa Claus comes down the\n     chimney at Christmas time.\n\n          But he didn't realize that Santa Clause never did come down\n     any chimney at Christmas time, *because there never was a Santa\n     Claus!*  ...And there *is* a Jesus.  He died; He was buried in the\n     tomb of Joseph of Arimathea, and on Sunday the body was gone.\n\n          Those are facts of history.  No one can escape the responsi-\n     bility of coming to some conclusion about what really happened by\n     mentioning a myth we all abandoned before we were eight years old.\n\n          Another professor, Dr. Kirsopp Lake of Harvard University,\n     tried to explain the empty tomb by saying (what no other scholar\n     in the field of New Testament criticism has ventured to adopt)\n     that the women went to the wrong tomb.\n\n          The facts are these:\n\n          First, so far as we know, there was no other tomb nearby to\n     which by mistake they could have gone.\n\n          Second, it is contrary to all similar experience for three or\n     more people to forget the place where they have buried their\n     dearest loved one within less than three days.  Even if the women\n     did miss the tomb, when Peter and John came, did they too go to\n     the wrong tomb?\n\n          Third, were the soldiers *guarding* the wrong tomb?\n\n          There is, of course, a record of an attempt to escape the\n     evidence of the empty tomb in the New Testament itself.\n\n                  Now when they were going, behold, some\n               of the watch came into the city and showed\n               unto the chief priests all the things that\n               were done.  And when they were assembled\n               with the leaders and had taken counsel, they\n               gave large money unto the soldiers, Saying,\n               Say ye, His disciples came by night, and stole\n               Him away while we slept.  And if this come to\n               the governor's ears, we will persuade him, and\n               secure you.  So they took the money, and did\n               as they were taught:  and this saying is com-\n               monly reported among the Jews until this day\n               (Matthew 28:11-15).\n\n          This is a good illustration of many later attempts to escape the\n     fact that the tomb was empty.\n\n          You will notice at once that the chief priests and the elders never\n     questioned but that the tomb *was* empty.  They never even went out to\n     see if what the guards had reported was true--they *knew* it was true.\n\n          Another fact about this story makes it ridiculous to maintain that\n     the tomb was empty--the soldiers were told to say that Jesus' disciples\n     came and stole the body away *while they* (the soldiers) *were asleep!*\n\n          How could they know what was going on while they were asleep?\n     Obviously, such testimony would be valueless in any court.\n\n          Even aside from the shallowness and sordidness that make us reject\n     the explanation, the very character and the later history of the\n     disciples compel us to believe they did not steal and secretly carry away\n     the body of Jesus.\n\n          First, as Professor Heffern points out, the leaders of Judaism in\n     Jerusalem, who had put the Lord Jesus to death, had nothing to offer to\n     contradict these disciples as they continued to preach Jesus and His\n     resurrection--because all Jerusalem knew the tomb was empty.  If there\n     had been trickery here, sooner or later it would have been suspected,\n     then proved.\n\n          Second, surely *one* of the disciples, even *most* of them, would\n     have confessed the fraud under the terrific persecution they underwent.\n     It may be possible to live a lie, but men seldom die for a lie--and most\n     of these men did.\n\n          The result ultimately would have been that the message that Christ\n     had risen would have suffered the fate of all such unfounded stories--it\n     would have lost it *power.*  Instead, this truth swept the world, closed\n     pagan temples, won millions of disciples, brought hope to a despairing\n     humanity, was the very foundation truth of the early church, and is today\n     as believable and as freshly glorious as ever.\n\n          But not only did Jesus come alive again, He did not disappear to\n     leave the disciples speculating through all the subsequent days as to\n     what had happened to Him.\n\n          Instead, He appeared to them--literally, visibly, frequently.\n\n          He appeared to the women at the tomb on Resurrection morning\n     (Matthew 28:1-10); later that day to Mary Magdalene alone (John 20:11-\n     18); and to Simon Peter, also alone (Luke 24:34).  In the afternoon He\n     walked with two of His followers toward Emmaus (Luke 24:13-35); and that\n     night He appeared to ten of the apostles gathered together in an upper\n     room at Jerusalem (Mark 16:14-16; Luke 24:36-40; etc.).\n\n          A week later He appeared to all eleven of the apostles, probably at\n     the same place (John 20:26-28).  Once He was seen by above 500 brethren\n     on a mountain in Galilee (I Corinthians 15:6); and finally to the\n     apostles just before His ascension (Mark 16:19; Luke 24:50-52; Acts 1:3-\n     8).\n\n          As with the fact of the empty tomb, so in regard to these histor-\n     ically recorded appearances, all kinds of theories have been proposed\n     attempting to deny their literalness.  But these theories are\n     unreasonable, without supporting evidence.  None has ever won the\n     unanimous approval of those who refuse to believe in the reality of the\n     appearances.\n\n          Moreover, while it is true we are living in an age when may of our\n     leading scientists and agnostics and many of our philosophers are\n     antisuperanaturalistic, let us not forget that some of the greatest\n     thinkers of the ages have firmly believed in this great miracle.\n     Increase Mather, president of Harvard; Timothy Dwight, president of Yale;\n     Nathan Lord, president of Dartmouth; Edward Hitchcock, president of\n     Amherst; Mark Hopkins, president of Williams; John Witherspoon, president\n     of Princeton--these men and countless others have believed it.\n\n          But suppose Christ *did* rise from the dead, what of it?  What has\n     it to do with *my* life?  What has it to do with *your* life?  Just this:\n     it seals with certitude the teachings of Christ.\n\n          Jesus taught many great truths--especially many about Himself.  He\n     claimed to have come down *from* God.\n\n          He said He was the way *to* God.\n\n          He said He was the Son of God, who alone knew God perfectly.\n\n          He said that whoever believed on Him had eternal life, and no one\n     else had it.\n\n          He said that whatever we ask God in His name, He would grant it to\n     us.\n\n          Thus when He did rise from the grave on the third day, He revealed\n     that in these amazing, unparalleled predictions, *He spoke the truth!*\n\n          Do you know any reason, *any good reason,* why we should not believe\n     that His words are all true?\n\n          The point is, does not the truth of the Resurrection convince us\n     that He is none other than the One He claimed to be--the Son of God?\n\n          And then, of course, the fact that Christ rose from the dead\n     testifies that He has broken the power of death, and that He will some\n     day raise us also up from the grave, as He promised.\n\n          In other words, if this Person, Jesus Christ, the Son of God, in all\n     this, He should be the cornerstone of the foundation of your life.  For\n     He said a life built on Him would know forgiveness of sins, His compan-\n     ionship and help, a joy that no circumstances can ever take away, and a\n     hope that shineth more and more unto a perfect day.\n\n          Those who have tried it down through the ages--*and there have been\n     many*--have given their testimony.  And we today who believe also know.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9476, "properties": {"category": "sci.electronics", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Public-domain circuits in commercial applications\nOrganization: U of Toronto Zoology\nLines: 31\n\nIn article <1993Apr13.164924.2606@wuecl.wustl.edu> dp@cec1.wustl.edu (David Prutchi) writes:\n>Can circuits found in electronics magazines (with no patent disclaimer)\n>be used legally as subcircuits of a commercial unit ?\n\nThere are two issues here:  copyright and patent.\n\nThe magazine article's contents are copyrighted, and may not be reproduced,\ntranslated, etc., without the copyright holder's permission.  However, this\ndoes not cover the *ideas* expressed, only the form of expression.  Copying\ntheir circuit diagram or PC-board pattern is copyright infringement.  But\nit's unlikely that they could stretch copyright far enough to claim that\nthe circuit design itself is copyrighted.  So long as you draw your own\ndiagrams and lay out your own boards, copyright shouldn't be an issue.\n\nPatents are different.  The author does *not* have to give you any warning\nthat the design is covered by patent (although it would be sensible for\nhim to do so).  In fact, it's possible that *he* was infringing on someone\nelse's patent without realizing it.  Ignorance of the patented status is\nnot a defence against infringement, although it might reduce the damages\na court would award.\n\nHowever... unless there was something seriously novel about the circuit,\nalmost certainly it is \"obvious to one skilled in the art\" and therefore\nunpatentable.  Routine engineering is not patentable; patents (in theory)\ncover only inventions, ideas that are genuinely new.\n\nCaution:  I am not a lawyer.  Consulting a professional would be wise if\nsignificant amounts of money are at stake.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9477, "properties": {"category": "comp.windows.x", "text": "From: I.A.Inman@newcastle.ac.uk (I.A. Inman)\nSubject: Re: Honors Degrees: Do they mean anything?\nOrganization: University of Newcastle upon Tyne, UK, NE1 7RU\nLines: 37\nNntp-Posting-Host: tuda\n\ntkld@cogsci.ed.ac.uk (Kevin Davidson) writes:\n\n\n>>   In my opinion, a programming degree is still worth having.\n\n> Yes, but a CS degree is *not* a programming degree. Does anybody know of\n>a computing course where *programming* is taught ? Computer Science is\n>a branch of maths (or the course I did was).\n> I've also done a Software Engineering course - much more practical and likely\n>to be the sort of thing an employer really wants, rather than what they think\n>they want, but also did not teach programming. The ability to program was\n>an entry requirement.\n\nTry the 'M.Sc. Computing Science' course at the REAL Newcastle University.\nIt's a conversion course, but at least they teach REAL programming.\n\nIn the space of 9 months we were taught PASCAL, Simula, Prolog, Miranda.\nAlso, some basic low level stuff (68000) was covered as well.\n\nThey also did concurrent programming and operating systems, some software\nengineering, plus quite a few optional units, including database theory,\nand some stuff about comms.   \n\nThe PASCAL is to be replaced by C/C++ I think next year - I learn't this (and \nX Windows programming as well)\nanyway via a good selection of project over the final three months - depending\non your tastes, the selection of skills learn't can be quite wide reaching.\n\nThe one critiscism I would level at the course, which I would have thought\ninvaluable, is the lack of an option to do the project period in industry -\nthis would probably need a slightly longer project period (say six months), but\nwould enhance the prestige and usefulness of an already excellent and thorough\ncourse.\n\nYes, I know this sounds like a plug for the course, why not!\n\n\t\t\t\t\t\t\t\tMackem Ian.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9478, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rnichols@cbnewsg.cb.att.com (robert.k.nichols)\nSubject: Re: TrueType fonts that display but do not print.\nSummary: Adjust OutlineThreshold\nOrganization: AT&T\nDistribution: na\nLines: 30\n\nIn article <1993Apr17.134725.15882@mintaka.lcs.mit.edu> avinash@silver.lcs.mit.edu (Avinash Chopde) writes:\n>I just installed a new TrueType font under MS-Windows 3.1\n>but though all the applications display the font correctly on the\n>screen, quite a few of them fail to print out the document correctly\n>(on a LaserJet 4 - non-PostScript printer).\n...\n>But when I use the Windows accessory Write, the printer prints square\n>boxes in place of the characters of the new font. Yet, Write does\n>display the font correctly on the screen.\n\nThis is a common problem with highly complex TrueType fonts.  Microsoft\nadmits to a problem with older versions of the PostScript printer driver,\nbut I've found it to be pretty generic.\n\nYou can get around the problem by adjusting the parameter OutlineThreshold\nin the [TrueType] section of WIN.INI.  This entry specifies the number of\npels-per-em at which Windows will render TrueType fonts as outline fonts\ninstead of as bitmap fonts.  The default is 256.  I've generally been able\nto get fonts to work by setting OutlineThreshold=160.  Depending on your\nprinter resolution and the point size you are using, you may need a\ndifferent value.\n\nThe Windows Resource Kit warns against going above 300.  Presumably, that\nmight cause fonts to print as square boxes or something.  :-|  (I'm not\nsmiling.)\n\n--\nBob Nichols\nAT&T Bell Laboratories\nrnichols@ihlpm.ih.att.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9479, "properties": {"category": "rec.motorcycles", "text": "From: essbaum@rchland.vnet.ibm.com (Alexander Essbaum)\nSubject: header paint\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: relva.rchland.ibm.com\nOrganization: IBM Rochester\nLines: 8\n\nit seems the 200 miles of trailering in the rain has rusted my bike's headers.\nthe metal underneath is solid, but i need to sand off the rust coating and\nrepaint the pipes black.  any recommendations for paint and application\nof said paint?\n\nthanks!\n\naxel\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9480, "properties": {"category": "sci.med", "text": "From: ffujita@s.psych.uiuc.edu (Frank Fujita)\nSubject: Re: \"Choleric\" and The Great NT/NF Semantic War.\nOrganization: University of Illinois at Urbana\nLines: 6\n\nAlso remember that most people map the\nsanguine/choleric/melencholic/phlegmatic division onto the extraversion\nand neuroticism dimensions (Like Eysenck) and that the MBTI does not\ndeal with neuroticism (Costa & McCrae).\n\nFrank Fujita\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9481, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: am37@ellis.uchicago.edu (Drewster)\nSubject: Re: Utility for updating Win.ini and system.ini\nReply-To: am37@midway.uchicago.edu\nOrganization: University of Chicago Computing Organizations\nLines: 16\n\nIn article <1993Apr20.085638.29338@news.uit.no> sp@odin.NoSubdomain.NoDomain (Svein Pedersen) writes:\n>I nead a utility for updating (deleting, adding, changing) *.ini files for Windows. \n>\n>Do I find it on any FTP host?\n>\n>Svein\n>\n\nUnless I am completely misunderstanding you, try using either Notepad or\nsysedit.exe (found in your system subdirectory) to edit you .ini files.\n\nThe sysedit.exe program is cool because it automatically opens you win.ini,\nsystem.ini, autoexec.bat and config.sys files to be edited.\n\nDrewster (am37@kimbark.uchicago.edu)\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.447+0000", "event": "documents", "entityId": 9482, "properties": {"category": "rec.sport.baseball", "text": "From: kshus@schunix.uucp (Christopher Shustakg)\nSubject: Where can I find baseball statistics ??\nOrganization: SCHUNIX Public Access Unix for Worcester County, MA, USA\nLines: 7\n\nI am interested in uncovering statistics on Boston Red Sox players from\nMarch 1992 - present.  I want to look at changes in batting average, hits,\nmulti-hit games, runs, stolen bases, and on base % during\nevery game.  Where can\nI find this information?  Do any sports magazines log this info or do I\nhave to go directly to the ball club?\nThanks for the info.  Kip\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9483, "properties": {"category": "sci.crypt", "text": "From: Jim-Miller@suite.com\nSubject: Certifying Authority question answered.\nOrganization: Suite Software\nLines: 12\nReply-To: Jim-Miller@suite.com\nNNTP-Posting-Host: nimrod.suite.com\n\n>>If you have access to FTP, try FTPing to rsa.com, login as anonymous.\n>>There are several documents there, including a \"frequently asked questions\n>>about today's cryptography\" document.  It has FAQ in its name.\n>>I believe this document explains the idea behind the certifying authorities.\n>>\n>>Good luck\n>>\n>>--John Kelsey, c445585@mizzou1.missouri.edu\n\nThanks.  I've ftp'ed the FAQ file and it is just what I was looking for.\n\nJim-Miller@suite.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9484, "properties": {"category": "rec.motorcycles", "text": "From: ranck@joesbar.cc.vt.edu (Wm. L. Ranck)\nSubject: Re: extraordinary footpeg engineering\nOrganization: Virginia Tech, Blacksburg, Virginia\nLines: 26\nNNTP-Posting-Host: joesbar.cc.vt.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nexb0405@csdvax.csd.unsw.edu.au wrote:\n: Okay DoD'ers, here's a goddamn mystery for ya !\n\nOh goody!  I love a puzzle.  Watson!  The games afoot!\n\n: Today I was turning a 90 degree corner just like on any other day, but there\n: was a slight difference-  a rough spot right in my path caused the suspension\n: to compress in mid corner and some part of the bike hit the ground with a very\n: tangible \"thunk\".  I pulled over at first opportunity to sus out the damage. \n\n<stuff deleted>\n\n: Okay all you engineering types, how the f**k do you explain this ?  How can you\n: rip a tightly fitting steel thread out of a threaded hole (in alloy) without\n: damaging the thread in the hole ?  Is this some sort of hi-tech design thingo\n\nLet me guess.  You were making a left turn, correct?  The edge of the stud\ncontacting the road caused it to turn and unthread itself.  If you had \nbeen making a right turn it would have tightened the stud. \n\n\n--\n*******************************************************************************\n* Bill Ranck             (703) 231-9503                     Bill.Ranck@vt.edu *\n* Computing Center, Virginia Polytchnic Inst. & State Univ., Blacksburg, Va.  *\n*******************************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9485, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kelleyb@austin.ibm.com (Kelley Boylan)\nSubject: Re: IIsi at 33MHz success story\nOriginator: kelleyb@kelleyb.austin.ibm.com\nDistribution: usa\nReply-To: kelleyb@austin.ibm.com\nOrganization: IBM Austin, PowerPC\nLines: 17\n\n\n> Howdy folks.  Back in September or October '92 I posted instructions\n> on how to upgrade the IIsi to 25mhz by doin' a little solderin'.\n> People bolder than me have reported that they've done the same\n> procedure, but put in a 66mhz oscillator instead of 50.  (Thus running\n> the cpu at 33mhz instead of 25.)  So I tried it and I'll be darned if\n> it doesn't work.\n\nHas anyone tried or does anyone know if this procedure will work on\nan SE/30?  Mine's old, slow, and in need of either death or power.\n\n-Kelley-\n-- \n---------------------------------------------------------\nThomas Kelley Boylan, PowerPC, IBM Austin, (512) 838-1869 \n---------------------------------------------------------\n                kelleyb@austin.ibm.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9486, "properties": {"category": "soc.religion.christian", "text": "From: gt7122b@prism.gatech.edu (boundary, the catechist)\nSubject: Re: Assurance of Hell\nOrganization: Georgia Institute of Technology\nLines: 13\n\nIn article <Apr.21.03.26.39.1993.1370@geneva.rutgers.edu> lfoard@hopper.virginia.edu (Lawrence C. Foard) writes:\n\n>A God who must motivate through fear is not a God worthy of worship.\n>If the God Jesus spoke of did indeed exist he would not need hell to\n\nThe reason for the existence of hell is justice.  Fear is only an effect\nof the reality of hell.\n\n-- \nboundary, the catechist \n\nno teneis que pensar que yo haya venido a traer la paz a la tierra; no he\nvenido a traer la paz, sino la guerra (Mateo 10:34, Vulgata Latina) \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9487, "properties": {"category": "comp.graphics", "text": "From: dkennett@fraser.sfu.ca (Daniel Kennett)\nSubject: [POV] Having trouble bump mapping a gif to a sphere\nSummary: Having trouble bump mapping a gif to a spher in POVray\nKeywords: bump map\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 44\n\n\nHello,\n  I've been trying to bump map a gif onto a sphere for a while and I\ncan't seem to get it to work.  Image mapping works, but not bump\nmapping.  Here's a simple file I was working with, could some kind\nsoul tell me whats wrong with this.....\n\n#include \"colors.inc\"\n#include \"shapes.inc\"\n#include \"textures.inc\"\n \ncamera {\n  location  <0 1 -3>\n  direction <0 0 1.5>\n  up        <0 1 0>\n  right     <1.33 0 0>\n  look_at   <0 1 2>\n}\n \nobject { light_source { <2 4 -3> color White }\n       }\n \nobject {\n  sphere { <0 1 2> 1 }\n   texture {\n     bump_map { 1 <0 1 2> gif \"surf.gif\"}\n   }\n}\n\nNOTE: surf.gif is a plasma fractal from Fractint that is using the\nlandscape palette map.\n\n  \n\tThanks in advance\n\t   -Daniel-\n\n*======================================================================* \n| Daniel Kennett\t \t\t                               |\n| dkennett@sfu.ca          \t\t   \t\t\t       |\n| \"Our minds are finite, and yet even in those circumstances of        |\n|  finitude, we are surrounded by possibilities that are infinite, and |\n|  the purpose of human life is to grasp as much as we can out of that |\n|  infinitude.\" - Alfred North Whitehead                               |  \n*======================================================================*\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9488, "properties": {"category": "misc.forsale", "text": "From: kimd@rs6401.ecs.rpi.edu (Daniel Chungwan Kim)\nSubject: WANTED: Super 8mm Projector with SOUNDS\nKeywords: wanted\nNntp-Posting-Host: rs6401.ecs.rpi.edu\nLines: 11\n\n\n\n\tI am looking for Super 8mm Projector with SOUNDS.\nIf anybody out there has one for sale, semd email with \nthe name of brand, condition of projector, and price for\nsale to kimd@rpi.edu\n(IT MUST HAVE SOUND CAPABILITY)\n\ndanny\nkimd@rpi.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9489, "properties": {"category": "rec.motorcycles", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: First Bike?? and Wheelies\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 24\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, jbc9+@andrew.cmu.edu (James Leo Belliveau) says:\n\n> Anyone, \n>\n>    I am a serious motorcycle enthusiast without a motorcycle, and to\n>put it bluntly, it sucks.  I really would like some advice on what would\n>be a good starter bike for me.  I do know one thing however, I need to\n>make my first bike a good one, because buying a second any time soon is\n>out of the question.  I am specifically interested in racing bikes, (CBR\n>600 F2, GSX-R 750).  I know that this may sound kind of crazy\n>considering that I've never had a bike before, but I am responsible, a\n>fast learner, and in love.  Please give me any advice that you think\n>would help me in my search, including places to look or even specific\n>bikes that you want to sell me.\n>\n>    Thanks  :-)\n\nThe answer is obvious: ZX-11 D.\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9490, "properties": {"category": "soc.religion.christian", "text": "From: whheydt@pbhya.pacbell.com (Wilson Heydt)\nSubject: Re: Ancient Books\nOrganization: Pacific * Bell, San Ramon, CA\nLines: 21\n\nIn article <Apr.9.01.11.35.1993.16957@athos.rutgers.edu>, cobb@alexia.lis.uiuc.edu (Mike Cobb) writes:\n> But, since the manuscripts are so close to the actual event, especially as \n> compared with ancient \"non-Christian\" history, could it help show that we have\n> accurate copies of the original texts?  \n\nThat's a very weak argument--due the lack (with regard to critical\nevents) of independent supporting texts.\n\nAs for the dating of the oldest extant texts of the NT....  How would\nyou feel about the US Civil War in a couple of thousand years if the\nonly extant text was written about *now*?  Now adjust for a largely\nilliterate population, and one in which every copy of a manuscript is\ndone by hand....\n\n\t--Hal\n\n-- \nHal Heydt                    |    \nAnalyst, Pacific*Bell        |  If you think the system is working,\n510-823-5447                 |  Ask someone who's waiting for a prompt.\nwhheydt@pbhya.PacBell.COM    |    \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9491, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Clipper considered harmful\nLines: 12\n\n\tFrom: pmetzger@snark.shearson.com (Perry E. Metzger)\n\n\tYou obviously haven't read the information about the system. The chips\n\tput out serial number infomation into the cypher stream to allow\n\tthemselves to be identified. The system does not rely on registering\n\tpeople as owning particular phone units.\n\nAnd probably as a back door to allow re-generation of the secret key.\n\nHave we determined yet that S1 and S2 don't ever change?\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9492, "properties": {"category": "rec.motorcycles", "text": "From: bgardner@pebbles.es.com (Blaine Gardner)\nSubject: Re: GGRRRrrr!! Cages double-parking motorcycles pisses me off!\nNntp-Posting-Host: 130.187.85.70\nOrganization: Evans & Sutherland Computer Corporation\nLines: 10\n\nIn article <34211@castle.ed.ac.uk> wbg@festival.ed.ac.uk (W Geake) writes:\n>\n>The Banana one isn't, IMHO.  Ultra sticky labels printed with your\n>favourite curse are good - even our local hospitals use them instead of\n>wheel clamps, putting one (about A5 size) on each window of the cage.\n\nSo what's your local hospital's favorite curse?\n-- \nBlaine Gardner @ Evans & Sutherland\nbgardner@dsd.es.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9493, "properties": {"category": "alt.atheism", "text": "From: jen187@its.CSIRO.AU (Graham Jenkins +61 6 276 6812)\nSubject: Re: islamic authority over women\nOrganization: CSIRO ITS\nLines: 41\n\n\nIn article <1993Apr5.023044.19580@ultb.isc.rit.edu>, snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n\n\n|> \n|> That's your mistake.  It would be better for the children if the mother\n|> raised the child.\n|> \n|> One thing that relates is among Navy men that get tatoos that say \"Mom\",\n|> because of the love of their mom.  It makes for more virile men.\n|> Compare that with how homos are raised.  Do a study and you will get my\n|> point.\n|> \n|> But in no way do you have a claim that it would be better if the men\n|> stayed home and raised the child.  That is something false made up by\n|> feminists that seek a status above men.  You do not recognize the fact\n|> that men and women have natural differences.  Not just physically, but\n|> mentally also.\n|> \n\nBobby, there's a question here that I just HAVE to ask. If all\nof your posts aren't some sort of extended, elaborate hoax, why\nare you trying so hard to convince the entire civilised world\nthat you're feeble minded? You have a talent for saying the most\nabsurd things. Here's a little sign for you, print it, cut it out\nand put it on top of your computer/terminal.\n\n              ENGAGE BRAIN PRIOR TO OPERATING KEYBOARD\n\n\n(Having said all that, I must admit we all get a laugh from\nyour stuff.)\n\n\n\n\n-- \n\n|  Graham Jenkins          |  graham.jenkins@its.csiro.au           | \n|  CSIRO                   |  (Commonwealth Scientific & Industrial | \n|  Canberra,  AUSTRALIA    |  Research Organisation)                |\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9494, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dewinter@prl.philips.nl (Rob de Winter)\nSubject: WANTED: Symantec address\nOriginator: dewinter@prl.philips.nl\nOrganization: Philips Research Laboratories, Eindhoven, The Netherlands\nLines: 5\n\n-- \n*** Nothing beats skiing, if you want to have real fun during holidays. ***\n***       Rob de Winter  Philips Research, IST/IT, Building WL-1        ***\n***       P.O. Box 80000, 5600 JA  Eindhoven. The Netherlands           ***\n***       Tel: +31 40 743621  E-mail: dewinter@prl.philips.nl           ***\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9495, "properties": {"category": "talk.religion.misc", "text": "From: rich.bellacera@amail.amdahl.com\nSubject: Part 1 and part 2  (re: Homosexuality)\nLines: 114\nReturn-Path: <amail.amdahl.com!rich.bellacera@juts.ccc.amdahl.com>\n\nTony-\n\nI read your post, it was nothing new, I had seen much the same in other\ntypical\"Christian\" anti-gay sentimental literature.  Gay people are and will\ncon- tinue to be persecuted as long as such propaganda petpetuates.  You may\nbe unaware of all the statistica \"findings\" concerning African-Americans that\nhave been published and used by various groups to re-enforce their own bias\nagainst African-Americans.  We usually think of the KKK in these instances,\nbut there are many other groups.  Of course, the vast majority of the public\nscoff at such findings and documents today, but that was not always the case.\nFortunately African-Americans had \"whites\" who supported their 'cause' and\npublic sentiment was eventually (if not entirely) turned around.  There was\neven a Civil War, and anti-negro sentiment increased.  In fact, until laws\nwere put in place to protect the inalienable rights of Blacks it was pretty\nmuch legal to discriminate against them.\n\nI know many gays and I will NOT turn my back on them or their right to be free\nform discrimination.  You may think that I have been deceived or something,\nthat is your perogative.  My church, Christian Church (Disciples of Christ)\nopenly affirms the rights of oppressed people of all segments of society,\nincluding gays.  We believe the Gospel message of preaching to all creation\nand making disciples.  We believe in the Lord's great commandment to Love,\nand we beleive in standing up for the oppressed, even if it is not popular\nto do so.  I really like my church for last reason the most.  I can find a\nchurch almost anywhere in the valley that stands for the Gospel and believes\nin the commandment of Love (though I'm hard-pressed to find many who actually\nsho Love), but not many are willing to champion the oppressed, especially\nwithin their own community.  I may have lost face with the greater Christian\ncommunity for the unpopularity of my beliefs, but so did the abolitionists\nagainst the oppression of African-Americans.  Many were even killed and\ntreated as runaway slaves for being \"nigger-lovers\" and such.  I guess I've\ndecided the challenge is worth it.\n\nIn my talks with gay men and women I have heard tragic story after tragic\nstory centering around failed marriages, wives and husbands who are straight\nwho have been hurt in the process, etc.  Funny thing is, I don't know of one\ncase where the parents, ex-wives, or even children have continued to reject\ntheir gay family member (son, daughter, ex-husband, father, etc.) after they\nbegan to take part in some form of support group, like PFLAG.\n\nI'm apalled by the legislation which passed in Colorado, and am equally out0\nraged that such slimey people as Louis Sheldon (from the Tradition Values\nCoalition) have been actively working in the Christian underground to garner\nsupport within several (8 I believe) states this coming November for more\noppressive legisation against gays.\n\nPerhaps you don't get it, and maybe you never will.  Many didn't get it in the\nMiddle Ages and the proclaimed God's will be done as they massacred thousands\nin witch hunts and inquisitions.\n\nThe message that comes through, loud and clear, by proponents against gay\nrights and against gays in general, is that there is a strong dislike, even\nhatred for gays, whether you want to call it such or not (it doesn't change\nthe results).  The major flaw in all this posturing is that in the end, the\nfinal effect of posts like that of yours and Mr. Hudson is that YOU have a\n\"conditional\" love for gays.  Condition:  Change and we'll love you. This is\nsure strange coming from a group who claim that God has an \"unconditional\"\nlove, one that calls people \"just as they are.\"  Sure there are things that\nwill 'naturally' change, and habits (like alcoholism, wife beating, etc.) that\nneed to be changed through some sort of therapy.  But then there are things\nlike left-handedness, etc. that no amount of beating it out of people, is\ngoing to result in anything more than an outward conforminty to \"other\npeople's expectations.\" In the process this coerced conformity causes many\npeople a great deal of harm, especially when it is caused by people who have\nnothing more to gain from it that to become even more puffed up about their\nown sense of pseuper-spirituality.\n\nThis is sad, but I thoroughly believe that one day it will change.  It may be\nunpopular to cry for justice and equality when the basis has to do with\nsomething very personal like 'sexuality' (a taboo subject even today), but I\nfirmly believe in the rights of individuals to be free from impose regulation\non thier bedrooms.  It's funny that most straight people have successfully\nremoved restrictive and oppressive legislation against invasive legislation,\nbut we like to maintain this little chestnut of repression...as though it\nhelps us maintain a sense of superiority over at least one segment of society.\nGay people are not criminals.\n\nAnother interesting thing happened recently.  A very prominent charismatic\nchurch in the Silicon Valley (here) had two of it's pastors arrested for self-\nadmitted charges of pederasty (men having sex with boys).  This had apparently\nbeen going on for some time (a couple years?), but since the charges were\nvoluntary, and the church worked closely with the police, so I imagine that\nwas how they managed to downplay it in the media.  How could such a thing\nhappen when the church, itself, has an ex-gay ministry?  One of my friends\nrecently told me he was \"approached\" by someone who is going through the\nreparitive therapy there, and he was thoroughly convinced that the request for\ndinner was not an invitation to attend the ministry.\n\nThese are difficult times we live in, but providing hostile environments and\ncreating and perpetuating an atmosphere that breed hate and violence is not\nthe call of the Christian community.  The results of the passing amendment in\nColorado has created an organization who's posters are appearing all over\nColorado called \"S.T.R.A.I.G.H.T.\" (I forget the whole definition off hand,\nbut the last part was Against Immoral Gross Homosexual Trash) and their motto\nis \"Working for a fag-free America\" with an implicit advocation for violence.\n\nThis is sick, and it seems to be what you and Mr. Hudson, and others are\nembracing.\n\nWe Christians have a LOOOOOOOOOONG tradition of coersion and oppression\ntowards those we feel don't 'measure up', and constant beratement from\norganizations like The Christian Research Institute, while they do have a good\npurpose also, their major work seems to be finding new and better ways of\nexcluding people.\n\nThe Gospel I believe is not so negative, rather it seeks ways to \"include\"\npeople.  I have several of Dr. Martin's books and find them quite helpful,\nespecially concerning 'cults.' But it seems that CRI, has become a cult unto\nitself.  Why don't we just stick to the positive and find ways to bring people\nto Jesus istead of taking bullwhips and driving them away?\n\nWhatever\n\nRich :-(\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9496, "properties": {"category": "sci.med", "text": "From: sdr@llnl.gov (Dakota)\nSubject: Re: HELP for Kidney Stones ..............\nOrganization: Lawrence Livermore National Laboratory, NCD\nLines: 30\nNNTP-Posting-Host: eet1477-10780-t1477r1104.llnl.gov\n\nIn article <1993Apr21.143910.5826@wvnvms.wvnet.edu> \npk115050@wvnvms.wvnet.edu writes:\n> My girlfriend is in pain from kidney stones. She says that because she \nhas no\n> medical insurance, she cannot get them removed.\n> \n> My question: Is there any way she can treat them herself, or at least \nmitigate\n> their effects? Any help is deeply appreciated. (Advice, referral to \nliterature,\n> etc...)\n> \n> Thank you,\n> \n> Dave Carvell\n> pk115050@wvnvms.wvnet.edu\n\nFirst, let me offer you my condolences.  I've had kidney stones 4 times \nand I know the pain she is going through.  First, it is best that she see \na doctor.  However, every time I had kidney stones, I saw my doctor and the\nonly thing they did was to prescribe some pain killers and medication for a\nurinary tract infection.  The pain killers did nothing for me...kidney stones\nare extremely painful.  My stones were judged passable, so we just waited it\nout.  However the last one took 10 days to pass...not fun.  Anyway, if she\nabsolutely won't see a doctor, I suggest drinking lots of fluids and perhaps\nan over the counter sleeping pill.  But, I do highly suggest seeing a doctor.\nKidney stones are not something to fool around with.  She should be x-rayed \nto make sure there is not a serious problem.\n\nSteve\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9497, "properties": {"category": "sci.space", "text": "From: pgf@srl02.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: Vandalizing the sky.\nOrganization: Univ. of Southwestern Louisiana\nLines: 16\n\nJeff.Cook@FtCollinsCO.NCR.COM (Jeff Cook) writes:\n...\n>people in primitive tribes out in the middle of nowhere as they look up\n>and see a can of Budweiser flying across the sky... :-D\n\nSeen that movie already. Or one just like it.\nCome to think of it, they might send someone on\na quest to get rid of the dang thing...\n\n>Jeff Cook                                  Jeff.Cook@FtCollinsCO.NCR.com\n\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9498, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: some thoughts.\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 12\n\nJames Felder (spbach@lerc.nasa.gov) wrote:\n\n: Logic alert -  argument from incredulity.  Just because it is hard for you \n: to believe this doesn't mean that it isn't true.  Liars can be very pursuasive\n: just look at Koresh that you yourself cite.\n\nThis is whole basis of a great many here rejecting the Christian\naccount of things. In the words of St. Madalyn Murrey-O'Hair, \"Face it\nfolks, it's just silly ...\". Why is it okay to disbelieve because of\nyour incredulity if you admit that it's a fallacy?\n\nBill\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9499, "properties": {"category": "rec.motorcycles", "text": "From: rdc8@cunixf.cc.columbia.edu (Robert D Castro)\nSubject: Flashing anyone?\nKeywords: flashing\nNntp-Posting-Host: cunixf.cc.columbia.edu\nOrganization: Columbia University\nLines: 23\n\nHello all,\n\nOn my bike I have hazard lights (both front and back turn signals\nflash).  Since I live in NJ and commute to NYC there are a number of\ntolls one must pay on route.  Just before arriving at a toll booth I\nswitch the hazards on.  I do thisto warn other motorists that I will\nbe taking longer than the 2 1/2 seconds to make the transaction.\nTaking gloves off, getting money out of coin changer/pocket, making\ntransaction, putting gloves back on takes a little more time than the\naverage cager takes to make the same transaction of paying the toll.\nI also notice that when I do this cagers tend to get the message and\nusually go to another booth.\n\nMy question, is this a good/bad thing to do?\n\nAny others tend to do the same?\n\nJust curious\n\no&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>  o&o>\n    Rob Castro     | email - rdc8@cunixf.cc.columbia.edu | Live for today\n    1983 KZ550LTD  | phone - (212) 854-7617              | For today you live!\n    DoD# NYC-1     | New York, New York, USA             |        RC (tm)\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9500, "properties": {"category": "soc.religion.christian", "text": "From: jblanken@ccat.sas.upenn.edu (James R. Blankenship)\nSubject: Re: When are two people married in God's e\nOrganization: School of Arts and Sciences, UPENN\nLines: 13\n\nThe only reason for the death penalty is revenge?? If you are going to\ntry to refute a position, try to refute the whole position or acknosledge\nthat you are only speaking to small piece of the problem. Broad sweeping\n\"the only reason, \" etc on as tough nut to crack as the death penalty\nreallly doesn't help much.\n\nEvery year the FBI releases crime stats showing an overwhelming amount of\ncrime is committed by repeat offenders. People are killed by folks who\nhave killed (who knows how many times) before. How aobut folks who are for\nthe death penalty, not for revenge, but to cut down on recidivism?\n\n\nJim\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9501, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wong@ws13.webo.dg.com (E. Wong)\nSubject: Help with 24bit mode for ATI\nOrganization: Data General Corporation, Westboro, MA\nLines: 16\n\nI finally got the vesa driver for my ATI graphics ultra plus (2M).  However,\nwhen I tried to use this to view under 24bit mode, I get lines on the picture.\nWith 16bit or below, the picture is fine.  Can someone tell me what was wrong?\nIs it the card, or is it the software?\n--\nThanks\n8)\n    _/_/_/_/  _/_/_/    _/    _/    _/_/    _/_/_/    _/_/_/  \n   _/\t     _/    _/  _/    _/  _/    _/  _/    _/  _/    _/ \n  _/_/_/_/  _/    _/  _/ _/ _/  _/_/_/_/  _/_/_/    _/    _/\n _/        _/    _/  _/ _/ _/  _/    _/  _/  _/    _/    _/ \n_/_/_/_/  _/_/_/      _/ _/   _/    _/  _/    _/  _/_/_/    \n                                                            \nuser's name:\tEdward Wong \t\t\t\t    \nInternet:     \twong@ws13.webo.dg.com\t\t \ntelephone:\t(508) 870-9352\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9502, "properties": {"category": "rec.sport.hockey", "text": "From: pkortela@snakemail.hut.fi (Petteri Kortelainen)\nSubject: expanding to Europe:Dusseldorf\nNntp-Posting-Host: lk-hp-17.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 31\n\nIn article <1993Apr13.091859.29570@abo.fi> MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF) writes:\n>I didn't say every team MUST have a number of local players. Rather, the\n>European teams should get the CHANCE to sign their top players before the rest\n>of the league comes in. I agree that birthplace isn't that important,\n>Dusseldorfer EG of the German league average close to 10,000 fans and they\n>don't have a single German-born forward! Lion Milan made the European Final\n>Four with fifteen Canadian-born players... But nationality is going to be an\n>issue in Sweden and Finland, I think. We really need an issue preventing\n>Lindros and Mario from ending up being drafted by a European team and vice\n>versa. Player trades are a different matter - any player can end up anywhere\n>after being drafted.\n\nDEG has many german-born forwards in the team. In fact the majority of players\nare german-born. 1992-93 DEG had 11150 average in 11800 spectator arena.\n\nMy Possible-NHL(European league)-site list:\nSwitzerland  : Berne, Zurich (Lugano and 1-2 others)\nGermany      : Dusseldorf, Cologne, Berlin, Munich (Mannheim, Rosenheim)\nSweden       : Stockholm, Gothenburg (Malmo, Gavle)\nFinland      : Helsinki (Turku, Tampere)\nItaly        : Milan\nFrance       : Paris (Chamonix, Ruoen?)\nNorway       : (Oslo)\nAustria      : (Vienna, Villach)\nChech        : (Prag)\nSlovakia     : (Bratislava)\nRussia       : (Moscow, St. Petersburg)\nGreat Britain: ?\nNetherlands  : ? \n\nPetteri Kortelainen\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9503, "properties": {"category": "comp.windows.x", "text": "From: mahan@TGV.COM (Patrick L. Mahan)\nSubject: Re: Tektronix\nOrganization: The Internet\nLines: 15\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: mike@hopper.virginia.edu, xpert@expo.lcs.mit.edu\n\n#\n# I remember seeing something in the X distribution mentioning support\n# for a Tektronix terminal in an X server.  Is this accurate? \n#\n\nXterm supports 401x emulation.\n\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9504, "properties": {"category": "comp.windows.x", "text": "From: buzz@bear.com (Buzz Moschetti)\nSubject: Re: XCopyPlane Question\nReply-To: buzz@bear.com (Buzz Moschetti)\nOrganization: Bear, Stearns & Co. - FAST\nLines: 16\nIn-reply-to: whaley@sigma.kpc.com's message of 15 Apr 93 18:39:31 GMT\n\nIn article <WHALEY.93Apr15103931@sigma.kpc.com> whaley@sigma.kpc.com (Ken Whaley) writes:\n>   Actually, I must also ask the FAQ's #1 most popular reason why graphics\n>   don't show up: do you wait for an expose event before drawing your\n>   rectangle?\n\nSuppose you have an idle app with a realized and mapped Window that contains\nXlib graphics.  A button widget, when pressed, will cause a new item\nto be drawn in the Window.  This action clearly should not call XCopyArea() \n(or equiv) directly; instead, it should register the existence of the new\nitem in a memory structure and let the expose event handler take care\nof rendering the image because at that time it is guaranteed that the\nWindow is mapped.\n\nThe problem, of course, is that no expose event is generated if the window\nis visible and mapped.  Do you know the best way to \"tickle\" a window so\nthat the expose event handler will be invoked to draw this new item?\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9505, "properties": {"category": "rec.sport.baseball", "text": "From: mlogan@thurman.prime.com (Max Logan x2313 5-1)\nSubject: Re: New Home for the Bosox!!!\nLines: 20\n\nMIF101@psuvm.psu.edu writes:\n> \n>    I heard about a month back that the Red Sox are getting a new dome stadium.\n> I have relatives that just moved up that way, and they said about the city\n> releasing the funds.  Can anybody verify this?\n> to a game\n> \n>                                               Bosox fan in Pa\n\nI have lived in the Boston area for 15 years now.  They have been talking\nabout a new Boston Garden (hockey/basketball) since I've lived here.  One\nday the \"last hurdle\" has been overcome, and the next day there's a new\nhurdle.  Fans have been grumbling about Foxboro Stadium (or whatever it's\ncalled this year) for nearly as long, but there are only preliminary\nproposals for a new stadium.  Local politics prevents anything from being\ndone in a timely fashion.  There will not be a new ballpark in my\nlifetime.\n\nMax Logan\nNashua NH\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.448+0000", "event": "documents", "entityId": 9506, "properties": {"category": "rec.sport.baseball", "text": "From: mcdowell@iies.ecn.purdue.edu (James M McDowell)\nSubject: Texas Ranger Ticket Info\nOrganization: Purdue University Engineering Computer Network\nLines: 4\n\nWould someone please give me the address for Texas Ranger\nticket orders. Thanks very much.\n\nJim\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9507, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Solar Sail Data\nArticle-I.D.: aurora.1993Apr17.042918.1\nOrganization: University of Alaska Fairbanks\nLines: 24\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <1993Apr15.051746.29848@news.duc.auburn.edu>, snydefj@eng.auburn.edu (Frank J. Snyder) writes:\n> \n> I am looking for any information concerning projects involving Solar\n>  Sails. I understand that the JPL did an extensive study on the subject\n>  back in the late 70's but I am having trouble gathering such information.\n> \n> Are there any groups out there currently involved in such a project ?\n> \n> \t\t\t\t\tFrank Snyder\n> \t\t\t\t\tAuburn University\n> \n> \t\t\t\t\tsnydefj@eng.auburn.edu\n\n\nI know someone had long talks about Solar Sails early this year and late last\nyear..Also about Solar Sailing. Not sure who captured it if possible..\n\nI think it was one of the regulars who had most or all the data?\n\nI think I started the latest round or the late last year round.. But the topic\nhas been around here, off and on for a year or two..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9508, "properties": {"category": "sci.crypt", "text": "From: ckincy@cs.umr.edu (Charles Kincy)\nSubject: Re: Pgp, PEM, and RFC's (Was: Cryptography Patents)\nNntp-Posting-Host: next4.cs.umr.edu\nOrganization: University of Missouri - Rolla, Rolla, MO\nLines: 19\n\nIn article <1993Apr16.001321.3692@natasha.portal.com> bob@natasha.portal.com (Bob Cain) writes:\n\n>: I hope my cynicism is misplaced here.  Go ahead...I'm not afraid to\n>: be wrong every once in a while.  But, I have an uneasy feeling that I\n>: am right.  :(\n>\n>It is and you are wrong yet you emotionally state a bunch of crap as fact\n>with a tiny disclaimer at the end.  Check your facts first and grow up.\n>Why is there such a strong correlation between interest in cryptography\n>and immaturity I wonder.\n\nOh, I see, flame someone, tell them that they are immature, tell them\nthey are wrong, and then don't offer any proof for your assertions.\n\nYou really *are* a putz.  Put up or shut up.\n\ncpk\n-- \nIt's been 80 days.  Do you know where your wallet is?\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9509, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Morality? (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 24\nNNTP-Posting-Host: punisher.caltech.edu\n\nlivesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n\n>I don't expect the lion to know, or not know anything of the kind.\n>In fact, I don't have any evidence that lions ever consider such \n>issues.\n>And that, of course, is why I don't think you can assign moral\n>significance to the instinctive behaviour of lions.\n\nWhat I've been saying is that moral behavior is likely the null behavior.\nThat is, it doesn't take much work to be moral, but it certainly does to\nbe immoral (in some cases).  Also, I've said that morality is a remnant\nof evolution.  Our moral system is based on concepts well practiced in\nthe animal kingdom.\n\n>>So you are basically saying that you think a \"moral\" is an undefinable\n>>term, and that \"moral systems\" don't exist?  If we can't agree on a\n>>definition of these terms, then how can we hope to discuss them?\n>No, it's perfectly clear that I am saying that I know what a moral\n>is in *my* system, but that I can't speak for other people.\n\nBut, this doesn't get us anywhere.  Your particular beliefs are irrelevant\nunless you can share them or discuss them...\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9510, "properties": {"category": "talk.religion.misc", "text": "From: decay@cbnewsj.cb.att.com (dean.kaflowitz)\nSubject: Re: Spreading Christianity (Re: Christian Extremist Kills Doctor)\nOrganization: AT&T\nDistribution: na\nLines: 40\n\nIn article <Yfk8p=q00WBM47T0sJ@andrew.cmu.edu>, \"David R. Sacco\" <dsav+@andrew.cmu.edu> writes:\n>    Not to be too snide about it, but I think this Christianity must\n>    be a very convenient religion, very maliable and suitable for\n>    any occassion since it seems one can take it any way one wants\n>    to go with it and follow whichever bits one pleases and\n>    reinterpret the bits that don't match with one's desires.  It\n>    is, in fact, so convenient that, were I capable of believing\n>    in a god, I might consider going for some brand of Christianity.\n>    The only difficulty left then, of course, is picking which sect\n>    to join.  There are just so many.\n> \n> Yes, Christianity is convenient.  Following the teachings of Jesus\n> Christ and the Ten Commandments is convenient.  Trying to love in a\n> hateful world is convenient.  Turning the other cheek is convenient.  So\n> convenient that it is burdensome at times.\n\nYour last remark is a contradiction, but I'll let that pass.\n\nI was addressing the notion of the Great Commission, which\nyou deleted in order to provide us with dull little homilies.\nThank you, Bing Crosby.  Now you go right on back to sleep\nand mommy and daddy will tuck you in later.\n\nOh, and how convenient his bible must have been to Michael\nGriffin, how convenient his Christianity.  \"Well, I'll just\nskip the bit about not murdering people and loving the sinner\nand hating the sin and all that other stuff for now and\nconcentrate on the part where it says that if someone is doing\nsomething wrong, you should shoot him in the back several times\nas he tries to hobble away on his crutches.\"\n\nI'll leave the \"convert or die\" program of the missionaries and\ntheir military escorts in the Americas for Nadja to explain as\nshe knows much more about it than I.\n\nMust be awfully convenient, by the way, to offer platitudes\nas you have done, David, rather than addressing the arguments.\n\nDean Kaflowitz\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9511, "properties": {"category": "sci.crypt", "text": "From: zrepachol@cc.curtin.edu.au (Paul Repacholi)\nSubject: Re: What is going on?...\nLines: 27\nOrganization: Curtin University of Technology\nDistribution: inet\n\nIn article <gthomas.735070935@sfu.ca>, gthomas@fraser.sfu.ca (Guy Thomas) writes:\n> zrepachol@cc.curtin.edu.au (Paul Repacholi) writes:\n> \n>>In article <1993Apr16.055100.1@cc.curtin.edu.au>, zrepachol@cc.curtin.edu.au (Paul Repacholi) writes:\n>>...\n>>> If you can't be bothered reading, get the video \"Manufacturing Consent\".\n>>> \n> \n>>In reply to mail queries; I don't know if a video is available yet. I asked\n>>about a month ao and was told RSN.\n> \n> Yes it is. From the National Film Board of Canada.\n\nAh, not in the USA. Thats a relief, thought 'reality' must be slipping for a\nsecond. :-)\n\nSt Noam was on the radio tonight, he has just published a new book \"501 years\".\nPublished by South End i guess. Could some bostonian confirm please?\n\nI would love to hear what he thinks of the Clipper scam.\n\n~Paul\n\nPS The first posting I saw I thought was a joke in *VERY* bad taste. My appologies\nto the person who broke the news.\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9512, "properties": {"category": "comp.sys.mac.hardware", "text": "From: brucet@extro.ucc.su.OZ.AU (Bruce Tulloch)\nSubject: Re: Duo 230 crashes aftersleep (looks like Apple bug!)\nNntp-Posting-Host: extro.ucc.su.oz.au\nOrganization: Sydney University Computing Service, Sydney, NSW, Australia\nLines: 47\n\nlreiter@jade.tufts.edu (Lowell B. Reiter) writes:\n\n>My Duo 230 crashe.\n\n>I close the lid.   It goesto sleeplikenormal.   Then I open it press a key.\n>The screen showsthis wied pattern.   You can berely make outthe menubar on top., although there are no words on the bar.  Anditfrezzes.   Why?\n\n>---Lowell\n>--\n>***********************************************************************\n>* Lowell Reiter\t\t\t  \"I need a Vacation... Now!!! \"      *\n>* Tufts University                                                    *\n>* Internet Account: lreiter@jade.tufts.edu                            *\n>***********************************************************************\n\nI have the same problem and was about to post this....\n\nHello duo owners (and Apple technical people :-)\n \nI have a new duo 230 which appears to have a problem waking up from\nsleep when running on battery power. When woken (usually for the second\ntime) after sleeping, the wake fails and the screen appears with a\ncorrupted image of broken horizontal lines and control can only be\nrecovered with control-command-poweron or the reset key at the back of\nthe machine. The problem occurs even when the system is stock standard\n(no extensions, no virtual memory, a fully charged new battery, system 7.1\netc). I have not had the problem when the machine is plugged in to AC.\nI've checked that the battery is properly seated (it appears to be fine).\n \nWhat's going on here ? Anyone else had this problem ? Is it software or\nhardware ? \n \nIf you have a duo 230 and a bit of time, try repeatedly sleeping and\nwaking the machine on battery power and let me know if you see the same\nbehaviour (and let Apple know too !).\n \nMany thanks to anyone who can clear this one up for me.\n \nBruce\n\n\n\n\n\n-- \n          bruce tulloch sydney australia - brucet@extro.ucc.su.oz.au\n***complex problems have straight forward, easy to understand wrong answers***\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9513, "properties": {"category": "comp.windows.x", "text": "From: agallagh@slate.mines.colorado.edu (GALLAGHER ANDREA J )\nSubject: Re: Forcing a window manager to accept specific coordinates for a window\nOrganization: Colorado School of Mines\nLines: 18\n\n\nIn article <C5r25y.HFz@cs.columbia.edu> Ethan Solomita writes:\n> \n> \tHi. I'm trying to figure out how to make a window manager\n> place the window where the create window command tells it,\n> regardless of what it may think is right. (my application has\n> reason to know better)\n> \n> \tI don't want to set the override-redirect because I do\n> want all the embellishments that the window manager gives, I just\n> want the wm to accept my choice of location.\n\n\twindow = XCreateWindow(...);\n\tXSetTransientForHint(display, window, window);\n\tXMapWindow(...);\n\nThis is probably cheating, and some window managers might STILL refuse to \ngive it a border and all that other stuff, but it usually works.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9514, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: tomh@metrics.com (Tom Haapanen)\nSubject: RFD: comp.os.ms-windows.nt.{misc,setup}\nOrganization: Software Metrics Inc.\nLines: 76\nNNTP-Posting-Host: rodan.uu.net\n\nThis is the official Request for Discussion (RFD) for the creation of two\nnew newsgroups for Microsoft Windows NT.  This is a second RFD, replacing\nthe one originally posted in January '93 (and never taken to a vote).  The\nproposed groups are described below:\n\nNAME: \t comp.os.ms-windows.nt.setup\nSTATUS:  Unmoderated.\nPURPOSE: Discussions about setting up and installing Windows NT, and about\n\t system and peripheral compatability issues for Windows NT.\n\nNAME:\t comp.os.ms-windows.nt.misc\nSTATUS:\t Unmoderated.\nPURPOSE: Miscellaneous non-programming discussions about using Windows NT,\n\t including issues such as security, networking features, console\n\t mode and Windows 3.1 (Win16) compatability.\n\nRATIONALE:\n\tMicrosoft NT is the newest member of the Microsoft Windows family\n\tof operating systems (or operating environments for those who wish\n\tto argue about the meaning of an \"OS\").  The family ranges from\n\tModular Windows through Windows 3.1 and Windows for Workgroups to\n\tWindows NT at the high end.  To date, Microsoft has shipped over\n\t50,000 beta copies and pre-release SDKs of Windows NT -- the\n\tactual release is slated for May/June '93.\n\n\tWhile Windows NT has an entirely new design internally, it shares\n\tan application programming interface with the other members of the\n\tWindows family; its Win32 API includes the Win16 API used in Win-\n\tdows 3.1, and the Win32s API subset (Win32 less threads, networking\n\tand security) can be used to create 32-bit applications for\n\tWindows 3.1.\n\n\tThe user interface is also practically identical to that of Windows\n\t3.1, with the addition of logins and a few other features.  It uses\n\tProgram Manager, File Manager and other applets, and generally pre-\n\tsents an identical appearance to the user.  Many of the announced\n\tWindows NT applications are ports of existing Windows 3.1 apps, and\n\tNT also runs existing 3.1 applications.\n\n\tThus, it appears logical that Windows NT should share the following\n\tgroups with the other members of the Windows family:\n\t\tcomp.os.ms-windows.apps\n\t\tcomp.os.ms-windows.programmer.tools\n\t\tcomp.os.ms-windows.programmer.misc\n\t\tcomp.os.ms-windows.programmer.win32\n\t\n\tThe following groups are also clearly applicable to Windows NT as\n\twell as Windows 3.1:\n\t\tcomp.os.ms-windows.announce\n\t\tcomp.os.ms-windows.advocacy\n\t\n\tIn conclusion, the only clear argument for the separation of the\n\tWindows 3.1 and Windows NT hierarchies is different internal\n\tstructures of Windows 3.1 and Windows NT.  And yet operating\n\tsystems such as OS/2, Macintosh OS, Xenix and Coherent all have\n\tundergone major rewrites without having been split into separate\n\tnewsgroup hierarchies.\n\n\tFurther, Windows 3.1 is due for a major rewrite itself in 1994 --\n\twhen the fully 32-bit, protected-mode and with-DOS-built-in next-\n\tgeneration Windows, \"Chicago\", debuts next year, surely it should\n\tremain in the same hierarchy.  And what, then, would be the jus-\n\ttification for separating Windows NT from other Windows versions?\n\n\nDISCUSSION PERIOD:\n\tThe discussion period will run from 27 April, 1992 to 18 May, 1993.  \n\nVOTING:\n\tThe CFV (Call for Votes) will be issued around 19 May, 1993, based on\n\tthe feedback received during the discussion period.  No votes will\n\tbe accepted prior to the CFV.\n-- \n[ /tom haapanen -- tomh@metrics.com -- software metrics inc -- waterloo, ont ]\n[       \"stick your index fingers into both corners of your mouth.  now pull ]\n[          up.  that's how the corrado makes you feel.\"  -- car, january '93 ]\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9515, "properties": {"category": "rec.sport.baseball", "text": "From: texdude@cs1.bradley.edu (Philip Allen)\nSubject: Ryan rumor...\nArticle-I.D.: cs1.texdude.734914692\nOrganization: Bradley University\nLines: 12\nNntp-Posting-Host: cs1.bradley.edu\n\nThis just in...\n\nNolan Ryan hurt his right knee in the 4th inning of the Rangers-Orioles\ngame last night.  He'll be having arthoscopic surgery that will, at best,\nkeep him on the DL for two to five weeks.\n\nJust when I had almost convinced myself that the Rangers' rotation would\nstay healthy this year...\n\n\nPhil Allen\ntexdude@cs1.bradley.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9516, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Conference on Manned Lunar Exploration.  May 7  Crystal City\nOrganization: Express Access Online Communications, Greenbelt MD USA\nLines: 9\nDistribution: na\nNNTP-Posting-Host: access.digex.net\n\n\nAW&ST  had a brief blurb on a Manned Lunar Exploration confernce\nMay 7th  at Crystal City Virginia, under the auspices of AIAA.\n\nDoes anyone know more about this?  How much, to attend????\n\nAnyone want to go?\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9517, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ronaldm@extro.ucc.su.OZ.AU (Ron Mastus)\nSubject: Problem with Adaptec 1542B SCSI and Jumbo Tape Drive\nSummary: Problem getting Jumbo Tape drive and Adaptec SCSI working together\nKeywords: SCSI CMS Jumbo Adaptec 1542B Tape\nNntp-Posting-Host: extro.ucc.su.oz.au\nOrganization: Sydney University Computing Service, Sydney, NSW, Australia\nLines: 39\n\n\nHi,\n\n    I've just replaced my existing DTC SCSI controller with an Adaptec 1542B,\nand am now having trouble restoring from a Jumbo 250 tape drive.\n\n    I had no trouble installing the Adaptec and DOS recognises both the SCSI\ndrive and an existing IDE drive - however when I went to restore the backups\nfrom the Jumbo tape I found that it was extremely slow (estimated time 3 mins\nactual time 15 min!) I have no trouble restoring from the same tape to the IDE\ndrive.\n\n    I seem to remember reading that some settings had to be changed to \nenable the Jumbo drive and the Adaptec to work together but I can't find any\nmention of it in the manuals.\n\n My system config is:\n   i486DX/33 4Mb \n   Adaptec 1542B running 180Mb Fujitsu SCSI\n   IDE Controller running 200Mb IDE\n   Jumbo 250 running off floppy controller on IDE\n\n  Any help would be appreciated \n\n   Thanks,\n\n   Ron. (ronaldm@extro.ucc.su.oz.au)\n\n-------------------------------------------------------------------------------\nRon Mastus\t\t        \t\t    ronaldm@extro.ucc.su.oz.au\n \t\t\t\t\t\t    41 Mariposa Rd\nPhone +61 2 ???-???? (work)\t\t            Bilgola Plateau 2107\n      +61 2 918-8152 (home)\t\t\t    Australia\n\n-- \n-------------------------------------------------------------------------------\nRon Mastus\t\t        \t\t    ronaldm@extro.ucc.su.oz.au\n \t\t\t\t\t\t    41 Mariposa Rd\nPhone +61 2 ???-???? (work)\t\t            Bilgola Plateau 2107\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9518, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: VP Gore Joins Students in Orlando for 1st Kids Earth Summit\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 102\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n                           WHITE HOUSE\n                   OFFICE OF THE VICE PRESIDENT\n_________________________________________________________________\n\nFOR IMMEDIATE RELEASE                CONTACT:  Heidi Kukis\nTHURSDAY, April 15, 1993                       202-456-7035\n                                               Julia Payne\n                                               202-456-7036\n\n\n    GORE JOINS STUDENTS IN ORLANDO FOR FIRST KIDS EARTH SUMMIT\n    Will Take Part in Special Town Meeting On the Environment\n ******** SATURDAY, APRIL 17, 1993 - ORLANDO, FLORIDA **********\n\n     WASINGTON -- Joining students from across the United States \nand around the world for the first ever Kids Earth Summit, Vice \nPresident Al Gore will travel to Orlando, Florida, on Saturday \n(4/17) and participate in a special town hall meeting, hosted by \nLinda Ellerbee for broadcast on Nickelodeon, to hear the young \npeople's concerns and share ideas about the environment.\n\n     The Vice President will take part in the \"Kids World \nCouncil: Plan It for the Planet\" from 2-5 PM (EDT) Saturday \n(4/17) in Orlando, Florida.  He will tour a display of student \nenvironmental projects, then videotape the town hall meeting \nwhere he will discuss with student delegates their concerns about \nthe environment and their plans for an environmentally sound \nfuture.\n\n     The town hall meeting will be moderated by Linda Ellerbee \nand taped for a news special, \"Nickelodeon Special Edition:  Plan \nIt for the Planet,\" which will air on Sunday, April 18 at 8 PM \n(EDT).  It is sponsored by Nickelodeon and the Children's Earth \nFund.\n\n     \"Young people care about the environment because they know \nit affects our future.  Across the country and around the world, \nyoung people are speaking out about the environmental challenges \nwe face.  They are identifying problems, thinking about \nsolutions, and they are demanding action from their leaders,\" the \nVice President said.\n\n     The Kids World Council delegates are meeting for three days \nin Orlando to discuss how to save energy and switch to renewable \nenergy.  They will be following the format and goals of the Earth \nSummit that took place last year in Rio de Janeiro.  The Vice \nPresident led the Senate Delegation to the Earth Summit.\n\n     \"I look forward to hearing what young people have to say \nabout the environment and their future.  Their insight into the \nworld around us is important,\" the Vice President said.\n\n                                (MORE)\n\n\f\n   \n\n     \n\n     \t  \n\n                 SCHEDULE FOR THE VICE PRESIDENT\n                     Saturday, April 17, 1993\n\n\n2:15 PM (EDT) VICE PRESIDENT TOURS display of student                           \n environmental projects.\n              Nickelodeon Studios\n              Orlando, Florida\n\n\n3:30 PM (EDT) VICE PRESIDENT TAKES PART IN TOWN HALL MEETING\n              with Kids World Council delegates and\n              Linda Ellerbee.\n              Nickelodeon Studios\n              Orlando, Florida\n\n\n5 PM (EDT)    VICE PRESIDENT DEPARTS from Kids World Council\n              for Washington, D.C.\n\n\n\n\n     NOTE:  PRESS THAT WISH TO ATTEND SHOULD CONTACT EILEEN                    \nPARISE OR MARTY VON RUDEN IN FLORIDA AT 407-352-7589.\n\n \n\n\n                                ##\n             \n\n\n      \t   \n     \n     \n\n       \n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9519, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: willisw@willisw.ENG.CLEMSON.edu (Bill Willis)\nSubject: Re: HELP! Installing second IDE drive\nOrganization: Engineering Services, Clemson University\nLines: 55\n\nIn article <1qn627$iv@darwin.sura.net> wbarnes@sura.net (Bill Barnes) writes:\n\n>Recently my cousin got a second internal IDE drive (a Seagate 210MB,\n>I can look up the model number if it's important) and I've been\n>trying to help him install it.  [I've got a vested interest, since\n>my machine's busted and I have to use his until I get mine fixed.]\n>He already has a Seagate 85MB IDE HD (again, I forget the model number\n>but I can find out.)\n\n>Anyway, I can't seem to get the bloody thing up.  I've managed to get\n>one or the other drive up (with the other disconnected), but not both\n>at the same time; whenever I try, the thing hangs during bootup -\n>never gets past the system test.  The IDE controller's instruction\n>sheet says it supports two drives; I think I've configured the CMOS\n>correctly; the power's plugged in properly; I even learned about the\n>master/slave relationship that two HDs are supposed to have (didn't\n>know PCs were into S&M! 8^) and I think I configured the jumpers\n>properly (the 85MB one is the master, the new 210MB one is the slave).\n\n>The only thing I can think of is maybe I'm doing the cabling wrong.  I've\n>tried several combinations:\n\n>controller - master - slave\n>controller - slave - master\n>master - controller - slave\n\n>None of them worked.  Unfortunately, I can't think of any others.\n\n>Another possibility is that the 85MB one is already partitioned into\n>two seperate drives, C and D, and the CMOS asks for \"C: drive\" and \"D:\n>drive\" setup info rather than \"drive 1\" and \"drive 2\" like most others\n>I've seen.  Could this be confusing things?\n\n>So, I need HELP!  The drive came bereft of any docs, except for some\n>info for the CMOS setup; the controller has a little piece of paper\n>about the size of an index card; I cannibalized the cable (it's one\n>of those with a connector at each end and the one in the middle, so\n>it looks like a serial connection); now I be lost!\n\n>Many, many thanks in advance!  This is practically an emergency (I have\n>two papers to do on this thing for Monday!)!  Help!\n>-- \n>-----------------------\n>William Barnes         SURAnet Operations\n>wbarnes@sura.net       (301) 982-4600 voice  (301) 982-4605 fax\n>Disclaimer:  I don't speak for SURAnet and they don't speak for me.\nI've been told by our local computer guru that you can't do this unless you \nperform a low level format on your existing hard drive and set your system \nup for two hard drives from the beginning.  I took him at his word, and I \nhave not tried to find out any more about it, because I'm not going to back \neverything up just to add another HDD.  If anyone knows for sure what the \nscoop is, I would like to know also.  Thanks in advance also.\n\nBill Willis\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9520, "properties": {"category": "rec.sport.hockey", "text": "From: huot@cray.com (Tom Huot)\nSubject: Re: Ulf and all...\nLines: 29\nNntp-Posting-Host: pittpa.cray.com\nOrganization: Cray Research Inc.\nX-Newsreader: TIN [version 1.1 PL8]\n\nRichard Wernick (richard@amc.com) wrote:\n: You should be ashamed to call yourself an Ulf Samuelson fan. Anybody who plays\n: the way he does, does not belong in the NHL. There have been cheap shot artists\n: through the history of the game, but a lot of them have been talanted players.\n: Bobby Clarke, Kenny Linsemen, Pie McKenzie, Chris Chelios etc.. but nobody has been\n: out right as dirty a cheapshot coward as Ulf. Violence in hockey has got to be curbed\n: and players like (Should have been a Women) Samuelson don't belong. When players\n: like Ulf, who's main purpose is to injure the better players in the league is allowed\n: to continue, and the league won't stop it, the players should. A Christian Pro 1000\n: aluminum stick directed at his ugly head should do the trick nicely. If the Bruins get\n: a chance to meet Pittsburgh in the near future, you can bet Neely will have his day.\n: The sight of watching Ulf turtle up like the coward he is, is worth almost as much as a\n: Stanely Cup. This wimp of a player almost ruined the career of one the best right wingers\n: in the game. If you are to remove Ulf Samuelson from the lineup, the Penguins would not\n: even notice he's gone. He's an eyesore on the game of hockey.\n\n\n: Rich\n\n\nThank you for your extremely lucid and well thought out observation.\nNow when you get back on your medication, please let us know how you\nare feeling. \nThank you,\n--\n_____________________________________________________________________________\nTom Huot        \t\t\t       \nhuot@cray.com \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9521, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Crazy? or just Imaginitive?\nLines: 20\nNntp-Posting-Host: acad3.alaska.edu\nOrganization: University of Alaska Fairbanks\n\nI have a nice quote that I like (or as close as I can remember it).\n\nIf I say something that you think is crazy, ask me what I mean before you think\nits crazy.. \n\nSo some of my ideas are a bit odd, off the wall and such, but so was Wilbur and\nOrville Wright, and quite a few others.. Sorry if I do not have the big degrees\nand such, but I think (I might be wrong, to error is human) I have something\nthat is in many ways just as important, I have imagination, dreams. And without\ndreams all the knowledge is worthless.. \n\nSorry my two cents worth. Or is it two rubles worth?\n\nThe basic quote idea is from H. Beam Pipers book \"Space Vikings\". Its a good\nbook on how civilization can fall, and how it can be raised to new heights.\n\nUnfortunately H. Beam Piper killed him self just weeks short of having his\nfirst book published, and have his ideas see light.. Such a waste.\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9522, "properties": {"category": "soc.religion.christian", "text": "From: marka@amber.ssd.csd.harris.com (Mark Ashley)\nSubject: Re: Easter: what's in a name? (was Re: New Testament Double Stan\nOrganization: Ft. Lauderdale, FL\nLines: 30\n\nIn article <Apr.13.01.04.21.1993.686@athos.rutgers.edu> dsegard@nyx.cs.du.edu (Daniel Segard) writes:\n>   seanna@bnr.ca (Seanna (S.M.) Watson) asks:\n> > What is the objection to celebration of Easter?\n>       The objection naturally is in the way in which you phrase it. \n>Easter (or Eashtar or Ishtar or Ishtarti or other spellings) is the pagan\n>whore goddess of fertility.  \n> > It is celebration of the resurrection of Jesus.\n>      No, you are thinking perhaps of \"Ressurection Sunday\" I think. \n\nTsk.tsk. Too much argument on non-issues !\nI'm Roman Catholic and it seems to me that people\ncelebrate Easter and Christmas for itself rather\nthan how it relates to Jesus. I don't really\ncare about some diety. If people have some other\ndefinition of Easter, then that's their business.\nDon't let it interfere with my Easter.\n\n\"Resurrection Sunday\" 8-) Where did that come from ?\nIf people celebrate Easter for the Cadburry bunny,\nthat's their business. \n\n> > So from this I infer that there are different rules for\n> > Christians of Jewish descent?  What happened to \"there is\n> > neither Jew nor Greek, slave nor free, male nor female, for\n> > all are one in Christ Jesus\"?\n\nI've always been curious about this. Is Jesus important\nto Jews at all ? I thought He was thought of only\nas a prophet ? If that's true what do they celebrate\nEaster for ?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9523, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: $1bil space race ideas/moon base on the cheap.\nArticle-I.D.: aurora.1993Apr25.150437.1\nOrganization: University of Alaska Fairbanks\nLines: 28\nNntp-Posting-Host: acad3.alaska.edu\n\nThat is an idea.. The most efficient moon habitat.. \n\nalso the idea of how to get the people off the moon once the prize was won..\n\nAlso the idea of how to rescue someone who is \"dying\" on the moon.\n\nMaybe have a area where they can all \"see\" each other, and can help each other\nif something happens.. \n\nI liek the idea of one prize for the first moon landing and return, by a\nnon-governmental body..\n\nAlso the idea of then having a moon habitat race.. \n\nI know we need to do somthing to get people involved..\n\nEccentric millionaire/billionaire would be nice.. We see how old Ross feels\nabout it.. After all it would be a great promotional thing and a way to show he\ndoes care about commericalization and the people.. Will try to broach the\nsubject to him.. \n\nMoonbase on the cheap is a good idea.. NASA and friends seem to take to much\ntime and give us to expensive stuff that of late does not work (hubble and\nsuch). Basically what is the difference between a $1mil peice of junk and a\nmulti $1mil piece of junk.. I know junk..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9524, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nDistribution: na\nLines: 268\n\nclipper@csrc.ncsl.nist.gov (Clipper Chip Announcement) writes:\n\n> The President today announced a new initiative that will bring\n> the Federal Government together with industry in a voluntary\n> program to improve the security and privacy of telephone\n> communications while meeting the legitimate needs of law\n> enforcement.\n\nA nice formulation for the introduction of the first encryption\ndevices with built-in trapdoors - just like the Feds wanted...\n\n> For too long there has been little or no dialogue between our\n> private sector and the law enforcement community to resolve the\n> tension between economic vitality and the real challenges of\n> protecting Americans.  Rather than use technology to accommodate\n> the sometimes competing interests of economic growth, privacy and\n> law enforcement, previous policies have pitted government against\n> industry and the rights of privacy against law enforcement.\n\nBla-bla.\n\n> protect electronic mail and computer files.  While encryption\n> technology can help Americans protect business secrets and the\n> unauthorized release of personal information, it also can be used\n> by terrorists, drug dealers, and other criminals.\n\nIndeed, and the current proposal does nothing to prevent the latter.\n\n> an ordinary telephone.  It scrambles telephone communications\n> using an encryption algorithm that is more powerful than many in\n> commercial use today.\n\nThis doesn't say much. There are many incredibly weak encryption\nalgorithms in commercial use today...\n\n> This new technology will help companies protect proprietary\n> information, protect the privacy of personal phone conversations\n> and prevent unauthorized release of data transmitted\n> electronically.\n\nExcept from the government.\n\n>  At the same time this technology preserves the\n> ability of federal, state and local law enforcement agencies to\n> intercept lawfully the phone conversations of criminals. \n\nNope. The criminals won't be stupid enough to use the new chip,\nthey'll use something secure. This technology provides only means to\nintercept the phone conversations of people who are stupid enough to\nuse it.\n\n> agencies to decode messages encoded by the device.  When the\n> device is manufactured, the two keys will be deposited separately\n> in two \"key-escrow\" data bases that will be established by the\n> Attorney General.  Access to these keys will be limited to\n> government officials with legal authorization to conduct a\n> wiretap.\n\nThat is, the government has the keys. It doesn't matter much if they\nare in one or in two of its hands...\n\n> The \"Clipper Chip\" technology provides law enforcement with no\n> new authorities to access the content of the private\n> conversations of Americans.\n\nCorrect. It does, however, provide those Americans with the false\nsense of privacy.\n\n> devices.  In addition, respected experts from outside the\n> government will be offered access to the confidential details of\n> the algorithm to assess its capabilities and publicly report\n> their findings.\n\nIf the screening is not public, it cannot be trusted. Some people do\nnot trust DES even today, after all the examinations - only because\nsome parts of its design were kept secret.\n\n> The chip is an important step in addressing the problem of\n> encryption's dual-edge sword:  encryption helps to protect the\n> privacy of individuals and industry, but it also can shield\n> criminals and terrorists.  We need the \"Clipper Chip\" and other\n> approaches that can both provide law-abiding citizens with access\n> to the encryption they need and prevent criminals from using it\n> to hide their illegal activities.  In order to assess technology\n\nSo they'll use a different technology to hide their illegal\nactivities. So will those law-abiding citizens, who do not trust their\ngovernment not to misuse its abilities to decrypt their conversations.\n\n>      --   the privacy of our citizens, including the need to\n>           employ voice or data encryption for business purposes;\n\nExcept from the government.\n\n>      --   the need of U.S. companies to manufacture and export\n>           high technology products.\n\nHuh? Later it says that the new technology will be export restricted.\n\n> Since encryption technology will play an increasingly important\n> role in that infrastructure, the Federal Government must act\n> quickly to develop consistent, comprehensive policies regarding\n> its use.  The Administration is committed to policies that\n> protect all Americans' right to privacy while also protecting\n> them from those who break the law.\n\nIn short, the new technology can:\n\n1) Protect the law abiding citizen's privacy from the casual snooper.\n\nIt cannot:\n\n1) Protect him from the government, if it decides to misuse its\nability to decrypt the conversations.\n\n2) Protect him from the criminals who succeed to break the new\nencryption scheme or to steal the keys, or to bribe the people who\nhandle them, etc.\n\n3) Prevent the criminals from using secure encryption for\ncommunication.\n\n> Q:   Does this approach expand the authority of government\n>      agencies to listen in on phone conversations?\n\n> A:   No.  \"Clipper Chip\" technology provides law enforcement with\n>      no new authorities to access the content of the private\n>      conversations of Americans.\n\nCorrect. However, it does not provide them that much privacy as it\nclaims.\n\n> Q:   Who will run the key-escrow data banks?\n\n> A:   The two key-escrow data banks will be run by two independent\n>      entities.  At this point, the Department of Justice and the\n>      Administration have yet to determine which agencies will\n>      oversee the key-escrow data banks.\n\nTwo candidates: the NSA and the Mafia.\n\n> Q:   How strong is the security in the device?  How can I be sure\n>      how strong the security is?  \n\n> A:   This system is more secure than many other voice encryption\n>      systems readily available today. \n\nThat is, \"trust us\".\n\n> While the algorithm will\n>      remain classified to protect the security of the key escrow\n\n\"Security through obscurity\".\n\n>      system, we are willing to invite an independent panel of\n>      cryptography experts to evaluate the algorithm to assure all\n>      potential users that there are no unrecognized\n>      vulnerabilities.\n\nIf it's not entirely open to public examination, it cannot be\ntrusted. Besides, who can prove that the devices used for examination\nand the ones built into your phones will be the same?\n\n> Q:   Whose decision was it to propose this product?\n\n> A:   The National Security Council, the Justice Department, the\n\nThe NSA and the FBI?\n\n> Q:   Who was consulted?  The Congress?  Industry?\n\n> A:   We have on-going discussions with Congress and industry on\n>      encryption issues, and expect those discussions to intensify\n>      as we carry out our review of encryption policy.  We have\n>      briefed members of Congress and industry leaders on the\n>      decisions related to this initiative.\n\nWhy did they \"forget\" the Academia?\n\n> Q:   Will the government provide the hardware to manufacturers?\n\n> A:   The government designed and developed the key access\n>      encryption microcircuits, but it is not providing the\n>      microcircuits to product manufacturers.  Product\n>      manufacturers can acquire the microcircuits from the chip\n>      manufacturer that produces them.\n\nDoesn't this smell to monopolism?\n\n> Q:   Who provides the \"Clipper Chip\"?\n\n> A:   Mykotronx programs it at their facility in Torrance,\n>      California, and will sell the chip to encryption device\n>      manufacturers.  The programming function could be licensed\n>      to other vendors in the future.\n\nLike the Mafia?\n\n> Q:   If the Administration were unable to find a technological\n>      solution like the one proposed, would the Administration be\n>      willing to use legal remedies to restrict access to more\n>      powerful encryption devices?\n\nThis is the main question, why was it buried at the end?\n\n> A:   This is a fundamental policy question which will be\n>      considered during the broad policy review.  The key escrow\n\n\"We'll see\".\n\n>      mechanism will provide Americans with an encryption product\n>      that is more secure, more convenient, and less expensive\n>      than others readily available today, but it is just one\n\n\"Trust us\".\n\n>      The Administration is not saying, \"since encryption\n>      threatens the public safety and effective law enforcement,\n>      we will prohibit it outright\" (as some countries have\n\nIn short, \"If we decide to outlaw strong crypto, we'll tell you\".\n\n>      effectively done); nor is the U.S. saying that \"every\n>      American, as a matter of right, is entitled to an\n>      unbreakable commercial encryption product.\"  There is a\n\nSince the US government seems to consider strong crypto as munitions\nand since the US constitutions guarantees the right to every American\nto bear arms, why is not every American entitled, as a matter of\nright, to an unbreakable commercial encryption product?\n\n> A:   It indicates that we understand the importance of encryption\n>      technology in telecommunications and computing and are\n>      committed to working with industry and public-interest\n>      groups to find innovative ways to protect Americans'\n>      privacy, help businesses to compete, and ensure that law\n>      enforcement agencies have the tools they need to fight crime\n>      and terrorism.\n\nBullshit. The proposed technology provides a false sense of security,\nencryption devices with built-in capabilities for breaking the\nencryption, does not prevent the criminals to use strong crypto, and\nis a step to outlaw strong crypto.\n\n> Q:   Will the devices be exportable?  Will other devices that use\n>      the government hardware?\n\n> A:   Voice encryption devices are subject to export control\n>      requirements.  Case-by-case review for each export is\n>      required to ensure appropriate use of these devices.  The\n\nWho was the optimist who believed that the new administration will\nleave the export controls on strong crypto devices?\n\nOK, I'm not American, it's not my business, but I just couldn't resist\nto comment... The whole plot looks so totalitaristic... It's up to\nyou, Americans, to fight for your rights.\n\nRegards,\nVesselin\n\nP.S. Now is the time for David Sternlight to pop up and claim that the\nnew system is great.\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9525, "properties": {"category": "misc.forsale", "text": "From: gt0869a@prism.gatech.EDU (WATERS,CLYDE GORDON)\nSubject: Re: 486DX/33 CPU chip for sale, $250\nDistribution: na\nOrganization: Georgia Institute of Technology\nLines: 20\n\nIn article <C5qoBy.9n5@utdallas.edu> goyal@utdallas.edu (MOHIT K GOYAL) writes:\n>>> 486DX/33 CPU chip for sale, $250+shipping.  If you like to pay $250 for the\n\n>>Please refer to 7870, he is selling $150 for that CPU.\n>\n>Correct. & $150 may be high now that AMD has started selling 486 clones!\n\nIndeed! Word is, Intel's lawsuit against AMD was absolutely THROWN OUT of\ncourt Monday! AMD said they would be shipping chips WITH THE INTEL INSTRUCTION\nSET next week!!! 486 chip prices are going to go through the floor,\nmark my words!!!\n\nRegards,\nGordon.\n\n-- \nWATERS,CLYDE GORDON-BME '93-Georgia Institute of Technology Atlanta Ga. \n\"Out of the mountain of despair, we can hew the stone of hope\"- MLK Jr. \nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0869a\nInternet: gt0869a@prism.gatech.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9526, "properties": {"category": "rec.motorcycles", "text": "From: cjackson@adobe.com (Curtis Jackson)\nSubject: Re: Type spesifications (CB, VFR, GT, etc.)\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 9\n\nIn article <C5sK1D.C1p@srgenprp.sr.hp.com> frankb@sad.hp.com (Frank Ball) writes:\n}Honda:  a \"V\" designates a V engine street bike. \"VF\" for V-4, \"VT\" for V-twin.\n\nSo how about my Honda Hawk (NT 650)? It's a twin, but not called a VT.\n-- \nCurtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\nDoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\"\n\"There is no justification for taking away individuals' freedom\n in the guise of public safety.\" -- Thomas Jefferson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9527, "properties": {"category": "comp.windows.x", "text": "From: yuri@physics.heriot-watt.ac.UK (Yuri Rzhanov)\nSubject: REPOST: XView slider\nOrganization: The Internet\nLines: 37\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert <xpert@expo.lcs.mit.edu>\n\nHi Xperts,\n\nthis is a repost (no one responded to my desperate yell 8-(\nI can't believe there is no XView wizards any more 8-)...\n\nI'm using sliders in my XView apps, usually with editable numeric\nfield. But I seem to have no control over the length of this field.\nIn some apps it appears long enough to keep several characters,\nin some - it cannot keep even the maximum value set by \nPANEL_MAX_VALUE! \n\nAs I understand, PANEL_VALUE_DISPLAY_LENGTH, which controls\nnumber of characters to be displayed in text items, doesn't\nwork in the case of slider, despite the fact that <panel.h>\ncontains the following bit:\n\n\t/* Panel_multiline_text_item, Panel_numeric_text_item,\n\t * Panel_slider_item and Panel_text_item attributes\n\t */\n\tPANEL_NOTIFY_LEVEL\t= PANEL_ATTR(ATTR_ENUM,\t\t\t 152),\n\tPANEL_VALUE_DISPLAY_LENGTH\t= PANEL_ATTR(ATTR_INT,\t\t 182),\n\nwhich gives a hint that this attribute can be used for sliders.\nBut 1) setting this attribute gives nothing, and 2) xv_get'ting\nthis attribute gives warning: Bad attribute, and returns value 0.\n\nStrange thing is that DEC's port of XView gives plenty of space\nin a text fields, but not Sun's Xview...\n\nCan someone share his experience in managing sliders in XView with me,\nand clear this problem? \n\nAny help is very much appreciated.\n\nYuri\n\nyuri@uk.ac.hw.phy\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9528, "properties": {"category": "comp.graphics", "text": "From: oved3b@kih.no (Ove Petter Tro)\nSubject: Re: need a viewer for gl files\nOrganization: Kongsberg College of Engineering\nLines: 16\nDistribution: world\nNNTP-Posting-Host: knoll.kih.no\n\nIn article <1qu36i$kh7@dux.dundee.ac.uk>, dwestner@cardhu.mcs.dundee.ac.uk (Dominik Westner) writes:\n|> the subject says it all. Is there a PD viewer for gl files (for X)?\n\nTry xviewgl.\n(filename xviewgl_v1.1.tar.Z on lots of bases)\n\n- Ove\n-- \n- ----------==========###########==========-------- -\n    //                     | \"What do you think\n  \\X/ (Yep, me too...)     |  this is?  Real life?\"\nOve Petter Tro,            |    - Ford Fairlane.\nKongsberg College          |\nof Engineering, Norway     | email: ovep@kih.no\n- ----------==========###########==========-------- -\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.449+0000", "event": "documents", "entityId": 9529, "properties": {"category": "alt.atheism", "text": "Subject: Re: islamic authority over women\nFrom: bobbe@vice.ICO.TEK.COM (Robert Beauchaine)\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 46\n\nIn article <1993Apr5.023044.19580@ultb.isc.rit.edu) snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n)\n)That's your mistake.  It would be better for the children if the mother\n)raised the child.\n)\n)One thing that relates is among Navy men that get tatoos that say \"Mom\",\n)because of the love of their mom.  It makes for more virile men.\n)Compare that with how homos are raised.  Do a study and you will get my\n)point.\n)\n)But in no way do you have a claim that it would be better if the men\n)stayed home and raised the child.  That is something false made up by\n)feminists that seek a status above men.  You do not recognize the fact\n)that men and women have natural differences.  Not just physically, but\n)mentally also.\n) [...]\n)Your logic.  I didn't say americans were the cause of worlds problems, I\n)said atheists.\n) [...]\n)Becuase they have no code of ethics to follow, which means that atheists\n)can do whatever they want which they feel is right.  Something totally\n)based on their feelings and those feelings cloud their rational\n)thinking.\n) [...]\n)Yeah.  I didn't say that all atheists are bad, but that they could be\n)bad or good, with nothing to define bad or good.\n)\n\n  Awright!  Bobby's back, in all of his shit-for-brains glory.  Just\n  when I thought he'd turned the corner of progress, his Thorazine\n  prescription runs out.  \n\n  I'd put him in my kill file, but man, this is good stuff.  I wish\n  I had his staying power.\n\n  Fortunately, I learned not to take him too seriously long,long,long\n  ago.\n\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\ \n\nBob Beauchaine bobbe@vice.ICO.TEK.COM \n\nThey said that Queens could stay, they blew the Bronx away,\nand sank Manhattan out at sea.\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9530, "properties": {"category": "rec.autos", "text": "From: keys@starchild.ncsl.nist.gov (Lawrence B. Keys)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: National Institute of Standards & Technology\nDistribution: usa\nLines: 37\n\nIn article <34544@oasys.dt.navy.mil> glouie@oasys.dt.navy.mil (George Louie) writes:\n>In rec.autos, nancy@hayduke (Nancy Feagans) writes:\n>>Ashtrays and cigarette lighters.  These should be an *option*.\n>\n>Why make it an option.  You can use the ashtray to store coins and other\n>small things which come in handy. Use the cigarette lighter as an electrical\n>outlet for all types of handy gadgets (CD players, vacuum cleaners,\n>flashlights, etc.)  I don't want to pay extra for these things and if\n>you don't use them, they don't hurt you.\n\nI use the ashtray to keep change and other items in. I converted the \ncigarette lighter into a volume control knob for my in trunk subwoofer!\n\n\n>\n>\n>George\n>>--\n\n                                                  .  \n                                                 /                \nLarry                            __/    _______/_                 \nkeys@csmes.ncsl.nist.gov       /                  \\               \n                          _____     __     _____    \\------- ===\n            ----------- / ____/   /  /   /__  __/              \\\n         /     ___    /  / ___   /  /      / /    ____          |\n        |    /      \\/ /__ /  | /  /__  __/ /__ /       \\      / \n        /___         \\_______/ /_____/ /______/            ====OO\n            \\       /                           \\       /         \n                -            1990 2.0 16v           -\n\n\n       ---------------- FAHRVERGNUGEN FOREVER! --------------------            \n            The fact that I need to explain it to you indicates\n            that you probably wouldn't understand anyway!\n       ------------------------------------------------------------\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9531, "properties": {"category": "soc.religion.christian", "text": "From: bruce@liv.ac.uk (Bruce Stephens)\nSubject: Re: Homosexuality issues in Christianity\nOrganization: Centre for Mathematical Software Research, Univ. Liverpool\nLines: 49\n\n>>>>> On 5 May 93 06:51:23 GMT, shellgate!llo@uu4.psi.com (Larry L. Overacker) said:\n\n> In article <Apr.30.03.11.27.1993.10101@geneva.rutgers.edu> FSSPR@acad3.alaska.edu (Hardcore Alaskan) writes:\n>>\n>>I hope that anyone who remembers seeing Rev. Troy Perry's\n>>\"performance\" at the 1987 March On Washington will see for themselves\n>>just how inconceivable it is to mix Christianity with homosexuality.\n\n> Whether or not Christianity and homosexuality are compatible is clearly\n> debatable, since it IS being debated.  In my opnion, it is genuinely\n> destuctive to the cause of Christianity to use this sort of ad hominem\n> argument to oppose one's adversaries.  It only serves to further drive\n> people away from Christianity because it projects and confirms the\n> frequently held opinion that Christians are unable to think critically\n> and intelligently. \n\nI agree entirely.  Speaking as an atheist (heterosexual, for what it's\nworth), this is one of the least attractive parts of some varieties of\nChristianity.  Although I'm sure it's possible to argue theologically\nthat we shouldn't make analogies between discrimination on the basis\nof sex and race and discrimination on the basis of sexual orientation,\nmorally the case looks unanswerable (for those outside religion): the\nthree forms _are_ analogous; we shouldn't discriminate on the basis of\nsex, race or sexual orientation.\n\nI found the moderator's FAQs on the subject instructive, and recommend\neveryone to read them.\n\nThere seem to be three different levels of acceptance:\n\n1) Regard homosexual orientation as a sin (or evil, whatever)\n2) Regard homosexual behaviour as a sin, but accept orientation\n(though presumably orientation is unfortunate) and dislike people who\nindulge\n3) As 2, but \"love the sinner\"\n4) Accept homosexuality altogether.\n\nMy experience is that 3 is the most common attitude (I imagine 1 and 2\nare limited to a few fundamentalist sects).\n\nI suppose I can go along with 3, except that I have this feeling that\na 14--15 year old living in a community with this attitude, on\ndiscovering that they were more attracted to members of the same sex,\nwould not feel the love of the community, but would rather feel the\npressure not to exhibit their feelings.  I'm not saying that the\ncommunity (in particular the parents) would not love the child, but I\nsuspect the child would not feel loved.\n--\nBruce              CMSR, University of Liverpool\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9532, "properties": {"category": "sci.crypt", "text": "From: tcmay@netcom.com (Timothy C. May)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: Tin 1.1 PL5\nDistribution: na\nLines: 51\n\nBrad Templeton (brad@clarinet.com) wrote:\n: It occurs to me that if they get a wiretap order on you, and the escrow\n: houses release your code to the cops, your code is now no longer secure.\n: \n: It's in the hands of cops, and while I am sure most of the time they are\n: good, their security will not be as good as the escrow houses.\n: \n: \n: What this effectively means is that if they perform a wiretap on you,\n: at the end of the wiretap, they should be obligated to inform you that\n: a tap was performed, and replace (for free) the clipper chip in your\n: cellular phone so that it is once again a code known only to the\n: escrow houses.\n\nGetting the court order to reveal the key *also* makes decipherable\nall *past* conversations (which may be on tape, or disk, or whatver),\nas I understand the proposal. I could be wrong, but I've seen no\nmention of \"session keys\" being the escrowed entities.\n\nAs the EFF noted, this raises further issues about the fruits of one\nbust leading to incrimination in other areas.\n\nBut is it any worse than the current unsecure system? It becomes much\nworse, of course, if the government then uses this \"Clinton Clipper\"\nto argue for restrictions on unapproved encryption. (This is the main\nconcern of most of us, I think. The camel's nose in the tent, etc.)\n\nAnd it may also become much worse if the ostensible security is\nincreased, thus allowing greater access to \"central office\" records by\nthe government (the conversations being encrypted, who will object to\nletting the government have access to them, perhaps even automatically\narchiving large fractions...). This was one of the main objections to\nthe S.266 proposal, that it would force telecom suppliers to provide\neasy access for the government.\n\nOne the government has had access to months or years of your encrypted\nconversations, now all it takes is one misstep, one violation that\ngets them the paperwork needed to decrypt *all* of them!\n\nDo we want anyone to have this kind of power?\n\n-Tim May, whose sig block may get him busted in the New Regime\n\n-- \n..........................................................................\nTimothy C. May         | Crypto Anarchy: encryption, digital money,  \ntcmay@netcom.com       | anonymous networks, digital pseudonyms, zero\n408-688-5409           | knowledge, reputations, information markets, \nW.A.S.T.E.: Aptos, CA  | black markets, collapse of governments.\nHigher Power: 2^756839 | Public Key: PGP and MailSafe available.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9533, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: michael@jester.GUN.de (Michael Gerhards)\nDistribution: world\nSubject: Re: HELP: my pc freezes!\nX-Newsreader: TIN [version 1.1 PL8]\nOrganization: private COHERENT system\nLines: 15\n\nPerry Egelmeers (perry@wswiop11.win.tue.nl) wrote:\n> ladanyi@cs.cornell.edu (La'szlo' Lada'nyi) writes:\n\n> >Problem: Occasionaly the machine freezes. At least that's what I thought, but\n> >recently I discovered that the machine works, just the keyboard freezes and\n> >the clock drops down from turbo (33Mhz) to standard (16Mhz) mode.\n\n> Perhaps you hit the ^S (Control S)?  Try ^Q.\n> I know it doesn't explain the clock rate drop...\n\nWe had the same problem in our company. We changed the keyboard-bios and\nafter that, everything went fine. Our dealer told us that some boards of\nthat series have a defect kbd-bios.\n\nMichael\n--\n*  michael@jester.gun.de  *   Michael Gerhards   *   Preussenstrasse 59  *\n                          *  Germany 4040 Neuss  *  Voice: 49 2131 82238 *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9534, "properties": {"category": "sci.med", "text": "From: rjf@lzsc.lincroftnj.ncr.com (51351[efw]-Robert Feddeler(MT4799)T343)\nSubject: Re: centrifuge\nOrganization: AT&T Middletown N.J. U.S.A.\nX-Newsreader: TIN [version 1.1 PL8]\nDistribution: usa\nLines: 16\n\nMr. Blue (car@access.digex.com) wrote:\n: Could somebody explain to me what a centrifuge is and what it is\n: used for? I vaguely remembre it being something that spins test tubes\n: around really fast but I cant remember why youd want to do that?\n\n\nPurely recreational.  They get bored sitting in that\nrack all the time.\n\n\n\n--\nbob.\t\t\t\t\t   | I only smile when I lie,\nYou can learn more in a bar\t\t   | And I'll tell you why...\n\tthan you can in a lawyer's office. |\nWere these more than just my opinions, they would have cost a bit more.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9535, "properties": {"category": "comp.windows.x", "text": "From: kbw@helios.ath.epa.gov (Kevin B. Weinrich)\nSubject: Why do I need \"xrdb -m\" when .Xdefaults unchanged?\nOrganization: Computer Sciences Corp.\nLines: 38\nDistribution: world\nNNTP-Posting-Host: helios.ath.epa.gov\n\nI'm having an X resource problem using Brian Wilson's wscrawl 2.0\n(a wonderful interactive conferencing program, by the way).  I'm \nrunning OpenWindows 3.0 on a SPARC 1+ under OS 4.1.3.  I have\nthe following defaults in my .Xdefaults file (among many others):\n  wscrawl.telePointerName:\tKevin\n  wscrawl.syncScrollbars:\t\tTrue\n  wscrawl.continuousTelePointer:\tTrue\n  wscrawl.showPointerCoordinates:\tFalse\n  wscrawl*background:\t\tLightBlue\n  wscrawl*swindow*foreground:\tyellow\n  wscrawl*draw_area_frame*foreground:\tBlue\n  wscrawl*keyboardFocusPolicy:\tpointer\n\nNaturally, I exited the server and restarted it after adding\nthose lines to .Xdefaults .\n\nIf I run the following from a cmdtool (pwd = my home dir.):\n  xrdb -m .Xdefaults\nand then start up wscrawl, then all those defaults are used\nproperly.  Wonderful, yes?  Except that I can't get them to be\noperative except by *manually* invoking the afore-mentioned\nxrdb command.  If I try:\n  xrdb .Xdefaults\nthe defaults \"won't take.\"\n\nSo, I tried to change the xrdb call in my .xinitrc file from:\n  xrdb  $HOME/.Xdefaults\nto:\n  xrdb -m $HOME/.Xdefaults\n\nNo go.  So I tried adding in:\n  xrdb -m /home/kbw/.Xdefaults\nat the beginning or end of my .openwin-init file.  Still no go.\n\nAny notions what gives?  Thanks for the help.\n-- \nKevin Weinrich     Computer Sciences Corp.\nkbw@helios.ath.epa.gov\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9536, "properties": {"category": "rec.sport.baseball", "text": "From: fierkelab@bchm.biochem.duke.edu (Eric Roush)\nSubject: Re: Wohlers to minors\nOrganization: Biochemistry\nLines: 33\nNntp-Posting-Host: bruchner.biochem.duke.edu\n\nIn article <91387@hydra.gatech.EDU> ccastmm@prism.gatech.EDU (Mike Marler)\nwrites:\n>In <1993Apr2.224251.21212@rigel.econ.uga.edu> shannonr@moe.coe.uga.edu\n(Shannon Reeves Cntr. for Ed. Tech) writes:\n\n>At times it \"seems\" as if no others in the bullpen are used by Cox for middle\n>relief.  Marvin only pitched 7 innings this spring.  He is supposed to be\n>over his surgery, and I am wondering if Cox is still trying to decide who to \n>use as middle relief and thinks that Marvin might be his better choice\n>early in the season.  I would immediately give McMchael many chances to\n>pitch after spring and then use Bedrock and Freeman after that.  I am\nwondering\n>how he intends to use Howell.  (Whatever happened to Senior Smoke?)\n                                                      -------------\n\nDo you mean Juan Berenguer?  He was traded for Mark Davis in the middle\nof last season.  Exchanged one stiff for another, as Berenguer hadn't\ncome back from his injury in 91.  I think he's retired now.\n\nAnyhow, as middle relief, Marvin ain't that bad.  He at least can\npitch a couple of innings or do mop-up work.  I don't know much\nabout McMichael (was he the Mexican League guy?), but\neverybody else in the pen is a 1 inning man, except maybe\nMercker.\n\n\n-------------------------------------------------------\nEric Roush\t\tfierkelab@\tbchm.biochem.duke.edu\n\"I am a Marxist, of the Groucho sort\"\nGrafitti, Paris, 1968\n\nTANSTAAFL! (although the Internet comes close.)\n--------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9537, "properties": {"category": "sci.med", "text": "From: brein@jplpost.jpl.nasa.gov (Barry S. Rein)\nSubject: Need survival data on colon cancer\nOrganization: Jet Propulsion Laboratory\nLines: 17\nDistribution: world\nNNTP-Posting-Host: desa.jpl.nasa.gov\n\nA relative of mine was recently diagnosed with colon cancer.  I would like\nto know the best source of survival statistics for this disease when\ndiscovered at its various stages.\n\nI would prefer to be directed to a recent source of this data, rather than\nreceive the data itself.\n\nThank you,\n****************************************************************************\n*                              Barry Rein                                 \n*\n*                       brein@jplpost.jpl.nasa.gov                        \n*\n****************************************************************************\n*                            No clever comment.                           \n* \n****************************************************************************\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9538, "properties": {"category": "talk.politics.guns", "text": "From: paale@stud.cs.uit.no (Paal Ellingsen)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nOrganization: University of Tromsoe\nLines: 17\n\nIn article <1r0qsrINNc61@clem.handheld.com>, Jim De Arras writes:\n|> Mr. Roby, you are a government sucking heartless bastard.  Humans died  \n|> yesterday, humans who would not have died if the FBI had not taken the actions  \n|> they did.  That is the undeniable truth. \n\n...the question is: for how long? Even if the FBI had done nothing, I guess the \nBDs would have committed suicide, but maybe not until hunger and thirst gave them\nthe choice between sucide or surrender. \nThe BDs was warned in beforehand about the FBI action. They HAD the chance to\nsurrender and get a fair trial. No matter who started the fire, the BDs were \nresponsible for 80+ peole dying. No one else.\n\n-- \n============================================================================\nPaal Ellingsen       | Borgensvingen 67/102 | Tlf.: 083 50933\npaale@stud.cs.uit.no | 9100 Kvaloeysletta   | DATA = Dobbelt Arbeid Til Alle\n============================================================================\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9539, "properties": {"category": "sci.electronics", "text": "From: nhowland@matt.ksu.ksu.edu (Neal Patrick Howland)\nSubject: Re: Radar detector DETECTORS?\nOrganization: Kansas State University\nLines: 23\nNNTP-Posting-Host: matt.ksu.ksu.edu\n\nragee@vdoe386.vak12ed.edu (Randy Agee) writes:\n\n>It used to be that the only way the law could be enforced was for\n>an officer to actually see the radar detector.  Not any more!  Many\n>law enforcement agencies are now using radar detector detectors. \n>Right, a super sensitive receiver that is capable of picking up RF\n>from the radar detector itself.  My first reaction was \"no way!\" \n>But, guess again, these little buggers really work and the police\n>are writing citations right and left for people using radar\n>detectors.  One news story quoted an officer as saying that he had\n>found the radar detector in all of the cars he stopped except one,\n>and he could never figure out where it was - but he knew it was\n>there.  This tends to make one assume there are few false arrest.\n\nFrom what I understand about radar dectectors all they are is a passive\ndevice much like the radio in your car.  They work as an antenna picking\nup that radar signals that the radar gun sends out.  Therefore there would\nbe no way of detecting a radar detector any more than there would be of\ndetecting whether some one had a radio in their car.  \n\nNeal Howland\nnhowland@matt.ksu.ksu.edu \n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9540, "properties": {"category": "rec.sport.hockey", "text": "From: hammerl@acsu.buffalo.edu (Valerie S. Hammerl)\nSubject: Re: Goalie masks\nOrganization: UB\nLines: 18\nNntp-Posting-Host: autarch.acsu.buffalo.edu\n\nIn article <1993Apr16.164811.21637@newshub.ists.ca> dchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n\n\n>[...] and I'll give Fuhr's new one an honourable mention, although I haven't\n>seen it closely yet (it looked good from a distance!).  \n\nThis is the new Buffalo one, the second since he's been with the\nSabres?  I recall a price tag of over $700 just for the paint job on\nthat mask, and a total price of almost $1500.  Ouch.  \n\n\n\n\n-- \nValerie Hammerl\t\t\tBirtday -(n)- An event when friends get \nhammerl@acsu.buffalo.edu\ttogether, set your dessert on fire, then\nacscvjh@ubms.cc.buffalo.edu\tlaugh and sing while you frantically try \nv085pwwpz@ubvms.cc.buffalo.edu  to blow it out.  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9541, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: spowell@trentu.ca (STEFAN POWELL)\nSubject: Cool background patterns!\nNews-Software: VAX/VMS VNEWS 1.41    \nOrganization: Trent Computing and Telecommunications Department\nLines: 16\n\nHere are some cool 3-D background patterns I made.\n\nEdit your CONTROL.INI and add the following lines to your [Patterns] section.\n\nBricks=148 43 86 172 89 182 99 201\nTile=1 43 85 43 85 43 85 255\nTile (diagonal)=148 107 54 156 73 182 99 201\nSlats=0 170 85 170 85 170 85 255\n\nMake sure your desktop color is one of the standard 16 colors or the\npatterns might not work.  I like dark grey the best with these.\n\nIf you have any cool one's of your own, please mail them to me.\n_______________________________________________________________________________\n                                             Stefan Powell - SPowell@TrentU.CA\n                                                 Peterborough, Ontario, Canada\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9542, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nLines: 22\n\nBred wrote:\n\tAnd this means that the FBI will want to track the customer lists of\n\tbetter encryption phones, because \"the only reason a person would want\n\tone is to evade the police.\"\n\nThey don't have to track customer lists - they merely have to digitally\nlisten to any phone line and eliminate any that don't have the clipper\nheader/signature.  (No-one has said how it will be modulated - want a bet\nit's a non-standard and hence easily recognisable baudrate?)\n\nDevices to scan exchanges and detect modems etc already exist.  I've seen\nthem advertised in the trade press.\n\nOnce you eliminate crippled crypto devices and ordinary data modems, what's\nleft is crypto worth looking more closely at.  I guess any substitute scheme\nwill have to be v32bis or v.fast to disguise it, though then they just start\nlooking at the data too...\n\nWhatever happens though, the effect of this new chip will be to make private\ncrypto stand out like a sore thumb.\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9543, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cah@tactix.rain.com (Chris Huey)\nSubject: Re: Workspace Managers for Win 3.1 - a small review\nOrganization: Tactix ReEngineering, Inc.\nLines: 28\nX-Newsreader: TIN [version 1.1 PL6]\n\nJamie Scuglia (jamie@zikzak.apana.org.au) wrote:\n: Thanks to all those people who recommended Workspace managers for\n: Windows 3.1.  I found 3 shareware Workspace Managers, from Australia's\n: MS-WINDOWS archive (monu6.cc.monash.edu.au), which mirrors some\n: sites in the U.S.  The three I found were:\n: \n: 1. WORKSPACES 1.10 (wspace.zip)\n[ review deleted ]\n: 2. WORKSHIFT 1.6 (wrksft16.zip)\n[ review deleted ]\n: 3. BIGDESK 2.30 and BACKMENU (backdesk.zip)\n[ review deleted ]\n\nI really appreciate this information.  However, given that I don't have\ndirect Internet access - which means I don't have Archie access - I must\nresort to using FTPMAIL.  This means that I need the site name and the \ndirectory where these workspace managers are located.\n\nSo, can you (or anyone else) post or Email me the needed information?\n\nThanks very much!!!\n\nChris\n-- \n\nChris Huey                                           Tactix ReEngineering, Inc.\ncah@tactix.rain.com                                       Voice: (503) 684-4099\n           \"CodeCrafters: Custom crafted software in about an hour\"\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9544, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: After all, Armenians exterminated 2.5 million Muslim people there.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 297\n\nIn article <C5y56o.A62@news.cso.uiuc.edu> hovig@uxa.cso.uiuc.edu (Hovig Heghinian) writes:\n\n>article.  I have no partisan interests --- I would just like to know\n>what conversations between TerPetrosyan and Demirel sound like.  =)\n\nVery simple.\n\n\"X-Soviet Armenian government must pay for their crime of genocide \n against 2.5 million Muslims by admitting to the crime and making \n reparations to the Turks and Kurds.\"\n\nAfter all, your criminal grandparents exterminated 2.5 million Muslim\npeople between 1914 and 1920.\n\n\n<C5yyBt.5zo@news.cso.uiuc.edu>\nhovig@uxa.cso.uiuc.edu (Hovig Heghinian)\n\n>To which I say:\n>Hear, hear.  Motion seconded.\n\nYou must be a new Armenian clown. You are counting on ASALA/SDPA/ARF \ncrooks and criminals to prove something for you? No wonder you are in \nsuch a mess. That criminal idiot and 'its' forged/non-existent junk has \nalready been trashed out by Mutlu, Cosar, Akgun, Uludamar, Akman, Oflazer \nand hundreds of people. Moreover, ASALA/SDPA/ARF criminals are responsible \nfor the massacre of the Turkish people that also prevent them from entering \nTurkiye and TRNC. SDPA has yet to renounce its charter which specifically \ncalls for the second genocide of the Turkish people. This racist, barbarian \nand criminal view has been touted by the fascist x-Soviet Armenian government \nas merely a step on the road to said genocide. \n\nNow where shall I begin?\n\n#From: ahmet@eecg.toronto.edu (Parlakbilek Ahmet)\n#Subject: YALANCI, LIAR : DAVIDIAN\n#Keywords: Davidian, the biggest liar\n#Message-ID: <1991Jan10.122057.11613@jarvis.csri.toronto.edu>\n\nFollowing is the article that Davidian claims that Hasan Mutlu is a liar:\n\n>From: dbd@urartu.SDPA.org (David Davidian)\n>Message-ID: <1154@urartu.SDPA.org>\n\n>In article <1991Jan4.145955.4478@jarvis.csri.toronto.edu> ahmet@eecg.toronto.\n>edu (Ahmet Parlakbilek) asked a simple question:\n\n>[AP] I am asking you to show me one example in which mutlu,coras or any other\n>[AP] Turk was proven to lie.I can show tens of lies and fabrications of\n>[AP] Davidian, like changing quote , even changing name of a book, Anna.\n\n>The obvious ridiculous \"Armenians murdered 3 million Moslems\" is the most\n>outragious and unsubstantiated charge of all. You are obviously new on this \n>net, so read the following sample -- not one, but three proven lies in one\n>day!\n\n>\t\t\t- - - start yalanci.txt - - -\n\n[some parts are deleted]\n\n>In article <1990Aug5.142159.5773@cbnewsd.att.com> the usenet scribe for the \n>Turkish Historical Society, hbm@cbnewsd.att.com (hasan.b.mutlu), continues to\n>revise the history of the Armenian people. Let's witness the operational\n>definition of a revisionist yalanci (or liar, in Turkish):\n\n>[Yalanci] According to Leo:[1]\n>[Yalanci]\n>[Yalanci] \"The situation is clear. On one side, we have peace-loving Turks\n>[Yalanci] and on the other side, peace-loving Armenians, both sides minding\n>[Yalanci] their own affairs. Then all was submerged in blood and fire. Indeed,\n>[Yalanci] the war was actually being waged between the Committee of \n>[Yalanci] Dashnaktsutiun and the Society of Ittihad and Terakki - a cruel and \n>[Yalanci] savage war in defense of party political interests. The Dashnaks \n>[Yalanci] incited revolts which relied on Russian bayonets for their success.\"\n>[Yalanci] \n>[Yalanci] [1] L. Kuper, \"Genocide: Its Political Use in the Twentieth Century,\"\n>[Yalanci]     New York 1981, p. 157.\n\n>This text is available not only in most bookstores but in many libraries. On\n>page 157 we find a discussion of related atrocities (which is title of the\n>chapter). The topic on this page concerns itself with submissions to the Sub-\n>Commission on Prevention of Discrimination of Minorities of the Commission on\n>Human Rights of the United Nations with respect to the massacres in Cambodia.\n>There is no mention of Turks nor Armenians as claimed above.\n\n\t\t\t\t- - -\n\n>Vay sarsak, vay yobaz, vay yalanci! Vay Turk milletinin yuz karasi Mutlu vay!\n\n>The depth of foolishness the Turkish Historical Society engages in, while\n>covering up the Turkish genocide of the Armenians, is only surpassed by the \n>ridiculous \"historical\" material publicly displayed!\n\n>David Davidian <dbd@urartu.SDPA.org>  | The life of a people is a sea, and  \n\nReceiving this message, I checked the reference, L.Kuper,\"Genocide...\" and\nwhat I have found was totally consistent with what Davidian said.The book\nwas like \"voice of Armenian revolutionists\" and although I read the whole book,\nI could not find the original quota.\nBut there was one more thing to check:The original posting of Mutlu.I found \nthe original article of Mutlu.It is as follows:\n\n> According to Leo:[1]\n\n>\"The situation is clear. On one side, we have peace-loving Turks and on\n> the other side, peace-loving Armenians, both sides minding their own \n> affairs. Then all was submerged in blood and fire. Indeed, the war was\n> actually being waged between the Committee of Dashnaktsutiun and the\n> Society of Ittihad and Terakki - a cruel and savage war in defense of party\n> political interests. The Dashnaks incited revolts which relied on Russian\n> bayonets for their success.\" \n\n>[1] B. A. Leo. \"The Ideology of the Armenian Revolution in Turkey,\" vol II,\n     ======================================================================\n>    p. 157.\n    ======\n\nQUATO IS THE SAME, REFERENCE IS DIFFERENT !\n\nDAVIDIAN LIED AGAIN, AND THIS TIME HE CHANGED THE ORIGINAL POSTING OF MUTLU\nJUST TO ACCUSE HIM TO BE A LIAR.\n\nDavidian, thank you for writing the page number correctly...\n\nYou are the biggest liar I have ever seen.This example showed me that tomorrow\nyou can lie again, and you may try to make me a liar this time.So I decided\nnot to read your articles and not to write answers to you.I also advise\nall the netters to do the same.We can not prevent your lies, but at least\nwe may save time by not dealing with your lies.\n\nAnd for the following line:\n>Vay sarsak, vay yobaz, vay yalanci! Vay Turk milletinin yuz karasi Mutlu vay!\n\nI also return all the insults you wrote about Mutlu to you.\nI hope you will be drowned in your lies.\n\nAhmet PARLAKBILEK\n\n#From: vd8@cunixb.cc.columbia.edu (Vedat  Dogan)\n#Message-ID: <1993Apr8.233029.29094@news.columbia.edu>\n\nIn article <1993Apr7.225058.12073@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n>In article <1993Apr7.030636.7473@news.columbia.edu> vd8@cunixb.cc.columbia.edu\n>(Vedat  Dogan) wrote in response to article <1993Mar31.141308.28476@urartu.\n>11sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n>\n \n>[(*] Source: \"Adventures in the Near East, 1918-1922\" by A. Rawlinson,\n>[(*] Jonathan Cape, 30 Bedford Square, London, 1934 (First published 1923) \n>[(*] (287 pages).\n>\n>[DD] Such a pile of garbage! First off, the above reference was first published\n>[DD] in 1924 NOT 1923, and has 353 pages NOT 287! Second, upon checking page \n>[DD] 178, we are asked to believe:\n> \n>[VD] No, Mr.Davidian ... \n> \n>[VD]  It was first published IN 1923 (I have the book on my desk,now!) \n>[VD]                         ********\n> \n>[VD]  and furthermore,the book I have does not have 353 pages either, as you\n>[VD]  claimed, Mr.Davidian..It has 377 pages..Any question?..\n>  \n>Well, it seems YOUR book has its total page numbers closer to mine than the \nn>crap posted by Mr. [(*]!\n \n o boy!   \n \n Please, can you tell us why those quotes are \"crap\"?..because you do not \n like them!!!...because they really exist...why?\n \n As I said in my previous posting, those quotes exactly exist in the source \n given by Serdar Argic .. \n  \n You couldn't reject it...\n \n>\n>In addition, the Author's Preface was written on January 15, 1923, BUT THE BOOK\n>was published in 1924.\n \n Here we go again..\n In the book I have, both the front page and the Author's preface give \n the same year: 1923 and 15 January, 1923, respectively!\n (Anyone can check it at her/his library,if not, I can send you the copies of\n pages, please ask by sct) \n \n \nI really don't care what year it was first published(1923 or 1924)\nWhat I care about is what the book writes about murders, tortures,et..in\nthe given quotes by Serdar Argic, and your denial of these quotes..and your\ngroundless accussations, etc. \n \n>\n[...]\n> \n>[DD] I can provide .gif postings if required to verify my claim!\n> \n>[VD] what is new?\n> \n>I will post a .gif file, but I am not going go through the effort to show there \n>is some Turkish modified re-publication of the book, like last time!\n \n \n I claim I have a book in my hand published in 1923(first publication)\n and it exactly has the same quoted info as the book published\n in 1934(Serdar Argic's Reference) has..You couldn't reject it..but, now you\n are avoiding the real issues by twisting around..\n \n Let's see how you lie!..(from 'non-existing' quotes to re-publication)\n \n First you said there was no such a quote in the given reference..You\n called Serdar Argic a liar!..\n I said to you, NO, MR.Davidian, there exactly existed such a quote...\n (I even gave the call number, page numbers..you could't reject it.)\n \n And now, you are lying again and talking about \"modified,re-published book\"\n(without any proof :how, when, where, by whom, etc..)..\n (by the way, how is it possible to re-publish the book in 1923 if it was\n  first published in 1924(your claim).I am sure that you have some 'pretty \n  well suited theories', as usual)\n \n And I am ready to send the copies of the necessary pages to anybody who\n wants to compare the fact and Mr.Davidian's lies...I also give the call number\n and page numbers again for the library use, which are:  \n                 949.6 R 198\n   \n  and the page numbers to verify the quotes:218 and 215\n              \n     \n \n> \n>It is not possible that [(*]'s text has 287 pages, mine has 353, and yours has\n>377!\n \n Now, are you claiming that there can't be such a reference by saying \"it is\n not possible...\" ..If not, what is your point?\n \n Differences in the number of pages?\n Mine was published in 1923..Serdar Argic's was in 1934..\n No need to use the same book size and the same letter \n charachter in both publications,etc, etc.. does it give you an idea!!\n \n The issue was not the number of pages the book has..or the year\n first published.. \n And you tried to hide the whole point..\n the point is that both books have the exactly the same quotes about\n how moslems are killed, tortured,etc by Armenians..and those quotes given \n by Serdar Argic exist!! \n It was the issue, wasn't-it?  \n \n you were not able to object it...Does it bother you anyway? \n \n You name all these tortures and murders (by Armenians) as a \"crap\"..\n People who think like you are among the main reasons why the World still\n has so many \"craps\" in the 1993. \n \n Any question?\n \n\n<C5wwqA.9wL@news.cso.uiuc.edu>\nhovig@uxa.cso.uiuc.edu (Hovig Heghinian)\n\n>   Hmm ... Turks sure know how to keep track of deaths, but they seem to\n>lose count around 1.5 million.\n\nWell, apparently we have another son of Dro 'the Butcher' to contend with. \nYou should indeed be happy to know that you rekindled a huge discussion on\ndistortions propagated by several of your contemporaries. If you feel \nthat you can simply act as an Armenian governmental crony in this forum \nyou will be sadly mistaken and duly embarrassed. This is not a lecture to \nanother historical revisionist and a genocide apologist, but a fact.\n\nI will dissect article-by-article, paragraph-by-paragraph, line-by-line, \nlie-by-lie, revision-by-revision, written by those on this net, who plan \nto 'prove' that the Armenian genocide of 2.5 million Turks and Kurds is \nnothing less than a classic un-redressed genocide. We are neither in \nx-Soviet Union, nor in some similar ultra-nationalist fascist dictatorship, \nthat employs the dictates of Hitler to quell domestic unrest. Also, feel \nfree to distribute all responses to your nearest ASALA/SDPA/ARF terrorists,\nthe Armenian pseudo-scholars, or to those affiliated with the Armenian\ncriminal organizations.\n\nArmenian government got away with the genocide of 2.5 million Turkish men,\nwomen and children and is enjoying the fruits of that genocide. You, and \nthose like you, will not get away with the genocide's cover-up.\n\nNot a chance.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9545, "properties": {"category": "misc.forsale", "text": "From: disham@cymbal.calpoly.edu (David Isham)\nSubject: Cobra 146GTL SSB/CB FOR SALE!\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 13\n\nWell, I have it forsale again (the last deal didn't work out) and I lowered\nthe price again! \n\nCobra 146 GTL Single side band w/mike  --> $75 or best offer!\n\n\ndave\n\n\n--------------------------------------------------------------------------------Cal Poly,  \t\tLife, Liberty, and the\nSLO, CA 93401\t\tPursuit of Land Speed Records.\n\t\t\t\t-Autobahn Commuters\n--------------------------------------------------------------------------------\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9546, "properties": {"category": "soc.religion.christian", "text": "From: fox@graphics.cs.nyu.edu (David Fox)\nSubject: Re: Pantheism & Environmentalism\nOrganization: Courant Institute of Mathematical Sciences\nLines: 17\n\nIn article <Apr.13.00.08.04.1993.28376@athos.rutgers.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n\n   In article <Apr.12.03.44.17.1993.18833@athos.rutgers.edu> heath@athena.cs.uga.edu (Terrance Heath) writes:\n\n   >\tI realize I'm entering this discussion rather late, but I do\n   >have one question. Wasn't it a Reagan appointee, James Watt, a\n   >pentacostal christian (I think) who was the secretary of the interior\n   >who saw no problem with deforestation since we were \"living in the\n   >last days\" and ours would be the last generation to see the redwoods\n   >anyway?\n\n   I heard the same thing, but without confirmation that he actually said it.\n   It was just as alarming to us as to you; the Bible says that nobody knows\n   when the second coming will take place.\n\nNor does it say that if you *do* find out when it will happen you\nshould rape everything in sight just before.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9547, "properties": {"category": "soc.religion.christian", "text": "From: gsu0033@uxa.ecn.bgu.edu (Eric Molas)\nSubject: \"Accepting Jeesus in your heart...\"\nOrganization: Educational Computing Network\nLines: 59\n\nFirstly, I am an atheist. I am not posting here as an immature flame\nstart, but rather to express an opinion to my intended audience.\n\nThe meaning of my existence is a question I ask myself daily.  I live \nin fear of what will happen when I  die.   \n\nI bet some of you are licking your lips now, because you think that\nI'm a person on the edge of accepting jeezus.             \n\nI was raised in a religious atmosphere, and attended 13 years of\nreligious educational institutions..  I know the bible well. So well\nI can recognize many passages from memory.  \n\n<<****Strong opinions start here...****>>\n\n1) The human being is an _animal_ who has, due to his/her advanced\nmental facilities, developed religious as a satisfiable solution to\nexplain the unexplainable.  (For example the ancient Greeks believed\nthat Apollo drove his chariot across the sky each day was real.  Due\nto the advancement of our technology, we know this to be false.  \n\nChristianity is an infectious cult.  The reasons it flourishes are \nbecause 1) it gives people without hope or driven purpose in life\na safety blanked to hide behind.  \"Oh wow..all i have to do is \nfollow this christian moral standard and I get eternal happiness.\"\nFor all of you \"found jeezus\" , how many of you were \"on the brink?\"\n\nbut i digress...   The other reason christianity flourishes is its\ninfectious nature.  A best friend of mine breifly entered a christian\ngroup and within months, they set ministry guidelines for him which\nbasicaly said this -->Priority #1 Spread the Word.\n\n\nWe are _just_ animals.  We need sleep, food, and we reproduce.  And we\ndie.      \n\nReligion (especially Christianity) is nothing more than a DRUG.\nSome people use drugs as an escape from reality.  Christians inject\nthemselves with jeezus and live with that high. \n\nIt pities me how many millions of lives have been lost in religious\nwars, of which Christianity has had no small part.\n\nWhen Christians see a \"non-believer\", they say that person is blind\nto the truth, but they cannot realize that it is _they_ who live\nwith this mask of fakeness each day.  Jesus was just prophet #37696 \nwho happened to have a large influence because at that time the Romans\nwere (circa 69ad) dispersing the Jewish population and communities\nneeded some sort of cohesive element to keep them strong in that time\nof dire need.\n\nI must go.  These are but a few of my thoughts on Christianity.\n\n\n\n-- \n//Damien Endemyr the Unpure Knight of Doom                          //\n//\"So I've acquired a taste for blood and have adopted a nocturnal  //\n//lifestyle.  That Doesnt mean I'm a vampire.....\"                  //\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9548, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Investment in Yehuda and Shomron\nOrganization: The Department of Redundancy Department\nLines: 12\n\nIn article <1993Apr18.183148.4802@das.harvard.edu> adam@endor.uucp (Adam Shostack) writes:\n\n>\tI think \"house Jews,\" a reference to a person of Jewish\n>ancestry who issues statements for a company or organization that\n>condemn Judaism is perfectly sufficeint.\n\nI believe that CPR is himself such a \"house Jew\".\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9549, "properties": {"category": "comp.windows.x", "text": "From: Robert Andrew Ryan <rr2b+@andrew.cmu.edu>\nSubject: Re: Monthly Question about XCopyArea() and Expose Events\nOrganization: School of Computer Science, Carnegie Mellon, Pittsburgh, PA\nLines: 19\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <BUZZ.93Apr19125438@lion.bear.com>\n\nExcerpts from netnews.comp.windows.x: 19-Apr-93 Monthly Question about\nXCop.. Buzz Moschetti@bear.com (1055) \n\n> A button widget, when pressed, will cause a new item to be drawn in the\n> Window.  This action clearly should not call XCopyArea() \n> (or equiv) directly; instead, it should register the existence of the\n> new item in a memory structure and let the same expose event handler\n> that handles \"regular\" expose events (e.g. window manager-driven\n> exposures) take care of rendering the new image. \n\nHmmm.... Clearly?  Depends on your programming model.  It is not at all\nforbidden to draw outside the context of an expose event.  Certainly any\ninternal data structures should be maintained such that the visual\nappearance would be maintained properly whenever an expose event happens\nto be generated.  This doesn't preclude drawing immediately after\nupdating the datastructures though... \n\n-Rob \n \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9550, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: donyee@athena.mit.edu (Donald Yee)\nSubject: Re: Tape Backup Question\nOrganization: Massachusetts Institute of Technology\nLines: 24\nNNTP-Posting-Host: pesto.mit.edu\n\nIn article <1993Apr15.195810.26648@sol.ctr.columbia.edu> jerry@msi.com (Jerry Shekhel) writes:\n>Hello folks!\n>\n>I have an Archive XL5580 (internal QIC-80) tape drive, which is pretty\n>comparable to the Colorado Jumbo 250.  Since I have two floppy drives in\n>my system, I'm using a small card (not accelerated) made by Archive to \n>attach my tape drive as a third floppy device.\n>\n>The problem: Although the DOS-based QICstream software works just fine,\n>both the Norton and Central Point backup programs for Windows fail unless\n>I switch the machine to non-turbo speed (I'm using a 486DX/33 EISA).  Since\n>the DOS software works, it can't be a hardware problem, can it?  Has anyone\n>seen similar problems?  Any solutions?  Thanks in advance.\n\nYeah.  Sounds typical.  Windows makes all sorts of extra demands on hardware,\nand therefore your machine can't keep up with things.  Ever notice how when\nacessing the floppies in Windows, everything else slows to a crawl?  I \nimagine your backup and evertyhing else that is running fights for CPU time,\nand sometimes the backup program loses.  Be glad.  I can't even run in \nmedium speed with CP backup on my machine, supposedly because I have a SCSI\nmachine which places extra demands on the data bus.\n\ndon\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9551, "properties": {"category": "rec.autos", "text": "From: plkg_ltd@uhura.cc.rochester.edu (Paul K. Gloger)\nSubject: Subaru Shop manuals for sale\nNntp-Posting-Host: uhura.cc.rochester.edu\nOrganization: University of Rochester - Rochester, New York\nLines: 40\n\n\no Subaru Service Manuals ................................... $10.00\n     This is not a complete set, but includes sections 4, 5 \n     & 6 which cover MECHANICAL COMPONENTS (suspension, wheels \n     & axles, steering, brakes, pedals & control cables, heater \n     & ventilator, air conditioning), BODY (body & exterior, \n     doors & windows, seats, seat belts, interior, instrument \n     panel), and ELECTRICAL (engine electrical system, body \n     electrical system, wiring diagram, and trouble-shooting). \n     These are the genuine Subaru issue manuals.  They are for \n     model year 1986, but have plenty of good information that \n     applies to other years as well.\n\n\nAnd, as long as I'm posting (end of car stuff),\n\no Miscellaneous Darkroom Equipment ........................ $75.00\n     Solar enlarger (several objective lenses) with easel and \n     timer, negative carriers for 35mm and 2 1/4 x 3 1/4, misc.\n     printing masks.  Developing tanks, thermometer, trays, \n     constant-temperature bath, ground glass, mirrors, darkroom\n     lamps, glassware, el-cheap-o tripods..... and (as they say)\n                             MUCH   MORE!\n\n\no Beautiful Antique Buffet ............................... $1500.00\n     Solid cherry (no veneer).  Handmade, with very interesting\n     dovetail corners in the drawers.  Built (we think) around \n     1880.  Not gaudy or covered with gew-gaws; a simple, elegant \n     piece of furniture, but too big (60\" long, 37\" tall, 24\" \n     deep) for our little Cape Cod house.\n\n\nWill deliver pricier items (ie, over $10) anywhere in the Rochester \narea.  (And will consider delivering the others.)  Will deliver any \nof it on UofR Campus between now and graduation.\n\nCall or E-Mail:   Paul or Mary \n                  (716) 359-2350  (Just south of Rochester, NY)\n                  plkg_ltd@uhura.cc.rochester.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.450+0000", "event": "documents", "entityId": 9552, "properties": {"category": "rec.sport.hockey", "text": "From: slegge@kean.ucs.mun.ca\nSubject: Re: NHL Team Captains\nLines: 12\nOrganization: Memorial University. St.John's Nfld, Canada\n\nNJ> : >And, while we are on the subject, has a captain ever been \ntraded,  \nNJ> : >resigned, or been striped of his title during the season? Any \nother \nNJ> : >team captain trivia would be appreciated.    \n \nMike Foligno was captain of the Buffalo Sabres when he was traded to\nToronto.\n \nStephen Legge\nSLEGGE@kean.ucs.mun.ca\n\\\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9553, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tpeng@umich.edu (Timothy Richard Peng)\nSubject: Re: Duo 230 crashes aftersleep (looks like Apple bug!)\nOrganization: University of Michigan -- Ann Arbor\nLines: 7\nReply-To: tpeng@umich.edu\nNNTP-Posting-Host: livy.ccs.itd.umich.edu\nOriginator: tpeng@livy.ccs.itd.umich.edu\n\nif you have a memory card installed that's not one of apple's, this\nmay be the problem.  for a couple of months after the release of\nthe duo, some memory manufacturers were shipping duo memory cards w/\nimproper (non-self-refreshing) chips.  if you have a third party \ncard, pull it and see if the sleep problem recurs.\n  - tim  \n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9554, "properties": {"category": "rec.autos", "text": "From: zowie@daedalus.stanford.edu (Craig \"Powderkeg\" DeForest)\nSubject: Re: Quick question\nOrganization: Stanford Center for Space Science and Astrophysics\nLines: 8\nNNTP-Posting-Host: daedalus.stanford.edu\nIn-reply-to: ssave@ole.cdac.com's message of Mon, 5 Apr 1993 21:14:57 GMT\n\nIn article <foo> ssave@ole.cdac.com (The Devil Reincarnate) writes:\n    How do you take off the driver side door panel from the inside\n   on an '87 Honda Prelude?  The speaker went scratchy, and I want\n   to access its pins.\n\nWhy are you posting this tripe to rec.autos.vw?\n--\nDON'T DRINK SOAP! DILUTE DILUTE! OK!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9555, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: louray@seas.gwu.edu (Michael Panayiotakis)\nSubject: Re: More Cool BMP files??\nOrganization: George Washington University\nLines: 15\n\n> \n>I downloaded the CompuServe GIF of the month.  A raytraced image of\n>a golf ball next to a hole.  Very nice, 640x480x256 bitmap, easily\n>converted to a Windows BMP.  If anyone wants, I could upload a copy\n>on Cica...\n>\n\nPlease do...and let us know specifics.  (lest I'm the only one on this).\n\nMickey\n-- \npe-|| ||  MICHAEL PANAYIOTAKIS: louray@seas.gwu.edu \nace|| ||                                   ...!uunet!seas.gwu.edu!louray\n|||| \\/|  *how do make a ms-windows .grp file reflect a HD directory??*\n\\\\\\\\   |  \"well I ain't always right, but I've never been wrong..\"(gd)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9556, "properties": {"category": "rec.motorcycles", "text": "From: ak954@yfn.ysu.edu (Albion H. Bowers)\nSubject: Re: Ducati 400 opinions wanted\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 33\nReply-To: ak954@yfn.ysu.edu (Albion H. Bowers)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, bgardner@pebbles.es.com (Blaine Gardner) says:\n\n>In article <1qhm02$mbs@news.ysu.edu> ak954@yfn.ysu.edu (Albion H. Bowers) writes:\n>>In a previous article, markb@wc.novell.com (M. Burnham) says:\n\n>>>Ducati 400's are REALLY slow.  They don't sell them over here in US,\n>>>but considering that the 750SS is not too powerful, the 400 is gonna'\n>>>be a dog.\n\n>>Oh yeah, 12.10 at 108 mph in the quarter is such a slug.  Come on, when was\n>>the last time you used your 750s max power peak?  I think maybe you should\n>>ride one first, before passing judgement, there is a lot more than just\n>>maximum acceleration. \n\n>I guess I'm out of touch, but what exactly is the Ducati 400? A v-twin\n>desmo, or is it that half-a-v-twin with the balance weight where the 2nd\n>cylinder would go? A 12 second 1/4 for a 400 isn't bad at all.\n\nSorry, I should have been more specific.  The 750 SS ran the quater in\n12.10 @ 108.17.  The last small V-twin Duc we got in the US (and the 400 is\na Pantah based V-twin) was the 500SL Pantah, and it ran a creditable 13.0 @\n103.  Modern carbs and what not should put the 400 in the high 12s at 105.\n\nBTW, FZR 400s ran mid 12s, and the latest crop of Japanese 400s will out\nrun that.  It's hard to remember, but but a new GOOF2 will clobber an old\nKZ1000 handily, both in top end and roll-on.  Technology stands still for\nno-one...\n\n-- \nAl Bowers  DOD #900  Alfa  Ducati  Hobie  Kottke  'blad  Iaido  NASA\n\"Well goodness sakes...don't you know that girls can't play guitar?\"\n                                             -Mary Chapin-Carpenter\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9557, "properties": {"category": "comp.graphics", "text": "From: tmc@spartan.ac.BrockU.CA (Tim Ciceran)\nSubject: Re: .GIF to .BMP\nOrganization: Brock University, St. Catharines Ontario\nX-Newsreader: TIN [version 1.1 PL9]\nDistribution: usa\nLines: 21\n\nScott Zabolotzky (saz@hook.corp.mot.com) wrote:\n: I'm not sure if this is the correct place to ask this question.  If not,\n: please forgive me and point me in the right direction.\n\n: Does anybody know of a program that converts .GIF files to .BMP files\n: and if so, where can I ftp it from?  Any help would be greatly \n: appreciated.\n\n: Please respond via e-mail as I do not read this group very often.\n\n: Thanks...Scott\n\nSorry Scott, if you post it here, you can read it here.  There is a shareware\nprogram available via anonymous FTP that will suit your needs.  You'll find \nit at OAK.OAKLAND.EDU  in the subdirectory pub/msdos/graphics.  The file is\ncalled \"GRFWK61T.ZIP.\"\n\nTMC.\n(tmc@spartan.ac.brocku.ca)\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9558, "properties": {"category": "rec.motorcycles", "text": "From: keller@hubble.ifa.hawaii.edu (Tim Keller)\nSubject: airhorns on an FJ1100 review            \nOrganization: Institute for Astronomy, Hawaii\nLines: 44\n\nFor those of you who are thinking about fiamms, you might also want to think\nabout airhorns. I just installed a set of Bosch air horns ordered from \nDennis Kirk (pg. 282 of the latest catalog) on my '85 FJ1100. They are rated\nat 93db at 7 meters. I installed them using 10 gage wire from the battery to\nthe relay to the compressor to ground. My stock horn connectors fit the relay\npins just fine. I soldered the connections to the relay and compressor, and used\na crimp type battery connector and an inline 10amp fuse/connector from NAPA.\n\tI installed the compressor just forward of the fuse box in the front\nfairing by tie wrapping between the steering head frame and the black steel tube\nframe used to support the front fairing. You have to remove the front fairing to\ndo this, but it fits outside of the frame but inside the fairing on the two\nvertical supports just in front of the fuses. Depending how tight your fairing\nfollows the frame, you should be able to fit it somewhere in the fairing.\nThe compressor is about 2\" in diameter and about 5\" long.\n\tThe relay mounted on the front of the steering head frame (it is small\nso there should be plenty of good places for it.\n\tI found a perfect place for the horns that required only tie wraps to\nmount. The horns fit inside the front fairing/frame and stick out on either side\njust in front of the air scoops, but behind the turn signals. The back of the\nhorns point back towards the center of the bike and come real close to where\nthe gas tank connects to the front part of the frame. There is just enough\nroom to the outside to allow full lock to lock clearance, and there are nice\ncut outs in the frame for the back of the horn to go into.\n\tThe short horn is even with the fairing, and the long one sticks out\nabout an inch or so, but it is really not that noticable unless you look\nclosely. They end up pointing down slightly and maybe 30 degrees from straight\nahead (perfect for those cagers trying to change lanes into you).\n\tIf you have any other questions about the mounting, email, and I can try\nto explain better. If your bike is not red, then you may want to paint them\nfirst.\n\tHow do they work you ask? They are very, very, very *LOUD*. They sound\nmore like a european sports car than a truck, but a vast improvement over stock.\nI have used them at least daily since installing them, and the 10 amp fuse has\nnot blown yet (although, the duration of the horn blasts have been short).\n\tI've repeatedly scared the shit out of my friends with them, even though\nthey know that I have the horns, they still jump. They are perfect for keeping\nthe pedestrians on the sidewalk.\nThe bottom line is they work, are loud enough to cause pain and suffering to\nthose stupid lane changing cages (as well as take a few years off their lives)\nand are relatively easy to install on the FJ. YMMV.\n\n-TJK\n'85 FJ1100 with \"GET OUT OF MY WAY\" horns.\n\"That looks like a suit you'd fight a fire in\" -comment about the Aerostich\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9559, "properties": {"category": "rec.autos", "text": "From: storrs@eos.ncsu.edu (JERRY STORRS)\nSubject: Re: WARNING.....(please read)...\nOriginator: storrs@c20002-121rd.che.ncsu.edu\nKeywords: brick, rock,  danger, gun, violent, teenagers\nReply-To: storrs@eos.ncsu.edu (JERRY STORRS)\nOrganization: North Carolina State University, Project Eos\nLines: 97\n\n\nIn article <19APR199316162857@erich.triumf.ca>, music@erich.triumf.ca (FRED W. BACH) writes:\n|>Xref: taco alt.parents-teens:1937 rec.autos:101669\n|>Path: taco!gatech!howland.reston.ans.net!zaphod.mps.ohio-state.edu!saimiri.primate.wisc.edu!caen!destroyer!cs.ubc.ca!unixg.ubc.ca!erich.triumf.ca!music\n|>From: music@erich.triumf.ca (FRED W. BACH)\n|>Newsgroups: alt.parents-teens,rec.autos\n|>Subject: Re: WARNING.....(please read)...\n|>Date: 19 Apr 1993 16:16 PST\n|>Organization: TRIUMF: Tri-University Meson Facility\n|>Lines: 52\n|>Distribution: world\n|>Message-ID: <19APR199316162857@erich.triumf.ca>\n|>References: <C5JoIt.E31@bcstec.ca.boeing.com> <18APR199309481599@erich.triumf.ca> <1qs4a9$f87@bigboote.WPI.EDU> <C5r1Iy.8v0@SSD.intel.com>\n|>NNTP-Posting-Host: erich.triumf.ca\n|>Summary: Violent Teenagers and victims need help.\n|>Keywords: brick, rock,  danger, gun, violent, teenagers\n|>News-Software: VAX/VMS VNEWS 1.41    \n|>\n|>In article <C5r1Iy.8v0@SSD.intel.com>, jrowell@ssd.intel.com (Janet Rowell)\n|> writes...\n|>#>Could we plase cease this discussion.  I fail to see why people feel the need \n|>#>to expound upon this issue for days and days on end.  These areas are not\n|>#> meant for this type of discussion.  If you feel the need to do such things,\n|>#> please take your thought elsewhere.  Thanks.\n|># \n|>#I just want to second this request. I value this net group as one where people\n|>#focus on solving problems and go out of their way to be respectful of\n|>#differences. The hostility expressed in the original posting feels like an\n|>#assault. \n|># \n|>#Thanks,\n|>#Jan \n|># \n|>\n|>   Exactly my point.  There is a lot of hostility to, and from, teenagers.\n|>\n|>   Look, I sent these posts here to alt.parents-teens (with a copy to\n|> rec.autos) since you people in this group may have the best advice for\n|> and experience with troubled teenagers.\n|>\n|>   If you follow the news for the northwest USA, you will have heard that a\n|> group of 20-year old boys (barely out of the teens, certainly their outlook\n|> was developed during their teens) just shot and killed an innocent little\n|> girl riding in a car in the Seattle area when her mother (who was driving)\n|> honked her horn at the car with the boys in it.  This is really upsetting\n|> and makes my stomach turn as it would any parent's.   Doesn't your heart\n|> just go out to that poor mother?\n|>\n\nYes, Fred, my heart and prayers go out to the mother and others who have \nbeen victims of these and other senseless crimes.\n\n|>   You folks in this group have a responsibility to offer any good advice\n|> that you may have.  I suspect lots of people all over the world will read\n|> and appreciate your comments.\n|>\n\nHowever, I feel that you have missed the point of the previous postings (see \ntop).  Your statement of 'responsibility' is felt as an attack towards the \nmembers of this group.  You are attempting to make the members of this group\nbe REQUIRED to answer.  The only people who should make a statement are people\nwho have experienced the problem and found a workable solution.\n\n|>   Teenagers both drive cars and are involved in automotive vandalism and\n|> crime.  Maybe someone on this newsgroup has had specific experience in\n|> dealing with violent teenage offenders like these kids are.  At the same\n|> time, maybe you would have some good advice for those hostile people who\n|> sense that are now the potential victims.  Maybe you would have some good\n|> advice for them on how not to pay back and/or not make the situation worse.  \n|> Maybe you have some good advice for local authorities or schools where\n|> this problem is prevalent.  But then again, maybe you're not interested. :-(\n\nMany people are interested, but have no input.  I will restate that your last\nsentence here is seen as an attack on the members of this group.  If people have\ninput, they will give it.  If they do not, YOU should not make them feel \ncompelled (sp?) to respond.  \n\nIf you wish to continue this conversation, PLEASE send e-mail.  DO NOT repost or\nattempt to bait me, I will not make another post (and may I make the same a\nsuggestion to other group members) on this matter.\n\n\n|>\n|>   Thanks in advance for your help, if we get any.\n|>\n\nBTW, your welcome.\n-- \n\n===============================================================================\nJerry L. Storrs, System/Network Manager || ...\"Why do you look for the living\nDept of Chemical Engineering, NCSU      || among the dead?  He is not here, \n   storrs@che.ncsu.edu (preferred)      || He is risen!\"\n   storrs@eos.ncsu.edu                  || ^^^^^^^^^^^       Luke 24:5-6     \n                          <><           ||  THE LORD IS RISEN INDEED!!      \n===============================================================================\nAny statement made is the explicit belief of the writer and not the employer.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9560, "properties": {"category": "sci.crypt", "text": "From: jim@rand.org (Jim Gillogly)\nSubject: Clipper Chip and crypto key-escrow\nSummary: bohica\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nOrganization: Banzai Institute\nLines: 292\nNntp-Posting-Host: mycroft.rand.org\n\nThis document is in the anonymous ftp directory at NIST.  Looks to me\nlike the other shoe has dropped.\n\n\tJim Gillogly\n\tTrewesday, 25 Astron S.R. 1993, 17:00\n\n-------------------\n\nNote:  This file will also be available via anonymous file\ntransfer from csrc.ncsl.nist.gov in directory /pub/nistnews and\nvia the NIST Computer Security BBS at 301-948-5717.\n     ---------------------------------------------------\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n\n_________________________________________________________________\n\nFor Immediate Release                           April 16, 1993\n\n\n                STATEMENT BY THE PRESS SECRETARY\n\n\nThe President today announced a new initiative that will bring\nthe Federal Government together with industry in a voluntary\nprogram to improve the security and privacy of telephone\ncommunications while meeting the legitimate needs of law\nenforcement.\n\nThe initiative will involve the creation of new products to\naccelerate the development and use of advanced and secure\ntelecommunications networks and wireless communications links.\n\nFor too long there has been little or no dialogue between our\nprivate sector and the law enforcement community to resolve the\ntension between economic vitality and the real challenges of\nprotecting Americans.  Rather than use technology to accommodate\nthe sometimes competing interests of economic growth, privacy and\nlaw enforcement, previous policies have pitted government against\nindustry and the rights of privacy against law enforcement.\n\nSophisticated encryption technology has been used for years to\nprotect electronic funds transfer.  It is now being used to\nprotect electronic mail and computer files.  While encryption\ntechnology can help Americans protect business secrets and the\nunauthorized release of personal information, it also can be used\nby terrorists, drug dealers, and other criminals.\n\nA state-of-the-art microcircuit called the \"Clipper Chip\" has\nbeen developed by government engineers.  The chip represents a\nnew approach to encryption technology.  It can be used in new,\nrelatively inexpensive encryption devices that can be attached to\nan ordinary telephone.  It scrambles telephone communications\nusing an encryption algorithm that is more powerful than many in\ncommercial use today.\n\nThis new technology will help companies protect proprietary\ninformation, protect the privacy of personal phone conversations\nand prevent unauthorized release of data transmitted\nelectronically.  At the same time this technology preserves the\nability of federal, state and local law enforcement agencies to\nintercept lawfully the phone conversations of criminals. \n\nA \"key-escrow\" system will be established to ensure that the\n\"Clipper Chip\" is used to protect the privacy of law-abiding\nAmericans.  Each device containing the chip will have two unique\n\n\n                                2\n\n\n\"keys,\" numbers that will be needed by authorized government\nagencies to decode messages encoded by the device.  When the\ndevice is manufactured, the two keys will be deposited separately\nin two \"key-escrow\" data bases that will be established by the\nAttorney General.  Access to these keys will be limited to\ngovernment officials with legal authorization to conduct a\nwiretap.\n\nThe \"Clipper Chip\" technology provides law enforcement with no\nnew authorities to access the content of the private\nconversations of Americans.\n\nTo demonstrate the effectiveness of this new technology, the\nAttorney General will soon purchase several thousand of the new\ndevices.  In addition, respected experts from outside the\ngovernment will be offered access to the confidential details of\nthe algorithm to assess its capabilities and publicly report\ntheir findings.\n\nThe chip is an important step in addressing the problem of\nencryption's dual-edge sword:  encryption helps to protect the\nprivacy of individuals and industry, but it also can shield\ncriminals and terrorists.  We need the \"Clipper Chip\" and other\napproaches that can both provide law-abiding citizens with access\nto the encryption they need and prevent criminals from using it\nto hide their illegal activities.  In order to assess technology\ntrends and explore new approaches (like the key-escrow system),\nthe President has directed government agencies to develop a\ncomprehensive policy on encryption that accommodates:\n\n     --   the privacy of our citizens, including the need to\n          employ voice or data encryption for business purposes;\n\n     --   the ability of authorized officials to access telephone\n          calls and data, under proper court or other legal\n          order, when necessary to protect our citizens;\n\n     --   the effective and timely use of the most modern\n          technology to build the National Information\n          Infrastructure needed to promote economic growth and\n          the competitiveness of American industry in the global\n          marketplace; and \n\n     --   the need of U.S. companies to manufacture and export\n          high technology products.\n\nThe President has directed early and frequent consultations with\naffected industries, the Congress and groups that advocate the\nprivacy rights of individuals as policy options are developed.\n\n\n\n                                3\n\nThe Administration is committed to working with the private\nsector to spur the development of a National Information\nInfrastructure which will use new telecommunications and computer\ntechnologies to give Americans unprecedented access to\ninformation.  This infrastructure of high-speed networks\n(\"information superhighways\") will transmit video, images, HDTV\nprogramming, and huge data files as easily as today's telephone\nsystem transmits voice.\n\nSince encryption technology will play an increasingly important\nrole in that infrastructure, the Federal Government must act\nquickly to develop consistent, comprehensive policies regarding\nits use.  The Administration is committed to policies that\nprotect all Americans' right to privacy while also protecting\nthem from those who break the law.\n\nFurther information is provided in an accompanying fact sheet. \nThe provisions of the President's directive to acquire the new\nencryption technology are also available.  \n\nFor additional details, call Mat Heyman, National Institute of\nStandards and Technology, (301) 975-2758.\n\n---------------------------------\n\n\nQUESTIONS AND ANSWERS ABOUT THE CLINTON ADMINISTRATION'S\nTELECOMMUNICATIONS INITIATIVE\n\n\n\n\nQ:   Does this approach expand the authority of government\n     agencies to listen in on phone conversations?\n\nA:   No.  \"Clipper Chip\" technology provides law enforcement with\n     no new authorities to access the content of the private\n     conversations of Americans.\n\nQ:   Suppose a law enforcement agency is conducting a wiretap on\n     a drug smuggling ring and intercepts a conversation\n     encrypted using the device.  What would they have to do to\n     decipher the message?\n\nA:   They would have to obtain legal authorization, normally a\n     court order, to do the wiretap in the first place.  They\n     would then present documentation of this authorization to\n     the two entities responsible for safeguarding the keys and\n     obtain the keys for the device being used by the drug\n     smugglers.  The key is split into two parts, which are\n     stored separately in order to ensure the security of the key\n     escrow system.\n\nQ:   Who will run the key-escrow data banks?\n\nA:   The two key-escrow data banks will be run by two independent\n     entities.  At this point, the Department of Justice and the\n     Administration have yet to determine which agencies will\n     oversee the key-escrow data banks.\n\nQ:   How strong is the security in the device?  How can I be sure\n     how strong the security is?  \n\nA:   This system is more secure than many other voice encryption\n     systems readily available today.  While the algorithm will\n     remain classified to protect the security of the key escrow\n     system, we are willing to invite an independent panel of\n     cryptography experts to evaluate the algorithm to assure all\n     potential users that there are no unrecognized\n     vulnerabilities.\n\nQ:   Whose decision was it to propose this product?\n\nA:   The National Security Council, the Justice Department, the\n     Commerce Department, and other key agencies were involved in\n     this decision.  This approach has been endorsed by the\n     President, the Vice President, and appropriate Cabinet\n     officials.\n\nQ:   Who was consulted?  The Congress?  Industry?\n\nA:   We have on-going discussions with Congress and industry on\n     encryption issues, and expect those discussions to intensify\n     as we carry out our review of encryption policy.  We have\n     briefed members of Congress and industry leaders on the\n     decisions related to this initiative.\n\nQ:   Will the government provide the hardware to manufacturers?\n\nA:   The government designed and developed the key access\n     encryption microcircuits, but it is not providing the\n     microcircuits to product manufacturers.  Product\n     manufacturers can acquire the microcircuits from the chip\n     manufacturer that produces them.\n\nQ:   Who provides the \"Clipper Chip\"?\n\nA:   Mykotronx programs it at their facility in Torrance,\n     California, and will sell the chip to encryption device\n     manufacturers.  The programming function could be licensed\n     to other vendors in the future.\n\nQ:   How do I buy one of these encryption devices? \n\nA:   We expect several manufacturers to consider incorporating\n     the \"Clipper Chip\" into their devices.\n     \nQ:   If the Administration were unable to find a technological\n     solution like the one proposed, would the Administration be\n     willing to use legal remedies to restrict access to more\n     powerful encryption devices?\n\nA:   This is a fundamental policy question which will be\n     considered during the broad policy review.  The key escrow\n     mechanism will provide Americans with an encryption product\n     that is more secure, more convenient, and less expensive\n     than others readily available today, but it is just one\n     piece of what must be the comprehensive approach to\n     encryption technology, which the Administration is\n     developing.\n\n     The Administration is not saying, \"since encryption\n     threatens the public safety and effective law enforcement,\n     we will prohibit it outright\" (as some countries have\n     effectively done); nor is the U.S. saying that \"every\n     American, as a matter of right, is entitled to an\n     unbreakable commercial encryption product.\"  There is a\n     false \"tension\" created in the assessment that this issue is\n     an \"either-or\" proposition.  Rather, both concerns can be,\n     and in fact are, harmoniously balanced through a reasoned,\n     balanced approach such as is proposed with the \"Clipper\n     Chip\" and similar encryption techniques.\n\nQ:   What does this decision indicate about how the Clinton\n     Administration's policy toward encryption will differ from\n     that of the Bush Administration?  \n\nA:   It indicates that we understand the importance of encryption\n     technology in telecommunications and computing and are\n     committed to working with industry and public-interest\n     groups to find innovative ways to protect Americans'\n     privacy, help businesses to compete, and ensure that law\n     enforcement agencies have the tools they need to fight crime\n     and terrorism.\n\nQ:   Will the devices be exportable?  Will other devices that use\n     the government hardware?\n\nA:   Voice encryption devices are subject to export control\n     requirements.  Case-by-case review for each export is\n     required to ensure appropriate use of these devices.  The\n     same is true for other encryption devices.  One of the\n     attractions of this technology is the protection it can give\n     to U.S. companies operating at home and abroad.  With this\n     in mind, we expect export licenses will be granted on a\n     case-by-case basis for U.S. companies seeking to use these\n     devices to secure their own communications abroad.  We plan\n     to review the possibility of permitting wider exportability\n     of these products.\n\n \n     \n-- \n\tJim Gillogly\n\tTrewesday, 25 Astron S.R. 1993, 17:01\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9561, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: Richard.Muratti@f341.n632.z3.fidonet.org (Richard Muratti)\nSubject: Parallel port\nX-FTN-To: All\nLines: 25\n\nCan anybody please help me with information on the use of the bi-directional\nprinter port.\n\nI have successfully used one on a Toshiba laptop by enabling bit 0 of port\n0x37f and controlling bit 7 of port 0x37a for the direction of data flow (ie\n\"0\" for output, \"1\" for input).\n\nThe same code does not work on my desktop machine. I have heard that i might\nhave to use bit 5 of port 0x37a, however this also does not work.\n\nFor a parallel port i am using one of those IDE SUPER I/O cards and have been\nrunning a tape backup unit off it via a parallel to scsi converter so i am\npretty sure that the printer port is bi-directional.\n\n\nAny information would be greatly appreasiated.\n\nPlease post a reply here or Email me on\n\nINTERNET rick@cabsav.vut.edu.au\n\nThanks\nRichard Muratti.\n\n * Origin: Custom Programming BBS (3:632/341)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9562, "properties": {"category": "rec.autos", "text": "From: tommy@boole.att.com (Tommy Reingold)\nSubject: RFD: rec.autos.saab\nArticle-I.D.: rodan.1psb8qINNbb2\nOrganization: AT&T Bell Labs, Holmdel, NJ, USA\nLines: 42\nNNTP-Posting-Host: rodan.uu.net\n\nREQUEST FOR DISCUSSION\n\nThis is a request for discussion on the creation of a newsgroup\nconcerning Saab cars.  It will allow participaants to exchange\ninformation on purchasing, maintaining, repairing, and outfitting\nSaabs.\n\nGroup Name:\n\n\trec.autos.saab\n\nStatus:\n\n\tUnmoderated\n\nRationale:\n\n\tThere may be enough people with Saab cars or interested in\n\tbuying a Saab or interested in knowing more about Saabs for any\n\treason to justify such a new newsgroup.  The recent growth of\n\tthe net could improve the turnaround time between posing a\n\tquestion and receiving answers from the community.\n\nDiscussion:\n\n\tComments on this proposed new newsgroup should be posted to the\n\tUSENET Newsgroup \"news.groups\".  If the reader is not able to\n\tdo so, comments may be e-mailed to the proposer, at the address\n\tbelow.\n\nVoting:\n\n\tIf no problems arise, voting will start 1 month from the\n\tposting date of this RFD.\n\nProposer:\n\nTommy Reingold          tommy@boole.att.com\n-- \nTommy Reingold\nAT&T Bell Labs, Holmdel, NJ\ntommy@boole.att.com or att!boole!tommy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9563, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: balog@eniac.seas.upenn.edu (Eric J Balog)\nSubject: A: DRIVE WON'T BOOT\nOrganization: University of Pennsylvania\nLines: 26\nNntp-Posting-Host: eniac.seas.upenn.edu\n\nHi!\n\nI recently switched my 3.5\" drive to A:. The problem is, while I can read and\nwrite to both the new A: and B: correctly, I can't boot from a floppy in A:.\nI've checked the CMOS settings; it is set for Floppy Seek at Boot and Boot \nOrder A:,C:. \n\nOnce, I had a floppy that did not have the systems files on it in A:. I got a\nmessage telling me to put a disk systems disk in the drive. It didn't work.\nWhen I do have a systems disk in the A: drive, this is what happens:\n1) Power-on and Memory Test;\n2) A: light comes on\n3) B: light comes on, followed by a short beep;\n4) HD light comes on for an instant;\n5) B: light comes on again, then nothing happens\n\nThe light goes off, there is no disk activity of any kind, and the screen \nblanks. I can't even use ctrl-alt-del.\n\nAny suggestions.\n\nThanks in advance.\n\nEric Balog \nbalog@eniac.seas.upenn.edu\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9564, "properties": {"category": "comp.graphics", "text": "From: joachim@kih.no (joachim lous)\nSubject: Re: XV for MS-DOS !!!\nOrganization: Kongsberg Ingeniorhogskole\nLines: 20\nNNTP-Posting-Host: samson.kih.no\nX-Newsreader: TIN [version 1.1 PL8]\n\nNOE-MAILADDRESS@eicn.etna.ch wrote:\n> I'm sorry for...\n\n>     1)  The late of the answer but I couldn't find xv221 for msdos 'cause \n> \tI forgot the address...but I've retrieve it..\n\n>     2)  Posting this answer here in comp.graphics 'cause I can't use e-mail,\n>    ^^^  not yet....\n\n>    2) My bad english 'cause I'm a Swiss and my language is french....\n    ^^^\nIf french is your language, try counting in french in stead, maybe\nit will work better.... :-)\n\n    _______________________________\n   / _ L*   /  _  / .    /      _  /_  \"One thing is for sure: The sheep\n  /  _)    /()(/(/)//)) /_ ()(/_) / /  Is NOT a creature of the earth.\"\n / \\_)~  (/ Joachim@kih.no       / /     \n/_______________________________/ / -The back-masking on 'Haaden II'\n /_______________________________/  from 'Exposure' by Robert Fripp.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9565, "properties": {"category": "soc.religion.christian", "text": "From: lieuwen@allegra.att.com (Dan Lieuwen)\nSubject: Re: The obvious isn't politically correct.\nOrganization: AT&T Bell Laboratories, Murray Hill, NJ\nLines: 5\n\nThe last state church was in Massachusetts.  Sam Adams, the patriot-brewmaster,\nduring his tenure as governor after the Revolutionary War got it passed.\nI believe it was eliminated around 1820.\n\ndan\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9566, "properties": {"category": "soc.religion.christian", "text": "From: healta@saturn.wwc.edu (Tammy R Healy)\nSubject: Re: Branch Davidians info\nOrganization: Walla Walla College\nLines: 40\n\nIn article <Mar.18.02.31.54.1993.25350@athos.rutgers.edu> clitton@opie.bgsu.edu writes:\n>From: clitton@opie.bgsu.edu\n>Subject: Branch Davidians info\n>Date: 18 Mar 93 07:31:55 GMT\n>I am looking for any information on the Branch Davidians.  Send info to Chad\n>Litton, ACS Dept. BGSU, Bowling Green OH  43403.  Or e-mail to\n>clitton@andy.bgsu.edu  Thanks in advance.\n\nI don't claim to be an expert on the branch Davidians, but I might know more \nthan most.\n\nThe Branch Davidian group (led by Koresh) is actually one of two off-shoots \nof a group known as the Shephard's Rod.  The Shephard's Rod (now \ndefunct as far as I know)broke off from the SDA Church in the 30's.\n\nThe Shephard's Rod broke away from the SDA Church because they felt that the \nSDA Church was becoming weak and falling into apostacy.  They felt that they \nwere the remnant spoken about in Revelation.\n\nAbout the Koresh group, Koresh gained control of it in 1987 or 1988.  Once \nin control, he made himself the center of it. He proclaimed himself as \nChrist.\n\nKoresh himself came from an SDA background. He was excommunicated as a young \nadult by the local congregation for trying to exert too much control over \nthe youth in the church.  After this, he joined the Branch Davidians.\n\nThey were/are a survivalist cult. This is why they had the stockpile of \nweapons, food, a bomb shelter, etc.  They had no intent of raiding the US \ngovernment or anything. They were preparing for Armaggedon and were \nputting themselves in a self defense position.  \n\nIn my opinion, if the ATF and the FBI had left well enough alone, we wouldn'\nt have the blood of 20+ children crying out from the ashes in Waco.\n\nIf you want to know about The Shephard's Rod, you might want to visit the \nlocal SDA church and talk to some of the older people.  They could give you \nsome insight into where Koresh got his theology.\n\nTammy\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9567, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ejbehr@rs6000.cmp.ilstu.edu (Eric Behr)\nSubject: Asante EN/SC hangs SCSI devices\nReply-To: behr@math.ilstu.edu (Eric Behr)\nOrganization: Central Illinois Surfing Club\nLines: 31\n\nI just hooked up my Mac IIsi to a relatively old (1 year?) Asante EN/SC\nadapter. The 10Base-T connection works like a charm. I installed the\nnewest drivers from Asante's ftp server.\n\nThe problem begins when I attach one more device to the SCSI chain -\nspecifically a 50MB drive. I power up the drive, then the Mac. The Mac\ntests memory, etc. Just before the \"happy Mac face\" normally shows up, the\npower light on the EN/SC goes out, and the boot process stops. So I can use\nthe network, or the external drive, but not both at once. This makes the\nAsante box pretty much unusable.\n\nIt doesn't look like a purely electrical SCSI problem, because if I turn\non the drive just a second or so too late, so that it doesn't get noticed\nduring the initial SCSI polling, the Mac boots normally and the adapter\nworks, even though the hard disk is powered on and connected. The Mac has\n*never* once failed to boot from its internal drive up to now (and I've had\nit for over a year).\n\nHere is what I tried: changing the SCSI ID's of the EN/SC and the disk --\nseveral permutations; changing the order of devices, i.e. the EN/SC at the\nhead or tail of the chain; overterminating with an external terminator\n(both devices have internal ones); underterminating, i.e. removing internal\nresistors from the hard disk; trying another EN/SC box; trying another\nidentical drive; trying several different SCSI cables.\n\nHas anybody seen this? More importantly, does anyone have a solution?\nThanks a lot.    E.\n\n-- \nEric Behr, Illinois State University, Mathematics Department\nbehr@math.ilstu.edu   or   behr@ilstu.bitnet  (please avoid!)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9568, "properties": {"category": "comp.graphics", "text": "From: ldawes@uahcs2.cs.uah.edu (Lisa Dawes)\nSubject: gif aerial maps?\nReply-To: ldawes@uahcs2.cs.uah.edu (Lisa Dawes)\nOrganization: Computer Science Dept. - Univ. of Alabama in Huntsville\nLines: 5\n\nIs there an ftp site for maps of the US.  Preferably aerial\nphotographs?\n\nThanks\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9569, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: prg@nessie.mcc.ac.uk (Pete Green)\nSubject: Wanted: Advice/comments on building a PC\nDistribution: uk\nOrganization: Manchester Computing Centre\nLines: 14\n\nIn the next few months I am intending to build a 386 or 486 PC system\nfor remote monitoring. I would welcome any comments or advice you may\nhave on the choice of motherboard, HDDs and I/O boards. Recommendations\nfor good companies selling these would be a big help.\n\nMany thanks,\n\nPeter Green.\n\n\n-- \nPeter R. Green ------- Tel:+44 61 200 4738 ---- Fax:+44 61 200 4019 -----------\n  JANET: prg@uk.ac.mcc.nessie            INTERNET: prg%nessie.mcc.ac.uk   \n----------------------- #include <std.disclaimers> ----------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9570, "properties": {"category": "sci.space", "text": "From: clj@ksr.com (Chris Jones)\nSubject: Re: Proton/Centaur?\nReply-To: clj@ksr.com (Chris Jones)\nOrganization: Kendall Square Research Corp\nLines: 20\nIn-reply-to: prb@access.digex.com (Pat)\n\nIn article <1r2aii$ivs@access.digex.net>, prb@access (Pat) writes:\n>In article <1993Apr20.211638.168730@zeus.calpoly.edu> jgreen@trumpet.calpoly.edu (James Thomas Green) writes:\n>>Has anyone looked into the possiblity of a Proton/Centaur combo?\n>\n>I don't know a whole lot on Proton, but given that it is a multi stage\n>rocket,  up to 4 stages, it may not really need the Centaur,  plus\n>it may end up seriously beating on said centaur.   \n\nThe Proton has been used in 2, 3, and 4 stage versions.  The two stage version\nwas used for the first 3 launches, while the 3 and 4 stage versions are used\ntoday.  The four stage version is used mostly for escape (and geosynchronous?)\norbits, while the 3 stage version is used for low earth orbits.  Since this is\nthe version that launched Mir and the Salyuts (and the add-on modules for Mir),\nas long as Centaur is smaller than Mir (which I believe it is), it should fit\nunder the shroud.\n\nI vaguely recall that the Russians are developing a LH2/LOX upper stage for the\nProton.\n--\nChris Jones    clj@ksr.com\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9571, "properties": {"category": "sci.med", "text": "From: wcsbeau@alfred.carleton.ca (OPIRG)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Carleton University, Ottawa, Canada\nLines: 44\n\nIn article <1993Apr16.194316.25522@ohsu.edu> tong@ohsu.edu (Gong Tong) writes:\n>In article <1993Apr16.155123.447@cunews.carleton.ca> wcsbeau@alfred.carleton.ca (OPIRG) writes:\n>>\n>>For cites on MSG, look up almost anything by John W. Olney, a\n>>toxicologist who has studied the effects of MSG on the brain and on\n>>development.  It is undisputed in the literature that MSG is an\n>>excitotoxic food additive, and that its major constituent, glutamate\n>>is essentially the premierie neurotransmitter in the mammalian brain\n>>(humans included).  Too much in the diet, and the system gets thrown\n>>off.  Glutamate and aspartate, also an excitotoxin are necessary in\n>>small amounts, and are freely available in many foods, but the amounts\n>>added by industry are far above the amounts that would normally be\n>>encountered in a ny single food.  By eating lots of junk food,\n>>packaged soups, and diet soft drinks, it is possible to jack your\n>>blood levels so high, that anyone with a sensitivity to these\n>>compounds will suffer numerous *real* physi9logical effects. \n>>Read Olney's review paper in Prog. Brain Res, 1988, and check *his*\n>>sources. They are impecable. There is no dispute.\n>>\n>>                    --Dianne Murray    wcsbeau@ccs.carleton.ca\n>\n>In order to excitotoxin effects of MSG, MSG that in blood must go through \n>blood-brain barrier that I am not sure MSG can go through or not.\n\nElevated levels of Glu and Asp in the blood are able to bypass the\nBlood-brain barrier through the circumventricular organs (or CVO), in\nparticular the adeno and neurohypophysis (pituitary gland) areas.  The\narcuate nucleus of the hypothalamus, and the median eminence regions\nare particularly effected.  CVO areas are not subject to the\nblood-brain barrier. These areas control the release of gonadotropin,\nwhich controls the release and flux of steroids governing development,\nespecially sexual development. Changes in adult rats, which are less\nsensitive to Glu than humans, have been observed: after ingesting Glu,\non a chronic basis, cycles of several steroids are disrupted. Blood\nlevels of somatostatin are significantly reduced, and cyclic release\nof steroids becomes flattened.\n\n                    Hope this helps.\n                    --Dianne Murray: wcsbeau@ccs.carleton.ca\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9572, "properties": {"category": "rec.autos", "text": "From: sorlin@magnus.acs.ohio-state.edu (Steven J Orlin)\nSubject: Re: Changing oil by self.\nKeywords: n\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: usa\nLines: 16\n\nIn article <1993Apr15.170720.8538@colorado.edu> drew@kinglear.cs.colorado.edu (\nDrew Eckhardt) writes:\n>\n>Most cars have drain petcocks in the radiators, and I've never\n>seen nor heard of a vandal opening one.  I imagine that there\n>would be an even lower risk with an oil plug because you have\n>to crawl furthur under the car to open it.\n>\n>Car vandals are usually real traditional in their methods, and do things\n>that don't get them dirty, like keying your car, dumping sand, sugar\n>or mothballs in the gas tank, TPing it, etc.\n\nUSUALLY....go enough places and you'll see stuff happen you didn't think did.\n\n\nSteve\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9573, "properties": {"category": "soc.religion.christian", "text": "From: ata@hfsi.hfsi.com ( John Ata)\nSubject: Re: DID HE REALLY RISE???\nReply-To: <news@opl.com>\nOrganization: HFSI\nLines: 51\n\nIn article <Apr.21.03.26.43.1993.1373@geneva.rutgers.edu> parkin@Eng.Sun.COM writes:\n\n>desperately wanted the Jewish people to accept him as the Messiah.  If\n>the crucification was the will of God how could Jesus pray that this\n>cup pass from him.  Was this out of weakness.  NEVER.  Many men and\n>women have given their lives for their country or other noble causes.\n>Is Jesus less than these.  No he is not.  He knew the crucification\n>was NOT the will of GOD.  God's will was that the Jewish people accept\n>Jesus as the Messiah and that the kingdom of Heaven be established on\n>the earth with Jesus as it's head. (Just like the Jewish people\n>expected). If this had happened 2000 years ago can you imagine what\n\t.\n\t.\n\t.\n\nWhy do you assume that Jesus's plea to His Father \"to let this cup\npass from Him\", was merely a plea to escape death?  When I look at\nJesus in the garden, I see a Man-God, who all His life had had the\npresense of His Father with Him.  As a result, He knew every\ndetail about His death long before the Agony in the Garden.  But\nas that hour approached, He felt abandoned by His Father, His\npresense diminishing with each passing minute.  In addition, it\nwas brought more and more to Jesus's attention (the betrayal of\nJudas was probably a big impact) that His suffering would be to no\navail for many people, especially those who would reject Him, not\nonly then but in the future.  I truly believe that the majority of\nJesus's suffering was mental and spiritual, while the physical\nportion was only the tip of the iceburg.\n\nBTW, we know from John's account that Jesus *shunned* becomming an earthly\nking.  From John:\n\nJOH 6:14    After the people saw the miraculous sign that Jesus did, they\n            began to say, \"Surely this is the Prophet who is to come into the\n            world.\"\nJOH 6:15    Jesus, knowing that they intended to come and make him king by\n            force, withdrew again to a mountain by himself.\n\nThis does not seem like a man who would regret not becoming an\nearthly king.  No, Jesus knew His mission was to redeem all (Jew &\nGentile) people and establish His kingdom in the hearts of those\nwho would believe.  This was utterly mistaken, much to Jesus's\ndismay, as an aspiration to some earthly kingdom.  But He knew\nwhat His Father's will was and followed it obediently even in the\ndarkness of His Passion.\n\n-- \nJohn G. Ata - Technical Consultant | Internet:  ata@hfsi.com\nHFS, Inc.\t\t  VA20     |     UUCP:  uunet!hfsi!ata\n7900 Westpark Drive\t MS:601\t   |    Voice:\t(703) 827-6810\nMcLean, VA  22102\t           |      FAX:\t(703) 827-3729\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9574, "properties": {"category": "sci.electronics", "text": "From: jhwhit01@ulkyvx.louisville.edu\nSubject: Re: What's a good IC for RS232 -> TTL signals??\nLines: 18\nNntp-Posting-Host: ulkyvx.louisville.edu\nOrganization: University of Louisville\n\nIn article <C5nz60.99z@scraps.uucp>, frankh@scraps.uucp (Frank Holden KA3UWW) writes:\n> In <C57zsC.9FL@news.cso.uiuc.edu> rky57514@uxa.cso.uiuc.edu (Tall Cool One ) writes:\n> \n>>I'm looking for an IC that will convert RS232 voltage levels to TTL voltage \n>>levels.  Something relatively inexpensive would be nice, too.  Anyone have\n>>a suggestion??  Thanks.\n> \n> Well it looks as if Digi-Key sells a chip with the number ICL232 that does what\n> you want.  They are selling it for about $3.50...\n \nDigi-Key also sells Quad Line Receivers, parts DS1489AN (68cents) and DS1489N\n(48cents).  A Quad Line Driver, part DS1488 (48cents), is also sold.  I guess\nif you don't won't to supply +12V, the chips with the pump-up circuitry might\nbe worth the extra cost.  But 1488's and 1489's are available at your friendly\nneighborhood RS, parts MC1488 (276-2520) for $1.29 and MC1489 (276-2521) for\n$1.29.\n \nJeff White          jhwhit01@ulkyvx.louisville.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.451+0000", "event": "documents", "entityId": 9575, "properties": {"category": "talk.politics.misc", "text": "From: tak@leland.Stanford.EDU (David William Budd)\nSubject: Re: Rodney King Trial, Civil Rights Violations, Double Jeopardy\nDistribution: us\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 53\n\nIn article <C50puL.CL4@ncratl.AtlantaGA.NCR.COM> mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson) writes:\n>In <1993Apr2.182942.22445@husc3.harvard.edu> spanagel@husc11.harvard.edu (David Spanagel) writes:\n>\n\n\n>|Furthermore, what are the specific charges against the four LAPD officers? \n>|Which civil rights or laws are they accused of violating? \n>\n>I believe it is a general charge, that is no specific right is mentioned.\n\n\nI don't think that this is accurate. I believe, and could be wrong, that\nthere IS a specific right allegedly to have been violated, like the\n14th or due process or whatever.\n\n>|What about double jeopardy? Has there been any concern that a verdict\n>|against Koon, et al. might be overturned upon appeal because they're being tried\n>|again for the same actions? (I thought I heard something on the news about \n>|this.)\n>\n>The SS has previously ruled that since the seperate governments were in\n>essence seperate sovereigns, then double jeopardy does not apply.\n>\n>(If this is true, then could defendents also be tried under city and\n>county governments?)\n>\n>This mornings paper said that the ACLU has decided to reinstate its\n>opposition to this kind of thing. They had earlier suspended their\n>opposition while they examined the King case. There might be hope\n>for the ACLU after all.\n>-- \n\nDouble jeopardy does not apply, but not for the reasons you quote. Double\njeopardy states that a person may not be tried twice on the same charge.\nHowever, the police are not on trial for the crime of excessive force\nor assault. They are NOW on trial for the DIFFERENT crime of violating\nMr. King's civil rights. \n\nAS for the city and county or state trying you more than once, \nit most likely will not happen. This is because cities and states\nhave separate laws governing behaviour. For example, in some states,\nit is an offence to carry marijuana, but not a city offence. Also,\nI think murder is against federal, but not some state laws. \n\n===============================================================================\n !           \\                                                                 \n !       1-------1                     \n ! \\     1_______1           __1__     \"And my mind was filled with wonder,\n !  \\    1_______1     /   ____1____    when the evening headlines read:\n !       !   \\        / /  1__|_|__1    'Richard Cory went home last night,\n !       !    \\/       /   ---------     and put a bullet through his head.'\"\n         ! /    \\/      |   |  \\   \\                                  \n                        |  / \\____/| \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9576, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Hand Held Products, Inc.\nLines: 46\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <1qvjh9INNh4l@hp-col.col.hp.com> dduff@col.hp.com (Dave Duff)  \nwrites:\n> NUT CASE PANICS!!!!JUMPS THE GUN ON THE NET BEFORE GETTING FACTS STRAIGHT!!!!\n\nI really don't understand all this!  I watched on satellite network feeds as  \nperhaps 90 people died before my eyes, while the two Huey's fanned the flames,  \nand the FBI stopped the firetrucks at the gate. \n\nSomething was VERY wrong with that scene.\n\nPerhaps if I'd watched RAMBO movies, I might've been dulled to the pain of  \nfellow humans dying.\n\nThank GOD I still feel.  I'm very sorry for you who don't.  For you who think  \nthey got what they deserved.  Can you really believe that?  Even if Koresh was  \nthe sadistic mad man they said he was, did the others deserve his fate?   If,  \nin fact, he was mad, wasn't that even more reason to believe he duped his  \nfollowers, and therefore they were innocent, brainwashed, victims?  Is there  \nany scenaro that justifies all that death?\n\nAnd if not, it is clear that the deaths would not have occured if the BATF has  \nnot FUCKED UP initially, and now the FBI got impaitent and pushed Korech over  \nthe edge.\n\nAnd that's if you buy the latest version of the \"story\" hook, line, and sinker.   \nI have believed all along that they could not let them live, the embarrassment  \nto the BATF and the FBI would've been too severe.\n\nRemember, this was a suspicion of tax-evasion warrant.  There were no  \nwitnesses, except the FBI.  All information filtered through the FBI.  All they  \nhad to do was allow one remote controlled pool camera be installed near the  \nbuilding, and the press could've done their job, and would've been able to back  \nthe FBI's story with close up video, while incurring no risk to the press.   \nUnless they did not want the public to see something.  The complete lack of any  \nother source of information other than the FBI really causes me concern. \n\n\nSick to my stomach, and getting sicker from all the Government apologists\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9577, "properties": {"category": "rec.motorcycles", "text": "From: parr@acs.ucalgary.ca (Charles Parr)\nSubject: Re: Insurance and lotsa points...\nNntp-Posting-Host: acs3.acs.ucalgary.ca\nOrganization: The University of Calgary, Alberta\nLines: 39\n\nIn article <1993Apr18.230531.11329@bcars6a8.bnr.ca> keithh@bnr.ca (Keith Hanlan) writes:\n>In article <13386@news.duke.edu> infante@acpub.duke.edu (Andrew  Infante) writes:\n>>Well, it looks like I'm F*cked for insurance.\n>>\n>>I had a DWI in 91 and for the beemer, as a rec.\n>>vehicle, it'll cost me almost $1200 bucks to insure/year.\n>>\n>>Now what do I do?\n>\n>Sell the bike and the car and start taking the bus. That way you can\n>keep drinking which seems to be where your priorities lay.\n>\n>I expect that enough of us on this list have lost friends because of\n>driving drunks that our collective sympathy will be somewhat muted.\n\nLook, guy, I doubt anyone here approves of Drunk Driving, but if\nhe's been caught and convicted and punished maybe you ought to\nlighten up? I mean, it isn't like most of us haven't had a few\nand then ridden or driven home. *We* just didn't get caught.\nAnd I can speak for myself and say it will *never* happen again,\nbut that is beside the point.\n\nIn answer to the original poster: I'd insure whatever vehicle\nis cheapest, and can get you to and from work, and suffer\nthrough it for a few years, til your rates drop.\n\nAnd *don't* drink and drive. I had one friend killed by a \ndrunk, and I was rear ended by one, totaling my bike (bent\nframe), and only failing to kill me because I had an eye\non my mirror while I waited at the stoplight.\n\nRegards, Charles\nDoD0.001\nRZ350\n-- \nWithin the span of the last few weeks I have heard elements of\nseparate threads which, in that they have been conjoined in time,\nstruck together to form a new chord within my hollow and echoing\ngourd. --Unknown net.person\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9578, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nLines: 14\n\n\tActually, many of us have noted this. We have noted that the program\n\tstarted at least 4 years ago, that the contracts with VLSI Technology\n\tand Microtoxin were let at least 14 months ago, that production of the\n\tchips is well underway, and so forth.\n\n\tNobody I know has claimed Clinton intitiated the program. But he chose\n\tto go ahead with it.\n\nPerhaps the NSA realised that *no-one* would even contemplate falling for\nthe dual-escrow bluff while under the Bush administration and *had* to\nwait for a Democrat govt to con into promoting this because people *might*\njust believe they were honest.  (Didn't work, did it? :-) )\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9579, "properties": {"category": "misc.forsale", "text": "From: fozzard@fsl.noaa.gov (Richard Fozzard)\nSubject: BMW 530i for sale\nOrganization: NOAA/CIRES (Univ Colo)\nDistribution: co\nLines: 33\n\n1976 BMW 530i\n\nThe original four door sports sedan\n\n\nArctic Blue metallic with gold alloy plus-1 wheels (Rial 15\")\nGoodyear Eagle GT+4 racing tires (mud/snow-rated)\n3.0 liter, 186 HP, fuel injected engine w/Stahl headers\nadjustable gas shocks all around (Koni,BYK)\n4 speed stick, 4 wheel power disc brakes, sunroof, PS, AC\nListen-Up installed hidden speaker stereo w/subwoofer\n\n208K miles (yet much better condition than most cars w/100K)\nMeticulously maintained: all records, 3K mi oil changes\nFaded paint on top, otherwise excellent exterior and interior.\n\nThe car has required no major repair work in the more than ten years I have\nowned it. It has never failed to start or broken down, even in the coldest\nweather. This has been an extraordinarily reliable and economical car, and\nshows every sign of staying that way. Yet it is an absolute thrill to drive\nwhen you take it to secluded twisty mountain road! I sell it now,\nreluctantly, since I just succumbed to the convertible craving and bought a\nnew Miata.\n\n$2500 obo\nRich Fozzard\t497-6011 or 444-3168\n\n\n\n========================================================================\nRichard Fozzard                                 \"Serendipity empowers\"\nUniv of Colorado/CIRES/NOAA     R/E/FS  325 Broadway, Boulder, CO 80303\nfozzard@fsl.noaa.gov                          (303)497-6011 or 444-3168\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9580, "properties": {"category": "comp.windows.x", "text": "From: skelley@umiacs.umd.edu (Stephen Kelley)\nSubject: Expose/Configure event handling (R4 vs R5)\nOrganization: UMIACS, University of Maryland, College Park, MD 20742\nLines: 29\n\nI have two questions (well probably more...) about how Expose & Configure\nevents are handled.\n\nI have an appl. which uses 1 window to draw in.  Since I give the user the\ncapability of scaling and zooming as well as allowing the window to be\nresized, I made a translation table for the Expose & Configure events.\nThe Expose event calls my redraw method while the Configure event\ncalls my rescale method.  The rescale method invokes a \"fake\" Expose\nevent (actually just calls the redraw w/ an appropriate Expose struct)\nto draw the data.\n\nQuest 1.\nWhen the appl. is compiled/linked w/ R4 (running in either R4 or R5 env.)\nI get multiple (>4) redraws when the window gets uncovered or the size\nis changed.  I assume I'm getting cascading events.  Is that right?\nAny suggestions as to how to handle/trap events in a better way?\n\nQuest 2.\nWhen the appl. is compiled/linked w/ R5 I get no Expose events\nwhatsoever.  Do events and/or translation tables act differently in R5?\n\nThanks in advance\n\nSteve\n-- \n==========================================================================================\n\nSteve Kelley\tUMCP CS/UMIACS\t\t\tCaptain, I protest!\nInternet:\tskelley@umiacs.umd.edu\t\tI am *NOT* a merry man! - Worf\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9581, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jemartin@nyx.cs.du.edu (John Martin)\nSubject: Setting up three-user accounting system with WFWG\nOrganization: Nyx, Public Access Unix at U. of Denver Math/CS dept.\nLines: 30\n\nI am a novice (at best) in working with pc networks, and am in the\nprocess of planning a small accounting system for a small business.\n\nThe particular need in this case is for three machines, each in a\ndifferent office of the same building, each having access to a\nWindows-based accounting system.\n\nMy first thought is to set up MS Windows for Workgroups on each of the\nmachines (likely a 486 and two 386's) along with the appropriate Ethernet\ncards and cabling that come with the Windows for Workgroups starter kit (one\nadditional user kit will be necessary).  It then seems logical to purchase\na simple multi-user accounting system, along the lines of DacEasy or\nM.Y.O.B., and fire it all up!  The 486 will more or less act as server with\na report/check printer attached to it.\nCable runs of 30-40 feet will be necessary for this setup.\n\nWell, this all seems too easy to me.  Would any of you network gurus out\nthere tell me if I am out of my mind here?  Any and all suggestions, however\ntrivial, will be immensely appreciated.  My apologies if this has been\nbrought up before.\n\nThanks!\n\nJohn\n--\n John E. Martin    jemartin@nyx.cs.du.edu      University of Puget Sound '92\n    Kent, WA     (formerly martin@ups.edu)   SeinfeldSuperSonicsRushBelaFleck\n--\n John E. Martin    jemartin@nyx.cs.du.edu      University of Puget Sound '92\n    Kent, WA     (formerly martin@ups.edu)   SeinfeldSuperSonicsBC++RushDWeckl\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9582, "properties": {"category": "comp.windows.x", "text": "From: mppa3@syma.sussex.ac.uk (Alan Richardson)\nSubject: Re: How 2 Get Fontname from Fonstruct ???\nOrganization: University of Sussex\nLines: 30\n\nIn article <1993Apr20.105725@narya.gsfc.nasa.gov> \n   dealy@narya.gsfc.nasa.gov (Brian Dealy - CSC) writes:\n>\n>Anyone know how an application can retrieve the name of the font from\n>an application given an XFontStruct *? \n>Would XGetFontProperty work if I passed XA_FONT_NAME? \n>anyone know details of this?  Thanks in advance.\n>Brian\n>\n>-- \n>Brian Dealy                |301-572-8267| It not knowing where it's at  \n>dealy@kong.gsfc.nasa.gov   |            | that's important,it's knowing\n>!uunet!dftsrv!kong!dealy   |            | where it's not at...  B.Dylan\n\n\nTry this:\n\nchar *name=NULL;\nunsigned long value;\n\nif(XGetFontProperty(font, XA_FONT, value)) \n    name=XGetAtomName(dpy, value);\n\nwhere dpy is your Display connection and font your XFontStruct pointer.\n\n-- \nAlan Richardson,                             * \"You don't have to be *\nSchool of Maths & Physical Sciences,         *  old to be wise\"      *\nUniv. of Sussex, Brighton BN1 9QH, ENGLAND   * ******Judas Priest*****\nUK: mppa3@uk.ac.sussex.syma         elsewhere: mppa3@syma.sussex.ac.uk\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9583, "properties": {"category": "comp.sys.mac.hardware", "text": "From: b-clark@nwu.edu (Brian Clark)\nSubject: Re: DSP or other cards for FFT's, anyone?\nNntp-Posting-Host: elvex33.acns.nwu.edu\nOrganization: Northwestern University\nLines: 16\n\nIn article <1qjnpi$bsj@nz12.rz.uni-karlsruhe.de>,\nig25@fg70.rz.uni-karlsruhe.de (Thomas Koenig) wrote:\n> \n> We are doing heavy - duty image processing with some seriously\n> underpowered Mac's (Mac IIsi, for example).  Most of the CPU time is\n> burned in doing FFT's.\n> \n> What cards are out there which would allow us to take away that part\n> of the load from the CPU?  Any DSP 56001 or i860 cards out there,\n> for example?  They'd have to be callable from Think Pascal, to\n> replace the one - and two - dimensional FFT's routines in an already\n> existing program.\n\nCheck out the National Instruments NB-DSP2300. This uses the Texas\nInstruments TMS320C30 chip, which is a true 32 bit floating point DSP. It's\npricey, however.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9584, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith)\nSubject: Re: IDE vs SCSI\nOrganization: The John P. Robarts Research Institute, London, Ontario\nNntp-Posting-Host: valve.heart.rri.uwo.ca\nLines: 34\n\nIn article <wayne.02uv@amtower.spacecoast.org> wayne@amtower.spacecoast.orgX-NewsSoftware: GRn 1.16f (10.17.92) by Mike Schwartz & Michael B. Smith writes:\n\n>> but I still want to know why it intrinsically better\n>> (than IDE, on an ISA bus) when it comes to multi-tasking OS's when\n>> managing data from a single SCSI hard drive.\n>\n>A SCSI controller that transfers data by DMA allows the cpu to request data\n>from the hard drive and continue working while the controller gets the data\n>and moves it to memory. \n\nIDE also uses DMA techniques.  I believe floppy controller also uses DMA,\nand most A/D boards also use DMA.  DMA is no big deal, and has nothing to\ndo directly with SCSI.\n\n> For example, when rewinding or formatting a tape, the command is\n>issued to the controller and the bus is released to allow access to other\n>devices on the bus.  This greatly increases productivity or, at least, do\n>something else while backing up your hard drive :-).  Which happens to be\n>what I am doing while reading this group.\n\nYou can thank your software for that.  If DOS had a few more brains, it\ncould format floppies etc. while you were doing something else.  The\nhardware will support it, but DOS (at least) won't.  Again, this has   \nnothing to do with SCSI.\n\n>Its a long story, but I still use IDE on my 486 except for the CDROM which,\n>thanks to SCSI, I can move between both machines.  If, and when, SCSI is\n>better standardized and supported on the ibm-clone machines, I plan to\n>completely get rid of IDE.\n\nAnd if you stick with DOS you'll wonder why you can't multitask.\n\nAgain I ask why can't a UNIX or OS/2 type OS do all the miraculous things\nwith an IDE harddrive that it can with a (single) SCSI hard drive.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9585, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: Uninterruptible Power Supply\nOrganization: Megatest Corporation\nLines: 40\n\nIn article <1qk724INN474@hp-col.col.hp.com> cab@col.hp.com (Chris Best) writes:\n>I'm no expert at UPS's, but you said something that made it sound like\n>you didn't realize something.  On a typical UPS (well, on ours, anyway),\n>there is NO switchover from AC to DC.  All the protected equipment is\n>ALWAYS running from the batteries (via an inverter), with the usual \n>condition of also having them on charge.  If the power fails, big deal - \n>the computers never see it (until the batteries start to droop, but \n>there's something like 60 car-sized batteries in that cabinet, so it \n>takes a while).\n>\n>If you were gonna run the guts on straight DC instead of an inverter,\n>why not do it all the time?  Then there'd be no switchover to screw\n>things up, and no having to sense the failure fast.  Just keep the DC\n>on charge when the power is on, and it'll be there in zero time when\n>you \"need\" it.\n>\n\nActually, it's a bit more complicated than that...I sounds to me,\nyour UPS takes in AC, rectifies it to DC to charge the batteries, and\nthen takes the battery DC and chops it to AC again, feeding your\nequipment.  This approach is the easiest and cleanest way to\nswitchover from the mains to battery once your power kicks out since,\nas you mentioned, nothing will know about what happened down the line.\n\nAnother way to do the UPS scheme is to use the mains until you\nlose power, and then kick in the battery backup with it's inverter to\nreplace the lost power.  The problem here is the switchover time and\nyou've got to resync the AC in no time flat.\n\nUnfortunately, most everything is built around the assumption that\nAC is available, so the UPS guys have to provide and AC output to\nbe usable...ya sorta have to make it work with what there already.\n\nSimilar story with our telephone system.  It was first invented back\nin the 1800's.  We're still using the same damn system (media) as they\ndid back then.  If I have a phone from back then, I can assure you\nit'll work on today's phone system.  It costs too much to overhaul\neveryone to a new system, so they make it work with what is out there.\n\n.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9586, "properties": {"category": "rec.autos", "text": "From: thatchh@hplsla.hp.com (Thatch Harvey)\nSubject: Re: Removing Rain-X coat on the front windshield, any tips?\nOrganization: HP Lake Stevens, WA\nLines: 21\n\n\n\n   If you want a summer without rain, you're in the wrong place. You must not\nhave been here a whole year yet. Keep the Rain-X handy my friend.\n\n\n             Thatch\n\n    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n    % Thatch Harvey                                                    %\n    % uucp: (no longer valid)            domain: thatchh@hplsla.hp.com %\n    % Hewlett-Packard              Lake Stevens Instrument Division    %\n    % Lake Stevens, WA                                                 %\n    % (206) 335-2083                Merkur XR4Ti, Suzuki GSX1100G,     %\n    %                               Prince SR3 D Sports Racer          %\n    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9587, "properties": {"category": "rec.sport.hockey", "text": "From: aa711@Freenet.carleton.ca (Ken Darcovich)\nSubject: west coast NHL playoff games\nReply-To: aa711@Freenet.carleton.ca (Ken Darcovich)\nOrganization: The National Capital Freenet\nLines: 28\n\n\nUs easterners who have newspapers with editors\nunsympathetic to playoff pools, often don't get\nsummaries from west coast games since they\nfinish too late at night for the morning edition.\n\nI (and I'm sure others too) would greatly appreciate\nit if scoring summaries of west coast playoff games\ncould be posted to this group right away.\nbasically, all we need are goal scorers and assists,\ndon't bother with times, penalties, shots etc...\n\nthis would make a lot of pool-obsessed people very\nhappy.\n\nI guess with the Senators out golfing now, the \nlocal papers have lost interest.  ;-)\n\nthanks.\n\nkd.\n\n-- \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9588, "properties": {"category": "sci.electronics", "text": "From: heinboke@tnt.uni-hannover.de (Andreas Heinbokel)\nSubject: LOOKING for AD PC-Board\nReply-To: heinboke@tnt.uni-hannover.de\nOrganization: Universitaet Hannover, Theoretische Nachrichtentechnik\nLines: 41\n\nThis is for a friend of mine. Please send answers directly to him (E-Mail\nadress see below )!\n\n\nHIGHSPEED  ANALOG-DIGITAL PC-BOARD\n\nHello LAdies and Gentleman !\n\nI am looking for a highspeed A/D PC-Board with a sampling rate above 250 MHz an a\nresolution of 8-bit. The sampling rate can be arranged by an interleave mode where\nthe time equivalent sampling yields 2, 4 or 8 times higher sampling rate than\nthe A/D-Converter uses in non interleave mode.\n\nThe board must content an A/D-Converter similar to Analog Devices AD 9028 or \nAD 9038 or if available a faster on.\n\nIf you a PC-Board (16-bit slot, ISA) with this specification or better, please\nsend me an EMail\n\nhansch@cdc2.ikph.uni-hannover.dbp.de\n\nor a Telefax to: ++49 / 511 / 7629353\n\n\nThanks in advance for your help !\n\nSincerely\n\n     Matthias Hansch\n     IKPH, University of Hannover, Germany\n\n\n\n---\n\nAndreas Heinbokel\n\nheinboke@tnt.uni-hannover.de\n\n*** ... all wisdom is print on t-shirts ***\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9589, "properties": {"category": "soc.religion.christian", "text": "From: drt@athena.mit.edu (David R Tucker)\nSubject: Re: Question: Jesus alone, Oneness\nOrganization: Massachusetts Institute of Technology\nLines: 89\n\nRegarding \"Jesus only\" believers, our moderator writes:\n\n   [There may be some misunderstanding over terms here...]\n\nI agree.  Quite likely, actually.\n\n                                                      [...I believe \"Jesus\n   only\" originally was in the context of baptism.  These are folks who\n   believe that baptism should be done with a formula mentioning only\n   Jesus, rather than Father, Son, and Holy Spirit.  This may have\n   doctrinal implications, but as far as I know it does not mean that\n   these folks deny the existence or divinity of the Father.  I'm not the\n   right one to describe this theology, and in fact I think there may be\n   several, including what would classically be called monophysite or\n   Arian (two rather different views), as well as some who have beliefs\n   that are probably consistent with Trinitarian standards, but who won't\n   use Trinitarian language because they misunderstand it or simply\n   because it is not Biblical.  --clh]\n\nNot Biblical?  What then can they make of the end of Matthew?\n\n(28:18)And Jesus came and said to them, \"All authority in heaven and on\nearth has been given to me. (19)Go therefore and make disciples of all\nnations, baptizing them in the name of the Father and of the Son and\nof the Holy Spirit, (20) and teaching them to obey everything that I\nhave commanded to you.  And remember, I am with you always, to the end\nof the age.\" {Other ancient authorities add *Amen*} [NRSV]\n\nThe notes give no sense that this is emended.  Do other texts\ncontradict this regarding Baptism?  Or is a misunderstanding of the\nTrinity the most likely explanation after all?\n\nBut maybe I simply misunderstand their views.  (Is anyone else out there\nforced to read this group with both a good Bible and an unabridged\ndictionary??  Christianity really is an education in itself.)\n\n--\n------------------------------------------------------------------------\n|David R. Tucker\t\tKG2S\t\t     drt@athena.mit.edu|\n------------------------------------------------------------------------\n\n[Arrgggghhhh.  When I talked about people who rejected Trinitarian\nlanguage as unBiblical, I was speaking of Trinitarian theology, things\nlike \"one essense and three persons\".  Obviously the three-fold\nbaptismal formula is Biblical, as you point out.  (I normally use the\nterm \"three-fold\" in referring to Mat.  While it is certainly\nconsistent with belief in the Trinity, the Trinity is a doctrine whose\nfull formulation occurred in the 4th and 5th Cent's.  It's unlikely\nthat Mat. had in mind the fully-developed Trinitarian doctrine.\nIndeed the three-fold baptismal formula is used by some groups that do\nnot believe in the Trinity.)  The disagreement over baptismal formulae\noccurs because of passages such as Acts 2:38, which command baptism in\nthe name of Jesus.  (There are a couple of other passages in Acts as\nwell.)  This leaves us with sort of a problem: we're commanded in Mat.\nto baptize in the name of the Father, the Son, and the Holy Spirit,\nand in Acts to baptize in the name of Jesus.\n\n\"Jesus only\" groups baptize in the name of Jesus.  They consider this\nconsistent with Mat 28:18, because they say that Jesus is the name of\nthe Father, the Son, and the Holy Spirit.  I'm not the right one to\nask to explain what this means.  I will simply say that it does not\nappear to be normal Trinitarian theology.  (It is also an odd way of\ndealing with the idiomatic phrase \"in the name of\".)\n\nThose who use the three-fold formula don't seem to have a standard\nanswer to the passages talking about baptizing in the name of Jesus.\nI suspect that the most common explanation is to say that \"in the name\nof\" need not be a verbal formula.  To say that you baptize in the name\nof Jesus may simply mean that you are doing baptism under Jesus'\nauthority.  In the 1st Cent. context, it contrasts Christian baptism\nwith the baptism of John or other Jewish baptism.  Of course there's a\ncertain parallelism between these passages.  That suggests that we\ncould just as well say that Mat 28:18 doesn't require the specific\nthree-fold formula to be used in baptism, but simply characterizes\nbaptism done by those who follow the Father, Son, and Holy Spirit.\n\nOne might well suspect that in the early church, more than one\nbaptismal formula was used.  So long as we consider following Jesus to\nbe the same as following the Father, Son, and Holy Spirit, no great\ndamage would be done by such a difference.  This does *not* mean that\nI think we should go back to using both formulae.  Baptism is one of\nthe few things that almost all Christian groups now recognize\nmutually, so I do not think doing something to upset that would be in\nthe interests of the Gospel.  This is reinforced by the fact that\nthose groups that actually use \"in the name of Jesus\" now do seem to\nhave in mind a difference in doctrine.  But as I've said before, I'm\nnot the one to explain what their doctrine is.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9590, "properties": {"category": "rec.autos", "text": "From: qazi@csd4.csd.uwm.edu (Aamir Hafeez Qazi)\nSubject: Re: How is Cizeta V16T doing?\nOrganization: University of Wisconsin - Milwaukee\nLines: 20\nReply-To: qazi@csd4.csd.uwm.edu\nNNTP-Posting-Host: 129.89.7.4\nOriginator: qazi@csd4.csd.uwm.edu\n\n> cs173sbw@sdcc5.ucsd.edu (cs173sbw) writes:\n> \n>>Does anyone know what happpened to the venerable V16T!?  Has Claudio\n>>done any enhancement to it?  Are there any pictures of this beast I\n>>can ftp down somewhere?\n>>THanks\n>>p.s.  Better, seen any RC model of this beauty? :)\n\n--AutoWeek had an article about the car within the past six weeks.\n  It was the issue with the Diablo VT AWD on the cover.  Naturally, I\n  don't remember the date of the issue offhand, but I can check it if\n  anyone is interested.  \n\n--Aamir Qazi\n\n-- \n\nAamir Qazi\nqazi@csd4.csd.uwm.edu\n--Why should I care?  I'd rather watch drying paint.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9591, "properties": {"category": "rec.autos", "text": "From: jimd@pequod.gvg.tek.com (Jim Delwiche)\nSubject: Re: VW Passat:  advice sought\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 32\n\nIn article <Apr.19.12.13.52.1993.387@remus.rutgers.edu> hong@remus.rutgers.edu (Hyunki Hong) writes:\n>\n>I am currently in the car market and would like opinions on a VW\n>Passat GLX.  How does it compare to a Toyota Camry?  I thought the car\n>looked very solid, stable and European.  Only disappointment so far is\n>that that it doesn't offer an airbao my next question is, why isn't VW\n>offering automobiles with airbags?  Should I pay the extra three\n>thousand for a BMW 318 is even though it is smaller and less powerful\n>than than the Passat?\n\nI think VW got caught out on the airbag thing.  It's only been in the last\nyear or two that airbags have become a significant selling feature.\nVW assumed that  automatic belts would satisfy govt. requirements for\npassive restraint, but didn't guess that the 'merican consumer would\nactually make buy decisions based on the presence of an airbag.\n\nVW is really hurting right now in the US market.  Check out the\narticle in last week's Autoweek about the crisis at VW.  Golfs and\nJettas will be coming from the plant in Mexico, but they don't have\nthe quality at that facility.  As per normal VW practice, the US\nlaunch of the Jetta III is delayed again and again, until a good chunk\nof the useful life of the design is spent.\n\nI think that Passats come from Germany, so there is not the same\nquality and availability issue.  It's a nice car with a nice engine.\nWhether VW will be a player in the US market in two year's time is a\ndifferent question...\n\nI'll leave the Passat / Camry flamewar for someone else.\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9592, "properties": {"category": "comp.windows.x", "text": "From: mleisher@nmsu.edu (Mark Leisher)\nSubject: CRL Archive Change Announcement\nOrganization: Computing Research Lab\nLines: 46\nDistribution: world\nNNTP-Posting-Host: pylos.nmsu.edu\nX-Md4-Signature: 6a869a6491f9d34c90b1e79dcbce325b\n\nThe multi-lingual archives at The Computing Research Labs, New Mexico\nState University will be moving to a new ftp address soon.  The\narchives are being put under control of the Consortium for Lexical\nResearch.\n\nThe new ftp address will be: clr.nmsu.edu (the current IP address\nis 128.123.1.12 but may change, so use clr.nmsu.edu whenever\npossible).\n\nPlease note that there is a difference between ftp sites crl.nmsu.edu and\nclr.nmsu.edu.  The crl.nmsu.edu site will be our ftp site for items\nnot related to the Consortium for Lexical Research.\n\nThe Arabic, Chinese, French, Italian, Indian, Japanese, Korean,\nTibetan, and Vietnamese archives will all be moved.\n\nWe will announce the new locations of the relevant directories once\nthe archives have been moved.\n\nPlease be patient if you discover directories missing when you ftp to\neither crl.nmsu.edu or clr.nmsu.edu.  It will take a few days to move\neverything.\n\nIf you are not familiar with our multi-lingual archives, we have been\nslowly collecting various software, fonts, and text for different\nlanguages over the past 2 years.  Most of the software is currently\nUnix oriented.  We would also like to encourage people to continue to\ncontribute items to the archives to help improve the quality and\nquantity of multi-lingual tools.\n\nIf you have an item to contribute, please put it in:\n\nclr.nmsu.edu:incoming/\n\nand send a note to lexical@nmsu.edu telling them about your\ncontribution.\n\nIf you have any questions or comments, please send them to:\nlexical@nmsu.edu\n\n-----------------------------------------------------------------------------\nmleisher@nmsu.edu\nMark Leisher\nComputing Research Lab                    \"Elegance is not optional!\"\nNew Mexico State University                  -- Attributed to Richard O'Keefe\nBox 3CRL, Las Cruces, NM  88003\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9593, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Proton/Centaur?\nOrganization: Express Access Online Communications USA\nLines: 15\nNNTP-Posting-Host: access.digex.net\n\n\nWell thank you dennis for your as usual highly detailed and informative \nposting.   \n\nThe question i have about the proton, is  could it be  handled at\none of KSC's spare pads, without major  malfunction,  or could it be\nhandled at kourou  or Vandenberg?   \n\nNow if it uses storables,  then  how long would it take for the russians\nto equip something at cape york?\n\nIf  Proton were launched from a western site,  how would it compare to the\nT4/centaur?   As i see it, it should lift  very close to the T4.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9594, "properties": {"category": "sci.space", "text": "From: bafta@cats.ucsc.edu (Shari L Brooks)\nSubject: Re: Into Infinity?(WAS:Re: *Doppelganger* (was Re: Vulcan?)\nOrganization: University of California - Santa Cruz\nLines: 36\nNNTP-Posting-Host: si.ucsc.edu\nSummary: me too!\nKeywords: cheesy science fiction\n\n\nIn article <1993Apr18.171148.6367@abo.fi> MLINDROOS@FINABO.ABO.FI (Marcus \nLindroos INF) writes:\n\n>Later on, the Andersons tried to shed their reputation as creators of some\n>of the worst pseudo-scientific shows in TV history by flying \"Into Infinity.\"\n>This was a one-off thing done as part of BBC's \"educational SF\" series \"The\n>Day After Tomorrow.\" The Anderson episode dealt with a spaceship capable of\n>reaching the speed of light (\"lightship Altares\"), the four-man crew \n>eventually journeyed into a black hole and ended up on the far side of the \n>galaxy (I think). I saw this as a 9-year-old back in 1976 and liked it very \n>much, but then again I was a fan of SPACE:1999 so I guess I was easily \n>satisfied in those days:-)\n\nWow.  I was beginning to think that I had made that up.  I remember that\nmovie (it was about 1.5 hours long).  I don't think they ended up anywhere\nin the known universe.  \n\nI remember they got a message halfway out to Proxima Centauri, that Earth\ntransmitted a day after they launched, timed to catch up with them at the\nhalfway point.  I thought it was neat, I think I was all of 10 at the time.\n\n>Does anyone know if \"Into Infinity\" has been released on video? I have some\n>SPACE:1999 shows on VHS and know that Thunderbirds etc. also are available in\n>England.\n \nSpace:1999 has just come out with 4 episodes released in American stores.\nI will look for the Into Infinity show, I never did know that was the\nname of it, I thought the show was called \"the day after tomorrow\", and\nthat was it.\n\n-- \nIf you blow fire against the wind, take care to not get the smoke in your eyes.\n      Big & Growly Dragon-monster        |        bafta@cats.ucsc.edu\n   --------> shari brooks <--------      |    brooks@anarchy.arc.nasa.gov\n                      The above opinions are solely my own.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9595, "properties": {"category": "sci.crypt", "text": "Subject: Re: Once tapped, your code is no good any more.\nFrom: steiner@jupiter.cse.utoledo.edu (Jason 'Think!' Steiner)\nDistribution: na\nNntp-Posting-Host: jupiter.cse.utoledo.edu\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 23\n\ndouglas craig holland (holland@CS.ColoState.EDU) writes:\n>\n> With E-Mail, if they can't break your PGP encryption, they'll just\n> call up one of their TEMPEST trucks and read the electromagnetic \n> emmisions from your computer or terminal.  Note that measures to \n> protect yourself from TEMPEST surveillance are still classified, as \n> far as I know.\n\nare LCD displays vulnerable to tempest?\n\n> \tIf the new regime comes to fruition, make sure you protect your First\n> Amendment rights by asserting your Second Amendment Rights.\n\ni'll second that.\n\njason\n\n\n--\n   \"I stood up on my van. I yelled, `Excuse me, sir. Ain't nothing wrong\n    with this country that a few plastic explosives won't cure!'\"\n              - Steve Taylor, I Blew Up the Clinic Real Good\n`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,` steiner@jupiter.cse.utoledo.edu `,`,`,`\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9596, "properties": {"category": "rec.sport.baseball", "text": "From: aardvark@cygnus.la.locus.com (Warren Usui)\nSubject: Re: The 1964 Phillies: deja vu?\nKeywords: Phillies\nOrganization: Locus Computing Corporation, Los Angeles, California\nLines: 21\n\nIn article <ericsC5Hzr5.EuI@netcom.com> erics@netcom.com (Eric Smith) writes:\n>Yeah, the Phillies played over their heads almost the whole year,\n>but it all caught up to them in one 10-game streak. I *am* as old as\n>1964 (man!) and I was a big Phillies fan at the time (age 13).\n\t.\n\t.\n\t.\n>the Dodgers or somebody else finish two games back? That has to be\n>one of the closest last minute scrambles ever.\n\nSince I was born in the late Pleistocene, I too remember 1964.  That year,\nthe Dodgers were several games out of first and I think finished sixth in the\nleague.  This was kind of odd because they won the World Series both the\nprevious year and the following year.\n  \n\n-- \nWarren Usui\n\nI'm one with the Universe -- on a scale from 1 to 10.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9597, "properties": {"category": "rec.sport.baseball", "text": "From: mss@netcom.com (Mark Singer)\nSubject: Re: Jose Canseco's Swing - 1992 vs. 1986.\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nDistribution: na\nLines: 62\n\nIn article <C5JKIK.1zF@ucdavis.edu> ez027993@dale.ucdavis.edu (Gary Built Like Villanueva Huckabay) writes:\n>Was going over some videos last night.....\n\n\nAnd you wrote an *excellent* report about it.\n\n\n>1.  He's bulked up too much.  Period.  He needs to LOSE about 20 pounds,\n>    not gain more bulk.\n>\n>2.  His bat speed has absolutely VANISHED.  Conservatively, I'd say he's\n>    lost 4%-7% of his bat speed, and that's a HUGE amount of speed.\n>\n>3.  That open stance is KILLING him.   Note that he acts sort of like\n>    Brian Downing - way open to start, then closes up as ball is\n>    released.  Downing could do this without significant head movement -\n>    Canseco can't.  Also, note that Canseco doesn't always close his\n>    stance the same way - sometimes, his hips are open, sometimes,\n>    they're fully closed.  Without a good starting point, it's hard\n>    to make adjustments in your swing.\n\n\nI understand (from an unreliable source) that Canseco was considered\nexpendable by the A's when he refused to accept any coaching about\nhis batting stance.  The A's brain trust came to believe that his\nback problems were exacerbated, if not caused, by having a wide open\nstance, closing it quickly and then swinging with a lot of torque\n(that's a paraphrase of what I remember).\n\nIn any event, Canseco took the road that he and he alone would decide\nhis stance, and the A's began to believe that he would either reinjure\nhimself or begin to lose his ability to hit for both average and power.\n\n\n\n>Aside from salting away a large sum of a cash that I could never touch,\n>so that I'd never have to work again, I'd restructure my entire swing.\n\nApparently, you sound like LaRussa.\n\n>Second, drop 20 pounds.  Cut out the weight work.\n\nThe A's also objected about this.\n\n\n>If Canseco's open stance and resulting bad habits are a result of his back\n>problems, he'll be out of baseball in three years.  If not, he could\n>still hit 600+ HR.\n\nAgain, I'm just repeating something I heard.  But possibly the cause\nand effect is the reverse of that.\n\n\n\n\n\n--\tThe Beastmaster\n\n\n-- \nMark Singer    \nmss@netcom.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.452+0000", "event": "documents", "entityId": 9598, "properties": {"category": "misc.forsale", "text": "From: forbes@sequent.com (Ellen E. Forbes)\nSubject: Novice Beekeeper Seeks Tools of Trade\nSummary: Looking for beekeeping garb\nKeywords: bzz ... bzz ... bzz ... ouch!\nArticle-I.D.: sequent.1993Apr6.200009.15076\nDistribution: usa\nOrganization: Sequent Computer Systems, Inc.\nLines: 10\nNntp-Posting-Host: crg1.sequent.com\n\n\nIf you'd like to find a home for that beekeeping equipment you'll never use\nagain, here's a likely victim, uh, customer.\n\nTo make a deal, call:\n\n\t\tLaura Forbes (503)275-4483\n\nduring regular business hours, or, respond to me through e-mail and I'll\npass your message along.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9599, "properties": {"category": "talk.politics.guns", "text": "From: feustel@netcom.com (David Feustel)\nSubject: Re: We knew it would happen\nOrganization: DAFCO: OS/2 Software Support & Consulting\nLines: 8\n\nGod forgive me for being an American who pays taxes to a government\nthat commits atrocities like the Waco Massacre of 1993.\n-- \nDave Feustel N9MYI <feustel@netcom.com>\n\nI'm beginning to look forward to reaching the %100 allocation of taxes\nto pay for the interest on the national debt. At that point the\nfederal government will be will go out of business for lack of funds.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9600, "properties": {"category": "sci.electronics", "text": "From: bday@lambda.msfc.nasa.gov (Brian Day)\nSubject: Re: 8051 Microcontroller\nOrganization: NASA/MSFC\nLines: 12\n\nmcole@spock (COLE) writes:\n\n>I would like to experiment with the INTEL 8051 family.  Does anyone out  \n>there know of any good FTP sites that might have compiliers, assemblers,  \n>etc.?\n\nTry lyman.pppl.gov -- /pub/8051\n\n-- \nBrian Day                                       bday@lambda.msfc.nasa.gov\nNew Technology, Inc.                            (205) 461-4584\nMission Software Development Division           Opinions are my own -\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9601, "properties": {"category": "comp.sys.mac.hardware", "text": "From: cr@cs.strath.ac.uk (Chris Reid)\nSubject: Quadra 700 memory upgrade\nOrganization: Univ. of Strathclyde, Glasgow, UK\nLines: 18\nDistribution: world\nNNTP-Posting-Host: simpson-06.cs.strath.ac.uk\n\n\nHi folks,\n\n\twhat exactly is the maximum memory I can put in\na Quadra 700. My manual says 20MB (with 4 x 4MB SIMMs), \nbut MacWarehouse and the like advertise 16MB SIMMs to\ngive it a total of 68MB. Who's wrong? Has anybody got\n68MB?\n\n\nThanks,\n\n\n\tChris\n\n__________________________________________________________________________\nChris Reid    <cr@cs.strath.ac.uk>\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9602, "properties": {"category": "talk.politics.mideast", "text": "From: enis@cbnewsg.cb.att.com (enis.surensoy)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: AT&T\nLines: 4\n\n>Armenia says it could shoot down Turkish planes\n\n\tArmenia does not have pot to piss in it; let alone shooting\n\tdown modern war planes.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9603, "properties": {"category": "talk.politics.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: Bush's WI (was Clinton's Wiretapping Initiative\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 25\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, garrett@Ingres.COM (THE SKY ALREADY FELL. NOW WHAT?) says:\n\n>In article <9304161803.AA23713@inet-gw-2.pa.dec.com>, blh@uiboise.idbsu.edu (Broward L. Horne)         writes...\n>I guess your strength isn't in math. Clinton hasn't been president for\n>6 months. In other words, it's BUSH'S Wiretapping Initiative.\n>> \n\n     You're right, I bailed out in Diff Eq.  Nevertheless, I would \n     suggest to YOU that there is a difference between a \"proposed BILL,\n     stalled in Congress\" and a \"executive order, crammed down OUR \n     THROATS\".   Do you disagree?\n\n\n>>\tI strongly urge you to consider moving any savings you \n>>\thave overseas, into protected bank accounts, while \n>>\tyou are still able.\n>> \n>Have you?\n\n        Went to the Post Office on Friday, got my passport apps in.\n\n        My savings have already been converted.\n\n \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9604, "properties": {"category": "comp.graphics", "text": "From: joerg@sax.sax.de (Joerg Wunsch)\nSubject: About the various DXF format questions\nOrganization: SaxNet, Dresden, Germany\nLines: 25\nDistribution: world\nNNTP-Posting-Host: sax.sax.de\nSummary: List of sites holding documentation of DXF format\nKeywords: DXF, graphics formats\n\nArchie told me the following sites holding documentation about DXF:\n\nHost nic.funet.fi   (128.214.6.100)\nLast updated 15:11  7 Apr 1993\n\n    Location: /pub/csc/graphics/format\n      FILE      rwxrwxr--     95442  Dec  4  1991   dxf.doc\n\nHost rainbow.cse.nau.edu   (134.114.64.24)\nLast updated 17:09  1 Jun 1992\n\n    Location: /graphics/formats\n      FILE      rw-r--r--     95442  Mar 23 23:31   dxf.doc\n\nHost ftp.waseda.ac.jp   (133.9.1.32)\nLast updated 00:47  5 Apr 1993\n\n    Location: /pub/data/graphic\n      FILE      rw-r--r--     39753  Nov 18  1991   dxf.doc.Z\n\n-- \nJ\"org Wunsch, ham: dl8dtl    : joerg_wunsch@uriah.sax.de\nIf anything can go wrong...  :   ...or:\n     .o .o                   : joerg@sax.de,wutcd@hadrian.hrz.tu-chemnitz.de,\n       <_      ... IT WILL!  : joerg_wunsch@tcd-dresden.de\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9605, "properties": {"category": "comp.windows.x", "text": "From: whaley@sigma.kpc.com (Ken Whaley)\nSubject: Re: Animation with XPutImage()?\nIn-Reply-To: dcr@mail.ast.cam.ac.uk's message of Thu, 22 Apr 1993 09:28:30 GMT\nOrganization: Kubota Pacific Computer Inc.\n\t<1993Apr22.092830.2190@infodev.cam.ac.uk>\nLines: 38\n\n| \n| Shared memory PutImage (also mentioned by nkissebe@delphi.beckman.uiuc.edu,\n| Nick Kisseberth) looks interesting, but I need someone to point me to some\n| documentation. Is this method likely to give better results than server-\n| resident pixmaps? I'd also be interested in looking at the XView code\n| mentioned above...\n\nThere is no easy answer to this question: it depends on whether the display\ndevice can hold pixmaps in off-screen memory, and if so, how efficiently\nthe server manages these resources (having to deal with limited off-screen\nmemory is the bane of the server implementor's existence!).  \n\nI have worked with graphics devices where the off-screen memory to \nmain display copy rate eclipses that of the main memory to display copy\nrate, and with those where the main memory to display is *faster* than\noff-screen to display (requires only a write to the framebuffer rather\nthan a read of the F.B. followed by a write)\n\nIf your server uses the cfb code or something like it to render into\npixmaps in CPU main memory, the rates you can get through MIT-SHM are\nlikely to be equal (maybe a tad slower, depending on your OS's implementation\nof shared memory) to CopyArea from pixmap to window, which is also then\njust a copy from CPU main memory to graphics device.\n\nOne advanage of MIT-SHM is that if your images are large, you don't end up\ngrowing the size of the server process to hold them.\n\nOne disadvantage of the MIT-SHM is that, in its sample implementation,\nthere is no provision for elegantly cleaning up the shared memory segments\nif the client dies a sudden, violent death (e.g., \"kill\").  You have to \nbe mindful of cluttering up the system with zombie shared memory segments.\n\n\tKen\n--\nKenneth Whaley\t\t\t (408) 748-6347\nKubota Pacific Computer, Inc.\t Email: whaley@kpc.com\n2630 Walsh Avenue\nSanta Clara, CA.  95051\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9606, "properties": {"category": "sci.electronics", "text": "From: markz@ssc.com (Mark Zenier)\nSubject: Re: MC SBI mixer\nArticle-I.D.: ssc.1993Apr21.183146.19241\nOrganization: SSC, Inc.,  Seattle, WA\nLines: 17\nX-Newsreader: TIN [version 1.1 PL6]\n\nMark J. Musone (musone@acsu.buffalo.edu) wrote:\n: HI, I was wondering if anyone would be able to help me on twwo related\n: subjects. I am currently learning about AM/FM receivers and recieving\n: circuits. \n: \n: P.S. any REALLY GOOD BOOKS on AM/FM theory ALONG WITH DETAILED\n: ELECTRICAL DIAGRAMS would help a lot.\n: I have seen a lot of theory books with no circuits and a lot of\n: circuit books with no theory, but one without the other does not help.\n\nA pretty serious book that still seems readable is\n\nCommunication Receivers, Principes and Design\nby Rohde and Bucher.\n\n\nMark Zenier  markz@ssc.wa.com  markz@ssc.com  \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9607, "properties": {"category": "rec.sport.baseball", "text": "From: jerry@sheldev.shel.isc-br.com (Gerald Lanza)\nSubject: Re: '61 Orioles Trivia\nOrganization: Olivetti North America (Shelton, CT)\nLines: 20\n\nIn article <1993Apr14.190432.1706@hpcvaac.cv.hp.com> paula@koufax.cv.hp.com (Paul Andresen) writes:\n>In article <1993Apr13.151809.1286@galileo.cc.rochester.edu>, sparky@balsa.lle.rochester.edu (Michael Mueller) writes:\n>|> Hi All,\n>|> \n>|> Does anyone know who were the 4 pitchers for the 1961 Orioles \n>|> that were referred to as the \"Kiddy Corp\" because they were so young?\n>\n>Steve Barber  22   18-12\n>Chuck Estrada 23   15-9\n>Jack Fisher   22   10-13\n>Milt Pappas   22   13-9\n>\n\n\tThis list brings to mind possible the worst trade since Babe for\n\tNONO NANNETTE, i.e., Milt Pappas for Frank Robinson, I think in\n\t1965 ?. Robinson proceeded to win the triple crown in 1966 and\n\tmay have beaten out Yaz in '67 but was injured on a slide into \n\tsecond when he collided with the mighty Al Weis (Chisox). \n\n\t\t\t\t\tjerry\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9608, "properties": {"category": "talk.politics.guns", "text": "From: ernie@ferris (Ernest Smith)\nSubject: Re: Handgun Restrictions\nOriginator: ernie@ferris\nLines: 24\nNntp-Posting-Host: ferris.cray.com\nOrganization: Cray Research Superservers,  Inc.\nDistribution: usa\n\n>To: bbs.billand@tsoft.net\n>Subject: Re: Handgun Restrictions\n>Newsgroups: talk.politics.guns\n>In-Reply-To: <ow522B2w165w@tsoft.net>\n>Organization: Cray Research, Inc.\n>Cc: \n>Bcc: \n>\nIn article <ow522B2w165w@tsoft.net> you write:\n>I would like to know what restrictions there are on purchasing handguns \n>(ie waiting periods, background check etc..) in the states of Nevada and \n>Oregon. Thanks.\n>                                                -Bill\n>\n>--\n>Bill Anderson (bbs.billand@tsoft.net)\n\n\nIn Oregon your must get a background check (ie fingerprints, full slap), 15\nday waiting period. That is unless you have a CCW then all requirments\nhave been meet.\n\n\t\tErnie Smith\n\t\ternie@oregon.cray.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9609, "properties": {"category": "sci.space", "text": "From: stephens@geod.emr.ca (Dave Stephenson)\nSubject: Re: Clementine Science Team Selected\nNntp-Posting-Host: ngis.geod.emr.ca\nOrganization: Dept. of Energy, Mines, and Resources, Ottawa\nLines: 32\n\nnickh@CS.CMU.EDU (Nick Haines) writes:\n\n>In article <stephens.734792933@ngis> stephens@geod.emr.ca (Dave Stephenson) writes:\n\n>   Remember the first government scientist in the British Empire was\n>   the Astronomer Royal, who was paid [...] from the Department\n>   of Ordinance Budget (i.e. the military). Flamsteed House (the original\n>   RGO) was built out of Army Surplus Scrap ( A gate house at the Tower of\n>   London ?), and paid for by the sale of time expired gunpowder [...]\n\n>At the time, astronomy was vital to the military, in that navigation\n>and cartography were of primary impoortance to the military, and good\n>cartography was impossible without good astronomy.\n\n>The relevance these daysis somewhat less obvious.\n\n>Nick\n\nIt still applies, except the astronomy these days is Very Long Baseline\nRadio Astronomy coupled to GPS and Satellite Laser Ranging. The data\nfrom NASA's and the Naval Observatory's (among others) is a vital \nsource of data for studies into crustal dynamics, Earth rotation, and\npurturbations. Every time there is a leap second added to the New Year,\nremember the military and science are still co-habiting nicely. The\nsame VLBI was used to track Gallileo as it passed the Earth, and used\nso little fuel that it can afford to observe Ida. \n \n--\nDave Stephenson\nGeodetic Survey of Canada\nOttawa, Ontario, Canada\nInternet: stephens@geod.emr.ca\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9610, "properties": {"category": "comp.sys.mac.hardware", "text": "From: aep@world.std.com (Andrew E Page)\nSubject: Re: SetWUTime Works on a PB 230\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 12\n\n\n   I have tested this on a 230 and it does work there.  So it would\nseem that the 140 and 170 are out though.  One way to tell is to\ngo and open the PowerBook control panel(7.1).  There is a setting\nthere that allows you to set the time to wake up the Mac.  If it\nis present when you open the control panel, then you can assume that\nSetWUTime will work.  \n\n-- \nAndrew E. Page   (Warrior Poet) |   Decision and Effort The Archer and Arrow\nMac Consultant                  |     The difference between what we are\nMacintosh and DSP Technology    |           and what we want to be.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9611, "properties": {"category": "rec.sport.baseball", "text": "From: bone@wilbur.Stanford.EDU (Doug Bone)\nSubject: Players Rushed to Majors\nArticle-I.D.: wilbur.24\nLines: 34\n\nsnichols@adobe.com (Sherri Nichols) writes:\n\n>Can anybody name a player who was 'rushed' to the majors (let's, for\n>argument's sake, define \"rushed\" as brought up to the majors for more than\n>a cup of coffee prior at age 22 or younger, and performing below\n>expectations), whose career was damaged by this rushing? \n\nI tend to agree that players are not hurt by early play in the big leagues.\nThe BRaves organization is a fertile ground to test this hypothesis, as they\nhad little talent on their roster for some time.  Steve Avery, for example,\nwas rushed to the majors, and he fared very poorly during his initial campaign.\nHis subsequent pitching has not been affected by his 5+ ERA during his rookie\nyear.  Bill James pointed out that it was relatively unusual to struggle so\nand then rebound.\n\nBob Horner was also rushed to the majors (out of Arizona State directly) had\ngood numbers immediately.\n\nI am not certain of the ages of people like Pete Smith, Craig McMurty, and\nDerek Lilliquist.  The Braves pitching staffs were so bad when they came up\nthat they might have been rushed.  Lilliquist and Smith struggled, but it\ndidn't hurt PS and DL may have been overhyped.  I seem to recall CM pitching\nwell initially, though I don't have stats handy.\n\nDouglas Bone\t\tInternet: bone@luciano.stanford.edu\nStandard disclaimers\tBITNET:   bone%luciano.stanford.edu@stanford\napply.\t\t\tUUCP:   ..ucbvax!luciano!sierra.stanford.edu!bone\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9612, "properties": {"category": "rec.sport.baseball", "text": "From: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nSubject: Re: My '93 picks (with only one comment)\nArticle-I.D.: master.1psqpdINNh9v\nReply-To: rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert)\nOrganization: Computer Science Department at Rose-Hulman\nLines: 47\nNNTP-Posting-Host: g215a-1.nextwork.rose-hulman.edu\n\nIn article <12786@news.duke.edu> fierkelab@bchm.biochem.duke.edu (Eric Roush)  \nwrites:\n> In article <1psbg8INNgjj@master.cs.rose-hulman.edu>\n> rickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert) writes:\n> >In article <jfr2.733938351@Ra.MsState.Edu> jfr2@Ra.MsState.Edu (Jackie F.  \n> >Russell) writes:\n> >> psg+@pitt.edu (Paul S Galvanek) writes:\n> >> >National League West\n> >> >\tCincinnati      ----\n> >> >\tHouston          5.0\n> >> >\tAtlanta          8.0\n> >> ARGH! Here is where you are obviously dead wrong. Not since the Yankees \n> >> of the 20's and 30's has a team been so nicely setup as this years(and \n> >> years to come) Braves. I don't think that the All-Star team will be able  \n> >This may be an appropriate comparison.\n> >The 1929-31 Yankees finshed 2nd, 3rd and 2nd finshing \n> >18, 16 and 13-1/2 games out of first. \n> >In 1933,'34 and '35 they also finished second ( though they were only\n> >7, 7 and 3 games out).\n> >Even great teams can lose - That's why they play the season.\n> >(on the other hand... I'm still picking the Braves to go all the way)\n\n> Um, surely you didn't intend to compare the '93 Reds with the\n> 29 Philidelphia A's.  The Yankees were finishing 2nd to\n> a team that was as good as the 26-28 Yankees, while the\n> Yankees had aged some from their peak years.  Ruth and Gehrig\n> couldn't play every position simultaneously.\n> \n> IMO, given the various ages of the Braves and Reds this season,\n> that the Braves will be closer to their peak, while the Reds\n> have slightly passed their peak.\n> \n> Also, if you're going to compare Braves and Yankees, a more appropriate\n> comparison to the '93 Braves might be the '23 Yankees.  \n> After falling short two years in a row in exciting World Series,\n>  both teams won/will win the Series this year, despite the\n> heroics of some old fart on the other team. \n> (Casey Stengel/ Dave Winfield???)\n\nPerhaps so. I was only responding to the \"Yankees of the 20's and 30's\" \npart of the comment. If those teams were a 'sure thing' and lost, \nthen it's probably not so unreasonable for someone to pick another \nteam (not that I did).\n\njohn rickert\nrickert@nextwork.rose-hulman.edu\nGo Brewers!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9613, "properties": {"category": "rec.motorcycles", "text": "From: sdun@isma.demon.co.uk (Stephen Dunne)\nSubject: Re: GGRRRrrr!! Cages double-parking motorc\nNews-Software: IBM OS/2 PM RN (NR/2) v0.17h by O. Vishnepolsky and R. Rogers\nLines: 22\nNntp-Posting-Host: isma.demon.co.uk\nReply-To: sdun@isma.demon.co.uk (Stephen Dunne)\nOrganization: Demon Internet Services.\n\nIn <1qjmf6$d0i@sixgun.East.Sun.COM> egreen@east.sun.com (Ed Green - Pixel Cruncher) writes:\n>In article 34211@castle.ed.ac.uk, wbg@festival.ed.ac.uk (W Geake) writes:\n>An apartment complex where I used to live tried this, only they put the\n>thing over the driver's window, \"so they couldn't miss it.\"  A friend\n>damned near wrecked on the way home one night, her vision blocked by\n>the sticker.  I suggested to the manager the ENORMOUS liability they\n\n>Be careful about putting stickers on cages' windows.\n\nHmmm.. The LDDC security guards over here in Docklands only place parking \nstickers on the drivers SIDE windows.. But on reflection that could still \ncause an accident.. Suppose it's because people aren't as litigious over \nhere as in the states :-)\n\nStephen\n--\n+--------------------------------------------------------------------------+\n|Stephen Dunne                         MAG DoD#766 sdun@isma.demon.co.uk   |\n|International Securities Market Association       I speak for me,thats all|\n|Voice (+44) 71-538-5656    Fax (+44) 71-538-4902  PGP public key available|\n|We are not affiliated to any other Demon.Co.Uk site.                      |\n+--------------------------------------------------------------------------+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9614, "properties": {"category": "soc.religion.christian", "text": "From: max@hilbert.cyprs.rain.com (Max Webb)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nOrganization: Cypress Semi, Beaverton OR\nLines: 55\n\nIn article <Apr.14.03.08.08.1993.5448@athos.rutgers.edu> jasons@atlastele.com (Jason Smith) writes:\n\n>One of the Laws of Nature, specifying cause and effect seems to dictate \n>(at least to this layman's mind) there must be a causal event.  No\n>reasonable alternative exists.\n\nThe big-bang model supposes a temporal singularity at the point of\norigin. There was _no_ time for a prior cause to occur in. If you\nwant to invent fables for the surrounding context, fine, but one fable\nis only as good as any other. Why should I prefer to believe in a God that\n_just_ exists, as opposed to a singularity that _just happened_, or \ngiant puce subspace iguanas, that fling universes off their tongues\nlike gobs of spit?\n\n|As far as I can tell, the very laws of nature demand a \"why\".  That isn't\n|true of something outside of nature (i.e., *super*natural).\n\n>I believe the \"genetic code\" will be entirely deciphered in our lifetimes,\n>but we will not see man convert entirely inert material into self sustaining, \n>reproducing life, *ever*.  (I've never been much of a prophet, though. I\n>can't even *picture* New York in my mind 8^] ).  I don't believe *any*\n>technology would be able to produce that necessary *spark* of life, despite\n>having all of the parts available. Just my opinion.\n\nJust your opinion, and unfortunately wrong. Self assembling molecules\nhave already been produced, entirely from inert matter, and have\nspontaneously mutated into a more rapidly assembling form on exposure\nto ultraviolet light. Both abiogenesis and the beginnings of evolution,\nTODAY. (saw this in \"Nature\", early last year.)\n\nBiological vitalism is dead, and has been dead for many, many years.\nGive it up. Life is not a 'spark'. Life is the self-organization\nof systems poised between chaos and order.\n\n>Until the King returns,\n>\n>Jason\n\nYour King baldly and repeatedly stated he would be back within the lifetime\nof some then present and alive. \"Soon, soon\" he said, over and over - as\nhave many would be messiahs.\n\nIt is Nineteen Ninety Three\n\tof Years Anno Domini\nTell me, Tell me, where is He?\n\tNowhere at all, Q. E. D.\n\n\tMax G. Webb\n\n[I should have watched this more closely.  We had a discussion about\nthe first cause, etc., not long ago.  I'm not up for a replay.\nThere was also a detailed discussion of the point Max brings up\nhere about the initial singularity.  The geometry near the big bang\nis very interesting.  Time turns into space, so there is no \"before\".\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9615, "properties": {"category": "sci.space", "text": "From: shafer@rigel.dfrf.nasa.gov (Mary Shafer)\nSubject: Re: Space Research Spin Off\nIn-Reply-To: prb@access.digex.com's message of 6 Apr 1993 14:06:57 -0400\nOrganization: NASA Dryden, Edwards, Cal.\n\t<pgf.734062799@srl03.cacs.usl.edu>\n\t<SHAFER.93Apr6094402@rigel.dfrf.nasa.gov> <1psgs1$so4@access.digex.net>\nLines: 38\n\nOn 6 Apr 1993 14:06:57 -0400, prb@access.digex.com (Pat) said:\n\nPat> In article <SHAFER.93Apr6094402@rigel.dfrf.nasa.gov>\nPat> shafer@rigel.dfrf.nasa.gov (Mary Shafer) writes:\n\n>successful we were.  (Mind you, the Avro Arrow and the X-15 were both\n>fly-by-wire aircraft much earlier, but analog.)\n>\n\nPat> Gee, I thought the X-15 was Cable controlled.  Didn't one of them\nPat> have a total electrical failure in flight?  Was there machanical\nPat> backup systems?\n\nAll reaction-controlled aircraft are fly-by-wire, at least the RCS part\nis.  On the X-15 the aerodynamic control surfaces (elevator, rudder, etc)\nwere conventionally controlled (pushrods and cables) but the RCS jets\nwere fly-by-wire.\n\n|The NASA habit of acquiring second-hand military aircraft and using\n|them for testbeds can make things kind of confusing.  On the other\n|hand, all those second-hand Navy planes give our test pilots a chance\n|to fold the wings--something most pilots at Edwards Air Force Base\n|can't do.  \n\nPat> What do you mean?  Overstress the wings, and they fail at teh\nPat> joints?\n\nNavy aircraft have folding or sweeping wings, in order to save space\non the hangar deck.  The F-14 wings sweep, all the rest fold the\nwingtips up at a joint.\n\nAir Force planes don't have folding wings, since the Air Force has\nlots of room.\n\n--\nMary Shafer  DoD #0362 KotFR NASA Dryden Flight Research Facility, Edwards, CA\nshafer@rigel.dfrf.nasa.gov                    Of course I don't speak for NASA\n \"A MiG at your six is better than no MiG at all.\"  Unknown US fighter pilot\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9616, "properties": {"category": "rec.motorcycles", "text": "From: ray@unisql.UUCP (Ray Shea)\nSubject: Re: What is it with Cats and Dogs ???!\nOrganization: UniSQL, Inc., Austin, Texas, USA\nLines: 17\n\nIn article <1993Apr14.200933.15362@cbnewsj.cb.att.com> jimbes@cbnewsj.cb.att.com (james.bessette) writes:\n>In article <6130328@hplsla.hp.com> kens@hplsla.hp.com (Ken Snyder) writes:\n>>ps.  I also heard from a dog breeder that the chains of bicycles and\n>>motorcycles produced high frequency squeaks that dogs loved to chase.\n>\n>Ask the breeder why they also chase BMWs also.\n\n\nSqueaky BMW riders.\n\n\n\n-- \nRay Shea    \t\t \"they wound like a very effective method.\"\nUniSQL, Inc.\t\t                                 --Leah\nunisql!ray@cs.utexas.edu                   some days i miss d. boon real bad. \nDoD #0372 : Team Twinkie : '88 Hawk GT     \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9617, "properties": {"category": "rec.sport.hockey", "text": "From: jfp001@acad.drake.edu\nSubject: Re: Goalie Mask Update\nLines: 41\nNntp-Posting-Host: acad.drake.edu\nOrganization: Drake University, Des Moines, Iowa, USA\n\nIn article <93289@hydra.gatech.EDU>, gtd597a@prism.gatech.EDU (Hrivnak) writes:\n> \n> \tHere are the results after three days of voting. Remember 3pts for \n> 1st, 2 for 2nd, and 1 for 3rd. Also, you can still turn in votes! And.. if\n> the guy isn't a regular goalie or he is retired, please include the team! \n> Thanks for your time, and keep on sending in those votes!\n> \n> Player                  Team                  Pts     Votes\n> -----------------------------------------------------------\n> 1. Brian Hayward        San Jose              15        6\n>    Andy Moog            Boston                15        6\n> 3. Curtis Joseph        St. Louis             11        5\n> 4. Ed Belfour           Chicago               10        5\n> 5. Gerry Cheevers       Boston (retired)       5        3 \n>    Manon Rheaume        Atlanta (IHL)          5        2\n>    Ron Hextall          Quebec                 5        2\n> 8. Don Beaupre          Washington             4        2\n> -----------------------------------------------------------\n> Others receiving 1 vote: Artus Irbe (SJ), Tim Cheveldae (Det),\n>  Clint Malarchuck (Buf/SD,IHL), Grant Fuhr (Buf), Rick Wamsley \n>  (Tor,ret), Jon Casey (Minn), John Vanbiesbrouck (NYR),\n>  Ken Dryden (Mon,ret), Bob Essensa (Win), Mike Vernon (Cal),\n>  Glenn Healy (NYI), Tommy Soderstron (???), Ray LeBlanc (USA).\n> \n\nC'mon, Tommy Soderstrom is having a fine rookie (I think he's a rookie)\nseason with the Flyers. I'm sure most of you knew that already, but just\nin case. \n\nJohn P.\njfp001@acad.drake.edu\nA longtime, but realistic Ranger fan who's willing to admit that the Rangers\nsucked big-time this year. They don't even deserve the luxury of a nice\ngolf course with a warm breeze. God, talk about underachievers!\nMike Keenan - we're waiting for you!\n> \n> -- \n> GO SKINS!    ||\"Now for the next question... Does emotional music have quite\n> GO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \n> GO HORNETS!  ||\n> GO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9618, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nDistribution: na\nLines: 32\n\nrlward1@afterlife.ncsc.mil (Robert Ward) writes:\n\n> >and since the US constitutions guarantees the right to every American\n> >to bear arms, why is not every American entitled, as a matter of\n\n> Have you read the applicable part of the Constitution and interpreted it IN \n> CONTEXT? \n\nYes. BTW, the appropriate Amendments were posted here some time ago.\n\n> If not, please do so before posting this misinterpretation again.\n> It refers to the right of the people to organize a militia, not for individual\n> to carry handguns, grenades, and assault rifles.  \n\nIt's OK, it's OK... Just a month ago I expressed my belief that the\nright to have a means to shoot your neighbor is not that much\nnecessary to ensure a people's right to be free and got flamed by lots\nof American gun supporters. So I thought that...\n\nNever mind. The new Cripple Chip is a purely American problem, so deal\nwith the mess yourselves. I just wanted to share with you a bit of my\nexperience of living 30 years under a totalitarian regime (I'm\nBulgarian) - because I thought that it might be useful to you. Oh\nwell.\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9619, "properties": {"category": "rec.autos", "text": "From: rhorwell@crab.network-a (Roland Faragher-Horwell,crab)\nSubject: Re: Dumbest automotive concepts of all tim\nReply-To: rhorwell@atc.boeing.com\nOrganization: Boeing Computer Services\nLines: 19\n\nIn article 1EL@targhee.idaho.amdahl.com, rbs@sawtooth.idaho.amdahl.com (Bob Smith) writes:\n>In article <1993Apr7.173712.23250@cas.org>, sdm24@cas.org () writes:\n>> IMHO, the dumbest thing we *ever* did in copying the Japanese was moving the\n>> dimmer switch from the floor to the lever controlling the turn signal/cruise\n>> control/bun warmer, etc.\n>\n>Well, my 1973 Porsche had the dimmer on the turn signal stalk.  Guess those\n>dumb Germans were copying the Japanese too. :-)\n>\n>[rest deleted]\n>> -- \n \nNot to mention my friend's '54 Citroen Traction Avant with the light switch and \ndimmer integrated in a single stalk off the steering column!   Those dumb French\nwere apparently copying the Japanese before the Germans!  :^)\n\nRoland\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9620, "properties": {"category": "sci.med", "text": "From: shavlik@cs.wisc.edu (Jude Shavlik)\nSubject: Program & Reg Forms: 1st Int Conf on Intell Sys for Molecular Biology\nKeywords: computational biology, artificial intelligence\nOrganization: U of Wisconsin CS Dept\nLines: 482\n\n[For those attending the AAAI conf this summer, note that\nthis conference is immediately preceding it.]\n\n\n         PRELIMINARY PROGRAM AND REGISTRATION MATERIALS\n\n              First International Conference on\n          Intelligent Systems for Molecular Biology\n\n                       Washington, D.C.\n                        July 6-9, 1993\n\nSponsored by:\n  The National Institutes of Health, \n     National Library of Medicine\n\n  The Department of Energy, \n     Office of Health and Environmental Research\n\n  The Biomatrix Society\n\n  The American Association for Artificial Intelligence (AAAI)\n\nPoster Session and Tutorials:  \n  Bethesda Ramada Hotel\n\nTechnical Sessions:\n  Lister Hill Center Auditorium, National Library of Medicine\n\nFor more information contact ISMB@nlm.nih.gov or FAX (608)262-9777\n\n                           PURPOSE\nThis, the First International Conference on Intelligent Systems \nfor Molecular Biology, is the inaugural meeting in a series \nintended to bring together scientists who are applying the \ntechnologies of artificial intelligence, robotics, machine \nlearning, massively parallel computing, advanced data modelling, \nand related methods to problems in molecular biology.  The scope \nextends to any computational or robotic system supporting a \nbiological task that is cognitively challenging, involves a \nsynthesis of information from multiple sources at multiple levels, \nor in some other way exhibits the abstraction and emergent \nproperties of an \"intelligent system.\"  \n\n                          FACILITIES\nThe conference will be held at\n   Lister Hill Center \n   National Library of Medicine\n   8600 Rockville Pike\n   NIH, Building 38A\n   Bethesda MD 20894\nSeating in the conference center is strictly limited, so \nregistrations will be accepted on a first-come, first-serve basis. \nAccomodations, as well as a reception and poster session, will be \nat the\n   Bethesda Ramada Hotel \n   8400 Wisconsin Avenue\n   Bethesda MD 20814\nA special room rate has been negotiated with the hotel, of $92/day \n(expires 6/21).  Attendees must make their own reservations, by \nwriting the hotel or calling (800)331-5252 and mentioning the \nISMB conference.  To participate in a roommate-matching service, \ne-mail opitz@cs.wisc.edu.\n\n                         TRANSPORTATION\nThe two facilities are within easy walking distance, convenient to \nthe subway (Metro Red Line, Medical Center stop), and from there \nto the Amtrak station.  Nearby airports include Dulles, National, \nand Baltimore-Washington International. \n\n                           PROCEEDINGS\nFull-length papers from both talks and posters will be published in\narchival proceedings.  The citation is: \n\n  Proceedings of the First International \n  Conference on Intelligent Systems for \n  Molecular Biology (eds. L. Hunter, \n  D. Searls, and J. Shavlik) AAAI/MIT\n  Press, Menlo Park CA, 1993.  \n\nCopies will be distributed at the conference to registered \nattendees, and will be available for purchase from the publisher \nafterwards.\n\n                             TALKS\nWednesday, July 7, 1993\n-----------------------------------------------------------------\n8:00-9:00am     Continental Breakfast\n\n9:00-9:15am     Opening Remarks\n\n9:15-10:30am    Invited Talk\n \"Statistics, Protein Cores, and Predicted Structures\"\n Prof. Temple Smith (Boston University)\n\n10:30-11:00am\tBreak\n\n11:00am\t\"Constructive Induction and Protein Structure Prediction\"\n T.R. Ioerger, L. Rendell, & S. Surbramaniam\n\n11:30am\t\"Protein Secondary-Structure Modeling with Probabilistic \n Networks\"  A.L. Delcher, S. Kasif, H.R. Goldberg, & W. Hsu\n\n12:00-1:30pm\tLunch\n\n1:30pm\t\"Protein Secondary Structure using Two-Level Case-Based \n Reasoning\"  B. Leng, B.G. Buchanan, & H.B. Nicholas\n\n2:00pm \t\"Automatic Derivation of Substructures Yields Novel \n Structural Building Blocks in Globular Proteins\" \n X. Zhang, J.S. Fetrow, W.A. Rennie, D.L. Waltz, & G. Berg\n\n2:30pm \t\"Using Dirichlet Mixture Priors to Derive Hidden Markov \n Models for Protein Families\" M. Brown, R. Hughey, A. Krogh, \n I.S. Mian, K. Sjolander, & D. Haussler\n\n3:00-3:30pm\tBreak\n\n3:30pm\t\"Protein Classification using Neural Networks\" \n E.A. Ferran, B. Pflugfelder, & P. Ferrara\n\n4:00pm\t\"Neural Networks for Molecular Sequence Classification\"\n C. Wu, M. Berry, Y-S. Fung, & J. McLarty\n\n4:30pm\t\"Computationally Efficient Cluster Representation in \n Molecular Sequence Megaclassification\"  D.J. States, N. Harris, \n & L. Hunter\n\n7:00-7:30pm     Poster Setup\n7:30-10:00pm    Reception & Poster Session \n\nThursday, July 8, 1993\n-----------------------------------------------------------------\n8:00-9:00am     Continental Breakfast\n\n9:00-10:15am    Invited Talk\n \"Large-Scale DNA Sequencing:  A Tale of Mice and Men\"\n Prof. Leroy Hood (University of Washington)\n\n10:15-10:45am\tBreak\n\n10:45am\t\"Pattern Recognition for Automated DNA Sequencing: \n I. On-Line Signal Conditioning and Feature Extraction for \n Basecalling\"  J.B. Bolden III, D. Torgersen, & C. Tibbetts\n\n11:15am\t\"Genetic Algorithms for Sequence Assembly\" \n R. Parsons, S. Forrest, & C. Burks\n\n11:45am\t\"A Partial Digest Approach to Restriction Site Mapping\"\n S.S. Skiena & G. Sundaram\n\n12:15-2:00pm\tLunch\n\n2:00pm\t\"Integrating Order and Distance Relationships from \n Heterogeneous Maps\"  M. Graves \n\n2:30pm\t\"Discovering Sequence Similarity by the Algorithmic \n Significance Method\"  A. Milosavljevic\n\n3:00pm\t\"Identification of Human Gene Functional Regions Based on \n Oligonucleotide Composition\"  V.V. Solovyev & C.B. Lawrence\n\n3:30pm\t\"Knowledge Discovery in GENBANK\"\n J.S. Aaronson, J. Haas, & G.C. Overton\n\n4:00-4:30pm\tBreak\n\n4:30pm\t\"An Expert System to Generate Machine Learning \n Experiments: Learning with DNA Crystallography Data\"\n D. Cohen, C. Kulikowski, & H. Berman \n\n5:00pm \t\"Detection of Correlations in tRNA Sequences with \n Structural Implications\"  T.M. Klingler & D. Brutlag\n\n5:30pm\t\"Probabilistic Structure Calculations: A Three-\n Dimensional tRNA Structure from Sequence Correlation Data\" \n R.B. Altman\n\nFriday, July 9, 1993\n-----------------------------------------------------------------\n8:00-9:00am     Continental Breakfast\n\n9:00-10:15am    Invited Talk\n \"Artificial Intelligence and a Grand Unified Theory of \n Biochemistry\" Prof. Harold Morowitz (George Mason University)\n\n10:15-10:45am\tBreak\n\n10:45am\t\"Testing HIV Molecular Biology in in silico Physiologies\" \n H.B. Sieburg & C. Baray\n\n11:15am\t\"Identification of Localized and Distributed Bottlenecks \n in Metabolic Pathways\"  M.L. Mavrovouniotis\n\n11:45am\t\"Fine-Grain Databases for Pattern Discovery in Gene \n Regulation\"  S.M. Veretnik & B.R. Schatz\n\n12:15-2:00pm\tLunch\n\n2:00pm\t\"Representation for Discovery of Protein Motifs\"\n D. Conklin, S. Fortier, & J. Glasgow\n\n2:30pm\t\"Finding Relevant Biomolecular Features\"  \n L. Hunter & T. Klein\n\n3:00pm\t\"Database Techniques for Biological Materials and \n Methods\"  K. Baclawski, R. Futrelle, N. Fridman, \n & M.J. Pescitelli\n\n3:30pm\t\"A Multi-Level Description Scheme of Protein \n Conformation\"  K. Onizuka, K. Asai, M. Ishikawa, & S.T.C. Wong\n\n4:00-4:30pm\tBreak\n\n4:30pm\t\"Protein Topology Prediction through Parallel Constraint \n Logic Programming\"  D.A. Clark, C.J. Rawlings, J. Shirazi, \n A. Veron, & M. Reeve\n\n5:30pm\t\"A Constraint Reasoning System for Automating Sequence-\n Specific Resonance Assignments in Multidimensional Protein\n NMR Spectra\"  D. Zimmerman, C. Kulikowski, & G.T. Montelione\n\n5:30-5:45pm\tClosing Remarks\n\n                         POSTER SESSION\nThe following posters will be on display at the Bethesda Ramada \nHotel from 7:30-10:00pm, Wednesday, July 7.\n\n[1] \"The Induction of Rules for Predicting Chemical\n Carcinogenesis in Rodents\"  D. Bahler & D. Bristol\n\n[2] \"SENEX: A CLOS/CLIM Application for Molecular Pathology\"  \n S.S. Ball & V.H. Mah\n\n[3] \"FLASH: A Fast Look-Up Algorithm for String Homology\"\n A. Califano & I. Rigoutsos\n\n[4] \"Toward Multi-Strategy Parallel Learning in Sequence \n Analysis\"  P.K. Chan & S.J. Stolfo\n\n[5] \"Protein Structure Prediction: Selecting Salient Features \n from Large Candidate Pools\"  K.J. Cherkauer & J.W. Shavlik\n\n[6] \"Comparison of Two Approaches to the Prediction of Protein \n Folding Patterns\"  I. Dubchak, S.R. Holbrook, & S.-H. Kim\n\n[7] \"A Modular Learning Environment for Protein Modeling\"\n J. Gracy, L. Chiche & J. Sallantin\n\n[8] \"Inference of Order in Genetic Systems\" \n J.N. Guidi & T.H. Roderick\n\n[9] \"PALM - A Pattern Language for Molecular Biology\"\n C. Helgesen & P.R. Sibbald\n\n[10] \"Grammatical Formalization of Metabolic Processes\"  \n R. Hofestedt\n\n[11] \"Representations of Metabolic Knowledge\"  \n P.D. Karp & M. Riley\n\n[12] \"Protein Sequencing Experiment Planning Using Analogy\"\n B. Kettler & L. Darden\n\n[13] \"Design of an Object-Oriented Database for Reverse Genetics\"  \n K.J. Kochut, J. Arnold, J.A. Miller, & W.D. Potter\n\n[14] \"A Small Automaton for Word Recognition in DNA Sequences\"\n C. Lefevre & J.-E Ikeda\n\n[15] \"MultiMap:  An Expert System for Automated Genetic Linkage \n Mapping\"  T.C. Matise, M. Perlin & A. Chakravarti\n\n[16] \"Constructing a Distributed Object-Oriented System with \nLogical Constraints for Fluorescence-Activated Cell Sorting\"\n T. Matsushima\n\n[17] \"Prediction of Primate Splice Junction Gene Sequences with \n a Cooperative Knowledge Acquisition System\"\n E.M. Nguifo & J. Sallantin\n\n[18] \"Object-Oriented Knowledge Bases for the Analysis of \n Prokaryotic and Eukaryotic Genomes\" \n G. Perriere, F. Dorkeld, F. Rechenmann, & C. Gautier\n\n[19] \"Petri Net Representations in Metabolic Pathways\"\n V.N. Reddy, M.L. Mavrovouniotis, & M.L. Liebman\n\n[20] \"Minimizing Complexity in Cellular Automata Models of \n Self-Replication\"  J.A. Reggia, H.-H. Chou, S.L. Armentrout, \n & Y. Peng\n\n[21] \"Building Large Knowledge Bases in Molecular Biology\"\n O. Schmeltzer, C. Medigue, P. Uvietta, F. Rechenmann, \n F. Dorkeld, G. Perriere, & C. Gautier\n\n[22] \"A Service-Oriented Information Sources Database for the \n Biological Sciences\"  G.K. Springer & T.B. Patrick\n\n[23] \"Hidden Markov Models and Iterative Aligners: Study of their \n Equivalence and Possibilities\" H. Tanaka, K. Asai, M. Ishikawa,\n & A. Konagaya\n\n[24] \"Protein Structure Prediction System Based on Artificial \n Neural Networks\"  J. Vanhala & K. Kaski\n\n[25] \"Transmembrane Segment Prediction from Protein Sequence \n Data\"  S.M. Weiss, D.M. Cohen & N. Indurkhya\n\n                      TUTORIAL PROGRAM\nTutorials will be conducted at the Bethesda Ramada Hotel on \nTuesday, July 6.\n\n12:00-2:45pm \"Introduction to Molecular Biology for Computer \n Scientists\"  Prof. Mick Noordewier (Rutgers University)\n\nThis overview of the essential facts of molecular biology is \nintended as an introduction to the field for computer scientists \nwho wish to apply their tools to this rich and complex domain.  \nMaterial covered will include structural and informational \nmolecules, the basic organization of the cell and of genetic \nmaterial, the \"central dogma\" of gene expression, and selected \nother topics in the area of structure, function, and regulation as \nrelates to current computational approaches.  Dr. Noordewier has \nappointments in both Computer Science and Biology at Rutgers, and \nhas extensive experience in basic biological research in addition \nto his current work in computational biology.\n\n12:00-2:45pm \"Introduction to Artificial Intelligence for \n Biologists\"  Dr. Richard Lathrop (MIT & Arris Corp.)\n\nAn overview of the field of artificial intelligence will be \npresented, as it relates to actual and potential biological \napplications.  Fundamental techniques, symbolic programming \nlanguages, and notions of search will be discussed, as well as \nselected topics in somewhat greater detail, such as knowledge \nrepresentation, inference, and machine learning.  The intended \naudience includes biologists with some computational background, \nbut no extensive exposure to artificial intelligence.  Dr. \nLathrop, co-developer of ARIADNE and related technologies, has \nworked in the area of artificial intelligence applied to \nbiological problems in both academia and industry.\n\n3:00-5:45pm \"Neural Networks, Statistics, and Information Theory \n in Biological Sequence Analysis\" Dr. Alan Lapedes (Los Alamos \n National Laboratory) \n\nThis tutorial will cover the most rapidly-expanding facet of \nintelligent systems for molecular biology, that of machine \nlearning techniques applied to sequence analysis.  Closely \ninterrelated topics to be addressed include the use of artifical \nneural networks to elicit both specific signals and general \ncharacteristics of sequences, and the relationship of such \napproaches to statistical techniques and information-theoretic \nviews of sequence data.  Dr. Lapedes, of the Theoretical \nDivision at Los Alamos, has long been a leader in the use of such \ntechniques in this domain.\n\n3:00-5:45pm \"Genetic Algorithms and Genetic Programming\" \n Prof. John Koza (Stanford University)\n\nThe genetic algorithm, an increasingly popular approach to highly \nnon-linear multi-dimensional optimization problems, was originally \ninspired by a biological metaphor.  This tutorial will cover both \nthe biological motivations, and the actual implementation and \ncharacteristics of the algorithm.  Genetic Programming, an \nextension well-suited to problems where the discovery of the size \nand shape of the solution is a major part of the problem, will \nalso be addressed.  Particular attention will be paid to \nbiological applications, and to identifying resources and software \nthat will permit attendees to begin using the methods.  Dr. Koza, \na Consulting Professor of Computer Science at Stanford, has taught \nthis subject since 1988 and is the author of a standard text in \nthe field.\n\n3:00-5:45pm \"Linguistic Methods in Sequence Analysis\" \n Prof. David Searls (University of Pennsylvania) \n & Shmuel Pietrokovski (Weizmann Institute)\n\nApproaches to sequence analysis based on linguistic methodologies \nare increasingly in evidence.  These involve the adaptation of \ntools and techniques from computational linguistics for syntactic \npattern recognition and gene prediction, the classification of \ngenetic structures and phenomena using formal language theory, the \nidentification of significant vocabularies and overlapping codes \nin sequence data, and sequence comparison reflecting taxonomic and \nfunctional relatedness.  Dr. Searls, who holds research faculty \nappointments in both Genetics and Computer Science at Penn, \nrepresents the branch of this field that considers higher-order \nsyntactic approaches to sequence data, while Shmuel Pietrokovski \nhas studied and published with Prof. Edward Trifinov in the area \nof word-based analyses.\n\n                      REGISTRATION FORM\nMail, with check made out to \"ISMB-93\", to:\n\n               ISMB Conference, c/o J. Shavlik\n               Computer Sciences Department\n               University of Wisconsin\n               1210 West Dayton Street\n               Madison, WI 53706  USA\n\n        ================================================\n\n        Name____________________________________________\n\t\n        Affiliation_____________________________________\n\t\n        Address_________________________________________\n\n        ________________________________________________\n\n        ________________________________________________\n\n        ________________________________________________\n\n        Phone___________________________________________\n\n        FAX_____________________________________________\n\n        Electronic Mail_________________________________\n\t\n        Registration Status: ____ Regular   ____ Student\n\n        Presenting?          ____ Talk      ____  Poster\n        ================================================\n        TUTORIAL REGISTRATION \n\n        ____\"Molecular Biology for Computer Scientists\"\n         or\n        ____\"Artificial Intelligence for Biologists\"\n         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - \n        ____\"Neural Networks, Statistics, and \n         or     Information Theory in Sequence Analysis\"\n        ____\"Genetic Algorithms and Genetic Programming\"\n         or \n        ____\"Linguistic Methods in Sequence Analysis\"\n        ================================================\n        PAYMENT       (Early Registration Before June 1)\n\n        Registration:  Early   Late\t    $___________\n              Regular  $100    $125\t\n              Student  $75     $100\t\n        Tutorials:     One      Two         $___________\n              Regular  $50      $65\t\n              Student  $25      $35\t\n        Total:                              $___________\n        ================================================\n        Registration fees include conference proceedings, \n        refreshments, and general program expenses. \n\n\n                      ORGANIZING COMMITTEE\n        Lawrence Hunter                              NLM \n        David Searls                  U. of Pennsylvania\n        Jude Shavlik                     U. of Wisconsin\n\n                        PROGRAM COMMITTEE\n        Douglas Brutlag                      Stanford U.\n        Bruce Buchanan                  U. of Pittsburgh\n        Christian Burks          Los Alamos National Lab\n        Fred Cohen                    U.C.-San Francisco\n        Chris Fields           Inst. for Genome Research\n        Michael Gribskov                  U.C.-San Diego\n        Peter Karp                     SRI International\n        Toni Kazic                         Washington U.\n        Alan Lapedes             Los Alamos National Lab\n        Richard Lathrop                MIT & Arris Corp.\n        Charles Lawrence                          Baylor \n        Michael Mavrovouniotis            U. of Maryland\n        George Michaels                              NIH\n        Harold Morowitz                  George Mason U.\n        Katsumi Nitta                               ICOT\n        Mick Noordewier                       Rutgers U.\n        Ross Overbeek               Argonne National Lab\n        Chris Rawlings                              ICRF\n        Derek Sleeman                     U. of Aberdeen\n        David States                       Washington U.\n        Gary Stormo                       U. of Colorado\n        Ed Uberbacher             Oak Ridge National Lab\n        David Waltz              Thinking Machines Corp.\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.453+0000", "event": "documents", "entityId": 9621, "properties": {"category": "rec.motorcycles", "text": "From: johnsw@wsuvm1.csc.wsu.edu (William E. Johns)\nSubject: Need a wheel\nOriginator: bill@wsuaix.csc.wsu.edu\nKeywords: '92\nOrganization: Washington State University\nDistribution: na\nLines: 18\n\n\nDoes anyone have a rear wheel for a PD they'd like to part with?\n\nDoes anyone know where I might find one salvage?\n\nAs long as I'm getting the GIVI luggage for Brunnhilde and have\nthe room, I thought I'd carry a spare.\n\nRide Free,\n\nBill\n___________________________________________________________________             \njohnsw@wsuvm1.csc.wsu.edu  prez=BIMC  KotV KotRR                                \nDoD #00314  AMA #580924   SPI = 7.18   WMTC #0002  KotD #0001             \nYamabeemer fj100gs1200pdr650 Special and a Volvo.  What more could anyone ask? \n                                                           \nPain is inevitable, suffering is optional.\n \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9622, "properties": {"category": "talk.religion.misc", "text": "From: stevep@Cadence.COM (Steve Peterson)\nSubject: Re: Question on Sabbath question; Correction\nOrganization: Cadence Design Systems, Inc.\nLines: 13\n\n>> There are a few groups that continue to believe Christians have to\n>> worship on the Sabbath (Saturday).  The best-known are the Seventh-Day\n>> Adventists and Jehovah's Witnesses.  They argue that Act 20:7 is not a\n>> regular worship service, but a special meeting to see Paul off, and\n>> that I Cor 16:2 doesn't explicitly say it's a regular worship service.\n\nJehovah's Witnesses do not believe that Christians are required to observe\nthe Sabbath, whether it is on Saturday or Sunday.  The Sabbath was part\nof a Covenent between God and the Israelites and is not required for\nChristians.\n\nSteve Peterson\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9623, "properties": {"category": "alt.atheism", "text": " howland.reston.ans.net!europa.eng.gtefsd.com!fs7.ece.cmu.edu!news.sei.cmu.edu!dpw\nSubject: Periodic Post of Charley Challenges, #3, with additions\nFrom: dpw@sei.cmu.edu (David Wood)\nOrganization: Software Engineering Institute\nLines: 250\n\n\n\nNew in this version:  challenge #5, plus an addendum summarizing\nCharley's responses to-date..\n-----------------------------------------\n\n*** This is a posting made periodically in an attempt to encourage\n*** Charley Wingate to address direct challenges to his evidently \n*** specious claims.  I'll continue to re-post periodically until\n*** he answers them, publicly indicates that he won't answer them,\n*** stops posting to alt.atheism, the alt.atheism community tells\n*** me to stop, or I get totally bored.  I apologize for the \n*** somewhat juvenile nature of this approach, but I'm at a loss\n*** to figure out another way to crack his intransigence and \n*** seeming intellectual dishonesty.\n***\n*** This is re-post #3.\n\n\nCharley,\n\nI can't help but notice that you have still failed to provide answers\nto substantive questions that have been raised in response to your\nprevious posts.  I submit that you don't answer them because you\ncannot answer them without running afoul of your own logic, and I once\nagain challenge you to prove me wrong.  To make the task as easy for\nyou as possible, I'll present concise re-statements of some of the\nquestions that you have failed to answer, in the hope that you may\naddress them one at a time for all to see.\n\nShould you fail to answer again within a reasonable time period, I\nwill re-post this article, with suitable additions and deletions, at\nsuch time that I notice a post by you on another topic.  I will repeat\nthis procedure until you either address the outstanding challenges or\nyou cease to post to this newsgroup.\n\nI would like to apologize in advance if you have answered any of these\nquestions previously and your answer missed my notice.  If you can be\nkind enough to re-post or e-mail such articles, I will be only too\npleased to publicly rescind the challenge in question, and remove it\nfrom this list.\n\nNow, to the questions...\n\n1. After claiming that all atheists fit into neat psychological\npatterns that you proposed, then semi-retracting that claim by stating\nthat you weren't referring to *all* atheists, I asked you to name some\natheists who you feel don't fit your patterns, to show that you indeed\nwere not referring to all atheists that you are aware of.  You failed\nto do so.  Please do so now.\n\nQuestion: Can you name any a.a posters who do not fit into your\nstereotype?\n\nHere is the context for the question:\n\n>>> This is not true for everyone on this board, and you are out of line\n>>> in assuming that it is.\n>>\n>>YOU, however, deleted the text further along where I said that I didn't mean\n>>to imply that everybody's experience was along the same lines.  \n>\n>Whether or not you *mean* to make such implications, you do so\n>repeatedly.  \n>\n>Allow me to approach the issue from another viewpoint: can you name\n>those atheists that you've come across who *do not* fit into the\n>patterns that you theorize?\n\n\n2. You have taken umbrage to statements to the effect that \"senses and\nreason are all we have to go by\", and when pressed, you have implied\nthat we have an alternative called revelation.  I have repeatedly\nasked you to explain what revelation is and how one can both\nexperience and interpret revelation without doing so via our senses\nand reason.  You failed to do so.  Please do so now.\n\nQuestion: Can you explain what is revelation and how one can\nexperience and interpret it without using senses and inherent\nreasoning?\n\nHere is the context for the question:\n\n>>Revelation is not reason, and if we DO have revelation, then\n>>reasoning is NOT all we have.\n\n>First, show me that revelation exists.  Second, if revelation is not\n>perceived through the senses, how exactly is it perceived?  According\n>to my Webster's, revelation is \"an act of revealing or communicating\n>divine truth.\"  Now, tell me how such a thing can be revealed/\n>communicated other than via the senses?  Tell me how you can interpret\n>this revelation other than with reason, that is, using your brain to\n>interpret what you are sensing.  When I say there is no way for a\n>human being to interface with the universe other than via the senses as\n>interpreted by reason (your brain), it is because this is the simple\n>truth.  If you have another mechanism of interface, by all means,\n>share it with us.\n\nthen later...\n\n>>>You CANNOT escape the fact that our entire interface with the universe is\n>>>our senses and our reason, period.\n>>\n>>Again, this is indefensible.  \n>\n>No, it is simple truth.  I challenge you to show me otherwise.\n\nthen later...\n\n>>Few mystics will agree to this assertion, and the common defense of\n>>redefining \"senses\" to absorb (for instance) mystical experiences is\n>>begs the question of whether some senses are better than others.\n>\n>I allow you the broadest definition of senses, to make things easier\n>for you.  Now, show me that \"mystical experiences\" exist.  Remember,\n>you aren't allowed to go by testimony of others (e.g., mystics), since\n>you have dismissed my testimony as unreliable - you know, tainted by\n>my own bias.  Further, once these mystical thingies are absorbed, show\n>me evidence that a human can recognize and respond to them short of\n>interpretation via that person's reasoning capabilities.\n>\n>I challenge you to show me these things.  If you cannot do so, you\n>might as well give up the fight.\n\nthen later...\n\n>Let me reiterate, you have NOT explained your interpretation of your\n>experiences, so it is not possible for me to have attacked them.  In\n>point of fact, I specifically challenged you to explain this\n>revelation stuff that you were talking about, and I note for the\n>record that you appear to have declined my challenge.\n>\n>*What* is it?  *How* is it sensed?  *How* is it interpreted?  And\n>*how* does this sensing and interpretation occur without the conduit\n>of our senses and reasoning abilities?  You have answered none of\n>these questions that go straight to the heart of your claims.  If you\n>can't answer them, your claims are entirely specious.\n\n\n3.  You have stated that all claims to dispassionate analysis made by\na.a posters are unverifiable and fantastical.  I asked you to identify\none such claim that I have made.  You have failed to do so.  Please do\nso now.\n\nQuestion: Have I made any claims at all that are unverifiable and\nfantastical?  If so, please repeat them.\n\nHere is the context for the question:\n\n\n>>I must thank David Wood a most sensitive and intelligent (if wrong :-))\n>>posting.  \n\nthen later...\n\n>>Likewise, the reference to \"unverifiable, fantastical\n>>claims\" represents fairly accurately my reaction to all of the claims to\n>>dispassionate analysis that are repeated in this group.\n>\n>Give me your address and I'll be pleased to send you a dictionary.\n>Failing that, can you name ONE claim that I have made that is in any\n>sense unverifiable or fantastical?  I demand that you retract this\n>statement if you cannot offer up evidence.  If you follow your usual\n>pattern of ignoring the challenge, then you are simply an asshole.\n\n\n4.  First you dismissed claims by atheists that they became atheists as\na result of reason, then later you stated that if one accepted the\n\"axioms\" of reason that one couldn't help but become atheist.  I asked\nyou to explain the contradiction.  Your only response was a statement\nthat the question was incoherent, an opinion not shared by others that\nI have asked, be they atheist or theist.  You have failed to answer\nthe question.  Please do so now.\n\nQuestion: Do you retract your claim that a.a posters have not become\natheists as a result of reason, despite their testimony to that\neffect?  If you don't retract that claim, do you retract the\nsubsequent claim that acceptance of the axioms of reason inevitably\nresult in atheism?\n\nHere is the context for the question:\n\n[First quote]\n>>...we have here a bunch of people who claim that their position is\n>>based on reason... it is up to atheists to prove it to me...\n>\n>then,\n>\n[Second quote]\n>>...but I do not see how one can accept these axioms and not end up with\n>>an atheistic point of view.\n\n\n5.  First, you claimed that you would (probably) not answer these\nChallenges because they contained too much in the way of \"included\ntext\" from previous posts.  Later, you implied that you wouldn't\nrespond because I was putting words in your mouth.  Please clarify\nthis seeming contradiction.\n\nQuestion:  Do you prefer to respond to Challenges that include context\nfrom your own posts, or that I paraphrase your positions in order to\navoid \"included text\"?\n\nHere is the context for the question:\n\nFirst you said:\n\n>>My ordinary rules are that I don't read articles over over 150 lines\n>>or articles in which there is nothing but included text on the first\n>>screen.  THese are not rules of morality, but practicality.\n\nthen later...\n\n>>If someone is not going to argue with MY version of MY position, then\n>>they cannot be argued with.\n\n\nAs usual, your responses are awaited with anticipation.\n\n--Dave Wood\n\n\np.s., For the record, below is a compilation of Charley's responses to\nthese challenges to date.\n\n3/18/93\n>>This makes no sense to me at all; it gives the appearance either of utter\n>>incoherence, or of answering some question of Mr. Wood's imagination.\n\n3/31/93 (#1)\n>>Mr. Wood, I do not subscribe to the opinion that a gauntlet thrown down on\n>>the net requires any response whatsoever.  At some point I might read and\n>>respond to your article, and then again, I might not.  My ordinary rules are\n>>that I don't read articles over over 150 lines or articles in which there is\n>>nothing but included text on the first screen.  THese are not rules of\n>>morality, but practicality.\n\n3/31/93 (#2)\n>>I left out something else I don't respond to.\n>>...\n>>Utmost on my list of things to avoid are arguments about the arguments\n>>(meta-arguments, as some call them).\n\n4/3/93\n>>When I have to start saying \"that's not what I said\", and the response is\n>>\"did so!\", there's no reason to continue.  If someone is not going to argue\n>>with MY version of MY position, then they cannot be argued with.\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9624, "properties": {"category": "sci.crypt", "text": "From: jfc@athena.mit.edu (John F Carr)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: Massachusetts Institute of Technology\nLines: 37\nNNTP-Posting-Host: achates.mit.edu\n\nIn article <1993Apr20.145338.14804@shearson.com>\n\tpmetzger@snark.shearson.com (Perry E. Metzger) writes:\n\n[I wrote:]\n>>The chip and algorithm are classified.  If you reverse engineer it and\n>>tell people, you are likely to go to jail.\n\n>Well, I'm not a lawyer, but from what I can tell this is completely\n>and utterly untrue.\n\n>The U.S. does NOT have an official secrets act. We do have laws that\n>will punish you for revealing what classified information you learned\n>in your capacity as a government official, contractor, etc, and we\n>have laws that prohibit stealing such information. However, if they\n>sell you the chip, I can't see that they can make reverse engineering\n>it and revealing the details illegal.\n\nIn most cases information you come by properly is yours to use as you wish,\nbut there are certainly exceptions.  If you write a paper which includes\nsufficiently detailed information on how to build a nuclear weapon, it is\nclassified.  As I understand the law, nuclear weapons design is\n_automatically_ classified even if you do the work yourself.  I believe you\nare then not allowed to read your own paper.\n\nA less serious example: if you tell drivers about a speed trap they are\nabout to run into, you can be fined, even though you might argue that you\nbroke no law when you discovered the location of the policeman.  The charge\nis interfering with a police officer, which is quite similar what you would\nbe doing by reverse engineering the Clipper chip.\n\nDon't tell me that you think this violates the Constitution -- find some\ncourt cases which have struck down such laws.  Many people would not be\ncomforted by the fact that the government violated their rights when it\nimprisoned them.\n\n--\n    John Carr (jfc@athena.mit.edu)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9625, "properties": {"category": "sci.electronics", "text": "From: scst83@csc.liv.ac.uk (Chris Smith)\nSubject: Re: books/info on audio DSP ??\nDistribution: rec,sci\nOrganization: Computer Science, Liverpool University\nLines: 28\nNntp-Posting-Host: goyt.csc.liv.ac.uk\n\nIn sci.electronics,rec.audio David S. Rowell writes:\n\n>I assume these are appropriate newsgroups for this question.  I am looking\n>for a good book, articles, anything on audio DSP.  Theory is nice, but\n>I'm really looking for something very much on the applications side.\n>I want to look into it as my new hobby, so I need all the direction\n>I can get.  Any comments would be welcome, too.\n\nI'm looking to build a DSP for guitar processing. Hence lots of background\ninformation would be really useful !\n\nIf anyone's got any info, could they email.....\n\nThanks in advance...\n\nChris ;-)\n\n  +====================================================================+\n  |Name : Mr Chris Smith       |     Twang on that 'ole guitar !       |\n  |Addrs: scst83@uk.ac.liv.csc |                                       |\n  |Uni  : Liverpool University |Quest: To build more and more hardware |\n  |Dgree: Computer Science     |                                       |\n  +====================================================================+\n\n \"What ever the sun may be, it is certainly not a ball of flaming gas!\"\n  -- D.H. Lawrence.\n\n * All views expressed are my own, and reflect that of private thought. *\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9626, "properties": {"category": "sci.space", "text": "From: dbm0000@tm0006.lerc.nasa.gov (David B. Mckissock)\nSubject: Blue Ribbon Panel Members Named\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: tm0006.lerc.nasa.gov\nOrganization: NASA Lewis Research Center / Cleveland, Ohio\nLines: 71\n\nThe following press release was distributed April 1 by\nNASA Headquarters.\n\nSpace Station Redesign Advisory Members Named\n\nAlong with Dr. Charles M. Vest, recently named by Vice President\nAlbert Gore to head the advisory committee on the redesign of the\nSpace Station, NASA has announced the names of representatives\nfrom government and industry and academic experts from across the\ncountry to participate in an independent review of the redesign\noptions being developed by NASA.\n\n\"I am extremely honored to have been selected to lead this\nimportant review panel. America's future in science and\ntechnology and as a world leader in space demands our utmost\nattention and care,\" said Vest. \"We have assembled a diverse\npanel of experts that, I believe, will bring the appropriate\nmeasures of insight, integrity and objectivity to this critical\ntask.\"\n\nThe advisory committee is charged with independently assessing\nvarious redesign options of the space station presented by NASA's\nredesign team, and proposing recommendations to improve\nefficiency and effectiveness of the space station program. Space\nstation international partners also are being asked to \nparticipate and will be named at a later date. The advisory\ncommittee will submit its recommendations in June.\n\nAdvisory committee members named today include:\n\nDr. Charles Vest              Dr. Bobby Alford\nPresident, MIT                Executive VP & Dean of Medicine\n                              Baylor College of Medicine\n\nMr. Jay Chabrow               Dr. Paul Chu\nPresident, JMR Associates     Director, Texas Center for\n                              Superconductivity\n                              University of Houston\n\nDr. Ed Crawley                Dr. John Fabian\nProf of Aero & Astro          President & CEO\nMIT                           ANSER\n\nMaj. Gen. James Fain          Dr. Edward Fort\nDeputy Chief of Staff for     Chancellor\nRequirements; Headquarters    North Carolina AT&T\nUSAF Materials Command        State University\n\nDr. Mary Good                 Mr. Frederick Hauck\nSenior VP of Technology       President, International Technical\nAllied Signal, Inc.           Underwriters\n\nDr. Lou Lanzerotti            Mr. William Lilly\nChair, Space Sciences         National Academy of Public\nBoard, National Research      Administration\nCouncil\n\nMr. Duane McRuer              Dr. Brad Parkinson\nPresident Systems Technology  Prof of Astro & Aero\n                              Stanford University\n\nDr. Robert Seamans            Dr. Lee Silver\nFormer NASA Deputy Admin.     W.M. Keck Foundation Professor\n                              for Resource Geology\n                              California Institute of\n                              Technology\n\nDr. Albert \"Bud\" Wheelon\nRetired CEO\nHughes Aircraft\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9627, "properties": {"category": "talk.politics.guns", "text": "From: rats@cbnewsc.cb.att.com (Morris the Cat)\nSubject: Re: news says BATF indictment/warrant unsealed...\nOrganization: AT&T\nDistribution: usa\nLines: 26\n\n\n|QUESTION:\n|What will Californians do with all those guns after the Reginald\n|denny trial?\n\nThe Wall Street Journal had an article on how the police were whining\nabout all the new guns; excuse me, but police are EMPLOYEES of the\ngovernment. Rather like having your janitor complain about job\nconditions.\n\nI say Californians should form armed block clubs that would engage\nin coordinated strategies should BATF attempt to disarm them based\non the \"nefarious tipster\" theory of law enforcement. Unlike Waco, \nCalifornians should be able to destroy armored vehicles in city\nstreets with incendiary weapons, acetylene after slowing them down\nwith abandoned car blockades. M-1 Garands should easily outclass\nBATF shock troops with their H&K MP-5 SMGs, and there should be\nenough Sony Walkmans and Boom Boxes to overwhelm any FBI psy-war\noperation... yes, a good time would be had by all. Billary Clinton\nwould get what he wanted, a War on Gunowners, the BATF would attempt\nto show the anti-gun press they they really, REALLY were in charge\nwith a 500-man \"Charge of the Light Brigade,\" and the FBI would attempt \nto show how _THEY_ really were in charge by asking the Californian \nNational Guard to level the area with artillary!\n\n:-) :-) :-)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9628, "properties": {"category": "talk.politics.mideast", "text": "From: maler@vercors.imag.fr (Oded Maler)\nSubject: Re: FLAME and a Jewish home in Palestine\nNntp-Posting-Host: pelvoux\nOrganization: IMAG, University of Grenoble, France\nLines: 40\n\nIn article <C5HJBC.1HC@bony1.bony.com>, jake@bony1.bony.com (Jake Livni) writes:\n|> In article <1993Apr13.172422.2407@newshub.ariel.yorku.ca> nabil@ariel.yorku.ca (Nabil Gangi) writes:\n|> \n|> >According to Exodus, there were 600,000 Jews that marched out of Egypt.\n|> \n|> This is only the number of adult males.  The total number of Jewish\n|> slaves leaving Egypt was much larger.\n|> \n|> >The number which could have arrived to the Holy Lands must have been\n|> >substantially less ude to the harsh desert and the killings between the\n|> >Jewish tribes on the way..\n|> >\n|> >NABIL\n|> \n|> Typical Arabic thinking.  If we are guilty of something, so is\n|> everyone else.  Unfortunately for you, Nabil, Jewish tribes are not\n|> nearly as susceptible to the fratricidal murdering that is still so\n|> common among Arabs in the Middle East.  There were no \" killings\n|> between the Jewish tribes on the way.\"\n\nI don't like this comment about \"Typical\" thinking. You could state\nyour interpretation of Exodus without it. As I read Exodus I can see \na lot of killing there, which is painted by the author of the bible\nin ideological/religious colors. The history in the desert can be seen\nas an ethos of any nomadic people occupying a land. That's why I think\nit is a great book with which descendants Arabs, Turks and Mongols can \nunify as well.\n\n\n|> Jake\n|> -- \n|> Jake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\n|> American-Occupied New York                   have replaced Jimmy Carter as the\n|> My opinions only - employer has no opinions.    standard of a failed President.\n\n-- \n===============================================================\nOded Maler, LGI-IMAG, Bat D, B.P. 53x, 38041 Grenoble, France\nPhone:  76635846     Fax: 76446675      e-mail: maler@imag.fr\n===============================================================\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9629, "properties": {"category": "soc.religion.christian", "text": "From: MANDTBACKA@finabo.abo.fi (Mats Andtbacka)\nSubject: Re: If There Were No Hell\nOrganization: Unorganized Usenet Postings UnInc.\nLines: 26\n\nIn <May.5.02.51.25.1993.28737@athos.rutgers.edu> shellgate!llo@uu4.psi.com writes:\n\n> Here's a question that some friends and I were debating last night.\n> Q: If you knew beyond all doubt that hell did not exist and that\n>    unbelievers simply remained dead, would you remain a Christian?\n\n      (Reasoning pertinent to believing Xians deleted for space)\n\n      It strikes me, for no apparent reason, that this is reversible.\nI.e., if I had proof that there existed a hell, in which I would be\neternally punished for not believing in life, would that make me a Xian?\n(pardon my language) _Bloody_hell_no_!\n\n      ...Of course, being merely a reversal of your thinking, this\ndoesn't add anything _new_ to the debate, but...\n\n> Several friends disagreed, arguing the fear of hell was necessary\n> to motivate people to Christianity. To me that fatally undercuts the\n> message that God is love.\n\n      A point very well taken, IMNSHO.\n\n-- \n\"Successful terrorism is called revolution, and is admired by history.\n Unsuccessful terrorism is just lowly, cowardly terrorism.\"\n    - Phil Trodwell on alt.atheism\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9630, "properties": {"category": "comp.os.ms-windows.misc", "text": "Nntp-Posting-Host: 134.58.96.14\nFrom: wimvh@liris.tew.kuleuven.ac.be (Wim Van Holder)\nDistribution: world\nOrganization: K.U.Leuven - Applied Economic Sciences Department\nSubject: WINQVTNET with NDIS on Token Ring ?\nLines: 13\n\nIs it possible to use WinQVT/Net on a machine that uses NDIS to connect to a\nToken Ring ? I tried it with older versions (< 3.2) but got an invalid packet\nclass error or something the like...\n\nRegards,\n\nWim Van Holder\nKatholieke Universiteit Leuven          Tel: ++32 (0)16/28.57.16\nDepartement T.E.W.                      FAX: ++32 (0)16/28.57.99\nDekenstraat 2\nB-3000 Leuven                           E-mail: wimvh@liris.tew.kuleuven.ac.be\nBELGIUM                                         fdbaq03@cc1.kuleuven.ac.be\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9631, "properties": {"category": "misc.forsale", "text": "From: dsnyder@falcon.aamrl.wpafb.af.mil\nSubject: Re: Wanted: Trombone for a beginner\nDistribution: world\nOrganization: USAF AL/CFH, WPAFB, Dayton, OH\nLines: 31\n\nIn article <1qu43p$aam@fnnews.fnal.gov>, Greg Schuweiler <schuweiler@fnal.gov> writes:\n> \n> Would like to purchase a trombone for a 9 year old because\n> \n>  \"This really really want I want to play daddy I'll practice everyday and\n> I'll even keep my room really clean.\"  \n> \n> Well he must really mean it.  Would like to find a used one.  Please\n> e-mail me at \n> \n> schuweiler@fnal.gov\n> \n> \n> Greg Schuweiler  schuweiler@fnal.gov\n\n  I've got a used one for sale.  I used it in high school and just don't have \nthe occasion to get it out and play it anymore.  Email me and we can work out \nsomething on it.  I can't get email to you for some reason.  David-- \n\n---------------------------------------------------------------------\nDavid B. Snyder                     Logicon Technical Services Inc.\ndsnyder@falcon.aamrl.wpafb.af.mil   Wright-Patterson Air Force Base\n513-255-5165                        Dayton, Ohio USA\n---------------------------------------------------------------------\nIt is said that GOD doesn't subtract from ones' time on earth, those\nhours spent flying.\n---------------------------------------------------------------------\n1946 Cessna 140 N76234 \"The lady in waiting\" Owner/Operator\n---------------------------------------------------------------------\nOpinions expressed are my own and not those of Logicon or the USAF.\n---------------------------------------------------------------------\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9632, "properties": {"category": "comp.sys.mac.hardware", "text": "From:  ()\nSubject: Re: Quadra SCSI Problems???\nOrganization: Apple Computer Inc.\nLines: 28\n\n> ATTENTION: Mac Quadra owners: Many storage industry experts have\n> concluded that Mac Quadras suffer from timing irregularities deviating\n> from the standard SCSI specification. This results in silent corruption\n> of data when used with some devices, including ultra-modern devices.\n> Although I will not name the devices, since it is not their fault, an\n> example would be a Sony 3.5 inch MO, without the special \"Mac-compatible\"\n> firmware installed. One solution, sometimes, is to disable \"blind writes\"\n> \nTo the best of my knowledge there aren't any problems with Quadras and\nblind transfers.  Trouble with blind transfers usually means the programmer\nscrewed up the TIBs or didn't test their driver with the device in question.\nWell designed TIBs poll or loop at every point where delays of >16\u00b5sec occur.\nThis usually occurs at the first byte of each block of a transfer but some\ndevices can \"hiccup\" in the middle of blocks.  If this happens in the middle\nof a blind transfer there is the possibility of losing or gaining a byte\ndepending on which direction the tranfer was going.  In anycase the SCSI Manager\nwill eventually return a phase error at the end of the transaction because\nit is out of sync.  Actual data loss would only occur if the driver didn't\npay attention to the errors coming back.\n\nNote that this effect is not caused by anything actually on the SCSI Bus but\nrather by the transfer loops inside the SCSI Manager.  The problem occurs when\nthe processor bus errors trying to access the SCSI chip when the next byte\nhasn't been clocked yet.  Also note that the Bus Error is dealt with by a bus\nerror handler and doesn't crash the machine...\n\nClinton Bauder\nApple Computer\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9633, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: Drawing colour pixmaps - not rectangular\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 27\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nIn article <1993Mar31.022947.149@etrog.se.citri.edu.au>, jck@catt.citri.edu.au (Justin Kibell) writes:\n\n|>   I am writing a program which needs to draw colour XPM pixmap files onto a background without having the borders show up. I cannot do xor as the colours all stuff up. I cannot use XCopyPlane() as that is for single planes only. I want to be able to specify a colour in the pixmap to be used as the opaque colour. Is this possible. \n|> \n|> Games such as xjewel have the same problem. How does the mouse pointer do it?\n|> \n|> Any help would be helpful? :-)\n|> \n\nYou wanna do masking. Build a bitmap (pixmap of depth one) where all pixels\nyou name \"opaque\" are 1 (that get copied) and the others are 0. Use this\nbitmap as the clip_mask in the gc used for XCopyArea(), and remember to\nadjust the clip_origin coordinates to the XCopyArea() blit origin.\n\nThe Mouse pointer (besides from that it is driven using RAMDAC analog\nmapping on most hardwares) uses a mask, too.\n\nBut be warned: blitting through a mask and especially moving around this mask\nis annoying slow on most xservers... it flickers even at 40 MIPS...\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9634, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: <Political Atheists?\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 26\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1qlfd4INN935@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n>livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>\n>>>Well, chimps must have some system.  They live in social groups\n>>>as we do, so they must have some \"laws\" dictating undesired behavior.\n>>So, why \"must\" they have such laws?\n>\n>The quotation marks should enclose \"laws,\" not \"must.\"\n>\n>If there were no such rules, even instinctive ones or unwritten ones,\n>etc., then surely some sort of random chance would lead a chimp society\n>into chaos.\n\t\n\n\tThe \"System\" refered to a \"moral system\". You havn't shown any \nreason that chimps \"must\" have a moral system. \n\tExcept if you would like to redefine everything.\n\n\n--- \n\n        \" Whatever promises that have been made can than be broken. \"\n\n        John Laws, a man without the honor to keep his given word.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9635, "properties": {"category": "rec.sport.hockey", "text": "From: umturne4@ccu.umanitoba.ca (Daryl Turner)\nSubject: ESPN sucks: OT or Baseball?  Guess which.\nNntp-Posting-Host: ccu.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Manitoba, Canada\nLines: 10\n\nShowing a meaningless (relatively) baseball game over the overtime of\ngame that was tied up with less than 3 seconds left on the clock?\nGimme a break!  Where does ESPN get these BRILLIANT decisions from?\n\nDaryl Turner : r.s.h contact for the Winnipeg Jets \nInternet: umturne4@ccu.umanitoba.ca  \nFidoNET: 1:348/701 -or- 1:348/4  (please route through 348/700)\nTkachuk over to Zhamnov, up to Sel{nne, he shoots, he scores! \nThe Jets win the Cup!  The Jets win the Cup!\nEssensa for Vezina!  Housley for Norris!  Sel{nne for Calder!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9636, "properties": {"category": "rec.autos", "text": "From: fsmlm2@acad3.alaska.edu (Rebelheart)\nSubject: ALASKA CAR SHOW\nNews-Software: VAX/VMS VNEWS 1.41.UAC\nKeywords: Car Show, Peninsula Cruisers, Kenai, Alaska\nNntp-Posting-Host: acad3.alaska.edu\nOrganization: R.E.B.E.L.H.E.A.R.T.\nLines: 32\n\n        PENINSULA CRUISERS THIRD ANNUAL AUTOFAIRE\n\nWHAT:  CAR SHOW (FOR ANY AND ALL TYPES OF VEHICLES INCLUDING PEDAL CARS)\nWHERE:  KENAI MALL, KENAI, ALASKA\nWHEN:  MAY 14, 15, & 16, 1993\nWHO: PENINSULA CRUISERS CAR CLUB, KENAI, AK (907-283-4979)\nWHY:  PROCEEDS OF THIS EVENT TO BENEFIT THE COOPER LANDING AMBULANCE CORPS.\n\nGENERAL:  THIS CAR SHOW IS OPEN TO ALL TYPES OF CARS, TRUCKS, MOTORCYCLES, \n          FACTORY AND MODIFIED, MILD TO WILD, ANTIQUE, SPECIAL INTERESTS,       \n          RACE, DRAG, MUDDERS, HI-PO, OR JUST PLAIN  UGLY :)\n\nTHIS IS A FUN EVENT, INTENDED FOR THE OCCASSIONAL GEAR-HEAD TO THE MOST\nSERIOUS GEAR-SLAMMER.  WE WOULD LIKE TO HAVE AS MANY ENTRANTS AS POSSIBLE, \nBUT PLEASE CONTACT US FOR SPACE AVAILABILITY ( FIRST COME FIRST SERVE)\n\nP.S.  ALL OUT OF TOWN ENTRANTS CAN STAY RIGHT NEXT DOOR AT THE \n        KENAI MERRIT INN FOR A SPECIAL RATE OF $60 A NIGHT \n        (SINGLE OR DOUBLE OCCUPANCY) CALL THE MERIT @\n        907-283-6131\n\nIF YOU'D LIKE ANY FURTHER INFORMATION, YOU CAN CONTACT ME AT THE \nADDRESSES BELOW. \n\n Mel McKay----cant drive 55!!!!!!! & Rebelheart, a gorgeous 90 SuperCoupe\nRemember ....55 saves lives, 110 saves twice as many :)\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n=           Rebelheart                 \t    |                                  =\n=\t\t\t\t\t    |\"Too old for some things...       =\n=  #define BITNET <FSMLM2@ALASKA>\t    |   Too young to know \t       =\n=  #define E-MAIL <FSMLM2@ACAD3.ALASKA.EDU> |         which things.\"           =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9637, "properties": {"category": "rec.autos", "text": "From: mps1@cec1.wustl.edu (Mihir Pramod Shah)\nSubject: Re: saturn -- puzzled by its pricing\nArticle-I.D.: wuecl.1993Apr6.074352.15514\nDistribution: na\nOrganization: Washington University, St. Louis MO\nLines: 43\nNntp-Posting-Host: cec1\n\nIn article <1993Apr1.230642.5207@cbfsb.cb.att.com> ykhsu@cbnewsf.cb.att.com (yung-kao.hsu) writes:\n>\n>\tI am the person who started out this subject.\n>\n>\tTo me, the question really is not about dealer profit but the\n>\tamount of money for the type of car. I've settled with a\n>\tnew 92 Subaru Wagon with the similar amount of money a Saturn\n>\tdealer asked for a SW1. OK, I know it's a 92 model, but I think\n>\tI got a better car (though I have to adjust my initial idea of \n>\twhy I am getting a new car).\n>\n>\tToday, during a conversion with a friend, I learned he rejected\n>\ta Saturn for a Ford Tarurs; as it only costed him a little bit more\n>\tthan a SL2. I may be wrong, but a loaded Tarus beats a Saturn SL2.\n\n\tI agree that a fully-loaded SL2 would come close in price to a\nLOWER-END Ford Taurus.  A FULLY-LOADED Taurus, on the other hand, would still\nbe substantially more expensive than even the most glitzy SL2.  A fully loaded\nSL2 would run somewhere around $17,000, while a fully loaded Taurus LX would be\nsomewhere around the $22,000-$23,000 range.  A base Taurus (GL I believe) might\nstart around $15,000.  Of course there is the Taurus SHO which can push $30,000\nif you really try, but this is a totally different car than your mainstream\nTaurus sedan.  Your statement was not entirely faulty, just a little\ninaccurate.\n\n>\n>\tI can't see Saturn is of better value and that is why I was puzzled\n>\tby its pricings. Oh, we did not spend much time getting our deals;\n>\tbeing better informed has its advantages.\n\nWell, that's ok.  At least you're not bitching about dealer profits like some\nof the other netters are.  You seem to have rationally picked out the car that\nis best for you.  The Loyale is an aging design that is about to be replaced by\nthe Impreza wagon, so you probably got a good deal on one of the last ones.\n\n>\t\n>\tThen again, I may be wrong.\n>\n>Yung-Kao Hsu\n>\n\nMihir Shah\nmps1@cec1.wustl.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9638, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jef_i@pt_iwaniw.stars.flab.Fujitsu.JUNET (Jefrem Iwaniw)\nSubject: Re: Visual c++\nIn-Reply-To: David A. Fuess's message of 26 Apr 1993 14: 22:55 GMT\nNntp-Posting-Host: 192.8.210.197\nOrganization: Pelican Software Corporation\nDistribution: usa\nLines: 20\n\n\nTo clarify:  \n\nVC++ *is* considered an upgrade for C7.  There will be no product\ncalled C 8.0 (although the command-line compiler of VC++ lists its\nversion as 8.00).  C7 is not a \"DOS\"-only product -- it is a C/C++\ncompiler capable of producing executables for DOS or Windows, as is\nVC++ (Pro. Ed.).  The (significant) difference is that VC++ comes with\nmany Windows-hosted tools (ide, etc) which assist developers in\ncreating Windows executables much more quickly (basically by\nautomating the thousands of lines of boilerplate code).  Initial\nimpressions have been very favorable.\n\nEveryone who is a registered user of C7 should have received a\nconsiderable amount of info regarding the specifics of C7. If you\nhaven't, call Microsoft and I'm sure they'd be happy to send you some!\n\n-Jefrem Iwaniw\nPelican Software Corporation\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9639, "properties": {"category": "soc.religion.christian", "text": "From: salaris@niblick.ecn.purdue.edu (Rrrrrrrrrrrrrrrabbits)\nSubject: Re: Hell_2:  Black Sabbath\nOrganization: Purdue University Engineering Computer Network\nLines: 28\n\nIn article <Apr.22.00.57.03.1993.2118@geneva.rutgers.edu>, jprzybyl@skidmore.edu (jennifer przybylinski) writes:\n> Hey...\n> \n> I may be wrong, but wasn't Jeff Fenholt part of Black Sabbath?  He's a\n> MAJOR brother in Christ now.  He totally changed his life around, and\n> he and his wife go on tours singing, witnessing, and spreading the\n> gospel for Christ.  I may be wrong about Black Sabbath, but I know he\n> was in a similar band if it wasn't that particular group...\n> \n\nJeff Fenholt claims to have once been a roadie for Black Sabbath.\nHe was never ever a musician in the band.  He was in St. Louis several\nmonths back.  The poster I saw at the Christian bookstore I frequent\nreally turned me off.  It was addressed to all \"Homosexuals, prostitutes,\ndrug addicts, alcoholics, and headbangers...\" or something like that.\n\nWell, if I showed up with my long hair and black leather jacket I\nwould have felt a little pre-judged.  As a Orthodox Christian, and\na \"headbanger\" I was slightly insulted at being lumped together with\ndrug addicts and alcoholics.  Oh yes, I suppose since I drink a good\nGerman beer now and then that makes me an alcoholic.  NOT!\n\n\n--\nSteven C. Salaris                We're...a lot more dangerous than 2 Live Crew\nsalaris@carcs1.wustl.edu         and their stupid use of foul language because\n\t\t\t\t we have ideas.  We have a philosophy.\n\t\t\t\t\t      Geoff Tate -- Queensryche\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.454+0000", "event": "documents", "entityId": 9640, "properties": {"category": "talk.religion.misc", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Case Western Reserve University\nLines: 20\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1993Apr17.162105.3303@scic.intel.com> sbradley@scic.intel.com (Seth J. Bradley) writes:\n\n>Ifone simply says \"God did it\", then that is not falsifiable.\n\n\tUnless God admits that he didn't do it....\n\n\t=)\n\n\n---  \n\n  \" I'd Cheat on Hillary Too.\"\n\n   John Laws\n   Local GOP Reprehensitive\n   Extolling \"Traditional Family Values.\"\n\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9641, "properties": {"category": "rec.sport.baseball", "text": "From: vigil@esca.com (Sandra Vigil)\nSubject: Re: Hispanic All-Star team\nOrganization: ESCA Corporation, Bellevue WA\nLines: 49\n\nicop@csa.bu.edu (Antonio Pera) writes:\n\n\n> Hispanic magazine(April 1993) had a couple of interesting articles about\n>Hispanic players including its Hispanic All-Star team. \n>Some of the major points are:\n\n\tNPR's Morning Edition aired a report this morning (4/19) on\n\tHispanic/Latin American players in MLB and how they have many of\n\tthe same problems faced by black/negro/African American players\n\twhen they first entered the league.  However, although baseball\n\thas adjusted to the presence of black players, many Hispanic\n\tplayers still labor under the stereotype of being \"fireballs,\n\thot blooded, flashy\".  The report also emphasised that despite\n\tthe rantings (my word) of Jessie Jackson about baseballs\n\tdiscrimination against black players in its upper echelons,\n\tbaseball has actually done much better by black players than\n\tHispanic players.\n\n\tAnother interesting point was the language barrier problem.  The\n\treporter elaborated on an interview with Ruben Sierra which he\n\tgave in Spanish to a Spanish speaking newspaper reporter with\n\tthe fact that there are maybe 2 major baseball writers that\n\tspeak Spanish, despite the fact that Spanish is one of (if not\n\tthe) easiest languages to learn, so easy that the author Cormac\n\tMcCarthy learned Spanish at age 50 in order to research his\n\tbook, _All The Pretty Horses_.  Yet, few MLB organizations\n\temploy Spanish speaking personel, one of the exceptions being\n\tthe Oakland A's.\n\n\tAnother point:\n\n\tNearly 90% of Latin American players have some African blood.\n\tYet, most report that they'd never really felt black until\n\tplaying ball in the US.\n\n  \n\tIronically enough, it is the early presence of Latin American\n\tbaseball players in the Major Leagues that support the idea that\n\tbaseball was integrated before the arrival of Jackie Robinson,\n\tas many \"light black\" or \"brown\", Latin Americans were\n\tincorporated into baseball. \n\n\t/S\n-- \n\"I did not know the cure for the disease      ------------------- \n of images, but I believed in the healing     |  Sandra Vigil   | \n power of words and stories.\"                 |  vigil@esca.com |    \n             - Until the End of the World     ------------------- \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9642, "properties": {"category": "talk.religion.misc", "text": "From: russpj@microsoft.com (Russ Paul-Jones)\nSubject: Re: After 2000 years, can we say that Christian Morality is \nOrganization: Microsoft Corporation\nLines: 17\n\nIn article <1993Apr16.193723.19050@asl.dl.nec.com> duffy@aslss02.asl.dl.nec.com (Joseph Duffy) writes:\n>\n>How does one falsify any origin theory? For example, are a forever existing\n>universe or abiogenesis strictly falsifiable?\n\nThe same way that any theory is proven false.  You examine the predicitions\nthat the theory makes, and try to observe them.  If you don't, or if you\nobserve things that the theory predicts wouldn't happen, then you have some \nevidence against the theory.  If the theory can't be modified to \nincorporate the new observations, then you say that it is false.\n\nFor example, people used to believe that the earth had been created\n10,000 years ago.  But, as evidence showed that predictions from this \ntheory were not true, it was abandoned.\n\n-Russ Paul-Jones\nrusspj@microsoft.com\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9643, "properties": {"category": "talk.politics.guns", "text": "From: amirza@bronze.ucs.indiana.edu (Anmar Caves)\nSubject: Re: My Gun is like my American Express Card\nNntp-Posting-Host: bronze.ucs.indiana.edu\nOrganization: Indiana University\nDistribution: usa\nLines: 17\n\nIn article <1993Apr15.184452.27322@CSD-NewsHost.Stanford.EDU> andy@SAIL.Stanford.EDU (Andy Freeman) writes:\n>In article <93104.231049U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>>All your points are very well taken and things that I haven't considered as\n>>I am not really familiar enough with handguns.\n>\n>That's not all that Kratz doesn't know.\n>\nk\n\nGuys, guys, (and gals), let's lay off Jason here.  Though he stepped\nin it, he has been very good so far about admitting he doesn't know\nwhat he's talking about, and even more stunning is that he seems\n-- \nAnmar Mirza   # Chief of Tranquility  #My Opinions! NotIU's!#CIANSAKGBFBI\nEMT-D         # Base, Lawrence Co. IN # Legalize Explosives!#ASSASINATEDEA\nN9ISY (tech)  # Somewhere out on the  # Politicians prefer  #NAZIPLUTONIUM\nNetworks Tech.# Mirza Ranch.C'mon over# unarmed peasants.   #PRESIDENTFEMA\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9644, "properties": {"category": "rec.sport.baseball", "text": "From: cs902043@ariel.yorku.ca (SHAWN LUDDINGTON)\nSubject: Re: Montreal Question.......\nOrganization: York University, Toronto, Canada\nLines: 14\n\nIn article <1993Apr19.015442.15723@oz.plymouth.edu> k_mullin@oz.plymouth.edu (Mully) writes:\n>   What position does Mike Lansing play?  I cannot seem to find it \n> anywhere.  Thanks!!!!1\n>\n>\tK-->\n>-- \n>---\n>Keith J. Mullins                (o o)          \n>P.S.C            -----------oOO--(_)--OOo----------- INTERNET:\n>Plymouth, NH     | \"It takes a big man to cry, but | k_mullin@oz.plymouth.edu\n\nHe's played 2nd and 3rd.  I also heard he can play short too.\nShawn\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9645, "properties": {"category": "rec.autos", "text": "From: gkirkaldie@sanity.tdkcs.waterloo.on.ca (George Kirkaldie)\nOrganization: Sanitarium BBS - Cambridge, Ontario, Canada\nSubject: Re: birds - are they physics majors?\nReply-To: gkirkaldie@sanity.tdkcs.waterloo.on.ca\nX-Software: HERMES GUS 1.04 Rev. Sep  5 1992\nLines: 28\n\nIn <C5pn2p.L44@darkside.osrhe.uoknor.edu>, Operator writes:\n}Crazy question: \"Anyone ever wonder how birds can drop a load on a car\n}going over 65 MPH\" ?  \n}\n}I took a non-stop trip, got shitted on FOUR times (every time hitting the \n}windshield, not even the open sunroof!  Guess we have conscientious birds ;)\n}Was going 75 MPH.\n}\n}\n\nI used to have a '67 Galaxie convertible, was sitting at a light waiting\nfor it to turn green. It turned green, but I hesitated a little (sleeping I\nguess) and a bird bombed me, it landed directly in front of me at eye\nlevel, I guess the bird miscalculated and thought I was going to take off\nright away.\n\nAnd I'm still trying to figure out the one I got under my rear bumper as\nwell ?!?!?! Was the bird flying up and doing fancy acrobatics at my car and\ndecided to drop one while executing a perfect loop??\n\n-- \n--------------------------------------------------------------------------\n  TT030   |'87 Mustang GT         |George Kirkaldie\n   |||    |Pioneer, Audio Control |gkirkaldie@sanity.tdkcs.waterloo.on.ca\n   |||    |Phoenix Gold, Kicker   |\n  / | \\   |Flowmaster, Motorsport |Cambridge, Ontario, Canada\nA T A R I |                       |\n--------------------------------------------------------------------------\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9646, "properties": {"category": "rec.sport.hockey", "text": "From: assist@orion.oac.uci.edu (ASSIST Coordination Site)\nSubject: Re: This year's biggest and worst (opinion)...\nKeywords: NHL, awards\nArticle-I.D.: news.2BC0C6DF.18865\nDistribution: world\nOrganization: University of California, Irvine\nLines: 20\nNntp-Posting-Host: orion.oac.uci.edu\n\nIn article <C4zCII.Ftn@watserv1.uwaterloo.ca> smale@healthy.uwaterloo.ca (Bryan Smale) writes:\n>                         MVP           Biggest       Biggest\n>                                       Suprise       Disappointment\n\n>Los Angeles Kings       Robitaille     Donnelly      Hrudey\n\n\nI would have chosen Alex Zhitnik for biggest suprise.  They\ndid expect that he would become a great defenseman, but I don't\nthink anyone knew that he was going to be this impressive in his \nrookie year.  His speed, skating ability, and puck control is\nexceptional -- he is the one to watch on the Kings.\n\n\nKris\nkris@fs2.assist.uci.edu\n\nGO KINGS!\n\n--\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9647, "properties": {"category": "rec.motorcycles", "text": "From: ai598@cleveland.Freenet.Edu (Mike Sturdevant)\nSubject: Re: Bikes vs. Horses (was Re: insect impacts f\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 34\nReply-To: ai598@cleveland.Freenet.Edu (Mike Sturdevant)\nNNTP-Posting-Host: slc4.ins.cwru.edu\n\n\nIn a previous article, npet@bnr.ca (Nick Pettefar) says:\n\n>Jonathan E. Quist, on the Thu, 15 Apr 1993 14:26:42 GMT wibbled:\n>: In article <txd.734810267@Able.MKT.3Com.Com> txd@ESD.3Com.COM (Tom Dietrich) writes:\n>: >>In a previous article, egreen@east.sun.com (Ed Green - Pixel Cruncher) says:\n>\n>: [lots of things, none of which are quoted here]\n>\n>The nice thing about horses though, is that if they break down in the middle of\n>nowhere, you can eat them.\n\n\tAnd they're rather tasty.\n\n\n>  Fuel's a bit cheaper, too.\n>\n\n\tPer gallon (bushel) perhaps. Unfortunately they eat the same amount\nevery day no matter how much you ride them. And if you don't fuel them they\ndie. On an annual basis, I spend much less on bike stuff than Amy the Wonder\nWife does on horse stuff. She has two horses, I've got umm, lesseee, 11 bikes.\nI ride constantly, she rides four or five times a week. Even if you count \ninsurance and the cost of the garage I built, I'm getting off cheaper than \nshe is. And having more fun (IMHO).\n\n\n\n>\n>\n-- \nGo fast. Take chances.\n\n\tMike S.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9648, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: Weirdness of Early Christians\nOrganization: Kulikauskas home\nLines: 21\n\nhalsall@murray.fordham.edu (Paul Halsall) writes:\n\n> \tBut recently I read Peter Brown's _Body and Society_. It is very\n> well researched, and well written. But is raises some very upsetting\n> questions. The early Christians were weird - even more so than today's\n> carzy fundies. They had odd views on sex, odder views on the body, \n> totally ludicrous views about demons, and distinctly uncharitable\n> views about other human beings. \n\nIf possible (last I heard, it was out of print but they were considering \nreprinting) read Barbara Hambly's _Search the Seven Hills_.  It is \nhistorical fiction, set in Rome at the time of the early Church.  She \ncaptures the weirdness of the early Christians and yet gives glimpses of \nthe holiness too.  Some of their odd views make a lot more sense in the \ncontext of the society they lived in.  I found it a remarkably positive \nview of Christianity considering that the author is not a Christian \nherself.  Another plus is that each chapter begins with an \noriginal-source quote so that it makes a good starting point for serious \nresearch.\n\nJayne Kulikauskas/ jayne@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9649, "properties": {"category": "talk.politics.guns", "text": "From: vojak@icebucket.stortek.com (Bill Vojak)\nSubject: UPI News Release\nOriginator: vojak@icebucket.stortek.com\nNntp-Posting-Host: icebucket.stortek.com\nOrganization: Storage Technology Corp.\nLines: 82\n\n\n  UPI Washington DC, Update Desk\t\t\t4/15/93\n\n  For the past several months the Clinton administration has been\n  stymied by mixed signals coming from the economy.  While most\n  leading indicators has shown an apparent improvement in the \n  economy, there has been no corresponding improvement in the area\n  of jobs creation.\n\n  The unemployment figures seem stalled at the 7% mark.  last month,\n  in an effort to understand this problem, President Clinton appointed\n  a blue ribbon panel to try to resolve the apparent conflicting\n  economic signals.  This panel was chaired by Vice President Gore.\n\n  Today the panel released their results, providing a shocking conclusion.\n  \"It's the guns\" Vice President Gore said.  Apparently NRA members, and other\n  \"gun-nuts\" are purchasing firearms at in record numbers, pulling the\n  economy out of the recession.  \"Their buying them five times faster than\n  ever before, and stockpiling left and right\", the Vice President said.  \n\n  However, since many domestic firearm and ammunition manufacturers have\n  been experiencing hard times during the past few years, including several\n  declarations of bankruptcy by many leading American gun makers, they have\n  not rushed to increase hiring to meet the new demand.\n\n  \"We want to see if this run will continue before hiring more people\", said\n  the President of Colt industries.  \"As long as Clinton is in office, we\n  suspect it will\", he added.\n\n  In response to this new information, President Clinton announced a new\n  Gun Control measure to be introduced into Congress this session.  It's \n  called the \"Ban-One-A-Month\" Gun Control Bill.  Under the terms of this law,\n  every make and model of all firearms will be written on individual index \n  cards.  The cards will all be put in a big hat and the President will draw\n  one card every month.  Sixty days later that gun will be banned from any\n  further manufacture/importation or sale in this country, except to the\n  politically connected and to members of the National Police Force.\n\n  The President said, \"This law will benefit America two ways.  When the\n  Gun-Of-The-Month is announced every thirty days, the gun-nuts will run\n  out and buy thousands of them, boosting the economy even more.  In addition,\n  over the long run, we will get all of these icky-evil guns off of the\n  street.\"  He also announce the appointment of Sarah Brady to oversee\n  this program, citing her \"Honesty, and unbiased view on the subject\n  of gun control\".\n\n  Senators Metzenbaum, DeConcini, Feinstein, and Boxer have proposed an\n  amendment to the Bill which would add additional index cards containing\n  caliber designations for all know ammunitions.  \"Their stockpiling,\n  stockpiling, stockpiling\" screamed Metzenbaum during a press conference\n  at the national Headquarters of Handgun Control Inc.\n\n  Senators Simon, Metzenbaum, and Moyenhan also introduced an amendment\n  that would make all guns illegal to possess once the last card has been\n  drawn from the hat.  Senator Simon was quoted as saying, \"First we'll\n  fuck em, then we'll kick em out of bed in the morning\", during a press\n  conference he held in the second floor Mens Restroom of the Senate\n  building.  He of course was referring to the fact that he would allow\n  the people to purchase the guns to help the economy, but would require\n  the BATF to seize all of the guns in America sometime in the year 2008,\n  after all of the cards have been drawn.\n\n  The head of the BATF responded by saying, \"We will have to see if this\n  thing in Waco is over by then.  We may be too busy to seize all those\n  guns\".\n\n  US House Representatives Pat Schroeder and David Skaggs of Colorado\n  declared this proposed law as being \"reasonable gun control which won't\n  affect anybodys Constitutional right to own sporting guns\".\n\n  - end article -\n\n  For the humor impaired :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-)  :-) \n\n                                Bill Vojak\n                                vojak@icebucket.stortek.com\n\t\t\t\tNRA, ILA,\n                                Colorado Firearms Coalition\n------------------------------------------------------------\nThe CBS Nightly Propaganda With Dan Rather. (RATHER NOT!)\nThe CBS Nightly Propaganda With Dan Rather. (RATHER BIASED!)\n------------------------------------------------------------\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9650, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lee@tosspot.sv.com (Lee Reynolds)\nSubject: Help with Magitronic 8 bit memory card needed!\nOrganization: Ludus Associates, Incorporated.\nLines: 16\n\nHi!\n\n   I'm busy resurrecting some old machines (hey, they're cheap and they\nwork :)) and would be grateful for any help with the following card -\n\nMagitronic - full length 8 bit memory only card.\nHas room for 8 rows of 256K dips for a total of 2MB RAM.\nHas an 8 position dip switch on it, presumably for addressing.\n\nDoes any kind soul out there have any docs or drivers for this beast?\nI'd be disgustingly grateful.\n\n                            Thanks,\n                                    Lee.\n\n                           (lee@tosspot.sv.com)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9651, "properties": {"category": "comp.graphics", "text": "From: bio1@navi.up.ac.za (Fourie Joubert)\nSubject: Image Analysis for PC\nOrganization: University of Pretoria\nLines: 18\nNNTP-Posting-Host: zeno.up.ac.za\n\nHi\n\nI am looking for Image Analysis software running in DOS or Windows. I'd like \nto be able to analyze TIFF or similar files to generate histograms of \npatterns, etc. \n\nAny help would be appreciated!\n\n__________________________________________________________________________\n\n     _/_/_/_/  _/_/_/_/_/ Fourie Joubert           \n    _/            _/    Department of Biochemistry\n   _/            _/    University of Pretoria\n  _/_/_/_/      _/    bio1@navi.up.ac.za\n _/            _/\n_/      _/_/_/_/\n__________________________________________________________________________\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9652, "properties": {"category": "comp.sys.mac.hardware", "text": "From: casgrain@ERE.UMontreal.CA (Casgrain Philippe)\nSubject: Re: what do y'all think of the IIvx?\nOrganization: Universite de Montreal\nLines: 23\n\njfinete@cats.ucsc.edu (Joseph Manuel Finete) writes:\n>The IIvx...LCIII performance at a Centris 610 price. \n>And unless\n>you're running FPU-intensive software, the 610 will blow the doors off the\n>LCIII and the IIvx.\n\nFrom the benchmarks I've seen (was that in MacUser or MacWeek?) the FPU-less\nCentris 610 is _faster_ at floating-point operations (the kind of calculations\nthat get routed to an FPU) than a Mac IIfx!\n\nAnd a Mac IIfx (68030 @ 40MHz + FPU) is _the_ fastest 030-based Mac.\n\nTake note, of course, that benchmarks never tell the whole story... Get your\nfavorite program(s) and run them on both machines at the store.  They should\nlet you do that before you plunk down a hefty amount...\n\nVirtually,\nPhilippe\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nPhilippe Casgrain              Etudiant-Chercheur      Casgrain@ERE.UMontreal.CA\nDepartement des Sciences Biologiques                      Universite de Montreal\n#define disclaimer(caught) (caught ? \"I wasn't even there!\" : \"I didn't do it!\")\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9653, "properties": {"category": "rec.autos", "text": "From: cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc)\nSubject: Re: wife wants convertible\nOrganization: University of Illinois at Urbana\nLines: 25\n\nnuet_ke@pts.mot.com (KEITH NUETZMAN X3153 P7625) writes:\n\n\n>HELP!!!\n>my wife has informed me that she wants a convertible for her next car.\n>We live in South Fla., so we are definitely in the right are for one.\n>My wife has mentioned the Miata, but I think it is too small.\n>I would like to wait for the new Mustangs ( Dec. '93 I think).\n>Anyone have any opinions on any/all convertibles in a reasonable price range.\n\n>                                           Thanx\n\n\tThe Olds Supreme Convertible got high marks in C/D's recent test, if\nyou can get by the stupid body moldings and stuff.  The Saab 900 ragtop may\nbe out of your range, but its a good choice.  Is there a new F-car convertible?\nThe Nissan 240SX convertible is a nice car also... Those immediately come to \nmind...\n\n\n\n-- \nChintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n******************************Neil Peart, (c)1981*****************************\n*\"Quick to judge, Quick to Anger, Slow to understand, Ignorance and Prejudice*\n*And********Fear********Walk********************Hand*********in*********Hand\"*\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9654, "properties": {"category": "talk.politics.guns", "text": "From: clay@rsd.dl.nec.com (Clay Finley)\nSubject: Re: Carrying Arms\nNntp-Posting-Host: rsd21.rsd.dl.nec.com\nOrganization: NEC America, Radio Software Dept\nDistribution: usa\nLines: 22\n\n|> In article <1993Apr5.220457.6800@spdc.ti.com> dwhite@epcot.spdc.ti.com (Dan White) writes:\n|> \n|> >However, haven't we already lost our right to bear arms?\n|> \n|> >\tIt seems that in most states, like Texas, a citizen may own a\n|> >gun and carry while at his home or business.  But a citizen is severely\n|> >restricted from bearing outside these areas.  Here in Texas you cannot\n|> >carry in your car except when \"traveling\" which is usually defined as\n|> >\"traveling across a county line.\"  How did this come about?  Are there\n|> >any court rulings on the legality of restricting the carrying of a\n|> >weapon outside the home?  \n|> \n\nIn Texas, it is legal to carry handguns while \"traveling\", and also to and from\nsporting activities.           ^^^^^^^^\n\nChapter 46 of the Texas State Penal Code does NOT restrict long guns.\nTherefore, it is legal to carry and transport long guns any place in Texas.\n\nRegards,\nClay\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9655, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: ugliest swing\n <1993Apr12.235334.25031@ptdcs2.intel.com> <34244@oasys.dt.navy.mil>\nLines: 16\n\nIn article <34244@oasys.dt.navy.mil>, kiviat@oasys.dt.navy.mil (Brian Kiviat)\nsays:\n>\n>What I think is hotdogish about his AB's is the way he leans out over\n>the plate to watch outside pitches etc. This not done to get a better\n>look at the pitch, but to make it seem,\"this ball is so far out I need\n>to lean just to get near it so you better call it a ball\". This is my\n>\"unbiased\" opinion of what I see. Your mileage will vary.......\n>Rickey is agreat player to watch if you forget who he is at the time.\n\na lot of batters lean in when pitches come.  rickey's crouch tends\nto exaggerate that, i think.\n\n\"a great player to watch if you forget who he is\" - \"unbiased\"... hmmm...\n\nbob vesterman.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9656, "properties": {"category": "soc.religion.christian", "text": "From: phs431d@vaxc.cc.monash.edu.au\nSubject: Re: The arrogance of Christians\nOrganization: Monash University - Melbourne. Australia.\nLines: 96\n\nIn article <Apr.19.05.11.41.1993.29112@athos.rutgers.edu>, aa888@freenet.carleton.ca (Mark Baker) writes:\n\n> I am asking you to believe in things not visible. I don't know if this is >\nbelieveing blindly or not. I'm not sure how blindness comes into it. I do > not\ndeny reason, indeed I insist upon it, but reason only draws conclusions > from\nevidence. If you decide in advance that your reason will act only on > the\nevidence of the five physical senses, then you cut reason off from any >\npossibility of reaching a conclusion outside the physical sphere (beyond the >\nrather provocative, if inconclusive, conclusion that the physical sphere > is\nnot self explanatory). \n\nSo your are saying to rely on our feelings and experiences (since\nthis is the only other source of information left to us).\nHow can you then convince somebody that your \"feelings and experiences\"\nare the correct ones then if you can't show somebody visible and\nmeasurable effects?  If my experiences say that \"there exists no god\"\nand yours says there does, where does that leave us?  Since we are only\ngoing on experiences, then both of us are correct within our own personal\nrealities.\n\nFurthermore, the trouble with \"feelings and experiences\" is that they\ncan lead you astray, as the tragic outcome of Waco illustrates.  I\nam sure that many of Koresh's followers really believed in him but\nI think that you and I will agree that they were being misled.\n\nFinally, how on earth do you come to the conclusion that the physical\nsphere is not self-explanatory when you only rely on the five senses?\n\n> Christians claim that they have received a different kind of evidence, \n> which they call faith, and which is a gift of God. That is, this evidence\n> is the evidence of a thing which chooses to reveal or hide itself. The \n> evidence of the senses cannot tell you is such a ting exists. Reasoning\n> on the evidence of the senses won't help either. But Christians do reason\n> of the evidence of faith, and do claim that this evidence is wholly\n> consistent with the evidence of the other senses, and indeed, that the\n> evidence of these other senses is part of God's revelation of himself\n> to us.\n\nYou must be using a definition of \"evidence\" that I am not familiar with.\nTo me, evidence is something you can show others -unambiguously- that\nwhat you are saying is true.\n\nHowever, I agree with you that belief in a diety is a matter of faith.\nIt is not something you can share around - others must experience it\nindependantly.  Unfortunately, as I have explained above, this puts\nbelief down to a matter of experience.  My impression is that Christians\ndo not have the monopoly on reason, evidence and faith as far as any of\nthese things can go.\n\n> In a previous article, phs431d@vaxc.cc.monash.edu.au () says:\n> \n>>You are right that science and reason cannot PROVE anything.  However, if\n>>we do not use them we can only then believe on FAITH alone.  And since\n>>we can only use faith, why is one picture of \"God\" (e.g. Hinduism) any less\n>>valid than another (e.g. Christianity)?\n>>\n> Faith, as I have said, is not opposed to reason, it is simply a new source \n> of evidence on which reason may operate. It is clear that human beings\n> have many systems for explaining the evidence of the physical senses, and\n> similarly there are many systems for explaining the evidence provided by\n> faith. Religious believers in general, and Christians in particular, use\n> reason to help sift through the evidence to come to a clearer understanding\n> of the evidence provided by faith. Science claims, with good reason, to be\n> the most valid system for explaining the physical universe, and Christianity\n> claims, also with good reason, to be the most valid system, possessed of the\n> best evidence, for explaining Gods revelations of himself to man.\n\nAt the risk of repeating my argument : As I have explained previously, \nthe trouble is that Moslems, Buddhists, Jews, etc will ALL say that THEY\nclaim, with good reason, to be a valid system, possessed of the best\nevidence, for explaining Gods revelations to man (for Buddhists it\nshould read \"for explaining the non-existence of God\").  So not only\nmust you \"prove\" your own case, you have to \"disprove\" theirs.\n\n(alt.messianic is a good place to see people strong in the belief\nof their own faiths ... and with their own good reasons)\n\n> If you doubt that Christians use reason, read this newsgroup for a while\n> and you will see rational debate aplenty.\n\nI know that ALL people can use reason ... I never claimed that they don't.\nI just wish to make sure that their arguments are well-founded.  It goes\nwithout saying that if I make a blunder that I expect people to correct\nme.  Once we have all gone through this process of removing the \nnon-essential and contradictory bits, we should (hopefully) have made\nsome progress towards the truth.\n\n> -- \n> ==============================================================================\n> Mark Baker                  | \"The task ... is not to cut down jungles, but \n> aa888@Freenet.carleton.ca   | to irrigate deserts.\" -- C. S. Lewis\n> ==============================================================================\n\n-- \nDon Lowe, Department of Physics, Monash University, \nMelbourne, Victoria, Australia, 3168.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9657, "properties": {"category": "rec.sport.hockey", "text": "From: rhirji@undergrad.math.uwaterloo.ca (Rahim Hirji)\nSubject: Re: Flames Question\nKeywords: Roberts Flames\nOrganization: University of Waterloo\nLines: 22\n\nIn article <C5HtrB.ICE@ccu.umanitoba.ca> clhawth@ccu.umanitoba.ca (Timothy Chesley) writes:\n>I heard a little while back that Gary Roberts would be returning to play\n>in Calgary's last regular season game.  Can anybody confirm this??\n>He'll be a big help to the Flames in the playoffs and may change my\n>playoff pool strategy.\n\n\nRoberts played in last night game against the Sharks and got a goal (38th)\nand an assist.\n\nThis definitely bolsters Calgary's chances in the playoffs.\n\n\n\t\t\t\t\t\t\tRahim Hirji\n\n\n \n-- \n\t\t\t\t     |  Rahim Hirji\n Life is what happens while you are  |  Actuarial Science\n making other plans\t\t     |  rhirji@descartes.uwaterloo.ca\n\t\t\t\t     |  University of Waterloo\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9658, "properties": {"category": "comp.sys.mac.hardware", "text": "From: donovan@bnr.ca (Marc Donovan)\nSubject: Re: I want use DeskJet on System7\nNntp-Posting-Host: bcarh1ee\nOrganization: Bell-Northern Research Ltd., Ottawa\nDistribution: comp\nLines: 30\n\nIn article <MORI.93Apr16133900@ceres.mfd.cs.fujitsu.co.jp> mori@volga.mfd.cs.fujitsu.co.jp (Tsuyoshi Mori) writes:\n>I used HP DeskJet with Orange Micros Grappler LS on System6.0.5.\n>\n>But now I update system 6.0.5 to System7 with Kanji-Talk 7.1,\n>then I can not print by my DeskJet.\n>Is the Grappler LS old ?\n>Can I use DeskJet on System7 ?\n>Please tell me how to use DeskJet on System7.\n>Thank you\n>--\n>FROM JAPAN mori@volga.mfd.cs.fujitsu.co.jp\n\nI currently use an HP DeskJet with Grappler LS ver 1.0, \nand it works on System7.  Course, I only use the SWA Dutch\nand SWA Swiss fonts that came with it, due to the 4x size\nrequirement to print to the HP. (ie: must have 40pnt definition\nto print a 10pnt font)  When I upgraded,  I talked to Orange\nMicro, and they state that ver 1.2 of Grappler LS definitely\nworks with System7.  However, the upgrade was US$40, so I\npassed.\n\nHope this helps?\n\n<marc>\n\n-- \n-----------------------------------------------------------------------------\nMarc Donovan      donovan@bnr.ca  [Voice: (613) 765-2868 Fax: (613) 763-9250]\n---- Disclaimer: I am the only one responsible for my opinions.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9659, "properties": {"category": "misc.forsale", "text": "From: zeno@ccwf.cc.utexas.edu (S. Hsieh)\nSubject: Re: Video/Audio/Computer equipment for sale..\nOrganization: The University of Texas at Austin, Austin TX\nLines: 14\nDistribution: na\nNNTP-Posting-Host: mickey.cc.utexas.edu\n\nOn 21 Apr 1993 03:25:29 I wrote:\n> Quantum 105MB 3.5\" internal ProDrive hard disk\n>   This unit has recently turned unreliable and erratic in usage.\n>   Could be a simple easily fixed problem or a major problem,\n>   but at any rate I don't have the time to find out where the\n>   problem lies.  If you want to take a risk on it, you can have\n>   it for $45 + shipping.\n\nForgot to mention that the above mentioned Quantum is a SCSI\ndrive.\n\n-S. Hsieh\nzeno@ccwf.cc.utexas.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9660, "properties": {"category": "sci.electronics", "text": "From: ulan@ee.ualberta.ca (Dale Ulan)\nSubject: Re: what to do with old 256k SIMMs?\nNntp-Posting-Host: eigen.ee.ualberta.ca\nOrganization: University Of Alberta, Edmonton Canada\nLines: 28\n\nrubin@cis.ohio-state.edu (Daniel J Rubin) writes:\n\n>How hard would it be to somehow interface them to some of the popular \n>Motorola microcontrollers.  I am a novice at microcontrollers, but I am\n>starting to get into them for some of my projects.  I have several 256k\n>SIMMs laying around from upgraded Macs and if I could use them as \"free\"\n>memory in one or two of my projects that would be great.  One project that\n>comes to mind is a Caller ID device that would require quite a bit of RAM\n>to store several hundered CID records etc...\n\nAssuming 68HC11...\nIn expanded muxed mode, you *could* do it. Much easier if you get a DRAM\ncontroller IC. The MMI 673102 could be used to implement this, or you\ncould use a counter and a huge multiplexer to provide row/column/refresh\naddress multiplexing. The thing with DRAMs is that they require wierd\ntiming, address multiplexing, and refresh.\n\nActually, if you wanted to use a 68008 IC, you could look at AN897, which\nhas a neat controller built in. There is also the 683xx, I think one\nof those has the DRAM controller built in. This one is for the 6664\nDRAM, however, the 41256 has only one more address line, adding only\nanother component or so. The 256k SIMMs are basically 8 or 9 41256\nDRAM chips (or their equivalent in fewer packages).\n\nIt *can* be done, just takes a bit of logic design. I'm actually\nabout to do it using a 65C02P3 chip... I've got 8 256k simms... that's\n2 megabytes on my Apple //e... (used to be in my '386).\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9661, "properties": {"category": "talk.politics.mideast", "text": "From: cosmo@pro-angmar.alfalfa.com (Frank Benson)\nSubject: Serdar\nOrganization: UTexas Mail-to-News Gateway\nLines: 5\nNNTP-Posting-Host: cs.utexas.edu\n\nYou are quite the loser\n---\nProLine:  cosmo@pro-angmar\nInternet: cosmo@pro-angmar.alfalfa.com\nUUCP:     uunet!bu.edu!alphalpha!pro-angmar!cosmo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9662, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: toelle@uenics.evansville.edu (Chad Toelle)\nSubject: Fax software for windows\nOrganization: University of Evansville\nDistribution: usa\nLines: 10\n\nI would like to know about the current fax software available for\nWindows.  Does it take a 9600 baud fax/modem or 14.4K ?  Please\nrespond with info.\n\nThank you very much\n-- \nChad Toelle                                 toelle@evansville.edu\n4216 S. St. Philip Rd                               - or -\nMt. Vernon, IN 47620                       uunet!evansville.edu!toelle\n   (812) 985-3222 \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9663, "properties": {"category": "sci.med", "text": "From: km@cs.pitt.edu (Ken Mitchum)\nSubject: Re: Patient-Physician Diplomacy\nArticle-I.D.: pitt.19422\nReply-To: km@cs.pitt.edu (Ken Mitchum)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 22\n\nIn article <C4Hyou.1Iz@mentor.cc.purdue.edu> hrubin@pop.stat.purdue.edu (Herman Rubin) writes:\n>In article <188@ky3b.UUCP> km@ky3b.pgh.pa.us (Ken Mitchum) writes:\n>\n>>Ditto. Disease is a great leveling experience, however. Some people\n>>are very much afronted to find out that all the money in the world\n>>does not buy one health. Everyone looks the same when they die.\n>\n>If money does not buy one health, why are we talking about paying\n>for medical expenses for those not currently \"adequately covered\"?\n\nHerman, I would think you of all people would/could distinguish\nbetween \"health\" and \"treatment of disease.\" All the prevention\nmedicine people preach this all the time. You cannot buy health.\nYou can buy treatment of disease, assuming you are lucky enough\nto have a disease which can be treated. A rich person with a\nterminal disease is a bit out of luck. There is no such thing\nas \"adequately covered\" and there never will be. \n\nAnd for what it's worth, I'll be the first to admit that all my\npatients die.\n\n-km\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.455+0000", "event": "documents", "entityId": 9664, "properties": {"category": "comp.sys.mac.hardware", "text": "From: root@ncube.com (Operator)\nSubject: Photo shop scanner?\nNntp-Posting-Host: admin\nReply-To: root@ncube.com\nOrganization: nCUBE Corp., Foster City, CA\nLines: 23\n\nI have a Macc IIci and a Color scanner.\nI scanned a picture at 600 dpi. When I try to print\nit on my HP500 color printer, after 10 minutes of\nmaking noise, the mac hangs. I would need to reboot it.\nWhat does this mean? Do I need to buy more memory? I have\n5.0 MB now. I also have about 50 MB of disk free, and the\nscanned picture is about 12 MB.\n\n---\n\n\n\n                     ^~\n                     @ *  *\n  Captain Zod...    _|/_ /\n  zod@ncube.com    |-|-|/\n                  0 /| 0\n                   / |\n           \\=======&==\\===\n           \\===========&===\n\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9665, "properties": {"category": "rec.sport.hockey", "text": "From: gp2011@andy.bgsu.edu (George Pavlic)\nSubject: Re: Matt Militzok please read!\nOrganization: Bowling Green State University B.G., Oh.\nLines: 13\n\nIn article <gp2011-200493132808@m248-68.bgsu.edu>, gp2011@andy.bgsu.edu\n(George Pavlic) wrote:\n> \n> \n> Sorry to everyone for wasting space.  Matt, the other day you posted that\n> you were doing a mailing list of playoff stats.  I lost your address. \n> Please put me on that list.  Thanks.\n> \n> George \n\nSorry again.  I guess you need my address.\n\ngp2011@mailserver.bgsu.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9666, "properties": {"category": "rec.autos", "text": "From: grahamt@phantom.gatech.edu (Graham E. Thomas)\nSubject: Re: BLAST to the past!\nOrganization: Georgia Institute of Technology\nLines: 17\nNNTP-Posting-Host: oit.gatech.edu\n\namh2@ns1.cc.lehigh.edu (ALOIS M. HIMSL) writes:\n>be worthwhile?  Or how about something like the old MGB with new technology?\n>Just think about it - the old style with upgraded safety features and perhaps a\n>natural gas operated engine for less than 10K. I think it would go over well.\n>What is your opinion??????\n>Al H\n\nWell, the MGB is currently in production for the English market, built\nby Rover. It now has a V8, improved suspention, and a slightly\nupdated body. Too bad it's only available in GB and would set one\nof us back about $42,000+.\n\n \n-- \nGraham E. Thomas                  *  blah blah blah blah blah  \nGeorgia Institute of Technology   *  blah blah blah blah blah     \nInternet: grahamt@oit.gatech.edu  *  blah blah blah blah blah  \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9667, "properties": {"category": "talk.politics.misc", "text": "From: gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: University of Virginia\nLines: 10\n\nIn article <philC5n6D5.MK3@netcom.com> phil@netcom.com (Phil Ronzone) writes:\n#Tells you something about the fascist politics being practiced ....\n\nAh, ending discrimination is now fascism. \n\n--\n-Greg Hennessy, University of Virginia\n USPS Mail:     Astronomy Department, Charlottesville, VA 22903-2475 USA\n Internet:      gsh7w@virginia.edu  \n UUCP:\t\t...!uunet!virginia!gsh7w\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9668, "properties": {"category": "soc.religion.christian", "text": "From: alvin@spot.Colorado.EDU (Kenneth Alvin)\nSubject: Re: Certainty and Arrogance\nOrganization: University of Colorado, Boulder\nLines: 48\n\nResponding to the moderator:\n\n>In article <Apr.14.03.09.07.1993.5494@athos.rutgers.edu> alvin@spot.Colorado.EDU (Kenneth Alvin) writes:\n>>\n>>Choosing what to believe and rely on are important areas of personal \n>>sovereignty.  What bothers me is when others suggest that, in these \n>>matters of faith, their specific beliefs are not only true to them \n>>but are absolute and should be binding on others.  It follows from this\n>>that God must give everyone the same revelation of truth, and thus \n>>anyone who comes to a different conclusion is intentionally choosing\n>>the wrong path.  This is the arrogance I see; a lack of respect for the\n>>honest conclusions of others on matters which are between them and God.\n>\n>[It is certainly reasonable to ask for some humility about our own\n>ability to know the truth.  There are also different paths in some\n>areas of practice.  But I'd like to see more clarification about what\n>you mean when you reject the idea of saying \"their specific beliefs\n>are not only true to them but are absolute and should be binding on\n>others.\"  If something is true, it is true for everyone, assuming that\n>the belief is something about God, history, etc....\n\nYes, I agree.  What I'm trying to point out is that, in matters of faith\n(i.e. tenets which are not logically persuasive), one may be convinced\nof the truth of certain things through, for instance, personal\nrevelation.  And its certainly fine to share that revelation or those\nbeliefs with others.  And I don't think that its arrogant, persay, to\naccepts matters of pure faith as truth for oneself.  Where I think the\nconflict arises is in assuming that, where disagreements on beliefs\narise, all others *must* have been given the same truth, and that God \nmust reveal His truth to everyone in such a way that all would \nhonestly agree.  I think this can lead to the conclusion that anyone \nwho disagrees with you are being sinful or dishonest; that they are \nrejecting something they *know* to be truth because it is inconvenient \nfor them, or because they wish to spurn God.\n\nI would say that this is equivalent to assuming that *all* truths one \nholds are universal and absolute.  And the problem I see with this is \nthat it negates the individuality of humans and their relationships with\nGod.  This does not mean there is no absolute truth; just that some areas\nof doctrinal disagreement may be areas where God has not established or \nrevealed that truth.  \n\n-- \ncomments, criticism welcome...\n-Ken\nalvin@ucsu.colorado.edu\n\n[I agree with you.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9669, "properties": {"category": "talk.politics.misc", "text": "From: phil@netcom.com (Phil Ronzone)\nSubject: Re: Temper tantrums from the 1960's\nOrganization: Generally in favor of, but mostly random.\nDistribution: usa\nLines: 21\n\nIn article <1993Apr17.013559.17391@pony.Ingres.COM> garrett@Ingres.COM  writes:\n    >>I see you are a total ignorant asshole as well.\n    >^^^^^^^^^^^^^^^ It's the sign of a small mind to use filthy\n    >language when he can't articulate his point.\n\nOh, no, not in this case. I've noticed that you conveniently edited out your\nstupid comment that the PRC stands for Cambodia. When we're arguing the\nVietnam war and about Cambodia, and you toss in a boner like that (along\nwith your other boners), you are an ignorant asshole.\n\nOh, and even the Vietnamese agree that they did far more damage to\nCambodia than we ever did.\n\n\n\n\n-- \nThere are actually people that STILL believe Love Canal was some kind of\nenvironmental disaster. Weird, eh?\n\nThese opinions are MINE, and you can't have 'em! (But I'll rent 'em cheap ...)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9670, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Finland/Sweden vs.NHL teams (WAS:Helsinki/Stockholm & NH\nOrganization: University of Toronto Chemistry Department\nLines: 23\n\nIn article <1993Apr17.170255.23800@abo.fi> MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF) writes:\n>\n>Jutila was a failure, I think, while Makela (and Ari Haanpaa) had an\n>on-again/off-again career with the Islanders. Both players had to play in the\n>minors. Of course I \"like\" our players, I just don't think the names\n>you mention could cut it as stars in the NHL! Even \"Rexi\" in his prime was more\n>of a good regular in New York/Edmonton than a superstar in his own right,\n>although some blamed that on lack of effort on his behalf.\n>\n\nRuotsaleinen was a more than competent NHL'er...his choice of where\nto play when did not bear on his hockey playing ability.\n\nHe was crucial to the Oilers Stanley Cup victory in 1990, the one\nwithout Gretzky, because he made an Oiler power play which was\nlethargic that year until he arrived slide into overdrive.  The\nOilers missed him more the following year than Kurri, and I think\nthe Oilers would have make the finals if Ruotsaleinen has stayed\naround the following season, and would have beaten Pittsburgh\nwith Ruotsaleinen and a healthy Messier...and delayed Pittsburgh's\ndynasty by a season.  \n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9671, "properties": {"category": "sci.med", "text": "From: swkirch@sun6850.nrl.navy.mil (Steve Kirchoefer)\nSubject: 3rd CFV and VOTE ACK: misc.health.diabetes\nOrganization: Naval Research Laboratory  (Electronics Science and Technology Division)\nLines: 198\nNNTP-Posting-Host: rodan.uu.net\n\nThis is the third and final call for votes for the creation of the\nnewsgroup misc.health.diabetes.  A mass acknowledgement of valid votes\nreceived as of April 19th 14:00 GMT appears at the end of this\nposting.  Please check the list to be sure that your vote has been\nregistered.  Read the instructions for voting carefully and follow\nthem precisely to be certain that you place a proper vote.\n \nInstructions for voting:\n \nTo place a vote FOR the creation of misc.health.diabetes, send an\nemail message to yes@sun6850.nrl.navy.mil\n \nTo place a vote AGAINST creation of misc.health.diabetes, send an\nemail message to no@sun6850.nrl.navy.mil\n \nThe contents of the message should contain the line \"I vote\nfor/against misc.health.diabetes as proposed\".  Email messages sent to\nthe above addresses must constitute unambiguous and unconditional\nvotes for/against newsgroup creation as proposed.  Conditional votes\nwill not be accepted.  Only votes emailed to the above addresses will\nbe counted; mailed replies to this posting will be returned.  In the\nevent that more than one vote is placed by an individual, only the\nmost recent vote will be counted.\n \nVoting will continue until 23:59 GMT, 29 Apr 93.\nVotes will not be accepted after this date.\n \nAny administrative inquiries pertaining to this CFV may be made by\nemail to swkirch@sun6850.nrl.navy.mil\n \nThe proposed charter appears below.\n \n--------------------------\n \nCharter:  \n \nmisc.health.diabetes                            unmoderated\n \n1.   The purpose of misc.health.diabetes is to provide a forum for the\ndiscussion of issues pertaining to diabetes management, i.e.: diet,\nactivities, medicine schedules, blood glucose control, exercise,\nmedical breakthroughs, etc.  This group addresses the issues of\nmanagement of both Type I (insulin dependent) and Type II (non-insulin\ndependent) diabetes.  Both technical discussions and general support\ndiscussions relevant to diabetes are welcome.\n \n2.   Postings to misc.heath.diabetes are intended to be for discussion\npurposes only, and are in no way to be construed as medical advice.\nDiabetes is a serious medical condition requiring direct supervision\nby a primary health care physician.  \n \n-----(end of charter)-----\n \nThe following individuals have sent in valid votes:\n \n9781BMU@VMS.CSD.MU.EDU                  Bill Satterlee\na2wj@loki.cc.pdx.edu                    Jim Williams\nac534@freenet.carleton.ca               Colin Henein\nad@cat.de                               Axel Dunkel\nal198723@academ07.mty.itesm.mx          Jesus Eugenio S nchez Pe~a\nanugula@badlands.NoDak.edu              RamaKrishna Reddy Anugula\napps@sneaks.Kodak.com                   Robert W. Apps\narperd00@mik.uky.edu                    alicia r perdue\nbaind@gov.on.ca                         Dave Bain\nbalamut@morris.hac.com                  Morris Balamut\nbch@Juliet.Caltech.Edu\nBGAINES@ollamh.ucd.ie                   Brian Gaines\nBjorn.B.Larsen@delab.sintef.no\nbobw@hpsadwc.sad.hp.com                 Bob Waltenspiel\nbruce@uxb.liverpool.ac.uk               bruce\nbspencer@binkley.cs.mcgill.ca           Brian SPENCER\ncline@usceast.cs.scarolina.edu          Ernest A. Cline\ncoleman@twin.twinsun.com                Mike Coleman\ncompass-da.com!tomd@compass-da.com      Thomas Donnelly\ncsc@coast.ucsd.edu                      Charles Coughran\ncurtech!sbs@unh.edu                     Stephanie Bradley-Swift\ndebrum#m#_brenda@msgate.corp.apple.com  DeBrum, Brenda\ndlb@fanny.wash.inmet.com                David Barton\ndlg1@midway.uchicago.edu                deborah lynn gillaspie\ndougb@comm.mot.com                      Douglas Bank\ned@titipu.resun.com                     Edward Reid\nedmoore@hpvclc.vcd.hp.com               Ed Moore\nejo@kaja.gi.alaska.edu                  Eric J. Olson\nemcguire@intellection.com               Ed McGuire\newc@hplb.hpl.hp.com                     Enrico Coiera\nfeathr::bluejay@ampakz.enet.dec.com\nfranklig@GAS.uug.Arizona.EDU            Gregory C Franklin \nFSSPR@acad3.alaska.edu                  Hardcore Alaskan\ngabe@angus.mi.org                       Gabe Helou\ngasp@medg.lcs.mit.edu                   Isaac Kohane\ngasp@medg.lcs.mit.edu                   Isaac Kohane\nGeir.Millstein@TF.tele.no\nggurman@cory.Berkeley.EDU               Gail Gurman\nggw@wolves.Durham.NC.US                 Gregory G. Woodbury\ngreenlaw@oasys.dt.navy.mil              Leila Thomas\ngrm+@andrew.cmu.edu                     Gretchen Miller\nhalderc@cs.rpi.edu\nHANDELAP%DUVM.BITNET@pucc.Princeton.EDU Phil Handel\nhansenr@ohsu.EDU\nhc@Nyongwa.cam.org                      hc\nheddings@chrisco.nrl.navy.mil           Hubert Heddings\nherbison@lassie.ucx.lkg.dec.com         B.J.\nhmpetro@mosaic.uncc.edu                 Herbert M Petro\nHOSCH2263@iscsvax.uni.edu\nhrubin@pop.stat.purdue.edu              Herman Rubin\nHUDSOIB@AUDUCADM.DUC.AUBURN.EDU         Ingrid B. Hudson\nhuff@MCCLB0.MED.NYU.EDU                 Edward J. Huff\nhuffman@ingres.com                      Gary Huffman\nHUYNH_1@ESTD.NRL.NAVY.MIL               Minh Huynh\nishbeld@cix.compulink.co.uk             Ishbel Donkin\nJames.Langdell@Eng.Sun.COM              James Langdell\njamyers@netcom.com                      John A. Myers\njc@crosfield.co.uk                      jerry cullingford\njesup@cbmvax.cbm.commodore.com          Randell Jesup\njjmorris@gandalf.rutgers.edu            Joyce Morris\njoep@dap.csiro.au                       Joe Petranovic\nJohn.Burton@acenet.auburn.edu           John E. Burton Jr.\njohncha@comm.mot.com\nJORGENSONKE@CC.UVCC.EDU\njpsum00@mik.uky.edu                     joey p sum\nJTM@ucsfvm.ucsf.edu                     John Maynard\njulien@skcla.monsanto.com\nkaminski@netcom.com                     Peter Kaminski\nkerry@citr.uq.oz.au                     Kerry Raymond\nkieran@world.std.com                    Aaron L Dickey\nknauer@cs.uiuc.edu                      Rob Knauerhase\nkolar@spot.Colorado.EDU                 Jennifer Lynn Kolar\nkriguer@tcs.com                         Marc Kriguer\nlau@ai.sri.com                          Stephen Lau\nlee@hal.com                             Lee Boylan\nlmt6@po.cwru.edu\nlunie@Lehigh.EDU\nlusgr@chili.CC.Lehigh.EDU               Stephen G. Roseman\nM.Beamish@ins.gu.edu.au                 Marilyn Beamish\nM.Rich@ens.gu.edu.au                    Maurice H. Rich.\nmaas@cdfsga.fnal.gov                    Peter Maas\nmacridis_g@kosmos.wcc.govt.nz           Gerry Macridis\nmarkv@hpvcivm.vcd.hp.com                Mark Vanderford\nMASCHLER@vms.huji.ac.il\nmcb@net.bio.net                         Michael C. Berch\nmcday@ux1.cso.uiuc.edu\nmcookson@flute.calpoly.edu\nmfc@isr.harvard.edu                     Mauricio F Contreras\nmg@wpi.edu                              Martha Gunnarson\nmhollowa@libserv1.ic.sunysb.edu         Michael Holloway\nmisha@abacus.concordia.ca               MISHA GLOUBERMAN \nmjb@cs.brown.edu                        Manish Butte\nMOFLNGAN@vax1.tcd.ie\nmuir@idiom.berkeley.ca.us               David Muir Sharnoff\nNancy.Block@Eng.Sun.COM                 Nancy Block\nndallen@r-node.hub.org                  Nigel Allen\nnlr@B31.nei.nih.gov                     Rohrer, Nathan\nowens@cookiemonster.cc.buffalo.edu      Bill Owens\npams@hpfcmp.fc.hp.com                   Pam Sullivan\npapresco@undergrad.math.uwaterloo.ca    Paul Prescod\npaslowp@cs.rpi.edu\npillinc@gov.on.ca                       Christopher Pilling\npkane@cisco.com                         Peter Kane\npopelka@odysseus.uchicago.edu           Glenn Popelka\npulkka@cs.washington.edu                Aaron Pulkka\npwatkins@med.unc.edu                    Pat Watkins\nrbnsn@mosaic.shearson.com               Ken Robinson\nrick@crick.ssctr.bcm.tmc.edu            Richard H. Miller\nrobyn@media.mit.edu                     Robyn Kozierok\nrolf@green.mathematik.uni-stuttgart.de  Rolf Schreiber\nsageman@cup.portal.com\nsasjcs@unx.sas.com                      Joan Stout\nSCOTTJOR@delphi.com\nscrl@hplb.hpl.hp.com\nscs@vectis.demon.co.uk                  Stuart C. Squibb\nshan@techops.cray.com                   Sharan Kalwani\nsharen@iscnvx.lmsc.lockheed.com         Sharen A. Rund\nshazam@unh.edu                          Matthew T Thompson\nshipman@csab.larc.nasa.gov              Floyd S. Shipman\nshoppa@ERIN.CALTECH.EDU                 Tim Shoppa\nslillie@cs1.bradley.edu                 Susan Lillie\nsteveo@world.std.com                    Steven W Orr\nsurendar@ivy.WPI.EDU                    Surendar Chandra\nswkirch@sun6850.nrl.navy.mil            Steven Kirchoefer\nS_FAGAN@twu.edu\nTARYN@ARIZVM1.ccit.arizona.edu          Taryn L. Westergaard\nThomas.E.Taylor@gagme.chi.il.us         Thomas E Taylor\ntima@CFSMO.Honeywell.COM                Timothy D Aanerud\ntsamuel%gollum@relay.nswc.navy.mil      Tony Samuel\nU45301@UICVM.UIC.EDU                    M. Jacobs  \nvstern@gte.com                          Vanessa Stern\nwahlgren@haida.van.wti.com              James Wahlgren\nwaterfal@pyrsea.sea.pyramid.com         Douglas Waterfall\nweineja1@teomail.jhuapl.edu\nwgrant@informix.com                     William Grant\nYEAGER@mscf.med.upenn.edu\nyozzo@watson.ibm.com                    Ralph E. Yozzo\nZ919016@beach.utmb.edu                  Molly Hamilton\n-- \nSteve Kirchoefer                                             (202) 767-2862\nCode 6851                                      kirchoefer@estd.nrl.navy.mil\nNaval Research Laboratory                       Microwave Technology Branch\nWashington, DC  20375-5000              Electronics Sci. and Tech. Division\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9672, "properties": {"category": "sci.space", "text": "From: jgreen@trumpet.calpoly.edu (James Thomas Green)\nSubject: Keeping Spacecraft on after Funding Cuts.\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 51\n\nWhy do spacecraft have to be shut off after funding cuts.  For\nexample, Why couldn't Magellan just be told to go into a \"safe\"\nmode and stay bobbing about Venus in a low-power-use mode and if\nmaybe in a few years if funding gets restored after the economy\ngets better (hopefully), it could be turned on again.  \n\nFor that matter, why exactly were the Apollo lunar experiments\n\"turned off\" rather than just \"safed\".  Was it political (i.e.\nas along as they could be used, someone would keep bugging\ncongress for funds)?  Turning them off keeps them pesky\nscientists out of the bureaucrat's hair....  \n\nI've heard the argument that an active but \"uncontrolled\"\nspacecraft causes \"radio noise.\"  I find that hard to believe\nthat this could be a problem in a properly designed \"safe\" mode.\nThis safe mode could be a program routine which causes the\nspacecraft to go to least fuel using orientation, and once a\n(week, month, year, whatever) attempts a signal lock on Earth.\nAt that time, if funding has been restored, the mission can\ncontinue.  If no signal is recieved, the spacecraft goes back to\nthe safe mode for another time period. As we would know when the\nspacecraft is going to try to contact Earth, we could be\nprepared if necessary.  \n\nAs another a spacecraft could do at the attempted contact is\nbeam stored data towards Earth.  If someone can receive it,\ngreat, if not, so it's lost and no big deal.\nBy making the time and signal location generally known, perhaps\nsomeone in the world might be able and willing to intercept the\ndata even if they're not willing to contact the spacecraft.\n\nI see this as being particularly useful for spacecraft which\ncould have an otherwise long life and are in or are going to\nplaces which are otherwise unaccessible (Jupiter/Saturn Orbit,\nexiting the solar system, etc).   \n\nPerhaps those designing future spacecraft (Cassini, Pluto Flyby,\netc) should consider designing in a \"pause\" mode in case their\nspacecraft gets the ax sometime in the future after completion of\nthe primary mission. Perhaps Mars Observer and Galilleo could\nhave some kind of routine written in for the post mission\n\"drift\" phase.\n\nSo any holes in all this?\n\n\n/~~~(-: James T. Green :-)~~~~(-: jgreen@oboe.calpoly.edu :-)~~~\\ \n| \"I believe that this nation should commit itself to achieving\t| \n| the goal, before this decade is out, of landing a man on the \t|\n| Moon and returning him safely to the Earth.\"    \t\t|\n|                  <John F. Kennedy; May 25, 1961> \t\t|\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9673, "properties": {"category": "talk.politics.mideast", "text": "From: visser@convex.com (Lance Visser)\nSubject: Re: Israel's Expansion\nNntp-Posting-Host: dhostwo.convex.com\nOrganization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 22\n\nIn <1993Apr19.024949.27846@nysernet.org> astein@nysernet.org (Alan Stein) writes:\n\n\n+>The Golan Heights is a serious security problem, and Israel obviously\n+>will have to keep part of it and give up part of it.  (One should\n+>remember that the Golan Heights had been part of the area that was to\n+>be in Britain's Palestine Mandate, slated to become part of the Jewish\n+>state, until Britain traded it to France for other considerations.  In\n+>other words, it is an historical accident that it was ever part of\n+>Syria.)\n\n\tThe Palestine mandate had no borders before\nthe borders were negotiated and drawn.  The most the Golan may have been\nis on the list of what territories Britian would have liked to\nsee in the palestine mandate.\n\tUntil the mandates came into existance, there were no defined\nboundaries between any of the various territories in the region.\n\n\tIf you have a source for any of these claims, then please\npresent it.\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9674, "properties": {"category": "sci.crypt", "text": "From: eab@msc.edu (Edward Bertsch)\nSubject: Re: I have seen the lobby, and it is us\nOrganization: Minnesota Supercomputer Center, Minneapolis, MN\nLines: 18\n\nI agree that notifying your elected officials of your feelings on this\n(and any other, for that matter) issue is the way to go.  And by the\nway, the phone #s on the list posted the other day were all in Washington\nD.C.  --  For most of you, your elected officials will also maintain\na local office in your area code.\n\nWhen I 'manage' my elected officials, I use their local office #'s\nexclusively, and my fax modem and windows-print-capture software are\nmy tool of choice.  They see my words as I have stated them, rather\nthan a summary as they would if I called in /voice/ and left a\ncomment with the office staff.\n\n\n-- \nEdward A. Bertsch (eab@msc.edu)   Minnesota Supercomputer Center, Inc.\nOperations/User Services          1200 Washington Avenue South\n(612) 626-1888 work               Minneapolis, Minnesota  55415\n(612) 645-0168 voice mail         [DISCLAIMER: MY OPINIONS; NOT MSCI'S]\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9675, "properties": {"category": "misc.forsale", "text": "From: jaredjma@mentor.cc.purdue.edu (Jared J. Martin)\nSubject: Mother Board for sale\nOrganization: Purdue University Computing Center\nLines: 16\n\n\n                    FOR SALE:\n\n  486 DX/33 Motherboard for sale.  Excellent condition...less than\n\n  one year old.  64K cache, expandable to 256K.  RAM expandable to 32MB.\n\n  AMI BIOS.  Need to sell...upgrading.  \n\n  Asking:  $600.00 (neg.)\n\n  CONTACT:  Jared Martin at 49-54566 or \n   \n            email at jaredjma@mentor.cc.purdue.edu\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9676, "properties": {"category": "talk.politics.misc", "text": "From: sys1@exnet.co.uk (Xavier Gallagher)\nSubject: Re: Using California's Antidiscrimination: The Sort Of Case I Predicted\nOrganization: ExNet Systems Ltd Public Access News, London, UK\nLines: 26\n\nIn article <15312@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n>In article <1993Apr08.092954.13507@armory.com>, rstevew@armory.com (Richard Steven Walz) writes:\n># Face it, Clayton, he was not found guilty, and so what if gays sometimes\n># make it consensually with 16 year old boys. There ARE 16 year old gays, you\n># know. And as I recall, the case of the state rested on the testimony of one\n># \"victim\" who declined to testify, even under threat. I have had teens since\n># I was 40, and so have a lot of people. Face it Clayton, you're just a jerk!\n># -RSW\n># -- \n># * Richard STEVEn Walz   rstevew@deeptht.armory.com   (408) 429-1200  *\n># * 515 Maple Street #1   * Without safe and free abortion women are   *\n># * Santa Cruz, CA 95060    organ-surrogates to unwanted parasites.*   *\n>\n>I am always amazed to see people admit to breaking the law -- and\n>putting their address in the signature.  Please tell us more about \n>this.  Were they 13?  14?  Would you like to make a statement for\n>the district attorney?\n\nI had sex with a 13 year old boy, it was great, we did *everything*,\nwell, a hell of a lot.  It was fun anyway.  Oh, and before you turn \npurple with rage I was 12 at the time.\n>-- \n>Clayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\n>Relations between people to be by mutual consent, or not at all.\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9677, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Ohio Legislative Alert -- H.B. 287\nOrganization: Ideology Busters, Inc.\nDistribution: usa\nKeywords: mourning dove hunting season\nLines: 14\n\nOHIO HOUSE OF REPRESENTATIVE   THURSDAY, APRIL 8, 1993\n \nH.B. NO. 287- REPRESENTATIVES SEESE, DAVIS, BATCHELDER, AMSTUTZ, T. \nJOHNSON, VAN VYVEN, WACHTMANN, WHITE, DI DONATO, BOGGS, LOGAN\n \n        TO AMEND SECTION 1531.01 OF THE REVISED CODE TO ADD MOURNING DOVE \nTO THE GAME BIRD LIST AND PERMIT THE CHIEF OF THE DIVISION OF WILDLIFE IN \nTHE DEPARTMENT OF NATURAL RESOURCES TO REGULATE THE HUNTING OF MOURNING \nDOVES, AND TO MAKE AN APPROPRIATION.\n \nThis would allow the hunting of mourning doves in Ohio and give the \nsportsman something they have been pushing for.\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9678, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Re: rejoinder. Questions to Israelis\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 38\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n   Although I realize that principle is not one of your strongest\npoints, I would still like to know why do do not ask any question\nof this sort about the Arab countries.\n\n   If you want to continue this think tank charade of yours, your\nfixation on Israel must stop.  You might have to start asking the\nsame sort of questions of Arab countries as well.  You realize it\nwould not work, as the Arab countries' treatment of Jews over the\nlast several decades is so bad that your fixation on Israel would\nbegin to look like the biased attack that it is.\n\n   Everyone in this group recognizes that your stupid 'Center for\nPolicy Research' is nothing more than a fancy name for some bigot\nwho hates Israel.\n\n   Why don't you try being honest about your hatred of Israel?  I\nhave heard that your family once lived in Israel, but the members\nof your family could not cut the competition there.  Is this true\nabout your family?  Is this true about you?  Is this actually not\nabout Israel, but is really a personal vendetta?  Why are you not\nthe least bit objective about Israel?  Do you think that the name\nof your phony-baloney center hides your bias in the least?  Get a\nclue, Mr. Davidsson.  Haven't you realized yet that when you post\nsuch stupidity in this group, you are going to incur answers from\npeople who are armed with the truth?  Haven't you realized that a\npiece of selective data here and a piece there does not make up a\ntruth?  Haven't you realized that you are in over your head?  The\npeople who read this group are not as stupid as you would hope or\nneed them to be.  This is not the place for such pseudo-analysis.\nYou will be continually ripped to shreds, until you start to show\nsome regard for objectivity.  Or you can continue to show what an\nanti-Israel zealot you are, trying to disguise your bias behind a\npompous name like the 'Center for Policy Research.'  You ought to\nknow that you are a laughing stock, your 'Center' is considered a\njoke, and until you either go away, or make at least some attempt\nto be objective, you will have a place of honor among the clowns,\nbigots, and idiots of Usenet.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9679, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jfinete@cats.ucsc.edu (Joseph Manuel Finete)\nSubject: Re: what do y'all think of the IIvx?\nOrganization: University of California; Santa Cruz\nLines: 28\nNNTP-Posting-Host: am.ucsc.edu\n\n\nIn article <1p5e0tINNojp@MINERVA.CIS.YALE.EDU> bell-peter@yale.edu (Peter Bell) writes:\n>My advisor has decided to get a mac for the lab now that we are funded again.\n>\n>The consensus in the lab was that all we really needed was an LCIII, but \n>he decided he wanted a centris 610.  The lack of an fpu on that machine,\n>and the price, struck me as making it worth less than an LCIII, so I have \n>suggested we get a IIvx instead.  It seems heavily expandable, and for \n>\n>what do people with IIvx's think of them?  They seem like good machines to\n>me, and I like the Nubus slots in case we ultimately decide we want to do\n>work with video on it....\n\nThe IIvx...LCIII performance at a Centris 610 price. The only reason\nto get an IIvx is if you really need the full-size Nubus slots. Keep \nin mind that the 610 supports all Apple monitors and has optional Ethernet.\nThis lessens (but doesn't eliminate) the need for Nubus cards. And unless\nyou're running FPU-intensive software, the 610 will blow the doors off the\nLCIII and the IIvx. The LCIII, on the other hand, is sufficient for most\npeople and has a great price.\n\nIf you haven't guessed, I find halving the bus clock (the IIvx 32MHz uP vs.\n16MHz bus) a throughly bad thing and I hope Apple never does it again.\n-- \n______________________________________________________________________________\n|Joe Finete                                                                   |\n|jfinete@cats.ucsc.edu                                                        |\n-------------------------------------------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9680, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Free Moral Agency and Kent S.\nOrganization: Cookamunga Tourist Bureau\nLines: 19\n\nIn article <healta.140.734925835@saturn.wwc.edu>, healta@saturn.wwc.edu\n(Tammy R Healy) wrote:\n> At the time Ezekiel was written, Israel was in apostacy again and if I'm not \n> mistaken, Tyre was about to make war on Israel.  Like I said, the Prince of \n> Tyre was the human ruler of Tyre.  He was a wicked man.  By calling Satan \n> the King of Tyre, Ezekiel was saying that Satan is the real ruler over Tyre.\n\nTammy, is this all explicitly stated in the bible, or do you assume\nthat you know that Ezekiel indirectly mentioned? It could have been\nanother metaphor, for instance Ezekiel was mad at his landlord, so he\ntalked about him when he wrote about the prince of Tyre.\n\nSorry, but my interpretation is more mundane, Ezekiel wrote about \nthe prince of Tyre when we wrote about the prince of Tyre.\n \nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9681, "properties": {"category": "misc.forsale", "text": "From: dwilson@csugrad.cs.vt.edu (David Wilson)\nSubject: Various COMPUTER/AUDIO/VIDEO items wanted as of 4/16\nLines: 63\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 63\n\nUnless otherwise noted, I am mainly interested in USED items.\nIf you have (any of) the following for sale, please contact me:\n        EMail           mbeck@vtssi.vt.edu\n        Phone           (703)552-4381\n        USMail          Michael Beck\n                        1200 Progress Street #5500E\n                        Blacksburg, Virginia 24060\n \nPlease give as much info as possible (brand, age, condition, etc)\n~~~~~~~~~~WANTED as of 12AM, 4/16/93~~~~~~~~~~\n \nCOMPUTER EQUIP:\n \n1       CHEAP tape drive - pretty much any kind (Used)\n \n1       Memory for PS/2 Model 50Z (New or Used)\n \n1       Macintosh computer\n \n1       486 66mhz chip (New or Used)\n \n1       COLORADO tape drive, 250 megabyte, preferr. w/ 5 tapes (Used)\n \n1       101 key-AT keyboard\n \n1       High Density (1.2 mb) 5 1/4 disk drive\n \n1       Printer - OMS410 or HP LASER or HP DESKJET series\n \n1       Printer - 24 pin or DESKJET\n \n1       High Density (1.2 mb) 5 1/4 disk drive EXTERNAL\n \n1       Adaptec 1542 SCSI 16-bit HD/FD controller (Used)\n \n1       Piggy back memory expansion for INTEL INBOARD 386       \n \n1       130 MB IDE Hard Drive\n \n2       17\" monitor, 1280 resolution, .28 dot pitch or better, digital\n \nmult.   XT's, AT's and laptop systems to go to Russia\n \n \n \nNON-COMPUTER EQUIP:\n \n1       drum set       \n \nmult.   amps for a band\n \n1       TV - 27\" or bigger, stereo\n \n1       VCR - 4 Heads, stereo\n \n1       Receiver - 100 Watts or more w/ Dolby Prologic Surround Sound\n                capability\n \n1       Bed - Full or Queen sized - LOCAL OFFERS only, please\n \n1       Desk - LOCAL OFFERS only, please due to shipping constraints\n \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9682, "properties": {"category": "sci.crypt", "text": "From: amolitor@nmsu.edu (Andrew Molitor)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: Department of Mathematics\nLines: 19\nNNTP-Posting-Host: moink.nmsu.edu\n\nIn article <1r1otuINNdb2@dns1.NMSU.Edu>\n\tamolitor@nmsu.edu (Andrew Molitor) writes:\n\n>\tThe 'plaintext' is digitized voice, and exists for a very short\n>time, probably in a couple inches of copper, tops. It's flatly not\n>available -- your bug in my office can hear my voice, and even digitize\n>it, but it's going to get a different bitstream.\n\n\tI am an idiot. The plaintext that's relevant is the session key.\nIf you know that, you probably don't need a roomful of chips, do you?\nIf you were going to brute force something interesting, that'd be the\nmessage stream, which is sort of approximately known by, say, a bug in\nmy office. Then your roomful of chips could get the session key. Which\nI change every morning.\n\n\tReally, it's just a whole lot easier for the illicit wiretappers\nto stick a bug in your phone.\n\n\tAndrew Molitor\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9683, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jamesc@netcom.com (James Chuang)\nSubject: Re: Diamond Stealth 24 giving 9.4 Winmarks?\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 8\n\nPC Mag only got around 9-10 Winmarks when they tested the Steal 24.  It sounds\nlike you are ok.\njamesc\n\n\n-- \n=========================================\nIf someone asks if you are a God, you say... YES!\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9684, "properties": {"category": "sci.electronics", "text": "From: suwanto@iastate.edu (zapper)\nSubject: Re: 2SC1096, 2SA634 specs?\nOrganization: Iowa State University, Ames IA\nLines: 35\n\n>Could some kind soul post me the max power/voltage/current ratings of\n>2SC1096 and 2SA634 transistors, their conductance types and pinouts.\n>They are used in the sweep portion of a TV set.\n\n2SC1096\n  Maximum Ratings:\n    VCBO = 40V\n    VCEO = 30V\n    IC   = 3A\n    PC   = 10W (T=25C)\n\n  ICBO max = 1uA\n  VCB = 30V\n  COB = 55pF\n\n  at Q-point VCE=5, IC=1A --> hfe = 100\n\n2SA634\n  Maximum Ratings:\n    VCBO = -40V\n    VCEO = -30V\n    IC   = -3A\n    PC   = 10W (T=25C)\n\n  ICBO max = -1uA\n  VCB = -30V\n  COB = 75pF\n\n  at Q-point VCE = -5V, IC = -1A --> hfe = 100\n\nThat's all i can get from my data book, hope that helps.\n\nsuwanto@iastate.edu\n\n    \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9685, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: RUMOUR - Keenan signs with Rangers?\nOrganization: University of Toronto Chemistry Department\nLines: 25\n\nIn article <1993Apr16.185823.6310@news.columbia.edu> gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>\n>Interestingly, Keenan's co-coach (or is it his \"Number One\"?) on Team\n>Canada at the World Championships is Roger Neilsen.  \n>\n\nBut ultimately their hockey philosophies are like night and day...\nKeenan believes in pressuring the opposition and taking the\ninitiative (within the limits of his system)...while Roger\nhas a reactive hockey philosophy...which is why Messier will\nbe able to and has played for Keenan, but thought Roger's way\nwas a sure loser.\n\n>It'd be interesting if the Rangers call in the balance of Neilsen's\n>contract to be Keenan's assistant ...  Roger did do a very good job\n>with the mediocre players, just as he handled the Cinderella Canucks\n>of 10 years ago ... but his mistake was playing the Rangers like those\n>Canucks last May ...\n>\n\nRoger is a great assistant coach...but considering what must be bad\nblood between Nielson and Messier, it would be a mistake to bring\nhim back even in that role.\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9686, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Why does US consider YIGAL ARENS to be a dangerous to humanity\nOrganization: The Department of Redundancy Department\nLines: 31\n\nIn article <C5sDCK.38n@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n\n>Come on!  Most if not all Arabs are sympathetic to the Palestinian war \n>against Israel.  \n\nI wouldn't bet on it.\n\nArab governments generally don't care much about the Palestineans and\ntheir struggle but find it useful for political purposes back home.\nThey are happy to leave the Palestineans largely under Israeli control\nbecause that leaves the job of controlling them to the Israelis.  The\nIsraelis don't like this job any more than King Hussein of Jordan\nliked it -- and he managed to kill them off at the rate of thousands\nper month when they started an Intifada in Jordan.  The governments of\nSyria, Lebanon and Egypt all feel similarly.  However, proclaiming\npublic support for the Palestinean war against Israel deflects\ncriticism from deep problems at home and lends an air of legitimacy to\neven the most brutal Arab tyrants.\n\nArab *PEOPLE* probably aren't much more sympathetic.  Palestineans\nhave shown a willingness to destabilize and plunder in Jordan,\nLebanon and Kuwait and are viewed with suspicion elsewhere.\n\nYou might still be right in sympathy to the war against Israel, but I\nsuspect that many Arabs, far removed from the immediate border with\nIsrael (e.g. in Kuwait or Morroco), couldn't care less.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9687, "properties": {"category": "comp.graphics", "text": "From: rob@rjck.UUCP (Robert J.C. Kyanko)\nSubject: Re: VGA 640x400 graphics mode\nDistribution: world\nOrganization: Neptune Software Inc\nLines: 15\n\ngchen@essex.ecn.uoknor.edu writes in article <C55DoH.2AI@constellation.ecn.uoknor.edu>:\n> \n> Greetings!\n> \n> Does anybody know if it is possible to set VGA graphics mode to 640x400\n> instead of 640x480?  Any info is appreciated!\n\nSome VESA bios's support this mode (0x100).  And *any* VGA should be able to\nsupport this (640x480 by 256 colors) since it only requires 256,000 bytes.\nMy 8514/a VESA TSR supports this; it's the only VESA mode by card can support\ndue to 8514/a restrictions. (A WD/Paradise)\n\n--\nI am not responsible for anything I do or say -- I'm just an opinion.\n             Robert J.C. Kyanko (rob@rjck.UUCP)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.456+0000", "event": "documents", "entityId": 9688, "properties": {"category": "talk.religion.misc", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Albert Sabin\nOrganization: Technical University Braunschweig, Germany\nLines: 20\n\nIn article <1993Apr15.225657.17804@rambo.atlanta.dg.com>\nwpr@atlanta.dg.com (Bill Rawlins) writes:\n \n(Deletion)\n>\n>       Since you have referred to the Messiah, I assume you are referring\n>        to the New Testament.  Please detail your complaints or e-mail if\n>        you don't want to post.  First-century Greek is well-known and\n>        well-understood.  Have you considered Josephus, the Jewish Historian,\n>        who also wrote of Jesus?  In addition, the four gospel accounts\n>        are very much in harmony.\n>\n \nSince this drivel is also crossposted to alt.atheism, how about reading\nthe alt.atheism FAQ? The Josephus quote is concidered to be a fake even\nby Christian historians, and the four gospels contradict each other in\nimportant points.\n \nWeren't you going to offer a scientific theory of Creationism?\n   Benedikt\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9689, "properties": {"category": "sci.electronics", "text": "From: harton@owlnet.rice.edu (Tracy Brian Harton)\nSubject: Wireless Transmitter/Receivers at RS\nOrganization: Rice University\nLines: 12\n\n\nDoes anyone know what frequencies the wireless transmitter/receiver\nmicrophone systems that Radio Shack sells operate at?  I've tried\neverything short of opening one up (not actually owning one makes\nthis difficult...) and just looking..  Any help would be greatly\nappreciated..  These systems are designed for wireless PA systems, etc..\n \n \n\t\t\t\t\tThanks,\n\t \n\t\t\t\t\t\t\tTracy\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9690, "properties": {"category": "comp.windows.x", "text": "From: mike@hopper.Virginia.EDU (Michael Chapman)\nSubject: Re: X11R5 and Gateway2000\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 25\n\nIn article <5914@daily-planet.concordia.ca> christy@cs.concordia.ca (Christy) writes:\n>\n>Hi,\n>     I just got myself a Gateway 4DX-33V and trying to configure\n>X11R5 for it.  Has anyone done this before ?  More specifically,\n>I need a correct Xconfig file entry that is set up for my \n>graphics card and monitor.  I have a 15\" Color CrystalScan 1572FS monitor\n>and a VESA LOCAL BUS ATI Ultra Pro with 1MB VRAM video card.\n>Thanks in advance.\n\nDidn't your operating system come with X?  SysV usually does as far\nas I know.  You'd do best to contact the people from whom you bought\nths OS.  If you're running Linux or something similar, good luck. :)\n>\n>Please send replies to christy@alex.qc.ca\n>\n>\n>Christy\n\n\n-- \n                A voice of reason in the midst of LiberalNet.\n    Mike Chapman, a higher lifeform trapped in a human body. AKA FourDee.\n       Political Correctness is the tool of the mentally disadvantaged. \n           \"I will NOT raise taxes on the middle class.\" -Unknown\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9691, "properties": {"category": "sci.med", "text": "From: bed@intacc.uucp (Deb Waddington)\nSubject: INFO NEEDED: Gaucher's Disease\nDistribution: Everywhere\nExpires: 01 Jun 93\nReply-To: bed@intacc.UUCP (Deb Waddington)\nOrganization: Matrix Artists' Network\nLines: 33\n\n\nI have a 42 yr old male friend, misdiagnosed as having\n osteopporosis for two years, who recently found out that his\n illness is the rare Gaucher's disease. \n\nGaucher's disease symptoms include: brittle bones (he lost 9 \n inches off his hieght); enlarged liver and spleen; internal\n bleeding; and fatigue (all the time). The problem (in Type 1) is\n attributed to a genetic mutation where there is a lack of the\n enzyme glucocerebroside in macrophages so the cells swell up.\n This will eventually cause death.\n\nEnyzme replacement therapy has been successfully developed and\n approved by the FDA in the last few years so that those patients\n administered with this drug (called Ceredase) report a remarkable\n improvement in their condition. Ceredase, which is manufactured\n by biotech biggy company--Genzyme--costs the patient $380,000\n per year. Gaucher's disease has justifyably been called \"the most\n expensive disease in the world\".\n\nNEED INFO:\nI have researched Gaucher's disease at the library but am relying\n on netlanders to provide me with any additional information:\n**news, stories, reports\n**people you know with this disease\n**ideas, articles about Genzyme Corp, how to get a hold of\n   enough money to buy some, programs available to help with\n   costs.\n**Basically ANY HELP YOU CAN OFFER\n\nThanks so very much!\n\nDeborah \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9692, "properties": {"category": "comp.windows.x", "text": "From: kurt@dna.lth.se (Kurt Swanson)\nSubject: What determines the default X font?\nOrganization: Lund Institute of Technology, Sweden\nLines: 10\n\nI'm running X under openwindows 3.  Normal X programs not having a\nfont specified always show up in the same font - until I change the\nfontpath, and restart windows - then a new default font is used until\nthe next change.  I can't seem to figure out how it chooses.  Is there\nsome way to set this?  Possibly something in .Xdefaults???\n\nPlease reply in direct email - I summarize.\n-- \nKurt Swanson, Dept. of Computer Science,\nLunds universitet.  Kurt.Swanson@dna.lth.se\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9693, "properties": {"category": "talk.politics.mideast", "text": "From: waldo@cybernet.cse.fau.edu (Todd J. Dicker)\nSubject: Re: Hamza Salah, the Humanist\nOrganization: Cybernet BBS, Boca Raton, Florida\nLines: 19\n\ndzk@cs.brown.edu (Danny Keren) writes:\n\n> He-he. The great humanist speaks. One has to read Mr. Salah's posters,\n> in which he decribes Jews as \"sons of pigs and monkeys\", keeps\n> promising the \"final battle\" between Muslims and Jews (in which the\n> stons and the trees will \"cry for the Muslims to come and kill the\n> Jews hiding behind them\"), makes jokes about Jews dying from heart\n> attacks etc, to realize his objective stance on the matters involved.\n> \n> -Danny Keren.\n----------\nDon't worry, Danny, every blatantly violent and abusive posting made by \nHamzah is immediately forwarded to the operator of the system in which he \nhas an account.  I'd imagine they have quite a file started on this \nfruitcake--and have already indicated that they have rules governing \nracist and threatening use of their resources.  I'd imagine he'll be out \nof our hair in a short while.\n\nTodd\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9694, "properties": {"category": "talk.religion.misc", "text": "From: cocoa@netcom.com\nSubject: Re: Jewish history question\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 60\n\nIn article <1993Apr10.195513.17991@csi.uottawa.ca> misrael@csi.uottawa.ca (Mark Israel) writes:\n>In article <cocoaC5797E.43y@netcom.com>, cocoa@netcom.com (little 'e') writes:\n>\n[deleted]\n>> Here tis.  Someone just told me that the Old Testament books were translated\n>> into Greek a long time ago\n>\n>   Yes, that's a famous version called The Septuagint.  It was a translation\n>made by Greek Jews.\n>\n>> and that the originals were destroyed in a fire soon afterward.\n>\n>   I don't know what you're referring to here.  When the Jersusalem Temple was\n>destroyed, some manuscripts may have been lost, but I think our extant Hebrew\n>manuscripts are as good as our Greek ones.  I don't know about any \"originals\".\n\nThe person who was telling me about the Septuagint version said that the Greeks\nhad a wonderful library in Alexandria that was full of manuscripts/scrolls\nand that it was burned soon after the Septuagint version was translated \n(perhaps to conceal some changes in the different versions, or perhaps just\nas part of the typical burning of valuable things that occurs during changes\nin power groups, he/I dunno).\n\n>> So, I was just wondering, since I imagine some Jewish people somewhere must \n>> have had copies of the earlier Hebrew versions, is the Hebrew version of the \n>> Old Testament very different from the Greek derived version?\n\n>   No.  There are a few famous discrepancies (Isaiah's prophecy about a \"young\n>woman\" was changed into a \"virgin\", which was how the New Testament writers\n>read it), but not many.\n\nWell, perhaps this is the answer then.\n\n[deleted]\n>   If you go to a Jewish bookstore, you'll get a Bible translated by Jews, so\n>there will be some differences in interpretation, but the text they're \n>translating *from* is basically the same.\n>\n>   If you want to read \"the original\", you can buy an Interlinear Bible.  That\n>contains the Hebrew Old Testament and the Greek New Testament, with an English\n>translation written underneath each word.\n>\n>   If you want a Bible with a possibly-more-original basic text, you can try\n>to find a Samaritan bible.  (Good luck!  I've never seen one.)  The Samaritans \n>(no, not the Good Samaritans) have their own version of the 5 Books of Moses.\n>They claim the Jewish bible was altered by Ezra.\n\nThanks for the tips.  Now I just have to find someone to teach me Samaritan :)\n\nJust me,\n\nlittle 'e'\n\n(so, is a \"good Samaritan hard to find?\" or \"is a hard... \" Oh, finish this\nyourself.)\n\n-- \n*  *  *    Chocolatier at Arms, and Castle Wetware Liason            *  *  *\n*  *  *    e-mail: cocoa@netcom.com   -    voicemail: 415-337-4940   *  *  *\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9695, "properties": {"category": "rec.motorcycles", "text": "From: garym@cycle.mentorg.com (Gary Myron)\nSubject: Re: Shipping a bike\nNntp-Posting-Host: cycle.mentorg.com\nOrganization: Mentor Graphics\nKeywords: \nLines: 21\n\n> Can someone recommend how to ship a motorcycle from San Francisco\n> to Seattle?  And how much might it cost?\n\nI shipped my K75S from Portland Oregon to Daytona for this years\nbike week (I rode it back!).  The company I used is The Federal Co's.\nYou can reach them at 1-800-747-4100 ex 214.  You either have to be\na AMA member, or maybe it is just a discount for AMA, not sure.\n(Call 1-800-AMA-JOIN to become an AMA member)\n\nThe shipping cost is based on the number of miles.  It cost me about $500\nfor Portland to Orlando.  $80 of that was insurance.  All I had to do is\nride it to the shipping dock and siphon the gas out.  I think they can\nalso pick up the bike from any business.  The bike arrived on-time at\nOrlando.  All I had to do was adjust the mirrors and add gas.  The bike\nwas in perfect shape!\n\n--Gary\n\n\n\n \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9696, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: news@leland.Stanford.EDU (Mr News)\nSubject: re: I hate to make a decision !\nOrganization: DSO, Stanford University\nLines: 30\n\n\nIn article <1993Apr26.030204.27417%gtonwu@Uz.nthu.edu.tw> gtonwu@Uz.nthu.edu.tw (Tony G. Wu) writes:\n>\n>Hi.\n> \n>    Well, I really hate to make a decision, but recently, I have to choose\n>    whether stacker 3.0 or dos 6.0 with double space for my poor HD.\n>    I am using windwos 3.1 and I hope what I choose will live with windows.\n>\n>    Any help will be appreciated.\n>\n>\n>  \n>-- \n>===================== ( Forever  23,  Michael Jordan.) =====================\n>    Tony G. Wu                                     gtonwu@uz.nthu.edu.tw \n>    CAE/Rheology Lab.  NTHU.                       tony@che.nthu.edu.tw\n>   \n\nStacker achieves better compression ratio than DOS6, yet the\nlatter comes with virus detection, memory manager, and multiple\nbooting. Each of them are not so good as the NAV, QEMM or NDOS\nin my opinion, but with a package of only $45, it's nice if\nhaven't yet installed all of those stuffs.\n\nBoth certainly work with Win31.\n\nRensheng Horng\n\n \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9697, "properties": {"category": "talk.politics.guns", "text": "From: earlw@apple.com (Earl Wallace)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: Apple Computer Inc. ESD/OSBU/Cross-Platform Software\nLines: 16\nNNTP-Posting-Host: apple.com\n\nIn article <1993Apr20.003522.22480@midway.uchicago.edu> thf2@midway.uchicago.edu writes:\n>In article <1qvfik$6rf@usenet.INS.CWRU.Edu> cj195@cleveland.Freenet.Edu (John W. Redelfs) writes:\n>>Now that Big Brother has rubbed out one minority religion in Waco, who is\n>>next?  The Mormons or Jews?\n>\n>The Koreshians rubbed themselves out.  Neither Mormons nor Jews have a\n>propensity for dousing themselves with kerosene, so I'm not particularly\n>concerned.  (Or shall we blame Jim Jones on the government also?)\n>...\n\nLet's see if I have this straight.  A law is created that says \"you can not\nhave a automatic weapon\" and therefore it's ok for the government to use\nany level of force to enforce that law.  Doesn't matter if the entire \npopulation of the planet is destroyed as long as that law is obeyed.\n\nDo I read you correctly?\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9698, "properties": {"category": "sci.med", "text": "From: mcg2@ns1.cc.lehigh.edu (Marc Gabriel)\nSubject: Bouncing LymeNet newsletters...\nOrganization: Lehigh University\nLines: 22\n\nThe following 4 addresses are on the LymeNet mailing list, but are rejecting\nmail.  Since the list server originally accepted these addresses successfully,\nI assume these addresses have since been eliminated.  Improperly functioning\nmail gateways might also be responsible.\n\nIf you are listed here and would still like to remain on the list, please\nwrite to me.  Otherwise, I will remove these addresses from the list before the\nnext newsletter goes out.\n\nAs a general rule, please remember to *unsubscribe* from all your mailing\nlists before your account is closed.  This will save the listserv maintainer\nfrom many headaches.\n\nLezliel@Sitka.Sun.COM\nKenneth_R_Hall@Roch817.Xerox.COM\nWestmx!ayoub@uunet.uu.net\nAbsol.absol.com!rsb@panix.COM\n-- \n--\n---------------------------------------------------------------------\n              Marc C. Gabriel        -  U.C. Box 545  -\n              (215) 882-0138         Lehigh University\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9699, "properties": {"category": "rec.motorcycles", "text": "From: rogerc@discovery.uk.sun.com (Roger Collier)\nSubject: Re: Camping question?\nOrganization: Sun Microsystems (UK) Ltd\nLines: 26\nDistribution: world\nReply-To: rogerc@discovery.uk.sun.com\nNNTP-Posting-Host: discovery.uk.sun.com\n\nIn article 10823@bnr.ca,  npet@bnr.ca (Nick Pettefar) writes:\n\n>\n>Back in my youth (ahem) the wiffy and moi purchased a gadget which heated up\n>water from a 12V source.  It was for car use but we thought we'd try it on my\n>RD350B.  It worked OK apart from one slight problem: we had to keep the revs \n>above 7000.  Any lower and the motor would die from lack of electron movement.\n\nOn my LC (RZ to any ex-colonists) I replaced the bolt at the bottom of the barrel\nwith a tap. When I wanted a coffee I could just rev the engine until boiling\nand pour out a cup of hot water.\nI used ethylene glycol as antifreeze rather than methanol as it tastes sweeter.\n\n(-:\n\n         #################################\n   _     #     Roger.Collier@Uk.Sun.COM  #\no_/_\\_o  #                               #\n (O_O)   #     Sun Microsystems,         #\n  \\H/    #     Coventry, England.        #\n   U     #     (44) 203 692255           #\n         #     DoD#226        GSXR1100L  #\n         #################################\n           Keeper of the GSXR1100 list.\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9700, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: An Open Letter to Mr. Clinton\nOrganization: DSI/USCRPAC\nLines: 29\n\nIn article <01050810.vkcsbl@mbeckman.mbeckman.com> mbeckman@mbeckman.com writes:\n\n\n>  As an economist, I'm sure you can see the flaws in this logic. If the (naive)\n>market is flooded with proprietary, but weak, encryption, then truly strong \n>encryption will be unable to compete.\n\nThis is true for the mass market, but not for those who need strong crypto\nand are willing to pay the price. After all, one can buy strong crypto today\nif one is willing to spend enough.\n\nThus the concern is not economic.\n\nThe issue most worth worrying about is that after the system takes hold, the\ngovernment will outlaw other systems, and something voluntary will become\nthe only system available. That is a political, not an economic issue.\n\nAs a separate matter, you may be making an implied advocacy for cheap secure\ncrypto for everyone. It's true that the Clipper chip would probably prevent\nthat except via Clipper, but \"cheap, secure crypto for everyone\" is a\npolitical discussion, not an economic one, and the whole point of Clipper is \nto resolve that political (policy) tension between securing legitimate\ncommunications and tapping the crooks.\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9701, "properties": {"category": "sci.space", "text": "From: wats@scicom.AlphaCDC.COM (Bruce Watson)\nSubject: Re: First Spacewalk\nDistribution: sci\nOrganization: Alpha Science Computer Network, Denver, Co.\nLines: 13\n\nIn article <C5suMG.2rF.1@cs.cmu.edu+ flb@flb.optiplan.fi (\"F.Baube[tm]\") writes:\n+At one time there was speculation that the first spacewalk \n+(Alexei Leonov ?) was a staged fake.\n+\n+Has any evidence to support or contradict this claim emerged ?\n+\n+Was this claim perhaps another fevered Cold War hallucination ?\n\nI, for one, would be an avid reader of a sci.space.ussr.what.really.\nhappened.\n\n-- \nBruce Watson (wats@scicom.alphaCDC.COM) Bulletin 629-49 Item 6700 Extract 75,131\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9702, "properties": {"category": "rec.motorcycles", "text": "From: ramarren@apple.com (Godfrey DiGiorgi)\nSubject: Re: uh, der, whassa deltabox?\nOrganization: Apple Computer\nLines: 15\n\n>Can someone tell me what a deltabox frame is, and what relation that has,\n>if any, to the frame on my Hawk GT?  That way, next time some guy comes up\n>to me in some parking lot and sez \"hey, dude, nice bike, is that a deltabox\n>frame on there?\" I can say something besides \"duh, er, huh?\"\n\nThe Yammie Deltabox and the Hawk frame are conceptually similar\nbut Yammie has a TM on the name. The Hawk is a purer 'twin spar' \nframe design: investment castings at steering head and swing arm\ntied together with aluminum extruded beams. The Yammie solution is\na bit more complex.\n------------------------------------------------------------------\nGodfrey DiGiorgi - ramarren@apple.com  | DoD #0493      AMA#489408\n Rule #1: Never sell a Ducati.         | \"The street finds its own\n Rule #2: Always obey Rule #1.         |  uses for things.\" -WG\n------ Ducati Cinelli Toyota Krups Nikon Sony Apple Telebit ------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9703, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Help with changing Startup logo\nFrom: C..Doelle@p26.f3333.n106.z1.fidonet.org (C. Doelle)\nLines: 23\n\nHello Brad!\n\nMonday April 26 1993 17:24, Brad Smalling wrote to (crosspost 1) All:\n\n BS> For a VGA card these are the correct files but you can't just copy them\n BS> back and expect it to work.  You have to create a new WIN.COM file.  Try\n BS> the command (you will have to worry about what directories each file is in\n BS> since I don't know your setup):\n\n BS> COPY /B WIN.CNF+VGALOGO.LGO+VGALOGO.RLE WIN.COM\n\n BS> (I grabbed this from _Supercharging Windows_ by Judd Robbins--great book)\n BS> This is also how you can put your own logo into the Windows startup\n BS> screen. An RLE file is just a specially compressed BMP file.\n\nBrad,\n    What is the procedure used to 'specially' compress the BMP file?  I would\nlove to use some of my BMP files I have created as a logo screen.  Thanks\n\nChris\n\n\n * Origin: chris.doelle.@f3333.n106.z1.fidonet.org (1:106/3333.26)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9704, "properties": {"category": "sci.med", "text": "From: hahn@csd4.csd.uwm.edu (David James Hahn)\nSubject: Re: RE: HELP ME INJECT...\nArticle-I.D.: uwm.1r82eeINNc81\nReply-To: hahn@csd4.csd.uwm.edu\nOrganization: University of Wisconsin - Milwaukee\nLines: 39\nNNTP-Posting-Host: 129.89.7.4\nOriginator: hahn@csd4.csd.uwm.edu\n\nFrom article <1993Apr22.233001.13436@vax.oxford.ac.uk>, by krishnas@vax.oxford.ac.uk:\n> The best way of self injection is to use the right size needle\n> and choose the correct spot. For Streptomycin, usually given intra\n> muscularly, use a thin needle (23/24 guage) and select a spot on\n> the upper, outer thigh (no major nerves or blood vessels there). \n> Clean the area with antiseptic before injection, and after. Make\n> sure to inject deeply (a different kind of pain is felt when the\n> needle enters the muscle - contrasted to the 'prick' when it \n> pierces the skin).\n> \n> PS: Try to go to a doctor. Self-treatment and self-injection should\n> be avoided as far as possible.\n>  \nThe areas that are least likely to hurt are where you have a little \nfat.  I inject on my legs and gut, and prefer the gut.  I can stick\nit in at a 90 degree angle, and barely feel it.  I'm not fat, just\nhave a little gut.  My legs however, are muscular, and I have to pinch\nto get anything, and then I inject at about a 45 degree angle,and it\nstill hurts.  The rate of absorbtion differs for subcutaneous and  \nmuscular injections however--so if it's a daily thing it would be\nbest not to switch places every day to keep consistencey.  Although\nsome suggest switch legs or sides of the stomach for each shot, to prevent \nirritation.  When you clean the spot off with an alcohol prep, \nwait for it to dry somewhat, or you may get the alcohol in the\npuncture, and of course, that doesn't feel good.  A way to prevent\nirratation is to mark the spot that you injected.  A good way to\ndo this is use a little round bandage and put it over the \nspot.  This helps prevent you from injecting in the same spot,\nand spacing the sites out accuartely (about 1 1/2 \" apart.)\n\nThis is from experience, so I hope it'll help you.  (I have\ndiabetes and have to take an injection every morning.)\n\n\t\t\tLater,\n\t\t\t\tDavid\n-- \nDavid Hahn\nUniversity of Wisconsin : Milwaukee \nhahn@csd4.csd.uwm.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9705, "properties": {"category": "comp.windows.x", "text": "From: thor@surt.atd.ucar.edu (Richard E. Neitzel)\nSubject: XQueryBestCursor semi-broken?\nOrganization: National Center for Atmospheric Research\nLines: 18\n\nSome one asked me recently why they when they used XQueryBestCursor to see\nif they could create of a given size it seemed to imply they could, but the\nserver did not create cursors of that size. Investigation showed that some X\nservers will happily return any size up to the size of the root window, while\nothers return some fixed limit of more reasonable size. The interesting thing\nto me is that the same server binary acts differently on different hardware -\na Sun4 with a cg2 will claim cursors up to root window size are OK, while a\nSun4 with a cg6 will stop at 32x32. So far I've also seen this behavior on\nNCD and Phase-X X terminals and have been told it also occurs on HPs. \nActually, the NCD is even more liberal - sizes much larger then the root\nwinodw are gladly returned as OK. Is XQueryBestCursor semi-broken or is this\nbehavior correct? I'd really like to see a 2000x2000 cursor!\n\n-- \nRichard Neitzel thor@thor.atd.ucar.edu          Torren med sitt skjegg\nNational Center For Atmospheric Research        lokkar borni under sole-vegg\nBox 3000 Boulder, CO 80307-3000\t                Gjo'i med sitt shinn\n303-497-2057                                    jagar borni inn.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9706, "properties": {"category": "soc.religion.christian", "text": "From: caralv@caralv.auto-trol.com (Carol Alvin)\nSubject: Re: The arrogance of Christians\nLines: 72\n\nvbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) writes:\n>In article <Apr.10.05.32.29.1993.14388@athos.rutgers.edu> caralv@caralv.auto-trol.com (Carol Alvin) writes:\n> > ...\n> >\n> >Are all truths also absolutes?\n> >Is all of scripture truths (and therefore absolutes)?\n> >\n> >If the answer to either of these questions is no, then perhaps you can \n> >explain to me how you determine which parts of Scripture are truths, and\n> >which truths are absolutes.  \n> \n> The answer to both questions is yes.\n\nPerhaps we have different definitions of absolute then.  To me,\nan absolute is something that is constant across time, culture,\nsituations, etc.  True in every instance possible.  Do you agree\nwith this definition?  I think you do:\n\n> Similarly, all truth is absolute.  Indeed, a non-absolute truth is a \n> contradiction in terms.  When is something absolute?  When it is always\n> true.  Obviously, if a \"truth\" is not always \"true\" then we have a\n> contradiction in terms.  \n\nA simple example:\n\nIn the New Testament (sorry I don't have a Bible at work, and can't\nprovide a reference), women are instructed to be silent and cover\ntheir heads in church.  Now, this is scripture.  By your definition, \nthis is truth and therefore absolute.  \n\nDo women in your church speak?  Do they cover their heads?  If all \nscripture is absolute truth, it seems to me that women speaking in and \ncoming to church with bare heads should be intolerable to evangelicals.  \nYet, clearly, women do speak in evangelical churches and come with bare \nheads.  (At least this was the case in the evangelical churches I grew \nup in.)\n\nEvangelicals are clearly not taking this particular part of scripture \nto be absolute truth.  (And there are plenty of other examples.)\nCan you reconcile this?\n\n> Many people claim that there are no absolutes in the world.  Such a\n> statement is terribly self-contradictory.  Let me put it to you this\n> way.  If there are no absolutes, shouldn't we conclude that the statement,\n> \"There are no absolutes\" is not absolutely true?  Obviously, we have a\n> contradiction here.\n\nI don't claim that there are *no* absolutes.  I think there are very\nfew, though, and determining absolutes is difficult.\n\n> This is just one of the reasons why Christians defy the world by claiming\n> that there are indeed absolutes in the universe.\n\n> >There is hardly consensus, even in evangelical \n> >Christianity (not to mention the rest of Christianity) regarding \n> >Biblical interpretation.\n> \n> So?  People sometimes disagree about what is true. This does not negate \n> the fact, however, that there are still absolutes in the universe.  \n\nBut you are claiming that all of Scripture is absolute.  How can you\ndetermine absolutes derived from Scripture when you can't agree how\nto interpret the Scripture?  \n\nIt's very difficult to see how you can claim something which is based \non your own *interpretation* is absolute.  Do you deny that your own\nbackground, education, prejudices, etc. come into play when you read the \nBible, and determine how to interpret a passsage?  Do you deny that \nyou in fact interpret?\n\nCarol Alvin\ncaralv@auto-trol.com\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9707, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 21\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, cdcolvin@rahul.net (Christopher D. Colvin) says:\n>\n>I guess the San Jose Mercury news is wrong then,... \n\t\t\t\t      ^^^^^\n>\n\tNo: It is old. You said AMORC *IS*, not *was*... :-)\nNothing personal, OK? Good! :-)\n\n\tMaybe you didn't know that it's over by now. There is no more\npending legal actions from no where, period. So yes, there was a\nsituation and it has been resolved by BOTH parties. As long as humans \nhandle anything, it is subjected to \"breaking\" :-)\n\n\tBTW, Gary L. Stewart has a P.O. Box in TX calling his org ARC:\nAncient Rosae Crucis. I guess he couldn't take the \"MO\" from AMORC :-)\n\n\nTony\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9708, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Re: How to detect use of an illegal cipher?\nOrganization: ClariNet Communications Corp.\nLines: 30\n\nIn article <1qnmnp$db8@sol.TIS.COM> mjr@tis.com (Marcus J Ranum) writes:\n>traffic. That way your traffic looks \"normal\" and perhaps anyone\n>desiring to listen in won't even bother, since they know nobody's\n>going to really trust crypto that has classified internals for\n>important stuff.\n\n\nNice to think, but naive.  The fact is that millions of people today\nare sending highly confidential information over unencoded, easy to\nreceive cellular phones.  They figure the chances of being heard are\nsmall, so they risk it.\n\nAnd 99.9% of people don't understand crypto the way the least of the\nsci.crypt newbies does.   If Clinton tells them it's good crypto,\nthey'll believe him, and send important stuff over it, and be thankful\nthat they're no longer using clear-voice FM cellular phones.\n\nOnly a tiny fraction of people will want more crypto.  Worse, in the\neyes of the government, which swears up and down the algorithim is\nspook-level secure (and it may indeed be) the only reason you could\npossibly want this extra level is to avoid police.\n\nBy using it, you'll attract attention as a likely lawbreaker.\n\n\"Your honour, the suspect suddenly started using another level of\ncryptography and we can't tap his phone calls any more.  He must\nhave something to hide.  Please sign the warrant to search his\nhouse...\"\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9709, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nLines: 16\n\n\tFrom: brad@clarinet.com (Brad Templeton)\n\n\tLet's assume, for the moment, that the system really is secure unless\n\tyou get both halves of the encryption key from the two independent\n\tescrow houses.  Let's say you even trust the escrow houses -- one is\n\tthe ACLU and the other is the EFF.  (And I'm not entirely joking about\n\tthose two names)\n\nI'm really not entirely sure I trust EFF any more to be honest.\n\nAnyway, any organisation can be deeply infiltrated.  Look at CND in Britain\na dozen years ago - one of their top members was an SIS spy who stole their\ncomplete address list.  How hard would it be to get one person to sneak in\nand copy the escrow data to disk?\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9710, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Cold-blooded slaughter of Muslim women and children by Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 91\n\nIn article <1993Apr17.011112.27439@news.columbia.edu> lasner@watsun.cc.columbia.edu (Charles Lasner) writes:\n\n>Hmm.  Maybe I'll go rent Midnight Express tonight.  I haven't seen that \n>scene in awhile; I have to savor the moment all over again.\n\nWell, does it change the fact that during the period of 1914 to 1920, \nthe fascist x-Soviet Armenian Government ordered, incited, assisted \nand participated in the genocide of 2.5 million Muslim people because \nof race, religion and national origin?\n\nAs in the past in Turkiye, and today in Azerbaijan, for utopic and \nidiotic causes the Armenians brought havoc to their neighbors. A \nshort-sighted and misplaced nationalistic fervor with a wrong agenda \nand anachronistic methods the Armenians continue to become pernicious \nfor the region. As usual, they will be treated accordingly by their \nneighbors. Nagorno-Karabag is a mountainous enclave that lies completely \nwithin Azerbaijan with no border or history whatsoever connected to \nx-Soviet Armenia. Besides the geographical aspect, Nagorno-Karabag is \nthe historic homeland and the 'cradle' of the artistic and literary \nheritage of Azerbaijan, which renders the Armenian claims preposterous, \neven lunatic. \n\nAnd we still demand:\n\n1. that the x-Soviet Armenian Government, as the heirs of the Armenian \ndictatorship, recognize the Turkish Genocide;\n\n2. that x-Soviet Armenia return the historic homeland to the Turkish and\nKurdish people;\n\n3. that the x-Soviet Armenian Government make material reparations for their\nheinous and unspeakable crime to the victims of the Turkish Genocide;\n\n4. that all world governments officially recognize the Turkish Genocide \nand Turkish territorial rights and refuse to succumb to all Armenian \npolitical pressure.\n\nThe awareness of the Turkish people of the necessity of solidarity in the\nefforts to pursue the Turkish Cause is seen by the victims of the first \ngenocide of the 20th century as a positive step. \n\nNow what would you do? \n\nSource: 'The Sunday Times,' 1 March 1992 (a British Weekly, written by \n        Thomas Goltz, from Agdam, Azerbaijan.)\n\n    ARMENIAN SOLDIERS MASSACRE HUNDREDS OF FLEEING FAMILIES.\n\n    The spiralling  violence gripping the  outer republics of  the former\nSoviet Union gained new impetus  yesterday with cold-blooded slaughter of\nhundreds of women and children in war-racked Nagorno-Karabakh.\n    Survivors  reported that  Armenian soldiers  shot and  bayoneted more\nthan 450  Azeris, many of  them women and  children, who were  fleeing an\nattack  on their  town. Hundreds,  possibly thousands,  were missing  and\nfeared dead.\n    The attackers  killed most of  the soldiers and  volunteers defending\nthe women  and children.  They then  turned their  guns on  the terrified\nrefugees. The few  survivors later described what  happened:\" That's when\nthe real  slaughter began,\" said  Azer Hajiev,  one of three  soldiers to\nsurvive. \"The  Armenians just shot and  shot. And then they  came in and\nstarted carving up people with their bayonets and knives.\"\n    \" They were shooting, shooting, shooting\", echoed Rasia Aslanova, who\narrived in Agdam with other women and children who made their way through\nArmenian lines. She said her husband, Kayun, and a son-in-law were killed\nin front of her. Her daughter was still missing.\n    One boy who arrived in Agdam had an ear sliced off.\n\n    The survivors  said 2000  others, some of  whom had  fled separately,\nwere still missing in the gruelling terrain; many could perish from their\nwounds or the cold.\n    By late  yesterday, 479 deaths had  been registered at the  morgue in\nAgdam's morgue,  and 29 bodies  had been buried  in the cemetery.  Of the\nseven corpses  I saw awaiting  burial, two  were children and  three were\nwomen, one shot through the chest at point blank range.\n    Agdam hospital was  a scene of carnage and terror.  Doctors said they\nhad 140 patients who escaped slaughter, most with bullet injuries or deep\nstab wounds.\n    Nor were they safe in Agdam. On friday night rockets fell on the city\nwhich  has a  population  of 150,000,  destroying  several buildings  and\nkilling one person.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.457+0000", "event": "documents", "entityId": 9711, "properties": {"category": "rec.sport.hockey", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Goalie mask poll\nArticle-I.D.: hydra.93158\nOrganization: Georgia Institute of Technology\nLines: 31\n\n\n\tHere is an update on the Goalie mask poll...\n\tFirst, since so many people gave me their 3 best, I decided to\ngive 3 pts for their favorite, 2 pts for 2nd, 1 for 3rd. If you e-mailed\na response with only one, I gave it 3 pts. Please feel free to send me\nyour 2 other favorites, if you only sent one before. \n\tAlso, votes are still welcome! Any mask you like will do, as I \nhave received votes for players not in the NHL. Please mention what team\nthey play for, though.\n\tSo here are the up-to-date results so far:\n\nPlayer                 Team              Pts     Votes\n-------------------------------------------------------\n1. Ed Belfour          Chicago            8        4\n   Andy Moog           Boston             8        3\n3. Curtis Joseph       St. Louis          5        2\n4. Brian Hayward       San Jose           4        2\n5. Grant Fuhr          Buffalo            3        1\n   Ron Hextall         Quebec             3        1\n7. Clint Malarchuk     Buffalo            2        1\n   Manon Rheaume       Atlanta (IHL)      2        1\n9. John Casey          Minnesota          1        1\n   Rick Wamsley        Toronto (retired)  1        1\n\n\tThanks to all that voted, and keep 'em coming!\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9712, "properties": {"category": "sci.electronics", "text": "From: mvanhorn@desire.wright.edu (H.I.T. ( Hacker-In-Training ))\nSubject: Re: Need to find out number to a phone\nOrganization:  Wright State University \nLines: 12\n\nSince I have seen various different numbers to dial to get your number read\nback to you by the phone company, could someonepost a list or point me to a\nbook where I could get a list of all the different numbers for the U.S.?\nFailing that, could someone tell me Ohio's?\n\n\n-- \n???????????????????????????????????????????????????????????????????????????????\n?\t451                             ?\tI don't speak for Wright      ?\n?  \tmvanhorn@desire.wright.edu\t?       State, I just give them       ?\n?\tWright State University         ?       huge amounts of money.        ?\n???????????????????????????????????????????????????????????????????????????????\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9713, "properties": {"category": "comp.graphics", "text": "From: ednobles@sacam.OREN.ORTN.EDU (Edward d Nobles)\nSubject: POV .TGA's and SpeedStar 24\nOrganization: Oak Ridge National Laboratory\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 17\n\n\nI finally got a 24 bit viewer for my POVRAY generated .TGA files.\n\nIt was written in C by Sean Malloy and he kindly sent me a copy.  He\nwrote it for the same purpose, to view .TGA files using his SpeedStar 24.\n\nIt ONLY works with the SpeedStar 24 and I cannot send copies since it is\nnot my program.  I believe the author may release a version at a future\ntime when the program is more developed.   He may or may not comment on\nthis, as he pleases.\n\nThanks to all who were helpful.\n\nRegards,\n\nJim Nobles\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9714, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: passman@world.std.com (Shirley L Passman)\nSubject: Help with motherboard w/no docs\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 20\n\nWell, I was told that my last message came through without anything\nin it, so I'll try again.\n\nI have a Leading Edge 386SX 16 with a flaky motherboard and a friend\ngame me one to replace it, but he didn't have any docs for the \nmother board.  It's a CHEERTRON board with Award bios and has a   \nsticker on it that says VI 1   T1 3  T2 3  on it.  I can tell what\nmost of the switches on the blue blocks mean.  except FDC and\nSH, but I have no idea about all the jumpers.  I've replaced hard\ndrives and modems and installed math co-processes, but this is a\nbit out of my league and without the docs, I'm really lost.\n\nIf anyone could give me some help on this, I'd really appreciate\nit.  I don't get on news regularly, so if you can help, please\ne-mail me at passman@world.std.com\n\nThanks.\n\n-- Shirl\n \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9715, "properties": {"category": "comp.windows.x", "text": "From: bshaw@spdc.ti.com (Bob Shaw)\nSubject: question on \"xon\" in X11R5\nArticle-I.D.: bobasun.bshaw.735532995\nOrganization: TI Semiconductor Process and Design Center\nLines: 23\nNntp-Posting-Host: bobasun\n\n\nHi folks\n\nSay, I'm new to R5 and have one quick question.\n\nIn using xon ( xon  <machine_name> )  , I notice that it\nalways comes up with a very small window .  I'm pretty\nsure its the default font.  My xterms all work normally.\nIs xon supposed to read your .Xresources for a font size ?\n\nxrdb -q appears to show the right stuff.\n\nI can use xon with arguments such as  xterm -fn 10x20    etc\nand everything is correct.  Of course you could always do a \nsimple script to do this , but I have a feeling I'm missing\nsomething simple here.\n\nComments / suggestions appreciated.\n\nThanks in advance\n\nBob\nbshaw@spdc.ti.com    mm\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9716, "properties": {"category": "comp.graphics", "text": "From: morley@suncad.camosun.bc.ca (Mark Morley)\nSubject: Medical Images via Gopher?\nNntp-Posting-Host: suncad.camosun.bc.ca\nOrganization: Camosun College, Victoria B.C, Canada\nX-Newsreader: Tin 1.1 PL4\nLines: 11\n\nA few days back someone posted info on a gopher site where you could\nsearch for medical graphics, etc.  Could someone please repost or mail me\na copy?  I'd greatly appreciate it.  Thanks!\n\nMark\n\n===================================================================\n Mark Morley, UNIX/SUN Manager           NET: morley@camosun.bc.ca\n Camosun College - Interurban Campus     TEL: (604) 370-4601\n 4461 Interurban Road  Room 143-Tech     FAX: (604) 370-3660\n Victoria, B.C.  Canada   V8X 3X1\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9717, "properties": {"category": "comp.windows.x", "text": "From: mccoy@gothamcity.jsc.nasa.gov (Daniel McCoy)\nSubject: R4 Version of xrecplay\nReply-To: mccoy@gothamcity.jsc.nasa.gov\nOrganization: I-NET Inc.\nLines: 14\n\nI have and use xrecplay for X11R5.  Does one exist for X11R4???\n\nI have tried to contact one of the developers, Eric Swildens, at\ness@hal.com but he is no longer there and has no forwarding email\naddress.  Archie is no help either.\n\nAny help would be appreciated.  Thanks,\n\n---\nDaniel J. McCoy           |=> SPACE  <=|                   I-NET, Inc.\nNASA Mail Code PT4        |=> IS     <=|             TEL: 713-483-0950\nNASA/Johnson Space Center |=> OUR    <=|             FAX: 713-244-5698\nHouston, Texas 77058      |=> FUTURE <=| mccoy@gothamcity.jsc.nasa.gov\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9718, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Ohio House Bill 278 (Otto Beatty's military weapons ban)\nOrganization: Ideology Busters, Inc.\nDistribution: usa\nKeywords: Otto Beatty, military weapons, registration, sales ban\nLines: 486\n\n[Note, Ohio legislation unlike Federal legislation, shows the entire\nlaw as it would be changed by the legislation.  These parts are in\nALL CAPITALS, the rest (i.e., current law is in regular type)].\n\nAS INTRODUCED\n \n120TH GENERAL ASEMBLY \n \nREGULAR SESSION                       H. B. NO. 278\n \n1993-1994\n \nREPRESENATIVE BEATTY\n \nA BILL\n\nTo amend sections2923.11, 2923.17,and 2923.20 and\nto enact section 2923.181 of the Revised Code\nto expand the defintion of dangerous ordnance to\ninclude military weapons that do not use bolt \naction, to increase the penalty for a violation\nof the prohibition against possession of\ndangerous ordnance, to prohibit any person from\nacquiring a military weapon on or after the act's\neffective date, to require the licensure of \nmilitary weapons acquired for aproper purpose\nprior to the act's effective dte, to prohibit a\nperson from importing, manufacturing, or selling\na military weapon, and to declare an emergency.\n\nBE IT ENACTED BY THE GENERAL ASSEMBLY OF THE STATE OF OHIO:\n\nSection 1. That sections 2923.11, 2923.17 and 2923.20 be\n\namended and section 2923.181 of the Revised Code be enacted to \n\nread as follows:\n\n     Sec.  2923.11.  As used in section 2923.11 to 2923.24 of\nthe Revised Code:\n     (A) \"deadly weapon\" means any instrument, device, or thing\ncapable of inflicting death, and designed or specially adapted\nfor use as a weapon, or possessed, carried, or used as a weapon.\n     (B)(1)  \"firearm\" means any deadly weapon capable of\nexpelling or propelling one or more projectiles by the action of\nan explosive or combustible propellant.  \"firarms\" includes an\nunloaded firearm, and any firearm which is inoperable but which\ncan readily be rendered operable.\n     (2) When determining whether a firearm is capable of\nexpelling or propelling one or more projectiles by the action of\nan explosive or combustible propellant, the trier of fact may\nrely upon circumstancial evidence, including, but not limited to,\nthe representations and actions of the individual exercising\ncontrol over the firearm.\n     (C) \"Handgun\" means any firearm designed to be fired while \nheld in one hand.\n     (D) \"Semi-automatic firearm\" means any firearm designed or\nspecially adapted to fire a single cartridge and automatically\nchamber a suceeding cartridge ready to fire, with a single\nfunction of the trigger.\n     (E) \"Automatic firearm\" means any firearm designed or\nspecially adapted to fire a succession of cartridges with a \nsingle function of the trigger.  \"Automatic firearm\" also means\nany semi-automatic firearm designed or specially adapted to fire\nmore than thirty-one cartridges without reloading, other than a\nfirearm chambering only .22 caliber short, long, or long-rifle\ncartridges.\n     (F) \"Sawed-off firearm\" means a shotgun with a barrel less\nthan eighteen inches long, or a rifle with a barrel less than\nsixteen inches long, or a shotgun or rifle less than twenty-six\ninches long overall.\n     (G)  \"Zip-gun\" means any of the following:\n     (1)  Any firearm of crude and extemporized manufacture;\n     (2)  Any device, including without limitation a starter's\npistol, not designed as a firearm, but which is specially adapted\nfor use as a firearm;\n     (3)  Any industrial tool, signalling device, or safety\ndevice, not designed as a firearm, but which as designed is\ncapable of use as such A FIREARM, when possessed, carried, or\nused as a firearm.\n     (H)  \"Explosive device\" means any device designed or\nspecially adapted to cause physical harm to persons or property\nby means of an explosion, and consisting of an explosive\nsubstance or agency and a means to detonate it.  \"Explosive\ndevice\" includes without limitation any bomb, any explosive\ndemolition device, any blasting cap or detonator containing an\nexplosive charge, and any pressure vessel which has been\nknowingly tampered with or arranged so as to explode.\n     (I)  \"Incendiary device\" means any firebomb, and any device\ndesigned or specially adapted to cause physical harm to persons\nor property by means of fire, and consisting of an incendiary\nsubstance or agency and a means to ignite it.\n     (J)  \"Ballistic knife\" means a knife with a detachable\nblade that is propelled by a spring-operated mechanism.\n     (K)  \"Dangerous ordinance\" means any of the following,\nexcept as provided in division (L) of this section:\n     (1)  Any automatic or sawed-off firearms. zip-gun, or\nballistic knife;\n     (2)  Any explosive device or incendiary device;\n     (3)  Nitroglycerin, nitrocellulose, nitrostarch, PETN,\ncyclonite, TNT, picric acid, and other high explosives; amatol, \ntritonal, tetrytol, pentolite, pecretol, cyclotol, and other high\nexplosive compositions; plastic explosives; dynamite, blasting\ngelatin, gelatin dynamite, sensitized ammonium nitrate, liquid-\noxygen blasting explosives, blasting powder, and other blasting\nagents; and any other explosive substance having sufficient\nbrisance or power to be particularly suitable for use as a\nmilitary explosive, or for use in mining, quarrying, excavating,\nor demolitions;\n     (4)  Any firearm, rocket launcher, mortar, artillery piece\ngrenade, mine, bomb, torpedo, or similar weapon, designed and\nmanufactured for military purposes, and the ammunition for that\nweapon;\n     (5)  Any firearm muffler or silencer;\n     (6)  ANY MILITARY WEAPON;\n     (7)  ANY DETACHABLE MAGAZINE, MAGAZINE, DRUM, BELT, FEED \nSTRIP, OR SIMILAR DEVICE THAT HAS A CAPACITY OF, OR THAT READILY\nCAN BE RESTORED OR CONVERTED TO ACCEPT, MORE THAN FIFTEEN ROUNDS \nOF AMMUNITION;   \n     (8)  Any combination of parts that is intended by the owner\nfor use in converting any firearm or other device into a \ndangerous ordinance.\n     (L)  \"Dangerous ordnance\" does not include any of the\nfollowing:\n     (1)   Any firearm, including a military weapon and the\nammunition for that weapon, and regardless of its actual \nage, which employs a percussion cap or other obsolete ignition \nsystem or which is designed and safe for use only with black\npowder, and\n     (2)  Any pistol, rifle, or shotgun, designed or suitable\nfor sporting purposes, UNLESS THE FIREARM IS EITHER OF THE\nFOLLOWING;\n     (a)  A military weapon as issued or as modified, and the\nammunition for that weapon;\n     (b)  AN automatic or sawed-off firearm.\n     (3)  Any cannon or other artilery piece which,\nregardless of its actual age, is of a type in accepted use prior \nto 1887, has no mechanical, hydraulic, pneumatic, or other system\nfor absorbing recoil and returning the tube into battery without\ndisplacing the carriage, and is designed and safe for use only\nwith black powder;\n     (4)  Black powder, priming quills, and percussion caps\npossessed and lawfully used to fire a cannon of a type defined in\ndivision (L) (3) of this section during displays, celebrations,\norganized matches or shoots, and target practice, and smokeless\nand black powder, primers, and percussion caps possed and\nlawfully used as a propellant or ignition device in small-arms or\nsmall-arms ammunition;\n     (5)  Dangerous ordinance which is inoperable or inert and\ncannot readily be rendered operable or activated, and which is\nkept as a trophy, souvenir, curio, or museum piece.\n     (6)  Any device which is expressly excepted from the\ndefinition of a destructive device pursuant to the \"Gun Control\nAct of 1968,\" 82 Stat. 1213, 18 U.S.C. 921(a)(4), as amended, and\nregulations issued under that act.\n     (M)  \"MILITARY WEAPON' MEANS ANY OF THE FOLLOWING;\n     (1)  ANY FIREARM THAT ORIGINALLY WAS MANUFACTURED FOR \nMILITARY USE, OR A COPY OF ANY SUCH FIREARM, IF THE FIREARM IS\nNOT A BOLT ACTION FIREARM;\n     (2)  ANY MODEL OF ANY OF THE FOLLOWING FIREARMS THAT IS A\nSEMI-AUTOMATIC FIREARM AND IS A RIFLE OR ANY MODEL OF ANY COPY OF\nANY OF THE FOLLOWING FIREARMS THAT IS A SEMI-AUTOMATIC FIREARM\nAND IS A RIFLE;\n     (a)  ARMALITE AR-180;\n     (b)  AUTO-ORDNANCE THOMPSON MODELS 1927A1 AND M-1;\n     (c)  AVTOMAT KALASHNIKOV;\n     (d)  POLY TECH AK-47S;\n     (e)  CHINA SPORTS AK-47 BULLPUP;\n     (f)  MITCHELL AK-47 AND M-76\n     (g)  BARRETT LIGHT-FIFTY MODEL 82A1;\n     (h)  BARETTA AR-70;\n     (i)  BUSHMASTER AUTO RIFLE;\n     (j)  CALICO M900 AND M-100\n     (k)  COLT AR-15\n     (l)  COMMANDO ARMS CARBINE, MARK 111, MARK 45, AND MARK 9;\n     (m)  UNIVERSAL 5000 CARBINE, ENFORCER;\n     (n)  AMERICAN ARMS ARM-1 AND AKY 39;\n     (o)  DAEWOO MAX-1 AND MAX-2;\n     (p)  FABRIQUE NATIONALE FN/FAL, FN/LAR. AND FN/FNC;\n     (q)  FAMAS MAS 223;\n     (r)  FEATHER AT-9;\n     (s)  FEDERAL KC-900 AND XC-450\n     (t)  GALIL AR AND ARM;\n     (u)  GONCZ HIGH-TECH CARBINE;\n     (v)  HECKLER AND KOCH HK-91, HK-93, HK-94, AND PSG-1;\n     (w)  MANDALL TAC-1 CARBINE\n     (x)  RUGER MINI 14/SF FOLDING STOCK MODEL;\n     (y)  SIG 57 AMT AND 500 SERIES;\n     (z)  SPRINGFIELD ARMORY SAR-48, G-3, BM-59 ALPINE, AND M1A\n \nCARBINE;\n     (aa)  STERLING MK-6 AND MARK 7;\n     (bb)  STEYR AUG;\n     (cc)  UZI CARBINE AND MINI-CARBINE;\n     (dd)  VALMET M-62S, M-76, M-78, AND M82 BULLPUP CARBINE;\n     (ee)  WEAVER ARMS NIGHTHAWK;\n     (ff)  MILITARY M14 AND MILITARY M1 CARBINE .30;\n     (gg)  SPRINGFIELD ARMORY M1A ASSAULT;\n     (hh)  THOMPSON 27A-5 WITH DRUM MAGAZINE;\n     (ii)  PLAINFIELD COMMANDO UNIVERSE 5000 CARBINE;\n     (jj)  COBRAY M-11 WITH OR WITHOUT SILENCER;\n     (kk)  SPECTRE AUTO CARBINE;\n     (ll)  SWD    COBRAY;\n     (mm)  ARMI JAGER AP-74 AND AP-74 COMMANDO;\n     (nn)  ARMSCORP OF AMERICA ISRAELI FN-FAL;\n     (oo)  CLAYCO SKS CARBINE;  \n     (pp)  DRAGUNOV SNIPER;\n     (qq)  EMF AP-74;\n     (rr)  IVER JOHNSON PM30 P PARATROOPER;\n     (ss)  NORINCO SKS;\n     (tt)  PARTISAN AVENGER;\n     (uu)  SIGARMS SG 550 SP AND SG 551 SP;\n     (vv)  SQUIRES BINGHAM M 16;\n     (ww)  WILKINSON \"TERRY\" CARBINE.\n\n     (3)  ANY MODEL OF ANY OF THE FOLLOWING FIREARMS THAT IS A\nSEMI-AUTOMATIC FIREARM AND IS A PISTOL OR ANY MODEL OF ANY COPY\nOF ANY OF THE FOLLOWING FIREARMS THAT IS A SEMI-AUTOMATIC FIREARM\nAND IS A PISTOL:\n\n     (a)  BUSHMASTER AUTO PISTOL;\n     (b)  CALICO 100-P AUTO PISTOL;\n     (c)  EBCIN NJ-IV, MP-9, AND MP-45;\n     (d)  FEATHER MINI-AT;\n     (e)  GONCZ HIGH TECH PISTOL'\n     (f)  HOLMES MP-83 AND MP-22;\n     (g)  INTRATEC TEC-9 AND SCORPION .22;\n     (h)  IVER JOHNSON ENFORCER;\n     (i)  INGRAM MAC-10 AND MAC-11;\n     (j)  MITCHELL ARMS SPECTRE AUTO;\n     (k)  SCARAB SKORPION;\n     (l)  STERLING MK-7;\n     (m)  UZI PISTOL;\n     (n)  UNIVERSAL ENFORCER;\n     (o)  WILKINSON \"LINDA\" AUTO PISTOL.\n \n     (4)  ANY MODEL OF ANY OF THE FOLLOWING FIREARMS THAT IS A\nSEMI-AUTOMATIC FIREARM AND IS A SHOTGUN OR ANY MODEL OF ANY COPY\nOF ANY OF THE FOLLOWING FIREARMS THAT IS A SEMI-AUTOMATIC FIREARM\nAND IS A SHOTGUN:\n \n     (a)  FRANCHI SPAS-12 AND LAW-12;\n     (b)  STRIKER 12 AND STREET SWEEPER;\n     (c)  BENELLI M1 SUPER 90;\n     (d)  MOSSBERG 500 BULLPUP;\n     (e)  USAS-12 AUTO SHOTGUN.\n \n     Sec. 2923.17.  (A)(1) No person shall knowingly acquire,\nhave, OR carry any dangerous ordnance.\n \n     (2)  NO PERSON SHALL KNOWINGLY USE ANY DANGEROUS ORDNANCE.\n     (B)  This section does not apply to ANY OF THE FOLLOWING:\n     (1)  Officers, agents, or employees of this or any other\nstate or the United States, members of the armed forces of the\nUnited States or the organized militia of this or any other\nstate, and law enforcement officers, to the extent that any such\nperson is authorized to acquire, have, carry, or use dangerous\nordnance and is acting within the scope of his duties;\n     (2)  Importers, manufacturers, dealers, and users of\nexplosives, having a license or user permit issued and in effect\npursuant to the \"Organized Crime Control Act of 1970,\" 84 Stat.\n952, 18 U.S.C. 843, and any amendments or additions TO or\nreenactments OF THAT ACT, with respect to explosives and\nexplosive devices lawfully acquired, possessed, carried, or used\nunder the laws of this state and applicable federal law;\n     (3)  Importers, manufactuers, and dealers having a license\nto deal in destructive devices or their ammunition, issued and in\neffect pursuant to the \"Gun Control Act of 1968,\" 82 Stat. 1213.\n18 U.S.C. 923 and any amendments or additions TO or\nreenactments OF THAT ACT, with respect to dangerous\nordnance lawfully acquired, possessed, carried, or used under the\nlaws of this state and applicable federal law;\n     (4)  Persons to whom surplus ordnance has been sold,\nloaned, or given by the secretary of the army pursuant to 70A\nStat. 62 and 263, 10 U.S.C. 4684, 4685, 4686, and any\namendments or additions TO or reenactments OF THAT ACT, with\nrespect to dangerous ordnance when lawfully possessed and used\nfor the purpose specified in THAT section;\n     (5)  Owners of dangerous ordnance registered in the\nnational firearms registration and transfer record pursuant to\nthe act of October 22, 1968, 82 Stat.1229, 26 U.S.C. 5841, and\nany amendments or additions TO or reenactments OF, and\nregulations issued UNDER THE ACT.\n     (6)  Carriers, warehousemen, and others engaged in the\nbusiness of transporting or storing goods for hire, with respect\nto dangerous ordnance lawfully transported or stored in the usual\ncourse of their business and in compliance with the laws of this\nstate and applicable federal law;\n     (7)  The holders of a license or temporary permit issued\nand in effect pursuant to section 2923.18 of the Revised Code, \nwith respect to dangerous ordnance lawfully acquired, possessed,\ncarried, or used for the purposes and in the manner specified in\nTHE license or permit.\n     (C)  DIVISION (A)(1) OF THIS SECTION DOES NOT APPLY TO THE\nACQUISITION, HAVING, OR CARRYING OF DANGEROUS ORDNANCE THAT IS A\nMILITARY WEAPON IF BOTH OF THE FOLLOWING APPLY:\n     (1)  THE PERSON WHO ACQUIRES, HAS, OR CARRIES THE DANGEROUS\nORDNANCE IN QUESTION ACQUIRED IT BEFORE THE EFFECTIVE DATE OF\nTHIS AMENDMENT AS A COLLECTOR'S ITEM OR FOR A LEGITIMATE\nRESEARCH, SCIENTIFIC, EDUCATIONAL, INDUSTRIAL, OR OTHER PROPER\nPURPOSE;\n     (2)  NO LATER THAN THE CLOSE OF BUSINESS ON THE SEVENTH DAY\nAFTER THE EFFECTIVE DATE OF THIS AMENDMENT, THE PERSON WHO\nACQUIRED THE DANGEROUS ORDNANCE IN QUESTION IN ACCORDANCE WITH\nDIVISION (C)(1) OF THIS SECTION SUBMITTED AN APPLICATION PURSUANT\nTO SECTION 2923.181 OF THE REVISED CODE FOR A LICENSE TO HAVE AND\nCARRY IT AND THE APPLICATION HAS NOT BEEN DENIED OR A VALID\nLICENSE HAS BEEN ISSUED TO THE PERSON.\n     (D)  DIVISIONS (A)(1) AND (2) OF THIS SECTION DO NOT APPLY \nTO THE ACQUISITION, HAVING, CARRYING, OR USING OF ANY DANGEROUS\nORDNANCE DESCRIBED IN DIVISION (k)(7) OF SECTION 2923.11 OF THE\nREVISED CODE THAT WAS ACQUIRED PRIOR TO THE EFFECTIVE DATE OF\nTHIS AMENDMENT.\n     (E)  Whoever violates this section is quilty of unlawful\npossession of dangerous ordnance, a AN AGGRAVATED felony of the\nFIRST degree.\n     Sec. 2923.181.  (A)  ANY PERSON WHO ACQUIRED A MILITARY \nWEAPON BEFORE THE EFFECTIVE DATE OF THIS SECTION SHALL FILE A\nWRITTEN APPLICATION FOR A LICENSE TO HAVE AND CARRY THE MILITARY\nWEAPON WITH THE SHERIFF OF THE COUNTY OR SAFETY DIRECTOR OR\nPOLICE CHIEF OF THE MUNICIPAL CORPORATION WHERE THE APPLICANT\nRESIDES OR HAS HIS PRINCIPAL PLACE OF BUSINESS.  THE APPLICATION\nSHALL BE FILED NO LATER THAN THE CLOSE OF BUSINESS ON THE SEVENTH\nDAY AFTER THE EFFECTIVE DATE OF THIS SECTION AND SHALL BE\nACCOMPANIED BY A FILING FEE OF FIFTY DOLLARS.  THE PERSON SHALL\nFILE A SEPARATE APPLICATION AND PAY A SEPARATE FILING FEE FOR\nEACH MILITARY WEAPON THAT HE HAS OR INTENDS TO CARRY.  THE\nAPPLICATION SHALL CONTAIN ALL OF THE FOLLOWING INFORMATION:\n     (1)  THE NAME, AGE, ADDRESS, OCCUPATION, AND BUSINESS\nADDRESS OF THE APPLICANT, IF THE APPLICANT IS A NATURAL PERSON,\nOR THE NAME, ADDRESS, AND PRINCIPAL PLACE OF BUSINESS OF THE\nAPPLICANT, IF THE APPLICANT IS A CORPORATION;\n     (2)   A DESCRIPTION OF THE MILITARY WEAPON FOR WHICH A\nLICENSE IS REQUESTED, INCLUDING THE SERIAL NUMBER AND ALL\nIDENTIFICATION MARKS;\n     (3)  A STATEMENT OF THE PURPOSE FOR WHICH THE MILITARY\nWEAPON WAS ACQUIRED AND FOR WHICH IT IS TO BE POSSESSED, CARRIED,\nOR USED;\n     (4)  ANY OTHER INFORMATION THAT THE ISSUING AUTHORITY MAY\nREQUIRE IN GIVING EFFECT TO THIS SECTION;\n     (5)  THE OATH OF THE APPLICANT THAT THE INFORMATION ON THE\nAPPLICATION IS TRUE.\n     (B)(1)  NO LATER THAN THE CLOSE OF BUSINESS ON THE\nFOURTEENTH DAY AFTER AN APPLICATION FOR A LICENSE TO HAVE AND\nCARRY A MILITARY WEAPON HAS BEEN FILED UNDER DIVISION (A) OF THIS\nSECTION, THE ISSUING AUTHORITY SHALL EITHER APPROVE THE\nAPPLICATION AND ISSUE A LICENSE TO THE APPLICANT OR DENY THE\nAPPLICATION AND SEND A LETTER OF DENIAL BY ORDINARY MAIL TO THE\nAPPLICANT.  AFTER CONDUCTING ANY NECESSARY INVESTIGATION, THE\nISSUING AUTHORITY SHALL ISSUE A LICENSE TO AN APPLICANT WHOM IT\nDETERMINES SATISFIES THE FOLLOWING CRITERIA:\n     (a)  THE APPLICANT IS TWENTY-ONE YEARS OF AGE OR OLDER, IF\nTHE APPLICANT IS A NATURAL PERSON;\n     (b)  IT APPEARS THAT THE APPLICANT WILL POSSESS AND CARRY\nTHE MILITARY WEAPON AS A COLLECTOR'S ITEM OR FOR A LEGITIMATE,\nSCIENTIFIC, EDUCATIONAL, INDUSTRIAL, OR OTHER PROPER PURPOSE;\n     (c)  IT APPEARS THAT THE APPLICANT HAS SUFFICIENT\nCOMPETENCE TO HAVE AND CARRY THE MILITARY WEAPON AND THAT PROPER\nPRECAUTIONS WILL BE TAKEN TO ENSURE THE SECURITY OF THE MILITARY\nWEAPON AND THE SAFETY OF PERSONS AND PROPERTY;\n     (d)  THE APPLICANT OTHERSWISE IS NOT PROHIBITED BY LAW FROM\nHAVING OR CARRYING DANGEROUS ORDNANCE.\n     (2)  A LICENSE ISSUED PURSUANT TO DIVISION (B)(1) OF THIS\nSECTION SHALL BE VALID FOR ONE YEAR AFTER THE DATE OF ITS\nISSUANCE.  THE LICENSE SHALL BE RENEWED PURSUANT TO DIVISION   \n(C) OF THIS SECTION.\n     (C)(1)  EXCEPT AS PROVIDED IN DIVISION (C)(3) OF THIS\nSECTION, ANY PERSON WHO IS ISSUED A LICENSE UNDER DIVISION (B)(1)\nOF THIS SECTION SHALL RENEW THE LICENSE BY FILING AN APPLICATION\nFOR RENEWAL BY REGULAR MAIL WITH THE SHERIFF OF THE COUNTY OR THE\nSAFETY DIRECTOR OR POLICE CHIEF OF THE MUNICIPAL CORPORATION WHO\nWAS THE ISSUING AUTHORITY OF THE LICENSE.  AN APPLICATION FOR\nRENEWAL SHALL BE FILED ANNUALLY NO LATER THAN ONE YEAR AFTER THE\nDATE ON WHICH THE LICENSE WAS ISSUED OR LAST RENEWED.\n     (2)  EACH SHERIFF AND EACH SAFETY DIRECTOR AND PEACE OFFICER\nOF A MUNICIPAL CORPORATION SHALL MAKE AVAILABLE APPLICATIONS FOR\nTHE RENEWAL OF A LICENSE ISSUED UNDER DIVISION (B)(1) OF THIS\nSECTION.  IN THE APPLICATION THE APPLICANT, UNDER OATH, SHALL\nUPDATE THE INFORMATION SUBMITTED IN THE PREVIOUS APPLICATION FOR\nA LICENSE OR THE RENEWAL OF A LICENSE.\n     THE APPLICATION FOR THE RENEWAL OF A LICENSE SHALL BE\nACCOMPANIED BY A FEE OF FIVE DOLLARS.  THE APPLICANT SHALL FILE A\nSEPERATE APPLICATION FOR RENEWAL AND PAY A SEPERATE RENEWAL FEE\nFOR EACH MILITARY WEAPON THAT HE INTENDS TO CONTINUE TO HAVE AND\nCARRY.\n     (3)  A PERSON WHO HAS CHANGED HIS RESIDENCE OR PRINCIPAL\nPLACE OF BUSINESS TO A LOCATION OUTSIDE OF THE JURISDICTION OF\nTHE ISSUING AUTHORITY SUBSEQUENT TO THE ISSUANCE OR RENEWAL OF A\nLICENSE UNDER THIS SECTION SHALL RENEW HIS LICENSE BY FILING AN\nAPPLICATION IN THE MANNER PRESCRIBED BY DIVISION (A) OF THIS\nSECTION WITH THE SHERIFF OF THE COUNTY OR THE SAFETY DIRECTOR OR\nPOLICE CHIEF OF THE MUNICIPAL CORPORATION WHERE HE THEN RESIDES\nOR HAS HIS PRINCIPAL PLACE OF BUSINESS.  WHEN MAKING AN\nAPPLICATION TO RENEW A LICENSE AFTER A CHANGE IN RESIDENCE OR\nPLACE OF BUSINESS, THE APPLICANT SHALL GIVE NOTICE OF THE CHANGE\nOF ADDRESS BY REGULAR MAIL TO THE ORIGINAL ISSUING AUTHORITY FOR\nTHE LICENSE AND THE STATE FIRE MARSHALL ON NOTIFICATION FORMS\nPRESCRIBED BY THE SHERIFF, SAFETY DIRECTOR, OR POLICE CHIEF FROM\nWHOM HE SEEKS RENEWAL.\n     (D)  A LICENSE TO HAVE AND CARRY A MILITARY WEAPON SHALL\nIDENTIFY THE PERSON TO WHOM IT IS ISSUED, IDENTIFY THE MILITARY\nWEAPON FOR WHICH IT IS ISSUED, STATE THE PURPOSE IDENTIFIED IN\nDIVISION (B)(1)(b) OF THIS SECTION FOR WHICH THE MILITARY WEAPON\nWILL BE POSSESSED AND CARRIED, STATE ITS EXPIRATION DATE, AND\nLIST ALL RESTRICTIONS ON THE HAVING OR CARRYING OF THE MILITARY\nWEAPON AS PRESCRIBED BY THE LAWS OF THIS STATE AND APPLICABLE\nFEDERAL LAW.\n     (E)  ANY PERSON WHO IS ISSUED A LICENSE TO HAVE AND CARRY A \nMILITARY WEAPON UNDER THIS SECTION AND WHO CHANGES HIS ADDRESS\nSHALL NOTIFY THE ISSUING AUTHORITY OF THE CHANGE OF HIS ADDRESS\nNO LATER THAN NINETY DAYS AFTER THE CHANGE HAS OCCURRED.\n     (F)  THE ISSUING AUTHORITY SHALL FORWARD TO THE STATE FIRE\nMARSHALL A COPY OF EACH LICENSE ISSUED OR RENEWED UNDER THIS\nSECTION.  THE STATE FIRE MARSHALL SHALL KEEP A PERMANENT FILE OF\nALL LICENSES ISSUED OR RENEWED UNDER THIS SECTION.\n     (G)  THE ISSUING AUTHORITY SHALL CAUSE EACH APPLICATION FEE\nOF FIFTY DOLLARS, FILED UNDER DIVISION (A) OF THIS SECTION, TO BE\nDEPOSITED IN THE GENERAL FUND OF THE COUNTY OR MUNCIPAL\nCORPORATION SERVED BY THE ISSUING AUTHORITY.  THE ISSUING\nAUTHORITY SHALL CAUSE TWO DOLLARS AND FIFTY CENTS OF EACH RENEWAL\nFEE, FILED UNDER DIVISION (C) OF THIS SECTION, TO BE DEPOSITED IN\nTHE GENERAL FUND OF THE COUNTY OR MUNICIPAL CORPORATION SERVED BY\nTHE ISSUING AUTHORITY AND SHALL SEND TWO DOLLARS AND FIFTY CENTS\nOF EACH RENEWAL FEE TO THE TREASURER OF STATE FOR DEPOSIT IN THE\nSTATE TREASURY TO THE CREDIT OF THE GENERAL REVENUE FUND.\n     (H)  WHOEVER VIOLATES DIVISION (A) OF THIS SECTION IS\nGUILTY OF FAILING TO APPLY FOR THE LICENSURE OF A MILITARY\nWEAPON, A FELONY OF THE FOURTH DEGREE.  WHOEVER VIOLATES DIVISION\n(C) OF THIS SECTION IS GUILTY OF FAILING TO APPLY FOR RENEWAL OF\nA LICENSE FOR A MILITARY WEAPON, A MISDEMEANOR OF THE FIRST\nDEGREE.\n     (I)  A MILITARY WEAPON THAT IS NOT LICENSED AS REQUIRED BY\nTHIS SECTION IS CONTRABAND, AS DEFINED IN SECTION 2901.01 OF THE\nREVISED CODE AND IS SUBJECT TO FORFEITURE UNDER SECTION 2933.43\nOF THE  REVISED CODE.\n     SEC. 2933.20.  (A)  No person shall DO ANY OF THE\nFOLLOWING:\n     (1)  IMPORT, MANUFACTURE, POSSESS FOR SALE, SELL, OR\nFURNISH TO ANY PERSON ANY MILITARY WEAPON;\n     (2)  Recklessly sell, lend, give, or furnish any firearm to\nany person prohibited by section 2923.13 or 2923.15 of the\nRevised Code from acquiring or using any firearm, or recklessly\nsell, lend, give, or furnish any dangerous ordnance to any person\nprohibited by section 2923.13, 2923.15, or 2923.17 of the Revised\nCode from acquiring or using any dangerous ordnance;\n     (3)  Possess any firearm or dangerous ordnance with\npurpose to dispose of it in violation of division (A) of this\nsection;\n     (4)  Manufacture, possess for sale, sell, or furnish to\nany person other than a law enforcement agency for authorized use\nin police work, any brass knuckles, cestus, billy, blackjack,\nsandbag, switchblade knife, springblade knife, gravity knife, or\nsimilar weapon;\n     (5)  When transferring any dangerous ordnance to\nanother, negligently fail to require the transferes to exhibit\nANY identification, license, or permit showing him to be\nauthorized to acquire dangerous ordnance pursuant to section\n2923.17 of the Revised Code, or negligently fail to take a\ncomplete record of the transaction and forthwith forward a copy\nof THE record to the sheriff of the county or safety\ndirector or police chief of the municipality where the\ntransaction takes place;\n     (6)  Knowingly fail to report to law enforcement\nauthorities forthwith the loss or theft of any firearm or\ndangerous ordnance in such person's possession or under his\ncontrol.\n     (b)  Whoever violates this section is quilty of unlawful\ntransactions in weapons.  Violation of division (A)(1) OF THIS\nSECTION IS AN AGGRAVATED FELONY OF THE FIRST DEGREE.  VIOLATION\nOF DIVISION (A)(2) OR (3) Oof this section is a felony of the\nthird degree.  Violation of division (A) (4) OR (5) of this\nsection is a misdemeanor of the second degree.  Violation of\ndivision (6) of this section is a midemeanor of the fourth\ndegree.\n     Section 2.  That existing section 2923.11, 2923.17 and\n2923.20 of the Revised Code are hereby repealed.\n     Section 3.  This act is hereby declared to be an emergency\nmeasure necessary for the immediate preservation of the public\npeace, health, and safety.  The reason for this necessity is that\nwith immediate action, this act will prohibit the continued\npurchase, possession, and use of military weapons and as a result\nwill ameliorate a substantial threat of death and injury to the\npublic caused by the misuse of improper use of these weapons.\nTherefore, this act shall go into immediate effect.\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9719, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gmich@is.morgan.com (George Michaels)\nSubject: NTSC and the Mac\nNntp-Posting-Host: idt114\nOrganization: Morgan Stanley & Company\nDistribution: comp\nLines: 21\n\n\nA question in general about displaying NTSC through a Mac.\n\nIf I understand correctly, the Video Spigot can display NTSC\nin a small window as well as capture the data in Quicktime\nformat.\n\nHowever, if I want to use a larger window, what are my options?\nPerhaps I misunderstood the Video Spigot review...  \n\nAlso, I am not interested in Quicktime.  I would merely like to\nuse my Mac as a television from time to time.  I have a nice\nSony 1430 monitor, and I would like to use it as a second TV\nwhen my wife is watching sitcoms on our regular TV.  \n\nPerhaps some of the video cards for the Mac accept NTSC input?\nI have a IIsi, and I am willing to buy a NuBus adapter.\n\nThanks in advance for any help,\n\nGeorge Micahels\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9720, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: JMARTTILA@FINABO.ABO.FI (Fast-Eddie Felson)\nSubject: Adaptec 1542A problem\nOrganization: Turku School of Economics\nX-News-Reader: VMS NEWS 1.24\nLines: 29\n\nHello\n\nI have recently suffered from various problems concerning\nan Adaptec 1542A controller.\n\nProblem 1:\nFloppy disk drive doesn't work. There's apparently at least two jumpers\non the controller that affect the floppy disk drive. Unfortunately I\nhave located only one of them (in the lower front corner). I would like\nto know, if there are any other such jumpers and possibly where they \nare located.\n\nProblem 2:\nMy hard disks refuse to boot. With my two SCSI HD's (Rodime, Miniscribe)\nI get a message 'Missing operating system', even though the disks have been\nformatted with the same controller and they damn sure have an operating\nsystem on them. If I boot from a Quantum I might get as far as getting\nthe MS-DOS version information. This might of course be due to incombatible\nmemory drivers.\nAre there any jumpers that could affect the HD causing such errors?\n\n\tThanks in advance\n\n        Jouni\n\n_______________________________________________________________________________\nJouni Marttila - Yo-kyl{ 11 B 25,  20540 Turku,  FINLAND - +358 21 374624____\njmarttila@abo.fi - jmarttila@finabo - abovax::jmarttila - jjmartti@utu.fi__\nPGP-key available via finger jmarttila@abo.fi ___________________________\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9721, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: Jewish Baseball Players?\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nLines: 39\n\nIn article <1993Apr15.221049.14347@midway.uchicago.edu> thf2@midway.uchicago.edu writes:\n>In article <1qkkodINN5f5@jhunix.hcf.jhu.edu> pablo@jhunix.hcf.jhu.edu (Pablo A Iglesias) writes:\n>>In article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>>>Just wondering.  A friend and I were talking the other day, and\n>>>we were (for some reason) trying to come up with names of Jewish\n>>>baseball players, past and present.  We weren't able to come up\n>>>with much, except for Sandy Koufax, (somebody) Stankowitz, and\n>>>maybe John Lowenstein.  Can anyone come up with any more.  I know\n>>>it sounds pretty lame to be racking our brains over this, but\n>>>humor us.  Thanks for your help.\n\n>>Hank Greenberg would have to be the most famous, because his Jewish\n>>faith actually affected his play. (missing late season or was it world\n>>series games because of Yom Kippur)\n\n>The other Jewish HOF'er is Rod Carew (who converted).  \n\nDid he ever really convert?  He married a Jewish woman, but I've never\nheard him say he converted.  Elliot Maddox, on the other hand...\n\n>Lowenstein is Jewish, as well as Montana's only representative to the\n>major leagues.\n\n>Undeserving Cy Young award winner Steve Stone is Jewish.  Between Stone,\n>Koufax, Ken Holtzman (? might have the wrong pitcher, I'm thinking of the\n>one who threw a no-hitter in both the AL and NL), and Big Ed Reulbach,\n>that's quite a starting rotation.  Moe Berg can catch.  Harry Steinfeldt,\n>the 3b in the Tinkers-Evers-Chance infield.\n\nYep, Holtzman.  Saul Rogovin won an ERA title in 1949 or so before blowing out\nthe arm.\n\n>Is Stanky Jewish?  Or is that just a \"Dave Cohen\" kinda misinterpretation?\n>Whatever, doesn't look like he stuck around the majors too long.\n\nI'd be surprised.  btw, they may just be shopping Gallego around to\nmake room for AS.\n\nRoger\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9722, "properties": {"category": "comp.windows.x", "text": "From: dave@einstein.andi.org (David Scheck)\nSubject: imake (X11R4) cpp problems on AIX\nKeywords: imake X11R4 AIX\nNntp-Posting-Host: einstein.andi.org\nOrganization: Association of NeXTSTEP Developers International\nLines: 28\n\nI am trying to build and use imake (X11R4) on an IBM RS/6000 running AIX V3.2.\nI am having the following 2 problems.\n\n(1) Many of my Imakefile's have contructs like\n                /**/#This is a makefile\n        at the start of lines to pass Makefile comments thru the C\n        preprocessor and into the Makefile.  Most of the C preprocessors that\n        I have used will not treat such a # as appearing at the start of the\n        line.  Thus the C preprocessor does not treat the hash symbol as the\n        start of a directive. \n\n        However the IBM cpp strips the comment and treats the hash symbol\n        as the start of a directive.  The cpp fails when it determines\n        that \"This\" is not a known directive.  I have temporarily hacked my\n        imake to handle this situation but would like to come up with a better\n        fix.\n\n(2) Several Imakefiles use /**/ as a parameter to a macro when a particular\n        use of the macro does not need a value for the parameter.  The AIX cpp\n        gives warnings about these situations but continues to work OK.\n\nIf you are familiar with these problems and have solutions, I would appreciate\ninformation about on your solutions.  (Perhaps, this is solved in a later\nversion of imake that I have not reviewed.)  Also, do you know of other cpp's\nthat behave similarly?\n\nSince I do not have easy access to News, a response to\n'white_billy@po.gis.prc.com' would be appreciated.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9723, "properties": {"category": "sci.electronics", "text": "From: paj@uk.co.gec-mrc (Paul Johnson)\nSubject: Peltier Effect Heat Pumps\nReply-To: paj@uk.co.gec-mrc (Paul Johnson)\nOrganization: GEC-Marconi Research Centre, Great Baddow, Essex\nLines: 45\n\n\nI was having a look through a couple of components catalogues when I\ncame across a range of Peltier Effect heat pumps intended for cooling\ncomponents.  For those who have not heard of this effect, you put a\ncurrent through one of these devices, and it pumps heat from one side\nto the other.  Reverse the current and you reverse the effect.  I\nthink a temperature difference can give you an EMF as well.\n\nAnyway, it struck me that you could make a nice cool/hot box for\npicnics with one of these, a power regulator, a thermostat and a\ncouple of heat sinks.  The biggest device can shift 60W with an\nefficiency of 80-90%, which ain't bad (although it would flatten my\ncar battery in about half an hour).\n\nUnfortunately the catalogue didn't list anything more than the basic\nspecs as a heat pump.  I imagine that you would get a back-EMF as the\ntemperature gradient across the device increases.  If so, presumably\nits power decreases as the back-EMF increases, until eventually we\nhave a steady state with no current being consumed (assuming no\nleakage).  If so, then the final temperature difference between the\ntwo sides could be set by the supply voltage and nothing more\n(although that would be a lousy way to control it).\n\nWhat I would like to know is:\n\n1: Are the above guesses correct?\n\n2: What is the open-circuit thermal resistance of a typical device?\n   (I just want to be sure that my coolbox is not going to get warm\n   too fast when I unplug it)\n\n3: How does a Peltier Effect heat pump actually work?  It looks like\n   magic!\n\n4: Why don't they use these things in domestic fridges/freezers?\n\n\nThanks in advance,\n\nPaul.\n\nPaul Johnson (paj@gec-mrc.co.uk).\t    | Tel: +44 245 73331 ext 3245\n--------------------------------------------+----------------------------------\nThese ideas and others like them can be had | GEC-Marconi Research is not\nfor $0.02 each from any reputable idealist. | responsible for my opinions\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9724, "properties": {"category": "sci.med", "text": "From: kaminski@netcom.com (Peter Kaminski)\nSubject: Re: Need to find information about current trends in diabetes.\nLines: 63\nOrganization: The Information Deli - via Netcom / San Jose, California\n\nIn <C5nF2r.KpJ@world.std.com> steveo@world.std.com (Steven W Orr) writes:\n\n>I looked for diab in my .newsrc and came up with nuthin. Anyone have\n>any good sources for where I can read?\n\nCheck out the DIABETIC mailing list -- a knowledgable, helpful, friendly,\nvoluminous bunch.  Send email to LISTSERV@PCCVM.BITNET, with this line\nin the body:\n\nSUBSCRIBE DIABETIC <your name here>\n\nAlso, the vote for misc.health.diabetes, a newsgroup for general discussion\nof diabetes, is currently underway, and will close on 29 April.  From the\n2nd CFV, posted to news.announce.newgroups, news.groups, and sci.med,\nmessage <1q1jshINN4v1@rodan.UU.NET>:\n\n>To place a vote FOR the creation of misc.health.diabetes, send an\n>email message to yes@sun6850.nrl.navy.mil\n>\n>To place a vote AGAINST creation of misc.health.diabetes, send an\n>email message to no@sun6850.nrl.navy.mil\n>\n>The contents of the message should contain the line \"I vote\n>for/against misc.health.diabetes as proposed\".  Email messages sent to\n>the above addresses must constitute unambiguous and unconditional\n>votes for/against newsgroup creation as proposed.  Conditional votes\n>will not be accepted.  Only votes emailed to the above addresses will\n>be counted; mailed replies to this posting will be returned.  In the\n>event that more than one vote is placed by an individual, only the\n>most recent vote will be counted.  One additional CFV will be posted\n>during the course of the vote, along with an acknowledgment of those\n>votes received to date.  No information will be supplied as to how\n>people are voting until the final acknowledgment is made at the end,\n>at which time the full vote will be made public.\n>\n>Voting will continue until 23:59 GMT, 29 Apr 93.\n>Votes will not be accepted after this date.\n>\n>Any administrative inquiries pertaining to this CFV may be made by\n>email to swkirch@sun6850.nrl.navy.mil\n>\n>The proposed charter appears below.\n>\n>--------------------------\n>\n>Charter:  \n>\n>misc.health.diabetes                            unmoderated\n>\n>1.   The purpose of misc.health.diabetes is to provide a forum for the\n>discussion of issues pertaining to diabetes management, i.e.: diet,\n>activities, medicine schedules, blood glucose control, exercise,\n>medical breakthroughs, etc.  This group addresses the issues of\n>management of both Type I (insulin dependent) and Type II (non-insulin\n>dependent) diabetes.  Both technical discussions and general support\n>discussions relevant to diabetes are welcome.\n>\n>2.   Postings to misc.heath.diabetes are intended to be for discussion\n>purposes only, and are in no way to be construed as medical advice.\n>Diabetes is a serious medical condition requiring direct supervision\n>by a primary health care physician.  \n>\n>-----(end of charter)-----\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9725, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Case Western Reserve University\nLines: 26\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1qkq9t$66n@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n\n>I'll take a wild guess and say Freedom is objectively valuable.  I base\n>this on the assumption that if everyone in the world were deprived utterly\n>of their freedom (so that their every act was contrary to their volition),\n>almost all would want to complain.  Therefore I take it that to assert or\n>believe that \"Freedom is not very valuable\", when almost everyone can see\n>that it is, is every bit as absurd as to assert \"it is not raining\" on\n>a rainy day.  I take this to be a candidate for an objective value, and it\n>it is a necessary condition for objective morality that objective values\n>such as this exist.\n\n\tYou have only shown that a vast majority ( if not all ) would\nagree to this. However, there is nothing against a subjective majority.\n\n\tIn any event, I must challenge your assertion. I know many \nsocieties- heck, many US citizens- willing to trade freedom for \"security\".\n\n\n--- \n\n        \" Whatever promises that have been made can than be broken. \"\n\n        John Laws, a man without the honor to keep his given word.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9726, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Ravi Konchigeri <mongoose@leland.stanford.edu>\nSubject: Re: LCIII problems\nX-Xxmessage-Id: <A7F36401930100ED@kimball-pc-316.stanford.edu>\nX-Xxdate: Thu, 15 Apr 93 03:12:01 GMT\nOrganization: Stanford University\nX-Useragent: Nuntius v1.1.1d17\nLines: 18\n\nFinally got my computer fixed and I'd like to sum up.\n\nAbout hard drive companies: the original 160 meg drive that was bad (bad\nsector or something) was an IBM.  The new one is a Quantum.  Is the LCIII\nsupposed to be shipped with IBMs?  Is there a quality difference? \nApparently! :)\n\nSecond, about hard drive position.  I've put the LCIII on its side and\nthe new 160 HD has had no problems at all.  I've even switched back and\nforth between horizontal and vertical and there are no problems.  As far\nas I'm concerned I don't believe HD position is important for drives up\nto 160 meg, in any computer.  Don't know about CD-ROM, though.\n\n\n\t\"Just like everything else in life, the right lane ends in half a mile.\"\n\nRavi Konchigeri.\nmongoose@leland.stanford.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9727, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Cookamunga Tourist Bureau\nLines: 19\n\nIn article <1993Apr15.200231.10206@ra.royalroads.ca>,\nmlee@post.RoyalRoads.ca (Malcolm Lee) wrote:\n> These laws written for the Israelites, God's chosen people whom God had\n> expressly set apart from the rest of the world.  The Israelites were a\n> direct witness to God's existence.  To disobey God after KNOWing that God\n> is real would be an outright denial of God and therefore immediately punishable.\n> Remember, these laws were written for a different time and applied only to \n> God's chosen people.  But Jesus has changed all of that.  We are living in the\n> age of grace.  Sin is no longer immediately punishable by death.  There is\n> repentance and there is salvation through our Lord Jesus Christ.  And not just\n> for a few chosen people.  Salvation is available to everyone, Jew and Gentile\n> alike.\n\nJews won't agree with you, Malcolm.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9728, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: Re: 14 Apr 93 God's Promise in 1 John 1: 7\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 30\n\nI had said:\n\n> Merlyn, you missed the point too.  Christianity is a relationship.  I have\n> a relationship with my God.  I <<know>> Him.  \n>\n> Consider your mother Merlyn.  You know your mother.  What would you think\n> of me if I asserted that your mother is 9 feet tall, murdered your father,\n> and sexually abused you when you were a kid?   Would you, who knows your\n> mother well, think was a blind arrogant idiot to proclaim such things?\n\nMerlyn LeRoy says:\n \n>This analogy is not good; for example, there are plenty of people who\n>\"know\" god as well as you do, but don't agree on things like:\n>\n>1) how many children he/she has\n>2) whether he/she approves of polygamy\n>3) whether Mohammed was one of his/her prophets\n>\n>Now, if you AND all these other people who ABSOLUTELY KNOW what god is\n>like can't agree on basic attributes like these, at least one of you\n>who \"knows\" what this god-thing is like must be wrong; therefore,\n>subjective certainty is worthless regarding knowledge of this god.\n>\n>On the other hand, I don't know any large groups of people who claim\n>absolute knowledge of my mother and who disagree about her basic\n>attributes.  This is the difference between real people and imaginary friends.\n\nMeryln, therefore by your logic, since your people disagree about\nthe characteristics of your mother, you mother must be imaginary.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9729, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: LC III NuBus Capable?\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 12\n\nmmiller@garnet.msen.com (Marvin Miller) writes:\n\n>My friend recently purchased a LC III and he wants to know if there is\n>such a demon called NuBus adapter for his PDS slot? CompUsa and\n>ComputerCity Supercenter says they don't carry them.\n\n>Does this mean LC III is incapable of carrying a NuBus board?\n\n    Yes. That is exactly what it means. The LC family of Macs can only\nuse PDS cards. They are not able to use NuBus.\n\n-Hades\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9730, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cheong@solomon.technet.sg (SCSTECH admin)\nSubject: Please Refresh On Internet Access To CompuServe\nNntp-Posting-Host: solomon.technet.sg\nOrganization: TECHNET, Singapore\nLines: 15\n\nHi,\n\nsometime ago there are some discussions on gaining CompuServe access thru\nthe Internet. But I seem to misplace those articles. Can someone please\nrefresh me where (which site) I can telnet to to gain access.\n\nHopefully I can download files as well.\n\n\nThanks,\n\n\nArthur Lim\nEmail : arthur@mailhost.scs.com.sg\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9731, "properties": {"category": "rec.sport.hockey", "text": "Subject: NCAA finals...Winner????\nFrom: ktgeiss@miavx1.acs.muohio.edu\nOrganization: Miami University Academic Computer Service\"\nLines: 1\n\nLake State/Maine in finals...WHO WON?   Please post.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9732, "properties": {"category": "comp.windows.x", "text": "From: aa894@Freenet.carleton.ca (Terry MacLean)\nSubject: How Do I Modify Key Map?\nOrganization: National Capital Freenet, Ottawa, Canada\nLines: 35\n\n\nHello folks,\n\nI'm seeing these errors when I try to modify my key map:\n\nmwm: invalid accelerator specfication, line x\n\nI've added a line in the start up file before the line\nthat starts mwm. It looks like the following:\n\nxmodmap keymapfile\nmwm\n\nI think that the problem has to do with a conflict between\nfunction keys F1 through F7 which already have assigned\nfunctions (e.g. Move, Minimize, etc).\n\nThe odd thing is that I don't see these errors if I run\n\nxmodmap keymapfile\n\nfrom an xterm.\n\nCan anyone suggest a way to modify the key map, specifically\nF1 through F7 AND not have mwm (Motif Window Manager) complain.\n\nI realize this is a bit stupid, but we only have time to\nimplement, not time to learn how to implement.\n\nTerry\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9733, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Dumbest automotive concepts of all time\nArticle-I.D.: cactus.1993Apr15.223029.23340\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 29\n\nIn article <C5JnK3.JKt@news.cso.uiuc.edu> cka52397@uxa.cso.uiuc.edu (OrioleFan@uiuc) writes:\n>\tWasn't the original intent of the reverse lights for the driver, so he\n>could see where he was backing up???  Although reverse lights on the sides\n\nNo. reverse lights are to warn others that you are backing up. They\naren't bright enough to (typically) see by without the brake and tail\nlights. \n\n>are useful for telling whether cars are backing up out perpendicular to the\n>path of the car, I don't think warnings were their original intents, since they\n>are colored white.\n\nWell, red and orange were already taken. Maybe white defines the direction\nthat the car is moving in.\n\n\nIf you really want to be able to see behind you, get some fog lamps for\nthe back of the car. These work very well - and are a good way to get\nrid of tailgaters if you get that rush of testosterone.\n\nCraig\n>\n>\n>\n>-- \n>Chintan Amin <The University of Illinois UrbanaChampaign> mail: llama@uiuc.edu\n>******************************Neil Peart, (c)1981*****************************\n>*\"Quick to judge, Quick to Anger, Slow to understand, Ignorance and Prejudice*\n>*And********Fear********Walk********************Hand*********in*********Hand\"*\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.458+0000", "event": "documents", "entityId": 9734, "properties": {"category": "rec.sport.hockey", "text": "From: LMARSHA@cms.cc.wayne.edu (Laurie Marshall)\nSubject: Re: WHERE ARE THE DOUBTERS NOW?  HMM?\nArticle-I.D.: cms.16BA79DBA.LMARSHA\nOrganization: Wayne State University, Detroit MI  U.S.A.\nLines: 22\nNNTP-Posting-Host: cms.cc.wayne.edu\n\nIn article <1993Apr4.051942.27095@ramsey.cs.laurentian.ca>\nmaynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n \n>\n>For those of you who can only decide which team is best after you have\n>seen the standings:\n>\n>TOR  42 25 11  95   .609\n>CHI  42 25 11  95   .609\n>DET  44 28  9  97   .599\n>VAN  41 28  9  91   .583\n>\n>No team in the Campbell Conference has a better record than Toronto.\n \n  That's true, but according to your stats, Chicago has just as good a\nrecord as Toronto.  It's interesting that you should list Toronto ahead\nof Chicago.\n \n Laurie Marshall\n Wayne State University\n Detroit, Michigan\n Go Wings!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9735, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Go Hizbollah II!\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 26\n\nIn article <Apr26.175327.86241@yuma.ACNS.ColoState.EDU> bh437292@lance.colostate.edu writes:\n>In article <1993Apr24.202201.1@utxvms.cc.utexas.edu>, ifaz706@utxvms.cc.utexas.edu (Noam Tractinsky) writes:\n>|>      Paraphrasing a bit, with every rocket that \n>|> \tthe Hizbollah fires on the Galilee, they justify Israel's \n>|> \tholding to the security zone. \n>|> \n>|> Noam\n>\n>\n>\n>I only want to say that I agree with Noam on this point\n>and I hope that all sides stop targeting civilians.\n>\n>Basil \n>\nAbsolutely. I'm sure that civilians on both sides would be pleased\nif the fighters (military, guerilla, whatever) would just take their\nargument elsewhere, find an unpopulated area somewhere, and slug it out.  \nAt that point, we will all breath a sigh of relief *and* cheer for\nour side in the struggle.\n\n--\nTim Clock                                   Ph.D./Graduate student\nUCI  tel#: 714,8565361                      Department of Politics and Society\n     fax#: 714,8568441                      University of California - Irvine\nHome tel#: 714,8563446                      Irvine, CA 92717\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9736, "properties": {"category": "talk.politics.mideast", "text": "From: stssdxb@st.unocal.com (Dorin Baru)\nSubject: RE: was:Go Hezbollah!\nOrganization: Unocal Corporation\nLines: 68\n\n\nhernlem@chess.ncsu.edu (Brad Hernlem) writes:\n\n\n>I just thought that I would make it clear, in case you are not familiar with\n>my past postings on this subject; I do not condone attacks on civilians. \n>Hezbollah and other Lebanese Resistance fighters are skilled at precision\n>bombing of SLA and Israeli targets. I find such methods to be far more\n>restrained and responsible than the Israeli method of shelling and bombing\n>villages with the hope that a Hezbollah member will be killed along with\n>the civilians murdered. I do not consider the killing of combatants to be\n>murder. Soldiers are trained to die for their country. Three IDF soldiers\n>did their duty the other day. These men need not have died if their government\n>had kept them on Israeli soil. \n\nIs there any Israeli a civilian, in your opinion ?\n\nNow, I do not condone myself bombing villages, any kind of villages.\nBut you claim these are villages with civilians, and Iraelis claim they are \ncamps filled with terrorists. You claim that israelis shell the villages with the\n'hope' of finding a terrorist or so. If they kill one, fine, if not, too bad, \ncivilians die, right ? I am not so sure. \n\nAs somebody wrote, Saddam Hussein had no problems using civilians in disgusting\nmanner. And he also claimed 'civilians murdered'. Let me ask you, isn't there \nat least a slight chance that you (not only, and the question is very general, \nno insult) are doing a similar type of propaganda in respect to civilians in\nsouthern Lebanon ?\n\nNow, a lot people who post here consider 'Israeli soil' kind of Mediteranean sea.\nHow do you define Israeli soil ? From what you say, if you do not clearly \nrecognize the state of Israel, you condone killing israelis anywhere.\n\n>Dorin, are you aware that the IDF sent helicopters and gun-boats up the\n>coast of Lebanon the other day and rocketted a Palestinian refugee north of\n>Beirut. Perhaps I should ask YOU \"what qualifies a person for murder?\":\n\nI do not know what was the pupose of the action you describe. If it was \nto kill civilians (I doubt), I certainly DO NOT CONDONE IT. If civilians were \nkilled, i do not condone it. \n\n>That they are Palestinian?\n\n>That they are children and may grow up to be \"terrorists\"?\n\n>That they are female and may give birth to little terrorists?\n\n>Brad Hernlem (hernlem@chess.ncsu.EDU)\n\nMr. Hernlem, it was YOU, not ME, who was showing a huge satisfaction for 3 \nisraelis (human beings by most standards, Don't know about your standards) killed.\n\nIf you ask me those questions, I will have no problem answering (not with a \nquestion, as you did) : No, NOBODY is qualified candidate for murder, nothing\njustifies murder. I have the feeling that you may be able yourself to make\nsimilar statements, maybe after eliminating all Israelis, jews, ? Am I wrong ?\n\n\nNow tell me, did you also condone Saddam's scuds on israeli 'soldiers' in, let's\nsay, Tel Aviv ? From what I understand, a lot of palestineans cheered. What does\nit show? It does not qualify for freedom fighting to me ? But again, I may be \nwrong, and the jewish controlled media distorted the information, and I am just\nan ignorant victim of the media, like most of us.\n\n\nDorin\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9737, "properties": {"category": "sci.space", "text": "From: ruca@pinkie.saber-si.pt (Rui Sousa)\nSubject: Re: Potential World-Bearing Stars?\nIn-Reply-To: dan@visix.com's message of Mon, 12 Apr 1993 19:52:23 GMT\nLines: 17\nOrganization: SABER - Sistemas de Informacao, Lda.\n\nIn article <C5Dz7C.J0E@visix.com> dan@visix.com (Daniel Appelquist) writes:\n\n\n   I'm on a fact-finding mission, trying to find out if there exists a list of\n   potentially world-bearing stars within 100 light years of the Sun...\n   Is anyone currently working on this sort of thing?  Thanks...\n\n   Dan\n   -- \n\nIn principle, any star resembling the Sun (mass, luminosity) might have planets\nlocated in a suitable orbit. There several within 100 ly of the sun. They are\nsingle stars, for double or multiple systems might be troublesome. There's a\nlist located at ames.arc.nasa.gov somewhere in pub/SPACE. I think it is called\nstars.dat. By the way, what kind of project, if I may know?\n\nRui\n-- \n*** Infinity is at hand!                               Rui Sousa\n*** If yours is big enough, grab it!                   ruca@saber-si.pt\n\n                All opinions expressed here are strictly my own\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9738, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: The scenario and genocide staged by the Armenians 78 years ago.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 72\n\nThe scenario and genocide staged by the Armenians 78 years ago in \nx-Soviet Armenia is being reenacted again - this time in Azerbaijan. \n\nThe stories of survivors of Karabag massacre are in 'Milliyet' today.\n\n69 year old Hatin Nine telling:\n\n-''My Twin grandchildren were cut to pieces in front of my eyes. They told\nme: We won't kill you. But the babies have to die in front of your eyes.''\n\n72 year old Huseyin Ibrahimoglu:\n\n- ''Our Turkish village in Khojalu Town was blown up in two hours.\n  While killing children and babies mercilessly they said: You are\n  Turks, you must die.''\n\n28 year old Gulsum Huseyin:\n\n- ''They bayonetted my 3 year old daughter in her stomach in front of\n    my eyes.''\n\nAre these stories lies? Have the eye-witnesses been day-dreaming?\nWere these stories forged by Turkish journalists in the region?\n\nThe nonsense of such a claim is clear from the writings of British\nJournalists, too. Two days before we had quoted from a Sunday Times\narticle. They[British] reported the events in Karabag even before\nTurkish journalists. What is more here are the pictures. Pictures\nof people who were bayonetted, whose eyes were gouged, ears cut off.\n\nEven the Armenian Radio couldn't claim these \"lies.\" They are saying\n\"exaggeration.\" That means ''somethings'' have happened but the\nsituation is not as bad as reported. Perhaps that village of Khojalu\ntown was destroyed in 4 hours, instead of 2... Or Gulsum Huseyin's\n3 year old daughter was bayonetted in her chest instead of stomach...\n\nThe massacre is clearly seen with all its dimensions. The effects of\nthis massacre on Karabag and environs cannot be reduced by any word.\n\nSome of the western press', led by some French Newspapers, ability\nto ''close their eyes'' is nothing but complicity in this massacre.\n\nYesterday we gave samples from Le Figaro. Until yesterday's print\nno news about the real events in Karabag were printed. So were the\nFrench TV channels.. The subject they considered related to Karabag\nwas ''The necessity of protecting Armenians against Azeri attacks.''\n\nThe age we are living in is termed a human rights age. There are lots\nof organizations such as United Nations and CSCE(Conference on Security\nand Cooperation in Europe), and rules, all designed to fight against human\nrights violations. International reactions must be made with international\ncooperation. With support of everybody and every organization claiming\nto be civilized.\n\nCould there be a more serious human rights violation than that of the\nright to live -and with such levels of barbarity and cruelty-? Where\nis the cooperation? Where are the reactions? And the intellectuals,\njournalists, writers, TV stations of certain western countries such\nas France who are fast to claim leadership of \"human rights?\"\nWhere are you?\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9739, "properties": {"category": "misc.forsale", "text": "From: jonathan@comp.lancs.ac.uk (Mr J J Trevor)\nSubject: [SNES] Games for sale/trade\nOrganization: Department of Computing at Lancaster University, UK.\nLines: 29\n\n\nI have the following games for sale or trade for other SNES (or\nGenesis/MegaDrive games):\n(all have instructions and box except where stated)\n\nSFC:\nMickeys Magical Quest (no instructions)\nA.Suzukis Super GrandPrix\nLegend of the Mystical Ninja\n\nUK SNES:\nOut of this World / Another World\nSuper Soccer\n\nUS SNES:\nKrustys Fun House\nIrem Skins Golf\nSuper Tennis (currently under offer)\n\nI will sell for US$ for UK pounds.\n\nCheers\nJonathan\n\n-- \n___________\n  |onathan   Phone: +44 524 65201 x3793 Address:Department of Computing\n'-'________    Fax: +44 524 381707              Lancaster University\n            E-mail: jonathan@comp.lancs.ac.uk   Lancaster, Lancs., U.K.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9740, "properties": {"category": "talk.politics.mideast", "text": "From: khan0095@nova.gmi.edu (Mohammad Razi Khan)\nSubject: Re: Fundamentalism - again.\nOrganization: GMI Engineering&Management Institute, Flint, MI\nLines: 10\n\nOk, someone is fundamentalist, someone else is not.\nWhat defines a fundamentalist (Not who!!!!!!!!!).\nThat is an essential question which nobody has agreed upon an answer,\nat least to what literature / discussion / news i've seen..\n\n--\nMohammad R. Khan                /    khan0095@nova.gmi.edu\nAfter July '93, please send mail to  mkhan@nyx.cs.du.edu\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9741, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gsnow@clark.edu (Gary Snow)\nSubject: Re: Cheapest mike for Centris?\nArticle-I.D.: clark.1993Apr6.220053.27621\nOrganization: Clark College, Vancouver, Wa.  USA\nLines: 13\n\nIn article <summeral.733961443@rintintin.Colorado.EDU> summeral@rintintin.Colorado.EDU (Summerall  Thomas G) writes:\n>\n>I just bought a Centris 650 and discovered, to my dispointment, that Apple\n>has gotten too cheap to include a mike anymore, internal or external.\n\nYou get a mic with the C650 if you get it with the internal CD ROM drive.\n\nGary\n\n-- \n-----\nGary Snow\nuunet!clark!gsnow  or  gsnow@clark.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9742, "properties": {"category": "rec.sport.baseball", "text": "From: brian@meaddata.com (Brian Curran)\nSubject: Re: ESPN/TBS GAMES?\nArticle-I.D.: meaddata.1pptv1$mgb\nDistribution: world\nOrganization: Mead Data Central, Dayton OH\nLines: 13\nNNTP-Posting-Host: taurus.meaddata.com\n\nIn article <05APR93.13661642.0023@lafibm.lafayette.edu>, VB30@lafibm.lafayette.edu (VB30) writes:\n|> Does anyone know where I can get a list of nationally televised\n|> games, such as ESPN and TBS?  I live on the East coast and I'd\n|> like to catch as many Giants games as I possibly can!\n\nThis list is published every week in Baseball Weekly.\n-- \n------------------------------------------------------------------------------\nBrian Curran                 Mead Data Central              brian@meaddata.com \n------------------------------------------------------------------------------\n                \"That was not swimming.  That was bathing.\"\n     - A German reporter, after watching 1972 Olympic superstar swimmer\n           Mark Spitz get badly beaten during a 1991 comeback race\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9743, "properties": {"category": "sci.space", "text": "From: sheaffer@netcom.com (Robert Sheaffer)\nSubject: Re: Astronomy Program\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 23\n\nIn article <28641@galaxy.ucr.edu> datadec@ucrengr.ucr.edu (kevin marcus) writes:\n>Are there any public domain or shareware astronomy programs which will\n>map out the sky at any given time, and allow you to locate planets, nebulae,\n>and so forth?  If so, is there any ftp site where I can get one?\n\nI posted my public-domain MSDOS program \"sunlight.zip\" to \"sci.astro\" yesterday.\nIt easily locates the sun, moon, and planets, and can also be used to\nlocate other objects if you input their Right Ascesion and Declination.\nUse \"uudecode\" to extract.\n\n\n-- \n  \n        Robert Sheaffer - Scepticus Maximus - sheaffer@netcom.com\n  \n Past Chairman, The Bay Area Skeptics - for whom I speak only when authorized!\n\n         \"Marxism and feminism are one and that one is Marxism\"\n\n                             - Heidi Hartmann and Amy Bridges,\n                       quoted by Catharine MacKinnon above the first chapter\n                       of her \"Toward a Feminist Theory of the State\"\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9744, "properties": {"category": "comp.graphics", "text": "From: \"danny hawrysio\" <danny.hawrysio@canrem.com>\nSubject: radiosity\nReply-To: \"danny hawrysio\" <danny.hawrysio@canrem.com>\nOrganization: Canada Remote Systems\nDistribution: comp\nLines: 9\n\n\n-> I am looking for source-code for the radiosity-method.\n\n I don't know what kind of machine you want it for, but the program\nRadiance comes with 'C' source code - I don't have ftp access so I\ncouldn't tell you where to get it via that way.\n--\nCanada Remote Systems - Toronto, Ontario\n416-629-7000/629-7044\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9745, "properties": {"category": "sci.space", "text": "From: gene@theporch.raider.net (Gene Wright)\nSubject: Why not give $1 billion to first year-long moon residents?\nOrganization: The MacInteresteds of Nashville, Tn.\nLines: 12\n\nWith the continuin talk about the \"End of the Space Age\" and complaints \nby government over the large cost, why not try something I read about \nthat might just work.\n\nAnnounce that a reward of $1 billion would go to the first corporation \nwho successfully keeps at least 1 person alive on the moon for a year. \nThen you'd see some of the inexpensive but not popular technologies begin \nto be developed. THere'd be a different kind of space race then!\n\n--\n  gene@theporch.raider.net (Gene Wright)\ntheporch.raider.net  615/297-7951 The MacInteresteds of Nashville\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9746, "properties": {"category": "comp.windows.x", "text": "From: gringort@tantalus.pa.dec.com (Joel Gringorten)\nSubject: Re: **** CURSOR SIZE PROBLEMS ****\nOrganization: DEC Western Software Laboratory\nLines: 37\nDistribution: world\nReply-To: gringort@tantalus.pa.dec.com (Joel Gringorten)\nNNTP-Posting-Host: tantalus.pa.dec.com\n\nIn article <C5Ky44.L2K@compsci.liverpool.ac.uk>, mbell@csc.liv.ac.uk\n(Mike Bell) writes:\n> /* Apologies for those who have read this before but no-one has solved\nthis */\n> /* one yet so I'm posting again! Sorry :-)                            \n     */\n> \n> I'm having problems creating a cursor bigger than 64x64, I'm using Motif 1.1\n> X11R4 running HP-UX 8.07 - all the functions return valid results but no\n> cursor appears when the bitmap is bigger than the aforementioned size.\nI tried\n> \n> using the following code:\n> \n> unsigned int w,h;\n> XQueryBestCursor(XtDisplay(programArea), XtWindow(programArea), 72, 71, &w,\n> &h);\n> \n> to return the nearest size to what I require however it returns 72 and 71 as\n> the width and height respectively. What am I doing wrong? and if not\nhow can I\n> get round the problem!!\n\nDoes the workstation you're using have hardware cursor support?  Or does\nthe server generate a software cursor.  You can generally tell the difference\njust by using it.  If the cursor blinks a lot when there's screen activity,\nit's probably a software cursor.  If it has a hardware cursor, I think you're\nprobably battling a bug in HP's X server.  I'm not familiar with any hardware\ncursor chips that display cursors greater than 64x64.  It's quite possible\nthat the server is just echoing your preferred cursor size without actually\nchecking it.  I vaguely recall that very old MIT server revisions did just \nthat.\n\nIn reality you're probably stuck with a 64x64 maximum size cursor regardless\nof what the server returns.\n\n-joel\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9747, "properties": {"category": "sci.electronics", "text": "From: Arthur_Noguerola@vos.stratus.com\nSubject: Re: Adcom cheap products?\nOrganization: Stratus Computer, Marlboro Ma.\nLines: 22\nNNTP-Posting-Host: m21.eng.stratus.com\n\nIn article <C5K177.BoK@world.std.com> rogerw@world.std.com (Roger A Williams) wrote:  \n>mdonahue@amiganet.chi.il.us (Mike Donahue) writes: \n> \n> \n>>I do NOT know much about Adcom Mobil Audio products, but I DO know for a fact \n>>that ADCOM does NOT make its own \"High End\" Home Audio Equptment and that 80%+ \n>>of it comes directly out of Tiawan... \n> \n>Like most high-volume manufacturers, Adcom has most of its PC boards \n>assembled off-shore (in their case, mostly in the far east).  Final \n>assembly _and testing_ are done in East Brunswick. \n> \n\n          and of course you older folks on the net will remember \n          way back when Adcom got its RAVE reviews and kudos (ca \n          1985  or  so)  their  555 amp and preamp WERE not only \n          designed here but built here in  the  USA.  then  they \n          went  to  mexico  and then to taiwan right after their \n          sales  skyrocketed   because   of   their   Stereopile \n          review!!!  if you have units that old look for MADE IN \n          --- stickers on your unit. \n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9748, "properties": {"category": "rec.autos", "text": "From: dcd@se.houston.geoquest.slb.com (Dan Day)\nSubject: Re: WARNING.....(please read)...\nNntp-Posting-Host: mudd.se.houston.geoquest.slb.com\nOrganization: GeoQuest System, Inc. Houston\nLines: 16\n\nIn article <C5K9M5.7Ku@constellation.ecn.uoknor.edu> callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>\n>If I hear someone screwing with my car (ie, setting off the alarm) and\n>taunting me to come out, you can be damn sure that my Colt Delta Elite\n>will also be coming with me. It's not the screwing with the car that'd\n>get them shot, it's the potential physical danger. If they're\n>taunting like that, it's very possible that they also intend to rob\n>me and/or do other physically harmful things.\n\nHere in Houston last year a woman heard the sound of someone in her\ngarage, so she went to investigate with a gun in her hand.  She\nfound a guy in the process of stealing her bicycle.  She quite\nreasonably asked him to stop.  He refused, began taunting her, and\nas the woman was quoted in the police report, \"He told me to go\nahead and shoot him, so I did.\"  The moron survived, and no\ncharges were filed against the woman.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9749, "properties": {"category": "sci.space", "text": "From: gfk39017@uxa.cso.uiuc.edu (George F. Krumins)\nSubject: Re: Vandalizing the sky.\nOrganization: University of Illinois at Urbana\nLines: 59\n\nnicho@vnet.IBM.COM (Greg Stewart-Nicholls) writes:\n\n>In <C5y4t7.9w3@news.cso.uiuc.edu> George F. Krumins writes:\n>>It is so typical that the rights of the minority are extinguished by the\n>>wants of the majority, no matter how ridiculous those wants might be.\n> Umm, perhaps you could explain what 'rights' we are talking about\n>here ..\n> -----------------------------------------------------------------\n>Greg Nicholls ...         : Vidi\n>nicho@vnet.ibm.com or     : Vici\n>nicho@olympus.demon.co.uk : Veni\n\nI was suggesting that the minority of professional and amateur astronomers\nhave the right to a dark, uncluttered night sky.\n\nLet me give you an example.  When you watch TV, they have commercials to pay\nfor the programming.  You accept that as part of watching.  If you don't like\nit, you can turn it off.  If you want to view the night sky, and there is a\nfloating billboard out there, you can't turn it off.  It's the same \nreasoning that limits billboards in scenic areas.\n\nPat writes:\nGeorge.\n\n\tIt's called a democracy.  The majority rules.  sorry.\nIf ytou don't like it, I suggest you modify the constitution to include\na constitutional right to Dark Skies.   The theory of government\nhere is that the majority rules,  except in the nature of fundamental\ncivil rights.\n\nI say: \n\tAny reasonably in-depth perusal of American history will show\n\tyou that many WASPs have continued the practices of prejudice,\n\tdiscrimination, and violence against others of different\n\traces, religions, and beliefs, despite the law.\n\nPat says:\nIf you really are annoyed,   get some legislation\nto create a dark sky zone,  where in all light emissions are protected\nin the zone.  Kind of like the national radio quiet zone.  Did you\nknow about that?  near teh Radio telescope  observatory in West virginia,\nthey have a 90?????? mile EMCON zone.  Theoretically they can prevent\nyou from running light AC motors, like air conditioners and Vacuums.\nIn practice, they use it mostly to  control  large radio users.\n\nI say:\nWhat I'm objecting to here is a floating billboard that, presumably,\nwould move around in the sky.  I, for one, am against legislating\nat all.  I just wish that people had a bit of common courtesy, and\nwould consider how their greed for money impacts the more ethereal and\naesthetic values that make us human.  This includes the need for wild\nand unspoiled things, including the night sky.\n\nGeorge\n-- \n|  George Krumins                     /^\\        The Serpent and the Rainbow  | \n|  gfk39017@uxa.cso.uiuc.edu       <^^. .^^>                                  |\n|  Pufferish Observatory           <_ (o) _>                                  |\n|                                     \\_/                                     | \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9750, "properties": {"category": "talk.politics.guns", "text": "From: HADCRJAM@admin.uh.edu (MILLER, JIMMY A.)\nSubject: Re: BATF/FBI revenge\nOrganization: University of Houston Administrative Computing\nLines: 38\nDistribution: world\nNNTP-Posting-Host: uhad2.admin.uh.edu\nX-News-Reader: VMS NEWS 1.24\nIn-Reply-To: donb@netcom.com's message of Tue, 20 Apr 1993 17:10:52 GMT\n\nIn <donbC5sL24.Ewu@netcom.com> donb@netcom.com writes:\n\n> Anyway, here's how I see the Waco affair; I'd be interested in other peoples'\n> interpretations...\n> \n> 1. Koresh and his people were basically minding their own business.\n> 2. Some weapons violations may have been committed and I wouldn't have\n>    disapproved of prosecuting him for those violations.  However, I think\n>    the BATF was criminal for starting negotiations with a military style\n>    assault and for firing into a house where there were children and other\n>    noncombatants.\n> 3. I don't see they couldn't just leave a token guard on the place and wait\n>    the BDs out; I don't approve of the tear gas approach and, if it caused\n>    the fire to be started, I think the FBI agent responsible should spend\n>    10-20 years in jail.\n\n  I think the legal term would be \"negligent homicide\"\n\n> 4. However, if Koresh's response to the tear gas was to kill everyone there,\n>    I hold him largely responsible for their deaths.\n\n\n  Well, it's nice to see someone with a brain, a general lack of paranoia, and\na willingness to put his thoughts in public.  I tend to agree with all you have\nsaid.\n\n  \"Never assume foul motives when stupidity will do.\" -- Jim's Corrolary to \n\t\t\t\t\t\t          Occam's Razor\n\nsemper fi,\n\nJammer Jim Miller \nTexas A&M University '89 and '91\n________________________________________________________________________________\n I don't speak for UH, which is too bad, because they could use the help.     \n\"Become one with the Student Billing System. *BE* the Student Billing System.\"\n \"Power finds its way to those who take a stand.  Stand up, Ordinary Man.\"    \n      ---Rik Emmet, Gil Moore, Mike Levine: Triumph \t\t              \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9751, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: U52885@uicvm.uic.edu\nSubject: Re: Gateway 2000 486DX/33 too noisy\nArticle-I.D.: uicvm.93096.135225U52885\nDistribution: usa\nOrganization: University of Illinois at Chicago, academic Computer Center\nLines: 15\n\nIn article <114152@bu.edu>, lcai@acs2.bu.edu says:\n>\n>I just received my Gateway 2000 486DX/33 mini-desktop system.\n>The first thing I noticed when I plugged in the power cord is the\n>noise that comes from the fan. In fact I can hear the noise in\n\nIf your Gateway is equipped with a Western hard drive, then the noise\nis probably coming from there and not from the fan.  The Western drives\nare notoriously noisy.  On the other hand, if you don't have a Western\ndrive, then maybe it is the fan.  There's not alot to do about it except\ninsulate around the cpu somehow.\n\nBarry Aldridge\nU of I/Chicago & 24-Hour Bar-B-Q\nStandard Old Disclaimer\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9752, "properties": {"category": "rec.sport.baseball", "text": "From: steph@cs.uiuc.edu (Dale Stephenson)\nSubject: Re: Notes on Jays vs. Indians Series\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nDistribution: na\nLines: 38\n\nIn <C5HpG6.4LM@andy.bgsu.edu> klopfens@andy.bgsu.edu (Bruce Klopfenstein) writes:\n\n>kime@mongoose.torolab.ibm.com (Edward Kim) writes:\n[...]\n>> \n>> I would tend to call the offensive contributions even, but Alomar wins hands\n>> down in defensive capabilities.  I'm not just talking about the number of \n>> errors; nobody (including Lind!) has the range and athleticism at second base.\n>> I can't recall in the recent past anyone turning the double play better\n>> than Alomar.  \n\n>Well, why don't you look up those stats?  Baerga may not be the best defensive\n>second baseman in the league, but he's damn good.  Check the stats for DPs\n>last year and see for yourself.\n\nAccording to the Defensive Average stats posted by Sherri, Baerga had the\nhighest percentage of DPs turned in the league, while Alomar had the worst.\nHowever, Alomar had a higher Defensive Average.  So who would be better?\n\nUsing Alomar's opportunities (469 groundballs, 73 possible double plays)\nAlomar had 332 groundouts and turned 18 DPs.\nBaerga would have had (with same DA & DP%) 328 groundouts and 35 DPs.\n\nUsing Baerga's opportunites (545 groundballs, 99 possible double plays).\nAlomar would have had (with the same DA & DP%) 386 groundouts and 25 DPs.\nBaerga had 381 groundouts and 47 DPs.\n\nBaerga looks better, though it's possible his DP% would be lower with a \ndifferent SS.\n\nWill Baerga consistently turn twice as many double plays, however?  Alomar\nhas established a high level of defense, Baerga has not.  I would bet on\nAlomar to be better next year, but last year Baerga was just as good overall.\n-- \nDale J. Stephenson |*| (steph@cs.uiuc.edu) |*| Grad Student At Large\n\n  \"It is considered good to look wise, especially when not \n   overburdened with information\" -- J. Golden Kimball\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9753, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: lam@mrcnext.cso.uiuc.edu (Ken Lam)\nSubject: Re: WANTED: Address SYMANTEC\nReply-To: lam@jove.cofc.edu\nOrganization: University of Illinois at Urbana\nLines: 27\n\ndewinter@prl.philips.nl (Rob de Winter) writes:\n\n>I am looking for the exact address of the Symantec Coporatoin, which \n>distributes Norton Desktop and other Windows software.\n>\n>The information I am looking for is:\n>\n>Mail address\n>Phone number\n>Fax number\n>E-mail address\n\nTry postmaster@norton.com \nor postmaster@symantec.com\n>\n>Thanks in advance.\n>\n>-- \n>*** Nothing beats skiing, if you want to have real fun during holidays. ***\n>***       Rob de Winter  Philips Research, IST/IT, Building WL-1        ***\n>***       P.O. Box 80000, 5600 JA  Eindhoven. The Netherlands           ***\n>***       Tel: +31 40 743621  E-mail: dewinter@prl.philips.nl           ***\n--\n---\nKen Lam\nNetwork Administrator @ University of Charleston / Dept of Biology & Geology\nS.C. Space Grant Consortium              (803)-792-4969 / FAX (803)-792-5446\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9754, "properties": {"category": "misc.forsale", "text": "From: nasa@suns.chinalake.navy.mil (Chris Adam Thomas)\nSubject: 1964 Ford Galaxy - Original Owner - 56914 miles - California Car\nOrganization: TnA Research\nLines: 12\n\nI'm posting this for my Mom and Dad's neighbor.  Please contact her\ndirectly.\n\n\t\t\t\tFor Sale\n\n1964 Ford Galaxy 500, 4 door, 390 cid engine, automatic, lt blue\n56914 miles (YES that is correct.  It was her 2nd car).  Original\nowner.  Alway garaged.  California inland valley car - NO rust.\nPaint good - original interior good.  Professionally maintained.\nEverything in good shape except gas gauge doesn't work.  \nAll original except a \"3rd brake light\" added :-(      $4000\nCall (916)451-3761\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9755, "properties": {"category": "comp.graphics", "text": "From: rych@festival.ed.ac.uk (R Hawkes)\nSubject: 3DS: Where did all the texture rules go?\nLines: 21\n\nHi,\n\nI've noticed that if you only save a model (with all your mapping planes\npositioned carefully) to a .3DS file that when you reload it after restarting\n3DS, they are given a default position and orientation.  But if you save\nto a .PRJ file their positions/orientation are preserved.  Does anyone\nknow why this information is not stored in the .3DS file?  Nothing is\nexplicitly said in the manual about saving texture rules in the .PRJ file. \nI'd like to be able to read the texture rule information, does anyone have \nthe format for the .PRJ file?\n\nIs the .CEL file format available from somewhere?\n\nRych\n\n======================================================================\nRycharde Hawkes\t\t\t\temail: rych@festival.ed.ac.uk\nVirtual Environment Laboratory\nDept. of Psychology\t\t\tTel  : +44 31 650 3426\nUniv. of Edinburgh\t\t\tFax  : +44 31 667 0150\n======================================================================\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9756, "properties": {"category": "soc.religion.christian", "text": "From: whitsebd@nextwork.rose-hulman.edu (Bryan Whitsell)\nSubject: Re: \"Accepting Jesus in your heart...\"\nReply-To: whitsebd@nextwork.rose-hulman.edu\nOrganization: Computer Science Department at Rose-Hulman\nLines: 7\n\nI have been told that I seem to be very smug in my post.  I appoligize\nif anyone felt this way. I did not at all desire to come across in\nthat way. I was trying to express that I didn't understand his logic\nand that I wished him the best in his life.\n\nIn Christ's Love,\nBryan Whitsell\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9757, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dcoleman@ccwf.cc.utexas.edu (Daniel M. Coleman)\nSubject: Re: pc-junior usable?\nOrganization: The University of Texas at Austin, Austin, Texas\nLines: 20\nNNTP-Posting-Host: flubber.cc.utexas.edu\n\nIn article <1993Apr17.201300.19312@sernews.raleigh.ibm.com> europa@tomcat.raleigh.ibm.com (Welch Bryan) writes:\n>My fiance has a pc-junior and wants to upgrade to a full 386.  Does anyone\n>know if we could use the monitor it came with on a new machine?  I heard\n>it's MCGA or EGA, but not sure which.  Also, does it use cards, so we can \n>use the drive controller, floppy, etc?\n\nThe only things you'll be able to salvage from the junior are the floppy drives\nand monitor.  The floppies are 360k, and the monitor is CGA, but you will need\nan adaptor cable to use it.  The junior does not use standard cards.  Unless \nyou're really strapped for cash, you should just junk the thing and buy new \nstuff.\n\nDan\n\n-- \nDaniel Matthew Coleman\t\t   |   Internet: dcoleman@ccwf.cc.utexas.edu\n-----------------------------------+---------- : dcoleman@utxvms.cc.utexas.edu\nThe University of Texas at Austin  |\t DECnet: UTXVMS::DCOLEMAN\nElectrical/Computer Engineering\t   |\t BITNET: DCOLEMAN@UTXVMS [.BITNET]\n-----------------------------------+------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9758, "properties": {"category": "rec.autos", "text": "From: wchutt@alex.monsanto.com (Bill C Hutton)\nSubject: MR2 Car Cover For Sale\nOrganization: Monsanto Company\nX-Newsreader: Tin 1.1 PL5\nLines: 19\n\n\n\n\nFor Sale:\n\nFitted car cover specifically for '91',92,'93 MR-2.\n\nTop of the line Evolution-3 [TM] fabric. Used for less than 6 months.\nThe cover is in excellent condition-no rips, cuts, stains or other\nblemishes. It has grommets for a locking cable. The color is silver.\n\nPrice: $90 f.o.b. will ship collect\n\n\nplease contact wchutt@monsanto.com\n\nor phone at\n\n314 576 3798 after 6 pm CDT\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.459+0000", "event": "documents", "entityId": 9759, "properties": {"category": "rec.autos", "text": "From: nuet_ke@pts.mot.com (KEITH NUETZMAN X3153 P7625)\nSubject: Re: Lois Chevrolet?\nSummary: Louis Chevrolet\nNntp-Posting-Host: 145.4.54.110\nReply-To: nuet_ke@pts.mot.com\nOrganization: Paging and Wireless Data Group\nLines: 13\n\n\nA little bit off of the subject but here goes\nyes he is one in the same (i.e. Chevrolet Motor Div)\nalso his brother Gaston raced at Indy and was the winner in 1920.\nI have also seen the name Arthur Chevrolet in the early teens (1911 and on)\nI assume he is related\n\nKeith Nuetzman, nuet_ke@pts.mot.com\nMotorola Inc.\nPaging and Wireless Data Group\nBoynton Beach, Fl\n\nsee ya at Indy 500 and \"400\" ...yes!!!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9760, "properties": {"category": "soc.religion.christian", "text": "From: David.Bernard@central.sun.com (Dave Bernard)\nSubject: Re: Question about Virgin Mary\nReply-To: David.Bernard@central.sun.com\nOrganization: Sun Microsystems\nLines: 9\n\nIn article 28782@athos.rutgers.edu, revdak@netcom.com (D. Andrew Kille) writes:\n>Just an observation- although the bodily assumption has no basis in\n>the Bible, Carl Jung declared it to be one of the most important pronouncements\n>of the church in recent years, in that it implied the inclusion of the \n>feminine into the Godhead.\n\n\n\nWhat did Jung mean by a \"Godhead?\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9761, "properties": {"category": "sci.med", "text": "From: joel@cs.mcgill.ca (Joel MALARD)\nSubject: Bone marrow sclerosis.\nSummary: Information sought.\nKeywords: Severely low blood cell count\nNntp-Posting-Host: binkley.cs.mcgill.ca\nOrganization: SOCS - Mcgill University, Montreal, Canada\nLines: 10\n\nI am looking for information on possible causes and long term effects\nof bone marrow sclerosis. I would also be thankful if anyone reading\nthis newsgroup could list some recognized treatment centers if anything\nelse than massive blood transfusion can be effective. If you plan on\na \"go to the library\"-style reply, please be kind enough to add a list \nof suggested topics or readings: Medicine is not my field.\n\nRegards,\nJoel Malard.\njoel@cs.mcgill.ca\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9762, "properties": {"category": "comp.graphics", "text": "From: jmuller@ic.sunysb.edu (John S Muller)\nSubject: WAYNE RIGBY\nOrganization: State University of New York at Stony Brook\nLines: 20\nDistribution: world\nNNTP-Posting-Host: csws18.ic.sunysb.edu\n\n\nSorry to clog up the news group with this message.\n\nWayne Rigby, I have the info you requested, but for some\nreason I can not mail it to you.  Please contact me!\nSend email address.\nj\n-- \n-------------------------------------------------------------------------------\n\"No Real Programmer can function without caffeine\" - Zen + Art of Internet\n\n     _/_/_/_/_/  _/_/_/_/_/  _/_/  _/_/        John S. Muller\n        _/      _/          _/  _/  _/         muller@diego.llnl.gov\n       _/      _/_/_/_/_/  _/  _/  _/          muller@sisal.llnl.gov\n _/   _/              _/  _/      _/           jmuller@libserv1.ic.sunysb.edu \n _/_/_/      _/_/_/_/_/  _/      _/            \n\n\"You are not drunk until you have to grab the grass,\n to keep the grass from falling off the earth\" - Some Stupid Comedian\n-------------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9763, "properties": {"category": "comp.graphics", "text": "From: ab@nova.cc.purdue.edu (Allen B)\nSubject: Re: thining algorithm\nOrganization: Purdue University\nLines: 15\n\nIn article <1q7615INNmi@shelley.u.washington.edu> kshin@stein.u.washington.edu  \n(Kevin Shin) writes:\n> I am trying obtain program to preprocess handwriting characters.\n> Like thining algorithm, graph alogrithm.\n> Do anyone know where I can obtain those?\n\nI usually use \"Algorithms for graphics and image processing\" by\nTheodosios Pavlidis, but other people here got them same idea and now\n3 of 4 copies in the libraries have been stolen!\n\nAnother reference is \"Digital Image Processing\" by Gonzalez and\nWintz/Wood, which is widely available but a little expensive ($55\nhere- I just checked today).\n\nab\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9764, "properties": {"category": "talk.politics.guns", "text": "From: hays@ssd.intel.com (Kirk Hays)\nSubject: Re: \"Proper gun control?\" What is proper gun control? (was Re: My Gun is like my American Express Card)\nNntp-Posting-Host: taos\nOrganization: Intel Supercomputer Systems Division\nLines: 30\n\nIn article <15240077@iftccu.ca.boeing.com>, bressler@iftccu.ca.boeing.com (Rick Bressler) writes:\n|> / iftccu:talk.politics.guns / hays@ssd.intel.com (Kirk Hays) /  3:31 pm  Apr 13, 1993 /\n|> \n|> >Some of the pro-gun posters in this group own no guns.  The dread \n|> >\"Terminator\", aka \"The Rifleman\", owned no firearms for several years \n|> >while posting in this group, as an example.  There are others.\n|> \n|> Good point, Kirk.\n|> \n|> He's still around too.  He's responded by email to a couple of my posts, \n|> and gosh darn, he's gotten down right civil!  This happed about the time \n|> he got his first firearm.  Wonder if there is a relationship here?  Turns\n|> out that MOST people (at least the ones who are not criminals to start\n|> with) act responsibility once given the chance.\n\nI'd like to point out that I was in error - \"Terminator\" began posting only \nsix months before he purchased his first firearm, according to private email\nfrom him.\n\nI can't produce an archived posting of his earlier than January 1992,\nand he purchased his first firearm in March 1992.\n\nI guess it only seemed like years.\n\nBack to your regularly scheduled flame fest.\n\n-- \nKirk Hays - NRA Life, seventh generation.\n\"The only thing necessary for the triumph of evil is for good men to\ndo nothing.\"  -- Edmund Burke (1729-1797)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9765, "properties": {"category": "alt.atheism", "text": " cs.utexas.edu!uunet!olivea!sgigate!sgiblab!adagio.panasonic.com!nntp-server.caltech.edu!bdunn\nSubject: Re: The wrong and the right.\nFrom: bdunn@cco.caltech.edu (Brendan Dunn)\nOrganization: California Institute of Technology, Pasadena\nNNTP-Posting-Host: punisher.caltech.edu\nLines: 25\n\nIn article <93090.141001E62763@TRMETU.BITNET> <E62763@TRMETU.BITNET> writes:\n>Hi.I'm a Turkish guy who had tried atheism,satenism and buddism at some instant\n>s of hislife.Finally I decided on Islambecause of many facts which I intend to\n> write here.From my point of view,you atheists are people who has dropped to a\n>deep,dark well and thinking the only reality is the dusty walls of the well.But\n> if you had looked a little bit upward you would see the blue skies.You'dsee t\n>he truth but you close your eyes.Allah is the only GOD and Mohammed is his mess\n> ager.now,let's generate some entropy in means of theology and thermodynamics.W\n>hat's your point of view to the problem of the ''FIRST KISS''?That is,the first\n> spark which was generated for the formation of the universe.Has it formed by i\n>tself?You are bothering yourselves with the Big Bang but where is the first spa\n>rk?Please think a bit.Think and return to the only reality of the universe:ISLA\n>M|\n\nUh oh.  This looks a bit too much like Bobby's \"Atheism Is False\" stuff.  Are\nwe really going to have to go through this again?  Maybe the universe is\ncyclical!  :)  :(\n\n\n\n\n\n\n\n--Brendan Dunn\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9766, "properties": {"category": "talk.religion.misc", "text": "From: pepke@dirac.scri.fsu.edu (Eric Pepke)\nSubject: Re: Societal basis for morality\nOrganization: Florida State University, but I don't speak for them\nLines: 13\n\nIn article <merlyn.735422443@digibd> merlyn@digibd.digibd.com (Merlyn LeRoy) writes:\n>Prayer in school is legal; what is illegal is telling children\n>what to pray, or not to pray.  Many people confuse \"you can't\n>tell kids that they ought to pray now\" with \"kids aren't allowed\n>to pray\", possibly because so few kids do so without being told.\n\nOr perhaps it's because they think that all governmental bodies should be in\nthe business of suppressing all beliefs other than their own, or else they're\nsome sort of Satanic Humanist Conspiracy.\n\nIt's the old \"if you're not for us you're against us\" bit.\n\n-EMP\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9767, "properties": {"category": "sci.med", "text": "From: aldridge@netcom.com (Jacquelin Aldridge)\nSubject: Re: Teenage acne\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 57\n\npchurch@swell.actrix.gen.nz (Pat Churchill) writes:\n\n\n>My 14-y-o son has the usual teenage spotty chin and greasy nose.  I\n>bought him Clearasil face wash and ointment.  I think that is probably\n>enough, along with the usual good diet.  However, he is on at me to\n>get some product called Dalacin T, which used to be a\n>doctor's-prescription only treatment but is not available over the\n>chemist's counter.  I have asked a couple of pharmacists who say\n>either his acne is not severe enough for Dalacin T, or that Clearasil\n>is OK.  I had the odd spots as a teenager, nothing serious.  His\n>father was the same, so I don't figure his acne is going to escalate\n>into something disfiguring.  But I know kids are senstitive about\n>their appearance.  I am wary because a neighbour's son had this wierd\n>malady that was eventually put down to an overdose of vitamin A from\n>acne treatment.  I want to help - but with appropriate treatment.\n\n>My son also has some scaliness around the hairline on his scalp.  Sort\n>of teenage cradle cap.  Any pointers/advice on this?  We have tried a\n>couple of anti dandruff shampoos and some of these are inclined to\n>make the condition worse, not better.\n\n>Shall I bury the kid till he's 21 :)\n\n:) No...I was one of the lucky ones. Very little acne as a teenager. I\ndidn't have any luck with clearasil. Even though my skin gets oily it\nreally only gets miserable pimples when it's dry. \n\nFrequent lukewarm water rinses on the face might help. Getting the scalp\nthing under control might help (that could be as simple as submerging under\nthe bathwater till it's softened and washing it out). Taking a one a day\nvitamin/mineral might help. I've heard iodine causes trouble and that it  \nis used in fast food restaurants to sterilize equipment which might be\nwhere the belief that greasy foods cause acne came from. I notice grease \non my face, not immediately removed will cause acne (even from eating\nmeat).\n\nKeeping hair rinse, mousse, dip, and spray off the face will help. Warm\nwater bath soaks or cloths on the face to soften the oil in the pores will\nhelp prevent blackheads. Body oil is hydrophilic, loves water and it\nsoftens and washes off when it has a chance. That's why hair goes limp with\noilyness. \n\nBecoming convinced that the best thing to do with\na whitehead is leave it alone will save him days of pimple misery. Any\nprying of black or whiteheads can cause infections, the red spots of\npimples. Usually a whitehead will break naturally in a day and there won't\nbe an infection afterwards.\n\nTell him that it's normal to have some pimples but the cosmetic industry\nmakes it's money off of selling people on the idea that they are an\nincredible defect to be hidden at any cost (even that of causing more pimples). \n\n\n-Jackie-\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9768, "properties": {"category": "soc.religion.christian", "text": "From: kilroy@gboro.rowan.edu\nSubject: Re: Certainty and Arrogance\nLines: 112\n\nMy last article included this quote:\n\n \"If any substantial number of  [ talk.religion.misc ]  readers read some\n  Wittgenstein, 60% of the postings would disappear.  (If they *understood*\n  some Wittgenstein, 98% would disappear. :-))\" -- Michael L Siemon\n\nSomeone called `boundary' wrote:\n \n> This quote seems a little arrogant, don't you think?\n\nThere is a convention called a `smiley', which looks like this:   :-)  .\nIt is supposed to look like a sideways smiley-face, and indicates that the\npreceding comment is supposed to be funny.\n\n\nAnd, I'll note that I have participated on talk.religion.misc for over\nfive years -- I'd say Mr Siemon was not too far off.  8^)\n\n *\n\nIn the meat of his reply, Mr Boundary serves up an excellent example of what\nI meant by \"There is no way out of the loop\".  I wrote that human brains \"are\ninfested with sin\", and can be trusted only in limited circumstances.\n\nIn reply, Mr Boundary wrote:\n\n> I would beg to differ with you here.  The properly-formed conscience\n> can be trusted virtually ALL the time.\n\nWhich just moves the problem back one level: how do you tell if your\nconscience is properly formed?\n\nThe only way to tell is to presuppose that you are capable of judging the\nformed-ness of your own conscience.  In other words, you can only be sure\nthat your conscience is `properly formed' if you assume that your evaluation\ncan be trusted.  Assuming your conclusions saves you a lot of time, I'll\ngrant, but it's not a valid way of reasoning.\n\nUnless you are infallible, your judgements about your own thinking cannot be\ncertain.  Therefore, it is not possible to be certain your conscience is\n`properly formed'.  (Whatever that is supposed to mean.)\n\n\nMr Boundary then gives another paradigm example of the problem:\n\n> Now you have hit on the purpose of the Church.  It is by necessity the\n> infallible interpreter of divine revelation.  Without the Church,          \n> Christianity would be nothing more than a bunch of little divisive sects.\n\nThe Church is `by necessity' the infallible interpreter of divine revelation?\nHow do you know?  Presumably, you believe this because of some argument or\nanother -- how do you know that the argument contains no mistakes?\n\nYou write:\n\n> Therefore, although our minds are finite and susceptible to error, our\n> competence in arriving at inductive insights gives confidence in our\n> ability to distinguish what is true from what is not true, even in areas\n> not subject to the experimental method. \n\nBut there is a huge difference between `confidence in our ability to\ndistinguish what is true from what is not true' and `infallible'.  I am\nconfident about a lot of things, but absolute certainty is a very long way\nfrom `confident'.\n\nThis discussion is about the arrogance of claiming to be absolutely certain\n(really, go check the subject line).  Saying you are absolutely certain is\nsignificantly different than saying you are confident.  When you say that\nyou are confident, that invites people to ask why.\n\nExcept in very limited circumstances, when you say that you are absolutely\ncertain, it invites people to dismiss you as someone who does not have any\nidea of his own fallibility.\n\n\nI have yet to meet anyone who believed in a knowably-infallible source of\ntruth who would admit the possibility of errors in his reasoning.  All of\nthem -- every last one -- has claimed that he was himself infallible.\nThe result has been to convince me that they had no idea what was going on.\n\n\nDarren F Provine / kilroy@gboro.rowan.edu\n\n[This particular discussion may not be entirely relevant to the\noriginal criticism.  I get the feeling that the original poster\nregarded as arrogant the very idea that there are right and wrong\nanswers in religion, and that the difference can have eternal\nconsequences.  When I say that I think there is a hell and that he is\nat least in significant danger of ending up there, I will admit that\n-- as you say -- the reasoning processes I used to reach this are\nfallible.  Thus at least in principle I could be wrong.  But these\nbasic facts are clearly enough taught in the Bible that I think it's\nunlikely that I'm misinterpreting it.  (In order to get this level of\nconfidence, I've tried to frame my statement sufficiently carefully as\nto sidestep a number of the more controversial issues.  I haven't, for\nexample said that all non-Christians will definitely end up in hell,\nand I haven't attempted to describe hell in any detail.)  I have a\nfeeling that my view is going to be regarded as arrogant and\nintolerant even though I acknowledge that I'm fallible and so there's\nsome chance I'm wrong.\n\nDon't get me wrong -- I think there are a lot of genuinely arrogant\nChristians, and often criticism of us is justified.  But in at least\nsome cases I think the criticisms constitute blaming the messenger.\nIf the universe is set up so that there are eternal consequences for\ncertain decisions, it's not my fault -- I'm just telling it the way I\nthink it is.  You may think God is immoral for setting things up that\nway.  It's one of the critiques of Christianity that I find it most\ndifficult to respond to.  But it's not arrogance for me to tell what\nI think is the truth.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9769, "properties": {"category": "misc.forsale", "text": "From: tomcat@leland.Stanford.EDU (tom spearman)\nSubject: ATTENTION:  ALL NEO-GEO OWNERS READ THIS!\nKeywords: neo-geo\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 25\n\nHello Neo-Geo owners (and non-owners who couldn't resist the title;)),\n\nI was wondering if any of you out there want to trade or sell games.  I\nmean, buying them from the stores can get kinda expensive.  $184.99 is\na little too much to be spending on each game.  But ahh, the quality...\nNow I can get them for about $100, but that's still a lot.\n\nRight now, I have:\n\nCrossed Swords\nMagician Lord\nBaseball Stars 2\nFatal Fury\nNam-1975\n\nI am interested in buying more titles.  If any of you have any interesting\ntrade ideas, please let me know.\n\n\nThanks\n\nTom\ntomcat@leland.stanford.edu\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9770, "properties": {"category": "rec.sport.baseball", "text": "From: dpeterik@iastate.edu (Dan Peterik)\nSubject: Re: Brewer Notes\nOrganization: Iowa State University, Ames IA\nLines: 26\n\nIn <30MAR93.02086551.0010@MUSIC.LIB.MATC.EDU> PFAN <PFAN@MUSIC.LIB.MATC.EDU> writes:\n\n>For those of you who know who Bernie Brewer is, he's back.  The\n>team mascot, if you will, was given his walking papers a few years\n>ago, but the fans voted him back last season and he will be perched\n>in the his familiar home in the outfield and will again slide down\n>into a barrel of beer when home runs are hit.\n\nThat is great to hear I just may have to take a raod trip to Milwakee this year and see that again.  Last time I saw Bernie Brewer was at the age of 10 and I am now 21 thanks for this post.\n\n>One final note, Bill Spiers is leading the Brewers with 13 RBI's in\n>exhibition play.  Looks like he's bouncing back nicely from back\n>problems.\n\nGood to Bill is getting better form the limited coverage we get here in Iowa\nI know that this will be a great season for the BREW CREW!!\n\n\n>/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\\n>| Pete Fanning, Computer Operator  | \"Leadership is ACTION |\n>| Office of Information Technology |  ...NOT Position\"     |\n>| Milwaukee Area Technical College |     -- D. H. McGannon |\n>|**********************************************************|\n>| Email: pfan@music.lib.matc.edu (Internet)                |\n>|  -or-  Pete.Fanning@f71.n154.z1.fidonet.org              |\n>\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9771, "properties": {"category": "comp.graphics", "text": "From: \"james kewageshig\" <james.kewageshig@canrem.com>\nSubject: articles on flocking?\nReply-To: \"james kewageshig\" <james.kewageshig@canrem.com>\nOrganization: Canada Remote Systems\nDistribution: comp\nLines: 17\n\nHI All,\nCan someone point me towards some articles on 'boids' or\nflocking algorithms... ?\n\nAlso, articles on particle animation formulas would be nice...\n ________________________________________________________________________\n|0 ___ ___  ____  ____  ____                                            0|\\\n|   \\ \\//    ||    ||    ||                James Kewageshig              |\\|\n|   _\\//_   _||_  _||_  _||_      UUCP: james.kewageshig@canrem.com      |\\|\n|   N E T W O R K    V I I I    FIDONET:   James Kewageshig - 1:229/15   |\\|\n|0______________________________________________________________________0|\\|\n \\________________________________________________________________________\\|\n---\n \u00fe DeLuxe\u00fd 1.25 #8086 \u00fe Head of Co*& XV$# Hi This is a signature virus. Co\n--\nCanada Remote Systems - Toronto, Ontario\n416-629-7000/629-7044\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9772, "properties": {"category": "sci.med", "text": "Subject: Re: Bates Method for Myopia\nFrom: jc@oneb.almanac.bc.ca\nOrganization: The Old Frog's Almanac, Nanaimo, B.C.\nKeywords: Bates method\nSummary: Proven a hoax long ago\nLines: 15\n\nDr. willian Horatio Bates born 1860 and graduated from med school\n1885.  Medical career hampered by spells of total amnesia.  Published in\n1920, his great work \"The Cure of Imperfect Eyesight by Treatment With-\nout Glasses\", He made claims about how the eye actually works that are\nsimply NOT TRUE.  Aldous Huxley was one of the more \"high profile\"\nbeleivers in his system.  Mr. Huxley while giving a lecture on Bates system\nforgot the lecture that he was supposedely reading and had to put the\npaper right up to his eyes and then resorted to a magnifying glass from\nhis pocket.  book have been written debunking this technique, however\nthey remain less read than the original fraud.  cheers\n\n           jc@oneb.almanac.bc.ca (John Cross)\n     The Old Frog's Almanac  (Home of The Almanac UNIX Users Group)    \n(604) 245-3205 (v32)    <Public Access UseNet>    (604) 245-4366 (2400x4)\n        Vancouver Island, British Columbia    Waffle XENIX 1.64  \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9773, "properties": {"category": "sci.space", "text": "From: buenneke@monty.rand.org (Richard Buenneke)\nSubject: White House outlines options for station, Russian cooperation\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 71\n\n------- Blind-Carbon-Copy\n\nTo: spacenews@austen.rand.org, cti@austen.rand.org\nSubject: White House outlines options for station, Russian cooperation\nDate: Tue, 06 Apr 93 16:00:21 PDT\nFrom: Richard Buenneke <buenneke@austen.rand.org>\n\n4/06/93:  GIBBONS OUTLINES SPACE STATION REDESIGN GUIDANCE\n\nNASA Headquarters, Washington, D.C.\nApril 6, 1993\n\nRELEASE:  93-64\n\n        Dr.  John H.  Gibbons, Director, Office of Science and Technology\nPolicy, outlined to the members-designate of the Advisory Committee on the\nRedesign of the Space Station on April 3, three budget options as guidance\nto the committee in their deliberations on the redesign of the space\nstation.\n\n        A low option of $5 billion, a mid-range option of $7 billion and a\nhigh option of $9 billion will be considered by the committee.  Each\noption would cover the total expenditures for space station from fiscal\nyear 1994 through 1998 and would include funds for development,\noperations, utilization, Shuttle integration, facilities, research\noperations support, transition cost and also must include adequate program\nreserves to insure program implementation within the available funds.\n\n        Over the next 5 years, $4 billion is reserved within the NASA\nbudget for the President's new technology investment.  As a result,\nstation options above $7 billion must be accompanied by offsetting\nreductions in the rest of the NASA budget.  For example, a space station\noption of $9 billion would require $2 billion in offsets from the NASA\nbudget over the next 5 years.\n\n        Gibbons presented the information at an organizational session of\nthe advisory committee.  Generally, the members-designate focused upon\nadministrative topics and used the session to get acquainted.  They also\nreceived a legal and ethics briefing and an orientation on the process the\nStation Redesign Team is following to develop options for the advisory\ncommittee to consider.\n\n        Gibbons also announced that the United States and its\ninternational partners -- the Europeans, Japanese and Canadians -- have\ndecided, after consultation, to give \"full consideration\" to use of\nRussian assets in the course of the space station redesign process.\n\n        To that end, the Russians will be asked to participate in the\nredesign effort on an as-needed consulting basis, so that the redesign\nteam can make use of their expertise in assessing the capabilities of MIR\nand the possible use of MIR and other Russian capabilities and systems.\nThe U.S. and international partners hope to benefit from the expertise of\nthe Russian participants in assessing Russian systems and technology.  The\noverall goal of the redesign effort is to develop options for reducing\nstation costs while preserving key research and exploration capabilitiaes.\nCareful integration of Russian assets could be a key factor in achieving\nthat goal.\n\n        Gibbons reiterated that, \"President Clinton is committed to the\nredesigned space station and to making every effort to preserve the\nscience, the technology and the jobs that the space station program\nrepresents.  However, he also is committed to a space station that is well\nmanaged and one that does not consume the national resources which should\nbe used to invest in the future of this industry and this nation.\"\n\n        NASA Administrator Daniel S.  Goldin said the Russian\nparticipation will be accomplished through the East-West Space Science\nCenter at the University of Maryland under the leadership of Roald\nSagdeev.\n\n------- End of Blind-Carbon-Copy\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9774, "properties": {"category": "rec.autos", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Re: Too fast\nOrganization: Lehigh University\nLines: 13\n\nIn article <3090@shaman.wv.tek.com>, andrew@frip.WV.TEK.COM (Andrew Klossner) wr\nites:\n>[]\n>\n>       \"Can I ask.  Have any of you been at the speed of 130?  It's a\n>       rush.\"\n>\n>So is cocaine.  What's your point?\n>\n>  -=- Andrew Klossner  (andrew@frip.wv.tek.com)\n>\n Yeah, and the cop couldn't catch me.....\n-- \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9775, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wefiii@axion.UUCP (Warren E. Fridy III)\nSubject: Re: Program manager ** two questions\nReply-To: wefiii%axion@palan.palantir.com\nOrganization: Private\nLines: 17\n\nIn <1993Apr22.204406.20330@vpnet.chi.il.us> lisbon@vpnet.chi.il.us (Gerry Swetsky) writes:\n\n>(2) Can you set up a short-cut key to return to the Program Manager? \n>    I know <CTL><ESC>, <ESC> will do it, but I'd rather set it up so I \n>    can avoid the task list and get back to the P/M with <ALT><F1>.\n\nYou might try the recorder and make a micro.  I done that to do certain operations \nin a windows app that didn't have the ability to use a micro.  It should be in the \nAccessories window.  The only problem is that it has to be runing for it to work.\nBut, Good Luck.\n\n\n-- \n--Warren E. Fridy III\n    250 61st. Street North   |\n    St. Petersburg, FL 33710 |  internet: wefiii%axion@palan.palantir.com\n    (813)384-0584            |  UUCP: ...palan!deep6!axion!wefiii\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9776, "properties": {"category": "sci.crypt", "text": "From: zrepachol@cc.curtin.edu.au (Paul Repacholi)\nSubject: What is going on?...\nLines: 26\nOrganization: Curtin University of Technology\nDistribution: inet\n\nIn article <1qhc2p$8d8@transfer.stratus.com>, cme@ellisun.sw.stratus.com (Carl Ellison) writes:\n> In article <1993Apr14.120229.15878@mnemosyne.cs.du.edu> rwebb@nyx.cs.du.edu (Russell Webb) writes:\n...\n> Call me paranoid, but this is the same kind of scare story which Dorothy\n> Denning was citing while calling for the limitation of cryptography.\n> \n> I doubt that DD is behind this -- \n> \n> but I suspect that the FBI (and maybe NSA) are behind DD and those agencies\n> could easily be mounting a nationwide campaign (with our tax dollars?) to\n> build up public outcry against digital communication -- especially against\n> unbreakable, encrypted communication.\n> \n> \n> What's going on here??\n> \n\nHaven't you read any of Noam Chomsky's works? A widely used information net\noutside the control of the 'right people' is unthinkable. Hundreds of billions\nof dollars will be spent to wipe it out, sorry, 'regulate and order it' once\nthe major media and poitical powers wake up to the efect it can have.\n\nIf you can't be bothered reading, get the video \"Manufacturing Consent\".\n\n~Paul\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9777, "properties": {"category": "alt.atheism", "text": "Subject: Re: Don't more innocents die without the death penalty?\nFrom: lippard@skyblu.ccit.arizona.edu (James J. Lippard)\nDistribution: world,local\nOrganization: University of Arizona\nNntp-Posting-Host: skyblu.ccit.arizona.edu\nNews-Software: VAX/VMS VNEWS 1.41    \nLines: 21\n\nIn article <chrisb.734068710@bAARNie>, chrisb@tafe.sa.edu.au (Chris BELL) writes...\n>\tkilling is wrong\n>\tif you kill we will punish you\n>\tour punishment will be to kill you.\n> \n>Seems to be lacking in consistency.\n\nNot any more so than\n\n      holding people against their will is wrong\n      if you hold people against their will we will punish you\n      our punishment will be to hold you against your will\n\nIs there any punishment which isn't something which, if done by a private\nperson to another private person for no apparent reason, would lead to\npunishment?  (Fines, I suppose.)\n\nJim Lippard              Lippard@CCIT.ARIZONA.EDU\nDept. of Philosophy      Lippard@ARIZVMS.BITNET\nUniversity of Arizona\nTucson, AZ 85721\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9778, "properties": {"category": "rec.sport.baseball", "text": "From: falcon@cs.mcgill.ca (Scot Hughes)\nSubject: Re: I hate to mention Acker, but....\nKeywords: Acker, Orioles, DoppleAckers?\nNntp-Posting-Host: binkley.cs.mcgill.ca\nOrganization: None\nDistribution: na\nLines: 32\n\nIn article <14APR199316550695@jhuvms.hcf.jhu.edu> hasch@jhuvms.hcf.jhu.edu (Bruce M Hasch) writes:\n>In article <1993Apr14.193114.2328@hpcvaac.cv.hp.com>, paula@koufax.cv.hp.com (Paul Andresen) writes...\n>>I feel as if I might be causing some bad karma by doing this, but I just have\n>>to know......\n>> \n>>Is the Ack man still in organized baseball? \n>\n>\tGlad you asked!!  The Ack-man, and nine of his relatives, are currently\n>impersonating the Baltimore Orioles pitching staff.  Personally, I believe \n>that the Evil Ackers kidnapped the real O's staff, and are currently in the\n>process of impersonating Mussina, Sutcliffe, McDonald, Olson. \n\n\tNo, no no. The Ack man is apparently an alien life-form, much\nlike the pod people from planet Mars, who can take on any form (the\nability remains the same, however). The Ack-people have been spotted on\nmany teams to date, but it appears that the Orioles staff (mentioned\nabove) and the Expos bullpen (Barnes, Walton, Fassero, Gardiner and\nRojas) have been the prime target. Apparently John Wetteland was roughed\nup by the Ack-people during spring training due to the fact that his\nsystem rejected the takeover, and has been on the DL ever since. Contact\nthe authorities! This evil plot must be stopped! (the Ack-people can\nkeep Jack Morris and Juan Guzman, though. I enjoy watching Toronto fans\nsuffer too much to want these guys returned to normal ;-)\n\nScot.\n\n\n-- \n-----------------------------------------------------------------------------\nScot Hughes        | Department of Chemical Engineering | Expos in '93!\nfalcon@cs.mcgill.ca| McGill University, Montreal, Quebec| {witty saying here}\n-----------------------------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9779, "properties": {"category": "rec.sport.hockey", "text": "From: epritcha@s.psych.uiuc.edu ( Evan Pritchard)\nSubject: Re: div. and conf. names\nDistribution: na\nOrganization: UIUC Department of Psychology\nLines: 59\n\nmaynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n>In <115873@bu.edu> Jason Gibson writes:\n\n>>I can live with the other changes that have been made (e.g. the playoff format\n>>change), but the change to the division and conference names really annoys me.\n>>\"Batman\" was on TSN last night saying that changing the names would make the\n>>game easier for the \"occasional fan to follow\".  He should have said what he\n>>meant: that changing the names will make the game easier for _Americans_ in \n>>non-hockey cities to follow.  I don't know of too many of my friends who had \n>>a hard time following which teams were in each division. Even a minimal amount\n>>of exposure to the game allows a person to quickly pick up on this.\n\n>There is nothing wrong with making the game easier for \"_Americans_\" to\n>follow.  The more fans the merrier and even if you dislike the \"occasional\"\n>fan there is always the chance that these fans will become fanatics.\n\n>I am glad that the names are being changed for another reason.  The names\n>Patrick, Smythe, Norris, Adams and Campbell are all the names of so-called\n>\"builders\" of the game.  This is the same type of thinking that put Stein\n>in the Hall of Fame.  This is absolute nonsense.  The real builders of the\n>game are Richard, Morenz, Howe, Conacher, Orr, etc.  If you are going to\n>name the divisions after people at least name the divisions after people\n>who deserve it.\n\n\tI think that you are incorrect, Roger.  Patrick,\nSmythe and Adams all played or coached in the league before becoming\nfront office types.  Hence, they did help build the league, although\nthey were not great players themselves.  \n\n\tI agree that a name is a name is a name, and if some people\nhave trouble with names that are not easily processed by the fans,\nthen changing them to names that are more easily processed seems like\na reasonable idea.  If we can get people in the (arena) door by being\nuncomplicated, then let's do so.  Once we have them, they will realize\nwhat a great game hockey is, and we can then teach them something\nabotu the history of the game.  \n \n>The history of the names can be put rather succinctly.  All of the aforemen-\n>tioned used the game of hockey to make money.  Can you imagine a Pocklington\n>division?  A Ballard division?  Or how about a Green division?\n\n\tNo, I would not want to see a Ballard division.  But to say\nthat these owners are assholes, hence all NHL management people are\nassholes would be fallacious.  Conn Smythe, for example, was a classy\nindividual (from what I have heard). \n\n\tAlso, isn't the point of \"professional\" hockey to make money\nfor all those involved, which would include the players.  What I think\nyou might be saying is that the players have not made as much money as\nshould have been their due, and it is the players that are what make\nthe game great not the people who put them on the ice, so naming\ndivision after management people rather than players is adding insult\n(in the form of lesser recognition) to injury (less money than was\ndeserved).   \n\n_______________________\nEvan Pritchard --------  Number 1 or 9 depending on the hockey pool \n=======================\nepritcha@psych.uiuc.edu  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9780, "properties": {"category": "rec.autos", "text": "From: smartin@cbnewsm.cb.att.com (steven.c.martin)\nSubject: Re: Car buying story, was: Christ, another dealer service scam...\nOrganization: AT&T\nDistribution: usa\nLines: 36\n\nFrom article <1993Apr16.162950.25849@newsgate.sps.mot.com>, by markm@bigfoot.sps.mot.com (Mark Monninger):\n\n> This kind of behavior is what I was shocked by in my 'experience'. For  \n> crying out loud, how do these turkeys think they can talk to customers  \n> this way and still stay in business? Again, I don't expect sales people to  \n> bow, scrape, and grovel in my presence but I sure don't expect to be  \n> abused either. I was very surprised by the way the sales people talked to  \n> me and in other 'negotiating' sessions I overheard in neighboring sales  \n> cubicles. Evidently, their success rate is high enough that they continue  \n> to do business this way. There must be a lot of people out there who are  \n> easy to intimidate.\n> \n\nA couple of months ago I went to a dealership to test drive a car.  Afterwards,\nwe sat down to discuss prices.  I explained that I wanted a car just like the\none I drove, but in a different color.  He said he could get one exactly like\nI wanted from the dealer network within a day.  We then negotiated a price and\nsigned the deal.\n\nNext day, I get a call.  He explains that they goofed, and they had neglected\nto take into account a price increase. (The last price increase had occurred\nover 4 months prior to my visit.)  If I still wanted the car, I would\nhave to fork over another $700.  As an alternative, they would honor the\nprice if I bought the car I test drove (which had been sitting around for \n6 months and had a few miles on it). I said goodbye.  This was a good\nexample of how they can lowball you and still cover their butts.  It's too\nbad more people don't demand honesty or these types of dealers would\nno longer be in business.  \n\nThe next dealership I went to was straightforward and honest.  First thing the\nsalesman said was, \"Lets's see what you have for dealer cost and work out\nhow much profit I should make.\"  The deal went through with no problems.\n\n\t\t\t\t\tSteve\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9781, "properties": {"category": "rec.sport.baseball", "text": "From: vince@sscl.uwo.ca\nSubject: Re: Early BBDDD Returns?\nOrganization: Social Science Computing Laboratory\nNntp-Posting-Host: vaxi.sscl.uwo.ca\nLines: 11\n\nIn article <1993Apr16.073051.9160@news.cs.brandeis.edu>, st902415@pip.cc.brandeis.edu (Adam Levin) writes:\n> Just curious if anyone has started to standout early in the season in the\n> BB DDD this year. ...\n> \n> A concerned fan of the BB DDD,\n\nI am hoping to produce the first update of the BB DDD this week;\nplease send info about the most significant (longest, most critical,\netc.) home run that you have seen yet this season.\n\nVince.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9782, "properties": {"category": "comp.graphics", "text": "From: neideck@nestvx.enet.dec.com (Burkhard Neidecker-Lutz)\nSubject: Re: Rumours about 3DO ???\nOrganization: CEC Karlsruhe\nLines: 17\nNNTP-Posting-Host: NESTVX\nKeywords: 3DO ARM QT Compact Video\n\nIn article <2BD07605.18974@news.service.uci.edu> rbarris@orion.oac.uci.edu (Robert C. Barris) writes:\n>I'm not sure how a Centris/20MHz 040 stacks up against the 25 MHz ARM in\n>the 3DO box. Obviously the ARM is faster, but how much?\n\nWhy would it have to be much faster (it probably is) ? Assuming an ARM\nis about as efficient as a MIPS R3000 for integer calculations, doing\na Compact-Video-like digital video codec is an easy task. For Software\nMotion Pictures (which is a lot like Compact Video, though it predates\nit), we get 48 frames/sec. at 320x240 on a DECstation 5000/200. That\nmachine has a 25 Mhz MIPS R3000. \n\n\t\tBurkhard Neidecker-Lutz\n\nDistributed Multimedia Group, CEC Karlsruhe          EERP Portfolio Manager\nSoftware Motion Pictures & BERKOM II Project         Multimedia Base Technology\nDigital Equipment Corporation\nneidecker@nestvx.enet.dec.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.460+0000", "event": "documents", "entityId": 9783, "properties": {"category": "rec.sport.hockey", "text": "From: slegge@kean.ucs.mun.ca\nSubject: Leafs versus Wings\nLines: 46\nOrganization: Memorial University. St.John's Nfld, Canada\n\nHow long can the Leafs play short-handed and still be expected to\nscore?  They did some fine penely-killing in the first (2 men down\nfor a couple of minutes at one point) but they just couldn't keep it \nup.  They spent virtually the entire game either short-handed or\njust coming off a penelty -- as soon as they'd get re-grouped, they're\npenalized again!\n \nSheesh -- like Gilmour said after the 1st -- you can't go calling \nevery little push an shove in a game like that.  And if you're going\nto, you have to do it for both teams.\n \nPearson (one of my four favorite Leafs) played like a bonehead -- I\nsaw him personally screw up at least 2 good scoring opportunities, and\nthen he got that *bonehead* 5-minute major high-sticking penalty.\n \nCullen has gotten stronger since his return from injury a hand-full of\ngames ago and he played a good game.  If the other players on his line\ncan smarten up, that line should do okay.  Clark's got to get tough --\nhe's got to intimidate and go for the net.  Send Clark up the left \nwing over the blue line a couple times... his patented wrist shot will\nput some numbers on the board... and Pearson... heck, maybe he should\nbe benched.\n \nI hate to repeat Grapes, but where the heck was Foligno?  Zezel can't\ndo all the checking himself -- and get MacLlwain on the move... we \nneed some speed out there!  Keep Potvin in net, he did okay \nconsidering... although (like I said a couple weeks ago) Potvin \nmessed up in a couple games in the AHL playoffs last year -- he can \neasily do it again.\n \nMy prediction last week was Toronto in 7 -- that the games DET wins \nwill be blow-outs and the game TOR wins will be close -- I still stand\nby that.\n \nDon't fret, Leafs fans, in order to win in 7, the other team has to\nwin 3! :-)\n \nBurns is going to make some magic -- he'll mix up some lines.  Match\nthe Wings line-per-line.  He'll have his team checking hard, and he'll\nnever let them get out-numbered in their own end.  The Leafs will win\nWednesday night... and will take 1 or their home games (probably the\nfirst one).\n \nStephen LEAF Legge\nSLEGGE@kean.ucs.mun.ca\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9784, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: HELP: is my monitor dying???\nFrom: edwin@ccu1.aukuni.ac.nz (Edwin Ng)\nOrganization: University of Auckland, New Zealand.\nLines: 25\n\nHi.  Recently my svga monitor has been acting up by taking about\n3 minutes to warm up.  \n\nPreviously, when I first start up my PC I can see all the \nCMOS messages (RAM test ...etc) but now I've got to wait \nfor about 3min before the display shows anything and\nit starts up with a bright white flash.  This only happens\nwhen the system has been off for a long time (eg overnight).\nIf it was only off for a couple of hours and then turned on\nagain, the display works as normal like before.\n\nDoes anyone know what is causing this?  Is it a warning that\nit will give up soon or just signs of aging (the system is a\n386sx and its about 3 yrs old).  I've used systems at work for\nyears and never seen this happen to a monitor yet.\n\nI'd really appreciated any help that you fellow netters can offer.\nThanks a lot.\n\nEdwin\n-- \n-----------------------------------------------------\n* Edwin Ng (edwin@ccu1.aukuni.ac.nz)                *\n* E&E Engineering, University of Auckland           *\n* Private Bag 92019, Auckland, NEW ZEALAND          *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9785, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: The Inimitable Rushdie (Re: An Anecdote about Islam\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.01\nLines: 32\n\njaeger@buphy.bu.edu (Gregg Jaeger) writes:\n> Why would the Rushdie case be particularly legitimate? As I've said\n> elsewhere on this issue, Rushdie's actions had effects in Islamic\n> countries so that it is not so simple to say that he didn't commit\n> a crime in an Islamic country.\n\nActually, it is simple.\n\nA person P has committed a crime C in country X if P was within the borders\nof X at the time when C was committed.  It doesn't matter if the physical\nmanifestation of C is outside X.\n\nFor instance, if I hack into NASA's Ames Research Lab and delete all their\nfiles, I have committed a crime in the United Kingdom.  If the US authorities\nwish to prosecute me under US law rather than UK law, they have no automatic\nright to do so.\n\nThis is why the net authorities in the US tried to put pressure on some sites\nin Holland.  Holland had no anti-cracking legislation, and so it was viewed\nas a \"hacker haven\" by some US system administrators.\n\nSimilarly, a company called Red Hot Television is broadcasting pornographic\nmaterial which can be received in Britain.  If they were broadcasting in\nBritain, they would be committing a crime.  But they are not, they are\nbroadcasting from Denmark, so the British Government is powerless to do\nanything about it, in spite of the apparent law-breaking.\n\nOf course, I'm not a lawyer, so I could be wrong.  More confusingly, I could\nbe right in some countries but not in others...\n\n\nmathew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9786, "properties": {"category": "misc.forsale", "text": "From: jb@access.digex.com (jb)\nSubject: Re: >>> Bally's/Holiday Health Club \\\\\\ LIFETIME  MEMERSHIP ///\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 10\nNNTP-Posting-Host: access.digex.net\n\nIn article <C5J5K1.w0@visgraph.uucp> forrie@visgraph.uucp (Forrest Aldrich) writes:\n>\n>For sale:  Life Time membership to the Ballys'/Holiday Fitness club.  The\n>original fee paid for this was over 1,000, and I'll sell it for 600.  The\n>membership is fully transferrable via proper paperwork.  \n>\nDoes is include raquetball?  Is it good at Espree?  What is the annual fee?\n\nThanks,\nJohn\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9787, "properties": {"category": "sci.space", "text": "From: nicho@vnet.IBM.COM (Greg Stewart-Nicholls)\nSubject: Re: Why not give $1 billion to first year-long moon residents?\nReply-To: nicho@vnet.ibm.com\nDisclaimer: This posting represents the poster's views, not those of IBM\nNews-Software: UReply 3.1\nX-X-From: nicho@vnet.ibm.com\n            <1993Apr20.001428.724@indyvax.iupui.edu>\nLines: 14\n\nIn <1993Apr20.001428.724@indyvax.iupui.edu> tffreeba@indyvax.iupui.edu writes:\n>Let's play a game - What would be a reasonable reward?  What companies would\n>have a reasonable shot at pulling off such a feat?  Just where in the\n>budget would the reward come from?  Should there be a time limit?  Would a\n>straight cash money award be enough or should we throw in say . . .\n>exclusive mining rights for the first fifty years? You get the idea.\n A cash award is OK. A time limit would be nice. You can't give away\nmining rights (assuming there's anything to mine) because you don't own\nthem.\n -----------------------------------------------------------------\n .sig files are like strings ... every yo-yo's got one.\n\nGreg Nicholls ... nicho@vnet.ibm.com (business) or\n                  nicho@olympus.demon.co.uk (private)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9788, "properties": {"category": "comp.windows.x", "text": "From: toml@blade.Boulder.ParcPlace.COM (Tom LaStrange)\nSubject: Re: REPOST: Accelerators/Translations\nKeywords: Accelerator, case\nReply-To: toml@boulder.ParcPlace.COM\nOrganization: ParcPlace Boulder\nLines: 68\n\nIn article <1993Apr22.162016.5923@telesoft.com>, trevor@telesoft.com (Trevor Bourget @ignite) writes:\n|> In <sdennis.735423404@aa.cad.slb.com> sdennis@osf.org writes:\n|> \n|> >I posted this a while ago and didn't receive one reply, and now we\n|> >have another bug report on the same subject. Can anybody help me out?\n|> \n|> The problem is that Motif uses XGrabKey to implement menu accelerators,\n|> and these grabs are specific about which modifiers apply.  Unfortunately,\n|> the specification for XGrabKey doesn't allow AnyModifier to be combined\n|> with other modifiers, which is exactly what would be desired in this case:\n|> \"Ctrl Any<Key>q\".\n|> \n|> >In ORA Vol. 6, in the section on accelerators it says \"For information\n|> >on how to specify translation tables see Vol. 4...\", this is so you\n|> >know what to put for the XmNaccelerator resource.  If you go to\n|> >Vol. 4 it says, \"Likewise, if a modifier is specified, there is\n|> >nothing to prohibit other modifiers from being present as well. For\n|> >example, the translation:\n|> >\tShift<Key>q:\tquit()\n|> >will take effect even if the Ctrl key is held down at the same time as\n|> >the Shift key (and the q key).\n|> \n|> This is true for accelerators and mnemonics, which are implemented using\n|> event handlers instead of grabs; it's not true for menu accelerators.  If\n|> you're a Motif implementor, I'd suggest lobbying to get the Xlib semantics\n|> changed to support the feature I described above.  Otherwise, change the\n|> documentation for menu accelerators to properly set the user's\n|> expectations, because menu accelerators are NOT the same thing as\n|> translations.\n|> \n|> >Is it possible to supply > 1 accelerator for a menu entry?\n|> \n|> If you mean \"menu accelerator\", no it's not possible.  That's according to\n|> the definition of the XmNaccelerator resource in the XmLabel manual page.\n|> \n|> >Keep in mind when answering this question that when using Motif you\n|> >can't use XtInstallAccelerators().\n|> \n|> I can't think of a reason why not.\n|> \n|> >How can you ensure that accelerators work the same independent of\n|> >case?  What I want is Ctrl+O and Ctrl+o to both be accelerators on one\n|> >menu entry.\n\nI find this thread on motif accelerators absoultly amazing.  If I were\nwriting an interface to keyboard accelerators, I would have one\nresource called \"accelerators\" that took a translation table, period.\nI would also implement it so that programmer never has to do any work\nto get the accelerators installed.  As soon as the end-user specified\none, it would be active and automatically installed.\n\nTo get multiple accelerators on a single menu item I'd do something like:\n\n\t*menuItem.accelerators: #override \\n\\\n\t\tCtrl<Key>M:\tfire() \\n\\\n\t\tShift<Key>L:\tfire() \\n\n\nThe accelerators would work exactly like translations and you would\nautomatically see a \"Ctrl M\" show up in your menuItem object.\n\nWhy in the world is the motif stuff so complicated with so many different\nspecial cases depending on what type of widget you're dealing with?  There\nhas to be some reason.\n\nSorry for the political tone of this message...\n\n--\nTom LaStrange        toml@boulder.ParcPlace.COM\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9789, "properties": {"category": "sci.electronics", "text": "From: gould@waterloo.hp.com (Dan Gould)\nSubject: Telephone Controlled Power Bar Needed\nNntp-Posting-Host: hppadan.waterloo.hp.com\nOrganization: HP Panacom Div Waterloo ON Canada\nX-Newsreader: TIN [version 1.1 PL8.9]\nLines: 16\n\nI would appreciate some help in locating a telephone controlled power bar\nfor my PC. The unit would power up the PC when the telephone rings and\nkeep it up as long as the telephone connection is present.\n\nI also need to be able to power up this same PC through the use of an external\ntimer. I can supply power or a contact closure to do this.\n\nI will summarize and post the results of this query here.\n\nThank you.\n\n\n\n--\nDan Gould\ngould@waterloo.hp.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9790, "properties": {"category": "comp.graphics", "text": "From: tdawson@engin.umich.edu (Chris Herringshaw)\nSubject: WingCommanderII Graphics\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 8\nDistribution: world\nNNTP-Posting-Host: antithesis.engin.umich.edu\n\n   I was wondering if anyone knows where I can get more information about\nthe graphics in the WingCommander series, and the RealSpace system they use.\nI think it's really awesome, and wouldn't mind being able to use similar\nfeatures in programs.  Thanks in advance.\n\n\nDaemon\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9791, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: Clinton wants National ID card, aka USSR-style \"Internal Passport\"\nOrganization: Computer Science Department,  Stanford University.\nLines: 50\n\nIn article <1993Apr14.175931.66210@cc.usu.edu> slp9k@cc.usu.edu writes:\n>> (BTW - Which parts should be secure?  Criminal\n>> records, ie convictions, are typically considered public information,\n>> so should that info be secure?  Remember, the population includes\n>> parents checking prospective childcare worker.)\n>\n>\tLike I said, I'm not sure of the details.  But it seems to me that you\n>could access medical information without giving out a name, or any other\n>information.\n\nMedical info without a name/body attached is completely useless for\ntreatment.\n\n>The article I mentioned the the earlier post described a debit\n>card type transaction in which neither the store nor the BANK, knew who was\n>withdrawing the money.\n\nThus making it as secure as cash, for some purposes, but far less\nsecure for others.\n\n>\tParent's checking a babysitter shouldn't need access to the information\n>stored in the card.\n\nSure they do.  The prospective sitter may have a nasty habit of molesting\nkids three or four months into the job.  The references may not have\nknown him long enough or may not have picked up on this yet.\n\nRemember, criminal conviction info is public, so if you're going to\nargue for an ID card, other people are going to have a strong argument\nthat it disclose public info.\n\n>things.  I think anything that you choose to keep unknown should be.\n\nThus making it useless for negative information.\n\n>could have it so that only doctors can access medical information, police\n>criminal records etc etc.\n\nYeah right.  How are you going to keep doctors from spilling the\nbeans?  (We already know that you can't keep cops from disclosing\ninfo, but at least that info is typically supposed to be public\nanyway.)\n\n>\tLike I said, it's best if you read the article for yourself.\n\nThe article discusses technology, not appropriate policy.  It also\nfails to deal with \"what happens if the folks with the secrets blab\".\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9792, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Israeli Expansion-lust\nOrganization: Aiken Computation Lab, Harvard University\nLines: 24\n\nIn article <1993Apr14.225500.15812@bnr.ca> zbib@bnr.ca writes:\n\n>Now, if actions of the lebanese resistance help send the\n>Isrealis packing, I'm all for it. If you are really\n>concerned about bloodshed, a little self criticism could do\n>you a great favor.\n\n\tOne of these days you'll learn that the way to stop Israel\nfrom fighting back is to stop attacking.  If there were no attacks in\nthe security zone for a year because the Lebanese army could maintain\nthe peace, then Lebanon would be in much better shape.\n\n\tTell me something, though.  Why do Syrian troops not get\nattacked?  Aren't they occupying Lebanon?\n\n\tIsrael has repeatedly stated that it will leave on two\nconditions.  One is a demonstration that the Lebanese army can keep\nthe peace.  The second is that the Syrians pull out as well.\n\nAdam\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9793, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jartsu@hut.fi (Jartsu)\nSubject: 512 kb VRAM SIMMs?\nNntp-Posting-Host: lk-hp-20.hut.fi\nReply-To: jartsu@vipunen.hut.fi\nOrganization: Helsinki University of Technology, Finland\nLines: 12\n\n\nHi there!\n\nCould some kind soul tell me what is the price of LC/IIvi/IIvx\ncompatible 512kb VRAM SIMMs in the US nowadays? The price over here\n(Finland) is so ridiculously high (about $185 each in USD) that I\nthink it is worth the trouble to try to get them overseas.\n\nThanks\n\n--\nJartsu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9794, "properties": {"category": "alt.atheism", "text": " sgiblab!adagio.panasonic.com!nntp-server.caltech.edu!keith\nSubject: Re: <Political Atheists?\nFrom: keith@cco.caltech.edu (Keith Allan Schneider)\n <1p6rgcINNhfb@gap.caltech.edu> <1p88fi$4vv@fido.asd.sgi.com> \n <1p9bseINNi6o@gap.caltech.edu> <1pamva$b6j@fido.asd.sgi.com> <1pcq4pINNqp1@gap.caltech.edu> <30071@ursa.bear.com>\nOrganization: California Institute of Technology, Pasadena\nNNTP-Posting-Host: punisher.caltech.edu\nLines: 22\n\nhalat@pooh.bears (Jim Halat) writes:\n\n>>I think an objective morality does exist, but that most flavors of morality\n>>are only approximations to it.  Once again, a natural or objective morality\n>>is fairly easily defined, as long as you have a goal in mind--that is, what\n>>is the purpose of this morality.\n>Maybe I'm not quite getting what you mean by this, but I think objective \n>morality is an oxymoron.  By definition, it seems, any _goal_ oriented \n>issue like this is subjective by nature.  I don't get how you're using\n>the word objective.\n\nBut, the goal need not be a subjective one.  For instance, the goal of\nnatural morality is the propogation of a species, perhaps.  It wasn't\nreally until the more intelligent animals came along that some revisions\nto this were necessary.  Intelligent animals have different needs than\nthe others, and hence a morality suited to them must be a bit more\ncomplicated than \"the law of the jungle.\"  I don't think that\nself-actualization is so subjective as you might think.  And, by\nobjectivity, I am assuming that the ideals of any such system could be\ncarried out completely.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9795, "properties": {"category": "talk.politics.misc", "text": "From: joec@hilbert.cyprs.rain.com ( Joe Cipale)\nSubject: Re: Clayton Need not Retract\nOrganization: Cypress Semi, Beaverton OR\nLines: 13\n\nIn article <Apr.9.08.39.25.1993.15639@romulus.rutgers.edu> kaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n>civilized society.  The _ONLY_ way a homosexual can maintain even a\n>modicum of respectability is by remaining in the closet.\n>-- \n>  The views expressed herein are   |  Theodore A. Kaldis\n>  my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n>  believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n>  as this would hold such views??? |\n\nOnce again, it appears that the one-eyed man has appeared in the land of the sighted\nand for some strange resaon has appointed himself the ruler and supreme power.\n\nJoe Cipale\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9796, "properties": {"category": "talk.religion.misc", "text": "From: psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss)\nSubject: 15 Apr 93   God's Promise in John 1:12\nOrganization: University at Buffalo\nLines: 8\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsb.cc.buffalo.edu\n\n\n\n\tBut as many as received him,\n\tto them gave he power\n\tto become the sons of God,\n\teven to them that believe on his name:\n\n\tJohn 1:12\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9797, "properties": {"category": "sci.space", "text": "From: drickel@bounce.mentorg.com (Dave Rickel)\nSubject: Re: So I'm an idiot, what else is new?\nOriginator: drickel@bounce\nNntp-Posting-Host: bounce.mentorg.com\nOrganization: Mentor Graphics \nKeywords: \nLines: 17\n\n\nIn article <9303311213.AA49462@jsc.nasa.gov>, mcelwre@cnsvax.uwec.edu (R. E. McElwaine) writes:\n|> RUSSIA'S OPERATIVE\n|> \n|>                In March 1993, Russian President Boris Yeltsin\n|>           proposed to the United States and the United Nations a global\n|>           defense shield (with \"Star Wars\"-type weapons) AGAINST\n...\n\nFunny.  A bit disturbing.  Forging a posting seems somewhat unethical, even\nif the subject is as notorious as McElwaine.\n\nFollowups should definitely not go to sci.space.\n\n\ndavid rickel\ndrickel@sjc.mentorg.com\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9798, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: v063kcbp@ubvmsd.cc.buffalo.edu (MITCH)\nSubject: Thanks! (Backing Up Masters)\nKeywords: Misled, Confused, Advice, Comprendo!\nOrganization: University at Buffalo\nLines: 8\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsd.cc.buffalo.edu\n\n\n\tJust a quick THANKS to the many who explained the backing up of my\nmasters.  Apparently they are NOT copy-protected; I just used a program that\nis unable to handle high-density (old shit).  I was surprised to hear that\n\"NO programs on high-density disks have copy protection,\" which someone\nback there said.  Huh!  Learn something new every day!\n\n\t\t\t\t\t\t- Mitch\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9799, "properties": {"category": "rec.sport.hockey", "text": "From: formeza@panix.com (The Owl)\nSubject: Re: Rangers Top Ten\nKeywords: Rangers\nOrganization: PANIX Public Access Unix, NYC\nLines: 28\n\nIn <120365@netnews.upenn.edu> kkeller@mail.sas.upenn.edu (Keith Keller) writes:\n\n>> \n>>7.   Carol Alt, Head Coach In 93-94?\n\n>I wish!  She can be *my* head coach any time!!!!  (Sorry Ali!  Back to\n>real hockey.)\n\nHmmmmmm. I think I'll let everyone make there own comment on this one.\n\n\n>>THE BAD\n>> \n>>Alexei Kovalev.\n>>What did the Rangers think when they signed him? Did they think he\n>>was another Domi?  Just let him play! And not on a 4th line.  Better\n>>that he stays in the minors and gets ice-time ALL the time.\n\n>Whose \"bad\"?  It has been Neilson and Smith's decision to play him there,\n>if that's what you mean, then that's bad.  But Kovalev himself is a very\n>good player.  You're right, if he weren't stranded on the fourth line\n>maybe he'd produce.  Sound familiar?  Darren Turcotte?\n\nNeilson and Smith are bad. Kovalev is magical.\n\n\nLets Go Pens!\nThe Owl\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9800, "properties": {"category": "soc.religion.christian", "text": "From: sun075!Gerry.Palo@uunet.uu.net (Gerry Palo)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nLines: 22\n\ngsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n\n> Religion (especially Christianity) is nothing more than a DRUG.\n\nThere is a certain truth to this statement. Only I would use the word\n\"medicine\" instead of drug.  With regard to the condition of the human\nsoul, Christianity is first and foremost a healing medicine.  It also\nstrengthens and enables one, as healing takes hold, to grow in new\nstrength and health to live and be and to do that for which God created \nus.\n\n> Some people use drugs as an escape from reality.  \n\nChrist's medicine, rightly allowed to work, brings one nearer to\nreality and offers the clarity of understanding and the strength\nof spirit with which to meet it in a healthy human way.\n\n> Christians inject themselves with Jesus and live with that high. \n\n(small spelling correction added)\n\nGerry Palo (73237.2006@compuserve.com)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9801, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hlsw_ltd@uhura.cc.rochester.edu (Dave Hollinsworth)\nSubject: 2 questions about the Centris 650's RAM\nNntp-Posting-Host: uhura.cc.rochester.edu\nOrganization: University of Rochester (Rochester, NY)\nDistribution: usa\nLines: 18\n\nWith a little luck, I could own a C650 sometime in the near future, and\nso I was just wondering if someone could clear these two questions up for me:\n\n1.  What speed SIMMS does the C650 need/want?  (I know that it needs 80ns\nVRAM...not sure for the main RAM.)\n\n2.  I've heard two conflicting stories about the total expandibility of the\nC650's RAM...132 and 136 megs.  Which is true?  (Perhaps another phrasing\nwould be better:  does the 8 meg version come with all 8 megs on the logic\nboard, or 4 megs + a 4 meg SIMM?)\n\nJust wondering....\n\n-- \n***  Dave Hollinsworth  *********  hlsw_ltd@uhura.cc.rochester.edu   O      |\"|\n* \"It's astounding;  time is fleeting;  madness takes   * PLAY      /\\      | |\n* its toll.\" -- Riff Raff, Rocky Horror Picture Show    * PINBALL! /\\ \\-------|\n***  DISCLAIMER:  They're my opinions.  Are they yours? ********* / / |-------|\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9802, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 12\nNNTP-Posting-Host: lloyd.caltech.edu\n\ndace@shrike.und.ac.za (Roy Dace) writes:\n\n>Keith Allan Schneider (keith@cco.caltech.edu) wrote:\n\n>Some soldiers are dependent on religion, for a number of purposes.\n>And some are no doubt dependent on cocaine, yet I don't see the military paying\n>for coca fields.\n\nWhile religion certainly has some benefits in a combat situation, what are\nthe benefits of cocaine?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9803, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gt5576b@prism.gatech.EDU (Joe Bleazard)\nSubject: References needed on Memory Management\nDistribution: usa\nOrganization: Georgia Institute of Technology\nLines: 15\n\nI am doing a report on the topic of 'Advanced Memory Management' and\nneed to know of some good references to cover this topic.  It is an \nAnalytical Chemistry class on Instrumental Analysis.  So, as you \ncould guess, it doesn't have to be an extremely thorough or extensive\ncovering of the topic.  Also, I am a Chemical Engineer and know some,\nbut not too much about memory management.  If anyone could help point \nme in a good direction I would be very thankful.\n\nThanks in advance.\n\nJoe Bleazard      gt5576b@hydra.gatech.edu\nSchool of Chemical Engineering\nGeorgia Institute of Technology\nAtlanta, GA  30332-0100\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9804, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tjacobs@bvsd.Co.EDU (S. Tyler Jacobs)\nSubject: Centris610 problem.\nNntp-Posting-Host: bvsd.co.edu\nOrganization: Boulder Valley School District\nLines: 10\n\nThe problem is this:\nAfter starting up my machine it gives a high pitched sound once at the desktop also it only does it when the mouse is up or a menu is not showing.\n\nas if I click the mouse the noise goes away for the amount of time the mouse is down. also this problem only happens for about 5-10 minutes.\n\nplease let me know if you know what this is, it sounds like it is coming form the power supply.\nPlease Post here and Email me:\ntjacobs@bvsd.co.edu\nThanks!\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9805, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: If You Were Pat Burns ...\nKeywords: Leaf Wings\nOrganization: University of Toronto Chemistry Department\nLines: 14\n\nIn article <C5suH3.3q0@tsegw.tse.com> mhembruc@tsegw.tse.com (Mattias Hembruch) writes:\n>>hell is Anderson?  Anderson can (in days past) get under peoples\n>>skin.  Put a little more bluntly, Anderson has to be an asshole.\n>>He used to be good at it.  We need him now.  \n>\n>Agreed. Anderson was nowhere last night.\n>\n\nWell what do you expect...Burns was playing him with Krushelnyski\nand Baumgartner...Anderson is a finisher...unless you play him with\nsomeone to can get him the puck in a finishing position...he ain't\ngoing to do much scoring!\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9806, "properties": {"category": "comp.graphics", "text": "From: renner@adobe.com (John Renner)\nSubject: Re: detecting double points in bezier curves\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 27\n\nIn article <19930420.090030.915@almaden.ibm.com> capelli@vnet.IBM.COM (Ron Capelli) writes:\n>In <ia522B1w165w@oeinck.waterland.wlink.nl> Ferdinand Oeinck writes:\n>>I'm looking for any information on detecting and/or calculating a double\n>>point and/or cusp in a bezier curve.\n>\n>See:\n>   Maureen Stone and Tony DeRose,\n>   \"A Geometric Characterization of Parametric Cubic Curves\",\n>   ACM TOG, vol 8, no 3, July 1989, pp. 147-163.\n\nI've used that reference, and found that I needed to go to their\noriginal tech report:\n\n\tMaureen Stone and Tony DeRose,\n\t\"Characterizing Cubic Bezier Curves\"\n\tXerox  EDL-88-8, December 1988\n\nThis report can be obtained for free from:\nXerox Corporation\nPalo Alto Research Center\n3333 Coyote Hill Road\nPalo Alto, California 94303\n+1-415-494-4440\n\nThe TOG paper was good, but this tech report had more interesting details ;-)\n\n-john\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.461+0000", "event": "documents", "entityId": 9807, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Hand Held Products, Inc.\nLines: 47\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <C5tKI1.C8s@rice.edu> fontenot@ravl.rice.edu (Dwayne Jacques  \nFontenot) writes:\n> In <C5tEnu.112F@ns1.nodak.edu> green@plains.NoDak.edu (Bill Green) writes:\n> >Just to shed some light on the fire, it was widely reported (AP, etc.) that\n> >there WERE several witnesses to BD folks starting the fires.  It has also\n> >been reported that the fires broke out in several places at once, which\n> >rules out a Bradley knocking over a lamp, etc. as the cause.\n> \n> Consider this: The BDs had more than one lamp; The tanks made more than\n> one hole in the building. Did anyone else notice on the video that it\n> appeared that wherever there was smoke coming out of the building, there\n> was a tank nearby?\n> \n> The fact that it appears that fires started in several places does not\n> rule out anything.\n\nI watched it live, and have re-watched it several times, and from the press  \nvantage point, there was only one starting point visible, where the tank  \npunched in on the windward side, and the winds whipped that fire across the  \nwhole, dry, wooden, structure in minutes.  Faned by the 30 mph gusts, and the  \nHueys.   If there were other fires started, they were not visible, nor were  \nthey needed to cause the flame progression I observed.\n> \n> Also, where are these several witnesses? The way I heard it (from the FBI\n> spokesman on CNN) the \"witnesses\" were all people driving the tanks.\n> \nAll witnesses get thier paychecks from the FBI.\n\n> >One other point, I'm no fan of Janet Reno, but I do like the way she had the\n> >\"balls\" to go ahead and take full responsibility.  Seems like the waffle boy\n> >had problems figuring out just where he stood on the issue.\n> \n> Too bad nothing will happen to her or him. The FBI and the media have\n> done their job well.\n> \nYep.  They media has endorsed the FBI version without question.  Sad.\n\n> Dwayne Jacques Fontenot\nJim\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9808, "properties": {"category": "sci.space", "text": "From: wiml@stein2.u.washington.edu (William Lewis)\nSubject: Re: Abyss--breathing fluids\nOrganization: University of Washington\nLines: 33\nNNTP-Posting-Host: stein2.u.washington.edu\n\nloss@fs7.ECE.CMU.EDU (Doug Loss) writes:\n>Besides the mechanical problems of moving so dense a medium in oan out\n>of the lungs (diaphragm fatigue, etc.), is there likely to be a problem\n>with the mixture?  I mean, since the lungs never expel all the air in\n>them, the inhaled air has to mix pretty quickly with the residual air in\n>the lungs to provide a useful partial pressure of oxygen, right?  Would\n>this mixing be substantially faster/slower at the pressures we're\n>talking about?\n\n  There was an interesting article in Scientific American some time ago\nabout breathing liquid. (It was a few months before _The Abyss_ came out.)\nAs far as I can remember, they mentioned three things that were difficult\nto do at once with a substitute breathing fluid:\n  - low viscosity --- if it's too difficult to force the fluid in & out \n    of the lungs, you can't extract enough oxygen to power your own\n    breathing effort (let alone anything else)\n\n  - diffusion rate --- obviously, not all the air in your lungs is\n    expelled when you breathe out; and the part that isn't expelled\n    is the part that's nearest the walls of the alveoli. (alveolus?)\n    So the trip from the blood vessels to the new air has to be done\n    by diffusion of the gas through the fluid. Apparently oxygen\n    tends to diffuse more readily than CO2, so even if you can get enough\n    oxygen in, you might not be able to get enough CO2 out.\n\n  - oxygen/CO2 capacity --- you have to be able to dissolve enough\n    gas per unit volume. \n\n  Oh, and of course, your new breathing fluid must not irritate the lungs\nor interfere with their healing or anything like that... \n\n--\nWim Lewis, wiml@u.washington.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9809, "properties": {"category": "sci.electronics", "text": "From: mkaschke@oasys.dt.navy.mil (Martin Kaschke)\nSubject: 4-Band Equalizer\nReply-To: mkaschke@oasys.dt.navy.mil (Martin Kaschke)\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 15\n\n\n    I was wondering if anyone out there in net-land knew of a SIMPLE\nway to make a 4-band equalizer (single channel).  I need it to accept\nLINE inputs (tape deck, CD player, etc.) and output to the same! So\ninput impedance should equal output impedance.  Also, since I am driving\na line, I would need 1 volt p-p output.  Final requirement is that I\ncan either:\n\t      1. Control it digitally\n\t\t\tOR\n\t      2. Control it easily, or with few resistors\n\nFINALLY - If anyone knows of any FILTER or EQUALIZER chips, that might\nbe useful, please let me know. (I have seen a couple of them from NATIONAL,\nand MAXIM).  Thanks in advance,\n\t\t\t\t  Martin\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9810, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: farley@access.digex.com (Charles U. Farley)\nSubject: Where to get ATI card video drivers/fonts?\nOrganization: Express Access Online Communications USA: 800-546-2010\nLines: 8\nDistribution: usa\nNNTP-Posting-Host: access.digex.net\nSummary: Where to get ATI card video drivers/fonts?\nKeywords: ati,windows\n\nDoes anyone know where I can ftp or somehow else acquire the latest\nvideo drivers /fonts for an ATI SVGA adapter?  The only floppy I have\nis for Windows 3.0.  Does anyone know if ATI is still in business?\n\nThanks!\n-- \nfarley@access.digex.com  <Charles U. Farley>\nAverage IQ of Calgary Board of Ed. Employee: 65\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9811, "properties": {"category": "talk.politics.misc", "text": "From: gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: University of Virginia\nLines: 18\n\nClayton Cramer writes:\n#Compared to the table I have already posted from Masters, Johnson,\n#and Kolodny showing male homosexual partners, it is apparent that\n#homosexual men are dramatically more promiscuous than the general\n#male population.  \n\nDid you ever consider the selection effect that those who are willing\nto admit to being a member sexual minority (homosexuality) are more\nwilling to admit to being a member of another sexual minority (highly\npromiscious)? \n\nI didn't think that you did.\n\n--\n-Greg Hennessy, University of Virginia\n USPS Mail:     Astronomy Department, Charlottesville, VA 22903-2475 USA\n Internet:      gsh7w@virginia.edu  \n UUCP:\t\t...!uunet!virginia!gsh7w\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9812, "properties": {"category": "comp.windows.x", "text": "From: kbw@helios.ath.epa.gov (Kevin B. Weinrich)\nSubject: Solution: Why do I need \"xrdb -m\" when .Xdefaults unchanged?\nOrganization: Computer Sciences Corp.\nLines: 9\nDistribution: world\nNNTP-Posting-Host: helios.ath.epa.gov\n\nThe short answer seems to be: \"I don't\".\nThe particular package (wscrawl) seems to reset *all* its defaults\nif *any* of them are missing from the .Xdefaults file.  Once I added\nthe missing ones to the .Xdefaults file, the problem goes away.\n\n-Kevin\n-- \nKevin Weinrich     Computer Sciences Corp.\nkbw@helios.ath.epa.gov\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9813, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dtodd@titan.ucs.umass.edu (David M. Todd)\nSubject: What video board for my system?\nOrganization: University of Massachusetts, Amherst\nLines: 40\nReply-To: David.Todd@Psych.UMass.EDU\nNNTP-Posting-Host: titan.ucs.umass.edu\n\nI'd appreciate any advice about a video card for my system:\n\n486-33 DX, 16 mb of ram\non a Novell 3.11 network\nMonitor:  NEC 4FGe, capable of 76 Hz vertical refresh rate\n\nMajor considerations:\n\nI expect I will work mostly in windows, but with some DOS\napplications and I would want decent speed in DOS.  I do mostly word\nprocessing, database and communications--not much intensive graphics.\n\nWith a 15\" monitor, I expect I will work mostly in 800X600 and 256\ncolors seems plenty, but I'd like like the image to be sharp, fast,\nand rock solid.\n\nOther considerations:\n\nI sometimes run a Unix clone (Coherent) and I understand that some\ncompanies (e.g. Diamond?) don't encourage the third-party\ndevelopment of drivers.\n\nI might move to OS/2 if I decide I need better speed and reliability\nthan I get with Windows for my database work and multitasking.\n\nI don't have a local bus motherboard--I'm not sure how much to invest\nin an ISA video board (versus getting something less expensive now and\nupgrading to local bus later).\n\nI like buying things from companies that treat their customers well.\n\nIf you have any advice for me, I'd love to hear it via email or post.\n\nThanks.\n\n\n|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ David M. Todd ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n|Department of Psychology, University of Massachusetts, Amherst, MA 01003 USA|\n|Phone: 413/545-0158 ___ <David.Todd@Psych.UMass.EDU> ____  Fax: 413/545-0996|\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9814, "properties": {"category": "comp.windows.x", "text": "From: dealy@narya.gsfc.nasa.gov (Brian Dealy - CSC)\nSubject: Re: Motif maling list\nOrganization: NASA/Goddard Space Flight Center\nLines: 14\nDistribution: world\nNNTP-Posting-Host: narya.gsfc.nasa.gov\nOriginator: dealy@narya.gsfc.nasa.gov\n\n\nThe motif mailing list will now be located at\nlobo.gsfc.nasa.gov\n\nIf you would like to be added (or deleted) from this list, please\nsend mail to motif-request@lobo.gsfc.nasa.gov\nto mail to the list, send mail to motif@lobo.gsfc.nasa.gov\n\n\nBrian\n-- \nBrian Dealy                |301-572-8267| It not knowing where it's at  \ndealy@kong.gsfc.nasa.gov   |            | that's important,it's knowing\n!uunet!dftsrv!kong!dealy   |            | where it's not at...  B.Dylan\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9815, "properties": {"category": "talk.politics.guns", "text": "From: mech24135045@msuvx2.memst.edu\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nDistribution: world\nOrganization: Memphis State University\nLines: 49\n\nIn article <93109.13404334AEJ7D@CMUVM.BITNET>, <34AEJ7D@CMUVM.BITNET> writes:\n> CNN is reporting as I write this that the ATF has ignited all\n> the buildings of the Branch Dividian ranch near Waco, TX. The\n> lies from ATF say \"holes were made in the walls and 'non-lethal' tear\n> gas pumped in\". A few minutes after this started the whole thing went up.\n> ALL buildings are aflame. NO ONE HAS ESCAPED. I think it obvious that\n> the ATF used armored flame-thrower vehicles to pump in unlit\n> napalm, then let the wood stove inside ignite it.\n\nWell, actually, the Davidians (Koreshians?) started the fire themselves, \nthe last I heard ( around 15:00 EST). Eight people ran out into the feilds\nsurrounding the compound. All were captured and two admitted to setting the \nfire. I don't buy your napalm theory at all (although it would have made a \ngreat commercial for my .sig). Why the hell would they have a wood stove\nburning on such a warm day?  Flame throwers use liquid petroleum, napalm \nis more of a gel. Now to further dispute your theory, the diluted CS gas\nwas inserted around 06:00 if I understood correctly. The place didn't start\nburning until around 10:00 or 11:00.\n \n> THIS IS MURDER! ATF MURDERERS!  BUTCHERS!!\n> THIS IS GENOCIDAL MASS-SLAUGHTER OF INNOCENT PEOPLE, INCLUDING CHILDREN!\n> I have predicted this from the start, but God, it sickens me to see\n> it happen. I had hoped I was wrong. I had hoped that there was\n> still some shred of the America I grew up with, and loved, left\n> alive. I was wrong. The Nazis have won.\n \nCalm down kid. Vernon (Koresh's real name) said himself that he would not leave\nthat compound alive. The inhabitants thereof had accepted the fact that they \nmay very well have to kill themselves before it was all over.\n\n> I REPEAT, AS OF THIS TIME THERE ARE **NO  SURVIVORS**!\n\nThere are at least eight survivors. A caller on Rush Limbaugh today suggested\nthat the rest may even be hiding in underground bunkers. That's not such a wild\nidea considering their weaponry and resolve. \n\n> God help us all.\n> PLEASE CROSSPOST -- DON'T LET THEM GET AWAY WITH THE SLAUGHTER OF THE \n> CHILDREN!\n> W. K. Gorman - an American in tears.\n\nSheesh! Get over it. I haven't heard (read) such ranting since the Hindenberg\nburned. This should have ended 50 days ago. I'm glad my tax dollars have\nfinally stopped working to pay a bunch of guys to stand around and give press\nconferences. Now they can get back to more important things, like catching\ncigarrette smugglers.\n\n\t\t\tTroy\nNapalm sticks to kids.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9816, "properties": {"category": "misc.forsale", "text": "From: David Ruggiero <osiris@halcyon.com>\nSubject: <very> Bare 386/25 Micronics system - $495\nOriginator: osiris@halcyon.com\nReply-To: osiris@halcyon.halcyon.com (David Ruggiero)\nOrganization: [none - why fight entropy?]\nDistribution: na\nLines: 35\n\n\"Bare\" means what it says. You get a case, a power supply, and a motherboard\n(with RAM and a coprocessor). *Everything* else is yours to add as you like.\n\nThe case/power supply:\n  \n     - Standard desktop case. 230watt power supply with the usual connectors.\n     - Room for five floppy/hard drives (three visible, two internal).\n\nThe motherboard:\n\n    - US-made Micronics 8-slot motherboard with Intel 386dx/25mhz CPU\n    - 64kb SRAM cache\n    - 4mb 80us RAM using 4x1mb simms (worth $150 alone)\n    - Cyrix 83D87 math coprocessor (worth $90 alone)\n    - Norton SI 6.0 rating of 26.1\n    - Latest version Phoenix BIOS\n\n\nPlease do not post/email saying \"but I can get a Taiwanese SuperClone\n386/90 for only $9.95 including a free toaster!\". I am *certain* you can\nfind a cheaper Brand X board without even breaking a sweat. *New* Micronics\nCPUs command a several-hundred dollar premium because they are US-made,\nuse high-quality components, and are known to be both very reliable and\ncompatible. They have been OEMed in systems sold by both Gateway and\nZeos at various points in the past. (Check out the ads in the back pages\nof Byte or PC Magazine if you want to see this price differential for\nyourself.)\n\nPrice: $495 complete, $100 less if you don't want/need the case and\npower supply. The board is fully guaranteed. Email for further details\nor for any questions.\n\nThanks!\n-- \nDavid Ruggiero  (jdavid@halcyon.com)       Seattle, WA: Home of the Moss People\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9817, "properties": {"category": "talk.politics.misc", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: Propaganda Re: re: fillibuster\nLines: 213\nOrganization: University of Tennessee Computing Center\n\nIn article <C5otox.BJI@dscomsa.desy.de> hallam@dscomsa.desy.de (Phill Hallam-Baker) writes:\n>\n>In article <VEAL.740.735074621@utkvm1.utk.edu>, VEAL@utkvm1.utk.edu (David Veal) writes:\n>\n>|>In article <C5n4wH.Izv@dscomsa.desy.de> hallam@dscomsa.desy.de (Phill Hallam-Baker) writes:\n>|>>\n>|>       Or are they simply propogranda?  We can't know what Phill *really*\n>|>means because he's obviously using arguments designed to convince.\n>\n>I make no secret of what I am up to, I have stated explicitly in posts\n>that I am a political propagandist on numerous occasions. Anyone posting\n>to this group who is not probably has the wrong group.\n>\n>For example I have on numerous occasions stated quite clearly that I\n>beleive that certain factions of the gun lobby are the worst possible\n>advocates of their cause and I am prepared to do anything in my power\n>to provide them with a platform because they can convince people far\n>better than I could hope that many people with a fixation on lethal\n>weapons are dangerous and derranged. \n\n       If you happen to know a political position which does not\nhave people advocating it who do more harm than good, please point it\nout.\n       \n>Some people have even accused me of inventing such advocates purely \n>for the purpose of having them trash a set of political views. In \n>fact this would be a futile tactic because I could never hope to\n>invent a character as dangerous as sybok.athena.edu, a man who I\n>quite seriously believe to be mentaly ill and a potential psychopath.\n>Unfortunately the local sherifs office have informed me that they\n>are unable to act untill he attacks someone.\n\n       One of the advantages and draw-backs of requiring proof\non the part of the government before they may take action against\ncitizens.  (and part of the reason some of us believe weapons should\nbe available.)\n\n>So if you were to ask me what is the point that I am trying to make\n>from this current argument on the absolute sanctity of the US \n>constitution what would I answer?\n\n       We are not arguing the absolute sanctity of the U.S.\nConstitution.  In fact, the fillibuster we're talking about isn't\n*in* the Constitution.  I objected to your suggestion that the Senate\nwasn't intended to exercise the power it was clearly given.\n\n>Firstly I see that the current US political scene like the UK political\n>scene has become tied to special interests. Rather than chase the\n>convenient caricatures put about by the media and polititians themselves\n>for this - Gay rights cmapaigners, environmentalists, zionists (i.e.\n>Jews), \"foreign lobbyists\" - whatever voting power they have etc. I\n>sugest that you look at who is really benefiting. The inevitable conclusion\n>is that it is the major corporations owned by the ultra-wealthy that\n>have benefited. Regan and Bush created what can only be described as a\n>welfare state for the rich. \n\n       I'll point out again that Reagan only had a Republican Majority\nin the Senate during his first term, and his coalition in the House\ncame apart at about the same time.  Bush never had any real support in\nCongress.\n\n       The real point is that everybody, *everywhere* got their pork,\nfrom the big corporations to the guy I saw last night leaving a\nconvenience store with an armful of junk-food he'd bought with\nfood stamps.  (He spent more in food stamps on junk than I *make* in a week\nand I'm not on government assitance.)\n\n>Money was diverted from programs addressing\n>social needs and poured into the weapons industry in the form of cost\n>plus profits contracts. \n\n       Lessee, let's pull out the old Almanac.\n\n       In 1980, total U.S. government budget outlays were 590.9 billion\ndollars.  In 1992 (est) they were 1.4754 trillion dollars, an increase of\napprox. 884 billion dollars.\n\n       In 1980, National Defense cost 133.9 billion dollars.  In\n192 it was 307 billion dollars, and increase of 174 billion dollars.\nThat leaves an increase of 710 billion dollars unaccounted\nfor.  (This represented an increase of 230%)\n\n       In 1980, Income Security (which includes retirement programs,\nHousing Assitance, and unemployment benefits, and I believe welfare)\ncost 86.5 billion dollars.  In 1992 it was 198 billion dollars, or\nmore than national defense started.  (This represented an increase\nof 230%)\n\n       In 1980, the Federal Government spent 32 billion dollars on\nMedicare.  In 1992 they spent 118 billion dollars.  (an increase of\n368%)\n\n       In 1980, the Feds spent 9 billion dollars on housing\ncredits and subsidies of that like.  In 1992 it was 87 billion.\n\n       In 1980, Health care services and research was 23 billion\ndollars.  In 1992, it was 94 billion dollars.\n\n       Agriculture, up 9 billion to 17 billion.\n\n       Science, up 11 billion to 16 billion.\n\n       Resource conservation up 7 billion to 20 billion.\n\n       Education up 14 billion to 45 billion.\n\n       Veteran benefits up 12 billion to 33 billion.\n\n       Trasnportation up 13 billion to 34 billion.\n     \n       About the only things I see which was seriously decreased was under \nthe Energy category, primarily under \"Supply,\" and \"Community Development,\"\nin the area of \"disaster relief,\" and between the two of them\nrepresent a loss of less than 11 billion dollars.\n\n       Where *was* this huge diversion?\n\n>In order to rectify this situation there must\n>be constitutional revision.\n\n       Not that's a stretch.  If the current government was pushed by\nthe President to create this mess, wouldn't one expect it to begin to\nequalize once the pressure is gone?\n\n>Secondly the form of this revision must take account of the changed \n>circumsatnces of the role of the Federal government. \n\n       Only assuming that the new role is a positive role we want\nto continue. I see very little positive about it.\n\n>The constitution\n>cannot be used to frustrate the democratic process. \n\n       The Constitution was *designed* to frustrate the democratic\nprocess, so that the voters could be absolutely sure they were getting\nwhat they wanted by the time it happened.  Nor do I see putting the\nbrakes on the \"democratic process\" an inherently bad thing.  Califronia's\nriding the edge and every time they pull their ballot initiative nonsense\nit gets worse.\n\n>If the peoplr want\n>to have welfare spending by the federal government they will have\n>it.\n\n       Sometimes, or perhaps most of the time, the people should be\ntold, \"no,\" and pointed to their local government.       \n\n>Attempting to prevent this through constitutional trickery only\n>leads to the constitution being brought into disrepute. \n\n       Phill, would you do me the very great favor of repeating that\nin talk.politics.guns?\n\n>Methods will\n>always be found to bypass such provisions and once the government gets\n>used to bypassing those provisions they will bypass the others up to \n>the first ammendment. \n\n       Cute.  We can eliminate violations of the law by eliminating\nthe law.\n\n>This is a major reason why the right to own \n>guns should be excluded, the implication that this right is equal to\n>the right to free speech is dangerous. \n\n       Free speech alone is dangerous, Phill.\n\n>People know that mass ownership\n>of lethal weapons causes thousands of murders a year, the dangerous\n>conclusion they may reach is that the first ammendment may also be\n>the same dangerous mistake. \n\n       OK, Phill.  All you gotta show me is a clear pattern of\n*reduction* in homicide rates across several countries and that'll\nbe it.  (Not current, mind, you, reduction.)\n\n>Note however that this is not the slippery\n>slope argument. It is because the right freedom of speech has been\n>chained to the privilege to own weaponry that the danger arises. The\n>advocates of this pivilege must not be allowed to chain freedom of\n>speech to their cause such that if they fall freedom of speech falls\n>as well. Such actions are not the actions of people genuinely interested\n>in freedom.\n\n\n        Who's chaining anything to freedom of speech?  By *calling*\nit a freedom?  \n\n>Thirdly and most importantly I want to discover a mechanism wherby I can\n>engender intellectual debate as opposed to totemic debate. I consider\n>the grave threat to civilisation to be the loss of the ability to\n>reason about the political debate at anything other than the superficial\n>level. The objection I raise to your basing your case entirely on the\n>assertion of the supremacy of the US constitution is that the currency\n>of your argument is limited to the currency of the totem upon which it\n>is based. The danger of totems is that they can be reinterpreted in\n>different ways by different people. \n\n       Phill, you're a master of subtly changing the subject.  I haven't\n*based* my argument against raw democracy on the Constitution.  I've\ntried to explain why it isn't a good idea.  The only time I've referred\nto the Constitution is to point out it doesn't contain the restrictions\non the veto and the Senate you appear to believe were \"meant,\" but\njust didn't make it in there.\n     \n       The Constitution doesn't *contain* the 41% fillibuster rule.\nI only believe that the rule is a good idea.  You cn't dismiss that\nas venerating the Constitution because it isn't *in* the Constitution.\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9818, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Morality? (was Re: <Political Atheists?)\nOrganization: sgi\nLines: 51\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1ql5snINN4vm@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >>So, you are saying that it isn't possible for an instinctive act\n|> >>to be moral one?\n|> >\n|> >I like to think that many things are possible.   Explain to me\n|> >how instinctive acts can be moral acts, and I am happy to listen.\n|> \n|> For example, if it were instinctive not to murder...\n\nThen not murdering would have no moral significance, since there\nwould be nothing voluntary about it.\n\n|> \n|> >>That is, in order for an act to be an act of morality,\n|> >>the person must consider the immoral action but then disregard \n|> >>it?\n|> >\n|> >Weaker than that.   There must be the possibility that the\n|> >organism - it's not just people we are talking about - can\n|> >consider alternatives.\n|> \n|> So, only intelligent beings can be moral, even if the bahavior of other\n|> beings mimics theirs?\n\nYou are starting to get the point.   Mimicry is not necessarily the \nsame as the action being imitated.   A Parrot saying \"Pretty Polly\" \nisn't necessarily commenting on the pulchritude of Polly.\n\n|> And, how much emphasis do you place on intelligence?\n\nSee above.\n\n|> Animals of the same species could kill each other arbitarily, but \n|> they don't.\n\nThey do.   I and other posters have given you many examples of exactly\nthis, but you seem to have a very short memory.\n\n|> Are you trying to say that this isn't an act of morality because\n|> most animals aren't intelligent enough to think like we do?\n\nI'm saying:\n\n\t\"There must be the possibility that the organism - it's not \n\tjust people we are talking about - can consider alternatives.\"\n\nIt's right there in the posting you are replying to.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9819, "properties": {"category": "sci.space", "text": "From: howard@sharps.astro.wisc.edu (Greg Howard)\nSubject: Re: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nOrganization: University of Wisconsin - Astronomy Department\nLines: 10\nNNTP-Posting-Host: uwast.astro.wisc.edu\n\n\nActually, the \"ether\" stuff sounded a fair bit like a bizzare,\nqualitative corruption of general relativity.  nothing to do with\nthe old-fashioned, ether, though.  maybe somebody could loan him\na GR text at a low level.\n\ndidn't get much further than that, tho.... whew.\n\n\ngreg\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9820, "properties": {"category": "rec.autos", "text": "From: etjet@levels.unisa.edu.au\nSubject: Aussie needs info on car shows\nReply-To: johnt@spri.levels.unisa.edu.au\nOrganization: University of South Australia\nLines: 54\n\n\n\nHi from Australia,\n\nI am a car enthusiast in Australia.\n \nI am particularly interested in American Muscle cars of the \n1960s and 1970s. ALL MAKES: AMC, Ford, Chrysler/Mopar, GM.\n\nI will be in the USA for 6 weeks from May 2nd to -June 14 1993.\n\nChicago: Sun May 2 -Thursday May 6\nDenver:  Friday May 7 - Sunday May 9\nAustin, Texas: Monday May 10- Friday May 21\nOklahoma City: Friday May 21 - Monday May 24\nAnaheim, California: Tuesday May 25-Thursday May 27\nLas Vegas, Nevada:  Friday May 28- Sunday May 30\nGrand Canion, Monday May 31 - Tuesday June 1\nLas Angeles, San Diego and vicinity: Wednesday June 3-Sunday June 6 June\nSouth Lake Tahoe, Cal: Sunday June 6 - Wednesday June 9\nReno: Thursday June 10\nSan Fransisco: Thursday June 10 - Sunday June 13\n\n\nI was wondering if anyone could send me any information of \ncar shows, swap meets, drag meets, model car shows etc. during this period.\nCan anybody tell me when the Pomona Swap meet is on this year?\n\nAlso, any places to visit (eg. car museums, private collections, \nyour collection? etc. Any bit of information is appreciated!\n\nI am also interested in finding some model cars (scale Models). \nI am intersted in 1968-1974 AMC cars. Of particular interest is:\n1968-1970 AMX\n1968-1974 Javelin\n1969 SCRAMBLER\n1970 Rebel Machine\nand others\n\nIf you have any kits, plastics, diecast etc and are interested in selling them,\ntell me, I will be interested.\n\nI can also send/bring you models of Australian High performance cars if \nyou are interested.\n\n\nPlease reply by email to: johnt@spri.levels.unisa.edu.au\n\n\nThanks,\n\nJohn Tsimbinos \n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9821, "properties": {"category": "comp.graphics", "text": "From: dave.mikelson@almac.co.uk (Dave Mikelson) \nSubject: Re: PCX\nDistribution: world\nOrganization: Almac BBS Ltd. +44 (0)324 665371\nReply-To: dave.mikelson@almac.co.uk (Dave Mikelson) \nLines: 22\n\nTo: ad994@Freenet.carleton.ca\n\nJW> 1) Where is there a book or code that will teach me how\nJW> to read and write pcx,dbf,and gif files?\n\nJW> 2) How do I access the extra ram on my paradise video board\nJW> so I can do paging in the higher vga modes ie: 320x200x256\nJW> 800x600x256\n\nJW> 3) anybody got a line on a good book to help answer these question?\n\nHere are some that I have that are very good:\n\n  Graphics File Formats, Kay and Levine, ISBN 0-8306-3059-7\n  Supercharged Bitmapped Graphics, Rimmer, ISBN 0-8306-3788-5\n  Programmer's Guide to the EGA and VGA Cards, Ferraro,\n     ISBN 0-201-57025-4 (has a whole chapter on Paradise SVGA)\n\nDave\n---\n . DeLuxe./386 1.12 #8993 . \n                                                                                       \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9822, "properties": {"category": "sci.electronics", "text": "From: wb8foz@skybridge.SCL.CWRU.Edu (David Lesher)\nSubject: Re: History question\nOrganization: NRK Clinic for habitual NetNews abusers - Beltway Annex\nLines: 24\nReply-To: wb8foz@skybridge.scl.cwru.edu (David Lesher)\nNNTP-Posting-Host: skybridge.scl.cwru.edu\n\nOthers said:\n{early PA?}\n# I recall reading of a phonograph which used mechanical amplification.\n# Compressed air was squirted out of a valve which was controlled by the\n# pickup.  The result was noisy and distinctly lo-fi, but much louder\n# than a conventional phonograph.  It tended to wear the disks out\n# pretty quickly though.\n\nAn now-deceased prof told us willing students about a project he had\nworked on during WWII.\n\nThey needed a mega-power PA with very clear audio quality. The purpose\nwas to bellow at refugees from aircraft.\n\nTheir solution was a giant compressed-air source, and a horn with\nparallel shutters worked by a small audio system. I think he said it\nworked very well, thus the War Dept. cancelled the project ;_}.\n\n\n--\nA host is a host from coast to coast..wb8foz@skybridge.scl.cwru.edu\n& no one will talk to a host that's close............(301) 56-LINUX\nUnless the host (that isn't close).........................pob 1433\nis busy, hung or dead....................................20915-1433\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9823, "properties": {"category": "rec.sport.hockey", "text": "From: seth@cbnewsh.cb.att.com (peter.r.clark..jr)\nSubject: Re: Adams Division Race\nArticle-I.D.: cbnewsh.1993Apr5.141123.8101\nDistribution: na\nOrganization: AT&T\nLines: 21\n\nIn article <1993Apr2.175052.22810@thunder.mcrcim.mcgill.edu>, breton@McRCIM.McGill.EDU (Pierre Breton) writes:\n> \n> \n> The Adams division race is certainly interesting this year.  Here are\n> important data to keep in mind in the eventuality of a tie for a given\n> standing position.\n> \n> In head to head games:\n> Quebec wins over Montreal, 4-3-0;\n> Boston leads against Quebec, 3-1-1 with two games remaining;\n> Montreal and Boston are tied, 4-4-0 with one game remaining.\n> \n>       (..)        Pierre Breton   (aka Fluide Glacial)\n\nPierre,\nFor purposes of the tie breaker, you only count the first three games in\neach city. Therefore, Quebec cannot possibly be ahead of Montreal 4-3,\nand there's probably only one game that counts remaining between Boston\nand Quebec, which means Boston has probably already won.\n\npete clark - rsh FLYERS contact\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9824, "properties": {"category": "sci.crypt", "text": "From: srt@duke.cs.duke.edu (Stephen R. Tate)\nSubject: Re: Why the clipper algorithm is secret\nOrganization: Duke University Computer Science Dept.; Durham, N.C.\nLines: 31\n\nIn article <1993Apr18.225502.358@iecc.cambridge.ma.us> johnl@iecc.cambridge.ma.us (John R. Levine) writes:\n>It just occurred to me why the algorithm is secret.  If it were\n>published, one could then build physically identical clone versions\n>of the chip that would interoperate with official Clipper chips.  But\n>the cloner wouldn't provide the keys to the escrow houses.  Hmmn.\n\nNot necessarily --- they could release the details of the algorithm\nwithout releasing the \"system key\" (called SK by Hellman).  That would\nmake most people happy, and with some sort of verification procedure\nbefore key exchange, the \"official\" chips would only work with other\n\"official\" chips.  In other words, secrecy of SK makes \"physically\nidentical clone versions\" impossible;  secrecy of the algorithm shouldn't\nbe necessary.\n\nOf course, revealing the algorithm opens them up to attacks on SK ---\nsince all units share this key, compromising it may be a big deal.\nPersonally, I wouldn't feel too comfortable knowing that one \"secret\"\n80-bit number held in many places was all that guaranteed my security.\nOf course, compromise of SK doesn't necessarily mean that the system\nis compromised, but it's impossible to tell whether or not that's true\nwith a secret algorithm.\n\nIncidentally, what's to keep a \"secret algorithm\" from using the secret\nSK as the main key, with UK being only marginally important.  Then\na court order for UK may not even be necessary to do a wiretap.\n\n-- \nSteve Tate srt@cs.duke.edu | The reason why mathematics enjoys special esteem,\nDept. of Computer Science  | above all other sciences, is that its laws are\nDuke University     | absolutely certain and indisputable, while those of all\nDurham, NC  27706   | other sciences are to some extent debatable. (Einstein)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9825, "properties": {"category": "talk.politics.guns", "text": "Subject: Re: Non-lethal alternatives to handguns?\nFrom: steiner@jupiter.cse.utoledo.edu (Jason 'Think!' Steiner)\nNntp-Posting-Host: jupiter.cse.utoledo.edu\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 16\n\ndouglas craig holland (holland@CS.ColoState.EDU) writes:\n[...lostsa' crap deleted. trim your articles!...]\n\n> What about guns with non-lethal bullets, like rubber or plastic \n> bullets. Would those work very well in stopping an attack?\n\nlast i heard, \"non-lethal\" was a bit of a misnomer for these things.\n\njason\n\n--\n`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`\n`,` Democrat:    Give us your money. _We'll_ solve your problems. `,`\n`,` Republican:  Give us your money. We'll ignore your problems.  `,`\n`,` Libertarian: Keep your money. Solve your own problems.        `,`\n`,`,`,`,`,`,`,`,`,`,`,`,`,`,` steiner@jupiter.cse.utoledo.edu `,`,`,`\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9826, "properties": {"category": "sci.crypt", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nDistribution: na\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nLines: 17\n\nIn article <1993Apr19.130132.12650@afterlife.ncsc.mil> rlward1@afterlife.ncsc.mil (Robert Ward) writes:\n>In article <bontchev.734981805@fbihh> bontchev@fbihh.informatik.uni-hamburg.de writes:\n>>and since the US constitutions guarantees the right to every American\n>>to bear arms, why is not every American entitled, as a matter of\n>\n>Have you read the applicable part of the Constitution and interpreted it IN \n>CONTEXT?  If not, please do so before posting this misinterpretation again.\n>It refers to the right of the people to organize a militia, not for individuals\n>to carry handguns, grenades, and assault rifles.  \n\nRead the Constitution yourself.  The Second Amendment says the right to bear\narms shall not be infringed, so a well regulated militia may be more easily\nformed.  I have an interpretation of the Second that shows there are no \nqualifications to the right to keep and bear arms.  If you want, I can E-mail\nit to you.  By the way, gun talk belongs in talk.politics.guns.\n\t\t\t\t\t\t\tDoug Holland\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.462+0000", "event": "documents", "entityId": 9827, "properties": {"category": "rec.sport.baseball", "text": "From: baseball@catch-the-fever.scd.ucar.edu (Gregg Walters)\nSubject: Ryan on DL\nOrganization: Scientific Computing Divison/NCAR Boulder, CO\nLines: 18\n\nHeard minutes ago on KOA radio, Denver.\n\nNolan Ryan to have arthroscopic on a knee, and\nto miss 2 - 5 weeks.\n\nRockies (Nied) lead Mets (Gooden) 4 - 0 in 7th.\nAll runs in first inning.\n\nGregg            \\\\   baseball@ncar.ucar.edu   //\n\t\t  \\\\            /\\            //\n\t       _^   \\          /  \\          /   ^_\n\t       _\\|__/\\        /    \\        /\\__|/_\n\t      /\\___/         /      \\         \\___/\\\n\t     | CR/        /\\/   o    \\/\\        \\CR |\n\t     |--/        /     /        \\        \\--|\n\t      \\ \\       /     //         \\       / /\n\t      / /      /     //           \\      \\ \\\n\t      \\ \\     /  COLORADO ROCKIES  \\     / /\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9828, "properties": {"category": "misc.forsale", "text": "From: yoshi@atlantis.CS.ORST.EDU (Digital Exodus 1993)\nSubject: Reciever/CD Player/Keyboards for sale.\nArticle-I.D.: leela.1pqneqINN9h3\nOrganization: OSU CS Outreach Services, Corvallis, Oregon\nLines: 22\nNNTP-Posting-Host: atlantis.cs.orst.edu\n\n\nThe following items are for sale:\n\n1)      ONKYO TX-901/910 reciever/amplifier. Only 2 months old.\n        >PERFECT< condition. 45wpc (stereo), 4 speaker ability,\n        40 channel memory, has digital and direct tuning also.\n        Plus, it also have an earphone jack... \n\tBought for $350 new. Asking for no less than $250; best\n        offer gets it (obviously).\n\t\t        ...PRICE DROPPED TO $230...\n      - No offers so far; what's the deal? No recievers needed? :(\n\n2)\tTwo ZEOS IBM-External keyboards. Under a month old, bought\n\tfor $90 each new; selling for $35 a piece, or $65 for both.\n\n\tI pay shipping. \n\n(SNES has been sold, and the CD player still hasn't been sold; if\n you offer $170 or more, I will instantly send it to you...)\n(ask for stats. on the CD player)\n\t\t\t\t\t\tYoshi.\n\t\t\t\t\tyoshi@atlantis.cs.orst.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9829, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: oecjtb@oec4.orbital.dialix.oz.au (John Bongiovanni)\nSubject: Re: Date is stuck\nOrganization: Orbital Engine Company\nLines: 29\n\nbsardis@netcom.com (Barry Sardis) writes:\n\n>kevin@kosman.uucp (Kevin O'Gorman) writes:\n\n>>Anybody seen the date get stuck?\n\n>>I'm running MS-DOS 5.0 with a menu system alive all the time.  The machine\n>>is left running all the time.\n\n>>Suddenly, the date no longer rolls over.  The time is (reasonably) accurate\n>>allways, but we have to change the date by hand every morning.  This involves\n>>exiting the menu system to get to DOS.\n\n>I've started to notice the same thing myself. I'm running DOS 5 and Win 3.1 so\n>I can fix it from the Windows Control Panel. At times it is the date, at\n>others the clock seems to be running several minutes behind where it should\n>be.\n\nDid I once hear that in order for the date to advance, something, like a \nclock, *has* to make a Get Date system call? Apparently, the clock\nhardware interrupt and BIOS don't do this (date advance) automatically. The\nGet Date call notices that a \"midnight reset\" flag has been set, and then\nthen advances the date.\n\nAnybody with more info?\n-- \nJohn Bongiovanni, Systems Analyst, Orbital Engine Company, Perth, Australia\noecjtb@oec4.orbital.dialix.oz.au, bongo@alumni.caltech.edu\nOpinions expressed are my own and not those of my organisation.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9830, "properties": {"category": "comp.windows.x", "text": "From: rgasch@nl.oracle.com (Robert Gasch)\nSubject: Overriding Default Behaviour\nOrganization: Oracle Europe\nLines: 23\nX-Newsreader: TIN [version 1.1 PL8]\n\nUsually when I start up an application, I first get the window outline\non my display. I then have to click on the mouse button to actually\nplace the window on the screen. Yet when I specify the -geometry \noption the window appears right away, the properties specified by\nthe -geometry argument. The question now is:\n\nHow can I override the intermediary step of the user having to specify\nwindow position with a mouseclick? I've tried explicitly setting window\nsize and position, but that did alter the normal program behaviour.\n\nThanks for any hints\n---> Robert\n\nPS: I'm working in plain X.\n\n\n\n******************************************************************************\n* Robert Gasch\t       * Der erste Mai ist der Tag an dem die Stadt ins      *\n* Oracle Engineering   * Freihe tritt und den staatlichen Monopolanspruch    *\n* De Meern, NL\t       * auf Gewalt in Frage stellt                          *\n* rgasch@nl.oracle.com *                           - Einstuerzende Neubauten *\n******************************************************************************\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9831, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: holmes7000@iscsvax.uni.edu\nSubject: WIn 3.0 ICON HELP PLEASE!\nOrganization: University of Northern Iowa\nLines: 10\n\nI have win 3.0 and downloaded several icons and BMP's but I can't figure out\nhow to change the \"wallpaper\" or use the icons.  Any help would be appreciated.\n\n\nThanx,\n\n-Brando\n\nPS Please E-mail me\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9832, "properties": {"category": "sci.space", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: Space Research Spin Off\nLines: 24\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nIn article <1psgs1$so4@access.digex.net>, prb@access.digex.com (Pat) writes:\n>|\n>|The NASA habit of acquiring second-hand military aircraft and using\n>|them for testbeds can make things kind of confusing.  On the other\n>|hand, all those second-hand Navy planes give our test pilots a chance\n>|to fold the wings--something most pilots at Edwards Air Force Base\n>|can't do.\n>|\n>\n>What do you mean?  Overstress the wings,  and they fail at teh joints?\n>\n>You'll have to enlighten us in the hinterlands.\n\nNo, they fold on the dotted line.  Look at pictures of carriers with loads of\na/c on the deck, wings all neatly folded.\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |God gave us weather so we wouldn't complain\npyron@skndiv.dseg.ti.com          |about other things.\nPADI DM-54909                     |\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9833, "properties": {"category": "rec.sport.baseball", "text": "From: mss@netcom.com (Mark Singer)\nSubject: Re: Young Catchers\nKeywords: Solid != good\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 64\n\nIn article <1qlnknINN2sh@aludra.usc.edu> sheehan@aludra.usc.edu (Joseph Sheehan) writes:\n\n\nMost of the points you made about Lopez v. Berryhill/Olson have been\nmade by others, and realizing that Lopez must be the second coming of\nFrank Thomas, I have relented and praised the unmistakeable wisdom of\nhis supporters.\n\n>\n>Nope. They're baseball management, possible the most short-sighted \n>collection of people in the nation. Do you not believe this goes on,\n>Mark? Do you think Frank Thomas needed those three months in AAA in\n>1990?\n\nSee?  This is essentially what everyone was doing  -  comparing Lopez\nto one of the best players in the game.  I'm really looking forward\nto seeing this can't-miss superstar now.  As for Thomas, I remember\nbeing an advocate of his being brought up in 1990 even though he was\nonly 21 or 22 (can't remember).  But who did the Sox have at first?\nCalderon?  Martinez?  Kittle?  The spot was there.  The talent was\nthere.  Sure, I say go for it.\n\nI am not convinced that Lopez is anywhere near as talented as Thomas\nwas after his AA season in 1989, and I am not convinced that Olson/\nBerryhill are nearly as bad as Kittle/Martinez were.\n\nBTW, I don't think Thomas was hurt by those three months.\n\n\n\n\n\n>Or Cal Eldred wasn't *really* better than Ricky Bones last year?\n\nWell, if we can't compare our guy to one of the best in the game,\nlet's compare our decision to one of the most \"Boneshead\", right?\n\nCal Eldred was 24 when he came up, with a full season at AAA and a\nlonger minor league career.  Frankly, I don't know why he didn't\nmake the club in 1992.  Bones is a year younger with a lousy prior\nhistory, and just watching him makes me think that I missed a \ncareer as a big-league pitcher.  No one -  I repeat NO ONE  -\nlaughed louder than I did at the Sheffield trade.  (Though I guess\nMieske has a future.)\n\n(I take it back. McIlvaine may have laughed louder.)\n\n\n>\n>You're mostly polite; make defensible, if flawed cases; have wit and\n>have, in the past, admitted being wrong. That does qualify you on r.s.b.\n>We'll make an SDCN out of you, yet :-)\n\n\naw, gee, shucks.  thanks guy.  except I missed the part where SDCN's\nadmit they're wrong.\n\n\n\n--\tThe Beastmaster\n\n-- \nMark Singer    \nmss@netcom.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9834, "properties": {"category": "comp.windows.x", "text": "From: weisberg@ee.rochester.edu (Jeff Weisberg)\nSubject: Problem: R5 server hangs on Sun3\nSummary: annoying problem, server hangs\nKeywords: X11R5pl22, sun3, bw2, 4.1.1, gcc-2.3.3, Xsun, Vernal Equinox\nOrganization: Univ. of Rochester, Dept. of Electrical Engineering\nLines: 19\n\n\nI recently compiled the X11R5pl22 sources using gcc-2.3.3 on\na Sun3/80. Everything seems to work fine. Usually. But at\nseemingly random times the server will just hang. I will\nclick the mouse somewhere (never happens while my back is turned),\nand without warning, it will freeze there, requiring the server\nto be killed. Sometimes it will run fine for weeks, sometimes\nonly for minutes.\n\n(Os: 4.1.1; frame buffer: bw2).\n\nHas anyone seen this before, any ideas? (anything at all?)\n\nthanks,\n\t--jeff\n\n---\nJeff Weisberg  |  weisberg@ee.rochester.edu   |    Real Cherries,\n               |  ur-valhalla!weisberg        |        Watch for pits!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9835, "properties": {"category": "comp.windows.x", "text": "From: snail@lsl.co.uk\nSubject: MOTIF & X on Windows NT\nOrganization: Laser-Scan Ltd., Cambridge\nLines: 16\n\nIn article <1993Apr7.044749.11770@topgun>, smikes@topgun (Steven Mikes) writes:\n> Another company, Congruent Corporation of New York City, has also ported Xlib\n> Xt and Motif 1.1 over to MS Windows NT, which provides full client development\n> for X applications in an NT environment.\n\nCould someone please send me the postal and email address of\nCongruent Corporation (and any competitors they may have).\n\nThank you.\n-- \nsnail@lsl.co.uk      \n\n\"Washing one's hands of the conflict between the powerful and the powerless\n means to side with the powerful, not to be Neutral.\"\n                                                     Quote by Freire.\n                                                     Poster by OXFAM.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9836, "properties": {"category": "rec.motorcycles", "text": "From: bclarke@galaxy.gov.bc.ca\nSubject: Re: Kawi Zephyr? (was Re: Vision vs GpZ 550)\nOrganization: BC Systems Corporation\nLines: 14\n\nIn article <1993Apr4.135829.28141@pro-haven.cts.com>, shadow@pro-haven.cts.com writes:\n> In <1993Apr3.094509.11448@organpipe.uug.arizona.edu>\n> asphaug@lpl.arizona.edu (Erik Asphaug x2773) writes:\n> % By the way, the short-lived Zephyr is essentially a GpZ 550,\n> Why was the \"Zephyr\" discontinued?  I heard something about a problem with\n> the name, but I never did hear anything certain... \n\nI don't think the 550 sold very well - most North Americans who ride a standard\nrather than a sport bike usually want something bigger. People walk into the\ndealership, look at the 550 and the 750 and say, \"I might as well spring the\nextra bucks for the bigger engine.\"\n-- \nBruce Clarke       B.C. Environment\n                   e-mail: bclarke@galaxy.gov.bc.ca\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9837, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dudek@daeron.mcrcim.mcgill.edu (Gregory Dudek)\nSubject: Re: IIci -> Q700 upgrade?\nNntp-Posting-Host: daeron.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for Intelligent Machines\nLines: 28\n\nIn article <C5HA0x.11oq@austin.ibm.com> $LOGIN@austin.ibm.com writes:\n>\n>A while ago I posted a note asking for specs on the Quadra 700, and opinions on\n>the Q700 upgrade of a IIci vs. an accelerator card.  So far no responsed that\n>I've noticed.  Please let me know what you think of these possible upgrade\n>paths:  Cost, efficiency, pros/cons, etc.. Thanks!\n\n  Complete Q700 are best obtained from your dealer or some recent\ncopy of MacWorld or MacUser.  My foggy memory suggests that the most relevant\ncomparison factors vis-a-vis a IIci are as follows:\n\n  25 MHz 68040\n  16 Mhz data path (don't recall this for sure, but it's slower\n      than Q 950 style machines for sure).\n  Ethertalk card on-board\n  Audio in/out\n  4 MB RAM on motherboard\n  4 SIMM slots\n  2 NuBus slots.\n  More flexible build-in video than the CI.  Uses VRAM.\n\nIn comparison, a IIci with an accelerator won't give you\n  audio or ethernet  or the same video options.\n  With a 68040 accelerator, CPU performance can be comparable but I\n  think it ends up costing more.\n\nGreg Dudek\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9838, "properties": {"category": "rec.motorcycles", "text": "From: davide@dcs.qmw.ac.uk (Dave Edmondson)\nSubject: Re: Why are there no turbocharged motorbikes in North America?\nOrganization: Computer Science Dept, QMW, University of London\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 17\n\n\n: In article <7APR93.20040687@skyfox> howp@skyfox writes:\n\n: >I just got to thinking:  why don't manufacturers still make bikes with \nturbos?\n: > etc ....\n\nBecause they add a lot of expense and complexity and make for a less reliable \nand less controllable bike. \n\nAs an extreme example the CX500 Turbo cost as much as a Mike Hailwood Replica \nDucati.\n\n--\nDavid Edmondson                 davide@dcs.qmw.ac.uk\nQueen Mary & Westfield College  DoD#0777 Guzzi Le Mans 1000\n\"This means the end of the horse-drawn Zeppelin.\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9839, "properties": {"category": "misc.forsale", "text": "Subject: Books For Sale [Ann Arbor, MI]\nFrom: david@ganglion.ann-arbor.mi.us (David Hwang)\nReply-To: david@ganglion.ann-arbor.mi.us\nDistribution: na\nOrganization: D.J. Services\nLines: 68\n\n\n\n                           BOOKS FOR SALE\n                          ================\n\nTally up any and all of the books you want and send me a message. \nShipping will be by US Mail Parcel Post/Book Rate.  Payment in advance\nor COD accepted.  \n\nAll books are in good to excellent condition.  Paperbacks, unless noted. \nQuantity Discounts. \n\nThis list is updated continually.  The latest list can be requested by\ne-mail. This list supercedes all previous lists.  Not responsible for typos.\n     !!!! = New To Listing  **** = Claimed, but not paid for yet\n===============================================================================\nDavid Hwang, Ann Arbor, Michigan                 david@ganglion.ann-arbor.mi.us\n-------------------------------------------------------------------------------\n                       List of: February 27, 1993\n===============================================================================\nComputers\n---------\nUsing Wordperfect 5 (QUE, Stewart)............................... $10.00\nUsing Clipper (QUE, Tiley)....................................... $10.00\nTRS-80 Assembly Language Programming [Barden].................... $ 1.00\n57 Practical Programs & Games in Basic [Tracton]................. $ 1.00\nFirst Book of Wordperfect 5.1 [Barnes]........................... $ 8.00\n\nCorvettes\n---------\n1984-1986 Y Car Parts and Illustration Catalog [GM Manual]....... $ 7.50\nSecrets of Corvette Detailing [Antonick]......................... $ 7.50\nEckler's Complete Guide to Corvette Fiberglass Repair............ $ 7.50\nCorvette Owners' Workshop Manual [Haynes] [84-87]................ $ 7.50\nChevrolet Power Catalog [GM Manual] 6th. Edition................. $ 3.50\nCorvette Driver/Owner Guide For 1953-1988 Models [Antonick]...... $ 7.50\nChevrolet Small Block V8 Speed Equipment Buyers Guide [Lamm]..... $10.00\nChilton's Easy Car Care, 2nd. Edition............................ $10.00\n\nMedicine\n--------\nOphthalmology Study Guide For Medical Students................... $ 4.00\nWashington Manual or Medical Therapeutics, 26th. Ed.............. $10.00\nRespiratory Physiology-The Essentials [West], 3rd. Ed............ $ 9.00\nLangman's Medical Embryology, 5th. Ed. [Sadler] -hardcover-...... $18.00 SOLD\nEssentials of Human Anatomy, 7th. Ed. [Woodburne] -hardcover-.... $18.00 SOLD\nCardiology Reference Book, 3rd Ed. [Kloner]...................... $ 4.00\nHandbook of Antimicrobial Therapy 1992 [Mandell]................. $ 4.00\nGuide to Antimicrobial Therapy 1991 [Sanford] ................... $ 1.00 \n                                    --> or free with $10.00 of Med Books\nComprehensive Review of the Basic Sciences....................... $10.00 SOLD\nHow to Get Into Medical & Dental School, 3rd. Ed................. $ 2.00\nSexual Interactions [Allgeier], 2nd Ed. -hardcover-.............. $25.00\nOn Call: Principles and Protocols [Ruedy]........................ $ 9.00\nPhysicans' Desk Reference [PDR], 46th Ed., 1992 -hardcover-...... $10.00\nIntroduction to General Pathology [Spector], 2nd Ed. ............ $ 8.00\nMedical School Admissions: Strategy For Success [Weschler] 1982.. $ 4.00\nGetting Into Medical School [Brown] 1981 ........................ $ 1.00\nTen Point Plan For College Acceptance [Graham] 1981 ............. $ 2.00\n\nOther\n-----\nCollege Accounting, 9th Ed., 1972 [Carson] -hardcover-........... $ 2.00\n\n-- \nDavid W. Hwang, M.D.           //    University of Michigan Medical School\n1050 Wall Street, Suite 10C   //           Telephone: 313/663-5557\nAnn Arbor, Michigan 48105    //    Internet: david@ganglion.ann-arbor.mi.us\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9840, "properties": {"category": "comp.windows.x", "text": "From: claes@polaris (Heinz-Josef Claes)\nSubject: german keyboard, X11R5 and Sparc\nNntp-Posting-Host: polaris.informatik.uni-essen.de\nOrganization: Uni-Essen\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 8\n\nI have a Sparc[12] with a german type 4 keyboard.\nHas anybody a Patch for X11R5?\n\nThanks in advance\n\nHeinz-Josef Claes\nemail: claes@tigger.turbo.uni-essen.de\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9841, "properties": {"category": "rec.motorcycles", "text": "From: wallich@NCD.COM (Ken Wallich)\nSubject: Re: Aerostitch:  1- or 2-piece?\nDistribution: rec\nOrganization: If I were organized, why would I be reading News?\nLines: 49\nNntp-Posting-Host: verbosa\n\nIn article <1993Apr14.144015.18175@vax5.cit.cornell.edu> na4@vax5.cit.cornell.edu writes:\n%\n%   Request for opinions:\t\n%\n%   Which is better - a one-piece Aerostitch or a two-piece Aerostitch?\n%\n\n\nLike most everyone else, I ended up getting two different sizes for\nthe top and bottom.  My top is a 46L and the bottom is a 48L.  For the\nbottom, the waist is far too large, but the thighs fit just right (the\n46 had a better waist, but cut off the circulation in my legs, I have\nlarge, muscular thighs, and no, I didn't use the thighmaster to get\nthem :-).  The jacket fits me ok in the chest, slightly snug at the\nwaist, and too small in the arms.  I can't imagine finding a one-piece\nsize that would have fit correctly, as even the 2 piece has it's\nproblems (strange, since my V-Pilot jacket fits great all over, and\nwhen I tried the matching pants, they fit like a glove as well).\n\nI can only assume the models Aero Design uses to design its suits are\nin some way different from us real folks.\n\nAlso, even though it's related to convienience, you look pretty damn\nwierd walking around with the tops and bottoms while running errands.\nI've gotten some really suspicious looks, and sweated a lot while in a\nstore wearing the whole suit, since you can't fit the top and bottom\nin any motorcycle storage device yet devised (except the trunk in my\nsidecar rig :-).  With the two piece, I unzip the pants (I generally\nleave the two pieces zipped together, primarily because the pants fall\ndown unless I pull the cheesy elastic belt-type band real tight),\nstuff them in one of my spacious BMW saddlebags (the pants just fit),\nand run errands just wearing the jacket.  Actually, if I know I'll be\nrunning errands, I just wear my V-Pilot jacket, but that's just me...\n\nAs far as crash protection, I'd say that both suits are probably\nequal.  It seems that for weather protection, if anything the 2 piece\nprovides a little more because of the jacket overlapping the pants by\n3 inches.  The 2 piece is probably a little less comfortable around\nthe waist, just because of the extra layer of stuff, but maybe not.\n\nSo I'd have to vote for the two piece.  Despite the slightly odd fit,\nI still find the suit the most versatile piece of riding clothing I\nown.  Wouldn't go long distance without it.\n\nKen Wallich <wallich@ncd.com> \nken@wallich.com ~ kmw@al.org ~ [...]decwrl!vixie!amber!ken\n--\nKen Wallich <wallich@ncd.com> \nken@wallich.com ~ kmw@al.org ~ [...]decwrl!vixie!amber!ken\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9842, "properties": {"category": "talk.politics.mideast", "text": "From: zbib@bnr.ca (Sam Zbib)\nSubject: RE:Legality of the jewish purchase\nNntp-Posting-Host: 47.141.0.106\nReply-To: zbib@bnr.ca\nOrganization: Bell-Northern Research\nLines: 67\n\n\n(Amir Y Rosenblatt) writes\n   > Sam Zbib Writes\n   >>No one in his right mind would sell his freedom and dignity.\n   >>Palestinians are no exception. Perhaps you heard about\n   >>anti-trust in the business world.\n   >>\n   >>Since we are debating the legality of a commercial\n   >>transaction, we must use the laws governing the guidelines\n   >>and ethics of such transactions. Basic ANTI-TRUST law says\n   >>that, while you can purchase IBM stocks for the purpose of\n   >>investing, you can not acquire a large number of those\n   >>shares with the intent or controlling IBM. You can do so\n   >>only if you make your intentions CLEAR apriori . Clearly,\n   >>the Jews who purchased properties from palastenians had some\n   >>designs, they were not buying a dwelling or a real estate.\n   >They were establishing a bridgehead for the European Jews.\n   >>\n   >>The palastenians sold their properties to the Jews in the\n   >>old tradition of arab hospitality. Being a multi-ethnic /\n   >>multi-religious society, accepting the jews as neighbours\n   >>was no different, just another religion. Plus they paid fair\n   >>market value, etc... They did not know they were victims of\n   >>an international conspiracy. (I'm not a conspiracy theorist\n   >>myself, but this one is hard to dismiss).\n   >>\n\n>Right now, I'm just going to address this point.\n>When the Jewish National Fund bought most of its land,\n>It didn't buy it from the Palestinians themselves, because,\n>for the most part, they were tenant farmers (fallahin),\n>living on land owned by wealthy Arabs in Syria and Lebanon.\n>The JNF offered a premium deal, so the owners took advantage of\n>it.   It's called commerce.  The owners, however, made no \n>provisions for those who had worked for them, basically shafting \n>them by selling the land right out from under them.\n>They are to blame, not the Jews.\n>\n>\n\nAmir: \nWhy would you categorize the sale of land as shafting? was\nit because it was sold to Jews? was it fair to assume that the \nfallahin would be mistreated by the jews? is this the norm of \nany commerce (read shafting) between arabs and  jews? \n\nYour claim that the Lebanese/Syrian Landlords sold Palestine\n(if true, even partially) omits the fact that the mandate\ntreaty put Lebanon and Syria under French rule, while\nPalestine under british.  Obiviously, any such landlord\nwould have found himself a foreigner in Palestine and would\nbe motivated to sell, regardless of the price.\n\nIt is interesting though that you acknowledge that the\npalestinians were shafted. Do many Israelis or Jews share\nyour opinion ?  Do you  absolve the purchaser from\nany ethical commitments just because it wasn't written down? \n\nAll told, I did not see an answer in your response. The\nquestion was whether the intent behind the purchase was\naimed at controlling the public assets (land,\ninfra-structure etc...). IMHO the Palestinians have grounds\nto contest the legality of the purchase, say in world court.\n\nSam \n\n       My opinions are my own and no one else's\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9843, "properties": {"category": "soc.religion.christian", "text": "From: isc10144@nusunix1.nus.sg (CHAN NICODEMUS)\nSubject: Greek Wordprocessor/Database.\nOrganization: National University of Singapore\nLines: 25\n\nHi there,\n\n\tDoes anyone know about any greek database/word processor that\ncan do things like count occurrences of a word, letter et al?\n\n\tI'm posting this up for a friend who studies greek.\n\nThanks,\n\nNico.\n\nP.S.\tCan you email as I seldom look into usenet nowadays.\n--\n+--------------------------------------+-------------------------------------+\n|  NICODEMUS CHAN,\t               | Raffles Hall, NUS, Kent Ridge Cres. |\n|  Department of Information Systems   | Singapore 0511. (Tel : 02-7797751)  |\n|              & Computer Science,     | [Hometown Address]:                 |\n|  National University of Singapore.   | 134, Nanyang Estate, Jinjang North  |\n|  Kent Ridge Crescent,                | 52000, Kuala Lumpur, Malaysia       |\n|  SINGAPORE 0511                      | E-Mail : isc10144@nusunix.nus.sg    |\n|                                      |          channico@iscs.nus.sg       |\n+--------------------------------------+-------------------------------------+\n                                                                              \n   \"Call unto me and I will answer you and show thee great and unsearchable   \n                    things you do not know.\"  Jeremiah 33:3                   \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9844, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: oddjob@oz.plymouth.edu (Andrew C. Stoffel)\nSubject: Re: Utility for updating Win.ini and system.ini\nOrganization: Plymouth State College - Plymouth, NH.\nLines: 19\n\nIn article <1993Apr20.151912.18590@midway.uchicago.edu> am37@midway.uchicago.edu writes:\n\n>Unless I am completely misunderstanding you, try using either Notepad or\n>sysedit.exe (found in your system subdirectory) to edit you .ini files.\nYou can add sysedit (& regedit) to a program group... they are Windows\nprograms. \n>The sysedit.exe program is cool because it automatically opens you win.ini,\n>system.ini, autoexec.bat and config.sys files to be edited.\n\nIs it possible to get it to load other *.ini files ????\n\n>Drewster (am37@kimbark.uchicago.edu)\n>\n\n\n-- \n|E-mail  --> un*x: oddjob@oz.plymouth.edu |vms: andys@psc.plymouth.edu |\n|Disclaimer > Any \"end-user\" software that provides NO avenue for user |\n|of the week> modification or programmability is NOT user friendly.    |\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9845, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu(Michael Lurie) The Liberalizer\nSubject: Re: Jewish Baseball Players?\nOrganization: Allegheny College\n\nIn article <C5Jsxs.1M0@unix.amherst.edu> jlroffma@unix.amherst.edu (JOSHUA  \nLAWRENCE ROFFMAN) writes:\n> : >baseball players, past and present.  We weren't able to come up\n> : >with much, except for Sandy Koufax, (somebody) Stankowitz, and\n> : >maybe John Lowenstein.  Can anyone come up with any more.  I know\n> : >it sounds pretty lame to be racking our brains over this, but\n> : >humor us.  Thanks for your help.\n> : \n> \n> \n> John Lowenstein is definately NOT Jewish.  Many in Baltimore thought he  \nwas...\n> especially after he told the Baltimore _Jewish Times_ so...but later he\n> admitted that it was a joke.\n\n\nStanky is NOT Jewish, at least, I doubt it. A lot of jewish people don't  \nhave Jewish names. \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9846, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 27\n\nIn article <stevethC5LI9y.C1v@netcom.com> steveth@netcom.com (Steve Thomas) wri\ntes:\n>In article <1993Apr16.171354.3127@magnus.acs.ohio-state.edu> rscharfy@magnus.a\ncs.ohio-state.edu (Ryan C Scharfy) writes:\n>>\n>>However, legalizing it and just sticking some drugs in gas stations to be\n>>bought like cigarettes is just plain silly.\n>\n>I don't find this silly at all.  I find it silly (black humor) that we're\n>spending billions of dollars and risking the lives and freedoms of every\n>American to save a bunch of by-choice druggies...\n>\n>Could you please tell us WHY you find this silly.  That's, WHY, letters\n>\"W\", \"H\" and \"Y\", rather than arguments like \"oh, _everbody_ thinks such and\n>such is true\".\n\nFirst, the only drug that could possibly be put in drug stations are marijuana \nor its derivitives.  Every other drug that I can think of can kill you if you \ntake to much.  (By the very nature of these drugs, your decision making skills \naren't up to par.  That is how it differs from asprin, flinstone vitamins, etc.\nWe don't even allow penicilin to be sold over the counter.)\n\nSecond, we already have a big enough drunk driving and alchoholic problem in \nthis country.  If marijuana were legal, undoubtedly more people would use it, \nand that IS a problem.  People use it, get stupid, and hurt other people.\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9847, "properties": {"category": "sci.crypt", "text": "From: Jay Fenton <Fenton@Kaleida.Com>\nSubject: How to detect use of an illegal cipher?\nOrganization: Kaleida Labs, Inc.\nLines: 10\nDistribution: world\nNNTP-Posting-Host: jfenton.kaleida.com\nX-UserAgent: Nuntius v1.1.1d12\nX-XXMessage-ID: <A7F46F47EA010B1C@jfenton.kaleida.com>\nX-XXDate: Fri, 16 Apr 93 14:12:23 GMT\n\nHow can the government tell which encryption method one is using without\nbeing able to decode the traffic? i.e., In order to accuse me of using an\nunauthorized strong encryption technique they would have to take both\nkeys out of escrow, run them against my ciphertext and \"draw a blank\".\n\nI can imagine the ciphertext exhibiting certain statistical\ncharacteristics that might give a clue as to the encryption technique\nused, but not enough to give a handle for diferential cryptoanalysis.\nHowever, superencipherment or some other scheme that shapes the percieved\nproperties of my ciphertext could thwart this.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.463+0000", "event": "documents", "entityId": 9848, "properties": {"category": "soc.religion.christian", "text": "From: bassili@cs.arizona.edu (Amgad Z. Bassili)\nSubject: Need a book\nLines: 4\n\nI appreciate if anyone can point out some good books about the dead sea\nscrolls of Qumran. Thanks in advance.\n\nPlease reply by e-mail at <bassili@cs.arizona.edu>\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9849, "properties": {"category": "rec.sport.hockey", "text": "From: nichols@spss.com (David Nichols)\nSubject: Re: Detroit Playoff Tradition\nKeywords: Octopi\nOrganization: SPSS Inc.\nLines: 24\n\nIn article <16APR199314443969@reg.triumf.ca> lange@reg.triumf.ca (THREADING THE CANADIAN TAPESTRY) writes:\n>Way back in the early years (~50's) it took 8 wins to garner the Stanley Cup. \n>Soooooo, a couple of local fish mongers (local to the Joe Louis Arena, that is)\n>started the tradition of throwing an octopi onto the ice with every win.  After\n>each victory, one leg would be severed before the octopus found its way to the\n>ice.  (They are dead by the way.)  It was a brilliant marketing strategy to\n>shore up the demand for one of their least popular products.\n>\n>Hope this helps.\n>\n>J. Lange\n>\n\nLocal to the Joe Louis Arena? You mean local to Olympia Stadium, where\nRed Wings games were played until fairly recently (early 80s comes to\nmind). As far as I know, the rest of the post is basically correct. If\nwhat you meant by local was simply Detroit and I'm being incredibly\npicky, okay, sorry about that.\n\n--\n David Nichols        Senior Statistical Support Specialist         SPSS, Inc.\n Phone: (312) 329-3684     Internet:  nichols@spss.com     Fax: (312) 329-3657\n*******************************************************************************\n Any correlation between my views and those of SPSS is strictly due to chance.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9850, "properties": {"category": "sci.med", "text": "From: mcelwre@cnsvax.uwec.edu\nSubject: NATURAL ANTI-cancer/AIDS Remedies\nOrganization: University of Wisconsin Eau Claire\nLines: 224\n\n\n\n     The biggest reason why the cost of medical care is so EXTREMELY high and\nincreasing is that NATURAL methods of treatment and even diagnosis are still\nbeing SYSTEMATICALLY IGNORED and SUPPRESSED by the MONEY-GRUBBING and POWER-\nMONGERING \"medical\" establishment.\n     Some examples of very low cost NATURAL ANTI-cancer Remedies are listed in\nthe following article:\n\n\n                          NATURAL ANTI-CANCER REMEDIES\n                                 A 3RD OPINION\n          \n               ( Some of these Remedies also work against AIDS. )\n\n\n          DISCLAIMER: This list was compiled from unorthodox sources \n          that have shown themselves to be reliable.  The compiler of \n          this list is NOT a doctor of any kind, but is exercising his \n          First Amendment Constitutional RIGHT of FREE SPEECH on the \n          subjects of his choice. \n\n\n          ( MOST of these Remedies can be found in ANY Grocery Store.  \n          MOST of the rest of them can be found in ANY Health Food \n          Store.  What is important is HOW they are used, and what \n          else is EXCLUDED DURING their use. )\n\n\n          (1) THE 7-DAY FAST. \n               1st day: Eat as much fresh fruit as you want, one kind \n          at a time, preferably grapes. \n               2nd day: Eat all the vegetables you want, at least half \n          raw, including GARLIC; also, whole kernel corn to help scrape \n          clean the intestinal linings. \n               3rd day: Drink all the fresh fruit and vegetable juice \n          you want.  Preferably start with 16 to 32 ounces of prune \n          juice WITH PULP, followed by a gallon of pure (NOT from \n          concentrate) apple juice, then grape juice.  (Stay close to \n          your home bathroom.) \n               4th day: Eat all the UN-salted nuts (NO peanuts) and \n          dried fruit you want, preferably raisins and almonds (ALMONDS \n          CONTAIN LAETRILE.). \n               5th day: ONE GALLON OF LEMONADE.  Squeeze the juice from \n          two lemons into a gallon of water (preferably distilled), and \n          add 2 to 4 tablespoons of locally-made honey, (NO sugar).  \n          Drink one glass per hour.\n          [EVERYone, including healthy people, should do this one day \n          every week, preceded by a large glass of prune juice WITH \n          PULP.] \n               6th day: Same as 5th day. \n               7th day: Same as 6th day. \n               All 7 days, eat ONLY the foods listed above for each \n          day, along with your usual vitamin and mineral supplements, \n          plus as much DISTILLED WATER as you want. \n\n          (2) THE GRAPE DIET. \n               Eat 2 to 3 ounces of fresh grapes every 2 hours, 8 AM to \n          8 PM, every day for six days.  Eat NOTHING else during the \n          six days, but drink as much DISTILLED WATER as you want. \n      \n          (3) APPLE CIDER VINEGAR.\n               Mix a teaspoon of pure apple cider vinegar (NOT apple \n          cider \"flavored\" vinegar.  Regular vinegar is HARMFUL.) in a \n          glass of water (preferably distilled) and drink all of it.  \n          Do this 3 or 4 times per day, for 3 weeks; then stop for a \n          week.  Repeat if desired.  Do this along with a normal \n          healthy diet of natural foods.  This remedy is especially \n          effective against those types of cancer that resemble a \n          FUNGUS, as well as against other kinds of fungus infections. \n        \n          (4) THE SEA-SALT & SODA BATH.  [Please keep an OPEN MIND.]\n               Fill a bathtub with moderately warm water so the level \n          comes up almost to the overflow drain when you get in.  \n          Immerse yourself in it for a minute, and then completely \n          dissolve in the bath water 1 pound of SUN-evaporated SEA-salt \n          (regular salt won't work.) and 1 pound of fresh baking-soda. \n               Soak in this bath for 10 to 20 minutes, while exercising \n          your fingers, toes, and limbs, turning sideways and onto your \n          stomach, dunking your head, sitting up and laying back down, \n          chomping your teeth together, etc.. \n               Among other things, the SEA-salt & Soda Bath neutralizes \n          the accumulated effects of X-rays, etc., as described in the \n          book \"Born To Be Magnetic, Vol. 2\", by Frances Nixon, 1973. \n               PRECAUTIONS: Only the ONE person using each bath should \n          prepare it and drain it.\n          For at least 30 minutes after taking the bath, stay away \n          from, and even out of sight of, other people.  (Your greatly \n          expanded Aura energy-field during that time could disrupt \n          other people's fields.)  Two hours after the bath, eat at \n          least 8 ounces of yogurt containing ACTIVE Yogurt Cultures.  \n          (The bath may kill FRIENDLY bacteria also.)  Better yet, take \n          a 2-Billion-bacteria \"Acidophilus\" capsule, which is also an \n          EXCELLENT DAILY REMEDY AGAINST THE EFFECTS OF \"A.I.D.S.\" \n          (because it kills all kinds of harmful bacteria in the \n          digestive tract, taking a big load off the remaining immune \n          system).  [Because this external bath can kill IN-ternal \n          bacteria, it may also be a CURE for \"Lyme disease\".]\n          Do NOT take this bath within a few hundred miles of a thunder \n          storm, within 3 days of a full moon, nor during \"Major\" or \n          \"Minor Periods\" as listed in the \"Solunar Tables\" published \n          bimonthly in \"Field & Stream\" Magazine, (because of the \n          measurable disruptive ambient environmental energy-fields \n          present at those times).\n          Do NOT take this bath more than four times per year. \n       \n          (5) MISCELLANEOUS NATURAL ANTI-CANCER REMEDIES: \n       \n               For skin cancer, apply STABILIZED Aloe Vera Jel to the \n               affected skin twice daily, and take 2 to 4 tablespoons \n               per day of STABILIZED Aloe Vera Juice internally, for \n               about 2 months. \n        \n               D.M.S.O. (Dimethyl Sulfoxide) causes cancer cells to \n               perform NORMAL cell functions. \n\n               ALMONDS (UN-blanched, UN-roasted) CONTAIN LAETRILE.  \n               To help prevent cancer, eat several almonds every day.  \n               To help cure cancer, eat several OUNCES of almonds per \n               day.\n               [NEVER take large concentrated doses of Laetrile orally.  \n               IT WILL KILL YOU!  Take it INTRAVENOUSLY ONLY.  (Cancer \n               cells contain a certain enzyme which converts Laetrile \n               into cyanide, which then kills the cell.  This enzyme is \n               ALSO present in the digestive system.)] \n\n               ANTI-OXIDANTS are FREE-RADICAL SCAVENGERS, and include \n               Vitamin E, Selenium (200 mcg. per day is safe for most \n               people.), Chromium (up to 100 mcg. per day), Vitamin A \n               (25,000 IU per day is safe for most people.), Superoxide \n               Dismutase (up to 4,000,000 Units per day), Vitamin C (up \n               to 3000 mg. per day), and BHT (Butylated Hydroxy-\n               toluene), [1 to 4 capsules of BHT every night at bedtime \n               will also MAKE ONE IMMUNE AGAINST HERPES (BOTH types), \n               suppress herpes symptoms if one already has herpes, \n               prevent spreading herpes to other people, but will not \n               cure herpes.  BHT MIGHT ALSO DO THESE THINGS AGAINST \n               \"A.I.D.S.\", which is really a form of cancer similar to \n               leukemia.]  (See the book \"Life Extension\", by Durk \n               Pearson and Sandy Shaw.) \n\n               HYDROGEN-PEROXIDE.  Dilute twelve(12) drops of 3% \n               hydrogen-peroxide in a glass of pure water (preferably \n               DISTILLED) and drink it.  Do this once or twice per day, \n               hours before or after eating or drinking anything else.  \n               Apply 3% hydrogen-peroxide directly to skin cancers \n               several times per day.\n               Use hydrogen-peroxide ONLY if you are taking a good \n               daily dose of some of the various anti-oxidants \n               described above. \n\n               VITAMIN & MINERAL SUPPLEMENTS are more effective, and \n               much less expensive, when COMBINED together in MEGA \n               doses into SINGLE tablets made from NATURAL sources. \n\n               Cancer cells can NOT live in a strong (100,000 Maxwell) \n               NORTH MAGNETIC FIELD, especially if it is pulsating on \n               and off.  [A strong south magnetic field is an \n               aphrodisiac.]  In my opinion, ALL types of ionizing-\n               radiation treatments for cancer should be REPLACED with \n               daily 30-minute doses of pulsating 100,000-Maxwell NORTH \n               magnetic fields. \n\n               Properly made and operated RADIONICS/PSIONICS MACHINES \n               can both diagnose and cure all forms of cancer, as well \n               as most other medical problems.  Some Radionics/Psionics \n               Machines can even take cross-sectional X-ray-like photos \n               of cancer tumors, etc., with-OUT X-rays! \n\n               INTERFERON tablets.\n\n               TAHEEBO TEA, (Lapacho). \n           \n               HOMEOPATHY can cure cancer, and many other medical \n               problems (even drug addiction!). \n\n               50 mg. per day of CHELATED ZINC can help prevent or cure \n               prostate trouble. \n\n               This list is NOT exhaustive. \n\n\n          The above NATURAL Remedies can CURE both diagnosed AND UN-\n          DIAGNOSED cancers, as well as PREVENT them, and also prevent \n          and cure many other medical problems including heart-\n          diseases.  They are NOT too simple and inexpensive to work \n          effectively. \n\n          Besides acting on a person biologically and chemically, these \n          remedies, especially The 7-Day Fast and The Grape Diet, send \n          a strong message to one's subconscious mind, PROGRAMMING it \n          to CURE the cancer. \n\n          In my opinion, if a person finds out that s/he has cancer, \n          then s/he should promptly try at least the first 4 remedies \n          described above, in sequence (starting with The 7-Day Fast), \n          BEFORE resorting to the UN-natural and expensive mutilations \n          and agonies [POISON, BURN, and MUTILATE!] of orthodox cancer \n          treatment [organi$ed-CRIME!]. \n          \n          \n          DISCLAIMER: This list was compiled from unorthodox sources \n          that have shown themselves to be reliable.  The compiler of \n          this list is NOT a doctor of any kind, but is exercising his \n          First Amendment Constitutional RIGHT of FREE SPEECH on the \n          subjects of his choice. \n\n\n          FOR MORE INFORMATION, contact Cancer Control Society, 2043 N. \n          Berendo St., Los Angeles, CA  90027, and/or other organiza-\n          tions listed in the \"Alternative Medicine\" and \"Holistic \n          Medicine\" portions of the \"Health and Medical Organizations\" \n          Section (Section 8) of the latest edition of the \"Encyclope-\n          dia of Associations\" reference book in your local public or \n          university library. \n\n\n               UN-altered REPRODUCTION and DISSEMINATION of this \n          IMPORTANT Information is ENCOURAGED. \n\n          \n                                   Robert E. McElwaine\n         \n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9851, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jpw0@ns1.cc.lehigh.edu (JASON PAUL WALTERS)\nSubject: Re: GW2000 and SIMMS\nOrganization: Lehigh University\nLines: 24\n\nIn article <113956@bu.edu>, nshah@acs2.bu.edu writes:\n>I have a gateway2000 483/33 local bus system.  It has 4 slots for SIMMS\n>that either have to use 4 or 16MB simms.  My question:  I just\n>received a 4x9 70ns simm and it has ~30 pins.  The slot on the\n>motherboard has at least 70 or so pins.  Did I get the wrong simm\n>or can I still use my simm , although not all the pins on the slot would\n>be flilled.  I have never encountered such a long slot for simms before.\n>Anyone have suggestions?  I can't get a hold of Gateway yet.  Thanks\n>Please post to the net or :   nshah@acs.bu.edu\n>\nYes, You bought the WRONG SIMMS.....You need 1X36 or 4X36, which are 72 pin\nSIMMS.....These are better anyway becuase the send/receive data in 4byte\n(32bit+4bit parity, one for each byte) Chunks. You will undoubtedly see these\nSIMMS becoming more widely used in the near future.\n\nJason\n-- \n\n\n                                   ****************************\n                                   *      Jason Walters       *\n                                   *     JPW0@LEHIGH.EDU      *\n                                   *JPW0@PL122.eecs.LEHIGH.EDU*\n                                   * a.k.a.   Modem Mouth     *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9852, "properties": {"category": "misc.forsale", "text": "From: bakerjn@sage.cc.purdue.edu (John Baker)\nSubject: OAKLEYS for sale (Bulls vs. Blazers too!)\nKeywords: Good Deal!\nDistribution: usa\nOrganization: Purdue University\nLines: 10\n\nI have a pair of Oakleys that cost about $100 new a year ago.  I hardly ever\nwore them because they just don't look right on me.  They are orange and\nblue and are the \"blade\" kind (Terminator style).  I am willing to sell these\nfor $40 to the first response I get. \nI also have a Bulls vs. Blazers game for the SNES that is in perfect\ncondition.  I am selling it for $35.  It includes the instruction manual.\n\n\n                                John\n                                bakerjn@sage.cc.purdue.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9853, "properties": {"category": "talk.religion.misc", "text": "From: alizard@tweekco.uucp (A.Lizard)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: Tweek-Com Systems BBS, Moraga, CA (510) 631-0615\nLines: 20\n\nstarowl@rahul.net (Michael D. Adams) writes:\n> : If anyone in .netland is in the process of devising a new religion,\n> : do not use the lamb or the bull, because they have already been\n> : reserved.  Please choose another animal, preferably one not\n> : on the Endangered Species List.  \n> \n> How about \"washed in the blood of Barney the Dinosaur\"?  :)\n\nJudging from postings I've read all over Usenet and on non-Usenet\nBBs conferences, Barney is DEFINITELY an endangered species. Especially\nif he runs into me in a dark alley.\n                                   \n                                            A.Lizard\n\n-------------------------------------------------------------------\nA.Lizard Internet Addresses:\nalizard%tweekco%boo@PacBell.COM        (preferred)\nPacBell.COM!boo!tweekco!alizard (bang path for above)\nalizard@gentoo.com (backup)\nPGP2.2 public key available on request\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9854, "properties": {"category": "sci.electronics", "text": "From: schellew@wu2.wl.aecl.ca (Wayne Schellekens)\nSubject: WANTED: DRAM Controller for use with MC68HC16\nKeywords: DRAM, HC16\nNntp-Posting-Host: wu2.wl.aecl.ca\nOrganization: AECL Research, Whiteshell Laboratories\nDistribution: na\nLines: 25\n\nFor an upcoming project I want to use 4 Megs of DRAM configured as two 2\nMeg banks of 16 bit data.  I was wondering if anyone out there knows of a\nDRAM controller which will handle refreshing the data.  It's ok if the\ncontroller doesn't handle bank switching - that part is easy.\n\nThe only controllers I know of are the ones out of the National\nSemiconductor DRAM Management Handbook (1988 edition) eg. DP8429.  I would\nlike to know if another manufacturer produces one which may be easier to\nimplement in my circuit.\n\nBTW, if anyone is wanting to hook up DRAM to a microcontroller, Dallas\nSemiconductor makes a neat chip: the DS1262 Serial DRAM Nonvolatizer\nChip.  It uses the SPI (I2C) bus and refreshes/controls up to 16Mx1 of DRAM\nmemory.  It can use an external battery to refresh the DRAM when the\npower is off.  Price is $11.75 from Dallas (quan 1).  I wish I could use\nthis chip but its maximum SPI clock rate is 1 MHz (too slow for me...).\n\nThanks in advance,\n\nWayne Schellekens\n<schellew@wu2.wl.aecl.ca>\n-- \nWayne Schellekens, VE4WTS          Internet: schellew@wu2.wl.aecl.ca\nAECL Research                         AX.25: VE4WTS@VE4KV.#WPG.MB.CAN \nWhiteshell Laboratories        Twisted pair: (204)753-2311 x2317\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9855, "properties": {"category": "misc.forsale", "text": "From: bradd@rigel.cs.pdx.edu (Brad A Davis)\nSubject: For Sale: 386/25MHz motherboard (or system) with 8 megabytes\nSummary: 386DX/25 system w/8Mb for $475; motherboard alone for $325\nArticle-I.D.: pdxgate.7251\nDistribution: or\nOrganization: Portland State University, Computer Science Dept.\nLines: 30\n\nI recently upgraded to a 486 and have found out I don't really have a need\nfor my old 386.  I'd prefer to sell just the motherboard and keep the case\netc, so I'll offer the motherboard and case separately and let you decide.\n\nI'm asking $325 for the motherboard, which has:\n    25Mhz 386 DX (not SX)\n    8 megabytes of 32-bit, 70ns memory\n    AMI BIOS\n    based on C&T NEAT chipset\n    \t(this means the motherboard and bus circuitry timings are\n\tprogrammable - the BIOS' advanced configuration menus let you\n\tselect system, DMA, bus clock, wait states, command delays, etc.)\n    \"baby AT\" sized - fits in mini-tower, full-sized or most any other case\n(Includes User's Guide and a copy of the BIOS reference manual)\n\nFor $150 more you could have the rest of the system too:\n    full-size AT case with 200(?) watt power supply\n    2 serial, 1 parallel, 1 game ports\n    20Mb hard disk\n    1.2Mb floppy disk\n    keyboard\n    video card (choice of VGA or ???)\n\nIf you're interested, please give me a call.  The system is set up at my house\nin Aloha, and you're welcome to come test drive it.\n\nRandom drivel from the keyboard of:       +---+\n  Brad Davis, NCD Inc, Beaverton OR       |   | Network Computing Devices\n  bradd@pcx.ncd.com  (503) 642-9927       |NCD| PC-XDivision\n             (office)(503) 671-8431       +---+\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9856, "properties": {"category": "soc.religion.christian", "text": "From: qtm2w@virginia.edu (Quinn T. McCord)\nSubject: Seven castaways w. Gilligan=Seven Deadly Sins\nOrganization: University of Virginia\nLines: 7\n\nGilligan = Sloth\nSkipper = Anger\nThurston Howell III = Greed\nLovey Howell = Gluttony\nGinger = Lust\nProfessor = Pride\nMary Ann = Envy\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9857, "properties": {"category": "sci.crypt", "text": "From: mcbeeb@atlantis.CSOS.ORST.EDU (Brian Mcbee)\nSubject: How can clipper stay classified?\nArticle-I.D.: leela.1qstqs$jmt\nDistribution: world\nOrganization: CS Dept. Oregon State University, Corvallis, Oregon.\nLines: 8\nNNTP-Posting-Host: atlantis.csos.orst.edu\n\nMaybe I don't know enough to know what I am asking, but with millions\nof these things about, how could the algorythm possibly stay secret?\nCouldn't some clever hackers just grind the thing down layer by layer,\nand see how it worked?\n\n-- \n----\nBrian McBee    mcbeeb@atlantis.cs.orst.edu   Finger me for PGP 2.1 key\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9858, "properties": {"category": "misc.forsale", "text": "From: jingyao@rainier.eng.ohio-state.edu (Jinyao Liu)\nSubject: a few CDs for sale  (brand new)\nOrganization: The Ohio State University Dept of Electrical Engineering\nDistribution: usa\nLines: 10\n\n \n   $6.95 each. add $1.05 for postage (4th class), that makes it $8.\nAll these 5 discs are still shrink wrapped\n \n(1) Kathleen Battle,Wynton Marsalis   Baroque Duet      Sony Classical\n(2) David Sanborn, Upfront                              Elektra\n(2) Kenny G Live                                        Arista\n(3) Jimmy Buffett,Songs You know by heart/greatest hits MCA Records\n(4) Billy Ray Cyrus, Some Gave All                      Mercury\n(5) En Vogue,  Funky Divas                              Eastwest Records\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9859, "properties": {"category": "sci.electronics", "text": "From: Kirk_Cowen@panam.wimsey.bc.ca (Kirk Cowen)\nSubject: references...\nDistribution: world\nOrganization: Commodore Computer Club / PaNorAmA\nLines: 12\n\nI've got the same problem; I can't dig up any info on the jumper settings\non the hd 3.5\" drives.\n\nCan anyone recommend a reference book(s) on the subject, rather than a\n\"quick fix\" type answer??  I was going to start hooking up things and\nlogging the results, but the prospect of a ten second smoke test deters\nme...\n\nThanks, Kirk Cowen.\n\n-- Via DLG Pro v0.995\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9860, "properties": {"category": "comp.windows.x", "text": "From: reznik@robios5.me.wisc.edu (Dan S Reznik)\nSubject: Text field in dialog widget doesn't get focus\nOrganization: College of Engineering, Univ. Of Wisconsin-Madison\nOriginator: reznik@robios5.me.wisc.edu\nLines: 49\n\nI am using the GLX widget + athena widgets on a mixed-model\napplication, under 4Dwm, but when the dialog gets popped up, its\ntext entry field does not have focus. Aimilar code works perfectly if\nI use \"pure X\" (no mixed-model). HEre is the relevant portion of\nthe code.\n\n{\n   int n;\n   Arg wargs[16];\n   Widget Button, PopUpShell, Dialog;\n\n   /* initialize TopLevel here */\n   .\n   .\n   .\n\n   n = 0;\n   XtSetArg(wargs[n], XtNlabel, \"Foo\"); n++;\n   Button = XtCreateManagedWidget(\"FooBtn\", commandWidgetClass,\n                                  TopLevel, wargs, n);\n\n   PopUpShell = XtCreatePopupShell(\"PupShell\", overrideShellWidgetClass,\n                                   Button, NULL, 0);\n   XtAddCallback(PopUpShell, XtNcallback, MyPopUp, (XtPointer)PopUpShell);\n\n   n = 0;\n   XtSetArg(wargs[n], XtNvalue, \"\"); n++;\n   Dialog = XtCreateManagedWidget(\"TheDialog\", dialogWidgetClass,\n                                  PopUpShell, wargs, n);\n\n   .\n   .\n   .\n}\n\nvoid MyPopUp(w, popup_shell, call_data)\nWidget w;\nWidget popup_shell;\nXtPointer call_data;\n{\n   XtPopup(popup_shell, XtGrabExclusive);\n}\n\n---\n\nA way I found to give focus to the text field is to move the\napplication window around a little bit and place it right behind the popup.\n\nAny pointers would be greatly appreciated.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9861, "properties": {"category": "sci.electronics", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Need tone decoder circuit\nOrganization: U of Toronto Zoology\nLines: 14\n\nIn article <5170286@hplsla.hp.com> tomb@hplsla.hp.com (Tom Bruhns) writes:\n>>Does anybody out there have a circuit that will decode a 1000Hz tone?\n>\n>Use a NE567 tone decoder PLL chip...\n\nMy impression -- it's not an area I've played with much -- is that the\nmuch-beloved NE567 is basically obsolete.  If you want to detect a 1kHz\ntone, set a switched-capacitor filter chip to that frequency, feed your\ninput to it, and see if anything comes out the other end.  The NE567 was\nwhat you used when good clean bandpass filters were hard to do; nowadays\nthey're easy, and the results are better.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9862, "properties": {"category": "sci.crypt", "text": "From: stevew@helios.unl.edu (Steve Wu)\nSubject: CRYPTO 93 FINAL CALL\nOrganization: University of Nebraska--Lincoln\t\nLines: 258\nNNTP-Posting-Host: helios.unl.edu\n\n\n............................................................................\n        CRYPTO '93  -  Conference Announcement & Final Call for Papers\n............................................................................\n\nThe Thirteenth Annual CRYPTO Conference, sponsored by the International \nAssociation for Cryptologic Research (IACR), in cooperation with \nthe IEEE Computer Society Technical Committee on Security and Privacy, \nthe Computer Science Department of the University of California, Santa \nBarbara, and Bell-Northern Research (a subsidiary of Northern Telecom), \nwill be held on the campus of the University of California, Santa Barbara, \non August 22-26, 1993. Original research papers and technical expository talks \nare solicited on all practical and theoretical aspects of cryptology. It is \nanticipated that some talks may also be presented by special invitation of the \nProgram Committee.\n-------------------------        \nINSTRUCTIONS FOR AUTHORS:  Authors are requested to send 12 copies of a \ndetailed abstract (not a full paper) by April 26, 1993, to the Program Chair \nat the address given below. A limit of 10 pages of 12pt type (not counting \nthe bibliography or the title page) is placed on all submissions. Submissions \nmust arrive on time or be postmarked no later than April 21, 1993 and sent by \nairmail in order to receive consideration by the Program Committee. It is \nrequired that submissions start with a succinct statement of the problem \naddressed, the solution proposed, and its significance to cryptology, \nappropriate for a non-specialist reader. Technical development directed to \nthe specialist should follow as needed.\n-------------------------        \nAbstracts that have been submitted to other conferences that have proceedings \nare NOT eligible for submission.\n\nSubmissions MUST BE ANONYMOUS. This means that names and affiliations of \nauthors should only appear on the title page of the submission; it should \nbe possible to remove this page and send the papers to Program Committee \nmembers. A Latex style file that produces output in this format is available by email from the Program Chair.\n\nAuthors will be informed of acceptance or rejection in a letter mailed on \nor before June 21, 1993. A compilation of all accepted abstracts will be \navailable at the conference in the form of pre-proceedings. Authors of \naccepted abstracts will be allowed to submit revised versions for the \npre-proceedings. A revised abstract should contain only minor changes and \ncorrections to the originally submitted abstract. All revised abstracts must \nbe received by the Program Chair by July 16, 1993. THE 10 PAGE LIMIT WILL BE \nSTRICTLY ENFORCED for the pre-proceedings.\n\nComplete conference proceedings are expected to be published in Springer-\nVerlag's Lecture Notes in Computer Science series at a later date, pending \nnegotiation.\n-------------------------        \nThe Program Committee consists of \n\n   D. Stinson (Chair, Nebraska)   \n   M. Bellare (IBM T. J. Watson)       E. Biham (Technion, Israel)\n   E. Brickell (Sandia National Labs)  J. Feigenbaum (AT&T Bell Labs)\n   R. Impagliazzo (UCSD)               A. Odlyzko (AT&T Bell Labs)\n   T. Okamoto (NTT, Japan)             B. Pfitzmann (Hildesheim, Germany)\n   R. Rueppel (R3, Switzerland)        S. Vanstone (Waterloo, Canada)\n-------------------------        \nSend submissions to the Program Chair:        \n\nDouglas R. Stinson, Crypto '93        \nComputer Science and Engineering Department         \n115 Ferguson Hall, University of Nebraska        \nLincoln, NE 68588-0115 USA        \nTelephone: (402)-472-7791         \nFax: (402)-472-7767        \nInternet: stinson@bibd.unl.edu        \n\nFor other information, contact the General Chair: \n\nPaul C. Van Oorschot, Crypto '93 \nBell-Northern Research (MAIL STOP 000) \n3500 Carling Ave. \nNepean, Ontario K2H 8E9  Canada \nTelephone: (613)-763-4199 \nFax: (613)-763-2626 \nInternet: crypto93@bnr.ca\n\n............................................................................\n        CRYPTO '93  -  General Information  (August 22 - 26, 1993)\n............................................................................\n\nTHE PROGRAM:  Crypto'93 is the thirteenth in a series of workshops on \ncryptology held at Santa Barbara, and is sponsored by the International \nAssociation for Cryptologic Research, in cooperation with the IEEE \nComputer Society Technical Committee on Security and Privacy, the Computer \nScience Department of the University of California, Santa Barbara, and \nBell-Northern Research (a subsidiary of Northern Telecom). The program \nfor the workshop will cover all aspects of cryptology. Extended abstracts of \nthe papers presented at the conference will be distributed to all attendees \nat the conference, and formal proceedings will be published at a later date.\n\nIn addition to the regular program of papers selected or invited by the \nprogram committee, there will be a rump session on Tuesday evening for \ninformal presentations. Facilities will also be provided for attendees to \ndemonstrate hardware, software and other items of cryptographic interest. \nIf you wish to demonstrate such items, you are urged to contact the General \nChair so that your needs will be attended to. The social program will include \nhosted cocktail parties on Sunday and Monday. In addition, there will be a \nbeach barbecue on Wednesday evening. The price of the barbecue is included \nin the room and board charge, and extra tickets may be purchased.\n\nABOUT THE CONFERENCE FACILITIES:  The workshop will be held on the campus of \nthe University of California, Santa Barbara. The campus is located adjacent \nto the Santa Barbara airport and the Pacific Ocean. Accommodations are \navailable in the university dormitories at relatively low cost for conference \nparticipants. Children under the age of 13 are not allowed to stay in the \ndormitories, so those bringing small children will need to make separate \narrangements in one of several nearby hotels. More information on hotels is \nenclosed. Parking on campus is available at no cost to the participants. \nHowever, participants must indicate on the registration form if they desire \na parking permit.\n\nTRAVEL INFORMATION:  The campus is located approximately 2 miles from the \nSanta Barbara airport, which is served by several airlines, including \nAmerican, America West, Delta, United, and US Air. Free shuttle bus service \nwill be provided between the Santa Barbara airport and the campus on Sunday \nand Thursday afternoons. All major rental car agencies are also represented \nin Santa Barbara, and AMTRAK has rail connections to San Francisco from the \nnorth and Los Angeles from the south. Santa Barbara is approximately 100 miles \nnorth of Los Angeles airport, and 350 miles south of San Francisco.\n\nREGISTRATION:  Participation is invited by interested parties, but attendance \nat the workshop is limited, and pre-registration is strongly advised. Late \nregistrations, subject to a late registration fee, may be accepted if space \nis available, but there are NO GUARANTEES. To register, fill out the attached \nregistration form and return to the address on the form along with payment in \nfull before July 9, 1993. Campus accommodations will be available on a first \ncome, first serve basis for attendees who register by July 9, 1993. The \nconference fees include participation in the program and all social functions, \nas well as membership to the IACR and a subscription to the Journal of \nCryptology. The room and board charges include dormitory lodging and meals \n>from dinner on Sunday to lunch on Thursday. Technical sessions will run \n>from Monday morning to Thursday at noon. A very limited number of stipends \nare available to those unable to obtain funding. Applications for stipends \nshould be sent to the General Chair before June 4, 1993.\n\n............................................................................\n        CRYPTO '93  -  CRYPTO '93 Registration Form \n............................................................................\n                       REGISTRATION DEADLINE: July 9, 1993\n\nLast Name:   _____________________________________________\n\nFirst Name:  _____________________________________________ Sex: (M)__  (F)__\n\nAffiliation: _______________________________________________________________ \n\nMailing Address:  __________________________________________________________\n\n                  __________________________________________________________\n\n                  __________________________________________________________\n\n                  ___________________________________________________________\n\nPhone:  __________________________________ FAX:  ___________________________ \n\nElectronic Mail:  __________________________________________________________ \n\nPayment of the conference fee entitles you to membership in the International \nAssociation for Cryptologic Research for one year at no extra charge, \nincluding a subscription to the Journal of Cryptology, published by Springer-\nVerlag, at no extra charge.  Do you wish to be an IACR member?   YES__  NO__\n\nThe conference fee also includes the conference proceedings when they become \navailable, containing final versions of conference papers. The book of \nextended abstracts distributed at the conference will contain only shortened \npreliminary versions of these papers (maximum 10 pages).\n\nConference fee: Regular ($280)                        US$ _______\n                Attended Eurocrypt'93, Norway ($230)      _______\n                Full time student ($190)                  _______ \n                deduct $50 if you do not wish proceedings _______\n                Total conference fee:                              US$_______\n\nRoom and Board (4 nights):   Smoking ___  Non-smoking ___\n        Single room ($275 per person)                                 _______\n        Double room ($225 per person)                                 _______\n               Roommate's name:  ____________________________________\n\nExtra barbecue tickets ($20 each; one is included in room and board)  _______ \n$40 late fee for registration after July 9; \n    REGISTRATION NOT GUARANTEED AFTER JULY 9                          _______\n\nTotal funds enclosed (U.S. dollars):                              US$ _______\n\nPayment must be by check PAYABLE IN U.S. FUNDS, by money order IN U.S. FUNDS, \nor by U.S. BANK DRAFT, payable to: CRYPTO'93.  Payment should be mailed to the \nGeneral Chair:\n               Paul C. Van Oorschot, CRYPTO'93 \n               Bell-Northern Research (MAIL STOP 000)\n               3500 Carling Ave.\n               Nepean, Ontario K2H 8E9   Canada \n\n............................................................................\n        CRYPTO '93  -  Hotel Information\n............................................................................\n\nFor those who choose not to stay in the dormitories, the following is a \npartial list of hotels in the area. Those who choose to stay off campus are \nresponsible for making their own reservations, and early reservations are \nadvised since August is a popular season in Santa Barbara. Note that Goleta \nis closer to UCSB than Santa Barbara, but that a car will probably be \nrequired to travel between any hotel and the campus. All prices are subject \nto change; prices should be confirmed by calling the individual hotels \ndirectly. However, mention CRYPTO'93 when you are making your reservation and \nin several of the hotels listed you will be eligible for the university rate \nwhich can be significantly less than the normal rates. We are not able to \nblock rooms in these hotels, so please make reservations as early as \npossible. The quality of the hotels range from rather expensive beach-front \nresorts to basic inexpensive accommodations. For further information, try \ncontacting the Santa Barbara Convention and Visitors Center, (805)-966-9222. \n\nSouth Coast Inn: 5620 Calle Real, Goleta, CA 93117. Regular rates: Single $89, \nDouble $94; call for University rates. Contact Murrill Forrester at \n(805)-967-3200 or toll-free at (800)-350-3614.\n\nCathedral Oaks Lodge: 4770 Calle Real, Santa Barbara, 93110. Single rates not \navailable, Double rates start at $84 including breakfast; no University rates. \nCall Tom Patton at (805)-964-3511 or toll-free at (800)-654-1965.\n\nMotel 6: 5897 Calle Real, Goleta, CA 93117. Single $33.95, Double $39.95, \nno University rate available. Call (505)-891-6161.\n\nThe Sandman Inn: 3714 State St., Santa Barbara, CA 93105. Regular rates: \nSingle or Double $84, $94 for king-size, University rate $65. Call Jean \nIngerle at (805)-687-2468 or toll-free at (800)-350-8174.\n\nMiramar Hotel (Beachfront): 3 miles south of Santa Barbara on U.S. 101 at \nSan Ysidro turnoff. Regular rates: $70-$135. No University rates. Call \n(805)-969-2203. \n\nPepper Tree Inn: 3850 State St., Santa Barbara, CA 93105. Regular rates: \n$106-$112 for two people, University rates $96-$102 for two people. Call \nChristopher Oliphant at (805)-687-5511 or toll-free at (800)-338-0030.\n\nEncina Lodge: 220 Bath Street, Santa Barbara, CA 93105. Regular rates \n$106-$108 for two people, no University rates. Call Carol Wolford at \n(805)-682-7550 or toll-free at (800)-526-2282.\n\nQuality Suites: 5500 Hollister Ave, Santa Barbara, CA 93111 (close to campus). \nRegular rates: Single $125, Double $145, University rates $99 double \n(must mention you are attending a UCSB program). Call Michael Ensign at \n(805)-683-6722.\n\nUpham Hotel (bed-and-breakfast): 1404 De La Vina Road, Santa Barbara, \nCA 93101. University rate $85 (mention you are from Crypto). Call Sheila \nDonegan at (805)-962-0058.\n............................................................................\n\n\n\n\n--\nstevew@helios.unl.edu  |=| \\ Fender / |=| ... smoke on the water, fire in\n                       |=|   \\    /   |=| the sky...   Smoke on the water.\nstevew@hoss.unl.edu    |=|     \\/     |=|     (36 bars guitar solo)\n\t\t      Deep purple, the best\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9863, "properties": {"category": "sci.med", "text": "From: kxgst1+@pitt.edu (Kenneth Gilbert)\nSubject: Re: Intravenous antibiotics\nOrganization: University of Pittsburgh\nLines: 25\n\nIn article <1993Apr19.144358.28376@spectrum.xerox.com> leisner@eso.mc.xerox.com writes:\n:I recently had a case of shingles and my doctors wanted to give me\n:intravenous Acyclovir.\n:\n:It was a pain finding IV sites in my arms...can I have some facts about\n:how advantageous it is to give intravenous antibiotics rather than oral?\n:\n\nI think some essential information must be missing here, i.e., you must be\nsuffering from a condition which has caused immunosuppression.  There is\nno indication for IV acyclovir for shingles in an otherwise healthy\nperson.  The oral form can help to reduce the length of symptoms, and may\neven help prevent the development of post-herpetic neuralgia, but I\ncertainly would not subject someone to IV therapy without a good reason.\n\nTo address your more general question, IV therapy does provide higher and\nmore consistently high plasma and tissue levels of a drug.  For treating a\nserious infection this is the only way to be sure that a patient is\ngetting adequate drug levels.\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!\" =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9864, "properties": {"category": "sci.crypt", "text": "From: tcmay@netcom.com (Timothy C. May)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: Tin 1.1 PL5\nDistribution: na\nLines: 26\n\nTed Dunning (ted@nmsu.edu) wrote:\n: \n: nobody seems to have noticed that the clipper chip *must* have been\n: under development for considerably longer than the 3 months that\n: clinton has been president.  this is not something that choosing\n: choosing bush over clinton would have changed in the slightest; it has\n: been in the works for some time.\n\nActually, many of us have noted this. We have noted that the program\nstarted at least 4 years ago, that the contracts with VLSI Technology\nand Microtoxin were let at least 14 months ago, that production of the\nchips is well underway, and so forth.\n\nNobody I know has claimed Clinton intitiated the program. But he chose\nto go ahead with it.\n\n\n-Tim May\n-- \n..........................................................................\nTimothy C. May         | Crypto Anarchy: encryption, digital money,  \ntcmay@netcom.com       | anonymous networks, digital pseudonyms, zero\n408-688-5409           | knowledge, reputations, information markets, \nW.A.S.T.E.: Aptos, CA  | black markets, collapse of governments.\nHigher Power: 2^756839 | Public Key: PGP and MailSafe available.\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9865, "properties": {"category": "talk.religion.misc", "text": "Subject: Re: Christians above the Law? was Clarification of pe\nFrom: NUNNALLY@acs.harding.edu (John Nunnally)\nDistribution: world\nOrganization: Harding University, Searcy, AR\nNntp-Posting-Host: acs.harding.edu\nX-News-Reader: VMS NEWS 1.24In-Reply-To: pharvey@quack.kfu.com's message of 18 Apr 1993 18:31:38 UTCLines: 87\nLines: 87\n\n> When are we going to hear a Christian answer to this question? \n> \n> In paraphrase: \n> \n> On what or whose authority do Christians proclaim that they\n> are above the Law and above the Prophets (7 major and 12 minor) and not \n> accountable to the Ten Commandments of which Jesus clearly spoke His opinion \n> in Matthew 5:14-19? What is the source of this pseudo-doctrine? Who is\n> the pseudo-teacher? Who is the Great Deceiver?\n\nOK, here's at least one Christian's answer:\n\nJesus was a JEW, not a Christian.  In this context Matthew 5:14-19 makes\nsense.  Matt 5:17 \"Do not think that I [Jesus] came to abolish the Law or\nthe Prophets; I did not come to abolish, but to fulfill.\"  Jesus lived\nunder the Jewish law.  However, He was the culmination of the promises\nof the Prophets.  He came to *fulfill* the prophecies and fully obey\nGod's purposes.\n\nVerse 18 says \"For truly I say to you, until heaven and earth pass\naway, not the smallest letter or stroke shall pass away from the Law,\nuntil all is accomplished.\"  The key to this verse IMHO is the last \nphrase.  Jesus, as the fulfillment of the law, \"accomplished\" what the \nLaw was supposed to accomplish.  \n\nVerse 19:  \"Whoever then annuls one of the least of these commandments,\nand so teaches others, shall be called least in the kingdom of heaven;\nbut whoever keeps and teaches them, he shall be called great in the\nkingdom of heaven.\"  Taken in the context of Jesus teaching Jewish \npeople about living lives under the law, this makes sense.\n\nIn general, it appears that Jesus is responding to some criticism he \nmust have received about \"doing away with the Law.\"  That was not \nJesus' intent at all.  He had come to earth to live the Law as it \nshould be lived and fulfill the promises made by God to his \npeople all the way back to Eve [Gen 3:15-The serpent will bruise your \nheel, but *He* will bruise his head.]  Jesus appeared to be \"doing \naway with the Law\" because he did not honor the traditions of men as \nequal to the Law of God.  He regularly locked horns with the religious \nleaders of the day because he would not conform to *their* rules, only \nGod's Law.\n\nIn the Matthew passage Jesus is defending his dedication to the Law \nand defending himself against his accusors.  Almost the entire Sermon \non the Mount (Matt. 5-7) is dedicated to helping the Jewish people \nunderstand the true intent of the Law, sweeping away the clutter which \nhad been introduced by the Pharasees and their traditions.\n\nIn Galatians 3:23-26, Paul describes the relationship of Jesus to the \nLaw in this way:\n\n[23] But before faith came, we were kept in custody under the law, being \nshut up to the faith which was later to be revealed.  [24] Therefore \nthe Law has become our tutor to lead us to Christ, that we may be \njustified by faith.  [25]  But now that faith has come, we are no \nlonger under a tutor.  [26] For you are all sons of God through faith \nin Christ Jesus.\n\nI believe this says that after Christ was revealed, the Law had \nserved it's purpose, i.e. \"our tutor to lead us to Christ,\" and\nnow, \"we are no longer under a tutor.\"  The law has been \"fulfilled\" \nas Christ said he would do.\n\nGod, the author of the old Law, and the Christ/Man, Jesus, are the same\npersonality.  Therefore, the old Law and the new Testament (the \"last\nwill and testament\" of Jesus) are based on the same moral principles. \nIt makes sense that many of the principles in the old Law are\nre-expressed in Christianity. \n\nOn the other hand, now that the Law has fulfilled it's purpose and \nChristians relate to God through Christ, not the Law, it also makes \nsense that new practices and new symbolisms were established to \nrepresent the \"mysteries\" of this new relationship.  i.e. Baptism \nrepresenting Christ's death, burial, and resurrection (Rom. 6:3-8),\nThe Lord's supper as a memorial to His sacrifice (I Cor. 11:26), and\nSunday as a day of worship commemorating His resurrection (Matt 28:1ff,\nActs 20:7)\n\nOK, That's one Christian's explanation.  I don't claim to have all\nthese issues completely settled even in my own mind and I welcome\nother Christians to offer other alternatives.\n\nPlease excuse the long posting.  Thanks for your interest if you have read \nthis far...\n\nJohn Nunnally\nNunnally@acs.Harding.edu\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9866, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Blindsight\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 14\n\nIn article <1993Mar26.185117.21400@cs.rochester.edu> fulk@cs.rochester.edu (Mark Fulk) writes:\n>In article <33587@castle.ed.ac.uk> hrvoje@castle.ed.ac.uk (H Hecimovic) writes:\n>compensation?  Or are lesions localized to the SC too rare to be able\n>to tell?\n\nExtremely rare in humans.  Usually so much else is involved you'd\njust have a mess to sort out.  Birds do all vision in the tectum,\ndon't they?  \n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9867, "properties": {"category": "rec.sport.hockey", "text": "From: hammerl@acsu.buffalo.edu (Valerie S. Hammerl)\nSubject: Re: NHL Team Captains\nOrganization: UB\nLines: 48\nNntp-Posting-Host: autarch.acsu.buffalo.edu\n\nIn article <1993Apr20.130822.603@exu.ericsson.se> lmcdapi@noah.ericsson.se writes:\n>In article K00WBM850Z5v@andrew.cmu.edu, am2x+@andrew.cmu.edu (Anna Matyas) writes:\n>>\n>>Michael Collingridge writes:\n>>\n>>>And, while we are on the subject, has a captain ever been traded, \n>>>resigned, or been striped of his title during the season? Any other \n>>>team captain trivia would be appreciated.\n>>\n>>Wasn't Ron Francis captain of the Whalers when he was traded to\n>>Pittsburgh?\n>>\n>>Mom.\n>\n>Chris Chelios was Montreal's co-captain with Guy Carbonneau when he\n>was traded to Chicago for Denis Savard, and Peter Stastny was captain \n>of the Quebec Nordiques when he was traded to New-Jersey. Also Mark \n>Messier was captain of the Edmonton Oilers when he was traded to New\n>York. How about Dale Hawerchuk with Winnipeg when he was traded to\n>Buffalo, was he captain too ? I think so. I should not forget Wayne \n>(you know who) when he was traded to L.A. he was captain. Didn't they \n>strip Wendel Clark of his captaincy in Toronto ?\n>\n\nBuffalo seems to have started a tradition of trading its captains.\n\nPat LaFontaine was awarded the Captaincy when Mike Ramsey was forced\nto give it up (Ramsey's now a Penguin).  Ramsey inherited it from Mike\nFoligno (who's now a leaf).  He in turn had inherited it from Lindy\nRuff, who went I forget where.  Ruff had it from Perreault, who\nretired, so I guess that's where the streak started.  Or did it?\nAfter all, Danny Gare was captain before him, and he went to Detroit.\nJim Scoenfeld, Gerry Meehan, and Floyd Smith are the others, in\nreverse order, last to first.  I was a bit young at the time, so I'm\nnot sure of the fate of Schoenfeld, but he ultimately went to Detroit\nand Boston.  Meehan went to Vancouver, Atlanta and Washington.  Smith\nseems to have hung up his skates after Buffalo, but I don't know if\nthe captaincy was removed before or after that, or how many games he\nplayed for Buffalo.  This is actually getting fascinating.  :-)\n\nCaptaincy in Buffalo is a sure sign you're to be traded, almost,\nunless you're a franchise player.\n\n-- \nValerie Hammerl\t\t\tBirtday -(n)- An event when friends get \nhammerl@acsu.buffalo.edu\ttogether, set your dessert on fire, then\nacscvjh@ubms.cc.buffalo.edu\tlaugh and sing while you frantically try \nv085pwwpz@ubvms.cc.buffalo.edu  to blow it out.  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9868, "properties": {"category": "soc.religion.christian", "text": "From: sfp@lemur.cit.cornell.edu (Sheila Patterson)\nSubject: Re: Losing your temper is not a Christian trait\nOrganization: Cornell University CIT\nLines: 10\n\n\n         \nHooray ! I always suspected that I was human too :-)  It is the desire to be like\nChrist that often causes christians to be very critical of themselves and other\nchristians. We are supposed to grow, mature, endeavour to be Christ-like but we\nare far far far from perfect. Build up the body of Christ, don't tear it down,\nand that includes yourself. Jesus loves me just the way I am today, tomorrow and\nalways (thank God ! :-).\n\n-Sheila Patterson\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9869, "properties": {"category": "rec.sport.hockey", "text": "From: gtd597a@prism.gatech.EDU (Hrivnak)\nSubject: Goalie masks\nOrganization: Georgia Institute of Technology\nLines: 13\n\n\n\tI'm starting an informal poll on goalie masks. I'd like to know\nwho's mask you think looks the best. I've always like Curtis Joseph's\nof the Blues the best. Anyway, send your nominations to me, or post your\nvote here on r.s.h. My e-mail adress is: gtd597a@prism.gatech.edu\n\n\tThanks for your time.\n\n-- \nGO SKINS!    ||\"Now for the next question... Does emotional music have quite\nGO BRAVES!   ||   an effect on you?\" - Mike Patton, Faith No More \nGO HORNETS!  ||\nGO CAPITALS! ||Mike Friedman (Hrivnak fan!) Internet: gtd597a@prism.gatech.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.464+0000", "event": "documents", "entityId": 9870, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kiran@village.com (Kiran Wagle)\nSubject: Replacing internal FDHD w/ floptical?\nOrganization: the Syllabub Sea\nLines: 13\nNNTP-Posting-Host: cs.utexas.edu\n\nHi all,  \n\nI have a IIsi with a floppy drive that might be bad (and might just be out\nof alignment, I haven't checked yet. :-))  If the drive is not easily\nreparable, I'd like to replace it with an _internal_ floptical.  Can this\nbe easily done?  Can it be done at all?  \n\nI'm assuming that floptical drives can read and write both 800k and 1.4k\nfloppies.  If this is not in fact true, please tell me.\n\nThanks in advance,\n        ~ Kiran\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9871, "properties": {"category": "sci.electronics", "text": "From: baldur@rsp.is (Baldur Thorgilsson)\nSubject: receiver system\nSummary: multi channel receiver system?\nKeywords: telemetry, receiver system\nOrganization: National Hospitals, Iceland\nLines: 19\n\n\nDear Netters\nI want to send EMG-signals from a running person to a computer. \nEach signal is 4KHz wide and there is up to 30 of them on each\nrunning person. The signal is only to be sent over a few hundred \nmeters. It seems to me that the frequency intended for this use is\nabout 150MHz and about 440MHz.\nTo make the transmitters as light as possible I suppose it will be best \nthe to send the signals in an analog form. As this application is rather \nspecialized I do not expect to be able to buy the exact transmitter-\nunits i need.\nOn the other hand I imagine that I can buy the receiver somewhere. I \nneed a multichannel (up to 30 channels) receiver or 30 complete  \nreceivers in some rack system where one can add as many receivers \nas needed in the particular case.\nDO ANYBODY KNOW IF THERE IS EXISTING SUCH RECEIVER \nSYSTEM ON THE MARKET?\n\nbaldur@rsp.is     (TF3BP) (please respond by email rather than nn)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9872, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Hand Held Products, Inc.\nLines: 44\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <1993Apr20.143255.12711@mcs.kent.edu> mhamilto@Nimitz.mcs.kent.edu  \n(The Lawnmowerman) writes:\n>Also\n>    someone should have told David and his followers that if they can't the  \nheat\n>    then they should stay out of the kitchen!! (pun intended)\n> \nThis tops the cold-hearted bastard list!  Unbelievable!  Had this countries  \nmorals sunk this low, that the death of innocent people is so callously viewed?\n\n> Flame off\n> \n> \" Aaah Daniaalson yah wanna fight,  fight me!!\"      \n> -- \n>  \n+----------------------------------------------------------------------------+\n> | Matthew R. Hamilton   | mhamilto@mcs.kent.edu    |      A.K.A               \n|\n> | CS/ Physics Major     | 1499h751@ksuvxb.kent.edu |   (The Lawnmowerman)     \n|\n> | Kent State University\t| 1299h751@ksuvxb.kent.edu |\t\t \n\t     |\n>  \n+----------------------------------------------------------------------------+\n> |                                                                             \n|\n> |                                                                             \n|\n> |      Look here for future advice.quotes.sayings.jibberish.philosohy         \n|\n> |                                                                             \n|\n>  \n+----------------------------------------------------------------------------+\n\n\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9873, "properties": {"category": "sci.space", "text": "From: c23st@kocrsv01.delcoelect.com (Spiros Triantafyllopoulos)\nSubject: Re: Space Station radio commercial\nOrganization: Delco Electronics Corp.\nLines: 25\n\nIn article <C5r2I1.793@skates.gsfc.nasa.gov> xrcjd@resolve.gsfc.nasa.gov (Charles J. Divine) writes:\n>A brief political/cultural item.\n>\n>Radio station WGMS in Washington is a classical music station with\n>a large audience among high officials (elected and otherwise).  \n>Imagine a radio station that advertises Mercedes Benzes, diamond\n>jewelry, expensive resorts and (truthfully) Trident submarines.\n>\n>This morning I heard a commercial for the space station project.\n>Didn't catch the advertiser.\n>\n>Guess they're pulling out all the stops.\n\nIn the Air Force world at least, the crisis escalates when scale\nmodels of the plane in question (i.e. about to be sacrificed) begin to\narrive in key Senators and Congresspersons' offices.\n\nOf course it is assumed that coffee mugs and other decorative junk has\nbeen tried earlier.\n\nSpiros\n-- \nSpiros Triantafyllopoulos                    c23st@kocrsv01.delcoelect.com\nSoftware Technology, Delco Electronics       (317) 451-0815\nGM Hughes Electronics, Kokomo, IN 46904      \"I post, therefore I ARMM\"\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9874, "properties": {"category": "rec.sport.baseball", "text": "Subject: Re: Jewish Baseball Players?\nFrom: rbd@flash.ece.uc.edu (Bobby Davis)\nOrganization: University of Cincinnati\nNNTP-Posting-Host: flash.ece.uc.edu\nLines: 5\n\nHank Greenberg was probably the greatest ever.  He was also subject to a\nlot of heckling from bigots on the opposing teams and in the stands, but\nit never seemed to affect his performance negatively.\n\nBob Davis\trbd@thor.ece.uc.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9875, "properties": {"category": "rec.motorcycles", "text": "From: bgardner@bambam.es.com (Blaine Gardner)\nSubject: Re: Protective gear\nArticle-I.D.: dsd.1993Apr6.042624.22937\nOrganization: Evans & Sutherland Computer Corporation\nLines: 13\nNntp-Posting-Host: bambam\n\nIn article <C4wKFs.BC1@eskimo.com> maven@eskimo.com (Norman Hamer) writes:\n>Question for the day:\n>\n>What protective gear is the most important? I've got a good helmet (shoei\n>rf200) and a good, thick jacket (leather gold) and a pair of really cheap\n>leather gloves... What should my next purchase be? Better gloves, boots,\n>leather pants, what?\n\nWhat's your favorite body part? :-)\n\n-- \nBlaine Gardner @ Evans & Sutherland\nbgardner@dsd.es.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9876, "properties": {"category": "rec.motorcycles", "text": "From: static@iat.holonet.net (Joe Ehrlich)\nSubject: Re: BMW MOA members read this!\nOrganization: HoloNet National Internet Access System: 510-704-1058/modem\nLines: 19\n\nOh boy, a little K-bike versus /2 scuffling? Grow up! And that goes for\nthe both of you!\n\nI do hope that the \"dump dempster\" campaign works however.\nI think that he is a crook, and I am suprised that it has taken this long\nfor anything to be done (though obviously, it ain't over yet)\nOn the other hand, \nI'm not sure that I want to be in bed with ANY of the wackos running.\nThrowing $20.oo down a rathole might be more effective than sending it in\nto the club. You wouldn't get anything, but you don't get anything now.\n\nThe magazine you say? Ever since the MOA politburo installed Don it has\nlacked any sort of panache it may have had. \n\nAh, but what would I know? I own a /6 AND a K-bike\n\n\nstatic\nMOA 20297\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9877, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: President's Radio Interview in Pittsburgh 4.17.93\nOrganization: MIT Artificial Intelligence Lab\nLines: 212\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n                    (Pittsburgh, Pennsylvania)\n______________________________________________________________\nFor Immediate Release                         April 17, 1993     \n\n\t     \n                    INTERVIEW OF THE PRESIDENT\n                      BY MICHAEL WHITELY OF\n                    KDKA-AM RADIO, PITTSBURGH\n\t     \n                 Pittsburgh International Airport\n                     Pittsburgh, Pennsylvania    \n\n\n\n10:40 A.M. EDT\n\t     \n\t     \n\t     Q\t  For everyone listening on KDKA Radio, I'm Mike \nWhitely, KDKA Radio News.  We're here at the Pittsburgh \nInternational Airport and with me is the President of the United \nStates Bill Clinton.\n\t     \n\t     And I'd like to welcome you to the area and to KDKA.\n\t     \n\t     THE PRESIDENT:  Thank you, Mike.  Glad to be here.\n\t     \n\t     Q\t  There are a lot of things we'd like to talk \nabout in the brief amount of time we have, but some news is just \nbreaking from Los Angeles.  I guess the entire country has been \nkind of holding their breath, wondering what's going to happen in \nthe trial of the four Los Angeles police officers.  We just heard \nthat two of those officers, the sergeant, Sergeant Koon and \nOfficer Powell have been found guilty, and two officers have been \nfound not guilty.\n\t     \n\t     It's a situation that's been building for over a \nyear since the first trial and now this trial and this verdict.  \nAnd I wonder what your thoughts are this morning on how you see \nthe situation in Los Angeles in connection with your \nadministration and what you're trying to do.\n\t     \n\t     THE PRESIDENT:  Well, first of all, I think the \nAmerican people should know that this trial, in my judgment, is a \ntribute to the work and judgment of the jury, as well as to the \nefforts of the federal government in developing the case.\n\t     \n\t     The law under which the officers were tried is a \ncomplex one; the standards of proof are complicated.  The jury \ndecided that they would convict the sergeant who was responsible \nfor supervising the officers and the officer who on the film did \nmost of the beating.  The jury acquitted an officer who kicked \nRodney King, but also plainly tried to shield him from some \nblows, and another officer who was a rookie.\n\t     \n\t     No one knows exactly why they did what they did, but \nit appears that they really tried to do justice here.  They \nacknowledged that his civil rights were violated.  And I think \nthat the American people should take a lot of pride in that.  But \nI hope now we can begin to look ahead and focus on three things:  \nfirst of all, the importance of trying to bring this country \ntogether and not violate the civil rights of any American; \nsecondly, the importance of renewing our fight against crime.  \n\t     \n\t     I think it's important to recognize that in the \npoorest areas of Los Angeles and many other cities in this \ncountry, people may be worried about police abuse, but they're \neven more worried about crime.  It's time that we renewed our \nefforts to go to community policing -- put 100,000 more police \nofficers on the street; pass the Brady Bill that would require a \nwaiting period before people could buy a handgun, and do some \nother things to reduce the vulnerability of our people to \nviolence and drugs.\n\t     \n\t     And the last point I'd like to make is it seems to \nme that we have got to rededicate ourselves to the economic \nrevitalization of our cities and other economically-distressed \nareas.  If you just think about it -- if everybody in Los Angeles \nwho wanted a job had one, I don't think we'd have quite as many \nproblems as we do.  \n\t     \n\t     And I laid out a very ambitious program in the \ncampaign to try to bring private investment and public investment \nto bear in our cities.  I have dispatched the Commerce Secretary, \nRon Brown, to California to try to come up with some strategies \nfor that state, because it's our biggest state with our highest \nunemployment rate -- which could then be applied around the \ncountry.  I want to talk to him and to the Attorney General, to \nthe new head of the NAACP, to Reverend Jackson, and to several \nother people, and then I'll decide where to go from here with \nregard to Los Angeles and the other cities of the country.\n\t     \n\t     Q\t  Let's talk about what brings you to the \nPittsburgh area today.  There have been -- I guess there's been a \nlot of discussion on Capitol Hill about your stimulus package.  \nYou've been locked in a battle with the GOP.  Yesterday, as you \nsaid earlier in your radio address, you made some moves to break \nthat gridlock.  What brings you to Pittsburgh, in particular to \nAllegheny County, in particular to Pennsylvania, with that \nbattle?\n\t     \n\t     THE PRESIDENT:  Well, there are two reasons.  First \nof all, Pittsburgh, Allegheny County and Pennsylvania supported \nme in the last election because they wanted a new direction in \neconomic policy.  We have passed our overall economic plan; it \ngives the country a very different budget for the next five years \nthan we've had in the previous 12.  We reduced the deficit and, \nat the same time, increased investment in jobs and education and \nhealth care, in the things that will make us a stronger country.\n\t     \n\t     But in addition to that, I asked the Congress in the \nshort run to spend a little more money, a modest amount of money \nto create another half-million jobs in the next year and a half; \nto try to cut the unemployment rate by a half a percent; but also \nto try to spark job creation in the private sector more.  The \nplan passed the House.  It has the support of a majority of the \nSenate.  At the present time, all the Republican   senators as a \nbloc are filibustering the bill.  That is, they won't let it come \nto a vote.\n\t     \n\t     I believe that Senator Specter would like to vote \nfor the bill.  And I believe that Senator Dole, the Republican \nleader, has put a lot of pressure on a lot of the Republicans to \nstay hitched.  And they're all saying that this bill increases \nthe deficit.  It doesn't.  This bill is well below the spending \ntargets that Congress approved, including the Republicans, for \nthis year.  This bill is paid for by budget cuts in the next five \nyears.  This bill is designed to give a jump-start to the \neconomy.  And I must say, a lot of the Republican senators that \nare holding it up, when Mr. Bush was President, voted for \nbillions of dollars of emergency spending of just this kind --\nmuch of it was totally unrelated to creating jobs.\n\t     \n\t     So what I'm trying to do is to break this logjam.  \nI've held out an olive branch, I've offered a compromise.  But I \nthink that we ought to try to put some more Americans to work \nright now to show that we're changing the direction of the \ncountry.  And that's the purpose of the bill.\n\t     \n\t     Q\t  Have you been in touch with Senator Specter or \nhis office lately?\n\t     \n\t     THE PRESIDENT:  Well, we've been trying to talk \nregularly to -- through my White House Congressional Liaison \noperation to the senators that we think are open to this --\nSenator Specter, Senator D'Amato from New York, Senator Jeffords \nfrom Vermont, Senator Hatfield from Oregon, and five or six \nothers whom we believe know we need more jobs in this economy and \nknow that we are paying for this with budget cuts over the life \nof the budget I presented.\n\t     \n\t     You know, it has a lot of appeal to say, well, we've \ngot a big deficit, we shouldn't increase it more.  But the truth \nis that we are paying for this with budget cuts in the whole life \nof the budget over the next few years.  And more importantly, we \nhave this program well below the spending targets that Congress \nhas already approved for this year.  And they've done this for \nyears, with the Republicans voting for it -- many Republicans \nvoting for it -- for things that weren't nearly as important as \nputting the American people back to work.  \n\t     \n\t     So I just hope that this doesn't become a political \nissue.  It ought to just be about the people of this country and \nthe need for jobs.\n\t     \n\t     Q\t  I have some questions from people who supported \nyou, and some people who are skeptical about your administration.  \nIt has to do with their hopes, and also with their fears.  A lot \nof people who supported you and voted for you in Pennsylvania --I \nthink some of them are now saying, we're glad we got him in the \nWhite House, but now look at this incredible process he has to go \nthrough.  Look at these problems.  Look at this gridlock.  And \nthey're beginning to wonder, is this going to work; can you pull \nit off?  And, of course, your skeptics are saying, well, I knew \nit was going to be like this.\n\t     \n\t     THE PRESIDENT:  Well, what I would -- I'd ask \npeople, first of all, to remember that we are, frankly, moving \nvery fast.  The budget resolution that the Congress passed is the \nfastest they have ever passed a budget resolution -- ever -- in \nhistory, setting out the next five-year budget targets.  So we \nare moving really rapidly.  And we've got them working on \npolitical reform, welfare reform, health care reform, a whole \nwide range of things.  \n\t     \n\t     But it's a big operation.  You can't expect to turn \nit around overnight.  It took 12 years to produce the conditions \nwhich led to the victory I received from the people in November, \nand we can't turn it around in 90 days.  But I think we're making \nreal, real progress.  \n\t     \n\t     I would urge the people not to get discouraged.  \nWe're not going to win every battle, and not everything is going \nto happen overnight.  But we are definitely moving and changing \nthings.\n\t     \n\t     Q\t  Thank you very much.  \n\t     \n\t     The President of the United States, Bill Clinton, \nhere live at Pittsburgh International Airport.  I'm Mike Whitely, \nKDKA News.\n\n                               END10:31 A.M. EDT\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9878, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rjn@teal.csn.org (Robert J. Niland)\nSubject: Re: Procomm Plus for windows problems....\nNntp-Posting-Host: teal.csn.org\nOrganization: Colorado SuperNet, Inc.\nX-Newsreader: Tin 1.1 PL4\nLines: 292\n\nkentiler@matt.ksu.ksu.edu (Kent P. Iler) writes:\n\n:   I have normal procomm plus for dos, but I've been considering buying\n: the windows version....it got really great reviews in computer shopper.\n: I have a friend who connects to the mainframe and unix machines here\n: using it, but the screen seems to have a problem keeping up with the\n: modem....he has a 14,400 modem on a 486 50 Mhz machine.  I can't\n: see it having trouble keeping up.  His pcplus for dos works great,\n\nre: What to do after the high speed modem arrives.       Edition 01 Apr 93\n\nThis article applies only to Windows 3.0 and 3.1, and not to NT, OS/2\nor DOS apps not running under Windows.\n\nOne of the unadvertised limitations of most current Windows PCs is that\ntheir RS-232C (serial, COM) performance is seriously deficient.  Almost\neveryone who purchases a high-speed modem (V.32bis, V.32, PEP or HST)\ndiscovers the problem the first time they try to download a file or accept\nan incoming FAX (at 9600+) after upgrading the modem.  Overrun and retry\nerrors abound, even when the only active application is the datacomm or\nFAX program.  If the transfer completes at all, it may take even longer\nthan with the old 2400bps modem.\n\n\nThere are three reasons for the problem:\n\n1. The Universal Asynchronous Receiver/Transmitters (UARTs) used in most\n   PCs are primitive Ns8250 devices with single-byte FIFO buffers.  If the\n   operating system/driver cannot read and flush each character at high\n   interrupt rates, the next incoming character overwrites the FIFO and\n   the previous one is lost.  DOS, being a fairly single-minded\n   environment during datacomm, can usually keep up. Windows can't.\n\n2. Windows has more operating system overhead than plain DOS, and\n   interrupts often take longer to service.  Overruns are much more likely\n   than under DOS.  As soon as you report to your PC/modem vendor that you\n   are losing data, you may be advised that \"you need to upgrade to a\n   16550\". More likely, since there seems to be a conspiracy of ignorance\n   about this issue,  you'll get no useful advice at all.  Most of the\n   store-front and mail-order sources I spoke with in attempting to solve\n   my own problem had never heard the term \"16550\" and many didn't even\n   know what a UART was.\n\n3. Even your PC has Ns16550A UARTs (and PS/2's do), or if you can upgrade\n   your mother/COM board or add a new COM board, you may STILL experience\n   errors and overruns because the standard MicroSoft Windows COM drivers\n   don't take full advantage of the 16550.  Windows 3.1 is improved in this\n   regard over 3.0, but I still recommend a driver upgrade.  Applications\n   like ProComm+/Win (which is what I use) cannot get around this problem\n   by themselves.\n\nIf you have a modem CARD, you may not have a problem, as the modem part of\nthe card can be designed to be aware of the state of the UART, and avoid\noverrunning it; however, I wouldn't want to bet that the card designers\nwere that clever, and will insist on a 16550 UART if I ever buy a modem\ncard.  Some modem cards don't even have conventional UARTs, but if they\nare to work with standard Windows drivers, they need to simulate one.\nUse MSD.EXE (below) to see what the modem card is, or is pretending to be.\n\n\nThe Hardware Situation.\n\nThe UARTs on most PC COM ports are based on National Semiconductor Ns8250\nor Ns16450 chips (or megacells inside VLSI chips where you can't replace\nthem).  You can ID the UART type on your system by running the MicroSoft\ndiagnostic program \\WINDOWS\\MSD.EXE.  Be sure to run it in DOS *before*\nbringing up Windows.   The Windows serial API may prevent MSD from\naccurately identifying a 16550 if you run it from a Windows DOS prompt.\n\nThe Ns16550 UART has separate 16-byte transmit and receive FIFOs with\nconfigurable trigger levels, and can run reliably at clock rates up to\n460,800 bps, although with current modem technology, there's no point in\npushing your luck by going over 115,200 bps. The 16550 has shorted access\ncycle times than the 16450 or 8250.  The 16550 also has DMA capability, but\nit is not clear that any PC drivers ever use this.  For more technical info,\nsee National Semiconductor Application Note AN-491.\n\nSo, what UART component do you have?\n\nTry to locate the UART on your mother board, multi-function I/O card, COM\nboard or ISA/MCA modem card.  If you can't find a socketed component with\nthe numbers \"8250\" or \"16450\", your COM ports are probably buried in VLSI,\nand you won't be able to perform a chip replacement.  If you can DISABLE\nyour VLSI COM ports (as I chose to do), you can at least add an aftermarket\nCOM board.\n\nIf you have one or more socketed 8250 or 16450 chips, you can buy plug-in\nNs16550AFN or PC16C550CN (low power CMOS version) ICs from several\nsuppliers typically for $9 to $15 each.  The \"N\" chip is the normal 40-pin\ndual-in-line package.  Other styles are available, but avoid any Ns16550\nchips without the \"A\" (the 16C550C are presumably all OK).\n\nEarly Ns chips have bugs, although National will reportedly exchange those\nof their own manufacture for free.  Clone chips are available from various\nIC makers other than National.  The manual for the TurboCom drivers states\nsupport for the following (apparently equivalent) chips:\nNational Semiconductor: 16550A, 16551, 16552\nChips&Technology:       82C607\nTexas Instruments:      t16c550a\nSilicon Systems:        73M550\nVLSI                    16C550\nTurboCom warns about the pre-\"A\" Ns16550 and Western Digital 16C550,\nsays that problems have been reported with early IBM PS/2 55SX and 70\nsystems (IBM reportedly will upgrade them).\n\nIf you DON'T have socketed 8250/16450 chips, you'll need to buy an after-\nmarket COM or multi-function board. If this is a modem card situation, you\nmay be hosed. To add a new COM or multi-function card, you'll need to\neither disable the COM1/2 port(s) you are replacing, or re-assign them to\nCOM3/4 (although watch out for IRQ conflicts without TurboCom).\n\nAlthough cheaper cards are available, in the interest of getting the\nproblem solved quickly I elected buy the Modular Circuit Technology\nMCT-AIO+ card from:\n\nJDR Microdevices\n2233 Samaritan Drive\nSan Jose  CA  95124\n(800) 538-5000 voice US\n(408) 559-1200 voice other\n(800) 538-5005 FAX US\n\nThe MCT-AIO+ (and the \"+\" is important) sells for $89.95.  It is an 8-bit\nISA card providing:\n\nPort Type  Connector  Address and IRQ        Comments\nCOM        DB9M       COM 1,2,3 IRQ 2,3,4,5  Ns16550AFN in socket\nCOM        ribbon     COM 2,3,4 IRQ 2,3,4,5  Ns16550AFN in socket\nParallel   DB25F      LPT1,2,3  IRQ 5,7\nGame       ribbon\n\nThe kit includes a ribbon cable and DB25F connector for the secondary COM\nport, a ribbon cable/connector for the game port, two bulkhead plates for\nthe ribbon-based connectors and a 9F-to-25F adaptor cable.  Each port can\nbe individually disabled, and the COM ports have TX, RX, RTS, CTS, DTR,\nDCD, and DSR jumpers.\n\nJDR also sells a Super-I/O m-f card that also has IDE.\n\nI have heard from several people about less expensive m-f I/O cards\nwith 16550s:\n\nTSD Systems\n(407) 331-9130\n$19.95 for the card, plus $9.95 per 16550.\n\nGreenfield Trading and Distributors\n(518) 271-2473 (voice), (518) 271-7811(FAX).\nTheir card is $33 w/one 16550, $45 w/2, and they sell 16550AFNs for $13.\n\nR&S DATA SYSTEMS, INC.\n820 East Highway 434\nLongwood, FL  32750\nPHONE: (407) 331-1424\nFAX: (407) 331-8606\n2COM/LPT/Game card w/2 16550s for $39\n\nI have no personal experience with any of the firms except JDR.\n\nMeanwhile, back at the MCT card from JDR... I only needed two serial ports,\nand am running out of IRQs on my PC, so I disabled my built-in VLSI-based\n8250 ports. However, with the TurboCom driver (below), I could have set\nthe internals as COM3 and 4, using IRQ sharing.\n\n\nThe Software Situation\n\nSimply upgrading to 16550 UARTs will not completely solve common overrun\nproblems.  The standard MS serial drivers don't take full advantage of the\n16550. The Windows 3.0 drivers are even less capable, and the Windows 3.1\ndrivers have the following limitations:\n - They enable only the receive FIFO, and only at rates above 2400 bps.\n - They never enable the transmit FIFO, which  results in an interrupt\n   rate of 10x during uploads.\n - They set the trigger level at 14 bytes (too high - it's easy for 2\n   more bytes to arrive before the driver can read the FIFO).\n - The Ports menu of the Control Panel only allows speeds up to 19200.\n   With a V.32bis modem,  sparse data and text can easily compress 3:1\n   or more, suggesting that a host DTE connect rate of 57,600 bps would\n   be effective.\n - The API won't accept rates above \"CBR_128000\".\n - The API won't let DOS programs know there is a 16550 there, and even\n   if it did, DOS programs that aren't 16550-aware get little benefit\n   from a 16550 port with the standard drivers.\n - They don't allow IRQ sharing for COM3,4.\n - The BIOS doesn't initialize COM3,4 properly in many systems.\n - Windows provides no workaround for apps that don't provide port\n   speed options above 19200 bps.\n\nThese problems are reportedly NOT solved in Windows NT or DOS 6.0, and may\nor may not be addressed in any Windows releases after 3.1 (but before 4.0).\nRumors suggest they \"may\" be solved in Windows \"4.0\".\n\nYou can get replacement drivers that solve all of those problems by buying\na copy of \"TurboCom\", current version 1.2, from:\n\nBio-Engineering Research\nPacific CommWare Division\n180 Beacon Hill Lane\nAshland  OR   97520-9701\n(503) 482-2744 voice\n(503) 482-2627 FAX\n(503) 482-2633 BBS\nMCImail:    344-5374\nCompuServe: 71521,760\n\nPrice was around $50 as I recall.  Bio-Eng is not set up to accept credit\ncards, so I had to send a check.  Egghead and 1-800-Software list TurboCom\nbut as far as I know, they don't stock it.  Bio is not a software company\nper se.  They apparently needed reliable hi-speed serial connections for\nan in-house instrument application, wrote their own driver, discovered a\nmarket for it, revised it to be a general purpose COM driver suite. They\nrecently upgraded it for Windows 3.1.  It is run-time licensed.\n\nI now have my host (DTE) connect rate set to 57,600 bps most of  my\ndatacomm apps, and I am having ZERO problems with downloads. I routinely\nsee transfer rates that exceed 2,000 bps. I am also using 115,200 bps\nwhen linking an HP95LX to my PC, with lossless bi-directional I/O.\nUploads to various remote systems are another matter, because many hosts\nare still using antique UARTs and drivers.\n\nNote that 19200 is still the highest rate that the Windows 3.1 Port menu\nin Control Panel will allow in configuring a COM port.  TurboCom gets\naround this by allowing you to specify, on each port, a factor that will\nset the real UART rate to a multiple of the rate passed through the\nWindows APIs and dialog boxes.\n\nI also have CTS/RTS hardware flow control enabled, and I suggest that you\ndo the same.  Even if you only ever transfer 7-bit ASCII data, Xon/XOff is\nnot a sufficiently reliable method of flow control.  The informal (DEC)\nstandard for Xon/Xoff hysteresis is that the sender may transmit another\n16 (yes, sixteen) bytes after receipt of the Xoff from the receiving\nsystem or device.  The 16 byte FIFO in the 16550 is clearly not big enough\nto let us rely exclusively on Xon/Xoff.  A well-respected datacomm\nengineer has informed me that the 16550's can't really do CTS/RTS all\nby itself in the DOS/Windows environment, so using data rates above\n115,200 may still be risky.\n\nEven with hardware flow control, a 16550 with TurboCom can still\nexperience overruns in very busy systems, with lots of apps running and\nserious swapping in progress. If this is your situation, you may need to\nbuy a co-processed COM board, but this will cost you more than a\n16550/TurboCom upgrade.  A review of two such boards, and a review of\nTurboCom, can be found in the Feb'93 issue of \"Windows Sources\" magazine.\nI suggest trying a 16550/TurboCom upgrade first, and experiment with\nprocess priorities and time slices if you are a \"power user\" whose\nthrashing system still runs into comm problems.\n\n\nClosing Soapbox Comments\n\nThe state of RS-232C serial datacomm support is an embarrassment across\nthe computer industry.  Because it is the oldest standard I/O interface,\nthe job of designing hardware and writing software often seems to be\nassigned to the least senior or lowest ranked engineers at computer\ncompanies.  The design of the average serial port is at least ten years\nbehind the state of the art. In my last job, with a major workstation\nvendor, I lobbied for improved serial ports when they were doing the\ninitial designs of a new system.  That family of machines was\nsubsequently introduced with 16550 ports.  However, this is the\nexception.  Few computer companies seem to have any champions for decent\nI/O.\n\nYou may as well learn what you can about serial I/O, because this\nsituation shows no sign of improving soon.  When V.FAST arrives, I expect\ncries of outrage from Windows users world-wide whose 8250 PCs \"sort of\"\nwork today with V.32, but will fail miserably with V.FAST.  Without a\nhardware-buffered UART (like the 16550) and without software drivers that\nuse that UART to best advantage, a V.FAST modem will be a waste of money.\n\nRegards,                                          1001-A East Harmony Road\nBob Niland                                        Suite 503\nInternet:  rjn@csn.org                            Fort Collins CO 80525\nCompuServe: 71044,2124                            (303) 223-5209\n\n                     Copyright 1993 Robert J. Niland\n                           All Rights Reserved\n\n  Permission is granted for automatic redistribution of this article, via\n  electronic, magnetic and optical media, in an unedited form, through any\n  Usenet newsgroup where the article is posted by the author.  Permission\n  is granted for each CompuServe and Usenet reader subscriber and each\n  person who received this article from Compuserve, an ftp site authorized\n  by the author or via electronic mail from the author, to retain one\n  electronic copy and to make hardcopy reproductions of this edition of\n  this article for personal non-commercial use, provided that no material\n  changes are made to the article or this copyright statement. All other\n  copying, storage, reproduction or redistribution of this article, in\n  any form, is prohibited without the express written consent of the\n  author,  Robert J. Niland.\n\nEOF\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9879, "properties": {"category": "rec.sport.baseball", "text": "From: gwittt@alleg.edu (Tom Gwitt)\nSubject: Re: Mel Hall\nOrganization: Allegheny College\nLines: 11\n\nIn article <1993Apr17.212119.13901@coe.montana.edu> warped@cs.montana.edu  \n(Doug Dolven) writes:\n> \n> Has anyone heard anything about Mel Hall this season?  I'd heard he  \nwasn't\n> with the Yankees any more.  What happened to him?\n> \n\nHe is in Japan playing baseball.\n--\n\tTom Gwitt     gwittt@alleg.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9880, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 29\n\npat@rwing.UUCP (Pat Myrto) writes:\n\n> Can you, while my mind is on it, give us one good reason that the\n> algorithm should be a secret algorithm, unless this encryption scheme\n> either is a joke, or contains features like a 'master key' or other back\n> door for UNAUTHORIZED eavesdropping?\n\nHmm, here are a couple:\n\n1) If the algorithm becomes known, it will be easy to produce\npin-compatible non-crippled chips that provide -real- encryption and\nprivacy, because their keys are only in their users' hands.\n\n2) Since SkipJack is a symmetric key cypher, it needs some way to\nagree on a session key. The released information says that any\nprotocol may be used (e.g., DH). From a theoretical point of view,\nthis is probably true. However, from a practical point of view, those\nchips must have some kind of key exchange protocol built-in. What if\nit is good old RSA? This will mean that the producer will have to pay\nlots of bucks to PKP. By keeping the details secret this can be\navoided...\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9881, "properties": {"category": "alt.atheism", "text": "From: kellyb@ccsua.ctstateu.edu\nSubject: Re: Bible Quiz\nLines: 12\nNntp-Posting-Host: ccsua.ctstateu.edu\nOrganization: Yale University, Department of Computer Science, New Haven, CT\n\nIn article <kmr4.1563.734805744@po.CWRU.edu>, kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n> In article <1qgbmt$c4f@usenet.INS.CWRU.Edu> cr866@cleveland.Freenet.Edu (Frank D. Kirschner) writes:\n> \n>> ---\n> \n>    Only when the Sun starts to orbit the Earth will I accept the Bible. \n>         \n> \n     Since when does atheism mean trashing other religions?There must be a God\n     of inbreeding to which you are his only son.\n\n                                                  Pope John Paul\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9882, "properties": {"category": "rec.autos", "text": "From: markm@bigfoot.sps.mot.com (Mark Monninger)\nSubject: Re: Auto air conditioning without Freon\nNntp-Posting-Host: 223.250.10.7\nReply-To: rapw20@email.sps.mot.com\nOrganization: SPS\nDistribution: usa\nLines: 20\n\nIn article <1993Apr15.222600.11690@research.nj.nec.com>  \nbehanna@syl.nj.nec.com (Chris BeHanna) writes:\n>  ...\n> \tSeveral chemists already have come up with several substitutes for\n> R12.  You don't hear about them because the Mobile Air Conditioning  \nSociety\n> (MACS), that is, the people who stand to rake in that $300 to $1000 per\n> retrofit per automobile, have mounted an organized campaign to squash  \nthose\n> R12 substitutes out of existence if not ban them altogether (on very  \nshaky\n> technical grounds, at best, on outright lies at worst).\n>  ...\n\nNow, I'm not saying you're wrong because I know that the R-12 substitutes  \nexist, but this sounds a lot like the 200mpg carbs that the oil companies  \nkeep us all from getting.\n\nMark\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9883, "properties": {"category": "alt.atheism", "text": "From: gmiller@worldbank.org (Gene C. Miller)\nSubject: Re: Radical Agnostic... NOT!\nOrganization: worldbank.org\nLines: 37\n\nIn article <1993Apr6.013657.5691@cnsvax.uwec.edu>, nyeda@cnsvax.uwec.edu\n(David Nye) wrote:\n> \n> [reply to zazen@austin.ibm.com (E. H. Welbon)]\n>  \n> >>>     There is no means that i can possibly think of to prove beyond doubt\n> >>>that a god does not exist (but if anyone has one, by all means, tell me\n> >>>what it is).  Therefore, lacking this ability of absolute proof, being an\n> >>>atheist becomes an act of faith in and of itself, and this I cannot accept.\n> >>> I accept nothing on blind faith.\n>  \n> >>Invisible Pink Flying Unicorns!  Need I say more?\n>  \n> >...I harbor no beliefs at all, there is no good evidence for god\n> >existing or not.  Some folks call this agnosticism.  It does not suffer\n> >from \"blind faith\" at all.  I think of it as \"Don't worry, be happy\".\n>  \n> For many atheists, the lack of belief in gods is secondary to an\n> epistemological consideration:  what do we accept as a reliable way of\n> knowing?  There are no known valid logical arguments for the existence\n> of gods, nor is there any empirical evidence that they exist.  Most\n> philosophers and theologians agree that the idea of a god is one that\n> must be accepted on faith.  Faith is belief without a sound logical\n> basis or empirical evidence.  It is a reliable way of knowing?\n>  \n\nCould you expand on your definition of knowing? It seems a bit monolithic\nhere, but I'm not sure that you intend that. Don't we need, for example, to\ndistinguish between \"knowing\" 2 plus 2 equals 4 (or 2 apples plus 2 apples\nequals 4 apples), the French \"knowing\" that Jerry Lewis is an auteur, and\nwhat it means to say we \"know\" what Socrates said?\n\n> This is patently absurd; but whoever wishes to become a philosopher\n> must learn not to be frightened by absurdities. -- Bertrand Russell\n\nI like this epigraph. Perhaps the issue is learning which, if any,\nabsurdities merit further exploration...Gene\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9884, "properties": {"category": "comp.sys.mac.hardware", "text": "From: zia@castle.ed.ac.uk (Zia Manji)\nSubject: HELP - E_Mail Address of Caere Corporation\nOrganization: Edinburgh University\nLines: 19\n\n===============================================================================\n \tI'm looking for the E_Mail Address of the Caere Corporation. \n\tTheir Address is:\n\n\tCAERE CORPORATION\n\t100 COOPER COURT\n\tLOS GATOS\n\tCALIFONIA 95030\n\n\tIf you know the address  o  have access to find it. Please could\n\tyou send it to me.    \n\n\tMy E_Mail Address is:\n\n\t\t<zia@uk.ac.ed.castle>\n\n\tThanking you in advance,\n\n\t\tZia.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9885, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: Conner CP30061G info, please\nFrom: michael@pcmith.rks.se (Michael Thurbin)\nOrganization: Sommarvagen 1, S-352 37 Vaxjoe, SWEDEN\nLines: 14\n\nI have a Conner-disk model CP30061G (200Mb ??) with no info at all. The only thing I know is that\nis normally used with Compaq-machines.\nPlease, send me information on switch-settings, geometry and so on.\nIt looks like a normal IDE-disk but is it possible to use it with a standard IDE-controller??\n\n-- Michael\n\n-- \n**************************************************************************************************\nMichael Thurbin\nSommarvagen 1\t\tPhone: +46 (0)47021340\nS-352 37 Vaxjoe\t\tFax:   +46 (0)47048978\nSWEDEN\n**************************************************************************************************\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9886, "properties": {"category": "sci.space", "text": "From: tkelso@afit.af.mil (TS Kelso)\nSubject: Two-Line Orbital Element Set:  Space Shuttle\nKeywords: Space Shuttle, Orbital Elements, Keplerian\nNntp-Posting-Host: scgraph.afit.af.mil\nOrganization: Air Force Institute of Technology\nLines: 21\n\nThe most current orbital elements from the NORAD two-line element sets are\ncarried on the Celestial BBS, (513) 427-0674, and are updated daily (when\npossible).  Documentation and tracking software are also available on this\nsystem.  As a service to the satellite user community, the most current\nelements for the current shuttle mission are provided below.  The Celestial\nBBS may be accessed 24 hours/day at 300, 1200, 2400, 4800, or 9600 bps using\n8 data bits, 1 stop bit, no parity.\n\nElement sets (also updated daily), shuttle elements, and some documentation\nand software are also available via anonymous ftp from archive.afit.af.mil\n(129.92.1.66) in the directory pub/space.\n\nSTS 56     \n1 22621U 93 23  A 93105.06179397  .00044513  00000-0  12649-3 0   230\n2 22621  57.0022 147.2850 0004246 288.7332  38.0941 15.92991629  1084\n1993 023B  \n1 22623U 93 23  B 93103.37312705  .00041032  00000-0  11888-3 0    86\n2 22623  57.0000 155.1150 0004422 293.4650  66.5967 15.92653917   803\n--\nDr TS Kelso                           Assistant Professor of Space Operations\ntkelso@afit.af.mil                    Air Force Institute of Technology\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9887, "properties": {"category": "rec.autos", "text": "From: al@qiclab.scn.rain.com (Alan Peterman)\nSubject: Re: \"ELECTRONIC\" ODOMETER\nOrganization: SCN Research/Qic Laboratories of Tigard, Oregon.\nLines: 24\n\nIn article <C5Fp8B.2Co@megatest.com> alung@megatest.com (Aaron Lung) writes:\n>If I'm not mistaken, altering the odometer is *illegal*.  Furthermore,\n>I surmise it'll be tough to alter BMW's odometer if you got at it.\n>Some of the newer BMW's have electronic odometers making it even\n>more tamperproof.\n\nOn the cars mentioned - 3 series from the late 80's the \"electronic\"\nodometer is really a mechanical drum type odometer, that is driven\nby pulses from a speed sensor on the rear axle.  These pulses are \nconverted into mechanical pulses that turn the odometer - and speedometer.\nNo way changing or erasing an eprom is going to change the mileage\nreading.  It also means the odometer is just as easy (or hard) to\nchange as any other mechanical odometer.\n\nOn the other hand it is a bit easier to disconnect the speed sensor\nand run the car with no speedometer or odometer reading...a simple\nswitch will do the job.  It also will disable the speed limiter,\nwhich will enable the car to reach it's full speed.  ;-)\n\n\n-- \nAlan L. Peterman                                 (503)-684-1984 hm & work\n                       al@qiclab.scn.rain.com\nIt's odd how as I get older, the days are longer, but the years are shorter!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9888, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Brad Hernlem vs. principle\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 50\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\n     In his neverending effort to make sure that we do not forget         \n     what a moron he is, Brad Hernlem has asked why Israel rarely\n     abides by UN Security Council resolutions.  Perhaps the list\n     below might answer the question.  \n\n\n     Incident                           Security Council Response\n     ------------------------------------------------------------                                              \n  1. Hindu-Moslem clash in INdia, over 2,000 killed, 1990    NONE\n  2. Gassing to death of over 8,000 Kurds by                 NONE\n     Iraqi Air Force, 1988-89    \n  3. Saudi security forces slaughter                         NONE\n     400 pilgrims in Mecca, 1987      \n  4. Killing by Algerian army of 500 demonstrators, 1988     NONE\n  5. Intrafada (Arabs killing Arabs) -- over 300 killed      NONE\n  6. 30,000 civilians slaughtered by government              NONE\n     troops in Hama, Syria, 1982                                \n  7. Killing of 5,000 Palestinians by Jordanian troops,      NONE\n     thousands expelled, Sept., 1970                                \n  8. 87 Moslems killed in Egypt, 1981                        NONE  \n  9. 77 killed in Egyption bread riots, 1977                 NONE\n 10. 30 border and rocket attacks against Israel by          NONE\n     the PLO in 1989 alone                     \n 11. Munich, 1972: 11 Israeli athletes slaughtered           NONE\n 12. Ma'alot, 1974: children killed in PLO attack            NONE\n 13. Israel Coastal bus attack: 34 dead, 82 wounded          NONE\n 14. Syria kills 23,000 Palestinians, 1976                   NONE\n 15. Lebanon: over 150,000 dead since 1975                   NONE\n 16. Yemen: 13,000 killed in two weeks, 1986                 NONE\n 17. Sudan: Tens of thousands of Black slaves,               NONE\n     Civil War toll, 1 million killed, 3 million refugees        \n 18. Tienenman Square massacre 1989                          NONE\n 19. Rumania, 3,000 killed, 1989                             NONE\n 20. Pan Am 103 disaster carried out by the P.L.O            NONE\n 21. Northern Ireland                                        NONE\n 22. Cambodia                                                NONE\n 23. Soviet Occupation of Afghanistan                        NONE\n 24. American riots at Attica, Watts, Newark, Kent State     NONE\n 25. 1981: Israel destroys Iraqi reractor, Israel         CONDEMNED\n 26. 1990: Israeli police protect Israeli worshipers      CONDEMNED\n     against Arab mob, 18 anti-Jewish rioters killed                     \n 27. Syrian soldiers slaughter Christian soldiers            NONE\n     after they surrender, 1990                                       \n \n     It appears that Brad Hernlem and the United Nations Security\n     Council have something in common.  They both seem unfettered \n     by the demands of acting on principle.\n\n \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9889, "properties": {"category": "misc.forsale", "text": "From: nave@jato.jpl.nasa.gov (Joe Nave)\nSubject: C=64 SYSTEM FOR SALE - MAKE OFFER...\nOrganization: Jet Propulsion Laboratory\nDistribution: usa\nLines: 24\n\nFOR SALE:\n\n*** COMPLETE PACKAGE ONLY ***\n\n(1) COMMODORE C64 COMPUTER LIKE NEW IN THE BOX WITH POWER SUPPLY\n    AND OWNERS MANUALS \n(2) COMMODORE 1541C DISK DRIVE LIKE NEW IN THE BOX - AND OWNERS\n    MANUAL\n(3) COMMODORE 1702 COLOR MONITOR LIKE NEW AND OWNERS MANUAL \n(4) PANASONIC KXP-1091 DOT MATRIX PRINTER LIKE NEW AND OWNERS\n    MANUAL\n(5) PRINTER INTERFACE FOR PANASONIC PRINTER\n(6) FASTLOAD CARTRIDGE\n(7) HUGE STACK OF BOOKS ON C-64/1541 PROGRAMMING\n\n\nMAKE A REASONABLE OFFER AND I'LL THROW IN 300+ DISKS OF SOFTWARE...\n\nPlease reply in e-mail.\n\n-- \nJoachim Nave\t\t\tnave@jato.jpl.nasa.gov\nJet Propulsion Laboratory\nPasadena, California\t\tDISCLAIMER: No, I don't speak for JPL!\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9890, "properties": {"category": "sci.electronics", "text": "From: rooi@duteca3.et.tudelft.nl (Mark de Rooi)\nSubject: Calculating a transformer - help needed\nOriginator: rooi@duteca3.et.tudelft.nl\nNntp-Posting-Host: duteca3.et.tudelft.nl\nReply-To: rooi@duteca3.et.tudelft.nl (Mark de Rooi)\nOrganization: Delft University of Technology, Dept. of Electrical Engineering\nLines: 18\n\nI want to convert a 500 Volt sinewave with frequency between 1 kHz\nand 10 kHz, to a 10 Volt sinewave with the same frequency, by\nmeans of a transformer. The secondary current will be .6 A (600 mA).\n\nWhat kind of transformer should I use (ferrite?)\nCan I buy one? If so, I need a partnumber and supplier\nIf I cannot buy one, how do I go about winding one myself?\nWhat core do I use, how big must it be in order not to saturate,\nwhat thickness copper wire, how many turns, etc.?\n\nI know little about analog electronics, so I hope some kind\nsoul here will help me out.\nPointers to relevant databooks will also be highly appreciated.\n\nThanks,\n\nMark de Rooi\nrooi@tpd.tno.nl\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9891, "properties": {"category": "talk.politics.misc", "text": "From: sents@dixie.com (Jeff Sents)\nSubject: Re: Top Ten Signs That It's the Age of Aquarius on Pennsylvania Avenue\nOrganization: Dixie Communications Public Access.  The Mouth of the South.\nLines: 19\n\npaolucci@spot.Colorado.EDU (Paolucci Paul) writes:\n\n>In article <C5Gpto.Kq0@newsserver.technet.sg> ipser@solomon.technet.sg (Ed Ipser) writes:\n>>Top Ten Signs That It's the Age of Aquarius on Pennsylvania Avenue\n>[biased and decidedly not-as-funny-as-dave stuff deleted...]\n\n>I sure hope that SOMEONE SOMEWHERE is enjoying these \"lists\"...\n[stuff deleted]\n>I'm no Clinton fan, but I'm no Ipser fan...\n\nThen why not simply stop reading them. This isn't intended as a flame,\nbut your post reminds me of the old joke: \n Patient: \"Doctor it hurts when I do this.\"\n Doctor: \"Then stop doing that.\"\n\nRegards,\nJeff\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.465+0000", "event": "documents", "entityId": 9892, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pgeltner@netcon.smc.edu (Peter Geltner)\nSubject: Re: Soundblaster IRQ and Port settings\nOrganization: Santa Monica College, Santa Monica, CA\nLines: 23\n\nIn article <1qjv95$1t1@bogus.sura.net> vargish@bogus.sura.net (Nicholas Vargish) writes:\n>A SoundBlater (SB) card is _supposed_ to share IRQ 7 with LPT1\n>(parallel printer interface 1), and in general this scheme works well.\n>However, sometimes there are conflicts -- it seemed to depend on the\n>software more than anything else. Origin games are especially bitchy\n>about having the WHOLE interrupt to themselves... :^)\n>\n>My solution was to switch the interrupt to IRQ 5, which is unreserved\n>in contemporary computers (using IRQ 5 for the drives went out with\n>the XT architechture -- DON'T put the SB in IRQ 5 if you have an XT,\n>get a new computer instead). This IRQ has been completely stable for\n>me, and I use my SB to play .mods and .wavs under Linux (a free UN*X\n>for 386 or better PC-architecture machines) with _no_ problems, as\n>well as games under DOS...\n\nI also use IRQ 5.  But there is one disadvantage.  Some games assume that\nthe board is using IRQ 7 and have no way to adjust this setting.  I had\ntrouble with some of the Lucas Films games.\n-- \n\nPeter Geltner   Administrative Dean of Computing\n                Santa Monica College\n                Santa Monica, California 90405\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9893, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: bikes with big dogs\nOrganization: Ontario Hydro - Research Division\nLines: 17\n\nIn article <1993Apr14.212827.2277@galaxy.gov.bc.ca> bclarke@galaxy.gov.bc.ca writes:\n>In article <1993Apr14.234835.1@cua.edu>, 84wendel@cua.edu writes:\n>> Has anyone ever heard of a rider giving a big dog such as a great dane a ride \n>> on the back of his bike.  My dog would love it if I could ever make it work.\n>\n>!!! Post of the month !!!\n>Actually, I've seen riders carting around a pet dog in a sidecar....\n>A great Dane on the back though; sounds a bit hairy to me.\n\nYeah, I'm sure that our lab would love a ride (he's the type that sticks his\nhead out car windows) but I didn't think that he would enjoy being bungee-\ncorded to the gas tank, and 65 lbs or squirming beast is a bit much for a\nbackpack (ok who's done it....).\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9894, "properties": {"category": "sci.crypt", "text": "From: johng@ecs.comm.mot.com (John Gilbert)\nSubject: clipper chip --Bush did it\nOrganization: Motorola, Land Mobile Products Sector\nDistribution: na\nKeywords: Big Bubba Is Watching!\nNntp-Posting-Host: 145.1.147.59\nLines: 10\n\nIn article <WCS.93Apr17024857@rainier.ATT.COM> wcs@anchor.ho.att.com (Bill Stewart +1-908-949-0705) writes:\n>... This is the Democrats' version\n>\"Defend Free Speech - Reject Republicans\" followed by speech control.\n\nThis must have been in the works for some time.  The Bush administration must\nhave been working on it for quite a while.  --Clinton simply took the credit (or\nblame, depending on how you look at it).\n\n-- \nJohn Gilbert                          johng@ecs.comm.mot.com  \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9895, "properties": {"category": "soc.religion.christian", "text": "From: dleonar@andy.bgsu.edu (Pixie)\nSubject: Re: The arrogance of Christians\nOrganization: Hell\nLines: 35\n\nIn article <Apr.7.01.55.50.1993.22771@athos.rutgers.edu>,\nvbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) wrote:\n\n> \n> \t\"We affirm the absolutes of Scripture, not because we are arrogant\n> moralists, but because we believe in God who is truth, who has revealed His\n> truth in His Word, and therefore we hold as precious the strategic importance\n> of those absolutes.\"\n\n\n\t\t\t\t\tPardon me, a humble atheist, but exactly what is the difference\nbetween holding a revealed truth with blind faith as its basis (i.e.\nregardless of any evidence that you may find to the contrary) as an\nabsolute truth, fully expecting people to believe you and arrogance?\n\n     They sound like one and the same to me.\n\n     And nearly every time I meet a christian (or for that matter, any\nother theist) who tries to convert me, I find this proven over and over\nagain.\n\n     I see no wisdom whatsoever in your words\n\n\n                                       Unfaithfully yours,\n\n                                       Pixie\n\n\n     p.s.  If you do sincerely believe that a god exists, why do you follow\nit blindly?  \n\n     Do the words \"Question Authority\" mean anything to you?\n\n     I defy any theist to reply.      \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9896, "properties": {"category": "talk.politics.misc", "text": "From: kaldis@romulus.rutgers.edu (Theodore A. Kaldis)\nSubject: Re: Damn Ferigner's Be Taken Over\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 24\n\nIn article <01APR93.17160985.0059@VM1.MCGILL.CA> CZ94@MUSICA.MCGILL.CA (CZ94) writes:\n\n> Mark Anthony Young:\n\n>> PPS: Many Americans have a \"special legal status\" based on \"a mere\n>> accident of birth\".  Only people born in the US can become president\n>> of the US.  And since Parliament could theoretically replace the Queen\n>> with _anyone they want_ (even a \"ferigner\") US law is in one dimension\n>> more restictive than UK law as regards birth privileges.\n\n> This is not just theoretical.  Note how \"ferigner\" William III was\n> imported from Holland to kick out local boy James II, [...]\n\nWhich provided the basis for the denoument of the film which\nintroduced Errol Flynn to the world.  (Love interest was Olivia de\nHavilland, who went on to appear with Flynn in 7 more films.)\n\n[Exercise for non-old-movie buffs: what film was this?]\n[Exercise for old movie buffs: what were the 7 more films?]\n-- \n  The views expressed herein are   |  Theodore A. Kaldis\n  my own only.  Do you seriously   |  kaldis@remus.rutgers.edu\n  believe that a major university  |  {...}!rutgers!remus.rutgers.edu!kaldis\n  as this would hold such views??? |\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9897, "properties": {"category": "rec.autos", "text": "From: pp@cbnewsl.cb.att.com (peter.peng)\nSubject: need info on Mazda 626\nOrganization: AT&T Bell Laboratories\nDistribution: na\nKeywords: Mazeda 626\nLines: 15\n\n\n\nI test drove a Mazda 626 LX this past weekend and \nliked it.\n\nThe dealer offered it for $15K.\n\n1) Is this a good price?\n2) Any comments on 626 in general? \n\nPlease use email. Thanks \n\n\nPeter\natt!hotsoup!peng\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9898, "properties": {"category": "rec.sport.hockey", "text": "From: ad215@Freenet.carleton.ca (Rachel Holme)\nSubject: Re: CBC Game Choices (was LA ON CBC...)\nReply-To: ad215@Freenet.carleton.ca (Rachel Holme)\nOrganization: The National Capital Freenet\nLines: 39\n\n\nIn a previous article, 35002_2765@uwovax.uwo.ca () says:\n\n>In article <boora.735182771@sfu.ca>, boora@kits.sfu.ca (The GodFather) writes:\n>> \n>> \tCBC had a great chance for some double headers:  Toronto/Detroit\n>> and Vancouver/Winnipeg, but today they said that the East gets the Leafs\n>> and the West get the Vancouver game.  I thought that they would show them\n>> both.\n\nI'm totally p*-o'd, too!  Vancouver-Winnipeg is great west-coast hockey -\nfast-paced and loads of talent.  What I've seen so far is hardly\nentertaining, with the exception of the odd shift every now & then (of\ncourse I missed Calgary-LA & Pitts-Jersey...)\n\n>No, because the PINHEADS at CBC figure everyone here in Ontario cares\n>for the Leafs, the Maple Leafs, and nothing but the Leafs.  Half of\n>Southern Ontario is people who moved from out west, but the good folks\n>in Toronto couldn't care less.  They should show the doubleheader\n>(heck the second game would have two Canadian teams!), and let those\n>desperate for news watch The National on Newsworld, but they don't.\n>Why? Because Canada ends at Windsor, don'cha know!   Grrrrr.\n\nAmen...\n\n>Now I have to get updates every 30 mins. on CNN Headline News, for\n>crying out loud...\n\nThat's cheaper than what I do - PHONE CALLS.  (There must be a better\nsystem - one ring, Adams to Linden, he SCORES; two rings Bure rushes up\nthe ice, he SCORES, etc etc :-))\n\n-- \nad215@freenet.carleton.ca (Rachel Holme)]\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9899, "properties": {"category": "sci.med", "text": "From: vonwaadn@kuhub.cc.ukans.edu\nSubject: Panic Disorder - more success stories\nOrganization: University of Kansas Academic Computing Services\nLines: 32\n\nI posted this to sci.psychology on April 3, and after seeing\nyour post here on panice disorder thought it would be\nrelevant.\n\n-----\n\nMy research indicates that two schools of thought exist.\nthe literature promoting medication says it's the superior\ntreatment.  Not surprisingly, literature promoting cognitive\ntherapy also claims to be superior.\n\nWhat are the facts?  Early in my research I didn't have a\nbias towards either medication or cognitive therapy.  I\nwas interested in a treatment that worked.  After reading\njournals published after 1986, the cognitive therapy camp\nclaims a higher success rate (approx 80%), a lower drop-out\nrate, and no side effects associated with medication.\n\nLars-Goran Ost published an excellent article titled\n\"Applied Relaxation: Description of a coping technique and\na review of controlled studies.\"  This is from Behav. Res. Ther.,\nvol. 25, no. 5, pp. 397-409, 1987.  The article provides\ninstructions on how to perform applied relaxation (AR).\nBriefly, you start with two 15 minute sessions daily, and\nprogress in 8-12 weeks to performing 10-15 thirty second sessions\ndaily.\n\nI'll snail mail this article to anyone interested (USA only please;\nInternational please pay for postage).\n\nMark\nvonwaadn@kuhub.cc.ukans.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9900, "properties": {"category": "talk.politics.misc", "text": "From: phil@netcom.com (Phil Ronzone)\nSubject: Re: A Rational Viewpoint ---> was Re: New Study Out On Gay Percentage\nOrganization: Generally in favor of, but mostly random.\nLines: 27\n\nIn article <1qn57cINNabv@darkstar.UCSC.EDU> stephen@orchid.UCSC.EDU () writes:\n    >It is very difficult for a young person to develop and build\n    >a positive view of themself when they are constantly being\n    >told implicitly and explicitly that they are wrong and\n    >immoral.\n\nYes, that is most certainly true. However, the paragrapgh reflects a value-less\nposition and infers that what is more important than anything else is to\nhave \"a positive view\" of one's self.\n\nThis of course, is foolish.\n\nShould a mass murderer, a pedophile, a 10-year old pyromaniac have a \"positive\nview\" of themselves?\n\nOf course not.\n\nA person that engages in behaviour that a large number of people condemn,\nand IF you believe in the concept of \"society\", then your only choice is\nto expect that person to have a negative view of themselves.\n\n\n-- \nThere are actually people that STILL believe Love Canal was some kind of\nenvironmental disaster. Weird, eh?\n\nThese opinions are MINE, and you can't have 'em! (But I'll rent 'em cheap ...)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9901, "properties": {"category": "talk.politics.guns", "text": "From: hollombe@polymath.tti.com (The Polymath)\nSubject: Re: Dillon puts foot in mouth, film at 11\nOrganization: The Cat Factory & Mushroom Farm\nLines: 20\n\nIn article <199304160443.AA25231@sun.Panix.Com> justice@Panix.Com (Michael Justice) writes:\n}Dillon has published a letter in the Blue Press telling people\n}\"How to Bankrupt HCI\" by requesting information from them.\n}\n}Last time this idea went around in rec.guns, a couple of people\n}said that HCI counts all information requestors as \"members\".\n}\n}Can anyone confirm or deny this?\n}\n}If true, what's the impact of HCI getting a few thousand new\n}members?\n\nLast I heard, HCI had something like 250K members to the NRA's 3 million.\nIf true, and they want to play duelling mandates, well ...\n\nThe Polymath (aka: Jerry Hollombe, M.A., CDP, aka: hollombe@polymath.tti.com)\nHead Robot Wrangler at Citicorp                      Laws define crime.\n3100 Ocean Park Blvd.   (310) 450-9111, x2483       Police enforce laws.\nSanta Monica, CA  90405                            Citizens prevent crime.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9902, "properties": {"category": "soc.religion.christian", "text": "From: db7n+@andrew.cmu.edu (D. Andrew Byler)\nSubject: Re: Question about Virgin Mary\nOrganization: Freshman, Civil Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 28\n\n>As the moderator noted, I think you mean the Assumption.  Catholics\n>believe that the Blessed Virgin Mary went to Heaven body *and* soul at\n>the end of her life.  This is unusual because the normal course of\n>events is for your body to decay in the grave and stay that way until\n>the Resurrection of the Dead.\n\nWell, it wasn't that way for Enoch and Elijah, both of whom were\ntranslated directly into heaven.  It's beyond my grasp why some object\nthat Mary, who was far greater than either Enoch or Elijah, should not\nbenefit from the same privelege they recieved.  She was after all,\nMother of God, full of grace, and immaculate.\n\n>Historically, belief in the Assumption can be found in the writings of\n>St. Gregory of Tours (late 6th century).\n\nAnd in St. Germain of Constantinople and St. John of Damascus, and in\nSt. Andrew of Crete, among others.\n\nAnd it should be noted that the Monophysite Chruches of Egypt and Syria\nalso hold to this belief as part of divine revelation, even though they\nbroke away from the unity of the Chruch in 451 AD by rejecting the\nCouncil of Chalcedon.  It might be argued by some Protestants that the\nCatholics and Orthodox made this belief up, but the Monophysites, put a\nbig hole in that notion, as they also hold the belief, and they split\nfrom the Chruch before the belief was first annunciated in writing (as\nfar as is known, much has been lost from the time of the Fathers).\n\nAndy Byler\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9903, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 10/10 - References\nOrganization: The Crypt Cabal\nLines: 333\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 10 of 10 of the sci.crypt FAQ, References.\n History and classical methods. Modern methods. Survey and reference\n articles. Journals and conference proceedings. Electronic sources\n (FTP sites).  Related newsgroups.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part10\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 10: References\n\nThis is the tenth of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read the first part before the rest.\nWe don't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in this part.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers \nevery 21 days.\n\n\nContents\n\n* Books on history and classical methods\n* Books on modern methods\n* Survey articles\n* Reference articles\n* Journals, conference proceedings\n* Other\n* Electronic sources\n* RFCs (available from [FTPRF])\n* Related newsgroups\n\n\n* Books on history and classical methods\n\n  [CF]    Lambros D. Callimahos, William F. Friedman, Military Cryptanalytics.\n\t  Aegean Park Press, ?.\n  [DEA85] Cipher A. Deavours & Louis Kruh, Machine Cryptography and\n          Modern Cryptanalysis. Artech House, 610 Washington St.,\n          Dedham, MA 02026, 1985.\n  [FRIE2] William F. Friedman, Solving German Codes in World War I.\n          Aegean Park Press, ?.\n  [GAI44] H. Gaines, Cryptanalysis, a study of ciphers and their\n          solution. Dover Publications, 1944.\n  [HIN00] F.H.Hinsley, et al., British Intelligence in the Second\n          World War. Cambridge University Press. (vol's 1, 2, 3a, 3b\n          & 4, so far).  XXX Years and authors, fix XXX\n  [HOD83] Andrew Hodges, Alan Turing: The Enigma. Burnett Books\n          Ltd., 1983\n  [KAH91] David Kahn, Seizing the Enigma. Houghton Mifflin, 1991.\n  [KAH67] D. Kahn, The Codebreakers. Macmillan Publishing, 1967.\n          [history] [The abridged paperback edition left out most\n          technical details; the original hardcover edition is\n          recommended.]\n  [KOZ84] W. Kozaczuk, Enigma. University Publications of America, 1984\n  [KUL76] S. Kullback, Statistical Methods in Cryptanalysis. Aegean\n          Park Press, 1976.\n  [SIN66] A. Sinkov, Elementary Cryptanalysis. Math. Assoc. Am. 1966.\n  [WEL82] Gordon Welchman, The Hut Six Story. McGraw-Hill, 1982.\n  [YARDL] Herbert O. Yardley, The American Black Chamber. Aegean Park\n          Press, ?.\n\n* Books on modern methods\n\n  [BEK82] H. Beker, F. Piper, Cipher Systems. Wiley, 1982.\n  [BRA88] G. Brassard, Modern Cryptology: a tutorial.\n          Spinger-Verlag, 1988.\n  [DEN82] D. Denning, Cryptography and Data Security. Addison-Wesley\n          Publishing Company, 1982.\n  [KOB89] N. Koblitz, A course in number theory and cryptography.\n          Springer-Verlag, 1987.\n  [KON81] A. Konheim, Cryptography: a primer. Wiley, 1981.\n  [MEY82] C. Meyer and S. Matyas, Cryptography: A new dimension in\n          computer security. Wiley, 1982.\n  [PAT87] Wayne Patterson, Mathematical Cryptology for Computer\n          Scientists and Mathematicians. Rowman & Littlefield, 1987.\n  [PFL89] C. Pfleeger, Security in Computing. Prentice-Hall, 1989.\n  [PRI84] W. Price, D. Davies, Security for computer networks. Wiley, 1984. \n  [RUE86] R. Rueppel, Design and Analysis of Stream Ciphers.\n          Springer-Verlag, 1986.\n  [SAL90] A. Saloma, Public-key cryptography. Springer-Verlag, 1990.\n  [WEL88] D. Welsh, Codes and Cryptography. Claredon Press, 1988.\n\n* Survey articles\n\n  [ANG83] D. Angluin, D. Lichtenstein, Provable Security in Crypto-\n          systems: a survey. Yale University, Department of Computer\n          Science, #288, 1983.\n  [BET90] T. Beth, Algorithm engineering for public key algorithms.\n          IEEE Selected Areas of Communication, 1(4), 458--466,\n          1990.\n  [DAV83] M. Davio, J. Goethals, Elements of cryptology. in Secure\n          Digital Communications, G. Longo ed., 1--57, 1983.\n  [DIF79] W. Diffie, M. Hellman, Privacy and Authentication: An\n          introduction to cryptography. IEEE proceedings, 67(3),\n          397--427, 1979.\n  [DIF88] W. Diffie, The first ten years of public key cryptography.\n          IEEE proceedings, 76(5), 560--577, 1988.\n  [FEI73] H. Feistel, Cryptography and Computer Privacy. Scientific \n          American, 228(5), 15--23, 1973.\n  [FEI75] H. Feistel, H, W. Notz, J. Lynn Smith. Some cryptographic\n          techniques for machine-to-machine data communications,\n          IEEE IEEE proceedings, 63(11), 1545--1554, 1975.\n  [HEL79] M. Hellman, The mathematics of public key cryptography.\n          Scientific American, 130--139, 1979.\n  [LAK83] S. Lakshmivarahan, Algorithms for public key\n          cryptosystems. In Advances in Computers, M. Yovtis ed.,\n          22, Academic Press, 45--108, 1983.\n  [LEM79] A. Lempel, Cryptology in transition, Computing Surveys,\n          11(4), 285--304, 1979.\n  [MAS88] J. Massey, An introduction to contemporary cryptology, IEEE\n          proceedings, 76(5), 533--549, 1988.\n  [SIM91] G. Simmons (ed.), Contemporary Cryptology: the Science of\n          Information Integrity. IEEE press, 1991.\n\n* Reference articles\n\n  [AND83] D. Andelman, J. Reeds, On the cryptanalysis of rotor and\n          substitution-permutation networks. IEEE Trans. on Inform.\n          Theory, 28(4), 578--584, 1982.\n  [BEN87] John Bennett, Analysis of the Encryption Algorithm Used in\n          the WordPerfect Word Processing Program. Cryptologia 11(4),\n          206--210, 1987.\n  [BER91] H. A. Bergen and W. J. Caelli, File Security in WordPerfect\n          5.0. Cryptologia 15(1), 57--66, January 1991.\n  [BIH91] E. Biham and A. Shamir, Differential cryptanalysis of\n          DES-like cryptosystems. Journal of Cryptology, vol. 4, #1,\n          3--72, 1991.\n  [BI91a] E. Biham, A. Shamir, Differential cryptanalysis of Snefru,\n          Khafre, REDOC-II, LOKI and LUCIFER. In Proceedings of CRYPTO\n          '91, ed. by J. Feigenbaum, 156--171, 1992.\n  [BOY89] J. Boyar, Inferring Sequences Produced by Pseudo-Random\n          Number Generators. Journal of the ACM, 1989.\n  [BRI86] E. Brickell, J. Moore, M. Purtill, Structure in the\n          S-boxes of DES. In Proceedings of CRYPTO '86, A. M. Odlyzko\n          ed., 3--8, 1987.\n  [BRO89] L. Brown, A proposed design for an extended DES, Computer\n          Security in the Computer Age. Elsevier Science Publishers\n          B.V. (North Holland), IFIP, W. J. Caelli ed., 9--22, 1989.\n  [BRO90] L. Brown, J. Pieprzyk, J. Seberry, LOKI - a cryptographic\n          primitive for authentication and secrecy applications.\n          In Proceedings of AUSTCRYPT 90, 229--236, 1990.\n  [CAE90] H. Gustafson, E. Dawson, W. Caelli, Comparison of block\n          ciphers. In Proceedings of AUSCRYPT '90, J. Seberry and J.\n          Piepryzk eds., 208--220, 1990.\n  [CAM93] K. W. Campbell, M. J. Wiener, Proof the DES is Not a Group.\n          In Proceedings of CRYPTO '92, 1993.\n  [ELL88] Carl M. Ellison, A Solution of the Hebern Messages. Cryptologia,\n          vol. XII, #3, 144-158, Jul 1988.\n  [EVE83] S. Even, O. Goldreich, DES-like functions can generate the\n          alternating group. IEEE Trans. on Inform. Theory, vol. 29,\n          #6, 863--865, 1983.\n  [GAR91] G. Garon, R. Outerbridge, DES watch: an examination of the\n          sufficiency of the Data Encryption Standard for financial\n          institutions in the 1990's. Cryptologia, vol. XV, #3,\n          177--193, 1991.\n  [GIL80] Gillogly, ?. Cryptologia 4(2), 1980.\n  [GM82]  Shafi Goldwasser, Silvio Micali, Probabilistic Encryption and\n\t  How To Play Mental Poker Keeping Secret All Partial Information.\n\t  Proceedings of the Fourteenth Annual ACM Symposium on Theory of\n\t  Computing, 1982.\n  [HUM83] D. G. N. Hunter and A. R. McKenzie, Experiments with\n          Relaxation Algorithms for Breaking Simple Substitution\n          Ciphers. Computer Journal 26(1), 1983.\n  [KAM78] J. Kam, G. Davida, A structured design of substitution-\n          permutation encryption networks. IEEE Trans. Information\n          Theory, 28(10), 747--753, 1978.\n  [KIN78] P. Kinnucan, Data encryption gurus: Tuchman and Meyer.\n          Cryptologia, vol. II #4, 371--XXX, 1978.\n  [KRU88] Kruh, ?. Cryptologia 12(4), 1988.\n  [LAI90] X. Lai, J. Massey, A proposal for a new block encryption \n          standard. EUROCRYPT 90, 389--404, 1990.\n  [LUB88] C. Rackoff, M. Luby, How to construct psuedorandom\n          permutations from psuedorandom functions. SIAM Journal of\n          Computing, vol. 17, #2, 373--386, 1988.\n  [MAS88] J. Massey, An introduction to contemporary cryptology.\n          IEEE proceedings, 76(5), 533--549, 1988.\n  [ME91a] R. Merkle, Fast software encryption functions. In Proceedings\n          of CRYPTO '90, Menezes and Vanstone ed., 476--501, 1991.\n  [MEY78] C. Meyer, Ciphertext/plaintext and ciphertext/key\n          dependence vs. number of rounds for the Data Encryption\n          Standard. AFIPS Conference proceedings, 47, 1119--1126,\n          1978.\n  [NBS77] Data Encryption Standard. National Bureau of Standards,\n          FIPS PUB 46, Washington, DC, January 1977.\n  [REE77] J. Reeds, `Cracking' a Random Number Generator.\n          Cryptologia 1(1), 20--26, 1977.\n  [REE84] J. A. Reeds and P. J. Weinberger, File Security and the UNIX\n          Crypt Command. AT&T Bell Laboratories Technical Journal,\n          Vol. 63 #8, part 2, 1673--1684, October, 1984.\n  [SHA49] C. Shannon, Communication Theory of Secrecy Systems. Bell\n          System Technical Journal 28(4), 656--715, 1949.\n  [SHE88] B. Kaliski, R. Rivest, A. Sherman, Is the Data Encryption\n          Standard a Group. Journal of Cryptology, vol. 1, #1,\n          1--36, 1988.\n  [SHI88] A. Shimizu, S. Miyaguchi, Fast data encipherment algorithm\n          FEAL. EUROCRYPT '87, 267--278, 1988.\n  [SOR84] A. Sorkin, LUCIFER: a cryptographic algorithm.\n          Cryptologia, 8(1), 22--35, 1984.\n\t\n* Journals, conference proceedings\n\n  CRYPTO\n  Eurocrypt\n  IEEE Transactions on Information Theory\n  Cryptologia: a cryptology journal, quarterly since Jan 1977.\n          Cryptologia; Rose-Hulman Institute of Technology; Terre Haute\n          Indiana 47803 [general: systems, analysis, history, ...]\n  Journal of Cryptology; International Association for Cryptologic\n          Research; published by Springer Verlag (quarterly since\n          1988).\n  The Cryptogram (Journal of the American Cryptogram Association);\n          18789 West Hickory Street; Mundelein, IL 60060; [primarily\n          puzzle cryptograms of various sorts]\n  Cryptosystems Journal, Published by Tony Patti, P.O. Box 188,\n          Newtown PA, USA 18940-0188 or tony_s_patti@cup.portal.com.\n\t  Publisher's comment: Includes complete cryptosystems with\n\t  source and executable programs on diskettes. Tutorial. The\n\t  typical cryptosystems supports multi-megabit keys and Galois\n\t  Field arithmetic. Inexpensive hardware random number\n\t  generator details.\n\n  Computer and Communication Security Reviews, published by Ross Anderson.\n\t  Sample issue available from various ftp sites, including\n\t  black.ox.ac.uk.  Editorial c/o rja14@cl.cam.ac.uk.  Publisher's\n\t  comment: We review all the conference proceedings in this field,\n\t  including not just Crypto and Eurocrypt, but regional gatherings\n\t  like Auscrypt and Chinacrypt. We also abstract over 50 journals,\n\t  and cover computer security as well as cryptology, so readers can\n\t  see the research trends in applications as well as theory.\n\n* Other\n\n  Address of note: Aegean Park Press, P.O. Box 2837, Laguna Hills, CA\n  92654-0837. Answering machine at 714-586-8811.\n\n  The ``Orange Book'' is DOD 5200.28-STD, published December 1985 as\n  part of the ``rainbow book'' series. Write to Department of Defense,\n  National Security Agency, ATTN: S332, 9800 Savage Road, Fort Meade, MD\n  20755-6000, and ask for the Trusted Computer System Evaluation\n  Criteria. Or call 301-766-8729.\n\n  [BAMFD] Bamford, The Puzzle Palace. Penguin Books, ?.\n  [GOO83] I. J. Good, Good Thinking: the foundations of probability and\n          its applications. University of Minnesota Press, 1983.\n  [KNU81] D. E. Knuth, The Art of Computer Programming, volume 2:\n          Seminumerical Algorithms. Addison-Wesley, 1981.\n  [KUL68] Soloman Kullbach, Information Theory and Statistics.\n          Dover, 1968.\n  [YAO88] A. Yao, Computational Information Theory. In Complexity in\n          Information Theory, ed. by Abu-Mostafa, 1988.\n\n* How may one obtain copies of FIPS and ANSI standards cited herein?\n\n  Many textbooks on cryptography contain complete reprints of the FIPS\n  standards, which are not copyrighted.\n\n  The following standards may be ordered from the\n      U.S. Department of Commerce, National Technical Information Service,\n      Springfield, VA 22161.\n\n      FIPS PUB 46-1 \"Data Encryption Standard\"  (this is DES)\n      FIPS PUB 74   \"Guidelines for Implementing as Using the NBS DES\"\n      FIPS PUB 81   \"DES Modes of Operation\"\n      FIPS PUB 113  \"Computer Data Authentication\" (using DES)\n\n  The following standards may be ordered from the\n      American National Standards Institute Sales Office,\n      1430 Broadway, New York, NY 10018.\n      Phone 212.642.4900\n\n      ANSI X3.92-1981  \"Data Encryption Algorithm\" (identical to FIPS 46-1)\n      ANSI X3.106-1983 \"DEA Modes of Operation\"    (identical to FIPS 113)\n\n  Notes:  Figure 3 in FIPS PUB 46-1 is in error, but figure 3 in X3.92-1981\n      is correct.  The text is correct in both publications.\n\n\n* Electronic sources\n\n  Anonymous ftp:\n\n  [FTPBK] ftp.uu.net:bsd-sources/usr.bin/des/\n  [FTPCB] ftp.uu.net:usenet/comp.sources.unix/volume10/cbw/\n  [FTPDF] ftp.funet.fi:pub/unix/security/destoo.tar.Z\n  [FTPEY] ftp.psy.uq.oz.au:pub/DES/\n  [FTPMD] rsa.com:?\n  [FTPMR] cl-next3.cl.msu.edu:pub/crypt/newdes.tar.Z\n  [FTPOB] ftp.3com.com:Orange-book\n  [FTPPF] prep.ai.mit.edu:pub/lpf/\n  [FTPPK] ucsd.edu:hamradio/packet/tcpip/crypto/des.tar.Z\n  [FTPRF] nic.merit.edu:documents/rfc/\n  [FTPSF] beta.xerox.com:pub/hash/\n  [FTPSO] chalmers.se:pub/des/des.1.0.tar.Z\n  [FTPUF] ftp.uu.net:usenet/comp.sources.unix/volume28/ufc-crypt/\n  [FTPWP] garbo.uwasa.fi:pc/util/wppass2.zip\n\n* RFCs (available from [FTPRF])\n\n\n1424  Kaliski, B.  Privacy Enhancement for Internet Electronic Mail: Part IV:\n      Key Certification and Related Services.  1993 February; 9 p. (Format:\n      TXT=17538 bytes)\n\n1423  Balenson, D.  Privacy Enhancement for Internet Electronic Mail: Part\n      III: Algorithms, Modes, and Identifiers.  1993 February; 14 p. (Format:\n      TXT=33278 bytes)  (Obsoletes RFC 1115)\n\n1422  Kent, S.  Privacy Enhancement for Internet Electronic Mail: Part II:\n      Certificate-Based Key Management.  1993 February; 32 p. (Format:\n      TXT=86086 bytes)  (Obsoletes RFC 1114)\n\n1421  Linn, J.  Privacy Enhancement for Internet Electronic Mail: Part I:\n      Message Encryption and Authentication Procedures.  1993 February; 42 p.\n      (Format: TXT=103895 bytes)  (Obsoletes RFC 1113)\n\n\n* Related newsgroups\n\n  There are other newsgroups which a sci.crypt reader might want also to\n  read.  Some have their own FAQ as well.\n\n  alt.comp.compression\t\tdiscussion of compression algorithms and code\n  alt.security\t\t\tgeneral security discussions\n  alt.security.index\t\tindex to alt.security\n  alt.security.pgp\t\tdiscussion of PGP\n  alt.security.ripem\t\tdiscussion of RIPEM\n  alt.society.civil-liberty\tgeneral civil liberties, including privacy\n  comp.org.eff.news\t\tNews reports from EFF\n  comp.org.eff.talk\t\tdiscussion of EFF related issues\n  comp.patents\t\t\tdiscussion of S/W patents, including RSA\n  comp.risks\t\t\tsome mention of crypto and wiretapping\n  comp.society.privacy\t\tgeneral privacy issues\n  comp.security.announce\tannouncements of security holes\n  misc.legal.computing\t\t\n  sci.math\t\t\tgeneral math discussion\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9904, "properties": {"category": "rec.sport.baseball", "text": "From: jrogoff@scott.skidmore.edu (jay rogoff)\nSubject: Box score abbrev woes\nOrganization: Skidmore College, Saratoga Springs NY\nLines: 7\n\nCan anybody figure out why some box score abbreviations make\nabsolutely no sense?  (At least in the local Gannett rag that finds its way\nto my door.)  I must have stared at \"Cleman\" in the Mets' box for a\ngood 30 seconds this morning wondering who the hell it was.  Wouldn't\nit make more sense to use \"Colemn\"?\n\nJay\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9905, "properties": {"category": "sci.med", "text": "From: sasghm@theseus.unx.sas.com (Gary Merrill)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOriginator: sasghm@theseus.unx.sas.com\nNntp-Posting-Host: theseus.unx.sas.com\nOrganization: SAS Institute Inc.\nLines: 16\n\n\nIn article <1993Apr15.161112.21772@cs.rochester.edu>, fulk@cs.rochester.edu (Mark Fulk) writes:\n\n|> I don't think \"extra-scientific\" is a very useful phrase in a discussion\n|> of the boundaries of science, except as a proposed definiens.  Extra-rational\n|> is a better phrase.  In fact, there are quite a number of well-known cases\n|> of extra-rational considerations driving science in a useful direction.\n\nYeah, but the problem with holding up the \"extra-rational\" examples as\nexemplars, or as refutations of well founded methodology, is that you\nrun smack up against such unuseful directions as Lysenko.  Such \"extra-\nrational\" cases are curiosities -- not guides to methodology.\n-- \nGary H. Merrill  [Principal Systems Developer, C Compiler Development]\nSAS Institute Inc. / SAS Campus Dr. / Cary, NC  27513 / (919) 677-8000\nsasghm@theseus.unx.sas.com ... !mcnc!sas!sasghm\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9906, "properties": {"category": "rec.sport.hockey", "text": "From: Robert Angelo Pleshar <rp16+@andrew.cmu.edu>\nSubject: Re: How to beat Pittsburgh!\nOrganization: University Libraries - E&S Library, Carnegie Mellon, Pittsburgh, PA\nLines: 19\n\t<kfnJYea00Uh_I1VmUs@andrew.cmu.edu>\nNNTP-Posting-Host: po5.andrew.cmu.edu\nIn-Reply-To: <kfnJYea00Uh_I1VmUs@andrew.cmu.edu>\n\nfrom Anna Matyas:\n>>Now if we could just clone Chelios's personality and transplant it\n>>into all of the defensemen on the Islanders, Capitals, and Devils...\n>> \n>>Gerald\n> \n>In other words, you want to turn them all into assholes so they\n>will spend lots of time in the penalty box and get lots of\n>misconducts?\n> \n>And this comes from a Chelios fan...\n\nYeah, and also be second in the team in scoring and play about 35\nminutes a game and play on the power play and kill penalties and be the\nbest defenseman in the league. I'd take a whole team of Chelioses if I\ncould. (That way, when one got a penalty the others could kill it!)\n\nRalph\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9907, "properties": {"category": "talk.politics.mideast", "text": "From: astein@nysernet.org (Alan Stein)\nSubject: Re: Israeli Terrorism\nOrganization: NYSERNet, Inc.\nLines: 20\n\ncl056@cleveland.Freenet.Edu (Hamaza H. Salah) writes:\n\n>>Would you tell me which Arab country is prohipiting the Jews from\n>>migrating to Palestine?\n\n>the last arab country was syria. but not all of them\n>migrated due to the jewish state economical and \n>securital dilemma!\n\nAs usual, when Salah is not totally racist, she manages to get\nvirtually all the facts wrong.\n\nAssad pledged to allow Jews to leave Syria, but not to go to Israel.\n\nUnfortunately, not all of them have escaped yet, but not because they\ndon't want to leave;  rather, Assad went back on his word and stopped\nissuing travel permits.  He claimed bureaucratic snags, but everyone\nknows it was a tactic to pressure Israel.\n-- \nAlan H. Stein                     astein@israel.nysernet.org\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9908, "properties": {"category": "comp.windows.x", "text": "From: smikes@topgun (Steven Mikes)\nSubject: Re: Xlib for MS/WINDOWS not an XSERVER!!!\nOrganization: UN*X Technologies\nLines: 15\n\nAnother company, Congruent Corporation of New York City, has also ported Xlib\nXt and Motif 1.1 over to MS Windows NT, which provides full client development\nfor X applications in an NT environment.\n\nIf you are porting InterViews over to MS Windows, I thought InterViews was\na C++ toolkit with C++ classes. If that is so, how can it be built on Xlib,\nunless the classes are calling Xlib functions?\n\nSteve\n\n-- \n      Steven Mikes - Editor - The X Journal\n        1097 Eastbrook Rd., Martinsville, NJ 08836\n         OFFICE: 908.563.9033 - FAX: 908.560.8635\n          \"Serving The X Window System Community\"\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9909, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jbailey@world.std.com (jim bailey)\nSubject: Re: Quadra 900/950\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 26\n\nhades@coos.dartmouth.edu (Brian V. Hughes) writes:\n\n>jbailey@world.std.com (jim bailey) writes:\n\n>>b-clark@nwu.edu (Brian Clark) writes:\n\n>>>Quarda 900 is a popular misspelling of Quadra 900, which has a 25 MHz 040\n>>>processor. The 950 has a 33 MHz 040, and some local buses on the\n>>>motherboard run faster.\n\n>>The video is different also.  The 950 can run a 13\" and I believe a 16\"\n>>monitor in 16 bit color without a VRAM upgrade.\n\n>    Actually, you could put as much VRAM into a Q900 as you want and you\n>still won't be able to get 16-bit color, on any monitor. It's not part\n>of the on-board video. The Q950, however, can use 16-bit video on\n>monitors up to 19\" with 2MB of VRAM.\n\n>-Hades\n\n\nYes, but if you upgrade the VRAM in a 900 you get 24 bit color.  So\nyou really don't care.  My point is that out the box the 950 has\nmore video capability for the same size monitors.  The 900 can\ndo 24 bit with both 13\" and 16\", doesn't support 19\", and\ndoes 8 bit on 21\" monitors.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9910, "properties": {"category": "misc.forsale", "text": "Subject: Contax camera system for sale\nFrom: joltes@husc10.harvard.edu (Richard Joltes)\nDistribution: usa\nOrganization: Harvard University Science Center\nNntp-Posting-Host: husc10.harvard.edu\nLines: 24\n\nThis is posted for a friend who doesn't have net access...you can send replies\nto me, but I'll be out of my office all next week, so don't expect a response\nuntil at least 4/27!\n\nFor sale:  Contax camera system\n\nIncludes:  Contax 139 quartz SLR body\n\t   50mm f1.7 Zeiss (!) Planna Lens\n\t   135mm f2.8 Yashica Lens\n\t   Medium-sized hard case\n\nAll items are in exceptional condition.  \n\nAsking price:  $175 for all items listed above.  The seller is attempting to\nsell the lot as a set, but you can negotiate that with him.\n\n--------------------------------------------------------------------------------\nDick Joltes\t\t\t\t\t\tjoltes@husc.harvard.edu\nHardware & Networking Manager, Computer Services \tjoltes@husc.bitnet \nHarvard University Science Center\n\n\"Any woman that you become extremely attracted to will immediately tell you\nthat you're the best friend a woman could ever have.\"  -- David Crist\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9911, "properties": {"category": "talk.politics.misc", "text": "From: elliott@optilink.COM (Paul Elliott)\nSubject: Re: A loathesome subject\nSummary: Why the \"quote marks\", Roy?\nOrganization: DSC/Optilink Access Products\nLines: 33\n\nIn article <C4y3DD.L1n@panix.com> roy@panix.com (Roy Radow) writes:\n>Anyone with any degree of sensitivity or awareness has to be  \n>concerned about the horrendous amount of \"child abuse\" that \n>exists in this country. [...]\n>\n>The critical factor here is whether the sexual activity is \"forced\"  [...]\n>\n>When a child is \"forced\" there is often \"damage\", on the other hand,\n>\"consensual\" relationships are often found to be \"positive experiences\" \n>for all concerned. [...]\n>\n>Roy Radow               roy@panix.com         ...rutgers!cmcl2!panix!roy\n>North American Man/Boy Love Association -For a packet containing a sample\n\nWhy all the quote marks, Roy?  I can see that they might be appropriate where\nthere is a legitimate concern that the words are being distorted by context, \nor that they have been appropriated Newspeak-style, but, reading your comments above,\none might be excused if they assumed that you were claiming that \"child abuse\",\n\"forced\" sexual activity, and \"damage\" caused by this is non-existant or\ngreatly overblown.\n\n\"Positive experiences\", indeed!\n\n-Paul Elliott\n(Member in good standing of the Optilink Mafia)\n\n\n\n-- \n--------     Paul Elliott - DSC Optilink - Petaluma, CA USA      ----------\n    {uunet,pyramid,tekbspa}!optilink!elliott -or- elliott@optilink.com\n       \"I used to think I was indecisive, but now I'm not so sure.\"\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9912, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nLines: 22\n\n: From: brad@optilink.COM (Brad Yearwood)\n\n: Assume in this case the usual canard-adversary of narcotraficantes.  They\n: probably have more cash than the KGB did, and they're probably more generous\n: at handing it out.  It will be easier than ever to find or cultivate Walkers\n: and Pollards for the keys, and it will be easy enough to find someone to\n: reverse-engineer the chip (unless the tamper proofing is damned clever and\n: effective).\n\nIf the administration *really* believes big-time drug dealers are the threat\n(personally I thought it was the CIA and the air force that did all the real\ndrug shipping :-) ) then they *ought* to take this seriously: unlike the\nKGB, drug dealers can make a most convincing argument for cooperation: \"help\nus and we'll be nice and give you some money, don't help us and we'll start\ncutting off your favourite body parts\"\n\nAfter all, it was probably an argument like that that persuaded Jack Ruby to\nshoot Oswald in full view of the police.  Life in jail probably seems much\nmore preferable to most people than several weeks of something nasty\nfollowed by no life at all...\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9913, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kerr@ux1.cso.uiuc.edu (Stan Kerr)\nSubject: Re: Sigma Designs Double up??\nArticle-I.D.: ux1.C52u8x.B62\nOrganization: University of Illinois at Urbana\nLines: 29\n\njap10@po.CWRU.Edu (Joseph A. Pellettiere) writes:\n\n\n>\tI am looking for any information about the Sigma Designs\n>\tdouble up board.  All I can figure out is that it is a\n>\thardware compression board that works with AutoDoubler, but\n>\tI am not sure about this.  Also how much would one cost?\n\nI've had the board for over a year, and it does work with Diskdoubler,\nbut not with Autodoubler, due to a licensing problem with Stac Technologies,\nthe owners of the board's compression technology. (I'm writing this\nfrom memory; I've lost the reference. Please correct me if I'm wrong.)\n\nUsing the board, I've had problems with file icons being lost, but it's\nhard to say whether it's the board's fault or something else; however,\nif I decompress the troubled file and recompress it without the board,\nthe icon usually reappears. Because of the above mentioned licensing\nproblem, the freeware expansion utility DD Expand will not decompress\na board-compressed file unless you have the board installed.\n\nSince Stac has its own product now, it seems unlikely that the holes\nin Autodoubler/Diskdoubler related to the board will be fixed.\nWhich is sad, and makes me very reluctant to buy Stac's product since\nthey're being so stinky. (But hey, that's competition.)\n-- \n\nStan Kerr    \nComputing & Communications Services Office, U of Illinois/Urbana\nPhone: 217-333-5217  Email: stankerr@uiuc.edu   \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9914, "properties": {"category": "rec.sport.baseball", "text": "From: jerry@sheldev.shel.isc-br.com (Gerald Lanza)\nSubject: Re: Seeking Moe Berg reference/info\nOrganization: Olivetti North America (Shelton, CT)\nLines: 23\n\nIn article <8813@blue.cis.pitt.edu> dtate+@pitt.edu (David M. Tate) writes:\n>I seem to have misplaced the baseball bibliography that was posted here\n>recently.  (That's what happens when you have to split a heap of disorganized\n>files from one machine among two others.)  Could some kind soul repost the\n>bibliography, or mail me a copy?\n>\n>Also, in particular, a colleague of mine is looking for any information he\n>can find on Moe Berg, catcher/linguist/espion of WW2.  Any references (or\n>anecdotes, for that matter) would be appreciated.\n>\n>Dave\n>\n\tI believe SI had an in-depth article on Moe a while ago. I remember\n\tthat the article revealed some new facts regarding the secretive\n\tMoe. My SI subscription expired this past February, the second of\n\ttwo years that I received same. Therefore my guess is that the\n\tarticle appeared sometime in 1991-92. \n\n\tCan anyone else be more definitive as to a date of the SI article ?\n\n\n\t\t\t\t\t\tjerry\n \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.466+0000", "event": "documents", "entityId": 9915, "properties": {"category": "talk.politics.misc", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: My Gun is like my American Express Car\nLines: 137\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <1993Apr14.195912.16613@grace.rt.cs.boeing.com> rwojcik@atc.boeing.com (Richard Wojcik) writes:\n\n>In article 734629856@misty, john@anasazi.com (John R. Moore) writes:\n>>papresco@undergrad.math.uwaterloo.ca (Paul Prescod) writes:\n>>\n>>]I'm not.  I'm in Canada.  We have far fewer shootings like this.  We have\n>>]had, I believe, one mass murder in the last twenty years.\n>>\n>>]I'm not going to say we don't have our gun problems.  But we do have the\n>>]world's largest undefended boarder with one of the most gun-happy countries \n>>]in the world.  I think Canada illustrates that gun control does have an \n>>]effect.  In fact, it's suprising that there is any difference considering\n>>]how easy it is to smuggle a gun from the U.S.\n>>\n>>Yes, it's amazing, isn't it. In fact, it should tell you that gun control\n>>is NOT the reason your crime rate is low, since any idiot can smuggle guns\n>>into Canada from the US at any time.\n>\n>I think Paul was trying to make the point that \"any idiot\" doesn't.  There are\n>surely some idiots who do smuggle guns, but Paul seems to feel that the exis-\n>tence of stricter gun control laws has had a deterrent effect.  \n\n       This seems a strange argument to make considering that Canada's\nviolent crime rate in general is far lower than that of the U.S.  (Our\nnon-gun crime rate is greater than their *entire* crime rate).  It\nwould seem strange to suggest that it, to, were the result of gun\ncontrol laws.\n\n       I think if we looked we'd find very specific (cultural and\nenforcement) reasons why the non-gun rate is low as well, and then\nthat reasons could be applied to the with-gun rates as easily.\n\n>Given that most\n>criminally used guns are either legally purchased or stolen from those who\n>purchase them legally, having more restrictions on legal possession does \n>seem to have the effect of reducing gun-related crimes.  \n\n       Aside from the fact that I find the idea of being punished\nbecause somebody might steal something from me and go and commit a\ncrime with it a silly solution, it still doesn't address the\nquestion of Canada.  (Which is now, by the way, blaming their rising\ngun-crime rate on the U.S.  Strange that the border used to \"magically\"\nkeep the guns out, but now isn't.)\n\n>It certainly makes\n>sense that it would.  (Well, it makes sense to some of us, anyway.  ;-)\n\n       The other side of the coin, of course, is that far \"illegal drugs\"\nare purchases legally or stolen from people who purchase them legally. \nI've still not been convinced that guns, a commodity which criminals\nhave shown their perfectly willing to pay for from illegal sources\n(stolen either from police, military, or civilian) we wouldn't simply\nsee South American sources from which drugs come start smuggling guns as\nwell, since there's a thriving gun manufacturing industry down there.\n\n>>If you would just look a little closer at the crime statistics, you would\n>>realize that:\n>>  -our non-gun crime rate is also very high, so guns per se are not the issue\n>\n>Directly contradicted by the NEJM study that compared crime in Seattle and\n>Vancouver, B.C.  The non-gun rates were roughly the same for both cities.  The\n>difference in violent crime rates was almost totally gun-related.  \n\n        And as was not pointed out in the study, but in critiques\nof it, (two seperate articles by James Wright and David Kopel come\nto mind) it was pointed out that the difference was *also* almost\nentirely minority related.  That is, the gun crime rate skyrocketed\nfor poor minorities (Blacks and Hispanics primarily) while when you\ncompared the white majority they were virutally identical.\n\n        The problem with the NEJM study was they compared minority vs.\nnon-minority percentages but failed to take into account the relative\nconditions of those minorities.  That there was an eqaul percentage of\nnomn-whites was about as far as they went.  They failed to take into\naccount that the non-whites in either city were not living in the\nsame conditions.\n\n        If the situation was entirely based on availability of guns,\nthen we'd expect that the white rates, the two groups which are\narguably fairly comparative in the two cities, would have a far\nhigher rate in Seattle.  Yet the majority in Seattle is not only\nnot significantly higher when the minorities are excluded, but slightly\nlower.\n\n>>  -violent crime is highly concentrated in the inner city\n>\n>Surprise.  Pick the area with the highest incidence of poverty, drug use, disease,\n>etc.  Since rates are lower in suburbia, us middle class folks can ignore the\n>problem.\n\n\n       The point is, of course, that many of the U.S. \"inner-city\"\nproblems are not mirrored in Canada.  As such  if there is a condition\nwhich is significantly different in Canada from the U.S., and violent\ncrime is highly correlated to that area, suggesting that gun control\nis the source of Canada's low rate is highly questionable.  (As one\nCanadian pointed out on talk.politics.guns, Canada's major gun control\nin 1978 did not result in either a reduction or a slowing of an increase\nin violent crime rates, which have been rising steadily since.  Apparently\nthey didn't even mirror the U.S.s very large drop of violent crime in\nthe early eighties.\n\n>>  -most violent crime occurs in areas with strict gun control already\n>\n>Post hoc ergo propter hoc.  Those areas implemented gun control because of\n>the high rates.  \n\n       True only to a certain extent.  Take Washington D.C., where\ngun control was instituted while it had crime problems true, but that\ncrime proceeded to explode afterwards.  Similarly for New York.\n\n       The question is not simply a point in time where crime was high\nor low.  Did the gun control significantly and positively impact\nviolent crime.  Since it's gone up in those areas, often faster than it\nwas going up before, you can't simply dismiss the high crime rate by\nsaying gun control was caused by it.  Yes, gun control may be instituted\nto deal with high crime.  But if the crime is not positively impacted, you\ncan't continually say that that crime rate was entirely a cause of\nthat gun control, since much of that crime rate increased after gun control\nwas implemented, just as happened in Canada.\n\n>Similar or worse rates exist in cities with poor gun control.\n\n       As would be expected if violent crime was generally independent\nof gun control.\n\n>And the jury is still out on the question of whether recent tough laws in \n>Washington D.C. may have alleviated violence and suicide rates there.\n\n       Would this be the laws which made manufacturers liable for what\nothers did with their guns, and suddenly the police found nobody would\nsell to them?\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9916, "properties": {"category": "rec.motorcycles", "text": "From: coburnn@spot.Colorado.EDU (Nicholas S. Coburn)\nSubject: Re: bikes with big dogs\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 19\n\nIn article <1993Apr14.234835.1@cua.edu> 84wendel@cua.edu writes:\n>Has anyone ever heard of a rider giving a big dog such as a great dane a ride \n>on the back of his bike.  My dog would love it if I could ever make it work.\n>\tThanks\n>\t\t\t84wendel@cua.edu\n>\n\nOn the back might be tricky, but here in Boulder, there is a guy \nthat can always be seen with his Golden Retriever in the sidecar.\nOf course, the dog is always wearing WWII style goggles (no joke)\n\n\n________________________________________________________________________\nNick Coburn                     DoD#6425                      AMA#679817\n                  '88CBR1000              '89CBR600\n                       coburnn@spot.colorado.edu\n________________________________________________________________________\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9917, "properties": {"category": "alt.atheism", "text": "Subject: Re: Concerning God's Morality (long)\nFrom: J5J@psuvm.psu.edu (John A. Johnson)\n <1993Apr3.095220.24632@leland.Stanford.EDU><1993Apr5.084042.822@batman.bmd.trw.com>\nOrganization: Penn State University\nLines: 48\n\nIn article <1993Apr5.084042.822@batman.bmd.trw.com>, jbrown@batman.bmd.trw.com\nresponds to a lot of grief given to him\n>In article <1993Apr3.095220.24632@leland.Stanford.EDU>,\n>galahad@leland.Stanford.EDU (Scott Compton)\na.k.a. \"The Sagemaster\"\n[ . . .]\n>But then I ask, So?  Where is this relevant to my discussion in\n>answering John's question of why?  Why are there genetic diseases,\n>and why are there so many bacterial and viral diseases which require\n>babies to develop antibodies.  Is it God's fault? (the original\n>question) -- I say no, it is not.\n\nMost of Scotty's followup *was* irrelevant to the original question,\nbut this is not unusual, as threads often quickly evolve away from\nthe original topic.  What I could not understand is why Jim spent so\nmuch time responding to what he regarded as irrelevancies.\n\n[ . . . ]\n>> May I ask, where is this 'collective' bullcrap coming from?\n[ . . . ]\n>\n>By \"collective\" I was referring to the idea that God works with\n>humanity on two levels, individually and collectively.  If mankind\n>as a whole decides to undertake a certain action (the majority of\n>mankind),\n\nWell, I guess hypothetical Adam was \"the majority of mankind\"\nseeing how he was the ONLY man at the time.\n\n>then God will allow the consequences of that action to\n>affect mankind as a whole.  If you didn't understand that, then I\n>apologize for not using one and two syllable words in my discussion.\n\nI understand what you mean by \"collective,\" but I think it is an\ninsane perversion of justice.  What sort of judge would punish the\ndescendants for a crime committed by their ancestor?\n\n>If you want to be sure that I read your post and to provide a\n>response, send a copy to Jim_Brown@oz.bmd.trw.com.  I can't read\n>a.a. every day, and some posts slip by.  Thanks.\n\nWell, I must admit that you probably read a.a. more often than I read\nthe Bible these days.  But you missed a couple of good followups to\nyour post.  I'm sending you a personal copy of my followup which I\nhope you will respond to publically in a.a.\n\nJohn\nThe Sageless\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9918, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mike@drd.com (Mike.Rovak)\nSubject: Re: workaround for Citizen drivers\nKeywords: printer driver Citizen PN48 GSX-140\nOrganization: DRD Corporation\nLines: 43\n\nIn article <1993Apr26.185033.12279@drd.com> mike@drd.com (Mike.Rovak) writes:\n>I have been experiencing several end-user problems with various commercial\n>software packages (WordPerfect 5.2/WIN, Publish It!/WIN 3.1) and printing\n>landscape mode on a Citizen PN48 (the little guy) or the Citizen GSX-140+.\n>\n>In a nutshell the problem is that I lose the first 0.625 inches of\n>information from my left margin, be it white space or TrueType font\n>output, and margins are not preserved on subsequent pages past the\n>first.\n>\n>WordPerfect had a workaround consisting of using the \"Default\" location\n>for the printers instead of \"Tractor\" or \"Manual\".  They have also filed\n>this as a bug and are continuing to investigate it.\n>\n>MS Write, of course, has no problem with these printer drivers, proving that\n>Microsoft knows something the rest of us don't!  Are you surprised?  I'm\n>not.\n>\n>Publish It!/WIN is still investigating this problem, and while I was consider-\n>my options (rejecting the one about buying an $800 DTP package, for *surely*\n>they wouldn't have this problem, right?) I stumbled onto a global workaround.\n>\n>WORKAROUND\n>----------\n>Go into the Windows 3.1 control panel, select printers, select your Citizen\n>printer driver, select SETUP, and select a custom size of 850 x 1132.  Like\n>magic, all of your problems will go away.\n>\n>Ask me no questions and I'll tell you no lies!\n>\n>-- Mike\n\n\nExcuse me, that's 850 x 1163.\n\n-- Mike\n\n------------------------------------------------------------------------\nDisclaimer: My opinions do not necessarily reflect those of my employer.\n========================================================================\n------------------------------------------------------------------------\n     mike.rovak@drd.com     \n========================================================================\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9919, "properties": {"category": "misc.forsale", "text": "From: LLARSEN@LMSC5.IS.LMSC.LOCKHEED.COM\nSubject: Porsche 928 (Bay Area)\nOrganization: Lockheed Missiles & Space Company, Inc.\nLines: 20\n\nPosting this for a friend\nSunnyvale, California\n1982 Porsche 928 GTS Package\n\nleather interior\neuropean handling package\nsunroof\ncruise control\n88,000k miles\nnew paint\nImmaculate in every way\n********** DELIVERY POSSIBLE TO DESTINATION WITH DEPOSIT ********\n$10,000 firm\nLow book is 11,500  High book is 16,000\nPhone (408) 296-4444 Frank Rosqui\n\nAs new this vehicle was $74,000\n\nThis posting does not reflect the opinions of my employer\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9920, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Bikes vs. Horses (was Re: insect impac\nFrom: emd@ham.almanac.bc.ca\nDistribution: world\nOrganization: Robert Smits\nLines: 21\n\ncooper@mprgate.mpr.ca (Greg Cooper) writes:\n\n> In article <1qeftj$d0i@sixgun.East.Sun.COM>, egreen@east.sun.com (Ed Green - \n> >In article sda@usenet.INS.CWRU.Edu, ai598@cleveland.Freenet.Edu (Mike Sturde\n> >>\n> >>\tOnly exceptional ones like me. Average ones like you can barely fart\n> >>by themselves.\n> >\n> >Fuck you very much, Mike.\n> >\n> \n> Gentlemen _please_. \n> -- \n\n\nGreg's obviously confused. There aren't many (any) gentlemen on this \nnewsgroup. Well, maybe. One or two.\n\n\nRobert Smits Ladysmith BC  | If Lucas built weapons, wars\nemd@ham.almanac.bc.ca      | would never start, either.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9921, "properties": {"category": "misc.forsale", "text": "From: brain@cbnewsj.cb.att.com (harish.s.mangrulkar)\nSubject: Pocono Vacation House Rental\nOrganization: AT&T\nDistribution: usa\nLines: 35\n\n\n\nAvailable for Weekly/bi-weekly/weekend Rental :\n\nA brand new chalet in a private resort community located in the heart\nof the Pocono Mountains. The chalet has 3 bedrooms and 2 bathrooms and\nfeatures full carpeting, cathedral ceiling in living/dining room, an\noverlooking loft, stone fireplace, wraparound deck, country kitchen\nwith all appliances and many other features too numerous to list them\nall. Its custom designed and built and tastefully furnished for the\ncomfort of 8 adults.\n\nThe community has 24 hour security and offers 2 large lakes, 4 sandy\nbeaches, 2 swimming pools, 9 tennis courts, many picnic areas,\n4 playgrounds, miniature golf, trout stream/lake fishing, team softball,\nshuffleboard, ice skating/tobagun run, teen dances, club house etc. etc.\n\nThere are many recreational facilities within easy reach of the\nvacation home. Ski resorts, luxury hotels with nitely entertaiment,\nPocono international raceway, golf courses, parks, gamelands,\nwhitewater rafting, horseback riding, scenic trails, waterfalls,\ntrain rides, historical places, all kinds of restaurants,\nfactory outlet malls, tourist attractions, just to name a few.\n\nThis is an ideal place for a family/group vacation or a weekend\ngetaway. There is no traffic congestion and air or water pollution\nand its only 2 hours from New York, Northern New Jersey and\nPhiladelphia.\n\nFor further information call :\n\n                     908-834-1254 (daytime)\n                     908-388-5880 (evenings and weekends)\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9922, "properties": {"category": "sci.med", "text": "From: billc@col.hp.com (Bill Claussen)\nSubject: RE:  alt.psychoactives\nOrganization: HP Colorado Springs Division\nLines: 35\nNNTP-Posting-Host: hpcspe17.col.hp.com\n\nFYI...I just posted this on alt.psychoactives as a response to\nwhat the group is for......\n\n\nA note to the users of alt.psychoactives....\n\nThis group was originally a takeoff from sci.med.  The reason for\nthe formation of this group was to discuss prescription psychoactive\ndrugs....such as antidepressents(tri-cyclics, Prozac, Lithium,etc),\nantipsychotics(Melleral(sp?), etc), OCD drugs(Anafranil, etc), and\nso on and so forth.  It didn't take long for this group to degenerate\ninto a psudo alt.drugs atmosphere.  That's to bad, for most of the\nserious folks that wanted to start this group in the first place have\nleft and gone back to sci.med, where you have to cypher through\nhundreds of unrelated articles to find psychoactive data.\n\nIt was also to discuss real-life experiences and side effects of\nthe above mentioned.\n\nOh well, I had unsubscribed to this group for some time, and I decided\nto check it today to see if anything had changed....nope....same old\nnine or ten crap articles that this group was never intended for.\n\nI think it is very hard to have a meaningfull group without it\nbeing moderated...too bad.\n\nOh well, obviously, no one really cares.\n\nBill Claussen\n\n\nWould anyone be interested in starting a similar moderated group?\n\nBill Claussen\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9923, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ns111310@LANCE.ColoState.Edu (Nathaniel Sammons)\nSubject: 68LC040 vs. 68RC040 in Centris 650\nNntp-Posting-Host: casco.lance.colostate.edu\nOrganization: Colorado State U. Engineering College\nLines: 28\n\nI would like to know what people's opinions are about the \n\"real world\" differences are between a C650 with and without \na coprocessor...\n\nI don't use anything like Mathamatica, Maple, etc. I don't use\nSpreadsheets (at least no sheets with complicated anything), I\ndon't use 3D CAD apps (although I used to), \n\nI DO:  use 3D renderers, EXTENSIVE communications, I run a BBS,\nI write software, I write papers, etc...\n\nBTW, just for kicks, this is what I was told by my local Apple\nRep about upgrading a 68LC040 to a 69RC040 on a C650:\n\"Well, Apple built in an extra socket for the coprocessor chip.\n That way, you just plug in the coprocessor, and it works.\"\nI then heartily laughed and hung up the phone.\n\nthanks,\n\n-nate\n\n\no---------------------------+======================================o\n| \"I hate quotations.       |     This message brought you by      |\n|   Tell me what you know.\" |   Nate Sammons, and the number 42.   |\n|    --Ralph Waldo Emerson  |  ns111310@longs.lance.colostate.edu  |\no---------------------------+======================================o\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9924, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Keith Schneider - Stealth Poster?\nOrganization: California Institute of Technology, Pasadena\nLines: 12\nNNTP-Posting-Host: punisher.caltech.edu\n\nsandvik@newton.apple.com (Kent Sandvik) writes:\n\n>>To borrow from philosophy, you don't truly understand the color red\n>>until you have seen it.\n>Not true, even if you have experienced the color red you still might\n>have a different interpretation of it.\n\nBut, you wouldn't know what red *was*, and you certainly couldn't judge\nit subjectively.  And, objectivity is not applicable, since you are wanting\nto discuss the merits of red.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9925, "properties": {"category": "comp.windows.x", "text": "From: dscheck@nextsrv1.andi.org (David Scheck)\nSubject: Imake cpp problems on AIX\nKeywords: imake\nOrganization: PRC, Inc.\nLines: 29\n\n\nI am trying to build and use imake (X11R4) on an IBM RS/6000 running AIX V3.2.\nI am having the following 2 problems.\n\n(1) Many of my Imakefile's have contructs like\n\t\t/**/#This is a makefile\n\tat the start of lines to pass Makefile comments thru the C\n\tpreprocessor and into the Makefile.  Most of the C preprocessors that\n\tI have used will not treat such a # as appearing at the start of the\n\tline.  Thus the C preprocessor does not treat the hash symbol as the\n\tstart of a directive. \n\n\tHowever the IBM cpp strips the comment and treats the hash symbol\n\tas the start of a directive.  The cpp fails when it determines\n\tthat \"This\" is not a known directive.  I have temporarily hacked my\n\timake to handle this situation but would like to come up with a better\n\tfix.\n\n(2) Several Imakefiles use /**/ as a parameter to a macro when a particular\n\tuse of the macro does not need a value for the parameter.  The AIX cpp\n\tgives warnings about these situations but continues to work OK.\n\nIf you are familiar with these problems and have solutions, I would appreciate\ninformation about on your solutions.  (Perhaps, this is solved in a later\nversion of imake that I have not reviewed.)  Also, do you know of other cpp's\nthat behave similarly?\n\nSince I do not have easy access to News, a response to\n'white_billy@po.gis.prc.com' would be appreciated.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9926, "properties": {"category": "rec.autos", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Options that would be great to have...\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 26\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, parr@acs.ucalgary.ca (Charles Parr) says:\n\n\nA list of options that would be useful. They can be existing\noptions on a car, or things you'd like to have...\n\n1) Tripmeter, great little gadget. Lets you keep rough track of>\n   mileage, makes a good second guesser for your gas gauge...\n\n2) Full size spare\n\n3) Built in mountings and power systems for radar detectors.\n\n4) a fitting that allows you to generate household current with\nthe engine running, and plug ins in the trunk, engine compartment\nand cabin.\n\nFeel free to add on...\n\n5) Power windows\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9927, "properties": {"category": "rec.sport.baseball", "text": "From: gwieman@unl.edu (Gary Wieman)\nSubject: Cards sweep LA, Mets lose, Life is GOOD!\nOrganization: University of Nebraska--Lincoln\t\nLines: 28\nDistribution: world\nNNTP-Posting-Host: unlinfo.unl.edu\nKeywords: Cardinals\n\nJust a few lines about my favorite team sweeping the Dodgers (one of \nmy least favorite) in LA (Sweet!).  Also the Mets (my other least \nfavorite team) loss to the Rockies made this this a great day and a \ngreat start to the weekend as the Cardinals are on the ESPN tonight.\n\nBig Lee Smith is having a great start and the Cardinals seem to be\nhitting in the clutch even though they have had a few games with lots\nof hits and not many runs.  Hopefully with the coaches stress on\nsituational hitting in spring training, the runners LOB will be lower\nthis year (probably due to the high strikeout numbers by Jose and\nLankford and Zeile's off year).\n\nI don't know why all the fuss about the Fillies.  The media and all the \nFilly fans on r.s.b forget who is right behind them in the standings.  \nGive the Wild Thing a week or two before he starts blowing some games \nand we'll see who is in first then.  I believe the Cardinal pitching \nstaff is more complete than the Filly staff and that will make the\ndifference.\n\nOn a side note, a few years ago (5-6), a comment was made by some \nbaseball player or manager about the Dodger defense.  He was asked \nwhere to hit the ball against the Dodgers and he replied \"Fair.\"  I \nremember it being in the \"They Said It\" section of Sports Illustrated.\nI would like to know who said it and what issue it was in.\n\nGO REDBIRDS!!\n\nGary Wieman\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9928, "properties": {"category": "talk.politics.mideast", "text": "From: ohayon@jcpltyo.JCPL.CO.JP (Tsiel Ohayon)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nOrganization: James Capel Pacific Limited, Tokyo Japan\nLines: 33\n\nIn article <C5ut1s.3xA@bony1.bony.com> jake@bony1.bony.com (Jake Livni) writes:\n   In article <1r3n8d$4m5@techbook.techbook.com> Dan Gannon writes:\n\n[DG] THE U.S. HOLOCAUST MEMORIAL MUSEUM: A COSTLY AND DANGEROUS MISTAKE\n[DG] by Theodore J. O'Keefe\n[DG] HARD BY THE WASHINGTON MONUMENT, within clear view of the Jefferson\n[DG] Memorial, an easy stroll down the Mall to the majestic Lincoln Memorial,\n[DG] has arisen, on some of the most hallowed territory of the United States of\n[DG] America, a costly and dangerous mistake.  On ground where no monument yet\n[DG] marks countless sacrifices and unheralded achievements of Americans of all\n[DG] races and creeds in the building and defense of this nation, sits today a\n[DG] massive and costly edifice, devoted above all to a contentious and false\n[DG] version of the ordeal in Europe during World War II, of non-American\n[DG] members of a minority, sectarian group.  Now, in the deceptive guise of\n[DG] tolerance, the United States Holocaust Memorial Museum begins a propaganda\n[DG] campaign, financed through the unwitting largess of the American taxpayer,\n[DG] in the interests of Israel and its adherents in America.\n\n[JAKE] After reading the first paragraph, a quick scan confirmed my first\n[JAKE] impression: this is a bunch of revisionist and anti-semitic hogwash.\n\nJake, I'm really disappointed in you. It took you a whole paragraph\nto see that it was \"bunch of revisionist and anti-semitic hogwash\". :-)\n\nThe article title \"THE U.S. HOLOCAUST MEMORIAL MUSEUM: A COSTLY AND \nDANGEROUS MISTAKE\" should have been enough! :-)\n\nTsiel\n-- \n----8<--------------------------------------------------------------->8------\nTsiel:ohayon@jcpl.co.jp\t   | If you do not receive this E-mail, please let me\nEmployer may not have same | know as soon as possible, if possible.\nopinions, if any !         | Two percent of zero is almost nothing.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9929, "properties": {"category": "talk.religion.misc", "text": "From: jvp4u@Virginia.EDU (Jeffery Vernon Parks)\nSubject: Re: Info about New Age!\nOrganization: University of Virginia\nLines: 1\n\nSuggestion: try \"Exposing the New Age\" by Douglas Groothuis.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9930, "properties": {"category": "soc.religion.christian", "text": "From: poram%mlsma@att.att.com\nSubject: WBT (WAS: Re: phone number of wycliffe translators UK)\nOrganization: AT&T\nLines: 36\n\nIn article <Apr.17.01.11.19.1993.2268@geneva.rutgers.edu> mprc@troi.cc.rochester.edu (M. Price) writes:\n>\n>  I'm concerned about a recent posting about WBT/SIL.  I thought they'd\n>pretty much been denounced as a right-wing organization involved in\n>ideological manipulation and cultural interference, including Vietnam\n>and South America. A commission from Mexican Academia denounced them in\n>1979 as \" a covert political and ideological institution used by the\n>U.S. govt as an instrument of control, regulation, penetration, espionage and\n>repression.\"\n\nHaving met Peter Kingston (of WBT) some years back, he struck me \nas an exemplery and dedicated Christian whose main concern was with\ntranslation of the Word of God and the welfare of the people\ngroup he was serving.\nWBT literature is concerned mainly with providing Scripture\nin minority languages.\n\nThe sort of criticism leveled at an organisation such as this\nalong the lines of \"ideological manipulation and cultural\ninterference\" is probably no more than Christianising and\neducation - in this WBT will stand alongside the early Christian\nmissionaries to parts of Africa, or those groups who worked\namong native Americans a couple hundred years ago.\n\n>  My concern is that this group may be seen as acceptable and even\n>praiseworthy by readers of soc.religion.christian. It's important that\n>Christians don't immediately accept every \"Christian\" organization as\n>automatically above reproach.\n>\n>                                                                  mp\nI think you need to substantiate these attacks as being a\nlegitimate criticism of priorities other than spreading the\ngospel among underdeveloped people.\n\nBarney Resson\n\"Many shall run to and fro, & knowledge shall increase\" (Daniel)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9931, "properties": {"category": "comp.windows.x", "text": "From: Bill.Kayser@delft.SGp.slb.COM (Bill Kayser)\nSubject: Re: TeleUse, UIM/X, and C++\nArticle-I.D.: parsival.199304060629.AA00339\nOrganization: The Internet\nLines: 25\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\nCc: Bill.Kayser@delft.sgp.slb.com\n\n\n> \n> Does anyone have any good ideas on how to integrate C++ code elegantly\n> with TeleUse, UIM/X / Interface Architect generated code?\n> \n> Source would be great, but any suggestions are welcome.\n\nIt's my understanding that the next release of UIM/X, due out\nlast February :-) has full support for C++.\n\nI use XDesigner which does not have the interpreter or UI meta languages\nof these other tools but does fully support C++ code generation,\nreusable templates via C++ classes which are generated, a variety of\nother handy features for using C++ and layout functions in different\nways, and generates Motif 1.2 code (including drag 'n drop, \ninternationalization, etc.).  Fits in quite nicely with Doug Young's\nparadigm for C++/Motif.\n\nAvailable in the US from VI Corp, in Europe from Imperial Software,\nLondon (see FAQ for details).\n\nBill\n________________________________________________________________________\n                                           Schlumberger Geco Prakla\n                                           kayser@delft.sgp.slb.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9932, "properties": {"category": "rec.motorcycles", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: How to act in front of traffic jerks\nOrganization: Iowa State University, Ames IA\nLines: 13\n\nnielsmm@imv.aau.dk (Niels Mikkel Michelsen) writes:\n\n>Did I do the right thing?\n\nDenmark, eh?  Should have taken a short sword and cleaved his car\nin half.  Since I assume you didn't have a short sword on you,\nI certainly have no problems with your choice of substitute action.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9933, "properties": {"category": "rec.autos", "text": "From: dunnjj@ucsu.Colorado.EDU (DUNN  JONATHAN JAMES)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: University of Colorado, Boulder\nLines: 24\n\nak296@yfn.ysu.edu (John R. Daker) writes:\n\n\n>Cup holders (driving is an importantant enough undertaking)\n\nThis is a good idea - so you can carry your (non-alcoholic) drinks without\nspilling or having someone hold on to them.\n\n>Cellular phones and mobile fax machines (see above)\n\nFax machines, yes.  Cellular phones:  Why not get a hands-free model?\n\n>Fake convertible roofs and vinyl roofs.\n\nSeemingly unique to American luxury cars.  The Big Three haven't yet realized\nthat the 1970s are over.\n\n>Any gold trim.\n\nI agree.  Just another display of Yuppie excess.\n\n>Jon Dunn<\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9934, "properties": {"category": "misc.forsale", "text": "From: trey@godzilla.larc.nasa.gov (Trey Arthur)\nSubject: Re: >>> Bally's/Holiday Health Club \\\\\\ LIFETIME  MEMERSHIP ///\nOrganization: CSC - NASA Langley Research Center\nLines: 19\nDistribution: world\nNNTP-Posting-Host: godzilla.larc.nasa.gov\n\nIn article <1r3v9j$t6f@access.digex.net>, jb@access.digex.com (jb) writes:\n|> In article <C5J5K1.w0@visgraph.uucp> forrie@visgraph.uucp (Forrest Aldrich) writes:\n|> >\n|> >For sale:  Life Time membership to the Ballys'/Holiday Fitness club.  The\n|> >original fee paid for this was over 1,000, and I'll sell it for 600.  The\n|> >membership is fully transferrable via proper paperwork.  \n|> >\n|> Does is include raquetball?  Is it good at Espree?  What is the annual fee?\n                                                       \u001e\u001e\u001e\u001e\u001e\u001e\u001e\u001e\u001e\u001e\u001e\n\nSince it is a Life Time membership, you won't have to worry about it\nuntil your next life.\n\n-- \n***************************************************************\n*  Trey Arthur                   CSC at NASA Langley          *\n*  Aerospace Engineer            MS 157D, Hampton, VA 23666   *\n*  j.j.arthur@larc.nasa.gov      (804) 865-1725               *\n***************************************************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9935, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gtewing@unix2.tcd.ie (Gregory T. Ewing)\nSubject: Gamecards\nSummary: Gamecards\nKeywords: Gamecards\nNntp-Posting-Host: unix2.tcd.ie\nOrganization: Trinity College, Dublin\nLines: 15\n\nI own an 80386sx, 16Mhz, 2Mb ram machine and am finding it too slow for\ncertain games such as X-wing. I was in a Computer store there the other\nday and saw a series of Gamecards which claim to speed up your machine\nto up to 80Mhz! I was wondering if anyone out there who has a similar\nmachine had bought one or seen one of these Gamecards and whether or not\nthey do actually work!\n\tAny help here would be much appreciated,\n\t\tThanks in advance,\n\t\t\tGreg.\n\n--\n\n+--------------------------------------------------------------------------+\n| \tWhen a man lies he murders some part of the world..................|\n|  \t\t\t\tor does he....?.......EGGMAN...............|\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9936, "properties": {"category": "talk.religion.misc", "text": "From: mayne@pipe.cs.fsu.edu (William Mayne)\nSubject: Re: *** The list of Biblical contradictions\nOrganization: Florida State University Computer Science Department\nReply-To: mayne@cs.fsu.edu\nLines: 14\n\nIn article <7912@blue.cis.pitt.edu> joslin@pogo.isp.pitt.edu (David Joslin) writes:\n>[Many good points deleted. Anyone who missed it should see the original.]\n>Lists like this that just toss a bunch of quotes together to\n>make a bible verse salad just don't cut it.  Those of us who\n>want to argue against inerrancy should find this sort of thing\n>as embarassing as the fundies should find Josh McDowell.\n\nTrue, except that I've known few fundies who had enough sense to\nbe embarrassed by Josh McDowell.\n\n(Okay, maybe a cheap shot. But I'm in that kind of mood.)\n\nBill Mayne\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9937, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nOrganization: ISC-Bunker Ramo, An Olivetti Company\nLines: 38\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <1993Apr17.145045.12449@tijc02.uucp> pjs269@tijc02.uucp (Paul Schmidt) writes:\n>steveh@thor.isc-br.com (Steve Hendricks) writes:\n>: In article <1993Apr15.013651.11353@tijc02.uucp> pjs269@tijc02.uucp (Paul Schmidt) writes:\n>: \n>: It is a failure of libertarianism if the ideology does not provide any\n>: reasonable way to restrain such actions other than utopian dreams.  \n>\n>...Society would collapse if most people were evil most of the time.\"\n>\t\t\t-- David Bergland\nAgreed.\n>\n>\"If people are basically evil, the last thing you'd want is a big\n>government staffed by those evil folks exercising control over you.\"\n>\t\t\t-- David Bergland\nAgreed.\n\n>\"Freedom seems to have unleashed the  creative energies of the people -- and\n>leads to ever higher levels of income and social progress.\"  --  U.N. report\n\nAgreed.\n\n>: The argument is not between those who want \"limited\" government and those\n>: who want \"unlimited\" government.  It is between those who believe\n>: government regulation in a capitalist economy serves worthwhile ends and\n>: those who believe such regulation is neither desirable on empirical \n>: grounds nor justifiable on ideological grounds.\n>\n>Good summary...  Selling your labor or goods so that you can eat \n>and buy a house is essential so that you can excercise your \n>personal freedoms.\n>-- \n>Paul Schmidt: Advocates for Self-Government, Davy Crockett Chapter President\n\nAnd this demonstrates, I assume, that you're a liberal. :-).\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9938, "properties": {"category": "comp.windows.x", "text": "From: robert@cpuserver.acsc.com (Robert Grant)\nSubject: Re: Animation with XPutImage()?\nOrganization: USCACSC, Los Angeles\nLines: 11\nDistribution: world\nReply-To: robert@cpuserver.acsc.com (Robert Grant)\nNNTP-Posting-Host: cpuserver.acsc.com\n\nHi everyone,\n\nDoes anyone know a good way to adjust colourmaps on the\nfly (say during an animation) and prevent the current\nset of colours from flickering?\n\nThanks,\n\nRobert\nrobert@acsc.com\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9939, "properties": {"category": "misc.forsale", "text": "From: Harry Powell Watson <hw26+@andrew.cmu.edu>\nSubject: Boss Guitar Pedal\nOrganization: Freshman, Design, Carnegie Mellon, Pittsburgh, PA\nLines: 5\nNNTP-Posting-Host: po3.andrew.cmu.edu\nIn-Reply-To: <C4vu72.D18@smsc.sony.com>\n\nFor Sale:\n    One Boss Turbo Overdrive Pedal for guitar, bass, or keyboards--$35\nor best offer. Thanks!! Respond to hw26 or call 268-4841.               \n                           \n                                               Harry\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.467+0000", "event": "documents", "entityId": 9940, "properties": {"category": "misc.forsale", "text": "From: isifisher@aol.com\nSubject: FAX VIA E-MAIL\nArticle-I.D.: aol.9304060119.tn29392\nOrganization: UTexas Mail-to-News Gateway\nLines: 57\nNNTP-Posting-Host: cs.utexas.edu\n\n\n\tFinally a fax service to all Internet users in the continental U.S. without\nprepayment of any kind. This service is provided by Information System\nInternational based in Fishers, Indiana at isifisher@aol.com. As an Internet\nuser, your credit has been automatically approved. So you can start sending\nfaxes RIGHT NOW.\n\n1. How to send a fax\n\nTo use this service, e-mail to: isifisher@aol.com in the following format:\n\n-Your name\n-Your phone number\n-Your mailing address\n- the number you send fax to\n- the recipient's name and company \n- the address and phone number of the recipient (optional)\n=====================================\n- fax content\n\nYour fax will be sent out within 24 hours. Every fax will include a standard\ncover sheet free of charge which contains: (1) your name; (2) your phone\nnumber; (3) your address; (4) the recipient's name and company.\n\nUpon sending out your fax, a receipt will be sent for your record.\n\nIMPORTANT: If this is your first time to use the fax service, you MUST\ninclude the following paragraph at the beginning of your e-mail:\n\n\tI hereby authorize Information System International to open a fax account\nfor me. I agree to pay all charges incurred upon receiving my monthly bill..\n\n2. What format is acceptable\n\n\tOnly plain ASCII format and Rich Text Format (RTF) are acceptable. \n\t(1) For plain ASCII format, Times New Roman fonts of 12-point size will be\nused. \n\t(2) For RTF format, your fax document will appear exactly the same as it\nwould appear on your local laser printer. In almost all word processing\nsoftware on PC, Mackintosh, Sun workstation, etc., you can save your document\nin RTF format. \n\n\n3. How to pay\n\n\tThe first time you use our fax service, we will open an account for you\nunder your name. You will be billed each month if you have a balance or when\nyour balance has been over $50.00 - whichever comes first. \n\n4. Cost\n\n\tThe cost for continental U.S (excluding Hawaii & Alaska) is only $1.50 for\nthe first page, $0.75 for each additional page. Each fax will include a cover\nsheet which is free.\n\n                  If you plan to use this service, you should save the entire\ntext posted above.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9941, "properties": {"category": "talk.politics.misc", "text": "From: blh@uiboise.idbsu.edu (Broward L. Horne)\nSubject: \" Only $17 / Month! \"\nX-Received: by usenet.pa.dec.com; id AA25085; Fri, 16 Apr 93 07:52:11 -0700\nX-Received: by inet-gw-2.pa.dec.com; id AA12308; Fri, 16 Apr 93 07:51:10 -0700\nX-Received: by uiboise.idbsu.edu\n\t(16.6/16.2) id AA28928; Thu, 15 Apr 93 10:11:24 -0600\nX-To: talk.politics.misc.usenet\nX-Cc: alt.politics.clinton.usenet\nX-Mailer: Elm [revision: 66.25]\nLines: 58\n\n\n\n\tAhhh, remember the days of Yesterday?  When we were only \n\tgoing to pay $17 / month?\n\n\tWhen only 1.2% of the population would pay extra taxes?\n\n\tRemember when a few of us predicted that it wasn't true?  :)\n\tRemember the Inaugural?   Dancing and Singing!  Liberation\n\tat last!  \n\n\tWell, figure *this* out:\n\n\t5% VAT, estimated to raise $60-100 Billion per year ( on CNN )\n\tWork it out, chum...\n\n\t     $60,000,000,000  /  125,000,000 taxpayers = $480 / year\n\n        But, you exclaim, \" I'll get FREE HEALTH CARE! \"\n\tBut, I exclaim, \" No, you won't! \"\n\n\tThis is only for that poor 37 million who have none.  Not for\n\tYOU, chum. :)  That comes LATER.\n\n\tAdd in the estimates of the energy tax costs - $300-500 / year\n\n\tPlus, all that extra \"corporate and rich\" taxes that will \n\ttrickle down, and what do you have?\n\n\t$1,000 / year, just like I said two months ago.\n\n\tAnd, the best part?   You don't GET ANYTHING for it.\n\n\tDeficit is STILL projected to rise at same rate it's  been\n\trising at, by CLINTON'S OWN ESTIMATES.  And this assumes that\n\this plan WILL WORK!\n\n\tI mean, come on, it doesn't take a ROCKET SCIENTIST to see\n\tthat in another 2 or 3 years, we're GETTING ANOTHER WHOPPING\n\tTAX INCREASE, because the deficit will STILL be GROWING \n\tFASTER THAN the ECONOMY.\n\n\tAll Clinton is doing, is moving us to a HIGHER diving board.\n\n        Face it.  Clinton is Bush X 2.  In four more years, our\n\tcountry will be completely bankrupt, and your children's\n\tfuture, so oft mentioned by Pal Bill, will be gone.\n\n\tAnd those of you still deluding yourselves will be faced\n\twith the guilt.\n\n\tWell, <glancing at watch>, gotta go.  I want to be out of\n\there by noon.  Got an appointment at the lake.  No tax\n\tthere, yet.\n\n\t:)\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9942, "properties": {"category": "talk.politics.misc", "text": "From: fpa1@Ra.MsState.Edu (Fletcher P Adams)\nSubject: Pork ( C-17 & C-5 was (Re: ABOLISH SELECTIVE SERVICE )\nOanization: Mississippi State University\nNntp-Posting-Host: ra.msstate.edu\nOrganization: Mississippi State University\nLines: 30\n\nmuellerm@vuse.vanderbilt.edu (Marc Mueller) writes:\n>fpa1@Trumpet.CC.MsState.Edu (Fletcher P Adams) writes:\n>>>\n>>>Eliminate the C-17 transport. \n>>\n>>Wrong.  We need its capability.  Sure it has its problems, ........\n>\n>If you read Aviation Week, the C-5 line can be reopened and the C-5s\n>would be delivered a year earlier and cost a billion less for the \n>program. Politically, though, the C-17 is popular pork.\n\nI do read Av Week and don't remember this.  Could you supply the date\nof the magazine?  As for C-17 vs. C-5 , the C-17 can't carry as much\nbut has more capability ( read : can land at smaller airfields of which\nthere are more of ) than the C-5.  Now is the C-17 pork?  It depends\non whether your job relies on it or not.  :)  In California right now,\nI would say that it is not pork since due to peace dividend so many \npeople are out of work. \n\n>The question is whether Les Aspin and Clinton will be able to face down\n>a pork happy Congress.\n>\n>-- Marc Mueller\n\nHuh?  Shouldn't that read \"The question is whether a social-pork happy\nLes Aspin and Clinton will be able to face down a jobs-pork happy\nCongress.\"\n\nfpa\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9943, "properties": {"category": "rec.sport.hockey", "text": "From: pkortela@snakemail.hut.fi (Petteri Kortelainen)\nSubject: Re: Helsinki/Stockholm & NHL expansion?\nOrganization: Helsinki University of Technology, Finland\nLines: 20\nDistribution: inet\n\t<C5H9wr.6J3@polaris.utu.fi> <1993Apr15.095653.17514@abo.fi>\nNNTP-Posting-Host: lk-hp-17.hut.fi\nIn-reply-to: MLINDROOS@FINABO.ABO.FI's message of Thu, 15 Apr 1993 09:56:53 GMT\n\nIn article <1993Apr15.095653.17514@abo.fi> MLINDROOS@FINABO.ABO.FI (Marcus Lindroos INF) writes:\n\n>In <C5H9wr.6J3@polaris.utu.fi> franti@polaris.utu.fi writes:\n\n\n>Not too low perhaps, but surely not as high as that of an European NHL\n>division. The Finnish team, for example, would contain all players currently \n on\n>the national team plus a top-class foreigner or two. They would be in an\n>entirely different league than TPS or Jokerit, both of whom have perhaps a\n>dozen players of international class - if even that. Why settle for a minor\n>league when you could have the best?\n\nHow many players of international class an average NHL team has. 6-10?\nTop players just play more in smaller rinks. Is the quality of European hockey\nreally poor, then recent years only few north-american (usually good farm \nplayers) players have got place in Finnish league or Elitserien, while most \nhave been shipped back. \n\nPetteri Kortelainen\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9944, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: poe@wharton.upenn.edu\nSubject: AMD i486 clones: Now legal in US?!?!?!\nOrganization: University of Pennsylvania\nLines: 7\nNntp-Posting-Host: fred.wharton.upenn.edu\n\nA friend of mine called me on the phone and told me he was wathcing CNN\nand saw a report that the ruling prohibiting AMD from selling their i486\nclones has been thrown out, making it legal for AMD to ship in the US.\nCan anyone out there verify this?\n\nThanks in advance\nPhil\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9945, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bishop@baeyer.chem.fsu.edu (Greg Bishop)\nSubject: Re: Borland's Paradox Offer\nOrganization: Physics Department, FSU\nNews-Software: VAX/VMS VNEWS         \nReply-To: bishop@baeyer.chem.fsu.edu\nLines: 31\n\n\n>I am considering buying Borland's Paradox for Windows since I\n>would like to use a database with Windows (I don't have/use\n>one yet) for both work/home use.  I would like to advantage\n>of Borland's \"$129.95 until April 30\" offer if this package\n>is everything that Borland claims it to be.  So, I was\n>wondering ... has anybody used this and/or have any opinions?\n>\n>-- Tom Belmonte\n\nIf you are interested in a program which is very easy to use, I strongly \nsuggest Approach 2.0.  It is extremely easy to use, make reports, etc.  I\nown both it and Paradox, and I almost never use Paradox.  If you need to \nbuild up a complicated application, then Paradox is the way to go.  I have\nheard horror stories about the Access programming being extremely cryptic.\nSince you seem like you will probably be doing fairly small stuff (work/\nhome use and you have not used a database before), I recommend Approach.  I \nhave found only one small thing which I would like it to do more easily:\nI have one database where the order in which the records are entered must \nbe different than what is the logical ordering.  To permanently reorder (to \nuse the old DBASE III command) the records requires sorting the records \nappropriately (no problem, since I almost always use them in this order)\nexporting the database to another database (which can still be an Approach \ndatabase), and then copying the exported files back to the original \nfilename.  This is a small weakness, considering the other items I really \nlike about Approach.  It is also a little slower than Paradox (other than \nthe loading, Paradox takes forever and a minute to load).  Paradox also \ntakes a lot of memory (both hard disk (around 12MB) and RAM).\n\nGreg Bishop. (bishop@baeyer.chem.fsu.edu)\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9946, "properties": {"category": "sci.crypt", "text": "Subject: Looking for MS-DOS crypto programs\nFrom: EXTDSM@LURE.LATROBE.EDU.AU (MADDISON,David)\nOrganization: La Trobe University\nX-News-Reader: VMS NEWS 1.24\nLines: 11\n\nI am a new reader of sci.crypt I would like to obtain a copy of a\npublic domain program that can encrypt files, preferably using DES,\nthat runs under MS-DOS.\n\nI would also like to obtain a program which will password protect\nfloppy disks, if this is possible.\n\nThanks.\n\nDavid Maddison\nMelbourne, Australia\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9947, "properties": {"category": "soc.religion.christian", "text": "From: atterlep@vela.acs.oakland.edu (Cardinal Ximenez)\nSubject: Re: A question that has bee bothering me.\nOrganization: National Association for the Disorganized\nLines: 18\n\nwquinnan@sdcc13.ucsd.edu (Malcusco) writes:\n\n>Especially as we approach a time when Scientists are trying to match God's \n>ability to create life, we should use the utmost caution.\n\n  I question the implications of this statement; namely, that there are certain\nphysical acts which are limited to God and that attempting to replicate these\nacts is blasphemy against God.  God caused a bush to burn without being\nconsumed--if I do the same thing, am I usurping God's role?  \n  Religious people are threatened by science because it has been systematically\nremoving the physical \"proofs\" of God's existence.  As time goes on we have to\nrely more and more on faith and the spiritual world to relate to God becuase\nscience is removing our props.  I don't think this is a bad thing.\n\nAlan Terlep\t\t\t\t    \"Incestuous vituperousness\"\nOakland University, Rochester, MI\t\t\t\natterlep@vela.acs.oakland.edu\t\t\t\t   --Melissa Eggertsen\nRushing in where angels fear to tread.\t\t\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9948, "properties": {"category": "sci.electronics", "text": "From: moselecw@elec.canterbury.ac.nz (moz [chris moseley])\nSubject: Re: Building a UV flashlight\nNntp-Posting-Host: betelgeux.canterbury.ac.nz\nOrganization: Electrical Engineering, University of Canterbury, New Zealand\nLines: 23\n\njhawk@panix.com (John Hawkinson) writes:\n> My main question is the bulb: where can I get UV bulbs? Do they\n> need a lot of power? etc., etc.\n\n\nhe ones I have seen are all fluorescent tubes. Maybe you could find a\nsmall tube to go in one of those hand-held fluoro lanterns?\n\n> One other thing: a friend of mine mentioned something about near-UV\n> light being cheaper to get at than actual UV light. Does anyone\n> know what he was referring to?\n\nBlue lights. Ultra-violet (by definition?) goes from the blue end of the\nspectrum that people see to the radio spectrum (X-rays, cosmic rays etc).\n\npossibly you could get light at the fringe of visibility (which people\nwith false eye-lenses can see easily, since it's your lenses that soak up\nmost of the UV), however since most people use UV to get other things\nto `glow', and the near-blue is less energetic, it would probably not\nwork as well, if it worked at all. (lecture on basic atomic physics\nfits in here, about electron transitions (quantum leaps) and stuff.\n\nmoz\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9949, "properties": {"category": "soc.religion.christian", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: Florida State University\nLines: 13\n\n> [Again, in the normal Protestant interpretation, Sunday is not a law,\n> and worshipping on another day is not a sin.  Churches are free to\n> decide on the day they will meet, just as they are free to decide on\n> the hour.  It would not be a sin to worship on some other day, but if\n> you belong to a church that worships on Sunday and you show up on\n> Monday, you will probably worship alone...  --clh]\n\nI totally agree with that sentiment.  But why do you have to go further\nand advocate violating what God has set up?  That is the question which\nyou have not answered from Scripture.  You can worship on every day, as\nlong as you work.  But God says the Sabbath is all mine.\n\nDarius\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9950, "properties": {"category": "sci.crypt", "text": "From: C445585@mizzou1.missouri.edu (John Kelsey)\nSubject: The wiretap chip, clones, and secure key-exchange\nNntp-Posting-Host: mizzou1.missouri.edu\nOrganization: University of Missouri\nLines: 33\n\nU23590@uicvm.uic.edu writes:\n>The cryptographic algorythm MUST be kept secret, or\n>private individuals could make ClipperClones with\n>which they could transmit messages which the feds would not have\n>ready access to.\n \n   Not necessarily.  I've been thinking about this, and if this chip/scheme\nis to provide any real security, there must be some sort of key exchange,\neither using a public-key encryption scheme, or using a key exchange scheme\nlike Diffie-Hellman.  If there's an out-of-band transmission of a shared\nsession key, then what protects that band from eavesdropping?  If the phone\ncompany or some other online central authority generates a session key and\nsends it to both users, then what's the point of going to the trouble of\nhaving some complicated key-depositories?  Just ask the phone company for\na copy of the session key for each call.\n \n   Now, it's probably not practical for each user to keep an online copy of\nevery public key used by anyone anywhere, right?  So, probably, there will\nbe some way of getting these keys verified.  This might be a digitally-\nsigned (by the chip manufacturer) copy of the public key in this unit,\nstored by this unit.  It might also be an online directory with access to\neveryone's public keys.  (This would introduce another weakness to the\nsecurity of the scheme, of course.)  Presumably, if you don't use your\ndesignated key, you can't get a verified connection to other standard chips.\n \n   It might be useful to have a modified chip, which would allow you to\nuse either the original public/private key pair, or some other key pair\nand verification scheme.  Unfortunately, this would not allow you to call\nmost people and establish secure communications....\n \n   --John Kelsey\n>I hope somebody starts doing this soon after the first\n>ones are released...\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9951, "properties": {"category": "rec.sport.baseball", "text": "Subject: Best Sportwriters...\nFrom: csc2imd@cabell.vcu.edu (Ian M. Derby)\nExpires: Sat, 1 May 1993 04:00:00 GMT\nOrganization: Virginia Commonwealth University\nKeywords: Sportswriters\nSummary: Sportswriters\nLines: 19\n\n\nSince someone brought up sports radio, howabout sportswriting???\n\n(Anyone give an opinion) \n\nWhich city do you think has the best sports coverage in terms of\nprint media? \n\n(these are general questions) \n\nIs the Washington Post better than the Philadelphia Inquier or the NY\nTimes?  \n\nHowabout the Philadelphia Daily News compared to the New York Daily\nNews?  \n\n\nDo you notice papers being subjective or objective to the home team?\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9952, "properties": {"category": "sci.electronics", "text": "From: stevens@madvlsi.columbia.edu (Andy Stevens)\nSubject: Re: decoupling caps - onboard\nOrganization: Columbia University\nX-Posted-From: greece.madvlsi.columbia.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 14\n\nIn article <1993Apr20.173652.762@jarvis.csri.toronto.edu>, ravin@eecg.toronto.edu (Govindan Ravindran) writes:\n|>         I would like to know if any one had any experience with having\n|> on-board decoupling capacitors (inside a cmos chip) for the power\n|> lines. Say I have a lot of space left im my pad limited design.\n|> any data on the effect of oxide breakdown? any info or pointers\n|> are appreciated.\n\nDEC did this on their new alpha chip.  I'm sure you could call them up\nand ask them how they did it (haha).\n\nActually, there are some details in their article in IEEE Journal of\nSolid-State Circuits.  I think it was sometime around Nov.  1992.\n\n--andy s.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9953, "properties": {"category": "comp.graphics", "text": "From: bosch@rz.uni-karlsruhe.de (Gerhard Bosch)\nSubject: Re: Newsgroup Split\nOrganization: University of Karlsruhe, Germany\nLines: 55\nDistribution: world\nNNTP-Posting-Host: ifh-hp2.bau-verm.uni-karlsruhe.de\nMime-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit\n\nIn article <NERONE.93Apr20085951@sylvester.cc.utexas.edu>, nerone@ccwf.cc.utexas.edu (Michael Nerone) writes:\n|> In article <1quvdoINN3e7@srvr1.engin.umich.edu>, tdawson@engin.umich.edu (Chris Herringshaw) writes:\n|> \n|>   CH> Concerning the proposed newsgroup split, I personally am not in\n|>   CH> favor of doing this.  I learn an awful lot about all aspects of\n|>   CH> graphics by reading this group, from code to hardware to\n|>   CH> algorithms.  I just think making 5 different groups out of this\n|>   CH> is a wate, and will only result in a few posts a week per group.\n|>   CH> I kind of like the convenience of having one big forum for\n|>   CH> discussing all aspects of graphics.  Anyone else feel this way?\n|>   CH> Just curious.\n|> \n|> I must agree.  There is a dizzying number of c.s.amiga.* newsgroups\n|> already.  In addition, there are very few issues which fall cleanly\n|> into one of these categories.\n|> \n|> Also, it is readily observable that the current spectrum of amiga\n|> groups is already plagued with mega-crossposting; thus the group-split\n|> would not, in all likelihood, bring about a more structured\n|> environment.\n|> \n|> --\n|>    /~~~~~~~~~~~~~~~~~~~\\/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\\n|>   /    Michael Nerone   \\\"I shall do so with my customary lack of tact; and\\\n|>  /   Internet Address:   \\since you have asked for this, you will be obliged\\\n|> /nerone@ccwf.cc.utexas.edu\\to pardon it.\"-Sagredo, fictional char of Galileo.\\\n\nHi,\nIt might be nice to know, what's possible on different hard ware platforms.\nBut usually the hard ware is fixed ( in my case either Unix or DOS- PC ).\nSo I'm not much interested in Amiga news. \n\nIn the case of Software, I won't get any comercial software mentioned in this\nnewgroup to run on a Unix- platform, so I'm not interested in this information.\n\nI would suggest to split the group. I don't see the problem of cross-posting.\nThen you need to read just 2 newgroups with half the size. \n\nBUT WHAT WOULD BE MORE IMPORTANT IS TO HAVE A FAQ. THIS WOULD REDUCE THE\nTRAFFIC A LOT.\n\nSincerely, Gerhard\n-- \nI'm writing this as a privat person, not reflecting any opinions of the Inst.\nof Hydromechanics,  the University of Karlsruhe, the Land Baden-Wuerttemberg,\nthe Federal Republic of Germany and  the European Community.  The address and\nphone number below  are just to get in touch with me.  Everything I'm saying, \nwriting and typing is always wrong ! (Statement necessary to avoid law suits)\n=============================================================================\n-    Dipl.-Ing. Gerhard Bosch M.Sc.             voice:(0721) - 608 3118     -\n-    Institute for Hydromechanic                  FAX:(0721) - 608 4290     -\n-    University of Karlsruhe, Kaiserstrasse 12, 7500-Karlsruhe, Germany     -\n-    Internet: bosch@ifh-hp2.bau-verm.uni-karlsruhe.de                      -\n-      Bitnet: nd07@DKAUNI2.BITNET                                          -\n=============================================================================\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9954, "properties": {"category": "sci.med", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: food-related seizures?\nOrganization: The Portal System (TM)\nDistribution: world\nLines: 6\n\nI remember hearing a few years back about a new therapy for hyperactivity\nwhich involved aggressively eliminating artificial coloring and flavoring\nfrom the diet.  The theory -- which was backed up by interesting anecdotal\nresults -- is that certain people are just way more sensitive to these\nchemicals than other people.  I don't remember any connection being made\nwith seizures, but it certainly couldn't hurt to try an all-natural diet.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9955, "properties": {"category": "soc.religion.christian", "text": "From: news@cbnewsk.att.com\nSubject: Re: When are two people married in God's eyes?\nOrganization: AT&T Bell Labs\nLines: 23\n\nIn article <Apr.16.23.15.03.1993.1820@geneva.rutgers.edu> mcovingt@aisun3.ai.uga.edu (Michael Covington) writes:\n>In article <Apr.14.03.07.21.1993.5402@athos.rutgers.edu> randerso@acad1.sahs.uth.tmc.edu (Robert Anderson) writes:\n>>I would like to get your opinions on this: when exactly does an engaged\n>>couple become \"married\" in God's eyes? \n>\n>Not if they are unwilling to go through a public marriage ceremony,\n>nor if they say they are willing but have not actually done so.\n>\n>Let's distinguish _real_ logistical problems (like being stranded on a\n>desert island) from _excuses_ (such as waiting for so-and-so's brother\n>to come back from being in the army so he can be in the ceremony)...\n\nI disagree.  People marry each other.  When they commit fully to each\nother as life partners, they are married.  The ceremony may assist in\nemphasizing the depth of such a commitment, but is of itself nothing.\nGod knows our hearts.  He knows when two have committed themselves to\nbe one, he knows the fears and delusions we have that keep us from fully\ngiving ourselves to another.  The way I see it, you'd have to be living\ntogether in a marriage for somewhere between 10 and 100 years before anyone\nknew if a marriage really existed, but God knows.  I don't think God keeps\na scorebook.\n\nJoe Moore\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9956, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: tdarugar@cs.ucsd.edu (Tony Darugar)\nSubject: Fahrenheit 1280+ problems, help!\nOrganization: CSE Dept., U.C. San Diego\nLines: 37\nNntp-Posting-Host: tartarus.ucsd.edu\n\n\nHi,\n\n  I recently bought an Orchid Fahrenheit 1280+. It's a real nice card,\nbut I'm having very big problems with it.\n\n  The basic problem is that vertical lines are missing from the display\nin windows. Something like every other line or so.\nAlso, when I use a DOS gif viewer, namely vpic 6.0c, in Fahrenheit 1280\nmode, vertical lines are swapped. It's very strange looking.\nIf it uses VESA standards, however, it works great! only it thinks there's\nonly 512K on the card. (There's 1MB on there).\n\n  I have contacted Orchid support, and they tried to be helpful, but didn't\nhave the answer. I don't think the card is the problem, since it works great\non my friend's computer.\n\n  Here is my setup:\nFahrenheit 1280+, 1MB, bios 1.1\n386-25, Opti-chipset2, AMI bios 1990, 5MB ram.\nMaxtor 120MB harddrive, (slave)\nMaxtor 40Mb harddrive (master)\nPanasonic c1381 monitor,\nversion 4.6 windows drivers.\nwindows 3.1\nI tried taking all memory managers, etc off, and took all other cards\n(besides disk controller) off.\n\n  My friend's setup is 386sx-16, shamrock monitor.\n\nIf anyone has seen anything like this, or can otherwise help, I will be very\ngreatful.\n\nPlease send e-mail to tdarugar@tartarus.ucsd.edu or\n\t\t\ttdarugar@ebon.ucsd.edu\n\nTony.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9957, "properties": {"category": "rec.sport.hockey", "text": "From: v124p7kk@ubvmsc.cc.buffalo.edu (Darryl S Brooks)\nSubject: Re: Too Many Europeans in NHL (Euro-bashing?)\nOrganization: University at Buffalo\nLines: 60\nNews-Software: VAX/VMS VNEWS 1.41\nNntp-Posting-Host: ubvmsc.cc.buffalo.edu\n\nIn article <rauser.734062608@sfu.ca>, rauser@fraser.sfu.ca (Richard John Rauser) writes...\n> \n> \n>   Here's the point: there are far too many Europeans in the NHL. I am sick\n>of watching a game between an American and a Canadian team (let's say, the\n>Red Wings and the Canucks) and seeing names like \"Bure\" \"Konstantinov\" and\n>\"Borshevshky\". Is this North America or isn't it? Toronto, Detriot, Quebec,\n>and Edmonton are particularly annoying, but the numbers of Euros on other\n>teams is getting worse as well. \n> \n>    I live in Vancouver and if I hear one more word about \"Pavel Bure, the\n>Russian Rocket\" I will completely throw up. As it is now, every time I see\n>the Canucks play I keep hoping someone will cross-check Bure into the plexiglassso hard they have to carry him out on a stretcher. (By the way, I'm not a\n>Canucks fan to begin with ;-). \n> \n>    Okay, the stretcher remark was a little carried away. But the point is that\n>I resent NHL owners drafting all these Europeans INSTEAD of Canadians (and\n>some Americans). It denies young Canadians the opportunity to play in THEIR\n>NORTH AMERICAN LEAGUE and instead gives it to Europeans, who aren't even\n>better hockey players. It's all hype. This \"European mystique\" is sickening,\n>but until NHL owners get over it, Canadian and American players will continue\n>to have to fight harder to get drafted into their own league.\n> \n>    With the numbers of Euros in the NHL escalating, the problem is clearly\n>only getting worse.\n> \n>    I'm all for the creation of a European Hockey League, and let the Bures\n>and Selannes of the world play on their own continent.\n> \n>    I just don't want them on mine.\n> \n> \n\tAh, so now we're into European player bashing?  What next?  \nNo more French Canadiens?  Yeah, there's an idea!  Let them French-\nspeaking Canadiens have their own hockey league!  We don't want them!\n\tAre you _CRAZY_?  The NHL is one of the true international\nleagues, and yes, there _ARE_ many Europeans who deserve to play in\nthe NHL and are better than some North Americans, look at Teemu!!!\nI, for one, am glad to see Europeans in the NHL and I hope the\nNHL soon expands to Europe.  Its nice to see all these different\npeople come together to form the (soon to be) 26 hockey teams.\n\t\n> \n> \n>-- \n>Richard J. Rauser        \"You have no idea what you're doing.\"\n>rauser@sfu.ca            \"Oh, don't worry about that. We're professional\n>WNI                          outlaws - we do this for a living.\"\n>-----------------\n>\"Remember, no matter where you go, there you are.\" -Dr.Banzai\n\nDarryl Brooks                    University at Buffalo\n                __                 ______                        ///\n       | |     /  \\  \\ \\     / /  / _____          / /         ////\n       | |    / /\\ \\  \\ \\___/ /  (  \\          ---/-/---       ///\n       | |   / /__\\ \\   \\   /      \\  \\       ---/-/---       ///\n| |____| |  /  ____  \\   | |     ____\\  )       / /          ///\n \\______/  / /      \\ \\  | |     ______/                  ///////\n\n                   Go Bills, Sabres, and Magic!!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9958, "properties": {"category": "talk.politics.mideast", "text": "From: amehdi@src.honeywell.com (Hossien Amehdi)\nSubject: Re: was: Go Hezbollah!!\nNntp-Posting-Host: tbilisi.src.honeywell.com\nOrganization: Honeywell Systems & Research Center\nLines: 26\n\nIn article <C5IFH7.3q4@news.cso.uiuc.edu> eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf) writes:\n>\n>What the hell do you know about Israeli policy?  What gives you the fiat\n>to look into the minds of Israeli generals?  Has this 'policy of intimidation'\n>been published somewhere?  For your information, the actions taken by Arabs,\n>specifically the PLO, were not uncommon in the Lebanon Campaign of 1982.  My\n>brain is full of shit?  At least I don't look into the minds of others and \n>make Israeli policy for them!\n>\n... deleted\n\nI am not in the business of reading minds, however in this case it would not\nbe necessary.  Israelis top leaders in the past and present, always come across\nas arrogant with their tough talks trying to intimidate the Arabs.  \n\nThe way I see it, Israelis and Arabs have not been able to achieve peace\nafter almost 50 years of fighting because of the following two major reasons:\n\n 1) Arab governments are not really representative of their people, currently\n    most of their leaders are stupid, and/or not independent, and/or\n    dictators.\n\n 2) Israeli government is arrogant and none comprising.\n\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9959, "properties": {"category": "comp.windows.x", "text": "From: curtiss@cs.UND.NoDak.Edu (Chuck Curtiss x3289)\nSubject: Athena Widgets\nOrganization: University of North Dakota; Grand Forks, ND\nLines: 5\nNNTP-Posting-Host: agassiz.cas.und.nodak.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nWhere do I find the Athena Widgets that are needed for xtdm-2.4.8 \n\nThanks in advance\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9960, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ghhwang@csie.nctu.edu.tw (ghhwang)\nSubject: Re: WP-PCF, Linux, RISC?\nOrganization: Computer Sci. & Information Eng., Chiao-Tung U, Taiwan, ROC\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 7\n\nDear friend,\n  The RISC means \"reduced instruction set computer\". The RISC usually has \nsmall instruction set so as to reduce the circuit complex and can increase \nthe clock rate to have a high performance. You can read some books about\ncomputer architecture for more information about RISC.\n                       \n                                   ghhwang@csie.nctu.edu.tw form R.O.C TaiwaN \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9961, "properties": {"category": "comp.windows.x", "text": "From: raney@teal.csn.org (Scott Raney)\nSubject: Re: Hypercard for UNIX\nNntp-Posting-Host: teal.csn.org\nOrganization: Colorado SuperNet, Inc.\nLines: 35\n\nqueloz@bernina.ethz.ch (Ronald Queloz) writes:\n\n>Hi netlanders,\n\n>Does anybody know if there is something like Macintosh Hypercard for any UNIX \n>platform?\n\nThere are several products you might investigate.  If you've got\n$20,000 per seat and high-end hardware, Gain Momentum might be a good\nchoice.  It isn't compatible with HyperCard, but has a similar\narchitecture (and *way* more functionality).  I don't have contact\ninformation, but they were recently purchased by Sybase who shouldn't\nbe too hard to find.\n\nIf you're running News on SPARC, check out HyperLook\n(hyperlook@turing.com).  It uses Postscript as a scripting language\nwhich is good if you need to do lots of display oriented scripting,\nbut not so good for non-programmers.  It was $995, last I heard.\n\nYou might also look at our product MetaCard.  We're alpha-testing\ndirect importing of HyperCard stacks (we've even made the test release\navailable for anonymous FTP), so we're obviously the closest in\nfunctionality.  MetaCard runs on most UNIX workstations and costs\n$495.  Email to info@metacard.com for more details.\n  Scott\n\n>Thanks in advance\n\n\n>Ron.\n-- \n***********************************************************************\n* Scott Raney  303-447-3936            Remember: the better you look, *\n* raney@metacard.com                   the more you'll see -- Lidia   *\n***********************************************************************\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9962, "properties": {"category": "comp.graphics", "text": "From: orourke@sophia.smith.edu (Joseph O'Rourke)\nSubject: Re: Need a good concave -> convex polygon algorithm\nOrganization: Smith College, Northampton, MA, US\nLines: 16\n\nIn article <C5Juyz.ALy@murdoch.acc.Virginia.EDU> rws2v@uvacs.cs.Virginia.EDU (Richard Stoakley) writes:\n>\tWe need a good concave ->convex polygon conversion routine.\n>I've tried a couple without much luck.  Please E-mail responses and I\n>will post a summary of any replies.  Thank you.\n>\n>Richard Stoakley\n>rws2v@uvacs.cs.Virginia.EDU\n\nThe problem is not precisely defined above, but if you need to find\nthe smallest convex polygon that encloses a given polygon, then\nyou are seeking the convex hull of your original polygon.  There\nare two ways to do this:  use a somewhat tricky but by-now well\nexamined linear-time algorithm that exploits the polygon boundary,\nor just feed the vertices of the original polygon to a convex hull\nroutine and accept O(n log n).  Both methods are discussed in\nPreparata and Shamos, for example.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9963, "properties": {"category": "talk.politics.mideast", "text": "From: javad@hplabsz.hpl.hp.com (Mash Javad)\nSubject: Re: News briefs from KH # 1026\nOrganization: Labaniyati-ye-Sar-e-Koocheh\nLines: 40\n\nIn article <sehari.735313083@vincent1.iastate.edu> farzin@apollo3.ntt.jp (Farzin Mokhtarian) writes:\n>\n>From:  Kayhan Havai # 1026\n>--------------------------\n>                    \n>                         \n>o Dr. Namaki,  deputy minister of health stated that infant\n>  mortality (under one year old) in Iran went down from 120 \n>  per  thousand before the revolution to 33 per thousand at\n>  the end of 1371 (last month).\n\nDr. cheghadr bA namakand!  They just wait until they are teenagers to kill\nthem!\n\n>    \n>o Dr Namaki also stated that before the revolution only\n>  254f children received vaccinations to protect them\n>  from various deseases but this figure reached 93at\n>  the end of 1371.\n\nhuh?\n\n\n>o During the visit of Mahathir Mohammad, the prime minister\n>  of Malaysia, to Iran, agreements for cooperation in the\n>  areas of industry, trade, education and tourism were\n>  signed. According to one agreement, Iran will be in\n>  charge of building Malaysia's natural gas network.\n\nYup.  IRI also granted a great deal of reconstruction of houses and\nbuildings in war torn areas to Malaysia. Khak too sareshoon, one of the \nonly industries we really have is construction, and there are all these\nunemployed youth, and they give money to Malaysia to do what Iranians\ncan and should be doing.\n                    \n>                 \n> - Farzin Mokhtarian\n\nMash Javad\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.468+0000", "event": "documents", "entityId": 9964, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ah301@yfn.ysu.edu (Jerry Sy)\nSubject: how to boot from ext HD on power on ?\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 12\nReply-To: ah301@yfn.ysu.edu (Jerry Sy)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nI have an external hard drive I wish to use as startup disk.\nproblem is, when I switch on the mac, it boots on the internal HD,\nbut when I restart  (warm boot) the mac, it boots from the external.\nhow do I make  it boot directly from the external ?\n\nplease email replies if possible.\n\nthanks in advance.\n\njerry\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9965, "properties": {"category": "talk.religion.misc", "text": "From: ds0007@medtronic.COM (Dale M. Skiba)\nSubject: Re: BIBLE CONTRADICTIONS and Archer\nNntp-Posting-Host: bass.pace.medtronic.com\nOrganization: Medtronic, Inc.\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 41\n\nJenny Anderson (jennya@well.sf.ca.us) wrote:\n\n\n: medtronic.COM (Dale M. Skiba) entirely missed my point in my previous\n: posting, in which I wrote:\n\n: COMMENT:\n\n: Shortly after that post, I realized two things:  I was running a fever of\n: over 102, and that I probably should not have gone directly from reading\n: alt.slack to posting on this august newsgroup.\n\n: >: >it is not ad hominen to point out that Mr Archer willingly prints blatant\n: >: lies\n: >: >in defense of Bible inerrancy, and thus is worthless as an expert witness.\n\n: >: Okay, Im game, give us a listing of blatant lies from _Encyclopedia of\n: >: Biblical Difficulties_ or other Archer writings.\n\n: >That would be interesting.  If only a very short list can be generated,\n: >I think it is more likely that Mr. Archer, with his inerancy mindset is\n: >not always impartial and made a doozy of a mistake.  (IMHO I also think\n: >that this mindset tends to generate these sorts of mistakes...)\n\n: >On the other hand, if a long list can be generated, it is more likely\n: >that Mr. Archer intentionally uses deception in hs books. (Why should\n: >he be deceptive just with Tyre?)\n\n: So, Archer is just sitting around, rubbing his hands and plotting how next\n: to deceive?  OK, lets _see_ the list...\n\nThis was an open question.  I assumed that if Mr. Archer is a chronic\nliar, someone whould have documented it.   This assumption is based on\nhow talk.origins regulars have documented numerous cases of Creationist\ndeceptions (such as Duane Guish and his friends).\n\nNo long list of Archer mistakes has yet been given, so this may be just\nan isolated incident...\n\n--\nDale Skiba\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9966, "properties": {"category": "soc.religion.christian", "text": "From: jhpb@sarto.budd-lake.nj.us (Joseph H. Buehler)\nSubject: Re: quality of Catholic liturgy\nOrganization: none\nLines: 13\n\nTim Rolfe writes:\n\n   without active participation.  If you know the Latin, one really\n   beautiful way to hear the Passion is it's being chanted by three\n   deacons:  the Narrator chants in the middle baritone range, Jesus chants\n   in the bass, and others directly quoted are handled by a high tenor.\n\nI heard the Gregorian chant of the Passion on Good Friday.  In this\nliturgy, our Lord is definitely *very* sad.  It's as if He has\nresigned Himself to die for these poor pitiful creatures who are\nkilling Him.\n\nThe chant is *quite* beautiful.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9967, "properties": {"category": "rec.autos", "text": "From: jobin@server.uwindsor.ca (Scarecrow)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: University of Windsor, Ontario, Canada\nLines: 37\n\nseningen@maserati.ross.com (Mike Seningen)\n> 85 Mph speedos -- esp. the electronic ones.\n>\n> The digital dash of the 87 cougars with the large analog clock in\n> the middle of the dash -- everything was digital except the stinking clock?\n\n  The funny thing about the digital dash (87 T-bird) with the 85mph speedo \nlimit was that if you pressed the button to convert to kilometers it would \nread all the way up to 187kph.  At this point the stock anemic 302 would get \nshort of breath.  This of course was equivalent to about 116mph (hehe).I bet \nI really coulda confused this thing if I'd toyed with the engine and rolled\nthe stupid thing (the digits were limited to 199). \n\n  I've gotta agree with ya on the analog clock w/digital dash though.  My\ngirlfriend had a '85 TurboCoupe with a digital clock and analog gauges/radio.\nGo figure...\n\n\nusenet@constellation.ecn.uoknor.edu (Usenet Administrator)\n> I love the keyless entry on my T-Bird; it's great for those times that\n> I had to stop to put air in my tires. I could get out and lock the door\n> with the engine running while I ran around to air up the tire. It also\n\n  I had a great feature on my T-bird....  I could pull the key out and \nleave the ignition on.  This scared the hell out of me the first time it\nhappened but I kinda grew to like it.  Musta been a bad key copy or \nsomething.\n\nMark Novakovic\n-----\n\"There is no god up in the sky tonight      __ _\nno sign of heaven anywhere in sight\"  -nin /_/\\/\\ \"Jesus loves ya. Blow me.\"\n   _  _         __  _      _               \\_\\  /  -- In tribute to my former\n  / \\/ \\   /||\\    / \\|\\  / \\\\         /   /_/  \\  area supervisor Jim Bonneau\n  \\ /     / || \\__/   | \\/   \\\\       /    \\_\\/\\ \\ and the infamous Bonneau Math\n   \\\\    /__||_/  \\   |_/\\   / \\  /  /        \\_\\/ (demoted not departed)\n \\_/ \\_//   || \\__ \\_/| \\ \\_/   \\/ \\/ Ministry\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9968, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: craig@monster.apd.saic.com (Craig Lewis)\nSubject: Re: Please Refresh On Internet Access To CompuServe\nOrganization: SAIC, Reston, VA\nLines: 31\n\ncheong@solomon.technet.sg (SCSTECH admin) writes:\n\n>Hi,\n\n>sometime ago there are some discussions on gaining CompuServe access thru\n>the Internet. But I seem to misplace those articles. Can someone please\n>refresh me where (which site) I can telnet to to gain access.\n\nTry  telnet 128.196.128.234, login TO_CSERVE\n\nThis will get you into the CompuServe network. Enter hostname CIS and you'll get\n the UserID prompt.          \n\n>Hopefully I can download files as well.\n\n I haven't, if you can figure it out let me know.  Also, let me know if your\nbackspace key works :)\n   \n>Thanks,\n\n\n>Arthur Lim\n>Email : arthur@mailhost.scs.com.sg\n\n\n--------------------------\nCraig Lewis\nSAIC\n703-318-4756\ncraig@monster.apd.saic.com\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9969, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: TAL@brownvm.brown.edu ()\nSubject: EPS Technologies; experience anyone?\nOrganization: Brown University - Providence, Rhode Island  USA\nLines: 29\nNNTP-Posting-Host: brownvm.brown.edu\nSummary: 486dx 33mhz, recommendations, EPS\nX-News-Software: BNN via BNN_POST v1.0 beta\n\nAfter a rough start purchasing a 486 system (see earlier post), I'm trying\nagain.  I'm looking at the following system offered by EPS Technologies:\n\n- 486dx 33mhz w/ 256K static RAM cache,AMI Bios\n- 3 32-bit VESA local bus slots, 3 16-bit slots, 1 8-bit slot\n- Teac 1.2 & 1.44 mb floppy drives\n- Maxtor 170 MB hard drive (15 ms) IDE w/64K cache buffer\n- 32-bit vesa local bus video card w/ 1mb RAM 1024 X 768 NI (I *think* it's an\n   Orchid Fahrenheit 1280 card)\n- 14\" NI Multisync monitor 1024 X 768\n- 101 Keyboard\n- 200 Watt power supply\n- Windows 3.1, Mouse, DOS 6.0\n- *3* years limited warranty\n- 1 year on-site service\n\nI'm probably going to add the $125 for a 15\" flat-screen digital monitor, and\nwill also want to go for at least 8 mb RAM ($159 extra).\n\nHas anyone bought from EPS Technologies, particularly a system like the one\nI'm considering.  I'm especially interested in their warrantee and service.\nCan anyone recommend other companies who offer similar packages, with support,\nand comparable prices (I see FastMicro just bit it...).\nThanks in advance,\n\n-Toby Loftus\nTAL@BROWNVM\nTAL@brownvm.brown.edu\nBrown University\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9970, "properties": {"category": "misc.forsale", "text": "From: stephen@access.digex.com (stephen balbach)\nSubject: SLS Linux for sale disk/tape\nOrganization: Taylor Balbach Software, Columbia, MD USA\nLines: 41\nNNTP-Posting-Host: access.digex.net\nKeywords: linux sls\n\n\n\nSince I have some free time while looking for a job I thought \nI would offer Linux on disk and tape for those who need it.\n\n\nNOTE: I am offering this service for EXPERIENCED users who \nrequire no support.  Simply put I am just a disk shuffler.  If \nyou think you will need support I HIGHLY recommend  \nSoftlanding Linux System (SLS) directly.  They provide an\nexcellent product at a decent price with support.\n\nI am the lazy mans service, for those who don't want to spend \n4 hours on the modem and 2 hours shuffling floppies.  And \nthose who don't need SLS support and opt to go it alone.\n\nWhat you get... each disk is $1.50(5.25) \n                             $1.75(3.5)       (14 disk minimum).\n\nA Minimal System     : 4 Disks   6.00/7.00\nB Base System Extras : 7 Disks   10.50/12.25\nC Compilers          : 3 Disks   4.50/5.25\nD Documentation      : 2 Disks   3.00/3.50\nS Source, misc.      : 1 Disk    1.50/1.75\nT TeX                : 3 Disks   4.50/5.25\nX X-Windows          : 8 Disks   12.00/14.00\n\n\nEntire set %5 discount: 40.00/46.50\n\nor the entire set on QC-40 tape for 40.00\n\n\nSend check or money order \n\nStephen Balbach\n5437 Enberend Terrace\nColumbia, MD 21045\n\nsend e-mail so I can have it ready sooner -> \nstephen@access.digex.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9971, "properties": {"category": "rec.sport.baseball", "text": "From: sepinwal@mail.sas.upenn.edu (Alan Sepinwall)\nSubject: Re: And America's Team is....But Why?\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 22\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <kingoz.735066879@camelot> kingoz@camelot.bradley.edu (Orin Roth) writes:\n>\n>   Well, officially it's the Braves. At least up until they started winning\n>   it was. Are they still, officially? \n>   If so, why? and how did they receive this label?\n\nProbably because everyone (that is, everyone who has cable) can watch\nevery Braves game. They are the only team that has all of its games\nbroadcast nationwide. And if you don't like your local team, or you don't\nhave a local team, the Braves can kind of become your local team because\nyou can watch them every day.\n\n\n--I'm outta here like Vladimir!\n-Alan\n\n===========================================================================\n| \"What's this?  This is ice.  This is what happens to water when it gets |\n|  too cold.  This?  This is Kent.  This is what happens to people when   |\n|  they get too sexually frustrated.\"                                     |\n|               -Val Kilmer, \"Real Genius\"                                |\n===========================================================================\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9972, "properties": {"category": "rec.sport.hockey", "text": "From: georgeh@gjhsun (George H)\nSubject: Re: Octopus in Detroit?\nOrganization: Michigan State University\nLines: 17\nNNTP-Posting-Host: gjhsun.cl.msu.edu\n\nHarold Zazula <DLMQC@CUNYVM.BITNET> writes:\n\n>I was watching the Detroit-Minnesota game last night and thought I saw an\n>octopus on the ice after Ysebaert scored to tie the game at two. What gives?\n>(is there some custom to throw octopuses on the ice in Detroit?)\n\nIt is a long standing good luck Redwing's tradition to throw an octopus \non the ice during a Stanley Cup game. They say it dates back to '52\nat the Olympia when the Wings became the 1st team (I think) to sweep \nthe cup in 8 games. A lot hardet to throw one from Joe Louis seats\nthan from the old Olympia balcony, though.\n\nFunniest I ever saw was when some Tiger fans threw one on the field\nduring a Detroit/Toronto baseball game ...  I was living in California\nand the folks I was watching with had never heard of hockey and were \nincredulous when I recognized the octopus BEFORE the camera closeup !!\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9973, "properties": {"category": "misc.forsale", "text": "From: cthulhu@mosquito.cis.ufl.edu (Mark Kupper)\nSubject: ** Comics for sale **\nOrganization: Univ. of Florida CIS Dept.\nLines: 59\nNNTP-Posting-Host: mosquito.cis.ufl.edu\n\n  I want to get rid of alot of comics that I have. I am selling for 30% off\nthe Overstreet Price Guide. \n\nCOMIC                                           CONDITION\n-----                                           ---------\n\nArion #1                                        M\nBatman's Detective Comics #480                  VF-NM\nContest of Champions #1                         M\nContest of Champions #2                         M\nContest of Champions #3                         M\nCrystar #1                                      M\nDaredevil #181 (Elektra Dies)                   NM-M\nDaredevil #186                                  M\nFantastic Four #52 (1st app. Black Panther)     F-VF\nG.I. Joe #1                                     M\nHercules #1                                     M\nIncredible Hulk #181 (1st app. Wolverine)       VF\nThe Krypton Chronicles #1                       M\nThe Man-Thing #1                                M\nThe Man-Thing #5                                M\nMarvel Age #1                                   VF\nMarvel Age #2                                   NM\nMarvel and DC Present (X-men and New\n        Teen Titans)                            M\nMarvel Graphic Novel #4 (1st app. New Mutants)  M\nThe Marvel Guide to Collecting Comics           NM\nMarvel Team-up #1                               VF-NM\nMarvel Team-up #95                              M\nMaster of Kung Fu #90                           M\nThe Micronauts #1                               M\nMicronauts King-Size Annual #1                  M\nNew Mutants #1 (5 copies!)                      M\nNew Mutants #2                                  M\nNew Mutants #3                                  M\nThe Omega Men #1                                M\nRed Sonja #1                                    M\nRipley's Believe It or Not True War Strories #1 VF\nRom Spaceknight #1                              M\nRom Spaceknight #8                              M\nThe Secret Society of Super Villains #1         NM\nPeter Parker, the Spectacular Spiderman #44     M\nAmazing Spiderman #188                          M\nStar Trek #4                                    M\nSuper-Villain Classics #1 (Origin Galactus)     M\nNew Teen Titans #1                              M\nUncanny Tales #33 (Publisher's File Copy)       NM-M\nVision and the Scarlet Witch #1                 M\nWhat If #3 (The Avengers Had Never Been)        NM\nWolverine #1 (limited series)                   M\nWolverine #2 (limited series)                   M\nWolverine #3 (limited series)                   M\nWolverine #4 (limited series)                   M\nX-men #25                                       F\nX-men #26                                       F\nX-men #30                                       F\nX-men #34                                       F\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9974, "properties": {"category": "sci.electronics", "text": "From: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nSubject: A/D board BUS SPEED probl\nDistribution: world\nOrganization: HAL 9000 BBS, W-NET HQ, Ann Arbor, Michigan, USA\nReply-To: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nLines: 39\n\n\nC >Hi:\nC >I have a 486DX2-66MHz computer to use with an A/D board\nC >for data acquisition on an AT bus...I'm having problems.\nC >The AT bus runs at 12.5 MHz - correct?  So there should\nC >be no bus speed conflict. But I read somewhere that the\nC >new 486DX2-66 MHz CPU runs on a 33 MHz bus - is that for\nC >the local bus or the AT bus also - if so then I have a problem.\nC >^^^^^^^^^^^^^^^^^^^^^^^^^^^\nC >When I run on non-turbo-mode the speed goes to 8 MHz and the\nC >A/D doesn't work.  Please mail your views!  Thanks.\nC >Vincent\nC >cyl5@musica.mcgill.ca\nC >\n\nThe STANDARD AT bus (ISA) runs at 8MHz, not 12.5 MHz, but some \nnon-stnadard ISA buses do have higher clock rates, but be careful, since \nsome boards don't work with faster than standard rates.  For instance, my \n486 has adjustable AT bus speeds, and my PAS16 audio card chokes when I do \nAD data acquisition with a bus speed faster than 10MHz.\n\nThe fact that non-turbo-mode speed A/D doesn't work is weird.  You may \nhave a motherboard with a hardware 'bug'.  \n\n33 MHz bus on the 486DX2 66 does refer to the local bus.  FYI: the AT bus \noperates asynchronously, and is linked to the local bus via a 'bus \ninterface', which is one function that your 'chipset'.\n\n-rdd\n\n---\n . WinQwk 2.0b#0 . Unregistered Evaluation Copy\n * KMail 2.95d W-NET HQ, hal9k.ann-arbor.mi.us, +1 313 663 4173 or 3959\n                                                     \n----\n| HAL 9000 BBS:  QWK-to-Usenet gateway  | Four 14400 v.32bis dial-ins    |\n| FREE Usenet mail and 200 newsgroups!  | PCBoard 14.5aM * uuPCB * Kmail |\n| Call +1 313 663 4173 or 663 3959      +--------------------------------+\n| Member of EFF, ASP, ASAD  * 1500MB disk * Serving Ann Arbor since 1988 |\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9975, "properties": {"category": "misc.forsale", "text": "From: paschal@tscs.com (Charles O. Paschal)\nSubject: Nth Engine Graphics Cards\nOrganization: Total Support Computer Systems, Tampa, Florida\nLines: 12\n\nI have the following Nth Engine graphics cards for sale w/drivers for \nAutoCAD R11. Display list proccessing is done through hardware.\n\nB640\t- 640x480\nB752\t- 752x580\n\nI will take the highest reanable offer.\n-- \n------------------------------------------------------------------------------\nCharles Paschal -  Total Support Computer Systems  -  Tampa  -  (813) 876-5990\nUUCP: paschal@tscs\t\t\t\t\t   FAX: (813) 871-2783\nUS-MAIL: Post Office Box 15395 - Tampa, Florida  33684-5395\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9976, "properties": {"category": "rec.sport.hockey", "text": "From: epp@mala.bc.ca (Lorne Epp)\nSubject: Re: LA ON ABC IN CANADA\nOrganization: Malaspina College\nLines: 27\n\nIn article <boora.735182771@sfu.ca>, boora@kits.sfu.ca (The GodFather) writes:\n> \tWas the ABC coverage of the Kings/Flames game supposed to be the\n> way it was shown in BC with CBC overriding the ABC coverage?  When I flipped\n> to ABC, it was the same commentators, same commercials even.  My question\n> is:  Was this the real ABC coverage or did CBC just \"black out\" the \n> ABC coverage for its own?\n> \n> \n\nHere in Nanaimo (on Vancouver Island, for you furriners out there) we\ngot the ABC coverage on KOMO.  It probably depends on your cable company.\n\nI started off switching between the CBC and ABC broadcasts, but finally\nsettled on ABC.  I can't stand Don Whitman, and Al Michaels was doing a\ndecent job.  He followed the play pretty well, knew all the players'\nnames, and only made a couple of \"rookie\" mistakes that I noticed.\nOne thing that surprised me is that they never once attempted to explain\nthe offside rule.\n\nAm-I-paranoid-or-is-this-really-happening department:\nThere were no fights in the game, but there were a couple of occasions\nwhere it looked like a fight was about to start.  Both times ABC cut\naway to show a closeup of a coach or McNall or something.  Has ABC\ndecided to adopt the \"Spicer policy?\"\n\n----------------------------------------------------------------------\nLorne Epp                                               epp@mala.bc.ca\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9977, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: sgi\nLines: 31\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <115565@bu.edu>, jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n|> In article <1qi3l5$jkj@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n|> \n|> >I hope an Islamic Bank is something other than BCCI, which\n|> >ripped off so many small depositors among the Muslim\n|> >community in the Uk and elsewhere.\n|> \n|> >jon.\n|> \n|> Grow up, childish propagandist.\n\nGregg, I'm really sorry if having it pointed out that in practice\nthings aren't quite the wonderful utopia you folks seem to claim\nthem to be upsets you, but exactly who is being childish here is \nopen to question.\n\nBBCI was an example of an Islamically owned and operated bank -\nwhat will someone bet me they weren't \"real\" Islamic owners and\noperators? - and yet it actually turned out to be a long-running\nand quite ruthless operation to steal money from small and often\nquite naive depositors.\n\nAnd why did these naive depositors put their life savings into\nBCCI rather than the nasty interest-motivated western bank down\nthe street?   Could it be that they believed an Islamically owned \nand operated bank couldn't possibly cheat them? \n\nSo please don't try to con us into thinking that it will all \nwork out right next time.\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9978, "properties": {"category": "comp.graphics", "text": "From: jxl9011@ultb.isc.rit.edu (J.X. Lee)\nSubject: JOB\nNntp-Posting-Host: ultb-gw.isc.rit.edu\nOrganization: Rochester Institute of Technology\nDistribution: SERI\nLines: 45\n\n\t\t\n\t              JOB OPPORTUNITY\n\t\t      ---------------\n\n\nSERI(Systems Engineering Research Institute), of KIST(Korea\nInstitute of Science and Technology) is looking for the resumes\nfor the following position and need them by the end of June (6/30). \nIf you are interested, send resumes to:\n\n\tCAD/CAE lab (6th floor)\n\tSystems Engineering Research Institute\n\tKorea Institute of Science and Technology \n\tYousung-Gu, Eoeun-Dong,\n\tDaejon. Korea\n\t305-600\n\n\n\tCOMPANY: Systems Engineering Research Institute\n\n\tTITLE  : Senior Research Scientist\n\n\tJOB DESCRIPTION : In depth knowledge of C.\n\tWorking knowledge of Computer Aided Design.\n\tWorking knowledge of Computer Graphics.\n\tWorking knowledge of Virtual Reality.\n\tSkills not required but desirable : knowledge of\n\tdata modeling, virtual reality experience,\n\tunderstanding of client/server architecture.\n\n\tREQUIREMENT : Ph.D\n\n\tJOB LOCATION : Daejon, Korea\n\n\tContact Info : Chul-Ho, Lim\n\t\t       CAD/CAE lab (6th floor)\n\t\t       Systems Engineering Research Institute\n\t\t       Korea Institute of Science and Technology \n\t       \t       Yousung-Gu, Eoeun-Dong,\n\t\t       Daejon. Korea\n\t\t       305-600\n\n\t\t       Phone) 82-42-869-1681\n\t\t       Fax)   82-42-861-1999 \n\t\t       E-mail) jxl9011@129.21.200.201\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9979, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ggeorge@bu.edu (Gerry George)\nSubject: Re: 8 cards on a 6 card motherboard?\nArticle-I.D.: bu.115969\nLines: 28\nX-Newsreader: Tin 1.1 PL5\n\nCarl Christensen (christen@astro.ocis.temple.edu) wrote:\n: This may be the dumbest question of the year, but is there a\n: way to 'piggyback' or expand a 6-slot motherboard (all 16-bit)\n: to get the usual 8?  My case has slots for 8, and I'd like to\n: get a scanner, but with all my other cards I'm already max'd out!\n: I'm hoping that a simple solution exists, e.g. an adapter that turns\n\nI'm not sure if this will work, but how about using one of those 'T' expanders\nused in the low-profile cases.  They allow 3-5 slots staggered on either\nside of the card.  You can install it in the last slot, and then (probably) \nhave 2 or 3 sideways slots.  This is actually how it is done in the low\nprofile cases - a standard motherboard, the 'T' connector in one slot, \nand the expansion cards plugged into the 'T'.  I guess you could do this at \neach end of the slots (1 & 8) to add even more.  \n\nThe 'T' connectors are simply tracks with slots on them - no electronics\non it.  The only downside - your case won't close, but for a homebrew system,\nthat may not be a problem.\n\nDon't know about performance, though.  I'll leave that discussion to the \nengineers.\n\n===========================================================================\nGerry George                          | Anything good in life is either\nSchool of Management, Boston Univ.    | illegal, immoral or fattening.\nInternet: ggeorge@acs.bu.edu          | Any item not in the above three\nCompu$erve: 72607.2560@compuserve.com | categories causes cancer in rats!\n===========================================================================\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9980, "properties": {"category": "rec.motorcycles", "text": "From: jeq@lachman.com (Jonathan E. Quist)\nSubject: Re: Should liability insurance be required?\nNntp-Posting-Host: birdie.i88.isc.com\nOrganization: Lachman Technology, Incorporated, Naperville, IL\nLines: 34\n\nIn article <1993Apr14.215154.20143@Newbridge.COM> bradw@Newbridge.COM (Brad Warkentin) writes:\n>In article <1993Apr14.144151.11137@rtsg.mot.com> svoboda@rtsg.mot.com (David Svoboda) writes:\n>>(Sorry, I lost the attributions.\n>>|In most areas, drivers are required to show proof of financial \n>>|responsibility, which usually means insurance. \n>>\n>>Required how?  When they get pulled over?  Most drivers, bellyaching on the\n>>net aside, don't get pulled over and checked.  The laws are enforceable\n>>only after the fact, in which case often somebody is out a lot of money.\n>\n>Don't you have any requirement for yearly plate stickers in the US???? In\n>Ontario and Manitoba for sure and the other provinces (i think) you have\n>to show proof of insurnace when you renew your plate (ie get a new sticker).\n\nYes.  Unfortunately, there is also the concept that the owner of a car\nis not responsible for the actions of any (authorized) user of the car.\nThat's one of the biggest arguments against photo-radar ticketing\nsystems.\n\n>You also get to pay all outstanding tickets. They even have cross province\n>agreements (at least between Ontario and Quebec) so that unpaid tickets in\n>the other province are on record. No having an up to date sticker is a) bad\n\nTrouble with that is, you then have no recourse if a mis-issued ticket\nor a clerical error on a computer follow you around.  The City of Chicago\n(the informal motto of which being \"The City the Works\") issues dozens\nof parking tickets each year to people who have never set foot (or tire)\nin the city.\n\n-- \nJonathan E. Quist        jeq@lachman.com       Lachman Technology, Incorporated\nDoD #094, KotPP, KotCF '71 CL450-K4 \"Gleep\"                 Naperville, IL\n __       There's nothing quite like the pitter-patter of little feet,\n \\/                   followed by the words \"Daddy!  Yay!\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9981, "properties": {"category": "comp.graphics", "text": "From: joachim@kih.no (joachim lous)\nSubject: Re: TIFF: philosophical significance of 42\nOrganization: Kongsberg Ingeniorhogskole\nLines: 30\nNNTP-Posting-Host: samson.kih.no\nX-Newsreader: TIN [version 1.1 PL8]\n\nulrich@galki.toppoint.de wrote:\n\n> According to the TIFF 5.0 Specification, the TIFF \"version number\"\n> (bytes 2-3) 42 has been chosen for its \"deep philosophical \n> significance\".\n\n> When I first read this, I rotfl. Finally some philosphy in a technical\n> spec. But still I wondered what makes 42 so significant.\n\n> Last week, I read the Hitchhikers Guide To The Galaxy, and rotfl the\n> second time. (After millions of years of calculation, the second-best\n> computer of all time reveals that 42 is the answer to the question\n> about life, the universe and everything)\n\n> Is this actually how they picked the number 42?\n\nYes.\n\n> Does anyone have any  other suggestions where the 42 came from?\n\nI don't know where Douglas Adams took it from, but I'm pretty sure he's\nthe one who launched it (in the Guide). Since then it's been showing up \nall over the place.\n\n    _______________________________\n   / _ L*   /  _  / .    /      _  /_  \"One thing is for sure: The sheep\n  /  _)    /()(/(/)//)) /_ ()(/_) / /  Is NOT a creature of the earth.\"\n / \\_)~  (/ Joachim@kih.no       / /     \n/_______________________________/ / -The back-masking on 'Haaden II'\n /_______________________________/  from 'Exposure' by Robert Fripp.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9982, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hardwick@panix.com (Paul Hardwick)\nSubject: Re: PC Syquest on a Mac??\nOrganization: PANIX Public Access Unix, NYC\nLines: 35\n\nIn <1qsk6u$d8l@usenet.INS.CWRU.Edu> rcs8@po.CWRU.Edu (Robert C. Sprecher) writes:\n\n\n>Is it possible, ie via creative cable splicing or whatever, to\n>hook a Syquest 44MB removable drive to a Mac?\n\n>Is there any difference with the guts of the drive or is it\n>just cable differences?\n\n>Thanks.\n\nTheir should be no difference in the drive itself between IBM-PC and Mac.\nThe two main differences are the formatting of the disk itself (but with\nthe correct software each can read the others) and maybe the cable\n(depends on your SCSI board on IBM-PC).\n\nIf you get some Mac softawre to allow mounting of ANY IBM-formatted disk\nand the correct cable you should br able to mount and read your IBM-PC\nsyquest.\n\ngood luck,\n\n--Paul\n\n-- \n  +-------------------------------------------------------------------------+\n  | Paul Hardwick  |  Technical Consulting  |  InterNet: hardwick@panix.com |\n  | P.O. Box 1482  |  for MVS (SP/XA/ESA)   |  Voice:    (212) 535-0998     |\n  | NY, NY 10274   |  and 3rd party addons  |  Fax:      (212) Pending      |\n  +-------------------------------------------------------------------------+\n-- \n  +-------------------------------------------------------------------------+\n  | Paul Hardwick  |  Technical Consulting  |  InterNet: hardwick@panix.com |\n  | P.O. Box 1482  |  for MVS (SP/XA/ESA)   |  Voice:    (212) 535-0998     |\n  | NY, NY 10274   |  and 3rd party addons  |  Fax:      (212) Pending      |\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9983, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: Once tapped, your code is no good any more.\nArticle-I.D.: rwing.2073\nDistribution: na\nOrganization: Totally Unorganized\nLines: 202\n\nIn article <1993Apr17.061326.16130@clarinet.com> brad@clarinet.com (Brad Templeton) writes:\n>In article <tcmayC5M2xv.JEx@netcom.com> tcmay@netcom.com (Timothy C. May) writes:\n>>Getting the court order to reveal the key *also* makes decipherable\n>>all *past* conversations (which may be on tape, or disk, or whatver),\n>>as I understand the proposal. I could be wrong, but I've seen no\n>>mention of \"session keys\" being the escrowed entities.\n>\n>True in theory.  In practice?  The technology of cellular phones will\n>probably be spread spectrum and quite difficult to record the crypttext\n>without the key.  If the frequency path depends on they key, as I\n>understand it to, it *could* be made effectively impossible to record.\n\nI am not an expert in the cryptography science, but some basic things\nseem evident to me, things which this Clinton Clipper do not address.\nThe all pertain to opportunites for abuse, and conclusions based on what\nI have seen the membership of this group (except for two notable persons)\nagree to.  If anything bad is possible by the government in theory, it\nalmost always ends up happening in fact.  So the key is to make abuse\nIMPOSSIBLE.  Question authority, and remember power DOES corrupt.\n\nI think one has to regard this whole idea in the sense that it WILL be\nexpanded to include other data forms, such as data transfer and stored\ndata. and as such should be treated as if it were expanded (or such\nexpansion will be almost impossible to stop, using Clipper as a precident).\nThere was a hint of that in the proposal, remember.  That said, please\nbear with me, I am not very articulate, so I take more words to say\nwhat others could say much more briefly.  Thank you.\n\n>Once it hits land you can record it if you have telco access.  The\n>telco isn't supposed to give that without a warrant.  That's the rule\n>today.\n\nAs I suggested this is NOW.  The hint is in the proposal that this or\nsimilar proposals are being considered for other forms of encryptions\nsuch as data transfer, data files, and such, largely dependent on how\nthis thing is accepted or flies.  I think one would be wise to treat\nthis in the manner one would when (not if) it gets expanded to other\nareas than cellular phones.  I think this is guaranteed to happen, if\nthis proposal gets by.  Salami politics.  It has been and is used in\nseveral other areas, it is certain to be used here.  Government is not\ngoing to easily give up on the idea that they should be able to eavesedrop\nwhenever they want to.  'Court order required' has proven to be a rather\nflimsy guarantee.  If the case warrants, they can always sieze the\nmaterial, and force one to give the key, or sit in jail forever on\nperiodically renewed contempt charges.  So it is not denying the justice\nsystem the information, nor the ability to lock someone up if guilty\n(or refuses to divulge the means to access the info - this is not\nprotected under the Fifth - one can be forced to perform ACTS that would\nresult in divulging incriminating evidence).  So, blocking restrictions\non private encryption is not preventing LEGITIMATE law enforcement - it\ndoes make ILLEGITIMATE law enforcement a bunch more difficult.  Especially\nfishing expeditions without the target's knowlege.  Don't give up the\nright to be safe from that - that should be non-negotiable, and Clinton\nand Co. know it (which is probably why they quietly developed this thing,\nfiguring if they get it this far, they can ram it on through).  How come\nthose consulted could be roughly described as \"us insiders\"?  They cannot\nquietely IMPLIMENT it though, when they ban other schemes to ensure its\nexclusive use.  Hence the nice PR document to try and reassure everyone.\nDon't buy into it.  Has government really earned that kind of trust,\npast or future?  To be secure and free, one must keep government honest\nand the only way to do that is to make abuse IMPOSSIBLE, not 'unlikely'\nor 'difficult'.\n\n>But even so, the evidence would not be admissible, I think, unless the\n>judge so ordered.  I think that even interception of the crypttext\n>without a warrant would be illegal.   Cops can't record today's plain\n>cellular calls and then ask a judge, \"Hey, can we have permission to\n>listen to those tapes?\" can they?\n\nSo what?  One could use information gained by re-use of the keys (saved\nafter the last case was finished) or other means (master key, backdoor,\neasily broken algorithm) to find other evidence which, given to a judge,\nwould authorize a tap which wouldn't have been possible otherwise.  This\nhas been the more common manner of abuse of wiretaps in the past...  For\nlocal cops, this might be workable to keep them honest, but the Feds\nhave a workaround somehow, BET on it.  Does anyone really believe\nfor example, that the government will use a scheme NSA cannot listen\nin on scanning for keywords - either easily defeated in realtime or\nvia a 'master key'?  I sure don't.\n\nThis whole thing sounds like something to eliminate the need to use\nold-fashioned police work to build a case.  In the past, eavesdropping\nwas rather easy (with or without a court order).  I think the Law\nEnforcement community has become a bit spoiled, and will resist changes\nthat require them to revert to using old-fashioned detective work.  I\njust find it somewhat surprising coming from a bunch that cares so much\nabout civil and individual rights, that \"puts people first\".  The question\nis \"put people first\" to WHERE?\n\nWith the innards not being revealed, how is one to be sure there DOESN'T\nexist a 'master key' for use by NSA, etc (so they can do their keyword\nscan, etc on conversations they routinely monitor, without a specific\ncourt order)?   Remember, the cellular phone limitiation is only TEMPORARY.\nBet on it.  And so far I have not heard about police telling people that\nthey have been tapped and nothing incriminating was found.  What is to\nkeep them from simply keeping the keys on file for 'next time'? After\nawhile, they would have quite a collection.  Kept especially for folks\nthey deem 'disruptive'.  And if they get only one key, that would\nreduce the search space a lot, unless it is an RSA scheme.  Remember\nNixon years?  Need for court orders really slowed them down, didn't it?\n\nAnd unless the escrow accounts are not government controlled (fat chance!\nI see one ending up being under, say Treasury, the other under Justice\n:-)) it could be worth some serious bucks to some folks to get keys to\na competitor's Clinton Clipper (or descendent when this idea is expanded\nto be used for all non-government encryption).  Enough bucks would get\none the keys or the innards for this algorithm.  Perhaps not an important\nconcern, but given past government behavior and the other problems...\n\n>>worse, of course, if the government then uses this \"Clinton Clipper\"\n>>to argue for restrictions on unapproved encryption. (This is the main\n>>concern of most of us, I think. The camel's nose in the tent, etc.)\n>\n>Yes, that is a major concern, but I think that they think they can\n>win just by having 99.5% of the USA use this system.  They don't even\n>have to care about the cautious .5% that's left.  They don't catch the\n>really smart crooks anyway.   John Gotti, who would have to be retarded\n>not to realize he was likely to be wiretapped, glibly chatted away\n>on his tapped phone about murder plans.  That's why he's in jail now.\n>Hard to believe, but true.\n\nWhat will one do when it is expanded to data storage encryption?  You\ncan BET that if Clipper is accepted, that will be next on the agenda.\nIt is even hinted at in the proposal - read it carefully...  Expect the\nargumet \"well, if you got nothing to hide...\"  Fine. Then using that\nargument, one should not object to video cameras being installed in\nevery room of one's home.  Granted - an exteme expansion of the idea but\nthe principle holds.  Private stuff should remain private, even from a\ngovt fishing expedition.  And laws/rules may change in the future as\nto 'safeguards'.  When it comes to the Fed Government, safeguards are\npretty meaningless, if they want to do/get something.\n\nDon't work so hard to give up some rather treasured rights, or establish\nbad precidents, please.  The price could be hell to pay, later.\n\n>This scheme can succeed without laws forbidding more, which people would\n>fight a lot harder.  They like this enough that they are dropping the so\n>called \"Digital Telephony\" proposal, according to rumours.  However the\n>meaning of that is complex, since they still want to get at the crypttext\n>on telco systems, and that requires a bit of work.\n\nPeople would fight laws forbidding more NOW, but in, say two years,\nbecause we have this 'crisis' situation which MUST be addressed by some\n'drastic action', just this added reasonable restriction will only bother\nthose who have someting to hide... etc.  Please don't buy into it.\n\nIf the Clinton Clipper is so very good, why not make its algrithm public\nso many people can exchange ideas and examine it, rather than a few\nisolated 'respected experts' (respected by whom?  for what?  Perhaps a\ncertain professor who likes key banks would be one of the selected\nexperts... this does seem to expand on some ideas the person was\nadvocating, if I recall :-).  How would anybody know that what the\nexperts examine is the same as what will end up being used in the Clipper\nChip, if it is kept secret?   Perhaps the Clipper will use a crippled\nversion (with a 'master key' provision), or features not present in the\nversion subjected for study and evaluation by the experts.  And who\nchooses the expertes?  The government?  No conflict of interest there...\n:-)\n\nAnd isn't it a REQUIREMENT for any decent encryption scheme that it NOT\nhave its effectiveness reduced by having the algrorithm widely known?\nI was lead to believe that one should assume the other side has everything\nyou have, except for the key(s)... I recall ideas presented to this\ngroup are rejected if a requirement exists the algorithm be secret...\n\nAnother question - since it is a safe bet this Clipper thing would not\nbe used for government security, they are regarding it as not real secure\nbut \"good enough\" for common folk.  I think I would like to see a full\ndescription (not a PR non-statement) of just what \"good enough\" means?\nI think when saying how strong it is, \"good enough\" really means \"not\nvery\".  The excuse that other countries have these restrictions is not\nacceptable:  Other countries do not have our Bill of Rights and\nConstitution (which the people, not the governments, of those other\ncountries often regard with envy - what we have as rights they have as\nrevokable privileges).  And if we expect to retain those rights and\nprotections, we must not allow them to be gutted because we just GOTTA\nhave this thing to 'fight crime'.  We have allready have our Bill of\nRights pretty much torn to shreds.  We should not permit more weakining\nfor yet another 'noble cause', instead we should be trying to repair\nthe damage.  Our crime problem may have a number of causes, but \"too\nmany rights and safeguards\" is not a signifigant one.  A broken court\nsystem and poor police work are a much more signifigant cause as having\n\"too many rights\" (disregarding addressing the root causes for crime,\netc).\n\nBTW - those who suggest that this is just an attack on Clinton, believe\nthis:  I would be going ballistic reagardless WHO seriously proposed\nthis thing.  It is just another step in a gradual erosion of our rights\nunder the Constitution or Bill of Rights.  The last couple of decades\nhave been a non-stop series of end-runs around the protections of the\nConstitution.  It has to stop.  Now is as good a time as any, if it\nisn't too late allready.\n\n>-- \n>Brad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9984, "properties": {"category": "sci.med", "text": "From: davpa@ida.liu.se (David Partain)\nSubject: Candida Albicans: what is it?\nOriginator: davpa@obel11\nOrganization: Department of Computer Science, University of Linkoping\nLines: 11\n\n\nSomeone I know has recently been diagnosed as having Candida Albicans, \na disease about which I can find no information.  Apparently it has something\nto do with the body's production of yeast while at the same time being highly\nallergic to yeast.  Can anyone out there tell me any more about it?\n\nThanks.\n-- \nDavid Partain                   |  davpa@ida.liu.se\nIDA, University of Link\\\"oping  |  work phone:  +46 (013) 28 26 08\nS-581 83 Link\\\"oping, Sweden    |  telefax:     +46 (013) 28 26 66\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9985, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: They were completely and systematically exterminated by Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 96\n\nIn article <C4xCu3.401@polaris.async.vt.edu> jfurr@polaris.async.vt.edu (Joel Furr) writes:\n\n>Do it.  Depew has shown himself to be unrepentant (though embarrassed) and\n>still possessed of the same fucked-up hubris-laden self-righteousness that\n\nThe theory is that the hollering kills the spirit of the criminal/Nazi \nArmenians of the ASALA/SDPA/ARF Terrorism and Revisionism Triangle. \nNow, try dealing with the rest of what I wrote.\n\nWhat is more, the activities of the Armenian Government seem to have been\nefforts aimed at eradicating a race (the Turks) or aimed at carrying out a\none-sided feud, instead of being a struggle for liberation. From the outset,\nthe efforts of the Armenian revolutionaries within the Ottoman borders took\nthe form of terrorist and destructive actions aimed at mass murder, cruelty\nand genocide, so that no other interpretation of them is possible. Armenian\nactivities started during the reign of Abdulhamid II as individual acts of\nterror, and then developed into assassinations and surprise attacks. The element\nof brute force in these activities increased steadily, culminating in mass\nrebellions and widespread fighting during the First World War. Furthermore,\nwhen the Ottoman army withdrew from Eastern Anatolia after the 1915 Sarikamis\ndefeat, Armenian revolutionaries initiated a series of cruelties in this area.\nAlthough the Russians occupied Eastern Anatolia as an enemy, nevertheless they\nwere constrained by the rules of war. However, when they returned to their\ncountry in 1917 after the Revolution, Armenian revolutionaries were unchecked\nin this area for about a year until the Ottoman forces returned to Erzurum\nin 1918. During this period, Armenian revolutionaries executed massacres on\nthe local people which is recorded in historical documents.[1]\n\nFor example, let us look at a report dated 21 March 1918 which the Commander\nof the Third Army submitted when he entered Erzurum and Erzincan: \n\n \"They were completely and systematically destroyed and burned down \n  by Armenians, even the trees were cut down, and they are like a \n  building entirely consumed by fire in every sense of the word.\" \n\nAs for the people who had been living in Erzurum and Erzincan:\n\n\"Those who were capable of fighting were taken away at the very beginning\n with the excuse of forced labor in road construction, they were taken\n in the direction of Sarikamis and annihilated. When the Russian army\n withdrew, a part of the remaining people was destroyed in Armenian\n massacres and cruelties: they were thrown into wells, they were locked\n in houses and burned down, they were killed with bayonets and swords, in places\n selected as butchering spots, their bellies were torn open, their lungs\n were pulled out, and girls and women were hanged by their hair after\n being subjected to every conceivable abominable act. A very small part \n of the people who were spared these abominations far worse than the\n cruelty of the inquisition resembled living dead and were suffering\n from temporary insanity because of the dire poverty they had lived\n in and because of the frightful experiences they had been subjected to.\n Including women and children, such persons discovered so far do not\n exceed one thousand five hundred in Erzincan and thirty thousand in\n Erzurum. All the fields in Erzincan and Erzurum are untilled, everything\n that the people had has been taken away from them, and we found them\n in a destitute situation. At the present time, the people are subsisting\n on some food they obtained, impelled by starvation, from Russian storages\n left behind after their occupation of this area.\"[2]\n \nForeign observers who witnessed the events, including Russian Officers\nwho did not desert their lines, submitted detailed reports proving the\ngenocide to Ottoman commanders who received them as prisoners of war.\nWhat is most important is that they stated in their reports 'the \nmassacres did not happen by chance but were planned.'[3]\n\nAt the end of the war, the German author Dr. Weiss, his Austrian colleague\nDr. Stein and his Turkish colleague Mr. Ahmet Vefik visited Trabzon, Kars,\nErzurum and Batum between April 17th and May 20th 1918 to record the\ncruelties. Their writings not only show the scope of Armenian activities,\nbut also reveal their goal and true nature.[4]\n\n[1] (The Ottoman State, the Ministry of War), \"Islam Ahalinin Ducar Olduklari\n    Mezalim Hakkinda Vesaike Mustenid Malumat,\" (Istanbul, 1918). The French\n    version: \"Documents Relatifs aux Atrocites Commises par les Armeniens sur\n    la Population Musulmane,\" (Istanbul, 1919). In the Latin script: H. K.\n    Turkozu, ed., \"Osmanli ve Sovyet Belgeleriyle Ermeni Mezalimi,\" (Ankara,\n    1982). In addition: Z. Basar, ed., \"Ermenilerden Gorduklerimiz,\" (Ankara,\n    1974) and, edited by the same author, \"Ermeniler Hakkinda Makaleler -\n    Derlemeler,\" (Ankara, 1978). \"Askeri Tarih Belgeleri ...,\" Vol. 32, 83\n    (December 1983), document numbered 1881.\n[2] \"Askeri Tarih Belgeleri ....,\" Vol. 31, 81 (December 1982), document\n    numbered 1869.\n[3] From Twerdo-Khlebof's report dated 29 April 1918; quoted in Ermeniler ...,\n    Vol. 2, p. 275.\n[4] A. R. (Altinay), \"Iki Komite - Iki Kital,\" (Istanbul, 1919), and, \"Kafkas\n    Yollarinda Hatiralar ve Tahassusler\" (Istanbul, 1919).\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.469+0000", "event": "documents", "entityId": 9986, "properties": {"category": "alt.atheism", "text": "From: kempmp@phoenix.oulu.fi (Petri Pihko)\nSubject: Re: Concerning God's Morality (long)\nOrganization: University of Oulu, Finland\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 215\n\nThis kind of argument cries for a comment...\n\njbrown@batman.bmd.trw.com wrote:\n: In article <1993Apr3.095220.24632@leland.Stanford.EDU>, galahad@leland.Stanford.EDU (Scott Compton) writes:\n\nJim, you originally wrote:\n \n: >>...God did not create\n: >>disease nor is He responsible for the maladies of newborns.\n: > \n: >>What God did create was life according to a protein code which is\n: >>mutable and can evolve.  Without delving into a deep discussion of\n: >>creationism vs evolutionism, God created the original genetic code\n: >>perfect and without flaw. \n: >  ~~~~~~~     ~~~~~~~ ~~~~\n\nDo you have any evidence for this? If the code was once perfect, and\nhas degraded ever since, we _should_ have some evidence in favour\nof this statement, shouldn't we?\n\nPerhaps the biggest \"imperfection\" of the code is that it is full\nof non-coding regions, introns, which are so called because they\nintervene with the coding regions (exons). An impressive amount of\nevidence suggests that introns are of very ancient origin; it is\nlikely that early exons represented early protein domains.\n\nIs the number of introns decreasing or increasing? It appears that\nintron loss can occur, and species with common ancestry usually\nhave quite similar exon-intron structure in their genes. \n\nOn the other hand, the possibility that introns have been inserted\nlater, presents several logical difficulties. Introns are removed\nby a splicing mechanism - this would have to be present, but unused,\nif introns are inserted. Moreover, intron insertion would have\nrequired _precise_ targeting - random insertion would not be tolerated,\nsince sequences for intron removal (self-splicing of mRNA) are\nconserved. Besides, transposition of a sequence usually leaves a\ntrace - long terminal repeats and target - site duplications, and\nthese are not found in or near intron sequences. \n\nI seriously recommend reading textbooks on molecular biology and\ngenetics before posting \"theological arguments\" like this. \nTry Watson's Molecular Biology of the Gene or Darnell, Lodish\n& Baltimore's Molecular Biology of the Cell for starters.\n\n: Remember, the question was posed in a theological context (Why does\n: God cause disease in newborns?), and my answer is likewise from a\n: theological perspective -- my own.  It is no less valid than a purely\n: scientific perspective, just different.\n\nScientific perspective is supported by the evidence, whereas \ntheological perspectives often fail to fulfil this criterion.\n \n: I think you misread my meaning.  I said God made the genetic code perfect,\n: but that doesn't mean it's perfect now.  It has certainly evolved since.\n\nFor the worse? Would you please cite a few references that support\nyour assertion? Your assertion is less valid than the scientific\nperspective, unless you support it by some evidence.\n\nIn fact, it has been claimed that parasites and diseases are perhaps\nmore important than we've thought - for instance, sex might\nhave evolved as defence against parasites. (This view is supported by\ncomputer simulations of evolution, eg Tierra.) \n \n: Perhaps.  I thought it was higher energy rays like X-rays, gamma\n: rays, and cosmic rays that caused most of the damage.\n\nIn fact, it is thermal energy that does most of the damage, although\nit is usually mild and easily fixed by enzymatic action. \n\n: Actually, neither of us \"knows\" what the atmosphere was like at the\n: time when God created life.  According to my recollection, most\n: biologists do not claim that life began 4 billion years ago -- after\n: all, that would only be a half billion years or so after the earth\n: was created.  It would still be too primitive to support life.  I\n: seem to remember a figure more like 2.5 to 3 billion years ago for\n: the origination of life on earth.  Anyone with a better estimate?\n\nI'd replace \"created\" with \"formed\", since there is no need to \ninvoke any creator if the Earth can be formed without one.\nMost recent estimates of the age of the Earth range between 4.6 - 4.8\nbillion years, and earliest signs of life (not true fossils, but\norganic, stromatolite-like layers) date back to 3.5 billion years.\nThis would leave more than billion years for the first cells to\nevolve.\n\nI'm sorry I can't give any references, this is based on the course\non evolutionary biochemistry I attended here. \n\n: >>dominion, it was no great feat for Satan to genetically engineer\n: >>diseases, both bacterial/viral and genetic.  Although the forces of\n: >>natural selection tend to improve the survivability of species, the\n: >>degeneration of the genetic code tends to more than offset this.  \n\nAgain, do you _want_ this be true, or do you have any evidence for\nthis supposed \"degeneration\"? \n\nI can understand Scott's reaction:\n\n: > Excuse me, but this is so far-fetched that I know you must be\n: > jesting.  Do you know what pathogens are?  Do you know what \n: > Point Mutations are?  Do you know that EVERYTHING CAN COME\n: > ABOUT SPONTANEOUSLY?!!!!!  \n: \n: In response to your last statement, no, and neither do you.\n: You may very well believe that and accept it as fact, but you\n: cannot *know* that.\n\nI hope you don't forget this: We have _evidence_ that suggests \neverything can come about spontaneously. Do you have evidence against\nthis conclusion? In science, one does not have to _believe_ in \nanything. It is a healthy sign to doubt and disbelieve. But the \nright path to walk is to take a look at the evidence if you do so,\nand not to present one's own conclusions prior to this. \n\nTheology does not use this method. Therefore, I seriously doubt\nit could ever come to right conclusions.\n\n: >>Human DNA, being more \"complex\", tends to accumulate errors adversely\n: >>affecting our well-being and ability to fight off disease, while the \n: >>simpler DNA of bacteria and viruses tend to become more efficient in \n: >>causing infection and disease.  It is a bad combination.  Hence\n: >>we have newborns that suffer from genetic, viral, and bacterial\n: >>diseases/disorders.\n\nYou are supposing a purpose, not a valid move. Bacteria and viruses\ndo not exist to cause disease. They are just another manifests of\na general principle of evolution - only replication saves replicators\nfrom degradiation. We are just an efficient method for our DNA to \nsurvive and replicate. The less efficient methods didn't make it \nto the present. \n\nAnd for the last time.  Please present some evidence for your claim that\nhuman DNA is degrading through evolutionary processes. Some people have\nclaimed that the opposite is true - we have suppressed our selection,\nand thus are bound to degrade. I haven't seen much evidence for either\nclaim.\n \n: But then I ask, So?  Where is this relevant to my discussion in\n: answering John's question of why?  Why are there genetic diseases,\n: and why are there so many bacterial and viral diseases which require\n: babies to develop antibodies.  Is it God's fault? (the original\n: question) -- I say no, it is not.\n\nOf course, nothing \"evil\" is god's fault.  But your explanation does\nnot work, it fails miserably.\n \n: You may be right.  But the fact is that you don't know that\n: Satan is not responsible, and neither do I.\n: \n: Suppose that a powerful, evil being like Satan exists.  Would it\n: be inconceivable that he might be responsible for many of the ills\n: that affect mankind?  I don't think so.\n\nHe could have done a much better Job. (Pun intended.) The problem is,\nit seems no Satan is necessary to explain any diseases, they are\njust as inevitable as any product of evolution.\n\n: Did I say that?  Where?  Seems to me like another bad inference.\n: Actually what you've done is to oversimplify what I said to the\n: point that your summary of my words takes on a new context.  I\n: never said that people are \"meant\" (presumably by God) \"to be\n: punished by getting diseases\".  Why I did say is that free moral\n: choices have attendent consequences.  If mankind chooses to reject\n: God, as people have done since the beginning, then they should not\n: expect God to protect them from adverse events in an entropic\n: universe.\n\nI am not expecting this. If god exists, I expect him to leave us alone.\nI would also like to hear why do you believe your choices are indeed\nfree. This is an interesting philosophical question, and the answer\nis not as clear-cut as it seems to be.\n\nWhat consequences would you expect from rejecting Allah?\n  \n: Oh, I admit it's not perfect (yet).  But I'm working on it.  :)\n\nA good library or a bookstore is a good starting point.\n\n: What does this have to do with the price of tea in China, or the\n: question to which I provided an answer?  Biology and Genetics are\n: fine subjects and important scientific endeavors.  But they explain\n: *how* God created and set up life processes.  They don't explain\n: the why behind creation, life, or its subsequent evolution.\n\nWhy is there a \"why behind\"? And your proposition was something\nthat is not supported by the evidence. This is why we recommend\nthese books.\n\nIs there any need to invoke any why behind, a prime mover? Evidence\nfor this? If the whole universe can come into existence without\nany intervention, as recent cosmological theories (Hawking et al)\nsuggest, why do people still insist on this?\n \n: Thanks Scotty, for your fine and sagely advice.  But I am\n: not highly motivated to learn all the nitty-gritty details\n: of biology and genetics, although I'm sure I'd find it a\n: fascinating subject.  For I realize that the details do\n: not change the Big Picture, that God created life in the\n: beginning with the ability to change and adapt to its\n: environment.\n\nI'm sorry, but they do. There is no evidence for your big picture,\nand no need to create anything that is capable of adaptation.\nIt can come into existence without a Supreme Being.\n\nTry reading P.W. Atkins' Creation Revisited (Freeman, 1992).\n\nPetri\n--\n ___. .'*''.*        Petri Pihko    kem-pmp@          Mathematics is the Truth.\n!___.'* '.'*' ' .    Pihatie 15 C    finou.oulu.fi    Physics is the Rule of\n       ' *' .* '*    SF-90650 OULU  kempmp@           the Game.\n          *'  *  .*  FINLAND         phoenix.oulu.fi  -> Chemistry is The Game.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9987, "properties": {"category": "sci.space", "text": "From: jdnicoll@prism.ccs.uwo.ca (James Davis Nicoll)\nSubject: Re: Vandalizing the sky.\nOrganization: University of Western Ontario, London\nNntp-Posting-Host: prism.engrg.uwo.ca\nLines: 15\n\nIn article <C5w5F8.3LC.1@cs.cmu.edu> nickh@CS.CMU.EDU (Nick Haines) writes:\n>\n>Would they buy it, given that it's a _lot_ more expensive, and not\n>much more impressive, than putting a large set of several-km\n>inflatable billboards in LEO (or in GEO, visible 24 hours from your\n>key growth market). I'll do _that_ for only $5bn (and the changes of\n>identity).\n\n\tI've heard of sillier things, like a well-known utility company\nwanting to buy an 'automated' boiler-cleaning system which uses as many\noperators as the old system, and which rumour has it costs three million\nmore per unit. Automation is more 'efficient' although by what scale they are\nnot saying...\n\n\t\t\t\t\t\t\tJames Nicoll\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9988, "properties": {"category": "rec.autos", "text": "From: rmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen)\nSubject: Re: Plymouth Sundance/Dodge Shadow experiences?\nOrganization: University of Virginia\nDistribution: usa\nLines: 12\n\n\nI don't know if some lemons are out there, but from personal experience\nMy brother's has been trouble free.  Not one single repair, only \nregular maintainance.  The only work he had done on it was a result\nof his stupidity... he stopped suddenly in the middle of a left turn \non a busy intersection, and was rear-ended.  He has a 1989 Plymouth\nSundance.  I would recomend it, but I would also like to say that if\nyou can wait about six months, ChryCo is coming out with a new car\ncalled the Neon, that is built in the same way as the LH's where.\nGood luck with your desiscion.\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9989, "properties": {"category": "rec.autos", "text": "From: mje@pookie.pass.wayne.edu (Michael J. Edelman)\nSubject: Re: Saturn's Pricing Policy\nOrganization: Wayne State University\nLines: 21\nDistribution: world\nReply-To: mje@pookie.pass.wayne.edu\nNNTP-Posting-Host: pookie.pass.wayne.edu\n\nI just ordered a Saturn SL1 after considering a few imports. Frankly, the Saturn\nway of doing business and service was a *very* big plus. I hadn't bought a new\ncar since I bought my Honda 4WD back in '85, and I was unbelieveably offended by\nmost salespeople I met.\n\nSaturn was indeed very different. I made three different visits to the dealer where\nI bought my car, and was never pressured. Saturn also had the best after-sales\nsupport, and the fixed pricing made it *very* easy for me to decide exactly what\nI wanted to buy. Another big selling point was running into my mechanic at the\ndealer. He's been fixing imports for 20 years...and bought a Saturn, based on\nwhat he's seen and heard from his customers. \n\nSaturn also has a good extended warranty program; $675 for 6 year/60K miles, \nfully refunded if you don't use it. That works out to an actual cost of $170 or\nso, based on the 6 year treasury rates. Using savings account rates it's more\nlike $120. In the first three years it also buys you free rental during any\nwarranty work, without counting against the refund.\n\n--mike\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9990, "properties": {"category": "talk.politics.misc", "text": "From: nickn@eskimo.com (Nick Nussbaum)\nSubject: Re: Debating special \"hate crimes\" laws  (was How many homosexuals...)\nOrganization: Eskimo North (206) 367-3837 {eskimo.com}\nLines: 68\n\nIn article <1pmrakINNpun@senator-bedfellow.MIT.EDU> wdstarr@athena.mit.edu (William December Starr) writes:\n>\n>> > If someone beats up a homosexual, he should get charged for assault\n>> > and battery.  Why must we add gay bashing to the list?  Isn't this a\n>> > sort of double jeopardy?  Or am I just being a fascist again?\n>> > [Douglas Meier]\n>>\n>> Assuming the questions are not rhetorical, the answers are:\n>>\n>> () To deter an epidemic of \"gay bashing\" that has not been deterred by\n>>    assault laws.  \n>> () No, it is not \"double jeopardy.\"  A single act may lead to multiple\n>>    charges and multiple crimes.\n>> () Yes.\n>\n>Let's leave aside the personal-insult potential that Doug created by\n>asking his last question and just concentrate on the legal/political\n>debate...  Last point first: yes, a single act may lead to multiple,\n>independent charges.  However, as a side note, I _think_ that the\n>prohibition on double jeopardy mandates that the suspect be tried on all\n>those charges at the same time, in the same trial.  (Unless, of course,\n>the government can pull the \"separate sovereignties\" crock that they're\n>using on those four LAPD cops who arrested Rodney King, i.e. trying a\n>person who's already been acquitted in state court on federal charges\n>arising from the same act...  _I_ think that this is double jeopardy but\n>apparently the courts don't agree with me.)\n\nNote that the laws that don't agree with you were passed to protect\na class of people who couldn't get justice from the state courts;\nspecifically civil rights workers in Missisippi in the 60's. The \nfederal protection of individual rights supersedes the non-feasance\nof the state. Something similar has long been traditional ( well\nhe's queer so I beat him up...) for gays\n\n\n>\n>You pays your money and you takes your pick... me, I lean strongly\n>towards the \"against\" argument.  I know that having the law treat\n>everyone as equals, regardless of realities, will not in and of itself\n>lead to true equality, and in fact may lead, at times, towards greater\n>inequality.  Nonetheless, I believe that true equality is at least\n>_possible_ when the laws treat people as being equal, while true\n>equality is, by definition, _impossible_ when the laws themselves\n>mandate unequal treatment of classes of people by the state.\n>\n>-- William December Starr <wdstarr@athena.mit.edu>\n>\nAs Anatole France said; \"The law in its impartial majesty forbids the\nrich as well as the poor from sleeping under bridges.\"\n\nEquality of law can be construed in any number of ways. For example\nthe fact that all property thefts, regardless of value, are not\npunished equally is an inequality which protects those who have\na lot of money from having it stolen. You could easily define\nequality to regard the property in terms of it's significance\nfor the owner. This would a form of equality that would be skewed\ntoward poorer people.\n\nIn fact, most anti-gay bashing laws are constructed to offer equal \nprotection. They make it an offense to damage people based on a \nmotivation of hatred for sexual orientation. Thus the law in its\nimpartial majesty protects hets as well as gays from being bashed.\nI'm sure that's a great relief to Douglas Meier.\n\n\n\n-- \nNick Nussbaum\t\tnickn@eskimo.com\tPO 4738 Seattle,WA 98104\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9991, "properties": {"category": "talk.politics.mideast", "text": "From: hm@cs.brown.edu (Harry Mamaysky)\nSubject: Dir Yassin (was Re: no-Free man propaganda machine: Freeman, with blood greetings from Israel)\nIn-Reply-To: hasan@McRCIM.McGill.EDU 's message of Tue, 13 Apr 93 14:15:18 GMT\nOrganization: Dept. of Computer Science, Brown University\nLines: 85\n\nIn article <1993Apr13.141518.13900@thunder.mcrcim.mcgill.edu> hasan@McRCIM.McGill.EDU  writes:\n\n   CHECK MENAHEM BEGIN DAIRIES (published book) you'll find accounts of the\n   massacres there including Deir Yassen,\n   though with the numbers of massacred men, children and women are \n   greatly minimized.\n\nAs per request of Hasan:\n\nFrom _The Revolt_, by Menachem Begin, Dell Publishing, NY, 1977:\n\n[pp. 225-227]\n\n    \"Apart from the military aspect, there is a moral aspect to the\nstory of Dir Yassin. At that village, whose name was publicized\nthroughout the world, both sides suffered heavy casualties. We had\nfour killed and nearly forty wounded. The number of casualties was\nnearly forty percent of the total number of the attackers. The Arab\ntroops suffered casualties neraly three times as heavy. The fighting\nwas thus very severe. Yet the hostile propaganda, disseminated\nthroughout the world, deliberately ignored the fact that the civilian\npopulation of Dir Yassin was actually given a warning by us before the\nbattle began. One of our tenders carrying a loud speaker was stationed\nat the entrance to the village and it exhorted in Arabic all women,\nchildren and aged to leave their houses and to take shelter on the\nslopes of the hill.  By giving this humane warning our fighters threw\naway the element of complete surprise, and thus increased their own\nrisk in the ensuing battle. A substantial number of the inhabitants\nobeyed the warning and they were unhurt. A few did not leave their\nstone houses - perhaps because of the confusion. The fire of the enemy\nwas murderous - to which the number of our casualties bears eloquent\ntestimony. Our men were compelled to fight for every house; to\novercome the enemy they used large numbers of hand grenades. And the\ncivilians who had disregarded our warnings suffered inevitable\ncasualties.\n\n    \"The education which we gave our soldiers throughout the years of\nrevolt was based on the observance of the traditional laws of war. We\nnever broke them unless the enemy first did so and thus forced us, in\naccordance with the accepted custom of war, to apply reprisals. I am\nconvinced, too, that our officers and men wished to avoid a single\nunnecessary casualty in the Dir Yassin battle. But those who throw\nstones of denunciation at the conquerors of Dir Yassin [1] would do\nwell not to don the cloak of hypocrisy [2].\n\n    \"In connection with the capture of Dir Yassin the Jewish Agency\nfound it necessary to send a letter of apology to Abdullah, whom Mr.\nBen Gurion, at a moment of great political emotion, called 'the wise\nruler who seeks the good of his people and this country.' The 'wise\nruler,' whose mercenary forces demolished Gush Etzion and flung the\nbodies of its heroic defenders to birds of prey, replied with feudal\nsuperciliousness. He rejected the apology and replied that the Jews\nwere all to blame and that he did not believe in the existence of\n'dissidents.' Throughout the Arab world and the world at large a wave\nof lying propaganda was let loose about 'Jewish attrocities.'\n\n    \"The enemy propaganda was designed to besmirch our name. In the\nresult it helped us. Panic overwhelmed the Arabs of Eretz Israel.\nKolonia village, which had previously repulsed every attack of the\nHaganah, was evacuated overnight and fell without further fighting.\nBeit-Iksa was also evacuated. These two places overlooked the main\nroad; and their fall, together with the capture of Kastel by the\nHaganah, made it possible to keep open the road to Jerusalem. In the\nrest of the country, too, the Arabs began to flee in terror, even\nbefore they clashed with Jewish forces. Not what happened at Dir\nYassin, but what was invented about Dir Yassin, helped to carve the\nway to our decisive victories on the battlefield. The legend of Dir\nYassin helped us in particular in the saving of Tiberias and the\nconquest of Haifa.\"\n\n\n[1] (A footnote from _The Revolt_, pp.226-7.) \"To counteract the loss\nof Dir yassin, a village of strategic importance, Arab headquarters at\nRamallah broadcast a crude atrocity story, alleging a massacre by\nIrgun troops of women and children in the village. Certain Jewish\nofficials, fearing the Irgun men as political rivals, seized upon this\nArab gruel propaganda to smear the Irgun. An eminent Rabbi was induced\nto reprimand the Irgun before he had time to sift the truth. Out of\nevil, however, good came. This Arab propaganda spread a legend of\nterror amongst Arabs and Arab troops, who were seized with panic at\nthe mention of Irgun soldiers. The legend was worth half a dozen\nbattalions to the forces of Israel. The `Dir Yassin Massacre' lie\nis still propagated by Jew-haters all over the world.\"\n\n[2] In reference to denunciation of Dir Yassin by fellow Jews.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9992, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: Will CS burn or explode\nOrganization: Iowa State University, Ames IA\nLines: 21\n\nrcanders@nyx.cs.du.edu (Mr. Nice Guy) writes:\n\n>The FBI released large amounts of CS tear gas into the compound in\n>Waco.  CS tear gas is a fine power.  Is CS inflammable.  Grain dust\n>suspended in air can form an explosive mixture, will CS suspended in air\n>form an explosive mix? Could large quantities of CS have fueled the\n>rapid spread of fire in the compound?\n\n\tNo chance.  If that CS ignited at all, it would have been\nquite similar to a grain bin explosion.  Explosion, I note.  The\nentire compound would have been leveled, not merely burned.  As\nthere was no explosion, there was no CS ignition causing the fire.\n\n\tNote: at five miles a decent grain elevator explosion will\nknock you on your butt and your ears will ring for days.  I speak\nfrom experience here.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9993, "properties": {"category": "rec.motorcycles", "text": "From: egreen@east.sun.com (Ed Green - Pixel Cruncher)\nSubject: Re: GGRRRrrr!! Cages double-parking motorc\nOrganization: Sun Microsystems, RTP, NC\nLines: 32\nDistribution: world\nReply-To: egreen@east.sun.com\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article 1@cs.cmu.edu, jfriedl+@RI.CMU.EDU (Jeffrey Friedl) writes:\n>egreen@east.sun.com (Ed Green - Pixel Cruncher) writes:\n>|> \n>|> An apartment complex where I used to live tried this, only they put the\n>|> thing over the driver's window, \"so they couldn't miss it.\" \n>\n>I can see the liability of putting stickers on the car while it was moving,\n>or something, but it's the BDI that chooses to start and then drive the car\n>in a known unsafe condition that would (seem to be) liable. \n\nAn effort was made to remove the sticker.  It came to pieces, leaving\nmost of it firmly attached to the window.  It was dark, and around\n10:00 pm.  The sticker (before being mangled in an ineffective attempt\nto be torn off) warned the car would be towed if not removed.  A\n\"reasonable person\" would arguably have driven the car.  Had an\naccident occured, I don't think my friend's attorney would have much\ntrouble fixing blame on the apartment mangement.\n\nAs a practical matter, even without a conviction, the cost and\ninconvenience of defending against the suit would be considerable.\n\nAs a moral matter, it was a pretty fucking stupid thing to do for so\npaltry a violation as parking without an authorization sticker (BTW, it\nwasn't \"somebody's\" spot, it was resident-only, but unassigned,\nparking).\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9994, "properties": {"category": "sci.med", "text": "From: gmark@cbnewse.cb.att.com (gilbert.m.stewart)\nSubject: oxaprozin?\nOrganization: AT&T\nKeywords: Daypro\nLines: 7\n\nAnyone have any information on the effects/origin of oxaprozin?\nIt's marketed under the name \"DAYpro\", and appears to be an\nanti-inflammatory.  Is it similar to naproxin?  Stronger?\n\nTIA\n\nGMS\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9995, "properties": {"category": "talk.politics.misc", "text": "From: bram@byron.u.washington.edu (Bram Currie)\nSubject: MOW BODYCOUNT\nArticle-I.D.: shelley.1qksooINNihu\nOrganization: University of Washington, Seattle\nLines: 16\nNNTP-Posting-Host: byron.u.washington.edu\n\n\nAny thoughts on who is going to count all of the gorgeous bodies at the MOW?\n\nThe press?  The White House Staff?  The most Junior Senator?  The King of\nthe motss/bi?  \n\n\tJust curious as to whose bias we are going to see when the numbers \nget brought out.\n\n\t\n\n-- \n\t\tbram\n\n     ----------------------------------------------------------\nBram Currie                                    bram@u.washington.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9996, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: im14u2c@camelot.bradley.edu (Joe Zbiciak)\nSubject: Re: Booting from B drive\nNntp-Posting-Host: camelot.bradley.edu\nOrganization: Happy Campers USA\nLines: 25\n\nIn <C5nvvx.ns@mts.mivj.ca.us> rpao@mts.mivj.ca.us (Roger C. Pao) writes:\n[much discussion about switching 5.25\" and 3.5\" drives removed]\n\nAnother (albeit strange) option is using a program like 800 II\n(available via anonymous FTP at many major sites), or FDFORMAT\n(also available via anonymous FTP), that allows you to format\n5.25HD disks to 1.44Meg, or 3.5\"HD disks to 1.2Meg (along with\nmany MANY other formats!) so you can DISKCOPY (yes, the broken\nMeSsy-DOS DISKCOPY!) the 5.25\" disks onto 3.5\" disks or vice\nversa...  I use this techniques with \"NON-DOS\" self-booting \ngame disks on my old Tandy 1000, and it works...  Another program\nnamed Teledisk (shareware--available on many major BBS's) will\nalso make the weird format disks, provided you have 800 II\nor FDFormat installed....  Some disks that won't DISKCOPY\nproperly can be readily Teledisk'd into the proper format...\nAt least this is a software solution for a hardware/BIOS \ndeficiency, eh? \n\n\n--\nJoseph Zbiciak                         im14u2c@camelot.bradley.edu\n[====Disclaimer--If you believe any of this, check your head!====]\n------------------------------------------------------------------\n\nNuke the Whales!\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9997, "properties": {"category": "talk.politics.guns", "text": "Subject: Is it really apples to apples?  (Lawful vs. unlawful use of guns)\nFrom: kim39@scws8.harvard.edu (John Kim)\nDistribution: world\nOrganization: Harvard University Science Center\nNntp-Posting-Host: scws8.harvard.edu\nLines: 30\n\nI have been convinced of the right of AMericans to an effective \nself-defense, but something strikes me as odd among the\npro-RKBA arguments presented here.\n\nThe numbers comparing hundreds of thousands (indeed, even a\nmillion) of instances of law abiding citizens deterring\ncriminal activity, seem valid to me.  Likewise the number\nof gun-caused homicides each year (about 11,000/year?).  However,\nit is surprising that the \"Evil AntiGun Empire \" (Darth Vader\nbreathing sound effect here) never tries to compare\n\"All legitimate gun defenses\" vs. \"All gun crimes.\"  Instead, \nit's always \"All legitimate gun defenses,\"  which includes\ncases in which the criminals are shot but not killed, and\ncases in which the criminal is not here, vs. just \ncriminal gun homicides, which only includes case sin which\nthe victim died.\n\nWhy is this?  Of course, it wouldn't be unreasonable to say\nthat in each crime already measured (involving guns), the\nconsequnces are already known and it is safe to assume that\na gun-based bank robbery last week will not suddenly turn\ninto a gun-basd robbery+homicide.  Whereas in the legitimate\ngun defenses, one may assume that all those criminals who\nwere deterred would have committed more crime or more\nserious crimes had they not been deterred.\n\n-Case Kim\n\nkim39@husc.harvard.edu\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9998, "properties": {"category": "rec.motorcycles", "text": "From: michaelb@compnews.co.uk (Michael Burton)\nSubject: Performance Bike Frenzy at Cadwell\nOrganization: Computer Newspaper Services, Howden, UK.\nLines: 7\nNNTP-Posting-Host: cassia.compnews.co.uk\nX-Newsreader: Tin 1.1 PL4\n\nIs anyone going to the P.B frenzy at Cadwell park in May.\nI am going, but only to watch.\n\n\n--\n\tWhen asked what would I most want to try before doing it, \n\t\t     \t    I said Death. \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 9999, "properties": {"category": "comp.sys.mac.hardware", "text": "From: noah@apple.com (Noah Price)\nSubject: Re: LC III NuBus Capable?\nOrganization: (not the opinions of) Apple Computer, Inc.\nLines: 18\n\nIn article <1qkkq4$5ev@nigel.msen.com>, mmiller@garnet.msen.com (Marvin\nMiller) wrote:\n> \n> My friend recently purchased a LC III and he wants to know if there is\n> such a demon called NuBus adapter for his PDS slot? CompUsa and\n> ComputerCity Supercenter says they don't carry them.\n> \n> Does this mean LC III is incapable of carrying a NuBus board?\n\nApple doesn't make such a card, though I suppose a third party could.  One\nbig problem is that there isn't room for a standard NuBus card inside the\nLC III.\n\nnoah\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nnoah@apple.com                                 Macintosh Hardware Design\n...!{sun,decwrl}!apple!noah   (not the opinions of) Apple Computer, Inc.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10000, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: roking@lynx.dac.northeastern.edu (robert king)\nSubject: Specs for a WD drive...\nOrganization: Northeastern University, Boston, MA. 02115, USA\nDistribution: na\nLines: 15\n\nGreetings all...\n\nCould some kind sole email me the specs for a Western Digital drive?\n\nIt is Model # WD93044-A with 782 cyl and 4 hds.  But I do not know the\nsectors per track, or any of the other information I have to feed to my\nbios to get it up and running.\n\nThanx for any help\nBob K.\n\nroking@lynx.dac.northeastern.edu\n\nnope... no sig.  Honest :)\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10001, "properties": {"category": "sci.electronics", "text": "From: acollins@uclink.berkeley.edu (Andy Collins)\nSubject: Voltage regulation and current limiting\nOrganization: University of California, Berkeley\nLines: 37\nNNTP-Posting-Host: uclink.berkeley.edu\nSummary: Need help!!!\n\nOne not-so-quick question to throw out there for you guys...\n\nFor our class project, we need to design and build a power supply\nto the following specs:\n\nVoltatge:  adjustable from 1-12V\nCurrent:   *limited* at 1A\n\nVoltage must stay within 2% of designated value for I from 0-1A\nAC ripple less than 5 mV (rms)\n\nOf course, we can't just use an adjustable voltage, current-limiting\nregulator chip ;^)\n\nOur problem is with the current limiting (i.e. we've found stuff to\ndo the rest of the parts of the circuit).  What the supply must do,\nif presented with a load which would draw more than 1A, given the\nsupply voltage, is reduce the voltage so that the current will equal\none amp.  Thus, if we were to short the thing with the ammeter, we\nshould read one amp.  If we measure the current through a 1 ohm \nresistor at 12V, we should read one amp (and the output voltage, by\nnecessity, must be 1V.\n\nThe only basic idea we have seen for the current limiter involves\na circuit which will pull current off of the base of the output \npower transistor, and therefore reduce the output.\n\nSo, does anybody have any ideas we could work from?\n\nThanks in advance.\n\nAndy Collins, KC6YEY\nacollins@uclink.berkeley.edu\n\nps: If anybody wants to flame this as a stupid project, I agree fully,\n    but I still have to do it, its graded ;^)\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10002, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 50\n\nIn article <1993Apr20.163730.16128@guinness.idbsu.edu> betz@gozer.idbsu.edu (Andrew Betz) writes:\n>In article <C5rynw.Iz8@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>>And I suppose the FBI also prevented them from coming out with their \n>>hands up while national tv cameras watch.\n>>\n>Watch from where?  Two miles away?  Far enough away that whatever\n>really happenned must be explained through the vengeful filter of\n>a humiliated agency that said (quote!) \"Enough is enough.\"\n\nPlease tell me what you think would have happened had the people \ncome out with their hands up several weeks ago.\n\n>>scenario that is simplest and most plausible.  I do not generally \n>>believe in conspiracy theories that involve complicated and unlikely \n>>scenarios.\n>\n>The FBI sent letters to Martin Luther King's wife insinuating\n>that MLK was having an affair!  Again, please tell us exactly\n>how much you trust our supposedly benevolent government.\n\nMore than someone who would not release children from the compound.\n\nI.e., more than David Koresh/Vernon Howell/\"Jesus Christ\".\nI saw lengthy excerpts from an Australian documentary made in \n1992 that clearly showed that this was a cult.\n\nI am not pleased with the BATF handling of the affair.  I think they \nbungled it badly from the start.  But I don't think they are \nresponsible for the fire, which started in two different places.\n\n>>The BATF is by no means devoid of fault in the handling of this affair.\n>>But to suggest that they may have intentionally started the fire is \n>>ludicrous.\n>\n>I suspect that there were plenty of camerapeople willing to\n>risk small arms fire to get some good footage.  These people\n>were told to get the hell out of camera range.  Why?\n>\n>Drew \n>--\n>betz@gozer.idbsu.edu\n>*** brought into your terminal from the free state of idaho ***\n>*** when you outlaw rights, only outlaws will have rights   ***\n>*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n>    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10003, "properties": {"category": "comp.sys.mac.hardware", "text": "From: umsoroko@ccu.umanitoba.ca (Michael Sorokowski)\nSubject: Request info on floptical drives.\nKeywords: floptical,mac,drives\nNntp-Posting-Host: ccu.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Canada\nLines: 20\n\nI'm considering adding a floptical drive to my current system.\n\nWhat I would like to know is which floptical drives are recommended for\ntheir quality and performance.\n\nMy preference would be floptical drives capable of handling both 800k and\n1.4k floppies, but handling 800k floppies is not a necessity.\n\nSo far, I only know a bit about the Iomega floptical and the Infinity\nfloptical drives.  Are there any comments/recommendations for either of these?\n\nAre there any other floptical drives that are worth looking into and where\ncan they be purchased (i.e. which mail order places, etc).\n\nThanks in advance.\n\nPlease send replies directly to umsoroko@ccu.umanitoba.ca\n\n----\nMike Sorokowski\t\t(umsoroko@ccu.umanitoba.ca)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10004, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Jack Morris\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 33\n\nIn article <1qt6ooINN7gd@senator-bedfellow.MIT.EDU> cmk@athena.mit.edu (Charles M Kozierok) writes:\n>\n>the only really valid retort to Valentine is: weren't the Red Sox trying\n>to get Morris too? oh, sure, they *said* Viola was their first choice\n>afterwards, but what should we have expected they would say?\n\nLou wanted Morris all along.  The idiot.  Giving the man $40 million\nto play with is like giving a five year old a loaded Uzi with the\nsafety off.  The only question is how many shots he will get off\nbefore somebody is wise enough to take it away.\n\n>} And don't tell me Boston will win this year.  They won't \n>} even be in the top 4 in the division, more like 6th.\n>\n>if this is true, it won't be for lack of contribution by Viola, so who cares?\n\nI don't see why people expect Boston to finish sixth.  The bottom four\nteams last year were essentially tied.  Boston, in seventh place, had\n73 wins.  The Yankees and Indians, tied for fourth place, had 76 wins.\n\nNow I should think it is obvious that the Red Sox improved more than\nthe Indians or Tigers.  Basically, the Red Sox are stronger this year\nat 1B, DH, SS, LF, and RF.  They have healthier starting pitchers (so\nfar, at least) and better relievers.  I see no reason why they\nshouldn't win ~85 games.  Meanwhile, the Indians are in shambles and\nthe Tigers *still* have no pitching.  They will win some 20-3\nblowouts, but they will lose an awful lot of 7-5 games too.\n\n*MAYBE* the Sox will play poorly, win 78 games, and finish fifth.\nBut I think third or fourth place is more likely.\n\nCheers,\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10005, "properties": {"category": "talk.religion.misc", "text": "From: kde@boi.hp.com (Keith Emmen)\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nOrganization: Hewlett-Packard / Boise, Idaho\nX-Newsreader: Tin 1.1scd1 PL4\nLines: 11\n\nxcpslf@oryx.com (stephen l favor) writes:\n: : Seems to me Koresh is yet another messenger that got killed\n: : for the message he carried. (Which says nothing about the \n: : character of the messenger.) I reckon we'll have to find out\n: : the rest the hard way.\n: : \n: \n: Koresh was killed because he wanted lots of illegal guns.\n\nI haven't heard of ANY illegal guns being found.  He was accused\nof not paying taxes on LEGAL guns.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10006, "properties": {"category": "talk.politics.mideast", "text": "From: hap@scubed.com (Hap Freiberg)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nNntp-Posting-Host: s3saturn\nOrganization: S-CUBED, A Division of Maxwell Labs; San Diego CA\nLines: 26\n\nIn article <SMITH.93Apr21183049@minerva.harvard.edu> smith@minerva.harvard.edu (Steven Smith) writes:\n>dgannon@techbook.techbook.com (Dan Gannon) writes:\n>>     THE U.S. HOLOCAUST MEMORIAL MUSEUM: A COSTLY AND DANGEROUS MISTAKE\n>>\n>>                         by Theodore J. O'Keefe\n>> [Holocaust revisionism]\n>> \n>> Theodore J. O'Keefe is an editor with the Institute for Historical\n>> Review.  Educated at Harvard University . . .\n>\n>According to the 1990 Harvard Alumni Directory, Mr. O'Keefe failed to\n>graduate.  You may decide for yourselves if he was indeed educated\n>anywhere.\n>\n>Steven Smith\n\nIs any education a prerequisite for employment at IHR ?\nIs it true that IHR really stands for Institution of Hysterical Reviews?\nCurious minds would like to know...\n\nHap\n\n--\n****************************************************************************************************\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Omnia Extares >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n****************************************************************************************************\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10007, "properties": {"category": "soc.religion.christian", "text": "From: armstrng@cs.dal.ca (Stan Armstrong)\nSubject: Re: So far so good\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nLines: 22\n\nIn article <C4z5u3.Jxo@spss.com> luomat@alleg.edu writes:\n>\n>This may be a really dumb one, but I'll ask it anyways:\n>\tChristians know that they can never live up to the requirements of  \n>God, right? (I may be wrong, but that is my understanding)  But they still  \n>try to do it.  Doesn't it seem like we are spending all of our lives  \n>trying to reach a goal we can never achieve?  I know that we are saved by  \n>faith and not by works, but does that mean that once we are saved we don't  \n>have to do anything?  I think James tells us that Faith without works is  \n>dead (paraphrase).  How does this work?\n>\nSo long as we think that good things are what we *have* to do rather than\nwhat we come to *want* to do, we miss the point. The more we love God; the\nmore we come to love what and whom He loves.\n\nWhen I find that what I am doing is not good, it is not a sign to try\neven harder (Romans 7:14-8:2); it is a sign to seek God. When I am aware \nof Jesus' presence, I usually want what He wants. It is His strenth, His love \nthat empowers my weakness.\n-- \nStan Armstrong. Religious Studies Dept, Saint Mary's University, Halifax, N.S.\nArmstrong@husky1.stmarys.ca | att!clyde!watmath!water!dalcs!armstrng\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10008, "properties": {"category": "rec.motorcycles", "text": "From: speedy@engr.latech.edu (Speedy Mercer)\nSubject: Re: Looking for MOVIES w/ BIKES\nOrganization: Louisiana Tech University\nLines: 25\nNNTP-Posting-Host: bhm116e-spc.engr.latech.edu\nSummary: Bike movies\nKeywords: movies\n\nIn article <csundh30.735325668@ursa> csundh30@ursa.calvin.edu (Charles Sundheim) writes:\n\n>Folks,\n\n>I am assembling info for a Film Criticism class final project.\n\n>Essentially I need any/all movies that use motos in any substantial\n>capacity (IE; Fallen Angles, T2, H-D & the Marlboro Man,\n>Raising Arizona, etc).  \n>Any help you fellow r.m'ers could give me would be much `preciated.\n>(BTW, a summary of bike(s) or plot is helpful but not necessary)\n\nEasy Rider (harleys, drugs, rednecks, New Orleans), Mad Max (violence, DoD \nwanna-be's), Time Rider (Honda Thumper, Time travel), On Any Sunday \n(Documentary about dirtbike racers, GREAT!), The (Great?) Escape (Steve \nMcqueen, Nazis), Rebel Without a Cause (James Dean, future DoD'ers).  I \nthink the last two are right, they are OLD movies I haven't seen in YEARS. \n ----===== DoD #8177 = Technician(Dr. Speed) .NOT. Student =====----\n\n                          Stolen Taglines...\n              * God is real, unless declared integer. *\n            * I came, I saw, I deleted all your files. *\n         * Black holes are where God is dividing by zero. *\n        * The world will end in 5 minutes. Please log out. *\n       * Earth is 98% full.... please delete anyone you can. *\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10009, "properties": {"category": "sci.electronics", "text": "From: buhrow@moria.nfbcal.org (Brian Buhrow)\nSubject: NEED HELP FINDING DIP SWITCH SETTINGS AND JUMPER SETTINGS FOR 386SX MOTHERBOARD\nKeywords: JUMPER SETTINGS DIP-SWITCH SETTINGS, HELP, COMPUTER 386SX\nOrganization: National Federation of the Blind of California\nLines: 14\n\n\nHello net.  I have a 386sx motherboard with the Phoenix BIOS, an on-board\nIDE controller port, and two on-board serial ports.  Unfortunately, I don't\nhave a manual for this beast and I would like to be able to disable the IDE\ncontroller in order to use the MFM controller I have.\nThe board says it is made in Korea and it uses the Chips Chipset.  If\nanyone can give me a clue as to how to go about configuring the board so as\nnot to use the IDE controller, or how to go about finding out how to do it,\ntheir help would be greatly appreciated.  \n\tThank you in advance for your assistance.\nPlease mail buhrow@nfbcal.org with your responses as my news feed is rather\ntenuous.\nThank you very much!\n-Brian <buhrow@nfbcal.org>\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.470+0000", "event": "documents", "entityId": 10010, "properties": {"category": "sci.space", "text": "From: Thomas.Enblom@eos.ericsson.se (Thomas Enblom)\nSubject: NAVSTAR positions\nReply-To: Thomas.Enblom@eos.ericsson.se\nOrganization: Ericsson Telecom AB\nLines: 16\nNntp-Posting-Host: eos8c29.ericsson.se\n\nI've just read Richard Langley's latest \"Navstar GPS Constellation Status\".\n\nIt states that the latest satellite was placed in Orbit Plane Position C-3.\nThere is already one satellite in that position. I know that it's almost\nten years since that satellite was launched but it's still in operation so\nwhy not use it until it goes off?\n\nWhy not instead place the new satellite at B-4 since that position is empty\nand by this measure have an almost complete GPS-constellation\n(23 out of 24)?\n\n/Thomas\n================================================================================\nEricsson Telecom, Stockholm, Sweden\n      \nThomas Enblom, just another employee.     \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10011, "properties": {"category": "rec.motorcycles", "text": "From: ljuca+@CS.CMU.EDU (Ljubomir Perkovic)\nSubject: Draining battery\nNntp-Posting-Host: gs20.sp.cs.cmu.edu\nOrganization: Carnegie Mellon University\nLines: 12\n\nI have a problem with the battery on my '83 Honda CB650 NightHawk.\nEvery week or so it is dead and I have to recharge it. I ride the bike \nevery day, the battery is new and the charging system was checked \nthoroughly and it seems fine. My suspicion is that it is draining\nsomewhere. \n\nDo you have any idea about what is causing this problem?\nPlease help since my mechanic and me are clueless!...\n\nLjubomir\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10012, "properties": {"category": "rec.autos", "text": "From: mobasser@vu-vlsi.ee.vill.edu (Bijan Mobasseri)\nSubject: Re: Dumbest automotive concepts of all time\nArticle-I.D.: vu-vlsi.C52G2H.8uC\nOrganization: Villanova University\nLines: 6\n\nNot exactly dumb, but who remebers the tachometer on the 69 or 70 Firebird \nbulging out of the _hood_ right in front of the driver. Neat place but I love \nto know what the elemnts did to its internals after a few years. Also, does \nthe speedomete pointer on many US cars have to be 3 feet long?. \n\nBijan\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10013, "properties": {"category": "misc.forsale", "text": "From: eric@enterprise.bih.harvard.edu (Eric J. Hansen)\nSubject: Preamp and CD player forsale in MA\nArticle-I.D.: cheever.eric-060493114735\nOrganization: Center for Clinical Computing - Boston, MA.\nLines: 28\n\nForsale:\n\nProton P1100 preamplifier\n========================= About 3.5 years old, originally $299, asking $150\nor best offer.  Has inputs for tape 1, tape 2, CD, phono, video and tuner.\nSeparate listen and record selectors.  Bass EQ, subharmonic filter and mono\nswitch.  High quality volume potentiometer.  In excellent condition, with\noriginal boxes and manual.\n\nSony D-88 portable Diskman\n========================== This is the one designed to play the mini CD's.\nYou can play normal size CDs, but the disk sticks out the side.  Works\nwell,\nbut may skip occasionally - it should be tuned up (heads aligned, cleaned,\netc.)  In excellent condition.  It has not been used all that much.  With\ncarrying case.  Original list was (I think) $300, but I'll take $80 or best\noffer.  It would be good for an office or just to sit on your desk.\n\nPlease email me <eric@enterprise.bih.harvard.edu> or telephone at\n(617) 278-0068.\n\nEric\n\n*---------------------------------------------------------------------*\n| Eric J. Hansen .................... eric@enterprise.bih.harvard.edu |\n| Center for Clinical Computing .......... Boston, MA  (617) 732-5925 |\n| .... DOS/Mac programming, Ultrix administration, general chaos .... |\n*---------------------------------------------------------------------*\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10014, "properties": {"category": "talk.religion.misc", "text": "From: bskendig@netcom.com (Brian Kendig)\nSubject: Re: Is it good that Jesus died?\nOrganization: Starfleet Headquarters: San Francisco\nLines: 111\n\nbrian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615) writes:\n>\n>They do not want to know it or be exposed to light \n>because their own evil deeds will be uncovered.  And so by their\n>own choice, they will remain in darkness.  Sort of like bugs under\n>a rock.  However, some people, but not many, will not like the\n>darkness.  Sometimes it gets too cold and too dark to be\n>comfortable.  These people will crawl out from under the rock,\n>and although blinded at first, will get accustomed to the light\n>and enjoy its warm.  And after a while, by virtue of the light,\n>they will see the depths of their own shortcomings AND how to correct them. \n>And also, they will see that there is much much more to this world\n>than just the narrow little experiences under the rock.  They will \n>discover that life under a rock was incredibly yukky and that\n>life with the Light of the World, is great.  So great, that they\n>will want to tell all their friends about it.\n\nAnd I maintain:\n\nSome people do not want to enter into the light and the knowledge that\nthey alone are their own masters, because they fear it; they are too\nafraid of having to face the world on their own terms.  And so, by\ntheir own choice, they will remain in darkness, sort of like bugs\nunder a rock.  However, some people, but not many, will not like the\ndarkness.  Sometimes it gets too cold and too dark to be comfortable.\nThese people will crawl out from under the rock, and, although blinded\nat first, will get accustomed to the light and enjoy its warmth.  And,\nafter a while, now that they can see things for what they really are,\nthey will also see the heights which they can reach, and the places\nthey can go, and they will learn to choose their own paths through the\nworld, and they will learn from their mistakes and revel in their\nsuccesses.\n\nThey will see that there is much much more to the world than just the\nnarrow experiences under the rock.  They will discover that life under\na rock was incredibly yucky, and that life on their own terms is great\n-- so great that they will want to tell everyone else about it.\n\nDo you see my point?  I think you're the one under the rock, and I'm\ngetting a great tan out here in the sunlight.  My life has improved\nimmesurably since I abandoned theism -- come and join me!  It will be\na difficult trip at first, until you build up your muscles for the\nlong hike, but it's well worth it!\n\n>Not all people hate light Kent. We all have an adversion to it to some\n>extent.  But Brian Kendig who has been replying to this thread certainly likes\n>darkness.  Brian K. enjoys stating false concepts and false pressumptions\n>about the God of the Bible.  Without checking his own presumptions,\n>he compares my God with Odin or Zeus.\n\nLook, you just practically equated Odin and Zeus?  They're as much\ndifferent as your god is from them...\n\nDon't you see?  I'm not going to accept ANYTHING that I can't witness\nwith my own eyes or experience with my own senses, especially not\nsomething as mega-powerful as what you're trying to get me to accept.\nSurely if you believe in it this strongly, you must have a good\n*reason* to, don't you?\n\n>Withough checking his own\n>presumption, he thinks hell is the equivalent of non-existence.\n\nWhen did I say that?  I say that I would rather CEASE EXISTING instead\nof being subject to the whims of a deity, but that if the deity\ndecided to toss me into the fiery pits because of who I am, then so be it.\n\n>Do you enjoy darkness?  Most people will honestly admit \"yes\".  Most people\n>are fond of their sexual sins, their hording of money, their\n>selfishness, and not to mention, their Biblical ignorance.\n\nNope -- most people are Christian.  Most people are fond of feeling\nthat they are imperfect, of believing that the world is an undesirable\nplace, of reciting magical mystical prayers to make the world nice and\nholy again, of doing just as their priests tell them, like good little\nsheep.  You enjoy darkness, and you're proud of it.\n\nYou may know the Bible well -- but have you read any of the Koran?  Or\nZen writings?  Or Hare Krishna literature?  If you haven't, then how\ncan you say you have an open mind?\n\n>Sin is fun!  Let's\n>admit it.  But a life of sin leads to trouble and death in this\n>life, and hell in the next.\n\nNope.  You make decisions, enjoy your successes, and accept your\nfailures; then you die.  If you are content with the life you've led\nas you reflect back on it in your final moments, then you've led a\ngood life.\n\n>Come out from under the rock.  \n\nPlease do.\n\n>    \"For God so loved the world that he gave his one and only Son,\n>    that whoever believes in him shall not perish but have eternal\n>    life.\"\n\nI'm sorry, I don't feel that sacrificing Jesus was something any god\nI'd worship would do, unless the sacrifice was only temporary, in\nwhich case it's not really all that important.\n\nForget the Bible for a minute.  Forget quoting verses, forget about\nwho said what about this or that.  *Show me.*  Picture just you and me\nand a wide open hilltop, and convince me that you're right.\n\n-- \n_/_/_/  Brian Kendig                             Je ne suis fait comme aucun\n/_/_/  bskendig@netcom.com                de ceux que j'ai vus; j'ose croire\n_/_/                            n'etre fait comme aucun de ceux qui existent.\n  /  The meaning of life     Si je ne vaux pas mieux, au moins je suis autre.\n /    is that it ends.                                           -- Rousseau\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10015, "properties": {"category": "rec.sport.baseball", "text": "From: kyee@bnlux1.bnl.gov (kenton yee)\nSubject: proposed catcher re-sub rule\nOrganization: Brookhaven National Laboratory, Upton, NY 11973\nLines: 19\n\nA lot of teams carry 3 catchers on their 25 man roster,\nbut the 3rd catcher is seldom ever used.  He is only\ninsurance in case of extra innings or the 2nd catcher\nis injured during a game.     So to free up this roster\nspot for an extra pinch hitter or reliever, why not\ninvoke a catcher re-substitution rule:\n\nIf the last roster catcher on a team is\ninjured during a game, the team is permitted\nto substitute in his place for defensive purposes\na catcher who has previously been yanked from\nthe game.   \n\nGiven this rule, a team wouldn't need 3 roster\ncatchers.  The 3rd catcher could be playing\nin AAA or be a non-roster bullpen catcher.\n\nKen\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10016, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: root@c1.nkw.ac.uk (Convex UNIX)\nSubject: re: Help with WinQVT\nReply-To: tb@ua.nbu.ac.uk\nOrganization: Natural Environment Research Council\nLines: 4\n\n\nI had a similar problem - try changing the netmask to 0.0.0.0 or 255.255.254.0\n\nTommy.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10017, "properties": {"category": "sci.crypt", "text": "From: jgk@osc.COM (Joe Keane)\nSubject: Re: Hard drive security for FBI targets\nSummary: Encrypted data looks random.\nKeywords: entropy\nReply-To: Joe Keane <jgk@osc.com>\nOrganization: Versant Object Technology\nLines: 47\nWeather: mostly cloudy, high 64, low 49\nMoon-Phase: waxing gibbous (99% of full)\n\nIn article <1993Apr2.050451.7866@ucsu.Colorado.EDU> cuffell@spot.Colorado.EDU\n(Tim Cuffel) writes:\n>How about this.  I create a bunch of sets of random data, and encrypt it.  I \n>keep only one of the sets of random data around, to show that I encypt random\n>data for kicks.  The rest, I delete with their keys.  I tell all my friends.\n>I think this establishes reasonable doubt about the contents of any encrypted\n>files, and my ability to provides keys.  Since anyone could do this, any law\n>that forces a user to provide keys on demand is worthless.\n\nThe law is much worse than worthless.  It gives police the power to put\ninnocent people in jail because they (the police) find something they don't\nunderstand.  Most police don't know what the return key does, never mind the\ndifference between a core file and classified military secrets.\n\nThere are plenty of scenarios where the user would have no idea what something\nis either.  It could be uninitialized junk.  The burden of proof is on the\nuser to show that it's something a normal upstanding citizen should have.  No\none should ever be put in that situation, especially in America.\n\nWhat's disgusting about this is how easily most people go along with it, to\nprovide a bargaining chip against some hypothetical *alleged* child molester\nor drug dealer, or whatever bad thing is in style at the time.  Basically most\npeople don't have a clear distinction between criminals and suspects.\n\nAs an analogy, it's like they find a loose screw in your house, and they\ninsist that you're building a bomb or machine gun.  They ask you where it came\nfrom (like you'd know), and ask you to prove your claim.  When you explain it\nin such simple terms, people may start to get the idea.\n\nAs a matter of fact, i do keep random files on my disk.  The reason is,\nwithout special-purpose hardware, it takes a long time to generate good random\nbits.  I have programs that crank out a couple bits per minute, which is\npretty conservative, but over time that's more than i need.\n\nIf you think about it, there's no point in actually encrypting random data,\nbecause it just gives you different random data.  If you want some data to\nlook like an encrypted file, you just put an appropriate header on it.  If\nenough people do this, some of them will be put in jail.\n\nWhen you get arrested and the police ask for your keys, you can tell them it's\njust random junk, although of course they won't believe you.  While you're\nsitting in jail, you can take consolation in the fact that the government will\nburn a few CPU-years trying to find something that's not there.\n\n--\nJoe Keane, amateur cryptologist\njgk@osc.com (uunet!amdcad!osc!jgk)\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10018, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Portable Small Ground Station?dir\nArticle-I.D.: aurora.1993Apr5.185700.1\nOrganization: University of Alaska Fairbanks\nLines: 21\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <C4zGAM.2nJ@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n> In article <1993Apr2.214705.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>>How difficult would it be to set up your own ground station?\n> \n> Ground station for *what*?  At one extreme, some of the amateur-radio\n> satellites have sometimes been reachable with hand-held radios.  At the\n> other, nothing you can do in your back yard will let you listen in on\n> Galileo.  Please be more specific.\n> -- \n> All work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n>                     - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n\n\nSPECIFIC:\nBasically to be able to do the things the big dadies can do.. Monitor, and\ncontrol if need be the Shuttle...\n\nSuch as the one in Australia and such....\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10019, "properties": {"category": "sci.med", "text": "From: brenner@ldgo.columbia.edu (carl brenner)\nSubject: Re: Update (Help!) [was \"What is This [Is it Lyme's?]\"]\nOrganization: Lamont-Doherty Earth Observatory\nLines: 50\n\nIn article <19613@pitt.UUCP>, geb@cs.pitt.edu (Gordon Banks) writes:\n> In article <1993Apr7.221357.12533@lamont.ldgo.columbia.edu> brenner@ldgo.columbia.edu (carl brenner) writes:\n> >> see the ulterior motive here.  It is easy for me to see it the\n> >> those physicians who call everything lyme and treat everything.\n> >> There is a lot of money involved.\n> >\n> >\tYou keep bringing this up. But I don't understand what's in it\n> >financially for the physician to go ahead and treat. Unless the physician\n> >has an investment in (or is involved in some kickback scheme with) the\n> >home infusion company, where is the financial gain for the doctor?\n> \n> Well, let me put it this way, based on my own experience.  A\n> general practitioner with no training in infectious diseases,\n> by establishing links to the \"Lyme community\", treating patients\n> who come to him wondering about lyme or having decided they\n> have lyme as if they did, saying that diseases such as MS\n> are probably spirochetal, if not Lyme, giving talks at meetings\n> of users groups, validating the feelings of even delusional\n> patients, etc.  This GP can go from being a run-of-the-mill\n> $100K/yr GP to someone with lots of patients in the hospital\n> and getting expensive infusions that need monitoring in his\n> office, and making lots of bread.  Also getting the adulation\n> of many who believe his is their only hope (if not of cure,\n> then of control) and seeing his name in publications put out\n> by support groups, etc.  This is a definite temptation.\n\n\tHarumph. Getting published in these newsletters is hardly something\nto aspire to. :-)\n\tI can't really argue with your logic, though I think you may be\nextrapolating a bit recklessly from what appears to be a sample size of\none. Even if what you say about this local Pittsburgh guy is true, it is\nnot logical or fair to conclude that this is true of all doctors who\ntreat Lyme disease.\n\tBy your logic, I could conclude that all of the physicians who\nconsult for insurance companies and make money by denying benefits to\nLyme patients are doing it for the money, rather than because they believe\nthey are encouraging good medicine. I have no idea how sincere these guys\nare, but their motives are as suspect as the physicians you excoriate for\nwhat you believe to be indiscriminate treatment.\n\tI would really feel more comfortable discussing the medical issues\nin Lyme, rather than speculating as to the motives of the various parties\ninvolved.\n\n> ----------------------------------------------------------------------------\n> Gordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\n> geb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n> ----------------------------------------------------------------------------\n\nCarl Brenner\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10020, "properties": {"category": "comp.windows.x", "text": "From: jdhuse@sedona.intel.com (Jon Dhuse~)\nSubject: a strange problem with text\nOrganization: Intel Corporation\nLines: 28\nDistribution: world\nNNTP-Posting-Host: tasmania.intel.com\nOriginator: jdhuse@sedona\n\n\nHello,\n\nI am testing a port of X11R5 to Coherent, a unix clone OS for Intel architecture\nmachines.  I am seeing a strange problem with text in clients like xvt (a simple\nterminal emulator program).\n\nThe problem manifests it self when the shell echoes typed characters back to the\nserver for display, one at a time.  The characters appear to be too closely\nspaced, with the result being that the 2nd character echoed destroys the \nrightmost edge of the first character, then the 3rd character destroys the \nrightmost edge of the second character, and so on.  It looks like there is an\ninvisible boundary around a character which obscures a portion of the previous\ncharacter.  There is no problem between the characters when the shell returns\na complete line of text... only when the output is a series of individual\ncharacters.\n\nIf anyone has any ideas what the problem might be, or where I should look to\nfind it, it would be much appreciated.\n\nRegards and thanks, Jon Dhuse.\n\n-- \n Jon Dhuse              |     Internet: jdhuse@sedona.intel.com\n Intel  Corp.  CH3-69   |     Phone: (602)-554-2685\n 5000 W. Chandler Blvd. | Any opinions expressed are my own,\n Chandler, AZ  85226    | not my employer's.\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10021, "properties": {"category": "comp.graphics", "text": "From: diablo.UUCP!cboesel (Charles Boesel)\nSubject: Why does Illustrator AutoTrace so poorly?\nOrganization: Diablo Creative\nReply-To: diablo.UUCP!cboesel (Charles Boesel)\nX-Mailer: uAccess LITE - Macintosh Release: 1.6v2\nLines: 12\n\nI've been trying to figure out a way to get Adobe Illustrator\nto auto-trace >exactly< what I see on my screen. But it misses\nthe edges of templates by as many as 6 pixels or more - resulting in images\nthat are useless  - I need exact tracing, not approximate.\n\nI've tried adjusting the freehand tolerances as well as autotrace\ntolerances but it doesn't help. Any suggestions?\n\n--\ncharles boesel @ diablo creative |  If Pro = for   and   Con = against\ncboesel@diablo.uu.holonet.net    |  Then what's the opposite of Progress?\n+1.510.980.1958(pager)           |  What else, Congress.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10022, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Playoff pool\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 30\nNntp-Posting-Host: mail.sas.upenn.edu\n\nWell, I looked at the scoring plan I had, and have decided to modify it. \nHere is the new, finalized scoring:\n\nPick 1st round winner, way off on games:\t2\n\"     \"    \"     \"     pick within one game:\t3\n\"     \"    \"     \"     pick exact games:\t4\n\nPick 2nd round winner, way off on games:\t4\n\"     \"    \"     \"     pick within one game:\t5\n\"     \"    \"     \"     pick exact games:\t7\n\nPick conference champ, way off on games:\t7\n\"\t\"\t\"      pick within one game:\t10\n\"\t\"\t\"      pick exact games:\t13\n\nPick Stanley Cup winner, way off on games:\t13\n\"\t\"    \"\t   \"\tpick within one game:\t17\n\"\t\"    \"\t   \"\tpick exact games:\t20\nPick loser in 7, series goes 7:\t\t\t2\nPick loser in 7, game 7 decided in OT:\t\t4\n\nThese are now final.  Anyone needing a copy of the entry sheet, email me\nat the address below. \n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10023, "properties": {"category": "sci.med", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Good Grief!  (was Re: Candida Albicans: what is it?)\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 81\n\nIn article rind@enterprise.bih.harvard.edu (David Rind) writes:\n>In article davpa@ida.liu.se  (David Partain) writes:\n\n>>Someone I know has recently been diagnosed as having Candida Albicans, \n>>a disease about which I can find no information.  Apparently it has something\n>>to do with the body's production of yeast while at the same time being highly\n>>allergic to yeast.  Can anyone out there tell me any more about it?\n\n>Candida albicans can cause severe life-threatening infections, usually\n>in people who are otherwise quite ill.  This is not, however, the sort\n>of illness that you are probably discussing.\n>\n>\"Systemic yeast syndrome\" where the body is allergic to\n>yeast is considered a quack diagnosis by mainstream medicine.  There\n>is a book \"The Yeast Connection\" which talks about this \"illness\".\n>\n>There is no convincing evidence that such a disease exists.\n\nThere's a lot of evidence, it just hasn't been adequately gathered and\npublished in a way that will convince the die-hard melancholic skeptics\nwho quiver everytime the word 'anecdote' or 'empirical' is used.\n\nFor example, Dr. Ivker, who wrote the book \"Sinus Survival\", always gives,\nbefore any other treatment, a systemic anti-fungal (such as Nizoral) to his\nnew patients IF they've been on braod-spectrum anti-biotics 4 or more times\nin the last two years.  He's kept a record of the results, and for over \n2000 patients found that over 90% of his patients get significant relief\nof allergic/sinus symptoms.  Of course, this is only the beginning for his\nprogram.\n\nIn my case, as I reported a few weeks ago, I was developing the classic\nsymptoms outlined in 'The Yeast Connection' (I agree it is a poorly \nwritten book):  e.g., extreme sensitivity to plastics, vapors, etc. which\nI never had before (started in November).  Within one week of full dosage\nof Sporanox, the sensitivity to chemicals has fully disappeared - I can\nnow sit on my couch at home without dying after two minutes.  I'm also\n*greatly* improved in other areas as well.\n\nOf course, I have allergy symptoms, etc.  I am especially allergic to\nmolds, yeasts, etc.  It doesn't take a rocket scientist to figure out that\nif one has excessive colonization of yeast in the body, and you have a\nnatural allergy to yeasts, that a threshold would be reached where you\nwould have perceptible symptoms.  Also, yeast do produce toxins of various\nsorts, and again, you don't have to be a rocket scientist to realize that\nsuch toxins can cause problems in some people.  In my case it was sinus\nsince that's the center of my allergic response.  Of course, the $60,000\nquestion is whether a person who is immune compromised (as tests showed I was\nfrom over 5 years of antibiotics, nutritionally-deficiencies because of the\nstress of infections and allergies, etc.), can develop excessive yeast\ncolonization somewhere in the body.  It is a tough question to answer since\ntesting for excessive yeast colonization is not easy.  One almost has to\ntake an empirical approach to diagnosis.  Fortunately, Sporanox is relatively\nsafe unlike past anti-fungals (still have to be careful, however) so there's\nno reason any longer to withhold Sporanox treatment for empirical reasons.\n\nBTW, some would say to try Nystatin.  Unfortunately, most yeast grows hyphae\ntoo deep into tissue for Nystatin to have any permanent affect.  You'll find\na lot of people who are on Nystatin all the time.\n\nIn summary, I appreciate all of the attempts by those who desire to keep\nmedicine on the right road.  But methinks that some who hold too firmly\nto the party line are academics who haven't been in the trenches long enough\nactually treating patients.  If anybody, doctors included, said to me to my\nface that there is no evidence of the 'yeast connection', I cannot guarantee\ntheir safety.  For their incompetence, ripping off their lips is justified as\nfar as I am concerned.\n\nJon Noring\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10024, "properties": {"category": "misc.forsale", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Transmitter tube\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 17\n\nI've got an Eimac 818A/4PR1000A transmitter/linear amplifier tube,\nunused, in original packaging (but opened and inventoried). I'd\nguarantee this tube to operate and be as observation and its\npaperwork say (unused), although I have no transmitter to test it\nwith. Offers?\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10025, "properties": {"category": "sci.electronics", "text": "From: mtearle@gu.uwa.edu.au (Mark Tearle)\nSubject: Re: Looking for Electronics Dept Info in Austrailia\nOrganization: The University of Western Australia\nLines: 37\nNNTP-Posting-Host: mackerel.gu.uwa.edu.au\n\nhjkim@hyowon.pusan.ac.kr (Hojoong Kim) writes:\n\n>Hi Netters!\n\n>I am looking for the list of universities in Austrailia, which has electronics department. \n>I am considering to spend a year for research in Austrailia about communication area.\u00fd\u00e9 I am interested in Mobile communication areas and spread spectrum communications etc. \n>But I don't have any information about Austrailian Universities.\n>Can anybody recommend a good university in co\u00fb\u00dfmmunic\u00f7\u00b3ation area?\n>Any comments will be welcomed!\n\nCan I suggest the University of Western Australia in Perth.\nThe weathers great, the people are great and our Electronic Engineering department is great.\nI am a first year student here ... so I don't know much about what projects but I do know they have a good reputation in the fields of dsp and communications.  Ever heard of QPSX?  The people who own are ex-UWA ... so that gives an indication of what the department is like.\n\nFor more information\nemail: yianni@swanee.ee.uwa.edu.au\nwith the above request and he should be able to tell some more info\n\nor write\n\nDepartment of Electrical and Electronic Engineering\nUniversity of Western Australia\nStirling Highway\nCRAWLEY 6009\nWestern Australia\nAustralia\n\n\nYours\nMark\n\nmtearle@tartarus.uwa.edu.au\n--\n#***********************************************************************#\n#  Mark Tearle                         |                                   #\n#                                      |     \n#  email: mtearle@tartarus.uwa.edu.au  |     \n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10026, "properties": {"category": "rec.autos", "text": "From: nill.toulme@datadim.uu.holonet.net (Nill Toulme)\nSubject: used Taurus SHO purchase\nArticle-I.D.: datadim.274.332.uupcb\nReply-To: nill.toulme@datadim.uu.holonet.net (Nill Toulme)\nDistribution: world\nOrganization: The Data Dimension PCBoard - Norcross, GA - 404-921-1186\nLines: 31\n\nQuoting Jeffrey J. Nucciarone's (nucci@microwave.gsfc.nasa.gov) article \n<C4G8Hv.Cs4@skates.gsfc.nasa.gov> of 04-06-93, in pertinent part:\n\n JJ>   I am considering buying a used '90 Taurus SHO.  The car in \n JJ> question has 37k miles. I took it for a test drive the other day\n JJ> and a few questions came up.\n JJ> \n JJ> . . .\n JJ>   Second, is there anything I should specifically look for in an \n JJ> SHO of this vintage? Anything I should specifically ask abt?  \n JJ> (Brakes, cluthch, etc.)  I noticed on the drive the clutch engagemen\n JJ> point seemed a little high; since all my other cars are auto-tragics\n JJ> I'm not sure abt this point. I had my foot firmly planted on the\n JJ> brake when I started it up. There was a bit of a pop in the pedal\n JJ> soon after the engine started. This also occured on a few T-bird SC'\n JJ> I test drove. Was this the ABS self test?\n \nBrake rotors and the clutch are the main things.  There has been a clutch \nreplacement program; you might check to see if the car is still eligible, \nas it is a change well worth making.  You can also swap the cruddy cable \nshifter for the newer rod shifter, also a change worth making, but that'll \ncost you some $$.\n\nMy brakes usually do one wibble-wobble on startup, so that is probably \nnormal.  Didn't know they had a self-test, that's interesting.\n\nWhat kind of tires does the car have on it?\n\n---\n * WinQwk 2.0b#131 * For a good time dial 7000 on your SHO. *\n                                                                                           \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10027, "properties": {"category": "soc.religion.christian", "text": "From: khan0095@nova.gmi.edu (Mohammad Razi Khan)\nSubject: Re: Am I going to Hell?\nOrganization: GMI Engineering&Management Institute, Flint, MI\nLines: 32\n\ntbrent@ecn.purdue.edu (Timothy J Brent) writes:\n\n>I have stated before that I do not consider myself an atheist, but \n                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nSo you believe in the existance of One creator I assume.\n\n\n>definitely do not believe in the christian god.  The recent discussion\n>about atheists and hell, combined with a post to another group (to the\n>effect of 'you will all go to hell') has me interested in the consensus \n>as to how a god might judge men.  As a catholic, I was told that a jew,\n>buddhist, etc. might go to heaven, but obviously some people do not\n>believe this.  Even more see atheists and pagans (I assume I would be \n>lumped into this category) to be hellbound.  I know you believe only\n>god can judge, and I do not ask you to, just for your opinions.\n\nOk, god has the disclaimer, reserves the right to judge individual\ncases.  If we believe him to be loving, then we also believe him to be\nable to serve justice to all.  Don't worry if a Jew, or athiest is\ngoing to heaven or hell, for that is god to judge (although truly\nif you were concerned you could only worry abput those who refuse to\nbelieve/satisfy gods decrees) as much as keeping yourself straight.\nIf you see something going on that is wrong, discuss it and explore it\nbefore making summary judgement.  People have enough free will to choose\nfor themselves, so don't force choices on them, just inform them\nof what they're choices are.  God will take care of the rest in his justice.\n\n>Thanks,\n>-Tim\n--\nMohammad R. Khan                /    khan0095@nova.gmi.edu\nAfter July '93, please send mail to  mkhan@nyx.cs.du.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10028, "properties": {"category": "misc.forsale", "text": "From: ssa@unity.ncsu.edu (S. Alavi)\nSubject: >>> Technical Books for sale (X/UNIX/C/C++/OS/DB/Netwk...) REPOST <<<\nOrganization: NCSU Computing Center\nDistribution: usa\nLines: 29\n\n\tMy friends and I have a buch of books for sale. They are not\n\tbeing used due to change of job, loss of interest etc.\n\n\tRather than letting them gather dust, we would like to pass them\n\ton to others who may use them (of course at a price :-)\n\n\tTopics Include:\n\t- C/C++/Other Programming Languages\n\t- UNIX/DOS/OS2/Windows/Other Operating System topics (General)\n\t- X/Motif/OLIT/Xwin\n\t- Networking and Digital Signal Processing\n\t- Computer Graphics\n\t- Microprocessors and Computer Architecture\n\t- Math\n\t- Software Engineering/Algorithms/Software Testing\n\t- Databases\n\t- Expert Systems\n\n\tThe list is long and rather than posting it here I will email\n\tit by request.  I am going to keep the list updated and so will\n\trespond to all requests (lucky me :-)\n\n\tIf you are interested drop me a line\n\n\t======  S. Alavi    [ssa@unity.ncsu.edu]  (919)467-7909 (H)  ========\n\t  \n\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10029, "properties": {"category": "rec.motorcycles", "text": "From: ranck@joesbar.cc.vt.edu (Wm. L. Ranck)\nSubject: Re: Happy Easter!\nOrganization: Virginia Tech, Blacksburg, Virginia\nLines: 23\nNNTP-Posting-Host: joesbar.cc.vt.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nKaren Black (karen@angelo.amd.com) wrote:\n: ranck@joesbar.cc.vt.edu (Wm. L. Ranck) writes:\n: >Nick Pettefar (npet@bnr.ca) wrote:\n: >: English cars:-\n: >\n: >: Rover, Reliant, Morgan, Bristol, Rolls Royce, etc.\n: >                  ^^^^^^\n: >   Talk about Harleys using old technology, these\n: >Morgan people *really* like to use old technology.\n\n: Well, if you want to pick on Morgan, why not attack its ash (wood)\n: frame or its hand-bent metal skin (just try and get a replacement :-)).  \n: I thought the kingpost suspension was one of the Mog's better features.\n\nHey!  I wasn't picking on Morgan.  They use old technology.  That's all\nI said.  There's nothing wrong with using old technology.  People still\nuse shovels to dig holes even though there are lots of new powered implements\nto dig holes with.  \n--\n*******************************************************************************\n* Bill Ranck             (703) 231-9503                     Bill.Ranck@vt.edu *\n* Computing Center, Virginia Polytchnic Inst. & State Univ., Blacksburg, Va.  *\n*******************************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10030, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Space Station Redesign, JSC Alternative #4\nOrganization: U of Toronto Zoology\nLines: 14\n\nIn article <1ralibINNc0f@cbl.umd.edu> mike@starburst.umd.edu (Michael F. Santangelo) writes:\n>... The only thing\n>that scares me is the part about simply strapping 3 SSME's and\n>a nosecone on it and \"just launching it.\"  I have this vision\n>of something going terribly wrong with the launch resulting in the\n>complete loss of the new modular space station (not just a peice of\n>it as would be the case with staged in-orbit construction).\n\nIt doesn't make a whole lot of difference, actually, since they weren't\nbuilding spares of the station hardware anyway.  (Dumb.)  At least this\nis only one launch to fail.\n-- \nSVR4 resembles a high-speed collision   | Henry Spencer @ U of Toronto Zoology\nbetween SVR3 and SunOS.    - Dick Dunn  |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10031, "properties": {"category": "comp.graphics", "text": "From: sp1marse@lina (Marco Seirio)\nSubject: Surface intersections\nLines: 7\nX-Newsreader: Tin 1.1 PL3\n\n\nI have a problem with intersections between two surfaces.\nDoes anybody have a easy to understand algorithm for that or maybe\neven C source??\n\n\n      Marco Seirio - In real life sp1marse@caligula.his.s\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10032, "properties": {"category": "rec.sport.hockey", "text": "From: etxonss@ufsa.ericsson.se (Staffan Axelsson)\nSubject: Re: Pens Info needed\nNntp-Posting-Host: uipc104.ericsson.se\nOrganization: Ericsson Telecom, Stockholm, Sweden\nLines: 44\n\n\nKevin L. Stamber writes:\n>If there's anyone who can help me on these items, please\n>let me know.\n>\n>*  Markus Naslund -- I saw that MoDo lost early in the National\n>                     tournament and that he was playing for the national\n>                     team at the World Championships.  Any stats\n>                     available?  Any word on how he's playing?  When\n>                     is he expected to join the club?  \n>\n\n Markus had a good season in MoDo in the Swedish elite league, scoring\n 22 goals, 17 assists, 39 points and 67 PIM in 39 games.\n\n As Daryl points out, Markus won't be joining the Pens for this year's\n playoffs, since the World Championships starts April 18th.\n\n But there is a good chance that Markus will join the Pens before next\n season. MoDo, though, naturally wants to keep their superstars Forsberg\n and Naslund, so the latest news on this is that MoDo is looking for\n personal sponsors for Forsberg and Naslund in order to match the kind\n of money they would receive in NHL.\n\nDaryl Turner writes:\n>By 'the club', I would assume you mean the Pens.  Don't hold your breath,\n>you aren't going to see Naslund this year.  The World Championship\n>Tournament doesn't start until 18 April.  So NHL teams won't see any\n>influx of Europeans, and no team playing in the WC will see a sudden\n>influx of 'eliminated' NHLers.  The earliest a player on a playoff bound\n>team could join a WC-team is the last game of the round robin, and I\n>doubt any coach is going to want to play short one player for that long.\n\n Actually, Swedish coach Curt Lundmark is thinking about leaving two\n spots open for additions from eliminated NHLers. It is Mats Sundin and\n Calle Johansson that Curt hopes can join the team, although in a late\n stage of the tournament. Technically, I seem to recall that you can leave\n spots open until 24 hrs before the WC final.\n\n Staffan\n--\n ((\\\\  //| Staffan Axelsson            \n  \\\\  //|| etxonss@ufsa.ericsson.se    \n\\\\_))//-|| r.s.h. contact for Swedish hockey  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.471+0000", "event": "documents", "entityId": 10033, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: santos@mickey.ai.kyutech.ac.jp (Rafael &)\nSubject: Turbo C++ Visual Edition adn request was Re: absolute newbie questions...\nOrganization: KIT Iizuka, AI Dept, JAPAN.\nLines: 52\nNNTP-Posting-Host: mickey\nIn-reply-to: wiggins@buttercup.cs.odu.edu's message of Fri, 16 Apr 1993 06:16:54 GMT\n\nIn article <WIGGINS.93Apr16011654@buttercup.cs.odu.edu> wiggins@buttercup.cs.odu.edu (Samuel E Wiggins) writes:\n\n>BTW, how would you rate the new \"Borland Turbo C++ Visual Edition for\n>Windows,\" anyone?\n\nTime for a new discussion, maybe ? I asked in these groups some time ago\nwhat about the TC++/VE, and got no answers, so I decided to try. My brother\nwho lives in the US bought and sent it to me, and I'm still trying to get\nused to it.\n\nBefore I put my good/bad points list, consider I am a Turbo Pascal/DOS\nprogrammer, and sometimes try to make something in Unix with C (just\nsome exercises from university). I used to make some programs in\nMicrosoft C version 5 (!!) because we used some third-party libraries\nthat required that. \n- I like Borland. It seems to me much more easier to use than Microsoft,\n  specially the debugger. I tried to learn Codeview sometimes, but never\n  felt confortable with it.\n- TC++ V/E seems very nice to create simple apps, like the examples on the\n  ObjectWindows book. So far, no problems. Lets see next week or so, when I\n  will try something more complex.\n- It works nice even in my \"weak\" machine 386/16Mhz, 6 Mb Ram. \n\nBut.....\n\n- The manual for the Resource Workshop seems to be from a different version \n  from the Workshop itself. Some of the windows that appear on the manual\n  have more itens than in the manual.\n- I think I will run into trouble since I got this TC++/VE from my brother\n  as a present. I didnt wanted to buy the Japanese version because 1) I \n  suspect that the manuals will be in Japanese :-( and 2) I believe it\n  will be far more expensive here. So he bought it as a present and sent to\n  me, I send the registration card to the Japanese branch of Borland, but...\n  who knows.\n\nSo, I'd like to ask some questions for you all;\n\n- I know that there are some Microsoft guys around here in this group. Is\n  there anybody from Borland ? Is there any e-mail address that we can \n  contact the technical support ? Not for stupid questions, but to ask\n  for example, why the RW manual seems to be different from the RW itself ?\n- Is there anybody else using it around here ?\n- Will the book of Petzold be useful for me ? I intend to use RW and ProtoGen\n  to make the interfaces and then work on the code itself. \n\nAnswers to my e-mail or comp.os.ms-windows.programmer.tools, please.\n\nThanks in advance,\n\nRafael.\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10034, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Re: DID HE REALLY RISE???\nOrganization: The Claremont Graduate School\nLines: 40\n\nIn article <Apr.10.05.31.46.1993.14368@athos.rutgers.edu>, luomat@alleg.edu (Timothy J. Luoma) writes:\n> In article <Apr.9.01.11.16.1993.16937@athos.rutgers.edu>  \n> \n> \"Suppose you were part of the `Christian consipracy' which was going to  \n> tell people that Christ had risen.  Never mind the stoning, the being  \n> burned alive, the possible crucifixion ... let's just talk about a  \n> scourging.  The whip that would be used would have broken pottery, metal,  \n> bone, and anything else that they could find attached to it.  You would be  \n> stood facing a wall, with nothing to protect you.   ...\n> scream out in agony that your raw back was being torn at again.  You would  \n> say to yourself: `All this for a lie?'  And you had 37 more coming.\n> \n> \"At the third hit you would scream out that it was all a lie, beg for them  \n> to stop, and tell them that you would swear on your life that it had all  \n> been a lie, if they would only stop....\"\n\nNo one was ever flogged, beaten, burned, fed to the lions, or killed in any\nother way because of a belief in the resurrection - sorry to disappoint you.\nThe idea of resurrection is one which can be found in a host of different\nforms in the religions of antiquity.  The problem was not the resurrection\nwhich was a mediorce issue for a tiny fragment of the Jewish population \n(the Saducees) but was a non issues for everyone else.  The real problem was\nthat Christians were pacifist and preached there was only one god.  When the\nstate operates by a system of divinitation of the emperor -  monotheism \nbecomes a capital offense.  The Jews were able to get exemption from this,\nand were also not evangelistic.  Christians were far more vocal, and gentile,\nand hence dangerous and were therefore targets of persecution.  Also since\nChristians were a relatively powerless group, they made good scapegoats as is\nseen by Nero's blaming them for the burning of Rome.  Let's not cloud the\nissues with the resurrection.\n\nrandy\n\n[I agree with you that Christians were not persecuted specifically\nbecause they believed in resurrection.  However the beliefs that did\ncause trouble were dependent on belief in the resurrection of Jesus.\nOf course the problem with it is that there are alternatives other\nthan a great conspiracy.  The most common theory among non-Christians\nscholars seems to be that the resurrection was a subjective event --\nin effect, a delusion.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10035, "properties": {"category": "comp.graphics", "text": "From: mbh2@engr.engr.uark.edu (M. Barton Hodges)\nSubject: Stereoscopic imaging\nSummary: Stereoscopic imaging\nKeywords: stereoscopic\nNntp-Posting-Host: engr.engr.uark.edu\nOrganization: University of Arkansas\nLines: 8\n\nI am interested in any information on stereoscopic imaging on a sun\nworkstation.  For the most part, I need to know if there is any hardware\navailable to interface the system and whether the refresh rates are\nsufficient to produce quality image representations.  Any information\nabout the subject would be greatly appreciated.\n\n    Thanks!\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10036, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: lee@tosspot.sv.com (Lee Reynolds)\nSubject: CGA card/monitor wanted\nOrganization: Ludus Associates, Incorporated.\nLines: 4\n\nAnd again......\n               title says it all. WHY?\n\n                      Lee (lee@tosspot.sv.com)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10037, "properties": {"category": "soc.religion.christian", "text": "From: kilroy@gboro.rowan.edu (Dr Nancy's Sweetie)\nSubject: Re: Certainty and Arrogance\nOrganization: Rowan College of New Jersey\nLines: 122\n\nIn an earlier article, I explained that what many people find arrogant about\nChristians is that some Christians profess absolute certianty about their\nbeliefs and doctrines.  That is, many Christians insist that they CANNOT have\nmade any mistakes when discovering their beliefs, which amounts to saying\nthat they are infallible.\n\nImpicitly claiming to be infallible is pretty arrogant, most of us will\nprobably agree.\n\nIn short, the problem is that no matter how good your sources are, if any\npart of your doctrines or beliefs rest on your own thinking and reasoning,\nthen those doctrines are suspect.  So long as your own brain is involved,\nthere is a possibility for error.  I summarised the problem by writing \"There\nis no way out of the loop.\"\n\n\nSomeone called `REXLEX' has claimed that there IS a way out of the loop, but\nhe did not bother to explain what it was, preferring instead to paraphrase\nSartre, ramble about Wittgenstein, and say that the conclusion of my argument\nleads to relativism.\n\nAs I have explained to him before, you cannot reject an argument as false\nbecause you dislike where it leads: the facts do not change just because\nyou dislike them.  `REXLEX' wrote:\n\n>  I disagree with Dr Nancy's Sweetie's conclusion because if it is\n> taken to fruition it leads to relativism which leads to dispair.\n\nHowever, as any first-year philosophy student can explain, what `REXLEX' has\nwritten does not constitute a refutation.  All he has said is that he does\nnot like what I wrote -- he has done nothing at all to dispute it.\n\n *\n\nThere were two sentences in `REXLEX's post that seemed relevant to the\npoint at hand:\n\n>  There is such a thing as true truth and it is real, it can be\n> experienced and it is verifiable.\n\nI do not dispute that some truths can be verified through experience.  I\nhave, for example, direct experience of adding numbers.  I don't claim to\nbe infallible at it -- in fact I remember doing sums incorrectly -- but I\ndo claim that I have direct experience of reasoning about numbers.\n\nHowever, once we go past experiencing things and start reasoning about\nthem, we are on much shakier ground.  That was the point of the earlier\narticle.  Human brains are infested with sin, and they can only be trusted\nin very limited circumstances.\n\n\n>  It is only because of God's own revelation that we can be absolute\n> about a thing.\n\nBut how far does that get you?  Once God's revelation stops, and your own\nreasoning begins, possibility for error appears.\n\nFor example, let's suppose that our modern Bible translations include a\nperfect rendering of Jesus words at the Last Supper, and that Jesus said,\nexactly, \"This is my body.\"\n\nWe'll presume that what he said was totally without error and absolutely\ntrue.  What can we be certain of?  Not much.\n\nAt the moment he stops speaking, and people start interpreting, the\npossibility of error appears.  Did he mean that literally or not?  We do\nnot have any record that he elaborated on the words.  Was he thinking of\nTran- or Con- substatiation?   He didn't say.  We interpret this passage\nusing our brains; we think and reason and draw conclusions.  But we know\nthat our brains are not perfect: our thinking often leads us wrong.  (This\nis something that most of us have direct experience of.  8-)\n\nWhy should anyone believe that his reasoning -- which he knows to be\nfallible -- can lead him to perfect conclusions?\n\nSo, given the assumptions in this example, what we can be certain of is\nthat Jesus said \"This is my body.\"  Beyond that, once we start making up\ndoctrines and using our brains to reason about what Christ revealed, we\nget into trouble.\n\nUnless you are infallible, there are very few things you can be certain\nof.  To the extent that doctrines rely on fallible human thinking, they\ncannot be certain.\n\n\n\nThat is the problem of seeming arrogant.  The non-Christians around us know\nthat human beings make mistakes, just as surely as we know it.  They do not\nbelieve we are infallible, any more than we do.\n\nWhen Christians speak as if they believe their own reasoning can never lead\nthem astray -- when we implicitly claim that we are infallible -- the non-\nChristians around us rarely believe that implicit claim.  Witnessing is\nhardly going to work when the person you are talking to believes that you\nare either too foolish to recognise your own limits, or intentionally trying\nto cover them up.\n\nI think it would be far better to say what things we are certain of and what\nthings we are only \"very confident\" of.  For example, we might say that we\nknow our sin, for recognising sin is something we directly experience.  But\nother things, whether based on reasoning from Scripture or extra-Biblical\nthinking, should not be labled as infallible: we should say that we are\nvery confident of them, and be ready to explain our reasoning.\n\nBut, so far as I am aware, none of us is infallible -- speaking or acting\nas if our thinking is flawless is ridiculous.\n\n *\n\n`REXLEX' suggested that people read _He is There and He is Not Silent_, by\nFrancis Schaeffer.  I didn't think very highly of it, but I think that\nMr Schaeffer is grossly overrated by many Evangelical Christians.  Somebody\nelse might like it, though, so don't let my opinion stop you from reading it.\n\nIf someone is interested in my opinion, I'd suggest _On Certainty_, by\nLudwig Wittgenstein.\n\n\nDarren F Provine / kilroy@gboro.rowan.edu\n\"If any substantial number of  [ talk.religion.misc ]  readers read some\n Wittgenstein, 60% of the postings would disappear.  (If they *understood*\n some Wittgenstein, 98% would disappear. :-))\" -- Michael L Siemon\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10038, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Israeli Terrorism\nOrganization: The Department of Redundancy Department\nLines: 17\n\nIn article <1rambk$cee@usenet.INS.CWRU.Edu> cl056@cleveland.Freenet.Edu (Hamaza H. Salah) writes:\n\n>ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n[Andi's posting deleted...]\n\nHamaza's only comment is:\n\n>Well said Mr. Beyer :)\n\nAndi, when you get the full-fledged support of Hamaza Salah, you know\nyou're on the wrong track.\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10039, "properties": {"category": "comp.windows.x", "text": "From: leec@cb-iris.Stanford.EDU (Christopher Lee)\nSubject: HELP! Setting Colormaps on multi-top-level APP\nKeywords: GLX mixed-model,colormap\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 71\n\n\nDear SGI and netter GL-X Mixed-Model experts,\nI am writing a mixed model application that creates a couple different\ncolor maps for different windows, and I've been having trouble getting\nthe window manager to reliably honor my requests.  In some environments\n(entry level R3000 Indigo w/ 4.0.5) all windows are getting properly\nconnected to their designated color maps, but on others (an IRIS 4D 240/GTX;\nalso a different entry level Indigo) the color mapping is unreliable\nand changes behavior when I compile at different times.  The most common\nproblem is that all non-top-level windows fail to be displayed according\nto their colormap.  My application starts out by creating three top-level\nwindows; in some cases all but the first of these also fail to be\ndisplayed by their colormap.  This is spectacularly aggravating.\n\nI would dearly appreciate\n  1. an explanation of the standard, RIGHT, CORRECT way to give a window\n  a colormap such that the Window Manager will Honor and Obey it;\n\n  2. any advice about problems that could cause my failure to get my\n  desired colormaps.\n\nBy now I have exhausted my own attempts on this, having tried everything\nreasonable or imaginable.\n\nBelow is example code giving the schematic for how I have been *TRYING*\nto do this.  Please, please, please SOMEBODY tell me what I am doing\nwrong/how to do it right!!!\n\n\nYours,\n\nChris Lee\n\n/***********************************************************************/\nDisplay* dpy;  /* DECLARE SOME DATA... */\nColormap popup_cmap;\nXColor mycolor;\nWindow win;\nXSetWindowAttributes cwa;\nint nwlist;\nWindow *wlist;\n\n/* NB: FOR BREVITY, NOT SHOWING ALL CODE LINES--JUST A SCHEMATIC */\n\npopup_cmap=XCreateColormap(dpy,DefaultRootWindow(dpy),vis->visual,AllocAll);\n\n/* HERE WE STORE A BUNCH OF COLORS USING\n   XStoreColor(dpy,popup_cmap,&mycolor); ... */\n\ncwa.colormap = popup_cmap;\nwin = XCreateWindow(dpy, parent, x, y, w, h,\n                    borderWidth, vis->depth, InputOutput, vis->visual,\n                    CWColormap|CWBorderPixel, &cwa);\n\n\n/* LIST ALL SUB WINDOWS OF my_topwin, PARENT OF win, INTO wlist;\n   nwlist IS COUNTER OF ENTRIES IN wlist.\n\n   NB: wlist is static storage that can be relied on not to go away\n       or be corrupted.  I thought of that!  Does anyone know if\n       setting WM properties is by data copy, or by reference pointer?\n\n       ie. is it acceptable to pass data for a Property, then free\n       the data?   */\nXSetWMColormapWindows(dpy,my_topwin,wlist,nwlist);\n\nXMapRaised(Display0,win);\n\n/* LATER ON WE HANDLE XEvents NORMALLY... TYPICAL EVENTLOOP */\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10040, "properties": {"category": "alt.atheism", "text": "From: perry@dsinc.com (Jim Perry)\nSubject: Re: The Inimitable Rushdie\nOrganization: Decision Support Inc.\nLines: 72\nNNTP-Posting-Host: bozo.dsinc.com\n\nI apologize for the long delay in getting a response to this posted.\nI've been working reduced hours the past couple of weeks because I had\na son born (the day after Umar's article was posted, btw).  I did\nrespond within a couple of days, but it turns out that a a\ncoincidental news software rearrangement caused postings from this\nsite to silently disappear rather than going out into the world.  This\nis a revision of that original response.\n\nIn article <C52q47.7Ct@ra.nrl.navy.mil> khan@itd.itd.nrl.navy.mil (Umar Khan) writes:\n>In article <1ps98fINNm2u@dsi.dsinc.com> perry@dsinc.com (Jim Perry) writes:\n>>Only a functional illiterate with absolutely no conception of the\n>>nature of the novel could think such a thing.\n\n[this was in response to the claim that \"Rushdie made false statements\nabout the life of Mohammed\", with the disclaimer \"(fiction, I know,\nbut where is the line between fact and fiction?) - I stand by this\ndistinction between fiction and \"false statements\"]\n\n>>However, it's not for his writing in _The Satanic Verses_, but for\n>>what people have accepted as a propagandistic version of what is\n>>contained in that book.  I have yet to find *one single muslim* who\n>>has convinced me that they have read the book.  Some have initially\n>>claimed to have done so, but none has shown more knowledge of the book\n>>than a superficial Newsweek story might impart, and all have made\n>>factual misstatements about events in the book.\n>\n>You keep saying things like this.  Then, you accuse people like me of\n>making ad hominem arguments.  I repeat, as I have said in previous\n>postings on AA: I *have* read TSV from cover to cover\n\nI had not seen that claim, or I might have been less sweeping.  You\nhave made what I consider factual misstatements about events in the\nbook, which I have raised in the past, in the \"ISLAM: a clearer view\"\nthread as well as the root of the \"Yet more Rushdie [Re: ISLAMIC LAW]\"\nthread.  My statement was not that you had not read the book, but that\nyou had not convinced me that you [inter alia] had.  As I said before,\nif you want to defend your position, then produce evidence, and\nrespond to the evidence I have posted; so far you have not.  Of\ncourse, my statement was not directly aimed at you, but broadly at a\nnumber of Muslim posters who have repeated propaganda about the book,\nindicating that they haven't read it, and narrowly at Gregg Jaeger,\nwho subsequently admitted that he hadn't in fact read the book,\nvindicating my skepticism in at least that one case.\n\nSo far, the only things I have to go on regarding your own case are a)\nthe statements you made concerning the book in the \"a clearer view\"\nposting, which I have challenged (not interpretation, but statements\nof fact, for instance \"Rushdie depicts the women of the most\nrespected family in all of Islam as whores\"), and b) your claim (which\nI had not seen before this) that you have indeed read it cover to\ncover.  I am willing to try to resolve this down to a disagreement on\ncritical interpretation, but you'll have to support your end, by\nresponding to my criticism.  I have no doubt as to the ability of a\nparticular Muslim to go through this book with a highlighter finding\npassages to take personal offense at, but you have upheld the view\nthat \"TSV *is* intended as an attack on Islam and upon Muslims\".  This\nview must be defended by more than mere assertion, if you want anyone\nto take it seriously.\n\n>I am trying very hard to be amicable and rational.  \n\nAnd I appreciate it, but welcome to the club.  I am defending my\nhonest opinion that this book should not be construed as a calculated\n(or otherwise) insulting attack on Islam, and the parallel opinion\nthat most of the criticism of the book I have seen is baseless\npropaganda.  I have supported my statements and critical\ninterpretationa with in-context quotes from the book and Rushdie's\nessays, which is more than my correspondents have done.  Of course,\nyou are more than welcome to do so.\n-- \nJim Perry   perry@dsinc.com   Decision Support, Inc., Matthews NC\nThese are my opinions.  For a nominal fee, they can be yours.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10041, "properties": {"category": "rec.autos", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Re: Best Radar Detector ???\nOrganization: Lehigh University\nLines: 38\n\nIn article <1993Apr10.013011.808@lrc.edu>, burnside_br@lrc.edu writes:\n>In article <1993Apr6.225034.7184@opencon.com>, giand@opencon.com (Deepak S. Gia\nnchandani) writes:\n>> Mubashir Cheema:\n>>\n>>      Don't buy one, that is the best way to avoid tickets,\n>>      I used to have one and whenever a cop would pull me over, see\n>>      the thing, give me a ticket.  One time my sister was driving,\n>>      and had it in the glove compartment, it was broken, and she\n>>      got a ticket.  In 1987, I had received 4 tickets because of\n>>      it, one for my sister (so a total of five).\n>>\n>>      That was five years ago, now I don't have one and Have not\n>>      gotten a ticket.  My driving habits have not changed\n>>      drastically.  Only two days ago I was going 77 MPH on Highway\n>>      with 55 MPH limit, cop saw me, I break a little, nothing\n>>      happened (I was driving a Mini-Van, with my family in it).\n>>      Otherwise, I have Cutlass Supreme,  which I do 70 most of the\n>>      times on the highway.\n>>\n>>      So basically my opnion is not to get one, if you do get pulled\n>>      over, The cop will hear your excuse, but if you have a radar\n>>      detecter, he will NOT. (again, this has been my experienc\n>\n>\n>Just get a remote model that is not visible to the cop.  But, be sure to get\n>front AND rear sensors...\n>\nYou can also just put the detector off to the side on the dash so the cop\ndoesn't see it right away...Valentine is the best detector by far (as stated\nby Car and Driver) and even tells you what direction the radar is coming from.\n It also gives the amount of \"threats\" it is picking up, so if you go through\n the same place everyday, and it always goes off there, you can glance at the\n number of \"threats\" the Valentine is detecting to see if it is a genuine cop.\n  It's about $300 and you can only get it factory direct..one problem.\n                                            Rob Fusi\n                                            rwf2@lehigh.edu\n-- \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10042, "properties": {"category": "soc.religion.christian", "text": "From: vbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.)\nSubject: Re: The arrogance of Christians\nOrganization: Case Western Reserve Univ. Cleveland, Ohio (USA)\nLines: 72\n\nIn article <Apr.13.00.08.35.1993.28412@athos.rutgers.edu> caralv@caralv.auto-trol.com (Carol Alvin) writes:\n>vbv@r2d2.eeap.cwru.edu (Virgilio (Dean) B. Velasco Jr.) writes:\n>>In article <Apr.10.05.32.29.1993.14388@athos.rutgers.edu> caralv@caralv.auto-trol.com (Carol Alvin) writes:\n>> > ...\n>> >\n>> >Are all truths also absolutes?\n>> >Is all of scripture truths (and therefore absolutes)?\n>> >\n>> >If the answer to either of these questions is no, then perhaps you can \n>> >explain to me how you determine which parts of Scripture are truths, and\n>> >which truths are absolutes.  \n>> \n>> The answer to both questions is yes.\n>\n>Perhaps we have different definitions of absolute then.  To me,\n>an absolute is something that is constant across time, culture,\n>situations, etc.  True in every instance possible.  Do you agree\n>with this definition?  I think you do:\n>\n>> Similarly, all truth is absolute.  Indeed, a non-absolute truth is a \n>> contradiction in terms.  When is something absolute?  When it is always\n>> true.  Obviously, if a \"truth\" is not always \"true\" then we have a\n>> contradiction in terms.  \n\nYes, I do agree with your definition.  My use of the term \"always\" is\nrather deceptive, I admit.  \n \n>A simple example:\n>\n>In the New Testament (sorry I don't have a Bible at work, and can't\n>provide a reference), women are instructed to be silent and cover\n>their heads in church.  Now, this is scripture.  By your definition, \n>this is truth and therefore absolute.  \n\nHold it.  I said that all of scripture is true.  However, discerning\nexactly what Jesus, Paul and company were trying to say is not always so\neasy.  I don't believe that Paul was trying to say that all women should\nbehave that way.  Rather, he was trying to say that under the circumstances\nat the time, the women he was speaking to would best avoid volubility and\ncover their heads.  This has to do with maintaining a proper witness toward\nothers.  Remember that any number of relativistic statements can be derived\nfrom absolutes.  For instance, it is absolutely right for Christians to\nstrive for peace.  However, this does not rule out trying to maintain world\npeace by resorting to violence on occasion.  (Yes, my opinion.)\n \n>Evangelicals are clearly not taking this particular part of scripture \n>to be absolute truth.  (And there are plenty of other examples.)\n>Can you reconcile this?\n\nSure.  The Bible preaches absolute truths.  However, exactly what those\ntruths are is sometimes a matter of confusion.  As I said, the Bible does\npreach absolute truths.  Sometimes those fundamental principles are crystal\nclear (at least to evangelicals).  Sometimes they are not so clear to\neveryone (e.g. should baptism be by full immersion or not, etc).  That is\nlargely because sometimes, it is not explicitly spelled out whether the writers\nare speaking to a particular culture or to Christianity as a whole.  This is \nwhere scholarship and the study of Biblical contexts comes in.  \n \n>It's very difficult to see how you can claim something which is based \n>on your own *interpretation* is absolute.  \n\nGod revealed his Truths to the world, through His Word.  It is utterly \nunavoidable, however, that some people whill come up with alternate \ninterpretations.  Practically anything can be misinterpreted, especially\nwhen it comes to matters of right and wrong.  Care to deny that?\n\n\n-- \nVirgilio \"Dean\" Velasco Jr, Department of Electrical Eng'g and Applied Physics \n\t CWRU graduate student, roboticist-in-training and Q wannabee\n    \"Bullwinkle, that man's intimidating a referee!\"   |    My boss is a \n   \"Not very well.  He doesn't look like one at all!\"  |  Jewish carpenter.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10043, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: staffan@alsys.se (Staffan K-E Ungsgard)\nSubject: Genius Mouse driver\nSummary: Genius mouse driver wanted\nKeywords: mouse, genius\nOrganization: Alsys AB (Telesoft Norden AB)\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 15\n\nHello fellow netlanders.\n\nI have a Genius Mouse model GM-6, but no driver for it.\nIt's a 3 button mouse. If anyone that;s got one of theese\ncould mail me a driver (config.sys or autoexec.bat) I would\nbe very happy.\n\n\n\n\n-- \n  Staffan Ungsgard \t\t: Internet:\n  Telesoft Norden AB\t\t: Staffan.Ungsgard@nynashamn.telesoft.se  \n  Utsiktsvagen 10, \t\t: Phone: +46-8 52069014\n  Nynashamn, Sweden\t\t: Fax:   +46-8 52020965\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10044, "properties": {"category": "soc.religion.christian", "text": "From: atterlep@vela.acs.oakland.edu (Cardinal Ximenez)\nSubject: Re: The arrogance of Christians\nOrganization: National Association for the Disorganized\nLines: 39\n\nphs431d@vaxc.cc.monash.edu.au writes:\n\n>In article <Apr.13.00.08.07.1993.28379@athos.rutgers.edu>, aa888@freenet.carleton.ca (Mark Baker) writes:\n\n>This is not true.  The athiest's position is that there is no PROOF of the\n>existence of God.  As much as some people accept their Church, their priests\n>or straight from their own scriptures as the \"proof\", this does not \n>satisfy atheists.\n\n  You haven't fully explained the atheist position.  Many theists believe that\nthere is \"no proof of the existence of God\" but choose to believe in him\nanyway.  I haven't yet found an argument for atheism that can't quickly be\nbroken down to unprovable assumptions.  This isn't a problem with me (everybody\nneeds to have a faith) but if you believe that you can provide a \"purely \nlogical\" argument for the nonexistence of God, I'd really like to see it.\n\n>Are you asking us to believe blindly?  You are trying to deny that part of\n>us that makes us ask the question \"Does God exist?\" i.e. self-awareness and\n>reason.  If we do not use our ability to reason we become as ignorant\n>as the other animals on this earth.  Does God want us to be like that?\n\n>You are right that science and reason cannot PROVE anything.  However, if\n>we do not use them we can only then believe on FAITH alone.  And since\n>we can only use faith, why is one picture of \"God\" (e.g. Hinduism) any less\n>valid than another (e.g. Christianity)?\n\n  Ahh...but when you use science and reason, you have faith in certain beliefs\nof the scientific method--for example:\n\n  The physical laws of the universe are stable.\n  Our observations of reality are a valid basis for a determination of truth.\n  Objective reality exists.\n  Logical argument is a valid way to answer all questions.\n  \n  Can you prove any of these?\n\nAlan Terlep\t\t\t\t    \"...and the scorpion says, 'it's \nOakland University, Rochester, MI\t\tin my nature.'\"\natterlep@vela.acs.oakland.edu\t\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10045, "properties": {"category": "comp.graphics", "text": "From: ari@tahko.lpr.carel.fi (Ari Suutari)\nSubject: Any graphics packages available for AIX ?\nOrganization: Carelcomp Oy\nLines: 24\nNNTP-Posting-Host: tahko.lpr.carel.fi\nKeywords: gks graphics\n\n\n\tDoes anybody know if there are any good 2d-graphics packages\n\tavailable for IBM RS/6000 & AIX ? I'm looking for something\n\tlike DEC's GKS or Hewlett-Packards Starbase, both of which\n\thave reasonably good support for different output devices\n\tlike plotters, terminals, X etc.\n\n\tI have tried also xgks from X11 distribution and IBM's implementation\n\tof Phigs. Both of them work but we require more output devices\n\tthan just X-windows.\n\n\tOur salesman at IBM was not very familiar with graphics and\n\tI am not expecting for any good solutions from there.\n\n\n\t\tAri\n\n---\n\n\tAri Suutari\t\t\tari@carel.fi\n\tCarelcomp Oy\n\tLappeenranta\n\tFINLAND\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10046, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Stratus Computer, Inc.\nLines: 33\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <C5tBwr.5xI@news.cso.uiuc.edu>, tomgift@uxa.cso.uiuc.edu (Tom Gift) writes:\n\n> No, they didn't have electrical power, but no, I don't find the idea of\n> Davidians calmly cooking lunch with gas masks on as the FBI knocks the\n> buildings down very credible,either.\n\nI don't know how quickly YOU can get a woodstove to heat up from a cold\nstart, but mine takes about three hours.\n\n> It's not like this whole discussion is relevant.  It started when some-\n> one made the wholly unsubstantiated allegation that the wood stove ig-\n> nited NAPALM the FBI shot into the buildings.\n\nMox nix.  The BD's were prepared to provide their own heat and light,\nand were doing so for weeks while the power was out.  That means the\ncompound contained containers of flammable liquids or gases (that could\nbe busted by a tank intrusion), plus ignition sources, which no one can \ntell for sure were all off at the time.\n\n> I'm not a groveling apoligist for the feds, far from it.  But wild ac-\n> cusations like this are ridiculous and obfuscate legitimate criticism of\n> their conduct in this whole affair.\n\nOn the contrary.  We are proposing alternate scenarios.  The people who\nare coming to wild conclusions are the feds, who are absolutely positive\nhow the fire started, even though none of them were in a position to \nsee it, either (and the stories they \"hear\" from their prisoners changes\nhourly).\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10047, "properties": {"category": "talk.politics.misc", "text": "From: cobarruvias@asd2.jsc.nasa.gov (John Cobarruvias)\nSubject: Re: Newsweek reports Clinton approval ratings...\nOrganization: NASA/JSC\nDistribution: usa\nLines: 28\n\nIn article <8597@blue.cis.pitt.edu> psg+@pitt.edu (Paul S Galvanek)\nwrites:\n>When I heard the latest approval rating reported for Clinton, I\n>laughed so hard I forgot the exact numbers.  Maybe one of the \n>Clintonettes can refresh my memory...\n>\n>Has his rating dropped to 48 or 49 percent?  Ha HA HA HA HA!\n>\n>*snick* oh my either way, it's still the lowest rating any President\n>has ever mustered in his first 100 days, since these polls started being\ntaken.\n\nHum, I guess this has some significance as opposed to having an incredible\ndrop during the last days in office. Unfortuantely having a loss in the\npolls during the last days of office usually means no re-election. Ask\nGeorge.\n\n>\n>He was finished before he started!\n\nGood one, Roooster. Thats hard to top.\n\n>\n>The Rooster\n>\n>\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10048, "properties": {"category": "soc.religion.christian", "text": "From: maridai@comm.mot.com (Marida Ignacio)\nSubject: Re: What WAS the immaculate conception?\nOrganization: trunking_fixed\nLines: 111\n\nNote: I am cross-posting (actually, emailing) this to \nbit.listserv.catholic while main posting goes to \nsoc.religion.christian.\n\n[Quotations omitted.  This is in response to a question about\nthe Immaculate Conception.  I explained it, but left justification\nup to our Catholic readers.  --clh]\n\nThere is no direct reference in the Holy Scripture except for the\nmention of Mary's _blessedness_/full of grace in the \"Annunciation\" by\nAngel Gabriel in Luke 1:26-28\n\n And in the 6th month the angel Gabriel was sent from God unto\n a city of Galilee, named Nazareth.  To a virgin espoused to a\n man whose name was Joseph, of the house of David; and the virgin's\n name was Mary.  And the angel came unto her and said, _\"Hail,\n thou that art highly favoured, the Lord is with thee: blessed\n art thou among women.\"_\n\nNow, now, hold that line of thought - \"the Lord is with Mary &\nblessed art thou among women\" - while you read on....\n\nIn the book, \"First Lady of the World, A Popular History of\nDevotion to Mary\" by Peter Lappin:\n\nThe _Immaculate Conception_ matter is really far more complicated\nthan the _Assumption_.  This arose in 430 AD.  It is quite possible\nthat the feast of _Mary's Conception_ under the title \"The Conception\nof Saint Anne\", originally commemorated the _physical miracle_ of\na woman _beyond the age_ of child bearing, conceiving a daughter,\njust as Elizabeth had conceived John the Baptist.  A transfer in\nemphasis from the physical miracle wrought in Anne to the miracle\nof grace wrought by God in the soul of Mary was _logical_.  Mary\nis the incorruptible timber \"out of which was hewn the _tabernacle_\nof Christ's sinless body\"; she is \"God's Eden, in whom there is\nno tree of knowledge, and no serpent that harms.\"  Her perfect\nbeauty and spotlessness find their exemplar in Christ, her\npurity in that of the Father.  At the time of the Council of Ephesus,\nshe was hailed as \"innocent, without blemish, immaculate, inviolate,\nspotless, holy in soul and body, who was blessed as a lily from\namong thorns, unlearned in the evil ways of Eve\".\n...\nAt the end of the thirteenth century, an Irish Franciscan,\nJohn Duns Scotus (1266-1308),...God maintained that it was a \ngreater thing for Him to preserve His (the Son) mother from all\nsin _than to use His power to clease her from it later_.\n...\n\nNow let's go to the discussion of baptism and original sin.\nFrom \"Pocket Catholic Cathechism\" by John A. Hardon:\n\nBaptism -\nConcupiscence Remains after Baptism.\nConcupiscence or the tendency to sin remains in the baptized\nbut since it is left to provide trial, it has no power to\ninjure those who do not consent and who by the grace of\nChrist Jesus, manfully resist (Canon 5).\n\nOriginal gifts of Adam and Eve before their fall:\nIn the light of the foregoing, we see that our first\nparents were originally gifted three times over:\n-They had the natural gifts of human beings especially the\n power to think and to choose freely.\n-The had the _preternatural_ gifts of bodily immortality\n and of integrity, or the internal power to control desires.\n-They had the _supernatural_ gifts of sanctifying grace,\n the virtues of faith, hope, and charity and the corresponding\n title to enter heaven.\nBy their disobedience, they lost the _supernatural and\npreternatural_ gifts entirely, and were weakened (without\nlosing) their natural capacity to reason and to choose\nfreely.\n\nBaptism restores the _supernatural_ life lost by Adam's\nsin.  It _does not_ restore the _preternatural_ gifts\nbut gifts as a title to a glorified restoration of our\nbodies on the last day...\n\nGoing back to _Immaculate Conception_\n(I am not sure if this interpretation is in any other\nbooks but it may be another contribution to the 'puzzle'):\n\nGiven the miracle of St. Anne bearing a child at a\nnon-childbearing age, AND Christ was not yet born \nAND _there was no baptism yet_ on Mary's birth but\nSTILL, the Angel Gabriel's greetings was:\n\"Hail Mary, full of grace, the Lord is with you.\nBlessed art thou amongst women\".\n\nEven Mary was confused about this greeting.\n\nMary could very well have possessed all of the\n_treefold original gifts above_ given to our first\nparents (Adam and Eve before their sin):\n    Hail Mary (Example of praise given by the Angel Gabriel)\n    Full of grace (natural, preternatural, supernatural)\n    The Lord is with you (At those times, God would\n                definitely want to be with those He\n                has made _blessed_)\n    Blessed art thou amongst women (that says it all)\n\nAt the conception, God made Mary _full of grace\nand blessed_ as the 'tabernacle' for the coming body\nof Christ and so,\n\nImmaculate Conception of Mary is true and Mary still\nhas maintained her Immaculate Heart. \n\n-Marida\n(P.S.  I do hope that others will continue more\n       light and facts on this matter.  Thanks.)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10049, "properties": {"category": "soc.religion.christian", "text": "From: maridai@comm.mot.com (Marida Ignacio)\nSubject: Re: Every Lent He suffers to save us\nOrganization: trunking_fixed\nLines: 59\n\nThe story I related is one of the seven apparitions\napproved by our Church as worthy of belief.  It happened\nin La Salle, France.\n\nThe moral lesson of the story is:\n\nThe Lamb of God has been sacrificed and His blood has \nbeen used to cleanse us of our sins every moment as God perceives\nworthy of being done in Heaven.  Mary weeps for The Lamb and\nfor the rest of her offsprings.  This will continue while we \ndisobey God or sin against Him.  Mary, as a messenger, \nhas been given the task to make us be 'aware' of the evil\nserpent (communism, wars, famine, unfaithful, disobedience\nto God, etc.) running after the rest of her offsprings.   \nThe children who went astray by disobedience led by the dragon is \nbrought back by her peace and loving messages, reparations for sins, \nto obey God's commandments and be more worthy to be in the presence \nof The Lamb.\n\nAs she was conceived without sin to be worthy of bearing the\nSon of God in her womb, Mary has been preparing us, the Church,\nthe Body of Christ, for His second coming (making sure we are \nprotected from the dragon).  Also, she has been preparing the new \nEden, by reversing the deed of the ancient Eve.  The new Eden will be\nthe sanctuary of the righteous as judged by Christ in His\nnext coming.\n    \nI relate the story again:\n    I believe this and Mary, in one of her apparitions  \n    in 19th or 20th century, she appeared to these      \n    two children who tends goats and cows (I forgot     \n    the exact place).  She was  weeping and telling the \n    children that she is afraid she's \"going to lose her\n    Son's arm\".  She is mourning too for these          \n    townfolks because it was their fault that there     \n    would be drought in their harvest; not much good    \n    food again this year as it was last year.           \n                                                        \n    Mary tells the children:                            \n*    Most of the townfolks in this place worked whole    *\n*    week even on Sundays when they should be in church  *\n*    honoring God.  These townfolks swears and           *\n*    uses her Son's name in bad words.  That is          *\n    why her Son's arm is so heavy in pain.              \n    Then she asked them if they pray.  The children     \n    said \"hardly\".  She asked them to pray every        \n    morning and night.  When the children went back     \n    from work they had to tell somebody about this.     \n    When the news was spred and after thorough          \n*    investigation of the incident, the townfolks        *\n*    were converted and faith and obedience to God       *\n*    were restored in their community.                   *\n\n\nOnce again, the Lamb succeeds.\n\n-Marida\n  \"...spreading God's words through actions...\"\n    -Mother Teresa\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10050, "properties": {"category": "rec.sport.baseball", "text": "From: paula@koufax.cv.hp.com (Paul Andresen)\nSubject: Re: A true story - Way to go Omar\nKeywords: Mariners, grand slam, Omar Vizquel\nNntp-Posting-Host: koufax.cv.hp.com\nOrganization: Hewlett-Packard Company, Corvallis, Oregon USA\nLines: 23\n\nIn article <1993Apr14.173236.14321@esca.com>, vigil@esca.com (Sandra Vigil) writes:\n|> Yesterday, April 14th, a friend and I were discussing the theory put\n|> forth by a local sports radio station personality that the\n|> Commissioner-less baseball owners had snuck a live ball into this years\n|> baseball games in an effort to increase home run numbers and attract\n|> fans. \n\nIt's always possible, but if this is the case, I think that there is some\nblatant discrimination going on here. Clearly Selig is allowing the opposition\nto use pre-1920 baseballs against the Dodgers.\n   \n|> Well, guess who stepped up to the plate for his first career grand slam\n|> last night against the Jays?  None other than my boy.  It was truly a\n|> sight to behold.\n\nAnd almost more impressive was that he also got an intentional walk.\n--------------------------------------------------------------------------------\n           We will stretch no farm animal beyond its natural length\n\n  paula@koufax.cv.hp.com   Paul Andresen  Hewlett-Packard  (503)-750-3511\n\n    home: 3006 NW McKinley    Corvallis, OR 97330       (503)-752-8424\n                            A SABR member since 1979\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10051, "properties": {"category": "talk.religion.misc", "text": "From: alizard@tweekco.uucp (A.Lizard)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: Tweek-Com Systems BBS, Moraga, CA (510) 631-0615\nLines: 32\n\nalamut@netcom.com (Max Delysid (y!)) writes:\n\n> In article <1qppef$i5b@usenet.INS.CWRU.Edu> ch981@cleveland.Freenet.Edu (Tony\n> >\n> >     Name just three *really* competing Rosicrucian Orders. I have\n> >probably spent more time than you doing the same. \n> >\n> >     None of them are spin-offs from O.T.O. The opposite may be the\n> >case. \n> \n> Can we assume from this statement that you are >unequivocally< saying that\n> AMORC is not a spin off of OTO? .. and that in fact, OTO may well be a spin\n> off of AMORC??\n> i would be quite interested in hearing what evidence you have to support this\n> claim. \n> \n> \n\nWell, there is a fair amount of evidence floating around that indicates\nthat OTO has been around since at least the late 1800s, long before\nCrowley ever heard of it, how long has AMORC been around? (yes, I know\nthat they claim to have existed as an organization clear into prehistory,\nbut I doubt that they have any organizational paperwork\nas a non-profit that can be carbon-dated to 20,000 BC)\n                                             A.Lizard\n\n-------------------------------------------------------------------\nA.Lizard Internet Addresses:\nalizard%tweekco%boo@PacBell.COM        (preferred)\nPacBell.COM!boo!tweekco!alizard (bang path for above)\nalizard@gentoo.com (backup)\nPGP2.2 public key available on request\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10052, "properties": {"category": "sci.electronics", "text": "From: pmalenfa@kitkat.webo.dg.com (Paul Malenfant)\nSubject: Optoisolator interfacing questions\nReply-To: pmalenfa@kitkat.webo.dg.com (Paul Malenfant)\nOrganization: Data General Corporation, Westboro, MA\nLines: 26\n\n\nI am interfacing some simple circuits that run on 9V to my\ncpu board which runs at 5-6V.  The optoisolator is a 4N35.\nOn the led side, I put the signal I want through a 10k resistor\nto the base of a 2N2222.  On the transistor side, I tie my\ncpu input line to the collector which has a pull-up resistor\nof 47k.\n\nIt functions OK, but seems VERY slow.  I can detect pulses\nthat occur at about 2kHz, but not much faster.  Isn't the\nrise/fall time of this device, something like 5uS?  I should\nbe able to detect my target of 40kHz, but I can't get 16kHz.\nThis is done using wire-wrap and the wires going to the cpu\nand to the test pin are about 8 inches long, but I'm not\ndoing anything high-speed.\n\nIn the Art of Electronics, it mentions tying the base of the\nphototransistor to ground through a resistor to improve the\nspeed.  Is that what I need to do?  How do I calculate the\nresistor value?\n\n\n-- \n\nPaul Malenfant\npmalenfa @ kitkat.webo.dg.com (508-870-6460)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10053, "properties": {"category": "talk.religion.misc", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 34\n\nIn article <1qjd3o$nlv@horus.ap.mchp.sni.de>, frank@D012S658.uucp (Frank O'Dwyer) writes:\n>Firstly, science has its basis in values, not the other way round.\n>So you better explain what objective atoms are, and how we get them\n>from subjective values, before we go any further.\n\n\nAtoms are not objective.  They aren't even real.  What scientists call\nan atom is nothing more than a mathematical model that describes \ncertain physical, observable properties of our surroundings.  All\nof which is subjective.  \n\nWhat is objective, though, is the approach a scientist \ntakes in discussing his model and his observations.  There\nis no objective science.  But there is an objective approach\nwhich is subjectively selected by the scientist.  Objective\nin this case means a specified, unchanging set of rules that\nhe and his colleagues use to discuss their science.\n\nThis is in contrast to your Objective Morality.  There may be an\nobjective approach to subjectively discuss your beliefs on\nmorality.  But there exists no objective morality.\n\nAlso, science deals with how we can discuss our observations of \nthe physical world around us.  In that the method of discussion\nis objective ( not the science; not the discussion itself ).\n\nScience makes no claims to know the whys or even the hows sometimes\nof what we can observe.  It simply gives us a way to discuss our\nsurroundings in a meaningful, consistent way.\n\nI think it was Neils Bohr who said (to paraphrase) Science is what\nwe can _say_ about the physical world.\n\n-jim halat\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.472+0000", "event": "documents", "entityId": 10054, "properties": {"category": "rec.autos", "text": "From: kastle@wpi.WPI.EDU (Jacques W Brouillette)\nSubject: Re: WARNING.....(please read)...\nOrganization: Worcester Polytechnic Institute\nLines: 8\nDistribution: world\nNNTP-Posting-Host: wpi.wpi.edu\nKeywords: BRICK, TRUCK, DANGER\n\nCould we plase cease this discussion.  I fail to see why people feel the need \nto expound upon this issue for days and days on end.  These areas are not meant for this type of discussion.  If you feel the need to do such things, please\ntake your thought elsewhere.  Thanks.\n-- \n : I want only two things from this world, a 58 Plymouth and a small  : \n : OPEC nation with which to fuel it.  This would be a good and just  :\n : thing.  Car Smashers can just go home and sulk.                    :\n :        Jacques Brouillette ---  Manufacturing Engineering          :\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10055, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Dale_Adams@gateway.qm.apple.com (Dale Adams)\nSubject: Re: HELP INSTALL RAM ON CENTRIS 610\nOrganization: Apple Computer Inc.\nLines: 23\n\nIn article <C5115s.5Fy@murdoch.acc.Virginia.EDU> \njht9e@faraday.clas.Virginia.EDU (Jason Harvey Titus) writes:\n>         I had asked everyone about problems installing a 4 meg\n> simm and an 8 meg simm in my Centris 610, but the folks at the\n> local Apple store called the folks in Cupertino and found that\n> you can't have simms of different speeds in one machine, even\n> if they are both fast enough - ie - My 80 ns 8 meg and 60ns 4\n> meg simms were incompatibable...  Just thought people might\n> want to know.....\n\nThere's absolutely no reason why differences in the DRAM access time \n_alone_ would cause an incompatibility.  There would have to be another \ndifference between the SIMMs for there to be a problem.  I've often used \nmemory of different speeds with no problems whatsoever.  As long as it's\nas fast (or faster) than the minimum requirement you should be fine.\n\nJust out of curiosity, did you actually try this and see a problem, or \nwere you told it wouldn't work and so never tried it?  Also out of \ncuriosity, do you know exactly who in Cupertino you dealer talked to (as \nI'd like to find out what they're basing this recommendation on).\n\n- Dale Adams\n  Apple Computer, Inc.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10056, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Q the Lost Gospel\nOrganization: The Claremont Graduate School\nLines: 5\n\nJust finished reading Burton Mack's new book, _The Lost Gospel, Q and Christian\nOrigins_.  I thought it was totally cool.  Anyone else read it and want to \ntalk?\n\nRandy\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10057, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: The Tories could win the \"lottery\"...Clinton GST?\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 44\n\nIn article <1993Apr16.083029.12516@umr.edu> ckincy@cs.umr.edu (Charles Kincy) w\nrites:\n>In article <1993Apr16.031616.23130@magnus.acs.ohio-state.edu> rscharfy@magnus.\nacs.ohio-state.edu (Ryan C Scharfy) writes:\n>>\n>>This country is hardly ruined. In fact, it is booming compared to after the\n>>1980 election.\n>>\n>>This whole \"USA has gone to hell and Reagan/Bush caused it\", is not only lame\n,\n>>pathetic, and old....... it's wrong.\n>>\n>>Under Reagan/Bush the economy grew by 1.1 trillion dollars.  This is more tha\nn\n>>the entire economy of Germany, a \"kind, gentle\" country, in many peoples'\n>>books.  What a joke.\n>\n>Drive down to Cincinnati and take a look.  Not pretty, is it?\n\nBut drive UP to Cleveland and it is about 10,000 times better.  I from Toledo \noriginally (but that place always as sucked as long as I've been on the planet.\n\n>Things were much better there in 1980.  All that growth went into\n>the hands of Ron and Georgie's pals, and I DIDN'T GET A SINGLE\n>DIME OF IT, DAMMIT.  And, now, I'm gonna be bled to death by tax\n>leeches to pay for the damage.  F***ing great.\n\nRepublicans have been trying to pass a balanced budget amendment for the last \nten years.\n\n>\n>Oh, here's another thing.  Seems like a lot of people in\n>Columbus drive over to Marysville and make Japanese cars.  Hm.\n\nBecause for a while, the American companies couln't even compete in THEIR OWN \nCOUNTRY, where free trade isn't even an issue.  However, even the automobile\npendelum has swung back to the Big 3.\n\n>I wonder how many American-owned companies employ those in\n>Central Ohio?  Other than Ohio State University.  :)\n\nOh, I don't know.  It's probably in the tens of thousands.\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10058, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 44\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\nbontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev) writes:\n> If there are many as..., er, people in the USA who reason like the \n> above, then it should not be surprising that the current plot has been \n> allowed to happen... \n\nThe willingness of the majority of the people to give up their freedom in \nexchange for a sense of safety is hardly limited to the USA, and is an \nendemic problem in any human society of any appreciable size.  The structure \nof the US government does try to combat this tendency to some extent, but \nfighting entropy is always a losing battle.  Most people would rather have \ncomfort than freedom.  The paradox is that you can't really have the former, \nin the long term, unless you have the latter.\n\nOne of the reasons that I probably come across to some people as a weird \ncross between a libertarian and an \"establishment tool\" is that I end up \ntaking an utterly pragmatic view of government.  I don't get up in arms when \nthe government fails to protect the interests of the people, because in my \nlifetime it never has--therefore, I have no expectation that it will.  \n\nAs a result, I protect my own interests rather than expecting the government \nto be \"fair\".  I will use strong cryptography when I think it is needed, \nwhether or not it is legal at the time.  Same thing with anything else the \ngovernment would rather not see in private hands--that's their problem.  \nWhat's important to me is using the right tool for the job.  If it's legal, \nso much the better.  If it is not, but does not violate my (very strong) \nsense of personal ethics, I will use it anyway as long I think it is worth \nit.  Expecting the government to actually protect the interests of its \ncitizens, except by accident, is utter folly.  Even Jefferson, one of the \nmajor architects of the American system of government, figured that in a \ncouple hundred years it would become so corrupt and self-serving that it \nwould be time dismantle it and try again, by revolution if necessary.  I \nagree, and while I don't go around trying to spark one, I'll certainly \nparticipate if it happens when I'm around.  There is a reason I am such a \nstrong supporter of individual rights while being so cynical about politics.  \nI've already written off politics.\n\nAnd yes, this may get me in trouble some day.  If so, so be it.  I drive \nfaster than 55 MPH, too.\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10059, "properties": {"category": "sci.med", "text": "From: km@cs.pitt.edu (Ken Mitchum)\nSubject: Re: Menangitis question\nArticle-I.D.: pitt.19427\nReply-To: km@cs.pitt.edu (Ken Mitchum)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 42\n\nIn article <C4nzn6.Mzx@crdnns.crd.ge.com> brooksby@brigham.NoSubdomain.NoDomain (Glen W Brooksby) writes:\n>This past weekend a friend of mine lost his 13 month old\n>daughter in a matter of hours to a form of menangitis.  The\n>person informing me called it 'Nicereal Meningicocis' (sp?).\n>In retrospect, the disease struck her probably sometime on \n>Friday evening and she passed away about 2:30pm on Saturday.\n>The symptoms seemed to be a rash that started small and\n>then began progressing rapidly. She began turning blue\n>eventually which was the tip-off that this was serious\n>but by that time it was too late (this is all second hand info.).\n>\n>My question is:\n>Is this an unusual form of Menangitis?  How is it transmitted?\n>How does it work (ie. how does it kill so quickly)?\n\nThere are many organisms, viral, bacterial, and fungal, which can\ncause meningitits, and the course of these infections varies\nwidely. The causes of bacterial meningitis vary with age: in adults\npneumococcus (the same organism which causes pneumococcal pneumonia)\nis the most common cause, while in children Hemophilus influenzae\nis the most common cause.\n\nWhat you are describing is meningitis from Neisseria meningitidis,\nwhich is the second most common cause of bacterial meningitis in\nboth groups, but with lower incidence in infants. This organism\nis also called the \"meningococcus\", and is the source of the\ncommon epidemics of meningitis that occur and are popularized in\nthe press. Without prompt treatment (and even WITH it in some cases),\nthe organism typically causes death within a day. \n\nThis organism, feared as it is, is actually grown from the throats\nof many normal adults. It can get to the meninges by different\nways, but blood borne spread is probably the usual case. \n\nRifampin (an oral antibiotic) is often given to family and contacts\nof a case of meningococcal meningitis, by the way.\n\nSorry, but I don't have time for a more detailed reply. Meningitis\nis a huge topic, and sci.med can't do it justice.\n\n\n-km\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10060, "properties": {"category": "comp.graphics", "text": "From: madler@cco.caltech.edu (Mark Adler)\nSubject: Re: images of earth\nOrganization: California Institute of Technology, Pasadena\nLines: 8\nNNTP-Posting-Host: sandman.caltech.edu\n\n\n>> So they should sue the newspaper I got it from for printing it.\n>> The article didn't say anything about copyrights.\n\nI'm sure the whole newspaper is copyrighted.  They could have gotten\npermission to use the image under their own copyright.\n\nmark\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10061, "properties": {"category": "rec.motorcycles", "text": "From: ranck@joesbar.cc.vt.edu (Wm. L. Ranck)\nSubject: Re: BDI Experience\nOrganization: Virginia Tech, Blacksburg, Virginia\nLines: 21\nNNTP-Posting-Host: joesbar.cc.vt.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\nKent D. Polk (kent@swrinde.nde.swri.edu) wrote:\n\n: Also watch your mirrors any time you are turning. I just had another close\n: one last night. Preparing for a right turn on a two lane road. Right turn\n: signals on, starting the turn, and this lady behind me hits the throttle and\n: starts to pass me on the RIGHT.  This has happened to me twice before.  the\n\nI have had this happen to me often enough that I always look for it.\nOn my ride to work in the morning I come to a stop light where there are\n3 lanes in my direction.  One for left turns, one for straight through, and\none for right turns.  All clearly marked.  Plus there is a clearly marked \nbicycle lane.  I ride into the right turn lane with my signal on and stop at \nthe stop line.  Looking left to see if I can make a \"right turn on red\" and\nwhen I start to move discovered that some idiot has pulled into the bike\nlane and is trying to pass me on the right.  GRRR.\n   I always do a head check on bike lanes.  Not always for bicycles. . .\n--\n*******************************************************************************\n* Bill Ranck             (703) 231-9503                     Bill.Ranck@vt.edu *\n* Computing Center, Virginia Polytchnic Inst. & State Univ., Blacksburg, Va.  *\n*******************************************************************************\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10062, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rogntorb@idt.unit.no (Torbj|rn Rognes)\nSubject: Adding int. hard disk drive to IIcx\nKeywords: Mac IIcx, internal, hard disk drive, SCSI\nReply-To: rogntorb@idt.unit.no (Torbj|rn Rognes)\nOrganization: Div. of CS & Telematics, Norwegian Institute of Technology\nLines: 32\n\nI haven't seen much info about how to add an extra internal disk to a\nmac. We would like to try it, and I wonder if someone had some good\nadvice.\n\nWe have a Mac IIcx with the original internal Quantum 40MB hard disk,\nand an unusable floppy drive. We also have a new spare Connor 40MB\ndisk which we would like to use. The idea is to replace the broken\nfloppy drive with the new hard disk, but there seems to be some\nproblems:\n\nThe internal SCSI cable and power cable inside the cx has only\nconnectors for one single hard disk drive.\n\nIf I made a ribbon cable and a power cable with three connectors each\n(1 for motherboard, 1 for each of the 2 disks), would it work?\n\nIs the IIcx able to supply the extra power to the extra disk?\n\nWhat about terminators? I suppose that i should remove the resistor\npacks from the disk that is closest to the motherboard, but leave them\ninstalled in the other disk.\n\nThe SCSI ID jumpers should also be changed so that the new disk gets\nID #1. The old one should have ID #0.\n\nIt is no problem for us to remove the floppy drive, as we have an\nexternal floppy that we can use if it won't boot of the hard disk.\n\nThank you!\n\n----------------------------------------------------------------------\nTorbj|rn Rognes                            Email: rogntorb@idt.unit.no\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10063, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ebth@rhi.hi.is (Eggert Thorlacius)\nSubject: Monitors and Video cards for SE/30\nLines: 24\nNntp-Posting-Host: hengill.rhi.hi.is\n\n\nHello all.\n\tI am thinking about buying an external monitor for my SE/30 and was\nwondering if anyone out in netland has any advice for me.\n\tI am mostly thinking about a 14\" color monitor and an 8 bit card that\ncan switch between 640*480 and something higher (like 800*600).  I read an\nold report on a card from Lapis that could do this, but could not use the\nexternal monitor as the main screen (with menubar) which to me is a major draw-\nback.  Has this perhaps been fixed? Or can any other cards do this (like the\nMicron Xceed) ?\n\tAlso which monitor should I buy?  At the moment I am leaning towards\nthe Sony 1304, 1304s or 1320 (what exactly is the difference between these?)\nbut are there any other good cheap monitors I should know about?  Doesn't the\nmonitor have to be multisync to support cards that can switch resolutions?\n\nPlease send me e-mail and I'll summarize.\n\nI would also greatly appreciate getting the e-mail addresses of any mail order\ncompanys that sell monitors or cards.\n\nThanks in advance\n\nEggert Thorlacius\nUniversity of Iceland\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10064, "properties": {"category": "sci.space", "text": "Subject: Re: Gamma Ray Bursters.  Where are they? \nFrom: belgarath@vax1.mankato.msus.edu\nOrganization: Mankato State University\nNntp-Posting-Host: vax1.mankato.msus.edu\nLines: 67\n\nIn article <1radsr$att@access.digex.net>, prb@access.digex.com (Pat) writes:\n>   What  evidence  indicates that Gamma Ray bursters are very far away?\n> \n> Given the enormous  power,  i was just wondering,  what if they are\n> quantum  black holes or something  like that  fairly close by?\n> \n> Why would they have to be at  galactic ranges?   \n> \n> my own pet theory is that it's  Flying saucers  entering\n> hyperspace :-)\n> \n> but the reason i am asking is that most everyone assumes  that they\n> are  colliding nuetron stars  or  spinning black holes,  i just wondered\n> if any mechanism could exist  and place them  closer in.\n> \n> pat  \n        Well, lets see....I took a class on this last fall, and I have no\nnotes so I'll try to wing it...  \n        Here's how I understand it. Remember from stellar evolution that \nblack holes and neutron stars(pulsars) are formed from high mass stars,\nM(star)=1.4M(sun).  High mass stars live fast and burn hard, taking\nappoximately 10^5-10^7 years before going nova, or supernova.  In this time,\nthey don't live long enough to get perturbed out of the galactic plane, so any\nof these (if assumed to be the sources of GRB's) will be in the plane of the\ngalaxy.  \n        Then we take the catalog of bursts that have been recieved from the\nvarious satellites around the solar system, (Pioneer Venus has one, either\nPion. 10 or 11, GINGA, and of course BATSE) and we do distribution tests on our\ncatalog.  These tests all  show, that the bursts have an isotropic\ndistribution(evenly spread out in a radial direction), and they show signs of\nhomogeneity, i.e. they do not clump in any one direction.  So, unless we are\nsampling the area inside the disk of the galaxy, we are sampling the UNIVERSE.\nNot cool, if you want to figure out what the hell caused these things.  Now, I\nsuppose you are saying, \"Well, we stil only may be sampling from inside the\ndisk.\"  Well, not necessarily.  Remember, we have what is more or less an\ninterplanetary network of burst detectors with a baseline that goes waaaay out\nto beyond Pluto(pioneer 11), so we should be able, with all of our detectors de\ntect some sort of difference in angle from satellite to satellite.  Here's an \nanalogy:  You see a plane overhead.  You measure the angle of the plane from\nthe origin of your arbitrary coordinate system.  One of your friends a mile\naway sees the same plane, and measures the angle from the zero point of his\narbitrary system, which is the same as yours.  The two angles are different,\nand you should be able to triangulate the position of your burst, and maybe\nfind a source.  To my knowledge, no one has been able to do this.  \n        I should throw in why halo, and corona models don't work, also.  As I\nsaid before, looking at the possible astrophysics of the bursts, (short\ntimescales, high energy) black holes, and pulsars exhibit much of this type of\nbehavior.  If this is the case, as I said before, these stars seem to be bound\nto the disk of the galaxy, especially the most energetic of the these sources.\nWhen you look at a simulated model, where the bursts are confined to the disk,\nbut you sample out to large distances, say 750 mpc, you should definitely see\nnot only an anisotropy towards you in all direction, but a clumping of sources \nin the direction of the  galactic center.  As I said before, there is none of\nthese characteristics.  \n        \n        I think that's all of it...if someone needs clarification, or knows\nsomething that I don't know, by all means correct me.  I had the honor of\ntaking the Bursts class with the person who has done the modeling of these\ndifferent distributions, so we pretty much kicked around every possible\ndistribution there was, and some VERY outrageous sources. Colliding pulsars,\nblack holes, pulsars that are slowing down...stuff like that.   It's a fun\nfield. \n        Complaints and corrections to: belgarath@vax1.mankato.msus.edu or \npost here.  \n                                                        -jeremy\n\n        \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10065, "properties": {"category": "rec.autos", "text": "Subject: Convertibles\nFrom: bouton@gertrude.cms.udel.edu (Katherine Bouton)\nReply-To: bouton@gertrude.cms.udel.edu\nOrganization: U of Delaware, College of Marine Studies / Lewes\nNntp-Posting-Host: gertrude.cms.udel.edu\nLines: 4\n\nI was wondering if someone could point me to somewhere I could\nfind a list (and hopefully comparison) of all the convertibles that are\nout these days. Seems like they are making a big comeback - but I'm not\nsure where to look\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10066, "properties": {"category": "sci.crypt", "text": "From: so@eiffel.cs.psu.edu (Nicol C So)\nSubject: Re: Source of random bits on a Unix workstation\nNntp-Posting-Host: eiffel.cs.psu.edu\nOrganization: Penn State Computer Science\nLines: 19\n\nIn article <897@pivot.sbi.com> bet@sbi.com (Bennett Todd @ Salomon Brothers Inc., NY ) writes:\n>This came up because I decided to configure up MIT-MAGIC-COOKIE-1 security\n>for X11R5. For this to work you need to stick some bits that an intruder\n>can't guess in a file (readable only by you) which X client applications\n>read. They pass the bits back to the server when they want to establish a\n>connection.\n>\n>...\n>What I settled on was grabbing a bunch of traffic off the network.\n>Basically, I ran\n>\n>\tetherfind -u -x greater 0|compress\n>\n>and skipped over 10K of output, then grabbed my bits. As best I can tell,\n>these are bits that can be expected to be reasonably uniformly distributed,\n>and quite unguessable by an intruder.\n\nFor your application, what you can do is to encrypt the real-time clock\nvalue with a secret key.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10067, "properties": {"category": "sci.med", "text": "From: colby@oahu.cs.ucla.edu (Kenneth Colby)\nSubject: Re: chronic sinus and antibiotics\nKeywords: sinus, antibiotics, antibacterial\nNntp-Posting-Host: oahu.cs.ucla.edu\nOrganization: UCLA, Computer Science Department\nDistribution: na\nLines: 9\n\n     If the nose culture shows Staph, then Ceftin or even Ceclor\n     are better. Suprax does not kill Staph. Treating bacterial\n     infections involves a lot of try-and-fail because the\n     infections often involve multiple organisms with many resistant\n     strains. Some 60% of Hemophilus Influenza strains are now\n     resistant. What works for me and my organisms may not work\n     for you and yours. Keep experimenting.\n\t       Ken Colby\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10068, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: sherwood@adobe.com (Geoffrey Sherwood)\nSubject: Orchid P9000 vs Fahrenheit (mini review)\nOrganization: Adobe Systems Incorporated\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 79\n\n\nI just purchased a Viewsonic 17 and and Orchid P9000.  In short, I am happy\nwith the monitor and unhappy with the card.  I have spent a lot more time\nfutzing with the card, so that is what I am going to write about.  The monitor\nis pretty.  The moires I had under Simcity on my 17\" Magnavox went away.  It\nisn't as heavy as I thought it would be (45 lbs, I think).  So much for the\nmonitor.  On to the bitch session and test results.\n\nIn going with the modern trend, the Orchid P9000 card only supports 16 colors\nin 640x480 mode without a driver.  Of course, this breaks any DOS program\nwhich uses SVGA modes (like most of my CD-ROMs).  The Compudyne Whiplash VGA,\nOrchid Fahrenheit 1280, and Orchid F. VLB all share this limitation.  Those\nare all S3 cards, which means it is an S3 problem for them (the P9000 uses\na Weitek VGA chip which also doesn't support them).  The Hercules Graphite\ncard does seem to have these modes, but I didn't run the same test cases as\nI did on the other boards during the brief time I had it.  It was able to\nprint the splash screen for the Grolier's Encyclopedia, though, which the S3\ncards just printed as hash, which is why I suspect the SVGA modes are supported.\n\nThe supported resolutions really annoy me.  You can do 1280x1024 at 75Hz if\nyou tell the driver you have an NEC 5FG (they only have about six monitors\nlisted plus 'Generic', and if you choose Generic you can't get any high\nrefreshes at ALL).  But at 1024x768 you are limited to 70Hz.  Seems to me\nthat the hardware should be able to support the bandwidth (if it can do 75Hz\nat 1280 it sure should be able to do it at 1024!).  Higher vertical resolution\nwas the main reason I bought the card over the Orchid F. VLB I currently have,\nand it will do 1024x768x70 Hz as well.\n\nThe higher graphics modes all crash HP Dashboard.  I just got off the phone\nwith Orchid, and with the 1.1 drivers (I don't know what I have) he was unable\nto recreate the problem.  On the plus side, their tech rep was as helpful as\nhe could be and booted up the program on his computer to verify he didn't have\nthe problem.  He didn't know why they limited the refresh to 70 Hz either.\n\nThe board is faster that the OFVLB for most things according to the Hercules\nSpeedy program. This program tests various operations and reports the results\nin pixels/second.  I don't have the numbers for the Graphite card, but they\nwere close to half of the OFVLB (ie, slower) but that was running in a 20MHz\n386, ISA, so the numbers aren't really comparable.  The following numbers\nwere all obtained using a 486, 33 MHz, AIR motherboard (UMC chipset), with\n8 MB memory.  I give ranges because the program reports the numbers as it\ncomputes them, and these tend to jump around a bit.\n\n\nK means thousand (not 1024), M means million, pixels per second\n\n             Orchid Fahrenheit VLB                  Orchid P9000\nChip                 S3 805                          Weitek 9000\nDIB to Screen        182K - 190K                     228K - 240K\nMemory to Screen     5.9M - 6.2M                     8.4M - 8.9M\nScreen to Screen     14M - 14.8M                     29M - 30.8M\nVector, solid        2.4M                            2.8M - 2.9M\nVector, styled       55K - 58K                       449K - 473K\nPolygon, shaded      1.8M - 2.1M                     1.6M - 1.9M\nPolygon, hatched     6.9M - 7.9M                     1.3M - 1.7M\nTernary Rops         1.9M - 2.4M                     477K - 520K\nFont                 130K - 160K                     46K - 55K / 1.2M\n\nThe DIB to Screen test takes a device independent bitmap of a face and transfers\nit to the screen.  I have no idea what is being done internally as far as\nconversions go.  The memory to screen takes the same face and copies it to\nthe screen, my guess is after it has been rasterized into a bitmap that can\njust be copied to the video display.  The screen to screen test copies that\nface from place to place on the screen.  Awesome!  Interestingly, the solid\nvectors and shaded polygons show no improvement, and hatched polygons (ie,\nfilled with cross-hatching) and Ternary Rops (whatever they are.  Graphics\noperations like XORs maybe????) are a dead loss on the 9000.  I give two\nnumbers for the 9000 fonts, because I think they are caching.\nWhen the fonts are first drawn on the screen they are done fairly slowly --\n1/3 the speed of the OFVLB.  Then the speed increases dramatically.  Sounds\nlike programming to a benchmark to me....\n\nI make no claims that these numbers mean anything at all.  Its just what\nI saw when I ran them on my computer.  I normally don't write disclaimers,\nbut this time maybe I'd better.  My testing is totally unconnected with my\nwork (I program under UNIX on Decstations) is done completely without the\nknowledge, blessing, or equipment of my company.\n\ngeoff sherwood\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10069, "properties": {"category": "comp.windows.x", "text": "From: gmh@hpfcso.FC.HP.COM (Greg Hughes)\nSubject: Re: Looking for an R5 Xserver for HP9000/385\nOrganization: Hewlett-Packard, Fort Collins, CO, USA\nLines: 3\n\nUpdate your 385 to HP-UX 9.0.  You get an R5 server and libraries.\n\nGreg Hughes\tgmh@fc.hp.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10070, "properties": {"category": "rec.sport.baseball", "text": "From: dpassage@soda.berkeley.edu (David G. Paschich)\nSubject: Re: HBP? BB? BIG-CAT?\nOrganization: Organization?  Who cares?  You just gotta say \"Go Bears!\"\nLines: 14\nDistribution: na\n\t<1qv9psINNsj6@lynx.unm.edu> <C5r7tv.36s@odin.corp.sgi.com>\nNNTP-Posting-Host: soda.berkeley.edu\nIn-reply-to: kubey@sgi.com's message of Mon, 19 Apr 1993 23:27:29 GMT\n\nIn article <C5r7tv.36s@odin.corp.sgi.com> kubey@sgi.com (Ken Kubey) writes:\n\n   I suppose a foul ball machine (like Brett Butler) is pretty valuable,\n   but I'd rather watch (and root for) the lower OBP guys who can\n   actually hit the ball.\n\nAnd I'd rather watch (and root for) a team that scores lots of runs\nand wins games.\n\nOf course, I'm rooting for the Rockies and Andres anyway.  But that's\nfor irrational hometown reaons.  I also root for Frank Thomas. :)\n\nDavid Paschich\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10071, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: <Political Atheists?\nOrganization: sgi\nLines: 15\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1ql0ajINN2kj@gap.caltech.edu>, keith@cco.caltech.edu (Keith Allan Schneider) writes:\n|> kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n|> \n|> >>But chimps are almost human...\n|> >Does this mean that Chimps have a moral will?\n|> \n|> Well, chimps must have some system.  They live in social groups\n|> as we do, so they must have some \"laws\" dictating undesired behavior.\n\nAh, the verb \"to must\".   I was warned about that one back\nin Kindergarten.\n\nSo, why \"must\" they have such laws?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10072, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: murthy@aslslc120.asl.dl.nec.com (Vasudev Murthy)\nSubject: PCs from Gateway - opinions sought\nNntp-Posting-Host: aslslc120\nOrganization: NEC America, Inc. Irving, Texas\nDistribution: usa\nLines: 25\n\n\nSorry if this has been beaten to death on this forum.\n\nI am looking seriously at buying a 486 DX / 33 from Gateway.\nI will probably buy it without a monitor, as I've heard negative\nstuff about Gateway monitors.\n\nI've also heard its tough to get through to technical\nsupport.\n\nI'm seeking opinions on whether or not its wise to go ahead\nbased on criteria such as price, warranty service, general\nruggedness of the system, reliability of the machine and of\nGateway too, and so on.\n\nPlease advise!!\n\nThanks in advance!\n\nVasudev Murthy\n-- \nVasudev Murthy             Any opinions expressed are strictly  \nmurthy@asl.dl.nec.com      my own  and have nothing to do with\n(214) 518-3602             Advanced Switching Lab, NEC America, Inc.\n1525 Walnut Hill Lane Irving TX 75038\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10073, "properties": {"category": "sci.electronics", "text": "From: dnewman@lynx.dac.northeastern.edu (David F. Newman)\nSubject: arcade style buttons and joysticks\nOrganization: Division of Academic Computing, Northeastern University, Boston, MA. 02115 USA\nLines: 8\n\nHi there,\nCan anyone tell me where it is possible to purchase controls found\non most arcade style games.  Many projects I am working on would\nbe greatly augmented if I could implement them.  Thanx in advance.\n\n-Dave\ndnewman@lynx.dac.northeastern.edu\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10074, "properties": {"category": "misc.forsale", "text": "From: fuzzy@hardy.u.washington.edu (Peifeng Xu)\nSubject: Answering Machine Phone\nOrganization: University of Washington, Seattle\nLines: 17\nDistribution: pnw\nReply-To: fuzzy@u.washington.edu\nNNTP-Posting-Host: hardy.u.washington.edu\n\n ***********************************************\n    PANASONIC PHONE WITH ANSWERING MACHINE\n\n      - LOOKS LIKE A BRAND NEW \n      - ALL BASIC ANSWERING MACHINE FUNCTION\n      - 8 PHONE NUMBER MEMORY + RECALL FUNCTION\n      - 1 YEAR OLD\n \n    ASKING FOR $45.00\n\n\n   Interest? Please call me at 206-720-1089\n  \n   --- Alex Choe\n*********************************************\n\n    \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10075, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Lunar Colony Race! By 2005 or 2010?\nArticle-I.D.: aurora.1993Apr20.234427.1\nOrganization: University of Alaska Fairbanks\nLines: 27\nNntp-Posting-Host: acad3.alaska.edu\n\nOkay here is what I have so far:\n\nHave a group (any size, preferibly small, but?) send a human being to the moon,\nset up a habitate and have the human(s) spend one earth year on the moon. Does\nthat mean no resupply or ?? \n\nNeed to find atleast $1billion for prize money.\n\nContest open to different classes of participants.\n\nNew Mexico State has semi-challenged University of Alaska (any branch) to put a\nteam together and to do it..\nAny other University/College/Institute of Higher Learning wish to make a\ncounter challenge or challenge another school? Say it here.\n\nI like the idea of having atleast a russian team.\n\n\nSome prefer using new technology, others old or ..\n\nThe basic idea of the New Moon Race is like the Solar Car Race acrossed\nAustralia.. Atleast in that basic vein of endevour..\n\nAny other suggestions?\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10076, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: Re: Heatsink needed\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 9\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nAndrew,\nYou can get the heat sinks at Digi-Key 1-800-344-4539 part #HS157-ND\n$4.10  size 1.89\"L x 1.89\"W x .600\"H  comes with clips to install it.\nBut if it was me I would get a $12.99 small fan from Radio Shack\nand install it where it could just blow at the cpu instead...Sam\n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10077, "properties": {"category": "comp.graphics", "text": "Subject: AutoCAD -> TIFF Can it be done????\nFrom: cvadrmaz@vmsb.is.csupomona.edu\nOrganization: California State Polytechnic University, Pomona\nNntp-Posting-Host: acvax2\nNntp-Posting-User: cvadrmaz\nLines: 9\n\nHello, I realize that this might be a FAQ but I have to ask since I don't get a\nchange to read this newsgroup very often.  Anyways for my senior project I need\nto convert an AutoCad file to a TIFF file.  Please I don't need anyone telling\nme that the AutoCAD file is a vector file and the TIFF is a bit map since I\nhave heard that about 100 times already I would just like to know if anyone\nknows how to do this or at least point me to the right direction.\n\nAny help greatly appreciated,\nMatt Georgy\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10078, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: army in space\nOrganization: Express Access Online Communications USA\nLines: 10\nDistribution: world\nNNTP-Posting-Host: access.digex.net\n\n\nThere is the Army Ballistic Missile Defense Organization.\n\nThey were the precursors to SDIO.  and still exist under\nthat umbrella.  Army Signal Corp's  and DCA  defense Comm Agency\noops  DISA, they just changed names  do space work.  that's\nthe point of all those defense comm sats.  \n\nBut don't worry,  there are lots of jobs that need ditch digging,\nsomehow you'll end up there ;-)\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.473+0000", "event": "documents", "entityId": 10079, "properties": {"category": "soc.religion.christian", "text": "From: Steve.Hayes@f22.n7101.z5.fidonet.org\nSubject: Pantheism & Environmentalism\nLines: 51\n\n09 Apr 93, Susan Harwood Kaczmarczik writes to All:\n\n >> \"We suspect that's because one party to the (environmental)\n >> dispute thinks the Earth is sanctified.  It's clear that much\n >> of the environmentalist energy is derived from what has been\n >> called the Religious Left, a SECULAR, or even PAGAN fanaticism\n >> that now WORSHIPS such GODS as nature and gender with a\n >> reverence formerly accorded real religions.\"  (EMPHASIS MINE).\n\n SHK> First of all, secular and pagan are not synonyms.  Pagan, which is\n SHK> derived from the latin paganus, means \"of the country.\"  It is, in\n SHK> fact, a cognate with the Italian paisano, which means peasant.\n SHK> Paganism, among other things, includes a reverence for the planet and\n SHK> all life on the planet -- stemming from the belief that all life is\n SHK> interconnected.  So, rather than be something secular, it is something\n SHK> very sacred.\n\nI would go further, and say that much of the damage to the environment\nhas been caused by the secular worldview, or by the humanist\nworldview, and especially by the secular humanist worldview.\n\nThis is not to say that ALL secular humanists are necessarily avid\ndestroyers of the environment, and I am sure that there are many who\nare concerned about the environment. But at the time of the\nRenaissance and Ref ormation in Western Europe man became the centre,\nor the focus of culture (hence \"humanism\"). This consciousness was\nalso secular, in the sense that it was concerned primarily with the\npresent age, r ather than the age to come. Capitalism arose at the\nsame time, and the power of economics became central in philosophy.\nThis doesn't mean that economics did not exist before, simply that it\nbegan to dominate the conscious cultural values of Western European\nsociety and its offshoots. This cultural shift was, in its later\nstages, accompanied by industrial revolutions and the values that\njustified\n them.\n\nThere was a fundamental cultural shift in the meaning of \"economics\" -\nfrom the Christian view of man as the economos, the steward, of\ncreation to the secular idea of man as the slave of economic forces\nand powers. There were denominational differences among the new\nworshippers of Mammon. For some the name of the deity was \"the free\nrein of the market mechanism\", while for others it was \"the\ndialectical forces of history\". But in both the capitalist West and\nthe socialist East the environment was sacrificed on the altar of\nMammon. The situation was mitigated in the West because thos e who\nwere concerned about the damage to the environment had more freedom to\noppose what was happening and state their case.\n\nSteve\n\n--- GoldED 2.40\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10080, "properties": {"category": "talk.religion.misc", "text": "From: david@terminus.ericsson.se (David Bold)\nSubject: Re: Question for those with popular morality\nReply-To: david@terminus.ericsson.se\nDistribution: world\nOrganization: Camtec Electronics (Ericsson), Leicester, England\nLines: 89\nNntp-Posting-Host: bangkok\n\nIn article Fo2@murdoch.acc.Virginia.EDU, pmy@vivaldi.acc.virginia.edu (Pete Yadlowsky) writes:\n\n<Moral Driver distinctions deleted>\n\n>>In this case, the Driver does not evolve but simply Is. There would\n>>probably not be any manifestation in an infant  because the Moral\n>>Code has not been learnt yet (ie. the object upon which the Driver\n>>acts upon). \n>\n>Without manifestation, though, how can the Driver be detected? For\n>all purposes it seems not to exist until Moral Coding begins.\n>Actually, I agree with your notion of a Driver, except that I think\n>it's not moral but pre- (and super-)moral. It is, as I mentioned\n>earlier in this thread, a primal sense of connection, a pre- and\n>post-natal umbilical the awareness of which is expressed in a\n>partial, fragmented way that accomodates (and forms, in return) the\n>language and customs of a given culture. This halting, pidgin-english\n>expression is, I think, what we come to call 'morality'. \n\nCompare the Driver to an urge such as Jealousy, where there is an urge\nand an \"object\". The jealousy does not technically exist until the object\nis apparent. However, the capacity to be jealous is presumably still there\neven though it is not detectable.\n\nYour description of the Unbilical took me three passes to understand (!) but\nI get the gist and I have to tentatively agree. I think our two definitions\ncan sit side by side without too much trouble, though. I haven't attempted to\ndefine the reason behind the Moral Driver (only hinted through the essence of\neach Moral). Your definition hints that animals are also capable of a\nsimilar morality - Simians have a similar Social Order to ourselves and it is\neasy to anthropomorphize with these animals. Is this possible or have I\nmisunderstood?\n\n>\n>>>>If my suggestion holds true then this is the area where work must be\n>>>>carried out to prevent a moral deterioration of Society,\n>\n>>>What kind of work, exactly?\n>\n>>Well, here you have asked the BIG question. [...]\n>>I have a slight suspicion that you were hoping I would say\n>>something really contentious in this reply (from your final question).\n>\n>No, not at all. I was just wondering if you subscribed to some\n>particular school of psycho-social thought and rehabilitation, and if\n>perhaps you had a plan. I'd have been interested to hear it. \n>\n\nMy p.s. thoughts falls roughly in line with John Stuart Mill and\nhis writings on Utilitarianism. I have no particular plan (except to do\nmy bit - personal ethics AND social work). My opinion (for what it is worth)\nis that the Authority for each Moral must be increased somehow, and that this\nwill probably take several generations to be effective. I don't think that the\nlist of Morals has changed for Society significantly, though . The Authority element\nmay come from our authority figures and roles models (see Eric Berne and his\ntransactional analysis work [+ Mavis Klein] for references) and this is what\ngives rise to a deterioration of moral standards in the long term.\n\nI've had some more thoughts on my definitions:\n\nI've was thinking that I should add Moral Character to the list of definitions\nin order to get a dynamic version of the Moral Nature (ie. the interplay of\nthe Moral Code and associated Authorities). A suitable analogy might be a\ngraphic equaliser on a HiFi system - the Moral Nature being the set of\nfrequencies and the chosen 'amplitudes', and the Moral Character being the\nspectrum over time.\n\nConscience is a little more difficult because I can't define it as the\nreasoning of a person between actions in the context of his Moral Nature\nbecause Conscience seems to cut in most of the time unbidden and often\nunwanted. I think Conscience is manifest when a decision is made at a given\ntime which compromises one's Moral Nature. My Conscience fits in more with\nFreud's SuperEgo (plus the Moral Driver) with the stimulous being the\nurges or Freud's Id. The reasoning that I mentioned before is Freud's Ego,\nI suppose. If the Moral Driver is part of the Id then the reason why\nConscience cuts in unbidden is partially explained. The question is \"what\nprovides the stimulous to activate the Moral driver?\". I think I need some\nmore time with this one.\n\nThat's about it for now!\n\nDavid.\n\n---\nOn religion:\n\n\"Oh, where is the sea?\", the fishes cried,\nAs they swam its clearness through.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10081, "properties": {"category": "rec.sport.hockey", "text": "From: franjion@spot.Colorado.EDU (John Franjione)\nSubject: Re: Bay area media (Wings-Leafs coverage)\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 27\n\nmaynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n\n>In <DREIER.93Apr19195132@durban.berkeley.edu> dreier@durban.berkeley.edu (Roland Dreier) writes:\n\n>>The San Francisco Bay area media is reporting tonight that the Detroit\n>>Red Wings beat the Toronto Maple Leafs 6-3.  Can someone who is not\n>>part of the media conspiracy against the Leafs tell me how the game\n>>really went (I am expecting a 4-0 win for the Leafs, shutout for\n>>Potvin, hat trick for Andreychuk and a goal and 3 assists for\n>>Gilmour).  If the Leafs really lost, how many penalties did whichever\n>>biased ref was at the game have to call against the Leafs to let the\n>>Red Wings win?\n\n>Ah yes.  California.  Did the San Francisco Bay area media report that\n>Joe Montana is rumoured to be the leading candidate to replace fired\n>San Jose Sharks coach George Kingston?  Apparently Montana is not only\n>coveted for his winning attitude, but as a playing coach he will be\n>expected to quarterback the powerplay.\n\nGood comeback, Rog.  Your quick wit and intelligence continues to\namaze everyone.\n\n-- \nJohn Franjione\nDepartment of Chemical Engineering\nUniversity of Colorado, Boulder\nfranjion@spot.colorado.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10082, "properties": {"category": "soc.religion.christian", "text": "From: Deon.Strydom@f7.n7104.z5.fidonet.org (Deon Strydom)\nSubject: Re: Prophetic Warning to New York City\nLines: 32\n\n--> Note:\nReply to a message in soc.religion.christian.\n\nEVENSON THOMAS RANDALL wrote in a message to All:\n\n> Which brings me around to asking an open question.  Is the\n> Bible a closed book of Scripture?  Is it okay for us to go\n> around saying \"God told me this\" and \"Jesus told me that\"? \n\n> Also interesting to note is that some so called prophecies\n> are nothing new but rather an inspired translation of\n> scripture.  Is it right to call that prophecy?  Misleading? \n\nHi, You might want to read Charismatic Chaos by John MacArthur.  In it\nhe discussed exactly this queation, amongst others.  In my own words,\nVERY simplified, his position is basically that one must decide, what\nis the most important - experience or Scripture?  People tend to say\nScripture, without living according to that.  Their own\nfeeling/prophecy/etc tends to be put across without testing in the\nlight of Scripture.\n\nThere's a lot more than this, really worthwhile to read whether you're\nCharismatic or not.\n\nGroetnis (=cheers)\n Deon\n\n--- timEd/B8\n--  \nINTERNET: Deon.Strydom@f7.n7104.z5.fidonet.org\nvia:  THE CATALYST BBS in Port Elizabeth, South Africa.\n       (catpe.alt.za)   +27-41-34-1122 HST or +27-41-34-2859, V32bis & HST.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10083, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: Postscript view for DOS or Windows?\nFrom: hjstein@sunrise.huji.ac.il (Harvey J. Stein)\nDistribution: world\nOrganization: /home/staff/hjstein/.organization\nNNTP-Posting-Host: sunrise.huji.ac.il\nIn-reply-to: paladin@world.std.com's message of Thu, 8 Apr 1993 21:40:44 GMT\nLines: 6\n\nI've been using version 2.5.2 of ghostscript, and I'm quite satisfied\nwith it.  There are, actually, 3 versions:  a plain dos version, a 386\nversion, and a windows version.\n\nHarvey Stein\nhjstein@math.huji.ac.il\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10084, "properties": {"category": "sci.space", "text": "From: moroney@world.std.com (Michael Moroney)\nSubject: Re: Vulcan? (No, not the guy with the ears!)\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 21\n\nvictor@inqmind.bison.mb.ca (Victor Laking) writes:\n\n>Does anyone have any info on the apparent sightings of Vulcan?\n> \n>All that I know is that there were apparently two sightings at \n>drastically different times of a small planet that was inside Mercury's \n>orbit.  Beyond that, I have no other info.\n\n>Does anyone know anything more specific?\n\n>(Yes, this happened LONG before Star Trek and is apparently where they \n>got the reference for the \"guy with the ears\".)\n\nYes, long before Star Trek.  Before Einstein, in fact.\n\nVulcan as a planet inside Mercury was hypothesized to explain a perturbation\nof Mercury's orbit that could not be explained by the known planets.  But\nEinstein's theory of relativity explained Mercury's motion, and analysis\nof Mercury's motion now shows there are _not_ any planets inside its orbit.\n\n-Mike\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10085, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nDistribution: na\nOrganization: Totally Unorganized\nLines: 281\n\nIn article <1993Apr19.130132.12650@afterlife.ncsc.mil> rlward1@afterlife.ncsc.mil (Robert Ward) writes:\n>In article <bontchev.734981805@fbihh> bontchev@fbihh.informatik.uni-hamburg.de writes:\n>>and since the US constitutions guarantees the right to every American\n>>to bear arms, why is not every American entitled, as a matter of\n>\n>Have you read the applicable part of the Constitution and interpreted it IN \n>CONTEXT?  If not, please do so before posting this misinterpretation again.\n>It refers to the right of the people to organize a militia, not for individuals \n>to carry handguns, grenades, and assault rifles.  \n\nRead it again yourself, then re-apply the admonition you gave to the\nprevious poster to yourself, as well.  The first clause is not a condition,\nit is a reason for explicitly supporting the right WHICH EXISTS, MILITIA\nOR NOT, that the people have a right to keep and bear arms.  This is\nNOT a right granted by the Constitution, it is a right presumed to exist\nby default.  The Constitution mentioning a right is to prevent the\ngovernment from removing that right by stating very clearly the government\nshall NOT infringe (mess with, block, limit) that right.  Remember the\nConstitution is a bunch of negative things - things the government CANNOT\ndo.  All rights, etc not epxressly given to the government go to the\nstates and the PEOPLE (the same people the other 9 Amendments in the\nBill of Rights talk about).\n\nSince I am sure you will summarily reject my interpretation, I am\nappending a linguistic analysis by one far more expert than myself (and\nyou, I suspect).  I am sure you will find his qualifications adequate.\nIf that isn't enough I can send you the Senate Subcommitee to the\nJudiciary on the Constitution report on the same thing...  There are\nsome things in there that Big Brother types, like Biden, etc must have\nreally had to swallow hard to admit.\n\nI think you will find that people that seriously study the Constitution\nand state what it means will say the same thing.  Those who come up\nwith 'new improved meanings' are those who are trying to subvert the\nConstitution for a given agenda.  Like Clinton and his Clinton Cripple,\nGun Control, People Control, and Control Control, and the whole nasty\nmess.\n\nPlease tell us how this person is in error, won't you? (And please back it\nup with some proof, since I am backing my assertion up with independent\nproof, and have a BUNCH MORE I can provide...).\n\nNOTE:  Followups set to talk.politics.guns\n\n--------- Begin included article -------\n\n\t\t\tTHE UNABRIDGED SECOND AMENDMENT\n\n\t\t\t      by J. Neil Schulman\n\nIf you wanted to know all about the Big Bang, you'd ring up Carl Sagan,\nright ?  And if you wanted to know about desert warfare, the man to call\nwould be Norman Schwarzkopf, no question about it.  But who would you call\nif you wanted the top expert on American usage, to tell you the meaning\nof the Second Amendment to the United States Constitution ?\n\nThat was the question I asked A.C. Brocki, editorial coordinator of the Los\nAngeles Unified School District and formerly senior editor at Houghton\nMifflin Publishers -- who himself had been recommended to me as the\nforemost expert on English usage in the Los Angeles school system.  Mr.\nBrocki told me to get in touch with Roy Copperud, a retired professor\njournalism at the University of Southern California and the author of\n\"American Usage and Style: The Consensus.\"\n\nA little research lent support to Brocki's opinion of Professor Copperud's\nexpertise.\n\nRoy Copperud was a newspaper writer on major dailies for over three decades\nbefore embarking on a a distinguished 17-year career teaching journalism at\nUSC.  Since 1952, Copperud has been writing a column dealing with the\nprofessional aspects of journalism for \"Editor and Publisher\", a weekly\nmagazine focusing on the journalism field.\n\nHe's on the usage panel of the American Heritage Dictionary, and Merriam\nWebster's Usage Dictionary frequently cites him as an expert.  Copperud's\nfifth book on usage, \"American Usage and Style: The Consensus,\" has been in\ncontinuous print from Van Nostrand Reinhold since 1981, and is the winner\nof the Association of American Publisher's Humanities Award.\n\nThat sounds like an expert to me.\n\nAfter a brief telephone call to Professor Copperud in which I introduced\nmyself but did not give him any indication of why I was interested, I sent\nthe following letter:\n\n\"I am writing you to ask you for your professional opinion as an expert in\nEnglish usage, to analyze the text of the Second Amendment to the United\nStates Constitution, and extract the intent from the text.\n\n\"The text of the Second Amendment is, 'A well-regulated Militia, being\nnecessary for the security of a free State, the right of the people to keep\nand bear Arms, shall not be infringed.'\n\n\"The debate over this amendment has been whether the first part of the\nsentence, 'A well-regulated Militia, being necessary to the security of a\nfree State', is a restrictive clause or a subordinate clause, with respect\nto the independent clause containing the subject of the sentence, 'the\nright of the people to keep and bear Arms, shall not be infringed.'\n\n\"I would request that your analysis of this sentence not take into\nconsideration issues of political impact or public policy, but be restricted\nentirely to a linguistic analysis of its meaning and intent.  Further,\nsince your professional analysis will likely become part of litigation\nregarding the consequences of the Second Amendment, I ask that whatever\nanalysis you make be a professional opinion that you would be willing to\nstand behind with your reputation, and even be willing to testify under\noath to support, if necessary.\"\n\nMy letter framed several questions about the test of the Second Amendment,\nthen concluded:\n\n\"I realize that I am asking you to take on a major responsibility and task\nwith this letter.  I am doing so because, as a citizen, I believe it is\nvitally important to extract the actual meaning of the Second Amendment.\nWhile I ask that your analysis not be affected by the political importance of\nits results, I ask that you do this because of that importance.\"\n\nAfter several more letters and phone calls, in which we discussed terms for\nhis doing such an analysis, but in which we never discussed either of our\nopinions regarding the Second Amendment, gun control, or any other political\nsubject, Professor Copperud sent me the follow analysis (into which I have\ninserted my questions for the sake of clarity):\n\n[Copperud:] \"The words 'A well-regulated militia, being necessary to the\nsecurity of a free state,' contrary to the interpretation cited in your\nletter of July 26, 1991, constitutes a present participle, rather than a\nclause.  It is used as an adjective, modifying 'militia,' which is\nfollowed by the main clause of the sentence (subject 'the right', verb\n'shall').  The to keep and bear arms is asserted as an essential for\nmaintaining a militia.\n\n\"In reply to your numbered questions:\n\n[Schulman:] \"(1) Can the sentence be interpreted to grant the right to keep\nand bear arms solely to 'a well-regulated militia'?\"\n\n[Copperud:] \"(1) The sentence does not restrict the right to keep and bear\narms, nor does it state or imply possession of the right elsewhere or by\nothers than the people; it simply makes a positive statement with respect\nto a right of the people.\"\n\n[Schulman:] \"(2) Is 'the right of the people to keep and bear arms' granted\nby the words of the Second Amendment, or does the Second Amendment assume a\npreexisting right of the people to keep and bear arms, and merely state\nthat such right 'shall not be infringed'?\"\n\n[Copperud:] \"(2) The right is not granted by the amendment; its existence\nis assumed.  The thrust of the sentence is that the right shall be\npreserved inviolate for the sake of ensuring a militia.\"\n\n[Schulman:] \"(3) Is the right of the people to keep and bear arms\nconditioned upon whether or not a well regulated militia, is, in fact\nnecessary to the security of a free State, and if that condition is not\nexisting, is the statement 'the right of the people to keep and bear Arms,\nshall not be infringed' null and void?\"\n\n[Copperud:] \"(3) No such condition is expressed or implied.  The right to\nkeep and bear arms is not said by the amendment to depend on the existence\nof a militia.  No condition is stated or implied as to the relation of the\nright to keep and bear arms and to the necessity of a well-regulated\nmilitia as a requisite to the security of a free state.  The right to keep\nand bear arms is deemed unconditional by the entire sentence.\"\n\n[Schulman:] \"(4) Does the clause 'A well-regulated Militia, being necessary\nto the security of a free State,' grant a right to the government to place\nconditions on the 'right of the people to keep and bear arms,' or is such\nright deemed unconditional by the meaning of the entire sentence?\"\n\n[Copperud:] \"(4) The right is assumed to exist and to be unconditional, as\npreviously stated.  It is invoked here specifically for the sake of the\nmilitia.\"\n\n[Schulman:] \"(5) Which of the following does the phrase 'well-regulated\nmilitia' mean: 'well-equipped', 'well-organized,' 'well-drilled,'\n'well-educated,' or 'subject to regulations of a superior authority'?\"\n\n[Copperud:] \"(5) The phrase means 'subject to regulations of a superior\nauthority;' this accords with the desire of the writers for civilian\ncontrol over the military.\"\n\n[Schulman:] \"(6) (If at all possible, I would ask you to take account the\nchanged meanings of words, or usage, since that sentence was written 200\nyears ago, but not take into account historical interpretations of the\nintents of the authors, unless those issues can be clearly separated.\"\n\n[Copperud:] \"To the best of my knowledge, there has been no change in the\nmeaning of words or in usage that would affect the meaning of the\namendment.  If it were written today, it might be put: \"Since a\nwell-regulated militia is necessary tot he security of a free state, the\nright of the people to keep and bear arms shall not be abridged.'\n\n[Schulman:] \"As a 'scientific control' on this analysis, I would also\nappreciate it if you could compare your analysis of the text of the Second\nAmendment to the following sentence,\n\n\"A well-schooled electorate, being necessary to the security of a free\nState, the right of the people to keep and read Books, shall not be\ninfringed.'\n\n\"My questions for the usage analysis of this sentence would be,\n\n\"(1) Is the grammatical structure and usage of this sentence and the way\nthe words modify each other, identical to the Second Amendment's sentence?;\nand\n\n\"(2) Could this sentence be interpreted to restrict 'the right of the people\nto keep and read Books' _only_ to 'a well-educated electorate' -- for\nexample, registered voters with a high-school diploma?\"\n\n[Copperud:] \"(1) Your 'scientific control' sentence precisely parallels the\namendment in grammatical structure.\n\n\"(2) There is nothing in your sentence that either indicates or implies the\npossibility of a restricted interpretation.\"\n\nProfessor Copperud had only one additional comment, which he placed in his\ncover letter: \"With well-known human curiosity, I made some speculative\nefforts to decide how the material might be used, but was unable to reach\nany conclusion.\"\n\nSo now we have been told by one of the top experts on American usage what\nmany knew all along: the Constitution of the United States unconditionally\nprotects the people's right to keep and bear arms, forbidding all\ngovernments formed under the Constitution from abridging that right.\n\nAs I write this, the attempted coup against constitutional government in the\nSoviet Union has failed, apparently because the will of the people in that\npart of the world to be free from capricious tyranny is stronger than the\nold guard's desire to maintain a monopoly on dictatorial power.\n\nAnd here in the United States, elected lawmakers, judges, and appointed\nofficials who are pledged to defend the Constitution of the United States\nignore, marginalize, or prevaricate about the Second Amendment routinely.\nAmerican citizens are put in American prisons for carrying arms, owning\narms of forbidden sorts, or failing to satisfy bureaucratic requirements\nregarding the owning and carrying of firearms -- all of which is an\nabridgement of the unconditional right of the people to keep and bear arms,\nguaranteed by the Constitution.\n\nAnd even the American Civil Liberties Union (ACLU), staunch defender of the\nrest of the Bill of Rights, stands by and does nothing.\n\nit seems it is up to those who believe in the right to keep and bear arms to\npreserve that right.  no one else will.  No one else can.  Will we beg our\nelected representatives not to take away our rights, and continue regarding\nthem as representing us if they do?  Will we continue obeying judges who\ndecide that the Second Amendment doesn't mean what it says it means but\nmeans whatever they say it means in their Orwellian doublespeak ?\n\nOr will be simply keep and bear the arms of our choice, as the Constitution\nof the United States promises us we can, and pledge that we will defend\nthat promise with our lives, our fortuned, and our sacred honor ?\n\n(C) 1991 by The New Gun Week and Second Amendment Foundation.\nInformational reproduction of the entire article is hereby authorized\nprovided the author, The New Gun Week and Second Amendment Foundation are\ncredited.  All other rights reserved.\n\n\t\t\tAbout the Author\n\nJ. Neil Schulman is the award-winning author of novels endorsed by Anthony\nBurgess and Nobel-economist Milton Friedman, and writer of the CBS \"Twilight\nZone\" episode in which a time-traveling historian prevents the JFK\nassassination.  He's also the founder and president of SoftServ Publishing,\nthe first publishing company to distribute \"paperless books\" via personal\ncomputers and modems.\n\nMost recently, Schulman has founded the Committee to Enforce the Second\nAmendment (CESA), through which he intends to see the individual's right to\nkeep and bear arms recognized as a constitutional protection equal to those\nafforded in the First, Fourth, Fifth, Ninth and Fourteenth amendments.\n\n------------- End included article --------\n\nCan you still honestly say the Second is a 'State-Run militia only right'?\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10086, "properties": {"category": "talk.politics.guns", "text": "From: julie@eddie.jpl.nasa.gov (Julie Kangas)\nSubject: Re: Blast them next time\nNntp-Posting-Host: eddie.jpl.nasa.gov\nOrganization: Jet Propulsion Laboratory, Pasadena, CA\nDistribution: usa\nLines: 32\n\nIn article <1r19l9$7dv@usenet.INS.CWRU.Edu> oldham@ces.cwru.edu (Daniel Oldham) writes:\n>What happened in Waco is not the fault of the BATF. If they would of\n>had the proper equipment and personal then they could of captured the\n>compound on the initial assault and none of this would of happened.\n>\n>The BATF needs more people, better weapons and more armored\n>transports. When they meet hostile fire they should be able to use\n>more force instead of retreating to a stand off. If you are going to\n>do a job then do it right. The BATF is there to protect us and they\n>must have the proper equipment and people to do the job.\n>\n>With the WoD and the increased crime in the streets the BATF is needed\n>more now then ever. If they blast away a few good fokes then that is\n>the price we all have to pay for law and order in this country. Look\n>at all the good people that died in wars to protect this great country\n>of ours.\n>\n>With the arms build up in Waco they needed to hit that compound with\n>mega fire power. They could of gone in there blasting and killed a few\n>women and kids but it would of been better then letting them all burn\n>to death 51 days later.\n>\n\n\nWell, it's said that people get the government they deserve.\n\nDon't worry, you'll get yours.  You'll sleep much better when\neveryone with thoughts not on the government 'approved' list\nis rounded up and executed.\n\nJulie\nDISCLAIMER:  All opinions here belong to my cat and no one else\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10087, "properties": {"category": "talk.politics.guns", "text": "From: cathy@LANCE.ColoState.Edu (Cathy Smith)\nSubject: WEIRD SCIENCE -- by L. Neil Smith\nDistribution: usa\nNntp-Posting-Host: blanca.lance.colostate.edu\nOrganization: Colorado State University, Fort Collins, CO  80523\nLines: 116\n\nPosted by Cathy Smith for L. Neil Smith\n\n                           WEIRD SCIENCE\n\nEveryone knows how to tell when a politician is lying:  his lips \nmove.  What may not be equally obvious is that there are \npoliticians and then there are politicians -- and that the phrase \n\"political science\" is subject to more than one interpretation.  \n\nYears ago, we heard how \"scientists\" were worried that a new Ice \nAge might be coming, and later on that \"nuclear winter\" -- smoke \nand dust thrown into the atmosphere by full-scale international \nunpleasantness -- was a possibility.  Something like that may even \nhave killed the dinosaurs.  \n\nWhat we didn't hear was that no actual data supported any of this, \nthat real-world events (the burning of Kuwaiti oil fields) tended \nto discredit it, that mostly it was propaganda meant to weaken \nvalues that made America the most successful culture in history, \nand that the dinosaurs probably died of something like the Plague \nwhen continents drifted together, exposing them to new germs.  \n\nWe miss a lot like this, unless we listen closely.  Prince William \nSound, site of the famous oil spill, and Mount St. Helen's weren't \nsupposed to recover from their respective disasters for at least \n100 years.  That turned out not to be true, although you'd never \nknow it from watching network nightly news or CNN.  It doesn't fit \ntheir agenda to inform us that the earth is vast and resilient, and \nthat nature is rougher on herself than we could ever be.  \n\nBut for once, the media aren't entirely to blame.  As ignorant of \nscience as they are of everything, they trust \"scientists\" to \nunscrew the inscrutable.  The trouble is that today's \"scientists\" \nhave agendas of their own.  \n\nNobody in government, that wellspring of scientific wherewithal, is \ngoing to offer grants to an investigator who states truthfully that \nthere is no respectable evidence for \"global warming\".  The money \nand power for bureaucrats and politicians lie in mass transit, and \nthey hate the automobile -- blamed as a major cause of the mythical \ncrisis -- as a source of privacy and freedom they find intolerable.  \n\nThe same appears true of \"acid rain\", a deliberate hoax cooked up \nby the Environmental Protection Agency (which hates private \nindustrial capitalism almost as much as it does your car) and \nfoisted on real scientists through trickery which has depended on \nspecialists in different fields not talking to each other much.  \n\nThe list goes on, always with a common, disreputable thread.  \n\"Ozone depletion\", for which evidence is even more suspect and \ncontradictory than for acid rain or global warming, is no more than \na last, desperate attempt to indict private capitalism in an era \nwhen state central planning and the command economy have failed and \ncan only find this final, withered leg to teeter on.  \n\nDecades of anti-nuclear alarmism, resting on foundations of myth \nand panic-mongering, have failed to erase the fact that nuclear \npower is the safest, cleanest, most efficient source of energy \nknown to mankind -- and more to the point, that the greater amount \nof energy there is available to any individual in society, the \nfreer that individual -- and his society -- become.  \n\nHonest studies on the effects of individual gun ownership and \nself-defense on crime -- conducted by investigators who began as \nideological opponents to those concepts, but which show massive \nreductions in the latter to be the result of the former -- have \nbeen suppressed, most recently by the California state government.  \n\nAnd what the media didn't say about recent EPA \"discoveries\" on the \neffect of \"secondhand smoking\" is that, although some harm to non-\nsmokers may have been detected, it was less (by an order or two of \nmagnitude) than that associated with frying bacon a couple times a \nweek or keeping a pet bird.  It's enough to make you wonder whether \nthere was ever anything to the claim that smoking causes cancer.  \n\nThat, of course, is the real threat represented by politically \ncorrect science.  The world is a dangerous place.  It would be nice \nto know the hazards.  I've never believed smoking to be a healthy \npractice, but, given a lack of credibility on the part of today's \nscience, how am I to decide what to do about it?  Nicotine is \nhighly addictive, to that much I can attest from experience.  Yet \nthe stress of quitting may be riskier than to continue.  There \nisn't any way to tell, thanks to the corrupting influence of \ngovernment money on the scientific establishment.  \n\nTwo centuries ago, the Founding Fathers spared us certain agonies \nto which every other nation in the world has been subject at one \ntime or another, by creating a legal barrier between politics and \nreligion.  Each time some short-sighted individual or group has \ntried to lower the barrier (most recently over the issue of \nabortion), blood -- real human blood, hot and smoking in the street \n-- has wound up being shed.  \n\nReal human blood is being shed over scientific issues, as people's \nlives are ruined through the loss, to agencies like the EPA, of \nlivelihood, or property it may have taken a lifetime to accumulate, \nto diseases caused by toxins associated with burning fossil fuels \nfor electrical power, or thanks to bans on things like cyclamates, \nwhen they die from the effects of obesity.  \n\nWhat we need now, if we hope to survive as a civilization for two \nmore centuries, is another barrier, a Constitutional separation of \nstate and science -- including medicine.  Knowledge is valuable; \nreal science won't languish for lack of funding.  The money will \nsimply come from contributors unwilling to pay for lies, and \neveryone will benefit.  \n\nL. Neil Smith\nAuthor:  THE PROBABILITY BROACH, THE CRYSTAL EMPIRE, HENRY MARTYN, \nand (forthcoming) PALLAS\nLEVER ACTION BBS (303) 493-6674, FIDOnet: 1:306/31.4\nLibertarian Second Amendment Caucus\nNRA Life Member\n\nMy opinions are, of course, my own.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10088, "properties": {"category": "sci.electronics", "text": "From: dtmedin@catbyte.b30.ingr.com (Dave Medin)\nSubject: Emulator pods\nReply-To: dtmedin@catbyte.b30.ingr.com\nOrganization: Intergraph Corporation, Huntsville AL\nLines: 23\n\nA surplus-dealing buddy of mine came up with two emulator pods:\n\n\tHP64220C (for HP 64100 development station). 8086 target\n\tprocessor. DIP head. Does not include board that plugs into\n\tthe 64100.\n\n\tApplied Microsystems 80C186/188 pod, LCC head.\n\nIf you have an interest in either, let me know. They look to\nbe in excellent condition. He doesn't know what to do with them, which\nmay mean that they'll be cheap.\n\n-- \n--------------------------------------------------------------------\n       Dave Medin\t\t\tPhone:\t(205) 730-3169 (w)\n    SSD--Networking\t\t\t\t(205) 837-1174 (h)\n    Intergraph Corp.\n       M/S GD3004 \t\tInternet: dtmedin@catbyte.b30.ingr.com\n  Huntsville, AL 35894\t\tUUCP:  ...uunet!ingr!b30!catbyte!dtmedin\n\n   ******* Everywhere You Look (at least around my office) *******\n\n * The opinions expressed here are mine (or those of my machine)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10089, "properties": {"category": "sci.electronics", "text": "From: whit@carson.u.washington.edu (John Whitmore)\nSubject: Re: Wire wrap questions (again?)\nArticle-I.D.: shelley.1pr803INNh8e\nOrganization: University of Washington, Seattle\nLines: 36\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <PASCAL.93Apr1160623@ap10.apd.cpg.sony.co.jp> pascal@apd.cpg.sony.co.jp (Pascal Goguey) writes:\n>In article <7376@blue.cis.pitt.edu> macfitz+@pitt.edu (Mark D Fitzsimmos) writes:\n\n> *After a considerable amount of research, review of discussions \n> *on this group, and mainly fruitless time on breadboards, I have \n> *decided that the path of least resistance for prototyping my (not \n> *necessarily someone else's) electronic designs is wire wrapping.  \n\n>\tI have no idea about what you want to do, but be careful :\n>Wire wrapping increases a lot the wiring capacitance. That shouldn't\n>be a problem for \"slow\" applications (i.e a few MHz), but as for\n>quicker ones (around 30 / 40 MHz), I doubt that it can work.\n\n\n\tFortunately, wire-wrapping is a better wiring technique than\nmost at high frequencies; Cray computers (up to the X-MP, at least)\nall had wirewrapped backplanes.  Wirewrap gets into trouble at\nmuch higher frequencies than any TTL can handle.  The 'increase'\nof wiring capacitance is not really relevant (you have to use\ntransmission line techniques, and the capacitance is no problem).\n\n> *1) Where can I get a decent wrapping tool?  I'd like to spend less \n> *than $150 for an AC powered unit including bit and sleeve.\n\n>\tHand powered is the best. There are good AC powered ones,\n>but rather expensive. A low-cost one doesn't work very well.\n\n\tHand-powered is a terrible choice (IMHO) unless you are\na field maintenance person who will do maybe a dozen connections\nat a time.  Your hands will cramp.  Battery-powered wire-wrap guns\nare available in the $150 range, and so are the little\ntwiddle-stick manual types ($15).  For a modest project, of\na couple hundred connections, I'd prefer to borrow a professional\nAC unit... or a pneumatic one.\n\n\tJohn Whitmore\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10090, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mlipsie@rdm09.std.com (Mike Lipsie MPU)\nSubject: Re: ATM\nOrganization: Mitsubishi Electric Research Laboratories, Inc.\nLines: 27\n\nIn article <1r1jq4$af5@network.ucsd.edu> adean@weber.ucsd.edu (Anthony V. Dean) writes:\n>\n>I've been reading, with much confusion, about whether or not to use\n>ATManager. Lately, all the packages I've been buying have all\n>included ATManager as a \"bonus\"\n\nAdobe has been doing this for years.\n\n>I do some desktop publishing using PageMaker and Coreldraw.\n>Coreldraw comes with a nifty laser disk that contains over 200 diff\n>types. Add that to the TTfonts that come with win31 and you have a\n>decent amount of fonts. I print my creations out on an HP4\n>Postcript, at 600 dpi resolution with the \"Resolution Enhancement \n>Technology\" and ..  well ... I get some darn good copies. \n>So good that there isn't any diff whether or not ATManager is turned\n>on or not. Is it worth it to run ATM at all? Especially with these\n>better printer technologies ... and TT?\n\nThere are some fonts that are only available as PS fonts.  If you\nhave a PS font that you want to use, use ATM.  Otherwise, it is\na waste of system resources.\n\nPersonally, I use both.\n\n-- \nMike Lipsie                                (work) mlipsie@ca.merl.com\nMitsubishi Electronic Research Laboratory  (home) mikel@dosbears.UUCP\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10091, "properties": {"category": "sci.crypt", "text": "From: grady@netcom.com (1016/2EF221)\nSubject: Re: MacPGP 2.2 Source Problems\nOrganization: capriccioso\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 19\n\nYes -- my error -- you will need the DIFF between the\nstandard console.h and console.c supplied with\nSymantec's THINK C 5.0.4 and the specially modified\none that works with MacPGP 2.2.\n\nI added the two DIFFs to the end of the signature\nfile \"MacPGP2.2srcSIGNATURE\" in pub/grady of netcom.com\n\nPlease download via anonymous FTP and, using SED (oops),\ncutting and pasting, fix-em-up.        \n\nWill one of you Mac-geniuses PLEASE port this to MacApp\nor AppMaker, or...?\n\nGrady\n\n-- \ngrady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10092, "properties": {"category": "sci.crypt", "text": "From: mrr@scss3.cl.msu.edu (Mark Riordan)\nSubject: List of large integer arithmetic packages\nOrganization: Michigan State University\nLines: 285\nNNTP-Posting-Host: scss3.cl.msu.edu\nSummary: C functions to do arbitrary-precision arith\nX-Newsreader: TIN [version 1.1 PL8]\n\nThis is the file BIGNUMS.TXT from ripem.msu.edu, last updated April 1993.\n\nIn response to Email requests, I have assembled this list of\nlarge-integer arithmetic packages of which I have heard.\nMost of these are C function libraries, available in source form.\n\nFor your convenience, I have placed copies of\nsome of these on ripem.msu.edu (35.8.1.178).  They are\navailable for anonymous FTP in the directory \"pub/bignum\".\nHowever, what I have may not be the most current version in all cases.\n\nHere they are, in no particular order:\n\nmp\n    Multiple Precision package that comes with some Unixes\n    \n    Multiple precision package accessed via -lmp flag on your\n    compiler.  Provides +, -, *, /, gcd, exponentiation,\n    sqrt.  Comes with SunOS, NeXT Mach, BBN Mach 1000, \n    and probably a few others.  See \"man mp\".  \n    Object code only, of course.\n\nPARI\n    Henri Cohen, et al., Universite Bordeaux I, Paris, FRANCE\n    \n    Multiple precision desk calculator and library routines.\n    Contains optimized assembly code for Motorola 68020, \n    semi-optimized code for SPARC, and apparently rather slow\n    generic C version.  Does both integers and reals.\n    Does vectors and matrices as well as scalars.\n    Contains a number of advanced functions, some of which I've\n    never heard of.  (\"Weber's function\"?)\n    Has a factorization function, primality test, & other related stuff.\n    Plenty of TEX documentation.\n    Public domain, but you can't distribute modified versions.\n    Available via anonymous FTP from math.ucla.edu.  There seem to\n    be Mac- and NeXT-specific versions there in addition to:\n    Filename:  pari-1.35a.tar.Z\n    \nArithmetic in Global Fields  (Arith)\n    Kevin R. Coombes, David R. Grant\n    \n    Package of routines for arbitrary precision integers or\n    polynomials over finite fields.  Includes basic +, -, *, /\n    and a few others like gcd.  Source code in C.\n    Distributed under the terms of the GNU public license.\n    Includes man pages and TEX documentation.\n    Filename:  arith.tar.Z\n\nArbitrary Precision Math Library\n    Lloyd Zusman   Los Gatos, CA\n    \n    C package which supports basic +, -, *, /.  Provides for radix\n    points (i.e., non-integers).  Not as polished as the others here.\n    Posted to comp.sources.misc in October 1988.\n    Filename:  apml.tar.Z\n    \nBigNum\n    J. Vuillemin, INRIA, FRANCE, and others.\n    Distributed by Digital Equipment Paris Research Lab (DECPRL)\n    \n    A \"portable and efficient arbitrary-precision integer\" package.\n    C code, with generic C \"kernel\", plus assembly \"kernels\" for\n    MC680x0, Intel i960, MIPS, NS32032, Pyramid, and of course VAX.\n    This is probably one of the better-known packages of this type.\n    Implements +, -, *, /, mod, plus logical operations OR, AND, XOR.\n    Both signed and unsigned arithmetic available.\n    Available via email from librarian@decprl.dec.com.\n    You will receive 5 shell archives.  Give your postal address\n    and you will also receive printed documentation from France.\n    Package includes TEX documentation.\n    Publicly available for non-commercial use.\n    I removed this from my archive when I heard a rumor that PRL\n    doesn't like others to distribute it.  However, BIGNUM *is*\n    distributed as part of ecpp (see below).\n\nLenstra's package\n    Arjen Lenstra   Bellcore\n    \n    Portable unsigned integer package written entirely in C.\n    Includes +, -, *, /, exponentiation, mod, primality testing,\n    sqrt, random number generator, and a few others.  The package\n    was uncommented and undocumented; I have tried to add enough\n    comments to get by.  This is the only of these packages that I\n    have actually used.  It works well and is very portable.  \n    I haven't done any benchmarks against the others, but the code \n    looks clever & Lenstra is an accomplished number theorist.\n    Unlike the other packages here, this one requires you to allocate\n    storage statically--only a problem if your numbers are really huge.\n    Arjen has placed the code in the public domain.  \n    Filename:  lenstra.tar.Z\n\nlenstra_3.1\n    Arjen Lenstra,  Bellcore\n\n    An improved version of Arjen's package above.  This one\n    does signed arithmetic and dynamic allocation (which can be turned\n    off as an option). Has a few new routines, too.  \"lenstra_3.1\" contains\n    minor bugfixes to the previously-available \"lenstra_2\" and \"lenstra_3\".\n    Filename:  lenstra_3.1.c\n\nbmp  (Brent's Multiple Precision?)\n    R. P. Brent\n\n    1981 vintage FORTRAN code to do extended precision floating &\n    fixed point arithmetic.  Includes most of the mathematical\n    functions you'd find in a FORTRAN run-time library.\n    This code is an ACM algorithm, number 524.\n    To obtain, send a mail message to  netlib@ornl.gov\n    containing the line \"send mp.f from bmp\" or better yet, perhaps\n    just start with \"help\".\n\nSPX\n    Kannan Alagappan & Joseph Tardo, DEC\n    \n    This is a huge prototype public key authentication system\n    based on RSA.  I mention it here because those who have heard\n    of SPX have probably correctly guessed that it contains a large\n    integer package and I want to inform you that the large integer\n    package it contains is indeed DEC's BigNum from France.\n    You can get a beta test copy of SPX from crl.dec.com (192.58.206.2). \n    Use it only for testing, as it \"may\" expire on a certain date.\n    (I don't know whether this has expired yet.)\n\namp  (Antti's Multiple Precision?)\n    Antti Louko   alo@kampi.hut.fi\n\n    Multiple precision integer package in C.  Includes +, -, *, /, %,\n    pow, mod, 1/x mod y, random, sqrt, gcd.  Available for non-commercial\n    use.  The package includes \"share-secret\", a public key system based\n    on the Diffie-Hellman algorithm.\n    This is normally part of the well-known \"des-dist.tar.Z\",\n    but I have removed the DES part to avoid having to deal with \n    cryptographic export laws, and have named the result:\n    Filename:  amp.tar.Z\n\ngennum  \n    Per Bothner   U of Wisconsin-Madison\n\n    C++ routines and classes to do generic arithmetic, both\n    integer and rational.  \n    Formerly available on sevenlayer.cs.wis.edu.  However, it\n    seems to have disappeared.  Sorry.\n\nMIRACL\n    (By someone in Dublin, Ireland)\n\n    Integer and fractional multiple precision package.\n    Includes factorization, primality testing, encryption.\n    Not public domain, apparently.  It is available from the Austin\n    Code Works.  (See ads in Byte Magazine or Dr. Dobbs.)\n\nprecision\n    Dave Barrett  barrettd@tigger.colorado.edu\n\n    Multiple precision integer package in C with +,-,*,/, sqrt, rand,\n    mod, pow, log.  Simple vector support.  Does dynamic allocation of memory.\n    Free as long as you don't sell it or any program that uses it.\n    Filename:  precision.tar.Z\n\nUBASIC\n    Prof. Yuji Kida, Rikkyo University, Nishi-Ikebukuro 3, Tokyo 171, Japan\n    kida@rkmath.rikkyo.ac.jp\n\n    Multiple-precision version of the BASIC programming language,\n    for MS-DOS.  Includes floating point.  Said (by Keith Briggs)\n    to be pretty fast.  Object only, I think.  ervin@morekypr.bitnet\n    says:  \"This is the best package that I know of for\n    fast arithmetic.  Has a version optimized for 386 machines.  Includes\n    routines to do MPQS, the fastest currently known general factoring\n    algorithm.  An additional file is at both sites to allow MPQS to use\n    hard drives so that it can factor up to 80 digits.  Many number\n    theoretical functions are included in UBASIC.  It allows over 2500\n    digits of precision.\"\n    Available via anonymous FTP from shape.mps.ohio-state.edu,\n    or simtel20.army.mil, or wuarchive.wustl.edu.\n\ncalc_v22\n    Unknown\n\n    MS-DOS C-like language that allows \"infinite\" precision.\n    Nice intrinsic functions.  ervin@morekypr.bitnet reports problems\n    when changing precision on the fly.\n    See simtel20 or wuarchive.\n\nbriggs_arith\n    Keith Briggs (kbriggs@mundoe.maths.mu.oz.au)\n\n    Turbo Pascal 5 source for routines that do multiple-precision\n    +, -, *, /, sqrt, gcd, factoring, rand for integers; also includes\n    +, -, *, / and rand for rational numbers.\n    Filename:  briggs_arith.pas\n\nInstitute fur Experimentelle Mathematik\n    Dr Gerhard Schneider (?)\n\n    Fast C multiple-precision subroutine library.\n    I don't know anything about it; sl25@ely.cl.cam.ac.uk says\n    to contact MAT420@DE0HRZ1A.BITNET for more info.\n    Postal Address:\n    Institute fur Experimentelle Mathematik\n    EllernStr 29\n    D4300 Essen-12    GERMANY\n\nLongInt\n    Markus Mueller (mueller@komsys.tik.ethz.ch)\n\n    \"Multi precision arithmetic written in MODULA-2, with the most time critical\n    parts written in Assembler. Includes basic arithmetics (+, -, *, /, %) as\n    well as arithmetics MODULO a number. An additional module provides a\n    collection of procedures for primality testing, gcd, multiplicative\n    inverse and more. The package is part of a Privacy Enhanced Mail (PEM)\n    package which includes a PEM mailer, RSA key generator and Certificate\n    generation tools.\"\n\n    Source is in Modula-2, C, and assembler for Sun 3.  LongInt has\n    also been ported to MS-DOS under Logitech Modula-2 and Turbo\n    Assembler.  Availability:  free for university use (research and\n    education); otherwise, a source license is required.  To obtain,\n    write or email to:\n\n        Markus Mueller\n        Bertastrasse 7\n        CH-8953 Dietikon\n        Switzerland\n        email:  mueller@komsys.tik.ethz.ch\n\nbignum-1.2\n    Henrik.Johansson@Nexus.Comm.SE\n\n    Bignum package written in portable C.  Will in the future\n    conform to the Common Lisp functions that handles integers.\n    Currently includes +, -, *, /, exponentiation, \"exptmod\",\n    comparison, random numbers, and gcd.\n    Filename: bignum-1.2\n\nGNU Multiple Precision\n    GNU (Free Software Foundation) multiple precision package.\n    I haven't looked at it yet.  This is current as of April 1992,\n    but there may be a more recent version by the time you read \n    this.  This package is very widely available on FTP sites.\n    Filename: gmp-1.2.tar.Z\n\nElliptic Curve Primality Proving \n    Francois Morian, France.\n\n    Large package to prove the primality of any prime.\n    Includes Inria's BIGNUM package. \n    Obtained from ftp.inria.fr (128.93.1.26).\n    Filename: ecpp.V3.4.1.tar.Z\n\nPGP (Pretty Good Privacy)\n    Philip Zimmermann   prz@sage.cgd.ucar.EDU\n\n    Intel-based crypto package that includes bignum routines in C,\n    said to be quite fast for Intel processors.  Unix and Mac\n    versions also available.\n    The crypto package violates RSA patents, but the bignum routines\n    can be used without fear of legal repercussions.\n\nBell's Arbitrary Precision Calculator\n    David I. Bell, Australia  (dbell@pdact.pd.necisa.oz.au)\n\n    Arbitrary-precision calculator with good online help, C-like\n    language, many builtin functions, support for integers,\n    rational numbers (they work like floating point), complex numbers,\n    matrices, strings, lists, files, \"objects\".  Includes \n    gcd, primality testing, even trig functions.  Recommended.\n    (Large package, though.)  Obtained from comp.sources.unix.\n    Filename: calc-1.24.7.tar.Z\n\nBuilt-in support in other languages\n    Various\n\n    Multiple precision arithmetic is available in a number of \n    programming languages, such as Lisp and ABC (cf. mcsun.eu.net).\n    Perl (by Larry Wall, available from devvax.jpl.nasa.gov)\n    includes source, in Perl, for such a package, but it's probably\n    not suitable for serious use.\n    For some of these, source code may be available.  This list is\n    long enough, so I'm not going to pursue it aggressively.\n\nThanks to Ed Vielmetti and several others who contributed to this list.\n\nMark Riordan   mrr@ripem.msu.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10093, "properties": {"category": "rec.motorcycles", "text": "From: asphaug@lpl.arizona.edu (Erik Asphaug x2773)\nSubject: Re: How to act in front of traffic jerks\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 33\n\nIn article <nielsmm-150493114522@nanna.imv.aau.dk> nielsmm@imv.aau.dk (Niels Mikkel Michelsen) writes:\n>The other day, it was raining cats and dogs, therefor I was going only to\n>the speed limit, on nothing more, on my bike. This guy in his BMW was\n>driving 1-2 meters behind me for 7-800 meters and at the next red light I\n>calmly put the bike on its leg, walked back to this car, he rolled down the\n>window, and I told him he was a total idiot (and the reason why).\n>\n>Did I do the right thing?\n>\n>Yours Truly : \n>\n>                                  Niels Mikkel\nYESSS!  You make me proud to\nbe an 'Merkun.  Good thing you\ndidn't get shot though. Don't\ntry that with a good'ole boy in Texas.\nI once had a jeep driver south of Conroe cut me off (I was \nin my car) after I had flipped him off for doing something really idiotic\nand senseless.  All 280 lbs of him stretches out of his jeep; he walks\nback (he is blocking all traffic between Dallas and Houston since the\nfreeway has been squeezed into a single lane) and says to me, \"Stick that\nfinger out again and I'll rip it off your hand and shove it down your\nsorry-ass throat.\"  I stared straight ahead, unblinking.  A hundred\ncars were honking.  Eventually he got back into his jeep, face beet-red\nwith anger, and all the rest of the way back to Houston I tailed him, \nwaving, honking, flipping him off, yelling...  I'm glad he decided \nnot to shoot me.\n/-----b-o-d-y---i-s---t-h-e---b-i-k-e----------------------------\\\n|                                                                |\n|     DoD# 88888           asphaug@hindmost.lpl.arizona.edu      |\n| '90 Kawi 550 Zephyr               (Erik Asphaug)               |\n| '86 BMW R100GS\t\t\t\t\t\t | \n\\-----------------------s-o-u-l---i-s---t-h-e---r-i-d-e-r--------/\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10094, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <<Pompous ass\nOrganization: California Institute of Technology, Pasadena\nLines: 28\nNNTP-Posting-Host: punisher.caltech.edu\n\narromdee@jyusenkyou.cs.jhu.edu (Ken Arromdee) writes:\n\n>>Look, I'm not the one that made those Nazi comparisons.  Other people\n>>compared what the religious people are doing now to Nazi Germany.  They\n>>have said that it started out with little things (but no one really knew\n>>about any of these \"little\" things, strangely enough) and grew to bigger\n>>things.  They said that the motto is but one of the little things \n>You just contradicted yourself.  The motto is one of those little things that\n>nobody has bothered mentiopning to you, huh?\n\nThe \"`little' things\" above were in reference to Germany, clearly.  People\nsaid that there were similar things in Germany, but no one could name any.\nThey said that these were things that everyone should know, and that they\nweren't going to waste their time repeating them.  Sounds to me like no one\nknew, either.  I looked in some books, but to no avail.\n\n>>that is\n>>going to pave the way for other \"intrusions.\"  Of course, if the motto\n>>hasn't caused problems in its 40 year history, then I doubt it is going to...\n>It *has* caused problems.  You just ignore every instance when someone\n>describes one to you.\n\nIt has *caused* problems?  Again, no one has shown that things were better\nbefore the motto, or that they'd likely be better after.  I don't think\nthe motto initiates any sort of harassment.  Harassment will occur whether\nor not the motto is present.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10095, "properties": {"category": "soc.religion.christian", "text": "From: andrew@srsune.shlrc.mq.edu.au (Andrew McVeigh)\nSubject: Re: proof of resurection\nOrganization: SHLRC, Macquarie University\nLines: 74\n\nIn article <Apr.21.03.26.18.1993.1352@geneva.rutgers.edu> reedr@cgsvax.claremont.edu writes:\n\n>  We also cannot fail to note the intense suffering a devastation which has been\n>  wrecked on our world because of Christians -- who were certain they were\n>  following Christ.  From Captialist who have polluted the enviorment in strict\n>  obedience to the Gensis command to subdue the earth, to Nazi's who have\n>  \"justly\"\n>  punished the Jews for the killing Christ (as well as the other progroms), the\n>  innocent women who were burned alive in accordance with \"you shall not allow a\n>  witch to live\", the Moslems who were killed in the Crusades, the god-fearing\n>  men destroyed by the inquistion.  The religious wars in Spain, France, England,\n>  etc.  Christianity has undoubtedly caused the most suffering and needless loss\n>  of life by individuals whose certainity that they were following the\n>  instructions therein, was unquestionable.  There is much to grieve.\n>\n>  randy\n\n\nVery interesting, but I also believe that you have presented a\nmisleading argument.  Christianity is not the cause of the massacres\nand horrific injustices that you relate, rather they are the fault\nof people who misunderstand Jesus Christ's message, and modify\nit to suit their own beliefs and aims, rather than alter their\nambitions to be more in line with those presented as desirable in\nthe New Testament.  With every truthful and good message that\ncarries authority or implied authority, comes the inevitable\nfact that some (many?) people will understand it in a distorted\nway, with inevitable consequences.\n\nThe Bible's message is that we are to love all people, and\nthat all people are redeemable.  It preaches a message of\nrepentance, and of giving.  Unfortunately, all people have\ndeceitful hearts, and are capable of turning this message\naround and contorting it in sometimes unbelievable ways.\nThis is also a fundamental Christian doctrine.\n\nOne of the problems is that you look at the world through\nthe eyes of Western history.  I think that you will find\nmany, many cases of massacres that were instigated by\npeople who never claimed they were Christian.  I am not saying\nthis to justify the massacres that were, but I am merely\npointing you to a tendency which is present in humans already.\n\nConsider the world without Christianity.  I doubt that we\nwould have the same freedoms in the countries in which we\nlive, if it wasn't for the peaceful doctrines of Jesus Christ.\nPerhaps we would even be confronted by a very harsh religion\n(I won't name any here, though one comes to mind) which\nwould not even allow us the freedom of speech to debate such\nsubjects.\n\nPoint the blame at inherent human tendencies of thirst for\npower, greed and hatred.  Please don't point the blame at\na message which preaches fundamental giving and denial, in\nlove for others.\n\nYours in Christ,\n\nAndrew McVeigh\n\n\np.s. I believe that a line of questioning like you presented\nis, strangely enough, compatible with becoming a Christian.\nCertainly Christianity encourages one to question the behaviour\nof the world, and especially Christians.  I praise God for\nJesus Christ, and the fact that we can doubt our beliefs\nand still come back to God and be forgiven, time and time\nagain.\n\n--\n*****\n\n\nAndrew McVeigh\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10096, "properties": {"category": "sci.electronics", "text": "From: acooney@netcom.com (Alan Cooney)\nSubject: Re: Los Angeles Freeway traffic reports\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 48\n\nI live in the San Francisco Bay Area, and word has it that\nsomething similar is on its way here.  Since we apparently\ndon't have the sensor base you folks have, they're installing\ncameras at strategic points along the freeways (initial tests\nare going to be in the Santa Clara area I'm told), with the\nvideo being piped into a command center they're building\nsomewhere in the East Bay.  I'm not sure if frame grabbers or\ncheap labor will be used to interpret the data, but large\nmulti-colored status displays will show the various routes\nusing different colors to represent the various average speeds\nfor each stretch of highway.  An announcer will sit in front\nof the status 'wall', and will relay continuous verbal traffic\nstatus to those who want to receive it.  They're apparently also\nlooking into licensing a low-AM frequency to be dedicated to\nproviding continuous audio from this system.\n\nIn the mean time, they'll set up large incandescent display\nboards along the test stretch to provide commuters with data\non traffic conditions up ahead.  My understanding is that the\nsystem is subsidized as a pilot program, and information from it\nwill be available free of charge.  Perhaps the LA system is\nsimilarly free or provided at an obviously subsidized rate (read\n\"cheap\").\n\nWe also have the traffic reports that are broadcast on the SAP\naudio channel of television channels 2 and 36.  These are verbal\nreports, qualified with a identification tone to tell in-vehicle\nreceivers like the 'Auto Talk' that the information coming next is\napplicable to a given area.  In LA, they're probably using some\nother TV channels, but the concept is the same.  Try setting your\nstereo TV or VCR to receive the SAP audio channel, and go station\njumping to find out which one is broadcasting this information.\nI believe this program is also subsidized, making the in-vehicle\nreceivers cheap to purchase (and without having to incur monthly\nfees to use it).  Since the makers of these in-vehicle receivers\ndon't have to pay for the broadcast (this may not be completely\ntrue), they likely have no investment in keeping the system\nup and running when the Cal Trans stuff hits the airwaves.  You\nmay have a nifty little TV audio receiver in your car, nothing\nmore, when this happens.  Perhaps a word to the wise...?  ;)\n\nI think we'd all be interested in a summary post if you get more\ninfo on how the LA system is networked and paid for.\n\nCheers,\nAlan\n<acooney@netcom.com>\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10097, "properties": {"category": "comp.graphics", "text": "From: olson@anchor.esd.sgi.com (Dave Olson)\nSubject: Re: SGI sales practices (Was: Crimson (Was: Kubota Announcement?))\nOrganization:  Silicon Graphics, Inc.  Mountain View, CA\nLines: 90\n\nIn <1qjrec$qem@network.ucsd.edu> spl@ivem.ucsd.edu (Steve Lamont) writes:\n| What I *am* annoyed about is the fact that we were led to believe that\n| we *would* be able to upgrade to a multiprocessor version of the\n| Crimson without the assistance of a fork lift truck.\n\nIt should have been made fairly clear that the *most* Crimson would\never get was a 150 (75 old style) MHz CPU upgrade.  Certainly this\nwas mentioned on comp.sys.sgi on more than one occasion as being\nlikely.  If our sales folks were saying otherwise, they were either\nconfused, or less than honest/ethical, or somebody further up the\nchain inside SGI was misleading them.\n\n| I'm also annoyed about being sold *several* Personal IRISes at a\n| previous site on the understanding *that* architecture would be around\n| for a while, rather than being flushed.\n\nThere were 4 versions (20, 25, 30, 35), although admittedly the 30 came\nout at the same time as the 35, over a period of 2 1/2 years.  The\nchassis simply couldn't be pushed any further.  I'd say 4 years was\na pretty good lifespan, myself, for a system design in this day and\nage.  Getting the 35 to work caused a lot of gray hairs in both the\nhardware and product design groups; we would have been out of our\nminds to push it further, and I *know* that was made clear, almost\nfrom the day the 35 started shipping.  We had one last kicker in\nthe form of the Elan graphics, which made 3 graphics versions over\nits lifespan, which I also think is pretty good.\n\n| Now I understand that SGI is responsible to its investors and has to\n| keep showing a positive quarterly bottom line (odd that I found myself\n| pressured on at least two occasions to get the business on the books\n| just before the end of the quarter), but I'm just a little tired of\n| getting boned in the process.\n\nPlease, by all means send a complaint letter through SGI support\nor sales on your concerns.  There should be no reason for sales folks\nto misrepresent future upgrades to customers (sure, sometimes there\nwill be confusion for a while, over whether an upgrade will be available,\nbut that shouldn't last too long, and doesn't seem to be what you\nare referring to).\n\nYes, the sales folks *do* get bonus's at the end of some (all?) quarters,\nbut that is pretty common industry wide, and sometimes that can result\nin good deals for customers (sometimes it probably pushes folks into\nsystems that aren't what they need, I'm sure, but nobody is *forcing*\nyou to buy at end of quarter, after all...)\n\n| Maybe it's because my lab buys SGIs in onesies and twosies, so we\n| aren't entitled to a \"peek under the covers\" as the Big Kids (NASA,\n| for instance) are.  This lab, and I suspect that a lot of other labs\n\nThey don't get all that long a lead time either; although certainly\nthey get presentations on possible new products, and their opinions\nmay well influence the end product, but that also is life in the\nindustry.  We can't design systems that meet just their needs, or we\nwon't sell too many systems, after all (which is not to say that we\ndon't have some niche products, like Reality Engine).\n\n| and organizations, doesn't have a load of money to spend on computers\n| every year, so we can't be out buying new systems on a regular basis.\n| The boxes that we buy now will have to last us pretty much through the\n| entire grant period of five years and, in some case, beyond.  That\n| means that I need to buy the best piece of equipment that I can when I\n| have the money, not some product that was built, to paraphrase one\n| previous poster's words, 'to fill a niche' to compete with some other\n| vendor.  I'm going to be looking at this box for the next five years.\n| And every time I look at it, I'm going to think about SGI and how I\n| could have better spent my money (actually *your* money, since we're\n| supported almost entirely by Federal tax dollars).\n\nBut surely you don't expect a system you buy now for a five year\nperiod to be constantly upgradable over that entire five year\nperiod?  That's a rather unreasonable expectation, in my experience\n(with workstations/microcomputers).  Supported, and parts available,\nyes, but certainly not upgradable to the latest and greatest!\n\n| Now you'll have to pardon me while I go off and hiss and fume in a\n| corner somewhere and think dark, libelous thoughts.\n\nI missed your first posting, but as I say, by all means share your\nfrustation with somebody at a level inside SGI where it might\nhave an effect (not immediate, I'm sure, but complaints aren't\ngoing to be ignored, and *may* affect future plans, if we \nhear similar things from more than one person/site).\n\nAll of the above is, as usual, my personal opinion, not SGI's.\n--\nLet no one tell me that silence gives consent,  |   Dave Olson\nbecause whoever is silent dissents.             |   Silicon Graphics, Inc.\n    Maria Isabel Barreno                        |   olson@sgi.com\nPS: I start my sabbatical 29 May, ask those questions now ;)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10098, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: august1@server.uwindsor.ca (AUGUSTYN  ROBERT         )\nSubject: Address interliving?\nOrganization: University of Windsor, Ontario, Canada\nLines: 4\n\nWhat is address interliving? and memmory modules  interliving?\nThanks in advance for the info.\nRobert.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.474+0000", "event": "documents", "entityId": 10099, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Why not concentrate on child molesters?\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 27\n\nIn article <1993Apr13.104856.25246@lclark.edu>, snodgras@lclark.edu (Bil Snodgrass) writes:\n> In article <C581G8.Kw8@murdoch.acc.Virginia.EDU> gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy) writes:\n> >In article <15283@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n# ##For a while, homosexuals paid higher insurance rates than straights,\n# ##and with very good reason, until the government made it illegal to\n# ##do so.\n# \n# Well if we go by this philosophy how many Children do you think\n# we help pay for with our insurance premiums???  Children who obviously\n# cannot be afforded, since the insurance companies have to pay for\n# all of the prenatal and birthing.....  What about the children born\n# with horrible flaws who cost the system an arm and a leg to be kept alive?\n# We all pay because we are all part of this society and we should take\n# care of one another.....\n\nOddly enough, dependent coverage costs a bit more than for one self\nalone.  But if you really believe your claims, you could make a lot\nof money starting the \"Homosexuals Health Insurance Co.\" and refuse to\ninsure \"breeders.\"  But I shudder to think what your premiums will be\nlike.\n\n# Bil Snodgrass III\n\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10100, "properties": {"category": "sci.electronics", "text": "From: harry@neuron6.jpl.nasa.gov (Harry Langenbacher)\nSubject: Re: Uninterruptible Power Supply\nArticle-I.D.: jato.1993Apr15.225326.22831\nOrganization: JPL Pasadena CA\nLines: 25\nNntp-Posting-Host: neuron6.jpl.nasa.gov\n\nIn article <NURDEN1.25.734866568@elaine.ee.und.ac.za> NURDEN1@elaine.ee.und.ac.za (Dale Nurden) writes:\n>I'm wanting to build a simple UPS for my PC. ... sustain the computer long enough to complete \n>the current task and save, 5 to 10 minutes should be enough....\n>I think, though I don't really need to keep the monitor active (I can try to \n>remember what to do) so maybe I can avoid a DC-AC inverter and just use a \n>battery to directly supply the motherboard and peripherals.\n\nNow there's a good idea ! All you need is 20 amps DC for a few minutes, and\na good (wetware) memory (was I using wp or autocad or ...). I thought of the\nsame idea myself a few days ago. I've got a fairly new car battery that I take\nalong in my 4x4 when I go camping, and it sits around useless when I'm home.\nI wish I could get a batteryless ups to use it with, or use it with a heavy\nduty 5-volt regulator to supply the PC. But I guess you'd need -5v and -12v \n(and +12) too (2 more batteries ?).\n\nAn alternative would be to leave a 40 AMP battery charger hooked up to the battery\nand run a 12vdc to 110vac converter running all the time, and when the power\ngoes out, voi-la ! the 110vac converter keeps on running off the battery ! and\nthen I could take the 110vac converter and my computer on the camping trips !-)\n\n\n-- \nHarry Langenbacher 818-354-9513 harry%neuron6@jpl-mil.jpl.nasa.gov\nFAX 818-393-4540, Concurrent Processing Devices Group, Jet Propulsion\nLaboratory, M/S 302-231, 4800 Oak Grove Dr, Pasadena CA 91109 USA\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10101, "properties": {"category": "talk.religion.misc", "text": "From: kv07@IASTATE.EDU (Warren Vonroeschlaub)\nSubject: Re: Albert Sabin\nReply-To: kv07@IASTATE.EDU (Warren Vonroeschlaub)\nOrganization: Ministry of Silly Walks\nLines: 30\n\nIn article <1993Apr15.225657.17804@rambo.atlanta.dg.com>, wpr@atlanta.dg.com\n(Bill Rawlins) writes:\n>       Since you have referred to the Messiah, I assume you are referring\n>        to the New Testament.  Please detail your complaints or e-mail if\n>        you don't want to post.  First-century Greek is well-known and\n>        well-understood.  Have you considered Josephus, the Jewish Historian,\n>        who also wrote of Jesus?  In addition, the four gospel accounts\n>        are very much in harmony.  \n\n  Bill, I find it rather remarkable that you managed to zero in on what is\nprobably the weakest evidence.\n\n  What is probably the most convincing is the anti-Christian literature put out\nby the Jewish councils in the second century.  There are enormous quantities of\ndetailed arguments against Christianity, many of the arguments still being used\ntoday.  Despite volumes of tracts attacking Christianity, not one denies the\nexistance of Jesus, only of his activities.\n\n  I find this considerably more compelling than Josephus or the harmony of the\ngospels (especially considering that Matthew and Luke probably used Mark as a\nsource).\n\n |  __L__\n-|-  ___  Warren Kurt vonRoeschlaub\n |  | o | kv07@iastate.edu\n |/ `---' Iowa State University\n/|   ___  Math Department\n |  |___| 400 Carver Hall\n |  |___| Ames, IA  50011\n J  _____\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10102, "properties": {"category": "rec.sport.baseball", "text": "From: mjones@watson.ibm.com (Mike Jones)\nSubject: Re: So Far , So Good (THE RED SOX)\nReply-To: mjones@donald.aix.kingston.ibm.com\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM.\nNntp-Posting-Host: fenway.aix.kingston.ibm.com\nOrganization: IBM AIX/ESA Development, Kingston NY\nLines: 68\n\nec003b@uhura.cc.rochester.edu (Wizard) writes:\n>I have posted two new postings on the net, since I discovered how to use it,\n>and both times I received redicule for predicting the Red Sox as high as\n>Third in the AL East.  Id like to hear why it is people dont think the Sox\n>can be as high as Third this year.  Here are some of my observations:\n\nWell, had you been a bit less exuberant in both the tone and substance of\nyour predictions, the responses would probably have been a bit more\nmeasured. Be that as it may....\n\n>1. Roger and Frank are in vintage form, and the Sox are rresponding to them.\nClemens is always in this form, and Viola isn't really performing beyond\nwhat might reasonably have been expected. How do you know that the Sox are\nresponding to them, and not to Al Bumbry, Hobson, or (my most likely\nsuspect) new hitting coach Mike Easler? I certainly am more likely to give\nEasler credit for Mo Vaughhn's hot start than Clemens or Viola.\n\n>2. Greenwell is hitting as he did before his injuries.\nThis was the optimistic scenario, but not unreasonably so. He hasn't shown\nmuch power yet, though.\n\n>3. Dawson is providing the leadership and some hitting they need from him.\nHow can you tell that Dawson is providing the leadership? Perhaps it's\nCalderon? Perhaps it's Clemens and Viola? Maybe Hobson is finally showing\nthose people skills he was supposed to have when they hired him. Or maybe\nit's all a myth. And Dawson has been hitting reasonably well, but not as\nwell as Greenwell, Vaughn, Cooper, or Fletcher.\n\n>4. Russell is finishing well.\nIn three games. Why don't we look at this one again in, say, July?\n\n>5. Fletcher is hitting well as a leadoff hitter.\nA bit better than could reasonably have been expected. But don't forget that\nZupcic looked like Wade Boggs lite for about 75 AB's last year. Beware of\nsmall sample sizes. Still, if Fletcher hits as well as he did last year he'd\nbe a great improvement over any Sox leadoff hitter from last year. Be aware\nthat his career numbers seem to indicate that he puts up good numbers as\nlong as he doesn't have to make more than 300 AB or so in a year.\n\n>6. Cooper is hitting well (I think he'll be better then Boggs in the field\n>and just as good at the plate)\nUmmm...sorry, no. I can buy the \"in the field\" part, and I think he'll be\nbetter at the plate than the 1992 Boggs, but in general Cooper, while he'll\nbe a pretty good hitter, couldn't carry Boggs' jockstrap. With a little\nluck, he could be the fourth or fifth best 3B in the AL (Martinez, Boggs,\nVentura, and Palmer will all be better).\n\n>If the sox Pitch like last year (they have a better pitchiong staff, now)\n>and hit like they are so far, they coiuld run away with thee division. but\n>since I think that their hitting and pitching may not be up to the challenge\n>of running away with the division, I think that they win be over .500 and at\n>least Third if not Second or First.\n\nSee, here is where you make that quick left turn off into the aether. .500\nis plausible, third is not unlikely, but phrases like \"could run away with\nthe division\" are likely to get you a visit from the men in the white\ncoats. It's not really clear that their staff is better than last year. If\nRussell does well, Darwin doesn't go on the DL, and Hesketh doesn't pitch\njust barely well enough to avoid losing his spot in the rotation, they could\nbe better. On the other hand, if Hesketh pitches miserably and they're too\nstupid to move him to the pen and bring up Conroy or somebody, Fossas\ncontinues to pitch dismally but they keep giving him innings becasue he's a\nlefty, and Russell explodes they could be pretty bad.\n\n Mike Jones | AIX High-End Development | mjones@donald.aix.kingston.ibm.com\n\nGod is a comedian playing to an audience that is afraid to laugh.\n\t- Mark Twain\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10103, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Re: xSoviet Armenia denies the historical fact of the Turkish Genocide.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 52\n\nIn article <1993Apr17.172014.663@hellgate.utah.edu> tolman%asylum.cs.utah.edu@cs.utah.edu (Kenneth Tolman) writes:\n\n>>I sure hope so. Because, the unspeakable crimes of the Armenians must \n>>be righted. Armenian invaders burned and sacked the fatherland of \n\n>No!  NO!  no no no no no.  It is not justifiable to right wrongs of\n>previous years.  My ancestors tortured, enslaved, and killed blacks.  I\n>do not want to take responsibility for them.  I may not have any direct\n>relatives who did such things, but how am I to know?\n>There is enough CURRENT torture, enslavement and genocide to go around.\n>Lets correct that.  Lets forget and forgive, each and every one of us has\n>a historical reason to kill, torture or take back things from those around\n>us.  Pray let us not be infantile arbiters for past injustice.\n\nAre you suggesting that we should forget the cold-blooded genocide of\n2.5 million Muslim people by the Armenians between 1914 and 1920? But \nmost people aren't aware that in 1939 Hitler said that he would pattern\nhis elimination of the Jews based upon what the Armenians did to Turkish\npeople in 1914.\n\n\n     'After all, who remembers today the extermination of the Tartars?'\n      (Adolf Hitler, August 22, 1939: Ruth W. Rosenbaum (Durusoy), \n          \"The Turkish Holocaust - Turk Soykirimi\", p. 213.)\n\n\nI refer to the Turks and Kurds as history's forgotten people. It does\nnot serve our society well when most people are totally unaware of\nwhat happened in 1914 where a vicious society, run by fascist Armenians,\ndecided to simply use the phoniest of pretexts as an excuse, for wiping \nout a peace-loving, industrious, and very intelligent and productive \nethnic group. What we have is a demand from the fascist government of\nx-Soviet Armenia to redress the wrongs that were done against our\npeople. And the only way we can do that is if we can catch hold of and \nnot lose sight of the historical precedence in this very century. We \ncannot reverse the events of the past, but we can and we must strive to \nkeep the memory of this tragedy alive on this side of the Atlantic, so as\nto help prevent a recurrence of the extermination of a people because \nof their religion or their race. Which means that I support the claims \nof the Turks and Kurds to return to their lands in x-Soviet Armenia, \nto determine their own future as a nation in their own homeland.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10104, "properties": {"category": "talk.politics.mideast", "text": "From: backon@vms.huji.ac.il\nSubject: Re: Ten questions about Israel\nDistribution: world\nOrganization: The Hebrew University of Jerusalem\nLines: 134\n\nIn article <1483500349@igc.apc.org>, cpr@igc.apc.org (Center for Policy Research) writes:\n>\n> From: Center for Policy Research <cpr>\n> Subject: Ten questions about Israel\n>\n>\n> Ten questions to Israelis\n> -------------------------\n>\n> I would be thankful if any of you who live in Israel could help to\n> provide\n>  accurate answers to the following specific questions. These are\n> indeed provocative questions but they are asked time and again by\n> people around me.\n>\n> 1.      Is it true that the Israeli authorities don't recognize\n> Israeli nationality ? And that ID cards, which Israeli citizens\n> must carry at all times, identify people as Jews or Arabs, not as\n> Israelis ?\n\n\nAlthough the Hebrew expression LE'UM is used, the ID card specifically states on\nthe 2nd page: EZRACHUT YISREALIT: Israeli citizen. This is true for all\nIsraeli citizens no matter what their ethnicity. In the United States most\nofficial forms have RACE (Caucasian, Black, AmerIndian, etc.).\n\n>\n> 2.      Is it true that the State of Israel has no fixed borders\n> and that Israeli governments from 1948 until today have refused to\n> state where the ultimate borders of the State of Israel should be\n> ?\n>\n\nFunny, I have a number of maps and ALL of them have fixed borders.\n\n\n\n> 3.      Is it true that Israeli stocks nuclear weapons ? If so,\n> could you provide any evidence ?\n\nProbably yes. So what ?\n\n\n\n>\n> 4.      Is it true that in Israeli prisons there are a number of\n> individuals which were tried in secret and for which their\n> identities, the date of their trial and their imprisonment are\n> state secrets ?\n\n\nApart from Mordechai Vanunu who had a trial behind closed doors, there was one\nother espionage case (the nutty professor at the Nes Ziona Biological\nInstitute who was a K.G.B. mole) who was tried \"in camera\". I wouldn't exactly\ncall it a state secret. The trial was simply tried behind closed doors. I hate\nto disappoint you but the United States has tried a number of espionage cases\nin camera.\n\n\n>\n> 5.      Is it true that Jews who reside in the occupied\n> territories are subject to different laws than non-Jews?\n>\n\nNot Jews. Israeli citizens. Jordanian law is in effect in the West Bank but the\nKNESSET passed a law that Israeli law would be binding on Israeli citizens\nresiding in the West Bank. These citizens could be Jews, Israeli Muslims, Druze,\nor Israeli Christians. It has NOTHING to do with religion.\n\n\n\n\n> 6.      Is it true that Jews who left Palestine in the war 1947/48\n> to avoid the war were automatically allowed to return, while their\n> Christian neighbors who did the same were not allowed to return ?\n\nAnyone who was registered (Jew, Muslim, Christian) could return. You might be\nconfusing this with the census taken in June 1967 on the West Bank after the\nSix Day War. In *this* instance, if the Arab was not physically present he\ncouldn't reside on the West Bank (e.g. if he had been visting Jordan).\n\n\n>\n> 7.      Is it true that Israel's Prime Minister, Y. Rabin, signed\n> an order for ethnical cleansing in 1948, as is done today in\n> Bosnia-Herzegovina ?\n>\n\nNo. Not even if you drowned him in bourbon, scotch or brandy :-)\n\n\n\n> 8.      Is it true that Israeli Arab citizens are not admitted as\n> members in kibbutzim?\n\nNot true. Although a minority, there *are* some Israeli Arabs living on\nkibbutzim. On the other hand, at my age (42) I wouldn't be admitted to a\nkibbutz nor could the family join me. Not that I would be so thrilled to do so\nin the first place. The kibbbutz movement places candidates under rigorous\nmembership criteria. Many Israeli Jews are not admitted.\n\n\n>\n> 9.      Is it true that Israeli law attempts to discourage\n> marriages between Jews and non-Jews ?\n\nThe religious status quo in Israel has marriage and divorce  handled by the\nreligious courts. The RABBANUT handles marriage and divorce for Jews, the\nMuslim SHAARIA  courts are for Muslims, the Christian denominations have their\nreligious courts, and the Druze have their own courts. The entire religious\nestablishment (Jewish, Muslim, Druze, Christian) wants to keep it that way.\n\n>\n> 10.     Is it true that Hotel Hilton in Tel Aviv is built on the\n> site of a muslim cemetery ?\n\nI believe it's adjacent to a former Muslim cemetary. From what I heard (and I'd\nlike to get feedback from Muslins  on the net) sanctity of cemetaries is not\nheld that sancrosanct as it is held by Jews. The current Israeli Ministry of\nTrade and Industry on Agron Road in Jerusalem is housed in a former hotel that\nwas built by Arabs in the 1920's on the site of an Arab cemetary.\n\n\nJosh\nbackon@VMS.HUJI.AC.IL\n\n\n\n>\n\n\n> Thanks,\n>\n> Elias Davidsson Iceland email:   elias@ismennt.is\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10105, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rnichols@cbnewsg.cb.att.com (robert.k.nichols)\nSubject: Re: Permanaent Swap File with DOS 6.0 dbldisk\nSummary: PageOverCommit=factor\nOrganization: AT&T\nLines: 50\n\nIn article <93059@hydra.gatech.EDU> gt4356c@prism.gatech.EDU (James Dean Barwick) writes:\n...\n>more on permenent swap files...\n>\n>i'm sure everyone who has an uncompressed part of their compressed hard disk\n>has seen the message \"you have selected a swap file greater than the suggested\n>size...windows will only use the size suggested...do you wan't to create this\n>swap file anyway\" or something like that.\n>\n>well, a friend of mine (ROBERT) called microsoft and asked them what and why.\n>what they said is that windows checks the amount of free disk space and\n>divides that number by 2.  Then it checks for the largest contiguous block\n>of free disk space.  Windows then suggests the smaller of the two numbers.\n>\n>They also said that under absolutely no circumstances...NONE!...will windows\n>uses a swap file larger than the suggested size.  Well...that's what he \n>said!\n>\n>I call bull@#$#.  If this is true why does windows report the memory is\n>available to me if it's not going to use it?\n\nI think the support droid was malfunctioning and confused the disk space\nlimit with the virtual address space limit.  As far as the disk is\nconcerned, you are limited only by the amount of contiguous free space.\nThe limit that causes the message, \"Windows will only use ...,\" is the\namount of virtual address space that the Virtual Memory Manager will\ncreate, and this is a function of the amount of free memory that you have\nwhen Windows starts.\n\nIn the [386enh] section of SYSTEM.INI, you can specify a parameter:\n\n\tPageOverCommit=multiplier\n\nThe following description is from the Windows Resource Kit:\n\n\tThis entry specifies the multiplier what determines the amount of\n\tlinear address space the VMM will create for the system, which is\n\tcomputed by rounding up the amount of available physical memory to\n\tthe nearest 4 MB and then multiplying that value by the value\n\tspecified for PageOverCommit=.  Increasing this value increases the\n\tamount of available linear address space, causing the size of data\n\tstructures to increase.  This also increases paging activity\n\tproportionately and can slow down the system.  You can specify a\n\tvalue between 1 and 20.  The default is 4.  To change this entry,\n\tyou must edit SYSTEM.INI.\n\n--\nBob Nichols\nAT&T Bell Laboratories\nrnichols@ihlpm.ih.att.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10106, "properties": {"category": "sci.med", "text": "From: bmdelane@quads.uchicago.edu (brian manning delaney)\nSubject: Re: Epstein-Barr Syndrome questions\nKeywords: EBV CFS CFIDS\nReply-To: bmdelane@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 47\n\nIn article <1993Apr23.034226.2284@reed.edu> jcherney@reed.edu writes:\n>Okay, this is a long shot.\n>\n>My friend Robin has recurring bouts of mononucleosis-type symptoms, very  \n>regularly.  This has been going on for a number of years.  She's seen a  \n>number of doctors; six was the last count, I think.  Most of them have  \n>said either \"You have mono\" or \"You're full of it; there's nothing wrong  \n>with you.\"  One has admitted to having no idea what was wrong with her,  \n>and one has claimed that it is Epstein-Barr syndrome.\n>\n>Now, what she told me about EBS is that very few doctors even believe that  \n>it exists.  (Obviously, this has been her experience.)  So, what's the  \n>story?  Is it real?  Does the medical profession believe it to be real?\n>\n>Has anyone had success is treating EBS?  Or is it just something to live  \n>with?  Thanks for your assistance.\n\nOutbreaks of a chronic-mono-like entity were originally called EBS (or\nsome variant thereof) because most of the people with this disease had\nelevated levels of antibodies to the EBV virus. But not all of them\ndid, which prompted an official renaming of the disease to Chronic\nFatigue Syndrome (this renaming took place in the Annals of Internal\nMedicine, Jan. 1988, I believe). Now it's also called Chronic Fatigue\nand Immune Dysfunction Syndrome (CFIDS), since it seems clear that\nsome sort of immune disregulation is causing the probs.\n\nAstonishly, there are still docs who tell people with massively\nswollen glands, recurrent fevers and nightsweats, etc., that there's\nnothing wrong with them. This is not the same thing as saying that the\nsyndrome may have a (at least partly) psychological cause. The\ndisagreement among people whose thoughts are worth considering centers\non just what the cause is. No one knows, but theories include:\npsychological stress, some sort of virus (a retrovirus, say most --\nmaybe one of the newly discovered herpes viruses), environmental\ntoxins, bacteria (and, yes, candida), genes, (and/)or some combo of\nthese.\n\nThere's no outright cure at the moment, but different docs try\ndifferent things, some of which seem to help.\n\nMassive amounts of info on the condition are available these days.\nPost your Q to alt.med.cfs, and you will be flooded w/facts.\n\nNote: There are lots of far better understood (and better treatable)\ndiseases that look like CFIDS. Make sure these get ruled-out by a good\ndoc.\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10107, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jcav@ellis.uchicago.edu (JohnC)\nSubject: your opinion of the LaserWriter Select 310?\nReply-To: jcav@midway.uchicago.edu\nOrganization: The Royal Society for Putting Things on Top of Other Things\nLines: 10\n\nThis model is one of the two low-cost laser printers that Apple just\nintroduced.  I'm thinking of getting one to use at home.  Have any of you\nhad any experience with this printer?   Does it have Level-2 PostScript?\nIf you've bought one, are you happy with it?\n\n-- \nJohn Cavallino                  |  EMail: jcav@midway.uchicago.edu\nUniversity of Chicago Hospitals |         John_Cavallino@uchfm.bsd.uchicago.edu\nOffice of Facilities Management | USMail: 5841 S. Maryland Ave, MC 0953\nB0 f++ w c+ g++ k+ s++ e h- p   |         Chicago, IL  60637\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10108, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: etymology of \"Easter\"\nLines: 53\n\nfor SRC\n\nIn most languages, the Feast of the Resurrection of Our Lord is\nknown as the PASCH, or PASQUE, or some variation thereof, a word\nwhich comes from the Hebrew PESACH, meaning \"Passover.\" In English,\nGerman, and a few related languages, however, it is known as EASTER,\nor some variation thereof, and questions have been asked about the\norigin of this term.\n\nOne explanation is that given by the Venerable Bede in his DE\nRATIONE TEMPORUM 1:5, where he derives the word from the name of an\nAnglo-Saxon goddess of Spring called EASTRE. Bede is a great\nscholar, and it is natural to take his word for it. But he lived\n673-735, and Augustine began preaching in Kent in 597. The use of\nthe word EASTER to describe the Feast would have been well\nestablished before the birth of Bede and probably before the birth\nof anyone he might have discussed the subject with. It seems likely\nthat his derivation is just a guess, based on his awareness that\nthere had been an Anglo-Saxon goddess of Spring bearing that name,\nand the resemblance of the words. Thus, if the said resemblance\n(surely it is not surprising that a personification of Spring should\nhave a name similar to the word for Dawn) is not in istelf\nconvincing, the testimony (or rather the conjecture) by Bede does\nnot make it more so.\n\nAssuming that Bede was right, that would not justify saying that the\nChristian celebration (which, after all, had been going on for some\ncenturies before the name EASTER was applied to it) has pagan roots.\nIt would simply mean that the Anglo-Saxons, upon becoming Christians\nand beginning to celebrate the Resurrection by a festival every\nspring, called it by the name that to them meant simply \"Spring\nFestival.\"\n\nHowever, Bede's is not the only theory that has been proposed.  J\nKnoblech, in \"Die Sprach,\" ZEITSCHRIFT FUER SPRACHWISSENSCHAFT 5\n(Vienna, 1959) 27-45, offers the following derivation:\n\nAmong Latin-speaking Christians, the week beginning with the Feast\nof the Resurrection was known as \"hebdomada alba\" (white week),\nsince the newly-baptized Christians were accustomed to wear their\nwhite baptismal robes throughout that week. Sometimes the week was\nreferred to simply as \"albae.\" Translaters rendering this into\nGerman mistook it for the plural of \"alba,\" meaning \"dawn.\" They\naccordingly rendered it as EOSTARUM, which is Old High German for\n\"dawn.\" This gave rise to the form EASTER in English.\n\n Yours,\n James Kiefer\n\n\n[No, I'm not interested in restarting discussions of the propriety\nof celebrating Easter.  However this seems like it contains enough\ninteresting information that people might like to see it.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10109, "properties": {"category": "sci.electronics", "text": "From: bob@kc2wz.bubble.org (Bob Billson)\nSubject: Re: subliminal message flashing on TV\nOrganization: Color Computer 3: Tandy's 'game' machine\nLines: 13\n\nkennehra@logic.camp.clarkson.edu (Rich\"TheMan\"Kennehan) says:\n>Hi.  I was doing research on subliminal suggestion for a psychology\n>paper, and I read that one researcher flashed hidden messages on the\n>TV screen at 1/200ths of a second.  Is that possible?  I thought the\n\nTake a look over in alt.folklore.urban.  There is a thread about subliminal\nmessages on TV.  The fact that subliminal messages don't work aside, an image\ncan't be flashed on a TV screen fast enough to not be noticed.\n-- \n  Bob Billson, KC2WZ                          | internet: bob@kc2wz.bubble.org\n  $nail:  21 Bates Way,  Westfield, NJ 07090  | uucp:     ...!uunet!kc2wz!bob\n\n               \"Friends don't let friends run DOS\" -- Microware\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10110, "properties": {"category": "comp.graphics", "text": "From: scrowe@hemel.bull.co.uk (Simon Crowe)\nSubject: BGI Drivers for SVGA\nSummary: Ftp site for SVGA Driver\nKeywords: BGI, SVGA\nNntp-Posting-Host: bogart\nOrganization: Bull HN UK\nLines: 11\n\nI require BGI drivers for Super VGA Displays and Super XVGA Displays. Does \nanyone know where I could obtain the relevant drivers ? (FTP sites ??)\n\n\tRegards\n\n\n\t\tSimon Crowe\n\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10111, "properties": {"category": "rec.sport.baseball", "text": "From: jja2h@Virginia.EDU (\"\")\nSubject: Re: Brien Taylor: Where is he?\nOrganization: University of Virginia\nLines: 9\n\nLast year Brein Taylor was in A ball, probably at Tampa in the\nFlorida State League.  I believe he began this year in AA which\nis Albany.  Hopefully George won't rush him and he'll be\nallowed to progress at his own rate to AAA and then to the\nBronx.  This guy is the real thing.\n\nJonathan Alboum\nUVA\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10112, "properties": {"category": "sci.space", "text": "From: dchien@hougen.seas.ucla.edu (David H. Chien)\nSubject: Orbit data - help needed\nOrganization: SEASnet, University of California, Los Angeles\nLines: 43\n\nI have the \"osculating elements at perigee\" of an orbit, which I need\nto convert to something useful, preferably distance from the earth\nin evenly spaced time intervals. A GSM coordinate system is preferable,\nbut I convert from other systems. C, pascal, or fortran code, or\nif you can point me to a book or something that'd be great.\n\nhere's the first few lines of the file.\n\n0  ()\n1  (2X, A3, 7X, A30)\n2  (2X, I5, 2X, A3, 2X, E24.18)\n3  (4X, A3, 7X, E24.18)\n1  SMA       SEMI-MAJOR AXIS\n1  ECC       ECCENTRICITY\n1  INC       INCLINATION\n1  OMG       RA OF ASCENDING NODE\n1  POM       ARGUMENT OF PERICENTRE\n1  TRA       TRUE ANOMALY\n1  HAP       APOCENTRE HEIGHT\n1  HPE       PERICENTRE HEIGHT\n2      3  BEG  0.167290000000000000E+05\n3    SMA       0.829159999999995925E+05\n3    ECC       0.692307999999998591E+00\n3    INC       0.899999999999999858E+02\n3    OMG       0.184369999999999994E+03\n3    POM       0.336549999999999955E+03\n3    TRA       0.359999999999999943E+03\n3    HAP       0.133941270127999174E+06\n3    HPE       0.191344498719999910E+05\n2      1  REF  0.167317532658774153E+05\n3    SMA       0.829125167527418671E+05\n3    ECC       0.691472268118590319E+00\n3    INC       0.899596754214342091E+02\n3    OMG       0.184377521828175002E+03\n3    POM       0.336683788851850579E+03\n3    TRA       0.153847166458030088E-05\n3    HAP       0.133866082767180880E+06\n3    HPE       0.192026707383028306E+05\n\nThanks in advance,\n\nlarry kepko\nlkepko@igpp.ucla.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10113, "properties": {"category": "talk.politics.misc", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: CLINTON: President's Remarks at Town Hall Meeting\nLines: 25\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <1qia48INNgta@life.ai.mit.edu> Clinton-HQ@Campaign92.Org (Clinton/Gore '92) writes:\n>\t     \n>\t     \n>\t     SECRETARY RILEY:  Good evening and welcome to all of you \n>in the thousands of communities around the country that are taking \n>part in this satellite town meeting for the month of April.\n>\t     \n>\t     You know, today is April 13th.  In 1743, Thomas \n>Jefferson was born, 250 years ago.  I think that's appropriate to \n>mention at the beginning of this meeting because since that time he \n>has been, of course, a person who has been one that we've all \n>followed in terms of our democracy and the importance of education \n>here in this great country.  The success of our democracy according \n>to Jefferson really depends upon the success of our educational \n>system.\n\n       I wonder if he realizes the irony of a Federal Secretary\ninvoking a rabid anti-federalist in support of federal education\nprograms?\n\t     \n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10114, "properties": {"category": "comp.graphics", "text": "Nntp-Posting-Host: bones.et.byu.edu\nLines: 6\nSubject: PD 3D Viewer wanted\nSummary: 3D\nExpires: May 20, 1993\nOrganization: Brigham Young University, Provo UT USA\nFrom: qiaok@bones.et.byu.edu (Kun Qiao)\n\nI am looking for a public domain 3d viewer.  It does not have to be very\nfancy.  The features I want is simple wireframe display, flat shading, \nsimple transformation.  It would be nice to have hidden line.    \n\nAny information is appreciated.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10115, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: FORTRAN library for MS-Windows\nFrom: traversmorgan@swell.actrix.gen.nz (Guan Lye Chua)\nOrganization: Actrix Information Exchange\nLines: 13\n\n\nHi!  I will like to know if there is a FORTRAN library for MS-Windows v3+ out\nthere.\n\nI have several lots of source code written by past A/Ps in MS-FORTRAN, and\nrecently have needed to port them to MS-Windows... I would like to avoid a\nmajor code-rewrite if possible - maybe a WINDOWS library is all I need?\n\nPlease help - reply by E-mail to:  traversmorgan@swell.actrix.gen.nz\n-- \nGuan Lye Chua                                                              \nc/- Travers Morgan (NZ) Ltd, P O Box 11-525, Wellington, NZ.               \nTel.: +64 4 471 0303   Fax.: +64 4 471 0353 \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10116, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: perry@wswiop15.win.tue.nl (Perry Egelmeers)\nSubject: Re: FUNET.FI\nOrganization: Eindhoven University of Technology, The Netherlands\nLines: 13\nDistribution: world\nNNTP-Posting-Host: wswiop15.win.tue.nl\n\nartieb@vnet.IBM.COM writes:\n\n>    I saw a posting earlier that refered to FUNET.FI directory /pub/msdos\n>however, when I log on to FUNET.FI I cant even find the \"pub\" directory\n>let alone the \"msdos\" directory !!!!  Can someone tell me what I'm doing\n>wrong??\n\nPerhaps you should try nic.funet.fi instead of funet.fi ??!?!?\nnic.funet.fi is THE biggest (?) ftp site from Europe, but\nthe stuff available there should (?) also be available at the other site\nof the \"big pool\".\n\nPerry Egelmeers\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10117, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Homeopathy: a respectable medical tradition?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 26\n\nIn article <C5qMJJ.yB@ampex.com> jag@ampex.com (Rayaz Jagani) writes:\n\n>\n>From Miranda Castro, _The Complete Homeopathy Handbook_,\n>ISBN 0-312-06320-2, oringinally published in Britain in 1990.\n>\n>From Page 10,\n>.. and in 1946, when the National Health Service was established,\n>homeopathy was included as an officially approved method\n>of treatment.\n\nI was there in 1976.  I suppose it must have died out since 1946,\nthen.  Certainly I never heard of any homeopaths or herbalists in\nthe employ of the NHS.  Perhaps the law codified it but the authorities\nrefused to hire any homeopaths.  A similar law in the US allows\nchiropractors to practice in VA hospitals but I've never seen one\nthere and I don't know of a single VA that has hired a chiropractor.\nThere are a lot of Britons on the net, so someone should be able to\ntell us if the NHS provides homeopaths for you.\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10118, "properties": {"category": "rec.sport.hockey", "text": "From: gp2011@andy.bgsu.edu (George Pavlic)\nSubject: Re: Pens playoff radio coverage (was:Re: Radio stations)\nOrganization: Bowling Green State University B.G., Oh.\nLines: 42\n\nIn article <C5sFJv.FA1.1@cs.cmu.edu>, lli+@cs.cmu.edu (Lori Iannamico)\nwrote:\n\n> According to this morning's Post-Gazette:\n> \n> The Pens will be carried by KDKA-Radio(1020 am), unless the Pirates\n> are playing.  When the Pirates play, the games will be carried by \n> WDVE(102.5 fm).  WDVE will carry 12 games, starting with tonight's\n> game.\n> \n> In fact, after this season, KDKA will no longer be the flagship\n> station for the Pens.  The Penguins and KBL have struck a new \n> deal regarding the TV and radio rights to the games.  It seems\n> more than likely that WDVE will be the flagship radio station next \n> season.  KBL will carry 62 games on tv,  with 17 of the games to be \n> simulcast on KDKA-TV.  The remaining 22 games, as well as some of the \n> early round playoff games, will be available by \"subscription tv\" only.\n> To receive the games, you'll have to pay a one time hook up fee, and\n> then a monthly fee of $11-12 dollars.\n> \n> Also, under the new deal, there will no longer be radio/tv \n> simulcasts.  There will be a TV broadcast team, and a radio\n> broadcast team.  \n> \n> No word on who the announcers will be.  Mike Lange and Paul Steigerwald\n> are both under contract with KDKA, but their contracts expire at the\n> end of this season.  KBL President Bill Craig said he'd like to hire\n> Lange and Steigerwald.\n> \n> Lori\n> Contact for the Penguins\n> lli+@cs.cmu.edu\n\nNOOOOOOOOOOOOOOOOO!  Who's the mindscheme(?) behind this one -- Ted\nSimmons?  As the saying goes, \"If it ain't broke, don't fix it.\"  I'm 230\nmiles from home (during the school year) and will never be able to pick up\nDVE.  At least now I can sort of make out what Mike and Steigy say through\nall the static on KDKA.  This just may be enough reason for me to transfer\nto Duquesne and live at home.  Who's going to announce on DVE anyway? \nPaulson and Krenn?  (Just kidding.)\n\nGeorge\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10119, "properties": {"category": "talk.politics.guns", "text": "From: k@hprnd.rose.hp.com (Steve Kao)\nSubject: Re: Blast them next time\nOrganization: Hewlett Packard Roseville Site\nLines: 16\nDistribution: usa\nNNTP-Posting-Host: hprnd.rose.hp.com\nX-Newsreader: TIN [version 1.1 PL8.8]\n\nDaniel Oldham (oldham@ces.cwru.edu) wrote:\n> The BATF needs more people, better weapons and more armored\n> transports. ...\n\n> With the arms build up in Waco they needed to hit that compound with\n> mega fire power. They could of gone in there blasting and killed a few\n> women and kids but it would of been better then letting them all burn\n> to death 51 days later.\n\nIs this a joke?  The legal way to serve a search warrant is to knock on\nthe door.  Tossing in a grenade to serve a search warrant violates the\nUS Constitution and is hence, illegal.  The BD complied with legal\nsearch warrants in the past.  I do not understand why the BATF used an\nillegal means to serve their search warrant last February.\n\n- Steve Kao\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10120, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: westes@netcom.com (Will Estes)\nSubject: Utility to switch cap locks/ctrl keys\nOrganization: Mail Group\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 9\n\nBeing a big fan of the official IBM keyboards, I have a PS/2 keyboard attached \nto my clone computer.  I want to know if there is a software utility\nout there that can be used to switch the locations of the ctrl and\ncap locks keys.  Even better, does IBM or any third party make ctrl\nand cap lock key replacements that can be used to visually switch\nthe keys as well?\n\n-- \nWill Estes\t\tInternet: westes@netcom.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.475+0000", "event": "documents", "entityId": 10121, "properties": {"category": "sci.med", "text": "From: brian@quake.sylmar.ca.us (Brian K. Yoder)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Quake Public Access, San Fernando Valley, CA (818)362-6092\nLines: 92\n\nHave you ever met a chemist?  A food industry businessman?  You must\npersonally know a lot of them for you to be able to be so certain that they\nare evil mosters whose only goal is to inflict as much pain and disease\nas possible into the general public.  Gimme a break.\n \nIn article <1993Apr15.215826.3401@rtsg.mot.com> lundby@rtsg.mot.com (Walter F. L\nundby) writes:\n>\n>>>Is there such a thing as MSG (monosodium glutamate) sensitivity?\n>>>Superstition. Anybody here have experience to the contrary?\n\n person who is very sensitive to msg and whose wife and kids are\n>too, I WANT TO KNOW WHY THE FOOD INDUSTRY WANTS TO PUT MSG IN FOOD!!!\n \nBecause it makes the food TASTE BETTER!  Why does it put salt in food?\nSame reason.\n\n>I REALLY DON'T UNDERSTAND!!!\n\nObviously.\n \n>Somebody in the industry GIVE ME SOME REASONS WHY!\n\n>IS IT AN INDUSTRIAL BYPRODUCT THAT NEEDS GETTING GET RID OF?\n \nOf course not!  (Although I would think that a person like you would be a\nbig fan of such recycling if that were the case).\n\n>IS IT TO COVER UP THE FACT THAT THE RECIPES ARE NOT VERY GOOD OR THE \n>FOOD IS POOR QUALITY?\n \nOn occasion that's probably the case, but in general the idea is that MSG\nimproves the flavor of certain foods.\n \n>DO SOME OF YOU GET A SADISTIC PLEASURE OUT OF MAKING SOME OF US SICK?\n \nNo.\n \n>DO THE TASTE TESTERS HAVE SOME DEFECT IN THEIR FLAVOR SENSORS (MOUTH etc...)\n>  THAT MSG CORRECTS?\n \nNo.\n \n>I REALLY DON'T UNDERSTAND!!!\n \nObviously.\n \n>ALSO ... Nitrosiamines (sp)\n \nAs I recall, these are natural by-products of heating up certain foods.\nThey don't \"put it in there\".\n \n \nhave a number of criteria in choosing how to process food.  They want to\nmake it taste good, look good, sell for a good price, etc.  The fact that they\nuse it tells me that THEY think that it contributes to those goals they are\ninterested in.  One of those goals is NOT \"making people sick\".  Such a goal\nwoud quickly drive them out of business and for no benefit.\n \n>I think\n>1) outlaw the use of these substances without warning labels as\n>large as those on cig. packages.\n \nWarning of what?  In California there is a law requiring that ANYTHING which\ncontains a carcinogen be labeled.  That includes every gasline pump, most\nfoods, and even money cleaning machines (because Nickel is a mild carcinogen).\nThe result is that now nobody pays any attention to ANY of the warnings.\n \n>2) Require 30% of comparable products on the market to be free of these\n>substances and state that they are free of MSG, DYES, NITROSIAMINES and\n>SULFITES on the package.\n \nWhy?  What if not 30% of people wanted to buy this ugly, rotten, not-as-tasty\nfood?  I guess it will just be wasted, huh?  How terribly efficient.\n \n>3) While at it outlaw yellow dye #5.  For that matter why dye food?\n \nBecause it makes food look better.  I LIKE food that looks good.\nIf vitamin companies want to do that it is fine, but who are you to\ntell THEM how to make vitamins?  Who are you to tell ME whether I should\nbuy flavored vitamins for my kids (who can't swallow the conventional ones\nwhole).\n \n>KEEP FOOD FOOD!  QUIT PUTTING IN JUNK!\n \nHow do you define \"junk\"?  Is putting \"salt\" in food bad?  What about\nPepper?  What about alcohol as a preservative?  What about sealing jars\nwith wax?  What about vinegar?  You seem to think that \"chemicals\" are\nsomehow different than \"food\".  The fact is that all foods are 100% chemicals.\nYou are just expressing an irrational prejudice against food processing.\n \n--Brian\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10122, "properties": {"category": "soc.religion.christian", "text": "From: maridai@comm.mot.com (Marida Ignacio)\nSubject: Re: Every Lent He suffers to save us\nOrganization: trunking_fixed\nLines: 17\n\nCorrection:\n\n  |The story I related is one of the seven apparitions\n  |approved by our Church as worthy of belief.  It happened\n  |in La Salle, France.\n  ^^^^^^^^^^^^^^^^^^^\n\nThat should be La Salette, France, 1846.\nI must admit, geography is not my forte.\n\n  |[...]\n\n  |Once again, the Lamb succeeds.\n\n-Marida\n  \"...spreading God's words through actions...\"\n    -Mother Teresa\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10123, "properties": {"category": "rec.sport.hockey", "text": "From: rick@emma.tfbbs.wimsey.bc.ca (Rick Younie)\nSubject: stats for hockey pool\nDistribution: world\nBcc: emma!rick\nReply-To: rick@emma.tfbbs.wimsey.bc.ca\nX-Newsreader: Arn V1.00\nLines: 13\n\nI'm the keeper of the stats for a family hockey pool and I'm looking\nfor daily/weekly email servers for playoff stats.  I've connected with\nthe servers at J.Militzok@skidmore.EDU and wilson@cs.ucf.edu.  I'm\nstill sorting these two out.\n\nAre there others?  Email please as my site doesn't get this group.\n\nThanks.\n\nRick\n--\n rick@emma.panam.wimsey.bc.ca\n rick@emma.tfbbs.wimsey.bc.ca\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10124, "properties": {"category": "comp.sys.mac.hardware", "text": "From: maarten@fwi.uva.nl (Maarten Carels)\nSubject: Re: SIMM vs DRAM\nNntp-Posting-Host: mail.fwi.uva.nl\nOrganization: FWI, University of Amsterdam\nLines: 16\n\nArthur.Greene@p6.f204.n2603.z1.fidonet.org (Arthur Greene) writes:\n>Can anyone tell me what the difference is between a 256K DRAM chip and a\n>256K SIMM? I need the former (I think) to add memory to my Laserwriter\n>LS. Someone is offering to sell me 256K SIMMS he removed from an SE, but\n>I have a feeling this may not be the correct form of memory. The sockets\n>in the Laserwriter look like they want the spidery-shaped chips (there\n>are 4 sockets, each with, as I recall, 20 pins, arranged in two rows of 10).\n>Believe it or not, I've never actually seen a SIMM. Help appreciated.\nA SIMM is a small PCB with DRAM chips soldered on.\n\n--maarten\n-- \nIn real life:\tMaarten Carels\n\t\tComputer Science Department\n\t\tUniversity of Amsterdam\nemail:\t\tmaarten@fwi.uva.nl\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10125, "properties": {"category": "sci.space", "text": "From: Wales.Larrison@ofa123.fidonet.org\nSubject: Space Clipper Launch Article\nX-Sender: newtout 0.08 Feb 23 1993\nLines: 40\n\nTo All -- I thought the net would find this amusing..\n  \nFrom the March 1993 \"Aero Vision\" (The newsletter for the Employees\nof McDonnell Douglas Aerospace at Huntington Beach, California).\n  \n  SPACE CLIPPERS LAUNCHED SUCCESSFULLY\n  \n  \"On Monday, March 15 at noon, Quest Aerospace Education, Inc.\n  launched two DC-Y Space Clippers in the mall near the cafeteria.\n  The first rocket was launched by Dr. Bill Gaubatz, director and\n  SSTO program manager, and the second by Air Force Captain Ed\n  Spalding, who with Staff Sgt. Don Gisburne represents Air Force\n  Space Command, which was requested by SDIO to assess the DC-X for\n  potential military operational use.  Both rocket launches were\n  successful.  The first floated to the ground between the cafeteria\n  and Building 11, and the second landed on the roof of the\n  cafeteria.\n  \n  Quest's Space Clipper is the first flying model rocket of the\n  McDonnell Douglas DC-X.  The 1/122nd semi-scale model of the\n  McDonnell Douglas Delta Clipper has an estimated maximum altitude\n  of 300 feet.  The Space Clippers can be used in educational\n  settings to teach mathematics and science, as well as social\n  studies and other applications.  The Space Clipper is available\n  either in the $35 Space Clipper outfit, which includes everything\n  needed for three launches, or as individual rockets for $12 each.\n  Both are available through hobby shops or by calling 1-800-858-\n  7302.\"\n  \nBy the way -- this is not an endorsement to buy the product nor is\nit an advertisement to buy the product.  I make no claims about the\nproduct.  This is posted for public information only (hey, I found\nit amusing...), and is merely a repeat of what was included in the\nMDSSC Huntington Beach Newsletter.\n  \n-----------------------------------------------------------------\n Wales Larrison                         Space Technology Investor\n  \n\n--- Maximus 2.01wb\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10126, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rcrispin@watarts.uwaterloo.ca (Richard Crispin)\nSubject: Quantum Q250 hard disk\nOrganization: University of Waterloo\nLines: 24\n\nI recently aquired a Quantum Q250 harddisk. It is a 50 meg 5.25\"\nmechanism. It is SCSI. I have a few questions and a few problems. First\nthere seems to be an extra connector socket on the back that I can't\nfigure out what it is for. The address is set by some jumpers on the\nbottom so I don't think it is for that. Any ideas?\n\nSecond, it would be nice to get a hardware manual for the drive. There are\na lot of jumpers on it that we don't know what they are for.\n\nThird, I have got the drive to format. It took a while to get things to\nwork and most of it is fine for now. The formating initialy was\ntroublesome but seems to be ok. The main problem is if you do a reset on\nthe MacPlus the drive disappears. If I shut the mac off and then back on\nagian then the drive comes up fine. Any ideas.\n\nPlease reply to one of the email addresses below.\n\nThanks\n\nRichard Crispin\nDepartment of Psychology    email:rcrispin@watarts.uwaterloo.ca\nUniversity of Waterloo            psych@watserv1.uwaterloo.ca\nWaterloo, Ontario           phone:(519)888-4781  or 885-1211 ext. 4781\nCanada   N2L 3G1            fax:(519)746-8631\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10127, "properties": {"category": "comp.windows.x", "text": "From: tomk@skywalker.bocaraton.ibm.com (Thomas Chun-Hong Kok)\nSubject: Re: MOOLIT and OLIT\nOrganization: IBM Austin\nLines: 12\n\nIn article <stevedavC5y2Jz.3D7@netcom.com>, stevedav@netcom.com (Steve Davidson) writes:\n> Does anyone know the difference between MOOLIT and OLIT?  Does Sun\n> support MOOLIT?  Is MOOLIT available on Sparcstations?\n> \n\n-- \nMoOLIT (Motif/Open Look Intrinsic Toolkit allows developers to build \napplications that can switch between Motif and Open Look at run-time,\nwhile OLIT only gives you Open Look.\n\n--\nInternet: chunhong@vnet.ibm.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10128, "properties": {"category": "soc.religion.christian", "text": "From: rsteele@adam.ll.mit.edu (Rob Steele)\nSubject: Re: When are two people married in God's eyes?\nReply-To: rob@ll.mit.edu\nOrganization: MIT Lincoln Laboratory\nLines: 15\n\nI think it was Lewis who said that in a wedding, it's the principals  \nthat marry each other; the church and the state are present merely as  \nwitnesses.\n\n------------------------------------------------------------\nRob Steele                 In coming to understand anything \nMIT Lincoln Laboratory    we are rejecting the facts as they\n244 Wood St., M-203       are for us in favour of the facts\nLexington, MA  02173      as they are.    \n617/981-2575                              C.S. Lewis\n\n[This is not just Lewis -- it's a summary of standard Catholic\ntheology.  However this doesn't mean that the presence of those\nwitnesses is optional, except in odd situations like the standard\ndesert island.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10129, "properties": {"category": "comp.graphics", "text": "From: ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University)\nSubject: Re: Rumours about 3DO ???\nOrganization: University of Waikato, Hamilton, New Zealand\nLines: 52\n\nIn article <1993Apr16.212441.34125@rchland.ibm.com>, ricardo@rchland.vnet.ibm.com (Ricardo Hernandez Muchado) writes:\n> In article <1993Apr15.164940.11632@mercury.unt.edu>, Sean McMains <mcmains@unt.edu> writes:\n>\n> |>\n> |> Ricardo, the animation playback to which Lawrence was referring in an\n> |> earlier post is plain old Quicktime 1.5 with the Compact Video codec.\n> |> I've seen digitized video (some of Apple's early commercials, to be\n> |> precise) running on a Centris 650 at about 30fps very nicely (16-bit\n> |> color depth). I would expect that using the same algorithm, a RISC\n> |> processor should be able to approach full-screen full-motion animation,\n> |> though as you've implied, the processor will be taxed more with highly\n> |> dynamic material.\n>\n>\n>    Sean, I don't want to get into a 'mini-war' by what I am going to say,\n> but I have to be a little bit skeptic about the performance you are\n> claiming on the Centris, you'll see why (please, no-flames, I reserve\n> those for c.s.m.a :-) )\n>\n>    I was in Chicago in the last consumer electronics show, and Apple had a\n> booth there.  I walked by, and they were showing real-time video capture\n> using a (Radious or SuperMac?) card to digitize and make right on the spot\n> quicktime movies.  I think the quicktime they were using was the old one\n> (1.5).\n\nThat is in fact the current version (it only came out in December).\n\n>    They digitized a guy talking there in 160x2xx something.  It played back quite\n> nicely and in real time.  The guy then expanded the window (resized) to 25x by\n> 3xx (320 in y I think) and the frame rate decreased enough to notice that it\n> wasn't 30fps (or about 30fps) anymore.  It dropped to like 15 fps.  Then he\n> increased it just a bit more, and it dropped to 10<->12 fps.\n>\n>    Then I asked him what Mac he was using... He was using a Quadra (don't know\n> what model, 900?) to do it, and he was telling the guys there that the Quicktime\n> could play back at the same speed even on an LCII.\n>\n>    Well, I spoiled his claim so to say, since a 68040 Quadra Mac was having\n> a little bit of trouble.  And this wasn't even from the hardisk!  This was\n> from memory!\n\nMy test movie was created at 320*240 resolution, it wasn't being scaled up.\nScaling was a very CPU-intensive operation with the original QuickTime (1.0);\nthe current version has optimizations for ratios like 4:1 (160*120 -> 320*240),\nbut even so, I'm prepared to believe that the performance isn't as good as\nwith playing back an actual 320*240 movie. I haven't done any numerical\nmeasurements for scaled playback.\n\nLawrence D'Oliveiro                       fone: +64-7-856-2889\nComputer Services Dept                     fax: +64-7-838-4066\nUniversity of Waikato            electric mail: ldo@waikato.ac.nz\nHamilton, New Zealand    37^ 47' 26\" S, 175^ 19' 7\" E, GMT+12:00\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10130, "properties": {"category": "sci.electronics", "text": "From: Daniel.J.Stern@dartmouth.edu (Daniel J. Stern)\nSubject: Seeking info on wear on monitors \nX-Posted-From: InterNews 1.0b16@dartmouth.edu\nOrganization: Dartmouth College, Hanover, NH\nLines: 12\n\nWe are Dartmouth engineering students.We are looking for documented\ndata regarding the wear associated with turning on an off a monitor and\nhow it relates to power consumption.  Interested in a comparison\nbetween the wear on a monitor which is left on continuously and one\nwhich is turned off when not in use.  \n\nPlease personalize E-mail to: ds@Dartmouth.edu\n\nThank you,\n\nDan Stern\nOliver Weir\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10131, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: yee@nimios.eng.mcmaster.ca (Paul Yee)\nSubject: Re: Booting from B drive\nSummary: Sorry, can't be done from AMI BIOS\nNntp-Posting-Host: nimios.eng.mcmaster.ca\nOrganization: Communications Research Laboratory, McMaster University\nLines: 30\n\nIn article <khan0095.735001731@nova> khan0095@nova.gmi.edu (Mohammad Razi Khan) writes:\n>glang@slee01.srl.ford.com (Gordon Lang) writes:\n>\n>>David Weisberger (djweisbe@unix.amherst.edu) wrote:\n>>: I have a 5 1/4\" drive as drive A.  How can I make the system boot from\n>>: my 3 1/2\" B drive? \n\n[intermediate reply suggesting cable switch deleted]\n\n>\n>I have AMI bios, I have poked around the bios but haven't tried this but somewhere it says BOOT: A:;C:\n>I would assume that you could probably slip in a b:\n>althoug a.) I haven't tried it and\n>b.) don't mess with your CMOS unless you know what your doing!!\n\nI hate to burst your bubble but you cannot \"slip in a B:\" to that\nparticular AMI BIOS setting. That setting only allows you to set\nthe *boot order* of the floppy A: with respect to the primary HD C:,\ni.e., check A: first, then C: or check C:, then A:.\n\n>\n>\n>>Gordon Lang\n>--\n>Mohammad R. Khan                /    khan0095@nova.gmi.edu\n>After July '93, please send mail to  mkhan@nyx.cs.du.edu\n\nRegards,\nPaul Yee\nyee@nimios.eng.mcmaster.ca\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10132, "properties": {"category": "sci.crypt", "text": "From: yerazunis@cthulu.enet.dec.com\nSubject: Re: Hard drive security for FBI targets\nOrganization: Turing Police\nLines: 22\n\n\n>cme@ellisun.sw.stratus.com (Carl Ellison) writes:\n>For example, if I had a program on my disk which created totally random\n>files looking like encrypted messages and could demonstrate that the file\n>in question *could have been* created by that program, then my claim that\n>it was, in fact, created by that program must stand as true (since I'm\n>innocent) unless someone can prove me wrong.\n\nHMMM... that brings up a neat idea.  \n\nUnfortunately, it's SOOO neat, I think I ought to patent it.\n\nSo I can't tell you about it.\n\nSorry.  :-)\n\n\t-Bill\n\nCopyright 1993 William S. Yerazunis (aka Crah the Merciless)\nAll rights reserved, no responsibility taken.\n\n     \"I love the smell of flash powder in the morning! It smells like...like theatre\"\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10133, "properties": {"category": "alt.atheism", "text": "From: mcgoy@unicorn.acs.ttu.edu (David McGaughey)\nSubject: Re: THE POPE IS JEWISH!\nOrganization: Texas Tech University\nLines: 12\n\nwest@next02cville.wam.umd.edu (Stilgar) writes:\n> THE POPE IS JEWISH\n\nI always thought that the Pope was a bear.\n\nYou know, because of that little saying:\n\nDoes a bear shit in the woods?\nIs the Pope Catholic?\n\nThere MUST be SOME connection between those two lines!\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10134, "properties": {"category": "talk.religion.misc", "text": "From: skinner@sp94.csrd.uiuc.edu (Gregg Skinner)\nSubject: Re: Davidians and compassion\nReply-To: g-skinner@uiuc.edu\nOrganization: UIUC Center for Supercomputing Research and Development\nLines: 26\n\nsandvik@newton.apple.com (Kent Sandvik) writes:\n\n>In article <1993Apr20.143400.569@ra.royalroads.ca>, mlee@post.RoyalRoads.ca\n>(Malcolm Lee) wrote:\n>> Do you judge all Christians by the acts of those who would call\n>> themselves Christian and yet are not?  The BD's contradicted scripture\n>> in their actions.  They were NOT Christian.  Simple as that.  Perhaps\n>> you have read too much into what the media has portrayed.  Ask any\n>> true-believing Christian and you will find that they will deny any\n>> association with the BD's.  Even the 7th Day Adventists have denied any\n>> further ties with this cult, which was what they were.\n\n>Well, if they were Satanists, or followers of an obscure religion,\n>then I would be sure that Christians would in unison condemn and \n>make this to a show case.\n\nYou might be sure, but you would also be wrong.\n\n>And does not this show the dangers with religion -- in order \n>word a mind virus that will make mothers capable of letting\n>their small children burn to ashes while they scream?\n\nI suspect the answer to this question is the same as the answer to,\n\"Do not the actions of the likes of Stalin show the dangers of\natheism?\"\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10135, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: goudswaa@fraser.sfu.ca (Peter Goudswaard)\nSubject: Re: More Diamond SS 24X\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 23\n\ndil.admin@mhs.unc.edu (Dave Laudicina) writes:\n\n>Has anyone experienced a faint shadow at all resolutions using this\n>card. Is only in Windows. I have replaced card and am waiting on \n>latest drivers. Also have experienced General Protection Fault Errors\n>in WSPDPSF.DRV on Winword Tools Option menu and in WINFAX setup.\n>I had a ATI Ultra but was getting Genral Protection Fault errors\n>in an SPSS application. These card manufactures must have terrible\n>quality control to let products on the market with so many bugs.\n>What a hassle. Running on Gateway 2000 DX2/50.\n>Thx Dave L\n\nMight the problem not be with the video monitor instead?  Many of our\nmonitors, as they age, develop shadows on white and bright colors.\n\n-- \n Peter Goudswaard                  _________                     _________\n goudswaa@sfu.ca (preferred)      |         |      __/^\\__      |         |\n pgoudswa@cln.etc.bc.ca           |         |      \\     /      |         |\n pgoudswa@cue.bc.ca               |         |   _/\\_\\   /_/\\_   |         |\n                                  |         |   >           <   |         |\n \"There's no gift like the present\"         |    >_________<    |         |\n    - Goudswaard's observation    |_________|         |         |_________|\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10136, "properties": {"category": "rec.sport.baseball", "text": "From: kirsch@staff.tc.umn.edu (Dave 'Almost Cursed the Jays' Kirsch)\nSubject: Re: My Belated Predictions (NL)\nNntp-Posting-Host: staff.tc.umn.edu\nOrganization: Li'l Carlos and the Hormones\nLines: 26\n\n  Well, as long as folks are sharing their esteemed wisdom, Li'l Karnak sez:\n\n\tAL West\t\tAL East \tNL West\t\tNL East \n\t1) Chicago\t1) Toronto\t1) Atlanta\t1) St. Louis\n\t2) Texas\t2) New York\t2) Cincinnati\t2) Montreal \n\t3) Minnesota\t3) Baltimore\t3) Houston\t3) New York \n\t4) Oakland \t4) Boston\t4) Los Angeles\t4) Philadelphia\n\t5) Seattle\t5) Detroit\t5) San Diego\t5) Pittsburgh \n\t6) Kansas City\t6) Milwaukee\t6) San Fran. \t6) Chicago \n\t7) California\t7) Cleveland\t7) Colorado\t7) Florida \n\n  Details to follow later. Pick it apart as you like. \n\n  Also, if anyone is still taking entries for prediction pools/contests,\ncould you snag mine and add it to the list? Thanks. \n\n  I'm just glad it's opening day; makes up a little bit for the gloom/doom\nweather patterns here. \n\n  Lundy, \n\n-- \nDave Hung Like a Jim Acker Slider Kirsch      Blue Jays - Do it again in '93 \nkirsch@staff.tc.umn.edu                        New .. quotes out of context!\n\"Not to beat a dead horse, but it's been a couple o' weeks .. this \n disappoints me..punishments..discharges..jackhammering..\" - Stephen Lawrence \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10137, "properties": {"category": "talk.politics.misc", "text": "From: cjp+@pitt.edu (Casimir J Palowitch)\nSubject: Re: CLINTON: President's Trip to Pittsburg [sic]\nOrganization: University of Pittsburgh\nLines: 37\n\nIn article <1ql6bgINNklu@life.ai.mit.edu> Clinton-HQ@Campaign92.Org (Clinton/Gore '92) writes:\n\n>                 STATEMENT BY THE PRESS SECRETARY\n\n>     The President will travel to Pittsburgh on Saturday, April \n>17 to talk about his job creation plan and its impact on the \n>state of Pennsylvania, where it would create as many as 3,818\n\t\t\t\t ^^^^^                   ^^^^^\n*Would*? Ha Haaaa Haa ha haAA\n\nHow the hell can they come up with a number, specified to the units\ncolumn, on something as complicated as this?\n\nFace it, it's the perceptions that matter here, folks, not the facts.\nEspecially this one:\n \n>full time jobs and up to 21,240 summer jobs.  He will make a \n\t\t\t  ^^^^^^^^^^^^^^^^^^\n\nAccording to the Pittsburgh Post-Gazette, that means over 7200 new jobs\nfor Allegheny county (metro Pgh) alone!\n\nHaaaa   HAAA ha HA HAAA heh heh  HAAAA  <snif>\n\nDoing what?  I hope it's fixing the potholes on my street. \n\nLet's face it, folks, we're in a depression and this is the WPA.\n\nClinton's really coming here to beat on Sen. Arlen Specter, who happens\nto be vacationing in Africa (Don't know whether to laugh or cry)\n\n\n-- \n** Casimir J. (Casey) Palowitch  -  In 1996, there will be two kinds  **\n**      Slavic Cataloger         -  of computer professional : those  **\n**  U. of Pgh. Library Systems   -    who know NeXTStep, and those    **\n**       cjp+@pitt.edu           -              without Jobs.         **\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10138, "properties": {"category": "sci.med", "text": "From: pk115050@wvnvms.wvnet.edu\nSubject: HELP for Kidney Stones ..............\nOrganization: West Virginia Network for Educational Telecomputing\nLines: 11\n\nMy girlfriend is in pain from kidney stones. She says that because she has no\nmedical insurance, she cannot get them removed.\n\nMy question: Is there any way she can treat them herself, or at least mitigate\ntheir effects? Any help is deeply appreciated. (Advice, referral to literature,\netc...)\n\nThank you,\n\nDave Carvell\npk115050@wvnvms.wvnet.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10139, "properties": {"category": "talk.politics.guns", "text": "From: ndallen@r-node.hub.org (Nigel Allen)\nSubject: WACO: Clinton press conference, part 2\nOrganization: R-node Public Access Unix - 1 416 249 5366\nLines: 99\n\nHere is a press release from the White House.\n\n President Clinton's Remarks On Waco With Q/A\n To: National Desk\n Contact: White House Office of the Press Secretary, 202-456-2100\n\n   WASHINGTON, April 20 /U.S. Newswire/ -- Following are\nremarks by President Clinton in a question and answer session\nwith the press (Part 2 of 2):\n\n     Go ahead, Sarah.\n\n     Q  There are two questions I want to ask you.  The\nfirst is, I think that they knew very well that the children did not\nhave gas masks while the adults did, so the children had no chance\nbecause this gas was very -- she said it was not lethal, but it was\nvery dangerous to the children and they could not have survived\nwithout gas masks.  And on February 28th -- let's go back -- didn't\nthose people have a right to practice their religion?\n\n     THE PRESIDENT:  They were not just practicing their\nreligion, they were -- the Treasury Department believed that they had\nviolated federal laws, any number of them.\n\n     Q  What federal laws --\n\n     THE PRESIDENT:  Let me go back and answer -- I can't\nanswer the question about the gas masks, except to tell you that the\nwhole purpose of using the tear gas was that it had been tested; they\nwere convinced that it wouldn't kill either a child or an adult but\nit would force anybody that breathed it to run outside.  And one of\nthe things that I've heard -- I don't want to get into the details of\nthis because I don't know -- but one of the things that they were\nspeculating about today was that the wind was blowing so fast that\nthe windows might have been opened and some of the gas might have\nescaped and that may be why it didn't have the desired effect.\n\n     They also knew, Sarah, that there was an underground\ncompound -- a bus buried underground where the children could be\nsent.  And they were -- I think they were hoping very much that if\nthe children were not released immediately outside that the humane\nthing would be done and that the children would be sent someplace\nwhere they could be protected.\n\n     In terms of the gas masks themselves, I learned\nyesterday -- I did not ask this fact question before -- that the gas\nwas supposed to stay active in the compound longer than the gas masks\nthemselves were to work.  So that it was thought that even if they\nall had gas masks, that eventually the gas would force them out in a\nnonviolent, nonshooting circumstance.\n\n     MS. MYERS:  Last question.\n\n     Q  Mr. President, why are you still saying that --\n\n     Q  Could you tell us whether or not you ever asked\nJanet Reno about the possibility of a mass suicide?  And when you\nlearned about the actual fire and explosion what went through your\nmind during those horrendous moments?\n\n     THE PRESIDENT:  What I asked Janet Reno is if they had\nconsidered all the worse things that could happen.  And she said --\nand, of course, the whole issue of suicide had been raised in the\npublic -- he had -- that had been debated anyway.  And she said that\nthe people who were most knowledgeable  about these kinds of issues\nconcluded that there was no greater risk of that now than there would\nbe tomorrow or the next day or the day after that or at anytime in\nthe future.  That was the judgment they made.  Whether they were\nright or wrong, of course, we will never know.\n\n     What happened when I saw the fire, when I saw the\nbuilding burning?  I was sick.  I felt terrible.  And my immediate\nconcern was whether the children had gotten out and whether they were\nescaping or whether they were inside, trying to burn themselves up.\nThat's the first thing I wanted to know.\n\n     Thank you.\n\n     Q  Mr. President, why are you still saying it was a\nJanet Reno decision?  Isn't it, in the end, your decision?\n\n     THE PRESIDENT:  Well, what I'm saying is that I didn't\nhave a four- or five-hour, detailed briefing from the FBI.  I didn't\ngo over every strategic part of it.  It is a decision for which I\ntake responsibility.  I'm the President of the United States and I\nsigned off on the general decision and giving her the authority to\nmake the last call.  When I talked to her on Sunday, some time had\nelapsed.  She might have made a decision to change her mind.  I said,\nif you decide to go forward with this tomorrow, I will support you.\nAnd I do support her.\n\n     She is not ultimately responsible to the American\npeople; I am.  But I think she has conducted her duties in an\nappropriate fashion and she has dealt with this situation I think as\nwell as she could have.\n\n     Thank you.  (Applause.)\n\n -30-\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10140, "properties": {"category": "misc.forsale", "text": "From: berger@c4west.eds.com (Damien Berger)\nSubject: Saturn For Sale\nSummary: 1992 Saturn SL2 5spd\nKeywords: auto, saturn\nNntp-Posting-Host: molokai\nOrganization: EDS C4 West\nLines: 14\n\n1992 Saturn SL2 \n\n5spd  23K miles\n\nAC, cruise, ABS, Air Bag, Cassette, Anti Theft\n\nExcellent\n\n12,000/obo\n\nConsider 85-88 4dr 5spd compact as part trade\n\nDamien Berger\nberger@ug.eds.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10141, "properties": {"category": "talk.religion.misc", "text": "From: sieferme@stein.u.washington.edu (Eric Sieferman)\nSubject: Re: 14 Apr 93   God's Promise in 1 John 1: 7\nOrganization: University of Washington, Seattle\nLines: 26\nNNTP-Posting-Host: stein.u.washington.edu\n\nIn article <f1VMPxk@quack.kfu.com> pharvey@quack.kfu.com (Paul Harvey) writes:\n>In article <bskendigC5H4o3.D5p@netcom.com> \n>bskendig@netcom.com (Brian Kendig) writes:\n>>psyrobtw@ubvmsb.cc.buffalo.edu (Robert Weiss) writes:\n>>>\tBut if we walk in the light,\n>>>\tas he is in the light,\n>>>\twe have fellowship one with another,\n>>>\tand the blood of Jesus Christ his Son\n>>>\tcleanseth us from all sin.\n>>\tIt can not be a light which cleanses\n>>\tif it is tainted with the blood\n>>\tof an innocent man.\n>\n>Human blood sacrifice! Martyrdom of an innocent virgin! \"Nailed\" to a\n>wooden pole! What is this obsession with male menstruation?\n\nChristian:  washed in the blood of the lamb.\nMithraist:  washed in the blood of the bull.\n\nIf anyone in .netland is in the process of devising a new religion,\ndo not use the lamb or the bull, because they have already been\nreserved.  Please choose another animal, preferably one not\non the Endangered Species List.  \n\nThank you.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10142, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: was:Go Hezbollah!\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 92\n\nIn article <1993Apr17.153728.12152@ncsu.edu> hernlem@chess.ncsu.edu \n(Brad Hernlem) writes:\n>\n>In article <2BCF287A.25524@news.service.uci.edu>, tclock@orion.oac.uci.edu \n(Tim Clock) writes:\n>|\n>|> \"Assuming\"? Also: come on, Brad. If we are going to get anywhere in \n>|> this (or any) discussion, it doesn't help to bring up elements I never \n>|> addressed, *nor commented on in any way*. I made no comment on who is \n>|> \"right\" or who is \"wrong\", only that civilians ARE being used as cover \n>|> and that, having been placed \"in between\" the Israelis and the guerillas,\n>|> they *will* be injured as both parties continue their fight.\n>\n>Pardon me Tim, but I do not see how it can be possible for the IDF to fail\n>to detect the presence of those responsible for planting the bomb which\n>killed the three IDF troops and then later know the exact number and \n>whereabouts of all of them. Several villages were shelled. How could the IDF\n>possibly have known that there were guerrillas in each of the targetted\n>villages? You see, it was an arbitrary act of \"retaliation\".\n>\nI will again *repeat* my statement: 1) I *do not* condone these \n*indiscriminate* Israeli acts (nor have I *ever*, 2) If the villagers do not know who these \"guerillas\" are (which you stated earlier), how do you expect the\nIsraelis to know? It is **very** difficult to \"identify\" who they are (this\n*is why* the \"guerillas\" prefer to lose themselves in the general population \nby dressing the same, acting the same, etc.).\n>\n>|> The \"host\" Arab state did little/nothing to try and stop these attacks \n>|> from its side of the border with Israel \n>\n>The problem, Tim, is that the original reason for the invasion was Palestinian\n>attacks on Israel, NOT Lebanese attacks. \n>\nI agree; but, because Lebanon was either unwilling or unable to stop these\nattacks from its territory should Israel simply sit quietly and accept its\nsituation? Israel asked the Lebanese government over and over to control\nthis \"third party state\" within Lebanese territory and the attacks kept\noccuring. At **what point** does Israel (or ANY state) have the right to do\nsomething ITSELF to stop such attacks? Never?\n>|> >\n>|> While the \"major armaments\" (those allowing people to wage \"civil wars\")\n>|> have been removed, the weapons needed to cross-border attacks still\n>|> remain to some extent. Rocket attacks still continue, and \"commando\"\n>|> raids only require a few easily concealed weapons and a refined disregard\n>|> for human life (yours of that of others). Such attacks also continue.\n>\n>Yes, I am afraid that what you say is true but that still does not justify\n>occupying your neighbor's land. Israel must resolve its disputes with the\n>native Palestinians if it wants peace from such attacks.\n>\nIt is also the responsibility of *any* state to NOT ALLOW *any* outside\nparty to use its territory for attacks on a neighboring state. If 1) Angola\nhad the power, and 2) South Africa refused (or couldn't) stop anti-Angolan\nguerillas based on SA soil from attacking Angola, and 3) South Africa\nrefused to have UN troops stationed on its territory between it and Angola,\nwould Angola be justified in entering SA? If not, are you saying that\nAngola HAD to accept the situation, do NOTHING and absorb the attacks?\n>|> \n>|> Bat guano. The situation you call for existed in the 1970s and attacks\n>|> were commonplace.\n>\n>Not true. Lebanese were not attacking Israel in the 1970s. With a strong\n>Lebanese government (free from Syrian and Israeli interference) I believe\n>that the border could be adequately patrolled. The Palestinian heavy\n>weapons have been siezed in past years and I do not see as significant a\n>threat as once existed.\n>\nI refered above *at all times* to the Palestinian attacks on Israel from\nLebanese soil, NOT to Lebanese attacks on Israel. \n\nOne hopes that a Lebanese government will be strong enough to patrol its \nborder but there is NO reason to believe it will be any stronger. WHAT HAS \nCHANGED is that the PLO was largely *driven out* of Lebanon (not by the \nLebanese, not by Syria) and THAT is by far the most important making it \nEASIER to control future Palestinian attacks from Lebanese soil. That\n**change** was brought about by Israeli action; the PLO would *never*\nhave been ejected by Lebanese, Arab state or UN actions. \n>\n>Please, Tim, don't fall into the trap of treating Lebanese and Palestinians\n>as all part of the same group. There are too many who think all Arabs or all\n>Muslims are the same. Too many times I have seen people support the bombing\n>of Palestinian camps in \"retaliation\" for an IDF death at the hands of the\n>Lebanese Resistance or the shelling of Lebanese villages in \"retaliation\" for\n>a Palestinian attack. \n>|>\nI fully recognize that the Lebanese do NOT WANT to be \"used\" by EITHER side,\nand have been (and continue to be). But the most fundamental issue is that\nif a state cannot control its borders and make REAL efforts to do so, it\nshould expect others to do it for them. Hopefully that \"other\" will be\nthe UN but it is (as we see in its cowardice regarding Bosnia) weak.\n\nTim \n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10143, "properties": {"category": "rec.sport.baseball", "text": "From: moakler@romulus.rutgers.edu (bam!)\nSubject: The Bob Dylan Baseball Abstract\nDistribution: na\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 49\n\n\nJust a little something I found while reading the Village Voice, which\nis not noted for its sports coverage, but occasionally the print some\ninteresting features.  This year, the predictions/team analyses for\nthe 1993 season were presented in the form of Bob Dylan lyrics.  I\ndon't have the article in front of me, so I'll only give the memorable\nones here that I remember and know the melody to.  I could dig up more\nif there is interest.\n\nYankess (to the tune of \"Subterranean Homesick Blues\")\n\nHowe is in the basement, mixing up the medicine.\nGeorge is on the pavement thinking 'bout the government.\nWade Boggs in a trench coat, bat out, paid off,\nSays he's got a bad back, wants to get it laid off.\nLook out kids, it's somethin' you did.\nDon't know when, but it's Columbus again.\n\nMets (to the tune of \"Like a Rolling Stone\")\n\nOnce upon a time you played so fine\nyou threw away Dykstra before his prime, didn't you?\nPeople said \"Beware Cone, he's bound to roam\"\nBut you thought they were just kidding you.\nYou used to laugh about, \nThe Strawberry that was headin' out.\nBut now you don't talk so loud,\nNow you don't seem so proud,\nAbout having to shop Vince Coleman for your next deal....\n\nPhillies (to the tune of \"Highway 61\")\n\nWell Daulton and Dykstra should have some fun,\nJust keep them off of Highway 61!\n\nGiants (to the tune of \"The Ballad of Rubin 'Hurricane' Carter\")\n\nThis is the story of the Magowan,\nThe man St. Petersburg came to pan,\nFor something that he never done,\nHe sits in the owner's box but one...\nDay he could have been the Tampian of the world!\n\n_______________________________________________________________________________\nBill Moakler\t\t |\tLPO 10280        |\t!RUTGERS ANIME!\nmoakler@remus.rutgers.edu|      PO BOX 5064      |  !ATLANTIC ANIME ALLIANCE!\n(908)-932-3465     \t |New Brunswick, NJ 08903|      !CHIBI-CON '93!\n-------------------------------------------------------------------------------\n           \t     I am not an OTAKU; I am a FREE MAN!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10144, "properties": {"category": "sci.electronics", "text": "From: mycal@NetAcsys.com (Mycal)\nSubject: Need to find out number to a phone line \nDistribution: world\nOrganization: ACSYS, Inc.\nLines: 14\n\n\ntry comp.dcom -  I was reading a thread a while back about an 800 number\nthat you could dial.  worked here.  It was a sales line for sprint I think\ntelling you that you could have all your customers numbers using there\nANI, then it told you your number.  Should work with any modern switch.\n\nmycal\n\n\n---------------------------------------------------------------------------\nPGP key on request.       mycal@netacsys.com\n                                                              \\ //\nMycal's way of skiing moguls:                                 // \\\nturn, turn, turn, air, survive, survive, survive...     No Risk, No Rush\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.476+0000", "event": "documents", "entityId": 10145, "properties": {"category": "sci.crypt", "text": "Subject: Re: Don't fight Clipper Chip, subvert or replace it !\nFrom: steiner@jupiter.cse.utoledo.edu (Jason 'Think!' Steiner)\nDistribution: na\nNntp-Posting-Host: jupiter.cse.utoledo.edu\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 25\n\nMarc Thibault (marc@tanda.isis.org) writes:\n> (The Jester) writes: \n\n> > Proof Windows is a Virus:It is very widespread, It eats up your disk\n> > space, It slows down your computer, It takes control over your\n> > computer, It performs disk access at random times, It displays silly\n> > messages on your screen, It randomly crashes the computer-Vesselin\n\n>         This sounds like a version Unix. Solaris?\n\nas someone who just lived through a switch from SunOS4.x.x. to\nSolaris, i'll heartily agree with this. \n\nObCrypt: one of my main gripes with Solaris is its braindead mailx,\nwhich is -almost- enough like mail to get you hoping, but crashes\nhorribly when you try to do anything useful with it. (like use pgp-\ncapable sendmail replacements.)\n\njason\n\n--\n   \"I stood up on my van. I yelled, `Excuse me, sir. Ain't nothing wrong\n    with this country that a few plastic explosives won't cure!'\"\n              - Steve Taylor, I Blew Up the Clinic Real Good\n`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,` steiner@jupiter.cse.utoledo.edu `,`,`,`\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10146, "properties": {"category": "comp.windows.x", "text": "From: mitch@unidata.ucar.edu (Mitch Baltuch)\nSubject: motif based graphing package\nOrganization: University Corporation for Atmospheric Research (UCAR)\nDistribution: na\nLines: 15\n\n\ni am in need of a motif-based graphing package to integrate into a large\nsoftware package under development for distribution to universities.  it\ncan be either public domain or commercial, although a commercial package\ncan't have royalties required for binary only distribution.  we need 2-d\ngraphing capabilities at a minimum, but 3-d  would be nice.  any info would\nbe appreciated and i will summarize if there is interest.\n\nthanks,\nmitch\n--\n_______________________________________________________________________________\nMitchell S. Baltuch\t\t\t\t\tUnidata Program Center\nmitch@unidata.ucar.edu\t\t\t\t\tUCAR, PO Box 3000\n303/497-8652\t\t\t\t\t\tBoulder, CO 80307-3000\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10147, "properties": {"category": "rec.sport.hockey", "text": "From: euatno@eua.ericsson.se (Tomas Nopp)\nSubject: Re: Too Many Europeans in NHL\nNntp-Posting-Host: euas27c42.eua.ericsson.se\nNntp-Posting-User: euatno\nOrganization: Ellemtel Telecom Systems Labs, Stockholm, Sweden\nLines: 78\n\nrauser@fraser.sfu.ca (Richard John Rauser) writes:\n\n\n\n>   Ten years ago, the number of Europeans in the NHL was roughly a quarter\n>of what it is now. Going into the 1992/93 season, the numbers of Euros on\n>NHL teams have escalated to the following stats:\n\n>Canadians: 400\n>Americans: 100\n>Europeans: 100\n\n>   Please note that these numbers are rounded off, and taken from the top\n>25 players on each of the 24 teams. My source is the Vancouver Sun.\n\n>   Here's the point: there are far too many Europeans in the NHL. I am sick\n>of watching a game between an American and a Canadian team (let's say, the\n>Red Wings and the Canucks) and seeing names like \"Bure\" \"Konstantinov\" and\n>\"Borshevshky\". Is this North America or isn't it? Toronto, Detriot, Quebec,\n>and Edmonton are particularly annoying, but the numbers of Euros on other\n>teams is getting worse as well. \n\nIs the answer as simple as that you dislike russians???\n\n>    I live in Vancouver and if I hear one more word about \"Pavel Bure, the\n>Russian Rocket\" I will completely throw up. As it is now, every time I see\n>the Canucks play I keep hoping someone will cross-check Bure into the \n>plexiglass so hard they have to carry him out on a stretcher. (By the way, \n>I'm not a Canucks fan to begin with ;-). \n\n>Okay, the stretcher remark was a little carried away. But the point is that\n>I resent NHL owners drafting all these Europeans INSTEAD of Canadians (and\n>some Americans). It denies young Canadians the opportunity to play in THEIR\n>NORTH AMERICAN LEAGUE and instead gives it to Europeans, who aren't even\n>better hockey players. It's all hype. This \"European mystique\" is sickening,\n>but until NHL owners get over it, Canadian and American players will continue\n>to have to fight harder to get drafted into their own league.\n\n>    With the numbers of Euros in the NHL escalating, the problem is clearly\n>only getting worse.\n\nAnd where would canadian hockey be today without the europeans?? Dont say\nthat the european influence on the league has been all bad for the game.\nI mean, look at the way you play these days. Less fights and more hockey.\nImho, canadian hockey has had a positive curve of development since the\n70's when the game was more brute than beauty......\n\n>    I'm all for the creation of a European Hockey League, and let the Bures\n>and Selannes of the world play on their own continent.\n\nOh, look!! You don't like Finns either....\n\n>    I just don't want them on mine.\nToo bad almost all of you northamericans originates from europe.....\n\nHmmm... And what kind of a name is Rauser. Doesn't sound very \"canadian\" to\nme. ;-)\n\nPS. When analyzing teams like Italy, France and Great Britain you find that\na lot of their players are \"Canadians\" with double citizenship... DS\n> \n> \n>-- \n>Richard J. Rauser        \"You have no idea what you're doing.\"\n>rauser@sfu.ca            \"Oh, don't worry about that. We're professional\n>WNI                          outlaws - we do this for a living.\"\n>-----------------\n>\"Remember, no matter where you go, there you are.\" -Dr.Banzai\n         _________________       __________\n          /         _  ,     /l /\n        _/__()_/))_(/_/)_  _/ L/_()_/)_/)_\n                                   /  /\n********************************************************************\n* Tomas Nopp                    Tel   : +46 8 727 33 24            *\n* Ellemtel Telecom Systems Labs Fax   : +46 8 647 80 59            *\n* Box 1505                      Email : Tomas.Nopp@eua.ericsson.se *\n* S-125 25 ALVSJO       <------ Snailmail                          *\n********************************************************************\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10148, "properties": {"category": "comp.graphics", "text": "From: S_BRAUN@IRAV19.ira.uka.de (Thomas Braun)\nSubject: sources for shading wanted\nOrganization: University of Karlsruhe, FRG\nLines: 22\nDistribution: world\nNNTP-Posting-Host: irav19.ira.uka.de\nX-News-Reader: VMS NEWS 1.25\n\nI'm looking for shading methods and algorithms.\nPlease let me know if you know where to get source codes for that.\n\nThanks a lot!\n\nThomas\n\n\n+-----------------------------------------------------------------------------+\n|                   Thomas Braun, Universitaet Karlsruhe                      |\n|                    E-Mail : S_BRAUN@iravcl.ira.uka.de                       |\n+-----------------------------------------------------------------------------+\n \n\n+----------------------------------------------------------------------------+\n|  \\_\\_\\_\\_\\_ \\_\\_\\_     Thomas Braun                                        |\n|       \\_     \\_   \\_    University Karlsruhe, Germany                      |\n|        \\_     \\_\\_\\_     email:                                            |\n|         \\_     \\_   \\_    - S_Braun@iravcl.ira.uka.de                      |\n|          \\_     \\_\\_\\_     - UKAY@dkauni2.bitnet                           |\n+----------------------------------------------------------------------------+\n                         \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10149, "properties": {"category": "rec.sport.baseball", "text": "From: VB30@lafibm.lafayette.edu (VB30)\nSubject: Jewish Baseball Players?\nOrganization: Lafayette College\nLines: 10\nOriginator: news@lafcol\nNntp-Posting-Host: lafibm\n\nJust wondering.  A friend and I were talking the other day, and\nwe were (for some reason) trying to come up with names of Jewish\nbaseball players, past and present.  We weren't able to come up\nwith much, except for Sandy Koufax, (somebody) Stankowitz, and\nmaybe John Lowenstein.  Can anyone come up with any more.  I know\nit sounds pretty lame to be racking our brains over this, but\nhumor us.  Thanks for your help.\n\nThanks.\nBobby\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10150, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Stratus Computer, Inc.\nLines: 22\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\nKeywords: Nata thing !!\n\nIn article <1993Apr20.143255.12711@mcs.kent.edu>, mhamilto@Nimitz.mcs.kent.edu (The Lawnmowerman) writes:\n\n> > THIS IS GENOCIDAL MASS-SLAUGHTER OF INNOCENT PEOPLE, INCLUDING CHILDREN!\n\n> Is this guy serious????\n\n> If he would ever really pay attention to the news (oops I forgot that the media\n>    for the most part loves to jump right on top of a story before all the facts \n>    are known, as well as to manipulate what we see and thus what we believe). \n\n>    Besides, a majority of \n>    these children were children that he was supposed to have been the father of,\n>    this then makes them bastard children to a sacraligious zeloit (sp). \n\nOh, then, I guess that shooting THOSE kind of babies is all right.\n\nYou sick bastard.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10151, "properties": {"category": "sci.med", "text": "From: texx@ossi.com (Robert \"Texx\" Woodworth)\nSubject: Re: Can men get yeast infections?\nOrganization: Open Systems Solutions Inc.\nLines: 16\nDistribution: na\nNNTP-Posting-Host: nym.ossi.com\n\nnoring@netcom.com (Jon Noring) writes:\n\n>In article Tammy.Vandenboom@launchpad.unc.edu (Tammy Vandenboom) writes:\n\n>>Here's a potentially stupid question to possibly the wrong news group, but. .\n>>\n>>Can men get yeast infections? Spread them? What kind of symptoms?\n>>Similar as women's?  I have a yeast infection and my husband (who is a\n>>natural paranoid on a good day) is sure he's gonna catch it and keeps\n>>asking me what it's like.  I'm not sure what his symptoms would be. . \n\n>The answer is yes and no.  I'm sure others on sci.med can expand on this.\n\nRecently someone posted an account of this.\nUnfortunately it was posted to alt.tasteless so the gross details were emphasized\ninstead of th e actual scientific facts.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10152, "properties": {"category": "misc.forsale", "text": "From: dwf@kepler.unh.edu (Dennis W Fitanides)\nSubject: 2400 baud External modem $25 (mint)\nOrganization: University of New Hampshire  -  Durham, NH\nLines: 3\nDistribution: usa\nNNTP-Posting-Host: kepler.unh.edu\n\n\nbox, manual, phonecord    $25 + shipping\nDennis\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10153, "properties": {"category": "talk.politics.guns", "text": "From: lwb@cs.utexas.edu (Lance W. Bledsoe)\nSubject: Re: ATF suspects drug lab in compound\nOrganization: CS Dept, University of Texas at Austin\nLines: 24\nNNTP-Posting-Host: im4u.cs.utexas.edu\n\n>In article <1993Mar28.180629.21574@mnemosyne.cs.du.edu> rcanders@nyx.cs.du.edu (Mr. Nice Guy) writes:\n>>A Associated Press News story 3/28/93 reports:\n>> \n>>\"    In other developments Saturday, David Troy, intelligence chief for\n>>the ATF, confirmed reports that authorities suspected the cult had a\n>>methamphetamine lab.  He said evidence of possible drug activity\n>>surfaced late in the ATF' investigation of the cult's gun dealings.\n\nWow, the scope of the mission of the ATF continues to expand.  Besides\nAlcohol, Tobacco, and Firearms, they now seem to be involded in Child\nProtective Services, Drug Enforcement and Tax Evasion.\n\nThey look to be on the road to being the nations *boys in blue*!\nNo Knock in one hand, M-16 in the other.  Zeik-Heil!!!\n\nLance\n\n\n\n-- \n+------------------------------------------------------------------------+\n|  Lance W. Bledsoe        lwb@im4u.cs.utexas.edu        (512) 258-0112  |\n|  \"Ye shall know the TRUTH, and the TRUTH shall make you free.\"         |\n+------------------------------------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10154, "properties": {"category": "rec.sport.hockey", "text": "From: pavalin@bnr.ca (Paul Valin)\nSubject: Re: Canadiens - another Stanley Cup???\nNntp-Posting-Host: bcarm4b8\nOrganization: Bell-Northern Research Ltd.\nLines: 31\n\nIn article <1993Apr6.044045.5215@ramsey.cs.laurentian.ca>,\nmaynard@ramsey.cs.laurentian.ca (Roger Maynard) wrote:\n> \n> In <rauser.734062534@sfu.ca> rauser@fraser.sfu.ca (Richard John Rauser) writes:\n> \n>>pereira@CAM.ORG (Dean Pereira) writes:\n> \n> \n>>>\t\tWith the kind of team Montreal has now,  they can take the\n>>>cup easily.  The only problem they have right now is that everyone is\n>>>trying to steal the show and play alone.  They need some massive teamwork.\n> \n>This is known as the Savard syndrome - and we are talking Denis, not Serge.\n>No team will ever win squat with the likes of Denis Savard in their lineup.\n> \n> \n>They could tell Savard to stay home and watch the games on TV.\n\nIf life were so simple!  Savard has not played in three of the last \nfour games and they are still playing like crap.  Montreal's problems\nrun deeper than Savard (and Mouton) unfortunately; I hope they can\nget their act together before the playoffs.\n\nThe line-up in their game coming up against PittsburgH is said to be\nthe one they're likely to use for the playoffs.  Let's hope they can\nforget about the nice weather we're having and play hockey.\n--------------------------------------------------------------------\nPaul Valin                                     Tel: + 1 613 763 7394\nBell-Northern Research Ltd.                    Email: pavalin@bnr.ca\nP.O. Box 3511, Station C\nOttawa, Ontario, Canada K1Y 4H7               'only my opinions...'\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10155, "properties": {"category": "comp.graphics", "text": "From: kewe@bskewe.atr.bso.nl (Cornelis Wessels)\nSubject: Point within a polygon \nOrganization: MATHEMAGIC\nLines: 71\n\n\nIn article <1993Apr14.102007.20664@uk03.bull.co.uk> scrowe@hemel.bull.co.uk writes:\n\n  > \n  > I am looking for an algorithm to determine if a given point is bound by a \n  > polygon. Does anyone have any such code or a reference to book containing\n  > information on the subject ?\n  > \n  >                 Regards\n  > \n  >                         Simon\n  > \n/* +-------------------------------------------------------------------+\n   |                                                                   |\n   | Function    : PuntBinnenPolygoon                                  |\n   |                                                                   |\n   +-------------------------------------------------------------------+\n   |                                                                   |\n   | Auteur      : Cornelis Wessels                                    |\n   |                                                                   |\n   | Datum       : 11-01-1993                                          |\n   |                                                                   |\n   | Omschrijving: Bepaalt of de aangeboden VECTOR2D p binnen of op de |\n   |               rand van het polygoon P valt.                       |\n   |                                                                   |\n   +-------------------------------------------------------------------+\n   |                                                                   |\n   | Wijzigingen : -                                                   |\n   |                                                                   |\n   +-------------------------------------------------------------------+ */\n\nCLIBSTATUS PuntBinnenPolygoon ( POLYGOON *P, VECTOR2D *p )\n  {\n  VECTOR2D o, v, w;\n  INDEX    aantal_snijpunten, N, n;\n\n  aantal_snijpunten = 0;\n  N                 = GeefPolygoonLengte(P);\n  GeefPolygoonRandpunt ( P, N, &o );\n\n  for ( n=1; n<=N; n++ )\n    {\n    GeefPolygoonRandpunt ( P, n, &v );\n\n    if ( o.x >= p->x && v.x <  p->x ||\n\t o.x <  p->x && v.x >= p->x  )\n      {\n      w.x = p->x;\n      InterpoleerLineair ( &o, &v, &w );\n\n      if ( w.x == p->x && w.y == p->y )\n\treturn(CLIBSUCCES);\n      else if ( w.y > p->y )\n\taantal_snijpunten++;\n      }\n\n    KopieerVector2d ( &v, &o );\n    }\n\n  if ( aantal_snijpunten%2 == 0 )\n    return(CLIBERBUITEN);\n  else\n    return(CLIBSUCCES);\n  }\n\nCornelis Wessels\nKrommenoord 14\n3079 ZT  ROTTERDAM\nThe Netherlands\n+31 10 4826394\nkewe@bskewe.atr.bso.nl\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10156, "properties": {"category": "sci.crypt", "text": "From: whughes@lonestar.utsa.edu (William W. Hughes)\nSubject: Re: Tempest\nNntp-Posting-Host: lonestar.utsa.edu\nOrganization: University of Texas at San Antonio\nDistribution: na\nLines: 32\n\nIn article <1993Apr22.105915.5584@infodev.cam.ac.uk> rja14@cl.cam.ac.uk\n(Ross Anderson) writes:\n>res@colnet.cmhnet.org (Rob Stampfli) writes:\n>> Wouldn't a a second monitor of similar type scrolling gibberish and adjacent\n>> to the one being used provide reasonable resistance to tempest attacks?\n>We've got a tempest receiver in the lab here, and there's no difficulty in\n>picking up individual monitors. Their engineering tolerances are slack enough\n>that they tend to radiate on different frequencies. Even where they overlap, you\n>can discriminate because they have different line synch frequencies - you can\n>lock in on one and average the others out.\n>\n>The signals are weird in any case, with varying polarisations and all sorts\n>of interactions with the building. Just moving a folded dipole around is also\n>highly effective as a (randomised) means of switching from one monitor to\n>another,\n>\nHell, just set up a spark jammer, or some other _very_ electrically-noisy\ndevice. Or build an active Farrady cage around the room, with a \"noise\"\nsignal piped into it. While these measures will not totally mask the\nemissions of your equipment, they will provide sufficient interference to\nmake remote monitoring a chancy proposition, at best. There is, of course,\nthe consideration that these measures may (and almost cretainly will)\ncause a certain amount of interference in your own systems. It's a matter\nof balancing security versus convenience.\n\nBTW, I'm an ex-Air Force Telecommunications Systems Control Supervisor and\nTelecommunications/Cryptographic Equipment Technician.\n\n-- \n                            REMEMBER WACO!\n     Who will the government decide to murder next? Maybe you?\n[Opinions are mine; I don't care if you blame the University or the State.]\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10157, "properties": {"category": "talk.politics.mideast", "text": "From: terziogl@ee.rochester.edu (Esin Terzioglu)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: Univ of Rochester, College of Engineering and Applied Science\n\nIn article <1993Apr16.195452.21375@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n>04/16/93 1045  ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\n>\n \nErmenistan kasiniyor...\n\nLet me translate for everyone else before the public traslation service gets\ninto it\t: Armenia is getting itchy. \n\nEsin.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10158, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jmilhoan@magnus.acs.ohio-state.edu (JT)\nSubject: 2 PowerBook Questions\nArticle-I.D.: magnus.1993Apr6.215646.23800\nOrganization: The Ohio State University\nLines: 13\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\n\n\n1.  Why, or how actually, can a Powerbook have a 640 x 400 pixel\n    display, regardless if it is a 9\" or 10\", and still keep the\n    72 dpi resolution?  (I assume that it doesn't, and I don't \n    mean to imply they *all* have these dimensions)\n\n\n2.  Any info on price drops or new models (non-Duo) coming up?\n\n\n\nThanks,\nJT\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10159, "properties": {"category": "soc.religion.christian", "text": "From: cmgrawbu@eos.ncsu.edu (CHRISTOPHER M GRAWBURG)\nSubject: HELPHELP Part2\nReply-To: cmgrawbu@eos.ncsu.edu (CHRISTOPHER M GRAWBURG)\nOrganization: North Carolina State University, Project Eos\nLines: 52\n\nHello, I'm back..\n\nI would first like to thank each and every person who sent me a response (be\nit a positive or negative one). I read EVERY letter and thought about \neach one!! \n\nI got all sorts of responses, from \"marry her\" to \"have nothing ever to \ndo with her again\"\n\nThrough reading the Bible and through a lot of prayer, here is what I have\ndecided to do.\n\nI sent her a letter today. First, i told her that if she was really serious\nabout moving away from home to another state that \"I would do anything to \nget you here in NC.\" I told her that I tried to find out if there were \nany new stores planning to be built---but they wouldn't tell me.\n\nAbout her marraige comment (I'm not gonna call it a proposal, cause\nI still don't know if it was a total joke or not) I more or less said\nthat \"Marry me?? Well, get transferred to NC first and then we'll talk :) :)\"\n\nHopefully, what i said could be interpreted either way.\n\nNeedless to say, there has been a lot of praying over this...I \nhave done a lot of reading about marraige from the Bible. If\nshe was dead serious about getting married---I wouldn't do it\nyet simply b/c she is not (as far as I know to this point) a Christian.\nIt just wouldn't work w/o God in the marraige as well. I figure\nthat if God wanrs this to go through--he's kept us in touch for 10 \nyears now---he can handle one more. If God wants it to happen, it\nwill happen!\n\nShe will be in NC in June meetinf some relatives so I'll get to \nsee her...and I'll get a letter from her befoe then so I know\nmore of what to look forward to.\n\nI guess all I can do now is wait and pray. I have decided not to tell\nmy folks until I'm totally sure what is going on.\n\nI do ask that everyone that wrote me to please keep this situation\nin your prayers..\n\nFinally, I would like to thank EVERYONE who wrote in...\n\nIf you have anything else for me...I will be at this email address\nfor one week. Please tell me anyhting you want...I'm curious\nhow folks think about what i did.\n\n\nThanx\n\nChris\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10160, "properties": {"category": "misc.forsale", "text": "From: hungjenc@phakt.usc.edu (Hung-Jen Chen)\nSubject: Forsale Sony D-22 discman\nArticle-I.D.: phakt.1pqnsjINNlmd\nOrganization: University of Southern California, Los Angeles, CA\nLines: 21\nNNTP-Posting-Host: phakt.usc.edu\n\n\n                     \n      Sony D-22 portable Diskman forsale\n      \n      Good condition, flawless.\n      \n      Costomer AC adapter : 6v DC power supply ( tested 9v DC)\n       \n       * The factory adapter was tested 12v DC (AC 110v input) at the \n         time I bought it three years ago. When using it, a lot of heat \n         was generated inside the CD machine. Of course I wouldn't use \n         it to risk this baby's life. Maybe that's why so many owners \n         always complain about their portable machine going kaput after \n         a short time usage. \n\n       * 9v DC factory suggested\n      \n      LED display\n\n\n      asking $ 55  plus shipping, contact Harry if interested\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10161, "properties": {"category": "sci.med", "text": "From: sandy@nmr1.pt.cyanamid.COM (Sandy Silverman)\nSubject: Re: Barbecued foods and health risk\nIn-Reply-To: rousseaua@immunex.com's message of 19 Apr 93 13:02:13 PST\nNntp-Posting-Host: nmr1.pt.cyanamid.com\nOrganization: American Cyanamid Company\n\t<1quq1m$e8j@terminator.rs.itd.umich.edu>\n\t<1993Apr19.130213.69@immunex.com>\nLines: 8\n\nHeat shock proteins are those whose expression is induced in response to\nelevated temperature.  Some are also made when organisms are subjected to\nother stress conditions, e.g. high salt.  They have no obvious connection\nto what happens when you burn proteins.\n--\nSanford Silverman                      >Opinions expressed here are my own<\nAmerican Cyanamid  \nsandy@pt.cyanamid.com, silvermans@pt.cyanamid.com     \"Yeast is Best\"\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10162, "properties": {"category": "talk.politics.misc", "text": "From: cmort@NCoast.ORG (Christopher Morton)\nSubject: Re: AF/ATS: Red Army Fraction (RAF) communique\nReply-To: cmort@ncoast.org (Christopher Morton)\nOrganization: North Coast Public Access *NIX, Cleveland, OH\nLines: 33\n\nAs quoted from <c115184.734895755@assn119> by c115184@cs.UAlberta.CA (Merth Eric William):\n\n> \n> >In article <C4vBM1.Gs0@NCoast.ORG>, cmort@NCoast.ORG (Christopher Morton) writes:\n> \n> >|>As quoted from <C4vCtB.J1H@dscomsa.desy.de> by hallam@dscomsa.desy.de (Phill Hallam-Baker):\n> >|>\n> >|>> Isn't it wonderfull the way people can make the sadistic and indescriminate\n> >|>> murder of the Bader-Meinhof gang sound like altruism?\n> >|>\n> >|>Gee Phil, I'd remember where you are and that these people are monitoring the\n>    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> >|>net.  I'd also remember that they have about as much sense of humor as Ed\n>    ^^^\n> \n> Damn. It isn't Big Brother after all? And all this time I thought that all\n> those revolutionaries, while blowing things up and killing the odd\n> innocent person in the process, really did love all us proles. ('cause\n> _everybody knows_ that dialectical materialism will save you [even\n> if it has to get you killed first]).\n> What a fool I've been. \n\nWhat you fail to see is that in order to make a nightmarish stew of psychosis\nand repression, you have to break a few eggs.  You the evil productive \nelements in society, are those eggs....\n\nDamn the spirit, full speed ahead....\n\n-- \n===================================================================\n\"You're like a bunch of over-educated, New York jewish ACLU lawyers\nfighting to eliminate school prayer from the public schools in\nArkansas\" - Holly Silva\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10163, "properties": {"category": "sci.space", "text": "From: degroff@netcom.com (21012d)\nSubject: Re: Venus Lander for Venus Conditions.\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 8\n\n\n  I doubt there are good prospects for  a self armoring system\nfor venus surface conditions (several hundred degrees, very high\npressure of CO2, possibly sulfuric and nitric acids or oxides\nbut it is a notion to consider for outer planets rs where you might\npick up ices under less extream upper atmosphere conditions buying\ndeeper penetration.  A nice creative idea, unlikly but worthy of\nthinking about.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10164, "properties": {"category": "talk.politics.misc", "text": "From: lfoard@hopper.Virginia.EDU (Lawrence C. Foard)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 50\n\nIn article <15378@optilink.com> cramer@optilink.COM (Clayton Cramer) writes:\n>\n>\n>From the Santa Rosa (Cal.) Press-Democrat, April 15, 1993, p. B2:\n>\n>    Male sex survey: Gay activity low\n>\n>    A new natonal study on male sexual behavior, the most thorough\n>    examination of American men's sexual practices published since\n>    the Kinsey report more than four decades ago, shows about 2\n>    percent of the men surveyed had engaged in homosexual sex and\n>    1 percent considered themselves exclusively homosexual.\n>\n>    The figures on homosexuality in the study released Wednesday\n>    by the Alan Guttmacher Institute are significantly lower than\n>    the 10 percent figure that has been part of the conventional\n>    wisdom since it was published in the Kinsey report.\n\n1) So what?\n\n2) It will be interesting to see the reaction when 2.5million queers\n   gather in Washington DC. After all if there are only 6million of\n   us then this is an event unprecidented in history...\n\n>The article also contains numbers on the number of sexual partners.\n>The median number of sexual partners for all men 20-39 was 7.3.\n\nDon't forget that 25% had 20 or more partners....\n\n>Compared to the table I have already posted from Masters, Johnson,\n>and Kolodny showing male homosexual partners, it is apparent that\n>homosexual men are dramatically more promiscuous than the general\n>male population.  \n\nAnd what did this study show for number of sexual contacts for those\nwho said they where homosexual? Or is that number to inconvient for\nyou....\n\n>It's a shame that we don't have a breakdown for\n>straight men vs. gay/bi men -- that would show even more dramatically\n>how much more promiscuous gay/bi men are.\n\nFuck off\n\n-- \n------          Join the Pythagorean Reform Church!               .\n\\    /        Repent of your evil irrational numbers             . .\n \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n  \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n    \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10165, "properties": {"category": "rec.autos", "text": "From: firman@envmsa.eas.asu.edu (B B S)\nSubject: Re: VIPER\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nOrganization: Arizona State University, Tempe, AZ\nLines: 10\n\nIn article <C5JnHA.8IB@murdoch.acc.Virginia.EDU>, rmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen) writes...\n> \n>Last night I had a dream that my dad bought a Viper.\n>I took it out for a test drive, without his knowledge,\n>and had to push it all the way home just to avoid a ticket.\n>Wierd dream, I wonder what it means....\n> \nYou probably should told you dad to buy that car, than your dream might\ncome true.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10166, "properties": {"category": "comp.sys.mac.hardware", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: PDS vs. Nubus (was Re: LC III NuBus Capable?)\nNntp-Posting-Host: fnalf.fnal.gov\nOrganization: Fermi National Accelerator Laboratory\nLines: 24\n\nIn article <C5KzLs.KKB@dartvax.dartmouth.edu>, hades@coos.dartmouth.edu (Brian V. Hughes) writes:\n> mmiller@garnet.msen.com (Marvin Miller) writes:\n>>My friend recently purchased a LC III and he wants to know if there is\n>>such a demon called NuBus adapter for his PDS slot? \n\n> The LC family of Macs can only\n> use PDS cards. They are not able to use NuBus.\n\nAh, but why?  Can some technically-hip Macslinger tell us what the\ndifference is between PDS and Nubus?  \n\nIs it impossible to make a gadget that plugs into PDS and ends in a\nNubus card cage?  At least, Marvin's friend has not been able to\nlocate one and neither have I.  What is the fundamental reason for\nthis?\n\n-- \n     O~~*           /_) ' / /   /_/ '  ,   ,  ' ,_  _           \\|/\n   - ~ -~~~~~~~~~~~/_) / / /   / / / (_) (_) / / / _\\~~~~~~~~~~~zap!\n /       \\                          (_) (_)                    / | \\\n |       |     Bill Higgins   Fermi National Accelerator Laboratory\n \\       /     Bitnet:     HIGGINS@FNAL.BITNET\n   -   -       Internet:  HIGGINS@FNAL.FNAL.GOV\n     ~         SPAN/Hepnet:      43011::HIGGINS \n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.477+0000", "event": "documents", "entityId": 10167, "properties": {"category": "misc.forsale", "text": "From: rogess@sage.cc.purdue.edu (Knight)\nSubject: 41M HD FORSALE OR TRADE\nOrganization: Purdue University Computing Center\nLines: 25\n\nI have a 41M IDE HD forsale or trade.  I would like to trade it if possible.\n\nHD\n- 41M\n- IDE Westren Digital\n- No errors or bad sectors\n- 13.8ms access time\n- 855 kilobytes per second transfer rate\n- working in my computer right now.\n\nLOOKING FOR IN A TRADE MAYBE\n- SEGA Genesis\n- a pair of Sub Woffers\n- Souround Sound Stereo/Reciever\n- ANY KIND OF ELECTORNIC EQUIPMENT (IF YOU HAVE ELECTORINIC EQUIPMENT I LIKE \n                                    ALMOST ANY KIND OF COMPUTRER, CAR, OR HOME\n                                    EQUIPMENT, -- IF YOU WANT TO MAKE AN OFFER\n                                    ON A TRADE LET ME KNOW. --CD PLAYER ..ect)\n\nPlease if you are interested in a trade let me know.  \n\nemail ------ rogess@sage.cc.purdue.edu\n\n\n- \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10168, "properties": {"category": "rec.autos", "text": "From: jjmckay@ux1.cso.uiuc.edu (Jim McKay)\nSubject: Re: water in trunk of 89 Probe??\nOrganization: University of Illinois at Urbana\nLines: 37\n\ntszeto@sneezy.ts.stratus.com (Tommy Szeto) writes:\n\n>Water gradually builds up in the trunk of my friend's 89 Ford Probe.  Every\n>once in a while we would have to remove the spare and scoop out the water\n>under the plywood/carpet cover on the trunk.  I would guess this usually happens\n>after a good thunder storm.  A few Qs:\n\n>1) Is this a common problem?\n\nYes this is a common problem.  The leaks occur through the seal of the \ntaillights.  Unfortunately, Ford has this with Most Probes and does\nnot have a recall for it.  Very dissatisfying to say the least.\n\n>2) Where are the drain holes located for the hatch?\n\nThere is no drain holes that I know of.  I used a margine tub to drain it\nRegretably I waited three months as I was short cash and they wouldn't fix it\nunder warrantee.  Then I paid dearly as it messed up my electrical system\nincluding a balance/motion sensor which is located near the fuel shutoff in \nthe trunk.  This resulted in my passive restraints malfunctioning--they would\nnot retract.  So I ended up paying about $200 to have the sensor replaced; \n$90 to have the tail lights resealed (they firts replaced the hatch gasket\nwhich I insisted was not the problem so they did not charge me for that\nwhen I proved to be right.); not to mention the water damage to the \ncovers to the trunk/spare com partment and algae in the taillights.\n\nvery annoying.  Don't let the water problem go--get it fixed or you'll pay\nmore later.  Considering how common a problem it is I hope every one\ncomplains to Ford.\n\n>Thanks for any info.\n>Tom\n\n>-- \n>Tom Szeto                         \"No!  Not those peanuts!  The ones on the\n>tszeto@sneezy.ts.stratus.com       bottom....ggnuuaahuuhh\" \n>#include <disclaimer.h>            - Homer Simpson\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10169, "properties": {"category": "misc.forsale", "text": "From: moy@cae.wisc.edu (Howard Moy)\nSubject: Madison WI summer sublet\nOrganization: U of Wisconsin-Madison College of Engineering\nDistribution: uwix\nLines: 35\n\n\n\n\nDowntown FURNISHED Summer Sublet\n\n     May 15 thru Aug 15\n     Great location at:\n     215 N. Frances St.\n          & Johnson St. (Across Witte)\n          Near Nitty Gritty & Near Howard Johnson\n          Near State Street & Near South East Dorms\n          Near University Square & Near SERF\n     Two bedroom\n          Your own spacious room\n               (the larger!)\n          Laundry available\n          Parking available\n          Bathroom\n          Kitchen\n          Large Closet\n          Dual Desks\n          Just pay for electricity (~$7/month)\n\n     Asking $500 for whole summer!\n\n     Send inquiries to:\n               Howard\n               608-255-6379\n               moy@cae.wisc.edu\n\n-- \n-Howard\n_________________________________________________________\n!                    Howard Moy\t\t\t\t!\n!                  (608) 255-6379\t\t\t!\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10170, "properties": {"category": "misc.forsale", "text": "From: cse0080@desire.wright.edu (John C. Hansen)\nSubject: Borland Software for sale - CHEAP!\nOrganization:  Wright State University \nLines: 22\n\nFor Sale:\n\n\nTurbo Pascal 5.5 - all original manuals and disks:  $30 obo + shipping\n\nBorland Paradox 3.5 with tall boxed manual set & Kallista desktop - all\noriginal disks.  $50 obo + shipping\n\nBorland Paradox 4.0 - opened but never used.  All manuals & disks.\n$125 obo + shipping\n\nBorland Quattro Pro 4.0 (DOS) all manuals & disks.  $40 obo + shipping\n\nE-mail or phone if interested.\n\nJohn Hansen\n(513) 257-6084\n-- \nJohn C. Hansen\nhansen@logdis1.hq.aflc.af.mil\t\t\"... I am working on\ncse0080@wsu.bitnet\t\t\ta suitable quote...\"\ncse0080@desire.wright.edu\t\t- John Hansen\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10171, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: Re: Is it good that Jesus died?\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 110\n\nJesus:\n\n>     \"This is the verdict:  Light has come into the world, but\n>     men loved darkness instead of light because their deeds\n>     are evil.  Everyone who does evil hates the light, and will\n>     not come into the light for fear that his deeds will be \n>     exposed.\"\n\nKent Sandvik says:\n\n>It seems we are dealing with a black-and-white interpretation.\n>Brian, are you subtly accusing me of evil things because I never\n>saw the light? However, this is even more confusing because\n>I even admit that I don't like the situation where I'm not \n>informed.\n\nBlack and white.  A spade is a spade.  There is no hidden\nagenda behind this, so stop trying to look for one.   It is an\neasy and as straight forward as it reads.\n\nKent, I am not accusing you of evil things.  Jesus is accusing you.\nAnd it is not only you that He is accusing.  He is accusing everyone.\nMe, you and everyone in the world is guilty.  Whether one\nsees the light or does not seen the light has nothing to do with \nwhether we do evil things.  We do them regardless.  \n\nJesus uses the word \"men\".  I am included.  Jesus is not soloing you out.\nJesus is making a general statement about out the sad state of man.\nChristians are not immuned from doing evil things.  A Christian \nis just a person in whom the Holy Spirit indwells.  A Christian \ncan see the evil he is doing--because his evil has been brought\nout into the light.  Jesus is not saying that just because evil has been\nexposed, that the Christian will stop doing evil.  If you haven't\nseen Jesus's light, your evil deeds simply haven't been\nexposed to the His light.  You may shed some light on your\nown.  Your human spirit shines at perhaps 1 candela.  But the\nHoly Spirit shines at a Megacandela.  The Holy Spirit can\nshine light into places inside us where we didn't even know\nexisted. \n\nSo do you see Jesus's point?  Christians are not perfect.  Nonchristians\nare not perfect.  Nonchristians do not want to come into the\nLight of Jesus because they will see all the problems in their lives,\nand they will not like the sight.  It is an ugly thing to see how far\nwe have fallen from Jesus's perspective.  Do you think you want to\nknow how really ignorant you are?  Do you think Brian Kendig wants\nto know?  Do you think I want to know?  Ego verses the truth,\nwhich do you choose?\n\n>I'm watching the news about a man who saw the light, and made\n>sure that the 19 children burned to death as part of his insight\n>into the light. I don't think the world is that simple. And if \n>you act in such ways when you are enlighted, then I'm a happy\n>man and I pray I will never receive such 'light'.\n\nAnd I watched Koresh too, an imposter who thought he saw the light, \nwho made sure that the 19 children burned to death, sadly, as part\nof his delusion.  It is even sadder that the people who\ndied with him chose to die with them, and that ignorance was\ntheir downfall to death. \n\nAnd Kent, don't you bury yourself underneath a rock with an\nexcuse like bringing up Koresh--as if Koresh actually had truth in him.\nDavid Koresh was no light and no excuse for\nyou to stay away from the real Jesus Christ.  David Koresh, who\nclaimed to be Jesus, was a fraud.  It was obvious.  David Koresh\nwas born in America. Jesus was born in Bethlehem.  Koresh wasn't\neven a good imposter having missed an obvious point as that.\n\nJesus warned of such imposters in the end-times.  David\nKoresh wasn't anything new to Jesus.  Jesus told us to be\naware of imposters 2000 years ago.  \n\nSo the next time an imposter makes a scene and claims to\nbe Jesus.  Ask the obvious.  Where were you born?  Was your\nmother's name Mary?  If the Branch Davidians asked that\nsimple question, they would have labeled Koresh a liar\nright from the start.  The wouldn't have followed Koresh.\nThey wouldn't have died.  But look what happened.  Their\nignorance cost them their lives.  Their choice to be ignorant\ncost them a lot.\n\nKent, since you studied the Bible under Lutheranism, do you\nnot remember what tactic Satan used to try to tempt Jesus?  \nDid not Satan quote the Bible out of context?  Do you\nremember what tactic the serpent of Genesis used to tempt\nEve?  Did he not misquote God?  What Satan used on Eve and succeeded, \nwas the same ploy he tried on Jesus.  But in Jesus's case,\nJesus rebuked Satan back with the Bible _in_ context.  It\ndidn't work with Jesus.  \n\nDoes what Satan did to Eve in the Garden and what Satan\ntried to do with Jesus in the desert remind you of what\nKoresh did to his followers?  Who did Koresh emulate?\nWho was Koresh's teacher?  Koresh did to his followers what\nSatan did to Eve.  Did not Koresh kill his followersr?  Did\nnot Satan cause Adam and Eve to die as well?  Did not\nthe cult followers believe Koresh even though they knew\nthe real Christ was born in Bethlehem?   Did not Eve\nchoose to eat from the tree of the knowledge of good and\nevil despite knowing that it would cause her death?  God\nheld them all responsible--deceiver and the rebeller.  None \nof them had an excuse.  \n\nAs opposed to the Branch Davidians, we have a second chance.\nFollow Jesus and he will escort us to the path of eternal life.\nDon't follow Jesus, and you stand condemned already, for like\nthe Branch Davidian complex, your house is already on fire.\nSatan, Adam and Eve have already set it ablaze.   It is just\na slow burn, but it is burning nevertheless.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10172, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: DSI/USCRPAC\nLines: 39\n\nIn article <WARLORD.93Apr20175546@deathtongue.mit.edu> warlord@MIT.EDU\n(Derek Atkins) writes:\n\n\n>\n>The point here is not the specific instance of the Wiretap Chip.\n>Rather, it is like having the government telling you that they want a\n>copy of your house key, safe-deposit box keys, etc., and telling you\n>that \"they wont use them unless its totally neccessary.\"  I sure\n>wouldn't want that.  Why should encryption be any different?\n\nActually the govrnment is telling you that if you want to use their\n\"product\" the manufacturer (actually better yet, some \"trusted\" pair\nof escrow agencies) has to have the key.\n\nMost of us already are in this situation--our car makers have keys to our\ncars (or can get them quickly from the VIN  number), and I have no doubt\nthat if presented with a court order, they'd surrender copies to the\ngovernment.\n\nChances are that many locksmiths have the code numbers for house locks\nthey've installed, and in an emergency can cut keys; thus they'd also\nprovide such keys to the government pursuant to a court order.\n\nThe state has no difficulty gaining access to your safe deposit box if they\nhave a court order.\n\nBad analogy.\n\nThis is not to argue for or against the proposal, but rather better\ndistinctions are required in thinking about it than \"house key, safe-deposit\nkeys, etc.\".\n\nDavid\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10173, "properties": {"category": "talk.politics.guns", "text": "Nntp-Posting-Host: surt.ifi.uio.no\nFrom: Thomas Parsli <thomasp@ifi.uio.no>\nSubject: Re: My Gun is like my American Express Card\nIn-Reply-To: jmd@cube.handheld.com (Jim De Arras)'s message of 15 Apr 1993\n        13:08:14 GMT\nOrganization: Dept. of Informatics, University of Oslo, Norway\n        <1qjmnuINNlmd@clem.handheld.com>\nLines: 73\nOriginator: thomasp@surt.ifi.uio.no\n\n\nI HATE long postings, but this turned out to be rather lengthy....\n\n\nOverall Crime rate:\nIt fell....just like that...\n\nAcquiring weapons in Norway:\nYou can buy (almost) all kinds of weapons in Norway, BUT you must have a \npermit, and a good reason to get the permit....\nIf I would like to have a handgun, i would have to get an gun-licence from \nthe police and to be a member of a gun-club.\nThe police would check my criminal records for any SERIOUS crimes and/or\nrecords of SERIOUS mental diseases.\nNow, if a got my licence, I would have to be an active member of the gun\n-club for 6 months BEFORE I could collect my gun.\nIt's a little like getting a drivers licence isn't it ???\nYou have to prove that you CAN drive before you are allowed to...\n\nUse of guns in crimes (in Norway):\nSome crimes are commited with guns that have been in the owners 'arms'\nfor a long time, but these are rather the exeption.\nMost criminals accuire guns to use them in crimes, and mostly short \ntime befor the crime.\n\nUse of knives:\nIt IS allowed to cary knifes in public, but not in your belt or 'open'.\nYou (Americans) think it's ok to have a gun, but not to carry it open\nin public -rigth ??\n\nScandinavians ARE 'aggressive':\nWe northeners are not as hot-livered as southeners, but when we decide\nto take action we DO.\nAsk ANY historian or millitary with an knowledge of europe....\n(Or ask any German who served in Norway in WW2.....)\n\nIndividual vs masses:\nYes the individual is more important than the masses, but only to some\nextent....\nYour criminal laws are to protect the individuals who makes the masses ??\nWhat happens when the rigths of some individuals affects the rights of \nall the others ??\n\n\nThe issue:\nI believe the issue is GUNS, and gun-legislation.\nWe shouldn't mix weapons and items that can serve as one....\nIF i lived in Amerika I would probably have a gun to defend myselfe in HOME.\nBut should it have to be like that ??\nDo you think it's wise to sell guns like candy (some states do...) ??\nIf you believe it's smart/neccacery to have drivers-licence WHY do you think\nit should be free to buy guns ??\n\nDisclaim-her:\nI'm not a pacifist or anti gun. \nI would defend my home, loved ones and country, but I don't view guns as\nneccities or toys.\nI HAVE done army service, and HAVE used a variaty of weapons, but wouldn't\nwant to have one for self defence or because they 'feel good'....\n\n\n\n\n\n\n\n\tThis is not a .signature.\n\tIt's marly a computergenerated text to waste bandwith\n\tand to bring down the evil Internet.\n\n\n                        Thomas Parsli\n                        thomasp@ifi.uio.no\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10174, "properties": {"category": "rec.motorcycles", "text": "From: gharriso@hpcc01.corp.hp.com (Graeme Harrison)\nSubject: Re: r.m split (was: Re: insect impacts)\nOrganization: the HP Corporate notes server\nLines: 30\n\n/ hpcc01:rec.motorcycles / cookson@mbunix.mitre.org (Cookson) /  2:02 pm  Apr  2, 1993 /\n\nAll right people, this inane bug wibbling is just getting to much.  I\npropose we split off a new group.\nrec.motorcycles.nutrition \nto deal with the what to do with squashed bugs thread.\n\n-- \n| Dean Cookson / dcookson@mitre.org / 617 271-2714    | DoD #207  AMA #573534 |\n| The MITRE Corp. Burlington Rd., Bedford, Ma. 01730  | KotNML  /  KotB       |\n| \"If I was worried about who saw me, I'd never get   | '92 VFR750F           |\n| nekkid at all.\" -Ed Green, DoD #0111                | '88 Bianchi Limited   |\n----------\nWhat?!?!? Haven't you heard about cross-posting??!?!? Leave it intact and\nsimply ignore the basenotes and/or responses which have zero interest for\na being of your stature and discriminating taste. ;-)\n\nYesterday, while on Lonoak Rd, a wasp hit my faceshield with just\nenough force to glue it between my eyes, but not enough to kill it as\nthe legs were frantically wiggling away and I found that rather, shall\nwe say, distracting. I flicked it off and wiped off the residue at the\nnext gas stop in Greenfield. :-) BTW, Lonoak Rd leads from #25 into\nKing City although we took Metz from KC into Greenfield. \n  \n--------------------------------------------------------------------------\nGraeme Harrison, Hewlett-Packard Co., Communications Components Division,\n350 W Trimble Rd, San Jose, CA 95131 (gharriso@hpcc01.corp.hp.com) DoD#649 \n--------------------------------------------------------------------------\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10175, "properties": {"category": "comp.windows.x", "text": "From: dbrooks@osf.org (David Brooks)\nSubject: Re: Q: Colormaps with dialog shells\nOrganization: Open Software Foundation\nLines: 29\n\ndyoung@media.mit.edu (David Young) writes:\n| \n| I have an applicationShell which uses a colormap created with\n| XCreateColormap() and uses all of the colors available for my 8-bit\n| display....When I popup a dialogShell to prompt the user for\n| some input I want the XmNdialogStyle to be set to\n| XmDIALOG_PRIMARY_APPLICATION_MODAL.  The result is that if my cursor is\n| over the dialogShell I get my colormap, but if the cursor is over the\n| applicationShell (or any window other than the dialogShell) I get the\n| default colormap.  But I'd like it so that if my cursor is over _any_\n| window of my application, I get my colormap.\n\nI *think* this is correct behavior.  Remember the default\ncolormapFocusPolicy is keyboard (meaning the cmap focus follows the\nkeyboard focus).  Since the dialog is modal, mwm won't allow keyboard\nfocus onto your main shell, and so it won't allow cmap focus either.\n\nSince it sounds as though you have keyboardFocusPolicy:pointer, I\nsuggest you set colormapFocusPolicy:pointer also.  That way, the cmap\nfocus won't slavishly follow keyboard focus, but will beat its own path.\n\n(if you have keyboardFocusPolicy: explicit, you can set cmap focus\nexplicit also, but you then need a binding to f.focus_color, probably on\nMB1).\n-- \nDavid Brooks\t\t\t\t\tdbrooks@osf.org\nOpen Software Foundation\t\t\tuunet!osf.org!dbrooks\nShowres soote my foote\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10176, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: claebaur@shell.portal.com (Tony S Annese)\nSubject: Re: Windows Speaker Sound Driver\nNntp-Posting-Host: jobe\nOrganization: Portal Communications Company -- 408/973-9111 (voice) 408/973-8091 (data)\nLines: 11\n\nIn article <1993Apr19.235430.6097@mnemosyne.cs.du.edu> alee@mnemosyne.cs.du.edu (Alec Lee) writes:\n>Is there an ftp site where I can get the MS speaker sound driver?  There's\n>a \"sound.exe\" file that claims to be the driver but I'm suspicious since\n>it's not a .drv file.  \n\nThats the file...\n--\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\\nTony Annese                                    claebaur@shell.portal.com\n                                          -or- claebaur@cup.portal.com\n\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10177, "properties": {"category": "soc.religion.christian", "text": "From: ejalbert@husc3.harvard.edu\nSubject: Re: Monophysites and Mike Walker\nOrganization: Harvard University Science Center\nLines: 113\n\nIn article <May.6.00.34.58.1993.15426@geneva.rutgers.edu>, db7n+@andrew.cmu.edu (D. Andrew Byler) writes:\n>>\t\t- Mike Walker \n>> \n>>[If you are using the standard formula of fully God and fully human,\n>>that I'm not sure why you object to saying that Jesus was human.  I\n>>think the usual analysis would be that sin is not part of the basic\n>>definition of humanity.  It's a consequence of the fall.  Jesus is\n>>human, but not a fallen human.  --clh]\n> \nI differ with our moderator on this.  I thought the whole idea of God coming\ndown to earth to live as one of us \"subject to sin and death\" (as one of\nthe consecration prayers in the Book of Common Prayer (1979) puts it) was\nthat Jesus was tempted, but did not succumb.  If sin is not part of the\nbasic definition of humanity, then Jesus \"fully human\" (Nicea) would not\nbe \"subject to sin\", but then the Resurrection loses some of its meaning,\nbecause we encounter our humanity most powerfully when we sin.  To distinguish\nbetween \"human\" and \"fallen human\" makes Jesus less like one of us at the\ntime we need him most.\n\n> [These issues get mighty subtle.  When you see people saying different\n> things it's often hard to tell whether they really mean seriously\n> different things, or whether they are using different terminology.  I\n> don't think there's any question that there is a problem with\n> Nestorius, and I would agree that the saying Christ had a human form\n> without a real human nature or will is heretical.  But I'd like to be\n> a bit wary about the Copts, Armenians, etc.  Recent discussions\n> suggest that their monophysite position may not be as far from\n> orthodoxy as many had thought.  Nestorius was an extreme\n> representative of one of the two major schools of thought.  More\n> moderate representatives were regarded as orthodox, e.g. Theodore of\n> Mopsuestia.  My impression is that the modern monophysite groups\n> inherit the entire tradition, not just Nestorius' version, and that\n> some of them may have a sufficient balanced position to be regarded as\n> orthodox.  --clh]\n\nFirst, the Monophysites inherited none of Nestorius's version -- they \nwere on the opposite end of the spectrum from him.  Second, the historical\nrecord suggests that the positions attributed to Nestorius were not as\nextreme as his (successful) opponents (who wrote the conventional history)\nclaimed.  Mainly Nestorius opposed the term Theotokos for Mary, arguing\n(I think correctly) that a human could not be called Mother of God.  I mean,\nin the Athanasian Creed we talk about the Son \"uncreate\" -- surely even \nArians would concede that Jesus existed long before Mary.  Anyway, Nestorius's\nopponents claimed that by saying Mary was not Theotokos, that he claimed\nthat she only gave birth to the human nature of Jesus, which would require\ntwo seperate and distinct natures.  The argument fails though, because\nMary simply gave birth to Jesus, who preexisted her either divinely,\nif you accept \"Nestorianism\" as commonly defined, or both natures intertwined,\na la Chalcedon.\n\nSecond, I am not sure that \"Nestorianism\" is not a better alternative than\nthe orthodox view.  After all, I find it hard to believe that pre-Incarnation\nthat Jesus's human nature was in heaven; likewise post-Ascension.  I think\nrather that God came to earth and took our nature upon him.  It was a seperate\nnature, capable of being tempted as in Gethsemane (since I believe the divine\nnature could never be tempted) but in its moments of weakness the divine nature\nprevailed.\n\nComments on the above warmly appreciated.\n\nJason Albert\n\n[There may be differences in what we mean by \"subject to sin\".  The\noriginal complaint was from someone who didn't see how we could call\nJesus fully human, because he didn't sin.  I completely agree that\nJesus was subject to temptation.  I simply object to the idea that by\nnot succumbing, he is thereby not fully human.  I believe that you do\nnot have to sin in order to be human.\n\nI again apologize for confusing Nestorianism and monophysitism.  I\nagree with you, and have said elsewhere, that there's reason to think\nthat not everyone who is associated with heretical positions was in\nfact heretical.  There are scholars who maintain that Nestorius was\nnot Nestorian.  I have to confess that the first time I read some of\nthe correspondence between Nestorius and his opponents, I thought he\ngot the better of them.\n\nHowever, most scholars do believe that the work that eventually led to\nChalcedon was an advance, and that Nestorius was at the very least\n\"rash and dogmatic\" (as the editor of \"The Christological Controversy\"\nrefers to him) in rejecting all approaches other than his own.  As\nregular Usenet readers know, narrowness can be just as much an\nimpediment as being wrong.  Furthermore, he did say some things that I\nthink are problematical.  He responds to a rather mild letter from\nCyril with a flame worthy of Usenet.  In it he says \"To attribute also\nto [the Logos], in the name of [the incarnation] the characteristics\nof the flesh that has been conjoined with him ... is, my brother,\neither the work of a mind which truly errs in the fashion of the\nGreeks or that of a mind diseased with the insane heresy of Arius and\nApollinaris and the others.  Those who are thus carried away with the\nidea of this association are bound, because of it, to make the divine\nLogos have a part in being fed with milk and participate to some\ndegree in growh and stand in need of angelic assistance because of his\nfearfulness ...  These things are taken falsely when they are put off\non the deity and they become the occasion of just condemnation for us\nwho perpetrate the falsehood.\"\n\nIt's all well and good to maintain a proper distinction between\nhumanity and divinity.  But the whole concept of incarnation is based\non exactly the idea that the divine Logos does in fact have \"to some\ndegree\" a part in being born, growing up, and dying.  Of course it\nmust be understood that there's a certain indirectness in the Logos'\nparticipation in these things.  But there must be some sort of\nidentification between the divine and human, or we don't have an\nincarnation at all.  Nestorius seemed to think in black and white\nterms, and missed the sorts of nuances one needs to deal with this\narea.\n\nYou say \"I find it hard to believe that pre-Incarnation that Jesus's\nhuman nature was in heaven.\"  I don't think that's required by\northodox doctrine.  It's the divine Logos that is eternal.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10178, "properties": {"category": "comp.graphics", "text": "From: raynor@cs.scarolina.edu (Harold Brian Raynor)\nSubject: Help needed on hidden line removal\nSummary: Need help with Roberts algorithm/Hidden line removal\nKeywords: hidden line graphics 3D\nOrganization: USC  Department of Computer Science\nDistribution: comp\nLines: 20\n\n\nI am looking for some information of hidden line removal using Roberts\nalgorithm.  Something with code, or pseudo code would be especially\nhelpful.\n\nI am required to do this for a class, due Monday (we have very little\ntime to implement these changes, it is a VERY FAST paced class).  The\nnotes given in class leave a LOT to be desired, so I would vastly\nappreciate any help.\n\nActually any algorithm would be nice (Roberts or no).  The main problem\nis two objects intersecting in x and y dimensions, need to know which\nlines to clip off so that one object will appear in front of another.\n\nIf you can give me an ftp address and filename, or even the name of a\ngood book, I'd REALLY appreciate it.\n\nThanks,\nBrian Raynor\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10179, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hmarvel@magnus.acs.ohio-state.edu (Howard P Marvel)\nSubject: Re: your opinion of the LaserWriter Select 310?\nArticle-I.D.: magnus.1993Apr5.231721.1272\nOrganization: The Ohio State University\nLines: 12\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\n\n\nMy wife has one of these.  I have not had much chance to fiddle with\nit, but in comparison to our Laserwriters with Canon engines, she\ncomplains that the print is too light for her taste.  The difference\nis quite apparent even when the print setting on the Select 310 is\nadjusted to the darkest possible level.  I don't find it\nobjectionable, and indeed rather like it, but be warned that some\npeople don't care for it and it is considerably different. \n\nI recall that years ago there were lots of debates over write-black\nvs. write-white engines when dealing with TeX drivers.  Is something\nlike that going on here?\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10180, "properties": {"category": "sci.electronics", "text": "From: randall@informix.com (Randall Rhea)\nSubject: Re: Power, signal surges in home...\nOrganization: Informix Software, Inc.\nLines: 39\n\ngstovall@crchh67.NoSubdomain.NoDomain (Greg Stovall) writes:\n>Anyway, over the weekend, I was resting on the sofa (in between chores),\n>and noticed that I briefly picked up what sounded like ham radio traffic\n>over my stereo and television, even though both were off.  Also, all the\n>touch sensitive lights in my house start going wacko, cycling through \n>their four brightness states.\n\n>I presume that some ham operator with an illegal amplifier drove past\n>my house (I live on a busy thoroughfare); would this be a correct presumption?\n>What kind of power must he be putting out to cause the effects?  \n>The affected equipment is about 100 feet from the road...\n\nHams can legally run up to 1500 watts.  It is very unlikely, however,\nthat a ham would be running that kind of power from a car.  Ham rigs\nfor cars put out around 100 watts.  It is possible that a 100 watt\nradio would cause interference to consumer electronic 100 feet \naway.  Most TVs, stereos, and VCRs have very poor RF shielding.\nIf you experience the problem frequently, it may be \ncaused by a ham, CBer, or other radio operator in a base station\nnearby.    The interference may have been caused by a radio \ntransmitter used for other purposes, such as police, fire,\netc.  If you heard voices over your stereo, I think you are\ncorrect in assuming that the source is an RF transmitter.\n\nIf you have frequent trouble, you may want to try the RF ferrite\nchokes available at Radio Shack.  The interference is probably\nbeing picked up by your speaker wires, and those chokes can\nbe installed on the wires very easily (without cutting them).\nGood instructions are included with the chokes.\nIf that does not solve the problem, you may want to search your\nneighborhood for a radio operator.  Look for antennas on the roof\nor car.  Talk to him/her about your problem.  There are things\na radio operator can do to reduce interference.\n\n-- \n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nRandall Rhea                                        Informix Software, Inc. \nProject Manager, MIS Sales/Marketing Systems    uunet!pyramid!infmx!randall\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10181, "properties": {"category": "comp.windows.x", "text": "From: henne@math.ias.EDU (Leslie R. Henne)\nSubject: Re: SVR4.x binary dists (was Re: RFD: to create comp.unix.sys5.univel)\nOrganization: The Internet\nLines: 36\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert@expo.lcs.mit.edu\nCc: mouse@thunder.mcrcim.mcgill.edu\n\n\nIn article <1993Apr15.160635.28022@thunder.mcrcim.mcgill.edu>, der Mouse wrote:\n\n> You seem to be a little confused.  The socialistic hackers who yell\n> about proprietary software are hardly enamored of Motif, which is just\n> as objectionable to that mindset as NeWS is. \n\n> If I might wear my socialistic hacker hat for a moment, I tar NeWS and\n> Motif with the same brush, and that brush is not technical. \n\nBegging everyone's pardon, I was not slamming Motif, nor was I necessarily \nplugging/flaming the two.  I was responding to the sweet blithe statement in:\n <rick.734610425@digibd> from rick@digibd.digibd.com (Rick Richardson)\n\nrick> This is one area where Microsoft NT has a big advantage.  Since\nrick> they control the whole show, there are no issues like this where\nrick> licensees create incompatible defacto standards.\n\nThis happy statement shows a mindset that inventors and companies have when\nthey are pleased with something that works, and they believe that others will\nalso be happy to use it.  I remember when _SunView_ was hot stuff (and am not,\nby that statement, endorsing Sun and its products, this is just my experience),\nand when OpenWindows became hot stuff, that was when I started hearing, as\nmentioned before, the \"socialistic masses\" that were bent on destroying \n_anything_ that was deemed proprietary, including OpenWindows.  I mentioned\nMotif in the same breath, because that is what Sun has decided to turn its\nattention to, not because I hate it.  Mr. Richardson's position, I believe, is\na healthy one, and I am sure that the seething hackers will soon try to\nflame and destroy NT, if it ever shows up, wanting instead everything to be\nfree, and then complaining when there is no organized structure and there are \nno de facto standards.\n\nIt was just a vent for frustration brought on by prevailing winds.\n\nMrs. Henne\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10182, "properties": {"category": "soc.religion.christian", "text": "From: atterlep@vela.acs.oakland.edu (Cardinal Ximenez)\nSubject: Re: A question that has bee bothering me.\nOrganization: National Association for the Disorganized\nLines: 29\n\nwquinnan@sdcc13.ucsd.edu (Malcusco) writes:\n\n>\tMy problem with Science is that often it allows us to\n>assume we know what is best for ourselves.  God endowed us\n>with the ability to produce life through sexual relations,\n>for example, but He did not make that availible to everyone.\n>Does that mean that if Science can over-ride God's decision\n>through alterations, that God wills for us to have the power\n>to decide who should and should not be able to have \n>children?  Should men be allowed to have babies, if that\n>is made possible.\n\n  In a word, yes.  I don't believe that physical knowledge has a great deal of\nimpact on the power of God.  In the past, God gave us the ability to create\nlife through sexual relations.  Now, he is giving us the ability to create life\nthrough in vitro fertilization.  The difference between the two is merely \ncosmetic, and even if we gain the ability to create universes we won't begin to\napproach the glory of God.\n  The power we are being given is a test, and I am sure that in many cases we\nwill use our new abilities unwisely.  But, people have been using sexuality\nunwisely for millenia and I haven't heard an outcry to abolish it yet!\n  No matter how far we extend our dominion over the physical world, we aren't\nimpinging on God's power.  It's only when we attempt to gain control of the\nspiritual world, those things that can't be approached through science and \nlogic, that we begin to interfere with God.\n\nAlan Terlep\t\t\t\t    \"...and the scorpion says, 'it's \nOakland University, Rochester, MI\t\tin my nature.'\"\natterlep@vela.acs.oakland.edu\t\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10183, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tdbear@dvorak.amd.com (Thomas D. Barrett)\nSubject: Re: Rockwell Chipset for 14.4's ... Any good?\nOrganization: Advanced Micro Devices, Inc.; Austin, Texas\nLines: 28\n\nIn article <im14u2c.735176900@camelot> im14u2c@camelot.bradley.edu (Joe Zbiciak) writes:\n>What's the word on the chipset?  Is this a ROM bug specific \n>to a specific brand using the Rockwell, or is it the Rockwell\n>chipset itself?\n\nThere were an assortment of firmware problems, but that is pretty much\nexpected with any FAX/modem talking with a different FAX or modem\nwhich may have also been revised or is new.  I'm pretty much\noblivious to any current firmware problems, so you'll have to get it\nfrom someone else.\n\nHowever, I can tell you to stay clear of any board which uses the\nRockwell MPU (as opposed to the DPU) for an internal implementation.\nThis is because the MPU used \"speed buffering\" instead of having a\n16550 interface.  Without the 550 interface, the number of interrupts\nare still the same and thus may get dropped under multitasking\nconditions (like in windows).  As far as I know, the \"speed buffering\"\nworks OK for external modems if a 550 is used on the internal serial\nport board.\n\nHope this helps...\nTom\n\n-- \n|Tom Barrett (TDBear), Sr. Engineer|tom.barrett@amd.com|v:512-462-6856 |\n|AMD PCD MS-520 | 5900 E. Ben White|Austin, TX  78741  |f:512-462-5155 |\n|...don't take no/take hold/don't leave it to chance ---Tasmin Archer  |\n|My views are my own and may not be the same as the company of origin  |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10184, "properties": {"category": "sci.electronics", "text": "From: aj008@cleveland.Freenet.Edu (Aaron M. Barnes)\nSubject: Realistic PRO-2024 scanner for sale:was $200, sell for $150\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 45\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\n\n\nArticle 10886 of alt.radio.scanner:\nPath: usenet.ins.cwru.edu!cleveland.Freenet.Edu!aj008\nFrom: aj008@cleveland.Freenet.Edu (Aaron M. Barnes)\n>Newsgroups: alt.radio.scanner\nSubject: Realistic PRO-2024 for sale-was $200,sell for $150 obo\nDate: 20 Apr 1993 16:01:28 GMT\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 26\nMessage-ID: <1r16oo$3du@usenet.INS.CWRU.Edu>\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nHello.\n\nI have a Realistic PRO-2024 scanner for sale.Here is a small desc\nription:\n\n60 programible chanels\nfully detailed backlighted digital display\nheadphone jack\nantenna jack\nremovable telescoping antenna\nauto search\n\ncoverage:\n30-50mHz\n118-174mHz\n380-512mHz\n\nIt originally cost $200, but I will sell for $150.\n\nThank You.\n-- \n       / /     Buchanan in `96!\n      / /      Fear the goverment that fears your guns.\n  \\ \\/ /       Without the 2nd amendment, we cannot guarantee ou\n   \\/ /        r freedoms.           aj008@cleveland.freenet.edu\n-- \n       / /     Buchanan in `96!\n      / /      Fear the goverment that fears your guns.\n  \\ \\/ /       Without the 2nd amendment, we cannot guarantee ou\n   \\/ /        r freedoms.           aj008@cleveland.freenet.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10185, "properties": {"category": "comp.windows.x", "text": "From: daniels@NeoSoft.com (Brad Daniels)\nSubject: Re: iconize a running application?\nOrganization: NeoSoft Communications Services -- (713) 684-5900\nLines: 14\n\nIn article <C5IFJ0.F2u@csn.org> doomer@teal.csn.org (John Dumais) writes:\n>I've been trying to figure a way to programmatically iconize \n>an application running under a Motif window manager.  I have tried\n>several approaches includeing sending events to the application's\n>border window, but to no avail?  Anyone done this before?\n\nI tend to use XIconifyWindow to achieve this effect...  Have you tried that?\n\n- Brad\n-- \nBrad Daniels\t\t`\t|  \"If money can't buy happiness,\ndaniels@neosoft.com\t\t|   I guess I'll have to rent it.\"\nI don't work for NeoSoft, and\t|\t\t- Weird Al Yenkovic\ndon't speak for my employer.\t|\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10186, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: \"Calvin D. Swartzentruber\" <cs6t+@andrew.cmu.edu>\nSubject: ATTN: Ken Smith\nOrganization: Freshman, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 9\nNNTP-Posting-Host: po3.andrew.cmu.edu\nIn-Reply-To: <9304051540.AA03922@gumby.Altos.COM>\n\nIt is model number #7033D, a 14\" interlaced .28dp.  BTW, if you have a\nnumber to contact the company, that would really be helpful to.  Thanks\nfor replying.  I was beginning to believe that I was never going to get\na reply.  I posted this on the netnews bboard because the first message\nI sent to you was returned, and I didn't know if my second message would\nget to you.\n\nCalvin\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10187, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: wlsmith@valve.heart.rri.uwo.ca (Wayne Smith)\nSubject: Re: IDE vs SCSI\nOrganization: The John P. Robarts Research Institute, London, Ontario\nNntp-Posting-Host: valve.heart.rri.uwo.ca\nLines: 141\n\nIn article <C5LKEv.HpJ@feanor.xel.com> shaw@feanor.xel.com (Greg Shaw) writes:\n>: Why don't you start with the spec-sheet of the ISA bus first?\n>: You can quote SCSI specs till you're blue in the face, but if they\n>: exceed the ISA bus capability, then what's the point?\n>\n>Who said ISA was necessary?  EISA or VLB are the only interfaces worth\n>investing thousands of dollars (e.g. a new pc's worth of money ) in .\n\nThen don't complain (maybe it wasn't you) that SCSI was so expensive on\nPC's because all we've had until a year or two ago was the ISA bus.\n(ie no one buys SCSI for ISA because ISA is slow)\nAre you saying that SCSI on an ISA bus is not an automatic winner when\ncompared to IDE?\n\n>You didn't read to carefully.  VLB-IDE uses the same connection mechanism\n>as standard IDE.  If transfer rate is limited by IDE, whether it's\n>interfaced to ISA, EISA or VLB matters not.\n\nI get different transfer rates out of my IDE when I change my ISA bus speed.\n\n>On mine, for one thing.  SCSI blows IDE out of the water, hands down.  If\n>IDE has better throughput, why isn't it used on workstations and file\n>servers?  \n\nIDE is just a variant of the old IBM- MFM AT controller.  (at least that's\nhow it looks from a software point of view).  It was never meant to be\nan all-encompassing protocal/standard to be implimented across different\nplatforms.\n\nIs there any argument that \nIDE can (or can't) transfer data from the IDE drive at least as fast as the\ndrive is able to provide the data?  Are SCSI versions of IDE drives able\nto deliver higher sustained transfer rates to their SCSI interface (because\nof a higher RPM platter, different arrangement of heads, etc?)?\n\n>: Given the original question (SCSI used only as a single hard drive\n>: controller),  is it then necessary to get a SCSI drive that will do\n>: at least 5, maybe 10 megs/sec for the SCSI choice to make any sence?\n>: What does a 200-400 meg 5 megs/sec SCSI drive cost?\n>\n>No, that's the nice thing -- on a multitasking OS, SCSI can use both drives\n>at once.  I've got unix loaded on one of my pcs (along with windogs) and the OS can only use one of the two IDE drives at one time.  It's pretty ugly.\n\nIf data is going from one drive to another, and if SCSI has the ability to\nperform that transfer without the data having to go through the CPU or main\nmemory, then yes, that is the optimal way to do it.  As far as I know, IDE\ncan't do that.  But when the CPU wants data from both drives (data to be stored\nin main memory) are you saying that SCSI can grab data from both drives \nat the same time *and* store/transfer that data to main memory also at the\nsame time?  Working off 1 IRQ and 1 DMA channel on an ISA (or whatever) bus?\n\n>I just bought at Quantum 240 for my mac at home.  I paid $369 for it.  I\n>haven't seen IDE drives cheaper.\n\nA friend of mine just got a Maxtor 245 meg IDE drive for $320.  (that's 245\nmillion bytes, or 234 mega-bytes).  With the basic $20 interface, he gets\nclose to 1 meg/sec transfer on his 286-20.  Does your figure include a few\nhundred $$$ for SCSI drivers?\n\n>No, actually, we're talking about SCSI being expensive simply because\n>nobody did a common interface for the PC.  If they had a common (read:\n>easily implemented) method of adding scsi to a PC (like as in a Sun or\n>Mac), then you'd find SCSI the connection medium of choice.\n\nSo you're saying that SCSI would have been the default interface type,\nconsidering that the vast majority of PC's don't have cd-rom drives or\ntape backups or etc?  That most PC's only have (or had) 1 hard drive and\nrun DOS?  That SCSI hard drives cost a lot more than MFM or RLL drives\nat the time?  (and how common were SCSI drives under 80 megs 4 to 10 years\nago?)  There's a lot more than the lack of a common interface card that\nprevented SCSI from becoming the connection medium of choice.\n\n>: I won't argue that the SCSI standard makes for a good, well implimented\n>: data highway, but I still want to know why it intrinsically better\n>: (than IDE, on an ISA bus) when it comes to multi-tasking OS's when\n>: managing data from a single SCSI hard drive.\n>\n>On a single drive, SCSI is more expensive.\n\nBut on that point, is it faster?  This is what all this is about.  Do you\nget more performance for the money.  For all the people that will only have\na single hard drive in their system (regardless of the OS) will the SCSI\nchoice really give them more performance than IDE?\n\n>But, you bought your PC for\n>expandibility, so, you'd want to add more drives or whatever.\n\nTrue, but expandibility can also start on the bus, which means the option\nis there for cd-rom drives or tape backups that run off their own cards.\n\n>\t1.  You can add many different types of devices and access them \n>\tconcurrently.\n\nNo argument.  This is always held up to the first time SCSI buyer as the\nbest reason.  But how many SCSI devices will the first time SCSI buyer\neventually acquire?  Again does it make sense to go SCSI for a single\nhard drive system?\n\n>\t2.  A SCSI device works on many different machines (I have a mac\n>\tand a PC at home and moving hard drives between them is VERY nice\n>\twith SCSI -- hook them up and away they go)\n\nWith all the postings on the SCSI I or II specs, are you really sure that\nPC and Apple SCSI hard drives are compatible?  And even if they are, \nis the data accessible from either machine (ie are there no formatting/\npartitioning or file table differences?)  Is it really plug'n'play?\n\n>\t3.  SCSI devices work together better than IDE devices.  For\n>\tinstance, recently, I added an older connor 100 meg IDE to a maxtor\n>\t212 meg IDE.  The connor *MUST* be setup as the slave.  It will\n>\twork no other way.  On SCSI, you set the address, check the\n>\ttermination, plug it in, and away it goes.\n\nSo the C: drive on the connor becomes a logical D: drive to DOS.  Is this\nreally a problem?  \n\n>\t4.  I have a problem with IDE's mutual exclusion - I notice that\n>\tthe time it takes to switch from accessing drive c: to drive d: is\n>\tquite long as compared to the time it takes to switch from drive c:\n>\tto d: on a SCSI system.  Under a multitasking OS, this is very\n>\tnoticable, as many things can be going on at once.\n\nAfter having two IDE drives in my system for temporary file transfers,\nI have never seen any differences when switching between drives, nor\nhave I ever seen any differences when transfering files between drives or\nto/from the same drive.\n\n>One neat thing that I've noticed lately (a fringe benefit) has been the\n>ability to add older (almost dead) drives as storage on a SCSI system with\n>little problem -- we've got a bunch of almost dead 20 meg drives that I've\n>added to my PC.  I've now got the interface full, but, it does allow me to\n>have 4 20 meg drives, 1 240 meg drive, 1 tape drive, and 1 105 meg drive\n>all on the same card.  \n\nThat is nice (as long as the power supply can keep up).  I do believe that\nthere is the possibility for up to 4 IDE drives on a PC.\n\n>Simply put, SCSI is handier than IDE.  No mysterious jumpers to figure out.\n\nBut what about \"mysterious\" (and expensive) drivers to figure out?  At least\nIDE doesn't require drivers that consume precious conventional (DOS) memory.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.478+0000", "event": "documents", "entityId": 10188, "properties": {"category": "soc.religion.christian", "text": "From: jerryb@eskimo.com (Jerry Kaufman)\nSubject: Re: Questions from a newbie\nOrganization: -> ESKIMO NORTH (206) For-Ever <-\nLines: 27\n\nThe concept of God as a teacher is indeed interesting. Does He grade on\na curve, does He cheat? That is interesting. Not to mention thought\nprovoking. My own concept is that He is a Father and we are His\nchildren. In that He loves us, with a love that we can never understand\nuntil we are with Him. The Bible says that He looks on the heart as the\nfinal measure. From that perspective, in a grading context, the heart is\nthe final test.\nSpecifically, most Christians would agree that there is only one Heaven\nand one Hell. From that perspective, it is Heaven or Hell. You either go\nto one or the other. The \"grading\" on a pass/fail basis is done by God\nthe Father with intervention by Jesus the Son. Not by others. For only\nGod sees the heart. The Bible says of the heart, \"...who can know it.\" I\nwould say there has always been, and always be, an unchanging method.\nThat is what makes a relationship with Christ so secure. In an uncertain\nand ever changing landscape He is always the same. Yesterday, today and\ntomorrow. Concerning whether or not our childhoods are considerd as part\nof the test, my own conviction is no. Were that the case I certainly\nwouldn't be going to Heaven. The Bible speaks very plainly about the\nlove and care Jesus had for and about children. The reality is that we\nare all children. Some of us just have bigger bodies and grey hair. But\nthe Father, our Father is always there. Like most Fathers He wants only\nthe best for His own. There maybe decipline, but there is more love.\nIt's sometimes looks like Christianity is a test, to see who makes it\nand who doesn't. Those who do pass=Heaven, and those who don't go to the\nother place. But it is really much more than that...\nThere are few experts. Most of us are just travelers looking for the\nlight and the way Home. Praying that we can bring others with us.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10189, "properties": {"category": "talk.politics.guns", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: S414 (Brady bill) loopholes?\nKeywords: brady handguns s414 hr1025 hr277 instant check waiting period\nLines: 74\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\nDistribution: na\n\n\nIn article <shepardC5p2y6.GC1@netcom.com>, shepard@netcom.com (Mark Shepard) writes:\n>Hi. I've just finished reading S414, and have several questions about\n>the Brady bills (S414 and HR1025).\n\nGood!\n>\n>1. _Are_ these the current versions of the Brady bill?\n>     What is the status of these bills?  I've heard they're \"in committee\".\n>     How close is that to being made law?\n\nNot very.  Thanks to the filibuster in the Senate, things are backing up.  The\nHouse judiciary  is going to start looking at our friends from the ATF, so that\nbill will be held up a little, too.  NOTE: Things can change quickly.\n\n>\n>2. S414 and HR1025 seem fairly similar.  Are there any important\n>   differences I missed?\n>\n>3. S414 seems to have some serious loopholes:\n>  A. S414 doesn't specify an \"appeals\" process to wrongful denial during\n>     the waiting period, other than a civil lawsuit(?)  (S414 has an appeals\n>     process once the required instant background check system is established,\n>     but not before).\n\nI thought there was a correction process in both bills for both parts.\n\n>  B. the police are explicitly NOT liable for mistakes in denying/approving\n>     using existing records (so who would I sue in \"A\" above to have an\n>     inaccurate record corrected?)\n\nVery correct.\n\n>  C. S414 includes an exception-to-waiting-period clause for if a person\n>     can convince the local Chief Law-Enforcement Officer (CLEO) of an\n>     immediate threat to his or her life, or life of a household member.\n>     But S414 doesn't say exactly what is considered a \"threat\", nor does\n>     it place a limit on how long the CLEO takes to issue an exception\n>     statement.\n\nWelcome to the world of \"the privileged\".\n\n>True?  Have I misunderstood?  Any other 'holes?\n\nHow about no compulsion to allow purchase if there is no evidence against?\n\n>\n>4. With just S414, what's to stop a person with a \"clean\" record from\n>   buying guns, grinding off the serial numbers, and selling them to crooks?\n>   At minimum, what additional laws are needed to prevent this?\n\nIt is already illegal to do this.\n\n>\n>   'Seems at min. a \"gun counting\" scheme would be needed\n>   (e.g., \"John Doe owns N guns\").  So, if S414 passes, I wouldn't be surprised\n>   to see legislation for stricter, harder-to-forge I.D.'s plus national gun\n>   registration, justified by a need to make the Brady bill work.\n\nThis is the \"health\" card.  Or so some \"paranoids\" claim.  I say that just\nbecause you're paranoid doesn't mean they're not out to get you.   :-) 1/2\n\n>\n>Please comment.  I'm mainly interested in specific problems with the current\n>legislation--I don't mean to start a general discussion of the merits\n>of any/all waiting-period bills ever proposed.\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\npyron@skndiv.dseg.ti.com          |solutions, not gestures.\nPADI DM-54909                     |\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10190, "properties": {"category": "misc.forsale", "text": "From: tin@phan.Eng.Sun.COM (Tin Phan)\nSubject: Re: Cellular Phone (Portable) for sale\nOrganization: Sun Microsystems Inc., Mountain View, CA\nLines: 16\nDistribution: usa\nNNTP-Posting-Host: phan\nSummary: Takes longer than 24 hours\n\nIn article <79599@cup.portal.com>, mmm@cup.portal.com (Mark Robert Thorson) writes:\n> I offer $100, shipment at seller's expense, payment as personal check\n> sent by U.S. mail within 24 hours after receiving goods.  I reserve the\n> right to return the goods, at my expense, if I find them to be defective\n> or otherwise unacceptable when I receive them (either the merchandise or\n> the check would be mailed within 24 hours).\n> \n> Mark Thorson\n\nI hope you realize that for a cellular phone, you need to subscribe to a\nCellular carrier, and it usually takes at least one working day before\nthe service is available to you. Only then you can find out whether \nthe phone is working.\n\nTin\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10191, "properties": {"category": "sci.space", "text": "From: jmcocker@eos.ncsu.edu (Mitch)\nSubject: A WRENCH in the works?\nOriginator: jmcocker@c00068-100lez.eos.ncsu.edu\nReply-To: jmcocker@eos.ncsu.edu (Mitch)\nOrganization: North Carolina State University, Project Eos\nLines: 19\n\n\nHi all,\n\nI really thought that by now I would have seen something\nabout this, but I haven't, so here goes:  Last night on\nthe evening news, the anchorperson said something to the\neffect that one of the SSRBs that was recovered after the\nrecent space shuttle launch was found to have a wrench of\nsome sort rattling around apparently inside the case.  There\nwas no elaboration as to where specfically the item was\nfound, of what type of wrench it was, but the anchorperson\ndid say something about a NASA official commenting that\nthere would be an inquiry into how the thing got in the SSRB.\n\nHas anybody else on the net whose info sources may be \nbetter than mine heard anything about this?  It seems rather\nweird.\n\nMitch ---------------------------->jmcocker@eos.ncsu.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10192, "properties": {"category": "comp.graphics", "text": "From: ktt3@unix.brighton.ac.uk (Koon Tang)\nSubject: PostScript driver for GINO\nOrganization: The Univerity of Brighton, U.K.\nLines: 15\n\nDoes anybody know where I can get, via anonymous ftp or otherwise, a PostScript\ndriver for the graphics libraries GINO verison 3.0A ?\n\nWe are runnining on a VAX/VMS and are looking for a way outputing our plots to a\nPostScript file...\n\n\nThanks in advance...\n-- \nKoon Tang,                                internet: ktt3@unix.bton.ac.uk\nDepartment of Mathematical Sciences,          uucp: uknet!itri!ktt3\nUniversity of Brighton,\nBrighton,\nBN2 4GJ,\nU.K.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10193, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: herrod@CS.Stanford.EDU (Stephen Herrod)\nSubject: Dos window macros\nOrganization: Computer Science Department, Stanford University.\nDistribution: usa\nLines: 6\n\nDoes anyone know a program that will record keyboard sequences that I \ndo in a windowed dos box? I would like to have something that starts a\ntelnet program and then logs me into my accounts. Windows Recorder doesn't\nseem to be able to record the key sequences.\n\nThanks, STeve\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10194, "properties": {"category": "comp.graphics", "text": "From: IMAGING.CLUB@OFFICE.WANG.COM (\"Imaging Club\")\nSubject: Re: WANTED: Info on Image Databases\nOrganization: Mail to News Gateway at Wang Labs\nLines: 14\n\nPadmini Srivathsa in Wisconsin writes:\n\n>I would like references to any introductory material on image\n>databases.\n\nI'd be happy to US (international) Snail mail technical information on\nimaging databases to anyone who needs it, if you can provide me with your\naddress for hard copy (not Email).  We're focusing mostly on Open PACE,\nOracle, Ingres, Adabas, Sybase, and Gupta, regarding our imaging\ndatabases installed.  (We have over 1,000 installed and in production now;\nmost of the new ones going in are on Novell LANs, the RS/6000, and now HP\nUnix workstations.)  We work with Visual Basic too.\n\nMichael.Willett@OFFICE.Wang.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10195, "properties": {"category": "sci.space", "text": "From: kjenks@jsc.nasa.gov (Ken Jenks [NASA])\nSubject: Re: Space Station Redesign, JSC Alternative #4\nOrganization: NASA/JSC/GM2, Space Shuttle Program Office From: kjenks@gothamcity.jsc.nasa.gov\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 40\n\nkjenks@gothamcity.jsc.nasa.gov (Hey, that's me!) wrote:\n: I have 19 (2 MB worth!) uuencode'd GIF images contain charts outlining\n: one of the many alternative Space Station designs being considered in\n: Crystal City.  [...]\n\nI just posted the GIF files out for anonymous FTP on server ics.uci.edu.\nYou can retrieve them from:\n  ics.uci.edu:incoming/geode01.gif\n  ics.uci.edu:incoming/geode02.gif\n  ics.uci.edu:incoming/geode03.gif\n  ics.uci.edu:incoming/geode04.gif\n  ics.uci.edu:incoming/geode05.gif\n  ics.uci.edu:incoming/geode06.gif\n  ics.uci.edu:incoming/geode07.gif\n  ics.uci.edu:incoming/geode08.gif\n  ics.uci.edu:incoming/geode09.gif\n  ics.uci.edu:incoming/geode10.gif\n  ics.uci.edu:incoming/geode11.gif\n  ics.uci.edu:incoming/geode12.gif\n  ics.uci.edu:incoming/geode13.gif\n  ics.uci.edu:incoming/geode14.gif\n  ics.uci.edu:incoming/geode15.gif\n  ics.uci.edu:incoming/geode16.gif\n  ics.uci.edu:incoming/geode17.gif\n  ics.uci.edu:incoming/geodeA.gif\n  ics.uci.edu:incoming/geodeB.gif\n\nThe last two are scanned color photos; the others are scanned briefing\ncharts.\n\nThese will be deleted by the ics.uci.edu system manager in a few days,\nso now's the time to grab them if you're interested.  Sorry it took\nme so long to get these out, but I was trying for the Ames server,\nbut it's out of space.\n\n-- Ken Jenks, NASA/JSC/GM2, Space Shuttle Program Office\n      kjenks@gothamcity.jsc.nasa.gov  (713) 483-4368\n\n     \"The earth is the cradle of humanity, but mankind will not stay in\n     the cradle forever.\" -- Konstantin Tsiolkvosky\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10196, "properties": {"category": "talk.politics.misc", "text": "From: popec@unkaphaed.jpunix.com (William C. Barwell)\nSubject: Re: Top Ten Comments Overheard in the Secret Service Lounge\nOrganization: Unka Phaed's UUCP Thingy, Houston, TX\nLines: 28\n\ncroaker@highlite.uucp (Francis A. Ney) writes:\n\n> Besides which, we don't *want* Clinton assasinated, because that would make h\n> a martyr a la JFK.\n> \n> It's a much better deal to have him end his term of office in disgrace, after\n> watching all his liberal democrat friends on his staff run this nation down t\n> toilet.\n> \n> Assuming, of course, that the riots a fortnight from now don't do it for him.\n\n\nHe'd have to go a far ways to run things down as bad as Reagan and Bush \ndid.  We didn't have riots but Bush got dumped out on his spotty Behind.\n\n\nWe'll see in 4 years.\n\n\nPope Charles Slack in our time!\n\n?s\n\n\n--\npopec@unkaphaed.jpunix.com (William C. Barwell)\nUnka Phaed's UUCP Thingy, Houston, TX, (713) 481-3763\n1200/2400/9600/14400 v.32bis/v.42bis\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10197, "properties": {"category": "rec.sport.baseball", "text": "From: kja@watson.ibm.com ( Kenneth J. Arbeitman)\nSubject: Missing subject header\nReply-To: kja@bones.fishkill.ibm.com ( Kenneth J. Arbeitman)\nDisclaimer: This posting represents the poster's views, not necessarily those of IBM\nNntp-Posting-Host: bones.fishkill.ibm.com\nOrganization: IBM East Fishkill                                                        Subject: Re: Torre: The worst manager?\nLines: 39\n\n\nIn article <93095@hydra.gatech.EDU>, gt7469a@prism.gatech.EDU (Brian R.\nLandmann) writes:\n|> Joe Torre has to be the worst manager in baseball.\n|> \n|> For anyone who didn't see Sunday's game,\n|> \n|> With a right hander pitching he decides to bench Lankform, a left handed\n|> hitter and play jordan and gilkey, both right handers.\n  \n    That's because Lankford had a minor injury from a couple of games\nbefore that\n    and was day-to-day... only available as a pinchrunner. \n\n|> \n|> Later, in the ninth inning with the bases loaded and two outs he puts\n|> lankford, a 300 hitter with power in as a pinch runner and uses Luis\n|> Alicea, a 250 hitter with no power as a pinch hitter.  What the Hell\n|> is he thinking.\n\n     See above.\n|> \n|> Earlier in the game in an interview about acquiring Mark Whiten he commented\n|> how fortunate the Cardinals were to get Whiten and that Whiten would be a\n|> regular even though this meant that Gilkey would be hurt, But torre said\n|> he liked Gilkey coming off the bench.  Gilkey hit over 300 last year,\n|> what does he have to do to start, The guy would be starting on most every\n|> team in the league.\n|> \n    At the beginning of the interview Torre also said Lankford is the\none outfield\n    guy who's \"in there no matter what\".\n    My guess is Jordan will eventually end up being odd man out due to low\n    on base percentage.  Whiten was a great acquisition... decent offense\n    and great defense in rightfield.  But don't worry, Gilkey will be\nstarting        \n    as soon as Jordan or Whiten displays an extended period of low offensive\n    output.  \n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10198, "properties": {"category": "talk.politics.guns", "text": "From: cdt@sw.stratus.com (C. D. Tavares)\nSubject: Re: Waco, they did it.    ( MASADA )\nOrganization: Stratus Computer, Inc.\nLines: 20\nDistribution: world\nNNTP-Posting-Host: rocket.sw.stratus.com\n\nIn article <C5rtLJ.Aqz@usenet.ucs.indiana.edu>, wwarf@silver.ucs.indiana.edu (Wayne J. Warf) writes:\n\n> I can't see these people standing calmly around while they burned to\n> death. Sorry. I just can't see them choosing a death as horrible as\n> this. The story doesn't wash. It'll take some convincing to get me\n> to believe it. The FBI said today that Koresh had earlier intended\n> to strap himself with explosives, come over to the FBI agents and\n> detonate, but lost his nerve. He lost his nerve for a quick, clean\n> death but not to roasted alive? Sorry, don't believe it, even if he\n> was nutty as a fruitcake.\n\nOn Ted Koppel last night, the ubiquitous Australian woman claimed that\nKoresh trained the women (years ago) how to commit suicide by swallowing\ncyanide or by putting a gun in their mouth.  With cyanide on hand, why\nchoose to roast yourself?  There are too many unanswered questions here.\n-- \n\ncdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\nOR cdt@vos.stratus.com        write today for my special Investors' Packet...\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10199, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: anisko@usdtsg.DaytonOH.NCR.COM (anisko)\nSubject: Re: Atari Mono and VGA\nReply-To: anisko@usdtsg.UUCP ()\nDistribution: world\nOrganization: NCR Corporation, Dayton\nLines: 35\n\nIn article <19APR199322421085@oregon.uoregon.edu> arosborn@oregon.uoregon.edu (Alan Osborn) writes:\n>In article <1993Apr19.090707.3686@tdb.uu.se>, m88max@tdb.uu.se (Max Brante) writes...\n>>Have anybody succeded in converting a atari monomchrome monitor into a\n>>mono VGA monitor. If so please let me know exactly how you did and what\n>>graphics card you used.\n>I wish I could help!  I posted a similar question about two weeks ago;\n>I got no response at all.  I've asked locally at my friendly Atari store.\n>I was told that it should be possible, but that they had no idea how\n>it might be done.  Nor did they particularly care to investigate.\n>\n>Please, if anyone has _any_ suggestions, post them!\n\n\n   You might try asking on one of the comp.sys.ibm.* echos (the best one\nmay be comp.sys.ibm.pc.hardware).  I say this because the conversion\nseems more geared toward a PC user wanting to use that monitor, than\nan Atari user who already can use the monitor (unless maybe they\nwant to really go wild - converting the monitor to VGA, then\nusing it as a VGA monitor with a Falcon :-)\n\n   As for graphics cards, assuming that the Atari monitor can be\nmodified/adapted to handle VGA signals, you should probably be able\nto use any VGA card (at least with a res around 640x400).  I haven't\ntried this, but that would be my guess...\n\n\t\t\t\tRobert Anisko\n\t\t\t\tanisko@usdtsg.daytonoh.ncr.com\n\n\n...you might want to price mono VGA monitors anyways - it may be cheaper\nto go that route than to do the conversion; besides, with the Falcon and\nbeyond, VGA/SVGA/multisync monitors will probably be the way to go...\n\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10200, "properties": {"category": "soc.religion.christian", "text": "From: MANDTBACKA@finabo.abo.fi (Mats Andtbacka)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nOrganization: Unorganized Usenet Postings UnInc.\nLines: 65\n\nIn <Apr.13.00.08.15.1993.28388@athos.rutgers.edu> jayne@mmalt.guild.org writes:\n> gsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n> \n>> Firstly, I am an atheist. I am not posting here as an immature flame\n>> start, but rather to express an opinion to my intended audience.\n>[deleted] \n>> \n>> We are _just_ animals.  We need sleep, food, and we reproduce.  And we\n>> die.      \n> \n> I am glad that I am not an atheist.  It seems tragic that some people \n> choose a meaningless existence.  How terrible to go on living only \n> because one fears death more than life.\n\n      ?Huh? Okay, so I'm not Eric Molas, but even if that _is_ how he\nfeels about life, I disagree with it.\n\n      Life, to me, is definitely NOT meaningless; it has precisely the\npurpose and meaning I choose to give it. I go on living because I _like_\nliving; if I needed any further reason, I'd be free - completely free! -\nto pick any reason that suited me. That freedom can be almost\nintoxicating; it's probably the closest I've ever been to a 'religious'\nexperience. I'm *very* glad I am an atheist; I wouldn't be anything\nelse.\n\n> I feel so sorry for Eric and \n> yet any attempts to share my joy in life with him would be considered as \n> further evidence of the infectious nature of Christianity.    \n\n      Not unless, in explaining your own subjective experience, you also\ntry to convert him or proselytize. Merely explaining the effects you\npersonally experience religion as having on you, is not \"infectious\".\nNot unless Eric is paranoid, that is. ;->\n\n> As a Christian I am free to be a human person.  I think, love, choose, \n> and create.  I will live forever with God.\n\n      Whatever floats your goat. You sound happy enough; that's fairly\nmuch all that matters, right?\n\n> Christ is not a kind of drug.  Drugs are a replacement for Christ.  \n\n      Erh... Pardon, but it strikes me that sentence sounds reversible.\n\n> Those who have an empty spot in the God-shaped hole in their hearts must \n> do something to ease the pain.\n\n      \"Empty spot\"? \"God-shaped hole\"? I hear such things a lot from\ntheists; never quite did understand what they were talking about.\nI have no such 'emptiness' or 'hole'. Maybe some others do, I wouldn't\nknow; but I don't, and if I did, I'd seek help about it. Doesn't sound\nlike a mentally healthy situation at all, walking around with a 'hole'\nin oneself.\n\n> Thank you, Eric for your post.  It has helped me to appreciate how much \n> God has blessed me.  I hope that you will someday have a more joy-filled \n> and abundant life.\n\n      Well, not having written that original post, I don't know if it\nwas intended to be interpreted in such a way; but, having reread it\ncarefully, I somewhat doubt it. At least, that's not how he gets across\nto _me_, your mileage may vary...\n\n-- \n  Disclaimer?   \"It's great to be young and insane!\"\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10201, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Re: Keeping Spacecraft on after Funding Cuts.\nOrganization: Jet Propulsion Laboratory\nLines: 15\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr20.204335.157595@zeus.calpoly.edu>, jgreen@trumpet.calpoly.edu (James Thomas Green) writes...\n>Why do spacecraft have to be shut off after funding cuts.  For\n>example, Why couldn't Magellan just be told to go into a \"safe\"\n>mode and stay bobbing about Venus in a low-power-use mode and if\n>maybe in a few years if funding gets restored after the economy\n>gets better (hopefully), it could be turned on again.  \n\nIt can be, but the problem is a political one, not a technical one. \n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10202, "properties": {"category": "sci.med", "text": "From: sue@netcom.com (Sue Miller)\nSubject: Re: Eugenics\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 7\n\nIn article <19617@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>we do this?  Should we make a race of disease-free, long-lived,\n>Arnold Schwartzenegger-muscled, supermen?  Even if we can.\n>\n\nSure, as long as they'll make one for me.\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10203, "properties": {"category": "talk.politics.misc", "text": "Subject: Re: Top Ten Reasons Not to Aid Russians\nFrom: rcollins@ns.encore.com (Roger Collins)\nOrganization: Encore Computer Corporation\nNntp-Posting-Host: sysgem1.encore.com\nLines: 35\n\njulie@eddie.jpl.nasa.gov (Julie Kangas) writes:\n|> In article <C50FnH.Cvo@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n|> >  [With a tip of the hat to David Letterman for making the Top Ten format \n|> >   so popular]\n|> >\n|> >Top Ten Reasons that Conservatives don't want to aid Russia:\n|> \n|> <looking around>  Who?  Where?\n|> Don't look at me.  I want to send aid to Russia.  Many other\n|> conservatives do as well.  \n|> \n|> Julie\n|> DISCLAIMER:  All opinions here belong to my cat and no one else\n\nYes, it was Nixon who was most vocal about giving money to Russia.  It\nmakes me proud to be a libertarian.  It appears both conservatives and\nliberals prefer to cold war until you win, then nurse the enemy back to\nhealth for another go around.\n\nIt's like subsidizing the wealthy countries (Japan, Germany, etc.) with\nfree defense, and then trade-warring with them because of the economic\ncompetition.  It's like subsidizing tobacco farmers while paying\nbureaucrats to pursuade people not to smoke.\n\nI ask myself, what law could we pass to prevent government from doing\nstupid, frivilous things with OUR money?  Then I think, the Constitution\nwas supposed to do that.  Could someone please tell me what legitimate\nconstitutional power the federal government is using when it takes money\nfrom my paycheck and gives it to needy countries?  Seriously.\n\nRoger Collins\n\n\"If we were directed from Washington when to sow and when to reap,\n we would soon want bread.\"\n\t-- Thomas Jefferson\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10204, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jimmyhua@aludra.usc.edu (Jimmy Huang)\nSubject: [Q] Connor PC 30204 jumper settings\nOrganization: University of Southern California, Los Angeles, CA\nLines: 16\nNNTP-Posting-Host: aludra.usc.edu\n\nAnyone who knows this answer off-hand, please answer me by e-mail \nquickly ;). \n\nThere is a pair of jumpers on one side, and a set of 3 or 4 on the\nother end.  One is labeled, sync , and one CD, and E0 E1 E2.  \n\nWhhich do I need to short, or disconnect to get drive to operate\nin slave mode?  Give me a label or \"geographic\nlabel, as they have quite a few jumpers, and I don't wanna try the\ntrial and error method... \n\nI am using IDE. I think this drive is SCSI compatible too. \n\nJimmy\n\njimmyhua@usc.edu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10205, "properties": {"category": "comp.windows.x", "text": "From: Wilfred.Hansen@CS.CMU.EDU\nSubject: CFP: Andrew Technical Conference\nOrganization: Carnegie Mellon, Pittsburgh, PA\nLines: 61\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xannounce@expo.lcs.mit.edu\n\n*Reminder*   Plan now for the Andrew Conference.\n*Date* The dates are as noted below.  (We have not changed them.)\n*Submission extension*   We are still accepting papers.\n\n*Tutorial topic*  \n\t_Converting Andrew source code to C++_\n\nThis tutorial will discuss the steps necessary to convert a site from C\n(extended with classC) to C++.  Conversion of the source code requires\nonly a couple of steps:\n\trun the converter\n\tfill in missing type information\nDescribing this will not take long.  The remainder of the day will be\nspent learning how to write objects in C++ and practicing.\n\n------------------------------\n\n1993 Andrew Technical Conference and Consortium Annual Meeting\nJune 24-25, 1993\nCarnegie Mellon University\nPittsburgh, PA\n\nThe conference will be held on the last Thursday and Friday in June.  A\ntutorial will be on Thursday the 24th and the conference proper on the\n25th with the annual meeting at the dinner on the evening between the\ntwo days.  All conference attendees are welcome at the annual meeting,\nthough only Consortium members will be able to vote.\n\nThis year's theme is \n\n\tApplication Construction by Non-Programmers\n\nMuch of the effort on X toolkits has been aimed at programmer\nconstruction of applications.  There have, however, been some excellent\nUIMS systems built on top of X.  Papers addressing the theme will\nconsider questions such as\n\tWhat is needed for application construction by non-programmers?\n\tCan we avoid programming altogether, or is a simple language needed?\n\tIs it sufficient to create applications, or must users be able to\ncreate new widgets?\n\tShould widgets and applications be able to print themselves?\n\nYour participation in the conference is welcome.  Papers are appropriate\non the theme or any aspect of the Andrew User Interface System, including\n\n\tapplications\n\texperience with users\n\tnew objects\n\treviews of and proposals for revision of \n\t\tinternal Andrew protocols\n\nWe expect to have an RS/6000 with video projector available if you would\nlike to do a demonstration.  \n\nPaper proposals should be submitted by 15 May 1993.\nAcceptance will be 1 June with final papers due by 15 June.\n\nSend papers via electronic mail to wjh+@andrew.cmu.edu.\n\nFred Hansen\nDirector, Andrew Consortium\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10206, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: Omnipotence (was Re: Speculations)\nOrganization: Case Western Reserve University\nLines: 19\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1993Apr5.171143.828@batman.bmd.trw.com> jbrown@batman.bmd.trw.com writes:\n\n>God is effectively limited in the same sense.  He is all powerful, but\n>He cannot use His power in a way that would violate the essence of what\n>He, Himself is.\n\n\tCannot? Try, will not.\n\n---\n\n        \"One thing that relates is among Navy men that get tatoos that \n        say \"Mom\", because of the love of their mom.  It makes for more \n        virile men.\"\n\n        Bobby Mozumder  ( snm6394@ultb.isc.rit.edu )\n        April 4, 1993\n\n        The one TRUE Muslim left in the world. \n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10207, "properties": {"category": "sci.med", "text": "From: sasghm@theseus.unx.sas.com (Gary Merrill)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOriginator: sasghm@theseus.unx.sas.com\nNntp-Posting-Host: theseus.unx.sas.com\nOrganization: SAS Institute Inc.\nLines: 43\n\n\nIn article <1993Apr15.200344.28013@cs.rochester.edu>, fulk@cs.rochester.edu (Mark Fulk) writes:\n\n|> 2) Science has not historically progressed in any sort of rational\n|> experiment-data-theory sequence.  Most experiments are carried out, and\n|> interpreted, in pre-existing theoretical frameworks.  The theoretical\n|> controversies of the day determine which experiments get done.  Overall,\n|> there is a huge messy affair of personal jealousies, crazy motivations,\n|> petty hatreds, and the like that determines which experiments, and which\n|> computations, get done.  What keeps it going forward is the critical\n|> function of science: results don't count unless they can be replicated.\n|> \n|> The whole system is a sort of mechanism for generate-and-test.  The generate\n|> part can be totally irrational, as long as the test part works properly.\n\nI think we agree on much.  However the paragraphs above seem to repeat\nuncritically the standard Kuhn/Lakatos/Feyerabend view of \"progress\" and\n\"rationality\" in science.  Since I've addressed these issues in this\nnewsgroup in the not too distant past, I won't go into them again now.\n\nWhat is wrong with the above observation is that it explicitly gives the\nimpression (and you may not in fact hold this view) that the common (perhaps\neven the \"correct\") approach for a scientist to follow is to sit around\nhaving flights of fancy and scheming on the basis of his jealousies and\npetty hatreds.  It further at least implicitly advances the position that\nsciences goes \"forward\" (and it is not clear what this means given the\ncontext in which it occurs) by generating in a completely non-rational\nand even random way a plethora of hypotheses and theories that are then\nweeded out via the \"critical function\" of science.  (Though why this critical\nfunction should be less subject to the non-rational forces is a mystery.\nIf experimental design, hypotheses creation, and theory construction are\nsubject to jealousies and petty hatreds, then this must be equally true\nof the application of any \"critical function\" concerning replication.\nThis is what leads one (ala Feyerabend) to an \"anything goes\" view.)\n\nTrue, the generation part *can* be totally irrational.  But typically it is\n*not*.  Anecdotes concerning instances where a hypothesis seems to have\nresulted in some way from a dream or from one's political views simply\ndo not generalize well to the actual history of science.\n-- \nGary H. Merrill  [Principal Systems Developer, C Compiler Development]\nSAS Institute Inc. / SAS Campus Dr. / Cary, NC  27513 / (919) 677-8000\nsasghm@theseus.unx.sas.com ... !mcnc!sas!sasghm\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10208, "properties": {"category": "talk.politics.misc", "text": "From: mwilson@ncratl.AtlantaGA.NCR.COM (Mark Wilson)\nSubject: Re: Who be Conservative on this.....\nOrganization: NCR Engineering and Manufacturing Atlanta -- Atlanta, GA\nLines: 17\n\nIn <1993Apr2.154706.15557@rotag.mi.org> kevin@rotag.mi.org (Kevin Darcy) writes:\n\n|Congress is NOT allowed to abrogate the constitutional rights and privileges \n|already enjoyed by persons, however, unless the abrogation has a \"rational \n|reason\" or a \"compelling interest\" to it, depending on which standard is \n|applied. This is relevant because granting a right to one class of persons \n|by definition ALWAYS impinges on the rights of another class or classes or\n|persons, to some degree. In the case of abortion, establishing rights for\n|the unborn impinges GREATLY on the rights of pregnant women. There has yet\n|to be presented a sufficient justification for such fetal rights.\n\nNot to your satisfaction. But the arguments have convinced me, and others.\n-- \nMob rule isn't any prettier merely because the mob calls itself a government\nIt ain't charity if you are using someone else's money.\nWilson's theory of relativity: If you go back far enough, we're all related.\nMark.Wilson@AtlantaGA.NCR.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10209, "properties": {"category": "comp.windows.x", "text": "From: chatterj@haji.lcs.mit.EDU (Shash Chatterjee)\nSubject: Help: SunView on olwm/xview3/X11R5\nArticle-I.D.: haji.9304051753.AA05339\nOrganization: The Internet\nLines: 23\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: xpert%expo.lcs.mit.edu@fin.lcs.mit.edu\n\n\nHi,\n\nI just compiled the X11R5 distribution for a Sun3/SunOS4.1.1.  I also\ncompiled the public domain xview3 (with olwm) distribution.  I have some\nold 3rd-party application binaries that are SunView programs.  How do I\nget them to work under xview3 and olwm?  (I tried using the OpenWindows\nversion 2 \"svenv\" program, but it did not work.)\n\nI do not have news access....that's why I am mailing this directly.  Also,\nis there an email alias where my questions can get to comp.windows.x or\ncomp.windows.open-look?  PLEASE RESPOND TO fwr8bv@fin.af.mil\n\nThanks,\nShash\n\n+-----------------------------------------------------------------------------+\n+ Shash Chatterjee                               EMAIL:  fwr8bv@fin.af.mil    +\n+ EC Software                                   PHONE:  (817) 763-1495        +\n+ Lockheed Fort Worth Company                  FAX:    (817) 777-2115         +\n+ P.O. Box 748, MZ1719                                                        +\n+ Ft. Worth, TX 76101                                                         +\n+-----------------------------------------------------------------------------+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10210, "properties": {"category": "comp.sys.mac.hardware", "text": "From: HK.MLR@forsythe.stanford.edu (Mark Rogowsky)\nSubject: Re: PDS vs. Nubus (was Re: LC III NuBus Capable?)\nOrganization: Stanford University\nLines: 42\nDistribution: usa\nNNTP-Posting-Host: morrow.stanford.edu\n\nIn article <1993Apr16.191259.1@fnalf.fnal.gov>,\nhiggins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey) writes:\n>In article <C5KzLs.KKB@dartvax.dartmouth.edu>, hades@coos.dartmouth.edu (Brian V. Hughes) writes:\n>> mmiller@garnet.msen.com (Marvin Miller) writes:\n>>>My friend recently purchased a LC III and he wants to know if there is\n>>>such a demon called NuBus adapter for his PDS slot?\n>\n>> The LC family of Macs can only\n>> use PDS cards. They are not able to use NuBus.\n>\n>Ah, but why?  Can some technically-hip Macslinger tell us what the\n>difference is between PDS and Nubus?\n>\n>Is it impossible to make a gadget that plugs into PDS and ends in a\n>Nubus card cage?  At least, Marvin's friend has not been able to\n>locate one and neither have I.  What is the fundamental reason for\n>this?\n>\n>--\n>     O~~*           /_) ' / /   /_/ '  ,   ,  ' ,_  _           \\|/\n>   - ~ -~~~~~~~~~~~/_) / / /   / / / (_) (_) / / / _\\~~~~~~~~~~~zap!\n> /       \\                          (_) (_)                    / | \\\n> |       |     Bill Higgins   Fermi National Accelerator Laboratory\n> \\       /     Bitnet:     HIGGINS@FNAL.BITNET\n>   -   -       Internet:  HIGGINS@FNAL.FNAL.GOV\n>     ~         SPAN/Hepnet:      43011::HIGGINS\nSecond Wave makes NuBus card cages that work on the PDS slots of at\nleast three Macs: the SE/30, IIsi and Centris 610. They have not, to\nmy knowledge, announced such a device for the LCII, but they could\nmake one, technologically.\n\nThe PDS card that goes to the cage simply needs the NuBus controller\ncircuitry present on NuBus Macs.\n\nWhy, though, does anyone care about this? dgr has a three-PDS\nadapter for the LC/LCII. They will soon have one for the LCIII. PDS\nis better than NuBus for most people in most applications. Granted,\nthere are more NuBus cards. But, most applications that require a\nNuBus card (like full-motion video capture) shouldn't be done on an\nLC/LCII/LCIII anyway.\n\nMark\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10211, "properties": {"category": "rec.sport.baseball", "text": "From: heatonn@yankee.org (Neal Heaton)\nSubject: Sam, are you there?\nOrganization: The Johns Hopkins University - HCF\nLines: 9\nDistribution: na\nNNTP-Posting-Host: jhuvms.hcf.jhu.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nTo Mr. Millitello -\n\n\tListen, Sammy, can you explain why Buck pitched you in relief\nyesterday?  I figure no-one would know this better than you yourself.\n\nJason A. Miller\n\"some doctor guy\"\n\nP.S. Tell Bam-Bam he should've made good on his thread to retire :-)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.479+0000", "event": "documents", "entityId": 10212, "properties": {"category": "sci.electronics", "text": "From: berryh@huey.udel.edu (John Berryhill, Ph.D.)\nSubject: Re: What do Nuclear Site's Cooling Towers do?\nNntp-Posting-Host: huey.udel.edu\nOrganization: little scraps of paper, mostly\nLines: 13\n\nThe object of a cooling tower is to distribute dissolved salts in \ncooling water over large areas of farmland and to therefore decrease\nfarm subsidies for non-producers by rendering their land infertile.\n\nA side effect of this deficit-reduction program is that they provide\na low-T reservoir for a variety of industrial processes.\n\nNow you know. \n\n-- \n\n                                              John Berryhill\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10213, "properties": {"category": "sci.med", "text": "From: bruce@Data-IO.COM (Bruce Reynolds)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: Data I/O Corporation\nLines: 31\n\nsmjeff@lerc05.lerc.nasa.gov (Jeff Miller) writes:\n>Even properly controlled studies (e.g. double blind studies) are almost\n>useless if you are trying to prove that something does not affect anyone.\n\n-- and --\n\n>In article <1qnns0$4l3@agate.berkeley.edu> spp@zabriskie.berkeley.edu (Steve Pope) writes:\n>The mass of anectdotal evidence, combined with the lack of\n>a properly constructed scientific experiment disproving\n>the hypothesis, makes the MSG reaction hypothesis the\n>most likely explanation for events.\n>\n\nGood grief; has no one ever heard of Biostatistics??  The University of\nWashington (plus 3 or 4 others [Harvard, UNC]) has a department and\nadvanced degree program in Biostatistics.  My wife has an MS Biostat, and\nthere are plenty of MDs, PhDs, and postdocs doing Biostatistical work.\nPeople do this for a living.  Really bright people study for decades to do\nthis sort of study well.\n\nAnecedotal evidence is worthless.  Even doctors who have been using a drug\nor treatment for years, and who swear it is effective, are often suprised\nat the results of clinical trials.  Whether or not MSG causes describable,\nreportable, documentable symptoms should be pretty simple to discover.  \n\nThe last study on which my wife worked employed 200 nurses, 100 doctors,\nand a dozen Ph.Ds at one University and at 70 hospitals in five nations.  I\nwould think the MSG question could be settled by one lowly Biostat MS\nstudent in a thesis.\n\n--bruce\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10214, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: silvera@ghost.dsi.unimi.it (paolo silvera)\nSubject: What SVGA ?\nOrganization: Computer Science Dep. - Milan University\nLines: 21\n\nExcuse me to every one.\nI am an Amiga owner and tired to have the same graphic modes.\nSo I saw on nn there was a little bridgeboard that made the\nAmiga's PC slots communicate with the stanndard Amiga's slot.\nThe building mother house of this little gadget assure me\nthat using this thing I can use all the pc boards included\nthe SVGA cards.\nI am interested in computer graphics and I do not know many\nthings about pc in general.\nSo, what is the best (ISA slot) card on the market ?\nI'd like to reach resolutions like 1280x1024 with 256\ncolors or 800x600 with 24 bitplanes.\n\nAny suggestion ??\n\nthankyou in advance\n\nPaolo Silvera -- Certified Commodore Amiga developer\n\nsilvera@ghost.sm.dsi.unimi.it\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10215, "properties": {"category": "alt.atheism", "text": "From: madhaus@netcom.com (Maddi Hausmann)\nSubject: Re: some thoughts.\nKeywords: Dan Bissell\nOrganization: Society for Putting Things on Top of Other Things\nLines: 28\n\n1.  Did you read the FAQs?\n\n2.  If NO, Read the FAQs.\n\n3.  IF YES, you wouldn't have posted such drivel.  The \"Lord, Liar\n    or Lunatic\" argument is a false trilemma.  Even if you disprove\n    Liar and Lunatic (which you haven't), you have not eliminated\n    the other possibilities, such as Mistaken, Misdirected, or\n    Misunderstood.  You have arbitrarily set up three and only\n    three possibilities without considering others.\n\n4.  Read a good book on rhetoric and critical thinking.  If\n    you think the \"Lord, Liar, or Lunatic\" discussion is an\n    example of a good argument, you are in need of learning.\n\n5.  Read the FAQs again, especially \"Constructing a Logical\n    Argument.\"\n\nIgnore these instructions at your peril.  Disobeying them\nleaves you open for righteous flaming.\n\n\n-- \nMaddi Hausmann                       madhaus@netcom.com\nCentigram Communications Corp        San Jose California  408/428-3553\n\nKids, please don't try this at home.  Remember, I post professionally.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10216, "properties": {"category": "talk.religion.misc", "text": "From: mccullou@snake2.cs.wisc.edu (Mark McCullough)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: University of Wisconsin, Madison -- Computer Sciences Dept.\nLines: 19\n\nIn article <30136@ursa.bear.com> halat@pooh.bears (Jim Halat) writes:\n>Atoms are not objective.  They aren't even real.  What scientists call\n>an atom is nothing more than a mathematical model that describes \n>certain physical, observable properties of our surroundings.  All\n>of which is subjective.  \n>\n>-jim halat\n\nThis deserves framing.  It really does.  \"[Atoms] aren't even real.\"\n\nTell me then, those atoms we have seen with electron microscopes are\natoms now, so what are they?  Figments of our imaginations?  The\nevidence that atoms are real is overwhelming, but I won't bother with\nmost evidence at the moment.\n-- \n***************************************************************************\n* mccullou@whipple.cs.wisc.edu * Never program and drink beer at the same *\n* M^2                          *  time.  It doesn't work.                 *\n***************************************************************************\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10217, "properties": {"category": "comp.sys.mac.hardware", "text": "From: CM51@lafibm.lafayette.edu (CM51)\nSubject: Half-page hand scanners?\nOrganization: Lafayette College\nLines: 6\nOriginator: news@lafcol\nNntp-Posting-Host: lafibm\n\nIs anyone out there using a greyscale handscanner. I'm thinking about\nbuying one. Is the inexpensive Logitech pretty good. I don't need\nsuper high quality scans- but want it to be worth the $$$$.\n\nThanks in advance-\nMike Charles\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10218, "properties": {"category": "sci.med", "text": "From: jimj@contractor.EBay.Sun.COM (Jim Jones)\nSubject: Post-fever rashes:  I get 'em every time\nOrganization: Sun Microsystems, Inc.  Mt. View, Ca.\nLines: 18\nDistribution: world\nReply-To: jimj@contractor.EBay.Sun.COM (Jim Jones)\nNNTP-Posting-Host: contractor.ebay.sun.com\n\nThe subject-line says it:  every time I run a fever, I get an amazing\nrosy rash over my torso and arms.  Fortunately, it doesn't itch.\n\nThe rash  always comes on the day after the\nfever breaks and no matter what the illness was:  cold, flu, whatever.\nIt started happening about four years ago after I moved to my current\ntown, although I don't know if that has anything to do with anything.\n\nSeverity and persistance of the rash seems to vary with the fever:\na severe or long-lasting fever brings a long-lasting rash.  A mild fever\nseems to bring rashes that go away faster.  \n\nAnybody know what might be causing this?  It's no more than an \nembarassment, but I'd be curious to know what's going on.  Am I carrying\nsome kind of fever-resistant bug that goes wild when fever knocks out\nits competition?\n\nJim Jones\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10219, "properties": {"category": "talk.politics.guns", "text": "From: bressler@iftccu.ca.boeing.com (Rick Bressler)\nSubject: Re: Gun Lovers (was Re: My Gun is like my American Express Card)\nOrganization: Boeing Commercial Airplane Group\nLines: 104\n\n/ iftccu:talk.politics.guns / vincent@cad.gatech.edu (Vincent Fox) / 10:34 am  Apr 14, 1993 /\n\nThis isn't rec.guns, so maybe this is getting a bet technical, but I\ncan't resist....\n\n> - A revolver also has the advantage that if it misfires you just pull\n>   the trigger again.\n\nSometimes.....  Depends on WHY it misfired....\n\n> - A double-action revolver (almost all of them) can be hand-cocked first,\n>   but will fire merely by pulling the trigger.\n\nI can't imagine doing much combat type shooting single action.....\n\n> - A misfire in a revolver merely means you must pull the trigger again\n>   to rotate to the next round.\n\nAssuming the cylinder WILL rotate....\n\n> - A revolver can be carried with the 6th chamber empty and under the\n>   hammer for maximum safety, but still can be drawn and fired with an\n>   easy motion, even one handed.\n\nNever hurts to err on the side of safety, but if you've got one of those\n'new fangled' hammer blocks or transfer bar safeties, it's unnecessarily\nredundant.  I'd rather have the extra round.\n\n> - Speedloaders for a revolver allow reloads almost as fast as magazines\n>   on semi-autos. Can be faster depending on users.\n\nQuite true.  Speed loaders are a little less convenient to pack around\nthan magazines though.\n\n> - A misfire in a semi-auto will require you to clear a jammed shell\n>   first, time spent which can be fatal. And a vital second or so is often\n>   lost as you realize \"hey, it's jammed!\" before starting to do anything\n>   about clearing it.\n\nTrue, but this is a training function.\n\n> - Most semi-autos must have the slide worked to chamber the first round\n>   and cock the hammer. Some police carry their semi-autos with the\n>   chamber loaded and hammer cocked, but a safety engaged. I do not consider\n>   this safe however. You must trade-off safety to get the same speed\n>   of employment as a revolver.\n\nCocked and locked for single actions or hammer down on double actions\nare the only carry modes that make sense...  The 80 series Colt's for\nexample are quite safe to carry this way.\n\n> - There are some double-action semi-autos out there, but the complexity of\n>   operation of many of them requires more training.\n\nAgreed.\n\nNow that I've shot off my mouth a bit, let me back some of this up.  It\nis true that a simple misfire on a revolver doesn't cost you much.  On\nthe other hand, I've had all sorts of interesting things happen over the\nyears.  For example, I've had FACTORY ammunition that has had high\nprimers.  A high primer will tie your revolver up somewhere from seconds\nto minutes while you try to pound the action open to clear the problem.\nAn auto?  Jack the slide and continue.\n\nI've had bullets come out of the case, keeping the cylinder from\nturning, see clearing paragraph above.  About the WORST that can happen\nwith a semi auto is a double feed.  This can be cleared in seconds.\n\nMost revolvers are more 'fragile' then semi auto's.  There are all sorts\nof close tolerance parts and fitting involved.  Dropping the gun, or a\nblow to the gun or all sorts of things can take it out of action.  Many\nof the problems that can be cured on the spot with a (quality) semi auto\ntake a gun smith for a revolver.  In short a revolver MAY be less likely\nto malfunction, but as a rule when it does, you're out of the fight.\nThe majority of malfunctions that occur with semi autos does not fall\ninto that category.\n\nVincint makes many good points in this post, but leaves off the opposing\nview of most of them.  A real good starting place is Ayoob's \"The Semi\nAuto Pistol for Police and Self Defense.\"\n\nIn general, I'd agree, the revolver is an excellent first gun and self\ndefense weapon for somebody that does not have the time, and inclination\nthat is necessary for the training and practice needed to use a semi\nauto effectively as a self defense arm.\n\nMost cops are notoriously indifferent to firearms.  If the department\nisn't going to train them, they aren't going to take the time on their\nown.  There is no doubt that training is an issue.  The amount of\ntraining required for effective use of a semi auto is probably several\ntimes that of a revolver.  Many cops don't bother.\n\nFor myself, I'd hate to be limited to one or the other.  I'd rather pick\nwhat fits better with my personal inclination, what I'm wearing that day\nand so on.  Like the Moderator on rec.guns says, buy em all!\n\nThat said, I have to admit that often my advice to people thinking of\nbuying their first defense arm is (right after taking a class) get a\nRuger or Smith revolver....  (Sorry Colt fans.  Colt revolvers are ok\ntoo!)\n\nIf this post had gone the other way, I'd be arguing for revolvers. :-)\n\nRick.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10220, "properties": {"category": "misc.forsale", "text": "From: AGRGB@ASUACAD.BITNET\nSubject: Re: CDs priced for immediate sale\nArticle-I.D.: ASUACAD.93096.004253AGRGB\nOrganization: Arizona State University\nLines: 10\n\nHey now,\n\nThe following cds are still available. Offers/trades considered.\n\nGowan - Lost Brotherhood\nKatrina & the Waves - Break of Hearts\nJoe Cocker - Live\nCharles Neville - Diversity\n\nThanks,  Rich\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10221, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tracyb@bnr.ca (Tracy Blomquist)\nSubject: Re: 17\" Monitors\nNntp-Posting-Host: bcarh829\nOrganization: Bell Northern Research\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 33\n\nTony Catone (catone@compstat.wharton.upenn.edu) wrote:\n: In article <C5GEH5.n1D@utdallas.edu> goyal@utdallas.edu (MOHIT K GOYAL) writes:\n: \n:    Oh yeah, I just read in another newsgroup that the T560i uses a\n:    high quality Trinitron tube than is in most monitors.(the Sony\n:    1604S for example) and this is where the extra cost comes from.  It\n:    is also where the high bandwidth comes from, and the fantastic\n:    image, and the large image size, etc, etc...\n: \n: It's also where the two annoying lines across the screen (one a third\n: down, the other two thirds down) come from.\n: \n\nThe 2 lines are not a result of the high end trinitron tube, these\n2 wires will be found on all 17\" trinitron tubes (e.g., Mitsubishi 17\",\nSony 1604, etc).  On 14\" Sony tubes, you'll find one wire.\n\nTheir level of annoyance is purely subjective.  I'm so happy with the\nsharpness of the T560i that I don't even notice the lines.\n\nThe T560i uses a Trinitron SA tube which, when viewed as a complete tube,\nhas a larger diameter than the standard Trinitron tube.  This results in \na flatter screen than other 17\" monitors using the standard trinitron \n(which has a vertically flat but not horizontally flat surface), and \napparently the ability to provide a tighter beam focus.  \n\n--\n,----------------------,------------------------.---------------------,\n| Karl Tracy Blomquist | E-MAIL: tracyb@bnr.ca  | Fax: 1-613-765-4018 |\n| Consultant           | \"opinions are my own\"  | Ph:  1-613-765-4886 |\n`----------------------'------------------------'---------------------'\n| Bell-Northern Research, P.O.Box 3511, Stn C, Ottawa, Ont., K1Y-4H7  |\n`---------------------------------------------------------------------'\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10222, "properties": {"category": "talk.politics.misc", "text": "From: borden@head-cfa.harvard.edu (Dave Borden)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: Smithsonian Astrophysical Observatory, Cambridge, MA,  USA\nLines: 39\n\n\nIn article <stevethC5Js6F.Fn5@netcom.com>, steveth@netcom.com (Steve Thomas) writes:\n> In article <1993Apr15.193603.14228@magnus.acs.ohio-state.edu> rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) writes:\n> >In article <stevethC5JGCr.1Ht@netcom.com> steveth@netcom.com (Steve Thomas) wri\n> >tes:\n> >\n> >>\n> >>Just _TRY_ to justify the War On Drugs, I _DARE_ you!\n> >>\n> >\n> >A friend of mine who smoke pot every day and last Tuesday took 5 hits of acid \n> >is still having trouble \"aiming\" for the bowl when he takes a dump.  Don't as \n> >me how, I just have seen the results.\n> >\n> >Boy, I really wish we we cut the drug war and have more people screwed up in \n> >the head.\n> >\n> \n> I'll answer you're sarcasm with more sarcasm:\n> \n> \tBoy, it looks like the WOD is WORKING REALLY GOOD to stop people from\n> \tbeing screwed up in the head, given that example!\n> \n> (Issue: your friend _got_ his drugs--legal or not legal, he'll continue to\n> get them.  Issue #2: why should _I_, as somebody who does NOT use illegal\n> drugs and who IS NOT \"screwed up\" have to PAY for this idiot's problems?  He's\n> not doing anybody any harm except himself.  The WOD, on the other hand, is an\n> immediate THREAT to MY life and livelyhood.  Tell me why I should sacrafice\n> THIS to THAT!).\n\nAnd not only that, but if the drugs were legal we could have pharmacists instead\nof pushers selling them, and the pharmacists could be obligated to not only\ninform the purchasers of the dangers of drug use, but also show them how to use\nthe drugs in relatively safe ways.  And the dangers of impurities (responsible\nfor much of the suffering that drugs cause) would be all but eliminated.\n\n\n  - Dave Borden\n    borden@m5.harvard.edu\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10223, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jeremi@ee.ualberta.ca (William Jeremiah)\nSubject: Looking for printer driver\nNntp-Posting-Host: bode.ee.ualberta.ca\nOrganization: University Of Alberta, Edmonton Canada\nLines: 8\n\n  I'm looking for a c.itoh printer driver for Windows 3.1.  Does anybody\nhappen to know where I could find such a beast?\n\n  Thanks in advance,\n    Jerry\n-- \n\n\"Look ma! No .signature!\"\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10224, "properties": {"category": "rec.sport.hockey", "text": "From: kkeller@mail.sas.upenn.edu (Keith Keller)\nSubject: Re: Goalie masks\nArticle-I.D.: netnews.120666\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 10\nNntp-Posting-Host: mail.sas.upenn.edu\n\nMy vote goes to John Vanbiesbrouck.  His mask has a skyline of New York\nCity, and on the sides there are a bunch of bees (Beezer).  It looks\nreally sharp.\n\n--\n    Keith Keller\t\t\t\tLET'S GO RANGERS!!!!!\n\t\t\t\t\t\tLET'S GO QUAKERS!!!!!\n\tkkeller@mail.sas.upenn.edu\t\tIVY LEAGUE CHAMPS!!!!\n\n            \"When I want your opinion, I'll give it to you.\" \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10225, "properties": {"category": "misc.forsale", "text": "From: jllee@acsu.buffalo.edu (Johnny L Lee)\nSubject: RE:  === MOVING SALE ===\nSummary: RE:  === MOVING SALE ===\nOrganization: UB\nLines: 44\nNntp-Posting-Host: lictor.acsu.buffalo.edu\n\nReduced Prices! \nI have a list of things forsale on behalf of my brother, who's moving (moved\nalready)\n\n\t\t\t\t\t\t\t\tOffer:\n1) Black and Decker Duster Plus (Portable Hand Vaccum)\t\n \tpurchased for $32, \t\t\t\t\t  $12\n\n2) SR-1000 Dual Cassette Portable Player, AM/FM\n5-Band graphics Equalizer, high speed dubing, Duo \nTape.Tape deck A, seems to have lost treble sound. \nBut, I bet  it's fixable.\n\tpurchased for $80\t\t\t\t\t  $25\n\n3)Monolux Zoom MicroScope, up to 1200X magnification\nMade in Japan, includes case and accessories\n\tpurchased for $50\t\t\t\t\t  $20\n\n4)Sunbeam 1400 Hair Dryer, the dryer you put your \nhead under/into. You know, the ones you see in the salons.\n(Don't ask me why my bro had it)\n\tpurchased for $60\t\t\t\t          $24\n\n5)Everylast Speed Bag, all leather. Brand new, never \nused\t\t\t\t\t\t\t\t  $10\n\n6)Osterizer Pusle Matic Blender, with 10 speeds \nand a cookbook, 5 years old\t\t\t\t\t  $10\n\tpurchased for $50\n\n8)Binolux Binoculars . 7x35, extra wide angle\n525ft. at 1000yds. with case. very new.\t\t                  $20\n\n9)Proctor and Silex Spray,Steam and Dry Iron.\nvery new.\t\t\t\t\t\t\t  $10\n\n\nAny questions, contact me thru e-mail and I will reply expeditously\nAnd always, S+H are not included, so please consider this.\n\nAnd lastly, I'm a very reasonable.Very Reasonable.\n\n\t\t\t\t\tThanks,\n\t\t\t\t\t\tJohn\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10226, "properties": {"category": "misc.forsale", "text": "From: chein@eng.auburn.edu (Tsan Heui)\nSubject: IN CASE A DEAL IS A LEMON ....\nNntp-Posting-Host: wilbur.eng.auburn.edu\nOrganization: Auburn University Engineering\nDistribution: usa\nLines: 22\n\n\nHi to all.\n\nSince all of you could also be a seller as well as a buyer, I'd like to bring\nthis issue for discussion - what would be the best solution in case a deal \nbecame a lemon?\n\nAs I understand most people selling things over the net do not grant a warranty,I am in such a situation that the seller did not state whether a warranty would be granted or not and the item I received is out of order. The seller insisted\nthat it was 'in good condition' when he sent it and so would just return half ofthe amount that I paid if I send the item back to him and after he is sured it\nis bad. Is this reasonable?\n\nBasically I would like to believe the seller tells the truth. Also, I am positively to say that I've not done anything wrong which might cause the failure of \nthe thing. My assumption here is everyone is honest - so rule out the possibility that either one of the two parties or both are liars.\n\nI would like to hear your opinion - either in here or directly respond to my\ne-mail address.\n\nI know there is such a risk that you could lose money. But, how can we make it\nenjoyable to most people and not wasting the bandwidth?\n\nchein\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10227, "properties": {"category": "sci.med", "text": "From: homer@tripos.com (Webster Homer)\nSubject: Mind Machines?\nSummary: Do mind machines work?\nKeywords: mind sleep Light&Sound\nOrganization: Tripos Associates, Inc.\nLines: 19\n\nI recently learned about these devices that supposedly induce specific \nbrain wave frequencies in their users simply by wearing them. Mind machines\nconsist of LED gogles, head phones, and a microprocessor that controls them.\nThey strobe the (closed) eye and send sound pulses in sync with the flashing\nLEDs. I understand that these devices are experimental, but they are available.\nI've heard claims that they can induce sleep, and light trance states for\nrelaxation. Essentially they are supposed to work without aid of drugs etc...\nI would think that if they work as reported they would be incredibly useful,\nThe few sources I've seen are biased (they are selling the things, and a\nfriend who has tried them claims that \"every home should have one\"). So \ndo these mind machines (aka Light and Sound machines) work? can they induce\nalpha, theta, and/or delta waves in a person wearing them? What research if\nany has been done on them? Could they be used in lieu of a tranquilizer?\nOr are they just another bit of quackery?\n\nWeb Homer\n\nhomer@tripos.com\n \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10228, "properties": {"category": "comp.windows.x", "text": "From: hgn@pmw1.nuclint.NL (Hans Geurtsen)\nSubject: Cursors\nOrganization: The Internet\nLines: 19\nTo: motif@alfalfa.com, xpert@expo.lcs.mit.edu\n\nAccording to the OSF/Motif Style Guide, one should use cursor shapes to give\nthe user a visual clue of what is happening or what is expected of him. So\na \"hourglass\" cursor should be shown when the application is busy, or a\n\"caution\" cursor should be shown over an area when input is expected in\nanother. Defining cursors for widgets has to be done at rather low level.\nSo defining a cursor for all widgets in an application but not for a certain\nsubpart of it, is a rather complicated matter. When cursors have been defined\nfor some windows, e.g. a \"crosswire\" cursor for a DrawingArea, things get even\nmore complicated. My intuition says that things should be easier, but is this\nso? If anyone has a solid and complete solution to my problem, please let me\nknow. The topics on \"busy cursors\" in the several FAQ's are not helpful, since\nthey only work for applications where all windows have the cursor window\nattribute set to 'None'.\n-----------------------------------------------------------------\nHans Geurtsen                       Phone: (31) (0) 8385 - 33157\nNucletron Research BV.             e-mail: hgn@nuclint.nl\n                                  Surface: Waardgelder 1\n                                           NL-3905 TH  Veenendaal\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10229, "properties": {"category": "comp.sys.mac.hardware", "text": "From: HK.MLR@forsythe.stanford.edu (Mark Rogowsky)\nSubject: Re: New Apple Ergo-Mouse\nOrganization: Stanford University\nLines: 31\nDistribution: usa\nNNTP-Posting-Host: morrow.stanford.edu\n\nIn article <C52qM2.on@dartvax.dartmouth.edu>,\ngeoffb@coos.dartmouth.edu (Thumper) writes:\n>In <5APR199312491648@utkvx.utk.edu> nwcs@utkvx.utk.edu (Schizophrenia means never being alone) writes:\n>\n>>Does anyone know how to open up the Apple Ergo-Mouse (ADB Mouse II)?  Mine\n>>lives near a cat (true, really...) and picks up her fur.  From what I can tell,\n>>it looks like Apple welded it shut.\n>\n>\n>By rotating the plate around the mouse ball counter-clockwise you can open\n>the mouse and clean it. It isn't as obvious as the Desktop Bus Mouse I but\n>it opens quite easily once you see what has to be done.\n>\n>-Geoff\n>--\n>geoffb@Dartmouth.EDU - Computing Support Consultant, Tuck School of Business\n>\n>                       If you don't vote... you don't count.\n\nI think the original poster meant opening the mouse, not just\nreleasing the ball and getting to the rollers. I found that on the\noriginal ADB mouse, sometimes unscrewing the two halves allowed for\neasier cleaning.\n\nIf the original poster has his answer, I'll ask: How do you open the\nnew ergonomic mouse? By open, I mean split the two halves to get at\nthe guts. It isn't obvious to me based on the 5 minute look I spent\nwith one at the office yesterday as there are no visible screw\nheads.\n\nMark\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10230, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gryphon@openage.openage.com (The Golden Gryphon)\nSubject: Re: Intel, the Pentium and Linux\nArticle-I.D.: openage.1993Apr04.175934.8526\nOrganization: Open Age, Inc.\nLines: 40\n\nINABU@ibm.rz.tu-clausthal.de (Arnd Burghardt) writes:\n\n>Hi folks,\n> \n>Yesterday i visited the CEBIT (hannover, germany), where Intel was presenting\n>the Pentium (586) processor. They had four (in words 4) machines with this\n>beast running. So they presented it nicely (unly by running picture shows),\n>this i could do on a 80286 ;-)). The presentor promised it to be binary\n>compatible to the i486, and I said I don't believe. I showed him a ONE_DISK_\n>Linux-System (Emergency disk, with patched lilo to boot from disk), and said\n>him : Convice me, boot this :  No guts, no glory ! A he decided no glory.\n>He won't let anybody touch his holy cows, and not even boot a suspect OS.\n> \n>I thought by myself 'This is the coward of the day' and went back to earth.\n> \n>What cn we learn : this technology is far from industrial-standarts, so you\n>can expect this beast in your local computer-shop at least in spring next\n>year....\n> \n>only my 2cents....\n\nYes only your $00.02.  Here's mine.\n\nIf I were running at a new chip at a Trade show, and had little to no real\ntechnical knowledge,  I wouldn't let some stranger with a diskette boot my demo\nmachine.  If the demo machine is down too long people will not see my nice\ndemos, and if this purposted LINUX diskette is really something that will wipe\nthe disk, or is loaded with a VIRUS!, I'm in deep trouble.\n\nNo marketer in their right mind would let you do this, unless they had\nspecifically invited people to do so, and provided machines to do it with.\n\nWe can we learn : This technology will be shipping from PC vendors in May 1993,\nand will be i486 compatible.\n\n-- \nThe Golden Gryphon \t\t\t\tgryphon@openage.COM\n\"The Crown Jewel of the American Prison System.\" - President Bill\nClinton on living in The White House.\nOpenage - The Premier SCO UNIX integrator in the Washington D.C. area\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10231, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Muslims were one by one cruelly bayonetted to death by Armenians.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 93\n\nIn article <1993Apr15.132954.4396@news.columbia.edu> lasner@watsun.cc.columbia.edu (Charles Lasner) writes:\n\n>How dare you presume that he even has a right to go around a newsgroup \n>with a desire to convince others of any external position he has.  \n\nThey are news because they are the exceptions. And the 'Islamic Holocaust'\nis much the topic of the day. The historical evidence proves that during \nthe period of 1914 to 1920, the Armenian Government ordered, incited, \nassisted and participated in the genocide of 2.5 million Muslim people \nbecause of race, religion and national origin. Armenians perpetrated acts \nof sabotage, destroyed telephone cables, blew up bridges, blocked passes, \nset up ambushes, attacked security stations and small Turkish outposts \nbehind the Ottoman Army lines on the one hand, and on the other ruthlessly \nattacked Turkish and Kurdish villages, slaughtering the Turkish population \nindiscriminately, women, children, old and young alike. Innocent \nMuslims were one by one cruelly bayonetted to death, or massacred with \naxes and swords, or else shut up in mosques or in schools and then burnt\nalive as can be seen below.\n\nWidespread Armenian massacres of innocent Muslims took place in regions \nof Van, Kars, Sivas, Erzurum, Bitlis, Erzincan, Mus, Diyarbakir and \nMaras. The Ottoman Army, while fighting to prevent the Russian invasion,\nalso had to deal with Armenian genocide squads who cowardly hit from \nbehind. The Armenian genocide of the Muslims spread to all parts of \nEastern Anatolia. Starting from late 1914, Armenians committed \nwidespread massacres and genocide in Eastern Anatolia, because the arena\nwas left to the Armenians. Almost every Turkish town and village from \nErzincan up to Azerbaidjan suffered large scale massacres and genocide \nby Armenians and the Turkish genocide has been documented by Armenian, \nRussian, American, British, Ottoman, German, Austrian and French \njournalists and officers who observed the first genocide of this century\ncommitted by the blood-thirsty Armenian genocide squads.\n\nThe Ottoman Army, liberating Trabzon, Bayburt, Erzincan, Erzurum, \nKars and other regions from the Russians, saw that the cities and their \nvillages had been destroyed and burnt, people slaughtered, massacred.\nThe massacres conducted by Armenians, which became a black stain for\nhumanity, shocked and disgusted even the Russian, British, German,\nAustrian, French and American authorities.\n\nAlmost every Ottoman document is related to Armenian massacres and \ncruelties. The inhuman treatment, cruelties, atrocities, genocide by \nArmenian genocide squads perpetrated against innocent Moslem Turkish \nand Kurdish people, are sufficiently reflected in historical documents. \nEven today over seventy-five years later, the terrifying screams of \nthe victims of these cruelties can be heard.\n\n\nSource: Documents: Volume I (1919).\n        \"Document No: 76,\" Archive No: 1/2, Cabin No: 109, Drawer \n        No: 3, File No: 346, Section No: 427(1385), Contents No: 3, 52-53.\n        (To Lt. Colonel Seyfi, General Headquarters, Second Section, \n        Istanbul - Dr. Stephan Eshnanie)\n\n'Neues Wiener Tagblatt' - Vienna, 'Pester Lloyd' 'Local Anzliger' - Berlin,\n'Algemeen Handelsblat' - Amsterdam, 'Vakit' - Istanbul.\n\n\"I have been closely following for two weeks the withdrawal of Russians and\n Armenians from Turkish territories through Armenia. Although two months\n have elapsed since the clearing of the territories of Armenian gangs, I\n have been observing the evidence of the cruelties of the Armenians at \n almost every step. All the villages from Trabzon to Erzincan and from\n Erzincan to Erzurum are destroyed. Corpses of Turks brutally and cruelly\n slain are everywhere. According to accounts by those who were able to\n save their lives by escaping to mountains, the first horrible and fearful\n events begun when the Russian forces evacuated the places which were then\n taken over by Armenian gangs. The Russians usually treated the people \n well, but the people feared the intervention of the Armenians. Once these\n places had been taken over by the Armenians, however, the massacres begun.\n They clearly announced their intention of clearing what they called the\n Armenian and Kurdish land from the Turks and thus, solve the nationality\n problem. Today I had the opportunity to meet Austrian and German soldiers\n who had escaped from Russian prison camps and come from Kars and\n Alexander Paul (Gumru-Leninakan)...Russian officers tried to save the \n Turks and there were clashes between Russian officers and Armenian gangs. \n I am now in Erzurum, and what I see is terrible. Almost the whole city is \n destroyed. The smell of the corpses still fills the air. Although there are \n speculations that Armenian gangs murdered Austrian and German prisoners as \n well, I could not get the supporting evidence in this regard, but there is \n proof of murdering of Turkish prisoners of war.\"\n\n                                                     Dr. Stephan Eshnanie\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10232, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: Vandalizing the sky.\nArticle-I.D.: mksol.1993Apr22.204742.10671\nOrganization: Texas Instruments Inc\nLines: 62\n\nIn <C5tvL2.1In@hermes.hrz.uni-bielefeld.de> hoover@mathematik.uni-bielefeld.de (Uwe Schuerkamp) writes:\n\n>In article <C5t05K.DB6@research.canon.oz.au> enzo@research.canon.oz.au \n>(Enzo Liguori) writes:\n\n>> hideous vision of the future.  Observers were\n>>startled this spring when a NASA launch vehicle arrived at the\n>>pad with \"SCHWARZENEGGER\" painted in huge block letters on the\n\n>This is ok in my opinion as long as the stuff *returns to earth*.\n\n>>What do you think of this revolting and hideous attempt to vandalize\n>>the night sky? It is not even April 1 anymore.\n\n>If this turns out to be true, it's time to get seriously active in\n>terrorism. This is unbelievable! Who do those people think they are,\n>selling every bit that promises to make money? \n\nWell, I guess I'm left wondering just who all the 'light fascists'\nthink *they* are.  Yes, I understand the issues.  I don't even\nparticularly care for the idea.  But am I the only one that finds the\nsort of overreaction above just a *little* questionable?  You must\nfind things like the Moon *really* obnoxious in their pollution.\n\nA few questions for those frothing at the mouth to ask themselves:\n\n\t1) How long is this thing supposed to stay up?  Sounds like it\nwould have a *huge* drag area, not a lot of mass, and be in a fairly\nlow orbit.\n\n\t2) Just what orbital parameters are we talking about here?\nWhat real impact are we talking about, really?  How many optical\nastronomers are *really* going to be impacted?\n\n\t3) Which is more important; adding a few extra days of\n'seeing' for (very few) optical astronomers or getting the data the\nsensors are supposed to return along with the data for large\ninflatables (and the potential there for an inflatable space station)?\nThe choice would seem to be one or the other, since the advertising is\nbeing used to help fund this thing.\n\n\t4) If your answer to 3) above was \"the astronomers\", then feel\nfree to come up with some other way to fund the (to my mind) more\nimportant research data that would be gained by this WITHOUT SPENDING\nANY MORE OF MY MONEY TO DO IT.  In other words, put up or shut up.\n\n>I guess we really\n>deserve being wiped out by uv radiation, folks. \"Stupidity wins\". I\n>guess that's true, and if only by pure numbers.\n\nProbably so.  I'm just not sure we agree about who the 'stupid' are. \n\n>\tAnother depressed planetary citizen,\n>\thoover\n\nYeah, me too.\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10233, "properties": {"category": "comp.windows.x", "text": "From: pramodmm@deforest.ee.washington.edu (Pramod Mahadev)\nSubject: Help on xlib and include files\nArticle-I.D.: shelley.1r6om2INN3tf\nDistribution: world\nOrganization: University of Washington, Seattle\nLines: 28\nNNTP-Posting-Host: deforest.ee.washington.edu\n\n\n Hi Xperts!\n   I have a Sparc-1 with very limited disk space on /usr partition.\n   previously, i was able to run all x-windows applications  and then \n   i upgraded my system to sun o.s. 4.1.3 and realized that , the hard\ndisk did not have enough space to load openwindows. My immediate alternative\nwas to load only the neccessary files to boot the system. This resulted in\nnot loading openwindows. As a result of which none of the X-libraries got loaded.\n\n   I am trying to load just the libraries and include files and bin/X11 files \nrequired for running X-windows and compiling my programs written for Xlib and Xaw.\nIn a desperate effort to regain x-windows, i retrieved /usr/lib/libX*.* files from\nthe tape . /usr/bin/X11/*  and /usr/include/X11/* . Is this enough for running X-windows\n \n BUt i did not get /usr/lib/X11/fonts/  sub directories . these are mainly 100dpi, 75dpi\n and misc. \n\nwhen i run xinit, the error message says /usr/lib/X11/fonts/100dpi etc are not in the\ndefault path. But the problem is i cannot load any of those directories as there is no\ndisk space. \nAre there any temporary suggestions before I get a 1.5 GB disk and load openwindows , to\njust have my x-windows running. \n\nThanks\n\nPramod\n \n-- \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10234, "properties": {"category": "talk.politics.guns", "text": "From: joan@koala.berkeley.edu ()\nSubject: Re: Newspapers censoring gun advertisements\nOrganization: U.C. Berkeley\nLines: 24\nNNTP-Posting-Host: koala.berkeley.edu\n\n\nI don't know what Traders is claiming, but it appears to me that\nthe Oakland Tribune has censored gun ads in the past.  Likewise\nfor the San Francisco Chronicle, and I have never seen a gun\nad in the San Francisco Examiner.\n\nSpecifically, about a year ago on Thursdays, when Traders placed\nits ads, the Chron. ad would not have any graphics representing\nany handgun sale, though text could list it.  The Trib. would\nrun a graphic of a handgun.  The Examiner would not have a Traders\nad at all.\n\nOver the past year while Oakland politicians have made a lot of noise\nabout measures to fight crime the Trib stopped taking the Traders\nad, then started publishing it, but without any handgun graphic, then\nstopped, then started.  Since the Trib. was sold some months ago it\nhas not had the Traders ad.  During one of these non-ad interludes\na Traders employee told me that the Trib. had refused to take their\nads.\n\nYes, the usual Chron. Thursday ad was there today, with graphics\nrepresenting rifles, safes, etc. as usual.\n\nJoan V\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.480+0000", "event": "documents", "entityId": 10235, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Moonbase race, NASA resources, why?\nOrganization: U of Toronto Zoology\nLines: 33\n\nIn article <1993Apr21.210712.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>> So how much would it cost as a private venture, assuming you could talk the\n>> U.S. government into leasing you a couple of pads in Florida? \n>\n>Why must it be a US Government Space Launch Pad? Directly I mean...\n\nIn fact, you probably want to avoid US Government anything for such a\nproject.  The pricetag is invariably too high, either in money or in\nhassles.\n\nThe important thing to realize here is that the big cost of getting to\nthe Moon is getting into low Earth orbit.  Everything else is practically\ndown in the noise.  The only part of getting to the Moon that poses any\nnew problems, beyond what you face in low orbit, is the last 10km --\nthe actual landing -- and that is not immensely difficult.  Of course,\nyou *can* spend sagadollars (saga- is the metric prefix for beelyuns\nand beelyuns) on things other than the launches, but you don't have to.\n\nThe major component of any realistic plan to go to the Moon cheaply (for\nmore than a brief visit, at least) is low-cost transport to Earth orbit.\nFor what it costs to launch one Shuttle or two Titan IVs, you can develop\na new launch system that will be considerably cheaper.  (Delta Clipper\nmight be a bit more expensive than this, perhaps, but there are less\nambitious ways of bringing costs down quite a bit.)  Any plan for doing\nsustained lunar exploration using existing launch systems is wasting\nmoney in a big way.\n\nGiven this, questions like whose launch facilities you use are *not* a\nminor detail; they are very important to the cost of the launches, which\ndominates the cost of the project.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10236, "properties": {"category": "sci.electronics", "text": "From: mb4008@cehp11 (Morgan J Bullard)\nSubject: Re: Uninterruptible Power Supply\nOrganization: University of Illinois at Urbana\nLines: 47\n\nalung@megatest.com (Aaron Lung) writes:\n\n>In article <1qk724INN474@hp-col.col.hp.com> cab@col.hp.com (Chris Best) writes:\n>>I'm no expert at UPS's, but you said something that made it sound like\n>>you didn't realize something.  On a typical UPS (well, on ours, anyway),\n>>there is NO switchover from AC to DC.  All the protected equipment is\n>>ALWAYS running from the batteries (via an inverter), with the usual \n>>condition of also having them on charge.  If the power fails, big deal - \n>>the computers never see it (until the batteries start to droop, but \n>>there's something like 60 car-sized batteries in that cabinet, so it \n>>takes a while).\n>>\n>>If you were gonna run the guts on straight DC instead of an inverter,\n>>why not do it all the time?  Then there'd be no switchover to screw\n>>things up, and no having to sense the failure fast.  Just keep the DC\n>>on charge when the power is on, and it'll be there in zero time when\n>>you \"need\" it.\n>>\n\n>Actually, it's a bit more complicated than that...I sounds to me,\n>your UPS takes in AC, rectifies it to DC to charge the batteries, and\n>then takes the battery DC and chops it to AC again, feeding your\n>equipment.  This approach is the easiest and cleanest way to\n>switchover from the mains to battery once your power kicks out since,\n>as you mentioned, nothing will know about what happened down the line.\n\n>Another way to do the UPS scheme is to use the mains until you\n>lose power, and then kick in the battery backup with it's inverter to\n>replace the lost power.  The problem here is the switchover time and\n>you've got to resync the AC in no time flat.\nThat's a standby unit not a UPS, otherwise there would be no interuption.\nMany standby units are labled as UPS's though.  \n \t\t\tMorgan Bullard mb4008@coewl.cen.uiuc.edu\n\t\t\t\t   or  mjbb@uxa.cso.uiuc.edu\n\n\n>Unfortunately, most everything is built around the assumption that\n>AC is available, so the UPS guys have to provide and AC output to\n>be usable...ya sorta have to make it work with what there already.\n\n>Similar story with our telephone system.  It was first invented back\n>in the 1800's.  We're still using the same damn system (media) as they\n>did back then.  If I have a phone from back then, I can assure you\n>it'll work on today's phone system.  It costs too much to overhaul\n>everyone to a new system, so they make it work with what is out there.\n\n>.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10237, "properties": {"category": "talk.politics.misc", "text": "From: alaramor@magnus.acs.ohio-state.edu (Aaron C Laramore)\nSubject: Re: race and violence\nNntp-Posting-Host: top.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: usa\nLines: 29\n\nJoe,\n\n     As usual, this issue of dysfunction, of bad values, of messed up culture \nis easily embraced by non african americans when it comes to explaining\nproblems in our community. From your post, you apparently find the idea that\nsomething is wrong with African Americans, value-wise, culture wise or\nsomething, very appealing. I never cease to be amazed at how eager non african\namericans are to embrace theories about our problems which basically assert\nthat something is wrong with us. The socio-economic factors which we know help \nto produce high crime levels, like poverty, which exists among us in large \nproportion, I mean when it comes to discussion of african american problems, we\nsomehow become exempt from all these types of factors, and the problem is \nlaid at the doorstep of some neboulous dysfunction we supposedly have. But \nnobody attributes crime amongst white americans to dysfunction. No, that has \nsocioeconomic factors to it, but for africa americans, its gotta be a \ndysfunction.\n\nBasically, I think this tendency for non african americans to believe that\nsomething is wrong with us exists because non african americans don't want to\ndeal with the possiblility that the society is deeply biased against african\namericans, and that this is about 80% of the problem. It could not possible be\nthat the society is so deeply racist and structured against us, that this has\na very effective negative effect on us. No, something is wrong with us.\nNon african americans are quick to disregard what we have to say, because they \nare so busy trying to find something wrong with us, instead of taking a good \nhard look at the thing we say are doing us damage. I would get angry if it \nwerent' so damn typical.\n\nPeace - Aaron\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10238, "properties": {"category": "alt.atheism", "text": "From: simon@dcs.warwick.ac.uk (Simon Clippingdale)\nSubject: Re: note to Bobby M., again\nNntp-Posting-Host: nin\nOrganization: Department of Computer Science, Warwick University, England\nLines: 30\n\nIn article <1993Apr13.213527.3706@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n\n> How about people who are not religous?  Take the inner city.  There are\n> many people that care little for religion.  Lot of crime.  Lot of\n> murder.  This is the other end- lack of religion- that allows wrong to\n> happen.\n\nI lived in Tokyo for a year and a half, and one of the many reasons why\nI intend to go back indefinitely is the freedom one enjoys when one can\nwalk anywhere (and I mean *anywhere*) at any time of day or night and not\nfeel uneasy, even if one's from an ethnic minority as I was.\n\nClues for Bobby (why do I bother?): (i) Tokyo is a city, and inner Tokyo\nis an inner city; (ii) there is a negligible level of violent crime, and\na street murder will be a lead item on *national* TV news; (iii) the\npopulation is almost universally atheistic.\n\nNext time I go for a stroll around Beirut at night, I'll let you know how\nit compares.\n\n> Bobby Mozumder\n\nCheers\n\nSimon\n-- \nSimon Clippingdale                simon@dcs.warwick.ac.uk\nDepartment of Computer Science    Tel (+44) 203 523296\nUniversity of Warwick             FAX (+44) 203 525714\nCoventry CV4 7AL, U.K.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10239, "properties": {"category": "rec.sport.baseball", "text": "From: sepinwal@mail.sas.upenn.edu (Alan Sepinwall)\nSubject: Re: WFAN\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 27\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <1993Apr16.174843.28111@cabell.vcu.edu> csc2imd@cabell.vcu.edu (Ian M. Derby) writes:\n>On the serious side:  Maybe we should have a sub for Sports Radio/TV.\n>\n>As much as people complain about one station or another, the\n>information you hear is a lot more in depth than what you can get on\n>the AP wire or USA Today.  So, to benefit those who have favorite\n>teams outside of their vicinity, this would do wonders.  People can\n>get on and talk about what Cataldi said about the Eagles or what\n>Lupica said of the Bonilla incident etc.  This can be for any station\n>across the country.  Anyone agree?\n\n\nI agree, although I would have no idea how to go about doing it. But\nyou've got my vote.\n\n\n--I'm outta here like Vladimir\n--Alan\n\n===========================================================================\n| \"What's this?  This is ice.  This is what happens to water when it gets |\n|  too cold.  This?  This is Kent.  This is what happens to people when   |\n|  they get too sexually frustrated.\"                                     |\n|               -Val Kilmer, \"Real Genius\"                                |\n===========================================================================\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10240, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: jamie@zikzak.apana.org.au (Jamie Scuglia)\nSubject: Workspace Manager for Win 3.1 ?\nOrganization: Zikzak Public Access UNIX, Melbourne Australia\nLines: 8\nNNTP-Posting-Host: zikzak.apana.org.au\n\nAre there any Workspace Managers out there for Windows 3.1 ?\nBy a Workspace Manager, I mean something like the HP APOLLO Workstations\nhave - multiple workspaces under X.  There is a window at the bottom\nof the screen which allows you to select different workspaces.\nIt overcomes the problem of having stacks of windows open on the one\nscreen.  Instead, you can spread them amongst different workspaces\nwhich act like independent screens, and you can flick between them.\nThanks in advance.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10241, "properties": {"category": "sci.space", "text": "From: dbm0000@tm0006.lerc.nasa.gov (David B. Mckissock)\nSubject: NASA \"Wraps\"\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: tm0006.lerc.nasa.gov\nOrganization: NASA Lewis Research Center / Cleveland, Ohio\nLines: 133\n\nIn the April edition of \"One Small Step for a Space Activist\",\nAllen Sherzer & Tim Kyger write:\n  \"Another problem is what are called 'wraps' (or sometimes\n   the 'center tax'). When work for a large program like\n   Freedom or Shuttle is performed at a NASA center, the\n   center skims off a portion which goes into what amounts\n   to a slush fund. This money is used to fund work the\n   center manager wants to fund. This sum is estimated to\n   be over a third of the funds allocated. Think about\n   that: Of the $30 billion cost of Freedom, fully $10\n   billion won't be spent on anything having anything\n   to do with Space Stations! Now, maybe that $10 billion\n   was wisely spent (and maybe it wasn't), but the work done\n   with it should stand on its own merits, not distorting\n   the cost of other projects. Congress has no idea of the\n   existense of these wraps; Congress has never heard the\n   term 'center tax'. They look at the Station they are\n   getting and the price they are paying and note that\n   it doesn't add up. They wonder this blissfully unaware\n   that a third of the money is going for something else.\"\n\nMy dear friends, your mixing fact and fiction here. A couple\nof weeks ago, when I first read this in your posting, I\ntalked with one of the cost experts here in Space Station\nat Headquarters [if you wondering why I didn't post a\nresponse immediately, I do have a real job I'm supposed\nto be doing here at Headquarters, & digging up old 20 kHz\ndata & looking into Sherzer/Kyger claims rates pretty low\non the totem pole of priority. Also, I spent last weekend\nin Kansas City, at the National Science Teachers \nAssociation conference, extolling the virtues of SSF\nto 15,000 science teachers.]\n\nFirst off, yes, the concept of 'center tax', or 'wrap' does\nexist. If I recall the numbers correctly, the total 'tax'\nfor the SSF program for this fiscal year is around $40 Million.\nThis was computed by adding up the WP-1, WP-2, and WP-4\ncenter 'taxes'. With the SSF budget for this fiscal year at\n$2.2 Billion, my calculater says the tax percentage is\n04/2.2 = 1.8%\n\nOver the life of the SSF program, using your figure of $30\nbillion for the cost of SSF, a tax at a 1.8% rate comes to\n$540 million. This is alot less than $10 billion, but I\nwill concede it's still an appreciable amount of pocket\nchange.\n\nI should note that your estimate of the tax rate at 1/3 could\nbe close to the actual rate. The tax is only charged on funds\nthat are spent at the center (kind of like McDonalds at some\nstates, where you do have to pay sales tax if you eat\nthe food at the restaurant, but you don't if you get it\ntake-out). For example, at WP-4, the vast bulk of the funds\nwe receive go to the Rocketdyne Contract, and are *NOT*\nsubject to the center tax (I don't have the numbers in\nfront of me, but I'd guess at least 95% of the WP-4 funds\ngo to Rocketdyne). So, you could be right about a tax\nrate of 1/3, but it's only applied to funds spent at the\ncenter, and not to the prime contracts.\n\nThis leads to the obvious question \"What is the government\ndoing with SSF funds that don't go to the prime contractors?\n(i.e. ok, WP-4 gets a slice of the $30 billion pie. A\nbig portion of this slice goes to Rocketdyne. What happens\nto the balance of the funds, which aren't eaten\nup by the center tax?)\"\n\nAt WP-4, we call these funds we spend in-house supporting\ndevelopment funds (as they are supporting the development\nwork done by Rocketdyne). We have used these funds to\nsetup our own testbed, to checkout the electrical\npower system architecture. Our testbed has a real life\nsolar array field (left over from solar cell research\nresearch a few years back), with lead-acid car batteries\n(to simulate the Nickel-Hydrogen batteries on SSF), DC\nswitchgear, DC-DC converter units, and simulated\nloads. Data from the testbed was used in a recent\nchange evaluation involving concerns about the stability\nof the power system.\n\nWe have also used the supporting development money to\npurchase Nickel Hydrogen batteries, which are on life\ntesting at both Lewis and the Crane Naval facility in\nIndiana. As a side point, 6 of the battery cells on\ntest recently hit the four year life test milestone.\n38 cells have completed 18,552 to 23,405 cycles (the\non-orbit batteries go through 5,840 cycles per year).\n\nAs a final example, my 'home' division at Lewis used\nthe supporting development funds to purchase personal\ncomputers and work stations, for performing system\nanalyses (like modeling of the performance of the\nelectrical power system, availability calculations\nusing a Monte-Carlo simulation, setting up a \ndatabase with information on weight of the power\nsystem elements).\n\nFinally, the money raised by the 'tax' does not all\ngo into a 'slush fund.' At Lewis, the director\ndoes control a small discretionary fund. Each year,\nany individual at Lewis can submit a proposal to\nthe director to get money from this fund to look\nat pretty much anything within the Lewis Charter.\n\nMost of the tax, however, goes to fund the 'general'\nservices at the Center, like the library, the \ncentral computer services division, the Contractor \nwho removes the snow, etc. Thus, it is rather\ndifficult to determine what percentage of the\nSSF budget doesn't go for SSF activities. To get\nan accurate figure, you would have to take\nthe annual expenditure for the library (for example),\nand then divide by the amount of the library funds\nused to support SSF (which would be hard to\ncompute by itself - how would you figure out\nwhat percentage of the bill for Aviation Week for\n1 year is 'billable' to SSF, would you base it on\nthe person-hours SSF employees spend reading AV-week\nversus the rest of the center personnel). You would\nthen have to compare this estimate of the SSF\nportion of the library expense with the portion of\nthe tax that goes to support the library. Who knows,\nmaybe SSF overpays on the tax to run the library, but\nwe underpay for snow removal? Talk about\na burecratic nightmare!\n\nMy last point is that I can't believe your claim that\nCongress has never heard of the term 'center tax.'\nUnfortunately, all of the NASA testimony before\nCongress isn't on a computer, so I can't do a simple\nword search someplace to prove you wrong. But surely,\nin some GAO audit somewhere, these NASA cost methods\nwere documented for Congress?\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10242, "properties": {"category": "rec.sport.baseball", "text": "From: frankkim@CATFISH.LCS.MIT.EDU (Frank Kim)\nSubject: Erickson, Keith Miller?\nOrganization: MIT Laboratory for Computer Science\nLines: 12\n\n\nHI,\n\nI was just wondering if anyone knew when Erickson\nand Keith Miller are expected to come back and what\nexactly ails them.\n\n-- \n\nSincerely,\n\n\t\t\tFrank S. Kim\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10243, "properties": {"category": "soc.religion.christian", "text": "From: drt@athena.mit.edu (David R Tucker)\nSubject: Re: Question: Jesus alone, Oneness\nOrganization: Massachusetts Institute of Technology\nLines: 52\n\nIn article <Apr.21.03.26.22.1993.1355@geneva.rutgers.edu>,\nBjorn.B.Larsen@delab.sintef.no (A 369) writes:\n|> Can anybody tell me the basic reasons for holding a belief that there\n|> is only Jesus? And vice versa: The foundations for the Trinity?\n|> \n|> Bjorn\n\nI'd love to know how \"Jesus only\" proponents would answer questions like:\n\n-Who is this \"Father\" Jesus keeps referring to? Why does He call Himself \"the\nSon\"?\n\n-Why does He pray to the Father, and not to himself?\n\n-Why does He emphasize that he does his Father's will, and not his own?  If He\n was doing his own will, what kind of example is that?  Should we follow it?\n\n-When He says he has to return to the Father, who is He going to?\n\n-When He says he does this in order that the Comforter, the Holy Spirit might\n come, who might that be?\n\n-If He claims that the coming of the Holy Spirit is such a blessing that it's\n worth His leaving us and returning to the Father, what can that mean if there\n is no Holy Spirit?\n\n-Why doesn't the best known Christian prayer begin \"Our Saviour, who art in\n heaven,\" rather than \"Our Father?\"\n\nDo they have answers to these questions that are even plausible?\n\n(Further entertaining queries are left as an exercise to the reader.)\n\n-drt\n\n-- \n------------------------------------------------------------------------\n|David R. Tucker\t\tKG2S\t\t     drt@athena.mit.edu|\n------------------------------------------------------------------------\n\n[There may be some misunderstanding over terms here.  I believe \"Jesus\nonly\" originally was in the context of baptism.  These are folks who\nbelieve that baptism should be done with a formula mentioning only\nJesus, rather than Father, Son, and Holy Spirit.  This may have\ndoctrinal implications, but as far as I know it does not mean that\nthese folks deny the existence or divinity of the Father.  I'm not the\nright one to describe this theology, and in fact I think there may be\nseveral, including what would classically be called monophysite or\nArian (two rather different views), as well as some who have beliefs\nthat are probably consistent with Trinitarian standards, but who won't\nuse Trinitarian language because they misunderstand it or simply\nbecause it is not Biblical.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10244, "properties": {"category": "talk.politics.mideast", "text": "From: revans@euclid.ucsd.edu (   )\nSubject: Himmler's speech on the extirpation of the Jewish race\nLines: 42\nNntp-Posting-Host: euclid.ucsd.edu\n\n\n WASHINGTON - A stark reminder of the Holocaust--a speech by Nazi \nSS leader Heinrich Himmler that refers to \"the extermination of the\nJewish race\"--went on display Friday at the National Archives.\n\tThe documents, including handwritten notes by Himmler, are\namong the best evidence that exists to rebut claims that the\nHolocaust is a myth, archivists say.\n\t\"The notes give them their authenticity,\" said Robert Wolfe,\na supervisory archivist for captured German records.  \"He was\nsupposed to destroy them.  Like a lot of bosses, he didn't obey his\nown rules.\"\n\tThe documents, moved out of Berlin to what Himmler hoped\nwould be a safe hiding place, were recovered by Allied forces after\nWorld War II from a salt mine near Salzburg, Austria.\n\tHimmler spoke on Oct.4, 1943, in Posen, Poland, to more than\n100 German secret police generals.  \"I also want to talk to you,\nquite frankly, on a very grave matter.  Among ourselves it should be\nmentioned quite frankly, and yet we will never speak of it publicly.\nI mean the clearing out of the Jew, the extermination of the Jewish\nrace.  This is a page of GLORY in our history which has never been\nwritten and is never to be written.\"  [Emphasis mine--rje]\n\tThe German word Himmler uses that is translated as\n\"extermination\" is *Ausrottung*.\n\tWolfe said a more precise translation would be \"extirpation\"\nor \"tearing up by the roots.\"\n\tIn his handwritten notes, Himmler used a euphemism,\n\"Judenevakuierung\" or \"evacuation of the Jews.\"  But archives\nofficials said \"extermination\" is the word he actually\nspoke--preserved on an audiotape in the archives.\n\tHimmler, who oversaw Adolf Hitler's \"final solution of the\nJewish question,\" committed suicide after he was arrested in 1945.\n\tThe National Archives exhibit, on display through May 16, is\na preview of the opening of the United States Holocaust Memorial\nMuseum here on April 26.\n\tThe National Archives exhibit includes a page each of\nHimmler's handwritten notes, a typed transcript from the speech and\nan offical translation made for the Nuremberg war crimes trials.\n\n\t---From p.A10 of Saturday's L.A. Times, 4/17/93\n\t(Associated Press)\n-- \n(revans@math.ucsd.edu)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10245, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re: Drinking and Riding\nOrganization: University College of Wales, Aberystwyth\nLines: 11\nNntp-Posting-Host: 144.124.112.30\n\n\nIn article <1993Apr3.200529.2206@galaxy.gov.bc.ca> bclarke@galaxy.gov.bc.ca writes:\n>In article <C4wKBp.B9w@eskimo.com>, maven@eskimo.com (Norman Hamer) writes:\n>{drinking & riding}\n>>  What is a general rule of thumb for sobriety and cycling? Couple hours after\n>> you \"feel\" sober? What? Or should I just work with \"If I drink tonight, I\n>> don't ride until tomorrow\"?\n\nEven a half a beer will increase your confidence while slugging your reactions\nand judgement - not much maybe, but its hard enough to stay alive out there\nfor any length of time without stacking the odds. I'll not ride after ANY.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10246, "properties": {"category": "talk.politics.guns", "text": "From: 0005111312@mcimail.com (Peter Nesbitt)\nSubject: Need Senate Bill numbers and House Resolution numbers\nLines: 30\n\nSorry for posting this here, but noone has replied to my post from the politics\nside of the group.\n\nI want to get involved in the fight to save our gun rights.  But first, I need\nto get a little more educated.  I've been reading all the magzines and books I\ncan get my hands on, and sifting through hundreds of messages here in the \nInternet.\n\nI want to obtain a COMPLETE list of Senate Bill and House Resolution\nnames/numbers.\n\nCan anyone tell me how/where to obtain this info?  Surely there has to be a\nway to obtain copies of anti-gun legislation from those *&%$#@'s in Washington.\n\nAny help is appreciated.\n\n/-----------------------------------------------------------------------------\\\n\n| Peter D. Nesbitt |     Air Traffic Controller     | PNESBITT@MCIMAIL.COM    |\n\n|                  |       Oakland Bay TRACON       |                         |\n\n|-----------------------------------------------------------------------------|\n\n|  CBR600F2 Pilot  |       NRA Member CCX1380F      |  S&W .41 Magnum Carrier |\n\n\\-----------------------------------------------------------------------------/\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10247, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dcoleman@ccwf.cc.utexas.edu (Daniel M. Coleman)\nSubject: Re: Can't get 1280x1024 to work w/2M ATI Ultra Pro\nArticle-I.D.: geraldo.1quf75$qv1\nOrganization: The University of Texas at Austin, Austin, Texas\nLines: 26\nNNTP-Posting-Host: flubber.cc.utexas.edu\n\nIn article <1993Apr19.144814.17736@aio.jsc.nasa.gov> mancus@sweetpea.jsc.nasa.gov (Keith Mancus) writes:\n>  I am unable to get my Gateway 486DX2/66 to run Windows\n>in 1280x1024.  I ordered a 2M ATI Ultra Pro, and I'm pretty\n>sure the 2M is really there because I *can* select\n>1024x768x65536.   But no matter what I do with the Flex program\n>in the ATI's program group, 1280x1024 remains ghosted out.\n>I have Windows 3.1, build 59 of the drivers, DOS 5.0.  The\n>drivers were installed by Gateway, not by me, so perhaps there's\n>a file missing from the hard drive.  It runs 1024x768 just fine.\n>  I did go into the Desktop window and select 1280x1024.  Sometimes\n>it refuses (ghosted out), other time it accepts it, but when I hit\n>OK and re-enter Desktop, it's back to 1024x768.  At no time does\n>it unghost 1280x1024 in the main Flex window.  Help!\n\nMaybe you need to go into \\mach32\\install and set a refresh rate for\n1280x1024.  You might need to use custom monitor option.\n\nDan\n\n\n-- \nDaniel Matthew Coleman\t\t   |   Internet: dcoleman@ccwf.cc.utexas.edu\n-----------------------------------+---------- : dcoleman@utxvms.cc.utexas.edu\nThe University of Texas at Austin  |\t DECnet: UTXVMS::DCOLEMAN\nElectrical/Computer Engineering\t   |\t BITNET: DCOLEMAN@UTXVMS [.BITNET]\n-----------------------------------+------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10248, "properties": {"category": "sci.electronics", "text": "From: gerald.belton@ozonehole.com (Gerald Belton)\nSubject: PC games (joystick) port\nArticle-I.D.: ozonehol.5109.442.uupcb\nReply-To: gerald.belton@ozonehole.com (Gerald Belton)\nDistribution: world\nOrganization: Ozone Online Operations, Inc., DBA The Ozone Hole BBS\nLines: 29\n\n>Subject says it all - could someone tell me the pinout\n>for a PC type analogue joystick port?\n\nJoystick A:\n1        +5 VDC\n2        Button 1\n3        X Axis\n4        Ground\n5        Ground\n6        Y Axis\n7        Button 2\n8        + 5 VDC\nJoystick B:\n9        +5 VDC\n10        Button 1\n11        X Axis\n12        Ground\n13        Y axis\n14        Button 2\n15        +5 VDC\n\n---\n . SLMR 2.1 . Soft judges make hardened criminals.\n                                                                                 \n----\nThe Ozone Hole BBS * A Private Bulletin Board Service * (504)891-3142\n3 Full Service Nodes * USRobotics 16.8K bps * 10 Gigs * 100,000 Files\nSKYDIVE New Orleans! * RIME Network Mail HUB * 500+ Usenet Newsgroups\nPlease route all questions or inquiries to:  postmaster@ozonehole.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10249, "properties": {"category": "rec.autos", "text": "Organization: Central Michigan University\nFrom: John Foster <32HNBAK@CMUVM.CSV.CMICH.EDU>\nSubject: Re: Changing oil by self.\n <1993Apr15.112826.25211@colorado.edu>\nLines: 38\n\n>From: drew@kinglear.cs.colorado.edu (Drew Eckhardt)\n>In article <pod.734834505@sour.sw.oz.au> pod@sour.sw.oz.au (Paul O'Donnell) wri\n>>In <1qgi8eINNhs5@skeena.ucs.ubc.ca> yiklam@unixg.ubc.ca (Yik Chong Lam) writes\n>>\n>>>Hello,\n>>\n>>>      Does anyone know how to take out the bolt under the engine\n>>>compartment?  Should I turn clockwise or counter?  I tried any kind\n>>>of lubricants, WD-40,etc, but I still failed!\n>>>      Do you think I can use a electric drill( change to a suitable\n>>>bit ) to turn it out?  If I can succeed, can I re-tighten it not too\n>>>tight, is it safe without oil leak?\n>>\n>>You shouldn't need any power tools to undo it, an electric drill\n>>probably won't give you much extra torque anyway.  WD40 will help\n>>things that are seized due to rust but this is unlikely for a drain\n>>plug.  You should be able to undo it with a spanner.  When it\n>>loosens, it will probably become very loose and you will bash your\n>>knuckles on the underside of the car - this is the price you must\n>>pay for doing you own work.\n>\n>No, that's the price you pay for not knowing how to use a\n>wrench.  You want to pull the wrench towards you, away from\n>painful knuckle splitting hard things.  If you can't pull it\n>because things are in the way, push it with an open hand.\n\nI find this method much better myself, too, although I do really\nhate it when the bolt finally comes loose and the wrench and my\nhand both come crashing into my face.  After coming to, which is\nabout 15 minutes later, I change my clothes (because by this time\nall the oil has drained *on* me), and ice my entire face and suck\ndown about 20 Tylenol to ease the pain.  Later in the day I then\nproceed with refilling the engine oil.\n\nIt's just crazy how I try and change the oil on my cars in one\nweekend---I go through about 3 bottles of Tylenol and 2 bags of ice.\n\nJohn\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10250, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ldr@mv.mv.com (Lee Rothstein)\nSubject: Re: Is ms-windows a \"mature\" OS?\nKeywords: ms-windows\nOrganization: MV Communications, Inc.\nDistribution: usa\nLines: 24\n\nTo get hierarchical icon groups in MS-Windows use Norton Desktop for Windows.\n\nMS Windows in not mature. It's lousy. But its supposed to be lousy. It's\ngoal is to be ubiquitous not good. MS-Windows is the\ncourse for the masses in IT Infrastructure 102. (DOS = 102, CP/M = 101.)\n\nUnix was the course for the cogniscenti in IT Infrastructure 101. Together\nthey prove that there is good effect of good IT, and there is good effect\nof ubiquitous IT. What we need, now is both at a significiantly higher\nlevel of function. POSIX + DCE + CORBA + ????? ? See the problem?\n\nNT may be IT Infrastructure 103, but it will also be IT Monopoly 102. (101\nwas IBM.)\n\nWe have a conundrum, gentlepeople. What are we going to do about it?\n\ndubious-\n\nlee\n-- \n------------------------------------------------------------------------------\n       <>  Lee D. Rothstein <> VeriTech <> 7 Merrymeeting Drive <>\n   <>  Merrimack, NH 03054-2934 <> 603-424-2900 <> Fax: 603-424-8549 <>\n         <> Information Technology Verification & Leadership <>\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10251, "properties": {"category": "talk.politics.mideast", "text": "From: melons@vnet.IBM.COM (Mike Magil)\nSubject: Re: Final Solution in Palestine ?\nLines: 89\n\n>\n>O.K., its my turn:\n>\n>       DRIVING THE JEWS INTO THE SEA ?!\n>\n>I am sick and tired of this 'DRIVING THE JEWS INTO THE SEA' sentance attributed\n>to Islamic movements and the PLO; it simply can't be proven as part of their\n>plan !\n>\n\nMay I suggest you chech out the _Palestinian National Covenant (1964)_.  It may\nnot use the exact words as quoted above but I'm sure many will agree that the\nsame message is being issued.  Later on when I get back home I will try to find\nthe precise section(s) but you can do the research for now (I hope).  I also\nrealize that Yasser Arafat renounced the _Covenant_ *to the Western media only*\nbut he has yet to inform the PNC officially and enequivocally of his exact\nintentions on this issue.  Therefore, as far as we are concerned the _Covenant_\nstill stands as the \"Bible\" (so to speak) of the mainstream Palestinian\nNational movement!\n\n\n>(Pro Israeli activists repeat it like parrots without checking its authenticity\n>since it was coined by Bnai Brith)\n\nAs a staunch pro-Israel activist I can confidently say that Bnai Brith has NOT\ninfluenced my opinions on the Arab-Israeli conflict.  As I mentioned above,\njust a little research on the subject will lead anyone to reach a similar\nconclusion on the Palestinian National movement (the PLO in most cases).  BB\ndoes not properly speak for me nor many of the people around me who share\nmy views.\n\n>\n>What Hamas and Islamic Jihad believe in, as far as I can get from the Arab media,\n>is an Islamic state that protects the rights of all its inhabitants under Koranic\n>Law. This would be a reversal of the 1948 situation in which the Jews in\n>Palestine took control of the land and its (mostly Muslim) inhabitants.\n>\n\nWhat 1948 situation?  A negative situation I presume?  Is this the same\n\"situation\" when the Jordanian occupiers of East Jerusalem would not allow the\nJews to go worship at the HOLIEST SITE IN JUDIASM?  Was this an example of\nQu'ranic law being exercised?  If not, I have another suggested reading for\nyou... get into the \"soc.culture.arabic\" newsgroup where the posters have been\ndebating the topic \"Jews in the Qu'ran\" (and may I remind you the people doing\nthe debating appear to be devout Muslims with some knowledge of the Qu'ran).\nYou will find that Jews aren't really viewed positively by the Qu'ran (to put\nit lightly).  So how do you think Jews (or any other non-Islamic religion) will\nbe treated by an Islamic state governed by the words of the Qu'ran?  I think\nthe 1948-1967 \"situation\" in Jerusalem will return *at best*!  What do you\nthink?\n\n>However, whoever committed crimes against humanity (torture, blowing up their\n>homes, murders,...) must be treated and tried as a war criminal. The political\n>thought of these movements shows that a freedom of choice will be given to the\n>Jews in living under the new law or leaving to the destintion of their choice.\n\nAll I have to say to that is, once again, see s.c.a - \"Jews in the Qu'ran\" and\nthink again.  \"Freedom of choice\" is *definitely* not an option in Qu'ranic\nlaw especially for non-Muslims and ALL women!  Remember the Gulf War?  I'm sure\nyou saw the reports about how women had few rights in Saudi Arabia (an Islamic\nstate).\n\n>\n>As for the PLO, I am at a loss to explain what is going inside Arafat's mind.\n>\n\nProbably nothing!  Aside from how to break the news to his Palestinian brethren\nthat the _Covenant_ is \"null and void\" without getting assassinated himself!\n\n>Although their political thinking seems far fetched with Israel acting as a true\n>super-power in the region, the Islamic movements are using the same weapon the\n>Jews used to establish their state : Religion.\n>\n\nIn conclusion, Ahmed, you should go to the library and find the _Palestinian\nNational Covenant (1964)_ and read it VERY CAREFULLY.  By the way, Redpath\nLibrary DOES have it in stock because that is exactly where I found it when I\nwas doing my research.  So enjoy the reading and I hope we will be hearing back\nfrom you soon!\n\n- Mike\n\n---\n       MI     KE   MIK    EMIK   EMI  K        \"Opinions expressed above\n       M I   K E  M   I  K        E   M         are my own and not that\n       M  I K  E  MIKEM  I  KEM   I   K         of 'Big Blue'\"\n       M   I   K  E   M   IKE M  IKE  MIKE\n\nIBM Corp., Toronto, Canada\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10252, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Using California's Antidiscrimination: The Sort Of Case I Predicted\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 30\n\nIn article <C5Jv9A.F1B@exnet.co.uk>, sys1@exnet.co.uk (Xavier Gallagher) writes:\n> In article <15312@optilink.COM> cramer@optilink.COM (Clayton Cramer) writes:\n> >In article <1993Apr08.092954.13507@armory.com>, rstevew@armory.com (Richard Steven Walz) writes:\n# ## Face it, Clayton, he was not found guilty, and so what if gays sometimes\n# ## make it consensually with 16 year old boys. There ARE 16 year old gays, you\n# ## know. And as I recall, the case of the state rested on the testimony of one\n# ## \"victim\" who declined to testify, even under threat. I have had teens since\n# ## I was 40, and so have a lot of people. Face it Clayton, you're just a jerk!\n# ## -RSW\n# ## -- \n# ## * Richard STEVEn Walz   rstevew@deeptht.armory.com   (408) 429-1200  *\n# ## * 515 Maple Street #1   * Without safe and free abortion women are   *\n# ## * Santa Cruz, CA 95060    organ-surrogates to unwanted parasites.*   *\n# #\n# #I am always amazed to see people admit to breaking the law -- and\n# #putting their address in the signature.  Please tell us more about \n# #this.  Were they 13?  14?  Would you like to make a statement for\n# #the district attorney?\n# \n# I had sex with a 13 year old boy, it was great, we did *everything*,\n# well, a hell of a lot.  It was fun anyway.  Oh, and before you turn \n# purple with rage I was 12 at the time.\n# #-- \n# #Clayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\n\nThe Walz monster above, however, was past 40 when he molested these\nkids, as he says above.\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10253, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: adykes@jpradley.jpr.com (Al Dykes)\nSubject: I need a definition of the SPEC and Dhrystone benchmarks\nOrganization: Unix in NYC\nDistribution: na\nLines: 15\n\n\nI need definitions of the SPEC and Dhrystone benchmarks. Any background\nmaterial would also be welcome.\n\nIf anyoneand email something to me or point me to an anonymous FTP server \nI'd appreciate it. \n\nThanks.\n\nAl Dykes\n--------\nadykes@jpr.com\nadykes@ad.com\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10254, "properties": {"category": "talk.religion.misc", "text": "From: rkwmo@pukrs3.puk.ac.za (MNR M OOSTHUYSEN)\nSubject: Re: A KIND and LOVING God!!\nOrganization: PU vir CHO/PU for CHE\nLines: 33\n\nIn article <9304141620.AA01443@dangermouse.mitre.org> jmeritt@mental.mitre.org writes:\n\n>Leviticus 21:9\n>And the daughter of any priest, if she profane herself by playing the\n>whore, she profaneth her father: she shall be burnt with fire.\n\n>Deuteronomy 22:20-21\n>...and the tokens of virginity be not found for the damsel: then they shall\n>bring out the damsel to the door of her father's house, and the men of the\n>city shall stone her with stones that she die...\n\n>Deuteronomy  22:22\n>If a man be found lying with a woman married to a husband, then they shall\n>both of them die...\n\n>Deuteronomy 22:23-24\n>If a damsel that is a virgin be betrothed unto a husband, and a man find her\n>in the city, and lie with her; then ye shall bring them both out unto the\n>gate of that city, and ye shall stone them with stones that they die...\n\n>Deuteronomy 22:25\n>BUT if a man find a betrothed damsel in the field, and the man force her,\n>and lie with her: then the man only that lay with her shall die.\n\nIF it were'nt for the sin of men, none of this killing would have been \nnecesarry, He is KIND and LOVING, but also RIGHTEOUS, \nSIN MUST BE PUNISHED.\n\nBefore Jesus, man had to take the sins on himself.\nBut Jesus died and took it all upon Him, so now we also have a FORGIVING GOD.\n\nIf He were not KIND and LOVING, there wouldn't have been any people left.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10255, "properties": {"category": "rec.motorcycles", "text": "From: dean@fringe.rain.com (Dean Woodward)\nSubject: Re: Boom! Dog attack!\nArticle-I.D.: fringe.oNV82B1w165w\nOrganization: Organization for Mass Confusion.\nLines: 66\n\nryan_cousineau@compdyn.questor.org (Ryan Cousineau)  writes:\n\n> My previous posting on dog attacks must have generated some bad karma or\n> something. I've weathered attempted dog attacks before using the\n> approved method: Slow down to screw up dog's triangulation of target,\n> then take off and laugh at the dog, now far behind you. This time, it\n> didn't work because I didn't have time. Riding up the hill leading to my\n> house, I encountered a liver-and-white Springer Spaniel (no relation to\n> the Springer Softail, or the Springer Spagthorpe, a close relation to\n> the Spagthorpe Viking). Actually, the dog encountered me with intent to\n> harm.\n\n[interesting dog collision story deleted]\n\n> What worries me about the accident is this: I don't think I could have\n> prevented it except by traveling much slower than I was. This is not\n> necessarily an unreasonable suggestion for a residential area, but I was\n> riding around the speed limit. I worry about what would have happened if\n> it had been a car instead of a dog, but I console myself with the\n> thought that it would take a truly insane BDI cager to whip out of a\n> blind driveway at 15-30 mph. For that matter, how many driveways are\n> long enough for a car to hit 30 mph by the end?\n> \n> I eagerly await comment.\n\nMy driveway and about half my neighbor's driveways are long enough to\ndo a good 80 clicks (50mph for the velocity impaired) if we wanted to.\nGranted, I live in the country, however I've seen neighbors whip out\nof their driveways at the above mentioned 30 mph quite a bit- they\nclaim they can tell that \"There's noone on the road for quite a ways.\"\nThis despite having nearly been hit myself by one of them while driving\na Chev 4x4, and twice taking my 10-speed bicycle over the hood of a\ncar that had pulled out, saw me, *then* stopped.  Same driver.  Same car.\nAbout two months apart.  \n\nObMoto:  The scary relevant part is that these people and I live on the type\nof twisty two lane that we all favor for riding- and I know damn well\nthat they can't see me on my bike, not if they couldn't see me in \nmy pickup.\n\n> Ryan Cousinetc.|1982 Yamaha Vision XZ550 -Black Pig of Inverness|Live to Ride\n> KotRB          |1958 AJS 500 C/S -King Rat                      |to Work to\n> DoD# 0863      |I'd be a squid if I could afford the bike...    |Flame to\n> ryan.cousineau@compdyn.questor.org  |   Vancouver, BC, Canada   |Live . . .\n> \n> \n>  * SLMR 2.1a * \"He's hurt.\" \"Dammit Jim, I'm a Doctor -- oh, right.\"\n>                                                                              \n> ----\n> +===============================================================+\n> |COMPUTER DYNAMICS BBS    604-255-9937(HST)    604-986-9937(V32)|\n> |Vancouver, BC, Canada -  Easy Access, Low Rates, Friendly Sysop|\n> +===============================================================+\n\n\n\tThere's nothing like the pitter-patter of little feet,\n\tfollowed by the words \"Hey- you're not my Daddy!\"\n\n\t(Sorry- I had to do it just once)\n\t\n\n--\nDean Woodward         | \"You want to step into my world?\ndean@fringe.rain.com  |   It's a socio-psychotic state of Bliss...\"\n'82 Virago 920        |              -Guns'n'Roses, 'My World'\nDoD # 0866\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10256, "properties": {"category": "comp.sys.mac.hardware", "text": "From: c60b-3jl@web-4f.berkeley.edu (James Wang)\nSubject: Re: What is  \"ROM accelerated video\"?\nOrganization: University of California, Berkeley\nLines: 13\nNNTP-Posting-Host: web-4f.berkeley.edu\n\nIn article <1993Apr15.182206.12714@reed.edu> especkma@reed.edu (Erik. A Speckman) writes:\n\n>In the MacUser article on the new centris and quadra machines mentioned\n>that the C650 and the Q800, and not the C610, had ROM accelerated video.\n>\n>What is it?  I don't recall seeing it in Dale Adams post.\n\nof course it was in Dale's post, just not in the words that MacUser \nused.  ROM accelerated video just means that some quickdraw commands\nhas been rewritten (inside the ROM) to take advantage of the 68040\naddressing modes.  commands that do fills should be slightly faster\nsince the new instructions fetch 2 bytes at a time versus one.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10257, "properties": {"category": "rec.autos", "text": "From: charlesw@sail.LABS.TEK.COM (Charles Wilson)\nSubject: Re: Experience/opinions sought, diesel engines\nArticle-I.D.: sail.13600\nOrganization: Tektronix, Inc., Beaverton,  OR.\nLines: 42\n\nIn article <91321@hydra.gatech.EDU> jkg@jmp.com writes:\n>Apologies if this is a FAQ (is there a FAQ posting for this group? I\n>am an infrequent reader of rec.autos, so I can't remember).\n>\n>I am in the market for a used Chevy Suburban, and have observed that\n>prices for models with diesel engines run about $1000-2000 less than\n>comparable models with a gas engine.\n>\n>There has to be a reason for this.\n>\nYes, there is:  consumer confusion.  In the early 80's with the\nfuel crisis, etc., everyone wanted better fuel mileage.  Diesel fuel\nwas the cheapest fuel available and usually provides better mileage\nthan comparable gasoline engines.  So, GM decided to conver their\n350 gas engine into a diesel engine (I think was a 5.7 liter).  Big\nmistake.  The engine was not redesigned, but converted.  The engine\ncould not handle the higher compression, etc.  Lots of problems with\nthese cars.  This thew up a big red flag to the casual observer --\nDON\"T BUY A DIESEL.  THEY ARE BAD.  This was a gross generalization.\n\nAsk yourself this question -- if your livelihood depended on driving,\nLOTS of it, would you use a dependable or undependable (but cheaper\nin the short run) vehicle?  What do Greyhound busses have in them?\nTrailer Trucks?  Even Train Locomotives?  Are these gasoline engines?\nNo, they are diesel.  Tractor trailer truck manufacturers provide a\n500,000 mile warrantee with they vehicles.\n\nI own an `82 Diesel Suburban.  The 6.2L diesel is a GREAT engine.\nJust keeps going.  It was more expensive (when new) than the gasoline\nengine vehicle was.  The only problem with diesel engines is that \nwhen they need to be rebuilt, they are expensive.  In a gas 350\nengine, you will pay about $1000 for a rebuild.  Diesel 6.2L is about\n$2000.  But then again, the diesel engine lasts about twice as long\nand gets about 50% better mileage.  A carburator for a gasoline engine\ncosts about $100 to rebuild (or less).  A rebuild of the fuel injection\npump on a diesel will cost about $500 (or more).  But then again,\nyou never need a tune-up.\n\nIf you're looking at a rebuilt 6.2L, I'd say you got a great deal.\nCheck to see if the fuel injection pump was rebuilt also.\n\nGood luck.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.481+0000", "event": "documents", "entityId": 10258, "properties": {"category": "sci.crypt", "text": "From: ricktait@bnr.co.uk (Rick Tait)\nSubject: Re: What the clipper nay-sayers sound like to me.\nNntp-Posting-Host: 47.20.192.158\nOrganization: Network Management Systems, Bell Northern Research.\nX-Newsreader: TIN [version 1.1 PL8]\nDistribution: na\nLines: 45\n\nNathaniel Sammons (ns111310@LANCE.ColoState.Edu) wrote on Mon, 19 Apr 1993 02:36:36 GMT: \n> If the gov establishes a cryptography standard that has to be used by\n> everyone, and everyone's personal key is divided into two segments\n> and stored at two separate, albeit easy to find places, and that key is\n> only 80 bits to begin with, we are screwed (pardon the allusion to the \n> affore-mentioned article)!\n\n> The gov, I believe, as do many others probably already have the cracking chips\n> for this Clipper Chip made.  Hell, they probably based the encoder on the \n> chip that cracks it, that way it's easier to break the code, but since it is a \n> classified algorythm, no one knows that they can crack it so easily.\n\nAgreed. No agency such as the NSA (or whoever) would approve the public \nrelease of a crypto-system, if they didn't already have the technical\nmeans or the know-how to decrypt everything at their whim. Surely the whole\npoint of all this madness is to make Joe Public think that his/her\ncommunications will be kept safe, while James Bond at the NSA can, if need\nbe, have full, decrypted access to someone's communications? That'll be\nquite a heist, if they can pull it off. \n\n\nI thought that the US Government were going to release the algorithm to a\npanel of \"carefully chosen experts\", who would then \"study it deeply, and\nreport their findings\"? Exactly who will these people be? Academics? Or\nGovernment-sponsored researchers? Tiny-toons?\n\n> I, for one, and quite scared of this kind of thing, and plan to support \n> organizations (and even disorganizations) who are fighting against this\n> Clipper Chip in any way that I can.\n\nI can only hope that the same sort of thing doesn't start filtering over\ninto the ears of the UK Government, and if the European Parliament gets\nwind of it, well, we can kiss goodbye to any form of Democracy in Europe \nat all.\n\n> I do not want the government to be able to have access, even with a search\n> warrant, to my keys... and I don't want those keys to be only 80 bits long\n> to begin with!\n\nHallelujah! :-)\n--\nRick M. Tait                                Bell Northern Research Europe\nTel: +44-81-945-3352, Fax: +44-81-945-3352     Network Management Systems\n<PGP 2.2 public key available on request>       New Southgate, London. UK\nemail: ricktait@bnr.co.uk  || rt@cix.compulink.co.uk  ||  ricktait@bnr.ca\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10259, "properties": {"category": "comp.graphics", "text": "From: scott@osi.com (Scott Fleming)\nSubject: Sun IPX root window display - background picture\nKeywords: sun ipx background picture\nOrganization: Objective Systems Integrators, Folsom Ca.\nLines: 22\n\n\nHello netters!\n \nI have a fairly weak question to ask everybody in netland.  I've looked though\nthe last FAQ for comp.graphics but I didn't find my answer.  Thus the post.\n \nI'll keep it short.\n \nQUESTION:  How do I display any raster files, gif files, iff or tiff images\nthat I have on my \"root window\" or background?  I have a sun ipc, openwindows\n3.0, Sun OS 4.1.3 if that helps any.\n \nI've compiled POV for the sun and would like to display some of the work I have\ndone as a background/tile.  Thanks for any help or information that you\nprovide.  Have a good day.\n \nScott Fleming\nOSI\n \nP.S.\nKudo's to the people who provided POV, its great!\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10260, "properties": {"category": "soc.religion.christian", "text": "From: dlecoint@garnet.acns.fsu.edu (Darius_Lecointe)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: Florida State University\nLines: 21\n\nI find it interesting that cls never answered any of the questions posed. \nThen he goes on the make statements which make me shudder.  He has\nestablished a two-tiered God.  One set of rules for the Jews (his people)\nand another set for the saved Gentiles (his people).  Why would God\ndiscriminate?  Does the Jew who accepts Jesus now have to live under the\nGentile rules.\n\nGod has one set of rules for all his people.  Paul was never against the\nlaw.  In fact he says repeatedly that faith establishes rather that annuls\nthe law.  Paul's point is germane to both Jews and Greeks.  The Law can\nnever be used as an instrument of salvation.  And please do not combine\nthe ceremonial and moral laws in one.\n\nIn Matt 5:14-19 Christ plainly says what He came to do and you say He was\nonly saying that for the Jews's benefit.  Your Christ must be a\npolitician, speaking from both sides of His mouth.  As Paul said, \"I have\nnot so learned Christ.\"  Forget all the theology, just do what Jesus says.\n Your excuses will not hold up in a court of law on earth, far less in\nGod's judgement hall.\n\nDarius\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10261, "properties": {"category": "rec.sport.hockey", "text": "From: farenebt@craft.camp.clarkson.edu (Droopy)\nSubject: AHL playoff results (4/15)\nOrganization: Clarkson University\nLines: 70\nNntp-Posting-Host: craft.clarkson.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nGAME(S) OF 4/15\n---------------\nADIRONDACK 6\tCDI 2\t(Adirondack leads series, 1-0)\n\n=================================================\t\t\t\nFIRST ROUND\t\t\t\t\t\nSpringfield Indians vs Providence Bruins\nGm 1:\tSpringfield 3\tPROVIDENCE 2\t\nGm 2:\tSpringfield 5\tPROVIDENCE 4\nGm 3:\t4/16\tProvidence at Springfield\nGm 4:\t4/17\tProvidence at Springfield\nGm 5:\t4/22\tSpringfield at Providence\t*\nGm 6:\t4/24\tProvidence at Springfield\t*\nGm 7:\t4/27\tSpringfield at Providence\t*\n\nCD Islanders vs Adirondack Red Wings\nGm 1:\tADIRONDACK 6\tCDI 2\nGm 2:\t4/17\tCDI at Adirondack\nGm 3:\t4/18\tAdirondack at CDI\nGm 4:\t4/21\tAdirondack at CDI\nGm 5:\t4/23\tCDI at Adirondack\t*\nGm 6:\t4/24\tAdirondack at CDI\t*\nGm 7:\t4/26\tCDI at Adirondack\t*\n\nBaltimore Skipjacks at Binghamton Rangers\nGm 1:\t4/16\tBaltimore at Binghamton\nGm 2:\t4/17\tBaltimore at Binghamton\nGm 3:\t4/23\tBinghamton at Baltimore\nGm 4:\t4/24\tBinghamton at Baltimore\nGm 5:\t4/26\tBaltimore at Binghamton\t*\nGm 6:\t4/28\tBinghmaton at Baltimore\t*\nGm 7:\t4/30\tBaltimore at Binghamton\t*\n\nUtica Devils vs Rochester Americans\nGm 1:\t4/16\tUtica at Rochester\nGm 2:\t4/17\tUtica at Rochester\nGm 3:\t4/20\tRochester at Utica\nGm 4:\t4/22\tRochester at Utica\nGm 5:\t4/24\tUtica at Rochester\t*\nGm 6:\t4/26\tRochester at Utica\t*\nGm 7:\t4/28\tUtica at Rochester\t*\n\nMoncton Hawks vs St John's Maple Leafs\nGm 1:\tSt John's 4\tMoncton 2\nGm 2:\t4/17\tMoncton vs St John's at Halifax\nGm 3:\t4/21\tSt John's at Moncton\nGm 4:\t4/23\tSt John's at Moncton\nGm 5:\t4/26\tMoncton vs St John's at Halifax\t*\nGm 6:\t4/28\tSt John's at Moncton\t\t*\nGm 7:\t4/30\tMoncton vs St John's at Halifax\t*\n\nCape Breton Oilers vs Fredericton Canadiens\nGm 1:\tFredericton 4\tCape Breton 3\t(2OT)\nGm 2:\t4/16\tCape Breton at Fredericton\t\nGm 3:\t4/20\tFredericton at Cape Breton\nGm 4:\t4/22\tFredericton at Cape Breton\nGm 5:\t4/24\tCape Breton at Fredericton\t*\nGm 6:\t4/26\tFredericton at Cape Breton\t*\nGm 7:\t4/28\tCape Breton at Fredericton\t*\n\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n    + Bri Farenell\t\t\tfarenebt@craft.camp.clarkson.edu   +\n    + AHL and ECAC contact for rec.sport.hockey\t\tGo USA Hockey!\t   +\t\n    + Adirondack Red Wings, Calder Cup Champs: '81  '86  '89  '92\t   +\n    + Clarkson Hockey, ECAC Tournament Champs: '66  '91  '93\t\t   +\n    + Glens Falls High Hockey, NY Division II State Champs: '90  '91       +\n    + AHL fans: join the AHL mailing list: ahl-news-request@andrew.cmu.edu +\n    + CONGRATS TO THE BOSTON BRUINS, 1992-93 ADAMS DIVISION CHAMPIONS      +\n    + PHOENIX SUNS, 1992-93 PACIFIC DIVISION CHAMPIONS\t\t\t   +\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10262, "properties": {"category": "sci.crypt", "text": "From: mccoy@ccwf.cc.utexas.edu (Jim McCoy)\nSubject: Re: Fifth Amendment and Passwords\nReply-To: mccoy@ccwf.cc.utexas.edu (Jim McCoy)\nOrganization: The University of Texas - Austin\nLines: 53\nNNTP-Posting-Host: tramp.cc.utexas.edu\nOriginator: mccoy@tramp.cc.utexas.edu\n\n\nIn article <1993Apr19.180049.20572@qualcomm.com>, karn@unix.ka9q.ampr.org (Phil Karn) writes:\n> In article <1993Apr18.233112.24107@colnet.cmhnet.org>, res@colnet.cmhnet.org (Rob Stampfli) writes:\n> |> >Sadly, it does not. Suspects can be compelled to give handwriting and\n> |> >voice exemplars, and to take blood and DNA tests.\n> |> \n> |> I am sure that Mike is correct on this point.  I am also pretty sure that\n> |> administering \"truth serum\" would be ruled a violation of your right\n> |> not to incriminate yourself.  But, what is the salient difference?\n> \n> You can find the salient difference in any number of 5th amendment\n> related Supreme Court opinions. The Court limits 5th amendment\n> protections to what they call \"testimonial\" evidence, as opposed to\n> physical evidence.\n\nI have a question that is a slight variation on the previously mentioned\nexamples that perhaps people could give me some pointers on (it has been a\ncouple of years since my Con Law class in college so I hope I am not\nmissing something obvious here...)\n\nBasic Scenario:\n\n\tI set up a bbs that uses public-key encryption and encryption of\n\tfiles on disk.  The general setup is designed so that when users \n\tconnect they send a private key encrypted using the system public\n\tkey and the user's public-private keypair is used to wrap the\n\tone-time session keys used for encrypting the files on disk.  The\n\tresult of this is that even if I reveal the system private key it\n\tis impossible for anyone to gain access to the files stored on the\n\tmachine.  What is possible is for someone to use the revealed\n\tsystem private key to entice users into revealing thier personal\n\tprivate keys during the authentication sequence.\n\nQuestions:\n\n\tDoes the fact that the system private key does not provide any\n\tinformation useful for a search give me any protection as far as\n\tbeing coerced to reveal the key?  (I doubt it myself..)\n\n\tIt seems providing the system private key does not mean that I am\n\tassisting in \"entrapment\" (the users would send thier key anyway\n\tand are not being enticed into doing something they would not\n\totherwise do) but is there any other hook that can be used?\n\n\tWould the user private-key enticement require wiretap approval?\n\nAny answers or general musings on the subject would be appreciated...\n\njim\n-- \nJim McCoy                |  UT Unix Sysadmin Tiger Team\nmccoy@ccwf.cc.utexas.edu |  #include <disclaimer.h>\nj-mccoy@nwu.edu          |  pgp key available via finger or upon request\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10263, "properties": {"category": "soc.religion.christian", "text": "From: pharvey@quack.kfu.com (Paul Harvey)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: The Duck Pond public unix: +1 408 249 9630, log in as 'guest'.\nLines: 155\n\nI wrote in response to dlecoint@garnet.acns.fsu.edu (Darius_Lecointe):\n\n>[It's not clear how much more needs to be said other than the FAQ.  I\n>think Paul's comments on esteeming one day over another (Rom 14) is\n>probably all that needs to be said.\n\nWas Paul a God too? Is an interpretation of the words of Paul of higher\npriority than the direct word of Jesus in Matt5:14-19? Paul begins\nRomans 14 with \"If someone is weak in the faith ...\" Do you count\nyourself as one who is weak in the faith?\n\n>I accept that Darius is doing\n>what he does in honor of the Lord.  I just wish he might equally\n>accept that those who \"esteem all days alike\" are similarly doing\n>their best to honor the Lord.\n\nYes, but what does the Bible have to say? What did Jesus say? Paul\ncloses Romans 14 with, \"On the other hand, the person with doubts about\nsomething who eats it anyway is guilty, because he isn't acting on his\nfaith, and any failure to act on faith is a sin.\" Gaus, ISBN:0-933999-99-2\nHave you read the Ten Commandments which are a portion of the Law? Have\nyou read Jesus' word in Matt5:14-19? Is there any doubt in your mind\nabout what is right and what is sin (Greek hamartia = missing the mark)?\n\n>However I'd like to be clear that I do not think there's unambiguous\n>proof that regular Christian worship was on the first day.  As I\n>indicated, there are responses on both of the passages cited.\n\nWhereas, the Ten Commandments and Jesus' words in Matt5:14-19 are fairly\nclear, are they not?\n\n>The difficulty with both of these passages is that they are actually\n>about something else.  They both look like they are talking about\n>nnregular Christian meetings, but neither explicitly says \"and they\n>gathered every Sunday for worship\".  We get various pieces of\n>information, but nothing aimed at answering this question.  \n\nMatt5:14-19 doesn't answer your question?\n\n>what day Christians met in their houses.  Acts 20:7, despite Darius'\n>confusion, is described by Acts as occuring on Sunday.  ... It doesn't\n>say they gathered to\n>see Paul off, but that when they were gathered for breaking bread,\n\nBreaking bread - roughly synonymous with eating.\n\n>So I think the most obvious reading of this is that \"on the first day\n>of every week\" simply means every time they gather for worship.  \n\nHow do you unite this concept of yours with the Ten Commandments and\nJesus's word in Matt5:14-19?\n\n>I think the reason we have only implications and not clear statements\n>is that the NT authors assumed that their readers knew when Christian\n>worship was.\n>--clh]\n\nOr, they assumed that the Ten Commandments and Jesus' word in\nMatt5:14-19 actually stood for something? Perhaps they were \"strong in\nthe faith?\"\n\n---------------------------\n\n[No, I don't believe that Paul can overrule God.  However Paul was\nwriting for a largely Gentile audience.  The Law was regarded by Jews\nat the time (and now) as binding on Jews, but not on Gentiles.  There\nare rules that were binding on all human beings (the so-called Noachic\nlaws), but they are quite minimal.  The issue that the Church had to\nface after Jesus' death was what to do about Gentiles who wanted to\nfollow Christ.  The decision not to impose the Law on them didn't say\nthat the Law was abolished.  It simply acknowledged that fact that it\ndidn't apply to Gentiles.  Thus there is no contradiction with Mat 5.\nAs far as I can tell, both Paul and other Jewish Christians did\ncontinue to participate in Jewish worship on the Sabbath.  Thus they\ncontinued to obey the Law.  The issue was (and is) with Gentile\nChristians, who are not covered by the Law (or at least not by the\nceremonial aspects of it).\n\nJesus dealt mostly with Jews.  I think we can reasonably assume that\nMat 5 was directed to a Jewish audience.  He did interact with\nGentiles a few times (e.g. the centurion whose slave was healed and a\ncouple of others).  The terms used to describe the centurion (see Luke\n7) suggest that he was a \"God-fearer\", i.e. a Gentile who followed\nGod, but had not adopted the whole Jewish Law.  He was commended by\nJewish elders as a worthy person, and Jesus accepted him as such.\nThis seems to me to indicate that Jesus accepted the prevailing view\nthat Gentiles need not accept the Law.\n\nHowever there's more involved if you want to compare Jesus and Paul on\nthe Law.  In order to get a full picture of the role of the Law, we\nhave to come to grips with Paul's apparent rejection of the Law, and\nhow that relates to Jesus' commendation of the Law.  At least as I\nread Paul, he says that the Law serves a purpose that has been in a\ncertain sense superceded.  Again, this issue isn't one of the\nabolition of the Law.  In the middle of his discussion, Paul notes\nthat he might be understood this way, and assures us that that's not\nwhat he intends to say.  Rather, he sees the Law as primarily being\npresent to convict people of their sinfulness.  But ultimately it's an\nimpossible standard, and one that has been superceded by Christ.\nPaul's comments are not the world's clearest here, and not everyone\nagrees with my reading.  But the interesting thing to notice is that\neven this radical position does not entail an abolition of the Law.\nIt still remains as an uncompromising standard, from which not an iota\nor dot may be removed.  For its purpose of convicting of sin, it's\nimportant that it not be relaxed.  However for Christians, it's not\nthe end -- ultimately we live in faith, not Law.\n\nWhile the theoretical categories they use are rather different, in the\nend I think Jesus and Paul come to a rather similar conclusion.  The\nquoted passage from Mat 5 should be taken in the context of the rest\nof the Sermon on the Mount, where Jesus shows us how he interprets the\nLaw.  The \"not an iota or dot\" would suggest a rather literal reading,\nbut in fact that's not Jesus' approach.  Jesus' interpretations\nemphasize the intent of the Law, and stay away from the ceremonial\ndetails.  Indeed he is well known for taking a rather free attitude\ntowards the Sabbath and kosher laws.  Some scholars claim that Mat\n5:17-20 needs to be taken in the context of 1st Cent. Jewish\ndiscussions.  Jesus accuses his opponents of caring about giving a\ntenth of even the most minor herbs, but neglecting the things that\nreally matter: justice, mercy and faith, and caring about how cups and\nplates are cleaned, but not about the fact that inside the people who\nuse them are full of extortion and rapacity.  (Mat 23:23-25) This, and\nthe discussion later in Mat 5, suggest that Jesus has a very specific\nview of the Law in mind, and that when he talks about maintaining the\nLaw in its full strength, he is thinking of these aspects of it.\nPaul's conclusion is similar.  While he talks about the Law being\nsuperceded, all of the specific examples he gives involve the\n\"ceremonial law\", such as circumcision and the Sabbath.  He is quite\nconcerned about maintaining moral standards.\n\nThe net result of this is that when Paul talks about the Law being\nsuperceded, and Jesus talks about the Law being maintained, I believe\nthey are talking about different aspects of the Law.  Paul is\nembroiled in arguments about circumcision.  As is natural in letters\nresponding to specific situations, he's looking at the aspect of the\nLaw that is currently causing trouble: the Law as specifically Jewish\nceremonies.  He certainly does not intend to abolish divine standards\nof conduct.  On the other hand, when Jesus commends the Law, he seems\nto be talking the Law in its broadest implications for morals and\nhuman relationships, and deemphasizing those aspects that were later\nto give Paul so much trouble.\n\nIt's unfortunate that people use the same terms in different ways, but\nwe should be familiar with that from current conflicts.  Look at the\nway terms like \"family values\" take on special meaning from the\ncurrent context.  Imagine some poor historian of the future trying to\nfigure out why \"family values\" should be used as a code word for\nopposition to homosexuality in one specific period in the U.S.  I\nthink Law had taken on a similar role in the arguments Paul was\ninvolved in.  Paul was clearly not rejecting all of the Jewish values\nthat go along with the term \"Law\", any more than people who concerned\nabout the \"family values\" movement are really opposed to family\nvalues.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10264, "properties": {"category": "rec.sport.hockey", "text": "From: bks2@cbnewsi.cb.att.com (bryan.k.strouse)\nSubject: NHL PLAYOFF RESULTS FOR GAMES PLAYED 4-19-93\nOrganization: AT&T\nKeywords: Division semis game one\nLines: 77\n\n\n\nNHL PLAYOFF RESULTS FOR 4/19/93.\n\n--------------------------------------------------------------------------------\n\n                  CONFERENCE SEMI-FINALS        BEST OF SEVEN\n      PATRICK              ADAMS              NORRIS              SMYTHE\n \n NJ                  BUF   (leads 1-0)   STL   (leads 1-0)   WIN               \n PIT   (leads 1-0)   BOS                 CHI                 VAN   (leads 1-0)\n\n NYI                 MON                 TOR                 LA    (leads 1-0) \n WAS   (leads 1-0)   QUE   (leads 1-0)   DET   (leads 1-0)   CAL              \n\n--------------------------------------------------------------------------------\n\nToronto Maple Leafs                       1   1   1   -   3\nDetroit Red Wings    (leads series 1-0)   1   4   1   -   6\n\n1st period: DET, Yzerman 1 - (Gallant, Ciccarelli) 4:48\n\t    TOR, Cullen 1 - (Clark, Gill) 10:44\n\n2nd period: DET, Sheppard 1 - (Probert, Coffey) (pp) 5:04\n\t    DET, Burr 1 - (Racine) (sh) 6;42\n\t    DET, Chiasson 1 - (Coffey) (pp) 11:00\n\t    DET, Howe 1 - (Yzerman, Drake) 14;46\n\t    TOR, Gilmour 1 - (Borschevsky, Ellett) (pp) 19:59\n\n3rd period: DET, Racine 1 - (Primeau, Drake) 5:10\n\t    TOR, Lefebvre 1 - (Cullen, Pearson) 7:45\n\nPowerplay Opportunities-Maple Leafs 1 of 5\n\t\t\tRed Wings   2 of 6\n\nShots on Goal-\tMaple Leafs   5   9   9  -  23\n\t\tRed Wings    13   8  12  -  33\n\nToronto Maple Leafs--Potvin (0-1) (33 shots - 27 saves)\nDetroit Red Wings--Cheveldae (1-0) (23 shots - 20 saves)\n\nATT-19,875\n\n--------------------------------------------------------------------------------\n\nWinnipeg Jets                           1   0   1   -   2\nVancouver Canucks  (leads series 1-0)   2   0   2   -   4\n\n1st period: VAN, Adams 1 - (Linden, Bure) (pp) 1:23\n\t    VAN, Craven 1 - (Bure, Murzyn) 9:56\n\t    WIN, Steen 1 - (Shannon, Housley) (pp) 17:53\n\n2nd period: NONE\n\n3rd period: WIN, King 1 - (Barnes) 3:43\n\t    VAN, Linden 1 - (Courtnall, McLean) 12:16\n\t    VAN, Ronning 1 - (Courtnall) 18:31\n\nPowerplay Opportunities-Jets    1 of 3\n\t\t\tCanucks 1 of 6\n\nShots on Goal-\tJets      7   5  10  -  22\n\t\tCanucks   9  12  12  -  33\n\nWinnipeg Jets--Essensa (0-1) (33 shots - 29 saves)\nVancouver Canucks--McLean (1-0) (22 shots - 20 saves)\n\nATT-15,918\n\n--------------------------------------------------------------------------------\n\n\n\\|||||/\n-SPIKE-\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10265, "properties": {"category": "rec.autos", "text": "From: tedebear@leland.Stanford.EDU (Theodore Chen)\nSubject: Re: Plymouth Sundance/Dodge Shadow experiences?\nOrganization: DSG, Stanford University, CA 94305, USA\nDistribution: usa\nLines: 19\n\nIn article <2BD0BDC3.25868@news.service.uci.edu> raman@translab.its.uci.edu (Balaji V. Ramanathan) writes:\n>\tThe part about spending $5000-7000 on repairs reminds me\n>of an article I read in a magazine comparing the 5 year ownership costs\n>of a Toyota Camry and a Ford Taurus or something like that.  The result,\n>which they announced with great flourish was that it cost the same at the\n>end of the period.  That was their argument to prove that you don't go\n>wrong buying the Ford Taurus over the Camry.\n>\n>\tNow, if I remember correctly, the Camry costs about $4000 or so more\n>in initial costs.  Essentially, it means that you spend about $4000 extra\n>on repairs on the Taurus.  That is ridiculous.  Every time your car\n>needs repairs, it is extra hassles, loss of time and a dozen other things.\n>I would much rather spend $5000 more in initial costs than spend $4000 more\n>in repair costs.\n\ndid you account for depreciation?  i seriously doubt that a taurus\nwould rack up an extra $4000 in repair costs over 5 years.\n\n-teddy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10266, "properties": {"category": "talk.religion.misc", "text": "From: brian@lpl.arizona.edu (Brian Ceccarelli 602/621-9615)\nSubject: Re: Biblical Backing of Koresh's 3-02 Tape (Cites enclosed)\nOrganization: Lunar & Planetary Laboratory, Tucson AZ.\nLines: 8\n\nIn article <20APR199301460499@utarlg.uta.edu> b645zaw@utarlg.uta.edu (stephen) writes:\n>For those who think David Koresh didn't have a solid structure,\n>or sound Biblical backing for his hour long tape broadcast,\n>I've enclosed a partial list of the sources he cites or quotes\n>he exactly used. As a Christian sermon, it's pretty good, if not \n>inspired.\n\nDavid Koresh was born in Bethlehem ehh?\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10267, "properties": {"category": "soc.religion.christian", "text": "From: jodfishe@silver.ucs.indiana.edu (joseph dale fisher)\nSubject: Re: Christ references in OT\nOrganization: Indiana University\nLines: 11\n\nAdam, I just finished a study on this, not only looking at the\nprophecies themselves, but where they were fulfilled.  While going only\nthrough the OT, I found 508 references.  After starting to show their\nfulfillment, I found out that I had missed some, so needless to say I\ncannot post them here.  However, the study I did I intend to publish (I\nam in the process of organizing and showing the fulfillments, then I\nwill be ready to write and send it to a publisher).  With any luck\n(and/or free time) I should have it finally done sometime around\nSeptember (I hope).\n\nJoe Fisher\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10268, "properties": {"category": "misc.forsale", "text": "From: hsb@philabs.philips.com (Hemant S. Betrabet)\nSubject: Moving Sale\nOrganization: Philips Laboratories, Briarcliff Manor, NY.\nDistribution: ny\nLines: 9\n\nFor Sale\n\nDining Table (wooden) with 6 chairs  $ 125\nDining Table Scandinavian style $ 30\nSteel Desk - free\n\nIf interested, please call Hemant Betrabet 6431\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10269, "properties": {"category": "sci.med", "text": "From: hbloom@moose.uvm.edu (*Heather*)\nSubject: re: what are the problems with nutrasweet (aspartame)\nOrganization: University of Vermont -- Division of EMBA Computer Facility\nLines: 21\n\nNutrasweet is a synthetic sweetener a couple thousand times sweeter than\nsugar.  Some people are concerned about the chemicals that the  body produces \nwhen it degrades nutrasweet.  It is thought to form formaldehyde and known to\nfor methanol in the degredation pathway that the body uses to eliminate \nsubstances.  The real issue is whether the levels of methanol and formaldehyde\nproduced are high enough to cause significant damage, as both are toxic to\nliving cells.  All I can say is that I will not consume it.  \n\nPhenylalanine is\nnothing for you to worry about.  It is an amino acid, and everyone uses small\nquantities of it for protein synthesis in the body.  Some people have a disease\nknown as phenylketoneurea, and they are missing the enzyme necessary to \ndegrade this compound and eliminate it from the body.  For them, it will \naccumulate in the body, and in high levels this is toxic to growing nerve\ncells.  Therefore, it is Only a major problem in young children (until around\nage 10 or so) or women who are pregnant and have this disorder.  It used to\nbe a leading cause of brain damage in infants, but now it can be easily \ndetected at birth, and then one must simply avoid comsumption of phenylalanine\nas a child, or when pregnant.  \n\n-heather\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10270, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: cgordon@vpnet.chi.il.us (gordon hlavenka)\nSubject: Re: Save my hard disk?!  (allocation error, cross-linked)\nOrganization: Vpnet Public Access\nLines: 137\n\n\n\n Brad Banko writes:\n>While running the MS Quick C compiler in a DOS window under Windows 3.1 \n>this evening, I got a \"program has violated system integrity... close all \n>applications, exit windows and restart your computer\" error.\n\nGawd, I love Windows :-)\n\n>1)  Is there an easy way to restore everything to working order?\n>What might be some better approaches?\n\nYou'll probably want to delete any damaged executables and reload them\nfresh.  Data files should be examined and repaired.\n\n>2)  What might have caused this?  Does the SMARTDRV cache make me more\n>vulnerable?  (I'm suspicious of hard drive caches especially when they\n>cache data writing.)\n\nYou're not stupid.  Smartdrive caches things, and Windows also runs a\nswap file which may contain data also.  All of this is pretty risky\nstuff in a PC environment.\n\n>The straightforward approach would be to run chkdsk with the /f option to \n>fix the disk and then it looks like I would probably have to reinstall Windows\n>and a few other things.\n\nA reasonably accurate prediction...\n\n\nHere's a brief description of how DOS stores files:\n\nThere are three pieces to a file.  The directory entry, the FAT chain,\nand the data area.  You can think of these as a sheet of lined\nnotebook paper, a sheet of graph paper, and a stack of 3X5 cards.\n\nThe directory entry (notebook paper) holds the file name, actual size,\nand first cluster number.  It also holds some other information that's not\nimportant right now.\n\nThe File Allocation Table (FAT) chain (graph paper) tells where to find\nthe actual data.  Each square of graph paper holds a number.  If the\nnumber is zero, the cluster associated with this box is available.  If it\nholds a \"magic\" number, it is either the last piece of a file or a bad\n(unuseable) spot on the disk.  Any other number tells which cluster\ncontains the next section of the file.\n\nThe data area (3X5 cards) is where the actual information is stored.\nThe data area is organized as clusters of a fixed size; storage is\ndoled out in \"chunks\" of one cluster each.  (In your case, one cluster\nis 2048 bytes.)  As a cluster is filled, another is allocated.\n\nTo read a file, you first look at the directory entry to get the\nstarting cluster number.  Now you read the data from that cluster.\nNext, look at the FAT entry for the cluster you just read.  This will\ntell you the cluster number for the next chunk of the file.\nNaturally, these numbers are usually sequential, but they can jump\naround and even go backwards.  Continue reading, one cluster at a\ntime, as you walk this chain through the FAT, until you hit the marker\nwhich says it's the last cluster in the file.\n\nCHKDSK is the DOS utility that checks the sanity and coherence of\nthe directories and the FAT and can bludgeon most flaws into\nsubmission.  It doesn't have any intelligence, so you have to\ndouble-check anything it \"fixes\".\n\nNow let's do a bit of a post-mortem:\n\n>C:\\GFX\\VPIC46\\CVPIC.EXE\n>C:\\GFX\\VPIC46\\VPIC.TXT\n>C:\\GFX\\VPIC46\\VIDEO7.CFG\n>C:\\GFX\\VPIC46\\ORCPRO2.CFG\n>C:\\GFX\\VPIC46\\VGA.CFG\n>C:\\GAME\\GOOSE\\BIRD2.X\n>C:\\WINMISC\\ADV21\\WINADV.EXE\n>   Allocation error, size adjusted\n\nAll of these files have sizes (according to the FAT) which don't match\nthe size reported in their directory entries.  CHKDSK /F will alter\nthe directory entries to match the FAT size.  (In other words,   the\ndirectory entry for CVPIC.EXE may say the file is 64,877 bytes long.\nBut CHKDSK found a FAT chain of 43 clusters attached to it.  (My numbers,\nobviously, are made up.))\n\n>   316 lost allocation units found in 224 chains.\n>    647168 bytes disk space would be freed\n\nDisk space was found which is allocated in the FAT, but is not attached\nto any directory entry.  CHKDSK /F gives you the option of converting these\n\"lost chains\" to files.  You can then examine the files (FILE0000.CHK\nthrough FILE0223.CHK) and rename or discard them.  Or, if you tell\nCHKDSK _not_ to convert them to files, then those clusters will simply\nbe marked \"available\" in the FAT.\n\n\n>C:\\GFX\\VPIC46\\CVPIC.EXE\n>   Is cross linked on allocation unit 16133\n\n...\n\n>C:\\386SPART.PAR\n>   Is cross linked on allocation unit 16133\n\nThese files are both referencing the _same_ data cluster.  Obviously,\none of them (at least) must be wrong.  It's interesting to note that\nC:\\386SPART.PAR is your Windows swap file...\n\nTo fix this, you should copy each cross-linked file to a new name.\nThis will \"fix\" the cross-link by giving the files unique data spaces.\nNow delete the cross-linked files.  Examine the copies and try to\nassemble them properly.  Good luck.  (Hint:  \"Missing pieces\" are\nlikely to be found in those \"lost chains\" at the top...)\n\n>  42366976 bytes total disk space\n>   3958784 bytes in 4 hidden files\n>    153600 bytes in 67 directories\n>  36042752 bytes in 1496 user files\n>   1564672 bytes available on disk\n\nYour disk is pretty close to full.  This may be the actual cause of\nthe problem; perhaps Windows needed to expand its swapfile by an\namount which exceeded available disk space...\n\nIn any case, the short summary is that something trashed your FAT.\nThere are utilities that can mirror your FAT and help repair damage\nafter something like this, but you have to run them _before_ the\nproblem occurs.  Sorry.\n\n\n-- \n----------------------------------------------------\nGordon S. Hlavenka           cgordon@vpnet.chi.il.us\nVote straight ticket Procrastination party Dec. 3rd!\n-- \n----------------------------------------------------\nGordon S. Hlavenka           cgordon@vpnet.chi.il.us\nVote straight ticket Procrastination party Dec. 3rd!\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10271, "properties": {"category": "rec.sport.hockey", "text": "From: umturne4@ccu.umanitoba.ca (Daryl Turner)\nSubject: My predictions\nNntp-Posting-Host: gibson.cc.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Manitoba, Canada\nLines: 79\n\nSmythe Division\n---------------\n\nVancouver vs. Winnipeg - Jets in 7\nThe Jets have played the Canucks tough the last three games.  Everyone is\nhealthy for the Jets.  I'm biased.  :)\n\nCalgary vs. Los Angeles - Flames in 6\nFrom what I have seen, the Kings have looked flat lately.  I just can't see\nthem getting by the Flames.\n\nFinal- Jets in 6.\nThe Jets haven't lost to the Flames in '93.  They will, but it will be a\nclose series that will come down to how well Roberts has recovered.  I\ndon't think he'll be 100%, and while it will help, it won't be enough.\n\nNorris Division\n---------------\n\nChicago vs. St. Louis/Minnesota\nChicago in 6 against the Blues, 7 against the Stars.  \n\nDetroit vs. Toronto - Wings in 6.\nThe Wings should be able to shutdown Gilmour and Andreychuk.  Chelvadae is\nmore experienced than Potvin.\n\nFinal - Hawks in 7.  Brutal series.  Probert and Chelios will go at it.\nBelfour is better than Chelvadae, IMHO.\n\nConference Final - Hawks in 6.  It hurts, but the Hawks are more experienced,\nand that will carry them through to the final.\n\nPrince of Wales Conference\n--------------------------\n\nAdams Division\n--------------\n\nBoston vs. Buffalo - Bruins in 6.\nB's can check, Juneau is darn good, and Neely.  The Sabres rely too much\non Lafontaine and Mogilny.\n\nQuebec vs. Montreal - Montreal in 7.\nClassic battle, the inexperience will hurt the Nords, this year.\n\nFinal - Bruins in 5.  Habs will be hurting from their series with the Nords,\nand Boston has been able to control the scorers on the Habs.\n\nPatrick Division\n----------------\n\nPittsburgh vs Islanders/Devils - Pens in 5.\nOne word.  Mario.\n\nWashington vs. Devils/Islanders - Caps in 6 / Devils in 7.\nI think the Caps can beat the Isles, but not the Devils.  Tabaracci has been\nstrong in goal, and if he plays like last year, he could carry the team.\nIt doesn't matter, though.\n\nFinal - Pens in 5.  Two more words.  Stevens.  Jagr.\n\nCup Final - Pens in 6.  Three last words.  Tocchet.  Murphy.  Barrasso.\n\nThe only thing I don't like about this is that the Pens woofers are going to\nbe out in full force again.  (I don't mean the regular Penguin fans...it's\njust like the bunch around here that if these predictions are true will post\nlike nuts while the Jets are winning, but we won't hear from again when they\nlose.)\n\n(Oh yeah...next year's Cup prediction...Jets in 7 over the Nords.)\n\n\n\nDaryl Turner : r.s.h contact for the Winnipeg Jets \nInternet: umturne4@ccu.umanitoba.ca  \nFidoNET: 1:348/701 -or- 1:348/4  (please route through 348/700)\nTkachuk over to Zhamnov, up to Sel{nne, he shoots, he scores! \nThe Jets win the Cup!  The Jets win the Cup!\nEssensa for Vezina!  Housley for Norris!  Sel{nne for Calder!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10272, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: manu@oas.olivetti.com (Manu Das)\nSubject: Wanted sample source for editing controls\nOrganization: Olivetti ATC; Cupertino CA, USA\nLines: 18\nDistribution: usa\nNNTP-Posting-Host: todi.oas.olivetti.com\n\n\nHi Everyone,\n\nI would like to get an example program(source code) to get started with a simple\neditor (similar to windows dialog editor, but lot simplified) . Can someone\npoint me to a source such as a programming windows book, or example program\ncomes with Windows SDK (from Microsoft or Borland). I would greatly appreciate\nit.\n\nAll I want to do is to be able to place a edit control or combobox or a listbox\non a window and be able to drag and resize.\n\nIf anyone has written similar program and don't mind sharing code or ideas, \nI would appreciate it very much.\n\nThnx in advance, Manu Das\n\nPlease send me directly at manu@oas.olivetti.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10273, "properties": {"category": "rec.autos", "text": "From: boyle@cactus.org (Craig Boyle)\nSubject: Re: Did US drive on the left?\nArticle-I.D.: cactus.1993Apr6.060553.22453\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 14\n\nIn article <YfkBJQS00Uh_E9TFo_@andrew.cmu.edu> \"Daniel U. Holbrook\" <dh3q+@andrew.cmu.edu> writes:\n>>>\n>\n[stuff about RHD deSoto's deleted]\n\n>Well Sweden and Australia, and lord knows wherever else used to drive on\nAustralians still do drive on the \"wrong\" side of the road. I believe\nSweden changed in 1968. The way I heard it was that they swapped\nall the traffic signs around one Sunday....\n\n>the \"wrong\" side of the road, so the export market might have been\n>larger then than just the UK.\n>\nCraig\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10274, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: mmeltzer@wam.umd.edu\nSubject: Re: Diamond Speedstar Driver for v3.1\nNntp-Posting-Host: next02cville.wam.umd.edu\nReply-To: mmeltzer@wam.umd.edu\nOrganization: Workstations at Maryland, University of Maryland, College Park\nLines: 21\n\nIn article <116005@bu.edu> rem@buitc.bu.edu (Robert Mee) writes:\n:-> \n:-> I am looking for a WIN31 driver (or set) for my Diamond \n:-> Speedstar 1MB video card. Does anybody know of an archive\n:-> site that has these? I looked at CICA and it had drivers for\n:-> the Stealth card and for Generic ET4000 cards but not one \n:-> specifically for the Speedstar. Is there one? Or has Diamond\n:-> dropped the Speedstar out of the driver development loop.\n:-> \n\nI just looked at CICA yesterday and noticed that they didn't have  \nanything, but I seem to remember seeing something at WUARCHIVE in the  \n/mirrors/msdos/windows3 directory.  I think I got my 3.1 drivers from  \nAmerica Online though.\n\n---------------------------------------------------------------------\n\t\t\tmmeltzer@wam.umd.edu is\n\n\t\t\t     Marc Meltzer\n\t\t      President of The Meltz Inc\n\t \"Our job is to play games.  Our hobby is to consult.\"\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10275, "properties": {"category": "soc.religion.christian", "text": "From: mdw33310@uxa.cso.uiuc.edu (Michael D. Walker)\nSubject: Re: Portland earthquake\nOrganization: University of Illinois at Urbana\nLines: 67\n\narchau@saturn.wwc.edu (Austin C Archer) writes:\n\n>I am interested in views about the non-event of May 3. Seriously, how can a \n>Christian discriminate between \"messages from God\" which are to be taken \n>seriously, and those which are spurious?  Is there a useful heuristic which \n>would help us avoid embracing messages which, by their non-fulfillment are \n>proven to be false, thus causing the name of Christ to be placed in \n>disrepute? Is this a problem at all?\n\n>I believe that a careful understanding of scripture can help us here. It \n>seems to me that anytime we are proven by events to be mistaken, it points \n>to a serious failure in understanding God's will. It should result in a \n>reevaluation of what we accept as truth.\n\n>I must hasten to add that I was always skeptical, even cynical, about \n>these \"prophesies\" as I tend to be concerning all such. But clearly, many \n>Christians put much stock in them. If the Church represents Christ in the \n>world, then Christians must avoid being made the laughing-stock of the \n>world, lest we dishonor Him. Further, the more often we cry \"wolf\", the \n>less seriously we tend to be taken.\n\n>Any comments?\n\n\n\tGood point -- it is very true that these \"false\" predictions are\ndangerous--we are warned (more than once) in scripture about false prophtets.\n\n\tHowever, as is often the case with other issues, one cannot let those\nwho falsly report such \"visions\" as a reason against believing in any of them\n(I did not get the impression you were asserting this, by the way...I consider\nmy response not so much a response to your posting but a response to the topic\nas a whole).\n\n\tExample:  The Appearances of Mary at Fatima, Portugal in 1917.\n\n\tAmong other things, she predicted the conversion of Russia to Atheism\n\t(something that happened less than a year later w/ the Bolshevik\n\trevolution).  She also predicted the second world war (that is, predicte\tpredicted that it would occur during the papacy of a certain pope, who\n\twas not the current one.  It happened just like she said.)\n\n\tShe warned there would be \"fire in the sky\" as a warning that the \n\tsecond world war was about to start.  About a week before Germany\n\tinvaded, weathermen (and women, I suppose) all over Europe, from\n\tEngland to Spain to Eastern Europe, reported the most spectacular\n\treddish color in the sky ever recorded.  To this day some try to \n\texplain it off as the northern lights, and the relation to Mary's\n\tprediction simply coincidence.  You all can decide for yourselves.\n\n\tMary predicted that the Atheistic Russia would spread her evils all\n\tover the world and persecute religion.  \n\n\tShe said many other things as well, too numerous to list here.  Every\n\tsingle one has been realized.  \tOne can only use the term \"coincidence\"\n\tso many times in the same explanation before its use becomes \n\tridiculous.  \n\n\tSO...yes, there are many false prophets and many false reports. There\n\tare true ones, too.  We must always remain open to that.  Fatima was\n\tone example.  There is another one, currently occuring--the \n\tapparitions that have been taking place at Medjurgorje, Yugoslavia\n\t(or whatever its called now).  Mary has been appearing every day for\n\televen years now.  It's time the world started listening.\n\n\tMore info available to any who want it.\n\t\t\t\t\t\tPeace in Christ Our Lord,\n\t\t\t\t\t\t- Mike Walker\n\t\t\t\t\t\t  mdw33310@uxa.cso.uiuc.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10276, "properties": {"category": "talk.politics.mideast", "text": "From: jake@bony1.bony.com (Jake Livni)\nSubject: Re: Israel's Expansion II\nOrganization: The Department of Redundancy Department\nLines: 28\n\nIn article <93111.225707PP3903A@auvm.american.edu> Paul H. Pimentel <PP3903A@auvm.american.edu> writes:\n>What gives Isreal the right to keep Jeruseleum?  It is the home of the muslim a\n>s well as jewish religion, among others.  \n\nWhat gives the US the right to keep New York?  It is the home of the\nUnited Nations as well as being home to a myriad of ethnic groups.\n\n(Actually, NYC is more comparable to the Gaza Strip; the controlling\nauthority would probably be pleased as punch to unload it on someone\nelse -- but no-one seems to want it!  :-)\n\n>Heck, nobody ever mentions what Yitzak Shamir did forty or fifty\n>years ago which is terrorize westerners much in the way Abdul Nidal \n>does today.  Seems Isrealis are nowhere above Arabs, so therefore \n>they have a right to Jerusaleum as much as Isreal does.\n\nA-historical bullshit.  Shamir fought the British (who, incidentally,\nshipped whole shiploads of Jews back to the Nazis for extermination\nand hung those Jewish fighters that they captured and didn't want to\ndeal with anymore).  Shamir did not attack civilians on airliners,\ncruise ships, in airports, sports events, movie theaters, markets,\non buses and children in schoolyards.  Your comparison to a Master\nMurderer like Abu Nidal is BLIND!\n\n-- \nJake Livni  jake@bony1.bony.com           Ten years from now, George Bush will\nAmerican-Occupied New York                   have replaced Jimmy Carter as the\nMy opinions only - employer has no opinions.    standard of a failed President.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10277, "properties": {"category": "sci.crypt", "text": "From: grady@netcom.com (1016/2EF221)\nSubject: SOURCE to Mactinosh PGP 2.2 in C available \nOrganization: capriccioso\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 84\n\n*** SOURCE code to Macintosh PGP 2.2 now available via anonymous FTP ***\n\nFTP netcom.com\nCD pub/grady\nMGET MacPGP2.2src.sea.hqx\nMGET MacPGP2.2srcSIGNATURE\n\nConvert to a Compact Pro self-extracting archive with BinHex 4.0.\n\nIf appropriate, check the digital signature of the .hqx file with\nyour copy of PGP.  (Non-Macintosh users wishing to check the digital\nsignature please note that 'CR' denotes the end-of-line on a Macintosh,\nnot 'LF' or 'CRLF'.)\n\nFor the purposes of the ITAR act, this 'unclassified technical\ndocumentation' is hereby released into the public domain.  (However\nno representation is made as to copyright or other commercial rights\nthat may exist in this package.)\n\nFull source code, Symantec THINK C 5.0.4 projects and full user\ndocumentation is included for both 68020 and 68000 versions of Pretty\nGood Privacy, a strong public key encryption and digital signature\napplication using the RSA algorithm patented in the United States\nand the IDEA cipher patented in Switzerland.\n\nNo executables are included.\n\nExecutables are available via anonymous FTP from:\n\nleif.thep.lu.se (Sweden)\nnight.nig.ac.jp (Japan)\nvan-bc.wimsey.bc.ca (Canada)\nsoda.berkeley.edu (P.R. of Berkeley)\nsrc.doc.ic.ac.uk (United Kingdom)\nghost.dsi.unimi.it (Italy)\nplaza.aarnet.edu.au (Australia)\nnic.funet.fi (Finland)\n\n\nOther's public keys are available from anonymous server sites:\n(Send message subject \"help\" for more information.)\n\nInternet sites:\n        pgp-public-keys@junkbox.cc.iastate.edu\n                Michael Graff\n                explorer@iastate.edu\n                FTP: tbird.cc.iastate.edu:/usr/explorer/public-keys.pgp\n        pgp-public-keys@toxicwaste.mit.edu\n                Derek Atkins\n                warlord@MIT.EDU\n                FTP: toxicwaste.mit.edu:/pub/keys/public-keys.pgp\n        pgp-public-keys@phil.utmb.edu\n                John Perry\n                perry@phil.utmb.edu\n                FTP: phil.utmb.edu:/pub/pgp/public-keys.pgp\n        pgp-public-keys@demon.co.uk\n                Mark Turner\n                mark@demon.co.uk\n                FTP: ftp.demon.co.uk:/pub/pgp/pubring.pgp\n\nUUCP site:\n        pgp-public-keys@jpunix.com\n                John Perry\n                perry@jpunix.com\n\nThe executable application built from these sources has NOT been\nlicensed by RSA Data Security, Inc. nor has the RSA public key\nalgorithm or the IDEA block cipher algorithm been approved by\nthe National Security Agency.\n\nThis unclassified technical documentation is made available for\nEDUCATIONAL USE ONLY; possession, distribution, or use of an\nexecutable binary built from this source may be a civil or criminal\noffense.\n\nSuggested improvements, bugs, or comments should be directly posted\nto alt.security.pgp or to the principal developers listed among\nthe source documents.  General questions and comments about public\nkey cryptography or the IDEA cipher may be posted to alt.security.pgp\nor to the sci.crypt Usenet groups.\n\n-- \ngrady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10278, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Best Homeruns\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 18\n\nIn article <1qn6tqINNmnf@senator-bedfellow.MIT.EDU> cmk@athena.mit.edu (Charles M Kozierok) writes:\n>\n>the best home run i have *ever* seen came off, believe it or not,\n>Roger Clemens (sorry, Val) a couple of years ago. he threw a ball to\n>Incaviglia which was literally at Inky's neck, and he absolutely \n>hammered the crap out of it. after the swing, Clemens nonchalantly\n>motioned for a new ball--he didn't even turn around to look, or\n>even get upset. the ball hit the lights in the left-field standard,\n>some 70 or so feet about the Green Monster (over 100 feet above the\n>ground total!)\n>\n>truly an amazing shot.\n\nI agree.  Home runs off Clemens are always memorable.  Kinda like\neclipses and hurricanes.  They don't happen very often.\n\nCheers,\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10279, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 59\n\nIn article <1993Apr16.141409.25036@pmafire.inel.gov> cdm@pmafire.inel.gov (Dale\n Cook) writes:\n>In article <1993Apr15.193603.14228@magnus.acs.ohio-state.edu> rscharfy@magnus.\nacs.ohio-state.edu (Ryan C Scharfy) writes:\n>>In article <stevethC5JGCr.1Ht@netcom.com> steveth@netcom.com (Steve Thomas) w\nri\n>>tes:\n>>\n>>>Just _TRY_ to justify the War On Drugs, I _DARE_ you!\n>>\n>>A friend of mine who smoke pot every day and last Tuesday took 5 hits of acid\n\n>>is still having trouble \"aiming\" for the bowl when he takes a dump.  Don't as\n\n>>me how, I just have seen the results.\n>>\n>>Boy, I really wish we we cut the drug war and have more people screwed up in\n>>the head.\n>\n>I'm sorry about your friend.  Really.  But this anecdote does nothing to\n>justify the \"war on drugs\".  If anything, it demonstrates that the \"war\"\n>is a miserable failure.  What it demonstrates is that people will take\n>drugs if they want to, legal or not.  Perhaps if your friend were taking\n>legal, regulated drugs under a doctors supervision he might not be in the\n>position he's in now.\n>\n\nI do agree with you, in a way.  The war on drugs has failed, but in my opinion,\nthat doesn't mean we have to give up.  Only change the tactics.\n\nFor instance, here are how some penalties should be changed.\n\nDealing Coke -- Death\nDealing Heroin -- Death\nDealing Pot -- Death\nDealing Crack -- Death\n\nThe list goes on and on!!!......\n\nJUST KIDDING!!!\n\nHowever, on a more serious note, I do believe that we should take some money \naway from the foriegn operations in South America and costly border \ninterdiction efforts.  (Don't think I'm going to say, \"spend it to educate \npeople\", because I know plenty of educated dopers).  Actually, spend it on  \nthings like drug treatment programs.\n\nI saw an interesting story on 60 minutes about how the British actually \nprescribe and addict his \"recommended\" dosage, and try to ween him off from it,\nor cut the amount down to levels where it is \"acceptable\".  Sounds good so far \nfrom what I heard with a decrease in cost, lower addiction rates by wiping out \nthe dealer's markets, etc. (But that was the only thing I have heard about it.)\n\nHowever, legalizing it and just sticking some drugs in gas stations to be \nbought like cigarettes is just plain silly.  Plus, I have never heard of a \nrecommended dosage for drugs like crack, ecstasy, chrystal meth and LSD.\nThe 60 Minute Report said it worked with \"cocaine\" cigarettes, pot and heroin.\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.482+0000", "event": "documents", "entityId": 10280, "properties": {"category": "soc.religion.christian", "text": "From: mussack@austin.ibm.com (Chris Mussack)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\") - soc.religion.christian #16242\nReply-To: mussack@austin.ibm.com\nLines: 38\n\nIn article <Apr.13.00.08.22.1993.28397@athos.rutgers.edu>, trajan@cwis.unomaha.edu (Stephen McIntyre) writes:\n> norris@athena.mit.edu  writes:\n> > For example: why does the universe exist at all?  \n> \n> Must there be a \"why\" to this?  I ask because of what you also\n>      assume about God-- namely, that He just exists, with no \"why\"\n>      to His existence.  So the question is reversed, \"Why can't\n>      we assume the universe just exists as you assume God to\n>      \"just exist\"?  Why must there be a \"why\" to the universe?\"\n\nWhether there is a \"why\" or not we have to find it. This is Pascal's(?) wager.\nIf there is no why and we spend our lives searching, then we have merely\nwasted our lives, which were meaningless anyway. If there is a why and we\ndon't search for it, then we have wasted our potentially meaningful lives.\nSuppose the universe is 5 billion years old, and suppose it lasts another\n5 billion years. Suppose I live to be 100. That is nothing, that is so small\nthat it is scary. So by searching for the \"why\" along with my friends here\non earth if nothing else we aren't so scared.\n\nWhat if you woke up at a party, with no memory, and everyone was discussing\nwho the host might be? There might not be a host, you say. I say let's go\nfind him, the party's going to be over sometime, maybe he'll let us stay.\n\nBecause we recognize our own mortality we have to find the \"why\".\n\n> ...\n> Well, then, Buddhism, Confucianism, Taoism, Hinduism, Judaism,\n>      Zoerasterism, Shintoism, and Islam should fit this bit of logic\n>      quite nicely... :-)  All have depth, all have enduring values,\n>      thus all must be true...\n\nThis is a good point. But more of a good point for studying religion\nthan ignoring it. Some Christians disagree with me, but it is worthwhile\nto study different religions and philosophies and glean the truth from\nthem. To quote (of course out of context) \"Test everything and keep what is\ntrue.\"\n\nChris Mussack\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10281, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Re: japanese moon landing?\nOrganization: Jet Propulsion Laboratory\nLines: 16\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <C5Kys1.C6r@panix.com> dannyb@panix.com (Daniel Burstein) writes:\n>A short story in the newspaper a few days ago made some sort of mention\n>about how the Japanese, using what sounded like a gravity assist, had just\n>managed to crash (or crash-land) a package on the moon.\n\nThe Japanese spacecraft, Hiten, crashed on the Moon last weekend.  For the\npast three years it has made several lunar flybys and even did some\naerobraking experiments with Earth's atmosphere.  It was placed in lunar\norbit in February 1992, and I guess it finally ran out of fuel and was\nunable to maintain its orbit around the Moon.  \n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10282, "properties": {"category": "talk.politics.misc", "text": "From: rstevew@armory.com (Richard Steven Walz)\nSubject: Re: How many homosexuals are there?\nOrganization: The Armory\nLines: 68\n\nIn article <1993Apr5.050127.22304@news.acns.nwu.edu> dmeier@casbah.acns.nwu.edu (Douglas Meier) writes:\n>In article <1993Apr4.011042.24938@isc-br.isc-br.com> steveh@thor.isc-br.com\n>(Steve Hendricks) writes:\n>>In article <1993Apr3.211910.21908@news.acns.nwu.edu>\n>>dmeier@casbah.acns.nwu.edu (Douglas Meier) writes:\n>>>...\n>>>If someone beats up a homosexual, he should get charged for assault and\n>>>battery.  Why must we add gay bashing to the list?  Isn't this a sort of\n>>>double jeopardy?  Or am I just being a fascist again?\n>>\n>>() To deter an epidemic of \"gay bashing\" that has not been deterred by\n>>   assault laws.  \n>\n>So we ought to make beating up a homosexual more illegal than beating up a\n>straight?  Silly me, thinking that the issue was that we are all people, to be\n>treated equally.  Thanks for straightening me out.\n------------------------------\nWrong, if a bunch of faggots from the tenderloin decide to go straight\nbashing and they selectively target a heterosexual man and beat the bloody\nfuck out of him, they would get charged as well under all the federal laws\nthat exist about violation of civils rights. The focus of their intent is\nhis sexual orientation, and so the law applies to them as well. The\nnational government retains the right to make any laws necessary to\nsufficiently deter and punish any crime against someone's civil rights\nuntil that behavior becomes so well punished that nobody even tries it!\nThe fact is, that at last count, gays were not beating straights for their\nsexual orientation. Thus, the law is getting applied only to the straights\nwho indulge themselves. The federal government or judiciary has the right\nto enforce the 14th amendment guarantee of equal protection under law even\nif it takes 1000 possible charges against people who would violate them. Go\nread your constitutional law. We broke the back of the KKK's harrassment\ncampaign with the same strategy in the early 1900's. So many went to jail\nand for so long that it cut the heart out of the KKK. \n-RSW\n\n>>() No, it is not \"double jeopardy.\"  A single act may lead to multiple\n>>   charges and multiple crimes.\n>\n>I think what you meant to say here was, \"With the current mutation of the US\n>Constitution under the current police state, someone may be charged multiple\n>times for one act if the victim in question is of the right shade.\"  A single\n>act should never merit more than on charge.  That's almost like if four cops\n>got acquitted from cruel and unusual punishment charges, and the country went\n>and tried them again and again until they... oh.... never mind.\n----------------------------------------\nThis \"mutation\" as you call it, protects your little butt too, if you\nhappen to be somewhere where you're the wrong \"shade\" for somebody else's\ntaste. If it can be shown that the motive for the assault on you was\nracially motivated, then the full power of these extra laws that bring more\ncharges and punishments will come against those who harmed you. The first\nuse of such laws was well over a hundred years ago, and constitutional\nscholars of all conviction recognize that this right reserved to the\nfederal government is well established and not just some short-lived\npeculiarity, too! Go read some constitutional law for awhile. Maybe you'll\nget it.\n-RSW\n\n>Douglas C. Meier\n>dmeier@casbah.acns.nwu.edu\n--------------------------\n\n\n\n-- \n* Richard STEVEn Walz   rstevew@deeptht.armory.com   (408) 429-1200  *\n* 515 Maple Street #1   * Without safe and free abortion women are   *\n* Santa Cruz, CA 95060    organ-surrogates to unwanted parasites.*   *\n* Real Men would never accept organ-slavery and will protect Women.  *\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10283, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Re: Command Loss Timer (Re: Galileo Update - 04/22/93)\nOrganization: Jet Propulsion Laboratory\nLines: 22\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: Galileo, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr23.103038.27467@bnr.ca>, agc@bmdhh286.bnr.ca (Alan Carter) writes...\n>In article <22APR199323003578@kelvin.jpl.nasa.gov>, baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n>|> 3.  On April 19, a NO-OP command was sent to reset the command loss timer to\n>|> 264 hours, its planned value during this mission phase.\n> \n>This activity is regularly reported in Ron's interesting posts. Could\n>someone explain what the Command Loss Timer is?\n> \n\nThe Command Loss Timer is part of the fault protection scheme of the\nspacecraft.  If the Command Loss Timer ever countdowns to zero, then the\nspacecraft assumes it has lost communications with Earth and will go \nthrough a set of predetermined steps to try to regain contact.  The\nCommand Loss Timer is set to 264 hours and reset about once a week during \nthe cruise phase, and is set to a lower value during an encounter phase.  \n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10284, "properties": {"category": "alt.atheism", "text": "From: jbrown@batman.bmd.trw.com\nSubject: Re: Origins of the bible.\nLines: 56\n\nIn article <1993Apr19.141112.15018@cs.nott.ac.uk>, eczcaw@mips.nott.ac.uk (A.Wainwright) writes:\n> Hi,\n> \n> I have been having an argument about the origins of the bible lately with\n> a theist acquaintance.  He stated that thousands of bibles were discovered\n> at a certain point in time which were syllable-perfect.  This therefore\n> meant that there must have been one copy at a certain time; the time quoted\n> by my acquaintace was approximately 50 years after the death of Jesus.\n\nHi Adda,\n\nMost Bible scholars agree that there was one copy of each book at a certain\ntime -- the time when the author wrote it.  Unfortunately, like all works\nfrom this time period and earlier, all that exists today are copies. \n\n> \n> Cutting all of the crap out of the way (ie god wrote it) could anyone answer\n> the following:\n> \n> 1.  How old is the oldest surviving copy of the new testament?\n\nThere are parts of books, scraps really, that date from around the\nmid second century (A.D. 130+).  There are some complete books, letters,\netc. from the middle third century.  The first complete collection of\nthe New Testament dates from the early 4th century (A.D. 325).  Throughout\nthis period are writings of various early church fathers/leaders who\nquoted various scriptures in their writings.\n\n> 2.  Is there any truth in my acquaintance's statements?\n\nIf you mean that someone discovered thousands of \"Bibles\" which were all\nperfect copies dating from the last part of the 1st century...No!\n\nIf you mean that there are thousands of early manuscripts (within the\ndates given above, but not letter perfect) and that the most probable\ntext can be reconstructed from these documents and that the earliest\noriginal autographs (now lost) probably were written starting sometime\nshortly after A.D. 50, then yes.\n\n> 3.  From who/where did the bible originate?\n\nFrom the original authors.  We call them Matthew, Mark, Luke, John, Peter,\nPaul, James, and one other not identified.\n\n> 4.  How long is a piece of string? ;-)\n\nAs long as you make it.\n\n> \n> Adda\n> \n> -- \n\nRegards,\n\nJim B.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10285, "properties": {"category": "sci.med", "text": "From: ski@wpi.WPI.EDU (Joseph Mich Krzeszewski)\nSubject: Re: Krillean Photography\nOrganization: Worcester Polytechnic Institute\nLines: 12\nNNTP-Posting-Host: wpi.wpi.edu\n\nI seem to recall that there was an article in Radio Electronics about this\nsubject. In fact I have a copy of the article in front of me, but I can't\nfind anywhere in the article a refrence as to what month it was in. The system\nthey describe uses an automobile ignition coil for the high voltage. The \narticle even includes some information on what kind of film to use and where \nto get it. \n\nHope this helps.\n\nJoseph M. Krzeszewski\nski@WPI.wpi.edu\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10286, "properties": {"category": "rec.autos", "text": "From: tpickett@auspex.com (Tom Pickett)\nSubject: Re: SHO and SC\nReply-To: tpickett@auspex.com (Tom Pickett)\nOrganization: Auspex Systems, Inc.  Engineering\nLines: 20\nNntp-Posting-Host: 144.48.14.46\n\nIn article <1qehi6$ork@armory.centerline.com>, jimf@centerline.com (Jim \nFrost) writes:\n> Ok, I'll give you a few reasons:\n> \n> 1. Neither car was designed to turn at those speeds.\n> 2. Neither car was designed to stop quickly from those speeds.\n> 3. Safety mechanisms were not designed for impacts at those speeds.\n> 4. An uncontrolled environment leads to unpredictable circumstances\n>    where you might need to turn or stop with no notice.\n\n\nDo you, by any chance own an SHO or have access to one, such that you\nwould have any idea what it is designed for or how it handles?\n\nJust wondering...\n\n\nTom Pickett \ntpickett@auspex.com or 74616.2237@compuserve.com\nSHO  GOZE\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10287, "properties": {"category": "comp.graphics", "text": "From: lipman@oasys.dt.navy.mil (Robert Lipman)\nSubject: CALL FOR PRESENTATIONS: Navy SciViz/VR Seminar\nArticle-I.D.: oasys.32850\nExpires: 30 Apr 93 04:00:00 GMT\nReply-To: lipman@oasys.dt.navy.mil (Robert Lipman)\nDistribution: usa\nOrganization: Carderock Division, NSWC, Bethesda, MD\nLines: 65\n\n\n\t\t\tCALL FOR PRESENTATIONS\n\t\n      NAVY SCIENTIFIC VISUALIZATION AND VIRTUAL REALITY SEMINAR\n\n\t\t\tTuesday, June 22, 1993\n\n\t    Carderock Division, Naval Surface Warfare Center\n\t      (formerly the David Taylor Research Center)\n\t\t\t  Bethesda, Maryland\n\nSPONSOR: NESS (Navy Engineering Software System) is sponsoring a \none-day Navy Scientific Visualization and Virtual Reality Seminar.  \nThe purpose of the seminar is to present and exchange information for\nNavy-related scientific visualization and virtual reality programs, \nresearch, developments, and applications.\n\nPRESENTATIONS: Presentations are solicited on all aspects of \nNavy-related scientific visualization and virtual reality.  All \ncurrent work, works-in-progress, and proposed work by Navy \norganizations will be considered.  Four types of presentations are \navailable.\n\n     1. Regular presentation: 20-30 minutes in length\n     2. Short presentation: 10 minutes in length\n     3. Video presentation: a stand-alone videotape (author need not \n\tattend the seminar)\n     4. Scientific visualization or virtual reality demonstration (BYOH)\n\nAccepted presentations will not be published in any proceedings, \nhowever, viewgraphs and other materials will be reproduced for \nseminar attendees.\n\nABSTRACTS: Authors should submit a one page abstract and/or videotape to:\n\n     Robert Lipman\n     Naval Surface Warfare Center, Carderock Division\n     Code 2042\n     Bethesda, Maryland  20084-5000\n\n     VOICE (301) 227-3618;  FAX (301) 227-5753  \n     E-MAIL  lipman@oasys.dt.navy.mil\n\nAuthors should include the type of presentation, their affiliations, \naddresses, telephone and FAX numbers, and addresses.  Multi-author \npapers should designate one point of contact.\n\nDEADLINES: The abstact submission deadline is April 30, 1993.  \nNotification of acceptance will be sent by May 14, 1993.  \nMaterials for reproduction must be received by June 1, 1993.\n\nFor further information, contact Robert Lipman at the above address.\n\n\t  PLEASE DISTRIBUTE AS WIDELY AS POSSIBLE, THANKS.\n\n\n\n\nRobert Lipman                     | Internet: lipman@oasys.dt.navy.mil\nDavid Taylor Model Basin - CDNSWC |       or: lip@ocean.dt.navy.mil\nComputational Signatures and      | Voicenet: (301) 227-3618\n   Structures Group, Code 2042    | Factsnet: (301) 227-5753\nBethesda, Maryland  20084-5000    | Phishnet: stockings@long.legs\n\t\t\t\t   \nThe sixth sick shiek's sixth sheep's sick.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10288, "properties": {"category": "soc.religion.christian", "text": "From: af664@yfn.ysu.edu (Frank DeCenso, Jr.)\nSubject: MAJOR VIEWS OF THE TRINITY\nOrganization: Youngstown State/Youngstown Free-Net\nLines: 224\n\n[With Frank's permission, I have added some information here (and in\none case changed the order of his contributions) in order to clarify\nthe historical relationship of the views.  My comments are based\nprimarily on William Rusch's historical summary in \"The Trinitarian\nControversy\", Fortress.  I'm going to save this as an FAQ.  --clh]\n\nMAJOR VIEWS OF THE TRINITY\n \n[SECOND CENTURY\n\nThe writers of the 2nd Cent. are important, because they set up much\nof the context for the later discussions.  Justin Martyr, Aristides,\nAthenagoras, Tatian, and Theophilus of Antioch are known as the\n\"Apologists\".  Their theology has often been described as \"Logos\ntheology\".  Based strongly on wording in John, they took more or less\na two-phase approach.  Through eternity, the Logos was with the\nFather, as his mind or thought.  This \"immanent Word\" became\n\"expressed\" as God revealed himself in history, ultimately in Jesus.\nThus Jesus' full distinction from the Father only became visible in\nhistory, though the Logos had been present in God from eternity.\nRusch regards this view is containing many of the emphases of the\nfinal orthodox position, but in a form which is less sophisticated,\nbecause it did not have the technical language to properly deal with\nthe eternal plurality in the Godhead.\n\nIrenaeus held views somewhat similar to the Apologists.  However he\nwas uncomfortable with the two-stage approach.  He still viewed God as\none personage, with distinctions that did not become fully visible\nexcept through his process of self-revelation (the \"economy\").  The\ndistinctions are present in his essential nature.  Irenaeus emphasized\nthe Holy Spirit more than the Apologists.  Irenaeus' views should\nprobably be called \"economic trinitarianism\", though that term is\nnormally used (as below) to refer to later developments.\n\n\nTHIRD CENTURY\n\n--clh]\n\nDynamic Monarchianism\n \nSource: Theodotus\nAdherents: Paul of Samosota, Artemon, Socinus, Modern Unitarians\nPerception of God's Essence: The unity of God denotes both oneness of nature\nand oneness of person. The Son and the Holy Spirit therefore are\nconsubstantial with the Father's divine essence only as impersonal attributes.\nThe divine dunamis came upon the man Jesus, but he was not God in the strict\nsense of the word.\nPerception of God's Subsistence: The notion of a subsistent God is a palpable\nimpossibility, since his perfect unity is perfectly indivisible. The\n'diversity' of God is apparent and not real, since the Christ event and the\nwork of the Holy Spirit attest only to a dynamic operation within God, not to\na hypostatic union.\nAsignation of Deity/Eternality:\n Father: Unique originator of the universe. He is eternal, self-existent, and\nwithout beginning or end.\n Son: A virtuous (but finite) man in whose life God was dynamically present in\na unique way; Christ definitely was not deity though his humanity was deified.\n Holy Spirit: An impersonal attribute of the Godhead. No deity or eternality\nis ascribed to the Holy Spirit.\nCriticism(s): Elevates reason above the witness of biblical revelation\nconcerning the Trinity. Categorically denies the deity of Christ and of the\nHoly Spirit, thereby undermining the theological undergirding for the biblical\ndoctrine of salvation.\n[In summary, this probably best thought of as not being Trinitarianism\nat all.  God is an undifferentiated one.  Son and Holy Spirit are seen\nas simply names for the man Jesus and the grace of God active in the\nChurch.  --clh]\n\n \nModalistic Monarchianism\n \nSource: Praxeas\nAdherents: Noatus, Sabellius, Swedenborg, Scleiermacher, United Pentecostals\n(Jesus Only)\nPerception of God's Essence: The unity of God is ultra-simplex. He is\nqualitatively characterized in his essence by one nature and person.  This\nessence may be designated interchangeably as Father, Son, and Holy Spirit.\nThey are different names for but identical with the unified, simplex God. The\nthree names are the three modes by which God reveals Himself.\nPerception of God's Subsistence: The concept of a subsistent God is erroneous\nand confounds the real issue of the phenomenon of God's modalistic manifesting\nof himself. The paradox of a subsisting \"three in oneness\" is refuted by\nrecognizing that God is not three persons but one person with three different\nnames and corresponding roles following one another like parts of a drama.\nAsignation of Deity/Eternality:\n Father: Fully God and fully eternal as the primal mode or manifestation of\nthe only unique and unitary God\n Son: Full deity/eternality ascribed only in the sense of his being another\nmode of the one God and identical with his essence. he is the same God\nmanifested in temporal sequence specific to a role (incarnation).\n Holy Spirit: Eternal God only as the tile designates the phase in which the\none God, in temporal sequence, manifested himself pursuant to the role of\nregeneration and sanctification.\nCriticism(s): Depersonalizes the Godhead. To compensate for its Trinitarian\ndeficiencies, this view propounds ideas that are clearly heretical. Its\nconcept of successive manifestations of the Godhead cannot account for such\nsimultaneous appearances of the three persons as at Christ's baptism.\n[Rusch comments that evidence on these beliefs is sketchy.  There are\nactually two slightly different groups included: Noetus and his\nfollowers, and Sabellius.  Noetus was apparently more extreme.\nSabellius followed him, and attempted to use some features of economic\nTrinitarianism to create a more sophisticated view.  Unfortunately,\ninformation about Sabellius comes from a century later, and there\nseems to be some confusion between him and Marcellus of Ancyra. --clh]\n \n[I've moved the following description to be with the other\nthird-century views.  It originally appeared near the end.  --clh]\n\n\"Economic\" Trinitarianism\n \nSource: Hippolytus, Tertullian\nAdherents: Various \"neo-economic\" Trinitarians\nPerception of God's Essence: The Godhead is characterized by triunity: Father,\nSon, and Holy Spirit are the three manifestations of one identical,\nindivisible substance. The perfect unity and consubstantiality are especially\ncomprehended in such manifest Triadic deeds as creation and redemption.\nPerception of God's Subsistence: Subsistence within the Godhead is articulated\nby means of such terms as \"distinction\" and \"distribution\" dispelling\neffectively the notion of separateness or division.\nAsignation of Deity/Eternality:\nThe equal deity of Father, Son, and Holy Spirit is clearly elucidated in\nobservation of the simultaneous relational/operational features of the\nGodhead. Co-eternality, at times, does not intelligibly surface in this\nambiguous view, but it seems to be a logical implication.\nCriticism(s): Is more tentative and ambiguous in its treatment of the\nrelational aspect of the Trinity.\n[Note that this is a development of the Apologists and Irenaeus, as\nmentioned above.  As with them, the threeness is visible primarily in\nthe various ways that God revealed himself in history.  However they\ndid say that this is a manifestation of a plurality that is somehow\npresent in the Godhead from the beginning.  Tertullian talks of\nthe Father, Son, and Holy Spirit as being three that are one in\nsubstance.  Many people regard this view as being essentially\northodox, but with less developed philosophical categories.  --clh]\n\n[Origen, developing further an approach started by Clement, attempted\nto apply neo-Platonism to Christian thought.  He set many of the terms\nof the coming battle.  In Platonic fashion, he sees the Son as a\nmediator, mediating between the absolute One of God and the plurality\nof creating beings.  The Son is generated, but he is \"eternally\ngenerated\".  That is, the relationship between Father and Son is\neternal.  It cannot be said that \"there was once when he was not\" (a\nphrase that will haunt the discussion for centuries).  Having the Son\nis intrinsic to his concept of God.  The Father and Son are described\nas separate \"hypostases\", though this may not have quite the meaning\nof separate subsistence that it had in some contexts.  The union is\none of love and action, but there is some reason to think that he may\nhave used the term homoousios (\"of the same substance\").  The Holy\nSpirit is also an active, personal substance, originated by the Father\nthrough the Son.  Origen's intent is trinitarian, not tritheistic, but\nhe pushes things in the direction of separateness.\n\n\nFOURTH CENTURY\n\n--clh]\n\nSubordinationism  [often called Arianism --clh]\n \nSource: Arius\nMajor Adherents: Modern Jehovah's Witnesses, and several other lesser known\ncults\nPerception of God's Essence: The inherent oneness of God's nature is properly\nidentifiable with the Father only. The Son and the Holy Spirit are discreet\nentities who do not share the divine essence.\nPerception of God's Subsistence: The unipersonal essence of God precludes the\nconcept of divine subsistence with a Godhead. \"Threeness in oneness\" is self-\ncontradictory and violates biblical principles of a monotheistic God.\nAsignation of Deity/Eternality:\n Father: The only one, unbegotten God who is eternal and without beginning.\n Son: A created being and therefore not eternal. Though he is to be venerated,\nhe is not of the divine essence.\n Holy Spirit: A nonpersonal, noneternal emanation of the Father. He is viewed\nas an influence, an expression of God.  Deity is not ascribed to him.\nCriticism(s): It is at variance with abundant scriptural testimony respecting\nthe deity of both Christ and the Holy Spirit. Its hierarchial concept likewise\nasserts three essentially separate persons with regard to the Father, Christ,\nand the Holy Spirit. This results in a totally confused soteriology.\n[Note also that in most versions of this view, the Son is not fully\nhuman either.  He is supernatural and sinless.  That distinguishes this\nview from adoptionism.  --clh]\n \nOrthodox Trinitarianism\n \nSource: Athanasius\nAdherents: Basil, Gregory of Nyssa, Gregory of Nazianzus, Augustine, Thomas\nAquinas, Luther, Calvin, Contemporary orthodox Christianity\nPerception of God's Essence: God's being is perfectly unified and simplex: of\none essence.  This essence of deity is held in common by Father, Son, and Holy\nSpirit. The three persons are consubstantial, coinherent, co-equal, and co-\neternal.\nPerception of God's Subsistence: The divine subsistence is said to occur in\nthree modes of being or hypostases. As such, the Godhead exists \"undivided in\ndivided persons.\" This view contemplates an identity in nature and cooperation\nin function without the denial of distinctions of persons in the Godhead.\nAsignation of Deity/Eternality:\nIn its final distillation, this view unhesitatingly sets forth Father, Son,\nand Holy Spirit as co-equal and co-eternal in the Godhead with regard to both\nthe divine essence and function.\nCriticism(s): The only shortcoming has to do with the limitations inherent in\nhuman language and thought itself: the impossibility of totally describing the\nineffable mystery of \"three in oneness.\"\n[At least in the 4th Cent, there were several different approaches, all\nof which fit the description here, and all regarded as orthodox, but which\nare somewhat different in detail.  Nicea was originally held to respond\nto Arius.  Arius can be thought of as carrying Origen's thought a bit\ntoo far, to the point of making the Son a separate entity.  In general\nthe East tended to take an approach based on Origen's, and it was hard\nto get acceptance of Nicea in the East.  Its final acceptance was\nbased on the work of Athanasius with the Cappadocians: Gregory of Nyssa and\nGregory of Nazianzus, among others.  While starting with three,\nthey show that their unity in nature and and action is such that one\nmust think of them as being a single God.  This allowed the Council\nof Constantinople, in 381, to get wide agreement on the idea of\nthree hypostatese and one ousia.  --clh]\n\nAdapted from _Charts of Christian Theology and Doctrine_, by H. Wayne House.\n\n\nFrank\n-- \n\"If one wished to contend with Him, he could not answer Him one time out\n of a thousand.\"  JOB 9:3\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10289, "properties": {"category": "comp.windows.x", "text": "From: suresh@iss.nus.sg (Suresh Thennarangam - Research Scholar)\nSubject: Re: Mix GL with X (Xlib,Xt,mwm)\nNntp-Posting-Host: titan.iss.nus.sg\nOrganization: Institute Of Systems Science, NUS\nX-Newsreader: Tin 1.1 PL4\nLines: 47\n\npyeatt@Texaco.com (Larry D. Pyeatt) writes:\n: In article <9304191540.AA09727@sparc1.jade.com>, graham@sparc1.ottawa.jade.COM (Jay Graham) writes:\n: |> \n: |> XmDrawingArea for drawing with Xlib.  But I would like to take advantage of\n: |> the Graphics Library (GL) available on our IBM RS/6000 (SGI's GL i believe).\n: |> Is it possible to mix X and GL in one application program?\n: |> Can I use GL subroutines in an XmDrawingArea or in an X window opened by me\n: |> with XOpenWindow?\n\nYou can't make GL calls in an XmDrawingArea widget for sure.  \n: \n: There is a widget already defined for GL.  It is the GlxMDraw (motif) or\n: GlxDraw (athena) widget.  It is similar to a XmDrawingArea, except that it\n: allows you to use GL calls to render into the window.  Look at glxlink,\n: glxunlink, glxgetconfig, and glxwinset in the man pages.\n: \n: \n: The GlxMDraw widget works pretty well.  OpenGL will be an improvement.\n\nI can vouch for that. The GL Widget works pretty well. I have been using it\nfor sometime now. I'm not sure though whether you can use Xlib calls to draw\ninto the GL widget. I haven't tried it yet nor have I read the accompanying\ndocumentation completely. Try posting to comp.sys.sgi for more information.\nBetter still,you will find most of the answers in the  SGI manuals .. there\nis a little transition guide which explains the \"mixed-model programming\"\nparadigm(Mixing X and GL).\n\n: |> Does PEX (graPHIGS?) have the same functionality of GL?\n: \n: I think GL is a little easier to use and a little more powerful, but\n: that's just an opinion.  Mileage may vary.\n\nWell, PEX is designed as an extension to  X and will be more seamless  but \nthen, it is buggy to start with .. opinions again.\n\n      __                  \n     (_   / /  o_   o  o |_\n     __)/(_( __) (_(_ /_)| )_\n\n***************************************************************************\n* Suresh Thennarangam               *  EMail: suresh@iss.nus.sg(Internet) *\n* Research Scholar                  *         ISSST@NUSVM.BITNET          *\n* Institute Of Systems Science      *  Tel:  (065) 772 2588.              *\n* National University Of Singapore  *  Facs.: (065) 778 2571              *\n* Heng Mui Keng Terrace             *  Telex: ISSNUS RS 39988             *\n* Singapore 0511.                   *                                     *\n***************************************************************************\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10290, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ihno@generics.ka.sub.org (Ihno Krumreich)\nSubject: CD-ROM drives\nSummary: Hit list of the most sold CD-ROM drives without SCSI-Interface\nKeywords: CD-ROM drives\nOrganization: Synerix GmbH, Karlsruhe\nLines: 23\n\nHas someone a list of CD-ROM's with no SCSI-Interface and if known\nhow much they are present in the market.\n\nPlease mail direcktly as I am not reguarly reading the group.\n\nI'll post a summary if wanted.\n\n\nThanks\n\nIhno\n\n==============================================================================\nIhno Krumreich       | Phone (49) 721 955 253 0        U   U N   N  III  X   X\nSynerix Gmbh         | email: ihno@generics.ka.sub.org U   U NN  N   I    X X\nBach Strasse 24      | FAX   (49) 721 59 02 11         U   U N N N   I     X\nD-W7500 Karlsruhe 21 |                                 U   U N  NN   I    X X\n                                                        UUU  N   N  III  X   X\n-- \n\n==============================================================================\nIhno Krumreich       | Phone (49) 721 955 253 0        U   U N   N  III  X   X\nSynerix Gmbh         | email: ihno@generics.ka.sub.org U   U NN  N   I    X X\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10291, "properties": {"category": "sci.electronics", "text": "From: vanderby@mprgate.mpr.ca (David Vanderbyl)\nSubject: Re: Power, signal surges in home...\nNntp-Posting-Host: chip\nReply-To: vanderby@mprgate.mpr.ca (David Vanderbyl)\nOrganization: MPR Teltech Ltd.\nLines: 10\n\ndrand@spinner.osf.org (Douglas S. Rand) writes:\n\n>   Hams can legally run up to 1500 watts.  It is very unlikely, however,\n>   that a ham would be running that kind of power from a car.\n>\n>Not possible either.  You'd need about a 300 amp alternator for\n>just the amplifier.\n\nIt is too possible.  As the original poster said \"it is very unlikely\"\nbut definately possible.  (Can you say batteries?)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10292, "properties": {"category": "comp.sys.mac.hardware", "text": "From: asson@chacmool.stsci.edu (Drew Justin Asson)\nSubject: Ext. Hard Drives for my SE/30\nOrganization: Space Telescope Science Institute\nLines: 20\n\n\nI'm interested in getting an external hard drive for my SE/30.  I've\ngot an internal 40MB that's pretty full, even with compression s/w.  \nAlot of people talk about $/MB, what's a good ratio?  I'm thinking of adding\neither an 80 or a 100 (or 105).  What brands would people suggest?  Finally,\nplaces to buy from?  Are more popular mail-order places better to order from\nor the places that JUST sell hard drives (e.g. ones that advertise in the back\nof MacWorld and MacUser).\n\nThanks in advance.  If e-mail replies are sent, I'll compile them and post\nthem.\n\n-- Drew\n--\n==========================================================================\n| Drew J. Asson                     |  Space Telescope Science Institute |\n| AI Senior Software Engineer       |  3700 San Martin Drive             |\n| Advance Planning Systems Branch   |  Baltimore, MD  21218, USA         |\n| Internet: asson@stsci.edu         |  (410) 338-4474   [338-1592 (fax)] |\n==========================================================================\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10293, "properties": {"category": "misc.forsale", "text": "From: Doug <usergdef@um.cc.umich.edu>\nSubject: Re: For Sale: Book of Life multi-volume book set unopened\nOrganization: University of Michigan\nLines: 6\nDistribution: world\nNNTP-Posting-Host: 141.211.110.79\nX-UserAgent: Nuntius v1.1.1d17\nX-XXDate: Mon, 5 Apr 93 23:26:58 GMT\n\nI was wrong! I guess they are closer to $800 new! I will\nprobably still sell them for the above implied $300 obo.\nEmail me if you want more specifics. This is a really \nattractive set of books, kind of a Bible encyclopedia set.\nAlso email me if you know more about these books or post\nthe information here.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10294, "properties": {"category": "soc.religion.christian", "text": "From: shd2001@andy.bgsu.edu (Sherlette Dixon)\nSubject: Christianity & Atheism:  an update\nOrganization: BGSU\nLines: 32\n\nFirst, I would like to thank all who sent me their opinions on the matter\nat hand.  All advice was taken to heart, if not directly used.  My friend\nfound out about the matter quite accidently.  After reading some of my\nmail, I quit from the mail reader & went about my business.  I must have\ntrashed my mail improperly, because he got on the same terminal the next\nday & saw my old messages.  He thought they were responses to a post he\nplaced in alt.atheism earlier that week, so he read some of them before\nrealizing that they were for me.  I got a message from him the next day; he\napologized for reading my mail & said that he did not want to appear to be\na snoop.  He said that he would be willing to talk to me about his views &\ndidn't mind doing so, especially with a friend.  So we did.  I neither\nchanged his mind nor did he change mine, as that was not the point.  Now he\nknows where I'm coming from & now I know where he's coming from.  And all\nthat I can do is pray for him, as I've always done.\n\nI believe the reason that he & I \"click\" instead of \"bash\" heads is because\nI see Christianity as a tool for revolution, & not a tool for maintaining\nthe status quo.  To be quite blunt, I have more of a reason to reject God\nthan he does just by the fact that I am an African-American female. \nChristianity & religion have been used as tools to separate my people from\nthe true knowledge of our history & the wealth of our contributions to the\nworld society.  The \"kitchen of heaven\" was all we had to look forward to\nduring the slave days, & this mentality & second-class status still exists\ntoday.  I, too, have rejected\nan aspect of Christianity----that of the estabished church.  Too much\nhypocricy exists behind the walls of \"God's house\" beginning with the\nimages of a white Jesus to that of the members:  praise God on Sunday &\nraise hell beginning Monday.  God-willing, I will find a church home where\nI can feel comfortable & at-home, but I don't see it happening anytime\nsoon.\n\nSherlette \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10295, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Re: I believe in gun control.\nOrganization: Ideology Busters, Inc.\nLines: 22\n\nIn article <1993Apr3.221837.2324@news.duc.auburn.edu> bixledn@eng.auburn.edu writes:\n>In article 16193@cbnews.cb.att.com, lvc@cbnews.cb.att.com (Larry Cipriani) writes:\n>> No, you haven't read it very closely .  It says you may answer \"No\" if your\n>> civil rights have been restored; that can be done either by the feds' or a\n>> a state.  I think the feds stopped doing this for those convicted of violent\n>> felonies.  At least a dozen states still restore a felons civil rights, some\n>> immediately upon release, some after a waiting period.  I will post a list\n>> of the states later.\n>> \n>\n>  A quick question, then Larry, If a person's civil rights have been restored, \n>  then are they still considered a felon?\n\nGood question; I don't know what the law considers them.\n\n>  IMO, if rights have been restored, then it makes sense to me that the\n>  record of the felony, and everything else has been purged, and the\n>  person in question is no longer a felon.\n\nI believe this is what happens in some states.\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10296, "properties": {"category": "sci.space", "text": "From: hdsteven@solitude.Stanford.EDU (H. D. Stevens)\nSubject: Re: Inflatable Mile-Long Space Billboards (was Re: Vandalizing the sky.)\nOrganization: stanford\nLines: 38\n\nIn article <YAMAUCHI.93Apr21131325@yuggoth.ces.cwru.edu>, yamauchi@ces.cwru.edu (Brian Yamauchi) writes:\n|> >NASA would provide contractual launch services. However,\n|> >since NASA bases its charge on seriously flawed cost estimates\n|> >(WN 26 Mar 93) the taxpayers would bear most of the expense. This\n|> >may look like environmental vandalism, but Mike Lawson, CEO of\n|> >Space Marketing, told us yesterday that the real purpose of the\n|> >project is to help the environment! The platform will carry ozone\n|> >monitors he explained--advertising is just to help defray costs.\n|> \n|> This may be the purpose for the University of Colorado people.  My\n|> guess is that the purpose for the Livermore people is to learn how to\n|> build large, inflatable space structures.\n|> \n\nThe CU people have been, and continue to be big ozone scientists. So \nthis is consistent. It is also consistent with the new \"Comercial \napplications\" that NASA and Clinton are pushing so hard. \n|> \n|> >Is NASA really supporting this junk?\n\nDid anyone catch the rocket that was launched with a movie advert \nall over it? I think the rocket people got alot of $$ for painting \nup the sides with the movie stuff. What about the Coke/Pepsi thing \na few years back? NASA has been trying to find ways to get other \npeople into the space funding business for some time. Frankly, I've \nthought about trying it too. When the funding gets tight, only the \ninnovative get funded. One of the things NASA is big on is co-funding. \nIf a PI can show co-funding for any proposal, that proposal has a SIGNIFICANTLY\nhigher probability of being funded than a proposal with more merit but no \nco-funding. Once again, money talks!\n\n\n-- \nH.D. Stevens\nStanford University\t\t\tEmail:hdsteven@sun-valley.stanford.edu\nAerospace Robotics Laboratory\t\tPhone:\t(415) 725-3293  (Lab)\nDurand Building\t\t\t\t\t(415) 722-3296  (Bullpen)\nStanford, CA 94305\t\t\tFax:\t(415) 725-3377\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10297, "properties": {"category": "alt.atheism", "text": "From: David.Rice@ofa123.fidonet.org\nSubject: islamic authority [sic] over women\nX-Sender: newtout 0.08 Feb 23 1993\nLines: 62\n\n \nwho: kmr4@po.CWRU.edu (Keith M. Ryan)\nwhat: <kmr4.1426.733987668@po.cwru.edu>\nwith: rush@leland.Stanford.EDU \nwhat: <1993Apr5.050524.9361@leland.Stanford.EDU>\n \n>>> Other readers: I just joined, but is this guy for real?\n>>> I'm simply amazed.\n \nKR> \"Sadly yes. Don't loose any sleep over Old 'Zlumber. Just\nKR> have some fun with him, but he is basically harmless. \nKR> At least, if you don't work in NY city.\"\n \nI don't find it hard to believe that \"Ole 'Zlumber\" really believes\nthe hate and ignorant prattle he writes. The frightening thought is,\nthere are people even worse than he! To say that feminism equals\n\"superiority\" over men is laughable as long as he doesn't then proceed\nto pick up a rifle and start to shoot women as a preemptive strike---\naka the Canada slaughter that occured a few years ago. But then, men\nkilling women is nothing new. Islamic Fundamentalists just have a\n\"better\" excuse (Qu'ran).\n \n    from the Vancouver Sun, Thursday, October 4, 1990\n    by John Davidson, Canadian Press\n \n    MONTREAL-- Perhaps it's the letter to the five-year old\n    daughter that shocks the most.\n \n    \"I hope one day you will be old enough to understand what\n    happened to your parents,\" wrote Patrick Prevost. \"I loved\n    your mother with a passion that went as far as hatred.\"\n \n    Police found the piece of paper near Prevost's body in his\n    apartment in northeast Montreal.\n \n    They say the 39-year-old mechanic committed suicide after\n    killing his wife, Jocelyne Parent, 31.\n \n    The couple had been separated for a month and the woman had\n    gone to his apartment to talk about getting some more money\n    for food. A violent quarrel broke out and Prevost attacked\n    his wife with a kitchen knife, cutting her throat, police said.\n \n    She was only the latest of 13 women slain by a husband or\n    lover in Quebec in the last five weeks.\n \n    Five children have also been slain as a result of the same\n    domestic \"battles.\"\n \n    Last year in Quebec alone, 29 [women] were slain by their\n    husbands. That was more than one-third of such cases across\n    Canada, according to statistics from the Canadian Centre for\n    Justice. [rest of article ommited]\n \nThen to say that women are somehow \"better\" or \"should\" be the\none to \"stay home\" and raise a child is also laughable. Women\nhave traditionally done hard labor to support a family, often \nmore than men in many cultures, throughout history. Seems to me\nit takes at least two adults to raise a child, and that BOTH should\nstay home to do so!\n\n--- Maximus 2.01wb\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10298, "properties": {"category": "rec.autos", "text": "From: sekell@bb1t.monsanto.com\nSubject: Monthly Posting: Buick Grand National/Regal T-Type mailing list\nLines: 16\nOrganization: Monsanto Company, St. Louis, MO\n\n\nMonthly posting regarding the Buick Grand National / Regal T-Type mailing list.\n\nThis list is for owners and other parties interested in the 82-87 Buick Grand\nNationals, Regal T-Types, GNXs, and other turbocharged Regals. Discussions \ninclude technical information and parts sources. Particular emphasis is given \nto performance enhancements and racing.\n \n\tTo join, or ask, about the mailing list, contact:\n\n\t\tgnttype-request@srvsn2.monsanto.com\n\n  ----------------------------------------------------------------------------\n  Scott Keller\t+1 314 537 6317\t    The Agricultural Group of Monsanto Company \n  sekell@bb1t.monsanto.com  \tKA0WCH\t\tpacket: ka0wch@k0pfx.mo.usa.na\n\tKeeper of the Buick Grand National / Regal T-Type mailing list\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10299, "properties": {"category": "rec.sport.baseball", "text": "Subject: Let it be Known\nFrom: <ISSBTL@BYUVM.BITNET>\nOrganization: Brigham Young University\nLines: 10\n\nI would like to make everyone aware that in winning the NL West the Atlanta\nBraves did not lead wire-to-wire.  Through games of 4/14/93 the Houston\nAstros are percentage points ahead of the \"unbeatable\" Braves.\n\n\nGo Astros!!!!!\n\nByron T. Lee\nA Native Texan\nStuck in Utah\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10300, "properties": {"category": "misc.forsale", "text": "From: lohia@apple.com (Raj Lohia)\nSubject: 1.2GB DISK for SALE!!!\nDistribution: usa\nOrganization: Apple Computer Inc, Cupertino, CA\nLines: 10\n\n\n\nI have a 1.2GB full size  Seagate SCSI2 disk for sale.  Model No. is ST41200N\n\nThis is a brand new disk, never been used or formatted. \n\nSend me your offer at lohia@bharat.aux.apple.com\n\n-Raj\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10301, "properties": {"category": "rec.autos", "text": "From: reid@ucs.indiana.edu (Frank Reid)\nSubject: Re: The Kuebelwagen??!!          \nLines: 23\nNntp-Posting-Host: reid.ucs.indiana.edu\nOrganization: Indiana University\n\nIn article <C5K5Co.F09@mentor.cc.purdue.edu> thwang@mentor.cc.purdue.edu (Tommy Hwang) writes:\n>\tSorry for the mis-spelling, but I forgot how to spell it after \n>my series of exams and NO-on hand reference here.\n>\n>\tIs it still possible to get those cute WWII VW Jeep-wanna-be's?\n>A replica would be great I think.  \n>\n>\t\t\t\t\t\t\t-TKH '93\n\nThe VW \"Thing\" Kubelwagen lookalike is still manufactured in Mexico and \npossibly South America.  Good luck importing one--  They probably don't meet \nUS safety and pollution requirements.  There are mechanics and junkyards \nwhich specialize in VW; they might be helpful for finding a \"Thing\" unless \nthe WWII re-enacters have grabbed them all.\n\nThe WWII Kubelwagen was the German equivalent of the Jeep, but was not 4-\nwheel drive.  One is on display at the Patton Museum at Fort Knox, Kentucky, \nalso the rare \"Schwimwagen\" (sp?) amphibious version, in full-scale dioramas.\nHighly recommended!\n\n--\n\nFrank     reid@ucs.indiana.edu\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.483+0000", "event": "documents", "entityId": 10302, "properties": {"category": "sci.crypt", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: Once tapped, your code is no good any more.\nArticle-I.D.: rwing.2088\nDistribution: na\nOrganization: Totally Unorganized\nLines: 52\n\nIn article <1993Apr20.161838.13213@coop.com> felixg@coop.com (Felix Gallo) writes:\n<pat@rwing.UUCP (Pat Myrto) writes:\n<\n<>If the Clinton Clipper is so very good, [...]\n<\n<Please note that Bill Clinton probably has little if anything to do\n<with the design, implementation or reasoning behind this chip or behind\n<any \"moves\" being made using this chip as a pawn.\n\nUh, I notice he has not either asked for or allowed public input, and he damn\nsure has not stopped it...\n\n<Remember, when you elect a president of the united states, it's not\n<the case that all the Republicans, etc. in the NSA and FBI and CIA\n<immediately pack their bags and get replaced by a team of fresh young\n<Democrats.  Most of the government -- say, 96% -- is appointed or\n<hired rather than elected.  Since this Clipper device has been in\n<production for over six months, it probably has little or no \n<foundation in the currently elected Democratic Executive body.\n\nAgain, if it was something Clinton didn't like, how come he did not\nstop it, or get PUBLIC input before implimenting the DECISION?  He\nsure has asserted his authority on other things he did not agree with\nfrom the Bush administrationk, I notice.   He is the president, therefore\nhe is RESPONSIBLE for the actions of the Execuitive Branch.  I have\nnot the slightest bit of doubt you would be holding Bush or Reagan\nto that standard had they been in office when this thing was cast into\nstone...\n\n<>BTW - those who suggest that this is just an attack on Clinton, believe\n<>this:  I would be going ballistic reagardless WHO seriously proposed\n<>this thing.  It is just another step in a gradual erosion of our rights\n<>under the Constitution or Bill of Rights.  The last couple of decades\n<>have been a non-stop series of end-runs around the protections of the\n<>Constitution.  It has to stop.  Now is as good a time as any, if it\n<>isn't too late allready.\n<\n<Could be.  However, the sky hasn't fallen yet, Chicken Little.\n\nThanks for the name-calling.  That really makes your position higly\ncredible.  Lenin had a term for folks with your outlook.  Do you REALLY\nhave THAT MUCH faith in the trustworthiness and honesty of the government\nthat is primarily concerned with people control?   I suspect you will\nbe in for an unpleasant surprise.  I would just as soon see this nipped\nin the bud while/if it still can be done, instead of waiting for yet\nmore abridgements of our Bill of Rights, thank you...\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10303, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rfweber@bcstec.ca.boeing.com (Robert F. Weber)\nSubject: Re: More Cool BMP files??\nArticle-I.D.: bcstec.C5wL0r.6MB\nDistribution: usa\nOrganization: Boeing Computer Services\nLines: 30\n\njames@dlss2 (James Cummings) writes:\n\n>In article <1993Apr17.023017.17301@gmuvax2.gmu.edu> rwang@gmuvax2.gmu.edu (John Wang) writes:\n> |Hi, everybody:\n> |    I guess my subject has said it all.  It is getting boring\n> |looking at those same old bmp files that came with Windows.  So,\n> |I am wondering if there is any body has some beautiful bmp file\n> |I can share.  Or maybe somebody can tell me some ftp site for\n> |some bmp files, like some scenery files, some animals files,\n> |etc....  I used to have some, unfortunately i delete them all.\n> |\n> |Anyway could me give me some help, please???\n> |\n\n>\tIn response to a \"different\" kinda wallpaper, here's what I\n>use.  I think the original gif/whatever was called \"not_real\".  The \n>artist name and logo is in the lower right corner.  You will need VGA\n>I think, and I have this sized for 800x600 256 color screens.  Use\n>this in your Windows directory and do not tile it.  Hope you enjoy.\n\n\n>BEGIN ----------------------- CUT HERE ---------------\n>begin 666 ntreal.bmp\n>M0DTV5P<      #8$   H    ( ,  %@\"   !  @                     \n>M            $    ! @@P![( @ \"!A> #!_F   #CD ,56# #D.  !=>_D \n>M4PA: &4H@P\"L,1  $U); &N+L0 ($!@ +4WA !,J.0 B/%H 9TJ3 $KKZP 0\n>M,;, TD4I /ZGB0!)#UH (0A.  \"6E@ I !@ 4B!I \" !  !BBZX #!E1 )BV\n\nDeleted a lot of stuff!!!!!!!\nHow do you convert this to a bit map???\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10304, "properties": {"category": "comp.graphics", "text": "From: ernie@woody.apana.org.au (Ernie Elu)\nSubject: MGR NAPLPS & GUI BBS Frontends\nOrganization: Woody - Public Access Linux - Melbourne\nLines: 28\nX-Newsreader: TIN [version 1.1 PL9]\n\n\n\nHi all,\nI am looking into methods I can use to turn my Linux based BBS into a full color\nGraphical BBS that supports PC, Mac, Linux, and Amiga callers. \nOriginally I was inspired by the NAPLPS graphics standard (a summary of \nwhich hit this group about 2 weeks ago). \nFollowing up on software availability of NAPLPS supporting software I find\nthat most terminal programs are commercial the only resonable shareware one being\nPP3 which runs soley on MSDOS machines leaving Mac and Amiga users to buy full\ncommercial software if they want to try out the BBS (I know I wouldn't)\n\nNext most interesting possibility is to port MGR to PC, Mac, Amiga. I know there\nis an old version of a Mac port on bellcore.com that doesn't work under System 7\nBut I can't seem to find the source anywhere to see if I can patch it.\n\nIs there a color version of MGR for Linux? \nI know there was an alpha version of the libs out last year but I misplaced it.\n\nDoes anyone on this group know if MGR as been ported to PC or Amiga ?\nI can't seem to send a message to the MGR channel without it bouncing.\n\nDoes anyone have any other suggestions for a Linux based GUI BBS ?\n\nThanks in advan\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10305, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: New Hudson 1929 questions\nFrom: emd@ham.almanac.bc.ca\nDistribution: world\nOrganization: Robert Smits\nLines: 33\n\ndavide@dcs.qmw.ac.uk (Dave Edmondson) writes:\n\n> Dave Tharp CDS (davet@interceptor.cds.tek.com) wrote:\n> : In article <kmR91B1w164w@ham.almanac.bc.ca> emd@ham.almanac.bc.ca writes:\n> : >\n> : >One of their main designers, Bert Le Vack, broke many records at \n> : >Brooklands in the late '20's.\n> \n> :   In the early 20's Bert Le Vack set records on INDIANS, including\n> : 107.5 MPH at Brooklands in November of 1921, on a 61 in^3 Powerplus\n> : racing model.\n> \n> Must have been a busy lad, he was also a tuner and all round guru at JAP and \n> worked with George Brough.\n> \n> Can someone post me details of \"The illustrated Ecyclopedia of Motorcycles\", \n> sounds like a book I ought to have a copy of.\n> \n\n\nSure, I can. The Illustrated Encyclopedia of Motorcycles, edited by Erwin \nTragatsch, was published by The Hamlyn Publishing Group Limited, \nAstronaut House, Hounslow Road, Feltham, Middlesex, England.\n\nIt was first published in 1977, and mine was reprinted in 1978. Cost then \nwas Pounds 5.95 in the UK, though I paid 18.50 for it in Canadian \ndollars. I have no idea whether it's still in print. Perhaps you could \nlet the net know.\n\nBob.\n\nRobert Smits Ladysmith BC  | If Lucas built weapons, wars\nemd@ham.almanac.bc.ca      | would never start, either.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10306, "properties": {"category": "rec.sport.baseball", "text": "From: tek2q@Virginia.EDU (\"Todd Karlin\")\nSubject: Re: Mel Hall\nOrganization: University of Virginia\nLines: 10\n\nwarped@cs.montana.edu  writes:\n> \n> Has anyone heard anything about Mel Hall this season?  I'd heard he wasn't\n> with the Yankees any more.  What happened to him?\n> \n> \t\t\t\tDoug Dolven\n\n\n\n\tJapan, I think.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10307, "properties": {"category": "talk.politics.mideast", "text": "From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\nSubject: Re: Nazi Eugenic Theories Circulated by CPR => (unconventional peace)\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 20\nNNTP-Posting-Host: slc8.ins.cwru.edu\n\n\n   First this man promotes the dissolution of the Jews through an\nintermarriage process, and then says that it will be just a bunch\nof 'fundamentalist' Jews who will object.  This clown even called\nfor 'buying' the dissolution of the Jewish people.\n\n   Does this idiot mean to suggest that any Jew who objects to an\nimibicilic notion like this is fundamentalist?  Or does he simply\nmean to insult the orthodox by using the word 'fundamentalist?'\n\n   I am not orthodox.  I am not fundamentalist.  I would desire a\ngenuine peace in the region more than this pinhead  Davidsson can\never understand.  But when he shows his willingness to dismiss an\nentire culture, he proves that the only thing more brain-boggling\nthan his stupidity is his willingness to display his stupidity in \nthis newsgroup.\n\n  Please take your hatred for the essence of Judaism and shove it\nup your ass.  Remember to pull your head out first.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10308, "properties": {"category": "rec.sport.hockey", "text": "From: swartzjh@RoseVC.Rose-Hulman.Edu\nSubject: ESPN Tonight\nOrganization: Rose-Hulman Institute of Technology\nLines: 7\nReply-To: swartzjh@RoseVC.Rose-Hulman.Edu\nNNTP-Posting-Host: hydra.rose-hulman.edu\n\nHas anyone heard what game ESPN is showing tonight.  They said they will\nshow whatever game means the most playoff-wise. I would assume this would\nbe the Blues-Tampa game or the Minnesota-Red Wings game...  Anyone heard for\nsure???\n\n\n\t\tJeff Swartz\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10309, "properties": {"category": "rec.motorcycles", "text": "From: na4@vax5.cit.cornell.edu\nSubject: KREME\nDistribution: rec\nOrganization: Cornell University\nLines: 8\n\nHi folks!\t\t\n\nRecently saw one post about KREME being a *bad idea*, but that was only\t\none man's opinion.  \t\n\nAny one else have any experience with the stuff?\t\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10310, "properties": {"category": "rec.autos", "text": "From: markm@latium. (Mark Monninger)\nSubject: Bimmer vs Beamer\nNntp-Posting-Host: 223.250.10.8\nReply-To: markm@latium (Mark Monninger)\nOrganization: Motorola SPS, Tempe, AZ\nDistribution: usa\nLines: 8\n\nAlthough not in direct response to the referenced article, just to set the \nrecord straight, Beamers are BMW motorcycles. BMW cars are Bimmers. Please,\nlet's get our terms straight.\n\nActually, some purists would argue that the only true Bimmer is a round\ntail light 2002 or 1600.\n\nMark\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10311, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: NASA \"Wraps\"\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 91\n\nIn article <17APR199316423628@judy.uh.edu> wingo%cspara.decnet@Fedex.Msfc.Nasa.Gov writes:\n\n>I don't care who told you this it is not generally true. I see EVERY single\n>line item on a contract and I have to sign it. There is no such thing as\n>wrap at this university. \n\nDennis, I have worked on or written proposals worth tens of millions\nof $$. Customers included government (including NASA), for profit and\nnon-profit companies. All expected a wrap (usually called a fee). Much\nof the work involved allocating and costing the work of subcontractors.\nThe subcontractors where universities, for-profits, non-profits, and\neven some of the NASA Centers for the Commercialization of Space. ALL\ncharged fees as part of the work. Down the street is one of the NASA\ncommercialization centers; they charge a fee.\n\nNow, I'm sure your a competent engineer Dennis, but you clearly lack\nexperience in several areas. Your posts show that you don't understand\nthe importance of integration in large projects. You also show a lack\nof understanding of costing efforts as shown by your belief that it\nis reasonable to charge incremental costs for everything. This isn't\na flame, jsut a statement.\n\nYour employer DOES charge a fee. You may not see it but you do.\n\n>>Sounds like they are adding it to their overhead rate. Go ask your\n>>costing people how much fee they add to a project.\n\n>I did they never heard of it but suggest that, like our president did, that\n>any percentage number like this is included in the overhead.\n\nWell there you are Dennis. As I said, they simply include the fee in\ntheir overhead. Many seoparate the fee since the fee structure can\nchange depending on the customer.\n\n>No Allen you did not. You merely repeated allegations made by an Employee\n>of the Overhead capital of NASA. \n\nIntegration, Dennis, isn't overhead.\n\n>Nothing that Reston does could not be dont\n>better or cheaper at the Other NASA centers  where the work is going on.\n\nDennis, Reston has been the only NASA agency working to reduce costs. When\nWP 02 was hemoraging out a billion $$, the centers you love so much where\ndoing their best to cover it up and ignore the problem. Reston was the\nonly place you would find people actually interested in solving the\nproblems and building a station.\n\n>Kinda funny isn't it that someone who talks about a problem like this is\n>at a place where everything is overhead.\n\nWhen you have a bit more experience Dennis, you will realize that\nintegration isn't overhead. It is the single most important part\nof a successful large scale effort.\n\n>Why did the Space News artice point out that it was the congressionally\n>demanded change that caused the problems? Methinks that you are being \n>selective with the facts again.\n\nThe story you refer to said that some NASA people blamed it on\nCongress. Suprise suprise. The fact remains that it is the centers\nyou support so much who covered up the overheads and wouldn't address\nthe problems until the press published the story.\n\nAre you saying the Reston managers where wrong to get NASA to address\nthe overruns? You approve of what the centers did to cover up the overruns?\n\n>If it takes four flights a year to resupply the station and you have a cost\n>of 500 million a flight then you pay 2 billion a year. You stated that your\n>\"friend\" at Reston said that with the current station they could resupply it\n>for a billion a year \"if the wrap were gone\". This merely points out a \n>blatent contridiction in your numbers that understandably you fail to see.\n\nYou should know Dennis that NASA doesn't include transport costs for\nresuply. That comes from the Shuttle budget. What they where saying\nis that operational costs could be cut in half plus transport.\n\n>Sorry gang but I have a deadline for a satellite so someone else is going\n>to have to do Allen's math for him for a while. I will have little chance to\n>do so.\n\nI do hope you can find the time to tell us just why it was wrong of\nReston to ask that the problems with WP 02 be addressed.\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------60 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10312, "properties": {"category": "alt.atheism", "text": "Organization: Penn State University\nFrom: <SEC108@psuvm.psu.edu>\nSubject: Why the bible?\nLines: 38\n\n      One thing I think is interesting about alt.athiesm is the fact that\nwithout bible-thumpers and their ilk this would be a much duller newsgroup.\nIt almost needs the deluded masses to write silly things for athiests to\ntear apart. Oh well, that little tidbit aside here is what I really wanted\nwrite about.\n\n      How can anyone believe in such a sorry document as the bible? If you\nwant to be religious aren't there more plausable books out there? Seriously,\nthe bible was written by multiple authors who repeatedly contradict each\nother. One minute it tells you to kill your kid if he talks back and the next\nit says not to kill at all. I think that if xtians really want to follow a\ndeity they should pick one that can be consistent, unlike the last one they\ninvented.\n\n      For people who say Jesus was the son of god, didn't god say not to\nEVER put ANYONE else before him? Looks like you did just that. Didn't god\nsay not to make any symbols or idols? What are crosses then? Don't you think\nthat if you do in fact believe in the bible that you are rather far off track?\n\nWas Jesus illiterate? Why didn't he write anything? Anyone know?\n\n      I honestly hope that people who believe in the bible understand that\nit is just one of the religious texts out there and that it is one of the\npoorer quality ones to boot. The only reason xtianity escaped the middle east\nis because a certain roman who's wine was poisoned with lead made all of rome\nxtian after a bad dream.\n\n      If this posting keeps one person, just ONE person, from standing on a\nstreetcorner and telling people they are going to hell I will be happy.\n\n\n\n\n\n*** Only hatred and snap judgements can guide your robots through life. ***\n***                                    Dr. Clayton Forester             ***\n***                                       Mad Scientist                 ***\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10313, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jim@n5ial.mythical.com (Jim Graham)\nSubject: Re: Possible FAQ question about a UART\nKeywords: 16550\nOrganization: what, ME???  you must be joking.\nLines: 48\n\nthought I'd post this as well as e-mail it, just in case anyone else is\ninterested in this info.....\n\nIn article <1993Apr15.054552.14548@henson.cc.wwu.edu>\nn9110338@henson.cc.wwu.edu (dan jordan) writes:\n\n>   Hello, my question is could someone E-mail me the names of manufactures\n>of the 16550 and predecsor UARTs.   I have only seen them refered to by\n>number, however i would like to find a technical manual for these ICs.\n\n>  any where i can find out the technical specs for these UARTs would be\n>appreciated: prefereably the 16450 as well as the 16550 however one will do.\n\nI suggest that you go direct to the original (and preferred...best quality)\nsource for all of this, just as you would (at least, should) for the chips\nthemselves:  National Semiconductor.  you can reach them at 1-800-272-9959.\nthey no longer package the data sheets in a book, as they did when I got\nmine, but you can get them as individual sets of data sheets.  you want, as\na minimum, the following:\n\n   *) 2 sets of data sheets:\n      *) NS16450/INS8250A/NS16C450/INS82C50A\n      *) NS16550AF\n\n   *) 2 application notes (yes, GET THESE!):\n      *) AN-491 The NS16550A: UART Design and Application Considerations\n      *) AN-493 A Comparison of the INS8250, NS16450 and NS16550AF Series\n         of UARTs\n\nboth of the application notes I listed have proven to be AT LEAST as\nvaluable as the data sheets themselves (more, actually).  AN-491, in\nparticular, is an exceptionally well-written application note that goes\ninto detail about how and why the 16550 does what it does, and how best\nto take advantage of it.\n\nbtw, they send these out free, as long as you don't abuse it.\n\nlater,\n   --jim\n\n--\n#include <std_disclaimer.h>                                 73 DE N5IAL (/4)\n------------------------------------------------------------------------------\nINTERNET: jim@n5ial.mythical.com  |  j.graham@ieee.org     ICBM: 30.23N 86.32W\nAMATEUR RADIO: n5ial@w4zbb (Ft. Walton Beach, FL)          AMTOR SELCAL: NIAL\n------------------------------------------------------------------------------\nE-mail me for information about KAMterm (host mode for Kantronics TNCs).\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10314, "properties": {"category": "sci.electronics", "text": "From: Joseph N Hosteny <jh8e+@andrew.cmu.edu>\nSubject: Re: Electric power line \"balls\"\nOrganization: Freshman, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 5\nDistribution: usa\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <1993Apr6.203237.20841@eagle.lerc.nasa.gov>\n\n\n    Do you know if there is an airport nearby? They may just be markers\nto tell pilots of small planes that there are power lines nearby.\n\n/Joe\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10315, "properties": {"category": "rec.sport.baseball", "text": "From: dtate+@pitt.edu (David M. Tate)\nSubject: Re: Braves Pitching UpdateDIR\nOrganization: Department of Industrial Engineering\nLines: 54\n\nsbp002@acad.drake.edu said:\n\n>> In article 2482@adobe.com, snichols@adobe.com (Sherri Nichols) writes:\n>>>Every single piece of evidence we can find points to Major League Baseball\n>>>being 50% offense, 50% defense.  A run scored is just as important as a run\n>>>prevented.  \n\n>Of course a run scored is just as important as a run prevented.\n>Just as a penny saved is a penny earned.  Enough with the cliches.\n\nIt's not a cliche, and (unlike your comments below) it's not a tautology.\nIt needn't have been true.  If every pitcher in baseball were essentially\nthe same in quality (i.e. if the variance of pitching ability were much\nsmaller than the variance of batting ability), then scoring runs would be\nmuch more important than preventing them, simply because the *ability* to\nactively prevent runs would be much weaker.\n\n>My point is that IF the Braves starters are able to live up to\n>their potential, they won't need much offensive support.\n\nIf that's your point, you should have said so.  What you in fact said was\n\"Pitching and defense win championships\", and later \"Pitching is the essence\nof baseball\".  Neither of which says what you are now claiming was \"your \npoint\", and neither of which is true.\n\n>It seems to me that when quality pitchers take the\n>mound, the other teams score less runs.  The team that scores the most \n>runs wins.  \n\nAnd you accuse Sherri of mouthing cliches!?\n\n>This puts the team with the better pitching at the advantage\n>(providing they can stop the opposing team from scoring runs).  A low \n>scoring game would clearly benefit the Braves.  \n\nIt's not clear to me at all that this is true.  In high-scoring games, the\nteam with the better offense wins a high percentage of the time.  In low-\nscoring games, the split is essentially 50/50 regardless of team ability.\n\n>They should have many \n>low scoring games due to their excellent pitching and below average hitting.\n>On the flip side, if you had a starting lineup of great offensive players,\n>I would be arguing that this team would not need great pitchers.\n\nI thought you said \"pitching and defense win championships\" and \"pitching is\nthe essence of baseball\".\n\n\n\n-- \n   David M. Tate   (dtate+@pitt.edu) |  Greetings, sir, with bat not quick \n     member IIE, ORSA, TIMS, SABR    |  Hands not soft, eye not discerning\n                                     |  And in Denver they call you a slugger?\n   \"The Big Catullus\" Galarraga      |  And compare you to my own Mattingly!?\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10316, "properties": {"category": "rec.sport.baseball", "text": "From: m_klein@pavo.concordia.ca (CorelMARK!)\nSubject: Re: cubs & expos roster questions\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: pavo1.concordia.ca\nOrganization: Concordia University\nLines: 26\n\nIn article <0096B0F0.C5DE05A0@Msu.oscs.montana.edu>, alird@Msu.oscs.montana.edu writes...\n>In article <1993Apr15.003015.1@vmsb.is.csupomona.edu>, cvadrnlh@vmsb.is.csupomona.edu writes:\n>>Today (4/14) Cubs activated P Mike Harkey from DL, whom did they move to make\n>>room for Harkey?\n>>Also, are Delino Deshields & John Wetteland of the Expos on the DL?\n>>Thanks for anyone who can give me more info!\n>>/===\n>>Ken \n>>Cal Poly, Pomona\n>>\n> \n>Wetteland is on the DL effective March 26 or something like that.\n> \n>rick\n\nWetteland comes off the DL on April 23rd, and will be evaluated on the 24th.\nHe is throwing well, and without pain on the side.\n\nDeShields is not on the DL.  He suffered from the chicken pox and lost\n(this is the official total) 12 pounds.  He will be back, hopefully,\nnext week.\n\nWalker will be back this tonight or tomorrow...\n\n\t\tCorelMARK! from Montreal.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10317, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: >>>>>>Pompous ass\nOrganization: California Institute of Technology, Pasadena\nLines: 226\nNNTP-Posting-Host: lloyd.caltech.edu\n\n<MVS104@psuvm.psu.edu> writes:\n\n>>Many people would probably think (especially if the fanatics propogandized\n>>this) that this was a conflict between the atheists and the religious.\n>>Many would get the impression that we were trying to outlaw religion, if\n>>we contintue to try to remove all things with a religious reference.\n>That's not what the people I've asked think. Perhaps you would be right\n>if you said the fundamentalists would think this way; after all, they think\n>they are being oppressed when they are not allowed to oppress. However,\n>you have not shown where you get this idea that 'many' people would\n>'probably' think it's atheism vs. religion, winner take all. As far as I can\n>tell, it is your groundless prediction that this will happen.\n\nBut you haven't taken into the account of propoganda.  Remember, if you\nasked Germans before WWII if the Jews shoudl be slaughtered, they would\nprobably answer no, but, after the propoganda machine rolled through, at\nleast some were able to tolerate it.\n\nYou see, it only takes a small group of fanatics to whip up a general\nfrenzy.\n\n>>THe propoganda machines have been in gear over a number of issues, including\n>>abortion and gays...  look at some of the things that have happened.\n>Well, so far they have passed one amendment, which is currently under\n>intense scrutiny, and they have failed to outlaw abortion, which is their\n>prime goal on that issue. Yep, they seem sooo effective. Sure.\n\nWell, they haven't managed to outlaw abortion due to the possible objectivity\nof the courts.  But, they have managed to create quite a few problems for\npeople that wanted to have an abortion.  They could create similar problems\nfor us.  And, it could be worse.  They can try to stop abortions by blocking\nclinics, etc., but imagine what they'd have to do to stop atheism.\n\n>>>>Besides, the margin of error is very large when you only talk to two people.\n>>>Better than your one, that is, your opinion. Also, I have branched\n>>>out and the informal survey is up over half a dozen now.\n>>And, what have they said?  Were you questions unbiased?\n>Keith, you would claim that my questions are biased the minute I posted\n>them, because the answers agreed with me. Everyone I have asked about\n>the possible removal of the motto (the christian portion) has expressed\n>regret about its loss, because they like it. However, when it is pointed\n>out to them that a new motto will not be in the works, none have expressed\n>the desire to rape, murder, pillage, etc., which you have basically claimed.\n\nSo, you are able to convince them individually, but could you convince a\nwhole room of them?  A whole nation?\n\n>As for the atheist portion (I know some around here), they have all\n>expressed disgust with the motto. Some noted being harassed by christians\n>who used the motto to try to seem justified. And all would see it gone.\n\nYes, I'd be glad if it were gone to.  I've never supported it.  However,\nI think that it is a minor problem that can be easily ignored, contrasted\nwith what *could* happen (an what may be likely).\n\n>>Which Christians designed the motto?  Does the motto say anything about\n>>Jesus?  Why do you think that it refers *only* to Christians?\n>Christians wrote it; christians think that their religion is right, and\n>all others are wrong; therefore, why would they 'include' other religions\n>in the realm of being correct? I doubt that any other religions were meant\n>to be included.\n\nWell, I am not clear on the religious convictions of Francis Scott Key (the\nmotto can be attributed to him), but it is at least clear that he believed\nin a god.  And, surely there are a few Christians that think as you say,\nbut I don't think that most do.  Do you think that all Christians actively\ndespise other religions?  Most that I have met haven't and don't do so.\n\n>>>No christian\n>>>that I have queried thinks it means anything but them, and only them.\n>>Why not ask some people of other faiths?\n>Sorry, I would, but christianity is just so awfully popular around here.\n>Suppose you could ask a few people?\n\nWell, I have asked a Hindu, Moselem, and a few Jews, and all of them think\nthat it is applicable to them.  Of course, I can't say that these people\n(just some that I know pretty well) are accurate representations of their\nfaiths.\n\n>>It is always a good idea to assume that there were dissenting views on any\n>>given issue.  You are assuming that all the views were the same, and nothing\n>>leads to this conclusion.\n>Without evidence to the contrary, I doubt that there were dissenting\n>opinions. You claim there were. Provide some evidence for your assertion.\n\nWell, I'd really like to, and I've tried, but I really don't know where to\nget access to _Congressional Records_ from the 1950's.  Can anyone help\nout here?\n\n>Comparing christians to Nazis? Interesting.\n\nOnly in the sense that neither can probably convinced to change their beliefs.\n\n>>>>No, again, the motto on the money doesn't cost you anything extra.  However,\n>>>>if you abolished the motto, we'd all have to pay to have all the dies and\n>>>>plates redone.\n>>>Like people paid before to get them changed to have the motto on them.\n>>You now need to show that there is a good reason to change everything again.\n\n>... Also, I doubt that they use th3\n>same plates for more than a year's printing; this would make it easy\n>to remove the motto (simply make next year's plates without it). Your\n>claim, evidently, is that they will have to pay extra somewhere.\n>Provide some evidence for this assertion.\n\nSo, are you saying that they redesign the plates each year?\n\nAnyway, your whole argument (conveniently deleted I see) was that the motto\nsomehow costs us all a lot of money.  This is just not correct.\n\n>>The ones I read didn't mention anything about Jesus.  I think the issue was\n>>concerning the distinction between religion and not.\n>How could it be between religious and not religious? The motto\n>refers to god; it is a religious motto. The question is whether or\n>not it is only christian. You say it is more. I doubt this. Provide\n>some evidence for this assertion.\n\nThat is to say, the religion of this country, and the non-religion of\nthe USSR.  That was what most of those quotes were about, and some included\nall atheists, in general, as well.  I don't think that any of the quotes\n(although I seem to have lost them) mentioned anything at all about Jesus.\nThey advocated religion over non-religion.  A specific religion was not\nmentioned.\n\n>>You have missed this point.  I said that the motto didn't say anything\n>>about anyone in particular.  That is, the motto doesn't imply anything\n>>about *your* particular beliefs.  It doesn't say that everyone trusts\n>>in some form of god, only that the nation on the whole does.\n>We have been through this before. It's obvious it does not include me;\n>this much is beyond doubt. Your claim, again, is that the motto refers\n>to more than christians. Based on the facts that christianity says all\n>other religions are wrong, and because it seems that the motto was\n>written by christians, I doubt your claim.\n\nSo, you are saying that all Christians must believe that all other religions\nshould be outlawed, just because they think they are wrong?  That's silly.\nI think the Flat-Earthers are wrong, but I don't advocate their banishment.\n\n>[...]  Based on this idea I doubt that any additional expense would\n>even be incurred by removing the motto. Provide some evidence for your\n>claim that it would.\n\nI think that any such cost would be insignificant.  I mentioned the slight\ncost because you said that the motto was costing us a lot of money by\nbeing on our currency.\n\n>Disregarding the digression of the other motto...If it is used for\n>harassment, and no other purpose has been found for it, why should\n>it not be removed?\n\nWell, mottos in general don't really have purposes...  I don't think it\nshould be removed because I think the benefit would be outweighed by the\nconsequences.\n\n>>And do you know what the vote was?  Were there other opinions?  Do you\n>>think that the main reason the motto was required by law was to bother\n>>atheists?  Do you think that this is what the majority of congress at\n>>the time had in mind?  If you do, then show why.\n>Again, it is the opinion of the people who put it there that I am\n>concerned with.\n\nThen you should be concerned with the opinion of the entire congress.\n\n>Again, it is not necessary that the complete majority\n>shared the purpose of confronting 'godless Communism' with this motto.\n\nWhy not?  It is the majority that put it there.\n\n>>The general public probably does not know about the anti-atheist intent\n>>of a few people in the 50's either.\n>I daresay more people remember the 50's than the time when Key wrote\n>the anthem.\n\nBut do they remember the debate surrounding the motto?  Do they remember\nthat some people intended it to be a message against atheists?  Why don't\nyou include this in your little survey that you were conducting?\n\n[...]\n>You claim here that scientists would believe someone's claims. I doubt\n>this. Provide evidence for your assertion.\n\nWhat?  Should I ask some scientists the probability that something Einstein\nsaid about relativity is worthy?  I mean, if Einstein said it, there's a\ngood chance that it was right (at least at the time).\n\n>As for the courts, the\n>method scientists use can be applied. I need not agree with the court\n>by default because of a 'good record.'\n\nYou need not agree with them all of the time, but you would certainly think\nthat their decisions would be good evidence in favor of some point.\n\n>>What?  But you said you didn't agree with the court because they \"allowed\n>>Congress to attempt to make an amendment prohibiting flag burning.\"  If\n>>you don't realize that something like this is external to the realm of\n>>the court's power, then how can I be confident that you know *anything*\n>>about the court's powers?  I mean, if you don't know how the court works,\n>>how can you participate in a discussion of the court?\n>A judge can go to speak before Congress. And still you ignore the\n>abortion gag rule, as you make your claims on abortion.\n\nNo, I think that it would be clearly inappropriate for a Supreme Court\nJustice to testify before Congress during the consideration of a\nConstitutional Amendment.\n\nAnd, in order for the Court to rule on something, a case usually must be\npresented.\n\n>>Mushrooms, flowers, trees, buildings, signs, whatever...  the analogy is\n>>the same.  Just because something that I might find offensive is present\n>>doesn't mean that my rights are being violated.\n>We are talking about something put there by people, Keith...not\n>a mushroom. No one caused that mushroom to exist, unless you're\n>finding things offensive in a mushroom farm.\n\nYes, some mushrooms can be planted.  And, I don't appreciate mushrooms on\nmy pizza, either.\n\n>This is not the case\n>with the motto. And you're ignoring the harassment which is the\n>only known result of the motto, and you're ignoring that somewhere\n>along the line people were forced to put the motto there.\n\nWho was forced to put the motto there?  What do you mean?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10318, "properties": {"category": "rec.autos", "text": "From: marshatt@feserve.cc.purdue.edu (Zauberer)\nSubject: Re: It's a rush... (was Re: Too fast)\nOrganization: Purdue University\nDistribution: usa\nLines: 28\n\n Remember roads in America are NOT designed for speeds above 80 meaning they\nwould be safe at 55-65. Roads like the Autobahn are smoother, straiter,\nwider and slightly banked. \n\nExample: A few months back I was traveling late at  night ( 3:00 am or so)\nand I was changing highways at a bent crosssing. It  curved off to the south\neast becoming hidden by trees after about 1,000 ft and continued to the\nleft strait north. I wanted to turn north, checked the south lane, rolled\ninto the crossing and checked the north lane. Nevertheless there wasn't \na car in sight, so I took one last look and pulled into the left hand lane.\nNow my car isn't a 5 sec 0-60 performer but I was in the corect lane and \nover 40 in decent time, even at 3:00 I wasn't wasting time. It was then\nthat I checked my mirror and saw a Mustang closing in my lane *FAST*, he \nhad just turned the corner and was just noticing me. Luckly he saw me and \nchanged lanes in time, I estamate he was moving in excess of 90 or so.\nI was just a by stander, I had no chance of runing from him, or moving out \nof his way. I'm glad he saw my brake lights in time. I shudder to \nthink of what would have happened had I wainted to pull out and not \nleft the time he needed to dodge me.\n\nRule: Just because your car can do 100+, and  your way is clear,\ndon't assume it will stay that way.\n\n      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n      TRAVIS disclamer: the ideas expressed above are in fact the same as \n                        my employer, since I have none |-)\n           e-mail, flame, at : marshatt@feserve.cc.purdue.edu\n      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10319, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ntaib@silver.ucs.indiana.edu (Iskandar Taib)\nSubject: Re: Windows 3.1 General Questions\nNntp-Posting-Host: silver.ucs.indiana.edu\nOrganization: Indiana University\nLines: 30\n\nIn article <1495@heimdall.sdrc.com> crgruen@sony1.sdrc.com (robert gruen) writes:\n>1.  I received Amish Utilities for Windows when I purchased Turbo C++ for \n>    Windows.  What is Amish Utilities?  What can it do for me?  All I\n>    received was the disk, no docs.  \n\nMaybe it milks the dogcow? 9-)\n\n\n>2.  I am running Windows in 1024x768x256 mode using a driver that was supplied \n>    with my SVGA card.  The card is a BOCA SVGA card with 1Meg RAM, and I think \n>    it has an ET4000 chip in it (at least thats what some program tells me). \n>    The driver is an old driver that was written for Windows 3.1, it seems to \n>    work fine, but would I gain any benefits by switching to a newer driver?  If\n>    so which one should I use and where could I find it? \n\nLots of drivers are available off ftp.cica.indiana.edu in pub/pc/win3/\ndrivers/video. I've tried two: et4cview.zip and et4turbo.zip. These\ngive you a choice of turbo and non-turbo drivers. The turbo drivers\nwere FAST but caused mouse problems with my machine (which has a\nDiamond Speedstar card). I finally got turbo drivers (wndSpeed by\nBinar) from Diamond. Amazing. Blazingly fast (for a non-accelerated\ncard) and best of all - no GPF's for a month or so...\n\n\n\n-- \n-------------------------------------------------------------------------------\nIskandar Taib                          | The only thing worse than Peach ala\nInternet: NTAIB@SILVER.UCS.INDIANA.EDU |    Frog is Frog ala Peach\nBitnet:   NTAIB@IUBACS                 !\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10320, "properties": {"category": "rec.sport.hockey", "text": "From: accgsg@vaxa.hofstra.edu (Gary Graffagnino)\nSubject: Isles / Hockey Ramblings\nLines: 43\n\n\n\tWell, the Patrick Division got a little more interesting last night. \nThe Islanders lost in OT and the Devils tied the Pens.  That means if the Isles\nbeat the Devils on Friday, the will meet the Caps in the playoffs.\n\n\tHowever, I have some more comments on the Islanders and hockey in\ngeneral that I need to get off my chest :).  First of all, with the Islanders \nback-to-back lackluster performances against the Whalers, one may think that \nthe Islanders are out of shape.  These guys always suck wind in the 2nd period,\ncome on a little in the 3rd and run out of gas too soon.  It is unbelieveable\nhow many one goal games these guys have lost.  Anyway, the games was pretty \nwide open.  The Isles still have tons of trouble scoring.  The Whalers played \na golie in is 1st NHL start, I think his name was Lenarduzzi (sp?).  (His NHL \ndebut was the Tuesday tie against the Isles).  Like I mentioned before, this \nguy looked like the best golie on the planet for a while (until he misplayed a \nMahlakov slap shot to go to OT).  I say it's because the Isles don't shoot \ncorrectly.  Has anyone else noticed this?\n\n\tAlso, I think it is really a shame for hockey when I guy like Mick\nVukota gets as much ice time as he does.  This guy has about as much hockey\ntalent as Jiggs MacDonald (who did play hockey, I think).  Anytime he gets the\npuck it gets stolen, and he always starts fights and gets needless penalties. \nRichard Pilon is another guy who is on the ice to stir up crap.  And he's a\ndefenseman.  He's got to be approaching negative infinity for his plus/minus. \nThis guy gets beaten all the time.  Why the need for such \"enforcers\"?  Not\nonly do fights slow the game down ALOT, but it takes away from the guys who are\nreally trying to play the game.  I'll be one of the few to admit, I do enjoy a \ngood fight once in a while, but only when it's \"called for\".  You know, when a\nguy checks the goalie too hard.  In other words, a violation of \"hockey ethics\"\nmight cause you to get puched.  But there is no need to start crap when you are\nlosing or becuase you can get away with it!! Does anyone agree that referees\nneed to be a little less lenient in the 3rd and OT?  I mean COME ON already. \nI'm sick of seeing teams pulling guys down, holding guys etc. just becuase the\nreferee doesn't call it.  OT and late in the 3rd should be a time for strategy,\nnot physical prowess.  Trying to set up a goal should be first and foremost. \nIf you are so afraid that the other team is going to score that you have to\npull a guy down to prevent it, you don't deserve to win in the first place.\n\nJust My Honest Opinion,\n\nGary at Hofstra\nACCGSG@VAXB.HOFSTRA.EDU\nACCGSG@HOFSTRA.BITNET\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10321, "properties": {"category": "comp.graphics", "text": "From: haston@utkvx.utk.edu (Haston, Donald Wayne)\nSubject: Church related graphics\nNews-Software: VAX/VMS VNEWS 1.41    \nKeywords: Christian graphics\nOrganization: University of Tennessee Computing Center\nLines: 13\n\nI am looking for some good quality graphics files which are\nsuitable for use in church-related presentations. I prefer vector,\nbut anything would be helpful.\n\nIf you know of bulletin boards which have collections of this nature, or\ncommercial products, please inform me by email:\n\nHASTON@UTKVX.UTK.EDU\n\nWayne Haston\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10322, "properties": {"category": "sci.med", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Any info. on Vasomotor Rhinitis\nOrganization: AI Programs, University of Georgia, Athens\nLines: 15\nNntp-Posting-Host: aisun3.ai.uga.edu\n\n(Disclaimer: I'm a sufferer, not a doctor.)\n\nI'm not sure there's a really sharp distinction between allergic and\nvasomotor rhinitis.  Basically, vasomotor rhinitis means your nose is\nstuffy when it has no reason to be (not even an identifiable allergy).\n\nDecongestants and steroid sprays work for vasomotor rhinitis.  Also,\nI can get surprising relief from purely superficial measures such as\nsaline moisturizing spray and moisturizing gel.\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10323, "properties": {"category": "comp.sys.mac.hardware", "text": "From: SHAGBERG@vm.cmp.ilstu.edu\nSubject: converting keyboard for mac plus\nOrganization: Illinois State University\nLines: 35\n\n \nI have an old Mac Plus. A couple of years ago I bought a shiney new lc.\nIt came with apple's new keyboard (with abd ports). i replaced it with\na mac-pro-plus extended keyboard (which i thoroughly enjoy, thank you\nvery much).\n \nwell, i have this extra keyboard which i would like to use on the plus\nbut there's a little problem. the plus uses an rj-11 jack for keyboard\ninput and the new keyboards don't. i got an extra adb cable from my\nlocal apple dealer (they're such nice people), but they couldn't tell\nme the order of the wires.\n \nthere are four wires in the adb cables: black, white, red, tan. I know\none's a ground, one gets the serial signal, one supplies 5 volts, and\ni forgot what the fourth one does. anyway, if you hook them up wrong\nyou'll fry a board and i <really> don't want to do <that>.\n \nif any brave souls out there have done this before, please e-mail your\nexperience directly to me. i would greatly appreciate it especially\nsince apple's original keyboard is not . . . ergonomically correct.\n \nbtw, i did take apart my new keyboard to see if i could find the\ncorrelation between the wires for the rj-11 jack and the adb since it\nhas both, but no such luck (the connections are soldered inside of\nlittle boxes). Oh, well . . .\n \n*****************************************************************\n*  Tis the blink of an eye, tis the draught of a breath,        *\n*  From the blossoms of health, to the paleness of death,       *\n*  From the gilded saloon, to the briar in the shroud,          *\n*  O, why should the spirit of mortal be proud?                 *\n*                                                 -William Knox *\n*****************************************************************\n*  shagberg@vm.cmp.ilstu.edu                                    *\n*****************************************************************\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10324, "properties": {"category": "misc.forsale", "text": "From: mallen@wyvern.wyvern.com (Marc L. Allen)\nSubject: Re: 486DX/33 CPU chip for sale, (Cyrix, AMD 486s not Intel clones)\nOrganization: wyvern.com\nDistribution: na\nLines: 10\n\n>Beware,  From what I understand neither the AMD or Cyrix 486s are clones of \n>the Intel 486.  They are using the \"name\" 486 because they run as fast as a \n>Intel 486.  They do not have exactly the same instuction set nor do they fit \n>into the same socket.  Most are very fast 386s without coprocessors.  \n\nAMD recent won the appeal against Intel to use their Microcode, so they \nshould be putting out real 486 chips in the near future.\n\nMarc\nmallen@wyvern.wyvern.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.484+0000", "event": "documents", "entityId": 10325, "properties": {"category": "rec.sport.baseball", "text": "From: dwarner@journalism.indiana.edu (David J.)\nSubject: Re: Detroit Tigers\nNntp-Posting-Host: mozzarella.journalism.indiana.edu\nReply-To: dwarner@journalism.indiana.edu\nOrganization: Indiana University\nLines: 17\n\nDavid Vergolini writes\n>   The roar at Michigan and Trumbull should be loader than ever this year.  \n> With Mike Illitch at the head and Ernie Harwell back at the booth, the tiger \n> bats will bang this summer.  Already they have scored 20 runs in two games \n> and with Fielder, Tettleton, and Deer I think they can win the division.  No \n> pitching! Bull!  Gully, Moore, Wells, and Krueger make up a decent staff that \n> will keep the team into many games....\n\nYeah, if the Tigers can keep scoring 20 runs a game.  If I'm reading all this  \nwoofing correctly, one midseason slump is going to pull this team out of  \ncontention.  Like Yogi says, I'll believe when I believe it.\n\n--\nDavid J.(dwarner@journalism.indiana.edu)*****Blue Riddle Productions 1993\n*-------------------------------It's on.--------------------------------*\n***\"THE RAP IS AN ART EP\" is coming out on tape -- this time for real.***\n*------------------------E-mail me for the 411.-------------------------*\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10326, "properties": {"category": "comp.graphics", "text": "From: nfotis@ntua.gr (Nick C. Fotis)\nSubject: (17 Apr 93) Computer Graphics Resource Listing : WEEKLY [part 1/3]\nLines: 1566\nReply-To: nfotis@theseas.ntua.gr (Nick (Nikolaos) Fotis)\nOrganization: National Technical Univ. of Athens\n\nArchive-name: graphics/resources-list/part1\nLast-modified: 1993/04/17\n\n\nComputer Graphics Resource Listing : WEEKLY POSTING [ PART 1/3 ]\n===================================================\nLast Change : 17 April 1993\n\nMany FAQs, including this Listing, are available on the archive site\npit-manager.mit.edu (alias rtfm.mit.edu) [18.172.1.27] in the directory\npub/usenet/news.answers.  The name under which a FAQ is archived appears\nin the Archive-name line at the top of the article.\nThis FAQ is archived as graphics/resources-list/part[1-3]\n\nThere's a mail server on that machine. You send a e-mail message to\nmail-server@pit-manager.mit.edu  containing the keyword \"help\" (without\nquotes!) in the message body.\n\nYou can see in many other places for this Listing. See the item:\n\n0. Places to find the Resource Listing\n\nfor more information.\n\nItems Changed:\n--------------\n\nRE-ARRANGED the subjects, in order to fir better in the 63K/article limit.\nI PLAN ON CHANGING HEADERS SOON, SO BE CAREFUL! ONLY THE \"Resource Listing\"\nkeys are sure to remain in the Subject: line!\n\n0. Places to find the Resource Listing\n6.  3D graphics editors\n   a. Public domain, free and shareware systems\n9. Plotting packages\n18. Molecular visualization stuff\n\n[ I'm thinking of making this post bi-weekly. What do you think??? ]\n\n--------------\n\nLines which got changed, have the `#' character in front of them.\nAdded lines are prepended with a `+'\nRemoved lines are just removed. Use 'diff' to locate these changes.\n\n========================================================================\n\nThis text is (C)Copyright 1992, 1993 of Nikolaos C. Fotis. You can copy\nfreely this file, provided you keep this copyright notice intact.\n\nCompiled by Nikolaos (Nick) C. Fotis, e-mail: nfotis@theseas.ntua.gr\n\nPlease contact me for updates,corrections, etc.\n\nDisclaimer: I do not guarantee the accuracy of this document.\nUse it at your own risk.\n\n========================================================================\n\nThis is mainly a guide for computer graphics software.\nI would suggest reading the Comp. Graphics FAQ for image analysis stuff.\n\nIt's entitled: \n (date) comp.graphics Frequently Asked Questions (FAQ)\n\n John T. Grieggs <grieggs@jpl-devvax.jpl.nasa.gov> is the poster of the\n official comp.graphics FAQ\n\nI have included my comments within braces '[' and ']'.\n\nNikolaos Fotis\n\n========================================================================\n\nContents of the Resource Listing\n================================\n\nPART1:\n------\n0. Places to find the Resource Listing\n1. ARCHIE\n2. Notes\n3. Computer graphics FTP site list, by Eric Haines\n4. Mail servers and graphics-oriented BBSes\n5. Ray-tracing/graphics-related mailing lists.\n6.  3D graphics editors\n   a. Public domain, free and shareware systems\n   b. Commercial systems\n7. Scene description languages\n8. Solids description formats\n\nPART2:\n------\n\n9. Plotting packages\n10. Image analysis software - Image processing and display\n\nPART3:\n------\n11. Scene generators/geographical data/Maps/Data files\n12. 3D scanners - Digitized 3D Data.\n13. Background imagery/textures/datafiles\n14. Introduction to rendering algorithms\n   a. Ray tracing\n   b. Z-buffer (depth-buffer)\n   c. Others\n15. Where can I find the geometric data for the:\n   a. Teapot ?\n   b. Space Shuttle ?\n16. Image annotation software\n17. Scientific visualization stuff\n18. Molecular visualization stuff\n19. GIS (Geographical Information Systems software)\n\nFuture additions:\n[Please send me updates/info!]\n\n========================================================================\n\n0. Places to find the Resource Listing\n======================================\n\n#This file is crossposted to comp.graphics, comp.answers and news.answers,\nso if you can't locate it in comp.graphics, you're advised to search in\n#comp.answers or news.answers\n(The latter groups usually are archived in your site. Contact your sysadmin\nfor more info).\n\nThese 3 articles are posted to comp.graphics 3-4 times a month and are kept in\nmany places (see below)\n\n--\n\nMany FAQs, including this one, are available on the archive site\npit-manager.mit.edu (alias rtfm.mit.edu) [18.172.1.27] in the directory\npub/usenet/news.answers.  The name under which a FAQ is archived appears\nin the Archive-name line at the top of the article.\nThis FAQ is archived as graphics/resources-list/part[1-3]\n\nThere's a mail server on that machine. You send a e-mail message to\nmail-server@pit-manager.mit.edu  containing: help in the Subject: field\n\n--\n\nThe inria-graphlib mail server mirrors this posting (see under the\nSubject 4: Mail servers )\n\n--\n\nThe Resource Listing is accesible through WAIS in the machine\nenuxva.eas.asu.edu (port 8000) under the name graphics-resources-list.\nIt's got a digest-type line before every numbered item for purposes of\nindexing.\n\n--\n\nAnother place that monitors the Listing is the MaasInfo files.\nFor more info contact Robert E. Maas <rem@btr.com>\n\n--\n\nYet another place to search for FAQs in general is the SWITCH\n(Swiss Academic and Research Network) system in Switzerland:\n\ninteractive:\n  telnet nic.switch.ch [130.59.1.40], login as \"info\". Move to the\n  info_service/Usenet/periodic-postings directory. Search in the\n  00index file by typing \"/\" and the word to look for.\n  You may then just read the FAQ in the \"faqs\" directory, or decide\n  to fetch it by one of the following methods.\n\nftp:\n  login to nic.switch.ch [130.59.1.40] as user anonymous and\n  enter your internet-style address after being prompted for a\n  password.\n\n\tcd info_service/Usenet/periodic-postings\n\nmail:\n  send e-mail to\n\nRFC-822:\n   archive-server@nic.switch.ch\nX.400:\n  /S=archive-server/OU=nic/O=switch/PRMD=switch/ADMD=arcom/C=ch/\n\nEnter 'help' in the bodypart to receive instructions. No information\nis required in the subject header line.\n\n\n1. ARCHIE\n=========\n\nThe Archie is a service system to locate FTP places for\nrequested files. It's appreciated that you will use Archie\nbefore asking help in the newsgroups.\n\nArchie servers:\n  archie.au or 139.130.4.6             (Aussie/NZ)\n  archie.funet.fi or 128.214.6.100  (Finland/Eur.)\n  archie.th-darmstadt.de or 130.83.128.111  (GER.)\n  cs.huji.ac.il or 132.65.6.5             (Israel)\n  archie.kuis.kyoto-u.ac.jp or 130.54.20.1 (JAPAN)\n  archie.sogang.ac.kr or 163.239.1.11      (Korea)\n  archie.ncu.edu.tw or telnet 140.115.19.24  (TWN)\n  archie.doc.ic.ac.uk or 146.169.3.7  (UK/Ireland)\n  archie.sura.net or 128.167.254.179    (USA [MD])\n  archie.unl.edu (password: archie1)    (USA [NE])\n  archie.ans.net or 147.225.1.2         (USA [NY])\n  archie.rutgers.edu or 128.6.18.15     (USA [NJ])\n  archie.nz or 130.195.9.4           (New Zealand)\n\nConnect to Archie server with telnet and type \"archie\" as username.\nTo get help type 'help'.\nYou can get 'xarchie' or 'archie', which are clients that call Archie\nwithout the burden of a telnet session.\n'Xarchie' is on the X11.R5 contrib tape, and 'archie' on comp.sources.misc,\nvol. 27.\n\nTo get information on how to use Archie via e-mail, send mail with\nsubject \"help\" to \"archie\" account at any of above sites.\n\n(Note to Janet/PSS users -- the United Kingdom archie site is\naccessible on the Janet host doc.ic.ac.uk [000005102000].\nConnect to it and specify \"archie\" as the host name and \"archie\" as\nthe username.)\n\n==========================================================================\n\n2. Notes\n========\n(Excerpted from the FAQ article)\n\nPlease do *not* post or mail messages saying \"I can't FTP, could\nsomeone mail this to me?\"  There are a number of automated mail servers\nthat will send you things like this in response to a message.\n\nThere are a number of sites that archive the Usenet sources newsgroups\nand make them available via an email query system.  You send a message\nto an automated server saying something like \"send comp.sources.unix/fbm\",\nand a few hours or days later you get the file in the mail.\n\n==========================================================================\n\n3. Computer graphics FTP site list, by Eric Haines\n==================================================\n\nComputer graphics related FTP sites (and maintainers), 26/03/93\n\tcompiled by Eric Haines, erich@eye.com\n\tand Nick Fotis, nfotis@theseas.ntua.gr\n\nRay-tracers:\n------------\n\nRayShade - a great ray tracer for workstations on up, also for PC, Mac & Amiga.\nPoV - son and successor to DKB trace, written by Compuservers.\n\t(For more questions call Drew Wells --\n\t73767.1244@compuserve.com or Dave Buck -- david_buck@carleton.ca)\nART - ray tracer with a good range of surface types, part of VORT package.\nDKBtrace - another good ray tracer, from all reports; PCs, Mac II,\n\tAmiga, UNIX, VMS (last two with X11 previewer), etc.\nRTrace - Portugese ray tracer, does bicubic patches, CSG, 3D text, etc. etc.\n\tAn MS-DOS version for use with DJGPP DOS extender (GO32) exists also,\n\tas a Mac port.\nVIVID2 - A shareware raytracer for PCs - binary only (286/287).  Author:\n\tStephen Coy (coy@ssc-vax.boeing.com).  The 386/387 (no source) version\n\tis available to registered users (US$50) direct from the author.\nRAY4 - Steve Hollasch's 4-dimensional ray tracer - renders hyperspheres,\n\thypertetrahedra, hyperplanes, and hyperparallelepipeds (there's\n\ta separate real-time wireframe viewer written in GL called WIRE4 ) .\nMTV,QRT,DBW - yet more ray tracers, some with interesting features.\n\nDistributed/Parallel Raytracers:\n--------------------------------\n\nXDART - A distributed ray-tracer that runs under X11. There are server binaries\n\twhich work only on DECstations, SPARCs, HP Snakes (7x0 series) and NeXT.\n\tThe clients are distributed as binaries and C source.\nInetray - A network version of Rayshade 4.0.  Needs Sun RPC 4.0 or newer.\n\tContact Andreas Thurnherr (ant@ips.id.ethz.ch)\nprt, VM_pRAY - parallel ray tracers.\n\nVolume renderers:\n-----------------\n\nVREND - Cornell's Volume Renderer, from Kartch/Devine/Caffey/Warren (FORTRAN).\n\nRadiosity (and diffuse lighting) renderers:\n-------------------------------------------\n\nRadiance - a ray tracer w/radiosity effects, by Greg Ward.  Excellent shading\n\tmodels and physically based lighting simulation.  Unix/X based, though\n\thas been ported to the Amiga and the PC (386).\nINDIA - An Indian radiosity package based on Radiance.\nSGI_RAD - An interactive radiosity package that runs on SGI machines with a\n\tSpaceball. It includes a house database.\n\tAuthor: Guy Moreillon <moreillo@ligsg1.epfl.ch>\nRAD - a simple public-domain radiosity package in C. The solution can be run\n\tstand-alone on any Unix box, but the walk-through requires a SGI 4D.\n\tAuthor: Bernard Kwok <g-kwok@cs.yorku.ca>\n\nRenderers which are not raytracers, and graphics libraries:\n-----------------------------------------------------------\n\nSIPP - Scan line z-buffer and Phong shading renderer.\n\tNow uses the shadow buffer algorithm.\nTcl-SIPP - a Tcl command interface to the SIPP rendering\n\tprogram. Tcl-SIPP is a set of Tcl commands used to programmed\n\tSIPP without having to write and compile C code.\n\tCommands are used to specify surfaces, objects,\n\tscenes and rendering options.\n\tIt renders either in PPM format or in Utah Raster Toolkit RLE format\n\tor to the photo widget in the Tk-based X11 applications.\n\nVOGLE - graphics learning environment (device portable).\nVOGL - an SGI GL-like library based on VOGLE.\nREND386 - A *fast* polygon renderer for Intel 386s and up. Version 2 on up.\n\t[ It's not photorealistic, but rather a real-time renderer]\nXSHARP21 - Dr. Dobb's Journal PC renderer source code, with budget texture\n\tmapping.\n\nModellers, wireframe viewers:\n-----------------------------\n\nVISION-3D - Mac modeler, can output Radiance & Rayshade files.\nIRIT - A CSG solid modeler, with support for freeform surfaces.\nX3D - A wireframe viewer for X11.\n3DV - 3-D wireframe graphics toolkit, with C source, 3dv objects, other stuff\n\tLook at major PC archives like wuarchive. One such file is 3DKIT1.ZIP\nPV3D - a shareware front end modeler for POVRAY, still in beta test.\n  French docs for now, price for registering 250 French Francs. Save disabled.\n  Some extra utilities, DXF files for the registered version.\n\nGeometric viewers:\n------------------\n\nSALEM - A GL-based package from Dobkin et al. for exploring mathematical\n\tstructures.\nGEOMVIEW - A GL-based package for looking and interactively manipulating\n3D objects, from Geometry Center at Minnesota.\nXYZ GeoBench -(eXperimental geometrY Zurich) is a workbench for geometric\n\tcomputation for Macintosh computers.\nWIRE4 - GL wireframe previewer for Steve Hollasch's RAY4 (see above)\n\nData Formats and Data Sets for Ray Tracing:\n-------------------------------------------\n\nSPD - a set of procedural databases for testing ray tracers.\nNFF - simplistic file format used by SPD.\nOFF - another file format.\nP3D - a lispy file format.\nTDDD - Imagine (3D modeler) format, has converters for RayShade, NFF, OFF, etc.\n\tAlso includes a nice postscript object displayer.  Some GREAT models.\nTTDDDLIB - converts to/from TDDD/TTDDD, OFF, NFF, Rayshade 4.0, Imagine,\n\tand vort 3d objects. Also outputs Framemaker MIF files and isometric\n\tviews in Postscript. Registered users get a TeX PK font converter and\n\ta superquadric surfaces generator.\n\tGlenn Lewis <glewis@pcocd2.intel.com>\n\t[Note : TTDDDLIB is also known as T3DLIB]\nCHVRTD - Chapel Hill Volume Rendering Test Datasets, includes volume sets for\n\ttwo heads, a brain, a knee, electron density maps for RNA and others.\n\nWritten Material on Rendering:\n------------------------------\n\nRT News - collections of articles on ray tracing.\nRT bib - references to articles on ray tracing in \"refer\" format.\nRad bib - references to articles on radiosity (global illumination).\nSpeer RT bib - Rick Speer's cross-referenced RT bib, in postscript.\nRT abstracts - collection by Tom Wilson of abstracts of many RT articles.\nPaper bank project - various technical papers in electronic form.  Contact\n\tJuhana Kouhia <jk87377@cs.tut.fi>\nOnline Bibliography Project :\n        The ACM SIGGRAPH Online Bibliography Project is a database of \n        over 15,000 unique computer graphics and computational geometry\n        references in BibTeX format, available to the computer graphics\n        community as a research and educational resource.\n\n        The database is located at \"siggraph.org\".  Users may download \n        the BibTeX files via FTP and peruse them offline, or telnet to\n        \"siggraph.org\" and log in as \"biblio\" and interactively search\n        the database for entries of interest, by keyword.\n        For the people without Internet access, there's also an e-mail\n        server. Send mail to\n\n        archive-server@siggraph.org\n\n        and in the subject or the body of the message include the message  send\n        followed by the topic and subtopic you wish. A good place to start is\n        with the command\n             send index\n        which will give you an up-to-date list of available information.\n\n        Additions/corrections/suggestions may be directed to the admin,\n        \"bibadmin@siggraph.org\".\n\nImage Manipulation Libraries:\n-----------------------------\n\nUtah Raster Toolkit - nice image manipulation tools.\nPBMPLUS - a great package for image conversion and manipulation.\nLIBTIFF - library for reading/writing TIFF images.\nImageMagick - X11 package for display and interactive manipulation\n\tof images.  Uses its own format (MIFF), and includes some converters.\nxv - X-based image display, manipulation, and format converter.\nxloadimage, xli - displays various formats on an X11 screen.\nKhoros - a huge, excellent system for image processing, with a visual\n\tprogramming interface and much much more.  Uses X windows.\nFBM - another set of image manipulation tools, somewhat old now.\nImg - image manipulation, displays on X11 screen, a bit old now.\nxflick - Plays .FLI animation under X11\nXAnim - plays any resolution FLI along with GIF's(including GIF89a animation\n\textensions), DL's and Amiga IFF animations(3,5,J,l) and IFF\n\tpictures(including HAM,EHB and color cycling)\nSDSC - SDSC Image Tools package (San Diego Supercomputing Center)\n\tfor image manipulation and conversion\nCLRpaint - A 24-bit paint program for SGI 24bit workstations and 8bit Indigos.\n\nLibraries with code for graphics:\n---------------------------------\n\nGraphics Gems I,II,III - code from the ever so useful books.\nspline-patch.tar.Z - spline patch ray intersection routines by Sean Graves\nkaleido - Computation and 3D Display of Uniform Polyhedra. Mirrored in\n\twuarchive. This package computes (and displays) the metrical\n\tproperties of 75 polyhedra. Author: Dr. Zvi Har'El,\n\te-mail: rl@gauss.technion.ac.il\n\n(*) means site is an \"official\" distributor, so is most up to date.\n\n\nNORTH AMERICA (please look for things on your own continent first...):\n-------------\n\nwuarchive.wustl.edu [128.252.135.4]:  /graphics/graphics - get CONTENTS file\n\tfor a roadmap.  /graphics/graphics/objects/TDDD - *the TTDDD objects\n\tand converters*, /mirrors/unix-c/graphics - Rayshade ray tracer, MTV\n\tray tracer, Vort ray tracer, FBM, PBMPLUS, popi, Utah raster toolkit.\n\t/mirrors/msdos/graphics - DKB ray tracer, FLI RayTracker demos.\n\t/pub/rad.tar.Z - *SGI_RAD*, /graphics/graphics/radiosity - Radiance\n\tand Indian radiosity package.  /msdos/ddjmag/ddj9209.zip - version 21\n\tof Xsharp, with fast texture mapping.  There's lots more, including\n\tbibs, Graphics Gems I & II code, OFF, RTN, Radiance, NFF, SIPP, spline\n\tpatch intersection routines, textbook errata, source code from Roy\n\tHall's book \"Illumination and Color in Computer Generated Imagery\", etc\n\tgraphics/graphics/packages/kaleido - *kaleido*\n\tGeorge Kyriazis <kyriazis@turing.cs.rpi.edu>\n\nprinceton.edu [128.112.128.1]:  /pub/Graphics (note capital \"G\") - *Rayshade\n\t4.0 ray tracer (and separate 387 executable)*, *color quantization\n\tcode*, *SPD*, *RT News*, *Wilson's RT abstracts*, \"RT bib*, *Utah\n\tRaster Toolkit*, newer FBM, *Graphics Gems I, II & III code*.\n\t/pub/graphics directory - *SALEM* and other stuff.\n\tCraig Kolb <cek@princeton.edu>\n\t[replaces weedeater.math.yale.edu - note the capital \"G\" in\n\tpub/Graphics] Because there's a trouble with princeton's incoming\n\tarea, you can upload Rayshade-specific stuff to\n\tweedeater.math.yale.edu [128.36.23.17]\n\nalfred.ccs.carleton.ca [134.117.1.1]:  /pub/dkbtrace - *DKB ray tracer*,\n\t/pub/pov-ray/POV-Ray1.0 - *PVRay Compuserve group ray tracer (or PoV)*.\n\tDavid Buck <david_buck@carleton.ca>\n\navalon.chinalake.navy.mil [129.131.31.11]:  3D objects (multiple formats),\n\tutilities, file format documents.\n\tThis site was created to be a 3D object \"repository\" for the net.\n\tFrancisco X DeJesus <dejesus@archimedes.chinalake.navy.mil>\n\nomicron.cs.unc.edu [152.2.128.159]:  pub/softlab/CHVRTD - Chapel Hill\n\tVolume Rendering Test Datasets.\n\nftp.mv.com [192.80.84.1]: - Official DDJ FTP repository.\n\t*XSHARP*\n\npeipa.essex.ac.uk [155.245.115.161]: the Pilot European Image Processing\n\tArchive; in a directory ipa/synth or something like that, there are\n\timage synthesis packages.\n\tAdrian Clarke <alien@essex.ac.uk>\n\nbarkley.berkeley.edu [128.32.142.237] : tcl/extensions/tsipp3.0b.tar.Z -\n\t*Tcl-SIPP*\n\tMark Diekhans <markd@grizzly.com or markd@NeoSoft.com>\n\nacs.cps.msu.edu [35.8.56.90]: pub/sass - *X window fonts converter into\n\tRayshade 3.0 polygons*, Rayshade animation tool(s).\n\tRon Sass <sass@cps.msu.edu>\n\nhobbes.lbl.gov [128.3.12.38]: *Radiance* ray trace/radiosity package.\n\tGreg Ward <gjward@lbl.gov>\n\ngeom.umn.edu [128.101.25.31] : pub/geomview - *GEOMVIEW*\n\tContact (for GEOMVIEW): software@geom.umn.edu\n\nftp.arc.umn.edu [137.66.130.11] : pub/gvl.tar.Z - the latest version of Bob,\n\tIcol and Raz.  Source, a manual, man pages, and binaries for\n\tIRIX 4.0.5 are included (Bob is a real time volume renderer)\n\tpub/  contains also many volume datasets.\n\tKen Chin-Purcell <ken@ahpcrc.umn.edu>\n\nftp.kpc.com [144.52.120.9] : /pub/graphics/holl91 - Steve Hollasch's\n\tThesis, /pub/graphics/ray4 - *RAY4*, /pub/graphics/wire4 - *WIRE4*.\n\t/pub/mirror/avalon - mirror of avalon's 3D objects repository.\n\tSteve Hollasch <hollasch@kpc.com>\n\nswedishchef.lerc.nasa.gov [139.88.54.33] : programs/hollasch-4d - RAY4,\n\tSGI Explorer modules and Postscript manual, etc.\n\nzamenhof.cs.rice.edu [128.42.1.75] : pub/graphics.formats - Various electronic\n\tdocuments about many object and image formats.\n\tMark Hall <foo@cs.rice.edu>\n\twill apparently no longer be maintaining it, see ftp.ncsa.uiuc.edu.\n\nrascal.ics.utexas.edu [128.83.144.1]:  /misc/mac/inqueue - VISION-3D facet\n\tbased modeller, can output RayShade and Radiance files.\n\nftp.ncsa.uiuc.edu [141.142.20.50] :  misc/file.formats/graphics.formats -\n\tcontains various image- and object-format descriptions.  Many SciVi\n\ttools in various directories, e.g.  SGI/Alpha-shape/Alvis-1.0.tar.Z -\n\t3D alpha-shape visualizer (SGI machines only),\n\tSGI/Polyview3.0/polyview.Z - interactive visualization and analysis of\n\t3D geometrical structures.\n\tQuincey Koziol <koziol@ncsa.uiuc.edu>\n\ntucana.noao.edu [140.252.1.1] : /iraf - the IRAF astronomy package\n\nftp.ipl.rpi.edu [128.113.14.50]:  sigma/erich - SPD images and Haines thesis\n\timages.  pub/images - various 24 and 8 bit image stills and sequences.\n\tKevin Martin <sigma@ipl.rpi.edu>\n\nftp.psc.edu [128.182.66.148]:  pub/p3d - p3d_2_0.tar P3D lispy scene\n\tlanguage & renderers.  Joel Welling <welling@seurat.psc.edu>\n\nftp.ee.lbl.gov [128.3.254.68]: *pbmplus.tar.Z*, RayShade data files.\n\tJef Poskanzer <jef@ace.ee.lbl.gov>\n\ngeorge.lbl.gov [128.3.196.93]: pub/ccs-lib/ccs.tar.Z - *CCS (Complex\n\tConversion System), a standard software interface for image processing*\n\nhanauma.stanford.edu [36.51.0.16]: /pub/graphics/Comp.graphics - best of\n\tcomp.graphics (very extensive), ray-tracers - DBW, MTV, QRT, and more.\n\tJoe Dellinger <joe@hanauma.stanford.edu>\n\nftp.uu.net [192.48.96.2]:  /graphics - *IRIT*, RT News back issues (not\n\tcomplete), NURBS models, other graphics related material.\n\t/graphics/jpeg/jpegsrc.v?.tar.Z - Independent JPEG Group package for\n\treading and writing JPEG files.\n\nfreebie.engin.umich.edu [141.212.68.23]:  *Utah Raster Toolkit*,\n\tSpencer Thomas <thomas@eecs.umich.edu>\n\nexport.lcs.mit.edu [18.24.0.12] : /contrib - pbmplus, Image Magick, xloadimage,\n\txli, xv, Img, lots more.  /pub/R5untarred/mit/demos/gpc - NCGA Graphics\n\tPerformance Characterization (GPC) Suite.\n\nlife.pawl.rpi.edu [128.113.10.2]: /pub/ray - *Kyriazis stochastic Ray Tracer*.\n\tGeorge Kyriazis <kyriazis@turing.cs.rpi.edu>\n\ncs.utah.edu [128.110.4.21]: /pub - Utah raster toolkit, *NURBS databases*.\n\tJamie Painter <jamie@cs.utah.edu>\n\ngatekeeper.dec.com [16.1.0.2]:  /pub/DEC/off.tar.Z - *OFF models*,\n\tAlso GPC Benchmark files (planned, but not checked).\n\tRandi Rost <rost@kpc.com>\n\nhubcap.clemson.edu [130.127.8.1]:  /pub/amiga/incoming/imagine - stuff for the\n\tAmiga Imagine & Turbo Silver ray tracers.  /pub/amiga/TTDDDLIB -\n\t*TTDDDLIB* /pub/amiga/incoming/imagine/objects - MANY objects.\n\tGlenn Lewis <glewis@pcocd2.intel.com>\n\npprg.eece.unm.edu [129.24.24.10]:  /pub/khoros - *Khoros image processing\n\tpackage (huge, but great)*.\n\tDanielle Argiro <danielle@bullwinkle.unm.edu>\n\nexpo.lcs.mit.edu [18.30.0.212]:  contrib - *PBMPLUS portable bitmap package*,\n\t*poskbitmaptars bitmap collection*, *Raveling Img*, xloadimage.  Jef\n\tPoskanzer <jef@well.sf.ca.us>\n\nvenera.isi.edu [128.9.0.32]:  */pub/Img.tar.z and img.tar.z - some image\n\tmanipulation*, /pub/images - RGB separation photos.\n\tPaul Raveling <raveling@venera.isi.edu>\n\nucsd.edu [128.54.16.1]:  /graphics - utah rle toolkit, pbmplus, fbm,\n\tdatabases, MTV, DBW and other ray tracers, world map, other stuff.\n\tNot updated much recently.\n\ncastlab.engr.wisc.edu [128.104.52.10]:  /pub/x3d.2.2.tar.Z - *X3D*\n\t/pub/xdart.1.1.* - *XDART*\n\tMark Spychalla <spy@castlab.engr.wisc.edu>\n\nsgi.com [192.48.153.1]:  /graphics/tiff - TIFF 6.0 spec & *LIBTIFF* software\n\tand pics.  Also much SGI- and GL-related stuff (e.g. OpenGL manuals)\n\tSam Leffler <sam@sgi.com>\n\t[supercedes okeeffe.berkeley.edu for the LIBTIFF stuff]\n\nsurya.waterloo.edu [129.97.129.72]: /graphics - FBM, ray tracers\n\nftp.sdsc.edu [132.249.20.22]: /sdscpub - *SDSC*\n\nftp.brl.mil [128.63.16.158]: /brl-cad - information on how to get the\n\tBRL CAD package & ray tracer.  /images - various test images.\n\tA texture library has also begun here.\n\tLee A. Butler <butler@BRL.MIL>\n\ncicero.cs.umass.edu [128.119.40.189]:  /texture_temp - 512x512 grayscale\n\tBrodatz textures,\n\tfrom Julien Flack <julien@scs.leeds.ac.uk>.\n\nkarazm.math.uh.edu [129.7.7.6]:  pub/Graphics/rtabs.shar.12.90.Z - *Wilson's\n\tRT abstracts*, VM_pRAY.\n\tJ. Eric Townsend <jet@karazm.math.uh.edu or jet@nas.nasa.gov>\n\nftp.pitt.edu [130.49.253.1]:  /users/qralston/images - 24 bit image archive\n\t(small).  James Ralston Crawford <qralston@gl.pitt.edu>\n\nftp.tc.cornell.edu [128.84.201.1]: /pub/vis - *VREND*\n\nsunee.waterloo.edu [129.97.50.50]: /pub/raytracers - vivid, *REND386*\n\t[or sunee.uwaterloo.ca]\n\narchive.umich.edu [141.211.164.153]: /msdos/graphics - PC graphics stuff.\n\t/msdos/graphics/raytrace - VIVID2.\n\napple.apple.com [130.43.2.2?]:  /pub/ArchiveVol2/prt.\n\nresearch.att.com [192.20.225.2]: /netlib/graphics - *SPD package*, ~/polyhedra -\n\t*polyhedra databases*.  (If you don't have FTP, use the netlib\n\tautomatic mail replier:  UUCP - research!netlib, Internet -\n\tnetlib@ornl.gov.  Send one line message \"send index\" for more info,\n\t\"send haines from graphics\" to get the SPD)\n\nsiggraph.org [128.248.245.250]: SIGGRAPH archive site.\n\tpublications - *Online Bibliography Project*, Conference proceedings\n\tin various electronic formats (papers, panels), SIGGRAPH Video Review\n\tinformation and order forms.\n\tOther stuff in various directories.\n\tAutomatic mailer is archive-server@siggraph.org (\"send index\").\n\nftp.cs.unc.edu [128.109.136.159]: pub/reaction_diffusion - Greg Turk's work on\n\treaction-diffusion textures, X windows code (SIGGRAPH '91)\n\navs.ncsc.org [128.109.178.23]:  ~ftp/VolVis92 - Volume datasets from the\n\tBoston Workshop on Volume Visualization '92.  This site is also the\n\tInternational AVS Center.\n\tTerry Myerson <tvv@ncsc.org>\n\nuvacs.cs.virginia.edu [128.143.8.100]:  pub/suit/demo/{sparc,dec,etc} - SUIT\n\t(Simple User Interface Toolkit).  \"finger suit@uvacs.cs.virginia.edu\"\n\tto get detailed instructions.\n\nnexus.yorku.ca [130.63.9.66]: /pub/reports/Radiosity_code.tar.Z - *RAD*\n\t/pub/reports/Radiosity_thesis.ps.Z - *RAD MSc. Thesis*\n\t[This site will be changed to ftp.yorku.ca in the near future]\n\nmilton.u.washington.edu [128.95.136.1] - ~ftp/public/veos - VEOS Virtual\n\tReality and distributed applications prototyping environment\n\tfor Unix. Veos Software Support : veos-support@hitl.washington.edu\n        oldpublic/fly - FLY! 3D Visualization Software demo.\n        That package is built for \"fly-throughs\" from various datasets in\n        near real-time. There are binaries for many platforms.\n\tAlso, much other Virtual Reality stuff.\n\nzug.csmil.umich.edu [141.211.184.2]: X-Xpecs 3D files (an LCD glass shutter\n\tfor Amiga computers - great for VR stuff!)\n\nsugrfx.acs.syr.edu [128.230.24.1]: Various stereo-pair images.\n[ Has closed down :-( ]\n\nsunsite.unc.edu [152.2.22.81]: /pub/academic/computer-science/virtual-reality -\n\tFinal copy of the sugrfx.acs.syr.edu archive that ceased to exist.\n\tIt contains Powerglove code, VR papers, 3D images and IRC research\n\tmaterial.\n\tJonathan Magid <jem@sunSITE.unc.edu>\n\narchive.cis.ohio-state.edu [128.146.8.52]: pub/siggraph92 - Code for\n\tSiggraph '92 Course 23 (Procedural Modeling and Rendering Techniques)\n\tDr. David S. Ebert <ebert@cis.ohio-state.edu>\n\nlyapunov.ucsd.edu [132.239.86.10]: This machine is considered the\n\trepository for preprints and programs for nonlinear dynamics,\n\tsignal processing, and related subjects  (and fractals, of course!)\n\tMatt Kennel <mbk@inls1.ucsd.edu>\n\ncod.nosc.mil [128.49.16.5]: /pub/grid.{ps,tex,ascii} - a short survey of\n\tmethods to interpolate and contour bivariate data\n\nics.uci.edu [128.195.1.1]: /honig --- Various stereo-pair images,\n\tmovie.c - animates a movie on an X display (8-bit and mono) with\n\tdigital subtraction.\n\ntaurus.cs.nps.navy.mil [131.120.1.13]: pub/dabro/cyberware_demo.tar.Z - Human\n\thead data\n\npioneer.unm.edu [129.24.9.217]:  pub/texture_maps - Hans du Buf's grayscale\n\ttest textures (aerial swatches, Brodatz textures, synthetic swatches).\n\tSpace & planetary image repository.  Provides access to >150 CD-ROMS\n\twith data/images (3 on-line at a time).\n        pub/info/beginner-info - here you should start browsing.\n        Colby Kraybill <opus@pioneer.unm.edu>.\n\ncs.brown.edu [128.148.33.66] : *SRGP/SPHIGS* . For more info on SRGP/SPHIGS:\n         mail -s 'software-distribution' graphtext@cs.brown.edu\n\npdb.pdb.bnl.gov [130.199.144.1] has data about various organic molecules,\n       bonds between the different atoms, etc.\n       Atomic coordinates (and a load of other stuff) are contained in the\n       \"*.ent\" files, but the actual atomic dimemsions seem to be missing.\n       You could convert these data to PoV, rayshade, etc.\n\nbiome.bio.ns.ca [142.2.20.2] : /pub/art - some Renoir paintings,\n        Escher's pictures, etc.\n\nic16.ee.umanitoba.ca [] : /specmark - sample set of images from the\n        `Images from the Edge' CD-ROM (images of atomic landscapes, advanced\n        semiconductors, superconductors and experimental surface\n        chemistry among others). Contact ruskin@ee.umanitoba.ca\n\nexplorer.dgp.toronto.edu [128.100.1.129] : pub/sgi/clrpaint - *CLRpaint*\n        pub/sgi/clrview.* - CLRview, a tool that aids in visualization\n        of GIS datasets in may formats like DXF, DEM, Arc/Info, etc.\n\names.arc.nasa.gov [128.102.18.3]: pub/SPACE/CDROM - images from Magellan\n        and Viking missions etc. Get pub/SPACE/Index first.\n        pub/SPACELINK has most of the SpaceLink service data (see below)\n        e-mail server available: send mail to archive-server@ames.arc.nasa.gov\n        (or ames!archive-server) with subject:\"help\"\n        or \"send SPACE Index\" (without the quotes!)\n        Peter Yee <yee@ames.arc.nasa.gov>\n\npubinfo.jpl.nasa.gov [128.149.6.2]: images, other data, etc. from JPL\n        missions. Modem access at (818)-354-1333 (no parity, 8 data bits, 1\n        stop bit).\n        newsdesk@jplpost.jpl.nasa.gov or phone (818)-354-7170\n\nspacelink.msfc.nasa.gov [128.158.13.250] (passwd:guest) : space graphics\n        and GIF images from NASA's planetary probes and the Hubble Telescope.\n        Main function is support for teachers (you can telnet also to this\n        site). Dial up access: (205)-895-0028 (300/1200/2400/9600(V.32) baud,\n        8 bits, no parity, 1 stop bit).\n\nstsci.edu [130.167.1.2] : Hubble Space Telescope stuff (images and other\n        data). Read the README first!\n        Pete Reppert <reppert@stsci.edu> or Chris O'Dea <odea@stsci.edu>\n\npit-manager.mit.edu [18.172.1.27]:  /pub/usenet/news.answers - the land of\n\tFAQs.  graphics and pictures directories of particular interest.\n\t[Also available from mail-server@pit-manager.mit.edu by sending a mail\n\tmessage containing: help]\n\nUUCP archive: avatar - RT News back issues.  For details, write Kory Hamzeh\n\t<kory@avatar.avatar.com>\n\n\nEUROPE:\n-------\n\nnic.funet.fi [128.214.6.100]:  *pub/sci/papers - *Paper bank project,\n\tincluding Pete Shirley's entire thesis (with pics)*, *Wilson's RT\n\tabstracts*, pub/misc/CIA_WorldMap - CIA world data bank,\n\tcomp.graphics.research archive, *India*, and much, much more.\n\tJuhana Kouhia <jk87377@cs.tut.fi>\n\ndasun2.epfl.ch [128.178.62.2]:  Radiance. Good for European sites, but\n\tdoesn't carry the add-ons that are available for Radiance.\n\nisy.liu.se [130.236.1.3]:  pub/sipp/sipp-3.0.tar.Z - *SIPP* scan line z-buffer\n\tand Phong shading renderer.  Jonas Yngvesson <jonas-y@isy.liu.se>\n\nirisa.fr [131.254.2.3]:  */iPSC2/VM_pRAY ray tracer*, SPD, /NFF - many non-SPD\n\tNFF format scenes, RayShade data files.  Didier Badouel\n\t<badouel@irisa.irisa.fr> [may have disappeared]\n\nphoenix.oulu.fi [130.231.240.17]:  *FLI RayTracker animation files (PC VGA) -\n\talso big .FLIs (640*480)* *RayScene demos* [Americans:  check wuarchive\n\tfirst].  More animations to come.  Jari Kahkonen\n\t<hole@phoenix.oulu.fi>\n\njyu.fi [128.214.7.5]: /pub/graphics/ray-traces - many ray tracers, including\n\tVM_pRAY, DBW, DKB, MTV, QRT, RayShade, some RT News, NFF files.  Jari\n\tToivanen <toivanen@jyu.fi>\n\ngarbo.uwasa.fi [128.214.87.1]:  Much PC stuff, etc., /pc/source/contour.f -\n\tFORTRAN program to contour scattered data using linear triangle-based\n\tinterpolation\n\nasterix.inescn.pt [192.35.246.17]:  pub/RTrace - *RTrace* nffutils.tar.Z (NFF\n\tutilities for RTrace), medical data (CAT, etc.)  converters to NFF,\n\tAutocad to NFF Autolisp code, AUTOCAD 11 to SCN (RTrace's language)\n\tconverter and other goodies.  Antonio Costa (acc@asterix.inescn.pt)\n\nvega.hut.fi [128.214.3.82]: /graphics - RTN archive, ray tracers (MTV, QRT,\n\tothers), NFF, some models.\n[ It was shut down months ago , check under nic.funet.fi -- nfotis ]\n\nsun4nl.nluug.nl [192.16.202.2]: /pub/graphics/raytrace - DBW.microray, MTV, etc\n\nunix.hensa.ac.uk [] : misc/unix/ralcgm/ralcgm.tar.Z - CGM viewer and\n        converter.\n        There's an e-mail server also - mail to archive@unix.hensa.ac.uk\n        with the message body \"send misc/unix/ralcgm/ralcgm.tar.Z\"\n\nmaeglin.mt.luth.se [130.240.0.25]:  graphics/raytracing - prt, others, ~/Doc -\n\t*Wilson's RT abstracts*, Vivid.\n\nftp.fu-berlin.de [130.20.225.2]:  /pub/unix/graphics/rayshade4.0/inputs -\n\taq.tar.Z is RayShade aquarium [Americans:  check princeton.edu first).\n\tHeiko Schlichting <heiko@math.fu-berlin.de>\n\nmaggia.ethz.ch [129.132.17.1]: pub/inetray - *Inetray* and Sun RPC 4.0 code\n\tAndreas Thurnherr <ant@ips.id.ethz.ch>\n\nosgiliath.id.dth.dk [129.142.65.24]:  /pub/amiga/graphics/Radiance - *Amiga\n\tport of Radiance 2.0*.  Per Bojsen <bojsen@ithil.id.dth.dk>\n\nftp.informatik.uni-oldenburg.de [134.106.1.9] : *PoV raytracer*\n        Mirrored in wuarchive, has many goods for PoV.\n\tpub/dkbtrace/incoming/polyray - Polyray raytracer\n        pub/dkbtrace/incoming/pv3d* - *PV3D*\n\nftp.uni-kl.de [131.246.9.95]: /pub/amiga/raytracing/imagine - mirror of\n\tthe hubcap Imagine files.\n\nneptune.inf.ethz.ch [129.132.101.33]: XYZ - *XYZ GeoBench*\n\tPeter Schorn <schorn@inf.ethz.ch>\n\niamsun.unibe.ch [130.92.64.10]: /Graphics/graphtal* - a L-system interpreter.\n\tChristoph Streit <streit@iam.unibe.ch>\n\namiga.physik.unizh.ch [130.60.80.80]: /amiga/gfx - Graphics stuff\n\tfor the Amiga computer.\n\nstesis.hq.eso.org [134.171.8.100]: on-line access to a huge astronomical\n        database. (login:starcat;no passwd)\n        DECnet:STESIS (It's the Space Telescope European Coordination Facility)\n        Benoit Pirenne <bpirenne@eso.org>, phone +49 89 320 06 433\n\n\nMIDDLE EAST\n-----------\n\ngauss.technion.ac.il [132.68.112.60]: *kaleida*\n\n\nAUSTRALIA:\n----------\n\ngondwana.ecr.mu.oz.au [128.250.70.62]: pub - *VORT(ART) ray tracer*, *VOGLE*,\n\tWilson's ray tracing abstracts, /pub/contrib/artscenes (ART scenes from\n\tItaly), pub/images/haines - Haines thesis images, Graphics Gems code,\n\tSPD, NFF & OFF databases, NFF and OFF previewers, plus some 8- and\n\t24bit images and lots of other stuff.  pub/rad.tar.Z - *SGI_RAD*\n\tBernie Kirby <bernie@ecr.mu.oz.au>\n\nmunnari.oz.au [128.250.1.21]:  pub/graphics/vort.tar.Z - *VORT (ART) 2.1 CSG and\n\talgebraic surface ray tracer*, *VOGLE*, /pub - DBW, pbmplus.  /graphics\n\t- room.tar.Z (ART scenes from Italy).\n\tDavid Hook <dgh@munnari.oz.au>\n\nmarsh.cs.curtin.edu.au [134.7.1.1]: pub/graphics/bibliography/Facial_Animation,\n\tpub/graphics/bibliography/Morph, pub/graphics/bibliography/UI -\n\tstuff about Facial animation, Morphing and User Interfaces.\n\tpub/fascia - Fred Parke's fascia program.\n\tValerie Hall <val@lillee.cs.curtin.edu.au>\n\n\nOCEANIA - ASIA:\n---------------\n\nccu1.aukland.ac.nz [130.216.1.5]:  ftp/mac/architec - *VISION-3D facet\n\tbased modeller, can output RayShade files*.  Many other neat things\n\tfor Macs.  Paul Bourke <pdbourke@ccu1.aukland.ac.nz>\n\nscslwide.sony.co.jp [133.138.199.1]:  ftp2/SGI/Facial-Animation - Steve Franks\n\tsite for facial animation.\n \tSteve Franks <stevef@csl.sony.co.jp OR stevef@cs.umr.edu>\n\n\n4. Mail servers and graphics-oriented BBSes\n===========================================\n\nPlease check first with the FTP places above, with archie's help.\nDon't overuse mail servers.\n\nThere are some troubles with wrong return addresses. Many of these\nmail servers have a command like\n   path a_valid_return_e-mail_address\nto get a hint for sending back to you stuff.\n\nDEC's FTPMAIL\n-------------\n  Send a one-line message to ftpmail@decwrl.dec.com WITHOUT a Subject: field,\n  and having a line containing the word 'help'.\n  You should get back a message detailing the relevant procedures you\n  must follow in order to get the files you want.\n\n  Note that the \"reply\" or \"answer\" command in your mailer will not work\n  for this message or any other mail you receive from FTPMAIL.  To send\n  requests to FTPMAIL, send an original mail message, not a reply.\n  Complaints should be sent to the ftpmail-request@uucp-gw-2.pa.dec.com\n  address rather than to postmaster, since DECWRL's postmaster is not\n  responsible for fixing ftpmail problems.\n\nBITFTP\n------\n  For BITNET sites ONLY, there's BITFTP@PUCC.\n  Send a one-line 'help' message to this address for more info.\n\nLightwave 3D mail based file-server\n-----------------------------------\n  A mail based file server for 3D objects, 24bit JPEG images, GIF images\n  and image maps is now online for all those with Internet mail access.\n  The server is the official archive site for the Lightwave 3D mail-list\n  and contains many PD and Shareware graphics utilities for\n  several computer platforms including Amiga, Atari, IBM and Macintosh.\n\n  The server resides on a BBS called \"The Graphics BBS\".  The BBS is\n  operational 24 hours a day 7 days a week at the phone number of +1\n  908/469-0049.  It has upgraded its modem to a Hayes Ultra 144\n  V.32bis/V.42bis, which has speeds from 300bps up to 38,400bps.\n\n  If you would like to submit objects, scenes or images to the server,\n  please pack, uuencode and then mail the files to the address:\n  server@bobsbox.rent.com.\n\n  For information on obtaining files from the server send a mail message\n  to the address file-server@graphics.rent.com with the following in\n  the body of the message:\n    HELP\n    /DIR\n  And a help file describing how to use the server and a complete\n  directory listing will be sent to you via mail.\n\n[ Now it includes the Cyberware head and shouders in TTDDD format! Check it\n out, only if you can't use FTP! -- nfotis ]\n\nINRIA-GRAPHLIB\n--------------\n  Pierre Jancene and Sabine Coquillart launched the inria-graphlib mail\n  server a few months ago.\n\n    echo help | mail inria-graphlib@inria.fr\n\n  will give you a quick summary of what inria-graphlib contains and \n  how to browse among its files.\n\n    echo send contents | mail inria-graphlib@inria.fr\n\n  will return the extended summary.\n\n  As an other example :\n\n    echo send cgrl from Misc | mail inria-graphlib@inria.fr\n\n  will return the Computer Graphics Resource Listing mirrored from\n  comp.graphics.\n\nBBSes\n-----\n  There are many BBSes that store datafiles, etc.etc., but a guide to these\n  is beyond the scope of this Listing (and the resources of the author!)\n  If you can point to me Internet- or mail- accessible BBSes that carry\n  interesting stuff, send me info!\n\n\n  Studio Amiga is a 3D modelling and ray tracing specific BBS, (817) 467-3658.\n  24 hours, 105 Meg online.\n--\nFrom Jeff Walkup <pwappy@well.sf.ca.us>:\n  \"The Castle\" 415/355-2396 (14.4K/v.32bis/v.42/v.42bis/MNP)\n  (In Pacifica, dang close to San Francisco, California, USA)\n  The new-user password is: \"TAO\".\n  \n  [J]oin base #2; The Castle G/FX, Anim, Video, 3D S.I.G., of which\n  I am the SIG-Op, \"Lazerus\".\n--\n  Bob Lindabury operates a BBS (see above the entry for \"The Graphics BBS\")\n--\n'You Can Call Me Ray' ray tracing related BBS in Chicago suburbs (708-358-5611)\n or (708-358-8721)\n--\n  Digital Pixel (Sysop: Mark Ng <mcng@descartes.waterloo.edu>) is based at\n  Toronto, Ontario, Canada.\n \n  Phone : (416) 298 1487\n  Storage space: 330 megs\n  Modem type:  14.4k baud,16.8k (Zyxel) , v32bis ,v32, mnp 5\n\n  Access Fee: none.. (free)\n  System supported : DOS, OS/2, Amiga, Mac.  \n  Netmail:     Currently no echo mail.\n  Topics:      Raytracing, Fractals, Graphics programming, CAD, Any Comp.\n               Graphics related  \n\n--\nFrom: David Tiberio <dtiberio@ic.sunysb.edu>\n\n  Amiga Graphics BBS (516) 473-6351 in Long Island, New York,\n  running 24 hours at 14.4k v.32bis, with 157 megs on line.\n  We also subscribe to 9 mailing lists, of which 5 originate\n  from our BBS, with 3 more to be added soon. These include:\n\n  Lightwave, Imagine, Real 3D (ray tracing)\n\n  Database files include:\n  Imagine 3D objects, 3D renderings, scalable fonts, music\n  modules, sound samples, demos, animations, utilities,\n  text databases, and pending Lightwave 3D objects.\n--\nThe Graphics Alternative\n\n The Graphics Alternative is in El Cerrito, CA., running 24 hours a\n day at 14.4k HST/v.32bis, with 642MB online and a 1300+ user base.\n TGA runs two nodes, node 1 (510) 524-2780 is for public access and\n includes a free 90 day trial subscription.  TGA is the West Coast\n Host for PCGnet, The Profesional CAD and Graphics Network, supporting\n nodes across the Continental U.S., Alaska, New Zealand, Australia,\n France and the UK.\n \n TGA's file database includes MS-DOS executables for POV, Vivid,\n RTrace, Rayshade, Polyray, and others.  TGA also has numerous\n graphics utilities, viewers, and conversion utilities.  Registered\n Vivid users can also download the latest Vivid aeta code from a\n special Vivid conference.\n\n--\nFrom: Scott Bethke <sbathkey@access.digex.com>\n\nThe Intersection BBS, 410-250-7149.\n\n  This BBS Is dedicated to supporting 3D Animators.The system is provided\n  FREE OF CHARGE, and is NOT Commercialized in ANYWAY.\n  Users are given FULL Access on the first call.\n\nFeatures: Usenet NEWS & Internet Mail, Fidonet Echo's & Netmail,\n\t200 Megs online, V.32bis/V.42bis Modem.\n\nPlatforms of interest: Amiga & The VideoToaster, Macintosh, Ms-Dos,\n\tUnix Workstations (Sun, SGI, etc), Atari-ST.\n--\nFrom: Alfonso Hermida <afanh@robots.gsfc.nasa.gov>:\n\n Pi Square BBS (301)725-9080 in Maryland. It supports raytracers such as POV\n and VIVID. The BBS runs off a 486/33Mhz, 100Megs hard drive and CD ROM.\n Now it runs on 1200-2400bps (this will change soon)\n\n Topics: graphics programming, animation,raytracing,programming (general)\n--\nFrom: Lynn Falkow <ROXXIE@delphi.com>:\n\n  Vertech Design's GRAPHIC CONNECTION. (503) 591-8412 in Portland, Oregon.\n  V.32/V.42bis.\n\n  The BBS, aside from carrying typical BBS services like message bases\n  ( all topic specific ) and files ( CAD and graphics related -- hundreds\n  of megabytes ), also offers material texture files that are full color,\n  seamlessly tiling, photo-realistic images.  There are samples available\n  to first time callers.  The BBS is a subscription system although callers\n  have 2 hours before they must subscribe, and there are several subscription\n  rates available.   People interested in materials can subscribe to the\n  library in addition to a basic subscription rate, and can use their\n  purchased time to download whichever materials they wish.\n\n==========================================================================\n\n5. Ray-tracing/graphics-related mailing lists\n=============================================\n\nImagine\n-------\n  Modeling and animation system for the Amiga:\n  send subscription requests to Imagine-request@email.sp.paramax.com\n  send material to Imagine@email.sp.paramax.com\n  (Dave Wickard has substituted Steve Worley in the maintenance of\n  the mailing list) - PLEASE note that the unisys.com address is\n  NO longer valid!!!\n\nLightwave\n---------\n  (for the Amiga. It's part of Newtek's Video Toaster):\n  send subscription requests to lightwave-request@bobsbox.rent.com\n  send material to lightwave@bobsbox.rent.com\n  (Bob Lindabury)\n\nToaster\n-------\n  send subscription requests to listserv@karazm.math.uh.edu with a *body* of:\n     subscribe toaster-list\n\nReal 3D\n-------\n  Another modeling and animation system for the Amiga:\n  To subscribe, send a mail containing the body\n\n  subscribe real3d-l <Your full name>\n\n  to listserv@gu.uwa.edu.au\n\nRayshade\n--------\n  send subscription requests to rayshade-request@cs.princeton.edu\n  send material to rayshade-users@cs.princeton.edu\n  (Craig Kolb)\n\nAlladin 4D for the Amiga\n----------\n  send subscription requests to subscribe@xamiga.linet.org\n\n  and in the body of the message write\n\n  #Alladin 4D username@domain\n\nRadiance\n--------\n  Greg Ward, the author, sends to registered (via e-mail) users digests of\n  his correspodence with them, notes about fixes, updates, etc.\n  His address is: gjward@lbl.gov\n\nREND386\n-------\n  send subscription requests to rend386-request@sunee.waterloo.edu\n  send material to rend386@sunee.waterloo.edu\n\nPoV ray / DKB raytracers\n------------------------\n  To subscribe, send a mail containing the body\n\n  subscribe dkb-l <Your full name>\n\n  to listserv@trearn.bitnet\n\n  send material to dkb-l@trearn.bitnet\n\nMailing List for Massively Parallel Rendering\n---------------------------------------------\n  send subscription requests to mp-render-request@icase.edu\n  send material to mp-render@icase.edu\n\n==========================================================================\n\n6. 3D graphics editors\n======================\n\na. Public domain, free and shareware systems\n============================================\n\nVISION-3D\n---------\n  Mac-based program written by Paul D. Bourke (pdbourke@ccu1.aukland.ac.nz).\n  The program can be used to generate models directly in the RayShade\n  and Radiance file formats (polygons only).\n  It's shareware and listed on the FTP list.\n\nBRL\n---\n  A solid modeling system for most environments -- including SGI and X11.\n  It has CSG and NURBS, plus support for Non-Manifold Geometry\n  [Whatever it is].\n\n  You can get it *free* via FTP by signing and returning the relevant license,\n  found on ftp.brl.mil. Uses ray-tracing for engineering analyses.\n\n  Contact:\n\n  Ms. Carla Moyer\n  (410)-273-7794 tel.\n  (410)-272-6763 FAX\n  cad-dist@brl.mil E-mail\n\n  Snail mail:\n\n  BRL-CAD Distribution\n  SURVIAC Aberdeen Satellite Office 1003\n  Old Philadelphia Road,\n  Suite 103 Aberdeen\n  MD  21001  USA\n\nIRIT\n----\n  A constructive solid geometry (CSG) modeling program for PC and X11.\n  Includes freeform surface support. Free - see FTP list for where to\n  find it.\n\nSurfModel\n---------\n  A solid modeling program for PC written in Turbo Pascal 6.0 by\n  Ken Van Camp. Available from SIMTEL, pd1:<msdos.srfmodl> directory.\n\nNOODLES\n-------\n   From CMU, namely Fritz Printz and Levent Gursoz (elg@styx.edrc.cmu.edu).\n   It's based on Non Manifold Topology.\n   Ask them for more info, I don't know if they give it away.\n\nXYZ2\n----\n  XYZ2 is an interactive 3-D editor/builder written by Dale P. Stocker to\n  create objects for the SurfaceModel, Automove, and DKB raytracer packages.\n  XYZ2 is free and can be found, for example, in SIMTEL20 as\n  <MSDOS.SURFMODL>XYZ21.ZIP (DOS only??)\n\n3DMOD\n-----\n  It's an MSDOS program. Check at barnacle.erc.clarkson.edu [128.153.28.12],\n  /pub/msdos/graphics/3dmod.* . Undocumented file format :-(\n  3DMOD is (C) 1991 by Micah Silverman, 25 Pierrepoint Ave., Postdam,\n  New York 13676, tel. 315-265-7140\n\nNORTHCAD\n--------\n  Shareware, <MSDOS.CAD>NCAD3D42.ZIP in SIMTEL20. Undocumented file format :-(\n\nVertex\n------\n  (Amiga)\n  Shareware, send $40 US (check or money order) to:\n\n  The Art Machine, 4189 Nickolas\n  Sterling Heights, MI  48310\n  USA\n\n  In addition to the now standard file formats, including Lightwave,\n  Imagine, Sculpt, Turbo Silver, GEO and Wavefront, this release offers\n  3D Professional and RayShade support. (Rayshade is supported only by\n  the primitive \"triangle\", but you can easily include this output in\n  your RayShade scripts)\n\n  The latest demo, version 1.62, is available on Fred Fish #727.\n\n  For more information, contact the author, Alex Deburie, at:\n\n  ad99s461@sycom.mi.org, Phone: (313) 939-2513\n  \n\nICoons\n------\n  (Amiga)\n  It's a spline based object modeller (\"ICoons\" = Interactive \n  COONS path editor) in amiga.physik.unizh.ch (gfx/3d/ICoons1.0.lzh).\n  It's free (under the GNU Licence) and requires FPU.\n\n  The program has a look&feel which is a cross between Journeyman and\n  Imagine, and it generates objects in TTDDD format.\n\n  It is possible to load Journeyman objects into ICoons, so the program\n  can be used to convert JMan objects to Imagine format.\n\n  Author: Helge E. Rasmussen <her@compel.dk>\n  PHONE + 45 36 72 33 00, FAX   + 45 36 72 43 00\n\n[ It's also on Fred Fish disk series n.775 - nfotis ]\n\n\nProtoCAD 3D\n-----------\n Ver 1.1 from Trius (shareware?)\n\n It's at wsmr-simtel20.army.mil and oak.oakland.edu as PCAD3D.ZIP (for PCs)\n\n It has this menu layout:\n\n         FILE       File handling (Load, Save, Import, Xport...)\n         DRAW       Draw 2D objects (Line, Circle, Box...)\n         3D         Draw 3D objects (Mesh, Sphere, Block...)\n         EDIT       Editing features (Copy, Move ...)\n         SURFACE    Modify objects (Revolve, Xtrude, Sweep...)\n         IMAGE      Image zooming features (Update, Window, Half...)\n         OPTION     Global defaults (Grid, Toggles, Axis...)\n         PLOT       Print drawing/picture (Go, Image...)\n         RENDER     Shade objects (Frame, Lighting, Tune...)\n         LAYER      Layer options (Select active layer, set Colors...)\n\n+Sculptura\n+---------\n+  Runs under Windows 3.1, and outputs PoV files. A demo can be found\n+  on wuarchive.wustl.edu in mirrors/win3/demo/demo3d.zip\n+\n+  Author: Michael Gibson <gibsonm@stein.u.washington.edu>\n\n\nb. Commercial systems\n=====================\n\nAlpha_1\n-------\n  A spline-based modeling program written in University of Utah.\n  Features: splines up to trimmed NURBS; support for boolean operations;\n    sweeps, bending, warping, flattening etc.; groups of objects, and\n    transformations; extensible object types.\n  Applications include: NC machining, Animation utilities,\n    Dimensioning, FEM analysis, etc.\n  Rendering subsystem, with support for animations.\n  Support the following platforms: HP 300 and 800's (X11R4, HP-UX 6.5),\n    SGI 4D or PI machines (X11R4 and GL, IRIX 3.3.1), Sun SparcStation\n    (X11R4, SunOS 4.1.1).\n \n  Licensing and distribution is handled by EGS:\n    Glenn McMinn, President\n    Engineering Geometry Systems\n    275 East South Temple, Suite 305\n    Salt Lake City, UT  84111\n    (801) 575-6021\n    mcminn@cs.utah.edu\n\n [ Educational pricing ]\n  The charge is $675 per platform.  You may run the system on as many\n  different workstations of that type as you wish.  For each platform\n  there is also a $250 licensing fee for Portable Standard Lisp (PSL)\n  which is bundled with the system.  You need to obtain an additional\n  license from the University of Utah for PSL from the following address:\n    Professor Robert Kessler\n    Computer Science Department\n    University of Utah\n    Salt Lake City, Utah 84112\n\n  [ EGS can handle the licensing of PSL for U.S. institutions for a\n    300 $USD nominal fee -- nfotis ]\n\nVERTIGO\n-------\n\n  They have an Educational Institution Program. The package is used in\n  the industrial design, architectural, scientific visualization,\n  educational, broadcast, imaging and post production fields.\n\n  They'll [quoting from a letter sent to me -- nfotis ] \"donate fully\n  configured Vertigo 3D Graphics Software worth over $29,000USD per\n  package to qualified educational institutions for licencing on any\n  number of Silicon Graphics Personal IRIS or POWER Series Workstations.\n  If you use an IRIS Indigo station, we will also licence our Vertigo\n  Revolution Software (worth $12,000USD).\n\n  If you are interested in participating in this program please send a\n  letter by mail or fax (604/684-2108) on your institution's letterhead\n  briefly outlining your potential uses for Vertigo together with the\n  following information: 1. UNIX version 2. Model and number of SGI\n  systems 3. Peripheral devices 4. Third Party Software.\n\n  Participants will be asked to contribute $750USD per institution to cover\n  costs of the manual, administration, and shipping.\n\n  We recommend that Vertigo users subscribe to our technical support\n  services. For an annual fee you will receive: technical assistance\n  on our support hotline, bug fixes, software upgrades and manual updates.\n  For educational institution we will waive the $750 administration fee\n  if support is purchased.\n\n  The annual support fee is $2,500 plus the following cost for additional\n  machines:\n\n  Number of machines:\t\t2-20\t\t20+\n  Additional cost per machine:\t$700\t\t$600 \"\n\n[ There's also a 5-day training program - nfotis]\n\nContact:\n  Vertigo Technology INC\n  Suite 1010\n  1030 West Georgia St.\n  VANCOUVER, BC\n  CANADA, V6E 2Y3\n\n  Phone: 604/684-2113\n  Fax:   604/684-2108\n\n[ Does anyone know of such offers from TDI, Alias, Softimage, Wavefront,\n  etc.??? this would be a VERY interesting part!!  -- nfotis ]\n\nPADL-2\n------\n[ Basically, it's a Solid Modeling Kernel in top of which you build your\n  application(s)]\n\n  Available by license from\n    Cornell Programmable Automation\n    Cornell University\n    106 Engineering and Theory Center\n    Ithaca, NY 14853\n\n  License fees are very low for educational institutions and gov't agencies.\n  Internal commercial licenses and re-dissemination licenses are available.\n  For an information packet, write to the above address, or send your\n  address to:   marisa@cpa.tn.cornell.edu (Richard Marisa)\n\nACIS\n----\n  From Spatial Technology. It's a Solid Modelling kernel callable from C.\n  Heard that many universities got free copies from the company.\n  The person to contact regarding ACIS in academic institutions is\n\n    Scott Owens, e-mail: sdo@spatial.com\n\n  And their address is:\n\n  Spatial Technology, Inc.\n  2425 55th St., Bldg. A\n  Boulder, CO 80301-5704\n  Phone: (303) 449-0649, Fax: (303) 449-0926\n\nMOVIE-BYU / CQUEL.BYU\n---------------------\n  Basically [in my understanding], this is a FEM pre- and post-proccessor\n  system. It's fairly old today, but it still serves some people in\n  Mech. Eng. Depts.\n  Now it's superseded from CQUEL.BYU (pronounced \"sequel\"). That's a\n  complete modelling, animation and visualization package. Runs in the usual\n  workstation environments (SUN, DEC, HP, SGI, IBM RS6000, and others)\n  You can get a demo version (30-days trial period) either by sending $20\n  USD in their address or a blank tape. It costs 1,500 for a full run-time\n  licence.\n\n  Contact:\n\n  Engineering Computer Graphics Lab\n  368 Clyde Building, Brigham Young Univ.\n  Provo, UT 84602\n  Phone: 801-378-2812\n  E-mail: cquel@byu.edu\n\n\ntwixt\n-----\n  Soon to add stuff about it... If I get a reply to my FAX\n\nVOXBLAST\n--------\n  It's a volume renderer marketed by:\n  Vaytek Inc. (Fairfield, Iowa phone: 515-472-2227) , running on PCs\n  with 386+FPU at least.  Call Vaytek for more info.\n\nVoxelBox\n--------\n  A 3D Volume renderer for Windows. Features include direct\n  ray-traced volume rendering, color and alpha mapping,\n  gradient lighting, animation, reflections and shadows.\n\n  Runs on a PC(386 or higher) with at least an 8 bit video card(SVGA is fine)\n  under Windows 3.x. It costs $495.\n\n  Contact:\n\n  Jaguar Software Inc.\n  573 Main St., Suite 9B\n  Winchester, MA 01890\n  (617) 729-3659\n  jwp@world.std.com (john w poduska)\n\n==========================================================================\n\n7. Scene description languages\n==============================\n\nNFF\n---\n  Neutral file format , by Eric Haines. Very simple, there are some\n  procedural database generators in the SPD package, and many objects\n  floating in various FTP sites. There's also a previewer written in\n  HP Starbase from E.Haines. Also there's one written in VOGLE, so you can\n  use any of the devices VOGLE can output on.\n  (Check in sites carrying VOGLE, like gondwana.ecr.mu.oz.au)\n\nOFF\n---\n  Object file format, from DEC's Randy Rost (rost@kpc.com).\n[ The object archive server seems to be mothballed. In a future version,\n I'll remove the ref. to it -- nfotis ]\n\n  Available also through their mail server. To obtain help about using this\n  service, send a message with a \"Subject:\" line containing only the word\n  \"help\" and a null message body to: object-archive-server@decwrl.dec.com.\n  [For FTP places to get it, see in the relevant place]. There's an OFF\n  previewer for SGI 4D machines, called off-preview in\n  godzilla.cgl.rmit.oz.au . There are previewers for xview and sunview,\n  also on gondwana.\n\nTDDD\n----\nIt's a library of 3D objects with translators to/from OFF, NFF,\nRayshade, Imagine or vort objects.\nEdited copy of the announcement follows (from Raytracing News, V4,#3):\n\n  New Library of 3D Objects Available via FTP, by Steve Worley\n  (worley@cup.portal.com)\n\n  I have assembled a set of over 150 3D objects in a binary format\n  called TDDD. These objects range from human figures to airplanes,\n  from semi-trucks to lampposts.  These objects are all freely\n  distributable, and most have READMEs that describe them.\n\n  In order to convert these objects to a human-readable format, a file\n  with the specification of TDDD is included in the directory with the\n  objects. There is also a shareware system called TTDDDLIB (officially\n  on hubcap.clemson.edu) that will convert (ala PBM+) to/from various\n  object formats : Imagine TTDDD (extension of TDDD?), OFF, NFF,\n  Rayshade 4.0, or vort. Source included for Amiga/Unix as executables\n  for the Amiga. Also outputs Framemaker MIF files and isometric views\n  in Postscript.\n\nP3D\n---\n  From Pittsburgh Supercomputing Center. The P3D uses lisp with slight\n  extensions to store three-dimensional models. A simple lisp\n  interpreter is included with the P3D release, so there is no need to\n  have access to any vendor's lisp to run this software.\n\n  The mouse-driven user interfaces for Motif, Open Look, and Silicon\n  Graphics GL, and the DrawP3D subroutine library for generating P3D\n  without ever looking at the underlying Lisp.\n\n  The P3D software currently supports nine renderers.  They are:\n  Painter - Painter's Algorithm, Dore, Silicon Graphics Inc. GL language,\n  Generic Phigs, Sun Phigs+, DEC Phigs+, Rayshade, ART ray tracer (from\n  VORT package) and Pixar RenderMan.\n\n  The code is available via anonymous FTP from the machines\n  ftp.psc.edu, directory pub/p3d, and nic.funet.fi, directory\n  pub/graphics/programs/p3d.\n\nRenderMan\n---------\n  Pixar's RenderMan is not free - call Pixar for details.\n\n==========================================================================\n\n8. Solids description formats\n=============================\n\na. EEC's ESPRIT project 322 CAD*I (CAD Interfaces) has developed a\n  neutral file format for transfer of CAD data (curves, surfaces, and\n  solid models between CAD systems and from CAD to CAA (Computer Aided\n  Analysis) an CAM (Computer Aided Manufacturing)\n\nb. IGES [v. 5.1 now] tries to define a standard to tranfer solid\n  models - Brep and CSG. The current standard number is ANSI Y14.26M-1987\n  For documentation, you might want to contact Nancy Flower at\n  NCGA Technical Services and Standards, 1-800-225-6242 ext. 325\n  and the cost is $100.\n  This standard is not available in electronic format.\n\nc. PDES/STEP : This slowly emerging standard tries to encompass not only\n  the geometrical information, but also for things like FEM, etc.\n  The main bodies besides this standard are NIST and DARPA. You can get\n  more information about PDES by sending mail to nptserver@cme.nist.gov\n  and putting the line\n\tsend index\n  in the body (NOT the Subject:) area of the message.\n\n  The people at Rutherford Appleton Lab.  are also working\n  on STEP tools: they have an EXPRESS compiler and an Exchange file parser,\n  both available in source form (and for free) for research purposes.\n  Soon they will also have an EXPRESS-based database system.\n\n  For the tools contact Mike Mead, Phone: +44 (0235) 44 6710 (FAX: x 5893),\n  e-mail: mm@inf.rl.ac.uk or {...!}mcsun!uknet!rlinf!mm or\n          mm%inf.rl.ac.uk@NSFnet-relay.ac.uk\n\n==========================================================================\n\nEnd of Part 1 of the Resource Listing\n-- \nNick (Nikolaos) Fotis         National Technical Univ. of Athens, Greece\nHOME: 16 Esperidon St.,       InterNet : nfotis@theseas.ntua.gr\n      Halandri, GR - 152 32   UUCP:    mcsun!ariadne!theseas!nfotis\n      Athens, GREECE          FAX: (+30 1) 77 84 578\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10327, "properties": {"category": "alt.atheism", "text": "Subject: Re: Americans and Evolution\nFrom: rfox@charlie.usd.edu (Rich Fox, Univ of South Dakota)\nReply-To: rfox@charlie.usd.edu\nOrganization: The University of South Dakota Computer Science Dept.\nNntp-Posting-Host: charlie\nLines: 26\n\nIn article <1pik3i$1l4@fido.asd.sgi.com>, livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>In article <C4u51L.8Bv@darkside.osrhe.uoknor.edu>, bil@okcforum.osrhe.edu (Bill Conner) writes:\n>|>\n>|> \n>|> Why do you spend so much time posting here if your atheism is so\n>|> incidental, if the question of God is trivial? Fess up, it matters to\n>|> you a great deal.\n>\n>Ask yourself two questions.\n>\n>\t1.   How important is Mithras in your life today?\n>\n>\t2.   How important would Mithras become if there was a\n>\t     well funded group of fanatics trying to get the\n>\t     schools system to teach your children that Mithras\n>\t     was the one true God?\n>\n>jon.\n\nRight on, Jon!  Who cares who or whose, as long as it works for the individual.\nBut don't try to impose those beliefs on us or our children.  I would add the\nwell-funded group tries also to purge science, to deny children access to great\nwonders and skills.  And how about the kids born to creationists?  What a\nburden with which to begin adult life.  It must be a cruel awakening for those\nwho finally see the light, provided it is possible to escape from the depths of\nthis type of ignorance.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10328, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Command Loss Timer (Re: Galileo Update - 04/22/93)\nOrganization: Express Access Online Communications USA\nLines: 20\nNNTP-Posting-Host: access.digex.net\nKeywords: Galileo, JPL\n\n\n\nINteresting question about Galileo.\n\nGalileo's HGA  is stuck.   \n\nThe HGA was left closed,  because galileo  had a venus flyby.\n\nIf the HGA were pointed att he sun,  near venus,  it would\ncook the foci elements.\n\nquestion:  WHy couldn't Galileo's  course manuevers have been\ndesigned such that the HGA  did not ever do a sun point.?\n\nAfter all,  it would normally be aimed at earth anyway?\n\nor would it be that an emergency situation i.e. spacecraft safing\nand seek might have caused an HGA sun point?\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10329, "properties": {"category": "sci.crypt", "text": "From: Marc VanHeyningen <mvanheyn@cs.indiana.edu>\nSubject: How does it really work? (was Re: text of White House announcement and Q&As on clipper chip encryption)\nOrganization: Computer Science Dept, Indiana University\nDistribution: na\nLines: 57\n\nThis announcement is somewhat disconcerting; it doesn't do anything\nevil in and of itself, but bodes badly for the future of open\nalgorithms and standards in information security.  I won't start\npanicking until/unless DES or RSA or stuff like that is prohibited, but\nI'm a little anxious.  (No doubt it won't be long before someone posts\nexplaining how this just a small part of some far-ranging and\nlong-lived NSA-PKP-IRS-FBI-CIA-HandgunControlInc-Clinton conspiracy to\nsubvert freedom, democracy, and mathematics.)  My feeling is that the\nadministration probably isn't that worried about things like DES and\nRSA and PGP and RIPEM, since they'll never be used by a group much\nwider than us computer geeks.\n\nThe fact that this just came out now suggests one of two things:\n\n1.  The NSA has been working on this for a long time, and it only just\n    now happened to be ``ready'' to release to the world at this time.\n\n2.  The NSA has been working on this for a long time, but wasn't able\n    to get the Bush administration to go along with this plan.  (I\n    find it unlikely that this would have been because of a sympathy\n    for the unescrowed use of cryptography; more likely the\n    administration felt that even escrowed, secret-algorithm and, for\n    all we know, trivially breakable cryptography should not be made\n    widely available.)\n\nThus said clipper@csrc.ncsl.nist.gov (Clipper Chip Announcement):\n>This new technology will help companies protect proprietary\n>information, protect the privacy of personal phone conversations\n>and prevent unauthorized release of data transmitted\n>electronically.  At the same time this technology preserves the\n>ability of federal, state and local law enforcement agencies to\n>intercept lawfully the phone conversations of criminals. \n\nThe majority of the discussion involving this \"Clipper Chip\" seems to\npertain to the encryption of telephone conversations.  Does anyone\nknow if that means this chip is designed to work primarily with analog\nsignals?  The language sort of suggests this, but it's hard to say.\n\nThe main thing I just don't get is whether this chip implements\nsymmetric or asymmetric cryptographic techniques.  Anybody know?\n\nI'm guessing symmetric, but they don't get very clear about it.  If it\nis symmetric, how is it useful for anything other than link-level\nencryption with an identical chip at each end?  How can you negotiate\na per-session key using symmetric cryptography without using a trusted\nthird party who knows your key?  (Or does it even use a per-session\nkey?)\n\nIf it's asymmetric, what about PKP's patents, which they claim cover\nall methods of doing asymmetric cryptography?  Are they getting\nroyalties, or is hiding infringement the real reason for keeping the\nalgorithm secret? :-)\n--\nMarc VanHeyningen   mvanheyn@cs.indiana.edu   MIME & RIPEM accepted\nKirk:  I won't hurt you.\nAlien: You hit me!\nKirk:  Well, I won't hit you again.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10330, "properties": {"category": "rec.motorcycles", "text": "From: charlie@elektro.cmhnet.org (Charlie Smith)\nSubject: Re: Bikes And Contacts\nOrganization: Why do you suspect that?\nLines: 20\n\nIn article <1993Apr12.042749.2557@news.columbia.edu> scs8@cunixb.cc.columbia.edu (Sebastian C Sears) writes:\n>In article <1993Apr12.022233.17927@linus.mitre.org> cookson@mbunix.mitre.org (Cookson) writes:\n>>In article <C5CKp9.C5D@news.cso.uiuc.edu> cs225a82@dcl-nxt19.cso.uiuc.edu (cs225 student) writes:\n>>>\n>>>I have a quick question.  I recently got a bike and drive it often, but my  \n>>>one problem is the wind messing with my contacts.  I have gas permeable  \n\n>>How about a full face helmet with the face sheild down.  Works for me.\n>\n>\tActually, this doesn't always work for me either. I have wind that\n>\tblows around inside my RF200 some, and it'll dry my eyes out / get dust\n>\tin them eventually unless I'm also wearing sunglasses inside my\n>\thelmet.\n\nI too, usually wear sunglasses inside my full face helmet to keep dirt & wind\nout of my contacts.  Mumble, mumble, mumble ...\n\n\nCharlie Smith,  DoD #0709,  doh #0000000004,  1KSPT=22.85\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10331, "properties": {"category": "sci.electronics", "text": "From: gerald.belton@ozonehole.com (Gerald Belton) \nSubject: Need to find out numb\nDistribution: world\nOrganization: Ozone Online Operations, Inc. - New Orleans, LA\nReply-To: gerald.belton@ozonehole.com (Gerald Belton) \nLines: 24\n\nAL>>        Question:   Is there a certain device out there that I can\nAL>>                    use to find out the number to the line?\nAL>>        Thanks for any response.\nAL>>                                                    Al\n\nAL>There is a number you can call which will return a synthesized\nAL>voice telling you the number of the line.  Unfortunately, for the\nAL>life of me I can't remember what it is. The telephone technicians\nAL>use it all the time.  We used to play around with this in our\nAL>dorm rooms since there were multiple phone lines running between\nAL>rooms.\n\nIt probably wouldn't help for you to post the number, since it appears\nto be different in each area.  For what it's worth, in the New Orleans\narea the number is 998-877-6655 (easy to remember, what?)\n\n\n * SLMR 2.1 * Ask me anything: if I don't know, I'll make up something.\n                                          \n----\nThe Ozone Hole BBS * A Private Bulletin Board Service * (504)891-3142\n3 Full Service Nodes * USRobotics 16.8K bps * 10 Gigs * 100,000 Files\nSKYDIVE New Orleans! * RIME Network Mail HUB * 500+ Usenet Newsgroups\nPlease route all questions or inquiries to:  postmaster@ozonehole.com\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10332, "properties": {"category": "rec.sport.hockey", "text": "From: farenebt@logic.camp.clarkson.edu (Droopy)\nSubject: AHL final standings\nOrganization: Clarkson University\nLines: 35\nNntp-Posting-Host: logic.clarkson.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nFINAL 1992-93 AMERICAN HOCKEY LEAGUE STANDINGS\n\nNORTHERN DIVISION\tW\tL\tT\tPTS\tGF\tGA\tLYF*\nProvidence Bruins\t46\t32\t2\t94\t384\t348\t56\nAdirondack Red Wings\t36\t35\t9\t81\t331\t308\t84\nCapital District Isles\t34\t34\t12\t80\t280\t285\t75\nSpringfield Indians\t25\t41\t14\t64\t282\t336\t94\nNew Haven Senators\t22\t47\t11\t55\t262\t343\t--\n\nSOUTHERN DIVISION\tW\tL\tT\tPTS\tGF\tGA\tLYF\nBinghamton Rangers\t57\t13\t10\t124#\t392\t246\t91\nRochester Americans\t40\t33\t7\t87\t348\t332\t86\nUtica Devils\t\t33\t36\t11\t77\t325\t354\t74\nBaltimore Skipjacks\t28\t40\t12\t68\t318\t353\t66\nHershey Bears\t\t27\t41\t12\t66\t316\t339\t83\nHamilton Canucks\t29\t45\t6\t64\t284\t327\t--\n\nATLANTIC DIVISION\tW\tL\tT\tPTS\tGF\tGA\tLYF\nSt John's Maple Leafs\t41\t26\t13\t95\t351\t308\t90\nFredericton Canadiens\t38\t31\t11\t87\t314\t278\t96\nCape Breton Oilers\t36\t32\t12\t84\t356\t336\t82\nMoncton Hawks\t\t31\t33\t16\t78\t292\t306\t74\nHalifax Citadels\t33\t37\t10\t76\t312\t348\t67\n\n*- Last year's point total\n#- League record total\t\t\t\n\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n    + Bri Farenell\t\t\tfarenebt@craft.camp.clarkson.edu   +\n    + AHL, ECAC and Boston Bruins contact for rec.sport.hockey\t\t   +\n    + Adirondack Red Wings, Calder Cup Champs: '81  '86  '89  '92\t   +\n    + Clarkson Hockey, ECAC Tournament Champs: '66  '91  '93\t\t   +\n    + Glens Falls High Hockey, NY Division II State Champs: '90  '91       +\n    + AHL fans: join the AHL mailing list: ahl-news-request@andrew.cmu.edu +\n    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10333, "properties": {"category": "soc.religion.christian", "text": "From: mhsu@lonestar.utsa.edu (Melinda . Hsu   )\nSubject: Re: The arrogance of Christians\nOrganization: University of Texas at San Antonio\nLines: 74\n\nI'd like to share my thoughts on this topic of \"arrogance of\nChristians\" and look forward to any responses.  In my\nencounters with Christians, I find myself dismayed by their\nbelief that their faith is total truth.  According to them,\ntheir beliefs come from the Bible and the bible is the word of\nGod and God is truth - thus they know the truth.  This stance\nmakes it difficult to discuss other faiths with them and my own\nhesitations about Christianity because they see no other way.\nTheir way is the 'truth.'\n\nBut I see their faith arising from a willful choice to believe\na particular way.  That choice is part faith and part reason,\nbut it seems to me a choice.\n\nMy discussions with some Christians remind me of schoolyard\ndiscussions when I was in grade school:\n\nA kid would say, \"All policemen are jerks!\"  I'd ask, \"How do\nyou know?\"  \"Because my daddy told me so!\"  \"How do you know\nyou're daddy is right?\"  \"He says he's always right!\"\n\nWell the argument usually stops right there.  In the end,\naren't we all just kids, groping for the truth?  If so, do we have\nthe authority to declare all other beliefs besides our own as\nfalse?\n\n-------------\n\nThis is only my third time browsing through this newsgroup.  I\napologize if I'm covering tired old ground.  Some of the\ndiscussions on this topic have piqued my interest and I welcome\nany comments.\n\n| Louis J. Kim                      ---  _ O                PH:512-522-5556 |\n| Southwest Research Institute    ---  ,/  |\\/'            FAX:512-522-3042 |\n| Post Office Drawer 28510      ----      |__                 lkim@swri.edu |\n| San Antonio, TX 78228-0510   ----    __/   \\    76450.2231@compuserve.com |\n-- \n\n[I'm sort of mystified about how a Christian might respond to this.  I\ncan understand criticisms of Christianity that say there's not enough\nevidence to believe it, or that there's just as good evidence for\nother religions.  I don't agree, but clearly there are plenty of\nintelligent people who don't find the evidence convincing.  But that\ndoesn't seem to be your point.  Rather, you seem upset that people who\nbelieve Christianity is true also believe that things which contradict\nit are false.\n\nThis suggests a model of spiritual things that's rather different than\nthe Christian one.  It sounds more like an existentialist view, where\npeople choose what value to follow, but there's no actual independent\nspiritual reality, and so no way to say that a specific choice is in\nsome unique sense right.  This sort of model -- with modifications of\none sort or another -- may be appropriate for some religions.  But\nChristianity is in its essense a \"historical\" religion.  That is, it's\nbased on the concept that there are actual spiritual entities out\nthere, that one of them has intervened in history in specific ways,\nand that we see evidence of that in history.  In the \"mundane\" world,\nwe are not free to choose how things work.  When we drop something, it\nfalls (aside from well-defined situations where it doesn't).  The\nChristian concept is that spiritual matters, there is also an actual\nexternal reality.  I hope we're all honest enough not to claim that we\nhave perfect understanding.  But while we may not think we know\neverything, we are confident that we know some things.  And that\nimplies that we think things that contradict them are false.  I don't\nsee how else we could proceed.\n\nThis needn't result in arrogance.  I'm certainly interested in talking\nwith people of other religions.  They may have things to teach me, and\neven if they don't, I respect them as fellow human beings.  But it's\ngot to be possible to respect people and also think that on some\nmatters they are wrong.  Maybe even disasterously wrong.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10334, "properties": {"category": "misc.forsale", "text": "From: ongh@iastate.edu (Calvin N Hobbes)\nSubject: Wanted: One way flight from Des Moines to Chicago\nSummary: Ticket needed on 28th of May\nOrganization: Iowa State University, Ames, IA\nLines: 5\n\nHi I need a one way flight ticket from Des Moines to Chicago\non the 28th of May 1993. \nplease send your replies to jasonlim@iastate.edu or to this account\nas soon as possible\nthank you\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10335, "properties": {"category": "talk.religion.misc", "text": "From: emarsh@hernes-sun.Eng.Sun.COM (Eric Marsh)\nSubject: Re: After 2000 years, can we say that Christian Morality is\nOrganization: Sun\nLines: 27\nNNTP-Posting-Host: hernes-sun\n\nIn article <C5HqxJ.JDG@ux1.cso.uiuc.edu> lis450bw@ux1.cso.uiuc.edu (lis450 Student) writes:\n>Hmmmm.  Define objective morality.  Well, depends upon who you talk to.\n>Some say it means you can't have your hair over your ears, and others say\n>it means Stryper is acceptable.  _I_ would say that general principles\n>of objective morality would be listed in one or two places.\n\n>Ten Commandments\n\n>Sayings of Jesus\n\n>the first depends on whether you trust the Bible, \n\n>the second depends on both whether you think Jesus is God, and whether\n>  you think we have accurate copies of the NT.\n\nGong!\n\nTake a moment and look at what you just wrote. First you defined\nan \"objective\" morality and then you qualified this \"objective\" morality\nwith subjective justifications. Do you see the error in this?\n\nSorry, you have just disqualified yourself, but please play again.\n\n>MAC\n>\n\neric\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10336, "properties": {"category": "sci.med", "text": "From: drand@spinner.osf.org (Douglas S. Rand)\nSubject: Re: chronic sinus and antibiotics\nIn-Reply-To: DEHP@calvin.edu's message of Fri, 16 Apr 1993 18:12:14 GMT\nOrganization: Open Software Foundation\n\t<1qk708INNa12@mojo.eng.umd.edu> <DEHP.117@calvin.edu>\nDistribution: na\nLines: 29\n\nIn article <DEHP.117@calvin.edu> DEHP@calvin.edu (Phil de Haan) writes:\n\n   In article <1qk708INNa12@mojo.eng.umd.edu> georgec@eng.umd.edu (George B. Clark) writes:\n   >You can also swab the inside of your nose with Bacitracin using a\n   >Q tip. Bacitracin is an antibiotic that can be bought OTC as an\n   >ointment in a tube. The doctor I listen to on the radio says to apply\n   >it for 30 days, while you are taking other antibiotics by mouth.\n\n   I have a new doctor who gave me a prescription today for something called \n   Septra DS.  He said it may cause GI problems and I have a sensitive stomach \n   to begin with.  Anybody ever taken this antibiotic.  Any good?  Suggestions \n   for avoiding an upset stomach?  Other tips?\n\nI've taken Septra.  My daughter has taken it many times for ear\ninfections.  It works sometimes.  It is a sulfa drug.  About the only\nproblem I found was that I'm sensitive and developed a rash after nine\ndays of a ten day course.  No more Septra for me.  My doctor was\nremiss in not telling me to watch out for a rash.  I was quite in the\ndark and didn't realize that it could be a drug reaction.  No harm\ndone though.\n\nDoug\n\n\n--\nDouglas S. Rand <drand@osf.org>\t\tOSF/Motif Dev.\nSnail:         11 Cambridge Center,  Cambridge,  MA  02142\nDisclaimer:    I don't know if OSF agrees with me... let's vote on it.\nAmateur Radio: KC1KJ\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10337, "properties": {"category": "sci.electronics", "text": "From: dp@cec1.wustl.edu (David Prutchi)\nSubject: OEM weight scale\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nLines: 13\n\nDoes someone sell OEM scale units with either analog or digital output?\nI need something like the scales used in supermarket cash registers, \nwith a dynamic range of a few pounds and reasonable accuracy.\n\nAny sources ?        -David\n\n+------------------------------------------------------------+\n|  David Prutchi                 HC1DT                       |\n|  Washington University         <prutchi@mesun4.wustl.edu>  |\n|  Campus Box 1185               <dp@cec1.wustl.edu>         |\n|  One Brookings Drive           <prutchi@eng.tau.ac.il>     |\n|  St. Louis, MO  63130-4899                                 |\n+------------------------------------------------------------+\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10338, "properties": {"category": "soc.religion.christian", "text": "From: cs89mcd@brunel.ac.uk (Michael C Davis)\nSubject: Love Europe\nOrganization: Brunel University, Uxbridge, UK\nLines: 4\n\nAre any readers of s.r.c. going to the Love Europe congress in Germany this\nJuly?\n-- \nMichael Davis (cs89mcd@brunel.ac.uk)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10339, "properties": {"category": "talk.politics.misc", "text": "From: matt@galaxy.nsc.com (Matt Freivald x8043)\nSubject: Re: NLNS: Fascism with a Friendly Face\nNntp-Posting-Host: pogo.nsc.com\nOrganization: Thought Police Watchdog Agency, U.S.A.\nLines: 370\n\n\nWho wants to look through the bars at some reactionary Liberal conspiracy-\ntheory idiots and see how they rant and rave at the erosion of their populist \nsupport?  This is very typical of the elitist Liberal attitude that The People \nare incapable of thinking for themselves.  This elitist attitude will be the\neventual undoing of the arrogant liberal tide sweeping America, as The People\nbegin to realize more and more that they are being treated like errant children\nand robbed of their freedoms by a bunch of Utopian arrogent socialist jerks.\n\n\nIn article 167077 in talk.politics.misc, New Liberation News Service \n<nlns@igc.apc.org> writes:\n\n>Subject: NLNS: Fascism with a Friendly Face\n>Lines: 164\n\n>From: New Liberation News Service <nlns>\n>Subject: NLNS: Fascism with a Friendly Face\n\n>/* Written  8:33 pm  Apr 14, 1993 by nlns@igc.apc.org in igc:nlns.news */\n>/* ---------- \"NLNS Packet 3.11 *** 4-14-93\" ---------- */\n\n>Fascism with a Friendly Face: Does Rush Limbaugh Remind You of \n>Anyone?\n>Daevid Bornhuetter-Machen, The Madison Edge\n\n>\"The main difference between Adolf Hitler and Rush Limbaugh is that \n>Hitler was original and showed initiative.\" \n>--Mort Sahl on The Tom Snyder Radio Show, ABC Radio Network, \n>October 27, 1992.\n\nAlthough I find myself often disagreeing with the populist rationale\nof Mr. Limbaugh, I find him entertaining and I often agree with his \nconclusions.  The fact that he sends liberal reactionaries like these\nidiots through the roof makes him all the more entertaining.\n\n\n\n>(NLNS)--Believe it or not, I was planning this comparative review of \n>Mein Kampf and Limbaugh's transcribed rant, The Way Things Ought to \n>Be before Sahl issued his comparative review. As usual, Sahl's was \n>independent and sharp as a scalpel.\n>        My effort can only dream of comparing favorably to Mort's. At \n>least it has a fairly popular orginating premise; everyone I'd mention the \n>idea to thought it was either divinely inspired or at least past due for \n>delivery.\n>        Those reactions are based on parallels that should be obvious to the \n>most peripheral observer of the Acts of those False Prophets. Both are \n>noted for their galvanizing oratorical skills, which they both used with \n>passion to generate a political cult of massive numerical proportions (in \n>fact, Limbaugh claims to have an audience of just over 12 million, almost \n>identical to the number of votes cast for Hitler in the April 1932 German \n>election). Both used a myopic social perspective to build the cult, and \n>enthusiastically amputated facts from the record to fabricate their \n>ideological quilt.\n\nActually, I find Limbaugh's oratory less than sizzling and his debating\nskills sometimes lacking, even though his conclusions are often correct.\n\nI would suggest that a bankrupt leftist ideology that hopes to use concentrated \npolitical power and a loaded gun to force everyone to do the \"right\" things\n(where \"right\" is defined by the elitist academics who lead the movement)\nis showing an acute case of \"myopic social perspective\", not to mention\narrogance and utter stupidity.\n\nLimbaugh is certainly far from perfect, but his opponents in the established\nbody politic and the media are the ones arguing for Federal control of\nvirtually all aspects of the lives of the Citizenry, and for the elimination\nof local control over Affairs Public.  \n\nPerhaps Limbaugh has a following because The People are tired of being treated \nlike errant children by a self-important group of arrogant controlling myopic \npeople who have no understanding of how life operates outside of the \"oughta-be's\"\ninside their own hopelessly closed minds.\n\n\n\n>        The last point is glaringly documented by passages in the opening \n>pages of both books. Hitler's example is when, on page 5, he claims the \n>German nationalist terrorist Leo Schlageter (he bombed part of a railway \n>line between Dusseldorf and Duisburg, being caught in the act, in 1923) \n>was \"betrayed to France by a representative of his government\" when \n>there has never been any factual foundation for such a statement.\n>        In fact, the governments of both the Reich and Prussia, as well as \n>the Vatican, actively intervened to save him from execution, and almost \n>succeeded. \n\nOK, let us take your word for that and work with it.  A nice specific\nincident.\n\n\n\n>Limbaugh follows suit by making the hysterically sarcastic \n>claim in his introduction that \"in a school or during a commencement \n>ceremony or many other public places... God is unconstitutional.\" Of \n>course, it's not God but the official imposition of particular concepts of \n>God against an individual's will that's unconstitutional. But Limbaugh is \n>too gleeful in his talent for distortion to want you to know that.\n\nHmmm, \"Congress shall pass no law regarding an establishment of religion,\nnor prohibiting the free exercise thereof.\"  Liberal translation: \"the\nfederal government (as long as it is run by Liberals) may force local\nschool districts to include certain iconic content in Christmas displays,\nwhile prohibiting others.\"\n\nI think Limbaugh has you on this one.  It seems to me that he is arguing\nfor LESS imposition of the federal government into religion.\n\nNice job on the specificity of that one, too.\n\n\n\n[Analysis of historical/modern communication media deleted] \n\n>        But, as Mort Sahl also observed on the radio the other night, some \n>cloutmeister of the radical right wants Limbaugh to be a focal point of \n>their propoganda. (And remember, Sahl is an Al Haig conservative these \n>days.)\n>        Mort might not know exactly who Rush's equivalent of Rodolf \n>Hess is (the book itself suggests Ed McLaughlin, the former president of \n>ABC radio and now Limbaugh's partner in EFM Media, the radio \n>program's production company). But Mort himself is a veteran of the talk \n>show, having hosted them in New York, Washington and Los Angeles. He \n>knows what evil lurks in the hearts of major market media men. He knows \n>that Limbaugh could not have collected his audience had not the \n>opportunity been placed on a silver platter and handed to him. Limbaugh \n>earns his money just as honestly as Al Capone did; it's almost worthy of a \n>RICO indictment.\n\nAh yes, it is a conspiracy of profound proportions.  Methinks that you\nmay be a bit resentful of Mr. Limbaugh's success because you attribute it\nprimarily to luck (how, after all, could anyone with profound differences\nof opinion from yourself have become successful without the operation of\nconspiracy or blind luck!)  Do you feel this same level of knee-jerk\nresentment against lottery winners, or do you congratulate them on their\ngood fortune?\n\n\n\n>        On questions of social issues, there is an overabundance of \n>material in the Limbaugh book that seems to echo Hitler's venom. For \n>example:\n\nThis should be great fun, since it is the Liberal movement in America\nthat is pushing the hardest for centralized fascist control of The People\nand business (government/business 'partnership' indeed), and Mr. Limbaugh \nis the populist nemesis of that movement.\n\nI have read Mr. Limbaugh's book, and although it was not the most literary\npiece I have read in recent memory it certainly did not contain \"venom\"\nat all, let alone \"venom\" comparable to an individual who callously murdered\nmillions out of racism.\n\n\n\n>On Their Own Qualifications to Control Society\n>        Hitler: \"Out of the host of sometimes millions of people, who \n>individually more or less clearly and distinctly guess the truth, partly \n>perhaps understand it, one man [author's emphasis] must step forward in \n>order to form, with apodeictic force, out of the wavering world of \n>imagination of the great masses, granite principles, and to take up the fight \n>for their sole correctness, until out of the playing waves of a free world of \n>thought a brazen rock of uniform combination of form and will arises\" \n>(page 577).\n\nA very serious tone in that oratory.\n\n\n\n>        Limbaugh: \"Who needs the media when they've got me? ... The \n>show is devoted exclusively to what I think ... [the phrase \"with half my \n>brain tied behind my back to make it even\"] denotes the egress of mental \n>aptitude I require to engage and demolish liberals and others who disagree \n>with me ... It might take four or five years, but I'm convinced The Media \n>will slowly and reluctantly come around to my way of thinking, kicking \n>and screaming all the way.\" (pages 266, 21, 299 and 273, respectively.)\n\nYou neglect to mention that Mr. Limbaugh (have you ever listened to his show, \nBTW?) continuously encourages his audience to think for themselves rather\nthan blindly following any media icon, himself included.  You yourself mention \nthat he makes no bones about his show being strictly about his own opinions.\nHe also adopts a rather satirical approach, and presumes his audience to be\nintelligent enough to distinguish satire from seriousness (and he says as much).\nThis is in contrast to the average mass-media show, in which the audience is\ntreated as society's intellectual lowest common denominator.\n\nI am sure that Adolf Hitler was a master of satire; I am sure he was just\nkidding when he said that the Jews were the cause of Germany's problems and\nneeded to be exterminated.\n\n\n\n>On Religion as the Basis of a Nation\n>        Hitler: \"In this world human culture and civilization are \n>inseperably bound up with the existence of the Aryan. His dying-off or his \n>decline would again lower upon this earth the dark veils of a time without \n>culture ... He who dares to lay hand upon the highest image of the Lord \n>sins against the benevolent Creator of this miracle and helps in the \n>expulsion from Paradise.\" (Page 581.)\n\nThis is not religion, it is clearly a perverse worship of race.  Since\nChrist was a Jew, it seems quite unlikely that Hitler's characterization of\nthe Aryan as \"the highest image of the Lord\" fits with Christian doctrine.\n\n\n\n>        Limbaugh: \"America was founded as a Judeo-Christian country ... \n>But our intellectual and political elites are often either hostile or \n>ambivalent toward religion ... People for whom belief in God is at best a \n>charming superstition have managed to ban prayer from the public schools \n>for the last thirty years. Is it only a coincidence that the quality of \n>American education has declined ever since?\" (pages 274-5.)\n\nPrivate religious schools have a vastly better record of success than\npublicly funded schools.  American history is indeed primarily Judeo-\nChristian.  I suppose that Mr. Limbaugh pointing out facts is equivalent\nto Adolf Hitler worshiping the Aryan race.  I think you might be reaching\njust a wee bit here.\n\n\n\n>On Popular Culture as a Reason for Social Collapse\n>        Hitler: \"The fight against the poisoning of the soul has to set in ... \n>One has only to look at the menus of our movie houses, vaudevilles and \n>theatres; and one can hardly deny that this is not the right kind of food ... \n>Theatre, art, literature, movies, the press, billposters and window displays \n>must be cleaned of the symptoms of a rotting world and put into the \n>service of a moral idea of State and culture.\" (pages 346 and 348.)\n\nDefinite suggestion that the government should control the entertainment\nindustry here.\n\n\n>        Limbaugh: \"Today, Hollywood is in trouble. The reason [is] that \n>Hollywood has forgotten who its audience is ... They make fun of people \n>who believe in God. They ridicule the traditional family, heterosexuality \n>and monagamy. They disparage American heroes.\" (page 254.)\n\nJust a guess here, but I don't think that Mr. Limbaugh would advocate\ngovernment control of Hollywood.  You should perhaps call his radio show\nto confirm this.  I believe this is more a criticism of Hollywood and the\ndepraved moral values it espouses, not an advocation of government control \nof Hollywood.\n\n90's Liberals, on the other hand, want to have complete government control \nof our school systems, so that the government can teach The People at an\nearly age the \"right\" way to view religion and morality.  I believe Mr. \nLimbaugh is against this, as his satirical use of the \"young heads full\nof mush\" hyperbole indicates.\n\n\n\n>On the News Meida\n>        Hitler: \"The activity of the so-called liberal press was the work of \n>gravediggers for the German people and the German Reich. One can pass \n>by in silence the Marxist papers of lies ... it's task is only to break the \n>people's folkish and national spine, in order to make it ripe for the yoke of \n>slavery of international capital and its masters, the Jews.\" (Page 331.)\n\nPretty strong conspiracy theory insinuated here, with an implicit plea for\ngovernment power to be used to break up the conspiracy.\n\n\n\n>        Limbaugh: \"Elements of The Media have jumped on the \n>bandwagon of leftist causes. The cynical journalist of the past has been \n>replaced in many cases by an enthusiastic cheerleader for causes ... During \n>the Gulf war, CNN correspondent Bernard Shaw [said] CNN is a global \n>network. We can't take sides. Cant take sides? --- --- ---! ... If they don't \n>realize that their freedom lies in the United States of America and that \n>therefore they should defend this nation, they are hopelessly misguided \n>and, may I suggest, flirting with megalomania.\" (pages 270 and 268.)\n\nIndication here that \"Elements of the Media\" (since career is a self-selected\ncategorization, perhaps an inferred 'larger percentage than represented in\nthe populace at large') has a leftist bias.  Doesn't sound too unreasonable.\nNo insinuation that CNN should not report in an objective fashion, only\nthat for reporters to say that they do not have any personal bias in the\nsituation is disingenuous to megalomaniacal.\n\nYou may disagree, and it may well be exagerrated, but it is not an unreasonable \nopinion; and Mr. Limbaugh goes well out of his way to make sure that his \naudience knows that these are his opinions, unlike most other reporting that \npurports to achieve perfect objectivity but in actuality will in some degree \nor other, in a statistical sense, reflect the biases of the reporters.  Who \nis being disingenuous here, Mr. Shaw or Mr. Limbaugh?\n\nAgain, you should ask Mr. Limbaugh himself, but I expect that he would\noppose government control of the media.\n\n\n\n>*     *     *\n        \n>To continue these comparative excerpts is certainly possible, but \n>ultimately too depressing to take in one reading.\n\nIt is indeed depressing to see such myopia and tiresome Liberal arrogance.\nLiberals love to play games with paradigms as a way of discrediting people\nwho disagree with them.  Why don't you challenge conservative ideology\non an intellectual level rather than engaging in ludicrous comparisons?\nPerhaps the underpinnings of your ideology are intellectual only in that\nthey exist in your mind, not the real world.\n\n\n\n>        After putting these books down, there is one undeniable fact that \n>haunts me. In the 1920s, Adolf Hitler fed depressed and frightened \n>Germans the opiate of hatred of those around them; in turn, it allowed \n>Germans to hand their collective national power to the Nazis. In the 1990s, \n>Rush Limbaugh is doing the very same thing: distributing hatred to \n>depressed and frightened Americans; in turn, it is helping the American \n>radical right to maintain its power base as the 12-year nightmare of the \n>Reagan-Bush era comes to an end, hoping to rebuild it into their hopes for \n>The Fascist States of America.\n\nPerhaps there are a few among the intellectually challenged who percieve\nRush Limbaugh as a hate-monger, but in my experience he has been spreading\nlaughter at the ludicrous self-importance of the Left, not hatred.\n\nAs to Mr. Bush, you may be correct about his fascist economic leanings.\nMr. Reagan, on the other hand, did his best to reverse the fascist trend\nof government involvement in business.  Mr. Clinton is increasing fascism\nin America through \"business/government partnership\" and increased levels\nof taxation.  Perhaps you should not have skipped your vocabulary classes\nin grade school.\n\n\n\n>        And if Limbaugh is not as repellant a Hitler, it is only because the \n>radical right utilizes Limbaugh as its own gateway opiate. One can only \n>wonder what the ultimate drug is they plan to hook America on.\n\nHmmm.  Seems to me that Limbaugh is not in any way comparable to Hitler\nbecause he has not murdered six million Jews and many, many others out of\nracism.  I come from a mixed-race family, so I am quite well attuned to\nracism; I don't hear any coming from Rush Limbaugh.  The only place I hear \nracism coming from these days and being taken seriously is from the Liberal \nLeft.\n\nThe Liberal Left is the movement I see trying to get America hooked\non the opiates of Socialized Medicine, Socialized Transportation, Socialized\nEducation, etc.  The Left already has America hopelessly addicted to \nthat Liberal drug, the Social Security Chain Letter.  It is quite clear\nto me that while the Hitler analogy does not really apply to either Rush \nLimbaugh or William Jefferson Clinton, if one of the two is closer than \nthe other it is clearly the Fascist Clinton.\n\n\n>The Madison Edge can be reached at PO Box 845, Madison, WI 53701-\n>0845; (608) 255-4460.\n>\n>--- 30 ---\n\nThis is the same address as \"Idiots Anonymous\", isn't it?\n\n\nMatt Freivald\n\n--------------------------------------------------------------------------\nLiBORGalism:\n             THINKING IS IRRELEVANT. INTEGRITY IS IRRELEVANT.\n          FREE SPEECH IS IRRELEVANT. PRIVATE PROPERTY IS IRRELEVANT.\n                 PERSONAL RESPONSIBILITY IS IRRELEVANT.\n                     CONSERVATIVISM IS FUTILE.\n                      YOU WILL BE ASSIMILATED.\n--------------------------------------------------------------------------\nTHESE ARE MY OPINIONS ONLY AND NOT THOSE OF MY EMPLOYER!!!!!!!!!!!!!!!!!!!\n--------------------------------------------------------------------------\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10340, "properties": {"category": "talk.politics.mideast", "text": "From: terziogl@ee.rochester.edu (Esin Terzioglu)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: Univ of Rochester, College of Engineering and Applied Science\nLines: 33\n\nIn article <1993Apr19.155856.8260@kpc.com> henrik@quayle.kpc.com  writes:\n>In article <1993Apr17.185118.10792@ee.rochester.edu>, terziogl@ee.rochester.edu (Esin Terzioglu) writes:\n>|> In article <1993Apr16.195452.21375@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n>|> >04/16/93 1045  ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\n>|> >\n>|>  \n>|> Ermenistan kasiniyor...\n>|> \n>|> Let me translate for everyone else before the public traslation service gets\n>|> into it\t: Armenia is getting itchy. \n>|> \n>|> Esin.\n>\n>\n>Let me clearify Mr. Turkish;\n>\n>ARMENIA is NOT getting \"itchy\". SHE is simply LETTING the WORLD KNOW that SHE\n>WILL NO  LONGER sit there QUIET and LET TURKS get away with their FAMOUS \n>tricks. Armenians DO REMEMBER of the TURKISH invasion of the Greek island of\n                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n>CYPRESS WHILE the world simply WATCHED. \n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nYour ignorance is obvious from your posting. \n\n1) Cyprus was an INDEPENDENT country with Turkish/Greek inhabitants (NOT a \n   Greek island like your ignorant posting claims)\n\n2) The name should be Cyprus (in English)\n\nnext time read and learn before you post. \n\nEsin.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10341, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Re: (new) reason for Clipper alg'm secrecy\nOrganization: AT&T Bell Laboratories\nLines: 31\n\nIn article <1993Apr20.155924.29995@news.clarkson.edu>, tuinstra@signal.ece.clarkson.edu.soe (Dwight Tuinstra) writes:\n> First, note that the \"experts\" will only look at \"details\", and of just \n> the algorithm:\n> \n>     In addition, respected experts from outside the\n>     government will be offered access to the confidential details of\n>     the algorithm to assess its capabilities and publicly report\n>     their findings.\n> \n> Why not the chip design?  Well, here's the possiblity:  in addition to\n> encryption, the chip pre-processes voice signals to make them easier\n> to analyze/transcribe electronically.  The chip, once widespread, might\n> effectively be part of a massively parallel computer for \"voice-\n> grepping\" the US phone network (or the criminal & wrong-thinking patrons\n> thereof).\n\nFirst of all, the chip doesn't do that.  It runs at 16 megabits/second,\nwhich is far beyond what you need for voice.  It's obviously intended\nfor data as well, and on high-speed lines at that.\n\nSecond -- what advantage is there to doing the processing in the phone?\nI don't care how fancy that chip is; it's not as fancy as the roomful\nof analyzers at Fort Meade running the program they'll have 5 years from\nnow.  They can't update every Clipper chip that's out there.\n\nThird -- if they did do this preprocessing in the chip, it would probably\nhave a serious effect on recognizability of the voice patterns.  If\nnothing else, that would hurt the acceptability of the product.  The\nV.32bis modems are just barely fast enough to do a good job on properly-\nmassaged voice as is; add any more to the mix, and you're completely out\nof the ballpark.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.485+0000", "event": "documents", "entityId": 10342, "properties": {"category": "comp.graphics", "text": "From: ed@cwis.unomaha.edu (Ed Stastny)\nSubject: Chaos Editions: IDEA (Internation Directory of Electronic Arts)\nKeywords: electronic art\nOrganization: University of Nebraska at Omaha\nLines: 30\n\nI've borrowed the 1992-93 version of this book from a friend...holy\nmoley!  What a wealth of contacts.  Five-hundred pages of information\nabout electronic artists and organizations around the globe (many have\nemail addresses).  An up to the minute database of this information is\nalso available on Minitel (the book's based in France...are there any\nInternet=>Minitel gates?).  The book is printed in French and English.\n \nTo have you or your organization listed in IDEA, just send your\ninformation to:\n \nAnnick Bureaud\nIDEA\n57, rue Falguiere\n75015 Paris\nFrance\n \nIt's free to be listed in it, I'm not sure how widely distributed the\nbook is or how much it costs.  I'm not affiliated with them in any way,\nI was just impressed by their collection of organizations and artists.\nI highly encourage all involved in electronic media (video, music,\ngraphics, animation, etc.) to send in your entry and encourage them to\nmake their database available on Internet.\n \n...e\n\n--\nEd Stastny           | OTIS Project, END PROCESS, SOUND News and Arts \nPO BX 241113\t     | FTP: sunsite.unc.edu (/pub/multimedia/pictures/OTIS)\nOmaha, NE 68124-1113 |      141.214.4.135 (projects/otis)\n---------------------- EMail: ed@cwis.unomaha.edu, ed@sunsite.unc.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10343, "properties": {"category": "sci.space", "text": "From: pvtmakela@hylkn1.Helsinki.FI (M{kel{ Veikko)\nSubject: Re: Astronomy Program\nOrganization: University of Helsinki\nLines: 20\n\nIn article <28641@galaxy.ucr.edu> datadec@ucrengr.ucr.edu \n(kevin marcus) writes:\n\n>Are there any public domain or shareware astronomy programs which will\n>map out the sky at any given time, and allow you to locate planets, nebulae,\n>and so forth?  If so, is there any ftp site where I can get one?\n\n\n   There are several star map programs available.  Your\n   job is to choose that you like.  Try anonymous-FTP\n   from:\n\n\tftp.funet.fi:pub/astro/pc/stars\n\t\t\t       pc/solar\n                               mac\n\t\t\t       amiga\n\t\t\t       atari\n   \n\t\t\t\t\tregards,\n\t\t\t\t\t-Veikko-\t\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10344, "properties": {"category": "sci.crypt", "text": "From: andyl@harlqn.co.uk (Andy Latto)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nIn-Reply-To: smb@research.att.com's message of Wed, 21 Apr 1993 13:23:18 GMT\nNntp-Posting-Host: epcot.harlequin.com\nOrganization: Harlequin Limited, Cambridge, England\n\t<1993Apr20.150531.2059@magnus.acs.ohio-state.edu>\n\t<1993Apr20.192105.11751@ulysses.att.com> <C5sy1z.4tD@demon.co.uk>\n\t<1993Apr21.132318.16981@ulysses.att.com>\nLines: 42\n\n\nIn article <1993Apr21.132318.16981@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n\n   In article <C5sy1z.4tD@demon.co.uk>, Graham Toal <gtoal@gtoal.com> writes:\n   > In article <1993Apr20.192105.11751@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n   > :Thousands?  Tens of thousands?  Do some arithmetic, please...  Skipjack\n   > :has 2^80 possible keys.\n   > \n   > We don't yet know if all 80 bits count.\n\n   That doesn't worry me at all; they're not going to cheat at something\n   they can get caught at.  And key size is one of the things that can be\n   verified externally.  Feed lots of random key/input pairs into the\n   chip, then try flipping random key bits, and see what happens to the\n   output.  We already know what *should* happen -- about half the output\n   bits should vary, on average, from a 1-bit key change or input change.\n\n   If they were out to build a weak cryptosystem, it might be the case that\n   some of the bits are much less powerful than others, in the sense that\n   they only enter into the encryption very late in the game.  By contrast,\n   DES was designed to use each key bit as early as possible; the 50% output\n   change rate appears as early as round 5.  Again, though, I don't think\n   NSA is going to cheat that crudely; they're likely to get caught.\n\nConsider a cryptosytem that starts out by XORing bits 23 and 47, and\nnot using either of these bits except through this XOR. This system\nmakes early use of every bit. but an exhaustive key search would now\nonly have 2^79 keys to search. Your test by varying single key bits\nwouldn't turn up anything interesting.\n\n   Remember that they've promised to let a committee of outside experts see\n   the cryptosystem design.  If you assume something DES-like, a biased\n   subkey generation schedule will stick out like a sore thumb.\n\nThe algorithm I suggest above would stick out like a sore thumb, but\nI'm sure I could design a system with a more subtle key redundancy\nwhich was well-hidden, but would still make an exhaustive key search\ntake far less than 2^80 encryptions. I don't believe your claim that\nthe real keysize can be verified externally.\n\n\t\t\t\t\t\t\tAndy Latto\n\t\t\t\t\t\t\tandyl@harlequin.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10345, "properties": {"category": "rec.sport.hockey", "text": "From: 35002_2765@uwovax.uwo.ca\nSubject: Re: Stop predicting\nOrganization: University of Western Ont, London\nNntp-Posting-Host: hydra.uwo.ca\nLines: 17\n\nIn article <1993Apr16.060010.10012@ncsu.edu>, cdkaupan@eos.ncsu.edu (CARL DAVID KAUPANG) writes:\n> \n> It is really annoying to see all of these\n> predictions on the Net.  Who really cares\n> who you think will win?  Please stop with\n> the predictions, we all know the Caps are\n> going to win the Cup, so let it go at that.\n> \n> \nIn the words of Doktor Kultur, in the Ottawa Citizen,\n\"Remember to unhook the Nitrous Oxide before you leave\nthe Dentist Chair!\"  8^)\n\nGO JETS (for once, in the playoffs, please, I beg of you...)\nPaul Badertscher\n35002_2765@uwovax.uwo.ca\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10346, "properties": {"category": "talk.politics.guns", "text": "From: PA146008@utkvm1.utk.edu (David Veal)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nArticle-I.D.: martha.1993Apr6.162820.19369\nOrganization: University of Tennessee Division of Continuing Education\nLines: 47\n\nIn article <C4tsHu.Ew6@magpie.linknet.com> manes@magpie.linknet.com (Steve Manes) writes:\n>Frank Crary (fcrary@ucsu.Colorado.EDU) wrote:\n>: That's all very well and good, but I was refering to all\n>: homocides, not just ones involving handguns (what is this fixation\n>: on death by shooting, as if it were somehow worse than death\n>: by stabbing?)\n>\n>What relevance are ALL homicides in this debate?  What do you think gun\n>control advocates are saying: that if we get rid of all handguns we will\n>live in a homicide-free world?\n\n       The relevance is that if you've got x homicides and reduce\nthe number of gun homicides in that group, but x doesn't decrease\nby a significant amount, have you made an improvement, and is that\nimprovement worth what you've paid?\n\n>The issue is guns, not baseball bats.  Even a simpleton knows that\n>he stands a better chance of surviving an attack with a baseball bat...\n>certainly of outrunning a bat-wielding assailant.\n\n       If a baseball bat is a tenth as likely to kill a victim as a gun,\nis that any comfort to that tenth?\n\n>As for knives, see my earlier post.  I'd much rather face a knife\n>than a gun, thanks. \n\n       I've faced a knife.  And I was damn annoyed I didn't *have*\na gun.  All the statistics in the world didn't change the fact that\n*he* was interested in cutting *me*.\n\n>Fortunately, the best defense against a knife isn't\n>another knife.  Anyone trained in unarmed self-defense won't have\n>much of a problem disarming a knife assailant untrained in knife\n>assault (which probably means 99.9% of knife assailants).\n\n       \"Anyone trained in self-defense.\" \n\n       Unarmed self-defense isn't for everyone.  What's more, it requires\nsubstantially more training to be safe and effective than a firearm.\nIt requires physical proximity and thus a greater threat to the victim,\nwhich is a primary problem with stun guns.  You have to actually touch\nyour assailant.  Unless you're *very* good, a large, stronger assailant\ncan simply ignore your blows long enough to incapacitate you.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu  \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10347, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: Ancient islamic rituals\nOrganization: Monash University, Melb., Australia.\nLines: 21\n\nIn <16BA6C947.I3150101@dbstu1.rz.tu-bs.de> I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n\n>In article <1993Apr3.081052.11292@monu6.cc.monash.edu.au>\n>darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n> \n>>There has been some discussion on the pros and cons about sex outside of\n>>marriage.\n>>\n>>I personally think that part of the value of having lasting partnerships\n>>between men and women is that this helps to provide a stable and secure\n>>environment for children to grow up in.\n>(Deletion)\n> \n>As an addition to Chris Faehl's post, what about homosexuals?\n\nWell, from an Islamic viewpoint, homosexuality is not the norm for\nsociety.  I cannot really say much about the Islamic viewpoint on homosexuality \nas it is not something I have done much research on.\n\n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10348, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Let's build software cryptophones for over the internet...\nLines: 27\n\nI forwarded an old posting about CELP speech compression:\n\n\tIn case you'd like to experiment with CELP, you can obtain a software\n\timplementation of the 4800 bps Fed Std CELP coder for free:\n\n\tThe U.S. DoD's Federal-Standard-1016 based 4800 bps code excited linear\n\tprediction voice coder version 3.2 (CELP 3.2) Fortran and C simulation source\n\tcodes are now available for worldwide distribution at no charge (on DOS\n\tdiskettes, but configured to compile on Sun SPARC stations) from:\n\nI've since been told that the source of this is on cygnus.com\nin /pub/celp.speech.tar.Z\n\nI'm not in a position to; any Sun tcp/ip gurus out there who think they\ncan marry this with netfone by the end of the week? ;-)  Seriously.  I\nthink someone with real net access and two sparcs could have this running\nby the end of the week.  Then we ask the pgp guys to add a bytestream\ncrypto filter.  Two weeks at the most.  [Damn, I wish I had my sparc\nback... I'm stuck on a 25mhz 386sx]\n\n\nShare and Enjoy!\n\nG\nPS  You'll have to use archie to find netfone - I have a copy but no note\nof where it's from; author in the docs is kelvin@autodesk.com and he\nappears to be located in France\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10349, "properties": {"category": "misc.forsale", "text": "From: karu@nevada.edu (NARANAPITI KARUNARATNE)\nSubject: Software and Hardware FOR SALE\nNntp-Posting-Host: helios.nevada.edu\nOrganization: University of Nevada System Computing Services\nLines: 21\n\nI have the following items for sale:\n\nAnimation Works software for Macintosh by Gold Disk\n          This is a brand new shrink-wrapped copy\n\nMicrosoft Excel for Windows Ver. 4.0\n          Opened, but includes everything including Registration card\n\nVideo7 FastWrite VGA card. 512 video memory. 800x600 resolution.\n\nEverex 2400b internal modem.\n           Video card and the modem are used items.\n\nIf you are interested make a reasonable offer. I wish to ship these\nUPS COD.\nPlease email me at karu@nevada.edu.\nThank you.\n\nKaru.\nkaru@nevada.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10350, "properties": {"category": "sci.electronics", "text": "From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nSubject: Re: Building a UV flashlight\nNntp-Posting-Host: aisun3.ai.uga.edu\nOrganization: AI Programs, University of Georgia, Athens\nLines: 13\n\nYou can get a *little* UV by putting a heavy UV filter (deep purple) in\nfront of an ordinary flashlight bulb (the brightest you can get).\nMy father used a setup like this in law enforcement work circa 1964.\n\nGood UV (\"blacklight\") bulbs work like fluorescent bulbs.  I'd proceed by\ngetting a cheap battery-powered _fluorescent_ light, then going to an\nelectrical supply house and finding a UV bulb that would fit it.\n\n-- \n:-  Michael A. Covington, Associate Research Scientist        :    *****\n:-  Artificial Intelligence Programs      mcovingt@ai.uga.edu :  *********\n:-  The University of Georgia              phone 706 542-0358 :   *  *  *\n:-  Athens, Georgia 30602-7415 U.S.A.     amateur radio N4TMI :  ** *** **  <><\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10351, "properties": {"category": "sci.med", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U19250@uicvm.uic.edu>\nSubject: quality control in medicine\nLines: 7\n\nDoes anybody know of any information regarding the implementaion of total\n quality management, quality control, quality assurance in the delivery of\n health care service.  I would appreciate any information.  If there is enough\ninterest, I will post the responses.\n        Thank You\n        Abhin Singla MS BioE, MBA, MD\n        President AC Medcomp Inc\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10352, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ebosco@us.oracle.com (Eric Bosco)\nSubject: Help choosing SCSI controler\nNntp-Posting-Host: monica.us.oracle.com\nReply-To: ebosco@us.oracle.com\nOrganization: Oracle Corp., Redwood Shores CA\nX-Disclaimer: This message was written by an unauthenticated user\n              at Oracle Corporation.  The opinions expressed are those\n              of the user and not necessarily those of Oracle.\nLines: 10\n\n\nI need to buy a SCSI controler for my 486 machine to use with a quantum  \n425F harddrive. I know that adaptec is good, but they are kind of  \nexpensive. Essentially I want a controller in the $100-$150 range that I\ncan use with this drive. I plan to use Windows and later on OS 2.1 when it  \ncomes out. Any reccomendations appreciated.\n\n-Eric\n\nebosco@us.oracle.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10353, "properties": {"category": "sci.electronics", "text": "From: system@garlic.sbs.com (Anthony S. Pelliccio)\nSubject: Re: Beginner's RF ???\nOrganization: Antone's Italian Kitchen and Excellence in Operating Network\nX-Newsreader: rusnews v1.02\nLines: 27\n\nklink@cbnewsl.cb.att.com (steven.r.klinkner) writes:\n\n> Can anybody recommend a good, application-oriented beginner's reference\n> to RF circuits?  \n> \n> I am pretty good on theory & know what different types of modulation mean, \n> but don't have a lot of practical experience.  A book detailing working\n> circuits of different types (modulation, power, frequency, what is legal,\n> what is not, et cetera), would be very helpful.\n> \n> Thanks.\n\nWell, you might try the A.R.R.L.'s license study guides. For example, my\nAdvanced Class study guide has lots and lots of good RF and electronics\ntheory in it. I would imagine the other books are good too.\n\nTony\n\n-----------------------------------------------------------------------\n-- Anthony S. Pelliccio, kd1nr/ae    // Yes, you read it right, the  //\n-- system @ garlic.sbs.com          // man who went from No-Code    //\n-----------------------------------// (Thhhppptt!) to Extra in     //\n-- Flame Retardent Sysadmin       // exactly one year!            //\n-------------------------------------------------------------------\n-- This is a calm .sig! --\n--------------------------\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10354, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Davidians and compassion\nOrganization: Cookamunga Tourist Bureau\nLines: 29\n\nIn article <1993Apr20.143400.569@ra.royalroads.ca>, mlee@post.RoyalRoads.ca\n(Malcolm Lee) wrote:\n> Do you judge all Christians by the acts of those who would call\n> themselves Christian and yet are not?  The BD's contradicted scripture\n> in their actions.  They were NOT Christian.  Simple as that.  Perhaps\n> you have read too much into what the media has portrayed.  Ask any\n> true-believing Christian and you will find that they will deny any\n> association with the BD's.  Even the 7th Day Adventists have denied any\n> further ties with this cult, which was what they were.\n\nWell, if they were Satanists, or followers of an obscure religion,\nthen I would be sure that Christians would in unison condemn and \nmake this to a show case. But when we are dealing with a fanatical\nRevelation preacher that kills ultimately everyone, including the\ninnocent children, then it seems that we are dealing with Christians \nand christians (note the spelling).\n \n> Do you judge all Muslims by the acts committed by Saddam Hussein, a \n> supposedly devout Muslim?  I don't.  Saddam is just a dictator using\n> the religious beliefs of his people to further his own ends.\n\nAnd does not this show the dangers with religion -- in order \nword a mind virus that will make mothers capable of letting\ntheir small children burn to ashes while they scream?\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10355, "properties": {"category": "misc.forsale", "text": "From: aaf0@ns1.cc.lehigh.edu (Andrew Aaron Feigin)\nSubject: 84 Mazda Pickup, (College Pro, Student Painters, LOOK.)\nOrganization: Lehigh University\nLines: 26\n\n84 Mazda Pickup\nRebuilt engine at 60,000 miles.\nNew Transmission, 5 speed.\n88,000 miles.\nNew brakes, new brake calipers.\nBRAND NEW CLUTCH, only 200 miles on it.\nprofessional ladder racks, can hold up to 6 ladders..\n4 cylinder, gets 30-35 miles to the gallon.\nFog lights.\nTach.\nRuns Great.\n===============\nAll inquires should write back or call.  I will have it Saturday Afternoon,\nand Sunday if you would like to take a look at it.\nPhone: 1-215-882-3154\n\nIf your are Painting this summer, this is an excellent vehicle to use.\n\n-- \n    ____________________________________\n   /                                   /|\n  /                                   / |\n /                                   /  |\n------------------------------------/   |\n| Andy Feigin                      |    |\n| Prodigy -> rwbp88d               |    |\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10356, "properties": {"category": "rec.motorcycles", "text": "From: jrwaters@eos.ncsu.edu (JACK ROGERS WATERS)\nSubject: Re: Aerostitch:  1- or 2-piece?\nOrganization: North Carolina State University, Project Eos\nDistribution: rec\nLines: 28\n\nIn article <1993Apr14.144015.18175@vax5.cit.cornell.edu> na4@vax5.cit.cornell.edu writes:\n>Request for opinions:\t\n>\n>Which is better - a one-piece Aerostitch or a two-piece Aerostitch?\n>\n>\n>We're looking for more than \"Well, the 2-pc is more versatile, but the \n>1-pc is better protection,...\"\t\n>\n>Thanks in advance,\n>Nadine\n\nI would be scared of trying to fit the one piece.  When I got my\ntwo piece, I got the jacket in 42 and the pants in 40 (just due\nto my manly-man of an athletic build, kind of thing)  No laughing,\nplease.  Seriously, I'm not trim and the 42 pants would have\nbeen way too big.  Also, I don't think the 1 piece does provide\nbetter protection.  If I'm wrong, I'll be swiftly if ever so gently\ncorrect by the net.pansies.of.knowledge (as they like to call themselves).\n\nRegards\nJack Waters II\nDoD#1919\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~ I don't fear the thief in the night.  Its the one that comes in the  ~\n~ afternoon, when I'm still asleep, that I worry about.                ~\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10357, "properties": {"category": "misc.forsale", "text": "From: bereson@ide.com (Alex Bereson)\nSubject: 1972 Montreal Olympics souvenirs\nOriginator: bereson@lola\nOrganization: Interactive Development Environments, SF\nDistribution: na\nLines: 14\n\n \n1976 Montreal Olympics philatelic souvenirs: \n \n1. Color-illustrated booklet in French/English containing all stamps \nissued for the Games (mint never hinged) in slipcase, over $6.00 \nface value in stamps. $13.00 + $2.00 insured first class mailing \n \n2. Unusual \"desk pad holder\" with Olympic rings on the cover and the \nMontreal stadium inside. All the Canadian Olympic stamps are \ndisplayed on the \"cover\" under heavy plastic. Again, over $6.00\nface value. $11.00 + $2.50 insured first class mailing. \n\nOrder both for $22 including insured delivery\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10358, "properties": {"category": "sci.electronics", "text": "From: peter.m@insane.apana.org.au (Peter Tryndoch)\nSubject: Telephone On Hook/Off Hok\nLines: 17\n\nAllMichael CovingtonTelephone on hook/off hok\n\nMC>From: mcovingt@aisun3.ai.uga.edu (Michael Covington)\nMC>Organization: AI Programs, University of Georgia, Athens\nMC>Aye, there's the rub -- if you draw enough current to light an LED, th\nMC>equipment at the phone company will think you've gone off hook.\nMC>In the on-hook state you're not supposed to draw current.  \n\nOk lets have some calculation here: Going by Australian standards, which I \npresume might be similar to other countries ( If not, lets have some \ninput) a phone uses 600ohm to loop a 48V line = 80mA. A standard LED \ndrains 20mA. So what is the actual loop current required for an \"off hook\" \nindication, do you know?\n\nCheers \nPeter T.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10359, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: yuting@Xenon.Stanford.EDU (Eugene Y. Kuo)\nSubject: Any updated Canon BJ-200 driver?\nOrganization: Computer Science Department, Stanford University.\nLines: 8\n\nHi ... can anyone tell me where I can get a copy of updated Canon BJ-200\nprinter driver for Windows 3.1, if any ? I have ver 1.0 which comes with\nmy BJ-200 printer, I just wonder if there is any newer version.\n\nThanks very much, please email.\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10360, "properties": {"category": "sci.crypt", "text": "From: silly@ugcs.caltech.edu (Brad Threatt)\nSubject: Remote file system security\nOrganization: California Institute of Technology, Pasadena\nLines: 20\nNNTP-Posting-Host: vex.ugcs.caltech.edu\n\nIn light of my recent paranoia concerning government proposals, I'd love to\nsee a UNIX-based encryption scheme that:\n\n1) Kept some files encrypted on the host machine (say, all the files in your\n   home directory)\n2) Used a key system that could not be compromised by eavesdropping over a\n   modem line.\n\nIt seems that this would require modifications to a shell program and a\nway of telling whether a file was encrypted or not, among other things.\n\nI'd love to know about potential security holes in such a system.\n\nDoes such a system exist?  If it were made easy-to-use and readily\navailable, I think it would be a Good Thing(tm).  I realize that this\nwould probably just involve putting a nice front-end on a readily available\nand very secure encryption scheme, but it should be done.\n\nThanks for the ear,\nBrad \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10361, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: baseball@catch-the-fever.scd.ucar.edu (Gregg Walters)\nSubject: MathCad 4.0 swap file\nOrganization: Scientific Computing Divison/NCAR Boulder, CO\nLines: 3\n\nI have 16MB of memory on my 386SX.  I have been running Windows\nwithout a swap file for several months.  Will Mathcad 4.0 be\nhappy with this, or insist on a swap file?\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10362, "properties": {"category": "misc.forsale", "text": "From: mmm@cup.portal.com (Mark Robert Thorson)\nSubject: Re: Cellular Phone (Portable) for sale\nOrganization: The Portal System (TM)\nDistribution: usa\nLines: 7\n\nI offer $100, shipment at seller's expense, payment as personal check\nsent by U.S. mail within 24 hours after receiving goods.  I reserve the\nright to return the goods, at my expense, if I find them to be defective\nor otherwise unacceptable when I receive them (either the merchandise or\nthe check would be mailed within 24 hours).\n\nMark Thorson\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10363, "properties": {"category": "sci.space", "text": "From: dong@oakhill.sps.mot.com (Don M. Gibson)\nSubject: Re: Why not give $1 billion to first year-lo\nNntp-Posting-Host: lexus\nReply-To: dong@oakhill.sps.mot.com\nOrganization: Motorola Semiconductor Products Sector\nLines: 21\n\nIn article F23@zoo.toronto.edu, henry@zoo.toronto.edu (Henry Spencer) writes:\n>In article <1993Apr20.101044.2291@iti.org> aws@iti.org (Allen W. Sherzer) writes:\n>>This prize isn't big enough to warrent developing a SSTO, but it is\n>>enough to do it if the vehicle exists.\n>\n>Actually, there are people who will tell you that it *would* be enough\n>to do SSTO development, if done privately as a cut-rate operation.  Of\n>course, they may be over-optimistic.\n>\n>You can also assume that a working SSTO would have other applications\n>that would help pay for its development costs.\n>\n>I'd be inclined to make the prize somewhat larger, but $1G might be enough.\n\nthis all sounds like that Indecent Proposal movie.  wouldn't there be\na lot of people that would try this with little hope of working just\nto get the dough?  if you have a 1:100 chance and it costs you $10Mil,\nthen you might pay some stooge a few grand to be your lucky hero.\njust send up a few dozen and 1 is bound to survive enough to make YOU\nrich.\n--DonG\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10364, "properties": {"category": "sci.electronics", "text": "From: whit@carson.u.washington.edu (John Whitmore)\nSubject: Re: Suggestions  on Audio relays ???\nOrganization: University of Washington, Seattle\nLines: 20\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <C5qsBF.IEK@ms.uky.edu> billq@ms.uky.edu (Billy Quinn) writes:\n>I built a little project using the radio shack 5vdc relays to switch\n>audio.  I got pretty bad 'clicks' when the thing switched. \n\n>\tIs there a good relay/relay circuit that I can use for switching\n>audio, so that there will be *NO* noise of any kind on the audio lines.\n\n\tWith relays alone, you will always get a transient when\nyou abruptly turn ON or OFF any channel.  If you don't want to hear\nthe transient, use some other device (a photoresistor-output optoisolator\nis the usual sort of thing) to gently MUTE the signal, then switch,\nTHEN remove the power from the lamp in the optoisolator.\n\n\tIt used to be standard practice to employ photoresistors\nin switching audio, because the photoresistor time delay (a few\nthousandths of a second) kept any noise in the digital side (which\ndrives the lamp) from contaminating the audio.  And, the devices\nare cheaper than relays.\n\n\tJohn Whitmore\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10365, "properties": {"category": "misc.forsale", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Noel B. Lorenzana <U38134@uicvm.uic.edu>\nSubject: Marvel comics for sale! (mostly cover price)\nLines: 43\n\nComics for sale. All are Marvel and the majority\nof the comics are cover price. Buyer pays shipping.\nShipping costs will vary with the quantity you\nbuy. All reasonable offers will be considered.\n\n\n\nPunisher W.J.     9,10,13,14,15,16,17,\n                  20-28,31-40,43        $1.75 each\n\nPunisher          34,42,43,49,51-54,    $1.50 each\n(regular series)  56-62\n\nX-factor          #1               $4.00\n                   2-4              3.00\n                   37,48,41,45,50,  1.75\n                   63               4.00\n                   65,66            3.00\n                   69-75            1.50\n                   Annual #7        2.25\n\nSilver Surfer     4,22,23,29,30,41,\n                  50(1st, 3rd print)\n                  51-62                 $1.50 each\n\nX-force           1-6         $1.50\n                  7-17         1.25\n\nGhost Rider       #5          $8.00\n                   7           4.00\n                   8,11        3.00\n                   13-34      $2.00 each\n\nNew Mutants       2,7,9,14,15-19,26,48,\n                  50,58,63,87(2nd),100  $2.00 each\n\nMarvel Comics     89,91,92,95,96,\nPresents          99,100                $1.50 each\n\n\nHere you have it. Please send replies to\nU38134@UICVM.UIC.EDU (Noel Lorenzana)\nThanks.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10366, "properties": {"category": "misc.forsale", "text": "From: nicolas.nowinski@aquila.com (Nicolas Nowinski)\nSubject: 14.4k Modem ZOOM\nDistribution: world\nOrganization: Aquila BBS - Aurora, IL - 820-8344\nLines: 10\n\nHere it is\n\nZoom 14.4k  FAX/DATA v.32bis modem.  I have evreything only purchased in\nJanuary.  Will happily provide the Fax/Comm. software and BOX and manuals.\nI am selling this for ONLY $125+s/h COD.\n\nNicolas Nowinski\n703-435-9590 FEEL FREE TO CALL for quickest service.\n---\n \u00fe OLX 2.1 TD \u00fe Yes you to can become a ASM programer for $1,000,000+S/h\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.486+0000", "event": "documents", "entityId": 10367, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bm967@cleveland.Freenet.Edu (David Kantrowitz)\nSubject: Re: Centris 610 Video Problem - I'm having it also!\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 21\nNNTP-Posting-Host: slc4.ins.cwru.edu\n\n\nFrom: push@media.mit.edu (Pushpinder Singh)\nSubject: re: Centris 610 Video Problem - I'm having it also!\nDate: Sat, 17 Apr 1993 03:17:45 GMT\n\n> When the computer is set for 256 colors and certain operations are done,\n> particularly vertical scrolling through a window, horizontal white lines\n> appear on the monitor (which generally but not always spare open\n> windows).  These lines accummulate as the operation is continued.  If a\n> window is moved over the involved area of the screen and then moved away\n> the line disappear from that area of the screen.  This problem is not\n> observed if the monitor is configured for 16 colors or a 14 inch Apple\n> monitor with 256 colors is used.\n>\n> I suspect a bad video RAM chip but cannot be certain.  The problem has\n> been apparent since day 1 but has gotten worse.\n\netc.\n\nHas anyone NOT had these problems in the given configurations?\n(that would help eliminate design flaw as the explanation)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10368, "properties": {"category": "rec.sport.hockey", "text": "From: colling@ann-arbor.applicon.slb.com (Michael Collingridge)\nSubject: NHL Team Captains\nOrganization: Schlumberger CAD/CAM; Ann Arbor, Michigan (USA)\nSummary: How Are Team Captains Selected?\nLines: 12\n\nIn the mist of the Rangers soap box (i.e. Captain neMesis-ier/ex-coach \nRoger Nebula bad blood bath) and with high hopes turned to new coach \nMr. Klean (Commissar Keenan)... I would like to know what procedures \nhockey teams use to select their captains (including A's). Are they \nselected by the coaching staff, do the players vote for a captain, or \nare they appointed by management?\n\nAnd, while we are on the subject, has a captain ever been traded, \nresigned, or been striped of his title during the season? Any other \nteam captain trivia would be appreciated.\n\n-- Mike\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10369, "properties": {"category": "misc.forsale", "text": "From: 02106@ravel.udel.edu (Samuel Ross)\nSubject: Tech Books for sale!!! Cheap!!!\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nDistribution: usa\nLines: 26\n\n\nSOMEONE PLEASE BUY THESE BOOKS!!!!!  I AM NOT ASKING MUCH!!!!!!\n\nLIQUIDATION!!!!!! Send me your offer!  No reasonable offer refused!\nFirst come first served! I JUST WANT TO GET RID OF THESE BOOKS!!!\nJUST MAKE ME AN OFFER!!!!!  \n\n* Calculus w/ Analytic Geometry by Authur B. Simon (copyright date 1982), below avg condition but still readable!  Give me $8 (shipping incl) and its yours!\n\n* Writing good software in Fortran, Graham Smith.  $12 (shipp incl) \n\n* General Chemistry Principles & Modern Applications, R. Petrucci, fourth\n  edition.  Big Book! (this book + following 2 books $20 for all 3!!)\n\n* Solutions manual for Chemistry book. \n\n* Study guide for Chemistry book. \n\n\nSend me your offers via email at 02106@chopin.udel.edu\n\n\n\nSam\n02106@chopin.udel.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10370, "properties": {"category": "rec.motorcycles", "text": "From: ai598@cleveland.Freenet.Edu (Mike Sturdevant)\nSubject: Re: Ed must be a Daemon Child!!\nArticle-I.D.: usenet.1pqhvu$go8\nReply-To: ai598@cleveland.Freenet.Edu (Mike Sturdevant)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 22\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nIn a previous article, svoboda@rtsg.mot.com (David Svoboda) says:\n\n>In article <1993Apr2.163021.17074@linus.mitre.org> cookson@mbunix.mitre.org (Cookson) writes:\n>|\n>|Wait a minute here, Ed is Noemi AND Satan?  Wow, and he seemed like such\n>|a nice boy at RCR I too.\n>\n>And Noemi makes me think of \"cuddle\", not \"KotL\".\n>\n\n\tYou talking bout the same Noemi I know? She makes me think of big bore\nhand guns and extreme weirdness. This babe rode a CSR300 across the desert! And\na borrowed XL100 on the Death Ride. Don't fuck with her man, your making a big\nmistake.\n\n\n\n-- \nGo fast. Take chances.\n\n\tMike S.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10371, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: phil@howtek.MV.COM (Phil Hunt)\nSubject: What is a Rapid Tech SQUEEZE card?\nOrganization: Howtek, Inc.\nReply-To: phil@howtek.MV.COM (Phil Hunt)\nX-Mailer: uAccess - Macintosh Release: 1.6v2\nLines: 22\n\nHi,\n\nI am going through a box of old IBM card and came across one called a \n\nRapid Technology SQUEEZE card.  It is dated 1990 and has a 54mhz crystal on\nit and a big chip that has 'C-Cube' on it.\n\nNo connectors to the outside, but a ribbon-type 50-pin connector on the board.\n\nIt is a 16-bit board.\n\nAny ideas what it is?\n\n\nPhil\n\n\n--------------------------------------------------------------------\nPhil Hunt                          \"Wherever you go, there you are!\"\nHowtek, Inc.\t\t                   \n\nInternet: phil@howtek.MV.COM   uucp: {decvax|harvard}!mv!howtek!phil\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10372, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: Fortune-guzzler barred from bars!\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 43\n\nDavid Karr, on the Tue, 20 Apr 1993 01:01:01 GMT wibbled:\n: In article <C5qtvL.M73@dartvax.dartmouth.edu> Russell.P.Hughes@dartmouth.edu (Knicker Twister) writes:\n: >In article <1993Apr19.141959.4057@bnr.ca>\n: >npet@bnr.ca (Nick Pettefar) writes:\n: >\n: >> With regards to the pub brawl, he might have a history of such things.\n: >> Just because he was a biker doesn't make him out to be a reasonable\n: >> person.  Even the DoD might object to him joining, who knows?\n\n: If he had a history of such things, why was it not mentioned in the\n: article, and why did they present the irrelevant detail of where he\n: got his drinking money from?\n\n: I can't say exactly who is at fault here, but from where I sit is\n: looks like we're seeing the results either of the law going way out\n: of hand or of shoddy journalism.\n\n: If the law wants to attach strings to how you spend a settlement, they\n: should put the money in trust.  They don't, so I would assume it's\n: perfectly legitimate to drink it away, though I wouldn't spend it that\n: way myself.\n\n: -- David Karr (karr@cs.cornell.edu)\n\nWe heard about this from a newspaper article.  Journalists and editors\nalways pick out the most interesting and sensational \"facts\" for our\ndelectation.  As the editor of the Sun once said: \"We never let the\nfacts get in the way of a good story\".  You must have noticed how\nmotorcyclists get treated by the press.  They thrive on hysteria,\nignorance, sensationalism and one-upmanship.  Unfortunately there's\nnot enough salt to keep taking a pinch of.\n\n--\n\nNick (the Cynical Old Biker)   DoD 1069   Concise Oxford   Leaky New Gearbox\n\nM'Lud.\n                                   \nNick Pettefar, Contractor@Large.  /~~~\\   \"Teneo tuus intervallum\"\nCuurrently incarcerated at BNR,  {-O^O-}   npet@bnr.ca  '86 BMW K100RS \"Kay\"\nMaidenhead, The United Kingdom.   \\ o /    Pres. PBWASOH(UK),  BS 0002\n                                   (-)\n\"Ask not for whom the bell tolls, it tolls for you.  It's time to get up\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10373, "properties": {"category": "comp.graphics", "text": "From: jbalgley@bbn.com (Jon Balgley)\nSubject: Hidden-line removal program\nOrganization: Bolt Beranek and Newman (BBN)\nLines: 11\nNNTP-Posting-Host: labs-n.bbn.com\n\nI'm posting this for a friend:\n\n  I have an immediate need for a polygon-based hidden-line removal  \n  program.  I can deal with any input/output format, but I need to be able  \n  to do perspective views in any orientation and range.\n\n  Is there a public-domain hidden-line program around?  It seems like  \n  there should be, but I have not been able to locate one.\n\nEmail replies and I will summarize.\nThanks\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10374, "properties": {"category": "alt.atheism", "text": "From: bcash@crchh410.NoSubdomain.NoDomain (Brian Cash)\nSubject: Re: New Member\nNntp-Posting-Host: crchh410\nOrganization: BNR, Inc.\nLines: 47\n\nIn article <C5HIEw.7s1@portal.hq.videocart.com>, dfuller@portal.hq.videocart.com (Dave Fuller) writes:\n|>   Hello. I just started reading this group today, and I think I am going\n|> to be a large participant in its daily postings. I liked the section of\n|> the FAQ about constructing logical arguments - well done. I am an atheist,\n|> but I do not try to turn other people into atheists. I only try to figure\n|> why people believe the way they do - I don't much care if they have a \n|> different view than I do. When it comes down to it . . . I could be wrong.\n|> I am willing to admit the possibility - something religious followers \n|> dont seem to have the capability to do.\n\nWelcome aboard!\n\n|> \n|>   I notice alot of posts from Bobby. Why does anybody ever respond to \n|> his posts ? He always falls back on the same argument:\n\n(I think you just answered your own question, there)\n\n|> \n|> \"If the religion is followed it will cause no bad\"\n|> \n|>   He is right. Just because an event was explained by a human to have been\n|> done \"in the name of religion\", does not mean that it actually followed\n|> the religion. He will always point to the \"ideal\" and say that it wasn't\n|> followed so it can't be the reason for the event. There really is no way\n|> to argue with him, so why bother. Sure, you may get upset because his \n|> answer is blind and not supported factually - but he will win every time\n|> with his little argument. I don't think there will be any postings from\n|> me in direct response to one of his.\n\nMost responses were against his postings that spouted the fact that\nall atheists are fools/evil for not seeing how peachy Islam is.\nI would leave the pro/con arguments of Islam to Fred Rice, who is more\nlevel headed and seems to know more on the subject, anyway.\n\n|> \n|>   Happy to be aboard !\n\nHow did you know I was going to welcome you abord?!?\n\n|> \n|> Dave Fuller\n|> dfuller@portal.hq.videocart.com\n|> \n|> \n\nBrian /-|-\\\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10375, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nSubject: 486DX-50 vs. 486DX2-50 ?\nDistribution: world\nOrganization: HAL 9000 BBS, W-NET HQ, Ann Arbor, Michigan, USA\nReply-To: robert.desonia@hal9k.ann-arbor.mi.us (Robert Desonia) \nLines: 30\n\n\nAY>  In many recent advertisements I have seen both \"486DX-50\" and \"486DX\nAY>based systems. Does the first really exists and does it imply that all\nAY>circuitry on the motherboard with it works at that speed, as opposite \nAY>latter, where only the internals of the CPU are working at 50MHz?\nAY>\nAY> Many thanx in advance!\nAY>\nAY>Andrew.\n\nAndrew, yes there is a DX and DX2 version of the 50MHz 486.  If you are \nconsidering buying one or the other, definitely go for the DX with a nice \nsize external cache!  The performance is far greater.\n\nThe DX2 only has the internal 8k cache to work with at 50MHz, while the DX \nhas a potentially much larger cache to work at 50MHz with.  Neither \nsystems could actually run a program out of main memory, since DRAM is \nstill too slow for that high of bus speed ( 60ns = 16.66MHz < 50MHz ).\n\n-rdd\n\n---\n . WinQwk 2.0b#0 . Unregistered Evaluation Copy\n * KMail 2.95d W-NET HQ, hal9k.ann-arbor.mi.us, +1 313 663 4173 or 3959\n                                                               \n----\n| HAL 9000 BBS:  QWK-to-Usenet gateway  | Four 14400 v.32bis dial-ins    |\n| FREE Usenet mail and 200 newsgroups!  | PCBoard 14.5aM * uuPCB * Kmail |\n| Call +1 313 663 4173 or 663 3959      +--------------------------------+\n| Member of EFF, ASP, ASAD  * 1500MB disk * Serving Ann Arbor since 1988 |\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10376, "properties": {"category": "rec.autos", "text": "From: jao@megatest.com (John Oswalt)\nSubject: Re: legal car buying problems\nOrganization: Megatest Corporation\nX-Newsreader: Tin 1.1 PL3\nDistribution: ca\nLines: 32\n\nrboudrie@chpc.org (Rob Boudrie) writes:\n: In article <9285.27317@stratus.SWDC.Stratus.COM> bob@runway.swdc.stratus.com (Bob Hutson) writes:\n: >After agreeing to terms I signed the contract and drove home in my new\n: >car.  Later that same night I noticed that the terms in the were\n: >different from the terms I had agreed to.  (I made the stupid mistake\n: >of not checking everything on the contract).  This all happened last\n: >Saturday.\n: >\n: >I have heard that there is a \"cooling-off\" law allowing me three days\n: >to reconsider the contract.  Is this true?  Can anyone point me to the\n: >law?  The transaction happened at the dealership, if it matters.\n: \n: This cooling off period applies only in certain situations - lik ewhen\n: you are solicited at home.  I also think the cooling off period ends\n: if you actually accept the merchandise.\n: \n: If this were not the case, any car buyer would have the right to return\n: a slightly used, highly devalued, car 2 days after buying it.  Yeah - \n: that's the trick - if I want to buy a new car, I'd have a firend buy \n: & return one, then go in and negotiate a better deal on a pre-owned\n: used car.\n\nHowever, if you agree some terms, and then, when about to sign, the\ndealer slips you a contract with different terms, and leads you to\nbelieve that it embodies the terms you verbally agreed to, that\nis fraud.  There is no 3 day limit on restitution for fraud.\n\nYou may have to sue (and win) to get out of this.  You will almost\ncertainly have to threaten to sue.\n-- \n\nJohn Oswalt        jao@megatest.com     or    jao@netcom.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10377, "properties": {"category": "soc.religion.christian", "text": "From: gt7122b@prism.gatech.edu (boundary, the catechist)\nSubject: Re: Am I going to Hell?\nOrganization: Georgia Institute of Technology\nLines: 45\n\nIn article <Apr.23.02.55.31.1993.3123@geneva.rutgers.edu> tbrent@ecn.purdue.edu (Timothy J Brent) writes:\n>I have stated before that I do not consider myself an atheist, but \n>definitely do not believe in the christian god.  The recent discussion\n>about atheists and hell, combined with a post to another group (to the\n>effect of 'you will all go to hell') has me interested in the consensus \n>as to how a god might judge men.  As a catholic, I was told that a jew,\n>buddhist, etc. might go to heaven, but obviously some people do not\n>believe this.  Even more see atheists and pagans (I assume I would be \n>lumped into this category) to be hellbound.  I know you believe only\n>god can judge, and I do not ask you to, just for your opinions.\n\nDear Tim:\n\nYou say that you were a \"catholic,\" but if you do not believe in the Christian\nGod (I suppose that means the God of the Bible) and publicly state this,   \nyou are in all probability not a Roman Catholic.  \"Public heretics, even\nthose who err in good faith (material heretics), do not belong to the body\nof the Church\" (Fundamentals of Catholic Dogma, 1960, Ludwig Ott, p. 311).\n\nAll is not lost, however, as you still might belong spiritually to the\nChurch by your desire to belong to it.  As you said, only God can judge\nthe condition of a man's soul.  About judgment, on the other hand, St. Paul \n1 Cor 5:12) urges Christians to judge their fellow Christians. \nFollowing the Apostle's teaching, I judge that you should reconsider   \nreturning to the Christian fold and embrace the God of Abraham, Isaac,\nand Jacob.  He is the God who lives.  \n\nConcerning what you were told about non-believers when you were a catholic,\nthat is true.  As I have posted before, Vatican II (Lumen Gentium, II,   \nn. 16) teaches: \"Those who, through no fault of their own, do not know\nthe Gospel of Christ or His Chruch, but who nevertheless seek God with a\nsincere heart, and moved by grace, try in their actions to do His will\nas they know it through the dictates of their conscience - those too may\nachieve eternal salvation.\"  \n\nResponding to your solicitation for opinions on the thinking processes\nof God, the best I can do is refer you to Scripture.  Scripture is one\nof the best sources for learning what can be known about God.  \n\nStick with the best.\n-- \nboundary, the catechist \n\nno teneis que pensar que yo haya venido a traer la paz a la tierra; no he\nvenido a traer la paz, sino la guerra (Mateo 10:34, tr. esp. Vulgata Latina) \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10378, "properties": {"category": "misc.forsale", "text": "From: mgengelb@cs.ruu.nl (Marcel Engelbertink)\nSubject: NO MORE ROLEX-IMITATIONS\nOrganization: Utrecht University, Dept. of Computer Science\nLines: 28\n\nJammer !\n\n Dit is geen fantastische advertentie over nep-rolexen\n maar een evenzo duidelijke mededeling hieromtrent :\n\n Aangezien het alleen al aanbieden van deze horloges onder\n vermelding van de echte merknaam niet geheel correct is,\n wil ik met dit bericht duidelijk maken dat ik, Marcel Engelbertink,\n niet meer zal adverteren met imitatie-horloges van het merk ROLEX.\n\n Enig persoon die hierin geiinteresseerd is kan ik jammer genoeg ook niet\n meer helpen.\n\n\n\n\n For all the foreign people who can't even understand dutch ?!? :\n\n In spite of earlier mailing about fake-rolex's, I announce that I\n don't have any information available any longer and I won't use\n the trade name ROLEX anymore for those fake models.\n\n\n Yours fakefully,\n\n\n\n M.G. Engelbertink\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10379, "properties": {"category": "soc.religion.christian", "text": "From: Petch@gvg47.gvg.tek.com (Chuck Petch)\nSubject: Daily Verse\nOrganization: Grass Valley Group, Grass Valley, CA\nLines: 4\n\nBe devoted to one another in brotherly love. Honor one another above\nyourselves.\n\nRomans 12:10\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10380, "properties": {"category": "talk.politics.guns", "text": "From: betz@gozer.idbsu.edu (Andrew Betz)\nSubject: Re: \"High Power\" Assault guns\nNntp-Posting-Host: gozer\nOrganization: SigSauer Fan Club \nLines: 12\n\nIn article <1993Apr14.143825.13476@stortek.com> vojak@icebucket.stortek.com (Bill Vojak) writes:\n> Alaska with 1 UZI, 1 20 rnd Magazine, and 1 BIG Polar bear @\n                                                 ^\nI'd make that, \"1 BIG, MAD, and HUNGRY with CUBS NEARBY Polar bear @...\"\n\nDrew \n--\nbetz@gozer.idbsu.edu\n*** brought into your terminal from the free state of idaho ***\n*** when you outlaw rights, only outlaws will have rights   ***\n*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10381, "properties": {"category": "sci.electronics", "text": "From: dpalmer@mcnc.org (W. Dev Palmer)\nSubject: Re: Wanted: A to D hardware for a PC\nArticle-I.D.: mcnc.1993Apr6.220327.4042\nOrganization: MCNC Center for Microelectronics, RTP, NC\nLines: 34\n\nIn article <1993Apr6.053736.23113@doug.cae.wisc.edu> kolstad@cae.wisc.edu (Joel Kolstad) writes:\n>>In <3889@ncr-mpd.FtCollinsCO.NCR.COM> Brad Wright writes:\n>>\n>>>\tIf you know much about PC's (IBM comp) you might try the joystick\n>>>port.  Though I haven't tried this myself, I've been told that the port\n>\n>I believe that the \"A-D converters\" found on a joystick port are really\n>timers that tick off how long it takes an R-C circuit (the R being your\n>paddle) to charge up to something like 1/2 Vcc.  For games this works\n>pretty well, but you certainly wouldn't want to try to take lab\n>measurements off something as non-linear as that.\n\nThe best info I have seen so far is the article \"Joystick Metrics:\nMeasuring physical properties through the PC's joystick port\" by\nMichael Covington in the May 1985 issue of PC Tech Journal.  It talks\nabout how to read all kinds of things (voltage, current, resistance) in\nBASIC, and even includes code for a simple \"oscilloscope\" display.\n\nIt's possible to read the joystick port directly if you don't want to\nuse BASIC.  The detailed information for this is in the PC Technical\nReference under Options and Adapters.  You have to provide some\nmillisecond resolution timing functions, but that's a subject which has\nappeared many times in articles from Dr. Dobb's, Circuit Cellar Ink,\netc.  Look for the public domain ztimer package on wuarchive.\n\nGood Luck,\n\nDev Palmer\ndpalmer@mcnc.org\nMCNC Room 212\nP.O. Box 12889\nRTP, NC  27709-2889\n(919) 248-1837\n(919) 248-1455 FAX\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10382, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Billboard/Station/Space Dock?\nLines: 24\nNntp-Posting-Host: acad3.alaska.edu\nOrganization: University of Alaska Fairbanks\n\nSeems that the Mile-Long Billboard and any other inflateble space\nobject/station or what ever have the same problems. (other than being a little\nbit different than the \"normal\" space ideas, such as trusses and shuttles)\n\nBut also dag and such.. Why not combine the discussion of how and fesibility to\nthe same topic?\n\nI personnelly liek the idea of a billboard in space. But problem. How do you\nservice it? fly a shuttle/DC-1 to near it and then dismount and \"fly\" to it?\nOr what?? or havign a special docking section for shuttle/DC-1 docking?\n\nAlso what if the billboard springs a leak? Self sealing and such??\n\n\nJust thinking (okay rambling)..\n\nAlso why must the now inflated billboard, not be covered in the inside by a\nharder substance (such as a polymer or other agent) and then the now \"hard\"\nbillboard would be a now giant docking structure/space dock/station??\n\nOr am I missing something here.. (probably am!?)\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10383, "properties": {"category": "comp.graphics", "text": "From: scornd7@technet.sg (Tang Chang Thai)\nSubject: Re: InterViews graphics package\nNntp-Posting-Host: solomon.technet.sg\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 9\n\nRene S. Dutch student (renes@ecpdsharmony.cern.ch) wrote:\n\n: I'm trying out the C++ graphics package InterViews. Besides the man pages\n: on the classes, I haven't got any documentation. Is there anything else\n: around? Furthermore, can anyone send me a (small!) example program\n: which shows how to use these classes together ? I would be very gratefull...\n\nYou might want to try comp.windows.interviews.\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10384, "properties": {"category": "rec.autos", "text": "From: tedebear@leland.Stanford.EDU (Theodore Chen)\nSubject: Re: 1993 Infiniti G20\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 14\n\n>In article <78834@cup.portal.com> carl_f_hoffman@cup.portal.com writes:\n>>2) There is a special deal where I can get an Infinity G20, fully\n>>   loaded, at dealer cost (I have check this out and the numbers match\n>>   up). They are doing this because they are releasing and update mid-1993\n>>   version (includes dual air-bags) and want to get rid of their old 1993's.\n\nis this really the dealer's cost?  did you get the dealer's cost by\nlooking at the invoice?  there may be factory to dealer incentives.\ni'd check this out, since i have trouble believing that a dealer would\nsell a car to me at his cost.\n\ndealer invoice is not necessarily the dealer cost.\n\n-teddy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10385, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: charles@tinman.dev.prodigy.com ()\nSubject: Re: Can I Change \"Licensed To\" Data in Windows 3.1?\nNntp-Posting-Host: tinman\nOrganization: Prodigy Services Company, White Plains, NY\nLines: 11\n\nHave you tried re-installing the software?   Otherwise I would be dubious about\nsimple ways to change that screen. Is it not designed to be an embarassment to\nwould be pirates?\n\n-Charles\n\n-- \n Charles Emmons        | charles@trintex.uucp         | These opinions are\n Prodigy Services Co.  | charles%trintex@uunet.uu.net | mine alone, unless\n White Plains NY 10601 | Voice 914-993-8856           | you would like to\n PRODIGY ID - KJRD82A  | FAX   914-993-8659           | share them.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10386, "properties": {"category": "rec.motorcycles", "text": "From: nrmendel@unix.amherst.edu (Nathaniel Mendell)\nSubject: Re: Recommendation for a front tire.\nOrganization: Amherst College\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 11\n\nHey folks--\n\nI've got a pair of Dunlop sportmax radials of my ZX-10, and they've been\nvery sticky (ie no slides yet), but all this talk about the Metzelers has\nme wondering if my next set should be a Lazer comp K and a radial Metzeler\nrear...for hard sport-touring, how do the choices stack up?\n\nNathaniel\nZX-10\nDoD 0812\nAMA\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10387, "properties": {"category": "sci.space", "text": "From: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nSubject: Re: Vulcan? No, not Spock or Haphaestus\nOrganization: NASA Langley Research Center\nLines: 16\nDistribution: world\nReply-To: C.O.EGALON@LARC.NASA.GOV (CLAUDIO OLIVEIRA EGALON)\nNNTP-Posting-Host: tahiti.larc.nasa.gov\n\n> Another legend with the name Vulcan was the planet, much like Earth,\n> in the same orbit\n\nThere was a Science fiction movie sometime ago (I do not remember its \nname) about a planet in the same orbit of Earth but hidden behind the \nSun so it could never be visible from Earth. Turns out that that planet \nwas the exact mirror image of Earth and all its inhabitants looked like \nthe Earthings with the difference that their organs was in the opposite \nside like the heart was in the right side instead in the left and they \nwould shake hands with the left hand and so on...\n\n C.O.EGALON@LARC.NASA.GOV\n\nC.O.Egalon@larc.nasa.gov\n\nClaudio Oliveira Egalon\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10388, "properties": {"category": "rec.autos", "text": "From: ssave@ole.cdac.com (The Devil Reincarnate)\nSubject: Re: Was \"Re: Safety\": From how far can you see a car ?\nOrganization: CDAC, WA\nDistribution: na\nLines: 95\n\nIn article <C4rvKM.367@plato.ds.boeing.com> simnet@plato.ds.boeing.com (Mark R Poulson) writes:\n>ssave@ole.cdac.com (The Devil Reincarnate) writes:\n>> You will be surprised at the number of people who forget their glasses\n>> while driving.  And then there are the people who just plain don't get\n>> their eyes checked once a year.\n>\n>As someone who has lousy vision, I can see objects at a distance without\n>my glasses. However, they are quite fuzzy and I may not be able to make\n>out the details. But I can certainly tell that SOMETHING is there.\n\n\n  I won't argue too much about anything.  I am probably one of those that \nthink that we can't have enough safety on the roads.  I would gladly \nsacrifice distractions (as you call it), than someone having trouble seeing\ndanger earlier.  One saved life justifies more than my lifetime of \"distractions\"\nfor me.\n\n\n>>  And then there is dawn and dusk.  When your eyes have not yet adjusted\n>> to the poor light.  And there are those who drive black/grey cars. And\n>> then there is the case where you are driving down a two-way one lane \n>> road, and someone is overtaking cars, and coming the opposite direction \n>> doesn't see you because your lights are not on. Or vice versa.  At 60mph, \n>> that is quite a small reaction time.  But of course, we are too macho to \n>> think we are invincible and can react faster than that.... Only the poor \n>> sod who you didn't see might not have a normal life ever...\n>\n>I worked out the reaction time in a previous post and its PLENTY, even for\n>an 80 year old grandma, as long as speeds are in the 60 MPH range or less.\n>If you or some other driver is going way faster than that, then be careful.\n>\n>As always, you are responsible for your driving actions. If you pull out to\n>pass and crash into someone (for whatever reason) its YOUR fault. If you can't\n\n\n   Problem is that, I may just kill the guy. I agree that I would be at fault,\nand I will have my license revoked, why, I might even go to the gas chamber.\nBut the fact still remains that the guy is dead.  Someone died because I\nwas too stingy to put on my lights. \n\n\n>see a damn thing, then you shouldn't be driving -- lights fail, fallen trees\n>or rocks don't have lights, etc....  I maintain that headlight strength\n\n\n   The ratio of the probability of fallen trees/rocks on the roads to \noncoming traffic is too low to even be considered.  The difference is also\nworking on what we *know* could happen, to what *might* happen.\n\n\n>running lights are not necessary for motorists who drive around 60MPH. It may\n>be a good idea to force the running or headlights on when you turn your\n>windshield wipers on, but only because some people are too stupid to do so.\n>If you crash into one of those idiots, you have to fight it out in court to\n>show his neglegence (if you can even prove it).\n\n\n>>  Just out of curiosity, how much gas-milage do you loose when you put\n>> your lights on?  And how much do you reduce the life of your head-lamps?\n>> And what is the cost of your headlamps anyway?\n>\n>Mileage is certainly reduced, but by a very very small amount (probably\n>about 110 watts for head and running lights). This is an extra 1/7 horsepower\n>that must be made by the engine. It may be that this will cost you around two \n>gallons a year. But times 200 million cars, that's a lot of gas.\n\n  Compared to the number of gallons of gas consumed by those 200 million cars,\nit is miniscule! \n\n  Whatever.....  'tis a pity I have to share the same roads with a person\nnot concerned with safety.\n\n-S\nssave@ole.cdac.com\n\n\n>Lamp life is measured in hours. So if you normally drive in half daylight and\n>half night, your lamps will have to be replaced twice as often. Headlamps\n>only cost about $10US for most halogen lamps.\n>\n>The cost to the individual is trivial and to me is not the issue. What I\n>don't like is the distractions all these cars with headlights cause. I don't\n>need to constantly see the headlights of the vehicle behind me. I don't need\n>to see the headlights of every gosh darn car for a mile down the road. These\n>lit up cars make non-illuminated things LESS visible (like pedistrians and\n>bikes). Hopefully we're not going to mandate DRL's for people and bikes \n>too.\n>\n>A stream of taillights is tolerable as are the orange front running lights.\n>This is certainly sufficient for other people to see you (if they look) and\n>doesn't distract me nearly as much as full power headlights.\n>\n>\t\tMark\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10389, "properties": {"category": "sci.space", "text": "From: dietz@cs.rochester.edu (Paul Dietz)\nSubject: Re: Commercial mining activities on the moon\nOrganization: University of Rochester\nLines: 31\n\nIn article <STEINLY.93Apr20145301@topaz.ucsc.edu> steinly@topaz.ucsc.edu (Steinn Sigurdsson) writes:\n\n> Why Paul, it's obvious.\n> Once chlorine chemistry has been banned on Earth,\n> as is being advocated by some groups, Ti prices will\n> sharply increase (we are of course not allowed to\n> assume any developments in Ti processing).\n> Lunar Ti will then be eminently competitive for\n> the trendy jewelry market and certain applications\n> of National Importance \n>\n> :-) :-) :-) \n\nWell, there already is a sulfate process for TiO2 purification.  The\nchlorine process is cleaner, however, and for that reason is achieving\ndominance in the marketplace.\n\nMost Ti is used in pigment, btw (as the oxide), where it replaced\nwhite lead pigment some decades ago.  Very little is reduced to the\nmetal.\n\n> Seriously, I'd say there is a flaw in Gary's analysis\n> in that he assumes an export oriented economy, maybe\n> the lunatics will just want some native Ti for local\n> use...\n\nWhich merely evades the issue of why those lunatics are\nthere at all (and, why their children would want to stay.)\n\n\tPaul F. Dietz\n\tdietz@cs.rochester.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10390, "properties": {"category": "comp.windows.x", "text": "From: support@qdeck.com (Technical Support)\nSubject: Re: DESQview/X on a PC?\nOrganization: Quarterdeck Office Systems, Santa Monica CA\nLines: 61\n\nIn article <1qtk84$rn5@picasso.cssc-syd.tansu.com.au> gpatapis@boyd.tansu.com.au writes:\n>In article 14595639@wl.aecl.ca, harrisp@wl.aecl.ca () writes:\n>>I use DESQview/X and I think it is great. Where it really shines (IMHO) is\n>>to let unix users log into a pc and run dos and windows applications with\n>>the display going to their screens.\n>>You'll need to get:\n>>DESQview/X v 1.1\n>>DESQview/X v 1.1                           $275 suggested retail\n>>DESQview/X to Other X Systems v 1.1        $200 suggested retail\n>>\n>>You also must be running a supported network (FTP softwares PCTCP,\n>>Novell Lan workplace for dos, Sun Microsystems PC-NFS, Beame and WHiteside,\n>>Wollongong pathway TCPIp or HP Microsoft Lan Manager)\n>>\n>>if you don't have any of this network stuff, Quarterdeck will give you a\n>>copy of Novell TCPIP transprot for dos with the Network manager.\n>>\n>>You can get more info by sending email to (appropriately) info@qdeck.com.\n\nActually, info@qdeck.com is our customer service department. If you have\ntechnical questions, you can write to support@qdeck.com.\n\n>>In my opinion, if you want to have other people logging in and running\n>>applications at your pc, you'll want to have a 486 33 with 16 Megs of RAM.\n>>Also, the Xwindows software in DESQviewX really seems to like an ET 4000\n>>(TSENG Labs chipset) based graphics card. Personally, I found that things\n>>ran better with a SCSI drive in the pc than with ESDI drives, but that is\n>>my experience only\n>\n>What sort of traffic is generated with the X-calls?  I am curious to find\n>out the required bandwidth that a link must have  if one machine running\n>DV/X is supporting multiple users (clients) and we require adequate response\n>time.  Anyone have any ideas ??  \n\nI expect the limiting factor will be your server machine, not the network\nitself. To give you a real-world example, here at Quarterdeck we have\nroughly 100 people using DVX to talk to a bunch of unix boxes, novell\nfile servers, and each other. It's not _too_ much of a load on our\nEthernet (with maybe 4 concentrators, so you have 20-30 people on each\nsegment). If you had a badly loaded net, or the apps you wanted to run\nwere very network intensive, you could run into some slowdowns.\n\nBut the biggest problem would be the machine itself. Say you have a 486\n33 with plenty of ram and a fast hard disk and network card. If you have\n10 people running programs off it, you're going to see some slowdowns\nbecause you're now on (effectively) a 3.3 MHz 486. Of course, DVX will\nattempt to see if tasks are idle and make sure they give up their time\nslice, but if you have 10 working programs running, you'll know it.\n\nHaving said that, if you can tweak the programs being run (by adding\nin calls to give up time slices when idle and that sort of\nthing), you could probably run 15-20 people on a given machine before\nyou started seeing slowdowns again (this time from network bandwidth).\nIt all really depends on what the programs are doing (ie. you're going\nto see a slowdown from X-bandwidth a lot sooner if your apps are all\ndoing network things also...)\n-- \n       Quarterdeck Office Systems - Internet Support - Tom Bortels\n Pricing/Ordering : info@qdeck.com  |  Tech Questions : support@qdeck.com\n  BBS: (310) 314-3227 * FAX: (310) 314-3217 * Compuserve: GO QUARTERDECK\n   Q/Fax: (310) 314-3214 from touch-tone phone for Technotes On Demand!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.487+0000", "event": "documents", "entityId": 10391, "properties": {"category": "comp.windows.x", "text": "From: Iris_-_Smith@cup.portal.com\nSubject: Re: Drawing Lines (inverse/xor)\nOrganization: The Portal System (TM)\n  <1993Apr21.111919.5281@alf.uib.no> <DRAND.93Apr21114830@spinner.osf.org>\nLines: 3\n\nYou can also set the Foreground to the XOR of the foreground and background\ncolors:  XSetForeground(..., fg ^ bg);    This works great for me (at least\nwith TrueColor visuals).\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10392, "properties": {"category": "sci.electronics", "text": "From: klink@cbnewsl.cb.att.com (steven.r.klinkner)\nSubject: Beginner's RF ???\nOrganization: AT&T Bell Laboratories\nDistribution: na\nLines: 14\n\nCan anybody recommend a good, application-oriented beginner's reference\nto RF circuits?  \n\nI am pretty good on theory & know what different types of modulation mean, \nbut don't have a lot of practical experience.  A book detailing working\ncircuits of different types (modulation, power, frequency, what is legal,\nwhat is not, et cetera), would be very helpful.\n\nThanks.\n\n-----------------------------------------------------------------------------\nSteve Klinkner                AT&T Bell Labs               srk@boeing.att.com\n                                                           att!boeing!srk    \n-----------------------------------------------------------------------------\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10393, "properties": {"category": "sci.med", "text": "From: andersom@spot.Colorado.EDU (Marc Anderson)\nSubject: Miracle Berries anyone?\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 47\n\n[From Kalat, J.W.. (1992):  _Biological Psychology_. Wadsworth Publishing Co.\nBelmont, CA.  Pg. 219.  Reproduced without permission.]\n\n\n\nDigression 6.1:  Miracle Berries and the Modification of Taste Receptors\n\nAlthough the _miracle berry_, a plant native to West Africa is practically\ntasteless, it temporarily changes the taste of other substances.  Miracle\nberries contain a protein, _miraculin_, that modifies sweet receptors in\nsuch a way that they can be stimulated by acids (Bartoshuk, Gentile, \nMoskowitz, & Meiselman, 1974).  If you ever get a chance to chew a miracle\nberry (and I do recommend it), for about the next half an hour all acids \n(which are normally sour) will taste sweet.  They will continue to taste\nsour as well.\n\nMiraculin was, for a time, commercially available in the United States as a\ndiet aid.  The idea was that dieters could coat their tongue with a miraculin\npill and then eat and drink unsweetened, slightly acidic substances.  Such\nsubstances would taste sweet without providing many calories.\n\nA colleague and I once spent an evening experimenting with miracle berries.\nWe drank straight lemon juice, sauerkraut juice, even vinegar.  All tasted\nextremely sweet.  Somehow we forgot how acidic these substances are.  We \nawoke the next day to find our mouths full of ulcers.\n\n[... continued discussion of a couple other taste-altering substances ...]\n\n\nRefs:  \n\nBartoshuk, L.M., Gentile, R.L., Moskowitz, H.R., & Meiselman, H.L.  (1974):\n   Sweet taste induced by miracle fruit (_Synsephalum dulcificum_). \n   _Physiology & Behavior_.  12(6):449-456.\n\n\n-------------\n\n\nAnyone ever hear of these things or know where to get them?\n\n\n-marc\nandersom@spot.colorado.edu\n\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10394, "properties": {"category": "sci.space", "text": "From: jmcocker@eos.ncsu.edu (Mitch)\nSubject: *** HELP  I NEED SOME ADDRESSES ***\nOriginator: jmcocker@c00137-100lez.eos.ncsu.edu\nReply-To: jmcocker@eos.ncsu.edu (Mitch)\nOrganization: North Carolina State University, Project Eos\nLines: 21\n\n\nHi all,\n\n    I'm trying to get mailing addresses for the following\ncompanies.  Specifically, I need addresses for their personnel\noffices or like bureau.  The companies are:\n\n\t- AMROC\n\t- Orbital Sciences Corp. (sp?)\n\t- Spacehab, Inc.  (I know this one is somewhere in \n\t\t \t   Seattle, WA, or at least part of it is.)\n\t- Space Industries, Inc.  (Somewhere in Houston)\n\t- Space Enterprises Inc.\n\nIf anybody could point me in the right direction on this, I\nwould be most appreciative.  I prefer an email response, but I\nwill post a summary if sufficient interest exists.\n\nThanks,\n\nMitch-------------------------------->jmcocker@eos.ncsu.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10395, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: moor9881@mach1.wlu.ca (Dwayne Moore u)\nSubject: SOUND BLASTER ver 1.5 UNDER WINDOWS 3.1\nX-Newsreader: TIN [version 1.1 PL6]\nOrganization: Wilfrid Laurier University\nLines: 35\n\n[ Article crossposted from comp.speech,comp.sys.ibm.pc.soundcard,comp.os.linux ]\n[ Author was MARIO LAURETTI ]\n[ Posted on Mon, 5 Apr 1993 21:44:24 GMT ]\n\nI Have a Sound Blaster ver 1.5\n\nWhen I try to install driver ver 1.5 (driver that comes with window 3.1)\nIt tell me to upgrade my card first!!!????\n\nNow, I have found new drivers from Creative labs.\n\nBut I have problems installing it:\n\nAfter removing the vsbd.386 (old version that come in windows)\nAfter installing Creative Sound Blaster - MIDI Synthesizer\n\nI try to install Creative Sound Blaster 1.5 Wave...\n\nBut when I am in the menu: Add Unlisted or Updated Driver\nand double click on this driver, I have this error:\n\n--------------------------Driver Error---------------------------\n\nCannot load Creative Sound Blaster 1.5 Wave and MIDI driver. The driver file\nmay be missing. Try installing the driver again, or contact your system\nadministrator.\n\nYes, yes, yes, I have read the README.1st and try every thing!\n\ncan somebody help me??\n\n\nMario Laureti\n\ninternet: laurm00@tohi.dmi.usherb.ca\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10396, "properties": {"category": "sci.space", "text": "From: pgf@srl03.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: Univ. of Southwestern Louisiana\nLines: 28\n\nmsb@sq.sq.com (Mark Brader) writes:\n\n\n>Thanks again.  One final question.  The name Gehrels wasn't known to\n>me before this thread came up, but the May issue of Scientific American\n>has an article about the \"Inconstant Cosmos\", with a photo of Neil\n>Gehrels, project scientist for NASA's Compton Gamma Ray Observatory.\n>Same person?\n\nNo. I estimate a 99 % probability the Gehrels referred to\nis Thomas Gehrels of the Spacewatch project, Kitt Peak observatory.\n\nMaybe in the 24th century they could do gamma ray spectroscopy on\ndistant asteroids with an orbiting observatory, but here in the\nprimitive 20th we have to send a probe there to get gamma ray\nspectroscopy done.\n\n>Mark Brader, SoftQuad Inc., Toronto\t\"Information! ... We want information!\"\n>utzoo!sq!msb, msb@sq.com\t\t\t\t-- The Prisoner\n\nYou have the info on Mayan Television yet?\n\n>This article is in the public domain.\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10397, "properties": {"category": "soc.religion.christian", "text": "From: hudson@athena.cs.uga.edu (Paul Hudson Jr)\nSubject: Re: Sabbath Admissions 5of5\nOrganization: University of Georgia, Athens\nLines: 36\n\nIn article <Apr.19.05.14.21.1993.29291@athos.rutgers.edu> dlecoint@garnet.acns.fsu.edu (Darius_Lecointe) writes:\n\n>You cannot show, from scripture, that the weekly Sabbath is part of the\n>ceremonial laws.   Before you post a text in reply investigate its context.\n\nFirst of all, \"ceremonial law\" is an extraScriptural term.  It is sometimes\nused as a framework to view Scripture.  But if you look at Collosions,\nwithout going into it with the assumption that the Sabbath cannot be \na ceremonial law, you will see that it does refer to the sabbath.\n\nPaul writes in Collosions 2:14-17 how that Christ nailed the laws that were\nagainst us to His cross, and therefore we should not be judged in what\nwhat food we eat, what we drink, the keeping of new moons and holy days,\nor the keeping of the sabbath.\n\nThe word for sabbath in this verse is \"sabbaton\" and is used throughout the\nNew Testament to refer to the 7th day.  If there is any Scripture from\nwhich we get the idea of the ceremonial law, this is one of them, and the\nsabbath is listed among the ceremonial laws.\n\nIf one goes into this with the fundamental assumption \"the sabbath cannot\nbe a ceremonial law\" then he will have to find some way around it, like\nsaying that this can only refer to the other sabbath holy days besides the\n7tH day, Because \"the sabbath cannot be a ceremonial law.\"  But\nPaul is very careful in his letters to add some kind of parenthetcal \nstatement if there is anything that can be seen as a liscence to sin\nin his writings.\n\nAlso, why is the sabbath absent from the epistles (except for Hebrews 4, which\ntalks about the rest that comes through faith?)  Surely it would have\nbeen a big problem for first century Christians living in a society\nthat did not rest on the 7th day.  Especially slaves. Many new converst were\nslaves.  It would have been difficult for slaves to rest on the sabbath\nif it had been mandatory.  Why is there no mention of this in the epistles?\n\nLink Hudson.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10398, "properties": {"category": "talk.politics.mideast", "text": "From: amehdi@src.honeywell.com (Hossien Amehdi)\nSubject: Re: Reasons : was Re: was: Go Hezbollah!!\nNntp-Posting-Host: tbilisi.src.honeywell.com\nOrganization: Honeywell Systems & Research Center\nLines: 13\n\nIn article <1993Apr15.160224.15940@unocal.com> stssdxb@st.unocal.com (Dorin Baru) writes:\n...\n>Now, about tough talk and arrogance, we are adults, aren't we ? Do you listen \n>to tough talk of american politicians ? or switch  the channel ? \n...\n\nI guess, I didn't make my point clear.  In the case of Israel government, it \nis not only tough talk for its intimidation policy.  After all, not many\npeople are intimidated just by talking.  Here how it goes: tough talks,\nfollowed by aggressive actions followed by taking pride of those actions and\nbragging about them.  \n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10399, "properties": {"category": "talk.politics.misc", "text": "From: arf@genesis.MCS.COM (Jack Schmidling)\nSubject: The DEFAMATION LEAGUE\nOrganization: MCSNet Contributor, Chicago, IL\nLines: 235\nDistribution: world\nNNTP-Posting-Host: localhost.mcs.com\n\n \n The following was posted and no doubt retyped by Yigal Ahrens and considering \n the importance of the issue and the almost total blackout except in \n California, I am reposting to other appropriates groups.\n \n \n \n From LA Times, Friday, April 9, 1993.  P. A1.\n \n EVIDENCE OF ADL SPY OPERATION SEIZED BY POLICE\n \n By Richard C. Paddock, Times staff writer\n \n SAN FRANCISCO -- Police on Thursday served search warrants on the\n Anti-Defamation League here and in Los Angeles, seizing evidence of a\n nationwide intelligence network accused of keeping files on more than\n 950 political groups, newspapers and labor unions and as many as\n 12,000 people.\n \n Describing the spy operation in great detail, San Francisco\n authorities simultaneously released voluminous documents telling how\n operatives of the Anti-Defamation League searched through trash and\n infiltrated organizations to gather intelligence on Arab-American,\n right-wing and what they called \"pinko\" organizations.\n \n Representatives of the Anti-Defamation League, a well-known\n organization in the U.S. Jewish community dedicated to fighting\n anti-Semitism, declined detailed comment Thursday but denied breaking\n any laws.\n \n Police allege that the organization maintains undercover operatives to\n gather political intelligence in at least seven cities, including Los\n Angeles and San Francisco.\n \n Groups that were the focus of the spy operation span the political\n spectrum, including such groups as the Ku Klux Klan, the White Aryan\n Resistance, Operation Rescue, Greenpeace, the National Assn. for the\n Advancement of Colored People, the United Farm Workers and the Jewish\n Defense League.  Also on the list were Mills College, the board of\n directors of San Francisco public television station KQED and the San\n Francisco Bay Guardian newspaper.\n \n People who were subjects of the spy operation included former\n Republican Rep. Pete McCloskey, jailed political extremist Lyndon H.\n LaRouche and Los Angeles Times foreign correspondent Scott Kraft, who\n is based in South Africa.\n \n Authorities said much of the material collected by the groups was\n confidential information obtained illegally from law enforcement\n agencies.  They also alleged that data on some individuals and\n organizations was sold separately to the South African government.\n \n In addition to allegations of obtaining confidential information from\n police, the Anti-Defamation League could face a total of 48 felony\n counts for not properly reporting the employment of its chief West\n Coast spy, Roy Bullock, according to the affidavit filed to justify\n the search warrant.\n \n The Anti-Defamation League disguised payments to Bullock for more than\n 25 years by funneling $550 a week to Beverly Hills attorney Bruce I.\n Hochman, who then paid Bullock, according to the documents released in\n San Francisco.  Hochman, a former president of the Jewish Federation\n Council of Greater Los Angeles and one of the state's leading tax\n attorneys, will be out of the city until late next week and could not\n be reached for comment, his office said.\n \n Until 1990, Hochman, a former U.S. prosecutor, also was a member of a\n panel appointed by then-Sen. Pete Wilson to secretly make initial\n recommendations on new federal judges in California.  Hochman is a\n former regional president of the Anti-Defamation League.\n \n The league, which initially cooperated with police, has denied\n repeatedly that its intelligence-gathering operation broke any laws.\n League officials will not confirm or deny whether Bullock was an\n employee and have said they simply traded information with police\n departments about people who might be involved in hate crimes.\n \n But in an affidavit filed to obtain warrants for Thursday's searches,\n San Francisco police alleged that \"ADL employees were apparently less\n than truthful\" in providing information during an earlier search\n conducted without a warrant.\n \n David Lehrer, executive director of the Los Angeles ADL office, said\n the organization has not violated the law.  \"There is nothing\n nefarious about how we operate or what we have done,\" he said.  \"Our\n record speaks for itself.\"\n \n The police affidavit contends that Lehrer had sole control of a secret\n fund used to pay for \"fact-finding operations.\"  Lehrer, according to\n the documents, signed checks from the account under the name L.\n Patterson.\n \n An ADL official said the account was used to pay for subscriptions to\n a wide variety of extremist publications that might balk at sending\n them directly to the Anti-Defamation League.\n \n Bullock, 58, who has been collecting intelligence for the ADL for\n nearly 40 years, defended his efforts during a lengthy interview with\n San Francisco police.  He said that he gathered names from many\n sources and entered them into his computer under headings such as\n \"Skins\" and \"Pinkos,\" but that did not necessarily mean that they were\n under surveillance.\n \n \"I might never see or call up on 99% of them again,\" Bullock said.\n \"And it doesn't mean anything that they're in the files.  It's not a\n threat to anyone's civil rights that a name appears in my files under,\n say, 'Pinko.'\"\n \n In recent years, Bullock worked closely with San Francisco Police\n Officer Tom Gerard, who fled to the Phillippines last fall after he\n was questioned by the FBI in the case.\n \n A former CIA employee, Gerard supplied Bullock with criminal records\n and Department of Motor Vehicles information such as home addresses,\n vehicle registration, physical characteristics and drivers license\n photographs.\n \n Using files gathered for the Anti-Defamation League, Gerard and\n Bullock also provided information to the South African government,\n receiving $16,000 over four years, the documents show.\n \n The file on Times staff writer Kraft, which was apparently sold to the\n South African government, provides some insight into the hit-and-miss\n nature of the spy operation.\n \n The file notes that Kraft's articles \"appear frequently in The Times\n and are well researched and written,\" but little else about the file\n is accurate.  The brief entry confuses The Times' Kraft with another\n Scott Kraft and provides the South African government with the wrong\n Kraft's physical description, photograph and other personal\n information.\n \n Nevertheless, the documents provide illuminating details of how\n Bullock for decades infiltrated all manner of organizations, from\n skinheads to left-wing radicals, searching regularly through the trash\n of target groups.  Using Anti-Defamation League funds, he also ran his\n own paid informants under code names such as \"Scott\" and \"Scumbag.\"\n \n He worked closely with police officers up and down the coast,\n exchanged information with the FBI and worked with federal agencies,\n including the Bureau of Alcohol, Tobacco and Firearms.\n \n It was Bullock's work as a paid informant for the FBI -- while spying\n on behalf of the Anti-Defamation League and the South African\n government -- that proved his undoing. The FBI learned that he was an\n agent of a foreign government and began investigating, leading to the\n probe of the Anti-Defamation League's intelligence network.  The\n Anti-Defamation League employed undercover operatives to gather\n information in Los Angeles, San Francisco, New York, Washington,\n Chicago, St. Louis and Atlanta, according to the affidavit and\n investigators.  Joining San Francisco police in searching league\n offices and a Los Angeles bank were investigators from the office of\n San Francisco Dist. Atty. Arlo Smith and the state Franchise Tax\n Board.  The Los Angeles Police Department, which earlier refused to\n cooperate with the investigation, was informed of the searches in Los\n Angeles but not invited to participate.  Investigators suspect that\n some confidential information in the Anti-Defamation League files may\n have come from Los Angeles police officers.\n \n \n \n From Los Angeles Times, Saturday, April 10, 1993.  P. A23.\n \n ADL VOWS TO COOPERATE WITH SPY INVESTIGATION\n \n By Richard C. Paddock, Times staff writer.\n \n SAN FRANCISCO -- The Anti-Defamation League defended its record as a\n civil rights group Friday and said it will cooperate with authorities\n who are investigating whether the organization collected confidential\n police information on citizens and groups.\n \n But San Francisco Dist. Atty. Arlo Smith said that Anti-Defamation\n League employees involved in intelligence gathering could face many\n felony counts of receiving confidential files, eavesdropping, tax\n violations and conspiracy.\n \n Police have accused the Anti-Defamation League of not being truthful\n about its spying operations, which collected information on more than\n 12,000 individuals and 950 political groups across the political\n spectrum.\n \n Hundreds of pages of documents released by prosecutors Thursday show\n that the ADL maintained a nationwide intelligence network and kept\n files on political figures.\n \n Even so, Smith suggested that if the Anti-Defamation League shut down\n its spy operation, prosecutors would take that into account when\n deciding what charges to file.\n \n In a statement released in Washington, National Director Abraham H.\n Foxman described the ADL as \"a Jewish defense agency which has fought\n to protect all minorities from bigotry and discrimination for 80\n years.\"\n \n Foxman said the organization is regarded as a credible source on\n extremist groups and has a tradition of routinely providing\n information to police, journalists, academics, government officials\n and the public.  It has never been the policy of the ADL to obtain\n information illegally, he said.\n \n \"Like other journalists, in order to protect the confidentiality and\n physical safety of its sources, ADL will not comment on the nature or\n identity of any source of information,\" Foxman said.\n \n The Anti-Defamation League refused to acknowledge that one of its\n longtime employees, Roy Bullock, was anything more than \"a private\n individual who is alleged to be an ADL 'informant.'\"\n \n Among the documents released by prosecutors were detailed statements\n showing how the ADL funneled weekly payments to Bullock through\n Beverly Hills attorney Bruce I. Hochman.\n \n \"Roy would penetrate organizations and needed this arrangement to be\n distanced from ADL,\" Hochman told a San Francisco police investigator.\n Hochman could not be reached Friday at his home or office for comment.\n \n Despite the Anti-Defamation League's assertion that it will cooperate\n with authorities, San Francisco police said the group did not turn\n over all pertinent documents during a voluntary search of the group's\n offices in Los Angeles and San Francisco last fall.\n \n A second round of searches Thursday, this time with search warrants,\n produced a vast quantity of records, primarily dealing with financial\n transactions, Smith said.  Further searches may be necessary and it\n will be at least a month before any charges are filed, he said.\n \n \"The investigation, of course, will go wherever the facts lead us,\"\n the district attorney said.\n --\n Yigal Arens\n USC/ISI                                                TV made me do it!\n arens@isi.edu\njs\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10400, "properties": {"category": "rec.sport.baseball", "text": "From: rdetweil@boi.hp.com (Richard Detweiler)\nSubject: Re: Torre: The worst manager?\nOrganization: Hewlett Packard - Boise Printer Division\nLines: 75\n\nFrom another not-so-distressed-but-still-wondering-about-a-few-things\nCardinal fan:\n\nIn article <93095@hydra.gatech.EDU> gt7469a@prism.gatech.EDU (Brian R. Landmann) writes:\n>Joe Torre has to be the worst manager in baseball.\n>\n\tHe's not the greatest - this is true.\n>\n>For anyone who didn't see Sunday's game,\n>\n\tI saw it.\n>\n>With a right hander pitching he decides to bench Lankform, a left handed\n>hitter and play jordan and gilkey, both right handers.\n>\n\tLankford was hurt, although the announcer said he told Torre he\n\tcould pinch hit if they needed him to.\n>\n>Later, in the ninth inning with the bases loaded and two outs he puts\n>lankford, a 300 hitter with power in as a pinch runner and uses Luis\n>Alicea, a 250 hitter with no power as a pinch hitter.  What the Hell\n>is he thinking.\n>\n\tI wondered the same thing.  But giving Joe the benefit of the \n\tdoubt, I'd say he was thinking that Lankford is hurt enough that\n\the didn't trust his ability to bat effectively but he wants his\n\tspeed on the bases so pinch run him.  Alicea I was completely\n\tconfused about.  Maybe he had a good record hitting against that\n\tparticular pitcher?  I don't know.  Anybody got an idea?\n>\n>Earlier in the game in an interview about acquiring Mark Whiten he commented\n>how fortunate the Cardinals were to get Whiten and that Whiten would be a\n>regular even though this meant that Gilkey would be hurt, But torre said\n>he liked Gilkey coming off the bench.  Gilkey hit over 300 last year,\n>what does he have to do to start, The guy would be starting on most every\n>team in the league.\n>\n\tWell, so far I haven't seen much to say Whiten shouldn't be playing\n\tbut it is too bad that Gilkey is the odd man out when they play \n\tJordan ahead of him.  That I don't quite understand.\n>\n>Furthermore, in Sundays game when lankford was thrown out at the plate, \n>The replay showed Bucky Dent the third base coach looking down the line\n>and waving lankford home, \n>\n\tYup, I looked for this on the replay too.  If I'm Joe Torre, I'm\n\tgoing to have a talk with Bucky after the game on that one.  He's\n\tgot Lankford at third with Todd Zeile I believe - a hot hitter - \n\tcoming up - there's no reason to risk giving Lankford the go sign \n\tin that situation unless he was sure the ball is going to the stands.  \n\tIt's his job to watch the play develop - he should have known Larkin \n\twas there to back up a bad throw.  That seemed inexcusable in my book.  \n\tBTW, I saw Dent do the same thing last year with Zeile rounding third \n\tand going into a sure out at home in a critical situation.  On the \n\treplay, there's Dent waving him around.  It looks like this might be a \n\tserious problem.  The Card's weren't good base runners at all last year \n\tand I wonder how much of the fault lies in the base coaching.\n\n>\n>I can't take this anymore\n>\n\tWell, I'm still hanging in there.\n\n\tGO REDBIRDS!!  WOOF, WOOF!!!\n\n>brian, a very distressed cardinal fan.\n>-- \n>\n>Brian Landmann                                            \n>Georgia Institute of Technology                           \n>Internet:gt7469a@prism.gatech.edu                       \n\nDick Detweiler\n\nrdetweil@hpdmd48.boi.hp.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10401, "properties": {"category": "rec.autos", "text": "From: drew@kinglear.cs.colorado.edu (Drew Eckhardt)\nSubject: Re: Changing oil by self.\nKeywords: n\nNntp-Posting-Host: kinglear.cs.colorado.edu\nOrganization: University of Colorado at Boulder\nDistribution: usa\nLines: 27\n\nIn article <1993Apr15.160922.8797@magnus.acs.ohio-state.edu> sorlin@magnus.acs.ohio-state.edu (Steven J Orlin) writes:\n>\n>In article <1993Apr15.135514.29579@cbnewsj.cb.att.com> rdb1@cbnewsj.cb.att.com\n>(ronald.j.deblock..jr) writes:\n>\n>>You can avoid these problems entirely by installing an oil drain valve in\n>>place of the bolt.  I have one on both of my cars.  There have been no\n>>leaks in 210,000 miles (combined miles on both cars).\n>\n>Yes, but then someone would have no problem draining your oil in a parking lot.\n>\n>all they have to do is reach underneath, turn a valve, and forget the trip \n>home.\n\nMost cars have drain petcocks in the radiators, and I've never \nseen nor heard of a vandal opening one.  I imagine that there\nwould be an even lower risk with an oil plug because you have \nto crawl furthur under the car to open it.  \n\nCar vandals are usually real traditional in their methods, and do things\nthat don't get them dirty, like keying your car, dumping sand, sugar\nor mothballs in the gas tank, TPing it, etc.\n\n-- \nBoycott USL/Novell for their absurd anti-BSDI lawsuit. | Drew Eckhardt\nCondemn Colorado for Amendment Two.\t\t       | drew@cs.Colorado.EDU\nUse Linux, the fast, flexible, and free 386 unix       |  \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10402, "properties": {"category": "talk.politics.mideast", "text": "From: jar2e@faraday.clas.Virginia.EDU (Virginia's Gentleman)\nSubject: Re: was:Go Hezbollah!!\nOrganization: University of Virginia\nLines: 4\n\nWe really should try to be as understanding as we can for Brad, because it\nappears killing is all he knows.\n\nJesse\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10403, "properties": {"category": "rec.sport.baseball", "text": "From: dkeisen@leland.Stanford.EDU (Dave Eisen)\nSubject: Re: BOB KNEPPER WAS DAMN RIGHT!\nOrganization: Sequoia Peripherals, Inc.\nLines: 51\n\nWhy did I get sucked into this?\n\nIn article <1993Apr19.035406.11473@news.yale.edu> (Austin Jacobs) writes:\n>Don't you GUYS think so?  I mean, c'mon!  What the heck are women doing\n>even THINKING of getting into baseball.  They cause so many problems.  Just\n\nAssuming you're serious, I guess you'd be surprised to hear\nthat us GUYS don't think so. I would guess that a tiny fraction\nof 1% of the folks reading your post agree with it. I kind of\ndoubt that even you agree with it.\n\nI'm not going to go through your points one at a time, because, \nafter all, not many of them have anything at all to do with baseball.\n\nI'm only replying to this because you brought up Pam Postema, the\nAAA umpire who sued (is suing?) baseball on the grounds of sex\ndiscrimination because she wasn't promoted to the majors.\n\n>Jeez!  Look at Pam Postema.  Just because she's a woman, everybody on the\n>face of the earth thinks it's great that she's getting an opportunity to\n>ump.  If you even watched the games and had an IQ greater than that of\n>roast beef, you'd see that she is not nearly as good as most AAA umpires.\n\nI've never seen her ump a game. I have no first hand experience\nwith her ability as an umpire.\n\nBut I have seen her on talk shows. And her point seems to be\nthat she can call balls and strikes as well as any of the\numpires and she knows the rulebook better than most. It seems\nto me that she is missing the point and if that's how she sees\nthe role of umpires in the game, well I wouldn't promote her\neither.\n\nThe umpires primary role has nothing to do with calling baserunners\nsafe or out; hell, Joe Lundy could do that. Their primary function is\nto maintain order in the game, keep the game moving, and keep the\nplayers from trying to kill each other. \n\nUmpires have to be extremely tough people. That disqualifies most\nof us, both men and women. And if Ms. Postema thinks that she\ndeserves to be a major league umpire because of her command of\nthe rulebook, then I think that disqualifies her as well. Umpires\nneed to command the game; command of the rulebook is secondary.\n\n\n\n-- \nDave Eisen                               \"To succeed in the world, it is not\ndkeisen@leland.Stanford.EDU               enough to be stupid, you must also\nSequoia Peripherals: (415) 967-5644       be well-mannered.\" --- Voltaire\nHome:                (415) 321-5154  \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10404, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: tovecchi@nyx.cs.du.edu (tony vecchi)\nSubject: two questions\nOrganization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.\nLines: 14\n\n\nTwo questions:\n1: I'm trying to figure out how to access cmos advanced chip setting on a\nEISA motherboard (AIR) that has AMI bios..specifically I would like to set\nthe atclk or wait states or bus speed on this board, I can't seem to be\nable to do it..any help in this area would be greatly appreciated.\n\n2: I am looking for a phone number for WANGTEK tape drives, specifically I\nam looking for jumper settings on a 5099EN24 drive..\n\nThanks in advance.\nTony\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10405, "properties": {"category": "sci.crypt", "text": "From: zrepachol@cc.curtin.edu.au (Paul Repacholi)\nSubject: Re: What is going on?...\nLines: 17\nOrganization: Curtin University of Technology\nDistribution: inet\n\nIn article <1993Apr16.055100.1@cc.curtin.edu.au>, zrepachol@cc.curtin.edu.au (Paul Repacholi) writes:\n...\n> If you can't be bothered reading, get the video \"Manufacturing Consent\".\n> \n\nIn reply to mail queries; I don't know if a video is available yet. I asked\nabout a month ao and was told RSN.\n\nSeveral have also asked which of Chomskys books. My answer is ALL of them, and\nanything else you can get as well. How ever, due to irritations like the 24 hr\nday etc, I would say 'Manafacturing Conscent' first, them th last parts of\n'Detering Democracy' ie the bits about the \"domestic 3rd world\". Chilling.\n\nAnyone at MIT have a good St. Noam bibliography?\n\n~Paul\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10406, "properties": {"category": "sci.space", "text": "From: Wales.Larrison@ofa123.fidonet.org\nSubject: Commercial Space News #22\nX-Sender: newtout 0.08 Feb 23 1993\nLines: 666\n\nCOMMERCIAL SPACE NEWS/SPACE TECHNOLOGY INVESTOR NUMBER 22\n\n   This is number twenty-two in an irregular series on commercial \nspace activities.  The commentaries included are my thoughts on \nthese developments.  \n\n   Sigh... as usual, I've gotten behind in getting this column \nwritten.  I can only plead the exigency of the current dynamics in \nthe space biz.  This column is put together at lunch hour and after \nthe house quiets down at night, so data can quickly build up if \nthere's a lot of other stuff going on.  I've complied a lot of \ninformation and happenings since the last column, so I'm going to \nhave to work to keep this one down to a readable length.  Have fun! \n\nCONTENTS:\n1- US COMMERCIAL SPACE SALES FLATTEN IN 1993\n2- DELTA WINS TWO KEY LAUNCH CONTRACTS\n3- COMMERCIAL REMOTE SENSING VENTURE GETS DOC \"GO-AHEAD\"\n4- INVESTMENT FIRM CALLS GD'S SPACE BIZ \"STILL A GOOD INVESTMENT\" \n5- ARIANE PREDICTS DIP IN LAUNCH DEMAND\n6- NTSB INVESTIGATES PEGASUS LAUNCH OVER ABORTED ABORT\n7- ANOTHER PEGASUS COMPETITOR IS ANNOUNCED\n8- GEORGIA LAUNCH SITE DROPPED FROM PLANNING\n9- SPAIN'S CAPRICORNIA LAUNCHER STILL PROCEEDING\n10- PACASTRO SIGNS LAUNCH RESERVATION WITH SWEDISH SPACE CORP\n11- CHINA AND TAIWAN JOINT SATELLITE VENTURE REPORTED\n12- SOUTH KOREA ANNOUNCES NATIONAL MOVE INTO SPACE TECHNOLOGIES\n13- SPACE TECHNOLOGY INDEXES THROUGH MARCH\nFINAL NOTES\n  \nARTICLES\n--------------------------------------------------------------------\n1- US COMMERCIAL SPACE SALES FLATTEN IN 1993\n   The US Department of Commerce projects US commercial space sales \nwill remain flat in 1993, with current data showing only a 2 percent \ngrowth over 1992.  As published in \"US Industrial Outlook 1993\" \n(which was released in January), revenues from the 1993 US space \nbusiness are currently projected to be about $4,890 M. \n   In contrast to previous years when US commercial space sales had \nshown double digits growth rates, this year's projected results are \ndriven by the US satellite manufacturing industry, where sales are \nprojected to drop from 12 satellites worth $1,300 M in 1992 to 7 \nsatellites worth $ 670 M in 1993.  The US Industrial Outlook also \nprojects U.S. commercial launchers faces flat demand in coming year, \nand while predicting that 1993 revenues will increase 10 percent to \n$450 M, future sales will be \"adversely affected by the downward \nrevision in Department of Defense launch plans.\"                           \n   Offsetting flat launch revenues and satellite deliveries, \nrevenues for fixed and mobile satellite services are projected to \nincrease to $1,900 M, primarily driven by increased revenues from \nbroadcast and cable TV networks.  Similarly, remote sensing products \nand sales are projected to increase to $250 M in 1993 (up 15%). \n\n US COMMERCIAL SPACE REVENUES     1989  1990   1991 1992(r) 1993(e)\n Commercial satellites             900 1,000  1,100  1,300     670\n Satellite services                750   800  1,200  1,500   1,900\n   Fixed                          (700) (735)(1,115)(1,275) (1,520)\n   Mobile                          (50) ( 65)(   85)(  225) (  380)\n Satellite ground equip            790   860  1,350  1,400   1,560\n   Mobile equipment                (40)  (85)  (280)  (352)    ???\n Commercial launches               150   570    380    450     450\n Remote sensing data and services  125   155    190    215     250\n Private microgravity research lab  --    --     --     --      60\n                                 ===== =====  ======  =====   =====\n   TOTAL ANNUAL REVENUES         2,715 3,385   4,220  4,815   4,890\n        (r) = revised data for 1992   (e) = estimated data for 1993\n   [Commentary: This is the first look at how the US commercial \nspace industry is expected to do in 1993.  In general, not a bad \nreport -- with most of the bad news concentrated in the satellite \nmanufacturing area.  There, changes of only a few satellites worth \n$100 M or so apiece can substantially influence the annual \nprojection.  If we look forward over several years, this market \nsector should retain strong sales as US firms have been very \nsuccessful in regaining international market share in the satellite \nbusiness. \n   Furthermore, sales of satellite ground equipment should go up in \nthe next revision of this data, expected to be released about mid-\nyear.  Data on mobile satellite ground equipment sales (including \nsuch items as GPS receivers and portable satellite terminals) \nappears to be missing from the January data set.  DoC usually \npublishes a listing of  \"Space Business Indicators\" in mid-year, and \nthe next revision of commercial space revenues should be released \nthen.  I expect the revised revenues should easily top $5,000 M, if \nthe mobile satellite ground equipment are added back into the \nnumbers, and the year should show about a 10% overall market growth. \n   Looking beyond this year's data, future markets look quite \npromising.  The DoC projects satellite service revenues could top \n$3,000 M by 1995 if new mobile satellite services and direct \nbroadcasting are implemented as planned, and that mobile satellite \nstation sales are expected to continue to growth at 15-20 % per year \nthrough the mid 1990's.  My numbers are somewhat more pessimistic \nfor near-term market growth, but I agree the trend should be for \nsubstantial growth in US commercial space sales over at least the \nnext 5-10 years.  (My pessimism is due to more conservative \nassumptions on market capture and growth in LEO communications and \nsatellite direct broadcasting services.  I don't believe all of the \ncurrent players in the yet-to-be-born LEO communications satellite \nmarket and in the yet-to-be-proven direct broadcasting market will \nbe financial successes, nor that sales growth will be as explosive \nas currently projected.) \n   It should also be noted this year's DoC data is the first \nrelease to show revenues from privately funded microgravity research \nfacilities.  The $60 M shown in the Janurary data is primarily for \nthe Spacehab module, planned for launch in April on the Space \nShuttle, but also hidden in these numbers are the projected first \nsales from the COMET orbital launch and recovery experiment module.] \n\n2- DELTA WINS TWO KEY LAUNCH CONTRACTS\n   McDonnell Douglas Corporation, which builds and markets the Delta \nlaunch vehicle has won two important launch contracts.  Motorola \nInc. announced in mid February that it had selected the Delta to \nlaunch most of the satellites in the 66-satellite Iridium LEO \ncommunications constellation, and in mid April, McDonnell Douglas \nwas awarded the USAF Medium Launch Vehicle III contract. \n   The launch services contract with Motorola for the Iridium \nconstellation launch is for at launch of least 45 Iridium \nsatellites.  Another 21 satellites have been contracted to be \nlaunched by Khrunichev Enterprise in Russian on 3 Proton vehicle \nlaunches.  These 45 satellites planned for the Delta will be \nlaunched 5 at a time,  providing for at least 9 launches.  \nAdditional satellites in the Iridium constellation, such as a \nplanned on-orbit spares, may also be launched on Delta.  Although \ndetails of the launch services contract were reported to be \nnegotiation, and not yet final. \n   The USAF MLV contract also went to MDC, bidding a variant of \ntheir Delta II launcher.  This contract is only initially worth $7.5 \nmillion, but establishes a set of launch options for up to 36 \nlaunches, encompassing launches from 1996 through 2002.  These \nlaunches will deploy the next generation of the USAF's Global \nPositioning System Block IIR navigation satellites, plus other \nprograms.  First option for to meet the USAF launch options is \nexpected to be exercised this year, after which the USAF is expected \nto request launches of up to 6 Deltas per year for at least 6 years.  \nUnder this contract the USAF can also request \"launch on demand\" \nservices from MDC for the 1996-2002 time period, with a launch to \noccur within 40 days of the request. \n    [Commentary:  If these two contracts are fulfilled, they should \nprovide an excellent business base for MDC's Delta launch program \nthrough the turn of the century.  Combined, these two contracts have \na potential for about 45 launches, worth about $2,200 M to MDC, and \nsustaining a core business base of $300-400 M/year.  Other contracts \nfor international and commercial payloads, as well as for NASA \nMedium ELV-class payloads, will add to this business base -- keeping \nMDC as a viable commerical launch company. \n    However, it should be noted there are risk elements in these \ncontracts.  Motorola's Iridium LEO communications constellation has \nnot yet received a US Federal Communications Commission license for \noperation in the U.S., nor has Motorola lined up all the financing \nand financial partners for the Iridium venture.  Without these \napprovals or financial backing there will be no Iridium launches.  \nBut, hopefully, these uncertainties will be settled this year. \n   Similarly, the USAF MLV III program has been the target of \nseveral Congressional actions which have slowed the production of \nthe GPS Block IIR satellites and deleted the funding for the MLV III \nprogram in favor of the USAF NLS/\"Spacelifter\" program.  At this \ntime, while it appears the MLV III contract will be executed, future \nfunding for the MLV III and other USAF commercial launch contracts \nis being reconsidered as part of national space launch strategy \nreviews.  Some opinions expressed from within the Administration and \nCongress propose cancellation of all \"ELV upgrade\" programs \n(including the MLV programs) in favor of the proposed \"Spacelifter\" \nprogram.  Such opinions may have some weight in this year's budget \ndeliberations, particularly as DoD funds will be more difficult to \nfind in the shrinking US Defense budget.] \n \n3- COMMERCIAL REMOTE SENSING VENTURE GETS DOC \"GO-AHEAD\"\n   The first commercial license to operate a remote sensing \nsatellite was approved in early February by the US Department of \nCommerce's Office of Space Commerce.  A license was granted to \nWorldView Imaging Corporation of Oakland, California to build and \noperate a pair of LEO imaging satellites to provide multi-spectral \nimages of the Earth. \n   [Commentary:  There has been little data released on this venture \nby WorldView and the DoC, other than the announcement of the \noperating and construction license.  This was reported to be at the \nrequest of WorldView.  Most industry speculation identifies this new \nventure as a \"Star Wars\" spinoff, using SDI-type technology to \nprovide digital Earth sensing data, and heavily integrated into \ndigital GIS databases for remote sensing/GIS users.  Most probable \ncustomers for this service include exploration geologists, \nagricultural planners, and urban planners.  \n   It is noteworthy this is the first commercial venture under the \n1992 Land Remote Sensing Policy Act.  The Act, as passed last \nNovember, provides that remote sensing data gathered from private remote \nsensing craft may be sold to users at differing prices.  Prior to \nthis act, remote sensing data from all satellites had to be sold to \nall users at the same prices, and private remote sensing ventures \nwould have had to sell at the government-set Landsat data prices. \n   There are rumors of several other potential commercial remote \nsensing ventures working their way through the system at different \nstages of development.  I think the large Landsat and SPOT satellite \nsystems will provide the majority of the satellite remote sensing \ndata market for the next decade or so.  In contrast to these large, \ngovernment-sponsored remote sensing systems, smaller market ventures \nsuch as WorldView and others can exploit market niches and use \ninnovative technology, and I believe, can find profitability on the \nmargin.  I predict there may be some very interesting ventures \nappearing in the next year or so.] \n                 \n4- INVESTMENT FIRM CALLS GD'S SPACE BIZ \"STILL A GOOD INVESTMENT\" \n   Wall Street investment house Morgan Stanley thinks General \nDynamic's Space Systems Division could still be a moneymaker, \ndespite having failed in the last 3 Atlas launches.  In a recent \nanalyst's report Morgan Stanley said \"We are more than ever \nconvinced that if the company can return the Atlas to its historical \n95%-plus success rate, this will become a highly profitable, cash-\ngenerating unit.\"  Based upon discussions with GD's corporate \nmanagement, Morgan Stanley projects that if the Atlas problems are \ncleared up the unit could see $70 M in earnings per year by 1995 and \n$100 M per year by 2000.  This is based upon GD's projection of \ncapturing about 10 Atlas launches per year on the world market. \n   [Commentary:  Three failures in a row of their launch system has \nhurt General Dynamic's Space Systems Division.  Since GD has \nrestructured to only keep a very few profitable core businesses, \nmany market pundits have been speculating GD's space business might \nbe next to be sold.  The Morgan Stanley report indicates GD's Space \nSystems Division has some potential as a moneymaker, despite current \nproblems -- if they can get their act together.  Sales are projected \nto be about $560 M in 1993, which will probably generate a loss of \nabout $25 M.  If GD can capture their projected share of the space \nlaunch market, and if they have managed to clean up the reliability \nof their Atlas launchers, then they could generate healthy profits \nfrom those sales.  But until they demonstrate the Atlas Centaur \nprogram is back on track, this division will continue to show \nsubstantial losses. \n   In response to the sell-off rumors, in my opinion, this operation \nis not a really good candidate for takeover and quick profitability.  \nTo do such a takeover, the current set corporate and divisional \nmanagement would be replaced with another set from outside the firm.  \nIn GD SSD's case, to get the division back on track, the management \nteam will have to concentrate hard on the technical problems with \nthe Atlas Centaur, as well as in selling Atlas services.  This would \nindicate only another firm with experience in rocket launch \noperations could find such talent in-house, and be able to convince \ncustomers to buy their launch services.  Optimally, the firm would \nhave substantial liquid rocket experience, and experience in \nmarketing space technology internationally as well.  Candidates for \nthis might be TRW, Rockwell, Lockheed, and Martin, and possibly \nMcDonnell Douglas and Boeing.  But most of those firms have cash \nflow problems (MDC), have had a substantial business contraction \n(Boeing and MDC), are involved with other launch firms (Lockheed), \nor have taken on substantial debt (Martin).  And coming up with the \n$700-1500 M purchase price for the division is a big chunk of \nchange for any company.] \n \n5 - ARIANE PREDICTS DIP IN LAUNCH DEMAND\n   Arianespace, the operator of the Ariane launch system, is \nprojecting a dip in launch demand in the late 1990's.  In early \nFebruary, Arianespace released their annual market survey, which \ndetailed their projection of the space transportation market for the \nnext decade. \n   Over short run, Arianespace expects to retain their dominant \nposition and sustain a majority share of the launch market.  Of 54 \ninternational and commercial launches planned through 1995, Ariane \nholds contracts for 31, General Dynamics' Atlas vehicle holds 14 \ncontracts, McDonnell Douglas' Delta holds 7, and Great Wall's Long \nMarch vehicle holds 2 launch contracts. \n   Three-quarters of future launch contracts for which Ariane can \ncompete are projected to come from communications satellites with \nthe remaining 25% split between weather, Earth observation, and \nscientific satellites.  Most of the future telecommunications demand \ngrowth is predicted to come from the Asia/Pacific region. \n   Arianespace expects the current market consolidation of \nindividual satellite operators into regional or national groups will \ncontinue, with these groups investing in heavier satellites with \nlarger communications payloads carrying more transponders. \nArianespace predicts the average mass of telecommunications \nsatellites should increase by 20 % over today's average level, to \nabout 3000 kg in GEO. \n   Demand for commercial launch services is expected to remain \nstrong over the next three years, but in the second half of the \ndecade, Arianespace predicts demand will decrease.  Arianespace \nbases this prediction upon a matching of satellite transponder \ndemand and supply,  particularly as new data compression techniques \nappear to could double or triple transponder capacity using existing \nor near-term transponders. \n   One of the significant possible changes in the market was \nidentified as the arrival of new launch vehicles, including Russian \nlaunch systems.  But Arianespace predicts that in the long term, \ninvestors purchasing launch services are looking for the best trade \noff between launch service quality and price, and that Russian and \nother new launch services will have to prove out their capabilities \nand service quality, and their market penetration will be minimal. \n   [Commentary:  Ariane releases their market surveys annually, and \nI reported on their prior market survey in a past issue of CSN/STI.  \nComparing the two surveys, there aren't outstanding differences in \nthe numbers.   The most notable change is the consideration of new \ndata compression techniques, reducing the demand for new physical \ntransponders on orbit.\n   I note that in contrast to some predictions, demand for space-\nbased communications transponders appears to be remain strong. While \nfiber optic lines are making substantial inroads into the \nestablished point-to-point telecommunications markets, growing \ndemand for telecommunications services world wide and for point-to-\nmultipoint broadcast services have prevented a decrease in space \ntransponder demand.  Fiberoptic cables provide a higher capability \nservice, but only from established point A to established point B. \nTo establish a fiberoptic link it is necessary to install cable \nbetween the points, and while there are improved network solutions, \ninstalling a large network of distributed fiberoptic links can cost \nmillions or billions of dollars.  \n   For broadcast services where there is not an existing ground \nnetwork structure, satellites still offer the most cost effective \nsolution.  And if new services are required into a new region, it is \ncheaper to install a small satellite link costing only a few tens of \nthousands of dollars and tie into the existing global satellite \nnetwork.  This allows rapid growth of new satellite services, and \nhas kept demand high.  The replacement market for fiberoptics is \ngrowing as well, since as demand grows between the points serviced, \nit becomes cost effective to later install a fiberoptic link to \nhandle the increase in traffic. \n   Since the telecommunications and data transfer markets are still \ngrowing rapidly, satellite market projections remain rosy.  But \nsatellites are also getting longer orbital lifetimes.  Current \ngeneration satellites are now getting guarantees of at 15 years of \non-orbit service or more, in contrast to 10 years of service from \nlast generation's satellites.  This has cut back some of the launch \ndemand, as satellite owners are rescheduling replacement satellite \nlaunches over longer intervals. \n   And as last note; Arianespace didn't flag it this year, but it \nlooks like the space transportation market will be rather over-\nsupplied by existing launch systems in the near term.  The annual \ncommercial launch demand is for about 15-20 medium sized satellites \nper year.  From the supply side, Ariane is capable of launching up \nto about a dozen medium sized satellites a year, Delta is capable of \nabout 9-12 per year, Atlas is capable of 6-12, Long March 4-8, \nJapan's H-Vehicle 2-4, Russia's Proton capable of 8, and other \nsystems such as Zenit and Soyuz another 10-20 medium launches per \nyear.  That's a lot of capability for a small market. \n   We can only expect the competition to intensify for commercial \nlaunches.]\n\n6- NTSB INVESTIGATES PEGASUS LAUNCH OVER ABORTED ABORT \n   The 9 Feb Pegasus launch by Orbital Sciences Corporation has \nspawned an investigation over an apparent violation of range safety \nrules.  A valid abort order from a NASA range safety officer to halt \nthe mission was overridden and the Pegasus was launched in violation \nof range safety rules.  \n   In the last few minutes of the Pegasus launch countdown, one of \ntwo abort command receivers aboard the Pegasus failed.  Such a failure \ntypically scrubs a launch,and a NASA range safety officer at \nWallops Island, VA issued a mission abort order about a minute \nbefore the scheduled Pegasus launch.  Somehow this command was \noverridden by the OSC launch team or the message was lost in the \ncommunications channels, and the Pegasus was launched despite the \nvalid abort call. \n   Fortunately, the Pegasus functioned as expected, and the abort \ncommand receiver was not needed.  But this incident did spark an \ninvestigation since a valid abort order was given under agreed-to \nlaunch constraint rules, and was not obeyed. \n   Leading the investigation is the National Transportation Safety \nBoard (NTSB) with support from NASA, OSC, and the Air Force.  This \ninvestigation marks the first time NTSB has taken the lead on an \nincident involving a space launch.  According to the NTSB, their \ninvestigation will take about 6 months, and is primarily looking at \nlines of authority, communications links and safety procedures used \nin the launch. \n  [Commentary: This is the first time that the NTSB has led an \ninvestigation into a space launch.  Their leadership was requested \nby the Department of Commerce's Office of Commercial Space \nTransportation, who had licensed the commercial launch.  \n   At the time of writing this column, some of the initial \ninvestigations have been concluded, and some of the results are \nstarting to leak out into the trade press.  Apparently, 3 or four \ndifferent communications channels were in use during the test. After \nthe abort destruct receiver stopped responding, the NASA test \ndirector and range controller in the Mission Control room at Wallops \nIsland gave abort orders about a minute before the launch.  \nAccording to the mission rules, this should have stopped the launch. \nSomehow, the OSC test conductor ordered the abort reversed, and the \nNASA communicator on the net relayed that order to the B-52 carrying \nthe Pegasus at about 22 seconds before launch.  Differing \nexplainations of exactly how this happened are proposed -- with the \nbest set being that clear lines of communications and clear \ndefinition of the responsibilities of the mission control team, and \nunderstanding of the mission rules were not established before the \nlaunch.  \n   As we see more and more commercial launches, more of these \nprocedural issues are going to crop up and will have to be resolved.   \nThis case is interesting because it is the first time the NTSB has \nbeen called in to investigate a commercial launch problem (as they \ndo with commercial aircraft problems).  \n   I think this problem will turn out to be primarily problems with \nprocedures and communications, and will be cleared up with issuance \nof guidelines on how launch communications should be set up and how \nspecific lines of authority should be delineated.] \n\n7- ANOTHER PEGASUS COMPETITOR IS ANNOUNCED\n   Tsniimach Enterprise in Russia announced it is marketing a new \nsmall space launch system, based upon converted ICBM components.  \nTwo versions of the launcher are being marketed: the \"Aerokosmos\" \nwinged vehicle launched like the OSC Pegasus, and the \"Severkosmos\", \nlaunched from a mobile ground transporter.  The Aerokosmos is \nprojected to deliver 900 kg to a 200 km circular orbit or 580 kg to \nan 800 km circular orbit, and the Severkosmos to be capable of 430 \nkg to 200 km orbits and 225 kg to 800 km.  Also proposed to be used \nwith these launch systems is a LEO data relay system called \n'Sineva'.  Tsniimach Enterprise is described as a ex-military \nestablishment, focusing on aerodynamics and thermal protection of \nspacecraft and which has participated in the development of the \nBuran shuttle system,  They are located near the NPO Energia \nfacility in Kaliningrad, outside of Moscow. \n   [Commentary: There's very little released information on this new \nventure.  My suspicion is it is another Russian enterprise looking \nfor hard currency and trying to capitalize upon their in-house \nknowledge of ex-Soviet launch systems.  It adds to the list of numerous \ncommercial space startups announced from the ex-Soviet Union. \n   This one's a little different in that they are offering variants \nof ex-Soviet ICBMs, but I can't identify any key customers being \ntargeted or substantial financial backing.]\n\n8- GEORGIA LAUNCH SITE DROPPED FROM PLANNING\n   In late January, Georgia Tech Research Institute released the \nresults of a preliminary study on the feasibility of a commercial \nrocket launching site in Camden County, Georgia at the old Kingsland \nMissile Test Launching Site on the Atlantic coast.  The preliminary \nstudy recommended the site not be pursued as a commercial launch \nsite, stating reopening the site was not feasible due to projected \nlow investment returns, plus environmental and other geographic \nconsiderations.  However, the report did say the site might be ideal \nfor other aerospace uses, and recommended other potential uses. \n   [Commentary:  This should put the nails in the coffin of the \nKingsland Commercial Launch Site.  While other sites are still \nproceeding with commercial launch site development plans, Kingsland \nfound without a key customer to act as anchor tenant, and if \nsubstantial infrastructure had to be put in, then the expected \nreturns were too low to justify the cost of development.  \n   This might point out some key discriminators in judging the \nfeasibility of a commercial launch site.  These include:\n  - Is there an identified key customer to provide core usage \nsufficient to recover setup costs?\n  - Is there a market advantage of using the site?\n  - Can existing infrastructure be used or modified at the site?\n  - Can financing be found at low enough cost to support the \ninvestment?  \n   Other commercial launch site ventures -- including those at \nWoomera, Poker Flat, Cape York, White Sands, Alabama Off-Shore \nPlatform, Hawaii, and Vandenberg have to also be judged against \nthese criteria.  In my opinion, some of these ventures are flying \non hope and speculation, and not on sound financial grounds.]\n\n9- SPAIN'S CAPRICORNIA LAUNCHER STILL PROCEEDING\n   In one of his last official acts, former President Bush \nauthorized space technology transfer for several joint space \nventures between US and other firms.  One of these was a proposed \nuse of US technology by Spain to build a small booster.  With that \nregulatory impediment removed, the 3-stage Capricornia launch \nvehicle will start development later this year, planning for a first \nlaunch in the 1995/96 time period.  The Capricornia is described as \na small 3-stage all solid booster designed to put 250-500 Kg into \nLEO.  Several launch sites are being examined for the system, \nincluding 2 on the Iberian peninsula and 1 on the Canary Islands.  \nOriginated by INTA in Spain, the project reports it has $ 30 M in \ndevelopment funding, and will use technology from Argentina's Condor \nlaunch vehicle as well as from the US. \n   [Commentary:  Several firms have identified a market opportunity \nin providing a small launcher for the European market.  Small \npayloads from European firms or organizations currently use either \nAriane piggyback launches or the US/Italian Scout launcher.  \nHowever, Ariane piggyback opportunities are limited, and the Scout \nprogram is being phased out (accompanied by some disarray in the \nItalian government and space industry regarding any follow-on \nsystem).  \n   This has left an apparent niche for a new European small launch \nsystem.  Surprisingly enough, ESA has not supported development of \nsuch a system within the current space funding structure.  Studies \nhave been performed by British Aerospace, Aerospatiale, Deutsche \nAerospace, and Italian organizations, but with the exception of the \nSwedish/PacAstro system (reported below), I have not been able to \nfind any other European development work with even a rumor of \nfunding for hardware. \n   Also of interest is the linking of the Capricornia to the \nArgentinian Condor launcher.  There have been some interesting \nrumors surfacing out of Argentina over the past year about a space \nlauncher/IRBM program funded under the military junta which ruled \nthe country in the 1970's and early 1980's. \n   What is known is in Feb 1992, the Argentinian Air Force formally \ntransferred control of the Condor 2 missile program to the new \ncivilian Argentinian national space agency (Comison Nacional de \nAtividades Espaciales - CNAE).  The Condor 2 program was described \nas originating in 1983, expanding upon the smaller Condor 1 rocket \nprogram in collaboration with Egypt and with support of German \nfirms.  The Condor 2 was also reportedly funded indirectly by Iraq \nin the mid-1980's.  Fairly large solid rocket motors were built and \ntested, but Argentinan development of a suitable guidance package \nlagged that of the propulsion system. \n   It should be noted CNAE is planning to launch its first \nscientific satellite in late 1994.  The US$ 9 M, 181 Kg, SAC-B \nsatellite will study the Earth's upper atmosphere and includes \ncooperative experiments from Italy and the US. No launch vehicle has \nyet been selected, but OSC's Pegasus and the Russian Burlak Air \nlaunched rocket are reported to be strong contenders for this \ncontract.] \n\n10- PACASTRO SIGNS LAUNCH RESERVATION WITH SWEDISH SPACE CORP\n   PacAstro, a small launch firm in Herndon, Virginia announced in \nlate February it had received a $6 M launch reservation contract \nfrom the Swedish Space Corp to launch a satellite on PacAstro's PA-2 \nlaunch vehicle.   This will be performed as part of the Polar \nSatellite Service (PSS), a joint Norwegian Space Center/ Swedish \nSpace Corp. program to upgrade the Andoya Rocket Range in Norway and \noffering small satellite launches into the polar regions.  According \nto PacAstro, PSS is also performing an $8 M upgrade of the Andoya \nlaunch facilities, including a new integration facility and a fully-\nenclosed vertical assembly building for small launch vehicles like \nthe PacAstro PA-2.  PacAstro has been chosen as \"the main \nalternative rocket supplier\" for the small satellite launch service \nto be offered by PSS from Andoya.  The date of the launch of the \nSwedish satellite was not specified. \n   [Commentary:  PacAstro has been trying to line up customers and \nfunding for their launch vehicle for some time now.  The PA-2 is a \nsmall, two stage rocket fueled by RP-1 and Liquid Oxygen.  From \nPacAstro's literature, the engines designed for the PA-series \nrockets are built of \"off the shelf\" components based upon the Lunar \nMOdule Descent Engines built by TRW, and are capable of putting a \n225 Kg satellite into a 750 km circular polar orbit.  \n   PacAstro is trying to arrange construction financing for its \nfirst three PA-2 vehicles, with a first launch planned for 1995, and \n2 orbital launches planned for 1996.  My records show PacAstro hired \nTRW to provide marketing support and systems design,  with primary \nengineering to be done by AeroAstro, a small satellite builder \nclosely associated with PacAstro (headquartered in the same \nbuilding).  The Swedish Space Corporation would supply engineering, \nlaunch operations, vehicle subsystems, and marketing support. \nSumitomo Corp. of Tokyo, is a first round investor and sits on the \nboard of directors.  \n   PacAstro has gotten a first round financial package of at least \n$550 K  (Some sources place this of high as $1 M), but has been \nsearching for about a year for the additional $20-30 M needed to \ndesign, build and launch their first set of vehicles. \n   The launch reservation from SSC can possibly be used to help \nbring some investors on board, but by my estimate, they will need \nmuch more than the single $6 M sale to put their venture into real \nhardware.] \n\n11- CHINA AND TAIWAN JOINT SATELLITE VENTURE REPORTED\n    In early March, it was reported a joint satellite communications \nventure between a Taiwanese and mainland Chinese was in the works.  \nAs reported in the Taipei press, China Development Corp. (CDC), \nheadquartered in Taiwam and with links to the ruling Nationalist \nParty, is planning to set up a joint venture in Hong Kong with China \nGreat Wall Industry Corp. with the objective of launching a regional \ncommunications satellite. CDC would cover about 10% of the satellite \nsystem cost (US $10 M) in exchange for rights to 10% of the \nsatellite's communications channels.  \n   [Commentary:  This announcement came close on the heels of the \nrelease of Taiwanese plans for space development (released in mid \nJanuary).   In those plans, the National Space Program Office of \nTaiwan will launch 3 satellites, starting with ROCSAT-1, a 400 Kg \nscientific spacecraft, planned for launch in 1997.  Two additional \nsatellites are planned, both communications satellites.   TRW has \nbeen helping Taiwan plan this program, budgeted at T$13.6 B (US $530 \nM) through 2006.  \n   I haven't been able to establish any relationship between this \nventure and those of the NSPOT, but there might be a connection.  \nWhile Taiwan has the financing to pursue several ventures, the \ncurrent Taiwanese telecommunications market might not support two \nseparate sastellite ventures. \n   The reported name for the Tiawanese/Chinese system is \"Asiasat-\n2\", but I don't thinks this has any relationship with the existing \nHong Kong-based \"Asiasat\" program involving Chinese, Hong Kong, and \nother Asian investors, other than using it as an organizational \nmodel.  There are some obvious advantages to pursuing such a joing \nventure -- it could provide excellent first-hand experience to \nTaiwan for a very low cost, which then can be used in later \nsatellite ventures.  But there are internal political issues between \nTaiwanese and Chinese ventures, but putting any joint venture \nthrough a  Hong Kong intermediary corporation might allow it to \nproceed. \n   In any case, the East Asian satellite market is lighting up with \nsubstantially growth projected in space services and revenues.  This \nis just another indicator to add to the list.] \n\n12- SOUTH KOREA ANNOUNCES NATIONAL MOVE INTO SPACE TECHNOLOGIES\n   South Korea's Trade, Industry and Resources Ministry recently \nannounced plans to invest US$22 B in research and development and \nanother US$17 B into manufacturing and research facilities for \nadvanced aerospace technologies.  Space technologies have been \nspecifically targeted as part of this program, beginning with \nmanufacture and launch of an advanced multi-purpose satellite by \n1997.  The objective of this investment is to raise South Korea's \naerospace technology to the level of the world's top 10 countries by \n2000.                                 \n   [Commentary: South Korea has been quietly working to develop its \nnational aerospace industry, specifically including space \nactivities. I'm noting this as a flag that potential new players are \ncoming into the commercial space market. \n   As part of their national effort, 2 national telecommunications \nsatellites for Korea Telecom will be launched in April and Oct 1995 \non Delta. Designated Koreasat 1 and 2, the platforms will provide \ntelevision and telephone service throughout the Korean Peninsula, \nsouthwestern Japan and portions of China bordering North Korea. \n   South Korea launched its first small satellite piggyback on \nAriane in Aug 1992, called Uribyol-1 (Our Star) and costing about US \n$8.8 M.  Uribyol-2 is planned for piggyback launch in October of \nthis year, again on Ariane, and will be entirely \"made in Korea.\"  \nUribyol-3, projected for a 1995 launch, will be an environment-\nmonitoring micro-satellite. \n   This satellite may be the precursor to a series of small Earth \nobservation satellites,  The KEOS (Korean Earth Observation System) \nproject, which has been submitted for approval to the South Korean \ngovernment, would use two or three 300-kg spacecraft equipped with \noptical and microwave sensors.\n   South Korean press reports claim there is also a parallel \nmilitary effort to establish the capabilities for building and \nlaunching small military satellites by 2001.  Supposedly a \ngovernment panel had been established to oversee such an effort, \nfunded at US $ 500 M between 1993 and 2001, in anticipation of an  \nexpected pullout of U.S. intelligence-gathering systems from the \nKorean peninsula.       \n   In conjunction with all of these reported efforts, South Korean \nis also pursuing production work either as off-sets to existing \naerospace technology contracts (for example, McDonnell Douglas is \noffsetting production of some Delta parts to South Korean firms as \npart of the Koreasat launch contracts), or for production of \nconsumer space items (among other products, South Korea exports \nsatellite receiver television setups to Japan, and Samsung has \nannounced teaming for production of OSC's Orbcomm user terminals.).  \n   This looks like a very aggressive push into space technologies.  \nConsidering that East Asia is currently the fastest growing sector \nfor commercial space services (primarily for telecommunications), a \nSouth Korean push into space technologies may change the composition \nof commercial space market there over the next decade.] \n\n13- SPACE TECHNOLOGY INDEXES THROUGH MARCH\n   As announced in the last CSN/STI, each issue will give the \nresults of stock indexes and portfolios regarding space stocks and \ninvestments.  The table below summarizes results to the end of \nMarch.  The Space Technology Index did quite a bit better than the \nmarket as a whole, as represented by the S&P 500 index.  Since 90+% \nof the values included in the index are US firms, this represents a \ngeneral increase in the market value of space-related firms.  The \nincrease in the first quarter is more than in all of 1992 -- which \nis a very promising sign, although future months may reverse this \ntrend. The Commercial Space Technology Index has also done quite \nwell, but the Pure Play portfolio -- consisting of stocks of firms \nwhich are pure plays in space technologies -- has also surpassed its \nresults in all of 1993.  We'll keep an eye on these ....\n\n   INDEX RESULTS THROUGH MARCH\n                           Beginning  Beginning      1 Jan 93 to\n                           1992       1993           31 Mar 1993\n                           -------    --------       --------\n   S&P 500                 416        436  (+4.7%)   452  (+3.7%)\n   Space Tech Index        267        304 (+13.6%)   373 (+22.7%)\n   Comm'l Space Tech Index 167        194 (+16.3%)   222 (+14.2%)\n   Space Tech Pure Plays   147        169 (+15.4%)   197 (+16.2%)\n\n\nFINAL NOTES - \n    What?  This column's already full?  And I still have bunches of \ncommercial space developments to report on.  As I said at the start \nof this, column there's been a lot of interesting happenings - but \nI'll have to put them into the next issue.  \n   Looking ahead, I've got several articles in the works on new \nhappenings with Iridium and the LEO communications satellite market, \nmore news on international launchers appearing (and disappearing) on \nthe market, new international commercial space ventures,  and other \ninteresting developments. \n   And as always, I hope you folks find this stuff useful and \ninteresting -- Any and all comments are welcome. \n\n-----------------------------------------------------------------\nWales Larrison                          Space Technology Investor  \n\"Felicitas multos habet amicos\"             P.O. Box 2452 \n                                        Seal Beach, CA 90740-1452\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10407, "properties": {"category": "soc.religion.christian", "text": "From: johnsd2@rpi.edu (Dan Johnson)\nSubject: Re: \"Accepting Jeesus in your heart...\"\nReply-To: johnsd2@rpi.edu\nOrganization: not Sun Microsystems\nLines: 95\n\nIn article 28388@athos.rutgers.edu, jayne@mmalt.guild.org (Jayne Kulikauskas) writes:\n>gsu0033@uxa.ecn.bgu.edu (Eric Molas) writes:\n>\n>> Firstly, I am an atheist. I am not posting here as an immature flame\n>> start, but rather to express an opinion to my intended audience.\n>[deleted] \n>> \n>> We are _just_ animals.  We need sleep, food, and we reproduce.  And we\n>> die.      \n\nI don't meant to defend Eric Molas- I find it somewhat annoying when\nsomeone pops up on alt.atheism to tell us all about his (usually\natheistic) beliefs, so I can certainly see how Christians might be\nannoyed- but I'd like to point out a few things.\n\n>I am glad that I am not an atheist.  It seems tragic that some people \n>choose a meaningless existence.\n\n\"no meaning from God\" is not the same as \"no meaning\". From my (atheistic)\npoint of view, if you want meaning in your life, you get to go and\nget some or make some.\n\nNo free gifts of meaning. (I never quite understood how any\nGod can just \"give\" your life meaning, actually. If he\nsays you exists to do or be X, that gives you a purpose\nif you care to accept it, but is that the same thing? But\nI digress...) \n\n>  How terrible to go on living only \n>because one fears death more than life.\n\nThis would truely be a miserably existance, which I doubt Eric\nendures. Life can be enjoyable, so you can live it because you like\nit, or purposefull, so you can live it to get something done. One should\nendeavour to make it so, if it is not. Otherwise it would be as you say.\nTerrible.\n\n>  I feel so sorry for Eric and \n>yet any attempts to share my joy in life with him would be considered as \n>further evidence of the infectious nature of Christianity.    \n\nProbably true. Remeber he almost certainly sees that particular joy as\nan illusion, and does not want it. So maybe it isn't so bad?\n\n>As a Christian I am free to be a human person.  I think, love, choose, \n>and create.\n\nAs an atheist, I am free to be a human person. I think, love, choose,\nand create.\n\n> I will live forever with God.\n\nAh, now here we begin to diverge. I will not live forever\nwith anyone.\n\n(I don't think you will either, but you are welcome to your\nopinion on the matter.)\n\n>Christ is not a kind of drug.\n\nI tend to agree with you.\n\nIt's my opinion that (unlike drugs) religions are normal\nparts of human societies.\n\nI think they have outlived their usefullness, but they\nare evidently quite ordinary, normal things that haven't\nproved lethal to humanity yet.\n\n> Drugs are a replacement for Christ.\n>Those who have an empty spot in the God-shaped hole in their hearts must \n>do something to ease the pain.\n\nI have heard this claim quite a few times. Does anybody here know\nwho first came up with the \"God-shaped hole\" business?\n\n>  This is why the most effective \n>substance-abuse recovery programs involve meeting peoples' spiritual \n>needs.\n\nYou might want to provide some evidence next time you make a claim\nlike this.\n\n>Thank you, Eric for your post.  It has helped me to appreciate how much \n>God has blessed me.  I hope that you will someday have a more joy-filled \n>and abundant life.\n\nI don't know Eric, but I do not think it is wise to assume he has a less\njoy-filled and abundant life because he holds certain beliefs.\n\n---\n\t\t\t- Dan Johnson\nAnd God said \"Jeeze, this is dull\"... and it *WAS* dull. Genesis 0:0\n\nThese opinions probably show what I know.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10408, "properties": {"category": "talk.religion.misc", "text": "From: agr00@ccc.amdahl.com (Anthony G Rose)\nSubject: Re: Info about New Age!\nReply-To: agr00@JUTS.ccc.amdahl.com (Anthony G Rose)\nOrganization: Amdahl Corporation, Sunnyvale CA\nLines: 12\n\nIn article <1qvnu9$a8a@geraldo.cc.utexas.edu> hawk@ccwf.cc.utexas.edu writes:\n>Greetings!  Could anybody here give me any information about New Age religion?\n>About the history, the teachings, ...???  Or may be suggestions what books I \n>should read in order to get those info?  Any help would be greatly appreciated.\n\n\nContact:   WATCHMAN FELLOWSHIP\n           P.O. Box 171194\n           Holladay, UT 84117-1194\n\nAsk for their book:  The New Age and Space Age Heresies\n                     The New Age In Our Schools\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10409, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rvenkate@ux4.cso.uiuc.edu (Ravikuma Venkateswar)\nSubject: Re: x86 ~= 680x0 ?? (How do they compare?)\nDistribution: usa\nOrganization: University of Illinois at Urbana\nLines: 28\n\nskok@itwds1.energietechnik.uni-stuttgart.de (Holger Skok) writes:\n\n>In article <C5nq9C.LLp@news.cso.uiuc.edu> rvenkate@ux4.cso.uiuc.edu (Ravikuma Venkateswar) writes:\n>[... stuff deleted]\n>>\n>>Besides, for 0 wait state performance, you'd need a cache anyway. I mean,\n>>who uses a processor that runs at the speed of 80ns SIMMs? Note that this\n>>memory speed corresponds to a clock speed of 12.5 MHz.\n>>\n>[more stuff deleted...]\n\n>How do you calculate that figure? I'd assume even in personal computers\n>the board designers would use bank switching to (optimistically) \n>quadruple the access speed  or am I missing something here?\n\nThe previous article referred to the fact that you could only use 20ns SIMMs in\na 50MHz machine, but that you could use 80ns SIMMs in slower machines. I just\npointed out that if you could only use 20ns SIMMs in a 50MHz machine, you can't\nuse 80ns SIMMs in anything faster than a 12.5 MHz machine. Bank switching and\ncaches were not considered in either example (although both would help memory\naccess).\n\n>HSK\n-- \nRavikumar Venkateswar\nrvenkate@uiuc.edu\n\nA pun is a no' blessed form of whit.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.488+0000", "event": "documents", "entityId": 10410, "properties": {"category": "talk.politics.misc", "text": "From: fpa1@Trumpet.CC.MsState.Edu (Fletcher P Adams)\nSubject: Re: ABOLISH SELECTIVE SERVICE\nNntp-Posting-Host: trumpet.cc.msstate.edu\nOrganization: Mississippi State University\nLines: 35\n\nkmitchel@netcom.com (Kenneth C. Mitchell) writes:\n>Dave Borden (borden@head-cfa.harvard.edu) wrote:\n>: The Selective Service Registration should be abolished.  To start with, the\n>: draft is immoral.  Whether you agree with that or not, we don't have one now,\n>: and military experts agree that the quality of the armed forces is superior\n>: with a volunteer army than with draftees.  Finally, the government has us\n>: on many lists in many computers (the IRS, Social Security Admistration and\n>: Motor Vehicle Registries to name a few) and it can find us if it needs to.\n>: Maintaining yet another list of people is an utter waste of money and time.\n>: Let's axe this whole department, and reduce the deficit a little bit.\n\nI'm really surprised Clinton hasn't already tried to do this.  He seems\nto want to tackle other irrelevant issues first, so why not this one as well.\n\n>Let me say this about that, as a retired Navy officer; \n>\n>I agree. Cut it.  But let's not stop there. \n>\n>Eliminate the C-17 transport. \n\nWrong.  We need its capability.  Sure it has its problems, very few\nairplanes haven't, but getting rid of something we need is not the\nanswer.  What do you want to do, start over a rebuild a new airplane\nfrom scatch?  It'll have its problems as well and there will be calls\nagain, for it to be scrapped.  THe other option is to try to extend\nthe life of the C-5s and C-141s that are getting extremely old.\n\n>Scrap the Seawolf SSN-21 nuclear submarine. \n>Ground the B-2 stealth bomber. \n\nIt'll cost jobs, but I'm for it.  We especially don't need a B-2. THe\nSSN-21, I know litttle about.\n\nfpa\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10411, "properties": {"category": "comp.windows.x", "text": "From: rgooch@rp.CSIRO.AU (Richard Gooch)\nSubject: Re: X11R5 and Open Look\nOrganization: CSIRO Division of Radiophysics/Australia Telescope National Facility\nLines: 16\n\nIn article <1993Apr12.155820.82@aedc-vax.af.mil>, bonds@aedc-vax.af.mil writes:\n> I am reposting this because I am not sure my first post ever made it out.\n> I have built and installed X11R5 on my SPARCstation 2.  My aim is to run\n> the MIT X server but retain the OpenLook Window Manager.  I am sure this\n> is not uncommon, but I just want to make sure that I change and/or delete\n> everything that I need to.  For instance, I can start xdm in rc.local, but\n> how do I get rid of Xnews?\n> \n\n  The OpenLook window manager source is available on the MIT contrib tapes\n  or from  export.lcs.mit.edu  .I would suggest building this too, rather than\n  using the version from OpenWindows. It is  olwm  v3.\n\n\t\t\t\tRegards,\n\n\t\t\t\t\tRichard Gooch....\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10412, "properties": {"category": "rec.sport.baseball", "text": " egsner!ernest!m2.dseg.ti.com!tilde.csc.ti.com!mksol!kerr.dseg.ti.com!kkerr@mkcase1.dseg.ti.com\nFrom: kkerr@mkcase1.dseg.ti.com@MK (Kevin Kerr)\nSubject: Re: YANKKES 1 GAME CLOSER\nOrganization: ENGINEERING AUTOMATION\nLines: 38\nNntp-Posting-Host: kerr.dseg.ti.com\n\nIn article <1993Apr6.233805.29755@freenet.carleton.ca> aa649@Freenet.carleton.ca (Ralph Timmerman) writes:\n>From: aa649@Freenet.carleton.ca (Ralph Timmerman)\n>Subject: Re: YANKKES 1 GAME CLOSER\n>Date: Tue, 6 Apr 1993 23:38:05 GMT\n\n\n>In a previous article, 002251w@axe.acadiau.ca (JASON WALTER WORKS) says:\n\n>>    The N.Y.Yankees, are now one game closer to the A.L.East pennant.  They \n>>clobbered Cleveland, 9-1, on a fine pitching performance by Key, and two \n>>homeruns by Tartabull(first M.L.baseball to go out this season), and a three \n>>run homer by Nokes.  For all of you who didn't pick Boggs in your pools, \n>>tough break, he had a couple hits, and drove in a couple runs(with many more \n>>to follow).  The Yanks beat an up and coming team of youngsters in the \n>>Indians.  The Yankees only need to win 95 more games to get the division.\n>> GO YANKS., Mattingly for g.glove, and MVP, and Abbot for Cy Young.\n>>\n>>                                             ---> jason.\n>>\n\n>Does that mean we have to read this drivel another 95 times this season?\n>Please spare us... And check you facts before you post!\n>-- \n>Ralph Timmerman                      \"There is no life after baseball\"      \n>aa649@freenet.carleton.ca\n\n\n No one says you have to read any of it Ralph.. Go play in traffic.., or take \na nap... They work for me.. \n\n=========================================================================\n|  Kevin Kerr                                kkerr@mkcase1.dseg.ti.com  |                                                                       #\n|  President North Texas 'C' Programmers Users Group                    |\n|  BBS-(214) 442-0223                                                   |\n|  GO YANKEES !!!   GO DOLPHINS !!!                                     |\n|                                                                       |\n|  \"Strolling through cyberspace, sniffing the electric wind....\"       |\n=========================================================================\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10413, "properties": {"category": "rec.sport.baseball", "text": "From: awe@loch.mit.edu (Ari Epstein)\nSubject: Re: Jewish Baseball Players?\nOrganization: CMPO at MIT\nLines: 4\nDistribution: world\nNNTP-Posting-Host: loch.mit.edu\n\nI think you can add former A's first baseman Mike Epstein (no relation) to \nthe list.\n\nAri\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10414, "properties": {"category": "comp.sys.mac.hardware", "text": "From: kitchel@manta.dpsi.com (Sidney W. Kitchel)\nSubject: Re: Rumours about New Duos !!!!!\nArticle-I.D.: manta.kitchel.734892133\nDistribution: comp.sys.mac.hardware, comp.sys.mac.comm\nOrganization: Data Parallel Systems, Inc\nLines: 27\nNntp-Posting-Host: manta.dpsi.com\n\njek5036@ultb.isc.rit.edu (J.E. King) writes:\n\n\n>Since we are on the subject of chip power consumption,\n\n>I heard (from a very reliable source) that the DEC Alpha chip uses\n>1/2 the power that Intel's Pentium chip does, and it still whips\n>the Pentium's butt.  Makes you wonder why Intel ever made\n>a chip to begin with!\n\n>Wouldn't you like a PowerBook Alpha running about 300 MIPS?  Cool idea..\n\n\n\tBzzzzzzzzzzzzzzzzzzzzzzzt!! Sorry -- wrong. It would be an\nextremely hot idea...at least with the current Alphas. The available\nAlphas run up to 200 MHz. But they produce quite a bit of heat. In\nfact so much that they need special mounting with extra large heat\nsinks.\n\tAlso Apple looks pretty commited to the PowerPC route instead\nof a deal with DEC.\n\n\t\t\t\t\t\t\t--Sid\n--\nSidney W. Kitchel  \t    kitchel@cs.indiana.edu, kitchel@dpsi.com\nData Parallel Systems, Inc.  ============||  DPSI  ||===============\n4617 E. Morningside Drive\t                      (812) 334-8100\nBloomington, Indiana,  47408  USA\t\tFAX:  (812) 334-8121\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10415, "properties": {"category": "comp.sys.mac.hardware", "text": "From: sunnyt@coding.bchs.uh.edu\nSubject: Re: LCIII problems\nOrganization: University of Houston\nLines: 32\nReply-To: ln63sdm@sdcc4.ucsd.edu\nNNTP-Posting-Host: transposon.bchs.uh.edu\n\nIn article <1993Apr16.021225.19717@leland.Stanford.EDU> Ravi Konchigeri  \n<mongoose@leland.stanford.edu> writes:\n> Finally got my computer fixed and I'd like to sum up.\n> \n> About hard drive companies: the original 160 meg drive that was bad (bad\n> sector or something) was an IBM.  The new one is a Quantum.  Is the LCIII\n> supposed to be shipped with IBMs?  Is there a quality difference? \n> Apparently! :)\n> \n> Second, about hard drive position.  I've put the LCIII on its side and\n> the new 160 HD has had no problems at all.  I've even switched back and\n> forth between horizontal and vertical and there are no problems.  As far\n> as I'm concerned I don't believe HD position is important for drives up\n> to 160 meg, in any computer.  Don't know about CD-ROM, though.\n> \n> \n> \t\"Just like everything else in life, the right lane ends in half a  \nmile.\"\n> \n> Ravi Konchigeri.\n> mongoose@leland.stanford.edu\n\nRavi,\n\n\tIts not a good idea to have a horizontally formatted hard disk in a  \nvertical position.  If the drive is formatted in a horizontal position, it can  \nnot completely compensate for the gravitational pull in a vertical position.   \nI'm not saying that your hard disk will fail tomorrow or 6 months from now, but  \nwhy take that chance?  If you want more detailed info on the problem, please  \nmail me at:===> sunnyt@dna.bchs.uh.edu <===.  \n\nSunny\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10416, "properties": {"category": "talk.politics.mideast", "text": "From: melons@vnet.IBM.COM (Mike Magil)\nSubject: Re: rejoinder. Questions to Israelis\nLines: 48\n\n>From: bc744@cleveland.Freenet.Edu (Mark Ira Kaufman)\n>Newsgroups: talk.politics.mideast\n>Subject: Re: rejoinder. Questions to Israelis\n>Date: 23 Apr 1993 12:55:47 GMT\n>Organization: Case Western Reserve University, Cleveland, Ohio (USA)\n>\n>\n>   Although I realize that principle is not one of your strongest\n>points, I would still like to know why do do not ask any question\n>of this sort about the Arab countries.\n>\n>   If you want to continue this think tank charade of yours, your\n>fixation on Israel must stop.  You might have to start asking the\n>same sort of questions of Arab countries as well.  You realize it\n>would not work, as the Arab countries' treatment of Jews over the\n>last several decades is so bad that your fixation on Israel would\n>begin to look like the biased attack that it is.\n>\n>   Everyone in this group recognizes that your stupid 'Center for\n>Policy Research' is nothing more than a fancy name for some bigot\n>who hates Israel.\n>\n>   Why don't you try being honest about your hatred of Israel?  I\n>have heard that your family once lived in Israel, but the members\n>of your family could not cut the competition there.  Is this true\n>about your family?  Is this true about you?  Is this actually not\n>about Israel, but is really a personal vendetta?  Why are you not\n>the least bit objective about Israel?  Do you think that the name\n>of your phony-baloney center hides your bias in the least?  Get a\n>clue, Mr. Davidsson.  Haven't you realized yet that when you post\n>such stupidity in this group, you are going to incur answers from\n>people who are armed with the truth?  Haven't you realized that a\n>piece of selective data here and a piece there does not make up a\n>truth?  Haven't you realized that you are in over your head?  The\n>people who read this group are not as stupid as you would hope or\n>need them to be.  This is not the place for such pseudo-analysis.\n>You will be continually ripped to shreds, until you start to show\n>some regard for objectivity.  Or you can continue to show what an\n>anti-Israel zealot you are, trying to disguise your bias behind a\n>pompous name like the 'Center for Policy Research.'  You ought to\n>know that you are a laughing stock, your 'Center' is considered a\n>joke, and until you either go away, or make at least some attempt\n>to be objective, you will have a place of honor among the clowns,\n>bigots, and idiots of Usenet.\n\nI couldn't have said it better, Mark!\n\n- Mike.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10417, "properties": {"category": "comp.windows.x", "text": "From: alex@vuse.vanderbilt.edu (Alexander P. Zijdenbos)\nSubject: Sunview -> X\nOriginator: alex@taacman\nNntp-Posting-Host: taacman\nOrganization: Vanderbilt University School of Engineering, Nashville, TN, USA\nDistribution: usa\nLines: 16\n\nNo doubt this is an old question, but I didn't find the answer in the\nFAQs I could find, so - here goes:\n\nI have a Sunview application that I want to convert to X (OpenLook,\nMotiv, whatever). I remember hearing quite some time ago that there\nare tools to accomplish this task.\n\n\ta) is that so?\n\tb) are they public domain?\n\tc) any good, i.e.\n\td) advantages over reimplementing the interface myself?\n\nThanks,\n\n-- Alex\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10418, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Let's build software cryptophones for over the internet...\nLines: 92\n\nWell, after a lot of trawling through archives, I found the post\nI reproduce in full below.  Is it time to get together to develop\na tcp/ip standard for crypto voice that we could then layer on\npoint-to-point SLIP as *the* free standard for crypto voice like\npgp is for mail?\n\n(PS Note the date of this post.  Appropriate, huh? :-) )\n\n---\nFrom jpcampb@afterlife.ncsc.mil Thu Jul  9 11:50:11 1992\nFrom: jpcampb@afterlife.ncsc.mil (Joe Campbell)\nNewsgroups: comp.compression.research\nSubject: Re: sound compression algorithms\nDate: 4 Jul 92 14:46:04 GMT\nOrganization: The Great Beyond\n\nIn article <1992Jun26.165210.15088@sequent.com> lff@sequent.com (Lou Fernandez) writes:\n>The techniques for production systems revolve around Code Excited Linear\n>Prediction (CELP) algorithms which capture 20 ms or so of speech and\n>attempt to match the speech with a combination of signals from a\n>codebook, choosing the combination which minimizes the error....\n\nIn case you'd like to experiment with CELP, you can obtain a software\nimplementation of the 4800 bps Fed Std CELP coder for free:\n\nThe U.S. DoD's Federal-Standard-1016 based 4800 bps code excited linear\nprediction voice coder version 3.2 (CELP 3.2) Fortran and C simulation source\ncodes are now available for worldwide distribution at no charge (on DOS\ndiskettes, but configured to compile on Sun SPARC stations) from:\n\nBob Fenichel\nNational Communications System\nWashington, D.C.  20305\n1-703-692-2124\n1-703-746-4960 (fax)\n\nIn addition to the source codes, example input and processed speech files\nare included along with a technical information bulletin to assist in\nimplementation of FS-1016 CELP.  (An anonymous ftp site is being considered\nfor future releases.)\n\nCopies of the actual standard \"Federal Standard 1016, Telecommunications:\nAnalog to Digital Conversion of Radio Voice by 4,800 bit/second Code\nExcited Linear Prediction (CELP)\" are available for $2.50 each from:\n\nGSA Rm 6654\n7th & D St SW\nWashington, D.C.  20407\n1-202-708-9205\n\nThe following articles describe the Federal-Standard-1016 4.8-kbps CELP\ncoder (it's unnecessary to read more than one):\n\nCampbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch,\n\"The Federal Standard 1016 4800 bps CELP Voice Coder,\" Digital Signal\nProcessing, Academic Press, 1991, Vol. 1, No. 3, p. 145-155.\n\nCampbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch,\n\"The DoD 4.8 kbps Standard (Proposed Federal Standard 1016),\"\nin Advances in Speech Coding, ed. Atal, Cuperman and Gersho,\nKluwer Academic Publishers, 1991, Chapter 12, p. 121-133.\n\nCampbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch, \"The\nProposed Federal Standard 1016 4800 bps Voice Coder:  CELP,\" Speech\nTechnology Magazine, April/May 1990, p. 58-64.\n\nFor U.S. FED-STD-1016 (4800 bps CELP) _realtime_ DSP code\nand information about products using this code, contact:\n\nJohn DellaMorte\nDSP Software Engineering\n165 Middlesex Tpk, Suite 206\nBedford, MA  01730\n1-617-275-3733\n1-617-275-4323 (fax)\ndspse.bedford@channel1.com\n\nDSP Software Engineering's code can run on a DSP Research's Tiger 30 board\n(a PC board with a TMS320C3x and analog interface suited to development work)\nor on Intellibit's AE2000 TMS320C31 based 3\" by 2.5\" card.\n\nDSP Research                Intellibit\n1095 E. Duane Ave.          P.O. Box 9785\nSunnyvale, CA  94086        McLean, VA  22102-0785\n(408)773-1042               (703)442-4781\n(408)736-3451 (fax)         (703)442-4784 (fax)\n-- \n.............................................................................\n; Joe Campbell  N3JBC  jpcampb@afterlife.ncsc.mil  74040.305@compuserve.com ;\n; My opinions are mine!   Happiness = Reality - Expectations, Click & Clack ;\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10419, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: MORBUS MENIERE - is there a real remedy?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 39\n\nIn article <lindaeC4JGLK.FxM@netcom.com> lindae@netcom.com writes:\n\n>\n>My biggest resentment is the doctor who makes it seem like most\n>people with dizziness can be cured.  That's definitely not the\n>case.  In most cases, like I said above, it is a long, tedious\n>process that may or may not end up in a partial cure.  \n>\n\nBe sure to say \"chronic\" dizziness, not just dizziness.  Most\npatients with acute or subacute dizziness will get better.\nThe vertiginous spells of Meniere's will also eventually go\naway, however, the patient is left with a deaf ear.\n\n\n>To anyone suffering with vertigo, dizziness, or any variation\n>thereof, my best advice to you (as a fellow-sufferer) is this...\n>just keep searching...don't let the doctors tell you there's\n>nothing that can be done...do your own research...and let your\n\nThis may have helped you, but I'm not sure it is good general\nadvice.  The odds that you are going to find some miracle with\nyour own research that is secret or hidden from general knowledge\nfor this or any other disease are slim.  When good answers to these\nproblems are found, it is usually in all the newspapers.  Until\nthen, spending a great deal of time and energy on the medical\nproblem may divert that energy from more productive things\nin life.  A limited amount should be spent to assure yourself\nthat your doctor gave you the correct story, but after it becomes\nclear that you are dealing with a problem for which medicine\nhas no good solution, perhaps the best strategy is to join\nthe support group and keep abreast of new findings but not to\nmake a career out of it.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10420, "properties": {"category": "sci.space", "text": "From: mrf4276@egbsun12.NoSubdomain.NoDomain (Matthew R. Feulner)\nSubject: Re: Lunar Colony Race! By 2005 or 2010?\nNntp-Posting-Host: egbsun12.draper.com\nOrganization: Draper Laboratory\nLines: 18\n\nIn article <1993Apr20.234427.1@aurora.alaska.edu>, nsmca@aurora.alaska.edu writes:\n|> Okay here is what I have so far:\n|> \n|> Have a group (any size, preferibly small, but?) send a human being to the moon,\n|> set up a habitate and have the human(s) spend one earth year on the moon. Does\n|> that mean no resupply or ?? \n|> \n|> Need to find atleast $1billion for prize money.\n\n\nMy first thought is Ross Perot.  After further consideration, I think he'd\nbe more likely to try to win it...but come in a disappointing third.\n\nTry Bill Gates.  Try Sam Walton's kids.\n\nMatt\n\nmatthew_feulner@qmlink.draper.com\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10421, "properties": {"category": "rec.sport.hockey", "text": "From: r_turgeo@oz.plymouth.edu (Randy S. Turgeon)\nSubject: Re: Ottawa/Montreal/Philly trade\nArticle-I.D.: oz.1993Apr6.023843.9689\nReply-To: r_turgeo@oz.plymouth.edu (Randy S. Turgeon)\nOrganization: Plymouth State College - Plymouth, N.H.\nLines: 13\n\n\n  Here we go again. Is this the same idiot who posted the Gretzky\ntrade to Toronto????   Sheeeesh!  You should have waited until we got\nover that one before this garbage, maybe we would have believed it for\nhalf a second (NOT!).\n\n   By the way, I just heard from Mother Goose that Mario Lemieux was\ntraded to Winnpeg for Tie Domi!!!!!\n\n\nRandy\nPSC (I know noone has heard of it, it's a tiny college in Hicksville\nNew Hampshire. Plymouth State College)\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10422, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: elenay_creations@tcs.las-vegas.nv.us (Anthony D. Saxton)\nOrganization: Cyber Sanctum BBS 702.435.2179\nSubject: Re: How long do RAM SIMM's last?\nLines: 10\n\n> > \n> > Doesn't a 1 MB SIMM have about 1024 * 1024 * 8 moving flip-flops?\n> \n> They don't move, to anybody much bigger than an electron :-)\n\nAnd they're more like 1024x1024x8 charging & discharging capacitors in a DRAM\nSIMM =-)\n\nAnthony D. Saxton\nElenay Creations\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10423, "properties": {"category": "sci.electronics", "text": "From: mgregory@flash.pax.tpa.com.au (Martin John Gregory)\nSubject: HELP: MC146818A Real Time Clock Standby Mode\nOrganization: PAX - Public Access Unix (Adelaide)\nLines: 24\nNNTP-Posting-Host: flash.pax.tpa.com.au\n\n\nI am having trouble obtaining the specified standby current drain from\na MC146818A Real Time Clock.  Has anyone out there had some experience\nin doing this?  The specs call for a few sequences to be met before\nstandby mode is activated, and are a bit hard to decipher on that, but\nI thought that I had it worked out.  However, with a 32kHz crystal the\nlowest current drain I can acheive at 3.7V Vcc is 150uA.  This is\nthree times the specified MAXIMUM under the conditions I am attempting\nto create.\n\nI have done the following things:\n\n1) Made sure that RESET/ is asserted for Trlh after powerup, and AS is\n   low during this time.\n\n\n2) Made sure that there is a cycle on AS after the negation of RD/ or\n   WR/ during which STBY/ was asserted.\n\nWhat am I doing wrong?\n\nThanks very much,\n\nMartin.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10424, "properties": {"category": "rec.sport.hockey", "text": "From: slacelle@gandalf.ca (Stephane Lacelle)\nSubject: Bridgman is out\nOrganization: Gandalf Data Ltd.\nLines: 8\n\nThe Ottwawa Senators fired Mel Bridgman at 1:00 PM today.\nRandy Sexton is gonna replace him.\n\n-- \n=====================================================================\nStephane Lacelle\t\t\t\t\nS/W engineer                    Insert .sig here\t\t\t\t\nGandalf Data Ltd                                                    \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10425, "properties": {"category": "comp.graphics", "text": "From: esuoc@csv.warwick.ac.uk (Ajay Soni)\nSubject: Re: Please Recommend 3D Graphics Library For M\nOrganization: Computing Services, University of Warwick, UK\nLines: 44\nDistribution: world\nReply-To: esuoc@csv.warwick.ac.uk\nNNTP-Posting-Host: thyme.csv.warwick.ac.uk\n\n\n\n\nIn article 2G1@bcstec.ca.boeing.com, rgc3679@bcstec.ca.boeing.com (Robert G. Carpenter) writes:\n>Hi Netters,\n>\n>I'm building a CAD package and need a 3D graphics library that can handle\n>some rudimentry tasks, such as hidden line removal, shading, animation, etc.\n>\n>Can you please offer some recommendations?\n>\n>I'll also need contact info (name, address, email...) if you can find it.\n>\n>Thanks\n>\n>(Please Post Your Responses, in case others have same need)\n>\n>Bob Carpenter\n>\n\nI've been given the sites of some excellent 3D objects on all sorts of file formats ...\nHere's where they are:\n\n\nHost plaza.aarnet.edu.au\n\n    Location: /graphics/graphics/mirrors\n      DIRECTORY drwxr-xr-x        512  Apr  4 14:32  avalon.chinalake.navy.mil\n\nHost compute1.cc.ncsu.edu\n\n    Location: /mirrors/wustl/graphics/graphics/mirrors\n      DIRECTORY drwxr-xr-x        512  Mar 14 09:15  avalon.chinalake.navy.mil\n\nHost wuarchive.wustl.edu\n\n    Location: /graphics/graphics/mirrors\n      DIRECTORY drwxr-xr-x        512  Jan  3 06:29  avalon.chinalake.navy.mil\n\n\nSee ya!\n\t\t\t\t\tAjay 8*)\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10426, "properties": {"category": "sci.crypt", "text": "From: cme@ellisun.sw.stratus.com (Carl Ellison)\nSubject: Re: Hard drive security\nOrganization: Stratus Computer, Software Engineering\nLines: 18\nNNTP-Posting-Host: ellisun.sw.stratus.com\nKeywords: cooperation\n\nIn article <m5c5fkj@rpi.edu> antonh@rpi.edu writes:\n>say, can anyone send my info on how to encrpyt a hard disk [...]\n>ps.  I would also like know the consequences of those types of actions if i\n>so chose to do them in the future in this country and european countries.\n\nPeople have been encrypting notes in their notebooks for hundreds of years\n-- maybe over a thousand.  It's a long tradition dating at least back to\nthe alchemists.\n\nI know of nothing bad happening to them.  I would assume that nothing bad\nwould happen to you, given this long history establishing encryption as\nthe property of individuals, to do with as they please.\n\n-- \n - <<Disclaimer: All opinions expressed are my own, of course.>>\n - Carl Ellison                                        cme@sw.stratus.com\n - Stratus Computer Inc.       M3-2-BKW                TEL: (508)460-2783\n - 55 Fairbanks Boulevard ; Marlborough MA 01752-1298  FAX: (508)624-7488\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10427, "properties": {"category": "talk.religion.misc", "text": "From: lfoard@hopper.Virginia.EDU (Lawrence C. Foard)\nSubject: Re: 666 - MARK OF THE BEAST - NEED INFO\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 15\n\nOn a slightly different note:\n\nThere are two buildings in NY state with big 666 numbers on the\nroof :)\n\nOne in Manhattan and one near Garden City. The Garden City one\nis a nice black unmarked building...\n\n\n-- \n------          Join the Pythagorean Reform Church!               .\n\\    /        Repent of your evil irrational numbers             . .\n \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n  \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n    \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10428, "properties": {"category": "sci.med", "text": "From: bmdelane@midway.uchicago.edu (brian manning delaney)\nSubject: RESULT: sci.life-extension passes 237:28\nOrganization: University of Chicago\nLines: 284\nNNTP-Posting-Host: rodan.uu.net\n\nThe vote to create the proposed group, Sci.life-extension, was\naffirmative.\n\nYes votes:    237.\nNo votes:      28.\n\nWhat follows is a list of the people who voted, by vote (\"no\" or \"yes\").\n\nHere are the people who voted NO:\n\nbailey@utpapa.ph.utexas.edu               (Ed Bailey)\nbarkdoll@lepomis.psych.upenn.edu          (Edwin Barkdoll)\nmsb@sq.com                                (Mark Brader)\ncarr@acsu.buffalo.edu                     (Dave Carr)\ndesj@ccr-p.ida.org                        (David desJardins)\njbh@Anat.UMSMed.Edu                       (James B. Hutchins)\nrsk@gynko.circ.upenn.edu                  (Rich Kulawiec)\nstu@valinor.mythical.com                  (Stu Labovitz)\nlau@ai.sri.com                            (Stephen Lau)\nplebrun@minf8.vub.ac.be                   (Philippe Lebrun)\njmaynard@nyx.cs.du.edu                    (Jay Maynard)\nemcguire@intellection.com                 (Ed McGuire)\nrick@crick.ssctr.bcm.tmc.edu              (Richard H. Miller)\nsmarry@zooid.guild.org                    (Marc Moorcroft)\ndmosher@nyx.cs.du.edu                     (David Mosher)\nejo@kaja.gi.alaska.edu                    (Eric J. Olson)\nhmpetro@mosaic.uncc.edu                   (Herbert M Petro)\nsmith-una@YALE.EDU                        (Una Smith)\nmmt@RedBrick.COM                          (Maxime Taksar KC6ZPS)\nurlichs@smurf.sub.org                     (Matthias Urlichs)\nac999266@umbc.edu                         (a Francis Uy)\nwerner@SOE.Berkeley.Edu                   (John Werner)\nwick@netcom.com                           (Potter Wickware)\nggw@wolves.Durham.NC.US                   (Gregory G. Woodbury)\nD.W.Wright@bnr.co.uk                      (D. Wright)\nyarvin-norman@CS.YALE.EDU                 (Norman Yarvin)\nask@cblph.att.com\nspm2d@opal.cs.virginia.edu\n\nHere are the people who voted YES:\n\nFSSPR@ACAD3.ALASKA.EDU                    (Hardcore Alaskan)\nkalex@eecs.umich.edu                      (Ken Alexander)\nph600fht@sdcc14.UCSD.EDU                  (Alex Aumann)\nfranklin.balluff@Syntex.Com               (Franklin Balluff)\nbarash@umbc.edu                           (Mr. Steven Barash)\nbuild@alan.b30.ingr.com               (Alan Barksdale (build))\nlion@TheRat.Kludge.COM                    (John H. Barlow)\npbarto@UCENG.UC.EDU                       (Paul Barto)\nryan.bayne@canrem.com                     (Ryan Bayne)\nmignon@shannon.Jpl.Nasa.Gov               (Mignon Belongie)\nbeaudot@tirf.grenet.fr                    (william Beaudot)\nlavb@lise.unit.no                         (Olav Benum)\nross@bryson.demon.co.uk                   (Ross Beresford)\nben.best@canrem.com                       (Ben Best)\nlevi@happy-man.com                        (Levi Bitansky)\njsb30@dagda.Eng.Sun.COM                   (James Blomgren)\ngbloom@nyx.cs.du.edu                      (Gregory Bloom)\nmbrader@netcom.com                        (Mark Brader)\nebrandt@jarthur.Claremont.EDU             (Eli Brandt)\ndoom@leland.stanford.edu                  (Joseph Brenner)\nrc@pos.apana.org.au                       (Robert Cardwell)\njeffjc@binkley.cs.mcgill.ca               (Jeffrey CHANCE)\nsasha@cs.umb.edu                          (Alexander Chislenko)\nmclark@world.std.com                      (Maynard S Clark)\n100042.2703@CompuServe.COM                (\"A.J. Clifford\")\ncoleman@twinsun.com                       (Mike Coleman)\nsteve@constellation.ecn.uoknor.edu        (Steve Coltrin)\ncollier@ivory.rtsg.mot.com                (John T. Collier)\ncompton@plains.NoDak.edu                  (Curtis M. Compton) \nbobc@master.cna.tek.com                   (Bob Cook)\ncordell@shaman.nexagen.com                (Bruce Cordell)\ncormierj@ERE.UMontreal.CA                 (Cormier Jean-Marc)\ndjcoyle@macc.wisc.edu                     (Douglas J. Coyle)\ndass0001@student.tc.umn.edu               (\"John R Dassow-1\")\nbdd@onion.eng.hou.compaq.com              (Bruce Davis)\ndemonn@emunix.emich.edu                   (Kenneth Jubal DeMonn)\ndesilets@sj.ate.slb.com                   (Mark Desilets)\nmarkd@sco.COM                             (Mark Diekhans)\nkari@teracons.teracons.com                (Kari Dubbelman)\nlhdsy1!cyberia.hou281.chevron.com!hwdub@uunet.UU.NET (Dub Dublin)\nwilldye@helios.unl.edu                    (Will Dye)\n155yegan%jove.dnet.measurex.com@juno.measurex.com (TERRY EGAN)\neder@hsvaic.boeing.com                    (Dani Eder)\nglenne@magenta.HQ.Ileaf.COM               (Glenn Ellingson)\nfarrar@adaclabs.com                       (Richard Farrar)\nghsvax!hal@uunet.UU.NET                   (Hal Finney)\nlxfogel@srv.PacBell.COM                   (Lee Fogel)\nafoxx@foxxjac.b17a.ingr.com               (Foxx)\ni000702@disc.dla.mil               (sam frajerman,sppb,x3026,)\nmpf@medg.lcs.mit.edu                      (Michael P. Frank)\nMartin.Franklin@Corp.Sun.COM              (Martin Franklin)\ntiff@CS.UCLA.EDU                          (Tiffany Frazier)\nAiling_Zhu_Freeman@U.ERGO.CS.CMU.EDU      (Ailing Freeman)\nTimothy_Freeman@U.ERGO.CS.CMU.EDU         (Tim Freeman)\ngt0657c@prism.gatech.edu                  (geoff george)\nmtvdjg@rivm.nl                            (Daniel Gijsbers)\nexusag@exu.ericsson.se                    (Serena Gilbert)\nrlglende@netcom.com                (Robert Lewis Glendenning)\ngoetz@cs.Buffalo.EDU                      (Phil Goetz)\ngoolsby@dg-rtp.dg.com                     (Chris Goolsby)\ndgordon@crow.omni.co.jp                   (David Gordon)\nbgrahame@eris.demon.co.uk                 (Robert D Grahame)\nsascsg@unx.sas.com                        (Cynthia Grant)\ngreen@srilanka.island.COM                 (Robert Greenstein)\njohng@oce.orst.edu                        (John A. Gregor)\nroger@netcom.com                          (roger gregory)\nevans-ron@CS.YALE.EDU                     (Ron Hale-Evans)\nbrent@vpnet.chi.il.us                     (Brent Hansen)\nRon.G.Hay@med.umich.edu                   (Ron G. Hay)\nakh@empress.gvg.tek.com                   (Anna K. Haynes)\nclaris!qm!Bob_Hearn@ames.arc.nasa.gov     (Robert Hearn)\nfheyligh@vnet3.vub.ac.be                  (Francis Heylighen)\nhin9@midway.uchicago.edu                  (P. Hindman)\nfishe@casbah.acns.nwu.edu                 (Carwil James)\njanzen@mprgate.mpr.ca                     (Martin Janzen)\nkarp@skcla.monsanto.com                   (Jeffery M Karp)\nrk2@elsegundoca.ncr.com                   (Richard Kelly)\nmerklin@gnu.ai.mit.edu                    (Ed Kemo)\nkessner@rintintin.Colorado.EDU            (KESSNER ERIC M)\nmapam@csv.warwick.ac.uk                   (Mr R A Khwaja)\nkoski@sunset.cs.utah.edu                  (Keith Koski)\nkathi@bridge.com                          (Kathi Kramer)\nbenkrug@jupiter.fnbc.com                  (Ben Krug)\nfarif@eskimo.com                          (David Kunz)\nedsr!edsdrd!sel@uunet.UU.NET              (Steve Langs)\npa_hcl@MECENG.COE.NORTHEASTERN.EDU        (Henry Leong)\nS.Linton@pmms.cam.ac.uk                   (Steve Linton)\nalopez@cs.ep.utexas.EDU                   (Alejandro Lopez 6330)\nkfl@access.digex.com                      (\"Keith F. Lynch\")\nKAMCHAR@msu.edu                           (Charles MacDonald)\nrob@vis.toronto.edu                       (Robert C. Majka)\nphil@starconn.com                         (Phil Marks)\ncam@jackatak.raider.net                   (Cameron Marshall)\nmmay@mcd.intel.com                        (Mike May ~)\ndrac@uumeme.chi.il.us                     (Bruce Maynard)\ni001269@discg2.disc.dla.mil               (john mccarrick)\nxyzzy@imagen.com                          (David McIntyre)\ncuhes@csv.warwick.ac.uk                   (Malcolm McMahon)\nmcpherso@macvax.UCSD.EDU                  (John Mcpherson)\nmerkle@parc.xerox.com                     (Ralph Merkle)\neric@Synopsys.COM                         (Eric Messick)\npmetzger@shearson.com                     (Perry E. Metzger)\ngmichael@vmd.cso.uiuc.edu                 (Gary R. Michael)\ndat91mas@ludat.lth.se                     (Asker Mikael)\nMILLERL@WILMA.WHARTON.UPENN.EDU           (\"Loren J. Miller\")\nminsky@media.mit.edu                      (Marvin Minsky)\npmorris@lamar.ColoState.EDU               (Paul Morris)\nMark_Muhlestein@Novell.COM                (Mark Muhlestein)\ndavid@staff.udc.upenn.edu                 (R. David Murray)\ngananney@mosaic.uncc.edu                  (Glenn A Nanney)\nanthony@meaddata.com                      (Anthony Napier)\ndniman@panther.win.net                    (Donald E. Niman)\nnistuk@unixg.ubc.ca                       (Richard Nistuk)\nJonathan@RMIT.EDU.AU                      (Jonathan O'Donnell)\nmartino@gomez.Jpl.Nasa.Gov                (Martin R. Olah)\ncpatil@leland.stanford.edu          (Christopher Kashina Patil)\ncrp5754@erfsys01.boeing.com               (Chris Payne)\nsharon@acri.fr                            (Sharon Peleg)\nphp@rhi.hi.is                             (Petur Henry Petersen)\nchrisp@efi.com                            (Chris Phoenix)\npierce@CS.UCLA.EDU                        (Brad Pierce)\njulius@math.utah.edu                      (\"Julius Pierce\")\ndplatt@cellar.org                         (Doug Platt)\nMitchell.Porter@lambada.oit.unc.edu       (Mitchell Porter)\ncpresson@jido.b30.ingr.com                (Craig Presson)\nprice@price.demon.co.uk                   (Michael Clive Price)\nU39554@UICVM.BITNET                       (Edward S. Proctor)\nstevep@deckard.Works.ti.com               (Steve Pruitt)\nMJQUINN@PUCC.BITNET                       (Michael Quinn)\nrauss@nvl.army.mil                        (Patrick Rauss)\nremke@cs.tu-berlin.de                     (\"Jan K. Remke\")\nag167@yfn.ysu.edu                         (Barry H. Rodin)\nksackett@cs.uah.edu                       (Karl R. Sackett)\nrcs@cs.arizona.edu                        (Richard Schroeppel)\nfschulz@pyramid.com                       (Frank Schulz)\nkws@Thunder-Island.kalamazoo.MI.US        (Karel W. Sebek)\nbseewald@gozer.idbsu.edu                  (Brad Seewald)\nshapard@manta.nosc.mil                    (Thomas D. Shapard)\nhabs@Panix.Com                            (Harry Shapiro)\nmuir@idiom.berkeley.ca.us                 (David Muir Sharnoff)\ndasher@well.sf.ca.us                      (D Anton Sherwood)\nzero@netcom.com                           (Richard Shiflett)\nAP201160@BROWNVM.BITNET                   (Elaine Shiner)\nrobsho@robsho.Auto-trol.COM               (Robert Shock)\nrshvern@gmuvax2.gmu.edu                   (Rob Shvern)\nwesiegel@cie-2.uoregon.edu                (William Siegel)\nggyygg@mixcom.mixcom.com                  (Kenton Sinner)\nbsmart@bsmart.tti.com                     (Bob Smart)\ntonys@ariel.ucs.unimelb.EDU.AU            (Anthony David Smith)\nsgccsns@citecuc.citec.oz.au               (Shayne Noel Smith)\ndsnider@beta.tricity.wsu.edu              (Daniel L Snider)\nsnyderg@spot.Colorado.EDU                 (SNYDER GARY EDWIN JR)\nblupe@ruth.fullfeed.com                   (Brian Arthur Stewart)\nlhdsy1!usmi02.midland.chevron.com!tsfsi@uunet.UU.NET (Sigrid\nStewart)\nnat@netcom.com                            (Nathaniel Stitt)\ntps@biosym.com                            (Tom Stockfisch)\nstodolsk@andromeda.rutgers.edu            (David Stodolsky)\ngadget@dcs.warwick.ac.uk                  (Steve Strong)\ncarey@CS.UCLA.EDU                         (Carey Sublette)\njsuttor@netcom.com                        (Jeff Suttor)\nswain@cernapo.cern.ch                     (John Swain)\nszabo@techbook.com                        (Nick Szabo)\nptheriau@netcom.com                       (P. Chris Theriault)\nak051@yfn.ysu.edu                         (Chris Thompson)\ngunnar.thoresen@bio.uio.no                (Gunnar Thoresen)\ndreamer@uxa.cso.uiuc.edu                  (Andrew Trapp)\njerry@cse.lbl.gov                         (Jerry Tunis)\nmusic@parcom.ernet.in                     (Rajeev Upadhye)\ntreon@u.washington.edu                    (Treon Verdery)\nevore@magnus.acs.ohio-state.edu           (Eric J Vore)\nU13054@UICVM.BITNET                       (Howard Wachtel)\nsusan@wpi.WPI.EDU                         (Susan C Wade)\n70023.3041@CompuServe.COM                 (Paul Wakfer)\newalker@it.berklee.edu                    (\"Elaine Walker\")\njew@rt.sunquest.com                       (James Ward)\njeremy@ai.mit.edu                         (Jeremy M. Wertheimer)\nbw@ws029.torreypinesca.NCR.COM            (Bruce White 3807)\nweeds@strobe.ATC.Olivetti.Com             (Mark Wiedman)\nwiesel-elisha@CS.YALE.EDU                 (Elisha Wiesel)\nWILLINGP@gar.union.edu                    (WILLING, PAUL)\nsmw@alcor.concordia.ca                    (Steven Winikoff)\nwright@hicomb.hi.com                      (David Wright)\nebusew@anah.ericsson.com                  (Stephen Wright 66667)\nliquidx@cnexus.cts.com                    (Liquid-X)\nxakellis@uivlsisl.csl.uiuc.edu            (Michael G. Xakellis)\ncs012113@cs.brown.edu                     (Ion Yannopoulos)\nyazz@lccsd.sd.locus.com                   (Bob Yazz)\nlnz@lucid.com                             (Leonard N. Zubkoff)\n62RSE@npd1.ufpe.br\nadwyer@mason1.gmu.edu\nART@EMBL-Hamburg.DE\natfurman@cup.portal.com\nbillw@attmail.att.com\ncarl@red-dragon.umbc.edu\ncarlf@ai.mit.edu\ncccbbs!chris.thompson@UCENG.UC.EDU\nCCGARCIA@MIZZOU1.BITNET\nclayb@cellar.org\ndack@permanet.org\ndaedalus@netcom.com\ndanielg@autodesk.com\nDave-M@cup.portal.com\nF_GRIFFITH@CCSVAX.SFASU.EDU\ngarcia@husc.harvard.edu\ngav@houxa.att.com\nhammar@cs.unm.edu\nherbison@lassie.ucx.lkg.dec.com\nhhuang@Athena.MIT.EDU\nhkhenson@cup.portal.com\nirving@happy-man.com\njeckel@amugw.aichi-med-u.ac.jp\njgs@merit.edu\njmeritt@mental.mitre.org\nJonas_Marten_Fjallstam@cup.portal.com\nkqb@whscad1.att.com\nLPOMEROY@velara.sim.es.com\nlubkin@apollo.hp.com\nkunert@wustlb.wustl.edu\nLINYARD_M@XENOS.a1.logica.co.uk\nM.Michelle.Wrightwatson@att.com\nmoselecw@elec.canterbury.ac.nz\nnaoursla@eos.ncsu.edu\nng4@husc.harvard.edu\npase70!dchapman@uwm.edu\npocock@math.utah.edu\nRUDI@HSD.UVic.CA\nSCOTTJOR@delphi.com\nstanton@ide.com\nsteveha@microsoft.com\nstu1016@DISCOVER.WRIGHT.EDU\nSYang.ES_AE@xerox.com\ntim.hruby@his.com\nTodd.Kaufmann@FUSSEN.MT.CS.CMU.EDU\ntom@genie.slhs.udel.edu\nUC482529@MIZZOU1.BITNET\nWMILLER@clust1.clemson.edu\nyost@mv.us.adobe.com\n\n(The group still passes if you don't count the people for\nwhom I just have email address.)\n\n-Brian <bmdelane@midway.uchicago.edu>\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10429, "properties": {"category": "sci.med", "text": "From: akins@cbnewsd.cb.att.com (kay.a.akins)\nSubject: Seizure information - infant\nOrganization: AT&T\nKeywords: seizures\nLines: 8\n\nHere is the tollfree hotline for the Epilepsy Foundation\nof America - 1-800-EFA-1000.  They will be able to answer\nyour questions and send you information and references on\nseizure types, medication, etc.  They can also give you references\nfor a pediatric neorologist in your area.  Also ask for the \nnumber of your local Foundation who can put you in touch with\na Parent Support Group and social workers.\nGood Luck.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10430, "properties": {"category": "sci.space", "text": "From: wingo%cspara.decnet@Fedex.Msfc.Nasa.Gov\nSubject: Re: NASA \"Wraps\"\nOrganization: University of Houston\nLines: 160\nDistribution: world\nNNTP-Posting-Host: judy.uh.edu\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr18.034101.21934@iti.org>, aws@iti.org (Allen W. Sherzer) writes...\n>In article <17APR199316423628@judy.uh.edu> wingo%cspara.decnet@Fedex.Msfc.Nasa.Gov writes:\n> \n>>I don't care who told you this it is not generally true. I see EVERY single\n>>line item on a contract and I have to sign it. There is no such thing as\n>>wrap at this university. \n> \n>Dennis, I have worked on or written proposals worth tens of millions\n>of $$. Customers included government (including NASA), for profit and\n>non-profit companies. All expected a wrap (usually called a fee). Much\n>of the work involved allocating and costing the work of subcontractors.\n>The subcontractors where universities, for-profits, non-profits, and\n>even some of the NASA Centers for the Commercialization of Space. ALL\n>charged fees as part of the work. Down the street is one of the NASA\n>commercialization centers; they charge a fee.\n> \n\nYou totally forgot the original post that you posted Allen. In that post\nyou stated that the \"wrap\" was on top of and in addition to any overhead.\nGeez in this post you finally admit that this is not true.\n\n>Now, I'm sure your a competent engineer Dennis, but you clearly lack\n>experience in several areas. Your posts show that you don't understand\n>the importance of integration in large projects. You also show a lack\n>of understanding of costing efforts as shown by your belief that it\n>is reasonable to charge incremental costs for everything. This isn't\n>a flame, jsut a statement.\n\nCome your little ol buns down here and you will find out who is doing\nwhat and who is working on integration. This is simply an ad hominum\nattack and you know it.\n\n> \n>Your employer DOES charge a fee. You may not see it but you do.\n>\n\nOf course there is a fee. It is for administration. Geez Allen any\norganization has costs but there is a heck of a difference in  legitimate\ncosts, such as libraries and other things that must be there to support\na program and \"wrap\" as you originally stated it.You stated that wrap\nwas on top of all of the overhead which a couple of sentences down you\nsay is not true. Which is it Allen?\n\n>>>Sounds like they are adding it to their overhead rate. Go ask your\n>>>costing people how much fee they add to a project.\n> \n>>I did they never heard of it but suggest that, like our president did, that\n>>any percentage number like this is included in the overhead.\n> \n>Well there you are Dennis. As I said, they simply include the fee in\n>their overhead. Many seoparate the fee since the fee structure can\n>change depending on the customer.\n>\n\nAs you have posted on this subject Allen, you state that wrap is over and\nabove overhead and is a seperate charge. You admit here that this is wrong.\nNasa has a line item budget every year. I have seen it Allen. Get some\nnumbers from that detailed NASA budget and dig out the wrap numbers and then\nhowl to high heaven about it. Until you do that you are barking in the wind.\n\n>>No Allen you did not. You merely repeated allegations made by an Employee\n>>of the Overhead capital of NASA. \n> \n>Integration, Dennis, isn't overhead.\n> \n>>Nothing that Reston does could not be dont\n>>better or cheaper at the Other NASA centers  where the work is going on.\n>\n\nIntegration could be done better at the centers. Apollo integration was \ndone here at Msfc and that did not turn out so bad. The philosophy of\nReston is totally wrong Allen. There you have a bunch of people who are\ncompletely removed from the work that they are trying to oversee. There\nis no way that will ever work. It has never worked in any large scale project\nthat it was ever tried on. Could you imagine a Reston like set up for \nApollo?\n\n>Dennis, Reston has been the only NASA agency working to reduce costs. When\n>WP 02 was hemoraging out a billion $$, the centers you love so much where\n>doing their best to cover it up and ignore the problem. Reston was the\n>only place you would find people actually interested in solving the\n>problems and building a station.\n>\n\nOh you are full of it Allen on this one. I agree that JSC screwed up big.\nThey should be responsible for that screw up and the people that caused it\nreplaced. To make a stupid statement like that just shows how deep your\nbias goes. Come to MSFC for a couple of weeks and you will find out just\nhow wrong you really are. Maybe not, people like you believe exactly what\nthey want to believe no matter  what the facts are contrary to it. \n\n>>Kinda funny isn't it that someone who talks about a problem like this is\n>>at a place where everything is overhead.\n> \n>When you have a bit more experience Dennis, you will realize that\n>integration isn't overhead. It is the single most important part\n>of a successful large scale effort.\n>\n\nI agree that integration is the single most important part of a  successful\nlarge scale effort. What I completly disagree with is seperating that\nintegration function from  the people that are doing the work. It is called\nleadership Allen. That is what made Apollo work. Final responsibility for\nthe success of Apollo was held by less than 50 people. That is leadership\nand responsibility. There is neither when you have any organization set up\nas Reston is. You could take the same people and move them to JSC or MSFC\nand they could do a much better job. Why did it take a year for Reston to\nfinally say something about the problem? If they were on site and part of the\nprocess then the problem would have never gotten out of hand in the first place.\n\nThere is one heck of a lot I do not know Allen, but one thing I do know is that\nfor a project to be successful you must have leadership. I remember all of the\nturn over at Reston that kept SSF program in shambles for years do you? It is\nlack of responsibility and leadership that is the programs problem. Lack of\nleadership from the White House, Congress and at Reston. Nasa is only a\nsymptom of a greater national problem. You are so narrowly focused in your\nefforts that you do not see this.\n\n>>Why did the Space News artice point out that it was the congressionally\n>>demanded change that caused the problems? Methinks that you are being \n>>selective with the facts again.\n> \n>The story you refer to said that some NASA people blamed it on\n>Congress. Suprise suprise. The fact remains that it is the centers\n>you support so much who covered up the overheads and wouldn't address\n>the problems until the press published the story.\n> \n>Are you saying the Reston managers where wrong to get NASA to address\n>the overruns? You approve of what the centers did to cover up the overruns?\n>\n\nNo, I am saying that if they were located at JSC it never would have \nhappened in the first place.\n\n>>If it takes four flights a year to resupply the station and you have a cost\n>>of 500 million a flight then you pay 2 billion a year. You stated that your\n>>\"friend\" at Reston said that with the current station they could resupply it\n>>for a billion a year \"if the wrap were gone\". This merely points out a \n>>blatent contridiction in your numbers that understandably you fail to see.\n> \n>You should know Dennis that NASA doesn't include transport costs for\n>resuply. That comes from the Shuttle budget. What they where saying\n>is that operational costs could be cut in half plus transport.\n> \n>>Sorry gang but I have a deadline for a satellite so someone else is going\n>>to have to do Allen's math for him for a while. I will have little chance to\n>>do so.\n> \n>I do hope you can find the time to tell us just why it was wrong of\n>Reston to ask that the problems with WP 02 be addressed.\n> \nI have the time to reitereate one more timet that if the leadership that is\nat reston was on site at JSC the problem never would have happened, totally\nignoring the lack of leadership of congress. This many headed hydra that\nhas grown up at NASA is the true problem of the Agency and to try to \nchange the question to suit you and your bias is only indicative of\nyour position.\n\nDennis, University of Alabama in Huntsville\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10431, "properties": {"category": "comp.graphics", "text": "From: ukrphil@prlhp1.prl.philips.co.uk (M.J.Phillips)\nSubject: Re: Rumours about 3DO ???\nReply-To: ukrphil@prlhp1.UUCP (M.J.Phillips)\nOrganization: Philips Research Laboratories, Redhill, UK\nLines: 7\n\nThe 68070 _does_ exist. It's number was licensed to Philips to make their\nown variant. This chip includes extra featurfes such as more I/O ports, \nI2C bus... making it more microcontroller like.\n\nBecause of the confusion with numbering (!), Philips other products in the\n[range with the 68??? core have been given differend numbers like PCF...\nor PCD7.. or something.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10432, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: Overreacting (was Re: Once tapped, your code is no good any more)\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 13\nDistribution: na\nNNTP-Posting-Host: access.digex.net\n\n > Somebody asked me what was wrong about overreacting in cases such as this.\n >\n > The reason is very simple:  How many people do you want to die in a riot?\n >In a new Civil War?\n\n  Not me -- which is precisely why the government must be cut off at the\nknees when it pulls stunts like this, lest the situation worsen to the point\nwhere extreme measures are required.\n\n\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.489+0000", "event": "documents", "entityId": 10433, "properties": {"category": "rec.autos", "text": "From: jackw@boi.hp.com (jack wood)\nSubject: BBB Autoline Arbitration\nOrganization: Hewlett-Packard / Boise, Idaho\nX-Newsreader: TIN [version 1.1.4 PL6]\nKeywords: bbb arbitration lemon\nLines: 46\n\n\nMy BBB Autoline arbitration experience is over.  \nThe outcome was decidedly mixed.  I won the battle but \nlost the war.  The arbitrator found that the car was \ndefective, but decided to offer a repurchase well below \nmarket value :(.  At the time of the hearing, average \nretail on my truck in the NADA book was $21,025, but \nthe decision was for  $17,665.  I wrote a letter to the \nCouncil of Better Business Bureaus pointing out the \nfact that if you have an automobile that does not \ndepreciate rapidly, the manufacturer has no incentive \nto deal with you.  There is no way that the \nmanufacturer can loose because they can turn around and \nsell the vehicle at a profit if the consumer is awarded \na repurchase.  The attitude of Chevrolet's \nrepresentative at the hearing tends to support this \npoint of view;  he was totally unprepared and did not \nseem to take the proceeding very seriously.\n\nI decided to take the repurchase, even though I am \ngetting totally screwed on the price.  I will not have \nto deal with continuing repairs or selling a lemon \nmyself, and I have no case for a civil suit based on \nthe Idaho lemon law.  I am planning to send a letter to \nmy elected representatives telling them how utterly \nridiculous the Idaho lemon law is.  The law allows for \na \"use deduction\" equal to the IRS mileage allowance.  \nAs if Chevrolet were buying my gas and paying \nfor my insurance.\n\nSummary of the case:  In May 1992 I bought a new 3/4 ton\nHD Chevrolet pickup.  Between May 1992 and December 1992 \nthis vehicle required repair after repair.  Systems \nthat required attention included the transmission, \nheater fan, paint, suspension, and motor.  The main \nproblem was the five speed manual transmission.  They \ncould not install a non-defective transmission in at \nleast four attempts.\n\nSo, in summary, it is possible to get a repurchase, but \nyou are going to get screwed on the price, unless you \npaid too much in the first place, or if your car \nhappens to be a model that depreciates rapidly.\n\njackw@hpdmd48.boi.hp.com\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10434, "properties": {"category": "rec.motorcycles", "text": "From: leavitt@cs.umd.edu (Mr. Bill)\nSubject: Re: Countersteering_FAQ please post\nOrganization: The Cafe at the Edge of the Universe\nLines: 43\n\nmjs@sys.uea.ac.uk (Mike Sixsmith) writes:\nmjs>Secondly, it is the adhesion of the\nmjs>tyre on the road, the suspension geometry  and the ground clearance of the\nmjs> motorcycle which dictate how quickly you can swerve to avoid obstacles, and\nmjs>not the knowledge of physics between the rider's ears. Are you seriously\n            ^^^^^^^^^^^^^^^^^^^^\nmjs>suggesting that countersteering knowledge enables you to corner faster\nmjs>or more competentlY than you could manage otherwise??\n\negreen@east.sun.com writes:\ned>If he's not, I will.  \n\nHey Ed, you didn't give me the chance!  Sheesh!\n\nThe answer is, absolutely!, as Ed so eloquently describes:\n\ned>Put two riders on identical machines.  It's the\ned>one who knows what he's doing, and why, that will be faster.  It *may*\ned>be possible to improve your technique if you have no idea what it is,\ned>through trial and error, but it is not very effective methodology.\ned>Only by understanding the technique of steering a motorcycle can one\n                             ^^^^^^^^^^^^^^^^^^^^^\ned>improve on that technique (I hold that this applies to any human\ned>endeavor).\n\nHerein lies the key to this thread:\n\nKindly note the difference in the responses.  Ed (and I) are talking\nabout knowing riding technique, while Mike is arguing knowing the physics\nbehind it.  It *is* possible to be taught the technique of countersteering\n(ie: push the bar on the inside of the turn to go that way) *without*\nhaving to learn all the fizziks about gyroscopes and ice cream cones\nand such as seen in the parallel thread.  That stuff is mainly of interest\nto techno-motorcycle geeks like the readers of rec.motorcycles  ;^),\nbut doesn't need to be taught to the average student learning c-steering.\nMike doesn't seem to be able to make the distinction.  I know people\nwho can carve circles around me who couldn't tell you who Newton was.\nOn the other hand, I know very intelligent, well-educated people who\nthink that you steer a motorcycle by either: 1) leaning, 2) steering\na la bicycles, or 3) a combination of 1 and 2.  Knowledge of physics\ndoesn't get you squat - knowledge of technique does!\n\nMr. Bill\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10435, "properties": {"category": "misc.forsale", "text": "From: smh2@crux3.cit.cornell.edu (Seenu M Hariprasad)\nSubject: SONY MHC-3600 BOOKSHELF STEREO SYSTEM\nNntp-Posting-Host: crux3.cit.cornell.edu\nOrganization: Cornell University\nLines: 25\n\n Forsale:\n SONY MHC-3600 HI-FI Bookshelf stereo system\n -9 months old\n -CD player\n -2 tape decks\n -Digital graphic equilizer\n -Tuner\n -4 speakers 60watts/channel\n -TOP OF THE LINE SONY BOOKSHELF SYSTEM\n\n Includes amazing remote that actually splits into two! Everything\n can be done from the remote (remote has digital display!).\n Has the highest quality sound-amazing bass!\n Not one scratch on system. VERY WELL TAKEN CARE OF.\n\n Originally purchased for $1299 + tax.\n I need cash, and I am looking to get around $750 for it.\n Since I really need the money, I will sell it to the person who gives me\n the highest offer, and I WILL ACCEPT THE BEST OFFER if not $750.\n Buyer pays insured shipping.\n\n Reply soon if intereseted.\n\n Thanks.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10436, "properties": {"category": "rec.sport.hockey", "text": "Subject: Re: Who picks first?\nFrom: caldwell8102@mtroyal.ab.ca\nOrganization: Mount Royal College, Calgary, Alberta\nLines: 11\n\nIn article <1993Apr17.181421.14349@epas.toronto.edu>, sclark@epas.utoronto.ca (Susan Clark) writes:\n> \tAccording to THE FAN here in T.O., Ottawa has won the Daigle e\n> sweepstakes.  They didn't mention why, but San Jose had more goals\n> than the Sen-sens, so I have a hunch this is why Ottawa would pick\n> first.....\n\nIf I'm not mistaken, San Jose had more wins than Ottawa. First tiebreaker in\nthe NHL is always most wins.\n\n\t\t\t\t\t\t\t\tAlan\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10437, "properties": {"category": "sci.space", "text": "From: steinly@topaz.ucsc.edu (Steinn Sigurdsson)\nSubject: Re: Commercial mining activities on the moon\nOrganization: Lick Observatory/UCO\nLines: 42\n\t<STEINLY.93Apr20145301@topaz.ucsc.edu>\n\t<1993Apr20.223807.16712@cs.rochester.edu>\nNNTP-Posting-Host: topaz.ucsc.edu\nIn-reply-to: dietz@cs.rochester.edu's message of 20 Apr 93 22:38:07 GMT\n\nIn article <1993Apr20.223807.16712@cs.rochester.edu> dietz@cs.rochester.edu (Paul Dietz) writes:\n\n   In article <STEINLY.93Apr20145301@topaz.ucsc.edu> steinly@topaz.ucsc.edu (Steinn Sigurdsson) writes:\n\n   > Why Paul, it's obvious.\n   > Once chlorine chemistry has been banned on Earth,\n   > as is being advocated by some groups, Ti prices will\n\n   > :-) :-) :-) \n\n   Well, there already is a sulfate process for TiO2 purification.  The\n   chlorine process is cleaner, however, and for that reason is achieving\n   dominance in the marketplace.\n\nDarn, caught by the white hot heat of technological progress again...\n\n   Most Ti is used in pigment, btw (as the oxide), where it replaced\n   white lead pigment some decades ago.  Very little is reduced to the\n   metal.\n\nSpoilsport. Hence the need for increasing fashion\nemphasis on anodise Ti jewelry...\n\n   > Seriously, I'd say there is a flaw in Gary's analysis\n   > in that he assumes an export oriented economy, maybe\n   > the lunatics will just want some native Ti for local\n   > use...\n\n   Which merely evades the issue of why those lunatics are\n   there at all (and, why their children would want to stay.)\n\nI did not evade the issue at all. I clearly stated that\nthis would be from diabolical foresight in establishing\na sheltered industrial base for the upcoming Great War ;-)\nVery cost effective if you use the right accounting method :-)\n\n*  Steinn Sigurdsson   \t\t\t Lick Observatory     \t  *\n* steinly@lick.ucsc.edu\t\t       \"standard disclaimer\"  \t  *\n* But, oh, love is strange \t\t\t\t\t  *\n* and you have to learn to take the crunchy with the smooth,      *\n* I suppose \t\t\t\t              - B.B. 1983 *\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10438, "properties": {"category": "misc.forsale", "text": "From: tallen@hpcc01.corp.hp.com (Thomas C Allen)\nSubject: Northwest Air tix - SAVE $30 ANY FLIGHT\nOrganization: the HP Corporate notes server\nLines: 14\n\n\nNorthwest Air tix - SAVE $30 ANY FLIGHT\n\nI have a $400 credit with Northwest Airlines which must be used\nby Nov 27, 1993. \n\nThere is a $50 charge to change the ticket, so I will sell it for\n$320.  It can be used for any Northwest flight, but I don't think\nthey will refund cash.\n\nPlease contact me at tallen@corp.hp.com  or (415)857-5878.\n\nTom Allen\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10439, "properties": {"category": "sci.space", "text": "From: lazarus@katarina.dev.cdx.mot.com (John McGlaughlin)\nSubject: Re: How many read sci.space?\nNntp-Posting-Host: katarina.dev.cdx.mot.com\nOrganization: Motorola Codex, Canton, Massachusetts\nLines: 18\n\nrborden@ugly.UVic.CA (Ross  Borden) writes:\n\n>\tQuick!  Everyone who sees this, post a reply that says:\n\n>\t\t\t\"Hey, I read sci.space!\"\n\n>Then we can count them, and find out how many there are! :-)\n>(This will also help answer that nagging question: \"Just what is\n>the maximum bandwidth of the Internet, anyways?\")\n\nDon't you think it would be better to E-mail back to you that we read sci.space\nso that you can count them and every server in the world does not have to get\nBW'd to death.  Or instead you could possible cut and past all the senders into\na single post and save on header bandwidth....  Not meaning to be taken as a \nflame  it's late and we have to work toward a demo .... little punchy\n-- \n\n-jftm-\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10440, "properties": {"category": "rec.sport.hockey", "text": "From: seth@cbnewsh.cb.att.com (peter.r.clark..jr)\nSubject: Re: Flyers [Re: This year's biggest and worst (opinion)...]\nOrganization: AT&T\nDistribution: na\nKeywords: NHL, awards\nLines: 80\n\nIn article <1993Apr14.165617.3215@cbnewsm.cb.att.com>, jmd@cbnewsm.cb.att.com (joseph.m.dakes) writes:\n> In article <1993Apr13.144030.28994@cbnewsh.cb.att.com>, seth@cbnewsh.cb.att.com (peter.r.clark..jr) writes:\n> \n> >So Roussel was giving up almost another goal a game while facing a proportional\n> >number of shots for the number of minutes he played, and while I have't\n> >actually checked I believe that he faced a lower quality of opponent.\n> \n> Make that less than half a goal a game.  The lower quality of opponet\n> argument is immaterial as neither Roussel nor Soderstrom had any say in\n> the matter.  That was Dineen's decision.\n\nSo in other words, if Roussel shuts out the Sharks and Soderstrom shuts out\nthe Penguins, that's immaterial because it was the coaches decision? Come on,\nJoe, think about what you're saying! Who they played is VERY significant.\nWhy they played them is what's irrelevent. A low GAA against good teams\nis better than a low GAA against bad teams in the context of comparing two\ngoaltenders. A low GAA is better then a higher GAA. A low GAA against good\nteams is much, much better than a higher GAA against bad teams in the context\nof comparing two goaltenders.\n\n> > The fact of the matter is that, despite last nights shutout, he doesn't\n> > have what it takes. Last night was due to an inept Ranger team much more\n> > than Roussel's skill. A 3 on 1 and they don't get a shot away? A 2 on none\n> > and one guy just passes and stops, the other guy shoots into Roussel's pad?\n> \n> C'mon, Pete?  So the Rangers were inept.  A shutout is a shutout.  During\n> both of Soderstrom's masterpieces against Toronto, Mike Emerich was quoted\n> as saying he didn't think the Leafs had much offensive firepower past their\n> first line.  Does that make Soderstrom's shutouts less impressive because of\n> Toronto's lack of offense?\n\nYES IT DOES! Absolutely. **In the context of comparing two goaltenders**.\nOf course, at the end of the season 2 points is 2 points no matter how you\nget them. And on the score sheets shutouts are shutouts. But if you're a\ncoach deciding between two goalies, or a GM looking to make a trade, you\nhave got to look deeper than the stat sheets. I didn't see the second Toronto\ngame, but the first one was a defensive masterpiece. There was nothing in\nthat game to judge Tommy Soderstrom on because he wasn't tested. The same\nfor Roussel in the Ranger game. Two real scoring chances, one he made a\ngreat play, the other he was saved by a mistake from the other player. If\nyou were judging Roussel on that game alone, you have very little to go by.\n\nBut if you were to look at the 0-0 tie against the Habs, you saw a goalie\nstand on his head to get that shutout. THAT was a #1 goalie in action. Roussel\ndoesn't have a game like that in him.\n\n> Well if you look back to November when Roussel was the #1 goalie (Soderstrom\n> was being treated for his heart ailment).  The Flyers finished November at\n> 6-3-1 and were 9-10-4 overall.  And there's no way of knowing where the Flyers\n> would have finished if Soderstom wasn't wearing the oragne 'n black.  I'm glad\n> we don't have to find out anytime soon either because he is one hell of a\n> player.  I would take him over Roussel right now, but I still think Dom has\n> what it takes to be the #1 guy.  He outperformed Hextall enough during the\n> '91-92 season to make Flyers management think that way too.\n\nDon't be so sure of that. FLYERS management never says bad thing about\nRoussel, but they don't say too much on the good side either. I've seen\nat least two interviews where every time Farwell was asked how happy he was\nto have two good goaltenders, it was Tommy this, Tommy that, and oh, yeah,\nDom has played well too.\n\n> By the way, what was the final card on Monday night?  Team picture by any\n> chance?\n\nFLYERS in the NHL Hall of Fame. Kinda dull, really. They handed out a\nteam picture to everybody who walked in from Pizza Hut, but it was the\nsame picture they sold in the programs in mid-season. Had names like Benning,\nKasper...\n\n> And how did the Flyers choose the fans who received \"the shirts off our\n> backs?\"  Winning Recchi's jersey after breaking the club's single season\n> point record would have been nice.  But knowing your luck you would have\n> won Roussel's:-)!\n\nMostly random seat locations, some were given out by having certain\nautographs on the team photos. I don't like that method since I've seen\nguards help out people get things like Lindros pictures, surely if they\ngot their hands on an autographed picture they'd hold 'em for their buddies.\n\npete clark\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10441, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jdolske@andy.bgsu.edu (justin dolske)\nSubject: Re: Wanted ISA mouse port with high interrupt\nOrganization: Bowling Green State University B.G., Oh.\nDistribution: na\nLines: 32\n\nlyourk@cbnewsc.cb.att.com (Loran N. Yourk) writes:\n> \n> With a sound card on interrupt 5, two serial ports (one for modem on i4,\n> one for Miracle Piano on i3) and a printer port on i7, I have run out of\n> low interrupts.  What I would like is a mouse port with an interrupt of\n> 10, 11, or 12 (which ever interrupt the PS/2 mouse port uses) in in ISA\n> i486 computer.  I called technical support of Microsoft, Logitech, & ATI\n> (checked what interrupts the mouse port on the ATI video cards can use)\n> and they all said the only interrupts possible on these cards was ones\n> lower than 7.  Does anyone know of any board for an ISA bus which will\n> allow a mouse port (or even a serial port) with high interrupts?\n\n   Try putting one of the IRQs for your COM ports onto IRQ2. The hardware will\nautomagically wrap IRQ2 to IRQ9 on AT class machines (eg, anything with high\nIRQs). This is what I'm doing on my set up right now. \n   I've got COM2 on IRQ2 (really IRQ9 - address it this way in software), COM1\non IRQ3, SoundBlaster on IRQ5, LPT1 on IRQ7, and my ATI BusMouse port on one of\nthe interrupts in between. Works just great.\n   If you need even more, there's a text file floating around somewhere that\ndetails how to hack up any serial card (and probably any others) to work on the\nhigher IRQs. It basically involves cutting the trace to the low IRQ and running a wire over the a high IRQ pin on the 16bit expansion bus.\n\n  It will be best to put the modem's COM port onto IRQ2/9. This will be the \n\nfirst IRQ serviced by the system, giving the modem a better response -- \nespecially handy under multitaskers like OS/2 -- which I'm running with no\nproblems.\n\nJustin\n---\njdolske@andy.bgsu.edu\n \n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10442, "properties": {"category": "sci.med", "text": "From: chorley@vms.ocom.okstate.edu\nSubject: Re: Homeopathy: a respectable medical tradition?\nLines: 43\nNntp-Posting-Host: vms.ocom.okstate.edu\nOrganization: OSU College of Osteopathic Medicine\n\nIn article <C5y5zr.B11@toads.pgh.pa.us>, geb@cs.pitt.edu (Gordon Banks) writes:\n> In article <C5qMJJ.yB@ampex.com> jag@ampex.com (Rayaz Jagani) writes:\n> \n>>\n>>From Miranda Castro, _The Complete Homeopathy Handbook_,\n>>ISBN 0-312-06320-2, oringinally published in Britain in 1990.\n>>\n>>From Page 10,\n>>.. and in 1946, when the National Health Service was established,\n>>homeopathy was included as an officially approved method\n>>of treatment.\n> \n> I was there in 1976.  I suppose it must have died out since 1946,\n> then.  Certainly I never heard of any homeopaths or herbalists in\n> the employ of the NHS.  Perhaps the law codified it but the authorities\n> refused to hire any homeopaths.  A similar law in the US allows\n> chiropractors to practice in VA hospitals but I've never seen one\n> there and I don't know of a single VA that has hired a chiropractor.\n> There are a lot of Britons on the net, so someone should be able to\n> tell us if the NHS provides homeopaths for you.\n> \n> \n> -- \n> ----------------------------------------------------------------------------\n\nI don't think they provide homeopaths, heck the heir apparent was trying to \npromote Osteopaths to the ranks of eligibility a couple of years back... It \npleased my family no end, since I'm at an Osteopathic school, sort of \nvalidated it for them...then I told them that the name was the same but the \npractice was different....oh.\n\tIf you're seeking validation for your philosophy on the strength of \nthe national health service adopting it, I suggest that you are not very \nsure of the validity of your philosophy. I believe in 1946, the NHS was \nstill having its nurses taught the fine art of \"cupping\", which is the \nvacuum extraction of intradermal fluids by means of heating a cup, placing \nit on the afflicted site and allowing it to cool.\n\tI wouldn't take my sick daughter to a homeopath.\n\n\nDavid N. Chorley\n***************************************************************************\nYikes, I'm agreeing with Gordon Banks\n**************************************************************************\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10443, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: <Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 49\nNNTP-Posting-Host: lloyd.caltech.edu\n\nkcochran@nyx.cs.du.edu (Keith \"Justified And Ancient\" Cochran) writes:\n\n>>Natural morality may specifically be thought of as a code of ethics that\n>>a certain species has developed in order to survive.\n>Wait.  Are we talking about ethics or morals here?\n\nIs the distinction important?\n\n>>We see this countless\n>>times in the animal kingdom, and such a \"natural\" system is the basis for\n>>our own system as well.\n>Huh?\n\nWell, our moral system seems to mimic the natural one, in a number of ways.\n\n>>In order for humans to thrive, we seem to need\n>>to live in groups,\n>Here's your problem.  \"we *SEEM* to need\".  What's wrong with the highlighted\n>word?\n\nI don't know.  What is wrong?  Is it possible for humans to survive for\na long time in the wild?  Yes, it's possible, but it is difficult.  Humans\nare a social animal, and that is a cause of our success.\n\n>>and in order for a group to function effectively, it\n>>needs some sort of ethical code.\n>This statement is not correct.\n\nIsn't it?  Why don't you think so?\n\n>>And, by pointing out that a species' conduct serves to propogate itself,\n>>I am not trying to give you your tautology, but I am trying to show that\n>>such are examples of moral systems with a goal.  Propogation of the species\n>>is a goal of a natural system of morality.\n>So anybody who lives in a monagamous relationship is not moral?  After all,\n>in order to ensure propogation of the species, every man should impregnate\n>as many women as possible.\n\nNo.  As noted earlier, lack of mating (such as abstinence or homosexuality)\nisn't really destructive to the system.  It is a worst neutral.\n\n>For that matter, in herds of horses, only the dominate stallion mates.  When\n>he dies/is killed/whatever, the new dominate stallion is the only one who\n>mates.  These seems to be a case of your \"natural system of morality\" trying\n>to shoot itself in the figurative foot.\n\nAgain, the mating practices are something to be reexamined...\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10444, "properties": {"category": "sci.electronics", "text": "From: willisw@willisw.ENG.CLEMSON.edu (Bill Willis)\nSubject: Answers to many electronics Questions\nOrganization: Engineering Services, Clemson University\nLines: 10\n\nI have notice a lot of electronics questions by people who are obviously not \n\"tuned-in\" to electronics.  Many of them have rather simple answers, and \nmany of them require a circuit diagram.\n\nRather than muck up the network, why don't you write to me, send a self-\naddressed, stamped envelop, and I'll answer your questions, if I can.\n\nW. L. Willis, P. E.\n114 Fern Circle\nClemson, SC 29631\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10445, "properties": {"category": "sci.electronics", "text": "From: neale@ee.rochester.edu (Reg Neale)\nSubject: Pioneer Laser player\nOrganization: Univ of Rochester, College of Engineering and Applied Science\nLines: 5\n\nI'm trying to figure out how to operate a Pioneer Laserdisc LD-1000 that I bought at a surplus store. It is reputedly from some kind of computerised viewing\nand/or ordering system. THere is what may be an HPIB connector on the back. When\nI power it up, the front panel power light comes on, but no activity, and the\ndoor doesn't open. Anyone have any experience with this unit or any ideas on how\nto obtain documentation?\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10446, "properties": {"category": "comp.graphics", "text": "From: robert@cpuserver.acsc.com (Robert Grant)\nSubject: Re: Virtual Reality for X on the CHEAP!\nOrganization: USCACSC, Los Angeles\nLines: 11\nDistribution: world\nReply-To: robert@cpuserver.acsc.com (Robert Grant)\nNNTP-Posting-Host: cpuserver.acsc.com\n\nUpdate on location!!\n\nDirectory should be:\npublic/virtual-worlds!!\n^^^^^^\n\nSorry! :-)\n\nRobert.\nrobert@acsc.com\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10447, "properties": {"category": "sci.electronics", "text": "From: gray@feline.uucp (Kelly Gray)\nSubject: Re: Pinout needed for TIL311\nOrganization: Humber College Technology Dept.\nLines: 29\n\n According to my TI databook, the pinouts for the TIL311 display are as\nfollows:\n \n Pin 1 - LED supply voltage\n Pin 2 - Latch data input B\n Pin 3 - Latch data input A\n Pin 4 - Left decimal point cathode\n Pin 5 - Latch strobe input\n Pin 6 - Omitted\n Pin 7 - Common ground\n Pin 8 - Blanking input\n Pin 9 - Omitted \n Pin 10 - Right decimal point cathode\n Pin 11 - Omitted\n Pin 12 - Latch data input D\n Pin 13 - Latch data input C\n Pin 14 - Logic supply voltage, Vcc\n \nThe logic supply voltage is 5V @ 60-90mA. The LED supply is also 5V, but\nit need not be particularly well regulated. The LED drivers on the chip\nuse a constant current source, so LED intensity is not affected by the\nsupply voltage.\n \n\n-- \n\n<o_o>    Kelly Gray\n         gray@feline.uucp (preferred)\n         gray@admin.humberc.on.ca\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10448, "properties": {"category": "comp.sys.mac.hardware", "text": "From: wgw@netcom.com (William G. Wright)\nSubject: SE rom\nKeywords: roms, grayscale, select 300\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 32\n\n\n\tI just bought a select 300 and rushed home to print \nsome grayscale pictures for my kids, when I discovered that\ngrayscale(and photograde) are not available if you are\nusing an SE...even if you are running with an '030 cpu.\nYou won't see this in the printer's docs, and the Apple\nrep didn't mention it to our users group either. It seems\nthat SE ROMs won't support those \"features\". Okay, I \nguess I should have somehow known that this was the case.\nLet the buyer beware, huh Apple?\n\tBe that as it may, I have been thinking about the \nproblem and I'm puzzled. Why  can't a defencieny in the \nROM be made up for in software. I write software for a living\n(on unix platforms) and I don't understand the \"it just\ncan't be done\" responses I've gotten from those I have\nasked so far.  Isn't Mode32, or somesuch piece of  soft-\nware, just such a fix. \n\tAnyway, I was hoping someone knowledgeable\nabout Mac internals could set me straight: is it simply\nimpossible for a mac SE to print grayscale, or could\nsomeone armed with enough info and a little pro-\ngramming experience cook something up that would\nsupplement the ROM's capabilities?\n\tAlso, how does one know if one's mac can\nsupport the grayscale and photograde that the Select 300\nis supposedly capable of? ( Short of buying the printer\nand trying it out like I did)\n\tThanks for your help.\n \nBill Wright\nwgw@netcom.com\n\t\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10449, "properties": {"category": "sci.electronics", "text": "From: john@gu.uwa.edu.au (John West)\nSubject: Re: Protection of serial (RS232) lines\nKeywords: serial protection\nArticle-I.D.: uniwa.1pqp7f$h16\nOrganization: The University of Western Australia\nLines: 13\nNNTP-Posting-Host: mackerel.gu.uwa.edu.au\n\nlaird@stable.ecn.purdue.edu (Kyler Laird) writes:\n\n>There is at least one optically-isolated RS-232 transceiver chip.  I\n>don't remember where I saw it.\n\nRS Components (they exist in Australia and the UK. Don't know about the US) have\nlittle chips called Isolated MAX 250 and 251. They give you isolated RS-232 from\na single 5V supply. External components are 4 caps, 4 optoisolators, a diode,\nand an isloting transformer. They go up to 19.2K baud..\n\nJohn West\n--\nFor the humour impaired: Insert a :-) after every third word\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10450, "properties": {"category": "misc.forsale", "text": "Subject: *** Text Books for sale [must sell]***\nFrom: koutd@hiramb.hiram.edu (DOUGLAS KOU)\nOrganization: Hiram College\nNntp-Posting-Host: hiramb.hiram.edu\nLines: 22\n\nI have several books which I really wish to sell.\n\nCalculus with Analytic Geometry by Howard Anton 3rd edition\n\nChemistry by Zumdahl\tsecond edition.\n\nActs of War-- the behavior of men in battle by Richard Holmes\n\nObserving the Nixon Years by Jonathan Schell\n\nThe Things They carried by Tim O'Brien\t\n\nShrapnel in the Heart-- Letters and remembrances from the Vietname\nMemorial by Laura Palmer\n\nThe Good War-- an oral history of world war two by Studs Terkel\n\nMake me an offer, you could contact me at koutd@hirama.hiram.edu\n\nDouglas Kou\nHiram College\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10451, "properties": {"category": "sci.electronics", "text": "From: st1my@rosie.uh.edu (Stich, Christian E.)\nSubject: Motorola XC68882RC33 and RC50\nOrganization: University of Houston\nLines: 17\nDistribution: world\nNNTP-Posting-Host: rosie.uh.edu\nKeywords: Motorola, FPU, 68882, 68030, 33/50 MHz, problems (FPU exception)\nNews-Software: VAX/VMS VNEWS 1.41    \n\nI just installed a Motorola XC68882RC50 FPU in an Amiga A2630 board (25 MHz\n68030 + 68882 with capability to clock the FPU separately).  Previously\na MC68882RC25 was installed and everything was working perfectly.  Now the\nsystems displays a yellow screen (indicating a exception) when it check for\nthe presence/type of FPU.  When I reinstall an MC68882RC25 the system works\nfine, but with the XC68882 even at 25 MHz it does not work.  The designer\nof the board mentioned that putting a pullup resistor on data_strobe (470 Ohm)\nmight help, but that didn't change anything.  Does anybody have some\nsuggestions what I could do?  Does this look like a CPU-FPU communications\nproblem or is the particular chip dead (it is a pull, not new)?\nMoreover, the place I bought it from is sending me an XC68882RC33.  I thought\nthat the 68882RC33 were labeled MC not XC (for not finalized mask design). \nAre there any MC68882RC33?\n\nThanks\n\tChristian \n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10452, "properties": {"category": "rec.motorcycles", "text": "From: lusky@ccwf.cc.utexas.edu (Jonathan R. Lusky)\nSubject: Re: Tools Tools Tools\nArticle-I.D.: ra.1993Apr6.011730.877\nOrganization: The University of Texas at Austin, Austin TX\nLines: 25\n\nIn article <1993Apr5.165548.21479@research.nj.nec.com> behanna@phoenix.syl.nj.nec.com (Chris BeHanna) writes:\n>\tWhile we're on the subject, has anyone else noticed that the 1/2\" deep\n>well in Craftsman's $60 SAE deep well set is too small to fit a 1/2\" bolt or\n>nut?\n>\n>\tWhen I took the socket in for an exchange, EVERY !#%@ one of the 1/2\"\n>deep well sockets on the rack had the exact same problem!!!  Looking into the\n>socket, it appears that Craftsman's toolmaker attempted to imitate flank drive\n>on this piece, but did not account for the extra clearance needed inside the\n>socket.\n\nNever had any problem with mine...\n\nAre you *SURE* the nut/bolt you are trying is really a 1/2\" hex?  13mm\nis just slightly larger...  and a 1/2 wrench won't fit on a GM 13mm\nnut (my 91 GMC pickup has several 13mm nuts on it...  really annoying, metric\nthreads too.  Seems that most of the body is metric, most of the engine is\nSAE).\n\n\n-- \n--=< Jonathan Lusky ----- lusky@ccwf.cc.utexas.edu >=-- \n     \\    89 Jeep Wrangler - 258/for sale!       / \n      \\        79 Rx-7 - 12A/Holley 4bbl        / \n       \\________67 Camaro RS - 350/4spd________/ \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10453, "properties": {"category": "talk.religion.misc", "text": "From: \"David R. Sacco\" <dsav+@andrew.cmu.edu>\nSubject: Re: Spreading Christianity (Re: Christian Extremist Kills Doctor)\nOrganization: Misc. student, Carnegie Mellon, Pittsburgh, PA\nLines: 29\nDistribution: na\n\t<1993Apr2.170259.13380@cbnewsj.cb.att.com>\nNNTP-Posting-Host: po4.andrew.cmu.edu\nIn-Reply-To: <1993Apr2.170259.13380@cbnewsj.cb.att.com>\n\n   Not to be too snide about it, but I think this Christianity must\n   be a very convenient religion, very maliable and suitable for\n   any occassion since it seems one can take it any way one wants\n   to go with it and follow whichever bits one pleases and\n   reinterpret the bits that don't match with one's desires.  It\n   is, in fact, so convenient that, were I capable of believing\n   in a god, I might consider going for some brand of Christianity.\n   The only difficulty left then, of course, is picking which sect\n   to join.  There are just so many.\n    \n   Dean Kaflowitz\n\nYes, Christianity is convenient.  Following the teachings of Jesus\nChrist and the Ten Commandments is convenient.  Trying to love in a\nhateful world is convenient.  Turning the other cheek is convenient.  So\nconvenient that it is burdensome at times.\n\nDave.\n \n\n=============================================================\n--There are many here among us who feel that life is but a joke. (Bob Dylan)\n--Never let school interfere with your education.  (Mark Twain)\n--Rumors of my death have been greatly exaggerated.  (Mark Twain)\n--TACT is getting your point across without stabbing someone with it.\n--Subtlety is saying what you mean, then getting out of the way before\nit is understood.\n--\"If you were happy every day of your life you wouldn't be a human\nbeing, you'd be a game show host.\" (taken from the movie \"Heathers.\")\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10454, "properties": {"category": "misc.forsale", "text": "From: paschal@tscs.com (Charles O. Paschal)\nSubject: Novell 2.0a/3.11\nOrganization: Total Support Computer Systems, Tampa, Florida\nLines: 10\n\nI have a  novell 2.0a that I will sell for $692 which can be upgraded to 3.11\nfor $460. The novell has complete documentation but no network cards except\nthe ID card.\n\n\n-- \n------------------------------------------------------------------------------\nCharles Paschal -  Total Support Computer Systems  -  Tampa  -  (813) 876-5990\nUUCP: paschal@tscs\t\t\t\t\t   FAX: (813) 871-2783\nUS-MAIL: Post Office Box 15395 - Tampa, Florida  33684-5395\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10455, "properties": {"category": "rec.sport.baseball", "text": "From: roger@crux.Princeton.EDU (Roger Lustig)\nSubject: Re: Sandberg, Runs, RBIs (was: Re: Notes on Jays vs. Indians Series)\nOriginator: news@nimaster\nNntp-Posting-Host: crux.princeton.edu\nReply-To: roger@astro.princeton.edu (Roger Lustig)\nOrganization: Princeton University\nDistribution: na\nLines: 36\n\nIn article <C5JqBy.M7A@news.rich.bnr.ca> bratt@crchh7a9.NoSubdomain.NoDomain (John Bratt) writes:\n>In article <C5JM0M.6Jw@cs.dal.ca>, niguma@ug.cs.dal.ca (Gord Niguma) writes:\n>|>\n>|>   Alomar fans left RBI fans and Runs off this list because they are dependant\n>|> on the team. (To a large extent). If Frank Thomas hit first, he'd lose a LOT\n>|> of RBI's; and anyways how many 2nd place hitters have you known to drive\n>|> in 100 runs? Doesn't happen that often.....very unlikely with Devon White's\n>|> ~.300 OBP in front of you...\n>I'm pretty sure that Sandberg has done this at least once.  (I know someone\n>will correct me if I'm wrong.)  \n\n>RBIs and Runs scored are the two most important offensive statistics.  You\n>can talk about OBP and SLG% all you want, but the fact remains:\n\n>\tThe team that scores more runs wins the game!\n>\t---------------------------------------------\n\nRight.  So who cares which PLAYER gets credited, as long as the TEAM\ngets more runs?  If a player helps the TEAM get more R and RBI, but \ndoesn't score them all himself, who cares?\n\nConsider:\n\nPlayer A: single.\nPlayer B: grounder to short; reaches on the force at 2nd.\nPlayer C: Double, B to 3rd.\nPlayer D: Sac fly.\n\nB gets a run, D gets an RBI.  Are you *sure* they helped the team\nmore than A and C?  Think hard, now.\n\n>Flame Away\n\nAs you wish.\n\nRoger\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10456, "properties": {"category": "sci.med", "text": "From: 880506s@dragon.acadiau.ca (James R. Skinner)\nSubject: Re: Paxil (request)\nOrganization: Acadia University\nLines: 15\n\n880506s@dragon.acadiau.ca (James R. Skinner) writes:\n\n>\t\n>\tI have seen a couple of postings refering to an SRI called paxil.  I\n>have been on Prozac for a number of years and recently switched to Zolf.  I\n>have seen a bit of comparsion of Prozac to Paxil but none on Zolft to Prozac\n>Can some one enlight me on the differences/ side effect profile/ etc...\n\ndoes anyone know?\n\n-- \n\n-----------------------------------+--------------------------------------------\n        James Robie Skinner        |     Jodrey School of Computer Science        James.Skinner@dragon.acadiau.ca  |  Acadia University, Wolfville, NS, Canada\n-----------------------------------+--------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.490+0000", "event": "documents", "entityId": 10457, "properties": {"category": "talk.politics.guns", "text": "From: dduff@col.hp.com (Dave Duff)\nSubject: Re: Gun Control: proud to be a Canuck\nOrganization: HP Colorado Springs Division\nLines: 11\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\nDoes anyone really believe the Swiss have had no war within their borders\nbecause every adult male owns a rifle? I'm a great admirer of the Swiss, but\n500 years of peace on their turf has zilch to do with gun ownership. Can you\npicture Hitler, with Panzers and Focke-Wulfs poised on the border, losing\nsleep over a few thousand expert rifleman? Sure. \nHitler stayed out of Switzerland because the Swiss run the money in this\nworld. We'd do well to emulate them on that and forget about getting more\nrifles on the street. Let's disband the NRA and start a National Investment\nBanking Association, replete with red and black sticker for the back window\nof Bubba's Mercedes 600! We could fire Charlton Heston and get Paul Volcker\nfor a spokesman.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10458, "properties": {"category": "sci.crypt", "text": "From: harryb@phred.UUCP (harry barnett)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nReply-To: harryb@phred.UUCP\nOrganization: Physio-Control\nLines: 48\n\nIn article 29778@yuma.ACNS.ColoState.EDU, holland@CS.ColoState.EDU (douglas craig holland) writes:\n>In article <1993Apr19.130132.12650@afterlife.ncsc.mil> rlward1@afterlife.ncsc.mil (Robert Ward) writes:\n>>In article <bontchev.734981805@fbihh> bontchev@fbihh.informatik.uni-hamburg.de writes:\n>>>and since the US constitutions guarantees the right to every American\n>>>to bear arms, why is not every American entitled, as a matter of\n>>\n>>Have you read the applicable part of the Constitution and interpreted it IN \n>>CONTEXT?  If not, please do so before posting this misinterpretation again.\n>>It refers to the right of the people to organize a militia, not for individuals\n>>to carry handguns, grenades, and assault rifles.  \n>\n>Read the Constitution yourself.  The Second Amendment says the right to bear\n>arms shall not be infringed, so a well regulated militia may be more easily\n>formed.  I have an interpretation of the Second that shows there are no \n>qualifications to the right to keep and bear arms.  If you want, I can E-mail\n>it to you.  By the way, gun talk belongs in talk.politics.guns.\n>\t\t\t\t\t\t\tDoug Holland\n\nMr. Ward, before you start blathering about your skill \"interpreting\"\nthe Constitution, it might be helpful to learn to read.  After a review\nwith a high school English teacher emphasizing participial phrases, you\nmight start with the Second Amendment, and follow it up with:\n\n 97th Congress, 2nd Session, Committee Print, *The Right To Keep and\n Bear Arms*, of the Subcomittee on the Constitution of the Committee on\n the Judiciary, United States Senate, 97th Congress, Second Session,\n February, 1982.  GPO No. 88-618-O\n\nThis authoritative, heavily researched and annotated document clearly\nturns your \"interpretation\" into specious claptrap, which is a polite\nway of saying utter bullshit.  In spite of your false assertion to the\ncontrary, the Second Amendment DOES protect the right of the individual\ncitizen, in his capacity as an individual, to keep and bear arms.\n\nAnd, Mr. Holland, IMHO, blatantly and harmfully false information,\nasserted as fact and globally distributed, deserves globally\ndistributed rebuttal in the forum in which it is posted.\n\n(And besides, this site doesn't carry t.p.g...:-)\n\nharryb%phred@data-io.com\nphred!harryb@data-io.com\n-----------------------------------------------------------------------\nNo free man shall ever be debarred the use of arms.  The strongest\nreason for the people to retain the right to keep and bear arms is,\nas a last resort, to protect themselves against tyranny in government.\n\t\t\t\t\t--Thomas Jefferson\n-----------------------------------------------------------------------\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10459, "properties": {"category": "rec.autos", "text": "From: welty@cabot.balltown.cma.COM (richard welty)\nSubject: rec.autos: Welcome to to the new reader\nKeywords: Monthly Posting\nReply-To: welty@balltown.cma.com\nOrganization: New York State Institute for Sebastian Cabot Studies\nExpires: Thu, 20 May 1993 04:00:05 GMT\nLines: 269\n\nArchive-name: rec-autos/part1\n\n[most recent changes, 15 March 1993: addition of alt.autos.karting -- rpw]\n\n               === Welcome to Rec.Autos.* ===\n\nThis article is sent out automatically each month, and contains a general\ndescription of the purpose of each of the automotive newsgroups, and\nsome suggested guidelines for discussions.  The keywords `Monthly Posting'\nwill always appear to make killing this article easy for users of\nnewsreaders with kill facilities.  This article is posted to all autos\ngroups, but followups are directed only to rec.autos.  If you don't\nunderstand what this means, ask your system administrator for help, or at\nleast for copies of the newuser documentation.  Failing that, please\nsubscribe to the newsgroup news.announce.newusers and read the\ndocumentation provided there.\n\nIntroduction to the Rec.Autos newsgroup hierarchy:\n\nrec.autos.tech\n\nis intended for technical discussions of automobiles, their design,\nconstruction, diagnosis, and service.  Other discussions are largely\ninappropriate, especially For Sale ads.\n\nrec.autos.sport\n\nis intended for discussion of legal, organized competition involving\nautomobiles.  Technical discussions are appropriate insofar as they apply\nto competition vehicles.  Discussion from either of two viewpoints,\nspectator and participant, is encouraged.  Arguments about sports cars are\nlargely inappropriate, as are most other discussions.  For Sale ads are\ninappropriate unless they are for competition vehicles and/or equipment.\nDiscussions of illegal events are marginal; one should probably avoid\nadvocating breaking the law.  (remember, the FBI reads Usenet!)\n\nrec.autos.driving\n\nis intended for discussions related to the driving of automobiles.\nAlso, if you must discuss 55 vs. 65, or radar detectors, or <insert\nyour pet driving peeve> boneheads, do it here.\n\nrec.autos.vw\n\nis intended for discussion of issues related to the use and ownership\nof automobiles manufactured by Volkswagen (this includes VWs, Audis,\nSeats, etc.)  It was created on the grounds that the info-vw mailing\nlist was very successful.  It should not be presumed from the existence\nof this group that it is appropriate to create many groups to cover many\ndifferent marques; groups specific to individual marques should only be\ncreated on demonstration of sufficient interest, via some avenue such as\na mailing list.\n\nrec.audio.car\n\nis not properly part of the rec.autos.* hierarchy.  it is, however,\nthe correct place for discussion of automotive audio equipment, and\nso is mentioned here.\n\nrec.autos.antique\n\nis intended for the discussion of older cars (usually more than 25 years\nold, although this is not a hard-and-fast rule.)\n\nalt.hotrod\n\nis not part of the hierarchy, but also of potential interest to the\nrec.autos reader.  it is gatewayed to the moderated hotrod mailing\nlist, and is for serious discussion of modifying and developing\nperformance vehicles.\n\nalt.autos.rod-n-custom\n\nalso not part of the `official' hierarchy; devoted to that peculiar\nAmerican hobby of customizing older cars.\n\nalt.autos.karting\n\nfor the discussion of the popular motorsport and hobby, karting.\n\nrec.autos\n\nis intended to capture discussion on all other automotive topics.\n\n\nCrossposting:\n\nCrossposting occurs when more than one newsgroup name is included on\nthe Newsgroups: line in the article header; such articles will appear\nin all of the newsgroups listed.\n\nCrossposting is one of the most misunderstood and misused facilities on\nUsenet.  You should only post to a group because you feel an article is\nappropriate; you should NEVER crosspost just to reach a particular\naudience.  This distinction is subtle, but important.  Radar Detector\narticles, for example, are more-or-less appropriate in rec.autos.  They are\nalmost never appropriate in sci.electronics or rec.ham-radio, and the fact\nthat you might want to reach the audience in sci.electronics or\nrec.ham-radio is NOT adequate justification for posting to either group.\n\nCrossposting between any or all of the rec.autos.* groups is usually\ninappropriate; if you find yourself doing so, consider whether or not it is\ntruly advisable, before sending your article.  Consider setting Followup-To:\nto point to only one newsgroup if you feel you must crosspost.\n\nCrossposting between rec.autos.* and misc.consumers is chancy at best; in\nparticular flame wars over the speed limit in the US and/or the use of\nradar detectors should NEVER be crossposted between any of these groups.\n\nMost readers of sci.electronics and rec.radio.* couldn't care less about\nthe police radar and radar detector arguments that go on endlessly in\nrec.autos.\n\nIt is an excellent idea to check the Newsgroups: and Followup-to:  lines of\narticles before posting a followup.  In particular, be wary of posting to\nmisc.test, rec.arts.startrek.*, or talk.bizarre, or any combination of these\nthree.  The life you save may be your own.\n\nDistribution:\n\nThere is a field in the header of any news article which allows you to\n(partially) control where the article goes; it is called the Distribution\nfield.  It may be very useful for many reasons; it should also serve\nas a reminder that news is a very large and widespread system.\n\nThe distribution of rec.autos.* is fairly extensive.  As of this writing, \nthe Automotive newsgroups are known to reach most of Europe, Australia,\nNew Zealand, and some locations in Japan.  With this in mind, I offer the\nfollowing hints about use of the Distribution: field in your article\nheaders, and on article content.\n\n1) Please take care not to send for-sale ads about clapped out Ford\nMavericks in New Jersey to France or California; i doubt that anyone in\neither place will care, except for my girlfriend, who for some strange\nreason likes Mavericks (but only 4-door Mavericks, at that.)\n\n2) When posting technical questions, please include the market for which\nyour car was manufactured.  For example, there are a number of differences\nbetween a European-market Ford Escort and a US-market Escort.  Likewise,\nall 1750cc and early 2000cc Alfa Romeos reached the US with Spica Fuel\ninjection; European market cars usually got carbs (often Webers).  These\ndifferences can be important to your readers; make your situation clear.\nFailure to do so can lead to pointless flame wars and a significant\nspread of misinformation.\n\n3) Be careful about your capacities and specifications when posting;\nin the US we get a mix of Metric and English system values, whereas\nEurope is almost entirely on the Metric system.  A future edition\nof this monthly posting will contain a list of commonly-used\nabbreviations that may not be known in some places that rec.autos\nreaches; this cuts both ways so let us not be parochial about it.\n\n4) Use the Distribution: field to limit where your article goes, when\npossible.  Within North America, the values na (north america), can\n(canada), and usa may be used.  in addition, the two-letter state\nabbreviations of the US are supported in some cases; e.g. if i wanted\nto send an article only to New York and New Jersey, i could put\n\"ny,nj\" in a Distribution field.  note that multiple, comma-separated\nvalues are legal.  these distribution fields vary widely, however, so\nyou should check with your local sysadmin to find out what is likely\nto be supported in your area.\n\nThe Dangers of Overgeneralization:\n\nTo amplify a warning from the distribution section of this article:\nBe wary of making foolish assumptions about all cars, tires, etc.  What is\ntrue for a 1973 Buick with a 455cid engine may be quite utterly wrong for a\n1976 Honda with a 1200cc engine.  Headlight laws in Sweden are decidedly\ndifferent from those in Idaho.\n\nThe Need for Adequate Specification:\n\nWhen you ask a question, please give a reasonable amount of information;\ne.g., if you have a question about your Honda, please specify year,\nmodel, engine size, etc.  Otherwise, most answers to your question may be\nquite useless.\n\n\nConcerning Lemons:\n\nAt one time or another, every auto manufacturer has manufactured a lemon or\ntwo; even Honda admits to this.  Please don't waste everyone's time by\nannouncing to the world that your `brand x' automobile is terrible, so all\n`brand x' automobiles are terrible, so no one should ever buy a car from\nthe `brand x' company.  Such articles are worse than useless, because they\ncause substantial wasted bandwidth while carrying little or no useful\ninformation.\n\n\nConcerning Flames:\n\nAs much as we might wish it, a flame-free newsgroup is something that most\nlikely will never occur.  Here are some guidelines for flames and how\nto deal with them (a list of flame-prone topics follows in the next section\nof this posting):\n\nIf you post something truly obnoxious and inflammatory, don't imagine for a\nminute that including the words `No Flames' will work.  It won't, and\nyou'll get exactly what you deserve.\n\nIf you're going to flame, you're more likely to get away with it if you can\ncite a fact or maybe a well-known reference.  No one is likely to believe\nbald, unsupported assertions.\n\nBe careful about who you choose to insult.  Consider not insulting anyone.\n\n\nAsking the Question:\n\nIt is a bad idea to post a question and end it with a phrase like `Please\nsend email, I don't read this group'.  It is a much better idea to\nend the question with `Please send email, if there is sufficient interest\nI'll summarize the results in a later posting.  I may miss posted responses\nto this request'.\n\nAnswering the Question:\n\nIf someone wants to hop up their Yugo, don't tell them to get a Mustang.\nEither be silent, or give them useful advice.  If someone wants advice on\ndefending a speeding ticket, don't tell them to obey the law next time --\nit's offensive, presumes guilt which is not proven, and doesn't directly\naddress the original question.  In general, don't post in order to see\nyour words in print, and don't post in order to enjoy feeling smug and\nself-righteous.\n\n\nStale and/or Inflammatory Topics:\n\nCertain topics are considered stale by `old timers'; while discussion of\nthem is certainly ok, and new, factual information is welcome, ravings\nabout them are extremely tiresome, and may get the person who posts them\nignored altogether.  Some topics are naturally inflammatory; it is\ndifficult if not impossible to have meaningful discussion of them.  Some\nof these topics include the following:\n\n1)  the 55mph speed limit in the US: Pro and Con\n\n2)  discussions about the morality and legality of the sale and usage of\n    radar detectors.\n\n3)  discussions over which radar detector is best.\n\n4)  discussions over what is a sports car (this is one reason why\n    rec.autos.sport is not a `sports car' group -- everyone would argue\n    about what constitutes a `sports car'.)\n\n5)  disputes over whether or not US Federal law protects the driver's\n    right to own and operate a radar detector\n\n6)  `Buy American' discussions\n\n7)  `clever' bumper stickers and personalized license plates\n\n8)  <insert nationality here> cars are terrible\n\n9)  What kind of car did Maxwell Smart drive?\n      [when I have a complete, accurate answer it will be added to the\n          commonly-asked questions article which is also posted monthly.\n          Until then, please don't waste bandwidth on this topic. -- rpw]\n\n\n\nPlease direct comments and suggestions about this article to:\n\n     welty@cabot.balltown.cma.com\n-- \nrichard welty        518-393-7228       welty@cabot.balltown.cma.com\n``Nothing good has ever been reported about the full rotation of\n  a race car about either its pitch or roll axis''  -- Carroll Smith\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10460, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: ==> MS Windows Sound System, Text to Speach?\nFrom: HADAM@bcsc02.gov.bc.ca\nOrganization: BC Systems Corporation\nNntp-Posting-Host: bcsc02.gov.bc.ca\nLines: 4\n\nHi all News Group users:\nDoes anyone know whether there is some software which will let one do\nText to Speach like the Sound Blaster does?\nHal Adam,  HADAM@bcsc02.gov.bc.ca\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10461, "properties": {"category": "comp.windows.x", "text": "From: ahlenius@rtsg.mot.com (Mark Ahlenius)\nSubject: converting color gif to X pixmap\nSummary: How to convert color gif to color pixmap\nKeywords: gif pixmap\nNntp-Posting-Host: turquoise\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 34\n\nI have looked through the FAQ sections and have not\nseen a answer for this.\n\nI have an X/Motif application that I have written.\nI have a couple of gif files (or pict) that I have\nscanned in with a color scanner.  Now I would like\nto be able to convert the gif files into a format\nthat could be read into my application and displayed\non the background of its main window. Preferably with\npixmaps, or perhaps as an XImage.\n\nI have found functions in the pbmplus program suite\nto convert gif to xbm, but that is monochrome, and\nI really do need color.\n\nI have looked at xv, which reads in gif, and writes\nout several formats, but have not found a way to write\nout a file which can be read in as a pixmap.\n\nIs there an easy way to do this?\n\nemail responses preferred.\n\nthanks!\n\n'mark\n\nahlenius@rtsg.mot.com\n\n-- \n===============\tregards   'mark  =============================================\nMark Ahlenius \t\t  voice:(708)-632-5346  email: ahlenius@marble.rtsg.mot.com\nMotorola Inc.\t\t  fax:  (708)-632-2413\nArlington, Hts. IL, USA\t 60004\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10462, "properties": {"category": "rec.sport.hockey", "text": "From: kerney@ecn.purdue.edu (John Kerney)\nSubject: Re: FLYERS notes 4/17\nKeywords: FLYERS/Whalers summary\nOrganization: Purdue University Engineering Computer Network\nLines: 17\n\n\n\nCould someone post the Flyers record with and without Eric Lindros in\nthe lineup\n\n\nI have a guy that is trying to compare the Quebec/Flyers trade to the \n\nDallas/Minnesota trade in the NFL(Hershel Walker)\n\nI just need the stat to back up my point that Eric will be one of the next\n\ngreat players\n\nthanks\n\njohn\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10463, "properties": {"category": "comp.graphics", "text": "From: agiacalo@nmsu.edu (Toni Giacalo)\nSubject: need algorithm for reading and displaying bitmap files\nOrganization: New Mexico State University\nLines: 7\nNNTP-Posting-Host: gauss.nmsu.edu\nKeywords: GIF PCX BMP\n\nI'm making a customized paint program in DOS and need an algorithm\nfor reading bitmap files like GIF, PCX, or BMP.  Does anyone have\nsuch an algorithm?  I've tried copying one out of a book for reading\n.PCX format but it doesn't work.  I will take an algorithm for any\nformat that can be created from Windows Paint.  \nThanks!\nToni\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10464, "properties": {"category": "sci.space", "text": "From: roland@sics.se (Roland Karlsson)\nSubject: Re: Magellan Venus Maps (Thanks)\nIn-Reply-To: baalke@kelvin.jpl.nasa.gov's message of 30 Mar 1993 00:34 UT\nLines: 14\nOrganization: Swedish Institute of Computer Science, Kista\n\n\nThanks Ron and Peter for some very nice maps.\n\nI have an advice though.  You wrote that the maps were reduced to 256\ncolors.  As far ad I understand JPEG pictures gets much better (and\nthe compressed files smaller) if you use the original 3 color 24 bit\ndata when converting to JPEG.\n\nThanks again,\n\n--\nRoland Karlsson             SICS, PO Box 1263, S-164 28 KISTA, SWEDEN\nInternet: roland@sics.se    Tel: +46 8 752 15 40          Fax: +46 8 751 72 30\nTelex: 812 6154 7011 SICS   Ttx: 2401-812 6154 7011=SICS\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10465, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Turkey Admits to Sending Arms to Azerbaijan/Turkish Pilot Caught\nSummary: Oh, yes...neutral Turkey \nOrganization: S.D.P.A. Center for Regional Studies\nLines: 57\n\n4/15/93 1242  Turkey sends light weapons as aid to Azerbaijan\n\nBy SEVA ULMAN\n   \nANKARA, Turkey (UPI) -- Turkey is arming Azerbaijan with light weapons to help\nit fight Armenian forces in the struggle for the Nagorno- Karabakh enclave, \nthe newspaper Hurriyet said Thursday.\n\nDeputy Prime Minister Erdal Inonu told reporters in Ankara that Turkey was\nresponding positively to a request from Azerbaijan for assistance.\n\n\"We are giving a positive response to all requests\" from Azerbaijan, \"within\nthe limits of our capabilities,\" he said.\n\nForeign Ministry spokesman Vural Valkan declined to elaborate on the nature\nof the aid being sent to Azerbaijan, but said they were within the framework \nof the Council for Security and Cooperation in Europe.\n\nHurriyet, published in Istanbul, said Turkey was sending light weapons to\nAzerbaijan, including rockets, rocket launchers and ammunition.\n\nAnkara began sending the hardware after a visit to Turkey last week by a\nhigh-ranking Azerbaijani official. Turkey has however ruled out, for the second\ntime in one week, that it would intervene militarily in Azerbaijan.\n\nWednesday, Inonu told reporters Ankara would not allow Azerbaijan to suffer\ndefeat at the hands of the Armenians. \"We feel ourselves bound to help\nAzerbaijan, but I am not in a position right now to tell you what form (that)\nhelp may take in the future,\" he said.\n\nHe said Turkish aid to Azerbaijan was continuing, \"and the whole world knows\nabout it.\"\n\nPrime Minister Suleyman Demirel reiterated that Turkey would not get\nmilitarily involved in the conflict. Foreign policy decisions could not be \nbased on street-level excitement, he said.\n\nThere was no immediate reaction in Ankara to regional reports, based on\nArmenian sources in Yerevan, saying Turkish pilots and other officers were\ncaptured when they were shot down flying Azerbaijani warplanes and \nhelicopters.\n\nThe newspaper Cumhuriyet said Turkish troops were digging in along the border\nwith Armenia, but military sources denied reports based on claims by local\npeople that gunfire was heard along the border. No military action has \noccurred, the sources said.\n\nThe latest upsurge in fighting between the Armenians and Azerbaijanis flared\nearly this month when Armenian forces seized the town of Kelbajar and later\npositioned themselves outside Fizuli, near the Iranian border.\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10466, "properties": {"category": "comp.graphics", "text": "From: xz775327@longs.LANCE.ColoState.Edu (Xia Zhao)\nSubject: more on radiosity\nNntp-Posting-Host: zirkel.lance.colostate.edu\nOrganization: Colorado State U. Engineering College\nKeywords: radiosity\nLines: 45\n\n\n\nIn article <1993Apr19.131239.11670@aragorn.unibe.ch>, you write:\n|>\n|>\n|> Let's be serious... I'm working on a radiosity package, written in C++.\n|> I would like to make it public domain.  I'll announce it in c.g. the minute\n|> I finished it.\n|>\n|> That were the good news. The bad news: It'll take another 2 months (at least)\n|> to finish it.\n\n\n Are you using the traditional radiosity method, progressive refinement, or\n  something else in your package?\n\n If you need to project patches on the hemi-cube surfaces, what technique are\n  you using?  Do you have hardware to facilitate the projection?\n\n\n|>\n|> In the meantime you may have a look at the file\n|>   Radiosity_code.tar.Z\n|> located at\n|>   compute1.cc.ncsu.edu\n\n\n  What are the guest username and password for this ftp site?\n\n\n|>\n|> (there are some other locations; have a look at archie to get the nearest)\n|>\n|> Hope that'll help.\n|>\n|> Yours\n|>\n|> Stephan\n|>\n\n\n   Thanks, Stephan.\n\n\n    Josephine\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10467, "properties": {"category": "sci.crypt", "text": "From: mbeckman@mbeckman.mbeckman.com (Mel Beckman)\nSubject: Re: An Open Letter to Mr. Clinton\nOrganization: Beckman Software Engineering\nReply-To: mbeckman@mbeckman.com\nDistribution: world\nX-Mailer: uAccess LITE - Macintosh Release: 1.5v5\nLines: 38\n\n\nIn article <strnlghtC5M2Cv.8Hx@netcom.com> (sci.crypt), strnlght@netcom.com (David Sternlight) writes:\n> Here's a simple way to convert the Clipper proposal to an unexceptionable\n> one: Make it voluntary.\n> \n> That is--you get high quality secure NSA classified technology if you agree\n> to escrow your key. Otherwise you are on your own.\n> \n\nDavid,\n\n  As an economist, I'm sure you can see the flaws in this logic. If the (naive)\nmarket is flooded with proprietary, but weak, encryption, then truly strong \nencryption will be unable to compete. Suppose the govt had a secret TV broadcast\nstandard, and then sold TVs below cost. Private industry has a better standard,\nbut it's not as widespread due to the govt early flooding of the market\nwith cheap proprietary sets. Even though the industry's technology is better,\nthe programming is being broadcast to the govt's unduplicatable standard.\nWho could compete?\n\n  The other flaw, of course, is that making something voluntary today ensures\nthat it will be voluntary in the future. I went to renew my CA drivers license\nlast week and was required not only to give my SSN, but to PRODUCE AN SSN\nCARD to veryify the number!  Note that a federal law once said that no state\nor local govt could ever require the use of SSNs for drivers license registration\n(specifically!).\n\n   I do not trust the govt that says \"trust me on this even though we could\nhave an arrangement that doesn't require your trust.\"  Something is big\ntime fishy. If you look more carefully, you'll see it.\n\n  -mel\n\n________________________________________________________________________\n| Mel beckman                  |   Internet: mbeckman@mbeckman.com     |\n| Beckman Software Engineering | Compuserve: 75226,2257                |\n| Ventura, CA 93003            |  Voice/fax: 805/647-1641 805/647-3125 |\n|______________________________|_______________________________________|\n \"You can observe a lot just by watching.\"  -Yogi Bera\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10468, "properties": {"category": "sci.crypt", "text": "From: rschnapp@metaflow.com (Russ Schnapp)\nSubject: Re: Once tapped, your code is no good any more.\nNntp-Posting-Host: habu\nOrganization: Metaflow Technologies Inc.\nLines: 19\n\nIt might be nice to:\n\n1. cut out the ad hominem attacks on Prof. Denning, Mr. Sternlight,\netc.  If you have something objective to say about their views, go\nahead and say it (subject to point 2.).  Personal attacks reflect more\non the attacker more than on the attackee.  Throw light, not heat!\n\n2. restrict the discussion to appropriate newsgroups. I submit that\ncomp.org.acm and comp.org.ieee are not appropriate for this\ndiscussion.  You have now made subscribers to these newsgroups aware of\nthe issue.  If they want to know more or participate in the discussion,\nthey can easily join sci.crypt, comp.security.misc, alt.security, or\ncomp.org.eff.talk.\n-- \n\n...Russ Schnapp\nEmail: netcom!metaflow!rschnapp or rschnapp@Metaflow.com or rschnapp@BIX.com\nMetaflow Technologies   Voice: 619/452-6608x230;  FAX: 619/452-0401\nLa Jolla, California    Unless otw specified, I`m speaking only for myself!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10469, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: Freedom In U.S.A.\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 30\n\nIn article <1993Apr25.182253.1449@Virginia.EDU> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n>\tI have just started reading the articles in this news\n>group. There seems to be an attempt by some members to quiet\n>other members with scare tactics. I believe one posting said\n>that all postings by one person are being forwarded to his\n>server who keeps a file on him in hope that \"Appropriate action\n>might be taken\". \n>\tI don't know where you guys are from but in America\n>such attempts to curtail someones first amendment rights are\n>not appreciated. Here, we let everyone speak their mind\n>regardless of how we feel about it. Take your fascistic\n>repressive ideals back to where you came from.\n\nIt would be nice if, as you rightly point out the inherent value of\nfreedom of speech, discussion would also deal with the all-to-\nfrequent ritualized abuses and distortions of that freedom that do \noccur. There are situations where a few extremely vocal, and \nusually radical, people **do** drive people away, effectively stifle\nall other (\"opposing\") views and generally \"take over\". *Clearly*,\nthe purpose behind such actions is *to deprive* others of *their*\nfreedom of speech through overt and covert coercion and domination of \nthe \"media form\" in question. While \"freedom\" of speech is to be valued,  \nthis is not. How would you suggest that this sort of reoccuring problem be \nalleviated? More particularly, how can this be controlled within the \nstructure of these newsgroups?\n--\nTim Clock                                   Ph.D./Graduate student\nUCI  tel#: 714,8565361                      Department of Politics and Society\n     fax#: 714,8568441                      University of California - Irvine\nHome tel#: 714,8563446                      Irvine, CA 92717\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10470, "properties": {"category": "sci.electronics", "text": "From: jbore@cosmos.shearson.com (Joe Bore)\nSubject: Re: Need to find out number to a phone line\nIn-Reply-To: alee@ecs.umass.edu's message of 18 Apr 93 15:04:10 GMT\nOrganization: Lehman Brothers\nLines: 33\n\n\n\ntry finding a friend that has caller id, then give him a call...\n\njb\n\n\nIn article <20756.2bd16dea@ecs.umass.edu> alee@ecs.umass.edu writes:\n\n   Path: shearson.com!uupsi!psinntp!uunet!haven.umd.edu!darwin.sura.net!newsserver.jvnc.net!howland.reston.ans.net!noc.near.net!nic.umass.edu!risky.ecs.umass.edu!umaecs!alee\n   From: alee@ecs.umass.edu\n   Newsgroups: sci.electronics\n   Date: 18 Apr 93 15:04:10 GMT\n   Lines: 13\n\n\n   Greetings!\n\n\t   Situation:  I have a phone jack mounted on a wall.  I don't\n\t\t       know the number of the line.  And I don't want\n\t\t       to call up the operator to place a trace on it.\n\n\t   Question:   Is there a certain device out there that I can\n\t\t       use to find out the number to the line?\n\t   Thanks for any response.\n\t\t\t\t\t\t       Al\n\n\n--\n-------------------------------------------------------------------------------\nJoe Bore\t\t\t\t\t | \"Life is Short...Code Hard\"\njbore@Shearson.COM | ...!uunet!shearson.com!jbore| \n(212)464-3431, Beeper:  (212)396-4248\t\t |\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10471, "properties": {"category": "comp.graphics", "text": "From: kaufman@Xenon.Stanford.EDU (Marc T. Kaufman)\nSubject: Re: TIFF: philosophical significance of 42\nReply-To: kaufman@CS.Stanford.EDU\nOrganization: CS Department, Stanford University, California, USA\nLines: 33\n\njoachim@kih.no (joachim lous) writes:\n\n>ulrich@galki.toppoint.de wrote:\n-> According to the TIFF 5.0 Specification, the TIFF \"version number\"\n-> (bytes 2-3) 42 has been chosen for its \"deep philosophical \n-> significance\".\n\n-> Last week, I read the Hitchhikers Guide To The Galaxy, and rotfl the\n-> second time. (After millions of years of calculation, the second-best\n-> computer of all time reveals that 42 is the answer to the question\n-> about life, the universe and everything)\n\n-> Is this actually how they picked the number 42?\n\n>Yes.\n\n-> Does anyone have any  other suggestions where the 42 came from?\n\n   At this moment the King, who had been for some time busily writing in\nhis note-book, called out \"Silence!\" and read out from his book\n\"Rule Forty-two. All persons more than a mile high to leave the court.\"\n   Everybody looked at Alice.\n   \"I'm not a mile high,\" said Alice.\n   \"You are,\" said the King.\n   \"Nearly two miles high,\" added the queen.\n   \"Well, I sha'n't go, at any rate,\" said Alice; \"besides, that's not\na regular rule: you invented it just now.\"\n   \"It's the oldest rule in the book,\" said the King.\n   \"Then it ought to be Number One,\" said Alice.\n\n-- \nMarc Kaufman (kaufman@CS.Stanford.EDU)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10472, "properties": {"category": "alt.atheism", "text": "From: house@helios.usq.EDU.AU (ron house)\nSubject: Re: some thoughts.\nKeywords: Dan Bissell\nOrganization: University of Southern Queensland\nLines: 42\n\nbissda@saturn.wwc.edu (DAN LAWRENCE BISSELL) writes:\n\n>\tFirst I want to start right out and say that I'm a Christian.  It \n\nI _know_ I shouldn't get involved, but...   :-)\n\n[bit deleted]\n\n>\tThe book says that Jesus was either a liar, or he was crazy ( a \n>modern day Koresh) or he was actually who he said he was.\n>\tSome reasons why he wouldn't be a liar are as follows.  Who would \n>die for a lie?  Wouldn't people be able to tell if he was a liar?  People \n>gathered around him and kept doing it, many gathered from hearing or seeing \n>someone who was or had been healed.  Call me a fool, but I believe he did \n>heal people.  \n>\tNiether was he a lunatic.  Would more than an entire nation be drawn \n>to someone who was crazy.  Very doubtful, in fact rediculous.  For example \n>anyone who is drawn to David Koresh is obviously a fool, logical people see \n>this right away.\n>\tTherefore since he wasn't a liar or a lunatic, he must have been the \n>real thing.  \n\nRighto, DAN, try this one with your Cornflakes...\n\nThe book says that Muhammad was either a liar, or he was crazy ( a \nmodern day Mad Mahdi) or he was actually who he said he was.\nSome reasons why he wouldn't be a liar are as follows.  Who would \ndie for a lie?  Wouldn't people be able to tell if he was a liar?  People \ngathered around him and kept doing it, many gathered from hearing or seeing \nhow his son-in-law made the sun stand still.  Call me a fool, but I believe \nhe did make the sun stand still.  \nNiether was he a lunatic.  Would more than an entire nation be drawn \nto someone who was crazy.  Very doubtful, in fact rediculous.  For example \nanyone who is drawn to the Mad Mahdi is obviously a fool, logical people see \nthis right away.\nTherefore since he wasn't a liar or a lunatic, he must have been the \nreal thing.  \n\n--\n\nRon House.                 USQ\n(house@helios.usq.edu.au)  Toowoomba, Australia.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10473, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ivan@IRO.UMontreal.CA (Catalin Ivan)\nSubject: IDE/ESDI coexistence\nSummary: How to make IDE and ESDI controllers live together???\nKeywords: HD, controller, IDE, ESDI, disks\nOrganization: Universite de Montreal\nLines: 57\n\nHello all,\n\nYou, the Net, are my last resort, or I'll just change my job :-)\nThis might be a FAQ (e.g. mixing controllers) but haven't seen any.\n\nSys: 486/33, AMI BIOS, and your run-of-the mill multi-I/O card with\nserials/paral/floppies and \n\t- IDE controller \"clone\" Gw2760-EX\n\t\tthere are no jumpers affecting the HD or ctrller :-( \n\t- Quantum ProDrive LPS (3\" 105M type 47: 755cyl, 16hds, 17spt).\n\nPb: I want to bring in this (2nd hand, neat price):\n\t- Maxtor XT-B380E (~330M, <15ms, BIOS type 1, ctrller manages\n\t\tthe real geom: 1630cyl, 8hds, 52spt)\n\t- Western Digital WD1007V-SE1 ESDI ctrller: no floppies.\n\t\t(jumpers set IRQ 14/15, hw port addr 1F0/170,\n\t\tand BIOS addr CC00/C800, and other floppy/format stuff)\n\nGoal: have the WD ESDI as a secondary/controller and have both disks \nsimultaneously working. Being able to boot from the ESDI too would be \na nice bonus but is not expected.\n\nUltimate goal: have room for Linux et al.\nEx of scheme I have in mind: boot from IDE (HD or floppy) and mount\nthe ESDI as root. Not booting from ESDI, or even from HD, is acceptable.\n\nI have tried numerous (all!!) combinations to no avail. They work alone,\nor can coexist witout hang-ups but can't access the ESDI or the IDE, \ndepending on setup/jumpers.\n\nUseful suggestions might be:\n- How do I tell the BIOS setup about two ctrllers (I guess the 2nd HD\nis expected to hang off the same ctrller as the 1st).\n- Do I need some driver to make it work?\n- --- \" --- some new BIOS/chip for any of these cards?\n- do I have to buy another controller to make them HDs happy? IDE\nis cheaper; ESDI is hard to find and rather costly. I'm not \nrich or I wouldnt' try to scavenge around, so soft slns are preferred.\n- adapters of some sort; I can hold a soldering iron, and can change\na chip or put a jumper!\n\nAlso useful:\n- BBS or Hot-line of Western Digital.\n- ftp archives with relevant info.\n- expert stores in Toronto, Ontario area (that would be a miracle! haven't\nseen any really knowledgeable ppl in a while)\n- any hints into inner workings of the system ... \n- anything else that helped you in similar situations (prayers :-) )\n\nDirect or posted replies are ok.\n\tMany thanks,\n\t\t\tCat.\n--\n////// /// // / /  /  /   /   /    /     /      /      /        / \nCatalin Ivan - email: ivan@Iro.UMontreal.CA - tel:(416) 324.8704\n         Human-Computer   INTERACTION   Humain-Machine \nUniversite de Montreal - Informatique et Recherche Operationelle\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10474, "properties": {"category": "talk.religion.misc", "text": "From: edmahood@infoserv.com (Ed Mahood, Jr.)\nSubject: Re: Greek myth and the Bible\nOrganization: Writer\nLines: 28\nX-Mailer: TMail version 1.13\n\nIn <Pegasus-130393124328@fp1-dialin-7.uoregon.edu>, Pegasus@AAA.UOregon.EDU (Laurie EWBrandt)  wrote:\n> \n> [irrelevant inserts from previous postings deleted]\n> \n> A definiation from a text book used as part of an introductory course in\n> social anthorpology \"The term myth designates traditionally based, dramatic\n> narratives on themes that emphasize the nature of humankind's relationship\n> to nature and to the supernatural. ...  legends are ususally defined as\n> tales concerning other times and places that do not give the same extensive\n> emphasis to supernatural themes. Legends, more often than myths, are retold\n> purely as entertainment.\" from Peter B. Hammand's .An introduction to\n> Cutural and Social Anthropology. second ed Macmillion page 387. This makes\n> the Bible a Fibber Magee's closet, over stuffed with a little bit of every\n> thing gleened by a wandering people.\n> Pegasus \n\n     Now doesn't this sound a lot like the \"colorful (or otherwise) story \n     from antiquity that somehow tries to (or does) explain natural pheno-\n     mena\"?  I think I hear what you're saying, but I'm not convinced that\n     I know what you mean.  The possibility exists that what _looks_ like\n     \"myth\" on the surface may be after all much more than \"just\" a story.\n     \n      \n\n     * * * * * * * * * * * * * * * * * * * * *\n\n     ed mahood, jr.  < edmahood@infoserv.com >\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10475, "properties": {"category": "rec.autos", "text": "From: ak954@yfn.ysu.edu (Albion H. Bowers)\nSubject: Re: Manual Shift Bigots\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 48\nReply-To: ak954@yfn.ysu.edu (Albion H. Bowers)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article,  (Eric Youngblood) says:\n\n>In article <Apr19.195700.19699@engr.washington.edu>, eliot@stalfos.engr.washington.edu (eliot) writes:\n\n>[race car stuff deleted]\n\nBack to the F1 stuff for a second, note that the `auto' tranny in F1\n_STILL_ shifts at the driver's command, not some preselected schedule.  The\ndriver still controls the shifting, not the transmission. \n\n>|> now, there is no dispute that in production cars, automatics are\n>|> inherently more lossy than manuals.  that is in theory.  my point all\n>|> along is that whatever mechanical advantages a manual has over an\n>|> automatic can very easily be lost by a driver who isn't skillful or\n\n>One thing that gives an automatic an advantage at launch is the fact that\n>it has a torque converter vs a clutch.  I know this sounds strange but,\n>a torque converter multiplies the engine output when launching.  It functions\n          ^^^^^^^^^ ^^^^^^^^^^^\n>as a sort of limited Continuously Variable Transmission. Typically you get \n>a torque multiplication of 2 to 3 times depending on the stall speed.\n\nI have yet to see a torque multiplier installed on a production automobile. \nSuch systems do exist, but none are presently installed in production autos\nthat I am aware of.  These are commonly called viscous drive CVTs or\nfluidic amplifiers. \n\n>Contrasted to a clutch which merely slips when feathered (result is no TQ mult)\n\nWhat the convertor _does_ allow is for the engine to be closer to its\ntorque peak during the launch before a clutched car can fully engage it's\ndriveline.  Chevy proved it many years ago with the '70 Camaro (ETs and\nterminal 1/4 mile times were close enough tpo be identical for 4 speed and\nauto cars).  Note that this is also the major reason that an auto car can\nget away with fewer gears than a manual, the slip in the convertor makes up\nfor the fewer ratios (and before everyone starts yelling about the proposed\n5 sspeed autos soon to be out, note that some manufacturers are using 6\nspeed manulas now). \n\n>Once past lauch however, the converter begins coupling and the TQ multiplication\n>effect is reduced, but by then you should be on the cam.\n\nCorrect.\n-- \nAl Bowers  DOD #900  Alfa  Ducati  Hobie  Kottke  'blad  Iaido  NASA\n\"Well goodness sakes...don't you know that girls can't play guitar?\"\n                                             -Mary Chapin-Carpenter\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10476, "properties": {"category": "sci.space", "text": "From: jtk@s1.gov (Jordin Kare)\nSubject: Re: Inflatable Mile-Long Space Billboards (was Re: Vandalizing the sky.)\nOrganization: LLNL\nLines: 96\nDistribution: world\nNNTP-Posting-Host: s1.gov\n\nyamauchi@ces.cwru.edu (Brian Yamauchi) writes:\n>enzo@research.canon.oz.au (Enzo Liguori) writes:\n>>WHAT'S NEW (in my opinion), Friday, 16 April 1993  Washington, DC\n>\n>>Now, Space Marketing\n>>is working with University of Colorado and Livermore engineers on\n>>a plan to place a mile-long inflatable billboard in low-earth\n>>orbit.\n>\n>This sounds like something Lowell Wood would think of.  Does anyone\n>know if he's involved?\n\nNo.  The idea was suggested around here during discussions of possible\nnear-term commercial space activities.  One of the folks involved in those\ndiscussions, a\nspacecraft engineer named Preston Carter, passed the suggestion on to \nsome entreprenurial types, and Mike Lawson is apparently going ahead with\nit.  Preston is now at LLNL, and is working with Space Marketing on \nthe sensors that might be carried.\n>\n>>NASA would provide contractual launch services. However,\n>>since NASA bases its charge on seriously flawed cost estimates\n>>(WN 26 Mar 93) the taxpayers would bear most of the expense. \n\nActually, that sounds unlikely.  I don't know what the launch vehicle\nwould be, but I would expect it to go on a commercial launcher --\ncertainly not on the Shuttle -- and the fraction of the cost paid to NASA\nfor, e.g.,  launch support would probably \ncover NASA's incremental costs pretty well.\n\n>>This\n>>may look like environmental vandalism, but Mike Lawson, CEO of\n>>Space Marketing, told us yesterday that the real purpose of the\n>>project is to help the environment! The platform will carry ozone\n>>monitors he explained--advertising is just to help defray costs.\n>\n>This may be the purpose for the University of Colorado people.  My\n>guess is that the purpose for the Livermore people is to learn how to\n>build large, inflatable space structures.\n\nNo, as noted, LLNL is involved in lightweight sensor design, per \nClementine and related programs.  I'm sure folks around here would like to \nsee a demonstration of a modern inflatable structure, but after all, \nthe U.S. did the Echo satellites long ago, and an advertising structure\nwould not be much closer to an inflatable space station than Echo was\n(or a parade balloon, for that matter).\n>\n>>..........\n>>What do you think of this revolting and hideous attempt to vandalize\n>>the night sky? It is not even April 1 anymore.\n\nWhile I happen to personally dislike the idea, mostly because I've got\na background in astronomy, it's hardly vandalism -- it would be a short-lived\nintrusion on the night sky, doing no permanent damage and actually hurting\nonly a small subset of astronomers.  On the other hand, it would certainly\ndraw attention to space.   \n>\n>If this is true, I think it's a great idea.\n>\n>Learning how to build structures in space in an essential\n>step towards space development...\n\nWhich, unfortunately, this is not likely to contribute much to.\n\n>If such a project also monitors ozone depletion and demonstrates\n>creative use of (partial) private sector funding in the process -- so\n>much the better.\n>\n>>Is NASA really supporting this junk?\n\nAs far as I know, it's a purely commercial venture.\n>\n>And does anyone have any more details other than what was in the WN\n>news blip?  How serious is this project?  Is this just in the \"wild\n>idea\" stage or does it have real funding?\n\nI gather it is being very seriously discussed with possible advertisers.\nCommercial projects, however, generally don't get \"funding\" -- they\nget \"customers\" -- whether it will have customers remains to be seen.\n>\n>>Are protesting groups being organized in the States?\n>\n>Not yet.  Though, if this project goes through, I suppose The Return\n>of Jeremy Rifkin is inevitable...\n\nNahh.  He's too busy watching for mutant bacteria to notice anything in\nthe sky :-)\n\n>\n>Brian Yamauchi\t\t\tCase Western Reserve University\n>yamauchi@alpha.ces.cwru.edu\tDepartment of Computer Engineering and Science\n\nJordin Kare\tjtk@s1.gov\tLawrence Livermore National Laboratory\n\n[These are my personal views only and do not represent official statements\nor positions of LLNL, the University of California, or the U.S. DOE.]\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10477, "properties": {"category": "sci.space", "text": "From: dpage@ra.csc.ti.com (Doug Page)\nSubject: Re: Quaint US Archaisms\nNntp-Posting-Host: ra\nOrganization: Texas Instruments\nLines: 41\n\nIn article <C512wC.B0M.1@cs.cmu.edu>, nickh@CS.CMU.EDU (Nick Haines) writes:\n|> In article <1993Apr2.170157.24251@ke4zv.uucp> gary@ke4zv.uucp (Gary Coffman) writes:\n|> \n<stuff deleted>\n|> Of course the units of force have the same names as those of weight,\n|> but in order to use them you need to keep useful constants like the\n|> omnipresent 32.???? ft/sec^2 around.\n|> \n|> Maybe you'd like to go over again how this system is _so_ natural and\n|> _so_ easy to use, Gary? While you're at it, you can figure out for us\n|> the weight of 17 barrels and a quart of foo (density 17lb 2 3/4 oz per\n|> cubic foot) on the moon (gravity 5 ft 7 3/32 in/sec^2). Let's face it,\n|> even the imperial system uses a basically metric way of relating\n|> quantities (i.e. that would be written as 5.59 ft/sec^2); the only\n|> thing you're hanging on to is the right to express the same quantity\n|> as 1731 inches, 144.25 feet, 48.0833 yards or 2.186 chains. What\n|> everyone else is saying is _why_ do you want to do that?\n|> \n|> Any apparent remaining complexity in the SI system is due to the\n|> multiplicity of the aforesaid prefixes. In fact what's going on (and\n|> the fundamental difference between SI and imperial) is that you have\n|> exactly one unit of each type, and all values of that type are\n|> expressed as some multiple of the unit.\n\nYou mean like: seconds, minutes, hours, days, months, years. . .  :-)\n\nRemember,  the Fahrenheit temperature scale is also a centigrade scale.  Some\nrevisionists tell the history something like this:  The coldest point in a\nparticular Russian winter was marked on the thermometer as was the body\ntemperature of a volunteer (turns out he was sick, but you can't win 'em all).\nThen the space in between the marks on the thermometer was then divided into\nhundredths.\n\t\t\t\t\t\t\t\t:-)\n\nFWIW,\n\nDoug Page\n\n\n***  The opinions are mine (maybe), and do not necessarily represent those  ***\n***  of my employer (or any other sane person, fot that matter).            ***\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10478, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: 3 AIDS Related Questions\nArticle-I.D.: pitt.19407\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 29\n\nIn article <93087.011308PXF3@psuvm.psu.edu> PXF3@psuvm.psu.edu (Paula Ford) writes:\n>A friend of mine was a regular volunteer blood donor.  During surgery, he\n>was given five units of blood, and after a suitable recovery time, he went\n>to donate blood at a \"bloodmobile.\" He was HIV+, and did not know it.\n>\n>The Red Cross notified him with a _registered letter_.  That's all.  No\n>counselling, no nothing.  He died two years ago, this week.  He left behind\n\nHow long ago was this?  When I said you'd get counselling, I meant if\nyou did it now.  Long ago, practices varied and agencies had to gear\nup to provide the counselling.\n\n>a wife and a four-year-old son.  Many people have suggested that his wife\n>should sue the Red Cross, but she would not.  She says that without the\n>blood transfusions he would have died during the surgery.\n>\n\nGood for her.  What we don't need is everyone suing community service\nagencies that provide blood that people need.  Testing is not fool proof.\nThe fact that he got AIDS from a transfusion (if he really did) does\nnot mean the Red Cross screwed up.  Prior to 1983 or so, there wasn't\na good test and a lot of bad blood got through.  This wasn't the fault\nof the Red Cross.  When did he get the transfusions?\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.491+0000", "event": "documents", "entityId": 10479, "properties": {"category": "talk.politics.guns", "text": "From: gardner@convex.com (Steve Gardner)\nSubject: Re: Gov't break-ins (Re: 60 minutes)\nNntp-Posting-Host: imagine.convex.com\nOrganization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA\nX-Disclaimer: This message was written by a user at CONVEX Computer\n              Corp. The opinions expressed are those of the user and\n              not necessarily those of CONVEX.\nLines: 25\n\nIn article <1993Apr5.155733.114@pasadena-dc.bofa.com> franceschi@pasadena-dc.bofa.com writes:\n>In Viet Nam, Lt Calley was tried and convicted of murder because his\n>troops, in a war setting, deliberately killed innocent people. It is time\n>that the domestic law enforcement agencies in this country adhere to\n>standards at least as moral as the military's.\n\tHere! Here!  But any call for responsibility and accountability \n\tfrom police is invariably interpreted as being \"soft on crime\".\n\tBeing \"tough on crime\" and building more prisons and seizing more\n\tproperty is the politically astute thing to do these days.\n\n\n>Greed killed the rancher, possibly greed killed the Davidian children.\n>Government greed.\n\tAnd citizen complacency!\n\n>It is time to prosecute the leaders who perform these invasions.\n\tDon't forget the politicians that write the laws that make it\n\teasy for the police agencies to become corrupt.  The War on Some\n\tDrugs brought us this corruption and only an end to it (legalization)\n\twill stop the corruption.\n\n\n\t\t\t\t\t\tsmg\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10480, "properties": {"category": "comp.windows.x", "text": "From: mmc@cs.rit.edu (Mahendra M Chheda)\nSubject: How can I rotate text ?\nNntp-Posting-Host: mackinac\nOrganization: Rochester Institute of Technology\n\nHi,\n\nI am programming in XView, SunOS 4.1.2 & OpenWindows 3.0. I would like\nto rotate some text and display it. I did read the FAQ in comp.windows.x\nbut am not sure how do I translate it to XView. I would appreciate if\nsomeone can give me tips on how to do it. Thanx.\n\n\t- Mahendra.\n\nPS : As I am not a frequent news group reader, I would appreciate if\n     answers/replies would be mailed to me. I will post a follow-up.\n\n-- \n\n***************************************************************************\n\tMahendra Chheda\t\t\t#\n\tmmc@cs.rit.edu\t\t\t#\n\tmmc7274@ritvax.isc.rit.edu\t#\n\t\t\t\t\t#\n\tOffice :\t\t\t#\tResidence :\n\tDept. of Computer Science\t#\t440 Kimball Drive\n\tRochester Institute of Tech.\t#\tRochester, NY 14623\n\tTel. 716-475-2079\t\t#\tTel. 716-292-5726\n***************************************************************************\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10481, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Militello update\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nDistribution: usa\nLines: 25\n\nIn article <93602@hydra.gatech.EDU> gt0523e@prism.gatech.EDU (Michael Andre Mule) writes:\n>\n>HEY!!! All you Yankee fans who've been knocking my prediction of Baltimore.\n\nUm.  How many games have the Orioles won?\n\n>You flooded my mailbox with cries of \"Militello's good, Militello's good.\"\n\nHe is, or will be.\n\n>Where is he??!! I noticed he got skipped over after that oh so strong first\n>outing.  He's not by any chance in Columbus  now, is he?  Please don't tell\n>me you're relying on this guy to be the *fourth*, not the fifth, but the \n>*fourth* starter on this brittle pitching staff.  \n\nNo, currently there's no room for him in the rotation.  Key is having\na Most Impressive April.  Abbott is pitching well.  Perez is back.\nWickman has pitched his way into the rotation, and is holding his spot\nwith an outstanding performance his last time out.  And Kamieniecki\nisn't doing too poorly himself.\n\nIf the Yankees find themselves in need of a starter, Militello will\nget another chance.  Until then, he'll have to wait in line.\n\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10482, "properties": {"category": "talk.politics.misc", "text": "From: system@garlic.sbs.com (Anthony S. Pelliccio)\nSubject: Re: NC vs Hunt (Marine Gay Bashing in Wilmington NC) verdict\nOrganization: Antone's Italian Kitchen and Excellence in Operating Network\nX-Newsreader: rusnews v1.01\nLines: 47\n\nkkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n\n> tfarrell@lynx.dac.northeastern.edu (Thomas Farrell) writes:\n> \n>>Funny, but I've seen a LOT more than 10 or 15 seconds of that video, and\n>>I still think the police involved were guilty. I don't think there's any\n>>excuse they could POSSIBLY come up with that would make what they did\n>>OK. I don't care if Rodney King was satan himself, there's just no\n>>excuse. Now, whether they did it because he was black or they did it\n>>because they wanted to beat up on somebody they were arresting is\n>>another entirely separate question that I have insufficient information\n>>to make any kind of conclusion about.\n> \n> \n>        How about the fact that you have a bunch of cops putting their lives o\n> n\n> the line day in and day out who are afraid as hell of a large black guy that\n> took a large amount of punishment and refused submit?  Oh yeah, did you watch\n> the start of the video when King got UP out of his prone postion and charge\n> the cops?  Sorry, the video cuts both was when you sit and watch it start to\n> finish.\n> \n> \n\nI have to agree with you... the police may have carried it a bit too far\nbut Rodney King was no angel either. And I don't think ANY guilty\nverdicts should have been returned. I'm sure you know why they handed\ndown guilty verdicts on two of the officers. It's quite simple really,\nit was a compromise to avoid rioting in the places where minorities\nthink it's right to riot. I hate to say this, but I would have liked to\nsee them riot with everyone prepared. It would be open season if your\nskin was even slightly brown.\n\nHey, my motto is, you don't fuck with me or my stuff and you don't get\nkilled. It's just that simple.\n\nTony\n\n-----------------------------------------------------------------------\n-- Anthony S. Pelliccio, kd1nr/ae    // Yes, you read it right, the  //\n-- system @ garlic.sbs.com          // man who went from No-Code    //\n-----------------------------------// (Thhhppptt!) to Extra in     //\n-- Flame Retardent Sysadmin       // exactly one year!            //\n-------------------------------------------------------------------\n-- This is a calm .sig! --\n--------------------------\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10483, "properties": {"category": "rec.motorcycles", "text": "From: delilah@next18pg2.wam.umd.edu (Romeo DeVerona)\nSubject: Re: New to Motorcycles...\nNntp-Posting-Host: next18pg2.wam.umd.edu\nOrganization: Workstations at Maryland, University of Maryland, College Park\nLines: 10\n\n> > Motorcycle Safety Foundation riding course (a must!)\t$140\n>                                                          ^^^\n> Wow!  Courses in Georgia are much cheaper.  $85 for both.\n> >\n> \nin maryland, they were $25 each when i learned to ride 3 years ago. now,\nit's $125 (!) for the beginner riders' course and $60 for the experienced\nriders' course (which, admittedly, takes only about half the time ).\n\n-D-\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10484, "properties": {"category": "comp.graphics", "text": "From: aron@tikal.ced.berkeley.edu (Aron Bonar)\nSubject: Re: 3d-Studio V2.01 : Any differences with previous version\nOrganization: University of California, Berkeley\nLines: 18\nDistribution: world\nNNTP-Posting-Host: tikal.ced.berkeley.edu\n\nIn article <1993Apr22.021708.13381@hparc0.aus.hp.com>, doug@hparc0.aus.hp.com (Doug Parsons) writes:\n|> FOMBARON marc (fombaron@ufrima.imag.fr) wrote:\n|> : Are there significant differences between V2.01 and V2.00 ?\n|> : Thank you for helping\n|> \n|> \n|> No.  As I recall, the only differences are in the 3ds.set parameters - some\n|> of the defaults have changed slightly.  I'll look when I get home and let\n|> you know, but there isn't enough to actually warrant upgrading.\n|> \n|> douginoz\n\nWrong...the major improvements for 2.01 and 2.01a are in the use of IPAS routines\nfor 3d studio.  They have increased in speed anywhere from 30-200% depending\non which ones you use.\n\nAll the Yost group IPAS routines that you can buy separate from the 3d studio\npackage require the use of 2.01 or 2.01a.  They are too slow with 2.00.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10485, "properties": {"category": "misc.forsale", "text": "From: RFP@jhuvm.hcf.jhu.edu (Rebecca Priver)\nSubject: Summer Sublet available in Baltimore\nOrganization: Johns Hopkins University, Homewood Academic Computing\nLines: 18\nNNTP-Posting-Host: jhuvm.hcf.jhu.edu\n\nLarge bedroom for rent from June 1-Aug 15 in row house near JHU (Homewood).\nNo smokers or pets.  Share house with 2 or 3 F law students.  F professional/\nstudent wanted. 2 bath,large kitchen - remodeled last summer, hardwood floors,\nlr,dr, washer and dryer.  Beautiful details.  Rent $325 + 1/4 utilities.\nLocated on bus lines.\n \nFor more info email me : RFP@JHUVM\n \n \n \n \n \n \n \n \n \n \n \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10486, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: \"Cruel\" (was Re: <Political Atheists?)\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 35\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1qnpa6INN8av@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n>>Hanging? Hanging there slowing being strangled would be very \n>>painful, both physically and psychologicall, I imagine.\n>\n>Well, most hangings are very quick and, I imagine, painless.\n\n\tI think this is a misnomer.\n\n>\n>>Firing squad ? [ note: not a clean way to die back in those \n>>days ], etc. \n>>All would be considered cruel under your definition.\n>>All were allowed under the constitution by the founding fathers.\n>\n>And, hangings and firing squads are allowed today, too.  And, if these\n>things were not considered cruel, then surely a medical execution\n>(painless) would not be, either.\n\n\tBut, this just shows then that painful execution is not considered \n\"cruel\" and unusual punishment. This shows that \"cruel\" as used in the \nconstitution does NOT refer to whether or not the punishment causes physical \npain.\n\tRather, it must be a different meaning.\n\n---  \n\n  \" I'd Cheat on Hillary Too.\"\n\n   John Laws\n   Local GOP Reprehensitive\n   Extolling \"Traditional Family Values.\"\n\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10487, "properties": {"category": "talk.politics.mideast", "text": "From: hernlem@chess.ncsu.edu (Brad Hernlem)\nSubject: Re: was:Go Hezbollah!\nReply-To: hernlem@chess.ncsu.edu (Brad Hernlem)\nOrganization: NCSU Chem Eng\nLines: 36\n\n\nIn article <93y04m18d459@witsend.uucp>, \"D. C. Sessions\" <dcs@witsend.tnet.com> writes:\n\n|>   Please clarify your standards for rules of engagement.  As I\n|>   understand it, Israelis are at all times and under all\n|>   circumstances fair targets.  Their opponents are legitimate\n|>   targets only when Mirandized, or some such?\n|> \n|>   I'm sure that this makes perfect sense if you grant *a*priori*\n|>   that Israelis are the Black Hats, and that therefore killing\n|>   them is automatically a Good Thing (Go Hezbollah!).  The\n|>   corollary is that the Hezbollah are the White Hats, and that\n|>   whatever they do is a Good Thing, and the Israelis only prove\n|>   themselves to be Bad Guys by attacking them.\n|> \n|>   This sounds suspiciously like a hockey fan I know, who cheers\n|>   when one of the players on His Team uses his stick to permanently\n|>   rearrange an opponent's face, and curses the ref for penalizing\n|>   His Side.  Of course, when it's different when the roles are\n|>   reversed.\n|> \n|> --- D. C. Sessions \n\nWell, you should have noted that I was cheering an attack on an Israeli \npatrol INSIDE Lebanese territory while I was condemning the \"retaliatory\"\nshelling of Lebanese villages by Israeli and Israeli-backed forces. My \"team\",\nyou see, was \"playing fair\" while the opposing team was rearranging the\nfaces of the spectators in my team's viewing stands, so to speak. \n\nI think that you should try to find more sources of news about what goes on\nin Lebanon and try to see through the propaganda. There are no a priori\nblack and white hats but one sure wonders how the IDF can bombard villages in \nretaliation to pin-point attacks on its soldiers in Lebanon and then call the\nLebanese terrorists.\n\nBrad Hernlem (hernlem@chess.ncsu.EDU)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10488, "properties": {"category": "comp.windows.x", "text": "From: brent@vpnet.chi.il.us (Brent Hansen)\nSubject: Re: GUI Study\nOrganization: Vpnet Public Access\nDistribution: usa\nLines: 58\n\nIn article <1993Apr2.203400.15357@kocrsv01.delcoelect.com> c2xjfa@kocrsv01.delcoelect.com (James F Allman III) writes:\n>\n>> \n>> > I'm doing a study on what the following type of users would like to\n>> > have on a Unix Manager.  Basically I'm looking for the Unix commands\n>> > and features on Motif window interface which will help the different\n>> > type of users make use of Unix.\n>> ...\n\n\n>> Personally, I can't stand Motif.  I also can't stand GUI      Command Line!\n>> interfaces for things like access to the commands I know      Command Line!\n>> and love.  I think you'll find that experience [sic] users    Command Line!\n>> \n>> \t\t\t\t\tder Mouse\n>> ...\n\n\n>A year and a half ago I felt the same way.  The I started using\n>gooyies.  Give me the command line when something out of the ordinary\n>needs done, and the gooy when I am doing normal or repative work. \n>Note that most operations are repetative.  Hackers love CLs because\n>  ...\n\nWhat I like about GUI's:\n\n\t- The ability to view and manipulate a group of objects, files,\n\t  text, directories, etc. and and manipulate them in some way\n\t  such as delete, copy, paste, rename ...\n\n\t- The ability to have several applications / screens visible\n\t  and accessable at the same time.\n\n\t- Being able to do a standard set of functions easily and\n\t  quickly on an unfamiliar operating system. I am familiar with\n\t  the command lines of several operating systems but occasionally\n\t  I will have to some work on a system that I almost never use.\n\t  If it has a GUI, I can usually accomplish what I want to do\n\t  fairly easily, the command line on the other hand often is\n\t  a long and painful experience.\n\n\nWhat I hate about GUI's:\n\n\t- Having to switch between the mouse and the keyboard. I guess\n\t  I have a strong one-handed preference. I like to use a\n\t  computer with one hand and use the other for holding something\n\t  like a piece of paper of a mug of tea. I have configured my\n\t  favorite editor so that most of the editing functions can be\n\t  done with one hand such as navigating, cutting, pasting,\n\t  searching, opening and saving files, etc. The main thing I\n\t  need to use both hands for is entering text.\n\n\tI guess I need to get one of those mice with, like, 20 buttons\n\tor something and then I will have the best of both worlds.\n\n\t\t\t\t\t\tBrent\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10489, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: Statement to everyone on t.p.g\n <1993Apr19.201300.27080@CSD-NewsHost.Stanford.EDU>\nLines: 43\n\nIn article <1993Apr19.201300.27080@CSD-NewsHost.Stanford.EDU>,\nandy@SAIL.Stanford.EDU (Andy Freeman) says:\n>\n>Clue - Kratz' position isn't a defense against inaccuracy.\n>\n>I oppose gun control because it doesn't work.  If it did, I'd support\n>it.  In fact, I supported gun control before I did my homework.\n>\n>There's no demand for pro-gun people who don't know what they're\n>talking about.  In fact, they'd be much better off if they didn't say\n>anything.\n>\nAnd why is this Freeman?  Even if a pro-gun person doesn't know what they are\ntalking about there is always the possibility that they will learn a thing or\ntwo.  I am and will continue to post even if people get angry with what I have\nto say.  I have several good sources of material now that I know where to look\nso calm down.\n\n>There's lots of information flowing on tpg for those interested in\n>learning.  One can participate in those discussions without ranting\n>inaccurately.  Failure to do so has consequences.\n>\nAh, Freeman seems to forget from my statement that I am learning.  I have also\nasked several of the not-so-hostile folks on this group for sources of\ninformation to read.  Do you think, Freeman, that maybe this means I am\ninterested in learning?  I think it does because as you said people who don't\nknow anything won't be good for the pro-gun cause.\n\n>Another good habit to get into is to go read-only for a while, to take\n>the time to figure out how things work.\n>\nAnother good habit to get into is to realize that not everyone is you Freeman\nand accept mistakes.  Sure, maybe it could have been some type of\nmisinformation being slung by some anti-gun nut but it wasn't.  I made my\nstatement to inform everyone of this and everyone who replied said don't worry\nabout it but also to learn as much as you can.  They accepted my mistake and\ngave me sources of information and told me to read as much as possible.  I have\nread several posts of yours and have found them informative.  Why don't you\ngive me the same chance?\n\n>-andy\n\nJason\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10490, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Stereo Pix of planets?y\nLines: 15\nNntp-Posting-Host: acad3.alaska.edu\nOrganization: University of Alaska Fairbanks\n\nIn article <1993Apr20.010326.8634@csus.edu>, arthurc@sfsuvax1.sfsu.edu (Arthur Chandler) writes:\n> Can anyone tell me where I might find stereo images of planetary and\n> planetary satellite surfaces?  GIFs preferred, but any will do.  I'm\n> especially interested in stereos of the surfaces of Phobos, Deimos, Mars\n> and the Moon (in that order).\n>   Thanks. \n\n\names.arc.nasa.gov not sure what subdirectory thou..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n\nPS: I know it has a GIF area as well as SPACE and other info..\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10491, "properties": {"category": "misc.forsale", "text": "From: jamal@socrates.umd.edu (Jamal Asi)\nSubject: Comics : The complete set of the ad. of Buck Rogers in the 25th century\nOrganization: University of Maryland University College\nLines: 5\n\n The complete set of the adventures of Buck Rogers is forsale. Make a \nREASONABLE offer. Email me back if interested. Thanks.\n\n                                             jamal@socrates.umd.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10492, "properties": {"category": "comp.sys.mac.hardware", "text": "From: gene@jackatak.raider.net (Gene Wright)\nSubject: mac portable internal fax modems\nOrganization: Jack's Amazing CockRoach Capitalist Ventures\nLines: 8\n\nDoes anyone know where I can still get an internal fax modem for the \noriginal mac portable? I know they were made for a while by several \nmanufacturers, but I can't find them now. thanks for your help.\nGene Wright\n\n--\n     gene@jackatak.raider.net (Gene Wright)\n------------jackatak.raider.net   (615) 377-5980 ------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10493, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Unconventional peace proposal\nNf-ID: #N:cdp:1483500348:000:5967\nNf-From: cdp.UUCP!cpr    Apr 18 07:24:00 1993\nLines: 131\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Unconventional peace proposal\n\n\nA unconventional proposal for peace in the Middle-East.\n---------------------------------------------------------- by\n\t\t\t  Elias Davidsson\n\nThe following proposal is based on the following assumptions:\n\n1.      Fundamental human rights, such as the right to life, to\neducation, to establish a family and have children, to human\ndignity, the right to free movement, to free expression, etc. are\nmore important to human existence that the rights of states.\n\n2.      In the event of a conflict between basic human rights and\nrights of collectivities, basic human rights should prevail.\n\n3.      Between the collectivities defining themselves as\nJewish-Israeli and Palestinian-Arab, however labelled, an\nunresolved conflict exists.\n\n4.      This conflict has caused great sufferings for millions of\npeople. It moreover poisons relations between communities, peoples\nand nations.\n\n5.      Each year, the United States expends billions of dollars\nin economic and military aid to the conflicting parties.\n\n6.      Attempts to solve the Israeli-Arab conflict by traditional\npolitical means have failed.\n\n7.      As long as the conflict is perceived as that between two\ndistinct ethnical/religious communities/peoples which claim the\nland, there is no just nor peaceful solution possible.\n\n8.      Love between human beings can be capitalized for the sake\nof peace and justice. When people love, they share.\n\nHaving stated my assumptions, I will now state my proposal.\n\n1.      A Fund should be established which would disburse grants\nfor each child born to a couple where one partner is Israeli-Jew\nand the other Palestinian-Arab.\n\n2.      To be entitled for a grant, a couple will have to prove\nthat one of the partners possesses or is entitled to Israeli\ncitizenship under the Law of Return and the other partner,\nalthough born in areas under current Isreali control, is not\nentitled to such citizenship under the Law of Return.\n\n3.      For the first child, the grant will amount to $18.000. For\nthe second the third child, $12.000 for each child. For each\nsubsequent child, the grant will amount to $6.000 for each child.\n\n\n4.      The Fund would be financed by a variety of sources which\nhave shown interest in promoting a peaceful solution to the\nIsraeli-Arab conflict, including the U.S. Government, Jewish and\nChristian organizations in the U.S.  and a great number of\ngovernments and international organizations.\n\n5.      The emergence of a considerable number of 'mixed'\nmarriages in Israel/Palestine, all of whom would have relatives on\n'both sides' of the divide, would make the conflict lose its\nethnical and unsoluble core and strengthen the emergence of a\ntruly civil society. The existence of a strong 'mixed' stock of\npeople would also help the integration of Israeli society into the\nMiddle-East in a graceful manner.\n\nObjections to this proposal will certainly be voiced. I will\nattempt to identify some of these:\n\n1.      The idea of providing financial incentives to selected\nforms of partnership and marriage, is not conventional. However,\nit is based on the concept of affirmative action, which is\nrecognized as a legitimate form of public policy to reverse the\nperverse effects of segregation and discrimination. International\nlaw clearly permits affirmative action when it is aimed at\nreducing racial discrimination and segregation.\n\n2.      It may be objected that the Israeli-Palestinian conflict\nis not primarily a religious or ethnical conflict, but that it is\na conflict between a colonialist settler society and an indigenous\ncolonized society that can only regain its freedom by armed\nstruggle. This objection is based on the assumption that the\n'enemy' is not Zionism as ideology and practice, but\nIsraeli-Jewish society and its members which will have to be\ndefeated. This objection has no merit because it does not fulfill\nthe first two assumptions concerning the primacy of fundamental\nhuman rights over collective rights (see above)\n\n3.      Fundamentalist Jews would certainly object to the use of\nfinancial incentives to encourage 'mixed marriages'. From their\npoint of view, the continued existence of a specific Jewish People\noverrides any other consideration, be it human love, peace of\nhuman rights.  The President of the World Jewish Congress, Edgar\nBronfman, reflected this view a few years ago in an interview he\ngave to Der Spiegel, a German magazine. He called the increasing\nassimilation of Jews in the world a <calamity>, comparable in its\neffects only with the Holocaust. This objection has no merit\neither because it does not fulfill the first two assumptions (see\nabove)\n\n4.      It may objected that only a few people in\nIsrael/Palestine, would request such grants and that it would thus\nnot serve its purpose. To this objection one might respond that\nalthough it is not possible to determine with certainty the effect\nof such a proposal, the existence of such a Fund would help mixed\ncouples to resist the pressure of their respective societies and\nencourage young couples to reject fundamentalist and racist\nattitudes.\n\n5.      It may objected that such a Fund would need great sums to\nbring about substantial demographic changes. This objection has\nmerits. However, it must be remembered that huge sums, more than\n$3 billion, are expended each year by the United States government\nand by U.S. organizations to maintain an elusive peace in the\nMiddle-East through armaments. A mere fraction of these sums would\nsuffice to launch the above proposal and create a more favorable\nclimate towards the existence of 'mixed' marriages in\nIsrael/Palestine, thus encouraging the emergence of a\nnon-segregated society in that worn-torn land.\n\nI would be thankful for critical comments to the above proposal as\nwell for any dissemination of this proposal for meaningful\ndiscussion and enrichment.\n\nElias Davidsson Post Box 1760 121 Reykjavik, ICELAND\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10494, "properties": {"category": "talk.politics.guns", "text": "From: whughes@lonestar.utsa.edu (William W. Hughes)\nSubject: Re: WACO: Clinton press conference, part 1\nNntp-Posting-Host: lonestar.utsa.edu\nOrganization: University of Texas at San Antonio\nLines: 13\n\nIn article <feustelC5tw49.7p5@netcom.com> feustel@netcom.com (David Feustel) writes:\n>I predict that the outcome of the study of what went wrong with the\n>Federal Assault in Waco will result in future assaults of that type\n>being conducted as full-scale military operations with explicit\n>shoot-to-kill directives.\n\nYou mean they aren't already? Could have fooled me.\n\n\n-- \n                            REMEMBER WACO!\n     Who will the government decide to murder next? Maybe you?\n[Opinions are mine; I don't care if you blame the University or the State.]\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10495, "properties": {"category": "rec.motorcycles", "text": "From: azw@aber.ac.uk (Andy Woodward)\nSubject: Re: pink tools [was: Re: What is it with girlfriends and motorcycles?]\nOrganization: University College of Wales, Aberystwyth\nLines: 1\nNntp-Posting-Host: 144.124.112.30\n\nI ONLY Just prevented myself from diving  in on this one.....\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10496, "properties": {"category": "rec.motorcycles", "text": "From: bgardner@pebbles.es.com (Blaine Gardner)\nSubject: Re: IT AIN'T FOR ME!\nKeywords: FAQ, FUBAR, ISIFU\nNntp-Posting-Host: 130.187.85.70\nOrganization: Evans & Sutherland Computer Corporation\nLines: 11\n\nIn article <speedy.156@engr.latech.edu> speedy@engr.latech.edu (Speedy Mercer) writes:\n>I am confused (like THAT'S a surprise!), someone asked ME for a copy of the \n>FAQ via E-Mail.  As I am not the KotFAQ, I was wondering what the proper \n>responce is?  \n\nOur panel of judges has deliberated the question, and the answer is:\n\nSend the requester one copy, and then gang-FAQ yourself.\n-- \nBlaine Gardner @ Evans & Sutherland\nbgardner@dsd.es.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10497, "properties": {"category": "rec.autos", "text": "From: callison@uokmax.ecn.uoknor.edu (James P. Callison)\nSubject: Re: Do trains/busses have radar?\nNntp-Posting-Host: uokmax.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nLines: 32\n\nIn article <1993Apr15.111910.1@bronco.fnal.gov> colombo@bronco.fnal.gov (Rick 'Open VMS 4ever' Colombo) writes:\n>\n>I don't know about trains, but I've saw a sign on the back of a\n>Greyhound bus that warns you that your radar detector may be set off.\n>It doesn't explain why, but it does set off my radar detector.\n\nBecause Greyhound has apparently gotten around to installing their\nRADAR collision-prevention system. They use RADAR to monitor how close\nother vehicles are and how fast their relative speeds are, and signals\na warning to the driver if they're coming up on something too fast\nor are getting too close.\n\nThis is all I remember from the news reports a few months back; at\nthe time, they were only talking about the possibility of installing\nthe system. (They didn't mention how it worked in bumper-to-bumper\ntraffic, or how it discriminated between a Camaro approaching at\n120mph and ye olde bridge support in the median being approached \nat 60mph on a curve.)\n\nI do recall something about progressive stages of warnings, from\nflashing lights to audible warnings--ie, it goes from a red \"Too\nclose\" light to hysterically screaming \"WE'RE ALL GOING TO DIE!!!!\"  :-)\n\n\t\t\t\tJames\n\nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center \nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu   \nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has \n\tand all he's ever gonna have.\" \n\t\t\t--Will Munny, \"Unforgiven\"\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10498, "properties": {"category": "misc.forsale", "text": "From: Mike Diack <mike-d@staff.tc.umn.edu>\nSubject: Make your own talking elevators !\nX-Xxmessage-Id: <A7E6E68422016542@dialup-slip-1-66.gw.umn.edu>\nX-Xxdate: Tue, 6 Apr 93 07:49:24 GMT\nNntp-Posting-Host: dialup-slip-1-66.gw.umn.edu\nOrganization: persian cat & carpet co.\nX-Useragent: Nuntius v1.1.1d7\nLines: 7\n\nComplete standalone system (no computer required) for burning\nsound files into EPROMs - consists of :\nApollo Eprom programmer (designed specifically for this job - wont\ndo anything else)\nMicrophone\nLogical Devices Eprom eraser (to wipe the mistakes)\nBrand New - $230 + freight\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10499, "properties": {"category": "sci.space", "text": "From: collins@well.sf.ca.us (Steve Collins)\nSubject: Re: Orbital RepairStation\nNntp-Posting-Host: well.sf.ca.us\nOrganization: Whole Earth 'Lectronic Link\nLines: 29\n\n\nThe difficulties of a high Isp OTV include:\nLong transfer times (radiation damage from VanAllen belts for both\n the spacecraft and OTV\nArcjets or Xenon thrusters require huge amounts of power so you have\nto have either nuclear power source (messy, dangerous and source of\nradiation damage) or BIG solar arrays (sensitive to radiation, or heavy)\nthat make attitude control and docking a big pain.\n\nIf you go solar, you have to replace the arrays every trip, with\ncurrent technology. Nuclear power sources are strongly restricted\nby international treaty.\n\nRefueling (even for very high Isp like xenon) is still required and]\nturn out to be a pain.\n\nYou either have to develop autonomous rendezvous or long range teleoperation\nto do docking or    ( and refueling) .\n\nYou still can't do much plane change because the deltaV required is so high!\n\nThe Air Force continues to look at doing things this way though. I suppose\nthey are biding their time till the technology becomes available and\nthe problems get solved.  Not impossible in principle, but hard to\ndo and marginally cheaper than one shot rockets, at least today.\n\nJust a few random thoughts on high Isp OTV's. I designed one once...\n\n                          Steve Collins\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10500, "properties": {"category": "rec.sport.baseball", "text": "From: anderge@stein.u.washington.edu (Geoff Anderson)\nSubject: Re: Fenway Gif\nOrganization: University of Washington, Seattle\nLines: 11\nNNTP-Posting-Host: stein.u.washington.edu\n\nIn article <C5JB3D.9nt@umassd.edu> acsddc@smucs1.umassd.edu writes:\n>I was wondering if anyone had any kind of Fenway Park gif.\n>I would appreciate it if someone could send me one.\n>Thanks in advance.\n>\n>-Dan\n\nMe too!  I would like any park or action gif or jpeg about baseball.\n\nGeoff\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10501, "properties": {"category": "comp.sys.mac.hardware", "text": "From: lian@mips.com (Jeff Lian)\nSubject: Monitor for LCIII\nKeywords: LCIII monitor\nOrganization: MIPS Technologies, Inc.\nLines: 27\nNNTP-Posting-Host: arctic.mti.sgi.com\nOriginator: lian@arctic.mti.sgi.com\n\n\nHi folks\n\nI'm planning to buy a LCIII but need advice on choosing a monitor.\nWhat do people recommend for a decent 14\"/15\" monitor?  \n\nI'v looked at some ads and the spec for NEC 4FG/4FGe and the price is \nwithin my budget, but could LCIII be able to use the various resolutions \navailable on 4FG (specifically the 1024x768 resolution)? Does LCIII only \nsupport one resolution?\n\nAlso any recommendations for a reliable mail order place for LCIII or\nmonitors? Does anyone have experience with the following mail-order places?\n\n\tSYEX EXPRESS \t(Houston, Tx)\n\tUSA FLEX \t(Bloomingdale, Il)\n\nThanks,\n\njeff\n\n\n-- \nJeff Lian\t\t\tlian@mti.sgi.com  - or -  lian@mips.com\nMIPS Technologies, Inc.\n2011 N. Shoreline Boulevard\nP.O. Box 7311  M/S 10L-175\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10502, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Do we need the clipper for cheap security?\nLines: 21\n\n: From: pmetzger@snark.shearson.com (Perry E. Metzger)\n\n: Indeed, were it not for the government doing everything possible to\n: stop them, Qualcomm would have designed strong encryption right in to\n: the CDMA cellular phone system they are pioneering. Were it not for\n: the NSA and company, cheap encryption systems would be everywhere. As\n: it is, they try every trick in the book to stop it. Had it not been\n: for them, I'm sure cheap secure phones would be out right now.\n\nIn the UK, it's impossible to get approval to attach any crypto device\nto the phone network.  (Anything that plugs in to our BT phone sockets\nmust be approved - for some reason crypto devices just never are...)\n\nI was wondering some time ago how big a market there was for good old-\nfashion acoustic coupler technology to build a secure phone :-) ... is\nit possible to mask out all the real voice well enough so that none of\nit strays into the mouthpiece?  Perhaps a well-sealed coupler attachment\nthat was as well blocked as possible, then a white noise generator on\nthe outside to muffle any real speech?\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.492+0000", "event": "documents", "entityId": 10503, "properties": {"category": "rec.autos", "text": "From: rjwade@rainbow.ecn.purdue.edu (Robert J. Wade)\nSubject: Re: Most bang for between $13,000 and $16,000\nOrganization: Purdue University Engineering Computer Network\nDistribution: na\nLines: 18\n\nIn article <33759@oasys.dt.navy.mil> tobias@oasys.dt.navy.mil (Steve Tobias) writes:\n>In rec.autos, CPKJP@vm.cc.latech.edu (Kevin Parker) writes:\n>>   I'd like to get some feedback on a car with most bang for the buck in the\n>>$13000 to 16,000 price range. I'm looking for a car with enough civility to be\n>>driven every day, or even on long trips, but when I hit the gas, I want to feel\n>>some acceleration.  Handling is important also, as are reliability and pretty\n>>low maintenance costs.  A stylish appearance is nice, but I don't want a car\n>>that is all show and not much go.  Even though many of the imports are fast, I\n>>don't really want a turbo, and I never have cared for the song sung by a four\n>>clyinder.  I'd prefer a v6 or v8 for the engine.  If you have any suggestions,\n>>Kevin Parker\n>\n>     There's only one car that really fits your needs. It's spelled:\n>\n>\t\t\t  5.0 LITER MUSTANG\n\n\nnot!  sorry, he said cvility, long trips, reliability, and low maintenance cost!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10504, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: A KIND and LOVING God!!\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 32\n\n\nIn article <sandvik-200493235610@sandvik-kent.apple.com>, sandvik@newton.apple.com (Kent Sandvik) writes:\n|> In article <1993Apr20.143754.643@ra.royalroads.ca>, mlee@post.RoyalRoads.ca\n|> (Malcolm Lee) wrote:\n|> > I understand and sympathize with your pain.  What happened in Waco was a very\n|> > sad tradgedy.  Don't take it out on us Christians though.  The Branch\n|> > Davidians were not an organized religion.  They were a cult led by a ego-maniac\n|> > cult leader.  The Christian faith stands only on the shoulders of one man,\n|> > the Lord of Lords and King of Kings, Jesus Christ.   BTW, David Koresh was NOT\n|> > Jesus Christ as he claimed.\n|> \n|> The interesting notion is that (I watched TV tonight) Koresh never\n|> claimed officially to be Jesus Christ. His believers hoped that \n|> he would be, but he never took this standpoint himself.\n|> \n|> He was more interested in breaking the seven seals of Revelation,\n|> and make sure that Armageddon would start. Well it did, and 19\n|> children died, and no God saved them.\n|> \n|> Kent\n|> ---\n|> sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n\nAnd does it not say in scripture that no man knows the hour of His coming, not\neven the angels in Heaven but only the Father Himself?  DK was trying to play\nGod by breaking the seals himself.  DK killed himself and as many of his\nfollowers as he could.  BTW, God did save the children.  They are in Heaven,\na far better place.  How do I know?  By faith.\n\nGod be with you,\n\nMalcolm Lee  :)\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10505, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: bharper@cimlinc.uucp (Brett Harper)\nSubject: GUI Application Frameworks for Windows ??\nOrganization: CIMLINC, Inc. - Engineering\nLines: 63\n\nHello,\n  \n  I'm investigating the purchase of an Object Oriented Application Framework.  I have\ncome across a few that look good:\n\n  Zapp 1.1 from Inmark\n  Zinc 3.5 from Zinc software\n  C++/Views from Liant\n  Win++ from Blaise\n\nSome considerations I'm using:\n\n  Being new to Windows programming (I'm from the UNIX/X world), the quality and\nintuitivness of the abstraction that these class libraries provide is very \nimportant.  However, since I'm not adverse to learning the internals of Windows\nprogramming, the new programming methodology should be closely aligned with\nthe native one.  I don't believe arbitrary levels of abstraction, just for the\nsake of changing the API, are valuable.\n\n  Since we will be developing for the 32bit Windows NT system the\nmemory management issues and issues particular to the Windows 3.1 API are less\nimportant. \n\n  We will probably buy another C++ class library (something like Tools.h++ or Booch\ncomponents from Rational) to handle data structures and other miscellaneous stuff\n (allocators etc...).  So those features are not that important for this toolkit to have.\n\nThe two that I have narrowed it down to are ZApp and Zinc, they seem to be the two\ntoolkits that have received the most attention from the media.  I was wondering if\nanyone had any first-hand experience with any of these toolkits (especially ZApp and Zinc).\n\nA couple of observations about these toolkits that seem particularly noteworthy are:\n\nZApp\n----\n  Seems to have the most extensive coverage of Windows functionality and\n    also includes some other miscellaneous useful classes.\n  Has new fancy 3D-style controls available, and support for custom controls.\n  Has a Windows NT version (Essential)\n  Redirectable graphics display/output architecture (useful for printing)\n  Sizer class for automatically managing control layout after resize.\n  Seems to be the newcomer, this could be an advantage in designing a better system.\n \nZinc\n----\n  Has a platform independent resource strategy.  (Not too important for me right now)\n  Comes with a interface builder tool\n  Has a Windows NT version (Essential)\n  Seems to have been around longer (more mature), but grew up out of a DOS version.  \n  Had a better demo :-)\n\nBoth have source code availability options\nBoth are lacking OLE support\nNeither seem to have any particular support for multimedia type stuff\n\n\nAny thoughts anyone has on this would be much appreciated,\n\nThanks,\n  Brett Harper\n\n\nbrett.harper@cimlinc.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10506, "properties": {"category": "rec.autos", "text": "From: rwf2@ns1.cc.lehigh.edu (ROBERT WILLIAM FUSI)\nSubject: Re: Too fast\nOrganization: Lehigh University\nLines: 12\n\nIn article <3090@shaman.wv.tek.com>, andrew@frip.WV.TEK.COM (Andrew Klossner) wr\nites:\n>[]\n>\n>       \"Can I ask.  Have any of you been at the speed of 130?  It's a\n>       rush.\"\n>\n>So is cocaine.  What's your point?\n>\n>  -=- Andrew Klossner  (andrew@frip.wv.tek.com)\n>Don't know about the cocaine, but....\n-- \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10507, "properties": {"category": "comp.graphics", "text": "From: aron@tikal.ced.berkeley.edu (Aron Bonar)\nSubject: Re: Photoshop for Windows\nOrganization: University of California, Berkeley\nLines: 26\nDistribution: world\nNNTP-Posting-Host: tikal.ced.berkeley.edu\n\nIn article <1993Apr22.011720.28958@midway.uchicago.edu>, dgf1@quads.uchicago.edu (David Farley) writes:\n|> In article <C5uHIM.JFq@rot.qc.ca> beaver@rot.qc.ca (Andre Boivert) writes:\n|> >\n|> >\n|> >I am looking for comments from people who have used/heard about PhotoShop\n|> >for Windows. Is it good? How does it compare to the Mac version? Is there\n|> >a lot of bugs (I heard the Windows version needs \"fine-tuning)?\n|> >\n|> >Any comments would be greatly appreciated..\n|> >\n|> >Thank you.\n|> >\n|> >Andre Boisvert\n|> >beaver@rot.qc.ca\n|> >\n|> An review of both the Mac and Windows versions in either PC Week or Info\n|> World this week, said that the Windows version was considerably slower\n|> than the Mac.  A more useful comparison would have been between PhotoStyler\n|> and PhotoShop for Windows.  David\n|> \n\nI don't know about that...I've used Photoshop 2.5 on both a 486dx-50 and a Quadra\n950...I'd say they are roughly equal.  If anything the 486 was faster.\n\nBoth systems were running in 24 bit color and had the same amount of RAM (16 megs)\nI also believe the quadra had one of those photoshop accelerators.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10508, "properties": {"category": "alt.atheism", "text": "From: a137490@lehtori.cc.tut.fi (Aario Sami)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Tampere University of Technology, Computing Centre\nLines: 48\nDistribution: sfnet\nNNTP-Posting-Host: cc.tut.fi\n\nIn <1993Apr9.154316.19778@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n\n>In article <kmr4.1483.734243128@po.CWRU.edu> kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n \n>>\tIf I state that I know that there is a green marble in a closed box, \n>>which I have _never_ seen, nor have any evidence for its existance; I would\n>>be guilty of deceit, even if there is, in fact, a green marble inside.\n>>\n>>\tThe question of whether or not there is a green marble inside, is \n>>irrelevent.\n\n>You go ahead and play with your marbles.\n\nI love it, I love it, I love it!! Wish I could fit all that into a .sig\nfile! (If someone is keeping a list of Bobby quotes, be sure to include\nthis one!)\n\n>>\n>>\tStating an unproven opinion as a fact, is deceit. And, knowingly \n>>being decietful is a falsehood and a lie.\n\n>So why do you think its an unproven opinion?  If I said something as\n>fact but you think its opinion because you do not accept it, then who's\n>right?\n\nThe Flat-Earthers state that \"the Earth is flat\" is a fact. I don't accept\nthis, I think it's an unproven opinion, and I think the Round-Earthers are\nright because they have better evidence than the Flat-Earthers do.\n\nAlthough I can't prove that a god doesn't exist, the arguments used to\nsupport a god's existence are weak and often self-contradictory, and I'm not\ngoing to believe in a god unless someone comes over to me and gives me a\nreason to believe in a god that I absolutely can't ignore.\n\nA while ago, I read an interesting book by a fellow called Von Daenicken,\nin which he proved some of the wildest things, and on the last page, he\nwrote something like \"Can you prove it isn't so?\" I certainly can't, but\nI'm not going to believe him, because he based his \"proof\" on some really\nquestionable stuff, such as old myths (he called it \"circumstancial\nevidence\" :] ).\n\nSo far, atheism hasn't made me kill anyone, and I'm regarded as quite an\nagreeable fellow, really. :)\n-- \nSami Aario         |  \"Can you see or measure an atom? Yet you can explode\na137490@cc.tut.fi  |   one. Sunlight is comprised of many atoms.\"\n-------------------'  \"Your stupid minds! Stupid, stupid!\"\nEros in \"Plan 9 From Outer Space\"     DISCLAIMER: I don't agree with Eros.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10509, "properties": {"category": "rec.motorcycles", "text": "From: mjs@sys.uea.ac.uk (Mike Sixsmith)\nSubject: Re: Looking for Women's Motorcycle Helmet\nOrganization: University of East Anglia\nDistribution: ba\nLines: 19\n\nlisa@alex.com (Lisa Rowlands) writes:\n\n>Hi Janice\n\n>I don't know if I'm being unduly cautious, but I wouldn't buy a used helmet, not for normal road use anyway. You never really know what's happened to them in their past life !\n\n>Have fun,\n\n>Lisa Rowlands\n\nI'll second that!! I saw a list somewhere of all the stuff that it was \nunwise to buy secondhand - stuff like parachutes, toilet paper, condoms\nand motorcycle helmets...\n\nSeriously though, why take the risk? You are extremely unlikely to get\na good-fitting secondhand helmet, cos life just doesn't work like that!\nAnd as Lisa says, you never know where it's been before...\n\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10510, "properties": {"category": "talk.politics.misc", "text": "From: steveh@thor.isc-br.com (Steve Hendricks)\nSubject: Re: Limiting Govt (Was Re: Employment (was Re: Why not concentrate...)\nSummary: Questions about \"non-initiated force\"\nOrganization: Free the Barbers, Inc.\nLines: 69\nNntp-Posting-Host: thor.isc-br.com\n\nIn article <C5JH23.Eu8@encore.com> rcollins@encore.com writes:\n>In article <1993Apr15.164605.8439@isc-br.isc-br.com>, steveh@thor.isc-br.com (Steve Hendricks) writes:\n>|> ...you don't specify the means through which the government\n>|> is to be prevented from becoming the tool of business interests.  As a \n>|> left-wing, big government, conventional liberal, I'm just as willing as\n>|> you are to vote against anti-competitive regulations that favor auto\n>|> dealers.  \n>|> \n>|> But what I hear from libertarians is a desire to limit incumbents' terms,\n>|> to weaken government by eliminating its power to enforce antitrust laws,\n>|> and a desire to eliminate legislator's pay.  Each strikes me as a \n>|> particularly ineffective way to insure that auto dealers and other special\n>|> interests cannot influence public policy.  In fact, they seem clearly\n>|> designed to accomplish the opposite.\n>\n>...If government is not allowed to\n>use \"non-initiated force\" to achieve its goals, than no special interest\n>can influence the government to use non-initiated force on their behalf.\n\nFine.  Libertarians and anarchists are not alone in being uncomfortable\nwith the use of state sponsored coercion.  The notion that coercion can\nbe virtually eliminated in a society (or more properly that once it is\neliminated on the part of the state it is no longer worth serious \nconsideration) is a view that is peculiar to libertarians and anarchists.  \n\nFor example, does \"non-initiated force\" (coercion) include tax collection?\nDoes it include the minimal level of regulation of commerce envisioned\nby Adam Smith?  Since coercion can be exercised by actors other than the\nstate, how is the state to deal with it?  Exclusively through after the\nfact arbitration/legal compulsion?  \n\n>\n>The means to reaching such a restricted government is another topic\n>which I'll address briefly.  It certainly won't happen until\n>libertarianism is the dominate philosophy.  What means do we have to\n>make libertarianism the dominate philosophy?  Statists run the education\n>monopoly, so we have to be creative.  The Advocates for Self-Government\n>reports 85% of their Seminar 1 participants \"embrace\" libertarianism.\n>That's the best means I've seen yet.  We should lobby for compulsory\n>Seminar 1 attendance. :) [in jest!]\n\nWell, I must admit that the picture of libertarians as Amway participants\nis somewhat more reassuring than the idea of them trying to govern a \ncomplex, conflictual, industrial society.  I'd venture to point out, \nhowever, that if libertarians couldn't convince at least 85% of a group \nof \"seminar participants\" to \"embrace\" their philosophy, their \npropaganda skills need to be honed.  \n\nFrankly, however, it is no great trick to create a government for a \nsociety in which (almost) everyone is assumed to agree about what is a proper\ngovernment policy.  Once that is assumed, all sorts of annoying formalities\ncan be dispensed with, elections, police, etc.  And as Mr. Marx said,\nthe state will just wither away.  \n\nOn the way there, however, would you like to explain how eliminating \nvirtually all policies that restrain private coercion in the \ncurrent society will help us to live happier lives? Or is it like\nsocialism; just some short-term pain that we'll have to bear until \neveryone has had the benefit of \"re-education\" through regular \n\"seminar\" training?\n\njsh\n\n>\n>Roger Collins\n--\nSteve Hendricks                        |  DOMAIN:  steveh@thor.ISC-BR.COM   \n\"One thing about data, it sure does cut|  UUCP:    ...!uunet!isc-br!thor!steveh\n the bulls**t.\" - R. Hofferbert        |  Ma Bell: 509 838-8826\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10511, "properties": {"category": "soc.religion.christian", "text": "From: stanly@grok11.columbiasc.ncr.com (stanly)\nSubject: Re: Elder Brother\nOrganization: NCR Corp., Columbia SC\nLines: 15\n\nIn article <Apr.8.00.57.41.1993.28246@athos.rutgers.edu> REXLEX@fnal.gov writes:\n>In article <Apr.7.01.56.56.1993.22824@athos.rutgers.edu> shrum@hpfcso.fc.hp.com\n>Matt. 22:9-14 'Go therefore to the main highways, and as many as you find\n>there, invite to the wedding feast.'...\n\n>hmmmmmm.  Sounds like your theology and Christ's are at odds. Which one am I \n>to believe?\n\nIn this parable, Jesus tells the parable of the wedding feast. \"The kingdom\nof heaven is like unto a certain king which made a marriage for his son\".\nSo the wedding clothes were customary,  and \"given\" to those who \"chose\" to\nattend.  This man \"refused\" to wear the clothes.  The wedding clothes are\nequalivant to the \"clothes of righteousness\".  When Jesus died for our sins,\nthose \"clothes\" were then provided.  Like that man, it is our decision to\nput the clothes on.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10512, "properties": {"category": "comp.graphics", "text": "From: cgschot@cs.ruu.nl (Gerco Schot)\nSubject: Ray Tracing Pictures\nOrganization: Utrecht University, Dept. of Computer Science\nLines: 23\n\n\nFor those who are interested in Ray Traced pictures, there is a nice example\non alt.binaries.pictures.misc. The file is called Poolball.gif. It shows a\npooltable with... YES! ... poolballs!\nResolution: 1024x768,  colours: 256 (only).\nThe TGA (24 bit) version is also available, but a bit big (2.4Mb) to post.\nThe picture is created with POV-ray.\n\n\n\n\nEnjoy!\n\n\n_Gerco_\n__cgschot@cs.ruu.nl__\n\n\n-- \n ___________________________________\n/                                   \\\n\\___________________________________/\n/_ Gerco Schot (cgschot@cs.ruu.nl) _\\\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10513, "properties": {"category": "sci.crypt", "text": "From: ken@sugra.uucp (Kenneth Ng)\nSubject: Re: Fifth Amendment and Passwords\nOrganization: Private Computer, Totowa, NJ\nLines: 21\n\nIn article <1993Apr16.165423.27204@linus.mitre.org: ptrei@bistromath.mitre.org (Peter Trei) writes:\n:Judge: \"I grant you immunity from whatever may be learned from the key\n:\titself\"\n:You:    \"The keyphrase is: \"I confess to deliberately evading copyright; \n:\tthe file encoded with this keyphrase contains illegal scans of \n:        copyrighted Peanuts strips.\"\"\n:Judge and CP: \"Oh.\"\n:     How will they get you now? I'm not saying that they won't, or\n:can't (or even that they shouldn't :-), but what legal mechanism will\n:they use? Should we be crossposting this to misc.legal?\n\nHm, could another court try you via a bypass of the double jeopardy amendment\nlike they are doing in the LAPD trial?  Ie your judge is a state judge, and\nthen a federal judge retries you under the justification that its not the\nsame trail.\n\n-- \nKenneth Ng\nPlease reply to ken@blue.njit.edu for now.\n\"All this might be an elaborate simulation running in a little device sitting\non someone's table\" -- J.L. Picard: ST:TNG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10514, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 17\nNNTP-Posting-Host: access.digex.net\n\n > > :Thousands?  Tens of thousands?  Do some arithmetic, please...  Skipjack\n > > :has 2^80 possible keys.\n > >\n > > We don't yet know if all 80 bits count.\n >\n > That doesn't worry me at all; they're not going to cheat at something\n >they can get caught at.  And key size is one of the things that can be\n >verified externally.  Feed lots of random key/input pairs into the\n >chip, then see what happens to the output....\n\n  If the device is designed to use the key that's registered with the Feds,\nI don't see how you -can- feed it a different key.  If the user can change\nthe key to any of the 2^80 possibilities, the main reason for regarding\nthis proposal as unacceptable disappears.\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10515, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: 55526@brahms.udel.edu (Oliver P Weatherbee)\nSubject: New Windows drivers for Cirrus GD5426 graphic cards!\nArticle-I.D.: news.C5x27u.D4F\nOrganization: University of Delaware\nLines: 42\nNntp-Posting-Host: brahms.udel.edu\n\n\nI have uploaded the most recent Windows drivers for the Cirrus GD5426 \nchip based display cards to the uploads directory at ftp.cica.indiana.edu\n (file is 5426dr13.zip). They're very recent, I downloaded them from the \nCirrus BBS (570-226-2365) last night. If you are unable to get them there, \nemail me and maybe I can upload them to some other sites as well.  \nI have a local bus based card (VL24 Bitblaster from Micron) but I think \nthe drivers work with ISA cards (or at least includes drivers for them).\n\nI found the new drivers to be a significant improvement over the 1.2 version, \nimproving my graphic winmarks (v3.11) by about 2 million (7.77 to 9.88) \nalthough this could be the result of intentional benchmark cheating on \nCirrus's part but I don't think so.\n\nFrom Steve Gibson's (columnist for Info World) graphic card comparisons \n(also found at the cica ftp site under the name winadv.zip) I extracted the \nfollowing for the sake of comparison:\n\n\t\t\t\t\t\t\tWintach\n             \t\tWinbn3.11\tWord\tSprsht\tCad\tPaint\tOverall\nSteve's system:\n486/33 VLB:\nATI Graphics Ultra Pro\t  9.33\t\t10.34\t 20.78\t8.28\t14.90\t 13.58\n\nmy system -\n486sx/33 VLB:\nVL24 Bitblaster\t\t  9.88\t\t 8.65\t 11.71\t18.84\t15.40\t 13.65\n\n\nIts no Viper, but I think its a hell of a deal at about a third of the cost of \nthe ATI card and when compared to the other cards included in Gibson's review.\n\nMicron system owner's, I would be interested to hear your opinions on the \nDTC 2270VL local bus disk controller. My system came with a Maxtor 7120 \ndrive (120 MB) and at first was only giving me disk winmarks of about 16 Kb/s, \nI am now at 22 Kb/s. Is this about as good as it gets? I can't get a Norton's\nsysinfo disk reading because the contoller intercepts the calls, at \nleast that was what the program said.\n\n\nOliver Weatherbee\noliver@earthview\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10516, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: NIH offers \"Exploratory Grants For Alternative Medicine\"\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 30\n\nIn article <1993Apr9.172945.4578@island.COM> green@island.COM (Robert Greenstein) writes:\n>In article <19493@pitt.UUCP> geb@cs.pitt.edu (Gordon Banks) writes:\n>>One problem is very few scientists are interested in alternative medicine.\n>\n>So Gordon, why do you think this is so?\n>-- \n\nProbably because most of them come packaged with some absurd theory\nbehind them.  E.G. homoeopathy: like cures like.  The more you dilute\nthings, the more powerful they get, even if you dilute them so much\nthere is no ingredient but water left.  Chiropractic: all illness\nstems from compressions of nerves by misaligned vertebrae.  Such\nsystems are so patently absurd, that any good they do is accidental\nand not related to the theory.  The only exception is probably herbalism,\nbecause scientists recognize the potent drugs that derive from plants\nand are always interested in seeing if they can find new plants\nthat have active and useful substances.  But that isn't what \nis meant by alternative medicine, usually.  If you get into the Qi,\naccupuntunce charts, etc, you are now back to silly theories that\nprobably have nothing to do with why accupuncture works in some cases.\n\nPerhaps another reason they are reluctant is the Rhine experience.\nRhine was a scientist who wanted to investigate the paranormal\nand his lab was filled with so much chacanery and fakery that \npeople don't want to be associated with that sort of thing.  \n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10517, "properties": {"category": "rec.motorcycles", "text": "From: Brian.Vaughan@um.cc.umich.edu (Brian Vaughan)\nSubject: FOR SALE 1988 Kawasaki EX-500 (Michigan)\nArticle-I.D.: um.Brian.Vaughan.1.734105018\nDistribution: world\nOrganization: University of Michigan\nLines: 10\nNNTP-Posting-Host: dss1.uis.itd.umich.edu\n\nFor sale 1988 Kawasaki EX-500 with 6682 miles.\nExcellent condition. Kept in a garage.  Asking $2200.\n\n      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n      He who Joyfully marches to music in rank and file has already\n      earned  my  contempt.   He  has been  given a  large brain by\n      mistake, since for him the  spinal cord would  fully suffice.\n                       -- Albert Einstein --\n      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n      Brian Vaughan                   brian_vaughan@um.cc.umich.edu\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10518, "properties": {"category": "rec.sport.hockey", "text": "From: e2s@icf.hrb.com (Eric M. Sebastian)\nSubject: Re: Thumbs up to ESPN\nOrganization: HRB Systems, Inc.\nLines: 12\n\nIn article <1993Apr20.032017.5783@wuecl.wustl.edu>, jca2@cec1.wustl.edu (Joseph Charles Achkar) writes:\n> \n>  It was nice to see ESPN show game 1 between the Wings and Leafs since\n> the Cubs and Astros got rained out. Instead of showing another baseball\n> game, they decided on the Stanley Cup Playoffs. A classy move by ESPN.\n> \n   It was good to see the Wings play, but lets not give ESPN too much credit.\nThere weren't any other late baseball games on so they didn't have another\noption.\n\nEric Sebastian\nGo Pens...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10519, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: Wings will win\nOrganization: University of Toronto Chemistry Department\nLines: 24\n\nIn article <ragraca.735249453@vela.acs.oakland.edu> ragraca@vela.acs.oakland.edu (Randy A. Graca) writes:\n>\n>I also think that they will have a hard time with Pittsburgh if they\n>face them in the finals (which is what all the Detroit sportswriters \n>are predicting).  Although I think Bryan Murray is probably the best GM\n>I have ever seen in hockey, I'm not as impressed with his abilities as\n>a bench coach or in general as a motivator.  With the amount of talent he\n>has on this team, he should have blown away everyone in the Norris.  There\n>is not another team in the Norris, maybe even in the Campbell conference,\n>that can hold a candle to Detroit on paper in terms of pure talent.  But,\n>some guys have not been pulling their weight at times this year.  Scotty\n>Bowman, on the other hand, who has won (I think, correct me if I'm wrong)\n>nine (9) stanley cups, is an outstanding coach, and I think he could\n>outcoach Murray if they faced each other.  \n>\n\nBryan Murray has done very little as GM...Yzerman, Fedorov, Cheveldae,\nChaisson, the whole Russian strategy was a product of the previous\nGM...Murray has made a couple of decent trades...that's about it...\nthat would hardly rank him as the best GM.\n\nWasn't Primeau, Murray's first decision as GM...\n\nGerald\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10520, "properties": {"category": "alt.atheism", "text": "From: nrp@st-andrews.ac.uk (Norman R. Paterson)\nSubject: Islam vs the Jehovah's Witnesses\nOrganization: Society for Trying Really Hard\nLines: 25\n\nIn article <1993Apr2.223248.19014@Princeton.EDU> qpliu@princeton.edu writes:\n>In article <1993Apr2.115300.803@batman.bmd.trw.com> jbrown@batman.bmd.trw.com writes:\n>>But God created Lucifer with a perfect nature and gave him along with\n>>the other angels free moral will.\n>\n>>Now God could have prevented Lucifer's fall by taking away his ability\n>>to choose between moral alternatives (worship God or worship himself),\n>\n>So Lucifer's moral choices are determined by his will.\n>What determines what his will is?\n>-- \n>qpliu@princeton.edu           Standard opinion: Opinions are delta-correlated.\n\nBobby-\n\nA few posts ago you said that Lucifer had no free will.  From the above\nit seems the JW believes the contrary.\n\nAre you talking about the same Lucifer?\n\nIf so, can you suggest an experiment to determine which of you is wrong?\n\nOr do you claim that you are both right?\n\n-Norman\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10521, "properties": {"category": "sci.crypt", "text": "From: smb@research.att.com (Steven Bellovin)\nSubject: Re: The Old Key Registration Idea...\nOrganization: AT&T Bell Laboratories\nLines: 19\n\nIn article <rlglendeC5LrwC.95C@netcom.com>, rlglende@netcom.com (Robert Lewis Glendenning) writes:\n> I have been chided for stating that Dorthy Denning was intellectually\n> dishonest in the ACM debate and in this newsgroup.  I have previously\n> refrained from suggesting that she is arguing on behalf of consulting\n> clients.\n> \n> Now, I say that it is clear that Dorthy Denning has been functioning\n> as a lobbyist, not a computer scientist.  She has used legal ethics\n> (truth is what you can convince anyone of), not scientific ethics\n> (truth is understanding the external world).\n> \n> Maybe we can revoke her ACM membership? 8)\n\nI suggest that you refrain from such insults unless and until you can\nproduce some evidence to back up that claim.  Given the measures proposed\nor passed in the last year or so, such as S.266 and the scanner ban,\nher proposal need not be any more than her own attempt at a technical\nsolution.  It's entirely possible, in fact, that it was the notion of\nsplitting the key, which came up in the debate, that softened this proposal.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10522, "properties": {"category": "rec.sport.hockey", "text": "From: apland@mala.bc.ca (Ron Apland)\nSubject: Re: plus minus stat\nOrganization: Malaspina College\nLines: 28\n\nIn article <1993Apr15.161737.28377@sol.UVic.CA>, gballent@hudson.UVic.CA (Greg  Ballentine) writes:\n> \n> In article 1@tnclus.tele.nokia.fi, hahietanen@tnclus.tele.nokia.fi () writes:\n>>In article <1993Apr14.174139.6604@sol.UVic.CA>, gballent@vancouver.UVic.CA (Greg  Ballentine) writes:\n>>> \n>>> \n>>> +/- is a good stat because it is the only stat that I am aware of that\n>>> takes into account defensive play.  It isn't a measure of defensive\n>>> play- it takes into account offense and defence- all aspects of play.\n>>                                                   \n>>  If we are interested of real all-round players, the power play stats\n>>  should be considered, too. Because the power play is also one aspect \n>>  of play! There is still something to be done with these player evaluation\n>>  tools!!\n> \n> IMO any good player should score on power plays because of the man\n> advantage.  Very good power play scorers tend to become overrated\n> because their point totals are inflated by power play points.\n> +/- tends to expose these overrated players such as Brett Hull,\n> John Cullen and Dave Andreychuck.\n> \n> Given the opportunity to play power play consistently, any player can\n> inflate his totals.\n> \n> Gregmeister\n\nExcept for Vancouver, of course.  Bure has a hard time scoring on that\npower play.  He's got 7 shorthanded goals and 13 pp goals I think!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10523, "properties": {"category": "talk.politics.mideast", "text": "From: francesca_M._Benson@fourd.com\nSubject: Get a life\nOrganization: 4th Dimension BBS\nLines: 11\nNNTP-Posting-Host: cs.utexas.edu\n\nHey Serdar,\n           What nationality are you anyway? You are the supreme geek of\ngeekdom of the usenet. You are laeding a totally useless and futile life on\nyour computer Mr. Wimpy. You are the epitamy of a coward.I can predict that\nyou will spend the rest of your useless, wastefull and pitifull life on the\nUsenet.  What a wasted life.  \n********************************************************************\nSystem: fourd.com                                Phone: 617-494-0565\nCute quote:  Being a computer means never having to say you're sorry\n********************************************************************\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10524, "properties": {"category": "alt.atheism", "text": "From: \"Robert Knowles\" <p00261@psilink.com>\nSubject: Re: Islam And Scientific Predictions (was\nIn-Reply-To: <C5L1Fv.H9r@ra.nrl.navy.mil>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Kupajava, East of Krakatoa\nX-Mailer: PSILink-DOS (3.3)\nLines: 35\n\n>DATE:   Fri, 16 Apr 1993 15:23:54 GMT\n>FROM:   Umar Khan <khan@itd.itd.nrl.navy.mil>\n>\n> His conclusion was that,\n>while he was impressed that what little the Holy Qur'an had to\n>say about science was accurate, he was far more impressed that the\n>Holy Qur'an did not contain the same rampant errors evidenced in\n>the Traditions.  How would a man of 7th Century Arabia have known\n>what *not to include* in the Holy Qur'an (assuming he had authored\n>it)?  \n>\nWell, it looks like the folks in soc.religion.islam have loosened up\na bit and are discussing this topic as well as the banking/interest\ntopic.  A few books on the subject have also been mentioned in addition\nto the one you mentioned.  These may be hard to find, but I think I may\ntake a stab at it out of curiosity.  I know the one film I saw on this\nsubject was pretty weak and the only two quotes I have seen which were\nused to show science in the Koran (which I posted here) were also pretty \nvague.  I suspect that these books will extrapolate an awful lot on the\nquotes they have.\n\nAt least one poster on the Islam channel seems to have some misgivings\nabout the practice of using the Koran to decide what is good science.\n\nI wonder if Islam has ever come up with the equivalent of the Christians\n\"Creation Science\" on any topic.  It would be interesting to find a history\nof scientific interpretations of the Koran, to see if anyone used the Koran\nto support earlier science which has since been discarded.  It is all too\neasy to look at science as it exists today and then \"interpret\" passages\nto match those findings.  People do similar things with the sayings of\nNostradamus all the time.\n\nAnyway, it is a rather unique claim of Islam and may be worth checking.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10525, "properties": {"category": "comp.windows.x", "text": "From: schietke@unitas.or.uni-bonn.de (Juergen Schietke)\nSubject: DIN-Fonts\nOrganization: Research Institute for Discrete Mathematics, Bonn\nDistribution: de\nLines: 25\n\nHello everybody,\n\nI hope that I insert the right Options, so that my question is only\ndistributed through out Germany, because my question is more or less\ncountry dependend.\n\nNow the question:\n  Is there anybody who can tell my if (and of course where) there is\n  a ftp-site/archie (or whatever) where DIN fonts for X are available.\n  I am looking for fonts holding the specification:\n    DIN 16\n    DIN 6776\n    DIN V 40950\n\n\nThanks in advance\n\nJuergen Schietke\nResearch Insitute for Discrete Mathematics\nUniversity of Bonn\nNassestr. 2\n5300 Bonn 1 (Germany)\n\nTel: +49 0228 738786\nE-Mail: schietke@or.uni-bonn.de\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10526, "properties": {"category": "sci.crypt", "text": "From: pdc@dcs.ed.ac.uk (Paul Crowley)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nReply-To: pdc@dcs.ed.ac.uk (Paul Crowley)\nOrganization: Edinburgh University\nLines: 11\n\nQuoting pla@sktb.demon.co.uk in article <8AOHOnj024n@sktb.demon.co.uk>:\n>You have every reason to be scared shitless.  Take a look at the records\n>of McCarthy, Hoover (J. Edgar, not the cleaner - though they both excelled at\n>sucking) and Nixon.\n\nHistory does not record whether J. Edgar Hoover was any good at sucking.\nAs for the cleaners, I'll stick with my 850W Electrolux and damn the\ncarpet.\n  __                                  _____\n\\/ o\\ Paul Crowley   pdc@dcs.ed.ac.uk \\\\ //\n/\\__/ Trust me. I know what I'm doing. \\X/  Fold a fish for Jesus!\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.493+0000", "event": "documents", "entityId": 10527, "properties": {"category": "rec.motorcycles", "text": "From: blgardne@javelin.sim.es.com (Dances With Bikers)\nSubject: FAQ - What is the DoD?\nSummary: Everything you always wanted to know about DoD, but were afraid to ask\nKeywords: DoD FAQ\nArticle-I.D.: javelin.DoD.monthly_733561501\nExpires: Sun, 30 May 1993 07:05:01 GMT\nReply-To: blgardne@javelin.sim.es.com\nOrganization: Evans & Sutherland Computer Corporation\nLines: 849\nSupersedes: <DoD.monthly_730969501@javelin.sim.es.com>\n\nThis is a periodic posting intended to answer the Frequently Asked\nQuestion: What is the DoD? It is posted the first of each month, with\nan expiration time of over a month. Thus, unless your site's news\nsoftware is ill-mannered, this posting should always be available.\nThis WitDoDFAQ is crossposted to all four rec.motorcycles groups in an\nattempt to catch most new users, and followups are directed to\nrec.motorcycles.\n\nLast changed 9-Feb-93 to add a message from the KotL, and a bit of\nHalon.\n\n\t\t\tVERSION 1.1\n\nThis collection was originally assembled by Lissa Shoun, from the\noriginal postings. With Lissa's permission, I have usurped the title of\nKotWitDoDFAQ. Any corrections, additions, bribes, etc. should be aimed at\nblgardne@javelin.sim.es.com.\n\n------------------------------------------------------------------------\n\nContents:\nHow do I get a DoD number?\tby Blaine Gardner\tDoD #46\nDoD \"Road Rider\" article\tby Bruce Tanner\t\tDoD #161\nWhat is the DoD?\t\tby John Sloan\t\tDoD #11\nThe DoD Logo\t\t\tby Chuck Rogers\t\tDoD #3\nThe DoD  (this started it all)\tby The Denizen of Doom\tDoD #1\nThe DoD Anthem\t\t\tby Jonathan Quist\tDoD #94\nWhy you have to be killed\tby Blaine Gardner\tDoD #46\nThe rec.moto.photo.archive\tcourtesy of Bruce Tanner DoD #161\nPatches? What patches?\t\tby Blaine Gardner\tDoD #46\nLetter from the AMA museum      by Jim Rogers, Director DoD #395\nThe DoD Rules\t\t\tby consensus\nOther rec.moto resources\tby various Keepers\tDoD #misc\nThe rec.moto.reviews.archive\tcourtesy of Loki Jorgenson DoD #1210\nUpdated stats & rides info\tby Ed Green (DoD #111) and others\n\n------------------------------------------------------------------------\n\t\t\tHow do I get a DoD number?\n\nIf the most Frequently Asked Question in rec.motorcycles is \"What is the\nDoD?\", then the second most Frequently Asked Question must be \"How do I\nget a DoD number?\" That is as simple as asking the Keeper of the List\n(KotL, accept no substitue Keepers) for a number. If you're feeling\ncreative, and your favorite number hasn't been taken already, you can\nmake a request, subject to KotL approval. (Warning, non-numeric, non-\nbase-10 number requests are likely to earn a flame from the KotL. Not\nthat you won't get it, but you _will_ pay for it.)\n\nOh, and just one little, tiny suggestion. Ask the KotL in e-mail. You'll\njust be playing the lightning rod for flames if you post to the whole\nnet, and you'll look like a clueless newbie too.\n\nBy now you're probably asking \"So who's the KotL already?\". Well, as\nJohn Sloan notes below, that's about the only real \"secret\" left around\nhere, but a few (un)subtle hints can be divulged. First, it is not myself,\nnor anyone mentioned by name in this posting (maybe :-), though John was\nthe original KotL. Second, in keeping with the true spirit of Unix, the\nKotL's first name is only two letters long, and can be spelled entirely\nwith hexadecimal characters. (2.5, the KotL shares his name with a line-\noriented text utility.) Third, he has occasionally been seen posting\nmessages bestowing new DoD numbers (mostly to boneheads with \"weenie\nmailers\"). Fourth, there is reason to suspect the KotL of being a\nDead-Head.\n\n***************** Newsflash: A message from the KotL ******************\n\nOnce you have surmounted this intellectual pinnacle and electronically\ngroveled to the KotL, please keep in mind that the KotL does indeed\nwork for a living, and occasionally must pacify its boss by getting\nsomething done.  Your request may languish in mailer queue for (gasp!)\ndays, perhaps even (horrors!) a week or two.  During such times of\neconomic activity on the part of the KotL's employers, sending yet\nanother copy of your request will not speed processing of the queue (it\njust makes it longer, verification of this phenominon is left as an\nexcersize for the reader).  If you suspect mailer problems, at least\nannotate subsequent requests with an indication that a former request\nwas submitted, lest you be assigned multiple numbers (what, you think\nthe KotL *memorizes* the list?!?).\n\n***********************************************************************\n\nOne more thing, the KotL says that its telepathic powers aren't what\nthey used to be. So provide some information for the list, will ya?\nThe typical DoD List entry contains number, name, state/country, &\ne-mail address. For example:\n\n0111:Ed Green:CA:ed.green@East.Sun.COM\n\n(PS: While John mentions below that net access and a bike are the only\nrequirements for DoD membership, that's not strictly true these days, as\nthere are a number of Denizens who lack one or both.)\n\nBlaine (Dances With Bikers) Gardner   blgardne@javelin.sim.es.com\n\n------------------------------------------------------------------------\n\n            \"Denizens of Doom\", by Bruce Tanner (DoD 0161)\n\n      [Road Rider, August 1991, reprinted with Bruce's permission]\n\nThere is a group of motorcyclists that gets together and does all the normal \nthings that a bunch of bikers do.  They discuss motorcycles and  \nmotorcycling, beverages, cleaning fluids, baklavah, balaclava, caltrops,  \nhelmets, anti-fog shields, spine protectors, aerodynamics, three-angle valve\nseats, bird hits, deer whistles, good restaurants, racing philosophy, \ntraffic laws, tickets, corrosion control, personalities, puns, double \nentendres, culture, absence of culture, first rides and friendship.  They \nargue with each other and plan rides together.\n\nThe difference between this group and your local motorcycle club is that, \nalthough they get together just about everyday, most have never seen each \nother face to face.  The members of this group live all over the known world \nand communicate with each other electronically via computer.\n\nThe computers range from laptops to multi-million dollar computer centers;  \nthe people range from college and university students to high-tech industry \nprofessionals to public-access electronic bulletin-board users.  Currently, \nrec.motorcycles (pronounced \"wreck-dot-motorcycles,\" it's the file name for \nthe group's primary on-line \"meeting place\") carries about 2250 articles per \nmonth;  it is read by an estimated 29,000 people.  Most of the frequent \nposters belong to a motorcycle club, the Denizens of Doom, usually referred \nto as the DoD.\n\nThe DoD started when motorcyclist John R. Nickerson wrote a couple of \nparodies designed to poke fun at motorcycle stereotypes.  Fellow computer \nenthusiast Bruce Robinson posted these articles under the pen name, \"Denizen \nof Doom.\"  A while later Chuck Rogers signed off as DoD nr. 0003 Keeper of \nthe Flame.  Bruce was then designated DoD nr. 0002, retroactively and, of \ncourse, Nickerson, the originator of the parodies, was given DoD nr. 0001.\n\nThe idea of a motorcycle club with no organization, no meetings and no rules \nappealed to many, so John Sloan -- DoD nr. 0011 -- became Keeper of the \nList, issuing DoD numbers to anyone who wanted one.  To date there have been \nalmost 400 memberships issued to people all over the United States and \nCanada, as well as Australia, New Zealand, the United Kingdom, France, \nGermany, Norway and Finland.\n\nKeeper of the List Sloan eventually designed a club patch.  The initial run \nof 300 patches sold out immediately.  The profits from this went to the \nAmerican Motorcycle Heritage Foundation.  Another AMHF fund raiser -- \nselling Denizens of Doom pins to members -- was started by Arnie Skurow a \nfew months later.  Again, the project was successful and the profits were \ndonated to the foundation.  So far, the Denizens have contributed over $1500 \nto the AMA museum.  A plaque in the name of the Denizens of Doom now hangs \nin the Motorcycle Heritage Museum.\n\nAs often as possible, the DoD'ers crawl out from behind their CRTs and go \nriding together.  It turns out that the two largest concentrations of \nDoD'ers are centered near Denver/Boulder, Colorado, and in California's \n\"Silicon Valley.\"  Consequently, two major events are the annual Assault on \nRollins Pass in Colorado, and the Northern versus Southern California \n\"Joust.\"\n\nThe Ride-and-Feed is a bike trip over Rollins Pass, followed by a big \nbarbecue dinner.  The concept for the Joust is to have riders from Northern \nCalifornia ride south; riders from Southern California to ride north, \nmeeting at a predesignated site somewhere in the middle.  An additional plan \nfor 1991 is to hold an official Denizens of Doom homecoming in conjunction \nwith the AMA heritage homecoming in Columbus, Ohio, in July.\n\nThough it's a safe bet the the Denizens of Doom and their collective \ncommunications hub, rec.motorcycles, will not replace the more traditional \nmotorcycle organizations, for those who prowl the electronic pathways in \nsearch of two-wheeled camaraderie, it's a great way for kindred spirits to \nget together.  Long may they flame.\n\n\n\"Live to Flame -- Flame to Live\"\t[centerbar]\n\nThis official motto of the Denizens of Doom refers to the ease with which \nyou can gratuitously insult someone electronically, when you would not do \nanything like that face to face.  These insults are known as \"flames\";  \nissuing them is called \"flaming.\"  Flames often start when a member \ndisagrees with something another member has posted over the network.  A \ntypical, sophisticated, intelligent form of calm, reasoned rebuttal would be \nsomething like:  \"What an incredibly stupid statement, you Spandex-clad \nposeur!\"  This will guarantee that five other people will reply in defense \nof the original poster, describing just what they think of you, your riding \nability and your cat.\n\n------------------------------------------------------------------------\n\n          _The Denizens of Doom: The Saga Unfolds_\n\n                  by John Sloan  DoD #0011\n\nPeriodically the question \"What is DoD?\" is raised. This is one of\nthose questions in the same class as \"Why is the sky blue?\", \"If there\nis a God, why is there so much suffering in the world?\" and \"Why do\nwomen inevitably tell you that you're such a nice guy just before they\ndump you?\", the kinds of questions steeped in mysticism, tradition,\nand philosophy, questions that have inspired research and discussion\nby philosophers in locker rooms, motorcycle service bays, and in the\nhalls of academe for generations. \n\nA long, long time ago (in computer time, where anything over a few\nminutes is an eternity and the halting problem really is a problem) on\na computer far, far away on the net (topologically speaking; two\nmachines in the same room in Atlanta might route mail to one another\nvia a system in Chicago), a chap who wished to remain anonymous (but\nwho was eventually assigned the DoD membership #1) wrote a satire of\nthe various personalities and flame wars of rec.motorcycles, and\nsigned it \"The Denizen of Doom\". Not wishing to identify himself, he\nasked that stalwart individual who would in the fullness of time\nbecome DoD #2 to post it for him. DoD #2, not really giving a whit\nabout what other people thought and generally being a right thinking\nindividual, did so.  Flaming and other amusements followed. \n\nHe who would become the holder of DoD membership #3 thought this was\nthe funniest thing he'd seen in a while (being the sort that is pretty\neasily amused), so he claimed membership in the Denizens of Doom\nMotorcycle Club, and started signing his postings with his membership\nnumber. \n\nPerhaps readers of rec.motorcycles were struck with the vision of a\nmotorcycle club with no dues, no rules, no restrictions as to brand or\nmake or model or national origin of motorcycle, a club organized\nelectronically.  It may well be that readers were yearning to become a\npart of something that would provide them with a greater identity, a\ngestalt personality, something in which the whole was greater than the\nsum of its parts.  It could also be that we're all computer nerds who\nwear black socks and sneakers and pocket protectors, who just happen\nto also love taking risks on machines with awesome power to weight\nratios, social outcasts who saw a clique that would finally be open\nminded enough to accept us as members. \n\nIn a clear case of self fulfilling prophesy, The Denizens of Doom\nMotorcycle Club was born. A club in which the majority of members have\nnever met one another face to face (and perhaps like it that way), yet\nfeel that they know one another pretty well (or well enough given some\nof the electronic personalities in the newsgroup). A club organized\nand run (in the loosest sense of the word) by volunteers through the\nnetwork via electronic news and mail, with a membership/mailing list\n(often used to organize group rides amongst members who live in the\nsame region), a motto, a logo, a series of photo albums circulating\naround the country (organized by DoD #9), club patches (organized by\n#11), and even an MTV-style music video (produced by #47 and\ndistributed on VHS by #18)! \n\nWhere will it end? Who knows? Will the DoD start sanctioning races,\nplacing limits on the memory and clock rate of the on-board engine\nmanagement computers? Will the DoD organize poker runs where each\nparticipant collects a hand of hardware and software reference cards?\nWill the DoD have a rally in which the attendees demand a terminal\nroom and at least a 386-sized UNIX system? Only time will tell. \n\nThe DoD has no dues, no rules, and no requirements other than net\naccess and a love for motorcycles. To become a member, one need only\nask (although we will admit that who you must ask is one of the few\nreally good club secrets). New members will receive via email a\nmembership number and the latest copy of the membership list, which\nincludes name, state, and email address. \n\nThe Denizens of Doom Motorcycle Club will live forever (or at least\nuntil next year when we may decided to change the name). \n\n                  Live to Flame - Flame to Live\n\n------------------------------------------------------------------------\n\n     The DoD daemon as seen on the patches, pins, etc. by\n\n\tChuck Rogers,  car377@druhi.att.com,  DoD #0003\n \n\n                :-(           DoD            )-: \n               :-(  x    __         __    x   )-:      \n              :-(  x    / /         \\ \\    x   )-:     \n             :-(  x    / / -\\-----/- \\ \\    x   )-:    \n            :-(  L     | \\/  \\   /  \\/ |     F   )-:   \n            :-(  I     | /    \\ /    \\ |     L   )-:   \n            :-(  V     \\/ __   /   __ \\/     A   )-:   \n            :-(  E     / /  \\     /  \\ \\     M   )-:   \n            :-(        | |   \\   /   | |     E   )-:   \n            :-(  T     | | . | _ | . | |         )-:   \n            :-(  O     | \\___// \\\\___/ |     T   )-:   \n            :-(         \\     \\_/     /      O   )-:   \n            :-(  F       \\___     ___/           )-:   \n            :-(  L        \\ \\     / /        L   )-:   \n            :-(  A         \\ vvvvv /         I   )-:   \n            :-(  M         | (   ) |         V   )-:   \n            :-(  E         | ^^^^^ |         E   )-:   \n             :-(  x        \\_______/        x   )-:    \n              :-(  x                       x   )-:     \n               :-(  x   rec.motorcycles   x   )-:\n                :-(          USENET          )-:\n\n\n------------------------------------------------------------------------\n\n                      The DoD\n\n              by the Denizen of Doom    DoD #1\n \nWelcome one and all to the flamingest, most wonderfullest newsgroup of\nall time: wreck.mudder-disciples or is it reak.mudder-disciples? The\nNames have been changes to protect the Guilty (riders) and Innocent\n(the bikes) alike. If you think you recognize a contorted version of\nyour name, you don't. It's just your guilt complex working against\nyou. Read 'em and weep. \n\nWe tune in on a conversation between some of our heros. Terrible\nBarbarian is extolling the virtues of his Hopalonga Puff-a-cane to\nReverend Muck Mudgers and Stompin Fueling-Injection: \n\nTerrible: This Hopalonga is the greatest... Beats BMWs dead!! \n\nMuck: I don't mean to preach, Terrible, but lighten up on the BMW\n     crowd eh?  I mean like I like riding my Yuka-yuka Fudgeo-Jammer\n     11 but what the heck.  \n\nStompin: No way, the BMW is it, complete, that's all man.\n\nTerrible: Nahhhh, you're sounding like Heritick Ratatnack! Hey, at\n     least he is selling his BMW and uses a Hopalonga Intercorruptor!\n     Not as good as a Puff-a-cane, should have been called a\n     Woosh-a-stream.\n\nStompin: You mean Wee-Stream.\n\nTerrible: Waddya going to do? Call in reinforcements???\n\nStompin: Yehh man. Here comes Arlow Scarecrow and High Tech. Let's see\n     what they say, eh? \n\nMuck: Now men, let's try to be civil about this.\n\nHigh Tech: Hi, I'm a 9 and the BMW is the greatest.\n\nArlow: Other than my B.T. I love my BMW!\n\nTerrible: B.T.???\n\nArlow: Burley Thumpison, the greatest all American ride you can own.\n\nMuck: Ahhh, look, you're making Terrible gag.\n\nTerrible: What does BMW stand for anyway??? \n\nMuck, Arlow, High: Beats Me, Wilhelm.\n\nTerrible: Actually, my name is Terrible. Hmmm, I don't know either.\n\nMuck: Say, here comes Chunky Bear.\n\nChunky: Hey, Hey, Hey! Smarter than your average bear!\n\nTerrible: Hey, didn't you drop your BMW???\n\nChunky: All right eh, a little BooBoo, but I left him behind. I mean \n     even Villy Ogle flamed me for that! \n\nMuck: It's okay, we all makes mistakes.\n\nOut of the blue the West coasters arrive, led by Tread Orange with\nDill Snorkssy, Heritick Ratatnack, Buck Garnish, Snob Rasseller and\nthe perenial favorite: Hooter Boobin Brush! \n\nHeritick: Heya Terrible, how's yer front to back bias?\n\nTerrible: Not bad, sold yer BMW?\n\nHeritick: Nahhh.\n\nHooter: Hoot, Hoot.\n\nBuck: Nice tree Hooter, how'd ya get up there?\n\nHooter: Carbujectors from Hell!!!\n\nMuck: What's a carbujector?\n\nHooter: Well, it ain't made of alumican!!! Made by Tilloslert!!\n\nMuck: Ahh, come on down, we aren't going to flame ya, honest!!\n\nDill: Well, where do we race?\n\nSnob: You know, Chunky, we know about about your drop and well, don't\n     ride! \n\nMuck: No! No! Quiet!\n\nTread: BMW's are the greatest in my supreme level headed opinion.\n     They even have luggage made by Sourkraut!\n\nHigh: My 9 too!\n\nTerrible, Heritick, Dill, Buck: Nahhhhh!!!\n\nStompin, Tread, High, Chunky, Snob: Yesss Yessssss!!!\n\nBefore this issue could be resolved the Hopalonga crew called up more\ncohorts from the local area including Polyanna Stirrup and the\ninfamous Booster Robiksen on his Cavortin! \n\nPolyanna: Well, men, the real bikers use stirrups on their bikes like\n     I use on my Hopalonga Evening-Bird Special. Helpful for getting\n     it up on the ole ventral stand!  \n\nTerrible: Hopalonga's are great like Polyanna says and Yuka-Yuka's and\n     Sumarikis and Kersnapis are good too! \n\nBooster: I hate Cavortin.\n\nAll: WE KNOW, WE KNOW.\n\nBooster: I love Cavortin.\n\nAll: WE KNOW WE KNOW.\n\nMuck: Well, what about Mucho Guzlers and Lepurras?\n\nSnob, Tread: Nawwwwww.\n\nMuck: What about a Tridump?\n\nTerrible: Isn't that a chewing gum?\n\nMuck: Auggggg, Waddda about a Pluck-a-kity?\n\nHeritick: Heyya Muck, you tryin' to call up the demon rider himself?\n\nMuck: No, no. There is more to Mudder-Disciples than arguing about make.\n\nTwo more riders zoom in, in the form of Pill Turret and Phalanx Lifter.\nPill: Out with dorsal stands and ventral stands forever.\n\nPhalanx: Hey, I don't know about that.\n\nAnd Now even more west coasters pour in.\nRoad O'Noblin: Hopalonga's are the greatest!\n\nMaulled Beerstein: May you sit on a bikejector!\n\nSuddenly more people arrived from the great dark nurth:\nKite Lanolin: Hey, BMW's are great, men.\n\nRobo-Nickie: I prefer motorcycle to robot transformers, personally.\n\nMore riders from the west coast come into the discussion:\nAviator Sourgas: Get a Burley-Thumpison with a belted-rigged frame.\n\nGuess Gasket: Go with a BMW or Burley-Thumpison.\n\nWith a roar and a screech the latest mudder-disciple thundered in. It\nwas none other that Clean Bikata on her Hopalonga CaBammerXorn. \nClean: Like look, Hopalonga are it but only CaBammerXorns. \n\nMuck: Why??\n\nClean: Well, like it's gotta be a 6-banger or nothin.\n\nMuck: But I only have a 4-banger.\n\nClean: No GOOD!\n\nChunky: Sob, some of us only have 2-bangers!\n\nClean: Inferior!\n\nStompin: Hey, look, here's proof BMW's are better. The Bimmer-Boys\nburst into song: (singing) Beemer Babe, Beemer Babe give me a\nthrill... \n\nRoad, Terrible, Polyanna, Maulled, Dill etc.: Wadddoes BMW stand for? \n\nHeritick, Stompin, Snob, Chunky, Tread, Kite, High, Arlow: BEAT'S ME,\n     WILHEM! \n\nRoad, Terrible, Polyanna, Maulled, Dill etc.: Oh, don't you mean BMW? \n\nAnd so the ensuing argument goes until the skies clouded over and the\nthunder roared and the Greatest Mudder-Disciple (G.M.D.) of them all\nboomed out.\nG.M.D.: Enough of your bickering! You are doomed to riding\n     Bigot & Suction powered mini-trikes for your childish actions. \n\nAll: no, No, NO!!! Puhlease.\n\nDoes this mean that all of the wreck.mudder-disciples will be riding\nmini-trikes?  Are our arguing heros doomed?  Tune in next week for the\nnext gut wretching episode of \"The Yearning and Riderless\" with its\never increasing cast of characters.  Where all technical problems will\nbe flamed over until well done.  Next week's episode will answer the\nquestion of: \"To Helmet or Not to Helmet\" will be aired, this is heady\nmaterial and viewer discretion is advised. \n\n------------------------------------------------------------------------\n\n          Script for the Denizens of Doom Anthem Video\n\n                by Jonathan E. Quist   DoD #94\n\n\n[Scene:  A sterile engineering office.  A lone figure, whom we'll call\nChuck, stands by a printer output bin, wearing a white CDC lab coat,\nwith 5 mechanical pencils in a pocket protector.] \n\n(editor's note: For some reason a great deal of amusement was had at\nthe First Annual DoD Uni-Coastal Ironhorse Ride & Joust by denizens\nreferring to each other as \"Chuck\". I guess you had to be there. I\nwasn't.) \n\nChuck:  I didn't want to be a Software Systems Analyst,\n cow-towing to the whims of a machine, and saying yessir, nosir,\n may-I-have-another-sir.  My mother made me do it.  I wanted\n to live a man's life,\n[Music slowly builds in background]\n riding Nortons and Triumphs through the highest mountain passes\n and the deepest valleys,\n living the life of a Motorcyclist;\n doing donuts and evading the police;\n terrorizing old ladies and raping small children;\n eating small dogs for tea (and large dogs for dinner).  In short,\n\n\tI Want to be      A Denizen!\n\n[Chuck rips off his lab coat, revealing black leather jacket (with\nfringe), boots, and cap.  Scene simultaneously changes to the top of\nan obviously assaulted Rollins Pass.  A small throng of Hell's Angels\nsit on their Harleys in the near background, gunning their engines,\nshowering lookers-on with nails as they turn donuts, and leaking oil\non the tarmac.  Chuck is standing in front of a heavily chromed Fat\nBoy.] \n\nChuck [Sings to the tune of \"The Lumberjack Song\"]:\n\nI'm a Denizen and I'm okay,\nI flame all night and I ride all day.\n\n[Hell's Angels Echo Chorus, surprisingly heavy on tenors]:\nHe's a Denizen and he's okay,\nHe flames all night and he rides all day.\n\nI ride my bike;\nI eat my lunch;\nI go to the lavat'ry.\nOn Wednesdays I ride Skyline,\nRunning children down with glee.\n\n[Chorus]:\nHe rides his bike;\nHe eats his lunch;\nHe goes to the lavat'ry.\nOn Wednesdays he rides Skyline,\nRunning children down with glee.\n\n[Chorus refrain]:\n'Cause He's a Denizen...\n\nI ride real fast,\nMy name is Chuck,\nIt somehow seems to fit.\nI over-rate the worst bad f*ck,\nBut like a real good sh*t.\n\nOh, I'm a Denizen and I'm okay!\nI flame all night and I ride all day.\n\n[Chorus refrain]:\nOh, He's a Denizen...\n\nI wear high heels\nAnd bright pink shorts,\n full leathers and a bra.\nI wish I rode a Harley,\n just like my dear mama.\n\n[Chorus refrain]\n\n------------------------------------------------------------------------\n\n                    Why you have to be killed.\n\nWell, the first thing you have to understand (just in case you managed\nto read this far, and still not figure it out) is that the DoD started\nas a joke. And in the words of one Denizen, it intends to remain one.\n\nSometime in the far distant past, a hapless newbie asked: \"What does DoD\nstand for? It's not the Department of Defense is it?\" Naturally, a\nDenizen who had watched the movie \"Top Gun\" a few times too many rose\nto the occasion and replied:\n\n\"That's classified, we could tell you, but then we'd have to kill you.\"\n\nAnd the rest is history.\n\nA variation on the \"security\" theme is to supply disinformation about\nwhat DoD stands for. Notable contributions (and contributers, where\nknown) include:\n\nDaughters of Democracy (DoD 23)\t\tDoers of Donuts\nDancers of Despair (DoD 9)\t\tDebasers of Daughters\nDickweeds of Denver\t\t\tDriveway of Death\nDebauchers of Donuts\t\t\tDumpers of Dirtbikes\n\nNote that this is not a comprehensive list, as variations appear to be\nlimited only by the contents of one's imagination or dictionary file.\n\n------------------------------------------------------------------------\n\n                     The rec.moto.photo archive\n\nFirst a bit of history, this all started with Ilana Stern and Chuck\nRogers organizing a rec.motorcycles photo album. Many copies were made,\nand several sets were sent on tours around the world, only to vanish in\nunknown locations. Then Bruce Tanner decided that it would be appropriate\nfor an electronic medium to have an electronic photo album. Bruce has not\nonly provided the disk space and ftp & e-mail access, but he has taken\nthe time to scan most of the photos that are available from the archive.\n\nNot only can you see what all these folks look like, you can also gawk\nat their motorcycles. A few non-photo files are available from the\nserver too, they include the DoD membership list, the DoD Yellow Pages,\nthe general rec.motorcycles FAQ, and this FAQ posting.\n\nHere are a couple of excerpts from from messages Bruce posted about how\nto use the archive.\n\n**********************************************************\n\nVia ftp:\n\ncerritos.edu [130.150.200.21]\n\nVia e-mail:\n\nThe address is server@cerritos.edu.  The commands are given in the body of the\nmessage.  The current commands are DIR and SEND, given one per line.  The\narguments to the commands are VMS style file specifications.  For\nrec.moto.photo the file spec is [DOD]file.  For example, you can send:\n\ndir [dod]\nsend [dod]bruce_tanner.gif\nsend [dod]dodframe.ps\n\nand you'll get back 5 mail messages; a directory listing, 3 uuencoded parts\nof bruce_tanner.gif, and the dodframe.ps file in ASCII.\n\nOh, wildcards (*) are allowed, but a maximum of 20 mail messages (rounded up to\nthe next whole file) are send.  A 'send [dod]*.gif' would send 150 files of\n50K each; not a good idea.\n-- \nBruce Tanner        (213) 860-2451 x 596    Tanner@Cerritos.EDU\nCerritos College    Norwalk, CA             cerritos!tanner\n\n**********************************************************\n\nA couple of comments: Bruce has put quite a bit of effort into this, so\nwhy not drop him a note if you find the rec.moto.photo archive useful?\nSecond, since Bruce has provided the server as a favor, it would be kind\nof you to access it after normal working hours (California time). \n\n------------------------------------------------------------------------\n\n                      Patches? What patches?\n\nYou may have heard mention of various DoD trinkets such as patches &\npins. And your reaction was probably: \"I want!\", or \"That's sick!\", or\nperhaps \"That's sick! I want!\"\n\nWell, there's some good news and some bad news. The good news is that\nthere's been an amazing variety of DoD-labeled widgets created. The bad\nnews is that there isn't anywhere you can buy any of them. This isn't\nbecause of any \"exclusivity\" attempt, but simply because there is no\n\"DoD store\" that keeps a stock. All of the creations have been done by\nindividual Denizens out of their own pockets. The typical procedure is\nsomeone says \"I'm thinking of having a DoD frammitz made, they'll cost\n$xx.xx, with $xx.xx going to the AMA museum. Anyone want one?\" Then\norders are taken, and a batch of frammitzes large enough to cover the\npre-paid orders is produced (and quickly consumed). So if you want a\nDoD doodad, act quickly the next time somebody decides to do one. Or\nproduce one yourself if you see a void that needs filling, after all\nthis is anarchy in action.\n\nHere's a possibly incomplete list of known DoD merchandise (and\nperpetrators). Patches (DoD#11), pins (DoD#99), stickers (DoD#99),\nmotorcycle license plate frames (DoD#216), t-shirts (DoD#99), polo shirts\n(DoD#122), Zippo lighters (DoD#99) [LtF FtL], belt buckles (DoD#99), and\npatches (DoD#99) [a second batch was done (and rapidly consumed) by\npopular demand].\n\nAll \"profits\" have been donated to the American Motorcyclist Association\nMotorcycle Heritage Museum. As of June 1992, over $5500 dollars has been\ncontributed to the museum fund by the DoD. If you visit the museum,\nyou'll see a large plaque on the Founders' Wall in the name of \"Denizens\nof Doom, USENET, The World\", complete with a DoD pin.\n\n------------------------------------------------------------------------\n\nHere's a letter from the AMA to the DoD regarding our contributions.\n\n~Newsgroups: rec.motorcycles\n~From: Arnie Skurow <arnie@magnus.acs.ohio-state.edu>\n~Subject: A letter from the Motorcycle Heritage Museum\n~Date: Mon, 13 Apr 1992 11:04:58 GMT\n\nI received the following letter from Jim Rogers, director of the Museum,\nthe other day.\n\n\"Dear Arnie and all members of the Denizens of Doom:\n\nCongratulations and expressions of gratitude are in order for you and the\nDenizens of Doom!  With your recent donation, the total amount donated is\nnow $5,500.  On behalf of the AMHF, please extend my heartfeld gratitude\nto all the membership of the Denizens.  The club's new plaque is presently\nbeing prepared.  Of course, everyone is invited to come to the museum to \nsee the plaque that will be installed in our Founders Foyer.  By the way,\nI will personally mount a Denizens club pin on the plaque.  Again, thank \nyou for all your support, which means so much to the foundation, the\nmuseum, and the fulfillment of its goals.\n\n                                Sincerely,\n\n\n                                Jim Rogers, D.O.D. #0395\n                                Director\n\nP.S.  Please post on your computer bulletin board.\"\n\nAs you all know, even though the letter was addressed to me personally,\nit was meant for all of you who purchased DoD goodies that made this\namount possible.\n\nArnie\n\n------------------------------------------------------------------------\n\nThe Rules, Regulations, & Bylaws of the Denizens of Doom Motorcycle Club\n\nFrom time to time there is some mention, discussion, or flame about the\nrules of the DoD. In order to fan the flames, here is the complete text\nof the rules governing the DoD.\n\n\t\t\tRule #1. There are no rules.\n\t\t\tRule #0. Go ride.\n\n------------------------------------------------------------------------\n\n\t\tOther rec.motorcycles information resources.\n\nThere are several general rec.motorcycles resources that may or may not\nhave anything to do with the DoD. Most are posted on a regular basis,\nbut they can also be obtained from the cerritos ftp/e-mail server (see\nthe info on the photo archive above).\n\nA general rec.motorcycles FAQ is maintained by Dave Williams.\nCerritos filenames are FAQn.TXT, where n is currently 1-5.\n\nThe DoD Yellow Pages, a listing of motorcycle industry vendor phone\nnumbers & addresses, is maintained by bob pakser.\nCerritos filename is YELLOW_PAGES_Vnn, where n is the rev. number.\n\nThe List of the DoD membership is maintained by The Keeper of the List.\nCerritos filename is DOD.LIST.\n\nThis WitDoD FAQ (surprise, surprise!) is maintained by yours truly.\nCerritos filename is DOD_FAQ.TXT.\n\nAdditions, corrections, etc. for any of the above should be aimed at\nthe keepers of the respective texts.\n\n------------------------------------------------------------------------\n\n(Loki Jorgenson loki@Physics.McGill.CA) has provided an archive site\nfor motorcycle and accessory reviews, here's an excerpt from his\nperiodic announcement.\n\n**********************************************************\n\n\tThe Rec.Motorcycles.Reviews Archives (and World Famous Llama\n  Emporium) contains a Veritable Plethora (tm) of bike (and accessories)\n  reviews, written by rec.moto readers based on their own experiences.\n  These invaluable gems of opinion (highly valued for their potential to\n  reduce noise on the list) can be accessed via anonymous FTP, Email\n  server or by personal request:\n\n  Anonymous FTP:\t\tftp.physics.mcgill.ca (132.206.9.13)\n\t\t\t\t\tunder ~ftp/pub/DoD\n  Email archive server:\t\trm-reviews@ftp.physics.mcgill.ca\n  Review submissions/questions:\trm-reviews@physics.mcgill.ca\n\n  NOTE: There is a difference in the addresses for review submission\n      and using the Email archive server (ie. an \"ftp.\").\n\n  To get started with the Email server, send an Email message with a line\n  containing only \"send help\".  \n\n  NOTE: If your return address appears like\n\tdomain!subdomain!host!username\n      in your mail header, include a line like (or something similar)\n\tpath username@host.subdomain.domain \n\n\tIf you are interested in submitting a review of a bike that you\n  already own(ed), PLEASE DO!  There is a template of the format that the\n  reviews are kept in (more or less) available at the archive site .\n  For those who have Internet access but are unsure of how anonymous\n  FTP works, an example script is available on request.\n\n**********************************************************\n\nReviews of any motorcycle related accessory or widget are welcome too.\n\n------------------------------------------------------------------------\n\n            Updated stats & rec.motorcycles rides info\n\nSome of the info cited above in various places tends to be a moving\ntarget. Rather than trying to catch every occurence, I'm just sticking\nthe latest info down here.\n\nEstimated rec.motorcycles readership: 35K  [news.groups]\n \nApproximate DoD Membership: 975  [KotL]\n\nDoD contributions to the American Motorcyclist Association Motorcycle\nHeritage Museum. Over $5500  [Arnie]\n \n                        Organized (?) Rides:\n\nSummer 1992 saw more organized rides, with the Joust in its third\nyear, and the Ride & Feed going strong, but without the Rollins Pass\ntrip due to the collapse of a tunnel.  The East Coast Denizens got\ntogether for the Right Coast Ride (RCR), with bikers from as far north\nas NH, and as far south as FL meeting in the Blueridge Mountains of\nNorth Carolina.  The Pacific Northwest crew organized  the first Great\nPacific Northwest Dryside Gather (GPNDG), another successful excuse for\nriding motorcycles, and seeing the faces behind the names we all have\ncome to know so well.  [Thanks to Ed Green for the above addition.]\n\nAlso worth mentioning are: The first rec.moto.dirt ride, held in the\nMoab/Canyonlands area of southern Utah. Riders from 5 states showed up,\nriding everything from monster BMWs to itty-bitty XRs to almost-legal\n2-strokes.  And though it's not an \"official\" (as if anything could be\nofficial with this crowd) rec.moto event, the vintage motorcycle races\nin Steamboat Springs, Colorado always provides a good excuse for netters\nto gather.  There's also been the occasional Labor Day gather in Utah.\nEuropean Denizens have staged some gathers too.  (Your ad here,\nreasonable rates!)\n------------------------------------------------------------------------\n-- \nBlaine Gardner @ Evans & Sutherland   580 Arapeen Drive, SLC, Utah 84108\n       blgardne@javelin.sim.es.com     BIX: blaine_g@bix.com      FJ1200\nHalf of my vehicles and all of my computers are Kickstarted.      DoD#46\n-- \nBlaine Gardner @ Evans & Sutherland   580 Arapeen Drive, SLC, Utah 84108\n       blgardne@javelin.sim.es.com     BIX: blaine_g@bix.com      FJ1200\nHalf of my vehicles and all of my computers are Kickstarted.      DoD#46\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10528, "properties": {"category": "alt.atheism", "text": "From: sieferme@stein.u.washington.edu (Eric Sieferman)\nSubject: Re: I don't beleive in you either.\nOrganization: University of Washington, Seattle\nLines: 15\nNNTP-Posting-Host: stein.u.washington.edu\n\nIn article <1993Apr13.213055.818@antioc.antioch.edu> smauldin@antioc.antioch.edu writes:\n>I stopped believing in you as well, long before the invention of technology.\n>\n>--GOD\n>\n\nDon't listen to this guy, he's just a crank.  At first, this business\nabout being the \"one true god\" was tolerated by the rest of us,\nbut now it has gotten completely out of hand.\n\nBesides, it really isn't so bad when people stop believing in you.\nIt's much more relaxing when mortals aren't always begging you for favors.\n\n-- ZEUS\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10529, "properties": {"category": "misc.forsale", "text": "From: mmchugh@andy.bgsu.edu (michael mchugh)\nSubject: Pink Floyd 45 rpm singles for sale\nKeywords: Pink Floyd rpm singles\nOrganization: Bowling Green State University B.G., Oh.\nLines: 17\n\n\nI have the following 45 rpm singles for sale. Most are collectable 7-inch \nrecords with picture sleeves. Price does not include postage which is $1.21 \nfor the first record, $1.69 for two, etc.\n\n\nPink Floyd|Learning to Fly (Columbia Promo/Picture Sleeve)|$5\nWaters, Roger|Sunset Strip (Columbia Promo/Picture Sleeve)|$10\nWaters, Roger|Sunset Strip (Columiba Promo)|$5\nWaters, Roger|Who Needs Information (Columiba Promo)|$10\n\n\nIf you are interested, please contact:\n\nMichael McHugh\nmmchugh@andy.bgsu.edu\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10530, "properties": {"category": "sci.med", "text": "From: kxgst1+@pitt.edu (Kenneth Gilbert)\nSubject: Re: REQUEST: Gyro (souvlaki) sauce\nOrganization: University of Pittsburgh\nLines: 19\n\nIn article <1r8pcn$rm1@terminator.rs.itd.umich.edu> Donald_Mackie@med.umich.edu (Donald Mackie) writes:\n:In article <1993Apr22.205341.172965@locus.com> Michael Trofimoff,\n:tron@fafnir.la.locus.com writes:\n:>Would anyone out there in 'net-land' happen to have an\n:>authentic, sure-fire way of making this great sauce that\n:>is used to adorn Gyro's and Souvlaki?\n:\n:I'm not sure of the exact recipe, but I'm sure acidophilus is one of\n:the major ingredients.   :-)\n:\n\nThe only recipies I've ever seen for this include plain yogurt, finely\nchopped cucumber and a couple of crushed cloves of garlic -- yummy.\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!\" =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10531, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bq274@cleveland.Freenet.Edu (Andy J. Berkvam)\nSubject: How to detect mouse at hardware level?\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 25\nReply-To: bq274@cleveland.Freenet.Edu (Andy J. Berkvam)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\n'lo all,\n\n  I am writting a program that checks a computer for its configuration.\nIt's going to be run everytime a computer boots up to our campus\nnetwork.  (Actually, it already is running, it's just not getting all\nthe info I want it to yet...)  Anyway, I want to check for a mouse.  I\nalready check for a mouse driver (using the code in Microsoft's Mouse\nbook).  But there is no guarantee that the driver is loaded when my\nprogram runs, or that they ever load the driver.\n\n  Since I am interested in what hardware is attached to the machine, how\ndo I detect is a mouse is attached?  I know it can be done because the\nmouse driver can do it.\n\n  Thanks in advance,\n\nAndy\n\n\n-- \nAndy Berkvam                          |  Few are wholly dead:\nU of Wisconsin - Stevens Point        |  Blow on a dead man's embers\nCleveland Freenet: bq274              |  And a live flame will start.\nInternet: aberkvam@spu1.uwsp.edu      |                -Robert Graves\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10532, "properties": {"category": "rec.motorcycles", "text": "From: cjackson@adobe.com (Curtis Jackson)\nSubject: Re: Identify this bike for me\nArticle-I.D.: adobe.1993Apr6.002937.9237\nDistribution: usa\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 14\n\nIn article <1993Apr5.193804.18482@ucsu.Colorado.EDU> coburnn@spot.Colorado.EDU (Nicholas S. Coburn) writes:\n}first I thought it was an 'RC31' (a Hawk modified by Two Brothers Racing),\n}but I did not think that they made this huge tank for it.  Additionally,\n\nAs someone who was told quite firmly by 2 Honda sales/service weenies\nthat there is no larger tank available for the Hawk (I have a '91\nHawk with the puny 3.2 gal tank), I'd be very interested to know if\nthere is any decent aftermarket solution. I'd love to have at least\na 4 gal tank.\n-- \nCurtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\nDoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\"\n\"There is no justification for taking away individuals' freedom\n in the guise of public safety.\" -- Thomas Jefferson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10533, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pburry@manitou.cse.dnd.ca (Paul Burry)\nSubject: Re: IDE vs SCSI\nOrganization: Canadian System Security Centre\nLines: 15\n\nIn article <C5L6E7.2Dz4@austin.ibm.com> guyd@austin.ibm.com (Guy Dawson) writes:\n|> int eh same article the PC would will get plug and play SCSI {from the\n|> article it seems you get plug and play SCSI-1 only since SCSI-2 in FULL\n|> implimentation has TEN NOT 7 devices.}\n|\n|I beleive this last bit is just plain wrong!\n\nI believe you are right.  Both SCSI and SCSI-2 support 8 devices on the bus\n(normally that would be the host controller and 7 targets) each of which\nmay have up to 8 logical units (LUNs).\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nPaul Burry\t\t\t\nVoice: (613)-991-7325\t\tInternet: pburry@cse.dnd.ca\nFax:   (613)-991-7323\t\tUUCP:\t  ..!{uunet,cunews}!cse.dnd.ca!pburry\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10534, "properties": {"category": "soc.religion.christian", "text": "From: brownli@ohsu.edu@ohsu.edu (Liane Brown)\nSubject: CHRIST, MY ADVOCATE - A Poem\nOrganization: Oregon Health Sciences University\nLines: 44\n\n\n                 _MY ADVOCATE_\n\nI sinned. And straightway, posthaste, Satan flew\nBefore the presence of the Most High God\nAnd made a railing accusation there.\nHe said, \"This soul, this thing of clay and sod,\nHas sinned. 'Tis true that he has named Thy name;\nBut I demand his death, for Thou hast said,\n'The soul that sinneth, it shall die.' Shall not\nThy sentence be fulfilled? Is justice dead?\nSend now this wretched sinner to his doom!\nWhat other thing can righteous ruler do?\"\nThus Satan did accuse me day and night;\nAnd every word he spoke, O  God, was true!\n\nThen quickly One rose up from God's right hand,\nBefore whose glory angels veiled their eyes;\nHe spoke, \"Each jot and tittle of the law\nMust be fulfilled; the guilty sinner dies!\nBut wait -- suppose his guilt were all transferred\nTo Me and that I paid his penalty!\nBehold My hands, My side, My feet! One day\nI was made sin for him and died that he\nMight be presented, faultless, at Thy throne!\"\nAnd Satan flew away.  Full well he knew\nThat he could not prevail against such love,\nfor every word my dear Lord spoke was true!\n\n\n\t\t\t\t\tby Martha Snell Nicholson\n\n+++++++++++++++++++++++\nI heard this poem read last night and wanted to share it with other \nsubscribers of this newsgroup.  It's such a wonderful blessing to see how \nsecure our salvation is because the Lord Jesus paid for what He did not owe \nbecause we had a debt which we were not capable to pay.\n\nThanks and praise be to the Savior, the Lord Jesus Christ, who is seated at \nthe right hand of the Majesty on High, making intercession for us.\n++++++++++++++++++++++++\n\nLiane Brown\n(Internet) brownli@ohsu.edu\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10535, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: <Political Atheists?\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 14\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1ql0ajINN2kj@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n\n>Well, chimps must have some system.  They live in social groups\n>as we do, so they must have some \"laws\" dictating undesired behavior.\n\n\tWhy \"must\"?\n\n--- \n\n        \" Whatever promises that have been made can than be broken. \"\n\n        John Laws, a man without the honor to keep his given word.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10536, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gtj@goanna.cs.rmit.oz.au (Glenn T Jayaputera)\nSubject: Need Info on high quality video card\nOrganization: RMIT Department of Computer Science\nLines: 10\n\nHi...I need some info on video card.  I am looking a video card that can\ndeliver a high quality picture.  I need the card to display images (well\nfor advertising company btw), so it must be rich with colors and the speed\nmust be fast too.\n\nI am just wondering if somebody can advise me what to buy for such\napplication, and possible the address of the vendor.\n\nthanks in advance\nGlenn Jayaputera\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10537, "properties": {"category": "sci.crypt", "text": "From: warlord@MIT.EDU (Derek Atkins)\nSubject: Re: disk safety measure?\nOrganization: Massachusetts Institute of Technology\nLines: 33\n\t<1pq0re$gc2@network.ucsd.edu>\nNNTP-Posting-Host: steve-dallas.mit.edu\nIn-reply-to: loki@sdphu3.ucsd.edu's message of 5 Apr 93 19:21:18 GMT\n\n-----BEGIN PGP SIGNED MESSAGE-----\n\nIn article <1pq0re$gc2@network.ucsd.edu> loki@sdphu3.ucsd.edu (Lance M Cottrell) writes:\n\n   BTW I have not been able to get pgp to produce a signature\n   that I can attatch to the end of this message.  What is \n   the procedure?  Thanks.\n\ntry:\n\tpgp -sat +clearsig=on\n\nThis will do the clearsig signing...\n\nEnjoy!\n\n- -derek\n\nPGP 2 key available upon request on the key-server:\n\tpgp-public-keys@toxicwaste.mit.edu\n\n-----BEGIN PGP SIGNATURE-----\nVersion: 2.2\n\niQBuAgUBK8DNazh0K1zBsGrxAQFoZQLEC/XKXMoDhCPf/AZ3aOQSLfz+6w400UDk\nNg6prxnPuEuSZQEiiusMCVcRcGnWbaVrxFjA1o4yubh01Czcg3ZC9wLJolXlxJn7\niSJh/eTZxmJnNynJxlGs0Ao=\n=4eZb\n-----END PGP SIGNATURE-----\n--\n  Derek Atkins, MIT '93, Electrical Engineering and Computer Science\n     Secretary, MIT Student Information Processing Board (SIPB)\n           MIT Media Laboratory, Speech Research Group\n           warlord@MIT.EDU       PP-ASEL        N1NWH\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10538, "properties": {"category": "sci.space", "text": "From: 18084TM@msu.edu (Tom)\nSubject: Space Clippers launched\nX-Added: Forwarded by Space Digest\nOrganization: [via International Space University]\nOriginal-Sender: isu@VACATION.VENARI.CS.CMU.EDU\nDistribution: sci\nLines: 14\n\n\n\n>  SPACE CLIPPERS LAUNCHED SUCCESSFULLY\n\nWhen I first saw this, I thought for a second that it was a headline from\nThe Star about the pliers found in the SRB recently.\n\nY'know, sometimes they have wire-cutters built in :-)\n\n-Tommy Mac\n-------------------------------------------------------------------------\nTom McWilliams 517-355-2178 wk   \\\\ As the radius of vision increases,\n18084tm@ibm.cl.msu.edu 336-9591 hm \\\\ the circumference of mystery grows.\n-------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10539, "properties": {"category": "sci.space", "text": "Subject: <None>\nFrom: bioccnt@otago.ac.nz\nOrganization: University of Otago, Dunedin, New Zealand\nNntp-Posting-Host: thorin.otago.ac.nz\nLines: 12\n\n\nCan someone please remind me who said a well known quotation? \n\nHe was sitting atop a rocket awaiting liftoff and afterwards, in answer to\nthe question what he had been thinking about, said (approximately) \"half a\nmillion components, each has to work perfectly, each supplied by the lowest\nbidder.....\" \n\nAttribution and correction of the quote would be much appreciated. \n\nClive Trotman\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10540, "properties": {"category": "talk.politics.misc", "text": "From: gadfly@cbnewsi.cb.att.com (Gadfly)\nSubject: Re: California Insurance Commissioner Endorses Federal Legislation to Protect Consumers from Scam Insurance Companies\nOrganization: AT&T\nDistribution: usa\nSummary: Whatever you say.\nLines: 96\n\nIn article <15389@optilink.COM>, cramer@optilink.COM (Clayton Cramer) writes:\n> > > You mean, since your philosophy took over, the economy has almost\n> > > collapsed.\n  \n> > Excuse me, *my* philosophy?  You don't have any idea what *my* philosophy\n> > is.  The American economy has had its ups and downs through a number of\n> > prevailing economic philosophies.  But then, economics is hardly a science.\n\n> In my lifetime, your philosophy -- socialism masquerading as a liberal\n> welfare state -- has been in ascendancy.\n\nYo--earth to Clayton--*my* philosophy?  I have never discussed this with you.\nI know it's a minor point, but, gee, dude, you have no idea what economic\nand political principles I adhere to.  But don't let that stop you--you're on a\nroll.  Just ascribe to me whatever you want--I know you'll choose wisely.\nAfter all, I *do* believe in personal responsibility.\n\n> > No, I mean exactly what I wrote--the welfare system of the New Deal is\n> > wholly inadequate to cope with the current state of affairs.\n\n> Absolutely.  So the response of socialists is take us even further\n> into socialism.\n\nDuh.  What else would you *expect* a socialist to do?\n\n> > > Flash-in-the-pan?  No, your subculture has utterly dominated the\n> > > TV and movie industries for two decades now.\n\n> > *My* subculture?  My, we're getting personal.  The only subculture I see\n> > dominating the TV and movie industries is *money*.  If you'll buy it,\n> > they'll sell it.  And as recent movements to boycott TV advertisers have\n> > shown, they're *very* sensitive about what sells.  Whatever happened to\n> > personal responsibility, anyway?  Or am I personally responsible for\n> > the decline in that, too?\n\n> To the extent that people have been encouraged to NOT be responsible\n> for themselves, yes.\n\n(a) Just when and where have I encouraged people not to be responsible\nfor themselves?  Be specific--but do make up random dates and heinous\nacts as you see fit.\n\n(b) You and I have encouraged many people to do many things.  How does that\nin any way make our audiences less responsible for their actions?  Is there\na finite amount of responsibility, so (cf. conservation of energy) as\nI become more responsible for an occurrence by encouraging it the actual\nperpetrator becomes correspondingly less so?  At what point does the\nperpetrator become completely innocent altogether?  You know, this lends\na whole new meaning to the term \"the moral high ground\".\n\n> > > Oddly enough, all the unskilled or semiskilled people I know manage\n> > > to find employment almost immediately.  Maybe she needs to move to a\n> > > cheaper part of the country, where jobs are plentiful, and the cost\n> > > of living is lower.\n\n> > The west side of Chicago is about as cheap as it gets--squalor city.\n> > Tell me about all these places where it's cheap to live and jobs are\n> > abundant--I'll pass them on.\n\n> Sonoma County.\n\nI will pass the info on.  Out of curiosity, what kind of jobs would these\nbe?  What's the demographic mix wrt race, age, culture?\n\n> > lots of employment, and utterly surrounded by socialists.  Well, I suppose\n> > that's the sort of environment that would attract socialists, or at least\n> > not dissuade them.\n\n> No, it's that areas with a lot of wealthy breed socialists -- all the\n> spoiled rich kids, feeling guilty about their wealth.  But not guilty\n> enough to give it away -- they just look for politicians to take MY\n> more limited wealth away.\n\nLife's a bitch, ain't it?  Man, you've got to get out of Fornicalia--have\nyou considered someplace perhaps geographically distant but politically\nmore friendly to you, like, say, Indiana?  Or maybe Utah?\n\n> > Well, I doubt that much of this goes to drugs--there isn't much left after\n> > buying food, and there is very little in the first place.  Sure, you read\n> > about such cases now and then, but that's what makes them news.  Show me\n> > your statistics about AFDC abuse.\n\n> I can tell you that relatives I have known, the drugs came first, the\n> food was secondary.\n\nI don't doubt it, but unless you can show me statistics to the contrary\nI will persist in my apparently dogmatic socialist belief (hey, if *you* say\nso) that most AFDC money really does--for better or worse in the long\nterm--feed FDCs.  \n\n               *** ***\nKen Perlow   ***** *****\n16 Apr 93   ****** ******   27 Germinal An CCI\n            *****   *****   gadfly@ihspc.att.com\n             ** ** ** **\n...L'AUDACE!   *** ***   TOUJOURS DE L'AUDACE!  ENCORE DE L'AUDACE!\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10541, "properties": {"category": "sci.space", "text": "From: mccall@mksol.dseg.ti.com (fred j mccall 575-3539)\nSubject: Re: How many read sci.space?\nOrganization: Texas Instruments Inc\nLines: 16\n\nIn <1993Apr15.204210.26022@mksol.dseg.ti.com> pyron@skndiv.dseg.ti.com (Dillon Pyron) writes:\n\n\n>There are actually only two of us.  I do Henry, Fred, Tommy and Mary.  Oh yeah,\n>this isn't my real name, I'm a bald headed space baby.\n\nYes, and I do everyone else.  Why, you may wonder, don't I do 'Fred'?\nWell, that would just be too *obvious*, wouldn't it?  Oh yeah, this\nisn't my real name, either.  I'm actually Elvis.  Or maybe a lemur; I\nsometimes have difficulty telling which is which.\n\n-- \n\"Insisting on perfect safety is for people who don't have the balls to live\n in the real world.\"   -- Mary Shafer, NASA Ames Dryden\n------------------------------------------------------------------------------\nFred.McCall@dseg.ti.com - I don't speak for others and they don't speak for me.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10542, "properties": {"category": "comp.windows.x", "text": "From: klee@synoptics.com (Ken Lee)\nSubject: Re: Circular Motif Widgets\nReply-To: klee@synoptics.com\nOrganization: SynOptics Communications, Santa Clara CA\nLines: 13\nNntp-Posting-Host: bugsbunny.synoptics.com\n\nIn article bjg@acsc.com, dev@hollywood.acsc.com () writes:\n>\n>Will there be any support for round or circular widgets in Motif's next\n>release?. I'd love to have a circular knob widget which could be used\n>instead of a slider.\n\nHow much support do you need?  I don't think there's anything\nthat prohibits you from implementing such a widget, though you\nwill have to write your own versions of the functions that draw\nthe 3D shadow and traversal highlighting.\n\n---\nKen Lee, klee@synoptics.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10543, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Riddle me this...\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: usa\nLines: 12\n\nIn article <1993Apr20.050550.4660@jupiter.sun.csd.unb.ca> j979@jupiter.sun.csd.unb.ca (FULLER  M) writes:\n>That the gas was \"not harmful\", as the sensitive, caring Janet Reno described \n>it?\n\nIs it? As far as I know, tear gas, especially in large concentrations,\nis very dangerous (even toxic) for small children. This makes the\nFBI's supposedconcern for the safety of the children seem rather \nhypocritical.\n\n                                                       Frank Crary\n                                                       CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10544, "properties": {"category": "rec.sport.hockey", "text": "From: Derek_Juntunen@abcd.houghton.mi.us (Derek Juntunen)\nSubject: Who will be #1 pick in NHL draft?\nDistribution: world\nOrganization: Amiga BitSwap Central Dispatch\nLines: 8\n\nI recently bought a pack of prospect hockey cards which had various\nplayers that were coming into the NHL. I got this particular card of\na Russian named Viktor Kozlov. It says \"many scouts believe he will\nbe the #1 pick in 1993\". Another guy is quoted as saying \"He's as \ngood as Mario Lemieux\". Anyone know who this guy is?????\n\n-- Via DLG Pro v0.995\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10545, "properties": {"category": "rec.sport.baseball", "text": "From: lynch@hpcc01.corp.hp.com (Howard Lynch)\nSubject: Re: PHILLIES SIGN MARK DAVIS\nOrganization: the HP Corporate notes server\nLines: 8\n\nI had heard the rumors about LA, Cin, Hou, and SD all being\ninterested in Mark Davis, so it doesn't surprise me that a\nteam had to give up something and cash to actually get him.\n\nLynch \"MOB\"\n\nps.  anyone else draft this guy?  i really did and got a \n     loud cry of \"when will you ever give up on this guy\" :-)\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10546, "properties": {"category": "comp.windows.x", "text": "From: mouse@thunder.mcrcim.mcgill.edu (der Mouse)\nSubject: Re: Available memory to the Xserver. How to get the actual size?\nOrganization: McGill Research Centre for Intelligent Machines\nLines: 14\n\nIn article <1965@igd.fhg.de>, pfuetz@igd.fhg.de (Matthias Pfuetzner) writes:\n\n> Is there a possibility to determine via X protocol calls the size of\n> free memory available to the Xserver?\n\nNo.  Even if you could, the answer could be out of date even before you\nget it (even if you grab the server, it could be taken up by buffering\nuser actions).  You should just try to do whatever you want; a BadAlloc\nerror is your indication that insufficient server memory is available.\n\n\t\t\t\t\tder Mouse\n\n\t\t\t\tmouse@mcrcim.mcgill.edu\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10547, "properties": {"category": "alt.atheism", "text": "From: dewey@risc.sps.mot.com (Dewey Henize)\nSubject: Re: sci.skeptic.religion (Was: Why ALT.atheism?)\nOrganization: Motorola, Inc. -- Austin,TX\nLines: 33\nNNTP-Posting-Host: thug.sps.mot.com\n\nIn article <93103.071613J5J@psuvm.psu.edu> John A. Johnson <J5J@psuvm.psu.edu> writes:\n>\n>Standard groups (sci, soc, talk) must conform to stricter rules when being\n>established and must show a certain volume of postings or else they will\n>cease to exist.  These groups also reach more sites on USENET than alt\n>groups.  I already posted my opinion to mathew's suggestion, which was that\n>alt.atheism is on the verge of having too many garbage postings from\n>fundies, and \"elevating\" its status to a standard group (and consequently,\n>the volume of such postings) could make it unreadable.\n\nI tend to agree.  I came here when it first started and watched it grow\nfrom the roots on talk.religion.misc.  It seemed to take a while for enough\natheists to come forward to get past the \"Let's trash Xians\" and such.\nNow there's a stable core, and frankly there's a feeling that this is\n_our_ group.\n\nIf we go mainstream, we're going to be in a lot more places.  And every\nfucking fundy loonie freshman will be dumping on us to find Jeesus! and\nwarn us that we're all going to Hell.\n\nWant to see what we'll get?  Go real alt.fan.brother-jed and imagine that\nthose imbecilic tirades will be here.  All the time.  Every other post.\n\nI'm being selfish.  I find I really learn a lot here and the S/N isn't too\nbad.  The Browns and the Boobys are a distraction, but they are few enough\nthat they even bring in some of the leavening needed to offset them.  But\nI greatly fear that mainstreaming would basically put us at the swamping\nlevel of the Conners of the world.\n\nRegards,\nDew\n-- \nDewey Henize Sys/Net admin RISC hardware (512) 891-8637 pager 928-7447 x 9637\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.494+0000", "event": "documents", "entityId": 10548, "properties": {"category": "rec.autos", "text": "From: m-it2691@DOC.CS.NYU.EDU (Tim Tsai)\nSubject: AWD BMW\nLines: 11\nX-Received: by usenet.pa.dec.com; id AA12484; Mon, 5 Apr 93 23:06:31 -0700\nX-Received: by inet-gw-2.pa.dec.com; id AA26423; Mon, 5 Apr 93 23:06:30 -0700\nX-Received: by DOC.CS.NYU.EDU (5.61/1.34)\n\tid AA07384; Tue, 6 Apr 93 02:07:00 -0400\nX-To: rec.autos.usenet\nX-Mailer: ELM [version 2.3 PL2]\n\n\n  Any truth to the rumor of an AWD 3-series for '94?  I believe\nthis info was published in either Popular Science or AutoWeek\na couple of months ago.\n\n  Also, a friend told me that BMW used to make an AWD 325 called\nthe 325ix.  I'd appreciate any info about this car too.  Thanks..\n\n  Thanks.\n\n  Tim\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10549, "properties": {"category": "talk.religion.misc", "text": "From: tk@dcs.ed.ac.uk (Tommy Kelly)\nSubject: Objective Values 'v' Scientific Accuracy (was Re: After 2000 years, can we say that Christian Morality is)\nReply-To: tk@dcs.ed.ac.uk (Tommy Kelly)\nOrganization: Laboratory for the Foundations of Computer Science, Edinburgh U\nLines: 54\n\nFrank, I tried to mail this but it bounced.  It is fast moving out\nof t.a scope, but I didn't know if t.a was the only group of the three\nthat you subscribed to.\nApologies to regular t.a folks.\n\nIn article <1qjahh$mrs@horus.ap.mchp.sni.de> frank@D012S658.uucp (Frank O'Dwyer) writes:\n\n>Science (\"the real world\") has its basis in values, not the other way round, \n>as you would wish it.  \n\nYou must be using 'values' to mean something different from the way I\nsee it used normally.\n\nAnd you are certainly using 'Science' like that if you equate it to\n\"the real world\".\n\nScience is the recognition of patterns in our perceptions of the Universe\nand the making of qualitative and quantitative predictions concerning\nthose perceptions.\n\nIt has nothing to do with values as far as I can see.\nValues are ... well they are what I value.\nThey are what I would have rather than not have - what I would experience\nrather than not, and so on.\n\nObjective values are a set of values which the proposer believes are\napplicable to everyone.\n\n>If there is no such thing as objective value, then science can not \n>objectively be said to be more useful than a kick in the head.\n\nI don't agree.\nScience is useful insofar as it the predictions mentioned above are\naccurate.  That is insofar as what I think *will be* the effect on\nmy perceptions of a time lapse (with or without my input to the Universe)\nversus what my perceptions actually turn out to be.\n\nBut values are about whether I like (in the loosest sense of the word) the \nperceptions :-)\n\n>Simple theories with accurate predictions could not objectively be said\n>to be more useful than a set of tarot cards.  \n\nI don't see why.\n'Usefulness' in science is synonomous with 'accuracy' - period.\nTarot predictions are not useful because they are not accurate - or\ncan't be shown to be accurate.\nScience is useful because it is apparently accurate.\n\nValues - objective or otherwise - are beside the point.\n\nNo?\n\ntommy\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10550, "properties": {"category": "rec.motorcycles", "text": "From: thompson@apple.com (Paul Thompson)\nSubject: Re: Wanted: Advice for New Cylist\nOrganization: Apple Computer, Inc., Cupertino, California\nLines: 14\nNNTP-Posting-Host: apple.com\n\nblaisec@sr.hp.com (Blaise Cirelli) writes:\n\n>So the question I have is \"HOW DANGEROUS IS RIDING\"?            \n\nsorta.\n\n>The next question I have is what bike would you recommend for\n>a first time rider. \n\n'88 Honda Hawk\n\nYMMV.\n-- \nPaul Thompson    Apple Computer    \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10551, "properties": {"category": "comp.windows.x", "text": "From: ten0772@eafs000.ca.boeing.com (Timothy E. Neto)\nSubject: Re: X-server multi screen\nOrganization: be41t\nLines: 37\n\nrainer@sun3.eeam.elin.co.at (Rainer Hochreiter) writes:\n\n>Hi Xperts, some simple questions for you:\n\n>I've seen a lot of different terms, which seem to mean the same thing.\n>Who can give an exact definition what these terms mean:\n\n>\t-) multi-screen\n>\t-) multi-headed\n>\t-) multi-display\n>\t-) X-Server zaphod mode\n\n>Is there a limit how many screens/displays a single server can handle\n>(in an articel a read something about an upper limit of 12) ?\n\n>How is the capability called, if I want to move the cursor from one\n>screen/display to another.\n\n>Any hints welcome.\n\n>Thanks, rainer.\n>-- \n>Rainer Hochreiter                | Telephone: +43 (1) 89100 / 3961\n>ELIN-Energieanwendung GesmbH     | Telefax  : +43 (1) 89100 / 3387\n>Penzingerstr. 76                 |\n>A-1141 Wien, Austria/Europe      | E-mail   : rainer@elin.co.at\n\nAs to how many clients may be display on a server, I believe the limit\nwould be how much memory is available to your server or allocated by the\nserver.\n\n\n-- \nIndecision is the key to | Timothy E. Neto  (206) 655-5190              1   000\nflexibility, & you can't | Of B & T's Gadget & Widget Works             1  0. .0\nE-Mail God.              | Flight Systems Lab, Boeing Comm. Aircraft    1  0 _ 0\nMy ideas not Boeing's    | Internet: ten0772@aw401.fsl.ca.boeing.com    1   000\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10552, "properties": {"category": "misc.forsale", "text": "From: eshneken@ux4.cso.uiuc.edu (Edward A Shnekendorf)\nSubject: Airline ticket: Washington DC -> Champaign, IL (FOR SALE)\nOrganization: University of Illinois at Urbana\nLines: 9\n\n\nI am selling a one way ticket from Washington DC to Champaign, IL ( the\nhome of the University of Illinois).  Am willing to offer a good price.\n\nIf you are interested, please email me at:  eshneken@uiuc.edu\n\nThanks,\nEd.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10553, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rvenkate@ux4.cso.uiuc.edu (Ravikuma Venkateswar)\nSubject: Re: x86 ~= 680x0 ?? (How do they compare?)\nDistribution: usa\nOrganization: University of Illinois at Urbana\nLines: 59\n\nray@netcom.com (Ray Fischer) writes:\n\n>dhk@ubbpc.uucp (Dave Kitabjian) writes ...\n>>I'm sure Intel and Motorola are competing neck-and-neck for \n>>crunch-power, but for a given clock speed, how do we rank the\n>>following (from 1st to 6th):\n>>  486\t\t68040\n>>  386\t\t68030\n>>  286\t\t68020\n\n>040 486 030 386 020 286\n\nHow about some numbers here? Some kind of benchmark?\nIf you want, let me start it - 486DX2-66 - 32 SPECint92, 16 SPECfp92 .\n\n>>While you're at it, where will the following fit into the list:\n>>  68060\n>>  Pentium\n>>  PowerPC\n\n>060 fastest, then Pentium, with the first versions of the PowerPC\n>somewhere in the vicinity.\n\nNumbers? Pentium @66MHz - 65 SPECint92, 57 SPECfp92 .\n\t PowerPC @66MHz - 50 SPECint92, 80 SPECfp92 . (Note this is the 601)\n        (Alpha @150MHz  - 74 SPECint92,126 SPECfp92 - just for comparison)\n\n>>And about clock speed:  Does doubling the clock speed double the\n>>overall processor speed?  And fill in the __'s below:\n>>  68030 @ __ MHz = 68040 @ __ MHz\n\n>No.  Computer speed is only partly dependent of processor/clock speed.\n>Memory system speed play a large role as does video system speed and\n>I/O speed.  As processor clock rates go up, the speed of the memory\n>system becomes the greatest factor in the overall system speed.  If\n>you have a 50MHz processor, it can be reading another word from memory\n>every 20ns.  Sure, you can put all 20ns memory in your computer, but\n>it will cost 10 times as much as the slower 80ns SIMMs.\n\nNot in a clock-doubled system. There isn't a doubling in performance, but\nit _is_ quite significant. Maybe about a 70% increase in performance.\n\nBesides, for 0 wait state performance, you'd need a cache anyway. I mean,\nwho uses a processor that runs at the speed of 80ns SIMMs? Note that this\nmemory speed corresponds to a clock speed of 12.5 MHz.\n\n>And roughly, the 68040 is twice as fast at a given clock\n>speed as is the 68030.\n\nNumbers?\n\n>-- \n>Ray Fischer                   \"Convictions are more dangerous enemies of truth\n>ray@netcom.com                 than lies.\"  -- Friedrich Nietzsche\n-- \nRavikumar Venkateswar\nrvenkate@uiuc.edu\n\nA pun is a no' blessed form of whit.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10554, "properties": {"category": "misc.forsale", "text": "From: cthulhu@sparky.cis.ufl.edu (Mark Kupper)\nSubject: CDs for sale\nArticle-I.D.: snoopy.1pspmoINNmtq\nDistribution: world\nOrganization: Univ. of Florida CIS Dept.\nLines: 10\nNNTP-Posting-Host: sparky.cis.ufl.edu\n\n\n  The following are available for $7.00 each (includes postage if in USA):\n\n\tTed Nugent - Penetrator\n\tJah Wobble - Rising Above Bedlam\n\tBlack 47 - EP\n\tMarshall Tucker Band - Long Hard Ride\n\tKid Frost - East Side Story\n\tCoffin Break - Thirteen\n\tSteve Wariner Band - I Got Dreams\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10555, "properties": {"category": "comp.windows.x", "text": "From: billh@greed.sbil.co.uk (Bill Hodgson)\nSubject: Re: waiting for a specific event/callback\nReply-To: billh@greed.sbil.co.uk\nOrganization: Salomon Brothers, Ltd.\nLines: 20\nNntp-Posting-Host: greed\n\nIn article 9610@charon.cwi.nl, huub@cwi.nl (Huub Bakker) writes:\n..deleted...\n\nIn plain Motify using a dialog 'in-line' like this simply isn't done. You need\nto set callbacks from the buttons/widgets in your dialog and let the callback routines\ndo the work. In the callbacks you can then carry on the flow of logic. \n\nXView from Sun actually supports this very neatly with a 'Notify' box, which can\nreturn a status in-line, it does actualy ease coding but goes against the event\ndriven style of an application.\n\nSummary: Redesign required.\n\n\n---\n    _/       _/  _/ _/     \"Delta hedging a long option position also\n   _/           _/ _/\t    generates a short gamma exposure and any return\n  _/_/_/_/ _/  _/ _/\t    generated from delta hedging options can be thought\n _/    _/ _/  _/ _/\t    of as compensation for assuming gamma risk\"\n_/_/_/_/ _/  _/ _/\t    -- Radioactive investment management... whew!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10556, "properties": {"category": "rec.motorcycles", "text": "From: jet@netcom.Netcom.COM (J. Eric Townsend)\nSubject: Re: Stolen  AARGHHHH.....\nIn-Reply-To: dam9543@ritvax.isc.rit.edu's message of Wed, 14 Apr 1993 21:53:17 GMT\nOrganization: Netcom Online Communications Service\nLines: 17\n\n\"dam9543\" == dam9543  <dam9543@ritvax.isc.rit.edu> writes:\n\n\ndam9543> \tI get back drom work today, look at me bike before\ndam9543> proceding in-side.  I nearly shit, my new DRY RIDER cover is\ndam9543> gone!  Barely two weeks old, and already gone, GOD-AM\n\nSomebody stole my trashed old Honda red/white/blue cover off a\nKZ440LTD in residential Palo Alto a couple of weeks ago.  The cover\nhad *holes* burnt in it around the exhaust, etc etc.  I figured it was\njust kids, but maybe not...\n\n-- \njet@netcom.com -- J. Eric Townsend -- '92 R100R, DoD# (hafta kill you...)\nThis is my fun account -- work email goes to jet@nas.nasa.gov\n\"You got to put down the ducky if you wanna play saxophone.\"\nSkate UNIX or die, boyo.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10557, "properties": {"category": "comp.windows.x", "text": "From: mahan@TGV.COM (Patrick L. Mahan)\nSubject: Re: need shading program example in X\nOrganization: The Internet\nLines: 35\nNNTP-Posting-Host: enterpoop.mit.edu\nTo: beck@irzr17.inf.tu-dresden.de, xpert@expo.lcs.mit.edu\n\n# \n# I think the original post was searching for existing implementations of\n# f.i. Gouroud-shading of triangles. This is fairly complex to do with plain\n# X. Simpler shading models are implemented already, f.i. in x3d (ask archie\n# where to get the latest version).\n# For Gouroud, a fast implementation will be possible utilizing some extension\n# only, either MIT-SHM to do the shade in an image and fast update the window\n# with it, or PEX/OpenGL which should be able to shade themselves. The portable\n# 'vanilla X' way would be to shade in a normal XImage and use XPutImage(),\n# what would be good enough to do static things as f.i. fractal landscapes\n# or such stuff.\n# \n# To speak about POVRay, the X previewer that comes with the original source\n# package is not that good, especially in speed, protocol-friendlyness and\n# ICCCM compliance. Have a look on x256q, my own preview code. It is on\n# \n# 141.76.1.11:pub/gfx/ray/misc/x256q/\n# \n# The README states the points where it is better than xwindow.c from\n# POVRay 1.0\n# \n\nThe version I have is using the x256q code instead of the default X Windows\ncode.  I have it currently running on a DEC Alpha running OpenVMS AXP and\nso far have been pretty impressed.  The only \"side-effect\" of x256q is that\nit requires xstdcmap -best be run before it will work, annoyning but not a\nshow stopper.\n\nPatrick L. Mahan\n\n--- TGV Window Washer ------------------------------- Mahan@TGV.COM ---------\n\nWaking a person unnecessarily should not be considered  - Lazarus Long\na capital crime.  For a first offense, that is            From the Notebooks of\n\t\t\t\t\t\t\t  Lazarus Long\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10558, "properties": {"category": "misc.forsale", "text": "From: hinds@cmgm.stanford.edu (Alexander Hinds)\nSubject: Headphones for sale\nKeywords: headphones\nOrganization: Stanford University, California, USA\nLines: 9\n\nI have two pairs of headphones I'd like to sell.  These are excellent, and both in great condition:\n\nDenon AH-D350\nJVC HA-D590\n\nAny reasonable offer accepted.\n\nAlexander Hinds\n(415) 497-3719\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10559, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sat@eng.tridom.com (Stephen Thomas)\nSubject: Mouse Jumpiness Solved!\nNntp-Posting-Host: nut.eng.tridom.com\nReply-To: sat@eng.tridom.com\nOrganization: AT&T Tridom\nLines: 24\n\nCan't guarantee that it'll work for everyone, but I finally fixed my mouse\njumpiness problems: I installed a bus mouse. (Sorry, I didn't say the solution\nwas free.) In the past I'd tried everything with my Microsoft serial mouse.\n(Cleaning it, unloading all kinds of TSRs, turning off SMARTDRV write\ncacheing, changing COM ports, ...) Nothing worked. Yesterday I finally broke\ndown and bought a Mouse Systems Bus Mouse. The improvement is even better\nthan I had imagined! So much so that my old mouse must have been jumpy\nall the time (I just thought it was jumpy sometimes), and I had gotten so\nused to it I didn't notice. My wife, who uses the computer about once a\nmonth, noticed the improvement literally within a second!\n\nI can't say anything about other bus mice, but with the Mouse Systems\none you'll have to give up either COM2 or LPT2 to an IRQ. Also, if you\ndon't know, Mouse Systems mice have three buttons. The driver includes\na utility that lets you assign keystrokes to the middle button.\n\nHope this helps someone else. If you're anywhere near as frustrated as I\nwas, it's well worth the $80.\n\n---\n\nStephen Thomas   AT&T Tridom   (404-514-3522)\nemail: sat@eng.tridom.com, attmail!tridom!sat\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10560, "properties": {"category": "talk.politics.guns", "text": "From: starr@genie.slhs.udel.edu (Tim Starr)\nSubject: Re: With Friends Like These -- L. Neil Smith\nOrganization: UDel: School of Life & Health Sciences\nLines: 28\n\nIn article <C5D05G.6xw@undergrad.math.uwaterloo.ca> papresco@undergrad.math.uwaterloo.ca (Paul Prescod) writes:\n}In article <1993Apr10.155819.18237@sco.com> allanh@sco.COM (Allan J. Heim) writes:\n}>Look, if you can figure out a reliable means of keeping guns away from\n}>bad people, while not interfering with good people, I think we'd all be\n}>for it.  The problem is, the methods we're using now don't do the trick.\n}\n}Don't manufacture them.  Don't sell them.  Don't import them.\n\nJapan did this.  It required near-total isolation from the rest of the world\nfor 2 centuries.\n\n}Some guns will get through, but far fewer, and far less people will\n}die because of them.  Hunting weapons could be allowed, of course, as\n}long as they are big, and bulky, and require reloading after a few\n}shots (how many times can you shoot at the same animal, anyways One\n}assumes they are moving!)\n\nHunting weapons are great for extortionist sharpshooters.  \"Send me money or\nelse I'll pick you off from 2 miles away.\"\n\nTim Starr - Renaissance Now!\n\nAssistant Editor: Freedom Network News, the newsletter of ISIL,\nThe International Society for Individual Liberty,\n1800 Market St., San Francisco, CA 94102\n(415) 864-0952; FAX: (415) 864-7506; 71034.2711@compuserve.com\n\nThink Universally, Act Selfishly - starr@genie.slhs.udel.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10561, "properties": {"category": "soc.religion.christian", "text": "From: saw8712@bcstec.ca.boeing.com (Steve A. Ward)\nSubject: Re: Mormon Temples\nOrganization: Boeing Computer Services\nLines: 25\n\nmserv@mozart.cc.iup.edu (Mail Server) writes:\n\n>One thing I don't understand is why being sacred should make the\n>temple rituals secret.  \n\nOn of the attributes of being sacred in this case is that they\nshould not be spoken of in a \"common manner\" or \"trampled under\nfeet\" such as the Lords name is today.  The ceremonies are\nperformed in the temple because the temple has been set aside\nas being as sacred/holy/uncommon place.  We believe that the \nceremonies can only be interpreted correctly when they\nare viewed with the right spirit- which in this case is in the\ntemple.  So from our point of view, when they are brought\nout into the public, they are being trampled under feet,\nbecause of misinterpretations and mocking, and it is therefore\noffensive to us.\n\nPlease do not assume that because of my use of the words\n'we' and 'our' that I'm an official spokesman for the LDS\nchurch.  I am merely stating what I believe is the general\nfeeling among us.  Others feel free to disagree.\n\n--\nSteve Ward\nsaw8712@bcstec.ca.boeing.com \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10562, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Eco-Freaks forcing Space Mining.\nOrganization: Express Access Online Communications USA\nLines: 7\nNNTP-Posting-Host: access.digex.net\n\n Besides this was the same line of horse puckey the mining companies claimed\nwhen they were told to pay for  restoring land  after strip mining.\n\nthey still mine coal in the midwest,  but now it doesn't look like\nthe moon when theyare done.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10563, "properties": {"category": "talk.politics.guns", "text": "From: kdw@icd.ab.com (Kenneth D. Whitehead)\nSubject: Re: Change of name ??\nNntp-Posting-Host: sora.icd.ab.com\nOrganization: Allen-Bradley Company, Inc.\nLines: 47\n\n\nIn article <CMM.0.90.2.735315429.thomasp@holmenkollen.ifi.uio.no>, Thomas Parsli \n<thomasp@ifi.uio.no> writes:\n> \t1. Make a new Newsgroup called talk.politics.guns.PARANOID or \n> \ttalk.politics.guns.THEY'R.HERE.TO.TAKE.ME.AWAY\n\n\nWell, may I point out that paranoia is an IRRATIONAL fear, without basis\nin reality.  As we've seen here in the US, there is nothing irrational\nabout it.  Perhaps you folks in Finland have been down on your knees\nbeing good little boys and girls so that the former Soviet Union didn't\ncome across the border and stomp the snot out of you for so long that\nyou just figure everybody should be so accomodating to tyranny.\n\n\n> \n> \t2. Move all postings about waco and burn to (guess where)..\n> \n> \t3. Stop posting #### on this newsgroup\n\n\nIf you don't like us talking about political issues involving attacks\non people for owning guns, don't read talk.politics.guns.\n\n\n> \n> \tWe are all SO glad you're trying to save us from the evil \n> \tgoverment, but would you mail this #### in regular mail to\n> \tlet's say 1000 people ????\n> \t\n\nNobody's trying to save YOU from anything, so butt out.  I couldn't\ncare less about what somebody on the other side of the world thinks \nabout this. Of course, you do have a right to an opinion...  but I've\nalways figured that opinons are like hemmorhoids.  Every asshole's\ngot them, I just don't care about yours. \n\n\n\n  **************************************************************************\n*     I remember what I was doing         *    Bad boy, whatcha gonna do    * \n*  when I heard that JFK had been shot.   *        Whatcha gonna do         *\n*  Will you remember the Battle of Waco?  *    when they come for you...    *\n ***************************************************************************\nKen Whitehead (kdw@odin.icd.ab.com)\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10564, "properties": {"category": "misc.forsale", "text": "From: dennisod@itx.isc.com (Dennis R. O'Donnell)\nSubject: McCartney concert tickets for sale\nOrganization: Interactive Systems\nKeywords: dennisod\nLines: 14\n\n\n\n\nFour tickets available for the Paul McCartney concert at the Alamo Dome \nin San Antonio, TX on May 29th...\n\nGROUND FLOOR SEATS.\n\nWill sell all four, or in pairs:  $100 each.\n\n\nE-Mail:   dennisod@itx.isc.com\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10565, "properties": {"category": "sci.space", "text": "From: leech@cs.unc.edu (Jon Leech)\nSubject: Space FAQ 11/15 - Upcoming Planetary Probes\nSupersedes: <new_probes_730956574@cs.unc.edu>\nOrganization: University of North Carolina, Chapel Hill\nLines: 243\nDistribution: world\nExpires: 6 May 1993 20:00:01 GMT\nNNTP-Posting-Host: mahler.cs.unc.edu\nKeywords: Frequently Asked Questions\n\nArchive-name: space/new_probes\nLast-modified: $Date: 93/04/01 14:39:17 $\n\nUPCOMING PLANETARY PROBES - MISSIONS AND SCHEDULES\n\n    Information on upcoming or currently active missions not mentioned below\n    would be welcome. Sources: NASA fact sheets, Cassini Mission Design\n    team, ISAS/NASDA launch schedules, press kits.\n\n\n    ASUKA (ASTRO-D) - ISAS (Japan) X-ray astronomy satellite, launched into\n    Earth orbit on 2/20/93. Equipped with large-area wide-wavelength (1-20\n    Angstrom) X-ray telescope, X-ray CCD cameras, and imaging gas\n    scintillation proportional counters.\n\n\n    CASSINI - Saturn orbiter and Titan atmosphere probe. Cassini is a joint\n    NASA/ESA project designed to accomplish an exploration of the Saturnian\n    system with its Cassini Saturn Orbiter and Huygens Titan Probe. Cassini\n    is scheduled for launch aboard a Titan IV/Centaur in October of 1997.\n    After gravity assists of Venus, Earth and Jupiter in a VVEJGA\n    trajectory, the spacecraft will arrive at Saturn in June of 2004. Upon\n    arrival, the Cassini spacecraft performs several maneuvers to achieve an\n    orbit around Saturn. Near the end of this initial orbit, the Huygens\n    Probe separates from the Orbiter and descends through the atmosphere of\n    Titan. The Orbiter relays the Probe data to Earth for about 3 hours\n    while the Probe enters and traverses the cloudy atmosphere to the\n    surface. After the completion of the Probe mission, the Orbiter\n    continues touring the Saturnian system for three and a half years. Titan\n    synchronous orbit trajectories will allow about 35 flybys of Titan and\n    targeted flybys of Iapetus, Dione and Enceladus. The objectives of the\n    mission are threefold: conduct detailed studies of Saturn's atmosphere,\n    rings and magnetosphere; conduct close-up studies of Saturn's\n    satellites, and characterize Titan's atmosphere and surface.\n\n    One of the most intriguing aspects of Titan is the possibility that its\n    surface may be covered in part with lakes of liquid hydrocarbons that\n    result from photochemical processes in its upper atmosphere. These\n    hydrocarbons condense to form a global smog layer and eventually rain\n    down onto the surface. The Cassini orbiter will use onboard radar to\n    peer through Titan's clouds and determine if there is liquid on the\n    surface. Experiments aboard both the orbiter and the entry probe will\n    investigate the chemical processes that produce this unique atmosphere.\n\n    The Cassini mission is named for Jean Dominique Cassini (1625-1712), the\n    first director of the Paris Observatory, who discovered several of\n    Saturn's satellites and the major division in its rings. The Titan\n    atmospheric entry probe is named for the Dutch physicist Christiaan\n    Huygens (1629-1695), who discovered Titan and first described the true\n    nature of Saturn's rings.\n\n\t Key Scheduled Dates for the Cassini Mission (VVEJGA Trajectory)\n\t -------------------------------------------------------------\n\t   10/06/97 - Titan IV/Centaur Launch\n\t   04/21/98 - Venus 1 Gravity Assist\n\t   06/20/99 - Venus 2 Gravity Assist\n\t   08/16/99 - Earth Gravity Assist\n\t   12/30/00 - Jupiter Gravity Assist\n\t   06/25/04 - Saturn Arrival\n\t   01/09/05 - Titan Probe Release\n\t   01/30/05 - Titan Probe Entry\n\t   06/25/08 - End of Primary Mission\n\t    (Schedule last updated 7/22/92)\n\n\n    GALILEO - Jupiter orbiter and atmosphere probe, in transit. Has returned\n    the first resolved images of an asteroid, Gaspra, while in transit to\n    Jupiter. Efforts to unfurl the stuck High-Gain Antenna (HGA) have\n    essentially been abandoned. JPL has developed a backup plan using data\n    compression (JPEG-like for images, lossless compression for data from\n    the other instruments) which should allow the mission to achieve\n    approximately 70% of its original objectives.\n\n\t   Galileo Schedule\n\t   ----------------\n\t   10/18/89 - Launch from Space Shuttle\n\t   02/09/90 - Venus Flyby\n\t   10/**/90 - Venus Data Playback\n\t   12/08/90 - 1st Earth Flyby\n\t   05/01/91 - High Gain Antenna Unfurled\n\t   07/91 - 06/92 - 1st Asteroid Belt Passage\n\t   10/29/91 - Asteroid Gaspra Flyby\n\t   12/08/92 - 2nd Earth Flyby\n\t   05/93 - 11/93 - 2nd Asteroid Belt Passage\n\t   08/28/93 - Asteroid Ida Flyby\n\t   07/02/95 - Probe Separation\n\t   07/09/95 - Orbiter Deflection Maneuver\n\t   12/95 - 10/97 - Orbital Tour of Jovian Moons\n\t   12/07/95 - Jupiter/Io Encounter\n\t   07/18/96 - Ganymede\n\t   09/28/96 - Ganymede\n\t   12/12/96 - Callisto\n\t   01/23/97 - Europa\n\t   02/28/97 - Ganymede\n\t   04/22/97 - Europa\n\t   05/31/97 - Europa\n\t   10/05/97 - Jupiter Magnetotail Exploration\n\n\n    HITEN - Japanese (ISAS) lunar probe launched 1/24/90. Has made\n    multiple lunar flybys. Released Hagoromo, a smaller satellite,\n    into lunar orbit. This mission made Japan the third nation to\n    orbit a satellite around the Moon.\n\n\n    MAGELLAN - Venus radar mapping mission. Has mapped almost the entire\n    surface at high resolution. Currently (4/93) collecting a global gravity\n    map.\n\n\n    MARS OBSERVER - Mars orbiter including 1.5 m/pixel resolution camera.\n    Launched 9/25/92 on a Titan III/TOS booster. MO is currently (4/93) in\n    transit to Mars, arriving on 8/24/93. Operations will start 11/93 for\n    one martian year (687 days).\n\n\n    TOPEX/Poseidon - Joint US/French Earth observing satellite, launched\n    8/10/92 on an Ariane 4 booster. The primary objective of the\n    TOPEX/POSEIDON project is to make precise and accurate global\n    observations of the sea level for several years, substantially\n    increasing understanding of global ocean dynamics. The satellite also\n    will increase understanding of how heat is transported in the ocean.\n\n\n    ULYSSES- European Space Agency probe to study the Sun from an orbit over\n    its poles. Launched in late 1990, it carries particles-and-fields\n    experiments (such as magnetometer, ion and electron collectors for\n    various energy ranges, plasma wave radio receivers, etc.) but no camera.\n\n    Since no human-built rocket is hefty enough to send Ulysses far out of\n    the ecliptic plane, it went to Jupiter instead, and stole energy from\n    that planet by sliding over Jupiter's north pole in a gravity-assist\n    manuver in February 1992. This bent its path into a solar orbit tilted\n    about 85 degrees to the ecliptic. It will pass over the Sun's south pole\n    in the summer of 1993. Its aphelion is 5.2 AU, and, surprisingly, its\n    perihelion is about 1.5 AU-- that's right, a solar-studies spacecraft\n    that's always further from the Sun than the Earth is!\n\n    While in Jupiter's neigborhood, Ulysses studied the magnetic and\n    radiation environment. For a short summary of these results, see\n    *Science*, V. 257, p. 1487-1489 (11 September 1992). For gory technical\n    detail, see the many articles in the same issue.\n\n\n    OTHER SPACE SCIENCE MISSIONS (note: this is based on a posting by Ron\n    Baalke in 11/89, with ISAS/NASDA information contributed by Yoshiro\n    Yamada (yamada@yscvax.ysc.go.jp). I'm attempting to track changes based\n    on updated shuttle manifests; corrections and updates are welcome.\n\n    1993 Missions\n\to ALEXIS [spring, Pegasus]\n\t    ALEXIS (Array of Low-Energy X-ray Imaging Sensors) is to perform\n\t    a wide-field sky survey in the \"soft\" (low-energy) X-ray\n\t    spectrum. It will scan the entire sky every six months to search\n\t    for variations in soft-X-ray emission from sources such as white\n\t    dwarfs, cataclysmic variable stars and flare stars. It will also\n\t    search nearby space for such exotic objects as isolated neutron\n\t    stars and gamma-ray bursters. ALEXIS is a project of Los Alamos\n\t    National Laboratory and is primarily a technology development\n\t    mission that uses astrophysical sources to demonstrate the\n\t    technology. Contact project investigator Jeffrey J Bloch\n\t    (jjb@beta.lanl.gov) for more information.\n\n\to Wind [Aug, Delta II rocket]\n\t    Satellite to measure solar wind input to magnetosphere.\n\n\to Space Radar Lab [Sep, STS-60 SRL-01]\n\t    Gather radar images of Earth's surface.\n\n\to Total Ozone Mapping Spectrometer [Dec, Pegasus rocket]\n\t    Study of Stratospheric ozone.\n\n\to SFU (Space Flyer Unit) [ISAS]\n\t    Conducting space experiments and observations and this can be\n\t    recovered after it conducts the various scientific and\n\t    engineering experiments. SFU is to be launched by ISAS and\n\t    retrieved by the U.S. Space Shuttle on STS-68 in 1994.\n\n    1994\n\to Polar Auroral Plasma Physics [May, Delta II rocket]\n\t    June, measure solar wind and ions and gases surrounding the\n\t    Earth.\n\n\to IML-2 (STS) [NASDA, Jul 1994 IML-02]\n\t    International Microgravity Laboratory.\n\n\to ADEOS [NASDA]\n\t    Advanced Earth Observing Satellite.\n\n\to MUSES-B (Mu Space Engineering Satellite-B) [ISAS]\n\t    Conducting research on the precise mechanism of space structure\n\t    and in-space astronomical observations of electromagnetic waves.\n\n    1995\n\tLUNAR-A [ISAS]\n\t    Elucidating the crust structure and thermal construction of the\n\t    moon's interior.\n\n\n    Proposed Missions:\n\to Advanced X-ray Astronomy Facility (AXAF)\n\t    Possible launch from shuttle in 1995, AXAF is a space\n\t    observatory with a high resolution telescope. It would orbit for\n\t    15 years and study the mysteries and fate of the universe.\n\n\to Earth Observing System (EOS)\n\t    Possible launch in 1997, 1 of 6 US orbiting space platforms to\n\t    provide long-term data (15 years) of Earth systems science\n\t    including planetary evolution.\n\n\to Mercury Observer\n\t    Possible 1997 launch.\n\n\to Lunar Observer\n\t    Possible 1997 launch, would be sent into a long-term lunar\n\t    orbit. The Observer, from 60 miles above the moon's poles, would\n\t    survey characteristics to provide a global context for the\n\t    results from the Apollo program.\n\n\to Space Infrared Telescope Facility\n\t    Possible launch by shuttle in 1999, this is the 4th element of\n\t    the Great Observatories program. A free-flying observatory with\n\t    a lifetime of 5 to 10 years, it would observe new comets and\n\t    other primitive bodies in the outer solar system, study cosmic\n\t    birth formation of galaxies, stars and planets and distant\n\t    infrared-emitting galaxies\n\n\to Mars Rover Sample Return (MRSR)\n\t    Robotics rover would return samples of Mars' atmosphere and\n\t    surface to Earch for analysis. Possible launch dates: 1996 for\n\t    imaging orbiter, 2001 for rover.\n\n\to Fire and Ice\n\t    Possible launch in 2001, will use a gravity assist flyby of\n\t    Earth in 2003, and use a final gravity assist from Jupiter in\n\t    2005, where the probe will split into its Fire and Ice\n\t    components: The Fire probe will journey into the Sun, taking\n\t    measurements of our star's upper atmosphere until it is\n\t    vaporized by the intense heat. The Ice probe will head out\n\t    towards Pluto, reaching the tiny world for study by 2016.\n\n\nNEXT: FAQ #12/15 - Controversial questions\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10566, "properties": {"category": "soc.religion.christian", "text": "From: sbuckley@sfu.ca (Stephen Buckley)\nSubject: Re: The arrogance of Christians\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 22\n\ndleonar@andy.bgsu.edu (Pixie) writes:\n\n\n>                                       Unfaithfully yours,\n\n>                                       Pixie\n\n\n>     p.s.  If you do sincerely believe that a god exists, why do you follow\n>it blindly?  \n\n>     Do the words \"Question Authority\" mean anything to you?\n\n>     I defy any theist to reply.      \n\n  o.k.  i don't follow god \"blindly\".  once, long ago, i questioned authority\nto such a rabid point that i found question_authority=reject_authority_\n_unquestioningly.  i question authority all the time.  but to forever\nquestion is fruitless...eventually we have to consider whether there are\nanswers to the questions, whether the \"authority\" {say, the bible in this\ncase} has validity.  basically to question authority does not necessarily\nmean reject authority.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10567, "properties": {"category": "sci.electronics", "text": "From: cab@col.hp.com (Chris Best)\nSubject: Re: Need help with car stereo....\nOrganization: your service\nLines: 16\nNNTP-Posting-Host: hpctdkz.col.hp.com\n\nJust a shot here, but ya never know:\n\nI once bought a (REAL) cheap equalizer / power amp for my car tape player \nat one of those motel-room truckload sales, and it sounded great.  For a \nwhile, that is.  Then one channel quit entirely.  I opened it up, and the \namplifier chip for the bad channel had simply melted some of its solder \njoints attaching it to the PCB.  I soldered them back and it worked fine.  \nI just had to keep the volume a bit lower than I did before.  Probably \nlousy heat sinking.\n\nYou said \"a nice Alpine\" which I'm sure is a few orders of mag higher\nin quality than the P.O.S. I had.  But the point is - look inside before\nyou scrap it, since you OCCASIONALLY find something you can repair.\nMaybe even the same thing I found.\n\nGood luck!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10568, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Why DC-1 will be the way of the future.\nOrganization: Express Access Online Communications USA\nLines: 12\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr22.164801.7530@julian.uwo.ca> jdnicoll@prism.ccs.uwo.ca (James Davis Nicoll) writes:\n>\tHmmm. I seem to recall that the attraction of solid state record-\n>players and radios in the 1960s wasn't better performance but lower\n>per-unit cost than vacuum-tube systems.\n>\n\n\nI don't think so at first,  but solid state offered  better reliabity,\nid bet,  and any lower costs would be only after the processes really scaled up.\n\npat\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10569, "properties": {"category": "talk.politics.guns", "text": "From: joan@koala.berkeley.edu ()\nSubject: Re: guns in backcountry? no thanks\nOrganization: U.C. Berkeley\nLines: 40\nNNTP-Posting-Host: koala.berkeley.edu\n\nIn article <C5Lrpq.50o@idacom.hp.com> guy@idacom.hp.com (Guy M. Trotter) writes:\n>\n>Hi,\n>\n>In Canada, any gun that enters a National Park must be sealed (I think it's a\n>small metal tag that's placed over the trigger).  The net result of this is\n>that you _can't_ use a gun to protect yourself from bears (or psychos) in the\n>National Parks.  Instead, one has to be sensitive to the dangers and annoyances\n>of hiking in bear country, and take the appropriate precautions.\n>\n>I think this policy makes the users of the National Parks feel a little closer\n>to Nature, that they are a part of Nature and, as such, have to deal with\n>nature on it's own terms.\n>\n>Guy\n\nHello,\n\n\tI understand this philosophy.  The bears are a national\ntreasure, the area is their sanctuary and people who enter it\ndo so at their own risk.  It is better that that rare human be\nkilled by a bear than that bears be provoked or shot by unbear-savvy\nvisitors.  The bears aren't having a population explosion, humans\nare so it is better that a human be killed than endanger the bears.\nI don't agree with this philosopy, but I understand it.\n\n\tThe psychos are a bit different.  They are not a national\ntreasure but I suppose the decision has been made that to \"allow\"\nprovision for defense against them would also \"allow\" provision\nfor defense against bears.  Again, I suppose it has been decided\nthat it is better for the rare human to be killed by a psycho than\nto take a chance on threatening the bears.\n\n\tPersonally, I wouldn't go into an area where I would be\n\"managed\" so as to reduce my safety ..... but ... come to think\nof it I guess I live in a managed wilderness myself :-)\n\nJoan V  \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10570, "properties": {"category": "sci.med", "text": "From: billc@col.hp.com (Bill Claussen)\nSubject: Re: Should I be angry at this doctor?\nOrganization: HP Colorado Springs Division\nLines: 5\nDistribution: na\nNNTP-Posting-Host: hpcspe17.col.hp.com\n\n\nReport them to your local BBB (Better Business Bureau).\n\nBill Claussen\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.495+0000", "event": "documents", "entityId": 10571, "properties": {"category": "sci.med", "text": "From: krishnas@vax.oxford.ac.uk\nSubject: RE: HELP ME INJECT...\nOrganization: Oxford University VAX 6620\nLines: 12\n\nThe best way of self injection is to use the right size needle\nand choose the correct spot. For Streptomycin, usually given intra\nmuscularly, use a thin needle (23/24 guage) and select a spot on\nthe upper, outer thigh (no major nerves or blood vessels there). \nClean the area with antiseptic before injection, and after. Make\nsure to inject deeply (a different kind of pain is felt when the\nneedle enters the muscle - contrasted to the 'prick' when it \npierces the skin).\n\nPS: Try to go to a doctor. Self-treatment and self-injection should\nbe avoided as far as possible.\n \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10572, "properties": {"category": "rec.motorcycles", "text": "From: sprattli@azores.crd.ge.com (Rod Sprattling)\nSubject: Self-Insured (was: Should liability insurance be required?)\nNntp-Posting-Host: azores.crd.ge.com\nReply-To: sprattli@azores.crd.ge.com (Rod Sprattling)\nOrganization: GE Corp R&D Center, Schenectady NY\nLines: 27\n\nIn article <viking.733962547@ponderous.cc.iastate.edu>,\nviking@iastate.edu (Dan Sorenson) writes:\n|>\tI get annoyed at insurance.  Hence, I'm self-insured above\n|>liability.  Mandating that I play their game is silly if I've a better\n|>game to play and everybody is still financially secure.\n\nWhat's involved in getting bonded?  Anyone know if that's an option\nrecognized by NYS DMV?\n\nRod\n---\nRoderick Sprattling\t\t| No job too great, no time too small\nsprattli@azores.crd.ge.com\t| With feet to fire and back to wall.\n\n\n\n\n\n \n\n\n\n\n\n\n \n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10573, "properties": {"category": "alt.atheism", "text": " uunet!olivea!sgigate!sgiblab!adagio.panasonic.com!nntp-server.caltech.edu!keith\nSubject: Re: <Political Atheists?\nFrom: keith@cco.caltech.edu (Keith Allan Schneider)\nOrganization: California Institute of Technology, Pasadena\nNNTP-Posting-Host: punisher.caltech.edu\nLines: 15\n\nbobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>My personal objection is that I find capital punishment to be\n>cruel and unusual punishment under all circumstances.\n\nIt can be painless, so it isn't cruel.  And, it has occurred frequently\nsince the dawn of time, so it is hardly unusual.\n\n>I don't take issue with the numbers.  A single innocent life taken\n>is one too many.\n\nBut, innocents die due to many causes.  Why have you singled out\naccidental or false execution as the one to take issue with?\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10574, "properties": {"category": "sci.crypt", "text": "From: zrepachol@cc.curtin.edu.au (Paul Repacholi)\nSubject: Re: Clipper Chip. LONG follow up.\nLines: 478\nOrganization: Curtin University of Technology\n\nIn article <16695@rand.org>, jim@rand.org (Jim Gillogly) writes:\n> This document is in the anonymous ftp directory at NIST.  Looks to me\n> like the other shoe has dropped.\n> \n> \tJim Gillogly\n> \tTrewesday, 25 Astron S.R. 1993, 17:00\n> \n\nThanks for posting this and making it available. This post will be LONG, I will\ncomment on most of it, and am reluctantly leaving all of the original in place\nto provide context.\n\nPlease note that an alt. group has been set up for the Clipper stuff.\n\n> -------------------\n> \n> Note:  This file will also be available via anonymous file\n> transfer from csrc.ncsl.nist.gov in directory /pub/nistnews and\n> via the NIST Computer Security BBS at 301-948-5717.\n>      ---------------------------------------------------\n> \n>                          THE WHITE HOUSE\n> \n>                   Office of the Press Secretary\n> \n> _________________________________________________________________\n> \n> For Immediate Release                           April 16, 1993\n> \n> \n>                 STATEMENT BY THE PRESS SECRETARY\n> \n> \n> The President today announced a new initiative that will bring\n> the Federal Government together with industry in a voluntary\n                                                     ^^^^^^^^^\nHum, AT&T, VLSI and Mykotronx are 'industry'?\nWonder what happened to IBM, this should be right up their street.\nAnd a mandateed scheme is voluntary? Mr Orwell would love this.\n\n> program to improve the security and privacy of telephone\n                                                 ^^^^^^^^^\n> communications while meeting the legitimate needs of law\n> enforcement.\n\nTelephone encryption and scrambleing are years behind digital ones like RSA,\nIDEA, or even DES. The above, while literaly true, is a clasic straw-man claim\nin the context of non-real-time circuits such as E-mail and the like.\n\n> The initiative will involve the creation of new products to\n> accelerate the development and use of advanced and secure\n> telecommunications networks and wireless communications links.\n> \n\nI would modestly propose that a mandated use of ISDN would do more for commun-\nications than this lot.\n\n> For too long there has been little or no dialogue between our\n> private sector and the law enforcement community to resolve the\n> tension between economic vitality and the real challenges of\n> protecting Americans.  Rather than use technology to accommodate\n> the sometimes competing interests of economic growth, privacy and\n> law enforcement, previous policies have pitted government against\n> industry and the rights of privacy against law enforcement.\n> \n> Sophisticated encryption technology has been used for years to\n> protect electronic funds transfer.  It is now being used to\n> protect electronic mail and computer files.  While encryption\n\nNormmaly DES.\n\n> technology can help Americans protect business secrets and the\n                                        ^^^^^^^^^^^^^^^^\n> unauthorized release of personal information, it also can be used\n> by terrorists, drug dealers, and other criminals.\n\nNote the use of the word \"business\" in the above. The whole tenor of this\nrelease seems to be establishing a ground rule that only \"business\" use\nis legitimate for debate. If you want the nothings you drop in your wife's\near to remain secret and private, that is not even on the agenda for debate.\nNote that there is NO role for you to contain private info in this. The only\nreference is to information already in the hands of others. The 'unauthorized\nrelease' bit is also drawing a long bow. Most of these cases are by people who\nhave legitimate access abusing it, and revealing, or often selling the info.\nThese people are, of course, in this proposal, the people who will have the\nkeys.\n\nThe criminals also use lawers, courts, the CIA, white-house officials and pens\nto go about their business. When will they be outlawed as well? Yeah, several\nof them would be a better idea than CLipper!\n\nThem again, the protections of law and the courts have been seriously erroded\nover the last decade ofr so.\n\n> A state-of-the-art microcircuit called the \"Clipper Chip\" has\n> been developed by government engineers.  The chip represents a\n                    ^^^^^^^^^^^^^^^^^^^^\nNSA\n\n> new approach to encryption technology.\n\nYeah, this bit is VERY true.\n\n>....It can be used in new,\n> relatively inexpensive encryption devices that can be attached to\n> an ordinary telephone.  It scrambles telephone communications\n> using an encryption algorithm that is more powerful than many in\n> commercial use today.\n> \n\nNote the repeated mixing of telephone scrabeling and encryption. A demo\nof the above claim on an ordanary POTS would be a good nights entertainment\nI suspect. Note also the 'many'. not 'all', as the general tone implies.\n\n> This new technology will help companies protect proprietary\n                                ^^^^^^^^^\n> information, protect the privacy of personal phone conversations\n                                      ^^^^^^^^^^^^^^\n> and prevent unauthorized release of data transmitted\n> electronically.  At the same time this technology preserves the\n> ability of federal, state and local law enforcement agencies to\n> intercept lawfully the phone conversations of criminals. \n\nThe case record seems to indicate that what is needed is a brutal tightening\nof the current abuses. I have not heard, yet, of a case that was impeaded by\nthe use of secure encryption by the men in black. The other side, abuse by law\nenforcers is well documented, even by govt agencies. And the phone vs other coms\nis blurred yet again.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n> A \"key-escrow\" system will be established to ensure that the\n> \"Clipper Chip\" is used to protect the privacy of law-abiding\n> Americans.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n> A \"key-escrow\" system will be established to ensure that the\n> \"Clipper Chip\" is used to protect the privacy of law-abiding\n> Americans.\n\nLets run that line twice. Not **VERY** carefully what it says. The stated\npurpose of the key eschrow is to make the use of Clipper compulsory. Note the\nword \"ensure\". As to 'protect', or 'law-abiding', I will leave to you.\nSo to the person who asked if it included the outlawing of other encryptions,\nthe answer in this press release is, YES.\n\n> ...Each device containing the chip will have two unique\n> \"keys,\" numbers that will be needed by authorized government\n> agencies to decode messages encoded by the device.  When the\n> device is manufactured, the two keys will be deposited separately\n> in two \"key-escrow\" data bases that will be established by the\n> Attorney General.  Access to these keys will be limited to\n> government officials with legal authorization to conduct a\n> wiretap.\n\nJust as they only can wiretap now with a warrent. \n\n> The \"Clipper Chip\" technology provides law enforcement with no\n> new authorities to access the content of the private\n> conversations of Americans.\n\nJust makes sure that the illegal ones are preserved.\n\n> To demonstrate the effectiveness of this new technology, the\n> Attorney General will soon purchase several thousand of the new\n> devices.  In addition, respected experts from outside the\n> government will be offered access to the confidential details of\n> the algorithm to assess its capabilities and publicly report\n> their findings.\n\nWhere do you find many experts. Any ex KGB people looking for a contract? :-)\nAnd as a later posting asks, what of the STU-IIIs they already have. It will\nbe very interesting to see if the military and US embasies start to use it.\nAfter all, it is secure, isn't it. The govt will answer that point by its own\nactions.\n\n> The chip is an important step in addressing the problem of\n> encryption's dual-edge sword:  encryption helps to protect the\n> privacy of individuals and industry, but it also can shield\n> criminals and terrorists.  We need the \"Clipper Chip\" and other\n> approaches that can both provide law-abiding citizens with access\n> to the encryption they need and prevent criminals from using it\n> to hide their illegal activities.  In order to assess technology\n> trends and explore new approaches (like the key-escrow system),\n> the President has directed government agencies to develop a\n> comprehensive policy on encryption that accommodates:\n> \n>      --   the privacy of our citizens, including the need to\n>           employ voice or data encryption for business purposes;\n                                                ^^^^^^^^\n\nAgain, personal use seems to be a unaskable question.\n\n> \n>      --   the ability of authorized officials to access telephone\n>           calls and data, under proper court or other legal\n                                                  ^^^^^\n>           order, when necessary to protect our citizens;\n\nAh, so warrents are not always needed it seems.\n\n> \n>      --   the effective and timely use of the most modern\n>           technology to build the National Information\n>           Infrastructure needed to promote economic growth and\n>           the competitiveness of American industry in the global\n>           marketplace; and \n> \n>      --   the need of U.S. companies to manufacture and export\n>           high technology products.\n\nThe ITARs seem to slightly impeed this.\n\n> The President has directed early and frequent consultations with\n> affected industries, the Congress and groups that advocate the\n> privacy rights of individuals as policy options are developed.\n> The Administration is committed to working with the private\n> sector to spur the development of a National Information\n> Infrastructure which will use new telecommunications and computer\n> technologies to give Americans unprecedented access to\n> information.  This infrastructure of high-speed networks\n> (\"information superhighways\") will transmit video, images, HDTV\n> programming, and huge data files as easily as today's telephone\n> system transmits voice.\n\nNote that all this wonderfull stuff will be in secret. Only the 'proper people'\nwill be able to express an opinion, hence only the desired result will emerge.\n\n> Since encryption technology will play an increasingly important\n> role in that infrastructure, the Federal Government must act\n> quickly to develop consistent, comprehensive policies regarding\n> its use.  The Administration is committed to policies that\n> protect all Americans' right to privacy while also protecting\n> them from those who break the law.\n\nEncryption and codes have been around for millenia. They are generaly in\nequilibrium with the technology of the time. The systematic study of cyphers\nhas resulted in a swing in favor of the encrypter, AT THE MOMENT. I have no\ndoubt that the factoring problem will fall in time. Probably fofr practical\npurposes by the middle of the next century.\n\n> Further information is provided in an accompanying fact sheet. \n> The provisions of the President's directive to acquire the new\n> encryption technology are also available.  \n> \n> For additional details, call Mat Heyman, National Institute of\n> Standards and Technology, (301) 975-2758.\n> \n> ---------------------------------\n> \n> \n> QUESTIONS AND ANSWERS ABOUT THE CLINTON ADMINISTRATION'S\n> TELECOMMUNICATIONS INITIATIVE\n> \n> \n> \n> \n> Q:   Does this approach expand the authority of government\n>      agencies to listen in on phone conversations?\n> \n> A:   No.  \"Clipper Chip\" technology provides law enforcement with\n>      no new authorities to access the content of the private\n>      conversations of Americans.\n> \n> Q:   Suppose a law enforcement agency is conducting a wiretap on\n>      a drug smuggling ring and intercepts a conversation\n>      encrypted using the device.  What would they have to do to\n>      decipher the message?\n> \n> A:   They would have to obtain legal authorization, normally a\n>      court order, to do the wiretap in the first place.  They\n>      would then present documentation of this authorization to\n>      the two entities responsible for safeguarding the keys and\n>      obtain the keys for the device being used by the drug\n>      smugglers.  The key is split into two parts, which are\n>      stored separately in order to ensure the security of the key\n>      escrow system.\n> \n> Q:   Who will run the key-escrow data banks?\n> \n> A:   The two key-escrow data banks will be run by two independent\n>      entities.  At this point, the Department of Justice and the\n>      Administration have yet to determine which agencies will\n>      oversee the key-escrow data banks.\n\nIt is a little hard to critisise a non-proposal.\n\n> Q:   How strong is the security in the device?  How can I be sure\n>      how strong the security is?  \n> \n> A:   This system is more secure than many other voice encryption\n>      systems readily available today.\n\nNote we drop back to 'phone-mode' again. If this is a true answer, it can be\nrephrased as \" It sucks big time. Anyone who can drive the crypt work-bench\nwill use it for light amusement before breakfast.\"\n\n> ...   While the algorithm will\n>      remain classified to protect the security of the key escrow\n>      system,\n\nThis link between the security of the key-eschrow, and the actual algorithm is \na real winner. Given that I have 2 secret 40 bit numbers, could someone please\nexplain how the details of an encryption algorithm will reveal them?\n\n> ...  we are willing to invite an independent panel of\n>      cryptography experts to evaluate the algorithm to assure all\n>      potential users that there are no unrecognized\n>      vulnerabilities.\n\nJust make sure you read the CVs REAL carfully, OK.\n\n> \n> Q:   Whose decision was it to propose this product?\n> \n> A:   The National Security Council, the Justice Department, the\n>      Commerce Department, and other key agencies were involved in\n>      this decision.  This approach has been endorsed by the\n>      President, the Vice President, and appropriate Cabinet\n>      officials.\n\nQuick, with out looking back, What name is missing from that list?\n\n> Q:   Who was consulted?  The Congress?  Industry?\n> \n> A:   We have on-going discussions with Congress and industry on\n>      encryption issues, and expect those discussions to intensify\n>      as we carry out our review of encryption policy.  We have\n>      briefed members of Congress and industry leaders on the\n>      decisions related to this initiative.\n\nThe people who agree with us and who think there is a buck in it for them.\n\n> Q:   Will the government provide the hardware to manufacturers?\n> \n> A:   The government designed and developed the key access\n>      encryption microcircuits, but it is not providing the\n>      microcircuits to product manufacturers.  Product\n>      manufacturers can acquire the microcircuits from the chip\n>      manufacturer that produces them.\n\nThe reverse engineering provisions of the 'Mask-work' act could be relevent\nhere.\n\n> Q:   Who provides the \"Clipper Chip\"?\n> \n> A:   Mykotronx programs it at their facility in Torrance,\n>      California, and will sell the chip to encryption device\n>      manufacturers.  The programming function could be licensed\n>      to other vendors in the future.\n> \n> Q:   How do I buy one of these encryption devices? \n> \n> A:   We expect several manufacturers to consider incorporating\n>      the \"Clipper Chip\" into their devices.\n\nYou don't. Not unless you are one of the 'right people'.\n\n> Q:   If the Administration were unable to find a technological\n>      solution like the one proposed, would the Administration be\n>      willing to use legal remedies to restrict access to more\n>      powerful encryption devices?\n> \n> A:   This is a fundamental policy question which will be\n>      considered during the broad policy review.  The key escrow\n\nThey missed the word secret here. He needs a grammar lesson too.\n\n>      mechanism will provide Americans with an encryption product\n>      that is more secure, more convenient, and less expensive\n>      than others readily available today, but it is just one\n>      piece of what must be the comprehensive approach to\n>      encryption technology, which the Administration is\n>      developing.\n\nI would say \"less secure, less conveniant, more expensive ( PGP is free ),\nless available, and more prone to being comprimised\"\nProofs to the contarary will be welcome. Note PROOF.\n\n>      The Administration is not saying, \"since encryption\n>      threatens the public safety and effective law enforcement,\n>      we will prohibit it outright\" (as some countries have\n>      effectively done); nor is the U.S. saying that \"every\n>      American, as a matter of right, is entitled to an\n>      unbreakable commercial encryption product.\"\n\nThey don't seem to be saying anything that makes much sense. And this proposal\nDOES prohibit it except in a very limited way. And, this is the one explicit\nreference to personal rights. It is a denial. And yes, I don't think that the\nMexicans, Brazilians, and Canucks are included in Clinton et als magnanamous\ngesture.\n\n> ...  There is a\n>      false \"tension\" created in the assessment that this issue is\n>      an \"either-or\" proposition.  Rather, both concerns can be,\n>      and in fact are, harmoniously balanced through a reasoned,\n>      balanced approach such as is proposed with the \"Clipper\n>      Chip\" and similar encryption techniques.\n\nThe 'false tension' is false. The balance is between two repugnant points. The\nRIGHT to privacy is hand-waved to non-existance by putting it behind the \"false\nassessment\". It is assumed that the removal of the right to take what ever steps\nYOU deem suitable to protect YOUR privacy is non negotiable, hence is defined\nin the govenment language to be non-existant. If you don't agree, you must be a\ncriminal, as only criminals don't agree with out laws. Also note the non-\nquestion. \"If what is here was not possible...\"\n\n> Q:   What does this decision indicate about how the Clinton\n>      Administration's policy toward encryption will differ from\n>      that of the Bush Administration?  \n> \n> A:   It indicates that we understand the importance of encryption\n>      technology in telecommunications and computing and are\n>      committed to working with industry and public-interest\n>      groups to find innovative ways to protect Americans'\n>      privacy, help businesses to compete, and ensure that law\n>      enforcement agencies have the tools they need to fight crime\n>      and terrorism.\n\nIt indicates we know that Bush dropped the ball in squashing that nasty < insert\nsuitable retoric > and will stamp out this disorderly, unruley outbreak of\nfreedom and ultra-national sentiment.\n\n> Q:   Will the devices be exportable?  Will other devices that use\n>      the government hardware?\n> \n> A:   Voice encryption devices are subject to export control\n>      requirements.  Case-by-case review for each export is\n>      required to ensure appropriate use of these devices.  The\n>      same is true for other encryption devices.  One of the\n>      attractions of this technology is the protection it can give\n>      to U.S. companies operating at home and abroad.  With this\n>      in mind, we expect export licenses will be granted on a\n>      case-by-case basis for U.S. companies seeking to use these\n>      devices to secure their own communications abroad.  We plan\n>      to review the possibility of permitting wider exportability\n>      of these products.\n> \n\nThis one is a real giggle. In Australia or France, they will have to reveal the\nkeys, and the algorithm. Don't think it's at the top of my list of things I must\nhave, so the restrictions will protect me from saleks trying to sell me a bill\nof crock.\n\nAny for any others using it, they must be nuts!\n\nGood luck folks.\n\n~Paul\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10575, "properties": {"category": "sci.crypt", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nLines: 53\n\nIn article <strnlghtC5LGFI.JqA@netcom.com> strnlght@netcom.com (David Sternlight) writes:\n>\n>Though some may argue about the nose of the camel, it's worth noting that\n>the government proposal is limited to scrambled telephony. If it is only\n>used for that purpose, and does not extend to electronic mail or file\n>encryption, then it IS an improvement over the current mass-produced\n>standard civilian technology which, with a few exceptions, is limited to\n>easy-to-break inverters.\n>\n>Note that the big issue for the feds is the continued ability to wiretap.\n>Before we go off the deep end with long discusions about secure crypto for\n>e-mail and files, let's focus on this.\n>\n>One question that was not asked in the release is whether this proposal is\n>limited to telephony, or if the government intends to expand it.\n>\n>Though I share many of the concerns expressed by some, I find the proposal\n>less threatening than many others, since right now most Americans have no\n>secure telephony, and any jerk with a pair of clip leads and a \"goat\" can\n>eavesdrop. This would also plug up the security hole in cellular and\n>cordless phones.\n>\n>-------\n>\n>Reading between the lines, I infer that the system is highly secure\n>without access to the keys. This would meet the needs of U.S. businesses\n>confronted by rich and powerful adversaries, including French and Japanese\n>security services and rich Japanese companies. It allows the NSA to make\n>available some of its better stuff while protecting law enforcement needs.\n>\n>Most legitimate U.S. corporations trust the NSA, and would be delighted to\n>have a high-security system certified by them, even at the price of\n>depositing keys in escrow. I see no difficulty in creating a reliable\n>escrow. Corporations entrust their secrets to attorneys every day of the\n>week, and that system has worked pretty well.\n>\n>From my point of view this is a fair starting point. There are concerns that\n>need to be addressed, including the reliability of the escrows. But in\n>return we get access to high-security crypto. Many have suggested that DES\n>and other systems may be breakable by the NSA and hence others similarly\n>skilled and endowed. There is at least a good possibility (which should be\n>checked) that the proposed system is not so breakable. It doesn't have to\n>be, nor does it have to have trapdoors, if the government can get the keys\n>pursuant to a legitimate court order. Thus they can protect legitimate\n>communications against economic adversaries, while still being able to\n>eavesdrop on crooks pursuant to a court order.\n>\n\tLet me ask you this.  Would you trust Richard Nixon with your\ncrypto keys?  I wouldn't.\n\n\t\t\t\t\t\tDoug Holland\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10576, "properties": {"category": "soc.religion.christian", "text": "From: wjhovi01@ulkyvx.louisville.edu\nSubject: Re: tuff to be a Christian?\nOrganization: University of Louisville\nLines: 24\n\nSomeone writing anonymously asks:\n\n> Would you have become a Christian if you had not\n> been indoctrinated by your parents? You probably never learned about\n> any other religion to make a comparative study. And therefore I claim\n> you are brain washed.\n\nI *did* become a Christian without having been indoctrinated by my parents, and\nhaving studied Buddhism fairly carefully and other religions to a lesser\ndegree.  I made a decision to accept the truth-claims of Christianity after\nhaving given it a lot of thought.  (I have to point out that the process was not\npurely a cold, rational one: there was a powerful experiential element as well.\nAlso, my Calvinist should rest assured that I don't lay any of the\nresponsibility for the outcome [my conversion] on anyone but God.)\n\nIt took me years and years for this all to happen, because I had many of the\nobjections that this poster puts forward.  I grew up in the shadow of [generic\nauthoritarian conservative denomination], and I *knew* that that wasn't a way\nof life that I could adopt.  But I gradually learned not to tar all of\nChristianity with the same brush, and realized quite suddenly one cold winter\nnight that I accepted what I had heretofore rejected.  I am quite certain that\nI was not \"brain-washed\".\n\nbill hovingh\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10577, "properties": {"category": "soc.religion.christian", "text": "From: tom_milligan@rainbow.mentorg.com\nSubject: Anyone with L'Abri Experiences\nOrganization: Mentor Graphics Corporation\nLines: 6\n\nI am curious if anyone in net-land has spent any time at any of the L'Abri\nhouses throughout the world and what the experience was like, how it affected\nyou, etc.  Especially interesting would be experiences at the original L'Abri\nin Switzerland and personal interactions with Francis and/or Edith Schaeffer.\n\nTom Milligan\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10578, "properties": {"category": "rec.sport.baseball", "text": "From: hagins@avlin8.us.dg.com (Jody Hagins)\nSubject: O's lose openr at home to Rangers\nReply-To: hagins@avlin8.us.dg.com\nOrganization: Data General Corporation, Linthicum, MD\nLines: 11\n\nSutcliffe gives up 3 HRs (Gonzales 1, Palmer 2) and Mills gives up\n1 HR (Gonzales) to lose 7-4.  Sutcliffe\n\nTexas     7 10  0 Lefferts 1-0\nBaltimore 4  9  0 Sutcliffe 0-1\n\n-- \nJody Hagins -- hagins@avlin8.us.dg.com\nData General Corporation, Linthicum, MD\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10579, "properties": {"category": "comp.graphics", "text": "From: louis@loa.citilille.fr (Louis Gonzalez 20-43-41-19)\nSubject: SPHINX: Satellite Image Processing under X11\nOrganization: Universite des Sciences et Technologie de LILLE, France\nLines: 106\nNNTP-Posting-Host: loasil.citilille.fr\nX-Newsreader: TIN [version 1.1 PL8]\n\n\n****************************   SPHINX   ***************************\n\n\tSphinx is a user-friendly, state-of-the-art image processing\nand analysis package that runs across a spectrum of high performance \ncomputer platforms operating UNIX and the X-Window System.\n\n\tIt was created to meet to the daily research needs of scientists \nconducting climate investigations using satellite data and remote\nsensing techniques. \n\n\t\t   Intuitive Graphic Interface\n\n\tSphinx features an interactive interface with pop-up menus and \npoint-and-click dialog boxes which makes image processing and\nanalysis simple and fast.\n\tThis accessible menuing enables you to build attractive image \nlayouts quickly while also providing you the flexibility of returning\nto the main menu to conduct other image analysis and processing operations.\n\n\t\t    Image Format Compatibility\n\n\tUsing smart read/write functions, Sphinx allows you to easily open\nand save image files in a variety of formats using bit, integer or real\ndata values.  Sphinx also reads and writes the common TIFF and GIF formats\nas well as compresses and decompresses image formats to save disk space.\n\n\t\t    Image Analysis & Processing\n\n\tFor image and pixel analysis, the Sphinx package includes an\nassortment of processing tools that perform useful statistical and \nmathematical filtering operations, such as Fourier transforms, convolution \nproduct or principal component analyses.\nAn interactive interpreter for both algebraic equations and images allows\nthe user to manipulate and combine individual data channels interactively.\nStandard FORTRAN notation is used for formula entry and for trig\nonometric and transcendental functions.\n\n\t\t    Satellite Spectra & Orbit Analysis\n\n\tSphinx possesses functions to simulate satellite signal sensitivity\nfor various meteorological satellites (e.g., GOES, METEOSAT, NOAA, Spot etc.).\nThe simulations are conducted for a selection of standard atmospheric and\nsurface conditions and instrument spectral bands.\nA geometry model computes the solar zenith angles, warping, orbit simulation,\nand 3-D image projection.\n\n\t\t    Easy External Program Interfacing\n\n\tSphinx allows users the flexibility to integrate externally\ndeveloped software algorithms for processing and converting satellite\nobservations.  Sphinx exports and imports image files and image parameters\nto external programs using special interface functions.\n\n\t\t    Quick Quality Presentation\n\n\tSphinx rapidly displays, manipulates, and enhances high-resolution\nmultispectral images and color tables.  Using six 8-bit 1024x1024 image\nplanes and one graphics plane, the package conveniently combines color images,\ngraphics and text to generate sharp digital images for articles and reports.\nSphinx's 2-D and 3-D graphics editor provides complete flexibility for modifying\nand integrating vector graphics and analysis plots with images, such as \nhistograms and radial graphs.  The package supplies color and gray scale\noutput for standard inkjet and laser printers.\n\tOther Capabilities Sphinx also performs image animation, external \ngraphics importing, mosaic fitting... what else?\n\n\t\t    Software Support & Development\n\n\t Sphinx was developed at the Laboratoire d'Optique Atmospherique (LOA)\n of the Universite de Lille, France.\nThe package has received critical feedback and support from scientists at\nthe French national laboratory, Centre National de Recherche Scientifique (CNRS),\nand the French space agency, Centre National d'Etudes Spatiales (CNES).\nAt LOA, Sphinx undergoes continued refinement and development to meet changing\nresearch needs and advances in computer technology.  The package, which features\non-line help, is supported by an Internet address\n\n sphinx@loasil.citilille.fr through which questions can be answered and\n version updates provided without delay.\n\n\t\t    Performance Tested\n\n \tCNES has selected Sphinx to analyze and process the satellite data \ncollected during the upcoming ADEOS/POLDER satellite mission.  Today,\nthe Sphinx package is in use at the NASA - Goddard Space Flight Center\nand is widely used in many French laboratories, including\nthe Centre de Recherche en Physique de l'Environnement, Ecole Normale Superieure ,\nLaboratoire d' Etudes et de Recherches en Teledetection Spatiale,  Laboratoire \nde Meteorologie Dynamique.\n\n\n   A TEST VERSION OF SPHINX IS AVAILABLE AT loasil.citilille.fr\n   (134.206.50.4) anonymous (bin : cd SPHINX : get ALL_SPHINX.tar.Z)\n\n   IN THE TEST VERSION THE OUTPUT FILES ARE DISABLE. HOWEVER THE\n   VISUALISATION AND GRAPHIC FUNCTIONS ARE AVAILABLE. THIS IS\n   SUFFICIENT TO WORK WITH.\n\n   IF YOU ARE INTERESTED IN KEEPING \"SPHINX\", SEND US YOUR EMAIL\n   AND YOU WILL RECEIVE NEWS ABOUT THE PACKAGE EVOLUTION.\n\n   THE SOFTWARE IS CHANGING WITH USER SUGGESTIONS WE WILL\n   APPRECIATE YOUR COMMENTS.\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10580, "properties": {"category": "rec.autos", "text": "From: gough@cbnewsc.cb.att.com (brian.w.gough)\nSubject: 4X4 On/Off-Road Rally - Joliet Il.\nOrganization: AT&T\nDistribution: chi\nKeywords: April 25th\nLines: 97\n\n\n\n************************************************************\n*                                                          *\n*      ATTENTION ALL FOUR WHEEL OFF ROAD ENTHUSIASTS       *\n*                                                          *\n*         On/Off Road Rally - Sunday, April 25th           *\n*                   Joliet Illinois                        *\n*                                                          *\n************************************************************\n\nThe Event:\n\n* The Joliet Mud Turtles, a Chicago land four wheel drive club, is\n  sponsoring an On/Off Road Rally Sunday April 25th.\n\n* For those who ask \"What is an on/off road rally?\", well...\n\n  An On/Off Road Rally consists of the following:\n\n   1. An on-the-road rally where participants are given a set of\n      directions and clues guiding participates around the \n      Joliet/Plainfield area.  The object is to navigate a course\n      based on a set of directions and clues.  Participants will\n      be given a set of questions pertaining to the course which\n      they must answer along the way.  Points are awarded for the\n      number of correct answers given.  Directions will ultimately \n      lead to an off-road area where a four-wheel drive course is \n      set-up.  At various locations in the on-road course, check-points\n      will be set-up where participants will be asked other questions\n      or requested to perform some activity (e.g. tire roll, truck tow,\n      basketball free-throw, etc.) for additional points.\n\n   2. An optional off-road, four wheel drive course where participants\n      will navigate off-road trails, mud bogs and/or hill climbs.\n      Points are awarded for successfully navigating off-road obstacles\n      without getting stuck.  If you should get stuck (which is half\n      the fun anyway), there will be assistance to get your vehicle\n      unstuck so you can try it again.  The off-road course will\n      divided up based on tire size, so stock 4x4s as well as modified\n      4x4s can run the course.\n     \n  At the end of the rally, trophies will be awarded to top scoring\n  participants.  Door prizes and dash plaques will also be given out.\n  Food and drinks also available at the conclusion.\n\n* This is an organized activity sponsored by the Joliet Mud Turtles\n  so safety and fun is our foremost concern.  All 4x4s must be\n  street legal and have solid tow points for the off-road section\n  of the course - we don't want to have to separate someone's bumper\n  from their vehicle :) .\n\nThe Particulars:\n\n* Rally begins at Instant Replay, 2409 Plainfield Road, Joliet Il.\n    (815)436-9382   (see map below)\n* Registration is between 9 and 10:30 a.m.  First truck out at 10:00 a.m.\n* Rally date is Sunday April 25th, rain or shine\n* There is an entry fee of $10 per truck.\n* You must have a co-driver (passengers allowed)\n* A valid drivers license is required\n* Suggested equipment:\n      CB Radio\n      Compass\n      Tow Strap and Clevis\n      Clip Board and Pencil\n* No alcohol during rally\n* For more information contact\n   Gary (815)727-3415\n   Tom  (815)485-9346\n   Norm Jr. (815)741-4853\n   Brian (708)979-6083\n\n\n                                            __\n              Instant                      /\\\n      |       Replay |             |         \\\n      | 1.9mi  ___   | 1.2 mi      |        North\n      |<----->|   | <------------> |\n Rt30 |       |___|  |             |\n------|---------------------------------------------\n Exit |              |             |         ^\n 257  |              |             |         |\n      |              |             |         |\n      |Rt55          |Canton       |Larkin   |\n      |              |Farm         |Ave      |\n      |              |Rd.          |         | 3 mi.\n      |              |             |         |\n      |              |             |         |\n      |                            |         |\n      |                            |         |\n      |       Rt80                 |         v\n----------------------------------------------------\n      |                            | Exit\n      |                            | 130B\n      |                            |\n   \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10581, "properties": {"category": "sci.med", "text": "From: paulson@tab00.larc.nasa.gov (Sharon Paulson)\nSubject: Re: food-related seizures?\nOrganization: NASA Langley Research Center, Hampton VA, USA\nLines: 52\n\t<1993Apr17.184305.18758@spdcc.com>\nNNTP-Posting-Host: cmb00.larc.nasa.gov\nIn-reply-to: dyer@spdcc.com's message of Sat, 17 Apr 1993 18:43:05 GMT\n\nIn article <1993Apr17.184305.18758@spdcc.com> dyer@spdcc.com (Steve Dyer) writes:\n\n   Newsgroups: sci.med\n   Path: news.larc.nasa.gov!saimiri.primate.wisc.edu!zaphod.mps.ohio-state.edu!uwm.edu!cs.utexas.edu!uunet!think.com!hsdndev!spdcc!dyer\n   From: dyer@spdcc.com (Steve Dyer)\n   Organization: S.P. Dyer Computer Consulting, Cambridge MA\n   References: <20996.3049.uupcb@factory.com> <79727@cup.portal.com>\n   Date: Sat, 17 Apr 1993 18:43:05 GMT\n   Lines: 18\n\n   In article <79727@cup.portal.com> mmm@cup.portal.com (Mark Robert Thorson) writes:\n   >I remember hearing a few years back about a new therapy for hyperactivity\n   >which involved aggressively eliminating artificial coloring and flavoring\n   >from the diet.  The theory -- which was backed up by interesting anecdotal\n   >results -- is that certain people are just way more sensitive to these\n   >chemicals than other people.  I don't remember any connection being made\n   >with seizures, but it certainly couldn't hurt to try an all-natural diet.\n\n   Yeah, the \"Feingold Diet\" is a load of crap.  Children diagnosed with ADD\n   who are placed on this diet show no improvement in their intellectual and\n   social skills, which in fact continue to decline.  Of course, the parents\n   who are enthusiastic about this approach lap it up at the expense of their\n   children's development.  So much for the value of \"interesting anecdotal\n   results\".  People will believe anything if they want to.\n\n   -- \n   Steve Dyer\n   dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n\n\nThanks for all the interest in this problem of mine. I don't think it\nis a reaction to sugar or junk food per se since Kathryn has never shown\nany signs of hyperactivity or changes in behavior in response to food.\nShe has always been very calm and dare I say, a neat, smart kid.\n\nThe fact that this happened while eating two sugar coated cereals made\nby Kellog's makes me think she might be having an allergic reaction to\nsomething in the coating or the cereals.  Of the four of us in our\nimmediate family, Kathryn shows the least signs of the hay fever, running\nnose, itchy eyes, etc. but we have a lot of allergies in our family history\nincluding some weird food allergies - nuts, mushrooms. \n\nAnyway, our next trip is to an endocrinologist to check out the body\nchemistry.  But so far, no more sugar coated cereals and no more seizures\neither.  Every day that goes by without one makes me heave a sigh of\nrelief.  Thanks again.\n\n--\nSharon Paulson                      s.s.paulson@larc.nasa.gov\nNASA Langley Research Center\nBldg. 1192D, Mailstop 156           Work: (804) 864-2241\nHampton, Virginia.  23681           Home: (804) 596-2362\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10582, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Lincoln & slavery (Re: Top Ten Tricks You Can Play on the American Voter)\nArticle-I.D.: optilink.15236\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 54\n\nIn article <1993Apr2.055109.5833@rigel.econ.uga.edu>, depken@rigel.econ.uga.edu (Craig Depken) writes:\n> In article <1993Mar31.224355.21442@isc-br.isc-br.com> steveh@thor.isc-br.com (Steve Hendricks) writes:\n# #The argument that \"slavery was a dying institution\" was often made by\n# \t\t\t\t\t\t     ^^^\n# \t\t\t\t\t\t     (IS)\n# \n# #historians, mainly Southerners, who sought to divert attention from the \n# #institution as the central issue of the Civil War.  In fact, however,\n# #the argument is specious, at best.  More recent scholarship from the \n# #last 20-30 years demonstrates rather conclusively that the cotton/sugar/\n# #tobacco economy and its reliance on slavery was increasingly dominant in \n# #the South prior to the Civil War.\n# \n# This is because the South did not receive the massive momentum of capital\n#  intensive growth that the Northern states did. Compare the Northern\n#  agricultural system with the Southern and you will see a major difference \n#  in the capital to labor intensity.\n\nCapital and labor are one and the same in a slave economy.  Except that\ncapital doesn't reproduce quite as readily as slaves did.\n\nSlavery was a dying institution before the cotton gin, yes, but not\nin 1850.\n\n# #It is true that cotton suffered from price depression in the 1840's -\n# #the period used to claim that slavery would not have lasted in the \n# #South.  \n# \n# That is not the argument that I have heard. It would not have lasted because\n#  the growth in the North would not have been sustained for much longer without\n#  spilling over to the Southern states, i.e. Northern industry would have \n#  migrated capital to the Southern states, and with that would have come \n#  immigrant labor to the ports of the South, e.g. Charleston, Savannah, Mobile,\n#  New Orleans, etc. This would have put the breaks on the slave market and\n#  slavery would have been out-moded by the capital intensity of competing \n#  agriculturalists. Those that insisted on keeping slaves because of their\n#  \"Cruel Hearts and Hatred for Black People\" would have been driven out of\n#  business. Simple capital to labor ratio...read Michael Parkin _Microeconomics_\n#  2nd edition, and any other basic economics book.\n\nThis assumes that the slave holder dominance over state governments\nwould not have caused the passage of laws to keep out capital from the\nNorth.  Since slave holders were prepared to do almost anything else\nto destroy free markets in order to maintain slavery, I do not doubt\nthat they would have passed laws to cripple any serious competitive\nthreat.  Thomas Sowell's _Market and Minorities_ argues that the\nmaintenance of slavery, and the costs it imposed on state and local\ngovernments, discouraged not only capital formation, but also outside\ncapital investment in the Southern states.\n\n# \tCraig A. Depken, II\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10583, "properties": {"category": "sci.med", "text": "From: noring@netcom.com (Jon Noring)\nSubject: Re: Great Post! (was Re: Candida (yeast) Bloom...) (VERY LONG)\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 38\n\nIn article turpin@cs.utexas.edu (Russell Turpin) writes:\n\n>I hope Gordon Banks did not mean to imply that notions such as\n>hard-to-see candida infections causing various problems should not\n>be investigated.  Many researchers have made breakthroughs by \n>figuring out how to investigate things that were previously thought\n>\"virtually impossible to test for.\"\n>\n>Indeed, I would be surprised if \"candida overbloom\" were such a\n>phenomena.  I would think that candida would produce signature\n>byproducts whose measure would then set a lower bound on the \n>extent of recent infection.  I realize this might get quite \n>tricky and difficult, probably expensive, and likely inconvenient\n>or uncomfortable to the subjects, but that is not the same as \n>\"virtually impossible.\"\n\nI recall reading in the recently revised edition of the \"Yeast Connection\"\nthat there is indeed work by researchers to do this.  Of course, they are\nworking on the theory that candida overbloom with penetration into mucus\nmembrane tissue with associated \"mild\" inflammatory response can and does\noccur in a large number of people.  If you reject this \"yeast hypothesis\",\nthen I'd guess you'd view this research as one more wasteful and quixotic\nendeavor.  Stay tuned.\n\nJon Noring\n\n-- \n\nCharter Member --->>>  INFJ Club.\n\nIf you're dying to know what INFJ means, be brave, e-mail me, I'll send info.\n=============================================================================\n| Jon Noring          | noring@netcom.com        |                          |\n| JKN International   | IP    : 192.100.81.100   | FRED'S GOURMET CHOCOLATE |\n| 1312 Carlton Place  | Phone : (510) 294-8153   | CHIPS - World's Best!    |\n| Livermore, CA 94550 | V-Mail: (510) 417-4101   |                          |\n=============================================================================\nWho are you?  Read alt.psychology.personality!  That's where the action is.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10584, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Would \"clipper\" make a good cover for other encryption method?\nOrganization: DSI/USCRPAC\nLines: 35\n\nIn article <EACHUS.93Apr20140314@spectre.mitre.org> eachus@spectre.mitre.org\n(Robert I. Eachus) writes:\n>\n>  But, if you are making custom equipment in any case, why not just\n>roll your own Clipper implementation and report the wrong keys to the\n>Escrow agency?  (Tells us who is going to be in the chip business if\n>this thing goes through--NSA, and those with something to hide from\n>NSA.)\n\nThis won't work if there is a checksum on the keys you don't know about.\nNeither will registering a clipper chip and then substituting a\n\"counterfeit\" one if the serial number contains a checksum.\n\nChances are the government has thought of this, and \"just anyone\" won't be\npermitted access to enough of the internals to make a \"fake\" clipper chip.\nChances are that the government has classified some details of the internals\nat a very high level, and manufacturers are required to observe security\nsafeguards and clearances corresponding to that level.\n\nWhile not perfect, it would prevent Joe Hacker from rolling his own spoofing\nchip, since not many counterfeiters can survive a background investigation.\nSome of the more notorious self-styled dissidents here, for example, have\nalready got their heads so high above the tall grass that they'd have little\nchance of getting a clearance.\n\nOf course it's not impossible that someone do this, but probably extremely\ndifficult. Chances are there will also be very heavy criminal penalties for\nphony clipper chips, on some national security/classified info grounds or\nother, thus making the game not worth the candle.\n\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10585, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: Jesse\nSubject: Is ms-windows a \"mature\" OS?\nOriginator: cyen@ponder.csci.unt.edu\nKeywords: ms-windows\nOrganization: Computer Science Dept. of UNT\nDistribution: usa\nLines: 39\n\nhi,\n  Have you used Mac system 6.x or 7.x? If the answer is positive, you would\nknow if ms-windows is a \"mature\" OS.\n\n  Days ago people doubted that ms-windows is not a real OS. I can see why\nthey have such question. Ms-windows confuses many people. Microsoft\nsimulated Mac, but it did a lousy job.  For example:\n\n(1) You can not create hierarchy groups. There is no way to create a group\n    in a group. (If you know how, please tell me.)\n(2) Too many system parameters to take care of. \n(3) uncomplete documentation. It's not easy to find the reason why causes\n    an unpredictable error.\n(4) Group deleting/file deleting\n    After deleting a group, users have to use file manager to delete files.\n    But if users forget to delete some related files, the disk will be full\n    of nonsense files.\n(5) share problem\n    Once you create two windows doing compilation and editing in some\n    language (w/o good editor), there will be a sharing problem. You just\n    can not open or save the program if it is loaded. It makes sense to\n    prevent from saving, but not opening.\n\nMicrosoft try to compromise between DOS and windows, but they just make \nms-windows a graphical DOS with capacity doing mutiple DOS jobs; \nthe worst thing is they complicate the environment. The orginal purpose\nof ms-windows should be to simplify the environment, and make PC easier \nto use.\n  \n  It's by no means easy to satisfy everybody, but if Microsoft want to\nkeep their reputations, they should evaluate the user interface more\ncarefully before products distribute.\n\n  No flame, please.\n\nJesse\ne-mail:cyen@cs.unt.edu/ic43@sol.acs.unt.edu\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10586, "properties": {"category": "comp.windows.x", "text": "From: black@westford.ccur.com (Samuel Black)\nSubject: Re: Realtime X-tensions\nOrganization: Concurrent Computer Corp.  Westford, MA\nLines: 19\n\n>\tI am looking for information on any work that deals with real-time\n>\tsupport in X-windows????!!\n>\tWould be happy if you could provide any pointers or information\n\nConcurrent has a product called RealTimeX (tm) that is a set of real-time\nextensions to the X Window System.  RealTimeX is currently supported on\nthe Concurrent Series 7000 and Series 8000 with the GA5000 graphics\naccelerator.  If you need/want more info, let me know.\n\n\t\t- sam black\n\n-------------------------------------------------------------------------------\nOnce you remove the absurdity from human existence, there isn't much left.\n\t\t     __________\n\t\t    /  _______/__\n\t\t   /__/______/  /\tblack@westford.ccur.com\n\t  Concurrent /_________/\n\tComputer Corporation\n-------------------------------------------------------------------------------\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10587, "properties": {"category": "talk.politics.guns", "text": "From: hambidge@bms.com\nSubject: Re: Blast them next time\nReply-To: hambidge@bms.com\nOrganization: Bristol-Myers Squibb\nDistribution: usa\nLines: 31\n\nIn article <1r19l9$7dv@usenet.INS.CWRU.Edu>, oldham@ces.cwru.edu (Daniel Oldham) writes:\n>What happened in Waco is not the fault of the BATF. If they would of\n>had the proper equipment and personal then they could of captured the\n>compound on the initial assault and none of this would of happened.\n>\n>The BATF needs more people, better weapons and more armored\n>transports. When they meet hostile fire they should be able to use\n>more force instead of retreating to a stand off. If you are going to\n>do a job then do it right. The BATF is there to protect us and they\n>must have the proper equipment and people to do the job.\n>\n>With the WoD and the increased crime in the streets the BATF is needed\n>more now then ever. If they blast away a few good fokes then that is\n>the price we all have to pay for law and order in this country. Look\n>at all the good people that died in wars to protect this great country\n>of ours.\n>\n>With the arms build up in Waco they needed to hit that compound with\n>mega fire power. They could of gone in there blasting and killed a few\n>women and kids but it would of been better then letting them all burn\n>to death 51 days later.\n>\n\nDid you forget to put in a sarcasm flag?\n\nAl\n[standard disclaimer]\n\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10588, "properties": {"category": "sci.crypt", "text": "From: karn@unix.ka9q.ampr.org (Phil Karn)\nSubject: Re: Fifth Amendment and Passwords\nNntp-Posting-Host: unix.ka9q.ampr.org\nReply-To: karn@servo.qualcomm.com\nOrganization: Qualcomm, Inc\nLines: 19\n\nIn article <1993Apr18.233112.24107@colnet.cmhnet.org>, res@colnet.cmhnet.org (Rob Stampfli) writes:\n|> >Sadly, it does not. Suspects can be compelled to give handwriting and\n|> >voice exemplars, and to take blood and DNA tests.\n|> \n|> I am sure that Mike is correct on this point.  I am also pretty sure that\n|> administering \"truth serum\" would be ruled a violation of your right\n|> not to incriminate yourself.  But, what is the salient difference?\n\nYou can find the salient difference in any number of 5th amendment\nrelated Supreme Court opinions. The Court limits 5th amendment\nprotections to what they call \"testimonial\" evidence, as opposed to\nphysical evidence.\n\nThe whole question would hinge on whether a crypto key would be\nconsidered \"testimonial\" evidence. I suppose arguments could be made\neither way, though obviously I would hope it would be considered\ntestimonial.\n\nPhil\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10589, "properties": {"category": "talk.politics.mideast", "text": "From: isaac@etrog.se.citri.edu.au (Isaac Balbin)\nSubject: Re: More on ADL spying case\nOrganization: Collaborative Information Technology Research Institute\nLines: 12\n\narens@ISI.EDU (Yigal Arens) writes:\n\n>Los Angeles Times, Tuesday, April 13, 1993.  P. A1.\n\n>NEW DETAILS OF EXTENSIVE ADL SPY OPERATION EMERGE\n\n>\t* INQUIRY: Transcripts reveal nearly 40 years of espionage\n>\t  by a man who infiltrated political groups\n\n>By Richard C. Paddock, Times staff writer.\n\nDid they have a file on Yigal too?\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10590, "properties": {"category": "sci.med", "text": "From: doyle+@pitt.edu (Howard R Doyle)\nSubject: Re: Broken rib\nKeywords: advice needed\nOrganization: Pittsburgh Transplant Institute\nLines: 28\n\nIn article <D0ZB3B1w164w@oneb.almanac.bc.ca> jc@oneb.almanac.bc.ca writes:\n>\n\n>fell about 3 weeks ago down into the hold of the boat and broke or\n>cracked a rib and wrenched and bruised my back and left arm.\n>  My question,  I have been to a doctor and was told that it was \n>best to do nothing and it would heal up with no long term effect, and \n>indeed I am about 60 % better, however, the work I do is very \n>hard and I am still not able to go back to work.  The thing that worries me\n>is the movement or \"clunking\" I feel and hear back there when I move \n>certain ways...  I heard some one talking about the rib they broke \n>years ago and that it still bothers them..  any opinions?\n\n\n\nYour doctor is right. It is best to do nothing, besides taking some pain\nmedication initially. Some patients don't like this and expect, or demand,\nto have something done. In these cases some physicians will \"tape\" the \npatient (put a lot of heavy adhesive tape around the chest), or prescribe\nan elastic binder. All this does is make it harder to breath, but the\npatient doesn't feel cheated, because soemthing is being done about the\nproblem. Either way, the end results are the same.\n\n==================================\n\nHoward Doyle\ndoyle+@pitt.edu\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10591, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: q@twg.com (Michael Wiesenberg)\nSubject: Quicken 6 vs. Tobias' Managing Your Money\nSummary: Any comparisons of Q6 and Tobias' MYM?\nKeywords: Quicken Tobias\nOrganization: The Wollongong Group, Palo Alto, CA\nLines: 19\n\nI just got a copy of Tobias' Managing Your Money v9.0.  I have Quicken 6,\nand it's wonderful for some things, but MYM seems to have some features\nthat Q6 doesn't.  For example, Q6 doesn't seem to be able to handle\nmonthly automatic deductions from a checking account (you know, a\nmonthly payment that gets electronically deducted every month from\nmy checking account).  Or is there something that I'm not doing right,\nand Q6 can actually do that?  Anyway, MYM seems to be able to handle\nmonthly deductions.  In fact, it can apparently do better than that.\nThat is, you can specify monthly, bimonthly, quarterly, even yearly.\nAnyway, is anyone aware of a comparitive study of the two programs?\nOr can someone just give me their own personal impressions?  Maybe\nsomeone who has used both.  Or maybe someone who is familiar with\neach could give me a capsule review?  Anything would be greatly\nappreciated.  If I keep MYM, I have to pay for it, and I don't know\nwhether it's worth doing.  If MYM is better than Q6, of course I\nwill keep it.  But if Q6 can do everything MYM can do (maybe even\nbetter), I won't.  Thanks all!\n\nIf you post a reply, please also cc me.  Thanks.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.496+0000", "event": "documents", "entityId": 10592, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: twong@civil.ubc.ca (Thomas Wong)\nSubject: Re: Date is stuck\nOrganization: Dept. of Civil Engineering, U.B.C., Vancouver, B.C., Canada\nLines: 15\nNNTP-Posting-Host: sam.civil.ubc.ca\n\nIn article <1qte10$kn5@usenet.INS.CWRU.Edu> ab245@cleveland.Freenet.Edu (Sam Latonia) writes:\n>\n>I can't imagine why someone would leave their computer on all of\n>the time to start with. Its like leaving your lights tv, radio\n>and everything in the house on all of the time to me.....Nuts\n\n\nWe have plenty of computer labs where the computers are left on all the\ntime. I don't see any shorter lifespan than the ones we have in the\noffices which does get turned off at the end of the day. In fact, some\nof the computers in the labs have outlived some of the same ones in the\noffices. But it goes both ways so can't conclude anything.\n\nThomas.\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10593, "properties": {"category": "sci.space", "text": "From: dmcaloon@tuba.calpoly.edu (David McAloon)\nSubject: PLANETS STILL: IMAGES ORBIT BY ETHER TWIST\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 234\n\n ETHER IMPLODES 2 EARTH CORE, IS GRAVITY!!!\n\n  This paper BOTH describes how heavenly bodys can be stationary, \nether sucking structures, AND why we observe \"orbital\" motion!!\n\n  Ether, the theoretical propogation media of electro-magnetic \nwaves, was concluded not to exist, based on the results of the \nMichelson-Moreley experiment conducted a century ago. \n\n  I propose that those conclusions are flawed, based on the fact \nthat the experiment was designed to look for a flow parallel to the \nearth's surface, not perpindicular. (Due to the prevailing assumption \nthat the earth traveled through the ether as a ball through the wind)\n\n  The reversal of the that conclusion, a pivotal keystone in the \ndevelopment of modern scientific thought, could have ramifications \nof BIBLICAL proportions through out the WORLD!!\n\n  REMEMBER: Einstien said Imagination is greater than knowledge!!\n\n  \n1\n  I dream like this: ether based reality\n \n  The ether is like a fluid out of phase with our reality. Creations \nstart as a lattice placed into the ether. Given a spin, the lattices\nboth drag the fluid, like a margarita blender, and ingest it, \nconverting it, distilling localized mass, time and energy. \n(non-spinning lattice = \"dark matter\")\n\n  The earth isn't exactly spinning, around the sun. Picture an image \nof a galaxy; we haven't any videos of them spinning. Picture us \nbeing stationary, and the sun's image being dragged across the sky by \nthe spinning ether field. (Picture an onion, each layer of which is \nspinning a little faster than the next. A thread shot at the inner \nkernel would be stretched diagonally sideways, its head being in a \nfaster shell than its tail, until it finally intersected the ground \nof the inner kernel, its direction vector being straight down, but \nits \"foot print\" being a line, not a point. [sunrise, sunset])\n  \n  The moon isn't exactly orbiting us. It is a parasite, (non self \nspin sustaining ) being dragged in the earth's ether field, which is \nitself in the sun's much more powerful field. Our seasons are the \nwobble of earth's axis, like a top slowing down. The \"orbit\" of the\nearth around the sun is all of the stars' images being dragged around\nby the sun's ether feild.\n\n  The earth, moon and sun are about the same size and \"distance\" \napart. Its just that the time between them varies greatly, because \nthe \"path\" is not the same. The moon's lattice in the ether is like \nsticking a fork in a plate of spaghetti and giving the plate a half \nturn. The sun's lattice has so much spin that its like the fork has \ngot the whole plate of noodles wound up. The piece of light going to \nthe moon can slide down the spaghetti and maybe make a \"j\" hook at \nthe end. The piece of light going to the sun has to go around the \nwhole plate, like a needle in a record, before it gets there. \n\n  With a pencil, compass, and rule, draw a diagram of how the moon \ncan be about as big as \"earth's\" shadow upon it, and at other times \ntotally eclipse the sun. Look in the sky. except for your Knowledge, \nwould you guess that they are about the same size, just because they \nlook about the same size?\n\n   O .     - -                 E     O   O   O   S\n E       /     \\            \n    M    |      |      OR                M    \n         \\ _ _ /                         \n       S                           \n       \n  The full moon, quarter moon etc. is the difference between rate\nof ether spins. What we are looking at is a rotating \"turntable view\" \nof the moon, only half of which is facing the sun. ( I've seen a \nhalf moon within about 120 degrees (of sky) of the sun, during the \nday. Try and draw that \"earth shadow.\") Its only the moon's image \nwhich appears to orbit us. No matter where it is, the light part is \nthe part facing the sun, and the dark part is the half facing away \nfrom the sun, even when it appears to be behind us.\n\n  \"Light-Years\" between galaxies is a misnomer. The distance is \ncloser to zero, as time and matter are characteristics of this phase \nof reality, which dissipates outward with each layer of the onion. \n(defining edge = 0 ether spin) What we are seeing could be \nessentially happening now. The \"piece\" of light may have experienced \nmany years, but the trip could be very quick, our time.\n\n  To time travel or warp space I might consider learning to \nde-spin myself. (phase out my mass) Good luck trying to design \na propulsion system to drag around a space-time locality. (its like \ntrying to move a balloon by shooting a squirt gun from within)\n\n  To find out about all of this, I recommend studying history. I'd \nlook in the book of life. (or holy grail etc.) Brain waves just \nmight carry decipherable data. I'd start looking on some part of the \nspectra said to be unusable, due to all the background noise. (4+ \nbillion humans?) I'd totally isolate myself, record me thinking DOG \nbackwards, and learn to read what I got. (Microsoft Holy Grail card \nfor Pentium!)\n\n  Next, concluding that my thoughts were recorded on a non time-bound \nmedia, the ether, and that it is I who move forward (in time). I \nwould try to temporarily locally reverse the flow, (of time, which \nI'd start looking for as flowing opposite magnetism, pole to pole. \n[Why not?]) perhaps by passing a LARGE, FLAT DC current through a \ntwo foot diameter. coil or choke or something, and seeing what I \ncould get with my machine's receiver next to it.  \n\n  If you don't think you'll live to see it, consider this: QUIT \nPUTTING THE REPRODUCTIVE KEYS OF OTHER LIFE IN YOUR BODY! All of \nlife's data could be written on the wind, (ether) not just our \nthoughts. DNA could be a little receiver or file access code. By \neating SEEDS, we could be jamming our reception, or receiving plant \ninstructions. Try eating seed bearing fruit. Maybe those Greek or \nbiblical guys did live hundreds of years. I'm curios to see what \nthey did and ate. Don't worry if your hair stops growing. (Maybe we \ndon't need to eat at all, the cosmos are formed from nothing, and \nthat is creating matter! I only need enough to bounce around. Where \ndid the household concept 'immortal' come from? Wheat is a weed, it \nis programmed to pull from the soil, reproduce like hell, and then \ndie)\n\n  Warning about writing to the past:\nI had a little dream of being in a world, in the near parallel \nfuture, lying along a path of history which we have diverged from. \nThere were; twelve telepathic, glowing beings, who looked like an \nOscar award and who had always been, a dark one who looked like us, \nand then myself. The dark one was in the process of making the \nothers into gods, (he had to teach them what that meant) by \n\"advising\" them in their past. Basically, he manipulated them into \nreproducing, and raising their children on his seed. He said that \nthe little ones who looked different were a sub-species, meant to \nprovide service. He carefully combed through history, rewriting it \nin his favor, pulling like a weed anything that compromised his \ncontrol. He enticed recruits by sending them his visions, saying \nthat there was immortality at the end of the road for only twelve \nsouls: kill or be killed. The amount of control he could exert was \nfinite, though, as at every change he made, a void would appear in \nour reality. The universe one day ended 100 meters from us: it \nseemed odd, but we couldn't remember how else it should be. Then \nsome of the twelve were no more. Finally, when he could prune no \nmore, and reality stopped just beyond his fingertips, he stepped \nthrough his portal to the past, to bask, over and over, in all that \nhe had created. I made a few more changes, and lost my body, \nexisting only on the wind. \n\n  MORAL: Its very possible to eliminate from your reality the souls \nwhose will's are not in harmony with yours (Golden Rule - treat \nothers as you wish to be treated) I.E., you could end up along a \nlonely thread of time with murderers or flowery brown-nosers for \nplaymates. (its not eternal, there's more than one way back) \n\n Accepting rides to the past:\nOnce here, the one who looks like us sells rides, he can make you a \nPrince, or a Queen, or you can live as a god in ancient Greece. Go \nahead, repeat the third grade as often as you like, Adam henry. \nI Hope you like inspecting your socks. Careful though, if he likes \nyour work, but thinks you're getting wise, he can direct you to cross \npaths with your old self, and you'll vanish as you rewrite your own \ncourse of history, none the wiser.\n\n  As we pass the point along the parallel line where he stepped \nback in time, his hierarchy will lose its direction. He can still \nmake changes while he's here, its just that that is work, and with \nevery 'adjustment', this becomes less the world he cultivated, which \nloosens his grip, and his organization is suddenly one branch less. \nBut he can't see the change. The basic nature of man is good. He had \nto apply his hand to achieve his world. As he now tightens his hand \nto retain what he built, the more sand slips through his fingers. \n\n  How about public computer access to the I.R.S. ? Its our country, \nour money, and they're spending it on us, RIGHT? Imagine this: \nWashington marks the next cost at 8, IRS collects 10, gives 5 to \ncongress, and just absolutely buries 5. Congress borrows 2. The banks \nare making, what, a 30% margin (interest) on our government? Big \ncorporations are ecstatic if they can do a 10% margin. What do the \nbanks do with it? Hold some on a carrot to the world, sure, but \nmostly, bury it. WHY? Food production is 2% GNP?, construction 6% ? 14 \nhours to build your auto?  The people are spending all of their time \nto buy back a tenth of what they produce. Have we been deceived? If \nwe are more efficient, why is it getting harder to get by? What if \nthe point is just to keep the people busy making widgets? \n\n  In that other reality, I shouted to the twelve, \"its chaos!\" They \nsaid, \"no, its order.\" He defined chaos as that which is he was not \nable to control.\n\n  Rain forest: The problem could be that all the water in its canopy \nwould hide the  location of an indigenous people who have no \nlanguage. (telepathic; and 'vanishing' the closest knowledge of death)\n(think of the spine as a transceiver, if it is on the ground and \npointed up, you can locate it from above) These people are probably \nnaive as children, but very, very tough to kill. Also, They should \nbe able to tell you stories about the dark one that I talk about. \nThey can hear him. I think that Ham and world band radio old timers \nmight have a story to tell on this. These people would be on a \ndifferent frequency than us as they aren't eating seeds.\n\n  Famine relief: When I make my diet almost all whole wheat, I get a \nhuge belly, lose muscle mass, sleep A LOT, and get sick. When I eat \nonly fresh fruit, I get more energy, a Hollywood-flat belly, and \nneed a lot less sleep.\n\n  UN. Peace Keeping; There is fighting and killing all over. The \ntroops go in when there is no bread on the shelf. (its OK to kill \neach other, just make sure there is enough to eat.)\n\n  Somalia: What is disturbing is energetic, gun carrying, three foot \ntall sixteen year-olds, who eat nothing but some roots that they \nsuck on. It is not so much that their growth is stunted, it is that \nthey aren't dying at a rate of 50 of 60 years per life. \n\n  Women with children, Babes in arms: Historical references to women \nand children as a single unit could mean that infants were not cut \nfrom the umbilical cord. (and hence, were not breast fed) I think \nthat there may be some very interesting results to this, such as \nmother-child telepathy, and blue blooded infants. There are examples \nof this practice in the aquatic mammal kingdom to investigate.\n\n  That guy is the master of illusion, and the ultimate liar. He \ntells it first, and then just follows the thread of time in which \nthe people are willing to buy it. (in which he can make it so) He'll \nplay a poker face up until he thinks he's cornered, and then he'll \nwhine, beg and grovel. All it means to him is that you're willing to \nlive on the ground work that he has laid, that is, that he was \nright, and he didn't over play his hand, and he won't need to go \nback and try another thread of time. You have ultimate control over \nyour destiny, just don't live along a path that leads to a reality \nin which you don't want to be a part of. \n\n  I don't claim to be the first to think these things, its just \nthat the others could have been 'pruned' from our path. Maybe these \nthoughts given to me were laid down on the track of time, after him.\n\n  \n \n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10594, "properties": {"category": "rec.sport.baseball", "text": "From: gspira@nyx.cs.du.edu (Greg Spira)\nSubject: Re: Notes on Jays vs. Indians Series\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nDistribution: na\nLines: 30\n\n\n>Something else to consider:\n\n>Alomar's H-R splits were .500-.363 SLG, .444-.369 OBP! Baerga's was .486-.424\n>and .392-.318. Pretty clearly, Alomar got a HUGE boost from his home park.\n\nNot necessarily.  It could mean that, or it could mean that he just hit\na lot better at home than he did on the road (see Frank Thomas' home/road\nsplits in '91 for an example).  I would guess that some of Alomar's split\nis due to the Skydome, but most of it is probably due just to coincidence.\nThere's no way to be sure, of course, but the only hitters the Skydome\nseems to regularly help a lot are right handed home run hitters, and\nAlomar is not a home run hitter.\n\n>I'd say you could make a good for them being about equal right now. T&P\n>rated Baerga higher, actually.\n\nOnly because of t&P's bogus fielding stats, which rate Alomar as the worst\ndefensive second baseman in the league.  On a career basis, I think T&P's\nfielding stats may mean something, but on a seasonal basis it comes up\nwith ridiculous results like this.  Alomar may not be the god of fielding\nthe media says he is, but he sure isn't the worst in baseball.\n\nOffensively, T&P rate Alomar much higher last year.\n\nRegarding the A vs. B argument, I'll just say they're both very good players\nwith different strengths and a bright future.\n\n\nGreg \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10595, "properties": {"category": "comp.graphics", "text": "From: MCAVALCANTI%VORTEX.UFRGS.BR@UICVM.UIC.EDU\nSubject: DTP\nOrganization: UTexas Mail-to-News Gateway\nLines: 3\nNNTP-Posting-Host: cs.utexas.edu\n\nPlease Ineed information about desk top publishe- post graduate courses\nand if possible email address or normal mail.\nthanks in advance\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10596, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Dale_Adams@gateway.qm.apple.com (Dale Adams)\nSubject: Re: Q800 Video RAM Questions\nDistribution: na\nOrganization: Apple Computer, Inc.,  Cupertino, CA\nLines: 45\n\nIn article <1993Apr5.192833.19102@cbnews.cb.att.com> \njbr0@cbnews.cb.att.com (joseph.a.brownlee) writes:\n> Could someone post a *definitive* answer about the VRAM configuration \n> for the\n> Q800 (and presumably the C610 and C650 as well).  There seems to be a \n> lot of\n> confusion about this issue.  I'd like to know:\n> \n>     .   What kind of SIMMs are the VRAM SIMMs (i.e. 30-pin, etc.)?\n\nThere's only one physical size for VRAM SIMMs (unlike DRAM SIMMs which \ncome in many, many sizes and pinouts), although they do come with \ndiffering amounts of VRAM on them.  The ones you need are 256KB SIMMs, are \norganized as 128K x 16, and have two 128K x 8 VRAM chips on them.  This is \nthe only size which the Quadra and Centris machines can use.\n\n>     .   How many VRAM SIMM slots are there?\n\nTwo.\n\n>     .   What rules (if any) must be followed in filling the slots (e.g in\n>                 pairs, sizes must match, etc.)?\n\nBoth SIMM slots must be filled; putting a SIMM in only one slot does \nnothing for you.\n\n>     .   How fast must they be?\n\n80 ns for the Q800 and C650, 100 ns for the C610.\n\n>     .   Is there any other relevant information?\n\nThere are certain VRAM chip manufacturers whose parts are not compatible \nwith the Quadra and Centris video hardware.  Make sure that the source you \nget them from guarantees compatiblity.  In general, if it works in a Q950,\nit will work in a Q800.\n\n> Please don't reply unless you have the *correct* information.  Many \n> thanks in\n> advance for helping to eliminate some noise from this group.\n\nTrust me.  ;-)\n\n- Dale Adams\n  Apple Computer, Inc.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10597, "properties": {"category": "rec.autos", "text": "From: gwalker@rtfm.mlb.fl.us (Grayson Walker)\nSubject: Re: Changing oil by self.\nKeywords: oily to bed \nOrganization: A.S.I., Merritt Island, Florida \nDistribution: usa\nLines: 9\n\nAh, yes, the big chunks down in the sump. The solution is simple. Sort of\nlike the advice my Aunt always gave -- never scratch your ear with anything\nexcept your elbow.\n\nIf you have pieces of ring, con rods, valve heads or stems, just reach into\nthe sump through the hole in the block that was associated with the creation\nof those large bits and pieces. Anything you can't remove with one hand \nthrough the hole in the block may safely be left in place.\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10598, "properties": {"category": "sci.electronics", "text": "Subject: Pattern Generator wanted\nFrom: grimwood@ccu1.aukuni.ac.nz (Tony Grimwood)\nOrganization: University of Auckland, New Zealand.\nKeywords: pattern\nSummary: MDA/EGA/VGA pat. gen.\nLines: 15\n\nI repair a lot of monitors here, and I'd like to know where I can get a\npattern generator (or a circuit for one) that will provide MDA, EGA and VGA\nsignals. Using a whole PC to do this takes up too much space on my bench, and\nis somewhat less than portable. I guess I could sit down and design something,\nbut I don't have the time right now - any (reasonable) suggestions would be\nappreciated.\n\nTNX\n\nTG\n-- \nTony Grimwood, ZL1TTG\t\t\t\"Make no friendship with an elephant\nBiomedical Engineering Services\t\t keeper, unless you have room to\nUniversity of Auckland\t\t\t entertain an elephant.\"\nAuckland, New Zealand\t\t       \t\t == Saadi of Shiraz ==\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10599, "properties": {"category": "comp.windows.x", "text": "From: dcr@mail.ast.cam.ac.uk (Derek C. Richardson)\nSubject: Animation with XPutImage()?\nNntp-Posting-Host: ioas09.ast.cam.ac.uk\nReply-To: dcr@mail.ast.cam.ac.uk\nOrganization: Institute of Astronomy, Cambridge\nLines: 27\n\nHi, I'm new to this group so please bear with me!\n\nTwo years ago I wrote a Sunview application for fast animation\nof raster files. With Sunview becoming rapidly obselete, I've\nfinally decided to rewrite everything from scratch in XView.\nI put together a quick test, and I've found that XPutImage()\nis considerably slower (factor of 2 on average?) than the\nSunview command pw_rop() which moves image data from memory\npixrects to a canvas. This was on a Sparc IPX. It seems that:\n(1) the X protocol communication is slowing things down; or\n(2) XPutImage is inefficient...or both! My question is, what\nis the fastest way in X11R5 to dump 8 plane image data to\na window? Can I take advantage of the fact that the client is\nrunning on the same machine as the server? Or am I stuck with\nXPutImage() (in which case I might as well give up now...)?\n\nAll help appreciated...thanks!\n\nDerek\n\n-----------------------------------------------------------\n| Derek C. Richardson    | Tel: (0223) 337548 x 37501     |\n| Institute of Astronomy | Fax: (0223) 337523             |\n| Cambridge, U.K.        |                                |\n| CB3 0HA                | E-mail: dcr@mail.ast.cam.ac.uk |\n-----------------------------------------------------------\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10600, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: edmoore@vcd.hp.com (Ed Moore)\nSubject: Re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nOrganization: Hewlett-Packard VCD\nX-Newsreader: Tin 1.1 PL5\nLines: 9\n\nthomas.d.fellrath.1@nd.edu@nd.edu wrote:\n\n: The key issue that I bought my BJ-200 on was ink drying speed.  You really \n: have to try awful hard to get the BJ-200 ink to smear.  The HP DeskJets need \n: 10-15 seconds to completely dry.  In both cases, however, do not get your \n: pages wet.  Unlike laser printers, the material on your pages is INK, not \n: toner.  But that should go without saying.\n\nI think the ink now used in the DeskJet family is water-fast. \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10601, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: claborne@npg-sd.SanDiegoCA.NCR.COM (Chris Claborne)\nSubject: Anyone use Number 9 GXE video card?\nSummary: Anyone use Number 9 GXE video card?\nKeywords: Video adaptor hardware graphics\nDistribution: world\nOrganization: NCR Corp., Network Products - San Diego\nLines: 5\n\nHas anyone used the Number Nine (# 9) Video Graphics adaptor with Windows\nor Windows NT?  What do you think???\n\n    2\n-- C  --\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10602, "properties": {"category": "rec.autos", "text": "From: grady@world.std.com (Dick Grady)\nSubject: Re: Dumbest automotive concepts of all time\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 10\n\nIn article <0w2Z2B1w164w@cellar.org> blu@cellar.org (Dan Reed) writes:\n>Fact is, I just leave the valet key in my glovebox for whenever \n>I need it...  \n\nThat will make it easy for a car thief.\nSaves him/her the trouble of popping your ignition!\n\n-- \nDick Grady           Salem, NH,  USA            grady@world.std.com\nSo many newsgroups, so little time!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10603, "properties": {"category": "rec.sport.baseball", "text": "From: marty@howdy.wustl.edu (Marty Olevitch)\nSubject: Re: Jewish Baseball Players?\nNntp-Posting-Host: howdy\nOrganization: Washington U. Physics Dept\nLines: 3\n\nBo Bilinsky?\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10604, "properties": {"category": "talk.politics.misc", "text": "From: cutter@gloster.via.mind.org (cutter)\nSubject: Re: NC vs Hunt (Marine Gay Bashing in Wilmington NC) verdict\nDistribution: world\nOrganization: Gordian Knot, Gloster,GA\nLines: 23\n\njon@atlas.MITRE.org (J. E. Shum) writes:\n> \n> In article <C5G1su.K27@wolves.Durham.NC.US>, wolfe@wolves.Durham.NC.US (G. Wo\n> > A sad day for civil rights.  But typical of NC (unfortunately.)\n> \n> If it is typical for the principle of reasonable doubt to be upheld in\n> North Carolina, then I would count that in the state's favor. \n> \nReasonable doubt dates back to Human Rights. We are now in the time of\nCivil Rights. Civil Rights are issued by the State with whatever strings\nattached they choose as the Grantor of said rights. And if that means that \nverdicts are determined by the needs of the state rather than by guilt or \ninnocence in a traditional sense, so be it. Being subjective rather than \nobjective may make it harder to anticipate what is right, and you may be \nsacrificed for being wrong inadvertantly once in a while, but that really is a \nsmall price to pay for the common good don't you think?\n\n\n---------------------------------------------------------------------\ncutter@gloster.via.mind.org (chris)     All jobs are easy \n                                     to the person who\n                                     doesn't have to do them.\n                                               Holt's law\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10605, "properties": {"category": "rec.autos", "text": "From: carl_f_hoffman@cup.portal.com\nSubject: 1993 Infiniti G20\nOrganization: The Portal System (TM)\nLines: 26\n\n\nI am thinking about getting an Infiniti G20.\nIn consumer reports it is ranked high in many\ncatagories including highest in reliability index for compact cars.\nMitsubushi Galant was second followed by Honda Accord).\n\nA couple of things though:\n1) In looking around I have yet to see anyone driving this\n   car. I see lots of Honda's and Toyota's.\n2) There is a special deal where I can get an Infinity G20, fully\n   loaded, at dealer cost (I have check this out and the numbers match\n   up). They are doing this because they are releasing and update mid-1993\n   version (includes dual air-bags) and want to get rid of their old 1993's.\n\nI guess my question is: Is this a good deal? \nAlso, Can anyone give me any feedback on Infiniti?\n\nThanks,\n\nCarl Hoffman\n\nP.S.\n\nThe other cars that I have test driven and which are in the\nrunning are:\nMitsubishi Galant, Honda Accord, and Toyota Camary\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10606, "properties": {"category": "misc.forsale", "text": "From: mcadams@trane.rtp.dg.com (Ed McAdams)\nSubject: Piano, free to charity\nOrganization: Data General Corporation, Research Triangle Park, NC\nLines: 15\n\nI have one of those HEAVY antique upright pianos I would like to\ncontribute to any charity with muscle enough to get it out of my house.\n\nIf I get no response from a charity I will sell to for $100, you haul.\n\nIt is in good shape, needs tuning.  I'm in south Durham county.\n\nEd McAdams\nData General Corporation            mcadams@dg-rtp.dg.com\n62 T. W. Alexander Drive            {backbone}!mcnc!rti!dg-rtp!mcadams\nResearch Triangle Park, NC 27709    (919) 248-6369\nEd McAdams\nData General Corporation            mcadams@dg-rtp.dg.com\n62 T. W. Alexander Drive            {backbone}!mcnc!rti!dg-rtp!mcadams\nResearch Triangle Park, NC 27709    (919) 248-6369\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10607, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: claebaur@shell.portal.com (Tony S Annese)\nSubject: Re: Utility for updating Win.ini and system.ini\nNntp-Posting-Host: jobe\nOrganization: Portal Communications Company -- 408/973-9111 (voice) 408/973-8091 (data)\nLines: 10\n\nIn article <1993Apr20.130933.26571@lut.ac.uk> A.D.Bailey@lut.ac.uk (Adrian D.Bailey) writes:\n>In Windows 3.0 there is a built-in called sysedit.exe that is just what you\n>need.   Windows 3.1 I don't know......\n\nIt's there.....\n--\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\\nTony Annese                                    claebaur@shell.portal.com\n                                          -or- claebaur@cup.portal.com\n\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10608, "properties": {"category": "sci.crypt", "text": "Subject: Re: Pgp, PEM, and RFC's (Was: Cryptography Patents)\nFrom: a_rubin@dsg4.dse.beckman.com (Arthur Rubin)\nOrganization: Beckman Instruments, Inc.\nNntp-Posting-Host: dsg4.dse.beckman.com\nLines: 22\n\nIn <C5LJ0t.K52@blaze.cs.jhu.edu> eifrig@beanworld.cs.jhu.edu (Jonathan Eifrig) writes:\n\n>FACT:  It is unlawful to distribute code implementing RSA without a license\n>to do so from PKP, whether or not one is charging for it.  Furthermore,\n>any use of RSA, other than for research purposes allowed under US patent\n>law, is similarly unlawful.  Therefore, the \"average citizen\" cannot use\n>RSA to encrypt message traffic in the US without a license from PKP.\n\nWRONG:  I don't think even PKP claims this one.  It is not unlawful to\ndistribute code implementing RSA.  It appears to be unlawful to use it, so\nI agree with your last sentence.\n\n>FACT:  There are no restrictions (yet!) on the use of cryptography under\n>US law, although this is beginning to look like it will change.  The only\n>impediments to widespread use of RSA cryptography in the US are PKP's\n>patents.\n\nYes, that's correct.\n--\nArthur L. Rubin: a_rubin@dsg4.dse.beckman.com (work) Beckman Instruments/Brea\n216-5888@mcimail.com 70707.453@compuserve.com arthur@pnet01.cts.com (personal)\nMy opinions are my own, and do not represent those of my employer.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10609, "properties": {"category": "misc.forsale", "text": "From: m14494@mwvm.mitre.org (Mike White)\nSubject: Re: eXpEn$iVe MOTOROLA Handheld Radio For Peanuts!\nNntp-Posting-Host: smassimini-mac.mitre.org\nOrganization: The MITRE Corporation\nDistribution: na\nLines: 23\n\n\u007fJeff Later writes:\n\u007f\u007f> MOTOROLA EXPO VHF 2WATT/2CHAN. HT--------[new]\u007f\u007f\u007f\u007f\u007f-------$1200.00\n\u007f\u007f> Would like $400, or BEST OFFER!!!\n\nI'm sure that the Motorola is worth it, but this kind of thing\nhas always mystified me.  $400 is the price of very good, new\ndual-band, fully synthasized HT.  Yes, yes, I know Motorola\nHTs are bullet-proof, unbreakable, plutonium-based \nindestructable -- you can drive a tank over them and they'll\nstill work.  But just how often does that come up?  Why are hams\nwilling (and they *are*) to spend the price of a synthaszied\ndual-bander for a 2-channel xtal rig???  Note: this is not\na flame; as I said, I'm sure this is a good deal for this rig.\nI'm just amazed that it *is* a good deal.  I would have guessed\nthat a 2 channel xtal rig could never be worth as much as a dual-\nbander to a ham, no matter how durable. Just shows you how wrong\n*I* can be.\n\nMike, N4PDY\n\n******************************\n* These are my opinions only.*\n******************************\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10610, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rmoskal@panix.com (Robert Moskal)\nSubject: Volante Warp 10 board\nOrganization: PANIX Public Access Unix, NYC\nLines: 11\n\nI've been troubleshooting the existence of way too many General Protection\nFaults on a 486-33, Eisa-VLB, system.  At this point I think I've narrowed\nthe problem down to the video drivers for the Volante Warp-10 adapter by\nNational Design, INc.\n\nYet somehow I find this hard to believe.  Does anyone else have any\nexperiences with this board.\n\nThanx,\nRobert Moskal\nBrooklyn, USA\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10611, "properties": {"category": "rec.autos", "text": "From: CPKJP@vm.cc.latech.edu (Kevin Parker)\nSubject: Insurance Rates on Performance Cars SUMMARY\nOrganization: Louisiana Tech University\nLines: 244\nNNTP-Posting-Host: vm.cc.latech.edu\nX-Newsreader: NNR/VM S_1.3.2\n\n     I recently posted an article asking what kind of rates single, male\ndrivers under 25 yrs old were paying on performance cars. Here's a summary of\nthe replies I received.\n \n \n \n \n-------------------------------------------------------------------------------\n \nI'm not under 25 anymore (but is 27 close enough).\n \n1992 Dodge Stealth RT/Twin Turbo (300hp model).\nNo tickets, no accidents, own a house, have taken defensive driving 1,\nairbag, abs, security alarm, single.\n \n$1500/year  $500 decut. State Farm Insurance (this includes the additional $100\nfor the $1,000,000 umbrella policy over my car and house)  The base\npolicy is the standard $100,000 - $100,000 - $300,000 policy required in DE.\n \nAfter 2nd defensive driving course it will be 5% less.\n \nI bought the car in September 1992.  The company I was with (never had\nand accident or ticket in 11 years) quoted me $2,500.\n \nHope this helps.\n \nSteve Flynn\nUniversity of Delaware\n======================================================================== 45\n \n    Kevin:\n \n    (Hope I remembered your name correctly)...\n \n    You asked about insurance for performance cars.  Well, last year\n    I was in a similar situation before I bought my car, and made the\n    same inquiry as you.\n \n    Age: 24 (then and now)\n    Car: 1992 Eagle Talon TSi AWD\n    Driving Record: Clean\n    State: Illinois\n    Cost: $820/6 mos.\n \n    I turn 25 in May and the insurance goes down to $520/6 mos.\n    Also, I'm single and that incurs a higher rate with my company.\n \n    I've got a couple other friends w/ AWDs and they pay more\n    than I do (different ins. companies also), so maybe I'm just lucky.\n \n    Hope the info helps.\n \n    Dan\n    [dans@jdc.gss.mot.com]\n    Motorola Cellular Subscriber Group\n \n======================================================================== 38\n USA\nCc:\n \nI'm 23; live in Norman, Oklahoma; drive an '89 Thunderbird SC; have\nnever made a claim against my insurance (though I have been hit\nseveral times by negligent drivers who couldn't see stop signs or\nwere fiddling with their radios); and I have had three moving violations\nin the last 18 months (one for going 85 in a 55; one for \"failure to\nclear an intersection\" (I still say the damn light was yellow); and\none for going 35 in a 25 (which didn't go on my record)). My rates\nfrom State Farm (with a passive restraint deduction) on liability,\n$500 deductible comprehensive, and $500 deductible collision are\nroughly $1300/year. (I was paying just over $1100/year for a '92 Escort LX.)\n \n\t\t\t\tJames\n \nJames P. Callison    Microcomputer Coordinator, U of Oklahoma Law Center\nCallison@uokmax.ecn.uoknor.edu   /\\    Callison@aardvark.ucs.uoknor.edu\nDISCLAIMER: I'm not an engineer, but I play one at work...\n\t\tThe forecast calls for Thunder...'89 T-Bird SC\n   \"It's a hell of a thing, killing a man. You take away all he has\n\tand all he's ever gonna have.\"\n\t\t\t--Will Munny, \"Unforgiven\"\n======================================================================== 61\n \nI am beyond the \"under 25\" age group, but I have an experience a few\nyears ago that might be interesting to you.  I owned a 1985 Toyota Celica\nGT.  I decided to buy myself a gift - a more exotic car.  Front runners\nincluded the Toyota Supra Turbo and the Porsche 924 (1987 model years).\nI narrowed it down to those two.  I liked the simplicity and handling\n(and snob appeal, too) of driving a Porsche.  The Supra Turbo was less\nmoney and had more features and performance - almost a personal luxury\ncar.  It had better acceleration and a higher top speed than the 924.\nI was almost ready to give in to a buying impulse for the 924, but i\ndecided to stop by my insurance agent's office on the way.  I asked\nabout what would happen to my rate with either car.\n \n\"If you buy the Supra, your rate classification will be the same as\nthe Celica (the '85 Celica was considered a subcompact and for that\nyear was rated as one of the safest cars), with a slight increase because\nthe car will be 2 years newer.  Our lower-risk division will continue\nto handle your account.\n \n\"If you buy the Porsche 924, we'll have to change you to the standard\n[higher] rate company and your rate will double.  And if you go with\na 944, it's another story again - we'll cover the rest of this year,\nbut cancel you after that.\"\n \n\"But the Supra is much faster than the 924, and the 924 is actually\nfaster than the [standard] 944.  That doens't make sense.\"\n \n That's what the book says.  We don't insure Corvettes, either.  For\nsome reason, the underwriters consider Supras - and their drivers -\nas very traditional and conservative.\"\n \nI eventually went with the Supra for a number of reasons.  The Porsche\ndealer had a nice salesman to get me interested, but a tough high-pressure\nguy in the back room.  At equal monthly payments, it would have taken\na year longer to pay for the Porsche, plus its higher insurance.  I\nconcluded that the high insurance was related to probability of auto\ntheft.\n \n   /|/| /||)|/  /~ /\\| |\\|)[~|)/~   |   Everyone's entitled to MY opinion.\n  / | |/ ||\\|\\  \\_|\\/|_|/|)[_|\\\\_|  |      goldberg@oasys.dt.navy.mil\n========Imagination is more important than knowledge. - Albert Einstein=======\n \n \n \n \n \n======================================================================== 32\n \nI live in Idaho.  When I was <26 many years ago (10 years) I bought a Trans\nAm (new).  Insurance was about $1300/year.  When I turned 26, it immediately\ndropped to $460/year.  I had not had any accidents before or after, this was\nstrictly an age change.  That same rate stayed pretty much the same until I\nsold the car 2 years ago.  My F-150 pickup is about $80/year less.\n \nThe real amazing thing is that when I woke up at age 25, I felt SO MUCH MORE\nRESPONSIBLE than I was before...  :-)\n \nWes\n \n======================================================================== 21\n \n \nFor your information:\nCalifornia\nMale, single, under 25 , No moving violation\nAlfa Spider\n     =======> $2000 / year\n \nWhat a bargain!!!\n======================================================================== 28\n \nLet's see, I'm 24, single, male, clean driving record. I have a 92 VW COrrado\nVR6. I live in San Jose, California. I pay ~1500$ a year through Allstate. A\ngood deal if you ask me.\n \nI was thinking about getting a Talon, but I think the insurance is higher\nfor a \"turbo\" sports car vs a V6\n \n-W\n \n======================================================================== 27\n \n1986 Honda CRX Si, clean record, in a small New Mexico town was around $800\nper year, age 24.\n \nNearby city rates were 1.5X-2X higher than where I've got mine insured.\n \n..robert\n--\nRobert Stack / Institute of Transportation Studies, Univ of California-Irvine\n               stack@translab.its.uci.edu   '92 Mazda Protege LX\n======================================================================== 37\n1300 per year, 1992 Saturn SC, 21 Years old, State: New Mexico,\nInsurance: State Farm.\n \n \n======================================================================== 64\n \n \nHere is my info:\n \nCar             : '89 Toyota Celica ST\nInsurance Co    : Farmer's Insurance\nYearly insurance: $2028\nAge             : 24\nDate of license : Oct 14, 1992\nResidence       : Mountain View, California\nNo moving violations (for now atleast ;-)\n \nHope this helps. Please post a summary if possible.\n \nVijay\n**********************************************************************\nVijay Anisetti\nEmail: anisetti@informix.com   Apt: (415)962-0320   Off: (415)926-6547\n======================================================================== 38\nSingle, 24 years old, Eagle Talon Turbo AWD, $1200 (full-cover, reasonable\n liability)\nNo tickets, No violations, No accidents... (knock on wood...)\nMass,\n \n\tOne thing that makes a HUGE difference in MASS is the town you live in.\nI'm personally in one of the best towns within reasonable distance\nof Boston.  If I moved to the absolute best it would go down to about\n$1150, if I moved to the worst it would be $2000+..\n \n\tAlso one accident and a couple of tickets, would probably add another $600...\n \n \n\t_RV\n \n \n======================================================================== 43\nI have a 1990 Mitsubishi eclipse turbo awd, am 23 years old and have no\ntickets that went on my record.  I live in Illinois just outside of Chicago\nand pay $1560 a year with full coverage at State Farm.  I did get a small\ndiscount because of my alarm system($30 a year).  I only live 15 miles from\nChicago but if I actually lived in the city the price would be about $2000\na year.\n======================================================================== 41\nI'm over 25, but in case you're interested anyway, I'm insuring a 93 SHO\nfor $287/6 month.  Thats 100k personal+300k total+100k property with\n250 deductible, glass and towing, State Farm.\n \n======================================================================== 39\n \nUnless you are under 20 or have been driving for less than 5\nyears, I think you are being seriously ripped off.  I don't have\none of the performance cars you listed, but if your record is\nclean, then you should not be paying over $2K.\n \nDid you try calling all the insurance dealers you could find?\nAlthough rates are supposed to be standardized, I've found that\nmost places I initially call, give me some ridiculously high\nquote and *finaly*, I hit one that is much lower.\n \nAlso, I have changed insurance companies when the rate went up at\nrenewal (no accidents, tickets, car gets older??) to maintain a low\nrate.  You always have to be careful when it comes to insurance\ncompanies 8^).\n \nGood luck,\nSerge\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10612, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Do we need the clipper for cheap security?\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 24\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\nebrandt@jarthur.claremont.edu (Eli Brandt) writes:\n> Instead we have a deliberately brain-dead version of a cryptosystem \n> that has not even been peer reviewed.  Yes, the NSA owns some smart \n> people.  But if they pulled a FEAL, well, AT&T is going to be left with \n> a lot of dud phones on its hands. \n\nAgreed.  Remember, I don't even think of Clipper as encryption in any real \nsense--if I did, I'd probably be a lot more annoyed about it.\n\n> Heh heh.  The government already gave it up for us.  Remember in the \n> announcement they described this scheme as balancing the two \n> extremes of having no privacy and claiming that citizens had a \n> Constitutional right to encryption?  \n\nThat's not for Clinton (or anyone under him) to say, though.  Only the \nfederal and supreme courts can say anything about the constitutionality.\nAnything the administration or any governmental agency says is opinion at \nbest.\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10613, "properties": {"category": "sci.crypt", "text": "From: random@presto.UUCP (Jeff W. Hyche)\nSubject: Re: Once tapped, your code is no good any more.\nReply-To: presto!random@uunet.uu.net\n <1qpg8fINN982@dns1.NMSU.Edu> <1993Apr18.150259.1748@escom.com>\nDistribution: na\nX-Newsreader: Arn V1.01\nLines: 16\nOrganization: I'm Just Me.\n\nIn article <1993Apr18.150259.1748@escom.com>, Al Donaldson writes:\n\n> Unrelated question...isn't the term \"Clipper,\" as neat as it is,\n> already taken by Intergraph?\n> \n\nYes, \"Clipper\" is a trademark of Intergraph.  Its the RISC chip used\nin some of thier workstations. \n\nI wonder what Intergraph is going to do to this infringement on thier\nname sake?\n\n--\n                                // Jeff Hyche  \n -There Can Be Only One-    \\\\ //  presto!random@uunet.uu.net\n                             \\X/ \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10614, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: O.T.O clarification\nOrganization: Cookamunga Tourist Bureau\nLines: 19\n\nIn article <79895@cup.portal.com>, Thyagi@cup.portal.com (Thyagi Morgoth\nNagaSiva) wrote:\n> They are considered different and largely unrelated by a number of\n> sources.  I've seen documentation which links them through the figure\n> of H. Spencer Lewis.  Lewis was apparently involved with Reuss, who\n> was the O.H.O. of Ordo Templi Orientis for many years.  Apparently it\n> is also true that Lewis had a charter to form an O.T.O. body and then\n> created A.M.O.R.C. (as a subsidiary?  an interesting question).\n\nIf anyone is interested in the history of AMORC, I do think Spencer\nLewis published books about the beginning and his mission. The \nAlexandria bookstore (that's the name of the book store operated \nby AMORC) should have a selection that should provide the interested\nreader more insight). \n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.497+0000", "event": "documents", "entityId": 10615, "properties": {"category": "rec.sport.hockey", "text": "From: r_turgeo@oz.plymouth.edu (Randy S. Turgeon)\nSubject: Division by zero error in JACK NICKALUS TOURNAMENT GOLF\nArticle-I.D.: oz.1993Apr6.172218.21494\nReply-To: r_turgeo@oz.plymouth.edu (Randy S. Turgeon)\nOrganization: Plymouth State College - Plymouth, N.H.\nLines: 17\n\n\n    I was playing this golf game and something interesting happened.\nOn the 7th hole, I drove the ball down the fairway, when the ball was\nin mid-flight, the game completely froze. A couple seconds later, the\nscreen went completely black, with an error message in large \"Bubble\"\nletters that said DIVISION BY ZERO. I thought it was funny considering\nI am a computer programmer, and I had never seen an error like this on\nan actual video game system like Sega or Nintendo (or even Atari or\nIntellevision years ago). Oh yeah, after the message, there was also\nwhat must have been an address, in hexadecimal. I forget the exact hex\ncode that was given. HAS THIS HAPPENED TO ANYONE ELSE??? It must have,\nmy game shouldn't have been the only one to do this.\n\nThanks\nRandy\nPSC\nr_turgeo@oz.plymouth.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10616, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: fisk@cvdv99.mayo.edu (Tom Fisk | 2D-337 STM | 5-4341)\nSubject: Re: ATI ultra pro Drivers?\nNews-Software: VAX/VMS VNEWS 1.41    \nReply-To: fisk@mayo.edu\nOrganization: University of Arizona MIS Department - Mosaic Group\nLines: 20\n\nIn article <C5JLDC.HL9@news.cso.uiuc.edu>, jroberts@ux4.cso.uiuc.edu (Robertson) writes...\n>Does anybody know the FTP site with the latest Windows drivers for the ATI\n>GUP?\n>Thanks\n> \nThe latest driver release is 59 and can be found at ftp.cica.indiana.edu\nin the pub/pc/win3/... directory structure as pro59.zip.  I checked with ATI's\nBBS last nite and there were no releases past 59.\n\nWe have the ATI Local Bus card and I noticed that I get garbage around the\nedges of a window when I move it.  Has anybody else noticed this also?\n\nTom.\n-------------------------------------------------------------------------------\nThomas B. Fisk          +----------------------------+  Internet: fisk@mayo.edu\nMayo Clinic             |   If you don't know where  |  Voice: (507) 255-4341\n200 First Street SW     |  you're going you'll never |  FAX: (507) 255-5484\nMail Stop 2D-337 STM    |         get there.         |\nRochester, MN  55905    +----------------------------+\n-------------------------------------------------------------------------------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10617, "properties": {"category": "rec.sport.baseball", "text": "From: k_mullin@oz.plymouth.edu (Mully)\nSubject: Montreal Question.......\nReply-To: k_mullin@oz.plymouth.edu (Mully)\nOrganization: Plymouth State College - Plymouth, N.H.\nLines: 9\n\n   What position does Mike Lansing play?  I cannot seem to find it \n anywhere.  Thanks!!!!1\n\n\tK-->\n-- \n---\nKeith J. Mullins                (o o)          \nP.S.C            -----------oOO--(_)--OOo----------- INTERNET:\nPlymouth, NH     | \"It takes a big man to cry, but | k_mullin@oz.plymouth.edu\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10618, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ashok@biochemistry.cwru.edu (Ashok Aiyar)\nSubject: Re: Trumpet for Windows & other news readers\nOrganization: CWRU School of Medicine\nLines: 26\nNNTP-Posting-Host: axa12-slip.dialin.cwru.edu\n\nIn article <mcbride.126@ohsu.edu> mcbride@ohsu.edu (Ginny McBride) writes:\n\n\n>In article <ashok.653.0@biochemistry.cwru.edu> ashok@biochemistry.cwru.edu\n>(Ashok Aiyar) writes:\n\n>>Currently WinTrumpet is in very late beta.  It looks like an excellent \n>>product, with several features beyond the DOS version.\n\n>>WinTrumpet supports the Trumpet TCP, Novell LWP, and there is also a direct to \n>>packet driver version that some people are using with the dis_pkt shim.\n\n\n>What's it gonna cost?  \n\nAgain, I do not speak for Peter Tattam, but it is my understanding that it \nwill shareware status as Trumpet 1.05 for DOS is, and I imagine that the \nregistration fees will be similar.  I also believe that a new version of \nTrumpet for DOS will be released sometime in the near future.\n\nAshok\n\n--\nAshok Aiyar                        Mail: ashok@biochemistry.cwru.edu\nDepartment of Biochemistry                       Tel: (216) 368-3300\nCWRU School of Medicine, Cleveland, Ohio         Fax: (216) 368-4544\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10619, "properties": {"category": "rec.autos", "text": "From: hkon@athena.mit.edu (Henry Kon)\nSubject: 83 tercel sunroof leaks - arrggh\nOrganization: Massachusetts Institute of Technology\nLines: 14\nDistribution: world\nNNTP-Posting-Host: e40-008-11.mit.edu\n\nIS there a simple way tooput these sunroofs out of their misery - \ndo leaks tend to be from old gaskets ?  \nor from inadequate mechanical seals - \nor all of the above ??\n\nis there any way to halt the rain ?\n\nthanks\nhk\n--\nHenry Bruno Kon\noffice: 617-253-2781 (with machine)\nhome:   617-625-3972 (with machine)\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10620, "properties": {"category": "rec.sport.baseball", "text": "From: mss@netcom.com (Mark Singer)\nSubject: Re: Pleasant Yankee Surprises\nOrganization: Netcom Online Communications Services (408-241-9760 login: guest)\nLines: 48\n\nIn article <1993Apr15.231903.4045@cs.cornell.edu> tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n>In article <1993Apr15.200629.7200@alleg.edu> luriem@alleg.edu(Michael Lurie) The Liberalizer writes:\n>>\n>\n>I'd be willing to make two wagers:\n>1) Snow doesn't win ROY.\n>2) Mattingly is out of baseball within five years.\n>\n>I'm skeptical of the first, because I don't think Snow is that good a\n>player, and he is on a losing team.\n\n\nI don't have a history handy, but I don't recall that the preponderance\nof ROY's come from winning teams.  In fact, I think team performance is\ngenerally irrelevant, as almost always the most deserving candidate wins.\nAm I wrong?\n\nAnd he is not necessarily on a losing team.  While the Angels' staff\nis still very weak, their everyday lineup is doing quite well, thank\nyou.  Snow is playing great.  Salmon is learning to make the adjustments.\nEasley appears fine, but even if he's not Flora is ready to come up.\nBetween Gonzales and Gruber they'll manage the hot corner.  Polonia\nand Curtis are steady and heady.  Even Myers and Orton are contributing.\n\nPersonally, I think they can finish over .500 which makes them a \nwinning team.\n\n\n\n\n--\tThe Beastmaster \n\n\n>\n>I'm skeptical of the second because of his back.  Mattingly is 32 this\n>year, and how many players play until they are 40?  Not too many, and\n>most of them didn't have chronic back problems when they were 32.\n>\n>Could be wrong on either or both, but I think that's the smart way to\n>bet...\n>\n>Cheers,\n>-Valentine\n\n\n-- \nMark Singer    \nmss@netcom.com\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10621, "properties": {"category": "misc.forsale", "text": "From: thouchin@cs.umr.edu (T. J. Houchin)\nSubject: FOR SALE: Paradise SVGA accelerator card\nArticle-I.D.: umr.1993Apr17.080644.2922\nDistribution: usa\nOrganization: University of Missouri - Rolla\nLines: 13\nNntp-Posting-Host: mcs213c.cs.umr.edu\nOriginator: thouchin@mcs213c.cs.umr.edu\n\nFOR SALE:\n\tParadise SVGA accelerator card\n\t-800x600x32768\n\t-1240x1024x16\n\t-up to 15 times faster than vga\n\t-manual, drivers\n\t-used for 5 months, perfect condition\n\t-WD chipset\n\n  $120 OBO\n\nfor more info THOUCHIN@CS.UMR.EDU\nT.J. HOUCHIN\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10622, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 45\n\nIn article <1993Apr20.195636.17742@guinness.idbsu.edu> betz@gozer.idbsu.edu (Andrew Betz) writes:\n>In article <C5sou8.LnB@news.udel.edu> roby@chopin.udel.edu (Scott W Roby) writes:\n>>>Watch from where?  Two miles away?  Far enough away that whatever\n>>>really happenned must be explained through the vengeful filter of\n>>>a humiliated agency that said (quote!) \"Enough is enough.\"\n>>\n>>Please tell me what you think would have happened had the people \n>>come out with their hands up several weeks ago.\n\nNo answer.\n\n>You didn't answer the question.  The FBI took people out of\n>camera range.  It is thus possible that they were engaging in\n>questionable activities.\n\nI do not feel like the cameras were out of range.  Cameras watched the first \nconfrontation.  Cameras watched the banners.  Cmaeras watched the final \nconfrontation with tanks.  Cameras watched the fire.  When weren't cameras \nable to watch?  When would cameras be unable to watch people coming out with \ntheir hands up?\n\n>As to your question, please tell me what you think would have happened\n>had the ATF goon squad knocked and asked politely several weeks\n>ago (as opposed to playing Rambo with a t.v. crew in tow).\n\nWell, that is what BATF should have done.  Either, Koresh would have gone \npeaceably as he has done in the past, or perhaps it was already too close \nto the apocalypse in his own mind.  It is hard to predict the actions of \na leader who would not release the children when most rational people would.\n\nNow will you answer my question up top?\n\n>\n>Drew\n>--\n>betz@gozer.idbsu.edu\n>*** brought into your terminal from the free state of idaho ***\n>*** when you outlaw rights, only outlaws will have rights   ***\n>*** spook fodder: fema, nsa, clinton, gore, insurrection, nsc,\n>    semtex, neptunium, terrorist, cia, mi5, mi6, kgb, deuterium\n\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10623, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: x89olarte1@gw.wmich.edu\nSubject: My computer gets locked!! HELP!!!!!!\nOrganization: Western Michigan University\nLines: 17\n\n\nA weird thing has happened to my computer lately,\nit gets locked (stops doing anything) at any instance\nwithout any reason whatsover. I might be using \nEdit and gets locked, or i might be at the prompt\nat the same occurs. It happens almost once every 3 times\ni connect the computer, Does Anyone have the slight idea\nwhat's wrong with it?\n\n(If i try to use CTRL-ALT-DEL after that, no response. I have\nto turn it off and back on again)\n\nThanks. Any help will be really appreciated.\n\nE-mail if possible as sometimes i can't access this service.\n\nEnrique\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10624, "properties": {"category": "rec.motorcycles", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: V-max handling request\nOrganization: Iowa State University, Ames IA\nLines: 13\n\nIn <1993Apr15.222224.1@ntuvax.ntu.ac.sg> ba7116326@ntuvax.ntu.ac.sg writes:\n\n>ican anyone who has handson experience on riding the Yamaha v-max, pls kindly\n>comment on its handling .\n\n\tThe V-max goes in a strait line like shit shrough a goose.\nIn the corners, I'd rather ride a Honda 305 Dream.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10625, "properties": {"category": "sci.med", "text": "From: rcj2@cbnewsd.cb.att.com (ray.c.jender)\nSubject: Looking for a doctor\nOrganization: AT&T\nDistribution: usa\nKeywords: San Francisco\nLines: 9\n\n\n\tI was kind of half watching Street Stories last night\n\tand one of the segments was about this doctor in\n\tS.F. who provides a service of investigating treatment\n\tfor various diseases. I'm pretty sure his name is\n\tDr. Mark Renniger (sp?) or close to that. \n\tDid anyone else watch this? I'd like to get his\n\tcorrect name and address/phone number if possible.\n\tThanks.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10626, "properties": {"category": "sci.electronics", "text": "From: kolstad@cae.wisc.edu (Joel Kolstad)\nSubject: Re: Dmm Advice Needed\nArticle-I.D.: doug.1993Apr17.020555.6004\nOrganization: U of Wisconsin-Madison College of Engineering\nLines: 14\n\nIn article <734953838.AA00510@insane.apana.org.au> peter.m@insane.apana.org.au (Peter Tryndoch) writes:\n>\n>If you are going to use one where it counts (eg:aviation, space scuttle, \n>etc) then I suggest you go and buy a Fluke (never seen a Beckman), however \n>for every other use you can buy a cheapie.\n\nMy Beckman died a few days ago, thanks do about a 4 or 5 foot drop onto a\nlab table.  !@#!@$#!@$@#$  Probably not indicative of anything, but I've\nalready filled out the requisition for a Fluke 87. :-)\n\nOh yeah, and sometimes our measurements here do count.  Not often, but often\nenough that I want at least _one_ good meter!\n\n\t\t\t\t\t---Joel Kolstad\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10627, "properties": {"category": "talk.religion.misc", "text": "From: dmcgee@uluhe.soest.hawaii.edu (Don McGee)\nSubject: Federal Hearing\nOriginator: dmcgee@uluhe\nOrganization: School of Ocean and Earth Science and Technology\nDistribution: usa\nLines: 10\n\n\nFact or rumor....?  Madalyn Murray O'Hare an atheist who eliminated the\nuse of the bible reading and prayer in public schools 15 years ago is now\ngoing to appear before the FCC with a petition to stop the reading of the\nGospel on the airways of America.  And she is also campaigning to remove\nChristmas programs, songs, etc from the public schools.  If it is true\nthen mail to Federal Communications Commission 1919 H Street Washington DC\n20054 expressing your opposition to her request.  Reference Petition number\n\n2493.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10628, "properties": {"category": "comp.windows.x", "text": "From: klee@synoptics.com (Ken Lee)\nSubject: Re: transparent widgets--how?\nReply-To: klee@synoptics.com\nOrganization: SynOptics Communications, Santa Clara CA\nLines: 17\nNntp-Posting-Host: bugsbunny.synoptics.com\n\nIn article AA16720@ntep2.ntep.tmg.nec.co.jp, cerna@ntep.tmg.nec.co.JP (Alexander Cerna (SV)) writes:\n>I need to write an application which does annotation notes\n>on existing documents.  The annotation could be done several\n>times by different people.  The idea is something like having\n>several acetate transparencies stacked on top of each other\n>so that the user can see through all of them.  I've seen\n>something like this being done by the oclock client.\n>Could someone please tell me how to do it in Xt?\n>Thank you very much.\n\nThe oclock widget was written using the SHAPE extension.\nYou can do the same in your widgets.  Few current widgets\nsupport SHAPE, so you'll have to subclass them to add that\nfunctionality.\n\n---\nKen Lee, klee@synoptics.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10629, "properties": {"category": "soc.religion.christian", "text": "From: hedrick@cs.rutgers.edu\nSubject: Re: Doing the work of God??!!)\nLines: 59\n\nDesiree Bradley (Desiree_Bradley@mindlink.bc.ca) asked us whether we\nshould think of the Serbs as doing God's work in Bosnia.  I've\nrefrained from posting, in hope that someone who is more familiar with\nthe OT than I would answer.  But at this point I feel I have to say\nsomething.\n\nMany things about this posting bother me.  I know of not the slightest\nsuggestion in the NT that Christians should use force to propagate the\nGospel, and the idea that we should not be concerned about the death\nof Moslems violates the heart of the Gospel.  Christ died to break\ndown these distinctions.  In him there is neither Jew nor Greek, there\nis neither slave nor free, there is neither male nor female.  If\nMoslems do not know him, we may preach to them, but we don't kill\nthem.  Furthermore, the attack is between states, not religions.\nThere are Christians being attacked as well.  One of the towns under\nattack is one of the few places where Christians and Moslems are\nliving together peacefully.\n\nThe precedents being suggested are from the OT.  There are in fact two\ndifferent things being alluded to.  The first is from the entry into\nCanaan.  For that to be a parallel, we would need for God to have\npromised this land through a prophet.  And we would need the war to be\na holy war.  There were tight constraints on behavior in those\nattacks.  Any violations were likely to cause the Israelites to be\ndefeated.  Rape would not have been tolerated.  While the accounts in\nJoshua emphasize towns that were totally destroyed, note that it was\npossible for a town to make peace with the Israelites, and that once\nthat was done -- even when deception was involved -- they were\nexpected to honor it.  In contrast, there have been many violations of\nagreement in this incident. I see no evidence that God has granted\nBosnia to the Serbs as a promised land, and if he had, their behavior\nwould have disqualified this from being a holy war.\n\nThe other OT parallel is from later, when Israel was defeated by\nAssyria and Babylonia.  The prophets saw this as a judgement on Israel\nfor her sins.  Someone asks whether we shouldn't see this as a\njudgement on the Bosnians for their sins.  This sounds like a replay\nof the old claim that we shouldn't have doctors or hospitals because\nillness is God's judgement.  Yes, even bad things may be used by God\nfor good.  That includes actions of bad people.  But that doesn't\njustify them.  If you read the prophets, you find them very clear that\nin attacking Israel, the Assyrians and Babylonians were acting as\n*unintentional* agents of God.  Their intent was to attack God's\npeople, and they would be judged for it.  The fact that they were\nactually carrying out God's plan didn't excuse their action.\nFurthermore, we shouldn't conclude from this that all attacks are\njudgements from God.  God explicitly interpreted that case, through\nhis prophets.  As far as I know, he did not send any prophets to\nBosnia.  While I find it hard to see any good in the current fighting,\nI am sure God will eventually make good come out of bad.  But that\ndoesn't justify it, and it won't save the people who are doing it from\njudgement.\n\nI am particularly concerned about the implications of this issue\nbecause of current tensions between the West and Moslem-oriented\nnations.  What we do not need is for Moslems to conclude that\nChristians think it's OK to kill Moslems.  The implications for the\nmid-East, and even relations with American Moslems, could be quite\nserious.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10630, "properties": {"category": "sci.crypt", "text": "From: grady@netcom.com (1016/2EF221)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: capriccioso\nX-Newsreader: TIN [version 1.1 PL6]\nDistribution: na\nLines: 54\n\nI am eager to hear the legal theory behind restricting exchange of\ncryptographic data and encrypted messages, given the first admendment;\nthe theory behind regulating the *personal* encryption of one's personal\n*thoughts and feelings* seems even less tenable.\n\nPerhaps if we make a *treaty* with, say, Iceland, to restrict crypto\nparaphernalia can a good \"end run\" around the Constitution happen...\n(Treaties -- as someone pointed out -- has the force of any other \"law of\nthe land\".  Like the Bill of Rights.)\n\n\n    Amendment 1\n\n    Congress shall make no law respecting an establishment of religion, or\nprohibiting the free exercise thereof; or abridging the freedom of speech,\nor of the press; or the right of the people peaceably to assemble, and to\npetition the Government for a redress of grievances.\n\n    Amendment 2\n\n    A well regulated Militia, being necessary to the security of a free State,\nthe right of the people to keep and bear Arms, shall not be infringed.\n\n    Amendment 3\n\n    No Soldier shall, in time of peace be quartered in any house, without the\nconsent of the Owner, nor in time of war, but in a manner to be prescribed\nby law.\n\n    Amendment 4\n\n    The right of the people to be secure in their persons, houses, papers, and\neffects, against unreasonable searches and seizures, shall not be violated,\nand no Warrants shall issue, but upon probable cause, supported by Oath or\naffirmation, and particularly describing the place to be searched, and the\npersons or things to be seized.\n\n    Amendment 5\n\n    No person shall be held to answer for a capital, or otherwise infamous\ncrime, unless on a presentment or indictment of a Grand Jury, except in\ncases arising in the land or naval forces, or in the Militia, when in\nactual service in time of War or public danger; nor shall any person be\nsubject for the same offence to be twice put in jeopardy of life or limb;\nnor shall be compelled in any criminal case to be a witness against\nhimself, nor be deprived of life, liberty, or property, without due process\nof law; nor shall private property be taken for public use, without just\ncompensation.\n\n\nWell -- at least for a few minutes we had some privacy...\n-- \ngrady@netcom.com  2EF221 / 15 E2 AD D3 D1 C6 F3 FC  58 AC F7 3D 4F 01 1E 2F\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10631, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: pec2@Isis.MsState.Edu (Paul E. Carroll)\nSubject: ** DO NOT ROTATE INTERRUPTER ** WOOPS!!  HELP!!\nNntp-Posting-Host: isis.msstate.edu\nOrganization: Mississippi State University\nLines: 22\n\nAAAHHHH!!!!!  Please someone tell me what I have done!!!\n\nMy 40 Meg miniscribe (8450AT) has a big sticker on the side that says\n\n***DO NOT ROTATE INTERRUPTER** --->  (big knob here)\n\nA big knob sticking off the side of the drive is pretty hard NOT to turn\nwhen removing the drive!\n\nI turned it.   Now the drive won't spin up!  Even with no data or controller\ncables plugged in.. just power... it won't spin up!!\n\nPlease help!  \n\nThanks\n\n\n--\n-Paul Carroll\n\n-(pec2@Ra.MsState.Edu)    (pec2@ERC.MsState.Edu)\n-NSF Engineering Research Center for Computational Field Simulation\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10632, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Pleasant Yankee Surprises\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nLines: 22\n\nIn article <1993Apr15.200629.7200@alleg.edu> luriem@alleg.edu(Michael Lurie) The Liberalizer writes:\n>\n>     Actually, I kind of liked the Abott trade. We did trade the rookie of  \n>the year, SNOW, but with Don mattingly at first for another 8 years, Why  \n>bother.\n\nI'd be willing to make two wagers:\n1) Snow doesn't win ROY.\n2) Mattingly is out of baseball within five years.\n\nI'm skeptical of the first, because I don't think Snow is that good a\nplayer, and he is on a losing team.\n\nI'm skeptical of the second because of his back.  Mattingly is 32 this\nyear, and how many players play until they are 40?  Not too many, and\nmost of them didn't have chronic back problems when they were 32.\n\nCould be wrong on either or both, but I think that's the smart way to\nbet...\n\nCheers,\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10633, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: satam@saathi.ncst.ernet.in (Kirtikumar G. Satam)\nSubject: PC Scanners\nOrganization: /usr/userc/rts/satam/.organization\nLines: 30\n\n\nHello there,\n\nI am looking out for good scanners (gray-scale only, no color) which can\nbe connected to IBM PC compatibles. Also, automatic tray feeding is a must.\nCan somebody point out good scanners? What are things that one should look\nfor while purchasing a scanner? I do not want hand-held scanners.\n\nMy preliminary requirements are\n1. 75 to 300/400 dpi\n2. dithering / half-toning (various patterns)\n3. drivers for DOS and windows\n4. Standard file formats (what are they?).\n5. Automatic feed.\n6. Anything more?\n\n\tIs there any comparative survery in Byte or PC Mag? Which issue?\n\nPlease e-mail. I'll summerize.\n\n- satam.\nsatam@saathi.ernet.in\n\n--\n-------------------------------------------------------------------------\nKirtikumar G. Satam ===>> satam@saathi.ncst.ernet.in\nScientist, Network Division.\nNational Center For Software Technology, Juhu, Bombay 400 049\nTel : +91 22 620 1606\t\t\tFax : +91 22 621 0139\n-------------------------------------------------------------------------\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10634, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: skcgoh@tartarus.uwa.edu.au (Shaw Goh)\nSubject: 1.44Mb F/D WANTED\nOrganization: The University of Western Australia\nLines: 2\nNNTP-Posting-Host: tartarus.uwa.edu.au\nX-Newsreader: Tin 1.1 PL5\n\nSubject says it  all.  Please email soon.  \nskcgoh@tartarus.uwa.edu.au\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10635, "properties": {"category": "rec.motorcycles", "text": "From: artc@world.std.com (Art Campbell)\nSubject: More MOA stuff --- like the RA\nOrganization: The World Public Access UNIX, Brookline, MA\nLines: 17\n\nOK -- so we've got a hotly contested BMWOA election and some inept \nleadership.\n\nMy question is the history of the BMW organization that lead to the\nformation of the BMWRA. Was there something going on in the OA years\nago that precipitated the formation of two competing owner's groups?\n\nJust to stave off flames: I'm a (relatively new) member of both groups\nand besides a difference in the slickness of the magazines, it seems\nthe major difference is that the RA guys seem to have more fun. . .\n\nArt\n-- \nArt Campbell          artc@world.std.com            72227.1375@compuserve.com\n   DoD 358                                  _Real_ BMWs have just two wheels.\n    \"... In my opinion, there's nothing in this world beats a '52 Vincent \n     and a redheaded girl.\" -- Richard Thompson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10636, "properties": {"category": "talk.politics.misc", "text": "From: as010b@uhura.cc.rochester.edu (Tree of Schnopia)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: University of Rochester - Rochester, New York\nLines: 35\nNntp-Posting-Host: uhura.cc.rochester.edu\n\nIn <Apr.17.06.54.41.1993.15825@romulus.rutgers.edu> kaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n\n\n>> 1) So what?\n\n>So this bolsters the contention that many homosexuals are liars.\n\nThis statement is just so blatantly disgusting and free of any implicit\nneural activity that I will almost completely ignore it.\n\n\n>> -- \n>> ------          Join the Pythagorean Reform Church!               .\n>> \\    /        Repent of your evil irrational numbers             . .\n>>  \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n>              ^^^^^^^^^^^\n>>   \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n\n>The above smacks of antiHispanic bigotry.\n\nSigh.  It's so amusing to watch bigots point fingers at what they imagine to\nbe other bigots.  I do believe this person meant \"bean *counting*\".  And are\nyou trying to suggest that only Hispanics eat beans?  Or that they even have\na monopoly on eating beans?  Or that this person is seriously promoting what\nis obviously a tongue-in-cheek .sig?\n\nYou must have a brain somewhere, if you can cause your fingers to type.  Use\nit.\n\nDrywid\n-- \n----bi    Andrew D. Simchik\t\t\t\t\tSCHNOPIA!\n\\ ----    as010b@uhura.cc.rochester.edu\t\t\t\tTreeWater\n \\\\  /    \n   \\/     \"Words Weren't Made For Cowards\"--Happy Rhodes\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.498+0000", "event": "documents", "entityId": 10637, "properties": {"category": "talk.politics.guns", "text": "From: rats@cbnewsc.cb.att.com (Morris the Cat)\nSubject: Re: Ban All Firearms !\nOrganization: AT&T\nDistribution: usa\nLines: 38\n\n\n|\tFirearms tend to fall into this low dollar/pound area.\n|\tIt would not be economic to smuggle them in. All production\n|\twould have to be local. There are not all that many people\n|\twho have both the skill AND motivation to assemble worthwhile\n|\tfirearms from scratch. High-ranking crime figures could\n|\tobtain imported Uzis and such, but the average person, and\n|\taverage thug, would be lucky to get a zip-gun - and would\n|\tpay through the nose for it. \n\nThis is not borne out of reality; the old Soviet Union had a very\nserious domestic handgun and submachinegun trade, guns that were\nof commercial grade because they were produced in honest-to-goodness\nmachineshops. Why would all production have to be local; don't we\nhave a road system that is the envy of the world?\n\nI seem to recall incidents in the past where Chinese entreprenaurs\nattempted to smuggle AK-47s (semi-autos) into this country to\nget around import number limitations (May have been Gunweek where\nI read that years ago...)\n\nAny person with high-school drafting skills and vocational school\nmachineshop training could produce a submachinegun. You talk about\nthe average person not being able get even a zip-gun; well now, think\nof all that private CNC controlled machinery that is not being used for\n3 shifts a day; do you think that if guns were being sold on the\nblack market for say, $150, an enterprising mechanical engineer\ncould be using that machinery to produce workable submachineguns\nfor sale? After all, GUNWEEK had an article and pictures on how BATF\nwas looking for the manufacturer of quite efficient silencers that\nwere of commercial quality and finish.\n\nLook at it this way, 25% of the U.S. households have a handgun. Say\nat least half of those keep one for self-defense. You are talking a\npotential market of of tens of millions of people who would seek\nfirearms for the purpose of self-preservation. Only a fool would\nbelieve that market would not be filled, regardless of government\nprohibitions.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10638, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dcoleman@utxvms.cc.utexas.edu (Daniel M. Coleman)\nSubject: Re: ATI Ultra Pro Confirmation\nLines: 41\nNntp-Posting-Host: blonde.cc.utexas.edu\nOrganization: The University of Texas at Austin\nLines: 41\n\nIn article <Fn+0rAZBBh107h@eosvcr.wimsey.bc.ca>, aew@eosvcr.wimsey.bc.ca (Alan Walford) writes:\n> I have heard many things about the ATI Ultra Pro card. Some have\n> been positive but most are negative. Could people please confirm\n> these?  (I am interested in the EISA version in particular).\n> \n> 1) The card does not work in a system with 32M RAM.\n\nThe higher memory limits apply to ISA cards only, as far as I know.  The VLB\nand EISA version should have no problems.\n \n> 2) The card works in a 32M system with some switches\n>    set but it is much slower.\n\nAgain, the memory aperture need only be disabled if you have more than 124M RAM\n(EISA and VLB) or 12 M (ISA).  32M should not be a problem for you. \n \n> 3) The card is _interlaced_ in its 24bit (true-colour) modes.\n\nNope.  I can use 640x480 at 72hz, 24-bit and 800x600 at 70hz, 24-bit, all\nnon-interlaced.\n \n> 4) The latest build 59 drivers still do not work in many\n>    cases.\n\nThey aren't perfect, but are much improved.  I don't recall the last time which\nI had to leave mach 32 mode (ATI GUP mode) and switch to 8514 or VGA mode due\nto software incompatibility.\n \n> 5) This card is the fastest full colour card for the money.\n\nIt's quite fast, but whether or not its the fastest is open to debate.\n \n> 6) This card is the greatest thing since sliced bread. ;-)\n\nI like it.\n\n-- \nDaniel Matthew Coleman\t\t   |   Internet: dcoleman@utxvms.cc.utexas.edu\n-----------------------------------+---------- : dcoleman@ccwf.cc.utexas.edu\nThe University of Texas at Austin  |\t DECnet: UTXVMS::DCOLEMAN\nElectrical/Computer Engineering\t   |\t BITNET: DCOLEMAN@UTXVMS [.BITNET]\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10639, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: schauf@iastate.edu (Brian J Schaufenbuel)\nSubject: Philips 17\" monitor\nKeywords: 17\" monitor\nOrganization: Iowa State University, Ames, IA\nDistribution: usa\nLines: 26\n\n\n\nDoes anybody have an opinion on the Philips 1762DT 17\" monitor?  How does it\ncompare to the Nanao 17\"?  I am looking for a good 17\" (like many other\nnet'ers) and found a good price for the Philips.  Here some the specs:\n\n\tSony Trinitron tube\n\tdigital micro control\n\t1280x1024 NI\n\t.25 dp\n\t300x225 mm display area\n\tto 100 Hz refresh\n\tanti-glare, MPR-II...\n\tauto-scan 30-64 kHz\n\nWhy don't I ever see this monitor for sale (ONE company in Apr computer shopper)\nWhat is the 1764DC?  What is the best price around for this?....\n\nand how 'bout that MAG 17\"?  I love my MAG 15\" (except for that little color\nalignment thing on the l/r edges)...\n\n-- \n_______________________________________- Brian Schaufenbuel____________________\n| Brian J Schaufenbuel [ \"There is no art which one government sooner learns  ]\n| Helser 3644 Halsted  [  than that of draining money from the pockets of the ]\n| Ames, Ia  50012      [  people [especially college students].\" - Adam Smith ]\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10640, "properties": {"category": "talk.religion.misc", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Ignorance is BLISS, was Is it good that Jesus died?\nOrganization: Cookamunga Tourist Bureau\nLines: 17\n\nIn article <f1682Ap@quack.kfu.com>, pharvey@quack.kfu.com (Paul Harvey)\nwrote:\n> In article <sandvik-170493104859@sandvik-kent.apple.com> \n> sandvik@newton.apple.com (Kent Sandvik) writes:\n> >Ignorance is not bliss!\n \n> Ignorance is STRENGTH!\n> Help spread the TRUTH of IGNORANCE!\n\nHuh, if ignorance is strength, then I won't distribute this piece\nof information if I want to follow your advice (contradiction above).\n\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10641, "properties": {"category": "sci.electronics", "text": "From: sburton@dres.dnd.ca (Stan Burton)\nSubject: Re: Radar detector DETECTORS?\nContent-Type: text/plain; charset=iso-8859-1\nNntp-Posting-Host: stan\nContent-Transfer-Encoding: 8bit\nOrganization: Defence Research Establishment Suffield\nX-Newssoftware: GRn-beta 1.16g (04.01.93) by Michael B. Smith & Mike Schwartz\nMime-Version: 1.0\nDistribution: na\nLines: 25\n\nIn article <1993Apr14.181738.18472@bmers95.bnr.ca> alee@bmerh794.bnr.ca (Louis Leclerc) writes:\n>\n> In article <34263@oasys.dt.navy.mil> you write:\n> >VA, CT, Wash DC  and I think BC Canada where I've heard they actually\n> >use Radar detector detectors.\n>\n> Nope, not in British Columbia.  Detectors are legal here in BC, I've even\n> got one.\n>\n> In Alberta and Ontario they're illegal, and detection devices are sometimes\n> used.  I've heard the police in Ontario prefer a much more direct method of\n> detection.  Just trigger the radar gun, watch for people slamming on the\n> brakes, and search the car.\n>\n>\n> David Lee\n> leex@sfu.ca\n>\n\nDetectors are legal in Alberta, the old law was overturned a long time ago.\n\n--\n\nStan Burton (DND/CRAD/DRES/DTD/MSS/AGCG)                 sburton@dres.dnd.ca\n(403) 544-4737     DRE Suffield, Box 4000, Medicine Hat, AB, Canada, T1A 8K6\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10642, "properties": {"category": "talk.politics.misc", "text": "From: donb@igor.tamri.com (Don Baldwin)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: TOSHIBA America MRI, South San Francisco, CA\nLines: 21\n\nIn article <1993Apr15.193603.14228@magnus.acs.ohio-state.edu>\nrscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) writes:\n>>Just _TRY_ to justify the War On Drugs, I _DARE_ you!\n>\n>A friend of mine who smoke pot every day and last Tuesday took 5 hits of acid \n>is still having trouble \"aiming\" for the bowl when he takes a dump.  Don't as \n>me how, I just have seen the results.\n\nGee, the War on Drugs has been going on for all these years and they're\nstill getting drugs!  Imagine that...\n\nMy friends who like grass (I don;t agree but it's pretty harmless) are\nunable to get it, yet I know a number of places where someone stupid\nenough could get crack cocaine within a half hour of leaving my office.\n\nThe War on Drugs has been completely unsuccessful, yet it's lead to really\nhorrible abuses of peoples' COnstitutional rights.  I don't see how a\nthinking person could justify it.\n\n   don\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10643, "properties": {"category": "comp.sys.mac.hardware", "text": "From: hades@coos.dartmouth.edu (Brian V. Hughes)\nSubject: Re: LCIII->PowerPC?\nReply-To: hades@Dartmouth.Edu\nOrganization: Dartmouth College, Hanover, NH\nDisclaimer: Personally, I really don't care who you think I speak for.\nModerator: Rec.Arts.Comics.Info\nLines: 10\n\nmirsky@hal.gnu.ai.mit.edu (David Joshua Mirsky) writes:\n\n>Hi. I own an LCIII and I recently heard an interesting rumor.\n>I heard that the LCIII has a built in slot for a PowerPC chip.\n>Is this true? I heard that the slot is not the same as the PDS\n>slot.  Is that true?\n\n    Don't believe the hype. There is no such thing as a PowerPC slot.\n\n-Hades\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10644, "properties": {"category": "sci.crypt", "text": "From: ld231782@longs.lance.colostate.edu (L. Detweiler)\nSubject: Privacy & Anonymity on the Internet FAQ (2 of 3)\nSupersedes: <net-privacy/part2_733153240@GZA.COM>\nOrganization: TMP Enterprises\nLines: 1543\nExpires: 21 May 1993 04:00:06 GMT\nReply-To: ld231782@longs.lance.colostate.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Email and account privacy, anonymity, file encryption, \n academic computer policies, relevant legislation and references, \n EFF, and other privacy and rights issues associated with use of the\n Internet and global networks in general.\nX-Last-Updated: 1993/03/04\n\nArchive-name: net-privacy/part2\nLast-modified: 1993/3/3\nVersion: 2.1\n\n\nIDENTITY, PRIVACY, and ANONYMITY on the INTERNET\n================================================\n\n(c) 1993 L. Detweiler.  Not for commercial use except by permission\nfrom author, otherwise may be freely copied.  Not to be altered. \nPlease credit if quoted.\n\nSUMMARY\n=======\n\nEmail and account privacy, anonymity, file encryption,  academic \ncomputer policies, relevant legislation and references, EFF, and \nother privacy and rights issues associated with use of the Internet\nand global networks in general.\n\n(Search for <#.#> for exact section. Search for '_' (underline) for\nnext section.)\n\nPART 2\n====== (this file)\n\nResources\n---------\n\n<4.1> What UNIX programs are related to privacy?\n<4.2> How can I learn about or use cryptography?\n<4.3> What is the cypherpunks mailing list?\n<4.4> What are some privacy-related newsgroups?  FAQs?\n<4.5> What is internet Privacy Enhanced Mail (PEM)?\n<4.6> What are other Request For Comments (RFCs) related to privacy?\n<4.7> How can I run an anonymous remailer?\n<4.8> What are references on privacy in email?\n<4.9> What are some email, Usenet, and internet use policies?\n<4.10> What is the MIT ``CROSSLINK'' anonymous message TV program?\n\nMiscellaneous\n-------------\n\n<5.1> What is ``digital cash''?\n<5.2> What is a ``hacker'' or ``cracker''?\n<5.3> What is a ``cypherpunk''?\n<5.4> What is `steganography' and anonymous pools?\n<5.5> What is `security through obscurity'?\n<5.6> What are `identity daemons'?\n<5.7> What standards are needed to guard electronic privacy?\n\nIssues\n------\n\n<6.1> What is the Electronic Frontier Foundation (EFF)?\n<6.2> Who are Computer Professionals for Social Responsibility (CPSR)?\n<6.3> What was `Operation Sun Devil' and the Steve Jackson Game case?\n<6.4> What is Integrated Services Digital Network (ISDN)?\n<6.5> What is the National Research and Education Network (NREN)?\n<6.6> What is the FBI's proposed Digital Telephony Act?\n<6.7> What other U.S. legislation is related to privacy on networks?\n<6.8> What are references on rights in cyberspace?\n<6.9> What is the Computers and Academic Freedom (CAF) archive?\n\nFootnotes\n---------\n\n<7.1> What is the background behind the Internet?\n<7.2> How is Internet `anarchy' like the English language?\n<7.3> Most Wanted list\n<7.4> Change history\n\n\n* * *\n\n\nRESOURCES\n=========\n\n\n_____\n<4.1> What UNIX programs are related to privacy?\n\n  For more information, type `man [cmd]' or `apropos [keyword]' at the\n  UNIX shell prompt.\n\n    passwd - change password\n    finger - obtain information about a remote user\n    chfn   - change information about yourself obtainable by remote\n             users (sometimes `passwd -f')\n    chmod  - change the rights associated with a file or directory\n    umask  - (shell) change the default (on creation) file access\n             rights\n    ls     - list the rights associated with files and directories\n    xhost  - allow or disable access control of particular users to an\n             Xwindow server\n    last   - list the latest user logins on the system and their\n             originations\n    who    - list other users, login/idle times, originations\n    w      - list other users and what they are running\n    xhost  - access control list for X Window client use\n    xauth  - control X Window server authentication\n    \n    .signature  - file in the home directory appended to USENET posts\n    .forward    - file used to forward email to other accounts\n    .Xauthority - file used for X Window server authentication keys\n    $SIGNATURE  - variable used for name in email and USENET postings\n\n  The 'tcpdump' packet-tracing program is loosely based on SMI's\n  \"etherfind\" although none of the etherfind code remains.  It was\n  originally written by Van Jacobson, Lawrence Berkeley Laboratory,\n  as part of an ongoing research project to investigate and improve\n  tcp and internet gateway performance.  A current version is\n  available via anonymous ftp from host ftp.ee.lbl.gov (currently at\n  address 128.3.254.68) file tcpdump.tar.Z (a compressed Unix tar\n  file). This program is subject to  the 'standard' Berkeley network\n  software copyright.\n\n_____\n<4.2> How can I learn about or use cryptography?\n\n  A general introduction to mostly theoretical cryptographic issues,\n  especially those frequently discussed in sci.crypt, is available\n  in FAQ form:\n\n  >  Compiled by:\n  >        cme@ellisun.sw.stratus.com (Carl Ellison)\n  >        Gwyn@BRL.MIL (Doug Gwyn)\n  >        smb@ulysses.att.com (Steven Bellovin)\n\n  NIST (U.S. National Institute for Standards and Technology)\n  publishes an introductory paper on cryptography, special\n  publication 800-2 ``Public-Key Cryptograhy'' by James Nechvatal\n  (April 1991).  Available via anonymous FTP from\n  csrc.ncsl.nist.gov (129.6.54.11), file pub/nistpubs/800-2.txt. \n  Also via available anonymous FTP from wimsey.bc.ca as crypt.txt.Z\n  in the crypto directory.  Covers technical mathematical aspects\n  of encryption such as number theory.\n\n  More general information can be found in a FAQ by Paul Fahn of RSA\n  Labortories via anonymous FTP from rsa.com in /pub/faq.ps.Z.  See\n  the `readme' file for information on the `tex' version.  Also\n  available as hardcopy for $20 from   RSA Laboratories, 100 Marine\n  Parkway, Redwood City, CA  94065.  Send questions to\n  faq-editor@rsa.com.\n\n  Phil Zimmerman's PGP (Pretty Good Privacy) public-domain package\n  for public key encryption is available at numerous sites, and is\n  in widespread use over the internet for general UNIX-based file\n  encryption (including email).  Consult the archie FTP database. \n  Also see the newsgroup alt.security.pgp.  Mailing list requests\n  to info-pgp-request@lucpul.it.luc.edu.\n\n  From the RIPEM FAQ by Marc VanHeyningen\n  <mvanheyn@whale.cs.indiana.edu> on news.answers:\n\n  > RIPEM is a program which performs Privacy Enhanced Mail (PEM)\n  > using the cryptographic techniques of RSA and DES.  It allows\n  > your electronic mail to have the properties of authentication\n  > (i.e. who sent it can be confirmed) and privacy (i.e. nobody can\n  > read it except the intended recipient.)\n  > \n  > RIPEM was written primarily by Mark Riordan\n  > <mrr@scss3.cl.msu.edu>. Most of the code is in the public domain,\n  > except for the RSA routines, which are a library called RSAREF\n  > licensed from RSA Data Security Inc.\n  > \n  > RIPEM is available via anonymous FTP to citizens and permanent\n  > residents in the U.S. from rsa.com; cd to rsaref/ and read the\n  > README file for info.\n  > \n  > RIPEM, as well as some other crypt stuff, has its `home site' on\n  > rpub.cl.msu.edu, which is open to non-anonymous FTP for users in\n  > the U.S. and Canada who are citizens or permanent residents.  To\n  > find out how to obtain access, ftp there, cd to pub/crypt/, and\n  > read the file GETTING_ACCESS.\n\n  Note: cryptography is generally not well integrated into email yet\n  and some system proficiency is required by users to utilize it.\n\n_____\n<4.3> What is the cypherpunks mailing list?\n\n  Eric Hughes <hughes@toad.com> runs the `cypherpunk' mailing list\n  dedicated to ``discussion about technological defenses for privacy\n  in the digital domain.''  Send email to\n  cypherpunks-request@toad.com to be added or subtracted from the\n  list. From the charter:\n\n  > The most important means to the defense of privacy is encryption.\n  > To encrypt is to indicate the desire for privacy.  But to encrypt\n  > with weak cryptography is to indicate not too much desire for\n  > privacy. Cypherpunks hope that all people desiring privacy will\n  > learn how best to defend it.\n\n_____\n<4.4> What are some privacy-related newsgroups?  FAQs?\n  \n  Newsgroups\n  ==========\n\n  alt.comp.acad-freedom.news\n  alt.comp.acad-freedom.talk \n  --------------------------\n    Moderated and unmoderated issues related to academic freedom and\n    privacy at universities. Documented examples of violated\n    privacy in e.g. email.  Documented examples of `censorship' as\n    in e.g. limiting USENET groups local availability.\n\n  alt.cyberpunks\n  --------------\n    Virtual reality, (science) fiction by William Gibson and Bruce \n    Sterling, cyberpunk in the mainstream.\n \n  alt.hackers\n  -----------\n    USENET Network News Transfer Protocol (NNTP) posting mechanisms, \n    Simple Mail Transfer Protocol (SMTP), `obligatory hack' reports.\n\n  alt.privacy\n  -----------\n    General privacy issues involving taxpaying, licensing, social\n    security numbers, etc.\n  \n  alt.security \n  comp.security.misc\n  ------------------\n    Computer related security issues.  FAQ in news.answers below.\n  \n  alt.security.pgp\n  alt.security.ripem\n  ----------------\n    Dedicated to discussing public domain cryptographic software\n    packages: PGP, or ``Pretty Good Privacy'' Software developed by\n    Phil Zimmerman for public key encryption, and RIPEM by Mark\n    Riordan for public key and DES encryption.\n  \n  comp.society.privacy\n  --------------------\n    Privacy issues associated with computer technologies.  Examples:\n    caller identification, social security numbers, credit\n    applications, mailing lists, etc.  Moderated.\n    \n  comp.eff.news\n  comp.eff.talk\n  -------------\n    Moderated and unmoderated groups associated with the Electronic\n    Frontier Foundation started by Mitch Kapor for protecting civil\n    and constitutional rights in the electronic realm.\n  \n  news.admin\n  news.admin.policy\n  -----------------\n    Concerns of news administrators.  NNTP standards and mechanisms.\n    \n  news.lists\n  ----------\n    USENET traffic distributions.  Most frequent posters, most\n    voluminous groups, most active sites, etc.\n  \n  sci.crypt\n  ---------\n    Considers scientific and social issues of cryptography. \n    Examples: legitimate use of PGP, public-key patents, DES,\n    cryptographic security, cypher breaking, etc.\n  \n\n  FAQs\n  ====\n\n  FAQs or ``Frequently-Asked Questions'' are available in the\n  newsgroups *.answers or via anonymous FTP to pit-manager.mit.edu\n  [18.172.1.27] (also rtfm.mit.edu)  from the directory\n  /pub/usenet/news.answers/[x] where [x] is the archive name. This\n  FAQ is archived in the file `net-privacy'.   Others are:\n\n  network-info/part1  \n  ------------------\n    Sources of information about the Internet and how to connect to\n    it, through the NSF or commercial vendors.\n  \n  alt-security-faq\n  ----------------\n    Computer related security issues arising in alt.security and\n    comp.security.misc, mostly UNIX related.\n  \n  ssn-privacy \n  -----------\n    Privacy issues associated with the use of the U.S. Social\n    Security number (SSN).\n  \n  pdial\n  -----\n    Public dialup internet accounts list.\n  \n  college-email/part1\n  -------------------\n    How to find email addresses for undergraduate and graduate\n    students, faculty and staff at various colleges and\n    universities.\n  \n  ripem/faq\n  ---------\n    Information on RIPEM, a program for public key mail encryption\n    officially sanctioned by Public Key Partners Inc., the company\n    that owns patents on public key cryptography.\n  \n  unix-faq/faq/part1\n  ------------------\n    Frequently-asked questions about UNIX, including information on\n    `finger' and terminal spying.\n\n  distributions/*\n  ---------------\n     Known geographic, university, and network distributions.\n\n_____\n<4.5> What is internet Privacy Enhanced Mail (PEM)?\n\n  Internet drafts on Privacy Enhanced Mail (PEM) describe a standard\n  under revision for six years delineating the official protocols for\n  email encryption.  The standard has only recently stabilized and\n  implementations are being developed.\n\n  - RFC-1421: ``Privacy Enhancement for Internet Electronic Mail: \n    Part I: Message Encryption and Authentication Procedures.'' J.\n    Linn <104-8456@mcimail.com>\n\n  - RFC-1422: ``Privacy Enhancement for Internet Electronic Mail: Part\n    II: Certificate-Based Key Management'' S. Kent <Kent@BBN.com>\n\n  - RFC-1424: ``Privacy Enhancement for Internet Electronic Mail: \n    Part IV: Key Certification and Related Services'' B. Kaliski\n    <burt@rsa.com>\n\n  - RFC-1423: ``Privacy Enhancement for Internet Electronic Mail: Part\n    III: Algorithms, Modes, and Identifiers'' D. Balenson\n    <belenson@tis.com>\n\n  Send email to pem-info@tis.com for more information.  See ``RFCs \n  related to privacy'' for information on how to obtain RFCs.\n  \n_____\n<4.6> What are other Requests For Comments (RFCs) related to privacy?\n\n  RFC-822:  SMTP, Simple Mail Transfer Protocol\n  RFC-977:  NNTP, Network News Transfer Protocol\n  RFC-1036: Standard for interchange of network news messages\n  RFC-1208: Glossary of Networking Terms\n  RFC-1207: Answers to ``experienced Internet user'' questions\n  RFC-1206: Answers to ``new Internet user'' questions\n  RFC-1355: Privacy issues in Network Information center databases\n\n  \n  RFC-1177 is ``FYI: Answers to commonly asked ``new internet user'' \n  questions, and includes: basic terminology on the Internet (TCP/IP,\n  SMTP, FTP), internet  organizations such as IAB (Internet\n  Activities Board) and IETF  (Internet Enbgineering Task Force), and\n  a glossary of terms.  Also from ftp.eff.org:\n  /pub/internet-info/internet.q.\n\n  > RFCs can be obtained via FTP from NIC.DDN.MIL, with the pathname\n  > RFC:RFCnnnn.TXT or RFC:RFCnnnn.PS (where `nnnn' refers to the\n  > number of the RFC).  Login with FTP, username `anonymous' and\n  > password `guest'.  The NIC also provides an automatic mail\n  > service for those sites which cannot use FTP.  Address the\n  > request to SERVICE@NIC.DDN.MIL and in the subject field of the\n  > message indicate the RFC number, as in `Subject: RFC nnnn' (or\n  > `Subject: RFC nnnn.PS' for PostScript RFCs).\n  >\n  > RFCs can also be obtained via FTP from NIS.NSF.NET.  Using FTP,\n  > login with username `anonymous' and password `guest'; then\n  > connect to the RFC directory (`cd RFC').  The file name is of the\n  > form RFCnnnn.TXT-1 (where `nnnn' refers to the number of the\n  > RFC).  The NIS also provides an automatic mail service for those\n  > sites which cannot use FTP.  Address the request to\n  > NIS-INFO@NIS.NSF.NET and leave the subject field of the message\n  > blank.  The first line of the text of the message must be `SEND\n  > RFCnnnn.TXT-1', where nnnn is replaced by the RFC number.\n  \n_____\n<4.7> How can I run an anonymous remailer?\n\n  Cypherpunk remailer source is at soda.berkeley.edu in the\n  /pub/cypherpunks directory.  It's written in PERL, and is\n  relatively easy to install (no administrative rights are required).\n  Karl Barrus  <elee9sf@menudo.uh.edu> has more information and\n  modifications. Also, most remailer operators mentioned above are\n  amenable to discussing features, problems, and helping new sites\n  become operational. Address all points in the section\n  ``responsibities of anonymous use'' in this document prior to\n  advertising your service.  You should be committed to the long-term\n  stability of the site and avoid running one surreptitiously.\n\n_____\n<4.8> What are references on privacy in email?\n\n\n  Brown, Bob. ``EMA Urges Users to Adopt Policy on E-mail Privacy.''  \n  Network World (Oct 29, 1990), 7.44: 2.\n  \n  Bairstow, Jeffrey. ``Who Reads your Electronic Mail?'' Electronic\n  Business  (June 11, 1990) 16 (11): 92.\n\n  ``Electronic Envelopes - the uncertainty of keeping e-mail private''\n  Scientific American, February 1993.\n\n  ftp.eff.org\n  ===========\n\n  /pub/eff/papers/email_privacy\n  ---\n    Article on the rights of email privacy. by Ruel T. Hernandez.\n\n  /pub/academic/law/privacy.email\n  ---\n    ``Computer Electronic Mail and Privacy'', an edited version of a\n    law school seminar paper by Ruel T. Hernadez.\n\n  /pub/eff/papers/email-privacy-biblio-2\n  ---\n    Compilation of bibliography on E-Mail and its privacy issues (part\n    2 of the work).  Compiled by Stacy B. Veeder (12/91).\n\n  /pub/eff/papers/email-privacy-research\n  ---\n    The author at Digital Research tried to formalize their employee\n    privacy policy on E-Mail.  The casesightings are divided into two\n    groups: US Constitutional law, and California law.\n\n  /pub/eff/papers/company-email\n  ---\n    Formulating a Company Policy on Access to and Disclosure of\n    Electronic Mail on Company Computer Systems by David R. Johnson\n    and John Podesta for the Electronic Mail Assocation\n\n  /pub/cud/alcor\n  ---\n    Information on Alcor Co., an e-mail privacy suit.\n\n  /pub/academic/law/privacy.email\n  ---\n    Email privacy search at Berkeley.\n\n_____\n<4.9> What are some email, Usenet, and internet use policies?\n\n  The Computer Policy and Critiques Archive is a collection of the\n  computer policies of many schools and networks, run by the\n  Computers and Academic Freedom group on the Electronic Frontier\n  Foundation FTP site. The collection also includes critiques of some\n  of the policies.\n\n  > If you have gopher, the archive is browsable with the command:\n  > gopher -p academic/policies gopher.eff.org\n  > \n  > The archive is also accessible via anonymous ftp and email. Ftp\n  > to ftp.eff.org (192.88.144.4). It is in directory\n  > `pub/academic/policies'. For email access, send email to\n  > archive-server@eff.org. Include the line:\n  > \n  > send acad-freedom/policies <filenames>\n  > \n  > where <filenames> is a list of the files that you want. File\n  > README is a detailed description of the items in the directory.\n  > \n  > For more information, to make contributions, or to report typos\n  > contact J.S. Greenfield (greeny@eff.org). Directory `widener'\n  > contains additional policies (but not critiques).\n\n\n  ftp.eff.org\n  ===========\n  \n  /pub/cud/networks\n  ---\n    Acceptable Use Policies for various networks, including CompuServe\n    (file `compuserve'), NSFNET (file `nsfnet') with information on\n    research and commercial uses. See /pub/cud/networks/index.\n\n  /pub/cud/networks/email\n  ---\n    Policies from various sysadmins about how they handle the issue of\n    email privacy,  control, and abuse, compiled by T. Hooper \n    <hooper_ta@cc.curtin.edu.au>.\n  \n  /pub/cud/schools/\n  ---\n    Computer use policies of a number of schools. See schools/Index\n    for a full list and description.\n\n  \n  Commentary\n  ==========\n\n  /pub/academic/faq/policy.best\n  ---\n    Opinions on the best academic computer policies.\n\n\n  /pub/academic/faq/email.policies\n  ---\n    Do any universities treat email and computer files as private?\n\n  /pub/academic/faq/netnews.writing\n  ---\n    Policies on what users write on Usenet.\n\n  /pub/academic/faq/netnews.reading\n  ---\n    Policies on what users read on Usenet: should my university remove\n    (or restrict) Netnews newsgroups because some people find them\n    offensive?\n\n  /pub/academic/faq/policy\n  ---\n    What guidance is there for creating or evaluating a university's\n    academic computer policy?\n\n______\n<4.10> What is the MIT ``CROSSLINK'' anonymous message TV program?\n\n  > CROSSLINK is an anonymous message system run on MIT Student\n  > Cable TV-36. It provides an anonymous medium through which MIT\n  > students can say those things they might otherwise find\n  > difficult, inconvenient or impossible to say in person.  It's\n  > also a way to send fun or totally random messages to your\n  > friends over the air.  It is similar to the anonymous message\n  > pages found in many college newspapers, except that it's\n  > electronic in nature and it's free.\n\n  Messages can be posted to the service via email.  For more\n  information send email to crosslink@athena.mit.edu.\n\n\nMISCELLANEOUS\n=============\n\n_____\n<5.1> What is ``digital cash''?\n\n  With digital encryption and authentication technologies, the\n  possibility of a widespread digital cash system may someday be\n  realized.  A system utilizing codes sent between users and banks\n  (similar to today's checking system except entirely digital) may\n  be one approach.  The issues of cryptography, privacy, and\n  anonymity are closely associated with transfer of cash in an\n  economy.  See the article in Scientific American by David Chaum\n  (~Dec.1992).\n\n  An experimental digital bank is run by Karl Barrus\n  <elee9sf@Menudo.UH.EDU> based on suggestions by Hal Finney on the\n  cypherpunks mailing list.  To use the server send mail to\n  elee7h5@rosebud.ee.uh.edu message with the following text:\n\n    ::\n    command: help\n    \n    user@host\n\n  where `user@host' is your email address.\n \n  \n_____\n<5.2> What is a ``hacker'' or ``cracker''?\n\n  These terms arouse strong feelings by many on their meaning,\n  especially on the internet.  In the general news media in the past\n  a person who uses computers and networks to malicious ends (such as\n  breaking into systems) has been referred to as a hacker, but most\n  internet users prefer the term ``cracker'' for this.  Instead, a\n  ``hacker'' is perceived as a benign but intensely ambitious,\n  curious, and driven computer user who explores obscure areas of a\n  system, for example---something of a proud electronic pioneer and\n  patriot.  This is the sense intended in this document.  See also\n  the ``Hacker's Dictionary'' and the FAQ `alt-security-faq'.\n \n \n_____\n<5.3> What is a ``cypherpunk''?\n\n  From the charter of the cypherpunk mailing list:\n\n  > Cypherpunks assume privacy is a good thing and wish there were\n  > more of it.  Cypherpunks acknowledge that those who want privacy\n  > must create it for themselves and not expect governments,\n  > corporations, or other large, faceless organizations to grant\n  > them privacy out of beneficence.  Cypherpunks know that people\n  > have been creating their own privacy for centuries with whispers,\n  > envelopes, closed doors, and couriers.  Cypherpunks do not seek\n  > to prevent other people from speaking about their experiences or\n  > their opinions.\n\n  See information on the cypherpunk mailing list below.\n\n  See also the CryptoAnarchist Manifesto and the Cryptography Glossary\n  in soda.berkeley.edu:/pub/cypherpunks.\n\n_____\n<5.4> What is `steganography' and anonymous pools?\n\n  Closely associated with encryption is `steganography' or the\n  techniques for not only pursuing private (encrypted) communication\n  but concealing the very  existence of the communication itself. \n  Many new possibilities in this area are introduced with the\n  proliferation of computer technology.  For example, it is possible\n  to encode messages in the least-significant bits of images,\n  typically the most 'noisy'. In addition, when such an item is\n  posted in a public place (such as a newsgroup), virtually\n  untraceable  communication can take place between sender and\n  receiver.  For  steganographic communications in the electronic\n  realm one another possibility is setting up a mailing list where\n  individual messages get broadcast to the entire list and individual\n  users decode particular messages with their unique key.   An\n  anonymous pool has been set up by Miron Cuperman\n  (miron@extropia.wimsey.com) for experiments.  Send email to\n  <pool0-request@extropia.wimsey.com>  with one of the following\n  commands in the subject line:\n\n    subscribe\n    unsubscribe\n    help\n\n_____\n<5.5> What is `security through obscurity'?\n\n  `Security through obscurity' refers to the attempt to gain\n  protection from system weaknesses by hiding sensitive information\n  or programs relating to them.  For example, a company may not make\n  public information on its software's encryption techniques to evade\n  `attacks' based on knowledge of it. Another example would be\n  concealing data on the existence of security holes or bugs in\n  operating systems.  Or, some reliance may be made on the fact that\n  some standard or mechanism with potential problems is serious\n  because they are ``not widely known'' or ``not widely used.'' This\n  argument is occasionally applied to mechanisms for email and Usenet\n  posting `forgery'. `Security through obscurity' is regarded as a\n  very feeble  technique at best and inappropriate and ineffective at\n  worst (also called the ``head-in-the-sand approach''). See the FAQ\n  for alt.security.  \n  \n  Some remarks of John Perry Barlow, cofounder of the Electronic\n  Frontier Foundation, directed to NSA agents at the First\n  International Symposium on National Security & National\n  Competitiveness held in McLean, Virginia  Dec. 1, 1992:\n\n  > Digitized information is very hard to stamp classified or keep\n  > contained. ... This stuff is incredibly leaky and volatile.  It's\n  > almost a life form in its ability to self-propagate.  If\n  > something hits the Net and it's something which people on there\n  > find interesting it will spread like a virus of the mind.  I\n  > believe you must simply accept the idea that we are moving into\n  > an environment where any information which is at all interesting\n  > to people is going to get out.  And there will be very little\n  > that you can do about it.  This is not a bad thing in my view,\n  > but you may differ...\n\n_____\n<5.6> What are `identity daemons'?\n  \n  RFC-931 describes a protocol standard that allows UNIX programs to\n  query a remote user's login name after connection to a local\n  communication socket (a connection of this type is established\n  during FTP and TELNET sessions, for example).  The standard is not\n  widely supported, perhaps 10% of internet sites currently implement\n  it but the number is increasing.  The mechanism is detrimental to\n  anonymity.  Regular users cannot disable it but system\n  adminstrators can circumvent it.  This standard may represent a\n  trend toward greater authentication mechanisms.\n\n_____\n<5.7> What new standards are needed to guard electronic privacy?\n\n\n  Remailing/Posting\n  -----------------\n  \n  - Stable, secure, protected, officially sanctioned and permitted,\n    publicly and privately operated anonymous servers and hubs.\n  - Official standards for encryption and anonymity in mail and USENET\n    postings.\n  - Truly anonymous protocols with source and destination information\n    obscured or absent and hidden routing mechanisms (chaining,\n    encrypted addresses, etc.)\n  - Standards for anonymous email addressing, embedding files, and\n    remailer site chaining.\n  \n  General\n  -------\n  \n  - Recognition of anonymity, cryptography, and related privacy\n    shields as legitimate, useful, desirable, and crucial by the\n    general public and their governments.\n  - Widespread use and implementation of these technologies \n    by systems designers into\n    hardware, software, and standards, implemented `securely,'\n    `seamlessly,' and `transparently'.\n  - General shift of use, dependence, and reliance to means other than\n    wiretapping and electronic surveillance by law enforcement\n    agencies.\n  - Publicity, retraction, and dissolution of laws and government\n    agencies opposed to privacy, replaced by structures dedicated to\n    strengthening and protecting it.\n\n\nISSUES\n======\n\n_____\n<6.1> What is the Electronic Frontier Foundation (EFF)?\n\n  From ftp.eff.org:/pub/EFF/mission_statement:\n\n  > A new world is arising in the vast web of digital, electronic\n  > media which connect us.  Computer-based communication media like\n  > electronic mail and computer conferencing are becoming the basis\n  > of new forms of community.  These communities without a single,\n  > fixed geographical location comprise the first settlements on an\n  > electronic frontier.\n  > \n  > While well-established legal principles and cultural norms give\n  > structure and coherence to uses of conventional media like\n  > newspapers, books, and telephones, the new digital media do not\n  > so easily fit into existing frameworks.  Conflicts come about as\n  > the law struggles to define its application in a context where\n  > fundamental notions of speech, property, and place take\n  > profoundly new forms. People sense both the promise and the\n  > threat inherent in new computer and communications technologies,\n  > even as they struggle to master or simply cope with them in the\n  > workplace and the home.\n  > \n  > The Electronic Frontier Foundation has been established to help\n  > civilize the electronic frontier; to make it truly useful and\n  > beneficial not just to a technical elite, but to everyone; and to\n  > do this in a way which is in keeping with our society's highest\n  > traditions of the free and open flow of information and\n  > communication.\n  \n  EFF was started by the multimillionaire Mitchell Kapor, founder of\n  Lotus software, and John Barlow, lyricist for the Grateful Dead\n  rock band.  A highly publicized endeavor of the organization\n  involved the legal defense of  Steve Jackson Games after an FBI\n  raid and an accompanying civil suit  (see section on ``Steve\n  Jackson Games'').  The foundation publishes EFF News (EFFector\n  Online) electronically, send requests to effnews-request@eff.org.\n  \n  In a letter to Mitchell Kapor from the Chairman of the Subcommittee\n  with primary jurisdiction over telecommunications policy dated\n  November 5, 1991,  Representative  Edward J. Markey complemented\n  Mitchell Kapor on his ``insights on the development of a national\n  public information infrastructure'' which ``were appreciated greatly\n  by myself and the Members of the Subcommittee'' (complete text in \n  ftp.eff.com:/pub/pub-infra/1991-12):\n\n  > ...we need to pursue policies that encourage the Bell companies to\n  > work with other sectors of the communications industry to create\n  > a consumer-oriented, public information network. Please let me or\n  > my staff know what policies you and others in the computer\n  > industry believe would best serve the public interest in creating\n  > a reasonably priced, widely available network in which\n  > competition is open and innovation rewarded.  I also want to\n  > learn what lessons from the computer industry over the past ten\n  > to fifteen years should apply to the current debate on\n  > structuring the information and communications networks of the\n  > future....I ask your help in gaining input from the computer\n  > industry so that the Subcommittee can shape policies that will\n  > bring this spirit of innovation and entrepreneurship to the\n  > information services industry.  \n\n  ftp.eff.org\n  ===========\n  \n  /pub/eff/about-eff\n  ---\n    A file of basic information about EFF including goals, mission,\n    achievements, and current projects. Contains a membership form.\n\n  /pub/eff/mission-statement\n  ---\n    EFF mission statement.\n\n  /pub/eff/historical/founding-announcement\n  ---\n    EFF founding press release.\n\n  /pub/eff/historical/eff-history\n  ---\n    John Perry Barlow's ``Not Terribly Brief History of the EFF'' (July\n    10, 1990).  How EFF was conceived and founded, major legal cases,\n    and the organizational directions.\n\n  /pub/eff/historical/legal-case-summary\n  ---\n    EFF legal case summary.\n\n\n_____\n<6.2> Who are Computer Professionals for Social Responsibility (CPSR)?\n\n  The Computer Professionals for Social Responsibility have been\n  working to protect and promote electronic civil liberties issues\n  since ~1982.  The group has three offices (Palo Alto, Cambridge,\n  Washington, DC) and 20 chapters. It is involved in  litigation\n  against the FBI, The NSA, NIST, the Secret Service and other other\n  U.S. government agencies  to declassify and provide documentation\n  on issues such as Operation Sundevil, the FBI wiretap proposal,\n  NSA's interference in crypography, the breakup of the 2600 raid in\n  Arlington, Va in Nov 1992. Members speak frequently in front on\n  Congress, state legislators and public utility commissions to\n  testify on privacy, information policy, computer security, and\n  caller identification.\n\n  CPSR has created an extensive Internet Privacy library available\n  via FTP, Gopher, WAIS, and email at cpsr.org, currently comprising\n  the largest collection of privacy documents on the internet.  For\n  more information, anonymous FTP  cpsr.org:/cpsr/.\n\n\n  (Thanks to Dave Banisar <banisar@washofc.cpsr.org> for contributions\n  here.)\n\n_____\n<6.3> What was `Operation Sundevil' and the Steve Jackson Game case?\n\n  In the early 1990's a fear spread among U.S. law enforcement agencies\n  on the illicit activities of `hackers' and `phreakers' involved in\n  such activities as credit card fraud and long-distance call thievery.\n  \n  (see ftp.eff.org:/pub/SJG/General_Information/EFFector1.04):\n\n  > `Operation Sundevil,' the Phoenix-inspired crackdown of May\n  > 8,1990, concentrated on telephone code-fraud and credit-card\n  > abuse, and followed this seizure plan with some success. \n  > [Bulletin Board Systems] went down all over America, terrifying\n  > the underground and swiftly depriving them of at least some of\n  > their criminal instruments.  It also saddled analysts with some\n  > 24,000 floppy disks, and confronted harried Justice Department\n  > prosecutors with the daunting challenge of a gigantic nationwide\n  > hacker show-trial involving highly technical issues in dozens of\n  > jurisdictions.\n\n  Massive `show-trials' never materialized, although isolated\n  instances of prosecution were pursued.  The movement reached a\n  crescendo in Texas with the highly publicized case of illegal\n  search and seizure involving the Steve Jackson Games company of\n  Austin Texas on March 1, 1990.  From the column GURPS' LABOUR LOST\n  by Bruce Sterling <bruces@well.sf.ca.us> in Fantasy and Science\n  Fiction Magazine:\n\n  > In an early morning raid with an unlawful and unconstitutional\n  > warrant, agents of the Secret Service conducted a search of the\n  > SJG office.  When they left they took a manuscript being prepared\n  > for publication, private electronic mail, and several computers,\n  > including the hardware and software of the SJG Computer Bulletin\n  > Board System.  Yet Jackson and his business were not only\n  > innocent of any crime, but never suspects in the first place. \n  > The raid had been staged on the unfounded suspicion that\n  > somewhere in Jackson's office there `might be' a document\n  > compromising the security of the 911 telephone system.\n\n  FBI agents involved in the seizure were named in a civil suit filed\n  on behalf of Steve Jackson Games by The Electronic Frontier\n  Foundation.  See information on EFF below.  From an article by Joe\n  Abernathy in the Houston Chronicle ~Feb 1, 1993:\n  \n  > AUSTIN -- An electronic civil rights case against the Secret\n  > Service closed Thursday with a clear statement by federal\n  > District Judge Sam Sparks that the Service failed to conduct a\n  > proper investigation in a notorious computer crime crackdown,\n  > and went too far in retaining  custody of seized equipment. \n  > \n  > Secret Service Special Agent Timothy Foley of Chicago, who was in\n  > charge of three Austin computer search-and-seizures on March 1,\n  > 1990, that led to the lawsuit, stoically endured Spark's rebuke\n  > over the Service's poor investigation and abusive computer\n  > seizure policies.  While the Service has seized dozens of\n  > computers since the crackdown began in 1990, this is the first\n  > case to challenge the practice. \n  > \n  > Sparks grew visibly angry when it was established that the Austin\n  > science fiction magazine and game book publisher was never\n  > suspected of a crime, and that agents did not do even marginal\n  > research to establish a criminal connection between the firm and\n  > the suspected illegal activities of an employee, or to determine\n  > that the company was a publisher. Indeed, agents testified that\n  > they were not even trained in the Privacy Protection Act at the\n  > special Secret Service school on computer crime. \n  > \n  > \"How long would it have taken you, Mr. Foley, to find out what\n  > Steve Jackson Games did, what it was?\" asked Sparks. \"An hour? \n  > \n  > \"Was there any reason why, on March 2, you could not return to\n  > Steve Jackson Games a copy, in floppy disk form, of everything\n  > taken? \n  > \n  > \"Did you read the article in Business Week magazine where it had\n  > a picture of Steve Jackson -- a law-abiding, tax-paying citizen\n  > -- saying he was a computer crime suspect? \n  > \n  > \"Did it ever occur to you, Mr. Foley, that seizing this material\n  > could harm Steve Jackson economically?\" \n  > \n  > Foley replied, \"No, sir,\" but the judge offered his own answer. \n  > \n  > \"You actually did, you just had no idea anybody would actually go\n  > out and hire a lawyer and sue you.\" \n  > \n  > More than $200,000 has been spent by the Electronic Frontier \n  > Foundation in bringing the case to trial. The EFF was founded by \n  > Mitchell Kapor amid a civil liberties movement sparked in large\n  > part by the Secret Service computer crime crackdown. \n\n\n  ftp.eff.org\n  ===========\n  \n  /pub/cud/papers/sundevil\n  ---\n    A collection of information on Operation SunDevil by the Epic\n    nonprofit publishing project. Everything you wanted to know but\n    could never find.\n\n  /pub/cud/papers/sj-resp\n  ---\n    Steve Jackson's response to the charges against him.\n\n_____\n<6.4> What is Integrated Services Digital Network (ISDN)?\n\n  ISDN is a high-speed data communications standard that utilizes\n  existing copper telephone lines, and is a possible inexpensive and\n  intermediate alternative to laying fiber optic cable for phone\n  networks.  The speeds involved may be sufficient for audio and\n  video transmission applications.  G. V. der Leun in the file\n  ftp.eff.org: /pub/pub-infra/1991-11:\n\n  > Telecommunications in the United States is at a crossroads.  With\n  > the Regional Bell Operating Companies now free to provide\n  > content, the shape of the information networking is about to be\n  > irrevocably altered.  But will that network be the open,\n  > accessible, affordable network that the American public needs? \n  > You can help decide this question.\n  > \n  > The Electronic Frontier Foundation recently presented a plan to\n  > Congress calling for the immediate deployment of a national\n  > network based on existing ISDN technology, accessible to anyone\n  > with a telephone connection, and priced like local voice service.\n  >  We believe deployment of such a platform will spur the\n  > development of innovative new information services, and maximize\n  > freedom, competitiveness, and civil liberties throughout the\n  > nation.\n  > \n  > The EFF is testifying before Congress and the FCC; making\n  > presentations to public utility commisions from Massachusetts to\n  > California; and meeting with representatives from telephone\n  > companies, publishers, consumer advocates, and other stakeholders\n  > in the telecommunications policy debate.\n  > \n  > The EFF believes that participants on the Internet, as pioneers on\n  > the electronic frontier, need to have their voices heard at this\n  > critical moment.\n\n  To automatically receive a description of the platform and details,\n  send mail to archive-server@eff.org, with the following line:\n\n    send documents open-platform-overview\n\n  or send mail to eff@eff.org.  See also the Introduction to the EFF\n  Open Platform Proposal in ftp.eff.org:/pub/pub-infra/1991-02.\n\n  \n  References\n  ==========\n\n  ``Digital Data On Demand.'' MacWorld, 2/82 (page 224).\n  ---\n    56Kbps vs. ISDN services and products. See comments by J. Powers\n    in ftp.eff.org:pub/pub-infra/1992-02.\n\n  ``Telephone Service That Rings of the Future.'' By Joshua Quittner. \n  Newsday, Tue, Jan 7 1992.\n  ---\n    Implications of ISDN for the masses, written in popular science\n    style.   John Perry Barlow (cofounder EFF). Regional telephone\n    companies (Ohio Bell).  ISDN as ``Technological Rorschach Test.''\n     Anecdotes about McDonald's,  Barbara Bush teleconferencing. See\n    complete text in ftp.eff.org:/pub/pub-infra/1992-01.\n    \n  ftp.eff.org:/pub/pub-infra/\n  ---\n    Files 1991-11 through 1992-05 containing email from the EFF public\n    infrastructure group organized by month.  Opinions and facts on\n    the pros and cons of ISDN, Integrated Services Digital Network. \n    Uses of ISDN (phone video, audio, etc.)  Japanese model.\n    Alternatives to ISDN (HDSL, ADSL, fiber optics). Technical \n    specifications of ISDN, implementation details, cost issues,\n    political obstacles, (RBOC, Regional Bell Operating Companies or\n    `Baby Bells', e.g. NET, New England Telephone).  Influencing\n    development of future networks (e.g. ISDN and NREN, National\n    Research and Education  Network), encouraging competition (cable\n    TV systems). Press releases and news articles.  Letter from Rep.\n    E. J. Markey to M. Kapor.\n\n_____\n<6.5> What is the National Research and Education Network (NREN)?\n\n  The Nation Research and Education Network was introduced in\n  legislation cosponsored by Sen. A. Gore to promote high-speed data\n  network infrastructure augmenting the internet with up to 50 times\n  faster transmission rates.  The bill passed the House on November\n  20, 1991, the Senate on November 22, 1991, and was signed by the\n  President on December 9, 1991.\n\n  ftp.eff.org\n  ===========\n  \n  /pub/EFF/legislation/nren-bill-text\n  ---\n    The complete text of the House-Senate compromise version of S.\n    272, the High-Performance Computing Act.\n\n  /pub/internet-info/gore.bill\n  ---\n    102nd congress 1st Session. Text of high performance computing\n    bill cosponsored by Sen. A. Gore.\n\n\n  /pub/EFF/legislation/gore-infrastructure-bill\n  ---\n    The text of S.2937, the Information Infrastructure and Technology\n    Act of 1992 introduced by Senator Gore to expand Federal efforts\n    to develop technologies for applications of high-performance\n    computing and high-speed networking, and to provide for a\n    coordinated Federal program to accelerate development and\n    deployment of an advanced information infrastructure.\n\n  U.S. SAID TO PLAY FAVORITES IN PROMOTING NATIONWIDE COMPUTER NETWORK\n  By John Markoff, N.Y. Times (~18 Dec 91).\n  ---\n    President Bush's legislation for natiowide computer data\n    `superhighway.'  IBM-MCI venture as monopoly destructive to fair\n    competition and  innovation?  National Science Foundation NSFnet.\n    complete text in  /pub/pub-infra/1991-12.\n\n  Commentary\n  ==========\n\n  /pub/academic/statements/nren.privacy.cpsr\n  ---\n    ``Proposed Privacy Guidelines for the NREN'' -- Statement of Marc\n    Rotenberg, Washington Director Computer Professionals for Social\n    Responsibility (CPSR).\n\n  /pub/internet-info/cisler.nren\n  ---\n    The National Research and Education Network: Two meetings Steve\n    Cisler, Senior Scientist Apple Computer Library December 17, 1990\n    Summary of meetings exploring educational issues of NREN by\n    diverse members of academia and industry.\n\n  /pub/internet-info/privatized.nren\n  ---\n    Feb. 14 1991 essay by M. Kapor advocating advantages of a private\n    National Public  Network, and specific recommendations for open\n    NREN policies encouraging  competition.\n\n\n  /pub/eff/papers/netproposition\n  ---\n    An FYI about the proposed NREN setup.\n\n_____\n<6.6> What is the FBI's proposed Digital Telephony Act?\n\n  ``Providers of electronic communication services and private branch\n  exchange operators shall provide within the United States\n  capability and capacity for the government to intercept wire and\n  electronic communications when authorized by law...''\n  \n  From `BBS Legislative Watch: FBIs Wiretapping Proposal Thwarted' by\n  S. Steele in Boardwatch Magazine, Feb. 1993, p. 19-22:\n \n  > In a move that worried privacy experts, software manufacturers and\n  > telephone companies, the FBI proposed legislation to amend the\n  > Communications Act of 1934 to make it easier for the Bureau to\n  > perform electronic wiretapping. The proposed legislation,\n  > entitled 'Digital Telephony,' would have required communications\n  > service providers and hardware manufacturers to make their\n  > systems 'tappable' by providing 'back doors' through which law\n  > enforcement officers could intercept communications. Furthermore,\n  > this capability would have been provided undetectably, while the\n  > communications was in progress, exclusive of any communications\n  > between other parties, regardless of the mobility of the target\n  > of the FBI's investigation, and without degradation of service.\n  >  \n  > ...under the proposal, the Department of Justice (DOJ) can keep\n  > communications products off the market if it determines that\n  > these products do not meet the DOJ's own ... guidelines. This\n  > [could] result in increased costs and reduced competitiveness for\n  > service providers and equipment manufacturers, since they will be\n  > unlikely to add any features that may result in a DOJ rejection\n  > of their entire product. ...the FBI proposal suggests that the\n  > cost of this wiretapping 'service' to the Bureau would have to be\n  > borne by the service provider itself...\n  > \n  > The Electronic Frontier Foundation organized a broad coalition of\n  > public interest and industry groups, from Computer Professionals\n  > for Social Responsibilty (CPSR) and the ACLU to AT&T and Sun\n  > Microsystems, to oppose the legislation. A white paper produced\n  > by the EFF and ratified by the coalition, entitled, `An Analysis\n  > of the FBI Digital Telephony Proposal,' was widely distributed\n  > throughout the Congress.  ... The Justice Department lobbied hard\n  > in the final days to get Congress to take up the bill before\n  > Congress adjourned, but the bill never ... found a Congressional\n  > sponsor (and was therefore never officially introduced). The FBI\n  > [may] reintroduce \"Digital Telephony\" when the 103rd Congress\n  > convenes in January.\n\n  ftp.eff.org\n  ===========\n  \n  /pub/eff/legislation/fbi-wiretap-bill\n  /pub/EFF/legislation/new-fbi-wiretap-bill\n  ---\n    A bill to ensure the continuing access of law enforcement to the\n    content of wire and electronic communications when authorized by\n    law and for other purposes. Version 2 of the bill after FBI\n    changes in response to public response.\n\n  /pub/cud/law/hr3515\n  ---\n    House of Rep bill 3515, Telecommunications Law.\n\n  Commentary\n  ==========\n  \n  /pub/eff/papers/eff-fbi-analysis\n  ---\n    The EFF-sponsored analysis of the FBI's Digital Telephony proposal.\n\n  /pub/eff/papers/ecpa.layman\n  ---\n    The Electronic Communications Privacy Act of 1986: A Layman's View.\n\n  /pub/eff/papers/nightline-wire\n  ---\n    Transcript of ABC's Nightline of May 22, 1992, on the FBI,\n    Privacy, and Proposed Wire-Tapping Legislation. Featured are Marc\n    Rotenberg of the CPSR and William Sessions, Director of the FBI.\n\n  /pub/eff/papers/edwards_letter\n  ---\n    A letter from the Director of the Secret Service to US Rep. Don\n    Edwards, D-California, in response to questions raised by\n    Edwards' Subcommittee. This copy came from Computer Professionals\n    for Social Responsibility in Washington, D.C.\n\n  /pub/eff/papers/fbi.systems\n  ---\n    A description of how information is stored on the FBI's computer\n    systems.\n\n\n_____\n<6.7> What other U.S. legislation is related to privacy?\n\n  ftp.eff.org\n  ===========\n  \n  /pub/cud/law/<state>  \n  ---\n    State computer crime laws:\n                                  AL, AK, AZ, CA, CO, CT, DE, FL, GA,\n                                  HI, IA, ID, IL, IN, MD, MN, NC, NJ,\n                                  NM, NY, OR, TX, VT, VA, WA, WI, WV.\n\n  /pub/cud/law/<country>\n  ---\n    Current computer crime laws for: The United States (federal\n    code), Canada, Ghana, and Great Britain.\n\n  /pub/cud/law/bill.s.618\n  ---\n    Senate bill 618, addressing registration of encryption keys with\n    the government.\n\n  /pub/cud/law/improve\n  ---\n    Improvement of Information Access bill.\n\n  /pub/cud/law/monitoring\n  ---\n    Senate bill 516; concerning abuses of electronic monitoring in the\n    workplace.\n\n  /pub/cud/law/us.e-privacy\n  ---\n    Title 18, relating to computer crime & email privacy.\n\n  /pub/academic/law/privacy.electronic.bill\n  ---\n    The text of Simon's electronic privacy bill, S. 516. ``To prevent\n    potential abuses of electronic monitoring in the workplace.''\n\n_____\n<6.8> What are references on rights in cyberspace?\n\n  ftp.eff.org\n  ===========\n\n  /pub/cud/papers/const.in.cyberspace\n  ---\n    Laurence Tribe's keynote address at the first Conference on\n    Computers, Freedom, & Privacy. `The Constitution in Cyberspace'\n\n  /pub/cud/papers/denning\n  ---\n    Paper presented to 13th Nat'l Comp Security Conf ``Concerning\n    Hackers Who Break into Computer Systems'' by Dorothy E Denning.\n\n  /pub/cud/papers/privacy\n  ---\n    ``Computer Privacy vs First and Fourth Amendment Rights'' by\n    Michael S. Borella\n\n  /pub/cud/papers/rights-of-expr\n  ---\n    Rights of Expression in Cyberspace by R. E. Baird\n\n  /pub/academic/eff.rights\n  ---\n    Bill of Rights' meaning in the Electronic Frontier.\n\n_____\n<6.9> What is the Computers and Academic Freedom (CAF) archive?\n\n  The CAF Archive is an electronic library of information about\n  computers and academic freedom. run by the Computers and Academic\n  Freedom group on the Electronic Frontier Foundation FTP site.\n  \n  > If you have gopher, the archive is browsable with the command:\n  >   gopher -p academic gopher.eff.org\n  > \n  > It is available via anonymous ftp to ftp.eff.org (192.88.144.4) in\n  > directory `pub/academic'. It is also available via email. For\n  > information on email access send email to archive-server@eff.org.\n  > In the body of your note include the lines `help' and `index'.\n  > \n  > For more information, to make contributions, or to report typos\n  > contact J.S. Greenfield (greeny@eff.org).\n\n  ftp.eff.org\n  ===========\n  \n  /pub/academic/statements/caf-statement\n  ---\n    Codifies the application of academic freedom to academic\n    computers, reflecting seven months of on-line discussion about\n    computers and academic freedom.  Covers free expression, due\n    process, privacy, and user participation.\n\n  /pub/academic/books\n  ---\n    Directory of book references related to Computers and Academic\n    Freedom or mentioned in the CAF discussion. The file books/README\n    is a bibliography.\n\n  /pub/academic/faq/archive\n  ---\n    List of files available on the Computers and Academic Freedom\n    archive.\n\n  /pub/academic/news\n  ---\n    Directory of all issues of the Computers and Academic Freedom\n    News. A full list of abstracts is available in file `abstracts'.\n    The special best-of-the-month issues are named with their month,\n    for example, `June'.\n\n\nFOOTNOTES\n=========\n\n\n_____\n<7.1> What is the background behind the Internet?\n \n  The article ``Internet'' in Fantasy and Science Fiction by Bruce\n  Sterling <bruces@well.sf.ca.us> contains general and nontechnical\n  introductory notes on origins of the Internet, including the role\n  of the RAND corporation, the goal of network resilience in face of\n  nuclear attack, MIT, UCLA, ARPANET, TCP/IP, NSF, NREN, etc.:\n\n  > ARPANET itself formally expired in 1989, a happy victim of its \n  > own overwhelming success.  Its users scarcely noticed, for\n  > ARPANET's  functions not only continued but steadily improved. \n  > The use of  TCP/IP standards for computer networking is now\n  > global.  In 1971, a  mere twenty-one years ago, there were only\n  > four nodes in the  ARPANET  network.  Today there are tens of\n  > thousands of  nodes in  the Internet,  scattered over forty-two\n  > countries, with more coming  on-line every day.   Three million,\n  > possibly four million people use  this gigantic\n  > mother-of-all-computer-networks.   \n  > \n  > The Internet is especially popular among scientists, and is \n  > probably the most important scientific instrument of the late \n  > twentieth century.   The  powerful, sophisticated access that it \n  > provides to specialized data and personal communication  has sped\n  > up the pace of scientific research enormously.  \n  > \n  > The Internet's pace of growth in the early 1990s is  spectacular, \n  > almost ferocious.  It is spreading faster than cellular phones,\n  > faster  than fax machines.  Last year the Internet was growing at\n  > a rate of  twenty percent a *month.*  The number of `host'\n  > machines with direct  connection to TCP/IP has been doubling\n  > every year since  1988.   The Internet is moving out of  its\n  > original base in military and  research institutions,  into\n  > elementary and high schools, as well as into  public libraries\n  > and the commercial sector.\n\n  References\n  ==========\n\n  Bowers, K., T. LaQuey, J. Reynolds, K. Roubicek, M. Stahl, and A.\n  Yuan, ``Where to Start - A Bibliography of General Internetworking\n  Information'' (RFC-1175), CNRI, U Texas, ISI, BBN, SRI, Mitre,\n  August 1990.\n\n  The Whole Internet Catalog & User's Guide by Ed Krol.  (1992)\n  O'Reilly  and Associates, Inc.\n  ---\n    A clear, non-jargonized introduction to the  intimidating business\n    of network literacy written in humorous style.\n\n  Krol, E., ``The Hitchhikers Guide to the Internet'' (RFC-1118),\n  University of Illinois Urbana, September 1989.\n\n  ``The User's Directory to Computer Networks'', by Tracy LaQuey.\n\n  The Matrix: Computer Networks and Conferencing Systems Worldwide. \n  by John Quarterman.  Digital Press: Bedford, MA. (1990)  \n  ---\n    Massive and highly technical compendium detailing the\n    mind-boggling scope and  complexity of global internetworks.\n\n  ``!%@:: A Directory of Electronic Mail Addressing and Networks'' by\n  Donnalyn Frey and Rick Adams.\n      \n  The Internet Companion, by Tracy LaQuey with Jeanne C. Ryer (1992)  \n  Addison Wesley. \n  ---\n    ``Evangelical'' etiquette guide to the Internet featuring \n    anecdotal tales of life-changing Internet experiences.  Foreword\n    by  Senator Al Gore.\n\n  Zen and the Art of the Internet: A Beginner's Guide by Brendan P. \n  Kehoe (1992)  Prentice Hall. \n  ---\n    Brief but useful Internet guide with  plenty of good advice on\n    useful databases.\n\n\n  See also ftp.eff.com:/pub/internet-info/.  (Thanks to Bruce Sterling\n  <bruces@well.sf.ca.us> for contributions here.)\n\n\n  General\n  =======\n\n  Cunningham, Scott and Alan L. Porter. ``Communication Networks: A\n  dozen  ways they'll change our lives.'' The Futurist 26, 1\n  (January-February,  1992): 19-22.\n\n  Brian Kahin, ed., BUILDING INFORMATION INFRASTRUCTURE (New York: \n  McGraw-Hill, 1992) ISBN# 0-390-03083-X\n  ---\n    Essays on information infrastructure.  Policy and design issues,\n    research and NREN, future visions, information markets.  See\n    table  of contents in ftp.eff.org:/pub/pub-infra/1992-03.\n\n  Shapard, Jeffrey. ``Observations on Cross-Cultural Electronic \n  Networking.'' Whole Earth Review (Winter) 1990: 32-35.\n\n  Varley, Pamela. ``Electronic Democracy.'' Technology Review \n  (November/December, 1991): 43-51.\n\n______\n<7.2> How Internet `anarchy' like the English language?\n\n  According to Bruce Sterling <bruces@well.sf.ca.us>:\n\n  > The Internet's `anarchy' may seem strange or even unnatural,  but\n  > it makes a certain deep and basic sense.  It's rather like the \n  > `anarchy' of the English language.  Nobody rents English, and\n  > nobody  owns English.    As an English-speaking person, it's up\n  > to you to learn  how to speak English properly  and make whatever\n  > use you please  of it (though the government provides certain\n  > subsidies to help you  learn to read and write a bit).  \n  > Otherwise, everybody just sort of  pitches in, and somehow the\n  > thing evolves on its own, and somehow  turns out workable.  And\n  > interesting.   Fascinating, even.   Though a lot  of people earn\n  > their living from using and exploiting  and teaching  English,\n  > `English' as an institution is public property, a public good.  \n  > Much the same goes for the Internet.   Would English  be improved\n  > if  the `The English Language, Inc.'  had a board of directors\n  > and a chief  executive officer, or a President and a Congress?  \n  > There'd probably be  a lot fewer new words in English, and a lot\n  > fewer new ideas.  \n\n\n_____\n<7.3> Most Wanted list\n\n  Hopefully you have benefitted from this creation, compilation, and\n  condensation of information from various sources regarding privacy,\n  identity, and anonymity on the internet.  The author is committed\n  to keeping this up-to-date and strengthening it, but this can only\n  be effective with your feedback.  In particular, the following\n  items are sought:\n  \n  - Short summaries of RFC documents and other references listed,\n    esp. CPSR files.\n  - More data on the specific uses and penetration of RFC-931.\n  - Internet traffic statistics.  How much is email?  How much\n    USENET?  What are the costs involved?\n  - Famous or obscure examples of compromised privacy\n    on the internet.\n        - FTP site for the code (NOT the code) to turn the .plan file into a\n                named pipe for sensing/reacting to remote `fingers'.\n  - Knowledge on the `promiscuous' mode of receipt or transmission \n    on network  cards.\n  - Details on the infamous experiment where a scientist resubmitted \n    previously accepted papers to a prominent journal with new and\n    unknown authors that were subsequently rejected.\n  - X Windows, EFF, CPSR FAQhood in news.answers.\n  \n  Commerical use of this document is negotiable and is a way for the\n  author to recoup from a significant time investment. Email feedback\n  to ld231782@longs.lance.colostate.edu.  Please note where you saw\n  this (which newsgroup, etc.).\n\n_____\n<7.4> Change history\n\n  3/3/93 v2.1 (current)\n    \n    CPSR pointer, new UNIX mode examples, digital telephony act,\n    Steve Jackson incident, additions/ reorganization to\n    anonymity section, part 3.  Note: v2.0 post to sci.crypt,\n    alt.privacy, news.answers, alt.answers, sci.answers was cancelled\n    by J. Kamens because of incorrect subject line.\n    \n  2/14/93 v2.0\n\n    Major revisions.  New section for X Windows.  Some email privacy\n    items reorganized to network security section.  New sections for\n    email liability issues, anonymity history and responsibilities. \n    Split into three files.  Many new sources added, particularly\n    from EFF and CAF in new `issues' part. `commentary' from \n    news.admin.policy.  21 day automated posting starts.\n\n  2/3/93 v1.0\n\n    More newsgroups & FAQs added.  More `Most Wanted'.  Posted to\n    news.answers.  Future monthly posting to sci.crypt, alt.privacy.\n\n  2/1/93 v0.3\n  \n    Formatted to 72 columns for quoting etc. `miscellaneous,'\n    `resources' sections added with cypherpunk servers and use\n    warnings.  More UNIX examples (`ls' and `chmod').  Posted to\n    alt.privacy, comp.society.privacy.\n  \n  1/29/93 v0.2\n    \n    `Identity' and `Privacy' sections added.  `Anonymity' expanded.\n    Remailer addresses removed due to lack of information and\n    instability.  Posted to sci.crypt.\n  \n  1/25/93 v0.1\n  \n    Originally posted to the cypherpunks mailing list on 1/25/93 as a\n    call to organize a list of anonymous servers.\n  \n  email ld231782@longs.lance.colostate.edu for earlier versions.\n\n\n* * *\n\nSEE ALSO\n========\n\nPart 1 (previous file)\n------\n\n<1.1> What is `identity' on the internet?\n<1.2> Why is identity (un)important on the internet?\n<1.3> How does my email address (not) identify me and my background?\n<1.4> How can I find out more about somebody from their email address?\n<1.5> Why is identification (un)stable on the internet? \n<1.6> What is the future of identification on the internet?\n\n<2.1> What is `privacy' on the internet?\n<2.2> Why is privacy (un)important on the internet?\n<2.3> How (in)secure are internet networks?\n<2.4> How (in)secure is my account?\n<2.5> How (in)secure are my files and directories?\n<2.6> How (in)secure is X Windows?\n<2.7> How (in)secure is my email?\n<2.8> How am I (not) liable for my email and postings?\n<2.9> How do I provide more/less information to others on my identity?\n<2.10> Who is my sysadmin?  What does s/he know about me?\n<2.11> Why is privacy (un)stable on the internet?\n<2.12> What is the future of privacy on the internet?\n\n<3.1> What is `anonymity' on the internet?\n<3.2> Why is `anonymity' (un)important on the internet?\n<3.3> How can anonymity be protected on the internet?\n<3.4> What is `anonymous mail'?\n<3.5> What is `anonymous posting'?\n<3.6> Why is anonymity (un)stable on the internet?\n<3.7> What is the future of anonymity on the internet?\n\nPart 3 (next file)\n------\n\n<8.1> What are some known anonymous remailing and posting sites?\n<8.2> What are the responsibilities associated with anonymity?\n<8.3> How do I `kill' anonymous postings?\n<8.4> What is the history behind anonymous posting servers?\n<8.5> What is the value of anonymity?\n<8.6> Should anonymous posting to all groups be allowed?\n<8.7> What should system operators do with anonymous postings?\n<8.8> What is going on with anon.penet.fi maintained by J. Helsingius?\n\n\n* * *\n\nThis is Part 2 of the Privacy & Anonymity FAQ, obtained via anonymous\n  FTP to pit-manager@mit.edu:/pub/usenet/news.answers/net-privacy/ or \n  newsgroups news.answers, sci.answers, alt.answers every 21 days.\nWritten by L. Detweiler <ld231782@longs.lance.colostate.edu>.\nAll rights reserved.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10645, "properties": {"category": "sci.electronics", "text": "From: davidb@macadam.mpce.mq.edu.au (David Bull)\nSubject: Intel RMX O/S Documentation Wanted\nOrganization: School of MPCE, Macquarie University, Australia.\nLines: 19\nDistribution: world\nNNTP-Posting-Host: macadam.mpce.mq.edu.au\nOriginator: davidb@macadam.mpce.mq.edu.au\n\n\nWe've just been donated a large machine for use in our\nrobotics lab. This device is complete with a 286 based\ncontroller, running the Intel RMX operating system.\n\nUnfortunately, we don't have any documentation on RMX.\n\nCan anybody out there in netland help?\n\nPlease reply via email; I don't regularly catch up with\nthe news.\n\nThanks,\n\nDavid Bull\n\ndavidb@mpce.mq.edu.au\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10646, "properties": {"category": "sci.space", "text": "From: tkelso@afit.af.mil (TS Kelso)\nSubject: Two-Line Orbital Element Set:  Space Shuttle\nKeywords: Space Shuttle, Orbital Elements, Keplerian\nNntp-Posting-Host: scgraph.afit.af.mil\nOrganization: Air Force Institute of Technology\nLines: 21\n\nThe most current orbital elements from the NORAD two-line element sets are\ncarried on the Celestial BBS, (513) 427-0674, and are updated daily (when\npossible).  Documentation and tracking software are also available on this\nsystem.  As a service to the satellite user community, the most current\nelements for the current shuttle mission are provided below.  The Celestial\nBBS may be accessed 24 hours/day at 300, 1200, 2400, 4800, or 9600 bps using\n8 data bits, 1 stop bit, no parity.\n\nElement sets (also updated daily), shuttle elements, and some documentation\nand software are also available via anonymous ftp from archive.afit.af.mil\n(129.92.1.66) in the directory pub/space.\n\nSTS 56     \n1 22621U 93 23  A 93105.58333333  .00090711  00000-0  25599-3 0   249\n2 22621  57.0029 144.8669 0004136 304.2989 134.3206 15.92851555  1179\n1993 023B  \n1 22623U 93 23  B 93103.37312705  .00041032  00000-0  11888-3 0    86\n2 22623  57.0000 155.1150 0004422 293.4650  66.5967 15.92653917   803\n--\nDr TS Kelso                           Assistant Professor of Space Operations\ntkelso@afit.af.mil                    Air Force Institute of Technology\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10647, "properties": {"category": "rec.motorcycles", "text": "From: frankb@sad.hp.com (Frank Ball)\nSubject: Re: Type spesifications (CB, VFR, GT, etc.)\nOrganization: HewlettPackardSantaRosaSystmsDiv,RohnertParkCA\nX-Newsreader: TIN [version 1.1.4 PL6]\nLines: 22\n\nVIDAR OLAF SOLBERG (vidaros@dhhalden.no) wrote:\n& Can somebody tell me what all the letter spesifications on motorcycle models \n& really mean. \n& Example: What means the C, the B and the R in Honda CBR. - Or the V, S, G, L \n& and P in Suzuki VS750GLP\n\nHonda:  a \"V\" designates a V engine street bike. \"VF\" for V-4, \"VT\" for V-twin.\n\"CB\" is a street bike with an parallel twin or inline 4-cylinder engine.\n\"R\" used to mean race bike, but is now also used to mean sport bike.\n\"CL\" was for the old steet scramblers-street bikes with high pipes\n\"CM\" was a \"custom\" street bike\n\"CR\" is dirt only two strokes\n\"XL\" is dual purpose bike\n\"XR\" was dirt only four stroke, but now can be a dual purpose bike if it has\nan \"L\" as a suffix.\n\"GL\" is a touring bike\n\n--\nFrank Ball   1UR-M          frankb@sad.hp.com    (707) 794-4168 work,\nHewlett Packard             (707) 794-3844 fax,  (707) 538-3693 home\n1212 Valley House Drive     IT175, XT350, Seca 750, '62 F-100, PL510\nRohnert Park CA 94928-4999  KC6WUG, LAW, AMA, Dod #7566, I'm the NRA.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10648, "properties": {"category": "comp.sys.mac.hardware", "text": "From: sunnyt@coding.bchs.uh.edu\nSubject: Re: When is Apple going to ship CD300i's?\nOrganization: University of Houston\nLines: 22\nReply-To: ln63sdm@sdcc4.ucsd.edu\nNNTP-Posting-Host: franklin.bchs.uh.edu\n\nIn article <1993Apr19.164734.24779@newsgate.sps.mot.com>  \nrjacks@austlcm.sps.mot.com (rodney jacks) writes:\n> I would really like to get one of the new CD300i CDROM\n> drives for my c650, but my local Apple doesn't know \n> when they will be available.  He doesn't even have a part\n> number yet.   Does anyone know what the part number \n> for this drive is and when it will be available?\n> \n> My Apple dealer suggested I buy one of the CD300 external\n> drives, but I don't want to pay extra for a case/power supply\n> I'm not going to use.\n> \n> -Rodney Jacks\n> (rjacks@austlcm.sps.mot.com)\n\nThe CD300 (external) is already shipping and has been shipping for quite awhile  \nnow.  Demand for the units are high, so they are pretty rare.  I've seen them  \nlisted for around $525-550 at local computer stores and the campus Mac  \nreseller.  I've also heard rumors that they are bundled with a couple of CD's,  \nbut I can't confirm it.\n\nSunny   ===>sunnyt@dna.bchs.uh.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10649, "properties": {"category": "sci.crypt", "text": "From: holland@CS.ColoState.EDU (douglas craig holland)\nSubject: Re: Once tapped, your code is no good any more.\nDistribution: na\nNntp-Posting-Host: beethoven.cs.colostate.edu\nOrganization: Colorado State University, Computer Science Department\nLines: 40\n\nIn article <bontchev.735404289@fbihh> bontchev@fbihh.informatik.uni-hamburg.de writes:\n>andersom@spot.Colorado.EDU (Marc Anderson) writes:\n>\n>> methods.  ``This year's crime bill will have teeth, not bare gums,''\n>> Clinton said.  In particular, his administration will place strict\n>> controls on data formats and protocols, and require the registration\n>> of so-called ``cryptographic keys,'' in the hope of denying drug\n>> dealers the ability to communicate in secret.  Clinton said the\n>> approach could be used for crackdowns on other forms of underground\n>> economic activity, such as ``the deficit-causing tax evaders who\n>> live in luxury at the expense of our grandchildren.''\n>\n>And some people thought that I am exaggerating when claiming that the\n>Cripple Chip is just a first step in a totalitarian plot against the\n>civil liberties in the USA... It seems that I've even been an optimist\n>- the things are happening even faster than I expected.... That's\n>another of the dirty tricks they used to apply on us under the\n>communist regime - do something secret, THEN tell the people about is\n>(after the fact, when nothing can be done any more), and of course,\n>explaining them how much better the situation is now...\n>\n>In my previous messages I wrote that the Americans should wake up and\n>fight against the new proposal. Now it seems to me that it is already\n>too late - it has already happened, the civil liberties have been\n>violated, no, stollen from the American people, while the most part of\n>this people has been sleeping happily... :-((( Too sad...\n>\n\n\tI'm definitely going to write my Congressman, and nobody's ever\ngoing to make me respect a law that violates my freedom of speech, and\nif the feds try to enforce this law on me, I will protect my freedoms, with\nforce if it ever comes to that. (Hopefully, it won't)\n\nDoug Holland\n\n-- \n----------------------------------------------------------------------------\n|  Doug Holland                | Anyone who tries to take away my freedom  |\n|  holland@cs.colostate.edu    | of speech will have to pry it from my     |\n|  PGP key available by E-mail | cold, dead lips!!                         |\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10650, "properties": {"category": "sci.crypt", "text": "From: avg@rodan.UU.NET (Vadim Antonov)\nSubject: Re: Re-inventing Crypto Policy?  An EFF Statement\nOrganization: UUNET Technologies Inc, Falls Church, VA\nLines: 18\nNNTP-Posting-Host: rodan.uu.net\n\nIn article <1993Apr16.204207.24564@eff.org> Danny Weitzner <djw@eff.org> \nwrites:\n>The 80-bit key will be divided between two escrow agents, each of whom\n>hold 40-bits of each key. \n\nI somehow started to doubt technical competence of the\npeople who designed the system.  Why on the Earth split the\n80-bit key in 40-bit parts to keep them in escrow separately\n(having 40 bit and large volumes of data voice links produce\nit should be relatively easy to break it) when they simply\ncould keep 80-bit sequences in N (N>=2) independent places\nand then XOR all the partial keys to get the actual key (N-1\nsequences should obviously be selected randomly and Nth is the\nactual key XOR-ed with the random sequences).\n\n(Or is it a conspiracy? 1/2 :-)\n\n--vadim\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10651, "properties": {"category": "comp.sys.mac.hardware", "text": "From: petere@tesla.mitre.org (Peter D. Engels)\nSubject: Re: 2 questions about the Centris 650's RAM\nNntp-Posting-Host: engels.mitre.org\nOrganization: The MITRE Corporation\nDistribution: usa\nLines: 28\n\nIn article <mcguire.1085350200F@newsserver.utcc.utk.edu>,\nmcguire@utkvx.utk.edu (Michael A. McGuire) wrote:\n> \n> In Article <1993Apr16.075822.22121@galileo.cc.rochester.edu>,\n> hlsw_ltd@uhura.cc.rochester.edu (Dave Hollinsworth) wrote:\n> >With a little luck, I could own a C650 sometime in the near future, and\n> >so I was just wondering if someone could clear these two questions up for me:\n> >\n> >1.  What speed SIMMS does the C650 need/want?  (I know that it needs 80ns\n> >VRAM...not sure for the main RAM.)\n> >\n> \n> 60ns 72 pin simms.\n> \n> >2.  I've heard two conflicting stories about the total expandibility of the\n> >C650's RAM...132 and 136 megs.  Which is true?  (Perhaps another phrasing\n> >would be better:  does the 8 meg version come with all 8 megs on the logic\n> >board, or 4 megs + a 4 meg SIMM?)\n> >\n> 2 configs: 4mb & 8mb. In each case the memory is soldered on the board\n> leaving the 4 simm sockets open. 132mb is the total addressable memory for a\n> 650.\n\nAccording to the (seen several times) postings from Dale Adams of Apple\nComputer, both the 610 and the 650 require 80ns SIMMS - NOT 60 ns.  Only\nthe Centris 800 requires 60 ns SIMMs.\n\nPete\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10652, "properties": {"category": "soc.religion.christian", "text": "From: Bjorn.B.Larsen@delab.sintef.no (A 369)\nSubject: Question: Jesus alone, Oneness\nReply-To: bjorn.b.larsen@delab.sintef.no\nOrganization: delab\nLines: 31\n\nDear fellow netters,\n\nFrom time to time a term like 'Oneness Pentecostals' (or something\nsimilar) has occurred in posts to this group. I also know that there\nis a movement called something like 'Jesus alone.' \n\nI believe in the Trinity and have no plans to change that, but reently\nI was made aware that there is at least one person within our church\nwho holds the view that there is no trinity. In the near future we\nwill discuss this item, and I feel that I shall ask you, my friends on\nthis group, for background information.\n\nCan anybody tell me the basic reasons for holding a belief that there\nis only Jesus? And vice versa: The foundations for the Trinity?\n\nI shall appreciate both quotes from the Bible and historical\ndevelopment.\n\nThank you all.\n\nIn Him,\n\nBjorn\n--\n______________________________________________________________________\n               s-mail:                 e-mail:\n|   |   |      Bjorn B. Larsen         bjorn.b.larsen@delab.sintef.no\n|__ |__ |      SINTEF DELAB\n|  \\|  \\|      N-7034 TRONDHEIM        tel: +47-7-592682 / 592600\n|__/|__/|_     NORWAY                  fax: +47-7-591039 / 594302\n______________________________________________________________________\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10653, "properties": {"category": "comp.graphics", "text": "From: weilej@cary115.its.rpi.edu (Jason Lee Weiler)\nSubject: Re: Sun IPX root window display - background picture\nKeywords: sun ipx background picture\nArticle-I.D.: rpi.gc15hqk\nReply-To: weilej@rpi.edu\nOrganization: Rensselaer Polytechnic Institute, Troy, NY.\nLines: 31\nNntp-Posting-Host: cary115.its.rpi.edu\n\nIn article <1993Apr19.220817.22480@osi.com>, scott@osi.com (Scott Fleming) writes:\n|> \n|> Hello netters!\n|>  \n|> I have a fairly weak question to ask everybody in netland.  I've looked though\n|> the last FAQ for comp.graphics but I didn't find my answer.  Thus the post.\n|>  \n|> I'll keep it short.\n|>  \n|> QUESTION:  How do I display any raster files, gif files, iff or tiff images\n|> that I have on my \"root window\" or background?  I have a sun ipc, openwindows\n|> 3.0, Sun OS 4.1.3 if that helps any.\n|>  \n|> I've compiled POV for the sun and would like to display some of the work I have\n|> done as a background/tile.  Thanks for any help or information that you\n|> provide.  Have a good day.\n|>  \n|> Scott Fleming\n|> OSI\n|>  \n|> P.S.\n|> Kudo's to the people who provided POV, its great!\n|> \n\nScott,\n\tI'm not so sure if this is helpful, but I usually use XV v2.21.  I use Sun IPCs and IPXs, and it works fine.  It can display in a good number of ways.(root being one of them)  It's also possible to have XV put up a background automatically at login.  Hope this helps.\n\nJason Weiler\n<weilej@rpi.edu>\n\nBTW  XV v2.21 is on anonymous FTP somewhere. (archie fer it!)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10654, "properties": {"category": "rec.motorcycles", "text": "From: egreen@East.Sun.COM (Ed Green - Pixel Cruncher)\nSubject: Re: Round Two\nOrganization: Sun Microsystems, RTP, NC\nLines: 22\nDistribution: world\nReply-To: egreen@East.Sun.COM\nNNTP-Posting-Host: laser.east.sun.com\n\nIn article 29788@serval.net.wsu.edu, bill@wsuaix.csc.wsu.edu (William E. Johns;S23015) writes:\n>\n>If Good Sam got 300 bricks, delivered\n>first class postage to their door, at their expense, I bet they would change\n>their policies about mailing lists or about who can use their facilities\n>quickly. \n\nAnd if the Lord God Almighty parted the sky and make a personal\nappearance at their Board of Directors meeting, they would also change\ntheir policies.  The odds are about equal.\n\n>I am curious as to how many bricks I will have to send before this situatiion\n>is cleared up to my satisfaction.  I suspect about 5.  We shall see.\n\nYou'll be extremely lucky if you ever get one through.\n\n---\nEd Green, former Ninjaite |I was drinking last night with a biker,\n  Ed.Green@East.Sun.COM   |and I showed him a picture of you.  I said,\nDoD #0111  (919)460-8302  |\"Go on, get to know her, you'll like her!\"\n (The Grateful Dead) -->  |It seemed like the least I could do...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.499+0000", "event": "documents", "entityId": 10655, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: A moment of silence for the perpetrators of the Turkish Genocide?\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 115\n\nIn article <48299@sdcc12.ucsd.edu> ma170saj@sdcc14.ucsd.edu (System Operator) writes:\n\n>    April 24th is approaching, and Armenians around the world\n>are getting ready to remember the massacres of their family members\n\nCelebrating in joy the cold-blooded genocide of 2.5 million Muslim \npeople by your criminal grandparents between 1914 and 1920? Did you \nthink that you could cover up the genocide perpetrated by your fascist\ngrandparents against my grandparents in 1914? You've never heard of \n'April 23rd'? \n\n\n \"In Soviet Armenia today there no longer exists a single Turkish soul.\n  It is in our power to tear away the veil of illusion that some of us\n  create for ourselves. It certainly is possible to severe the artificial\n  life-support system of an imagined 'ethnic purity' that some of us\n  falsely trust as the only structure that can support their heart beats \n  in this alien land.\"\n            (Sahak Melkonian - 1920 - \"Preserving the Armenian purity\") \n\n\nDuring the First World War and the ensuing years - 1914-1920, \nthe Armenian Dictatorship through a premeditated and systematic \ngenocide, tried to complete its centuries-old policy of \nannihilation against the Turks and Kurds by savagely murdering \n2.5 million Muslims and deporting the rest from their 1,000 year \nhomeland.\n\nThe attempt at genocide is justly regarded as the first instance\nof Genocide in the 20th Century acted upon an entire people.\nThis event is incontrovertibly proven by historians, government\nand international political leaders, such as U.S. Ambassador Mark \nBristol, William Langer, Ambassador Layard, James Barton, Stanford \nShaw, Arthur Chester, John Dewey, Robert Dunn, Papazian, Nalbandian, \nOhanus Appressian, Jorge Blanco Villalta, General Nikolayef, General \nBolkovitinof, General Prjevalski, General Odiselidze, Meguerditche, \nKazimir, Motayef, Twerdokhlebof, General Hamelin, Rawlinson, Avetis\nAharonian, Dr. Stephan Eshnanie, Varandian, General Bronsart, Arfa,\nDr. Hamlin, Boghos Nubar, Sarkis Atamian, Katchaznouni, Rachel \nBortnick, Halide Edip, McCarthy, W. B. Allen, Paul Muratoff and many \nothers.\n\nJ. C. Hurewitz, Professor of Government Emeritus, Former Director of\nthe Middle East Institute (1971-1984), Columbia University.\n\nBernard Lewis, Cleveland E. Dodge Professor of Near Eastern History,\nPrinceton University.\n\nHalil Inalcik, University Professor of Ottoman History & Member of\nthe American Academy of Arts & Sciences, University of Chicago.\n\nPeter Golden, Professor of History, Rutgers University, Newark.\n\nStanford Shaw, Professor of History, University of California at\nLos Angeles.\n\nThomas Naff, Professor of History & Director, Middle East Research\nInstitute, University of Pennsylvania.\n\nRonald Jennings, Associate Professor of History & Asian Studies,\nUniversity of Illinois.\n\nHoward Reed, Professor of History, University of Connecticut.\n\nDankwart Rustow, Distinguished University Professor of Political\nScience, City University Graduate School, New York.\n\nJohn Woods, Associate Professor of Middle Eastern History, \nUniversity of Chicago.\n\nJohn Masson Smith, Jr., Professor of History, University of\nCalifornia at Berkeley.\n\nAlan Fisher, Professor of History, Michigan State University.\n\nAvigdor Levy, Professor of History, Brandeis University.\n\nAndreas G. E. Bodrogligetti, Professor of History, University of California\nat Los Angeles.\n\nKathleen Burrill, Associate Professor of Turkish Studies, Columbia University.\n\nRoderic Davison, Professor of History, George Washington University.\n\nWalter Denny, Professor of History, University of Massachusetts.\n\nCaesar Farah, Professor of History, University of Minnesota.\n\nTom Goodrich, Professor of History, Indiana University of Pennsylvania.\n\nTibor Halasi-Kun, Professor Emeritus of Turkish Studies, Columbia University.\n\nJustin McCarthy, Professor of History, University of Louisville.\n\nJon Mandaville, Professor of History, Portland State University (Oregon).\n\nRobert Olson, Professor of History, University of Kentucky.\n\nMadeline Zilfi, Professor of History, University of Maryland.\n\nJames Stewart-Robinson, Professor of Turkish Studies, University of Michigan.\n\n.......so the list goes on and on and on.....\n\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10656, "properties": {"category": "sci.electronics", "text": "From: levy@levy.fnal.gov (Mark E. Levy, ext. 8056)\nSubject: Sources for Intel D87C51FB?\nNntp-Posting-Host: levy.fnal.gov\nOrganization: Fermilab Computing Division\nLines: 18\n\nI am in the midst of designing a project which requires two motors and an LED\nilluminator driven with Pulse-width modulation.  I'm using the 8751, and\nI understand that the -FB version has a programmable counter array that can\nessentially be set and forgotten to do the PWM.  The problems is, that variant\nis difficult to come by.  I need two or three of the D prefix (ceramic window)\nversion for development, and then lots of the P prefix (plastic OTP) for later\nproduction.  I've tried Avnet, Arrow, and Pioneer.  They (might) have them, but\nI'm looking for samples at this point, and they're not too willing to provide\nthem.  I would buy them, but these vendors have $100.00 minimums.\n\nAny help is appreciated.\n\n================================================================================\n[ Mark E. Levy, Fermilab          |                                            ]\n[ BitNet:   LEVY@FNAL             | Unix is to computing                       ]\n[ Internet: LEVY@FNALD.FNAL.GOV   |       as an Etch-a-Sketch is to art.       ]\n[ HEPnet/SPAN: FNALD::LEVY (VMS!) |                                            ]\n================================================================================\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10657, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: OB-GYN residency\nOrganization: University of Wisconsin Eau Claire\nLines: 13\n\n[reply to geb@cs.pitt.edu (Gordon Banks)]\n \n>>I believe it is illegal for a residency to discriminate against FMGs.\n \n>Is that true?  I know some that won't even interview FMGs.\n \nI think a case could be made that this is discriminatory, particularly\nif an applicant had good board scores and recommendations but wasn't\noffered an interview, but I don't know if it has ever gone to court.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10658, "properties": {"category": "comp.windows.x", "text": "From: bill@west.msi.com (Bill Poitras)\nSubject: Re: Automated X testing\nReply-To: bill@msi.com\nOrganization: Molecular Simulations Inc.\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 27\n\nMark D. Collier (mark@trident.datasys.swri.edu) wrote:\n: Does anyone know what is available in terms of automated testing\n: of X/Motif applications. I am thinking of a system which I could\n: program (or which could record events/output) with our verification\n: test procedures and then run/rerun each time we do regression\n: testing. I am interested in a product like this for our UNIX\n: projects and for a separate project which will be using OpenVMS.\n\nA question like this is answered in the FAQ, about sharing X windows.\nOne of the answers is XTrap, a record and playback extenstion to X.  You\ncan find it at export.lcs.mit.edu:/contrib/XTrapV33_X11R5.tar.Z.\n\nDoes anyone know of a program which doesn't require an X extension?  Most\nthe the X servers we have at work have vendor extensions which we can't\nmodify, so XTrap doesn't help up.  There is X conferencing software at\nmit, but I don't know how easy it would be to modify it to do record and\nplayback.\n\nAny help would be appreciated.\n--\n+-------------------+----------------------------+------------------------+\n| Bill Poitras      | Molecular Simulations Inc. | Tel (408)522-9229      |\n| bill@msi.com      | Sunnyvale, CA 94086-3522   | FAX (408)732-0831      |\n+-------------------+----------------------------+------------------------+\n|FTP Mail           |mail ftpmail@decwrl.dec.com | Offers:ftp via email   |\n|                   |Subject:<CR>help<CR>quit    |                        |\n+-------------------------------------------------------------------------+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10659, "properties": {"category": "talk.politics.misc", "text": "From: lfoard@hopper.Virginia.EDU (Lawrence C. Foard)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: ITC/UVA Community Access UNIX/Internet Project\nLines: 61\n\nIn article <Apr.17.06.54.41.1993.15825@romulus.rutgers.edu> kaldis@romulus.rutgers.edu (Theodore A. Kaldis) writes:\n>In article <C5K5LC.CyF@murdoch.acc.Virginia.EDU> lfoard@hopper.Virginia.EDU (Lawrence C. Foard) writes:\n>\n>> 1) So what?\n>\n>So this bolsters the contention that many homosexuals are liars.\n\nSo if this study is proved wrong then it proves that heterosexuals\nare liars? Unlike the propaganda spouted by the far right the ten\npercent figure was backed up by the best study available at the time.\nIts hardly certain that this new study is correct since it hasn't\neven been out for enough time for any double checking to happen.\n\n>The Alan Guttmacher Institute, btw, is funded by Planned Parenthood,\n>so it hardly qualifies as a bastion of conservatism, or of \"family\n>values\".\n\nOf course if they had found 10% then it would be invalid because it\nwas funded by planned parenthood :)\n\n>> 2) It will be interesting to see the reaction when 2.5million queers\n>>    gather in Washington DC. After all if there are only 6million of\n>>    us then this is an event unprecidented in history...\n>\n>This preassumes that 2.5 million queers will show up on April 25th.\n>There won't be anywhere near that many.  Go ahead -- make my day --\n>promote that number.  That way, it will surely be a much greater\n>embarrassment and slap in the face to homosexual activists when the\n>crowds are much smaller.\n\nEven if its \"only\" one million the point still stands. Even getting\n1/6th of a given population in one place would be unprecidented. \nIf even 1 million show up in DC it will raise serious doubts about\nthis study, or indicate a resolve unprecidented in human history.\n\n>BTW, have you noticed that even Slick Willie isn't going to be in town\n>that day?\n\nHe isn't the target of the march, nor do presidents often speak at\ncivil rights marchs (of course it would have been nice). However\nthe republicans and conservative democrats would do well to take\nnotice.\n\n\n>> -- \n>> ------          Join the Pythagorean Reform Church!               .\n>> \\    /        Repent of your evil irrational numbers             . .\n>>  \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n>              ^^^^^^^^^^^\n>>   \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n>\n>The above smacks of antiHispanic bigotry.\n\nThis is quite amusing. Obviously you know nothing about the history\nof math.\n-- \n------          Join the Pythagorean Reform Church!               .\n\\    /        Repent of your evil irrational numbers             . .\n \\  /   and bean eating ways. Accept 10 into your heart!        . . .\n  \\/   Call the Pythagorean Reform Church BBS at 508-793-9568  . . . .\n    \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10660, "properties": {"category": "misc.forsale", "text": "From: cf059@cleveland.Freenet.Edu (Orion Bernard Yurgionas)\nSubject: INDIANA JONES HINT BOOK WANTED\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 11\nNNTP-Posting-Host: slc10.ins.cwru.edu\n\n\nLooking for hint book for indiana jones and the last crusade\nthe game is for the ibm.e-mail me or call 481 3740 and ask for orion.\n\n\n\n  if you don't have the hint book but know how to answer these questions plao.\n\n1.how do you beat biff. \n2.how do you open the valt door.\n3.how do you knock out the security system.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10661, "properties": {"category": "sci.electronics", "text": "From: vanderby@mprgate.mpr.ca (David Vanderbyl)\nSubject: Re: mysterious TV problem -- source?\nNntp-Posting-Host: chip\nReply-To: vanderby@mprgate.mpr.ca (David Vanderbyl)\nOrganization: MPR Teltech Ltd.\nLines: 30\n\nLLBGB@utxdp.dp.utexas.edu writes:\n>Initial symptoms:\n>-no picture or sound\n>-CRT filament does NOT glow\n>-flyback ticking as described abovew\n\n>Discovered when hooked up the scope:\n>-IF strip is not putting out audio or video signals\n>-everything is making simple 20-30 Hz pulses\n>-horiz out transistor collector (case of the TO-3) is a 20-30 Hz downgoing\n>  sawtooth with ca. 15kHz ring at front end\n\n>guys, WHAT\"S GOING ON HERE?  Anyone seen this before?\n\nWhat is happening is this:\n1) You turn the TV on.\n2) The horizontal output begins normal operation.  This powers up the\n   high voltage and most of the rest of the circuitry.\n3) A problem is sensed and the horizontal oscillator shuts down.\n4) After it powers down the cycle repeats.\n\nThings to check:\nFirst check for a shorted high power component.  Your best bet is the vertical\noutput transistor(s) or, if there is one, the voltage regulator.  The most\ncommon cause of this type of failure is too much current being drawn\nsomewhere.\nAlso look for shutdown circuits (which your TV may or may not have),\nif you can find one that is shutting down the horizontal oscillator\nthen it shouldn't be too hard to find the problem from there.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10662, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: gabrielj@fraser.sfu.ca (Gabriel Noah Jones)\nSubject: Re: umbdr522.zip : Any later version ?\nKeywords: umbdrv mem\n \n \n \nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 1\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10663, "properties": {"category": "comp.graphics", "text": "From: schmidt@PrakInf.TH-Ilmenau.DE (Schmidt)\nSubject: irit to pov ?\nKeywords: raytracer, format conversion\nReply-To: schmidt@PrakInf.TH-Ilmenau.DE (Schmidt)\nOrganization: Technische Hochschule Ilmenau\nLines: 8\nNntp-Posting-Host: merkur.prakinf.tu-ilmenau.de\n\nHas anybody made a converter from irit's .irt or .dat format to\n .pov format ?\n\nThanks!\n\n-- \nSebastian Schmidt\t\t\t\nTU Ilmenau Institut f. praktische Informatik \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10664, "properties": {"category": "rec.autos", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Toyota wagons\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 9\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nHas anybody noticed that Toyota has an uncanny knack for designing horrible\nugly station wagons?  Tercels, Corollas, Camrys.  Have their designers no\naesthetic sense at all?\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10665, "properties": {"category": "misc.forsale", "text": "From: james.mollica%pics@twwells.com (James Mollica)\nSubject: MATH COPRO SALE/TRADE\nReply-To: james.mollica%pics@twwells.com (James Mollica)\nOrganization: Pics OnLine! MultiUser System - 609-753-2540\nLines: 14\n\nI am looking for a math coprocessor for a 286-16mhz.\nShould be a 80287-10 or 12.\nI also have a 80387SX-16 for sale or trade.\nTNX- \n\n               Jim\n\n * 1st 1.10b #1439 * 1stReader: On the cutting edge of software evolution.\n                             \n----\n+------------------------------------------------------------------------+\n| Pics OnLine MultiUser System   (609)753-2540 HST    609-753-1549 (V32) |\n| Massive File Collection - Over 45,000 Files OnLine - 250 Newsgroups    |\n+------------------------------------------------------------------------+\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10666, "properties": {"category": "sci.med", "text": "From: lundby@rtsg.mot.com (Walter F. Lundby)\nSubject: Re: Is MSG sensitivity superstition?\nNntp-Posting-Host: accord2\nOrganization: Motorola Inc., Cellular Infrastructure Group\nLines: 48\n\n\n>>Is there such a thing as MSG (monosodium glutamate) sensitivity?\n>>Superstition. Anybody here have experience to the contrary?\n>>\n \nAs a person who is very sensitive to msg and whose wife and kids are\ntoo, I WANT TO KNOW WHY THE FOOD INDUSTRY WANTS TO PUT MSG IN FOOD!!!\n\nSomebody in the industry GIVE ME SOME REASONS WHY!  \n\nIS IT AN INDUSTRIAL BYPRODUCT THAT NEEDS GETTING GET RID OF?\n\nIS IT TO COVER UP THE FACT THAT THE RECIPES ARE NOT VERY GOOD OR THE FOOD IS POOR QUALITY?\n\nDO SOME OF YOU GET A SADISTIC PLEASURE OUT OF MAKING SOME OF US SICK?\n\nDO THE TASTE TESTERS HAVE SOME DEFECT IN THEIR FLAVOR SENSORS (MOUTH etc...)\n  THAT MSG CORRECTS?\n\nI REALLY DON'T UNDERSTAND!!!\n\nALSO ... Nitrosiamines (sp) and sulfites...   Why them?  There are\n safer ways to preserve food, wines, and beers!\n\nI think \n1) outlaw the use of these substances without warning labels as\nlarge as those on cig. packages.\n2) Require 30% of comparable products on the market to be free of these\nsubstances and state that they are free of MSG, DYES, NITROSIAMINES and SULFITES on the package.\n3) While at it outlaw yellow dye #5.  For that matter why dye food?  \n4) Take the dyes and flavorings out of vitamins.  (In my OSCO only Stress\nTabs (tm) didn't have yellow dye #5)  { My doctor says Yellow Dye #5 is\nresponsible for 1/2 of all nasal polyps !!! }\n\nKEEP FOOD FOOD!  QUIT PUTTING IN JUNK!\n\nJUST MY TWO CENTS WORTH.\n\nSig:  A person tired of getting sick from this junk!\n\n-- \nWalter Lundby\n\n\n\n-- \nWalter Lundby\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10667, "properties": {"category": "talk.politics.mideast", "text": "From: mbkolodn@unix.amherst.edu (MICHAEL BRIAN KOLODNER)\nSubject: How many israeli soldiers does it take to\nOrganization: Amherst College\nX-Newsreader: TIN [version 1.1 PL7]\nLines: 2\n\nBoy that was really humorous.  I'm impressed by your incredible senses of wit,\nsarcasm and propriety.  Mind if I post jokes about your mother?\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10668, "properties": {"category": "rec.sport.baseball", "text": "From: gspira@nyx.cs.du.edu (Greg Spira)\nSubject: Re: Sandberg, Runs, RBIs (was: Re: Notes on Jays vs. Indians Series)\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nDistribution: na\nLines: 28\n\nbratt@crchh7a9.NoSubdomain.NoDomain (John Bratt) writes:\n\n>RBIs and Runs scored are the two most important offensive statistics.\n\nActually, they're pretty worthless, if you want to evaluate players\nwith stats.  RBIs and Runs Scored should be banned; all they do is\nconfuse victims of mediot brainwashing like yourself.  \n\n  You\n>can talk about OBP and SLG% all you want, but the fact remains:\n\n>\tThe team that scores more runs wins the game!\n>\t---------------------------------------------\n\nUh, so?\n\nYou've just explained why we use OBP and SLG to evaluate players.\nPrecisely because the team that scores more runs wins the game.\nTraditional baseball stats have gotten way too far away from methods\nwhich enable fans to see who contributes to those runs scored - that's\nwhere OBP, SLG, Runs Created, Linear Weights, etc. come in.  These\nsimplify matters so that we can more easily measure a player's\noffensive contribution to the team's runs scored.\n\nThank you for making our case.  Have a nice day.\n\nGreg \n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10669, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: Suggestions  on Audio relays ???\nOrganization: Megatest Corporation\nLines: 23\n\nIn article <C5qsBF.IEK@ms.uky.edu> billq@ms.uky.edu (Billy Quinn) writes:\n>I built a little project using the radio shack 5vdc relays to switch\n>audio.  I got pretty bad 'clicks' when the thing switched.  I was doing\n>most of the common things one is supposed to do when using relays and\n>nothing seemed to get rid of the clicks.\n>\n>\n>My question is:\n>\n>\tIs there a good relay/relay circuit that I can use for switching\n>audio, so that there will be *NO* noise of any kind on the audio lines.\n>\n>\n>I will appreciate any advice or references to advice.  Also, exact part\n>numbers/company names etc. for the relays will help!\n\nAre you switching high level signals or low level signals like pre-amp\nout level signals?  Also, are the clicks you mentioning the big\nclack that happens when it switches or are you refering to contact\nbounce?  How are you driving the relays?  TTL gate output?  Switching\ntransistor?  How are the relays connected to what you are driving?\n\nNeed more specifics to answer your question!! :-)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10670, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: Title for XTerm\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 32\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\nKeywords: XTerm\n\n\nIn article <C5oL74.3B1@aeon.in-berlin.de>, thomas@aeon.in-berlin.de (Thomas Wolfram) writes:\n|> >Hey guys!\n|> >I work on many stations and would like this name and current logname\n|> >to be in a title of Xterm when it's open and a machine name only\n|> >when it's closed. In other words, I want $HOST and $LOGNAME to appear\n|> >as a title of opened XTerm and $HOST when XTerm is closed.\n|> >How can I do it?\n|> \n|> Almost all window managers (twm, mwm, olwm and their derivates) support\n|> escape sequences for it. For your purpose put following into your\n|> .login (if you're using csh or tcsh), for sh you have to modify it.\n|> \n|> if ( \"$term\" == \"xterm\" ) then\n|> \techo \"^[]2;${LOGNAME}@${HOST}^G^[]1;${HOST}^G\"\n|> endif\n|> \n\n1) This is NOT a feature of the Window Manager but of xterm.\n2) This sequences are NOT ANSI compatible, are they ?\n   Does anyone know IF there are compatible sequences for this and what they\n   are ? I would think they are DCS (device control sequence) introduced,\n   but may be a CSI sequence exists, too ?\n   This MUST work on a dxterm (VT and ANSI compatible), it may not work\n   on xterms.\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10671, "properties": {"category": "talk.politics.misc", "text": "From: rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy)\nSubject: Re: New Study Out On Gay Percentage\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 17\n\nIn article <C5LA55.Bwq@murdoch.acc.Virginia.EDU> gsh7w@fermi.clas.Virginia.EDU\n(Greg Hennessy) writes:\n>Clayton Cramer writes:\n>#Compared to the table I have already posted from Masters, Johnson,\n>#and Kolodny showing male homosexual partners, it is apparent that\n>#homosexual men are dramatically more promiscuous than the general\n>#male population.\n>\n>Did you ever consider the selection effect that those who are willing\n>to admit to being a member sexual minority (homosexuality) are more\n>willing to admit to being a member of another sexual minority (highly\n>promiscious)?\n>\n\nOh yeah, and men just haaaaate to brag about \"how many woman they've had.\"\n\nRyan\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10672, "properties": {"category": "comp.windows.x", "text": "From: ccdw@kudu.ru.ac.za (Dave Wilson)\nSubject: Xlib timeouts?\nSummary: How to do timeouts using Xlib\nKeywords: Xlib timeouts\nArticle-I.D.: kudu.ccdw.735917051\nOrganization: Rhodes University, Grahamstown, South Africa\nLines: 12\n\nI am in the process of modifying an X application that uses Xlib.  I'd\nlike to include a timer-driven facility (for network polling), but cannot\nsee how to do it using Xlib.  I know it can be done with Xaw, using\nXtAppAddTimeout and XtTimerCallBackProc.  How do I do the same using\nXlib?\n\nThanks for any help.  Please email.\n\n--\nDave Wilson\nComputing Centre, Rhodes University\nGrahamstown, South Africa\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10673, "properties": {"category": "rec.sport.hockey", "text": "Subject: Travesty at the Joe Louis\nFrom: caldwell8102@mtroyal.ab.ca\nOrganization: Mount Royal College, Calgary, Alberta\nLines: 17\n\n(Detroit, April 19)\n\nIn a development that shocked most knowledgable observers, the Detroit Redwings\nscored no less than six goals against the best goaltender in the world en\nroute to a 6-3 win over the best team in the NHL, the Toronto Maple Leafs. \n\nThe Leafs could not be faulted, as they completely dominated the inferior\nDetroit squad and clearly deserved to win. Only the biased officiating of\nAndy Van Hellemond and the idiots that insisted upon throwing an octopus on\nthe ice at every stoppage in an obvious attempt to distract the superior \nvisiting side prevented an all-out massacre of the Wings by the league's best \nteam. \n\n       \t\t\t\t\t\t\t    Alan\n\nP.S. This is sweet, Roger. So sweet. I look forward to the next installment on\nWednesday night. I trust you do, too. \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10674, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ehung@ampex.com (Eric Hung)\nSubject: Re: HELP! Installing second IDE drive\nNntp-Posting-Host: dct3\nOrganization: Ampex Corporation, Redwood City CA\nLines: 37\n\n>\n>>Another possibility is that the 85MB one is already partitioned into\n>>two seperate drives, C and D, and the CMOS asks for \"C: drive\" and \"D:\n>>drive\" setup info rather than \"drive 1\" and \"drive 2\" like most others\n>>I've seen.  Could this be confusing things?\n>\n>>So, I need HELP!  The drive came bereft of any docs, except for some\n>>info for the CMOS setup; the controller has a little piece of paper\n>>about the size of an index card; I cannibalized the cable (it's one\n>>of those with a connector at each end and the one in the middle, so\n>>it looks like a serial connection); now I be lost!\n>\n>>Many, many thanks in advance!  This is practically an emergency (I have\n>>two papers to do on this thing for Monday!)!  Help!\n>>-- \n>>-----------------------\n>>William Barnes         SURAnet Operations\n>>wbarnes@sura.net       (301) 982-4600 voice  (301) 982-4605 fax\n>>Disclaimer:  I don't speak for SURAnet and they don't speak for me.\n>I've been told by our local computer guru that you can't do this unless you \n>perform a low level format on your existing hard drive and set your system \n>up for two hard drives from the beginning.  I took him at his word, and I \n>have not tried to find out any more about it, because I'm not going to back \n>everything up just to add another HDD.  If anyone knows for sure what the \n>scoop is, I would like to know also.  Thanks in advance also.\n>\n>Bill Willis\n>\n\n\nIf you bought your IDE drive from a dealer, you shouldn 't have to \nperform a low level format. Even if the 1st HD is already partitioned\ninto C and D, FDISK will automatically assign the 2 nd HD to D and \nchange the 2nd partition of 1st drive to E.\n\nCheck the jumper settings and CMOS setup, in particular the correct\nnumber of cylinders and tracks\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10675, "properties": {"category": "comp.graphics", "text": "From: Sean McMains <mcmains@unt.edu>\nSubject: Re: Rumours about 3DO ???\nX-Xxmessage-Id: <A7F81FD2F801023C@seanmac.acs.unt.edu>\nX-Xxdate: Mon, 19 Apr 93 15: 22:26 GMT\nOrganization: University of North Texas\nX-Useragent: Nuntius v1.1.1d20\nLines: 83\n\nFirst off: Thanks to all who have filled me in on the existence of the\n68070. I assumed rashly that the particular number would be reserved for\nfurther enhancements to the Motorola line, rather than meted out to\nanother company. Ah, well, I guess that's what I get when I assume the\ncomputer industry will operate in a logical manner! ;-)\n\nIn article <1993Apr16.212441.34125@rchland.ibm.com> Ricardo Hernandez\nMuchado, ricardo@rchland.vnet.ibm.com writes:\n>   Sean, I don't want to get into a 'mini-war' by what I am going to say,\n>but I have to be a little bit skeptic about the performance you are\n>claiming on the Centris, you'll see why (please, no-flames, I reserve\n>those for c.s.m.a :-) )\n>\n>   I was in Chicago in the last consumer electronics show, and Apple had\na\n>booth there.  I walked by, and they were showing real-time video capture\n>using a (Radious or SuperMac?) card to digitize and make right on the\nspot\n>quicktime movies.  I think the quicktime they were using was the old one\n>(1.5).\n\nVersion 1.5 of Quicktime is, as has been stated, the current version of\nthe software. The older version is 1.0, and 1.6 is on the horizon in the\nnot too distant future.\n\n>   They digitized a guy talking there in 160x2xx something.  It played\nback quite\n>nicely and in real time.  The guy then expanded the window (resized) to\n25x by\n>3xx (320 in y I think) and the frame rate decreased enough to notice\nthat it\n>wasn't 30fps (or about 30fps) anymore.  It dropped to like 15 fps.  Then\nhe\n>increased it just a bit more, and it dropped to 10<->12 fps. \n\nQuicktime does a much better job of playing back movies at size than it\ndoes playing back resized movies. Apparently the process of expanding\neach frame's image and dithering the resultant bitmap to the appropriate\nbit depth is pretty processor-intensive. There are optimizers that work\npretty well for showing movies at double size, but if you drop to 1.9x\nsize or increase to 2.1x size, performance suffers dramatically.\n\n>   Then I asked him what Mac he was using... He was using a Quadra\n(don't know\n>what model, 900?) to do it, and he was telling the guys there that the\nQuicktime\n>could play back at the same speed even on an LCII.\n\nHe lied. :-) Quicktime is very CPU dependent. He was probably confused by\nthe fact that QT is locked to an internal timecode, and will play in the\nsame amount of time on any machine. However, an LC will drop frames in\norder to keep the sound and video synced up.\n\nThe Centris and Quadras have similar CPUs and will thus boast similar\nperformance, though the Quadras will be a bit faster due to marginally\nfaster clock speeds and somewhat different architecture.\n\n>   Well, I spoiled his claim so to say, since a 68040 Quadra Mac was\nhaving\n>a little bit of trouble.  And this wasn't even from the hardisk!  This\nwas\n>from memory!\n>\n>   Could it be that you saw either a newer version of quicktime, or some\n>hardware assisted Centris, or another software product running the \n>animation (like supposedly MacroMind's Accelerator?)?\n\nI expect that the version of the Quicktime software you saw was 1.0 -- I\nwas using was 1.5. One of the new codecs in v1.5 allows video at nearly\ntwice the size and the same frame rate as what version 1.0 could handle.\nThe Centris 650 I saw was a plain-vanilla, with the exception of the nice\nspeakers that were playing the sound, and the software was Movie Player,\nthe QT player Apple includes with the software.\n\n>   Don't misunderstand me, I just want to clarify this.\n\nNo problem -- it still surprises me that Quicktime is able to do the\nthings it does as well as it can.\n========================================================================\nSean McMains              | Check out the Gopher    | Phone:817.565.2039\nUniversity of North Texas | New Bands Info server   | Fax  :817.565.4060\nP.O. Box 13495            | at seanmac.acs.unt.edu  | E-Mail:\nDenton TX 76203           |                         |  McMains@unt.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10676, "properties": {"category": "comp.graphics", "text": "From: tdawson@engin.umich.edu (Chris Herringshaw)\nSubject: PaintProgram Wanted\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 8\nDistribution: world\nNNTP-Posting-Host: antithesis.engin.umich.edu\n\nExcuse the sheer newbieness of this post, but I am looking for a decent\nPaintProgram which will save to various file formats (.BMP  .PCX  etc etc)\nvia ftp, freeware, or shareware.  I would like to check out the available\nprograms for little $$ before I check out the commercial market.\n\nThanks in advance for any help or direction you can give me.\n\nDaemon\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10677, "properties": {"category": "misc.forsale", "text": "From: rbacalzo@quasar.sierra.com (Roger Bacalzo)\nSubject: Victoria, B.C. Hotel Room $40/2 nights\nArticle-I.D.: sierra.1993Apr20.162758.11363\nOrganization: Sierra Geophysics, Inc.  Kirkland, WA\nLines: 27\n\nVictoria Hotel Reserv. 2 nights $40\n\nMID-WEEK (Sun - Thurs) Hotel reservation available for Victoria, Canada.\n2 nights/3 days for $40.  Expires June 1, 1993.\n\nThis is a LETTER OF CREDIT (fully transferrable) issued by HOTELCO for\na hotel room in any of a number of available hotels in Victoria, Canada.\nHOTELCO is a reputable hotel booking company that provides hotel stays at \nlow prices.  This LETTER OF CREDIT normally works for weekends, too, but\nall weekends are booked solid for the summer.\n\nSo, check with HOTELCO directly for available dates at one of its member\nhotels to use this LETTER OF CREDIT before June 1.  HOTELCO can be reached \nat (206)485-5200 in Bothell or 1-800-645-8885 during regular business hours.\n\nThen, if you find an acceptable reservation date, contact me for this\nLETTER OF CREDIT.\n\nRoger Bacalzo\nrbacalzo@sierra.com\n(206)828-9094 (home)\n(206)822-5200 x360 (work)\n-- \nRoger Bacalzo\nSierra Geophysics\t\n11255 Kirkland Way      \t(206) 822-5200 ext. 360\nKirkland, WA  98033\t\trbacalzo@sibu.sierra.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10678, "properties": {"category": "sci.space", "text": "From: steinly@topaz.ucsc.edu (Steinn Sigurdsson)\nSubject: Re: Gamma Ray Bursters.  WHere  are they.\nOrganization: Lick Observatory/UCO\nLines: 56\nNNTP-Posting-Host: topaz.ucsc.edu\nIn-reply-to: prb@access.digex.com's message of 23 Apr 1993 23:58:19 -0400\n\nIn article <1radsr$att@access.digex.net> prb@access.digex.com (Pat) writes:\n\n     What  evidence  indicates that Gamma Ray bursters are very far away?\n\nTheir distribution is very isotropic and the intensity distribution,\ncrudely speaking, indicates we're seeing an edge to the distribution.\n\n   Given the enormous  power,  i was just wondering,  what if they are\n   quantum  black holes or something  like that  fairly close by?\n\n   Why would they have to be at  galactic ranges?   \n\nNow, in the good old days before GRO data, it was thought the\ngamma bursters were neutron stars in the galaxy, it was expected that\nGRO would confirm this by either showing they were a local population\n(within a few hundred light years) or that they were in the galactic\nhalo. (Mechanism was not known but several plausible ones existed)\n(also to be fair it was noted that the _brightest_ burster was\nprobably in the LMC, suggesting theorists might be wrong back then...)\n\tAs the Sun is not at the center of the galaxy a halo\npopulation should show anisotropy (a local disk population is\nruled out completely at this stage) - to avoid the anisotropy you\nhave to push the halo out, the energy then gets large, the mechanism\nof getting NS out that far becomes questionable, and we should start\nto see for example the Andromeda's bursters.\n\tThe data is consistent with either a Oort cloud distribution\n(but only just) - but no one can think of a plausible source with\nthe right spectrum. Or, it can be a cosmological distances (hence\nisotropy) and the edge is \"the edge of the Universe\" ;-)\nIf at cosmological distances you need very high energy (to detect)\nand a very compact source (for spectrum), ergo a neutron star\ncolliding with another neutron star or black hole. Even then getting\nthe spectrum is very hard, but conceivable.\n\n\tIf we know anything about physics at that level,\nthe bursters are not due to quantum black holes or cosmic\nstrings, wrong spectrum for one thing.\n\nThe situation is further complicated by recent claims that\nthere are two classes of sources ;-)  [in the colliding NS\nthey'd actually probably fit relatively easily into the\nNS-NS and NS-BH collision scenarios respectively]\n\n   my own pet theory is that it's  Flying saucers  entering\n   hyperspace :-)\n\n   but the reason i am asking is that most everyone assumes  that they\n   are  colliding nuetron stars  or  spinning black holes,  i just wondered\n   if any mechanism could exist  and place them  closer in.\n\nIf you can think of one, remember to invite me to Stockholm...\n\n*  Steinn Sigurdsson   \t\t\tLick Observatory      \t*\n*  steinly@lick.ucsc.edu\t\t\"standard disclaimer\"  \t*\n*  The laws of gravity are very,very strict\t\t\t*\n*  And you're just bending them for your own benefit - B.B. 1988*\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.500+0000", "event": "documents", "entityId": 10679, "properties": {"category": "comp.sys.mac.hardware", "text": "From: DICKG@VM.TEMPLE.EDU (Dick Grant)\nSubject: Memory in Plus&SE\nOrganization: Temple University\nLines: 8\nNntp-Posting-Host: vm.temple.edu\nX-Newsreader: NNR/VM S_1.3.2\n\n\n   I have to increase the memory in a Plus or SE (I'm not sure which since\nI haven't seen it yet). I did this a few years ago but I no longer have the\ninstructions. I forget which resistor needs to be cut to go from 1 to 4 Mbs.\n \n   Can anyone direct me to this information? Is there an ftp'able doc some-\nwhere with diagrams?\n                          Thanks, Dick Grant\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10680, "properties": {"category": "rec.sport.hockey", "text": "From: rrmadiso@undergrad.math.uwaterloo.ca (*** CHUCK ***)\nSubject: Re: Playoff predictions\nOrganization: University of Waterloo\nLines: 32\n\nHere are my predictions (try not to laugh hysterically)\nSomebody save this so I can laugh when I win my own pool.\nI don't have prizes, but we all love BRAGGING RIGHTS, so winner takes them.\n\nAlso.  If somebody has some sort of scoring system let me know.\nI was thinking 1 for 1st round victories, 2 for second, 3 for 3rd, 4 for 4th\nBut we may get alot of ties.  Any ideas?\n\n\n\n1. BUFFALO\n2. MONTREAL\n3. PITTSBURGH\n4. WASHINGTON\n5. CHICAGO\n6. TORONTO\n7. WINNIPEG\n8. LOS ANGELES\n\n9. MONTREAL\n10.PITTSBURGH\n11.CHICAGO\n12.WINNIPEG\n\n13.MONTREAL\n14.CHICAGO\n\n15. MONTREAL\n\nRichard Madison\nrrmadiso@napier.uwaterloo.ca\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10681, "properties": {"category": "soc.religion.christian", "text": "From: noye@midway.uchicago.edu (vera shanti noyes)\nSubject: Re: Why do people become atheists?\nReply-To: noye@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 92\n\nIn article <May.7.01.09.59.1993.14571@athos.rutgers.edu> mayne@nu.cs.fsu.edu writes:\n>In article <May.5.02.50.42.1993.28665@athos.rutgers.edu> Fil.Sapienza@med.umich.edu (Fil Sapienza) writes:\n[why are atheists atheists/ believes it could be the result of\n\"brokenness\"]\n\n>This is condescending at best and a slightly disquised ad hominem\n>attack. This attitude on the part of many theists, especially the\n>vocal ones, is one reason for the hostility you sense. How do you\n>like it when atheists say that people turn to religion out of\n>immature emotionalism?\n\ni agree -- if you are going to find out anything from people who don't\nshare your beliefs, do not attack them or condescend to them and hope\nto get a neutral picture of them.  come to them with an open mind.\n\n>I don't believe that atheists are generally any more \"broken\"\n>than anybody else. Any cause and effect is likely to be the\n>other way. There is an emotional price to pay for being different,\n>hearing one's beliefs (or lack thereof) condemned, and one's\n>motives and character attacked.\n\nwell, you do believe in something, as i see it, even if it is a sort\nof \"anti-belief\" (no negative connotation meant; i mean simply that\nyou believe that God _does not_ exist).  christians can also feel that\nsense of \"difference\", however, when they are associated with \"those\nweird televangelists who always talk about satan\".  if you'll excuse\nthe cliched sound of this, everyone has to deal with his/ her\ndifferences from other people.  i can understand how being an atheist\ncould be hard for you; being a christian is sometimes hard for me.\n\n>I became an atheist when I got old enough to reason because there\n>was just no good reason to believe the religion I had been taught.\n>This was very painful because of the pressure I was placed under by\n>my family and friends. I wanted to fit in, believe, and be accepted.\n>I tried, but finally the cognitive dissonance was just too great.\n\nyou should not have to repress how you feel -- you should be able to\ndiscuss it without fear.  i think there are admirable things to learn\nfrom any belief, which can enrich your own -- by asking myself the\nquestions that atheists may ask me, i can learn the answers and become\nstronger in my faith.  if my faith can't support knowing the answers\nto those questions, it is weak and untrue. \n\n>I have sympathy for gays growing up in repressive environments and\n>having to hide and sometimes at first try to deny a part of themselves\n>because I've been there. Only in my case it was my rationality instead\n>of sexuality which I was forced to try to repress.\n\nin some way the pressures were different, of course, because you\n\"chose\" your beliefs -- or are you saying that they were not your\nchoice, but born of necessity?  [please, no flames about whether or\nnot gay people \"choose\" their lifestyle -- that's elsewhere in this\nnewsgroup]\n\n> I must say that I\n>wasn't hurt by my experiences in church any more than some of my friends\n>who didn't become atheists. I was just hurt differently.\n\ni'm not sure i understand this sentence -- could you explain?\n\n[moderator points out that many/ most atheists aren't \"hostile\", they\njust cease believiing in xiantiy/ religion]\n\n>True. Consider also that people like Pat Robertson and many of the\n>Christian extremists in soc.religion.christianity naturally evoke\n>hostility by their attacks on anyone who disagrees and their attempts\n>to force their views on others. You are known by the company you keep.\n>Christians trying to preach in alt.atheism should not be surprised by\n>hostility.\n\nouch, yes.  part of being a christian is accepting _everyone_ with an\nopen heart -- including people of \"our own camp\" with whom we\ncompletely disagree.  by the same token, i believe that accusation and\nsuspicion are not the best way to reach out to those not of our faith,\nnor is it effective to try to browbeat people into accepting our\nreligion.  i have a different idea of mission: be what i am, a\nchristian who is happy in her faith, and if others see that and want\nto know about either the happiness or the religion, i'll share what i\nknow without pressure and let them make their own decisions.  at some\npoint you just have to agree to disagree -- acceptance of diversity,\nnot uniformity, is the way to sow peace....\n\n>Bill Mayne\n\nvera noyes\n\n*******************************************************************************\nI am your CLOCK!     |  I bind unto myself today    | Vera Noyes\nI am your religion!  |  the strong name of the\t    | noye@midway.uchicago.edu\nI own you!\t     |  Trinity....\t\t    | no disclaimer -- what\n\t- Lard\t     |\t- St. Patrick's Breastplate | is there to disclaim?\n*******************************************************************************\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10682, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ssa@unity.ncsu.edu (S. Alavi)\nSubject: ?? DOS font size in windows??\nOrganization: NC State University\nLines: 13\n\n\n\tI have an 8514/A card, and I am using windows in 1024x768 mode \n\t(normal 8514/A font, not small).  In the 386 enhanced mode\n\tthe DOS window font is too small for my 14\" monitor. Is there a \n\tway to spacify the font size for the DOS window? You'll have to \n\texcuse me if there is a trivial answer, since I am fairly new to\n\tMS Windows world.\n\n\tThanks.\n\n\t(Please include this message for reference)\n\t======  S. Alavi    [ssa@unity.ncsu.edu]  (919)467-7909 (H)  ========\n\t\t\t\t\t\t  (919)515-8063 (W)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10683, "properties": {"category": "rec.sport.baseball", "text": "From: machman@hardy.u.washington.edu (The Machman)\nSubject: Re: Jim Lefebvre is an idiot.\nOrganization: University of Washington\nLines: 19\nNNTP-Posting-Host: hardy.u.washington.edu\n\n00bjgood@leo.bsuvc.bsu.edu writes:\n\n>I just wanted to let everyone know that I have lost what little respect I have\n>for Jim LeFebvre after seeing today's Cubs game. First of all how could he\n [ etc. ]\n>Vizcaino was batting. Face it Lefebvre has got to be the worst manager in\n>baseball.\n>\t\t\t\t\t\tA dishard Cub fan\n\nHey, he's the only manager so far to lead the Seattle Mariners to a \nwinning season, out of, what, fifteen?  Give him some credit for that.\n\n\t\t\t\t\t\t-- dave\n\n-- \n /'''    The Machman       machman@u.washington.edu      david c carroll\n c-OO                                                                      \n    \\                     \"Big Science.  Hallelujah\"\n   -                                                                       \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10684, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: michael@jester.GUN.de (Michael Gerhards)\nDistribution: world\nSubject: Re: What's the diff.between mouse.sys/com??\nX-Newsreader: TIN [version 1.1 PL8]\nOrganization: private COHERENT system\nLines: 20\n\nx90sanson@gw.wmich.edu wrote:\n> What's the difference between loading mouse.com in autoexec.bat and\n> doing device=mouse.sys in config.sys??\n\nThe only difference is the time the driver gets loaded. mouse.sys will be\nloaded during the config.sys and therefor before the command.com. mouse.com\nwill be loaded during autoexec.bat and so after the command.com.\n\n> which one is better?\n\nmouse.com could be started from the commandline after the booting and it\ncould - perhaps - be unloaded, if no other driver is loaded after it.\nThe working of both drivers is totally the same.\n\nWhen I ran dos, I preferred loading most of the drivers in autoexec.bat,\nbecause some programs won't run with some drivers and I could choose the\nones I needed during startup. But with DRDOS6, this advantage is gone,\nbecause DRDOS lets you choose in config.sys which drivers should be loaded.\n\nMichael\n--\n*  michael@jester.gun.de  *   Michael Gerhards   *   Preussenstrasse 59  *\n                          *  Germany 4040 Neuss  *  Voice: 49 2131 82238 *\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10685, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dtc@mlinknet.UUCP (Dennis Cheung)\nSubject: PSI Comstation 5\nOrganization: the ModemLink Network, Long Island, New York\nLines: 15\n\n\nAnyone have any expierience with PSI's comstation 5?\n\nPlease contact me if you had (or have a suggesiton for a Really Good 14.4\nmodem with 14.4 fax for the macintosh).\n\n--- Via UCI v1.35 (C-Net Amiga)\n\n\nDennis T. Cheung\nThe DTC(tm) Corporation of America\nAmerica Online: DTC\nInternet: DTC%MLinkNet@HotCity.Com\n------------------------------------------------------------------------------\nDisclaimer: You never read this message & this message doesn't exist.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10686, "properties": {"category": "comp.graphics", "text": "From: spworley@netcom.com (Steve Worley)\nSubject: Re: Sphere from 4 points?\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 38\n\nbolson@carson.u.washington.edu (Edward Bolson) writes:\n\n>Boy, this will be embarassing if it is trivial or an FAQ:\n\n>Given 4 points (non coplanar), how does one find the sphere, that is,\n>center and radius, exactly fitting those points?  I know how to do it\n>for a circle (from 3 points), but do not immediately see a \n>straightforward way to do it in 3-D.  I have checked some\n>geometry books, Graphics Gems, and Farin, but am still at a loss?\n>Please have mercy on me and provide the solution?  \n\nIt's not a bad question: I don't have any refs that list this algorithm\neither. But thinking about it a bit, it shouldn't be too hard.\n\n1) Take three of the points and find the plane they define as well as\nthe circle that they lie on (you say you have this algorithm already)\n\n2) Find the center  of this circle. The line passing through this center\nperpendicular to the plane of the three points passes through the center of\nthe sphere.\n\n3) Repeat with the unused point and two of the original points. This\ngives you two different lines that both pass through the sphere's\norigin. Their interection is the center of the sphere.\n\n4) the radius is easy to compute, it's just the distance from the center to\nany of the original points.\n\nI'll leave the math to you, but this is a workable algorithm. :-)\n\n\nAn alternate method would be to take pairs of points: the plane formed\nby the perpendicular bisector of each line segment pair also contains the\ncenter of the sphere. Three pairs will form three planes, intersecting\nat a point. This might be easier to implement.\n\n-Steve\nspworley@netcom.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10687, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: insect impacts\nOrganization: Ontario Hydro - Research Division\nLines: 64\n\nI feel childish.\n\nIn article <1ppvds$92a@seven-up.East.Sun.COM> egreen@East.Sun.COM writes:\n>In article 7290@rd.hydro.on.ca, jlevine@rd.hydro.on.ca (Jody Levine) writes:\n>>>>\n>>>>how _do_ the helmetless do it?\n>>>\n>>>Um, the same way people do it on \n>>>horseback\n>>\n>>not as fast, and they would probably enjoy eating bugs, anyway\n>\n>Every bit as fast as a dirtbike, in the right terrain.  And we eat\n>flies, thank you.\n\nWho mentioned dirtbikes? We're talking highway speeds here. If you go 70mph\non your dirtbike then feel free to contribute.\n\n>>>jeeps\n>>\n>>you're *supposed* to keep the windscreen up\n>\n>then why does it go down?\n\nBecause it wouldn't be a Jeep if it didn't. A friend of mine just bought one\nand it has more warning stickers than those little 4-wheelers (I guess that's\nbecuase it's a big 4 wheeler). Anyway, it's written in about ten places that\nthe windshield should remain up at all times, and it looks like they've made\nit a pain to put it down anyway, from what he says. To be fair, I do admit\nthat it would be a similar matter to drive a windscreenless Jeep on the \nhighway as for bikers. They may participate in this discussion, but they're\nprobably few and far between, so I maintain that this topic is of interest\nprimarily to bikers.\n\n>>>snow skis\n>>\n>>NO BUGS, and most poeple who go fast wear goggles\n>\n>So do most helmetless motorcyclists.\n\nNotice how Ed picked on the more insignificant (the lower case part) of the \ntwo parts of the statement. Besides, around here it is quite rare to see \nbikers wear goggles on the street. It's either full face with shield, or \nopen face with either nothing or aviator sunglasses. My experience of \nbicycling with contact lenses and sunglasses says that non-wraparound \nsunglasses do almost nothing to keep the crap out of ones eyes.\n\n>>The question still stands. How do cruiser riders with no or negligible helmets\n>>stand being on the highway at 75 mph on buggy, summer evenings?\n>\n>helmetless != goggleless\n\nOk, ok, fine, whatever you say, but lets make some attmept to stick to the\npoint. I've been out on the road where I had to stop every half hour to clean\nmy shield there were so many bugs (and my jacket would be a blood-splattered\nmess) and I'd see guys with shorty helmets, NO GOGGLES, long beards and tight\nt-shirts merrily cruising along on bikes with no windscreens. Lets be really\nspecific this time, so that even Ed understands. Does anbody think that \nsplattering bugs with one's face is fun, or are there other reasons to do it?\nImage? Laziness? To make a point about freedom of bug splattering?\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10688, "properties": {"category": "talk.religion.misc", "text": "From: lanphi872@moscow.uidaho.edu (Rob Lanphier)\nSubject: Re: A KIND and LOVING God!!\nOrganization: University of Idaho\nLines: 104\nDistribution: world\nNNTP-Posting-Host: snake.cs.uidaho.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nMalcolm Lee (mlee@post.RoyalRoads.ca) wrote:\n: I will clarify my earlier quote.  God's laws were originally written for \n: the Israelites.  Jesus changed that fact by now making the Law applicable to\n: all people, not just the Jews.  Gentiles could be part of the kingdom of\n: Heaven through the saving grace of God.  I never said that the Law was made\n: obsolete by Jesus.\n\nJust for reference, here's the earlier quote:\nMalcolm Lee (mlee@post.RoyalRoads.ca) wrote in reference to Leviticus 21:9\nand Deuteronomy 22:20-25:\n: These laws written for the Israelites, God's chosen people whom God had\n: expressly set apart from the rest of the world.  The Israelites were a\n: direct witness to God's existence.  To disobey God after KNOWing that God\n: is real would be an outright denial of God and therefore immediately\n: punishable.\n: Remember, these laws were written for a different time and applied only to\n: God's chosen people.  But Jesus has changed all of that.  We are living in\n: the age of grace.  Sin is no longer immediately punishable by death.  There\n: is repentance and there is salvation through our Lord Jesus Christ.  And\n: not just for a few chosen people.  Salvation is available to everyone, Jew\n: and Gentile alike.\n\nThese are two conflicting statements.  To say one is a clarification of the\nother is a breach of logic.  I don't mind people shifting their position on\nan issue.  It irritates me when it is said under the premise that no change\nwas made.  What about Deuteronomy 22:20-25?  Is it wrong now?  Did Jesus\nchange that?\n\n: If anything, He clarified the Law such as in that quote you made.  In the\n: following verses, Jesus takes several portions of the Law and expounds upon\n: the Law giving clearer meaning to what God intended.\n\nSure he does this.  However, he doesn't address the notion of stoning\nnon-virgin brides, because this needs no clarification.  Are you going to\ndeny that Deuteronomy 22:20-25 is not patently clear in its intent?\n\n: I think you will agree with me that there are in today's world, a lot of\n: modern-day Pharisees who know the bible from end to end but do not believe\n: in it.  What good is head knowledge if there is nothing in the heart?\n\nI'll agree that there is a lot of modern day Pharisees that know the Bible\nfrom end to end and don't believe in it.  Depending on how they use this\nknowledge, they can be scary.  They can argue any position they desire, and\nback it up with selected parts of the Bible.  Such Pharisees include David\nKoresh and Adolph Hitler.  I will qualify this by saying *I don't know* if\nthey actually believed what they were preaching, but the ends certainly\nmade the means look frightening.\n\nHowever, just as scary are those that don't know much of the Bible, but\nbelieve every word.  In fact, this is probably scarier, since there are far\nmore of these people, from what I've seen.  In addition, they are very easy\nto manipulate by the aforementioned Pharisees, since they don't know enough\nto debate with these people.\n\n: Christianity is not just a set of rules; it's a lifestyle that changes one's\n: perspectives and personal conduct.  And it demands obedience to God's will.\n\nNo, it demands obedience to a book.  If God came down and personally told\nme how I should behave, then I would say that I would be doing God's will\nby doing it.  However, if preachers, pastors, and evangelists tell me to\nobey the will of a book written by people who have been dead for close to\ntwo millenia (even longer for the OT), even if I follow everything in it\nwith my heart, I could scarcely be honest with myself by saying I'm doing\nthe will of God.\n\n: Some people can live by it, but many others cannot or will not.  That is\n: their choice and I have to respect it because God respects it too.\n\nWell, if God respects it so much, how come there is talk in the Bible about\neternal damnation for non-believers?  I see little respect eminating from\nthe god of the Bible.  I see a selfish and spiteful god.\n\n: God be with you,\n\nNot yours, thanks ;)\n\n: Malcolm Lee  :)\n\nRob Lanphier\nlanphi872@snake.cs.uidaho.edu\nlanph872@uidaho.edu\n\nAnd for the curious, here is my earlier post:\n> Hmm, for a book that only applied to the Israelites (Deuteronomy), Jesus sure\n> quoted it a lot (Mt 4: 4,7,10).  In addition, he alludes to it in several\n> other places (Mt 19:7-8; Mk 10:3-5; Jn 5:46-47).  And, just in case it isn't\n> clear Jesus thought the Old Testament isn't obsolete, I'll repeat the\n> verse in Matthew which gets quoted on this group a lot:\n> \n> \"Do not think that I have come to abolish the Law or the Prophets; I have\n> not come to abolish them but to fulfill them.  I tell you the truth, until\n> heaven and earth disappear, not the smallest letter, not the least stroke\n> of a pen, will by any means disappear from the Law until everything is\n> accomplished.  Anyone who breaks one of the least of these commandments\n> and teaches others to do the same will be called least in the kingdom of\n> heaven, but whoever practices and teaches these commands will be called\n> great in the kingdom of heaven.  For I tell you that unless your\n> righteousness surpasses that of the Pharisees and the teachers of the law,\n> you will certainly not enter the kingdom of heaven.\"  (Mt 5:17-20 NIV, in\n> pretty red letters, so that you know it's Jesus talking)\n \n> This causes a serious dilemma for Christians who think the Old Testament\n> doesn't apply to them.  I think that's why Paul Harvey likes quoting it so\n> much ;).\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10689, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: HST Servicing Mission Scheduled for 11 Days\nOrganization: Express Access Online Communications USA\nLines: 23\nDistribution: world\nNNTP-Posting-Host: access.digex.net\nKeywords: HST\n\n\n\nSOmebody mentioned  a re-boost of HST during this mission,  meaning\nthat Weight is a very tight  margin on this  mission.\n\nHow will said re-boost be done?\n\nGrapple, HST,  stow it in Cargo bay,  do OMS burn to high altitude,  \n\nunstow  HST,   repair  gyros,  costar install,  fix solar arrays,\n\nthen return to earth?\n\nMy guess is  why  bother with  usingthe shuttle to reboost?\n\nwhy not  grapple,  do all said fixes,   bolt a small  liquid  fueled\nthruster module  to  HST,   then let it make the re-boost.  it has to be\ncheaper on mass then usingthe shuttle as a tug.   that way, now that\nthey are going to need at least 5  spacewalks,  then they can carry\nan EDO pallet,  and  sit on station and even  maybe do the  solar array\ntilt  motor  fix.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10690, "properties": {"category": "sci.crypt", "text": "From: gtf1000@cus.cam.ac.uk (G.T. Falk)\nSubject: alt.security.pgp\nNntp-Posting-Host: bootes.cus.cam.ac.uk\nOrganization: U of Cambridge, England\nLines: 25\n\n-----BEGIN PGP SIGNED MESSAGE-----\n\nHi all..\n\nDoes anyone know of a UNIX utility allowing encrypted telnet sessions using\npublic-key? I'd like something so that nobody can snoop my password or\nsession text while I'm logging in remotely over the network.\n\nThanks\n\ng.\n\n- -------------------------------------------------------------------------\nPLEASE REPORT UNSIGNED (HENCE UNAUTHORISED) MESSAGES PURPORTEDLY FROM ME,\nSENT AFTER 22/04/93.                                gtf1000@cus.cam.ac.uk\n- -------------------------------------------------------------------------\n\n\n-----BEGIN PGP SIGNATURE-----\nVersion: 2.2\n\niQBVAgUBK9ZxMTQRcjh0adt3AQFHrwH9HwBPyWwr+/O+pEocO9glPOZ5odKHynW8\nAJIiF6Tsm+YMqBwmVHoLm7bUb4JPybQanpkmz8tdd4tYuinSX68cVg==\n=Gw7z\n-----END PGP SIGNATURE-----\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10691, "properties": {"category": "soc.religion.christian", "text": "From: jerryb@eskimo.com (Jerry Kaufman)\nSubject: Re: prayers and advice requested on family problem\nOrganization: -> ESKIMO NORTH (206) For-Ever <-\nLines: 11\n\nCloak yourself in God's sustaining and abiding love. Pray, pray, pray.\nPray for your brother, that he will assume the Godly role that is his.\nPray for your sister-in-law, the what ever is driving her to separate\nyour brother and herself from the the rest of the family will be healed.\nPray for God to give you the peace in the knowledge that you may not be\nable to 'fix' it. From your description it would appear that it will\nrequire devine intervention, and the realization by your brother as to\nwhat his responsibilities are. Seek Godly counsel from your pastor, or\nother spiritually mature believer. Know always that He is akways there\nas a conforter, and will give you wisdon and direction as you call on\nHim.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10692, "properties": {"category": "comp.graphics", "text": "From: ed@cwis.unomaha.edu (Ed Stastny)\nSubject: The OTIS Project (FTP sites for original art and images)\nKeywords: Mr.Owl, how many licks...\nOrganization: University of Nebraska at Omaha\nLines: 227\n\n\n\t-------------------------------------\n\t+ ............The OTIS Project '93  +      \n\t+ \"The Operative Term Is STIMULATE\" + \n\t-------------------------------------\n\t---this file last updated..4-21-93---\n\n\nWHAT IS OTIS?\n\nOTIS is here for the purpose of distributing original artwork\nand photographs over the network for public perusal, scrutiny,    \nand distribution.  Digital immortality.\n\nThe basic idea behind \"digital immortality\" is that computer networks   \nare here to stay and that anything interesting you deposit on them\nwill be around near-forever.  The GIFs and JPGs of today will be the\nartifacts of a digital future.  Perhaps they'll be put in different\nformats, perhaps only surviving on backup tapes....but they'll be\nthere...and someone will dig them up.  \n \nIf that doesn't interest you... OTIS also offers a forum for critique\nand exhibition of your works....a virtual art gallery that never closes\nand exists in an information dimension where your submissions will hang\nas wallpaper on thousands of glowing monitors.  Suddenly, life is \nbreathed into your work...and by merit of it's stimulus, it will \ntravel the globe on pulses of light and electrons.\n \nSpectators are welcome also, feel free to browse the gallery and \nlet the artists know what you think of their efforts.  Keep your own\ncopies of the images to look at when you've got the gumption...\nthat's what they're here for.\n\n---------------------------------------------------------------\n\nWHERE?             \n\nOTIS currently (as of 4/21/93) has two FTP sites.  \n \n \t141.214.4.135 (projects/otis), the UWI site\n\t\t\n\tsunsite.unc.edu (/pub/multimedia/pictures/OTIS), the SUNsite \n\t(you can also GOPHER to this site for OTIS as well)\n\nMerely \"anonymous FTP\" to either site on Internet and change to the\nappropriate directory.  Don't forget to get busy and use the \"bin\"\ncommand to make sure you're in binary.\n\nOTIS has also been spreading to some dial-up BBS systems around North\nAmerica....the following systems have a substancial supply of\nOTIStuff...\n\tUnderground Cafe (Omaha) (402.339.0179) 2 lines\n\tCyberDen (SanFran?) (415.472.5527)  Usenet Waffle-iron\n\n--------------------------------------------------------------\n \nHOW DO YOU CONTRIBUTE?\n              \nWhat happens is...you draw a pretty picture or take a lovely   \nphoto, get it scanned into an image file, then either FTP-put\nit in the CONTRIB/Incoming directory or use UUENCODE to send it to me\n(email addresses at eof) in email.  After the image is received,\nit will be put into the correct directory.  Computer originated works\nare also welcome.\n\nOTIS' directories house two types of image files, GIF and JPG.  \nGIF and JPG files require, oddly enough, a GIF or JPG viewer to \nsee.  These viewers are available for all types of computers at \nmost large FTP sites around Internet.  JPG viewers are a bit\ntougher to find.  If you can't find one, but do have a GIF viewer,  \nyou can obtain a JPG-to-GIF conversion program which will change    \nJPG files to a standard GIF format. \n\nOTIS also accepts animation files.      \n\nWhen you submit image files, please send me email at the same time\nstating information about what you uploaded and whether it is to be\nused (in publications or other projects) or if it is merely for people\nto view.  Also, include some biographical information on yourself, we'll\nbe having info-files on each contributing artist and their works.  You \ncan also just upload a text-file of info about yourself (instead of \nemailing).\n\nIf you have pictures, but no scanner, there is hope.  Merely send\ncopies to:\n\nThe OTIS Project\nc/o Ed Stastny\nPO BX 241113\nOmaha, NE 68124-1113\n\nI will either scan them myself or get them to someone who will  \nscan them.  Include an ample SASE if you want your stuff back.  \nAlso include information on each image, preferably a 1-3 line \ndescription of the image that we can include in the infofile in the\ndirectory where it's finally put.  If you have preferences as to what\nthe images are to be named, include those as well.  \n \nConversely, if you have a scanner and would like to help out, please\ncontact me and we'll arrange things.\n\nIf you want to submit your works by disk, peachy.  Merely send a 3.5\"\ndisk to the above address (Omaha) and a SASE if you want your disk back.\nThis is good for people who don't have direct access to encoders or FTP,\nbut do have access to a scanner.  We accept disks in either Mac or IBM\ncompatible format.  If possible, please submit image files as GIF or\nJPG.  If you can't...we can convert from most formats...we'd just rather\nnot have to.\n\nAt senders request, we can also fill disks with as much OTIS as they\ncan stand.  Even if you don't have stuff to contribute, you can send\na blank disk and an SASE (or $2.50 for disk, postage and packing) to \nget a slab-o-OTIS.\n\nAs of 04/21/93, we're at about 18 megabytes of files, and growing.  \nEmail me for current archive size and directory.\n\n--------------------------------------------------------------------\n\nDISTRIBUTION?\n\nThe images distributed by the OTIS project may be distributed freely   \non the condition that the original filename is kept and that it is\nnot altered in any way (save to convert from one image format to\nanother).  In fact, we encourage files to be distributed to local \nbulletin boards and such.  If you could, please transport the\nappropriate text files along with the images.  \n \nIt would also be nice if you'd send me a note when you did post images\nfrom OTIS to your local bbs.  I just want to keep track of them so\nparticipants can have some idea how widespread their stuff is.\n\nIt's the purpose of OTIS to get these images spread out as much as\npossible.  If you have the time, please upload a few to your favorite\nBBS system....or even just post this \"info-file\" there.  It would be\nkeen of you.\n\n--------------------------------------------------------------------\n\nUSE?\n\nIf you want to use any of the works you find on the OTIS directory,\nyou'll have to check to see if permission has been granted and the \nstipulations of the permission (such as free copy of publication, or\nfull address credit).  You will either find this in the \".rm\" file for    \nthe image or series of images...or in the \"Artists\" directory under the \nArtists name.  If permission isn't explicitly given, then you'll have \nto contact the artist to ask for it.  If no info is available, email\nme (ed@cwis.unomaha.edu), and I'll get in contact with the artist for \nyou, or give you their contact information.\n \nWhen you DO use permitted work, it's always courteous to let the artist\nknow about it, perhaps even send them a free copy or some such\ncompensation for their files.\n\n---------------------------------------------------------------------\n\nNAMING IMAGES?\n\nPlease keep the names of your files in \"dos\" format.  That means, keep\nthe filename (before .jpg or .gif) to eight characters or less.  The way\nI usually do it is to use the initials of the artist, plus a three or\nfour digit \"code\" for the series of images, plus the series number.\nThus, Leonardo DeVinci's fifth mechanical drawing would be something\nlike:\n \n\tldmek5.gif     OR    ldmek5.jpg    OR    ldmech5.gif   ETC\n\nKeeping the names under 8 characters assures that the filename will\nremain intact on all systems.  \n\n\n---------------------------------------------------------------------- \n\nCREATING IMAGE FILES?\n\nWhen creating image files, be sure to at least include your name\nsomewhere on or below the picture.  This gives people a reference in\ncase they'd like to contact you.  You may also want to include a title,\naddress or other information you'd like people to know.\n\n-----------------------------------------------------------------------\n\nHMMM?!\n\nThat's about it for now.  More \"guidelines\" will be added as needed.\nYour input is expected.\n\n-----------------------------------------------------------------------\n\nDISCLAIMER:  The OTIS Project has no connection to the Church of OTIS  \n \t     (a sumerian deity) or it's followers, be they pope, priest,\n\t     or ezine administrator.  We do take sacrifices and donations\n\t     however.\n\n-----------------------------------------------------------------------\n\nDISCLAIMER:  The OTIS Project is here for the distribution of original \n \t     image files.  The files will go to the public at large.  \n\t     It's possible, as with any form of mass-media, that someone\n\t     could unscrupulously use your images for financial gain.  \n    \t     Unless you've given permission for that, it's illegal.  OTIS\n\t     takes no responsibility for this.  In simple terms, all rights\n\t     revert to the author/artist.  To leave an image on OTIS is to \n\t     give permission for it to be viewed, copied and distributed \n\t     electronically.  If you don't want your images distributed     \n\t     all-over, don't upload them.  To leave an image on OTIS is\n\t     NOT giving permission to have it used in any publication or\n\t     broadcast that incurs profit (this includes, but is not \n\t     limited to, magazines, newsletters, clip-art software,        \n\t     screen-printed clothing, etc).  You must give specific\n\t     permission for this sort of usage.  \n\n-----------------------------------------------------------------------\n\nRemember, the operative term is \"stimulate\".  If you know of people\nthat'd be interested in this sort of thing...get them involved...kick'm\nin the booty....offer them free food...whatever...\n\n....e  (ed@cwis.unomaha.edu)\n       (ed@sunsite.unc.edu)\n\n--\nEd Stastny           | OTIS Project, END PROCESS, SOUND News and Arts \nPO BX 241113\t     | FTP: sunsite.unc.edu (/pub/multimedia/pictures/OTIS)\nOmaha, NE 68124-1113 |      141.214.4.135 (projects/otis)\n---------------------- EMail: ed@cwis.unomaha.edu, ed@sunsite.unc.edu\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10693, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 12/14 \nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 956\n\n\n------------ Part 12 of 14 ------------\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',<3$9@L+I:5'W]_?W]_?W]_?>GIZ*BJ[N[M>7EY>7EY>7@,#`P,#`P->\nM`P,#`P->*BHJ*KN[N[M>`P,#`P->NRHJ*BIZ1PMF,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q,1F\"PL+I:6EI:6EI:5'1T='1T??\nMW]_?>M_?W]_?W]_?W]_?WT='1Z4+\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<QQ,1F9@NEI:6EI4??WWIZ>GHJ*BHJ*KN[N[M>`YF9F3T]\nM/3T]F9F9F9F9F9F9/9F9F9F9`P,#F9F9F0,#`P->7KN[*GIZ>GK?1T>E\"\\2'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F\nM\"PL+\"PL+\"PL+\"Z6EI:5'1T='1T??W]_?W]_?WT='1T='I:4+\"V;$Q#$QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS$QQ,3$9F8+I4='1T='W]_?W]]Z>GIZ*BHJN[M>\nM7@,#`P,#F9D]TM)Q<7%Q&1EQ<=+2TG%Q<7'2TM+2TM+2TM+2TCT]/3V9`UY>\nMN[N[*GK?1Z6E\"PMFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',3'$Q,3$Q,3$Q,1F9F9F\"PL+\"PNEI:5'1T='1T='1T='\nM1T='I:6EI0MFQ,3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<3$Q,3$Q&9F\"Z6EI4='WWIZ*BHJ*KN[\nMN[N[N[N[NUY>7@,#F9D]/3T]TG%Q&1D9&;\"PL+\"PL+\"PL+`9&1D9&1D9&1D9\nM&1D9&1D9&7'2TCV9`UY>7EZ[*GI'I69F9L0QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<3$Q,3$Q,3$Q,3$Q&9F\nM9@L+\"PL+\"PL+\"V9F9F9F9@L+\"PL+\"PL+\"V9FQ,3$,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3'$Q,1F9F8+\"PNE1T??\nMWWIZ>BHJN[M>`YF9F9F9F9D]/3W2TM+2<7%Q<1D9&;\"PL+\"PL+\"P4U-34^WM\nM[5-3L+`9&1D9&1D9<7%Q<7%Q<=+2TM+2TCT]F0->N[MZWT>E\"PMF,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q\nM,3$QQ#$Q,3$Q,3$QQ,3$Q,3$Q&;$Q,3$Q#$Q,3$Q,<3$Q&9F9F9F9F;$Q,0Q\nM,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$\nMQ,1F9@NE1T='W]]Z>BHJN[M>`YF9/=)Q<7$9&7$9&1D9&;\"PL+\"PL+\"PL+\"P\nML%-34U-34^WM[>U34U-34[\"PL+\"PL+\"P&1EQTM+2TM(]/3T]/3T]F9D#7EZ[\nM*GK?1Z4+9C&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',3$Q,3$Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<QQ,3$Q,1F\"Z6E1]_?>GHJ*KN[7EX#F3W2TG$9&;\"PL+\"PL+\"P\nML%-34U/M[>WM[>WM[>WM[8N+BXN+B^WM[5-3[>U34U-34^U3L!D9&7%Q<=+2\nM/3T]/3V9F9F9`UY>N[LJ>M]'\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,3$Q,1F\"Z5'1]_?WWHJ*KN[7EX#F3W2\nMTG$9&;\"PL%-34U-34U/M[>WMBS0T-#0T-#0T-,7%Q<4T-(OM[>V+BS2+BXN+\nMBXN+B^WM4U.PL!EQTM(]F9D#F9F9`P->N[N[*BIZ1Z4+9L0QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS&'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3$QQ,1F9@L+I4='W]_?\nM>GHJ*KN[7EX#`YD]TG$9&;\"PL+!34U-34^WM[8LT-,7%9V=G9V?%Q<5G9V?%\nMQ32+BXN+BS0T-#0T-(N+BXN+BXOM4[\"P&7'2TCV9F9F9`P.[*BHJ>GIZWT='\nMI:4+Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<3$\nMQ,1F\"PL+I4??W]]Z>GIZ*BHJNUY>`YD]TM)Q&1D9L+!34U/M[>V+BS3%Q6=G\nM#P\\/3`\\/9V=G9V=G9\\7%Q30T-#0T-#3%-#0T-#0TB^WM[>U3L+`9&7'2/9D#\nM7EZ[*BHJ*GIZ>GK?1T<+9L3$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS$Q,3$QQ,3$Q,1F\"Z6E1T??W]_?>GIZ*BHJN[M>7@.9/=)Q<7$9&;\"P\nM4^WMBXN+-,5G9P\\/3$Q,3$Q,3$Q,3$Q,3`\\/#V=G9V=G9V=G9V</#V=GQ32+\nMB^WM4[\"P&7'2/9D#`UY>7EZ[N[N[N[N[*GK?1Z4+9L0Q,8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,3$Q&9F\"Z5'1T='1T??W]_?WWIZ*KN[\nMNUY>`YD]TG%Q&1FP4U/MBS3%Q6</3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,3$Q,3`]GQ30T-(OM[5.P&1G2F0->7KM>7EX#`P,#7EY>NRIZ>M]'I0O$\nM,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS'$Q,3$Q,3$Q#$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$Q,1F\"PNE1T='\nMI:6EI:6E1]_?>GHJ*KN[7IF9/=)Q&1FP4^WMBS3%9TQ,3$R)B4Q,3$Q,B8F)\nMB8F)B8E,3$Q,3$Q,3$Q,3$Q,3`\\/9S2+[5.P&7'2TM+2/9D#7EY>`P.9/3T]\nM/9D#NRIZW]_?WT>E9L2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q&9F\"PL+I:4+9F9FQ#&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<Q,<3$9F8+\"PL+\"PL+9@NEI4='WWIZ*BJ[7EZ9/=+2&;\"P4^V+-,5G9TQ,\nM3$R)B4Q,B8F)B8F)B8E,3$Q,3(F)B8F)B4Q,3$Q,#V=GQ32+[5.P&=(]/9F9\nM`P,#7EY>7@,#F9F9F9F9`UZ[*GIZ>GK?1Z4+9C&'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$9@L+\nMI4??W]_?1T>E\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>',3'$Q,3$Q&9F9L3$9F8+I:6E1T??>GJ[7@.9/=+2\nM<1FP4^V+-,5G#TQ,3$Q,3$Q,3$R)3$Q,3$Q,3(F)B4Q,3$Q,3$Q,#V=G9V?%\nMQ32+4U-3L''2TCV9`UY>7EY>7@,#F9F9F9F9F0->7KLJ*BHJ>M]'I6;$AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'A\\3$Q&:E1]_?>BHJ*GK?1Z4+9L0QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q,3$Q,<3$Q,1F\"PNE\nM1T??WWHJNUX#/=)Q&;!3[8LT-,5G#TQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,\nM3$Q,#P]G9V?%Q<7%-#2+[5.PL!EQ<=+2/3V9F9F9F0,#`P,#F9F9F0,#`UY>\nMN[LJ>GK?1Z5FQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',<1F\"PM'WWHJ*KN[NRHJ>M]'I0O$Q#&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QAS$Q\nM,3$Q,3$QQ,1F\"Z6E1T??WWHJNUY>F9D]<1FP4^V+-#3%9V=G#TQ,3$Q,3$Q,\nM3$Q,3$R)B8E,3$Q,3$P/9V?%-#0T-#0T-(N+[5.PL!EQ<7%Q<=+2/3T]/3T]\nMF9D#`YF9F9F9F9F9`P.[*BK?1Z4+9L0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<0+I4??>GHJNUY>7KN[\nMNWK?I0MF9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',3$QQ,3$Q&8+I4='WWIZ>GHJNUY>`YF9TAD94^V+BS0T\nMQ<7%9V=G#P],3$Q,3$Q,3$R)B8F)3$Q,3$Q,#V?%-#0T-#0TBXN+B^U3L+!3\nML+`9&7%Q<7%Q<7%Q<7'2TM+2TCT]/3V9F0->NRHJ>D>E\"V9FQ#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<0+\nMI4??>BHJ7@,#7EZ[*GIZ1Z4+\"V9FQ#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3'$Q,3$Q&8+I4??>GIZ*BJ[7EY>\nM`YD]TG%Q&;!3[>V+-#3%Q<7%Q6</3$Q,3$Q,B8F)B8F)B4Q,3$Q,#V=GQ30T\nMQ<4T-#2+B^WMB^WM4U-34U.PL!D9&1D9&1D9&1EQ<=+2TM(]F0->NRHJ>M]'\nMI69FQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',8>'AX>'AX>'AX>'AX>',3$Q\nM,3$Q,3$Q,3'$9@NE1]]Z*KN[7EX#`UY>*GIZWT>EI0L+9F9FQ#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3'$Q&9F9F8+\nMI4='W]]Z*BJ[7EY>7@.9/3W2<7$94U/MBXLT-#0TQ<5G#P\\/3$R)B8F)B8F)\nMB8E,3$Q,3`]G9\\7%-#3%Q<4T-#0T-#2+BXOM[5-3L+`9&1D9&;\"PL+`9&1EQ\nM<7'2/9E>NRIZ>M_?1Z4+9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS$QQ,1F9F;$9F8+I4='WWIZ*BJ[NUY>`UY>NRIZ>M]'I:4+\nM9F9FQ#$QAX>',3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS'$Q#'$9F8+\"PL+I:5'1]_?>GHJN[M>7EY>`YF9/=)Q&;!3[8N+-#0TQ6=G\nM#P],3$R)B8F)B8F)B8E,3$Q,3$P/9V=G9V=G9V=G9\\7%Q30T-(N+BXOM[5-3\nM4[\"P&1D9L+\"PL+`9&7%QTCT#7KLJ>M_?1Z4+9L0Q,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<Q,<3$Q#$QAX>'AX>'AX>'AX>',<0QQ&9F\"PNEI:6E1]]Z>BHJNRHJNUY>\nM`UZ[NRIZ>M]'1Z6E\"PMFQ,0Q,8<Q,3$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>',3$QQ&8+I0L+\"Z6E1]_?WWIZ*KM>7EY>7@.9F3W2\nM<1FP4^WMBXLT-,5G9P],3$R)B8F)B8F)B8F)3$Q,3$Q,3$P/3$Q,3$Q,3$P/\nM9V=G9\\7%-#2+BXOM[>WM4[\"P&;\"PL+\"P&1D9<3V9`[LJ>M^EI0L+9C$QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<QQ,1F9F;$Q#&'AX>'AX>'AX>',<1F9@NEI4??W]_?\nMWWHJ*BJ[NRHJ*BJ[NUZ[NRHJ>M]'1Z4+\"V9FQ,0Q,3$Q,3'$Q#$QAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F\"V9F9F8+I4??WWIZ\nM*BJ[NUY>7@.9/=+2<1FP4U/MBXLT-#3%9P],3$R)B8F)B8F)B8F)B4Q,3$Q,\nM3$Q,3$Q,3$Q,3$Q,3`\\/#P]G9\\7%Q30TBXOM[5-3L+\"P&1D9&1D9TCT#7KLJ\nMWT>EI0MFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=F\"PMF9F;$,8>'AX>'AX<Q\nM9J5'WWIZ*BHJ*BHJ*BHJ>BJ[N[LJ*BHJ*BJ[*BIZW]]'1Z4+9L3$,3$Q,3$Q\nM,3$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q\nM,3$Q,<1F9@L+I4='WWIZ*BJ[7@.9F3W2<1D9L+!34^WMBS0TQ6=,3(F)B8F)\nMB8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)3$Q,3$Q,#P\\/#P]G9\\4TB^U3L+`9\nM&7%Q<7'2/9D#NRIZWT>E\"V9FQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>E\nMI:4+9C&'AX>'AS'$\"T=Z*BHJ*KN[*BHJ*GHJ*GIZ*BIZW]_?>GIZ>GK?WT='\nM1Z4+Q#$Q,3&',3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS$Q,<3$9@L+I4??WWHJ*KM>F3UQ<1D9&;\"P4U-3\nM[8LTQ6</3$R)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)B8F)3$Q,3$Q,\nM3`\\/9\\4T-(OM[5.P&1EQTM(]`UY>NRIZWT>E\"V;$,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q,0Q\nM,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>E\"V;$Q#$Q,<1F\"T??*BJ[7EY>7KLJ*GIZ>GK?>M_?\nM1Z4+I4='W]_?1T>EI0MFQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@NE1T??>BJ[\nM7ID]TG$9&;\"P4U.PL%/MBS3%9P],3(F)B8F)B8F)B8F)B8F)B8F)B8F)R8F)\nMB8F)B8F)B8E,3$Q,3$P/9V?%-(N+B^WM[5,9<=(]F0.[*GIZWT>E\"V;$,8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>',3'$Q,3$Q,3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>EI0MF9@L+I4=Z>BJ[7@,#\nM`UXJ>GIZ>M_?WT='I0L+9@L+\"Z4+\"PL+\"V9FQ#$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'A\\1F9@NEWWHJNUX#F3W2<7$9&;!34U-3[8O%9V</3$Q,B8F)B8F)B8F)\nMB8F)B8G)R<G)R<G)R<G)R<G)R8F)B8E,3$Q,3$P/9\\7%-#2+[>U3L!G2/9E>\nMN[LJ>M]'I0O$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3'$Q,3$9F9F9F;$Q#$Q,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX='\nMI:6EI4??>BJ[7EY>7KLJ*GIZ>M^EI:6E\"PMF9F9FQ&;$Q,3$Q,0Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX<QQ&8+I=]Z*KM>`YD]/=)Q&1FP4^V+BXLTQ6</\nM3$Q,B8F)B8F)B8F)B8G)R<G)R<G)R<G)R<G)R<G)R<G)B8F)B8F)3$Q,3`]G\nM9\\7%-(N+[5,9<=(]`UY>NRIZ1Z4+Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3$QQ,1F9L3$\nMQ,3$Q,0Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX='W]]Z*EX#F0->N[LJ*GK?WT>EI:4+\"PO$Q#$Q,3$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@M'>BHJNUX#F=+2\nM<1FP4^WMBS3%Q6=G#TQ,3(F)B8G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<G)\nMR<G)R<F)B8F)3$Q,3`]GQ30TBXOM4[`9TCT#7KLJ>M]'\"\\2'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<Q,3$Q,3$QQ,3$Q&;$Q,3$Q,3$Q,3$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>[7ID]F9F97KN[NRIZ>D>E\nMI:4+\"V;$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,<1FI4??>KM>F3W2<1FPL+!3[8LTQ6</#TQ,3$R)B8F)R<G)R<G)R186%A86\nM%A86%A86%A86%A86%A;)R<G)R<F)B8F)3$Q,#P]G9\\4TB^U3&7$]`[LJ>M^E\nM\"\\2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',3'$Q,3$Q,3$Q,3$Q,0Q,<3$Q#$Q,3$QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS$QAS'$Q&9F9F;$AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?2\nMTM(]/0->7BHJ>D>EI:6E\"V;$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>',68+1WJ[7@.9/=)Q&1FP4^V+-&</#TQ,3$R)B8G)\nMR<G)R<D6%A86%A86%A86%A86%A86%A86%A86%A86R<G)R<F)B8F)B4Q,3`]G\nMQ33M4QEQF5XJWZ4+9L2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q,1F9F9F9F9F\nM9L3$Q,3$Q,0Q,3$Q,8>'AX<Q,3'$Q#$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS$Q,3$QQ,3$Q,3$Q,3$9F8+\"PL+9L3$,3&'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=QTCV9F0.[*GK?WT>E\"PMFQ,0QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$\"Z5Z*KM>7@.9/=(9L%/M\nM[31G#TQ,3(F)B8G)R<G)%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86\nM%LG)R<F)B8E,3$P/9\\6+[;`9TIF[>D>E9C&'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<Q,<3$Q&9F9F9F9L3$Q,3$Q,3$Q,0Q,3$QAX>'AX>'AS$Q,3$Q,3$Q,8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<3$Q&8+\"PNEI:6EI:6EI:6E1Z6E\nMI0MFQ#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?2/9D#7EZ[>M]'I:4+9F;$\nM,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+\nMI=\\JNUY>`YD]TG$9L.TTQ6</3$R)B8G)R<G)%A86%A86%A86%A86%A86%A86\nM%A86%A86%A86%A86%A;)R<G)R8F)B8E,3&?%BU.P<3U>*M^E9C&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS$QQ,0Q,3'$Q,0Q,3$Q,3$Q,3$QQ,3$Q,0QQ,3$\nMQ,0Q,3'$Q,0Q,3$Q,3&'AX>'AX>'AX>'AX<Q,3$Q,3$QQ&9F9L3$Q,3$9@NE\nMI:6E1T='1T>E1T='1Z6EI:6EI:4+9F;$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<]\nMF0->NWK?1Z6E\"\\3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<QQ`NEWWHJ*KM>`YD]TAFP[33%#TQ,B8F)B<G)R186%A86\nM%A86%A86%A86%A86%A86%A86%A86%A86%A86%A;)R<G)B8F)3$P/Q8M3&7&9\nM7GI'9L2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$QQ,3$\nM,3$Q,3$Q,3$Q,<3$Q,3$Q#$Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q\nM,3$QQ,1F9F9F9F9F9F8+\"PL+I4='W]_?WWIZ*BHJ>GK?W]_?W]]'I:4+\"V9F\nMQ#$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>9F5Z[>M]'I0O$,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q9@NE1WHJ*BJ[7IG2&5.+Q0],\nM3$R)B8F)R<G)R186%A86%A86%A86%A86%A86%E145!86%A86%A86%A86%LG)\nMR<F)B4Q,9\\7ML'$]`RK?I<0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AS$Q,3$QQ,0Q,3$Q,8>'AX>'AX>',3$Q,<3$,3$QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX<Q,3$Q,3$Q,<3$Q&9F9F8+\"Z5'1T??WWIZ>GHJ\nM*KN[*BHJ*BIZ>GIZWT='I0L+9F;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=>NWK?1PMF,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS%F\"Z5'\nM>GHJNUZ9/7$9[31G3$Q,3(F)B<G)R<G)%A86%A86%A86%A86%A86%E145%06\nM%A86%A86%A86%A86R<F)B4Q,#\\6+4QEQF5XJWZ4+Q(>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<Q,3$Q,3&'AX>'AX>'AX>',3$QQ,0Q,3$Q,3$QAX<Q,<3$Q,3$,3$Q,<3$\nM9F9F\"PL+I:5'1T='1T='WWIZ>BHJ*BJ[N[N[NRHJ>GK?1T>EI0MF,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<J\nMWT<+9C&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>',0NE1]_?*KM>`SUQ&5,T9V</#TQ,3(F)R<G)R<D6%A86%A86\nM%A86%A86%A945!86%A86%A86%A86%A86R<G)B8E,#\\4T[5,9TIE>*M^E9C&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',3$Q,3$QAS$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3'$Q&9F\"PL+\"PMF9F;$\nMQ,0Q,3'$Q,3$Q,0Q,3$QQ,1F9F9F9F9F9@L+\"PNEI4='1]]Z>BHJ*BHJ*BHJ\nM*GIZ1Z6E\"PMFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>E9L2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\1F\"Z5'WWHJ7@.9TAGM-,5G9P],3$R)\nMB8F)R<G)R186%A86%A86%A86%A865!86%A86%A86%A86%A86R<G)B8E,#V<T\nMB^VP&=(#7GI'\"\\2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,<3$9F9F9@L+9F9F9F9F9F9F9F9F\nM9F8+\"Z6EI4??1T>EI0MFQ#$QAX>'AX>'AX>',3$Q,3$QQ#$QAX>',3$Q,<3$\nMQ&9F\"Z5'W]]Z*BJ[N[N[NRHJ>M]'I0MFQ,0QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'Q&8+\"Z6E1WJ[\nM`SUQL%/M-,5G#P],3(F)B8F)R<G)R<D6%A86%A86%A86%A86%A86%A86%A86\nM%A86R<F)B8E,#V<TB^VP&=*97BI'I68QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,3'$Q,3$Q,3$Q&9F9F8+\nM\"PL+\"PNEI:6EI:6EI0NEI:6EI4='1]_?W]_?1Z6E\"V;$,3$QAX>'AX>'AX>'\nMAX>',8>'AX>'AX>'AX<Q,3'$9@NEI4??>GHJ*BHJ*BHJ>M]'1T>E9L0QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX?$9J5'1]_?>KL#TAFP[8LTQ<5G#TQ,3$R)B8G)R<G)R186%A86%A86\nM%A86%A86%A86%A86%A;)R<G)B8E,#V<TB^VP&=*97BK?I6;$AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q\nM,<3$Q&9F9F9F9@L+\"PNEI0L+\"PL+I:6EI:6EI:6E1T='1T='1T??W]_?WT='\nMI0L+9@L+9L0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F9@L+I4??>GIZ\nM>BHJ>M]'I:4+9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',68+I4??>BI>`SUQ&5/MBXLT-,5G9P],3(F)\nMR<G)R<G)%A86%A86%A86%A;)R<G)R<G)R<G)R<F)B4Q,#V?%B^VP<3V97BK?\nMI68QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS'$Q&9F\"PL+\"PL+\"Z6EI:6EI:6EI:6EI:5'1T??\nMW]_?W]_?W]_?WWIZ*GIZW]]'1Z6EI:4+\"PMF9L0Q,8>'AX>'AX>'AX<Q,3$Q\nM,3$QQ,1F9@L+I:5'1T='1T??W]_?1T>E\"V;$,3&'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@NE1WJ[7@.9TAD9\nML%/MBXN+-,5G#TQ,B8G)R<G)R<G)%A86%A;)R<G)R<G)R<G)R<G)B8F)B4Q,\nM#V<TBU.P<9E>NWK?I0O$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,1F\"PL+\"Z6EI:6E\nM1T='1T='1T='1T??W]_?WWIZ>GIZ>GIZ>GHJ*BHJ*BHJ>GIZW]_?WT='I:6E\nMI0L+9F;$Q#$QQ,3$9F9F9@L+I:6EI:6EI:6E1T='I:6EI:6EI0L+9L3$Q#$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q\nM,<0+1]\\JN[M>F3W2<1FP4U-3[8LTQ6</3$R)B8G)R<G)R<G)R<G)R<G)R<G)\nMR<G)R<F)B8F)B4Q,#\\4TBU,9/0->NRIZ1Z5F,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q\nM,3'$Q,1F9@L+I:5'1]_?W]_?WWIZ>GHJ*BJ[N[N[NRHJN[N[N[N[7EY>7EY>\nM7KN[N[N[N[N[NRHJ>GK?1T='1T='1T>EI:4+\"Z6EI:6E1T??W]_?WT='W]_?\nMWT>EI0L+\"Z6EI0L+9F;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'A\\0+I4??WWHJ7@,]/=(9&;\"PL.WMBS3%9V=,3$R)B8F)\nMR<G)R<G)R<G)R8G)R<G)B8F)B4Q,3`]GQ32+4[!Q/0.[*M_?1PO$AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<Q,3$Q,<3$Q&9F\"PL+I:5'1T='1]_?>GIZ*KN[7EY>`P,#\nM`P,#`P,#`YF9F9F9F9D#`P,#`P,#`YF9F0,#`P->7KN[*BIZ>GIZ>GIZ>GK?\nMW]]'1T??W]_?W]_?1T>EI:5'1T>E\"PNEI:4+\"PMF9L0QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9J6E1T??>BJ[7@,]TG%Q&1FP\nM4U/MBS3%9P],3(F)B8F)B8F)B8F)B8F)B8F)B8F)3$Q,9V?%-(M3L!G2F0->\nM*M]'I:5F,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3$Q,<3$Q,3$Q,3$Q&8+\"Z6E1T='1]_?\nM>GHJN[N[NUY>7@,#`P,#`P,#`P.9F0,#`P,#`P,#F9F9/3T]TM+2TM+2TM+2\n-------- End of part 12 of 14 --------\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10694, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: er+@cs.cmu.edu (Ekkehard Rohwedder)\nSubject: Re: Help! - Disappearing Groups!!!\nNntp-Posting-Host: kurt.tip.cs.cmu.edu\nCc: ewoo@unixg.ubc.ca\nOrganization: School of Computer Science, Carnegie Mellon\nLines: 11\n\nIn article <1r8anlINN60g@skeena.ucs.ubc.ca> ewoo@unixg.ubc.ca (Emile Woo) writes:\n>program manager but it seems that everytime I install something new that\n>makes a new group, it promptly disappears after I turn of windows!\n\n(1) Did you check that a new *.grp file was actually created in your Windows\n    directory?\n(2) Are you _turning off_ your computer when windows is running rather than\n    closing Program Manager?\n\n\n -- Ekkehard\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10695, "properties": {"category": "rec.sport.hockey", "text": "From: golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy)\nSubject: Re: WC 93: Results, April 18\nOrganization: University of Toronto Chemistry Department\nLines: 26\n\nIn article <1r1439$c9t@access.digex.net> steveg@cadkey.com (Steve Gallichio) writes:\n>\n>Gerald Olchowy (golchowy@alchemy.chem.utoronto.ca) writes:\n>> Podein is an interesting case...because he was eligible to\n>> play in Cape Breton in the AHL playoffs like Kovalev, Zubov,\n>> and Andersson...obviously Sather and Pocklington are not\n>> the total scrooges everyone makes them out to be...certainly\n>> in this case they've massively outclassed Paramount and the\n>> New York Rangers.\n>\n>What is the policy regarding players and the minor league playoffs versus WC?\n>I know that the Rangers are holding back Kovalev, Zubov, and Andersson for\n>Binghamton, but I also know that the Whalers wanted Michael Nylander to play\n>for Springfield, while Nylander wanted to play for Sweden. The Whalers allowed\n>the NHL to decide, and the NHL chose the WCs. How does this differ from the\n>Rangers and Oilers? Did the Whalers have to go through the league, or could\n>they have forced Nylander to play in Springfield?\n>\n\nObviously, it is ultimately the teams choice...the NHL would obviously\nprefer not to annoy the European hockey federations, but the NHL right\nnow cannot force NHL teams to free their players...the Whalers probably\ndid it this way so as to not annoy their farm team affiliate.\n\nGerald\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10696, "properties": {"category": "rec.motorcycles", "text": "From: dean@fringe.rain.com (Dean Woodward)\nSubject: Re: Comments on a 1984 Honda Interceptor 1000?\nOrganization: Organization for Mass Confusion.\nLines: 30\n\njearls@tekig6.PEN.TEK.COM (Jeffrey David Earls) writes:\n\n> In article <19APR93.15421177@skyfox> howp@skyfox writes:\n> >Hi.\n> >     I am considering the purchase of a 1984 Honda 1000cc Interceptor for\n> >$2095 CDN (about $1676 US).  I don't know the mileage on this bike, but from\n> >the picture in the 'RV Trader' magazine, it looks to be in good shape.\n> >Can anybody enlighten me as to whether this is a good purchase?  \n> \n>    Oog.  I hate to jump in on this type of thread but ....\n> \n>       pass on the VF1000.  It's big, top heavy, and carries lots of\n>       expensive parts.  \n\nWhat he said.  Most of my friends refer to them as \"ground magnets.\"  One\n\n\n> =============================================================================\n> |Jeff Earls  jearls@tekig6.pen.tek.com | DoD #0530  KotTG  KotSPT   WMTC  AMA\n> |'89 FJ1200 - Millennium Falcon        |   Squid Factor: 16.99               \n> |'93 KLR650 - Thumpy                   | \"Hit the button Chewie!\"... Han Solo\n> \n>     \"There ain't nothin' like a 115 mph sweeper in the Idaho rockies.\" - me\n\n\n--\nDean Woodward         | \"You want to step into my world?\ndean@fringe.rain.com  |   It's a socio-psychotic state of Bliss...\"\n'82 Virago 920        |              -Guns'n'Roses, 'My World'\nDoD # 0866\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10697, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Dislocated Shoulder\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 19\n\nIn article <1993Apr9.181944.5353@e2big.mko.dec.com> steve@caboom.cbm.dec.com (Steve Katz) writes:\n>\n>Recently I managed to dislocate my shoulder while\n>sking.  The injury also seems to have damaged the nerves\n>in my arm.  I was wondering if someone could point me towards\n>some literature that would give me some background into\n>these types of injuries.  Please respond by EMAIL if possible.\n>\n\nYour medical school library should have books on peripheral nerve\ninjuries.  Probably it was your brachial plexus, so look that up.\n\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.501+0000", "event": "documents", "entityId": 10698, "properties": {"category": "rec.motorcycles", "text": "From: nbetz@csi.compuserve.com (Nathan Betz)\nSubject: First bike: Honda Ascot?\nOrganization: CompuServe Incorporated\nLines: 10\n\nHi folks.\n \nI'm going to be buying my first bike and I'm considering an 82\nHonda Ascot FT500 with less than 5K miles. Does this sound like a\nreasonable choice? Is there anything special I need to know?\n \nThanks.\n \n-Nathan\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10699, "properties": {"category": "comp.windows.x", "text": "From: wsanders@spectrum.xerox.com (bob hosid r382-423)\nSubject: Dynamic changing of the title bar\nOrganization: Xerox\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 4\n\nI am looking for a program I can insert into some code that will allow the title bar to be changed on a window dynamicly.  If one already is out there, I would appreciate a location so I don't have to create this from scratch.\n\nThanks in advance.\nBob Hosid:dloslv300:xerox\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10700, "properties": {"category": "talk.politics.misc", "text": "From: s5ugxk@almserv.uucp (Girish Kumtheker)\nSubject: How many $$ beibg spent at Waco by BATF ??\nOrganization: Fannie Mae\nDistribution: na\nLines: 18\n\nHi,\n\n\nWonder how much money is being spent at Waco by BATF ?\n\nAre we paying because BATF messed up and have made this\na prestige issue ??\n\n\nGirish\n\n\n\n-- \n\nGirish Kumthekar\t\tUnix Technical Support\n\nE mail address : s5ugxk@fnma.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10701, "properties": {"category": "rec.motorcycles", "text": "From: vwelch@ncsa.uiuc.edu (Von Welch)\nSubject: Re: MOTORCYCLE DETAILING TIP #18\nOrganization: Nat'l Ctr for Supercomp App (NCSA) @ University of Illinois\nLines: 22\n\nIn article <1993Apr15.164644.7348@hemlock.cray.com>, ant@palm21.cray.com (Tony Jones) writes:\n|> \n|> How about someone letting me know MOTORCYCLE DETAILING TIP #19 ?\n|> \n|> The far side of my instrument panel was scuffed when the previous owner\n|> dumped the bike. Same is true for one of the turn signals.\n|> \n|> Both of the scuffed areas are black plastic.\n|> \n|> I recall reading somewhere, that there was some plastic compound you could coat\n|> the scuffed areas with, then rub it down, ending with a nice smooth shiny \n|> finish ?\n|> \n\nIn the May '93 Motorcyclist (pg 15-16), someone writes in and recomends using\nrubberized undercoating for this. \n\n-- \nVon Welch (vwelch@ncsa.uiuc.edu)\tNCSA Networking Development Group\n'93 CBR600F2\t\t\t'78 KZ650\t\t'83 Subaru GL 4WD\n\n- I speak only for myself and those who think exactly like me -\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10702, "properties": {"category": "talk.politics.guns", "text": "From: feustel@netcom.com (David Feustel)\nSubject: Re: WACO: Clinton press conference, part 1\nOrganization: DAFCO: OS/2 Software Support & Consulting\nLines: 10\n\nI predict that the outcome of the study of what went wrong with the\nFederal Assault in Waco will result in future assaults of that type\nbeing conducted as full-scale military operations with explicit\nshoot-to-kill directives.\n-- \nDave Feustel N9MYI <feustel@netcom.com>\n\nI'm beginning to look forward to reaching the %100 allocation of taxes\nto pay for the interest on the national debt. At that point the\nfederal government will be will go out of business for lack of funds.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10703, "properties": {"category": "talk.politics.guns", "text": "From: gaucher@sam.cchem.berkeley.edu\nSubject: Re: 2ND AMENDMENT DEAD - GOOD !\nOrganization: University of California, Berkeley\nLines: 49\nNNTP-Posting-Host: sam.cchem.berkeley.edu\nOriginator: gaucher@sam.cchem.berkeley.edu\n\nOh Christ, here we go again. I'm actually going to assume that\nthis was a serious posting, fool that I am.\n\nIn article <1993Apr18.001319.2340@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>Yea, there are millions of cases where yoy *say* that firearms\n>'deter' criminals. Alas, this is not provable. I think that that\n>there are actually *few* cases where this is so. \n \nAnd I suppose I should just take your word for it. Did you ever\nthink that many people who use firearms to protect themselves\nmight not admit to it because of the ridiculous laws which exist\nforbidding concealed carry?\n\n>The bulk of firarems are used against unworthy and unnesessary\n>opponents ... those who posessa a cool jakcet you want, those who\n>would argue with you about a parking space, those who would\n>take your woman. In short, trivial and worthless causes.\n \nI already own a cool jacket. I ride a bicycle to work and park\nit behind my desk. And if my woman decides to go with someone\nelse, I'd be disappointed but killing her new suitor will probably\nnot endear her to me any more than before. Frankly, I've never\nmet a woman worth killing for anyway. (Now, an AR-15 with a chrome\nbarrel, THAT's worth killing for ...!-))\n\n>Too much of this has ruined you cause. There is no recovery. \n>In the near future, federal martials will come for your arms.\n>No one will help you. You are more dangerous, to their thinking,\n>than the 'criminal'. This is your own fault. \n \nDoes this pinhead know something the rest of us don't?\nI'm not too worried about federal martials coming to get my guns.\nThe government can't seem to keep violent criminals in jail since\nthey don't have enough prison space, and the legal system is over-\nburdened anyway. Where are they going to put all the millions of\ngun-owners who won't fork over their weapons? Maybe you'd like to\nvolunteer the services of your humble abode, since you obviously\nfeel sooooo strongly about this.\n\n>The 2nd amendment is dead. Accept this. Find another way.\n \nYour argument has been rendered useless. Accept this. Find another\nnewsgroup.\n\n------------------------------------------------------------\nLee Gaucher   NRA                |  My opinions.\ngaucher@sam.cchem.berkeley.edu   |  No one else's.\n------------------------------------------------------------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10704, "properties": {"category": "sci.med", "text": "From: kxgst1+@pitt.edu (Kenneth Gilbert)\nSubject: Re: Any info. on Vasomotor Rhinitis\nOrganization: University of Pittsburgh\nLines: 21\n\nIn article <1r1t1a$njq@europa.eng.gtefsd.com> draper@gnd1.wtp.gtefsd.com writes:\n:I recently attended an allery seminar.  Steroid Nasal sprays were \n:discussed.  Afterward on a one-on-one basis, I asked the speaker what if \n:none of the Vancanese, Beconase, Nasalide, Nasalcort, or Nasalchrom work \n:nor do any oral decongestants work.  She replied that she saw an article on \n:Vasomotor Rhinitis.  That this is not an allergic reaction and that nothing \n:other than the Afrin's and such would work.  (Which in my case is true).\n\nThere has been some recent research on vasomotor rhinitis that shows that\nipratroprium bromide (Atrovent) inhaled nasally is an effective treatment\nfor many sufferers.  It has been approved for this use and is available\nwith a nasal adaptor in Canada.  In the US the FDA has yet to approve this\nuse of the drug, but it is available as an oral inhaler (for COPD), and\nthese can be adapted for intranasal use.\n\n\n-- \n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n=  Kenneth Gilbert              __|__        University of Pittsburgh   =\n=  General Internal Medicine      |      \"...dammit, not a programmer!\" =\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10705, "properties": {"category": "rec.sport.hockey", "text": "From: horse@dead.duc.auburn.edu (John Horstman)\nSubject: Re: Washington To Beat Pitt\nArticle-I.D.: news.1993Apr15.181531.26088\nReply-To: horse@dead.duc.auburn.edu\nOrganization: Sun Microsystems, Inc.\nLines: 38\nNntp-Posting-Host: dead.duc.auburn.edu\n\nIn article KKq@acsu.buffalo.edu, v128r82w@ubvmsd.cc.buffalo.edu (Ralph L d'Ambrosio) writes:\n>In article <1993Apr14.015415.10176@mprgate.mpr.ca>, tasallot@galaxy.mpr.ca (Mathew Tasalloti) writes...\n>> \n>>If the Penguins get out of the Patrick, they will win the\n>>cup.  However, their hardest task is to get out of that division.\n>>I'm sure that Washington will most definitly throw a rench into the\n>>Penguin plans.  I'm a Canucks fan (not that I think much of their\n>>chances this year), but it seems to me like Washington is the ONLY\n>>team that can stop the Penguins from winning their next Stanley Cup.\n>\n>I was under the impression that the Penguins has had the Caps number for \n>most of the season.\n>\n>> \n>> \n>> \n>>=============================================******>>\n>> \n>>  Mathew Tasalloti\n>>  MPR Teltech Ltd.\n>>  Vancouver, BC, Canada    \n>> \n>>              <<******==================================================\n>********************************************************************************\n>Of course no one asked me, I always interject my opinions on matters I have no\n>concern over.\n>--------------------------------------------------------------------------------\n>Go Islanders, Playoffs here we come\n>Go Jets for '93\n>********************************************************************************\n\n\nAnd last year the Capitals had the Pens number up until about game 3 of the playoffs.\n\n\n\n\nJohn Horstmann\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10706, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ab245@cleveland.Freenet.Edu (Sam Latonia)\nSubject: test don't read!\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 6\nNNTP-Posting-Host: slc4.ins.cwru.edu\n\n\n \n \n-- \nGosh..I think I just installed a virus..It was called MS DOS6...\nDon't copy that floppy..BURN IT...I just love Windows...CRASH...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10707, "properties": {"category": "rec.autos", "text": "From: stecz@pencom.com (John Steczkowski)\nSubject: Re: $6700 for hail damage - a record?\nReply-To: stecz@pencom.com\nDistribution: usa\nOrganization: Pencom Software\nLines: 22\n\nIn article <1993Apr19.235711.7285@cactus.org> boyle@cactus.org (Craig Boyle)  \nwrites:\n> \n> \n> My 90 Integra was hit hard in the 3/25 hailstorm in Austin, TX. \n> The insurance company cut me a check for $6600 ($100 deductible)\n> last week.  Is this a record? Anybody else had settlements from\n> the same hailstorm yet?\n> \n> Craig\n\n\nRumor has it that a guy at Dell Computer had his Miata totalled, so that would  \nbe about $10k.\n\n\n--\n--\n  John Steczkowski                        stecz@pencom.com\n    The Constitution grants you the right to life, liberty, and the\n    *pursuit* of happiness.  It does not attempt to guarantee that\n    everyone *will* be happy.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10708, "properties": {"category": "talk.politics.mideast", "text": "From: adam@endor.uucp (Adam Shostack)\nSubject: Re: Israeli Terrorism\nOrganization: Aiken Computation Lab, Harvard University\nLines: 46\n\nIn article <1rd7eo$1a4@usenet.INS.CWRU.Edu> cy779@cleveland.Freenet.Edu (Anas Omran) writes:\n>\n>In a previous article, tclock@orion.oac.uci.edu (Tim Clock) says:\n\n>>In article <1993Apr24.203620.6531@Virginia.EDU> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n\n>>Since one is also unlikely to get \"the truth\" from either Arab or \n>>Palestinian news outlets, where do we go to \"understand\", to learn? \n>>Is one form of propoganda more reliable than another?\n\n>There are many neutral human rights organizations which always report\n>on the situation in the O.T.\n\n\tA neutral organization would report on the situation in\nIsrael, where the elderly and children are the victims of stabbings by\nHamas \"activists.\"  A neutral organization might also report that\nIsraeli arabs have full civil rights.\n\n>The Israelis used to arrest and sometimes to kill some of these\n>neutral reporters.\n\n\tCare to name names, or is this yet another unsubstantiated\nslander? \n\n>So, this is another kind of terrorism committed by the Jews in Palestine.\n>They do not allow fair and neutral coverage of the situation in Palestine.\n\n\tTerrorism, as you would know if you had a spine that allowed\nyou to stand up, is random attacks on civilians.  Terorism includes\nsuch things as shooting a cripple and thowing him off the side of a\nboat because he happens to be Jewish.  Not allowing people to go where\nthey are likely to be stabbed and killed, like a certain lawyer killed\nlast week, is not terorism.\n\nAdam\n\n\n\n\n\n\n\nAdam Shostack \t\t\t\t       adam@das.harvard.edu\n\n\"If we had a budget big enough for drugs and sexual favors, we sure\nwouldn't waste them on members of Congress...\"   -John Perry Barlow\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10709, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: GGRRRrrr!!  Cages double-parking motorcycles pisses me off!\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 39\n\nEvelyn Wells, on the 12 Apr 1993 11:43 CST wibbled:\n: Once again, this morning I pulled up to the designated motorcycle\n: parking area, only to find a cage pulled up behind the bikes. \n: If people don't double-park cars, why do they do it to motorcycles?\n: Never mind that rhetorical question, I know *why* they do it.\n\n: What I want to know is, what can I do about it?  Carry pieces of\n: paper that say \"Don't park your car in the motorcycle area!!\" ?\n: Call the cops?  Wait until they emerge from the building and berate\n: them until they beg forgiveness?  \n\n: Does anyone else have this problem, and what do you do about it?\n\n: Evie\n\nI don't know if you have a local branch where you are, but the preferred method\nover here is to 'phone the IRA and tell them about the car and that it \nbelongs to an MP who is on a Northern Ireland Government Committee.  An hour\nor so later, and the car is no longer a problem.  It's best not to park too \nclose to it, though.\n--\n\nNick (the Vengeful Biker)   DoD 1069   Concise Oxford   Plastic\n\nM'Lud.\n\n  ___\t___   ___   ___\n {\"_\"} {\"_\"} {\"_\"} {\"_\"}\t  Nick Pettefar, Contractor@Large.\n  ' `\t` '   ' `   ` '\t\t  Currently incarcerated at BNR,\n  ___\t___   ___   ___\t\t  Maidenhead, The United Kingdom.\n |\"_\"| |\"_\"| |\"_\"| |\"_\"|\t  npet@bnr.ca  '86 BMW K100RS \"Kay\"\n  ` '\t' `   ` '   ' `\t\t  Pres. PBWASOH(UK),  BS 0002\n\t    .\n   _ _\t\t_  __ .\n  / ~ ~~\\   |  / ~~  \\\n |_______|    [_______|\n\t   _:_\n\t  |___|\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10710, "properties": {"category": "comp.windows.x", "text": "From: rgasch@nl.oracle.com (Robert Gasch)\nSubject: Program argument: geometry\nOrganization: Oracle Europe\nLines: 7\nX-Newsreader: TIN [version 1.1 PL8]\n\nI have a question regarding the processing of program arguments\nsuch as the -geometry option. Since this is a standard X option, \nI'm wondering wether I have to parse it manually or whether there\nis some predefined function that will do this for me?\n\nThanks for any info\n--> Robret\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10711, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dericks@plains.NoDak.edu (Dale Erickson)\nSubject: Telix Problem\nArticle-I.D.: ns1.C5uMr8.Gyp\nOrganization: North Dakota Higher Education Computing Network\nLines: 9\nNntp-Posting-Host: plains.nodak.edu\n\nWhen I use telix (or kermit) in WIN 3.1, or use telix after exiting windows\nto dos, telix can not find the serial port. If you have some ideas on how\nto solve this problem or where I can find further information, send me email\nor send it to the news group.  Thanks.\n\nDale Erickson \ndericks@plains.nodak.edu\n-- \n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10712, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: louray@seas.gwu.edu (Michael Panayiotakis)\nSubject: Re: MS-Windows access for the blind?\nOrganization: George Washington University\nLines: 36\n\nIn article <mtrottie.64.0@emr1.emr.ca> mtrottie@emr1.emr.ca (Marc Trottier) writes:\n>In article <1993Apr22.172514.13025@cci632.cci.com> jfb@cci632.cci.com (John Bruno) writes:\n>>From: jfb@cci632.cci.com (John Bruno)\n>>Subject: MS-Windows access for the blind?\n>>Date: Thu, 22 Apr 1993 17:25:14 GMT\n>>We are developing an MS-Windows based product that uses a full screen window\n>>to display ~24 rows of textual data.  Is there any product for Microsoft Windows\n>>that will enable blind individuals to access the data efficiently (quickly) ??\n>>\n>>Please email responses and I will post a summary to this group.\n>>\n>>Thanks for any help\n>>--- John Bruno\n>>\n>\n>Apparently, Microsoft came out with a new product: MS-Braille it is suppose \n>to be \"WYTIWIG\".  :-)\n>\n>No offense.\n> \n> \n> Marc Trottier / mtrottie@emr1.emr.ca \n>\n>\n\n\nAT the MICRO$OFT display at FOSE, there were a few computers running\nwindows, and win. apps for the  blind, I think.  Didn't pay much\nattention to it, but it was there.\n\nMickey\n-- \npe-|| ||  MICHAEL PANAYIOTAKIS: louray@seas.gwu.edu \nace|| ||                                   ...!uunet!seas.gwu.edu!louray\n|||| \\/|  *how do make a ms-windows .grp file reflect a HD directory??*\n\\\\\\\\   |  \"well I ain't always right, but I've never been wrong..\"(gd)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10713, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rodc@fc.hp.com (Rod Cerkoney)\nSubject: *$G4qxF,fekVH6\nNntp-Posting-Host: hpfcmrc.fc.hp.com\nOrganization: Hewlett Packard, Fort Collins, CO\nX-Newsreader: TIN [version 1.1 PL8.5]\nLines: 15\n\n\n\n--\n\n\nRegards,\nRod Cerkoney\n                                                        /\\\n______________________________________________         /~~\\\n                                                      /    \\\n  Rod Cerkoney MS 37     email:                      /      \\ \n  Hewlett Packard         rodc@fc.hp.com        /\\  /        \\  \n  3404 East Harmony Rd.  Hpdesk:               /  \\/          \\    /\\\n  Fort Collins, CO 80525  HP4000/UX           /    \\           \\  /  \\\n_____________________________________________/      \\           \\/    \\__\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10714, "properties": {"category": "rec.sport.hockey", "text": "From: \"James J. Murawski\" <jjm+@andrew.cmu.edu>\nSubject: Re: Don Cherry - Coach's Corner summary - April 19, 1993\nOrganization: Administrative Computing & Info Services, Carnegie Mellon, Pittsburgh, PA\nLines: 29\nNNTP-Posting-Host: po2.andrew.cmu.edu\nIn-Reply-To: <allan.735284991@swanlake>\n\n\nOn 20-Apr-93 in Don Cherry - Coach's Corner..\nuser Allan Sullivan@cs.UAlber writes:\n>Next, a clip was shown from an earlier episode, in which Don was\n>proclaiming Doug Gilmour to be the best player, not only in\n>the NHL, but in the world. What about players like Lemieux?\n>Don said that Gilmour was the best PLAYER, not \"Designated point getter\".\n>Its not like baseball, where you have a \"designatted hitter\" who\n>can score runs but can't play defense. Gilmour is a good two way player.\n\nThis clip was shown on local news in Pittsburgh last night (KDKA), complete\nwith animated sarcasm by the sportscaster.  It's the second time Cherry\nhas been shown on local Pittsburgh news in the last couple of weeks.  Both\ntimes he was blasting Lemieux.\n\n\n====================================================================\n    Jim Murawski\n    Sr. Software Engineer               (412) 268-2650  [office]\n    Administrative Computing and        (412) 268-6868  [fax]\n         Information Services           jjm+@andrew.cmu.edu\n    Carnegie Mellon University          Office: UCC 155\n    4910 Forbes Avenue\n    Pittsburgh, PA 15213-3890\n\n    \"Le Mieux!  Le Magnifique!  Soixante Six!  Claude...NON!\"\n\nThere are 1371 days until Clinton (Clinocchio) leaves office (1370 too many).\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10715, "properties": {"category": "comp.graphics", "text": "From: renouar@amertume.ufr-info-p7.ibp.fr (Renouard Olivier)\nSubject: LOOKING for CTDS !\nKeywords: CTDS\nNntp-Posting-Host: amertume.ufr-info-p7.ibp.fr\nOrganization: Universite PARIS 7 - UFR d'Informatique\nLines: 5\n\nI can't find CTDS (Connect The Dots Smoother) in France. If it is a commercial\nprogram I'll happily pay whatever it may cost (do not take it litterally).\nPlease help!\nI have *LOTS* of PoV sources, texture images and animations though, if you\nare looking for something, just tell.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10716, "properties": {"category": "comp.graphics", "text": "From: ridout@bink.plk.af.mil (Brian S.  Ridout)\nSubject: Re: Virtual Reality for X on the CHEAP!\nOrganization: Air Force Phillips Lab.\nLines: 23\nDistribution: world\nNNTP-Posting-Host: bink.plk.af.mil\n\nIn article <1993Apr15.134802.21995@mfltd.co.uk>, sts@mfltd.co.uk (Steve Sherwood (x5543)) writes:\n|> Has anyone got multiverse to work ?\n|> \n|> I have built it on 486 svr4, mips svr4s and Sun SparcStation.\n|> \n|> There seems to be many bugs in it.  The 'dogfight' and 'dactyl' simply do nothing\n|> (After fixing a bug where a variable is defined twice in two different modules - One needed\n|> setting to static - else the client core-dumped)\n|> \n|> Steve\n|> -- \n|> \n|>          Extn 5543, sts@mfltd.co.uk, !uunet!mfocus!sts\n|> +-----------------------------------+------------------------+ Micro Focus\n|> | Just like Pariah, I have no name, |    rm -rf *            | 26 West Street\n|> | Living in a blaze of obscurity,   |      \"rum ruff splat\"  | Newbury\n|> | Need courage to survive the day.  |                        | Berkshire\n|> +-----------------------------------+------------------------+ England\n|>          (A)bort (R)etry (I)nfluence with large hammer\nI built it on a rs6000 (my only Motif machine) works fine.  I added some objects\ninto dogfight so I could get used to flying.  This was very easy. \nAll in all Cool!.  \nBrian\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10717, "properties": {"category": "talk.politics.misc", "text": "From: donb@igor.tamri.com (Don Baldwin)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: TOSHIBA America MRI, South San Francisco, CA\nLines: 17\n\nIn article <16BB1B92B.DAK988S@vma.smsu.edu.Ext> DAK988S@vma.smsu.edu writes:\n>You think that you all have it bad....here at good ol' Southwest Missouri\n>State U., we have 2 parties running for student body president.  There's the\n>token sorority/fraternity faces, and then there's the president and vice\n>president of NORML.  They campaigned by handing out condoms and listing\n>their qualifications as,\"I listen really well.\"  It makes me sick to have\n>a party established on many of the things that are ruining this country like\n>they are.  I think I'll run next year.:(\n\nWell, a student body president can't exactly campaign on the stand\nthat he's \"tough on crime\".  Their job is to listen to what people want\nand fund things that make sense.\n\nCondoms and marijuana aren't exactly the worst things to have available\neither...\n\n   don\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10718, "properties": {"category": "rec.autos", "text": "From: bmoss@grinch.sim.es.com (Brent \"Spuzy\" Moss)\nSubject: Re: water in trunk of 89 Probe??\nNntp-Posting-Host: 130.187.200.5\nOrganization: Evans & Sutherland Computer Corp., Salt Lake City, UT\nLines: 4\n\nThe rubber drain plugs under my carpet in my mazda glc leaked\nlike the ones are doing under your spare in the Probe.\nI tooke them out and put some silicone sealant on them\nand put them back in.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10719, "properties": {"category": "talk.religion.misc", "text": "From: critus@cwis.unomaha.edu (Michael J. Abboud)\nSubject: Re: *** The list of Biblical contradictions\nOrganization: University of Nebraska at Omaha\n  When we speak of the Bible and its apparant contradictions, we would do well to remember the context in\n  If we are to accept this line of reason, remembering that it does not\n  As my study of the Christian Religion has progressed over the years, I have\n  It matters little to me, as a concession in either serves my purpose\nDistribution: usa\nLines: 6\n\ncritus\n\n\n\n\n  \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10720, "properties": {"category": "sci.med", "text": "From: med50003@nusunix1.nus.sg (WANSAICHEONG KHIN-LIN)\nSubject: Re: Lasers for dermatologists\nOrganization: National University of Singapore\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 12\n\nIt is not true that dermatologists gave not reached the laser age, in\nfact, lasers in dermatological surgery is a very new and exciting field.\n\nIt probably won't be effective in tinea pedis because the laser is\nusually a superficial burn (to avoid any deeper damage). Limited tinea\npedis can be cured albeit sometimes slowly by topical antifungals as\nwell as systemic medication i.e. tablets. Finally, a self-diagnosis is\nnot always reliable, lichen simplex chronicus can look like a fungal\ninfection and requires very different treatment.\n\ngervais\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10721, "properties": {"category": "talk.politics.mideast", "text": "From: mtaghavi@magnus.acs.ohio-state.edu (Amir Taghavi)\nSubject: U.S. WANTS IRAN TO END TERRORISM LINKS \nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 27\n\n\tWASHINGTON (UPI) -- A senior State Department official on Tuesday\nruled out any softening of U.S. attitudes toward Iraq but said relations\nwith Iran's Islamic regime could improve substantially if that\ngovernment disassociates itself from international terrorism.\n\t``Despite the name-calling and the harsh rhetoric from across the\nGulf, despite all this, we do not take a position of permanent hostility\ntowards the Islamic Republic of Iran,'' David Mack, deputy assistant\nsecretary for Near Eastern Affairs, said.\n\tThe primary U.S. objection is ``Iran's international behaviour''\nwhich includes ``extending support of violence'' to disrupt the Arab\nIsraeli peace process and its rapid build-up of dangerous weapons.\n\tMack said ``Iran could contribute to regional stability and peace but\nfirst it is to end the behaviour which threatens this area.''\n\tMack spoke at the U.S.-GCC business conference aimed at promoting\nGulf-American trade. He said the ``Middle East will be an item very high\non the agenda of the U.S. administration.''\n\tThe importance of the Gulf is underlined by Secretary of State Warren\nChristoper's visit last year to Saudi Arabia and Kuwait before anywhere\nelse in the world, Mack said. He added that the U.S. has no long-term\nplan to station troops in the Gulf.\n\tMack also insisted that the Clinton administration will continue to\npressure Iraq to ``comply with all the U.N. Security resolutions.''\n\t``As long as Iraq is ruled by Saddam Hussein we do not expect\ncompliance,'' Mack told delegates.\n\n\n\"Copyright 1993 by <UPI/Newsbytes>\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10722, "properties": {"category": "rec.autos", "text": "From: c23tvr@kocrsv01.delcoelect.com (Thomas Redmond)\nSubject: Re: WARNING.....(please read)...\nOriginator: c23tvr@koptsy17\nKeywords: brick, rock,  danger, gun, violent, teenagers\nOrganization: Delco Electronics Corp.\nDistribution: us\nLines: 19\n\n\nIn article <1r1d62$d6s@agate.berkeley.edu>, bh@anarres.CS.Berkeley.EDU (Brian Harvey) writes:\n> rfelix@netcom.com (Robbie Felix) writes:\n> >How about the thousands of kind teenagers who volunteer at local\n> >agencies to help children, seniors, the homeless?\n> \n> Hear, hear!  Thanks, Robbie.\n> \n> You also don't read that much about violence *against* teenagers, such as\n> George Bush burying alive tens of thousands of unarmed Iraqi 17-year-olds,\n> who were trying to surrender, with bulldozers.\n> \n> \n> On the other hand, I think it *is* true, without singling out teenagers\n> for blame, that violence is more socially acceptable than it used to be.\n> Those of us who'd like to discourage violence have plenty of work to do\n> with people of all ages.\n\nI didn't know George could drive a bulldozer!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.502+0000", "event": "documents", "entityId": 10723, "properties": {"category": "rec.sport.hockey", "text": "Subject: NHL Summary parse results for games played Sun, April 4, 1993\nFrom: c5ff@jupiter.sun.csd.unb.ca (COOK  Charlie)\nOrganization: University of New Brunswick\nLines: 210\n\nNY Rangers                       3 1 0--4\nWashington                       0 0 0--0\nFirst period\n     1, NY Rangers, Graves 33 (Turcotte, Lowe) 9:13.\n     2, NY Rangers, Gartner 44 (Messier) 11:21.\n     3, NY Rangers, Olczyk 21 (Messier, Amonte) 14:57.\nSecond period\n     4, NY Rangers, Beukeboom 2 (unassisted) 3:30.\nThird period\n     No scoring.\n\nNY Rangers: 4    Power play: 4-0\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAmonte             0    1    1\nBeukeboom          1    0    1\nGartner            1    0    1\nGraves             1    0    1\nLowe               0    1    1\nMessier            0    2    2\nOlczyk             1    0    1\nTurcotte           0    1    1\n\nWashington: 0    Power play: 3-0\nNo scoring\n\n-----------------------------------------\nBoston                           0 2 1--3\nBuffalo                          0 0 0--0\nFirst period\n     No scoring.\nSecond period\n     1, Boston, Leach 24 (Wesley, Oates) pp, 1:03.\n     2, Boston, Oates 44 (Douris, Poulin) 9:00.\nThird period\n     3, Boston, Douris 4 (Bourque) sh, 0:55.\n\nBoston: 3    Power play: 5-1   Special goals:  pp: 1  sh: 1  Total: 2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBourque            0    1    1\nDouris             1    1    2\nLeach              1    0    1\nOates              1    1    2\nPoulin             0    1    1\nWesley             0    1    1\n\nBuffalo: 0    Power play: 6-0\nNo scoring\n\n-----------------------------------------\nPittsburgh                       1 3 1--5\nNew Jersey                       0 1 1--2\nFirst period\n     1, Pittsburgh, Francis 23 (Lemieux, Tocchet) pp, 13:25.\nSecond period\n     2, Pittsburgh, Murphy 21 (Francis, Mullen) sh, 0:38.\n     3, Pittsburgh, Francis 24 (Tocchet, Lemieux) pp, 7:14.\n     4, Pittsburgh, Jagr 33 (Tocchet, Francis) pp, 15:22.\n     5, New Jersey, Zelepukin 17 (Driver, Lemieux) pp, 19:07.\nThird period\n     6, New Jersey, MacLean 23 (Nicholls, Stevens) 6:45.\n     7, Pittsburgh, Lemieux 62 (Jagr) en, 19:51.\n\nPittsburgh: 5    Power play: 9-3   Special goals:  pp: 3  sh: 1  en: 1  Total: 5\nScorer            G    A   Pts\n---------------  ---  ---  ---\nFrancis            2    2    4\nJagr               1    1    2\nLemieux            1    2    3\nMullen             0    1    1\nMurphy             1    0    1\nTocchet            0    3    3\n\nNew Jersey: 2    Power play: 9-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nDriver             0    1    1\nLemieux            0    1    1\nMacLean            1    0    1\nNicholls           0    1    1\nStevens            0    1    1\nZelepukin          1    0    1\n\n-----------------------------------------\nToronto                          0 0 0--0\nPhiladelphia                     2 1 1--4\nFirst period\n     1, Philadelphia, Dineen 31 (Beranek, Hawgood) 8:10.\n     2, Philadelphia, McGill 3 (Lindros, Recchi) 19:55.\nSecond period\n     3, Philadelphia, Lindros 38 (Recchi, Galley) 7:55.\nThird period\n     4, Philadelphia, Dineen 32 (Hawgood, Galley) pp, 18:39.\n\nPhiladelphia: 4    Power play: 4-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBeranek            0    1    1\nDineen             2    0    2\nGalley             0    2    2\nHawgood            0    2    2\nLindros            1    1    2\nMcGill             1    0    1\nRecchi             0    2    2\n\nToronto: 0    Power play: 6-0\nNo scoring\n\n-----------------------------------------\nVancouver                        0 2 1--3\nOttawa                           0 0 0--0\nFirst period\n     No scoring.\nSecond period\n     1, Vancouver, Plavsic 6 (Craven) 13:05.\n     2, Vancouver, Momesso 17 (Nedved, Plavsic) pp, 15:52.\nThird period\n     3, Vancouver, Bure 57 (unassisted) 13:27.\n\nVancouver: 3    Power play: 4-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBure               1    0    1\nCraven             0    1    1\nMomesso            1    0    1\nNedved             0    1    1\nPlavsic            1    1    2\n\nOttawa: 0    Power play: 5-0\nNo scoring\n\n-----------------------------------------\nSt. Louis                        2 0 2--4\nChicago                          4 0 1--5\nFirst period\n     1, Chicago, Sutter 18 (Murphy, Chelios) pp, 1:08.\n     2, St. Louis, Janney 20 (Shanahan, J.Brown) pp, 6:49.\n     3, Chicago, Roenick 44 (Chelios, Smith) pp, 8:20.\n     4, Chicago, Roenick 45 (Sutter, Chelios) pp, 13:14.\n     5, Chicago, Graham 19 (Gilbert, Ruuttu) 13:42.\n     6, St. Louis, Janney 21 (Shanahan, Crossman) 19:38.\nSecond period\n     No scoring.\nThird period\n     7, Chicago, Murphy 5 (Chelios, Belfour) 0:20.\n     8, St. Louis, Miller 21 (Hull, Janney) pp, 7:04.\n     9, St. Louis, Janney 22 (Miller, Shanahan) 19:32.\n\nChicago: 5    Power play: 8-3\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBelfour            0    1    1\nChelios            0    4    4\nGilbert            0    1    1\nGraham             1    0    1\nMurphy             1    1    2\nRoenick            2    0    2\nRuuttu             0    1    1\nSmith              0    1    1\nSutter             1    1    2\n\nSt. Louis: 4    Power play: 4-2\nScorer            G    A   Pts\n---------------  ---  ---  ---\nBrown J            0    1    1\nCrossman           0    1    1\nHull               0    1    1\nJanney             3    1    4\nMiller             1    1    2\nShanahan           0    3    3\n\n-----------------------------------------\nCalgary                          1 2 1--4\nSan Jose                         1 0 2--3\nFirst period\n     1, Calgary, Otto 19 (Yawney, Ashton) pp, 5:29.\n     2, San Jose, Odgers 10 (Pederson, Wilkinson) 18:33.\nSecond period\n     3, Calgary, Nieuwendyk 34 (Johansson, Reese) 2:03.\n     4, Calgary, Reichel 35 (Skrudland, Berube) 12:22.\nThird period\n     5, Calgary, Ashton 7 (Otto, Fleury) 1:30.\n     6, San Jose, Pederson 9 (Odgers, Evason) 2:24.\n     7, San Jose, Odgers 11 (Gaudreau, Evason) pp, 19:30.\n\nCalgary: 4    Power play: 5-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nAshton             1    1    2\nBerube             0    1    1\nFleury             0    1    1\nJohansson          0    1    1\nNieuwendyk         1    0    1\nOtto               1    1    2\nReese              0    1    1\nReichel            1    0    1\nSkrudland          0    1    1\nYawney             0    1    1\n\nSan Jose: 3    Power play: 5-1\nScorer            G    A   Pts\n---------------  ---  ---  ---\nEvason             0    2    2\nGaudreau           0    1    1\nOdgers             2    1    3\nPederson           1    1    2\nWilkinson          0    1    1\n\n-----------------------------------------\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10724, "properties": {"category": "rec.sport.hockey", "text": "From: gsu0033@uxa.ecn.bgu.edu (Eric Molas)\nSubject: Re: Playoff predictions\nOrganization: Educational Computing Network\nLines: 53\nNNTP-Posting-Host: uxa.ecn.bgu.edu\n\n\n>1st round: \n>----------\n\n>PITT vs NYI:  PITT in 4.  \n>WASH vs NJD:  WASH in 6. \n\n>BOS  vs BUF:  BOS  in 5. \n>QUE  vs MON:  MON  in 7. \nI'd have to take Quebec in 6.\n\n>CHI  vs STL:  CHI in 4. \n\nHawks will win, but it will take 5.\n>DET  vs TOR:  DET in 6. \n\n>VAN  vs WIN:  WIN in 6. \n>CAL  vs  LA:  CAL in 5. \nCal in 7.\n>2nd round: \n>----------\n\n>PITT vs WASH: PITT in 4. \n>BOS  vs MON:  BOS  in 6. \nBoston will beat Quebec in 6.\n>CHI  vs DET:  CHI  in 7. \n>WIN  vs CAL:  CAL  in 5. \n\n>3rd round: \n>----------\n\n>PITT vs BOS:  PITT in 5. \nPitt in 6. The Bruins arent a pushover.\n>CHI  vs CAL:  CHI  in 5. \nThe hawks havent had problems with them  all year. Yep, I agree.\n>Finals:\n>------\n\n>PITT vs CHI: PITT in 5. \nUnless the Hawks can somehow change fate, you're right.  \n\nWho knows, though.  Maybe some intensive forechecking aka normal Hawks\nstyle will nullify a seemingly unbeatable team.  Maybe the Pens are due\nfor a let-down.  Hell, how could they _possibly_ extend their record\nmaking play all the way through the playoffs.? \n\n>=============================================\n>Walter\n\n-- \n//Damien Endemyr the Unpure Knight of Doom                          //\n//\"So I've acquired a taste for blood and have adopted a nocturnal  //\n//lifestyle.  That Doesnt mean I'm a vampire.....\"                  //\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10725, "properties": {"category": "soc.religion.christian", "text": "From: JEK@cu.nih.gov\nSubject: Chanting of the Passion\nLines: 14\n\nMike Rolfe writes:\n\n > If you know the Latin, one really beautiful way to hear the\n > Passion is its being chanted by three deacons: the Narrator\n > chants in the middle baritone range, Jesus chants in the bass,\n > and others directly quoted are handled by a high tenor.\n\nThis is done in English (same music as the traditional Latin) in\nmany Anglican parishes. I should expect that many RCC parishes would\ndo likewise.  The ST MATTHEW PASSION and ST JOHN PASSION of J S Bach\nare direct offshoots of this tradition\n\n Yours,\n James Kiefer\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10726, "properties": {"category": "rec.autos", "text": "From: jkjec@westminster.ac.uk (Shazad Barlas)\nSubject: Re: Manual Shift Bigots wanted\nOrganization: University of Westminster\nLines: 7\n\nThe best auto-shifters on the street (AND NOT THE TRACK) are those from \nPorsche... they wont change if you floor the gas during a turn.... a few \nyears back a was in a 200SX auto (you guys call it a 240SX [without turbo])\nand was going round a corner.... I floored it and next thing I know I was \npointing backwards! The other drivers seemed quite amused ;-)\n\n\t\t\t\t\t\t....Shaz....\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10727, "properties": {"category": "talk.religion.misc", "text": "From: mlee@post.RoyalRoads.ca (Malcolm Lee)\nSubject: Re: Davidians and compassion\nOrganization: Royal Roads Military College, Victoria, B.C.\nLines: 34\n\n\nIn article <sandvik-200493000159@sandvik-kent.apple.com>, sandvik@newton.apple.com (Kent Sandvik) writes:\n|> In article <93Apr20.011634edt.47719@neat.cs.toronto.edu>,\n|> cbo@cs.toronto.edu (Calvin Bruce Ostrum) wrote:\n|> > In article <sandvik-190493200420@sandvik-kent.apple.com>\n|> >    sandvik@newton.apple.com (Kent Sandvik) writes:\n|> > | I have a hard time just now understanding that Christianity\n|> > | knows about the word compassion. Christians, do you think \n|> > | the actions today would produce a good picture of your \n|> > | religion?\n|> > Clearly all people considering themselves Christians are all alike,\n|> > and support one another in everything they do.  In particular, it\n|> > follows that they certainly will support all the actions of any\n|> > other person calling himself a Christian...  NOT.\n|> \n|> I see, there are Christians, and there are Christians. No wonder\n|> the Christian world is in shambles, you can't even agree who\n|> is a rightful one and a wrong one.\n|> \n\nIf one does not follow the teachings of Christ, he is NOT Christian.  \nToo easy?  \n\n|> Please, I would like to hear your comments about a supposed\n|> Christian leader that makes sure that children are burnt to\n|> death.\n|> \n\nWould you say all Muslims are like Saddam Hussein?  I wouldn't make\nsuch a blanket judgement, why do you?\n\n|> Kent\n|> ---\n|> sandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10728, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: thang@harebell.egr.uh.edu (Chin-Heng  Thang)\nSubject: Win 3.1 startup screen downgraded to win 3.0 startup screen ???!!!?!?!\nOrganization: University of Houston\nLines: 20\nNNTP-Posting-Host: harebell.egr.uh.edu\n\nHHHHEEEELLLLPPPP Meeeeeee!\n\n\tI installed a 256 color svga driver for my windows last week.   \nThis driver was downloaded from ftp.cica.indiana.edu specifically for  \nParadise svga card.  However, after I installed it and when I run windows,  \nthe startup screen in the beginning becomes the old windows 3.0 startup  \nscreen ????!!??!!\n\n\tEverything works fine except the startup screen.  I know the  \nstartup screen must have been changed in the system.ini file (or is it ?)  \nbut I couldn't figure out what to alter!   Can some one help me with this?   \nPlease e-mail to my address:\n\n\tthang@tree.egr.uh.edu  or  thang@jetson.uh.edu\n\nIn addition, can anyone know where can I get a 1024x680 paradise svga  \ndriver (256 color) ?  this is a used computer and I do not have anything  \n(drivers, etc) regarding the driver....\n\nthanks in advance.......;o)\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10729, "properties": {"category": "rec.autos", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: LICENSE PLATES\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 16\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\n\n\nIn a previous article, edf003@marshall.wvnet.edu () says:\n\n>>Hi, I'm interested in getting the list for license plate numbers.  If anyone\n>>has a listing I'd appreciate getting a copy of it.  Thanks!\n>>\nYou must be _incredibly_ bored.  Have you considered reading the phone book?\n-- \n\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10730, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Fingernail \"moons\"\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 16\n\nIn article <733196190.AA00076@calcom.socal.com> Daniel.Prince@f129.n102.z1.calcom.socal.com (Daniel Prince) writes:\n\n>I only have lunulas on my thumbs.  Is there any medical \n>significance to that finding?  Thank you in advance for all \n>replies.\n>\n\nTry peeling the skin back at the base of your other fingernails\n(not too hard, now, don't want to hurt yourself).  You'll find\nnice little lunulas there if you can peel it back enough.  \n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10731, "properties": {"category": "soc.religion.christian", "text": "From: muirm@argon.gas.organpipe.uug.arizona.edu (maxwell c muir)\nSubject: Re: Homosexuality issues in Christianity\nOrganization: University of Arizona, Tucson\nLines: 75\n\nCan someone cite Biblical references to homosexuality being immoral, other\nthan Leviticus? So far, when I ask, around here, I get the verses from\nLeviticus spouted at me, but the whole rest of that book tends to be\nignored by Christians (haven't seen any stonings in a _long_ time :-).\n\nLater,\nMax (Bob) Muir\n\n[The list was posted not long ago, as I recall, aside from Lev, commonly\ncited passages are:\n\nthe story of Sodom.  Note however that this was a homosexual rape, and\nthere's no disagreement that that is wrong.  I take an intermediate\nposition on this: note that Sodom is referred to elsewhere in the\nBible for its sinfulness.  It doesn't seem to have been known\nspecifically for homosexuality.  Rather, I think it was considered a\ncesspool of all sins. However from what we know of Jewish attitudes,\nhomosexuality would have contributed to the horror of the action\ndescribed.  (It almost seems to have been contrived to combine about\nas many forms of evil in one act as possible: homosexual rape of\nguests, who were actually angels.)  But this story is not specifically\nabout homosexuality.\n\nIn the NT, the clear references are all from Paul's letters.  In Rom\n1, there is a passage that presupposes that homosexuality is an evil.\nNote that the passage isn't about homosexuality -- it's about\nidolatry.  Homosexuality is visited on people as a punishment, or at\nleast result, of idolatry.  There are a number of arguments over this\npassage.  It does not use the word \"homosexuality\", and it is referring\nto people who are by nature heterosexual practicing homosexuality.\nSo it's not what I'd call an explicit teaching against all homosexuality.\nBut it does seem to support what would be a natural assumption anyway,\nthat Paul shares the general negative Jewish attitude towards \nhomosexuality.\n\nThe other passages occur in lists of sins, in I Cor 6:9, and I Tim\n1:10.  Unfortunately it's not entirely clear what the words used here\nmean.  There have been suggestions that one has a broader meaning,\nsuch as \"wanton\", and that another may be specifically \"male\nprostitute\".  Again, we don't have here a precise teaching about\nhomosexuality, but it is at least weak supportive evidence that Paul\nshared the OT's negative judgement on homosexuality.\n\nJude 1:7 is sometimes cited, however it's probably not relevant.  The\ncontext in Jude involves angels.  Since those who were almost raped in\nSodom were angels, it seems likely that \"strange flesh\" refers to\nintercourse with angels.\n\nAs you can see, the NT evidence is such that people's conclusion is\ndetermined by their approach to the Bible.  Conservatives note that\nthe passages from Paul's letters imply that he accepted the OT\nprohibition.  This is enough for them to regard it as having NT\nendorsement.  Liberals note that there's no specific teaching, and no\nclear definition of what is being prohibited or why (is the concern in\nRom 1 the connection of homosexuality to pagan worship?  what exactly\ndo the words in the lists of sins mean?).  Thus some believe it is\nlegitimate to regard this as a attitude Paul took with him from his\nbackground and not a specific teaching of the Gospel.\n\nThis is an explosive topic, which tends to result in long\ndissertations on the exact meaning of various Greek words.  But it's\nclear to me that that's mostly irrelevant.  What it really comes down\nto is whether people are looking to the Bible for law or whether they\nbelieve that such as approach is inconsistent with the Gospel.  This\nappears to depend upon one's reaction to the message of the Bible as a\nwhole, as well as one's perception of the needs of the church today.\nThis is a difference of approach at least as serious as the difference\nbetween Protestant and Catholic in the 16th Cent, and one where both\nsides believe that the Bible is so obviously on their side that they\nkeep thinking all they have to do is quote a few more passages and the\nother side will finally come to their senses.  That makes things\nvery frustrating for a moderator, who realizes that such an optimistic\noutcome is not very likely...\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10732, "properties": {"category": "rec.sport.baseball", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <RVESTERM@vma.cc.nd.edu>\nSubject: Re: Boog Powell (was re: CAMDEN YARDS)\n <1993Apr13.150904.25249@alchemy.chem.utoronto.ca>\nLines: 9\n\nIn article <1993Apr13.150904.25249@alchemy.chem.utoronto.ca>, Mark B. says:\n>\n> Was he better than Balboni?\n>\n\nthis borders on blasphemy.\n\nbob vesterman.\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10733, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: u7911093@cc.nctu.edu.tw (\"By SWH )\nSubject: How Redirect PRINT MANAGER To FILE?\nOrganization: National Chiao Tung University\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 20\n\nHello,\n\n\tWho can tell me   Where can I find the PD or ShareWare   \nWhich can CAPTURE windows 3.1's output of printer mananger?\n\n\tI want to capture the output of HP Laser Jet III.\n\n\tThough the PostScript can setup to print to file,but HP can't.\n\n\tI try DOS's redirect program,but they can't work in Windows 3.1\n\n\t\tThankx for any help....\n\n--\n Internet Address: u7911093@cc.nctu.edu.tw\n\n    English Name: Erik Wang\n    Chinese Name: Wang Jyh-Shyang\n\n National Chiao-Tung University,Taiwan,R.O.C.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10734, "properties": {"category": "rec.sport.baseball", "text": "From: rdetweil@boi.hp.com (Richard Detweiler)\nSubject: Re: ESPN and Expansion\nDistribution: usa\nOrganization: Hewlett Packard\nLines: 33\n\nIn article <C5109u.7C0@ucdavis.edu> itlm013@dale.ucdavis.edu (Donnie Trump) writes:\n>I was watching Peter Gammons on ESPN last night, and he's got me a little\n>confused.\n>\n>While talking about expansion, he started mentioning people who might benefit\n>from the fringe players they'll be facing: McGriff hitting 50 home runs,\n>Sheffield getting 150 rbi's, and Glavine winning 25 games.  This was,\n>of course, all in reference to what happened the *other* times that baseball\n>has expanded (early 60's, late 60's, late 70's).\n>\n>What really confused me, though, was the mention of *AL* players who would\n>do well next year.  Specifically, Roger Clemens winning 25 games, and the\n>likes of McGwire and Gonzalez hitting 50 home runs.\n>\n>My question is:  How in the hell will the Rockies/Marlins help the AL?  The\n>last time I looked, there wasn't a lot of talent jumping leagues.  Did I\n>miss something?\n>\n>Dennis Cleary\n>dfcleary@ucdavis.edu\n>\n\nI wondered the same thing.  When he first mentioned it, I thought he was\njust making a mistake but then he said it over and over.  And then in the\nexamples from other years, he gave stats for players from both leagues even\nwhen only one league expanded.\n\nSo (since stats *NEVER* lie :-) ), I guess there is an effect on both leagues\nbecause the expansion draft takes talent from both leagues equally making \nevery team in both leagues dilute their major league talent by calling up\nplayers that, normally, they would not have had there not been expansion.\n\nMake sense?\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10735, "properties": {"category": "sci.crypt", "text": "From: anthonyf@microsoft.com (Anthony Francisco)\nSubject: Re: Clipper and Ranting Libertarians\nOrganization: Microsoft Corp.\nKeywords: clipper clinton rant rave libertarians\nDistribution: usa\nLines: 11\n\nJust a little nitpicking. Wasn't it the government that required\na standard railway gauge ? Didn't that improve things ?\n\nPlease don't misunderstand. I'm utter suspicious of this Clipper\nchip. Why hold the design TOP SECRET ? Was this a work around the\nlaw that says that any discoveries made by people working for the\ngovernment is public domain. ( e.g. NIH Class Library, etc. )\nDES has its designs published all over the place and it is considered\nfairly strong ( although could be stronger ).\n\n\t\t\t\t\t\t\t- Ants\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10736, "properties": {"category": "talk.politics.mideast", "text": "From: avi@duteinh.et.tudelft.nl (Avi Cohen Stuart)\nSubject: Re: Israel's Expansion II\nOriginator: avi@duteinh.et.tudelft.nl\nNntp-Posting-Host: duteinh.et.tudelft.nl\nOrganization: Delft University of Technology, Dept. of Electrical Engineering\nLines: 14\n\nFrom article <93111.225707PP3903A@auvm.american.edu>, by Paul H. Pimentel <PP3903A@auvm.american.edu>:\n> What gives Isreal the right to keep Jeruseleum?  It is the home of the muslim a\n> s well as jewish religion, among others.  Heck, nobody ever mentions what Yitza\n> k Shamir did forty or fifty years ago which is terrorize westerners much in the\n>  way Abdul Nidal does today.  Seems Isrealis are nowhere above Arabs, so theref\n> ore they have a right to Jerusaleum as much as Isreal does.\n\n\nThere is one big difference between Israel and the Arabs, Christians in this\nrespect.\n\nIsrael allows freedom of religion.\n\nAvi.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10737, "properties": {"category": "talk.politics.misc", "text": "From: woody@cco.caltech.edu (William Edward Woody)\nSubject: Re: Top Ten Signs That It's the Age of Aquarius on Pennsylvania Avenue\nOrganization: California Institute of Technology, Pasadena\nLines: 93\nNNTP-Posting-Host: alumni.caltech.edu\n\nIn article <1ql7tuINN8j8@MINERVA.CIS.YALE.EDU> chaudhary-amar@yale.edu (Amar Chaudhary) writes:\n>\n>6.   Hey, I think the beaded curtains add a lovely 60's-esque touch!\n\nAAAAAAAAAAAA!  RUN! RUN FOR YOUR LIVES!\n\n\n>5.   Look, Canada, Europe, and Japan manage to provide health care for their\n>     citizens (and, yes, basic health IS a human right which people are\n>     entitled to).  If these nations aren't capitalist enough for you, then\n>     I guess we've found something better than capitalism!  There is nothing\n>     sacred about the capitalist system, and if something, be it socialism\n>     or anything else, works better, then I say let capitalism die.\n\nThen why are they in the process of systematically dismantling some of\ntheir socialistic health care systems through privitization of key components?\n\n>4.   Make love, not War!\n\nIf I hold a gun to your wife, would you respond the same way? I don't\nthink so. While the age of aquarius may have hit the White House, the\nage of peace love and harmony hasn't hit in South Central LA nor has it\nhit in former Yugoslavia. And as long as there are people in the world\nwho would rather see me dead than thrive, I want the protection of a\npolice force who will keep the peace so I *can* make love without being\nshot.\n\n>3.   Contrary to popular belief, it is possible to be a male and a feminist\n>     at the same time.  To discriminate against or to deny equal opportunity\n>     to a MAJORITY of the population is just plain wrong, and trying to force\n>     them into some sort of tradition role is even worse.  Women certainly \n>     have as much to offer this world as men, and the day that gender\n>     discrimination is finally broken it going to make all the revolutions of\n>     the past few centuries seem like reform bills.  I look forward to it.\n\nThe ultimate statement for equal rights (something many of the feminazis\nhave forgotten) is \"I do not care if you are either a man or a woman,\nI do not care if you are black or white, I do not care if you are gay\nor straight.\" Once you can honistly say \"I do not care about color,\nrace, or gender or sexual preference\", then we will truly be on the\nright track.\n\nKeep shoving differences in my face and then expect us all to get along?\nGet real! So long as you try to make me care if you are black, female,\nor whatever, I am going to continue to balk. It's natural human behaviour.\n\nBut the moment employers searching for employees, banks looking to lend\nmoney, and theClinton administration looking for appointees can honistly\nsay \"I do not care about your color, race, gender, or sexual preferences;\nI instend instead to treat you as a human being,\" crap like last year's\nriots will continue to happen.\n\n>1.   HEY MAN, ACADAMIA RULES!!\n\nBarf.\n\nYou mean the same economic theorists who say things like \"for the sake\nof convenience in mathematical modeling we will first assume there is\nno wealth creation\" now get a crack at implementing their PhD thesis in\nreal life?\n\nGo back to your textbooks on macroeconomic theory. Look in the first chapter\nof that book, introducing the field of macroeconomic theory. Right there\nin chapter 1, section 1, is a statement like the following:\n\n\t\"As it is difficult to predict and model wealth creation,\n\tespecially in an economy where wealth creation is inherently\n\tthe province of individuals who create new inventions and\n\tdiscover new ideas, we will assume for the rest of this\n\tbook that there is no wealth creation.\n\n\t\"We do not assume the lack of weath creation in the real world,\n\thowever the mathematical modeling of such an inherently\n\tunpredictable subject is impossible. Even though we assume\n\tno wealth creation, we do believe that for most mathematical\n\teconomic modeling such an assumption is reasonably valid\n\tas it allows us to make predictions which then can be tested.\"\n\nSo the guys who are running the store for Clinton and company are now\nassuming that wealth creation does not exists. They are (borrowing an\nidea from the Hitchhiker's Guide) too advanced to think of these simple\nthings.\n\nTo be honist, I would rather have an engineer with years of experience\nbuilding bridges design the next bridge, rather than a theoretical\nphysicists with a freshly minted PhD and no experience do the same job.\n\n\t\t\t\t\t- Bill Woody\n\nNormally I don't post (or even read most of the postings) in this newsgroup.\nIf you would like to reply to this message and want me to see the reply,\nthen I guess you will just have to reply directly to me.\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10738, "properties": {"category": "sci.space", "text": "From: jfw@ksr.com (John F. Woods)\nSubject: Re: A WRENCH in the works?\nOrganization: Kendall Square Research Corp.\nLines: 15\n\nnanderso@Endor.sim.es.com (Norman Anderson) writes:\n>jmcocker@eos.ncsu.edu (Mitch) writes:\n>>effect that one of the SSRBs that was recovered after the\n>>recent space shuttle launch was found to have a wrench of\n>>some sort rattling around apparently inside the case.\n>I heard a similar statement in our local news (UTAH) tonight. They referred\n>to the tool as \"...the PLIERS that took a ride into space...\". They also\n>said that a Thiokol (sp?) employee had reported missing a tool of some kind\n>during assembly of one SRB.\n\nI assume, then, that someone at Thiokol put on their \"manager's hat\" and said\nthat pissing off the customer by delaying shipment of the SRB to look inside\nit was a bad idea, regardless of where that tool might have ended up.\n\nWhy do I get the feeling that Thiokol \"manager's hats\" are shaped like cones?\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10739, "properties": {"category": "sci.space", "text": "From: szabo@techbook.com (Nick Szabo)\nSubject: SSF Redesign: Constellation\nSummary: decentralize & automate functions\nKeywords: space station, constellation\nArticle-I.D.: techbook.C51z6E.CL1\nOrganization: TECHbooks --- Public Access UNIX --- (503) 220-0636\nLines: 89\n\nSSF is up for redesign again.  Let's do it right this\ntime!  Let's step back and consider the functionality we want:\n\n[1] microgravity/vacuum process research\n[2] life sciences research (adaptation to space)\n[3] spacecraft maintenence \n\nThe old NASA approach, explified by Shuttle and SSF so far, was to\ncentralize functionality.  These projects failed to meet\ntheir targets by a wide margin: the military and commercial users \ntook most of their payloads off Shuttle after wasting much effort to \ntie their payloads to it, and SSF has crumbled into disorganization\nand miscommunication.  Over $50 billion has been spent on these\ntwo projects with no reduction in launch costs and littel improvement\nin commercial space industrialization.  Meanwhile, military and commercial \nusers have come up with a superior strategy for space development: the \nconstellation.  \n\nFirstly, different functions are broken down into different \nconstellations placed in the optimal orbit for each function:\nthus we have the GPS/Navstar constellation in 12-hour orbits,\ncomsats in Clarke and Molniya orbits, etc.  Secondly, the task\nis distributed amongst several spacecraft in a constellation,\nproviding for redundancy and full coverage where needed.\n\nSSF's 3 main functions require quite different environments\nand are also prime candidates for constellization.\n\n[1] We have the makings of a microgravity constellation now:\nCOMET and Mir for long-duration flights, Shuttle/Spacelab for\nshort-duration flights.  The best strategy for this area is\ninexpensive, incremental improvement: installation of U.S. facilities \non Mir, Shuttle/Mir linkup, and transition from Shuttle/Spacelab\nto a much less expensive SSTO/Spacehab/COMET or SSTO/SIF/COMET.\nWe might also expand the research program to take advantage of \ninteresting space environments, eg the high-radiation Van Allen belt \nor gas/plasma gradients in comet tails.  The COMET system can\nbe much more easily retrofitted for these tasks, where a \nstation is too large to affordably launch beyond LEO.\n\n[2] We need to study life sciences not just in microgravity,\nbut also in lunar and Martian gravities, and in the radiation\nenvironments of deep space instead of the protected shelter\nof LEO.  This is a very long-term, low-priority project, since\nastronauts will have little practical use in the space program\nuntil costs come down orders of magnitude.  Furthermore, using\nastronauts severely restricts the scope of the investigation,\nand the sample size.  So I propose LabRatSat, a constellation\ntether-bolo satellites that test out various levels of gravity\nin super-Van-Allen-Belt orbits that are representative of the\nradiation environment encountered on Earth-Moon, Earth-Mars,\nEarth-asteroid, etc. trips.  The miniaturized life support\nmachinery might be operated real-time from earth thru a VR\ninterface.  AFter several orbital missions have been flown,\nfollow-ons can act as LDEFs on the lunar and Martian surface,\ntesting out the actual environment at low cost before $billions\nare spent on astronauts.\n\n[3] By far the largest market for spacecraft servicing is in \nClarke orbit.  I propose a fleet of small teleoperated\nrobots and small test satellites on which ground engineers can\npractice their skills.  Once in place, robots can pry stuck\nsolar arrays and antennas, attach solar battery power packs,\ninject fuel, etc.  Once the fleet is working, it can be\nspun off to commercial company(s) who can work with the comsat\ncompanies to develop comsat replaceable module standards.\n\nBy applying the successful constellation strategy, and getting\nrid of the failed centralized strategy of STS and old SSF, we\nhave radically improved the capability of the program while\ngreatly cutting its cost.  For a fraction of SSF's pricetag,\nwe can fix satellites where the satellites are, we can study\nlife's adaptation to a much large & more representative variety \nof space environments, and we can do microgravity and vacuum\nresearch inexpensively and, if needed, in special-purpose\norbits.\n\nN.B., we can apply the constellation strategy to space exploration\nas well, greatly cutting its cost and increasing its functionality.  \nMars Network and Artemis are two good examples of this; more ambitiously \nwe can set up a network of native propellant plants on Mars that can be used\nto fuel planet-wide rover/ballistic hopper prospecting and\nsample return.  The descendants of LabRatSat's technology can\nbe used as a Mars surface LDEF and to test out closed-ecology\ngreenhouses on Mars at low cost.\n\n\n-- \nNick Szabo\t\t\t\t\t szabo@techboook.com\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.503+0000", "event": "documents", "entityId": 10740, "properties": {"category": "rec.sport.baseball", "text": "From: Mamatha Devineni Ratnam <mr47+@andrew.cmu.edu>\nSubject: Zane!!Rescue us from Simmons!!\nOrganization: Post Office, Carnegie Mellon, Pittsburgh, PA\nLines: 77\nNNTP-Posting-Host: andrew.cmu.edu\n\n\nSo far Simmons looks like a total idiot.\n\n\n1) Zane Smith should learn how to \"switchpitch\" and return from the DL. I\nwould rather have Zane Smith pitch right handed than have Moeller pitch at all.\n\n2) I am sure Simmons was ready to say I told you so after Otto had an\nimpressive win last week. NOw Otto's latest debacle has restored Simmon's\nreputation. Now he looks like he is back in his '92 form when he had the\nAL's highest ERA among starters. Four our sake(not Ted's sake), I hope he\npitches with a 3.5 ERA for the rest of the season. Yeah, right.\n\n3) Tomlin and Merced are a bit disappointing. They are still doing decently.\nBUt considering the considerable amount of talent and maturity they have\nshown their first seasons, they seem to have actually gotten a little\nbit worse. Tomlin was almost unhittable his rookie year against lefty batters.\nMerced had a very good OBA his rookie year. He showed a lot of concentration at\nthe plate in his rookie year.\n\n4) Walk: Well, he seems to be on the losing end tonight. BUt I still think that\nWalk desrved his contract.\n\n5) Leyland should accept a part of the blame for the LaValliere situation. I\ncan't understand his and management's fear of losing Tom Prince through\nwaivers. Even if they do, what's the use. He is aright hander like Slaught.\nNot a very smart platoon. Also, I am blaming Leyland in this case, since he is hcurrently    convinced that LaVAlliere is through, while giving him\nway too much time last year in the regular season AND the playoffs(SLaught\nshould have played in all 7 games; he has a good average against right handed\npitching). Didn't Leyland and Simmons forsee this last year, and attempt to\ntrade LaValliere last year itself? Any fool could tell them LaVAlliere\nwasn't very fit last year.\n\n6) Dennis MOeller is SCARY!!!\n7) Candeleria: Well, he is not going to have such a high ERA at the end of the\nseason. Maybe it will be in 3-4 range. BUt $1 million  plus? Come on. Other\nthan the customary home run giving stage Patterson goes through for a few weeks,\nPatterson has served the PIrates very well each year. So far, he seems to have\npitched well for the Rangers. I think the PIrates should have spent the money\non Patterson in stead.\n\n8) The Rookie batters: Well, Young has surprised me a bit with his instant impact. Other than that, their excellent performance hasn't been too much of a surprise. I think we should thank Doughty for that.\n\n9) Rookie Pitchers: Worse than expected, especially Cooke.\n10) Slaught: How come he wasn't given a contract extension last year? NOw his\nvalue has increased immensely.\n\n11) Lonnie Smith!! Well, Eric Davis was signed for a comparable amount.\nLet's see. Eric can hit better. He can run better. He can field better.\nNow why didnt the PIrates go after Eric Davis. An injured Davis is better\nthan a healthy Lonnie Smith. Even if Lonnnie Smith gets some big hits this year,he won't be an asset. He has looked terrible on the bases and in the field.\n\n12) Management: BIG BIG ZERO. Sauer has yet to make a forceful agreement\nin favor of revenue sharing. He seems more concerned about pleasing that\nidiot Danforth by preparing the team for a move to Tampa Bay.\n13) Alex Cole fiasco. The PIrates infield and CF positions look good. The\nRF and LF would have looked good if we could have gotten Cole to replace\ntwo of the four outfielders. Eric Davis, Van Slyke and Cole would have made a\nvery respectable outfield. Even without Eric Davis, thye PIrates would have\na respectable outfield with Cole, SVan Slyke, and Merced(I think he should hit\nleft handed against lefts in stead of switch hitting). Simmons did have options\nfor the outfield. Ironically, the biggest accomplishment of Simmon's tenure was\ngetting Alex Cole really cheap. Too bad.\n\n14) Compensatory draft picks for Bonds: Forget it. The pirates can rant and rave.\nthey will not get those picks. As of now, the issue is still being appealed.\nNow, if this doesnt convince anyone that Simmons and Sauer are idiots,\nnothing else will.\n\nOn a final note. Tim Wakefield won't be as awful as he was in his last 2\nstarts. BUt don't count on him pitching like last year for the rest of\nthe season. Also, if the Pirates are in contention towards rthe end of the\nseason, they will miss Redus's clutch hitting and his speed(he has peaked\nin the second half of the last 2 seasons)>\n\n\n-Pravin Ratnam\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10741, "properties": {"category": "misc.forsale", "text": "From: me9574@albnyvms.bitnet\nSubject: Apology (printing)\nReply-To: me9574@albnyvms.bitnet\nOrganization: University of Albany, SUNY\nLines: 14\n\nDear Fellow Usenet Users:\n\n\tI would like to give a formal apology for posting an advertisement \nabout my printing business.  I did not intend this to be an advertisement, \nbut rather an offer for people on the usenet, many of whom use printing\non a regular basis.  I was not aware that this is not \"legal\" on the usenet.\nI am only trying to put myself through college.  For those of you who\nrequested information, I will write to you privately.  For those of you who \nare having fun flooding my mailbox, I think you can grow up.  To offer advice\nis one thing, but to use profanity toward me is another.\n\nThank you,  \n\nMarc    ME9574@albnyvms.bitnet\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10742, "properties": {"category": "talk.politics.mideast", "text": "From: oyalcin@IASTATE.EDU (Onur Yalcin)\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nReply-To: oyalcin@IASTATE.EDU (Onur Yalcin)\nOrganization: Iowa State University\nLines: 69\n\nIn article <1993Apr19.234534.18368@kpc.com>, henrik@quayle.kpc.com  writes:\n> In article <C5qu5H.1IF@news.iastate.edu>, oyalcin@iastate.edu (Onur Yalcin)\nwrites:\n> |> \n> |> ..[cancellum]... \n> |> \n> |>\n> |>\n>\n> Onur Yalcin] Secondly, the island of which the name is more correctly spelled\n> Onur Yalcin] as Cyprus has never been Greek, but rather, it has been home to \n> Onur Yalcin] a bi-communal society formed of Greeks and Turks. It seems that \n>                ^^^^^^^^^^^\n> Onur Yalcin] you know as little about the history and the demography of the \n> Onur Yalcin] island, as you know about the essence of Turkey's \n> Onur Yalcin] military intervention to it under international agreements.\n> \n> \tbi-communal society ? Then why DID NOT Greece INVADE CYPRUS ? \n\nHenrik (?),\n\nYour ignorance manifests itself in an awkward form of intransigence. I'm not\ngoing to spend time to review with you the recent history of Cyprus. If you are\nreally interested, I can provide you with a number of references on the issue.\nJust send me EMail for that.\n\n> \t\n> Onur Yalcin] Be that as it may, an analogy between an act of occupation in \n> Onur Yalcin] history and what is going on today on Azerbaijani land, can only\n> Onur Yalcin] be drawn with the expansionist policy that Armenia is now       \n> pursuing.\n> \n> \tBuch of CRAP and you know it. Nagarno-Karabagh has ALWAYS been PART \n>         of ARMENIA and it was STALIN who GAVE IT to the AZERIS. Go back and\n>         review the HISTORY.  \n> \n> \tThe Armenians in Nagarno-Karabagh are simply DEFENDING their RIGHTS\n>         to keep their homeland and it is the AZERIS that are INVADING their \n>         teritory.\n> \n> Onur Yalcin] But, I could agree that it is not for us to issue diagnoses to \n> Onur Yalcin] the political conduct of countries, and promulgate them in such \n> Onur Yalcin] terminology as \"itchy-bitchy\"... \n> \n>        I was not the one that STATED IT. \n>\n\nRelax! You're swinging fists into open air... I was *agreeing* with you,\nassuming that would be one of your points that you did not state! You may \nnot be very much used to it, to be agreed with - that is, but take it more\neasily.  !:-)\n  \t\n>        However, I hope that the Armenians WILL force a TURKISH airplane \n>        to LAND for purposes of SEARCHING for ARMS similar to the one\n\nNo, Henrik, believe me: You don't hope that.\n\n>        that happened last SUMMER. Turkey searched an AMERICAN plane\n>        (carrying humanitarian aid) bound to ARMENIA.\n> \n\nWas that after or before one French plane changed its route to avoid\ninspection??? \n\n--\nOnur Yalcin \noyalcin@iastate.edu\n\n\"Un punto in piu`\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10743, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Lexan Polish?\nFrom: jeff@mri.com (Jonathan Jefferies)\nExpires: Sun, 8 Aug 1993 07:00:00 GMT\nOrganization: Microtec Research, Santa Clara, California, USA\nKeywords: Lexan, Plastic\nSummary: Scratches in Plastic\nLines: 27\n\nIn article <C41soE.M62@ns1.nodak.edu> wilken@plains.NoDak.edu (Scott Wilken) writes:\n>A couple of years ago I replaced the stock windscreen on my Interceptor\n>with a higher one from National Cycle.  The thing happens to be made of\n>Lexan.\n>\n>Can anyone recommend a polish to use on it that is safe for lexan?  Its\n>starting to show a few scratches, and id like to polish them out..\n>Go FAST!            |  Internet:  wilken@plains.nodak.edu   |     AMA #587126 \n>Take Chances!       |     UUCP: ..!uunet!plains!wilken      |     DoD #0087 \n>VF700F Interceptor  |        Bitnet:  WILKEN@PLAINS         |   \n\nSuggest McQuires #1 plastic polish.  It will help somewhat but nothing \nwill remove deep scratches without making it worse than it already is.\nMcQuires will do something for fine or light stuff.\n\nAlso suggest calling your local plastic shop.  In Calif. \"TAP PLASTIC\" is\na chain that carries most of what is needed for repair and sometimes\nreplacement of plastic bits.  Telephone in the Bay area is 415-962-8430.\nI'm not sure how amenable they are to shipping.  I have found that they\nhave several excellent products for cleaning, and removing crap from\nwindscreens and face shields.  Also they have one called \"lift-it\" which\nworks real well in removing sticky stuffs such as adhessives from plastic\nwihtout scratching same.\n\nLuck,\n\nJonathan Jefferies, jeff@mri.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10744, "properties": {"category": "misc.forsale", "text": "From: LLARSEN@LMSC5.IS.LMSC.LOCKHEED.COM\nSubject: >>> porsche 928<<\nOrganization: Lockheed Missiles & Space Company, Inc.\nLines: 6\n\nposting for a friend\n1982 porsche 928 new this vehicle was $74,000\ntoday book list this vehicle between 11,500 to 15,000\nperfect in every way with all options including new paint, leather interior,\nsunroof and low miles\ncall (408) 264-4444 ask for frank and lets negotiate trades considered\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10745, "properties": {"category": "sci.space", "text": "From: higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey)\nSubject: Re: Solar Sail Data\nOrganization: Fermi National Accelerator Laboratory\nLines: 56\nNNTP-Posting-Host: fnalf.fnal.gov\n\nIn article <1993Apr15.051746.29848@news.duc.auburn.edu>, snydefj@eng.auburn.edu (Frank J. Snyder) writes:\n> I am looking for any information concerning projects involving Solar\n>  Sails. [...]\n> Are there any groups out there currently involved in such a project ?\n\nSure.  Contact the World Space Foundation.  They're listed in the sci.space\nFrequently Asked Questions file, which I'll excerpt.\n\n    WORLD SPACE FOUNDATION - has been designing and building a solar-sail\n    spacecraft for longer than any similar group; many JPL employees lend\n    their talents to this project. WSF also provides partial funding for the\n    Palomar Sky Survey, an extremely successful search for near-Earth\n    asteroids. Publishes *Foundation News* and *Foundation Astronautics\n    Notebook*, each a quarterly 4-8 page newsletter. Contributing Associate,\n    minimum of $15/year (but more money always welcome to support projects).\n\n\tWorld Space Foundation\n\tPost Office Box Y\n\tSouth Pasadena, California 91301\n\nWSF put together a little paperback anthology of fiction and\nnonfiction about solar sails: *Project Solar Sail*.  I think Robert\nStaehle, David Brin,  or Arthur Clarke may be listed as editor.\n\nAlso there is a nontechnical book on solar sailing by Louis Friedman,\na technical one by a guy whose name escapes me (help me out, Josh),\nand I would expect that Greg Matloff and Eugene Mallove have something\nto say about the subject in *The Starflight Handbook*, as well as\nquite a few references.\n\n\nCheck the following articles in *Journal of the British Interplanetary\nSociety*:\n\nV36 p. 201-209 (1983)\nV36 p. 483-489 (1983)\nV37 p. 135-141 (1984)\nV37 p. 491-494 (1984)\nV38 p. 113-119 (1984)\nV38 p. 133-136 (1984)\n\n(Can you guess that Matloff visited Fermilab and gave me a bunch of\nreprints? I just found the file.)\n\nAnd K. Eric Drexler's paper \"High Performance Solar Sails and Related\nReflecting Devices,\" AIAA paper 79-1418, probably in a book called\n*Space Manufacturing*, maybe the proceedings of the Second (?)\nConference on Space Manufacturing.  The 1979 one, at any rate.\n\nSubmarines, flying boats, robots, talking         Bill Higgins\npictures, radio, television, bouncing radar       Fermilab\nvibrations off the moon, rocket ships, and        HIGGINS@FNAL.BITNET\natom-splitting-- all in our time.  But nobody     HIGGINS@FNAL.FNAL.GOV\nhas yet been able to figure out a music           SPAN:  43011::HIGGINS\nholder for a marching piccolo player. \n                     --Meredith Willson, 1948\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10746, "properties": {"category": "comp.graphics", "text": "From: lineber@lonestar.utsa.edu (Jerry M. Lineberry)\nSubject: Pov-ray problem / Please Help...\nNntp-Posting-Host: lonestar.utsa.edu\nOrganization: University of Texas at San Antonio\nLines: 12\n\nHello,\n    I've recently had Povray draw about 10 sample files. The problem is that\nI accidently erased the command in my povray.def that made the image a targas\nfile. So now the files are the dump format. How do I fix these files with out\nhaving to re-trace them? By fix I mean, turn them into targas. Thanks in\nadvance.\n                                                -Jerry\n-- \n#################################################################\nJerry M. Lineberry\nInterNet : lineber@lonestar.utsa.edu  or  CompuServe : 71221,3015\n#################################################################\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10747, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: mrj@cs.su.oz.au (Mark James)\nSubject: Re: IDE vs SCSI (Why VLB busmastering slows your system)\nOrganization: Basser Dept of Computer Science, University of Sydney, Australia\nLines: 12\n\nIn article <1993Apr16.205724.26258@mnemosyne.cs.du.edu> smace@nyx.cs.du.edu (Scott Mace) writes:\n>\n>Have you ever seen what happens when you hook a busmaster controller to\n>a vesa local bus.  It actually  slows down your system.....\n>\n>If you don't belive what I said about busmastering and vlbus then pick\n>up a back issue of PC-week in whihc they tested vlbus, eisa and isa\n>busmastering cards.\n\nIs VLB busmastering bad because it stops the processor fetching from\nexternal cache as well as main memory while the VLB card has the bus?\nHow significant is the slowing effect?\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10748, "properties": {"category": "talk.religion.misc", "text": "From: deane@binah.cc.brandeis.edu (David Matthew Deane)\nSubject: Re: Flaming Nazis\nReply-To: deane@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 106\n\nOkay, I'll bite. I should probably leave this alone, but what the heck...\n\nIn article <1993Apr14.124301.422@sun0.urz.uni-heidelberg.de>, \ngsmith@lauren.iwr.uni-heidelberg.de (Gene W. Smith) writes:\n>In article <TT3R2B5w165w@brewich.hou.tx.us> popec@brewich.hou.tx.us\n>(Pope Charles) writes:\n>\n>>Rhoemer was the name of the guy responsible for much of the uniforms, \n>>and props used by the early Nazis in their rallies and such.\n>\n>The name is Roehm, not Rhoemer.  And Hitler does claim that he came up\n>with the Swastika business.\n\nBut didn't he credit the actual flag design to a party member - some dentist or\nother? I believe he gives such credit in Mein Kampf.\n\n>>He was killed in an early Nazi purge. He and many of his associates\n>>were flaming homosexuals well know also for their flamboyant orgies.\n>\n>I have been trying to find if there is any actual evidence for this\n>common assertion recently.  Postings to such groups as soc.history and\n>soc.culture.german has not uncovered any net.experts who could provide\n>any. \n\nWell, I'm no expert, but all of the histories of Nazi Germany assert this. They\nmake reference to several scandals that occurred long before \"the night of the\nlong knives\". The impression that I got was that homosexuality in portions of\nthe SA was common knowledge. Also, a book (by a homosexual author whose name\nescapes me at the moment) called \"Homosexuals in History\" asserts that Roehm\nand Heines were homosexuals, as well as others in Roehm's SA circle.\n\n>All the books say that Roehm and his associate, Edmund Heines,\n>were homosexual.  I have been able to find nothing beyond that, and\n>suspect this to be a sort of historical urban legend. \n\nWell, you're the one who is in Germany. If you don't believe the history books,\nlook up the primary sources yourself. Those of us outside of Germany do not\nhave access to these. You do. It seems to me that there were plenty of\ndocumented instances - several scandals, the fact that on the \"knight of the\nlong knives\" several SA members (including Heines) were found sleeping\ntogether, etc. Also I believe some people were complaining about the SA's\nhomosexual activities (seducing young boys, etc). The histories that I've \nread make a very convincing case. None of this sounds like urban legend to me. \n\n>(Irving, a\n>notoriously unreliable historian, says that Funk, the Nazi finance\n>minister, was homosexual.  He gives no sources.)\n\nI know next to nothing about Irving and nothing about Funk. What precisely do\nyou know, that would contradict all of the other history books that I have\nread concerning the existence of homosexual Nazis? Are you trying to say that \nall historians are taking part in an anti-homosexual smear? What about \nhomosexual writers who agree with the official history? Don't you think they \nwould have found out the truth by now if Roehm and Heines were not homosexuals?\nI would think they would want to disassociate homosexuality from Nazism. No one \nshould use any connection between the two to bash homosexuals in any case. \n\n>I challenge anyone to document this claim.\n\nIf you are going to challenge *all* historians on this point (not just Irving),\nthen the burden of proof is on you. Track down the references. Find out where\nthe stories originate from. Again, you are the one in Germany, close to\narchival material - most people on the net are not.\n\n>I *have* found a great\n>deal of evidence that there were many flaming heterosexuals among the\n>Nazis.  This seems to include all of the worst ones--Hitler, Himmler,\n>Goebbels, Goering, Heydrich, Eichmann, and many more.\n\nEh? What is your agenda here? To prove that the Nazis were heterosexuals, so\nthat you can bash heterosexuals? Does it bother you that some of the Nazis\nmight have been homosexuals? Does this make all homosexuals bad if this is\ntrue? Of course not. And what about bisexuals? Are they half-Nazis?\n\nI don't know why it would be so difficult to believe that some Nazis were\nhomosexuals. The German officer corps before WW1, for instance, was notorious\nfor its homosexuality. There were numerous scandals which rocked the German\ngovt. during the late 19th and early 20th century. Many of the Kaiser's friends\nwere prosecuted - the Kaiser was no homosexual, but the Germany army had a long\ntradition of tolerating homosexuality, going far back into Prussian history -\nback to Frederick the Great at least, who was himself a homosexual. Roehm was a \nproduct of this Prussian officer tradition, and the old German army (like the\nEnglish public school system), being a well known center of homosexuality,\nwould have been quite willing to overlook Roehm's homosexuality.\n\nIn addition, some Nazis complained of homosexuality in the Hitler Youth. The\nHitler Youth swallowed up all pre-Nazi youth groups, and some of the various \npre-war Vandervogel, Bund, and Volkish youth groups were known to promote \nhomoerotic ideals and friendship, and in many cases, homosexuality itself. So \nit seems to me not unlikely that there were plenty of homosexual Nazis, \nregardless of the official Nazi dogmas concerning the \"evils\" of homosexuality.\nWhy should this suprise anyone? Homosexuality has always existed, in all \nsocieties - it would be most unusual if the Nazis were an exception.\n\nNo, I don't have any sources for you, as I think the only kind of proof you\nwill accept would be citations from archival material, and I do not have access \nto these. Nor do I intend to reread every book on the Nazis and on modern\nhomosexuality that I have ever read - I don't have the time. Nothing is\nstopping you, however, from chasing down those sources. Until you prove\notherwise, though, I will stick with the established histories.\n                                                                           \n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\nDavid Matthew Deane (deane@binah.cc.brandeis.edu)\n\"...Be in me as the eternal moods of the bleak wind...Let the Gods speak softly\nof us in days hereafter...\" (Ezra Pound)\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10749, "properties": {"category": "talk.politics.guns", "text": "From: cmort@NCoast.ORG (Christopher Morton)\nSubject: Re: Ban All Firearms !\nReply-To: cmort@ncoast.org (Christopher Morton)\nOrganization: North Coast Public Access *NIX, Cleveland, OH\nDistribution: usa\nLines: 24\n\nAs quoted from <1993Apr17.025258.7013@microsoft.com> by anthonyf@microsoft.com (Anthony Francisco):\n\n> cmort:\n> | If anybody wanted proof of the nonsense of the \"you can't build guns\" claim,\n> | they need look no farther than the Philippines.  Amateur gunsmiths there\n> | regularly produce everything from .45 automatics to full auto shotguns.  Now\n> | if this guy wants to claim that the Philippines is either technologically\n> | superior to the US or that their transportation is better than ours, all I\n> | can say is that he's living in a fantasy world.\n> \n> Unfortunately a few of those .45s blow up in your hands.\n\nThat's life.  First you marry Imelda Marcos, then you die! :)\n\n> On the other hand, my compatriots built an excellent copy of a Beretta that\n> I enjoyed using when I lived in the Philippines. Hmmmm.\n\nAnd that's the HARD stuff to copy!\n\n-- \n===================================================================\n\"You're like a bunch of over-educated, New York jewish ACLU lawyers\nfighting to eliminate school prayer from the public schools in\nArkansas\" - Holly Silva\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10750, "properties": {"category": "rec.motorcycles", "text": "From: asalerno@cbnewsm.cb.att.com (antonio.j.salerno..jr)\nSubject: DoD Books\nOrganization: AT&T\nDistribution: na\nLines: 18\n\nAnyone around here read this yet?\nDoes Anita have a number?\n\n>>   Title: Software measurement for DoD systems : recommendations for initial \n>>          core measures / Anita D. Carleton, ... [et al.].\n>> Subject: Software engineering.; Computer programming management.\n>>  Author: Carleton, Anita D.\n>>  Author: Carnegie-Mellon University. Software Engineering Institute.\n>>    Publ: Pittsburgh, Pa. : Carnegie Mellon University, Software Engineering \n>>          Institute, 1992. 53 p.\n\n\nTony\n-- \n=-=-= These opinions are nothing but my own, and I may not even want them =-=-=\nAntonio Salerno            \"The heart, the liver, the spleen, the pancreas. All\nantonio.j.salerno@att.com   these miraculous organs work in _total_darkness_!\"\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - David Letterman -=-=-=-=-=\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10751, "properties": {"category": "sci.crypt", "text": "From: habs@panix.com (Harry Shapiro)\nSubject: Re: The source of that announcement\nOrganization: PANIX Public Access Unix, NYC\nLines: 27\n\nIn <MARC.93Apr18174241@oliver.mit.edu> marc@mit.edu (Marc Horowitz\nN1NZU) writes:\n\n>I received mail from Mitch Kapor saying that he did not ask to be on\n>the list, and does not know why he was added.  I'm sure the same\n>applies to others on the list.  So, I guess my initial theory was\n>right, that the clipper list was just someone's idea of a bad joke.  I\n>guess I should be happy it wasn't a conspiracy.\n\nI have also been in contact with Mitch about this. I believe\nhim when he says he didn't ask to be on the \"clipper\" list.\n\nHe also forwarded the traffic he had recieved through that list to\nme which will be placed at some ftp site.\n\nHowever, the first alias on the \"clipper list\" was csspab which was\nanother mailing list. It basically contained the addresses for\nstaffers and board members of the NIST security board. Several of\nthese people had their accounts within the dockmaster domain.\n\nThese are the people we might wish to FOIA...\n\n/harry\n-- \nHarry Shapiro  \t\t\t\t      habs@panix.com\nList Administrator of the Extropy Institute Mailing List\nPrivate Communication for the Extropian Community since 1991\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10752, "properties": {"category": "rec.sport.baseball", "text": "From: luriem@alleg.edu The Liberalizer (Michael Lurie)\nSubject: Re: Joe Robbie Stadium \"NOT FOR BASEBALL\"\nArticle-I.D.: alleg.1993Apr6.210510.2943\nOrganization: Allegheny College\nLines: 10\n\nIn article <1993Apr6.025027.4846@oswego.Oswego.EDU> iacs3650@Oswego.EDU  \n(Kevin Mundstock) writes:\n> Did anyone notice the words \"NOT FOR BASEBALL\" printed on the picture\n> of Joe Robbie Stadium in the Opening Day season preview section in USA\n> Today? Any reason given for this?\n\n\n\nYes, and the answer is simple. To create a better feeling in the park, the   \nseats will be folded back for baseball games where you saw those words.\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10753, "properties": {"category": "sci.med", "text": "From: Donald Mackie <Donald_Mackie@med.umich.edu>\nSubject: Re: Seeking advice/experience with back problem\nOrganization: UM Anesthesiology\nLines: 20\nDistribution: world\nNNTP-Posting-Host: 141.214.86.38\nX-UserAgent: Nuntius v1.1.1d9\nX-XXDate: Fri, 16 Apr 93 15:41:32 GMT\n\nIn article <C5FI9r.7yz@cbnewsk.cb.att.com> janet.m.cooper,\njmcooper@cbnewsk.cb.att.com writes:\n>The mother of a friend of mine is experiencing a disabling back\n>pain.  After MRIs, CT scans, and doctors visits she has been\npresented\n>with 2 alternatives: \n>(1) live with the pain\n>or (2) undergo a somewhat\n>risky operation which may leave her paralyzed.  She also has a \n\nSince her symptoms are only pain she would do weel to seek the\nadvice of a good, multi-disciplinary pain clinic. It is distressing\nto think that people are stll being told they have to \"live with the\npain\" when many options for pain management (rather than treating\nMRI findings) are available. A good pain clinic will accept that\nthis lady's problem is her pain and set about finding ways of\nrelieveing that.\n\nDon Mackie - his opinions\nUM Anesthesiology will disavow...\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.504+0000", "event": "documents", "entityId": 10754, "properties": {"category": "talk.politics.mideast", "text": "From: hasan@McRCIM.McGill.EDU \nSubject: Re: No land for peace - No negotiatians\nOriginator: hasan@haley.mcrcim.mcgill.edu\nNntp-Posting-Host: haley.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for  Intelligent Machines\nLines: 45\n\n\nIn article <1993Apr5.175047.17368@unocal.com>, stssdxb@st.unocal.com (Dorin Baru) writes:\n\n|> Alan Stein writes:\n|> \n|> >What are you talking about?  The Rabin government has clearly\n|> >indicated its interest in a territorial compromise that would leave\n|> >the vast majority of the Arabs in Judea, Samaria and Gaza outside\n|> >Israeli control.\n\n(just an interrupting comment here) Since EARLY 1980's , israelis said they are \nwilling to give up the Adminstration rule of the occupied terretories to\nPalestineans. Palestineans refused and will refuse such settlement that denies\nthem their right of SELF-DETERMINATION. period.\n\n|> I know. I was just pointing out that not compromising may be a bad idea. And\n|> there are, in Israel, voices against negotiations. And I think there are many\n|> among palestineans also against any negociations. \n|> \n|> Just an opinion\n|>\n|> Dorin\n\nOk. I donot know why there are israeli voices against negotiations. However,\ni would guess that is because they refuse giving back a land for those who\nhave the right for it.\n\nAs for the Arabian and Palestinean voices that are against the\ncurrent negotiations and the so-called peace process, they\nare not against peace per se, but rather for their well-founded predictions\nthat Israel would NOT give an inch of the West bank (and most probably the same\nfor Golan Heights) back to the Arabs. An 18 months of \"negotiations\" in Madrid,\nand Washington proved these predictions. Now many will jump on me saying why\nare you blaming israelis for no-result negotiations.\nI would say why would the Arabs stall the negotiations, what do they have to\nloose ?\n\nArabs feel that the current \"negotiations\" is ONLY for legitimizing the current\nstatus-quo and for opening the doors of the Arab markets for israeli trade and\n\"oranges\". That is simply unacceptable and would be revoked. \n\nJust an opinion.\n\nHasan\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10755, "properties": {"category": "rec.autos", "text": "From: andrew@frip.WV.TEK.COM (Andrew Klossner)\nSubject: Re: LH car order delay\nArticle-I.D.: shaman.3038\nReply-To: andrew@frip.wv.tek.com\nOrganization: Tektronix Color Printers, Wilsonville, Oregon\nLines: 13\n\n[]\n\n\t\"I read an article in the 3/25 Chicago Tribune stating that\n\tChrysler is having problems addressing the demand for the 3.5L\n\tengine for it's LH cars.  Can anyone post how long they are\n\twaiting for an ordered car or how long they have been told\n\tthey'll have to wait??\"\n\nOrdered mine December 30, got it nine weeks later.  But the dealer said\nthat *new* orders were being held up -- he didn't expect to see any\nmore 3.5L-engine LHs for awhile.\n\n  -=- Andrew Klossner  (andrew@frip.wv.tek.com)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10756, "properties": {"category": "comp.graphics", "text": "From: ferdinan@oeinck.waterland.wlink.nl (Ferdinand Oeinck)\nSubject: Re: Distance between two Bezier curves\nOrganization: My own node in Groningen, NL.\nLines: 14\n\npes@hutcs.cs.hut.fi (Pekka Siltanen) writes:\n\n> Suppose two cubic Bezier curves (control points V1,..,V4 and W1,..,W4)\n> which have equal first and last control points (V1 = W1, V4 = W4). How do I \n> get upper bound for distance between these curves. \n\nWhich distance? The distance between one point (t = ti) on the first curve\nand a point on the other curve with same parameter (u = ti)?\n\n> \n> Any references appreciated. Thanks in anvance.\n> \n> Pekka Siltanen\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10757, "properties": {"category": "talk.politics.guns", "text": "From: mjp@austin.ibm.com  (Michael Phelps)\nSubject: Re: Non-lethal alternatives to handguns?\nOriginator: mjp@bwa.kgn.ibm.com\nReply-To: mjp@vnet.ibm.com (Michael J. Phelps)\nOrganization: IBM Kingston NY\nKeywords: handgun mace pepper-spray taser tasp phaser\nLines: 27\n\n\nholland@CS.ColoState.EDU (douglas craig holland) writes:\n|> What about guns with non-lethal bullets, like rubber or plastic bullets.\n|> Would those work very well in stopping an attack?\n|> \n|> \t\t\t\t\t\tDoug Holland\n\n Any projectile traveling at or near typical bullet speeds is potentially\nlethal.  Even blanks [which have no projectile] can cause death if the\nmuzzle is in close proximity to the victim.  I have heard of rubber or\nplastic bullets being used effectively during riot situations [where the\nintent is crowd control, rather than close range self defense]; i've also\nseen reports of deaths caused by them [the British in Northern Ireland].\n Use of a firearm for self defense is appropriate and lawful only in the\ngravest of situations; at that point, i consider deadly [lethal] force to \nbe a proper reaction [and so does the law].  \n Furthermore, use of less effective [but still potentially lethal] force\nhas its own set of problems.  It may well take more applications of the\nless effective force to stop the incident; this places all parties at some\nrisk; the victim because the attack has not stopped, and the assailent \nsince the aggregate damage done by the multiple applications may well be\nmore deadly.\n\n-- \nMichael Phelps, (external) mjp@vnet.ibm.com ..\n                (internal) mjp@bwa.kgn.ibm.com .. mjp at kgnvmy         \n (and last but not least a disclaimer)  These opinions are mine..       \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10758, "properties": {"category": "comp.windows.x", "text": "From: yang@cs.umass.edu (Hong Yang)\nSubject: colormap question\nOrganization: University of Massachusetts/Amherst\nLines: 139\nNNTP-Posting-Host: freya.cs.umass.edu\n\nHi, Experts, \n\nI'm kind of new to X. The following question is strange to me. I am\ntrying to modify the contents of the colormap but failed without\nreason (to me). I am using the following piece of code:\n\n\n  toplevel = XtInitialize(argv[0], \"Testcolor\", NULL, 0,\n\t\t\t  &argc, argv);\n  dpy = XtDisplay(toplevel);\n  scr = DefaultScreen(dpy);\n  def_colormap = DefaultColormap(dpy,scr);\n\n  if(XAllocColorCells(dpy, def_colormap, True, NULL, 0, cells, 5)) {\n    color.pixel = cells[0];\n    color.red = 250;\n    color.green = 125;\n    color.blue = 0;\n    color.flags = DoRed | DoGreen | DoBlue;\n    XStoreColor(dpy, def_colormap, &color);\n    printf(\"\\n Try to allocate, the color %d as (%d,%d,%d)\",\n\t   color.pixel, color.red, color.green, color.blue); \n\n    XQueryColor(dpy, def_colormap, &color);\n    printf(\"\\n After  allocate, the color %d is (%d,%d,%d)\",\n\t   color.pixel, color.red, color.green, color.blue); \n  }\n  else\n    printf(\"\\n Error: couldn't allocate color cells\");\n\n\nRunning output:\n\n     Try to allocate, the color 7 as (250,125,0)\n     After  allocate, the color 7 is (0,0,0)\n\nAfter XStoreColor(), XQueryColor() just returned the original value. \nNo failure/error displayed but the contents of colormap are obvious\nunchanged. (I also tried to draw a line using the colors but it \nturned out to be the unmodified colors.)\n\nSo what is my problem? How to modify the contents of the colormap?\n\nAny help/information will be appreciated. Please send mail to\n\"yang@cs.umass.edu\".\n\n--------------------------\nWilliam \nemail: \"yang@cs.umass.edu\"\n--------------------------\n\n\nBy the way, the following is the environment I am using (output of\n\"xdpyinfo\"). It shows the default visual is PseudoColor.\n\nversion number:    11.0\nvendor string:    DECWINDOWS DigitalEquipmentCorporation UWS4.2\nvendor release number:    1\nmaximum request size:  16384 longwords (65536 bytes)\nmotion buffer size:  100\nbitmap unit, bit order, padding:    32, LSBFirst, 32\nimage byte order:    LSBFirst\nnumber of supported pixmap formats:    2\nsupported pixmap formats:\n    depth 1, bits_per_pixel 1, scanline_pad 32\n    depth 8, bits_per_pixel 8, scanline_pad 32\nkeycode range:    minimum 86, maximum 251\nnumber of extensions:    8\n    Adobe-DPS-Extension\n    DPSExtension\n    SHAPE\n    MIT-SHM\n    Multi-Buffering\n    XInputExtension\n    MIT-SUNDRY-NONSTANDARD\n    DEC-XTRAP\ndefault screen number:    0\nnumber of screens:    1\n\nscreen #0:\n  dimensions:    1024x864 pixels (333x281 millimeters)\n  resolution:    78x78 dots per inch\n  depths (2):    1, 8\n  root window id:    0x29\n  depth of root window:    8 planes\n  number of colormaps:    minimum 1, maximum 1\n  default colormap:    0x27\n  default number of colormap cells:    256\n  preallocated pixels:    black 1, white 0\n  options:    backing-store YES, save-unders YES\n  current input event mask:    0xd0001d\n    KeyPressMask             ButtonPressMask          ButtonReleaseMask        \n    EnterWindowMask          SubstructureRedirectMask PropertyChangeMask       \n    ColormapChangeMask       \n  number of visuals:    5\n  default visual id:  0x21\n  visual:\n    visual id:    0x21\n    class:    PseudoColor\n    depth:    8 planes\n    size of colormap:    256 entries\n    red, green, blue masks:    0x0, 0x0, 0x0\n    significant bits in color specification:    8 bits\n  visual:\n    visual id:    0x22\n    class:    GrayScale\n    depth:    8 planes\n    size of colormap:    256 entries\n    red, green, blue masks:    0x0, 0x0, 0x0\n    significant bits in color specification:    8 bits\n  visual:\n    visual id:    0x23\n    class:    StaticGray\n    depth:    8 planes\n    size of colormap:    256 entries\n    red, green, blue masks:    0x0, 0x0, 0x0\n    significant bits in color specification:    8 bits\n  visual:\n    visual id:    0x24\n    class:    StaticColor\n    depth:    8 planes\n    size of colormap:    256 entries\n    red, green, blue masks:    0x7, 0x38, 0xc0\n    significant bits in color specification:    8 bits\n  visual:\n    visual id:    0x25\n    class:    TrueColor\n    depth:    8 planes\n    size of colormap:    8 entries\n    red, green, blue masks:    0x7, 0x38, 0xc0\n    significant bits in color specification:    8 bits\n  number of mono multibuffer types:    5\n    visual id, max buffers, depth:    0x21, 0, 8\n    visual id, max buffers, depth:    0x22, 0, 8\n    visual id, max buffers, depth:    0x23, 0, 8\n    visual id, max buffers, depth:    0x24, 0, 8\n    visual id, max buffers, depth:    0x25, 0, 8\n  number of stereo multibuffer types:    0\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10759, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: \"Conventional Proposales\": Israel & Palestinians\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 37\n\nIn article <2BCE6222.24844@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n>In article <2BCA3DC0.13224@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n>>\n>>The latest Israeli \"proposal\", first proposed in February of 1992, contains \n>>the following assumptions concerning the nature of any \"interim status\" refering to the WB and Gaza, the Palestinians, implemented by negotiations. It\n>>states that:    \n>>   >Israel will remain the existing source of authority until \"final status\"\n>>    is agreed upon;\n>>   >The exercise of powers under the ISGA will be subject to cooperation and \n>>    coordination with Israel. \n>>   >Israel will negotiate delegation of powers and responsibilities in the \n>>    areas of administration, justice, personnel, agriculture, education,\n>>    business, tourism, labor and social welfare, local police,\n>>    local transportation and communications, municipal affairs and religious\n>>    affairs.\n>>\n>>The Palestinian counterproposal of March 1992:\n>>   >There will be no limitations on its (PISGA) powers and responsibilities \n>>    \"except those which derive from its character as an interim arrangement\";\n>>   >It will have a strong police force responsible for security and public\n>>    order in the OPT;\n>>   >It can request the assistance of a UN peacekeeping force;\n>>   >Disputes with Israel over self-governing arrangements will be settled by \n>>    a committee composed of representatives of the five permanent members of\n>>    the UN Security Council, the Secretary General (of the UN), the PISGA, \n>>    Jordan, Egypt, Syria and Israel.\n>>\nI have read that there will be some concrete proposals concerning creation\nof a \"palestinian police force\" during the talk's next stage.  Does anyone\nknows of the details of this idea? How does it \"fit\" with the differing\nconceptions listed above?\n\n--\nTim Clock                                   Ph.D./Graduate student\nUCI  tel#: 714,8565361                      Department of Politics and Society\n     fax#: 714,8568441                      University of California - Irvine\nHome tel#: 714,8563446                      Irvine, CA 92717\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10760, "properties": {"category": "sci.crypt", "text": "From: sean@sdg.dra.com\nSubject: Re: Fighting the Clipper Initiative\nOrganization: Data Research Associates, St. Louis MO\nLines: 22\n\nIn article <he1pb02@rhyolite.wpd.sgi.com>, vjs@rhyolite.wpd.sgi.com (Vernon Schryver) writes:\n> In article <strnlghtC5toC6.KIu@netcom.com>, strnlght@netcom.com (David Sternlight) writes:\n>>              Even the Department of Agriculture has successfully kept crop\n>> forecasts from leaking prematurely.\n> \n> Sheesh!  Remember the big scandal a year or two (or 3?) ago about\n> exactly such leaks?\n\nMy choice for the escow house would be the Smithsonian, and someplace on\nthe west coast.  My biggest concern isn't that the escrow house could\nbe compromised (it will be), but the fact it has been compromised will\nbe kept secret.  \n\nThe keys could be kept under glass, with 24-hour C-SPAN coverage.  If you\nthought your key had been stolen just turn on the cable, and wait until\nthe roving camera reachs the musuem case with your key.  Or if you think the\nC-SPAN satellite has been compromised, take a tour of the Smithsonian\nyourself, and view the seal on your key.\n\n-- \nSean Donelan, Data Research Associates, Inc, St. Louis, MO\nDomain: sean@sdg.dra.com, Voice: (Work) +1 314-432-1100\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10761, "properties": {"category": "talk.politics.mideast", "text": "From: hasan@McRCIM.McGill.EDU \nSubject: Re: 18 Israelis murdered in March\nOriginator: hasan@fangorn.mcrcim.mcgill.edu\nNntp-Posting-Host: fangorn.mcrcim.mcgill.edu\nOrganization: McGill Research Centre for  Intelligent Machines\nLines: 206\n\n\nSorry guys for this long article, but in fact it is mostly quotings..\n\nIn article <FLAX.93Apr6125933@frej.teknikum.uu.se>, flax@frej.teknikum.uu.se (Jonas Flygare) writes:\n \n|>    |>when you are intentionally neglecting the MOST important fact that \n|>    |>the whole israeli presence in the occupied territories is ILLEGITIMATE, \n|>    |>and hence ALL their actions, their courts, their laws are illegitimate on \n|>    |>the ground of occupied territories.\n|>    |> \n|>    >No, I am _not_ neglecting that, I'm merely asking you whether the existance\n|>    >of Israeli citicens in the WB or in Gaza invalidates those individuals \n|>    >right\n|>    |> to live, a (as you so eloquently put it) human right. We can get back to the \n|>    |> question of which law should be used in the territories later. Also, you have \n|>    |> not adressed my question if the israelis also have human rights.\n|> \n|> \n|>    First, my above statement doesnot say that \"the existence of israeli citizens\n|>    in the WB revoke their right of life\" but it says \"the israeli occupation\n|>    of the WB revoke the right of life for some/most its citizens - basically\n|>    revokes the right of for its military men\". Clearly, occupation is an\n|>    undeclared war; during war, attacks against military targets are fully legitimate. \n|> \n|> Ok, let me re-phrase the question. I have repeatedly asked you if the \n|> Israelis have less human rights than the palestinians, \n\nwell, if you just waited for 5 more lines you would have read my statement\n\"Secondly, surely israeli have human rights, but ...\"\n\n|> and if so, why.\n\nbecause they belong to the human race, or do you disagree on that too ?\n\n|> From your posting (where you did not directly adress my question) I inferred\n|> that you thought so. Together with the above statement I then assumed that the\n|> reason was the actions of the state of Israel. Re: your statement of \n|> occupation: I'd like you to define the term, so I don't have to repeat this\n|> 'drag the answer out of hasan' procedure more than neccesary.\n|> \n|>    Secondly, surely israeli have human rights, but they ask their goverment to\n|>    protect it by withdrawing from the occupied terretories, not by further oppressing\n|>    Palestinean human rights.\n|> \n|> I'm sorry, but the above sentence does not make sense. Please rephrase it.\n\nI donot know about you, but it makes full sense to me.\nIsraelis are being killed because Israel is occupying , Let israel withdraw\nand israeli blood will be saved. It isNOT the palestineans who undermined\nthe right of life of israelis, but it is israel which occupied and exposed \nthe life of its citizens to the the unconcluded war of 1967 !\n\nMore generally, the violence in the occupied terretories is part of the intifada,\nand i had previously posted a \"long\" article about this issue, whom i finished\nby an open question:\nSuppose the Intifada stops, What is the motive for Israel to withdraw ?\ndonot tell hope for peace and this bullshit. Everybody in the world looks\nand hopes for peace, so why isnot there any. hope of peace is necessary\nbut not sufficient motive.\n\n\n|>    |> If a state can deprive all it's citizens of human rights by its actions, then \n|>    |> tell me why _any_ human living today should have any rights at all?\n|> \n|> \n|>    Because not all states are like Israel,as oppressive,as ignorant,or as tyrant.\n|> \n|> Oh, ok. So how about the human rights of the Syrians, Iraqis and others?\n|> Does the name of Hama sound familiar? Or how about the kurds in Iraq and\n|> Turkey? \n|> How about the Same in Sweden (Ok, maybe a bit farfetched..) the Russians in\n|> the Baltic states or the Moslem in the old USSR and Yugoslavia?\n|> Do the serbs have any human rights remainaing, according to you?\n\nAs for the Arabian countries, their problems are an Arabian concern. \nthe Arabian people can deal with it themselves, if the west doesnot intervene.\nAs for Serbs, I donot think that those FUCKED UP RAPISTS (excuse my language\nbut it really hurts as much if I was in Bosnia itself) areNOT humans. Those\nsurely came from outer space or something. No human can allow himself\nto see such attrocities than to participate in.\n \n|>    |>    |> And which system do you propose we use to solve the ME problem?\n|>    |> \n|>    |>    The question is NOT which system would solve the ME problem. Why ? because\n|>    |>    any system can solve it. \n|>    |>    The laws of minister Sharon says kick Palestineans out of here (all palestine). \n|>    |> \n|>    |> I asked for which system should be used, that will preserve human rights for \n|>       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n|>    |> all people involved. I assumed that was obvious, but I won't repeat that \n|>    |> mistake. Now that I have straightened that out, I'm eagerly awaiting your \n|>    |> reply.\n|> \n|>    So you agree that that an israeli solution wouldnot preserve human rights.\n|>    (i am understanding this from your first statement in this paragraph).\n|> \n|> No, I'm agreeing that to just kick all the Palestinians out of Israel proper \n|> would probably lead to disaster for both parties. If that's what you refer \n|> to as the 'Israeli solution' then so be it.\n\nOk.\n\n|>    |>    Joseph Weitz (administrator responsible for Jewish colonization) \n|>    |>    said it best when writing in his diary in 1940:\n|>    |> \t   \"Between ourselves it must be clear that there is no room for both\n|>    |> \t   peoples together in this country.... We shall not achieve our goal\n|>    |> \t\t\t\t\t\t^^^                  ^^^\n|>    |> \t   of being an independent people with the Arabs in this small country.\n|>    |> \t   The only solution is a Palestine, at least Western Palestine (west of\n|>    |> \t   the Jordan river) without Arabs.... And there is no other way than\n|>    |> \t   to transfer the Arabs from here to the neighbouring countries, to\n|>    |> \t   transfer all of them; not one village, not one tribe, should be \n|>    |> \t   left.... Only after this transfer will the country be able to\n|>    |> \t   absorb the millions of our own brethren. There is no other way out.\"\n|>    |> \t\t\t\t   DAVAR, 29 September, 1967\n|>    |> \t\t\t\t   (\"Courtesy\" of Marc Afifi)\n|>    |> \n|> |> Just a question: If we are to disregard the rather obvious references to \n|> |> getting Israel out of ME one way or the other in both PLO covenant and HAMAS\n|> |> charter (that's the english translations, if you have other information I'd\n|> |> be interested to have you translate it) why should we give any credence to \n|> |> a _private_ paper even older? I'm not going to get into the question if he\n|> |> wrote the above, but it's fairly obvious all parties in the conflict have\n|> |> their share of fanatics. Guess what..? Those are not the people that will\n|> |> make any lasting peace in the region. [more deleted stuff]\n|> \n|> >Exactly, you are right. I guess that the problem is that the israeli goverment\n|> >is full with  men like Joseph Weitz. \n|> \n|> Oh? Have you met with them personally, to read their diaries? Fascinating.\n|> What do you _do_ for a living?\n|> \n|> |>    \"We\" and \"our\" either refers to Zionists or Jews (i donot know which). \n|> |> \n|> |>    Well, i can give you an answer, you Master of Wisdom, I will NOT suggest the \n|> |>    imperialist israeli system for solving the ME problem !\n|> |> \n|> |>    I think that is fair enough .\n|> |> \n|> |> No, that is _not_ an answer, since I asked for a system that could solve \n|> |> the problem. You said any could be used, then you provided a contradiction.\n|> \n|>    Above you wrote that you understood what i meant (underlined by ^ ): \n|>    any system can be used to solve the conflict , but not any system would \n|>    resolve it JUSTLY.\n|> \n|> An unjust solution would be a non-solution, per definition, no?\n\nMy definition is the same as yours, but one has to look into the world politics.\nIn politics, a \"solution\" doesNOT imply \"JUST solution\".\n\n|> You said the following:\n|> \n|> For all A it holds that A have property B.\n|> There exists an A such that property B does not hold.\n|> \n|> Thus, either or both statements must be false.\n|> \n|>    |> Guess where that takes your logic? To never-never land. \n|> \n|> >You are proving yourself as a \" \". First you understood what i meant, but then\n|> >you claim you didnot so to claim a contradiction in my logic. \n|> >Too bad for you, the Master of Wisdom.\n|> \n|> I was merely pointing out a not so small flaw in your reasoning.\n|> Since you claim to be logical I felt it best to point this out\n|> before you started using your statements to prove a point or so.\n|> Am I then to assume you are  not logical?\n\nIt seems that it was problem in the definition of \"solution\".\nI think a solution must be just, because otherwise it would never be lasting.\nHowever, when politicians say a solution, they donot mean a just solution but \njust a solution.\n\n|> |>    \"The greatest problem of Zionism is Arab children\".\n|> |> \t\t\t   -Rabbi Shoham.\n|> |> \n|> |> Oh, and by the way, let me add that these cute quotes you put at the end are\n|> |> a real bummer, when I try giving your posts any credit.\n|> \n|> >Why do you feel ashamed by things and facts that you believe in , \n|> >if you were a Zionists. If you believe in Zionist codes and acts, \n|> >well i feel sorry for you, because the same Rabbi Shoham had said \n|> >\"Yes, Zionism is racism\".\n|> >If you feel ashamed and bothered by the Zionist codes, then drop Zionism.\n|> >If you are not Zionist, why are you bothered then. You should join me in\n|> >condemning these racist Zionist codes and acts.\n|> \n|> Any quote can be misused, especially when used to stereotype all \n|> individuals by a statement of an individual. If you use the same\n|> methods that you credit 'Zionists' with, then where does that place you?\n|> \n|> Oh, by the way, I'd advice you not to assume anything about my 'loyalties'.\n|> I will and am condemning acts I find vile and inhuman, but I'll try as \n|> long as I can not to assume those acts are by a whole people.\n|> By zionist above do you mean the state of Israel, the government of Israel, \n|> the leaders of Israel (political and/or religious) or the jews in\n|> general? If you feel the need to condemn, condemn those responsible\n|> instead. How would you feel if we started condemning you personally\n|> based on the bombings in Egypt? \n|>\n|> Jonas Flygare, \n\n\nHasan\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10762, "properties": {"category": "rec.sport.hockey", "text": "Organization: University of Notre Dame - Office of Univ. Computing\nFrom: <JOLD@vma.cc.nd.edu>\nSubject: New Div. 1 NCAA teams\nLines: 9\n\nIt was great to hear that UMass is bringing back hockey!  It reminded me that a\ncouple of years ago there was talk that both Bimidgi (sp?) and Mankato State\ntrying to upgrade their programs to Div. 1 status.  I also seem to remember\nthat they had some trouble with new NCAA rule about just who was allowed to\ncompete at the Div. 1 level.  Was that ever resolved?  Also, I was just\nwondering if there is ANY college hockey east of Colorado (Alaska excepted).\nWith the new popularity of hockey on the west coast, I would expect there to\nbe some interest building at the collegiate levels too. Anyone heard anything?\n                      James Old, e-mail JOLD@vma.cc.nd.edu\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10763, "properties": {"category": "sci.med", "text": "From: RICK@ysub.ysu.edu (Rick Marsico)\nSubject: Proventil Inhaler\nOrganization: Youngstown State University\nLines: 5\nNNTP-Posting-Host: ysub.ysu.edu\n\nDoes the Proventil inhaler for asthma relief fall into the steroid\nor nonsteroid category?  Looking at the product literature it's\nnot clear.\n \nrick@ysu.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10764, "properties": {"category": "rec.sport.hockey", "text": "From: gballent@hudson.UVic.CA (Greg  Ballentine)\nSubject: Re: plus minus stat\nNntp-Posting-Host: hudson.uvic.ca\nReply-To: gballent@hudson.UVic.CA\nOrganization: University of Victoria, Victoria, BC, Canada\nLines: 23\n\n\nIn article 9088@blue.cis.pitt.edu, jrmst8+@pitt.edu (Joseph R Mcdonald) writes:\n\n>Jagr has a higher +/-, but Francis has had more points.  And take it from\n>an informed observer, Ronnie Francis has had a *much* better season than\n>Jaromir Jagr.  This is not to take anything away from Jaro, who had a \n>decent year (although it didn't live up to the expectations of some).\n\nBowman tended to overplay Francis at times because he is a Bowman-style\nplayer.  He plays hard at all times, doesn't disregard his defensive\nresponsibilities and is a good leader.  Bowman rewarded him be increasing his\nice time.\n\nJagr can be very arrogant and juvenile and display a \"me first\" attitude.\nThis rubbed Bowman the wrong way and caused him to lose some ice time.\n\nThroughout the year, Francis consistently recieved more ice time than\nJagr.  Althouhg I have never seen stats on this subject, I am pretty\nsure that Jagr had more points per minute played that Francis.  When\nyou add to that Jagr's better +/- rating, I think it becomes evident\nthat Jagr had a better season- not that Francis had a bad one.\n\nGregmeister\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10765, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Re: <Political Atheists?\nOrganization: Mantis Consultants, Cambridge. UK.\nX-Newsreader: rusnews v1.01\nLines: 15\n\nkeith@cco.caltech.edu (Keith Allan Schneider) writes:\n>mathew <mathew@mantis.co.uk> writes:\n>>>Perhaps we shouldn't imprision people if we could watch them closely\n>>>instead.  The cost would probably be similar, especially if we just\n>>>implanted some sort of electronic device.\n>>Why wait until they commit the crime?  Why not implant such devices in\n>>potential criminals like Communists and atheists?\n> \n> Sorry, I don't follow your reasoning.  You are proposing to punish people\n> *before* they commit a crime?  What justification do you have for this?\n\nLook up \"irony\", Keith.\n\n\nmathew\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10766, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: Eco-Freaks forcing Space Mining.\nOrganization: Express Access Online Communications USA\nLines: 25\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr23.001718.1@aurora.alaska.edu> nsmca@aurora.alaska.edu writes:\n>In article <1r6b7v$ec5@access.digex.net>, prb@access.digex.com (Pat) writes:\n>>  Besides this was the same line of horse puckey the mining companies claimed\n>> when they were told to pay for  restoring land  after strip mining.\n>===\n>I aint talking the large or even the \"mining companies\" I am talking the small\n>miners, the people who have themselves and a few employees (if at all).The\n>people who go out every year and set up thier sluice box, and such and do\n>mining the semi-old fashion way.. (okay they use modern methods toa point).\n\n\nLot's of these small miners  are no longer miners.  THey are people living\nrent free on Federal land,  under the claim of being a miner.  The facts are\nmany of these people do not sustaint heir income from mining,  do not\noften even live their full time,  and do fotentimes do a fair bit\nof environmental damage.\n\nThese minign statutes were created inthe 1830's-1870's  when the west was\nuninhabited  and were designed to bring people into the frontier.  Times change\npeople change.  DEAL.  you don't have a constitutional right to live off\nthe same industry forever.  Anyone who claims the have a right to their\njob in particular,  is spouting nonsense.   THis has been a long term\nfederal welfare program,  that has outlived it's usefulness.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10767, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Accounts of Anti-Armenian Human Right Violations in Azerbaijan #014\nSummary: Prelude to Current Events in Nagorno-Karabakh\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 120\n\n     Accounts of Anti-Armenian Human Right Violations in Azerbaijan #014\n                 Prelude to Current Events in Nagorno-Karabakh\n\n         +----------------------------------------------------------+\n         |                                                          |\n         | I asked, \"What's going on?\" He says, \"What's the matter, |\n         | can't you see, they've overturned a car and they're      |\n         | killing Armenians!\"                                      |\n         |                                                          |\n         +----------------------------------------------------------+\n\nDEPOSITION OF ZAVEN ARMENAKOVICH BADASIAN\n\n   Born 1942\n   Employed\n   Sumgait Bulk Yarn Plant\n\n   Resident at Building 34, Apartment 33\n   Microdistrict No. 12\n   Sumgait [Azerbaijan]\n\n\nOn February 27 my wife and I went to Baku to go shopping and returned to \nSumgait at around five in the evening. We ran into one of my relatives at the \nbus station and got to talking. A lot of people had gathered not far away,\nnear the store. Well at first we didn't know what was happening, and then a\nfellow I know comes up to me, an Azerbaijani guy, and says, \"What are you\nstanding here for? Go home immediately!\" I asked, \"What's going on?\" He says, \n\"What's the matter, can't you see, they've overturned a car and they're \nkilling Armenians!\" He helped me catch a cab and we got home safely.\n\nWe sat at home for two days. During that time a gang of bandits came into our \ncourtyard. But the neighbors wouldn't let them in the building. There were \nabout 80 of them. They had sticks and pieces of armatures in their hands. They\nwere shouting something, but you couldn't understand it. It wasn't one voice \nor two, all of them were shouting in a chorus. They turned toward Building 35.\nThey went up to the third _floor, and we see that they're breaking glass and \nthrowing things out the window. After a while they come out the entryway: one \nhas a pair of jeans in his hands, another has a tape recorder, and a third a \nguitar. They went on toward the auto parts store.\n\nWe had to save ourselves. After midnight on March 1 we went to hide at School \nNo. 33, which is in Microdistrict 13. There were two other Armenian families \nthere with us. There were 13 of us altogether. Out of all of them I had only \nknown Ernest before, he had moved to Sumgait from Kirovabad. The Azerbaijani \nguard at the school let us in. At first he didn't want to, but there was \nnowhere else for us to go. We had to plead with him and talk him into it. We \nwere told that on that day, the 1st, there would be an attack on our \nmicrodistrict.\n\nWe went upstairs to a classroom on the second floor.\n\nOn the city radio station they announced three telephone numbers that could be\nused to summon assistance or communicate anything important. I called one of \nthem and the First Secretary of the Sumgait City Party Committee answered. I\nasked him for assistance. I say, \"We're in School No. 33, we need to be \nevacuated.\" Well he says, \"Got it, wait there, I'm sending out help now.\"\n\nI know his voice. The First Secretary had been to our plant, I had spoken with\nhim personally. When I called he said, \"Muslimzade here.\"\n\nAbout two hours after the call we heard shouts near the school. We looked out\nthe window and about 100 to 120 people were outside saying, \"Armenians, come \nout, we're here to get you.\" They have clubs, axes, and armature shafts in \ntheir hands. The guard sat there with us, and asked, \"Where should I go?\" I \nsay, \"If your life is of any value to you you'll go down there and say that \nthe Armenians were here and that they left.\" That's what he did. He went down \nthere and said, \"The Armenians were here,\" he said, \"I let them out the back \ndoor, they went that way.\" And pointed with his hand. And with shouts and \nnoise the mob set off in the direction he had pointed.\n\nSo the assistance we had been promised did come. They sent us help, all right!\nInstead of sending real soldiers he had sent his own. I am positive that\nMuslimzade did that. No one had seen us entering the school, no one knew that \nwe were there. In any case, we stayed at the school until seven in the \nmorning, and no soldiers of any sort came to our aid.\n\nIn the morning we went to my relative's in Microdistrict 1, and the soldiers \ntook us to the SK club from there. The club was jammed with people, and there \nwere lots of people ahead of us--there was no space available. One small boy, \nabout three months old, died right in my arms. There wasn't a single doctor, \nnothing. The boy was uninjured, there were no wounds or bruises on him. He was\njust very ill. They gave him mouth-to-mouth resuscitation, they did everything\nthey could under the circumstances, but were unable to save him. And his \nmother and father, a young Armenian couple, were right there, on the floor ...\n\nI searched for a spot for us in the SK, we have a small child of our own, I\nwanted to find a room or something to put my family in. I went up to the third\nfloor, there were a lot of soldiers up there, bandaged, with canes, limping, \nwith their heads broken open. They were a terrible sight. Young guys, all of \nthem.\n\nThere were a lot of bandaged Armenians, too. Everyone had been beaten, \neveryone was crying, wailing, and calling for help. I think that the City\nParty Committee ignored us completely. True, there was a snack bar: a sausage \nwas 30 kopeks or 40 kopeks, a package of cookies that cost 26 kopeks was being\nsold for 50, a bottled soft drink cost a ruble . . . But there was no way to \nget the things any cheaper.\n\nI met my old uncle, Aram Mikhailovich, there. He saw me and tears welled up in\nhis eyes. My whole life he had told me that we were friendly peoples, that we \nworked together, he always had Azerbaijanis over at his house. And now he saw \nme and there was nothing he could say, he just cried. You can understand his \nfeelings, of course.\n\n   April 8, 1988\n   Yerevan\n\n\t\t     - - - reference - - -\n\n[1] _The Sumgait Tragedy; Pogroms against Armenians in Soviet Azerbaijan,\n    Volume I, Eyewitness Accounts_, edited by Samuel Shahmuradian, forward by\n    Yelena Bonner, 1990, published by Aristide D. Caratzas, NY, pages 185-186\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"Armenia has not learned a lesson in\nS.D.P.A. Center for Regional Studies |  Anatolia and has forgotten the \nP.O. Box 382761                      |  punishment inflicted on it.\"  4/14/93\nCambridge, MA 02238                  |   -- Late Turkish President Turgut Ozal \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.505+0000", "event": "documents", "entityId": 10768, "properties": {"category": "soc.religion.christian", "text": "From: jkjec@westminster.ac.uk (Shazad Barlas)\nSubject: iterations of the bible\nOrganization: University of Westminster\nLines: 53\n\nHi... I'm not a religious guy so dont take this as some kinda flame (thanx\nin advance)\n\nI want to know why there are so many different versions of the bible? There\nis this version of the bible I have read about and on the front page it says:\n\"....contains inaccurate data and inconsistencies.\"   \n\n\t\t\t\t\tThanx in advance... Shaz....\n\n[I'm not sure quite what you mean by many different versions.\nThe primary distinction in versions you see today is in the style\nof the translation.  It's pretty unusual to see significant\ndifferences in meaning.  There are a few differences in the underlying\ntext.  That's because before printing, manuscripts were copied by\nhand.  Slight differences resulted.  There are enough manuscripts\naround that scholars can do a pretty good job of recreating the\noriginal, but there are some uncertainties.  Fortunately, they are\ngenerally at the level of minor differences in wording.  There are\nsomething like 3 or 4 places where whole sentences are involved,\nbut with recent discoveries of older manuscripts, I don't think there's\nmuch uncertainly about those cases.  As far as I know, no Christians\nbelieve that the process of copying manuscripts or the process of\ntranslating is free of error.  But I also don't think there's\nenough uncertainty in establishing the text or translating it that\nit has much practical effect.\n\nWhether the Bible contains inaccurate data and inconsistences is a hot\ntopic of debate here.  Many Christians deny it.  Some accept it\n(though most would say that the inaccuracies involved are on details\nthat don't affect the faith).  But this has nothing to do with there\nbeing multiple versions.  The supposed inconsistences can be found in\nall the versions.  I'm surprised to find a reference to this on the\ntitle page though.  What version are you talking about?  I've been\nreferring to major scholarly translations.  These are what get\nreferenced in postings here and elsewhere.  There have certainly been\neditions that are (to be kind) less widely accepted.  This includes\neverything from reconstructions that combine parallel accounts into\nsingle narrations, to editions that omit material that the editor\nobjects to for some reason or the other.  The copyright on the Bible\nhas long since expired, so there nothing to stop people from making\neditions that do whatever wierd thing they want.  However the editions\nthat are widely used are carefully prepared by groups of scholars from\na variety of backgrounds, with lots of crosschecks.  I could imagine\none of the lesser-known editions claiming to have fixed up all\ninaccurate data and inconsistencies.  But if so, it's not any edition\nthat's widely used.  The widely used ones leave the text as is.\n(Weeeeelllllll, almost as is.  It's been alleged that a few\ntranslations have fudged a word or two here and there to minimize\ninconsistencies.  Because translation is not an exact science, there\nare always going to be differences in opinion over which word is best,\nI'm afraid.)\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10769, "properties": {"category": "talk.politics.mideast", "text": "From: backon@vms.huji.ac.il\nSubject: Re: From Israeli press. TORTURE.\nDistribution: world\nOrganization: The Hebrew University of Jerusalem\nLines: 115\n\nIn article <1483500344@igc.apc.org>, Center for Policy Research <cpr@igc.apc.org> writes:\n>\n> From: Center for Policy Research <cpr>\n> Subject: From Israeli press. TORTURE.\n>\n> /* Written  4:41 pm  Apr 16, 1993 by cpr@igc.apc.org in igc:mideast.forum */\n> /* ---------- \"From Israeli press. TORTURE.\" ---------- */\n> FROM THE ISRAELI PRESS.\n>\n> Newspaper: Ma'ariv Date: 18. December 1992 Author: Avi Raz\n>\n> Subject: Torture\n\n\nSigh.\n\nFarwell LA, Donchin E. The truth will out: Interrogative polygraphy (\"lie\ndetection\") with event-related brain potentials. Psychophysiology\n1991;28:531-547\n\n\"The research reported here was supported in part by contract number 87F350800\nwith the Central Intelligence Agency. Preliminary reports were presented at the\n1986, 1988, and 1989 meetings of the Society for Psychophysiological Research\".\n\nDonchin happens to be an Israeli.\n\nDo you really think that Israel needs something as primitive as torture when it\nhas THIS as well as something brought over by a Russian mathematician from the\nLenningrad Military Hospital in 1979  (factor-analysis of multiple unit\nactivity of the brain) ???  Surely you jest.\n\nWhen Israel sics trained dogs on Arab prisoners the way it's commonly done on\nprison farms in Mississippi or Alabama, *then* you have a right to protest\nagainst torture. When Israeli security personnel beat Arab prisoners the way\nChicago police do, *then* you have a right to complain. Since it does NOT\npractice physical torture in any way, kindly refrain from using this word.\n\nJosh\nbackon@VMS.HUJI.AC.IL\n\n\n\n\n\n\n\n\n\n>\n> Title of article: Moderate physical pressure\n>\n> Several times in the course of the long hours in the interrogation\n> room in Tulkarm prison, during which he says he was humiliated,\n> beaten and tortured, Omar Daoud Jaber heard his interrogator, a\n> Shabak agent 'Captain Louis', chatting on the phone with his wife.\n> \"At those moments\", Omar said, \"I felt that he was like a\n> humanbeing, but right after he finished talking, he would be beat\n> me and say, 'You listened to the conversation and enjoyed\n> yourself' and I understood that he was not really a human being\".\n>\n> In late October 1992, after 38 days in detention at Tulkarm\n> prison, Omar Jaber was released without charges. \"Among the Jews,\n> as among the Arabs, there are good people and bad people\", he said\n> after his release, \"but there, in Tulkarm, in the interrogations\n> rooms, you cannot find even one person about whom you can say that\n> he is a human being\". Although he left the detention installation\n> in Tulkarm bruised and humiliated (\"I sat at home for ten days. My\n> hands shook from nerves\"), one may consider Omar Jaber lucky: He\n> got out, not so healthy, but entire, and even ultimately returned\n> to normal functioning, at the small solar heater plant he owns.\n>\n> In contrast, Hassan Bader al-Zbeidi, for example, was released\n> seven weeks ago from detention in Tulkarm after 33 days in the\n> Shabak wing, cut off from his surroundings. He doesn't speak or\n> react. Mustafa Barakat, aged only 23, who was arrested in early\n> August and was brought to the Tulkarm detention installation, left\n> it one day later - dead. \"We have recently received an especially\n> large number of testimonies concerning cruel tortures employed at\n> the Tulkarm detention installation by Shabak interrogators\", noted\n> Dr. Niv Gordon, director of the Association of Israel and\n> Palestinian Physicians for Human Rights. (...)\n>\n> The right to complain against the Shabak does not excite Anan\n> Saber Makhlouf, a 20 year old student. In fact, he was extremely\n> fearful about describing the manner in which he was interrogated\n> in Tulkarm prison, in case the publication in the paper would\n> return him to detention and lead to renewed mistreatment.\n>\n> (...follow description of tortures....)\n>\n> Omar, a tall bearded man, was silent. \"I do not want to talk about\n> it\", he finally said, quietly. Some time later, embarrased and\n> ashamed, he spoke: \"Sometimes he beats you and beats you until\n> you'll kiss his hand, and not only his hand. Even the hands of\n> another interrogator, and another, whom he calls into the room,\n> and the last interrogator says:\" Now you are kissing my hand, and\n> later if I want, you will kiss my ass.\"\n>\n> These things take place in an Israeli army detention installation,\n> located within the military government compound in Tulkarm (West\n> Bank). But the Shabak interrogation wing is a separate kingdom. In\n> early March the IDF allowed representatives of B'Tselem, the\n> Israeli Information Center for Human Rights in the Territories, to\n> visit Tulkarm prison, but denied them access to the interrogation\n> wing. \"The interrogation wing is Shabak property, being solely\n> under Shabak responsibility. All interrogations are performed by\n> it\", said Lieutnant Sharon Sho'an, the commander of the\n> installation, according to the internal report written by B'tselem\n> member, Yuval Ginbar, following the visit. Major David Pe'er,\n> governing commander of the prison system in the Central Command,\n> was quoted in the report:  \"There is an ethical problem here - no\n> one can enter the interrogation wing\".\n>\n> Transl. by I. Shahak\n>\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10770, "properties": {"category": "comp.windows.x", "text": "From: scornd4@technet.sg (HIANLEONG ONG)\nSubject: Re: ..Image processing Packages under X..\nNntp-Posting-Host: solomon.technet.sg\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 20\n\nPrateek Mishra (mishra@cs.sunysb.edu) wrote:\n\n: I am looking for a package that implements standard\n: image processing functions (reading/writing from\n: standard formats), clipping, zoom, etc. implemented\n: under X. Both public domain and private packages\n: are of interest. The particular application area I\n: have in mind is medical imaging, but a package meant\n: for a more general context would be acceptable.\n\n: Please reply to me; I will summarize on the net if\n: there is general interest.\n\n: - prateek mishra\n: mishra@sbcs.sunysb.edu \n\n\nkeep tabs with the FAQ in sci.image.processing. There is quite a\ncomprehensive compilation of image processing s/w (X included). I've\nftp'ed ImageMagick and its great. Check out the FAQ its all there.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10771, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: Archie-Client ?\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 8\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nGet Xarchie 2.0 instead.\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10772, "properties": {"category": "talk.religion.misc", "text": "From: b645zaw@utarlg.uta.edu (stephen)\nSubject: Re: Comments on the Koresh 3-02 Transcript\nNews-Software: VAX/VMS VNEWS 1.41    \nNntp-Posting-Host: utarlg.uta.edu\nOrganization: The University of Texas at Arlington\nLines: 102\n\nIn article <1993Apr14.200259.20419@microsoft.com>, \niank@microsoft.com (Ian Kennedy) writes...\n\n(stephen) wrote:\n>>Correction to my prior post, proper citation is:\n>>\n>>\tIsaiah 30:26 -- Moreover the light of the moon shall\n>>\t   be as the light of the sun, and the light of the \n>>\t   sun shall be sevenfold, as the light of seven days,\n>>\t   in the day that the LORD bindeth up the breach of\n>>\t   his people, and healeth the stroke of their wound.\n> \n>So we have to wait for the sun to nova?\n\nMore along the lines of Hebrews 12:25-29, I reckon...\n\n\tSee that you refuse not him that speaks. For if they\n\tescaped not who refused him that spake on earth, much \n\tmore shall not we escape, if we turn away from him that \n\tspeaks from heaven:\n\n\tWhose voice then shook the earth: but now he has promised,\n\tsaying, Yet once more I shake not the earth only, but also\n\theaven.\n\n\tAnd this word, Yet once more, signifies the removing of\n\tthose things that are shaken, as of things that are made,\n\tthat those things which cannot be shaken may remain.\n\n\tWherefore we receiving a kingdom which cannot be moved, \n\tlet us have grace, whereby we may serve God acceptably \n\twith reverence and godly fear:\n\n\tFor our God is a consuming fire.\n\n\nOr 2nd Thessalonians 1:7-10...\n\n\tAnd to you who are troubled rest with us, when the Lord\n\tJesus shall be revealed from heaven with his mighty angels,\n \tIn flaming fire taking vengeance on them that know not God,\n\tand that obey not the gospel of our Lord Jesus Christ:\n\n\tWho shall be punished with everlasting destruction from \n\tthe presence of the Lord, and from the glory of his power;\n \tWhen he shall come to be glorified in his saints, and to be\n\tadmired in all them that believe (because our testimony \n\tamong you was believed) in that day. \n\n\nKinda gives Flaming a whole new meaning, I reckon. \n\n\t\t\t      - < > -\n\nThe impression I got from talking with Livingston was that the coming\nof the Lord, power-wise, is going to be something that those who are\nunprepared can't handle -- kinda like overloading a fuse -- due to \nguilt. Somehow it seems to also apply to the entire physical world as \nwe know it. LF suggests that God doesn't want that and has sent Koresh \nas a reminder. \n\nSeems that those who have been purified through salvation, or that those\nprotected by the Seals, will be the ones who survive. And no -- I don't \nhave a good idea yet what \"being shielded by the seals\" actually involves \nor how exactly it relates to salvation. (Other than it involves the\nmarriage of the Bridegroom and the Bride... for those of you Biblical\nwell versed.)\n\t\t\t     - < > -\n\nMe personally, I'm totally 100% dependent on God through Christ, so \nif God wants me to understand, good. If not, also good. If God wants\nto save me, or dispose of me, that's great either way. Being born in\nthe Spirit, means being part of the Body of Christ (Ephesians 2), so\nwho and what I was, matters little. * What's important is loving GOD *\n\nCome Nova, Nuke, or Apocalypse -- who cares? Satan might even be able \nto pull off a pretty convincing fake. Big deal. Not worth fearing or \nworrying about though, not before:\n\n\n\t\t   -* The Greater Glory of GOD *-\n \t\n\nMaybe Koresh is right, maybe he isn't, and it should be interesting to \nsee the new message (or prophecy). The tour of the Bible I've taken in \nstudying the passages he points to in the 3-02 text, has been most re-\nwarding. But the test of prophecy is still the fruit it bears -- which \nis not yet clear. \n\nMuch much more important is \"Charity\" -- which by definition *is* --\n\n\t                   Love for GOD\n\n(I hope Dear Reader, you've taken all this as an expression of faith, \n and not a statement of mere fact. Seems many folks get real upset at \n reminders. ;-)\n\n   |\n-- J -- \n   |\n   | stephen\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10773, "properties": {"category": "comp.windows.x", "text": "From: kgrider@magnus.acs.ohio-state.edu (Keith A Grider)\nSubject: Remote TEKTRONICS emulation\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 17\n\nHello,\n\nI am looking for someone to help me with the proceedure for remote login, via\nmodem not ethernet, to our new silicon graphics iris machines.  I can log in to\nthem only as a vt100 terminal regardless of what I am emulating on my end.  I\nhave communication software, kermit, which supports tek 401x and vt102\nemulation.  The x windows manual lists XTERM as the appropriate command to\nchange the terminal type.  When I try it the reponse is 'unable to open window'\n\nThanx in advance\n\nKeith Grider\n-- \n__________________________________________________________________________\nKeith Grider\t\t        \t'Come on man, let's go do the crimes\nkgrider@magnus.acs.ohio-state.edu\tYeah, Lets get sushi, and not pay'\n\t\t\t\t\t\tRepo Man\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10774, "properties": {"category": "misc.forsale", "text": "From: hungjenc@usc.edu (Hung-Jen Chen)\nSubject: test\nArticle-I.D.: phakt.1pqgltINN9dg\nDistribution: na\nOrganization: University of Southern California, Los Angeles, CA\n                test\nLines: 6\nNNTP-Posting-Host: phakt.usc.edu\n\n\n\n\n\n\n      \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10775, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: spiro@netcom.com (Philip N. Spiro)\nSubject: Re: NEW CD-ROM for Gateways', and misc. info\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nX-Newsreader: TIN [version 1.1 PL8]\nDistribution: na\nLines: 15\n\nTerry Clark (tclark@news.weeg.uiowa.edu) wrote:\n\n:    The upgrade to a Nanao 550i is now $765.\n:        (this monitor will handle 1280x1024 at a vertical refresh\n:         of 72-76Hz).\n\n\tNot according to Nanao. The 550i will not do better than 60Hz\n\tat 1280x1024. BTW, Gateway told me the same thing.\n\n\n-- \nPhil\n-------------------------------------------\nPhil Spiro  spiro@netcom.com   415-964-6647\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10776, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ran@doc.ic.ac.uk (Robert A Nicholls)\nSubject: VB to MSACCESS DDE communications\nOrganization: Department of Computing, Imperial College, University of London, UK.\nLines: 49\nNNTP-Posting-Host: swan.doc.ic.ac.uk\n\nA couple of weeks ago I posted a question concerning\ncommunicating\nbetween VB and MSACCESS using DDE. The answers I received at\nthat time\nallowed me to get a prototype of my project working. However,\nduring\nthis process I have come up with new problems.\n\n1) There seems to be a limit of 255 characters for a DDE Topic\nstring. Is\nthis inherent in all DDE systems or just peculiar to MSACCESS\nor VB?\n\n2) It is easy to query an Access database from VB using the\nDDE SQL command,\n(provided the above limitation is overcome by using short\nfield and table\nnames) but how is one meant to update a database?\n   a) A DDE SQL UPDATE command does not seem to work.\n   b) Initiating an Access macro using a DDE Execute command\nfrom VB cannot\n      be used because when the macro requests information from\nVB using a\n      second DDE channel the programs dead lock until time-\nouts occur.\n      (The VB to Access channel has to close before the Access\nto VB channel\n      is initiated, I guess.)\n   c) Access does not allow VB to DDE POKE the information.\n\n\n   The way I eventually managed to update a database was by\nsending key-\n   strokes from VB to Access using the SendKeys command. This\ntechnique has\n   the problem that Access cannot be minimised and it must\nalways be in a\n   state ready to respond to the sequence of key-strokes VB\nsends.\n\nAre all the above statements correct or have I made incorrect\nassumptions?\nAre there any better work arounds to the above? Are there any\nsigns of an\nODBC driver for Access?\n\nBob\nran@doc.ic.ac.uk\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10777, "properties": {"category": "rec.autos", "text": "From: welty@cabot.balltown.cma.COM (richard welty)\nSubject: rec.autos: Frequently Asked Questions\nKeywords: Monthly Posting\nReply-To: welty@balltown.cma.com\nOrganization: New York State Institute for Sebastian Cabot Studies\nExpires: Thu, 20 May 1993 04:03:03 GMT\nLines: 251\n\nArchive-name: rec-autos/part4\n\n[this article is one of a pair of articles containing commonly\nasked automotive questions; the other article contains questions\nof general consumer interest, and is broken out to facilitate\ncrossposting to misc.consumers -- rpw]\n\n[last change: 8 February 1993; CT now permits radar detector usage,\n    new tire-traction q&a -- rpw]\n\n                Commonly Asked Questions\n\nRadar Questions:\n\nQ:  Where are radar detectors illegal?\n\nA:  In the US, currently Virgina and the District of Columbia prohibit\n    all usage of radar detectors.  New York prohibits their use in\n    large trucks.  In Canada, they are illegal in Manitoba, Ontario,\n    Quebec, Newfoundland and PEI (Prince Edward Island).  They\n    are apparently are illegal through most, if not all, of Europe.\n    Legislation which would make them illegal is pending in many other\n    jurisdictions; chances of such legislation passing varies a great deal.\n\nQ:  Where are Radar Detector Detectors used?  Do they really work?\n\nA:  Usage is spreading rapidly; initially they were used only in Canada,\n    but now they are appearing in New York and Virginia.  It is unsafe\n    to assume that they are not in use in Connecticut and D.C.\n    They work by detecting a certain frequency radiated by many currently\n    available super Het radar detectors; some brands of detector radiate\n    more strongly than others, and are thus more likely to be spotted.\n    New radar detectors are becoming available which may not be detected\n    by the current generation of detector detectors.  Note that a\n    detector may only be spotted by one of these devices if it is turned\n    on.\n\nQ:  What is VASCAR?  Is it some kind of Radar?\n\nA:  VASCAR is nothing more than a fancy stopwatch and time-speed-distance\n    computer.  It depends on the operator pressing buttons as the target\n    vehicle passes landmarks.  No radar signals are emitted by a VASCAR\n    system.\n\nQ:  What is Ka band radar?  Where is it used?  Should a radar detector be\n    able to handle it? \n\nA:  Ka band has recently been made available by the FCC for use in the US\n    in so-called photo-radar installations.  In these installations, a\n    low-powered beam is aimed across the road at a 45 degree angle to the\n    direction of traffic, and a picture is taken of vehicles which the\n    radar unit determines to have been in violation of the speed limit.\n    Tickets are mailed to the owner of the vehicle.  Because of the low\n    power and the 45 degree angle, many people believe that a radar\n    detector cannot give reasonable warning of a Ka band radar unit,\n    although some manufacturers of radar detectors have added such\n    capability anyway.  The number of locales where photo-radar is in use\n    is limited, and some question the legality of such units.  Best advice:\n    learn what photo radar units look like, and keep track of where they\n    are used (or else, don't speed.)\n\nQ:  Do radar jammers work?  Are they legal?\n\nA:  Quick answer:  No, and Not in the USA.\n    Detailed answer:  Cheap radar jammers do not work well at all.\n    Jammers that work are expensive and usually the property of the\n    military.  Jammers are a major violation of the regulations of the\n    Federal Communications Commission of the USA.\n\nDriving technique and Vehicle Dynamics Questions:\n\nQ:  What are understeer and oversteer?\n\nA:  Understeer and oversteer are terms describing the behaviour of a\n    car while cornering near the `limit' (limit of adhesion, that is.)\n    Most drivers do not normally drive hard enough for these terms to\n    be descriptive of the situations they encounter.  Simply put, they\n    tell whether the car wants to go straight in a corner (steer `less',\n    or `understeer') or it wants to turn more in a corner (`oversteer'.)\n    Understeer is commonly designed into most production cars so that\n    untrained drivers, inadvertantly traveling too fast, won't get into\n    trouble.  Understeer may also be induced by using too much throttle\n    in a corner.  Oversteer is designed into some more performance\n    oriented cars; it may be induced by lifting on the throttle (Trailing\n    throttle oversteer, or TTO).  In extreme cases, lifting on the throttle\n    may induce so much oversteer that the car reacts by fishtailing or\n    spinning.\n\n    Some technical details:  in a corner at speed, the tires on the car\n    will develop what are called `slip angles'; the slip angle is the\n    angular difference between the direction that the car is traveling\n    and the direction that the steering wheel is directing the car to\n    travel.  In understeer, the front wheels have a greater slip angle\n    than the rear wheels.  In oversteer, the rear wheels have a greater\n    slip angle than the front wheels.\n\nQ: What is a rev-matched downshift?\n\nA: When downshifting, the engine must be rotating faster in the lower gear\n   than it was in the higher gear.  However, during a downshift, normally\n   you declutch and lift your foot from the throttle, so the revs drop\n   rather than increase.  In rev-matched downshift, you blip the throttle\n   before re-engaging the clutch so that the engine will already be up to\n   the new speed.  This results in a much smoother and faster downshift.\n\nQ: What does heel-and-toe mean?\n\nA: Heel-and-toe is a technique used to do a rev-matched downshift while\n   braking.  This is normally challenging, because you need the right foot\n   for both the brake and throttle.  It is called heel-and-toe because you\n   use one end of the foot on the brake, and the other on the throttle to\n   match revs for the downshift.  In many modern cars this is a misnomer;\n   often you must use the ball of the foot on the brake and the right side\n   on the throttle.\n\n   Note that some race car drivers will skip the clutch, and just use the\n   left foot on the brake and the right foot on the throttle, accomplishing\n   the same thing.\n\nQ: What is double-clutch downshifting?\n\nA: While your right foot is doing the above, your left foot can do one of\n   three things:  nothing, declutch once, or declutch twice.  The reason for\n   declutching twice is to match the speeds of the two shafts in the\n   transmission to the speed of the engine.  This is usually coupled with\n   rev-matching, so that while the engine is in neutral and the clutch\n   engaged, the throttle is blipped and both shafts of the transmission\n   speed up.\n\n   The procedure is as follows:\n   (0) declutch\n   (1) move gearshift lever to neutral\n   (2) engage clutch\n   (3) match revs\n   (4) declutch\n   (5) move gearshift lever to next lower gear\n   (6) engage clutch\n\n   This sounds like a lot of work, but with practice it becomes natural.\n   The problem that double-clutching solves is normally the function of the\n   synchronizers within the gearbox.  In transmissions without synchros or\n   with very worn synchros, double-clutching makes it much easier to shift.\n   Basically, if you double-clutch well, you are not using the synchros at\n   all.  This is generally unnecessary on street cars with synchros in good\n   condition.\n\nQ: What do the numbers for acceleration from 0-60, 1/4 mile, skidpad, and\n   slalom times in the Auto Magazines really mean?  May they be compared?\n\nA: In short, 1) not as much as the magazines want you to believe, and\n   2) almost never.\n\n   In more detail:  the acceleration numbers (0-60mph and 1/4 mile times\n   in the US) may be vaguely compared as long as they all come from the\n   same source.  Testing procedures vary so much from magazine to magazine\n   that comparing a Road & Track number to a Car & Driver number is quite\n   pointless.  Keep in mind, too, that the same variation applies from\n   driver to driver on the street; the driver is a major (often *the*\n   major) part of the equation.\n\n   Skidpads vary, and even if they didn't, skidpad figures are really\n   only tests of the stickiness of the stock tires; they change radically\n   when tire compounds change.  DO NOT make any assumptions about the\n   comparative handling of, say, two sports sedans based on skidpad numbers.\n   This is not to suggest that skidpads are without value, however. Skidpads\n   are an excellent educational tool at driving schools.  They are simply\n   of limited value in the comparison of anything except tires.\n\n   Slalom times are slightly more useful; they test some small parts of the\n   automobile's transient response.  However, they are also heavily influenced\n   by the stock rubber on the car, and they do not test many corners of the\n   car's envelope.  They DO NOT tell you all you need to know before making\n   a buying decision.  For example, they don't tell you what the rear end\n   of the car will do on a road which suddenly goes off-camber.  When a car\n   has an adjustable suspension, these tests are usually done in the `sport'\n   setting, which may be quite unsuitable for daily driving.  The list of\n   caveats could go on for page after page.\n\nQ: My buddy claims that wide tires don't make any difference, according\n   to his freshman physics textbook, and that you can't ever accelerate\n   or corner at more than 1.0G.  Does he know what he's talking about?\n\nA: 1) in short:  he hasn't got a clue.\n\n   2) in more detail: the equations for friction used in freshman physics\n   textbooks presume that the surfaces are smooth,  dry and non-deformable,\n   none of which properly apply to tire traction except in the case of a\n   stone cold tire on dry pavement which is far below its proper operating\n   temperature.\n\n   Pavement is _never_ smooth; it is always irregular to a greater or lesser\n   extent.  Tires, which are not really dry and solid (as rubber is a\n   substance which in its natural form is liquid, and which has only been\n   coerced into a semblance of solidity by chemical magic), deform to match\n   the surface of the pavement which a vehicle is traveling over.  In a tire\n   at operating temperature, grip is actually generated by shear stresses\n   inside the deformed rubber, and not by anything even remotely resembling\n   friction in the freshman physics sense of the term.  The colder a tire\n   is relative to its operating temperature, the closer its behaviour will\n   be to the traditional concept of friction; if much hotter than the its\n   proper operating temperature, the more likely the possibility of some\n   part of the tire actually ``reverting'' to liquid, which is mostly like\n   to happen deep in the tread, causing characteristic blisters and chunking.\n   (This latter, though, is almost completely unlikely to happen in normal\n   street driving, so unless you're a competition driver or do a lot of\n   high speed track driving, don't worry about it.)\n\n   Because tire traction is completely out of the domain of simple friction,\n   it does not obey the freshman physics equation at all; thus dragsters\n   accelerate at more than 1.0G and race cars corner and brake at more than\n   1.0G.  Because simple friction does not apply, it is actually possible\n   for different sized contact patches to generate differing amounts of\n   grip.  An actual analysis of tire behavior would require techniques\n   such as Finite Element Analysis, due to the complexity of the mechanism.\n\nMisc. Questions:\n\nQ:  What does <name or acronym> stand for?\n\nA:  Here is a list of some of the names which are commonly asked\n    about; be careful in soliciting the meanings of other names\n    as misinformation abounds on the net.  In particular, NEVER\n    ask in rec.humor if you want a useful result.\n\n    Saab:   Svenska Aeroplan A. B.,\n              or The Swedish Airplane Corporation\n\n    Alfa:   Societa Anonima Lombarda Fabbrica Automobili,\n              or The Lombardy Automobile Manufacturing Company\n\n    Fiat:   Fabbrica Italiana di Automobili Torino,\n              or The Italian Automobile Manufacturers of Turin\n\n    BMW:    Bayerische Motoren Werke,\n              or Bavarian Motor Works\n\n    MG:     Morris Garage\n\n\nQ:  Does VW own Porsche?\n\nA:  No.  Porsche is a publicly held company, controlled by the Porsche and\n    Piech families.  Porsche has extensive business dealings with VW/Audi,\n    which causes some confusion.  Since currently Porsche is in some\n    financial difficulty, there is a possibility that Mercedes or VW may\n    be interested in purchasing the company in the near future, but this\n    is only speculation at this time.\n-- \nrichard welty        518-393-7228       welty@cabot.balltown.cma.com\n``Nothing good has ever been reported about the full rotation of\n  a race car about either its pitch or roll axis''  -- Carroll Smith\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10778, "properties": {"category": "sci.crypt", "text": "From: eifrig@beanworld.cs.jhu.edu (Jonathan Eifrig)\nSubject: Re: Pgp, PEM, and RFC's (Was: Cryptography Patents)\nOrganization: The Johns Hopkins University CS Department\nLines: 70\n\nIn article <1993Apr16.001321.3692@natasha.portal.com> bob@natasha.portal.com\n(Bob Cain) writes:\n\n>  Check your facts first and grow up.\n>Why is there such a strong correlation between interest in cryptography\n>and immaturity I wonder.\n\n\tHmmm.  \"Check your facts.\"  Good advice.  Let's check Mr. Cain's\nfacts a bit, shall we?\n\n>Charles Kincy (ckincy@cs.umr.edu) wrote:\n\n>: Some limitation.  Let me guess:  don't use the code in any way PKP or\n>: RSA doesn't like....such as...providing secure communications for the\n>: average citizen.\n>\n>That was exactly its purpose if you know anything about it.  There is\n>nothing at all preventing the average citizen using it, only selling\n>it.\n\nFACT:  It is unlawful to distribute code implementing RSA without a license\nto do so from PKP, whether or not one is charging for it.  Furthermore,\nany use of RSA, other than for research purposes allowed under US patent\nlaw, is similarly unlawful.  Therefore, the \"average citizen\" cannot use\nRSA to encrypt message traffic in the US without a license from PKP.\n\nThere is no licensed, freely available product in the US that uses RSA\nencryption other than RSAREF (and hence RIPEM), at least as far as I am\naware.  If you know of another, please post it here.\n\n>: All I have to say is...yeah, right.  If you're willing to pay them\n>: mucho big bucks and/or use the routines *they* tell you to do.  \n>: Doesn't sound very reasonable to me.\n>\n>All I have to say is this is full of shit.  I have negotiated a license\n>and the bucks are incredibly reasonable with an upfront charge on a\n>sliding scale depending on your capitalization.  If you are a startup\n>and can't afford it you can't afford to start up in the first place.\n>Why do people insist on making unequivocal statements about that which\n>they know nothing.\n\nFACT:  The last contact I had with RSA Data Security, Inc was with some\nguy trying to sell me a license (unsolicited, I might add) for TIPEM.\nCost: $15K plus 2-5 percent royalties.\n\nI suppose it is a matter of opinion as to whether or not these terms count\nas \"mucho bucks\" or \"incredibly reasonable.\"  Either way, however, this\ndefinitely falls into the \"routines *they* tell you to (use)\".\n\n>: But I don't guess PKP and RSA are interested in big bucks.  Maybe\n>: they have some other agenda?  Secure communications only for \n>: government agents, perhaps?\n>\n>Have you considered treatment for paranoia?  The government is the\n>single biggest thorn in RSA's side.\n\nFACT:  There are no restrictions (yet!) on the use of cryptography under\nUS law, although this is beginning to look like it will change.  The only\nimpediments to widespread use of RSA cryptography in the US are PKP's\npatents.\n\n\tMr. Cain, please shut up until you get your facts straight.\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\t\"Better than the whole world be destroyed and crumble to dust than\na free man deny one of his desires.\"\n\t\t-Benito Mussolini, Italian anarchist and poet.\n\nJack Eifrig (eifrig@cs.jhu.edu)       The Johns Hopkins University, C.S. Dept.\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.506+0000", "event": "documents", "entityId": 10779, "properties": {"category": "talk.politics.misc", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Kyle K. on Rodney King\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nDistribution: usa\nLines: 12\n\nIn article <C5Lp0y.FDK@news.cso.uiuc.edu> kkopp@uxh.cso.uiuc.edu (koppenhoefer kyle cramm) writes:\n>       How about the fact that you have a bunch of cops putting their lives on\n>the line day in and day out who are afraid as hell of a large black guy that\n                                                               ^^^^^\n>took a large amount of punishment and refused submit?  \n\nI'm curious why you think that particular adjective is important.\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10780, "properties": {"category": "sci.crypt", "text": "From: bena@dec05.cs.monash.edu.au (Ben Aveling)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: Computer Science, Monash University, Australia\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 12\n\nAndrew Richard Conway (arc@leland.Stanford.EDU) wrote:\n\n: P.S. I can't work out why the US government doesn't want to sell\n: them overseas. After all, they are rather easy for US interests to decode,\n: so make a perfect tool for industrial/military espionage...lulling \n: anyone stupid enough to buy it into a false sense of security. You will\n: notice that there is NO mention anywhere about safety for non-Americans.\n\nDon't forget, you are in the country that wouldn't let the Russians\nbuy Apple II's because of security concerns.\n--\n        Ben  (-: bena@bruce.cs.monash.edu.au :-)  \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10781, "properties": {"category": "alt.atheism", "text": "From: rm03@ic.ac.uk (Mr R. Mellish)\nSubject: Re: university violating separation of church/state?\nOrganization: Imperial College\nLines: 33\nNntp-Posting-Host: 129.31.80.14\n\nIn article <199304041750.AA17104@kepler.unh.edu> dmn@kepler.unh.edu (...until kings become philosophers or philosophers become kings) writes:\n>\n>\n>\n>     Recently, RAs have been ordered (and none have resisted or cared about\n>it apparently) to post a religious flyer entitled _The Soul Scroll: Thoughts\n>on religion, spirituality, and matters of the soul_ on the inside of bathroom\n>stall doors. (at my school, the University of New Hampshire) It is some sort\n>of newsletter assembled by a Hall Director somewhere on campus.\n[most of post deleted]\n>\n>  Please respond as soon as possible. I'd like these religious postings to\n>stop, NOW! \n>\n>  \n>Thanks,\n>\n>  Dana\n>\n>       \n>        \nThere is an easy way out....\nPost the flyers on the stall doors, but add at the bottom, in nice large\ncapitals,\n\n      EMERGENCY TOILET PAPER\n\n:)\n\n-- \n------              Robert Mellish, FOG, IC, UK                  ------\n Email: r.mellish@ic.ac.uk   Net: rm03@sg1.cc.ic.ac.uk    IRC:  HobNob\n------     and also the mrs joyful prize for rafia work.         ------\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10782, "properties": {"category": "sci.med", "text": "From: turpin@cs.utexas.edu (Russell Turpin)\nSubject: Re: Eumemics (was: Eugenics)\nOrganization: CS Dept, University of Texas at Austin\nLines: 17\nNNTP-Posting-Host: saltillo.cs.utexas.edu\nSummary: Lousy idea.\n\n-*----\nCross-posted and with followups directed to talk.politics.theory.\n\n-*----\nIn article <79700@cup.portal.com> mmm@cup.portal.com (Mark Robert Thorson) writes:\n> Indeed, we are today a nation at risk!  The threat is not from bad genes,\n> but bad memes!  Memes are the basic units of culture, as opposed to genes\n> which are the units of genetics.\n>\n> We must expand the public-health laws to include quarantine of people\n> with harmful memes. ...\n\nIn other words, we should jail people who say the wrong \nthings.  In this advocacy, we can see a truly ugly meme.\nDoes Mark Robert Thorson advocate jailing himself?\n\nRussell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10783, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 21\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nKeywords: encryption, wiretap, clipper, key-escrow, Mykotronx\nX-Newsreader: InterCon TCP/Connect II 1.1\n\ngtoal@news.ibmpcug.co.uk (Graham Toal) writes:\n> Try reading between the lines David - there are *strong* hints in there \n> that they're angling for NREN next,\n\nWhere?  I honestly didn't see any...\n\n> and the only conceivable meaning of \n> applying this particular technology to a computer network is that they \n> intend it to be used in exclusion to any other means of encryption. \n\nI disagree, if for no other reason than that there are already other \nstandards in place.  Besides, even if they restrict encryption on the NREN, \nwho cares?  Most of the Internet is commercial anyway.  The NREN is only for \ngeovernment and university research (read the proposals--it's a \"data \nsuperhighway\" for Cray users, not anything having to do with the Internet).\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10784, "properties": {"category": "comp.sys.mac.hardware", "text": "From: maennig@veronica.informatik.uni-dortmund.de (Olaf Maennig)\nSubject: Problems with A/ROSE\nOrganization: CS Department, Dortmund University, Germany\nLines: 28\nDistribution: world\nReply-To: maennig@veronica.informatik.uni-dortmund.de\nNNTP-Posting-Host: veronica.informatik.uni-dortmund.de\n\nDoes anyone work with the A/ROSE card?\n\nWe have the problem that after certain crashes the card disappears from the\nsystem, and lets crash the Mac then.\n\nOkay, we don't use the card quite like one should, because we simulate\nerrors in the 68000. Before every instruction some specified registers are\nmasked, eg. to simulate a stuck-at-1-error in certain bits.\n\nNormally, the \"crash instance\" of A/ROSE notices a crash, sets a flag and\nstops working. By reading the mentioned flag the Mac can notice a card\ncrash. That works fine for almost all crashes, but as said, sometimes the\ncard doesn't set the flag and disappears from the system.\n\nThe documentation of A/ROSE does not tell us anything about its behavior\nwhen crashing, and so at the moment we are trying to understand by analyzing\nthe assembler code, and that's both frustrating and lengthy.\n\nSo, can anyone help?\nPlease only reply via email, as I don't read this group.\n-- \n ---------------------------------------------------------------------------\n     _                   Department of Computer Science IV\n    / \\     |\\/|         University of Dortmund, Germany\n    \\_/laf  |  |aennig   e-mail: maennig@veronica.informatik.uni-dortmund.de\n ---------------------------------------------------------------------------\n \"In the beginning God created Adam ... ahem! ... atoms. Atoms of hydrogen.\"\n ---------------------------------------------------------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10785, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: Hilter and homosexuals\nArticle-I.D.: optilink.15225\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 21\n\nIn article <ericsC4x1K9.Apz@netcom.com>, erics@netcom.com (Eric Smith) writes:\n> gsmith@lauren.iwr.uni-heidelberg.de (Gene W. Smith) writes:\n# \n# #Are you saying that:\n# \n# #(1) People voted for Hitler, and he became Reich Chancellor, in good\n# #part because he used bully boys to attack communists,\n# \n# Hitler did not become become Reich Chancellor because people voted for\n# him. I'm not sure if you meant to imply that or not, but I just thought\n# I'd bring that up.\n# \n# Eric Smith\n\nHitler became Chancellor because people voted for his political\nparty.  That's not a huge difference in a parliamentary system.\n\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10786, "properties": {"category": "sci.med", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: Re: Glutamate\nNntp-Posting-Host: wind.bellcore.com\nOrganization: Bellcore\nLines: 13\n\nIn article <1qrsr6$d59@access.digex.net> kfl@access.digex.com (Keith F. Lynch) writes:\n>In article <lso15qINNkpr@news.bbn.com> sher@bbn.com (Lawrence D. Sher) writes:\n>> From the N.E.J.Med.  editorial:  \"The dicarboxylic amino acid glutamate\n>> is not only an essential amino acid ...\n>\n>Glutamate is not an essential amino acid.  People can survive quite well\n>without ever eating any.\n\nThere is no contradiction here. It is essential in the sense that your\nbody needs it. It is non-essential in the sense that your body can\nproduce enough of it without supplement.\n\nJason Chen\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10787, "properties": {"category": "sci.crypt", "text": "From: mkagalen@lynx.dac.northeastern.edu (michael kagalenko)\nSubject: Re: How to detect use of an illegal cipher?\nOrganization: Northeastern University, Boston, MA. 02115, USA\nLines: 19\n\nIn article <C5nMB1.CoF@news.claremont.edu> ebrandt@jarthur.claremont.edu (Eli Brandt) writes:\n>\n>I probably shouldn't say this, but they could try to detect the use\n>of an illegal cypher by transmitting in the clear some statistical\n>properties of the plaintext.  An old-fashioned wiretap could then\n>detect the use of pre-encryption, which would drastically increase\n>the measured entropy of the input.  A countermeasure to this would\n>be to use steganographic techniques which put out voice.\n\nThis way to detect pre-encryption may be defeated ; one can do  \ntransformation of the spectrum of encrypted signal just by adding some \npre-arranged (in the beginning of communication) function.\nI think so. Say, you can do FFT of your encrypted signal.\nJust thinking ... \n\n-- \n--------------------------------------------------------------------------------\n      For PGP2.1 public key finger mkagalen@lynx.dac.northeastern.edu\n--------------------------------------------------------------------------------\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10788, "properties": {"category": "rec.sport.hockey", "text": "From: willis@oracle.SCG.HAC.COM (Stan Willis)\nSubject: Series 1, game 1; Kings 6 @ Flames 3\nReply-To: willis@empire.dnet.hac.com (Stan Willis)\nOrganization: none\nLines: 269\n\n1992-93 Los Angeles Kings notes and game reports.\n-------------------------------------------------\nKings 6 @ Calgary Flames 3 - 04/18/93\n\nThe third place Kings opened the 1993 Stanley Cup Playoffs in Calgary, against\nthe second place Flames and came out with an impressive 6-3 victory in front of\na non-sellout crowd of 18,605 at the Saddledome in Calgary.\n\nSymthe Division playoff hockey this was.  Both teams seemed a bit tense in the\nopening period though the Kings scored off the opening face-off.  The Kings got\ninto the flow of the game much earlier than the Flames as they played out-\nstanding team defense.  It took the Flames 9:45 of the first period to record\ntheir first shot on goal.  The Kings, ranked 16th of the 16 playoff teams on\npenalty killing, shut down the Flames.  The Flames went 0-8 on the power play \nand could record only 8 shot on goal in those 8 opportunities.  The Kings had\ntheir problems on the power play, yet they did manager to score 2 goals in 10\ntries.\n\nThe Kings forwards back-checked while the defense stood the Flames up at the\nblue line, allowing the Kings to take took the home ice advantage away from the \nFlames.  Rob Blake missed the game due to the lower back contusion but is ex-\npected to be in the lineup on Wednesday. Wayne Gretzky suffered a charlie horse\nin his right leg.  He took a few shifts in the second period before retiring to \nthe dressing room for the rest of the game.  Interviewed on the radio this \nmorning, he stated that he was fine and would be in the lineup on Wednesday.\n\n1st period: \n1-0. The Kings got things started right off the opening face-off.  Gretzky won\nthe draw with the puck going to Sydor.  He crossed center ice and slapped the\npuck into the Flames zone and behind the net.  The puck carried around to the\nfar side where Robitaille wacked at it and the rebound bounced to Sandstrom. He\nput the puck behind the Flames net where Gretzky picked it up.  Gretzky set up\nin 'his office', moved to the near side and passed into the near circle where\nSydor had moved in.  Sydor, who got the puck between the face-off dot and the \nhash mark, shot off the pass, beating Vernon low and between the legs.\n\nMillen and Fleury went off at 4:57.  Skrudland went off at 12:25 but the Kings\nfailed to convert.  Carson went off at 14:53 and the Flames failed to convert.\nDahlquist went off at 18:34 and Dahl went off at 19:30, giving the Kings a 30\nsecond 5on3 which they failed to convert.  The Kings recorded 2 goal posts in\nthe period.\n\n2nd period: \nThe Kings opened with a 5on3 carried over from the 1st period which they failed\nto convert on.  With 6 seconds left in the 5on4, Vernon put a bouncing puck into\nthe stands and received a delay of game.\n\n1-1. Calgary evened the score on the ensuing Kings power play.  Kurri, with the\npuck in the neutral zone, tried to put the puck into the Flames zone but it hit \nthe stick of Fleury and bounced to Suter at the Flames blue line.  Suter skated \ndown the near wing and into the Kings zone.  He faked a shot at the circle and\nskated around Kurri. As he cut thorugh the crease, he got Hrudey to go with him \nand he put the puck behind Hrudey, on his stick side for a short hander.\n\n2-1. The Kings reclaimed the lead 25 seconds later on the same power play.\nShuchuk, in the far circle passed to Sydor at the top of the slot and headed\nfor the net.  Sydors shot hit Shuchuk in the back and dropped into the low slot \nwhere 2 Kings (Shuchuk and Granato) were being checked by 3 Flames.  Carson\ncame from the far corner, picked up the loose puck and snapped a wrist shot\nbetween the legs of Vernon from 5 feet above the crease.\n\n3-1. The Kings widened their lead just 24 seconds later.  Rychel was checked off\nthe puck at the Flames blue line.  Taylor picked up the puck and sent a pass\ncross the slot to Huddy.  Huddy shot off the pass, from the near face-off dot,\nbeating a diving Vernon on the glove side.\n\n4-1. 2:59 later, the Kings had a 3 goal lead.  McSorley took a shot form the\nnear point that hit a Flame and deflected towards the boards.  Marty got his\nown rebound, skated to the bottom of the circle and sent a pass into the low\nslot that hit Dahlquist on the leg and deflected past the stick of Vernon.\n\nSkrudland went off at 10:53 but the Kings could not convert.  Sydor went off at\n12:35 and Watters went off at 14:40, giving the Flames a 5 second 5-3 but they\nfailed to convert.  McSorley went off at 17:19 and the Flames had 3 consecutive\npower plays but the Flames killed it themselves when Suter went off for high\nsticking at 17:31.  Sandstrom went off at 18:03 to close out the period.  The\nKings hit 3 goal post in the period.\n\n3rd period:\nThe Kings used the phrase \"Initiate, not retaliate\" and it was very evident here\nin the 3rd period as the Kings continued to pound the body and the Flames \ncontinued to take bad penalties to take themselves out of the game.\n\n5-1. The Kings extended their lead to 4 goals at the 1:06 mark.  The Kings shot\nthe puck into the near corner of the Flames zone.  Vernon went behind the net to\ncut off the puck but he could not control it.  Donnelly, who was behind him,\nwacked at the puck, sending it into the low slot.  As Vernon slid back in to the\ncrease, Granato got a shot that hit a Flame and bounced to the left of the net\nwhere Millen fired the rebound behind Vernon.\n\nSydor went off at 1:24; Nieuwendyk went off at 3:22 as the teams skated 4 on 4.\n\n5-2. Otto, skating down the far side, stepped around McSorley, cut to the net\nand passed to Dahlquist in the low slot.  Dahlquist cut through the top of the \ncrease and put the puck in under a diving Hrudey.\n\nCarson and Rychel came in on a 2-1.  When Carson passed across to Rychel, Fleury\ntripped Rychel with no call.  The puck got shoveled into the far corner where \nFleury knocked Rychel down and checked him from behind into the boards, drawing \na 5-minute major and a game misconduct at the 6:08 mark.  Unfortunately, the \nKings squandered the 5 minute power play when Granato (at 6:44) and Watters (at \n8:19) took penalties.  \n\n5-3. The Flames closed to within 2 at the 8:47 mark.  MacInnis, at the near \npoint, passed to Yawney at the far point.  He took a few strides towards the\nnet, wound up and drove a shot off the near post and in over the glove of\nHrudey.  The play started on another faceoff that the Kings lost.  Timeout - LA.\n\n6-3. MacInnis took a penalty at 9:56 and the Kings converted on the power play\nto seal the victory.  Sandstrom, skating down the far wing in the Flames zone \ncut towards the back of the net.  Just as he crossed the goal line, he passed \nthe puck into the low slot, on the far side, to Carson who shot off the pass, \nbeating Vernon on the ice, stick side.\n\nAt the 16:17 mark, Skrudland went off for slashing and Stern went crazy as he\nwent after Shuchuk.  Stern wound up with a double minor for roughing, a single\nminor for cross checking and a 10 minute misconduct, and he took the Flames\nright out of the game.\n\nOn the plus side:  The Kings, for the most part, played very disciplined hockey\nas they let Calgary retaliate.  The Kings played good team defense and excellent\npenalty killing.\n\nOn the minus side:  The Kings lost almost every face-off.  This must improve or\nthe Flames will surely get that power play back on track.\n\nNotes:\n------\nThe Kings recalled Guy Leveque, Brandy Semchuk and Jim Thomson from Phoenix.\n\nWayne Gretzkys 1st period assist was his 307th career playoff point.\n\nThe Kings entered the game 24th in the league in shots per game against, giving\nthe opposing team an average of 34.4 shots per game.\n\nFlames goaltender Mike Vernon entered the game with a 3-9-1 record in afternoon \ngames.  The Flames entered the game with a 34% success rate on the power play\nover their last 9 games.\n\nThe teams were 3-3-1 against each other in the regular season.\n\nPlayoffs:\nCampbell Conference:\nSmythe Division:\nLA  6  @ CAL 3 \t\tLA leads 1-0\nWIN    @ VAN\n\nNorris Division:\nSTL 4  @ CHI 3\t\tSTL leads 1-0\nTOR    @ DET\n\nWales Conference:\nAdams Division:\nBUF 5  @ BOS 4 (OT)\tBUF leads 1-0\nMON 2  @ QUE 3 (OT)\tQUE leads 1-0\n\nPatrick Division:\nNJ  3  @ PIT 6\t\tPIT leads 1-0\nNYI 1  @ WAS 3\t\tWAS leads 1-0\n\nRecords:\n--------\nvs\tSmythe\t Norris\t Patrck\tAdams\tOverall\n================================================\nHome:    0- 0-0  0-0-0   0-0-0  0-0-0    0- 0-0 \nRoad:    1- 0-0  0-0-0   0-0-0  0-0-0    1- 0-0\n==============================================================\nTotal:   1- 0-0  0-0-0   0-0-0\t0-0-0\t 1- 0-0  \n\nBox Score:\n=========================\nCalgary      0 1 2 - 3\nLos Angeles  1 3 2 - 6\n=========================\n\n1st period: \nLA  Sydor 1 (Gretzky, Sandstrom), 0:16\n    LA  Millen - high sticking, 4:57\n    CAL Fleury - high sticking, 4:57\n    CAL Skrudland - interference, 12:25\n    LA  Carson - tripping 14:53\n    CAL Dahlquist - holding stick, 18:34\n    CAL Dahl - roughing 19:30\n\n2nd period: \n    CAL Verson - delay of game (served by Ashton), 1:34\nCAL Suter 1 (Fleury), 2:48 (sh)\nLA  Carson 1 (Shuchuk, Sydor), 3:13 (pp)\nLA  Huddy 1 (Taylor, Rychel), 3:37\nLA  McSorley 1 (unassisted), 6:36\n    CAL Skrudland - elbowing, 10:53\n    LA  Sydor - tripping, 12:35\n    LA  Watters- hooking, 14:40\n    LA  McSorley - holding, 17:19\n    CAL Suter - high sticking, 17:31\n    LA  Sandstrom - hooking, 18:03\n\n3rd period:\nLA  Millen 1 (Granato, Donnelly), 1:06\n    LA Sydor - hooking, 1:24\n    CAL Nieuwendyk - tripping, 3:22\nCAL Dahlquist 1 (Otto), 4:23\n    CAL Fleury - major (boarding), game misconduct, 6:08\n    LA  Granato - tripping, 6:44\n    LA  Watters - interference, 8:19\nCAL Yawney 1 (MacInnis, Reichel), 8:47\n    CAL MacInnis - roughing, 9:56\nLA  Carson 2 (Sandstrom, Robitaille), 10:32 (pp)\n    LA  Hardy - holding, 11:38\n    CAL Skrudland - slashing, 16:17\n    CAL Stern - double roughing, cross-checking, 10 min. misconduct, 16:17\n\nOvertime: none\n\nShots:\n------\nLos Angeles   8  9 14 - 31\nCalgary       5  8 11 - 24\n\nPower play conversions:\n-----------------------\nFor:      2 of 10; for the year:  2 of  10,  20.00%\nAgainst:  0 of  8; for the year:  8 of   8, 100.00%\n\nGoalies:\n--------\nLos Angeles - Hrudey (1-0-0)\nCalgary - Vernon (0-1-0)\n\nAttendance: 18,605\n\nScratches:\n----------\nRob Blake - back contusion\nGuy Leveque - numbers\nLonnie Loach - numbers\nMarc Potvin - numbers\nBrandy Semchuk - numbers\nRobb Stauber - numbers\nBrent Thompson - numbers\nJim Thomson - numbers\n\nLines - Forwards:\n----------------\n*Robitaille - Gretzky - Sandstrom \nDonnelly - Millen - Kurri\nRychel - Conacher - Taylor\nGranato - Carson - Shuchuk\n\nLines - Defense:\n----------------\n*Huddy - Sydor\nWatters - Zhitnik\nHardy - McSorley\n\n* denotes starting lineup\n\nNext game:\n----------\nWednesday, April 21 @ Calgary Flames; 6:30pm Pacific Time on Prime Ticket\n===============================================================================\nStan Willis (willis@empire.dnet.hac.com)\nnet contact: L.A. Kings\n\n >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n      talk with the L.A. Kings Mailing List ...... kings@cs.stanford.edu\n      to subscribe or unsubscribe: ....... kings-request@cs.stanford.edu\n <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n================================================================================\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10789, "properties": {"category": "talk.politics.guns", "text": "From: popovich@cs.columbia.edu (Steve Popovich)\nSubject: Re: Change of name ??\nIn-Reply-To: gs26@prism.gatech.EDU's message of 20 Apr 93 17:46:10 GMT\nOrganization: Columbia University\nLines: 11\n\n>What does this <censored> from NORWAY think he's doing telling us\n>how to run the place?  I wanna know... somebody please 'splain.\n>\n>Guess how NORWAY survived the Third Reich?  Give you a hint,\n>it wasn't by passive resistance the way the Danes did it....\n\nI believe it had something to do with a politician whose name isn't\nexactly the most complimentary word nowadays...one Vidkun Quisling.\nWe all know what a quisling is, right?  I'm sure everyone can come up\nwith a few examples right about now :->.\n\t-Steve\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10790, "properties": {"category": "rec.sport.baseball", "text": "From: tedward@cs.cornell.edu (Edward [Ted] Fischer)\nSubject: Re: Notes on Jays vs. Indians Series\nOrganization: Cornell Univ. CS Dept, Ithaca NY 14853\nDistribution: na\nLines: 21\n\nIn article <1993Apr15.212014.1782@news.acns.nwu.edu> edo@casbah.acns.nwu.edu (Edward Ouellette) writes:\n>\n>My point? RBI might not be a perfect stat but nothing is. And no stat (or lack\n>of) can tell me there are no clutch hitters. Maybe no stat CAN tell me,\n>either, but some people are... I just know it!!! 8)\n\nI was *hoping* somebody would mention clutch.  Clutch?  Baerga?  The\ntwo words simply do not go together.  With runners in scoring\nposition, Baerga batted .308/.366/.418 last year.  This doesn't quite\n*suck*, but most batters hit *better* in this situation.\n\nAlomar?  He hit .354/.439/.517 with runners in scoring position!\n\nThe difference?  Alomar had 68 RBIs in 147 such AB.  Baerga had 81\nRBIs in 182 such AB.  Baerga got 25% more chances, yet succeeded only\n20% more times.\n\nFrankly, I don't believe in clutch.  But if I did, my vote would\ngo to Alomar for MVP (let alone \"best 2B in the AL\").\n\n-Valentine\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10791, "properties": {"category": "rec.sport.hockey", "text": "From: r_turgeo@oz.plymouth.edu (Randy S. Turgeon)\nSubject: Re: Thumbs up to ESPN\nKeywords: ESPN, Detroit, Toronto, Hockey Coverage\nOrganization: Plymouth State College - Plymouth, NH.\nLines: 29\n\nIn article <1993Apr20.032017.5783@wuecl.wustl.edu> jca2@cec1.wustl.edu (Joseph Charles Achkar) writes:\n>\n> It was nice to see ESPN show game 1 between the Wings and Leafs since\n>the Cubs and Astros got rained out. Instead of showing another baseball\n>game, they decided on the Stanley Cup Playoffs. A classy move by ESPN.\n>\n\n\nThe only reason ESPN showed that hockey came was because there was no\nother baseball game scheduled for the evening.\n\nRandy\nr_turgeo@oz.plymouth.edu\n\n\n\n>\n>  %*%*%*%**%*%%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*\n>  *   __  ______________         ____________________________________    % \n>  %   \\ \\_)____________/         A L L E Z   L E S   B L U E S  ! ! !    * \n>  *    \\    __________/          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    % \n>  %     \\    ________/                                                   *\n>  *      \\   _______/                  Joe Ashkar                        % \n>  %       \\  \\                         Contact for the Blues             *\n>  *        \\  \\  SAINT LOUIS           jca2@cec1.wustl.edu               % \n>  %        (___)             BLUES                                       * \n>  *%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*% \n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.507+0000", "event": "documents", "entityId": 10792, "properties": {"category": "alt.atheism", "text": "From: dpw@sei.cmu.edu (David Wood)\nSubject: Re: Gospel Dating\nIn-Reply-To: mangoe@cs.umd.edu's message of 4 Apr 93 10:56:03 GMT\nOrganization: Software Engineering Institute\nLines: 33\n\n\n\nmangoe@cs.umd.edu (Charley Wingate) writes:\n\n>>David Wood writes:\n>>\n>>    \"Extraordinary claims require extraordinary evidence.\"\n>\n>More seriously, this is just a high-falutin' way of saying \"I don't believe\n>what you're saying\".\n\nAre you making a meta-argument here?  In any case, you are wrong.  \nThink of those invisible pink unicorns.\n\n>Also, the existence if Jesus is not an extradinary claim.  \n\nI was responding to the \"historical accuracy... of Biblical claims\",\nof which the existence of Jesus is only one, and one that was not even\nmentioned in my post.\n\n>You may want to\n>complain that the miracles attributed to him do constitute such claims (and\n>I won't argue otherwise), but that is a different issue.\n\nWrong.  That was exactly the issue.  Go back and read the context\nincluded within my post, and you'll see what I mean.\n\nNow that I've done you the kindness of responding to your questions,\nplease do the same for me.  Answer the Charley Challenges.  Your claim\nthat they are of the \"did not!/ did so!\" variety is a dishonest dodge\nthat I feel certain fools only one person.\n\n--Dave Wood\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.508+0000", "event": "documents", "entityId": 10793, "properties": {"category": "comp.windows.x", "text": "From: dan@tremor.think.com (Dan Aronson)\nSubject: drawing an abstract graph\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 9\nDistribution: comp\nNNTP-Posting-Host: tremor.quake.think.com\n\n\nI am looking for software to draw a graph.  I want to just give it a list\nof nodes and edges between the nodes and have the program come up with some\nreasonable positioning of it.  \n\nThanks in advance.\n\n--Dan Aronson\tdan@think.com\nThinking Machines Corporation\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.508+0000", "event": "documents", "entityId": 10794, "properties": {"category": "rec.autos", "text": "From: rdb1@cbnewsj.cb.att.com (ronald.j.deblock..jr)\nSubject: Re: Ultimate AWD vehicles\nOrganization: AT&T\nDistribution: usa\nLines: 14\n\nIn article <20726.2bcd8b62@ecs.umass.edu> sylveste@ecs.umass.edu writes:\n>Before the S4 became the S4 it was called the 200 turbo quattro 20v.\n>This model did come in a wagon, a very quick wagon.  Very rare also.\n>\n>                                                   Mike Sylvester  Umass\n>\n\nYes, I saw a 200 Turbo Quattro wagon on I-287 in NJ on Monday.  I thought\nAudi stopped selling wagons in the US after the 5000.  This is exactly the\ntype of vehicle I would like to own.  I bet its price is 4-5 times my\ncar budget.\n-- \nRon DeBlock  rdb1@homxb.att.com  (that's a number 1 in rdb1, not letter l)\nAT&T Bell Labs   Somerset, NJ  USA\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.508+0000", "event": "documents", "entityId": 10795, "properties": {"category": "talk.politics.mideast", "text": "From: friedenb@silver.egr.msu.edu (Gedaliah Friedenberg)\nSubject: Jewish Committee on the Middle East (JCOME)\nOrganization: College of Engineering, Michigan State University\nLines: 34\nDistribution: world\nReply-To: friedenb@silver.egr.msu.edu (Gedaliah Friedenberg)\nNNTP-Posting-Host: silver.egr.msu.edu\n\nI flipped on my local Cable Access Channel (a channel where any\ncommunity member can broadcast whatever they want for about $50\nper half hour) and saw a \"documentary\" (I use this term loosely)\non the conflict in the West Bank.\n\nIt was apparently made with a hand held camcorder (the quality was\nterrible, and the camera was really jumpy).  The documentary (sic)\ntold the tales of all of the children who died in the \"war\" against\nthe Jews as martyrs.  \n\nIt was a regular sob story.  One \"victimized youth\" was recounting\non how all he \"really\" wants to do is to get an education and that\nthe big bad Jews won't let him go to high school.  He admittedly \nspent 4 years in prison (age 13 to 17) for murdering a Jewish woman\nbut claims that it was \"for the cause.\"\n\nI have seen this kind of garbage before.  I have a lot of sympathy for\nthe Palestinian cause (as do many Jews), but I think that even many\nArabs would be ashamed to call this a documentary!\n\nThe most suprising part is that the only credits shown at the end\nwas an address for the makers of the film named JEWISH COMM. ON\nTHE MIDDLE EAST.\n\nAnybody heard of them?  They make Peace Now look like right-wingers.\n\n\nGedaliah Friedenberg\n-=-Department of Mechanical Engineering\n-=-Department of Metallurgy, Mechanics and Materials Science\n-=-Michigan State University\n\n\n                   \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.508+0000", "event": "documents", "entityId": 10796, "properties": {"category": "sci.crypt", "text": "From: caronni@nessie.cs.id.ethz.ch (Germano Caronni)\nSubject: Re: Fifth Amendment and Passwords\nOrganization: Swiss Federal Institute of Technology (ETH), Zurich, CH\nLines: 28\n\nIn article <1qv83m$5i2@geraldo.cc.utexas.edu> mccoy@ccwf.cc.utexas.edu (Jim McCoy) writes:\n>\tI set up a bbs that uses public-key encryption and encryption of\n>\tfiles on disk.  The general setup is designed so that when users \n>\tconnect they send a private key encrypted using the system public\n>\tkey and the user's public-private keypair is used to wrap the\n>\tone-time session keys used for encrypting the files on disk.  The\n>\tresult of this is that even if I reveal the system private key it\n>\tis impossible for anyone to gain access to the files stored on the\n>\tmachine.  What is possible is for someone to use the revealed\n>\tsystem private key to entice users into revealing thier personal\n>\tprivate keys during the authentication sequence.\n>\n>Any answers or general musings on the subject would be appreciated...\n>\n\nJust a question. \nAs a provider of a public BBS service - aren't you bound by law to gurantee\nintelligble access to the data of the users on the BBS, if police comes\nwith sufficent authorisation ? I guessed this would be  a basic condition\nfor such systems. (I did run a bbs some time ago, but that was in Switzerland)\n\nFriendly greetings,\n\tGermano Caronni\n-- \nInstruments register only through things they're designed to register.\nSpace still contains infinite unknowns.\n                                                              PGP-Key-ID:341027\nGermano Caronni caronni@nessie.cs.id.ethz.ch   FD560CCF586F3DA747EA3C94DD01720F\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.508+0000", "event": "documents", "entityId": 10797, "properties": {"category": "talk.politics.guns", "text": "From: viking@iastate.edu (Dan Sorenson)\nSubject: Re: The Right To Keep And Bear Arms (was: Re: Who's next?...)\nOrganization: Iowa State University, Ames IA\nLines: 28\n\nmikey@ccwf.cc.utexas.edu (Strider) writes:\n\n>st922957@pip.cc.brandeis.edu writes:\n\n>:Just because someting was good once, does not mean it will be forever.\n\n>Yes, gone are the days when you can leave your house unlocked at night.\n>Well, it couldn't last forever.\n\n\tFor the record, it wasn't until I came to college (excluding\nthe times I went to Omaha or Council Bluffs for something) that I\never removed the keys from the ignition of my car!  Come to think of\nit, it was only after I moved to Ames, Ia (pop 45K) that I ever took\nto locking my doors at night.\n\n\tI've discovered that $50K/year isn't worth living in fear\nall day.  I might just move back to the farm.\n\n\tThis weekend is Veishea.  You know, when ISU students riot\nfor no apparent reason.  This year, we've the Farm Aid concert\nto add to the festivities.  Anybody bet me there's another riot?\nRemember, Iowa law has three guys talking loud defined as a riot.\nStay tuned for an on-the-scene report this weekend.\n\n< Dan Sorenson, DoD #1066 z1dan@exnet.iastate.edu viking@iastate.edu >\n<  ISU only censors what I read, not what I say.  Don't blame them.  >\n<     USENET: Post to exotic, distant machines.  Meet exciting,      >\n<                 unusual people.  And flame them.                   >\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.508+0000", "event": "documents", "entityId": 10798, "properties": {"category": "rec.autos", "text": "From: mani@raunvis.hi.is (M'ani Thorsteinsson)\nSubject: Lois Chevrolet?\nDistribution: rec\nLines: 7\nNntp-Posting-Host: raunvis.hi.is\n\n\n        I was whatching The History Of The Indy 500 the other day,\nand early in the film, around the '10-'20's, a name, Lois Chevrolet,\ncame out of the blue. I wanted to know if he is THE Chevrolet founder\nor mearly a driver who's name was called the same as the other guy's?:^)\n\n                                                KONI.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.508+0000", "event": "documents", "entityId": 10799, "properties": {"category": "talk.politics.misc", "text": "From: carlos@beowulf.Jpl.Nasa.Gov (Carlos Carrion)\nSubject: Re: The Role of the National News Media in Inflaming Passions\nOrganization: Jet Propulsion Laboratory, Pasadena, CA\nLines: 20\nDistribution: ca\nNNTP-Posting-Host: beowulf.jpl.nasa.gov\n\nIn article <1993Apr15.162552.5510@gordian.com> mike@gordian.com (Michael A. Thomas) writes:\n>In article <1qjtmjINNq45@elroy.jpl.nasa.gov>, carlos@beowulf.Jpl.Nasa.Gov (Carlos Carrion) writes:\n>> \tI have come to the conclusion that the TV stations here in LA\n>> \tWANT a riot to happen when the verdict comes in.\n>\n>   Why is this surprising? Then the _Times_ can get a few more\n>Pulitzers the same way they did last year.\n\n\tI suppose ALL media want something to happen, otherwise what would\n\tthey report: that's their job. (duhhh to me!)\n\n\tBut it's not so much surprising that they want a riot as it is amazing\n\thow they carry that desire across in not so subtle ways (at least to\n\tme...)\n\ncarlos.\n\n\"I as much as any other man am in favor of having the superior position\n assigned to the white race\" - Abraham Lincoln\n      ...ames!elroy!jpl-devvax!{beowulf|pituco}!carlos\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10800, "properties": {"category": "comp.windows.x", "text": "From: jh@cadre.com (Joe Hartley)\nSubject: Re: X on Amiga 4000?\nArticle-I.D.: fripp.1993Apr23.195024.24932\nReply-To: jh@cadre.com\nOrganization: Cadre Technologies, Inc.\nLines: 28\nNntp-Posting-Host: xtc\n\nIn article 8yD@ie.utoronto.ca, garym@ie.utoronto.ca (Gary Murphy) writes:\n>I'm new to the hardware and with a mandate to port some X-based\n>stereo-video software --- does anyone know of or have experience with\n>X on Amiga machines?  If I can retain the X event handling, it would\n>ease my plight considerably, and if I can keep all the Motif bits, so\n>much the better!\n>\n\nThere is X for the Amiga, but it'll cost you.  GfxBase Inc., owned by\nDale Luck, one of the original Amiga architects, sells X for the Amiga.\nThere are many options available, including Motif.  Call 'em and get the\nscoop.\n\nGfxBase Inc.\n1881 Ellwell Drive      Phone: 408-262-1469\nMilpitas, CA 95035        Fax: 408-262-8276\n\nI've got no connection with them, other than being a satisfied customer.\n\n\n---\n===============================================================================\nJoe Hartley          | jh@cadre.com  -  Whenever you find that you are on the\nCadre Technologies   | side of the majority, it is time to reform. - M. Twain\n222 Richmond St.     | --------------------------------------------------------\nProvidence, RI 02903 | Overman 1st Class - the Kilgore Trout Memorial Clench\n(401) 351-5950 x266  |            of the Church of the SubGenius  \n===============================================================================\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10801, "properties": {"category": "sci.electronics", "text": "From: bill@xpresso.UUCP (Bill Vance)\nSubject: Re: help - how to construct home-built battery for 3rd grade sci report\nDistribution: usa\nOrganization: (N.) To be organized.  But that's not important right now.....\nLines: 32\nX-Newsreader: TIN [version 1.1 PL9]\n\nDean Anneser (anneser@pwa-b.uucp) wrote:\n: My 9 yr old son has signed up to do a science report on batteries.  I was\n: wondering if anyone could provide me with some information as to how to\n: construct a home-built battery.  In my grade school days, I remember seeing\n: the 'ice cube tray' version, but I don't remember what to use as a good\n: electrolyte or what the easily obtainable metals were.  \n\n: Thank you in advance.\n\n: Dean W. Anneser                  Pratt & Whitney Aircraft     \n: Computer System Specialist       m.s. 161-05                       \\__ -\\  \n: (203)565-9372 (desk) 5016 (fax)  400 Main St.               Ooo.. (_)-V/( )\n: Uucp:     uunet!pwa-b!anneser    East Hartford, CT  06108    Live to Ride\n: Internet: anneser@pwfire.pweh.utc.com\n: \"One test result is worth one thousand expert opinions\" -- Wernher Von Braun \n: -- \n: Dean W. Anneser                  Pratt & Whitney Aircraft     \n: Computer System Specialist       m.s. 161-05                       \\__ -\\  \n: (203)565-9372 (desk) 5016 (fax)  400 Main St.               Ooo.. (_)-V/( )\n: Uucp:     uunet!pwa-b!anneser    East Hartford, CT  06108    Live to Ride\n\n--\n\nThe simplest one is easy.  Take a lemon or other citrus type fruit, and\nstick a pair of metal strips into it for the contacts.  The two strips must\nbe of disimelar metals like copper and zinc.  Then connect a voltmeter to\nthe contacts and read the voltage.\n\nbill@xpresso.UUCP                   (Bill Vance),             Bothell, WA\nrwing!xpresso!bill\n\nYou listen when I xpresso, I listen When uuxpresso.......:-)\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10802, "properties": {"category": "talk.politics.misc", "text": "From: garrett@Ingres.COM\nSubject: Re: Return of the Know Nothing Party\nSummary: The right to know nothing\nNews-Software: VAX/VMS VNEWS 1.4-b1  \nKeywords: \nOrganization: ASK Computer Systems, Ingres Product Division\nLines: 32\n\nIn article <C5JLq3.2BL@wetware.com>, drieux@wetware.com                               writes...\n>In article 23791@organpipe.uug.arizona.edu, ece_0028@bigdog.engr.arizona.edu (David Anderson) writes:\n>>In article <C56HDM.945@wetware.com> drieux@wetware.com (drieux, just drieux) writes:\n>>>But I guess one needs to know a little about the bible,\n>>>christianity and american history.....\n>>\n>>Mt. St. Helens didn't spew such crap.  How do you manage,\n>>drieux, day in & day out, to keep it up??\n> \n>So which are you advocating?\n>That You know Nothing About American History, \n>Or that You Know Nothing About the Bible?\n> \n>Is this a Restoration of the \"Know Nothing\" Party?\n> \nGo easy on him drieux. It is the right of every American to\nknow nothing about anything. \n\n>ciao\n>drieux\n\n>\"All Hands to the Big Sea of COMedy!\n>All Hands to the Big Sea of COMedy!\"\n>\t\t-Last Call of the Wild of the Humour Lemmings\n> \n\n------------------------------------------------------------------------------\n\"Who said anything about panicking?\" snapped Authur.           Garrett Johnson\n\"This is still just culture shock. You wait till I've       Garrett@Ingres.com\nsettled into the situation and found my bearings.\nTHEN I'll start panicking!\" - Douglas Adams  \n------------------------------------------------------------------------------\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10803, "properties": {"category": "talk.politics.guns", "text": "From: jmd@cube.handheld.com (Jim De Arras)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: Hand Held Products, Inc.\nLines: 38\nDistribution: world\nNNTP-Posting-Host: dale.handheld.com\n\nIn article <C5sv88.HJy@news.cso.uiuc.edu> irvine@uxh.cso.uiuc.edu (Brent  \nIrvine) writes:\n> In article <1r1j3n$4t@transfer.stratus.com> cdt@sw.stratus.com (C. D.  \nTavares) writes:\n> >In article <1r19tp$5em@bigboote.WPI.EDU>, mfrhein@wpi.WPI.EDU (Michael  \nFrederick Rhein) writes:\n> >\n> >> >napalm, then let the wood stove inside ignite it.\n> >>                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n> >> As someone else has pointed out, why would the stove be in use on a warm  \nday  \n> >> in Texas. \n> >\n> >Do YOU eat all your food cold?\n> \n> Ever hear of electric ovens or microwaves?  Very popular.\n> Electric stoves outside metro-areas especially.\n\nBrent shows his ignorance once again.  Power had been cut for weeks.  And he's  \nnever lived in a rural area if he thinks electric stoves have favor there.   \nThey stop working when the power fails, and power restoration come MUCH slower  \nin the country, than the city.  LP gas stoves and ovens are very much prefered.  \n> \n> -- \n> <><><><><><><><><><> Personal opinions? Why,  <><><><><><><><><><><><><><><>\n> <>  BRENT IRVINE  <> yes.  What did you think <> irvine@uxh.cso.uiuc.edu  <>\n> <><><><><><><><><><> they were?.......        <><><><><><><><><><><><><><><>\n\nJim\n\n--\njmd@handheld.com\n-------------------------------------------------------------------------------\n\"I'm always rethinking that.  There's never been a day when I haven't rethought  \nthat.  But I can't do that by myself.\"  Bill Clinton  6 April 93\n\"If I were an American, as I am an Englishman, while a foreign troop was landed  \nin my country, I never would lay down my arms,-never--never--never!\"\nWILLIAM PITT, EARL OF CHATHAM 1708-1778 18 Nov. 1777\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10804, "properties": {"category": "talk.politics.guns", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jason Kratz <U28037@uicvm.uic.edu>\nSubject: Re: What to do if you shoot somebody\n <VEAL.744.735151266@utkvm1.utk.edu>\nLines: 43\n\nIn article <VEAL.744.735151266@utkvm1.utk.edu>, VEAL@utkvm1.utk.edu (David Veal)\nsays:\n>\n>In article <93108.025818U28037@uicvm.uic.edu> Jason Kratz                     >\n><U28037@uicvm.uic.edu\n>\n>>I have heard many opinions on this subject and would like to hear more from\n>>the people on the net.\n>>\n>>Say you're in a situation where you have to pull a gun on somebody.  You\n>>give them a chance to get away but they decided to continue in their\n>>action anyway and you end up shooting and killing them.  My question is\n>>what do you do?  Should you stay and wait for the cops or should you\n>>collect your brass (if you're using a semi-auto) and get out of there\n>>(provided of course you don't think that you have been seen)?\n>\n>       As a data point from Tennessee, a friend of mine and a police\n>officer essentially recommends that if you can, fade away.  Even if\n>you were perfectly justified you're likely in for a great deal of\n>hassle.  (A side note, carrying a gun concealed is a misdemeanor.)\n>\nThis is exactly what I have heard before.  If you were to fade away and\nnobody saw you what kind of evidence would they be able to get to catch you\n(this is assuming that you either collected your brass or had a revolver)?\n\n>>What kind\n>>of laws are on the books regarding this type of situation?  What would\n>>be the most likely thing to happen to you if you stayed and waited and\n>>it was a first offense?  What would happen if you took off but someone\n>>saw you and you were caught?\n>\n>       It's one of those \"by State\" things, pretty much.\n\nGuess it's time to take a trip to the library and look at the Illinois statutes\nagain :-)  Just for the record folks I'm just asking this because I'm curious.\nI'm just trying to find out from people who have read more on stuff like this.\n\n>David Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\n>PA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\n>your pushed me down the elevator shaft;  I'm beginning to think you don't\n>love me anymore.\" - \"Weird Al\"\n\nJason - u28037@uicvm.cc.uic.edu\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10805, "properties": {"category": "sci.med", "text": "From: bill@scorch.apana.org.au (Bill Dowding)\nSubject: Re: Krillean Photography\nOrganization: Craggenmoore public Unix system , Newcastle , Oz\nLines: 15\n\ntodamhyp@charles.unlv.edu (Brian M. Huey) writes:\n\n>I think that's the correct spelling..\n>\tI am looking for any information/supplies that will allow\n>do-it-yourselfers to take Krillean Pictures. I'm thinking\n>that education suppliers for schools might have a appartus for\n>sale, but I don't know any of the companies. Any info is greatly\n>appreciated.\n\nKrillean photography involves taking pictures of minute decapods resident in \nthe seas surrounding the antarctic. Or pictures taken by them, perhaps.\n\nBill from oz\n\n\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10806, "properties": {"category": "rec.sport.baseball", "text": "From: boone@psc.edu (Jon Boone)\nSubject: Re: Why Spanky?\nOrganization: Pittsburgh Supercomputing Center, Pittsburgh PA, USA\nLines: 27\nNNTP-Posting-Host: postoffice1.psc.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nOn Mon, 12 Apr 93 00:53:14 GMT in <<1993Apr12.005314.5700@mnemosyne.cs.du.edu>> Greg Spira (gspira@nyx.cs.du.edu) wrote:\n\n:>Does anybody in the Pittsburgh area know why Mike LaValliere was released?\n:>Last year I kept saying that Slaught should get the bulk of the playing time,\n:>that he was clearly the better player at this point, but Leyland insisted on\n:>keeping a pretty strict platoon.  And now he is released?  That doesn't\n:>make any sense to me.\n\nGreg,\n\n    The story goes like this:\n\n       Spanky is too slow!  If he were quicker, he would still be here.\nBut with Slaught and Tom Prince, they didn't want to lose Prince in order\nto bring up that 11th pitcher.  Slaught is about as good as Spanky and\nPrince is coming along nicely!\n\n      Don't feel too bad for him.  He's still gonna get theat $4,000,000\nover the next two years -- he'll be able to do most of what he wants to\ndo.\n\n--\n/*****************************************************************************/\n/* Jon `Iain` Boone   Network Systems Administrator     boone@psc.edu        */\n/* iain+@cmu.edu      Pittsburgh Supercomputing Center  (412) 268-6959       */\n/* I don't speak for anyone other than myself, unless otherwise stated!!!!!! */\n/*****************************************************************************/\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10807, "properties": {"category": "misc.forsale", "text": "From: bwee@midway.ecn.uoknor.edu (Boon-khim Wee)\nSubject: Looking for Battletech Games on PC\nDistribution: y\nNntp-Posting-Host: midway.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nKeywords: btech\nLines: 9\n\n\t\n\tI am interested in both the battletech games for the ibm pc.\n\nI will be grateful to anymore with information. Please email me if you\n\nwould like to do my transaction. Thank you.!\n\n\n    \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10808, "properties": {"category": "rec.motorcycles", "text": "From: harmons@.WV.TEK.COM (Harmon Sommer)\nSubject: Re: Countersteering_FAQ please post\nLines: 15\n\nSender: \nReply-To: harmons@gyro.WV.TEK.COM (Harmon Sommer)\nDistribution: \nOrganization: /usr/ens/etc/organization\nKeywords: \n\n\n>Hey Ed, how do you explain the fact that you pull on a horse's reins\n>left to go left?  :-)  Or am I confusing two threads here?\n\nUnless they have been taught to \"neck rein\". Then the left rein is brought\nto bear on the left side of horse's neck to go right.\n\nEquestrian counter steering?\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.509+0000", "event": "documents", "entityId": 10809, "properties": {"category": "sci.space", "text": "From: daviss@sweetpea.jsc.nasa.gov (S.F. Davis)\nSubject: Re: Conference on Manned Lunar Exploration.  May 7  Crystal City\nOrganization: NSPC\nDistribution: na\nLines: 107\n\nIn article <1quule$5re@access.digex.net>, prb@access.digex.com (Pat) writes:\n|> \n|> AW&ST  had a brief blurb on a Manned Lunar Exploration confernce\n|> May 7th  at Crystal City Virginia, under the auspices of AIAA.\n|> \n|> Does anyone know more about this?  How much, to attend????\n|> \n|> Anyone want to go?\n|> \n|> pat\n\nHere are some selected excerpts of the invitation/registration form they\nsent me. Retyped without permission, all typo's are mine.\n\n---------------------------------------------------------------------\nLow-Cost Lunar Access: A one-day conference to explore the means and \nbenefits of a rejuvenated human lunar program.\n\nFriday, May 7, 1993\nHyatt Regency - Crystal City Hotel\nArlington, VA\n\nABOUT THE CONFERENCE\nThe Low-Cost Lunar Access conference will be a forum for the exchange of\nideas on how to initiate and structure an affordable human lunar program.\nInherent in such low-cost programs is the principle that they be \nimplemented rapidly and meet their objectives within a short time\nframe.\n\n[more deleted]\n\nCONFERENCE PROGRAM (Preliminary)\n\nIn the Washington Room:\n\n  9:00 - 9:10 a.m.     Opening Remarks\n    Dr. Alan M. Lovelace\n\n  9:10 - 9:30 a.m.     Keynote Address\n    Mr. Brian Dailey\n\n  9:30 - 10:00 a.m.    U.S. Policy Outlook\n    John Pike, American Federation of Scientists\n\n  A discussion of the prospects for the introduction of a new low-cost\n  lunar initiative in view of the uncertain direction the space\n  program is taking.\n\n  10:00 - 12:00 noon   Morning Plenary Sessions\n\n  Presentations on architectures, systems, and operational concepts.\n  Emphasis will be on mission approaches that produce significant\n  advancements beyond Apollo yet are judged to be affordable in the\n  present era of severely constrained budgets\n\n\nIn the Potomac Room\n\n  12:00 - 1:30 p.m.    Lunch\n    Guest Speaker: Mr. John W. Young,\n    NASA Special Assistant and former astronaut\n\nIn the Washington Room\n\n  1:30 - 2:00 p.m.     International Policy Outlook\n    Ian Pryke (invited)\n    ESA, Washington Office\n\n  The prevailing situation with respect to international space \n  commitments, with insights into preconditions for European \n  entry into new agreements, as would be required for a cooperative\n  lunar program.\n\n  2:00 - 3:30 p.m.     Afternoon Plenary Sessions\n\n  Presentations on scientific objectives, benefits, and applications.\n  Emphasis will be placed on the scientific and technological value\n  of a lunar program and its timeliness.\n\n\n---------------------------------------------------------------------\n\nThere is a registration form and the fee is US$75.00. The mail address\nis \n\n     American Institute of Aeronautics and Astronautics\n     Dept. No. 0018\n     Washington, DC 20073-0018\n\nand the FAX No. is: \n\n     (202) 646-7508\n\nor it says you can register on-site during the AIAA annual meeting \nand on Friday morning, May 7, from 7:30-10:30\n\n\nSounds interesting. Too bad I can't go.\n\n|--------------------------------- ******** -------------------------|\n|                                 * _!!!!_ *                         |\n| Steven Davis                   * /  \\   \\ *                        |\n| daviss@sweetpea.jsc.nasa.gov  *  (<o><o>)  *                       |  \n|                               *  \\>_db_</  *  McDonnell Douglas    |\n|  - I don't represent           *   |vv|   *   Space Systems Company| \n|    anybody but myself. -        *  (__)  *    Houston Division     |\n|--------------------------------- ******** -------------------------|\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10810, "properties": {"category": "rec.autos", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: Changing oil by self.rist, another dealer service scam...\nOrganization: Megatest Corporation\nLines: 25\n\nIn article <1qk5m9$pbe@news.ysu.edu> ak296@yfn.ysu.edu (John R. Daker) writes:\n>>\n>>I was worried about someone stealing my oil once also. I finally \n>>decided to just have my drain plug welded shut. It works great !\n>>I figure that when I add three or four quarts when the oil light\n>>comes on every month or so that it's just as good or better than\n>>the old wives tale of changing the oil AND filter every 3000 miles.\n>>Works for me, I must say. \n>>\n>\n>I did the same thing to my drain plug for the same reasons.  I was wondering\n>how you filled your crankcase though as I welded my hood shut also out of fear\n>that somebody might steal my air-filter.\n\nOh come on, Silly, all you have to do is cut a hole in your hood and \nput a tube there so you can get to the oil fill hole.  What do you\nthink all those big air intake things are for on those hot-rod cars?\nThey're just for looks only...little does anyone know, they provide\naccess to the oil-fill hole.\n\nWell, over where we live, we have problems with vandals stealing \npeople's wheels.  Those locking nuts didn't stop them.  So to be\nsafe and sure, I welded the lug nuts to my wheels together.  It\nworks, serious!  I haven't had my wheels stolen yet!\n.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10811, "properties": {"category": "comp.windows.x", "text": "From: thor@surt.ATd.ucar.EDU (Richard E. Neitzel)\nSubject: xcursor4.1\nOrganization: National Center for Atmospheric Research\nLines: 9\nTo: xannounce@expo.lcs.mit.edu\n\nXcursor version 4.1 is now on export as xcursor4.1.tar.Z. I've added \na new option to determine if a requested cursor size is OK. Of course,\nyour server may lie!\n\n-- \nRichard Neitzel thor@thor.atd.ucar.edu          Torren med sitt skjegg\nNational Center For Atmospheric Research        lokkar borni under sole-vegg\nBox 3000 Boulder, CO 80307-3000\t                Gjo'i med sitt shinn\n303-497-2057                                    jagar borni inn.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10812, "properties": {"category": "alt.atheism", "text": "From: acooper@mac.cc.macalstr.edu\nSubject: Re: thoughts on christians\nOrganization: Macalester College\nLines: 94\n\nIn article <1993Apr15.050750.3893@nuscc.nus.sg>, cmtan@iss.nus.sg (Tan Chade Meng - dan) writes:\n> sandvik@newton.apple.com (Kent Sandvik) writes:\n> : In article <1q338l$cva@uxa.ecn.bgu.edu>, gsu0033@uxa.ecn.bgu.edu (Eric\n> : Molas) wrote:\n> : > Christianity is an infectious cult.  The reasons it flourishes are \n> : > because 1) it gives people without hope or driven purpose in life\n> : > a safety blanked to hide behind.  \"Oh wow..all i have to do is \n> : > follow this christian moral standard and I get eternal happiness.\"\n> : \n> : I agree that in many cases primitive emotional feelings based on\n> : 'haha, you won't laugh in hell' mentalities makes certain religions\n> : very attractive for certain personalities.\n> \n> I agree with both of u, but I would like to make a small point.  Xtianity, &\n> other dogmatic religions, not only attract people without hope etc but\n> also attract \"average\" people as well.  I believe that Xtainity, thru\n> its escapist doctrines & absolutist attitudes, provides great psychological \n> shelter from day-to-day frustrations, unhappiness & fear of uncertainty \n> & unknown etc.\n>\n\nThis is a good point, but I think \"average\" people do not take up Christianity\nso much out of fear or escapism, but, quite simply, as a way to improve their\nsocial life, or to get more involved with American culture, if they are kids of\nimmigrants for example.  Since it is the overwhelming major religion in the\nWestern World (in some form or other), it is simply the choice people take if\nthey are bored and want to do something new with their lives, but not somethong\nTOO new, or TOO out of the ordinary.  Seems a little weak, but as long as it\ndoesn't hurt anybody...\n \n> The Buddha had something to say about the attractiveness of religions:\n> \n>    \"When driven by fear, man worships sacred mountains, sacred stones, \n> \tand sacred trees.\" \n> \n> However, the Buddha also said,\n> \n> \t\"If somebody finds peace in any religion, let him be\".\n> \n> \n\nThese are good quotes, and I agree with both of them, but let's make sure to\nalter the scond one so that includes something like \"...let him be, as long as\nhe is not preventing others from finding their peace.\" or something like that. \n(Of course, I suppose, if someone were REALLY \"at peace\", there would be no\nneed for inflicting evangelism)\n\n\n> Personally, I feel that since religion have such a poweful\n> psychological effect, we should let theists be.  But the problem is that\n> religions cause enormous harm to non-believers and to humanity as a whole\n> (holy wars, inquisitions, inter-religious hatred, impedence of science\n> & intellectual progress, us-&-them attitudes etc etc.  Need I say more?).\n> I really don't know what we can do about them.  Any comments?\n> \nWell, it is a sure thing we will have to live with them all our lives.  Their\npopularity seems to come and go.  I remember when I first entered High School,\nI was an atheist (always had been) and so were about 7 of my friends.  At this\ntime, 5 of those 7 have converted, always to Christianity (they were all also\nimmigrants from Taiwan, or sons of immigrants, hence my earlier gross\ngeneralization).  Christianity seems a lot more popular to people now than it\never has before (since I've been noticing).  Maybe it is just my perceptions\nthat are chagning.  Who knows?\nI for one am perfectly willing to live and let live with them, so long as we\nhave some set of abstract rights/agreements on how we should treat each other:\nI have no desire to be hurt by them or their notions.  For all the well-put\narguments on this usenet, it never does any good.  Argumentation does not\nreally seem to apply to Christians (or even some atheists)- it must simply be a\nstep the person takes naturally, almost, \"instinctively\"...\n\n\nbest regards,\n\n********************************************************************************\n* Adam John Cooper\t\t\"Verily, often have I laughed at the weaklings *\n*\t\t\t\t   who thought themselves good simply because  *\n* acooper@macalstr.edu\t\t\t\tthey had no claws.\"\t       *\n********************************************************************************\n>\n--\n> \n> The UnEnlightened One\n> ------------------+--------------------------------------------------------\n>                   | \"Buddhism has the characteristics of what would be \n> Tan Chade Meng    | expected in a cosmic religion for the future: it\n> Singapore         | transcends a personal God, avoids dogmas and theology;\n> cmtan@iss.nus.sg  | it covers both the natural & spiritual, and it is\n>                   | based on a religious sense aspiring from the experience\n>                   | of all things, natural and spiritual, as a meaningful\n>                   | unity\"     --  Einstein\n> ------------------+--------------------------------------------------------\n> \n> \n> \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10813, "properties": {"category": "comp.sys.mac.hardware", "text": "From: peirce@outpost.SF-Bay.org (Michael Peirce)\nSubject: Re: Sales of PowerBook slowing down...\nReply-To: peirce@outpost.SF-Bay.org (Michael Peirce)\nOrganization: Peirce Software\nLines: 27\nX-Mailer: uAccess - Macintosh Release: 1.6v2\n\n\nIn article <martin.733762199@tohi> (comp.sys.mac.hardware), martin@tohi (Jean-francois Martin) writes:\n> First, this is not an April 1 joke.\n> \n> A dealer in my town told me that the PowerBook don't sell as they use to sell.\n> The guy told me that Apple is having the same problem it has when the desktop\n> Mac was too expensive ;  the PowerBook are too expensive in comparison to what\n> you can get on the DOS side. What do you think of this? Do you feel the same\n> thing about it? Just curious.\n\nSounds about right.\n\nIf there is high demand for a product there is little incentive to\naggresively cut prices.  Once the demand fall off a bit, then is the\ntime to start getting aggressive with pricing.  Waiting too long can\nreally hurt your business though :-)\n\nThe PowerBooks have sold very well up to now, if they are slowing\ndown Apple needs to come out with some lower priced versions (the\nonly reason I own a PowerBook is that I could spring for a $900 PB100,\nthe rest of the lineup is way to pricey for me).  I'd bet they'll\nbe coming out with more power versions too.\n\n--  Michael Peirce      --   peirce@outpost.sf-bay.org\n--  Peirce Software     --   Suite 301, 719 Hibiscus Place\n--                      --   San Jose, California USA 95117\n--  Makers of:          --   voice: (408) 244-6554 fax: (408) 244-6882\n--             Smoothie --   AppleLink: peirce & America Online: AFC Peirce\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10814, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: narlochn@kirk.msoe.edu\nSubject: Need help with WordPerfect for Windows...\nDistribution: usa\nOrganization: Milwaukee School Of Engineering, Milwaukee, WI USA\nLines: 19\n\nI have two questions:\n\n1) I have been having troubles with my Wordperfect for Windows.\n   When I try to select and change fonts, etc. some of the text\n   disappears.  I tried to center two lines once, and the second\n   line disappeared.  I can not find the error, and I do not\n   know how to correct it.\n\n2) Is this the right newsgroup?  Where should I go?\n\nE-mail prefered...\n                                                  _____\nWho else is still waiting for \"Naked Gun Part (Pi) | |  \"\n\n''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/\n'/''/'Nathan'Narloch''/''/''/'\"Alumn122@whscdp.whs.edu\"/''/''/''/'\n/''/'(Enforcer'Burp)'/''/''/''or'/'\"NARLOCHN@KIRK.MSOE.EDU\"'/''/''\n''/''/Milw,/WI/53207/''/'\"Join'the'Official'Psycho/Team...\"/''/''/\n'/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/''/'\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10815, "properties": {"category": "comp.windows.x", "text": "From: straw@cam.nist.gov (Mike_Strawbridge_x3852)\nSubject: need help with Athena Text Widget\nOrganization: National Institute of Standards & Technology, Gaithersburg, MD\nLines: 24\n\nI want to create a single-line Text widget for entering a small amount of text.\n\nI want it to be of fixed width, but have a horizontal scrollbar that scrolls\nautomatically when the user types in order to keep the insertion point\nvisible.\n\nIn trying to do this I have two problems:\n\n - The addition of the horizontal scrollbar does not make the text widget\n   taller, but instead it seems to cover part of the text.\n\n - The scrollbar does not scroll automatically as the user types in text\n   in order to keep the insertion point visible.\n\nAny help is appreciated.\n\nMike\n\n-----------------------------------------------------------------------\nNAME:   Michael Strawbridge             \tTELE: (301) 975-3852\nUSMAIL: National Institute of Standards \tARPA: straw@cam.nist.gov\n\t\tand Technology            \tUUCP: uunet!cme-durer!straw\n        Rm. B-146, Bldg. 225\n        Gaithersburg, MD  20899\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10816, "properties": {"category": "rec.sport.baseball", "text": "From: rauser@fraser.sfu.ca (Richard John Rauser)\nSubject: Quick easy question!\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 14\n\n\n\n   Here's an easy question for someone who knows nothing about baseball...\n\n   What city do the California Angels play out of?\n\n\n\n-- \nRichard J. Rauser        \"You have no idea what you're doing.\"\nrauser@sfu.ca            \"Oh, don't worry about that. We're professional\nWNI                          outlaws - we do this for a living.\"\n-----------------\n\"Remember, no matter where you go, there you are.\" -Dr.Banzai\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10817, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: rnichols@cbnewsg.cb.att.com (robert.k.nichols)\nSubject: Re: moving icons\nOrganization: AT&T\nDistribution: na\nLines: 15\n\nIn article <1bp0rAHPBh107h@viamar.UUCP> rutgers!viamar!kmembry writes:\n>I remember reading about a program that made windows icons run away\n>from the mouse as it moved near them.  Does anyone know the name\n>of this program and the ftp location (probably at cica)\n\nThere's a program called \"Icon Frightener\" included with the book Stupid\nWindows Tricks by Bob LeVitus and Ed Tittel (Addison-Wesley, 1992).  It's\nfreeware.  If it's not on the net anywhere, I'll happily email a copy to\nsomeone who's willing to upload it (I can't upload through our Internet\nfirewall).\n\n--\nBob Nichols\nAT&T Bell Laboratories\nrnichols@ihlpm.ih.att.com\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10818, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Subject: IDE Cable\nFrom: vacsc0qe@VAX.CSUN.EDU\nReply-To: vacsc0qe@VAX.CSUN.EDU\nOrganization: Cal State Northridge\nLines: 12\n\nI just bought a new IDE hard drive for my system to go with the one\nI already had.  My problem is this.  My system only had a IDE cable\nfor one drive, so I had to buy cable with two drive connectors\non it, and consequently have to switch cables.  The problem is, \nthe new hard drive's manual refers to matching pin 1 on the cable\nwith both pin 1 on the drive itself and pin 1 on the IDE card.  But\nfor the life of me I cannot figure out how to tell which way to plug\nin the cable to align these.  \nSecondly, the cable has like a connector at two ends and one between them.\nI figure one end goes in the controler and then the other two go into\nthe drives.  Does it matter which I plug into the \"master\" drive\nand which into the \"Slave\"?  any help appreciated.  thanks...\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10819, "properties": {"category": "rec.motorcycles", "text": "From: vech@Ra.MsState.Edu (Craig A. Vechorik)\nSubject: Re: BMW MOA members read this!\nNntp-Posting-Host: ra.msstate.edu\nOrganization: Mississippi State University\nLines: 14\n\nIn regards ot some of the posts concerning bias in articles of k bikes\nversis /2's or boxers of a later date or whatever.. Jeezzz, Lighten up!\nI wrote the slash two blues for a bit of humor which seems to be lacking\nin the MOA Owners News, when most of the stuff is \"I rode the the first\nday, I saw that, I rode there the second day, I saw this\" \nany body out there know were the sense if humor went in people?\nI though I still had mine, but I dunno... \nRegards \nCraig Vechorik\nBMW MOA Ambassador #9462\nDOD #843\nAnd hey, I just want ya'll to vote.. O.K.? for SOMEBODY instead of throwing\nit in the trash...\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10820, "properties": {"category": "misc.forsale", "text": "From: jboro@enterprise.bih.harvard.edu (Jason Boro)\nSubject: 2 PC's, chair & typewriter in Boston\nOrganization: Center for Clinical Computing - Boston, MA.\nLines: 27\nDistribution: world\nNNTP-Posting-Host: cheever.bih.harvard.edu\n\n1. IBM PS/2 286; 30 meg hd; 1.44 disk drive 3.5\"; extended keyboard; mouse,\n   mouse-pad; DOS, DOSSHELL, EXCEL, WINDO S, WORD, AMIPRO, GRE StudyWare.\n   $500 / b.o.\n\n2.  Zenith Date Systems supersport laptop computer\n    w/ 120V AC recharger; model 150-308 60 hz.\n    DOS 4.0\n    2 disc drives for 3.5\" floppy\n    carrying case, manuals.\n    $350 / b.o.\n\n3.  2 leather desk chairs  (1) black $200. (2) brown $150. or both for\n$300.\n\n4.  Olivetti manual typewriter, Tropical model.\n    Incl. characters for typing in Italian language.\n    $100.\n\nPlease reply via email or call me at my home number:  (617) 277-9234.\n\nThanks,\nJason\n\n*---------------------------------------------------------------------*\n| Jason Boro ....................... jboro@enterprise.bih.harvard.edu |\n| Center for Clinical Computing .......... Boston, MA  (617) 732-5925 |\n*---------------------------------------------------------------------*\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10821, "properties": {"category": "sci.crypt", "text": "From: strnlght@netcom.com (David Sternlight)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: DSI/USCRPAC\nDistribution: na\nLines: 15\n\nIn article <Apr18.194927.17048@yuma.ACNS.ColoState.EDU>\nholland@CS.ColoState.EDU (douglas craig holland) writes:\n\n>Note that measures to protect yourself from\n>TEMPEST surveillance are still classified, as far as I know.\n\nI think this to be inaccurate. One can buy TEMPEST equipment commercially.\nEven Macs.\n\nDavid\n-- \nDavid Sternlight         Great care has been taken to ensure the accuracy of\n                         our information, errors and omissions excepted.  \n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10822, "properties": {"category": "sci.electronics", "text": "From: kehoe@netcom.com (Thomas David Kehoe)\nSubject: Re: How starters work really\nKeywords: fluorescent bulb starter neon\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 35\n\n>>So when you turn on the power, this causes the bulb to work like a neon, \n>\n>Imprecise. This description\n>\n> 1. ignores the role of the ballast,\n> 2. misrepresents the heating effects in the starter.\n>\n>The bimetalic strip cools down immediately after the contacts\n\nI've been thinking of sending into Mad magazine an idea for a \nparody, of those books entitled \"How Things Work\" that\nengineers buy their sons, which explain how engines, elevators,\nflourescent lights, etc. work.\n\nThe parody would be \"How Things Really Work.\"  Under \"Canned\nFood\", on the left page you'd see the description from \n\"How Things Work\": gleaming stainless steel equipment\npasteurizing the food to precisely the right temperature,\nthen sealing the can in an oxygen-free environment, etc.\n\nOn the right page you'd see \"How Things Really Work\":\nbrain-dead workers sending disgusting food to the\ngleaming equipment -- rotting vegetables, parts of\nanimals people don't eat, barrels of sugar and chemicals.\n\nUnder \"Elevators\" you'd see (on the left) computer geniuses\nworking out algorithms so that X number of people\nwaiting for Y elevators will get to Z floors in the shortest\ntime.  On the right, you'd see giggling elevator controllers\nbehind a one-way mirror in the lobby choosing which people\nappear to be in the biggest hurry and making them wait longest.\n-- \n\"Why my thoughts are my own, when they are in, but when they are out\nthey are another's.\" - Susannah Martin, hanged for witchcraft, 1692.\nThomas David Kehoe          kehoe@netcom.com         (408) 354-5926\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10823, "properties": {"category": "rec.sport.hockey", "text": "From: Mamatha Devineni Ratnam <mr47+@andrew.cmu.edu>\nSubject: Atlanta Hockey Hell!!\nOrganization: Post Office, Carnegie Mellon, Pittsburgh, PA\nLines: 23\nNNTP-Posting-Host: po4.andrew.cmu.edu\n\n\nWell, it's not that bad. But I am still pretty pissed of at the\nlocal ABC coverage. They cut off the first half hour of coverage by playing\nDavid Brinkley at 12:30 instead of an earlier time slot. I don't\neven understand their problem. If they didnt think enough people would\n\nnot watch the game why would they decide to show most of the game? And\nif they showed the remaining 2.5 hours of the game, would it hurt to play\nDavid Brinkley at its regular time? They dont have any decent programming\nbefore noon anyway. I called the sports dept and blasted them on their\nmachine. I called gain and someone picked it up. When I asked him why they\npremepted the first half hour of the Stanley Cup playoffs, he seemed a bit\nconfused. When I explained a bit more in detail, he then said that's upto\nto our programming dept. call back on  Monday. weel, I understand that the\nsports dept is not responsible for this preemption. BUt I can't understand\nhow someone in the sports dept. can't even recognise the name of playoffs\nshown on the very same station he works for.\n\nAnyway, I am going to call them tomorrow and blast them on the phone again.\nI urge all Atlanta hockey fans to call WSB 2 and ask them not to do the\nsame thing for the next 4 weeks.\n\n-Pravin Ratnam(Oh by the way, Pens rule!!!!!!!!!!!!!!)\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10824, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: Mississippi River water and catfish: safe?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nDistribution: usa\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 18\n\nIn article <1993Apr12.204033.126645@zeus.calpoly.edu> dfield@flute.calpoly.edu (InfoSpunj (Dan Field)) writes:\n>I've been invited to spend a couple weeks this summer rafting down the\n>Mississippi.  My journey partners want to live off of river water and\n>catfish along the route.  Should I have any concerns about pollution or\n>health risks in doing this?\n\nYou'd have to purify the river water first.  I'm not sure how practical\nthat is with the Mississippi.  You'd better check with health agencies\nalong the way to see if there are toxic chemicals in the river.  If\nit is just microorganisms, those can be filtered or killed, but you\nmay need activated charcoal or other means to purify from chemicals.\nBetter be same than sorry.  Obviously, drinking the river without\nprocessing it is likely to make you sick from bacteria and parasites.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10825, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: schauf@iastate.edu (Brian J Schaufenbuel)\nSubject: Re: HINT 486 VLB/ISA/EISA motherboard\nKeywords: 486, motherboard\nOrganization: Iowa State University, Ames, IA\nDistribution: usa\nLines: 36\n\nIn article <id.XNFZ.VJ8@nmti.com> korenek@nmti.com (gary korenek) writes:\n>In article <C5ovwv.LMo@news.iastate.edu> schauf@iastate.edu (Brian J Schaufenbuel) writes:\n>>I am looking at buying some Companion brand VLB/ISA/EISA motherboards with\n>>HINT chipsets.  Has anybody had any experience with this board (good or bad)?\n>>Any information would be helpful!\n>>thanks\n>>Brian J Schaufenbuel\n>\n>\n>I believe that any VL/EISA/ISA motherboard that uses the HINT chipset\n>is limited to 24-bit EISA DMA (where 'real' EISA DMA is 32-bit).  The\n>HINT EISA DMA has the 16 mb ram addressing limitation of ISA.  For this\n>reason I would pass.  I own one of these (HAWK VL/EISA/ISA) and am look-\n>ing to replace it for exactly this reason.\n>\n>Please double-check me on this.  In other words, call the motherboard\n>manufacturer and ask them if the motherboard supports true 32-bit EISA\n>DMA.\n>\n>Other than this limitation, the motherboard works quite well (I am using\n>mine with DOS 5, Windows 3.1, and UNIX S5R3.2).  Also with Adaptec 1742a\n>EISA SCSI host adapter.\n>\n>-- \n>Gary Korenek   (korenek@nmti.com)\n>Network Management Technology Incorporated\n>Sugar Land, Texas       (713) 274-5357\n\n\nYou are correct!  The motherboard manufacturer where I usually buy boards says\nthat they will have this problem fixed in about two weeks...\n-- \n_______________________________________- Brian Schaufenbuel____________________\n| Brian J Schaufenbuel [ \"There is no art which one government sooner learns  ]\n| Helser 3644 Halsted  [  than that of draining money from the pockets of the ]\n| Ames, Ia  50012      [  people [especially college students].\" - Adam Smith ]\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10826, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rvenkate@ux4.cso.uiuc.edu (Ravikuma Venkateswar)\nSubject: Re: x86 ~= 680x0 ?? (How do they compare?)\nOrganization: University of Illinois at Urbana\nLines: 46\n\nMichael.Ameres@f204.n2603.z1.fidonet.org (Michael Ameres) writes:\n\n>I believe it goes or will go:\n>680060\n>powerPC\n>Pentium\n\nNot quite. 66MHz Pentium - 65 SPECint92, 57 SPECfp92 .\n\t   66MHz MC98601 - 50 SPECint92, 80 SPECfp92 .\n\nNote that SPECint is more important for most real world applications.\n\n>680040\n>486\n\nAs far as the 486DX2-66 goes - 32 SPECint92, 16 SPECfp92 .\n\n>680030\n>386\n>680020\n>286=680000\n\n>In a resent article in one of the macMags I think a 50mHz 030 accelerator was\n> slightly slower than a 25mHz 040 accel. But, this is using a system designed\n> for the 030. So, It stands to reason that a system designed for an 040 ie\n> quadra) would do better. So overall I'd figure 040 = 030 * 2.5 or so.\n>    Along the same lines the new POwerPC stuff is supposed to run the system\n> at the level of a fast quadra, but system 8 or whatever will allow 3 times the\n> speed of a 040 in the powerPC based systems. and wait for the 680060. I think\n> it laps the pentium.\n\nIntel chips have traditionally been faster than their Motorola \"equivalents\"\nalthough the significance of chip speed in real world application performance\nis something that is highly debatable.\n\n>pro-life pro-women\n\n\n>--  \n>=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n> Michael Ameres - Internet: Michael.Ameres@f204.n2603.z1.fidonet.org\n-- \nRavikumar Venkateswar\nrvenkate@uiuc.edu\n\nA pun is a no' blessed form of whit.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10827, "properties": {"category": "comp.windows.x", "text": "From: guy@x.co.uk (Guy Singh)\nSubject: Re: xv -root with vue? (was Re: xloadimage -onroot ...)\nIn-Reply-To: jan@camhpp12.mdcbbs.com's message of 5 Apr 93 11:31:27 PDT\nX-Disclaimer: This is not the view of IXI Ltd unless explicitly stated.\nLines: 22\nNntp-Posting-Host: yorks.x.co.uk\nOrganization: Not a lot\n\t<WHALEY.93Apr3113732@behemoth.kpc.com>\n\t<1993Apr5.113128.2936@ug.eds.com>\nX-Copyright: The author asserts the right of paternity in this message.\n\n>>>>> On 5 Apr 93 11:31:27 PDT, jan@camhpp12.mdcbbs.com (Jan Vandenbrande) said:\nJan> Nntp-Posting-Host: 134.244.49.156\n\nJan> On a related note, how can I use xv to display colored GIFs on my\nJan> root display with HP Vue?\n\nJan> All I can do with Vue is display xbm's through their\nJan> Backdrop Style Manager.\n\nJan> xv does not seem to be able to override whatever Vue\nJan> puts there.\n\nI suspect this is because VUE creates a window (probably OverrideRedirect)\nthat is the size of (or larger than) the Root Window. Because the window\nmanager does not know about this, you cannot move, resize etc. it. xv in the\nmean time is busy changing your root window to whatever you have requested\nbut you never get to see it because VUE's window is overlaid on top of the root\nwindow. \n\nContact HP support and see whether VUE can support coloured bitmap format\nsuch as xpm, if they cant then they probably create all their coloured\nbackdrops inside the code.\n--\n-Guy Singh,                 IXI            Internet: guy@x.co.uk\n                            Vision Park    UUCP:     guy@ixi.uucp\n                            Cambridge      Bang:     ...!uunet!ixi!guy\n                            CB4 4ZR, UK    Tel:      +44 223 236 555\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10828, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: UNC4b2@ibm.rhrz.uni-bonn.de (Christoph Steinbeck)\nSubject: Z-Modem up- and download with WinQVT?\nLines: 9\nOrganization: Chemische Institute, University of Bonn\n\nHello all,\n\nI'd like to know, how z-modem-upload is initiated in a WinQVT-Script-file,\nto check how it works before registering.\nUnfortunatly, nothing about that feature is mentioned in the manual.\nCan anybody help me?\n\nCiao, Chris\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10829, "properties": {"category": "sci.electronics", "text": "From: thompson@cactus.org (Charles Thompson)\nSubject: How does \"Differential Mode\" GPS work???\nOrganization: Capital Area Central Texas UNIX Society, Austin, Tx\nLines: 15\n\n\n\nI understand that the new GPS boxes now have an option\nknown as \"differential ready\".  Apparently land-based\nbeacons tranmit GPS correction information to your GPS \nreceiver (with differential option installed).\n\nHow does this system work?  What frequency is used for\nthe land-based beacons?\n\nThanks in advance,\n\nCharlie Thompson\n.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10830, "properties": {"category": "rec.autos", "text": "From: ak954@yfn.ysu.edu (Albion H. Bowers)\nSubject: Re: Too fast\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 42\nReply-To: ak954@yfn.ysu.edu (Albion H. Bowers)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, tedebear@leland.Stanford.EDU (Theodore Chen) says:\n\n>In article <1qh61m$b6l@armory.centerline.com> jimf@centerline.com (Jim Frost) writes:\n>>Compare either to the Porsche 911 and you tell me which was designed\n>>to go fast.\n\n>you have a point about the brakes, especially seeing as how the\n>mustang doesn't even have disc brakes in the back.  \n>but there are significant differences between the latest 911s and\n>the late 80's 911s, not the least of which is handling.  i'm not\n          ^^\n\nI think you mean late '60s.  The biggest change that Porsche undertook to\nalter the tailhappieness of their baby was way back in August 1968 (for the\n'69 model year) when they stretched the wheelbase.  Besides, some people\nactually _KNOW_ how to take advantage of oversteer, and enjoy it.\n\n>in europe.  the 911 got low marks for high speed handling (though to\n>be fair, they might have been comparing it to the vette's handling).\n                                                   ^^^^^\n\n>what was that phil hill (famous race car driver) said about the\n               ^^^^ ^^^^\n\nYou should have seen what Phil Hill (_*WORLD CHAMPION*_) had to say about\nthe Vette's he's driven. \n\n>911 turbo?  you can't make a thoroughbred out of a pig, but you can\n>have an awful fast pig.\n         ^^^^^ ^^^^ ^^^\n\nYeah, that was what he said.  :-)\n\nPaul Frere agreed.  They both prefered the Porsche (modified by Ruf) to\neither of the Vette's at that test. \n\n\n-- \nAl Bowers  DOD #900  Alfa  Ducati  Hobie  Kottke  'blad  Iaido  NASA\n\"Well goodness sakes...don't you know that girls can't play guitar?\"\n                                             -Mary Chapin-Carpenter\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10831, "properties": {"category": "talk.politics.misc", "text": "From: bmich@cs.utexas.edu (Brian Keith Michalk)\nSubject: Re: high speed rail is bad\nOrganization: CS Dept, University of Texas at Austin\nLines: 16\nDistribution: tx\nNNTP-Posting-Host: coltexo.cs.utexas.edu\n\nIn article <1993Apr15.162802.20933@hydra.acs.ttu.edu> mcgoy@unicorn.acs.ttu.edu (David McGaughey) writes:\n>\n>The question, I think, then becomes:  Do we, the general public, need the train?\n>\n>I certainly do not, nor will I ever, need this train in Lubbock, Texas.  With\n>the inexpensive air travel provided between Dallas and Houston, I don't think\n>people in Dallas or Houston need it either.\n\nI totally agree.  Really, the only people this is going to benefit, are\nthose who live in the cities where the train stops.  Who wants to drive\nto the train station from X (Lubbock for example)?  It's probably farther\nto drive to the train station than it is to the nearest national airport.\n\nI really can't see spending 5.7 billion on a system that only three cities\nwill benefit from.\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.510+0000", "event": "documents", "entityId": 10832, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Carrying Arms\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: usa\nLines: 32\n\nIn article <1993Apr5.220457.6800@spdc.ti.com> dwhite@epcot.spdc.ti.com (Dan White) writes:\n>\tI have a question about the second amendment that has bothered\n>me for awhile.  The amendment guarentees our \"right to keep and bear\n>arms.\" Currently, the gun prohibitionists are trying to restrict or\n>eliminate our right to keep arms with the Brady Bill and the assault\n>weapon ban.  However, haven't we already lost our right to bear arms?\n\n>\tIt seems that in most states, like Texas, a citizen may own a\n>gun and carry while at his home or business.  But a citizen is severely\n>restricted from bearing outside these areas.  Here in Texas you cannot\n>carry in your car except when \"traveling\" which is usually defined as\n>\"traveling across a county line.\"  How did this come about?  Are there\n>any court rulings on the legality of restricting the carrying of a\n>weapon outside the home?  \n\nThere are, but not any that would help Texans: In many states,\nsuch laws have been found to violate the state constitution. \nBut the federal Second Amendment does not apply directly to the\nstates. It was written to limit the federal government only. \nThe Fourteenth Amendment was written to extend the restrictions\nof the Bill of Rights to the state level. However, the exact\nwording of the Fourteenth Amendment is very vague. The Supreme\nCourt has been dancing around the issue without facing it\ndirectly for over 100 years. In practice, the Bill of Right\n(indirectly applies through the Fourteenth) applies to the\nstate governments only if the Supreme Court has ruled that \nparticular provision. The Court has made no such rulings on\nthe Second Amendment.\n\n                                                 Frank Crary\n                                                 CU Boulder\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10833, "properties": {"category": "talk.politics.guns", "text": "From: roby@chopin.udel.edu (Scott W Roby)\nSubject: Re: BATF/FBI Murders Almost Everyone in Waco Today! 4/19\nNntp-Posting-Host: chopin.udel.edu\nOrganization: University of Delaware\nLines: 61\n\nIn article <1r1rad$7rl@transfer.stratus.com> cdt@sw.stratus.com (C. D. Tavares) writes:\n>In article <C5s0Ds.J54@news.udel.edu>, roby@chopin.udel.edu (Scott W Roby) writes:\n\n  [The original question was about who started the fire and whether the \n   \"madmen\" were inside or outside the compound.  To which I replied on \n   the possible sanity level of those inside and outside.]\n>\n>> According to an Australian documentary made in the year before the stand off \n>> began, Koresh and his followers all believed he was Christ.  Koresh \n>> had sex with children and women married to other men in the compound.  \n>> These were the \"perfect children\" resulting from the \"great seed\" of \n>> his \"magnified horn\".  Ex-members describe him in ways not dissimilar \n>> to the way Jim Jones has been described.\n>\n>Point noted.  Have you submitted YOUR faith and sex life for BATF clearance?\n>Better hurry; I believe the deadline was April 15.\n\nI paid my taxes.  There was no reference to sex or religion on the form.\nThe comments above and below were meant to address who might be unstable \nenough to keep children in a building with tear gas or start a fire.\n\n>> FBI agents have to pass rigorous psychological examinations and background \n>> checks.  Plus, those in charge will undoubtedly have to explain their \n>> decisions in great detail to congress.  Why would the FBI want to fulfill \n>> Koresh's own prophecy?\n>\n>And nevertheless, they hit all their marks and read all the scripted lines.  \n>Well, it sure beats the hell out of me.  Maybe Thoreau had a clue when he\n>said, \"It is impossible to make anything foolproof, because fools are so\n>ingenious.\"\n\nI agree that the BATF handled the affair badly.  \n\n>> >:Two of the nine who escaped the compound said the fire was deliberately set \n>> >:by cult members.\n>> >\n>> >Correction:  The *FBI* said that two of the cult members said this; so far,\n>> >no one else has been able to talk to them.\n>> \n>> So, when they talk to the news reporters directly, and relate the same details, \n>> will you believe them?\n>\n>Believe them?  I won't even RECOGNIZE them.  And neither will anyone else\n>who doesn't know them personally.\n\nDo you believe they would put impostors before the national tv cameras?\n\nAt this point, we are getting conflicting reports from the survivors.\nBest wait til more light is shed upon them.  Of course, this is no \ngood if you believe in eternal darkness.\n\n>-- \n>\n>cdt@rocket.sw.stratus.com   --If you believe that I speak for my company,\n>OR cdt@vos.stratus.com        write today for my special Investors' Packet...\n>\n\n\n-- \n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10834, "properties": {"category": "sci.med", "text": "From: sheryl@seas.gwu.edu (Sheryl Coppenger)\nSubject: Re: Hismanal, et. al.--side effects\nOrganization: George Washington University\nLines: 28\n\nIn article <1993Apr21.024103.29880@spdcc.com> dyer@spdcc.com (Steve Dyer) writes:\n>In article <1993Apr20.212706.820@lrc.edu> kjiv@lrc.edu writes:\n>>Can someone tell me whether or not any of the following medications \n>>has been linked to rapid/excessive weight gain and/or a distorted \n>>sense of taste or smell:  Hismanal; Azmacort (a topical steroid to \n>>prevent asthma); Vancenase.\n>\n>Hismanal (astemizole) is most definitely linked to weight gain.\n>It really is peculiar that some antihistamines have this effect,\n>and even more so an antihistamine like astemizole which purportedly\n>doesn't cross the blood-brain barrier and so tends not to cause\n>drowsiness.\n>\n\nSo antihistamines can cause weight gain.  NOW they tell me. :-)\nIs there any way to find out which do & which don't?  My doctor\nobviously is asleep at the wheel.\n\nThe original poster mentioned fatigue.  I had that too, but it was\nmostly due to the really bizarre dreams I was having -- I wasn't getting\nany rest.  My doctor said that was a common reaction.  If astemizole\ndoesn't cross the blood-brain barrier, how does it cause that side\neffect?  Any ideas?\n\n-- \n\nSheryl Coppenger    SEAS Computing Facility Staff\tsheryl@seas.gwu.edu\n\t\t    The George Washington University\t(202) 994-6853          \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10835, "properties": {"category": "talk.politics.mideast", "text": "From: zbib@bnr.ca (Sam Zbib)\nSubject: Legality of the Jewish Purchase (was Re: Israeli Expansion-lust)\nNntp-Posting-Host: bcarh1fa\nReply-To: zbib@bnr.ca\nOrganization: Bell-Northern Research\nLines: 134\n\nAdam Shostack writes: \n> Sam Zbib writes\n   >>I'm surprised that you don't consider the acquisition of land by\n   >>the Jews from arabs, for the purpose of establishing an exclusive\n   >>state, as a hostile action leading to war.\n\n>\tIt was for the purpose of establishing a state, not an\n> exclusive state.  If the state was to be exclusive, it would not have\n> 400 000 arab citizens.\n\nCould you please tell me what was the ethnic composition of \nIsrael right after it was formed. \n\n\n> \tAnd no, I do not consider the purchase of land a hostile\n> action.  When someone wants to buy land, and someone else is willing\n> to sell it, at a mutually agreeable price, then that is commerce.  It\n> is not a hostile action leading to war.\n\nNo one in his right mind would sell his freedom and dignity.\nPalestinians are no exception. Perhaps you heard about\nanti-trust in the business world.\n\nSince we are debating the legality of a commercial\ntransaction, we must use the laws governing the guidelines\nand ethics of such transactions. Basic ANTI-TRUST law says\nthat, while you can purchase IBM stocks for the purpose of\ninvesting, you can not acquire a large number of those\nshares with the intent or controlling IBM. You can do so\nonly if you make your intentions CLEAR apriori . Clearly,\nthe Jews who purchased properties from palastenians had some\ndesigns, they were not buying a dwelling or a real estate.\nThey were establishing a bridgehead for the European Jews.\n\nThe palastenians sold their properties to the Jews in the\nold tradition of arab hospitality. Being a multi-ethnic /\nmulti-religious society, accepting the jews as neighbours\nwas no different, just another religion. Plus they paid fair\nmarket value, etc... They did not know they were victims of\nan international conspiracy. (I'm not a conspiracy theorist\nmyself, but this one is hard to dismiss).\n\n\n>>As to whether the Jews wanted to live in peace, maybe.\n>>However they wanted and still want an exclusively Jewish\n>>state, where Jews are in control and Jews are the masters of\n>>the land.  Living in peace is meaningless unless it means\n>>living *WITH* someone else, as equal. For a native arab, this \n>>does not leave many options.\n\n>\tOh, you mean like both Jews and Arabs being citizens?  The\n>arabs who stayed are now citizens, with as much right to choose who\n>they vote for as the Jews.\n\nAgain Adam, the devil is in the details. I don't want to get\non a tangent here but its the same reasonning that says its\nOK to return 100 deportes and leave the rest. Because 100 is\na nice number that you can devide by 10, 100 and besides, it\nhas an integer square root.\n\n>>Those palestinians who stayed, actually stayed despite of what \n>>happened, and their number was somewhat tolerated as a defenseless\n>>and ineffective minority.\n>>If I were wrong, you'd have Israel recall all the\n>>palestinian refugees (we're talking millions). After all,\n>>they are civilians. \n\n>\tHuh?  The people who left, did so voluntarily.  There is no\n>reason for Israel to let them in.\n\nDo you actually believe this? My experience tells me that\nevery palestinian I knew still keeps the key to his home, in\nPalestine. Besides they often refer to their exodus as an\nescape from hell (so to speak). I know none that agrees with\nyou. Did you sample their opinions? I know you don't care,\njust being rethorical.\n\n\n>>Israel gave citizenship to the remaining arabs because it\n>>had to maintain a democratic facade (to keep the western aid\n>>flowing).\n\n>\tIsrael got no western aid in 1948, nor in 1949 or 50...It\n>still granted citizenship to those arabs who remained.  And how\n>is granting citizenship a facade?\n\nDon't get me wrong. I beleive that Israel is democratic\nwithin the constraints of one dominant ethnic group (Jews).\nIsrael probably had a few options after 1948: ethnic\ncleansing Serbian style, and deserve the wrath of the\ninternational community, or make the best out of a no win\ncondition: show the world how good Israel is towards the\n'bad' arabs. Personaly, I've never heard anything about the\narab community in Isreal. Except that they're there.  So\nyes, they're there. But as a community with history and\nroots, its dead.\n\n>>\tTell me something, Sam.  What makes land \"arab?\"\n\n>How shall I explain, Its a contract between the man and the\n>land.  Control isn't it. The Ottomans ruled 400 years, and\n>then left with barely a trace.  The concept of Land identity\n>is somewhat foreign to the mobile and pragmatic West.  It is\n>partly the concept of 'le sol natal', native soil.  I know\n>that jews had previous history in the region, but none in\n>recent memory.  I'm talking everyday life not archeology.\n\n>\tTry again, you tell me what its isn't, but you fail to\n> establish what it is.\n\n>\tAlso, Jews did have history in Israel for over a thousand\n>years.  There were lots of Jews slaughtered by Crusaders in Israel.\n>There was a thriving community in Gaza city from roughly 1200-1500.\n>Jews were a majority in Jerusalem from 1870 or so onwards.  Does that\n>make the land Jewish?\n\n\nI stand corrected. I meant that the jewish culture was not\npredominant in Palestine in recent history. I have no\nproblem with Jerusalem having a jewish character if it were\npredominantly Jewish. So there. what to make of the rest\nPalestine?\n\n\n> Adam Shostack \t\t\t\t       adam@das.harvard.edu\n\n-- \nSam Zbib                                         Bell-Northern Research\n------------------------------------------------------------------------\nBitnet/Internet: zbib@bnr.ca                    VOICE:  (613) 763-5889\n                                                FAX:    (613) 763-2626\nSurface Mail: Stop 162, P.O.Box 3511, Station C, Ottawa, Canada, K1Y 4H7\n------------------------------------------------------------------------\n       My opinions are my own and no one else's\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10836, "properties": {"category": "rec.sport.hockey", "text": "From: stamber@rainbow.ecn.purdue.edu (Kevin L. Stamber)\nSubject: ESPN, the network with a heart...\nKeywords: NOT!\nOrganization: Purdue University Engineering Computer Network\nLines: 22\n\n\n     Dale Hunter ties the game, scoring his third goal of the game\nwith 2.7 seconds remaining in regulation.\n\n     You could feel it coming on.\n\n     \"Due to contractual agreements, ESPN will be unable to carry\nthe rest of this game live, so that we may show you a worthless\nearly-season battle between those two pennant contenders, the \nCleveland Indians and the California Angels.  When the winning\ngoal is scored, we WILL do the grave injustice of breaking into the\nbaseball game -- something reserved only for the deaths of Presidents\nor the trading of Joe Montana to the Chiefs -- to show you the \ngoal on instant replay.\n     \"Aren't you SO lucky to have national coverage of hockey?\"\n\n     It's HEIDI all over again, dammit!\n\nKevin L. Stamber\nPurdue University\nPENGUINS 7, DEVILS 0 -- ROLL TRAIN, ROLL!\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10837, "properties": {"category": "soc.religion.christian", "text": "From: simon@monu6.cc.monash.edu.au\nSubject: Saint Story St. Aloysius Gonzaga\nOrganization: Monash University, Melb., Australia.\nLines: 113\n\nHeres a story of a Saint that people might like to read. I got it from\na The Morning Star, and am posting it with the permission of the\neditor.\n\n\n    Saint Aloysius Gonzaga\n\n    The Patron of Youth\n\n\n    The marquis Gonzaga had high aspirations for his son, the  Prince\n    Gonzage.  He  wanted  him  to become a famous, brave and honoured\n    soldier. After all, he must carry on the  great  family  name  of\n    Gonzaga.  Of  course, he was to become far more famous, brave and\n    honoured than his father could ever have imagined; though not  in\n    the manner expected.\n\n    Saint Aloysius' mother was a woman who received immense joy  from\n    praying  to  God  and  meditating on the divine mysteries and the\n    life of Our Lord. She had little time for the pleasures  of  this\n    life.  As  Saint  Aloysius\tgrew, he began to resemble his mother\n    more than his father.\n\n    Saint Aloysius had learned numerous expressions from his father's\n    soldiers,  but the moment he discovered that they were vulgar, he\n    fainted from shock. This shows his immense hatred of sin (What an\n    example for us of the contempt we must have for sin).\n\n    About the time of his First Holy  Communion  (which  he  received\n    from  the  Archbishop  of  Milan,  Charles Borromeo, whom himself\n    became a great Saint), he con-secrated  his  purity  to  God  and\n    asked the Blessed Virgin to protect his innocence for life.\n\n    He wanted to share Our Lord's suffering to\tshow  his  reciprocal\n    love.  He  started by denying his passions; he avoided eating the\n    finest foods, wearing the best clothes, and would put  pieces  of\n    wood  in his bed in order to mortify himself for the love of God.\n    While he was in his early teens his  father  sent  him  (and  his\n    younger  brother)  to  the court of the Spanish King, Phillip 11.\n    Obediently, he set out to make the best of it. He mixed  in  well\n    with  the people of the royal court, for he was handsome, polite,\n    intelligent and always had something interesting to say.\n\n\n    Not long before this time, the great soldier-saint,  Saint\tIgna-\n    tius  of  Loyola,  had founded the Society of Jesus (the Jesuits)\n    towards which Saint Aloysius\n\n\n\t\t\t\t  -12-\n\n\n\n\n\n\n\n    began to have a yearning. When he finally told  his  father,  the\n    marquis flew into a rage and forbade his son to become a priest.\n\n    After a short time, his father sent him to the  great  cities  in\n    order that he be tempted away from the priesthood, but even\n\n    through these trials, Saint Aloysius grew in his desire  for  the\n    religious life and was strengthened in the virtue of purity.\n\n    The Marquis' plans were obviously failing, so he con-fronted  his\n    son:  \"Will  you or will you not obey me and forget this foolish-\n    ness?\" \"I will not, father,\" was the  in-evitable  reply.\t\"Then\n    leave from my sight and don't return until you change your mind!\"\n    With tears clouding his eyes, the Saint left the  room  to\tpray:\n    \"Tell  me Lord, what am I to do? Tell me! Tell me!\" He knelt down\n    to flagellate himself as he had done several  times  before,  but\n    this  time\the was seen. The onlooker rushed to the marquis. This\n    at last brought the proud man to his senses. \"The Lord wants him,\n    the Lord can have him.\" He gave his consent for his son to become\n    a Jesuit.\n\n    After some years (at the end of the sixteenth century), a  terri-\n    ble  epidemic  broke out in Rome. All the hospitals were full and\n    could house no more, so the Jesuits opened their own. Saint Aloy-\n    sius  did  all he could in the hospitals, particularly to prepare\n    the dying for a holy death.\n\n    Saint Aloysius himself contracted the plague  from\tcarrying  and\n    nursing  the  sick.  For three months he lay with a burning fever\n    and finally, on June 21st, 1591, he gave his  soul\tto  the  Lord\n    while gazing at a crucifix.\n\n    Let us invoke Saint Aloysius as our patron and imitate him in his\n    humility, purity and confidence in prayer.\n\n    Saint Aloysius Gonzaga, pray for us.\n\n    - Brendan Arthur\n\n\n\n\n\n\n    Prayer is as necessary to a person consecrated to the service  of\n    others as a sword is to a soldier\n\nGod Bless\n\nFrom Simon\nLines:  106\n-- \n/----------------------------------------------------------------|-------\\\n|  Simon P. Shields Programmer           Viva Cristo Rey !!  ----|----   |\n|  MONASH UNIVERSITY COLLEGE GIPPSLAND Ph:+61 51 226 357       .JHS.     |\n|  Switchback Rd. Churchill.          Fax:+61 51 226 300       |\\|/|     |\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10838, "properties": {"category": "sci.space", "text": "From: eder@hsvaic.boeing.com (Dani Eder)\nSubject: Re: Vandalizing the sky.\nOrganization: Boeing AI Center, Huntsville, AL\nLines: 18\n\nRe: Space billboards\n\nEven easier to implement than writing messages on the Moon, once upon\na time a group of space activists I belonged to in Seattle considered\na \"Goodyear Blimp in orbit\".  The idea was to use a large structure\nthat could carry an array of lights like the Goodyear Blimp has.\nPlaced in a low Earth orbit of high inclination, it could eventually\nbe seen by almost everyone on Earth.  Only our collective disapproval\nof cluttering up space with such a thing stopped us from pursuing\nit.  It had quite feasible economics, which I will not post here\nbecause I don't want to encourage the idea (if you want to do such\na thing, go figure it out for yourself).\n\nDani Eder\n\n-- \nDani Eder/Meridian Investment Company/(205)464-2697(w)/232-7467(h)/\nRt.1, Box 188-2, Athens AL 35611/Location: 34deg 37' N 86deg 43' W +100m alt.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10839, "properties": {"category": "sci.electronics", "text": "From: henslelf@nextwork.Rose-Hulman.Edu. (Lige F Hensley)\nSubject: Re: 68HC16 public domain software?\nOrganization: Computer Science Department at Rose-Hulman\nLines: 14\nNNTP-Posting-Host: g222-26.nextwork.rose-hulman.edu\nKeywords: 68hc16\n\nIn article <murashiea.15@mail.beckman.com>  writes:\n> Does anyone know of an FTP site where I might find public\n> domain software for the Motorola 68HC16 microprocessor?\n> I am looking for a basic interpreter/compilier or a 'C'\n> compiler.  Thanks in advance.\n> \t\t\t\t\tEd Murashie\nYep, at:\noak.oakland.edu\nthey have a couple different 68HC16 things in\n/pub/msdos/emulators\nand get the file\n00-index.txt\nfor a list of what they have.\nlige\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10840, "properties": {"category": "comp.sys.mac.hardware", "text": "From: dlc@umcc.umcc.umich.edu (David Claytor)\nSubject: Re: When is Apple going to ship CD300i's?\nOrganization: UMCC, Ann Arbor, MI\nLines: 43\nNNTP-Posting-Host: umcc.umcc.umich.edu\n\nIn article <1r00fdINNddt@senator-bedfellow.MIT.EDU> thewho@athena.mit.edu (Derek A Fong) writes:\n>\n>Interestingly enough, the CDROM 300i that came with my Quadra 800 has \n>only 8 disks:\n>\n>1. System Install\n>2. Kodak Photo CD sampler\n>3. Alice to Ocean\n>4. CDROM Titles\n>5. Application Demos\n>6. Mozart: Dissonant Quartet\n>7. Nautilus\n>8. Apple Chronicles\n>\n>Has anyone else noticed that they got less than everyone seems to be\n>getting with the external?  What I really feel I missed out on is what\n>is supposed to a fantastic Games demo disk.\n>\n>I have heard that people have gotten up to 9-10 disks with their drive.\n>I assume they get the 8 titles above plus Cinderella and the Games Demo CDROM.\n>\n>any comments and experiences?  Should I call Apple to complain? =)\n>\n>Derek\n>\n>\n>thewho@plume.mit.edu\n\n\nWhat I did NOT get with my drive (CD300i) is the System Install CD you\nlisted as #1.  Any ideas about how I can get one?  I bought my IIvx 8/120\nfrom Direct Express in Chicago (no complaints at all -- good price & good\nservice).\n\nBTW, I've heard that the System Install CD can be used to boot the mac;\nhowever, my drive will NOT accept a CD caddy is the machine is off.  How can\nyou boot with it then?\n\n--Dave\n\n-- \n                           dlc@umcc.ais.org  313.485.3394\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10841, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nLines: 63\n\nIn article <C4tr3M.Eqw@magpie.linknet.com> manes@magpie.linknet.com (Steve Manes) writes:\n>On the other hand, we can draw lessons from neighbors who are more\n>culturally similar, namely the Canadians...\n\nI don't think such a Canada is any more \"culturally similar\" to\nthe United States than England. In terms of laws regarding individual\nrights, restrictions on police searches, etc... (all closely\nrelated to crime) Canadian laws parallel England's and differ\ngreatly from those of the United States.\n  \n>...In fact, an exhaustive,\n>seven-year study has already been done of the respective crime rates\n>of Vancouver, British Columbia and Seattle, Washington... cities\n>with roughly the same population, urban economy, geography\n>and crime but with decidedly different approaches to gun control.\n\nActually, they do not have \"roughly the same... urban economy\", \nand extremely different ethnic composition.\n\n>Over the seven-year study, 388 homicides occurred in Seattle\n>(11.3 per 100,000) vs. 204 homicides in Vancouver (6.9 per 100,000).\n>After adjustment for differences in age and sex among the populations,\n>the relative risk of being a victim of homicide in Seattle, as\n>compared to Vancouver, was found to be 1.63.\n\nHowever, if you account for economic and ethnic differences,\nthe difference disappears completely: Seattle's minorities are\npredominatly poor, while Vancouver's are middle or upper class.\nThe rates for whites in both cities were found to be identicle,\nwhile the rate for poor, Seattle minorities was almost three\ntimes as great as for the well-to-do minorities of Vancouver.\nThe pattern seems to be one of poverty and race relations, not\none of gun control.\n\n>The authors of the report also investigated \"legally justifiable\"\n>homicides (self-defense).  Only 32 such homicides occurred during\n>the seven-year study, 11 of which were committed by police.  Only\n>21 cases of civilians acting in self-defense occurrred...\n\nThat is a gross distortion: \"Self-defense\" does not mean killing\nthe attacker. There were 21 cases of civilians killing their \nattacker in self-defence. But such cases represent less that\n0.5% of the crimes prevented by armed self-defence; for every\ncase you cite, there were over 200 other cases of self-defence\nwhere the crime was prevented but the attacker was not killed.\n(0.5%, by the way, is the most conservative possible figure,\nbased on the National Crime Survey's estimate of 80,000\ncrimes prevented by armed self-defence each year. Most other \nstudies on the subject put the figure at 500,000 to 600,000.\nThose figures would imply less than 0.08% of sucessful self-defences\ninvolve killing the attacker.) \n\nSo, more correctly, there over 4000 (possibly as many as 25,000) \ncases of civilians acting in self-defence, only 21 of which resulted\nin the death of the attacker. This is a significant factor, in\ncomparison to the 592 homicides. If memory serves, homicides\nmake up approximately 1% of the violent crimes the study\nconsidered, so the fair comparison would be 40 - 250 homicides\nprevented and 592 homicides. Clearly, the study can not be\nclose to accurate, since it ignored these cases of self-defence.\n\n                                                Frank Crary\n                                                CU Boulder\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10842, "properties": {"category": "comp.windows.x", "text": "From: kavitsky@hsi.com (Jim Kavitsky)\nSubject: comp.windows.x.intrinsics\nSummary: Clipping of character's high order bit\nNntp-Posting-Host: hsi86.hsi.com\nOrganization: 3M Health Information Systems, Wallingford CT\nLines: 38\n\nI am having a problem with the high order bit of a character being \nclipped when entered in an xterm window under motif. I have reprogrammed\nthe F1 key to transmit a <ff> <be> character sequence by using the\nfollowing line in .Xdefaults:\n\n~Ctrl ~Shift ~Alt <Key> F1 : string(0xff) string(0xbe) \\n\\\n\nI merge in this line with xrdb -merge and then create the new xterm\nwhich has the remapped F1 key. The problem that arises is that the \napplication which is recieving input at the time only sees a <7f> <3e>\nsequence, which is <ff> <be> with the high order bit of each\ncharacter being filtered or ignored.\n\nWhen I run xev and press the F1 key, I get the correct value showing \nup in the following two key events:\n\n  KeyPress event, serial 14, synthetic NO, window 0x2800001,\n  root 0x28, subw 0x0, time 2067815294, (67,80), root:(74,104),\n  state 0x0, keycode 16 (keysym 0xffbe, F1), same_screen YES,\n  XLookupString gives 0 characters:  \"\"\n\n  KeyRelease event, serial 16, synthetic NO, window 0x2800001,\n  root 0x28, subw 0x0, time 2067815406, (67,80), root:(74,104),\n  state 0x0, keycode 16 (keysym 0xffbe, F1), same_screen YES,\n  XLookupString gives 0 characters:  \"\"\n\nNotice that the keysym being transmitted is correct; 0xffbe.\nBut when I use the F1 key while in vi or in a program I wrote to \nspit back the hex values of keyboard input, I only get <7f> <3e>.\n\nDoes anyone know why the high order bit is being filtered and what\nI can do to make sure that the entire 8bits make it through to\nthe final application? Any help is greatly appreciated.\n\nPlease *email* any responses.\n\nJim Kavitsky\nkavitsky@hsi.com\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10843, "properties": {"category": "rec.sport.hockey", "text": "From: bks2@cbnewsi.cb.att.com (bryan.k.strouse)\nSubject: NHL RESULTS FOR GAMES PLAYED 4-15-93\nOrganization: AT&T\nKeywords: thursday night's boxscores\nLines: 227\n\n\n\nNHL RESULTS FOR GAMES PLAYED 4/15/93.\n\n--------------------------------------------------------------------------------\n                                  STANDINGS\n      PATRICK              ADAMS              NORRIS              SMYTHE\n TM    W  L  T  PT   TM    W  L  T  PT   TM    W  L  T  PT   TM    W  L  T  PT\n \nxPIT  56 21  7 119  xBOS  51 26  7 109  xCHI  47 25 12 106  xVAN  46 29  9 101\nyWAS  42 34  7  91  yQUE  47 27 10 104  yDET  47 28  9 103  yCAL  43 30 11  97\nyNJ   40 36  7  87  yMON  48 30  6 102  yTOR  44 29 11  99  yLA   39 35 10  88\nyNYI  39 37  7  85  yBUF  38 36 10  86  ySTL  37 36 11  85  yWIN  40 37  7  87\n PHL  35 37 11  81   HAR  26 51  6  58   MIN  36 38 10  82   EDM  26 50  8  60\n NYR  34 38 11  79   OTT  10 70  4  24   TB   23 54  7  53   SJ   11 71  2  24\n\nx - Clinched Division Title\ny - Clinched Playoff Berth\n\n--------------------------------------------------------------------------------\n\nMinnesota North Stars  (36-38-10)   1   1   1   -   3\nDetroit Red Wings       (47-28-9)   0   2   3   -   5\n\n1st period: MIN, McPhee 18 - (Ludwig) 1:23\n\t\n2nd period: MIN, Dahlen 34 - (Courtnall, Gagner) (pp) 0:31\n\t    DET, Drake 18 - (Howe, Ogrodnick) 9:14\n\t    DET, Ysebaert 34 - (Lidstrom, Howe) (pp) 17:37\n\n3rd period: DET, Ciccarelli 41 - (Coffey, Chiasson) (pp) 0:32\n\t    DET, Kennedy 19 - (Burr, Probert) 3:42\n\t    DET, Yzerman 58 - (Ciccarelli, Gallant) 6:17\n\t    MIN, Dahlen 35 - (Courtnall, Gagner) 19:11\n\nPowerplay Opportunities-North Stars 1 of 2\n\t\t\tRed Wings   2 of 4\n\nShots on GOal-\tNorth Stars  10   9  11  -  30\n\t\tRed Wings     6  15   8  -  29\n\nMinnesota North Stars--Casey (26-26-5) (29 shots - 24 saves)\nDetroit Red Wings--Cheveldae (34-24-7) (30 shots - 27 saves)\n\nATT-19,749\n\n--------------------------------------------------------------------------------\n\nPhiladelphia Flyers  (35-37-11)   1   2   4   -   7\nBuffalo Sabres       (38-36-10)   0   3   1   -   4\n\n1st period: PHL, Recchi 52 - (Galley, Lindros) 0:18\n\n2nd period: PHL, Hawgood 11 - (Dineen, Eklund) (pp) 2:15\n\t    PHL, Dineen 33 - (McGill) (sh) 5:40\n\t    BUF, Barnaby 1 - (Hawerchuk, Smehlik) (pp) 7:48\n\t    BUF, Wood 18 - (LaFontaine, Ledyard) (pp) 17:34\n\t    BUF, Mogilny 75 - (Hawerchuk, Carney) (pp) 18:56\n\n3rd period: PHL, Eklund 11 - (Dineen, Beranek) 4:42\n\t    BUF, Mogilny 76 - (Errey, LaFontaine) 5:24\n\t    PHL, Dineen 34 - (Brind'Amour) (pp) 6:44\n\t    PHL, Dineen 35 - (Brind'Amour, Galley) (sh) 8:39\n\t    PHL, Acton 8 - (Dineen, Brind'Amour) 19:48\n\nPowerplay Opportunities-Flyers 2 of  5\n\t\t\tSabres 3 of 10\n\nSHots on Goal-\tFlyers   6   7  13  -  26\n\t\tSabres   8  19  18  -  45\n\nPhiladelphia Flyers--Soderstrom (20-17-6) (45 shots - 41 saves)\nBuffalo Sabres--Fuhr (10 shots - 7 saves)  Hasek (11-10-4) (5:40 second) \n\t\t(16 shots - 12 saves)\n\nATT-15,042\n\n--------------------------------------------------------------------------------\n\nEdmonton Oilers  (26-50-8)   0   0   0   -   0\nWinnipeg Jets    (40-37-7)   1   2   0   -   3\n\n1st period: WIN, Shannon 20 - (Steen, Davydov) (pp) 2:08\n\t\n2nd period: WIN, Selanne 76 - (Olausson) 5:25\n\t    WIN, Zhamnov 25 - (Selanne) 19:42\n\n3rd period: NONE\n\nPowerplay Opportunities-Oilers 0 of 3\n\t\t\tJets   1 of 6\n\nSHots on GOal-\tOilers   7   8  16  -  31\n\t\tJets    10  16  16  -  42\n\nEdmonton Oilers--Ranford (17-38-6) (42 shots - 39 saves)\nWinnipeg Jets--Essensa (33-26-6) (31 shots - 31 saves)\n\nATT-12,229\n\n--------------------------------------------------------------------------------\n\nToronto Maple Leafs  (44-29-11)   1   1   0   -   2\nChicago BlackHawks   (47-25-12)   0   2   1   -   3\n\n1st period: TOR, Baumgartner 1 - 18:40\n\n2nd period: CHI, Roenick 50 - (Murphy, Chelios) 1:29\n\t    TOR, Andreychuk 55 - (Mironov, Lefebvre) 13:22\n\t    CHI, Murphy 7 - (Roenick, Chelios) (pp) 19:05\n\n3rd period: CHI, Matteau 15 - 10:51\n\nPowerplay Opportunities-Maple Leafs 1 of 3\n\t\t\tBlackHawks  1 of 7\n\nShots on Goal-\tMaple Leafs  14   4   8  -  26\n\t\tBlackHawks   10  13  13  -  36\n\nToronto Maple Leafs--Potvin (25-15-7) (36 shots - 33 saves)\nChicago BlackHawks--Belfour (41-18-11) (26 shots - 24 saves)\n\nATT-17,856\n\n--------------------------------------------------------------------------------\n\nTampa Bay Lightning   (23-54-7)   0   2   3   -   5\nSt. Louis Blues      (37-36-11)   3   3   0   -   6\n\n1st period: STL, Shanahan 50 - (Brown, Felsner) 10:44\n\t    STL, Miller 23 - (Bassen, Brown) 19:38\n\t    STL, Bassen 8 - (Zombo) 19:48\n\n2nd period: STL, Bassen 9 - (Hedican, Miller) 0:14\n\t    STL, Miller 24 - (Zombo, Hedican) 11:09\n\t    TBL, Maltais 7 - (Hamrlik) 11:27\n\t    TBL, Bergland 3 - (Harvey, Gilhen) 17:16\n\t    TBL, Shanahan 51 - (Emerson) 19:38\n\n3rd period: TBL, Creighton 19 - (Bergland, Bergevin) 0:40\n\t    TBL, Chambers 10 - (Zamuner, Cole) 10:37\n\t    TBL, Cole 12 - (Beers, Bradley) 11:58\n\nPowerplay Opportunities-Lightning 0 of 3\n\t\t\tBlues     0 of 4\n\nSHots on GOal-\tLightning   5  12  14  -  31\n\t\tBlues      11  11   4  -  26\n\nTampa Bay Lightning--Jablonski (8-24-4) (22 shots - 16 saves)  Bergeron (0:00\n\t\t     third) (4 shots - 4 saves)\nSt. Louis Blues--Joseph (29-28-9) (18 shots - 15 saves)  Hebert (19:20 third)\n\t         (13 shots - 11 saves)\n\nATT-17,816\n\n--------------------------------------------------------------------------------\n\nSan Jose Sharks   (11-71-2)   0   1   2   -   3\nCalgary Flames   (43-30-11)   0   4   3   -   7\n\n1st period: NONE\n\n2nd period: SJS, Garpenlov 22 - (Odgers, Gaudreau) (pp) 3:37\n\t    CAL, Nieuwendyk 38 - (MacInnis, Suter) (pp) 5:26\n\t    CAL, Ranheim 21 - (Otto, Suter) 10:43\n\t    CAL, Yawney 1 - (Nieuwendyk, Roberts) 11:26\n\t    CAL, Berube 4 - (Paslawski, Skrudland) 13:45\n\n3rd period: SJS, Wood 1 - (Odgers, Kisio) 8:00\n\t    CAL, Reichel 40 - 9:26\n\t    CAL, Roberts 38 - (Musil, Paslawski) (pp) 12:27\n\t    SJS, Kisio 26 - 13:10\n\t    CAL, Paslawski 18 - (Ashton, Stern) 16:16\n\nPowerplay Opportunities-Sharks 1 of 3\n\t\t\tFlames 2 of 4\n\nShots on Goal-\tSharks   5  11   9  -  25\n\t\tFlames  11  14   7  -  32\n\nSan Jose Sharks--Irbe (7-25-0) (32 shots - 25 saves)\nCalgary Flames--Vernon (29-26-9) (25 shots - 22 saves)\n\nATT-19,532\n\n--------------------------------------------------------------------------------\n\nVancouver Canucks   (46-29-9)   1   2   5   -   8\nLos Angeles Kings  (39-35-10)   2   3   1   -   6\n\n1st period: LAK, Robitaille 63 - (Gretzky, Sandstrom) 1:39\n\t    VAN, Babych 3 - (Craven, Nedved) (pp) 9:43\n\t    LAK, Sandstrom 25 - (Gretzky, Robitaille) 10:06\n\n2nd period: VAN, Linden 32 - (Ronning, Courtnall) (pp) 0:54\n\t    VAN, Ward 22 - (Hunter, Nedved) 1:24\n\t    LAK, Gretzky 16 - (Sandstrom, Robitaille) 6:57\n\t    LAK, Zhitnik 12 - (Kurri, Robitaille) (pp) 14:02\n\t    LAK, Millen 23 - (Hardy) (pp) 16:57\n\n3rd period: VAN, Ronning 27 - (Dirk) 5:28\n\t    VAN, Ronning 28 - (Courtnall, Linden) (pp) 11:15\n\t    VAN, Linden 33 - (Courtnall, Ronning) 11:27\n\t    LAK, Donnelly 29 - (Millen, Granato) (pp) 14:35\n\t    VAN, Courtnall 31 - (Ronning, Ratushny) 14:54\n\t    VAN, Ronning 29 - (Linden, Diduck) (en) 18:47\n\nPowerplay Opportunities-Canucks 3 of  6\n\t\t\tKings   3 of 10\n\nShots on Goal-\tCanucks   8   6  16  -  30\n\t\tKings    10  21  10  -  41\n\nVanocuver Canucks--Whitmore (18-8-4) (41 shots - 35 saves)\nLos Angeles Kings--Stauber (23 shots - 17 saves)  Hrudey (17-21-6) (11:27\n\t\t   third) (6 shots - 5 saves)\n\nATT-16,005\n\n--------------------------------------------------------------------------------\n\n\n\\|||||/\n-SPIKE-\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10844, "properties": {"category": "talk.politics.guns", "text": "From: pyron@skndiv.dseg.ti.com (Dillon Pyron)\nSubject: Re: My Gun is like my American Express Card\nLines: 131\nNntp-Posting-Host: skndiv.dseg.ti.com\nReply-To: pyron@skndiv.dseg.ti.com\nOrganization: TI/DSEG VAX Support\n\n\nIn article <CMM.0.90.2.735132009.thomasp@surt.ifi.uio.no>, Thomas Parsli <thomasp@ifi.uio.no> writes:\n>Gun clubs:\n>If you are a member you CAN borrow weapons....(Suprised??)\n>You are supposed to train with a .22 for the 6 months, THEN\n>you can start with anything bigger.\n>\n>Drivers licence:\n>Forgot that USA is THE land of cars.....\n>Getting one in Scandinavia (and northern europe) is not easy.\n>Average time is about 20 hours of training, and the cost is rather......\n>But we think this is acceptable because a car is NOT a toy, and\n>bad drivers tend to hurt OTHERS.\n>(If you are really bad, you WON'T get a lincence!)\n>\n>Abuse by the goverment:\n>This seems to be one of the main problems; Any harder gun-control\n>would just be abused by the goverment.(!)\n>Either some of you are a little paranoid (no offence...) OR you should\n>get a new goverment. (You do have elections??)\n\nUnfortunately, elections can, and are, bought.  Promise the voters money, and\nthey will vote for you.\n\n>\n>Guns 'n Criminals:\n>MOST weapons used by criminals today are stolen.\n>Known criminals can NOT buy weapons, that's one of the points of gun control.\n\nSame here.  Convicted felons may not legally purchase firearms.\n\n>And because gun control are strict in WHOLE scandinavia (and most of europe),\n>we dont have any PROBLEM with smuggled guns.\n\nThat you know of.\n\nWhile I lived in the DBR, a gang robbed a joint US Army/Bundewehr armoury and\ngot several hundred M-16s, ammunition, handguns and some explosives.  When I\nleft two years later, there were no clues.\n\n>\n>Mixing weapons and things that can be use as one:\n>What I meant was that cars CAN kill, but they are not GUNS!\n>Someone said that if we 'ban' guns we'd have to ban cars to, because they 'kill' to...\n>I don't think we should argue on this one..... ;)\n>\n>The issue (I hope..):\n>I think we all agree that the criminals are the main problem.\n>Guns are not a problem, but the way they are used is.... (and what are they for??)\n\nWho uses them is the problem.  Crime, in the U.S., is \"no big deal\" if you are\nthe criminal.  How about 5 years for murder.  Credit for time served (in jail,\nwaiting for trial) and you are out in 12 months, worst case.  If we would put\ncriminals, especially violent ones, in the slam for true sentences, crime would\ndrop.  Instead, we reward them for being good and let them out early, very\nearly.\n\n>\n>I think this discusion is interesting when you think of (ex)Jugoslavia:\n>They should all have weapons, it's their rigth to have them, and if they use them\n>to kill other (Innocent) people the problem is humans, not guns.\n\nSerbs, Croats and Muslims have been killing each other almost since before the\ninvention of guns.  Old women are throwing stones at UN trucks.  This is a\nhatred that goes beyond reason.\n>\n>If 50% of ALL murders was done with axes, would you impose some regulations on them\n>or just say that they are ment to be used at trees, and that the axe is not a problem,\n>it's the 'axer' ??\n>(An example, don't flame me just because not exactly 50% are killed by guns...)\n\nYes, the problem is the user.  Question back (since you are one of the rational\nones):  If all gun crime were to stop, would you support dropping all gun\ncontrols?\n\n>\n>Think about the situation in Los Angeles where people are buying guns to protect\n>themselves. Is this a good situation ?? Is it the rigth way to deal with the problem ??\n\nThey did not believe, from experience, that the \"police\" (including National\nGuard) could/would protect them.  Unless you want to argue that a human being\ndoes not have a right to protect him/herself, they did the right thing.  What\nwould you suggest as a defense against a mob throwing bottles and rocks, and\nalso likely armed with stolen firearms?\n\n>\n>If everybody buys guns to protect themselves from criminals (and their neighbor who have\n>guns) what do you think will happen ?? (I mean if everybody had a gun in USA)\n\nCriminals would move to Scandinavia??? :-)  The average criminal would look for\na less hazardous job, and the rest would likely be buried at county expense.\n\n>\n>Don't flame the Englishmen because of Northern Irland, they have gun control that works\n>(in England) and fonds from USA are one of the reasons why IRA can bomb innocents...\n>(Something about throwing stones in glass houses...)\n\nPersonally, I criticize the fools who send money to the IRA to \"make Ireland\nfree\".  Of course, this is the last thing the IRA wants, because they lose\npower if England pulls out.  But that's for another group.\n\n>Don't flame them because of what to (three?) children did either.\n\nThe U.S. has roughly 20 times the major sporting events as the U.K..  How many\nriots did we have at sporting events last year (off the playing field)? \nHooligan is a word never used when reffering to sports fans here.  I guess\nthat's where the different cultures thing comes in.\n\n>(Can an Jugoslav have an oppinion on guns or even peace??) (YES!)\n\nYes.  The question is, is the problem one of too many guns (mostly from the\narmy) or not enough (nonSerbians can not defend themselves.\n\n>\n>(My numbers about crime rates after restrictions on shot-guns are from the police\n>and the Statistisk Sentralbyraa) (understood that one Sorenson??)\n>\n>LAST WORD:\n>Responsible gun owners are not a problem, but they will be affected if you want to protect \n>your citicens.\n\nBut disarming responsible gun owners is not the solution.  Yet, that is exactly\nwhat HCI is proposing.\n--\nDillon Pyron                      | The opinions expressed are those of the\nTI/DSEG Lewisville VAX Support    | sender unless otherwise stated.\n(214)462-3556 (when I'm here)     |\n(214)492-4656 (when I'm home)     |Texans: Vote NO on Robin Hood.  We need\npyron@skndiv.dseg.ti.com          |solutions, not gestures.\nPADI DM-54909                     |\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10845, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: adriene_nazaretian@qm.yale.edu (Adriene Nazaretian)\nSubject: Re: win nt\nNntp-Posting-Host: gorgon.cis.yale.edu\nOrganization: Yale University; New Haven, Connecticut   USA\nLines: 22\n\nIn article <1pq66v$kkt@gazette.bcm.tmc.edu>, raymaker@bcm.tmc.edu (Mark Raymaker) says:\n>\n>Is anyone aware of existing ipx/netx software for WindowsNT or\n>is attachment to Netware a FUTURE release?\n>please respond to internet mail: raymaker@bcm.tmc.edu\n>thanks\n>\n\nI believe the beta version of the service is available via ftp on \nftp.cica.indiana.edu\nin pub/pc/win3/nt called something like nwnt.zip\n\nThere is an INDEX ascii file there, which lists the programs in that directory\nand what they do.\n\nunfortunately this beta will also disable netbeui and tcp/ip over your\nprimary nic, so if you really want to run it, get yourself an extra nic and\nbind it to that.  \n\nOtherwise wait for next release, like I am.\n\nAdriene\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10846, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: bgrubb@dante.nmsu.edu (GRUBB)\nSubject: Re: IDE vs SCSI\nOrganization: New Mexico State University, Las Cruces, NM\nLines: 9\nDistribution: world\nNNTP-Posting-Host: dante.nmsu.edu\n\nIn PC Magazine April 27, 1993:29 \"Although SCSI is twice as fasst as ESDI,\n20% faster than IDE, and support up to 7 devices its acceptance ...has\nlong been stalled by incompatability problems and installation headaches.\"\nnote what it does NOT site as a factor: PRICE.\nint eh same article the PC would will get plug and play SCSI {from the\narticle it seems you get plug and play SCSI-1 only since SCSI-2 in FULL\nimplimentation has TEN NOT 7 devices.}\nSCSI-1 intergration is sited as another part of the MicroSoft Plug and play\nprogram.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10847, "properties": {"category": "rec.autos", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Jay Lorenzana <U40348@uicvm.uic.edu>\nSubject: Eagle Talon TSi--LEMON?\nLines: 22\n\n\nDear Netters:\n\nI am looking to buy a used Eagle Talon '91 or '91 TSi AWD.\nQuestion is that the '91 TSi AWD was mentioned in the\nApril Consumer Reports to a car to avoid!\n\nIn particular, the manual transmission, electrical system,\nand brakes were below par (in both models).  A friend of mine\nownes a '90 TSi AWD and he has had 2 brake jobs (pads), one\nstuck valve, and some clutch/transmission problem, something\nabout sticking/grinding into second gear.  This doesn't seem\ntoo bad if one \"beats\" on his car.\n\nI am willing to suffer reliability--for speed and looks.  Seems\nyou have to pay big buck if you want all three.  Anyway can\nanyone please let me know how you like your Talon, and any\nproblems you may have had, and if the repairs are worth it.\n\nThanks for any responses!\n\n-Jay\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10848, "properties": {"category": "sci.space", "text": "From: gfk39017@uxa.cso.uiuc.edu (George F. Krumins)\nSubject: Re: space news from Feb 15 AW&ST\nOrganization: University of Illinois at Urbana\nLines: 23\n\njbreed@doink.b23b.ingr.com (James B. Reed) writes:\n\n>In article <C5ros0.uy@zoo.toronto.edu>, henry@zoo.toronto.edu (Henry Spencer) writes:\n>|> [Pluto's] atmosphere will start to freeze out around 2010, and after about\n>|> 2005 increasing areas of both Pluto and Charon will be in permanent\n>|> shadow that will make imaging and geochemical mapping impossible.\n\nIt's my understanding that the freezing will start to occur because of the\ngrowing distance of Pluto and Charon from the Sun, due to it's\nelliptical orbit. It is not due to shadowing effects. \n\n>Where does the shadow come from?  There's nothing close enough to block\n>sunlight from hitting them.  I wouldn't expect there to be anything block\n>our view of them either.  What am I missing?\n\nPluto can shadow Charon, and vice-versa.\n\nGeorge Krumins\n-- \n--------------------------------------------------------------------------------\n|  George Krumins                                                              |\n|  gfk39017@uxa.cso.uiuc.edu                                                   |\n|  Pufferfish Observatory                                                      |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10849, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: gw18@prism.gatech.EDU (Greg Williams)\nSubject: Re: Many people on one machine\nDistribution: git\nOrganization: Georgia Institute of Technology\nLines: 23\n\nIn <93111.154952CDA90038@UCF1VM.BITNET> CDA90038@UCF1VM.BITNET (Mark Woodruff) writes:\n\n>I have several people sharing my machine and would like to set up separate\n>environments under Windows for each of them.  Is there some way of setting\n>things up separate desktops/directories for each of them?  Ideally,\n>I'd like totally separate virtual machines.  I'd be willing to settle for\n>less, and may end up having batch files that copy .ini files around\n>depending on who wants to use the machine.\n\nYou could use DOS 6 to do this partly.  You can set up different config.sys\nand autoexec.bat commands for each user, and they just have to select their\nmenu option on bootup.  Then you can have the autoexec.bat copy the win.ini\nand system.ini files and change directories for them.  When they exit windows,\nit can copy back generic .ini files if you want.\n\nThis is the only way I can think of.  There may be some programs somewhere\nthat allow you to do this better, though using DOS 6 allows each person to\nhave a custom config.sys and autoexec.bat.\n-- \nGreg Williams\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gw18\nInternet: gw18@prism.gatech.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10850, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "Organization: Penn State University\nFrom: <FWR100@psuvm.psu.edu>\nSubject: Re: 80386 and 80486: What's the difference?\nLines: 34\n\nIn article <joedal.735221221@dfi.aau.dk>, joedal@dfi.aau.dk (Lars Joedal) says:\n>\n>Except from clock frequency, what are the differences between the\n>various types of 386 and 486 processors?\n>The following is a list with what I know (or perhaps only what I\n>think I know!). Can anybody extend & correct?\n>\n>\n>80386:  True 32 bit processor.\n>        (cache?)\n         No cache, also called 386DX.\n\n>80386SX:  Emulates 80386 with a 16 bit bus.\n     It has the same internals as the 386, is a real 32-bit processor, just has\n     16 bit hookup to the outside world.\n\n>80486:  True 32 bit processor.\n>        Internal mathematical coprocessor (Correct?)\n            Yes, optimized 387 internal.\n>        Internal cache (Correct? How big?)\n            Yes, 8K.\n>        (extended instruction set in any way?)\n            Yes, but only a few instructions, nothing noteworthy.\n\n>80486SX:  Probably sorta like 80486...\n            486 with no coprocessor.\n\n>80486DX:  Probably sorta like 80386...\n            Nope.  Just another name for the 486.\n-------------------------------------------------------------------------\nFrank Racis - FWR100@psuvm.psu.edu - fwr@eclu.psu.edu\nComputers are useless; they can only give answers.\n-------------------------------------------------------------------------\n\"I will not raise taxes on the middle class to pay for my programs\" -WJBC\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10851, "properties": {"category": "rec.motorcycles", "text": "From: jeq@lachman.com (Jonathan E. Quist)\nSubject: Re: Bikes vs. Horses (was Re: insect impacts f\nNntp-Posting-Host: birdie.i88.isc.com\nOrganization: Lachman Technology, Incorporated, Naperville, IL\nLines: 21\n\nIn article <txd.734810267@Able.MKT.3Com.Com> txd@ESD.3Com.COM (Tom Dietrich) writes:\n>>In a previous article, egreen@east.sun.com (Ed Green - Pixel Cruncher) says:\n\n[lots of things, none of which are quoted here]\n\n>>>In article rgu@usenet.INS.CWRU.Edu, ai598@cleveland.Freenet.Edu (Mike Sturdevant) writes:\n>>>  You think your *average* dirt biker can jump\n>>>a 3 foot log? \n>\n>How about an 18\" log that is suspended about 18\" off of the ground?\n>For that matter, how about a 4\" log that is suspended 2.5' off of the\n>ground?\n\nOh, ye of little imagination.\n\nYou don't jump over those - that's where you lay the bike down and slide under!\n-- \nJonathan E. Quist        jeq@lachman.com       Lachman Technology, Incorporated\nDoD #094, KotPP, KotCF '71 CL450-K4 \"Gleep\"                 Naperville, IL\n __       There's nothing quite like the pitter-patter of little feet,\n \\/                   followed by the words \"Daddy!  Yay!\"\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10852, "properties": {"category": "comp.windows.x", "text": "From: daniels@NeoSoft.com (Brad Daniels)\nSubject: Fresco status?\nOrganization: NeoSoft Communications Services -- (713) 684-5900\nLines: 15\n\nI've been hearing rumblings about Fresco, and it sounds like it may be\nwhat I'm looking for, but how far is it from release, or at least some kind\nof availability?  How similar is it to InterViews?  If I code to InterViews,\nwill my code work with Fresco?  How about Motif?  I've heard some mention\nof versions of InterViews which support Motif.  Will it be feasible to use\nMotif with Fresco?\n\nAny information would be much appreciated.\n\n- Brad\n-- \nBrad Daniels\t\t`\t|  \"If money can't buy happiness,\ndaniels@neosoft.com\t\t|   I guess I'll have to rent it.\"\nI don't work for NeoSoft, and\t|\t\t- Weird Al Yenkovic\ndon't speak for my employer.\t|\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.511+0000", "event": "documents", "entityId": 10853, "properties": {"category": "rec.autos", "text": "From: jfox@hooksett.East.Sun.COM (John Fox - SunExpress IR)\nSubject: Re: It's a rush... (was Re: Too fast)\nOrganization: Sun Microsystems, Inc.\nLines: 50\nDistribution: world\nReply-To: jfox@hooksett.East.Sun.COM\nNNTP-Posting-Host: hooksett.east.sun.com\n\nIn article 5276@unisql.UUCP, wrat@unisql.UUCP (wharfie) writes:\n>In article <C5r43y.F0D@mentor.cc.purdue.edu> marshatt@feserve.cc.purdue.edu (Zauberer) writes:\n>>I guess I wasn't clear enough here. I said the roads WERE designed for \n>>speeds of 80 or so and still be safe. The current 55-65 will add a saftey\n>>margin.\n>\n>\tThey were designed for speeds of upwards of 80 - I forget the\n>exact spec - but for military vehicles.  That's 80 in a 1958 Dodge \n>Powerwagon.  Not 80 in a 1993 Ford Taurus.\n>\n>\n>\n>\n\n\nAh yes, the 58 Powerwagon. Now there was a vehicle that today's cars can't\ntouch in terms of high speed road holding ability! :-)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10854, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Katinka van der Linden <katinka@fenk.wau.nl>\nSubject: Re: Quadra SCSI Problems???\nX-Xxdate: Mon, 19 Apr 93 13:30:08 GMT\nNntp-Posting-Host: mac244.fenk.wau.nl\nOrganization: Wageningen Agricultural University\nX-Useragent: Nuntius v1.1.1d17\nLines: 10\n\nI would like more info on this if anybody has it. Our Exabyte\n8500 tapedrive has never been working from the Quadra 950.\nWe have been trying it since September 1992, replaced cabling,\ninits, I don't know what all. All the \"industry experts\" we\nphoned (the tapedrive dealer, our Apple dealer, the software\ndealer) all say it's our fault, or they don't know. The last\nthing they said was that we needed a special Quadra SCSI terminator\n(???). Anybody know more? Thanks,\n\nKatinka van der Linden     <katinka@FenK.wau.nl>\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10855, "properties": {"category": "talk.politics.guns", "text": "From: lsacks@angelo.amd.com (Larry Sacks)\nSubject: Re: Guns GONE. Good Riddance !\nOrganization: Advanced Micro Devices, Inc.\nLines: 29\n\njrm@gnv.ifas.ufl.edu writes:\n\n>You are loosing.\n\n[stuff deleted]\n\n>Avoid situations which encourage criminals. Then you will\n>be as safe as possible. Such as it is ...\n\nReally?  How do you avoid situations which encourage criminals?  I'd\nreally like to know.  Would you, say, prohibit female college\nstudents from riding their bicycles near the university during the\ndaytime?  \n\nSounds a bit drastic, doesn't it?  Especially when the university is\nlocatd in a nice residential area.  A friend of mine was attacked and\nnearly raped in just this situation.  The police didn't feel she was\nin a situation which 'encouraged criminals'.\n\nWhat do you think?  Should we just tell her, that it was her fault\nfor daring to ride a bicycle in the middle of the day?  That she\ndidn't avoid a situation that encouraged criminals?  If that's the\ncase, then we'd all better put bars on our doors and windows and\npray for a police state to keep us all safe.  Crime happens in all\nsituations - there are no defined areas that criminals avoid.  \n\nLarry Sacks\nAdvanced Micro Devices\nlsacks@angelo.amd.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10856, "properties": {"category": "alt.atheism", "text": "From: Steve_Mullins@vos.stratus.com\nSubject: Re: Bible Quiz\nOrganization: Stratus Computer, Marlboro Ma.\nLines: 20\nNNTP-Posting-Host: m72.eng.stratus.com\n\n\nIn article <1993Apr16.130430.1@ccsua.ctstateu.edu> kellyb@ccsua.ctstateu.edu wrote: \n>In article <kmr4.1563.734805744@po.CWRU.edu>, kmr4@po.CWRU.edu (Keith M. Ryan) writes:\n>>    Only when the Sun starts to orbit the Earth will I accept the Bible. \n>> \n>     Since when does atheism mean trashing other religions?There must be a God\n                                            ^^^^^^^^^^^^^^^\n>     of inbreeding to which you are his only son.\n\n\na) I think that he has a rather witty .sig file.  It sums up a great\n   deal of atheistic thought (IMO) in one simple sentence.\nb) Atheism isn't an \"other religion\".\n\n\nsm\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\nSteve_Mullins@vos.stratus.com    () \"If a man empties his purse into his\nMy opinions <> Stratus' opinions ()   head, no one can take it from him\n------------------------------   ()   ---------------Benjamin Franklin\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10857, "properties": {"category": "sci.electronics", "text": "From: frode@dxcern.cern.ch (Frode Weierud)\nSubject: Magstrip Card Reader Info\nKeywords: Magstripe, Card Reader, American Magnetics, Magnetics\nReply-To: frode@dxcern.cern.ch\nOrganization: CERN European Lab for Particle Physics\nLines: 26\n\n\nCan somebody please help me with information about an\nAmerican Magnetics Corporation Magstripe Card Reader that\nI recently bought locally from a surplus dealer.\n\nOn the rear it has the following information:\n\n\tAmerican Magnetics Corporation\n\tCarson, CA, USA\n\tMagstripe Card Reader\n\tModel 41,\n\tP/N 507500 - 2300112311\n\nIt is fitted with a cable with a RS232 Cannon 25-pin connector on\nthe end and has a separate power connector like the once used with\nwall chargers.\n\nFrode\n\n**************************************************************************\n*\tFrode Weierud\t\tPhone\t:\t41 22 7674794\t\t *\n*\tCERN, SL\t\tFax\t:\t41 22 7823676\t\t *\n*\tCH-1211 Geneva \t23\tE-mail\t:\tfrode@dxcern.cern.ch\t *\n*\tSwitzerland\t\t\t   or\tweierud@cernvm.cern.ch\t *\n**************************************************************************\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10858, "properties": {"category": "misc.forsale", "text": "From: Doug_Akerman@abcd.houghton.mi.us (Doug Akerman)\nSubject: commodoree\nDistribution: world\nOrganization: Amiga BitSwap Central Dispatch\nLines: 15\n\nI have a wonderful Commodore 128 for sale!!!!\n          Also included:\n                   1571 disk drive\n                   color moniter\n                   power supply (great shape)\n                   software\n                   joysticks\n                   2 300 baud modems (old, but useable)\n\n\ncontact doug  (906) 487-0369 or (815) 623-6447\n\n\n-- Via DLG Pro v0.995\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10859, "properties": {"category": "comp.graphics", "text": "From: lm001@rrz.Uni-Koeln.DE (Erwin H. Keeve)\nSubject: Marchin Cubes\nOrganization: Regional Computing Center, University of Cologne\nLines: 27\nDistribution: world\nNNTP-Posting-Host: rs1.rrz.uni-koeln.de\nKeywords: Polygon Reduction\n\n\n\nHi there,\n\nis there anybody who know a polygon_reduction algorithm for\nmarching cube surfaces. e.g. the algirithm of Schroeder,\nSiggraph'92.\n\nFor any hints, hugs and kisses.\n\n- Erwin\n\n                                                 ,,,\n                                                (o o)\n ___________________________________________oOO__(-)__OOo_____________\n|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|_|\n|_|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|\n|                               |                                     |\n| Erwin Keeve                   | adress:  Peter-Welter-Platz 2       |\n|                               |          W-5000 Cologne 1, Germany  |\n|                               |                                     |\n| Dept. of Computergraphics &   | phone:   +49-221-20189-132 (-192)   |\n|          Computeranimation    | FAX:     +49-221-20189-17           |\n|                               |                                     |\n| Academy of Media Arts Cologne | Email:   keeve@khm.uni-koeln.de     |\n|_______________________________|_____________________________________|\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10860, "properties": {"category": "alt.atheism", "text": "From: bil@okcforum.osrhe.edu (Bill Conner)\nSubject: Re: [soc.motss, et al.] \"Princeton axes matching funds for Boy Scouts\"\nNntp-Posting-Host: okcforum.osrhe.edu\nOrganization: Okcforum Unix Users Group\nX-Newsreader: TIN [version 1.1 PL6]\nLines: 162\n\nC.Wainwright (eczcaw@mips.nott.ac.uk) wrote:\n: I\n: |> Jim,\n: |> \n: |> I always thought that homophobe was only a word used at Act UP\n: |> rallies, I didn't beleive real people used it. Let's see if we agree\n: |> on the term's definition. A homophobe is one who actively and\n: |> militantly attacks homosexuals because he is actually a latent\n: |> homosexual who uses his hostility to conceal his true orientation.\n: |> Since everyone who disapproves of or condemns homosexuality is a\n: |> homophobe (your implication is clear), it must necessarily follow that\n: |> all men are latent homosexuals or bisexual at the very least.\n: |> \n: \n: Crap crap crap crap crap.  A definition of any type of 'phobe comes from\n: phobia = an irrational fear of.  Hence a homophobe (not only in ACT UP meetings,\n: the word is apparently in general use now.  Or perhaps it isn't in the bible?  \n: Wouldst thou prefer if I were to communicate with thou in bilespeak?)\n: \n: Does an arachnophobe have an irrational fear of being a spider?  Does an\n: agoraphobe have an irrational fear of being a wide open space?  Do you\n: understand English?\n: \n: Obviously someone who has  phobia will react to it.  They will do their best\n: to avoid it and if that is not possible they will either strike out or\n: run away.  Or do gaybashings occur because of natural processes?  People\n: who definately have homophobia will either run away from gay people or\n: cause them (or themselves) violence.\n: \n\nIsn't that what I said ...\nWhat are you taking issue with here, your remarks are merely\nparenthetical to mine and add nothing useful.\n\n: [...]\n: \n: |> It would seem odd if homosexuality had any evolutionary function\n: |> (other than limiting population growth) since evolution only occurs\n: |> when the members of one generation pass along their traits to\n: |> subsequent generations. Homosexuality is an evolutionary deadend. If I\n: |> take your usage of the term, homophobe, in the sense you seem to\n: |> intend, then all men are really homosexual and evolution of our\n: |> species at least, is going nowhere.\n: |> \n: \n: So *every* time a man has sex with a woman they intend to produce children?\n: Hmm...no wonder the world is overpopulated.  Obviously you keep to the\n: Monty Python song:  \"Every sperm is sacred\".  And if, as *you* say, it has\n: a purpose as a means to limit population growth then it is, by your own \n: arguement, natural.\n\nConsider the context, I'm talking about an evolutionary function. One\nof the most basic requirements of evolution is that members of a\nspecies procreate, those who don't have no purpose in that context.\n\n: \n: |> Another point is that if the offspring of each generation is to\n: |> survive, the participation of both parents is necessary - a family must\n: |> exist, since homosexuals do not reproduce, they cannot constitute a\n: |> family. Since the majority of humankind is part of a family,\n: |> homosexuality is an evolutionary abberation, contrary to nature if you\n: |> will.\n: |> \n: \n: Well if that is true, by your own arguements homosexuals would have \n: vanished *years* ago due to non-procreation.  Also the parent from single\n: parent families should put the babies out in the cold now, cos they must,\n: by your arguement, die.\n\nBy your argument, homosexuality is genetically determined. As to your\nsecond point, you prove again that you have no idea what context\nmeans. I am talking about evolution, the preservation of the species,\nthe fundamental premise of the whole process.\n: \n: |> But it gets worse. Since the overwhelming majority of people actually\n: |> -prefer- a heterosexual relationship, homosexuality is a social\n: |> abberation as well. The homosexual eschews the biological imperative\n: |> to reproduce and then the social imperative to form and participate in\n: |> the most fundamental social element, the family. But wait, there's\n: |> more.\n: |> \n: \n: Read the above.  I expect you to have at least ten children by now, with\n: the family growing.  These days sex is less to do with procreation (admittedly\n: without it there would be no-one) but more to do with pleasure.  In pre-pill\n: and pre-condom days, if you had sex there was the chance of producing children.\n: These days is just ain't true!  People can decide whether or not to have \n: children and when.  Soon they will be able to choose it's sex &c (but that's \n: another arguement...) so it's more of a \"lifestyle\" decision.  Again by\n: your arguement, since homosexuals can not (or choose not) to reproduce they must\n: be akin to people who decide to have sex but not children.  Both are \n: as \"unnatural\" as each other.\n\nYet another non-sequitur. Sex is an evolutionary function that exists\nfor procreation, that it is also recreation is incidental. That\nhomosexuals don't procreate means that sex is -only- recreation and\nnothing more; they serve no -evolutionary- purpose.\n\n: \n: |> Since homosexuals have come out the closet and have convinced some\n: |> policy makers that they have civil rights, they are now claiming that\n: |> their sexuality is a preference, a life-style, an orientation, a\n: |> choice that should be protected by law. Now if homosexuality is a mere\n: |> choice and if it is both contrary to nature and anti-social, then it\n: |> is a perverse choice; they have even less credibility than before they\n: |> became prominent. \n: |> \n: \n: People are people are people.  Who are you to tell anyone else how to live\n: their life?  Are you god(tm)?  If so, fancy a date?\n\nHere's pretty obvious dodge, do you really think you've said anything\nor do you just feel obligated to respond to every statement? I am not\ntelling anyone anything, I am demonstrating that there are arguments\nagainst the practice of homosexuality (providing it's a merely an\nalternate lifestlye) that are not homophobic, that one can reasonably\ncall it perverse in a context even a atheist can understand. I realize\nof course that this comes dangerously close to establishing  a value,\nand that atheists are compelled to object on that basis, but if you\nare to be consistent, you have no case in this regard.\n: \n: |> To characterize any opposition to homosexuality as homophobic is to\n: |> ignore some very compelling arguments against the legitimization of\n: |> the homosexual \"life-style\". But since the charge is only intended to\n: |> intimidate, it's really just demogoguery and not to be taken\n: |> seriously. Fact is, Jim, there are far more persuasive arguments for\n: |> suppressing homosexuality than those given, but consider this a start.\n: |> \n: \n: Again crap.  All your arguments are based on outdated ideals.  Likewise the\n: bible.  Would any honest Christian condemn the ten generations spawned by\n: a \"bastard\" to eternal damnation?  Or someone who crushes his penis (either\n: accidently or not..!).  Both are in Deuteronomy.\n\nI'm sure your comment pertains to something, but you've disguised it\nso well I can't see what. Where did I mention ideals, out-dated or\notherwise? Your arguments are very reactionary; do you have anything\nat all to contribute?\n\n: \n: |> As to why homosexuals should be excluded from participation in\n: |> scouting, the reasons are the same as those used to restrict them from\n: |> teaching; by their own logic, homosexuals are deviates, social and\n: |> biological. Since any adult is a role model for a child, it is\n: |> incumbent on the parent to ensure that the child be isolated from\n: |> those who would do the child harm. In this case, harm means primarily\n: |> social, though that could be extended easily enough.\n: |> \n: |> \n: \n: You show me *anyone* who has sex in a way that everyone would describe as\n: normal, and will take of my hat (Puma baseball cap) to you.  \"One man's meat\n: is another man's poison\"!\n: \n\nWhat has this got to do with anything? Would you pick a single point\nthat you find offensive and explain your objections, I would really\nlike to believe that you can discuss this issue intelligibly.\n\nBill\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10861, "properties": {"category": "talk.religion.misc", "text": "From: anthony.landreneau@ozonehole.com (Anthony Landreneau) \nSubject: Re: Abortion\nDistribution: world\nOrganization: Ozone Online Operations, Inc., DBA The Ozone Hole BBS\nReply-To: anthony.landreneau@ozonehole.com (Anthony Landreneau) \nLines: 21\n\nTo: margoli@watson.ibm.com (Larry Margolis)\nFrom: anthony.landreneau@ozonehole.com\n\nLM>>The rape has passed, there is nothing that will ever take that away.\n\nLM>True.  But forcing her to remain pregnant continues the violation of\nLM>her body for another 9 months.  I see this as being unbelievably cruel.\n\nLife is not a \"violation\". As for cruel, killing a living being solely\nbecause it exsist. That my friend is down right cold.\n\n                                   Anthony\n\n\n * SLMR 2.1 * What's the difference between an Orange?\n                      \n----\nThe Ozone Hole BBS * A Private Bulletin Board Service * (504)891-3142\n3 Full Service Nodes * USRobotics 16.8K bps * 10 Gigs * 100,000 Files\nSKYDIVE New Orleans! * RIME Network Mail HUB * 500+ Usenet Newsgroups\nPlease route all questions or inquiries to:  postmaster@ozonehole.com\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10862, "properties": {"category": "sci.space", "text": "From: ven@bohr.physics.purdue.edu (Van E. Neie)\nSubject: Re: Sunrise/ sunset times\nOrganization: Purdue University Physics Department\nLines: 29\n\nIn article <1993Apr22.180630.18313@titan.tsd.arlut.utexas.edu> pearson@tsd.arlut.utexas.edu (N. Shirlene Pearson) writes:\n>jpw@cbis.ece.drexel.edu (Joseph Wetstein) writes:\n>\n>\n>>Hello. I am looking for a program (or algorithm) that can be used\n>>to compute sunrise and sunset times.\n>\n>Would you mind posting the responses you get?\n>I am also interested, and there may be others.\n>\n>Thanks,\n>\n>N. Shirlene Pearson\n>pearson@titan.tsd.arlut.utexas.edu\n\nThere is an excellent software program called Astro.calc that does that and\nmuch more.  The latest address I have is\n\n\tMMI Corporation\n\tPO Box 19907\n\tBaltimore, MD  21211\n\tPhone (301) 366-1222\n\n\n-- \n-------------------------------------------------------------------------------\nVan E. Neie                                      ven@maxwell.physics.purdue.edu\nPurdue University                                neie@purccvm.bitnet\n-------------------------------------------------------------------------------\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10863, "properties": {"category": "talk.politics.mideast", "text": "From: bf3833@pyuxe.cc.bellcore.com (feigenbaum,benjamin)\nSubject: Re: Clintons views on Jerusalem\nOrganization: Bellcore, Livingston, NJ\nSummary: Verify statements\nLines: 21\n\nIn article <16BB28ABD.DSHAL@vmd.cso.uiuc.edu>, DSHAL@vmd.cso.uiuc.edu writes:\n> It seems that President Clinton can recognize Jerusalem as Israels capitol\n> while still keeping his diplomatic rear door open by stating that the Parties\n> concerned should decide the city's final status. Even as I endorse Clintons vie\n> w (of course), it is definitely a matter to be decided upon by Israel (and\n> other participating neighboring contries).\n> I see no real conflict in stating both views, nor expect any better from\n> politicians.\n> -----\n> David Shalhevet / dshal@vmd.cso.uiuc.edu / University of Illinois\n> Dept Anim Sci / 220 PABL / 1201 W. Gregory Dr. / Urbana, IL 61801\n\nI was trying to avoid a discussion of the whether Clintons views\nshould be endorsed or not.  All I was trying to find out was \nwhether the newspaper article was correct in making these\nstatements about the President by obtaining some information\nabout when and where he made these statements.\n\nThank you.\n\nBen.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10864, "properties": {"category": "rec.autos", "text": "From: gwm@spl1.spl.loral.com (Gary W. Mahan)\nSubject: Re: It's a rush... (was Re: Too fast)   \nOrganization: Loral Software Productivity Laboratory\nLines: 14\n\n>>Dont get me wrong, I love to drive in the left lane fast but when I overtake>\n>>cars who are on the right, I slow down a tad bit. If I were to rely on the j>udgement of the other car, to recognize the speed differential, I would be the stupid one.  \n\n>just to satiate my curiosity, why would this make you the stupid one?  It seems\n>to me, everybody SHOULD be aware enough of what is going on.  You do not need\n\nI couldnt agree more.  That is how it SHOULD work. People should also ALWAYS see motorcycles too.\n\nI CONSTANTLY scan behind me (I have one of those wink mirrors) and two outside mirrors.  I actually spend just as much time checking my six (cops you know).\n\nI still get caught off guard every now and then. \n\n\nMaybe I didnt word it right the first time.  What I was trying to say was that if you plan to blow by somebody at a very HIGH speed differential and you assume you are safe because the guy sees you, you are stupid (of course, it depends on the circumstances).  I have had some VERY scary instances when I assumed this and I dont think all of the fault was the other guy (now if he was going 25 in a 55 thats a whole different story)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10865, "properties": {"category": "misc.forsale", "text": "From: lazaro@pyuxf.cc.bellcore.com (lazaro,matthew)\nSubject: Re: VHS movie for sale\nNntp-Posting-Host: pyuxf.cc.bellcore.com\nOrganization: Bellcore, Livingston, NJ\nLines: 12\n\nIn article <1qvk1u$jnu@bigboote.WPI.EDU> martimer@jaguar.WPI.EDU (the random one...) writes:\n>In article <1993Apr19.211400.1@hirama.hiram.edu> koutd@hirama.hiram.edu (DOUGLAS KOU) writes:\n>>VHS movie for sale.\n>>\n>>Dance with Wovies\t($12.00)\n>\t    ^^^^^^ what the  hell ios a 'wovie' ?? (wovy (sp))??\n> \nIt's one of those animals you dance with.\nBut seriously, I saw this video for sale brand new at Palmer Video\nfor $9 + tx.   I guess if I could resell them for $12 I would dance\nlike a Wovie.   \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10866, "properties": {"category": "rec.sport.baseball", "text": "From: paula@koufax.cv.hp.com (Paul Andresen)\nSubject: Dick Estelle\nNntp-Posting-Host: koufax.cv.hp.com\nOrganization: Our Lady Of The Stand-Up Triple\nLines: 13\n\nDoes anyone know if the Dick Estelle who does the Radio Reader on NPR is one in\nthe same with the lefty who pitched briefly for the Jints in '64 & '65?\n\nJust curious.\n\n--->Paul, spending too much time reading the baseball encyclopedia\n--------------------------------------------------------------------------------\n           We will stretch no farm animal beyond its natural length\n\n  paula@koufax.cv.hp.com   Paul Andresen  Hewlett-Packard  (503)-750-3511\n\n    home: 3006 NW McKinley    Corvallis, OR 97330       (503)-752-8424\n                            A SABR member since 1979\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10867, "properties": {"category": "sci.electronics", "text": "From: jmc@engr.engr.uark.edu (J. M. Carmack)\nSubject: RE: Exploding TV\nNntp-Posting-Host: engr.engr.uark.edu\nOrganization: University of Arkansas\nLines: 21\n\nJust a thought........Maybe it possibly has to do with the fact that it\nIS an Emerson.  I've got an Emerson VCR which is #6 in the series.  Returned\nit six times for various and never the same problems.  Got tired of taking it \nback and fixed it myself.  The Hi-Fi \"window\" was a bit off.  Something like\nthe Hi-Fi audio fine-tuning.  When I was a Wal-Mart \"associate\" in '88-'89,\nwe had AT LEAST one returned as defective EVERY SINGLE DAY.  How's that for\nreliability?  Face it--Emerson can make audio stuff (albeit not of premium\nquality), but they CAN'T make anything as complex as video equipment with \nreliability IMHO.  Please, no flames.  Just *had* to share my Emerson disaster\nin the light of this exploding tv.  \nJC\n\n\n\n-- \n-----------------+---------------+-------------+--------------+---------------\nLa Vie -- C'est Une Plage!  |  ?Caffine Not Present Error | jmc@engr.uark.edu\nThis Message Printed on     |  Abort, Retry, Fail ?       |\n100% recycled electricity.  |                             |  Tangerine!!\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10868, "properties": {"category": "talk.politics.mideast", "text": "From: chrism@cirrus.com (Chris Metcalfe)\nSubject: Re: \"Conventional Proposales\": Israel & Palestinians\nOrganization: Cirrus Logic Inc.\nLines: 6\n\nThe fact that Israel is already discussing with some Palestinians what the composition\nof the armed Palestinian Police Force in the territories will be during the transition\nphase indicates some real solid concessions and liberal thinking on the part of the\nIsraeli side.\n\n-- Chris Metcalfe\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10869, "properties": {"category": "sci.crypt", "text": "From: ptrei@bistromath.mitre.org (Peter Trei)\nSubject: Re: The battle is joined\nNntp-Posting-Host: bistromath.mitre.org\nOrganization: The MITRE Corporation\nLines: 15\n\nIn article <C5nn9I.D5q@news.claremont.edu> ebrandt@jarthur.claremont.edu (Eli Brandt) writes:\n>In article <1993Apr16.181040.9381@qualcomm.com> karn@servo.qualcomm.com (Phil Karn) writes:\n>>It looks like Dorothy Denning's wrong-headed ideas have gotten to the\n>>Administration even sooner than we feared.\n>\n>I'd lay long odds that it was the other way around.  Clinton didn't\n>just pull this plan out of any bodily orifices; the NSA has to have\n>been working on it for years.\n      ^^^^^^^^^^^^^^^^^^^^^^^\n\n     I first heard rumors of a similar government proposal (in Risks\nDigest???) in 1987 or 1988.\n\n\t\t\t\t\t\t\tPeter Trei\n\t\t\t\t\t\t\tptrei@mitre.org\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10870, "properties": {"category": "comp.graphics", "text": "From: tlc@cx5.com\nSubject: .SCF files, help needed\nReply-To: tlc@cx5.com\nOrganization: CX5 (San Francisco)\nLines: 24\n\n\n\nI've got an old demo disk that I need to view. It was made using RIX Softworks.  \nThe files on the two diskette set end with: .scf\n\nThe demo was VGA resolution (256 colors), but I don't know the spatial  \nresolution.\n\nFirst problem: When I try to run the demo, the screen has two black bars that  \ncut across (horizontally) the screen, in the top third and bottom third of the  \nscreen. The bars are about 1-inch wide. Other than this, the demo (the  \nanimation part) seems to be running fine.\n\nSecond problem: I can't find any graphics program that will open and display  \nthese files. I have a couple of image conversion programs, none mention .scf  \nfiles.\n\nThe system I am using: 486clone, Diamond Speedstar 24, Sony monitor.\n\nAny suggestions?\n\nThank You,\nT. Castro\ntlc@cx5.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10871, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: s872505@minyos.xx.rmit.OZ.AU (Stephen Bokor)\nSubject: Re: A: DRIVE WON'T BOOT\nOrganization: Royal Melbourne Institute of Technology\nLines: 36\nNNTP-Posting-Host: minyos.xx.rmit.oz.au\n\nbalog@eniac.seas.upenn.edu (Eric J Balog) writes:\n\n>Hi!\n\n>I recently switched my 3.5\" drive to A:. The problem is, while I can read and\n>write to both the new A: and B: correctly, I can't boot from a floppy in A:.\n>I've checked the CMOS settings; it is set for Floppy Seek at Boot and Boot \n>Order A:,C:. \n\n>Once, I had a floppy that did not have the systems files on it in A:. I got a\n>message telling me to put a disk systems disk in the drive. It didn't work.\n>When I do have a systems disk in the A: drive, this is what happens:\n>1) Power-on and Memory Test;\n>2) A: light comes on\n>3) B: light comes on, followed by a short beep;\n>4) HD light comes on for an instant;\n>5) B: light comes on again, then nothing happens\n\n>The light goes off, there is no disk activity of any kind, and the screen \n>blanks. I can't even use ctrl-alt-del.\n\n>Any suggestions.\n\nHave you checked: 1/ The setting of drive A: to 1.44 M floppy.\n\t\t\t\t\t\t2/ The setting of drive B: to 1.2 M foppy.\n\t\t\t\t\t\t3/ The cable connecting the two drives to\n\t\t\t\t\t\tthe controller card (I can't remember which\n\t\t\t\t\t\ttwo wires are swapped, but they determine\n\t\t\t\t\t\twhich is drive A: & b:).\n\nI hope this is of some help :-)\n\n\nSteve\n\ns872505@minyos.xx.oz.au\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10872, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Accounts of Anti-Armenian Human Right Violations in Azerbaijan #008 A\nSummary: Part A \nOrganization: S.D.P.A. Center for Regional Studies\nLines: 501\n\n     Accounts of Anti-Armenian Human Right Violations in Azerbaijan #008 Part A\n                 Prelude to Current Events in Nagorno-Karabakh\n\t\n\t\t\t\t(Part A of #008)\n\n      +------------------------------------------------------------------+\n      |                                                                  |\n      | \"Oh, yes, I just remembered. While they were raping me they      |\n      |  repeated quite frequently, \"Let the Armenian women have babies  |\n      |  for us, Muslim babies, let them bear Azerbaijanis for the       |\n      |  struggle against the Armenians.\" Then they said, \"Those         |\n      |  Muslims can carry on our holy cause. Heroes!\" They repeated     |\n      |  it very often.\"                                                 |\n      |                                                                  |\n      +------------------------------------------------------------------+\n\nDEPOSITION OF LYUDMILA GRIGOREVNA M.\n\n   Born 1959\n   Teacher\n   Sumgait Secondary School No. 10\n   Secretary of the Komsomol Organization at School No. 10\n   Member of the Sumgait City Komsomol Committee Office\n\n   Resident at Building 17/33B, Apartment 15\n   Microdistrict No. 3\n   Sumgait [Azerbaijan]\n\n[Note: The events in Kafan, used as a pretext to attack Armenians in \n Azerbaijan are false, as verified by independent International Human Rights\n organizations - DD]\n\nI'm thinking about the price the Sumgait Armenians paid to be living in\nArmenia now. We paid for it in human casualties and crippled fates--the\nprice was too great! Now, after the Sumgait tragedy, we, the victims, divide\nour lives into \"before\" and ''after.\" We talk like that: that was before the\nwar. Like the people who went through World War II and considered it a whole\nepoch, a fate. No matter how many years go by, no matter how long we live,\nit will never be forgotten. On the contrary, some of the moments become even \nsharper: in our rage, in our sorrow, we saw everything differently, but now\n. . . They say that you can see more with distance, and we can see those\ninhuman events with more clarity now . . . we more acutely perceive our\nlosses and everything that happened.\n\nNineteen eighty-eight was a leap year. Everyone fears a leap year and wants it\nto pass as quickly as possible. Yet we never thought that that leap year would\nbe such a black one for every Sumgait Armenian: those who lost someone and \nthose who didn't.\n\nThat second to last day of winter was ordinary for our family, although you \ncould already smell danger in the air. But we didn't think that the danger was\nnear and possible, so we didn't take any steps to save ourselves. At least, as\nmy parents say, at least we should have done something to save the children. \nMy parents themselves are not that old, 52 and 53 years. But then they thought\nthat they had already lived enough, and did everything they could to save us.\n\nIn our apartment the tragedy started on February 28, around five in the\nafternoon. I call it a tragedy, and I repeat: it was a tragedy even though all\nour family survived. When I recall how they broke down our door my skin\ncrawls; even now, among Armenians, among people who wish me only well, I feel\nlike it's all starting over again. I remember how that mob broke into our \napartment . . . My parents were standing in the hall. My father had an axe in \nhis hands and had immediately locked both of the doors. Our door was rarely \nlocked since friends and neighbors often dropped by. We're known as a \nhospitable family, and we just never really thought about whether the people \nwho were coming to see us were Azerbaijanis, Jews, or Russians. We had friends\nof many nationalities, even a Turkmen woman.\n\nMy parents were in the hall, my father with an axe. I remember him telling my \nmother, \"Run to the kitchen for a knife.\" But Mother was detached, pale, as \nthough she had decided to sell her life a bit dearer. To be honest I never \nexpected it of her, she's afraid of getting shot and afraid of the dark. A \ngirlfriend was at the house that day, a Russian girl, Lyuda, and Mamma said, \n\"No matter what happens, no matter what they do to us, you're not to come out \nof the bedroom. We're going to tell them that we're alone in the apartment.\"\n\nWe went into the bedroom. There were four of us. Marina and the Russian girl \ncrawled under the bed, and we covered them up with a rug, boxes of dishes, and\nKarina and I are standing there and looking at one another. The idea that \nperhaps we were seeing each other for the last time flashed somewhere inside \nme. I'm an emotional person and I express my emotions immediately. I wanted to\nembrace her and kiss her, as though it were the last second. And maybe Karina \nwas thinking the same thing, but she's quite reserved. We didn't have time to \nsay anything to each other because we immediately heard Mamma raise a shout. \nThere was so much noise from the tramping of feet, from the shouting, and from\nexcited voices. I couldn't figure what was going on out there because the door\nto the bedroom was only open a crack. But when Mamma shouted the second time\nKarina ran out of the bedroom. I ran after her, I had wanted to hold her back,\nbut when she opened the door and ran out into the hall they saw us \nimmediately. The only thing I managed to do was close the door behind me, at \nleast so as to save Marina and her friend. The mob was shouting, all of their \neyes were shining, all red, like from insomnia. At first about 40 people burst\nin, but later I was standing with my back to the door and couldn't see. They \ncame into the hall, into the kitchen, and dragged my father into the other \nroom. He didn't utter a word, he just raised the axe to hit them, but Mamma \nsnatched the axe from behind and said, \"Tell them not to touch the children. \nTell them they can do as they want with us, but not to harm the children.\" She\nsaid this to Father in Armenian.\n\nThere were Azerbaijanis from Armenia among the mob who broke in. They \nunderstood Armenian perfectly. The local Azerbaijanis don't know Armenian, \nthey don't need to speak it. And one of them responded in Armenian: \"You and \nyour children both . . . we're going to do the same thing to you and your \nchildren that you Armenians did in Kafan. They killed our women, our girls, \nour mothers, they cut their breasts off, and burned our houses . . . ,\" and \nso on and so forth, \"and we came to do the same thing to you.\" This whole time\nsome of them are destroying the house and the others are shouting at us. They \nwere mostly young people, under 30. At first there weren't any older people \namong them. And all of their faces were unfamiliar. Sumgait is a small town, \nall the same, and we know a lot of people by their faces, especially me, I'm \na teacher.\n\nSo they dragged my father into the other room. They twisted his arms and took \nhim in there, no they didn't take him in there, they dragged him in there,\nbecause he was already unable to walk. They closed the door to that room all \nbut a crack. We couldn't see what was happening to Father, what they were \ndoing to him. Then a young man, about 26 years old, started to tear off \nMamma's sarafan, and Mamma shouted at him in Azerbaijani: \"I'm old enough to \nbe your mother! What are you doing?!\" He struck her. Now he's being held, \nMamma identified him. I hope he's convicted. Then they went after Karina, \nwho's been talking to them like a Komsomol leader, as though she were trying \nto lead them down a different path, as they say, to influence their \nconsciousness. She told them that what they were doing was wrong, that they \nmustn't do it. She said, \"Come on, let's straighten this out, without \nemotions. What do you want? Who are you? Why did you come here? What did we \never do to you?\" Someone tried to explain who they were and why they had come \ninto our home, but then the ones in the back--more of them kept coming and \ncoming--said, \"What are you talking to, them for. You should kill them. We \ncame here to kill them.\"\n\nThey pushed Karina, struck her, and she fell down. They beat her, but she \ndidn't cry out. Even when they tore her clothes off, she kept repeating, \"What\ndid we do to you? What did we do to you?\" And even later, when she came to, \nshe said, \"Mamma, what did we do to them? Why did they do that to us?\"\n\nThat group was prepared, I know this because I noticed that some of them only \nbroke up furniture, and others only dealt with us. I remember that when they \nwere beating me, when they were tearing my clothes off, I felt neither pain \nnor shame because my entire attention was riveted to Karina. All I could do \nwas watch how much they beat her and how painful it was for her, and what they\ndid to her. That's why I felt no pain. Later, when they carried Karina off, \nthey beat her savagely . . . It's really amazing that she not only lived, but \ndidn't lose her mind . She is very beautiful and they did everything they \ncould to destroy her beauty. Mostly they beat her face, with their fists, \nkicking her, using anything they could find.\n\nMamma, Karina, and I were all in one room. And again I didn't feel any pain, \njust didn't feel any, no matter how much they beat me, no matter what they \ndid. Then one of those creeps said that there wasn't enough room in the\napartment. They broke up the beds and the desk and moved everything into the \ncorners so there would be more room. Then someone suggested, \"Let's take her \noutside.\"\n\nThose beasts were in Heaven. They did what they would do every day if they \nweren't afraid of the authorities. Those were their true colors. At the time \nI thought that in fact they would always behave that way if they weren't \nafraid of what would happen to them.\n\nWhen they carried Karina out and beat Mamma-her face was completely covered \nwith blood--that's when I started to feel the pain. I blacked out several \ntimes from the pain, but each moment that I had my eyes open it was as though \nI were recording it all on film. I think I'm a kind person by nature, but I'm \nvengeful, especially if someone is mean to me, and I don't deserve it. I hold \na grudge a long time if someone intentionally causes me pain. And every time \nI would come to and see one of those animals on top of me, I'd remember them, \nand I'll remember them for the rest of my life, even though people tell me \n\"forget,\" you have to forget, you have to go on living.\n\nAt some point I remember that they stood me up and told me something, and \ndespite the fact that I hurt all over--I had been beaten terribly--I found\nthe strength in myself to interfere with their tortures. I realized that I had\nto do something: resist them or just let them kill me to bring my suffering \nto an end. I pushed one of them away, he was a real horse. I remember now that\nhe's being held, too. As though they were all waiting for it, they seized me\nand took me out onto the balcony. I had long hair, and it was stuck all over\nme. One of the veranda shutters to the balcony was open, and I realized that\nthey planned to throw me out the window, because they had already picked me up\nwith their hands, I was up in the air. As though for the last time I took a \nreally deep breath and closed my eyes, and somehow braced myself inside, I \nsuddenly became cold, as though my heart had sunk into my feet. And suddenly \nI felt myself flying. I couldn't figure out if I was really flying or if I \njust imagined it. When I came to I thought now I'm going to smash on the \nground. And when it didn't happen I opened my eyes and realized that I was \nstill lying on the floor. And since I didn't scream, didn't beg them at all,\nthey became all the more wild, like wolves. They started to trample me with\ntheir feet. Shoes with heels on them, and iron horseshoes, like they had spe-\ncially put them on. Then I lost consciousness.\n\nI came to a couple of times and waited for death, summoned it, beseeched it. \nSome people ask for good health, life, happiness, but at that moment I didn't \nneed any of those things. I was sure that none of us would survive, and I had \neven forgotten about Marina; and if none of us was alive, it wasn't worth \nliving.\n\nThere was a moment when the pain was especially great. I withstood inhuman \npain, and realized that they were going to torment me for a long time to come \nbecause I had showed myself to be so tenacious. I started to strangle myself, \nand when I started to wheeze they realized that with my death I was going to\nput an end to their pleasures, and they pulled my hands from my throat. The \nperson who injured and insulted me most painfully I remember him very well, \nbecause he was the oldest in the group. He looked around 48. I know that he \nhas four children and that he considers himself an ideal father and person, \none who would never do such a thing. Something came over him then, you see, \neven during the investigation he almost called me \"daughter,\" he apologized, \nalthough, of course, he knew that I'd never forgive him. Something like that \nI can never forgive. I have never injured anyone with my behavior, with my \nwords, or with my deeds, I have always put myself in the other person's shoes,\nbut then, in a matter of hours, they trampled me entirely. I shall never \nforget it.\n\nI wanted to do myself in then, because I had nothing to lose, because no one \ncould protect me. My father, who tried to do something against that hoard of \nbeasts by himself, could do nothing and wouldn't be able to do anything.\nI knew that I was even sure that he was no longer alive.\n\nAnd Ira Melkumian, my acquaintance I knew her and had been to see her family a\ncouple of times--her brother tried to save her and couldn't, so he tried to \nkill her, his very own sister. He threw an axe at her to kill her and put an \nend to her suffering. When they stripped her clothes off and carried her into \nthe other room, her brother knew what awaited her. I don't know which one it \nwas, Edik or Igor. Both of them were in the room from which the axe was \nthrown. But the axe hit one of the people carrying her and so they killed her \nand made her death even more excruciating, maybe the most excruciating of all \nthe deaths of those days in Sumgait. I heard about it all from the neighbor \nfrom the Melkumians' landing. His name is Makhaddin, he knows my family a \nlittle. He came to see how we had gotten settled in the new apartment in Baku,\nhow we were feeling, and if we needed anything. He's a good person. He said, \n\"You should praise God that you all survived. But what I saw with my own eyes,\nI, a man, who has seen so many people die, who has lived a whole life, I,\" he\nsays, \"nearly lost my mind that day. I had never seen the likes of it and \nthink I never shall again.\" The door to his apartment was open and he saw \neverything. One of the brothers threw the axe, because they had already taken \nthe father and mother out of the apartment. Igor, Edik, and Ira remained. He \nsaw Ira, naked, being carried into the other room in the hands of six or seven\npeople. He told us about it and said he would never forget it. He heard the \nbrothers shouting something, inarticulate from pain, rage, and the fact that \nthey were powerless to do anything. But all the same they tried to \ndo something. The guy who got hit with the axe lived.                                                                           I     I\n\nAfter I had been unsuccessful at killing myself I saw them taking Marina and \nLyuda out of the bedroom. I was in such a state that I couldn't even \nremember my sister's name. I wanted to cry \"Marina!\" out to her, but could\nnot. I looked at her and knew that it was a familiar, dear face, but couldn't\nfor the life of me remember what her name was and who she was. And thus\nI saved her, because when they were taking her out, she, as it turns out, had\ntold them that she had just been visiting and that she and Lyuda were both\nthere by chance, that they weren't Armenians. Lyuda's a Russian, you can tell \nright away, and Marina speaks Azerbaijani wonderfully and she told them that\nshe was an Azerbaijani. And I almost gave her away and doomed her. I'm glad \nthat at least Marina came out of this all in good physical health . . . \nalthough her spirit was murdered . . .\n\nAt some point I came to and saw Igor, Igor Agayev, my acquaintance, in that \nmob. He lives in the neighboring building. For some reason I remembered his \nname, maybe I sensed my defense in him. I called out to him in Russian, \"Igor,\nhelp!\" But he turned away and went into the bedroom. Just then they were \ntaking Marina and Lyuda out of the bedroom. Igor said he knew Marina and \nLyuda, that Marina in fact was Azerbaijani, and he took both of them to the \nneighbors.\n\nAnd the idea stole through me that maybe Igor had led them to our apartment, \nsomething like that, but if he was my friend, he was supposed to save me.\n \nThen they were striking me very hard--we have an Indian vase, a metal one, \nthey were hitting me on the back with it and I blacked out--they took me out \nonto the balcony a second time to throw me out the window. They were already \nsure that I was dead because I didn't react at all to the new blows. Someone \nsaid, \"She's already dead, let's throw her out.\" When they carried me out onto\nthe balcony for the second time, when I was about to die the second time, I \nheard someone say in Azerbaijani: \"Don't kill her, I know her, she's a \nteacher.\" I can still hear that voice ringing in my ears, but I can't remember\nwhose voice it was. It wasn't Igor, because he speaks Azerbaijani with an \naccent: his mother is Russian and they speak Russian at home. He speaks\nAzerbaijani worse than our Marina does. I remember when they carried me in and\nthrew me on the bed he came up to me, that person, and \tI having opened my \neyes, saw and recognized that person, but immediately passed out cold. I had \nbeen beaten so much that I didn't have the strength to remember him. I only \nremember that this person was older and he had a high position. Unfortunately \nI can't remember anything more.\n\nWhat should I say about Igor? He didn't treat me badly. I had heard a lot \nabout him, that he wasn't that good a person, that he sometimes drank too\nmuch. Once he boasted to me that he had served in Afghanistan. He knew that \nwomen usually like bravery in a man. Especially if a man was in Afghanistan,\nif he was wounded, then it's about eighty percent sure that he will be treated\nvery sympathetically, with respect. Later I found out that he had served in \nUfa, and was injured, but that's not in Afghanistan, of course. I found that \nall out later.\n\nAmong the people who were in our apartment, my Karina also saw the Secretary \nof the Party organization. I don't know his last name, his first name is \nNajaf, he is an Armenian-born Azerbaijani. But later Karina wasn't so sure,\nshe was no longer a hundred percent sure that it was he she saw, and she \ndidn't want to endanger him. She said, \"He was there,\" and a little while \nlater, \"Maybe they beat me so much that I am confusing him with someone else. \nNo, it seems like it was he.\" I am sure it was he because when he came to see \nus the first time he said one thing, and the next time he said something \nentirely different. The investigators haven't summoned him yet. He came to see\nus in the Khimik boarding house where we were living at the time. He brought \ngroceries and flowers, this was right before March 8th; he almost started \ncrying, he was so upset to see our condition. I don't know if he was putting \nus on or not, but later, after we had told the investigator and they summoned \nhim to the Procuracy, he said that he had been in Baku, he wasn't in Sumgait. \nThe fact that he changed his testimony leads me to believe that Karina is \nright, that in fact it was he who was in our apartment. I don't know how the \ninvestigators are now treating him. At one point I wondered and asked, and was\ntold that he had an alibi and was not in our apartment. Couldn't he have gone \nto Baku and arranged an alibi? I'm not ruling out that possibility.\n\nIll now return to our apartment. Mamma had come to. You could say that she \nbought them off with the gold Father gave her when they were married: her \nwedding band and her watch were gold. She bought her own and her husband's \nlives with them. She gave the gold to a 14-year old boy. Vadim Vorobyev. A \nRussian boy, he speaks Azerbaijani perfectly. He's an orphan who was raised by\nhis grandfather and who lives in Sumgait on Nizami Street. He goes to a \nspecial school, one for mentally handicapped children. But I'll say this--I'm \na teacher all the same and in a matter of minutes I can form an opinion--that\nboy is not at all mentally handicapped. He's healthy, he can think just fine, \nand analyze, too . . . policemen should be so lucky. And he's cunning, too. \nAfter that he went home and tore all of the pictures out of his photo album.\n\nHe beat Mamma and demanded gold, saying, \"Lady, if you give us all the gold \nand money in your apartment we'll let you live.\" And Mamma told them where \nthe gold was. He brought in the bag and opened it, shook out the contents, and \neveryone who was in the apartment jumped on it, started knocking each other \nover and taking the gold from one another. I'm surprised they didn't kill one \nanother right then.\n\nMamma was still in control of herself. She had been beaten up, her face was\nblack and blue from the blows, and her eyes were filled with blood, and she \nran into the other room. Father was lying there, tied up, with a gag in his\nmouth and a pillow over his face. There was a broken table on top of the pil-\nlow. Mamma grabbed Father and he couldn't walk; like me, he was half dead, \nhalfway into the other world. He couldn't comprehend anything, couldn't see, \nand was covered with black and blue. Mamma pulled the gag out of his mouth, \nit was some sort of cloth, I think it was a slipcover from an armchair.\n\nThe bandits were still in our apartment, even in the room Mamma pulled Father \nout of, led him out of, carried him out of. We had two armchairs in that room,\na small magazine table, a couch, a television, and a screen. Three people \nwere standing next to that screen, and into their shirts, their pants, \neverywhere imaginable, they were shoving shot glasses and cups from the coffee\nservice--Mamma saw them out of the corner of her eye. She said, \"I was afraid \nto turn around, I just seized Father and started pulling him, but at the \nthreshold I couldn't hold him up, he fell down, and I picked him up again and \ndragged him down the stairs to the neighbors'.\" Mamma remembered one of the \ncriminals, the one who had watched her with his face half-turned toward her, \nout of one eye. She says, \"I realized that my death would come from that \nperson. I looked him in the eyes and he recoiled from fear and went stealing.\"\nLater they caught that scoundrel. Meanwhile, Mamma grabbed Father and left.\n\nI was alone. Igor had taken Marina away, Mamma and Father were gone, Karina \nwas already outside, I didn't know what they were doing to her. I was left all\nalone, and at that moment . . . I became someone else, do you understand? Even\nthough I knew that neither Mother and Father in the other room, nor Marina and\nLyuda under the bed could save me, all the same I somehow managed to hold out.\nI went on fighting them, I bit someone, I remember, and I scratched another. \nBut when I was left alone I realized what kind of people they were, the ones \nI had observed, the ones who beat Karina, what kind of people they were, the \nones who beat me, that it was all unnecessary, that I was about to die and \nthat all of that would die with me.\n\nAt some point I took heart when I saw the young man from the next building. I \ndidn't know his name, but we would greet one another when we met, we knew that\nwe were from the same microdistrict. When I saw him I said, \"Neighbor, is that\nyou?\" In so doing I placed myself in great danger. He realized that if I lived\nI would remember him. That's when he grabbed the axe. The axe that had been \ntaken from my father. I automatically fell to my knees and raised my hands to \ntake the blow of the axe, although at the time it would have been better if he\nhad struck me in the head with the axe and put me out of my misery. When he \nstarted getting ready to wind back for the blow, someone came into the room. \nThe newcomer had such an impact on everyone that my neighbor's axe froze in \nthe air. Everyone stood at attention for this guy, like soldiers in the \npresence of a general. Everyone waited for his word: continue the atrocities \nor not. He said, \"Enough, let's go to the third entryway.\" In the third \nentryway they killed Uncle Shurik, Aleksandr Gambarian. This confirms once \nagain that they had prepared in advance. Almost all of them left with him, as \nthey went picking up pillows, blankets, whatever they needed, whatever they \nfound, all the way up to worn out slippers and one boot, someone else had \nalready taken the other.\n\nFour people remained in the room, soldiers who didn't obey their general. They\nhad to have come recently, because other faces had flashed in front of me over\nthose 2 to 3 hours, but I had never seen those three. One of them, Kuliyev (I \nidentified him later), a native of the Sisian District of Armenia, an \nAzerbaijani, had moved to Azerbaijan a year before. He told me in Armenian:\n\"Sister, don't be afraid, I'll drive those three Azerbaijanis out of here.\"\nThat's just what he said, \"those Azerbaijanis,\" as though he himself were not \nAzerbaijani, but some other nationality, he said with such hatred, \"I'll drive\nthem out of here now, and you put your clothes on, and find a hammer and nails\nand nail the door shut, because they'll be coming back from Apartment 41.\" \nThat's when I found out that they had gone to Apartment 41. Before that, the \nperson in the Eskimo dogskin coat, the one who came in and whom they listened \nto, the \"general,\" said that they were going to the third entryway.\n\nKuliyev helped me get some clothes on, because l couldn't do it by myself. \nMarina's old fur coat was lying on the floor. He threw it over my shoulders, I\nwas racked with shivers, and he asked where he could find nails and a hammer. \nHe wanted to give them to me so that when he left I could nail the door shut. \nBut the door was lying on the floor in the hall.\n\nI went out onto the balcony. There were broken windows, and flowers and dirt \nfrom flowerpots were scattered on the floor. It was impossible to find \nanything. He told me, \"Well, fine, I won't leave you here. Would any of the \nneighbors let you in? They'll be back, they won't calm down, they know you're \nalive.\" He told me all this in Armenian.\n\nThen he returned to the others and said, \"What are you waiting for? Leave!\" \nThey said, \"Ah, you just want to chase us out of here and do it with her \nyourself. No, we want to do it to.\" He urged them on, but gently, not \ncoarsely, because he was alone against them, although they were still just\nboys, not old enough to be drafted. He led them out of the room, and went\ndown to the third floor with them himself, and said, \"Leave. What's the mat-\nter, aren't you men? Go fight with the men. What do you want of her?\" And\nhe came back upstairs. They wanted to come up after him and he realized that \nhe couldn't hold them off forever. Then he asked me where he could hide me. I \ntold him at the neighbors' on the fourth floor, Apartment 10, we were on really\ngood terms with them.\n\nWe knocked on the door, and he explained in Azerbaijani. The neighbor woman \nopened the door and immediately said, \"I'm an Azerbaijani.\" He said, \"I know. \nLet her sit at your place a while. Don't open the door to anyone, no one knows\nabout this, I won't tell anyone. Let her stay at your place.\" She says, \"Fine,\nhave her come in.\" I went in. She cried a bit and gave me some stockings, I \nhad gone entirely numb and was racked with nervous shudders. I burst into \ntears. Even though I was wearing Marina's old fur coat, it's a short one, a \nhalf-length, I was cold all the same. I asked, \"Do you know where my family \nis, what happened to them?\" She says, \"No, I don't know anything. I'm afraid \nto go out of the apartment, now they're so wild that they don't look to see \nwho's Azerbaijani and who's Armenian.\" Kuliyev left. Ten minutes later my \nneighbor says, \"You know, Lyuda, I don't want to lose my life because of you, \nor my son and his wife. Go stay with someone else.\" During the butchery in our\napartment one of the scum, a sadist, took my earring in his mouth--I had pearl\nearrings on--and ripped it out, tearing the earlobe. The other earring was \nstill there. When I'm nervous I fix my hair constantly, and then, when I \ntouched my ear, I noticed that I had one earring on. I took it out and gave it\nto her. She took the earring, but she led me out of the apartment.\n\nI went out and didn't know where to go. I heard someone going upstairs. I \ndon't know who it was but assumed it was them. With tremendous difficulty I \nend up to our apartment, I wanted to die in my own home. I go into the \napartment and hear that they are coming up to our place, to the fifth floor. \nI had to do something. I went into the bedroom where Marina and Lyuda had \nhidden and saw that the bed was overturned. Instead of hiding I squatted near \nsome broken Christmas ornaments, found an unbroken one, and started sobbing. \nThen they came in. Someone said that there were still some things to take. I \nthink that someone pushed me under the bed. I lay on the floor, and there were\nbroken ornaments on it, under my head and legs. I got all cut up, but I lay \nthere without moving. My heart was beating so hard it seemed the whole town \ncould hear it. There were no lights on. Maybe that's what saved me. They were \nburning matches, and toward the end they brought in a candle. They started\npicking out the clothes that could still be worn. They took Father's sport \njacket and a bedspread, the end of which was under my head. They pulled on the\none end, and it felt like they were pulling my hair out. I almost cried out. \nAnd again I realized I wasn't getting out of there alive, and I started to \nstrangle myself again. I took my throat in one hand, and pressed the other on \nmy mouth, so as not to wheeze, so that I would die and they would only find me\nafterward. They were throwing the burned matches under the bed, and I got \nburned, but I withstood it. Something inside of me held on, someone's hand was\nprotecting me to the end. I knew that I was going to die, but I didn't know \nhow. I knew that if I survived I would walk out of that apartment, but if \nI found out that one of my family had died, I would die for sure, because I \nhad never been so close to death and couldn't imagine how you could go on \nliving without your mother or father, or without your sister. Marina, I \nthought, was still alive: she went to Lyuda's place or someone is hiding her. \nI tried to think that Igor wouldn't let them be killed. He served in \nAfghanistan, he should protect her.\n\nWhile I was strangling myself I said my good-byes to everyone. And then I\nthought, how could Marina survive alone. If they killed all of us, how would \nshe live all by herself? There were six people in the room. They talked among \nthemselves and smoked. One talked about his daughter, saying that there was no\nchildren's footwear in our apartment that he could take for his daughter. \nAnother said that he liked the apartment--recently we had done a really good \njob fixing everything up--and that he would live there after everything was \nall over. They started to argue. A third one says, \"How come you get it? I \nhave four children, and there are three rooms here, that's just what I need. \nAll these years I've been living in God-awful places.\" Another one says, \n\"Neither of you gets it. We'll set fire to it and leave.\" Then someone said \nthat Azerbaijanis live right next door, the fire could move over to their\nplace. And they, to my good fortune, didn't set fire to the apartment, and\nleft.\n\nOh, yes, I just remembered. While they were raping me they repeated quite \nfrequently, \"Let the Armenian women have babies for us, Muslim babies, let \nthem bear Azerbaijanis for the struggle against the Armenians.\" Then they \nsaid, \"Those Muslims can carry on our holy cause. Heroes!\" They repeated it \nvery often.\n\n\t\t     - - - reference for #008 - - -\n\n[1] _The Sumgait Tragedy; Pogroms against Armenians in Soviet Azerbaijan,\n    Volume I, Eyewitness Accounts_, edited by Samuel Shahmuradian, forward by\n    Yelena Bonner, 1990, published by Aristide D. Caratzas, NY, pages 118-145\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10873, "properties": {"category": "comp.sys.mac.hardware", "text": "From: young@is.s.u-tokyo.ac.jp (YOUNG Shio Hong)\nSubject: Looking for free/share wares\nNntp-Posting-Host: poplar\nOrganization: Dept. of Information Science, Univ. of Tokyo, Japan.\nDistribution: comp\nX-Bytes: 285\nLines: 14\n\nHi!\n\nI am looking for ftp sites (where there are freewares or sharewares)\nfor Mac. It will help a lot if there are driver source codes in those \nftp sites. Any information is appreciated. \n\nThanks in advance.\n\nS. Young\nDept. of Info. Sc.\nUniv. of Tokyo\nemail:young@is.s.u-tokyo.ac.jp\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.512+0000", "event": "documents", "entityId": 10874, "properties": {"category": "rec.motorcycles", "text": "From: ak296@yfn.ysu.edu (John R. Daker)\nSubject: Re: Thoughts on a 1982 Yamaha Seca Turbo?\nOrganization: St. Elizabeth Hospital, Youngstown, OH\nLines: 18\nReply-To: ak296@yfn.ysu.edu (John R. Daker)\nNNTP-Posting-Host: yfn.ysu.edu\n\n\nIn a previous article, howp@skyfox () says:\n\n>I was wondering if anybody knows anything about a Yamaha Seca Turbo.  I'm \n>considering buying a used 1982 Seca Turbo for $1300 Canadian (~$1000 US)\n>with 30,000 km on the odo.  This will be my first bike.  Any comments?\n\t\t\t     ^^^^^^^^^^^^^^^^^^^^^^^^^^^\nBecause of this I cannot in good faith recommend a Seca Turbo.  Power\ndelivery is too uneven for a novice.  The Official (tm) Dod newbie\nbike of choice would be more appropriate because the powerband is so wide\nand delivery is very smooth. Perfect for the beginner.\n\n\n-- \nDoD #650<----------------------------------------------------------->DarkMan\n   The significant problems we face cannot be solved at the same level of\n      thinking we were at when we created them.   - Albert Einstein\n         ___________________The Eternal Champion_________________\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10875, "properties": {"category": "comp.windows.x", "text": "From: megan@cs.uq.oz.au (Megan Grenenger)\nSubject: Regression Testing and X\nSummary: info required on capture/playback testing tools for X clients\nKeywords: X Regression\nReply-To: megan@cs.uq.oz.au\nLines: 10\n\nI'd appreciate any feedback on capture/playback tools for use with X clients.\n\nI have pulled XTM from public domain but it appears to be set up to test\nX servers not X clients. \n\nAny comparisons/comments on regression testing tools would be great -\nparticularly XTM, XRunner, Autotester, and SRI's CAPBAK, SMARTS and EXDIFF.\n\nMegan Grenenger\nmegan@cs.uq.oz.au\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10876, "properties": {"category": "rec.sport.hockey", "text": "Organization: Ryerson Polytechnical Institute\nDistribution: na\nFrom: Raj Ramnarace <ACPS6992@RyeVm.Ryerson.Ca>\nSubject: Maple Leafs Update\nLines: 8\n\nFor those Leaf fans who are concerned, the following players are slated for\nreturn on Thursday's Winnipeg-Toronto game :\n    Peter Zezel, John Cullen\n\n  Mark Osborne and Dave Ellett are questionable to return on Thursday.\n\nAll regular players who were injured (including Dimitri Mironov) should be back\nfor Saturday's home game against the Flyers.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10877, "properties": {"category": "talk.politics.mideast", "text": "From: nstramer@supergas.dazixco.ingr.com (Naftaly Stramer)\nSubject: Re: BB Confessions.\nNntp-Posting-Host: supergas\nReply-To: nstramer@dazixco.ingr.com\nOrganization: Intergraph Electronics\nLines: 25\n\n\nIn article <1993Apr18.022218.17318@thunder.mcrcim.mcgill.edu>, ahmeda@McRCIM.McGill.EDU (Ahmed Abu-Abed) writes:\n\n> \n>But the irony is that the Jewish population has no problem in electing\n>a leader who has CONFESSED  to having an extra marrital affair.\n>\n>This is a first.\n>\n>AA.\n\nThe American people didn't have any problem with it too (Clinton). Actually I\nthink that it does not make any difference as long as they have the\nqualifications to become leaders. BTW in my political view I hope  (and should be \nthe Arab hope too) that Binyamin Netanyahu will not be ellected as prime minister \nof Israel.\n\nNaftaly\n\n----\n\nNaftaly Stramer \t\t\t | Intergraph Electronics\nInternet: nstramer@dazixco.ingr.com      | 6101 Lookout Road, Suite A    \nVoice: (303)581-2370  FAX: (303)581-9972 | Boulder, CO 80301\n\"Quality is everybody's job, and it's everybody's job to watch all that they can.\"\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10878, "properties": {"category": "alt.atheism", "text": "From: jimh@carson.u.washington.edu (James Hogan)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nKeywords: slander calumny\nOrganization: University of Washington, Seattle\nLines: 60\nNNTP-Posting-Host: carson.u.washington.edu\n\nIn article <1993Apr16.222525.16024@bnr.ca> (Rashid) writes:\n>In article <1993Apr16.171722.159590@zeus.calpoly.edu>,\n>jmunch@hertz.elee.calpoly.edu (John Munch) wrote:\n>> \n>> In article <1993Apr15.212943.15118@bnr.ca> (Rashid) writes:\n>> >P.S. I'm not sure about this but I think the charge of \"shatim\" also\n>> >applies to Rushdie and may be encompassed under the umbrella\n>> >of the \"fasad\" ruling.\n>> \n>> Please define the words \"shatim\" and \"fasad\" before you use them again.\n>\n>My apologies. \"Shatim\", I believe, refers to slandering or spreading\n>slander and lies about the Prophets(a.s) - any of the Prophets.\n\nBasically, any prophet I've ever dealt with has either been busy \nhawking stolen merchandise or selling swampland house lots in \nFlorida.  Then you hear all the stories of sexual abuse by prophets\nand how the families of victims were paid to keep quiet about it.\n\n>It's a kind of willful caulmny and \"cursing\" that's indicated by the\n>word. This is the best explanation I can come up with off the top\n>of my head - I'll try and look up a more technical definition when I\n>have the time.\n\nNever mind that, but let me tell you about this Chevelle I bought \nfrom this dude (you guessed it, a prophet) named Mohammed.  I've\ngot the car for like two days when the tranny kicks, then Manny, \nmy mechanic, tells me it was loaded with sawdust!  Take a guess\nwhether \"Mohammed\" was anywhere to be found.  I don't think so.\n\n>\n>\"Fasad\" is a little more difficult to describe. Again, this is not\n>a technical definition - I'll try and get that later. Literally,\n\nOh, Mohammed!\n\n>the word \"fasad\" means mischief. But it's a mischief on the order of\n>magnitude indicated by the word \"corruption\". It's when someone who\n>is doing something wrong to begin with, seeks to escalate the hurt,\n\nYeah, you, Mohammed!\n\n>disorder, concern, harm etc. (the mischief) initially caused by their \n>actions. The \"wrong\" is specifically related to attacks against\n>\"God and His Messenger\" and mischief, corruption, disorder etc.\n\nYou slimy mass of pond scum!\n\n>resulting from that. The attack need not be a physical attack and there\n>are different levels of penalty proscribed, depending on the extent\n>of the mischief and whether the person or persons sought to \n>\"make hay\" of the situation. The severest punishment is death.\n\nYeah, right!  You're the one should be watching your butt.  You and\nyour buddy Allah.  The stereo he sold me croaked after two days.\nYour ass is grass!\n\nJim\n\nYeah, that's right, Jim.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10879, "properties": {"category": "sci.electronics", "text": "From: kushmer@bnlux1.bnl.gov (christopher kushmerick)\nSubject: infra red position encoders\nOrganization: Brookhaven National Laboratory\nDistribution: na\nLines: 16\n\nI am looking for information on infra red based position encoders.\n\nThe idea would be to bounce the infrared source off a wall and the device would\nread out the distance.\n\npreferable it would be rs-232 addressable.\n\n\n\nAny leads?\n\n\n-- \nChris Kushmerick\nkushmer@bnlux1.bnl.gov\n--I found my niche in life, I just didn't fit in.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10880, "properties": {"category": "sci.space", "text": "From: dbm0000@tm0006.lerc.nasa.gov (David B. Mckissock)\nSubject: Re: Space Station Redesign Chief Resigns for Health Reasons\nOrganization: NASA Lewis Research Center / Cleveland, Ohio\nLines: 30\nDistribution: world\nNNTP-Posting-Host: tm0006.lerc.nasa.gov\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <C5xuGL.Jow@skates.gsfc.nasa.gov>, xrcjd@mudpuppy.gsfc.nasa.gov (Charles J. Divine) writes...\n>Writer Kathy Sawyer reported in today's Washington Post that Joseph Shea, the \n>head of the space station redesign has resigned for health reasons.\n> \n>Shea was hospitalized shortly after his selection in February.  He returned\n>yesterday to lead the formal presentation to the independent White House panel.\n>Shea's presentation was rambling and almost inaudible.\n\nI missed the presentations given in the morning session (when Shea gave\nhis \"rambling and almost inaudible\" presentation), but I did attend\nthe afternoon session. The meeting was in a small conference room. The\nspeaker was wired with a mike, and there were microphones on the table for\nthe panel members to use. Peons (like me) sat in a foyer outside the\nconference room, and watched the presentations on closed circuit TV. In\ngeneral, the sound system was fair to poor, and some of the other\nspeakers (like the committee member from the Italian Space Agency)\nalso were \"almost inaudible.\"\n\nShea didn't \"lead the formal presentation,\" in the sense of running\nor guiding the presentation. He didn't even attend the afternoon\nsession. Vest ran the show (President of MIT, the chair of the\nadvisory panel).\n\n> \n>Shea's deputy, former astronaut Bryan O'Connor, will take over the effort.\n\nNote that O'Connor has been running the day-to-day\noperations of the of the redesign team since Shea got sick (which\nwas immediately after the panel was formed).\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10881, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: Sebastian_Beer@lippebox.fido.de (Sebastian Beer)\nSubject: Re: Diamond SS24X, Win 3.1, Mouse cursor\nX-Comment-To: (Don A.b. Lindbergh)\nOrganization:  \nLines: 20\nX-Gateway: FIDOGATE 2.4\n\nDon A.B. Lindbergh meinte am 15.04.93\nzum Thema \"Diamond SS24X, Win 3.1, Mouse cursor\":\n\nDA> Anybody seen mouse cursor distortion running the Diamond 1024x768x256 \nDA> driver? Sorry, don't know the version of the driver (no indication in the \nDA> menus) but it's a recently delivered Gateway system.  Am going to try the \nDA> latest drivers from Diamond BBS but wondered if anyone else had seen this.\n\nNo not at all. I'm using SS24X with BIOS 2.03 and driver\nfrom 13. Januar '93. I've never had any problems with the\nmouse cursor.\nIs there already a newer driver published?\n\n\nGreetings\n\n        Sebastian Beer\n\nGIMME GUMMI - lass die Sau raus\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10882, "properties": {"category": "rec.sport.hockey", "text": "From: Patrick Walker <F1HH@UNB.CA>\nSubject: Red Wings Goespel...\nLines: 19\nOrganization: The University of New Brunswick\n\nDetroit's going to beat Toronto in 6 or LESS!!!\n\n Granted, Gilmour should get the Hart Trophy, NOT Lemieux... Just\nLook at what Gilmour did for Toronto.  When you think of Toronto,\nwho comes to mind, Gilmour, Andreychuk, Potvin...ah...did I mentio\nn Gilmour?\n\nBack to Detroit...  There really isn't a team that could stand up\nto them if all the players on the team play to their potential,\nno one could stop them.  Yzerman, Fedorov, Coffey, Lindstrom...\nthere's more firepower there than Pittsburgh... and they don't tri\np over their own skates!\n-----------------------------------------------------------------------\n  /------------/ Detroit over Toronto in 5     Patrick Walker\n / /--\\------/   Detroit over Chicago in 6     University of New Bruns.\n ! !  !---/      Detroit over Vancouver in 6   Canada\n \\ \\__/ /        Detroit over Nords in 6       \"Disco Still Sucks!\"\n -----------------------------------------------------------------------\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10883, "properties": {"category": "soc.religion.christian", "text": "From: gt7122b@prism.gatech.edu (boundary)\nSubject: Re: The arrogance of Christians\nOrganization: Georgia Institute of Technology\nLines: 55\n\ndleonar@andy.bgsu.edu (Pixie) writes:\n>                                       Unfaithfully yours,\n>                                       Pixie\n>     p.s.  If you do sincerely believe that a god exists, why do you follow\n>it blindly?  \n>     Do the words \"Question Authority\" mean anything to you?\n>     I defy any theist to reply.      \n\nDear Defiant (or Unfaithful or Pixie):\n\nI will take up the challenge to reply, as I am a theist.\n\nThe foundation for faith in God is reason, without which the existence\nof God could not be proven.  That His existence can be proven by reason\nis indisputable (cf. my short treatise, \"Traditional Proofs for the \nExistence of God,\" and Summa Theologica).\n\nNow, given that God exists, and that His existence can be proven by reason,\nI assert that His commands must be followed blindly, although in our fallen\ncondition we must always have some measure of doubt about our faith.  Why?\n\nBecause God is the First Cause of all things, the First Mover of matter,\nthe Independent Thing that requires nothing else for its existence, the\nMeasure of all that is perfect, and the essential Being who gives order\nto the universe (logos).\n\nI next assert that God is all good.  If this is so, then that which is\ncontrary to the will of God is evil; i.e., the absence of the good.  And,\nsince God can never contradict Himself, then by His promise of a Savior\nas early as the Protoevangelium of Genesis 3:5, God instructs that because\na human (Adam) was first responsible for man's alienation from the Source\nof all good, a man would be required to act to restore the friendship.\nThus God became incarnate in the person of the Messiah.\n\nNow this Messiah claimed that He is the Truth (John 14:6).  If this claim\nis true, then we are bound by reason to follow Him, who is truth incarnate.\n\nYou next seem to have a problem with authority.  Have you tried the United\nStates Marine Corps yet?  I can tell you first-hand that it is an excellent\ninstructor in authority.  If you have not yet had the privilege, I will\nreply that the authority which is Truth Incarnate may never be questioned,\nand thus must be followed blindly.  One may NOT deny the truth.  For\nexample, when the proverbial apple fell on Isaac Newton's head, he could\nhave denied that it happened, but he did not.  The laws of physics must\nbe obeyed whether a human likes them or not.  They are true. \n\nTherefore, the Authority which is Truth may not be denied.\n\nQED\n \n-- \nboundary\n\nno teneis que pensar que yo haya venido a traer la paz a la tierra; no he\nvenido a traer la paz, sino la guerra (Mateo 10:34, Vulgata Latina) \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10884, "properties": {"category": "soc.religion.christian", "text": "From: armstrng@cs.dal.ca (Stan Armstrong)\nSubject: Re: Prodigal Son\nOrganization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada\nLines: 18\n\nThe parable of the Prodigal Son is not about who is and who isn't an\nimmoral person. It is about grace and the love of God. Most people\nwould agree with that concerning the younger son. The elder son is\nsimply a negative example of the some thing. He thinks that he must\nearn his father's love, that he has earned it, that he is entitled\nto it. His father tells him that he is on the wrong track. He has always\nbeen loved--for the same reason his brother has always been: he is\nhis father's son.\n\nWe are too performance oriented to consistently get the point. We are\nwilling to be saved by grace, but once we are Christians we want to\ngo back to earning and deserving.\n\n\"Are you so foolish? After beginning with the Spirit, are you now trying\n to attain your goal by human effort?\" Gal 3:3 NIV\n-- \nStan Armstrong. Religious Studies Dept, Saint Mary's University, Halifax, N.S.\nArmstrong@husky1.stmarys.ca | att!clyde!watmath!water!dalcs!armstrng\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10885, "properties": {"category": "rec.motorcycles", "text": "From: fist@iscp.bellcore.com (Richard Pierson)\nSubject: Re: Boom! Hubcap attack!\nNntp-Posting-Host: foxtrot.iscp.bellcore.com\nOrganization: Bellcore\nLines: 57\n\nIn article <speedy.147@engr.latech.edu>, speedy@engr.latech.edu (Speedy\nMercer) writes:\n|> I was attacked by a rabid hubcap once.  I was going to work on a\n|> Yamaha\n|> 750 Twin (A.K.A. \"the vibrating tank\") when I heard a wierd noise off\n|> to my \n|> left.  I caught a glimpse of something silver headed for my left foot\n|> and \n|> jerked it up about a nanosecond before my bike was hit HARD in the\n|> left \n|> side.  When I went to put my foot back on the peg, I found that it\n|> was not \n|> there!  I pulled into the nearest parking lot and discovered that I\n|> had been \n|> hit by a wire-wheel type hubcap from a large cage!  This hubcap\n|> weighed \n|> about 4-5 pounds!  The impact had bent the left peg flat against the\n|> frame \n|> and tweeked the shifter in the process.  Had I not heard the\n|> approaching \n|> cap, I feel certian that I would be sans a portion of my left foot.\n|> \n|> Anyone else had this sort of experience?\n|> \n\n  Not with a hub cap but one of those \"Lumber yard delivery\ntrucks\" made life interesting when he hit a 'dip' in the road\nand several sheets of sheetrock and a dozen 5 gallon cans of\nspackle came off at 70 mph. It got real interesting for about\n20 seconds or so. Had to use a wood mallet to get all the dried\nspackle off Me, the Helmet and the bike when I got home. Thanks \nto the bob tail Kenworth between me and the lumber truck I had\na \"Path\" to drive through he made with his tires (and threw up\nthe corresponding monsoon from those tires as he ran over\nwhat ever cans of spackle didn't burst in impact). A car in\nfront of me in the right lane hit her brakes, did a 360 and\nnailed a bridge abutment half way through the second 360.\n\nThe messiest time was in San Diego in 69' was on my way\nback to the apartment in ocean beach on my Sportster and\nhad just picked up a shake, burger n fries from jack in\nthe box and stuffed em in my foul weather jacket when the\nmilk shake opened up on Nimitz blvd at 50 mph, nothing\nlike the smell of vanilla milk shake cooking on the\nengine as it runs down your groin and legs and 15 people\nwaiting in back of you to make the same left turn you are.\n-- \n##########################################################\nThere are only two types of ships in the NAVY; SUBMARINES \n                 and TARGETS !!!\n#1/XS1100LH\tDoD #956   #2 Next raise\nRichard Pierson E06584 vnet: [908] 699-6063\nInternet: fist@iscp.bellcore.com,|| UUNET:uunet!bcr!fist  \n#include <std.disclaimer> My opinions are my own!!!\nI Don't shop in malls, I BUY my jeans, jackets and ammo\nin the same store.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10886, "properties": {"category": "alt.atheism", "text": "From: vdp@mayo.edu (Vinayak Dutt)\nSubject: Re:  Islam And Scientific Predictions (was\nReply-To: vdp@mayo.edu\nOrganization: Mayo Foundation/Mayo Graduate School :Rochester, MN\nLines: 53\n\nIn article H9r@ra.nrl.navy.mil,  khan@itd.itd.nrl.navy.mil (Umar Khan) writes:\n##I strongly suggest that you look up a book called THE BIBLE, THE QURAN, AND\n##SCIENCE by Maurice Baucaille, a French surgeon.  It is not comprehensive,\n##but, it is well researched.  I imagine your library has it or can get it\n##for you through interlibrary loan.\n##\n\n  I shall try to get hold of it (when I have time to read of course :-)\n\n##In short, Dr Baucaille began investigating the Bible because of pre-\n##ceived scientific inaccuracies and inconsistencies.  He assumed that\n##some of the problems may have been caused by poor translations in by-\n##gone days.  So, he read what he could find in Hebrew, Greek, Aramaic.\n##What he found was that the problems didn't go away, they got worse.\n##Then, he decided to see if other religions had the same problems.\n##So, he picked up the Holy Qur'an (in French) and found similar prob-\n##lems, but not as many.  SO, he applied the same logoic as he had\n##with the Bible: he learned to read it in Arabic.  The problems he\n##had found with the French version went away in Arabic.  He was unable\n##to find a wealth of scientific statements in the Holy Qur'an, but,\n##what he did find made sense with modern understanding.  So, he\n##investigated the Traditions (the hadith) to see what they had to\n##say about science.  they were filled with science problems; after\n##all, they were contemporary narratives from a time which had, by\n##pour standards, a primitive world view.  His conclusion was that,\n##while he was impressed that what little the Holy Qur'an had to\n##say about science was accurate, he was far more impressed that the\n##Holy Qur'an did not contain the same rampant errors evidenced in\n##the Traditions.  How would a man of 7th Century Arabia have known\n##what *not to include* in the Holy Qur'an (assuming he had authored\n##it)?  \n##\n\n    So in short the writer (or writers) of Quran decided to stay away from\nscience.  (if you do not open your mouth, then you don't put you foot into\nyour mouth either). \n\n   But then if you say Quran does not talk much about science, then one can\nnot make claims (like Bobby does) that you have great science in Quran.\n\n   Basically I want to say that *none* of the religious texts are supposed to\nbe scientific treatises. So I am just requesting the theists to stop making\nsuch wild claims.\n\n--- Vinayak\n-------------------------------------------------------\n                                           vinayak dutt\n                                   e-mail: vdp@mayo.edu\n\n             standard disclaimers apply\n-------------------------------------------------------\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10887, "properties": {"category": "sci.crypt", "text": "From: Graham Toal <gtoal@gtoal.com>\nSubject: Re: Hard drive security for FBI targets\nOriginator: gtoal@pizzabox.demon.co.uk\nKeywords: entropy\nNntp-Posting-Host: pizzabox.demon.co.uk\nReply-To: Graham Toal <gtoal@gtoal.com>\nOrganization: Cuddlehogs Anonymous\nLines: 9\n\nIn article <6040@osc.COM> Joe Keane <jgk@osc.com> writes:\n:As a matter of fact, i do keep random files on my disk.  The reason is,\n:without special-purpose hardware, it takes a long time to generate good random\n:bits.  I have programs that crank out a couple bits per minute, which is\n:pretty conservative, but over time that's more than i need.\n\nSounds like a useful program - interested in posting it to alt.sources?\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10888, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Stan Fischler, 4/16 (Keenan stuff!)\nSummary: prior to Devils at Islanders Pregame\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 30\n\n\n* The Keenan hiring is precipitated by the loss of an anticipated $5M\nin playoff revenue and fears of losing season ticket-holders (!), plus\nParamount chief Stan Jaffe's chip against the Flyers over l'Affaire\nLindros last autumn.  Add to this that Neilsen might return as an\nassistant coach [Gerald, what'd I say earlier today??], and Roger\nconferred with Jaffe on the hiring.  This hiring by Jaffe went over\nthe head of MSG, Inc. (Par. subsidiary) head Bob Gutkowski and over\nthe head and the protests of Pres./GM Neil Smith.\n\n* MSG is making the announcement on Saturday to get back at the\nIslanders for making the playoffs (i.e., steal the press).\n\n* Flyers owner Ed Snyder is livid and beside himself over this.\n\n* Keenan will make up to $900,000/yr.\n\n* Gary Bettman has appointed an independent consul to look at\nGil Stein's admission into the Hall of Fame.\n\n* New crease colours, rather than blue?\n\n* The Oilers will charge to eat in the Press Room next year.\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10889, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: fas2981@ultb.isc.rit.edu (F.A. Shea)\nSubject: Re: Recommendations for a Local BUS (Cached) IDE Controller\nNntp-Posting-Host: ultb-gw.isc.rit.edu\nOrganization: Rochester Institute of Technology\nDistribution: usa\nLines: 41\n\nIn article <1993Apr16.140234.13267@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n>In article <1993Apr16.074836.6819@sol.ctr.columbia.edu> penev@venezia.rockefeller.edu writes:\n>>I have a Maxtor 212MB on an ISA IDE controller, although my machine is\n>>DX2/66 VLB. I has the save transfer rate of 0.647 MB/s regardless of\n>>the variations of the ISA bus speed. I tested it with speed between\n>>5.5MHz and 8.33MHz. Not _any_ difference. The problem is not the\n>>interface between the controller and the memory.\n>>\n>>My advice: Buy 4Megs of RAM, save $70 and enjoy performance.\n>\n>Computer: 286-25 mhz\n>Bus: ISA (12.5 mhz)\n>Drive: Maxtor 7213A (213 mb)\n>\n>I'd still like to here from people with VLB-IDE.\n>I still want to know what VLB bus speed is used with IDE drives.\n>I still want to know if some (most ?) IDE drives can handle bus speeds > 8 mhz.\n\n\nI recently bought a Micron 486DX/33 VLB computer and the the local bus\nide card was getting around 1k/s transfer rates (says norton).  I caled\nmicron because this seemed pathetically slow and they said that norton\n6.xx doesn't recognize local bus and won't give accurate results.  I was\ntold I would need norton 7.0 in order to get a true account of my ide\ntransfer speed.\n\nI didn't really like this answer in part because the drive doesn't seem\nas though it's cranking along at much more than that, but I also don't\nknow if I could tell the difference.\n\nI tried playing around with settings in the CMOS (bus speed at the like)\nand noticed no significant change in performance.\n\n**B0100000027fed4\nFrank Shea\n\n-- \n\"Learn of the skillful;\t\t|\tFrank Shea\nHe that teaches himself,\t|\tfas2981@ultb.isc.rit.edu\nhath a fool for his master\"\t|\tRochester Institute of Technology\n - Ben Franklin\t\t\t|\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10890, "properties": {"category": "rec.sport.hockey", "text": "From: coulman@cs.Usask.CA (Randy Coulman)\nSubject: Re: Playoff Predictions\nOrganization: University of Saskatchewan\nLines: 28\nDistribution: world\nReply-To: coulman@cs.Usask.CA\nNNTP-Posting-Host: skorpio.usask.ca\n\nIn article <1993Apr04.223559.7129@rose.com>, jack.petrilli@rose.com (jack petrilli) writes:\n\n[... stuff deleted ...]\n>\n>I don't understand why so many people are predicting an upset against \n>Pittsburgh. The team has won 12 in a row coming into the playoffs. \n>They've won practically every game that they've really wanted to win \n>all year (including critical victories against the Caps and one \n>against a hot Bruins team **at the Gaahden**). The team is probably at \n>its peak (stronger than the previous 2 Stanley Cup winners). I mean, I \n>know they can lose but it would be a **large** upset. I personally \n>think teams are going to be hard pressed to win 1 or 2 games in any \n>series against the Pens (and I'm **not** a Pittsburgh fan).\n>\n\nI have to agree here.  As I heard on TSN tonight, \"You want to pick\nsomeone else, but you just don't see how you can\".  And I'm a Bruins\nfan.  Maybe this year will be different, but it doesn't look good.\nTime will tell, though.\n\n[... lots more deleted ...]\n\nRandy\n-- \nRandy A. Coulman, M.Sc.         |       ARIES Laboratory\nResearch Assistant              |       Department of Computational Science\n                                |       University of Saskatchewan\ncoulman@cs.Usask.ca             |       Saskatoon, SK   S7N 0W0             \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10891, "properties": {"category": "rec.autos", "text": "From: roger@hpscit.sc.hp.com (Roger Mullane)\nSubject: Re: 86 Acura Integra 5-speed\nOrganization: Hewlett-Packard, Santa Clara, CA\nLines: 26\n\nI have a 1986 Acura Integra 5 speed with 95,000 miles on it. It is positively\nthe worst car I have ever owned. I had an 83 Prelude that had 160k miles on\nit when I sold it, and it was still going strong .  This is with religious\nattention to maintenance such as oil changes etc. Both cars were driven in\nexactly the same manner..\n\n  1. It has gone through two clutches (which are underrated.)\n  2. 3 sets of tires (really eats tires in the front even with careful align)\n  3. All struts started leaking about 25-30k miles\n  4. Windshield wiper motor burned up (service note on this one)\n  5. Seek stop working on radio about 20k miles\n  6. Two timing belts.\n  7. Constant error signals from computer.\n\n  8. And finally. A rod bearing went out on the No. 1 piston seriously damaging\n     the crankshaft, contaminating the engine etc. When the overhaul was done\n     last week it required new crankshaft, one new cam shaft (has two) because\n     the camshaft shattered when they tried to mill it. The camshaft took 4\n     weeks to get because it is on national back order. \n\n     Everything on the engine is unique to the 1986 year. They went to a new\n     design in 87. Parts are very expensive.\n\nNo way would I ever buy another Acura. It is highly overrated. .\n\n      \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10892, "properties": {"category": "rec.motorcycles", "text": "From: heathman@ncsa.uiuc.edu (Michael Heathman)\nSubject: Re: dogs\nOriginator: heathman@troon.ncsa.uiuc.edu\nOrganization: Nat'l Ctr for Supercomp App (NCSA) @ University of Illinois\nLines: 31\n\nIn article <93Apr20.193958.30419@acs.ucalgary.ca> parr@acs.ucalgary.ca (Charles Parr) writes:\n>\n>What, a dog weighs 150lb maybe, at max? You can't handle it?\n>\n>You have, I presume, thumbs? Grapple with it and tear it's head\n>off!\n>\n>Sheesh, even a trained attack dog is no match for a human,\n>we have *all* the advantages.\n>\n>Regards, Charles\n>DoD0.001\n>RZ350\n>-- \n\n\tProfessionals who train guard dogs, when polled, gave themselves a\n1 in 4 chance of survival tackling a trained dog unarmed.  A trained guard\ndog is not to be trifled with.  An untrained mutt may be another story.\n\nObMoto:  A local dog used to chase me all the time.  Really annoying.  I \nfinally started stopping every time he'd chase me.  He didn't know what to do\nthen and would usually just slink off the road.  After a couple weeks of this\nhe stopped chasing me altogether.  He would still chase cars or other bikes,\nthough.  I think he recognized me when I went by ;-).\n\n ------------------------------------------------------------------------------\n -  Mike Heathman           VX800 - Briar Rose        DoD #0284               -\n -  Lilly Research           T500 - Titan (Awaiting Resurrection)             -\n -  Indianapolis, IN        \"Where am I to go, now that I've gone too far?    -\n ------------------------------------------------------------------------------\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10893, "properties": {"category": "comp.graphics", "text": "From: dgf1@ellis.uchicago.edu (David Farley)\nSubject: Re: Photoshop for Windows\nReply-To: dgf1@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 37\n\nIn article <1r85m2$k66@agate.berkeley.edu> aron@tikal.ced.berkeley.edu (Aron Bonar) writes:\n>In article <1993Apr22.011720.28958@midway.uchicago.edu>, dgf1@quads.uchicago.edu (David Farley) writes:\n>|> In article <C5uHIM.JFq@rot.qc.ca> beaver@rot.qc.ca (Andre Boivert) writes:\n>|> >\n>|> >\n>|> >I am looking for comments from people who have used/heard about PhotoShop\n>|> >for Windows. Is it good? How does it compare to the Mac version? Is there\n>|> >a lot of bugs (I heard the Windows version needs \"fine-tuning)?\n>|> >\n>|> >Any comments would be greatly appreciated..\n>|> >\n>|> >Thank you.\n>|> >\n>|> >Andre Boisvert\n>|> >beaver@rot.qc.ca\n>|> >\n>|> An review of both the Mac and Windows versions in either PC Week or Info\n>|> World this week, said that the Windows version was considerably slower\n>|> than the Mac.  A more useful comparison would have been between PhotoStyler\n>|> and PhotoShop for Windows.  David\n>|> \n>\n>I don't know about that...I've used Photoshop 2.5 on both a 486dx-50 and a Quadra\n>950...I'd say they are roughly equal.  If anything the 486 was faster.\n>\n>Both systems were running in 24 bit color and had the same amount of RAM (16 megs)\n>I also believe the quadra had one of those photoshop accelerators.\n\nI went back and looked at the review again.  They claim there were\nsignificant differences in manipulating a 27 meg test file, but with\nsmaller files, the two platforms were the about the same.  David\n\n-- \nDavid Farley                           The University of Chicago Library\n312 702-3426                              1100 East 57th Street, JRL-210\ndgf1@midway.uchicago.edu                         Chicago, Illinois 60637\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10894, "properties": {"category": "misc.forsale", "text": "From: murli@bobcat.ent.ohiou.edu ( murli ramakrishnan ISE )\nSubject: Zeos daughterboard of Upgradeable 386/25 for sale/trade\nOrganization: College of Engg. & Tech., Ohio University, Athens, Ohio\nLines: 15\n\n\nHi folks,\n\tI have a 386/25 daughter board for Zeos, which I want to upgrade to\n486/25 or 33. \nSo send me mail with you offer if you are \n\t\t1. Selling 486/25 or 486/33 (zeos daughterboard)\n\t\t2. Willing to buy my 386/25 (zeos daughterboard)\nThanks..\nMurli\n\n-- \n________________________________________________________________\nMurli Ram                    murli@cubix.ent.ohiou.edu(NeXT Mail)\nOhio University              murli@bobcat.ent.ohiou.edu \nAthens__________________________________________________________\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.513+0000", "event": "documents", "entityId": 10895, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Jews can't hide from keith@cco.\nOrganization: sgi\nLines: 16\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <1993Apr3.153552.4334@mac.cc.macalstr.edu>, acooper@mac.cc.macalstr.edu writes:\n|> In article <1pint5$1l4@fido.asd.sgi.com>, livesey@solntze.wpd.sgi.com (Jon Livesey) writes\n>\n> Well, Germany was hardly the ONLY country to discriminate against the \n> Jews, although it has the worst reputation because it did the best job \n> of expressing a general European dislike of them.  This should not turn \n> into a debate on antisemitism, but you should also point out that Luther's\n>  antiSemitism was based on religious grounds, while Hitler's was on racial \n> grounds, and Wagnmer's on aesthetic grounds.  Just blanketing the whole \n> group is poor analysis, even if they all are bigots.\n\nI find these to be intriguing remarks.   Could you give us a bit\nmore explanation here?   For example, which religion is anti-semitic,\nand which aesthetic?\n\njon.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10896, "properties": {"category": "rec.autos", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: electronic odometers (was: Used BMW Question ..... ???)\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 32\n\nI consulted with someone working on an electronic odometer.  The\ndesign was to use a microprocessor based system to write a somewhat\nofuscated pattern into an EEPROM.  The idea was to make the circuit\ndifficult to program arbitrary values into the EEPROM.  The\nsecondary purpose, acutally the primary purpose from the standpoint\nof practicality, was to distributed the writes so as to avoid\nexceeing the maximum number of writes fof the EEPROM being used.\nThe microprocessor also ignored pulses coming from the Hall effect\nat a rate any higher than 110 MPH so as to make spoofing the reading\nby bench pulsing at least somewhat undesirable.  This was for an\nautomobile that was not expected to ever exceed 110 MPH in\noperation.  The case, of course, might not be the same for your\n1993 RX-7!\n\nThe ECM modules of some cars do indeed store info about conditions\nunder which cars have been operated.  Since steering angle and\nvelocity data, etc is available it would not be difficult to\ncollect all sorts of interesting demographic information about the\ndrivers' use of the car.  I am not aware of any manufacturer\ncurrently trying to enforce warranty restrictions based on reading\nout use data from the ECM.  While it could be a potential invasion\nof your privacy for manufacturers to have access to data about your\ndriving style, it could also provide valuable information from\nactual field use conditions to help engineer more appropriate cars.\nI personally wouldn't mind the dealer collecting my driving\ndemographics as long as it is done in an anonymous fashion.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10897, "properties": {"category": "comp.graphics", "text": "From: kimd@rs6401.ecs.rpi.edu (Daniel Chungwan Kim)\nSubject: WANTED: Super 8mm Projector with SOUNDS\nKeywords: projector\nNntp-Posting-Host: rs6401.ecs.rpi.edu\nLines: 9\n\n\tI am looking for Super 8mm Projector with SOUNDS.\nIf anybody out there has one for sale, send email with\nthe name of brand, condition of the projector, and price\nfor sale to kimd@rpi.edu\n(IT MUST HAVE SOUND CAPABILITY)\n\nDanny\nkimd@rpi.edu\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10898, "properties": {"category": "comp.windows.x", "text": "From: art@cs.UAlberta.CA (Art Mulder)\nSubject: comp.windows.x: Getting more performance out of X.  FAQ\nSummary: This posting contains a list of suggestions about what you can do to get the best performance out of X on your workstation -- without buying more hardware.\nKeywords: FAQ speed X\nNntp-Posting-Host: spirit-riv.cs.ualberta.ca\nReply-To: art@cs.ualberta.ca (Art Mulder)\nOrganization: University of Alberta, Edmonton, Canada\nExpires: Thu, 20 May 1993 23:00:00 GMT\nLines: 677\n\nArchive-name: x-faq/speedups\nLast-modified: 1993/4/15\n\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\tHOW TO MAXIMIZE THE PERFORMANCE OF X -- monthly posting\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\t    Compiled by Art Mulder (art@cs.ualberta.ca)\n\n  More RAM, Faster CPU's, More disk space, Faster Ethernet...  These\n  are the standard responses you hear when you ask how to improve the\n  performance of your workstation.\n\n  Well, more hardware isn't always an option, and I wonder if more\n  hardware is always even a necessity.\n\n  This \"FAQ\" list is a collection of suggestions and ideas from different\n  people on the net on how you can the best possible performance from X\n  Windows on your workstation, WITHOUT PURCHASING MORE HARDWARE.\n\n  Performance is a highly subjective issue.  The individual user must\n  balance `speed' versus `features' in order to come to a personal\n  decision.  Therefore this document can be be expected to contain many\n  subjective opinions in and amongst the objective facts.\n\n  This document is specifically concerned with X.  There are of course\n  many other factors that can affect the performance of a workstation.\n  However, they are outside the scope of this document.\n\n    [ People seriously interested in the whole area of system\n    performance, might want to look at the O'Reilly Nutshell Handbook\n    \"System Performance Tuning\" by Mike Loukides.  I'm about 25% of the\n    way through reading it, and it looks like a well-written\n    comprehensive treatment of system performance.  I'm unaware of any\n    other similar books.  --ed.]\n\n-----------------\nTable of Contents\n-----------------\n  0. Introduction & Administrivia\n  1. What about the \"Other X FAQ\"?\n  2. Window Managers\n  3. The X Server\n       Which Server?\n       Locking the Server into RAM?\n       Starting your Server\n       Fonts\n       About the Resources File\n!      Define Your Display Properly\n  4. Clients\n       A Better Clock for X\n       A Better Terminal Emulator for X\n       Tuning your client\n  5. Miscellaneous Suggestions\n       Pretty Pictures\n       A Quicker Mouse\n       Programming Thoughts\n       Say What!?\n  6. Other Sources of Information\n  7. Author & Notes\n  \n! = changed since last issue.\n* = new since last issue.\n\n-----------------------------\nIntroduction & Administrivia\n-----------------------------\n\n  This document is posted each month, on or around the 15th, to the\n  Usenet news groups comp.windows.x, news.answers, and comp.answers.\n  If you are reading a copy of this FAQ which is more than a few\n  months old (see the \"Last-modified\" date above) you should probably\n  locate the latest edition, since the information may be outdated.\n\n  If you do not know how to get those newsgroups and/or your site does\n  not receive them and/or this article has already expired, you can\n  retrieve this FAQ from an archive site.\n\n  There exist several usenet FAQ archive sites.  To find out more about\n  them and how to access them, please see the \"Introduction to the\n  news.answers newsgroup\" posting in news.answers.\n\n  The main FAQ archive is at rtfm.mit.edu [18.172.1.27].  This document\n  can be found there in /pub/usenet/news.answers/x-faq/speedups.  If\n  you do not have access to anonymous ftp, you can retrieve it by\n  sending a mail message to mail-server@pit-manager.mit.edu with the\n  command \"send usenet/news.answers/x-faq/speedups\" in the message body.\n\n-----------------------------\nWhat about the \"Other X FAQ\"?\n-----------------------------\n\n  David B. Lewis (faq%craft@uunet.uu.net) maintains the informative and\n  well written \"comp.windows.x Frequently Asked Questions\" document.\n  Its focus is on general X information, while this FAQ concentrates\n  on performance.\n\n  The comp.windows.x FAQ does address the issue of speed, but only with\n  regards to the X server.  The gist of that topic seems to be:\n\t\"Use X11R5, it is faster than R4\".\n  (Please see the X FAQ for complete details).\n\n---------------\nWindow Managers\n---------------\n\n  There are a lot of window managers out there, with lots of different\n  features and abilities.  The choice of which to use is by necessity a\n  balancing act between performance and useful features.  At this\n  point, most respondents have agreed upon \"twm\" as the best candidate\n  for a speedy window manager. \n\n  A couple of generic tricks you can try to soup up your window manger,\n  is turning off unnecessary things like \"zooming\" and \"opaque move\".\n  Also, if you lay out your windows in a tiled manner, you reduce the\n  amount of cpu power spent in raising and lowering overlapping\n  windows.                           Joe English (joe@trystero.art.com)\n\n  I've found that a good font for tiling is 7x13 (aka:\n  -misc-fixed-medium-r-normal--13-100-100-100-c-70-iso8859-1 ). It is\n  the biggest font I know of that I can use on my Sun (1152x900 screen)\n  and still get two 80 column terminal windows side-by-side on the\n  display with no overlap.  Other font suggestions will be accepted.\n\n------------\nThe X Server\n------------\n\nWhich Server?\n- - - - - - -\n  Make sure that your server is a proper match for your hardware.\n  If you have a monochrome monitor, use a monochrome X11 server.\n\n  On my Monochrome Sun, I haven't noticed much difference between\n  the Xsun (colour) server and XsunMono, however it was pointed out to\n  me that XsunMono is about 800k smaller and therefore should contribute\n  to less paging.  \n         [ thanks to: Jonny Farringdon (j.farringdon@psychol.ucl.ac.uk),\n                        Michael Salmon (Michael.Salmon@eos.ericsson.se) ]\n\n  How your server was compiled can also make a difference.  Jeff Law\n  (law@schirf.cs.utah.edu) advises us that on a Sun system, X should be\n  compiled with gcc (version 2.*) or with the unbundled Sun compiler.\n  You can expect to get \"*very* large speedups in the server\" by not\n  using the bundled SunOS compiler.  I assume that similar results\n  would occur if you used one of the other high-quality commercial\n  compilers on the market.\n\nLocking the Server into RAM?\n- - - - - - - - - - - - - - -\n  Has anyone tried hacking the X server so that it is locked into RAM and\n  does not get paged?  eg: via a call to plock().  Does this help\n  performance at all?  I've had one inquiry on this topic, and a few\n  pointers to the plock() function call, but no hard evidence from someone\n  who's tried it.  I am not in a position to give it a try.  \n\t\t\t  [thanks to: Eric C Claeys (ecc@eperm.att.com),\n\t\t\t\t      Danny Backx (db@sunbim.be),\n\t\t\t\t      Juan D. Martin (juando@cnm.us.es) ]\nStarting your Server\n- - - - - - - - - - -\n  Joe English (joe@trystero.art.com) :\n    If you start up a lot of clients in your .xsession or whatever, sleep\n    for a second or two after launching each one.  After I changed my\n    .xclients script to do this, logging in actually took *less* time...\n    we have a heavily loaded system without much core, though.\n\n  This sounds crazy, but I have confirmed that it works!  \n\n  Warner Losh (imp@Solbourne.COM) provided me with a good explanation of\n  why this works, which I have summarized here:\n\n    When you start up an X server it takes a huge amount of time to\n    start accepting connections.  A lot of initialization is done by\n    the server when it starts.  This process touches a large number of\n    pages.  Any other process running at the same time would fight the\n    server for use of the CPU, and more importantly, memory.  If you\n    put a sleep in there, you give the Server a chance to get itself\n    sorted out before the clients start up.\n\n    Similarly, there is also a lot of initialization whenever an X\n    client program starts: toolkits registering widgets, resources\n    being fetched, programs initializing state and \"databases\" and so\n    forth.  All this activity is typically memory intensive.  Once this\n    initialization is done (\"The process has reached a steady state\"),\n    the memory usage typically settles down to using only a few pages.\n    By using sleeps to stagger the launching of your clients in your\n    .Xinitrc , you avoid them fighting each other for your\n    workstation's limited resources\n\n  This is most definitely a \"Your Mileage May Vary\" situation, as there\n  are so many variables to be considered: available RAM, local swap\n  space, load average, number of users on your system, which clients\n  you are starting, etc.\n\n  Currently in my .xinitrc I have a situation like:\n\t(sleep 1; exec xclock ) &\n\t(sleep 1; exec xbiff ) &\n\t(sleep 1; exec xterm ) &\n\t(sleep 1; exec xterm ) &\n\n  I've experimented with:\n\t(sleep 1; exec xclock ) &\n\t(sleep 2; exec xbiff ) &\n\t(sleep 3; exec xterm ) &\n\t(sleep 4; exec xterm ) &\n\n  I've even tried:\n\t(sleep 2; exec start_X_clients_script ) &\n  and then in start_X_clients_script I had:\n\t(sleep 1; exec xclock ) &\n\t(sleep 1; exec xbiff ) &\n\t(sleep 1; exec xterm ) &\n\t(sleep 1; exec xterm ) &\n\n    [ The idea with this last one was to make sure that xinit had\n    completely finished processing my .xinitrc, and had settled down\n    into a \"steady state\" before the sleep expired and all my clients\n    were launched. ]\n\n  All of these yielded fairly comparable results, and so I just stuck with\n  my current setup, for its simplicity.  You will probably have to\n  experiment a bit to find a setup which suits you.\n\nFonts\n- - -\n  Loading fonts takes time and RAM.  If you minimize the number of fonts\n  your applications use, you'll get speed increases in load-up time.\n\n  One simple strategy is to choose a small number of fonts (one small, one\n  large, one roman, whatever suits you) and configure all your clients -- or\n  at least all your heavily used clients -- to use only those few fonts.\n  Client programs should start up quicker if their font is already loaded\n  into the server.  This will also conserve server resources, since fewer\n  fonts will be loaded by the server.\n\t\t\t      [ Farrell McKay (fbm@ptcburp.ptcbu.oz.au),\n\t\t\t        Joe English (joe@trystero.art.com) ]\n\n  eg: My main xterm font is 7x13, so I also have twm set up to use 7x13\n  in all it's menus and icons etc.  Twm's default font is 8x13.  Since\n  I don't normally use 8x13, I've eliminated one font from my server.\n\n  Oliver Jones (oj@roadrunner.pictel.com):\n    Keep fonts local to the workstation, rather than loading them over nfs.\n    If you will make extensive use of R5 scalable fonts, use a font server.\n\nAbout the Resources File\n- - - - - - - - - - - - -\n\n    Keep your .Xresources / .Xdefaults file small.  Saves RAM and saves\n    on server startup time.          Joe English (joe@trystero.art.com)\n\n  One suggestion:\n\n    In your .Xdefaults (.Xresources) file, try putting only the minimum\n    number of resources that you want to have available to all of your\n    applications.  For example:  *reverseVideo: true\n\n    Then, separate your resources into individual client-specific\n    resource files.  For example: $HOME/lib/app-defaults.  In your\n    .login file set the environment variable XUSERFILESEARCHPATH:\n\n\tsetenv XUSERFILESEARCHPATH $HOME/lib/app-defaults/%N\n\n    [ The \"comp.windows.x Frequently Asked Questions\" FAQ contains\n    an excellent explanation of how these environment variables work.\n    --ed.]\n\n    So, when xterm launches, it loads its resources from\n    .../app-defaults/XTerm.  Xdvi finds them in .../app-defaults/XDvi,\n    and so on and so forth.  Note that not all clients follow the same\n    XXxxx resource-file naming pattern.  You can check in your system\n    app-defaults directory (often: /usr/X11R5/lib/X11/app-defaults/) to\n    find the proper name, and then name your personal resource files\n    with the same name.\n\n    This is all documented in the Xt Specification (pg 125 & 666).\n\t\t    [Thanks to: Kevin Samborn (samborn@mtkgc.com),\n\t\t         Michael Urban (urban@cobra.jpl.nasa.gov),\n\t\t             and Mike Long (mikel@ee.cornell.edu).\n\t     Kevin is willing mail his setup files to inquirers.]\n\n  This method of organizing your personal resources has the following\n  benefits:\n\n    - Easier to maintain / more usable.\n\n    - Fewer resources are stored in the X server in the RESOURCE_MANAGER\n      property.  As a side benefit your server may start fractionally\n      quicker, since it doesn`t have to load all your resources.\n\n    - Applications only process their own resources, never have to sort \n      through all of your resources to find the ones that affect them.\n\n  It also has drawbacks:\n\n    - the application that you are interested in has to load an\n      additional file every time it starts up.  This doesn't seem to\n      make that much of a performance difference, and you might\n      consider this a huge boon to usability.  If you are modifying an\n      application's resource database, you just need to re-run the\n      application without having to \"xrdb\" again.\n\n    - xrdb will by default run your .Xdefaults file through cpp.  When\n      your resources are split out into multiple resource files and\n      then loaded by the individual client programs, they will not.\n      WATCH OUT FOR THIS!!\n\n      I had C style comments in my .Xdefaults file, which cpp stripped\n      out.  When I switched to this method of distributed resource\n      files I spent several frustrating days trying to figure out why\n      my clients were not finding their resources.  Xt did *NOT*\n      provide any error message when it encountered the C style\n      comments in the resource files, it simply, silently, aborted\n      processing the resource file.\n\n      The loss of preprocessing (which can be very handy, e.g. ``#ifdef\n      COLOR'' ...) is enough to cause some people to dismiss this\n      method of resource management.\n\n    - You may also run into some clients which break the rules.  For\n      example, neither Emacs (18.58.3) nor Xvt (1.0) will find their\n      resources if they are anywhere other than in .Xdefaults.\n\n    - when starting up a client on a machine that does not share files\n      with the machine where your resources are stored, your client\n      will not find its resources.  Loading all your resources into the\n      server will guarantee that all of your clients will always find\n      their resources.            Casey Leedom (casey@gauss.llnl.gov)\n\n  A possible compromise suggestion that I have (and am planning on trying)\n  is to put resources for all my heavily used clients (eg: xterm) into my\n  .Xdefaults file, and to use the \"separate resources files\" method for\n  clients that I seldom use.\n\nDefine Your Display Properly\n- - - - - - - - - - - - - - -\n\n  Client programs are often executed on the same machine as the server.  In\n  that situation, rather than setting your DISPLAY environment variable to \n  \"<hostname>:0.0\", where <hostname> is the name of your workstation, you\n  should set your DISPLAY variable to \"unix:0.0\" or \":0.0\".  By doing this\n  you access optimized routines that know that the server is on the same\n  machine and use a shared memory method of transferring requests.\n\t\t\t[thanks to Patrick J Horgan (pjh70@ras.amdahl.com)]\n\n  See the _DISPLAY NAMES_ section of the X(1) man page for further\n  explanation of how to properly set your display name.\n\n  \"I don't think it's stock MIT, but (at least) Data General and HP have\n  libraries that are smart enough to use local communication even when\n  the DISPLAY isn't set specially.\"\n\t\t\t      Rob Sartin (88opensi!sartin@uunet.UU.NET)\n\n  [Jody Goldberg (jody@algorithmics.com) sent me an Xlib patch to change\n  stock R5 to use local communication even if DISPLAY is not properly set.\n  I don't want to get in the business of distributing or trying to juggle\n  non-MIT patches and so have elected not to include it here.  Hopefully MIT\n  will apply this minor (~8 lines) patch themselves.  In the meantime, if\n  you want to try it yourself, email Jody.  --ed.]\n\n-------\nClients\n-------\n\n  If you only have a few megabytes of Ram then you should think\n  carefully about the number of programs you are running.  Think also\n  about the _kind_ of programs you are running.  For example:  Is there\n  a smaller clock program than xclock?\n\n  Unfortunately, I haven't really noticed that programs advertise how large\n  they are, so the onus is on us to do the research and spread the word.\n\n  [ Suggestions on better alternatives to the some of the standard clients\n  (eg: Xclock, Xterm, Xbiff) are welcome.  --ed.]\n\n  I've received some contradictory advice from people, on the subject\n  of X client programs.  Some advocate the use of programs that are\n  strictly Xlib based, since Xt, Xaw and other toolkits are rather\n  large.  Others warn us that other applications which you are using\n  may have already loaded up one or more of these shared libraries.  In\n  this case, using a non-Xt (for example) client program may actually\n  _increase_ the amount of RAM consumed.\n\n  The upshot of all this seems to be: Don't mix toolkits.  That is, try\n  and use just Athena clients, or just Xview clients (or just Motif\n  clients, etc).  If you use more than one, then you're dragging in\n  more than one toolkit library.\n\n  Know your environment, and think carefully about which client\n  programs would work best together in that environment.\n\n\t\t  [Thanks to: Rob Sartin (88opensi!sartin@uunet.UU.NET),\n      Duncan Sinclair (sinclair@dcs.gla.ac.uk | sinclair@uk.ac.gla.dcs) ]\n\nA Better Clock for X\n- - - - - - - - - - -\n\n1) xcuckoo\n   suggested by: Duncan Sinclair (sinclair@dcs.gla.ac.uk)\n   available: on export.lcs.mit.edu\n\n   Xcuckoo displays a clock in the title bar of *another* program.\n   Saves screen real estate.\n\n2) mclock\n   suggested by: der Mouse (mouse@Lightning.McRCIM.McGill.EDU)\n   available: larry.mcrcim.mcgill.edu (132.206.1.1) in /X/mclock.shar\n\n   Non Xt-based.  Extensively configurable.  it can be made to look\n   very much like MIT oclock, or mostly like xclock purely by changing\n   resources.\n\n  Of course, the ultimate clock --- one that consumes no resources, and \n  takes up no screen real estate --- is the one that hangs on your wall.\n  :-) \n\nA Better Terminal Emulator for X\n- - - - - - - - - - - - - - - - -\n\n  From the README file distributed with xterm:\n\n  +-----\n  |\t\t Abandon All Hope, Ye Who Enter Here\n  |\n  | This is undoubtedly the most ugly program in the distribution.\n  | ...\n  +-----\n\n  Ugly maybe, but at my site it's still the most used.  I suspect that\n  xterm is one of the most used clients at many, if not most sites.\n  Laziness?  Isn't there a better terminal emulator available?  See below.\n\n  If you must use xterm, you can try reducing the number of saveLines\n  to reduce memory usage.  [ Oliver Jones (oj@roadrunner.pictel.com),\n\t\t   Jonny Farringdon (j.farringdon@psychol.ucl.ac.uk) ]\n\n1) Xvt\n   suggested by: Richard Hesketh (rlh2@ukc.ac.uk) :\n   available: export.lcs.mit.edu in /contrib/xvt-1.0.tar.Z\n\n   \"...if you don't need all the esoteric features of xterm, then get\n   hold of xvt ...  it was written here just to save swap space as\n   xterm is rather a hog! \"\n\n   This was written as a partial 'clone' of xterm.  You don't have to\n   rename your resources, as xvt pretends to be XTerm.  In it's current\n   version, you cannot bind keys as you can in xterm.  I've heard that\n   there are versions of xvt with this feature, but I've not found any\n   yet.\n\n   UPDATE (March 1993):  I recently had a few email conversations with\n   Brian Warkentin (brian.warkentine@eng.sun.com) regarding xvt.  He\n   questions whether xvt really is at all faster than xterm.  For\n   instance, xvt may initialize slightly faster, but compare scrolling\n   speed (try this quickie benchmark: /bin/time dd if=/etc/termcap\n   bs=40) and see which program can scroll faster.  Also, while xterm\n   may be slightly larger in RAM requirements (We don't have any hard\n   numbers here, does anyone else?) shared libraries and shared text\n   segments mean that xterm's paging requirements are not that major.\n\n   As an experiment, he ripped out all the tek stuff from xterm, but it\n   made little difference, since if you never use it, it never gets\n   brought into memory.\n\n   So here we stand with some conflicting reports on the validity of\n   xvt over xterm.  In summary?  Caveat Emptor, your mileage may vary.\n   If you can provide some hard data, I'd like to see it.\n   Specifically: How much RAM each occupies, how much swap each needs,\n   relative speed of each\n\n2) mterm\n   suggested by: der Mouse (mouse@Lightning.McRCIM.McGill.EDU)\n   available: larry.mcrcim.mcgill.edu (132.206.1.1) in\n     /X/mterm.src/mterm.ball-o-wax.\n\n   \"I also have my own terminal emulator.  Its major lack is\n   scrollback, but some people like it anyway.\"\n\n\nTuning your client\n- - - - - - - - - -\n\n  Suggestions on how you can tune your client programs to work faster.\n\n  From Scott Barman (scott@asd.com) comes a suggestion regarding Motif\n  Text Field Widgets:\n\n    I noticed that during data entry into Motif text field widgets, I\n    was getting a slight lag in response to some keystrokes,\n    particularly the initial one in the field.  Examining the what was\n    going on with xscope I found it.  It seems that when the resource\n    XmNblinkRate is non-zero and the focus is on a text field widget\n    (or even just a text widget) the I-beam cursor will blink.\n    Every time the cursor appears or disappears in those widgets, the\n    widget code is making a request to the server (CopyArea).  The user\n    can stop this by setting the resource XmNblinkRate to 0.  It is not\n    noticeable on a 40MHz SPARC, but it does make a little difference\n    on a [slower system].\n\n  This specific suggestion can probably be applied in general to lots\n  of areas.  Consider your heavily used clients, are there any minor\n  embellishments that can be turned off and thereby save on Server\n  requests?\n\n-------------------------\nMiscellaneous Suggestions\n-------------------------\n\nPretty Pictures\n- - - - - - - -\n  Don't use large bitmaps (GIF's, etc) as root window backgrounds.\n\n  - The more complicated your root window bitmap, the slower the server\n    is at redrawing your screen when you reposition windows (or redraw, etc)\n\n  - These take up RAM, and CPU power.  I work on a Sun SPARC and I'm\n    conscious of performance issues, I can't comprehend it when I see\n    people with a 4mb Sun 3/60 running xphoon as their root window.\n\n    I'll let someone else figure out how much RAM would be occupied by\n    having a full screen root image on a colour workstation.\n\n  - If you're anything like me, you need all the screen real estate\n    that you can get for clients, and so rarely see the root window anyway.\n\n\t\t      [ Thanks to Qiang Alex Zhao (azhao@cs.arizona.edu) \n\t\t\tfor reminding me of this one. --ed.]\n\nA Quicker Mouse\n- - - - - - - -\n  Using xset, you can adjust how fast your pointer moves on the screen\n  when you move your mouse.  I use \"xset m 3 10\" in my .xinitrc file,\n  which lets me send my pointer across the screen with just a flick of\n  the wrist.  See the xset man page for further ideas and information.\n\n  Hint: sometimes you may want to *slow down* your mouse tracking for\n  fine work.  To cover my options, I have placed a number of different\n  mouse setting commands into a menu in my window manager.  \n\n  e.g. (for twm) :\n      menu \"mouse settings\" {\n        \"Mouse Settings:\"\t\t\tf.title\n\t\"  Very Fast\"\t\t\t\t! \"xset m 7 10 &\"\n\t\"  Normal (Fast)\"\t\t\t! \"xset m 3 10 &\"\n\t\"  System Default (Un-Accelerated)\"\t! \"xset m default &\"\n\t\"  Glacial\"\t\t\t\t! \"xset m 0 10 &\"\n      }\n\nProgramming Thoughts\n- - - - - - - - - - -\n  Joe English (joe@trystero.art.com) :\n    To speed up applications that you're developing, there are tons of\n    things you can do.  Some that stick out:\n\n    - For Motif programs, don't set XmFontList resources for individual\n      buttons, labels, lists, et. al.; use the defaultFontList or\n      labelFontList or whatever resource of the highest-level manager\n      widget.  Again, stick to as few fonts as possible.\n\n    - Better yet, don't use Motif at all.  It's an absolute pig.\n\n    - Don't create and destroy widgets on the fly.  Try to reuse them.\n      (This will avoid many problems with buggy toolkits, too.)\n\n    - Use a line width of 0 in GCs.  On some servers this makes a HUGE\n      difference.\n\n    - Compress and collapse multiple Expose events.  This can make the\n      difference between a fast application and a completely unusable\n      one.\n\n  Francois Staes (frans@kiwi.uia.ac.be) :\n    Just a small remark: I once heard that using a better malloc\n    function would greatly increase performance of Xt based\n    applications since they use malloc heavily. They suggested trying\n    out the GNUY malloc, but I didn't find the time yet. I did some\n    tests on small programs just doing malloc and free, and the\n    differences were indeed very noticeable ( somewhat 5 times faster)\n\n  [ Any confirmation on this from anyone?  --ed.]\n\n  Andre' Beck (Andre_Beck@IRS.Inf.TU-Dresden.de) :\n\n  - Unnecessary NoExpose Events.\n\n    Most people use XCopyArea/XCopyPlane as fastest blit routines, but\n    they forget to reset graphics_exposures in the GC used for the\n    blits. This will cause a NoExpose Event every blit, that, in most\n    cases, only puts load onto the connection and forces the client to\n    run through it's event-loop again and again.\n\n  - Thousands of XChangeGC requests.\n\n    This \"Gfx Context Switching\" is also seen in most handcoded X-Apps,\n    where only one or few GCs are created and then heavily changed\n    again and again.  Xt uses a definitely better mechanism, by caching\n    and sharing a lot of GCs with all needed parameters. This will\n    remove the load of subsequent XChangeGC requests from the\n    connection (by moving it toward the client startup phase).\n\nSay What!?\n- - - - - - \n  Some contributors proposed ideas that seem right off the wall at first:\n\n  David B. Lewis (by day: dbl@osf.org, by night: david%craft@uunet.uu.net) :\n    How about this: swap displays with someone else. Run all your programs\n    on the other machine and display locally; the other user runs off your\n    machine onto the other display. Goal: reduce context switches in the\n    same operation between client and server.\n\n  I'm not in a situation where I can easily try this, but I have received\n  the following confirmation...\n\n  Michael Salmon (Michael.Salmon@eos.ericsson.se):\n    I regularly run programs on other machines and I notice a big\n    difference. I try to run on a machine where I will reduce net usage\n    and usually with nice to reduce the impact of my intrusion. This\n    helps a lot on my poor little SS1+ with only 16 MB, it was\n    essential when I only had 8 MB.\n\n  Casey Leedom (casey@gauss.llnl.gov) :\n    [The X11 Server and the client are] competing for the same CPU as\n    your server when you run it on the same machine.  Not really a\n    major problem, except that the X11 client and the server are in\n    absolute synchronicity and are context thrashing.\n\n  Timothy H Panton (thp@westhawk.uucp) :\n    Firstly it relies on the fact that most CPU's are mostly idle, X's\n    cpu usage is bursty.  so the chances of you and your teammate\n    doing something cpu-intensive at the same time is small. If they\n    are not then you get twice the cpu+memory available for your\n    action.\n\n    The second factor is that context switches are expensive, using 2\n    cpu's halves them, you pay a price due to the overhead of going\n    over the network, but this is offset in most cases by the improved\n    buffering of a network (typically 20k vs 4k for a pipe), allowing\n    even fewer context switches.\n\n----------------------------\nOther Sources of Information\n----------------------------\n\n  Volume 8 in O'Reilly's X Window System Series, ``X Window System\n  Administrator's Guide'' is a book all X administrator's should read.\n\n  Adrian Nye (adrian@ora.com):\n    A lot more tips on performance are in the paper \"Improving X\n    Application Performance\" by Chris D. Peterson and Sharon Chang, in\n    Issue 3 of The X Resource.\n\n    An earlier version of this paper appeared in the Xhibition 1992\n    conference proceedings.\n\n    This paper is absolutely essential reading for X programmers.\n\n--------------\nAuthor & Notes\n--------------\n  This list is currently maintained by Art Mulder (art@cs.ualberta.ca)\n\n  Suggestions, corrections, or submission for inclusion in this list\n  are gladly accepted.  Layout suggestions and comments (spelling\n  mistak's too! :-) are also welcome.\n\n  Currently I have listed all contributors of the various comments and\n  suggestions.  If you do not want to be credited, please tell me.\n\n  speedup-x-faq is copyright (c) 1993 by Arthur E. Mulder\n\n  You may copy this document in whole or in part as long as you don't\n  try to make money off it, or pretend that you wrote it.\n\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n--\n ...art mulder ( art@cs.ualberta.ca )    | \"Do not be conformed to this world,\n Department of Computing Science         |  but be transformed by the renewal\n University of Alberta, Edmonton, Canada |  of your mind, ...\"  Romans 12:2\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10899, "properties": {"category": "comp.sys.mac.hardware", "text": "From: jdsiegel@garnet.berkeley.edu (Joel Siegel)\nSubject: Re: HELP: Need modem info for Duo 210\nArticle-I.D.: agate.1qo9c6$8oj\nOrganization: University of California, Berkeley\nLines: 27\nNNTP-Posting-Host: garnet.berkeley.edu\n\njmilhoan@magnus.acs.ohio-state.edu (JT) writes:\n\n>Hi... what alternatives to the Express modem do Duo owners have (if\n>they want to go at least 9600 baud)?\n\n>Every place in town says they are back ordered, and part of the reason\n>I want a laptop mac is so I can use it as a remote terminal from\n>wherever I am, but I really would hate to have to wait 2 months to get\n>a modem in or have to settle with 2400 baud.\n\nYou're not going to like this, but if memory serves me, postings\nI've read in this newsgroup and elsewhere indicate that there are\nno, repeat no, internal modems for the Duo besides the Express\nModem... at _any_ speed.  Something having to do with the modem\nusing the main CPU for some of its tasks, and Apple not releasing\ndetails on the architecture, or something.  I'm vague on the\ndetails, but the gist was that there are going to be no\nthird-party internal Duo modems.  If I'm wrong, somebody please\ncorrect me on this.  Sorry to be the bearer of bad news.\n\nJoel\n\n-- \nJoel Siegel <jdsiegel@garnet.berkeley.edu    jdsiegel@ocf.berkeley.edu>\n\"I myself have never been able to find out what feminism is:  I\nonly know that I am called a feminist whenever I express\nsentiments that differentiate me from a doormat.\" -Rebecca West, 1913\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10900, "properties": {"category": "sci.space", "text": "From: prb@access.digex.com (Pat)\nSubject: Re: How many read sci.space?\nOrganization: Express Access Online Communications USA\nLines: 9\nNNTP-Posting-Host: access.digex.net\n\nIn article <1993Apr22.184650.4833@mksol.dseg.ti.com> mccall@mksol.dseg.ti.com (fred j mccall 575-3539) writes:\n>isn't my real name, either.  I'm actually Elvis.  Or maybe a lemur; I\n>sometimes have difficulty telling which is which.\n\ndefinitely a lemur.\n\nElvis couldn't spell,  just listen to any of his songs.\n\npat\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10901, "properties": {"category": "sci.crypt", "text": "Subject: Re: Illegal Wiretaps (was Denning's Trust)\nFrom: kubo@zariski.harvard.edu (Tal Kubo)\nDistribution: inet\nOrganization: Dept. of Math, Harvard Univ.\nNntp-Posting-Host: zariski.harvard.edu\nLines: 33\n\nIn article <1ppg02$i2k@bigboote.WPI.EDU> \near@bigwpi.WPI.EDU (Mr. Neat-O [tm]) writes:\n>>\n>>It is apparently quite easy to get hold of a person's calling records\n>>through the phone company.  Police (and some lawyers) are able to acquire\n>>such information without any warrant or judicial supervision, whether or\n>>not the target is suspected of specific crimes.\n>\n>Pardon me, but isn't this very illegal?  I was under the impression that a\n>warrent *is* needed to get this information out of the phone company in\n>order to protect people's privacy. \n\nLegal or not, I've seen it done.  Phone records were obtained\nin order to *establish* probable cause, rather than as a result of it.\nIn other words, for a fishing expedition.\n\n \n>                                   A local (Worcester, MA) police officer I\n>spoke with only a couple of nights ago told me that they usually only\n>subpeona the phone companies records in *extreme* conditions because it's so\n>much of a hassle.\n\nAnd does the phone company require written, subpoena-able evidence\nof probable cause in order to process the request?  I suggest that\nthe officer was disinterested in pursuing your case -- even if you\ncould prove the offender had called you at a certain time, your \nchances of winning a harassment suit on the strength of this evidence\nare nil.  My contact with several people who have dealt with cases\nof extreme phone harassment (several thousand calls in one case) teaches \nme that police in this area are quite lethargic about pursuing such matters.\n\n\nTal\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10902, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: brzyckmj@dunx1.ocs.drexel.edu (Mike)\nSubject: Panasonic KX-P1091i Driver?\nOrganization: Drexel University, Phila. Pa.\nLines: 2\n\nDoes anyone out there know if there are print drivers for Windows for the\nPanasonic KX-P1091i 9-pin dot matrix printer?\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10903, "properties": {"category": "talk.politics.misc", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: National Sales Tax, The Movie\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 36\n\natboyken@iastate.edu (Aaron T Boyken) writes:\n>\n>Here's a question:  what if, instead of a true VAT, the federal \n>government imposed a sales tax of say 2-3%?  The tax would only\n>be paid on retail sales (thus not building up at all levels of\n>production costs that are just passed on to consumers anyway),\n>and would only go to reducing the deficit.  (I know that this \n>would never happen, but it seems a lot more palettable than\n>a VAT).\n\nCanada's GST is collected as a sales tax and is considered a VAT.\nFunnily, the previous hidden wholesale tax that it replaces was\nnever referred to as a tax (or, people never paid mind to it,\nthus the uproar when it was brought up front as the GST --- \none party has actually campaigned on hiding the tax again).\n\nThe stated intent of the Tories was to use the GST to write down\nour deficit.  Unfortunately, their legislation didn't include any\nmechanism for disbursing the collected funds in such a manner and\nthe money is now sitting in escrow.  I don't know what is involved\nin releasing the funds, but one dilemna is that the Tories are not\nfiscal conservatives themselves though while taxing and spending,\nthey've made moves to apply the breaks to a runaway locomotive by\nthe end of this time --- the end of their second term (~9 years).\nWhile they do have chances of getting a third term, catching up\nin the polls to their more moderate/slightly leftish pro-business\nrivals, the Liberals (as in Euro/UK), the Tories' heir-apparent \nfor the leaders' mantle has been termed a clone of Hillary \nClinton ...\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10904, "properties": {"category": "talk.politics.mideast", "text": "From: tclock@orion.oac.uci.edu (Tim Clock)\nSubject: Re: \"Conventional Proposales\": Israel & Palestinians\nNntp-Posting-Host: orion.oac.uci.edu\nOrganization: University of California, Irvine\nLines: 117\n\nIn article <2BCA3DC0.13224@news.service.uci.edu> tclock@orion.oac.uci.edu (Tim Clock) writes:\n>\n>The latest Israeli \"proposal\", first proposed in February of 1992, contains \n>the following assumptions concerning the nature of any \"interim status\" refering to the WB and Gaza, the Palestinians, implemented by negotiations. It\n>states that:    \n>   >Israel will remain the existing source of authority until \"final status\"\n>    is agreed upon;\n>   >Israel will negiotiate the delegation of power to the organs of the \n>    Interim Self-Government Arrangements (ISGA);\n>   >The ISGA will apply to the \"Palestinian inhabitants of the territories\"\n>    under Israeli military administration. The arrangements will not have a \n>    territorial application, nor will they apply to the Israeli population \n>    of the territories or to the Palestinian inhabitants of Jerusalem;\n>   >Residual powers not delegated under the ISGA will be reserved by Israel;\n>   >Israelis will continue to live and settle in the territoriesd;\n>   >Israel alone will have responsibility for security in all its aspects-\n>    external, internal- and for the maintenance of public order;\n>   >The organs of the ISGA will be of an administrative-functional nature;\n>   >The exercise of powers under the ISGA will be subject to cooperation and \n>    coordination with Israel. \n>   >Israel will negotiate delegation of powers and responsibilities in the \n>    areas of administration, justice, personnel, agriculture, education,\n>    business, tourism, labor and social welfare, local police,\n>    local transportation and communications, municipal affairs and religious\n>    affairs.\n>\n>The Palestinian counterproposal of March 1992:\n>   >The establishment of a Palestinian Interim Self-Governing Authority \n>    (PISGA) whose authority is vested by the Palestinian people;\n>   >Its (PISGA) powers cannot be delegated by Israel;\n>   >In the interim phase the Israeli military government and civil adminis-\n>    tration will be abolished, and the PISGA will asume the powers previous-\n>    ly enjoyed by Israel;\n>   >There will be no limitations on its (PISGA) powers and responsibilities \n>    \"except those which derive from its character as an interim arrangement\";\n>   >By the time PISGA is inaugurated, the Israeli armed forces will have \n>    completed their withdrawal to agreed points along the borders of the \n>    Occupied Palestinian Territory (OPT). The OPT includes Jerusalem;\n>   >The jurisdiction of the PISGA shall extend to all of the OPT, including \n>    its land, water and air space;\n>   >The PISGA shall have legislative powers to enact, amend and abrogate laws;\n>   >It will wield executive power withput foreign control;\n>   >It shall determine the nature of its cooperation with any state or \n>    international body, and shall be empowered to conclude binding coopera-\n>    tive agreements free of any control by Israel;\n>   >The PISGA shall administer justice throughout the OPT and will have sole\n>    and exclusive jruisdiction;\n>   >It will have a strong police force responsible for security and public\n>    order in the OPT;\n>   >It can request the assistance of a UN peacekeeping force;\n>   >Disputes with Israel over self-governing arrangements will be settled by \n>    a committee composed of representatives of the five permanent members of\n>    the UN Security Council, the Secretary General (of the UN), the PISGA, \n>    Jordan, Egypt, Syria and Israel.\n>\n>But perhaps the \"bargaining\" attitude behind these very different visions\n>of the \"interim stage\" is wrong? For two reasons: 1) the present Palestinian \n>and Israeli leadership are *as moderate* as is likely to exist for many years,\n>so the present opportunity may be the last for a significant period, 2) since\n>these negotiations *are not* designed to, or even attempting to, resolve the \n>conflict, attention to issues dealing with a desired \"final status\" are mis-\n>placed and potentially destructive.\n>\n>Given this, how should proposals (from either side) be altered to temper\n>their \"maximalist\" approaches as stated above? How can Israeli worries ,and \n>desire for some \"interim control\", be addressed while providing for a very \n>*real* interim Palestinian self-governing entity?\n>\n>Tim\n>                                                       \nApril 13, 1993 response by Al Moore (L629159@LMSC5.IS.LMSC.LOCKHEED.COM):\n\nBasically the problem is that Israel may remain, or leave, the occupied \nterritories; it cannot do both, it cannot do neither. So far, Israe \ncontinues to propose that they remain. The Palestinians propose that they \nleave. Why should either change their view? It is worth pointing out that \nthe only area of compromise accomodating both views seems to require a\nreduction in the Israeli presence. Israel proposes no such reduction....\nand in fact may be said to *not* be negotiating.\n------------------------------------------------------------------------\n\nTim: \n\nThere seem to be two perceptions that **have to be addressed**. The\nfirst is that of Israel, where there is little trust for Arab groups, so\nthere is little support for Israel giving up **tangible** assets in \nexchange for pieces of paper, \"expectations\", \"hopes\", etc. The second\nis that of the Arab world/Palestinians, where there is the demand that\nthese \"tangible concessions\" be made by Israel **without** it receiving\nanything **tangible** back.  Given this, the gap between the two stances\nseems to be the need by Israel of receiving some ***tangible*** returns\nfor its expected concessions. By \"tangible\" is meant something that\n1) provides Israel with \"comparable\" protection (from the land it is to \ngive up), 2) in some way ensures that the Arab states and Palestine \n**will be** accountable and held actively (not just \"diplomatically) \nresponsible for the upholding of all actions on its territory (by citizens \nor \"visitors\").\n\nIn essence I do not believe that Israel objections to Palestinian\nstatehood would be anywhere near as strong as they are now IF Israel\nwas assured that any new Palestinian state *would be committed to** \nco-existing with Israel and held responsible for ALL attacks on Israel \nfrom its territory.\n\tAside from some of the rather slanted proposals above,\n\thow *could* such \"guarantees\" be instilled? For example,\n\thow could such \"guarantees\"/\"controls\" be added to the\n\tPalestinian PISGA proposals?\n\nIsrael is hanging on largely because it is scared stiff that the minute\nit lets go (gives lands back to Arab states, no more \"buffer zone\", gives\nfull autonomy to Palestinians), ANY and/or ALL of the Arab parties\ncould (and *would*, if not \"controlled\" somehow) EASILY return to the \ntraditional anti-Israel position. The question then is HOW to *really*\nensure that that will not happen.\n\nTim\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10905, "properties": {"category": "rec.sport.hockey", "text": "From: andrew@idacom.hp.com (Andrew Scott)\nSubject: USENET Playoff Pool\nOrganization: IDACOM, A division of Hewlett-Packard\nLines: 15\n\nAs I've mentioned in the rules posting, I will be out of town until the\nday before the entry deadline, so I won't be able to respond to your\nmessages until April 18.\n\nI would be grateful if someone could repost the rules and instructions for\nthe playoff pool sometime next week, for the benefit of those who missed the\nfirst two postings.\n\nThanks.\n\n-- \nAndrew Scott                    | andrew@idacom.hp.com\nHP IDACOM Telecom Operation     | (403) 462-0666 ext. 253\n\nDuring the Roman Era, 28 was considered old...\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10906, "properties": {"category": "soc.religion.christian", "text": "From: hayesstw@risc1.unisa.ac.za (Steve Hayes)\nSubject: Re: The arrogance of Christians\nOrganization: University of South Africa\nLines: 51\n\nIn article <Apr.11.01.02.46.1993.17799@athos.rutgers.edu> mhsu@lonestar.utsa.edu (Melinda . Hsu   ) writes:\n\n>belief that their faith is total truth.  According to them,\n>their beliefs come from the Bible and the bible is the word of\n>God and God is truth - thus they know the truth.  This stance\n>makes it difficult to discuss other faiths with them and my own\n>hesitations about Christianity because they see no other way.\n>Their way is the 'truth.'\n>\n>But I see their faith arising from a willful choice to believe\n>a particular way.  That choice is part faith and part reason,\n>but it seems to me a choice.\n>\n>My discussions with some Christians remind me of schoolyard\n>discussions when I was in grade school:\n>\n>A kid would say, \"All policemen are jerks!\"  I'd ask, \"How do\n>you know?\"  \"Because my daddy told me so!\"  \"How do you know\n>you're daddy is right?\"  \"He says he's always right!\"\n>\n>Well the argument usually stops right there.  In the end,\n>aren't we all just kids, groping for the truth?  If so, do we have\n>the authority to declare all other beliefs besides our own as\n>false?\n\nI find this argument very strange, though not unfamiliar.\n\nAn analogy someone used a while back can perhaps illustrate it.\n\nSay, for example, there are people living on a volcanic island, and a group \nof geologists determine that a volcano is imminent. They warn the people on \nthe island that they are in danger, and should leave. A group of people on \nthe island is given the task of warning others of the danger.\n\nThey believe the danger is real, but others may not. \n\nDoes that mean that the first group are NECESSARILY arrogant in warning \nothers of the danger? Does it mean that they are saying that their beliefs \nare correct, and all others are false?\n\nSome might indeed react to opposition with arrogance, and behave in an \narrogant manner, but that is a personal idiocyncracy. It does not \nnecessarily mean that they are all arrogant.\n\n\n============================================================\nSteve Hayes, Department of Missiology & Editorial Department\nUniv. of South Africa, P.O. Box 392, Pretoria, 0001 South Africa\nInternet: hayesstw@risc1.unisa.ac.za\n          steve.hayes@p5.f22.n7101.z5.fidonet.org\n          stephen.hayes@f20.n7101.z5.fidonet.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.514+0000", "event": "documents", "entityId": 10907, "properties": {"category": "rec.motorcycles", "text": "From: nak@cbnews.cb.att.com (neil.a.kirby)\nSubject: Re: BMW battery\nOrganization: AT&T\nLines: 27\n\n: In article <1993Apr14.181352.6246@ra.msstate.edu> vech@Ra.MsState.Edu (Craig A. Vechorik) writes:\n: >If I remember correctly, the reason that BMW's come with those expensive,\n: >and relatively worthless, short lived Varda batteries, is 'cause BMW owns\n: >a controling interest in that battery Manufacturer.                 \n\n: What's wrong with the BMW battery? I've never had problems and I know\n: numerous people that are still using the original battery in there\n: 8-10 year old beemers.\n\nTHe original battery in an 8-10 year old BMW may be fine.  Mine lasted many\nyears.  The replacement 30AH battery from BMW was a disaster.  The mechanic\nfrom Comp. Acc. told me that CA would warantee replace the bad one with a\nnew one of the same evil bad batteries and tell the customer if they have\nproblems to bring it back and they'd do it again.  It seems that many of\nthose 30AH batteries were DOA, near-DOA, and always unlikely to be going\nstrong by the end of the warantee period on them.  THere was a big batch of\nbad ones, and they replaced them with -you guessed it - more bad ones.  BMW\nswitched to a 25AH battery that has more cold cranking amps, even if it has\nless total juice.  \n\nI switched to a YUASA that has even more cold cranking amps and cost one\nthird fewer dollars.\n\n\nNeil Kirby      DoD #0783       nak@archie.cbusa.att.com\nAT&T Bell Labs  Columbus OH     USA (614) 860-5304\nIf you think I speak for AT&T you might have more lawyers than sense.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10908, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: Yet more Rushdie [Re: ISLAMIC LAW]\nOrganization: Monash University, Melb., Australia.\nLines: 131\n\nIn <2942956021.3.p00261@psilink.com> \"Robert Knowles\" <p00261@psilink.com> writes:\n\n>>DATE:   Sat, 3 Apr 1993 10:00:39 GMT\n>>FROM:   Fred Rice <darice@yoyo.cc.monash.edu.au>\n>>\n>>In <1p8ivt$cfj@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n>>\n>>>Should we British go around blowing up skyscrapers next?\n>>\n>>I don't know if you are doing so, but it seems you are implying \n>>(1) that the person accused of blowing up the WTC in NY actually did it,\n>>and\n>>(2) that Islamic teachings have something to do with blowing up the WTC.\n>>\n>>[WTC = World Trade Centre, which was the building that was blown up, I\n>>think.]\n>>\n>>Okay... to make some comments...\n>>\n>>(1) The person has only been accused -- innocent until proven guilty,\n>>remember?  Secondly, there seem to be some holes in his accusation that\n>>I read about.  For instance, if they guy used that particular van to\n>>blow up the building, and then to go back and claim his deposit back\n>>afterwards, he must be incredibly stupid.  \n\n>Perhaps Salamen was one of those \"uneducated\" Muslims we hear so much about.\n\n>>Nevertheless, he was\n>>apparently smart enough to put together a very sophisticated bomb.  It\n>>doesn't seem to fit together, somehow.  \n\n>Actually, Salameh was not the ONLY person involved.  The other fellow was\n>a chemical engineer working for Allied Signal who had specifically studied\n>explosive devices in school (believe it or not - we actually allow radical\n>Muslim types to study things like this in our universities - so much for\n>the price of freedom)\n\nFrom what I read, the other fellow told Salameh how to put it together\nover the phone.  The bomb was supposedly some sort of sophisticated\ntype, so to put a (I assume complicated) sophisticated bomb together\nfrom instructions _over the phone_ (!) one must need some brains I would\nexpect.\n\n>>Despite this, there have\n>>already been many attacks and threats against mosques and Muslims in the\n>>United States as a consequence of his accusation, I have read.\n>>\n\n>O.K., now please tell us where this is happening.  I live in the U.S. and\n>I have heard very little about these mosque attacks.  There are many mosques\n>in Houston, Texas and I would like to know what is going on so I can verify\n>this.  Or is the Great Jewish Media Conspiracy keeping us from knowing about\n>this in the U.S.  We heard about the mosque attacks during the Desert Storm\n>venture, so why is it so quiet now?  Maybe it is localized to New Jersey?\n\nI read this in an article in \"The Australian Muslim Times\", the\nnewspaper (weekly) of the Australian Muslim community.  \n\nIf this is true, perhaps one of the Muslims based in North America (if\nthey see this posting) can elaborate.\n\n>>(2) Islamic teachings teach against harming the innocent.  In the Qur'an\n>>it explicitly teaches against harming innocents even in times of war.\n>>The blowing up of the WTC and harming innocents is therefore in blatant\n>>contradiction to Islamic teachings.\n\n>This means absolutely nothing.  Plenty of people commit violence while \n>following what they think are valid religious principles.  I have seen\n>people post many things here from the Koran which could be \"misinterpreted\"\n>(if that is the explanation you wish to use) by an \"uneducated\" Muslim to\n>allow them to harm idolators and unbelievers.  The first thing every Muslim\n>says is that no Muslim could have done that because Islam teaches against\n>harming innocents.  And we are supposed to take you WORD that it NEVER\n>happens.   What do you think is the consequence?  Does Allah strike them\n>down before the \"alleged\" violence occurs?  Of course not.  Muslims commit\n>the violent act and then everyone hides behind verses in the Koran.  We're\n>pretty hip to that trick.  And I even doubt that it will come up in the\n>trials.  \n\n>\"My defense is that I am Muslim and Islam teaches me not to harm the innocent.\n>Therefore, the people who were killed must not have been innocent.  Sure we\n>set off the bomb, your honor, but you must remember, sir, I am a Muslim.\n>Allah is all-powerful.  Allah would not have allowed this.  Are you insulting\n>my religion?\"\n\n>Great defense, eh?\n\n>Just admit that there are some incredibly stupid, violent Muslims in the \n>world and stop hiding from that fact.  It does no one any good to deny it.\n>It only makes the more reasonable Muslims look like they are protecting the\n>bad ones.  Can you see that?\n\nI don't deny this fact.\n\nThe thrust of my argument here is that \n\n(a) Salameh is, according to US law, innocent as he has not been found\nguilty in a court of law.  As his guilt has not been established, it is\nwrong for people to make postings based on this assumption.\n\n(b) Islam teaches us _not_ to harm innocents.  If Muslims -- who perhaps\nhave not realized that Islam teaches this -- perform such actions, it is\n_not_ _because_ of the teachings of Islam, but rather _in spite of_ and\n_in contradiction to_ the  teachings of Islam.  This is an important \ndistinction.\n\nI should clarify what Muslims usually mean when they say \"Muslim\".  In\ngeneral, anyone who calls themselves a \"Muslim\" and does not do or \noutwardly profess\nsomething in clear contradiction with the essential teachings of Islam\nis considered to be a Muslim.  Thus, one who might do things contrary to\nIslam (through ignorance, for example) does not suddenly _not_ become a\nMuslim.  If one knowingly transgresses Islamic teachings and essential\nprinciples, though, then one does leave Islam.\n\nThe term \"Muslim\" is to be contrasted with \"Mu'min\", which means \"true\nbeliever\".  However, whether a Muslim is in reality a Mu'min is\nsomething known only by God (and perhaps that person himself).  So you\nwill not find the term Mu'min used very much by Muslims in alt.atheism,\nbecause it is not known to anybody (except myself and God), whether I,\nfor example, am a \"true believer\" or not.  For example, I could just be\nputting on a show here, and in reality believe something opposite to\nwhat I write here, without anyone knowing.  Thus, when we say \"Muslims\"\nwe mean all those who outwardly profess to follow Islam, whether in\npractice they might, in ignorance, transgress Islamic teachings.  By\n\"Muslim\" we do not necessarily mean \"Mu'min\", or \"true believer\" in\nIslam.\n\n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10909, "properties": {"category": "talk.politics.misc", "text": "From: tzs@stein2.u.washington.edu (Tim Smith)\nSubject: Re: Tieing Abortion to Health Reform -- Is Clinton Nuts?\nOrganization: University of Washington School of Law, Class of '95\nLines: 20\nNNTP-Posting-Host: stein2.u.washington.edu\n\nIn article <h3lnrb8@zola.esd.sgi.com> cj@sgi.com writes:\n>vengeance.  That's all.  It's no deterrent.  It serves no\n\nIt seems to deter those who are executed from future criminal activity.\n\n>Yeah yeah yeah... and sure would be nice if we didn't apply the\n>death penalty disproportionately to minorities.  I'll revisit my\n>opinion on the death penalty when there are more whites up for\n>it than blacks.  I.e., when hell freezes over.\n\nWhy don't you compare the rates at which blacks and whites commit crimes?\nBlacks commit crimes disproportionately, so in a perfectly fair penal\nsystem, blacks would be disproportionately represented.\n\n(Note: black vs. white crime rates is not a racial thing.  It's probably\nan economic thing: poor people are more likely to commit crimes, and blacks\nare more likely to be poor.  The way to reduce the proportion of minorities\nin prison is to increase the wealth of minorities.)\n\n--Tim Smith\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10910, "properties": {"category": "sci.electronics", "text": "From: wtm@uhura.neoucom.edu (Bill Mayhew)\nSubject: Re: Illusion\nOrganization: Northeastern Ohio Universities College of Medicine\nLines: 31\n\nI missed the first article[s] on this line due to not having a\nchance to read the news for a couple of days...\n\nThe idea is commercialized in at least one product, the Private\nEye.  That's a small cube-shaped device that the user straps around\nthe head similar to a sweat band.  There is a boom that comes from\nthe side on which the device is mounted so that it is positioned\nin front of the user's eye.\n\nThe Private Eye we had here for evaluation was Hercules-MDA\ncompatible.  The innards are a row (~400 LEDs) that are swept up\nand down by a galvonometer-like movement.  The result is that the\nsweeping LED bar forms a fused raster.  There is a virtual image\nprojected in front of the user that the visual system tends to fuse\nwith the background.\n\nI didn't like the device very much.  I found it easiest to use if I\nlooked at a blank white wall.  I had problems with focus tracking\nif I glanced down to look at my keyboard for an out-of-the-way key.\nThe unit also emitted a soft buzz and vibration which I found\nannoying.  Some people didn't seem to mind the buzz.  Properly\nused, however, the image clarity was quite crisp.\n\nI don't know if the company has taken the technology any further in\nthe last year or two, but it did seem to have promise.\n\n\n-- \nBill Mayhew      NEOUCOM Computer Services Department\nRootstown, OH  44272-9995  USA    phone: 216-325-2511\nwtm@uhura.neoucom.edu (140.220.1.1)    146.580: N8WED\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10911, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: Political Atheists?\nOrganization: California Institute of Technology, Pasadena\nLines: 26\nNNTP-Posting-Host: punisher.caltech.edu\n\nbobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n\n>>If I kill this person [an innocent person convicted of murder],\n>>then a murder would be committed, but I would not be the murderer.  At least,\n>>I wouldn't \"reasonably\" be considered a murderer, with \"reasonable\" being\n>>introduced as a fudge factor necessary to account for the inability to be\n>>totally objective due to a lack of absolutely true information.\n>If society collective decides to carry the burden of executing\n>it's citizens, then it also carries the blame for their innocent\n>blood.  Each and every voter who casts a ballot in favor of\n>capital punishment is in part guilty of the murder of each and\n>every innocent victim of the system.\n\nWhy are only those people in favor of the system to blame.  If society\naccepts such a system, then each member of society is to blame when\nan innocent person gets executed.  Those that are not in favor should\nwork to convince others.\n\nAnd, most members of our society have accepted the blame--they've considered\nthe risk to be acceptable.  Similarly, every person who drives must accept\nthe blame for fatal traffic accidents.  This is something that is surely\ngoing to happen when so many people are driving.  It is all a question of\nwhat risk is acceptable.  It is much more likely that an innocent person\nwill be killed driving than it is that one will be executed.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10912, "properties": {"category": "rec.sport.baseball", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: MLB Standings and Scores for Fri., Apr. 16th, 1993\nKeywords: mlb, 04.16\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 23\n\nIn article <1qmj6h$m5h@agate.berkeley.edu> jtchern@ocf.berkeley.edu (Joseph Hernandez) writes:\n>Houston Astros\t\t1\t\tSeattle Mariners\t1\n>Montreal Expos\t\t2\t\tToronto Blue Jays\t3\n>New York Mets\t\t3\t\tOakland Athletics\t2\n>Colorado Rockies\t5\t\tDetroit Tigers\t\t3\n>Pittsburgh Pirates\t5\t\tKansas City Royals\t5\n>San Diego Padres\t4 (13)\t\tNew York Yankees\t4\n>St. Louis Cardinals\t4\t\tCleveland Indians\t3\n>Los Angeles Dodgers\t2\t\tBoston Red Sox\t\t4 (13)\n>Atlanta Braves\t\t1\t\tCalifornia Angels     PPD\n>San Francisco Giants\t6\t\tMilwaukee Brewers    RAIN\n\nThis leads me to believe that it's not really a rabbitball year, and that\nwe've just had a rash of high-scoring games.  I bet this one day's worth\nof games pulled everything back to close to average.\n\nInteresting, because the other day, all but three games had ten or more\nruns scored, and yesterday no game had more than nine.\n-- \nted frank                 | \nthf2@kimbark.uchicago.edu |         I'm sorry, the card says \"Moops.\"\nthe u of c law school     | \nstandard disclaimers      | \n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10913, "properties": {"category": "comp.sys.mac.hardware", "text": "From: thewho@athena.mit.edu (Derek A Fong)\nSubject: Re: When is Apple going to ship CD300i's?\nOrganization: Massachusetts Institute of Technology\nLines: 26\nNNTP-Posting-Host: alfredo.mit.edu\n\n\nInterestingly enough, the CDROM 300i that came with my Quadra 800 has \nonly 8 disks:\n\n1. System Install\n2. Kodak Photo CD sampler\n3. Alice to Ocean\n4. CDROM Titles\n5. Application Demos\n6. Mozart: Dissonant Quartet\n7. Nautilus\n8. Apple Chronicles\n\nHas anyone else noticed that they got less than everyone seems to be\ngetting with the external?  What I really feel I missed out on is what\nis supposed to a fantastic Games demo disk.\n\nI have heard that people have gotten up to 9-10 disks with their drive.\nI assume they get the 8 titles above plus Cinderella and the Games Demo CDROM.\n\nany comments and experiences?  Should I call Apple to complain? =)\n\nDerek\n\n\nthewho@plume.mit.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10914, "properties": {"category": "talk.politics.misc", "text": "From: spp@zabriskie.berkeley.edu (Steve Pope)\nSubject: Re: MOW BODYCOUNT\nOrganization: U.C. Berkeley -- ERL\nLines: 17\nNNTP-Posting-Host: zion.berkeley.edu\n\n> Any thoughts on who is going to count all of the gorgeous bodies at \n> the MOW?  The press?  The White House Staff?  The most Junior \n> Senator?  The King of the motss/bi?  \n\n> Just curious as to whose bias we are going to see when the numbers \n> get brought out.\n\nProbably, law enforcement people (Park Service Police and D.C. cops),\nwho will use aerial photographs and extrapolate based on the\ndensity of the crowd in small regions.\n\nThese sort of techniques derive from Army Intelligence and CIA\nmethods of estimating troop strength, and tend to be\nmethodologically skewed to always come up with inflated numbers,\nso as to justify bigger budgets.\n\nSteve\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10915, "properties": {"category": "rec.sport.baseball", "text": "From: thf2@kimbark.uchicago.edu (Ted Frank)\nSubject: Re: Young Catchers\nReply-To: thf2@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 20\n\nIn article <C518wo.KFy@news2.cis.umn.edu> kirsch@staff.tc.umn.edu (Dave 'Almost Cursed the Jays' Kirsch) writes:\n>  That brings up an interesting point. Anyone else catch ESPN's piece about\n>prospects and the relationship between age, career length, MVPs and Hall of\n>Fame members? It was part of their preseason special. \n\nWow.  ESPN can repeat eleven-year-old Bill James research.  (Literally.\nCheck the 1982 Abstract.)  \n\n>  It was the most impressive thing I've seen on ESPN in recent memory. \n\nPerhaps in 2004 they'll be as reliable as an average SDCN.\n\n>  I guess Ray Knight makes his rebuttal tonight. \n\nOops, maybe not.\n-- \nted frank                 | \"However Teel should have mentioned that though \nthf2@kimbark.uchicago.edu |  his advice is legally sound, if you follow it \nthe u of c law school     |  you will probably wind up in jail.\"\nstandard disclaimers      |                    -- James Donald, in misc.legal\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10916, "properties": {"category": "comp.graphics", "text": "From: idr@rigel.cs.pdx.edu (Ian D Romanick)\nSubject: Re: Fast polygon routine needed\nKeywords: polygon, needed\nArticle-I.D.: pdxgate.7306\nOrganization: Portland State University, Computer Science Dept.\nLines: 23\n\nIn article <C5nF8t.Gsq@news.cso.uiuc.edu> osprey@ux4.cso.uiuc.edu (Lucas Adamski) writes:\n>In article <1993Apr17.192947.11230@sophia.smith.edu> orourke@sophia.smith.edu (Joseph O'Rourke) writes:\n>>\tA fast polygon routine to do WHAT?\n>To draw polygons of course.  Its a VGA mode 13h (320x200) game, done in C and\n>ASM.  I need a faster way to draw concave polygons that the method I have right\n>now, which is very slow.\n\nWhat kind of polygons?  Shaded?  Texturemapped?  Hm?  More comes into play with\nfast routines than just \"polygons\".  It would be nice to know exaclty what\nsystem (VGA is a start, but what processor?) and a few of the specifics of the\nimplementation.  You need to give  more info if you want to get any answers! :P\n\n                                  - Ian Romanick\n                                    Dancing Fool of Epsilon\n\n[]--------------------------------------------------------------------[]\n | Were the contained thoughts 'opinions',     EPN.NTSC.quality = Best|\n | PSU would probably not agree with them.                            |\n |                                                                    |\n | \"Look, I don't know anything about                                 |\n | douche, but I do know Anti-Freeze                                  |\n | when I see it!\" - The Dead Milkmen                                 |\n[]--------------------------------------------------------------------[]\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10917, "properties": {"category": "rec.motorcycles", "text": "From: jlevine@rd.hydro.on.ca (Jody Levine)\nSubject: Re: Countersteering_FAQ please post\nOrganization: Ontario Hydro - Research Division\nLines: 12\n\nIn article <1993Apr15.200857.10631@adobe.com> cjackson@adobe.com (Curtis Jackson) writes:\n>\n>So perhaps it is only *some* waterski bikes on which one countersteers...\n\nA Sea Doo is a boat. It turns by changing the angle of the duct behind the\npropeller. A waterski bike looks like a motorcycle but has a ski where each\nwheel should be. Its handlebars are connected through a familiar looking\nsteering head to the front ski. It handles like a motorcycle.\n\nI've        bike                      like       | Jody Levine  DoD #275 kV\n     got a       you can        if you      -PF  | Jody.P.Levine@hydro.on.ca\n                         ride it                 | Toronto, Ontario, Canada\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10918, "properties": {"category": "talk.politics.mideast", "text": "From: henrik@quayle.kpc.com\nSubject: Re: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: NONE\nLines: 49\n\nIn article <1993Apr20.000413.25123@ee.rochester.edu>, terziogl@ee.rochester.edu (Esin Terzioglu) writes:\n|> In article <1993Apr19.155856.8260@kpc.com> henrik@quayle.kpc.com  writes:\n|> >In article <1993Apr17.185118.10792@ee.rochester.edu>, terziogl@ee.rochester.edu (Esin Terzioglu) writes:\n|> >|> In article <1993Apr16.195452.21375@urartu.sdpa.org> dbd@urartu.sdpa.org (David Davidian) writes:\n|> >|> >04/16/93 1045  ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\n|> >|> >\n|> >|>  \n|> >|> Ermenistan kasiniyor...\n|> >|> \n|> >|> Let me translate for everyone else before the public traslation service gets\n|> >|> into it\t: Armenia is getting itchy. \n|> >|> \n|> >|> Esin.\n|> >\n|> >\nhenrik]Let me clearify Mr. Turkish;\n\nhenrik]ARMENIA is NOT getting \"itchy\". SHE is simply LETTING the WORLD \nhenrik] KNOW that SHE WILL NO  LONGER sit there QUIET and LET TURKS get \nhenrik] away with their FAMOUS tricks. Armenians DO REMEMBER of the TURKISH \nhenrik] invasion of the Greek island of CYPRESS WHILE the world simply WATCHED. \n\n\nEsin Terzioglu]  Your ignorance is obvious from your posting. \nEsin Terzioglu]  1) Cyprus was an INDEPENDENT country with Turkish/Greek \n\t\t    inhabitants (NOT a Greek island like your ignorant \n\t\t\tposting claims)\nEsin Terzioglu]  2) The name should be Cyprus (in English)\nEsin Terzioglu]  next time read and learn before you post. \n\n\n\nAside from spelling , why is that you TURKS DO NOT want to admit your\npast MISTAKES ? You know TURKISH INVASION of CYPRUS was a mistake and too\nbad that U.N. DID NOT do anything about it. You may ask : mistake ?\nYes, I would say. Why is that the GREEKS DID NOT INVADE CYPRUS ?\n\nMy response to the \"shooting down\" of a Turkish airplane over the Armenian\nair space was because of the IGNORANT posting of the person from your \nCountry. Turks and Azeris consistantly WANT to drag ARMENIA into the\nKARABAKH conflict with Azerbaijan. The KARABAKHI-ARMENIANS who have lived\nin their HOMELAND for 3000 years (CUT OFF FROM ARMENIA and GIVEN TO AZERIS \nBY STALIN) are the ones DIRECTLY involved in the CONFLICT. They are defending \nthemselves against AZERI AGGRESSION. Agression that has NO MERCY for INOCENT \npeople that are costantly SHELLED with MIG-23's and othe Russian aircraft. \n\nAt last, I hope that the U.S. insists that Turkey stay out of the KARABAKH \ncrisis so that the repeat of the CYPRUS invasion WILL NEVER OCCUR again.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10919, "properties": {"category": "comp.windows.x", "text": "From: sdennis@osf.org\nSubject: REPOST: Accelerators/Translations\nApparently-To: motif-talk@osf.org\nOriginator: root@postman\nKeywords: Accelerator, case\nLines: 36\nReply-To: sdennis@osf.org\nOrganization: Applicon, Inc.; Ann Arbor, MI (USA)\nReturn-Path: <sdennis@ann-arbor.applicon.slb.com>\nLines: 36\n\nI posted this a while ago and didn't recieve one reply, and now we\nhave another bug report on the same subject. Can anybody help me out?\n\nHow can you ensure that accelerators work the same independent of\ncase?  What I want is Ctrl+O and Ctrl+o to both be accelerators on one\nmenu entry.\n\nIn ORA Vol. 6, in the section on accelerators it says \"For information\non how to specify translation tables see Vol. 4...\", this is so you\nknow what to put for the XmNaccelerator resource.  If you go to\nVol. 4 it says, \"Likewise, if a modifier is specified, there is\nnothing to prohibit other modifiers from being present as well. For\nexample, the translation:\n\n\tShift<Key>q:\tquit()\n\nwill take effect even if the Ctrl key is held down at the same time as\nthe Shift key (and the q key).\n\nThis implies to me that setting XmNaccelerator to Ctrl<Key>o should do\nwhat I want, but it doesn't, it doesn't work if the user presses the\ncontrol key, the shift key, and the o key.\n\nIs it possible to supply > 1 accelerator for a menu entry? Keep in\nmind when answering this question that when using Motif you can't use\nXtInstallAccelerators().\n\nI am using Motif 1.1.3 on a DECstation 5000 but I have also tried it\non an HP using Motif 1.1.3 and 1.2.\n\n\n-- \n**********************************************************************\nSteve Dennis              Internet: sdennis@ann-arbor.applicon.slb.com\nSoftware Engineer         Applicon Inc.            Ann Arbor, Michigan\nHail To The Victors!!!\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10920, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dhartung@chinet.chi.il.us (Dan Hartung)\nSubject: Gateway Telepath Modem -- getting v.32bis\nSummary: I get garbage no matter what settings I try\nOrganization: Chinet - Public Access UNIX\nDistribution: na\nLines: 29\n\nI have had a Gateway Telepath modem for about a month or so now.\nActually, I had one that wouldn't connect to ANYTHING no matter\nwhat software I used, so I got a new one sent to me.  This allows\nme to connect to my favorite News system with ZERO problems.  So\nI'm somewhat happier ....\n\nBut I still cannot connect to my favorite DOS bbs with any kind\nof reliability.  I have success about 1/10 calls.  Not good!  I\nwould hope that the fact that this one can connect to at least\nONE of my fave places means I just need to adjust it.\n\nWhat I usually get is a fast stream of garbage, in the modem response\nline on the dial window. Sometimes it will drop to full screen mode\nfirst, then I get about 2-3 screens of garbage.  In both cases the\nmodem seems to time out before connecting and drops carrier.\n\nI am using DEFAULT settings (AT&F) and getting this problem.  I\nam using the AUTOCONFIGURE settings that Gateway has supplied with\nmy copy of Qmodem (ATW1&C1&D2S95=44&W0) and getting this problem.\n(They have refused to help me beyond this, claiming \"it must be\nthe BBS\" or something like that.  Not so -- my work modem connects\nto this same place just fine, using factory settings -- a Microcom.)\n\nAnyone have any ideas?!\n-- \n | Next: a Waco update ... an Ohio prison update ... a Bosnia update ... a  |\n | Russian update ... an abortion update ... and a Congressional update ... |\n | here on SNN: The Standoff News Network.  All news, all standoff, all day |\n Daniel A. Hartung  --  dhartung@chinet.chinet.com  --  Ask me about Rotaract\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.515+0000", "event": "documents", "entityId": 10921, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bill@lhotse.hao.ucar.edu (Bill Roberts)\nSubject: Upgrading PB170 Memory\nOrganization: High Altitude Observatory, Boulder CO 80303\nDistribution: usa\nLines: 8\n\nI  have one of the original Powerbook 170's (with 4Mb of Ram) and find\nthat 4Mb is a drag when trying to do my work.  So, what is the best way\nto get the maximum RAM for this unit, and what's it going to cost me?\nI'm hoping I can get the latest and best info from real users by posting \nto this group.\n\nThanks in advance,\n--Bill\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10922, "properties": {"category": "misc.forsale", "text": "From: mallen@eniac.seas.upenn.edu (Matt Allen)\nSubject: Amiga's for sale\nKeywords: Amiga\nDistribution: pa\nOrganization: University of Pennsylvania\nLines: 20\nNntp-Posting-Host: eniac.seas.upenn.edu\n\nFor Sale:\n\n\t2 Amigas!\n\n\tCommodore Amiga 1000\tBest offer\n\t512k Ram\n\t1 Internal Floppy drive\n\tDetachable Keyboard\n\t2 Button Mouse\n\n\tCommodore Amiga 500\tBest offer\n\t1024k Ram\n\t1 Internal Floppy drive\t\n\t2 Button Mouse\n\n\t1 RGB Monitor\t\tBest offer\n\t1 External Floppy drive\tBest offer\n\n\tCall Brian Dickman at (717)872-1719 or send e-mail to dickman_con@huey.\nmillersv.edu.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10923, "properties": {"category": "comp.graphics", "text": "From: bob@black.ox.ac.uk (Bob Douglas)\nSubject: Re: Sphere from 4 points?\nOrganization: Oxford University Computing Service, 13 Banbury Rd, Oxford, U\nLines: 94\nOriginator: bob@black\n\nIn article <2406@hcrlgw92.crl.hitachi.co.jp> steve@hcrlgw (Steven Collins) writes:\n>In article <1qkgbuINNs9n@shelley.u.washington.edu> bolson@carson.u.washington.edu (Edward Bolson) writes:\n>>Boy, this will be embarassing if it is trivial or an FAQ:\n>>\n>>Given 4 points (non coplanar), how does one find the sphere, that is,\n>>center and radius, exactly fitting those points?  I know how to do it\n>>for a circle (from 3 points), but do not immediately see a \n>>straightforward way to do it in 3-D.  I have checked some\n>>geometry books, Graphics Gems, and Farin, but am still at a loss?\n>>Please have mercy on me and provide the solution?  \n>\n>Wouldn't this require a hyper-sphere.  In 3-space, 4 points over specifies\n>a sphere as far as I can see.  Unless that is you can prove that a point\n>exists in 3-space that is equi-distant from the 4 points, and this may not\n>necessarily happen.\n>\n>Correct me if I'm wrong (which I quite possibly am!)\n>\n>steve\n\nSorry!! :-)\n\nCall the four points A, B, C and D. Any three of them must be\nnon-collinear (otherwise all three could not lie on the surface\nof a sphere) and all four must not be coplaner (otherwise either\nthey cannot all lie on a sphere or they define an infinity of them).\n\nA, B and C define a circle. The perpendicular bisectors of AB, BC\nand CA  meet in a point (P, say) which is the centre of this circle.\nThis circle must lie on the surface of the desired sphere.\n\nConsider the normal to the plane ABC passing through P. All points\non this normal are equidistant from A, B and C and its circle (in\nfact it is a diameter of the desired sphere). Take the plane\ncontaining this normal and D (if D lies on the normal any\nplane containing the normal will do); this plane is at right angles\nto the ABC one.\n\nLet E be the point (there are normally two of them) on the circumference\nof the ABC circle which lies in this plane. We need a point Q on the\nnormal such that EQ = DQ. But the intersection of the perpendicular\nbisector of ED and the normal is such a point (and it exists since D is\nnot in the plane ABC, and so ED is not at right angles to the normal).\n\n\nAlgorithm:\n\nIs the sphere well defined?\n    (1) Check that A and B are not coincident (=> failure).\n    (2) Find the line AB and check that C does not lie on it (=> failure).\n    (3) Find the plane ABC and check that D does not lie in it (=> failure).\nYes. Find its centre.\n    (1) Find the perpendicular bisectors of AB and AC.\n    (2) Find their point of intersection (P).\n    (3) Find the normal to the plane ABC passing through P (line N).\n    (4) Find the plane containing N and D; find the point E on the\n\tABC circle in this plane (if D lies on N, take E as A).\n    (4) Find the perpendicular bisector of ED (line L)\n    (5) Find the point of intersection of N and L (Q).\nQ is the centre of the desired sphere\n\n\nPictures:\n\n(1) In the plane ABC\n\n\t\t\tA\n\n\n                                P\n                 \n                B                               C\n\n(2) At right-angles to ABC, in the plane containing N and D\n\n\t\t\tE\n\n\n                                                          D\n\n    line N\n    --------------------P-------------Q---------------------------\n\n\nNumerically:\n\nIf ED << EP then Q will be very close to P (relative to the radius\nof the ABC circle) and subject to error. It's best to choose D so\nthat the least of AD, BD and CD is larger than for any other choice.\n-- \nBob Douglas              Computing Services, University of Oxford\nInternet:                bob@oxford.ac.uk\nAddress:                 13 Banbury Road, Oxford OX2 6NN, UK\nTelephone:               +44-865-273211\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10924, "properties": {"category": "soc.religion.christian", "text": "From: bluelobster+@cmu.edu (David O Hunt)\nSubject: Conversions\nOrganization: Carnegie Mellon, Pittsburgh, PA\nLines: 13\n\nOn 12-Apr-93 in Environmentalism and paganism\nuser Michael Covington@aisun3 writes:\n>I would like to see Christians devote a bit less effort to _bashing_\n>paganism and more to figuring out how to present the Gospel to pagans.\n> \n>Christ is the answer; the pagans have a lot of the right questions.\n>Unlike materialists, who deny the need for any spirituality.\n\nAnd what of those of us who already have answers to their questions without\nturning to christianity (or, in my case, any religion)?  Whay RIGHT do you\nhave to presume to lecture me about what I should believe??\n\nDavid Hunt\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10925, "properties": {"category": "rec.motorcycles", "text": "From: infante@acpub.duke.edu (Andrew  Infante)\nSubject: Ok, So I was a little hasty...\nOrganization: Duke University; Durham, N.C.\nLines: 16\nNntp-Posting-Host: north1.acpub.duke.edu\n\nApparently that last post was a little hasy, since I\ncalled around to more places and got quotes for less\nthan 600 and 425.  Liability only, of course.\n\nPlus, one palced will give me C7C for my car + liab on the bike for\nonly 1350 total, which ain't bad at all.\n\nSo I won't go with the first place I called, that's\nfer sure.\n\n\n-- \nAndy Infante  | You can listen to what everybody says, but the fact remains   |\n'71 BMW R60/5 | that you've got to get out there and do the thing yourself.   | \nDoD #2426     |                             -- Joan Sutherland                | \n==============| My opinions, dammit, have nothing to do with anyone else!!!   | \n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10926, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: DC-X update???\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 25\n\nIn article <schumach.734984753@convex.convex.com> schumach@convex.com (Richard A. Schumacher) writes:\n\n>Would the sub-orbital version be suitable as-is (or \"as-will-be\") for use\n>as a reuseable sounding rocket?\n\nDC-X as is today isn't suitable for this. However, the followon SDIO\nfunds will. A reusable sounding rocket was always SDIO's goal.\n\n>Thank Ghod! I had thought that Spacelifter would definitely be the\n>bastard Son of NLS.\n\nSo did I. There is a lot going on now and some reports are due soon \nwhich should be very favorable. The insiders have been very bush briefing\nthe right people and it is now paying off.\n\nHowever, public support is STILL critical. In politics you need to keep\nconstant pressure on elected officials.\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------57 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10927, "properties": {"category": "comp.sys.mac.hardware", "text": "From: skok@itwds1.energietechnik.uni-stuttgart.de (Holger Skok)\nSubject: Re: x86 ~= 680x0 ?? (How do they compare?)\nOrganization: Inst. f. Thermodynamik u. Waermetechnik (ITW), U. of Stuttgart, FRG\nLines: 19\nDistribution: usa\nNNTP-Posting-Host: itwds1.energietechnik.uni-stuttgart.de\n\nIn article <C5nq9C.LLp@news.cso.uiuc.edu> rvenkate@ux4.cso.uiuc.edu (Ravikuma Venkateswar) writes:\n[... stuff deleted]\n>\n>Besides, for 0 wait state performance, you'd need a cache anyway. I mean,\n>who uses a processor that runs at the speed of 80ns SIMMs? Note that this\n>memory speed corresponds to a clock speed of 12.5 MHz.\n>\n[more stuff deleted...]\n\nHow do you calculate that figure? I'd assume even in personal computers\nthe board designers would use bank switching to (optimistically) \nquadruple the access speed  or am I missing something here?\n\nHSK\n-- \nSie singen das alte Entsagungslied, das Eiapopeia vom Himmel,\nwomit man beruhigt, wenn es greint, das Volk, den grossen Luemmel.\nEin neues Lied, ein besseres Lied, oh Freunde, will ich Euch dichten,\nWir wollen hier auf Erden schon das Himmelreich errichten.    ... H. Heine\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10928, "properties": {"category": "comp.sys.mac.hardware", "text": "From: arp0150@ritvax.isc.rit.edu (PIEMAN)\nSubject: MacPlus Home brew Acceler question??\nNntp-Posting-Host: vaxb.isc.rit.edu\nReply-To: arp0150@ritvax.isc.rit.edu\nOrganization: Rochester Institute of Technology\nLines: 16\n\nha... all this talk about changing the clock speed of the q700 makes me ask??\n if i replaced the 8mhz 68000 in my plus with a 16mhz 68000 with a 16mhz\nclock occilater of its own( not shared by the rest of the mac... just the new\n16mhz68000)  would my mac work..... and if it would work.. would you think there\nwhere be any problems with sound, vidio,scsi........\n\nit seems like a simple solution to keepa dead slow mechine a\nlive a little longer..\n   Oh if this would not work any idears on how to make it work???\n\t\tthanks\n\t\t\n\t\t alex\n\nARP0150@ritvax.isc.rit.edu\n\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10929, "properties": {"category": "misc.forsale", "text": "From: reidg@pacs.pha.pa.us ( Reid Goldsborough)\nSubject: New software for sale\nKeywords: software\nDistribution: na\nOrganization: Philadelphia Area Computer Society\nLines: 34\n\nThese programs all include complete printed manuals and\nregistration cards. I need to get rid of some excess.\nThey're the latest versions. I've priced these programs\nat less than half the list price and significantly less\nthan the cheapest mail-order price around.\n \n* MICROSOFT ENTERTAINMENT PACK VOLUME ONE, includes eight\ndifferent Windows-based games, including Tetris, Taipei,\nMinesweeper, TicTactics, Golf, Cruel, Pegged, and IdleWild,\nlist $49, sale $20.\n \n* JUST JOKING FOR WINDOWS 1.0, database of jokes from\nWordStar, can quickly find jokes for many different\noccasions, useful for business writers, speechwriters,\npresenters, and others, more than 2,800 jokes under 250\ntopics, can search by keyword and author, list $49, sale \n$25.\n \n* HUMOR PROCESSOR 2.02, DOS-based database of jokes,\nrequires only 384 KB of RAM, along with thousands of\ncategorized jokes you can quickly find also includes an\nonline tutorial for writing your own jokes with proven\ncomedy forumulas, list $99, sale $45.\n \n* HISTORY OF THE WORLD 1.0, multimedia CD-ROM covering cave\nsociety to the present, includes recordings of 25 famous\nspeeches from Churchhill, Gandi, and others, list $795, sale\n$160.\n \nIf you're interested in any of these programs, please phone me at\n215-885-7446 (Philadelphia) and I'll save the package for you.\n-- \nReid Goldsborough\nreidg@pacs.pha.pa.us\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10930, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: dewinter@prl.philips.nl (Rob de Winter)\nSubject: WANTED: Info on Asymetrix/Toolbook\nOriginator: dewinter@prl.philips.nl\nOrganization: Philips Research Laboratories, Eindhoven, The Netherlands\nLines: 17\n\nDoes anyone know the phone and fax number of the Asymetrix\nCorporation. I am also interested in their e-mail address.\n\nI would also like to know what the current status of their product Toolbook\nis. I received the last update 1.5 about 1.5 year ago. Are their any new\ndevelopments or is Toolbook slowly dying?\n\nRegards,\n\nRob de Winter.\n\n\n-- \n*** Nothing beats skiing, if you want to have real fun during holidays. ***\n***       Rob de Winter  Philips Research, IST/IT, Building WL-1        ***\n***       P.O. Box 80000, 5600 JA  Eindhoven. The Netherlands           ***\n***       Tel: +31 40 743621  E-mail: dewinter@prl.philips.nl           ***\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10931, "properties": {"category": "comp.windows.x", "text": "From: beck@irzr17.inf.tu-dresden.de (Andre Beck)\nSubject: Re: Cute X clients\nOrganization: Dept. of Computer Science, TU Dresden, Germany.\nLines: 69\nDistribution: world\nReply-To: Andre_Beck@IRS.Inf.TU-Dresden.DE\nNNTP-Posting-Host: irzr17.inf.tu-dresden.de\n\n\nTry this:\n-------------------------------------------------------------------------------\n#include <stdio.h>\n#include <X11/Xlib.h>\n#include <X11/Xutil.h>\n\nDisplay *dpy;\nint\tscreen;\nXColor\t*xclrs,*xclrp;\nXID\tcmap;\nint\tcells,i,j,red,green,blue,got;\n\n\n\nmain()\n{\n dpy = XOpenDisplay(NULL);\n screen = DefaultScreen(dpy);\n cells = DisplayCells(dpy,screen);\n\n cmap = XCreateColormap(dpy,RootWindow(dpy,screen),DefaultVisual(dpy,screen),1);\n\n xclrs = (XColor *)malloc(cells * sizeof(*xclrs));\n\n\n xclrp = xclrs; \n for (i=0; i<cells; i++) { xclrp->pixel = i; xclrp->flags = 7; xclrp++; };\n\n XQueryColors(dpy,DefaultColormap(dpy,screen),xclrs,cells);\n XStoreColors(dpy,cmap,xclrs,cells);\n XInstallColormap(dpy,cmap);\n got = 1;\n\n while(got) {\n  xclrp = xclrs;\n  got = 0;\n  for(i=0; i<cells; i++)  {\n   if(xclrp->red < 65000) {xclrp->red += 256; got = 1;};\n   if(xclrp->green < 65000) {xclrp->green +=256; got=1;};\n   if(xclrp->blue < 65000) {xclrp->blue +=256; got=1;};\n   xclrp ++;\n  }\n  XStoreColors(dpy,cmap,xclrs,cells);\n/*  XInstallColormap(dpy,cmap); */\n }\n got = 1;\n while(got) {\n  xclrp = xclrs;\n  got = 0;\n  for(i=0; i<cells; i++)  {\n   if(xclrp->red > 256) {xclrp->red -= 256; got = 1;};\n   if(xclrp->green > 256) {xclrp->green -=256; got=1;};\n   if(xclrp->blue > 256) {xclrp->blue -=256; got=1;};\n   xclrp ++;\n  }\n  XStoreColors(dpy,cmap,xclrs,cells);\n/*  XInstallColormap(dpy,cmap); */\n }\n}\n--------------------------------------------------------------------------\nIt will work on any PseudoColor XServer. (hopefully :)\n\n--\n+-o-+--------------------------------------------------------------+-o-+\n| o |                \\\\\\-  Brain Inside -///                       | o |\n| o |                    ^^^^^^^^^^^^^^^                           | o |\n| o | Andre' Beck (ABPSoft) mehl: Andre_Beck@IRS.Inf.TU-Dresden.de | o |\n+-o-+--------------------------------------------------------------+-o-+\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10932, "properties": {"category": "rec.motorcycles", "text": "From: randy@megatek.com (Randy Davis)\nSubject: Re: Ok, So I was a little hasty...\nReply-To: randy@megatek.com\nOrganization: Megatek Corporation, San Diego, California\nLines: 24\n\nIn article <speedy.155@engr.latech.edu> speedy@engr.latech.edu (Speedy Mercer) writes:\n|In article <jnmoyne-190493111630@moustic.lbl.gov> jnmoyne@lbl.gov (Jean-Noel Moyne) writes:\n|>       What does \"DWI\" stand for ? I thought it was \"DUI\" for Driving Under\n|>Influence, so here what does W stand for ?\n|\n|Driving While Intoxicated.\n\n  Actually, I beleive \"DWI\" normally means \"Driving While Impaired\" rather\nthan \"Intoxicated\", at least it does in the states I've lived in...\n\n|This was changed here in Louisiana when a girl went to court and won her \n|case by claiming to be stoned on pot, NOT intoxicated on liquor!\n\n  One can be imparied without necessarily being impaired by liquor - drugs,\nnot enough sleep, being a total moron :-), all can impair someone etc...  I'm\nsurprised this got her off the hook...  Perhaps DWI in Lousiana *is* confined\nto liquor?\n\nRandy Davis                            Email: randy@megatek.com\nZX-11 #00072 Pilot                            {uunet!ucsd}!megatek!randy\nDoD #0013\n\n       \"But, this one goes to *eleven*...\" - Nigel Tufnel, _Spinal Tap_\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10933, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: chang hsu liu <cliu@silver.ucs.indiana.edu>\nSubject: Upgrade from 286 to 486 help needed!!!\nOrganization: Indiana University\nLines: 27\n\n\nGreetings,\n\n        Please forgive me if this is FAQ. If there is source on this kind of info, \nplease let me know. I just got a 286 station (around 21*16.5*7 in dimension),\nand I am thinking about upgrade it to a 486 or 386.\n\n        The station has a power supply, two floppy disk drives, and the big\ncase. I have SONY 1304 monitor, SyQuest drive (Mac), and maybe a cd-rom\nreader (Mac) for it. Here are the questions I have so far:\n1) Is there a 486 motherboard at this dimension that I could use the case?\n2) The original owener has the controller for floppy drive and hard disk\nremoved. Can I use them to control these devices under 486? How much do I\nhave to pay for a new controllers if the old ones won't work?\n3) How can I make SyQuest (SCSI) and cd-rom (SCSI) work on this station? \nI heard that there is a cheap sound board that has SCSI controller built-in?\nWhat's quality of this board? How much usually does a SCSI control cost?\nIs there any ftp sites that has SyQuest driver or cd-rom driver for the PC if\nI can have everything hooked up OK?4) What I want is a 486 motherboard, a sound board to make it a MPC- \nquality station. How much would it cost to do that? Is it worth the hussle\nthan just buy a new 486 station? BTW, I need to buy a keyboard for it too.\n\nAny input is welcome.\n\nThank you.\n\nPeter Liu\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10934, "properties": {"category": "sci.electronics", "text": "From: vanderby@mprgate.mpr.ca (David Vanderbyl)\nSubject: Re: A question about 120VAC outlet wiring..\nKeywords: outlet\nNntp-Posting-Host: chip\nReply-To: vanderby@mprgate.mpr.ca (David Vanderbyl)\nOrganization: MPR Teltech Ltd.\nLines: 16\n\nolsen@vetmed.cvm.uiuc.edu (Aart_Olsen) writes:\n\n>>|> I noticed at the fusebox that some circuits have the\n>>|> 12/2 with ground, and that on these circuits, the ground\n>>|> wire was tied to the same bus as the neutral (white) wire.\n>>\n>>This is contrary to the electrical code and should be fixed.\n>>\n>Sorry, but this is exactly according to the NEC.\n\nNo need to be sorry, I blew it on this one.  At the main breaker box\nwhere there is a thick wire ground leading to the earth, both neutral\nand ground are hooked to this bus.  In any other breaker box (or an\noutlet box, etc.) the ground and neutral must not be connected together.\n\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.516+0000", "event": "documents", "entityId": 10935, "properties": {"category": "talk.politics.mideast", "text": "From: bdm@cs.rit.edu (Brendan D McKay)\nSubject: Re: Dir Yassin (was Re: no-Free man propaganda machine: Freeman, with blood greetings from Israel)\nNntp-Posting-Host: virginia\nOrganization: Rochester Institute of Technology, Rochester, NY\nLines: 123\n\nIn article <HM.93Apr17144348@yoda.cs.brown.edu> hm@cs.brown.edu (Harry Mamaysky) writes:\n>In article <1993Apr13.141518.13900@thunder.mcrcim.mcgill.edu> hasan@McRCIM.McGill.EDU  writes:\n>\n>   CHECK MENAHEM BEGIN DAIRIES (published book) you'll find accounts of the\n>   massacres there including Deir Yassen,\n>   though with the numbers of massacred men, children and women are \n>   greatly minimized.\n\nThere is no known writing directly attributable to Menachem Begin\nwhich admits a massacre at Deir Yassin.  Thus, Hasan is wrong.\n\n>As per request of Hasan:\n>\n>From _The Revolt_, by Menachem Begin, Dell Publishing, NY, 1977:\n>\n>[pp. 225-227]\n>\n>    \"Apart from the military aspect, there is a moral aspect to the\n>story of Dir Yassin. At that village, whose name was publicized\n>throughout the world, both sides suffered heavy casualties. We had\n>four killed and nearly forty wounded. The number of casualties was\n>nearly forty percent of the total number of the attackers. The Arab\n>troops suffered casualties neraly three times as heavy. The fighting\n\nThe word \"troops\" is unjustified.  There has never been any evidence\nthat there were any regular or irregular Arab forces in the village\napart from the villagers defending themselves.  According to the\nHaganah observer Pa'il, the Irgun/Lehi forces suffered a lot of\ncasualties because they were incompetent soldiers.  When they ran\ninto trouble securing the central part of the village, a small group \nof Palmach soldiers came and took it without a single casualty.\nBegin's failure to even mention the Palmach is only one of the\nmajor inaccuracies (to use a kind word) in his account.\n\nIncidentally, \"three times as heavy\" may be correct, as there is\nserious evidence that the Arab loss was closer to 120 lives than\nto the oft-quoted 250 lives.  However, note that Begin compares\nwounded Jews to dead Arabs.  He fails to mention the number of\nwounded Arabs.  Guess why.\n\n>was thus very severe. Yet the hostile propaganda, disseminated\n>throughout the world, deliberately ignored the fact that the civilian\n>population of Dir Yassin was actually given a warning by us before the\n>battle began. One of our tenders carrying a loud speaker was stationed\n>at the entrance to the village and it exhorted in Arabic all women,\n>children and aged to leave their houses and to take shelter on the\n>slopes of the hill.  By giving this humane warning our fighters threw\n>away the element of complete surprise, and thus increased their own\n>risk in the ensuing battle. \n\nAs is thoroughly established by many sources, the loudspeaker truck\ngot stuck in a ditch too far from the village for it to provide a\nusueful warning.\n\n>A substantial number of the inhabitants\n>obeyed the warning and they were unhurt. A few did not leave their\n>stone houses - perhaps because of the confusion. The fire of the enemy\n>was murderous - to which the number of our casualties bears eloquent\n>testimony. Our men were compelled to fight for every house; to\n>overcome the enemy they used large numbers of hand grenades. And the\n>civilians who had disregarded our warnings suffered inevitable\n>casualties.\n>\n>    \"The education which we gave our soldiers throughout the years of\n>revolt was based on the observance of the traditional laws of war. We\n>never broke them unless the enemy first did so and thus forced us, in\n>accordance with the accepted custom of war, to apply reprisals. I am\n>convinced, too, that our officers and men wished to avoid a single\n>unnecessary casualty in the Dir Yassin battle. But those who throw\n>stones of denunciation at the conquerors of Dir Yassin [1] would do\n>well not to don the cloak of hypocrisy [2].\n>\n>    \"In connection with the capture of Dir Yassin the Jewish Agency\n>found it necessary to send a letter of apology to Abdullah, whom Mr.\n>Ben Gurion, at a moment of great political emotion, called 'the wise\n>ruler who seeks the good of his people and this country.' The 'wise\n>ruler,' whose mercenary forces demolished Gush Etzion and flung the\n>bodies of its heroic defenders to birds of prey, replied with feudal\n>superciliousness. He rejected the apology and replied that the Jews\n>were all to blame and that he did not believe in the existence of\n>'dissidents.' Throughout the Arab world and the world at large a wave\n>of lying propaganda was let loose about 'Jewish attrocities.'\n>\n>    \"The enemy propaganda was designed to besmirch our name. In the\n>result it helped us. Panic overwhelmed the Arabs of Eretz Israel.\n>Kolonia village, which had previously repulsed every attack of the\n>Haganah, was evacuated overnight and fell without further fighting.\n>Beit-Iksa was also evacuated. These two places overlooked the main\n>road; and their fall, together with the capture of Kastel by the\n>Haganah, made it possible to keep open the road to Jerusalem. In the\n>rest of the country, too, the Arabs began to flee in terror, even\n>before they clashed with Jewish forces. Not what happened at Dir\n>Yassin, but what was invented about Dir Yassin, helped to carve the\n>way to our decisive victories on the battlefield. The legend of Dir\n>Yassin helped us in particular in the saving of Tiberias and the\n>conquest of Haifa.\"\n\nIt is worth noting how Begin disputes the standard myth that the\nPalestinian Arabs fled as part of a calculated plan.\n\n>[1] (A footnote from _The Revolt_, pp.226-7.) \"To counteract the loss\n>of Dir yassin, a village of strategic importance, Arab headquarters at\n>Ramallah broadcast a crude atrocity story, alleging a massacre by\n>Irgun troops of women and children in the village. Certain Jewish\n>officials, fearing the Irgun men as political rivals, seized upon this\n>Arab gruel propaganda to smear the Irgun. An eminent Rabbi was induced\n>to reprimand the Irgun before he had time to sift the truth. Out of\n>evil, however, good came. This Arab propaganda spread a legend of\n>terror amongst Arabs and Arab troops, who were seized with panic at\n>the mention of Irgun soldiers. The legend was worth half a dozen\n>battalions to the forces of Israel. The `Dir Yassin Massacre' lie\n>is still propagated by Jew-haters all over the world.\"\n\nApparently 90% of Israeli historians are Jew-haters.\n\n>[2] In reference to denunciation of Dir Yassin by fellow Jews.\n\nI have previously posted quotations by Irgun participants that\ntotally destroys Begin's whitewash.  I have no particular desire\nto post it yet again.\n\nBrendan.\n(normally bdm@cs.anu.edu.au)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10936, "properties": {"category": "misc.forsale", "text": "From: pnelson@minnow.rutgers.edu (warmonger)\nSubject: South Jersey Condo\nKeywords: forsale condo jersey\nArticle-I.D.: minnow.Apr.6.14.09.43.1993.15566\nOrganization: Rutgers Univ., New Brunswick, N.J.\nLines: 37\n\n\nI have recently graduated and am looking to move into a bigger house,\nleaving me with a condo to sell...  It was originally listed at\n59,000, but is now listed at $54,900.  The following is a list of\nfeatures.\n\nMaster Bedroom \t14x11\nBedroom\t\t11x10\nLiving Room\t16x13\nDining Room\t10x9\nKitchen\t\t9x11 w/ extra cabinets\n1 Full / Modern Bathroom\nFull wtw carpeting /new/ excluding bath, Oil hot water heating\n/converting to gas this summer/, central air, condo fee $183/mo\nINCLUDING heat; hot water; landscaping; pool; tennis courts.  \n\nIn addition: washer, dryer /both in condo/, refrigerator, dishwasher,\n2 ceiling fans, all window treatments /I don't understand why I can't\ncall them curtains.../, and a mantle!\n\nLarge storage room in private basement, plenty of undesignated\nparking.\n\nIf you'd like to free me for the bliss of regular homeownership,\nplease call Kathleen Sullivan at the Rohrer&Sayers Real Estate Agency:\n609-546-0004.  She'll arrange for a showing off.\n\nNow for that disclaimer caca:  Subject to errors, changes, ommissions,\nwithdrawls, and sales without notice.\n\nThis posting is not to benefit or at the request of any commercial\nagency.  I simply want out.  Flames can be sent to /dev/null\n\nThanks,\npnelson@clam.rutgers.edu\nPaul G. Nelson\nSystems Hardware Integration Technician\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10937, "properties": {"category": "alt.atheism", "text": "From: keith@cco.caltech.edu (Keith Allan Schneider)\nSubject: Re: \"Cruel\" (was Re: <Political Atheists?)\nOrganization: California Institute of Technology, Pasadena\nLines: 23\nNNTP-Posting-Host: punisher.caltech.edu\n\nkmr4@po.CWRU.edu (Keith M. Ryan) writes:\n\n>>They spent quite a bit of time on the wording of the Constitution.  They\n>>picked words whose meanings implied the intent.  We have already looked\n>>in the dictionary to define the word.  Isn't this sufficient?\n>We only need to ask the question: what did the founding fathers \n>consider cruel and unusual punishment?\n\n>Hanging? Hanging there slowing being strangled would be very \n>painful, both physically and psychologicall, I imagine.\n\nWell, most hangings are very quick and, I imagine, painless.\n\n>Firing squad ? [ note: not a clean way to die back in those \n>days ], etc. \n>All would be considered cruel under your definition.\n>All were allowed under the constitution by the founding fathers.\n\nAnd, hangings and firing squads are allowed today, too.  And, if these\nthings were not considered cruel, then surely a medical execution\n(painless) would not be, either.\n\nkeith\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10938, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Nazi Armenian Philosophy: Race above everything and before everything.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 155\n\nIn article <1993Apr19.234534.18368@kpc.com> henrik@quayle.kpc.com  writes:\n\n>   Buch of CRAP and you know it. Nagarno-Karabagh has ALWAYS been PART \n>   of ARMENIA and it was STALIN who GAVE IT to the AZERIS. Go back and\n>   review the HISTORY.  \n\nIf a 'dog's prayers were answered, bones would rain from the sky.\nDid you know that the word 'Karabag' itself is a 'Turkish' name? \nBefore 1827, before the Russians and their 'zavalli kole' Armenians, \ndrove all the Turks/Muslims out, it was a Turkish majority town. Well,\nanyway, it is not surprising that Armenians also collaborated with the \nNazis.\n\n \"Wholly opportunistic the Dashnaktzoutun have been variously\n  pro-Nazi, pro-Russia, pro-Soviet Armenia, pro-Arab, pro-Jewish,\n  as well as anti-Jewish, anti-Zionist, anti-Communist, and \n  anti-Soviet - whichever was expedient.\"[1]\n\n[1] John Roy Carlson (Arthur Derounian), 'Cairo to Damascus,' \n    Alfred A. Knopf, New York, 1951, p. 438.\n  \nAs a dear friend put it, the Tzeghagrons (Armenian Racial Patriots) \nwas the youth organization of the Dashnaktzoutun. It was based in\nBoston (where ASALA/SDPA/ARF Terrorism Triangle is located) but \nhad followers in Armenian colonies all over the world. Literally\nTzeghagron means 'to make a religion of one's race.' The architect\nof the Armenian Racial Patriots was Garegin Nezhdeh, a Nazi Armenian\nwho became a key leader of collaboration with Hitler in World War II.\nIn 1933, he had been invited to the United States by the Central\nCommittee of the Dashnaktzoutun to inspire and organize the \nAmerican-Armenian youth. Nezhdeh succeeded in unifying many local\nArmenian youth groups in the Tzeghagrons. Starting with 20\nchapters in the initial year, the Tzeghagrons grew to 60 chapters\nand became the largest and most powerful Nazi Armenian organization.\nNezhdeh also provided the Tzeghagrons with a philosophy:\n\n \"The Racial Religious beliefs in his racial blood as a deity.\n  Race above everything and before everything. Race comes first.\"[1]\n\n[1] Quoted in John Roy Carlson (real name Arthur Derounian), \"The\n    Armenian Displaced Persons,\" in 'Armenian Affairs,' Winter,\n    1949-50, p. 19, footnote.\n\n\nNow wait, there is more.\n\nTHE GRUESOME extent of February's killings of Azeris by Armenians\nin the town  of Hojali is at last emerging  in Azerbaijan - about\n600 men,  women and  children dead  in the  worst outrage  of the\nfour-year war over Nagorny Karabakh.\n\nThe figure  is drawn  from Azeri investigators,  Hojali officials\nand casualty lists published in the Baku press. Diplomats and aid\nworkers say the death toll is in line with their own estimates.\n\nThe 25  February attack on Hojali  by Armenian forces was  one of\nthe last moves  in their four-year campaign to  take full control\nof Nagorny Karabakh,  the subject of a new  round of negotiations\nin Rome on Monday. The bloodshed was something between a fighting\nretreat and  a massacre, but  investigators say that most  of the\ndead were civilians. The awful  number of people killed was first\nsuppressed by  the fearful  former Communist government  in Baku.\nLater  it  was blurred  by  Armenian  denials and  grief-stricken\nAzerbaijan's wild  and contradictory  allegations of up  to 2,000\ndead.\n\nThe State Prosecuter, Aydin Rasulov,  the cheif investigator of a\n15-man  team  looking  into  what Azerbaijan  calls  the  \"Hojali\nDisaster\", said  his figure of 600  people dead was a  minimum on\npreliminary  findings.  A similar  estimate  was  given by  Elman\nMemmedov, the mayor of Hojali. An  even higher one was printed in\nthe Baku newspaper  Ordu in May - 479 dead  people named and more\nthan 200 bodies reported unidentified.  This figure of nearly 700\ndead is quoted as official by Leila Yunusova, the new spokeswoman\nof the Azeri Ministry of Defence.\n\nFranCois Zen  Ruffinen, head  of delegation of  the International\nRed Cross  in Baku, said  the Muslim imam  of the nearby  city of\nAgdam had reported a figure of  580 bodies received at his mosque\nfrom  Hojali, most  of  them  civilians. \"We  did  not count  the\nbodies. But  the figure seems  reasonable. It is no  fantasy,\" Mr\nZen Ruffinen said. \"We have some idea since we gave the body bags\nand products to wash the dead.\"\n\nMr  Rasulov endeavours  to give  an unemotional  estimate of  the\nnumber of  dead in the  massacre. \"Don't  get worked up.  It will\ntake  several months  to  get a  final  figure,\" the  43-year-old\nlawyer said at his small office.\n\nMr Rasulov  knows about these  things. It  took him two  years to\nreach  a firm  conclusion that  131  people were  killed and  714\nwounded  when  Soviet  troops  and tanks  crushed  a  nationalist\nuprising in Baku in January 1990.\n\nThose  nationalists, the  Popular  Front, finally  came to  power\nthree weeks  ago and  are applying pressure  to find  out exactly\nwhat  happened when  Hojali, an  Azeri town  which lies  about 70\nmiles from the border with Armenia, fell to the Armenians.\n\nOfficially, 184 people have so  far been certified as dead, being\nthe  number of  people that  could be  medically examined  by the\nrepublic's forensic department. \"This  is just a small percentage\nof the dead,\" said Rafiq Youssifov, the republic's chief forensic\nscientist. \"They were the only bodies brought to us. Remember the\nchaos and the fact that we are  Muslims and have to wash and bury\nour dead within 24 hours.\"\n\nOf these 184 people, 51 were women, and 13 were children under 14\nyears old.  Gunshots killed  151 people,  shrapnel killed  20 and\naxes or  blunt instruments  killed 10.  Exposure in  the highland\nsnows killed the last three.  Thirty-three people showed signs of\ndeliberate mutilation, including ears,  noses, breasts or penises\ncut off and  eyes gouged out, according  to Professor Youssifov's\nreport. Those 184 bodies examined were less than a third of those\nbelieved to have been killed, Mr Rasulov said.\n\nFiles  from  Mr  Rasulov's  investigative  commission  are  still\ndisorganised -  lists of 44  Azeri militiamen are dead  here, six\npolicemen there,  and in handwriting  of a mosque  attendant, the\nnames of  111 corpses brought to  be washed in just  one day. The\nmost heartbreaking account from  850 witnesses interviewed so far\ncomes  from Towfiq  Manafov,  an Azeri  investigator  who took  a\nhelicopter  flight  over  the  escape route  from  Hojali  on  27\nFebruary.\n\n\"There were too many bodies of  dead and wounded on the ground to\ncount properly: 470-500  in Hojali, 650-700 people  by the stream\nand the road and 85-100  visible around Nakhchivanik village,\" Mr\nManafov  wrote in  a  statement countersigned  by the  helicopter\npilot.\n\n\"People waved up  to us for help. We saw  three dead children and\none  two-year-old alive  by  one  dead woman.  The  live one  was\npulling at her arm for the mother to get up. We tried to land but\nArmenians started a barrage against  our helicopter and we had to\nreturn.\"\n\nThere  has been  no consolidation  of  the lists  and figures  in\ncirculation because  of the political  upheavals of the  last few\nmonths and the  fact that nobody knows exactly who  was in Hojali\nat the time - many inhabitants were displaced from other villages\ntaken over by Armenian forces.\n\nTHE INDEPENDENT, London, 12/6/'92\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10939, "properties": {"category": "rec.autos", "text": "From: jwg@SEDV1.acd4.acd.com (jwg)\nSubject: Re: Dumbest automotive concepts of all time\nIn-Reply-To: bhtulin@unix.amherst.edu's message of Wed, 14 Apr 1993 20:35:23 GMT\nOrganization: /u/jwg/.organization\nLines: 16\n\nIn article <C5HqJ0.57@unix.amherst.edu>, bhtulin@unix.amherst.edu (Barak H. Tulin) gives forth:\n>I just started reading this thread today, so forgive me if it has already been\n>mentioned.  But...what was the deal with Renault's putting the horn on the\n>left-hand turn-signal stalk?  It was a button on the end, where the washer\n>button would be on the wiper/washer stalk.  Could the Frenchies not figure\n>out the wiring through the steering wheel, or what?\n\nHad an '83 Alliance for a long time.  It was a comfortable but sluggish\ncar.  I got very used to the horn on the stalk, after a couple months worth\nof getting used to it.  After I bought my next car, a Chevy, it took me\nfor-EVER to get used to the horn on the steering wheel again!\n\njim grey\njwg@acd4.acd.com\n\nUp the Irons!\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10940, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: dingbat@diku.dk (Niels Skov Olsen)\nSubject: Re: Rockwell Chipset for 14.4's ... Any good?\nOrganization: Department of Computer Science, U of Copenhagen\nLines: 33\n\ntdbear@dvorak.amd.com (Thomas D. Barrett) writes:\n\n>In article <im14u2c.735176900@camelot> im14u2c@camelot.bradley.edu (Joe Zbiciak) writes:\n>>What's the word on the chipset?  Is this a ROM bug specific \n>>to a specific brand using the Rockwell, or is it the Rockwell\n>>chipset itself?\n\n>There were an assortment of firmware problems, but that is pretty much\n>expected with any FAX/modem talking with a different FAX or modem\n>which may have also been revised or is new.  I'm pretty much\n>oblivious to any current firmware problems, so you'll have to get it\n>from someone else.\n\nSomeone Else, could you please comment on that. I have just bought\na Twincom 14.4DFi, which has a Rockwell chipset. It wasn't cheap\nso I would like to hear of problems I'm likely to run into.\n\n>However, I can tell you to stay clear of any board which uses the\n>Rockwell MPU (as opposed to the DPU) for an internal implementation.\n>This is because the MPU used \"speed buffering\" instead of having a\n>16550 interface.  Without the 550 interface, the number of interrupts\n>are still the same and thus may get dropped under multitasking\n>conditions (like in windows).  As far as I know, the \"speed buffering\"\n>works OK for external modems if a 550 is used on the internal serial\n>port board.\n\nPhew, I was lucky! The Twincom internal version has a 550A and one\nof the Rockwell chips is marked RC144DP.\n\nBut still I would like to hear more of the above mentioned firmware\nproblems.\n\nNiels\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10941, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: An Anecdote about Islam\nOrganization: Boston University Physics Department\nLines: 117\n\nIn article <16BB112949.I3150101@dbstu1.rz.tu-bs.de> I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n>In article <115287@bu.edu> jaeger@buphy.bu.edu (Gregg Jaeger) writes:\n\n \n>>>>>A brutal system filtered through \"leniency\" is not lenient.\n\n\n>>>>Huh?\n\n\n>>>How do you rate public floggings or floggings at all? Chopping off the\n>>>hands, heads, or other body  parts? What about stoning?\n\n\n>>I don't have a problem with floggings, particularly, when the offenders\n>>have been given a chance to change their behavior before floggings are\n>>given. I do have a problem with maiming in general, by whatever means.\n>>In my opinion no-one who has not maimed another should be maimed. In\n>>the case of rape the victim _is_ maimed, physically and emotionally,\n>>so I wouldn't have a problem with maiming rapists. Obviously I wouldn't\n>>have a problem with maiming murderers either.\n\n\n>May I ask if you had the same opinion before you became a Muslim?\n\n\n\nSure. Yes, I did. You see I don't think that rape and murder should\nbe dealt with lightly. You, being so interested in leniency for\nleniency's sake, apparently think that people should simply be\ntold the \"did a _bad_ thing.\"\n\n\n>And what about the simple chance of misjudgements?\n\nMisjudgments should be avoided as much as possible.\nI suspect that it's pretty unlikely that, given my requirement\nof repeated offenses, that misjudgments are very likely.\n\n \n>>>>>>\"Orient\" is not a place having a single character. Your ignorance\n>>>>>>exposes itself nicely here.\n\n\n>>>>>Read carefully, I have not said all the Orient shows primitive machism.\n\n\n>>>>Well then, why not use more specific words than \"Orient\"? Probably\n>>>>because in your mind there is no need to (it's all the same).\n\n\n>>>Because it contains sufficient information. While more detail is possible,\n>>>it is not necessary.\n\n\n>>And Europe shows civilized bullshit. This is bullshit. Time to put out\n>>or shut up. You've substantiated nothing and are blabbering on like\n>>\"Islamists\" who talk about the West as the \"Great Satan.\" You're both\n>>guilty of stupidities.\n\n\n>I just love to compare such lines to the common plea of your fellow believers\n>not to call each others names. In this case, to substantiate it: The Quran\n>allows that one beATs one's wife into submission. \n\n\nReally? Care to give chapter and verse? We could discuss it.\n\n\n>Primitive Machism refers to\n>that. (I have misspelt that before, my fault).\n \n\nAgain, not all of the Orient follows the Qur'an. So you'll have to do\nbetter than that.\n\n\nSorry, you haven't \"put out\" enough.\n\n \n>>>Islam expresses extramarital sex. Extramarital sex is a subset of sex. It is\n>>>suppressedin Islam. That marial sexis  allowed or encouraged in Islam, as\n>>>it is in many branches of Christianity, too, misses the point.\n\n>>>Read the part about the urge for sex again. Religions that run around telling\n>>>people how to have sex are not my piece of cake for two reasons: Suppressing\n>>>a strong urge needs  strong measures, and it is not their business anyway.\n\n>>Believe what you wish. I thought you were trying to make an argument.\n>>All I am reading are opinions.\n \n>It is an argument. That you doubt the validity of the premises does not change\n>it. If you want to criticize it, do so. Time for you to put up or shut up.\n\n\n\nThis is an argument for why _you_ don't like religions that suppress\nsex. A such it's an irrelevant argument.\n\nIf you'd like to generalize it to an objective statement then \nfine. My response is then: you have given no reason for your statement\nthat sex is not the business of religion (one of your \"arguments\").\n\nThe urge for sex in adolescents is not so strong that any overly strong\nmeasures are required to suppress it. If the urge to have sex is so\nstrong in an adult then that adult can make a commensurate effort to\nfind a marriage partner.\n\n\n\nGregg\n\n\n\n\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10942, "properties": {"category": "talk.politics.misc", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: Lincoln & slavery (Was Re: Top Ten Tricks...)\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 53\n\ncramer@optilink.COM (Clayton Cramer) writes:\n\n>judy@technology.com (Judy McMillin) writes:\n\n>>cramer@optilink.COM (Clayton Cramer) writes:\n\n># #Can you provide some evidence that the slave states regarded slaves as\n># #not humans?  They were \"outside our society\" and similar phrases that\n># #basically meant that they didn't have to recognized as having the same\n># #rights as a free person, but they were never considered \"not human\" to\n># #my knowledge.\n \n># \tIsn't the fact that slaves were \"purchased\" as opposed to\n># \t\"hired\" enough evidence that they were not thought as humans?\n># \tDidn't the Bill of Rights provide basic freedoms to humans\n># \tthat were not available to slaves?\n\n>Not necessarily.  Distinctions were made between \"citizens\" and\n>\"persons\" throughout the U.S. and various state constitutions.\n>For example, free blacks had some rights of citizens, but not all\n>the rights of citizens.  I'm curious if there was an additional\n>level of distinction made by the slave states to rationalize their\n>treatment of slaves, or if they just ignored the theoretical\n>problems of slave ownership.\n\nThe Bill of Rights, as far as I can see, does not once refer to \"citizens\",\nbut it makes several references to \"people\". For example, Article IV:\n\"The right of the people to be secure in their persons, houses, papers,\nand effects, against unreasonable searches and seizures, shall not be\nviolated\"; Article V: \"no person shall be held to answer for a capital,\nor otherwise infamous crime, unless on a presentment or indictment by\na Grand Jury ...  nor shall any person ... be deprived of life, liberty,\nor property, without due process of law\"; Article VIII: \"excessive bail\nshall not be required, nor excessive fines imposed, nor cruel and unusual\npunishments inflicted\".\n\nNow I've never heard that Constitutional rights apply only to citizens;\naren't they meant to apply equally to all *persons* living in the U.S.?\nWhether slaves were considered \"not human\" I don't know, but it seems\nthat a case could be made that they weren't treated as \"people\" as defined\nin the Bill of Rights. And since the nation is nominally based on the\nDeclaration of Independence which states that \"all Men are created equal,\nthat they are endowed by their Creator with certain unalienable Rights,\nthat among these are Life, Liberty, and the Pursuit of Happiness\",\nit would also seem that slaves would not follow under this definition\nof humanity.\n\n-----\nEric Smith\nerics@netcom.com\nerics@infoserv.com\nCI$: 70262,3610\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10943, "properties": {"category": "comp.windows.x", "text": "From: rao@cse.uta.edu (Rao Venkatesh Simha)\nSubject: xrn, xarchie for HP 9000/730 - ASAP\nNntp-Posting-Host: cse.uta.edu\nOrganization: Computer Science Engineering at the University of Texas at Arlington\nLines: 10\n\n\n\tHi,\n\tI need xrn and xarchie for the HP's (9000/730, version 8 OS), either in\nthe source form or, (preferably) in executable form. Please suggest\nwhere I can find this, \n\tSend e-mail to: rao@cse.uta.edu\nThanks in advance,\nRao.\n-- \nSSC\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10944, "properties": {"category": "talk.politics.misc", "text": "From: irvine@uxh.cso.uiuc.edu (Brent Irvine)\nSubject: Re: Stop The SeXularHumanistOppression { former my beloved  Damn Ferigner's Be Taken Over}\nOrganization: University of Illinois at Urbana-Champaign\nLines: 31\n\nIn article <15APR199303031064@reg.triumf.ca> vincent@reg.triumf.ca (pete) writes:\n>In article <C5HwA1.EBp@news.cso.uiuc.edu>, irvine@uxh.cso.uiuc.edu \n>(Brent Irvine) writes...\n>` \n>`\t\"54-40\" or fight was about a territorial dispute with\n>`\tBritish Canada, again OLD STUFF. \n>\n>Uh, not quite. The 54/40' boundary dispute is still unresolved,\n>and Canadian and US Coast Guard vessels regularly if infrequently\n>detain each other's fish boats in the disputed waters off Dixon\n>Entrance. The only reason you don't hear more about it is that\n>it's in neither country's interest to aggravate the quarrel. \n>That doesn't mean that either country is prepared to back down,\n>especially the local political representatives whose constituents\n>are all fishermen.\n\nFishing rights are disputed.  Between 2 nations, no matter *how* \nfriendly, there is ALWAYS fishing disputes.\n\nWhat I was getting at was the 54 40' or fight slogan is OLD STUFF\ndealing with the LAND dispute.  No one is saying 54 40' or fight \nabout fishing rights.  The territorial dispute about the Oregon\nTerritory (we called it) is LONG resolved.\n\nFishing rights...small potatoes.\n\n\n-- \n<><><><><><><><><><> Personal opinions? Why,  <><><><><><><><><><><><><><><>\n<>  BRENT IRVINE  <> yes.  What did you think <> irvine@uxh.cso.uiuc.edu  <>\n<><><><><><><><><><> they were?.......        <><><><><><><><><><><><><><><>\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10945, "properties": {"category": "misc.forsale", "text": "From: jmilhoan@magnus.acs.ohio-state.edu (JT)\nSubject: Re: Your Custom Resume on Disk!!\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 11\n\nIn article <0fk=zHq00Uh_88eb0u@andrew.cmu.edu> Tami Grudzinski <tg2n+@andrew.cmu.edu> writes:\n>                       Your Custom Resume On Disk!\n> \n>                     *Macintosh or IBM compatible!*\n> \n>\t   Never pay the high cost of copy service again. We will completely\n>develop and format your custom resume package and mail you the disk or\n> [blah blah blah deleted]\n\nWho's \"We\"?  Carnegie Mellon?\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10946, "properties": {"category": "talk.religion.misc", "text": "From: Pegasus@aaa.uoregon.edu (Pegasus)\nSubject: Re: Merlin, Mithras and Magick\nOrganization: the Polyhedron Group\nLines: 13\nDistribution: world\nNNTP-Posting-Host: fp1-dialin-6.uoregon.edu\n\nIn article <JOSHUA.93Apr20190924@bailey.cpac.washington.edu>,\njoshua@cpac.washington.edu (Joshua Geller) wrote:\n> \n\n> I would really appreciate if when someone brought something like\n> this up they didn't back out when someone asked for details.\n> josh\n\nEXCUSE ME!\nI am -NOT TRYING TO BACK OUT- Josh, Maybe you should try to make an\ninformed responce when your are trying to pack, and your references are\nPACKED!  and someone responses like you did. (NO GRIN).\nPegasus\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10947, "properties": {"category": "sci.space", "text": "From: aws@iti.org (Allen W. Sherzer)\nSubject: Re: Sixty-two thousand (was Re: How many read sci.space?)\nOrganization: Evil Geniuses for a Better Tomorrow\nLines: 23\n\nIn article <1993Apr15.131954.1@fnalf.fnal.gov> higgins@fnalf.fnal.gov (Bill Higgins-- Beam Jockey) writes:\n\n>Reid, alas, gives us no measure of the \"power/influence\" of readers...\n>Sorry, Mark.\n\nI think I can. Largely as a result of efforts by people reading this group\nwriting letters and making phone calls the following has happened:\n\n1. NASA reprogrammed funds to keep NASP alive in 1991.\n2. Efforts to kill DC-X and the SSRT progam where twice twarted\n   (Feb. and June of last year).\n3. Gouldin kept his job in spite of heavy lobbying against him.\n\nThis may not be what Mark was thinking of but it shows that the\nreaders of sci.space DO have power and influence.\n\n  Allen\n\n-- \n+---------------------------------------------------------------------------+\n| Lady Astor:   \"Sir, if you were my husband I would poison your coffee!\"   |\n| W. Churchill: \"Madam, if you were my wife, I would drink it.\"             |\n+----------------------58 DAYS TO FIRST FLIGHT OF DCX-----------------------+\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10948, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: ykhan@gandalf.ca (Yousuf Khan)\nSubject: Re: IDE vs SCSI (here we go again.....)\nOrganization: Gandalf Data Ltd.\nLines: 36\n\nIn <1993Apr16.205724.26258@mnemosyne.cs.du.edu> smace@nyx.cs.du.edu (Scott Mace) writes:\n\n>In article <1993Apr12.171250.486@julian.uwo.ca> wlsmith@valve.heart.rri.uwo.ca (Wayne Smith) writes:\n\n>>I almost got a hernia laughing at this one.\n\n>You'll probably get one when you realize that your $100 vesa super\n>dooper local bus ultra high tech controller sucks...\n\n>>If anything, SCSI (on a PC) will be obsolete-> killed off by Vesa Local\n>With any luck PC bus archeitecture will be doen any with by sbus.\n\n>Have you ever seen what happens when you hook a busmaster controller to\n>a vesa local bus.  It actually  slows down your system\n>>Bus IDE.  It must be real nice to get shafted by $20-$100 bucks for the\n>>extra cost of a SCSI drive, then pay another $200-$300 for a SCSI controller.\n\nYeah, there is absolutely no use for VLB except for video graphics.\nAnd no IDE could possibly take advantage the VLB, because it runs at\n8 Mhz and 16 bits. Do people forget that the IDE was specifically\ndesigned to interface directly with the AT ISA bus? We've seen\nIDEs come out for EISA, XT ISA, and now even MCA, but at all times\nit was a 16 bit standard, running at somewhere near 8-10 Mhz. When\nyou run an IDE off of the VLB, there's no way that you're running it\nat 33 Mhz, it would burn up. Of course same goes for SCSI, ESDI, whatever,\nnone of them run at CPU speed.\n\nThe only way to gain advantage with a VLB IDE is to hook it up to\na caching controller. I suspect it would be much, much better to\nget a software disk cache instead, since you get write-caching as well.\n\n>because you have an ide and no one makes ide disks that big.\n\nI've seen some Fuji IDE drives going as high as 1G.\n\n\t\t\t\t\t\tYousuf Khan\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10949, "properties": {"category": "talk.politics.guns", "text": "From: jdw@unislc.slc.unisys.com (James Warren)\nSubject: Re: Reasonable (for criminals?) Civie Arms Limits\nOrganization: Unisys Corporation SLC\nLines: 27\n\n> In article <1993Apr19.223925.2342@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>A poster claims he 'always asks [anti-gunners] what they think would\n>be reasonable personal firepower restrictions'. OK then ...\n>\n>Caliber : Not greater than 32\n>Muzzle  : Not greater than 300 ft/lbs with any combo of bullet wt/vel\n>Action  : Single shot rifles and single action revolvers \n>          Revolvers bearing no more than six rounds and incorporating\n>          an 'anti-fanning' mechanism to discourage Roy Rogers wannabes.\n>Bullets : Any non-explosive variety, HPs just fine.\n>\n>Now - these specs leave the 32 H&R magnum as about the most powerful\n>allowable civie cartridge for handgun or rifle use. It would be\n>reasonably effective against home intruders, muggers, rabid wolves\n>and other such nasties, even with the firearm-type limitations. At the\n>same time, this caliber/power limit would reduce the ultimate lethality\n>of hits.\n\nI suspect that you think that this is less lethal than the typical\n\"assault weapon\".  You are wrong.  Compared to what most criminals use, a\n9mm with military ammo (FMJs), or a military rifle (use is extremely\nrare), .223 or 7.62mm with military ammo (FMJs), the .32 H&R magnum with\n\"civie\" bullets is more lethal.  Most of the arms which criminals (and\nthe military) use are among the least lethal arms in existance.\n\nWhat if we just punish the criminal and leave the law abiding citizen\nalone?  It hasn't been tried in recient times, but it might work.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10950, "properties": {"category": "comp.graphics", "text": "From: zemcik@ls (Pavel Zemcik)\nSubject: Tseng ET4000 pixel clock\nOrganization: Technical University of Brno, Czech Republic\nKeywords: ET4000 SVGA pixel clock\nSummary: Is there anybody who knows how to set ET4000 SVGA pixel clock?\nLines: 19\n\nI would like to program Tseng ET4000 to nonstandard 1024x768 mode by\nswitching to standard 1024x768 mode using BIOS and than changing some\ntiming details (0x3D4 registers 0x00-0x1F) but I don't know how to\nselect 36 MHz pixel clock I need. The BIOS function selects 40 MHz.\n\nIs there anybody who knows where to obtain technical info about this.\nI am also interested in any other technical information about Tseng ET4000\nand Trident 8900 and 9000 chipsets.\n\n\t\t\tthanks very much\n\n\t\t\t\t\t\tPavel Zemcik\n\t\t\t\t\t\tDept. of Comp. Sci. & Eng.\n\t\t\t\t\t\tTechnical University of Brno\n\t\t\t\t\t\tBozetechova 2\n\t\t\t\t      CS-612 66 Brno\n\t\t\t\t\t\tCzech Republic\n\t\t\t\t\t\te-mail: zemcik@dcse.fee.vutbr.cs\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10951, "properties": {"category": "rec.sport.baseball", "text": "From: pablo@jhunix.hcf.jhu.edu (Pablo A Iglesias)\nSubject: Re: Jewish Baseball Players?\nOrganization: Homewood Academic Computing, Johns Hopkins University, Baltimore, Md, USA\nLines: 24\nNNTP-Posting-Host: jhunix.hcf.jhu.edu\n\nIn article <15APR93.14691229.0062@lafibm.lafayette.edu> VB30@lafibm.lafayette.edu (VB30) writes:\n>Just wondering.  A friend and I were talking the other day, and\n>we were (for some reason) trying to come up with names of Jewish\n>baseball players, past and present.  We weren't able to come up\n>with much, except for Sandy Koufax, (somebody) Stankowitz, and\n>maybe John Lowenstein.  Can anyone come up with any more.  I know\n>it sounds pretty lame to be racking our brains over this, but\n>humor us.  Thanks for your help.\n>\n>Thanks.\n>Bobby\n\n\n\nHank Greenberg would have to be the most famous, because his Jewish\nfaith actually affected his play. (missing late season or was it world\nseries games because of Yom Kippur)\n\n\n\n-- \nPablo Iglesias                        \npi@ruth.ece.jhu.edu\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10952, "properties": {"category": "rec.sport.baseball", "text": "From: 93jll@williams.edu (Teflon X)\nSubject: Re: Militello update\nOrganization: Williams College, Williamstown, MA\nLines: 26\nDistribution: usa\nNNTP-Posting-Host: hancock.cc.williams.edu\n\nIn article <93602@hydra.gatech.EDU> gt0523e@prism.gatech.EDU (Michael Andre Mule) writes:\n>HEY!!! All you Yankee fans who've been knocking my prediction of Baltimore.\n>You flooded my mailbox with cries of \"Militello's good, Militello's good.\"\n>\n>Where is he??!! I noticed he got skipped over after that oh so strong first\n>outing.\n\nAbout as good as Mussina's. better than Sutcliffe's and McDonald's\n\n>  He's not by any chance in Columbus  now, is he? \nHe's in the bullpen. Steinbrenner is in charge after all.\n\n> Please don't tell\n>me you're relying on this guy to be the *fourth*, not the fifth, but the \n>*fourth* starter on this brittle pitching staff.  \n\nHe's got the talent to be the 4th starter now, and evetually the ace.\nHe was a higher ranked (and generally better) prospect than Arthur\nRhodes who happens to be, well hey, the Oriole's 4th starter.\n\n>\n>As for the O's, it's still early.\n\nAs for Militello, it's still early.\n\nToby Elliott\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10953, "properties": {"category": "comp.graphics", "text": "From: ykim@cs.columbia.edu (Yong Su Kim)\nSubject: Fast wireframe graphics\nDistribution: usa\nOrganization: Columbia University Department of Computer Science\nLines: 29\n\n\nI am working on a program to display 3d wireframe models with the user\nbeing able to arbitrarily change any of the viewing parameters.  Also,\nthe wireframe objects are also going to have dynamic attributes so\nthat they can move around while the user is \"exploring\" the wireframe\nworld.\n\nTo do this, I am thinking of using the SRGP package described in the\nVan Dam, Foley and Feiner book, but I was wondering if there was\nanother PD graphics package out there which was faster.  I would like\nto make the program as fast as possible so that it provides\nsatisfactory real time performance on a Sun IPX.\n\nIdeally, I'm looking for a PD graphics package which will allow me to\nopen a new window under X, and allow me to draw lines within the\nwindow.  Also, it would also need to have some sort of event driven\ninteraction handling since the user is going to move around the\nwireframe models using the keyboard.\n\nIf you know or wrote such a package, I would be grateful if you could\ndirect me to a ftp site which contains the package.\n\nThank you.\n\n-- \n===============================================================================\nYong Su Kim, Class of 1993\t\t|  Internet: yk4@cunixb.cc.columbia.edu\nColumbia College, Columbia University   |        or  ykim@cs.columbia.edu\n\t\t\t\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10954, "properties": {"category": "sci.electronics", "text": "From: baden@sys6626.bison.mb.ca (baden de bari)\nSubject: Re: Jacob's Ladder\nOrganization: System 6626 BBS, Winnipeg Manitoba Canada\nLines: 36\n\ng92m3062@alpha.ru.ac.za (Brad Meier) writes:\n\n> Hi, I'm looking for a circuit, that is called a \"Jacob's Ladder\".\n> This little box is usually seen in sci-fi movies.  It consists of \n> two curves of wire protruding into the air, with little blue sparks\n> starting at their base (where the two wires are closer to each other),\n> moving up the wires to the top, and ending in a small crackling noise. \n> \n> Could anyone supply me with the schematic for the innards of this box?\n> \n> Thanks in advance\n> Mike\n> \n> (Please reply by email to g90k3853@alpha.ru.ac.za)\n> \n> --\n>  |  / |  | ~|~ /~~\\  |  | ~|~ /~~\\  |~~\\  /~~\\         The KnightOrc \n>  |/   |\\ |  | |   __ |__|  | |    | |__/ |         g92m3062@hippo.ru.ac.za\n>  |\\   | \\|  | |    | |  |  | |    | |  | |      \"When it's over I'll go home,\n>  |  \\ |  | _|_ \\__/  |  |  |  \\__/  |  |  \\__/    until then, I stay!\" - Me\n\n \n        I'd like any accumulated information on this as well please.\n \n                Thanks.\n \n_________________________________________    \n    _____                                |\n   |     |   |                           |\n =========== |    Baden de Bari          |\n  | o   o |  |                           |\n  |   ^   |  | baden@sys6626.bison.ca    |\n  |  {-}  |  | baden@inqmind.bison.ca    |\n   \\_____/   |                           |\n-----------------------------------------\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10955, "properties": {"category": "talk.politics.guns", "text": "From: tomgift@uxa.cso.uiuc.edu (Tom Gift)\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nOrganization: University of Illinois at Urbana\nLines: 28\n\nsteiner@jupiter.cse.utoledo.edu (Jason 'Think!' Steiner) writes:\n\n\n>> Ever hear of electric ovens or microwaves?  Very popular.\n>> Electric stoves outside metro-areas especially.\n\n>oh, i see. electricity is a natural right & our wonderful government\n>would -never- cut off the power to the people they were besieging.\n>are you really this dumb, or just acting like it for the sake of\n>argument?\n\n>jason\n\nNo, they didn't have electrical power, but no, I don't find the idea of\nDavidians calmly cooking lunch with gas masks on as the FBI knocks the\nbuildings down very credible,either.\n\nIt's not like this whole discussion is relevant.  It started when some-\none made the wholly unsubstantiated allegation that the wood stove ig-\nnited NAPALM the FBI shot into the buildings.\n\nI'm not a groveling apoligist for the feds, far from it.  But wild ac-\ncusations like this are ridiculous and obfuscate legitimate criticism of\ntheir conduct in this whole affair.\n\nTom Gift\ntomgift@uxa.cso.uiuc.edu\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10956, "properties": {"category": "rec.sport.hockey", "text": "From: sclark@epas.utoronto.ca (Susan Clark)\nSubject: Who picks first?\nOrganization: University of Toronto - EPAS\nNntp-Posting-Host: epas.utoronto.ca\nLines: 7\n\n\tAccording to THE FAN here in T.O., Ottawa has won the Daigle e\nsweepstakes.  They didn't mention why, but San Jose had more goals\nthan the Sen-sens, so I have a hunch this is why Ottawa would pick\nfirst.....\n\nSusan\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.517+0000", "event": "documents", "entityId": 10957, "properties": {"category": "sci.space", "text": "From: matthew@phantom.gatech.edu (Matthew DeLuca)\nSubject: Re: nuclear waste\nOrganization: The Dorsai Grey Captains\nLines: 15\nNNTP-Posting-Host: oit.gatech.edu\n\nIn article <844@rins.ryukoku.ac.jp> will@rins.ryukoku.ac.jp (William Reiken) writes:\n\n>\tOk, so how about the creation of oil producing bacteria?  I figure\n>that if you can make them to eat it up then you can make them to shit it.\n>Any comments?\n\nSure.  Why keep using oil?  A hydrogen/electric economy would likely be\ncleaner and more efficient in the long run.  The laws of supply and demand\nshould get the transition underway before we reach a critical stage of\nshortage.\n-- \nMatthew DeLuca\nGeorgia Institute of Technology, Atlanta Georgia, 30332\nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!matthew\nInternet: matthew@phantom.gatech.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10958, "properties": {"category": "talk.politics.guns", "text": "From: pat@rwing.UUCP (Pat Myrto)\nSubject: Re: Tanks against civilians (was Re: That silly outdated Bill/Koresh)\nSummary: Tanks against Civilians (couldn't happen here... read yer history)\nOrganization: Totally Unorganized\nLines: 70\n\nIn article <scottj-150493092731@iamac-1.dml.georgetown.edu> scottj@magic.dml.georgetown.edu (John L. Scott) writes:\n>\n> [ ... picking nits over tanks firing the main gun or not deleted ...]\n> \n\nI think the point is being missed - that it is apparantly acceptable for\nBig Government (Big Brother?) to use TANKS to control the people, as\nlong as they don't use the BIG GUN (but everything else is allright...).\n\nTanks deployed against civilians, let alone FIRING on them with crew\nserved weaponry (a .50 Heavy Machine Gun is crew-served) is something\nboth our press and government howl about instantly when done in some\nother country.  Against civilians that have, at most, one-shot-at-a-time\nLIGHT small arms.  Certainly nothing that places the people in or behind\nthe tank in any real danger.  Molotov coctails?  A round from a rifle\nor pistol deals with anybody approaching with one of those.  And \"snipers\"\ntoo often turn out to be strays from other cops/guard/army gunfire.\n\nI don't know about the other people in this group (or on the net) but\nthe idea of tanks being used to control civilians, in anything that\npretends to be a free society is outrageous.  When Big Government feels\nit is necessary to use that kind of force to stomp out protests (even\nviolent) of the citizens, that suggests that the government is totally\nout of control, since that is effectively the government declaring war\non its own people.  If the government was living up to its responsibility,\ngovernment of the people BY THE PEOPLE, not the 'lords' and other elites\nwho want to keep their good thing going, the citizens wouldn't feel the\nneed to be resorting to acts that need to be squashed with a military\nboot.  People do things like that because they have become convinced\nthat it is the only option that remains, other attempts to have grievances\nredressed have been ignored.  And yes, there is a criminal element that\nwill exploit this, but the fact remains that the government has been\nunresponsive or such acts wouldn't be apt to happen.  Still not an excuse\nto open up on civilians with tanks, heavy machine guns, or whatever.\nIts the old 'might makes right' philosophy that is the hallmark of a\ngovernment going rogue:  They don't like it? Tough. We will simply\nsquash them under an iron boot.  Actually addressing their grievances\nin other than token fashion with huge volumes of hot air is just too\ninconvenient...  Sort of a variation on mushroom management:  Keep them\nin the dark, Smother them with shit, and Crush them when ready...\n\nAnd these are the folks that many liberals are trying to arrange things\nso that they will have a MONOPOLY on coercive force (firearms that are\nthan expensive toys...) by gutting the Bill of Rights (cuz it just isn't\nPROGRESSIVE or doesn't fit in with MODERN THINKING anymore)...\n\nUnbelievable.\n\nAnd I do believe amid the smoke, confusion, etc of a real riot situation,\nthat it would be POSSIBLE for a tank to get away with firing the main gun\ninto a building at close range?  One would hear an explosion among many\nexplosions.  It is loud, but it is not going to stand out like a 1000\npound bomb or a tactical nuke.  There would be a hole blown in the wall,\nand some rubble, but with tanks knocking over walls, and other sources\nof buildings turning into rubble, and other covering racket such as\ngunfire, including 50's tacking away, it would not stand out that much,\nand could be explained by \"musta been a gas leak... \".  I think it could be\ndone and not be reported under such conditions - it is POSSIBLE.  It is\nnot like a tank driving down a quiet street on a Sunday afternoon, turning\nand firing, you know.  THAT would stand out, and be pretty impossible\nto cover up.\n\n>--John L. Scott\n\n\n-- \npat@rwing.uucp      [Without prejudice UCC 1-207]     (Pat Myrto) Seattle, WA\n         If all else fails, try:       ...!uunet!pilchuck!rwing!pat\nWISDOM: \"Only two things are infinite; the universe and human stupidity,\n         and I am not sure about the former.\"              - Albert Einstien\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10959, "properties": {"category": "talk.politics.guns", "text": "Subject: Re: Washington State\nFrom: kim39@scws8.harvard.edu (John Kim)\nOrganization: Harvard University Science Center\nNntp-Posting-Host: scws8.harvard.edu\nLines: 14\n\nIn article <1993Mar30.191157.8338@synapse.bms.com> hambidge@bms.com writes:\n>In article <93088.191742U23590@uicvm.uic.edu>, <U23590@uicvm.uic.edu> writes:\n>>What is a CCW\n>Acronym for Concealed Carrying of Weapon; basically, a permit to carry\n>a concealed pistol or revolver.\n\nI phoned Licensing Division in Washington State to ask for an application\nfor a CCW.  Instead they promptly sent me an applicationfor becoming a \nfirearms dealer in Washington!\n\nThey even sent me a firearms safety pamphlet.\n-Case Kim\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10960, "properties": {"category": "rec.motorcycles", "text": "From: Wayne.Orwig@AtlantaGA.NCR.COM  (Wayne Orwig)\nSubject: Re: Shaft-drives and Wheelies\nLines: 21\nNntp-Posting-Host: worwig.atlantaga.ncr.com\nOrganization: NCR Corporation\nX-Newsreader: FTPNuz (DOS) v1.0\n\nIn Article <1r16ja$dpa@news.ysu.edu> \"ak296@yfn.ysu.edu (John R. Daker)\" says:\n> \n> In a previous article, xlyx@vax5.cit.cornell.edu () says:\n> \n> Mike Terry asks:\n> \n> >Is it possible to do a \"wheelie\" on a motorcycle with shaft-drive?\n> >\n> No Mike.  It is imposible due to the shaft effect.  The centripital effects\n> of the rotating shaft counteract any tendency for the front wheel to lift\n> off the ground.\n> -- \n> DoD #650<----------------------------------------------------------->DarkMan\nWell my last two motorcycles have been shaft driven and they will wheelie.\nThe rear gear does climb the ring gear and lift the rear which gives an\nodd feel, but it still wheelies.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10961, "properties": {"category": "rec.autos", "text": "From: jmiller@network.com (Jeff J. Miller)\nSubject: Re: Need info on Porsche 914's\nNntp-Posting-Host: brew\nReply-To: jmiller@network.com\nOrganization: Network Systems Corporation\nLines: 43\n\nIn article 6126@midway.uchicago.edu, buzy@quads.uchicago.edu (Len Buzyna) writes:\n>Hi there,\n>I've recently been toying with the idea of purchasing an old 914. The going\n>rate seems to be about $4000 for cars with anywhere from 40-80K Mi.\n>My question is this- what should I expect at this price? Should I expect to\n>have extensive body work done? What about engine & transmission- should I\n>likewise expect to have both virtually replaced? Along those lines,\n>does anyone have the names & addresses of any mail-order parts\n>suppliers for everything from engine to body parts? I'm completely new\n>to the area of restoring cars, and as I don't actually do any work with\n>cars, most of the work would have to be professionally done- what sould\n>I expect the cost of upgrading a 914 to a rust-free, mechanically\n>sound automobile?\n>Thanks in advance,\n>Andre \n>..\n>\n\nTrue 914 enthusiasts will be able to give you a better answer then this\nbut I'll dump my impressions.  I've wanted to own a 914 for about 10 years\nnow; came close once but I ended up buying a Fiero instead (biggest mistake\nof my life!)\n\nAnyway, for $4000 you should be able to get a nice car but your also set\nin the price range to get taken by a nice looker that is a pile of shit.\nThe most common total failure for the car would be frame rust between the\nengine and passenger compartment.  Also look for chassis welded together\nhere.  Oh yeah, the price range you are talking about must be the 4 banger;\na 6 (if you could find one) would be mucho more bucks.\n\nParts for the engine are pretty easy to come by (for an old car) and you\ncan even locate crude in the JC Whitney catalog if you have too.\n\nThe machine itself is pretty simple (they use the spare tire for windshild\nwasher instead of a pump fer chris sake!) so getting it fixed by a good\nbug/porsche mechanic would be easy.  Since it is mid-engine you may spend\nmore on labor for any mechanical work.\n\n--\nJeff Miller                 Network Systems Corporation\nInternetwork Group          7600 Boone Avenue North\njmiller@network.com         Minneapolis MN 55428   (612)424-4888\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10962, "properties": {"category": "talk.religion.misc", "text": "From: ad354@Freenet.carleton.ca (James Owens)\nSubject: Re: Question for those with popular morality\nOrganization: National Capital Freenet, Ottawa, Canada\nLines: 87\n\n\nIn article 70257, david@terminus.ericsson.se (David Bold) writes:\n \n>In article 17570@freenet.carleton.ca, ad354@Freenet.carleton.ca \n>(James Owens) writes:\n \n>>You seem to be saying that, God being unknowable, His morality \n>>is unknowable.\n \n>Yep, that's pretty much it.    . . .\n \n>. . .\n \n>As I understand it, the Sadducees believed that the Torah was all \n>that was required, whereas the Pharisees (the ancestors of modern\n>Judaism) believed that the Torah was available for interpretation \n>to lead to an understanding of the required Morality in all its \n>nuances (->Talmud).\n \n>The essence of all of this is that Biblical Morality is an \n>interface between Man and YHWH (for a Jew or Christian) and does\n>not necessarily indicate anything about YHWH outside of that \n>relationship (although one can speculate).\n \n>. . .\n \n>. . . the point I`m trying to make is that we only really have the \n>Bible to interpret, and that interpretation is by humanity. I guess \n>this is where Faith or Relevation comes in with all its inherent \n>subjectiveness.\n \nGod being unknowable, I can't comment on His motives, but it would be\ndistressing if He allowed us to misunderstand Him through no fault of \nour own.  For sanity's sake we must assume, if we believe in Him at all,\nthat His message comes through somehow.  The question is whether it comes \nthrough immediately to every individual, or is contained in a complex \ncanon that must be interpreted by experts in consultation with one another, \nor is transmitted directly through appointed representatives who are free\nto interpret, extend and modify the canon.  If God's message is indeed\nmediated, the further problem arises as to whether the individual under-\nstands the mediated message fully and clearly.  Since the responsibility \nfor understanding lies ultimately with the individual, we must assume that \nGod in His benevolence guides each individual to the appropriate source \nfor that individual, whereof the person may or may not drink. \n \n>>Metaphysically, if there are multiple moral codes then there is no\n>>Absolute moral code, and I think this is theologically questionable.\n \n>No. There may be an absolute moral code. There are undoubtably multiple\n>moral codes. The multiple moral codes may be founded in the absolute moral\n>code. As an example, a parent may tell a child never to swear, and the child\n>may assume that the parent never swears simply because the parent has told\n>the child that it is \"wrong\". Now, the parent may swear like a trooper in\n>the pub or bar (where there are no children). The \"wrongness\" here is if\n>the child disobeys the parent. The parent may feel that it is \"inappropriate\"\n>to swear in front of children but may be quite happy to swear in front of\n>animals. The analogy does not quite hold water because the child knows that\n>he is of the same type as the parent (and may be a parent later in life) but\n>you get the gist of it? Incidentally, the young child considers the directive\n>as absolute until he gets older (see Piaget) and learns a morality of his own.\n \nYour example is complicated in our age by the thin line between morality\nand politeness.  You might have said \"burp\", for burping and swearing carry\nabout the same stigma today.  If you are talking about \"taking the Lord's \nname in vain\" as a serious transgression, then this example is more a case of \nhypocrisy than of varying moral codes.\n \nIf there is an absolute moral code, propositions or laws in that code apply\nabsolutely and universally, by definition.  Conceivably some moral codes\ncould be subsets of the universal code, as you say at the outset.  So, for\nexample, God's code could include, \"Thou shalt not create Beings without\na hospitable planet to live on\", but this law would be inapplicable to us.\nNevertheless, we would be entitled to suppose that all laws applicable\nto us are also applicable to God.\n \nBut when you begin to ask what laws might appear in God's moral code, you have\na sense of the absurdity of the question.  Does God make laws for Himself to\nfollow?  Perhaps God is not the sort of being to which the category \"morality\"\ncan be sensibly applied.\n-- \n                                     James Owens  ad354@Freenet.carleton.ca\n                                     Ottawa, Ontario, Canada\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10963, "properties": {"category": "rec.motorcycles", "text": "From: moseley@u.washington.edu (Steve L. Moseley)\nSubject: Re: neck reining -was- Countersteering_FAQ please post\nOrganization: Microbial Pathogenesis and Motorcycle Maintenance\nLines: 25\nDistribution: world\nNNTP-Posting-Host: microb0.biostat.washington.edu\n\nIn article <1qmetg$g2n@sixgun.East.Sun.COM>\n egreen@east.sun.com (Ed Green - Pixel Cruncher) writes:\n\n>Basically, there are two ways to steer a horse, plow-rein and\n>neck-rein.  Plow-reining steers him by keeping the reins separate, and\n>you pull in the direction you wish to go.  Neck-reining steers a horse\n>by holding the reins together in one hand, and pulling against the\n>horse's neck in the direction you wish to go.  When training a\n>plow-steering horse to neck-rein, one technique is to cross the reins\n>under his necks.  Thus, when neck-reining to the left, the right rein\n>pulls against the right side of the neck, but the left side of the bit\n>(which the horse is used to from his plow-reining days).\n\nI learned when riding bareback as a kid to \"palm-reign\", by just \npushing on the right side of the horse's neck with your right palm to turn \nleft - a lot like countersteering. So that came pretty easy to me in the \ntransition to motorcycles. It took a while however to break my habit of \nkicking the rear fender with my heels to go faster.\n\nSteve\n__________________________________________________________________________\nSteve L. Moseley                                  moseley@u.washington.edu\nMicrobiology SC-42                                Phone: (206) 543-2820\nUniversity of Washington                          FAX:   (206) 543-8297\nSeattle, WA 98195\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10964, "properties": {"category": "rec.sport.baseball", "text": "From: wrl@pmafire.inel.gov (William Lechner)\nSubject: Trivia Question!!\nDistribution: usa\nOrganization: WINCO\nLines: 19\n\nOk all you trivia buffs, I have a good one for you.\n\n1.  Prior to the foul bunt rule what is the record for the most foul balls\nby 1 batter during one at bat?\n\n2.  Total pitches?\n\n3.  Who was the batter?\n\n4.  Who was the pitcher?\n\n5.  Same as 1-4 except after the foul bunt rule.\n\nAssociated data would be nice too (such as date, location, teams, etc.)\n\nBill\nwrl@pmafire.inel.gov\n\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10965, "properties": {"category": "soc.religion.christian", "text": "From: maridai@comm.mot.com (Marida Ignacio)\nSubject: Re: \"Accepting Jesus in your heart...\"\nOrganization: trunking_fixed\nLines: 34\n\n\n    |whitsebd@nextwork.rose-hulman.edu (Bryan Whitsell) writes:           \n    |                                                                     \n    |> Religion (especially Christianity) is nothing more than a DRUG.    \n    |> Some people use drugs as an escape from reality.  Christians inject\n    |> themselves with jeezus and live with that high.                    \n    |                                                                     \n    |Your logic is falty.  If Christianity is a DRUG, and once we die we  \n    |die, then why would you be reluctant to embrase this drug so that    \n    |while you are alive you enjoy yourself.                              \n    |                                                                     \n\nPardon the harshness that follows...\n\nOnce, I told a cradle christian: Please do not take advantage of Jesus\nor anybody for the sake of your own (selfish) realization or search\nfor true faith/religion/belonging/'being in'/fear of hell/vanity/etc.  \nInstead of serving yourself, _we must be serving Him_.  \n*Until you have comprehended this truth, you are only doing things for your \nown egoism.*\n\nLet us not use Jesus, our religion, the Bible, anything or\nanybody as a means of escape or getting ecstatic or high.\nWe are God's children and we must have a true and authentic\nrelationship with our Father with obedience, faith, hope and \nlove and works (the last as the most important).\n\nBeware of our 'materialistic', 'worldly' and 'selfish' motives.  \nAtheists have this ground against us and I believe they are right about\n*some* who call themselves 'christians'.\n\n-Marida\n \"...spreading Gods words through actions...\"\n  -Mother Teresa\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10966, "properties": {"category": "sci.med", "text": "From: jim.zisfein@factory.com (Jim Zisfein) \nSubject: Re: Could this be a migraine????\nDistribution: world\nOrganization: Invention Factory's BBS - New York City, NY - 212-274-8298v.32bis\nReply-To: jim.zisfein@factory.com (Jim Zisfein) \nLines: 16\n\nGB> From: geb@cs.pitt.edu (Gordon Banks)\nGB> The HMO would stop the over-ordering, but in HMOs, tests are\nGB> under-ordered.\n\nThat's a somewhat overbroad statement.  I'm sure there are HMOs in\nwhich the fees for lab tests are subtracted from the doctor's\nincome.  In most, however, including the one I work for, there is no\ndirect incentive to under-order.  Profits of the group are shared\namong all partners, but the group is so large that an individual's\ngenerated costs have a miniscule effect.  I don't believe that we\nunder-order.  Then again, I'm not really sure what the right amount\nof ordering is or should be.  Relative to the average British\nneurologist, I suspect that I rather drastically over-order.\n---\n . SLMR 2.1 . E-mail: jim.zisfein@factory.com (Jim Zisfein)\n                                                                            \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10967, "properties": {"category": "sci.med", "text": "From: black@sybase.com (Chris Black)\nSubject: cystic breast disease\nOrganization: Sybase, Inc.\nLines: 18\n\nMy mom has just been diagnosed with cystic breast disease -- a big\nrelief, as it was a lump that could have been cancer.  Her doctor says\nshe should go off caffeine and chocolate for 6 months, as well as\nstopping the estrogen she's been taking for menopause-related reasons.\nShe's not thrilled with this, I think especially because she just gave\nup cigarettes -- soon she won't have any pleasures left!  Now, I thought\nI'd heard that cystic breasts were common and not really a health risk.\nIs this accurate?  If so, why is she being told to make various\nsacrifices to treat something that's not that big of a deal?\n\nThanks for any information.\n\n-- Chris\n\n-- \nblack@sybase.com\n\nNote:  My mailer tends to garble subject lines.  \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10968, "properties": {"category": "soc.religion.christian", "text": "From: aa888@freenet.carleton.ca (Mark Baker)\nSubject: Re: The arrogance of Christians\nReply-To: aa888@freenet.carleton.ca (Mark Baker)\nOrganization: The National Capital Freenet\nLines: 22\n\nIn a previous article, mhsu@lonestar.utsa.edu (Melinda . Hsu) says:\n\n>\n>Well the argument usually stops right there.  In the end,\n>aren't we all just kids, groping for the truth?  If so, do we have\n>the authority to declare all other beliefs besides our own as\n>false?\n>\n\nIf I don't think my belief is right and everyone else's belief is wrong,\nthen I don't have a belief. This is simply what belief means. Where does\nthe authority for a belief come from? Nowhere, for a belief is itself\nauthoratative. If I produce authority for a belief, where will I find\nauthority for my belief in the legitimacy of the authority. In short, \nthe mind has to start somewhere. (By the way, the majority of Christians,\ni.e. Catholics, believe in the authority of the Church, and derive the\nauthority of the Bible from its acceptance by the Church.)\n-- \n==============================================================================\nMark Baker                  | \"The task ... is not to cut down jungles, but \naa888@Freenet.carleton.ca   | to irrigate deserts.\" -- C. S. Lewis\n==============================================================================\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10969, "properties": {"category": "talk.politics.misc", "text": "From: chloupek@ohstpy.mps.ohio-state.edu\nSubject: Re: NC vs Hunt (Marine Gay Bashing in Wilmington NC) verdict\nOrganization: The Ohio State University, Department of Physics\nLines: 48\n\nIn article <1993Apr14.152634.16128@pony.Ingres.COM>, jab@Ingres.COM (jeff bowles) writes:\n> tfarrell@lynx.dac.northeastern.edu (Thomas Farrell) writes:\n>>questions like \"what kind of sexual perversions do you participate in?\"\n>>and you think he made a good case????? The arresting officer said the\n>>bastards told him they did it on purpose and hoped the victim would die,\n>>and you think the defense made a good case????? No wonder we're losing! \n>>We're aparently not trying to win!\n> \n> The clip I saw was even worse than that. The defense attorney was asking\n> something like \"what have you done to serve YOUR country, as compared to\n> these fine upstanding examples of patriotism?\"\n> \n> I didn't see the response; I don't think it was shown on TV. I wish the\n> response had been \"I vote. I pay taxes. I pay my salary. I support the Bill\n> of Rights, unlike you, Counselor.\"\n> \n> In my dreams :-(\n> \n> Now, the real question is, could this be a federal civil rights case, since\n> the state case was a sham? (Sound like a well-known Los Angeles trial?) Probably\n> not: fags and dykes aren't protected (for being fags and dykes) under civil\n> rights laws.\n> \n>\nI would doubt any civil rights case would be in order for the point that you\nmentioned.  Even if it were possible, I think it is a bad idea since it smacks\nreal strongly of double jeopardy.  A civil case for damages is fine since that\nis a trial that would proceed regardless of the first.  I think a bad precedent\nhas already been set in the King trial in L.A. and something like this would\nmake it worse.  Regardless of how bad anybody feels about this decision, it\nmust stand that charges of assault were not not proven against the three\nmarines and that's how it should stand.\n\nFrank (who is still mad, but now somewhat sane)\n\n\n--------------------------------------------------------------------------\n\nFrank R. Chloupek \nCHLOUPEK@ohstpy.mps.ohio-state.edu \nDepartment of Physics -- *The* Ohio State University\n(Not just any Ohio State University) \n\n\"There is only one hard-and-fast rule about the place to have a party:  \nsomebody else's place.\"\n\t\t\t\t\t\t\t--P.J. O'Rourke\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10970, "properties": {"category": "rec.autos", "text": "From: rmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen)\nSubject: (w)rec.autos\nOrganization: University of Virginia\nLines: 3\n\n\nThere is just something disconcerting about the name of this group. :)\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10971, "properties": {"category": "misc.forsale", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: Noel B. Lorenzana <U38134@uicvm.uic.edu>\nSubject: More comics for sale!\nLines: 48\n\nMiscellaneous comics for sale. I really would like\nto get rid of these for lack of space. Buyer pays\nshipping, and all offers considered. OH, and the\nfirst purchase over $20 in any of my posts\ngets a free Maxx #1/2 coupon, or a trashed copy\nof Amazing spidey #300. Here goes...\n\n\nDeathlok         #1           $3.00\n                 2-17         $1.75 each\n                 Annual #1     2.50\n                 Special #1    2.00\n\nSleepwalker      1,2,6,8,9,13  7.00 (set) or 1.25\n                                             each\n\n\nNext Men         #1           $3.00\nRay              #1            1.00\nDeathstroke      5,6           1.75 each\nDarkhawk         13            1.25\nNew warrior's    18            1.00\nFantasti Four    358           2.50\nMoon Knight      35,36         1.75 each\nHulk             386-388       1.50 each\n\nPunisher W.Z.    1             2.50\nCage             1             1.50\nX-force          1             2.00\nSilver Sable     1             2.00\nX-calibur        26,27,48,49   1.50 each\n\n\nHearts of Darkness             5.00\nInfinity Guantlet     1-4      2.50 each\nBatman v. Pred.       1,3      2.00 each\n \"   \"  \"  (deluxe)   1        5.00\n\nGuardians of the\nGalaxy                1       3.00\nSpider-man 2099       1-3     5.00 (set)\nSpec. spider-man      189     3.00 (special hologram)\n\nLet me know if you'd like to buy anything. My\naddress is U38134@uicvm.uic.edu\n\nThanks,\nNoel Lorenzana\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10972, "properties": {"category": "sci.med", "text": "From: fulk@cs.rochester.edu (Mark Fulk)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOrganization: University of Rochester\n\nIn article <1993Apr15.150550.15347@ecsvax.uncecs.edu> ccreegan@ecsvax.uncecs.edu (Charles L. Creegan) writes:\n>\n>What about Kekule's infamous derivation of the idea of benzene rings\n>from a daydream of snakes in the fire biting their tails?  Is this\n>specific enough to count?  Certainly it turns up repeatedly in basic\n>phil. of sci. texts as an example of the inventive component of\n>hypothesizing. \n\nAnd has been rather thoroughly demolished as myth by Robert Scott Root-\nBernstein.  See his book, \"Discovering\".  Ring structures for benzene\nhad been proposed before Kekule', after him, and at the same time as him.\nThe current models do not resemble Kekule's.  Many of the predecessors\nof Kekule's structure resemble the modern model more.\n\nI don't think \"extra-scientific\" is a very useful phrase in a discussion\nof the boundaries of science, except as a proposed definiens.  Extra-rational\nis a better phrase.  In fact, there are quite a number of well-known cases\nof extra-rational considerations driving science in a useful direction.\n\nFor example, Pasteur discovered that racemic acid was a mixture of\nenantiomers (the origin of stereochemistry) partly because he liked a\nfriend's crank theory of chemical action.  The friend was wrong, but\nPasteur's discovery stood.  A prior investigator (Mitscherlich), looking\nat the same phenomenon, had missed a crucial detail; presumably because he\nlacked Pasteur's motivation to find something that distinguished racemic\nacid from tartaric (now we say: d-tartaric) acid.\n\nAgain, Pasteur discovered the differential fermentation of enantiomers\n(tartaric acid again) not because of some rational conviction, but because\nhe was trying to produce yeast that lived on l-tartaric acid.  His notebooks\ncontained fantasies of becoming the \"Newton of mirror-image life,\" which\nhe never admitted publically.\n\nPerhaps the best example is the discovery that DNA carries genes.  Avery\nstarted this work because of one of his students, and ardent Anglophile\nand Francophobe Canadian, defended Fred Griffiths' discoveries in mice.\nMost of Griffiths' critics were French, which decided the issue for the\nstudent.  Avery told him to replicate Griffiths' work in vitro, which the\nstudent eventually did, whereupon Avery was convinced and started the\nresearch program which, in 15 or so years, produced the famous discovery\n(Avery, MacLeod, and McCarty, JEM 1944).\n-- \nMark A. Fulk\t\t\tUniversity of Rochester\nComputer Science Department\tfulk@cs.rochester.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10973, "properties": {"category": "sci.crypt", "text": "From: jhart@agora.rain.com (Jim Hart)\nSubject: Screw the people, crypto is for hard-core hackers & spooks only\nSummary: (We need privacy chips for phones, not computer-bound station)_\nArticle-I.D.: agora.C5qy3M.DE3\nOrganization: Open Communications Forum\nLines: 48\n\nSince the wiretap chip is being distributed internationally,\nallowing the U.S. government to spy on foreign governments,\ncompanies and people as as well as to wiretap domestic citizens,\nthis is a world-wide issue.  Please put DISTRIBUTION: WORLD on the \nDistrubution: line.  Thank you.\n\nygoland@wright.seas.ucla.edu (The Jester) writes:\n\n>However assuming that I can still encrypt things as I please, who\n>cares about the clipper chip? \n\nYou don't care that people are being lied to, fooled into believing\nthe chip gives \"privacy\" when it fact it allows wiretaps?  You\ndon't give a shit about anybody's privacy except your own?  (And\nnot even your own; are you so smart that you know when you're talking to\nsomebody who has a wiretap chip on their phone instead of a privacy\nchip with private keys?)\n\n>attitude that everyone else should have. Instead of worrying about a\n>clipper chip, simply connect your handset to your computer and feed\n>the voice single through, process, encrypt, and transmit over the\n>phone. The guy on the other hand then does the same in reverse.\n\n\"Simply?\" \"Everyone\" should have this attitude?   The only people\nwho can have this attitude are the most hard-core\ncomputer hackers, who never make phone calls away from their\ncomputer, who apparently never call anybody except another computer \nhacker, or perhaps another spook (U.S. classified agents refuse to use\ntheir own system, only oblivious civilian dupes get that dubious privilege).\nOnly spooks and hard-core hackers need privacy, huh?\n\nWe *do* need an alternative to NSA-bugged telephones, but\nwe're talking inexpensive *telephones* here, including hand-sized\ncellulars, that need strong crypto, real privacy.  Make-shift\ncomputer hacker rigs that require living by your computer to\ntalk privately over the phone are just a dumb stunt that doesn't \ndo anything for anybody's privacy in the real world.  \n\nWhat we need is a true *privacy chip*.  For example, a real-time \nvoice-encryption RSA, put it into a silicon compiler and spit out ASIC.  \nPut this chip on the market as a de facto standard for international \nbusiness, diplomats, and private communications.  If the U.S. bans \nit, we make it somewhere else and import it.  The Japanese, German,\nDutch, Taiwanese, Korean, etc. electronics companies don't want the \nNSA spying on them.  U.S. workers lose more jobs to government fascist\nstupidity.\n\njhart@agora.rain.com\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10974, "properties": {"category": "talk.politics.misc", "text": "From: hallam@dscomsa.desy.de (Phill Hallam-Baker)\nSubject: Re: The Tories could win the \"lottery\"...Clinton GST?\nLines: 42\nReply-To: hallam@zeus02.desy.de\nOrganization: DESYDeutsches Elektronen Synchrotron, Experiment ZEUS bei HERA\n\n\nIn article <1993Apr15.053553.16427@news.columbia.edu>, gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n\n|>cmk@world.std.com (Charles M Kozierok) writes:\n|>>gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n|>>} \n|>>} Secondly, any Canadian who has worked and participates in the\n|>>} insurance (it's a negative option, you have to explicitly decline\n|>>} it) knows that the premium is deducted separately ...\n|>>\n|>>yes, and some Americans actually have a problem with having more\n|>>of their money taken from them to pay for others' health care...\n|>\n|>But note again, the Canadian and German health insurance is voluntary\n\nNot true. I am required to have insurance by law. the method of collection\neffectively makes it a tax.\n\n\n|>... but like \"basic plus\" cable, you have to tell them that you don't\n|>want it ... for example, Hutterite colonies in western Canada are not\n|>part of it (Mennon and Hutter were fundamentalist Protestants from\n|>Germany whose followers left for the New World ... Mennonites are a\n|>very diverse lot while Hutterites are similiar to the Amish).  The\n|>American idea being floated today gives you no option but to live\n|>off the land ...\n|>\n|>>the selfish bastards that they are. unfortunately, that number has\n|>>diminished recently, but once President Pinocchio gets through\n|>>with us, i hope for a reversal of trend.\n\nWell here we have the right hoping for more selfish bastards. Pity they\ndon't look at what 12 years of the Regan/Bush \"selfish Bastard\" ecconomy\nhas done to the country.\n\nElect a selfish bastard government and they will run the country for themselves,\nthats why they are selfish bastards. Bush and Regan gave tax breaks for the\nultra rich and paid for them by borrowing against the incomes of the middle\nclass.\n\n\nPhill Hallam-Baker\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10975, "properties": {"category": "talk.politics.guns", "text": "From: ron@hpfcso.FC.HP.COM (Ron Miller)\nSubject: Re: Waco, they did it.    ( MASADA )\nOrganization: Hewlett-Packard, Fort Collins, CO, USA\nLines: 8\n\nRe: Flaming wreckage\n\nI wrote my congressmen strongly worded letters demanding they dissolve the\nBATF.\n\nPerhaps anger and grief can help spur a letter writing campaign?\n\nRon Miller\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10976, "properties": {"category": "talk.politics.guns", "text": "Subject: Re: Cop kills teenager\nFrom: kim39@scws8.harvard.edu (John Kim)\nOrganization: Harvard University Science Center\nKeywords: handgun mace pepper-spray taser tasp phaser\nNntp-Posting-Host: scws8.harvard.edu\nLines: 43\n\n.ACNS.ColoState.EDU> holland@CS.ColoState.EDU (douglas craig holland) writes:\n>\tSUSPENDED POLICE OFFICER ARRESTED IN REVENGE TRIPLE HOMICIDE\n>\n>PROVIDENCE, R.I. (AP) -- A police officer afraid he would be fired for\n>allegedly assaulting a teen-ager walked into an auto body shop wher the youth\n>worked, said \"You're going to die\" and fatally shot him and two others, police\n>said.\n>A fourth youth was wounded.  A fifth escaped injury by hiding under a car.\n>Suspended police officer Robert Sabetta, 23, of Cranston, was arrested at\n>gunpoint over three hours after the shooting at Wilson's Auto Enterprises in\n>Foster, a rural town of about 4,000 people in northwest Rhode Island.\n>\t\t\t\t\t\tDoug Holland\n>\n\tI think I have updated info on this.  My understandingis that\nformer officer Cranston approached a teenager who was being questioned\nby another officer.   Officer Cranston struck Teenager A in the head\nwith a heavy police flashlight, causing a significant, though not\nlife-threatening.  THere is no evidence that Teenager A was\ndoing anything threatening at the time.  Teenager A was released\non bail/recognizance and filed a formal complaint against Officer\nCranston.  The Police Chief suspended Cranston pending an \ninvestigation into the use of excessive force.  \n\tThe above is pretty clear... but what seems to have \nhappened is this.  The Chief requested Cranston's gun, but Cranston\nrefused to turn it over until the Chief went the Cranston's home\n to get it.  Sources said Cranston had always wanted to be\na cop and was very afraid of loosing his job because of the complaint\nagainst him.\n\tA few days afterward, Cranston allegedly walked into \nWilson's Garage, where Teenager A and friends were known to\nhang out and work on cars as a hobby.  Cranston fatally shot\nTeenager A as well as TEenagers B and C.  Teenager D was shot once\nin the shoulder/chest.  Teenager E was working under the car\nand was not noticed by Officer Cranston.  Teenager D went to a home\nand summoned police, who went to Wilson's Garage and found the \n3 corpses and one unscathed survivor.\n\n\tA few days after his arrest, Officer Cranston attemped\nto commit suicide in his cell.\n-Case Kim\n\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10977, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: theroo@med.unc.edu (Bron D. Skinner Ph.D.)\nSubject: Re: Why is my mouse so JUMPY? (MS MOUSE)\nNntp-Posting-Host: pelham.med.unc.edu\nOrganization: UNC-CH School of Medicine\nLines: 33\n\nIn article <1993Apr23.140123.5018@cti.com> rlister@cti.com (Russell Lister) writes:\n>ecktons@ucs.byu.edu (Sean Eckton) writes:\n>\n>>I have a Microsoft Serial Mouse and am using mouse.com 8.00 (was using 8.20 \n>>I think, but switched to 8.00 to see if it was any better).  Vertical motion \n>>is nice and smooth, but horizontal motion is so bad I sometimes can't click \n>>on something because my mouse jumps around.  I can be moving the mouse to \n>>the right with relatively uniform motion and the mouse will move smoothly \n>>for a bit, then jump to the right, then move smoothly for a bit then jump \n>>again (maybe this time to the left about .5 inch!).  This is crazy!  I have \n>>never had so much trouble with a mouse before.  Anyone have any solutions?  \n>\n>>Does Microsoft think they are what everyone should be? <- just venting steam!\n>\n>  I had the same problem.  At first, I thought it was the video driver and \n>  made sure I had the most current drivers, because the problem was most\n>  evident at SVGA resolution modes.  It didn't help and after a bit of\n>  experimentation, determined that the problem existed in standard VGA\n>  resolution mode. It was just much less noticeable.\n>  \n>  My mouse was an older MS serial version I bought second hand in 1990. It\n>  worked just fine in DOS and DOS based graphic applications.  On the \n>  guess that the problem was with the resolution of the mouse, I borrowed\n>  a new mouse (a MS bus model) and tried it.  That solved the problem.\n>  So, if your mouse is old, you may want to try replacing it for a newer\n>  one.\n>  \n\nAnother alternative is to clean the mouse you've got.  Sometimes the\nrollers inside the mouse pick up a ball of lint or other debris.  Open the\nbottom of the mouse, take out the ball and use some alcohol on a Q-tip to\nclean it out.  Inspect the inside for any hairs or fuzz.  I have had my\nmouse get real jumpy and cleared up the problem with this procedure.\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10978, "properties": {"category": "rec.motorcycles", "text": "From: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nSubject: Traffic morons\nReply-To: ryan_cousineau@compdyn.questor.org (Ryan Cousineau) \nDistribution: world\nOrganization: Computer Dynamics-Vancouver B.C.-(604)986-9937 (604)255-9937\nLines: 36\n\nNMM>From: nielsmm@imv.aau.dk (Niels Mikkel Michelsen)\nNMM>Subject: How to act in front of traffic jerks\n\nNMM>The other day, it was raining cats and dogs, therefor I was going only to\nNMM>the speed limit, on nothing more, on my bike. This guy in his BMW was\nNMM>driving 1-2 meters behind me for 7-800 meters and at the next red light I\nNMM>calmly put the bike on its leg, walked back to this car, he rolled down the\nNMM>window, and I told him he was a total idiot (and the reason why).\n\nNMM>Did I do the right thing?\n\nNMM>Yours Truly :\n\nNMM>                                  Niels Mikkel\n\nWell, sounds great to me! When I have a real BDI cager tailgating me,\nI've found that an effective strategy is to flash my brake light by\npumping the pedal. You will, obviously need a bit of free play in your\nbrake pedal to do this. It seems that even the most brain dead idiot can\nusually discern that a flashing red light directly in front of\nhim/her/it may mean that something is wrong.\n\nThe two problems I'd see with your strategy is that the red light may\nchange before you can get anything meaningful out of your mouth, or the\noccupant(s) may take exception to your opinions and demonstrate such\nphysically (on you or your now-parked bike). Admittedly, the latter is a\nslim chance, but it would be enough to give me pause.\n\n\n * SLMR 2.1a * sometimes you get to be the windshield, sometimes the bug\n                \n----\n+===============================================================+\n|COMPUTER DYNAMICS BBS    604-255-9937(HST)    604-986-9937(V32)|\n|Vancouver, BC, Canada -  Easy Access, Low Rates, Friendly Sysop|\n+===============================================================+\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10979, "properties": {"category": "misc.forsale", "text": "From: teskey@plains.NoDak.edu (Dr. Snake Voivod)\nSubject: OS/2 2.0 & Extended Services For SALE ***CHEAP***\nArticle-I.D.: ns1.C5sMIp.n1C\nOrganization: North Dakota Higher Education Computing Network\nLines: 27\nNntp-Posting-Host: plains.nodak.edu\n\nFor Sale:\n\nOS/2 2.0 Extended Services -\n\n        * Extended Database support\n        * Extended Networking Support\n        * Remote Host support\n        * Extended Communication Support\n\nPLUS! A copy of OS/2 2.0.  The ES package is brand new and uninstalled, all\nmanuals, disks, etc. are included.  The ES package retails for $495 with OS/2\n2.0 selling for $79 or something like that.\n\nI'll let both of them go for $200.  My needs changed thus eliminating my\nneed for the package once I bought it.\n\nIf Interested, please Email me at:\n\nMark Teskey\nteskey@plains.nodak.edu\n============================================================================\nMark W. Teskey                            \n                                                                o/\nINTERNET:                  teskey@plains.nodak.edu\t       <|   stayin'\nUUCP:                      ...!uunet!plains!teskey\t       / >  alive!\n============================================================================\n-- Hi! I am a .signature virus. Copy me into your .signature to join in! --\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.518+0000", "event": "documents", "entityId": 10980, "properties": {"category": "misc.forsale", "text": "From: xanadu@seanews.akita.com (Dan Scherer)\nSubject: PS/2 Stuff\nOrganization: SEANEWS - Seattle Public Access News + Mail\nLines: 30\n\nMisc. P2/2 Stuff!\n\n CARDS: (Micro Channel)\n  (6) Arcnet, Coax, 83X9648. Net Cards.\n  (3) Serial Adapter. P/N: 90X8459\n  (2) Parallel Adapters. P/N: 72X6753\n  (2) CoProcessor?? P/N: 83X7488\n  (2) Memory Expansion Option. P/N: 90X9507\n  Expanded Memory Adapter w/2Mb. P/N: 61X6752\n  Expanded memory Adapter, 0k, P/N: 90X8799\n  Alloy FTC500/MCA Tape adapter.\n\n DRIVES: (Hard & Floppy)\n  30 Mb HDD, P/N: 90X9403  Model WD-336R\n  60 Mb HDD, P/N: 6128282, Model WD-387T\n  1.44 FDD, P/N: 15F7503, EC #A79541\n  1.44 FDD, P/N: 15F7503, EC #88086\n\n This is what I have aquired over the past few years in PS/2 \ncomponents...\n I have posted the part #'s, so if you have any questions as to what a\n component is, you can call IBM and find out! (I have no idea!!!)\n Make me an offer! Trades welcome!\n   Dan Scherer\n   (206) 453-5215 Voice\n   (206) 996-8350 Pager\n\n--\n[] SEANEWS [] Seattle Public Access Usenet News + Mail [] +1 206 747 NEWS []\nxanadu@seanews.akita.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10981, "properties": {"category": "talk.politics.guns", "text": "From: bixledn@eng.auburn.edu (David N. Bixler)\nSubject: Re: My Gun is like my American Express Car\nNntp-Posting-Host: liberator.eng.auburn.edu\nReply-To: bixledn@eng.auburn.edu\nOrganization: Auburn University Engineering\nLines: 36\n\nIn article 27322@CSD-NewsHost.Stanford.EDU, andy@SAIL.Stanford.EDU (Andy Freeman) writes:\n> In article <93104.231049U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n> >All your points are very well taken and things that I haven't considered as\n> >I am not really familiar enough with handguns.\n> \n> That's not all that Kratz doesn't know.\n> \n> >Hell, a Glock is the last thing that should be switched to.  The only thing\n> >that I know about a Glock is the lack of a real safety on it.  Sure there is\n> >that little thing in the trigger but that isn't too great of a safety.\n> \n> Now we know that Kratz doesn't understand what a safety is supposed to\n> do.  (He also confuses \"things he can see\" with \"things that exist\";\n> Glocks have multiple safeties even though only one is visible from the\n> outside.)\n> \n> A safety is supposed to keep the gun from going off UNLESS that's\n> what the user wants.  With Glocks, one says \"I want the gun to go\n> off\" by pulling the trigger.  If the safeties it has make that work,\n> it has a \"real\" safety, no matter what Kratz thinks.\n> \n> -andy\n> --\n\n\n   I agree very much.  I have read almost every article written about\n   the Glock, and IMO, it is probably the safest auto-loader made.  It\n   has the best safty of all, Jeff Cooper's First Rule, \"Keep your finger\n   OFF the trigger until you want to shoot.\"  If everyone just observed\n   this, there would be fewer \"accidents\".\n\n   David N. Bixler\n   Auburn University\n\n   Standard Disclaimers apply.\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10982, "properties": {"category": "comp.windows.x", "text": "From: dbl@visual.com (David B. Lewis)\nSubject: comp.windows.x Frequently Asked Questions (FAQ) 3/5\nSummary: useful information about the X Window System\nReply-To: faq%craft@uunet.uu.net (X FAQ maintenance address)\nOrganization: VISUAL, Inc.\nExpires: Sun, 2 May 1993 00:00:00 GMT\nLines: 998\n\nArchive-name: x-faq/part3\nLast-modified: 1993/04/04\n\n----------------------------------------------------------------------\nSubject:  58)! Where can I get patches to X11R5?\n\n\tThe release of new public patches by the MIT X Consortium is announced\nin the comp.windows.x.announce newsgroup.\n\n\tPatches themselves are available via ftp from export and from other\nsites from which X11 is available. They are now also distributed through the \nnewsgroup comp.sources.x. Some source re-sellers may be including patches in \ntheir source distributions of X11.\n\n\tPeople without ftp access can use the xstuff mail server. It now has \n23 patches for X11R5 [3/93].  Send to xstuff@expo.lcs.mit.edu the Subject line\n\t\tsend fixes #\nwhere # is the name of the patch and is usually just the number of the patch.\n\n\tHere are a few complications:\n\t1) fix 5 is in four parts; you need to request \"5a\", \"5b\", \"5c\" and \n\"5d\" separately\n\t2) the file sunGX.uu, which was part of an earlier patch, was \nre-released with patch 7 [note: the file doesn't work with Solaris]\n\t3) fix 8 is in two parts: \"8a\" and \"8b\"\n\t4) fix 13 is in three parts: \"13a\", \"13b\", and \"13c\"\n\t5) fix 16 is in two parts: \"16a\" and \"16b\"\n\t6) fix 18 replaces the R5fix-test1 for the X Test Suite, which \npreviously was optional\n\t7) fix 19 also needs PEXlib.tar.Z, which you can obtain from xstuff\nby asking for \"PEXlib.uu.[1234]\".\n\t8) fix 22 is in 9 parts, \"22a\" through \"22i\"\n\n----------------------------------------------------------------------\nSubject:  59)  What is the xstuff mail-archive?\n\n\tThe xstuff server is a mail-response program. That means that you mail \nit a request, and it mails back the response.\n\tAny of the four possible commands must be the first word on a line. The\nxstuff server reads your entire message before it does anything, so you can \nhave several different commands in a single message (unless you ask for help). \nThe xstuff server treats the \"Subject:\" header line just like any other line \nof the message.\n\tThe archives are organized into a series of directories and \nsubdirectories.  Each directory has an index, and each subdirectory has an \nindex. The top-level index gives you an overview of what is in the \nsubdirectories, and the index for each subdirectory tells you what is in it.\n\n\t1) The command \"help\" or \"send help\" causes the server to send you a \nmore detailed version of this help file.\n\t2) if your message contains a line whose first word is \"index\", then \nthe server will send you the top-level index of the contents of the archive. If\nthere are other words on that line that match the name of subdirectories, then \nthe indexes for those subdirectories are sent instead of the top-level index. \nFor example, you can say \"send index fixes\" (or \"index fixes\"). A message that \nrequests an index cannot request data.\n\t3) if your message contains a line whose first word is \"send\", then the\nxstuff server will send you the item(s) named on the rest of the line. To name \nan item, you give its directory and its name. For example\n                send fixes 1 4 8a 8b 9\n\tYou may issue multiple send requests. The xstuff server contains many \nsafeguards to ensure that it is not monopolized by people asking for large \namounts of data. The mailer is set up so that it will send no more than a fixed\namount of data each day. If the work queue contains more requests than the \nday's quota, then the unsent files will not be processed until the next day. \nWhenever the mailer is run to send its day's quota, it sends the requests out \nshortest-first.\n\t4) Some mailers produce mail headers that are unusable for extracting \nreturn addresses.  If you use such a mailer, you won't get any response.  If \nyou happen to know an explicit path, you can include a line like\n        path foo%bar.bitnet@mitvma.mit.edu\nor\n        path bar!foo!frotz\nin the body of your message, and the daemon will use it.\n\n\tThe xstuff server itself can be reached at xstuff@expo.lcs.mit.edu. If \nyour mailer deals in \"!\" notation, try sending to \n{someplace}!mit-eddie!expo.lcs.mit.edu!xstuff.\n\n[based on information from the MIT X Consortium, 8/89, 4/90.]\n\n----------------------------------------------------------------------\nSubject:  60)! Where can I get X11R4 (source and binaries)?\n\n\tIntegrated Computer Solutions, Inc., ships X11R4 on half-inch, \nquarter-inch, and TK50 formats. Call 617-621-0060 for ordering information.\n\n\tThe Free Software Foundation (617-876-3296) sells X11R4 on half-inch \ntapes and on QIC-24 cartridges.  \n\n\tYaser Doleh (doleh@math-cs.kent.EDU; P.O. Box 1301, Kent, OH 44240) is\nmaking X11R4 available on HP format tapes, 16 track, and Sun cartridges. [2/90]\n\n\tEuropean sites can obtain a free X11R4 distribution from Jamie Watson,\nwho may be reached at chx400!pan!jw or jw@pan.uu.ch. [10/90]\n\n\tNon Standard Logics (+33 (1) 43 36 77 50; requests@nsl.fr) makes source\navailable.\n\n\tIXI Limited (+44 223 462 131) is selling X11R4 source on quarter-inch \ncartridge formats and on 5.25\" and 3.5\" floppy, with other formats available on\nrequest. [IXI, 2/90]\n\n\tVirtual Technologies (703-430-9247) provides the entire X11R4 \ncompressed source release on a single QIC-24 quarter-inch cartridge and also on\n1.2meg or 1.44 meg floppies upon request. [Conor Cahill \n(cpcahil@virtech.uu.net) 2/90]\n\n\tYoung Minds (714-335-1350) makes the R4 and GNU distributions available\non a full-text-indexed CD-ROM.\n\n[Note that some distributions are media-only and do not include docs.]\n\n\tX11R4 is ftp-able from export.lcs.mit.edu; these sites are preferable, \nthough, and are more direct:\n\n                        Machine                  Internet      FTP\n    Location            Name                     Address       Directory\n    --------            -------                  --------      -------------\n(1) West USA            gatekeeper.dec.com       16.1.0.2      pub/X11/R4\n    Central USA         mordred.cs.purdue.edu    128.10.2.2    pub/X11/R4\n(2) Central USA         giza.cis.ohio-state.edu  128.146.8.61  pub/X.V11R4\n    Southeast USA       uunet.uu.net             192.48.96.2   X/R4\n(3) Northeast USA       crl.dec.com              192.58.206.2  pub/X11/R4\n(4) UK Janet            src.doc.ic.ac.uk         129.31.81.36  X.V11R4\n    UK niftp            uk.ac.ic.doc.src                       <XV11R4>\n(5) Australia           munnari.oz.au            128.250.1.21  X.V11/R4\n\nThe giza.cis.ohio-state.edu site, in particular, is known to have much of the\ncontrib stuff that can be found on export. \n\nThe release is available to DEC Easynet sites as CRL::\"/pub/X11/R4\".\n\nSites in Australia may contact this address: ftp.Adelaide.EDU.AU [129.127.40.3]\nand check the directory pub/X/R4. The machine shadows export and archives\ncomp.sources.x. (Mark Prior, mrp@ucs.adelaide.edu.au, 5/90)\n\nNote: a much more complete list is distributed as part of the introductory \npostings to comp.sources.x.\n\nA set of X11R4 binaries built by Tom Roell (roell@informatik.tu-muenchen.de) \nfor the 386/ix will available from export.lcs.mit.edu in /contrib and in \n/pub/i386/X11R4 from 131.159.8.35 in Europe. Stephen Hite \n(shite@sinkhole.unf.edu) can also distribute to folks without ftp facilities \nvia disks sent SASE; contact him for USmail and shipping details. [12/90] In \naddition, the binaries are available via uucp from szebra [1-408-739-1520, TB+ \n(PEP); ogin:nuucp sword:nuucp] in /usr2/xbbs/bbs/x.  In addition, the source is\non zok in /usrX/i386.R4server/. [2/91] In addition, if you are in the US, the \nlatest SVR4 binary (April 15), patches, and fonts are available on \npiggy.ucsb.edu (128.111.72.50) in the directory /pub/X386, same filenames as \nabove. (Please use after 6pm Pacific, as these are large files.) [5/91]\n\nA set of HP 9000/800 binaries is available on hpcvaaz.cv.hp.com (15.255.72.15)\nas ~ftp/pub/MitX11R4/libs.x800.Z. [2/91]\n\nA set of X11R4 binaries for the NeXT 2.x have been made available by Howie Kaye\non cunixf.cc.columbia.edu\n\nA set of binaries by John Coolidge (coolidge@cs.uiuc.edu) for the Mac running \nA/UX 2.0 is available from wuarchive.wustl.edu in the file\n(/archive/systems/aux/X11R4/Xupdate2.tar.Z). Also in X11R4/diffs is a set of \npatches for making X11R4 with shared libraries with mkshlib.\n\nA complete distribution of SCO X11R4 binaries by Baruch Cochavy \n(blue@techunix.technion.ac.il) can be found on uunet. The server is Roell's \nX386 1.1b, compiled for ET4000 based SVGA boards.\n\n----------------------------------------------------------------------\nSubject:  61)  Where can I get OSF/Motif?\n\t\n\tYou can obtain either OSF/Motif source or binaries from a number of \nvendors. \n\tMotif 1.2.2 source is now available; it is based on X11R5.\n\tMotif 1.1 is based on the R4.18 Intrinsics and is currently [7/92] at \n1.1.5.\n\tAn OSF/Motif source license must be obtained from OSF before source can\nbe obtained from the Open Software Foundation or any value-added vendor for\nany version. Call the Direct Channels Desk at OSF at 617-621-7300 for ordering \ninformation.\n\tVarious hardware vendors produce developer's toolkits of binaries, \nheader files, and documentation; check your hardware vendor, particularly if\nthat vendor is an OSF member. \n\tIn addition, independent binary vendors produce Motif toolkits for\nmachines for which Motif is not supported by a vendor; the kits include varied \nlevels of bug-fixing and support for shared libraries and are based on widely\ndivergent version of Motif:\n\tQuest (408-988-8880) sells kits for Suns, as well; \n\tIXI (+44 223 462 131) offers kits for Sun3 and Sun4. \n\tNSL (+33 (1) 43 36 77 50; requests@nsl.fr) offers kits for the Sun 3 \nand Sun 4.\n\tBluestone Consulting makes a kit for Sun systems.\n\tICS (617-62-0060) makes several binary kits, notably for Sun, DEC.\n\tHP and DEC have announced support for Motif on Sun systems.\n\tUnipalm (+44-954-211-797) currently offers for Sun systems a Motif \nDevelopment Kit including X11R4 and based on Motif 1.1.2. The US distributor is\nExpert Object Corp (708-926-8500).\n\tBIM ships Motif 1.1 binaries for Suns. Shared library support is \nincluded. Contact Alain Vermeiren (av@sunbim.be) or Danny Backx (db@sunbim.be) \nat +32(2)759.59.25 (Fax : +32(2)759.47.95) (Belgium).\n\tSILOGIC (+33 61.57.95.95) ships Motif 1.2 and Motif 1.1 on Sun \nmachines.\n\tS.I. Systems offers Motif 1.2 for Solaris 2.1; info: 1-800-755-8649 in\nUSA and Canada.\n\tMetro Link Inc. (305-970-7353, sales@metrolink.com; in Europe contact\nADNT, (33 1) 3956 5333, UniVision (UK) Ltd. (44) 628 82 22 81) ships an \nimplementation of X11R4 and Motif 1.1.2 (including a shared-library \nimplementation of libXm.a) for the 386/486 Unix market.  Motif 1.1.2 is \nalso available for Sun Sparc based workstations. It has also announced \nMotif 1.2 for Solaris systems.\n\n----------------------------------------------------------------------\nSubject:  62)  Does Motif work with X11R4? X11R5?\n\n\tMotif 1.2 is based on X11R5.\n\tMotif 1.1, available in source form from OSF as of August 1990, uses \nthe \"vanilla\" X11R4 Intrinsics, where \"vanilla\" means \"with just a few \npatches\"; the file fix-osf which OSF distributes is obsoleted by MIT's patches \n15-17.  The file fix-osf-1.1.1 distributed with the 1.1.1 version or its \nsubsequent modification needs to be applied after MIT fix-18, though.\n\n\tMotif 1.1.1 to 1.1.3 will work with X11R5 if X11R5 is compiled with\n-DMOTIFBC; 1.1.4 and later should work with the vanilla R5, although there are \nsome known new geometry-management problems.\n\t\n----------------------------------------------------------------------\nSubject:  63)  Where can I get toolkits implementing OPEN LOOK?\n\n\tSun's XView has a SunView-style API. A version is on the X11R4 tape;\nthe latest [2/92] 3.0 sources are on export in contrib/xview3/.\n\tXView and X binaries for the Sun 386i (\"roadrunner\") are available for \nftp from svin01.win.tue.nl (131.155.70.70), directory pub/X11R4_386i.\n\tSupported binaries of XView 2.0 or 3.0 include: \n\nXView for non-Sun Platforms  (domestic and selected international vendors).\nSeveral are also available from Sun; contact your local sales office.\n\nAmiga\t\tGfxBase, Inc.\t\t1881 Ellwell Drive\n(AmigaDOS)\t(408) 262-1469\t\tMilpitas, CA 95035\n\t\tFax: (408) 262-8276\n\nSGI\nSony (NEWS-OS)\nIBM RS/6000\nHP 9000\nDECstation\tUniPress Software\t2025 Lincoln Highway\n(Ultrix)\t(908) 985-8000\t\tEdison, NJ 08817\n\t\tFax: (908) 287-4929\n\n\t\tUniPress Software, Ltd.\t\tPO Box 70\n\t\t44-624-661-8850\t\t\tViking House\n\t\tFax: 44-624-663-453\t\tNelson Street\n\t\t\t\t\t\tDouglas, Isle of Man\n\t\t\t\t\t\tUnited Kingdom\n\nDEC VAXstation\tTGV\t\t\t603 Mission Street\n(VMS)\t\t(800) TGV-3440\t\tSanta Cruz, CA 95060\n\t\t(408) 427-4366\n\t\tFax: (408) 427-4365\n\n\t\tUnipalm Ltd.\t\t\t145-147 St. Neots Road\n\t\t44-0954-211797\t\t\tHardwick\n\t\tFax: 44-0954-211244\t\tCambridge CB3 7QJ\n\t\t\t\t\t\tEngland\n\nIntel 386\tQuarterdeck Office\t150 Pico Boulevard\n(DOS)\t\tSystems\t\t\tSanta Monica, CA 90405\n\t\t(213) 392-9851\n\t\tFax: (213) 399-3802\n\nIntel 386\tSunSoft Corporation\t6601 Center Drive West\n(Interactive\t310-348-8649\t\tSuite 700\n UNIX and\t\t\t\tLos Angeles, CA  90045\n SCO UNIX)\t\n\nStardent\tScripps Institute\tClinic MB-5\n(Stellix OS\tFax: (619) 554-4485\t10666 N. Torrey Pines Road\n and Titan OS)\tInclude mailstop MB-5\tLa Jolla, CA 92057\n\t\tBy ftp: 192.42.82.8 in pub/binary/{Xview.README,XView.tar.Z}\n\n\tAT&T's OPEN LOOK GUI 3.0 Xt-based toolkit is now generally available \n[2/92]; contact 1-800-828-UNIX#544 for information. Binaries are produced\nfor SPARC systems by International Quest Corporation (408-988-8289). A version\nof the toolkit is also produced under the name OLIT by Sun. \n\tMore recent versions of OLIT have been ported to IBM 6000 and DEC MIPS \nby both UniPress and ICS. OLIT is also available for HP from Melillo Consulting\n(908-873-0075). MJM (Somerset, NJ) makes OLIT 4.0 for HP 7xx series running\nHPUX 8.0, DECstations, and RS/6000s [thanks to Joanne Newbauer, \njo@attunix.att.com, 908-522-6677.]\n\n\tSun is shipping OpenWindows 3.0; contact your local sales \nrepresentative for more details; the package includes toolkit binaries and \nheader files.\n\n\tParcPlace's (formerly Solbourne's) extensible C++-based Object \nInterface Library, which supports run-time selection between Open Look or \nMotif, is available from 303-678-4626. [5/92]\n\n----------------------------------------------------------------------\nSubject:  64)! Where can I get other X sources? (including R5 modifications)\n\n\tThe MIT Software Center ships the X Test Suite on tape.\n\n\tA multi-threaded version of Xlib based on X11R5 patch 12 is now \navailable for anonymous FTP from (new version 1/93):\n        DEC on gatekeeper.dec.com (16.1.0.2) in /pub/X11/contrib/mt-xlib-1.1\n        MIT on export.lcs.mit.edu (18.24.0.12) in /contrib/mt-xlib-1.1\n\n\tHP has made available drivers to permit the building of the X11R5\nsample server on the HP 9000 Series 700 workstations; the files are on\nexport.lcs.mit.edu in ~ftp/contrib/R5.HP.SRV. [8/92]\n\n\tUser-contributed software is distributed through the newsgroup\ncomp.sources.x, moderated by Chris Olson (chris@imd.sterling.com); also check \nthat group for posting information.\n\n\tRichard Hesketh (rlh2@ukc.ac.uk) has been creating a list of freely-\navailable X sources.  The list is stored on export.lcs.mit.edu in contrib as\nx-source-list.Z. It lists the main storage locations for the program and \ninternational sites from which it may be ftp'ed.\n\n\tThe machine export.lcs.mit.edu has a great deal of user-contributed\nsoftware in the contrib/ directory; a good deal of it is present in current or \nearlier versions on the X11R3, X11R4, and X11R5 contrib tapes. There are also\ndirectories for fixes to contrib software.  The file on export in\ncontrib/00-index.txt is a quick overall index of the software in that area,\nprovided by Daniel Lewart (d-lewart@uiuc.edu).\n\n\tThese sites used to and may still mirror export and are of particular \nuse for Australasia: Anonymous ftp: ftp.Adelaide.EDU.AU; ACSnet Fetchfile: \nsirius.ua.oz.\n\n\tThe material on giza.cis.ohio-state.edu, which tends to duplicate \nthe export archives, is also available via anonymous UUCP from osu-cis, at TB+ \nand V.32 speeds.  Write to uucp@cis.ohio-state.edu (same as osu-cis!uucp) for \ninstructions. [the archive is now maintained by Karl Kleinpaste]\n\n\tA new west-coast UUCP X11 Archive is administered by Mark Snitily \n(mark@zok.uucp) and contains the full X11 distribution, the XTEST\ndistribution, an entire archive of comp.sources.x and other goodies.\n\tThe machine zok has a TB+ modem which will connect to 19.2K, 2400, \n1200 baud (in that order).  The anonymous UUCP account is UXarch with password \nXgoodies.  The modem's phone number is 408-996-8285.\n\tA sample Systems (or L.sys) entry might be:\n   \t\tzok Any ACU 19200 4089968285 in:--in: UXarch word: Xgoodies\n\tTo get a current listing of the files that are available, download\nthe file \"/usrX/ls-lR.Z\".\n\tA full subject index of the comp.sources.x files is available in the\nfile \"/usrX/comp.sources.x/INDEX\".\n\tThe machine has just the one modem, so please do not fetch large \namounts of data at one sitting.\n[courtesy Mark Snitily, 2/90]\n\nIn addition, UUNET Source Archives (703-876-5050) tracks comp.sources.x and \nprovides 800MB+ of compressed programs on 6250 bpi tapes or 1/4\" tapes.  It \nalso mirrors export/contrib in its packages/X directory.\n\t\n----------------------------------------------------------------------\nSubject:  65)! Where can I get interesting widgets?\n\n\tThe Free Widget Foundation (FWF) library sponsored by Brian Totty \n(totty@cs.uiuc.edu) is now [2/93] available on a.cs.uiuc.edu (128.174.252.1) \nin pub/fwf-v3.41.shar.Z. The set of widgets there is intended to form the basis\nfor future contributions. To be added to the discussion list, send to\nlistserv@cs.uiuc.edu a message saying \"subscribe <listname> <your-full-name>\"\nwhere <listname> is one of free-widgets-announce, free-widgets-development, or \nfree-widgets-bugs.  Version 3.4 is current; look for 4.0 in 4/93.\n\tThe Xew widget set contains widgets for data representation.  Version \n1.2 [4/93] is on export contrib/Xew-1.2.tar.Z.\n\tPeter Ware's Xo \"Open Widget\" set, which has Motif-like functionality, \nis on archive.cis.ohio-state.edu as pub/Xo/Xo-2.1.tar.Z [8/92].\n\tThe AthenaTools Plotter Widget Set Version 6-beta [7/92] maintained by\nPeter Klingebiel (klin@iat.uni-paderborn.de) includes many graph and plotting \nwidgets; a copy is on export in plotter.v6b.tar.Z, plotter.doc.tar.Z,\nplotter.afm.tar.Z, and plotter.README. The latest versions may in fact be on\nftp@uni-paderborn.de (131.234.2.32) in /unix/tools.\n\tAn advance version of Marc Quinton's Motif port of the FWF MultiList \nwidget is in ftp.stna7.stna.dgac.fr:pub/MultiList.tar.Z [143.196.9.31].\n\tAdditional widgets are available on the contrib/ portion of the X11R4\ntapes; these include the Xcu set.\n\tPaul Johnston's (johnston@spc5.jpl.nasa.gov) X Control Panel widget set\nemulates hardware counterparts; sources are on export.lcs.mit.edu in \nXc-1.3.tar.Z.\n\tO'Reilly Volume 4, Doug Young's book, the Asente/Swick book, and Jerry \nSmith's \"Object-oriented Programming with the X Window System Toolkits\" all \ninclude details on writing widgets and include several useful widgets; sources \nare typically on export and/or UUNET. \n\tThe Dirt interface builder includes the libXukc widet set which extends\nthe functionality of Xaw. \n\tA graph widget and other 2D-plot and 3D-contour widgets by Sundar \nNarasimhan (sundar@ai.mit.edu) are available from ftp.ai.mit.edu as\n/com/ftp/pub/users/sundar/graph.tar.Z. The graph widget has been updated [3/91]\nwith documentation and histogram capabilities.\n\tA graph widget is available from ftp.stna7.stna.dgac.fr in\npub/Graph.tar.Z; it uses a segment list for drawing and hence supports a zoom\noperation.\n\tKen Lee's Xm widget (demo) that uses Display PostScript to draw labels \nat a non-horizontal angle is on export in contrib/dpslabel.tar.Z.\n\tThe Table widget (works like troff TBL tables) is available in several\nflavors, one of which is with the Widget Creation Library release.\n\tBell Communications Research has developed a Matrix widget for complex\napplication layouts; it's on export in contrib/Xbae-widgets-3.8.tar.Z [2/93. \nThe distribution also includes a \"caption\" widget to associate labels with \nparticular GUI components. (7/92)\n\tDan Connolly's (connolly@convex.COM) XcRichText interprets RTF data;\nit's on export as contrib/XcRichText-1.1.tar.Z.\n\tThe XmGraph Motif-based graphing widget is on iworks.ecn.uiowa.edu in\n/comp.hp/GUI_classic/XmGraph.tar.Z although it may not be stable.\n\tA TeX-style Layout widget by Keith Packard is described in the \nproceedings of the 7th MIT Technical Conference (O'Reilly X Resource volume 5);\nsource is available on export contrib/Layout.tar.Z.\n\n\tA version of Lee Iverson's (leei@McRCIM.McGill.EDU) image-viewing tool\nis available as contrib/vimage-0.9.3.tar.Z on export.lcs.mit.edu.  The package \nalso includes an ImageViewPort widget and a FileDialog widget. [12/91;5/92] \n\tIn addition, the PEXt toolkit by Rich Thomson (rthomson@dsd.es.com) is \navailable on export as PEXt.tar.Z; it includes a PEX widget making it easier to\nuse PEX in Xt-based programs.\n\tA Motif port of the Xaw clock widget is in ftp.stna7.stna.dgac.fr\nin pub/Clock.tar.Z.\n\tA modification of the Xaw ScrollBar widget which supports the arrowhead\nstyle of other toolkits is on export in contrib/Xaw.Scrollbar.mta.Z.\n\n\tA beta 0.3 (11/92) release of the R5 Xaw widgets with a 3D visual \nappearance by Kaleb Keithley (kaleb@thyme.jpl.nasa.gov) is available on export \nin contrib/Xaw3d/R5/Xaw3d-0.3.tar.Z. The library, which is binary-compatible \nwith the MIT Xaw, implements a 3D subclass which handles the extra drawing.\n\nAlso:\n\tThe Xmt \"Motif Tools\", Dovetail Systems's shareware library of 9 \nwidgets and many convenience functions, is available from \nexport.lcs.mit.edu:contrib and ftp.ora.com:/pub/xbook/Xmt in xmt-README and \nxmt-1.0.tar.Z.\n\tThe Xtra XWidgets set includes widgets for pie and bar charts, XY \nplots, Help, spreadsheets, data entry forms, and line and bar graphs.  Contact \nGraphical Software Technology at 310-328-9338 (info@gst.com) for information.\n\tThe XRT/graph widget, available for Motif, XView and OLIT, displays\nX-Y plots, bar and pie charts, and supports user-feedback, fast updates and\nPostScript output. Contact KL Group Inc. at 416-594-1026 (info@klg.com).\n\tA set of data-entry widgets for Motif is available from Marlan \nSoftware, 713-467-1458 (gwg@world.std.com).\n\tA set of graph widgets is available from Expert Database Systems\n(212-370-6700).\n\tA set of OSF/Motif compound widgets and support routines for 2D\nvisualization is available from Ms Quek Lee Hian, National Computer Board,\nRepublic of Singapore; Tel : (65)7720435; Fax : (65)7795966; \nleehian@iti.gov.sg, leehian@itivax.bitnet.\n\tThe ICS Widget Databook includes a variety of control widgets and \nspecial-purpose widgets, available on a variety of platforms.  Information: \n617-621-0060, info@ics.com.\n\tInformation on graphing tools may be obtained from info@TomSawyer.com \n(+1-510-848-0853, fax: +1-510-848-0854).\n\n----------------------------------------------------------------------\nSubject:  66)  Where can I get a good file-selector widget?\n\n\tThe Free Widget Foundation set offers a FileSelector widget, with \nseparate directory path and file listing windows, and the FileComplete, which\nhas emacs-style file completion and ~ expansion. \n\tOther available file-requestor widgets include the XiFileSelector from \nIris Software's book, the xdbx file-selector extracted by David Nedde \n(daven@wpi.wpi.edu), and the FileNominator from the aXe distribution.\n\tThe GhostView, Xfig, and vimage packages also include file-selector \nwidgets.\n\n----------------------------------------------------------------------\nSubject:  67)  What widget is appropriate to use as a drawing canvas?\n\n\tSome widget sets have a widget particularly for this purpose -- a\nWorkSpace or DrawingArea which doesn't display anything but lets your Xt \napplication know when it has been re-exposed, resized, and when it has received\nuser key and mouse input. \n\tThe best thing to do for other widget sets -- including the Athena set \n-- is to create or obtain such a widget; this is preferable to drawing into a \ncore widget and grabbing events with XtAddEventHandler(), which loses a number \nof benefits of Xt and encapsulation of the functionality .  \n\tAt least one version has been posted to comp.sources.x (name???). \n\tThe publicly-available programs xball and xpic include other versions. \n\tThe Athena Widget manual (mit/doc/Xaw/Template in the R5 distribution) \nincludes a tutorial and source code to a simple widget which is suitable for \nuse. \n\tThe Free Widget Foundation set contains a Canvas widget.\n\n----------------------------------------------------------------------\nSubject:  68)  What is the current state of the world in X terminals?\n\nJim Morton (jim@applix.com) posts quarterly to comp.windows.x a list of \nmanufacturers and terminals; it includes pricing information. \n\nNotable buyers-guide surveys include:\n\t- the September 1991 issue of Systems Integration\n\n----------------------------------------------------------------------\nSubject:  69)  Where can I get an X server with a touchscreen or lightpen?\n\n\tLabtam (+61 3 587 1444, fax +61 3 580 5581) offers a 19\" Surface \nAcoustic Wave touch-screen option on its Xengine terminals.\n\tTektronix (1-800-225-5434) provides an X terminal with the Xtouch \ntouch-screen. This terminal may also be resold through Trident Systems\n(703-273-1012).\n\tMetro Link (305-970-7353) supports the EloGraphics Serial Touch Screen \nControllers.\n\n----------------------------------------------------------------------\nSubject:  70)  Where can I get an X server on a PC (DOS or Unix)?\n\n\tMIT X11R5 already provides a server to many 386/486 *Unixes* with \nsupport for many of the popular video graphics adapters; and for other \nnon-MSDOS PCs you can obtain a server from these sources:\n\n\tXFree86 (formerly X386 1.2E) is an enhanced version of X386 1.2, which \nwas distributed with X11R5; it includes many bug fixes, speed improvements, and\nother enhancements. Source for version 1.2 [2/93] is on export.lcs.mit.edu in \npub/contrib, ftp.physics.su.oz.au in /X386, and ftp.win.tue.nl in /pub/X386. In\naddition, binaries are on ftp.physics.su.oz.au, and ftp.win.tue.nl among other \nsystems. Info: x386@physics.su.oz.au.\n\tNote: this package obsoletes Glenn Lai's Speedup patches for an \nenhanced X11R5 server for 386 UNIXes with ET4000 boards (SpeedUp.tar.Z on \nexport).\n\n\n\tMetro Link Inc. (305-970-7353, sales@metrolink.com; in Europe contact\nADNT, (33 1) 3956 5333) ships an implementation of X11R4 for the 386/486 Unix\nmarket.\n\n\tSGCS offers X386 Version 1.3, based on Thomas Roell's X11R5 two-headed\nserver, in binary and source form. Information: 408-255-9665, info@sgcs.com.\n\n\tISC, SCO, UHC, and other well-known operating-system vendors typically\noffer X servers.\n\n\tFor MSDOS PCs:\n\nDaniel J. McCoy (mccoy@gothamcity.jsc.nasa.gov) has started posting monthly a \nlist of non-UNIX servers for PCs, Macs, and Amigas; it includes pricing \ninformation. The current copy is kept on export in contrib as \nXServers-NonUNIX.txt.Z. \n\nAn article on PC X servers appears in the March 2, 1992 Open Systems Today.\n\n\tAlso of possible use:\n\n\tNet-I from Programit (212-809-1707) enables communication among \nDOS, OS/2 and Unix machines and can be used to display PC sessions on your\nUnix X display.\n\n\n----------------------------------------------------------------------\nSubject:  71)  Where can I get an X server on a Macintosh running MacOS?\n\n\teXodus from White Pine Software (603-886-9050) runs on any Mac with\nat least 1MB of memory and runs the X server within a standard Macintosh \nwindow.  Version 3.0 [6/91] supports intermixing of X and Mac windows and\nthe ADSP protocol. The version supports the SHAPE extension and includes\nDECwindows support.\n\n\tApple's MacX runs on MacPlus or newer machines with >= 2MB of memory\nand system software 6.0.4 or later. Version 1.1 is fully X11R4-based.  It \nsupports full ICCCM-compatible cut and paste of text AND graphics between the \nMacintosh and X11 worlds, the SHAPE extension (including SHAPEd windows on the \nMacintosh desktop), an optional built-in ICCCM-compliant window manager, X11R4 \nfonts and colors, a built-in BDF font compiler, and built-in standard \ncolormaps. Upgrades to MacX are available by ftp from aux.support.apple.com. \nInfo: 408-996-1010.  \n\t[Note: MacX is also the name of a vax-mac xmodem transfer utility.]\n\n\tAlso: \n\n\tLiken (1-800-245-UNIX or info@qualix.com) software enables monochrome\n68000 Mac applications to run on a SPARC system running X. \n\tXport (1-800-245-UNIX (415-572-0200) or xport@qualix.com) enables Mac \napplications to display on an X-based workstation by turning the Mac into an X \nclient.\n\tIntercon has a product called Planet-X which enables Mac applications\nto display on an X server.\n\n----------------------------------------------------------------------\nSubject:  72)  Where can I get X for the Amiga?\n\n\tThe new Amiga 3000 machines offer an X server and OPEN LOOK tools and\nlibraries on a full SVR4 implementation.\n\n        GfxBase, Inc. provides \"X11 R4.1\" for the AmigaDos computer; it \ncontains X11R4 clients, fonts, etc., and a Release 4 color server. An optional \nprogrammer's toolkit includes the header files, libraries, and sample programs.\nInfo from GfxBase, 408-262-1469. [Dale Luck \n(uunet!{cbmvax|pyramid}!boing!dale); 2/91]\n\n----------------------------------------------------------------------\nSubject:  73)  Where can I get a fast X server for a workstation?\n\n\tThe R5 server should be among the fastest available for most machines.\n\n\tSun sells a \"Direct Xlib\" product which improves rendering for \napplications running on the same machine as the X server; the replacement Xlib\nlibrary accesses graphics hardware directly using Sun's Direct Graphics Access \n(DGA) technology.\n\n\tInternational Quest Corporation (408-988-8289) has an optimized R4 \nserver for Sun3/4 under SunOS 4.0.\n\n\tUnipalm have R4 Servers for Sun3 and Sparc platforms. These are \noptimised to use graphics hardware and will run with Sunview. Information:\n+44 954 211797 or xtech@unipalm.co.uk.\n\n\tXgraph's Xtool (408-492-9031) is an X server implemented in SunView \nwhich boasts impressive results on Sun 3 and SPARC systems. [6/90]\n\nSeveral companies are making hardware accellerator boards:\n\n\tDupont Pixel Systems (302-992-6911), for Sun.\n\n\tMegatek's (619-455-5590) X-cellerator board for the Sun 3 and Sun 4 is \nbased on the TI 34020; the company claims performance improvements of 5x to \n10x over the sample X11R3 server.\n\n----------------------------------------------------------------------\nSubject:  74)! Where can I get a server for my high-end Sun graphics board?\n\n        Takahashi Naoto (Electrotechnical Laboratory, ntakahas@etl.go.jp) has \nmodified the MIT X11R5 server to support the Sun CG8, CG9, and CG12 boards.  \nThe files are on export in contrib/Xsun24-3.[01].tar.Z.  Note that both files \nare necessary to build Xsun24-3.1.\n\n\tThe JPL R5 Xsun Multi-screen server is a general purpose replacement\nfor the MIT server/ddx/sun layer; it provides for the screen to be split among\nseveral monitors and implements several other features above the MIT \nimplementation. Available on export.lcs.mit.edu in the file\ncontrib/R5.Xsun.multi-screen.tar.Z. [Kaleb Keithley, kaleb@thyme.jpl.nasa.gov,\n12/91; the file was updated 24 Mar 1993.]\n\n----------------------------------------------------------------------\nSubject:  75)  Where can I get an \"X terminal\" server for my low-end Sun 3/50?\n\n\tSeth Robertson (seth@ctr.columbia.edu) has written Xkernel; the current\nversion [1.4 as of 8/91, 2.0 expected RSN] is on sol.ctr.columbia.edu \n[128.59.64.40] in /pub/Xkernel.gamma. It turns a Sun 3/50 into a pseudo- X \nterminal; most of the overhead of the operating system is side-stepped, so it \nis fairly fast and needs little disk space.\n\tA similar approach is to run the regular X server by making /etc/init\na shell script which does the minimal setup and then invokes Xsun, like this\nexample script from mouse@larry.mcrcim.mcgill.EDU:\n\n#! /bin/sh\nexec >/dev/console 2>&1\n/etc/fsck -p /dev/nd0\ncase $? in\n \t0)\t;;\n \t4)\t/etc/reboot -q -n\n \t\t;;\n \t8)\techo ND fsck failed - get help\n \t\t/etc/halt\n \t\t;;\n \t12)\techo Interrupted\n \t\t/etc/reboot\n \t\t;;\n \t*)\techo Unknown error in reboot fsck - get help\n \t\t/etc/halt\n \t\t;;\nesac\n/bin/dd if=/tmp-fs of=/dev/nd2 bs=512 count=128 >/dev/null 2>&1\n/etc/mount /dev/nd2 /tmp\n/etc/ifconfig le0 netmask 255.255.255.0 broadcast 132.206.41.255\n/etc/mount -o ro apollo:/u2/x11/lib /local/lib/X11\n/etc/route add default 132.206.41.1 1 >/dev/null\nset `/etc/ifconfig le0`\nexec /Xsun -once -multidisp -mux -query \\\n\t`(sh -vn </local/lib/X11/xdm-servers/$2 2>&1)`\n\n----------------------------------------------------------------------\nSubject:  76)  What terminal emulators other than xterm are available?\n\n\tPCS has rewritten xterm from scratch using a multi-widget approach that\ncan be used by applications. A version is on the R5 contrib tape and on\nexport in contrib/emu.tar.Z [10/91]. For more information, contact \nme@dude.pcs.com.\n\n\tmxterm, a Motif-based xterm is available from the Paderborner \nftp-Server ftp@uni-paderborn.de (131.234.2.32), file \n/unix/X11/more_contrib/mxterm.tar.Z.\n\n\tThe Color Terminal Widget provides ANSI-terminal emulation compatible\nwith the VTx00 series; a version is on export in contrib/CTW-1.1.tar.Z. A\nMotif version is on ftp.stna7.stna.dgac.fr in pub/Term-1.0.tar.Z.\n\t\n\tkterm 4.1.2 is an X11R4-based vt100/vt102 (and Tektronix 4014) terminal\nemulator that supports display of Chinese, Japanese, and Korean text (in VT \nmode).  Also supported are: ANSI color sequences, multi-byte word selection, \nlimited Compound Text support, and tab and newline preservation in selections.\nkterm 4.1.2 is also available from these anonymous ftp sites:\n\tclr.nmsu.edu:pub/misc/kterm-4.1.2.tar.Z  [128.123.1.14]\n\texport.lcs.mit.edu:contrib/kterm-4.1.2.tar.Z  [18.24.0.12]\n\tkum.kaist.ac.kr:pub/unix/Xstuffs/kterm-4.1.2.tar.Z  [137.68.1.65]\n[courtesy of Mark Leisher <mleisher@nmsu.edu> ]\n\n\tkterm-5.1.1.tar.Z is now on export [12/92].\n\n\tmterm, by mouse@larry.McRCIM.McGill.EDU, is an X terminal emulator\nwhich includes ANSI X3.64 and DEC emulation modes.  mterm can be had by ftp to \nlarry.mcrcim.mcgill.edu (132.206.1.1), in X/mterm.src/mterm.ball-o-wax.\n\n\tCxterm is a Chinese xterm, which supports both GB2312-1980 and the \nso-called Big-5 encoding.  Hanzi input conversion mechanism is builtin in \ncxterm.  Most input methods are stored in external files that are loaded at run\ntime.  Users can redefine any existing input methods or create their own ones.\nThe X11R5 cxterm is the rewritten of cxterm (version 11.5.1) based on X11R5 \nxterm; it is in the R5 contrib software.  [thanks to Zhou Ning \n<zhou@tele.unit.no> and Steinar Bang <uunet!idt.unit.no!steinarb>.]\n\n\tXVT is available on export's contrib in xvt-1.0.tar.Z and \nxvt-1.0.README. It is designed to offer xterm's functionality with lower swap \nspace and may be of particular use on systems driving many X terminals.\n\n\tx3270 is in X11R5 contrib/.\n\nAlso:\n\tIBM sells a 3270 emulator for the RS/6000 (part #5765-011); it's based\non Motif. \n\t\n\tCentury Software (801-268-3088) sells a VT220 terminal emulator for X. \nVT102, Wyse 50 and SCO Color Console emulation are also available. \n\n\tGrafpoint's TGRAF-X provides emulation of Tektronix 4107, 4125, and \n42xx graphics terminals; it's available for most major platforms. Information\n(inc. free demo copies): 800-426-2230; Fax. 408-446-0666; uunet!grafpnt!sales.\n\n\tIXI's X.deskterm, a package for integrating character-based \napplications into an X environment, includes a number of terminal-emulation\nmodules. Information: +44 (0223) 462131. [5/90]\n\n\tPericom produces Teem-X, a set of several emulation packages for a\nnumber of Tek, DEC, Westward, and Data General terminals. The software runs on\nSun 3, Sun 4, Apollo, DEC, ISC, IBM/AIX. Information: US: 609-895-0404, \nUK: +44 (0908) 560022. [5/90]\n\n\tSCO's SCOterm (info@sco.COM), part of its Open Desktop environment, is\na Motif-compliant SCO ANSI color console emulator.\n\n----------------------------------------------------------------------\nSubject:  77)! Where can I get an X-based editor or word-processor?\n\n\tYou can ftp a version of GNU Emacs, the extensible, customizable, \nself-documenting, real-time display editor, including X11 support, from\nprep.ai.mit.edu [18.71.0.38]:/pub/gnu/emacs-18.59.tar.Z or\ninformatik.tu-muenchen.de:/pub/GNU/emacs/emacs-18.59.tar.Z.\n\t\n\tEpoch is a modified version of Gnu Emacs (18) with additional \nfacilities useful in an X environment. Current sources are on cs.uiuc.edu \n(128.174.252.1) in ~ftp/pub/epoch-files/epoch; the current [3/92] version is \n4.0. [In Europe, try unido.informatik.uni-dortmund.de].  There are two \nsubdirectories:  epoch contains the epoch source, and gwm contains the source \nto the programmable window manager GWM, with which epoch works well.] \nYou can get on the Epoch mailing list by sending a request to \nepoch-request@cs.uiuc.edu.\n\n\tLucid Emacs is a version of GNU Emacs derived from an early version of\nEmacs version 19.  It currently requires X Windows to run;  X support is\ngreatly enhanced over GNU Emacs version 18, including support for multiple X\nwindows, input and display of all ISO-8859-1 (Latin1) characters, Zmacs/Lispm\nstyle region highlighting, a customizable Motif-like menubar, more powerful\nkeymap support, flexible text attributes, support on regional and screen-local\nbasis through X resources and/or lisp, and support for the X11 selection\nmechanism. Lucid Emacs is free; the latest version (2/93) is 19.4, and is\navailable from labrea.stanford.edu in the pub/gnu/lucid/ directory.\n\n\tThe Andrew system on the X11 contrib tapes has been described as one of\nthe best word-processing packages available. It supports word processing with \nmulti-media embedded objects: rasters, tables/spread sheets, drawings, style \neditor, application builder, embedded programming language, &c. Release 5.1 \nbecame available 2 June 92.  [Fred Hansen (wjh+@ANDREW.CMU.EDU)]\n\tYou may be able to use the Remote Andrew Demo service to try this \nsoftware; try \"finger help@atk.itc.cmu.edu\" for help.\n\n\tThe InterViews C++ toolkit contains a WYSIWIG editor called Doc; it \nsaves and loads files in a LaTeX-*like* format (not quite LaTeX).  The package \ncan also import idraw-PostScript drawings.\n\n\tA simple editor aXe (by J.K.Wight@newcastle.ac.uk) is available on \nexport and arjuna.newcastle.ac.uk (128.240.150.1) as aXe-4.1.tar.Z [3/93]. It \nis based around the Xaw Text widget.\n\n\tTED is a simple Motif-based text editor; it is a wrapper around the \nMotif text widget which offers search/replace, paragraph formatting, and \nnavigation features. TED is available from ftp.eos.ncsu.edu (152.1.9.25) as \n/pub/bill.tar.Z; here are also executables there.\n\n\tPoint, by crowley@unmvax.cs.unm.edu (Charlie Crowley), is Tcl/Tk-based\nand offers dyanimic configuration and programming in the Tcl macro language.\nThe editor is available from unmvax.cs.unm.edu (129.24.16.1) as\npub/Point/point1.1-tar.Z.\n\n\tasedit, by Andrzej Stochniol (astoch@ic.ac.uk) is on export in \ncontrib/asedit.tar.Z. It is a simple text editor built around the Motif Text \nwidget. Version 1.11 was released 1/93.\n\nAlso:\n\n\tElan Computer Group (Mountain View, CA; 415-964-2200) has announced the\nAvalon Publisher 2.0, an X11/OPEN LOOK WYSIWYG electronic publishing system.\n\n\tFrameMaker and FrameWriter are available as X-based binary products for\nseveral machines. Frame is at 800-843-7263 (CA: 408-433-3311).\n\n\tWX2 (formerly InDepthEdit) is available from Non Standard Logics \n(+33 (1) 43 36 77 50; requests@nsl.fr).\n\n\tBuzzwords International Inc. has an editor called 'Professional Edit' \nthat runs under X/Motif for various platforms.  Info: +1-314-334-6317.\n\n\tDECwrite is available from DEC for some DEC hardware and SunWrite is\navailable from Sun.\n\n\tIslandWrite will soon be available from Island Graphics (415-491-1000) \n(info@island.com) for some HP & Apollo platforms.\n\n\tInterleaf is currently available from Interleaf (800-241-7700, \nMA: 617-577-9800) on all Sun and DEC platforms; others are under development.\n\n\tThe Aster*x office integration tools from Applix (1-800-8APPLIX, \nMA: 508-870-0300) include a multi-font WYSIWG document composer; for several \nsystems.\n\n\tArborText, Inc. provides an X11 version of its Electronic Publishing \nprogram called \"The Publisher\". The Publisher is available on Sun, HP and \nApollo workstations. Contact Arbortext at 313-996-3566. [5/90]\n\n\tIris Computing Laboratories offers the \"ie\" editor. Info:  \n+1-505-988-2670 or info@spectro.com.\n\n\tBBN/Slate from BBN Software Products includes a menu-driven word\nprocessor with multiple fonts and style sheets.  It supports X on\nmultiple platforms. (617-873-5000 or slate-offer@bbn.com) [11/90]\n\n\tThe powerful \"sam\" editor by Rob Pike is split into a host portion and \na front-end graphics portion, which now has an X implementation.  sam is now \navailable by anonymous ftp from research.att.com, in dist/sam/bundle.Z.  Watch \nthat space for updated versions.  There is a mailing list for sam users; \nrequests to <sam-fans-request@hawkwind.utcs.toronto.edu>. A set of extensions\nwhich augment the mouse activity with the keyboard is available from \nuxc.cso.uiuc.edu in pub/sam/samx1.0.shar.\n\n\tInnovative Solutions (505-883-4252; or Brian Zimbelman, \nis!brian@bbx.basis.com) publishes the user-configurable Motif-based Xamine \neditor.\n\n\tQualix offers a product. Information: info@qualix.com or 800-245-UNIX \n(415-572-0200).\n\n\tTypex is a Motif-based editor available for several systems. \nInformation: Amcad Research, 408-867-5705, fax -6209.\n\n\tWordPerfect offers an X-based version of WordPerfect 5.1 for several\nworkstations. Information: 801-222-5300 or 800-451-5151.\n\n----------------------------------------------------------------------\nSubject:  78)  Where can I get an X-based mailer?\n\n\txmh, an X interface to mh, is distributed with the X11 release.\n\n\tXmail is an X-based window interface to Berkeley-style mail handlers;\nit is styled primarily after the Sunview mailtool application and builds on\nmost Unix systems. The current release [1/92] is 1.4, available in the MIT \nX11R5 contrib tape and from export and uunet. Info: Jeff Markham,\nmarkham@cadence.com.\n\n\tMMH (My Mail Handler), a motif interface to the MH mail handler, is \navailable from ftp.eos.ncsu.edu (152.1.9.25) in pub/bill.tar.Z; it is bundled\nwith the TED editor, which it uses for composing messages. Motif 1.1 is \nrequired; if you don't have it, look for DEC and SPARC executables in the same \nplace.  Information and problems to: Erik Scott, escott@eos.ncsu.edu. [1/92]\n\n\tThe Andrew Toolkit supports the Andrew Message System; it is available\nfrom export and many other X archives and from emsworth.andrew.cmu.edu \n(128.2.30.62), or send email to susan+@andrew.cmu.edu. Release 5.1 became\navailable 2 June 92.\n\tYou may be able to use the Remote Andrew Demo service to try this \nsoftware; try \"finger help@atk.itc.cmu.edu\" for help.\n\n\tXMailTool is an Xaw-based interface to a BSD-style mail reader; version\n2.0 was released 9/92. Information: Bob Kierski, bobo@cray.com or 612-683-5874.\n\n\tCem is a Motif-based mailer using standard mailbox formats; it is on\nnelson.tx.ncsu.edu in pub/Cem. Information: Sam Moore (Sam_Moore@ncsu.edu).\n\nAlso:\n\n        Alfalfa Software offers Poste, a UNIX-based mailer that has Motif- and \ncommand-based interfaces.  It includes support for multimedia enclosures, and \nsupports both the Internet and X.400 mail standards.  Information: \ninfo@alfalfa.com, +1 617-497-2922.\n\n\tZ-Code Software offers Z-Mail for most Unix systems; binaries support\nboth tty and Motif interfaces. The mailer includes a csh-like scripting \nlanguage for customizing and extending mail capabilities.  Information: \ninfo@z-code.com, +1 415 499-8649.\n\n\tSeveral vendors' systems include X-based mailers. DEC offers dxmail; \nSun offers an X-based mailtool; SCO (info@sco.com) includes SCOmail in its Open\nDesktop product.\n\nSeveral integrated office-productivity tools include mailers:\n\n\tThe Aster*x office integration tools from Applix (1-800-8APPLIX, \nMA: 508-870-0300) include a mailer.\n\n----------------------------------------------------------------------\nSubject:  79)! Where can I get an X-based paint/draw program?\n\n\txpic is an object-oriented drawing program. It supports multiple font \nstyles and sizes and variable line widths; there are no rotations or zooms.\nxpic is quite suitable as an interactive front-end to pic, though the \nxpic-format produced can be converted into PostScript. (The latest version is \non the R4 contrib tape in clients/xpic.)\n\n\txfig (by Brian V. Smith (bvsmith@lbl.gov)) is an object-oriented \ndrawing program supporting compound objects.  The xfig format can be converted \nto PostScript or other formats. Recent versions are on the R5 contrib tape or \non export in /contrib/R5fixes (version 2.1.6 [11/92]).\n\n        idraw supports numerous fonts and various line styles and arbitrary \nrotations. It supports zoom and scroll and color draws and fills. The file \nformat is a PostScript dialect. It can import TIFF files. Distributed as a part\nof the InterViews C++ toolkit (current release 3.1, from \ninterviews.stanford.edu) .\n\n\tA version of Robert Forsman's (thoth@lightning.cis.ufl.edu) xscribble,\nan 8-bit paint program for X, is now on ftp.cis.ufl.edu in pub/thoth/. [2/93]\n\n\txpaint is available from ftp.ee.lbl.gov as xpaint.tar.Z.\n\tA rewrite, Xpaint 2.0, by David Koblas (koblas@netcom.com) was released\n2/93 as xpaint2pl3.tar.Z. xpaint is a bitmap/pixmap editing tool.\n\n\tA new OpenWindows PostScript-based graphical editor named 'ice' is now \n[2/91] available for anonymous ftp from Internet host lamont.ldgo.columbia.edu \n(129.236.10.30).  ice (Image Composition Environment) is an imaging tool that\nallows raster images to be combined with a wide variety of PostScript \nannotations in WYSIWYG fashion via X11 imaging routines and NeWS PostScript \nrasterizing. (It may require OpenWindows and Sun C++ 2.0.)\n\n\ttgif by William Cheng (william@oahu.cs.ucla.edu) is available from most\nuucp sites and also from export and from cs.ucla.edu. It is frequently updated;\nversion 2.12-patch18 was released 3/93.\n\n\tThe \"pixmap\" program (info: colas@sa.inria.fr) for creating pixmaps is \non the R5 contrib tape; it resembles the bitmap client. Version 2.1 is now \navailable. [11/92]\n\n\tAlthough MetaCard is not generally classified as a paint program, a \nfull 24-bit color image editor is built into the program, which can be used for\nlight image editing and for producing color icons (info@metacard.com). MetaCard\nis available via anonymous FTP from ftp.metacard.com, csn.org, or \n128.138.213.21.\n\t\n\tpixt by J. Michael Flanery produces XPM output.\n\nAlso:\n\n\tdxpaint is a bitmap-oriented drawing program most like MacPaint; it's \ngood for use by artists but commonly held to be bad for drawing figures or \ndrafting. dxpaint is part of DEC's Ultrix release.\n\n\tFrameMaker has some draw capabilities. [4/90]\n\n\tBBN/Slate from BBN Software Products includes a full-featured draw and\npaint program with object grouping and multiple patterns; multiple X platforms.\n(617-873-5000 or slate-offer@bbn.com). [11/90]\n\n\tDux Ta-Dah!, 1-800-543-4999\n\n\tIslandGraphics offers IslandDraw, IslandPaint, IslandPresent.\nInfo: 415-491-1000.\n\n\tCorel Draw, 613-728-8200; ported to X by Prior Data Sciences \n800-267-2626\n\n\tArts&Letters Composer, 214-661-8960\n\n\tFicor AutoGraph, 513-771-4466\n\n\tOpenWindows includes the olpixmap editor.\n\tSCO ODT includes the SCOpaint editor.\n\tHP VUE includes the vueicon editor.\n\nSeveral integrated office-productivity tools include draw/paint capabilities:\n\n\tThe Aster*x office integration tools from Applix (1-800-8APPLIX, \nMA: 508-870-0300) include draw/paint capabilities.\n\n[thanks in part to Stephen J. Byers (af997@cobcs1.cummins.com) and to \nJ. Daniel Smith (dsmith@ann-arbor.applicon.slb.com)]\n\t\n----------------------------------------------------------------------\n\nDavid B. Lewis \t\t\t\t\tfaq%craft@uunet.uu.net\n\n\t\t\"Just the FAQs, ma'am.\" -- Joe Friday \n-- \nDavid B. Lewis\t\tTemporarily at but not speaking for Visual, Inc.\nday: dbl@visual.com\tevening: david%craft@uunet.uu.net\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10983, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: health care reform\nArticle-I.D.: pitt.19409\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 20\n\nIn article <1993Mar28.200619.5371@cnsvax.uwec.edu> nyeda@cnsvax.uwec.edu (David Nye) writes:\n\n>and may be a total disaster and that the Canadian model is preferable, a\n>position with which I agree.  The other is surprising sympathy for the\n>physicians in all of this, to the effect that beating up on us won't\n>help anything.\n> \n\nI'm not sure about that.  Did you see the \"poll\" they took that showed\nthat most people thought physicians should be paid $80,000 per year\ntops?  That's all I make, but I doubt that most physicians are going\nto work very hard for that kind of bread.  Many wouldn't be able\nto service their med school debts on that.  Mike Royko had a good\ncolumn about it.\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10984, "properties": {"category": "rec.autos", "text": "From: jnielsen@magnus.acs.ohio-state.edu (John F Nielsen)\nSubject: Re: Ford Probe - Opinions? (centered around the GT)\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nLines: 21\n\nIn article <1993Apr20.124228.5357@ncsu.edu> chuck@eos.ncsu.edu (Chuck Kesler) writes:\n>>Rear hatch has no padding on corners when up.  I'm waiting for the day when\n>>I bash my head on the corner.\n>>horn buttons behind air bag in spokes and not in center (personal preference)\n>\n>The latter is probably because of the air bag.  It's pretty much takes up\n>all the space where you'd expect to find the horn.\n>\n\nAll Toyotas have airbags with a real horn. Come on, how hard can it\nbe to put a little pressure plate there. I hope Toyota doesn't follow\neveryone else and make the horns little buttons that I wouldn't want\nto fumble for.\n\njohn\n\n-- \nJohn Nielsen   MAGNUS Consultant            ______   ______   __  __\t\n\"To you Baldrick, the Renaissance was just /\\  __ \\ /\\  ___\\ /\\ \\/\\ \\\nsomething that happened to other people,   \\ \\ \\/\\ \\\\ \\___  \\\\ \\ \\_\\ \\\nwasn't it?\" - The Black Adder               \\ \\_____\\\\/\\_____\\\\ \\_____\\\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10985, "properties": {"category": "rec.sport.baseball", "text": "From: kbos@carina.unm.edu (K. Mitchell Bose)\nSubject: Re: TIGERS\nOrganization: University of New Mexico, Albuquerque\nLines: 9\nNNTP-Posting-Host: carina.unm.edu\n\n*thud*\n\n(see .sig)\n\n-- \n            Kurt Bose (as in Daisy, not Rose) * kbos@carina.unm.edu\nHelp cleanse R.S.B of all mindless woofing! Whenever someone at your site posts\nan article with a subject of the form \"MY TEAM R00LZ!!!!!!\", simply look him up\nin the directory, hunt him down, and beat him senseless!  Easy, fun, rewarding!\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10986, "properties": {"category": "talk.politics.guns", "text": "From: cescript@mtu.edu (Charles Scripter)\nSubject: Re: Raid justification was: Blast them next time\nDistribution: usa\nOrganization: Michigan Tech\nLines: 52\nNntp-Posting-Host: physerver.phy.mtu.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nOn Wed, 21 Apr 1993 03:52:11 GMT, Peter Cash (cash@convex.com) wrote:\n\n> I just got through listening to the 10 o'clock news on Channel 4 here in\n> Dallas. They trotted out a list of justifications produced by the ATF after\n> \"months of investigation\" for their raid. \n\nCNN just claimed he bought 104 \"semi-automatic assault rifles\".  And\nthey say Koresh wasn't god-like...  He managed to buy or build a\ncollection of fully-automatic semi-automatic rifles...  Quite a feat,\nI would say.  ;-)\n\nThey're still making charges of \"sexual abuse\" and such, or course.\nNobody seems to have noticed that the Treasury department has nothing\nto do with sex crimes.  Or maybe the feds have recently instituted a\nTAX on sex crimes...  Yeah, that's why the BATF was there, looking for\nunregistered *guns* (\"this is my weapon, this is my gun, this is for\nfighting, this is for...\").\n\n> I couldn't believe the junk on this list! For example, the BDs were accused\n> of stockpiling a bunch of \"9mm and .223 ammunition that can be used in M15\n> and M16 assault rifles\". Imagine that--they had ammunition!\n\nI also heard that they're claiming to be cautious because of Koresh's\n\"heated ammunition stockpile\".  I seem to recall that smokeless powder\ntends to decompose at even moderate temperatures.  I would be rather\nsurprised, after a fire of that nature, if *any* of his \"stockpile\" is\nunexploded, or unburned.\n\n> They also had\n> aluminum dust! (Yeah, it's a component of thermite, but so far I haven't\n> heard that it's illegal to take a grinder to the aluminum lawn\n> furniture...)\n\nI seem to recall that aluminum powder is a common component of\nfireworks...  The folks on rec.pyro could probably tell you.\n\n> The only thing on the list that could conceivably have been\n> illegal was an M-79 grenade launcher. (Anybody know about this?)\n\nI think *anything* is legal if you have the proper license.  If he had\na \"curios and relics\" permit, I believe he could legally own\nhandgrenades to go with his launcher.\n\n--\nCharles Scripter   *   cescript@phy.mtu.edu\nDept of Physics, Michigan Tech, Houghton, MI 49931\n-------------------------------------------------------------\n\"...when all government... in little as in great things, shall be\ndrawn to Washington as the centre of all power, it will render\npowerless the checks provided of one government on another and will\nbecome as venal and oppressive as the government from which we\nseparated.\"   Thomas Jefferson, 1821\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10987, "properties": {"category": "comp.sys.mac.hardware", "text": "From: adamsj@gtewd.mtv.gtegsc.com\nSubject: Apple CD300 CDROM \"freebies\".\nOrganization: GTE Govt. Systems, Electronics Def. Div.\nLines: 19\n\nIn article <1quod6$i3n@menudo.uh.edu>, sunnyt@coding.bchs.uh.edu writes:\n> ... reseller.  I've also heard rumors that they are bundled with a couple of CD's,  \n> but I can't confirm it.\n> \n> Sunny   ===>sunnyt@dna.bchs.uh.edu\n\nI've got two CD300's... The first one i ordered Jan 15, and I received it Feb. 20.\nThe second one I ordered Jan 20th, and I just got it April 2nd or so. Anyway, they\nboth come with 10 misc. CDROMs... Things like a \"Intro to Nautilis\", a sample CD\nof Kodak pictures, \"From Alice to Ocean\" (a story of a woman who treked across\nAustrailia), 3 discs from apple, a games disc, an applications disc, and a \"titles\"\ndisc (haven't checked most of these out yet). Also some \"Cinderella\" thing for kids,\na disc of Mozart something-or-others, etc. etc. etc. If someone's super interested,\nI'll make a list of the exact titles and post them. They are all in the category of\n\"Interesting, but probably fairly useless...\". It was rumored that the earliest \nunits shipped with SOME encyclocpedia (it may have), but neither of my drives had\nthat.\n\n-jeff adams-\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10988, "properties": {"category": "misc.forsale", "text": "From: rajaram@camilla.Eng.Sun.COM ()\nSubject: * * * For Sale: Window Shades * * *\nOrganization: Sun Microsystems, Inc.  Mt. View, Ca.\nLines: 14\nDistribution: ba\nReply-To: rajaram@Eng.Sun.COM ()\nNNTP-Posting-Host: camilla\nKeywords: furnishings window shades\nOriginator: rajaram@camilla\n\n\n\t\tKirsch Pull down Window Shades\n\n\t- White, Light Filtering\n\t- 73.25\" Wide, 72\" High, can be cut to width\n\t- Brand new, unopened\n\t- \"Best Quality\", Vinyl Coated Cotton\n\t- Mounting Brackets included\n\t- $35\t(Bought at $60 at J.C.Penney)\n\n..............................................................................\nrajaram@sun.com         (W) 415/336-5194        (H) 510/796-9932\n\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10989, "properties": {"category": "comp.graphics", "text": "From: kardank@ERE.UMontreal.CA (Kardan Kaveh)\nSubject: Re: Newsgroup Split\nOrganization: Universite de Montreal\nLines: 8\n\nI haven't been following this thread, so appologies if this has already been\nmentioned, but how about\n\n\tcomp.graphics.3d\n\n-- \nKaveh Kardan\nkardank@ERE.UMontreal.CA\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10990, "properties": {"category": "sci.crypt", "text": "From: amanda@intercon.com (Amanda Walker)\nSubject: Re: Secret algorithm [Re: Clipper Chip and crypto key-escrow]\nOrganization: InterCon Systems Corporation - Herndon, VA  USA\nLines: 34\nDistribution: world\nReply-To: amanda@intercon.com (Amanda Walker)\nNNTP-Posting-Host: chaos.intercon.com\nX-Newsreader: InterCon TCP/Connect II 1.1\n\ngtoal@gtoal.com (Graham Toal) writes:\n> Oh, I see your point.  I think you're wrong.  But if you sit back and \n> wait to find out if I'm right, it'll be too late.  Just listen *very* \n> carefully for the first 'such and such will not be permitted on network \n> XYZ' shoe to drop. \n\nI've been a very intent NREN spectator of the NREN for years.  As a \ncommercial IP software vendor, it really is my professional opinion that the \nNREN, at this point, is irrelevant to private sector networking.  If it had \nbeen deployed five years ago, it would have been a major development.  Now,\nhowever, it's just an upgrade to the NSFnet, and an attempt to revive the \nlagging use of the national supercomputer centers.  You could cut out the \nNSFnet completely, and the Internet would continue chugging along without a \nhiccup (aside from a few universities).\n\nLong-haul networking and Internet connectivity have long since ceased to be \nunder federal sponsorship or regulation, at least in the USA.  The success of \nthe CIX (Commercial Internet Exchange) is a prime example of this.  While our \ndear VP has been promoting his \"data superhighway,\" the private sector has \nbeen building it, without the NSFnet's restrictions.\n\nTo illustrate, a connection from the machine on my desk to the machine your \narticle was posted from (pizzabox.demon.co.uk) involves *only* commercial IP \nproviders until it hits Amsterdam.  No NSFnet.  No NREN.  No \"appropriate \nuse\" restrictions.  It's even 1.544mbps (T1) until it hits the EUnet \ngateway...\n\nQED.\n\n\nAmanda Walker\nInterCon Systems Corporation\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10991, "properties": {"category": "rec.sport.hockey", "text": "From: steveg@cadkey.com (Steve Gallichio)\nSubject: Re: Possible Canadian WC Team?\nOrganization: Cadkey, Inc.\nLines: 14\nNNTP-Posting-Host: access.digex.net\n\n\n\n> This is an all-point team for the Canadian NHLers who are not playoff bound...\n\nCENTERS\n[...]\n> Geoff Sanderson, Hartford\n[...]\n\nSanderson will be on Team Canada, but he'd be out of position as a center.\nAlthough he was drafted as a center and played there as a rookie, Sanderson\nscored 46 goals this season as a left wing.\n\n-SG\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10992, "properties": {"category": "talk.politics.misc", "text": "From: Clinton-HQ@Campaign92.Org (Clinton/Gore '92)\nSubject: CLINTON: Press Availability With Russian Press 4.4.93\nOrganization: Project GNU, Free Software Foundation,\n    675 Mass. Ave., Cambridge, MA  02139, USA +1 (617) 876-3296\nLines: 220\nNNTP-Posting-Host: life.ai.mit.edu\n\n\n\n\n\n                         THE WHITE HOUSE\n\n                  Office of the Press Secretary\n                  (Vancouver, British Columbia)\n_________________________________________________________________\nFor Immediate Release                               April 4, 1993\n\n\t     \n                PRESS CONFERENCE BY THE PRESIDENT\n                        WITH RUSSIAN PRESS\n\t     \n                           Canada Place\n                   Vancouver, British Columbia\n\n\n\n2:46 P.M. PDT\n\n\t     \t  \n\t     Q\t  I had two questions for both Presidents, so you \ncould probably answer for Boris, too.  (Laughter.)\n\t     \n\t     THE PRESIDENT:  I'll give you my answer, then I'll \ngive you Yeltsin's answer.  (Laughter.)\n\t     \n\t     Q\t  The first is that this is the meeting of the \nPresidents, so the money that's being promised is government \nmoney, and naturally it's going to be distributed through the \ngovernment.  But you've indicated that three-quarters are going \nto be going to businesses.  So the question is how the Russian \nbusinesses themselves are going to be consulted, if ever?  What \nare the priorities, because there are several association of \nRussian businessmen existing already, so will they be invited to \nparticipate in setting up priorities for investment?  \n\t     \n\t     This is the first.  And second, to you.  We know \nthat polls, public polls in America do not show that Americans \nare very enthusiastic about giving this aid.  Like Newsweek polls \nsay that about 75 percent don't approve it, and New York Times \npublished that 52 percent support if it just prevents civil war; \n42 percent if it fosters democratic reform; and only 29 percent \nif it just personally supports Yeltsin.  How are you going to \nsort of handle this problem that Americans themselves are not \nvery enthusiastic?  Thank you.\n\t     \n\t     Q\t  I have a question, I'm sorry -- is there going \nto be a translation of everything into Russian?  No, just the \nanswers.  Just the answers.  Okay.\n\t     \n\t     THE PRESIDENT:  The answer to the first question is, \nit depends on what kind of aid we're discussing.  For example, \nthe funds that will be set up for financing new businesses will \nobviously go to those businesses who apply and who seem to be \ngood risks and make the application.  The privatization fund will \nbe used to support the privatization of existing public \nenterprises.  Then there are some other general funds in the \nDemocracy Corps and other things which people in Russia will have \nsome influence over the distribution of.  \n\t     \n\t     With regard to your second question, let me say that \nI would think that there would be people in both countries who \nwould not feel too warmly toward simply the American government \ngiving money to the Russian government.  There's opposition to \nthat in Russia.  And in our country, throughout our whole history \nthere has been an opposition to foreign aid of all kinds.  That \nis, this has nothing to do with Russia.  If you look at the whole \nhistory of America, any kind of aid program has always been \nunpopular.  \n\t     \n\t     What I have tried to tell the American people is, is \nthis is not an aid program, this is an investment program; that \nthis is an investment in our future.  We spent $4 trillion --\ntrillion -- on armaments on soldiers and other investments \nbecause of the Cold War.  Now, with a democratic government in \nRussia, with the newly independent states, the remainder of them \nworking on a democracy and struggling to get their economies \ngoing, it seems to me very much in our interest to make it \npossible to do whatever we can for democracy to survive, for the \neconomy of Russia to grow because of the potential for trade and \ninvestment there, and for us to continue the effort to reduce \nnuclear weapons and other elements of hostility on both sides, on \nour side and on the Russian side.  \n\t     \n\t     So I don't see this as an aid program; this is an \ninvestment for the United States.  This is very much in the \ninterest of the United States.  The things I announced today, the \nsecond stage of the program, which I hope to put together next \nweek, in my view are things that are good for my country and for \nthe taxpayers and workers of my country.  \n\t     \n\t     Russia is a very great nation that needs some \npartnership now, some common endeavor with other people who share \nher goals.  But it would be a great mistake for anyone to view \nthis as some sort of just a charity or an aid issue.  That's not \nwhat it is, it's an investment for America and it's a wonderful \ninvestment.  \n\t     \n\t     Like all investments, there is some risk.  But \nthere's far less risk with a far greater potential of return than \nthe $4 trillion we spent looking at each other across the barrier \nof the Cold War.\n\t     \n\t     Q\t  Mr. President, first of all thank you very \nmuch, indeed, for coming here and talking to us.  In the memory \nof the living correspondents, this is the first time an American \nPresident is doing this to the Russian press corps, so it's kind \nof a very measured breakthrough.  \n\t     \n\t     I have two questions.  One, in your introductory \nremarks of the other press conference, you mentioned in brief \nthat you discussed the START II and START I issues.  Could you \ntell us:  Did you reach an agreement with President Yeltsin as to \nwhat might be done in order to have Ukraine join the ratification \nof START I and the NPT regime?  And my second question is, how \nconfident you are that the United States Congress would be eager \nto support you in lifting Jackson-Vanik and other restrictions \ninherited from the Cold War?  \n\t     \n\t     PRESIDENT CLINTON:  First, we discussed the issue of \nUkraine with regard to START I and NPT, and generally, with \nregard to the need to proceed to have the other independent \nstates all be non-nuclear; but also to have the United States \ndevelop strong relationships with them.  We know that one thing \nthat we could do that would increase, I think, the willingness of \nthe Ukraine to support this direction is to successfully conclude \nour own negotiations on highly enriched uranium, because that \nwould provide not only an important economic opportunity for \nRussia, but also for Ukraine, and it would show some reaching out \non our part.  But we agreed that basically the people who signed \noff on the Lisbon Protocol have got to honor what they did, and \nwe agreed to continue to press that.\n\t     \n\t     I, myself, have spent a good deal of time trying to \nreassure Ukraine's leaders, specifically the President and the \nForeign Minister, that I want strong ties with Ukraine, that the \nUnited States very much wants a good relationship with Ukraine, \nbut that, in order to do what we need to do together to \nstrengthen the economy of Ukraine and to have the United States \nbe fully supportive, the commitment to ratify START I and to join \nthe NPT regime is critical.\n\t     \n\t     What was the second question?  \n\t     \n\t     THE PRESIDENT:  With regard to Jackson-Vanik and \nCOCOM, I would make two points:  First, I have agreed with the \nRepublican and Democratic leaders in the Congress that we will, \nas soon as I return, have a list of all the legislative and other \nrestrictions, some of them are regulatory in nature, imposed on \nrelations between the United States and Russia, that are legacies \nof the Cold War.  And we will see whether they're -- how many of \nthem we could agree to do away with right now, at least among the \nleadership of the Congress.\n\t     \n\t     With regard to Jackson-Vanik, I think there will be \nan openness to change the law if the Congress is convinced there \nare, in fact, no more refusniks, no more people who wish to \nemigrate who are not being allowed to.  If the fact is that there \nis no one there who would have been -- who the law was designed \nto affect, then I think that the desire to keep the law will be \nmuch less.\n\t     \n\t     With regard to COCOM, my guess is, and it's nothing \nmore than a guess, that the leadership of Congress and indeed my \nown advisers, might prefer to see some sort of phased movement \nout of the COCOM regime.  But I think they would be willing to \nbegin it in the fairly near future.\n\t     \n\t     Q\t  Mr. Clinton, when I read your speech in \nAnnapolis, I got the impression that you have a completely \ndifferent personal -- and I stress that -- personal, not \npolitical approach towards Russia, compared to the approach of \nMr. Bush.  Could you formulate in a few words, what is the \ndifference between you as a personality and your approach -- the \ndifference between your approach to Russia and the approach of \nMr. Bush?  And who made you -- why did you cite Akhmatova in the \nlast part of your speech?\n\t     \n\t     THE PRESIDENT:  Let me say, first, I do not wish to \ncompare myself with President Bush or anyone else.  I can't say \nwhat was in his heart about Russia.  I can say that since I was a \nboy, I have been personally fascinated with the history, the \nmusic and the culture, and the literature of Russia.  I have been \nthrilled by Russian music since I was a serious student of music \nfor more than 30 years now.  I have read major Russian novelists \nand many of your poets and followed your ballet and tried to know \nas much as I could about your history.  \n\t     \n\t     And I went to the Soviet Union -- but it was then \nthe Soviet Union -- you may know it was a big issue in the last \npresidential campaign that I spent the first week of 1970 alone \nin Moscow and did not return again until three days before Mr. \nYeltsin was elected President.  But all that time I was away, I \nwas following events there very closely and hoping for the day \nwhen we could be genuine partners.  So I have always had a \npersonal feeling about Russia.  \n\t     \n\t     I remember, for example -- a lot of you know I like \nmusic very much.  One of the most moving experiences for me as a \nmusician was when Leonard Bernstein took the New York \nPhilharmonic to Moscow and played Shostakovich's Fifth Symphony \nto the Russians.  And he played the last movement more rapidly \nthan anyone had ever played it before because it was technically \nso difficult.  That is something I followed very closely when it \noccurred.  \n\t     \n\t     These are things that have always had a big impact \non my life.  And I had just always hoped that someday, if I ever \nhad the chance to, I could play a role in seeing our two \ncountries become closer partners.  (Applause.)\n\t     \n\t     THE PRESS:  Thank you.\n\n                               END3:06 P.M. PDT\n\n\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10993, "properties": {"category": "rec.autos", "text": "From: zakir@leland.Stanford.EDU (Zakir Sahul)\nSubject: Inflation in car prices\nOrganization: DSG, Stanford University, CA 94305, USA\nDistribution: usa\nLines: 5\n\n\nAnyone have figures or pointers to references about \nhow fast/much car prices have gone up in the last decade?\n\nThanks.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10994, "properties": {"category": "sci.electronics", "text": "From: gt0869a@prism.gatech.EDU (WATERS,CLYDE GORDON)\nSubject: Re: History question\nOrganization: Georgia Institute of Technology\nLines: 23\n\nIn article <2775@snap> paj@uk.co.gec-mrc (Paul Johnson) writes:\n>This is vague, so I am posting it in case anyone else knows more.\n>\n>I recall reading of a phonograph which used mechanical amplification.\n>Compressed air was squirted out of a valve which was controlled by the\n>pickup.  The result was noisy and distinctly lo-fi, but much louder\n\n\nNASA and related agencies apparently used this same principles to create\nthe loudest reported reproduced sound. They used an \"analog\" electrically\ncontrolled valve to control the flow of air across a horn throat. If I \nremember correctly it was called a \"modulated air blast transducer\". There\nwere reports of the thing being able to produce 106 dB @ 80 Hz @ 10 mile\ndistance, communicate directly with fighter pilots @ 5000 ft, etc.\n\nRegards,\nGordon.\n\n-- \nWATERS,CLYDE GORDON-BME '93-Georgia Institute of Technology Atlanta Ga. \n\"Out of the mountain of despair, we can hew the stone of hope\"- MLK Jr. \nuucp:\t  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt0869a\nInternet: gt0869a@prism.gatech.edu\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10995, "properties": {"category": "sci.crypt", "text": "From: rboudrie@chpc.org (Rob Boudrie)\nSubject: Re: The Old Key Registration Idea...\nOrganization: Center For High Perf. Computing of WPI; Marlboro Ma\nLines: 35\n\nIn article <1qn1ic$hp6@access.digex.net> pcw@access.digex.com (Peter Wayner) writes:\n>Okay, let's suppose that the NSA/NIST/Mykotronix Registered\n>Key system becomes standard and I'm able to buy such a system\n>from my local radio shack. Every phone comes with a built in\n>chip and the government has the key to every phone call. \n>I go and buy a phone and dutifully register the key. \n>\n>What's to prevent me from swapping phones with a friend or \n>buying a used phone at a garage sale? Whooa. The secret registered\n>keys just became unsynchronized. When the government comes \n\nIt's very possible, even likely, that the serial number of the\ninvididual chip is broadcast either in a standard encrypted \nformat, so that all the big brother types need to do is listen to\nthe traffic, get  a court order (generally just by saying that they\nthink you may be a crook) and go to it.\nr\n>to listen in, they only receive gobbledly-gook because the \n>secret key registered under my name isn't the right one. \n>\n>That leads me to conjecture that:\n>\n>1) The system isn't that secure. There are just two master keys\n>that work for all the phones in the country. The part about\n>registering your keys is just bogus. \n>\n>or \n>\n>2) The system is vulnerable to simple phone swapping attacks\n>like this. Criminals will quickly figure this out and go to\n>town.\n>\n>In either case, I think we need to look at this a bit deeper.\"'jbl)mW:wxlD2\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10996, "properties": {"category": "rec.motorcycles", "text": "From: cjackson@adobe.com (Curtis Jackson)\nSubject: Tracing license plates of BDI cagers?\nArticle-I.D.: adobe.1993Apr6.184204.26184\nOrganization: Adobe Systems Incorporated, Mountain View\nLines: 24\n\nThis morning a truck that had been within my sight (and I within\nhis) for about 3 miles suddenly forgot that I existed and pulled\nover right on me -- my front wheel was about even with the back\nedge of his front passenger door as I was accelerating past him.\n\nIt was trivial enough for me to tap the brakes and slide behind him\nas he slewed over (with no signal, of course) on top of me, with\nmy little horn blaring (damn, I need Fiamms!), but the satisfaction\nof being aware of my surroundings and thus surviving was not enough,\nespecially when I later pulled up alongside the bastard and he made\nno apologetic wave or anything.\n\nIs there some way that I can memorize the license plate of an\noffending vehicle and get the name and address of the owner?\nI'm not going to firebomb houses or anything, I'd just like to\nwrite a consciousness-raising letter or two. I think that it would\nbe good for BDI cagers to know that We Know Where They Live.\nMaybe they'd use 4 or 5 brain cells while driving instead of the\nusual 3.\n-- \nCurtis Jackson\t   cjackson@mv.us.adobe.com\t'91 Hawk GT\t'81 Maxim 650\nDoD#0721 KotB  '91 Black Lab mix \"Studley Doright\"  '92 Collie/Golden \"George\"\n\"There is no justification for taking away individuals' freedom\n in the guise of public safety.\" -- Thomas Jefferson\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10997, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: New Member\nOrganization: Cookamunga Tourist Bureau\nLines: 20\n\nIn article <C5HIEw.7s1@portal.hq.videocart.com>,\ndfuller@portal.hq.videocart.com (Dave Fuller) wrote:\n>   He is right. Just because an event was explained by a human to have been\n> done \"in the name of religion\", does not mean that it actually followed\n> the religion. He will always point to the \"ideal\" and say that it wasn't\n> followed so it can't be the reason for the event. There really is no way\n> to argue with him, so why bother. Sure, you may get upset because his \n> answer is blind and not supported factually - but he will win every time\n> with his little argument. I don't think there will be any postings from\n> me in direct response to one of his.\n\nHey! Glad to have some serious and constructive contributors in this\nnewsgroup. I agree 100% on the statement above, you might argue with\nBobby for eons, and he still does not get it, so the best thing is\nto spare your mental resources to discuss more interesting issues.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10998, "properties": {"category": "misc.forsale", "text": "From: Hans Meyer <hmmeyer@silver.ucs.indiana.edu>\nSubject: Logitech Scanman 256\nOrganization: Indiana University\nLines: 15\n\nI would like to sell my Logitech Hand-held 256 Gray Scale Scanner. I\noriginally bought it as a toy and have no practical use for it. Hardly\never used it.\n\nPackage includes:\n-board\n-Scan-Mate software\n-Ansel Image Editing software\n-All original manuals, box, etc.\n\nOriginally bought for $350 in Jan '92.\nSelling for $150.\n\nIf interested, let me know.\n-Hans Meyer\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.519+0000", "event": "documents", "entityId": 10999, "properties": {"category": "talk.politics.guns", "text": "From: \"Faustus\" <p00056@mail.psi.net>\nSubject: Re: 2ND AMENDMENT DEAD - GOOD !\nIn-Reply-To: <1993Apr18.001319.2340@gnv.ifas.ufl.edu>\nNntp-Posting-Host: 127.0.0.1\nOrganization: INFERNO\nX-Mailer: PSILink (3.01)\nLines: 27\n\n>DATE:   18 Apr 93 00:13:19 -0500\n>FROM:   jrm@gnv.ifas.ufl.edu\n>\n>Yea, there are millions of cases where yoy *say* that firearms\n>'deter' criminals. Alas, this is not provable. \n\nIn my case I am alive thanks to a gun, that is provable..\neven in your twisted logic.\n\n>I think that that there are actually *few* cases where this is so. \n\nNo... Wrong again brain trust.. \n\n>The bulk of firarems are used against unworthy and unnesessary\n>opponents \n\nHuh? What planet are you from? \n\n>The 2nd amendment is dead. Accept this. Find another way.\n\nWrong... Not as long as freedom remains ..\n\nPS: Get a Dictionary..\n\n\nFaustus\n(Gun of the month club... hmmm.. Glock 10mm this month.. Sig 226 next..)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11000, "properties": {"category": "alt.atheism", "text": "From: dfuller@portal.hq.videocart.com (Dave Fuller)\nSubject: Re: thoughts on christians\nOrganization: VideOcart Inc.\nX-Newsreader: Tin 1.1 PL3\nLines: 40\n\ncmtan@iss.nus.sg (Tan Chade Meng - dan) writes:\n: \n[ . . . . . ]\n:\n: Personally, I feel that since religion have such a poweful\n: psychological effect, we should let theists be.  But the problem is that\n: religions cause enormous harm to non-believers and to humanity as a whole\n: (holy wars, inquisitions, inter-religious hatred, impedence of science\n: & intellectual progress, us-&-them attitudes etc etc.  Need I say more?).\n: I really don't know what we can do about them.  Any comments?\n: \n\n  I have always held that there should be no attempt to change a persons\nattitude or lifestyle as long as it makes them happy and does not tax\nanybody else. This seems to be ok for atheists. You don't get an atheist\nknocking on your door, stopping you in the airport, or handing out\nliterature at a social event. Theists seem to think that thier form of\nhappy should work for others and try to make it so. \n\n  My sister is a \nborn again, and she was a real thorn in the side for my entire family\nfor several years. She finally got the clue that she couldn't help.\nDuring that period she bought me \"I was atheist, now I'm Xtian\" books\nfor my birthday and Xmas several times. Our birthday cards would contain\nverses. It was a problem. I told my mom that I was going to send my\nsister an atheist piece of reading material. I got a \"Don't you dare\".\nMy mom wasn't religious. Why did she insist that I not send it ??\n\n   Because our society has driven into us that religion is ok to\npreach, non-religion should be self contained. What a crock of shit.\nI finally told my sister that I didn't find her way of life attractive.\nI have seen exactly 0 effort from her on trying to convert me since then.\n\n   I'm sick of religious types being pampered, looked out for, and WORST\nOF ALL . . . . respected more than atheists. There must be an end\nin sight.\n\nDave Fuller\ndfuller@portal.hq.videocart.com\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11001, "properties": {"category": "rec.sport.hockey", "text": "From: stamber@rainbow.ecn.purdue.edu (Kevin L. Stamber)\nSubject: Re: Pens playoff radio coverage (was:Re: Radio stations)\nOrganization: Purdue University Engineering Computer Network\nLines: 18\n\nIn article <gp2011-200493131949@m248-68.bgsu.edu>, gp2011@andy.bgsu.edu (George Pavlic) writes:\n> \n> NOOOOOOOOOOOOOOOOO!  Who's the mindscheme(?) behind this one -- Ted\n> Simmons?  As the saying goes, \"If it ain't broke, don't fix it.\"  I'm 230\n> miles from home (during the school year) and will never be able to pick up\n> DVE.  At least now I can sort of make out what Mike and Steigy say through\n> all the static on KDKA.  This just may be enough reason for me to transfer\n> to Duquesne and live at home.  Who's going to announce on DVE anyway? \n> Paulson and Krenn?  (Just kidding.)\n> \n> George\n\nDon't kid around... They just might listen.\n\nKevin L. Stamber\nPurdue University\nwaiting to hear 'Free Bird' as the new Penguins theme\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11002, "properties": {"category": "comp.windows.x", "text": "From: klute@tommy.informatik.uni-dortmund.de (Rainer Klute)\nSubject: Re: imake - help needed\nOrganization: CS Department, Dortmund University, Germany\nLines: 18\nDistribution: world\nNNTP-Posting-Host: tommy.informatik.uni-dortmund.de\n\nIn article <1993Apr20.101306.21536@def.bae.co.uk>, paul@def.bae.co.uk (Paul\nByrne) writes:\n|> Can someone please give me some pointers to setting up imake in a SUN\n|> OPENWINDOWS\n|> enviornment ? I've checked through all the documentation but can not\n|> find any clues.\n\nSun's OpenWindows imake is broken. I suggest installing imake-pure, MIT's\nX11R5 imake. You can get it from ftp.germany.eu.net in file\n/pub/X11/misc/imake/imake-pure.tar.Z (117807 Byte).\n\n-- \n  Dipl.-Inform. Rainer Klute      I R B :  immer richtig beraten\n  Univ. Dortmund, IRB\n  Postfach 500500         |)|/    Tel.: +49 231 755-4663\nD-W4600 Dortmund 50       |\\|\\    Fax : +49 231 755-2386\n\n  new address after June 30th: Univ. Dortmund, D-44221 Dortmund\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11003, "properties": {"category": "talk.politics.mideast", "text": "From: smith@minerva.harvard.edu (Steven Smith)\nSubject: Re: The U.S. Holocaust Memorial Museum: A Costly and Dangerous Mistake\nIn-Reply-To: dgannon@techbook.techbook.com's message of 21 Apr 1993 07:55:09 -0700\nOrganization: Applied Mathematics, Harvard University\nLines: 15\n\ndgannon@techbook.techbook.com (Dan Gannon) writes:\n>     THE U.S. HOLOCAUST MEMORIAL MUSEUM: A COSTLY AND DANGEROUS MISTAKE\n>\n>                         by Theodore J. O'Keefe\n>\n> [Holocaust revisionism]\n> \n> Theodore J. O'Keefe is an editor with the Institute for Historical\n> Review.  Educated at Harvard University . . .\n\nAccording to the 1990 Harvard Alumni Directory, Mr. O'Keefe failed to\ngraduate.  You may decide for yourselves if he was indeed educated\nanywhere.\n\nSteven Smith\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11004, "properties": {"category": "talk.religion.misc", "text": "From: jmeritt@mental.mitre.org\nSubject: God's promise to the righteous\nOrganization: UTexas Mail-to-News Gateway\nLines: 3\nNNTP-Posting-Host: cs.utexas.edu\n\nPs.92:12: \"The righteous shall flourish like the palm tree.\"\n\nIsa.57:1: \"The righteous perisheth, and no man layeth it to heart.\"\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11005, "properties": {"category": "alt.atheism", "text": "From: jaeger@buphy.bu.edu (Gregg Jaeger)\nSubject: Re: The Inimitable Rushdie\nOrganization: Boston University Physics Department\nLines: 17\n\nIn article <16BB112525.I3150101@dbstu1.rz.tu-bs.de> I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau) writes:\n \n>I assume that you  say here a religious law is for the followers of the\n>religion. That begs the question why the religion has the right to define\n>who is a follower even when the offenders disagree.\n\nNo, I say religious law applies to those who are categorized as\nbelonging to the religion when event being judged applies. This\nprevents situations in which someone is a member of a religion\nwho, when charged, claims that he/she was _not_ a member of the\nreligion so they are free to go on as if nothing had happened.\n\n\n\nGregg\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11006, "properties": {"category": "sci.med", "text": "From: young@serum.kodak.com (Rich Young)\nSubject: Re: Is MSG sensitivity superstition?\nOriginator: young@sasquatch\nNntp-Posting-Host: sasquatch\nReply-To: young@serum.kodak.com\nOrganization: Clinical Diagnostics Division, Eastman Kodak Company\nLines: 86\n\n>>In article <1qnns0$4l3@agate.berkeley.edu> spp@zabriskie.berkeley.edu (Steve Pope) writes:\n>>The mass of anectdotal evidence, combined with the lack of\n>>a properly constructed scientific experiment disproving\n>>the hypothesis, makes the MSG reaction hypothesis the\n>>most likely explanation for events.\n\n   The following is from a critique of a \"60 Minutes\" presentation on MSG\n   which was aired on November 3rd, 1991.  The critique comes from THE TUFTS\n   DIET AND NUTRITION LETTER, February 1992.  [...edited for brevity...]\n\n\t\"Chances are good that if you watched '60 Minutes' last November\n\t3rd [1991], you came away feeling MSG is bad for you. [...] In\n\tthe segment entitled 'No MSG,' for instance, show host Ed Bradley\n\tmakes alarming statements without adequately substantiating them\n\t('millions are suffering a host of symptoms, and some get violently\n\tsick'); peppers his report with sensational but clinically unproven\n\tpersonal testimony...; and speaks of studies on MSG that make the\n\tsubstance seem harmful without explaining just how inconclusive \n\tthose studies are.\n\n\tConsider his making reference at the beginning of the program to\n\ta study conducted at the Eastern Virginia Medical School in order\n\tto back up his comment that there is 'a lot of evidence' that MSG,\n\ta flavor enhancer in Chinese and other Asian cuisines as well as\n\tin many supermarket items, causes headaches.  What he does NOT\n\tmake reference to is the fact that the study was performed not on\n\thumans but on rabbits.\n\n\tOne of the researchers who conducted the study, pharmacologist\n\tPatricia Williams, Ph.D., says it certainly is conceivable that\n\ta small minority of people are sensitive enough to MSG to get \n\theadaches from it.  'But,' she explains, 'the show probably \n\toveremphasized the extent of the problem.'\n\n\tA second lapse comes with mention of Dr. John Olney, a professor\n\tat the Washington University School of Medicine who, Mr. Bradley\n\tremarks, 'says that his 20 years of research with laboratory\n\tanimals shows MSG is a hazard for developing youngsters' because\n\tit poses a threat of irreversible brain damage.  Dr. Olney's\n\tresearch with lab animals does not 'show' anything about human\n\tyoungsters.\n\n\tIn fact, only under extreme circumsrtances did Dr. Olney's \n\texperiments ever bring about any brain damage: when he injected\n\textremely high doses of MSG into rodents, completely bypassing \n\ttheir digestive tracts and entering their bloodstreams more directly,\n\tand when he used tubes to force-feed huge amounts of the substance\n\tto very young animals on an empty stomach.  Of course, neither\n\tof those procedures occurs with humans; they simply take in MSG \n\twith food.  And most of what they take in is broken down by\n\tenzymes in the wall of the small intestine, so that very little\n\treaches the bloodstream -- much to little, in fact, for human\n\tblood levels of MSG to come anywhere near the high concentrations\n\tfound in Dr. Olney's lab animals.....\n\n\tThe World Health Organization appears to be very much aware of\n\tthat fact.  And so does the European Communities' Scientific\n\tCommittee for Food....Both, after examining numerous studies,\n\thave concluded that MSG is safe.\n\n\tTheir determination makes sense, considering that MSG has never\n\tbeen proven to cause all the symptoms that have been attributed\n\tto it -- headaches, swelling, a tightness in the chest, and a\n\tburning sensation, among others.  In fact, the most fail-safe\n\tof clinical studies, the double-blind study..., has consistently\n\texonerated the much-maligned substance.\n\n\tThat's quite fortunate since the alleged hazardous component of\n\tmonosodium glutamate, glutamate, enters our systems whenever\n\twe eat any food that contains protein.  The reason is that one\n\tof the amino acids that make up protein, glutamic acid, is broken\n\tdown into glutamate during digestion.\n\n\tIt's a breakdown that occurs frequently.  Glutamic acid is the\n\tmost abundant of the 20 or so amino acids in the diet.  It makes\n\tup about 15 percent of the protein in flesh foods, 20 percent in\n\tmilk, 25 percent in corn, and 29 percent in whole wheat.\n\n\tThat doesn't mean it's entirely unimaginable that a small number\n\tof people have trouble metabolizing MSG properly and are therefore\n\tsensitive to it...The consensus reached by large, international\n\tprofessional organizations [is that MSG is safe], the same consensus\n\treached by the FDA and the biomedical community at large.\"\n\n\n-Rich Young (These are not Kodak's opinions.)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11007, "properties": {"category": "sci.crypt", "text": "From: C445585@mizzou1.missouri.edu (John Kelsey)\nSubject: \"Rubber-hose cryptanalysis\"\nNntp-Posting-Host: mizzou1.missouri.edu\nOrganization: University of Missouri\nLines: 7\n\n   Some sick part of me really liked that phrase....\n \n   Actually, merely the threat of a *long* prison sentence, even without\na beating, can get most people to give in.  Especially if it's also\npunctuated with a trip to the county jail, where one just happens to get\nlocked up with all the drunk/stoned/crazy folks that are too violent to be\nleft in cells with other people....\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11008, "properties": {"category": "comp.windows.x", "text": "To: gnu-gdb-bug@gatech.edu\nDistribution: world\nFrom: deepak@expert.cc.purdue.edu (Deepak Mulchandani)\nSubject: Help in developing a X-Windows interface for GDB\nOrganization: Motorola, Semiconductor Products Sector\nLines: 39\n\nHi,\n\n  I am trying to write an X-windows based interface that runs on top of GDB. Could \nanyone help me in understanding the way we are supposed to \"fork\" GDB off as a \nsubprocess ?? I currently use pipes but when I try and debug this program, the \nfollowing happens :\n\nPROGRAM :\n\n\tmain()\n\t{\n           int x;\n \n\n\t   printf(\"enter x : \");\n           scanf(\"%d\", &x);\n           printf(\"x = .%d.\\n\", x );\n\n        }\n\nOUTPUT :\n\n\tThe program hangs without returning the output of the printf statement. When I type\nin a value (like 5), then all the printf's output comes out at one time.\n\n\nIs there any other way, besides using PIPES to do this i.e., like ioctl or something else ??\n\nThanks,\n\nDeepak\n\n--------------------------------------------------------------------------------------------\nDeepak Mulchandani\nAdvanced Products Research and Development Laboratory\nMotorola, Semiconductor Products Sector\nAustin, TX\n(512) 928-7642 \t\t\t\t\t\t\t     deepak@inxs.sps.mot.com\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11009, "properties": {"category": "sci.crypt", "text": "From: amolitor@nmsu.edu (Andrew Molitor)\nSubject: Re: The [secret] source of that announcement\nOrganization: Department of Mathematical Sciences\nLines: 29\nDistribution: inet\nNNTP-Posting-Host: moink.nmsu.edu\n\nIn article <gradyC5uAMw.BnG@netcom.com> grady@netcom.com (1016/2EF221) writes:\n>I guess the cryptowranglers read this group too.  But of\n>course I knew that because it is so easy to do.  There is\n>not a single doubt in my mind that every byte that passes\n>every significant gateway or 'bone is captured for the\n>colligation of data about __________?  (Maybe your name is here).\n\n\tI really like these claims. Where did they come from? We hear,\npractically daily, that the NSA monitors, oh, everything. They can\ncrack anything. They'd never release a cryptosystem they couldn't crack.\n\n\tWhere do people get these fascinating facts? 'The Puzzle Palace'?\nIf you can get it for a buck, 2nd hand, it must be true, eh? I'm pretty\nsure the NSA is supposed to, among many other things, provide high-quality\ncryptosystems to a variety of places. I don't recall reading anywhere\nreliable that they're supposed to:\n\n\t1) Monitor my phonecalls.\n\t2) Monitor usenet.\n\t3) Provide only cryptosystems they can easily crack.\n\t4) etc etc.\n\n\tThis is not to say that they *don't*, they might. But you don't\nknow that they do, and you have no evidence that they do, for almost\nall values of you. It follows, therefore, that for most values of 'you',\nyour claims about the NSA border on paranoia.\n\n\tAndrew\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11010, "properties": {"category": "sci.crypt", "text": "From: gtoal@gtoal.com (Graham Toal)\nSubject: Re: Hard drive security for FBI targets\nLines: 18\n\n\tFrom: res@colnet.cmhnet.org (Rob Stampfli)\n\n\t>separate locations to gain credibility. If they are seized and you are\n\t>compelled to decrypt it, you simply explain that you are an amateur\n\t>cryptologist playing around with one time pads, and that the first\n\t>file is the pad for the second. They XOR the two files, and sure\n\t>enough, out pops a copy of \"War and Peace\".\n\n\tSo, judging from recent history, at this point they drop the original\n\tcharges, preemptively find you guilty of copyright violations, and seize\n\tyour computer, your home, and your financial reserves under federal\n\tforfeiture laws.\n\nAh no - what *really* happens is that they turn up at the court with\n*another* file which when exored with your document gives up the famous\nE911 document :-)  [And I tell you, some judges would fall for it...]\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11011, "properties": {"category": "sci.electronics", "text": "From: corwin@igc.apc.org (Corwin Nichols)\nSubject: Re: Fujitsu 8\" HDD\nLines: 13\nNf-ID: #R:1993Apr17.204351.2256@aber.ac.uk:-1606259317:cdp:1466200011:000:729\nNf-From: cdp.UUCP!corwin    Apr 19 08:23:00 1993\n\n\nThe Fujitsu 2322 uses what is known as an 'SMD' interface (Storage Module\nDevice?).  A lot of older minis used it.  Sun still does on their server\nmodels.  There are several different speeds of SMD, and I think that the \nFuji drive you have is rated at about 24 Mb/sec (thats megabits).  There\nused to be several companies that made couplers for the PC (Interphase in\nTexas being one), but I think that the market pretty much has dried up.\nControllers for this type of drive are readily available for VME buses\nthough.  Rumor has it that there is a SMD to SCSI adapter available, but\nI think that it was designed for slower SMD devices.  In other words,\nif you have a PC or Mac, that drive is pretty much dogmeat.\nCheers,\nCorwin\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11012, "properties": {"category": "talk.politics.mideast", "text": "From: Center for Policy Research <cpr@igc.apc.org>\nSubject: Hebrew labor: racist connotations\nNf-ID: #N:cdp:1483500356:000:1777\nNf-From: cdp.UUCP!cpr    Apr 23 15:18:00 1993\nLines: 37\n\n\nFrom: Center for Policy Research <cpr>\nSubject: Hebrew labor: racist connotations\n\n\nAVODA IVRIT - HEBREW LABOR\n---------------------------------\n\n\"Hebrew labor\" is a concept which has served the Zionist movement\nfor a long time.  It has a double-barreled message: 1) The new Jew\nmust learn to do physical labor, i.e. working the land; 2) The\nland in this country must pass into Jewish hands, i.e. to the same\nnew Jew who has \"learned\" to work it. Both aspects of the\ntwo-pronged concept of \"Hebrew labor\" have racist connotations. On\nthe one hand, the diaspora Jew's lack of training in physical\nlabor is a myth shared by Zionists and antisemites.  On the other\nhand, its meaning in practice has been the displacement of the\nArab farmer from the source of his livelihood.\n\nThe occupation and the cheap Palestinian labor which streamed from\nthe occupied territories to the factories, orchards, and\nhot-houses of Israel relegated the myth of \"Hebrew labor\" to the\nhistory books and nostalgic memories of the Zionist Movement. It\nhas blossomed forth anew, however, as the government's answer to\nproblems caused by the closure of the territories. Today too this\nconcept has two functions: 1) to give a progressive look to the\nclosing of the Palestinian population.  Or in the words of\nEnvironment Minister Yossi Sarid, \"I have no tears for those who\nget rich off of cheap labor\". 2) to furnish an answer to the\nunemployed Israeli who complains of being obliged to work for\nwages that are lower than the unemployment insurance he receives.\n\nThe Israeli government is considering plans to import labor from\nthe far- East to replace native people, Palestinians, who work in\ntheir own country, thus creating conflicting interests between two\nethnical communities and ruling over them.\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11013, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nOrganization: ClariNet Communications Corp.\nDistribution: na\nLines: 37\n\nThe stragegy of the government is interesting.  The real fear comes from\nthem doing more than this.\n\nThis is a voluntary program, and thus harder for us to object to on\nthe surface.\n\nTheir strategy is a business one rather than legal one.  They are\npushing to get a standard in place, a secret standard, and if they\nget it as a standard then they will drive competitors out of the market.\nIt will be legal to sell better, untapable encryption that doesn't have\nregistered keys, but it will be difficult, and thus not a plan for\nmost phone companies.\n\nYou see, with clipper chip phones you'll be able to talk to any\ncellular company, or other phones or ports because they will follow\nthe standard.  AT&T has already announced a clipper chip encryption\nproduct.  The government has marketed hard to get major vendors to\nuse these chips.   If they get enough market share, they will rule.\n\nAnd thus there will be very little market for systems that can't be\ntapped by the police.  The public isn't that concerned about it now,\nafter all.  They freely do calls that anybody with an old TV can listen\nto today!  They won't pay big extra bucks for proprietary phones that secure\nthem only from the police.\n\nWell, some people will buy these phones, but they will only work with\nother proprietary phones, so the market will be small and the phones\nexpensive.  Unless they are made in numbers large enough to sell them\ncheap, only the Mob will buy them.\n\nAnd this means that the FBI will want to track the customer lists of\nbetter encryption phones, because \"the only reason a person would want\none is to evade the police.\"\n\nInteresting.\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11014, "properties": {"category": "rec.autos", "text": "From: jimf@centerline.com (Jim Frost)\nSubject: Re: WARNING.....(please read)...\nOrganization: CenterLine Software, Inc.\nLines: 16\nNNTP-Posting-Host: 140.239.3.202\n\nejv2j@Virginia.EDU (\"Erik Velapoldi\") writes:\n>What the hell is happening to this great country of ours?  I\n>can see boyhood pranks of peeing off of bridges and such, but\n>20 pound rocks??!  Has our society really stooped this low??\n\nYou make it sound like this behavior is new.  It isn't.  A lot of\npedestrian bridges have fencing that curls up over the sidewalk to\nmake this kind of think a lot harder to do.\n\nI don't understand the mentality myself, but then again I couldn't\nfigure out MOVE! (I'm glad they bombed 'em) or the Waco Wackos either.\n\n(Newsgroup list trimmed significantly)\n\njim frost\njimf@centerline.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11015, "properties": {"category": "rec.motorcycles", "text": "From: bleve@hoggle2.uucp (Bennett Lee Leve)\nSubject: Re: Choking Ninja Problem\nIn-Reply-To: starr@kuhub.cc.ukans.edu's message of 13 Apr 93 15:34:41 CST\nOrganization: Organized?? Surely you jest!\nLines: 22\n\nIn article <1993Apr13.153441.49118@kuhub.cc.ukans.edu> starr@kuhub.cc.ukans.edu writes:\n\n\n >   I need help with my '85 ZX900A, I put Supertrapp slip-on's on it and\n >   had the carbs re-jetted to match a set of K&N filters that replaced\n >   the stock airbox.  Now I have a huge flat spot in the carburation at\n >   about 5 thousand RPM in most any gear.  This is especially frustrating\n >   on the highway, the bike likes to cruise at about 80mph which happens\n >   to be 5,0000 RPM in sixth gear.  I've had it \"tuned\" and this doesn't\n >   seem to help.  I am thinking about new carbs or the injection system\n >   from a GPz 1100.  Does anyone have any suggestions for a fix besides\n >   restoring it to stock?\n >   Starr@kuhub.ukans.cc.edu\t the brain dead.\" -Ted Nugent\n\nIt sound like to me that your carbs are not jetted properly.\nIf you did it yourself, take it to a shop and get it done right.\nIf a shop did it, get your money back, and go to another shop.\n-- \n-----------------------------------------------------------------------\n|Bennett Leve    84 V-65 Sabre            |   I'm drowning, throw     |\n|Orlando, FL     73 XL 250                |   me a bagel.             |\n|hoggle!hoggle2!bleve@peora.sdc.ccur.com  |                           |\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11016, "properties": {"category": "comp.sys.mac.hardware", "text": "From: feilimau@leland.Stanford.EDU (Christopher Yale Lin)\nSubject: Mac IIsi Power Limitations\nSummary: What are they?\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 9\n\n\nI own a Mac IIsi and am considering upgrades (cards, hard drive, etc).\nCan you tell me what the power limitations are for 1) the PDS slot\nand 2) the hard drive power feed. Secondly, Can you tell me if there\nis a separate limit for each, or if instead, there is a single limit\nfor both combined?\n\nfelix lin, a new reader of comp.sys.mac.hardware\nfeilimau@leland.stanford.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11017, "properties": {"category": "rec.motorcycles", "text": "From: kens@lsid.hp.com (Ken Snyder)\nSubject: Re: GGRRRrrr!!  Cages double-parking motorcycles pisses me off!\nArticle-I.D.: hpscit.1qkomb$c22\nDistribution: world\nOrganization: Hewlett Packard Santa Clara Site\nLines: 16\nNNTP-Posting-Host: labkas.lsid.hp.com\nX-Newsreader: TIN [version 1.1 PL8.10]\n\nReading all you folks things to do to illegally parked cars made me\nwonder who's going to carry cinder blocks on a bike(?!?!?) or is \nready to do serious damage (key carvings etc.) to a cage.  Then I\nhad an idea--chain lube isn't just for chain's anymore!!!  It seems\nmore reasonable to me, no permanent damage but lots of work to get\noff!  (Don't ask me how I know :)  Use it anywhere, the windshield,\nthe door handles, in the keyhole, etc.  What a nasty mood I'm in.\nIt's raining again...\n\n _______________________ K _ E _ N ____________________________\n|                                                              |\n| Ken Snyder              ms/loc: 330 / UN2                    |\n| Hewlett-Packard Co.     LSID  : Lake Stevens Instrument Div. |\n| 8600 Soper Hill Road    gte/tn: (206) 335-2253 / 335-2253    |\n| Everett, WA 98205-1298  un-ix : kens@lsid.hp.com             |\n|______________________________________________________________|\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11018, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: george!james@iowegia.dsm.ia.us\nSubject: Re: Toshiba 3401B CD-ROM:  Any problems?\nOrganization: Organization for creative time-wasting\nX-Newsreader: rusnews v0.96\nLines: 21\n\nmsmith@beta.tricity.wsu.edu (Mark Smith) writes:\n\n> I'm thinking about getting a Toshiba 3401 CD-ROM and hooking it up\n> through the SCSI port on a Media Vision Pro Audio Spectrum sound board.\n> Does anybody have this configuration out there?  If so, does it work?\n> \n> For anybody in general who has the Toshiba 3401 CD-ROM drive, have you\n> had any hadware problems?  Door not opening, scratched disks, door not\n> closing (getting stuck or not closing all the way), CD holder jamming\n> and any other CD related problems.\n\n\tI have one and it is my favorite CD-ROM drive so far.  I also have \na NEC-74 and have had experience with several other drives (Various \nPhillips drives)\n\n\tThe 3401 is faster than the NEC, I like its door better (the NEC \nneeds 2 hands), the XA handling (The NEC needs to be re-booted to go from \nXA to ROM while the 3401 does it on the fly), All in all I am seriously \nconsidering replacing my NEC with another Toshiba.\n\n\t\t\t\t\t\tJWS\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11019, "properties": {"category": "rec.motorcycles", "text": "From: behanna@syl.nj.nec.com (Chris BeHanna)\nSubject: Re: GOT MY BIKE! (was Wanted: Advice on CB900C Purchase)\nKeywords: CB900C, purchase, advice\nOrganization: NEC Systems Laboratory, Inc.\nLines: 22\n\nIn article <1993Apr15.180644.25263@ll.mit.edu> jburnside@ll.mit.edu (jamie w burnside) writes:\n>( Sure is alot harder to load on a trailer than the KDX200 was. )  I should\n>be road legal tomorrow.  I am ignoring the afforementioned concerns about \n>the transmission and taking my chances.\n\n\tThere should be no worries about the trans.\n\n>Being a reletively new reader, I am quite impressed with all the usefull\n>info available on this newsgroup.  I would ask how to get my own DoD number,\n>but I'll probably be too busy riding ;-).\n\n\tDoes this count?\n\n$ cat dod.faq | mailx -s \"HAHAHHA\" jburnside@ll.mit.edu (waiting to press\n\t\t\t\t\t\t\t return...)\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - needs a name\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11020, "properties": {"category": "talk.politics.misc", "text": "From: cramer@optilink.COM (Clayton Cramer)\nSubject: Re: New Study Out On Gay Percentage\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 19\n\nIn article <C5L0v1.JCv@news.cso.uiuc.edu>, dans@uxa.cso.uiuc.edu (Dan S.) writes:\n> Don't forget about the culture.  Sadly, we don't (as a society) look upon\n> homosexuality as normal (and as we are all too well aware, there are alot\n> of people who condemn it).  As a result, the gay population is not encouraged\n> to develop \"non-promiscuous\" relationships.  In fact there are many roadblocks\n> put in the way of such committed relationships.  It is as if the heterosexual\n\nSuch as?  Not being able to get married isn't a roadblock to a permanent\nrelationship.  Lack of a marriage certificate doesn't force a couple\nto break up.  This is an excuse used by homosexuals because the \nalternative is to ask why they are so much more promiscuous than \nstraights.\n\n> Dan\n\n\n-- \nClayton E. Cramer {uunet,pyramid}!optilink!cramer  My opinions, all mine!\nRelations between people to be by mutual consent, or not at all.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.520+0000", "event": "documents", "entityId": 11021, "properties": {"category": "sci.med", "text": "From: Lauger@ssdgwy.mdc.com (John Lauger)\nSubject: Imitrex and heart attacks?\nOrganization: McDonnell Douglas Aerospace\nLines: 20\nDistribution: world\nNNTP-Posting-Host: q5020598.mdc.com\n\nMy girlfriend just started taking Imitrex for her migraine headaches.  Her\nneurologist diagnosed her as having depression and suffering from rebound\nheadaches due to daily doses of analgesics.  She stopped taking all\nanalgesics and caffine as of last Thursday (4/15).  The weekend was pretty\nbad, but she made it through with the help of Imitrex about every 18 hours.\n Her third injection of Imitrex, during the worst of the withdrawl on\nFriday and six hours after the first of the day, left her very sick.  Skin\nwas flushed, sweating, vomiting and had severe headache pain.  It subsided\nin an hour or so.  Since then, she has been taking Imitrex as needed to\ncontrol the pain.  Immediately after taking it, she has increased head pain\nfor ten minutes, dizziness and mild nausea and mild chest pains.  A friend\nof hers mentioned that her doctor was wary of Imitrex because it had caused\nheart attacks in several people.  Apparently the mild chest pains were\ncommon in these other people prior to there attacks.  Is this just rumor? \nHas anyone else heard of these symptoms?  My girlfriend also has Mitral\nValve Prolapse.\n\nOpinions are mine or others but definately not MDA's!\nLauger@ssdgwy.mdc.com\nMcDonnell Douglas Aerospace, Huntington Beach, California, USA\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11022, "properties": {"category": "comp.sys.mac.hardware", "text": "From: petrack@vnet.IBM.COM\nSubject: Serial Line connection between Duo 210 and PC???\nReply-To: petrack@vnet.IBM.COM\nDisclaimer: This posting may contain no views at all\nNews-Software: Usenet 3.1\nLines: 45\n\nI have tried almost everything under the sun to get a null modem connection\nbetween a Mac Duo 210 and a PC. I have used MacKermit and VersaTerm on\nthe Mac side. I have used Procomm, Kermit, and Softerm (on OS/2) on\nthe PC (or PS) side. I have used non-Hardware handshaking and hardware\nahdshaking cables. And know MY hands are shaking from the effort. Nothing\nhas allowed file transfers from the Mac to the PS.\n\nIn general, I can type back and forth with no trouble, but only if both sides\nare set to speeds OVER 9600 baud. I cannot send files from the Mac to the\nPS at all, and file transfers from the Duo to the PS are not possible.\nWhen I do a straight ascii send, I can send from the PS to the Duo flawlessly.\nI can send Binhex files this way quite fast, and I know that the\ntransmission is error free.\nBut straight ascii sent from the Mac to the PS is full of errors.\nUnless, of course, I do text pacing so slow that it is like human\ntyping. (well, like 2-3 times faster than human typing).\n\nI would like to hear from ANYONE who has been able to transfer files\nfrom a Duo 210 to a PS via modem or null modem. If you can do it, please\ntell me your EXACT combination of hardware and software. Obviously, I am\ntalking of a true serial port modem, not the express modem. Maybe some\nkind soul with access to a modem and a Duo 210 can check this out for me.\n\nRight now, I am of the opinion that it won't work at high speeds because\nof the power interrupts on the Duo, and it won't work at low speeds\nbecause of some crazy reason I don't understand.\n\nCould I hear from someone attesting that they can really pump information\nout the serial port of a Duo 210 fast? Like via a modem or via a\nsys-ex dump?\n\nCould anyone with a Duo help me out?? I am going absolutely INSANE.\nI wanna know if the problem is MY Duo, or all Duo 210s, or all Duos,\nor just me.\n\nYes, I have checked the cable 1,000,000 times. And not only can I type\nback and forth, but Zterm alerts the users if s/he uses hardware handshaking\nand CTS is down. So I know that hardware handshaking is working. And also,\nAccording to Zterm port stats, the buffer never overflows.\n\nPlease help me figure out what's going on...\n\nScott Petrack\nPetrack@haifasc3.vnet.ibm.com\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11023, "properties": {"category": "alt.atheism", "text": "From: I3150101@dbstu1.rz.tu-bs.de (Benedikt Rosenau)\nSubject: Re: Americans and Evolution\nOrganization: Technical University Braunschweig, Germany\nLines: 67\n\nIn article <1pq47tINN8lp@senator-bedfellow.MIT.EDU>\nbobs@thnext.mit.edu (Robert Singleton) writes:\n \n(Deletion)\n>\n>I will argue that your latter statement, \"I believe that no gods exist\"\n>does rest upon faith - that is, if you are making a POSITIVE statement\n>that \"no gods exist\" (strong atheism) rather than merely saying I don't\n>know and therefore don't believe in them and don't NOT believe in then\n>(weak atheism). Once again, to not believe in God is different than saying\n>I BELIEVE that God does not exist. I still maintain the position, even\n>after reading the FAQs, that strong atheism requires faith.\n>\n \nNo it in the way it is usually used. In my view, you are saying here that\ndriving a car requires faith that the car drives.\n \nFor me it is a conclusion, and I have no more faith in it than I have in the\npremises and the argument used.\n \n \n>But first let me say the following.\n>We might have a language problem here - in regards to \"faith\" and\n>\"existence\". I, as a Christian, maintain that God does not exist.\n>To exist means to have being in space and time. God does not HAVE\n>being - God IS Being. Kierkegaard once said that God does not\n>exist, He is eternal. With this said, I feel it's rather pointless\n>to debate the so called \"existence\" of God - and that is not what\n>I'm doing here. I believe that God is the source and ground of\n>being. When you say that \"god does not exist\", I also accept this\n>statement - but we obviously mean two different things by it. However,\n>in what follows I will use the phrase \"the existence of God\" in it's\n>'usual sense' - and this is the sense that I think you are using it.\n>I would like a clarification upon what you mean by \"the existence of\n>God\".\n>\n \nNo, that's a word game. The term god is used in a different way usually.\nWhen you use a different definition it is your thing, but until it is\ncommonly accepted you would have to say the way I define god is ... and\nthat does not exist, it is existence itself, so I say it does not exist.\n \nInterestingly, there are those who say that \"existence exists\" is one of\nthe indubitable statements possible.\n \nFurther, saying god is existence is either a waste of time, existence is\nalready used and there is no need to replace it by god, or you are implying\nmore with it, in which case your definition and your argument so far\nare incomplete, making it a fallacy.\n \n \n(Deletion)\n>One can never prove that God does or does not exist. When you say\n>that you believe God does not exist, and that this is an opinion\n>\"based upon observation\", I will have to ask \"what observtions are\n>you refering to?\" There are NO observations - pro or con - that\n>are valid here in establishing a POSITIVE belief.\n(Deletion)\n \nWhere does that follow? Aren't observations based on the assumption\nthat something exists?\n \nAnd wouldn't you say there is a level of definition that the assumption\n\"god is\" is meaningful. If not, I would reject that concept anyway.\n \nSo, where is your evidence for that \"god is\" is meaningful at some level?\n   Benedikt\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11024, "properties": {"category": "comp.graphics", "text": "From: inu530n@lindblat.cc.monash.edu.au (I Rachmat)\nSubject: Fractal compression\nSummary: looking for good reference\nKeywords: fractal\nOrganization: Monash University, Melb., Australia.\nLines: 6\n\nHi... can anybody give me book or reference title to give me a start at \nfractal image compression technique. Helps will be appreciated... thanx\n\ninu530n@lindblat.cc.monash.edu.au\ninu530n@aurora.cc.monash.edu.au\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11025, "properties": {"category": "talk.religion.misc", "text": "From: rosst@pogo.wv.tek.com (Ross Taylor)\nSubject: Re: Davidians and compassion\nOrganization: Tektronix, Inc., Wilsonville,  OR.\nLines: 9\n\nIs there evidence independent of the FBI that indicates that the Branch\nDavidians set the fire?  What have the survivors said?  Did the press see\nanything?\n\nThere is, unfortunately, precedent for the U.S. government saving children by\nroasting them alive.  (There is precedent for religious self-imolation\nas well.)\n\nI still wonder why the government couldn't just leave them alone.\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11026, "properties": {"category": "rec.autos", "text": "From: maloney@badlands.NoDak.edu (Pat T Maloney)\nSubject: Pontiac e-mail Car clubs\nNntp-Posting-Host: badlands.nodak.edu\nOrganization: North Dakota Higher Education Computing Network\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 8\n\n\nI am interested to know if there is any Pontiac e-mail car clubs out\nthere?  Has anyone started one, or is anybody thinking about starting one.\nThanks for any info you can give me\n\nmaloney@badlands.NoDak.edu\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11027, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: chakaw@stein.u.washington.edu (Chak-Yoon Aw)\nSubject: Is there any documentation for Microsoft Diagnostics?\nArticle-I.D.: shelley.1qk9uqINNh0s\nDistribution: na\nOrganization: University of Washington, Seattle\nLines: 10\nNNTP-Posting-Host: stein.u.washington.edu\n\nHi,\n\nI found what I believe is an undocumented feature in my windows directory,\nMicrosoft Diagnostics, ver 2.00. I am specifically interested in a more\nin depth explanation of the legends in the memory mapping report.\n\nThanks.\n\nChak Aw\nchakaw@u.washington.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11028, "properties": {"category": "sci.med", "text": "From: sasghm@theseus.unx.sas.com (Gary Merrill)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOriginator: sasghm@theseus.unx.sas.com\nDistribution: inet\nNntp-Posting-Host: theseus.unx.sas.com\nOrganization: SAS Institute Inc.\nLines: 43\n\n\nIn article <1qk4qqINNgvs@im4u.cs.utexas.edu>, turpin@cs.utexas.edu (Russell Turpin) writes:\n|> -*-----\n|> In article <1993Apr15.150550.15347@ecsvax.uncecs.edu> ccreegan@ecsvax.uncecs.edu (Charles L. Creegan) writes:\n|> > What about Kekule's infamous derivation of the idea of benzene rings\n|> > from a daydream of snakes in the fire biting their tails?  Is this\n|> > specific enough to count?  Certainly it turns up repeatedly in basic\n|> > phil. of sci. texts as an example of the inventive component of\n|> > hypothesizing. \n|> \n|> I think the question is: What is extra-scientific about this?  \n|> \n|> It has been a long time since anyone has proposed restrictions on\n|> where one comes up with ideas in order for them to be considered\n|> legitimate hypotheses.  The point, in short, is this: hypotheses and\n|> speculation in science may come from wild flights of fancy, \n|> daydreams, ancient traditions, modern quackery, or anywhere else.\n|> \n|> Russell\n|> \n\nYes, but typically they *don't*.  Not every wild flight of fancy serves\n(or can serve) in the appropriate relation to a hypothesis.  It is\nsomewhat interesting that when anyone is challanged to provide an\nexample of this sort the *only* one they come up with is the one about\nKekule.  Surely, there must be others.  But apparently this is regarded\nas an *extreme* example of a \"non-rational\" process in science whereby\na successful hypothesis was proposed.  But how non-rational is it?\n\nOf course we can't hope (currently at least) to explain how or why\nKekule had the daydream of snakes in the fire biting their tails.\nSurely it wasn't the *only* daydream he had.  What was special about\n*this* one?  Could it have had something to do with a perceived\n*analogy* between the geometry of the snakes and problems concerning\ngeometry of molecules?  Is such analogical reasoning \"extra-scientific\"?\nOr is it rather at the very heart of science (Perice's notion of abduction,\nthe use of models within and across disciplines)?  Upon close examination,\nis there a non-rational mystical leap taking place, or is it perhaps\ncloser to a formal (though often incomplete) analogy or model?\n-- \nGary H. Merrill  [Principal Systems Developer, C Compiler Development]\nSAS Institute Inc. / SAS Campus Dr. / Cary, NC  27513 / (919) 677-8000\nsasghm@theseus.unx.sas.com ... !mcnc!sas!sasghm\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11029, "properties": {"category": "talk.politics.guns", "text": "From: VEAL@utkvm1.utk.edu (David Veal)\nSubject: Re: \"militia\" (incredibly long)\nLines: 47\nOrganization: University of Tennessee Division of Continuing Education\n\nIn article <C5n0vy.EJ6@ulowell.ulowell.edu> jrutledg@cs.ulowell.edu (John Lawrence Rutledge) writes:\n\n>In article <1qna9m$nq8@transfer.stratus.com>, cdt@sw.stratus.com (C. D. Tavares) writes:\n>-> \n>-> Again, my response is, \"so what?\"  Is Mr. Rutledge arguing that since\n>-> the local and federal governments have abandoned their charter to support\n>-> such activity, and passed laws prohibiting private organizations from \n>-> doing so, that they have eliminated the basis for the RKBA?   On the\n>-> contrary, to anyone who understands the game, they have strengthened it.\n>\n>No, I originally argued that the Second Amendment was \"a little bit\n>and an anachronism.\"  These prohibiting laws are examples why the are\n>an anachronism.  After all, laws in made by representatives of the \n>people.  These representatives of the people have already decided\n>that the Second Amendment does not apply or is too broad in some\n>cases.  Since these representatives feel an unconditional \n>interpretation is not wanted, then it is probable that they majority\n>of the people feel the same way.  If this is so, it is an example\n>of the people using their power of government.  If this is not\n>how the people feel, the people should stand up and state their wishes.\n\n       I'll point out that the whole point of the difficult amendment\nprocess was to require a super-majority to change the Supreme Law,\nmaking it impossible for a \"majority\" of the people to simply change\nthe law on a whim.  Simply changing the meaning based on \"the\nrepresentatives\" of the people effectively destroys the amendment\nprocess.  The State's, you know, are also entitled to a say under\nthat process.\n \n>> Mox nix, Mr. Rutledge.  YOU are the only one here claiming that the\n>-> RKBA is dependent on the existence of a top-flight, well-regulated\n>-> militia.  Why this is a false assumption has already been posted a \n>-> number of times.  \n>\n>No, I simple stated that the people have a right to \"join a well\n>organized militia.\" \n\n       I'll note that that right could be considered protected under\nthe first amendment's protection of peaceful assembly.  Unless\nyou would consider a militia inherently non-peaceful, then they've\nstated the same thing twice.\n\n------------------------------------------------------------------------\nDavid Veal Univ. of Tenn. Div. of Cont. Education Info. Services Group\nPA146008@utkvm1.utk.edu - \"I still remember the way you laughed, the day\nyour pushed me down the elevator shaft;  I'm beginning to think you don't\nlove me anymore.\" - \"Weird Al\"\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11030, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: Re: Once tapped, your code is no good any more.\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 6\nDistribution: na\nNNTP-Posting-Host: access.digex.net\n\n  For that matter, it shouldn't be that difficult to design a black box\nthat gives off EMR similar to a monitor with gibberish on the screen....\n\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11031, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: al@col.hp.com (Al DeVilbiss)\nSubject: Re: Zeos Computers\nOrganization: HP Colorado Springs Division\nLines: 22\nDistribution: world\nNNTP-Posting-Host: reptile4.col.hp.com\n\nmspeed@ccwf.cc.utexas.edu (Matthew P. Speed) writes:\n> I am looking at purchasing a 486 system from Zeos computers. I would appreciate\n> if people could give me some feedback about the quality of their products and\n> customer service along with any advice about which systems people like.\n> Thanks in advance.\n> \n> \nI bought a 386DX33 system a little over 2 years ago, and was satisfied with\neverything about Zeos.  That computer went off to grad school with my son and\nI replaced it with a 486DX2/66 pkg 4 (345 MBHD, 16MB ram) with Diamond Viper,\n128K level 2 cache, and tower upgrades, delete the CTX monitor.  I got a\n17\" HP D1193A monitor employee purchase.  This is a *great* system, fast,\nquiet, solidly built, not a single glitch bringing it up.  Tech support seems \nbusier now than 2 years ago.  I called with a configuration question, and\nthey called back 4 hours later with the right answer.  I think there's a\nslight premium over Gateway prices, but IMHO Zeos is worth it. BTW they \nhave enough 800 lines that I've never gotten a busy signal calling sales,\ncustomer service, or tech support. Now, you usually wait 5 or 10 minutes to\ntalk to someone, but at least you get in the queue and wait on their dime. \n-- \nAl DeVilbiss\nal@col.hp.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11032, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: More Cool BMP files??\nFrom: Aengus Lawlor <RBYAML@rohvm1.rohmhaas.com>\nDistribution: usa\nOrganization: Rohm and Haas Company\nLines: 36\n\nIn article <C61yHr.n1I@world.std.com>, paladin@world.std.com (Thomas G\nSchlatter) says:\n>\n>In article <1993Apr24.062055.7123@seas.gwu.edu> louray@seas.gwu.edu (Michael\n>Panayiotakis) writes:\n>>>\n>>>\n>>>>BEGIN ----------------------- CUT HERE ---------------\n>>>>begin 666 ntreal.bmp\n>>>>M0DTV5P<      #8$   H    ( ,  %@\"   !  @\n>>>>M            $    ! @@P![( @ \"!A> #!_F   #CD ,56# #D.  !=>_D\n>>>>M4PA: &4H@P\"L,1  $U); &N+L0 ($!@ +4WA !,J.0 B/%H 9TJ3 $KKZP 0\n>>>>M,;, TD4I /ZGB0!)#UH (0A.  \"6E@ I !@ 4B!I \" !  !BBZX #!E1 )BV\n>>>\n>>>Deleted a lot of stuff!!!!!!!\n>>>How do you convert this to a bit map???\n>>\n>>You're supposed to delete everything above the \"cut here\" mark, and\n>>below the lower cut here mark, and uudecode it.  but\n>>*I was not able to: unexpected end of file encountered at the last line.\n>>\n>>could you please re-post it, or tell be what I'm doing wrong?\n>\n>Sounds like the original poster of the bitmap uuencoded the file\n>on a DOS machine, and you tried to uudecode it on a Un*x machine, and your\n>uudecode program balked at the carraige-returns.\nWell, my newsreader shows the UUE file as having lots of spaces, which\nmeans it's broken before I even try to download it. Did anyone get it\nto uudecode successfully?\n\nAengus\n--\nRBYAML@ROHMHAAS.COM                    Aengus Lawlor\nRBYAML@ROHVM1.BITNET                   (who used to be ALAWLOR@DIT.IE)\n\"How about some of that famous Dublin wit, Barman?\"\n\"Certainly, sir. Would that be Dry or Sparkling?\"\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11033, "properties": {"category": "comp.sys.mac.hardware", "text": "From: adamsj@gtewd.mtv.gtegsc.com\nSubject: RACK MOUNT 2CI, 650 Prices.\nOrganization: GTE Govt. Systems, Electronics Def. Div.\nLines: 16\n\nHere's a good one: Does anyone know of a product that allows\nme to RACK MOUNT my 2CI (or maybe 650 if I blow some more\nmoney...) ??? My application is music, and would like to be\nable to haul it around (would probably plan to get an MO drive\nor something so I don't have to depend on an internal fixed\nhard drive - i.e., may be pretty rough on an internal HD...)\n\nI'm in the San Francisco Bay Area, if that matters.\nAlso, anyone have any info on 650's and Midi? And, would anyone\ncare to email me with the price they paid for their 650? Or if\nthere's a price list FAQ, never mind... Just curious about the\ndifference between the best retailers and the local university\npricing...\n\nThanks, Jeff Adams   \nadams@upse01.mtv.gtegsc.com\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11034, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: wdwink01@fsrz1.rz.uni-passau.de (WINKELHAKE OLAF)\nSubject: Re: WANTED: Info on Asymetrix/Toolbook\nOrganization: University of Passau - Germany\nLines: 30\nNNTP-Posting-Host: pc5.rz.uni-passau.de\n\nIn article <1993Apr19.065354.14002@prl.philips.nl> dewinter@prl.philips.nl (Rob de Winter) writes:\n\n>Does anyone know the phone and fax number of the Asymetrix\n>Corporation. I am also interested in their e-mail address.\n\n>I would also like to know what the current status of their product Toolbook\n>is. I received the last update 1.5 about 1.5 year ago. Are their any new\n>developments or is Toolbook slowly dying?\n\n>Regards,\n\n>Rob de Winter.\n\n\n>-- \n>*** Nothing beats skiing, if you want to have real fun during holidays. ***\n>***       Rob de Winter  Philips Research, IST/IT, Building WL-1        ***\n>***       P.O. Box 80000, 5600 JA  Eindhoven. The Netherlands           ***\n>***       Tel: +31 40 743621  E-mail: dewinter@prl.philips.nl           ***\n\nRob,\n\ntheir e-mail adress is support@asymetrix.com\n\nI've heard V.2.0 is in beta.\n\nhave a look at bitserv.list.toolb-l - which is a toolbook list.\n\nRegards,\nOlaf Winkelhake\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11035, "properties": {"category": "talk.politics.guns", "text": "From: cmort@NCoast.ORG (Christopher Morton)\nSubject: Re: Ban All Firearms !\nReply-To: cmort@ncoast.org (Christopher Morton)\nOrganization: North Coast Public Access *NIX, Cleveland, OH\nLines: 24\n\nAs quoted from <1993Apr14.184448.2331@gnv.ifas.ufl.edu> by jrm@gnv.ifas.ufl.edu:\n\n> \tFirearms tend to fall into this low dollar/pound area.\n> \tIt would not be economic to smuggle them in. All production\n> \twould have to be local. There are not all that many people\n> \twho have both the skill AND motivation to assemble worthwhile\n> \tfirearms from scratch. High-ranking crime figures could\n> \tobtain imported Uzis and such, but the average person, and\n> \taverage thug, would be lucky to get a zip-gun - and would\n> \tpay through the nose for it. \n\nYou don't know much about modern automatic weapons, do you?  Just about ANYBODY\nwith basic manufacturing skill can turn out HIGH QUALITY submachineguns.  A \ncouple of high school shop teachers were recently arrested for building \nsubmachineguns in the school shop.\n\nI suggest that you go to the library and find a copy of \"Smallarms of the \nWorld\".  Your entire premise is based on non-factual assumptions.\n\n-- \n===================================================================\n\"You're like a bunch of over-educated, New York jewish ACLU lawyers\nfighting to eliminate school prayer from the public schools in\nArkansas\" - Holly Silva\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11036, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Re: Magellan Update - 04/16/93\nOrganization: Jet Propulsion Laboratory\nLines: 29\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: Magellan, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nIn article <1993Apr20.072706.19981@cs.ruu.nl>, jhwitten@cs.ruu.nl (Jurriaan Wittenberg) writes...\n>In <19APR199320262420@kelvin.jpl.nasa.gov> baalke@kelvin.jpl.nasa.gov \n>(Ron Baalke) writes:\n> \n>>4.  On Monday morning, April 19, the moon will occult Venus and\n>>interrupt the tracking of Magellan for about 68 minutes.\n\n>Will this mean a loss of data or will the Magellan transmit data later on ??\n\nThe gravity data is collected in real-time and it not recorded to the tape\nrecorder.  However, you only need to collect the gravity every 3rd or 4th\norbit, so there is no real data loss if the Moon blocks transmission for\na short while.\n\n>BTW: When will NASA cut off the connection with Magellan?? Not that I am\n>looking forward to that day but I am just curious. I believe it had something\n>to do with the funding from the goverment (or rather _NO_ funding :-)\n\nThe aerobraking starts May 25 and is expected last about 70 days.  If the\nfunding is provided (8 million dollars) to extend the mission for the\nhigh resolution gravity data, then the mission will last through October 1994.\nOtherwise, the mission will end this coming July.   \n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11037, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 03/10 - Basic Cryptology\nOrganization: The Crypt Cabal\nLines: 187\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 3 of 10 of the sci.crypt FAQ, Basic Cryptology.\n Definitions of basic terms. Beginner references. Cryptanalysis and\n theoretical/practical strength of ciphers.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part03\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 3: Basic Cryptology\n\nThis is the third of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read the first part before the rest.\nWe don't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in the last part.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers \nevery 21 days.\n\n\n\nContents:\n\n* What is cryptology? Cryptography? Plaintext? Ciphertext? Encryption? Key?\n* What references can I start with to learn cryptology?\n* How does one go about cryptanalysis?\n* What is a brute-force search and what is its cryptographic relevance?\n* What are some properties satisfied by every strong cryptosystem?\n* If a cryptosystem is theoretically unbreakable, then is it\n  guaranteed analysis-proof in practice?\n* Why are many people still using cryptosystems that are\n  relatively easy to break?\n\n\n* What is cryptology? Cryptography? Plaintext? Ciphertext? Encryption? Key?\n\n  The story begins: When Julius Caesar sent messages to his trusted\n  acquaintances, he didn't trust the messengers. So he replaced every A\n  by a C, every B by a D, and so on through the alphabet. Only someone\n  who knew the ``shift by 2'' rule could decipher his messages.\n\n  A cryptosystem or cipher system is a method of disguising messages so\n  that only certain people can see through the disguise. Cryptography is\n  the art of creating and using cryptosystems. Cryptanalysis is the art\n  of breaking cryptosystems---seeing through the disguise even when\n  you're not supposed to be able to. Cryptology is the study of both\n  cryptography and cryptanalysis.\n\n  The original message is called a plaintext. The disguised message is\n  called a ciphertext. Encryption means any procedure to convert\n  plaintext into ciphertext. Decryption means any procedure to convert\n  ciphertext into plaintext.\n\n  A cryptosystem is usually a whole collection of algorithms. The\n  algorithms are labelled; the labels are called keys. For instance,\n  Caesar probably used ``shift by n'' encryption for several different\n  values of n. It's natural to say that n is the key here.\n\n  The people who are supposed to be able to see through the disguise are\n  called recipients. Other people are enemies, opponents, interlopers,\n  eavesdroppers, or third parties.\n\n* What references can I start with to learn cryptology?\n\n  For an introduction to technical matter, the survey articles given\n  in part 10 are the best place to begin as they are, in general,\n  concise, authored by competent people, and well written. However,\n  these articles are mostly concerned with cryptology as it has\n  developed in the last 50 years or so, and are more abstract and\n  mathematical than historical. The Codebreakers by Kahn [KAH67] is\n  encyclopedic in its history and technical detail of cryptology up\n  to the mid-60's.\n\n  Introductory cryptanalysis can be learned from Gaines [GAI44] or\n  Sinkov [SIN66]. This is recommended especially for people who want\n  to devise their own encryption algorithms since it is a common\n  mistake to try to make a system before knowing how to break one.\n\n  The selection of an algorithm for the DES drew the attention of\n  many public researchers to problems in cryptology. Consequently\n  several textbooks and books to serve as texts have appeared. The\n  book of Denning [DEN82] gives a good introduction to a broad range\n  of security including encryption algorithms, database security,\n  access control, and formal models of security. Similar comments\n  apply to the books of Price & Davies [PRI84] and Pfleeger [PFL89].\n\n  The books of Konheim [KON81] and Meyer & Matyas [MEY82] are quite\n  technical books. Both Konheim and Meyer were directly involved in\n  the development of DES, and both books give a thorough analysis of\n  DES. Konheim's book is quite mathematical, with detailed analyses\n  of many classical cryptosystems. Meyer and Matyas concentrate on\n  modern cryptographic methods, especially pertaining to key management\n  and the integration of security facilities into computer systems and\n  networks.\n\n  The books of Rueppel [RUE86] and Koblitz [KOB89] concentrate on\n  the application of number theory and algebra to cryptography.\n\n* How does one go about cryptanalysis?\n\n  Classical cryptanalysis involves an interesting combination of\n  analytical reasoning, application of mathematical tools, pattern\n  finding, patience, determination, and luck. The best available\n  textbooks on the subject are the Military Cryptanalytics series\n  [FRIE1]. It is clear that proficiency in cryptanalysis is, for\n  the most part, gained through the attempted solution of given\n  systems. Such experience is considered so valuable that some of the\n  cryptanalyses performed during WWII by the Allies are still\n  classified.\n\n  Modern public-key cryptanalysis may consist of factoring an integer,\n  or taking a discrete logarithm. These are not the traditional fare\n  of the cryptanalyst. Computational number theorists are some of the\n  most successful cryptanalysts against public key systems.\n\n* What is a brute-force search and what is its cryptographic relevance?\n\n  In a nutshell: If f(x) = y and you know y and can compute f, you can\n  find x by trying every possible x. That's brute-force search.\n\n  Example: Say a cryptanalyst has found a plaintext and a corresponding\n  ciphertext, but doesn't know the key. He can simply try encrypting the\n  plaintext using each possible key, until the ciphertext matches---or\n  decrypting the ciphertext to match the plaintext, whichever is faster.\n  Every well-designed cryptosystem has such a large key space that this\n  brute-force search is impractical.\n    \n  Advances in technology sometimes change what is considered\n  practical. For example, DES, which has been in use for over 10 years\n  now, has 2^56, or about 10^17, possible keys. A computation with\n  this many operations was certainly unlikely for most users in the\n  mid-70's. The situation is very different today given the dramatic\n  decrease in cost per processor operation. Massively parallel\n  machines threaten the security of DES against brute force search.\n  Some scenarios are described by Garron and Outerbridge [GAR91].\n\n  One phase of a more sophisticated cryptanalysis may involve a\n  brute-force search of some manageably small space of possibilities.\n\n* What are some properties satisfied by every strong cryptosystem?\n\n  The security of a strong system resides with the secrecy of the key\n  rather than with an attempt to keep the algorithm itself secret.\n\n  A strong cryptosystem has a large keyspace, as mentioned above.  The\n  unicity distance is a measure which gives the minimum amount of\n  ciphertext that must be intercepted to uniquely identify the key and\n  if for some key, the unicity distance is much longer than the amount\n  of ciphertext you intend to encrypt under that key, the system is\n  probably strong.\n\n  A strong cryptosystem will certainly produce ciphertext which appears\n  random to all standard statistical tests (see, for example, [CAE90]).\n    \n  A strong cryptosystem will resist all known previous attacks. A\n  system which has never been subjected to scrutiny is suspect.\n\n  If a system passes all the tests mentioned above, is it necessarily\n  strong? Certainly not. Many weak cryptosystems looked good at first.\n  However, sometimes it is possible to show that a cryptosystem is\n  strong by mathematical proof. ``If Joe can break this system, then\n  he can also solve the well-known difficult problem of factoring\n  integers.'' See part 6.  Failing that, it's a crap shoot.\n\n* If a cryptosystem is theoretically unbreakable, then is it\n  guaranteed analysis-proof in practice?\n\n  Cryptanalytic methods include what is known as ``practical\n  cryptanalysis'': the enemy doesn't have to just stare at your\n  ciphertext until he figures out the plaintext. For instance, he might\n  assume ``cribs''---stretches of probable plaintext. If the crib is\n  correct then he might be able to deduce the key and then decipher the\n  rest of the message. Or he might exploit ``isologs''---the same\n  plaintext enciphered in several cryptosystems or several keys. Thus\n  he might obtain solutions even when cryptanalytic theory says he\n  doesn't have a chance.\n\n  Sometimes, cryptosystems malfunction or are misused. The one-time pad,\n  for example, loses all security if it is used more than once! Even\n  chosen-plaintext attacks, where the enemy somehow feeds plaintext into\n  the encryptor until he can deduce the key, have been employed. See\n  [KAH67].\n  \n* Why are many people still using cryptosystems that are\n  relatively easy to break?\n\n  Some don't know any better. Often amateurs think they can design\n  secure systems, and are not aware of what an expert cryptanalyst\n  could do. And sometimes there is insufficient motivation for anybody\n  to invest the work needed to crack a system.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11038, "properties": {"category": "talk.politics.mideast", "text": "From: shaig@Think.COM (Shai Guday)\nSubject: Re: The Israeli Press\nOrganization: Thinking Machines Corporation, Cambridge MA, USA\nLines: 48\nDistribution: world\nNNTP-Posting-Host: composer.think.com\n\nIn article <benali.735836579@alcor>, benali@alcor.concordia.ca ( ILYESS B. BDIRA ) writes:\n|> \n|> Of course you never read Arab media,\n\nI don't, though when I was in Israel I did make a point of listening\nto JTV news, as well as Monte Carlo Radio.  In the United States,\nI generally read the NYT, and occasionally, a mainstream Israeli\nnewpaper.\n\n|> I read Arab, ISRAELI (Jer. Post, and this network is more than enough)\n|> and Western (American, French, and British) reports and I can say\n|> that if we give Israel -10 and Arabs +10 on the bias scale (of course\n|> you can switch the polarities) Israeli newspapers will get either\n|> a -9 or -10, American leading  newspapers and TV news range from -6\n|> to -10 (yes there are some that are more Israelis than Israelis)\n|> The Montreal suburban (a local free newspaper) probably is closer\n|> to Kahane's views than some Israeli right wing newspapers, British\n|> range from 0 (neutral) to -10, French (that Iknow of, of course) range\n|> from +2 (Afro-french magazines) to -10, Arab official media range from\n|> 0 to -5 (Egyptian)  to +9 in SA. Why no +10? Because they do not want to\n|> overdo it and stir people against Israel and therefore against them since \n|> they are doing nothing.\n\nWhat you may not be taking into account is that the JP is no longer\nrepresentative of the mainstream in Israel.  It was purchased a few\nyears ago and in the battle for control, most of the liberal and\nleft-wing reporters walked out.  The new owner stated in the past,\nmore than once, that the JP's task should be geared towards explaining\nand promoting Israel's position, more than attacking the gov't (Likud\nat the time).  The paper that I would recommend reading, being middle\nstream and factual is \"Ha-Aretz\" - or at least this was the case two\nyears ago.\n\n|> the average bias of what you read would be probably around -9,\n|> while that of the average American would be the same if they do\n|> not read or read the new-york times and similar News-makers, and\n|> -8 if they read some other RELATIVELY less biased newspapers.\n\nAnd what about the \"Nat'l Enquirer\"? 8^)\nBut seriously, if one were to read some of the leftist newspapers\none could arrive at other conclusions.  The information you received\nwas highly selective and extrapolating from it is a bad move.\n\n-- \nShai Guday              | Stealth bombers,\nOS Software Engineer    |\nThinking Machines Corp. |\tthe winged ninja of the skies.\nCambridge, MA           |\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11039, "properties": {"category": "comp.graphics", "text": "From: bolson@carson.u.washington.edu (Edward Bolson)\nSubject: Re: Sphere from 4 points?\nOrganization: University of Washington, Seattle\nLines: 33\nDistribution: world\nNNTP-Posting-Host: carson.u.washington.edu\n\nI plan to post a summary of responses to this as soon as I have working\ncode, which I will also include.  The intersection of 3 planes method\nlooks best, but my implementation based on a short article in \nGraphics Gems I doesn't work.  I may be misinterpreting, of course.\n\nI had avoided the simultaneous solution of the plane equations in favor\nof dot and cross products, but the former may actually be better.  In either\ncase a matrix determinant needs to be computed (implicitly in the solution\nof linear equations).\n\nTo get the planes, I was taking the midpoint of the line from, say,\nP1 to P2, and setting the normal as the \"normalized\" vector from P1 to P2.\nThese just plugged into the formula in Graphics Gems.  HOwever, the resulting\ncenter point is only occasionally equidistant from all 4 of my test points\n(for different tests).  My matrix/vector math is very rusty, but it looks like\nI need to verify the formula, or use the simultaneous equation solution, which\nwill require bringing in another routine I don't have (but should be easy to\nfind).\n\nAnother method is to first find the center of the circle defined by 2 sets\nof 3 points, and intersecting the normals from there.  This would also define\nthe circle center.  However, small numerical imprecisions would make the\nlines not intersect.  Supposedly 3 planes HAVE to intersect in a unique\npoint if they are not parallel.\n\nEd\n\nThanks to all who answered so far.\n-- \nEd Bolson\nUniversity of Washington  Cardiovascular Research               (206)543-4535\nbolson@u.washington.edu (preferred)\nbolson@max.bitnet                bolson@milton.u.washington.edu (if you must)\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11040, "properties": {"category": "sci.space", "text": "From: nsmca@aurora.alaska.edu\nSubject: Re: Jemison on Star Trek\nArticle-I.D.: aurora.1993Apr20.142747.1\nOrganization: University of Alaska Fairbanks\nLines: 16\nNntp-Posting-Host: acad3.alaska.edu\n\nIn article <C5sB3p.IB9@fs7.ece.cmu.edu>, loss@fs7.ECE.CMU.EDU (Doug Loss) writes:\n>    I saw in the newspaper last night that Dr. Mae Jemison, the first\n> black woman in space (she's a physician and chemical engineer who flew\n> on Endeavour last year) will appear as a transporter operator on the\n> \"Star Trek: The Next Generation\" episode that airs the week of May 31.\n> It's hardly space science, I know, but it's interesting.\n> \n> Doug Loss\n\n\nInteresting is rigth.. I wonder if they will make a mention of her being an\nastronaut in the credits.. I think it might help people connect the future of\nspace with the present.. And give them an idea that we must go into space..\n\n==\nMichael Adams, nsmca@acad3.alaska.edu -- I'm not high, just jacked\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11041, "properties": {"category": "rec.sport.baseball", "text": "From: sepinwal@mail.sas.upenn.edu (Alan Sepinwall)\nSubject: Re: Mel Hall\nOrganization: University of Pennsylvania, School of Arts and Sciences\nLines: 26\nNntp-Posting-Host: mail.sas.upenn.edu\n\nIn article <1993Apr17.212119.13901@coe.montana.edu> warped@cs.montana.edu (Doug Dolven) writes:\n>\n>Has anyone heard anything about Mel Hall this season?  I'd heard he wasn't\n>with the Yankees any more.  What happened to him?\n>\n>\t\t\t\tDoug Dolven\n\nMel is alive and well and playing in Japan. (The Yanks let him go because\nhe was asking for too much money, and because they thought that they were\ngoing to get Barry Bonds, making Hall obsolete. Oopsie! Well, at least\nthey got O'Neill to replace the Mel-man).\n\n\n--I'm outta here like Vladimir!\n-Alan\n\n============================================================================\n|    (Scene from \"Real Genius\" where Val Kilmer is trying to pick up a     |\n|     gorgeous blonde)\t\t\t\t\t\t\t   |\n|\t\tVal: So, if there's anything I can do for you, or, more    |\n|\t\t     to the point, to you, you just let me know.\t   |\n|\t\tBlonde: Can you hammer a six-inch spike through a board    |\n|\t\t\twith your penis?\t\t\t\t   |\n|\t\tVal: Not right now, no.\t\t\t\t\t   |\n|\t\tBlonde:\tA girl's gotta have her standards (she walks away) |\n============================================================================\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11042, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: adriene_nazaretian@qm.yale.edu (ALN - Go NY Giants!)\nSubject: Re: RE: Win NT - what is it???\nNntp-Posting-Host: gorgon.cis.yale.edu\nOrganization: Yale University; New Haven, Connecticut   USA\nLines: 72\n\nIn article <16APR93.02170289@vax.clarku.edu>, rmohns@vax.clarku.edu says:\n>\n>In a previous article, alanchem@csd4.csd.uwm.edu (Alan Scott Olson) wrote:\n>>Two-part question:\n>> \n>>1)  What is Windows NT - a 'real' windows OS?\n>> \n>>2)  This past weekend, a local 'hacker' radio show metioned a new product\n>>    from Microsoft called 'Chicago' if I recall.  Anyone know what this is?\n>> \n>>That is it -\n>> \n>>Thanks a heap.\n>> \n>>- Alan\n>\n>Windows NT is a giant Windows Operating System.  Unline Win3.1, it does not \n>run on top of DOS.  It is its own OS, with (Billy Gates assures us) true \n>multi-tasking/multithreading, meets DOD security specs, will run win3.1 \n>programs as well as DOS programs, has multi-processor support, and is\n>primarily a Server program.  It's overhead is too high for it to be\n>economical for most users.\n\nIt also runs OS/2 character based apps and POSIX apps.  The DOS, 16bit\nand 32 bit windows apps run in a windows 32 bit subsystem.\n\nIf you consider the fact that NT has:\n the Lanman redirectors,\n built in support for TCP/IP\n built in support for NETBEUI\n comes with TCP utils like ping and an ftp client, etc\n applications like schedule+ and a 32 bit version of msmail\n\nthe storage argument isnt an issue.\n\n>        Speaking of overhead, it requires at least a 386 with 16 megs of RAM.  \n>It iwll run with 12, but that's like running OS/2 2.0 with 4 megs.  And that's \n>just to run it.  Also, I have heard that the system files take up 30-50 Megs, \n>and it is recommended that your drive be a half gig!  The SKD is distributed \n>on CD-ROM.\n>\n\nI ran it on a 486 with 8MRAM and it did a ton of disk swapping, with a 19M\nvirtual memory paging file.  It functioned but it crawled.  (this was the OCT\nbuild)\n\nI upgraded the machine to 16M and the performance is good,\nAt that point I installed the March Build.  Consider they\nare probably still working on the feature set, and havent done a lot of fine\ntuning to the code yet.\n\n>Chicogo is what I want to use.  It is, like NT, a true OS with thrue \n>multitasking and multithreading, but has much smaller hardware requirements, \n>and does not meet DOD security specs (but that's okay since it will probably \n>be more of a client OS).  there are a few otehr differences, but those are the \n>main ones.  There was an article about Chicogo in PC Week last August.\n>        The Chicogo and NT development groups at Micro$oft are in intense \n>competition, so it is said.  However, I think a different relationship will \n>arise: NT will be the server (*N*etowrk *T*echonology), Chicogo will be the \n>client machine.  It is entirely possible for different OS's to work together, \n>partly because Chicogo is just a small NT (think of it that way, anyway).  \n>(Novell Netware creates an OS on the server that is truly not DOS, so don't\n>scorn the concept.)\n>        Anyway, don't expect it soon.  Windows 4 and DOS 7 are supposed to be \n>released next year (read: see it in 95), so I expect that Chicogo won't be out \n>til '96.\n\nI have little info on Chicago so I cant make a comparison.  Is it in Beta?  Is\nthere anyone out there who has tested both and cares to make a comparison?\nJust my $0.02  \n\n/ALN\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.521+0000", "event": "documents", "entityId": 11043, "properties": {"category": "alt.atheism", "text": "From: ingles@engin.umich.edu (Ray Ingles)\nSubject: Re: Benediktine Metaphysics\nOrganization: University of Michigan Engineering, Ann Arbor\nLines: 45\nDistribution: world\nNNTP-Posting-Host: agar.engin.umich.edu\n\nIn article <66019@mimsy.umd.edu> mangoe@cs.umd.edu (Charley Wingate) writes:\n>Benedikt Rosenau writes, with great authority:\n>\n>>     IF IT IS CONTRADICTORY IT CANNOT EXIST.\n>\n>\"Contradictory\" is a property of language.  If I correct this to\n>\n>      THINGS DEFINED BY CONTRADICTORY LANGUAGE DO NOT EXIST\n>\n>I will object to definitions as reality.  If you then amend it to\n>\n>      THINGS DESCRIBED BY CONTRADICTORY LANGUAGE DO NOT EXIST\n>\n>then we've come to something which is plainly false.  Failures in\n>description are merely failures in description.\n\n How about this description: \"An object that is, at one time, both a\nEuclidean square and a Euclidean circle\"? I hold that no object satisfying\nthis description could exist. The description is inconsistent, and hence\ndescribes an object that could not exist.\n Now, suppose someone pointed to a bicycle, and said, \"That object is,\nat one time, both a Euclidean square and a Euclidean circle.\" This does\nnot mean that the bicycle does not exist, it measn that the description\nwas incorrectly applied.\n \n The atheist says, \"The descriptions of God that I have been presented with\nare contradictory, and hence describe something that cannot exist.\"\n Now, your position (so far as I can gather) is that God exists, but the\ndescriptions atheists have been presented with are simply bad descriptions\nof It.\n This is roughly analogous to someone who has never seen a bicycle, and,\nwhen they ask for a description from people who claim to have seen one,\nare told that it is a \"Euclidean circle-square\". Can they be blamed for\ndoubting rather strongly that this 'bicycle' exists at all?\n\n>(I'm not an objectivist, remember.)\n\n No kidding. :->\n\n Sincerely,\n\n Ray Ingles               ingles@engin.umich.edu\n\n \"The meek can *have* the Earth. The rest of us are going to the\nstars!\" - Robert A. Heinlein\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11044, "properties": {"category": "talk.politics.guns", "text": "From: gary@colossus.cgd.ucar.edu (Gary Strand)\nSubject: Re: The Slaughter\nOrganization: Climate and Global Dynamics Division/NCAR, Boulder, CO\nLines: 16\n\n  [followups to talk.politics.guns]\n\nrl> Russell Lawrence\nkr> Karl Rominger\n\nkr> I support the right of any citizen with out a criminal history to own and\n    use firearms, regardless of race, gender, and RELIGION.\n\nrl> Thanks for admitting that you, yourself, adhere to an illogical dogma.\n\n  Well, folks in t.p.guns, want to show how Russell's \"illogical dogma\" is\n  wrong?\n\n--\nGary Strand                      Opinions stated herein are mine alone and are\nstrandwg@ncar.ucar.edu            not representative of NCAR, UCAR, or the NSF\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11045, "properties": {"category": "comp.sys.mac.hardware", "text": "From: russotto@eng.umd.edu (Matthew T. Russotto)\nSubject: Re: Interesting ADB behaviour on C650\nOrganization: Project GLUE, University of Maryland, College Park\nLines: 22\nNNTP-Posting-Host: tea.eng.umd.edu\n\nIn article <1ql7naINN2l8@shelley.u.washington.edu> davisson@stein.u.washington.edu (Gordon Davisson) writes:\n\n>Mind you, this doesn't mean you shouldn't do it.  The parts that can\n>blow (the ADB power fuse and RF filter) aren't too expensive, so IF you\n>have a someone around who can do component-level repair, it may be worth\n>the risk (especially if you're around Seattle, 'cause you might get to\n>pay *me* to fix it :-))..  On the other hand, if your only repair option\n>is the Apple-standard logic board swap (major $$$$), you should probably\n>play it safe.\n>\n>\n>SCSI: yes, ADB: yes, Floppies: yes...  They can all cause trouble.\n\nOTOH, some of us get lucky-- I've unplugged and replugged SCSI and ADB\nquite often, and never blown anything.  I blew out the ADB by shorting\nthe cable, though.\n\n-- \nMatthew T. Russotto\trussotto@eng.umd.edu\trussotto@wam.umd.edu\nSome news readers expect \"Disclaimer:\" here.\nJust say NO to police searches and seizures.  Make them use force.\n(not responsible for bodily harm resulting from following above advice)\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11046, "properties": {"category": "talk.religion.misc", "text": "From: ch981@cleveland.Freenet.Edu (Tony Alicea)\nSubject: Re: Rosicrucian Order(s) ?!\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 21\nReply-To: ch981@cleveland.Freenet.Edu (Tony Alicea)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, alamut@netcom.com (Max Delysid y!)) says:\n\n>\n>Can we assume from this statement that you are >unequivocally< saying that\n>AMORC is not a spin off of OTO? \n\nAbsolutely. Lewis didn't care for the 1921 O.T.O. charter from Reuss. He had\nin mind something completely diferent. Crowley and Lewis were very\ndifferent persons, as you probably know.\n\n>.. and that in fact, OTO may well be a spin\n>off of AMORC??\n\nNo. My overstatement, sorry :-)\n\n>>Study Harder,\n>Study Smarter, not Harder! :-)\n>\nI ALWAYS DO.\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11047, "properties": {"category": "comp.sys.mac.hardware", "text": "From: chairman@staff.tc.umn.edu (Gene Naftulyev)\nSubject: FOR SALE: Ethernet board / 24 bit Supermac Combo\nArticle-I.D.: news2.C51oH4.42y\nOrganization: U of M\nLines: 26\nX-Xxmessage-Id: <A7E6634E48016506@dialup-slip-1-6.gw.umn.edu>\nX-Xxdate: Mon, 5 Apr 93 04:29:34 GMT\nNntp-Posting-Host: dialup-slip-1-6.gw.umn.edu\nX-Useragent: Nuntius v1.1.1d17\n\nGene's stuff for sale...NEW PRICES!!!\n\nThe following items are for sale:\n\nQty.    Description                                     List    Price\n________________________________________________________________________\n\n1       SuperMac ColorLink SX/T 24 bit NuBUS/10BASE-T  750.00  _549.00_\n        This card is primo! selling for $675 mailorder\n        It suports monitors up to 19 in. with 28\" x 28\"\n        virtual desktop. Accelerated, hardware pan, etc!\n        This quick sale price includes free 2nd day air!\n        \n1       Seagate ST1480 430 meg 3.5 in HD 2 mo. old      989.00   675.00\n\nNOTE:   All hardware is in normal working order. Prices do NOT include\n        shipping. All items shipped COD (USA) or pre-paid (anywhere)\n\nSold:\n1       IIsi NuBUS adapter card with FPU                189.00  _115.00_\n\nFor any items please contact:\n\nGene Naftulyev\nchairman@staff.tc.umn.edu\nor call (612) 942-0134\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11048, "properties": {"category": "rec.motorcycles", "text": "Subject: Re: Tools Tools Tools\nFrom: behanna@phoenix.syl.nj.nec.com (Chris BeHanna)\nOrganization: NEC Systems Laboratory, Inc.\nLines: 29\n\nIn article <C51105.98C.1@cs.cmu.edu> jfriedl@cs.cmu.edu writes:\n>behanna@phoenix.syl.nj.nec.com (Chris BeHanna) writes:\n>|> \tWhile we're on the subject, has anyone else noticed that the 1/2\" deep\n>|> well in Craftsman's $60 SAE deep well set is too small to fit a 1/2\" bolt or\n>|> nut?\tWhen I took the socket in for an exchange, EVERY !#%@ one of the 1/2\"\n>|> deep well sockets on the rack had the exact same problem!!!\n>\n>Not to imply that you didn't, but since you didn't mention it.....\n>did you measure the size of your test nut with callipers? Were all three\n>\"cross lengths\" no more than 1/2\"? I've seen bolt heads, and even a few\n>nuts, which got slightly thicker further down toward the basa... sort of\n>a trapizodial cross section.\n\n\tThat I did not do; however, the sample bolt I took to the store fit\nrather well in the following:  1/2\" open end wrench, 1/2\" box end wrench, 1/2\"\n12-point normal socket.  I take that as meaning it's a 1/2\" bolt head.\n \n>But as several people have pointed out, and as I'm noting in the tool FAQ\n>I'm writing up in case anyone will want it, a lifetime guarantee doesn't\n>necessiarly mean better tools.\n\n\tYup.  At $6 a socket, I want the @#$@# thing to FIT!\n\nLater,\n-- \nChris BeHanna\tDoD# 114          1983 H-D FXWG Wide Glide - Jubilee's Red Lady\nbehanna@syl.nj.nec.com\t          1975 CB360T - Baby Bike\nDisclaimer:  Now why would NEC\t  1991 ZX-11 - pending delivery\nagree with any of this anyway?    I was raised by a pack of wild corn dogs.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11049, "properties": {"category": "misc.forsale", "text": "From: chein@eng.auburn.edu (Tsan Heui)\nSubject: Softwares, games (New or Used) for sale\nNntp-Posting-Host: wilbur.eng.auburn.edu\nOrganization: Auburn University Engineering\nDistribution: usa\nLines: 48\n\n\nI have following softwares for sale:\n\nNEW ITEMS (never opened):\n1. Lucid 3-D, three dimensional spreadsheet:\n   with pull-down menus, on-line help, up to 8 pages of notes behind every\n   cell for dynamic detail, 3-D capability, compatible with Lotus 1-2-3, etc.\n   $15 including shipping (manual, 5.25\" disks)\n\n2. Turbo Pascal Express\n   with 250 ready-to-run assembly language routines that make Turbo Pascal\n   faster, more powerful, and easier to use.\n   2 5.25\" disks and manual\n   $15 (including shipping)\n\n3. Dr. Halo III\n   much more than an icon driven paint program - it's a complete page \n   composition and presentation graphics package. Automatic aspect ratio\n   correction for WYSIWYG printing. True color or grey scale output and partial    screen prints.\n   3 5.25\" disks and manual\n   $12 (including shipping)\n\n4. Key Form Designer Plus\n   software for making professional business forms.\n   3.5\" disks and manual\n   $25 plus shipping\n\n\nLike-new items (package is opened but not registered):\n1. JetFighter II\n   Advanced tactical fighter F-23 as well as F-14, F-16, F/A-18, and F-22.\n   3.25\" disks and manuals\n   $30 plus Shipping OBO\n\n2. Nighthwak F-117A Stealth Fighter 2.0\n   The definitive simulation of America's radar-elusive jet.\n   Sensational sound, nine world's \"hot spots\": Cuba, North Korea, the Kuwaiti T   Theatre of operations, central Europe, the North Cape, Libya, the persian Gul   f, Vietnam and the Middle East. Awesome missions to challenge you.\n   5.25\" disks and manual\n   $35 plus shipping OBO\n\n3. Grammatik IV - $20 plus shipping\n\n4. Quattro Pro 1.0 - make an offer\n\n5. GEM chart, graphics, word, publisher, ... V.3.0 - make an offer.\n\nAll items above are for IBM/compatible systems.\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11050, "properties": {"category": "rec.sport.hockey", "text": "From: jca2@cec1.wustl.edu (Joseph Charles Achkar)\nSubject: Blues into playoffs, beat TB 6-5\nKeywords: Blues, Shanahan, Joseph, Hull, Minnesota, TB\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nLines: 127\n\nBy Dave Luecking Of The Post-Dispatch Staff\n\nAt 9:11 Thursday night, the scoreboard watchers at The Arena began to cheer.\nTheir cheer quickly turned into a roar, and finally, the sellout crowd of\n17,816 rose as one to rock the old barn at 5700 Oakland Avenue in a salute to\nthe playoff-bound Blues.\n\nThe scoreboard had just flashed the news from Detroit -- Red Wings 5, Stars 3.\nWith the North Stars' loss, the Blues officially clinched fourth place and the\nfinal playoff spot in the Norris Division. Good thing, because the Blues quit\nplaying.\n\nThey held a 5-1 lead over Tampa Bay when the Detroit-Minnesota final appeared\nwith 3 minutes 52 remaining in the second period. They promptly went to sleep\nand barely held on for a 6-5 victory that nearly slipped away at the buzzer.\nTampa's Bob Beers tipped in a pass from Shawn Chambers, but officiating\nsupervisor John D'Amico and video goal judge Rich Schweigler ruled that the\nshot had gone into the net after time had expired.\n\n``I'm glad I didn't see it go in at the end,\" Blues coach Bob Berry said.\n\nIf the goal had counted, he'd have been more upset than he was by the Blues'\ndisappearance in the final 24 minutes. Holding on for the victory and making\nthe playoffs tempered Berry's anger.\n\n``It wasn't pretty at the end,\" he said. ``We played 36, 37 great minutes, as\ngood as we played all year. It slipped away at the end. It shouldn't have, but\nit did.\"\n\nStill, the Blues won, prompting another ovation from the crowd at game's end.\nDespite their shoddy effort in the third period and all the turmoil this\nseason, the Blues still made the playoffs. They'll meet the Chicago Blackhawks\nin a best-of-seven Norris Division semifinal, beginning at noon Sunday at\nChicago Stadium.\n\nThe Blues finished the regular-season with a record of 37-36-11 for 85 points,\ntheir fourth consecutive plus-.500 season. Minnesota finished three points\nbehind in fifth place, with a record of 36-38- 10 for 82 points. Tampa Bay,\nwhich played spoiler last week by tying the Blues 2-2 at Tampa, ended its\nfirst season with a record of 23-54-7 for 53 points.\n\nThe poor finish cast an unnecessary shadow over what should have been a joyous\nBlues locker room. Instead, the mood was one of relief and some disappointment.\n\n``It's a shame we let down,\" said Kevin Miller, one of three Blues to score\ntwo goals. Brendan Shanahan and Bob Bassen were the others.\n``There was no need for a letdown. If we'd have kept working, it would have\nended 6-2 and everyone would be happy.\"\n\nInstead, a lot of players were happy just to make the playoffs.\n``We won, and that's all that matters,\" said Brett Hull, scoreless and minus-3\nfor the night. ``Once we got up 4-0, it was really tough to play.\"\n\nSome players didn't have a problem.\n\n``Just because the score was announced, our line didn't quit,\" said Rich\nSutter, who played with Bassen and Miller. ``We still had a game to play. You\ncan't allow five goals like we did, that's not right.\n\n``It was disappointing to see what was going on.\"\n\nBassen was almost frantic on the bench because of the Blues' effort. Somehow,\nhe missed the announcement of Minnesota's loss.\n\n``I didn't know it was final,\" he said. ``I was kind of looking around on the\nbench. I didn't realize it was a final for some reason. We're in the playoffs,\nand that's great, but it's a little disappointing to play like we did at the\nend.\"\n\nThe letdown was precisely the reason that Berry had instructed the scoreboard\noperators to keep the Minnesota-Detroit score off of the board. The score\nshowed 0-0 until it first popped up with Detroit leading 4-2 in the third\nperiod. The Blues already led 4-0 at the time.\n\n``I told them I didn't want to see the score, I didn't want to know the score,\"\nBerry said. ``I felt we had to win the game, and that's the approach we took.\"\n\nIf Minnesota took a lead, Berry feared, the pressure of having to win might\nbother the Blues. If Detroit led, he worried, the Blues might quit.\n\nUntil the announcement, the Blues played splendidly. Shanahan got the crowd\ngoing at 10:44 of the first period, scoring his 50th of the season. Then,\nMiller and Bassen took charge late in the period.\n\nWith the teams playing four on four, Miller broke in on left wing, deked\ndefenseman Roman Hamrlik and beat former Blues goalie Pat Jablonski with the\nrebound of his own shot with 21.6 seconds remaining in the period.\n\nThen, just 10.5 seconds later, Bassen rifled a long slap shot past Jablonski\nafter defenseman Rick Zombo intercepted a Tampa pass in the neutral zone.\n\nBassen made it 4-0 just 14 seconds into the second period, scoring on the \nrebound of Bret Hedican's shot. The goal gave him his first two-goal game of\nthe season and reminded him of a special friend.\n\nLast year, Bassen befriended young Oliver Mulvihill, who died of a rare form\nof cancer at age 6 on Feb. 23.\n\n``I was thinking of my buddy Oliver,\" Bassen said. ``He's in heaven now, and\nI know he was watching. I know he's happy.\"\n\nMiller increased the Blues lead to 5-0 on a break-away goal set up by Zombo\nat 11:09. Then, Steve Maltais broke Curtis Joseph's shutout just 18 seconds\nlater, making it 5-1.\n\nLess than a minute after the North Stars' final was announced, Tim Bergland\nscored and cut the lead to 5-2. But Shanahan scored his 51st, converting a pass\nfrom Nelson Emerson with 21.3 seconds remaining in the  second period.\n\nThen, it was all Lightning. Adam Creighton scored 40 seconds into the third\nperiod, prompting Berry to rest the overworked Joseph. Guy Hebert allowed goals\nto Shawn Chambers and Danton Cole in a span of 1:21 midway through the third\nperiod.\n\nThe goals by Chambers and Cole made Shanahan's second goal stand up as the\nwinner. ``We were in there,\" Shanahan said. ``The game was over. We were in.\"\n\n  %*%*%*%**%*%%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*\n  *   __  ______________         ____________________________________    % \n  %   \\ \\_)____________/         A L L E Z   L E S   B L U E S  ! ! !    * \n  *    \\    __________/          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    % \n  %     \\    ________/                                                   *\n  *      \\   _______/                  Joe Ashkar                        % \n  %       \\  \\                         Contact for the Blues             *\n  *        \\  \\  SAINT LOUIS           jca2@cec1.wustl.edu               % \n  %        (___)             BLUES                                       * \n  *%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*%*% \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11051, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: shiva@leland.Stanford.EDU (Matt Jacobson)\nSubject: NDW Norton Desktop for Windows\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 19\n\n\nI have an IBM and run Windows 3.1.  A friend installed Norton Desktop For\nWindows on top of this.  It loads automatically when I type \"win\", and\nsurely adds to the (already dismally slow) process of starting up.\n\nI would like to know how to STOP or uninstall this program!!\n\nI have taken it out of win.ini, but it still pops up running with windows.\nI did a big search and found reference to it in ndw.ini, system.ini and\nprogman.ini.  Removing it here causes a failure when starting up windows\n(progrman.ini has a \"group 7 = ...ndw.exe...\" which can't be deleted.)\n\nIs there anyone familiar with NDW who can tell me how to turn it off??\n\n\t\tthanks!\t\tChet\n\n**PLEASE EMAIL RESPONSES  -- I can't read news from my home account***\n\t\t\t\t\tchetter@ucthpx.uct.ac.za\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11052, "properties": {"category": "comp.windows.x", "text": "From: srivasta@pilgrim.umass.edu (Manoj Srivastava)\nSubject: [REQUEST] Need tvtwm sources with mods from R. J. Caley\nOrganization: Project Pilgrim, University of Massachusetts at Amherst\nLines: 17\nDistribution: world\nReply-To: srivasta@pilgrim.umass.edu\nNNTP-Posting-Host: mecca.pilgrim.umass.edu\n\n\nHello, \n\n\tway back in the mists of time, I had a set of patches written\nby Richard Caley (I believe to the standars distribution, patch level\n6) which added regular expressions in the .tvtwmrc file, multiple icon\nregions, squeezable icons, and f.deleteordestroy function. I still\nhave the patches, however, I can no longer find the sources to which\nthey applied ;-). \n\n\tI'd appreciate if some kind soul could send me a pointer to\nwhere I could find the sources. Has anyone updated the patches for R5?\n(Richard? are you out there? pretty please?)\n\n\tThanks in advance.\n\n\t\tmanoj\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11053, "properties": {"category": "rec.sport.hockey", "text": "From: khettry@r1w2.pub.utk.edu (23064RFL)\nSubject: Testing !!\nOrganization: University of Tennessee Computing Center\nDistribution: utk\nLines: 6\n\n\tJust Testing !!!\n\tNo flames please !\n\nBye\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11054, "properties": {"category": "comp.sys.mac.hardware", "text": "From: corbo@lclark.edu (Beth Corbo)\nSubject: Re: Non-Apple Mini-Docks available?\nArticle-I.D.: lclark.1993Apr20.034614.12989\nOrganization: Lewis & Clark College, Portland OR\nLines: 22\n\nIn article <C5pC9F.n4I@rahul.net> jonathan@mecca.epri.com writes:\n>A A DeGuzman (deguzman@after.math.uiuc.edu) wrote:\n>> My boss is considering the purchase of a Powerbook or Duo. He is leaning\n>> towards a 180, because of the math coprocessor (for Mathematica), but would\n>> get a Duo if he could find a Mini-Dock with a coprocessor. Have any\n>> third-parties announced such a beast?\n>\n>   I believe that E-Machines might produce something of this nature.\n> \n\n  Yes, E-Machines makes two mini-docks--the Powerlink Presente and the\nPowerLink DeskNet. The Presenter offers a variety of video-out options, \nincluding NTSC, RGB and SVGA. It also has sound out, floppy drive port\nand a power port. Unfortunately no SCSI port and it blocks the serial port.\n  The DeskNet has the standard ports plus built-in EtherNet. Alas, none of\nthese have an FPU.\n  In the future, RasterOps is putting out a mini-dock, but the name escapes\nme now. It is supposed to support 16-bit color and \"Quadra\" comparable\nvideo speed. No idea if it has an FPU.\n  Hope this helps...\n\nBeth Corbo\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11055, "properties": {"category": "talk.politics.mideast", "text": "Organization: The American University - University Computing Center\nFrom: Paul H. Pimentel <PP3903A@auvm.american.edu>\nSubject: Re: Israel's Expansion II\n <1993Apr20.013037.20907@news.columbia.edu>\nLines: 5\n\nWhat gives Isreal the right to keep Jeruseleum?  It is the home of the muslim a\ns well as jewish religion, among others.  Heck, nobody ever mentions what Yitza\nk Shamir did forty or fifty years ago which is terrorize westerners much in the\n way Abdul Nidal does today.  Seems Isrealis are nowhere above Arabs, so theref\nore they have a right to Jerusaleum as much as Isreal does.\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11056, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: And Azeri survivors were killed by a shot to the back of the head.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 24\n\n12/12 Armenian Atrocities \n\n   MOSCOW (AP) -- Azerbaijani forces on Saturday retook\nthree villages seized by Armenians and discovered 16 bodies\nof executed civilians, Azerbaijani reports said.\n   The Azerbaijani fighters found 16 bodies of civilians,\nincluding those of a child and two elderly women who were\nshot point-blank, \"and survivors were killed by a shot to\nthe back of the head,\" said a ministry statement, carried by\nthe Azerbaijani Azerinform and Turan news agencies and the\nITAR-Tass news service.\n   \"Everywhere Armenian occupants were, they left tens of\ncorpses of civilians shot to death point-blank and\nmutilated,\" the... \n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11057, "properties": {"category": "talk.politics.misc", "text": "From: stephen@orchid.UCSC.EDU ()\nSubject: A Rational Viewpoint ---> was Re: New Study Out On Gay Percentage\nOrganization: Santa Cruz\nLines: 29\nNNTP-Posting-Host: orchid.ucsc.edu\n\nIn article <C5L0v1.JCv@news.cso.uiuc.edu> dans@uxa.cso.uiuc.edu (Dan S.) writes:\n>\n>Don't forget about the culture.  Sadly, we don't (as a society) look upon\n>homosexuality as normal (and as we are all too well aware, there are alot\n>of people who condemn it).  As a result, the gay population is not encouraged\n>to develop \"non-promiscuous\" relationships.  In fact there are many roadblocks\n>put in the way of such committed relationships.  It is as if the heterosexual\n>community puts these blocks there so as to perpetuate the claim that gays \n>are immoral.  \"My, if we allowed gays to marry, raise children ... we might\n>just find out they're as moral as we are, can't have that can we?\" \n>\n>Just some thoughts.  Flame away. :)\n>\n>Dan\n\nThis is a very good point.  One that I have held for sometime.  We do not\nallow people to develop on the paths that they choose or desire.  Even with\nheterosexuals we tend to leave some hanging in the sense of knowledge and\ninformation about sexuality and relationships.\n\nIt is very difficult for a young person to develop and build a positive\nview of themself when they are constantly being told implicitly and explicitly\nthat they are wrong and immoral. \n\nThe concepts about personal relationships are deeply embedded in emotionalism\nand fear- these fears cover a wide range, but mostly jealousy and lack of trust\nseem to be cornerstones of modern day American relationships.  We also set on\ntop of this the concepts of Madison Avenue attractiveness and standards and put\nthe pressure on to measure up.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11058, "properties": {"category": "soc.religion.christian", "text": "From: jasons@atlastele.com (Jason Smith)\nSubject: Re: Atheist's views on Christianity (was: Re: \"Accepting Jeesus in your heart...\")\nOrganization: Atlas Telecom Inc.\nLines: 91\n\nIn article <Apr.13.00.08.22.1993.28397@athos.rutgers.edu> trajan@cwis.unomaha.edu (Stephen McIntyre) writes:\n= norris@athena.mit.edu  writes:\n\n\n[ The discussion begins: why does the universe exist at all?  ]\n\n= \n= Must there be a \"why\" to this?  I ask because of what you also\n=      assume about God-- namely, that He just exists, with no \"why\"\n=      to His existence.  So the question is reversed, \"Why can't\n=      we assume the universe just exists as you assume God to\n=      \"just exist\"?  Why must there be a \"why\" to the universe?\"\n\nOne of the Laws of Nature, specifying cause and effect seems to dictate \n(at least to this layman's mind) there must be a causal event.  No\nreasonable alternative exists.\n\nAs far as I can tell, the very laws of nature demand a \"why\".  That isn't\ntrue of something outside of nature (i.e., *super*natural).\n\n[ ... ]\n\n= \n= It may be that one day man not only can create life but can also\n=      create man.  Now, I don't see this happening in my lifetime,\n=      nor do I assert it is probable.  But the possibility is there,\n=      given scientists are working hard at \"decoding\" out \"genetic\n=      code\" to perhaps help cure disease of a genetic variation.\n=      Again, though, must there be \"why\" or a \"divine prupose\" to\n=      man's existence?\n\nI believe the \"genetic code\" will be entirely deciphered in our lifetimes,\nbut we will not see man convert entirely inert material into self sustaining, \nreproducing life, *ever*.  (I've never been much of a prophet, though. I\ncan't even *picture* New York in my mind 8^] ).  I don't believe *any*\ntechnology would be able to produce that necessary *spark* of life, despite\nhaving all of the parts available. Just my opinion.\n\n= \n= > When you say that man is *only* an animal, I have to think that you are\n= > presenting an unprovable statement -- a dogma, if you will.  And one\n= > the requires a kind of \"faith\" too.   By taking such a hard line in\n= > your atheism, you may have stumbled into a religion of your own.\n= \n= As far as we can tell, man falls into the \"mammal\" catagory.  Now,\n  ^^^^^^^^^^^^^^^^^^^^^\nThat preposition sort of precludes an absolute, doesn't it?  Without an \nabsolute conclusion, what are we left with?  I believe the word \"faith\"\nworks nicely.\n\n=      if there were something more to the man (say, a soul), then\n=      we have yet to find evidence of such.  But as it is now, man\n=      is a mammal (babies are born live, mother gives milk, we're\n=      warm-blooded, etc.) as other mammals are and is similar in\n=      genetic construction to some of them (in particular, primates).\n=      For more on this check out talk.origins.\n= \n= > But before you write off all Christianity as phony and shallow, I hope\n= > you'll do a little research into its history and varieties, perhaps by\n= > reading Paul Johnson's \"A History of Christianity\".  From your remarks,\n= > it seems that you have been exposed to certain types of Christian\n= > religion and not others.  Even an atheist should have enough faith in\n= > Man to know that a movement of 2000 years has to have some depth, and\n= > be animated by some enduring values.\n= \n= Well, then, Buddhism, Confucianism, Taoism, Hinduism, Judaism,\n=      Zoerasterism, Shintoism, and Islam should fit this bit of logic\n=      quite nicely... :-)  All have depth, all have enduring values,\n=      thus all must be true...\n\nWell then, with an *equal* scale, and under an *equal* standard, investigate\nthem all, and discover where God is ( or *whether* he is, for the denial of\nGod is ultimately a statement of faith, non-falsifiable as His existence \nmay be). \n\nFor isn't this the purpose of religion - to discover, and in discovery, to\n*know* God?\n\nYou don't mind if a few of us send up a prayer on your behalf during your\nresearch, do you?  After all, if we of Christ are deluding ourselves, you\nreally have nothing to worry about, eh?\n\nUntil the King returns,\n\nJason\n\n\n-- \nJason D. Smith  \t|\njasons@atlastele.com\t|    I'm not young enough to know everything.\n     1x1        \t| \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11059, "properties": {"category": "rec.sport.hockey", "text": "From: gld@cunixb.cc.columbia.edu (Gary L Dare)\nSubject: Re: Schedule...\nNntp-Posting-Host: cunixb.cc.columbia.edu\nReply-To: gld@cunixb.cc.columbia.edu (Gary L Dare)\nOrganization: PhDs In The Hall\nLines: 40\n\nmre@teal.Eng.Sun.COM (Mike Eisler) writes:\n>gld@cunixb.cc.columbia.edu (Gary L Dare) writes:\n>>I can't believe that ESPN is making SportsChannel America look good.\n>\n>But only in NY,NJ, Philadelphia, and Chicago. Everywhere else, the only\n>reason SportsChannel was available was for local baseball broadcasts.\n\nYes, a point well-taken ... however, even in areas that finally got\nsome games, there's something nagging in the back of your skull when\nthe network that has the national rights in its pocket says on its\nsports news, \"There's an awesome overtime going on in Quebec City,\nand we'll *try* to get you an update through the show ...\" when you\nknow that it's on a satellite's feedhorn somewhere up there ...\n\n>If people want hockey on TV, they should watch hockey on TV. I bet \n>the ratings for hockey on Sunday on ABC went into the toilet. \n\nFrom today's Times, ABC got great ratings in Chicago and St. Louis (a\n4.2), and the Kings-Flames got a 2.9 on the West Coast, but only a 2.2\nin metro New York (i.e., the Devils squandered their newfound support\nfrom a year ago when they played the Rangers )-;).  In comparison,\nSeniors Golf did better ...\n\n>Next week, there will be far fewer ABC affiliates with hockey.\n\nI fear that the overall national numbers will not be so great ...\nI can't tell if ABC did any advance marketing or not, 'cos I don't\nwatch much TV ... the NHL should have made sure that it was solid\non cable before going on the air.  Even ESPN could've sold second\nrights to third party systems (i.e., non-SportsChannel) since they\nare not making any extra money by sitting on the games ... hockey\nfans will not necessarily be watching pre-season beach volleyball\nif playoffs games aren't being shown somewhere ...\n\ngld\n--\n~~~~~~~~~~~~~~~~~~~~~~~~ Je me souviens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nGary L. Dare\n> gld@columbia.EDU \t\t\tGO  Winnipeg Jets  GO!!!\n> gld@cunixc.BITNET\t\t\tSelanne + Domi ==> Stanley\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11060, "properties": {"category": "comp.graphics", "text": "From: kohut1@urz.unibas.ch\nSubject: Help ! Miro Crystal or ATI GUP ?\nOrganization: University of Basel, Switzerland\nLines: 21\n\n\n\nI'm planning to buy a new VLB/EISA system with a good graphic performance.\nSo far I looked at the ATI GUP VLB as my favorite graphics-card. But \nrecently I heard something about a new card from  Miro. It was the Miro\nCrystal 24s with 3 MB and True Color support up to 1024x768. It costs just a\nlittle more than the ATI. So, can't decide which one matches better my needs.\nAny technical references and performance comparisons (especially from the\nMiro card) would be greatly appreciated.\n\n-Peter-\n\nE-Mail : kohut1@urz.unibas.ch\n\n                     ******************************\n                    **** Universitas Basiliensis *****\n                    ****      Switzerland        *****\n                     ********************************\n\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11061, "properties": {"category": "comp.windows.x", "text": "From: duvvuri@flashflood.cs.odu.edu (D.V.Prakash)\nSubject: Pointer..Xlib\nNntp-Posting-Host: flashflood.cs.odu.edu\nOrganization: Old Dominion University, Norfolk, Va\nLines: 26\n\n\nHi\n\nI am trying to implement a pointer feature in Xlib\n\nI have multiple windows and all can take input and \nshow output simultaneously on all other displays\n\nI want to implement a pointer feature \n\nI would like to get the pointer to come up on all windows once \nI choose pointer in the menu and every one should be able\nto see it\n\nCan you give me some hints as to how I should proceed \nI am new to Xlib\n\n\n\nreplies will be greatly appreciated\n\nThank you\n\nPrakash\n< duvvuri@cs.odu.edu >\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.522+0000", "event": "documents", "entityId": 11062, "properties": {"category": "talk.politics.guns", "text": "From: allanh@sco.COM (Allan J. Heim)\nSubject: Re: Ban All Firearms !\nOrganization: The Santa Cruz Operation, Inc.\nLines: 34\n\n\njrm@gnv.ifas.ufl.edu:\n\n   Firearms tend to fall into this low dollar/pound area.  It would not\n   be economic to smuggle them in.  All production would have to be\n   local.  There are not all that many people who have both the skill\n   AND motivation to assemble worthwhile firearms from scratch.\n   High-ranking crime figures could obtain imported Uzis and such, but\n   the average person, and average thug, would be lucky to get a zip-gun\n   - and would pay through the nose for it.\n\nGood point you make.  However, a zip gun, by definition, is a crude,\nhomemade gun--certainly not something capable of sustained, accurate\nfire, but it would be useful as a means of getting a normal gun.  Recall\nthe tiny, single-shot pistols made by the Allies during World War II for\nuse by partisans.  They were essentially well-made zipguns, incapable of\neffective fire beyond a few feet.  But they were useful as a means of\nkilling German soldiers for their guns.\n\nAlso note that the crowd-pleasin' favorite, the Sten gun, was\nspecifically designed to require as little machine work as possible.\nThe point's been made here that one could make a Sten clone with steel\ntubing, hand tools and a welder.\n\nI still think that while the point is good, I think there's a difference\nbetween marijuana and firearms, in that quality marijuana can be grown\nlocally; there's no need to import the stuff.  If guns are banned, I\nthink the demand for \"real\" guns will be sufficient to make smuggling\neconomically feasible, thus rendering a ban moot.  In any case, the\nresult would be the same--people who aren't criminals won't have\nfirearms, and \"bad guys\" will continue to have access to them, one way\nor another.  And I don't see that as a necessary situation.\n-- \nAllan J. Heim   allanh@sco.COM   ...!uunet!sco!allanh   +1 408 427 7813\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11063, "properties": {"category": "talk.politics.misc", "text": "From: rick@sjsumcs.sjsu.edu (Richard Warner)\nSubject: Re: California Insurance Commissioner Endorses Federal Legislation to Protect Consumers from Scam Insurance Companies\nOrganization: San Jose State University - Math/CS Dept.\nLines: 29\n\njohne@vcd.hp.com (John Eaton) writes:\n\n>Nigel Allen (ndallen@r-node.hub.org) wrote:\n>: Here is a press release from the California Department of Insurance.\n>: \n>:  California Insurance Commissioner Endorses Federal Legislation to\n>: Protect Consumers from Scam Insurance Companies\n>----------------\n>I may be a little dense but I would have thought that protecting consumers\n>from scam insurance companies would be the prime objective of something \n>called the Cal insurance Commission. If they aren't accomplishing that now\n>then why do we need them?\n\nVery simple.  An 'Insurance Commissioner' is a bureaucrat - a regulator.\nIt is his/her duties to make rules to enforce laws.  He/she cannot\nmake laws.  If there is no law that covers a specific subject, say\nscam insurance companies, a regulator cannot create one.  So they have\nto go to a proper legislative body to get such a law enacted.  For\nthe California Insurance Commissioner, there are two possible legislative\nbodies:  the California State Legislature and the U.S. Congress.  We all\nknow how little the California State Legislature accomplishes, esp. \nalong the lines of insurance reform legislation (negative movement).  So\nGaramendi wants the feds to do it, because: (a) he has a better chance\nof getting a federal law through, and (b) since many of the scam\ncompanies work across state lines/national borders, it is better to\nhave a law that reach out into other jurisdictions.\n\n>John Eaton\n>!hp-vcd!johne\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11064, "properties": {"category": "sci.space", "text": "From: isaackuo@skippy.berkeley.edu (Isaac Kuo)\nSubject: Re: Abyss--breathing fluids\nOrganization: U.C. Berkeley Math. Department.\nLines: 19\nNNTP-Posting-Host: skippy.berkeley.edu\n\nAre breathable liquids possible?\n\nI remember seeing an old Nova or The Nature of Things where this idea was\ntouched upon (it might have been some other TV show).  If nothing else, I know\nsuch liquids ARE possible because...\n\nThey showed a large glass full of this liquid, and put a white mouse (rat?) in\nit.  Since the liquid was not dense, the mouse would float, so it was held down\nby tongs clutching its tail.  The thing struggled quite a bit, but it was\ncertainly held down long enough so that it was breathing the liquid.  It never\ndid slow down in its frantic attempts to swim to the top.\n\nNow, this may not have been the most humane of demonstrations, but it certainly\nshows breathable liquids can be made.\n-- \n*Isaac Kuo (isaackuo@math.berkeley.edu)\t*       ___\n*\t\t\t\t\t* _____/_o_\\_____\n*\tTwinkle, twinkle, little .sig,\t*(==(/_______\\)==)\n*\tKeep it less than 5 lines big.\t* \\==\\/     \\/==/\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11065, "properties": {"category": "sci.med", "text": "From: myers@cs.scarolina.edu (Daniel Myers)\nSubject: Re: Is MSG sensitivity superstition?\nOrganization: USC  Department of Computer Science\nLines: 39\n\nFrequently of late, I have been reacting to something added to\nrestaurant foods.  What happens is that the inside of my throat starts\nto feel \"puffy\", like I have a cold, and also at times the inside of my\nmouth (especially the tongue) and lips also feel puffy.\n\nThe situations around these symptoms almost always involve restaurants\n(usually chinese), the most notable cases:  a cheap chinese fast food\nchain, a japanese steak house (I had the steak), and another chinese\nfast food chain where I SAW the cook put about a tablespoon or two of\nwhat looked like sugar or salt into my fried rice.\n\nI am under the impression that MSG \"enhances\" flavor by causing the\ntaste buds to swell.  If this is correct, I do not find it unreasonable\nto assume that high doses of MSG can cause other mouth tissues to swell.\n\nAlso, as the many of the occurances (including two of the above)\ninvolved beef, and as beef is frequently tenderized with MSG, this is\nwhat I suspect as being the cause.\n\nI wouldn't be at all surprised if toxicity studies of MSG in animals\nshowed it as being harmless, as it would be very startling to hear a lab\nrat or rhesus monkey complain about their throats feeling funny.\n\nAnyone who wishes to explain how the majority of food additives are\ntotally harmless is welcome to e-mail me with the results of any studied\nthey know of.  I will probably respond to them however with a reminder\nof how long it took to prove that smoking causes cancer (which the\ntobacco companies still deny).\n\n- DM\n\n(If I sound grumpy, it's because I had beef with broccoli for lunch\ntoday, and now it hurts to swallow)\n\n--\n------------------------------------------------------------------------------\nDan Myers (Madman)\t\t| If the creator had intended us to walk \nmyers@usceast.cs.scarolina.edu\t| upright, he wouldn't have given us knuckles\n------------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11066, "properties": {"category": "misc.forsale", "text": "From: mkbaird@david.wheaton.edu (marcus k baird)\nSubject: CD-ROMS 4-Sale  (NEW)\nOrganization: Wheaton College, IL\nLines: 101\n\nI'm looking to find some people interested in getting some cd-rom's. Below\nis a list with their prices. If you are interested in any of these, send me\nsome mail and I can guarantee this price. If you are not local their will be\na shipping cost, and cod cost if you prefer it to be shipped that way.\nMarcus\n\n\nAmerican Business Phonebook             DOS             $20.00\nAnimals                                 DOS             $30.00\nAnimals                                 MPC             $30.00\nAudoban Birds                           DOS             $20.00\nAudoban Mammals                         DOS             $20.00\nBarney Bear Goes to School              DOS             $30.00\nBible Library                           DOS             $45.00\nBibles and Religion                     DOS             $15.00\nBook of Lists                           DOS             $30.00\nBritannicas Family Choice               DOS             $23.00\nBritamrica Select                       DOS             $24.33\nBusiness & Economics                    DOS             $30.00\nBusiness Backgrounds                    DOS             $20.00\nBusiness Master                         DOS             $20.00\nCarmen San Diego lWhere is ...)         MPC             $30.00\nCD PLay/Launch                          DOS             $25.00  \nCD ROM  Software Jukebox                DOS             $20.00\nCIA Vorld Taur                          DOS             $35.00\nChess Master 3000 MPC                   DOS             $35.00\nCLassic Col lection                     DOS             $60.00\nCLipert Goliath \t\t        DOS             $15.00\nColossal Cookbook                       DOS             $15.00\nDeLorme's Atlas USA                     WIN             $25.00\nDesert Storm                            MPC             $35.00\nDeathstar Arcade Battles                DOS             $15.00\nDictionaries & Language                 DOS             $15.00\nEducation Master                        DOS             $20.00\nELectronic Home Library                 DOS             $35.00\nFamily Doctor                           DOS             $30.00\nFamily Encyclopedia by Comptons         DOS             $49.00\nFamily Encyclopedia by Comptons         MPC             $49.00\nGame Master                             DOS             $20.00\nGame Pack II                            DOS             $25.00\nGolden Immortal                         DOS             $25.00\nGreat Cities of the World               DOS             $25.00\nGreet Cities of the World               MPC             $30.00\nGreat Cities of the World II            DOS             $25.00  \nGreat Cities of the World II            MPC             $30.00\nGroliers Encyclopedia                   DOS             $60.00\nGroliers Encyclopedia                   MPC             $60.00\nGuiness Disc 1992                       DOS             $15.67\nHam Radio\t\t                DOS             $15.00\nInformation USA\t                        DOS\t        $35.00\nIslands Designs\t\t       \t        DOS\t        $20.00\nJets & Props                            DOS\t        $25.00\nJones ... Fast Lane\t\t        DOS/MPS\t        $25.00\nKGB/CIA  World Fact Book\t        DOS\t        $25.00\nKings  Quest  5:\t                DOS/MPC         $25.00\nLibrary of the  Future\t                DOS\t        $90.00\nLoom\t\t\t                DOS\t        $35.00\nMPC  Wizard\t\t                MPC\t        $15.00\nMacMillan  Kids  Dictionary\t        MPC             $55.00\nMagazine  Rack\t\t                DOS\t        $25.00\nMajestic  Places\t\t        DOS\t        $20.00\nMavis Beacon Teaches Typing             MPC\t        $35.00\nMixed Up Mother Goose    \t        DOS/MPC\t        $25.00\nMoney,Money,Money,                      DOS\t        $20.00\nMonkey Island\t                        DOS             $35.00\nOak CD Stand\t\t                DOS\t        $15.00\nOur Solar System\t\t        DOS\t        $15.00\nPresidents\t\t                DOS\t        $85.00\nPublish It\t\t\t        DOS\t        $30.00\nReference  Library\t\t        DOS\t        $35.00\nSecret  Weapons/Luftwaffe\t        MPC\t        $35.00\nShereware Games\t\t                DOS\t        $35.00\nShereware  Overload\t\t        DOS\t        $15.00\nSher Holmes/Consul Det\t                MPC\t        $35.00\nSleeping  Beauty\t\t        DOS\t        $20.00\nSrd CD Software Bundle - 4 Titles       N/A\t        $90.00\nStellar  7\t\t\t        DOS/MPC\t        $25.00\nStory  Time - Interactive               DOS\t        $25.00\nThe CD  ROM  Collection\t                DOS\t        $15.00\nTime Magazine Almanac Current           DOS\t        $35.00\nTime Table of Hist/Sci/Innovation\tDOS\t\t$35.00\nTons & Gigs\t\t\t\tDOS\t\t$49.00\nToo Many Typefonts\t\t\tDOS\t\t$15.00\nTotal  Baseball\t\t\t\tDOS\t\t$30.00\nUS  Atlas/w Automap\t\t\tDOS\t\t$35.00\nUS  History\t\t\t\tDOS\t\t$35.00\nUS/World  Atlas\t\t                DOS/MPC\t        $30.00\nUS Wars:Civil War\t\t\tDOS\t\t$25.00\nWild Places\t\t\t\tDOS\t\t$25.00\nWing Com/Ultima VI\t\t\tDOS/MPC\t        $35.00\nWorld View\t\t\t\tDOS\t\t$25.00 \n\n\n\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\nE-Mail mkbaird@david.wheaton.edu -- mkbaird%david.bitnet@uunet.uu.net --  \nVoice  708-752-8847 - Internet 192.138.89.15 -- mkbaird%david@uunet.uu.net                    \n-- \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\nE-Mail mkbaird@david.wheaton.edu -- mkbaird%david.bitnet@uunet.uu.net --  \nVoice  708-752-8847 - Internet 192.138.89.15 -- mkbaird%david@uunet.uu.net                    \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11067, "properties": {"category": "soc.religion.christian", "text": "From: KSTE@vm.cc.purdue.edu (Kerry Stephenson)\nSubject: Request for research subjects\nOrganization: Purdue University\nLines: 14\n\nPlease excuse the interruption.\n \nI am seeking pro-life activists to fill out a 13-page questionnaire\non attitutes, opinions, and activities.  If you would be willing\nto participate in this research, please email me privately at\nKSTE@PURCCVM.BITNET.  All replies and questionnaires will be\nmade anonymous prior to printout and will be kept confidential.\n \nThank you very much for your help.\n \n--Kerry at Purdue\n\n[Note that I don't normally accept postings on abortion.  So this\nisn't an invitation to a discussion in this group.  --clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11068, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: Islam And Scientific Predictions (was Re: Genocide is Caused by Atheism)\nOrganization: Monash University, Melb., Australia.\nLines: 60\n\nIn <CINDY.93Apr18124333@solan10.solan.unit.no> cindy@solan10.solan.unit.no (Cynthia Kandolf) writes:\n\n>Various quotes deleted in the interest of saving a little bit of\n>bandwidth, but i will copy the Koran quote:\n>>>>\"AND IT IS HE (GOD ALMIGHTY) WHO CREATED THE NIGHT AND THE\n>>>>DAY, AND THE SUN AND THE EARTH:  ALL (THE CELETIAL BODIES)\n>>>>SWIM ALONG, EACH IN ITS ROUNDED COURSE.\"  (Holy Quran 21:33)\n\n>As it has been pointed out, this quote makes no claim about what\n>orbits what.  The idea that something orbited something had been held\n>as true for many years before the Koran was written, so the fact that\n>it says something orbits something is hardly surprising insight.  My\n>concern is with the word \"rounded\". \n\n>There are two interpretations of this word:\n>1. It means in a circle.  This is wrong, although many believed it to\n>be true at the time the Koran was written.  In other words, it is not\n>describing our neighborhood of the universe as it really exists, but\n>as it was thought to be at the time.  This has implications which i\n>hope are obvious to everyone.\n>2. It means \"in a rounded shape\", which could include elipses (the\n>geometrical form which most nearly describes the orbits of the\n>planets).  This is also not a great insight.  Look at the shapes you\n>see in nature.  Very few of them even approach a square or rectangle;\n>those are human-created shapes.  Everything in nature is rounded to\n>some degree.  Even the flat-earthers don't try to claim Earth is a\n>rectangle.  Children who draw imaginary animals seldom give them\n>rectangular bodies.  We seem to instinctively recognize that nature\n>produces rounded shapes; hence, the assumption that the orbits of the\n>planets would be round hardly takes divine inspiration.\n\nIt is good to remember that every translation is to some extent an\ninterpretation, so (as you point out below) one must really go back to\nthe original Arabic.  Regarding the verses relevant to nature, I prefer\nto use Dr. Maurice Bucaille's translations (in his book, \"The Bible, the\nQur'an and Science\") for in general his translations are more literal.\n \nMaurice Bucaille translates the portion of the verse you are addressing\nas \n\n\"...Each one is travelling with an orbit in its own motion.\"\n\n(Also note that \"the celestial bodies\" in the first translation quoted\nby you above is the translator's interpolation -- it is not existent in\nthe original Arabic, which is why it is included in brackets.) \n\n>Perhaps someone who can read the original Arabic can eliminate one of\n>these interpretations; at any rate, neither one of them is exactly\n>impressive.\n\nYou're right, what the verses _do_ contain isn't all that remarkable.\n\nHowever, Dr. Bucaille (a surgeon, that's how he's a \"Dr.\") thinks it is\nsignificant that the above verse contains no geocentric ideas, even\nthough geocentrism was all the rage up until the 17th century (?) or so.\n(And this goes for the rest of the Qur'an as well, which has about 750\nverses or so regarding nature, I think I remember reading once.)\n\n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11069, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Armenian genocide of the Muslim people in 1914 and 1993.\nArticle-I.D.: zuma.9304052051\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 52\n\nIn article <C51A38.MCJ@news.cso.uiuc.edu> ptg2351@uxa.cso.uiuc.edu (Panos Tamamidis ) writes:\n\n> Alah, alah, kleriklemek mutuglu diyeni de la malakismenos kolo-Tourkos ...\n> Likkleserfelc ekmek salam.  Toukoutakli, ranadas sarma.\n> Geke re? Ti, eipate yok? Plaka numarani alalim kanw re...\n\n\nSource: A. Alper Gazigiray, \"Osmanlilardan Gunumuze Kadar Vesikalarla \n        Ermeni Teroru'nun Kaynaklari,\" Gozen Kitabevi, Istanbul, 1982.\n\npp. 267-268.\n\n\"Van'dan sonra ilk isyan Sebinkarahisar'da basladi. 1915 senesi 5 \n haziran da, Sivasli Murat [Hamparsum Boyaciyan - sa] denilen bir \n caninin emri altinda 500 kadar cete Sebinkarahisari basti. Burasi o \n zaman en onemli askeri bir yerdi. Erzurum bolgesinde Rus ordusu ile \n savasan Osmanli Ordularinin butun ikmal araclari buradan gecmekte idi. \n Ermeniler boyle onemli bir yer isgal ettikleri takdirde Turk \n ordularinin ikmali yapilamayacak ve Rus Ordularinin harekati \n kolaylasacakti. Sebinkarahisarin islam mahalleleri tamamen atese \n verildi. Her rastlanan Turk iskence ile olduruldu.\n\n Mus'da ayni sekilde isyan devam ediyordu. Sason daglari Ermeni \n eskiyalariyla dolu idi. Bu isyanlari, ordunun arkasini vurmak ve Rus \n Ordusunun ilerlemesini saglamak icin Ermenilerin pasa dedikleri Rupen \n idare ediyordu. Bundan baska, Rus Ordularinin Rus - Turk sinirindan \n gecerek Turk topraklarina girdikleri bu safhada Rus Ordusu icinde \n bulunan Ermeni gonullu alaylariyla Rus Ordularinin isgali altina giren \n Ermeni koylerindeki silahli halk, Turk koylerine hucum ederek bu \n koyleri yakip yikmislar ve Turk halkini hatira gelmeyen mezalim ve \n iskence ile oldurmulerdir. \n\np. 285.\n\n\"Bu suretle sehirde 23 gun cok kanli olaylar cereyan etti, bu sure \n sonunda Van, Ermeniler tarafindan tamamen isgal olundu. Buradan \n kacabilen Turklerin, Ermenilerin davranislari hakkinda verdikleri \n haberler tuyler urpertici idi. Cunku isyancilar halkin cogunu oldurmus,\n kadinlarin irzina gecmis, Turk kadin ve kizlarini bazi evlerde \n topladiktan sonra buralarini Genelev haline getirmislerdir. O zaman \n Van'da 1500 kadar kadin ve cocuktan baska Turk kalmamis, bunlari da \n oradaki Amerikalilar korumustur. Sehir bastan basa harab olmus, carsi \n kamilen yanmisti.\"\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11070, "properties": {"category": "rec.sport.hockey", "text": "From: umturne4@ccu.umanitoba.ca (Daryl Turner)\nSubject: Re: Too Many Europeans in NHL\nNntp-Posting-Host: gibson.cc.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Manitoba, Canada\nLines: 76\n\nIn article <rauser.734062608@sfu.ca> rauser@fraser.sfu.ca (Richard John Rauser) writes:\n>\n>   Here's the point: there are far too many Europeans in the NHL. I am sick\n>of watching a game between an American and a Canadian team (let's say, the\n>Red Wings and the Canucks) and seeing names like \"Bure\" \"Konstantinov\" and\n>\"Borshevshky\". Is this North America or isn't it? Toronto, Detriot, Quebec,\n>and Edmonton are particularly annoying, but the numbers of Euros on other\n>teams is getting worse as well. \n\nGee, you'd think Winnipeg would be tops on that list, what with 8 regulars\nbeing European.\n\n\n>\n>    I live in Vancouver and if I hear one more word about \"Pavel Bure, the\n>Russian Rocket\" I will completely throw up. As it is now, every time I see\n>the Canucks play I keep hoping someone will cross-check Bure into the plexiglassso hard they have to carry him out on a stretcher. (By the way, I'm not a\n>Canucks fan to begin with ;-). \n\nWell, being a Jet fan, I sometimes wish that Bure would get knocked silly\ntoo.  (Nothing serious, just enough to keep him out of a game. :)\n\n\n>\n>    Okay, the stretcher remark was a little carried away. But the point is that\n>I resent NHL owners drafting all these Europeans INSTEAD of Canadians (and\n>some Americans). It denies young Canadians the opportunity to play in THEIR\n>NORTH AMERICAN LEAGUE and instead gives it to Europeans, who aren't even\n>better hockey players. It's all hype. This \"European mystique\" is sickening,\n>but until NHL owners get over it, Canadian and American players will continue\n>to have to fight harder to get drafted into their own league.\n\nIn most cases, the owners have very little to do with it.  They give their\ngeneral managers one order when it comes to the draft...find me the best\nplayers so that our team will win the Stanley Cup.  Whether that player is\nin Kindersley, Saskatchewan or Chelyabinsk, Russia, if the GM believes him\nto be the better player, the GM should be drafting him.\n\nWhere do you get off calling the NHL THEIR league, when referring to Canadian\nplayers.  It doesn't belong to them, it belongs to the owners.  The owners\ncan do what they want.  While a 'Canadian content' rule might be enforcable\nhere in Canada, there is enough doubt that it would be enforcable in the US\nthat the CFL (sorry for the football reference) didn't even TRY to push their\nimport ratio rule on the Sacromento Goldminers.\n\nIncreasing the competition for the 'elite' positions, in most cases, would\nmake players better anyways.  (Oh yeah, and how many Europeans play at the\nlower levels of professional hockey in North America?  While there are some\nthat play in the AHL, or the IHL where that's an NHL team's primary farm\nclub, you don't hear of many Europeans playing in the CHL, the ECHL, or on\nthe secondary farm teams in the IHL.  (ie. the Jets do have a few Russian\nplayers in Moncton, but I don't believe there are any Europeans in Ft. Wayne.))\nSo with all those teams, there are plenty of positions for hockey players\nin North America.\n\n>\n>    With the numbers of Euros in the NHL escalating, the problem is clearly\n>only getting worse.\n>\n>    I'm all for the creation of a European Hockey League, and let the Bures\n>and Selannes of the world play on their own continent.\n>\n>    I just don't want them on mine.\n\nI'm in favour of the NHL being the league for the premier players in the\nworld.  I've grown up with Europeans playing on 'my' team, and some of those\nplayers were the among the best in the world.  From Hedberg, Nilsson, and\nSjoberg, to Sel{nne, Zhamnov, and Olausson, and all those in between and to\ncome, I wouldn't have it any other way.\n\nDaryl Turner : r.s.h contact for the Winnipeg Jets \nInternet: umturne4@ccu.umanitoba.ca  \nFidoNET: 1:348/701 -or- 1:348/4  (please route through 348/700)\nTkachuk over to Zhamnov, up to Sel{nne, he shoots, he scores! \nThe Jets win the Cup!  The Jets win the Cup!\nEssensa for Vezina!  Housley for Norris!  Sel{nne for Calder!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11071, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: Need longer filenames\nFrom: maystonr@grace.cri.nz (Richard Mayston)\nDistribution: world\nOrganization: Industrial Research Ltd., New Zealand.\nNNTP-Posting-Host: rmayston.grace.cri.nz\nLines: 10\n\n\n\nIn article <765461d518325t9@infoserv.com> hfeldman@infoserv.com (Howard MITCHell Feldman) writes:\n>In <1993Apr19.211044.28763@guinness.idbsu.edu>, lhighley@gozer.idbsu.edu (Larry Paul Highley)  wrote:\n>> \n>> \n>> Is there a utility out there that will let me use filenames longer than\n>> the standard 8.3 format.  \n>\nYep, it's called OS2!\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11072, "properties": {"category": "talk.politics.misc", "text": "Subject: Re: Stop putting down white het males.\nFrom: as010b@uhura.cc.rochester.edu (Tree of Schnopia)\nOrganization: University of Rochester - Rochester, New York\nNntp-Posting-Host: uhura.cc.rochester.edu\nLines: 32\n\nIn <C50FHG.MEA@ocsmd.ocs.com> mark@ocsmd.ocs.com (Mark Wilson) writes:\n\n>Yuri Villanueva (elmo@cybernet.cse.fau.edu) wrote:\n>: pbray@envy.reed.edu (Public account) writes:\n>: \n>: > In article <1993Apr2.180839.14305@galileo.cc.rochester.edu>  \n>: > as010b@uhura.cc.rochester.edu (Tree of Schnopia) writes:\n>: >> In <1993Apr2.064804.29008@jato.jpl.nasa.gov>  \n>: >> michael@neuron6.jpl.nasa.gov (Michael Rivero) writes:\n>: >> \n>: >>We are told, by U.S. congresswoman Barbara Jordan, that we are biologically\n>: >>incapable of compassion.\n>Personally, I doubt she said anything of the kind, but if\n>someone can provide the ORIGINAL quote, IN CONTEXT, WITH SOURCE\n>(for, ahem, cross-checking), I would we willing to agree\n>she is full of sh*t.  Naturally, if no one can provide these\n>bits of data, the paraphrase listed must be disregarded,\n>and its poster regarded as full of sh*t.  OK, so which will it be?\n\nI followed up without a thought of double-checking...if I double-checked\nevery fact people vomited onto the table here on the net, I'd never have\ntime to sleep.  But to pass the buck to the person who originally posted\nthat quote...\n\n...well, Michael?  Take it away!  (wild applause)\n\nDrewcifer\n-- \n----bi    Andrew D. Simchik\t\t\t\t\tSCHNOPIA!\n\\ ----    as010b@uhura.cc.rochester.edu\t\t\t\tTreeWater\n \\\\  /    \n   \\/     \"Words Weren't Made For Cowards\"--Happy Rhodes\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11073, "properties": {"category": "rec.autos", "text": "From: dduff@col.hp.com (Dave Duff)\nSubject: Re: Did US drive on the left?\nArticle-I.D.: hp-col.1pqtuiINNj5d\nOrganization: HP Colorado Springs Division\nLines: 2\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\nDeSoto's first year of manufacture was 1928, so this may indeed have been\nan export special, as left hand controls were standard here by then.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11074, "properties": {"category": "sci.electronics", "text": "From: billq@ms.uky.edu (Billy Quinn)\nSubject: Suggestions  on Audio relays ???\nOrganization: University Of Kentucky, Dept. of Math Sciences\nLines: 22\n\nI built a little project using the radio shack 5vdc relays to switch\naudio.  I got pretty bad 'clicks' when the thing switched.  I was doing\nmost of the common things one is supposed to do when using relays and\nnothing seemed to get rid of the clicks.\n\n\nMy question is:\n\n\tIs there a good relay/relay circuit that I can use for switching\naudio, so that there will be *NO* noise of any kind on the audio lines.\n\n\nI will appreciate any advice or references to advice.  Also, exact part\nnumbers/company names etc. for the relays will help!\n\nThanks!\n\n\n-- \n*-----------------------------------------------------------------------*\n*\tBill Quinn\t\t\tbillq@ms.uky.edu\t\t*\n*-----------------------------------------------------------------------*\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11075, "properties": {"category": "sci.crypt", "text": "Subject: Re: Fifth Amendment and Passwords\nFrom: pgut1@cs.aukuni.ac.nz (Peter Gutmann)\nOrganization: Computer Science Dept. University of Auckland\nLines: 19\n\nIn <C5Jzsz.Jzo@cs.uiuc.edu> kadie@cs.uiuc.edu (Carl M Kadie) writes:\n\n>The crypto-key disclosure issue hasn't come up yet, but current law\n>suggests that it's a loser for the defendant--he'll be compelled to turn\n>over the key.\n\nIt has actually come up (or it will in a week or two) in NZ.  I'll post the\noutcome when the trial finishes (which could take months BTW).  Overall it\nlooks like you can't be forced to reveal a password, if anyone can provide\na convincing legal argument to the contrary (ie an actual court case) I'd\nbe most interested...\n\nPeter.\n--\n pgut1@cs.aukuni.ac.nz||p_gutmann@cs.aukuni.ac.nz||gutmann_p@kosmos.wcc.govt.nz\npeterg@kcbbs.gen.nz||peter@nacjack.gen.nz||peter@phlarnschlorpht.nacjack.gen.nz\n             (In order of preference - one of 'em's bound to work)\n                          -- Think!  (or thwim) --\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11076, "properties": {"category": "alt.atheism", "text": "From: darice@yoyo.cc.monash.edu.au (Fred Rice)\nSubject: Re: Why is sex only allowed in marriage: Rationality (was: Islamic marriage)?\nOrganization: Monash University, Melb., Australia.\nLines: 115\n\nIn <1993Apr4.093904.20517@proxima.alt.za> lucio@proxima.alt.za (Lucio de Re) writes:\n\n>darice@yoyo.cc.monash.edu.au (Fred Rice) writes:\n\n>>My point of view is that the argument \"all sexism is bad\" just simply\n>>does not hold.  Let me give you an example.  How about permitting a\n>>woman to temporarily leave her job due to pregnancy -- should that be\n>>allowed?  It happens to be sexist, as it gives a particular right only\n>>to women.  Nevertheless, despite the fact that it is sexist, I completely \n>>support such a law, because I think it is just.\n\n>Fred, you're exasperating...  Sexism, like racialism, is a form of\n>discrimination, using obvious physical or cultural differences to deny\n>one portion of the population the same rights as another.\n\n>In this context, your example above holds no water whatsoever:\n>there's no discrimination in \"denying\" men maternity leave, in fact\n>I'm quite convinced that, were anyone to experiment with male\n>pregnancy, it would be possible for such a future father to take\n>leave on medical grounds.\n\nOkay... I argued this thoroughly about 3-4 weeks ago.  Men and women are\ndifferent ... physically, physiologically, and psychologically.  Much\nrecent evidence for this statement is present in the book \"Brainsex\" by\nAnne Moir and David Jessel.  I recommend you find a copy and read it.\nTheir book is an overview of recent scientific research on this topic\nand is well referenced. \n\nNow, if women and men are different in some ways, the law can only\nadequately take into account their needs in these areas where they are\ndifferent by also taking into account the ways in which men and women\nare different.  Maternity leave is an example of this -- it takes into\naccount that women get pregnant.  It does not give women the same rules\nit would give to men, because to treat women like it treats men in this\ninstance would be unjust.  This is just simply an obvious example of\nwhere men and women are intrinsically different!!!!!\n\nNow, people make the _naive_ argument that sexism = oppression.\nHowever, maternity leave is sexist because MEN DO NOT GET PREGNANT. \nMen do not have the same access to leave that women do (not to the same\nextent or degree), and therefore IT IS SEXIST.  No matter however much a\nman _wants_ to get pregnant and have maternity leave, HE NEVER CAN.  And\ntherefore the law IS SEXIST.  No man can have access to maternity leave,\nNO MATTER HOW HARD HE TRIES TO GET PREGNANT.  I hope this is clear.\n\nMaternity leave is an example where a sexist law is just, because the\nsexism here just reflects the \"sexism\" of nature in making men and women\ndifferent.  There are many other differences between men and women which\nare far more subtle than pregnancy, and to find out more of these I\nrecommend you have a look at the book \"Brainsex\".\n\nYour point that perhaps some day men can also be pregnant is fallacious.\nIf men can one day become pregnant it will be by having biologically\nbecome women!  To have a womb and the other factors required for\npregnancy is usually wrapped up in the definition of what a woman is --\nso your argument, when it is examined, is seen to be fallacious.  You\nare saying that men can have the sexist maternity leave privilege that \nwomen can have if they also become women -- which actually just supports\nmy statement that maternity leave is sexist.\n\n>The discrimination comes in when a woman is denied opportunities\n>because of her (legally determined) sexual inferiorities.  As I\n>understand most religious sexual discrimination, and I doubt that\n>Islam is exceptional, the female is not allowed into the priestly\n>caste and in general is subjugated so that she has no aspirations to\n>rights which, as an equal human, she ought to be entitled to.\n\nThere is no official priesthood in Islam -- much of this function is\ntaken by Islamic scholars.  There are female Islamic scholars and\nfemale Islamic scholars have always existed in Islam.  An example from\nearly Islamic history is the Prophet's widow, Aisha, who was recognized\nin her time and is recognized in our time as an Islamic scholar.\n\n>No matter how sweetly you coat it, part of the role of religions\n>seems, historically, to have served the function of oppressing the\n>female, whether by forcing her to procreate to the extent where\n>there is no opportunity for self-improvement, or by denying her\n>access to the same facilities the males are offered.\n\nYou have no evidence for your blanket statement about all religions, and\nI dispute it.  I could go on and on about women in Islam, etc., but I\nrecently reposted something here under the heading \"Islam and Women\" --\nif it is still at your news-site I suggest you read it.  It is reposted\nfrom soc.religion.islam, so if it has disappeared from alt.atheism it\nstill might be in soc.religion.islam (I forgot what its original title\nwas though).  I will email it to you if you like. \n\n>The Roman Catholic Church is the most blatant of the culprit,\n>because they actually istitutionalised a celibate clergy, but the\n>other religious are no different: let a woman attempt to escape her\n>role as child bearer and the wrath of god descends on her.\n\nYour statement that \"other religions are no different\" is, I think, a\nstatement based simply on lack of knowledge about religions other than\nChristianity and perhaps Judaism.\n\n>I'll accept your affirmation that Islam grants women the same rights\n>as men when you can show me that any muslim woman can aspire to the\n>same position as (say) Khomeini and there are no artificial religious\n>or social obstacles on her path to achieve this.\n\nAisha, who I mentioned earlier, was not only an Islamic scholar but also\nwas, at one stage, a military leader.\n\n>Show me the equivalent of Hillary Rhodam-Clinton within Islam, and I\n>may consider discussing the issue with you.\n\nThe Prophet's first wife, who died just before the \"Hijra\" (the\nProphet's journey from Mecca to Medina) was a successful businesswoman.\n\nLucio, you cannot make a strong case for your viewpoint when your\nviewpoint is based on ignorance about world religions.\n\n Fred Rice\n darice@yoyo.cc.monash.edu.au   \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11077, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: swyatt@bach.udel.edu (Stephen L Wyatt)\nSubject: Re: Is Microsoft Windows really and Ope\nNntp-Posting-Host: bach.udel.edu\nOrganization: University of Delaware\nLines: 24\n\nIn article <1pr6r2$t7c@agate.berkeley.edu> neff123@garnet.berkeley.edu (Stephen Kearney) writes:\n>\n>Apparently not. Many people complain about the confusion that\n>results from the filemanager/progman split. It's just a basic\n>flaw.\n>\nI have one thing to say-- why does everyone say that spliting them up is\nsuch a bad thing?  I actually like my program launcher and file manager\ndo be seperate.. it make things easier to figure out.. I mean, take a look \nat OS/2's wps... (no flames!).. I personally hate it cause I just\nhave too much trouble figuring out how to do simple things like file copy..\n\nand don't say \"just drag the icon!\".. Cause I hate icons in the first place.\nI have too much trouble telling what all those little push buttons mean.\nI want \"F\"ile \"C\"opy etc.. \n\nalthough I know I'm in the minority.\n\n\n-- \n----------------------------------------------------------------------------\nswyatt@brahms.udel.edu  !!! no disclaimer...I blame everything on someone else \n----------------------------------------------------------------------------\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11078, "properties": {"category": "comp.sys.mac.hardware", "text": "From: bunt0003@student.tc.umn.edu (Monthian Buntan-1)\nSubject: Re: Fax modem for the Mac\nNntp-Posting-Host: student.tc.umn.edu\nOrganization: University of Minnesota\nLines: 36\n\nIn article <C5LLpo.In2@news2.cis.umn.edu> mbuntan@staff.tc.umn.edu () writes:\n>Hi all:\n>Thanks to you all who have responded\n>to my request for info on various kinds of fax modem.\n>I'd like to ask a few more questions.\n>1.  What are the advantages of buying a global village\n>Teleport Gold over other cheaper brands like Supra, Zoom etc?\n>2.  I heard that both Supra and Zoom use the same software.\n>Why are there so many complaints about the incompatibility problems\n>of Supra?  What kind of incompatibility is it?\n>3.  If I decided to buy the Teleport Gold, is there any\n>possibility to add a voice option in the near future?\n>4.  Has anyone heard of a possible voice option that Supra will offer\n>this coming summer?\n>5.  A person did mention a new AT&T modem.  Is it\n>getting good reviews from various Mac Magazines?\n>6.  If I want the best, fastest, most economically sound and\n>possible voice option, what fax modem should I buy?\n>\n>Sorry for posting so many questions, but I think they're necessary.\n>I promise to repost any answers if they're not already posted by a responder.\n>\n>Thanks so much in advance.\n>\n>Regards,\n>\n>Thian.\n\n\nSince I repost this message again for the second time, I hope to hear from\nsome folks on this topic.  Please reply.\n\nRegards,\n\nThian.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11079, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: Genocide is Caused by Atheism\nOrganization: Cookamunga Tourist Bureau\nLines: 26\n\nIn article <1993Apr19.113255.27550@monu6.cc.monash.edu.au>,\ndarice@yoyo.cc.monash.edu.au (Fred Rice) wrote:\n> >Fred, the problem with such reasoning is that for us non-believers\n> >we need a better measurement tool to state that person A is a\n> >real Muslim/Christian, while person B is not. As I know there are\n> >no such tools, and anyone could believe in a religion, misuse its\n> >power and otherwise make bad PR. It clearly shows the sore points\n> >with religion -- in other words show me a movement that can't spin\n> >off Khomeinis, Stalins, Davidians, Husseins... *).\n> \n> I don't think such a system exists.  I think the reason for that is an\n> condition known as \"free will\".  We humans have got it.  Anybody, using\n> their free-will, can tell lies and half-truths about *any* system and\n> thus abuse it for their own ends.\n\nI don't think such tools exist either. In addition, there's no such\nthing as objective information. All together, it looks like religion\nand any doctrines could be freely misused to whatever purpose.\n\nThis all reminds me of Descartes' whispering deamon. You can't trust\nanything. So why bother.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11080, "properties": {"category": "misc.forsale", "text": "From: jmilhoan@magnus.acs.ohio-state.edu (JT)\nSubject: *** NeXTstation 8/105 For Sale ***\nArticle-I.D.: magnus.1993Apr6.013611.3796\nDistribution: usa\nOrganization: The Ohio State University\nLines: 32\nNntp-Posting-Host: bottom.magnus.acs.ohio-state.edu\n\n\n        NeXTstation 25MHz 68040 8/105\n                     Moto 56001 DSP \n        Megapixel (perfect - no dimming or shaking)\n\n        keyboard/mouse (of course :)\n\n        2.1 installed\n        2.1 docs\n            Network and System Administration\n            User's Reference\n            Applications\n\n        The NeXT Book, by Bruce Webster (New Copy)\n\n        Black NeXTconnection modem cable\n        30 HD disks (10 still in unwrapped box, others for backing up\n            apps)\n\nI NEED to sell this pronto to get a car (my engine locked up)!\nMachine runs great... only used in my house.  Has been covered when\nnot in use on the days I wasn't around.\n\n$2,300 INCLUDING Federal Express Second Day Air, OR best offer, COD to\nyour doorstep (within continental US)!!  I need to sell this NOW, so\nif you don't agree with the price, make an offer, but within reason.\n;)\n\nThanks,\nJT\n\n(please no letters asking me to donate for a tax break)\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11081, "properties": {"category": "rec.autos", "text": "From: sorlin@magnus.acs.ohio-state.edu (Steven J Orlin)\nSubject: Re: Changing oil by self.\nKeywords: n\nNntp-Posting-Host: magnusug.magnus.acs.ohio-state.edu\nOrganization: The Ohio State University\nDistribution: usa\nLines: 18\n\n\nIn article <1993Apr15.135514.29579@cbnewsj.cb.att.com> rdb1@cbnewsj.cb.att.com\n(ronald.j.deblock..jr) writes:\n\n>You can avoid these problems entirely by installing an oil drain valve in\n>place of the bolt.  I have one on both of my cars.  There have been no\n>leaks in 210,000 miles (combined miles on both cars).\n\nYes, but then someone would have no problem draining your oil in a parking lot.\n\nall they have to do is reach underneath, turn a valve, and forget the trip \nhome.\nBut there is less likelyhood they have a wrench with them.\n\nI personally recommend, installing a 'special' locking drain plug to keep\nvandals away. :---)\n\nsteve\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11082, "properties": {"category": "alt.atheism", "text": "From: Patrick C Leger <pl1u+@andrew.cmu.edu>\nSubject: Re: thoughts on christians\nOrganization: Sophomore, Electrical and Computer Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 51\nNNTP-Posting-Host: po3.andrew.cmu.edu\nIn-Reply-To: <C5JHBp.55w@portal.hq.videocart.com>\n\nExcerpts from netnews.alt.atheism: 15-Apr-93 Re: thoughts on christians\nby Dave Fuller@portal.hq.vi \n>    I'm sick of religious types being pampered, looked out for, and WORST\n> OF ALL . . . . respected more than atheists. There must be an end\n> in sight.\n>  \nI think it'd help if we got a couple good atheists (or even some good,\nsteadfast agnostics) in some high political offices.  When was the last\ntime we had an (openly) atheist president?  Have we ever?  (I don't\nactually know; these aren't rhetorical questions.)  How 'bout some\nSupreme court justices?  \n\nOne thing that really ticked me off a while ago was an ad for a news\nprogram on a local station...The promo said something like \"Who are\nthese cults, and why do they prey on the young?\"  Ahem.  EVER HEAR OF\nBAPTISM AT BIRTH?  If that isn't preying on the young, I don't know what\nis...\n\nI used to be (ack, barf) a Catholic, and was even confirmed...Shortly\nthereafter I decided it was a load of BS.  My mom, who really insisted\nthat I continue to go to church, felt it was her duty (!) to bring me up\nas a believer!  That was one of the more presumptuous things I've heard\nin my life.  I suggested we go talk to the priest, and she agreed.  The\npriest was amazingly cool about it...He basically said that if I didn't\nbelieve it, there was no good in forcing it on me.  Actually, I guess he\nwasn't amazingly cool about it--His response is what you'd hope for\n(indeed, expect) from a human being.  I s'pose I just _didn't_ expect\nit...  \n\nI find it absurd that religion exists; Yet, I can also see its\nusefulness to people.  Facing up to the fact that you're just going to\nbe worm food in a few decades, and that there isn't some cosmic purpose\nto humanity and the universe, can be pretty difficult for some people. \nHaving a readily-available, pre-digested solution to this is pretty\nattractive, if you're either a) gullible enough, b) willing to suspend\nyour reasoning abilities for the piece of mind, or c) have had the stuff\nrammed down your throat for as long as you can remember.  Religion in\ngeneral provides a nice patch for some human weaknesses; Organized\nreligion provides a nice way to keep a population under control.  \n\nBlech.\n\nChris\n\n\n----------------------\nChris Leger\nSophomore, Carnegie Mellon Computer Engineering\nRemember...if you don't like what somebody is saying, you can always\nignore them!\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11083, "properties": {"category": "sci.electronics", "text": "From: paj@uk.co.gec-mrc (Paul Johnson)\nSubject: Re: History question\nReply-To: paj@uk.co.gec-mrc (Paul Johnson)\nOrganization: GEC-Marconi Research Centre, Great Baddow, UK\nLines: 25\n\nIn article <kazel.15.734728882@uiuc.edu> kazel@uiuc.edu (Mitch Kazel) writes:\n>Sorry if this isn't the correct news group . . . but . . .\n>\n>A colleague of mine is trying to find out when the first public use of \n>electronic voice amplification was  . . . i.e. a P-A system.\n>\n>Any reference would be appreciated.  Please reply via e-mail.\n\n>Mitch Kazel (N9HDQ)\n>INTERNET:  kazel@uiuc.edu\n\nThis is vague, so I am posting it in case anyone else knows more.\n\nI recall reading of a phonograph which used mechanical amplification.\nCompressed air was squirted out of a valve which was controlled by the\npickup.  The result was noisy and distinctly lo-fi, but much louder\nthan a conventional phonograph.  It tended to wear the disks out\npretty quickly though.\n\nPaul.\n-- \nPaul Johnson (paj@gec-mrc.co.uk).\t    | Tel: +44 245 73331 ext 3245\n--------------------------------------------+----------------------------------\nThese ideas and others like them can be had | GEC-Marconi Research is not\nfor $0.02 each from any reputable idealist. | responsible for my opinions\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.523+0000", "event": "documents", "entityId": 11084, "properties": {"category": "rec.autos", "text": "From: klf@druwa.ATT.COM (FranklinKL)\nSubject: Re: WARNING.....(please read)...\nSummary: Be careful about concealed weapons!!!\nLines: 45\n\nIn article <C5srIB.6AH@constellation.ecn.uoknor.edu>, callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n| In article <1993Apr19.145238.9561@magnus.acs.ohio-state.edu> bqueiser@magnus.acs.ohio-state.edu (Brian J Queiser) writes:\n| >anything if he hadn't emptied his gun into the asshole.  Texas--it's\n| >whole other country.\n| \n| That reminds me of one of Texas's ads...you hear a guy speaking in\n| French (like it's a letter home), then the French moves to the \n| background, and a French-accented voice come to the foreground, talking\n| about how he went walking on the beach, and it felt so much like\n| home that he decided to take his shoes off...and the rest of his\n| clothes. It ended with \"please send bail.\" :-)\n| \n| >On an rec.autos note, does anyone carry a gun on them or keep one in\n| >their car (which is bad idea, isn't it?) if you work in a bad part of\n| >town (or regularly go through one)?  Is this a loaded question?  :^)\n| \n| I normally have an unloaded Colt Delta in my glove box with a loaded\n| magazine handy (which is perfectly legal in Oklahoma). For those\n| times that I'm travelling inter-state, I keep an unloaded \n| S&W .44 Magnum revolver in the glove box, with a speed-loader\n|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n| in my pocket (which is legal everywhere, under Federal law, Illinois\n| State Police be hanged).\n| \n| As I've said before, this is stricly for defense; my insurance\n| will pay to replace my car, but I only have one life...\n| \n| \t\t\t\tJames\n| \n\nCarrying a pistol, loaded or unloaded, in the glove compartment, is\nconsidered carrying a concealed weapon in Colorado and is illegal without\na concealed weapons permit.  Unless the law has been changed recently,\ncarrying a weapon openly is legal in Colorado but concealing it is illegal.\nI read a newspaper account last year where police stopped a car on a\ntraffic infraction and observed a .357 magnum revolver sitting on the\nseat.  The driver could not be cited for possessing or carrying the weapon\nbecause it was not concealed.  The article stated that if the gun had\nbeen discovered in the glove box, it would have been considered a crime.\n\n--\nKen Franklin \tThey say there's a heaven for people who wait\nAMA     \tAnd some say it's better but I say it ain't\nGWRRA           I'd rather laugh with the sinners than cry with the saints\nDoD #0126       The sinners are lots more fun, Y'know only the good die young\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11085, "properties": {"category": "rec.motorcycles", "text": "From: fist@iscp.bellcore.com (Richard Pierson)\nSubject: Re: Observation re: helmets\nNntp-Posting-Host: foxtrot.iscp.bellcore.com\nOrganization: Bellcore\nDistribution: usa\nLines: 40\n\nIn article <211353@mavenry.altcit.eskimo.com>,\nmaven@mavenry.altcit.eskimo.com (Norman Hamer) writes:\n|>  \n|>  Grf. Dropped my Shoei RF-200 off the seat of my bike while trying to\n|> rock \n|> it onto it's centerstand, chipped the heck out of the paint on it...\n|>  \n|>  So I cheerfully spent $.59 on a bottle of testor's model paint and \n|> repainted the scratches and chips for 20 minutes.\n|>  \n|>  The question for the day is re: passenger helmets, if you don't know\n|> for \n|> certain who's gonna ride with you (like say you meet them at a ....\n|> church \n|> meeting, yeah, that's the ticket)... What are some guidelines? Should\n|> I just \n|> pick up another shoei in my size to have a backup helmet (XL), or\n|> should I \n|> maybe get an inexpensive one of a smaller size to accomodate my\n|> likely \n|> passenger? \n\n   My rule of thumb is \"Don't give rides to people that wear\na bigger helmet than you\", unless your taste runs that way,\nor they are family.friends.\nGee,  reminds me of a *dancer* in Hull, just over the river \nfrom Ottowa, that I saw a few years ago, for her I would a\nbought a bigger helmet (or even her own bike) or anything \nelse she wanted ;->\n-- \n##########################################################\nThere are only two types of ships in the NAVY; SUBMARINES \n                 and TARGETS !!!\n#1/XS1100LH\tDoD #956   #2 Next raise\nRichard Pierson E06584 vnet: [908] 699-6063\nInternet: fist@iscp.bellcore.com,|| UUNET:uunet!bcr!fist  \n#include <std.disclaimer> My opinions are my own!!!\nI Don't shop in malls, I BUY my jeans, jackets and ammo\nin the same store.\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11086, "properties": {"category": "sci.electronics", "text": "From: ritterbus001@wcsub.ctstateu.edu\nSubject: Re: Picking up cable tv with an aerial.\nLines: 37\nNntp-Posting-Host: wcsub.ctstateu.edu\nOrganization: Yale University, Department of Computer Science, New Haven, CT\n\nIn article <gyJX2B2w165w@inqmind.bison.mb.ca>, dino@inqmind.bison.mb.ca (Tony stewart) writes:\n> jfsenior@unix1.tcd.ie (John Senior) writes:\n> \n>> Recently, I discovered that it was possible to receive cable\n>> tv through the telescopic aerial on the top of my tv.\n>> The nearer this aerial is moved to the cable (which I am not\n>> connected to) which runs under the eaves of the house the better\n>> the signal.  Now, I was wondering how can I improve the signal?\n>> Is it possible to improve the signal significantly? (some channels\n> \n> CABLE EGRESS or emanations if you will are being radiated at free space \n> impedance from cables that may be harmonically realated to certain \n> channels and therfore the standing waves at 1/4 wave will transfer \n> efficiently. Also your antenna (a loose monopole) is also harmonically \n> tuned and will be more efficient at 1/2 wavelength multiples.\n> \n> Your best bet for this research is to use a tuned YAGI antenna to get the \n> gain you need. (Std TV roof antenna type) The dipoles should be parallel \n> to the radiating cable. A pre-amp doesn't help significantly in my \n> experience in most cases.\n> \n> dino@inqmind.bison.mb.ca\n> The Inquiring Mind BBS, Winnipeg, Manitoba  204 488-1607\n\nWow, what a concept!  Does anybody want to speculate on how this\n\"non-connection\" would fit into the theft of cable services laws?\nIt seems to me that unless this case is specifically written into\nthe legislation that the cable company would not have a leg to\nstand upon in court.\n\nDoes anybody out there have any specific legal knowledge on this?\n\nJim Ritterbusch\nritterbus001@wcsu.ctstateu.edu    - or - ne22@radiomail.net  (temp, rf)\nThere is an art, the Guide says, or rather a knack to flying.  The\nknack lies in learning how to throw yourself at the ground and miss.\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11087, "properties": {"category": "rec.autos", "text": "From: dduff@col.hp.com (Dave Duff)\nSubject: Re: Taurus/Sable rotor recall\nOrganization: HP Colorado Springs Division\nLines: 4\nNNTP-Posting-Host: fajita19.cs.itc.hp.com\n\n\nWe get about 20 Taurus/Sables for fleet cars at our site every year, then the\ncompany sells them a year later to employees. The folks I know who drive/buy\nthem have no complaints. The cars seem to drive real nice too. \n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11088, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: sguerke@ravel.udel.edu (Stephen Guerke)\nSubject: Re: How can I use the mouse in NON-Windows applications under MS-WINDOWS ?\nNntp-Posting-Host: ravel.udel.edu\nOrganization: University of Delaware\nLines: 22\n\nIn article <1993Apr22.153959.12328@ucsu.Colorado.EDU> gonzaled@ucsu.Colorado.EDU (LGV/MC) writes:\n\n>\n>One addition to this... I don't know if it applies to everybody.  For my\n>(Microsoft 400dpi) mouse to work with windowed DOS apps, I had to use the\n>driver that came with Windows (Version 8.20).  8.1 didn't allow me to do\n>it for some reason.\n>\n\nFor Logitech rodents use  the lmouse driver that comes with windows....\nalso you need to be using a video driver that supports use of the mouse,\nboth the VGA and SUPERVGA that come with Windows 3.1 will support it. \nboth of these are 16 color drivers, if you're lucky the manufacturer of\nyour video card might have a driver that is compatable and will support a\nmouse.  \n\nSteve\n\n-- \n   Stephen Guerke, Coord. Computer Resources  sguerke@brahms.udel.edu\n   University of Delaware Parallel Program    stephen.guerke@mvs.udel.edu\n   Georgetown, DE 19947                       ILV20078@UDELVM.UDEL.EDU\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11089, "properties": {"category": "sci.space", "text": "From: jim@inqmind.bison.mb.ca (jim jaworski)\nSubject: Re: How many read sci.space?\nOrganization: The Inquiring Mind BBS  1 204 488-1607\nLines: 36\n\nrborden@ugly.UVic.CA (Ross  Borden) writes:\n\n> In article <734850108.F00002@permanet.org> Mark.Prado@p2.f349.n109.z1.permane\n> >\n> >One could go on and on and on here, but I wonder ... how\n> >many people read sci.space and of what power/influence are\n> >these individuals?\n> >\n> \tQuick!  Everyone who sees this, post a reply that says:\n> \n> \t\t\t\"Hey, I read sci.space!\"\n> \n> Then we can count them, and find out how many there are! :-)\n> (This will also help answer that nagging question: \"Just what is\n> the maximum bandwidth of the Internet, anyways?\")\n> \n\nAs an Amateur Radio operator (VHF 2metres) I like to keep up with what is \ngoing up (and for that matter what is coming down too).\n \nIn about 30 days I have learned ALOT about satellites current, future and \npast all the way back to Vanguard series and up to Astro D observatory \n(space).  I borrowed a book from the library called Weater Satellites (I \nthink, it has a photo of the earth with a TIROS type satellite on it.)\n \nI would like to build a model or have a large color poster of one of the \nTIROS satellites I think there are places in the USA that sell them.\nITOS is my favorite looking satellite, followed by AmSat-OSCAR 13 \n(AO-13).\n \nTTYL\n73\nJim\n\njim@inqmind.bison.mb.ca\nThe Inquiring Mind BBS, Winnipeg, Manitoba  204 488-1607\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11090, "properties": {"category": "rec.autos", "text": "From: hkon@mit.edu (Henry Kon)\nSubject: sunroof leaks - I'm all wet\nOrganization: MIT\nLines: 8\nNNTP-Posting-Host: msiegel.mit.edu\n\nMy sunroof leaks.  I've always thought those things were a royal pain.\n\nCan anyone provide any insight ?\n\nI know the seal isn't great.  Maybe I could weld the stupid thing shut.\n\nhk\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11091, "properties": {"category": "talk.religion.misc", "text": "From: pmy@vivaldi.acc.virginia.edu (Pete Yadlowsky)\nSubject: Re: Who's next?  Mormons and Jews?\nOrganization: University of Virginia\nLines: 14\n\nJohn Berryhill, Ph.D. writes\n\n>I don't know who's next, but I hope it's people who pick their noses\n>while driving.  \n\numm, please don't lump us all together. It's those blatant,\nfundamentalist pickers that give the rest of us a bad name. Some of\nus try very hard to be discreet and stay alert.\n\n--\nPeter M. Yadlowsky              |  Wake! The sky is light!\nAcademic Computing Center       | Let us to the Net again...\nUniversity of Virginia          |    Companion keyboard.\npmy@Virginia.EDU                |                      - after Basho\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11092, "properties": {"category": "sci.med", "text": "From: dyer@spdcc.com (Steve Dyer)\nSubject: Re: Thrush ((was: Good Grief! (was Re: Candida Albicans: what is it?)))\nOrganization: S.P. Dyer Computer Consulting, Cambridge MA\nLines: 34\n\nIn article <21APR199308571323@ucsvax.sdsu.edu> mccurdy@ucsvax.sdsu.edu (McCurdy M.) writes:\n>Dyer is beyond rude. \n\nYeah, yeah, yeah.  I didn't threaten to rip your lips off, did I?\nSnort.\n\n>There have been and always will be people who are blinded by their own \n>knowledge and unopen to anything that isn't already established. Given what \n>the medical community doesn't know, I'm surprised that he has this outlook.\n\nDuh.\n\n>For the record, I have had several outbreaks of thrush during the several \n>past few years, with no indication of immunosuppression or nutritional \n>deficiencies. I had not taken any antobiotics. \n\nListen: thrush is a recognized clinical syndrome with definite\ncharacteristics.  If you have thrush, you have thrush, because you can\nsee the lesions and do a culture and when you treat it, it generally\nresponds well, if you're not otherwise immunocompromised.  Noring's\nanal-retentive idee fixe on having a fungal infection in his sinuses\nis not even in the same category here, nor are these walking neurasthenics\nwho are convinced they have \"candida\" from reading a quack book.\n\n>My dentist (who sees a fair amount of thrush) recommended acidophilous:\n>After I began taking acidophilous on a daily basis, the outbreaks ceased.\n>When I quit taking the acidophilous, the outbreaks periodically resumed. \n>I resumed taking the acidophilous with no further outbreaks since then.\n\nSo?\n\n-- \nSteve Dyer\ndyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11093, "properties": {"category": "talk.politics.misc", "text": "From: an030@cleveland.Freenet.Edu (Broward Horne)\nSubject: Re: hard times investments was: (no subject given)\nArticle-I.D.: usenet.1prvpu$mn9\nReply-To: an030@cleveland.Freenet.Edu (Broward Horne)\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 33\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nIn a previous article, riggs@descartes.etl.army.mil (Bill Riggs) says:\n\n>\n>\tI don't believe in the \"Wave Theory\".\n\n \n           You don't have to.  *It*  believes in YOU.\n\n\n>horses. She keeps telling me that inflation is coming back, and to lock\n>in my fixed rate mortgage as low as possible.\n\n\n        Well, looking at our new government pals, I'm inclined to\n        agree.  I don't much believe in our money, either. :)\n\n\n>\tMaybe you'd like to invest in some foreign currency.\n\n\n    Oh, ho HO!   If only you knew!  :)\n\n    Yup, I'm DEFINITELY checking out foreign currency, thanks to\n    to this newsgroup.  It sure doesn't take much thinking to realize\n    what direction the U.S. is headed.\n\n\n>\t(Sigh - speculators never learn.)\n\n\n    Oh, ho HO!  Speculator?!  Me?!  No, no, I'm going with a sure\n    thing.  Sure as \"Bust in California Real Estate\". :)\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11094, "properties": {"category": "sci.electronics", "text": "From: et@teal.csn.org (Eric H. Taylor)\nSubject: Re: HELP_WITH_TRACKING_DEVICE\nSummary: underground and underwater wireless methods\nKeywords: Rogers, Tesla, Hertz, underground, underwater, wireless, radio\nNntp-Posting-Host: teal.csn.org\nOrganization: 4-L Laboratories\nExpires: Fri, 30 Apr 1993 06:00:00 GMT\nLines: 36\n\nIn article <00969FBA.E640FF10@AESOP.RUTGERS.EDU> mcdonald@AESOP.RUTGERS.EDU writes:\n>[...]\n>There are a variety of water-proof housings I could use but the real meat\n>of the problem is the electronics...hence this posting.  What kind of\n>transmission would be reliable underwater, in murky or even night-time\n>conditions?  I'm not sure if sound is feasible given the distortion under-\n>water...obviously direction would have to be accurate but range could be\n>relatively short (I imagine 2 or 3  hundred yards would be more than enough)\n>\n>Jim McDonald\n\nRefer to patents by JAMES HARRIS ROGERS:\n958,829; 1,220,005; 1,322,622; 1,349,103; 1,315,862; 1,349,104;\n1,303,729; 1,303,730; 1,316,188\n\nHe details methods of underground and underwater wireless communications.\nFor a review, refer to _Electrical_Experimenter_, March 1919 and June 1919.\n\nRogers' methods were used extensively during the World War, and was\nunclassified after the war. Supposedly, the government rethought this\nsoon after, and Rogers was convieniently forgotten.\n\nThe bottom line is that all antennas that are grounded send HALF of\ntheir signal THRU the ground. The half that travels thru space is\nquickly dissapated (by the square of the distance), but that which\ntravels thru the ground does not disapate at all. Furthermore,\nthe published data showed that when noise drowned out regular\nreception, the underground antennas would recieve virtually noise-free.\n\nIF you find this hard to believe, then refer to the work of the\nman who INVENTED wireless: Tesla. Tesla confirmed that Rogers' methods\nwere correct, while Hertzian wave theory was completely \"abberant\".\n\n----\n ET   \"Tesla was 100 years ahead of his time. Perhaps now his time comes.\"\n----\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11095, "properties": {"category": "talk.religion.misc", "text": "From: keegan@acm.rpi.edu (James G. Keegan Jr.)\nSubject: Re: Spreading Christianity (Re: Christian Extremist Kills Doctor)\nNntp-Posting-Host: hermes.acm.rpi.edu\nReply-To: keegan@hermes.acm.rpi.edu\nOrganization: T.S.A.K.C.\nLines: 15\n\nnyikos@math.scarolina.edu (Peter Nyikos) writes:\n\n->I addressed most of the key issues in this very long (284 lines) post\n->by Dean Kaflowitz in two posts yesterday.  The first was made into the\n->title post of a new thread, \"Is Dean Kaflowitz terminally irony-impaired?\"\n->and the second, more serious one appeared along the thread\n->\"A Chaney Post, and a Challenge, reissued and revised\"\n\nif you're so insecure about people reading your posts\nthat you feel the need to write new posts announcing\nwhat you wrote in old, posts, why bother? accept it\nPHoney, you're a laughingstock.\n\n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11096, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: apland@mala.bc.ca (Ron Apland)\nSubject: Re: Telephone # of Cirrus Logic\nOrganization: Malaspina College\nLines: 14\n\nIn article <C63M1s.M86@news.Hawaii.Edu>, chen@galileo.ifa.hawaii.edu (Hua Chen) writes:\n> Is there anybody who knows the telephone number of Cirrus Logic Co., \n> maker of a graphic card? Please reply to chen@cfa.harvard.edu\n> Thank you very much.  \n> \n> Hua Chen\n> Center for Astrophysics\n> \n\n\nBBS number\n510-226-2365\n\nRon\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11097, "properties": {"category": "sci.electronics", "text": "From: alung@megatest.com (Aaron Lung)\nSubject: Re: Adcom cheap products?\nOrganization: Megatest Corporation\nLines: 30\n\nIn article <1993Apr16.105738.20864@hippo.ru.ac.za> webb@itu1 (90-29265  Webber  AH) writes:\n> ...stuff deleted...\n>\n>I was also sceptical about the amps being built in the far-east\n>  or where-ever.  But if you look in the amp and see what components\n>  they use and how it was designed, you can easily see why the\n>  amplifiers sound so brilliant.\n\nGood point...also, I wouldn't be surprised that the components\nthey use off-shore are of inferior quality.  As long as it was\nproperly designed and robust, premium components are used, it\nshouldn't matter where it is assembled.\n\n>I cannot see why people say the amplifier won't last - not with\n>  those quality components inside.  Sure the amp runs very fairly\n>  hot - but that's how you get an amp to sound incredibly good.\n\nAn amp that runs hot has no bearing on how it's gonna sound.\nThe amp you have probably is running Class-A the whole day.\n\nActually, I'd be wary of excessively hot amps, 'cauz even though\nthe components inside may be rated to run that way, excessive \nheat will dramatically shorten the life of *any* electronic component\nregardless of quality.  In fact, an amp that does run hot to the touch is\nbecause either the engineer or manufacturer of that amp wanted\nto skimp on heatsinking or cooling to save costs!  Hmmmmm....\n\naaron\n\n.\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11098, "properties": {"category": "sci.crypt", "text": "From: denning@guvax.acc.georgetown.edu\nSubject: REVISED TECHNICAL SUMMARY OF CLIPPER CHIP\nDistribution: world\nOrganization: Georgetown University\nLines: 167\n\nHere is a revised version of my summary which corrects some errors\nand provides some additional information and explanation.\n\n\n                     THE CLIPPER CHIP: A TECHNICAL SUMMARY\n\n                               Dorothy Denning\n\n                           Revised, April 21, 1993\n\n\nINTRODUCTION\n\nOn April 16, the President announced a new initiative that will bring\ntogether the Federal Government and industry in a voluntary program\nto provide secure communications while meeting the legitimate needs of\nlaw enforcement.  At the heart of the plan is a new tamper-proof encryption\nchip called the \"Clipper Chip\" together with a split-key approach to\nescrowing keys.  Two escrow agencies are used, and the key parts from\nboth are needed to reconstruct a key.\n\n\nCHIP CONTENTS\n\nThe Clipper Chip contains a classified single-key 64-bit block\nencryption algorithm called \"Skipjack.\"  The algorithm uses 80 bit keys\n(compared with 56 for the DES) and has 32 rounds of scrambling\n(compared with 16 for the DES).  It supports all 4 DES modes of\noperation.  The algorithm takes 32 clock ticks, and in Electronic\nCodebook (ECB) mode runs at 12 Mbits per second.\n\nEach chip includes the following components:\n\n   the Skipjack encryption algorithm\n   F, an 80-bit family key that is common to all chips\n   N, a 30-bit serial number (this length is subject to change)\n   U, an 80-bit secret key that unlocks all messages encrypted with the chip\n\nThe chips are programmed by Mykotronx, Inc., which calls them the\n\"MYK-78.\"  The silicon is supplied by VLSI Technology Inc.  They are\nimplemented in 1 micron technology and will initially sell for about\n$30 each in quantities of 10,000 or more.  The price should drop as the\ntechnology is shrunk to .8 micron.\n\n\nENCRYPTING WITH THE CHIP\n\nTo see how the chip is used, imagine that it is embedded in the AT&T\ntelephone security device (as it will be).  Suppose I call someone and\nwe both have such a device.  After pushing a button to start a secure\nconversation, my security device will negotiate an 80-bit session key K\nwith the device at the other end.  This key negotiation takes place\nwithout the Clipper Chip.  In general, any method of key exchange can\nbe used such as the Diffie-Hellman public-key distribution method.\n\nOnce the session key K is established, the Clipper Chip is used to\nencrypt the conversation or message stream M (digitized voice).  The\ntelephone security device feeds K and M into the chip to produce two\nvalues:\n\n   E[M; K], the encrypted message stream, and \n   E[E[K; U] + N; F], a law enforcement field , \n\nwhich are transmitted over the telephone line.  The law enforcement\nfield thus contains the session key K encrypted under the unit key U\nconcatenated with the serial number N, all encrypted under the family\nkey F.  The law enforcement field is decrypted by law enforcement after\nan authorized wiretap has been installed.\n\nThe ciphertext E[M; K] is decrypted by the receiver's device using the\nsession key:\n\n   D[E[M; K]; K] = M .\n\n\nCHIP PROGRAMMING AND ESCROW\n\nAll Clipper Chips are programmed inside a SCIF (Secure Compartmented\nInformation Facility), which is essentially a vault.  The SCIF contains\na laptop computer and equipment to program the chips.  About 300 chips\nare programmed during a single session.  The SCIF is located at\nMykotronx.\n\nAt the beginning of a session, a trusted agent from each of the two key\nescrow agencies enters the vault.  Agent 1 enters a secret, random\n80-bit value S1 into the laptop and agent 2 enters a secret, random\n80-bit value S2. These random values serve as seeds to generate unit\nkeys for a sequence of serial numbers.  Thus, the unit keys are a\nfunction of 160 secret, random bits, where each agent knows only 80.\n  \nTo generate the unit key for a serial number N, the 30-bit value N is\nfirst padded with a fixed 34-bit block to produce a 64-bit block N1.\nS1 and S2 are then used as keys to triple-encrypt N1, producing a\n64-bit block R1:\n\n        R1 = E[D[E[N1; S1]; S2]; S1] .\n\nSimilarly, N is padded with two other 34-bit blocks to produce N2 and\nN3, and two additional 64-bit blocks R2 and R3 are computed:  \n\n        R2 = E[D[E[N2; S1]; S2]; S1] \n        R3 = E[D[E[N3; S1]; S2]; S1] .\n\nR1, R2, and R3 are then concatenated together, giving 192 bits. The\nfirst 80 bits are assigned to U1 and the second 80 bits to U2.  The\nrest are discarded.  The unit key U is the XOR of U1 and U2.  U1 and U2\nare the key parts that are separately escrowed with the two escrow\nagencies.\n\nAs a sequence of values for U1, U2, and U are generated, they are\nwritten onto three separate floppy disks.  The first disk contains a\nfile for each serial number that contains the corresponding key part\nU1.  The second disk is similar but contains the U2 values.  The third\ndisk contains the unit keys U.  Agent 1 takes the first disk and agent\n2 takes the second disk.  Thus each agent walks away knowing\nan 80-bit seed and the 80-bit key parts.  However, the agent does not\nknow the other 80 bits used to generate the keys or the other 80-bit\nkey parts.  \n\nThe third disk is used to program the chips.  After the chips are\nprogrammed, all information is discarded from the vault and the agents\nleave.  The laptop may be destroyed for additional assurance that no\ninformation is left behind.\n \nThe protocol may be changed slightly so that four people are in the\nroom instead of two.  The first two would provide the seeds S1 and S2,\nand the second two (the escrow agents) would take the disks back to\nthe escrow agencies. \n\nThe escrow agencies have as yet to be determined, but they will not\nbe the NSA, CIA, FBI, or any other law enforcement agency.  One or\nboth may be independent from the government.\n\n\nLAW ENFORCEMENT USE\n\nWhen law enforcement has been authorized to tap an encrypted line, they\nwill first take the warrant to the service provider in order to get\naccess to the communications line.  Let us assume that the tap is in\nplace and that they have determined that the line is encrypted with the\nClipper Chip.  The law enforcement field is first decrypted with the\nfamily key F, giving E[K; U] + N.  Documentation certifying that a tap\nhas been authorized for the party associated with serial number N is\nthen sent (e.g., via secure FAX) to each of the key escrow agents, who\nreturn (e.g., also via secure FAX) U1 and U2.  U1 and U2 are XORed\ntogether to produce the unit key U, and E[K; U] is decrypted to get the\nsession key K.  Finally the message stream is decrypted.  All this will\nbe accomplished through a special black box decoder.\n\n\nCAPSTONE: THE NEXT GENERATION\n\nA successor to the Clipper Chip, called \"Capstone\" by the government\nand \"MYK-80\" by Mykotronx, has already been developed.  It will include\nthe Skipjack algorithm, the Digital Signature Standard (DSS), the\nSecure Hash Algorithm (SHA), a method of key exchange, a fast\nexponentiator, and a randomizer.  A prototoype will be available for\ntesting on April 22, and the chips are expected to be ready for\ndelivery in June or July.\n\n\nACKNOWLEDGMENT AND DISTRIBUTION NOTICE.  This article is based on\ninformation provided by NSA, NIST, FBI, and Mykotronx.  Permission to\ndistribute this document is granted.\n\n\n    \n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11099, "properties": {"category": "soc.religion.christian", "text": "From: norris@athena.mit.edu (Richard A Chonak)\nSubject: Re: Interfaith weddings\nReply-To: norris@mit.edu\nOrganization: l'organisation, c'est moi\nLines: 10\n\nBill Burns was looking for a description of the differnces  between the\nCatholic and Lutheran churches.\n\nI'd recommend Prof. William Whalen's book \"Separated Brethren\".  It's\nan overview of common US denominations, intended for a Catholic\naudience.\n\n-- \nRichard Aquinas Chonak, norris@mit.edu\nSeeking job change: sys-mgr: VAX, SIS, COBOL; programmer; UNIX, C, C++, X\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11100, "properties": {"category": "talk.politics.guns", "text": "From: cescript@mtu.edu (Charles Scripter)\nSubject: Re: Impeach Clinton, Reno\nOrganization: Michigan Tech\nLines: 29\nNntp-Posting-Host: physerver.phy.mtu.edu\nX-Newsreader: TIN [version 1.1 PL8]\n\nOn 21 Apr 93 02:59:52 GMT, Glenn R. Stone (gs26@prism.gatech.EDU) wrote:\n\n> Fact:  It is a federal felony to infringe civil rights under color of\n>        law; where death is involved, this offense carries a penalty\n>        of life in prison.\n\nTitle 18, 241 and/or 242 seem to apply.  241 is conspiracy (two or\nmore persons) against rights of citizens.  242 is deprivation of\nrights under color of law.  Both call for up to life in prison if\ndeath occurs.  Reno, Bentsen, and Clinton are probably all principals\nto the crime (as they are responsible for authorized actions on the\npart of their subordinates). \n\n> Conclusion:  We have NO CHOICE, if we are an honest people, but to \n>              impeach Mr. Clinton, and remove Reno from office.\n\nYou forgot one detail, they should be turned over to the Texas\nauthorities for trial, as the crime was committed there (Article 4,\nsection 2). \n\n--\nCharles Scripter   *   cescript@phy.mtu.edu\nDept of Physics, Michigan Tech, Houghton, MI 49931\n-------------------------------------------------------------\n\"...when all government... in little as in great things, shall be\ndrawn to Washington as the centre of all power, it will render\npowerless the checks provided of one government on another and will\nbecome as venal and oppressive as the government from which we\nseparated.\"   Thomas Jefferson, 1821\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11101, "properties": {"category": "talk.politics.guns", "text": "From: gaucher@sam.cchem.berkeley.edu\nSubject: Re: Guns GONE. Good Riddance !\nOrganization: University of California, Berkeley\nLines: 77\nNNTP-Posting-Host: sam.cchem.berkeley.edu\nOriginator: gaucher@sam.cchem.berkeley.edu\n\nIn article <1993Apr18.000152.2339@gnv.ifas.ufl.edu> jrm@gnv.ifas.ufl.edu writes:\n>You are loosing.\n         ^^^^^^^\n>There is no question about it. \n \nYou can't spell. There is no question about it.\n\n>Of those who vote, your cause is considered an abomination. No matter\n>how hard you try, public opinion is set against the RKBA. \n \nWe must be reading different public opinion polls. I agree that the\nmisguided public would like to see assault weapons banned (mainly because\nthey are being lied to by the media about the frequency of their use\nin violent crime ... ~1%), but if public opinion were so dead-set\nagainst the RKBA you can bet that idiots like Metzenbaum and Schumer\nwould be seeing their foolish bills getting passed through Congress\na LOT easier than they are. And as governments go broke and can no\nlonger protect their citizens you can bet that the American people\nwill start to really appreciate the usefulness of firearms. Contrary \nto what you might think, time is probably on OUR side, not YOURS.\n\n>This is the end. By the finish of the Clinton administration, your\n>RKBA will be null and void. Tough titty.\n \nYeah, right. Don't hold your breath. My condolences on the discovery\nof uncomfortable resilience in your mammary glands, but this has nothing\nto do with the issue at hand.\n\n... ridiculous tripe deleted ...\n \n>The press is against you, the public (the voting public) is against\n>you, the flow of history is against you ... this is it !\n \nYeah, the liberal press doesn't like us much, but you can't really\nexpect coherent thought from them anyway. Their opinions are based\nmore on a desire to appear politically correct than on facts (which\nare generously provided by the FBI, if they'd bother to put on their\nBirkenstocks and go to the library to read them). Most of my friends\nare anti-gun, and without exception NONE of them bases his/her opinions\non facts. They would rather believe (despite all evidence to the\ncontrary) that disarming law-abiding citizens would make the world\nmore civilized, when all it really does is make us all sheep. They \nwould rather wallow in their pitiful liberal white guilt about how\nsociety has driven the criminal to rob, rape, and murder. They \nsupport spending millions of public dollars protecting the rights of scum\nwho have already demonstrated that they have no regard for society\nor its laws. They ignore the fact that areas with the strictest gun\ncontrol (NYC,DC) have the worst crime and areas with little gun\ncontrol (VT,NH,ID) have very little crime in comparison. But they\nhave to ignore this because otherwise they would need to confront\nthe fact that law-abiding citizens who own guns are not the ones that\nare causing most of the trouble in society. Oh no, we certainly can't\naccept that! But I guess I have faith that when crime starts making\nsignificant inroads into their neighborhoods and starts directly\nhurting them and their families, they will probably whistle a different\ntune. They just better hope it isn't too late then.\n\n>Surrender your arms. Soon enough, officers will be around to collect\n>them. Resistance is useless. They will overwhelm you - one at a time.\n \nHmmm. I wasn't expecting company tonight. I might be able to whip\nup a quick cheese and cracker plate, but they should probably bring\ntheir own drinks. Do I have time to vacuum the rug?\n\n>Too fucking bad. You have gone the way of the KKK. Violent solutions\n>are passe'. Avoid situations which encourage criminals. Then you will\n>be as safe as possible. Such as it is ...\n\nI'm glad you ended the posting here. Your medication seems to have\nworn off ...\n\n-----------------------------------------------------------\nLee Gaucher    NRA               | My opinions.\ngaucher@sam.cchem.berkeley.edu   | No one else's.\n-----------------------------------------------------------\n\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11102, "properties": {"category": "talk.religion.misc", "text": "From: lowell@locus.com (Lowell Morrison)\nSubject: Re: Freemasonry and the Southern Baptist Convention\nOrganization: Locus Computing Corporation, Los Angeles, California\nLines: 41\n\nIn article <1qv82l$oj2@usenet.INS.CWRU.Edu> ch981@cleveland.Freenet.Edu (Tony Alicea) writes:\n>\n>\n>     With the Southern Baptist Convention convening this June to consider\n>the charges that Freemasonry is incompatible with christianity, I thought\n>the following quotes by Mr. James Holly, the Anti-Masonic Flag Carrier,\n>would amuse you all...\n>\n>\n>     The following passages are exact quotes from \"The Southern \n>Baptist Convention and Freemasonry\" by James L. Holly, M.D., President\n>of Mission and Ministry To Men, Inc., 550 N 10th St., Beaumont, TX \n>77706. \n> \n<much drivel deleted>\n>     \"Jesus Christ never commanded toleration as a motive for His \n>disciples, and toleration is the antithesis of the Christian message.\"\n>Page 30. \n> \n>     \"The central dynamic of the Freemason drive for world unity \n>through fraternity, liberty and equality is toleration. This is seen \n>in the writings of the 'great' writers of Freemasonry\". Page 31. \n<more drivel deleted>\n>     I hope you all had a good laugh! I know *I* did! <g>,\n>\n>\n>Tony   \nA Laugh?  Tony, this religeous bigot scares the shit out of me, and that\nany one bothers to listen to him causes me to have grave doubts about the\nfuture of just about anything.  Shades of the Branch Davidians, Jim Jones,\nand Charlie Manson.\n\n--Uncle Wolf\n--Member Highland Lodge 748 F&AM (Grand Lodge of California)\n--Babtized a Southern Babtist\n--And one who has beliefs beyond the teachings of either.\n\n> \n> \n\n\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11103, "properties": {"category": "rec.autos", "text": "From: sehrlich@lynx.dac.northeastern.edu (Scott R. Ehrlich)\nSubject: Help find Stolen Car\nOrganization: Northeastern University, Boston, MA. 02115, USA\nDistribution: usa\nLines: 25\n\n\nI offered to relay this information for a ham friend of mine without\nInternet access:\n\nHis name is Robert (Bob) Wondolowski, N1KDA, and his car was a \n1985 Brown Cutlas Sierra Sedan, Massachusetts plate 716ADL.\n\nHis HT (Yaesu FT415) and mobile antenna were also included in the car.\nIt was stolen from Lynn, Mass. about 10 days ago (being on April 6).\n\nIf anyone has any information about the car's whereabouts, please e-mail\nme.\n\nThank you for taking the time to read this message.\n\n\n===============================================================================\n| Scott Ehrlich \t       Internet: wy1z@world.std.com                   |\n| Amateur Radio: wy1z          Packet Radio: wy1z@k1ugm.ma.usa.na\t      |\n===============================================================================\n-- \n===============================================================================\n| Scott Ehrlich \t       Internet: wy1z@world.std.com                   |\n| Amateur Radio: wy1z          Packet Radio: wy1z@k1ugm.ma.usa.na\t      |\n===============================================================================\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11104, "properties": {"category": "alt.atheism", "text": "From: kmr4@po.CWRU.edu (Keith M. Ryan)\nSubject: Re: \"Cruel\" (was Re: <Political Atheists?)\nOrganization: Case Western Reserve University\nLines: 33\nNNTP-Posting-Host: b64635.student.cwru.edu\n\nIn article <1ql8mdINN674@gap.caltech.edu> keith@cco.caltech.edu (Keith Allan Schneider) writes:\n\n>>>This whole thread started because of a discussion about whether\n>>>or not the death penalty constituted cruel punishment, which is forbidden\n>>>by the US Constitution.\n>>Yes, but they didn't say what they meant by \"cruel\", which is why\n>>a) you have the Supreme Court, and b) it makes no sense to refer\n>>to the Constitution, which is quite silent on the meaning of the\n>>word \"cruel\".\n>\n>They spent quite a bit of time on the wording of the Constitution.  They\n>picked words whose meanings implied the intent.  We have already looked\n>in the dictionary to define the word.  Isn't this sufficient?\n\n\tWe only need to ask the question: what did the founding fathers \nconsider cruel and unusual punishment?\n\n\tHanging? Hanging there slowing being strangled would be very \npainful, both physically and psychologicall, I imagine.\n\n\tFiring squad ? [ note: not a clean way to die back in those \ndays ], etc. \n\n\tAll would be considered cruel under your definition.\n\tAll were allowed under the constitution by the founding fathers.\n\n--- \n\n        \" Whatever promises that have been made can than be broken. \"\n\n        John Laws, a man without the honor to keep his given word.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11105, "properties": {"category": "rec.sport.baseball", "text": "Subject: al stats\nFrom: \"michael mcguire\" <michael.mcguire@canrem.com>\nReply-To: \"michael mcguire\" <michael.mcguire@canrem.com>\nDistribution: rec\nOrganization: Canada Remote Systems\nLines: 11\n\n\n I am looking for a source of American League baseball stats for\nindividual players in the same format as printed in newspapers, ie. I do\nnot want to provide a list of players and get back nice printed reports\nfor $35 a week.\n\nDoes anyone know of such statistics availability and an idea of the\ncost?\n--\nCanada Remote Systems - Toronto, Ontario\n416-629-7000/629-7044\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11106, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: grohol@novavax.UUCP (John Grohol)\nSubject: Re^2: ATM\nOrganization: Nova University, Fort Lauderdale, FL\nLines: 35\n\nrnichols@cbnewsg.cb.att.com (robert.k.nichols) writes:\n\n\n>    1.\tTrueType font files are at least 1/3 larger than their Type-1\n>\tequivalents.  If you are using a disk compressor, though, be aware\n>\tthat TrueType fonts will compress, whereas Type-1 fonts will not\n>\t(they are encrypted).\n\nThis isn't entirely true. It is true that TrueType fonts are\nlarger than their ATM counterparts, but ATM fonts *do* get minimal\ncompression. Running Stacker 3.0 report generator, I get:\n\n\t File Type:      Compression Ratio:\n\t -------------   ------------------\n\t *.TTF (TrueType)     1.4:1.0\n\t *.PFB (ATM)          1.1:1.0\n\t *.PFM (ATM Metric)  11.8:1.0\n\nAlthough the metric files are small, they compress quite largely.\nAnd, as you can see, even the regular .PFB files have *some* compression.\n\nSo, doing the math on one such comparitive font file:\n\nTTF Times = 83260 bytes/1.4 = 59471 bytes (compressed)\nPFB Times = 51549 bytes/1.1 = 46862 bytes (Compressed)\n\nYou still win out, even if the ATM Times font *isn't* compressed.\n\nYour mileage may vary depending on compression program.\n\n-- \n \"When heroes go down, They go down fast || John M. Grohol, M.S.\n  So don't expect any time to            || Center for Psychological Studies\n  Equivocate the past.\"                  || Nova Univ, Ft. Lauderdale, FL\n     - suzanne vega                      || grohol@novavax.nova.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.524+0000", "event": "documents", "entityId": 11107, "properties": {"category": "sci.med", "text": "From: uabdpo.dpo.uab.edu!gila005 (Stephen Holland)\nSubject: Re: diet for Crohn's (IBD)\nOrganization: Gastroenterology - Univ. of Alabama\nDistribution: usa\nLines: 81\n\nSummary of thread:\nA person has Crohns, raw vegetables cause problems (unspecified)\nSteve Holland replies:  patient may have mild obstruction.  Avoid things\nthat would plug her up.  Crohn's has no dietary restriction in general.\n\nIn article <1993Apr22.210631.13300@aio.jsc.nasa.gov>,\nspenser@fudd.jsc.nasa.gov (S. Spenser Aden) wrote:\n> \n> Interesting statements, simply because I have been told otherwise.  I'm\n> certainly not questioning Steve's claims, as for one I am not a doctor, and I\n> agree that foods don't bring on the recurrence of Crohn's.  But inflammation\n> can be either mildly or DRASTICALLY enhanced due to food.\n\nThe feeling obout this has changed in the GI community.  The current\nfeeling\nis that inflammation is not induced by food.  There is even evidence that\npatients deprived of food have mucosal atrophy due to lack of stimulation\nof\nintestinal growth factors.  There is now interest in providing small\namounts\nof nasogastric feeding to patients on IV nutrition.  But I digress.  \nSymptoms can be drastically enhanced by food, but not inflammation.\n\n> Having had one major obstruction resulting in resection (is that a good enough\n> caveat :-), I was told that a *LOW RESIDUE* diet is called for.  Basically,\n> the idea is that if there is inflammation of the gut (which may not be\n> realized by the patient), any residue in the system can be caught in the folds\n> of inflammation and constantly irritate, thus exacerbating the problem.\n> Therefore, anything that doesn't digest completely by the point of common\n> inflammation should be avoided.  With what I've been told is typical Crohn's,\n> of the terminal ileum, my diet should be low residue, consisting of:\n>\n> Completely out - never again - items:\n> \to corn (kernel husk doesn't digest ... most of us know this :-)\n> \to popcorn (same)\n> \to dried (dehydrated) fruit and fruit skins\n> \to nuts (Very tough when it comes to giving up some fudge :-)\n\nThe low residue diet is appropriate for you if you still have obstructions.\nAgain, it is not felt that food causes inflammation.  These foods are\navoided because they may get stuck.  I'd go ahead and have the\nfudge, though ;-)  .\n\n> Discouraged greatly:\n> \to raw vegetables (too fibrous)\n> \to wheat and raw grain breads\n> \to exotic lettuce (iceberg is ok since it's apparently mostly water)\n> \to greens (turnip, mustard, kale, etc...)\n> \to little seeds, like sesame (try getting an Arby's without it!)\n> \to long grain and wild rice (husky)\n> \to beans (you'll generate enough gas alone without them!)\n> \to BASICALLY anything that requires heavy digestive processing\n> \n> I was told that the more processed the food the better! (rather ironic in this\n> day and age).  The whole point is PREVENTATIVE ... you want to give your\n> system as little chance to inflame as possible.  I was told that among the\n> NUMEROUS things that were heavily discouraged (I only listed a few), to try\n> the ones I wanted and see how I felt.  If it's bad, don't do it again!\n> Remember though that this was while I was in remission.  For Veggies: cook the\n> daylights out of them.  I prefer steaming ... I think it's cooks more\n> thoroughly - you're mileage may vary.\n> \n> As with anything else, CHECK WITH YOUR DOCTOR.  Don't just take my word.  But\n> this is the info I've been given, and it may be a starting point for\n> discussion.  Good luck!\n> \nSpencer makes an especially good point in having an observant and\ninformed patient.  Would that many patients be able to tell what\ncauses them problems.  The digestive processing idea is changing, but\nif a food causes problems, avoid them.  Be sure that the foods are \ntested a second time to be sure the food is a real cause.  Crohn's\ncommonly causes intermittent symptoms and some patients end up with\nseverly restricted diets that take months to renormalize.\n\nThere was a good article in the CCFA newsletter recently that discussed\nthe issue of dietary restriction of fiber.  It would be worth reading\nto anyone with an interest in Crohn's.\n\nAnd, as I always say when dealing with Crohn's, as does Spencer, Good Luck!\n\nSteve Holland\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11108, "properties": {"category": "talk.religion.misc", "text": "From: deane@binah.cc.brandeis.edu (David Matthew Deane)\nSubject: Re: Flaming Nazis\nReply-To: deane@binah.cc.brandeis.edu\nOrganization: Brandeis University\nLines: 94\n\nIn article <1qsami$3h7@access.digex.net>, dickeney@access.digex.com (Dick Eney)\nwrites:\n>The trouble with trying to find out the truth is that Roehm and his\n>buddies were ACCUSED OF being flaming faggots, one of the pretexts for the\n>Night of Long Knives in which Roehm and most of the SA wing of the NSDAP\n>were purged. \n\nStop! Hold it! You have a few problems here. Official history says that \nthe first accusations of homosexuality in the SA came from OUTSIDE of the Nazi \nparty, long BEFORE the Nazis ever came to power. So this objection is a red\nherring, even if established history is wrong on this point. Moreover, none of \nthe histories I've read ever made mention of Hitler or anyone else ever using \nhomosexuality as a pretext for purging Roehm. A point I saw reiterated was that\nHitler and the party covered up these accusations. If you are going to accuse\nofficial history of being a fabrication, you should at least get your facts\nright. The pretext for purging Roehm was that he was planning to use the SA in\na coup against Hitler. Nowhere is there mention of using allegations of\nhomosexuality as a pretext for the purge, nor as a justification afterwards (it\nis possible that the histories I've read have not mentioned this, but I doubt\nit - would it be in Hitler's best interest to admit to the world that his\nformer right hand man was a homosexual?). \n\nAnyway, as I said before, it is always possible that I have missed references \nto the Nazis making use of charges of homosexuality against the SA after the \nnight of the long knives - but this does not prove that they were false. Even \nthe Nazis could tell the truth when it was to their advantage. In any case, \nthis does not deal with accusations of homosexuality in the SA during the \n1920's.\n\n>Since the accusers thereafter controlled the records,\n>anything bearing on the subject -- true or not -- has to be considered\n>tainted evidence. \n\nAh, yes. I forgot this was being posted to alt.conspiracy. I can smell the\nparanoia from here. Since the Nazis never officially charged Roehm with \nhomosexuality (at least, not according to what I've read), I'd like to know \nwhat tainted \"evidence\" you are talking about. Since the accusations were made \nby persons outside of the Nazi party, long before it came to power, and those \naccusations were common knowledge to journalists and others in Germany in the \n1920's and 30's, just how would it be possible for the Nazis to go back in \ntime and plant \"tainted\" evidence? How exactly does one doctor newspapers \nwhich were circulated around the world, without the discrepancies being \nobvious? What actual incidences of Nazi doctoring evidence on this matter\ndo you know about? And what about the testimony of people who were involved in \nthese matters, some of whom were not Nazis? And what is the point of making a \nfalse accusation of homosexuality if you do not publicize it? Since the point \nhere seems to be to discredit established history, then the burden of proof \nfalls on the revisionist. The revisionists had better do their homework \nbefore making accusations. Otherwise they simply look like conspiracy nuts.\n\n>The available data suggest that Roehm and his crowd,\n>the SA -- Sturmabteilung, \"Storm Troopers\" -- left the world a better\n>place when they departed, \n\nThis is just about the *only* thing we agree on. \n\nI suspect that the notion that there might have been bad people - Roehm and \nhis SA buddies - who were homosexuals must disturb some people. The feeling\nseems to be that if a nasty individual is accused of homosexuality, that this\nmust be an attempt to bash homosexuals. This fear - often justified - is what\nlies behind this distrust of official history, or so it seems to me. But this\nis not a good justification for trashing accepted accounts of this subject. If \nyou really think that historians are so incompetent, why don't you write them \nand ask where they got their sources on this subject, if you can't tell from \ntheir footnotes? I'm a graduate student in history. Writing to professors and\ntracking down sources is old hat. But my time is limited and this is not my\nspecialty - and neither you nor anyone else have said anything that would\ncast one shred of doubt on existing evidence. I'm not going to waste my time\ntrying to debunk someone's paranoia. Do the research yourself.\n\n>but concrete particulars are still no more than\n>more or less shrewd guesses.  \n>-- Diccon Frankborn\n\nGiven that you already consider all evidence \"tainted\", what on earth would\nconstitute concrete particulars? And since when have concrete particulars been\nconsidered \"shrewd guesses\"?\n\nI suggest that those who do not trust popular historians (Irving et al) -\nhistorians writing for a popular audience do not, as a rule, provide copious \nfootnotes - should try instead reading academic historians, who usually \nprovide footnotes to all their sources in immmense detail. This is the place \nto start looking. Assuming that one really wants to know the truth.\n\nI'll bet the folks on alt.pagan are tired of this subject already. My\napologies - we seem to have gone off on a bit of a tangent. I forget which gods\nare responsible for keeping strings within appropriate newsgroup subject\nboundaries...\n                                                                       \n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\nDavid Matthew Deane (deane@binah.cc.brandeis.edu)\n\"...Be in me as the eternal moods of the bleak wind...Let the Gods speak softly\nof us in days hereafter...\" (Ezra Pound)\n/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11109, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: westes@netcom.com (Will Estes)\nSubject: Mounting CPU Cooler in vertical case\nOrganization: Mail Group\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 13\n\nI just installed a DX2-66 CPU in a clone motherboard, and tried mounting a CPU \ncooler on the chip.  After about 1/2 hour, the weight of the cooler was enough \nto dislodge the CPU from its mount.  It ended up bending a few pins\non the CPU, but luckily the power was not on yet.  I ended up\npressing the CPU deeply into its socket and then putting the CPU\ncooler back on.  So far so good.\n\nHave others had this problem?  How do you ensure that the weight of\nthe CPU fan and heatsink do not eventually work the CPU out of its\nsocket when mounting the motherboard in a vertical case?\n\n-- \nWill Estes\t\tInternet: westes@netcom.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11110, "properties": {"category": "comp.windows.x", "text": "From: rik@csc.liv.ac.uk (Rik Turnbull)\nSubject: String to Widget Resource Converter\nOrganization: Computer Science, Liverpool University\nLines: 52\nNntp-Posting-Host: bobr.csc.liv.ac.uk\n\nCan anybody tell me how to use the Xmu function \"XmuCvtStringToWidget\". I\nwant to specify a widget name in a resource file so that I can connect\ntwo widgets together on an XmForm. ie.\n\nMyProggy*MyListSW.topWidget:               MainTextSW\n\nHowever, when I run the program, I get the message:\n\nWarning: No type converter registered for 'String' to 'Window' conversion.\n\n(Just like the manual sez).\n\nI have managed to find this bit of code which seems to be the correct way\nto go about this:\n\n    static XtConvertArgRec parentCvtArgs[] = {\n        {\n            XtWidgetBaseOffset,\n            (XtPointer)XtOffsetOf( CoreRec, core.parent ),\n            sizeof(CoreWidget)\n        }\n    };\n\n    XtSetTypeConverter( XtRString, XtRWidget, XmuCvtStringToWidget,\n                            parentCvtArgs, XtNumber(parentCvtArgs), XtCacheAll,                                NULL );\n\n\nHowever, I haven't got a clue where to put it! The example code I have seems\nto suggest I can only do this if I am creating my own widget; but elsewhere it\nsays that I can add it to a widget's \"class_intialize\" function. HOW? What's\none of those? :-(\n\nIf anybody has any code to do this, please let me know the trick - I'm sure\nthis is a FAQ.\n\nThanks in advance,\n\nRik.\n\nPS: What are the header files \"CoreP.h\" and \"IntrinsicsP.h\" - should I use\n    these or \"Core.h\" and \"Intrinsics.h\" (OK I know RTFM:-)\n\n.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=.\n|                               |                                       |\n| Richard Turnbull              |                                       |\n|                               |       Dept. Computer Science          |\n| E-mail:                       |       University of Liverpool         |\n| rik@compsci.liverpool.ac.uk   |       Liverpool L69 3BX               |\n|                               |       England                         |\n| Phone: (051) 794 3704         |                                       |\n|                               |                                       |\n.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11111, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 11/14 \nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 956\n\n\n\n------------ Part 11 of 14 ------------\nMR1865%22DM75U=75U4)\"0IV=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=0M75U=625!;)B8E,3`]G9S2+[>WM4QD]F0->7EXJWZ5F,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q9J5ZNP.9F3V9F9F9F3W2TG%Q&1FPL%-3[>WM[>WM[5-3L+!3L+`9\nM&1D9&7%Q<7%Q<7%Q&7'2TCT]/=+2TM+2TM+2/3T]/3T]/=+2TG%QTCV9F0,#\nM`P->7EZ[N[LJ>GIZW]]'1Z6EI0L+9F9F9F9F9F;$Q,3$Q,3$Q,3$9F8+\"PL+\nMI:5'>GHJ*BHJN[M>7EY>7@.9/3W2TG%Q<1D9L%-3[8N+-,5G9P],3$Q,3$Q,\nM3$R)B8F)B8G)R<G)R<G)R<G)R186R<G)R<G)R<G)R<G)R<F)B8F)B8F)B8F)\nMB8G)R<G)R<G)R<F)B8E,3$Q,3$Q,3$Q,3(F)B8F)B8F)B8F)B4Q,3&?%-(OM\nM[5-34U.P&7'2/3V9F0,#`UY>7@,#`YF9F3T]/3T]F9D]F9F9F3T]/3W2TM+2\nM<7$9&1FPL+!3L!D9&1D9&7%Q&1D9L+`9&;\"P&1D9<=(]/9F9F9D#`UZ[NRIZ\nMW]_?W]_?W]_?>GIZ>GIZ*BHJ>GIZ>BHJ>GIZ>GIZ>GK?1T='1T='1T='1T>E\nM\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9@M'WWHJ\nM7@.9TAFP[31G3$R)B<G)%E14DI+5U=75U4)\"0IV=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=0M75U9)45!;)B8F)3$QGQ<4TB^VPL!D9&1D9\nM&7'2/0.[WZ7$AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ`M'WWHJ*KN[N[N[7EY>7EY>`YD]\nMTG%Q&1D9&1EQ<=+2TM+2TCT]/3T]F9F9F3T]TM+2TM(]/3T]/9D]/3W2TM(]\nM/3V9F9F9F9F9F3V9F0->7EY>7EY>N[N[*BHJ>GIZ>M]'1T>E\"V9FQ,3$Q,3$\nM,3$Q,<3$Q,3$Q,1F9@L+I:6E1T??>GHJ*BHJ*KN[7EY>`YF9/3W2TG%Q&1FP\nM4U/M[8LT-,5G#TQ,3$Q,3$Q,3(F)B8G)R<G)R<G)R<G)R<D6%A86%A86%A86\nMR<G)R<G)R<F)B8F)B8F)B8F)B8F)B<G)R<G)R8F)B8F)B8F)B8F)B8F)B8F)\nMB8F)B8F)B4P/9S2+[>WM[5.P&7'2TM(]/3V9F9D]/=+2/=+2<7'2TM+2TM(]\nM/=+2TM+2TM+2TM+2TM)Q<1D9L+\"P&1EQ<7%Q<7'2TG%Q<=+2<7%Q<1D9<7'2\nMTM+2TCV9`UY>NRIZ>GIZ>GIZW]_?W]_?>GK?>GIZ>GIZ>GIZ>GIZ>M_?W]]'\nM1T>EI4='1T='1T>E\"V8QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<QQ`NE1]\\JNUX#F3W2&;#M-&=,3(F)R<D6%E22DM75U=75U4)\"0IV=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G4+5U=75DE14%A;)B8E,\nM#V?%Q<7%9\\7%-(N+BXN+BU,9<=(]`UXJWZ4+9L0QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,<1F\"PNE1T='1T??WWHJNUX#F3W2TM+2TM+2/9D#`P,#`P,#`UZ[N[M>7@.9\nMF9D]F9F9`P,#`P.9F9D]/3T]/3W2TM+2/9F9`P->7EZ[NRHJ*BHJ*BHJ*BIZ\nM>GIZWT='I0MFQ,0QAX>'AX<Q,3$Q,<3$Q,3$Q&9F\"PL+\"PNE1]_?>BHJ*BJ[\nMNUY>7EY>`P.9F3W2TG%Q&;\"P4U/MBXLTQ6</3$Q,3(F)3$R)B8F)B<G)R<G)\nMR<G)R186%A86%A86%A86%A86%A;)R<G)R<G)B8F)B8F)B8F)R<G)B8G)R<G)\nMR<F)B8G)R<G)B8F)B8F)B8F)B8E,#\\4T-(OM4U.P&7%Q<1D9<=+2TG%Q&1FP\nML+\"PL+`9&7%QTM)Q<7%Q<7'2TM+2/3T]F3W2TG%Q<7%Q<=+2TM(]/3T]/=+2\nM<=)Q<7%Q<1D9&7$9<7'2TCV9F9F9`UZ[*BHJ*BIZ>GK?W]_?>GIZ*BIZ>GIZ\nM>GK?WT='1T='1T='1T>EI:6EI0L+\"PMFQ,0QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS'$Q&8+I=]Z*KM>`YD]<1FP[33%9TQ,3(F)R<D6\nM5%22DI+5U=75U=5\"0D)\"G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9U\"0D+5\nMU=75DI*25!;)R8F)3$Q,3`\\/3$R)B8E,3$P/9P],3&?%-(OM4[`9&7'2`UXJ\nMWT<+9C&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<1F9@NE1]_?WWHJNUX#F0,#`P->\nM7EY>7KLJ*BHJ>GK?WWHJ*KM>`P.9F0,#`UY>7@,#`P,#`YF9F9D]TM+2/9F9\nM`UY>N[N[*GIZ>GK?WWIZW]]'I:4+\"PMFQ,0Q,8>'AX>'AX<Q,<3$Q&9F9F9F\nM9F9F9F9F9@NE1]_?>GHJ*KN[NUY>7EX#`P.9F3W2TG$9L+!34^V+BS3%9V</\nM3$Q,3(F)B8F)B8F)R<G)R<G)R186%A86%A86%A86%A86%A86%A;)R<G)R<G)\nMR<F)B8F)R<G)R<G)R<G)R<G)R<G)R8F)B<G)R8F)B4Q,#V?%-(OM4[\"PL+\"P\nML+`9&1D9&1FP4^WM[8N+B^U3L+\"PL+\"PL+\"PL!D9<=+2/9F9F9D]/=+2TM+2\nMTCT]/3T]TG%Q<7$9&1D9&1D9&1D9L+\"P&7%QTCT]/3T]F9F9`UZ[NRHJ*BHJ\nM*BHJ>GIZ>GK?W]_?W]]'I0L+\"PL+\"PL+I4='1Z4+\"V9FQ,0Q,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F\"T??>BJ[7@.9/=)Q\nM&;!3[8LT-,5G#TQ,B8G)%A945%22DI+5U=75U=5\"0D)\"G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9U\"0M75U=75U9*25%06%LG)R8E,3$P/#P],3$R)B8F)B8F)R<F)\nMB8F)3$Q,#V?%B^U3L+`9TID#NWK?1PMFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS'$Q,1F9@L+\"Z6E1T??1T??WT>EI0L+\"PMF\"Z5'1T??WWHJ*KN[N[N[7EY>\nM7EY>7EY>7@,#F3T]TM(]/9F9`P->7KLJ*BIZ>M_?WT>EI:6E\"PL+\"V;$,3&'\nMAX>'AX>'AS$QQ,3$Q&9F9F9F9F9F9F8+\"PNE1T??WRHJN[N[7EY>7EY>`P.9\nMF3W2<1FP4U/M[>WMBXLTQ6</3$Q,3(F)B8F)R<G)R<G)R<G)%A86%A86%A86\nM%A86%A86%A86%A;)R<G)R<G)R<G)R<G)R<G)R<G)R<G)R<F)R<G)B8F)B4Q,\nM3&<TB^U3L+\"PL%/M[>U34U/M[8N+-#0T-#0T-#0T-(LT-(N+[>WM[>U3L!EQ\nM/3T]/3T]/=+2/=+2TCT]/3T]TG$9&1D9&1D9&1D9&1D9&1D9&1EQTM+2TM+2\nMTM(]/9D#7EY>7EZ[NRHJ>GK?W]_?1T>EI0MF9L3$9L3$Q#'$9F8+\"PO$Q#&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\nM\"PNE1WHJ*KM>7@.9/=)Q&;!3[8LTQ6</3$R)B8G)R186%E145%22DI*2U=75\nMU=75U4)\"0IV=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9U\"0D+5U=75U=75DI*25%06%LG)R<F)B8F)\nMB8F)B<F)B<G)R<D6%A86%A;)R<G)R8F)3$Q,3`]GQ32+[;`9TCV9`UZ[>M]'\nM\"\\2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$Q#$QAX>'AX>'AX>'AX>'\nMAX>'AX<Q9@NE1T??WWHJ*BHJ*BJ[*BJ[NUX#F3W2TM+2TCT]F9D#7KN[*BHJ\nM>M_?1T>EI0L+9F;$Q,0Q,8>'AX>'AX>'AS$Q,3$QQ,3$Q,3$Q&9F9F8+\"PNE\nMI4='WWIZ*BJ[NUY>7EY>`YF9/=)Q&1FP4^WM[8N+BS3%9V=,3$Q,B8F)B<G)\nMR<G)R<G)R<G)%A86%A86%A86%A86%A86%A86%A86R<G)R<G)R<G)R<G)B8G)\nMR<G)R8F)B8F)3$Q,#V<TB^WM4U-3[8N+BXLT-#0T-#3%Q6=GQ<7%9V=G#P]G\nM9V=GQ32+B^WM[5.P&1D9&1D9<=+2/=)Q<=+2<7%Q&1D9&1D9&1D9&1D9&1D9\nM&1EQTM+2/3T]/=)Q<7%QTM(]/9D#7KLJ>GIZW]_?WT='I0MF9L0Q,3&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>',<1F9@NE1]]Z>BJ[NUY>`YD]TG$9L%/MBXLT-,5G#TQ,3$R)\nMB8F)R<D6%E145)*2U=75U=75U=75U=5\"0D)\"0D*=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9U\"0D)\"0D+5U=75\nMU=62DE14%A;)R8F)B8F)B8F)R<G)R<G)R<G)R<G)R<G)R<G)R<F)B4Q,3$Q,\nM#P\\/9V?%Q30T-(OML!G2/0,J1PLQAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q9@NE1T='1T='W]]Z*BHJNUY>\nM`P.9F3T]F9D#`UZ[NRHJ*BHJ>GK?WT>EI0MF9F;$,3$QAX>'AX>'AX>'AX<Q\nM,3$Q,3$Q,3$QQ&9F9F9F9@L+I:6E1T??>GHJN[N[7EY>`YD]/=)Q&1FP4U/M\nM[8N+-,5G#TQ,3$Q,B8F)R<G)R<G)R<G)R186%A86%A86%A86%A86%A86%A86\nM%A86%LG)R<G)R<G)R<G)R<G)B8F)3$P/9\\4TBXN+BS0T-,5G9P\\/3$Q,#P\\/\nM#P],#P\\/#P\\/#TQ,3$Q,#P]GQ30TBXN+[>U34[\"P&1D9&7%QTG$9&;\"PL+\"P\nM&1D9<1EQ<1D9&1D9&1D9<7%QTM+2TG$9&;`9&7%QTID#7KLJ*BIZW]_?WT='\nMI0MF9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',3$Q,<1F9@L+I4='WWIZ*BJ[7@.9F3W2TG$9\nML%/MBS0TQ<7%9V=GQ<5G3$R)B<G)R186%A945%22DI+5U=75U=75U4)\"0D*=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=0D+5U=75U9*25%06%LG)B8F)B4Q,3$Q,3(F)B8F)B4Q,\nM3$Q,B8F)B8G)R<G)R<F)B8E,3$Q,3`]GQ<4T-.U3L!G2/0.[WZ5FAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,68+\"PL+\"PL+\"Z7?>BJ[N[M>7EY>7@,#`P->7EZ[NRHJ*GIZ>M_?1Z4+9F;$\nM,3$Q,3$QAX>'AX>'AX>'AX>'AS$Q,3$QQ,3$Q,1FQ&9F\"PL+I0L+I:6E1T??\nM>BJ[7EY>`YF9/=)Q&1D9L+!3[>V+-,5G#TQ,3$R)B8F)B8G)R<G)R<G)%A86\nM%A86%A86%A86%A86%A86%A86%A86%LG)R<G)R<F)B4Q,3$P/9\\7%Q<7%Q<7%\nM9V</#TQ,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3$Q,3`]G9V?%Q<4T-(OM[5-3L+\"P\nML!D9<7%Q&1FPL+!3L+`9&1EQ<7$9&1D9&1D9&1D9&1D9L+\"PL+\"P&1EQ<=(]\nMF5Z[*GIZW]_?1Z6E\"PMFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$QQ,3$9F9F\"Z5'W]]Z\nM*BJ[NUX#F9F9F9D]/=(9L+!34^WM[>V+BS0TQ6</3$R)B8G)B8G)R<D6%A94\nMDI+5U=75U=5\"0D)\"G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G4)\"0D+5U=75U=62DE145%06%LG)\nMB8F)B8E,3$Q,3$Q,3$Q,3$Q,3$Q,3(F)B8F)B8F)B8F)B8F)B8F)3$Q,3`]G\nMQ32+4QD]7BK?I<2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$Q&9F9@M'WRJ[N[N[N[M>7EY>7KLJ\nM*BHJ*BHJ*BHJ>M]'1PMFQ,3$Q,3$,3$Q,3$QAX>'AX>'AS$Q,8>'AS$QQ&9F\nM9@MF9F8+\"Z6EI:6EI:5'1T??>BJ[7EY>`YD]/=+2TG%Q&;\"P4^V+-,5G#TQ,\nM3(F)B8F)B8F)B<G)R<D6%A86%A86%A86%A86%A86%A86%A86%A86%A86%A9,\nM3$Q,3`\\/9V=G9V=G9P\\/3$Q,3(F)B4Q,3$Q,3(F)B8F)B8F)B8F)B4Q,3$P/\nM9V?%Q<4T-(OM4U-34U.PL!D9&1FP4^WM[>U3L!D9<=+2TM)Q<1D9L+\"PL+\"P\nML%-34U.PL!D9<=*97KLJ>M]'1Z6E\"V9F9L0QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,<3$Q,1F9@L+I4='WWIZ*BHJ*KN[7@,#`P.9F9D]/3W2<7$9&1FPL%.+-#3%\nM9V=G#TQ,3$R)B8F)R<D65%22DM75U=75U=5\"G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G4)\"0M75\nMU=75U=62DI)45%145%14%A86R<G)R<G)R8F)B4Q,3$Q,3$Q,3$Q,3$Q,3$R)\nMB8F)B8F)B8F)B8E,3$Q,9\\6+[;!QF0.[>D<+Q(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<3$\nM9@NEI4??>BHJ*BJ[7EZ[N[N[N[N[N[N[N[LJ>M]'I0MF9L3$Q&9F9F9F9L3$\nMQ,0Q,3$Q,3$Q,3$Q,3'$Q&9F9F8+\"PL+\"PNE\"Z6EI:6EI4='WWHJ*KM>7@.9\nM/=+2TG%Q&1FP4^V+-,5G#TQ,3$R)B8F)B8F)R<G)R<G)%A86%A86%A86%A86\nM%A86%A86%A86%A86%A9,3$P/#P\\/#V=G9P\\/#TQ,3$Q,3$R)B8F)B8F)B8F)\nMB8F)R<G)R8F)B4Q,3$Q,3`]GQ30TB^WM[8N+BXN+[>WM[>V+BXN+[>U3L+`9\nM&1D9L+\"PL+\"PL%-34U/M[5-3L+`9<=*9`[LJ>D>E\"PMF9L3$Q#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>',3$Q,<3$9F9F\"Z6E1T='W]_?>BHJ*BJ[N[N[7EX#\nM`UY>`YF9/=+2TG$9&;!3[>V+-#3%#TQ,3(F)R186%E145%145)*2U=750D*=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9U\"0D)\"0M75U=75U=62DI*25)*2DI*25%145!86R<G)R<G)R8F)\nMB8F)B8F)3$P/9V=G9V</#TQ,3$Q,3$Q,3$Q,3`]GQ32+[5.P<=*9`[LJWT<+\nM9F8QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',<3$9@NE1]_?>BHJN[N[NUY>7EY>NRHJ*GIZ\nMW]]'I:4+\"V9F9F8+\"PL+\"V9FQ,0QAX>'AX>'AX>'AX<QQ,3$9F9F9F9F\"PL+\nMI:6EI:6EI:6E1]]Z*KM>7@,#F9D]/=+2<1FP4^V+BS3%Q6=,3$Q,B8F)B8G)\nMR<G)R<G)%A86%A86%A86%A86%A86%A86%A86%A9G#P\\/9V=G9V=G#P],3$Q,\nM3(F)B8F)R<G)R<G)R<G)R<G)R<G)B8G)B8F)3$Q,#P]G9V=GQ<5G#P\\/#P]G\nM9\\4T-,5GQ<4TBXOM[>WM[>V+[8N+B^V+B^WM4[\"P&1D9<3V97KMZWZ4+9C&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<3$Q,3$Q,1F\nM\"Z5'1]]Z*BHJ>GIZ>GIZ>GIZ*BHJ*BJ[`YD]TG%Q&;!3[33%9TQ,B8F)R<G)\nMR<D6%A865%14DM75U=75U4*=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=0D)\"0D)\"0D)\"0D+5U=75U=75DI)45%065%145%14\nM5%145%06%A86%LG)R8F)B8F)B8F)B4Q,3`]GQ<7%Q6=G#V</#P\\/#P\\/9V=G\nMQ<4TB^VP&=+2TCT]F5Z[*GI'I0O$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q&:E1]]Z\nM*KN[7@,#7EY>7EZ[N[LJ*BIZ>GK?1Z4+\"PL+\"PMF9F9FQ,3$Q,0Q,3&'AX>'\nMAX>'AX>',3$Q,<3$9F8+\"PL+I:6EI:6EI4='1]]Z*KN[7@,#`P.9F3W2<7$9\nML%-3[8N+-,5G#P],3$R)B8F)R<G)R<G)%A86%A86%A86%A86%A86%A86%A9G\nM9V=G9V=G9P\\/3$Q,3$R)B8F)R<G)R<G)R<G)%A86%LG)R<G)R<F)B4Q,3$Q,\nM3$Q,3$Q,3$R)B8E,3$Q,3$Q,3$Q,#V=G9\\7%Q<7%Q32+BXN+BXOM4[`9&7'2\nMTCT#7KMZ1Z5F,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',3'$Q,1F9@NEI:4+\"PL+I:6EI:6E\"PL+I4='WRI>`P.9\nMTAGM-&</3$Q,B8F)B8F)R<G)R186%E145)*2DM75U4*=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G4)\"0D)\"0D)\"U=75U=75U=75U9*2\nMDI)45!86%A;)R<G)R1865%145%14%A86%A;)R<G)R<G)B8F)B8F)3$Q,#V?%\nM9V=G9V</#P\\/#P\\/#P]GQ<7%-(OM4[`9<7%QTCT]`UZ[*GIZ1Z6E\"V;$,8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<Q,<0+I4??>BJ[7EY>7EY>7EY>N[N[NRHJ>GK?WT>EI:4+\nM\"V9F9L3$,3$Q,3$QAX>'AX>'AX>'AX>'AX>',3$QQ,1F9@L+I:4+\"PL+\"PL+\nMI4=Z*BHJN[M>7EY>`YF9/=)Q&;\"P4^V+-#3%Q6</3$Q,B8F)B<G)R<D6%A86\nM%A86%A86%A86%A86%A8T-,7%9P\\/#TQ,3(F)B8G)R<G)R<G)R<G)R<G)R<G)\nMR<G)B8F)B8F)B8F)B8F)B8F)B8F)B<G)R<F)B8F)B8F)3$Q,3$P/9V=GQ32+\nM[>V+B^U3L!D9&7'2TCV9`[MZ1PO$AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',<1F\"Z7?>BI>F=(94XLTQ<7%Q<5G9V=G9P],B<D6%E14DM75U=75\nMU4*=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G4)\"0D+5U=75\nMU=75U=75U9*2DI*25%145!86%A;)R<G)R<G)R<G)R<D6%A86%A86R<G)R<G)\nMR<G)B8F)B8F)3$Q,3$Q,3$Q,3$Q,#P\\/#V=GQ<7%Q<7%-(N+[5.PL+\"PL!EQ\nMTCT#7KMZWZ6EI:6EI0MF,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9J5'WWHJN[N[7EY>\nM7EY>7EZ[N[LJ>GK?W]]'I:4+\"PMF9L3$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX<Q,3$QQ,3$9F9F9L3$Q,1F\"Z6E1]]Z>BHJ*KN[7EX#F3W2&1FP4^V+BXN+\nM-,5G9P],3$R)B8G)R<G)R186%A86%A86%A86%A8TQ<5G#TQ,3(F)B8F)B8G)\nMR<G)R<G)R<G)R<G)B8F)B8F)B<G)R<G)R<G)R<G)R<G)R186%A;)R<G)R<F)\nMB8F)3$P/#V=G9\\4T-(N+[5.P&1EQTCV9F0->NRK?I0O$AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$\"Z7?>KM>`SW2<7$9L%-3[>V+\nM-,5G3(F)R1945)*2U=75U4*=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=0D)\"0M75U=75U=75DI*2DI*2DE145!86%A86%LG)R<G)R<D6%A86\nM%A86%A86%LG)R<G)R8F)B8F)B8F)B8F)B8F)B8F)B8F)B8E,3$Q,#V?%Q30T\nM-(OM[>WM[5-3L!D9<7'2TCT#*M]'\"\\0QAS$Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<QQ`NEI4??>BHJN[M>7EZ[N[N[NRIZ>M_?1T>EI:4+\"PL+9F;$,3&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q,3$Q,8<QQ&8+I:5'1T='\nMWWHJ*KM>`YD]TAD9L%/M[>V+BS3%9P\\/3$Q,3(F)R<G)R<D6%A86%A86%A;%\nM9V</3$Q,B8F)B8F)B<G)R<G)R<G)R<G)B8F)B<G)R<G)R<D6%A86%A86%A86\nM%A86%A86%A86%A86R<F)B8E,3$P/9\\4T-(N+[>U3L!G2/0->N[LJ*GK?I6;$\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS'$\"T??>BJ[7@.9F3W2&;!3[8O%3(F)R194DI+5U=75U4)\"G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G4)\"0D)\"0D)\"U=75U=75U=75U9*2DE145%145%14%A86\nMR<G)R8F)B8G)R<G)R<G)%A86%A86%A86%LG)R<F)B8F)B8F)B8E,3$Q,3$Q,\nMB8F)B4Q,3$QGQ<4TBXN+B^WM4[\"P&1EQTM(]F0->7KMZ1Z5FQ#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q`NE1T??WWHJ*KN[N[N[*BHJ*BIZ\nM>M]'I:4+\"PMF9@L+9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS$Q,8>'AX<Q,<3$9F8+\"PL+I4??>BJ[7@,#F=)Q&1FPL%/M[33%9P\\/3$Q,\nM3(F)B<G)R<D6%A86%A9G#TQ,3(F)B8F)B8G)R<G)R<G)R<G)B8F)R<G)R<G)\nM%A86%A86%A945%145%145%145%145%06%A;)R8F)B4Q,3`]GQ32+B^WM4[`9\nMTID#7KMZWT>E\"\\2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$\"Z6E1]\\J7IG2&5.+Q4R)B<G)\nM%A945)*2DI*2DI+5U=75U4*=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G4)\"0M75U=75U=75U=75U9*2DI*2\nMDE145!86%A86%A;)R<G)R<F)B4Q,3$Q,3(F)B<G)R<G)R<G)R<G)R<G)R<G)\nMR<G)R8F)B4Q,3`\\/9V</#TQ,3$P/9S2+[;`9TM+2TG%QTID#7EZ[*GK?W]_?\nM1T<+Q(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&9F\nM\"Z5'W]]Z>BHJN[LJ>GIZW]_?1Z6E\"PL+9F;$,3'$,3&'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q,1F9F9F\"Z5'WWHJN[M>\nM`YD]TG$9&;!3[8LTQ6</3$Q,3(F)R<G)R<G)%A9,B8F)B8F)B8G)R<G)R8F)\nMR<G)R8F)R<G)R186%A865%145%145%145%145%145%145%145!86R<F)B8E,\nM3$P/9\\7%-(OM4QEQTIE>NRIZ1Z4+9C&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<Q9@NE1]\\J`SUQL.V+Q6=,B8G)R1;)%A945)+5U4*=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G4)\"0D+5U=75\nMU=75U=75U=62DI)45!86%A;)R<G)R<G)R<G)R<F)B8F)B8E,3$Q,B8F)B<G)\nMR<G)R8F)R<F)B8F)B8F)B8F)B8F)B4Q,#V?%-(OM[8N+BXN+[5,9<=(]F0->\nM7KN[NRIZ>M_?1Z4+9L2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>',3'$9F8+I:6EI4='1]_?WT='I:6EI0MF9L3$Q#&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS$Q,3'$Q&9F9@NE1]]Z>BHJNUZ9/=)Q&;!3[8LTQ6</3$Q,B8F)R<G)R<F)\nMB8F)R<G)R8F)B8F)R<G)R<G)R<G)%A86%A945%145%145%22DI*2DI*2DI*2\nM5%14%A86R<G)B8F)3$Q,3`]GQ32+4[`9TIE>*D>E\"V;$,8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'9J7?*EX]TAE3BS3%9P],3(F)R<D6\nM%E22DM750D)\"G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G4)\"0M75U=75U=75U=75DI*25%14%A;)R<G)R<G)R<G)R<G)R<G)\nMR8F)B4Q,3$P/#TQ,3(F)B8F)3$Q,3$Q,3$P/#P\\/#TQ,3$Q,#V?%-(OM[5.P\nML!D9&1FPL+`9<3V9`UZ[*M]'1Z4+\"V9FQ(>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$Q,1F9F9F\nM9@L+I:4+9F9F9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$9@NE1T='WWHJNUZ9/=)Q&5/M\nMBS3%9P],3$Q,3(F)B<G)B8F)B8F)B8F)B8G)R<G)R186%A86%A945%145)*2\nMDI*2DI*2DI*2DI*25%145!86%LG)R<F)B8E,3$P/9\\4TBU,9/0.[>D<+9L2'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS%FI4??>KM>F3UQ&;#M-,4/3(G)%E22U=750D*=G9V=G9V=G9V=G9V=G9V=\nMG9V=G9V=G9V=G9V=G9V=G9V=G9V=G9U\"0M75U=75U=75U=75U9*2DE14%LG)\nMR<G)R<G)R<G)R<G)R<G)R<F)B8F)R8F)B8F)B4Q,3$Q,#P]G9\\4T-#0T-#3%\nM-#2+BXN+B^WM4U.PL!D9<7'2/9F9F9F9`UY>NRHJ>M]'I0MFQ#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',3$Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q\nMQ&8+I4??WWJ[`YD]TG$9L%/MBS0TQ6=G#TQ,3(F)B8F)3$R)B8F)B<G)R<D6\nM%A865%145%22DI*2DI*2DI*2DI*2DI*2DI)45!86%LG)R<F)B8F)3$P/#\\4T\nM-.T9T@.[>D<+Q,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<0+WUX]&>UG3(G)%A94DM75\nMU=5\"0IV=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=G9V=0D)\"0D)\"\nM0D+5U=75U=75U9*25%06%A86%A86%A86%A86%A;)R<G)R<G)R<G)B8F)B8E,\nM3`\\/9\\7%-(N+B^WM[8OM[5.PL+\"P&1EQ<7'2/3T]/9F9F0.[*GK?1T>EI:6E\nMI:6EI0MFQ(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX<Q9@L+I4=Z*KM>`SW2<1FP4^V+BS0TQ<5G3$R)\nM3$Q,3(F)B<G)R186%A945%14DI*2DI*2U=75DI*2DI*2DI*2DI)45!86R<G)\nMR8F)B8E,3$P/9S2+4[`9TIF[*M^E9C&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX?$1[N9&5/%3(F)R186%E22U=75U4)\"0D)\"0M75U=75U=750D*=G9V=G9V=\nMG9V=G9V=G4)\"0D)\"0D)\"0D)\"U=75U=75U=75DI*2DI*2DI*25%145%06%A86\nM%A86%A86%LG)R<F)B8F)3$P/9V=GQ32+B^U3L+\"P&1D9&7'2/3T]/9D#`P,#\nM`P,#7KLJ>M_?1Z4+9L0Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@NE1]\\JNP,#\nMF3W2TG$9L%/MBS3%9V=,3$R)B8G)R186%E145)*2DM75U=75U=75U=75DI*2\nMDI*2DE145!86%LG)R<F)B4Q,#V?%-.U3L!EQTID#NWI'\"V8QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX=FI7J[F7&PBS1G#TR)B<D65%225%145)*2\nMU=75U=75U=75U4)\"0D)\"0D+5U=75U=75U=75U=75U=75U=75U=75U=75U=62\nMDI*2DI*25%145!86%A86%LG)%LG)R<G)R<F)B8E,3$P/9\\7%-#2+[>U3L+`9\nM&7$9&1EQTCV9F9F9`P->7EZ[NRHJ*BIZ>M^E\"\\0QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',3'$9@NE1]\\J7@.9/3W2TG$9L%.+-,6)R<G)%A945)*2DI*2U=75\nMU=75U=75U=75U9*2DI*25%145!86%A;)R8F)B4Q,9\\4TBU,9<=(]/9D#NWK?\nMI68QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$I=\\J7ID]\nMTG$9[31G#TR)B<D6%E145%14%A86%E145)+5U=75DI*2DI*2DI*2DI*2DI*2\nMDI*2DI*2DI*2DI*2DI*2DI*2DE14%A86R<G)R<G)R<G)R<G)B8F)B8F)B8E,\nM3$Q,3$P/9\\7%-#2+[>U3L!D9&7%QTM+2TCV9F0->7EZ[NRHJ>GK?WT>E\"V;$\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F\"PNE1]\\J7@.9/3W2TG$9L%,6\nM%E14DI*2DI+5U=75U=75U=75U=75U=75DI*25%14%A86%LG)B8E,3$QGQ32+\nM[;`9TM(]/9D#7BIZ1Z5FAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'A\\1F\"Z5'1WJ[`](9BV=,3(F)B4Q,3$Q,3$R)B8F)B<G)\nMR<G)R<F)B<G)B8F)R<D6%A86%A86%A86R<G)R<G)R<G)R<G)B8E,3`\\/#P],\nM3$R)B8F)3$Q,3$Q,3$Q,3$Q,#V=GQ<7%Q<4T-#2+B^U3L!EQ<7'2/9D#`P->\nM7KN[*BHJ>GK?W]_?W]^E\"\\0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&9F\nM\"Z5'1WHJ7@.9/=)Q<1F2DI*2DM75U=62U=75U=75U=75DI*2DI*25%06%LG)\nMR<G)B8E,3&?%-(OM4[`9TM+2/9D#NRIZ1Z4+Q(>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$I7J[7EX#F9F9\nMF3T]TM)Q&5/M-,7%#TQ,B8F)B8F)3$Q,3$Q,3$Q,#P\\/3$P/#V=GQ30TQ<5G\nM9V=G9\\7%-#0TQ<7%Q<5G9P\\/3$Q,3$Q,3`\\/9V=G9V=G9V=G9V=GQ<7%-(OM\nM4U-3L!D9&1EQTM(]F0,#`YF9`P->7KLJ*GIZ>GK?WT>E\"V;$,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<QQ&8+\"T??>BI>`P,]/=*2DI*2DI*2DI*2U=75U=75\nMDI*2DI)45%06%A86%LG)B8E,3&<T[5-3L!D9<7$]F0->NWK?1PMFQ#&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS'$\"Z5'>KM>`P,]TAFP4^WM4U-34U-3[>WML!D9\nM&1D9<3T]/7%Q&1D9<=*9F=)Q<7%Q&1FP4U-34U-3[>V+-#0TQ<5G#P\\/9V=G\nM9V=G9V?%Q<7%Q32+B^WM4U-3L+\"PL!D9&7%QTM(]F9D#`YF9`P,#7KN[*BIZ\nM>GIZW]^E\"V8QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+I=]Z>BJ[`YF2\nMDI*2DI*2DI*2DI*2DI*25%14%A86%A86%A;)B4Q,#\\6+[;`9<=*9F9D#7EZ[\nM*M^E\"V;$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\"T??NP.9\nM/3T]/3T]F0.9F9F9F0->NRJ[*BIZ>BJ[N[N[N[LJ*KN[*BIZ*BJ[NUY>7EY>\nM7@,]TG$9L.V+BS0T-,7%Q<7%Q<7%-#2+B^WM[5-3L!D9&1D9&1D9&1EQTM(]\nM/9E>7EY>7EY>N[LJ*GK?WWIZWT='I0MFQ(>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q9@NE1]]Z*EY45%145%145)*2DE145%14%A86%A86%LG)B8E,9S2+\nM4QG2F0.[*GIZWT>E\"PMFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',<3$9@NEI0L+9L3$Q&9F9L0Q,3&'AX>',<1F9@L+\"Z6E\nM\"V9F9F9F9F8+\"PNE1T??>BHJ*KM>`YD]TG&P4^WMBXLT-#0T-(OM[5-3L+\"P\nML+`9&1D9&1EQTCT]/9D#7EZ[*BHJ*BIZ>GK?WT??W]_?W]_?WT='I0MFQ(>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9@NE1]]45%145%145%145!86%LG)\nMR<G)R<F)B4QG-.U3L'$]`[MZ1Z6E\"V;$,3$Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3'$9F9F9F9F\"Z6EI4??*KM>`SW2\nM<7$9L+!34U-34U.PL+`9&1D9&7'2TCT]TCT]/9F9F0,#`P,#7EZ[*GIZ>GHJ\nM*BHJ*KN[NRHJ>GK?1Z4+\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9J54\nM5%145%145!86%LG)R<F)B8E,#\\4T[5.P&=*97BK?1Z4+9L2'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AS'$9@L+I=\\JNUX#F9F9/3T]TG%Q&1D9<7%Q&1D9&7%QTM+2TCT]\nM/=+2/9F9`P->N[N[*BIZ*BJ[N[M>7EZ[*BIZW]]'I0L+9L3$,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',<06%A86%A;)R<F)B4Q,3`]G-.U3L!EQTID#7BK?I0MF\nMQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@M'WWHJ*KN[NUX#`YF9/3W2\nMTM)Q<7$9&1D9&1D9&1D9&7%Q<7%QTCT]F0,#7EY>7KN[7EX#`UY>7KLJ>GK?\nMI:4+\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'Q&9F\"V;$,8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>)R<F)B4Q,#V?%-.U3L!G2\nM/9F9F0->NWI'I0O$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\nM\"Z5'W]]Z>BJ[7EY>`P.9/=)Q<7%Q&1D9&1D9&1D9&1FPL+\"PL+`9&1EQTCV9\nMF0.9F0,#7EY>NRIZ>M]'I0MFQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,3'$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=,\nM#\\4T-(OML!EQTCV9`P,#7KLJ>GK?1Z4+Q(>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<QQ,3$9F8+I4??>KM>`YF9F3W2TM+2TM)Q<7%Q<7$9\nM&1D9&1D9L+\"P&1EQ<=+2/3T]/3V9F0,#7EZ[*GK?1Z6E\"PMFQ#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX=3L+`9<=(]/9D#7EZ[*BIZWT>EI0O$,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',6:E1WHJ*KM>\nM`P.9F3T]TM+2TM)Q<7%Q<7%Q<7%Q&1D9&1D9&1D9&1D9&1D9<7'2/3V9F0,#\nM7KLJ>M_?1PO$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>9F0->7EZ[*BIZ>M]'I0MF\nM9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<QQ&8+1]]Z*KN[NUY>7EX#`YF9/3T]/=+2TM+2TG%Q&1D9&1D9\nM&1D9&;`9&1D9&7%QTM(]F9F9`P->NRK?1T>E\"V9FQ#&'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<Q,3'$Q,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=Z\nMWWIZW]_?1Z4+\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q&8+I4??>BHJ*BHJ*KN[N[N[\nMNUY>`P,#`YF9F3T]TM+2<7%Q<7%Q<7%Q<7%Q<7'2TCT]F9F9`UZ[NRHJ*GK?\nM1T>E\"V;$Q#$Q,8>',3$Q,3&'AX>'AS$QQ,3$,3$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>EI:4+9F;$Q,2'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,<1F9@L+I:5'1T??WWIZ>GIZ*BHJ*KN[NUX#`YF9F3T]/3T]/3T]TM+2TM+2\nMTM(]/3T]/9F9F0->7KN[*GIZWT>E\"V9F9F9F9F9FQ,0Q,<3$,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS$Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9F9F\"Z5'1]_?W]_?W]]Z>BHJ*BJ[\nMNUY>`P,#F9F9F9F9/9F9F0,#`P,#`P,#`P->7KN[*BIZ>M_?W]_?1T>EI0L+\nM\"PL+\"PMF9F;$Q,3$,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS$Q,3$Q,3$Q,3$Q,<3$9F;$9F9F9L3$,3$Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F\nM\"Z6EI:5'1Z5'1]]Z*BHJN[N[*BHJ*KN[NUY>7EY>7EZ[N[N[N[N[N[N[N[N[\nM*BHJ>GIZW]_?>GK?W]_?1T>EI:4+\"PNE\"PMFQ,3$,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q\nM,3$Q,3$Q,3$Q,3'$Q,3$9F9F9F9F\"PL+\"V9F9@L+\"PL+\"PMFQ,3$,<3$Q#$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS'$9@L+I:5'1T??W]_?WWIZW]]Z>GIZ>GIZ>BHJ*BJ[\nMN[N[NRHJ*BHJ*BHJ*BHJ*BHJ*BHJ*GIZ>GIZ>GIZW]_?1Z4+\"PL+\"V9FQ,0Q\nM,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<QQ&9F9@L+\"PL+\"V9F9F8+\"Z4+\"PL+\"Z6EI:5'1T='I:6EI:6E\nMI0L+9L3$Q,3$,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$\"Z5'1T='1T??W]_?\nMW]_?W]_?W]]Z>GIZ>GIZ>BHJ*BHJ*BHJ*BHJ*BJ[N[N[N[N[N[N[NRHJ*BIZ\nM>GK?WT='I0L+\"V;$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',<1F\"PNEI:6E\"Z6EI:6EI:6E1T='1T='1T='\nM1T='1Z6EI:6EI4='1T='I0MF9F9F9F;$Q#$Q,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS'$9@L+\"Z6EI:6E1T='1T='W]_?W]_?W]_?W]_?>GIZ>GIZ>GHJ*BHJ\nMN[N[NRHJ*BHJ*BHJ>GIZ>M_?WT='I0L+9L3$,8>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+I:5'1Z6EI:6E1T='\nM1]_?>GIZ>GIZ>M_?W]_?WT??W]]Z>GIZ>M]'1Z6EI:6EI:6EI:6EI:6EI:4+\nM9C&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&9F9F9F\"PL+I:6EI:5'1T='1T='\nMW]_?W]_?W]]Z>GIZ>GIZ*BHJ*BIZ>GIZ>GIZ>GK?W]_?1T>E\"V9FQ#$QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\"PNE\nMI4='1T='1T>E1T='W]]Z>BHJN[N[NRHJ*KN[N[N[N[N[7EY>N[LJ>GIZW]_?\nMWWIZ*BHJ*BHJ*GIZWT<+\"V;$AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,3$QQ,3$9F9F9@L+I:6EI:6EI4='1T='W]_?WWIZ>GIZ>GIZ>GIZW]_?W]_?\nMWT='I:4+9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\n-------- End of part 11 of 14 --------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11112, "properties": {"category": "rec.sport.baseball", "text": "From: msilverm@nyx.cs.du.edu (Mike Silverman)\nSubject: Cubs behind Marlins? How?\nArticle-I.D.: mnemosyn.1993Apr6.194103.8810\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nLines: 74\n\nI've noticed that is has become fashionable lately in rsb to predict\nthe Marlines to finish ahead of the Cubs....how?\n\nFirst Base:\n\nGrace vs Destrade...Could Destrade be the second coming of Cecil\nFielder? I doubt it. If Destrade performs to the height of expectations,\nthen even, otherwise, edge to Cubs\n\nSecond Base:\n\nSandberg vs Barberie...No contest. Sandberg will be back May 1. Edge\nto Cubs...a big edge.\n\nShortstop:\n\nVizcaino vs Weiss...Vizcaino is excellent defensively, but is an\nautomatic out at bat. Weiss isn't much better with the stick. Even.\n\nThird Base:\n\nDave Magadan vs Buechelle...Magadan has a higher OBP and is a better hitter.\nBuechelle has more power and is better defensively (I think) Edge to\nFlorida.\n\nCatcher: \n\nSantiago vs Wilkins...Wilkins is OK, but Santiago is better. Edge to\nMarlins\n\nLeft Field:\n\nConine vs Maldonado...Wow! 4 for 4 yesterday...I know Conine has potential.\nI watched him play at Omaha the last couple years. Until he actually proves\nhimself, I give Maldonado the edge, however, like at 1B, this is position\nwhere Florida might be even or better *if* the player there has a huge year.\n\nCenter:\n\nScott Pose vs Wilson/May...Edge to May, even if Wilson. Hopefully the\nCubs will use may and save Wilson for pinch running and the like. May\nisn't Ken Griffey Jr, but he will hit .275 with 15 homers if he plays\nfull time.\n\nRight:\n\nFelix vs Sosa...Felix Jose has occasional power and a bad OBP. So does\nSosa, but Sosa also has speed and a good glove. Edge to Cubs\n\nStarters:\n\nAquino? Armstrong? Hammond? A lot of fifth starters here. The Cubs won't\nremind anyone of the Brave staff, but Morgan-Castillo-Guzman-Hibbard\nis average to OK...better than the Marline. Edge to Cubs\n\nMiddle Relief:\n\nEven. The Cubs have some decent middlemen, and so do the Marlins.\nCarpenter anf Klink or decent, but so are Assenmacher and McElroy.\n\nCloser:\n\nA healthy Harvey is a big edge to the Marlins. Meyers is decent, but\nno Harvey. Of course, the Cubs may have a few more games to save.\nLook for 30 saves, 5 blown from Meyers, and 25 saves, 3 blown (with\na better ERA) for Harvey. Edge Florida.\n\nOverall, an edge to Chicago.\nNeither of these teams will threaten to win anything, of course.\ne\n--\nmsilverm@nyx.cs.du.edu\t\t\t\tGO CUBS!!!\n\n\"One likes to believe in the freedom of baseball\" - Geddy Lee\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11113, "properties": {"category": "sci.space", "text": "From: tholen@galileo.ifa.hawaii.edu (Dave Tholen)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nOrganization: Institute for Astronomy, Hawaii\nLines: 17\n\nPhil G. Fraering writes:\n\n> Mark Brader writes:\n\n>> Thanks again.  One final question.  The name Gehrels wasn't known to\n>> me before this thread came up, but the May issue of Scientific American\n>> has an article about the \"Inconstant Cosmos\", with a photo of Neil\n>> Gehrels, project scientist for NASA's Compton Gamma Ray Observatory.\n>> Same person?\n\n> No. I estimate a 99 % probability the Gehrels referred to\n> is Thomas Gehrels of the Spacewatch project, Kitt Peak observatory.\n\nYou may change that to 100% certainty.  But to clarify, Spacewatch is a\nUniversity of Arizona project using a telescope of the Steward Observatory\nlocated on Kitt Peak.  It is not associated with Kitt Peak National\nObservatory, other than sharing a mountain.\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11114, "properties": {"category": "alt.atheism", "text": "From: halat@pooh.bears (Jim Halat)\nSubject: Islam is caused by believing (was Re: Genocide is Caused by Theism)\nReply-To: halat@pooh.bears (Jim Halat)\nLines: 40\n\n\n\nIn article <1993Apr13.173100.29861@ultb.isc.rit.edu> snm6394@ultb.isc.rit.edu (S.N. Mozumder ) writes:\n\n>>I'm only saying that anything can happen under atheism.  Being a\n>>beleiver, a knowledgeable one in religion, only good can happen.\n\nThis is becoming a tiresome statement.  Coming from you it is \na definition, not an assertion:\n\n   Islam is good.  Belief in Islam is good.  Therefore, being a \n   believer in Islam can produce only good...because Islam is\n   good. Blah blah blah.\n\nThat's about as circular as it gets, and equally meaningless.  To\nsay that something produces only good because it is only good that \nit produces is nothing more than an unapplied definition.  And\nall you're application is saying that it's true if you really \nbelieve it's true.  That's silly.\n\nConversely, you say off-handedly that _anything_ can happen under\natheism.  Again, just an offshoot of believe-it-and-it-becomes-true-\ndon't-believe-it-and-it-doesn't.  \n\nLike other religions I'm aquainted with, Islam teaches exclusion and\ncaste, and suggests harsh penalties for _behaviors_ that have no\nlogical call for punishment (certain limits on speech and sex, for\nexample).  To me this is not good.  I see much pain and suffering\nwithout any justification, except for the _waving of the hand_ of\nsome inaccessible god.\n\nBy the by, you toss around the word knowledgable a bit carelessly.\nFor what is a _knowledgeable believer_ except a contradiction of\nterms.  I infer that you mean believer in terms of having faith.\nAnd If you need knowledge to believe then faith has nothing\nto do with it, does it?\n\n-jim halat\n   \n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11115, "properties": {"category": "misc.forsale", "text": "From: gregp@acpy01.att.com (Greg Peterson (CXNIXPT1))\nSubject: 1990 Mitsubishi Eclipse GSX For Sale\nOrganization: AT&T IMS - Piscataway, NJ (USA)\nDistribution: nj\nLines: 26\n\nFOR SALE\n\n1990 Mitsubishi Eclipse GSX\n\n* All Wheel Drive\n* 195 HP, 16 Valve, Turbo\n* 5 Speed Transmission\n* Limited Slip Differential\n* AM/FM Stereo w/CD Player, Cassette, 6 Speakers\n* Fog Lights\n* Air Conditioning\n* Cruise Control\n* Electric Windows\n* Front & Rear Intermittent Wipers & Washers\n* Alloy Wheels\n* Undercoated & Rustproofed\n* 22,000 Miles\n* Maui Blue\n* Excellent Condition\n* Asking $ 11,899 (negotiable)\n\n\nCall Pete:\t908 457-2838 (Work)\n\t\t908 821-5393 (Home)\nor respond to:\n\t\tpvannuis@attmail.com\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11116, "properties": {"category": "rec.motorcycles", "text": "From: markb@wc.novell.com (M. Burnham)\nSubject: Re: Ducati 400 opinions wanted\nOrganization: Novell Inc.\nLines: 28\nX-Xxdate: Thu, 15 Apr 93 11:19:09 GMT\nNntp-Posting-Host: 130.57.72.65\nX-Useragent: Nuntius v1.1.1d12\n\nIn article <1qhm02$mbs@news.ysu.edu> Albion H. Bowers, ak954@yfn.ysu.edu\nwrites:\n>Oh yeah, 12.10 at 108 mph in the quarter is such a slug.  Come on, when was\n>the last time you used your 750s max power peak?  I think maybe you should\n>ride one first, before passing judgement, there is a lot more than just\n>maximum acceleration. \n\nI really didn't mean to imply that my Ninja was any better than a Duc.  \nI have to talked to a few Duc owners (750SS owners in particular) who\nsay that the power is something less than overwhelming.  That said,\nI would love to have a 900SS.  I guess I should have been a bit more\nspecific.  If you have something that weighs that same as the 750, go \nfor the extra cubes.  \n\nI think that fact that I own a GTV-6 shows that I don't care about maximum\npower (it's no slug though) to the exclusion of everything else.  The note \nand the handling are more important to me.  I just bought a Ninja because I \ncouldn't afford a Duc.\n\nDidn't mean to ruffle any feathers, I'll probably be getting a 900SS next\nyear...\n\n- Mark\n\n------------------------------------------------------------------------\nMark S. Burnham (markb@wc.novell.com) AMA#668966  DoD#0747 \nAlfa Romeo GTV-6                             '90 Ninja 750\n------------------------------------------------------------------------\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11117, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: ma90jjw%isis@ajax.rsre.mod.uk (Justin Whitton)\nSubject: Re: Canon BJ200 (BubbleJet) and HP DeskJet 500...\nIn-Reply-To: edmoore@vcd.hp.com's message of Sat, 24 Apr 1993 22: 31:30 GMT\nNntp-Posting-Host: hayle\nOrganization: DRA Malvern, Worcs., UK\nLines: 24\n\nIn article <C60EKI.Kvp@vcd.hp.com> edmoore@vcd.hp.com (Ed Moore) writes:\n\n   thomas.d.fellrath.1@nd.edu@nd.edu wrote:\n\n   : The key issue that I bought my BJ-200 on was ink drying speed.  You really \n   : have to try awful hard to get the BJ-200 ink to smear.  The HP DeskJets need \n   : 10-15 seconds to completely dry.  In both cases, however, do not get your \n   : pages wet.  Unlike laser printers, the material on your pages is INK, not \n   : toner.  But that should go without saying.\n\n   I think the ink now used in the DeskJet family is water-fast. \n\nI've had pictures ruined by a few drops of rain. These were colour pictures\nfrom a DeskJet 500C. Mind you, it could have been acid rain:-)\n\nI use a BJ10ex. Ink dries fast, but it really doesn't like getting wet.\n\n--\n/-----------------------------------------------------------------------------\\\n|Justin Whitton at ma90jjw%hermes@uk.mod.relay |Where no man has gone before..|\n|after August mail ma90jjw@brunel.ac.uk.       \\------------------------------|\n|Disclaimer: My opinions count for nothing, except when the office is empty.  |\n|I'm a student => intelligence = 0.                                           |\n\\-----------------------------------------------------------------------------/\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11118, "properties": {"category": "rec.motorcycles", "text": "From: randy@megatek.com (Randy Davis)\nSubject: Re: Goldwing performance\nReply-To: randy@megatek.com\nOrganization: Megatek Corporation, San Diego, California\nLines: 12\n\nIn article <3880206@hpcc01.corp.hp.com> gharriso@hpcc01.corp.hp.com (Graeme Harrison) writes:\n|According to Peter Egan in the just released Cycle World his FLHS is a\n|real dog when he pillions his 120lb wife. All that money for a dog that\n|doesn't defecate much. =:-]  \n\n  But, think of the *mystique* you are buying into for that extra $7k or\nmore!!!\n\nRandy Davis                            Email: randy@megatek.com\nZX-11 #00072 Pilot                            {uunet!ucsd}!megatek!randy\nDoD #0013\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11119, "properties": {"category": "sci.space", "text": "From: jgreen@trumpet.calpoly.edu (James Thomas Green)\nSubject: Re: Vulcan?  (No, not the guy with the ears!)\nOrganization: California Polytechnic State University, San Luis Obispo\nLines: 31\n\n>In article <VNci2B7w165w@inqmind.bison.mb.ca> victor@inqmind.bison.mb.ca (Victor Laking) writes:\n>>From: victor@inqmind.bison.mb.ca (Victor Laking)\n>>Subject: Vulcan?  (No, not the guy with the ears!)\n>>Date: Sun, 04 Apr 93 19:31:54 CDT\n>>Does anyone have any info on the apparent sightings of Vulcan?\n>> \n>>All that I know is that there were apparently two sightings at \n>>drastically different times of a small planet that was inside Mercury's \n>>orbit.  Beyond that, I have no other info.\n>>\n>>Does anyone know anything more specific?\n>>\n\nAs I heard the story, before Albert came up the the theory\no'relativity and warped space, nobody could account for\nMercury's orbit.  It ran a little fast (I think) for simple\nNewtonian physics.  With the success in finding Neptune to\nexplain the odd movments of Uranus, it was postulated that there\nmight be another inner planet to explain Mercury's orbit.  \n\nIt's unlikely anything bigger than an asteroid is closer to the\nsun than Mercury.  I'm sure we would have spotted it by now.\nPerhaps some professionals can confirm that.\n\n\n/~~~(-: James T. Green :-)~~~~(-: jgreen@oboe.calpoly.edu :-)~~~\\ \n| Heaven, n.:                                                   |\n|   A place where the wicked cease from troubling you with talk | \n|   of their own personal affairs, and the good listen with     |\n|   attention while you expound your own.                       |\n|                  Ambrose Bierce, \"The Devil's Dictionary\"     |\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11120, "properties": {"category": "soc.religion.christian", "text": "From: sun075!Gerry.Palo@uunet.uu.net (Gerry Palo)\nSubject: Re: Athiests and Hell\nLines: 110\n\nIn article <Apr.30.03.10.22.1993.10056@geneva.rutgers.edu> REXLEX@fnal.fnal.gov writes:\n>In article <Apr.29.04.19.17.1993.9069@geneva.rutgers.edu>\n>sun075!Gerry.Palo@uunet.uu.net (Gerry Palo) writes:\n>\n>>Note that in this, perhaps the oldest of the creeds, there is no mention\n>>of the danger of hell for non-believers.  Likewise there is no mention \n>>of the salvation of the believers' soul and its destiny in heaven after \n>>death. There is only the resurrection of the body (and it does not say \n>>when or how).\n>\n>You don't go far enough back.  If we believe in God and that He did create the\n>heavens and the earth and He did create Adam and Eve and that they walked in\n>the garden and history flowed from there, if we can agree with that, then would\n>you agree that the further back you go the closer you get to people who had a\n>stronger memory of who God was and what He said and commanded?  \n\nBetween Adam and Eve and Golgotha the whole process of the fall of man\noccurred.  This involved a gradual dimming of consciousness of the spiritual\nworld.  This is discernable in the world outlooks of different peoples through\nhistory.  The Greek, for example, could say, \"better a beggar in the land\nof the living than a king in the land of the dead.\" (Iliad, I think).\n\nThe question of what happens to human beings who died before Christ is\nan ever present one with Christians.  I am not ready to conscign Adam\nor Abraham, or even Cain to eternal damnation.  Yet they all died in their\nsins, in the Christian sense.  The same can be said of the whole of  Gentile\nhumanity, and also of the unrepentant malefactor on the cross next to\nhim.  I do not limit the power of Christ to save even him, through whom\nSatan would mock his deed of salvation at the very moment of its fulfillment.\n\n>In my studies\n>of the ancient mystery reliegions, I have run across many poems or rituals or\n>what nots with the interpretation that those who are of God will be with Him\n>via the promised seed but those who rebel will suffer *eternal* life in dieing.\n> It was a standard belief back then.  \n\nIt is possible to experience eternity in a passing moment.  The\nrelationship of eternity to duration is not simply one of indefinitely\nextended conditions of Greenwich mean time. It is possible to imagine\nan eternity of agony or bliss - or even many of them - in the\nspiritual world during the time between earthly death and a new birth.\n\nIt was also a standard belief among many peoples that even the righteous\nwere lost. This again is the result of the loss of the paradisal consciousness\nthat fled from us after the fall, with our ever increasing involvement with\nthe sense world.\n\nIt would be interesting to share in the results of your studies of ancient\npeople's ideas of life after death.\n\n>                                    Today we think we know so much and that\n>if we could go back in time we could sure teach those people a thing or two. \n>But I think that as this age has grown older that it is we who opperate from a\n>mist, not those of the older ages.\n>\n\nMankind fell into mist and darkness, and at \"the turning point of\ntime\" a new light entered into the world.  The light still grows, and\nwe are developing the eyes with which to see by it.  Much new\nrevelation and growth in under- standing lies before us.  Our new\nvision and understanding is still very feeble, but it contains\nsomething new that will grow in time to embrace that which is old and\nmuch more as well.\n\n(At this point I should acknowledge openly my debt to the work of Rudolf\nSteiner, founder of Anthroposophy, for  many insights that have led me to my\nviews on this subject).\n\n>I have said it before, I'd love to post on this but the vulcan hammer would\n>fall.  The history to purgatory can be shown from the druids in England to the\n>Greeks who pilaged it from the Egyptians who ultimately got it from the\n>Babylonian mysteries. And yes, the eastern religions also show many\n>similarities.  I mean, its black and white.  THe writings and the archeological\n>finds plainly show its origin and the whys and wherefores of this doctine.  \n\nThe way you refer to it as \"doctrine\" puts a modern intellectual coloring\non it. I think it was much less abstract and much more real and spiritually\nconcrete, a teaching that struck much closer to home than our doctrines or\nteachings today can be received.\n\nI am not so ready to attribute widespread notions in antiquity to\nsimple dispersion from an original source.  Even if they were passed\non, the question is, to what extent did they reflect real perception\nand experience?  The similarity in the midst of great variety of\nexpression of the different people's ideas of the time immediately\nafter death testifies to the presence of an underlying reality.  In\nany case, we study geometry not by reading old manuscripts of Euclid,\nbut by contemplating the principles themselves.\n\nOn the other hand, there is one notion firmly embedded in Christianity\nthat originated most definitely in a pagan source.  The idea that the\nhuman being consists essentially of soul only, and that the soul is\ncreated at birth, was consciously adopted from Aristotle, whose ideas\ndominated Christian thought for fifteen hundred years and still does\ntoday. He was at once the father of modern thought and at the same\ntime lived during that darkened time when the perception of our\neternal spiritual being had grown dim.\n\n>maybe at sometime in the future-  \n\nIndeed. I should also clarify that I do not deny that eternal\nirrevocable damnation is a real possibility.  But the narrow range in\nwhich we conceive of the decisive moment, i.e. after the end of a\nsingle earthly life, is not in my mind sufficient to embrace the\nreality, and I think that is why the early creeds were couched in\nterms that did not try to spell it out.\n\n>Rex\n\nGerry (73237.2006@compuserve.com)\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11121, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: My New Diet --> IT WORKS GREAT !!!!\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 20\n\nIn article <1993Mar27.142431.25188@inmet.camb.inmet.com> mazur@bluefin.camb.inmet.com (Beth Mazur) writes:\n>In article <1ov4toINNh0h@lynx.unm.edu> bhjelle@carina.unm.edu () writes:\n>\n>On the other hand, we do a good job of implying that the person who\n>weighs 400lbs is \"overeating\" when in fact, the body probably doesn't\n>make any moral judgements about its composition.  Conceivably, the \n>body works just as hard maintaining its weight at 400 as someone else's\n>does at 200.\n>\n\nUndoubtedly it does, to maintain such a weight.  And it does so\nprimarily by overeating.  If it didn't, the weight would drop\nback to normal.\n\n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11122, "properties": {"category": "rec.sport.hockey", "text": "From: maynard@ramsey.cs.laurentian.ca (Roger Maynard)\nSubject: Re: Superstars and attendance (was Teemu Selanne, was +/- leaders)\nOrganization: Dept. of Computer Science, Laurentian University, Sudbury, ON\nDistribution: na\nLines: 62\n\nIn <1993Apr5.182124.17415@ists.ists.ca> dchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n\n>Dean J. Falcione (posting from jrmst+8@pitt.edu) writes:\n\n>>But I think the reason is Lemieux\n>>had a 168 point season and was the first non-Gretzky to win the Hart and\n>>Ross since 1980.  People turned out to watch him play. \n\n>I will grant that a star like Mario will draw fans, even if the team sucks. \n>But this is short term only; I still do not think the attendance increase \n>will last, unless the team is a winning/competitive/improving/butt-kicking\n>one.  Pittsburgh was still getting better, so people continued to support\n>them.  If they suddenly dropped to, say, 50 points, you'd have knee surgery\n>for some of the people jumping off the bandwagon.  \n\nI disagree.  McNall has demonstrated with Gretzky that a star brings out the\ncrowds whether or not the team is expected to do well.  Very few fans real-\nistically expect the Kings to do well this year (although I do) and yet they\nstill go out to see Gretzky.  This is the marketing strategy - selling the\ngame by selling the stars - that is employed by Baseball and, notably, the\nNBA and this is the attitude that the new Bettman/McNall leadership is \nbringing to the league.  They have gone on record as stating that they are\ntrying to sell the game on its stars.  Timo Salami and Brett Hull are perfect \nexamples of players that real fans know aren't worth a damn and yet, being\nbenificiaries of marketing-oriented coaching strategies, have goal totals\nthat would indicate to the casual observer, the very fans the NHL wants to\nattract, that these players are indeed superstars.\n\n>>They made the transaction to try and build a winner around Mario, that is \n>>true.  But the improvement in attendance came before they started doing\n>>this (Coffey late in 1987) and before they even had a playoff bound team.\n>>A doubling of attendance occured in 1984-85 from the previous year.  An\n>>increase from 38 points to 53 points is not going to do that.  The arrival\n>>of Mario Lemieux is what did it. \n\n>It might help to think about what would go through a fan's mind who suddenly\n>found an interest in Mario and the Pens.  Was it \"gee, Mario Lemieux is\n>amazing, I'll go watch him play\", or was it \"gee, now we've got a *kick*\n>*ass* guy on *our* side, I'll go watch him play\".  I think it was the latter.\n\nIt ain't nearly so simple as this.  The casual fan doesn't think about much \nat all.  Can you actually find an adult with a 3 digit IQ who believes that\nMcDonalds makes good hamburgers?\n \n>I did provide the example of Rocket Ismail and the Toronto Argonauts of the \n>CFL...did you leave it out because you don't know much about the CFL?  If \n>that's the case then fair enough, but if it isn't the case then I'm curious\n>to hear your explanation.\n\nYes but apparently the Rocket has not lived up to his marketing responsi-\nbilities has he?  He was hyped, initially, as a superstar, but outside of\none Grey Cup game he has done very little to maintain/enhance that assess-\nment of his talents.  Most Argo fans probably feel the team would be better\noff without him. \n\ncordially, as always,\n\nrm\n\n-- \nRoger Maynard \nmaynard@ramsey.cs.laurentian.ca \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11123, "properties": {"category": "misc.forsale", "text": "From: kohlhepp@cae.wisc.edu (Robert Kohlhepp)\nSubject: RasterOps 8XL\nOrganization: U of Wisconsin-Madison College of Engineering\nDistribution: usa\nLines: 14\n\nI have a video board for sale for Macintosh NU-Bus machines.  My other deal fell through.  I am asking $200.\nRasterOps 8XL\n\n640x480\n800x600  <--- This was incorrectly posted as 832x624 before.\n640x870\n1024x768 (60hz & 75 hz)\n1152x870\n\nMake offers by mail.\n\n--\nRJ Kohlhepp\t\tNovell Systems Staff\nkohlhepp@cae.wisc.edu\tComputer Aided Engineering\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11124, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: jim@n5ial.mythical.com (Jim Graham)\nSubject: Re: Possible FAQ question about a UART\nOrganization: what, ME???  you must be joking.\nLines: 26\n\nIn article <1qjp2bINN815@fmsrl7.srl.ford.com> glang@slee01.srl.ford.com\n(Gordon Lang) writes:\n\n>National Semiconductor.  I don't know if other manufacturers make equivalent\n>chips or not.  Maybe National isn't even the original, but they are the only\n>one that I know about.  NS16450, NS16C450, NS16C451, NS16550AF, NS16C551, and\n>NS16C552.\n\nno argument on going direct to National (see my previous post on this topic),\nbut some info regarding what you said above.  I don't know about the 8250 or\n16450, but NS was the original source for the 16550 series (and I strongly\nsuspect that they developed the others first, too).\n\nI can also tell you that I'm one of those who won't buy a UART made by\nanyone other than National Semiconductor.\n\n   --jim\n\n--\n#include <std_disclaimer.h>                                 73 DE N5IAL (/4)\n------------------------------------------------------------------------------\nINTERNET: jim@n5ial.mythical.com  |  j.graham@ieee.org     ICBM: 30.23N 86.32W\nAMATEUR RADIO: n5ial@w4zbb (Ft. Walton Beach, FL)          AMTOR SELCAL: NIAL\n------------------------------------------------------------------------------\nE-mail me for information about KAMterm (host mode for Kantronics TNCs).\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.525+0000", "event": "documents", "entityId": 11125, "properties": {"category": "sci.electronics", "text": "From: morrow@cns.ucalgary.ca (Bill Morrow)\nSubject: Need source for old Radio Shack stereo amp chip\nNntp-Posting-Host: cns9.cns.ucalgary.ca\nOrganization: University of Calgary\nLines: 13\n\nLast week I asked for help in getting an old homemade amp working with\nmy Sun CD-ROM drive. It turns out that the channel I was testing with\nwas burned out in the amp. The other channel works fine.\n\nSo now I need a new amplifier chip. My local Radio Shack no longer\ncarries components! The chip is a 12 pin SIP (?) labelled with BA5406\nand then \"502 515\" below that.\n\nDoes anyone have a source? Thanks,\n-- \nBill Morrow    Clinical Neurosciences, University of Calgary\ne-mail: morrow@cns.ucalgary.ca voice: (403) 220-6275 fax: (403) 283-8770 \n3330 Hospital Drive NW Calgary, Alberta, CANADA T2N 4N1\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11126, "properties": {"category": "misc.forsale", "text": "From: tpremo@mentor.cc.purdue.edu (Cinnamon Bear)\nSubject: Onkyo Integra series Integrated amp for sale:\nOrganization: Purdue University Computing Center\nDistribution: na\nLines: 18\n\nI have a Onkyo integrated amplifier that I am looking to get rid of.\n\t60w/ch\n\tworks great\n\tIntegra series\n\tnot a problem\n\n\tAsking $100 OBO\n\n\tIf your interested call me at 317-743-2656  or email this address.\n\tMAKE ME AN OFFER!!!\n\nTodd\n\n-- \n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n (___________________________________ %   Todd Premo  \n         /              /      /      %   Purdue Universtiy \n       /    __\t __   / __   /        %   Environmental Engineering \n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11127, "properties": {"category": "rec.autos", "text": "From: dchamber@b15news.b15.ingr.com (Doug Chamberlain)\nSubject: Re: Cherokee v. Explorer\nOrganization: Intergraph Corporation, Huntsville, AL\nLines: 42\n\njcksnste@ACF1.NYU.EDU writes:\n\n>Hi All,\n>  Brand new to the group, so please, no flames!\n\n>Honest opinions on Jeep Cherokee Country (not Sport) v. Ford Explorer.\n\n>My stepfather, who ponders every major decision up to four months AFTER\n>making it, is looking at one of the two.  Also, please comment on the\n>importance, if any, between 4WD and 2WD.  We live in Princeton, NJ and\n>will barely ever take it off road.  We learned with this last winter that\n>we could really use something with a little more confidence in 20 inches of\n>snow than an Olds Cutlass Eighty-Eight!!\n\n>All replies appreciated.. he'll be pondering this for a while.  He's already\n>decided on 6 cyl. over 4, so don't worry about that one..\n\n>Thanks!\n\n>-->Steve\n\n  I own a new ford Explorer, I really love it!\nI drove the Jeep and besides the power I just didn't see\nspending the money for it! The Jeep was great but I just\nlove the Explorer! I have a 2WD and I got through the blizzard \nof 93 just fine! I drove about 400 miles in the worst part of    \nstorm and it never faulterd!     My own Opinion  \n                                    Doug                  i\n\n\n\n\n\n\n\n\n\n\n\n\n\n>(jcksnste@acf1.nyu.edu)\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11128, "properties": {"category": "talk.politics.misc", "text": "Subject: Re: Why not concentrate on child molesters?\nFrom: quirke_a@kosmos.wcc.govt.nz\nDistribution: world\nOrganization: Welligton City Council, Public Access.\nNNTP-Posting-Host: kosmos.wcc.govt.nz\nLines: 18\n\ncramer@optilink.COM (Clayton Cramer) writes:\n\n> You mean, if a large part of the population supports discrimination \n> against homosexuals, they will be injured.  But if a large part of the\n> population supports such discrimination, how did that law get passed?\n\n   An addition to anti-discrimination laws which includes homo and bisexuality\n? One would assume it would be because politicians were listening to the people\ncoming up with rational arguments rather than variations on bigotry. Logic\nsometimes prevails.\n   BTW, glad to see that you've admitted sexual attraction to children is a\nseperate sexual orientation. Didn't think you had that much honesty.\n\n-- \nTony Quirke, Wellington, New Zealand. Quirke_a@kosmos.wcc.govt.nz\n\"Usenet is like a herd of performing elephants with diarrhea -- massive, \ndifficult to redirect, awe-inspiring, entertaining, and a source of mind-\nboggling amounts of excrement when you least expect it.\"--gene spafford,1992\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11129, "properties": {"category": "sci.space", "text": "From: dennisn@ecs.comm.mot.com (Dennis Newkirk)\nSubject: Space class for teachers near Chicago\nOrganization: Motorola\nDistribution: usa\nNntp-Posting-Host: 145.1.146.43\nLines: 59\n\nI am posting this for a friend without internet access. Please inquire\nto the phone number and address listed.\n---------------------------------------------------------------------\n\n\"Space: Teaching's Newest Frontier\"\nSponsored by the Planetary Studies Foundation\n\nThe Planetary Studies Foundation is sponsoring a one week class for\nteachers called \"Space: Teaching's Newest Frontier.\" The class will be\nheld at the Sheraton Suites in Elk Grove, Illinois from June 14 through\nJune 18. Participants who complete the program can earn two semester\nhours of graduate credit from Aurora College. Please note that while the\nclass is intended for teachers, it is not restricted to teachers.\n\nThe class, which is being cosponsored by the United States Space\nFoundation, will teach how to use space exploration as a teaching tool\nto get students excited about learning and interested in science.\n\nClassroom topics to be covered by the class include:\n     > Living in Space\n     > The Space Shuttle\n     > The Space Station\n     > NASA Spinoffs that Benefit Society\n     > Principles of Astrodynamics/Aeronautics\n     > The Solar System\n\nThere will also be simulated Zero-G training in an underwater space\nstation simulation, model rocket launches, observing sessions at the\nHarper College Observatory, and field trips to the Adler Planetarium and\nthe Museum of Science and Industry.\n\nFeatured speakers include Jerry Brown of the Colorado based United\nStates Space Foundation and Debbie Brown of the NASA Lewis Research\nCenter in Cleveland, Ohio. Additional instructors will be provided by\nthe Planetary Studies Foundation.\n\nThe social highlight of the class will be a dinner banquet featuring\nSpace Shuttle Payload Specialist Byron Lichtenberg, currently President\nof Payload Systems, Inc. Lichtenberg was a member of the crew of STS-9\nwhich flew in November 1983. The banquet is scheduled for Thursday, June\n17.\n\nThe registration fee includes transportation for field trips, materials,\ncontinental breakfasts, lunches, and the special dinner banquet. Guest\ntickets for the dinner banquet are also available.  There is an\nadditional charge to receive the two hours of graduate credit. For any\nadditional information about the class, contact the Science Learning\nCenter at (708) 359-7913.\n\nOr write to:\nPlanetary Studies Foundation\n1520 W. Algonquin Rd.\nPalatine, IL 60067\n\n------------------------------------------------------------------------\n\nDennis Newkirk (dennisn@ecs.comm.mot.com)\nMotorola, Land Mobile Products Sector\nSchaumburg, IL\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11130, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc.arc.nasa.gov (Curt Howland)\nSubject: Re: Safe driving prcatices...\nOrganization: NASA Science Internet Project Office\nLines: 32\n\nIn article <5028@cvbnetPrime.COM>, \nrbemben@timewarp.prime.com (Rich Bemben) writes:\n\n|> Never dilly-dally in that rear 1/4 of either side of a cage - when you pass\n|> make it as POSITIVE as possible and if you can't pass fully, at least make\n|> sure that if you attempt it you can make the driver aware of you by at least\n|> getting into his area of vision.\n\nThis reads a lot like the philosophies of Musashi,\nin the Book of Five Rings. Much of the section on\nthe long sword is that of being strong and decisive.\n\nHmmm. The more things change....\n\n|> Ride with four eyes...\n\nWhat an awfull thing to call your pillion!\n\n|> Rich\n\n|> \"Fear not the evil men do in the name of evil, but heaven protect\n|>  us from the evil men do in the name of good\"\n\nPower corrupts. Check out the explosion that the\ncryptography policy from the WhiteHouse Friday\nhas caused....\n\n---\nCurt Howland \"Ace\"       DoD#0663       EFF#569\nhowland@nsipo.nasa.gov            '82 V45 Sabre\n     Meddle not in the afairs of Wizards,\n for it makes them soggy and hard to re-light.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11131, "properties": {"category": "talk.politics.misc", "text": "From: gsh7w@fermi.clas.Virginia.EDU (Greg Hennessy)\nSubject: Re: The Role of the National News Media in Inflaming Passions\nOrganization: University of Virginia\nLines: 21\n\nKaldis writes:\n#The fact that she was wearing a miniskirt with no underwear was\n#presented as evidence that she was a prostitute, and the court\n#apparently found this compelling.\n\nAh, I know women who wear miniskirts without wearing underwear, and\nthey are not prostitutes.\n\n#Because the judge found that there was some credible evidence that the\n#Marines were engaged in self-defense.  Got it, knucklehead?\n\nGee, Both Clayton and Kaldis engaging in ad hominem arguments.\n\nI presented evidence that what you said is *NOT* what the judge ruled.\nProvide your evidence. Repeating a false claim is not evidence.\n\n--\n-Greg Hennessy, University of Virginia\n USPS Mail:     Astronomy Department, Charlottesville, VA 22903-2475 USA\n Internet:      gsh7w@virginia.edu  \n UUCP:\t\t...!uunet!virginia!gsh7w\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11132, "properties": {"category": "soc.religion.christian", "text": "From: vic@mmalt.guild.org (Vic Kulikauskas)\nSubject: Eternity of Hell (was Re: Hell)\nOrganization: Kulikauskas home\nLines: 11\n\nOur Moderator writes:\n\n> I'm inclined to read descriptions such as the lake of fire as \n> indicating annihilation. However that's a minority view.\n...\n> It's my personal view, but the only denominations I know of that hold \n> it officially are the JW's and SDA's.\n\nI can't find the reference right now, but didn't C.S.Lewis speculate \nsomewhere that hell might be \"the state of once having been a human \nsoul\"?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11133, "properties": {"category": "rec.autos", "text": "From: dilmore@cray.com (Robert J. Dilmore)\nSubject: Re: Dumbest automotive concepts of all time\nLines: 27\nNntp-Posting-Host: techops.cray.com\nOrganization: Cray Research, Inc.\n\nIn article <C5HqJ0.57@unix.amherst.edu> bhtulin@unix.amherst.edu (Barak H. Tulin) writes:\n>I just started reading this thread today, so forgive me if it has already been\n>mentioned.  But...what was the deal with Renault's putting the horn on the\n>left-hand turn-signal stalk?  It was a button on the end, where the washer\n>button would be on the wiper/washer stalk.  Could the Frenchies not figure\n>out the wiring through the steering wheel, or what?\n\n  Well, before we start calling the Engineering folks in France a bunch of\nbraindeads for this... \n  My 1979 Mercury Capri had this lovely feature. This was not the earlier\nGerman variant but the newer one that was identical to the Mustang of \ncurrent fame. I can't tell you how many times this feature pissed me off.\nCome to think of it my brothers Zepher had this as well.\n\nRobert Dilmore\ndilmore@cray.com\n\n>\n>Going back to an earlier thread, imagine having to turn left, shift gears,\n>flash a stray driver in the intersection with your left-hand high beam on\n>the headlight stalk, AND, after the driver wouldn't move, having to honk the\n>horn on the left-hand stalk!  Gives me the heebie-jeebies.\n>\n>--Barak\n>\n\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11134, "properties": {"category": "talk.politics.misc", "text": "From: steveth@netcom.com (Steve Thomas)\nSubject: Re: Good Neighbor Political Hypocrisy Test\nOrganization: VisionAire, San Francisco, CA\nLines: 34\n\nIn article <1993Apr15.193603.14228@magnus.acs.ohio-state.edu> rscharfy@magnus.acs.ohio-state.edu (Ryan C Scharfy) writes:\n>In article <stevethC5JGCr.1Ht@netcom.com> steveth@netcom.com (Steve Thomas) wri\n>tes:\n>\n>>\n>>Just _TRY_ to justify the War On Drugs, I _DARE_ you!\n>>\n>\n>A friend of mine who smoke pot every day and last Tuesday took 5 hits of acid \n>is still having trouble \"aiming\" for the bowl when he takes a dump.  Don't as \n>me how, I just have seen the results.\n>\n>Boy, I really wish we we cut the drug war and have more people screwed up in \n>the head.\n>\n\nI'll answer you're sarcasm with more sarcasm:\n\n\tBoy, it looks like the WOD is WORKING REALLY GOOD to stop people from\n\tbeing screwed up in the head, given that example!\n\n(Issue: your friend _got_ his drugs--legal or not legal, he'll continue to\nget them.  Issue #2: why should _I_, as somebody who does NOT use illegal\ndrugs and who IS NOT \"screwed up\" have to PAY for this idiot's problems?  He's\nnot doing anybody any harm except himself.  The WOD, on the other hand, is an\nimmediate THREAT to MY life and livelyhood.  Tell me why I should sacrafice\nTHIS to THAT!).\n\n\n\n-- \n_______\nSteve Thomas\nsteveth@rossinc.com\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11135, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: roman.bmp 13/14\nFrom: pwiseman@salmon.usd.edu (Cliff)\nReply-To: pwiseman@salmon.usd.edu (Cliff)\nDistribution: usa\nOrganization: University of South Dakota\nLines: 956\n\n\n\n------------ Part 13 of 14 ------------\nMTM(]/3V9F0->7EY>7EZ[N[LJ*GK?W]]'1T>EI:6EI:6E1T='1Z4+I:5'1Z4+\nM\"V;$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS%F9@L+\nMI4='WWJ[`YD]TM+2<1D9L%/MBS3%9P],3$R)B8F)B8F)B8F)B8F)B8E,3$P/\nM9\\4TB^U3&7$]F0->*GK?1Z4+9C&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,3$9F9F9F;$\nMQ,1F\"PL+I:5'1]_?>BHJ*BJ[NUY>`P.9F9F9F9F9F9F9F9F9F9F9F9F9`P,#\nM`P.9F9D]/3W2TG%Q<1D9&1D9<7%QTCT]F9D#`P,#`UY>7KN[*M]'1Z6EI0L+\nM\"PL+\"Z6EI:6EI:6EI:4+9L3$Q,3$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS'$Q&8+\"Z5'WRI>`YF9F3T]/=)Q&5/MBS3%9P],3$Q,3$Q,\nM3$Q,3$Q,3$Q,3$P/9\\4TB^U3&7$]F0->NRIZWT<+9C&'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,<3$Q,1F9F8+\"V9F9F9F9F9F\"PNE1T='W]]Z*KM>7EY>`P.9F9D]/9F9F9F9\nMF9F9F9F9F0,#`YF9F9F9F9F9F9F9F9D]TM)Q<1D9&;\"P&1D9&1EQTM+2/3V9\nMF9F9`P->N[LJ>M]'I0L+\"PL+\"PL+\"PL+\"PL+\"PMF9L0Q,8<Q,3$Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9F9F9@M'WWHJNUY>7@.9/=(9\nML%.+-#3%9V</#P\\/#P\\/#TQ,3$Q,3`]GQ<4TB^VP&=(]F5Y>NRIZWT<+9C&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS'$9F8+\"Z6EI:6EI0L+\"PL+\"PL+\"Z6EI:5'WWIZ*EY>\nM`P,#`P,#F9F9F9F9F9F9F9F9F9F9F9F9F0,#`P,#`YF9/3T]/3T]/3W2TG%Q\nM&1D9&1D9&1EQ<7%Q<7%QTM(]F0,#7KN[*BIZWT>EI:4+\"PL+\"V8+\"V9FQ,0Q\nM,<3$,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q\nMQ&8+1]_?>GHJNUX#F=(94^V+BS0TQ<5G9V=G9V=G9P\\/#V?%-(OM4[`9<=(]\nM`UZ[*BIZ>M^E9C&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F9@L+I4='1T='1T>EI:6E\nMI:6EI0L+\"PL+\"Z5'1]]Z*KN[7EX#`YF9F9F9F9F9F9F9F9F9`P,#`P,#`YF9\nM/3T]/3T]/3W2TM+2<7%Q<7%Q<7%Q<7%Q<7%Q<7%Q<7'2/3V9F0->N[LJ>M]'\nM1Z6E\"PL+9F;$,3$Q,<3$,3&'AS&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'A\\1F\"PL+I4??>EZ9/7$9&5/MBS0TQ<7%9V=G9V=G\nM9\\7%-(M34QD9TCV9`UZ[NRIZ>M]'9C&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F9@L+\nM\"PL+I4??W]_?W]_?W]]'I0L+\"Z6EI:6EI:6E1T??>GHJN[M>7EY>`P,#`P,#\nM7EY>`P,#`P.9F9F9F9F9F9F9F3T]/3T]TG%Q<7%Q<7%Q<7%Q<=+2<7%Q<7%Q\nM<7'2TM(]/9F9`UZ[NRIZWT>E\"PL+9L3$,8>'AX<Q,8>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+I=\\JNP.9/=)Q\nM&5/MBS0TQ6=G9\\7%Q<4T-(OM4[`9<=*9`P->N[LJ>M]'\"V8QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',<3$9F9F9@L+I:5'1T??>GIZ*BJ[N[N[NRIZ>M_?W]_?W]]'1T='1T??\nMWWHJ*KN[N[M>7EY>7EY>7EY>7@,#F9F9F9F9`P,#`P.9F9F9`YF9F9D]/=+2\nMTM+2TG%Q<7%Q<7%Q<7%Q<=+2TM(]/9F9`P->N[LJ>M]'I0MF9L0QAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX<QQ&:EWWJ[7@,]TG$94^WMB\\7%9V?%Q30TBXOM4[`9<=(]F9D#7KLJ>GI'\nMI0O$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<Q,<3$Q&9F\"PL+\"Z6E1T??>BHJN[M>`P,#7EY>`P->\nM7EZ[NRHJ*BHJ*BHJ>GIZ>BHJN[M>N[N[N[N[N[N[N[N[*BHJ*BJ[N[N[NUY>\nM7@,#`P,#`P,#`P,#`YF9F9D]/3W2TM+2<7%Q<7%Q<7'2TM(]/3T]/9D#`UZ[\nMNRK?1Z5FQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX<Q9J7?>BJ[`YD]<1FP4^V+BS0T-(N+[5-34[`9\nM<=+2/9D#7KLJ>GK?1PMFQ(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q,3$Q,1F9@L+I4='W]]Z*BJ[\nM7EY>`P.9/3T]F9F9F9F9F9F9`UY>7EY>N[N[N[N[NRHJ*BJ[*BJ[*BIZ>GHJ\nM*GIZW]_?W]_?W]_?>GIZ>BHJN[N[7EY>7EY>N[M>7@,#`P,#F9D]/3T]/=+2\nMTM)QTM+2TCT]/3V9`UZ[NRIZWT>EI0MF,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\0+I4??>KM>7@.9TG$9\nML+!34U-34[\"P&1EQ<=+2/9D#`UY>*GI'I:4+9L2'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$9F9F\nM\"PL+\"Z6E1T??>BJ[NUX#F9D]TM+2TM+2<7%Q<7%QTM+2TM+2TM(]/9F9F9F9\nMF0,#`P,#7EZ[NRHJ>GIZ>M_?1T='1]_?1T='1T='1T='WWIZ>BHJ>GHJ*BIZ\nM*BJ[N[N[NUY>`P,#F9F9F9F9F9F9F9D]/3V9F0->7KN[*GK?1T>E\"V;$AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMQ&8+I4??>BJ[7@.9/=)Q&1FPL!D9&7%QTCT]F9F9`P->NRK?I0MFQ,3$AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>',<3$9@L+I:5'W]]Z>GHJN[M>7@.9/=+2TG$9&1D9&;\"PL+\"P\nML!D9&1FPL!EQ<7'2TM+2TM+2/9D#`P,#7EZ[NRHJ>M]'1Z6E\"PNEI:5'I:4+\nM9F8+I:5'1T??W]_?W]]Z>GHJ*BHJ>GIZ*BHJN[N[7EY>7EY>7@,#7@,#`UY>\nMN[N[NRHJ>M]'I:4+9L0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>',68+1]]Z*KM>`YD]TG%Q<=+2TM(]/3V9F9F9F0->\nMNRIZ1PMFQ#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F\"Z5'W]]Z*KN[N[N[NUX#F9F9\nMF9D]/=)Q<1D9L+!34U-34U-3L%-34^U34[`9&1D9<7%QTM+2/9D#7EZ[*BIZ\nM>M]'I0MFQ#$Q,3$QQ,0Q,3'$Q&9F9@L+\"Z6E1]_?>GIZ>GIZ>M_?1T='1T??\nMWWIZ>GIZ>GHJ*BHJ*BIZ>GIZW]]ZW]_?1Z4+Q,0QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ`M'WRJ[7EX#F9D]/3V9\nMF9F9`P,#`P,#`P->7BIZWT<+Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\"Z6E1T??\nMWWIZ>BHJN[N[NUX#F9F9F9F9F3T]TM)Q&1D9L+\"PL+\"PL+!34U-34U-3L+\"P\nM&1EQ/9D#7@->NRHJ>GIZW]]'I0O$,3&'AX>'AS'$Q,0Q,3'$Q&9F\"PL+\"Z5'\nMW]]Z>M_?WT='I:6E\"PL+\"PL+I:6EI4='W]_?W]]'1T>E\"PL+\"PL+9L3$Q#&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS%F\nMI4=Z*KM>7@,#`P,#7EY>7EY>7EY>7EY>7KMZWT>E\"\\0QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS'$9@NE1T??WWIZ>BHJ*BHJ*BHJ*KN[NUY>`P,#`P,#F9D]TG%Q<1D9\nM&1D9L+\"PL+\"P&1EQTM+2TCV9F0->N[N[*BIZ>GIZ>M_?1Z4+\"\\0QAX>',<3$\nM9F9F9F9F9@L+\"PL+9F8+\"T='W]_?1Z6E\"PMF9L0Q,3$Q,<3$Q,3$Q,1F9F9F\nM9L3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'Q&:EWWHJ*KN[N[N[N[N[N[N[N[N[N[N[NRIZWT>E\"V;$\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX<Q9@NEI4='1T??W]_?>GIZ*BHJ*GIZ*BHJ*BJ[\nMN[N[NUY>`YD]/3W2TM+2TM+2<7%Q<7'2TM+2/3V9F0->7EY>NRHJ>M]'1T='\nMW]_?1T='1T>EI:4+\"PL+\"PL+\"PL+\"PL+9F9F9F8+\"Z6EI:6EI:6E\"PMFQ,0Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9J5'WWHJ*BHJ*BHJ*BHJ*BHJ\nMN[N[NRIZ>M^E9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',68+I4??>GHJ>GIZ\nM*BJ[N[N[N[N[N[LJ*BHJ*KN[7EX#`YF9/3T]/=+2TM)Q<7%Q<7%Q<=(]F9F9\nM`UY>N[LJ*BIZW]]'1Z6E1T??W]_?W]_?W]_?W]_?WWIZWT='I:4+\"V9FQ,1F\nM9F9F9F9FQ,1F9F9F9L3$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AS'$9F9F9F;$Q#$QQ,0Q,8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS%F\"Z7?\nM>GIZ>GIZ*BHJ*BHJ*KN[*BIZWT>E\"V8QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<QQ&8+\"Z5'1]_?>GHJN[N[7EY>7EY>7EY>7EY>7EY>7@.9F3T]TM)Q\nM<7%Q<7%Q<7%Q<=(]/9F9`UY>N[LJ*BIZ>GK?W]]'1T='1]_?>GIZ>GIZ*BHJ\nM*BIZWT='I:6E\"PL+9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@L+I:6EI:4+\nM\"V9F9F9F9L3$Q#$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>',68+1]_?>GIZ>GIZ>GIZ>BHJ*GK?WT>E\"V;$,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F9@NEI4='WWHJN[M>`P,#`P,#\nMF9F9F9F9F9F9/=+2<7%Q&1D9&1D9&1EQ<=(]F0->7KN[*BIZ>GK?WT='I:6E\nMI:6EI4='W]]Z>GIZ>BHJ*BIZ>M]'I0MF9F;$Q#$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS'$9@L+I4='W]_?1T>EI:6E\"PL+\"PL+\"V9F9L3$Q#$Q,3$QAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS%F\"T='W]_?W]_?W]_?WWIZ>M_?1T>E\nM\"V;$,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q&8+\nM\"Z5'1]]Z*KM>`P.9F9D]/3T]TM+2TM+2TG%Q<7%Q&1D9&1D9L+\"P&1EQTCT]\nMF0->NWK?W]]'1Z6E\"PL+\"V9F9F9F\"PNE1T='1T??WT='I:6EI0MFQ#&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+I4='1]]Z>GIZW]_?WT='1T='1T='\nM1Z6EI0L+\"PMF9F9FQ#$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9@NE1T='1T='\nM1T='1]_?WT='1T>EI6;$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,<3$Q,3$Q,3$Q,0Q,8>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',<1F\"Z5'W]]Z*KM>7@.9/3W2TM)Q<7%Q<7$9&1D9&1D9\nML+`9&1FPL+`9&7%QTCT]/9D#NRIZWT='I0MF9L3$,3$Q,3$Q,3'$Q,3$Q&9F\nM9F9F9L3$,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$9F8+\"Z5'1]_?\nM>GIZ>GIZ>GIZ>GIZ>GIZW]_?WT='1T='1Z5'1Z6E\"PL+9F;$Q#$QAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',<1F\"Z6EI:6EI:5'1T='1T='I:6EI0MFQ#$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$Q,1F\nM\"PNEI4='1T='1T>E\"V;$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9@NE1]]ZNUX#`YF9/3W2\nMTM+2TG%Q<7%Q<7$9&;\"PL+\"PL+`9&1EQ<=+2/9F9`[LJ*GK?WT>E\"V9FQ#&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,3$Q,<1F9@NEI:6E1T??W]]Z>GHJ*BHJ*BHJ*BHJ*BHJ*BIZ>GIZW]_?W]_?\nM1T='1T>EI0L+9L3$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS%F9@L+I:6EI:6EI4='1T>EI:6EI0MFQ,0QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS'$Q,0Q,<3$9@NE1T='W]]Z>GIZ>GIZWT>EI0L+\"PMFQ,0QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q\nMQ&:E1WHJNP,#F9F9/=)Q<7%Q<7%Q<7%Q<7%Q<7%Q<7%Q<7%Q<=+2/3V9`UZ[\nM*BK?1Z6E\"V;$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>',<3$9F9F\"PNEI4='1T='W]_?W]]Z>BHJN[N[N[N[\nMN[M>7KN[N[N[*BHJ*BHJ*BIZ>GK?W]]'1T>E\"PMFQ#&'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+I:6EI:6E1T='1T>E\nMI:6EI:4+9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS$Q,3'$Q,1F\"Z5'W]_?>GHJ*KN[N[N[NRHJ*GK?W]]'\nMI0MF9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS'$9@NE1]]Z*KM>7@,]/=+2<7$9&1D9<7%Q<7'2TM+2\nMTM+2TM(]/3V9F0->NRIZWT>E\"PMFQ#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<QQ,1F9F9FQ,3$,3&'AX>'AX>'AX>'AX>',<3$9F8+\"Z6E1T='W]_?\nMW]_?W]_?>GHJ*KN[NUY>7EY>7EX#7EY>7EY>N[N[N[N[N[LJ*BIZ>GIZ>M]'\nMI0MFQ(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\nM\"Z6EI:6EI:6EI4='I:4+\"PL+9L3$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,3$9@NE1]]Z*KN[N[N[NUY>\nM`P,#`P,#`UY>NRIZ>M]'I0MF9L3$Q,3$Q,3$Q#&'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,1F\"Z6E1]]Z*KN[7EX#`YF9\nM/3W2TG%QTM+2TCT]TM+2TCT]F9D#`P->NRHJ>GI'I0MF9L0QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'Q&8+\"PL+\"PMF9F9F9L0QAX>',3$Q,<3$\nMQ,3$9@L+\"Z6E1T??W]]Z>GIZW]_?>GIZ>BHJN[M>7EY>`P,#`P,#`P,#`P->\nM7EY>7EY>7EZ[N[N[NRHJ>M]'I6;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS'$9@L+I:6EI:6EI:6EI:6E\"V9FQ,3$,3$QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9F8+I4='\nMWRJ[7@.9F9F9F9F9F9F9F9F9F9F9F0->NRIZ>M_?1T>EI0L+\"PL+\"V9FQ#$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,3$9F8+\nM\"Z6E1T??>BHJ*KM>7@.9/3T]/3T]/3T]F9F9F3T]/9D#7EZ[*GK?WT='1Z4+\nM9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q`NEI:6E\nMI:6EI:4+9F;$Q,3$9F9F9F9F9@L+I:5'1]_?WWIZ>GIZ>GIZ>GIZ>GHJ*KN[\nMNUY>7@,#`P.9F9F9F9D#`P,#`P,#`P,#7EY>7EY>N[LJ>M]'I0O$,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&9F9@L+\"PNEI:6EI:4+\"V9F9L3$\nM,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS'$9@NEI4??>KM>`YD]/3W2TM+2TM+2TM+2/3T]/3T]F0->N[LJ>GK?\nMWT='1T='I:6E\"V9FQ,0Q,<3$Q,3$Q,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<QQ,1F9@L+I:5'WWIZ*BJ[NUY>`YF9F9F9/3T]F0,#7EY>\nM7KN[*GK?W]_?WT='\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AS'$9@L+I4??W]_?W]_?W]]'I:4+\"PL+\"PL+\"PNEI:5'1]_?>BHJ\nMN[LJ*BHJ>GIZ>GIZ>BJ[N[M>7@,#`P.9F9F9F9F9F9F9F0,#`P,#`P,#`P,#\nM`P,#7KN[*M]'I0MF,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F9@L+\"PL+\nM\"PNEI:4+\"V9F9F;$,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>',<3$9@NE1T=Z*EZ9/=+2<7%Q&1D9&1D9&1D9<7$9\nM<7'2TM(]/9D#`UY>NRHJ*BHJ>GK?WT='I:6EI:6EI4='1Z6E\"V;$,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>',3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ&8+\"Z5'W]]Z*BJ[N[M>\nM7@,#F9F9F9D#`P,#7EZ[*GK?1Z6EI:6EI:6E\"\\0QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@NE1]_?>BHJ*BHJ*BHJ*GK?WT='\nM1T='1Z5'1T??W]]Z>BHJN[N[N[N[*BHJ>GIZ>BHJ*KN[7EX#`P.9F9F9F9F9\nM/3V9F9F9F9F9F0,#`P.9F9F9F0,#7EZ[*GK?1PMFQ#&'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS'$9F8+\"PL+\"PL+I:4+\"V;$Q,3$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$9@NE1]]ZNUX#/=(9L+!3\nM[>WM[>WM4U-34[\"PL!D9&1EQ<=+2/9F9`P,#`P,#7KN[N[N[*BHJ>BHJ*BHJ\nM*GK?WT>E9L0Q,3&'AX>'AX>'AX>'AX>'AS'$9F9F9F;$,3&'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3$Q\nM,<1F\"PNE1T??W]]Z>BHJN[N[7EY>7EZ[N[LJ*BHJ*GK?I0L+9F9F9F9FQ#&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3'$9F8+I4??\nM>GHJN[N[N[N[N[LJ*GIZ>GIZ>M_?W]]Z>GIZ*BHJN[N[NUY>N[N[*BHJ*BHJ\nM*BJ[NUY>`P,#F9F9F9D]/3T]/3V9F9F9F9F9F9D#`YF9F9F9F0,#7KN[*GK?\nM1Z4+Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX<QQ&8+\"PL+\"Z6EI:6E\"PMFQ,3$Q,0Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F9@NE\nM1WHJ7@.9/=(9L%/M[8N+-#0T-#2+BXOM[5-34U.PL+`9<7'2TCT]/9F9F0,#\nM`UY>7EY>7EX#7EY>7KN[*GK?1Z6E\"PMF9L0Q,8>'AX>'AS$QQ&9F\"PNE1T>E\nMI0L+9F;$Q,3$Q,0Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS$Q,3'$9F9F\"PL+\"Z6E1T??WWIZ>BIZ*BHJ*GIZ>GIZ>M_?\nM1Z4+9F9F9F9FQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q,<3$Q&9F\"Z5'WWIZ*KM>7EY>7KN[N[N[NRHJ*BHJ>GIZ*BHJ*BJ[\nMN[M>7KN[7EY>N[N[N[N[N[N[NUY>7@,#`YF9F9F9/3T]/3T]/3T]/3T]/9F9\nMF0,#`YF9F9F9`P->7KLJ>GI'I0MFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<0+\"Z6EI:6EI:6EI0MF\nM9F;$Q,3$Q#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',<1F9@NEWWJ[7@,]TG$94^V+BS0TQ<5G9\\7%-#0TBXN+B^WM[5-3\nM4[`9&7%QTM+2/3T]F9D#`P,#`YF9F9D#`P,#7KN[*GIZW]]'1T>EI:6EI:4+\nM\"PL+\"PNEI4='W]_?W]]'1T>EI:4+\"PMF9L3$Q,3$Q,0Q,3$QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS&'AX<Q,3$Q,3&'AX<Q,3$Q,<3$Q,1F9@L+9F9F9@NEI4='\nMW]]Z>GIZ>GIZW]]'1T='I0MF9F9F9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F9F8+\"Z5'WWHJN[N[N[N[N[N[\nMN[N[N[LJ*KN[NRHJ*KN[NUY>7EX#`UY>7EY>7KN[NUY>7EX#`P,#`YF9F9D]\nM/3T]/3T]/3T]/3T]/3T]/9F9F9F9F9F9F9D#`UZ[NRIZWT='\"V;$Q#&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS%F\nM\"PNEI:6EI4='I:4+\"V9F9F;$Q,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',<1F\"PNEWWJ[7@.9TG$94U/M[8LTQ6=G9P]G\nMQ<7%-#0TBXN+[>WM4U.PL+`9&7%Q<7'2TM(]/9F9F3T]F9F9`P,#`P->7KN[\nM*BHJ*BIZ>BHJ*GIZ>GK?W]_?W]_?>GIZ>GIZ>GIZW]]'WT='I:4+I0L+\"PL+\nM\"V9FQ,3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',3$Q,3$Q,3&'AX<Q,3'$Q,0QAX>'AX>'AX<Q\nMQ,3$9F9FQ,1F9@L+\"Z6EI:5'1T='1T='1T>EI0L+9F;$Q,3$Q&9F9L0QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q,1F\nM\"PL+I4??>GHJ*BHJ*KN[N[N[N[N[N[LJN[N[N[N[N[M>7EX#`P.9F0,#`P->\nM7EY>7@,#`P,#`P,#F9F9/3T]/3T]/3T]/3T]/3T]/3T]/3V9F9F9F9F9F0,#\nM7EZ[*GK?1Z4+9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<Q9@NEI:6EI4='1T>EI0L+\"V9FQ,3$Q#$Q,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F\"PNE1]\\JNP.9/=)Q\nM&;!34^V+BS3%Q6=G9V?%Q30TBXN+B^WM4[\"PL+\"P&1D9&7'2TM(]F9D#`P,#\nMF0,#`P->7EY>7EY>7EY>7KN[N[N[7EY>7EZ[N[N[N[LJ*BHJ>BHJ*BHJ*BIZ\nMW]_?WT='1T='1Z6EI0L+9F;$Q#$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q,3&'AX>'AS$Q\nMQ,3$Q#$QQ#$Q,3$QQ,1F\"PL+\"PL+I0L+\"PL+\"PL+\"V9F9@L+\"Z5'1T='I:6E\nM\"PMF9F9F\"PL+\"PL+\"PMFQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX<Q,<1F9F8+\"Z5'1]]Z>GHJ*BHJ*BJ[N[N[N[N[N[N[N[N[\nMN[M>7EY>`P,#F9F9F9D#`P->7EX#`P,#`P,#`YF9F9D]/3T]TM+2/3T]/3T]\nM/3T]/3T]/3T]F9F9F9F9F0,#7EXJ>M]'I0MFQ,0QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',68+I:6EI4='W]]'1Z6E\"PMF9L3$\nMQ,3$Q,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX?$9F8+\nM\"Z5'WWHJNUX#F3W2<1FP4U/M[8LT-,7%9V=GQ<7%-(N+[>U34U.PL+`9&1D9\nM&7%QTM(]F9D#`P,#`YF9`P,#`UY>7@,#`P,#`P,#`P->`P,#`P,#`P,#7EY>\nMN[N[*BHJ*BHJNRHJ>GK?W]_?1T='I:6E\"PMF9L3$Q#$Q,8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,3$Q,8>'AX>'\nMAX>'AX<Q,8>'AX>'AS$Q,3$Q,<3$9F;$Q,1F9@L+\"PL+\"PNE1T='1T='1Z6E\nMI:4+9F8+\"Z5'1T='1T>EI:6EI:5'1T='1]_?WT='I0O$AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<3$9F8+\"Z6E1]_?WWIZ>BHJ\nM*BHJN[N[N[N[N[N[N[N[N[M>7EY>7@,#`YF9F3V9F9D#`P,#`P,#F9F9F9F9\nMF9F9F3T]/3W2TCT]/3T]/3T]/3T]/3V9F9F9F9F9F9D#`P->7KLJ>D>E\"V;$\nMQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'A\\1F\"Z6EI:5'\nM1T='1Z6EI0L+9F9F9F9FQ,3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AS'$Q&9F\"Z6E1]]Z*KM>`YG2<1D9L%-3[>V+BS0TQ<7%Q<7%-#2+\nM[>U34U.PL+`9&1EQ<7'2TM+2TCT]/3T]F9F9F9F9F9F9`P,#`YF9/3T]F9F9\nM/3T]F3T]/9F9F9D#`UY>7EY>7EY>7EY>N[LJ*BIZW]]'1T>EI0MF9L0Q,3$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>',3$Q,3$Q,8>'AX>'AX>'AX>'AX<Q,3$Q,3$Q,<1F9F8+\"Z6EI:4+\"PMF\nM9F8+\"Z6E1T='1]_?1T='1Z6EI0L+\"PL+I:6E1T='1T='1Z6E1T??>GIZ>GK?\nM1Z4+\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$\nM9@L+\"PL+I4??W]]Z>GIZ>BHJ*BJ[N[N[N[N[N[N[NUY>7EY>7@,#`YF9F9F9\nM/3V9F9F9F0,#`YF9F9F9/3V9F9F9F3T]/3T]/3T]/3T]/3T]/3T]F9F9F9D#\nM`P,#`P,#`UZ[NRIZWZ4+9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AS'$9@NEI:5'1T='I:6E\"PL+\"V9F9F9F9L3$,3&'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',<1F\"PL+\"PNE1T??>BJ[NUZ9/=)Q&;!34^WM\nMBXN+-#0T-#0T-(OM[5-3L+\"PL+`9L+`9&1D9&7%QTM+2TM+2TM(]/3T]/3T]\nM/3T]F3T]/=+2TM+2TM+2TM+2<=+2/3T]F9D#`P,#`P,#`P,#`P->7KN[NRIZ\nMW]]'1Z4+\"V;$Q#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q,8>'AX<Q,3$Q,<3$Q&9F9F9F\nM\"PL+\"PL+I:5'1T>EI:6E\"PL+\"Z6EI4='1]_?1T='1]_?W]]'1T??W]]Z>GHJ\nM*BHJ*GIZ>BHJ>GIZ>M]'I:4+\"V9FQ#$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,3&'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<Q,<1F\"Z6EI:5'1]_?W]_?WWIZ>GHJ*KN[N[N[N[N[\nM7EX#`P,#`P,#`P.9F9F9F9D]/9F9F9D#`P,#`YF9F3T]F9F9/9F9F9F9F9F9\nMF9D]/3T]/3T]/9F9F0,#`P,#`P,#`UY>7KLJ>GK?1Z4+9L0QAX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AS'$9@NEI:6EI:6EI:4+\"V9F9F9F9F;$Q,3$,3&'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ,1F\"PNEI:5'1]_?WWHJ\nMN[M>`SW2<1FP4U/M[8N+BS0T-#2+BXOM[5-3L+\"PL+\"PL+\"PL+\"P&1D9&7%Q\nMTM+2TM+2TM+2TM+2TCT]/=+2TM+2<7%QTM+2TG%Q<7%QTM(]F9F9F0,#`P.9\nMF9F9F0,#7EY>7EY>NRHJ>M]'I0MF9L0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3$Q\nM,3'$Q,1F9F9F9F9F9F9F\"PL+\"Z6EI:6E1T='1T='1T='1T>EI4='W]]Z>BHJ\nM*KN[*BHJ*BHJ*KN[7KN[*BHJN[M>N[N[NRHJ>GK?1Z4+\"V9F9F;$,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAS$QQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$9@NEI:6E1T??W]_?\nMW]_?>GIZ>GHJ*KLJN[N[N[M>`P.9F9D#F9F9F9F9`P.9F9F9F9F9F9D#`P.9\nMF9F9/3V9F9F9F9F9F9F9F9F9F9F9F9F9/3V9F9D#`P->7EY>7EZ[N[N[*BIZ\nMWT>E\"PMFQ(>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@NEI:6EI:4+\"PL+\"V;$\nMQ,3$Q,3$,<0Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,<1F\nM9@L+\"Z6E1T??W]]Z*KM>`SW2<1D9L%/MBXN+BXLT-(N+B^WM[>U34U-34U-3\nM4U.PL+\"PL+`9&1EQ<7%Q<7%QTM+2TM+2TM+2TM+2TM+2TM+2/3W2TM+2TM+2\nMTM(]F9F9F9F9`YF9F9F9F9F9F9D#`P,#`P->NRHJ>M]'I0MFQ#&'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AS$QQ,3$Q,3$9F8+\"V9FQ,3$Q&9F\"PL+\"Z6EI4='1]_?W]_?\nMW]_?W]]Z>GIZ>GHJN[M>7EX#`P,#`UY>7EX#`P->7KN[N[M>7EZ[N[N[*GK?\nM1T>E\"PMF9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,3'$9F8+\"Z6E1T='1]]Z>GK?W]]Z>BHJ*BHJN[N[NUY>7@,#F9F9F9F9F3T]\nM/9F9`YF9F9F9F9F9F9F9F9F9F3T]/3V9F9F9F9F9F9F9F0,#F9F9F9F9F9D#\nM`P->7KN[N[N[NRHJ*BHJ>M]'I0MF9L3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$9@L+\nM\"PL+I:4+\"PL+\"V9FQ#$Q,3$Q,3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>',3'$Q&9F9@NE1T??WWIZ*KM>`YD]TG$9L%/MBXN+BS2+BXN+\nMB^WM[5-3[5-34U-34U-34U-3L+\"PL+`9&1D9&1EQ<=+2TM+2TM+2TM+2TM+2\nMTM(]/3T]/3T]/3T]/3T]/3V9F9F9F9F9`P,#F9F9F9F9F9F9F9F9F0->N[LJ\nMWT>E\"V;$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,1F9F8+9F9F9F9F9@L+\"PL+\"Z6E\nMI4='W]_?W]_?W]]Z>GHJ*BHJ*BJ[N[N[7EY>`P,#`YD#`P,#`UY>7EY>7EY>\nM7KN[*BJ[N[N[N[N[NRHJ>GK?WZ4+\"V;$,3&'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX<QQ,1F\"PNEI:5'1T='1]_?>GIZ>GIZ*BHJ*BHJ\nMN[N[7EY>`P.9F9F9F3T]/3T]/9F9F9F9F9F9F9F9F9F9F9F9/3T]/3T]/9F9\nM`P,#`P,#`P,#`P,#`P,#7EY>7EZ[*BHJ*BHJ*GIZ>GK?1Z4+\"V;$Q#&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX<Q9F8+\"PL+\"PL+\"V9F9F9FQ,0QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,3'$9@L+\"Z5'WWIZ*BJ[NUX#/=(9\nML%/M[8N+-#0T-#0TBXN+BXN+[>WM[>U34U-34U.PL+\"PL%-3L+\"PL+`9&1EQ\nM<7'2TM+2TM+2<7%Q<7'2TM+2TM(]F9F9F9D]/3T]F9D]F9F9F9F9F9F9F9F9\nMF9F9F9F9/3V9F0->NRIZWT<+9F;$,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$QQ&8+I4='1]_?\nMW]_?W]]'1T='1T??W]_?W]]Z>BHJ*BJ[N[N[7EY>`P,#`P,#F9F9F9D]F3T]\nMTM(]/3V9F0,#`P,#7@,#`P,#`UY>7EY>7EY>7KN[*BIZWZ6E\"V;$Q,0QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ&9F9@NEI:6E\nMI4='1T??>GIZ*BHJ*BHJ*KN[N[N[7@,#`YF9/3T]/3T]/3T]/3V9F9D]/9F9\nMF9F9F9F9F9F9/3T]/3V9F9D#`UY>7EY>7EY>7EY>7EZ[N[N[*BIZ>GIZ>M_?\nMW]_?WT='I0MFQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+\"PL+\"PMF9F9F9F;$Q,0Q,8>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3$QQ&8+I:5'\nM1T??>BHJNP.9/=)Q&5/M[8N+BS0T-#0T-#0T-#0T-(N+BXN+[>WM[>WM[>WM\nM4U-34U-34U-3L+\"P&7%Q<=+2TM+2TG%Q<7%Q<=+2TM+2TCV9F3T]/3T]/9F9\nMF9F9F9F9F9F9`P.9F9F9F9F9/3T]/3V9`UZ[*GK?1Z4+9F;$Q,3$,3$QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QAX>'AX>'AX>'AX>',3'$\nMQ,3$Q&9F\"Z6E1T??W]]Z>BJ[N[N[N[N[N[N[N[N[*BHJN[M>7EX#`P.9F9D]\nM/3T]TM)Q<7$9&7%Q<1D9&1D9&1D9<7%Q<7'2TM+2TG%Q<=(]F0->7EY>7KN[\nM*BIZWT>E\"V;$Q,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AS'$Q&9F\"PL+\"Z6EI4='1T??>GIZ>BHJ*BHJN[N[NUY>7@,#F9D]\nM/=+2/3T]/3T]/3T]/3T]/3V9F9F9F9F9F9D]/3T]/9F9F0,#7EY>7KN[N[N[\nMN[N[*BHJ*GIZW]]'1T='1T='1T='1Z6E\"V;$Q#$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+\"PL+\"V9F9L3$\nMQ,3$Q,3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<Q,<1F\"Z6E1]]Z>BHJNUX#F3W2<1FP4U/M[8N+-#0T-#0T-#0T-#0T\nM-#0T-#0TBXN+BXOM[8N+BXOM[>WM[5-3L+`9&1EQ<7%Q<7%Q<7%Q<=+2TM+2\nM/3T]/9F9F3T]/9F9F9F9F9F9F3T]/3T]/9F9F9F9F3T]/3T]/9D#7KLJ>M_?\nM1Z4+\"V9F9F;$Q,0Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q,<3$Q,3$Q,3$Q,3$Q,3$\nMQ,3$Q&9FQ,3$Q&;$Q,3$9F8+\"Z5'1T??WWIZ*KN[7@,#`YF9/3T]/3V9F9F9\nM`P,#`P,#F9F9/3T]TM+2<7%Q&1FPL%-34U-34^WM[>WM[>WM[>V+B^U34U.P\nML+\"PL+`9&7%QTM(]/9D#7KN[*BIZWT<+9F9FQ,3$Q#$QQ,0Q,3$QAX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS'$Q,1F9F8+I:6E1T='1]_?>GIZ\nM*BHJ*BHJ*KN[NUY>`P.9/3T]TM+2TM(]/3T]/3T]/3T]/3V9F9F9F9F9F9D]\nM/3T]/9F9`P->7EY>NRHJ>GIZ>GK?>GK?WT>EI0NE\"PL+\"PNEI:6EI0L+9L0Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,<1F9F8+9F;$Q,3$Q,0QQ,3$,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&8+I4=Z*KN[7EX#`YD]TG$9L+!34U/M\nM[8N+-#0T-#3%Q<7%Q<7%9V?%Q<4T-#0T-#0T-#0T-#2+B^WM[5-3L+\"P&1D9\nM&1D9&1D9<7%Q<7%Q<7'2TM(]/3W2TCT]/3T]/3T]/3T]/3T]/3T]/9F9F9F9\nM/3T]/9F9`UZ[NRHJ>M_?1Z6EI0L+9F9F9F9F9L3$,3$Q,8>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,<3$Q&9F9F9F\nM9@L+\"PL+\"PL+I0L+\"PL+\"PL+I:6EI0L+\"V8+\"PL+I4??WWIZ*KN[7EY>`YF9\nMF3T]TM)Q<7%Q<7%Q<7%QTM+2/3W2TM+2<7%Q&1D9&;\"P4^WMBXN+BXN+BS0T\nM-,7%Q<7%Q<7%Q<7%Q<4TBXOM[5-34U-3L+`9&1EQ<=*9`UZ[*GK?1Z6EI0L+\nM9F8+\"PL+9F;$Q,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$Q\nMQ,1F9@NEI4='1]_?W]_?>GIZ>GIZ*BHJ*BJ[N[M>`YF9/3T]TM+2TM(]/3T]\nM/3T]/3T]/3V9F9F9F9F9/3T]/=(]/9D#`P->7KLJ>GK?1T>EI:6E1T>EI0L+\nM9F9FQ,1F9F8+\"PL+\"V9FQ#&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>',<1F9F9F9F;$Q,3$,3$QQ#$QAX>'AX>'AX>'AX>'AX>'\nMAX>'AX>',3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<1F\"Z5'WRHJN[M>\nM`P.9/=)Q&1FPL+!34U/MBXN+-#3%Q<7%9V=G9V=G9V?%9V=GQ<7%Q6=GQ<4T\nMBXOM[5-34U-34U-3L+\"PL+\"P&1D9&1EQ<7%Q<7'2TM+2TM+2TM+2TM+2TM(]\nM/3T]/3T]/3V9F9F9F9F9F9F9`P,#7KN[*BIZ>GK?1T='1T='I:4+\"PL+9F9F\nMQ,0Q,3$Q,3$Q,3$Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,3$QQ,1F9F9F\"PL+\"PNEI:6EI4='1T='I:6EI:6EI4='1T='1Z6EI:5'W]]Z\nM*BJ[7EY>`P.9F9D]/3W2TG%Q<1D9L+\"PL+\"PL+\"PL+`9&1D9&1FPL+\"PL%-3\nM4^V+-,7%Q<7%9V=G9V=G#P]G9V=G9V=G9V</#V?%Q<7%-#2+BXN+B^WM4U.P\nM&1EQTM(]F0->NRK?WT='I:4+\"PL+9F9FQ#$QAX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX<QQ,1F\"Z6EI:5'1]_?W]_?W]_?W]]Z>GHJ*BHJ\nM*KM>`YF9/=+2TM+2TCT]/3T]/3T]/3V9F9F9F9F9F9D]F3T]/3T]F9D#`UY>\nMNRIZWT>E\"PMF9F9F\"PMFQ,3$,3$Q,3$QQ,1F9F9F9L0QAX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',<3$Q&9F9F9FQ,3$Q#$Q,3$QAX>'\nMAX>'AX>'AX>'AX>'AX>'AX>',3$Q,3&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nM,<1F\"Z6E1]]Z*BJ[7@.9/=+2<1D9&;\"PL%-34^V+BS0TQ<7%Q<5G9V=G9V=G\nM9V=G9V=G9V=G9V?%Q32+B^WM[>WM[8OM[5-3L+\"PL+`9&1D9<7%Q<7%Q<7%Q\nM<7%Q<7%Q<7%Q<7'2TM+2TM+2TCT]/3T]/9F9F9F9F0,#`P->7KN[*BHJ>GIZ\nMW]_?WT='1T>EI0L+\"V9FQ,3$Q,3$Q,3$Q,3$,3&'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX<Q,<3$9F9F\"PNEI:6EI:6EI4='1T='1T='1T='1T??\nMW]_?WWIZW]_?W]_?>BJ[7@,#F9F9/3T]/3W2<7$9&1D9L+\"P4U-34U-34U-3\nM4^WM4U-34U-3[>WMBXN+-#3%9V</#P\\/3$Q,3$Q,3$Q,3$Q,3$Q,3`\\/#P\\/\nM#P\\/9V?%Q<7%-#0TBXOM4[`9&7'2/9D#7KLJ>GK?1T>E\"PMFQ,0Q,3&'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<QQ&9F\"PL+I:5'\nM1T='1T='1T??W]]Z>GIZ*BHJNUX#`YD]/=+2TM+2/3T]/3T]/3V9F9D#`YF9\nMF9F9F9D]/3T]/3T]F9D#7KLJ>M]'I0L+9L3$Q,3$Q#$QAX>'AX>'AX<Q,3'$\nMQ,0QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS$QQ,3$Q,1F\nM9L3$Q,0Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>',3$Q,3$Q,8>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AS'$9@NE1T??>BHJN[M>`YD]TG$9&;\"PL%-34^WMBXN+\nM-#0T-#0TQ<7%Q<5G9V?%9V</#P\\/9V=GQ<4T-#0T-#2+BXN+B^WM[5-34U-3\nML+`9&1D9&1D9&1D9&1D9<7%Q<7%Q<7%Q<7%Q<7%Q<7'2TM+2/3T]/3T]/9F9\nMF9D#`UY>N[N[*BHJ>GIZW]]'1]_?WT='I:4+\"PL+\"PL+\"PL+9F9F9F;$Q#$Q\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3$QQ,1F9F8+\"PL+\"Z6EI:6E\nMI4='1T='1T='1T??W]_?WWIZ>GIZ>GIZ>GHJ*KM>`YF9/=+2<7$9&1D9L+\"P\nM4U-3[>WM[>WM[>WM[>V+BXLT-#0T-#0T-#0TQ<5G9V</3$Q,3$Q,3$Q,3$Q,\nMB8F)3$Q,3$Q,3$Q,3$Q,3$Q,3$P/#V=G9\\7%-#2+B^U3L!EQTCV97KMZ>M_?\nM1T>EI0MFQ,0Q,8>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>',3'$9F9F\"Z6EI:6EI4='1]_?W]_?>GIZ*BJ[7@,#`YD]TM+2\nMTM(]/3T]/3T]/9F9`P,#`P,#`YF9F9F9/3T]/3V9`UZ[NRIZWT>E9F;$,3$Q\nM,8>'AX>'AX>'AX>'AS&'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX<QQ,0Q,3'$Q,3$,3$Q,<0QAX>'AX>'AX>'AX>'AX>'AX>'AX<Q,3'$\nMQ#$Q,3$QAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'\nMAX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',3%F9@NE1]]Z>BJ[N[M>7@.9/3W2\n-------- End of part 13 of 14 --------\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11136, "properties": {"category": "comp.windows.x", "text": "From: ethan@cs.columbia.edu (Ethan Solomita)\nSubject: Forcing a window manager to accept specific coordinates for a window\nOrganization: Columbia University Department of Computer Science\nLines: 17\n\n\n\tHi. I'm trying to figure out how to make a window manager\nplace the window where the create window command tells it,\nregardless of what it may think is right. (my application has\nreason to know better)\n\n\tI don't want to set the override-redirect because I do\nwant all the embellishments that the window manager gives, I just\nwant the wm to accept my choice of location.\n\n\tI've tried twm, tvtwm and mwm and they are all\nuncooperative.\n\n\tThanks,\n\t-- Ethan\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11137, "properties": {"category": "sci.crypt", "text": "From: ho@cs.arizona.edu (Hilarie Orman)\nSubject: Re: Licensing of public key implementations\nOrganization: U of Arizona, CS Dept, Tucson\nLines: 6\n\nWith regard to your speculations on NSA involvement in the creation of\nPKP, I find that it fails the test of Occam's butcher knife.  Never\nattribute to conspiracy what can be explained by forthright greed.\n\n\nHilarie Orman\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11138, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: guyd@austin.ibm.com (Guy Dawson)\nSubject: Re: Why VESA Local-Bus ????\nOriginator: guyd@pal500.austin.ibm.com\nOrganization: IBM Austin\nLines: 48\n\n\nIn article <1993Apr15.133138.17369@cc.umontreal.ca>, gregof@JSP.UMontreal.CA (Grego Filippo) writes:\n> Hi fellow netters,\n> \n> I have a question for you... I am gonna buy a 486DX2-66 MHz\n> with VESA Local-Bus. IS the speed benefit that great ? \n> Would it be wise to spend on a local-bus system (HD controller \n> and graphic card) for normal use ( I mean I won't use it for a\n> server !!) ?\n> \n> Also, I read an article from someone ( sorry, I can't remember your\n> name ) and he said that even though you have a local-bus hard-disk\n> controller, your performances won't be that much greater because\n> of the disk's throughtput !!! \n> So what is the use of having a fast bus if the peripherals can't \n> cope with it ???\n\nSomething to bear in mind is what the V in VLB stands for!\n\nV for Video - the origional intention of the bus was to speed up\nthe bus so that large memory to memory transfers would be faster.\nThis is espically useful in transfering data from main memory to\nvideo memory.\n\nSince there are usually 3 VLB slots card makers have been making \ncards to fit in the other two. \n\nHow about an VLB ethernet card? Move the data into the card at\n130 odd MB/s and then wait for it to tickle onto the net at\njust over 1Mb/s.\n\n[ Do do however free the local bus for other cards ]\n\nSome times you need fast busses and sometimes you don't!\n\n> \n> Thank you ...\n> \n> gregof@jsp.umontreal.ca\n> \n> \n\nGuy\n-- \n-- -----------------------------------------------------------------------------\nGuy Dawson - Hoskyns Group Plc.\n        guyd@hoskyns.co.uk  Tel Hoskyns UK     -  71 251 2128\n        guyd@austin.ibm.com Tel IBM Austin USA - 512 838 3377\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11139, "properties": {"category": "sci.crypt", "text": "From: rlglende@netcom.com (Robert Lewis Glendenning)\nSubject: Re: Estimating Wiretap Costs/Benefits\nOrganization: Netcom - Online Communication Services (408 241-9760 guest)\nLines: 13\n\nI am most embarassed that my irrate, intemperate post is still\ncirculating.\n\nI have been chided by experts for my behavior.  I now agree with\nall of them, although some were no more restrained in their\nspeech than I was 8)\n\nI have apologized to Robin Hanson.\n\nLew\n-- \nLew Glendenning\t\trlglende@netcom.com\n\"Perspective is worth 80 IQ points.\"\tNiels Bohr (or somebody like that).\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11140, "properties": {"category": "talk.politics.mideast", "text": "From: jar2e@faraday.clas.Virginia.EDU (Virginia's Gentleman)\nSubject: Re: From Israeli press. Madness.\nOrganization: University of Virginia\nLines: 8\n\nThis post has all the earmarks of a form program, where the user types in\na nationality or ethnicity and it fills it in in certain places in the story. \nIf this is true, I condemn it. If it's a fabrication, then the posters have\nhorrible morals and should be despised by everyone on tpm who values truth.\n\nJesse\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11141, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: e324ngon@credit.erin.utoronto.ca (Ngo  Nguyen)\nSubject: Re: speeding up windows\nKeywords: speed\nOrganization: University of Toronto, Erindale Campus\nLines: 25\n\nIn article <972@thunder.LakeheadU.Ca> djserian@flash.LakeheadU.Ca (Reincarnation of Elvis) writes:\n>I have a 386/33 with 8 megs of memory\n>\n>I have noticed that lately when I use programs like WpfW or Corel Draw\n>my computer \"boggs\" down and becomes really sluggish!\n>\n>What can I do to increase performance?  What should I turn on or off\n>\n>Will not loading wallpapers or stuff like that help when it comes to\n>the running speed of windows and the programs that run under it?\n>\n>Thanx in advance\n>\n>Derek\n>\n>--\n  You can try defraging your disk more often. It definitely will\n help speed things up. A 2 megs smartdrv is also a good idea with\n the amount of memory you have, and use fastdisk (32bit access) if\n you not already. Hope that help..\n\n\t\t\t\t\tN. Ngo\n\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11142, "properties": {"category": "soc.religion.christian", "text": "From: jono@mac-ak-24.rtsg.mot.com (Jon Ogden)\nSubject: Re: Losing your temper is not a Christian trait\nOrganization: Motorola LPA Development\nLines: 26\n\nIn article <Apr.23.02.55.47.1993.3138@geneva.rutgers.edu>, jcj@tellabs.com\n(jcj) wrote:\n\n> I'd like to remind people of the withering of the fig tree and Jesus\n> driving the money changers et. al. out of the temple.  I think those\n> were two instances of Christ showing anger (as part of His human side).\n> \nYes, and what about Paul saying:\n\n26 Be ye angry, and sin not: let not the sun go down upon your wrath:\n(Ephesians 4:26).\n\nObviously then, we can be angry w/o sinning.\n\nJon\n\n------------------------------------------------\nJon Ogden         - jono@mac-ak-24.rtsg.mot.com\nMotorola Cellular - Advanced Products Division\nVoice: 708-632-2521      Data: 708-632-6086\n------------------------------------------------\n\nThey drew a circle and shut him out.\nHeretic, Rebel, a thing to flout.\nBut Love and I had the wit to win;\nWe drew a circle and took him in.\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.526+0000", "event": "documents", "entityId": 11143, "properties": {"category": "talk.politics.guns", "text": "From: lvc@cbnews.cb.att.com (Larry Cipriani)\nSubject: Gun Talk -- State legislative update\nOrganization: Ideology Busters, Inc.\nDistribution: usa\nKeywords: Gun Talk\nLines: 208\n\nApril 19, 1993\n \nAs William O. Douglas noted, \"If a powerful sponsor is lacking,\nindividual liberty withers -- in spite of glowing opinions and\nresounding constitutional phrases.\"\n \nThe legislative scorecard outlined below resulted from subcommittee,\ncommittee, and floor action.  Many important victories, however, come\nfrom coordinating with legislators to ensure anti-gun/anti-hunting\nlegislation is either amended favorably, rejected, or never voted.\nThese quiet victories are no less impressive in protecting our\nfundamental civil liberties guaranteed by the Second Amendment to the\nU.S. Constitution.\n \n  ****\n \nArizona - SB 1233, NRA-supported legislation concerning minors in\ncriminal possession of firearms  passed the House 36-18, is currently\nawaiting action by the Governor.\n \nArkansas - HB 1447, Firearms Preemption Legislation was signed by the\nGovernor making this the forty-first state to pass preemption.\nPreemption had passed twice in previous sessions only to be vetoed by\nthen Gov. Bill Clinton.  HB 1417, mandatory storage of firearms,\namended and then killed in committee.\n \nColorado - SB 42, mandating the storage of firearms with a\ntrigger-lock, killed in committee.  SB 104,  prohibiting the sale of\ncertain semi-auto firearms was killed in committee.  SB 108,\nso-called Colorado Handgun Violence Prevention Act, including a\nprovision for a 10-day waiting period, killed in committee.\n \nConnecticut - Substitute Bill No. 6372, imposing a 6% tax on all\nfirearms, ammunition, and archery equipment killed in Environment\nCommittee.\n \nFlorida - A bill to require a 3-year license at a cost of $150 to own\nor possess semi-automatic firearms with a second degree felony\nprovision (15 years in prison) died in committee along with numerous\nother anti-gun owner bills.  No anti-gun legislation passed in\nFlorida this year.\n \nGeorgia - SB 12, supposed instant check with provision allowing for\nup to a 7-day \"waiting period,\"  defeated in House Public Safety\nCommittee and sent to Interim Study committee.  Mandatory storage\nbill -- SB 247 -- was defeated 39-15 in the Senate.  The same bill\npassed the upper-House 52-2 in 1992.\n \n \nIllinois - HB 90, prohibiting the sale, possession, manufacture,\npurchase, possession, or carrying of certain semi-auto firearms, was\ndefeated in House Judiciary II Subcommittee on Firearms. HB 91,\nmandatory storage legislation, failed in House Judiciary Subcommittee\non Firearms. HB 1550, repeals FOID and makes FTIP, point of sale\ncheck permanent, passed out of Judiciary Committee by a 10-4-2 vote.\nPresently on the calendar for third reading in the House.\n \nSB 40, mandatory storage bill, defeated in committee.\nSB 265, imposing a handgun excise tax, failed in Senate committee on\nRevenue's Subcommittee on Tax Increases.\nSB 272,imposing a tax on all persons engaged in the business of\nselling firearms, failed in Senate Revenue Committee's Subcommittee\non Tax Increases.\n \nIndiana - SB 241, Statewide Firearms Preemption, passed in the Senate\n34-16, and in the House 77-22.  Twelve amendments were introduced on\nthe House floor to SB 241.  Among these amendments were a ban on\ncertain semi-auto firearms, Mandatory Storage, Trigger-Lock, a ban on\n\"Saturday Night Specials\" (Similar to 1988 Maryland Bill), and\nHandgun Rationing (one handgun per month).  All were defeated.\n\n\t[I read this morning (4/20) S.B. 241 was defeated -- lvc]\n \nKansas - HB 2435, providing for a 72-hour waiting period on all\nfirearms was defeated in committee.  HB 2458, presently on the\nGovernor's desk, HB 2459 and SB 243 and 266 all relating to victims'\nrights, are expected to be enacted into law.\n \nMaine - Funding for the Department of Fish and Wildlife 1993-94\nbudget, was restored following severe  reductions in the Governor's\nproposed budget.  LD 612, an anti-hunting bill which included reverse\nposting and 1000 yard safety zones, killed in committee.\n \nMaryland - SB 6-(Firearms Incendiary ammunition) died in committee on\na 8-3 vote, SB 41 (Reckless  Endangerment - Firearms - Sale or\nTransfer) died in committee on a 11-0 vote, SB 126 (Gun Control -\n\"Assault Weapons\") died in committee on 9-2 vote, SB 182 (Weapons\n-Free School Zone) was withdrawn, SB 185 (Weapons on School Property-\nDriver's License Suspension was withdrawn, SB 265 (\"Assault Pistols\"\n- Sale, Purchase or Transport) died in committee on 8-3 vote, SB 328\n(\"Assault Pistols\" Act of 1993) died in committee on a 8-3 vote, SB\n682 (Baltimore City-Firearms-Rifles and Shotguns) died in committee\non a 9-2 vote.\n \nHB 274 (Pistol and Revolver Dealers Licenses - compliance with zoning\nlaws) was withdrawn, HB 366 (Regulated Firearms-sales and transfer)\ndied on the Senate Floor, HB 374 (Handguns and \"assault weapons\" -\nAdvertising for sale or transfer) died in committee, HB 384 (Handguns\nand \"Assault Weapons\" - Exhibitors) died in committee, HB 495\n(\"Assault Pistols\" Act of 1993) died in committee on a 14-9 vote, HB\n496 (Gun Shows-Sale, Trade, or Transfer of regulated firearms) died\nin committee on a 19-6 vote, HB 601 (Firearms - Handguns - \"Assault\nPistols\" - Handgun Roster Board) was withdrawn, HB 683 (Rifles and\nShotguns - Registration) was withdrawn, HB 945 (Pistols and Revolvers\n- Private sales  or transfers- required notice) died in committee,\nand HB 1128 Prince Georges County -\n Weapons - Free School Zone) was withdrawn.\n \nMississippi - HB 141, closing a loophole allowing felons to possess\nfirearms, passed both Houses and signed by the Governor.  The bill\ncodifies into law mechanism for certain felons to have their Second\nAmendment liberties reinstated.\n \nNebraska - LB 83 and LB 225, mandatory trigger-lock bills, killed in\ncommittee.\n \nNew Hampshire - H.B. 363, providing for reciprocity for concealed\ncarry licenses passed.  H.B. 671,  increasing the term of a License\nto Carry Loaded Handguns passed.\n \nNew Mexico - SB 762, imposing a 7-day \"waiting period,\" defeated in\nSenate committee (0-5) and then on  floor of the Senate (15-24).  HB\n182, mandatory storage legislation, was killed by a vote of 1-8 in\ncommittee.  HB 230, legislation safeguarding sportsmen in the field\nfrom harassment by animal rights extremists, signed into law by the\nGovernor on March 30.\n \nNew York - Seven-day waiting period was defeated in the City of\nBuffalo.   Ban on certain semi-autos was defeated in Monroe County.\nThe tax and fee bills to be imposed on guns and ammo were not\nincluded in the 1993-94 budget. SB 207, making pistol licenses\nprovides for validity of pistol license throughout the state, passed\nSenate.  Currently awaiting action in Assembly committee.\n \nNorth Dakota - HB 1484, granting victims compensation in certain\ncircumstances, was signed into law by the Governor on April 8.\n \nOregon - SB 334, banning firearms on school grounds and in court\nbuildings, withdrawn as a result of gun owners opposition.\n \nRhode Island - HB 5273, mandatory firearms storage legislation,\ndefeated in committee by a vote of 8-5. HB 6347, an act prohibiting\naliens from owning firearm; defeated by unanimous vote in committee.\nHB 5650, excepting NRA instructors from the firearms safety\nrequirement, reported favorably. HB 5781, exempting persons with an\nAttorney General's permit from the 7-day waiting period, reported to\nthe floor by a vote of 11-1.\nHB 6917, extending the term of a permit to carry from two years to\nthree years, reported to the floor unanimously.\n \nUtah   HB 290, reforming the state's concealed carry statute, passed\nout of House committee.  SB 32, creating civil liability for\nso-called negligent storage of a firearm, and SB 33 creating the\noffense of \"reckless endangerment\" with a firearm, killed on Senate\nfloor.\n \nVirginia: S.B. 336, and S.B. 803, requiring proof of state residence\nto obtain Virginia Driver's License passed.  S.B. 804, which\nincreases the penalty and imposes a mandatory minimum sentence for\n\"straw man\" purchases of multiple firearms passed.  S.B. 858,\nallowing possession of \"sawed-off\" rifles and shotguns in compliance\nwith federal law passed.  S.B. 1054, making it a felony for first\noffense of carrying a concealed firearm without a license (which the\nNRA opposes until law-abiding citizens can acquire a concealed carry\nlicense for self-defense), was defeated. H.B. 1900, increasing the\npenalty for use of a firearm in committing a felony was passed.  H.B.\n2076, requiring proof of residence to obtain a driver's license\npassed.  H.B. 2272, providing for a referendum on the imposition of a\nstatewide three- day \"waiting period\" in handgun purchases was\ndefeated.\n \nWashington: SB 5160, calling for waiting periods and licensing for\nall semi-automatic firearms, died  in committee.\n \nWest Virginia - S.C.R. 18, which calls for a study to control\ntransfers of handguns and \"Assault Weapons\" was defeated in the\nSenate 24-10.\n \nWisconsin - In a referendum up against all odds, the determined\nefforts of the Madison Area Citizens Against Crime paid off on April\n6 when a nonbinding referendum banning the possession of handguns in\nMadison, Wisconsin, was defeated.  Despite opposition to the ban --\naired largely by firearms owners at a series of public meetings on\nthe issue -- the Common Council voted on February 17 to place the\nreferendum on the ballot, allowing only seven weeks of campaigning to\nreverse public opinion on the controversial issue.\n \nAn October 1992 poll conducted by the Wisconsin State Journal found\n57% in support and 38% opposed, with 5% expressing no opinion.  By\nelection day, of the more than 56,000 voters who went to the polls,\n51% cast ballots in opposition to the proposal while 49% voted to\nhave the Madison Common Council enact such a ban.  The campaign\ncommittee, spearheaded by the Wisconsin Pro-Gun Movement and NRA-ILA,\nrelied on neighborhood canvassing, direct mail and radio/TV\nadvertising to educate voters on the civil liberties implications\nraised by enforcement of the ban if the referendum was approved.\n \nDespite the surprising defeat, it is expected that the Madison\ninitiative's chief proponent, Mayor Paul Soglin, will attempt to have\nthe Common Council enact an ordinance banning handguns.\n \n                Downloaded from GUN-TALK (703-719-6406)\n                A service of the\n                National Rifle Association\n                Institute for Legislative Action\n                Washington, DC 20036\n-- \nLarry Cipriani -- l.v.cipriani@att.com\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11144, "properties": {"category": "rec.autos", "text": "From: 6500alh@ucsbuxa.ucsb.edu (Archie Holmes)\nSubject: Prizm's Radio Question\nKeywords: prizm, geo, radio, theft\nDistribution: rec\nLines: 7\n\n\n I was lloking at the Geo Prizm Lsi today (very nice).  Anyway, I had a\nquestions that the salesperson couldn't answer.  How does the theft\ndeterrent on the Prizm's audio systems work?  Can't find the answer\nin any of Geo's lterature.  Thanks in advance.\n\nArchie Holmes\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11145, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\nOrganization: S.D.P.A. Center for Regional Studies\nLines: 85\n\n04/16/93 1045  ARMENIA SAYS IT COULD SHOOT DOWN TURKISH PLANES\n\nBy David Ljunggren\n\nMOSCOW, April 16, Reuter - Armenia accused Turkey on Friday of flying weapons\nx and troops across Armenian airspace to Azerbaijan and strongly hinted it\nmight try to shoot the planes down, local journalists in Yerevan said.\n\nSeparately, Itar-Tass news agency said Armenian forces had halted their latest\noffensive which has swallowed up one-tenth of Azerbaijan and sent tensions in\nthe Transcaucasian region soaring.\n\nThe journalists in the Armenian capital quoted Armen Duliyan, head of the\nArmenian defence ministry press centre, as saying Ankara had been sending \nplanes up to 15 times a day to Azerbaijan with arms and troops.\n\nIt looks as though the Armenian leadership will have to warn Turkey about\nthe impermissibility of such actions,\" the journalists quoted Duliyan as \nsaying.\n\n\"If such steps are pursued in the future we will have recourse to appropriate\nmeasures. We have all the necessary means, including modern anti-aircraft\nunits.\"\n\nTurkey, which shares a border with Armenia, has supported Azerbaijan in the\nconflict over the mainly Armenian-populated Nagorno-Karabakh region in which\nmore than 2,500 people have been killed since fighting erupted in 1988.\n\nThe Turkish foreign ministry said on Friday it had so far sent one plane to\nAzerbaijan containing humanitarian aid.\n\nA Turkish foreign ministry spokesman on Thursday would not comment directly\non a report by Hurriyet newspaper that a first consignment of rockets, rocket\nlaunchers, ammunition and light weapons had arrived in Azerbaijan from Turkey.\n\nDuliyan said Turkey had been sending up to 30 trucks a day carrying troops\nand arms to the bordering Azeri autonomous territory of Nakhichevan, from where\nthey were flown across Armenian airspace to the Azeri capital Baku.\n\n\"All the responsibility for possible consequences will be borne by the\ncountry which is affording military assistance over our airspace,\" he said.\n\nArmenia denies any formal role in the conflict, saying that the troops \ninvolved in the fighting are from the enclave itself.\n\nTass said the Karabakh forces decided on Friday to suspend their offensive\nalong the entire Armenian-Azerbaijani front.\n\n\"The Karabakh authorities are reportedly ready to give independent\ninspectors a chance to see for themselves on the spot that the (enclave's)\nleadership is striving to achieve a ceasefire,\" the agency said.\n\nArmenian President Levon Ter-Petrosyan called for a two-stage ceasefire in\nKarabakh when he arrived in the Belarus capital Minsk on Friday for a summit of\nCommonwealth leaders.\n\n\"The first stage of the settlement should involve a ceasefire and securing the\nprotection of the Karabakh population,\" Tass quoted him as saying.\n     \nAt least 10 ceasefires have been brokered in the conflict but all have\ncollapsed.\n\n\"The second stage should involve discussing and finding a solution to the\nlegal issues: that is, a clarification of the status of Nagorno-Karabakh,\" he\nsaid. The republic declared full independence last year but the move has not \nbeen recognised by any other country.\n\nArmenia insists that a separate Karabakh delegation should take part in future\npeace talks, something Azerbaijan rejects.\n\nLocal news agencies in Baku said on Friday that Interior Minister Iskender\nGamidov, a fiery nationalist and hardliner in the territorial dispute with\nArmenia, had resigned.\n\nTuran news agency said he quit on Thursday and had cleared his office.\nKhabar-Servis agency said he would be replaced by the military commandant of\nBaku, police Major-General Abdullah Allakhverdiyev. There was no official\nconfirmation.\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11146, "properties": {"category": "alt.atheism", "text": "From: livesey@solntze.wpd.sgi.com (Jon Livesey)\nSubject: Re: Jews can't hide from keith@cco.\nOrganization: sgi\nLines: 16\nDistribution: world\nNNTP-Posting-Host: solntze.wpd.sgi.com\n\nIn article <C51DAq.2Fqs@austin.ibm.com>, karner@austin.ibm.com (F. Karner) writes:\n>\n> So, you consider the german poster's remark anti-semitic? \n\nWhen someone says:\n\n\t\"So after 1000 years of sightseeing and roaming around its \n\tok to come back, kill Palastinians, and get their land back, \n\tright?\"\n\nYes, that's casual antisemitism.    I can think of plenty of ways\nto criticize Israeli policy without insulting Jews or Jewish history.\n\nCan't you?\n\njon \n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11147, "properties": {"category": "sci.med", "text": "From: williamt@athena.Eng.Sun.COM (William Turnbow)\nSubject: Re: Discussions on alt.psychoactives\nOrganization: Sun Microsystems Inc., Mountain View, CA\nLines: 39\nReply-To: williamt@athena.Eng.sun.com (William Turnbow)\nNNTP-Posting-Host: athena\n\nIn article <1r4bhsINNhaf@hp-col.col.hp.com> billc@col.hp.com (Bill Claussen) writes:\n>\n>This group was originally a takeoff from sci.med.  The reason for\n>the formation of this group was to discuss prescription psychoactive\n>drugs....such as ...\n>\n>Oh well, obviously, no one really cares.\n---\n\n\tThen let me ask you for a \"workable\" solution.  We have a name\nhere that implies certain things to many people.  Rather than trying\nto educate each and every person that comes to the group -- is there\nsome \"name\" that would imply what this group was originally\nintended for?  \n\n\tMy dad was a lawyer -- as such I grew up with being a stickler\nfor \"meaning\".  In my \"reality\", psychoactives *technically* could \nrange from caffeine to datura to the drugs you mention to more\nstandard recreational drugs.  In practice I had hoped to see it\nlimited to those that were above some psychoactive level -- like\nsome of the drugs you mention, but also possibly including *some*\nrecreational drugs -- but with conversation limited to their psychoactive \neffects -- the recent query about \"bong water\", I thought was a bit\noff topic -- so I just hit \"k\".\n\n\tBut back to the original question -- what is a workable solution --\nwhat is a workable name that would imply the topic you with to\ndiscuss?  It sounds like there should be a alt.smartdrugs, or something\nsimilar -- I don't feel psychoactives would generally be used to\ndescribe alot of those drugs.  There is a big difference between a\ndrug that if taken in \"certain doses, over a period of days may have\na psychoactive effect in some people\", vs. many of the drugs in\nPIHKAH which *are* psychoactive.\n\n\nwm\n-- \n\n:: If pro-choice means choice after conception, does this apply to men too? ::\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11148, "properties": {"category": "talk.politics.mideast", "text": "From: cosmo@pro-angmar.alfalfa.com (Frank Benson)\nSubject: Argic\nOrganization: UTexas Mail-to-News Gateway\nLines: 6\nNNTP-Posting-Host: cs.utexas.edu\n\nHey Serdar:\n          Man without a brain, yare such a LOSER!!!\n---\nProLine:  cosmo@pro-angmar\nInternet: cosmo@pro-angmar.alfalfa.com\nUUCP:     uunet!bu.edu!alphalpha!pro-angmar!cosmo\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11149, "properties": {"category": "talk.politics.guns", "text": "From: auerbach@batman.bmd.trw.com\nSubject: Re: ATF BURNS DIVIDIAN RANCH! NO SURVIVORS!!!\nLines: 23\n\nIn article <1r19tp$5em@bigboote.WPI.EDU>, mfrhein@wpi.WPI.EDU (Michael Frederick Rhein) writes:\n> In article <93109.13404334AEJ7D@CMUVM.BITNET> <34AEJ7D@CMUVM.BITNET> writes:\n>>I will be surprised if this post makes it past the censors,\n>>but here goes:\n>>\n> In short Mr. Gorman (I am assuming Mr. as a title because I don't think a \n>woman would be stupid enough to make this post) I don't know what episode of CNN you\n ^^^^^\n\nWhat an incrediblt sexist remark! Come now, Mike, what ever possessed you to\nmake such a un-PC remark?  I hope all women out there reading this are as\nincensed as I am. Remember, WOMAN ARE JUST AS GOOD AS MEN!!!! \n\nWomen stand up for your right to be just as stupid as men. In fact, insist on\nevery oppurtunity to be even more stupid than men! You've got the right, use\nit!\n\nHey, it's a slow afternoon and I really don't want to get back to that\nreport...;)\n\nBTW: mega-smileys for the humor impaired...\n\nKarl\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11150, "properties": {"category": "soc.religion.christian", "text": "From: reedr@cgsvax.claremont.edu\nSubject: Re: DID HE REALLY RISE???\nOrganization: The Claremont Graduate School\nLines: 65\n\nIn article <Apr.21.03.26.15.1993.1349@geneva.rutgers.edu> reedr@cgsvax.claremont.edu writes:\n\n>The basic problem with your argument is your total and complete reliance on\n>the biblical text.  Luke's account is highly suspect (I would refer you to\n>the hermeneia commentary on Acts).  ...\n\nIn article <Apr.23.02.56.43.1993.3174@geneva.rutgers.edu>, ata@hfsi.hfsi.com ( John Ata) writes:\n\n> Even if there was no independent proof that Luke's account was\n> valid, I find it strange that you would take the negation of it as\n> truth without any direct historical evidence (at least that you've\n> mentioned) to back it up.  The assertion was made, unequivocally\n> that no Christian ever sufferred for their faith by believing in\n> the Resurrection.  Luke's account suggests otherwise, and in the\n> absence of direct eyewitnesses who can claim that Luke is mistaken,\n> then I suggest that this unequivocal assertion is suspect.\n> \n\nJohn,\nThe problem here is that you have taken one peice of my response, without\nbothering to connect it with the other parts.  I have repeatedly noted that\none needs to take the problematic historcity of acts and then examine the\nwork of John Dominic Crossan and Burton Mack.  Once you have taken the time\nto examine recent developments in biblical scholarship, I think you will \ngrasp more clearly what I am saying.\n\n\n\n> [I think the original claim may have been somewhat more limited than\n> this.  It was an answer to the claim that the witnesses couldn't\n> be lying because they were willign to suffer for their beliefs.\n> Thus it's not necessary to show that no Christian ever suffered\n> for believing in the Resurrection.  Rather the issue is whether\n> those who witnessed it did.\n> \n> I do agree that the posting you're responding to shows that there\n> can be liberal as well as conservative dogmatism.\n> \n> --clh]\n\nCertainly this is an issue as I think the situation in Waco shows most \nclearly.  If all that is required is that people are willing to die for a\nbelief for it to be true, then surely David Koresh is the son of God.  No,\nthe spurrious arguement that the resurrection had to be true for people to be\nwilling to die must be put to rest.  The other problem is that it is so \nmonologocentric.  Even if the resurrection was a big deal (which it doesn't\nseem to have been for either Q, Thomas, or even John to a certain degree)\nthere are a lot of other things which the Early Christians could have been\ndoing together that would have been worth dying for.  It is my belief that\neven the idea of a mixed race community, which brought down regional/national\nboundaries in the name of koinonia could have been enough for people to be\nwilling to die.  Radical communties do that (e.g. Jonestown, Waco, Warsaw, etc)\nBut my original point was that roman persecution (which is the only persecution\nwe have documented proof of) was not about whether a carpenter came back from\nthe dead.  Such a claim was not unique nor particularly abhorent to the roman\nor greek mind.  My point is that avoidance of military and civic duty (i.e.\nemperor worship) would have been much more problematic -- which has nothing\nto do with the resurrection at all.  When nero used christians as human \ntorches to light up his dinner party it wasn't because the believe in a \nrisen savior, it was because they were supposedly involved in incest and\ncannablism.  The argument that christians were martyred for the resurrection\njust cannot stand up to critical examination.\n\nrandy\n \n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11151, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rlb534@ibm-03.nwscc.sea06.navy.mil\nSubject: FASTMicro out of business?\nOrganization: UTexas Mail-to-News Gateway\nLines: 2\nNNTP-Posting-Host: cs.utexas.edu\n\n    I heard FASTMicro went out of business.  Is this true?  \nThey don't answer their 800 number.  It's 800-821-9000.\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11152, "properties": {"category": "talk.politics.guns", "text": "From: andy@SAIL.Stanford.EDU (Andy Freeman)\nSubject: Re: My Gun is like my American Express Card\nOrganization: Computer Science Department,  Stanford University.\nDistribution: usa\nLines: 35\n\nIn article <93105.215548U28037@uicvm.uic.edu> Jason Kratz <U28037@uicvm.uic.edu> writes:\n>>>I have been at a shooting range where\n>>>gang members were \"practicing\" shooting.\n\n>In article <1993Apr15.202811.29312@CSD-NewsHost.Stanford.EDU> andy@SAIL.Stanford.EDU (Andy Freeman) says:\n>>How do \"we\" know that they were gang members and not undercover cops\n>>or even law-abiding menacing minorities.  BTW - Why the sneer quotes?\n>\n>\"We\" know because the area that the gun shop/shooting range is in is right on\n>the border of the west side of Chicago.  That is a gang infested area.\n\nSo?  Kratz was there - does that mean that he's a gang member?\n\nEven in the most gang-infested areas, most of the residents ARE NOT\ngang-members.\n\n>that only minorities have gangs?  Not so.  As far as the quotes are concerned\n>it was totally obvious that they weren't just practicing for marksmanship.\n\nHow was it obvious?  Were they not trying to hit the target?  Or, does\nKratz confuse \"marksmanship\" with \"trying to simulate a post\"?  If so,\nthat excludes self-defense shooting, but the rest of us understand\nthat that exclusion would be an error.  (It excludes a lot of legit\n\"gun games\" as well.)\n\n>don't know about you but I have never seen anyone else practice marksmanship by\n>taking their gun out of their coat as fast as possible and start shooting.\n\nSounds like practical pistol or maybe IPSC.  It also sounds like how a\nself-defense shooter might well practice.  The only things that action\nexcludes are hunting and \"like a post\" shooting.  Kratz should get out\nmore often.\n\n-andy\n--\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11153, "properties": {"category": "sci.crypt", "text": "From: steve-b@access.digex.com (Steve Brinich)\nSubject: S1, S2\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 13\nNNTP-Posting-Host: access.digex.net\n\n > Second question: Why!?!? Why is such a strange procedure used, and not\n >a real RNG ? This turns those S1,S2 in a kind of bottleneck for system-\n >security.\n\n  The only theory that makes any sense is that S1 and S2 are either the\nsame for all chips, or vary among very few possibilities, so that anyone\ntrying to break the encryption by brute force need only plow through the\npossible serial numbers (2^30, about one billion), multiplied by the number\nof different S1, S2 combinations.\n\n\n\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11154, "properties": {"category": "comp.windows.x", "text": "From: kerr@ux1.cso.uiuc.edu (Stan Kerr)\nSubject: MacX 1.2 color problem\nSummary: Problem with MacX 1.2 painting in wrong colors\nKeywords: mac x color window macx\nOrganization: University of Illinois at Urbana\nLines: 13\n\nI have a peculiar color problem with MacX, Apple's Macintosh X server.\nI'd like to know if others have seen the same problem. It's happened\nwith the current version (1.2), and with version 1.1.7.\nWhen some types of client windows are displayed, parts of the windows\nare in the wrong color; if the window is moved slightly, forcing the server\nto repaint it, it is repainted in the correct colors. It doesn't happen\nfor xterm windows, but has happened for graphic windows and with some\nMotif clients.\n-- \n\nStan Kerr    \nComputing & Communications Services Office, U of Illinois/Urbana\nPhone: 217-333-5217  Email: stankerr@uiuc.edu   \n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11155, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: towwang@statler.engin.umich.edu (Tow Wang Hui)\nSubject: Floppy file copying\nArticle-I.D.: srvr1.1pstlnINN4r5\nReply-To: towwang@engin.umich.edu\nDistribution: world\nOrganization: University of Michigan (CAEN)\nLines: 15\nNNTP-Posting-Host: statler.engin.umich.edu\nOriginator: towwang@statler.engin.umich.edu\n\n\nA silly question: I frequently edit small files and need to make copies of them\non several floppy diskettes of the same size and format, but my computer is\nonly equipped with one 3.5\" HD drive and one 5.25\" HD drive; can't I do the\ncopying without swapping files temporarily to my hard disk (which is 99.9% full)\nusing standard MSDOS 5.0 commands? I know\ndiskcopy a: a:\nworks but for small selections of files,\nxcopy a:*.txt a:\ndoes not!\nMaybe I'll have to write my own file copy command in C, but the idea does not\namuse me.\nThanks for your help.\n\nFrancisco\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11156, "properties": {"category": "comp.sys.mac.hardware", "text": "From: horton@what.sps.mot.com (David Horton)\nSubject: Re: Macs suck! Buy a PC!\nNntp-Posting-Host: 223.10.249.26\nOrganization: Motorola Inc. MMTG Oakhill Austin Texas\nLines: 7\n\nIn article <C5ouop.F9t@news2.cis.umn.edu> horton@molbio.cbs.umn.edu (Robert Horton) writes:\n>\n>Tests suck! Post a real message!\n>:^)\n\nPresumably Erme Maula is testing the size limits of his email account.\nThat's erme@pobox.upenn.edu for those who missed it.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11157, "properties": {"category": "misc.forsale", "text": "From: carolan@owlnet.rice.edu (Bryan Carolan Dunne)\nSubject: WYSIWYG word processor for DOS!!!!!!\nOrganization: Rice University\nLines: 70\n\nHey!!! I've just upgraded my laptop to a Windows-capable one, so I \ndon't need my DOS word processor anymore.  It's a great word \nprocessor.  Easy-to-use, undemanding on the system, and\nbest of all, it has a WYSIWYG EDITING mode.  This is something\nWord Perfect doesn't have!!  And all I'm asking is $65 + shipping.\nIt even comes with several hundred dollars of free utilities!!!\n\n$65 for a full-featured WYSIWYG word processor!!!  Perfect for\na laptop, or a lower powered machine!\n\nCheck this out:\nCA> It has: \nCA> - WYSIWYG-mode editing (Word Perfect still trying to do\nCA> this!) \nCA> - Graphics-importing, scaling, and resizing (Comes\nCA> with free art!) \nCA> - Scalable fonts (30 typefaces included!)\nCA> Indentical from screen to printer! (See below for more info\nCA> on font generator) \nCA> - On-line spell-checking and thesaurus\nCA> (See below for more info!) \nCA> - Great 10-level outliner!\nCA> - Multiple columns\nCA> - Dual-document opening and editing\nCA> - Line and box drawing\nCA> - Search and replace\nCA> - Cut, copy, insert, and paste between documents and inside\nCA> documents  \nCA> - Justification control\nCA> - Resettable margins, tabs, and line-spacing\nCA> - Savable layouts\nCA> - Headers, footers, page numbering\nCA> - Table of Contents\nCA> - Multiple rulers in one document\nCA> - Mail merge\nCA>  \nCA> Also included as free utilities:\nCA> - Publisher's Powerpak Font Engine: This gives PFS:Write\nCA> scalable fonts  in sizes from 4pt to 72pt!  Support for\nCA> screen (in Write) and printer  (even 9-pin dot-matrix looks\nCA> great!).  Comes with 30 typefaces.  Supports  subscripts and\nCA> superscripts, too! \nCA> - Grammatik IV: The grammar and style\nCA> checker.  Comes with a quick  reference card for easy use.\nCA> It really helped my punctuation and usage! \nCA> - International CorrectSpell English and Roget's Electronic \nCA> Thesaurus: Th dictionary and thesuarus pack is published by \nCA> the publishers of The American Hertiage Dictionary.  If you \nCA> can't trust them with your words, who can you trust?\nCA> - ClickArt Business Images: A sampler of the ClickArt\nCA> library.  Perfect for importing into PFS:Write documents.\nCA>  \nCA> I bought this product 1 year ago for $129. Its easy to use\nCA> and turns out great-looking documents, even on a dot-matrix \nCA> printer.  So if you  want WYSIWYG editing for your DOS-computer \nCA> now, PFS:Write is here!  \nCA>  \nCA> I'm looking to get $65.  It comes with full\nCA> documentation, registration cards, the box (its still in\nCA> good condition), both 5 1/4\" and 3 1/2\" disks for PFS:Write\nCA> and Grammatik, and the ClickArt on a 3 1/2\" disk. The\nCA> utilities PFS:Write comes with are worth $300 alone, so $65\nCA> for a full-featured WP is a REAL BARGAIN.  Buyer pays\nCA> shipping.\nCA>  \nCA> Please respond by email to carolan@owlnet.rice.edu\nCA> or call (713) 520-5720\nCA>  \nCA> Bryan Dunne\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11158, "properties": {"category": "misc.forsale", "text": "From: smf7s@galen.med.Virginia.EDU (Stephen M. Friedman)\nSubject: Wizard OZ-9600 pen-based organizer & PC link for sale\nOrganization: University of Virginia\nDistribution: na\nLines: 39\n\n\n \n\nFOR SALE: Pen-based electronic organizer --\nBrand-new Sharp Wizard OZ-9600 (with PC link software and cable) \n\n -15 ounces, measures 7\"x4\"x1\" (fits in most pockets)\n -256k RAM, 125k available to user\n -pen/touch-screen input for pointing and drawing\n -keyboard big enough to touch-type on\n -320x240 screen\n -windows/pop-up menus\n -excellent scheduler with alarms\n -3 telephone directories\n -3 user-configurable databases\n -full word-processor with formatting\n -drawing utility\n -outliner\n -to-do list\n -calculator\n -clock/calendar\n -terminal emulatorw/ dialing directory\n -directory/filing system\n -serial port/infrared port/IC card slot\n -uses 4 AAA batteries (about 3 months of daily use)\n -All manuals\n\nOrganizer Link II\n -software and cable for exchanging data between Wizard and a PC\n\n $480 or best offer for both.     I'll pay shipping.\n\n\n\t\t\t\tSteven M Friedman\n\t\t\t\tHorizon Institute for Policy Solutions\n\nMail path:\tsmf7s@virginia.BITNET\nVoice path:\t(804) 295 0235 \n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11159, "properties": {"category": "rec.sport.baseball", "text": "From: fierkelab@bchm.biochem.duke.edu (Eric Roush)\nSubject: Re: My '93 picks (with only one comment)\nArticle-I.D.: news.12786\nOrganization: Biochemistry\nLines: 50\nNntp-Posting-Host: bruchner.biochem.duke.edu\n\nIn article <1psbg8INNgjj@master.cs.rose-hulman.edu>\nrickert@NeXTwork.Rose-Hulman.Edu (John H. Rickert) writes:\n>In article <jfr2.733938351@Ra.MsState.Edu> jfr2@Ra.MsState.Edu (Jackie F.  \n>Russell) writes:\n>> psg+@pitt.edu (Paul S Galvanek) writes:\n\n\n>\n>> >National League West\n>> \n>> >\tCincinnati      ----\n>> >\tHouston          5.0\n>> >\tAtlanta          8.0\n>> ARGH! Here is where you are obviously dead wrong. Not since the Yankees of\n>> the 20's and 30's has a team been so nicely setup as this years(and years \n>> to come) Braves. I don't think that the All-Star team will be able to beat \n>\n>This may be an appropriate comparison.\n>The 1929-31 Yankees finshed 2nd, 3rd and 2nd finshing \n>18, 16 and 13-1/2 games out of first. \n>In 1933,'34 and '35 they also finished second ( though they were only\n>7, 7 and 3 games out).\n>Even great teams can lose - That's why they play the season.\n>(on the other hand... I'm still picking the Braves to go all the way)\n>\n\nUm, surely you didn't intend to compare the '93 Reds with the\n29 Philidelphia A's.  The Yankees were finishing 2nd to\na team that was as good as the 26-28 Yankees, while the\nYankees had aged some from their peak years.  Ruth and Gehrig\ncouldn't play every position simultaneously.\n\nIMO, given the various ages of the Braves and Reds this season,\nthat the Braves will be closer to their peak, while the Reds\nhave slightly passed their peak.\n\nAlso, if you're going to compare Braves and Yankees, a more appropriate\ncomparison to the '93 Braves might be the '23 Yankees.  \nAfter falling short two years in a row in exciting World Series,\n both teams won/will win the Series this year, despite the\nheroics of some old fart on the other team. \n(Casey Stengel/ Dave Winfield???)\n\n-------------------------------------------------------\nEric Roush\t\tfierkelab@\tbchm.biochem.duke.edu\n\"I am a Marxist, of the Groucho sort\"\nGrafitti, Paris, 1968\n\nTANSTAAFL! (although the Internet comes close.)\n--------------------------------------------------------\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11160, "properties": {"category": "comp.windows.x", "text": "From: chongo@toad.com (Landon C. Noll)\nSubject: Reposting: 10th International Obfuscated C Code Contest rules (2 of 2)\nExpires: 8 May 93 00:00:00 GMT\nReply-To: chongo@toad.com (Landon C. Noll)\nDistribution: world\nOrganization: Nebula Consultants in San Francisco\nLines: 1409\nKeywords: ioccc\n\nWe have received a number of requests for a reposting of the\nInternational Obfuscated C Code Contest rules and guidelines.  Also\nsome people requested that these rules be posted to a wider set of\ngroups.  Sorry for the cross posting.\n\nSome technical clarifications were made to the rules and guidelines.\n(See the diff marks at the right hand edge)  The rules and guidelines\nfor this year remain the same, so people who have already or are\nin the process of submitting entries for the 1993 IOCCC need not worry \nabout these changes.\n\nchongo <Landon Curt Noll> /\\cc/\\        chongo@toad.com\nLarry Bassel                            lab@sun.com\n\n=-=\n\n#!/bin/sh\n# This is part 02 of a multipart archive\n# ============= mkentry.c ==============\necho \"x - extracting mkentry.c (Text)\"\nsed 's/^X//' << 'SHAR_EOF' > mkentry.c &&\nX/* @(#)mkentry.c\t1.25 4/5/93 15:58:08 */\nX/*\nX * Copyright (c) Landon Curt Noll & Larry Bassel, 1993.\nX * All Rights Reserved.  Permission for personal, education or non-profit use\nX * is granted provided this this copyright and notice are included in its\nX * entirety and remains unaltered.  All other uses must receive prior\nX * permission in writing from both Landon Curt Noll and Larry Bassel.\nX */\nX/*\nX * mkentry - make an International Obfuscated C Code Contest entry\nX *\nX * usage:\nX *\tmkentry -r remarks -b build -p prog.c -o ioccc.entry\nX *\nX *\t-r remarks\t\tfile with remarks about the entry\nX *\t-b build\t\tfile containing how prog.c should be built\nX *\t-p prog.c\t\tthe obfuscated program source file\nX *\t-o ioccc.entry\t\tioccc entry output file\nX *\nX * compile by:\nX *\tcc mkentry.c -o mkentry\nX */\nX/*\nX * Placed in the public domain by Landon Curt Noll, 1992.\nX *\nX * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED\nX * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF\nX * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\nX */\nX/*\nX * WARNING:\nX *\nX * This program attempts to implement the IOCCC rules.  Every attempt\nX * has been made to make sure that this program produces an entry that\nX * conforms to the contest rules.  In all cases, where this program\nX * differs from the contest rules, the contest rules will be used.  Be\nX * sure to check with the contest rules before submitting an entry.\nX *\nX * FOR MORE INFORMATION:\nX *\nX *   You may contact the judges by sending Email to the following address:\nX *\nX *\t...!{apple,pyramid,sun,uunet}!hoptoad!judges\t(not the address for\nX *\tjudges@toad.com\t\t\t\t\t submitting entries)\nX *\nX *   Questions and comments about the contest are welcome.\nX *\nX *  The rules and the guidelines may (and often do) change from year to\nX *  year.  You should be sure you have the current rules and guidelines\nX *  prior to submitting entries.  To obtain them, send Email to the address\nX *  above and use the subject 'send rules'.\nX *\nX *  One may obtain winners of previous contests (1984 to date), via ftp from:\nX *\nX *\thost: ftp.uu.net\t(192.48.96.9)\nX *\tuser: anonymous\nX *\tpass: yourname@yourhost\nX *\tdir:  ~/pub/ioccc\nX *\nX *  As a last resort, previous winners may be obtained by sending Email\nX *  to the above address.  Please use the subject 'send YEAR winners',\nX *  where YEAR is a single 4 digit year, a year range, or 'all'.\nX *\nX * Because contest rules change from year to year, one should only use this\nX * program for the year that it was intended.  Be sure that the RULE_YEAR\nX * define below matches this current year.\nX */\nX\nX#include <stdio.h>\nX#include <ctype.h>\nX#include <time.h>\nX#include <sys/types.h>\nX#include <sys/stat.h>\nX\nX/* logic */\nX#ifndef TRUE\nX# define TRUE 1\nX#endif /* TRUE */\nX#ifndef FALSE\nX# define FALSE 0\nX#endif /* FALSE */\nX#define EOF_OK TRUE\nX#define EOF_NOT_OK FALSE\nX\nX/* global limits */\nX#define RULE_YEAR 1993\t\t/* NOTE: should match the current year */\nX#define START_DATE \"1Mar92 0:00 UTC\"\t/* first confirmation received */\nX#define MAX_COL 79\t\t/* max column a line should hit */\nX#define MAX_BUILD_SIZE 256\t/* max how to build size */\nX#define MAX_PROGRAM_SIZE 3217\t/* max program source size */\nX#define MAX_PROGRAM_SIZE2 1536\t/* max program source size not counting\nX\t\t\t\t   whitespace and {}; not followed by\nX\t\t\t\t   whitespace or EOF */\nX#define MAX_TITLE_LEN 12\t/* max chars in the title */\nX#define MAX_ENTRY_LEN 1\t\t/* max length in the entry input line */\nX#define MAX_ENTRY 8\t\t/* max number of entries per person per year */\nX#define MAX_FILE_LEN 1024\t/* max filename length for a info file */\nX\nX/* where to send entries */\nX#define ENTRY_ADDR1 \"...!{apple,pyramid,sun,uunet}!hoptoad!obfuscate\"\nX#define ENTRY_ADDR2 \"obfuscate@toad.com\"\nX\nX/* uuencode process - assumes ASCII */\nX#define UUENCODE(c) (encode_str[(int)(c)&0xff])\nX#define UUENCODE_LEN 45\t\t/* max uuencode chunk size */\nX#define UUINFO_MODE 0444\t/* mode of an info file's uuencode file */\nX#define UUBUILD_MODE 0444\t/* mode of the build file's uuencode file */\nX#define UUBUILD_NAME \"build\"\t/* name for the build file's uuencode file */\nX#define UUPROG_MODE 0444\t/* mode of the program's uuencode file */\nX#define UUPROG_NAME \"prog.c\"\t/* name for the program's uuencode file */\nX\nX/* encode_str[(char)val] is the uuencoded character of val */\nXchar encode_str[256+1] = \"`!\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_ !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_ !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_ !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_\";\nX\nX/* global declarations */\nXchar *program;\t\t\t/* our name */\nXlong start_time;\t\t/* the startup time */\nX\nX/* forward declarations */\nXvoid parse_args();\nXvoid usage();\nXFILE *open_remark();\nXFILE *open_build();\nXFILE *open_program();\nXFILE *open_output();\nXvoid output_entry();\nXvoid output_remark();\nXvoid output_author();\nXvoid output_info();\nXvoid output_build();\nXvoid output_program();\nXvoid output_end();\nXint get_line();\nXvoid output_till_dot();\nXint col_len();\nXvoid check_io();\nXvoid uuencode();\nX\nXmain(argc, argv)\nX    int argc;\t\t/* arg count */\nX    char **argv;\t/* the args */\nX{\nX    FILE *remark=NULL;\t/* open remarks stream */\nX    FILE *build=NULL;\t/* open build file stream */\nX    FILE *prog=NULL;\t/* open program stream */\nX    FILE *output=NULL;\t/* open output stream */\nX    char *rname=NULL;\t/* file with remarks about the entry */\nX    char *bname=NULL;\t/* file containing how prog.c should be built */\nX    char *pname=NULL;\t/* the obfuscated program source file */\nX    char *oname=NULL;\t/* ioccc entry output file */\nX    struct tm *tm;\t/* startup time structure */\nX\nX    /*\nX     * check on the year\nX     */\nX    start_time = time((long *)0);\nX    tm = gmtime(&start_time);\nX    if (tm->tm_year != RULE_YEAR-1900) {\nX\tfprintf(stderr,\nX\t\"%s: WARNING: this program applies to %d, which may differ from %d\\n\\n\",\nX\t    argv[0], RULE_YEAR, 1900+tm->tm_year);\nX    }\nX\nX    /*\nX     * parse the command line args\nX     */\nX    parse_args(argc, argv, &rname, &bname, &pname, &oname);\nX\nX    /*\nX     * open/check the input and output files\nX     *\nX     * We open and truncate the output file first, in case it is the same\nX     * as one of the input files.\nX     */\nX    output = open_output(oname);\nX    remark = open_remark(rname);\nX    build = open_build(bname);\nX    prog = open_program(pname);\nX    if (output==NULL || remark==NULL || build==NULL || prog==NULL) {\nX\texit(1);\nX    }\nX\nX    /*\nX     * output each section\nX     */\nX    output_entry(output, oname);\nX    output_remark(output, oname, remark, rname);\nX    output_author(output, oname);\nX    output_info(output, oname);\nX    output_build(output, oname, build, bname);\nX    output_program(output, oname, prog, pname);\nX    output_end(output, oname);\nX\nX    /*\nX     * flush the output\nX     */\nX    if (fflush(output) == EOF) {\nX\tfprintf(stderr, \"%s: flush error in %s: \", program, oname);\nX\tperror(\"\");\nX\texit(2);\nX    }\nX\nX    /*\nX     * final words\nX     */\nX    printf(\"\\nYour entry can be found in %s.  You should check this file\\n\",\nX\toname);\nX    printf(\"correct any problems and verify that the uudecode utility will\\n\");\nX    printf(\"correctly decode your build file and program.\\n\\n\");\nX    printf(\"This program has been provided as a guide for submitters.  In\\n\");\nX    printf(\"cases where it conflicts with the rules, the rules shall apply.\\n\");\nX    printf(\"It is your responsibility to ensure that your entry conforms to\\n\");\nX    printf(\"the current rules.\\n\\n\");\nX    printf(\"Email your entries to:\\n\");\nX    printf(\"\\t%s\\n\", ENTRY_ADDR1);\nX    printf(\"\\t%s\\n\\n\", ENTRY_ADDR2);\nX    printf(\"Please use the following subject when you Email your entry:\\n\");\nX    printf(\"\\tioccc entry\\n\\n\");\nX    /* all done */\nX    exit(0);\nX}\nX\nX/*\nX * parse_args - parse the command line args\nX *\nX * Given the command line args, this function parses them and sets the\nX * required name flags.  This function will return only if the command\nX * line syntax is correct.\nX */\nXvoid\nXparse_args(argc, argv, rname, bname, pname, oname)\nX    int argc;\t\t/* arg count */\nX    char **argv;\t/* the args */\nX    char **rname;\t/* file with remarks about the entry */\nX    char **bname;\t/* file containing how prog.c should be built */\nX    char **pname;\t/* the obfuscated program source file */\nX    char **oname;\t/* ioccc entry output file */\nX{\nX    char *optarg;\t/* -flag option operand */\nX    int flagname;\t/* the name of the -flag */\nX    int i;\nX\nX    /*\nX     * Not everyone has getopt, so we must parse args by hand.\nX     */\nX    program = argv[0];\nX    for (i=1; i < argc; ++i) {\nX\nX\t/* determine the flagname */\nX\tif (argv[i][0] != '-') {\nX\t    usage(1);\nX\t    /*NOTREACHED*/\nX\t}\nX\tflagname = (int)argv[i][1];\nX\nX\t/* determine the flag's operand */\nX\tif (flagname != '\\0' && argv[i][2] != '\\0') {\nX\t    optarg = &argv[i][2];\nX\t} else {\nX\t    if (i+1 >= argc) {\nX\t\tusage(2);\nX\t\t/*NOTREACHED*/\nX\t    } else {\nX\t\toptarg = argv[++i];\nX\t    }\nX\t}\nX\nX\t/* save the flag's operand in the correct global variable */\nX\tswitch (flagname) {\nX\tcase 'r':\nX\t    *rname = optarg;\nX\t    break;\nX\tcase 'b':\nX\t    *bname = optarg;\nX\t    break;\nX\tcase 'p':\nX\t    *pname = optarg;\nX\t    break;\nX\tcase 'o':\nX\t    *oname = optarg;\nX\t    break;\nX\tdefault:\nX\t    usage(3);\nX\t    /*NOTREACHED*/\nX\t}\nX    }\nX\nX    /*\nX     * verify that we have all of the required flags\nX     */\nX    if (*rname == NULL || *bname == NULL || *pname == NULL || *oname == NULL) {\nX\tusage(4);\nX\t/*NOTREACHED*/\nX    }\nX    return;\nX}\nX\nX/*\nX * usage - print a usage message and exit\nX *\nX * This function does not return.\nX */\nXvoid\nXusage(exitval)\nX    int exitval;\t\t/* exit with this value */\nX{\nX    fprintf(stderr,\nX\t\"usage: %s -r remarks -b build -p prog.c -o ioccc.entry\\n\\n\", program);\nX    fprintf(stderr, \"\\t-r remarks\\tfile with remarks about the entry\\n\");\nX    fprintf(stderr, \"\\t-b build\\tfile containing how prog.c should be built\\n\");\nX    fprintf(stderr, \"\\t-p prog.c\\tthe obfuscated program source file\\n\");\nX    fprintf(stderr, \"\\t-o ioccc.entry\\tioccc entry output file\\n\");\nX    exit(exitval);\nX}\nX\nX/*\nX * open_remark - open/check the remark file\nX *\nX * The remark file should be indented by 4 spaces, and should not extend\nX * beyond column MAX_COL.  These are not requirements, so we only warn.\nX *\nX * This function returns NULL on I/O or format error.\nX */\nXFILE *\nXopen_remark(filename)\nX    char *filename;\nX{\nX    FILE *stream;\t\t/* the opened file stream */\nX    char buf[BUFSIZ+1];\t\t/* input buffer */\nX    int toolong=0;\t\t/* number of lines that are too long */\nX    int non_indent=0;\t\t/* number of lines not indented by 4 spaces */\nX\nX    /*\nX     * open the remark input file\nX     */\nX    stream = fopen(filename, \"r\");\nX    if (stream == NULL) {\nX\tfprintf(stderr, \"%s: cannot open remark file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\treturn(NULL);\nX    }\nX\nX    /*\nX     * look at each line\nX     */\nX    while (fgets(buf, BUFSIZ, stream) != NULL) {\nX\nX\t/* count lines that do not start with 4 spaces */\nX\tif (buf[0] != '\\n' && strncmp(buf, \"    \", 4) != 0) {\nX\t    ++non_indent;\nX\t}\nX\nX\t/* count long lines */\nX\tif (col_len(buf) > MAX_COL) {\nX\t    /* found a line that is too long */\nX\t    ++toolong;\nX\t}\nX    }\nX\nX    /* watch for I/O errors */\nX    check_io(stream, filename, EOF_OK);\nX\nX    /* note long lines if needed */\nX    if (toolong > 0) {\nX\tfprintf(stderr,\nX\t    \"%s: WARNING: %d line(s) from %s extend beyond the 80th column\\n\",\nX\t    program, toolong, filename);\nX\tfprintf(stderr,\nX\t    \"%s:          This is ok, but it would be nice to avoid\\n\\n\",\nX\t    program);\nX    }\nX\nX    /* note non-indented lines, if needed */\nX    if (non_indent > 0) {\nX\tfprintf(stderr,\nX\t    \"%s: WARNING: %d line(s) from %s are not indented by 4 spaces\\n\",\nX\t    program, non_indent, filename);\nX\tfprintf(stderr,\nX\t    \"%s:          This is ok, but it would be nice to avoid\\n\\n\",\nX\t    program);\nX    }\nX\nX    /* return the open file */\nX    rewind(stream);\nX    return(stream);\nX}\nX\nX/*\nX * open_build - open/check the build file\nX *\nX * The how to build file must not be longer than MAX_BUILD_SIZE bytes.\nX *\nX * This function returns NULL on I/O or size error.\nX */\nXFILE *\nXopen_build(filename)\nX    char *filename;\nX{\nX    FILE *stream;\t\t/* the opened file stream */\nX    struct stat statbuf;\t/* the status of the open file */\nX\nX    /*\nX     * open the how to build input file\nX     */\nX    stream = fopen(filename, \"r\");\nX    if (stream == NULL) {\nX\tfprintf(stderr, \"%s: cannot open how to build file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\treturn(NULL);\nX    }\nX\nX    /*\nX     * determine the size of the file\nX     */\nX    if (fstat(fileno(stream), &statbuf) < 0) {\nX\tfprintf(stderr, \"%s: cannot stat how to build file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\treturn(NULL);\nX    }\nX    if (statbuf.st_size > MAX_BUILD_SIZE) {\nX\tfprintf(stderr,\nX\t    \"%s: FATAL: the how to build file: %s, is %d bytes long\\n\",\nX\t    program, filename, statbuf.st_size);\nX\tfprintf(stderr,\nX\t    \"%s:        it may not be longer than %d bytes\\n\",\nX\t    program, MAX_BUILD_SIZE);\nX\treturn(NULL);\nX    }\nX\nX    /* return the open file */\nX    return(stream);\nX}\nX\nX/*\nX * open_program - open/check the program source file\nX *\nX * The program source file must be <= 3217 bytes.  The number of\nX * non-whitespace and }{; chars not followed by whitespace must\nX * be <= 1536 bytes.\nX *\nX * This function returns NULL on I/O or size error.\nX */\nXFILE *\nXopen_program(filename)\nX    char *filename;\nX{\nX    FILE *stream;\t\t/* the opened file stream */\nX    struct stat statbuf;\t/* the status of the open file */\nX    int count;\t\t\t/* special count size */\nX    int c;\t\t\t/* the character read */\nX\nX    /*\nX     * open the program source input file\nX     */\nX    stream = fopen(filename, \"r\");\nX    if (stream == NULL) {\nX\tfprintf(stderr, \"%s: cannot open program source file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\texit(7);\nX    }\nX\nX    /*\nX     * determine the size of the file\nX     */\nX    if (fstat(fileno(stream), &statbuf) < 0) {\nX\tfprintf(stderr, \"%s: cannot stat program source file: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\treturn(NULL);\nX    }\nX    if (statbuf.st_size > MAX_PROGRAM_SIZE) {\nX\tfprintf(stderr,\nX\t    \"%s: FATAL: the program source file: %s, is %d bytes long\\n\",\nX\t    program, filename, statbuf.st_size);\nX\tfprintf(stderr,\nX\t    \"%s:        it may not be longer than %d bytes\\n\",\nX\t    program, MAX_PROGRAM_SIZE);\nX\treturn(NULL);\nX    }\nX\nX    /*\nX     * count the non-whitespace, non {}; followed by whitespace chars\nX     */\nX    count = 0;\nX    c = 0;\nX    while ((c=fgetc(stream)) != EOF) {\nX\t/* look at non-whitespace */\nX\tif (!isascii(c) || !isspace(c)) {\nX\t    switch (c) {\nX\t    case '{':\t\t/* count if not followed by EOF or whitespace */\nX\t    case '}':\nX\t    case ';':\nX\t\t/* peek at next char */\nX\t\tc = fgetc(stream);\nX\t\tif (c != EOF && isascii(c) && !isspace(c)) {\nX\t\t    /* not followed by whitespace or EOF, count it */\nX\t\t    ungetc(c, stream);\nX\t\t    ++count;\nX\t\t}\nX\t\tbreak;\nX\t    default:\nX\t\t++count;\nX\t\tbreak;\nX\t    }\nX\t}\nX    }\nX\nX    /* watch for I/O errors */\nX    check_io(stream, filename, EOF_OK);\nX\nX    /* look at the special size */\nX    if (count > MAX_PROGRAM_SIZE2) {\nX\tfprintf(stderr,\nX\t    \"%s: FATAL: the number of bytes that are non-whitespace, and\\n\",\nX\t    program);\nX\tfprintf(stderr,\nX\t    \"%s:        that are not '{', '}', ';' followed by whitespace\\n\",\nX\t    program);\nX\tfprintf(stderr,\nX\t    \"%s:        or EOF must be <= %d bytes\\n\",\nX\t    program, MAX_PROGRAM_SIZE2);\nX\tfprintf(stderr,\nX\t    \"%s:        in %s, %d bytes were found\\n\",\nX\t    program, filename, count);\nX\treturn(NULL);\nX    }\nX\nX    /* return the open file */\nX    rewind(stream);\nX    return(stream);\nX}\nX\nX/*\nX * open_output - open/check the entry output file\nX *\nX * This function returns NULL on open error.\nX */\nXFILE *\nXopen_output(filename)\nX    char *filename;\nX{\nX    FILE *stream;\t\t/* the opened file stream */\nX\nX    /*\nX     * open the ioccc entry output file\nX     */\nX    stream = fopen(filename, \"w\");\nX    if (stream == NULL) {\nX\tfprintf(stderr, \"%s: cannot open ioccc entry file for output: %s: \",\nX\t    program, filename);\nX\tperror(\"\");\nX\texit(8);\nX    }\nX\nX    /* return the open file */\nX    return(stream);\nX}\nX\nX/*\nX * output_entry - output the ---entry--- section\nX *\nX * Read the needed information form stdin, and write the entry section.\nX */\nXvoid\nXoutput_entry(output, oname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX{\nX    char title[MAX_TITLE_LEN+1+1];\t/* the entry's title */\nX    char buf[MAX_COL+1+1];\t\t/* I/O buffer */\nX    int entry=0;\t\t\t/* entry number */\nX    int ret;\t\t\t\t/* fields processed by fscanf */\nX    int ok_line=0;\t\t\t/* 0 => the line is not ok */\nX    char skip;\t\t\t\t/* input to skip */\nX    FILE *date_pipe;\t\t\t/* pipe to a date command */\nX    time_t epoch_sec;\t\t\t/* seconds since the epoch */\nX    char *p;\nX\nX    /*\nX     * write the start of the section\nX     */\nX    fprintf(output, \"---entry---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * write the rule year\nX     */\nX    fprintf(output, \"rule:\\t%d\\n\", RULE_YEAR);\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /* determine if this is a fix */\nX    printf(\"Is this a fix, update or resubmittion to a \");\nX    printf(\"previous entry (enter y or n)? \");\nX    while (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {\nX\tprintf(\"\\nplease answer y or n: \");\nX    }\nX    if (buf[0] == 'y') {\nX\tfprintf(output, \"fix:\\ty\\n\");\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\tprintf(\"\\nBe sure that the title and entry number that you give\\n\");\nX\tprintf(\"are the same of as the entry you are replacing\\n\");\nX    } else {\nX\tfprintf(output, \"fix:\\tn\\n\");\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX    }\nX\nX    /*\nX     * write the title\nX     */\nX    printf(\"\\nYour title must match expression be a [a-zA-Z0-9_=] character\\n\");\nX    printf(\"followed by 0 to %d more [a-zA-Z0-9_=+-] characters.\\n\\n\",\nX\tMAX_TITLE_LEN-1);\nX    printf(\"It is suggested, but not required, that the title should\\n\");\nX    printf(\"incorporate your username; in the\\n\");\nX    printf(\"case of multiple authors, consider using parts of the usernames\\n\");\nX    printf(\"of the authors.\\n\\n\");\nX    printf(\"enter your title: \");\nX    do {\nX\t/* prompt and read a line */\nX\tif ((ok_line = get_line(title, MAX_TITLE_LEN+1, MAX_COL-9)) <= 0) {\nX\t    printf(\"\\ntitle is too long, please re-enter: \");\nX\t    continue;\nX\t}\nX\nX\t/* verify the pattern, not everyone has regexp, so do it by hand */\nX\tif (!isascii((int)title[0]) ||\nX\t    !(isalnum((int)title[0]) || title[0] == '_' || title[0] == '=')) {\nX\t    printf(\"\\ninvalid first character in the title\\n\\n\");\nX\t    printf(\"enter your title: \");\nX\t    ok_line = 0;\nX\t} else {\nX\t    for (p=(&title[1]); *p != '\\0' && *p != '\\n'; ++p) {\nX\t\tif (!isascii((int)*p) ||\nX\t\t    !(isalnum((int)*p) ||\nX\t\t      *p == '_' || *p == '=' || *p == '+' || *p == '-')) {\nX\t\t    printf(\"\\ninvalid character in the title\\n\\n\");\nX\t\t    printf(\"enter your title: \");\nX\t\t    ok_line = 0;\nX\t\t}\nX\t    }\nX\t}\nX    } while (ok_line <= 0);\nX    fprintf(output, \"title:\\t%s\", title);\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * write the entry number\nX     */\nX    printf(\"\\nEach person may submit up to %d entries per year.\\n\\n\",\nX\tMAX_ENTRY);\nX    printf(\"enter an entry number from 0 to %d inclusive: \", MAX_ENTRY-1);\nX    do {\nX\t/* get a valid input line */\nX\tfflush(stdout);\nX\tret = fscanf(stdin, \"%d[\\n]\", &entry);\nX\tcheck_io(stdin, \"stdin\", EOF_NOT_OK);\nX\t/* skip over input until newline is found */\nX\tdo {\nX\t    skip = fgetc(stdin);\nX\t    check_io(stdin, \"stdin\", EOF_NOT_OK);\nX\t    if (skip != '\\n') {\nX\t\t/* bad text in input, invalidate entry number */\nX\t\tentry = -1;\nX\t    }\nX\t} while (skip != '\\n');\nX\nX\t/* check if we have a number, and if it is in range */\nX\tif (ret != 1 || entry < 0 || entry > MAX_ENTRY-1) {\nX\t    printf(\nX\t      \"\\nThe entry number must be between 0 and %d inclusive\\n\\n\",\nX\t\tMAX_ENTRY-1);\nX\t    printf(\"enter the entry number: \");\nX\t}\nX    } while (ret != 1 || entry < 0 || entry > MAX_ENTRY-1);\nX    fprintf(output, \"entry:\\t%d\\n\", entry);\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * write the submission date\nX     */\nX    /* returns a newline */\nX    epoch_sec = time(NULL);\nX    fprintf(output, \"date:\\t%s\", asctime(gmtime(&epoch_sec)));\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * write the OS/machine host information\nX     */\nX    printf(\nX      \"\\nEnter the machine(s) and OS(s) under which your entry was tested.\\n\");\nX    output_till_dot(output, oname, \"host:\");\nX}\nX\nX/*\nX * output_remark - output the ---remark--- section\nX *\nX * Read the needed information form stdin, and write the entry section.\nX */\nXvoid\nXoutput_remark(output, oname, remark, rname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX    FILE *remark;\t\t/* stream to the file containing remark text */\nX    char *rname;\t\t/* name of the remark file */\nX{\nX    char buf[BUFSIZ+1];\t\t/* input/output buffer */\nX\nX    /*\nX     * write the start of the section\nX     */\nX    fprintf(output, \"---remark---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * copy the remark file to the section\nX     */\nX    while (fgets(buf, BUFSIZ, remark) != NULL) {\nX\tfputs(buf, output);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX    }\nX    check_io(remark, rname, EOF_OK);\nX\nX    /* be sure that the remark section ends with a newline */\nX    if (buf[strlen(buf)-1] != '\\n') {\nX\tfputc('\\n', output);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX    }\nX}\nX\nX/*\nX * output_author - output the ---author--- section\nX *\nX * Read the needed information from stdin, and write the author section.\nX * If multiple authors exist, multiple author sections will be written.\nX */\nXvoid\nXoutput_author(output, oname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX{\nX    char buf[MAX_COL+1+1];\t/* I/O buffer */\nX    int more_auths;\t\t/* TRUE => more authors to note */\nX    int auth_cnt=0;\t\t/* number of authors processed */\nX\nX    /*\nX     * prompt the user for the author section\nX     */\nX    printf(\"\\nEnter information about each author.  If your entry is after\\n\");\nX    printf(\"%s and before the contest deadline, the judges\\n\", START_DATE);\nX    printf(\"will attempt to Email back a confirmation to the first author\\n\");\nX\nX    /*\nX     * place author information for each author in an individual section\nX     */\nX    do {\nX\nX\t/* write the start of the section */\nX\tfprintf(output, \"---author---\\n\");\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* write the author */\nX\tprintf(\"\\nAuthor #%d name: \", ++auth_cnt);\nX\twhile (get_line(buf, MAX_COL+1, MAX_COL-9) <= 0) {\nX\t    printf(\"\\nname too long, please re-enter: \");\nX\t}\nX\tfprintf(output, \"name:\\t%s\", buf);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* write the organization */\nX\tprintf(\"\\nEnter the School/Company/Organization of author #%d\\n\",\nX\t    auth_cnt);\nX\tprintf(\"\\nAuthor #%d org: \", auth_cnt);\nX\twhile (get_line(buf, MAX_COL+1, MAX_COL-9) <= 0) {\nX\t    printf(\"\\nline too long, please re-enter: \");\nX\t}\nX\tfprintf(output, \"org:\\t%s\", buf);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* write the address */\nX\tprintf(\nX\t    \"\\nEnter the postal address for author #%d.  Be sure to include\\n\",\nX\t    auth_cnt);\nX\tprintf(\"your country and do not include your name.\\n\");\nX\toutput_till_dot(output, oname, \"addr:\");\nX\nX\t/* write the Email address */\nX\tprintf(\nX\t    \"\\nEnter the Email address for author #%d.  Use an address from\\n\",\nX\t    auth_cnt);\nX\tprintf(\nX\t    \"a registered domain or well known site.  If you give several\\n\");\nX\tprintf(\"forms, list them one per line.\\n\");\nX\toutput_till_dot(output, oname, \"email:\");\nX\nX\t/* write the anonymous status */\nX\tprintf(\"\\nShould author #%d remain anonymous (enter y or n)? \",\nX\t    auth_cnt);\nX\twhile (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {\nX\t    printf(\"\\nplease answer y or n: \");\nX\t}\nX\tfprintf(output, \"anon:\\t%s\", buf);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* determine if there is another author */\nX\tprintf(\"\\nIs there another author (enter y or n)? \");\nX\twhile (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {\nX\t    printf(\"\\nplease answer y or n: \");\nX\t}\nX\tif (buf[0] == 'y') {\nX\t    more_auths = TRUE;\nX\t} else {\nX\t    more_auths = FALSE;\nX\t}\nX    } while (more_auths == TRUE);\nX    return;\nX}\nX\nX/*\nX * output_info - output the ---info--- section(s)\nX *\nX * Read the needed information from stdin, and write the info section.\nX * If multiple info files exist, multiple info sections will be written.\nX */\nXvoid\nXoutput_info(output, oname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX{\nX    char infoname[MAX_FILE_LEN+1];\t/* filename buffer */\nX    char yorn[1+1];\t\t/* y or n answer */\nX    char *uuname;\t\t/* name to uuencode as */\nX    FILE *infile;\t\t/* info file stream */\nX\nX    /*\nX     * prompt the user for info information\nX     */\nX    printf(\"\\nInfo files should be used only to supplement your entry.\\n\");\nX    printf(\"For example, info files may provide sample input or detailed\\n\");\nX    printf(\"information about your entry.  Because they are supplemental,\\n\");\nX    printf(\"the entry should not require them to exist.\\n\\n\");\nX\nX    /*\nX     * while there is another info file to save, uuencode it\nX     */\nX    printf(\"Do you have a info file to include (enter y or n)? \");\nX    while (get_line(yorn, 1+1, 0) <= 0 || !(yorn[0]=='y' || yorn[0]=='n')) {\nX\tprintf(\"\\nplease answer y or n: \");\nX    }\nX    while (yorn[0] == 'y') {\nX\nX\t/* read the filename */\nX\tprintf(\"\\nEnter the info filename: \");\nX\twhile (get_line(infoname, MAX_FILE_LEN+1, 0) <= 0) {\nX\t    printf(\"\\nInfo filename too long, please re-enter: \");\nX\t}\nX\nX\t/* compute the basename of the info filename */\nX\t/* remove the trailing newline */\nX\tuuname = &infoname[strlen(infoname)-1];\nX\t*uuname = '\\0';\nX\t/* avoid rindex/shrrchr compat issues, do it by hand */\nX\tfor (--uuname; uuname > infoname; --uuname) {\nX\t    if (*uuname == '/') {\nX\t\t++uuname;\nX\t\tbreak;\nX\t    }\nX\t}\nX\nX\t/* attempt to open the info file */\nX\tinfile = fopen(infoname, \"r\");\nX\tif (infile == NULL) {\nX\t    fprintf(stderr, \"\\n%s: cannot open info file: %s: \",\nX\t\tprogram, infoname);\nX\t    perror(\"\");\nX\t    continue;\nX\t}\nX\nX\t/*\nX\t * write the start of the section\nX\t */\nX\tfprintf(output, \"---info---\\n\");\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/* uuencode the info file */\nX\tuuencode(output, oname, infile, infoname, UUINFO_MODE, uuname);\nX\nX\tprintf(\"\\nDo you have another info file to include (enter y or n)? \");\nX\twhile (get_line(yorn, 1+1, 0) <= 0 || !(yorn[0]=='y' || yorn[0]=='n')) {\nX\t    printf(\"\\nplease answer y or n: \");\nX\t}\nX    };\nX    return;\nX}\nX\nX/*\nX * output_build - output the ---build--- section\nX *\nX * Read the needed information from stdin, and write the build section.\nX */\nXvoid\nXoutput_build(output, oname, build, bname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX    FILE *build;\t\t/* open build file stream */\nX    char *bname;\t\t/* name of the build file */\nX{\nX    /*\nX     * write the start of the section\nX     */\nX    fprintf(output, \"---build---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * uuencode the program file\nX     */\nX    uuencode(output, oname, build, bname, UUBUILD_MODE, UUBUILD_NAME);\nX    return;\nX}\nX\nX/*\nX * output_program - output the ---program--- section\nX *\nX * Read the needed information form stdin, and write the program section.\nX */\nXvoid\nXoutput_program(output, oname, prog, pname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX    FILE *prog;\t\t\t/* open program stream */\nX    char *pname;\t\t/* name of program file */\nX{\nX    /*\nX     * write the start of the section\nX     */\nX    fprintf(output, \"---program---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * uuencode the program file\nX     */\nX    uuencode(output, oname, prog, pname, UUPROG_MODE, UUPROG_NAME);\nX    return;\nX}\nX\nX/*\nX * output_end - output the ---end--- section\nX *\nX * Read the needed information form stdin, and write the 'end section'.\nX */\nXvoid\nXoutput_end(output, oname)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX{\nX    /*\nX     * write the final section terminator\nX     */\nX    fprintf(output, \"---end---\\n\");\nX    check_io(output, oname, EOF_NOT_OK);\nX    return;\nX}\nX\nX/*\nX * get_line - get an answer from stdin\nX *\nX * This function will flush stdout, in case a prompt is pending, and\nX * read in the answer.\nX *\nX * This function returns 0 if the line is too long, of the length of the\nX * line (including the newline) of the line was ok.  This function does\nX * not return if ERROR or EOF.\nX */\nXint\nXget_line(buf, siz, maxcol)\nX    char *buf;\t\t\t/* input buffer */\nX    int siz;\t\t\t/* length of input, including the newline */\nX    int maxcol;\t\t\t/* max col allowed, 0 => disable check */\nX{\nX    int length;\t\t\t/* the length of the input line */\nX\nX    /* flush terminal output */\nX    fflush(stdout);\nX\nX    /* read the line */\nX    if (fgets(buf, siz+1, stdin) == NULL) {\nX\t/* report the problem */\nX\tcheck_io(stdin, \"stdin\", EOF_NOT_OK);\nX    }\nX\nX    /* look for the newline */\nX    length = strlen(buf);\nX    if (buf[length-1] != '\\n') {\nX\tint eatchar;\t\t/* the char being eaten */\nX\nX\t/* no newline found, line must be too long, eat the rest of the line */\nX\tdo {\nX\t    eatchar = fgetc(stdin);\nX\t} while (eatchar != EOF && eatchar != '\\n');\nX\tcheck_io(stdin, \"stdin\", EOF_NOT_OK);\nX\nX\t/* report the situation */\nX\treturn 0;\nX    }\nX\nX    /* watch for long lines, if needed */\nX    if (maxcol > 0 && (length > maxcol || col_len(buf) > maxcol)) {\nX\t/* report the situation */\nX\treturn 0;\nX    }\nX\nX    /* return length */\nX    return length;\nX}\nX\nX/*\nX * output_till_dot - output a set of lines until '.' by itself is read\nX *\nX * This routine will read a set of lines until (but not including)\nX * a single line with '.' is read.  The format of the output is:\nX *\nX *\tleader:\\tfirst line\nX *\t\\tnext line\nX *\t\\tnext line\nX *\t   ...\nX *\nX * This routine will not return if I/O error or EOF.\nX */\nXvoid\nXoutput_till_dot(output, oname, leader)\nX    FILE *output;\t\t/* entry's output file stream */\nX    char *oname;\t\t/* name of the output file */\nX    char *leader;\t\t/* the lead text for the first line */\nX{\nX    char buf[BUFSIZ+1];\t\t/* input buffer */\nX    int count;\t\t\t/* lines read */\nX    int done=FALSE;\t\t/* TRUE => finished reading input */\nX\nX    /* instruct the user on how to input */\nX    printf(\"\\nTo end input, enter a line with a single period.\\n\");\nX\nX    /* read lines until '.' or EOF */\nX    count = 0;\nX    while (!done) {\nX\t/* issue the prompt */\nX\tprintf(\"%s\\t\", (count>0) ? \"\" : leader);\nX\tfflush(stdout);\nX\nX\t/* get the line */\nX\tif (get_line(buf, BUFSIZ, MAX_COL-9) <= 0) {\nX\t    printf(\"\\nline too long, please re-enter:\\n\\t\");\nX\t    continue;\nX\t}\nX\nX\t/* note if '.' was read */\nX\tif (strcmp(buf, \".\\n\") == 0) {\nX\t    done = TRUE;\nX\t}\nX\nX\t/* write line if we read something */\nX\tif (!done) {\nX\t    fprintf(output, \"%s\\t%s\", (count++>0) ? \"\" : leader, buf);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\t}\nX    }\nX\nX    /* if no lines read, at least output something */\nX    if (count <= 0) {\nX\tfprintf(output, \"%s\\t.\\n\", leader);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX    }\nX    return;\nX}\nX\nX/*\nX * col_len - determine the highest that a string would reach\nX *\nX * Given a string, this routine returns that a string would reach\nX * if the string were printed at column 1.  Tab stops are assumed\nX * to start at 9, 17, 25, 33, ...\nX */\nXint\nXcol_len(string)\nX    char *string;\t\t/* the string to examine */\nX{\nX    int col;\t/* current column */\nX    char *p;\t/* current char */\nX\nX    /* scan the string */\nX    for (col=0, p=string; *p != '\\0' && *p != '\\n'; ++p) {\nX\t/* note the column shift */\nX\tcol = (*p=='\\t') ? 1+((col+8)/8*8) : col+1;\nX    }\nX    if (*p == '\\n') {\nX\t--col;\nX    }\nX\nX    /* return the highest column */\nX    return col;\nX}\nX\nX/*\nX * check_io - check for EOF or I/O error on a stream\nX *\nX * Does not return if EOF or I/O error.\nX */\nXvoid\nXcheck_io(stream, name, eof_ok)\nX    FILE *stream;\t\t/* the stream to check */\nX    char *name;\t\t\t/* the name of this stream */\nX    int eof_ok;\t\t\t/* EOF_OK or EOF_NOT_OK */\nX{\nX    /* test for I/O error */\nX    if (ferror(stream)) {\nX\tfprintf(stderr, \"%s: error on %s: \", program, name);\nX\tperror(\"\");\nX\texit(1);\nX\nX    /* test for EOF */\nX    } else if (eof_ok == EOF_NOT_OK && feof(stream)) {\nX\tfprintf(stderr, \"%s: EOF on %s\\n\", program, name);\nX\texit(1);\nX    }\nX    return;\nX}\nX\nX/*\nX * uuencode - uuencode a file\nX *\nX * Perform the uuencoding process identical to the process performed\nX * by the uuencode(1) utility.\nX *\nX * This routine implements the algorithm described in the uuencode(5)\nX * 4.3BSD Reno man page.\nX */\nXvoid\nXuuencode(output, oname, infile, iname, umode, uname)\nX    FILE *output;\t\t/* output file stream */\nX    char *oname;\t\t/* output filename */\nX    FILE *infile;\t\t/* input file stream */\nX    char *iname;\t\t/* input filename */\nX    int umode;\t\t\t/* the mode to put on the uuencode file */\nX    char *uname;\t\t/* name to put on the uuencode file */\nX{\nX    char buf[UUENCODE_LEN+1];\t/* the uuencode buffer */\nX    int read_len;\t\t/* actual number of chars read */\nX    int val;\t\t\t/* 6 bit chunk from buf */\nX    char filler='\\0';\t\t/* filler uuencode pad text */\nX    char *p;\nX\nX    /*\nX     * output the initial uuencode header\nX     */\nX    fprintf(output, \"begin %o %s\\n\", umode, uname);\nX    check_io(output, oname, EOF_NOT_OK);\nX\nX    /*\nX     * clear out the input buffer\nX     */\nX    for (p=buf; p < &buf[sizeof(buf)/sizeof(buf[0])]; ++p) {\nX\t*p = '\\0';\nX    }\nX\nX    /*\nX     * We will process UUENCODE_LEN chars at a time, forming\nX     * a single output line each time.\nX     */\nX    while ((read_len=fread(buf,sizeof(buf[0]),UUENCODE_LEN,infile)) > 0) {\nX\nX\t/*\nX\t * the first character is the length character\nX\t */\nX\tfputc(UUENCODE(read_len), output);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/*\nX\t * We will convert 24 bits at a time.  Thus we will convert\nX\t * 3 sets of 8 bits into 4 sets of uuencoded 6 bits.\nX\t */\nX\tfor (p=buf; read_len>0; read_len-=3, p+=3) {\nX\nX\t    /* bits 0 to 5 */\nX\t    val = (p[0]>>2)&0x3f;\nX\t    fputc(UUENCODE(val), output);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\nX\t    /* bits 6 to 11 */\nX\t    val = ((p[0]<<4)&0x30) | ((p[1]>>4)&0x0f);\nX\t    fputc(UUENCODE(val), output);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\nX\t    /* bits 12 to 17 */\nX\t    val = ((p[1]<<2)&0x3c) | ((p[2]>>6)&0x03);\nX\t    fputc(UUENCODE(val), output);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\nX\t    /* bits 18 to 23 */\nX\t    val = p[2]&0x3f;\nX\t    fputc(UUENCODE(val), output);\nX\t    check_io(output, oname, EOF_NOT_OK);\nX\t}\nX\nX\t/* end of UUENCODE_LEN line */\nX\tfputc('\\n', output);\nX\tcheck_io(output, oname, EOF_NOT_OK);\nX\nX\t/*\nX\t * clear out the input buffer  (don't depend on bzero() or memset())\nX\t */\nX\tfor (p=buf; p < &buf[sizeof(buf)/sizeof(buf[0])]; ++p) {\nX\t    *p = '\\0';\nX\t}\nX    }\nX\nX    /* check the last read on the input file */\nX    check_io(infile, iname, EOF_OK);\nX\nX    /* write end of uuencode file */\nX    fprintf(output, \"%c\\nend\\n\", UUENCODE(filler));\nX    check_io(output, oname, EOF_NOT_OK);\nX}\nSHAR_EOF\nchmod 0444 mkentry.c ||\necho \"restore of mkentry.c failed\"\nset `wc -c mkentry.c`;Wc_c=$1\nif test \"$Wc_c\" != \"34482\"; then\n\techo original size 34482, current size $Wc_c\nfi\n# ============= obfuscate.info ==============\necho \"x - extracting obfuscate.info (Text)\"\nsed 's/^X//' << 'SHAR_EOF' > obfuscate.info &&\nX1993 Obfuscated contest information\nX\nXCopyright (c) Landon Curt Noll & Larry Bassel, 1993.\nXAll Rights Reserved.  Permission for personal, education or non-profit use is\nXgranted provided this this copyright and notice are included in its entirety\nXand remains unaltered.  All other uses must receive prior permission in writing\nXfrom both Landon Curt Noll and Larry Bassel.\nX\nXThe International Obfuscated C Code Contest (IOCCC), in the sprit of\nXco-operation, is willing mention other programming contents, as space\nXpermits.\nX\nXHow to have your contest included in this file:\nX\nX    If you wish the IOCCC judges to include your contest in this file,\nX    send a request to:\nX\nX\tjudges@toad.com\nX\nX    We request that contest descriptions be limited to 50 lines and to\nX    not exceed 2500 bytes.  We typically request that your contest\nX    include a current description of the IOCCC.\nX\nX    In order to be included in this file for given year, we must\nX    receive a current description no EARLIER than Jan 1 00:00:00 UTC and\nX    no LATER than Feb 15 00:00:00 UTC.  Agreement to publish your\nX    contest must also be obtained prior to Feb 15.  Annual contests\nX    that fail to submit a new entry will be dropped from this file.\nX\nXOfficial Disclaimer:  (pardon the officialese)\nX\nX    The contents noted below, other than the IOCCC, are not affiliated\nX    with the IOCCC, nor are they endorsed by the IOCCC.  We reserve the\nX    right to refuse to print information about a given contest.\nX\nX    The information below was provided by the particular contest\nX    organizer(s) and printed by permission.  Please contact the\nX    contest organizer(s) directly regarding their contents.\nX\nXWith that official notice given, we present for your ENJOYMENT, the following\nXinformation about contents:\nX\nX---------------------------------------------------------------------------\nX\nX    10th International Obfuscated C Contest\nX\nX\t\"The original obfuscated contest\"\nX\nX    Obfuscate:  tr.v.  -cated, -cating, -cates.  1. a.  To render obscure.\nX                b.  To darken.  2. To confuse:  Their emotions obfuscated\nX\t\ttheir judgment.  [LLat. obfuscare, to darken : ob(intensive) +\nX                Lat. fuscare, to darken < fuscus, dark.] -obfuscation n.\nX                obfuscatory adj.\nX\nX    GOALS OF THE CONTEST:\nX\nX        * To write the most Obscure/Obfuscated C program under the rules below.\nX        * To show the importance of programming style, in an ironic way.\nX        * To stress C compilers with unusual code.\nX        * To illustrate some of the subtleties of the C language.\nX        * To provide a safe forum for poor C code.  :-)\nX\nX    The IOCCC is the grandfather of USENET programming contests.  Since\nX    1984, this contest demonstrated that a program that simply works\nX    correctly is not sufficient.  The IOCCC has also done much to add\nX    the arcane word 'obfuscated' back into the English language.\nX    (see \"The New Hacker's Dictionary\" by Eric Raymond)\nX\nX    You are strongly encouraged to read the new contest rules before\nX    sending any entries.  The rules, and sometimes the contest Email\nX    address itself, change over time.  A valid entry one year may\nX    be rejected in a later year due to changes in the rules.  The typical\nX    start date for contests is in early March.  Contest rules are normally not\nX    finalized and posted until the beginning of the contest.  The typical\nX    closing date for contests are in early May.\nX\nX    The rules and the guidelines may (and often do) change from year to\nX    year.  You should be sure you have the current rules and guidelines\nX    prior to submitting entries.  To obtain them, send Email to the address\nX    above and use the subject 'send rules'.\nX\nX    One may obtain winners of previous contests (1984 to date), via ftp from:\nX\nX\thost: ftp.uu.net\t(192.48.96.9)\nX\tuser: anonymous\nX\tpass: yourname@yourhost\nX\tdir:  ~/pub/ioccc\nX\nX    As a last resort, previous winners may be obtained by sending Email\nX    to the above address.  Please use the subject 'send YEAR winners',\nX    where YEAR is a single 4 digit year, a year range, or 'all'.\nX\nX---------------------------------------------------------------------------\nX\nX    0th International Obfuscated Perl Contest\nX\tBy: Landon Noll & Larry Wall\nX\nX    This content is being planned.  Someday when Landon & Larry are not too\nX    busy, they will actually get around to posting the first set of rules!\nX\nX    Landon says: \"Yes, I know that I said we would have a contest in 1993,\nX\t\t  but other existing projects got in the way.  Hopefully\nX\t\t  something will be developed after Nov 1993.\"\nX\nX---------------------------------------------------------------------------\nX\nX                2nd International obFUsCaTeD POsTsCripT Contest\nX                     Jonathan Monsarrat (jgm@cs.brown.edu)\nX                         Alena Lacova (alena@nikhef.nl)\nX\nX    A  contest of  programming skills  and  knowledge, exclusively  for the\nX    PostScript programming language. Its purpose:\nX\nX    * To spread knowledge of PostScript and its details.\nX    * To applaud those with the best tricks.\nX    * To prove  that humans can  beat those damnable  machine generators at\nX      their own game by writing  the most obscure and mysterious PostScript\nX      programs ever.\nX\nX    Winners will receive the fame and attention that goes with having their\nX    program entry posted as a winner to programmers world-wide.\nX\nX    The 1993 contest rules and results are available by ftp as\nX    ``wilma.cs.brown.edu:pub/postscript/obfuscated*.shar'', or individually\nX    in the obfuscated directory. The judges will post the 1994 rules\nX    in November to comp.lang.postscript on Usenet, and other places.\nX    Send questions to jgm@cs.brown.edu.\nX\nX    Categories include: Best Obfuscated PostScript, Best Artwork,\nX    Most Compact, Best Interactive Program, Most Useful, and\nX    anything so unusual and creative that it deserves an award.\nX\nX    The judges will choose the winners of each category.\nX\nX    Alena Lacova  is a system  administrator at NIKHEF  (Institute for High\nX    Energy and Nuclear  Physics) in the  Netherlands. She is  the author of\nX    The PostScript Chaos  Programs, which draw  Julia sets, Mandelbrot sets\nX    and other kinds of fractal functions.\nX\nX    Jonathan Monsarrat is a graduate  student from MIT and Brown University\nX    in  the  U.S.A. He  is  the  FAQ maintainer  for  the  Usenet newsgroup\nX    comp.lang.postscript and the author of The PostScript Zone and LameTeX.\nX .\nX\nSHAR_EOF\nchmod 0444 obfuscate.info ||\necho \"restore of obfuscate.info failed\"\nset `wc -c obfuscate.info`;Wc_c=$1\nif test \"$Wc_c\" != \"6418\"; then\n\techo original size 6418, current size $Wc_c\nfi\nexit 0\n-- \nSunnyvale residents: Vote Landon Noll for Sunnyvale City Council seat 1.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11161, "properties": {"category": "rec.autos", "text": "From: mps1@cec1.wustl.edu (Mihir Pramod Shah)\nSubject: Re: Saturn performance(was Re: saturn -- puzzled by its pricing\nNntp-Posting-Host: cec1\nOrganization: Washington University, St. Louis MO\nDistribution: na\nLines: 27\n\nIn article <4fjDcfu00iV2I9Kap_@andrew.cmu.edu> \"Jason M. Roth\" <jr4q+@andrew.cmu.edu> writes:\n>>I can't imagine any Civic or Saturn owners flex'n there egos in stop light\n>>races. It generates as much excitement as two nerds challenging each other\n>>in a game of one-on-one basketball!!\n>\n>The SL2 does 0-60 in about 8.5; note that this is closer to a 968 than\n>to a Paseo or Storm (pseudo-sporty cars). That's a ridiculous\n>comparison, I know, but the point is that Saturns (and high-end Civics,\n>for that matter) accelerate just fine, in fact better than most\n>unimproved \"muscle\" cars of the 60s; 300 hp is great, but tied to 2\n>tons, it just doesn't go that quick. Saturns, on the other hand, use 125\n>hp tied to 2400 lbs with some short gearing to move very quickly off the\n>line. Anyway....\n>\n>\n>\n\nWhile your 0-60 time is consistent with most car magazines and reports, I saw\nthe PBS MotorWeek show clock a 5-speed SL2 at 7.9 seconds.  I'm sure that most\nSL2 owners will be VERY lucky to get this speed, but 7.9 seconds is still\nastonishingly fast for a small 4-door.  A new Civic EX runs about 8.2 seconds\n0-60, if I'm not mistaken.  Most cars in this class are lucky to be in the\n9-second range.\n\n\nMihir Shah\n\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.527+0000", "event": "documents", "entityId": 11162, "properties": {"category": "rec.sport.baseball", "text": "From: paul@csd4.csd.uwm.edu (Paul R Krueger)\nSubject: Brewer bullpen rocked again...\nOrganization: Computing Services Division, University of Wisconsin - Milwaukee\nLines: 30\nDistribution: world\nNNTP-Posting-Host: 129.89.7.4\nOriginator: paul@csd4.csd.uwm.edu\n\nFor the second straight game, California scored a ton of late runs to crush\nthe Brewhas. It was six runs in the 8th for a 12-5 win Monday and five in\nthe 8th and six in the 9th for a 12-2 win yesterday. Jamie Navarro pitched\nseven strong innings, but Orosco, Austin, Manzanillo and Lloyd all took part\nin the mockery of a bullpen yesterday. How's this for numbers? Maldanado has\npitched three scoreless innings and Navarro's ERA is 0.75. The next lowest\non the staff is Wegman at 5.14. Ouch!\n\nIt doesn't look much better for the hitters. Hamilton is batting .481, while\nThon is hitting .458 and has seven RBI. The next highest is three. The next\nbest hitter is Jaha at .267 and then Vaughn, who has the team's only HR, at\n.238. Another ouch. Looking at the stats, it's not hard to see why the team\nis 2-5. In fact, 2-5 doesn't sound bad when you're averaging three runs/game\nand giving up 6.6/game. \n\nStill, it's early and things will undoubtedly get better. The offense should\ncome around, but the bullpen is a major worry. Fetters, Plesac and Austin gave\nthe Brewers great middle relief last year. Lloyd, Maldanado, Manzanillo, \nFetters, Austin and Orosco will have to pick up the pace for the team to be\nsuccessful. Milwaukee won a number of games last year when middle relief either\nheld small leads or kept small deficits in place. The starters will be okay,\nthe defense will be alright and the hitting will come around, but the bullpen\nis a big question mark.\n\nIn other news, Nilsson and Doran were reactivated yesterday, while William\nSuero was sent down and Tim McIntosh was picked up by Montreal. Today's game\nwith California was cancelled.\n\n--salty\n\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11163, "properties": {"category": "soc.religion.christian", "text": "From: JBF101@psuvm.psu.edu\nSubject: same-sex marriages\nOrganization: Penn State University\nLines: 17\n\nThere has been some talk recently of Latin rites from the early Church used to\nbless same-sex unions.If anyone has any idea where copies of these rites\nexist (in whole or in part), please notify me by e-mail.  (I understand that\nsimilar ceremonies written in Slavonic exist as well.  Let me know where I can\nfind these.)  It doesn't matter whether the Latin rite is in the original or a\ntranslation.  However, I would prefer to have an English version of the Slavon-\nic rite, if it exists.  Thanks in advance.\n\nDoug Hayes @ PSU\n\n[We've had questions about this in the past.  The only source I know\nof is claims by John Boswell in some talks.  He is said to be working\non publication, but as far as I know, nothing is published yet.  I\nhaven't heard of any other source.  If anyone knows of another source,\nplease tell us.  But I think we're going to have to wait for Boswell's\npublication to appear in order to see what he's really talking about.\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11164, "properties": {"category": "soc.religion.christian", "text": "From: schnitzi@osceola.cs.ucf.edu (Mark Schnitzius)\nSubject: Re: Atheists and Hell\nOrganization: University of Central Florida\nLines: 70\n\ndb7n+@andrew.cmu.edu (D. Andrew Byler) writes:\n\n>Mark Schnitzius writes:\n\n>>>  Literal interpreters of the Bible will have a problem with this view, since\n>>>the Bible talks about the fires of Hell and such.  \n>> \n>>This is something I've always found confusing.  If all your nerve endings\n>>die with your physical body, why would flame hurt you?  How can one \"wail\n>>and gnash teeth\" with no lungs and no teeth?\n\n>One can feel physical pain by having a body, which, if you know the\n>doctrine of the resurrection of the body, is what people will have after\n>the great judgement.  \"We look for the resurrection of the dead, and the\n>life of the world to come.\"  - Nicene-Constantinopolitan Creed.  You\n>will have both body and soul in hell - eventually.\n\nNow this is getting interesting!\n\nI was raised Roman Catholic before becoming an atheist, so I have stated\nthis Creed you quote nearly every Sunday until I was about 18.  For some\nreason, I always took the 'resurrection' in this statement to mean the\nresurrection of the soul, but I guess resurrection does strictly mean\nthe raising of the physical body.  I have some questions on this point:\n\n1.  I always thought that Christians believe the descent into hell was \npretty much immediate, and that there are people burning in hell right\nnow.  You seem to be implying that it will not occur until after the\n\"great judgement\" (which I read as meaning the proverbial Judgment Day).\nI was always a little confused on this point, even when I was with the\nchurch -- maybe someone can clear it up for me.  Where will my \"soul\"\n(which, by the way, I don't believe in) exist until that time?\n\n2.  Will the new body I will have be created out of the same atoms \nthat my body now is made of, or will it be built from scratch?  My\nphysical body now is susceptible to aging, etc. -- so I guess my\nnew body will have to be radically different in order to be immortal\nso it can be tortured for all eternity?\n\n3.  Since I will have a physical body, I assume it will need a physical\nplace to exist in -- where is this hell?  In the center of the earth?\nDo you think we could find it if we dig?\n\nMark Schnitzius\nschnitzi@eola.cs.ucf.edu\nUniv. of Central Florida\n\n[There is not complete agreement on the details of the afterlife.  I\nthink the most common view is that final disposition does not occur\nuntil a final judgement, which is still in the future.  In the\nmeantime, some believe that people \"sleep\" until the final\nresurrection (or because God is above time, pass directly from death\nto the future time when the resurrection occurs), while others believe\nthat souls have a disembodied, pre-resurrection existence until then.\nThere are probably other alternatives that I'm omitting.\n\nThe new body is generally conceived of being implemented in a\ndifferent \"technology\" than the current one, one which is not mortal.\n(Paul talks about the mortal being raised to immortality, and Jesus'\nresurrected body -- which is the first example -- clearly was not\nsubject to the same kind of limitations as ours.)  It is assumed that\nthere are enough similarities that people will recognize each other,\nbut I don't think most people claim to know the details.  I don't\nthink I'd say it's the same atoms.  I'd assume there would be some\nanalog of a physical place, but I wouldn't expect to find it under the\nearth or up in the sky.  I'd suspect that it's in another dimension,\noutside this physical world, or whatever.  But again, we have little\nin the way of details.\n\n--clh]\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11165, "properties": {"category": "comp.sys.mac.hardware", "text": "From: c60b-3jl@web-3h.berkeley.edu (James Wang)\nSubject: Re: Calling all Mac gurus\nOrganization: University of California, Berkeley\nLines: 17\nDistribution: world\nNNTP-Posting-Host: web-3h.berkeley.edu\n\nIn article <1qvs9t$q3f@usenet.INS.CWRU.Edu> Charles P. Cox, Jr. <cox@snowhite.eeap.cwru.edu> writes:\n>Question for those familiar with Quadra VRAM:\n\n>I put 2 256K VRAM SIMMs in my Quadra 700 (in the 2 slots closest to the\n>RAM SIMM slots) and I got no results whatsoever.  I have been told that\n>the built-in video should support at least 16bit and maybe 24bit color on\n>a Macintosh Color Display.  However, the Monitors control panel still\n>lists 8bit (256 colors) as the highest possible.\n\nthe Q700 will only do 8bit or 24bit color.  if you want the higher\ncolor depth, it's 2MB's of VRAM altogether for a monitor up to 16\".\n\nfor a 21\" monitor, you can get 8bit max.\n\nhope this answers your questions.\n\nJames Wang.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11166, "properties": {"category": "comp.windows.x", "text": "From: amit@aryeh.uchicago.edu (Yali Amit)\nSubject: Problems with Open Windows\nOrganization: Dept. of Statistics\nLines: 22\n\n\n\n\n\n After having OpenWindows \n(Version 3 for SunOS 4.1) or Xwindows\nrunning continuously on my machine for 3-4 days,\nthe following message appears  when trying to open\na new window, or to run any program that needs to open windows.\n\nXView error: Cannot open connection to window server: :0.0 (Server\npackage)\n\nI would greatly appreciate any suggestions to solve this problem.\n\nYali Amit\nDepartment of Statistics\nUniversity of Chicago \nChicago IL 60615\n\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11167, "properties": {"category": "talk.politics.misc", "text": "From: rcollins@ns.encore.com (Roger Collins)\nSubject: Re: Limiting Govt (was Re: Employment (was Re: Why not concentrate...)\nReply-To: rcollins@encore.com\nOrganization: Encore Computer Corporation\nNntp-Posting-Host: sysgem1.encore.com\nLines: 62\n\nsteveh@thor.isc-br.com (Steve Hendricks) writes:\n|> Let me try to drag this discussion back to the original issues.  As\n|> I've noted before, I'm not necessarily disputing the benefits of \n|> eliminating anti-competitive legislation with regard to auto dealers,\n|> barbers, etc.  One need not, however, swallow the entire libertarian\n|> agenda to accomplish this end.  Just because one grants the benefits of\n|> allowing anyone who wishes to cut hair to sell his/her services without\n|> regulation does not mean that the same unregulated barbers should be \n|> free to bleed people as a medical service without government intervention.  \n|> (As some/many libertarians would argue.)  \n|> \n|> On a case by case basis, the cost/benefit ratio of government regulation\n|> is obviously worthwhile.  The libertarian agenda, however, does not call\n|> for this assessment.  It assumes that the costs of regulation (of any\n|> kind) always outweigh its benefits.  This approach avoids all sorts of \n|> difficult analysis, but it strikes many of the rest of us as dogmatic, \n|> to say the least.\n|> \n|> I have no objection to an analysis of medical care, education, \n|> national defense or local police that suggests a \"free market\" can provide\n|> a more effective, efficient means of accomplishing social objectives\n|> than is provided through \"statist\" approaches.   With some notable\n|> exceptions, however, I do not see such nitty-gritty, worthwhile \n|> analysis being carried out by self-professed libertarians.  \n\nExcellently put!\n\nEven as a libertarian, I have to admit government does do some things I\nlike.  There is a beautiful performing arts complex in Ft.  Lauderdale\nthat was partially built with tax dollars (I don't know how much was\nprivate and how much was stolen, I mean public) but it is beautiful and\nI enjoy it.  (Keep in mind, though, most of the people in the city will\nnever attend a single performance there, so they might feel differently\nabout having to help pay for it.)\n\nHowever, I have to disagree about it being desireable or efficient to\ngive government intervention-power on a case-by-case basis.  In fact,\nwe have a lot better luck maintaining our freedom of speech precisely\nbecause it is not decided on a case-by-case basis as much as other\nissues.  Judges decide whether political speech is allowed on the\nsidewalk in front of the post office.  They do not try to decide just\nwhether pro-nazi, pro-choice, pro-life, or pro-tax political speech\nshould be allowed on the sidewalk in front of the post office.  You can\nimagine the result if right to free speech was decided by the majority\non a case-by-case basis.\n\nNot so with economic issues.  Government does tell taxi-drivers exactly\nwhat they can charge, but not the bus lines or the lawyers.\n\nJust as it is not desireable to decide rights of free speech on a\ncase-by-case basis, we should not decide rights to free enterprise on a\ncase-by-case basis.\n\nThere is hope that a government can be restricted from interferring with\nfree enterprise.  But there is no hope, in my opinion, of having a\ngovernment that interferes with free enterprise in an \"efficient\"\nmanner; I call it political market failure.\n\nThus, if you value freedom and the abundance it produces, you have to\nswallow the \"whole libertarian agenda.\"\n\nRoger Collins\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11168, "properties": {"category": "sci.crypt", "text": "From: TSOS@uni-duesseldorf.de (Detlef Lannert)\nSubject: Re: Facinating facts: 30 bit serial number, possibly fixed S1 and S2\nOrganization: Universitaetsrechenzentrum, Heinrich-Heine-Universitaet, Duesseldorf\nLines: 40\nNNTP-Posting-Host: lannert.rz.uni-duesseldorf.de\n\nIn article <PMETZGER.93Apr20065402@snark.shearson.com> pmetzger@snark.shearson.com (Perry E. Metzger) writes:\n\n>Hmmm. We must assume that generating the unit key U from the serial\n>number N rather than generating it from a randomly selected U1 and U2\n>is an intentional way of assuring a \"fail safe\" for the government --\n>U is completedly determined given S1, S2 and N. \n [...]\n>If S1 and S2 do not change, even if they remain secret I wonder if\n>they can somehow be back-derived given enough unit key/serial number\n>pairs. [...]\n\nMaybe 300 such pairs suffice to reconstruct S1 and S2? By such a back-\ndoor (in the encryption algorithm perhaps) it would be possible (for  \nthe manufacturer) to get the keys of all chips that were programmed in \none session. This would not, btw, enable anybody else to retrieve the \nkeys in the same way because they'll never get a bunch of 300 (N,U) \npairs with identical S1 and S2. (Note that these have to be constant \nfor the whole batch by the very nature of the procedure, i.e., they \nhave to be typed in manually by the `random number supplying agents'!)\n\nAnd I was wondering why they'll always do 300 chips in one session ... \nSince the procedure described by Ms Denning imposes high costs on the \nproduction of every chip (at least three persons for one hour each, \nplus the cost of a laptop finally blown to pieces in a spectacular, \nHollywood-like bonfire; add travelling expenses, drinks and lighting, \ndivide the sum by 300) there won't be a larger demand -- not from the \nprivate sector anyway. \n\nAnd let me mention one other thought that certainly has occurred to all \nthe notoriously paranoid people in this group before: Who is going to \nverify that _no_ interested party will perform tempest attacks on the \nvault?? \n\nWhere there's so much smoke and mirrors -- there can't be a nice, honest \nfire but something really worth hiding ... \n--\nDetlef Lannert       DC3EK       E-Mail: tsos@rz.uni-duesseldorf.de\nPGP 2.2 key via server or finger lannert@clio.rz.uni-duesseldorf.de\n\"I am Psmith.\" - \"Oh, you're Smith, are you?\" - \"With a preliminary\nP. Which, however, is not sounded.\"                   P.G.Wodehouse\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11169, "properties": {"category": "rec.autos", "text": "From: cfj@ssd.intel.com (Charlie Johnson)\nSubject: Re: LH car order delay\nNntp-Posting-Host: alaska\nOrganization: Intel Corporation\nLines: 23\n\nIn article <1993Apr2.135926.1@skcla.monsanto.com>, mas@skcla.monsanto.com writes:\n|> I read an article in the 3/25 Chicago Tribune stating that Chrysler is\n|> having problems addressing the demand for the 3.5L engine for it's LH\n|> cars.  Can anyone post how long they are waiting for an ordered car or\n|> how long they have been told they'll have to wait??\n|> \n|> Thanks!\n|> \n|> John Mas\n|> \n|> \n|> E-Mail Address     ::     MAS@SKCLA.MONSANTO.COM\n|> \nI ordered an Intrepid ES on Jan 25th and haven't seen it yet.  I called\na couple of weeks ago and was told 2-3 more weeks.  It's probably time\nto call again.\n-- \nCharles Johnson\nIntel Corporation\nSupercomputer Systems Division\nMS CO1-01\n15201 NW Greenbrier Pkwy\nBeaverton, OR  97006           phone: (503)629-7605  email: cfj@ssd.intel.com\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11170, "properties": {"category": "comp.windows.x", "text": "From: howardy@freud.nia.nih.gov (Howard Wai-Chun Yeung)\nSubject: need shading program example in X\nOrganization: (Natl. Institutes of Health, Bethesda, MD)\nDistribution: na\nLines: 9\n\n\nDo anyone know about any shading program based on Xlib in the public domain?\nI need an example about how to allocate correct colormaps for the program.\n\nAppreciate the help.\n\nHoward.\n\n\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11171, "properties": {"category": "rec.sport.hockey", "text": "From: Robert Angelo Pleshar <rp16+@andrew.cmu.edu>\nSubject: Barasso - the cheap shot master?\nOrganization: University Libraries - E&S Library, Carnegie Mellon, Pittsburgh, PA\nLines: 19\nNNTP-Posting-Host: po4.andrew.cmu.edu\n\nAfter watching the Pengiuns all year (and as many other teams as\npossible), I've really noticed an increase in Tom Barasso's cheap shots\nthis year (and not noticed a corrsponding increase with other\ngoaltenders). I've also noticed that he usually gets away with it. Just\nas examples last night, I noticed him elbowing Scott Stevens in the\nhead, which basically started the whole shoving match that got Stevens\n(Scott) and Tocchet 2 minute minors. He also KICKED John McLean. Of\ncourse he wasn't called for that. Isn't kicking an automatic match\npenalty and 10 game suspension? I think Glenn Anderson got one a few\nyears ago for kicking Gaetan Duchesne in the chest. There's no doubt in\nmy mind that Barasso is the dirtiest golatender since Hextall. He's also\nvery good.\n\nHow about that Tocchet head-butt? Is there an automatic susppension that\ngoes along with a (non-kicking) match penalty? I can't remember anymore.\n\nOh, the playoffs should be fun,\nRalph\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11172, "properties": {"category": "sci.crypt", "text": "From: brad@clarinet.com (Brad Templeton)\nSubject: Once tapped, your code is no good any more.\nDistribution: na\nOrganization: ClariNet Communications Corp.\nLines: 22\n\nIt occurs to me that if they get a wiretap order on you, and the escrow\nhouses release your code to the cops, your code is now no longer secure.\n\nIt's in the hands of cops, and while I am sure most of the time they are\ngood, their security will not be as good as the escrow houses.\n\n\nWhat this effectively means is that if they perform a wiretap on you,\nat the end of the wiretap, they should be obligated to inform you that\na tap was performed, and replace (for free) the clipper chip in your\ncellular phone so that it is once again a code known only to the\nescrow houses.\n\nDo the police normally reveal every tap they do even if no charges are\nlaid?   In many ways, it would be a positive step if they had to.\nJudges set time limits on warrants, I assume.  At the end of the time\nlimit they should have to renew or replace your chip.\n\n\nThat's if we go with this scheme, which I am not sure I agree with.\n-- \nBrad Templeton, ClariNet Communications Corp. -- Sunnyvale, CA 408/296-0366\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11173, "properties": {"category": "rec.sport.hockey", "text": "From: dchhabra@stpl.ists.ca (Deepak Chhabra)\nSubject: Re: div. and conf. names\nNntp-Posting-Host: stpl.ists.ca\nOrganization: Solar Terresterial Physics Laboratory, ISTS\nDistribution: na\nLines: 56\n\nIn article <1993Apr19.003221.11964@ramsey.cs.laurentian.ca> maynard@ramsey.cs.laurentian.ca (Roger Maynard) writes:\n[Evan Pritchard writes:]\n\n>>\tI think that you are incorrect, Roger.  Patrick,\n>>Smythe and Adams all played or coached in the league before becoming\n>>front office types.  Hence, they did help build the league, although\n>>they were not great players themselves.  \n>\n>Punch Imlach's contributions as a coach and GM were far greater than\n>those of the above combined.  Should we name a division or trophy after\n>him?  [owner vs. player contributions deleted...]\n>Are we going to honour those who contributed to the league's evolution\n>or are we going to honour those who contributed to the glory of the \n>sport itself? \n\n[stuff deleted...]\n\n>The money issue is irrelevant to the point that we would agree on, and\n>that is: \"it is the players that are what make the game great and not the\n>people who put them on the ice\"\n  \nAs I recall, the author of the _original_ article that started the thread\nclaimed that he disliked the changing of the names for a variety of reasons. \nRoger, on one front you flamed him rather severely on the grounds that his\nwas a \"jingoistic rant\", but you also supported the name-changing on the\ngrounds that the current names are inappropriate because of the individuals\nthey represent. FWIW, I do not think the flaming was warranted, nor do I \nthink you enhanced what credibility you have with it at all.  Just an \nobservation...\n\nHowever, that aside, the real question is whether you like the idea of\nchanging the names based on the reasons given for it (making it easier for\nthe 'casual fan'), or whether you like the idea of unique divisional names\nbased on individuals who do deserve the honour.  IMO, the latter is a nice\nand unique touch that differs from other sports.  In addition, I do not\nthink that changing divisional names will have an effect on the number of\npeople that are interested in hockey, so it's a pointless exercise anyway.\n\nIf the current names are inappropriate, then that is a separate issue, not \ncentral to the original article.  Something to consider additionally is\nwhether or not players like Orr who 'contributed to the glory of the sport'\nwould have been able to do so _without_ an organized professional league to\nplay in.  In this case, honouring builders of the _league_ as opposed to\nbuilders of the _sport_ becomes a chicken-and-egg type question. (although\nit was the chicken.....)\n\n>Exactly true.  Naming divisions and trophies after Smythe and the bunch\n>is the same kind of nepotism that put Stein in the hall of fame.  I have\n>always thought that this was nonsense.\n\nDunno if the Stein comparison is justifiable, since it doesn't look as though\nhis 'unanimous acceptance' to the Hall will hold up.\n\n\n--\ndchhabra@stpl.ists.ca\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11174, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: request for information on \"essential tremor\" and Indrol?\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 12\n\nIn article <1q1tbnINNnfn@life.ai.mit.edu> sundar@ai.mit.edu writes:\n\nEssential tremor is a progressive hereditary tremor that gets worse\nwhen the patient tries to use the effected member.  All limbs, vocal\ncords, and head can be involved.  Inderal is a beta-blocker and\nis usually effective in diminishing the tremor.  Alcohol and mysoline\nare also effective, but alcohol is too toxic to use as a treatment.\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11175, "properties": {"category": "comp.graphics", "text": "From: ch381@cleveland.Freenet.Edu (James K. Black)\nSubject: NEEDED: algorithms for 2-d & 3-d object recognition\nOrganization: Case Western Reserve University, Cleveland, OH (USA)\nLines: 23\nReply-To: ch381@cleveland.Freenet.Edu (James K. Black)\nNNTP-Posting-Host: hela.ins.cwru.edu\n\n\nHi,\n         I have a friend who is working on 2-d and 3-d object recognition. He is looking\nfor references describing algorithms on the following subject areas:\n\nThresholding\nEdge Segmentation\nMarr-Hildreth\nSobel Operator\nChain Codes\nThinning - Skeletonising\n\nIf anybody is willing to post an algorithm that they have implemented which demonstrates\nany of the above topics, it would be much appreciated.\n\nPlease post all replies to my e-mail address. If requested I will post a summary to the\nnewsgroup in a couple of weeks.\n\n\nThanks in advance for all replies\n\nJames\neb192@city.ac.uk\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11176, "properties": {"category": "rec.sport.baseball", "text": "From: prg@mgweed!mgwhiz.att.com (Phil Gunsul)\nSubject: Re: Let's Talk Phillies\nOrganization: AT&T Information Systems\nLines: 33\n\nIn article <1993Apr16.060540.27397@adobe.com>, snichols@adobe.com (Sherri Nichols) writes:\n| In article <1993Apr15.232551.14817@leland.Stanford.EDU> eechen@leland.Stanford.EDU (Emery Ethan Chen) writes:\n| >One phrase for you....&%#! YOU!!!!\n| >Thanks.\n| \n| Perhaps it's time to start rec.sport.baseball.graffiti, where the kiddies\n| can go yell taunts and insults at each other and leave the rest of us in\n| peace.  \n| \n| Sherri Nichols\n| snichols@adobe.com\n\n\n\nWell Sherri, I'd agree with you except that most 'kiddies' have more sense than\nto spew their obscenities in front of a group of adults..\n\nI try to edit this newsgroup and feed it to one of the local elementary schools,\nthey have a group of students that just love baseball and are learning to use\ncomputers, but I'm telling you, it's gotten to the point that I don't even edit\nthe files anymore, just read them and throw out the trash...  And thanks to all\nyou people that think it's wonderful to include a swear word or two in your\nsignature files, that's really nice...  I have to read the whole article and\nthen toss it out because of the .sig.  Don't get me wrong, I know all the words you\ndo, (and I've even made up some of my own!) or I wouldn't be able to edit them out ;^)\nbut this just doesn't seem to be the place, a public forum, to spew foul language,\nsorry..\n\nThanks to all you people that keep in mind, there might be some decent, young\npeople, interested in baseball and computers reading this newsgroup..  They enjoy\nyour articles.\n\nPhil\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11177, "properties": {"category": "misc.forsale", "text": "From: rosen@kranz.enet.dec.com (Jim Rosenkranz)\nSubject: Re: Metal powder,steel,iron.\nReply-To: rosen@kranz.enet.dec.com (Jim Rosenkranz)\nOrganization: Digital Equipment Corp.\nLines: 26\n\nIn article <79557@cup.portal.com>, mmm@cup.portal.com (Mark Robert Thorson) writes:\n|>Xref: nntpd2.cxo.dec.com misc.invest:40997 misc.forsale:88577\n|>Path: nntpd2.cxo.dec.com!pa.dec.com!e2big.mko.dec.com!uvo.dec.com!news.crl.dec.com!deccrl!caen!zaphod.mps.ohio-state.edu!sdd.hp.com!portal!cup.portal.com!mmm\n|>From: mmm@cup.portal.com (Mark Robert Thorson)\n|>Newsgroups: misc.invest,misc.forsale\n|>Subject: Re: Metal powder,steel,iron.\n|>Message-ID: <79557@cup.portal.com>\n|>Date: Thu, 15 Apr 93 08:53:51 PDT\n|>Organization: The Portal System (TM)\n|>References:  <ACpDgohaWA@commed.msk.su>\n|>Lines: 4\n|>\n|>I just love these posts from the ex-Soviet Union.  Among the cars, dinette\n|>sets, video cameras, etc. every now and then an ad pops up for bee venom,\n|>RED OXIDE OF MERCURY, cobalt (100 tons minimum order), etc.  Don't they\n|>have garage sales in Russia?   :-)\n|>\n\nIt really doesn't strike me as very funny. It is rather indicative of what\na crisis their economy is in. I imagine they are in desparate need of\nmarkets to sustain industries and people which are nolonger under central\ncontrol of the government.\n--\nJim Rosenkranz\trosen@kranz.enet.dec.com\n\n\"Never try to teach a pig to sing: it can't be done, and it annoys the pig.\"\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11178, "properties": {"category": "rec.sport.hockey", "text": "From: etxonss@ufsa.ericsson.se (Staffan Axelsson)\nSubject: WC 93: Scores and standings, April 20\nNntp-Posting-Host: uipc104.ericsson.se\nOrganization: Ericsson Telecom, Stockholm, Sweden\nLines: 72\n\n\n 1993 World Championships in Germany:\n ====================================\n\n   Group A standings (Munich)          Group B standings (Dortmund)\n   --------------------------          ----------------------------\n\n              GP  W T L GF-GA +/- P                  GP  W T L GF-GA +/- P\n\n   Canada      2  2 0 0  6-1  +5  4    Czech republic 2  1 1 0  6-1  +5  3\n   Russia      2  1 1 0  6-4  +2  3    Finland        2  1 1 0  3-1  +2  3\n   Italy       2  1 1 0  3-2  +1  3    Germany        2  1 0 1  6-5  +1  2\n   Sweden      2  1 0 1  2-4  -2  2    USA            2  0 2 0  2-2   0  2\n   --------------------------------    -----------------------------------\n   Austria     2  0 0 2  2-5  -3  0    France         1  0 0 1  0-2  -2  0\n   Switzerland 2  0 0 2  0-3  -3  0    Norway         1  0 0 1  0-6  -6  0\n\n \n April 18:  Italy - Russia        2-2       Norway - Germany          0-6\n            Sweden - Austria      1-0       USA - Czech republic      1-1\n\n April 19:  Canada - Switzerland  2-0\n            Russia - Austria      4-2       Finland - France          2-0\n\n April 20:  Sweden - Canada       1-4       Czech republic - Germany  5-0\n            Switzerland - Italy   0-1       Finland - USA             1-1\n\n April 21:                                  Germany - France\t\t15:30\n            Italy - Sweden                  Czech republic - Norway\t20:00\n\n April 22:  Switzerland - Russia            USA - France\t\t15:30\n            Austria - Canada                Norway - Finland\t\t20:00\n\n April 23:  Switzerland - Austria           Germany - Finland\t\t20:00\n\n April 24:  Russia - Sweden                 Czech republic - France\t15:30\n            Canada - Italy                  USA - Norway\t\t20:00\n\n April 25:  Sweden - Switzerland            Finland- Czech republic  \t15:30\n            Russia - Canada                 Germany - USA\t\t20:00\n\n April 26:  Austria - Italy                 France - Norway\t\t20:00\n\n \n PLAYOFFS:\n =========\n\n April 27:\tQuarterfinals\n\t\tA #2 - B #3\t\t\t\t\t\t15:30\n\t\tA #3 - B #2\t\t\t\t\t\t20:00\n\n April 28:\tQuarterfinals\n\t\tA #1 - B #4\t\t\t\t\t\t15:30\n\t\tA #4 - B #1\t\t\t\t\t\t20:00\n\n April 29:\tRelegation\n\t\tA #5 - B #6\t\t\t\t\t\t15:30\n\t\tA #6 - B #5\t\t\t\t\t\t20:00\n\n April 30:\tSemifinals\n\t\tA #1/B #4 - A #3/B #2\t\t\t\t\t15:30\n\t\tA #4/B #1 - A #2/B #3\t\t\t\t\t20:00\n\n May 1:\t\tRelegation\t\t\t\t\t\t14:30\n\t\tBronze medal game \t\t\t\t\t19:00\n\n May 2:\t\tFINAL\t\t\t\t\t\t\t15:00\n\n--\n ((\\\\  //| Staffan Axelsson            \n  \\\\  //|| etxonss@ufsa.ericsson.se    \n\\\\_))//-|| r.s.h. contact for Swedish hockey  \n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11179, "properties": {"category": "sci.crypt", "text": "From: Graham Toal <gtoal@gtoal.com>\nSubject: Re: Off the shelf cheap DES keyseach machine (Was: Re: Corporate acceptance of the wiretap chip)\nOriginator: gtoal@pizzabox.demon.co.uk\nNntp-Posting-Host: pizzabox.demon.co.uk\nReply-To: Graham Toal <gtoal@gtoal.com>\nOrganization: Cuddlehogs Anonymous\nLines: 9\n\nIn article <1993Apr20.192105.11751@ulysses.att.com> smb@research.att.com (Steven Bellovin) writes:\n:Thousands?  Tens of thousands?  Do some arithmetic, please...  Skipjack\n:has 2^80 possible keys.\n\nWe don't yet know if all 80 bits count.  Anyway, its looking like the\nkeys and escrow arrangements are smoke and mirrors to cover the way the NSA\ncan regenerate the key from the transmitted serial number.\n\nG\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11180, "properties": {"category": "talk.politics.misc", "text": "From: erics@netcom.com (Eric Smith)\nSubject: Re: Hilter and homosexuals\nOrganization: NETCOM On-line Communication Services (408 241-9760 guest)\nLines: 106\n\ncramer@optilink.COM (Clayton Cramer) writes:\n\n><ericsC4x1K9.Apz@netcom.com>, erics@netcom.com (Eric Smith) writes:\n\n>> gsmith@lauren.iwr.uni-heidelberg.de (Gene W. Smith) writes:\n \n># #Are you saying that:\n># \n># #(1) People voted for Hitler, and he became Reich Chancellor, in good\n># #part because he used bully boys to attack communists,\n \n># Hitler did not become become Reich Chancellor because people voted for\n># him. I'm not sure if you meant to imply that or not, but I just thought\n># I'd bring that up.\n\n>Hitler became Chancellor because people voted for his political\n>party.  That's not a huge difference in a parliamentary system.\n\nYour statement is a common misconception, but it just isn't true. In the\nGerman Weimar system, the Chancellor was not necessarily the leader of the\nlargest Reichstag party; the Chancellor was appointed by the President and\ngenerally was the leader of a coalition of parties who could form an effective\nmajority in the Reichstag. Beyond that, the implication that Hitler rose to\nthe Chancellorship because a majority of Germans wanted Nazi rule is false\nas well. Before President Hindenburg appointed Hitler Chancellor in January\n1933, the German people did not show a particular desire to be led either by\nHitler or by the Nazi party. These are the results of the March 1932 election\nfor President, the closest Hitler ever came to direct election: Hindenburg\n49.6%, Hitler 30.1%, Thaelmann 13.2%, Duesterberg 6.8%. In the runoff election\nin April the results were: Hindenburg 53%, Hitler 36.8%, Thaelmann 10.2%.\nSo we can see that Hitler personally was supported by only about a third of\nGerman voters.\n\nSimilarly, the Nazi party never received more than 37% of the vote in\nReichstag elections. That occurred in July 1932. In the November 1932 election\nthe Nazis *lost* two million votes and 34 seats, down from 230 to 196 out of\nthe 608 in the Reichstag. Comparitively, the Socialists had 121 and the\nCommunists 100. The Communists had gained 11 seats, and the German National\nparty, which had supported the previous government, had picked up a million\nof the Nazis' lost votes to gain 15 seats (up to 52). I think the other large\nparty was the Catholic Center party (I don't know how many seats they had but\nI think they were declining), and there were numerous other small parties.\nThus the Nazi vote was on the decline at the time Hitler was appointed\nChancellor.\n\nWhat brought Hitler to power was *not* the demand of the German people for\nHitler or the Nazis to run things, but the inability of the other parties to\nput their differences behind them in favor of forming an effective government\nfor the country. Germany did not have an enduring democratic tradition, and\ntheir parliamentary system lacked effective center parties that favored the\ninterests of the majority of the population. Instead what they had was a\nnumber of small parties who were unable to put aside their own specific\nobjectives in order to combine against the Nazis, who were out to end the\ndemocratic process. In fact, part of the problem was that some of the other\nparties with substantial representation, like the Communists, were also\nout to end the democratic process, but with different results in mind, and\ngenerally didn't mind seeing parliamentary democracy go under.\n\nGermany had already had a non-Nazi Chancellor with a majority coalition\nfor five months while the Nazis had been the largest Reichstag party, and\nthere certainly was no danger of a revolution in favor of the Nazis.\nIf anything the Nazis were starting to get desperate because they had failed\nto get enough support to make Hitler President and their popular vote had\nbegun to decline.\n\nHitler was not Hindenburg's first choice to be Chancellor, not even his\nsecond choice. First, von Papen had been Chancellor since June 1932. After\nthe November election when the Nazis *lost* seats, Hindenburg first prevailed\non von Papen to remain as Chancellor. But there were intrigues behind his back\nand support for him was lacking. So then Hindenburg turned to von Schleicher,\nwho became Chancellor for two months. Eventually he too was unable to hold\ntogether a working coalition of parties to oppose the Nazis, who refused to\nparticipate in any government that was not led by a Nazi Chancellor. Some of\nthe Nazi leadership, particularly Gregor Strasser who was the #2 man in the\nparty at the time, wanted to participate in a coalition government. But others,\nknowing the party's support was waning, figured that their best hope to gain\npower lay in undermining the democratic process. Nevertheless, the country\nwas governed for seven months by Chancellors who were not Nazis, even though\nthe Nazis were the largest Reichstag party. The failure of these men to\nachieve a working coalition was due to the inability of their coalition\nparties to work together.\n\nHere's how William Shirer puts it in _The Rise and Fall of the Third Reich_:\n\n   The cardinal error of the Germans who opposed Nazism was their\n   failure to unite against it. At the crest of their popular strength,\n   in July 1932, the National Socialists had attained but 37 percent of\n   the vote. But the 63 percent of the German people who expressed their\n   opposition to Hitler were much too divided and shortsighted to combine\n   against a common danger which they must have known would overwhelm\n   them unless they united, however temporarily, to stamp it out.\n\nTrue, the German people supported Hitler after he became Chancellor. But\nthat doesn't change the fact that there was not overwhelming support for him\n*before* he was in power. The German people were not crying out for Hitler to\ntake over, no matter how bad economic conditions were. The leftist parties\n(Socialists/Communists) probably had more support in total than the Nazis.\nHitler used the fact that others were passively or actively willing to see\nthe government paralyzed as a means to taking it over.\n\n-----\nEric Smith\nerics@netcom.com\nerics@infoserv.com\nCI$: 70262,3610\n\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11181, "properties": {"category": "talk.politics.guns", "text": "From: kennejs@a.cs.okstate.edu (KENNEDY JAMES SCOT)\nSubject: Re: Guns GONE. Good Riddance !\nOrganization: Oklahoma State University\nLines: 63\n\nFrom article <1993Apr18.000152.2339@gnv.ifas.ufl.edu>, by jrm@gnv.ifas.ufl.edu:\n> You are loosing.\n> \n> There is no question about it. \n> \n> Of those who vote, your cause is considered an abomination. No matter\n> how hard you try, public opinion is set against the RKBA. \n\nOnly irrational fools such as yourself are set against RKBA.  There are\n*plenty* of people who support it.\n\n> This is the end. By the finish of the Clinton administration, your\n> RKBA will be null and void. Tough titty.\n\nThe government will be overthrown *long* before that happens.  A *huge* \nmillitia composed of all available men and women who care about their\ncountry will defeat the forces of the evil Klintonistas.  The people\n*will* prevail!\n\nOh, so you think armed citizens alone can't overthrow the government?\nConsider this:  do you think *all* law enforcement officials and members\nof the Armed Forces will turn against the people that they are entrusted\nto serve?  Not hardly.  You can count on a lot of people in the Army,\nMarines, Air Force, Navy, National Guard, police officers, and so on\njoining in the cause to defend the liberties and freedoms of American\ncitizens.  COUNT ON IT!  THE GOVERNMENT WILL NOT BE ABLE TO DISARM\nEVERYONE WITHOUT STARTING A CIVIL WAR!\n\n> You had better discover ways to make do without firearms. The number of\n> cases of firearms abuses has ruined your cause. There is nothing you\n> can do about it. Those who live by the sword shall die by it. \n> \n> The press is against you, the public (the voting public) is against\n> you, the flow of history is against you ... this is it !\n> \n> Surrender your arms. Soon enough, officers will be around to collect\n\nWrong again.  People will just hide their guns so these \"officers\"\n(more like jack-booted stormtroopers) will not be able to find them.\n\n> them. Resistance is useless. They will overwhelm you - one at a time.\n> Your neighbors will not help you. They will consider you more if an\n> immediate threat than the abstract 'criminal'. \n\nThey will unless they are idiots.  They will realize that if they don't\nthen they will be *next* including you.  Believe me if what you describe\nhappens they will be coming for *more* than guns.  Disarming citizens\nwould require that everyone's cherished freedoms and liberties be\nsuspended temporarily.  More likely, they'd never be restored unless the\n*people* do something about it.\n\n> Too fucking bad. You have gone the way of the KKK. Violent solutions\n> are passe'. Avoid situations which encourage criminals. Then you will\n> be as safe as possible. Such as it is ...\n\n\nScott Kennedy,  Brewer and Patriot\n\nBefore:  \"David Koresh is a cheap thug who interprets\n          the Bible through the barrel of a gun...\"  --ATF spokesman\nAfter:   \"[The ATF] is a cheap thug who interprets\n          [the Constitution] through the barrel of a gun...\"  --Me\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11182, "properties": {"category": "sci.electronics", "text": "From: dclaar@cup.hp.com (Doug Claar)\nSubject: Los Angeles Freeway traffic reports\nNntp-Posting-Host: hprtnyc.cup.hp.com\nOrganization: Hewlett-Packard\nX-Newsreader: TIN [version 1.1 PL8.9]\nLines: 4\n\n\noops, that's KNX 1070. KNBR is up in 'Frisco, and down at 680.\n\n==Doug \"San Fran can't be 'the city': Jack Webb told me so\" Claar\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11183, "properties": {"category": "rec.sport.hockey", "text": "From: Young-Soo Che <yc25+@andrew.cmu.edu>\nSubject: Re: NHLPA poll (partial stats/results)\nOrganization: Freshman, H&SS general, Carnegie Mellon, Pittsburgh, PA\nLines: 6\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <1800@muller.loria.fr>\n\nAll these people who send in their polls should take a closer look at\nNJD, they are a very deep team, with two very capable goalies, and\nexcellent forwards and defensemen.  Shooter in Richer, an all around do\nit all in Todd, chef Stasny-master of a thousand dishes, power play\ncaptain-Stevens.  Take a look at the numbers, or play with them and see\nfor yourselves.\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.528+0000", "event": "documents", "entityId": 11184, "properties": {"category": "misc.forsale", "text": "From: jrm@elm.circa.ufl.edu (Jeff Mason)\nSubject: AUCTION: Marvel, DC, Valiant, Image, Dark Horse, etc...\nOrganization: Univ. of Florida Psychology Dept.\nLines: 63\nNNTP-Posting-Host: elm.circa.ufl.edu\nSummary: Tuesday April 20, 1993 Update\n\nI am auctioning off the following comics.  These minimum bids are set\nbelow what I would normally sell them for.  Make an offer, and I will\naccept the highest bid after the auction has been completed.\n\nTITLE                                                   Minimum/Current \n--------------------------------------------------------------\nAlpha Flight 51 (Jim Lee's first work at Marvel)\t$ 5.00\nAliens 1 (1st app Aliens in comics, 1st prnt, May 1988)\t$20.00/KrisM./TWICE\nAmazing Spider-Man 136 (Intro new Green Goblin)         $20.00\nAmazing Spider-Man 238 (1st appearance Hobgoblin)\t$50.00\nArcher and Armstrong 1 (Frank Miller/Smith/Layton)\t$ 7.50\nAvengers 263 (1st appearance X-factor)                  $ 3.50\nBloodshot 1 (Chromium cover, BWSmith Cover/Poster)\t$ 5.00\nDaredevil 158 (Frank Miller art begins)                 $35.00\nDark Horse Presents 1 (1st app Concrete, 1st printing)\t$ 7.50 \nDetective 657 (Azrael appears, Intro Cypher)\t\t$ 5.00\nHarbinger 10 (1st appearance H.A.R.D. Corps)\t\t$ 7.00/B.Matthey/SOLD\nH.A.R.D. Corps 1 \t\t\t\t\t$ 5.00\nIncredible Hulk 324 (1st app Grey Hulk since #1, 1962)\t$ 7.50\nIncredible Hulk 330 (1st McFarlane issue)\t\t$15.00\nIncredible Hulk 331 (Grey Hulk series begins)\t\t$11.20\t\nIncredible Hulk 367 (1st Dale Keown art in Hulk)        $15.00\nIncredible Hulk 377 (1st all new hulk, 1st prnt, Keown) $15.00\nMarvel Comics Presents 1 (Wolverine, Silver Surfer)     $ 7.50\nMaxx Limited Ashcan (4000 copies exist, blue cover)\t$33.50/BrentB/TWICE\nMr T. #1 (Signed Advance copy, 10,000 exist)\t\t$10.00\nNew Mutants 86 (McFarlane cover, 1st app Cable - cameo)\t$10.00\nNew Mutants 100 (1st app X-Force)                       $ 5.00\nNew Mutants Annual 5 (1st Liefeld art on New Mutants)\t$10.00\nOmega Men 3 (1st appearance Lobo)                       $ 7.50\nOmega Men 10 (1st full Lobo story)                      $ 7.50\nPower Man & Iron Fist 78 (3rd appearance Sabretooth)    $25.00\n                      84 (4th appearance Sabretooth)    $20.00\nSimpsons Comics and Stories 1 (Polybagged special ed.)\t$ 7.50\nSpectacular Spider-Man 147 (1st app New Hobgoblin)      $12.50\nStar Trek the Next Generation 1 (Feb 1988, DC mini)     $ 7.50\nStar Trek the Next Generation 1 (Oct 1989, DC comics)   $ 7.50\nTrianglehead #1 (Special limited edition, autogrphed)\t$ 5.00\nWeb of Spider-Man 29 (Hobgoblin, Wolverine appear)      $10.00 \nWeb of Spider-Man 30 (Origin Rose, Hobgoblin appears)   $ 7.50\nWolverine 10 (Before claws, 1st battle with Sabretooth)\t$15.00\nWolverine 41 (Sabretooth claims to be Wolverine's dad)\t$ 5.00\nWolverine 42 (Sabretooth proven not to be his dad)\t$ 3.50\nWolverine 43 (Sabretooth/Wolverine saga concludes)\t$ 3.00\nWolverine 1 (1982 mini-series, Miller art)\t\t$20.00\nWonder Woman 267 (Return of Animal Man)                 $12.50\nX-Force 1 (Signed by Liefeld, Bagged, X-Force card)     $20.00\nX-Force 1 (Signed by Liefeld, Bagged, Shatterstar card) $10.00\nX-Force 1 (Signed by Liefeld, Bagged, Deadpool card)    $10.00\nX-Force 1 (Signed by Liefeld, Bagged, Sunspot/Gideon)   $10.00\n\nAll comics are in near mint to mint condition, are bagged in shiny \npolypropylene bags, and backed with white acid free boards.  Shipping is\n$1.50 for one book, $3.00 for more than one book, or free if you order \na large enough amount of stuff.  I am willing to haggle.\n\nI have thousands and thousands of other comics, so please let me know what \nyou've been looking for, and maybe I can help.  Some titles I have posted\nhere don't list every issue I have of that title, I tried to save space.\n-- \nGeoffrey R. Mason\t\t|\tjrm@elm.circa.ufl.edu\nDepartment of Psychology\t|\tmason@webb.psych.ufl.edu\nUniversity of Florida\t\t|\tprothan@maple.circa.ufl.edu\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11185, "properties": {"category": "talk.politics.guns", "text": "From: fcrary@ucsu.Colorado.EDU (Frank Crary)\nSubject: Re: Gun Control (was Re: We're Mad as Hell at the TV News)\nNntp-Posting-Host: ucsu.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: na\nLines: 31\n\nIn article <C4tM1H.ECF@magpie.linknet.com> manes@magpie.linknet.com (Steve Manes) writes:\n>: You are betraying your lack of understanding about RATE versus TOTAL\n>: NUMBER. Rates are expressed, often, as #/100,000 population.\n>: Therefore, if a place had 10 deaths and a population of 100,000, the\n>: rate would be 10/100,000.  A place that had 50 deaths and a population\n>: of 1,000,000 would hav a rate of 5/100,000.  The former has a higher\n>: rate, the latter a higher total.  You are less likely to die in the\n>: latter.  Simple enuff?\n\n>For chrissakes, take out your calculator and work out the numbers.\n>Here... I've preformatted them for you to make it easier:\n\n>\t\t\thandgun homicides/population\n>\t\t\t----------------------------\n>\tSwitzerland :\t24 /  6,350,000\n>\t         UK :    8 / 55,670,000\n\n>... and then tell me again how Switzerland is safer with a more\n>liberal handgun law than the UK is without...by RATE or TOTAL NUMBER.\n>Your choice.\n\nBecause there are about 40 homicides total (i.e. using guns, knives,\ntire-irons, baseball bats, bare hands, etc...) in Switzerland\neach year and 850 homicides, total, in England. That's three\ntimes worse per capita in England than in Switzerland. Since\ndead is dead, it really doesn't matter that 60% of the Switz\nmurders involved a gun or that only 0.9% of the English murderers\ndo. \n\n                                            Frank Crary\n                                            CU Boulder    \n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11186, "properties": {"category": "sci.space", "text": "From: pgf@srl03.cacs.usl.edu (Phil G. Fraering)\nSubject: Re: Comet in Temporary Orbit Around Jupiter?\nArticle-I.D.: srl03.pgf.734063192\nOrganization: Univ. of Southwestern Louisiana\nLines: 22\n\nshag@aero.org (Rob Unverzagt) writes:\n\n>In article <5APR199318045045@kelvin.jpl.nasa.gov> baalke@kelvin.jpl.nasa.gov (Ron Baalke) writes:\n>> According the IAU Circular #5744, Comet Shoemaker-Levy 1993e, may be\n>> temporarily in orbit around Jupiter.  The comet had apparently made a\n>> close flyby of Jupiter sometime in 1992 resulting in the breakup of the\n>> comet.  Attempts to determine the comet's orbit has been complicated by\n>> the near impossibility of measuring the comet's center of mass.\n>>\n\n>Am I missing something -- what does knowing the comet's center\n>of mass do for you in orbit determination?\n\n>Shag\n\nI'm not sure, but it almost sounds like they can't figure out where the \n_nucleus_ is within the coma. If they're off by a couple hundred\nmiles, well, you can imagine the rest...\n\n--\nPhil Fraering         |\"Seems like every day we find out all sorts of stuff.\npgf@srl02.cacs.usl.edu|Like how the ancient Mayans had televison.\" Repo Man\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11187, "properties": {"category": "rec.sport.baseball", "text": "From: niepornt@phoenix.Princeton.EDU (David Marc Nieporent)\nSubject: Re: DESIGNATED HITTER RULE\nOriginator: news@nimaster\nNntp-Posting-Host: phoenix.princeton.edu\nOrganization: Princeton University\nLines: 17\n\nIn <ekdfc.14.0@ttacs1.ttu.edu> ekdfc@ttacs1.ttu.edu (David Coons) writes:\n>In <1993Apr4.221228.17577@bsu-ucs> 00ecgillespi@leo.bsuvc.bsu.edu writes:\n\n>>I AM DOING A POSTITION PAPER ON THE DESIGNATED HITTER RULE. ANY INFORMATION\n>>OR EVEN OPINIONS WOULD BE GREATLY APPRECITATED. 00ECGILLESPIE \"MAGIC\"\n\n>Should be rescinded.  The rules say baseball is a game between two teams of \n>nine players each.  Let's keep it that way.\n\nNot any more the rules don't say that.  So that's a pretty dumb argument.\n\n\n-- \nDavid M. Nieporent   |  \"Only one thing wrong with theory...\nniepornt@phoenix.    |    Is stupid!  Is stupidest theory I ever heard!\"\n   princeton.edu     |   --------------------- \nBaltimore Orioles 93 |  Who's the dangerous cult -- the BDs or the BATF?\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11188, "properties": {"category": "rec.autos", "text": "From: cka52397@uxa.cso.uiuc.edu (CarolinaFan@uiuc)\nSubject: Re: Most bang for between $13,000 and $16,000\nArticle-I.D.: news.C51s16.ACz\nOrganization: University of Illinois at Urbana\nLines: 17\n\nrmt6r@faraday.clas.Virginia.EDU (Roy Matthew Thigpen) writes:\n\n\n>Your best bet is the Dodge Intrepid with the SOHC 24 valve 3.4? six.\n>it gets 214 hp, and has a hell of a lot of room, great styling, and\n>ABS, with four wheel disk breaks.  The LH cars won Automobile \n>magazines \n>\"automobile of the year\" award, and are quiet impressive.\n\n\tIs the 24v LH under $16K, though?\n\n\n-- \nChintan Amin  The University of Illinois/Urbana Champaign mail: llama@uiuc.edu\n******************************************************************************\n*\"Because he was human      Because he had goodness      Because he was moral*\n***************They called him insane...\"  Peart \"Cinderella Man\"*************\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11189, "properties": {"category": "comp.windows.x", "text": "From: ware@oboe.cis.ohio-state.edu (Peter Ware)\nSubject: Re: Private Colormaps & Widget creation\nOrganization: Ohio State Computer Science\nLines: 13\nNNTP-Posting-Host: oboe.cis.ohio-state.edu\nIn-reply-to: nancie@neko.CSS.GOV's message of 2 Apr 1993 14:55:09 -0500\n\nYou are right in supposing that the problem is with the XmNcolormap\n(XtNcolormap for truly literate beings) not being set.  What you want\nto do is start your application with your new colormap.  This can be a\nchicken and egg sort of problem, however.  If you look at the Xt FAQ\nthere is an example that should show how it can be done.  If not, let\nme know and maybe I can improve the example.\n\n--pete\n--\nPete Ware\t\t\t\t\tware@cis.ohio-state.edu\nCIS Dept, Ohio State University\t\t\tw/ (614) 292-7318\n228 Bolz Hall, 2036 Neil Ave.\t\t\th/ (614) 538-0965\nColumbus, OH 43210\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11190, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: i3y092@rick.cs.ubc.ca (Adam Nicolas Cheal)\nSubject: Jumper Settings for MicroScience HD\nOrganization: Computer Science, University of B.C., Vancouver, B.C., Canada\nLines: 9\nDistribution: world\nNNTP-Posting-Host: bowen.rick.cs.ubc.ca\n\nOK, I'll try one more time with this one. If ANYONE out there has ANY\ninformation on MicroScience hard drives and how to set the jumpers\n(and where they are?) for master/slave configurations. I will gladly\naccept any info, as I have a 110M'er sitting in my room collecting dust\njust waiting for me to install huge applications. :) Thanks in advance.\n(And yes, I regulary check the IDE Harddisk Spec that is posted here.)\n\n-= Adam Cheal =-   i3y092@rick.cs.ubc.ca\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11191, "properties": {"category": "sci.electronics", "text": "From: tron@ux1.cso.uiuc.edu (Tron R.)\nSubject: modulation over rf\nOrganization: University of Illinois at Urbana\nLines: 11\n\nI would like to modulate a 40KHz squarewave over rf. This is for a rf\nremote control project. The squarewave has a high of 5 v and low of 0v.\n\nthanks.\n\ntron\n-- \n        T\n  T     T\n  T  T  T\n  T  T  T\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11192, "properties": {"category": "rec.sport.hockey", "text": "From: ayari@judikael.loria.fr (Ayari Iskander)\nSubject: NHLPA poll (Stats/2nd uptade)\nOrganization: Crin - Inria-Lorraine\nLines: 40\n\n2nd uptade:\n\nHere are the standings for the poll after 29 votes: 5 points for 1st, 4 for 2nd,... 1 point for 5th: \n\nEA/ NHLPA game\n\n1. DET 78\n2. CHI 67 \n3. VAN 60\n4. NY  59\n5. MTL 54\n6. PIT 23\n7. WAS 20\n8. BOS 17\n9..QUE  9 \n10.CAL  8\n11.ASW  7\n12.LA   5\n   TOR  5\n14.ASE  4\n   WIN  4\n16.BUF  3\n   PHI  3\n18.SJ   2\n19.MIN  1\n   OTW  1\n   Atlanta to win Turner Cup 1 (not in the game, but 1 person vote)\n\n\nContinue to send your votes in this format (until April 20th, approximately)\n------------------------------------------------\n1.\n2.\n3.\n4.\n5.\n------------------------------------------------\n\n\n__\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11193, "properties": {"category": "talk.religion.misc", "text": "From: kde@boi.hp.com (Keith Emmen)\nSubject: Re: A Message for you Mr. President: How do you know what happened?\nOrganization: Hewlett-Packard / Boise, Idaho\nX-Newsreader: Tin 1.1scd1 PL4\nLines: 23\n\ntbrent@bank.ecn.purdue.edu (Timothy J Brent) writes:\n: \n: Probably not.  But then, I don't pack heavy weaponry with intent to use it.\n: You don't really think he should have been allowed to keep that stuff do \n: you?  If so, tell me where you live so I can be sure to steer well clear.\n\nI understand that they had the neccessary licenses and permits to own\nautomatic weapons.  \n\n: The public also has rights, and they should be placed above those of the\n: individual.  Go ahead, call me a commie, but you'd be singing a different\n: tune if I exercised my right to rape your daughter.  He broke the law, he\n: was a threat to society, they did there job - simple.\n\nI haven't seen any proof (or even evidence) that the BD's had broken the\nlaw.  If you have proof (or evidence), let's hear it.  \"The FBI said so\" is\nNOT evidence.\n\n:  \n: I'll support them all (except no. 2)\n\nI guess there will always be people who wish to be peasants.  The politicians\nprefer unarmed peasants\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11194, "properties": {"category": "talk.politics.guns", "text": "From: dale@access.digex.com (Dale Farmer)\nSubject: Re: Gun Control: proud to be a Canuck\nOrganization: Express Access Online Communications, Greenbelt, MD USA\nLines: 27\nNNTP-Posting-Host: access.digex.net\nX-Newsreader: TIN [version 1.1 PL8]\n\nFrank Crary (fcrary@ucsu.Colorado.EDU) wrote:\n: In article <1pqsruINNiae@hp-col.col.hp.com> dduff@col.hp.com (Dave Duff) writes:\n: The Swiss population is (and well was) far larger than that. I think\n: your question should be, \"...losing sleep over a million expert\n: riflemen?\" Certainly he could have conquered Switzerland, but\n: a million armed militiamen (especially in a mountainous area, \n: where tanks' effectiveness is limited) would have made it a\n: real pain. The question a conqueror would ask, is \"is it worth \n: the trouble?\" The more difficult an invasion is, the more likely\n: the answer would be \"no.\" Certainly a million riflemen (as\n: opposed to a professional army of only ten or twenty thousand, the\n: best a country the size of Switzerland could support), makes\n: invasions more difficult.\n\n   Hitler invaded Yugoslavia and occupied it.  The mountainous portions were\nsometimes patrolled by the wermacht, but they were certainly not in control.\nThere were two major native factions opposing each other and the germans,\nIt was basically useless to the germans (no production) and a drain on their\nresources (a armored division and a couple of infantry divisions) Which if\nmy memory is correct, were kind of stuck there up until the allies accepted\ntheir surrender.  (I think that the allies also let the germans keep some \nof their weapons for self defense unitil they were able to get to the \nlowlands, away from the resistance factions.  This is from memory, and \nit is unreliable.  \n\n--Dale Farmer\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11195, "properties": {"category": "sci.electronics", "text": "From: babb@sciences.sdsu.edu (J. Babb)\nSubject: Re: Getting rid of screen wiggles?\nOrganization: SDSU - LARC\nLines: 42\nDistribution: world\nNNTP-Posting-Host: larc.sdsu.edu\n\nIn article <1qpj5t$itg@vela.acs.oakland.edu>, eabyrnes@vela.acs.oakland.edu\n(Ed Byrnes) wrote:\n> \n> My monitor display has a bad case of the wigglies. I have a good ground. I\n> live in an old house and I have replaced much of the wiring. I have two\n> EMI filters on the computer, the monitor plugs into the computer. When\n> fluorescent lights are on upstairs, the display jiggles, when motors run\n> in the house, the display jiggles, when incandescent lights are on in the\n> kitchen the display jiggles.  I could bring a separate line from the\n> breaker box, and use it only for the computer, would this do it? EMI\n> doesn't only travel the 110 volt line though. Should I shield the back of\n> the monitor? Ground a grid or plate? \n> Your expertise is appreciated. Thanks very much!  Ed Byrnes\n\n\nAaahh... a problem very near and dear to my heart. In our case, other\nmonitors cause this problem - the deflection coil of other monitors to be\nspecific. Have also seen a monitor backed up to a fuse panel exhibit this\nproblem. This sounds like your problem since flourescent lites, motors, etc\nseveral 10s of feet away seem to me to be too far to cause it, but the\njuice running to them must pass nearby your monitor. Fusebox on other side\nof wall maybe?\nWe started spec'ing Panasonic CT-1331Y video monitors (3 switchable input\nlines(vid & aud) S-VHS on one) <$400. This stopped the wavy interference\neffect on the computer monitor next to it. \nNow on to your problem. You need what is known as mu shielding (very\ncommon, in fact almost mandatory on electrostatic deflection type\nO'scopes).\nI talked to a EE prof. He said get a coffee can, cut both ends off, mount\naround deflection coil of interfering monitor. \nBE CAREFUL TO AVOID ALL HIGH VOLTAGE CIRCUITRY. ESPECIALLY THE THICKER HIGH\nVOLTAGE ANODE LEAD USUALLY COLORED RED. IF YOU KILL YOURSELF, DON'T\nBLAME/SUE ME!!! USE PLASTIC OR OTHER NON-CONDUCTING STAND-OFFS AND SUCH TO\nMOUNT CAN.\nNow, I would assume that what is good for keeping mag fields in is also\ngood at keeping them out, so hopefully this'll work by mounting shield on\nmonitor being interfered with as well. If not, start shielding those other\nsources.\n\nJeff Babb\nbabb@sciences.sdsu.edu   babb@ucssun1.sdsu.edu\nProgrammer, SDSU - LARC\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11196, "properties": {"category": "talk.religion.misc", "text": "From: jeffj@yang.earlham.edu (ChaOs)\nSubject: Re: ALT.SEX.STORIES under Literary Critical Analysis :-)\nOrganization: Honest Bob's Used Toaster Emporium\nLines: 196\n\nIn article <1qevbh$h7v@agate.berkeley.edu>, dzkriz@ocf.berkeley.edu (Dennis Kriz) writes:\n> Hi all,\n> \n> I'm going to try to do something here, that perhaps many would\n> not have thought even possible.  I want to begin the process of\n> initiating a literary critical study of the pornography posted on\n> alt.sex.stories, to identify the major themes and motifs present\n> in the stories posted there -- opening up then the possibility of\n> an objective moral evaluation of the material present there.  \n\nFirst off, let me congratulate you for not posting a flame about \"You sick\nperverts, you are immoral, you are all going to hell.\", which seems to be the\nusual \"religious\" post found on the alt.sex.* hierarchy.  Hopefully, you won't\nget flamed, either.\n\nYou will, however, be argued with.  I personally think that your project is\nbuilt on unsteady ground.\n\nFirst, I do not believe that there is any way to find an \"objective morality\". \nMorality and value are inherently subjective - they represent the beliefs of a\nperson or a group of people.  They can be widely held, perhaps even\noverwhelmingly held, but they are never and _can_ never be objective.\n\n> Assumptions:\n> \n> (1) A Christian bedrock assumption that all that is True, comes\n> Truly from God. \n> \n> (2) Regarding alt.sex.stories.  While perhaps even from an\n> objective standpoint, the majority of its material is indeed\n> repugnant (you come to this conclusion quite quickly when you\n> start thinking about analyzing its material like this), some of\n> it reflects some fairly profound needs in people as well as some\n> truths -- and deserve to be pointed out.\n\nSecond, I do not accept the assumptions that you make here.  If, as you say,\nyou are trying to be objective, then why accept a morality to begin with by\nusing the Christian Bible?  You're defeating your own purpose by doing so.\n \n> In the long run, the advantage of making such a literary/moral\n> analysis is that it will save band-width between Christians and\n> non mutually flaming each other about the moral acceptability of\n> the stuff on these (pornographic) groups.\n\nThird, call me a pessimist, but you won't stop the flamage.  There will always\nbe people who pop upin alt.sex.* to tell us how sick and twisted and evil we\nall are.  Just out of curiosity, do alt.sex readers show up unprovoked in the\nreligion groups to tell you all that you are narrow-minded, censoring,\noverbearing totalitarianists?\n \n> Basically, there should not be a dissonance between a \"Christian\"\n> morality and a \"non-Christian\" one.  Either there is value in a\n> particular work, or there is not whether one is a Christian or\n> not.\n\nHm.  Let me provide an example.  Four people get together over dinner, to\ndiscuss morality: you, me, a rather conservative Moslem, and a sociopath.  I\nstart off by saying that I think it's immoral to force people to have sex with\nyou.  You agree, but also say that it is immoral to have sex with someone of\nyour own gender.  (Just a note: I really don't know your views on\nhomosexuality, I am just using this as a common view of morality for the\npurposes of this example.)  The Moslem says that it is immoral for women to\nhave their faces uncovered.\n\nThe sociopath, who has become bored, kills all three of us and eats us, but\nfeels no guilt because he has done nothing wrong morally in his own mind. \n                                                                         \n> In support for the first assumption:\n> \n> The Christian scriptures say this:\n\n\t(Evidence deleted)\n\nI'm not going to accept your evidence for this.  You ask us to accept \"The Word\nof God\" that everything good comes from God.  This is only a valid argument for\na person who shares your beliefs.\n\nStill, I must say that cataloging the major themes and motifs in erotica could\nbe interesting for other reasons than yours, so good luck with this next part.\n\n>                                                                        \n>              **************************************\n> \n> NOW THEN what are some of the major themes/motifs in the\n> pornographic literature on places like alt.sex.stories?  These\n> are some that I've been able to identify.  Please add/comment on\n> them.\n> \n> \n> Motif #1 -- THE MALE-CINDERELLA.  \n> \n> In so many of the stories there is expressed a feeling of\n> alienation and worthlessness on the part of the writer or\n> otherwise protagonist of the story with regard to the object (the\n> other person) of his/her desire. Often a story involves a\n> protagonist who (on the surface) is quite average (but underneath\n> usually has an enormous dick), who desires to in some way to gain\n> access (in a definitely sexual way) to the other person who\n> he/she confesses is far more desireable than he/she is and who\n> indeed seems \"to walk between the rain-drops.\"   \n\nHmmm...do I detect just a wee bit of condescence here?\n                                                      \n> \n> Motif #2 -- A CELEBRATION OF (INDEED PREOCCUPATION WITH) BEAUTY.\n                                ^^^^^^^^^^^^^^^^^^^^^^^^^\n\t\t\t\tnot very objective. \n\n> The vast majority of pornographic literature deals with beauty,\n> be it innocence (somehow about to be lost), grace, or simply\n> physical beauty.  And generally, most people Christian or non\n> will say that beauty is good. \n\nOne could construe this to mean that beautiful people are better, or \"more\ngood\" than non-beautiful people.  I would hope that people relize that this is\nnot necessarily true.\n                     \n> \n> Motif #3 -- ONE'S DICK IS ONE'S INSTRUMENT OF REDEMPTION.  \n                    ^^^^\n      Might I suggest the word \"penis\"? It seems more in line with the tone of\nyour post. \n          \n>      Blessed are those who are well-hung, for they shall get\n>      laid. -- from what would thus be a revised Matthew 5 :-).\n> \n\nBravo!  I respect you and your sense of humor, sir. \n\n> \n> Motif #4 -- SEX AS AN EXPRESSION OF SINCERE GIVING.  \n>                                                  \n> There is, often enough, a clear desire on the part of the\n> protagonist, to give (definitely sexual) pleasure to the object\n> (person) of his/her desires.\n                                                 \nYes, and this theme is usually what the better stories are about.  However,\nthey are not always selfish - I could point to examples in the work of Elf\nSternberg, for example.\n\n> \n> Motif #5 -- ALT.SEX.STORIES DESCRIBES A SEX WHICH IS COMPLETELY\n> REMOVED FROM THE REALM OF \"TRANSMITTING LIFE\"  \n> \n> So removed is sex from its procreative dimension on\n> alt.sex.stories, that one begins to wonder why sex even involves\n> ejaculation, as in the context described in pornography it serves\n> then no real purpose.  \n\nIt serves the same purpose as it does in pornographic movies: it affirms the\nvirility of the male involved, as well as assuring the reader that he (the\ncharacter) has orgasmed.                      \n\n> The Whole Picture [TM] is probably very well described by the\n> Catholic teaching on this: Of the husband and wife, in an act of\n> total mutual self-giving in the sexual union, cooperating with\n> God in opening themselves up for the transmission of new life\n> (cf. Humane Vitae).  \n\nYour Whole Picture [TM] unfortunately only applies to people who accept your\nchurch.\n         \nIn addition, if sex is for procreation, then\n\n1)\tWhy did God make it pleasurable, so that people would want to do it,\nrather than building it in as instinct?\n2)\tWhy did God make it fallible?  Not every sexual encounter results in\npregnancy, even among Catholics.  Does this mean that they have sinned?\n \n> In any case alt.sex.stories and the Catholic teaching will\n> probably not see eye to eye on this for a long time.\n \nGranted.\n\n> \n> Motif #6 -- SEX USED AS AN INSTRUMENT VIOLENCE, POWER AND\n> HUMILIATION.  \n>                                   \n> Why pornography seems to tend in that direction, I really do not\n> know.  Probably volumes could be written on the relationships\n> between sex and power/humiliation.  But this probably gives good\n> reason why traditionally Judeo-Christianity has been so negative\n> with regard to sexuality -- it seems to tend to a great moral\n> morass. \n\nPornography would not tend in those directions if there were not a demand for\nit.  Many people have violent fantasies that they would never act out in real\nlife, but will think about and read about and mull over.\n\nLater,\n\t\t\t\t\t\tJeff                                   \n\n-- \nJeffJ@yang.earlham.edu - Official generic .sig.  Under 4 lines, under 80\ncolumns, no Amiga checks, no witty quotes, no maps of Australia, no asterisks,\nno ASCII art, no disclaimers or anti-flame requests, and one spelling errer. \n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11197, "properties": {"category": "talk.politics.guns", "text": "From: jrutledg@cs.ulowell.edu (John Lawrence Rutledge)\nSubject: Re: Some more about gun control...\nOrganization: Interactive Media Group - University of Massachusetts at Lowell\nLines: 76\n\nIn article <1993Apr16.171115.16812@synapse.bms.com>, hambidge@bms.com writes:\n-> Actually, the words \"A well regulated Milita, being necessary to the\n-> security of a free state\" is a present participle, used as an\n-> adjective to modify 'militia', which is followed by the main clause of\n-> the sentence, the subject being 'the right', the verb 'shall'.  It\n-> asserts that the right to keep and bear arms is essential for\n-> maintaining a milita. \n-> a free state.\n\nYes, I agree the first half of the amendment does modify the noun \nmilitia.  But the difinition of modify that applies to how \"well regulated\" \nmodifies \"militia\" is:\n\tto qualify or limit the meaning of.  For example, \"wet\"\n\tmodifes \"day\" in the phrase \"a wet day.\"\n\nThe amendment is similiar to the statement:\n\tA wet day, being annoying, the right of the people to keep\n\tand wear boots, shall not be infringed.\nSo how does a dry day pertain the right to use boots?  Similiar,\nwhat does the \"unorganized militia\" have to due with the right to\nown guns?\n\n-> The sentence [in the Second Amendment] doesn't restrict the right, or\n-> state or imply possession of the right by anyone or anything other\n-> than the people.  All it does is make a positive statement regarding a\n-> right of the people. The PEOPLE, as in you and me, as in the First,\n-> Fourth, Ninth, Tenth, as well as the Second amendment.\n-> The existence of this right is assumed - it is not granted by the\n-> amendment. There is no stated or implied condition relating the right\n-> to bear arms to the necessity of a well-regulated militia to the security of\n-> In other words, the entire sentence says that the right to keep and\n-> bear arms is UNCONDITIONAL.\n\nNo not, unconditional, but \"shall not be infringed\".  Infringed\nis defined as:\n\tTo break or ignore the terms of or obligations (an oath, \n\tan agreement, law, or the like); to disreguard; violate.\n\tTo go beyond the boundaries or limits; tresspass; encroach.\nThis definition implies the following of some form of existing \nagreement.  Laws and agreements are made in advance.  Boundaries \nor limits of behavior are set by society as a whole.  The word \n\"unconditional\" implies no agreements or all previous agreements \nare off, which is the opposite.\n\nThe words used in the first amendment are much stronger, i.e.,\n\"congress shall make no law,\" are much stronger.  They clearly \n\t         ^^^^^^^^^^^\nimply \"unconditional.\"  If the writers of the amendment, wanted \nunconditional whay didn't they says, \"congress shall make no \nlaws pertaining the the right of the people to keep and bear arms\"?\nThe second amendment implies a sort contract between the people\nthe people and the state.  The bigger part of the contract is\nthe people have the right to overthrew the government and its laws\nat any time.  To guarantee this right, the laws cannot stopped\nthe people from forming a \"well regutaled militia.\"  The duties\nof a \"well regulated militia\" to the government are descussed in \nFederalist No. 29.  And the limits of of the governmental control\nof the militia are descussed in Article I Section 8, Article II \nSection 2, and the Second Amendment of the constitution.\n\n-- \n+-----------------------------+-----------------------------------------------+\n|                             |  \"If only it were a modern document, with a   |\n| John Lawrence Rutledge      | smart index and hyper links stretching all    |\n| Research Assistant          | through the world data net.  It was terribly  |\n|                             | frustrating to flip back and forth between    |\n| Interactive Media Group     | the pages and crude flat illustrations that   |\n| Computer Science Department | never even moved.  Nor were there animated    |\n| UMass - Lowell              | arrows or zoom-ins.  It completely lacked a   |\n| 1 University Ave.           | for sound.                                    |\n| Lowell, MA 01854            |  \"Most baffling of all was the problem of new |\n|                             | words...  In normal text you'd only have to   |\n| (508) 934-3568              | touch an unfamiliar word and the definition   |\n| jrutledg@cs.ulowell.edu     | would pop up just below.\"                     |\n|                             |                    from David Brin's \"Earth\"  |\n+-----------------------------+-----------------------------------------------+\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11198, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: balog@eniac.seas.upenn.edu (Eric J Balog)\nSubject: Re: Diamond Stealth 24 giving 9.4 Winmarks?\nOrganization: University of Pennsylvania\nLines: 9\nNntp-Posting-Host: eniac.seas.upenn.edu\n\nHi!\n\nWhen posting Winmark results, it is a good idea to give the version of \nWinBench that you used to obtain the scores, as well as the resolution that\nyou tested and the version of the drivers.\n\nEric Balog\nbalog@eniac.seas.upenn.edu\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11199, "properties": {"category": "talk.politics.mideast", "text": "From: varvel@plains.NoDak.edu (Andrew Varvel)\nSubject: To be exact, 2.5 million readers enlightened by Serdar Argic\nSummary: :-P\nArticle-I.D.: ns1.C5uvBM.MzE\nOrganization: North Dakota Higher Education Computing Network\nLines: 13\nNntp-Posting-Host: plains.nodak.edu\n\n\nIn article <9304202017@zuma.UUCP> sera@zuma.UUCP (Serdar Argic) writes:\n              (a.k.a. Serdar Argic, The Merciful and Compassionate)\n\n[Serdar Argic's bountiful, divine, all-knowing, and footnoted \nwisdom is regrettably omitted for this solemn tribute.]\n\n\nWHERE CAN I JOIN THE SERDAR ARGIC FAN CLUB?  DO I GET A T-SHIRT?\n\n--The Friendly Neighborhood Alien--\n\nLife just hasn't been the same since David Koresh died...\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11200, "properties": {"category": "comp.sys.mac.hardware", "text": "From: zia@castle.ed.ac.uk (Zia Manji)\nSubject: HELP PLEASE - Hand Scanner Problem\nOrganization: Edinburgh University\nLines: 29\n\n\n\tIF YOU KNOW ANYTHING ABOUT THE CAERE TYPIST PLUS GRAPHICS\n\tHAND SCANNER, PLEASE READ ON AND SAVE MY LIFE.........\n\nMy problem is that my Caere Typist Plus Graphics Hand Scanner will not\nconnect to my PowerBook 160.\n\nThe cable from the scanner will not fit the SCSI port of the computer. \n\nI managed to gaet a cabled assembled that adapted the cord to the\ncomputer. However, this placed the computer into SCSI mode, that is it\nacted as an external hard disk whenever i switched the computer on.\n\nI've asked an engineer in London to assemble a new Cable for me. But\nhe's taken 14 weeks and has yet to find the solution, out of sheer\nlaziness. And I know that a cable exists to solve the problem.\n\nIf you know the solution. Please let me know what cable I need and how I\ncan get hold of one. \n\nMy E-Mail address is :\n\n\t\t\tzia@uk.ac.ed.castle\t\t\n\nI will be truely grateful for all your help.\n\nThanking you in advance,\n\nZia.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11201, "properties": {"category": "talk.politics.misc", "text": "From: libwca@emory.edu (Bill Anderson)\nSubject: Re: ABOLISH SELECTIVE SERVICE\nOrganization: Emory University, Atlanta, GA\nLines: 29\nX-Newsreader: Tin 1.1 PL3\n\nwilliam@fractl.tn.cornell.edu writes:\n: In article <1993Apr15.215747.17331@m5.harvard.edu>, borden@head-cfa.harvard.edu (Dave Borden) writes:\n: >The Selective Service Registration should be abolished.  To start with, the\n: >draft is immoral.  Whether you agree with that or not, we don't have one now,\n: >and military experts agree that the quality of the armed forces is superior\n: >with a volunteer army than with draftees.  Finally, the government has us\n: >on many lists in many computers (the IRS, Social Security Admistration and\n: >Motor Vehicle Registries to name a few) and it can find us if it needs to.\n: >Maintaining yet another list of people is an utter waste of money and time.\n: >Let's axe this whole department, and reduce the deficit a little bit.\n: >\n: >\n: >  - Dave Borden\n: >    borden@m5.harvard.edu\n: \n: \n: You selfish little bastard. Afraid you might have to sacrafice somthing\n: for your country. What someone not approve a lone for you ? To bad.\n: What is immoral is: people like you and the current president who don't\n: have any idea why this country still exists after 200+ years.\n\t\t\t\t\t\n\t\t\t\t\tThis country still exists after 200+ years\n\t\t\t\t\tbecause the \n\t\t\t\t\tpeople have to be forced by the government to\n\t\t\t\t\tfight in foreign wars?\n\t\t\t\t\tI don't think so...\n\t\t\t\t\t\n\t\t\t\t\tBill\n\t\t\t\t\t.\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11202, "properties": {"category": "sci.electronics", "text": "From: kenh@sail.LABS.TEK.COM (Ken Hillen)\nSubject: RF data transmission\nArticle-I.D.: sail.13601\nDistribution: usa\nOrganization: Tektronix Inc., Beaverton, Or.\nLines: 10\n\nI need a off-the-shelf method of transmitting small amounts of data up to\n300 feet.  The data is low speed and can be encoded as needed.  Low power\non the transmitting end would be a plus.  An FCC certified product would\nbe prefered.\n\nIf you have any pointers to products or companies I'd appreciate hearing from\nyou.\n\nThanks,\nKen\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11203, "properties": {"category": "alt.atheism", "text": "From: karner@austin.ibm.com (F. Karner)\nSubject: Re: Jews can't hide from keith@cco.\nOriginator: frank@karner.austin.ibm.com\nOrganization: IBM Advanced Workstation Division\nLines: 50\n\n\nIn article <1pj2b6$aaa@fido.asd.sgi.com>, livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n> In article <1993Apr3.033446.10669@bmerh85.bnr.ca>, dgraham@bmers30.bnr.ca (Douglas Graham) writes:\n> |> In article <1pint5$1l4@fido.asd.sgi.com> livesey@solntze.wpd.sgi.com (Jon Livesey) writes:\n> |> >\n> |> Deletions...\n> |> Er, Jon, what Ken said was:\n> |> \n> |>   There have previously been people like you in your country.  Unfortunately,\n> |>                              ^^^^^^^^^^^^^^^\n> |>   most Jews did not survive.\n> |> \n> |> That sure sounds to me like Ken is accusing the guy of being a Nazi.\n> \n> Hitler and the Nazis didn't spring fully formed from the forehead\n> of Athena.   They didn't invent anti-semitism.   They built on a \n> foundation of anti-semitism that was already present in Germany.   \n> This foundation of anti-semitism was laid down, not by the Nazis, \n> but by the people I listed, and also by hundreds of years of unthinking, \n> knee-jerk bigotry, on the part of perfectly ordinary people, and, of\n> course, their pastors and priests.\n> \n> What we have to worry about today is not whether some Hollywood\n> Hitler in a black uniform is going to come striding onto the German\n> stage in one unprepared step, but whether those same bedrock foundations\n> of anti-semitism are being laid down, little by little, in Germany,\n> as we speak.\n> \n> And if so, they will be laid down, not by Hitlers and Himmlers, who\n> will come later, but by \"people like\" the poster in question.   The\n> people who think that casual anti-semitism is acceptable, or even fun.\n>                       ^^^^^^^^^^^^^^^^^^^^\n> \nDeletions...\n> I did.     Now may I suggest, with the greatest possible respect, that\n> you go read some history?\n> \n> jon.\n\nSo, you consider the german poster's remark anti-semitic?  Perhaps you\nimply that anyone in Germany who doesn't agree with israely policy in a\nnazi?  Pray tell, how does it even qualify as \"casual anti-semitism\"? \nIf the term doesn't apply, why then bring it up?\n\nYour own bigotry is shining through.  \n-- \n\n         DISCLAIMER: The opinions expressed in this posting are mine\n            solely and do not represent my employer in any way.\n       F. A. Karner AIX Technical Support | karner@austin.vnet.ibm.com\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11204, "properties": {"category": "comp.graphics", "text": "From: ajs8@kimbark.uchicago.edu (adam jeremy schorr)\nSubject: Graphics Needed\nReply-To: ajs8@midway.uchicago.edu\nOrganization: University of Chicago\nLines: 2\n\n\tI'm looking for graphics (clipart, bmp, gif...) of anything relating to ophthalmology (I know it's a weird request). Anything such as eyeglasses, \ncontact lenses, eyes...would be greatly appreciated. Thanks.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11205, "properties": {"category": "comp.graphics", "text": "From: tmc@spartan.ac.BrockU.CA (Tim Ciceran)\nSubject: Re: MPEG Location\nOrganization: Brock University, St. Catharines Ontario\nX-Newsreader: TIN [version 1.1 PL9]\nLines: 21\n\nAlan Jackson (ajackson@cch.coventry.ac.uk) wrote:\n\n: Can anyone tell me where to find a MPEG viewer (either DOS or\n: Windows).\n\n: Thanks in advance.\n\n: -- \n: Alan M. Jackson      Mail : ajackson@cch.cov.ac.uk\n\n:      Liverpool Football Club - Simply The Best\n:               \"You'll Never Walk Alone\"\n\nYou can find a Windows MPEG viewer at wuarchive.wustl.edu in the\nmirrors/msdos/windows3 directory.\n\n-- \n\nTMC\n(tmc@spartan.ac.BrockU.ca)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11206, "properties": {"category": "sci.crypt", "text": "From: barrett@lucy.ee.und.ac.za (Alan Barrett)\nSubject: Re: Screw the people, crypto is for hard-core hackers & spooks only\nOrganization: Elec. Eng., Univ. Natal, Durban, S. Africa\nLines: 18\nNNTP-Posting-Host: lucy.ee.und.ac.za\n\nIn article <C5qy3M.DE3@agora.rain.com>,\njhart@agora.rain.com (Jim Hart) writes:\n> Since the wiretap chip is being distributed internationally,\n> allowing the U.S. government to spy on foreign governments,\n> companies and people as as well as to wiretap domestic citizens,\n> this is a world-wide issue.  Please put DISTRIBUTION: WORLD on the \n> Distrubution: line.  Thank you.\n\nNo!  Distribution keywords are case sensitive.  What you want\nis\n\n\tDistribution: world\n\nor no Distribution line at all.  \"WORLD\" in capital letters is wrong.\n\n--apb\nAlan Barrett, Dept. of Electronic Eng., Univ. of Natal, Durban, South Africa\nRFC822: barrett@ee.und.ac.za\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.529+0000", "event": "documents", "entityId": 11207, "properties": {"category": "sci.crypt", "text": "From: bontchev@fbihh.informatik.uni-hamburg.de (Vesselin Bontchev)\nSubject: Re: Licensing of public key implementations\nReply-To: bontchev@fbihh.informatik.uni-hamburg.de\nOrganization: Virus Test Center, University of Hamburg\nLines: 23\n\nstrnlght@netcom.com (David Sternlight) writes:\n\n> I will provide one hint: it is reported that RSA expressed puzzlement (at\n> their conference) that nobody has asked for permission to use RIPEM to\n> write a PGP-compatible program.\n\nThis actually supports Bill's speculation - IF there is a backdoor in\nRSAREF and IF PKP is supported secretly by the NSA, then it is more\nthan natural that they will welcome ANY public-key implementation that\nuses RSAREF and will strongly oppose themselves against ANY\nimplementation that doesn't.\n\nI personally cannot see how one could put a backdoor in a\nlong-precision modular arithmetic library that comes in source, but,\nof course, the fact that -I- cannot see it means nothing...\n\nRegards,\nVesselin\n-- \nVesselin Vladimirov Bontchev          Virus Test Center, University of Hamburg\nTel.:+49-40-54715-224, Fax: +49-40-54715-226      Fachbereich Informatik - AGN\n< PGP 2.2 public key available on request. > Vogt-Koelln-Strasse 30, rm. 107 C\ne-mail: bontchev@fbihh.informatik.uni-hamburg.de    D-2000 Hamburg 54, Germany\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11208, "properties": {"category": "sci.electronics", "text": "From: cs000rdw@selway.umt.edu (Richard D Warner)\nSubject: UART-CPU-ROM-RAM subsystem\nKeywords: cheap, low-cost, small $$$\nOrganization: University of Montana\nLines: 21\n\n\tThis is a followup post to something I've written previously.  Several\npeople responded with good information, but I don't think I communicated \nexactly what I am looking for.\n\tI'm working on a custom I/O device that will communicate with a host\nvia RS-232.  My custom circuitry will use an 80C186EB or EC CPU and require\nabout 64K of RAM (preferably FLASH RAM).  In looking around, I see that lots\nof people have engineered UART-CPU-ROM-RAM subsystems that are ready to be\ninterfaced to your custom I/O devices.  It's been done so much, that it \nwould be best if I can avoid reinventing a system.  It just needs to use\nan 80C186 (or 188) CPU, and be able to load a program from the host then \ntransfer control to that program.  Well, there's one other thing the ROM\nneeds to know how to do.  It should have routines to send and receive bytes\nto/from the host, that utilize the hardware control lines (DTR,RTS,DTS,CTS).\nEverything I've seen is in the $200.00 and up range.  That's too much for\nthis application.  I need something around $100.00.  The CPU has the UART\nbuilt-in, so you're only looking at a few chips.  Does anyone know a \ncompany that markets a good board in this range, or some public domain \ncircuitry I can use?  Thanks in advance for the info.\n\nRich\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11209, "properties": {"category": "sci.electronics", "text": "From: kludge@grissom.larc.nasa.gov (Scott Dorsey)\nSubject: Re: Need to find out number to a phone line\nOrganization: NASA Langley Research Center and Reptile Farm\nLines: 16\nNNTP-Posting-Host: grissom.larc.nasa.gov\n\nIn article <20756.2bd16dea@ecs.umass.edu> alee@ecs.umass.edu writes:\n>\n>Greetings!\n>      \n>        Situation:  I have a phone jack mounted on a wall.  I don't\n>                    know the number of the line.  And I don't want\n>                    to call up the operator to place a trace on it.\n>\n>        Question:   Is there a certain device out there that I can\n>                    use to find out the number to the line?\n\n\nCall a friend long distance, collect.  Ask to speak with yourself.  When\nthe operator asks for you, you won't be there, so ask the operator to leave\nyour number.  She'll read it out in the clear.\n--scott\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11210, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: 2a42dubinski@vms.csd.mu.edu\nSubject: WORD 2.0 HELP!\nOrganization: Marquette University - Computer Services\nLines: 10\nReply-To: 2a42dubinski@vms.csd.mu.edu\nNNTP-Posting-Host: vmsa.csd.mu.edu\n\nHello,\n\tI'm having problems printing SPANISH characters with WFW2.  I was using the Celtic True type which has the accented characters, and used insert symbol to put in in the document.  However, when I put it in the doc, I get a big square character, and then it prints out just the same (to my dismay, thinking that was just the way it worked).\nCan anyone tell me if and how they have printed Spanish characters?  I know WP 5.1 has this built-in, but I do not recall ever seeing this option on WFW2.  HELP!\n  ------------------------------------------------------------------------\n  | Robert S. Dubinski |  Aliases include:  Robb, Regal, Sir, Mr., and I |\n  ------------------------------------------------------------------------\n  | Marquette University ||||||||||| Math / Computer Science Double-Major|\n  ------------------------------------------------------------------------\n  | Internet Address: 2A42Dubinski.vms.csd.mu.edu  |\tMilwaukee, WI    |\n  ------------------------------------------------------------------------  \n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11211, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: pwb@aerg.canberra.edu.au (Paul Blackman)\nSubject: Re: moving icons\nArticle-I.D.: csc.1993Apr22.233213.7644\nOrganization: University of Canberra\nLines: 20\n\nIn article <1bp0rAHPBh107h@viamar.UUCP> rutgers!viamar!kmembry writes:\n>I remember reading about a program that made windows icons run away\n>from the mouse as it moved near them.  Does anyone know the name\n>of this program and the ftp location (probably at cica)\n>\nThe file is frite20.zip and you'll find it in the 'icons' directory\nat Cica.\n\nThe one line description is:\nAfflict Your Icons with \"Cursorphobia\"\n\n~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~\n    o        |  Paul Blackman                   pwb@science.canberra.edu.au  \n        o    |  Water Research Centre,             pwb@aerg.canberra.edu.au\n   o  _      |  Faculty of Applied Science\n  -- (\") o   |  University of Canberra, Australia.\n    \\_|_--   |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n      |      |  \"Spend a little love and get high\"\n    _/ \\_    |                                    - Lenny Kravitz\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11212, "properties": {"category": "comp.graphics", "text": "From: dingebre@imp.sim.es.com (David Ingebretsen)\nSubject: Re: images of earth\nOrganization: Evans & Sutherland Computer Corp., Salt Lake City, UT\nLines: 20\nDistribution: world\nReply-To: dingebre@imp.sim.es.com (David Ingebretsen)\nNNTP-Posting-Host: imp.sim.es.com\n\nI downloaded an image of the earth re-constructed from elevation data taken\nat 1/2 degree increments. The author (not me) wrote some c-code (included)\nthat read in the data file and generated b&w and pseudo color images. They\nwork very well and are not incumbered by copyright. They are at an aminet\nsite near you called earth.lha in the amiga/pix/misc area...\n\nI refer you to the included docs for the details on how the author (sorry, I\nforget his name) created these images. The raw data is not included.\n\n-- \n\tDavid\n\n\tDavid M. Ingebretsen\n\tEvans & Sutherland Computer Corp.\n\tdingebre@thunder.sim.es.com\n\n\tDisclaimer: The content of this message in no way reflects the\n\t            opinions of my employer, nor are my actions\n\t\t    encouraged, supported, or acknowledged by my\n\t\t    employer.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11213, "properties": {"category": "rec.autos", "text": "From: jchen@wind.bellcore.com (Jason Chen)\nSubject: Re: Ad said Nissan Altima best seller?\nReply-To: jchen@ctt.bellcore.com\nOrganization: Bell Communications Research\nLines: 1\nNntp-Posting-Host: wind.bellcore.com\n\nI guess that makes Altima the most generic car in the US.\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11214, "properties": {"category": "sci.electronics", "text": "From: galen@picea.CFNR.ColoState.EDU (Galen Watts)\nSubject: Re: Suggestions  on Audio relays ???\nNntp-Posting-Host: storm.cfnr.colostate.edu\nOrganization:  Colorado Concert Sound\nLines: 25\n\nIn article <1993Apr20.102756.1709@mala.bc.ca> wagner@mala.bc.ca (TOM WAGNER, Wizzard of old Audio/Visual Equipment........Nanaimo Campus) writes:\n>In article <C5r60r.4ID@megatest.com>, alung@megatest.com (Aaron Lung) writes:\n>> In article <C5qsBF.IEK@ms.uky.edu> billq@ms.uky.edu (Billy Quinn) writes:\n>>>I built a little project using the radio shack 5vdc relays to switch\n>>>audio.  I got pretty bad 'clicks' when the thing switched.  I was doing\n>>>My question is:\n>>>\tIs there a good relay/relay circuit that I can use for switching\n>>>audio, so that there will be *NO* noise of any kind on the audio lines.\n>> \n>> Are you switching high level signals or low level signals like pre-amp\n>A novel circuit I used to build was a primitive \"optical isolator\".. It consists\n>of a resistive photocell and a lamp, all packaged in a tube.  When the lamp is\n>off the cell is high resistance.  Turn the lamp on and the resistance lowers\n\nI use an H11F1   FET optoisolater to switch microphone level signals.\nThere is no click, since I put a .1uF cap across the LED.  Distortion\nmeasurement are very low with mic level, and they went up to 0.03% at a\n+ 14 dB line level.  All I did was put the FET in series with one leg\nof the balanced line.  No hums, pops, just audio jumping out of silence.\nThe FET runs about 100 million ohms with the LED dark and drops to 150-200\nohms with it on.\n\nHey, it works, and works well.\nGalen Watts, KF0YJ\n\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11215, "properties": {"category": "sci.crypt", "text": "From: finchm@csugrad.cs.vt.edu (Michael >Finchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchmfinchm< Finch)\nSubject: Re: Why the clipper algorithm is secret\nOrganization: Virginia Tech Computer Science Dept, Blacksburg, VA\nLines: 17\nNNTP-Posting-Host: csugrad.cs.vt.edu\n\njohnl@iecc.cambridge.ma.us (John R. Levine) writes:\n> >The cryptographic protocol, though, is another matter.  I see no valid\n> >reasons for keeping it secret, and -- as I hope I've shown above -- there\n> It just occurred to me why the algorithm is secret.  If it were\n> published, one could then build physically identical clone versions\n\nI recall seeing a post some time ago saying that if the details of\nan encryption scheme couldn't be revealed, then the encryption\nscheme is worthless.  I believe the statement was in response to\nsomebody saying that they had some new snazzy scheme, but the\nalgorithm was a secret.\n\nDoes this algorithm depend on the fact that the scheme is secret or\nis it for the stated reasons above?\n\n\n-Mike\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11216, "properties": {"category": "misc.forsale", "text": "From: tsa@cellar.org (The Silent Assassin)\nSubject: For Sale:  Game Boy\nOrganization: The Cellar BBS and public access system\nLines: 10\n\nFor sale:\n\nNintendo Game Boy, Tetris, Castlevania Adventure, All-Star Challenge,\nNemesis, Play-Action football, link cable.\n\nMake me an offer.\n\nLibertarian, atheist, semi-anarchal Techno-Rat.\n\nI define myself--tsa@cellar.org\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11217, "properties": {"category": "alt.atheism", "text": "Organization: Penn State University\nFrom: Andrew Newell <TAN102@psuvm.psu.edu>\nSubject: Re: Christian Morality is\n <C5prCA.590@news.cso.uiuc.edu>\nLines: 32\n\nIn article <C5prCA.590@news.cso.uiuc.edu>, cobb@alexia.lis.uiuc.edu (Mike Cobb)\nsays:\n>\n>In <11836@vice.ICO.TEK.COM> bobbe@vice.ICO.TEK.COM (Robert Beauchaine) writes:\n>\n>>In article <C5L1Ey.Jts@news.cso.uiuc.edu> cobb@alexia.lis.uiuc.edu (Mike\n>Cobb) writes:\n>\n>>  If I'm wrong, god is free at any time to correct my mistake.  That\n>>  he continues not to do so, while supposedly proclaiming his\n>>  undying love for my eternal soul, speaks volumes.\n>\n>What are the volumes that it speaks besides the fact that he leaves your\n>choices up to you?\n\nLeaves the choices up to us but gives us no better reason\nto believe than an odd story of his alleged son getting\nkilled for us?  And little new in the past few thousand\nyears, leaving us with only the texts passed down through\ncenturies of meddling with the meaning and even wording.\n...most of this passing down and interpretation of course\ncoming from those who have a vested interest in not allowing\nthe possibility that it might not be the ultimate truth.\nWhat about maybe talking to us directly, eh?\nHe's a big god, right?  He ought to be able to make time\nfor the creations he loves so much...at least enough to\ngive us each a few words of direct conversation.\nWhat, he's too busy to get around to all of us?\nOr maybe a few unquestionably-miraculous works here and\nthere?\n...speaks volumes upon volumes to me that I've never\ngotten a chance to meet the guy and chat with him.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11218, "properties": {"category": "alt.atheism", "text": "From: \"Robert Knowles\" <p00261@psilink.com>\nSubject: Re: Islamic marriage?\nIn-Reply-To: <C51CJp.1LF8@austin.ibm.com>\nNntp-Posting-Host: 127.0.0.1\nOrganization: Kupajava, East of Krakatoa\nX-Mailer: PSILink-DOS (3.3)\nLines: 44\n\n>DATE:   Tue, 6 Apr 1993 00:11:49 GMT\n>FROM:   F. Karner <karner@austin.ibm.com>\n>\n>In article <1993Apr2.103237.4627@Cadence.COM>, mas@Cadence.COM (Masud Khan) writes:\n>> In article <C4qAv2.24wG@austin.ibm.com> karner@austin.ibm.com (F. Karner) writes:\n>> >\n>> >Okay.  So you want me to name names?  There are obviously no official\n>> >records of these pseudo-marriages because they are performed for\n>> >convenience.  What happens typically is that the woman is willing to move\n>> >in with her lover without any scruples or legal contracts to speak of. \n>> >The man is merely utilizing a loophole by entering into a temporary\n>> >religious \"marriage\" contract in order to have sex.  Nobody complains,\n>> >nobody cares, nobody needs to know.\n>> >\n>> >Perhaps you should alert your imam.  It could be that this practice is\n>> >far more widespread than you may think.  Or maybe it takes 4 muslim men\n>> >to witness the penetration to decide if the practice exists!\n>> >-- \n>> >\n>> \n>> Again you astound me with the level of ignorance you display, Muslims\n>> are NOT allowed to enter temporary marriages, got that? There is\n>> no evidence for it it an outlawed practise so get your facts \n>> straight buddy. Give me references for it or just tell everyone you\n>> were lying. It is not a widespread as you may think (fantasise) in\n>> fact contrary to your fantasies it is not practised at all amongst\n>> Muslims.\n\nDid you miss my post on this topic with the quote from The Indonesian\nHandbook and Fred Rice's comments about temporary marriages?  If so, \nI will be glad to repost them.  Will you accept that it just may be \na practice among some Muslims, if I do?  Or will you continue to claim\nthat we are all lying and that it is \"not practised at all amongst Muslims\".\n\nI don't think F. Karner has to tell everyone anything.  Least of all that\nhe is lying.\n\nSince you obviously know nothing about this practice, there is very little\nyou can contribute to the discussion except to accuse everyone of lying.\nPerhaps it is your ignorance which is showing.  Learn more about Islam.\nLearn more about Muslims.  Open your eyes.  Maybe you will also see some\nof the things the atheists see.\n\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11219, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: rmm@cbnewsg.cb.att.com (richard.m.maniscalco)\nSubject: Re: Share your optimization tips\nOrganization: AT&T\nLines: 33\n\nIn article <1pm61pINNp45@geraldo.cc.utexas.edu> jbodnar@ccwf.cc.utexas.edu (John Bodnar) writes:\n>According to e_p@unl.edu (edgar pearlstein):\n>>        Here's another one:\n>>\n>>        5.  My computer arrived with the following statement in its\n>>            config.sys file:  STACKS = 9,256.  I changed it to\n>>            STACKS = 8,128 and saved 1296 bytes.  Maybe it could be\n>>            lowered even more, but I haven't tried it. \n>\n>Exactly.\n>\n>Regardless of what Microsoft says, I have set STACKS=0,0 on every single\n>computer I have installed Windows on from a simple 386SX-16 up to 486DX-50\n>with EISA motherboards, NDI Volante TIGA adapters, Intel Ethernet Express\n>cards, and caching SCSI controllers from DPT and DTC.\n>\n>Not a problem yet, and the extra 2K+ gained means a lot with conventional\n>memory gobbling programs like OrCAD and Tango PCB.\n>-- \n>John Bodnar                          : \"While we liked developing Windows\n>The University of Texas at Austin    :  applications, we never inhaled.\"\n>Internet: jbodnar@ccwf.cc.utexas.edu : \n>UUCP: ....!cs.utexas!ut-ccwf!jbodnar :       -- Borland CEO Philippe Kahn\n\n\n\nI remember reading somewhere (QEMM manual, I think) that \nSTACK=9,256 is needed only for the Windows SETUP program.  \nOtherwise, use STACK=0,0.\n\n\tRich\n\n\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11220, "properties": {"category": "comp.graphics", "text": "From: bernard@cs.su.oz.au (Bernard Gardner)\nSubject: Re: Fast polygon routine needed\nOrganization: Basser Department of Computer Science\nKeywords: polygon, needed\nLines: 10\n\nFor some reason I never saw the original post on this thread, but if you are\nlooking for fast polygon routines on vga on a PC, you really can't go past\nthe mode X stuff from Dr Dobbs. This code is all p.domain (as far as I know),\nand in the original articles, the routines were all presented as dumb vga\nroutines, and then optimised to modeX with some interesting discussion along\nthe way.\nIf you are interested, I could find out more details of the issues in question,\n(I have them at home).\n\nBernard.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11221, "properties": {"category": "sci.med", "text": "From: uabdpo.dpo.uab.edu!gila005 (Stephen Holland)\nSubject: Re: Lactose intolerance\nOrganization: Gastroenterology - Univ of Alabama\nLines: 19\n\nIn article <ng4.733990422@husc.harvard.edu>, ng4@husc11.harvard.edu (Ho\nLeung Ng) wrote:\n> \n> \n>    When I was a kid in primary school, I used to drink tons of milk without\n> any problems.  However, nowadays, I can hardly drink any at all without\n> experiencing some discomfort.  What could be responsible for the change?\n> \n> Ho Leung Ng\n> ng4@husc.harvard.edu\n\nYou became older and your intestine normalized to the weaned state.  That\nis, lactose tolerance is an unusual state for adults of most mammals\nexcept for h. sapiens of northern European origin.  As a h. sapiens of \nasian descent (assumption based on name) the loss of lactase is normal\nfor you.  \n\nSteve Holland\ngila005@uabdpo.dpo.uab.edu\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11222, "properties": {"category": "talk.politics.misc", "text": "Subject: Re: Why not concentrate on child molesters?\nFrom: quirke_a@kosmos.wcc.govt.nz\nOrganization: Welligton City Council, Public Access.\nNNTP-Posting-Host: kosmos.wcc.govt.nz\nLines: 19\n\ncramer@optilink.COM (Clayton Cramer) writes:\n\n> the liberal Gov. Wilder vetoed it.  Which shows that liberals don't\n> give a damn about \"best person for the job,\" it's just a power\n> play.\n\n   \"Women are only interested in clothes and shopping\"\n   \"Whites are imperialist colonial fascists\"\n   \"Blacks are lazy uneducated scum\"\n   \"Men are rapists\"\n   \"Homosexuals support child-molesting\"\n\n   Slogans, my dear Cramer, are not an adequate substitute for thought.\n\n-- \nTony Quirke, Wellington, New Zealand. Quirke_a@kosmos.wcc.govt.nz\n\"Usenet is like a herd of performing elephants with diarrhea -- massive, \ndifficult to redirect, awe-inspiring, entertaining, and a source of mind-\nboggling amounts of excrement when you least expect it.\"--gene spafford,1992\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11223, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: S903146@mailserv.cuhk.hk\nSubject: Re: DOS6 - no boot disk required if you don't want EMM386 to load\nNntp-Posting-Host: wksa16.csc.cuhk.hk\nOrganization: Computer Services Centre, C.U.H.K.\nDistribution: usa\nLines: 20\n\nIn article <ls91poINNsvf@levelland.cs.utexas.edu> sms@cs.utexas.edu (Stephen Mark Sanderson) writes:\n>From: sms@cs.utexas.edu (Stephen Mark Sanderson)\n>Subject: DOS6 - no boot disk required if you don't want EMM386 to load\n>Date: 8 Apr 1993 15:12:40 -0500\n>Everybody, DOS 6 users in particular, take note:  if you want to play games\n>that hate/use their own upper memory manager, DOS 6 is not a problem.  No\n>boot disks required.  As your system starts up, hit the F5 key.  This tells\n>it to bypass config and autoexec altogether.  You get a plain, generic session\n>of DOS, with nothing loaded.  <there's another function key that actually\n>steps thru config.sys asking if you want to execute each line, but I've\n>forgotten it at the moment...you can try finding it - I think it's F9...>\n\n     No, you need not bypass the config.sys, in Dos 6.0, there is a function \nof multi-config, have you tried BOOT.SYS ? the multi-config is the kind that \nyou can choose you config.sys at the startup. And I find that is very good. \nIt has no conflict to QEMM. (I have problem when using BOOT.SYS)\n    The key you say is F8, which is trace the config.sys step by step.\n    Sorry, if any error :)\n\nPhillip   (phillipau@cuhk.hk)\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11224, "properties": {"category": "rec.sport.hockey", "text": "Subject: Re: Trade rumor: Montreal/Ottawa/Phillie\nFrom: <JER108@psuvm.psu.edu>\nOrganization: Penn State University\nLines: 50\n\nIn article <93095.210625MWEINTR@auvm.american.edu>, <MWEINTR@auvm.american.edu>\nsays:\n>\n>Also sprach slegge@kean.ucs.mun.ca ...\n>\n>>TSN Sportsdesk just reported that the OTTAWA SUN has reported that\n>>Montreal will send 4 players + $15 million including Vin Damphousse\n>>and Brian Bellows to Phillidelphia, Phillie will send Eric Lindros\n>>to Ottawa, and Ottawa will give it's first round pick to Montreal.\n>>\n>>If this is true, it will most likely depend on whether or not Ottawa\n>>gets to choose 1st overall.  Can Ottawa afford Lindros' salary?\n>>\n>>Personally, I can't see Philli giving up Lindros -- for anything.\n>>They didn't give away that much to Quebec just to trade him away\n>>again.  Not to mention that Lindros seems to be a *huge* draw in\n>>Phillie -- and that he represents a successful future for the\n>>franchise.\n>>\n>>Ottawa may be better off taking the 4 players +$15 from Montreal\n>>for the pick.\n>>\n>>Stephen Legge\n>>SLEGGE@kean.ucs.munc.ca\n>\n>Two things:\n>\n>1. Didn't the trade deadline pass two weeks ago?\n>\n>2. The FLYERS would never ever EVER give up Lindros, simple as that.\n>\n3. With Soderstrom and Roussel, why the hell would the Flyers want to\n   pick up an older and slumping Roy?\n\n(BYW, I could come up with a group of players they'd trade for.... but\nthey wouldn't be from the same team.)\n\n>Go Flyers, Cup in '94...\n>\n>Mike\n>---\n>***Yes-Rush-Marillion-ELP-Genesis-King Crimson-Dream Theater-Beatles***\n>* Mike Weintraub, aka Jvi on IRC              \"Courageous convictions *\n>* mweintr@american.edu                         will drag the dream    *\n>* jedi@wave.cerf.net                           into existence\"        *\n>* The American University, Washington DC        - Rush (NOT Limbaugh) *\n>***Go Philadelphia Flyers, Vancouver Canucks & Philadelphia Phillies***\n\n                                          John E. Runski\n                                           <jer108@psuvm>\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11225, "properties": {"category": "rec.sport.baseball", "text": "From: antond@microsoft.com (Anton Dejong)\nSubject: Re: Oakland Oaks Memorabilia\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 13\n\n>There is Ebbets Field Flannels in Seattle, which makes lots of minor and negro\n>league jackets and jerseys. These things are REAL spendy (around $200 for a\n>jersey) but they are very authentic in look and nicely made.\n>\n>--->Paul, \"long live Steve Bilko and the PCL LA Angels\"\n\nTheir phone number is 1-800-377-9777. The last catalog shows three \nOaks jerseys: 36 Home, 42 Home, 39 Home - they're each $165.00.  All their\nmerchandise is handmade and is an authentic replica.  I own a couple -\nand they are excellent. They also have wool caps and jackets.  You should\ncall to get on their mailing list even if you can't afford their prices.\n\nAnton\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11226, "properties": {"category": "sci.crypt", "text": "From: ebrandt@jarthur.claremont.edu (Eli Brandt)\nSubject: Re: The [secret] source of that announcement\nOrganization: Harvey Mudd College, Claremont, CA 91711\nLines: 12\n\nIn article <1r3hgqINNdaa@uwm.edu> Rick Miller <rick@ee.uwm.edu> writes:\n>jbotz@mtholyoke.edu (Jurgen Botz) writes:\n>>Seems like sombody didn't like your snooping around, Marc.\n>\n>Or, the more *likely* explanation is that Marc is spoofing.\n\nWhile I didn't try the expansion personally, I know of at least two\nother people who did and got the same results.  Your allegation is\nincorrect at best.\n\n\t PGP 2 key by finger or e-mail\n   Eli   ebrandt@jarthur.claremont.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11227, "properties": {"category": "talk.politics.mideast", "text": "From: sera@zuma.UUCP (Serdar Argic)\nSubject: Thousands of Armenians were serving the German army and Waffen-SS.\nReply-To: sera@zuma.UUCP (Serdar Argic)\nDistribution: world\nLines: 62\n\nIn article <48095@sdcc12.ucsd.edu> hminassi@sdcc13.ucsd.edu (HM) writes:\n\n>    \"Turkey must bare its teeth to Armenia.\"\n\nSooner than you expect. Remember 'Cyprus'?\n\n>   I have to say I vehemently disagree with you, I have seen\n\nToo bad. In fact, by 1942, Nazi Armenians in Europe had established \na vast network of pro-German collaborators, that extended over two \ncontinents. Thousands of Armenians were serving the German army and \nWaffen-SS in Russia and Western Europe. Armenians were involved in \nespionage and fifth-column activities for Hitler in the Balkans and \nArabian Peninsula. They were promised an 'independent' state under \nGerman 'protection' in an agreement signed by the 'Armenian National \nCouncil.' (A copy of this agreement can be found in the 'Congressional \nRecord,' November 1, 1945; see Document 1.) On this side of the Atlantic, \nNazi Armenians were aware of their brethrens alliance. They had often \nexpressed pro-Nazi sentiments until America entered the war. In summary,\nduring World War II Armenians were carried away with the German might and\ncringing and fawning over the Nazis. In that zeal, the Armenian publication\nin Germany, Hairenik, carried statements as follows:[1]\n\n\"Sometimes it is difficult to eradicate these poisonous elements (the Jews)\n when they have struck deep root like a chronic disease, and when it \n becomes necessary for a people (the Nazis) to eradicate them in an uncommon\n method, these attempts are regarded as revolutionary. During the surgical\n operation, the flow of blood is a natural thing.\" \n\nNow for a brief view of the Armenian genocide of the Muslims and Jews -\nextracts from a letter dated December 11, 1983, published in the San\nFrancisco Chronicle, as an answer to a letter that had been published\nin the same journal under the signature of one B. Amarian.\n\n \"...We have first hand information and evidence of Armenian atrocities\n  against our people (Jews)...Members of our family witnessed the \n  murder of 148 members of our family near Erzurum, Turkey, by Armenian \n  neighbors, bent on destroying anything and anybody remotely Jewish \n  and/or Muslim. Armenians should look to their own history and see \n  the havoc they and their ancestors perpetrated upon their neighbors...\n  Armenians were in league with Hitler in the last war, on his premise \n  to grant them self government if, in return, the Armenians would \n  help exterminate Jews...Armenians were also hearty proponents of\n  the anti-Semitic acts in league with the Russian Communists. Mr. Amarian!\n  I don't need your bias.\"  \n\n  Signed Elihu Ben Levi, Vacaville, California.\n\n[1] James G. Mandalian, 'Dro, Drastamat Kanayan,' in the 'Armenian\n    Review,' a Quarterly by the Hairenik Association, Inc., Summer:\n    June 1957, Vol. X, No. 2-38.\n\nSerdar Argic\n\n                           'We closed the roads and mountain passes that \n                            might serve as ways of escape for the Turks \n                            and then proceeded in the work of extermination.'\n                                                  (Ohanus Appressian - 1919)\n                           'In Soviet Armenia today there no longer exists \n                            a single Turkish soul.' (Sahak Melkonian - 1920)\n\n\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11228, "properties": {"category": "sci.med", "text": "From: geb@cs.pitt.edu (Gordon Banks)\nSubject: Re: \"CAN'T BREATHE\"\nArticle-I.D.: pitt.19440\nReply-To: geb@cs.pitt.edu (Gordon Banks)\nOrganization: Univ. of Pittsburgh Computer Science\nLines: 23\n\nIn article <1993Mar29.204003.26952@tijc02.uucp> pjs269@tijc02.uucp (Paul Schmidt) writes:\n>I think it is important to verify all procedures with proper studies to\n>show their worthiness and risk.  I just read an interesting tidbit that \n>80% of the medical treatments are unproven and not based on scientific \n>fact.  For example, many treatments of prostate cancer are unproven and\n>the treatment may be more dangerous than the disease (according to the\n>article I read.)\n\nWhere did you read this?  I don't think this is true.  I think most\nmedical treatments are based on science, although it is difficult\nto prove anything with certitude.  It is true that there are some\nthings that have just been found \"to work\", but we have no good\nexplanation for why.  But almost everything does have a scientific\nrationale.  The most common treatment for prostate cancer is\nprobably hormone therapy.  It has been \"proven\" to work.  So have\nradiation and chemotherapy.  What treatments did the article say\nare not proven?  \n\n-- \n----------------------------------------------------------------------------\nGordon Banks  N3JXP      | \"Skepticism is the chastity of the intellect, and\ngeb@cadre.dsl.pitt.edu   |  it is shameful to surrender it too soon.\" \n----------------------------------------------------------------------------\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11229, "properties": {"category": "comp.sys.mac.hardware", "text": "Distribution: world\nFrom: bruce_linde@bmug.org\nOrganization: BMUG, Inc.\nSubject: eight 4mb 70ns simms $105/ea., o.b.o.\nLines: 14\n\na friend of mine has eight (8) 4mb 70ns simms for sale for $105/each or best\noffer.  since techworks sells these puppies for $140/ea., you may want to\ncontact him directly at:\n\nsteve epstein\n895-6236 days\n706-2436 evenings\n\nthanks,\nbruce l.\n\n**** From Planet BMUG, the FirstClass BBS of BMUG.  The message contained in\n**** this posting does not in any way reflect BMUG's official views.\n\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11230, "properties": {"category": "rec.sport.hockey", "text": "From: rauser@fraser.sfu.ca (Richard John Rauser)\nSubject: Re: Canadiens - another Stanley Cup???\nOrganization: Simon Fraser University, Burnaby, B.C., Canada\nLines: 25\n\npereira@CAM.ORG (Dean Pereira) writes:\n\n\n>\t\tWith the kind of team Montreal has now,  they can take the\n>cup easily.  The only problem they have right now is that everyone is\n>trying to steal the show and play alone.  They need some massive teamwork.\n>\tThey are also in a little of a slump because long-time hockey\n>Montreal Canadiens announcer Claude Mouton died last tuesday and it was\n>rough on everybody because he has worked with the organization for 21\n>years.  But I know that is no excuse.  But if the Habs manage to get some\n>good teamwork and get into the spirit,  they should have no problem\n>winning in May.\n\n   I agree. I also think Roy needs a good kick sometimes...that horrible\n4-0 loss to the Capitals last week...yeeeech!\n\n   Here's to Cup #23...this year!\n\n \n-- \nRichard J. Rauser        \"You have no idea what you're doing.\"\nrauser@sfu.ca            \"Oh, don't worry about that. We're professional\nWNI                          outlaws - we do this for a living.\"\n-----------------\n\"Remember, no matter where you go, there you are.\" -Dr.Banzai\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.530+0000", "event": "documents", "entityId": 11231, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: chen@protostar.harvard.edu\nSubject: re: BBBBIG problem with W4W print file. Help!!!!\nOrganization: Harvard-Smithsonian Center for Astrophysics \nDistribution: world \nLines: 34\n\n\nIn article <1993Mar31.014237.28478@jupiter.sun.csd.unb.ca> dwoo@unb.ca writes:\n>To all the W4W experts:\n>\n>I have a file that is three pages long with 10 to 12 1-line equations\n>plus a 5\"by 2\" diagram. The size of this file is about 81KB before\n>unlinking all the embedded objects and 30KB after unlinking all the\n>embedded objects. Well, when I print it (since I don't have a laser\n>printer, I have to send it to a print file), W4W gives me back a\n>BBBBBBIG file that is well over 6MB long.  I just fail to see how a 81K\n>file can be boosted to a 6MB file. Obviously, I will not able to carry\n>this 6MB+ file to the public printer unless I find myself a network\n>card, a cable etc.\n>\n>Could anyone please enlighten me with a solution? (I already try to\n>print a page at a time, it still won't fit into a HD floppy)\n>\n>Thanx a mil.\n>\n>\n>\n>*****************************************************************\n>*  Dennis Woo              Department of Mechanical Engineering *\n>*  E-mail: dwoo@unb.ca     University of New Brunswick          *\n>*  Tel: (506) 453-4513                                          *\n>*****************************************************************\t\n> \n>\nI once had this problem.  All I did was to copy the whole doc to a new file.  The problem \nwas gone.  Hope this helps.\n\nHua\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11232, "properties": {"category": "rec.motorcycles", "text": "From: speedy@engr.latech.edu (Speedy Mercer)\nSubject: Re:  Living\nOrganization: Louisiana Tech University\nLines: 25\nNNTP-Posting-Host: bhm116e-spc.engr.latech.edu\n\nIn article <1993Apr05.172836.36759@rchland.ibm.com> pooder@rchland.vnet.ibm.com (Don Fearn) writes:\n>In article <05APR93.02451203.0049@UNBVM1.CSD.UNB.CA>, C70A000 <C70A@UNB.CA> \nwrites:>|> \n>|> ... I sprained my right ankle once and kept riding, ...\n>When I broke my right leg in two places ...\n\nI had knee surgery while I was in the Navy back in 77.  The \ndoctors put me in a cast from ass-to-ankle.  My only method of transportaion \nwas a DOHC 450 Honda at the time.  I found that by sliding back on the seat \nI could use my heel (did I mention it was my left leg?) to operate the shift.\nI would hook the end of the lever with my heel and lift my entire leg for up-\nshifts and just drop my leg on the lever for the down-shifts.  Forget \nnutral, took WAY too much finesse for the leg!  The crutches were bungee-\ncorded to the right side of the bike with the \"top\" resting on the passenger \npeg and the right turnsignal sticking through the \"hole\" in the crutches.  \nEvery other day when I rode the 10 miles to Physical Therapy (tourture \nsessions) the doc would give me hell about riding a bike much less riding in \nmy condition.  Didn't stop me tho! B-P\n\nBTW.  This is the same bike I assembled in my second floor barracks room and \nrode down the stairs when it was completed!\n\n  --------======= I am not paid to have an opinion! =======--------\n  Dr. Speed                                           Suzuki GS850G\n  DoD #8177\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11233, "properties": {"category": "sci.space", "text": "From: baalke@kelvin.jpl.nasa.gov (Ron Baalke)\nSubject: Magellan Update - 04/16/93\nOrganization: Jet Propulsion Laboratory\nLines: 25\nDistribution: world\nNNTP-Posting-Host: kelvin.jpl.nasa.gov\nKeywords: Magellan, JPL\nNews-Software: VAX/VMS VNEWS 1.41    \n\nForwarded from Doug Griffith, Magellan Project Manager\n\n                        MAGELLAN STATUS REPORT\n                            April 16, 1993\n\n1.  The Magellan mission at Venus continues normally, gathering gravity\ndata which provides measurement of density variations in the upper\nmantle which can be correlated to surface topography.  Spacecraft\nperformance is nominal.\n\n2.  Magellan has completed 7225 orbits of Venus and is now 39 days from\nthe end of Cycle-4 and the start of the Transition Experiment.\n\n3.  No significant activities are expected next week, as preparations\nfor aerobraking continue on schedule.\n\n4.  On Monday morning, April 19, the moon will occult Venus and\ninterrupt the tracking of Magellan for about 68 minutes.\n     ___    _____     ___\n    /_ /|  /____/ \\  /_ /|     Ron Baalke         | baalke@kelvin.jpl.nasa.gov\n    | | | |  __ \\ /| | | |     Jet Propulsion Lab |\n ___| | | | |__) |/  | | |__   M/S 525-3684 Telos | The aweto from New Zealand\n/___| | | |  ___/    | |/__ /| Pasadena, CA 91109 | is part caterpillar and\n|_____|/  |_|/       |_____|/                     | part vegetable.\n\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11234, "properties": {"category": "sci.crypt", "text": "From: dgr@ENG.Vitalink.COM (Daniel Robinson)\nSubject: Re: text of White House announcement and Q&As on clipper chip encryption\nNntp-Posting-Host: rodin.eng.vitalink.com\nOrganization: Vitalink Communications / Network Systems Corp., Fremont, CA\nDistribution: na\nLines: 20\n\nIn article <1993Apr19.130132.12650@afterlife.ncsc.mil> rlward1@afterlife.ncsc.mil (Robert Ward) writes:\n+In article <bontchev.734981805@fbihh> bontchev@fbihh.informatik.uni-hamburg.de writes:\n+>and since the US constitutions guarantees the right to every American\n+>to bear arms, why is not every American entitled, as a matter of\n+\n+Have you read the applicable part of the Constitution and interpreted it IN \n+CONTEXT?  If not, please do so before posting this misinterpretation again.\n+It refers to the right of the people to organize a militia, not for individuals \n+to carry handguns, grenades, and assault rifles.  \n\nHmmm, this could become a flame war very quickly.  The text is \"...well\nregulated militia...\"  When that amendment was written and approved,\n\"regulated\" meand \"armed\".  Remember all of those Westerns where bounty\nhunters were called \"regulators\"?  This is now an archaic usage of the\nword, but the original intent of the amendment was about weapons, not\ncontrol.\n\nMy $0.02.\n\nDan Robinson\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11235, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: edm@wrs.com (Ed McClanahan)\nSubject: Re: 1280x1024 on ATI Ultra w/ Nanao 550i\nNntp-Posting-Host: chaos\nOrganization: Wind River Systems, Inc.\nLines: 22\n\nmancus@sweetpea.jsc.nasa.gov (Keith Mancus) writes:\n\n> <reference to running ATI's Install Program and using\n>  its functions to position/size images at various\n>  resolutions>\n\nI thought this was a neat feature until I noticed that\nwhen an image is re-sized, the scanning frequency is\nnecessarily changed.  This causes digital multiscan\nmonitors like my MAG MX17F to get confused as to which\nmode to use if the frequency gets too far from the\nstandard selections.  For this reason, I use the\n\"factory defaults\" for position/size on the ATI card\nand adjust each mode individually (only the first time)\nat the monitor.  The MAG (and many other multiscan\nmonitors) has (have) the ability to recall these settings\nthe next time each mode is \"detected\".\n-- \n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n  Edward McClanahan                    edm@wrs.com\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11236, "properties": {"category": "rec.sport.hockey", "text": "From: \"Terence M. Rokop\" <tr2i+@andrew.cmu.edu>\nSubject: Re: NCAA finals...Winner????\nOrganization: Freshman, Physics, Carnegie Mellon, Pittsburgh, PA\nLines: 9\nNNTP-Posting-Host: andrew.cmu.edu\nIn-Reply-To: <1993Apr4.165655.16932@miavx1.acs.muohio.edu>\n\nktgeiss@miavx1.acs.muohi writes:\n\n>Lake State/Maine in finals...WHO WON?   Please post.\n\nMaine 5, LSSU 4.\n\n\n\n                                                Terry\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11237, "properties": {"category": "comp.graphics", "text": "From: myless@vaxc.cc.monash.edu.au (Myles Strous)\nSubject: J.C.Jensen's bitmap code\nOrganization: Computer Centre, Monash University, Australia\nLines: 18\n\nGreetings all.\n\tAccording to a FAQ I read, on 30 July 1992, Joshua C. Jensen posted an \narticle on bitmap manipulation (specifically, scaling and perspective) to the \nnewsgroup rec.games.programmer. (article 7716)\n\tThe article included source code in Turbo Pascal with inline assembly \nlanguage.\n\n\tI have been unable to find an archive for this newsgroup, or a current \nemail address for Joshua C. Jensen.\n\tIf anyone has the above details, or a copy of the code, could they \nplease let me know.\tMany thanks.\n\t\t\t\t\tYours gratefully, etc.  Myles.\n\n-- \nMyles Strous\t|\tEmail: myles.strous@lib.monash.edu.au\nraytracing fan\t|\tPhone: +61.51.226536\n\"Got the same urgent grasp of reality as a cardboard cut-out. Proud to have him \non the team.\" Archchancellor Mustrum Ridcully, in Reaper Man by Terry Pratchett\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11238, "properties": {"category": "misc.forsale", "text": "From: ma225121@umbc.edu (Jonas Schlein)\nSubject: Olivetti XT\nOrganization: University of Maryland, Baltimore County Campus\nLines: 8\nDistribution: world\nNNTP-Posting-Host: umbc8.umbc.edu\nX-Auth-User: ma225121\n\nI am selling an AT&T XT compatible. It comes with a green screen CGA monitor,\n360k 5.25\" Floppy Drive, and a 20 Megabyte Hard Drive.\n\nYou would think it was brand new from the condition it's in.\n\nAsking price is $150 + Shipping.\n\nReply via E-Mail if interested.\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11239, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: SIGMA Designs Video/Sound card\nFrom: srini@shannon.tisl.ukans.edu (Srini Seetharam)\nReply-To: srini@shannon.tisl.ukans.edu (Srini Seetharam)\nDistribution: world\nOrganization: Elec. & Comp. Eng., Univ. of Kansas\nNntp-Posting-Host: morse.tisl.ukans.edu\nOriginator: srini@morse\nLines: 10\n\n\nDoes anyone out there use a SIGMA designs VIDEO/SOUND card ?\nThe model is called WIN-STORM-PC  .\nThey also have one model the  Legend-24lx\n\nAny info on these like performance and compatibility,\nor even problems encountered will be appreciated.\n\nthanks\nsrini.w.seetharam\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11240, "properties": {"category": "sci.crypt", "text": "From: abaum@armltd.uucp (Allen Baum)\nSubject: Re: 80-bit keyseach machine\nOrganization: Advanced RISC Machines Ltd\nLines: 13\n\njebright@magnus.acs.ohio-state.edu (James R Ebright) writes:\n\n(regarding NSA monitoring of US military code traffic)\n\n>[BTW, folks, NSA wasn't being given the keys.  And the Walker spy case\n>shows for some of the systems, the KGB didn't need them either.]\n\nOn the contrary- The Walker spy case is one where the KGB was\ngiven keys (as I recall)\n-- \n\n----------------\nAllen J. Baum\t\tApple Computer\t\tbaum@apple.com, abaum@armltd.co.uk\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11241, "properties": {"category": "rec.motorcycles", "text": "From: howland@noc2.arc.nasa.gov (Curt Howland)\nSubject: Re: Drinking and Riding\nOrganization: NASA Science Internet Project Office\nLines: 27\n\nIn article <C4wKBp.B9w@eskimo.com>, maven@eskimo.com (Norman Hamer) writes:\n\n|>  What is a general rule of thumb for sobriety and cycling? Couple hours after\n|> you \"feel\" sober? What? Or should I just work with \"If I drink tonight, I\n|> don't ride until tomorrow\"?\n\nI'll put in a vote for the latter. A bike\ntakes a lot of involvement, and I for one\ndo not want any accident to be my fault.\n\nI remember one artical where the reviewer\ntried the radio on the bike, not having had\none on any of his. He stated that the bike\ntended to go faster when the music was \ngood. I agree, having felt like this my self,\nand this was not a physical imparement, like\ndrinking, just the emotional lift from music.\n\nFirst rule of ecology: There is never only one side-effect.\n\nRide Well-\n\n---\nCurt Howland \"Ace\"       DoD#0663       EFF#569\nhowland@nsipo.nasa.gov            '82 V45 Sabre\n     Meddle not in the afairs of Wizards,\n for it makes them soggy and hard to re-light.\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11242, "properties": {"category": "comp.windows.x", "text": "From: gvanvugh@cs.uct.ac.za (Gerhard van Vught)\nSubject: Problem with libararies (?)\nOrganization: Computer Science Department, University of Cape Town\nLines: 50\n\nI have been trying to compile some source code for a mpeg animation viewer for\nX Windows. I got the code from a ftp site. I have modified the Makefile as\nthey instructed, no errors there. What happens is that I get the following\nmessage when everything is going to be linked:\n\n\n\tcc  util.o video.o parseblock.o motionvector.o decoders.o  fs2.o fs2fast.o fs4.o hybrid.o hybriderr.o 2x2.o  gdith.o gray.o mono.o main.o jrevdct.o 24bit.o util32.o ordered.o  ordered2.o mb_ordered.o /lib/libX11.so /lib/libXext.so -lm -o mpeg_play\nUndefined\t\t\tfirst referenced\n symbol  \t\t\t    in file\ngetnetpath                          /lib/libX11.so\nt_alloc                             /lib/libX11.so\nt_unbind                            /lib/libX11.so\nt_open                              /lib/libX11.so\nt_rcvdis                            /lib/libX11.so\nnetdir_free                         /lib/libX11.so\nt_error                             /lib/libX11.so\nnetdir_getbyname                    /lib/libX11.so\ngetnetconfigent                     /lib/libX11.so\nt_look                              /lib/libX11.so\nt_errno                             /lib/libX11.so\nt_close                             /lib/libX11.so\nnetdir_getbyaddr                    /lib/libX11.so\nt_listen                            /lib/libX11.so\nt_rcv                               /lib/libX11.so\nsetnetpath                          /lib/libX11.so\nt_bind                              /lib/libX11.so\nt_connect                           /lib/libX11.so\nt_accept                            /lib/libX11.so\nnc_perror                           /lib/libX11.so\ninet_addr                           /lib/libX11.so\nld: mpeg_play: fatal error: Symbol referencing errors. No output written to mpeg_play\n*** Error code 1 (bu21)\n\nmake: fatal error.\n\nDoes anyone know where these missing functions are located? If you do can you\nhelp me with it?\n\nI posted before to one of the other Unix groups, I tried their suggestions but\nalways get this error.\n\nIf you have to know: I am using Unix system V. The machines here are 486's. The\nterminals I want to use are separate and just called X-terminals and they seem\ndedicated to that. I'm not sure as to what they really are, since it is one of\nmy first times out with this X-windows gidget! That is, first time programming\nfor it, so to speak. I use them alot just for the graphics things.\n\nIf you can help, mail me soon.\n\nGerard.\n", "label": 5.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11243, "properties": {"category": "sci.crypt", "text": "From: warlord@MIT.EDU (Derek Atkins)\nSubject: Re: The Old Key Registration Idea...\nOrganization: Massachusetts Institute of Technology\nLines: 40\nNNTP-Posting-Host: hodge.mit.edu\nIn-reply-to: pcw@access.digex.com's message of 16 Apr 1993 15:31:24 -0400\n\n-----BEGIN PGP SIGNED MESSAGE-----\n\nIn article <1qn1ic$hp6@access.digex.net> pcw@access.digex.com (Peter Wayner) writes:\n\n   2) The system is vulnerable to simple phone swapping attacks\n   like this. Criminals will quickly figure this out and go to\n   town.\n\nDepends..  Its possible that the phone sends its serial number in the\nclear at some specified interval... So all a listener needs to do is\nget that SN, and then get the key for it...  So swapping phones isn't\na problem (for the gov't, that is).  They still know that this line\nbelongs to you, so they just watch the line and see the SN, and then\nthey get the key for that SN...\n\n   In either case, I think we need to look at this a bit deeper.\"'jbl)mW:wxlD2\n\nWell, I think this is understood.  The major problem is that a lot of\npeople just don't trust this key escrow stuff, and the fact that the\nalgorithms are classified...  So, yes, a lot of this needs to be looked\nat closer!\n\n- -derek\n\nPGP 2 key available upon request on the key-server:\n\tpgp-public-keys@toxicwaste.mit.edu\n\n-----BEGIN PGP SIGNATURE-----\nVersion: 2.2\n\niQBuAgUBK9EbXDh0K1zBsGrxAQHzcALCAlvWtnvi7aySWf565id1MN++nsybTwQI\njQLgPKX/4tx6qjGC69BUQRZAtMQutkoVnvx/MqT5EZFM7uundRWD4cOwbb7CC4Gy\ngT7JtLRqU0aF9VSf4SGNQqg=\n=fGRj\n-----END PGP SIGNATURE-----\n--\n  Derek Atkins, MIT '93, Electrical Engineering and Computer Science\n     Secretary, MIT Student Information Processing Board (SIPB)\n           MIT Media Laboratory, Speech Research Group\n           warlord@MIT.EDU       PP-ASEL        N1NWH\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11244, "properties": {"category": "comp.sys.mac.hardware", "text": "From: sloubtin@dsg.cs.tcd.ie (Sylvain Louboutin)\nSubject: FPU in an SE (probably a dumb question...)\nOrganization: DSG, Dept. of Computer Science, Trinity College Dublin\nLines: 11\n\nis it possible to fit an FPU in a mac SE?  (not a SE/30, but the plain\nold SE);  if possible,  would I get any speed increase?  what would be\nthe reference of the chip?\n\nthanks in advance,\n\n\n-- \n%%Sylvain R.Y. Louboutin, phone:(+353-1)7021539, e-mail:sloubtin@dsg.cs.tcd.ie\n%%Distributed System Group, O'Reilly Institute, room F.35, fax:(+353-1)6772204\n%%Department of Computer Science, Trinity College, Dublin 2, -Ireland-  ASK-18\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11245, "properties": {"category": "sci.med", "text": "From: lehr@austin.ibm.com (Ted Lehr)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOriginator: lehr@jan.austin.ibm.com\nDistribution: inet\nOrganization: IBM Austin\nLines: 47\n\n\nGary Merrill writes:\n> .. Not every wild flight of fancy serves\n> (or can serve) in the appropriate relation to a hypothesis.  It is\n> somewhat interesting that when anyone is challanged to provide an\n> example of this sort the *only* one they come up with is the one about\n> Kekule.  Surely, there must be others.  But apparently this is regarded\n> as an *extreme* example of a \"non-rational\" process in science whereby\n> a successful hypothesis was proposed.  But how non-rational is it?\n\nIndeed, an extreme example.  It came \"out of nowhere.\"  The connection\nKekule saw between it and his problem is fortunate but not extraordinary.\nI, for example, often receive/conjure solutions (hypotheses for solutions) \nto my everyday problems at moments when I appear to myself to be occupied \nwith activities quite removed.  Algorithms for that new software feature come\nwhen I trample the meadow on my occasional runs.  Alternative (better>) ways \nto instruct and rear my sons arrive while I weed the garden.  I'll swear I am \nnot thinking about any of it when ideas come.   \n\nThese ideas are not the stuff of \"great\" discoveries, of course, but my\nconnecting them to particular problems is fraught with deliberation and\noccasional fits of rationality.\n\n> Surely it wasn't the *only* daydream [Kekule] had.  What was special about\n> *this* one?  Could it have had something to do with a perceived\n> *analogy* between the geometry of the snakes and problems concerning\n> geometry of molecules?  \n\nYes.  And he was lucky to have such a colorful, vivid image.  I, alas, will\nnever figure out why returning worms to the loose soil of my garden brought, \n\"have him count objects instead of merely count\" to mind regarding my 2 \nyear-old's fledging arithmetic skills.\n\n> ... Upon close examination,\n> is there a non-rational mystical leap taking place, or is it perhaps\n> closer to a formal (though often incomplete) analogy or model?\n\nThe latter.  Worms wiggling around in the dirt fascinate my son.\n\nRegards,\n\nTed \n-- \nTed Lehr                             | \"...my thoughts, opinions and questions...\"\nFuture Systems Technology Group, AWS |   \nIBM \t\t\t\t     | Internet: lehr@futserv.austin.ibm.com\nAustin, TX  78758\t\t     |   \n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11246, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ulf@kirsch.c3consult.comm.se (Ulf Lagerstedt)\nSubject: A+ mouse\nOrganization: Communicator C3Consult AB\nDistribution: comp\nLines: 12\n\n\nIn the bottom drawer I just found an old A+ mouse with a DB-9 (9-pin) plug.\nI assume that it belonged to a deceased Plus or something. \n\nCould any simple modification turn it into a proper ADB mouse?\n\nReply by mail, preferably.\n\nThanks!\n\n--\nUlf Lagerstedt, Communicator C3Consult, Sweden  /  ulf@c3consult.comm.se\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11247, "properties": {"category": "comp.sys.mac.hardware", "text": "From: rcs8@po.CWRU.Edu (Robert C. Sprecher)\nSubject: Help with SIMM configuration\nOrganization: Case Western Reserve University, Cleveland, Ohio (USA)\nLines: 22\nNNTP-Posting-Host: thor.ins.cwru.edu\n\n\nCan someone please help me understand the current situation\nregarding SIMMS?\n\nI have a IIsi which I will probably keep for another 2 years.\n\nI would like to add more memory, ie go from 5 MB to 17 MB.\n\nI know that I will need 4 x 4MB, 80ns or faster SIMMS.\n\nWhich SIMMS, 30 pin or 72 pin?\nWould the SIMMS I get today be usable in 2 years with a \nnewer, more powerful system?\n\nAny insight would be appreciated.\n\nThanks.\n\nRob\n-- \nRob Sprecher\nrcs8@po.cwru.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11248, "properties": {"category": "sci.med", "text": "From: euclid@mrcnext.cso.uiuc.edu (Euclid K.)\nSubject: Re: GETTING AIDS FROM ACUPUNCTURE NEEDLES\nArticle-I.D.: news.C5wGEs.K6u\nOrganization: University of Illinois at Urbana\nLines: 19\n\nmatthews@Oswego.EDU (Harry Matthews) writes:\n\n>I had electrical pulse nerve testing done a while back.  The needles were taken\n>from a dirty drawer in an instrument cart and were most certainly NOT\n>sterile or even clean for that matter.  More than likely they were fresh\n>from the previous patient.  I WAS concerned, but I kept my mouth shut.  I\n>probably should have raised hell!\n\tCould you describe in more detail the above procedure?  I've never\nheard about it.\n\tAnd yes, if they pierced you with the needles you probably should have\nprotested. \n\neuclid\n \n--\nEuclid K.       standard disclaimers apply\n\"It is a bit ironic that we need the wave model [of light] to understand the\npropagation of light only through that part of the system where it leaves no\ntrace.\"  --Hudson & Nelson (_University_Physics_)\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11249, "properties": {"category": "sci.space", "text": "From: henry@zoo.toronto.edu (Henry Spencer)\nSubject: Re: Why not give $1 billion to first year-lo\nOrganization: U of Toronto Zoology\nLines: 16\n\nIn article <C5szvL.I48@oakhill.sps.mot.com> dong@oakhill.sps.mot.com writes:\n>>I'd be inclined to make the prize somewhat larger, but $1G might be enough.\n>\n>this all sounds like that Indecent Proposal movie.  wouldn't there be\n>a lot of people that would try this with little hope of working just\n>to get the dough?  if you have a 1:100 chance and it costs you $10Mil,\n>then you might pay some stooge a few grand to be your lucky hero.\n>just send up a few dozen and 1 is bound to survive enough to make YOU\n>rich.\n\nAny prize like this is going to need to be worded carefully enough that\nyou cannot get it without demonstrating sustained and reliable capability,\nrather than a lucky one-shot.  It can be done.\n-- \nAll work is one man's work.             | Henry Spencer @ U of Toronto Zoology\n                    - Kipling           |  henry@zoo.toronto.edu  utzoo!henry\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11250, "properties": {"category": "talk.politics.guns", "text": "From: greg@puck.webo.dg.com ()\nSubject: Re: RKBA on NYC radio station\nReply-To: greg@puck.webo.dg.com\nOrganization: NSDD-X.500, Data General Corp.\nLines: 31\n\n|> Actually, the real reason that Stern was getting a bigger rating share was that\n|> he was new in D.C., not because of the quality (if you can call it that) of \n|> his show. After the Fine was issued he started to get better ratings because \n|> of the curious individuals who wanted to see how bad he actually was. Since\n|> he came to D.C. he has had a greater turn over of listeners than the \"Grease\"\n|> has. In other words, more people get sick of him sooner than they do of the\n|> \"Grease\". After all, saying vagina or penis on the air is hilarious at first, \n|> the second time it is still a little funny, but when you do it all the time, \n|> and at the same time, think you are the greatest man on the planet (and tell\n|> everyone so) than you are going to get old really quick. \n|> Give it up Mark you are WRONG.\n|> \nExcuse me, but if you really new what the show was about, you'd know that he\ndoesn't just say vagina and penis and that is how he get's his ratings. He\nalso addresss real issues as well as being outrageous. I don't hear any of these\nother idiots doing a funny show and getting into some serious topics at the\nsame time, he get's people to think and entertains them at the same time, \nso try listening to his show a little closer before you tell them that they are\nWRONG, and by the way, if he is such a flash in the pan, why do his ratings sustain\nso well? Hmm?\n\n\n\n\n-- \n-----------------------------------------------\nGreg W. Lazar             greg@puck.webo.dg.com\n\nJ-E-T-S JETS JETS JETS\n-----------------------------------------------\n\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11251, "properties": {"category": "sci.crypt", "text": "From: skt@dcs.glasgow.ac.uk (Simon K Train)\nSubject: Help me please!\nOrganization: Glasgow University Computing Science Dept.\nDistribution: net\nLines: 7\n\nI am a PhD student.\nCan I get the sci.crypt group posted directly to me???\nAlso I would like some feed-back on the encryption schemes that my research in\nfinite fields can be applied to. Any takers\nReply to gamv25@udcf.gla.ac.uk\nThanks yours\nGavin.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11252, "properties": {"category": "sci.crypt", "text": "From: ji@cs.columbia.edu (John Ioannidis)\nSubject: Re: Source of random bits on a Unix workstation\nOrganization: Columbia University Department of Computer Science\nLines: 32\n\nIn article <899@pivot.sbi.com> bet@sbi.com (Bennett Todd @ Salomon Brothers Inc., NY ) writes:\n>\n>I heard about this solution, and it sounded good. Then I heard that folks\n>were experiencing times of 30-60 seconds to run this, on\n>reasonably-configured workstations. I'm not willing to add that much delay\n>to someone's login process. My approach (etherfind|compress, skip 10K) takes\n>a second or two to run. I'm considering writing the be-all and end-all of\n>solutions, that launches the MD5, and simultaneously tries to suck bits off\n>the net, and if the net should be sitting __SO__ idle that it can't get 10K\n>after compression before MD5 finishes, use the MD5. This way I could have\n>guaranteed good bits, and a deterministic upper bound on login time, and\n>still have the common case of login take only a couple of extra seconds.\n>\n\n53 seconds to hash 20M of core (I bet I know who the source of your\ninformation is!). No, it's not acceptable if it's part of your login\nprocess. But if you are going to use network traffic as the source of\npseudo-random information, do the right thing and pass it through a\ncryptographic hash function, not a compressor. Aside from the fact\nthat it will run faster, it will give better results (think of a\ncryptographic hash as a function that \"distills\" randomness).\nSomething along the lines of \n\tetherfind -t -x -n  | dd bs=1k count=10 2>/dev/null | md5\nshould do the trick. -t gives you timestamps, and the lack of -u makes\nsure that dd does not get ten lines as opposed to ten K. The above\ntakes a couple of seconds on a lightly-loaded ethernet.\n\n>-Bennett\n>bet@sbi.com\n\n/ji\n\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11253, "properties": {"category": "sci.crypt", "text": "From: matt@wardsgi.med.yale.edu (Matt Healy)\nSubject: Re: Illegal Wiretaps (was\nNntp-Posting-Host: wardibm2.med.yale.edu\nOrganization: Yale U. - Genetics\nLines: 33\n\nIn article <3702.204.uupcb@ssr.com>, dick.zeitlin%acc1bbs@ssr.com (Dick\nZeitlin) wrote:\n> \n> PK> .Perhaps we need the telephony equivalent of an anonymous remailer for\n>   > .the telephone network? Back in Prohibition days (alcohol, that is) I\n>   > .understand a device called the \"cheesebox\" was a popular means to thwart\n>   > .the tracing of telephone calls. It connected two phone lines in the back\n>   > .room of an otherwise uninvolved business. It was the conceptual predecesso\n>   > .of today's anonymous email remailer.\n> \n> The old \"cheesebox\" was the pre-Carterphone version of the \"call\n> diverter.\"  After the Carterphone decision there were several vendors\n> that sold call diverters.  I've got a couple in my basement that\n> were used to redirect my office phone to my home number when I\n> didn't feel like going into the office.\n> \n> It'd be quite easy to generate an \"anonymous redialer\" version of the\n> call diverter.\n> \n\nAbout 18 months ago, I heard a report on NPR about a 900-number\n\"1-900-STO-PPER\" or some such, for placing untraceable calls.\nYou call them, and on \"bong\" tone dial the number you want to\ncall; they told the NPR interviewer that nothing short of a\ncourt order (which they'd fight) would make them release their\nrecords.                                                                   \n                                            \n\nMatt Healy\n\"I pretend to be a network administrator;\n the lab net pretends to work\"\n\nmatt@wardsgi.med.yale.edu\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11254, "properties": {"category": "rec.sport.baseball", "text": "From: gajarsky@pilot.njin.net (Bob Gajarsky - Hobokenite)\nSubject: Re: My Belated Predictions (NL)\nArticle-I.D.: pilot.Apr.6.00.29.46.1993.26280\nOrganization: Somewhere in Hoboken\nLines: 13\n\nbriefly, since i'm off to sleep.\n\nmle's work pretty well for AA nd AAA players.\n\nplayers who are 22 and younger will tend to have explosions\n in their numbers, whether mMLE's or not, in the next 2 years...\n\nplayers who are 26 and OLDER, at those levels, generally have\n inflated MLE's.\n\nthey're about as reliable as having major league stats for a player.\n \n - bob gaj\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.531+0000", "event": "documents", "entityId": 11255, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: montuno@physics.su.OZ.AU (Lino Montuno)\nSubject: CPU Temperature vs CPU Activity ?\nNntp-Posting-Host: physics.su.oz.au\nOrganization: School of Physics, University of Sydney, Australia\nLines: 8\n\nThis may be a very naive question but is there any basis for the\nclaim that a CPU will get hotter when a computationally intensive \njob is running? My friend claims that there will be little difference\nin the temperature of an idle CPU and a CPU running a computationally\nintensive job.\n\n\nLino Montuno\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11256, "properties": {"category": "rec.sport.hockey", "text": "From: umturne4@ccu.umanitoba.ca (Daryl Turner)\nSubject: Re: Pens Info needed\nNntp-Posting-Host: ccu.umanitoba.ca\nOrganization: University of Manitoba, Winnipeg, Manitoba, Canada\nLines: 19\n\nIn article <1993Apr15.140541.28465@ericsson.se> etxonss@ufsa.ericsson.se (Staffan Axelsson) writes:\n>\n> Actually, Swedish coach Curt Lundmark is thinking about leaving two\n> spots open for additions from eliminated NHLers. It is Mats Sundin and\n> Calle Johansson that Curt hopes can join the team, although in a late\n> stage of the tournament. Technically, I seem to recall that you can leave\n> spots open until 24 hrs before the WC final.\n>\nHmmm...I also heard through the grapevine that Team Finland might try and\nleave a spot open for at least one NHLer. (Some guy named Sel{nne, ever\nhear of him? :)  They might have to be content with Kurri, though, I hope. :)\n\n\nDaryl Turner : r.s.h contact for the Winnipeg Jets \nInternet: umturne4@ccu.umanitoba.ca  \nFidoNET: 1:348/701 -or- 1:348/4  (please route through 348/700)\nTkachuk over to Zhamnov, up to Sel{nne, he shoots, he scores! \nThe Jets win the Cup!  The Jets win the Cup!\nEssensa for Vezina!  Housley for Norris!  Sel{nne for Calder!\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11257, "properties": {"category": "rec.autos", "text": "From: tedebear@leland.Stanford.EDU (Theodore Chen)\nSubject: Re: SHO and SC\nOrganization: DSG, Stanford University, CA 94305, USA\nLines: 16\n\nIn article <C5L8rE.28@constellation.ecn.uoknor.edu> callison@uokmax.ecn.uoknor.edu (James P. Callison) writes:\n>Why anyone would order an SHO with an automatic transmission is\n>beyond me; if you can't handle a stick, you should stick with a\n>regular Taurus and leave the SHO to real drivers. That is not to\n>say that there aren't real drivers who can't use the stick (eg\n>disabled persons), but they aren't in any position to use an\n>SHO anyway. \n\nactually, disabled persons have been known to drive in SCCA\nraces.  i'd be careful about making sweeping generalizations here.\n\ni'd prefer a manual transmission, but the early SHO had an\nawful transmission that felt like it came out of a truck or something.\nit was almost enough to make me want an automatic.\n\n-teddy\n", "label": 7.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11258, "properties": {"category": "rec.sport.baseball", "text": "From: amj@rsf.atd.ucar.edu (Anthony Michael Jivoin)\nSubject: Re: Bosox win again! (the team record is 9-3)\nOrganization: National Center for Atmospheric Research\nLines: 31\n\nIn article <jxu.735168686@black.clarku.edu>, jxu@black.clarku.edu (Dark Wing Duck!!) writes:\n|> Today, Frank Viola and rest of pitcher staff of Boston Red Sox shutout Chicago\n|> White Sox 4-0.  It is Red Sox 9th win of this season.\n|> \n|> So far, Red Sox won all the games Roger and Frank V. pitched (6-0) and 3-3\n|> when other three starters were pitching.  Tomorrow, Dopson will pitch again\n|> (have a good first start and rocky second start).  I wonder that Bosox can\n|> play over 500 ball without Roger and Frank V.\n|> \n\nAs long as the Yankees are in the same division the Red Sox will\nplay better than .500 baseball.\n\nOr the Red Sox can hire former East German swimming coaches to\n\"train\" them at the fine art of body \"building\". The Red Sox\ncan use Chinese women swimmers as a reference.\n\nWith the \"HAWK\", the Red Sox definitely have a chance for the\neast this year. He brings class, work ethic and leadership to\nthe park each day. And he has a burning desire to play in the\nWorld Series.\n\nFuture Hall-of-Famer, Andre Dawson will kick butt in Boston!\n\nfrom Rockies country,\n\nAnthony M. Jivoin\nNational Center for Atmospheric Research\nRSF/ATD - FL1\nP.O. Box 3000\nBoulder, CO 80307\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11259, "properties": {"category": "sci.med", "text": "Organization: University of Illinois at Chicago, academic Computer Center\nFrom: <U19250@uicvm.uic.edu>\nSubject: Re: Foreskin Troubles\nLines: 3\n\nThis is generally called phimosis..usually it is due to an inflammation, and ca\nn be retracted in the physician's offfice rather eaaasily.  One should see a GP\n, or in complicated cases, a urologist.\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11260, "properties": {"category": "misc.forsale", "text": "From: tran@f18sunn.nwc.navy.mil (Tri Tran)\nSubject: Info on Ultrastor HD controller wanted\nOrganization: NAWC\nLines: 9\n\n\nHi netters,\n\nDoes anyone know have any info on the Ultrastor line of controller?\nI'm especially interested in the 14F and 34F SCSI controllers.\nPlease email any info ASAP.  I'm building a system and that's one\nof the few conponents that is missing.  Thanks.\n\nTri\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11261, "properties": {"category": "rec.sport.baseball", "text": "From: C558172@mizzou1.missouri.edu\nSubject: Re: And America's Team is....But Why?\nOrganization: University of Missouri\nX-Posted-From: mizzou1.missouri.edu\nNNTP-Posting-Host: sol.ctr.columbia.edu\nLines: 23\n\nIn article <kingoz.735066879@camelot>\nkingoz@camelot.bradley.edu (Orin Roth) writes:\n \n>\n>   Well, officially it's the Braves. At least up until they started winning\n>   it was. Are they still, officially?\n>   If so, why? and how did they receive this label?\n>\n>   Unoffically, but without a doubt, America's Team is the Cubs. Why?\n>   Orin.\n>   Bradley U>\n>\n>\n>\n>--\n>I'm really a jester in disguise!\n \nSorry, but I saw a survey somewhere that showed that America's favorite\nteam is the Damn Yankees. So much for the underdogs being loved.\n \nObBaseball Trivia: Cardinals have taken 3 out of 5 series from the Yanks\n  but have a losing record against them (Spring training games not counted)\n--Shannon\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11262, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: Windows for WorkGroups and LAN Workplace\nFrom: Flint.Waters@uwyo.edu (Flint Waters)\nDistribution: comp.os.ms-windows.apps,comp.os.ms-windows.misc,comp.os.ms-,world\nOrganization: University of Wyoming\nNntp-Posting-Host: sheriff.uwyo.edu\nLines: 13\n\n\n>Now does anyone know if it is possible to use W4WG and Lan Workplace\n>for DOS at the same time. \n\n>ie Can I access a file on another PC while being logged on to the\n>mainframe at the same time, simultaneously.\n\nYup.  We're using both and they work just fine.  Hopefully, someday WFWG\nwill communicate over LWP TCPIP.  Right now we have to load NetBeui.\n\nI use ODI with ODINSUP and all works well.\n\n\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11263, "properties": {"category": "rec.motorcycles", "text": "From: npet@bnr.ca (Nick Pettefar)\nSubject: Re: For JOHS@dhhalden.no (3) - Last\nNntp-Posting-Host: bmdhh299\nOrganization: BNR Europe Ltd, Maidenhead, UK\nX-Newsreader: TIN [version 1.1 PL8]\nLines: 33\n\n: un021432@wvnvms.wvnet.edu writes:\n\n: >DUCATI3.UUE\n: >QUUNCD Ver. 1.4, by Theodore A. Kaldis.\n: >BEGIN--cut here--CUT HERE--Part 3\n: >MG@NH)C1M+AV4)I;^**3NYR7,*(.H&\"3V'!X12(&E+AFKIN0@APYT;C[#LI2T\n\nThis GIF was GREAT!!  I have it as the backdrop on my Apollo thingy and many\npeople stop by and admire it.  Of course I tell them that I did it myself....\n\nIt's far too much trouble to contact archive sites to get stuff like this, so\nif anybody else has any good GIFs, please, please don't hesitate to post them.\n\nIs the bra thing still going?\n--\n\nNick (the Idiot Biker)   DoD 1069   Concise Oxford   No Bras\n\nM'Lud.\n\n  ___\t___   ___   ___\n {\"_\"} {\"_\"} {\"_\"} {\"_\"}\t  Nick Pettefar, Contractor@Large.\n  ' `\t` '   ' `   ` '\t\t  Currently incarcerated at BNR,\n  ___\t___   ___   ___\t\t  Maidenhead, The United Kingdom.\n |\"_\"| |\"_\"| |\"_\"| |\"_\"|\t  npet@bnr.ca  '86 BMW K100RS \"Kay\"\n  ` '\t' `   ` '   ' `\t\t  Pres. PBWASOH(UK),  BS 0002\n\t    .\n   _ _\t\t_  __ .\n  / ~ ~~\\   |  / ~~  \\\n |_______|    [_______|\n\t   _:_\n\t  |___|\n\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11264, "properties": {"category": "comp.graphics", "text": "From: tiang@midway.ecn.uoknor.edu (Tiang)\nSubject: VESA standard VGA/SVGA programming???\nNntp-Posting-Host: midway.ecn.uoknor.edu\nOrganization: Engineering Computer Network, University of Oklahoma, Norman, OK, USA\nKeywords: vga\nLines: 34\n\nHi,\n\n\tI have a few question about graphics programming in VGA/SVGA :\n\n1. How VESA standard works?  Any documentation for VESA standard?\n\n2. At a higher resolution than 320x200x256 or 640x480x16 VGA mode,\n   where the video memory A0000-AFFFF is no longer sufficient to hold\n   all info, what is the trick to do fast image manipulation?  I\n   heard about memory mapping or video memory bank switching but know\n   nothing on how it is implemented.   Any advice, anyone?  \n\n3. My interest is in 640x480x256 mode.  Should this mode be called\n   SVGA mode?  What is the technique for fast image scrolling for the\n   above mode?  How to deal with different SVGA cards?\n\n\n  Your guidance to books or any other sources to the above questions\nwould be greatly appreciated.  Please send me mail.\n\n\n  Thanks in advance!\n\n\n\n************************************************************************\n*                         Tiang   T.    Foo                            *\n*\t\t      tiang@uokmax.ecn.uoknor.edu \t\t       *\n************************************************************************    \n-- \n************************************************************************\n*                         Tiang   T.    Foo                            *\n*\t\t      tiang@uokmax.ecn.uoknor.edu \t\t       *\n************************************************************************    \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11265, "properties": {"category": "misc.forsale", "text": "From: pchang@ic.sunysb.edu (Pong Chang)\nSubject: FOR SALE: C-128 system w/Printer : $130 OBO\nNntp-Posting-Host: libws4.ic.sunysb.edu\nOrganization: State University of New York at Stony Brook\nLines: 20\n\n=========================\ncommodore 128\nepson homewriter 10  9 pin printer\n1571 d/s disk drive\n2 joysticks\n1 mouse\nlotsa software, both games and apps.\nrapid fire joystick adapter\n==========================\nabout a year old\n\n$130 OBO\n\n-- \n**********************************************************************\nC_ommon  \tpchang@ic.sunysb.edu \t\t\nS_ense\t\tState University of New York @ Stony Brook \nE_ngineer\t\n**********************************************************************\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11266, "properties": {"category": "sci.electronics", "text": "From: cgordon@vpnet.chi.il.us (gordon hlavenka)\nSubject: Re: making copy of a Video tape\nKeywords: video\nOrganization: Vpnet Public Access\nLines: 19\n\n>There are devices you can buy and/or make.  Look in Radio & Popular \n>Electronics mags for the devices.  If all else fails, you can build one \n>using the curcuit design from the Dec. '87 issue of Radio Electronics.\n\nMy very favorite ad for such a device is on the back of the latest\nDamark catalog.  Quoting from memory:\n\n[Big flashy type]\n\"Dual deck VCR copies any tape -- Even those that are copy protected!*\"\n\n(And underneath the ad in very small print: *This device is not intended\nfor making illegal copies of copyrighted material.)\n\n:-)\n\n-- \n----------------------------------------------------\nGordon S. Hlavenka           cgordon@vpnet.chi.il.us\nVote straight ticket Procrastination party Dec. 3rd!\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11267, "properties": {"category": "talk.religion.misc", "text": "From: bobsarv@microsoft.com (Bob Sarver)\nSubject: Re: JUDAS, CRUCIFIXION, TYRE, Etc...\nOrganization: Microsoft Corp.\nDistribution: usa\nLines: 16\n\n\n(Frank DeCenso)\n> But how? It's evident from the texts in Ezek 26-28 that God isn't concerned\n> about buildings or structures - God is concerned about people.  The people and\n> leadership (Ezek 28) never did return as a city.  Others may have come later\n> and built a city, but the people and leadership that God prophesied about in\n> Ezek 26-28 were never rebuilt as a city of people and leaders. \n\n\nHow incredibly fucking stupid.  Of *course* the text is referring to the city\nitself (buildings, bricks, mortar, etc.)  Otherwise it makes no sense to\nrefer to the future of Tyre as being reduced to nothing but a _place_ to spread \nfishing nets.\n\nIs there any twisting of text or semantic game that you *won't* do to preserve \nyour faith from admission of error, DeCenso?\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11268, "properties": {"category": "talk.religion.misc", "text": "From: mls@panix.com (Michael Siemon)\nSubject: Re: Catholic Right & Pat Robertson\nOrganization: PANIX Public Access Unix, NYC\nLines: 18\n\nIn <93105.093812KEVXU@CUNYVM.BITNET> <KEVXU@CUNYVM.BITNET> writes:\n\n>Rocco L. Martino, a Philadelphia business\n>executive wrote: \"Separation of church and state is a false premise\n>that must finally be cast aside and replaced by the true meaning of\n>our constitution.\"\n\nblechhhh.  Gimme that ole' time Inquisition ...\n\n>Oh yes, the organization's \"national ecclesisatical advisor\" is\n>Catholic politician Cardinal John J. O'Connor of New York.\n\nIt figures, doesn't it?\n-- \nMichael L. Siemon\t\tWe must know the truth, and we must\nmls@ulysses.att.com\t\tlove the truth we know, and we must\n     - or -\t\t\tact according to the measure of our love.\nmls@panix.com\t\t  \t\t\t\t-- Thomas Merton\n", "label": 19.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11269, "properties": {"category": "comp.sys.mac.hardware", "text": "From: ebodin@pearl.tufts.edu\nSubject: Screen Death: Mac Plus/512\nLines: 22\nOrganization: Tufts University - Medford, MA\n\nI have a (very old) Mac 512k and a Mac Plus, both of which \nhave the same problem.\n\nTheir screens blank out, sometimes after a minor physical jolt\n(such as inserting a floppy in the internal drive), sometimes \nall by themselves (computer left to itself just goes blank).\n\nI have replaced the wires connecting the logic boards and the \nvideo board, because it seemed at first that jiggling the wires\nmade the screen come back on.  This worked for a while, but the\nblanking out has returned.\n\nCan I do anything?  Do I need a new power supply?  A new CRT?\nA new computer?\n\nThanks for any advice...\n\n--------------------------\nEthan Bodin\nTufts University\nebodin@pearl.tufts.edu\n--------------------------\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11270, "properties": {"category": "sci.med", "text": "From: sasghm@theseus.unx.sas.com (Gary Merrill)\nSubject: Re: Science and methodology (was: Homeopathy ... tradition?)\nOriginator: sasghm@theseus.unx.sas.com\nNntp-Posting-Host: theseus.unx.sas.com\nOrganization: SAS Institute Inc.\nLines: 45\n\n\nIn article <1993Apr16.210916.6958@cs.rochester.edu>, fulk@cs.rochester.edu (Mark Fulk) writes:\n\n|> I'm not familiar with the history of this experiment, although, arguably,\n|> I should be.\n\nFor a brief, but pretty detailed account, try Hempel's _Philosophy of\nNatural Science_.\n\n|> I think that it is enough if his contemporaries found the result surprising.\n|> That's not what I'd quibble about.  What I'd like to know are Toricelli's\n|> reasons for doing his experiment; not the post hoc _constructed_ reasons,\n|> but the thoughts in his head as he considered the problem.  It may be\n\nThis smacks a bit of ideology -- the supposition being that Toricelli's\nsubsequent descriptions of his reasoning are not veridical.  It gets dangerously\nclose to an unfalsifiable view of the history and methodology of science if\nwe deny that no subsequent reports of experimenters are reliable descriptions\nof their \"real\" reasons.\n\n|> impossible to know much about Toricelli's thoughts; that's too bad if\n|> it is so.  One of Root-Bernstein's services to science is that he has gone\n|> rooting about in Pasteur's and Fleming's (and other people's) notes, and has\n|> discovered some surprising clues about their motivations.  Pasteur never\n|> publicly admitted his plan to create mirror-image life, but the dreams are\n|> right there in his notebooks (finally public after many years), ready for\n|> anyone to read.  And I and my friends often have the most ridiculous\n|> reasons for pursuing results; one of my best came because I was mad at\n|> a colleague for a poorly-written claim (I disproved the claim).\n|> \n|> Of course, Toricelli's case may be an example of a rarety: where the\n|> fantasy not only motivates the experiment, but turns out to be right\n|> in the end.\n\nBut my point is that this type of case is *not* a rarity.  In fact, I was\ngoing to point to Pasteur as yet another rather common example -- particularly\nthe studies on spontaneous generation and fermentation.  I will readily\nconcede that \"ridiculous reasons\" can play an important role in how\nscientists spend their time.  But one should not confuse motivation with\nmethodology nor suppose that ridiculous reasons provide the impetus in the\nmajority of cases based on relatively infrequent anecdotal evidence.\n-- \nGary H. Merrill  [Principal Systems Developer, C Compiler Development]\nSAS Institute Inc. / SAS Campus Dr. / Cary, NC  27513 / (919) 677-8000\nsasghm@theseus.unx.sas.com ... !mcnc!sas!sasghm\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.532+0000", "event": "documents", "entityId": 11271, "properties": {"category": "comp.graphics", "text": "From: andreasa@dhhalden.no (ANDREAS ARFF)\nSubject: Re: Newsgroup Split\nLines: 41\nNntp-Posting-Host: pc137\nOrganization: Ostfold College\n\nIn article <NERONE.93Apr20085951@sylvester.cc.utexas.edu> nerone@ccwf.cc.utexas.edu (Michael Nerone) writes:\n>From: nerone@ccwf.cc.utexas.edu (Michael Nerone)\n>Subject: Re: Newsgroup Split\n>Date: 20 Apr 93 08:59:51\n>In article <1quvdoINN3e7@srvr1.engin.umich.edu>, tdawson@engin.umich.edu (Chris Herringshaw) writes:\n>\n>  CH> Concerning the proposed newsgroup split, I personally am not in\n>  CH> favor of doing this.  I learn an awful lot about all aspects of\n>  CH> graphics by reading this group, from code to hardware to\n>  CH> algorithms.  I just think making 5 different groups out of this\n>  CH> is a wate, and will only result in a few posts a week per group.\n>  CH> I kind of like the convenience of having one big forum for\n>  CH> discussing all aspects of graphics.  Anyone else feel this way?\n>  CH> Just curious.\n>\n>I must agree.  There is a dizzying number of c.s.amiga.* newsgroups\n>already.  In addition, there are very few issues which fall cleanly\n>into one of these categories.\n>\n>Also, it is readily observable that the current spectrum of amiga\n>groups is already plagued with mega-crossposting; thus the group-split\n>would not, in all likelihood, bring about a more structured\n>environment.\n>\n>--\n>   /~~~~~~~~~~~~~~~~~~~\\/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\\n>  /    Michael Nerone   \\\"I shall do so with my customary lack of tact; and\\\n> /   Internet Address:   \\since you have asked for this, you will be obliged\\\n>/nerone@ccwf.cc.utexas.edu\\to pardon it.\"-Sagredo, fictional char of Galileo.\\\n\n\nMaybe I should point out that we are not talking about c.s.amiga.*.\nOnly comp.graphics.\n\nArff\n\"Also for the not religous confessor, there is a mystery of higher values,\nwho's birth mankind - to the last - builds upon. They are indisputible. And \noften disregarded. Seldom you hear them beeing prized, as seldom as you hear \na seeing man prizeing what he sees.\" Per Lagerkvist, The Fist \n(Free translation from Swedish)\n              --Andreas Arff  andreasa@dhhalden.no--\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11272, "properties": {"category": "talk.politics.mideast", "text": "From: dbd@urartu.sdpa.org (David Davidian)\nSubject: Public Service Translation No.2\nSummary:  A Call to Action\nKeywords: effective Greek & Armenian postings \nOrganization: S.D.P.A. Center for Regional Studies\nLines: 61\n\nSubject: Re: NETTEKI BUTUN VATANSEVERLERE DUYURU....\n\nIn article <1993Apr13.090647.2507@freenet.carleton.ca> aa624@Freenet.carleton.\nca (Suat Kiniklioglu) [a.k.a. Kubilay Kultigin] continues...\n\n[KK] BUTUN NETTEKI ARKADASLARA DUYURU....\n[KK]\n[KK] (SIYASI PLATFORMUN HANGI \"TARAFINDA OLURSANIZ OLUN\")\n[KK] \n[KK] BUGUNLERDE BU NETTE OLSUN, TALK.POLITICS.MIDEAST VE TALK.POLITICS.\n[KK] SOVIET'TE OLSUN OLAGAN DAN FAZLA VE \"ETKIN\" ERMENI VE YUNAN\n[KK] POSTINGLERI YAZILMAKTADIR. BU YAZILARIN COGU GUNCEL KARABAG\n[KK] KIBRIS VE BOSNA KONULARINDA YOGUNLASMAKTADIR. BURADAN HAREKETLE\n[KK] \"HEPIMIZIN\" BIRAZ DAHA AKTIF OLMASI VE \"USENMEYIP\" CEVAP YAZMASI\n[KK] OLDUKCA FAYDALI OLACAKTIR.\n[KK]\n[KK] EVET, HERKESIN ISI GUCU VAR...AKADEMIK YILIN YOGUN BIR DONEMI\n[KK] FAKAT MEYDANI BOS BIRAKMAMANIN VE ULKEMIZIN CIKARLARINI \"IDEOLOJIK\n[KK] PLATFORMDA\" GOZETMENIN DE SORUMLULUGU VAR...\n[KK]\n[KK] YARINLARIN CAGDAS VE GUCLU TURKIYESI'NI HEP BERABER KURMAK UMUDUYLA,\n[KK]\n[KK] SAYGILAR,\n\n[KK] Kubilay Kultigin\n\n[KK] ***** VATAN SEVGISI RUHLARI KIRDEN KURTARAN EN KUVVETLI RUZGARDIR *****\n\nIn translation, as a public service:\n\nSubject: AN ANNOUNCEMENT TO ALL PATRIOTS ON THE NET...\n\nAN ANNONCEMENT TO ALL FRIENDS ON THE NET...\n\n(REGARDLESS OF \"WHEREVER YOU STAND\" ON THE POLITICAL SPECTRUM)\n\nIN RECENT DAYS ARMENIAN AND GREEK POSTINGS OF THAN THE USUAL IN NUMBER AND\n\"EFFECTIVENESS\" ARE BEING WRITTEN BOTH ON THIS NET AND THE TALK.POLITICS.\nMIDEAST AND TALK.POLITICS.SOVIET. MOST OF THESE WRITINGS CONCENTRATE ON THE\nSUBJECTS OF KARABAGH, CYPRUS AND BOSNIA. DUE TO THIS FACT, IT IS QUITE USEFUL\nFOR \"US ALL\" BE MORE ACTIVE AND \"NOT FEEL RELUCTANT\" TO RESPOND. \n\nYES, EVERYBODY HAS HIS/HER OCCUPATION...IT IS A BUSY PERIOD IN THE ACADEMIC \nYEAR. HOWEVER, [WE MUST] HAVE A RESPONSIBILTY NOT TO LEAVE THE FORUM EMPTY AND \nWATCH THE INTERESTS OF OUR COUNTRY ON THE \"IDEOLOGICAL LEVEL\"...\n\nIN THE HOPE OF BUILDING TOGETHER A MODERN AND POWERFUL TURKEY OF TOMORRROW.\n\nREGARDS,\n\nKubilay Kultigin\n\n***** THE LOVE OF THE FATHERLAND IS THE STRONGEST OF ALL WINDS CLEANSING FILTH \nOFF SOULS *****\n\n\n-- \nDavid Davidian dbd@urartu.sdpa.org   | \"How do we explain Turkish troops on\nS.D.P.A. Center for Regional Studies |  the Armenian border, when we can't \nP.O. Box 382761                      |  even explain 1915?\" \nCambridge, MA 02238                  |              Turkish MP, March 1992 \n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11273, "properties": {"category": "comp.graphics", "text": "From: seth@north13.acpub.duke.edu (Seth Wandersman)\nSubject: univesa driver\nReply-To: seth@north13.acpub.duke.edu (Seth Wandersman)\nLines: 7\nNntp-Posting-Host: north13.acpub.duke.edu\n\n\n\tI got the univesa driver available over the net. I thought that finally\nmy 1-meg oak board would be able to show 680x1024 256 colors. Unfortunately a\nprogram still says that I can't do this. Is it the fault of the program (fractint)\nor is there something wrong with my card.\n\tunivesa- a free driver available over the net that makes many boards\nvesa compatible. \n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11274, "properties": {"category": "misc.forsale", "text": "From: TTR2+@PITT.EDU (Tod Treganowan)\nSubject: For Sale: UREI 527A 27-band Equalizer\nOrganization: Pitt\nLines: 15\n\nI have a UREI 527A 27-band (mono) Equilizer for sale.  Anyone who knows\nthis unit knows it's been a recording studio standard for years.  It's a\npretty straightforward unit, with balanced ins and outs.  Power supply caps\nwere recently replaced, and I added XLR connectors (which can be easily\nremoved if you prefer, as I mounted them on a bracket outside the case). \nThe unit is in good shape, and is sonically very clean.\n\nI'm asking $225 + UPS shipping.  They're going for $250 generally.  Make me\nan offer.  \n\n\nTod Treganowan\nComputing and Information Services\nUniversity of Pittsburgh\n(412) 624-6115 @work, 371-0154 @home\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11275, "properties": {"category": "sci.electronics", "text": "From: chin@ee.ualberta.ca (Jing Chin)\nSubject: Need Info on DSP project\nSummary: General info on building a DSP project that can manipulate music\nKeywords: DSP , D/A , A/D , music , project\nNntp-Posting-Host: bode.ee.ualberta.ca\nOrganization: University Of Alberta, Edmonton Canada\nLines: 10\n\nI want to start a DSP project that can maniplate music in a stereo cassette. \nIs that any chip set, development kit and/or compiler that \ncan equilize/mix music?  Ideally, The system should have D/A A/D converters &\na DSP compiler.  A rough estimate of the cost is greately appreciated.\n\nThanks in advance.\n\nRegards,\nJing Chin\ne-mail address:chin@bode.ee.ualberta.ca\n", "label": 12.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11276, "properties": {"category": "sci.space", "text": "From: dennisn@ecs.comm.mot.com (Dennis Newkirk)\nSubject: Re: First Spacewalk\nOrganization: Motorola\nDistribution: sci\nNntp-Posting-Host: 145.1.146.43\nLines: 14\n\nIn article <C5suMG.2rF.1@cs.cmu.edu> flb@flb.optiplan.fi (\"F.Baube[tm]\") writes:\n>At one time there was speculation that the first spacewalk \n>(Alexei Leonov ?) was a staged fake.\n>\n>Has any evidence to support or contradict this claim emerged ?\n>\n>Was this claim perhaps another fevered Cold War hallucination ?\n\nThis claim was made when someone spotted training film footage spliced into\nthe footage of the actual spacewalk.\n\nDennis Newkirk (dennisn@ecs.comm.mot.com)\nMotorola, Land Mobile Products Sector\nSchaumburg, IL\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11277, "properties": {"category": "alt.atheism", "text": "From: ednclark@kraken.itc.gu.edu.au (Jeffrey Clark)\nSubject: Re: <Political Atheists?\nNntp-Posting-Host: kraken.itc.gu.edu.au\nOrganization: ITC, Griffith University, Brisbane, Australia\nLines: 31\n\nkeith@cco.caltech.edu (Keith Allan Schneider) writes:\n\n>mathew <mathew@mantis.co.uk> writes:\n\n>>>Perhaps we shouldn't imprision people if we could watch them closely\n>>>instead.  The cost would probably be similar, especially if we just\n>>>implanted some sort of electronic device.\n>>Why wait until they commit the crime?  Why not implant such devices in\n>>potential criminals like Communists and atheists?\n\n>Sorry, I don't follow your reasoning.  You are proposing to punish people\n>*before* they commit a crime?  What justification do you have for this?\n\nNo, Mathew is proposing a public defence mechanism, not treating the\nelectronic device as an impropriety on the wearer. What he is saying is that\nthe next step beyond what you propose is the permanent bugging of potential\ncriminals.  This may not, on the surface, sound like a bad thing, but who\ndefines what a potential criminal is? If the government of the day decides\nthat being a member of an opposition party makes you a potential criminal\nthen openly defying the government becomes a lethal practice, this is not\nconducive to a free society.\n\nMathew is saying that implanting electronic surveillance devices upon people\nis an impropriety upon that person, regardless of what type of crime or\nwhat chance of recidivism there is. Basically you see the criminal justice\nsystem as a punishment for the offender and possibly, therefore, a deterrant\nto future offenders. Mathew sees it, most probably, as a means of\nrehabilitation for the offender. So he was being cynical at you, okay?\n\nJeff.\n\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11278, "properties": {"category": "talk.politics.guns", "text": "From: crphilli@hound.dazixca.ingr.com (Ron Phillips)\nSubject: Re: Armed Citizen - April '93\nNntp-Posting-Host: hound\nReply-To: crphilli@hound.dazixca.ingr.com\nOrganization: \"Intergraph Electronics, Mountain View, CA\"\nDistribution: usa\nLines: 30\n\nIn article <1993Apr13.162304.16721@lds.loral.com>, kendall@lds.loral.com (Colin Kendall 6842) writes:\n|> In article <1993Apr5.164728.10847@dazixco.ingr.com> crphilli@hound.dazixca.ingr.com writes:\n|> >\n|> >THE ARMED CITIZEN\n|> >+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n|> >Mere presence of a firearm, without a shot being fired, prevents\n|> >crime in many instances, as shown by news reports sent to The\n|> >Armed Citizen.  \n|> \n|> Perhaps so, but note that of the accounts cited, there was only\n|> one in which no shot was fired. Of the other twelve, five\n|> described cases in which the assailant was wounded by a shot,\n|> and six described cases in which the assailant was killed by a\n|> shot.\n\nAnd, had not these citizens accepted the moral responsibility to\nprotect their own lives, there could well have been at least\n13 innocent victims lying dead and several criminals still out \nwalking the streets perpetrating their crimes on others.\n\n\n\n-- \n**************************************************************\n* Ron Phillips               crphilli@hound.dazixca.ingr.com *\n* Senior Customer Engineer                                   *\n* Intergraph Electronics                                     *\n* 381 East Evelyn Avenue               VOICE: (415) 691-6473 *\n* Mountain View, CA 94041              FAX:   (415) 691-0350 *\n**************************************************************\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11279, "properties": {"category": "sci.space", "text": "From: nickh@CS.CMU.EDU (Nick Haines)\nSubject: Re: Level 5?\nIn-Reply-To: 18084TM@msu.edu's message of Tue, 20 Apr 1993 21:37:55 GMT\nOriginator: nickh@SNOW.FOX.CS.CMU.EDU\nNntp-Posting-Host: snow.fox.cs.cmu.edu\nOrganization: School of Computer Science, Carnegie Mellon University\nDistribution: sci\nLines: 50\n\nIn article <C5sy4s.4x2.1@cs.cmu.edu> 18084TM@msu.edu (Tom) writes:\n\n   Nick Haines sez;\n   >(given that I've heard the Shuttle software rated as Level 5 in\n   >maturity, I strongly doubt that this [having lots of bugs] is the case).\n\n   Level 5?  Out of how many?  What are the different levels?  I've never\n   heard of this rating system.  Anyone care to clue me in?\n\nThis is a rating system used by ARPA and other organisations to\nmeasure the maturity of a `software process' i.e. the entire process\nby which software gets designed, written, tested, delivered, supported\netc.\n\nSee `Managing the Software Process', by Watts S. Humphrey, Addison\nWesley 1989. An excellent software engineering text. The 5 levels of\nsoftware process maturity are:\n\n1. Initial\n2. Repeatable\n3. Defined\n4. Managed\n5. Optimizing\n\nThe levels are approximately characterized as follows:\n\n1. no statistically software process control. Have no statistical\n   basis for estimating how large software will be, how long it will\n   take to produce, how expensive it will be, or how reliable it will\n   be.  Most software production is at this level.\n\n2. stable process with statistical controls, rigorous project\n   management; having done something once, can do it again. Projects\n   are planned in detail, and there is software configuration\n   management and quality assurance.\n\n3. The process is defined and understood, implementation is\n   consistent. This includes things like software inspection, a\n   rigorous software testing framework, more configuration management,\n   and typically a `software engineering process group' within the\n   project.\n\n4. Statistical information on the software is systematically gathered\n   and analysed, and the process is controlled on the basis of this\n   information. Software quality is measured and has goals.\n\n5. Defects are prevented, the process is automated, software contracts\n   are effective and certified.\n\nNick Haines nickh@cmu.edu\n", "label": 14.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11280, "properties": {"category": "soc.religion.christian", "text": "From: loisc@microsoft.com (Lois Christiansen)\nSubject: Re: Homosexuality issues in Christianity\nOrganization: Microsoft Corp.\nLines: 37\n\nIn article <Apr.30.03.11.27.1993.10101@geneva.rutgers.edu> FSSPR@acad3.alaska.edu wrote:\n> This subject was beaten to death on bit.listserv.christia recently,\n> until Madge stepped in and closed the topic.  It has been discussed\n> since privately in e-mail amongst their participants, and I've \n> received some of it.  A fairly large file (approx. 18 KB) of comments \n> made on the March On Washington was among these.  If it hasn't been \n> posted here already (I don't know;  I just scan through this \n> newsgroup, as at 1200 bps, I couldn't possibly read it all), I would\n> be glad to send it along.  I believe that it would be of interest to\n> people here.\n> \n> \n> I hope that anyone who remembers seeing Rev. Troy Perry's\n> \"performance\" at the 1987 March On Washington will see for themselves\n> just how inconceivable it is to mix Christianity with homosexuality.\n> \n> Sean Patrick Ryan****fsspr@aurora.alaska.edu or sean@freds.cojones.com\n\nYou might visit some congregations of Christians, who happen to be homosexuals,\nthat are spirit-filled believers, not MCC'rs; before you go lumping us all\ntogether with Troy Perry.  \n\nThe Lord IS working in our community (the homosexual community, that is).  He's\nnot asking us to change our sexual nature, but He is calling us to practice\nthe morality that He established from the beginning.\n\nIsn't Satan having a hayday pitting Christian against Christian over any issue\nhe can, especially homosexuality.  Let's reach the homosexuals for Christ. \nLet's not try to change them, just need to bring them to Christ.  If He\ndoesn't want them to be gay, He can change that.  If they are living a moral\nlife, committed to someone of the same sex, and God is moving in their lives,\nwho are we to tell them they have to change?\n\nThat's my two cent.\n\nGod Bless You All\nLoisc\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11281, "properties": {"category": "sci.med", "text": "From: ghica@fig.citib.com (Renato Ghica)\nSubject: seek sedative information\nOriginator: ghica@cyclops\nOrganization: Citibank IBISM\nLines: 11\n\n\n\nhas any one heard of a sedative called \"Rhoepnol\"? Made by LaRouche,\nI believe. Any info as to side effects or equivalent tranquillizers?\n\nthanks....\n-- \n\n\"This will just take a minute.\"\n\"I'm 90% done.\"\n\"It worked on my machine.\"\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11282, "properties": {"category": "rec.motorcycles", "text": "From: bgardner@pebbles.es.com (Blaine Gardner)\nSubject: Re: RGV and posing!!\nNntp-Posting-Host: 130.187.85.70\nOrganization: Evans & Sutherland Computer Corporation\nLines: 13\n\nIn article <speedy.153@engr.latech.edu> speedy@engr.latech.edu (Speedy Mercer) writes:\n>In article <2553@spam.maths.adelaide.edu.au> amydlak@spam.maths.adelaide.edu.au (Adam Mydlak) writes:\n\n>>[Squid deleted]\n\n> 5.  Helment laws vary from state to state.  In my state (Louisiana) it is \n>the law.  I personaly, would not go 2 feet on a bike without one law or no \n>law.  A helment will save your life.\n\nI'll go 2 feet, but I draw the line at 3. \n-- \nBlaine Gardner @ Evans & Sutherland\nbgardner@dsd.es.com\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11283, "properties": {"category": "sci.crypt", "text": "From: crypt-comments@math.ncsu.edu\nSubject: Cryptography FAQ 05/10 - Product Ciphers\nOrganization: The Crypt Cabal\nLines: 435\nExpires: 22 May 1993 04:00:07 GMT\nReply-To: crypt-comments@math.ncsu.edu\nNNTP-Posting-Host: pad-thai.aktis.com\nSummary: Part 5 of 10 of the sci.crypt FAQ, Product Ciphers.\n Theory and security of product ciphers.  Differential cryptanalysis.\n DES encryption standard. NSA role in DES design. DES hardware and\n software availability.\nX-Last-Updated: 1993/04/16\n\nArchive-name: cryptography-faq/part05\nLast-modified: 1993/4/15\n\n\nFAQ for sci.crypt, part 5: Product ciphers\n\nThis is the fifth of ten parts of the sci.crypt FAQ. The parts are\nmostly independent, but you should read the first part before the rest.\nWe don't have the time to send out missing parts by mail, so don't ask.\nNotes such as ``[KAH67]'' refer to the reference list in the last part.\n\nThe sections of this FAQ are available via anonymous FTP to rtfm.mit.edu \nas /pub/usenet/news.answers/cryptography-faq/part[xx].  The Cryptography \nFAQ is posted to the newsgroups sci.crypt, sci.answers, and news.answers\nevery 21 days.\n\n\nContents:\n\n* What is a product cipher?\n* What makes a product cipher secure?\n* What are some group-theoretic properties of product ciphers?\n* What can be proven about the security of a product cipher?\n* How are block ciphers used to encrypt data longer than the block size?\n* Can symmetric block ciphers be used for message authentication?\n* What exactly is DES?\n* What is triple DES?\n* What is differential cryptanalysis?\n* How was NSA involved in the design of DES?\n* Is DES available in software?\n* Is DES available in hardware?\n* Can DES be used to protect classified information?\n* What are \"ECB\", \"CBC\", \"CFB\", and \"OFB\" encryption?\n\n\n* What is a product cipher?\n\n  A product cipher is a block cipher that iterates several weak\n  operations such as substitution, transposition, modular\n  addition/multiplication, and linear transformation. (A ``block\n  cipher'' just means a cipher that encrypts a block of data---8 bytes,\n  say---all at once, then goes on to the next block.) The notion of\n  product ciphers is due to Shannon [SHA49]. Examples of modern\n  product ciphers include LUCIFER [SOR84], DES [NBS77], SP-networks\n  [KAM78], LOKI [BRO90], FEAL [SHI84], PES [LAI90], Khufu and Khafre\n  [ME91a]. The so-called Feistel ciphers are a class of product\n  ciphers which operate on one half of the ciphertext at each round,\n  and then swap the ciphertext halves after each round. LUCIFER,\n  DES, LOKI, and FEAL are examples of Feistel ciphers.\n\n  The following table compares the main parameters of several product \n  ciphers:\n\n  cipher   |   block length   |   key bits   |   number of rounds\n  LUCIFER          128               128                16\n  DES               64                56                16\n  LOKI              64                64                16\n  FEAL              64               128            2^x, x >= 5\n  PES               64               128                 8\n\n* What makes a product cipher secure?\n\n  Nobody knows how to prove mathematically that a product cipher is\n  completely secure. So in practice one begins by demonstrating that the\n  cipher ``looks highly random''. For example, the cipher must be\n  nonlinear, and it must produce ciphertext which functionally depends\n  on every bit of the plaintext and the key. Meyer [MEY78] has shown\n  that at least 5 rounds of DES are required to guarantee such a\n  dependence. In this sense a product cipher should act as a ``mixing''\n  function which combines the plaintext, key, and ciphertext in a\n  complex nonlinear fashion.\n\n  The fixed per-round substitutions of the product cipher are\n  referred to as S-boxes. For example, LUCIFER has 2 S-boxes, and DES\n  has 8 S-boxes. The nonlinearity of a product cipher reduces to a\n  careful design of these S-boxes. A list of partial design criteria\n  for the S-boxes of DES, which apply to S-boxes in general, may be\n  found in Brown [BRO89] and Brickell et al. [BRI86].\n\n* What are some group-theoretic properties of product ciphers?\n\n  Let E be a product cipher that maps N-bit blocks to N-bit blocks.\n  Let E_K(X) be the encryption of X under key K. Then, for any fixed K,\n  the map sending X to E_K(X) is a permutation of the set of N-bit\n  blocks. Denote this permutation by P_K. The set of all N-bit\n  permutations is called the symmetric group and is written S_{2^N}.\n  The collection of all these permutations P_K, where K ranges over all\n  possible keys, is denoted E(S_{2^N}). If E were a random mapping from\n  plaintexts to ciphertexts then we would expect E(S_{2^N}) to generate\n  a large subset of S_{2^N}.\n\n  Coppersmith and Grossman [COP74] have shown that a very simple\n  product cipher can generate the alternating group A_{2^N} given a\n  sufficient number of rounds. (The alternating group is half of the\n  symmetric group: it consists of all ``even'' permutations, i.e., all\n  permutations which can be written as an even number of swaps.)\n  Even and Goldreich [EVE83] were able to extend these results to show\n  that Feistel ciphers can generate A_{2^N}, given a sufficient number\n  of rounds.\n\n  The security of multiple encipherment also depends on the\n  group-theoretic properties of a cipher. Multiple encipherment is an\n  extension over single encipherment if for keys K1, K2 there does\n  not exist a third key K3 such that\n\n  E_K2(E_K1(X)) == E_(K3)(X)                (**)\n\n  which indicates that encrypting twice with two independent keys\n  K1, K2 is equal to a single encryption under the third key K3.  If\n  for every K1, K2 there exists a K3 such that eq. (**) is true then\n  we say that E is a group.\n\n  This question of whether DES is a group under this definition was\n  extensively studied by Sherman, Kaliski, and Rivest [SHE88]. In their\n  paper they give strong evidence for the hypothesis that DES is not a\n  group. In fact DES is not a group [CAM93].\n\n* What can be proven about the security of a product cipher?\n\n  Recall from above that P_K is a permutation produced by E under\n  some key K. The goal of the designer of E is to ensure that P_K\n  appears to be a random element of S_{2^N}, the symmetric group.\n  Let R be an element of S_{2^N} selected randomly. We will say that P_K\n  and R are indistinguishable if an observer given P_K and R in some\n  order cannot distinguish between these two permutations in polynomial\n  time. That is, with time bounded resources, the observer cannot\n  determine which of the permutations is produced by E: the optimal\n  decision is no better than simply guessing.\n\n  Luby and Rackoff [LUB88] have shown that a class of Feistel ciphers\n  are secure in this sense when the round mapping is replaced by\n  random boolean functions.\n\n* How are block ciphers used to encrypt data longer than the block size?\n\n  There are four standard \"modes of operation\" (and numerous non-standard\n  ones as well).  The standard modes of operation are defined in the U.S.\n  Department of Commerce Federal Information Processing Standard (FIPS) 81,\n  published in 1980.  See the question about \"ECB\" below for more details.\n\n  Although they are defined for the DES block cipher, the \"modes of\n  operation\" can be used with any block cipher.\n\n* Can symmetric block ciphers be used for message authentication?\n\n  One may use a symmetric cryptosystem block cipher to prove to himself\n  that he did or did not generate a message, and to prove to himself \n  whether his message was altered or unaltered since generation.  But one\n  cannot prove these things to another without revealing the key, and \n  thereafter that key cannot be used to prove anything about any messages\n  that were authenticated using that key.\n  \n  See ANSI X3.106-1983 and FIPS 113 (1985) for a standard method of message\n  authentication using DES.\n\n* What exactly is DES?\n\n  DES is the U.S. Government's Data Encryption Standard - a product \n  cipher that operates on 64-bit blocks of data, using a 56-bit key.  \n\n  It is defined in FIPS 46-1 (1988) [which supersedes FIPS 46 (1977)].\n  FIPS are Federal Information Processing Standards published by NTIS.\n  DES is identical to the ANSI standard Data Encryption Algorithm (DEA)\n  defined in ANSI X3.92-1981. \n\n* What is triple DES?\n\n  Triple DES is a product cipher which, like DES, operates on 64-bit \n  data blocks.  There are several forms, each of which uses the DES\n  cipher 3 times.  Some forms use two 56-bit keys, some use three.\n  The \"DES modes of operation\" may also be used with triple-DES.\n\n  Some people refer to E(K1,D(K2,E(K1,x))) as triple-DES.\n\n  This method is defined in chapter 7.2 of the ANSI standard X9.17-1985\n  \"Financial Institution Key Management\" and is intended for use in\n  encrypting DES keys and IVs for \"Automated Key Distribution\".  Its\n  formal name is \"Encryption and Decryption of a Single Key by a Key\n  Pair\", but it is referenced in other standards documents as EDE.\n\n  That standard says (section 7.2.1): \"Key encrypting keys may be a single\n  DEA key or a DEA key pair.  Key pairs shoud be used where additional\n  security is needed (e.g., the data protected by the key(s) has a long\n  security life).  A key pair shall not be encrypted or decrypted using a\n  single key.\"\n\n  Others use the term \"triple-DES\" for E(K1,D(K2,E(K3,x))) or\n  E(K1,E(K2,E(K3,x))).\n\n  One of us (Carl Ellison) keeps advocating DES triple use in the form\n  E(K1, TRAN( E(K2, TRAN( E(K3, COMPRESS( x )))))), where each DES instance\n  has its own key and IV (for CBC mode) and TRAN has been posted on\n  sci.crypt.  (It is a large-block transposition program taking its key\n  from the data stream itself, so that it is not an encryption program on\n  its own part.)\n\n* What is differential cryptanalysis?\n\n  Differential cryptanalysis is a statistical attack that can be\n  applied to any iterated mapping (ie. any mapping which is based on\n  a repeated round function). The method was recently popularized by\n  Biham and Shamir [BIH91], but Coppersmith has remarked that the\n  S-boxes of DES were optimized against this attack some 20 years ago.\n  This method has proved effective against several product ciphers,\n  notably FEAL [BI91a].\n\n  Differential cryptanalysis is based on observing a large number of\n  ciphertexts Y, Y' whose corresponding plaintexts X, X' satisfy a\n  known difference D = X+X', where + is componentwise XOR. In the\n  basic Biham-Shamir attack, 2^{47} such plaintext pairs are required\n  to determine the key for DES. Substantially fewer pairs are required\n  if DES is truncated to 6 or 8 rounds. In these cases, the actual key\n  can be recovered in a matter of minutes using a few thousand pairs.\n  For full DES this attack is impractical because it requires so many\n  known plaintexts.\n\n  The work of Biham and Shamir on DES revealed several startling\n  observations on the algorithm. Most importantly, if the key\n  schedule was removed from DES and a 16*48 = 768-bit key was used,\n  the key could be recovered in less than 2^{64} steps. Thus\n  independent subkeys do not add substantial security to DES.\n  Further, the S-boxes of DES are extremely sensitive in that\n  changing even single entries in these tables yields significant\n  improvement in the differential attack.\n\n  Adi Shamir is quoted to say (NYTimes Oct 13 1991), ``I would say\n  that, contrary to what some people believe, there is no evidence\n  of tampering with the DES so that the basic design was weakened.''\n\n* How was NSA involved in the design of DES?\n\n  According to Kinnucan [KIN78], Tuchman, a member of the group that\n  developed DES at IBM is quoted as saying, ``We developed the DES\n  algorithm entirely within IBM using IBMers. The NSA did not\n  dictate a single wire!'' Tuchman and Meyer (another developer of\n  DES) spent a year breaking ciphers and finding weaknesses in\n  Lucifer. They then spent two years strengthening Lucifer. ``Their\n  basic approach was to look for strong substitution, permutation,\n  and key scheduling functions ... IBM has classified the notes\n  containing the selection criteria at the request of the NSA....\n  `The NSA told us we had inadvertently reinvented some of the deep\n  secrets it uses to make its own algorithms,' explains Tuchman.''\n  \n  On the other hand, a document called ``Involvement of the NSA in\n  the development of DES: unclassified summary of the United States\n  Select Committee on Intelligence'', printed in the IEEE\n  Communications Magazine, p53-55, 1978, states: ``In the development\n  of DES, NSA convinced IBM that a reduced keysize was sufficient;\n  indirectly assisted in the development of the S-box structures; and\n  certified that the final DES algorithm was, to the best of their\n  knowledge, free from any statistical or mathematical weakness.''\n\n  Clearly the key size was reduced at the insistence of the NSA.\n  The article further states that the NSA did not tamper with the\n  algorithm itself, just the parameters, which in some sense\n  resolves the apparent conflict in the remarks of Meyer and Tuchman\n  presented above.\n\n* Is DES available in software?\n\n  Several people have made DES code available via ftp (see part 10 for\n  pathnames): Stig Ostholm [FTPSO]; BSD [FTPBK]; Eric Young [FTPEY];\n  Dennis Furguson [FTPDF]; Mark Riordan [FTPMR]; Phil Karn [FTPPK].\n  A Pascal listing of DES is also given in Patterson [PAT87].\n\n  FIPS 46-1 says \"The algorithm specified in this standard is to be\n  implemented ... using hardware (not software) technology.  ...\n  Software implementations in general purpose computers are not in\n  compliance with this standard.\"  Despite this, software\n  implementations abound, and are used by government agencies.\n\n* Is DES available in hardware?\n\n  The following paragraphs are quoted from messages sent to the editors.\n  We don't vouch for the quality or even existence of the products.\n\n  Chip Rosenthal says: ``Dallas Semiconductor makes a DES\n  encryption/decryption device for use on standard, digital 64Kbps PCM\n  telecom data streams. It is capable of processing data in real time,\n  e.g. one sample/frame. It is the DS2160. Their phone number is\n  214-450-0400. You would probably need to talk with Dewight in Telecom\n  marketing.''\n\n  Christian Franke, franke@informatik.rwth-aachen.de, says: ``1.\n  Cryptech CRY12C102: 22.5Mbit/s according to Data Sheet, with 32 Bit\n  interface. We use this one, because it was the only one available when\n  we started the project. No problems !  2. Pijnenburg PCC100: 20Mbit/s\n  according to Data Sheet. Address: PIJNENBURG B.V., Boxtelswweg 26,\n  NL-5261 NE Vught, The Netherlands.  3. INFOSYS DES Chip (Germany):\n  S-Boxes must be loaded by software. So you can modify the Algorithm.\n  Sorry, I don't have the data sheet handy. Please E-Mail me if you need\n  further information.''\n\n  mjr@tis.com (Marcus J Ranum) says: \"SuperCrypt\" 100Mb/sec and faster\n  DES and Proprietary Storage for 16 56-bit keys Key stream generator\n  Integrated hardware DES3 procedure Extended mode with 112 bit keys;\n  Computer Elektronik Infosys; 512-A Herndon Parkway,; Herndon, VA\n  22070; (800)322-3464\n\n  thember@gandalf.ca (Tim Hember) says: Newbridge Microsystems sells\n  an AM9568 compatible DES chip that operates at 25MHz, performs a\n  round of encryption in 18 clocks, has a three-stage pipeline,\n  supports ECB, CBC, CFB-8 and >>> CFB-1 <<<<.  Further it is very\n  reasonable priced as opposed to other high-end DES chips.  Call\n  Newbridge Microsystems, Ottawa, (613) 592-0714.  (... there are no\n  import/export issues with Canada and the US).  If you require custom\n  DES or Public Key ICs then Timestep Engineering developed\n  Newbridge's crypto chips and ICs for other commercial and\n  educational establishments. They can be reached at (613) 820-0024.\n\n* Can DES be used to protect classified information?\n\n  DES is not intended to protect classified data.  FIPS 46-1 says:\n  \"This standard will be used by Federal departments and agencies for\n  the cryptographic protection of computer data when the following\n  conditions apply: 1.  ...  cryptographic protection is required; and\n  2. the data is not classified according to the National Security Act\n  of 1947, as amended, or the Atomic Energy Act of 1954, as amended.\"\n\n* What are \"ECB\", \"CBC\", \"CFB\", and \"OFB\" encryption?\n\n  These are methods for using block ciphers, such as DES, to encrypt \n  messages, files, and blocks of data, known as \"modes of operation.\"\n  Four \"modes of operation\" are defined in FIPS 81 (1980 December 2), \n  and also in ANSI X3.106-1983.   \n\n  FIPS 81 specifies that when 7-bit ASCII data is sent in octets, the\n  unused most-significant bit is to be set to 1.\n  FIPS 81 also specifies the padding for short blocks.\n\n  The four DES modes of operation are: \n\tElectronic Code Book  (ECB), \n\tCipher Block Chaining (CBC), \n\tK-bit Cipher FeedBack (CFB), and \n\tK-bit Output FeedBack (OFB).\n\n  These methods are explained below in a c-language-like notation.\n\n  Some symbols:\n\n  P[n]\tThe n'th block of plaintext, input to encryption, output from\n  \tdecryption.  Size of block determined by the mode.\n\n  C[n]\tThe n'th block of ciphertext, output from encryption, input to\n  \tdecryption.  Size of block determined by the mode.\n\n  E(m)\tThe DES encryption function, performed on 64-bit block m, using\n  \tthe 16-key schedule derived from some 56-bit key.\n\n  D(m)\tThe DES decryption function, performed on 64-bit block m, using\n  \tthe same key schedule as in E(m), except that the 16 keys\n  \tin the schedule are used in the opposite order as in E(m).\n\n  IV\tA 64-bit \"initialization vector\", a secret value which, along with\n  \tthe key, is shared by both encryptor and decryptor.\n\n  I[n]\tThe n'th value of a 64-bit variable, used in some modes.\n  R[n]\tThe n'th value of a 64-bit variable, used in some modes.\n\n  LSB(m,k) The k least significant (right-most) bits of m.\n  \te.g.  m & ((1 << k) - 1)\n\n  MSB(m,k) The k most significant (left-most) bits of m.\n  \te.g.  (m >> (64-k)) & ((1 << k) - 1)\n\n  = ^ << >> &  operators as defined in the c langage.\n\n\n  Electronic Code Book (ECB):\n\n  \t  P[n] and C[n] are each 64-bits long.\n\n  \t  Encryption:\t\t\tDecryption:\n  \t  C[n] = E(P[n])\t\tP[n] = D(C[n])\n\n\n  Cipher Block Chaining (CBC):\n\n  \t  P[n] and C[n] are each 64-bits long.\n\n  \t  Encryption:\t\t\tDecryption:\n  \t  C[0] = E(P[0]^IV)\t\tP[0] = D(C[0])^IV\n  (n>0)\t  C[n] = E(P[n]^C[n-1])\t\tP[n] = D(C[n])^C[n-1]\n\n\n  k-bit Cipher FeedBack (CFB):\n\n  \t  P[n] and C[n] are each k bits long, 1 <= k <= 64.  \n\n  \t  Encryption:\t\t\tDecryption:\n  \t  I[0] = IV\t\t\tI[0] = IV\n  (n>0)\t  I[n] = I[n-1]<<k | C[n-1]\tI[n] = I[n-1]<<k | C[n-1]\t\n  (all n) R[n] = MSB(E(I[n]),k)\t\tR[n] = MSB(E(I[n]),k)\n  (all n) C[n] = P[n]^R[n]\t\tP[n] = C[n]^R[n]\n\n  \t  Note that for k==64, this reduces to:\n\n  \t  I[0] = IV\t\t\tI[0] = IV\n  (n>0)\t  I[n] = C[n-1]\t\t\tI[n] = C[n-1]\t\n  (all n) R[n] = E(I[n])\t\tR[n] = E(I[n])\n  (all n) C[n] = P[n]^R[n]\t\tP[n] = C[n]^R[n]\n\n  CFB notes: Since I[n] depends only on the plain or cipher text from the\n  previous operation, the E() function can be performed in parallel with\n  the reception of the text with which it is used.\n\n\n  k-bit Output FeedBack (OFB):\n\n  \t  P[n] and C[n] are each k bits long, 1 <= k <= 64.  \n\n  \t  Encryption:\t\t\tDecryption:\n  \t  I[0] = IV\t\t\tI[0] = IV\n  (n>0)\t  I[n] = I[n-1]<<k | R[n-1]\tI[n] = I[n-1]<<k | R[n-1]\t\n  (all n) R[n] = MSB(E(I[n]),k)\t\tR[n] = MSB(E(I[n]),k)\n  (all n) C[n] = P[n]^R[n]\t\tP[n] = C[n]^R[n]\n\n  \t  Note that for k==64, this reduces to:\n\n  \t  I[0] = IV\t\t\tI[0] = IV\n  (n>0)\t  I[n] = R[n-1]\t\t\tI[n] = R[n-1]\t\n  (all n) R[n] = E(I[n])\t\tR[n] = E(I[n])\n  (all n) C[n] = P[n]^R[n]\t\tP[n] = C[n]^R[n]\n\n  OFB notes: encryption and decryption are identical.  Since I[n] is\n  independent of P and C, the E() function can be performed in advance of\n  the receipt of the plain/cipher text with which it is to be used.\n\n\n  Additional notes on DES \"modes of operation\":\n\n  ECB and CBC use E() to encrypt and D() to decrypt, but the feedback modes\n  use E() to both encrypt and decrypt.  This disproves the erroneous claim\n  that systems which feature E() but not D() cannot be used for data\n  confidentiality, and therefore are not subject to export controls.\n", "label": 11.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11284, "properties": {"category": "rec.motorcycles", "text": "From: kens@lsid.hp.com (Ken Snyder)\nSubject: Re: Should I buy a VRF 750?\nArticle-I.D.: hpscit.1qkcvo$2q9\nOrganization: Hewlett Packard Santa Clara Site\nLines: 26\nNNTP-Posting-Host: labkas.lsid.hp.com\nX-Newsreader: TIN [version 1.1 PL8.10]\n\nMark N Bricker (mnb4738@cs.rit.edu) wrote:\n: I am in the market for a bike and have recently found a 1990\n: Honda VRF 750 at a dealership. The bike has about 47,000 miles\n: and is around $4500. It has had two previous owners, both employees\n: of the dealership who, I have been told, took very good care of the\n: bike.\n\n: I have two questions: 1) Is this too many miles for a bike? I know this\n: would not be many miles for a car but I am unfamiliar with the life\n: span of bikes. 2) Is this a decent price? I am also unfamilar with\n: prices for used bikes. Is there a blue book for bikes like there is\n: for cars?.\n\n: Thanks for any advice you can give.\n\n:                             --Mark\n\n\n--\n _______________________ K _ E _ N ____________________________\n|                                                              |\n| Ken Snyder              ms/loc: 330 / UN2                    |\n| Hewlett-Packard Co.     LSID  : Lake Stevens Instrument Div. |\n| 8600 Soper Hill Road    gte/tn: (206) 335-2253 / 335-2253    |\n| Everett, WA 98205-1298  un-ix : kens@lsid.hp.com             |\n|______________________________________________________________|\n", "label": 8.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11285, "properties": {"category": "comp.graphics", "text": "From: steveq@DIALix.oz.au (Steve Quartly)\nSubject: WANTED: SIRD Alogorythmn\nSummary: WANTED: A Sird Alogorythmn\nKeywords: Sird\nArticle-I.D.: DIALix.1praaa$pqv\nOrganization: DIALix Services, Perth, Western Australia\nLines: 12\nNNTP-Posting-Host: localhost.dialix.oz.au\nX-Newsreader: NN version 6.4.19 #1\n\nHi,\n\nI'm interested in writing a program to generate a SIRD picture, you know\nthe stereogram where you cross your eyes and the picture becomes 3D.\n\nDoes anyone have one or know where I can get one?\n\nPlease e-mail to steveq@sndcrft.DIALix.oz.au with any replies.\n\nMany thanks for your help.\n\nSteve Q.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11286, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Ravi Konchigeri <mongoose@leland.stanford.edu>\nSubject: Re: LCIII problems\nX-Xxmessage-Id: <A7F4A76B690100ED@kimball-pc-316.stanford.edu>\nX-Xxdate: Fri, 16 Apr 93 02:11:55 GMT\nOrganization: Stanford University\nX-Useragent: Nuntius v1.1.1d17\nLines: 24\n\nIn article <1qmgjk$ao5@menudo.uh.edu> , sunnyt@coding.bchs.uh.edu writes:\n>\tIts not a good idea to have a horizontally formatted hard disk in a  \n>vertical position.  If the drive is formatted in a horizontal position,\nit can  \n>not completely compensate for the gravitational pull in a vertical\nposition.   \n>I'm not saying that your hard disk will fail tomorrow or 6 months from\nnow, but  \n>why take that chance?  If you want more detailed info on the problem,\nplease  \n\nI think the other replies sum up the fact that you can place a hard drive\non its side.  The point is this will only be sure to work on the 'new'\ndrives, namely 1/3 ht LPS drives that have a smaller platter and are also\nmore stable.\n\tWhy should I take the chance?  Because I've been running a Maxtor 1/3 ht\n120 LPS on both its side and flat for about a year and I've had no\nproblems with it.  Period.\n\tLike I always say, NEVER trust the manufacturer.\n\n\t\"Just like everything else in life, the right lane ends in half a mile.\"\n\nRavi Konchigeri.\nmongoose@leland.stanford.edu\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11287, "properties": {"category": "comp.os.ms-windows.misc", "text": "Subject: Re: FAST DOS'VGA and 1024x768x256 windows video card info needed.\nFrom: edowdy@vax1.umkc.edu\nOrganization: University of Missouri - Kansas City\nNNTP-Posting-Host: vax1.umkc.edu\nLines: 38\n\nIn article <1993Apr25.220320.26510@doug.cae.wisc.edu>, leo@cae.wisc.edu (Leo Lim) writes:\n> ok, i have a 486dx50(ISA) w/ Diamond Stealth VRAM 1MB.\n> I was really satisfied w/ its performance in windows.\n> but now more and more games needs higher frame rates in DOS' VGA,\n> especially this new Strike Commander. ;-)\n> this stealth vram can only give me 17.5 fps. ;-( (i use 3dbench).\n> my winmark was 6.35 million, i think.\n> \n> so right now i'm considering to replace it w/ a new card, which hopefully\n> can perform approx same w/ my current VRAM in windows and also\n> can perform DOS' VGA preferably >30fps.\n> \n\nI am ordering the Actix graphicsengine ultra plus. It is the same price\nas the stealth card. Plus it is also based on S3 928 chip the newest and\nfastest chip from s3. \nEveryone, if you are looking for a card, SEE THE APRIL ISSUE OF PC MAGAZINE\nFOR THEIR REVIEW.  \nThey noted this person's problem with dos. The stealth card is not a very good\ndos performer. The Actix card is rated the best in this chip class (non local\nbus). It got glowing reports from the magazine (was a best buy) and I called\nthem directly and they just updated their windows drivers last week! They have\na bulletin board to get the latest drivers. \nThough somone posted that this bbs was at 2400. \n\nAT any rate, the Actix graphics engine ultra outperforms all the other cards\nin the 928 class (based on the winmark results).\n\nIf you are looking for the all around best dos/windows performance  check out\nthe actix card. Their 1-800 number is 927-5557.\n\nP.S. The article in pc magazine noted that if you are a regular dos user (ie:\ngames) then you should also check out the 801 chip from s3. It apparently\nscores just as well and in many cases slightly better in dos than the 928 chip\n(ie: stealth and actix cards.) They have \"comparable\" windows performance and\nare cheaper to buy.\n\nEric\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11288, "properties": {"category": "rec.sport.baseball", "text": "From: crichar@eskimo.com (Craig S. Richardson)\nSubject: Re: Notes on Jays vs. Indians Series\nArticle-I.D.: eskimo.C5JCK0.DEA\nDistribution: na\nOrganization: Eskimo North (206) 367-3837 {eskimo.com}\nLines: 35\n\nIn article <1993Apr15.123803.4618@webo.dg.com> lyford@dagny.webo.dg.com (Lyford Beverage) writes:\n>In article <1993Apr13.202037.9485@cs.cornell.edu>, tedward@cs.cornell.edu (Edward [Ted] Fischer) writes:\n>|> In article <rudyC5Fr3q.1CL@netcom.com> rudy@netcom.com (Rudy Wade) writes:\n>|> >In article <C5FMxD.2pM@cs.dal.ca> niguma@ug.cs.dal.ca (Gord Niguma) writes:\n>|> >>. He probably didn't even have as good a season as\n>|> >>Alomar last year.\n>|> >  \n[snip]\n>|> Uh, yes.  Baerga has a lot of flash, but Alomar was the better hitter\n>|> last year.\n>|> \n[stats deleted - we've all seen them by now]\n>This is fascinating.  You say that Alomar was the better hitter last \n>year, and immediately follow that up with numbers showing that Baerga\n>had a better year.  The only category that I see which shows an advantage\n>for Alomar is OBP.\n\nI nominate this last bit for \"Anti-Stathead Quote of the Week\".\n\nAlomar only has a 50 point advantage in the most important offensive\ncategory, while Baerga, who studied in the Joe Carter School of Out-Burning,\nhas more impressive mediot stats, largely due to opportunities rather\nthan quality.\n\nThe lines are fairly close in value, but edge to Alomar.\n\nNow Baerga ain't chopped liver, but Alomar is still the man to beat among\nAL second basemen...\n\n--Craig\n-- \nCraig S. Richardson (crichar@eskimo.com - formerly eskimo.celestial.com))\nGM - Pullman Sleepers (OBFBL)           GM - Seattle Rainiers (IFL)   \nGM/Manager - Tacoma Black Adders (IBL)  GM - New Jack City Highlanders (KL)\nTacoma Black Adders - A Growing, Excited Team! - \"The Future Begins Tomorrow\"\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.533+0000", "event": "documents", "entityId": 11289, "properties": {"category": "misc.forsale", "text": "From: er1@eridan.chuvashia.su (Yarabayeva Albina Nikolayevna)\nSubject: FOR SALE:high-guality conifer oil from Russia,$450/ton;400 ton\nReply-To: er1@eridan.chuvashia.su\nDistribution: eunet\nOrganization: Firm ERIDAN\nLines: 1\n\nInguiry by address:er1@eridan.chuvashia.su\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11290, "properties": {"category": "rec.sport.hockey", "text": "From: apland@mala.bc.ca (Ron Apland)\nSubject: Re: plus minus stat\nOrganization: Malaspina College\nLines: 24\n\nIn article <1993Apr16.222846.17764@alchemy.chem.utoronto.ca>, golchowy@alchemy.chem.utoronto.ca (Gerald Olchowy) writes:\n> It is meaningless to compare one player's plus/minus statistic with\n> another players' out of the context of the role and the playing time\n> of the players involved.    \n\nIt's just as meaningless to compare goals, assists, PIM and any other stat I\ncan think of.  Each player is asked to take a unique role for his team.  The\ncontexts will never be the same from one player to another playing on the\nsame team or different teams.  And yet ... awards are given and promotions\nreceived based in part on these meaningless stats.  The operative words are\n\"in part\" - stats must be interpreted, tempered with other information one\nhas about the player.  \n\n\n> To compare Jagr's and Francis's plus/minus is ridiculous and absurd...\n\nAnd comparing Jagr's and Francis's points is just as ridiculous and absurd...\nbut not more ridiculous and absurd as comparing goals, assists, points, +\\-\nfor Selanne, Lindros, Juneau, Potvin, and the other rookies in the league...\nand yet...\n\nHow about looking at them for what they are and enjoy the game.\n\nRon\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11291, "properties": {"category": "rec.sport.baseball", "text": "From: niepornt@phoenix.Princeton.EDU (David Marc Nieporent)\nSubject: Re: Jim Lefebvre is an idiot.\nArticle-I.D.: Princeto.1993Apr6.084432.3805\nOrganization: Princeton University\nLines: 21\nOriginator: news@nimaster\nNntp-Posting-Host: phoenix.princeton.edu\n\nIn <C51uC6.BL1@news.cso.uiuc.edu> ada41546@uxa.cso.uiuc.edu (Driftwood) writes:\n\n>\tI totally agree with each point you made.  Jose Viscaino looked\n>like a single A hitter up there.  Who swings on 3-1 count with Maddux \n>pitching and your teams down by a run, and you haven't touched the ball all \n>day?\n\nOh, this is an easy trivia question.  The answer is \"any Cub not named\nSandberg or Grace.\"\n\n>      I also think too much is made of that lefty-righty thing.  Watching\n>the Cubs games I get the feeling Steve Stone knows a lot more about what\n>the Cubs should be doing than Lefebre does.  Harry said it best when he\n>stated after another terrible Vizcaino at bat-- we can't wait til\n>Sandberg returns!\n\n-- \nDavid M. Nieporent   |  \"Only one thing wrong with theory...\nniepornt@phoenix.    |    Is stupid!  Is stupidest theory I ever heard!\"\n   princeton.edu     |   --------------------- \nBaltimore Orioles 93 |  Who's the dangerous cult -- the BDs or the BATF?\n", "label": 9.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11292, "properties": {"category": "comp.graphics", "text": "From: brian@porky.contex.com (Brian Love)\nSubject: Re: TIFF: philosophical significance of 42\nOrganization: Xyvision Design Systems\nLines: 9\n\nIn article <25335@alice.att.com> td@alice.att.com (Tom Duff) writes:\n>ulrich@galki.toppoint.de wrote:\n>> Does anyone have any  other suggestions where the 42 came from?\n>Forty-two is six times nine.\n\n...for very small values of six and nine.\n\n(Sorry, Tom, I couldn't resist...)\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11293, "properties": {"category": "soc.religion.christian", "text": "From: ata@hfsi.hfsi.com ( John Ata)\nSubject: Re: DID HE REALLY RISE???\nReply-To: <news@opl.com>\nOrganization: HFSI\nLines: 49\n\nIn article <Apr.12.03.44.39.1993.18842@athos.rutgers.edu> reedr@cgsvax.claremont.edu writes:\n>In article <Apr.10.05.31.46.1993.14368@athos.rutgers.edu>, luomat@alleg.edu (Timothy J. Luoma) writes:\n>> In article <Apr.9.01.11.16.1993.16937@athos.rutgers.edu>  \n>> \n>> \"Suppose you were part of the `Christian consipracy' which was going to  \n>> tell people that Christ had risen.  Never mind the stoning, the being  \n>> burned alive, the possible crucifixion ... let's just talk about a  \n>> scourging.  The whip that would be used would have broken pottery, metal,  \n\n>No one was ever flogged, beaten, burned, fed to the lions, or killed in any\n>other way because of a belief in the resurrection - sorry to disappoint you.\n\nI think you are vastly oversimplifying things. We know that early Christians\nsuffered totures because of their witness to Christ.  For example:\n\nACT 5:40    His speech persuaded them. They called the apostles in and had\n            them flogged. Then they ordered them not to speak in the name of\n            Jesus, and let them go.\n\nACT 5:41    The apostles left the Sanhedrin, rejoicing because they had been\n            counted worthy of suffering disgrace for the Name.\n\nIt appears that the Jewish rulers of that time had a particular aversion\nto even hearing Jesus's name.\nACT 5:28    \"We gave you strict orders not to teach in this name,\" he said.\n            \"Yet you have filled Jerusalem with your teaching and are\n            determined to make us guilty of this man's blood.\"\n\nFinally, the first apostle's death, James of Zebedee was certainly\nnot by Rome's hand any more than the first martyr Stephen. \n\n\n>The idea of resurrection is one which can be found in a host of different\n>forms in the religions of antiquity.  The problem was not the resurrection\n>which was a mediorce issue for a tiny fragment of the Jewish population \n\nThe problem was that if one believed in the Resurrection, then one\nmust believe in Jesus as truly being the Son of God and what He\nstood for and preached during His ministry on Earth.  That would\nhave been extremely difficult for some people, especially those\nthat had plotted to kill Him. \n\n>randy\n\n-- \nJohn G. Ata - Technical Consultant | Internet:  ata@hfsi.com\nHFS, Inc.\t\t  VA20     |     UUCP:  uunet!hfsi!ata\n7900 Westpark Drive\t MS:601\t   |    Voice:\t(703) 827-6810\nMcLean, VA  22102\t           |      FAX:\t(703) 827-3729\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11294, "properties": {"category": "talk.politics.guns", "text": "From: hays@ssd.intel.com (Kirk Hays)\nSubject: Re: Govs. Florio, Wilder Hit Airwaves In Support of Brady Bill\nNntp-Posting-Host: taos\nOrganization: Intel Supercomputer Systems Division\nLines: 26\n\nIn article <1993Apr5.015209.29431@ucsu.Colorado.EDU>, fcrary@ucsu.Colorado.EDU (Frank Crary) writes:\n|> In article <1993Apr2.231109.23378@msc.cornell.edu> srussell@msc.cornell.edu (Stephen Russell) writes:\n|> >ObGuns:  I'm moving to Arizona; everyone carries guns there.  If I don't, what\n|> >are the approximate probabilities that I'll get shot by the end of six months?\n|> \n|> Under 1 in 20,000 assuming FBI statistics are meaningfull.\n\nOf course, if you're a criminal, or hang around with criminals, or\nflash large wads of cash in the wilder parts of town, or utter verbal\nbigotry in the right public places, your chances of being shot are much\nhigher.\n\nAvoiding these behaviors, on the other hand, decreases your chances of\nbeing shot.\n\nSomething like 60% of all murders are criminals killing criminals. \nOver 90% of murders are committed by people with a prior *known*\nhistory of violence.\n\nSimplistic moral, suitable for my three year old, and most inane\nposters:  \"Bad people do bad things - repeatedly.\"\n\n-- \nKirk Hays - NRA Life, seventh generation.\n\"The only thing necessary for the triumph of evil is for good men to\ndo nothing.\"  -- Edmund Burke (1729-1797)\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11295, "properties": {"category": "alt.atheism", "text": "From: sandvik@newton.apple.com (Kent Sandvik)\nSubject: Re: free moral agency\nDistribution: na\nOrganization: Cookamunga Tourist Bureau\nLines: 20\n\nIn article <C5pxqs.LM5@darkside.osrhe.uoknor.edu>, bil@okcforum.osrhe.edu\n(Bill Conner) wrote:\n> As for your question of moral free-agency, given the Christian\n> position above, the freedom we have is to acknowledge God. The\n> morality we practice is a direct outgrowth of how we excercise that\n> freedom. You are free to ignore God in the same way you are free to\n> ignore gravity and the consequences are inevitable and well known\n> in both cases. That an atheist can't accept the evidence means only\n> that he prefers not to accept it, it says nothing about the evidence\n> itself. \n\nI agree, I had a hard feeling not believing my grand-grand mother\nwho told me of elves dancing outside barns in the early mornings.\nI preferred not to accept it, even if her statement provided\nthe truth itself. Life is hard.\n\nCheers,\nKent\n---\nsandvik@newton.apple.com. ALink: KSAND -- Private activities on the net.\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11296, "properties": {"category": "comp.graphics", "text": "From: schaefer@imag.imag.fr (Arno Schaefer)\nSubject: Re: CView answers\nNntp-Posting-Host: silene\nOrganization: Institut Imag, Grenoble, France\nLines: 32\n\nIn article <C5LErr.1J3@rahul.net>, bryanw@rahul.net (Bryan Woodworth) writes:\n|> In <1993Apr16.114158.2246@whiting.mcs.com> sean@whiting.mcs.com (Sean Gum) writes:\n|> \n|> >A stupid question, but what will CView run on and where can I get it? I\n|> >am still in need of a GIF viewer for Linux. (Without X-Windows.)\n|> >Thanks!\n|> > \n|> \n|> Ho boy. There is no way in HELL you are going to be able to view GIFs or do\n|> any other graphics in Linux without X windows!  I love Linux because it is\n|> so easy to learn..  You want text?  Okay.   Use Linux. You want text AND\n|> graphics?  Use Linux with X windows.  Simple.  Painless.  REQUIRED to have\n|> X Windows if you want graphics!  This includes fancy word processors like\n|> doc, image viewers like xv, etc.\n|> \n\nSorry, Bryan, this is not quite correct. Remember the VGALIB package that comes\nwith Linux/SLS? It will switch to VGA 320x200x256 mode *without* Xwindows.\nSo at least it is *possible* to write a GIF viewer under Linux. However I don't\nthink that there exists a similar SVGA package, and viewing GIFs in 320x200 is\nnot very nice.\n\nBest Regards,\n\nArno\n\n-- \n--------------------------------------------------------------------------------\nArno Schaefer\t\t\t\tENSIMAG, 2e Annee\nEmail: schaefer@silene.imag.fr\nTel.: (33) 76 51 79 95\t\t\t:-)\n--------------------------------------------------------------------------------\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11297, "properties": {"category": "sci.med", "text": "From: amigan@cup.portal.com (Mike - Medwid)\nSubject: Emphysema question\nOrganization: The Portal System (TM)\nDistribution: na\nLines: 14\n\nA friend of mine is going in later this week for tests to see if has\nemphysema.  His lung capacity has decreased over time.  His father died\nof the disease.  He works in woodworking.  I believe he has a very\noccasional cigarette, perhaps one cigarette a day or even less.  He tells\nme this..I've never seen him light up.  He has some pretty healthy\nlife style habits, good diet, exercise, meditation, retreats, therapy\netc.  Anyhow..he is very concerned with this check up.  I know really\nnothing about the disease.  I believe it interferes with the lining\nof the lung being able to exchange oxygen.  \n\nIs a diagnosis of emphysema a death sentence?  If he were to give up smoking\nentirely would that better his chances for recovery?  What are some \nmodern therapies used in people with this disease?  I would appreciate \nany information.  Thanks.  amigan@cup.portal.com\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11298, "properties": {"category": "sci.med", "text": "From: nyeda@cnsvax.uwec.edu (David Nye)\nSubject: Re: Can't Breathe\nOrganization: University of Wisconsin Eau Claire\nLines: 15\n\n[reply to ron.roth@rose.com (ron roth)]\n \n>While you're right that the S vertebrae are attached to each other,\n>the sacrum, to my knowledge, *can* be adjusted either directly, or\n>by applying pressure on the pubic bone...\n \nRon, you're an endless source of misinformation!  There ARE no sacral\nvertebrae.  There is a bone called the sacrum at the end of the spine.\nIt is a single, solid bone except in a few patients who have a\nlumbarized S1 as a normal variant.  How do you adjust a solid bone,\nbreak it?  No, don't tell me, I don't want to know.\n \nDavid Nye (nyeda@cnsvax.uwec.edu).  Midelfort Clinic, Eau Claire WI\nThis is patently absurd; but whoever wishes to become a philosopher\nmust learn not to be frightened by absurdities. -- Bertrand Russell\n", "label": 13.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11299, "properties": {"category": "talk.politics.misc", "text": "From: walsh@optilink.COM (Mark Walsh)\nSubject: Re: Age of Consent == Child Molestation\nOrganization: Optilink Corporation, Petaluma, CA\nLines: 40\n\nIn article <C4tz28.Cpp@panix.com> roy@panix.com (Roy Radow) writes:\n>In <15148@optilink.COM> walsh@optilink.COM (Mark Walsh) writes:\n\n##It should be noted that NAMBLA has not been present in the\n##other 600 or so gay parades in the nation. While I view this\n##as an isolated event, I am very troubled by its reccurence.\n\n>I hope I'm not going to hate myself for getting involved in\n>this discussion, but I felt obliged to keep things factually\n>accurate.\n\n>Last year NAMBLA marched in the Pride Parades in Boston, New\n>York and San Francisco. It was not the first time we\n>participated in these parades and it will not be the last. (I\n>have marched with the NAMBLA contingent in New York, every\n>year, for more than a decade.)\n\nThank you for correcting the error in my post to the net.\nThis information came from a newspaper article that was\nfuzzy in my mind.  I can only wonder if there have been\nsimilar outcries about NAMBLA's presence in the parades\nof New York and Boston.\n\nYours in Liberation from Molestation,\n\nMark\n\nNorth American Micro-Biological Laboratories Association\nFor a packet containing a sample bulletin, publications list\nand membership information send $1.00 postage to...\n\nNote:  Sometimes I do the darndest things while trying to\nsquelch my desire to flame the living daylights out of\nsomebody for their beliefs and/or associations, especially\nif they are so genial...  Phil, take it away!  :-)\n-- \nMark Walsh (walsh@optilink) -- UUCP: uunet!optilink!walsh\nAmateur Radio: KM6XU@WX3K -- AOL: BigCookie@aol.com -- USCF: L10861\n\"What, me worry?\" - William M. Gaines, 1922-1992\n\"I'm gonna crush you!\" - Andre the Giant, 1946-1993\n", "label": 18.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11300, "properties": {"category": "alt.atheism", "text": "From: mathew <mathew@mantis.co.uk>\nSubject: Alt.Atheism FAQ: Introduction to Atheism\nSummary: Please read this file before posting to alt.atheism\nKeywords: FAQ, atheism\nExpires: Thu, 6 May 1993 12:22:45 GMT\nDistribution: world\nOrganization: Mantis Consultants, Cambridge. UK.\nSupersedes: <19930308134439@mantis.co.uk>\nLines: 646\n\nArchive-name: atheism/introduction\nAlt-atheism-archive-name: introduction\nLast-modified: 5 April 1993\nVersion: 1.2\n\n-----BEGIN PGP SIGNED MESSAGE-----\n\n                          An Introduction to Atheism\n                       by mathew <mathew@mantis.co.uk>\n\nThis article attempts to provide a general introduction to atheism.  Whilst I\nhave tried to be as neutral as possible regarding contentious issues, you\nshould always remember that this document represents only one viewpoint.  I\nwould encourage you to read widely and draw your own conclusions; some\nrelevant books are listed in a companion article.\n\nTo provide a sense of cohesion and progression, I have presented this article\nas an imaginary conversation between an atheist and a theist.  All the\nquestions asked by the imaginary theist are questions which have been cropped\nup repeatedly on alt.atheism since the newsgroup was created.  Some other\nfrequently asked questions are answered in a companion article.\n\nPlease note that this article is arguably slanted towards answering questions\nposed from a Christian viewpoint.  This is because the FAQ files reflect\nquestions which have actually been asked, and it is predominantly Christians\nwho proselytize on alt.atheism.\n\nSo when I talk of religion, I am talking primarily about religions such as\nChristianity, Judaism and Islam, which involve some sort of superhuman divine\nbeing.  Much of the discussion will apply to other religions, but some of it\nmay not.\n\n\"What is atheism?\"\n\nAtheism is characterized by an absence of belief in the existence of God.\nSome atheists go further, and believe that God does not exist.  The former is\noften referred to as the \"weak atheist\" position, and the latter as \"strong\natheism\".\n\nIt is important to note the difference between these two positions.  \"Weak\natheism\" is simple scepticism; disbelief in the existence of God.  \"Strong\natheism\" is a positive belief that God does not exist.  Please do not\nfall into the trap of assuming that all atheists are \"strong atheists\".\n\nSome atheists believe in the non-existence of all Gods; others limit their\natheism to specific Gods, such as the Christian God, rather than making\nflat-out denials.\n\n\"But isn't disbelieving in God the same thing as believing he doesn't exist?\"\n\nDefinitely not.  Disbelief in a proposition means that one does not believe\nit to be true.  Not believing that something is true is not equivalent to\nbelieving that it is false; one may simply have no idea whether it is true or\nnot.  Which brings us to agnosticism.\n\n\"What is agnosticism then?\"\n\nThe term 'agnosticism' was coined by Professor Huxley at a meeting of the\nMetaphysical Society in 1876.  He defined an agnostic as someone who\ndisclaimed (\"strong\") atheism and believed that the ultimate origin of things\nmust be some cause unknown and unknowable.\n\nThus an agnostic is someone who believes that we do not and cannot know for\nsure whether God exists.\n\nWords are slippery things, and language is inexact.  Beware of assuming that\nyou can work out someone's philosophical point of view simply from the fact\nthat she calls herself an atheist or an agnostic.  For example, many people\nuse agnosticism to mean \"weak atheism\", and use the word \"atheism\" only when\nreferring to \"strong atheism\".\n\nBeware also that because the word \"atheist\" has so many shades of meaning, it\nis very difficult to generalize about atheists.  About all you can say for\nsure is that atheists don't believe in God.  For example, it certainly isn't\nthe case that all atheists believe that science is the best way to find out\nabout the universe.\n\n\"So what is the philosophical justification or basis for atheism?\"\n\nThere are many philosophical justifications for atheism.  To find out why a\nparticular person chooses to be an atheist, it's best to ask her.\n\nMany atheists feel that the idea of God as presented by the major religions\nis essentially self-contradictory, and that it is logically impossible that\nsuch a God could exist.  Others are atheists through scepticism, because they\nsee no evidence that God exists.\n\n\"But isn't it impossible to prove the non-existence of something?\"\n\nThere are many counter-examples to such a statement.  For example, it is\nquite simple to prove that there does not exist a prime number larger than\nall other prime numbers.  Of course, this deals with well-defined objects\nobeying well-defined rules.  Whether Gods or universes are similarly\nwell-defined is a matter for debate.\n\nHowever, assuming for the moment that the existence of a God is not provably\nimpossible, there are still subtle reasons for assuming the non-existence of\nGod.  If we assume that something does not exist, it is always possible to\nshow that this assumption is invalid by finding a single counter-example.\n\nIf on the other hand we assume that something does exist, and if the thing in\nquestion is not provably impossible, showing that the assumption is invalid\nmay require an exhaustive search of all possible places where such a thing\nmight be found, to show that it isn't there.  Such an exhaustive search is\noften impractical or impossible.  There is no such problem with largest\nprimes, because we can prove that they don't exist.\n\nTherefore it is generally accepted that we must assume things do not exist\nunless we have evidence that they do.  Even theists follow this rule most of\nthe time; they don't believe in unicorns, even though they can't conclusively\nprove that no unicorns exist anywhere.\n\nTo assume that God exists is to make an assumption which probably cannot be\ntested.  We cannot make an exhaustive search of everywhere God might be to\nprove that he doesn't exist anywhere.  So the sceptical atheist assumes by\ndefault that God does not exist, since that is an assumption we can test.\n\nThose who profess strong atheism usually do not claim that no sort of God\nexists; instead, they generally restrict their claims so as to cover\nvarieties of God described by followers of various religions.  So whilst it\nmay be impossible to prove conclusively that no God exists, it may be\npossible to prove that (say) a God as described by a particular religious\nbook does not exist.  It may even be possible to prove that no God described\nby any present-day religion exists.\n\nIn practice, believing that no God described by any religion exists is very\nclose to believing that no God exists.  However, it is sufficiently different\nthat counter-arguments based on the impossibility of disproving every kind of\nGod are not really applicable.\n\n\"But what if God is essentially non-detectable?\"\n\nIf God interacts with our universe in any way, the effects of his interaction\nmust be measurable.  Hence his interaction with our universe must be\ndetectable.\n\nIf God is essentially non-detectable, it must therefore be the case that he\ndoes not interact with our universe in any way.  Many atheists would argue\nthat if God does not interact with our universe at all, it is of no\nimportance whether he exists or not.\n\nIf the Bible is to be believed, God was easily detectable by the Israelites.\nSurely he should still be detectable today?\n\nNote that I am not demanding that God interact in a scientifically\nverifiable, physical way.  It must surely be possible to perceive some\neffect caused by his presence, though; otherwise, how can I distinguish him\nfrom all the other things that don't exist?\n\n\"OK, you may think there's a philosophical justification for atheism, but\n isn't it still a religious belief?\"\n\nOne of the most common pastimes in philosophical discussion is \"the\nredefinition game\".  The cynical view of this game is as follows:\n\nPerson A begins by making a contentious statement.  When person B points out\nthat it can't be true, person A gradually re-defines the words he used in the\nstatement until he arrives at something person B is prepared to accept.  He\nthen records the statement, along with the fact that person B has agreed to\nit, and continues.  Eventually A uses the statement as an \"agreed fact\", but\nuses his original definitions of all the words in it rather than the obscure\nredefinitions originally needed to get B to agree to it.  Rather than be seen\nto be apparently inconsistent, B will tend to play along.\n\nThe point of this digression is that the answer to the question \"Isn't\natheism a religious belief?\" depends crucially upon what is meant by\n\"religious\".  \"Religion\" is generally characterized by belief in a superhuman\ncontrolling power -- especially in some sort of God -- and by faith and\nworship.\n\n[ It's worth pointing out in passing that some varieties of Buddhism are not\n  \"religion\" according to such a definition. ]\n\nAtheism is certainly not a belief in any sort of superhuman power, nor is it\ncategorized by worship in any meaningful sense.  Widening the definition of\n\"religious\" to encompass atheism tends to result in many other aspects of\nhuman behaviour suddenly becoming classed as \"religious\" as well -- such as\nscience, politics, and watching TV.\n\n\"OK, so it's not a religion.  But surely belief in atheism (or science) is\n still just an act of faith, like religion is?\"\n\nFirstly, it's not entirely clear that sceptical atheism is something one\nactually believes in.\n\nSecondly, it is necessary to adopt a number of core beliefs or assumptions to\nmake some sort of sense out of the sensory data we experience.  Most atheists\ntry to adopt as few core beliefs as possible; and even those are subject to\nquestioning if experience throws them into doubt.\n\nScience has a number of core assumptions.  For example, it is generally\nassumed that the laws of physics are the same for all observers.  These are\nthe sort of core assumptions atheists make.  If such basic ideas are called\n\"acts of faith\", then almost everything we know must be said to be based on\nacts of faith, and the term loses its meaning.\n\nFaith is more often used to refer to complete, certain belief in something.\nAccording to such a definition, atheism and science are certainly not acts of\nfaith.  Of course, individual atheists or scientists can be as dogmatic as\nreligious followers when claiming that something is \"certain\".  This is not a\ngeneral tendency, however; there are many atheists who would be reluctant to\nstate with certainty that the universe exists.\n\nFaith is also used to refer to belief without supporting evidence or proof.\nSceptical atheism certainly doesn't fit that definition, as sceptical atheism\nhas no beliefs.  Strong atheism is closer, but still doesn't really match, as\neven the most dogmatic atheist will tend to refer to experimental data (or\nthe lack of it) when asserting that God does not exist.\n\n\"If atheism is not religious, surely it's anti-religious?\"\n\nIt is an unfortunate human tendency to label everyone as either \"for\" or\n\"against\", \"friend\" or \"enemy\".  The truth is not so clear-cut.\n\nAtheism is the position that runs logically counter to theism; in that sense,\nit can be said to be \"anti-religion\".  However, when religious believers\nspeak of atheists being \"anti-religious\" they usually mean that the atheists\nhave some sort of antipathy or hatred towards theists.\n\nThis categorization of atheists as hostile towards religion is quite unfair.\nAtheist attitudes towards theists in fact cover a broad spectrum.\n\nMost atheists take a \"live and let live\" attitude.  Unless questioned, they\nwill not usually mention their atheism, except perhaps to close friends.  Of\ncourse, this may be in part because atheism is not \"socially acceptable\" in\nmany countries.\n\nA few atheists are quite anti-religious, and may even try to \"convert\" others\nwhen possible.  Historically, such anti-religious atheists have made little\nimpact on society outside the Eastern Bloc countries.\n\n(To digress slightly: the Soviet Union was originally dedicated to separation\nof church and state, just like the USA.  Soviet citizens were legally free to\nworship as they wished.  The institution of \"state atheism\" came about when\nStalin took control of the Soviet Union and tried to destroy the churches in\norder to gain complete power over the population.)\n\nSome atheists are quite vocal about their beliefs, but only where they see\nreligion encroaching on matters which are not its business -- for example,\nthe government of the USA.  Such individuals are usually concerned that\nchurch and state should remain separate.\n\n\"But if you don't allow religion to have a say in the running of the state,\n surely that's the same as state atheism?\"\n\nThe principle of the separation of church and state is that the state shall\nnot legislate concerning matters of religious belief.  In particular, it\nmeans not only that the state cannot promote one religion at the expense of\nanother, but also that it cannot promote any belief which is religious in\nnature.\n\nReligions can still have a say in discussion of purely secular matters.  For\nexample, religious believers have historically been responsible for\nencouraging many political reforms.  Even today, many organizations\ncampaigning for an increase in spending on foreign aid are founded as\nreligious campaigns.  So long as they campaign concerning secular matters,\nand so long as they do not discriminate on religious grounds, most atheists\nare quite happy to see them have their say.\n\n\"What about prayer in schools? If there's no God, why do you care if people\n pray?\"\n\nBecause people who do pray are voters and lawmakers, and tend to do things\nthat those who don't pray can't just ignore.  Also, Christian prayer in\nschools is intimidating to non-Christians, even if they are told that they\nneed not join in.  The diversity of religious and non-religious belief means\nthat it is impossible to formulate a meaningful prayer that will be\nacceptable to all those present at any public event.\n\nAlso, non-prayers tend to have friends and family who pray.  It is reasonable\nto care about friends and family wasting their time, even without other\nmotives.\n\n\"You mentioned Christians who campaign for increased foreign aid.  What about\n atheists?  Why aren't there any atheist charities or hospitals?  Don't\n atheists object to the religious charities?\"\n\nThere are many charities without religious purpose that atheists can\ncontribute to.  Some atheists contribute to religious charities as well, for\nthe sake of the practical good they do.  Some atheists even do voluntary work\nfor charities founded on a theistic basis.\n\nMost atheists seem to feel that atheism isn't worth shouting about in\nconnection with charity.  To them, atheism is just a simple, obvious everyday\nmatter, and so is charity.  Many feel that it's somewhat cheap, not to say\nself-righteous, to use simple charity as an excuse to plug a particular set\nof religious beliefs.\n\nTo \"weak\" atheists, building a hospital to say \"I do not believe in God\" is a\nrather strange idea; it's rather like holding a party to say \"Today is not my\nbirthday\".  Why the fuss?  Atheism is rarely evangelical.\n\n\"You said atheism isn't anti-religious.  But is it perhaps a backlash against\n one's upbringing, a way of rebelling?\"\n\nPerhaps it is, for some.  But many people have parents who do not attempt to\nforce any religious (or atheist) ideas upon them, and many of those people\nchoose to call themselves atheists.\n\nIt's also doubtless the case that some religious people chose religion as a\nbacklash against an atheist upbringing, as a way of being different.  On the\nother hand, many people choose religion as a way of conforming to the\nexpectations of others.\n\nOn the whole, we can't conclude much about whether atheism or religion are\nbacklash or conformism; although in general, people have a tendency to go\nalong with a group rather than act or think independently.\n\n\"How do atheists differ from religious people?\"\n\nThey don't believe in God.  That's all there is to it.\n\nAtheists may listen to heavy metal -- backwards, even -- or they may prefer a\nVerdi Requiem, even if they know the words.  They may wear Hawaiian shirts,\nthey may dress all in black, they may even wear orange robes.  (Many\nBuddhists lack a belief in any sort of God.)  Some atheists even carry a copy\nof the Bible around -- for arguing against, of course!\n\nWhoever you are, the chances are you have met several atheists without\nrealising it.  Atheists are usually unexceptional in behaviour and\nappearance.\n\n\"Unexceptional? But aren't atheists less moral than religious people?\"\n\nThat depends.  If you define morality as obedience to God, then of course\natheists are less moral as they don't obey any God.  But usually when one\ntalks of morality, one talks of what is acceptable (\"right\") and unacceptable\n(\"wrong\") behaviour within society.\n\nHumans are social animals, and to be maximally successful they must\nco-operate with each other.  This is a good enough reason to discourage most\natheists from \"anti-social\" or \"immoral\" behaviour, purely for the purposes\nof self-preservation.\n\nMany atheists behave in a \"moral\" or \"compassionate\" way simply because they\nfeel a natural tendency to empathize with other humans.  So why do they care\nwhat happens to others?  They don't know, they simply are that way.\n\nNaturally, there are some people who behave \"immorally\" and try to use\natheism to justify their actions.  However, there are equally many people who\nbehave \"immorally\" and then try to use religious beliefs to justify their\nactions.  For example:\n\n  \"Here is a trustworthy saying that deserves full acceptance: Jesus Christ\n   came into the world to save sinners...  But for that very reason, I was\n   shown mercy so that in me...  Jesus Christ might display His unlimited\n   patience as an example for those who would believe in him and receive\n   eternal life.  Now to the king eternal, immortal, invisible, the only God,\n   be honor and glory forever and ever.\"\n\nThe above quote is from a statement made to the court on February 17th 1992\nby Jeffrey Dahmer, the notorious cannibal serial killer of Milwaukee,\nWisconsin.  It seems that for every atheist mass-murderer, there is a\nreligious mass-murderer.  But what of more trivial morality?\n\n   A survey conducted by the Roper Organization found that behavior\n   deteriorated after \"born again\" experiences.  While only 4% of respondents\n   said they had driven intoxicated before being \"born again,\" 12% had done\n   so after conversion.  Similarly, 5% had used illegal drugs before\n   conversion, 9% after.  Two percent admitted to engaging in illicit sex\n   before salvation; 5% after.\n                                [\"Freethought Today\", September 1991, p. 12.]\n\nSo it seems that at best, religion does not have a monopoly on moral\nbehaviour.\n\n\"Is there such a thing as atheist morality?\"\n\nIf you mean \"Is there such a thing as morality for atheists?\", then the\nanswer is yes, as explained above.  Many atheists have ideas about morality\nwhich are at least as strong as those held by religious people.\n\nIf you mean \"Does atheism have a characteristic moral code?\", then the answer\nis no.  Atheism by itself does not imply anything much about how a person\nwill behave.  Most atheists follow many of the same \"moral rules\" as theists,\nbut for different reasons.  Atheists view morality as something created by\nhumans, according to the way humans feel the world 'ought' to work, rather\nthan seeing it as a set of rules decreed by a supernatural being.\n\n\"Then aren't atheists just theists who are denying God?\"\n\nA study by the Freedom From Religion Foundation found that over 90% of the\natheists who responded became atheists because religion did not work for\nthem.  They had found that religious beliefs were fundamentally incompatible\nwith what they observed around them.\n\nAtheists are not unbelievers through ignorance or denial; they are\nunbelievers through choice.  The vast majority of them have spent time\nstudying one or more religions, sometimes in very great depth.  They have\nmade a careful and considered decision to reject religious beliefs.\n\nThis decision may, of course, be an inevitable consequence of that\nindividual's personality.  For a naturally sceptical person, the choice\nof atheism is often the only one that makes sense, and hence the only\nchoice that person can honestly make.\n\n\"But don't atheists want to believe in God?\"\n\nAtheists live their lives as though there is nobody watching over them.  Many\nof them have no desire to be watched over, no matter how good-natured the\n\"Big Brother\" figure might be.\n\nSome atheists would like to be able to believe in God -- but so what? Should\none believe things merely because one wants them to be true?  The risks of\nsuch an approach should be obvious.  Atheists often decide that wanting to\nbelieve something is not enough; there must be evidence for the belief.\n\n\"But of course atheists see no evidence for the existence of God -- they are\n unwilling in their souls to see!\"\n\nMany, if not most atheists were previously religious.  As has been explained\nabove, the vast majority have seriously considered the possibility that God\nexists.  Many atheists have spent time in prayer trying to reach God.\n\nOf course, it is true that some atheists lack an open mind; but assuming that\nall atheists are biased and insincere is offensive and closed-minded.\nComments such as \"Of course God is there, you just aren't looking properly\"\nare likely to be viewed as patronizing.\n\nCertainly, if you wish to engage in philosophical debate with atheists it is\nvital that you give them the benefit of the doubt and assume that they are\nbeing sincere if they say that they have searched for God.  If you are not\nwilling to believe that they are basically telling the truth, debate is\nfutile.\n\n\"Isn't the whole of life completely pointless to an atheist?\"\n\nMany atheists live a purposeful life.  They decide what they think gives\nmeaning to life, and they pursue those goals.  They try to make their lives\ncount, not by wishing for eternal life, but by having an influence on other\npeople who will live on.  For example, an atheist may dedicate his life to\npolitical reform, in the hope of leaving his mark on history.\n\nIt is a natural human tendency to look for \"meaning\" or \"purpose\" in random\nevents.  However, it is by no means obvious that \"life\" is the sort of thing\nthat has a \"meaning\".\n\nTo put it another way, not everything which looks like a question is actually\na sensible thing to ask.  Some atheists believe that asking \"What is the\nmeaning of life?\" is as silly as asking \"What is the meaning of a cup of\ncoffee?\".  They believe that life has no purpose or meaning, it just is.\n\n\"So how do atheists find comfort in time of danger?\"\n\nThere are many ways of obtaining comfort; from family, friends, or even pets.\nOr on a less spiritual level, from food or drink or TV.\n\nThat may sound rather an empty and vulnerable way to face danger, but so\nwhat?  Should individuals believe in things because they are comforting, or\nshould they face reality no matter how harsh it might be?\n\nIn the end, it's a decision for the individual concerned.  Most atheists are\nunable to believe something they would not otherwise believe merely because\nit makes them feel comfortable.  They put truth before comfort, and consider\nthat if searching for truth sometimes makes them feel unhappy, that's just\nhard luck.\n\n\"Don't atheists worry that they might suddenly be shown to be wrong?\"\n\nThe short answer is \"No, do you?\"\n\nMany atheists have been atheists for years.  They have encountered many\narguments and much supposed evidence for the existence of God, but they have\nfound all of it to be invalid or inconclusive.\n\nThousands of years of religious belief haven't resulted in any good proof of\nthe existence of God.  Atheists therefore tend to feel that they are unlikely\nto be proved wrong in the immediate future, and they stop worrying about it.\n\n\"So why should theists question their beliefs? Don't the same arguments\n apply?\"\n\nNo, because the beliefs being questioned are not similar.  Weak atheism is\nthe sceptical \"default position\" to take; it asserts nothing.  Strong atheism\nis a negative belief.  Theism is a very strong positive belief.\n\nAtheists sometimes also argue that theists should question their beliefs\nbecause of the very real harm they can cause -- not just to the believers,\nbut to everyone else.\n\n\"What sort of harm?\"\n\nReligion represents a huge financial and work burden on mankind.  It's not\njust a matter of religious believers wasting their money on church buildings;\nthink of all the time and effort spent building churches, praying, and so on.\nImagine how that effort could be better spent.\n\nMany theists believe in miracle healing.  There have been plenty of instances\nof ill people being \"healed\" by a priest, ceasing to take the medicines\nprescribed to them by doctors, and dying as a result.  Some theists have died\nbecause they have refused blood transfusions on religious grounds.\n\nIt is arguable that the Catholic Church's opposition to birth control -- and\ncondoms in particular -- is increasing the problem of overpopulation in many\nthird-world countries and contributing to the spread of AIDS world-wide.\n\nReligious believers have been known to murder their children rather than\nallow their children to become atheists or marry someone of a different\nreligion.\n\n\"Those weren't REAL believers.  They just claimed to be believers as some\n sort of excuse.\"\n\nWhat makes a real believer?  There are so many One True Religions it's hard\nto tell.  Look at Christianity: there are many competing groups, all\nconvinced that they are the only true Christians.  Sometimes they even fight\nand kill each other.  How is an atheist supposed to decide who's a REAL\nChristian and who isn't, when even the major Christian churches like the\nCatholic Church and the Church of England can't decide amongst themselves?\n\nIn the end, most atheists take a pragmatic view, and decide that anyone who\ncalls himself a Christian, and uses Christian belief or dogma to justify his\nactions, should be considered a Christian.  Maybe some of those Christians\nare just perverting Christian teaching for their own ends -- but surely if\nthe Bible can be so readily used to support un-Christian acts it can't be\nmuch of a moral code? If the Bible is the word of God, why couldn't he have\nmade it less easy to misinterpret? And how do you know that your beliefs\naren't a perversion of what your God intended?\n\nIf there is no single unambiguous interpretation of the Bible, then why\nshould an atheist take one interpretation over another just on your say-so?\nSorry, but if someone claims that he believes in Jesus and that he murdered\nothers because Jesus and the Bible told him to do so, we must call him a\nChristian.\n\n\"Obviously those extreme sorts of beliefs should be questioned.  But since\n nobody has ever proved that God does not exist, it must be very unlikely\n that more basic religious beliefs, shared by all faiths, are nonsense.\"\n\nThat does not hold, because as was pointed out at the start of this dialogue,\npositive assertions concerning the existence of entities are inherently much\nharder to disprove than negative ones.  Nobody has ever proved that unicorns\ndon't exist, but that doesn't make it unlikely that they are myths.\n\nIt is therefore much more valid to hold a negative assertion by default than\nit is to hold a positive assertion by default.  Of course, \"weak\" atheists\nwould argue that asserting nothing is better still.\n\n\"Well, if atheism's so great, why are there so many theists?\"\n\nUnfortunately, the popularity of a belief has little to do with how \"correct\"\nit is, or whether it \"works\"; consider how many people believe in astrology,\ngraphology, and other pseudo-sciences.\n\nMany atheists feel that it is simply a human weakness to want to believe in\ngods.  Certainly in many primitive human societies, religion allows the\npeople to deal with phenomena that they do not adequately understand.\n\nOf course, there's more to religion than that.  In the industrialized world,\nwe find people believing in religious explanations of phenomena even when\nthere are perfectly adequate natural explanations.  Religion may have started\nas a means of attempting to explain the world, but nowadays it serves other\npurposes as well.\n\n\"But so many cultures have developed religions.  Surely that must say\n something?\"\n\nNot really.  Most religions are only superficially similar; for example, it's\nworth remembering that religions such as Buddhism and Taoism lack any sort of\nconcept of God in the Christian sense.\n\nOf course, most religions are quick to denounce competing religions, so it's\nrather odd to use one religion to try and justify another.\n\n\"What about all the famous scientists and philosophers who have concluded\n that God exists?\"\n\nFor every scientist or philosopher who believes in a god, there is one who\ndoes not.  Besides, as has already been pointed out, the truth of a belief is\nnot determined by how many people believe it.  Also, it is important to\nrealize that atheists do not view famous scientists or philosophers in the\nsame way that theists view their religious leaders.\n\nA famous scientist is only human; she may be an expert in some fields, but\nwhen she talks about other matters her words carry no special weight.  Many\nrespected scientists have made themselves look foolish by speaking on\nsubjects which lie outside their fields of expertise.\n\n\"So are you really saying that widespread belief in religion indicates\n nothing?\"\n\nNot entirely.  It certainly indicates that the religion in question has\nproperties which have helped it so spread so far.\n\nThe theory of memetics talks of \"memes\" -- sets of ideas which can propagate\nthemselves between human minds, by analogy with genes.  Some atheists view\nreligions as sets of particularly successful parasitic memes, which spread by\nencouraging their hosts to convert others.  Some memes avoid destruction by\ndiscouraging believers from questioning doctrine, or by using peer pressure\nto keep one-time believers from admitting that they were mistaken.  Some\nreligious memes even encourage their hosts to destroy hosts controlled by\nother memes.\n\nOf course, in the memetic view there is no particular virtue associated with\nsuccessful propagation of a meme.  Religion is not a good thing because of\nthe number of people who believe it, any more than a disease is a good thing\nbecause of the number of people who have caught it.\n\n\"Even if religion is not entirely true, at least it puts across important\n messages.  What are the fundamental messages of atheism?\"\n\nThere are many important ideas atheists promote.  The following are just a\nfew of them; don't be surprised to see ideas which are also present in some\nreligions.\n\n   There is more to moral behaviour than mindlessly following rules.\n\n   Be especially sceptical of positive claims.\n\n   If you want your life to have some sort of meaning, it's up to you to\n   find it.\n\n   Search for what is true, even if it makes you uncomfortable.\n\n   Make the most of your life, as it's probably the only one you'll have.\n\n   It's no good relying on some external power to change you; you must change\n   yourself.\n\n   Just because something's popular doesn't mean it's good.\n\n   If you must assume something, assume something it's easy to test.\n\n   Don't believe things just because you want them to be true.\n\nand finally (and most importantly):\n\n   All beliefs should be open to question.\n\nThanks for taking the time to read this article.\n\n\nmathew\n\n-----BEGIN PGP SIGNATURE-----\nVersion: 2.2\n\niQCVAgUBK8AjRXzXN+VrOblFAQFSbwP+MHePY4g7ge8Mo5wpsivX+kHYYxMErFAO\n7ltVtMVTu66Nz6sBbPw9QkbjArbY/S2sZ9NF5htdii0R6SsEyPl0R6/9bV9okE/q\nnihqnzXE8pGvLt7tlez4EoeHZjXLEFrdEyPVayT54yQqGb4HARbOEHDcrTe2atmP\nq0Z4hSSPpAU=\n=q2V5\n-----END PGP SIGNATURE-----\n\nFor information about PGP 2.2, send mail to pgpinfo@mantis.co.uk.\n\u00ff\n", "label": 0.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11301, "properties": {"category": "soc.religion.christian", "text": "From: jayne@mmalt.guild.org (Jayne Kulikauskas)\nSubject: quality of Catholic liturgy\nOrganization: Kulikauskas home\nLines: 34\n\njemurray@magnus.acs.ohio-state.edu (John E Murray) writes:\n\n> I would like the opinion of netters on a subject that has been bothering my\n> wife and me lately: liturgy, in particular, Catholic liturgy.  In the last fe\n> years it seems that there are more and more ad hoc events during Mass.  It's\n> driving me crazy!  The most grace-filled aspect of a liturgical tradition is\n> that what happens is something we _all_ do together, because we all know how \n> do it.  Led by the priest, of course, which makes it a kind of dialogue we \n> present to God.  But the best Masses I've been to were participatory prayers.\n\nOn the one hand there are advantages to having the liturgy stay the \nsame.  John has described some of these.  On the other hand, some people \nseem to start tuning out `the same old words' and pay attention better \nwhen things get changed around.  I think innovative priests and liturgy \ncommittees are trying to get our attention and make things more \nmeaningful for us.  It drives me crazy too. \n\nDifferent people have differing preferences and needs in liturgy.  My \nlocal parish is innovative.  I prefer to go to Mass at the next parish \nover.  Sometimes we don't have the option of attending a Mass in the \nstyle which best suits us.  John put a smiley on it but to \"just offer \nit up\" probably is the solution.\n\nA related issue, that it sounds like John does not have to deal with, is \nthat spouses may have different liturgical tastes.  My husband does like \ninnovative litury.  It is a challenge to meet both of our spiritual \nneeds without just going our separate ways.  When you include the factor \nof also trying to satisfy our children's needs, things get pretty \ncomplicated.\n\nOne thing to remember is that even the most uncongenial Mass is still \nMass.\n\nJayne Kulikauskas/ jayne@mmalt.guild.org\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11302, "properties": {"category": "talk.politics.guns", "text": "From: diederic@spot.Colorado.EDU (Andrew Diederich)\nSubject: Re: Ax the ATF\nNntp-Posting-Host: spot.colorado.edu\nOrganization: University of Colorado, Boulder\nDistribution: usa\nLines: 19\n\n \n>A few comments on the ATF's botched handling of this case:\n \n>Dan S.\n\n  And another one:\n\nHasn't enyone heard of a leader's recon?  This is when the leader of the\nassult goes and looks at the objective to see if anything has changed that\nwould affect the mission.  Even the Freshman cadets here in ROTCland\nknow about them.  Mostly because they know it as the part where they \nlie on the cold ground for an hour or so, but they've heard about it.\nMaybe the ATF should have hired out to the local ROTC guys!\n\n\n-- \nAndrew Diederich                    diederic@spot.colorado.edu\n\nThese opinions are only mine on alternate Tuesdays.\n", "label": 16.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.534+0000", "event": "documents", "entityId": 11303, "properties": {"category": "comp.graphics", "text": "From: crash@ckctpa.UUCP (Frank \"Crash\" Edwards)\nSubject: Re: forms for curses\nReply-To: crash%ckctpa@myrddin.sybus.com (Frank \"Crash\" Edwards)\nOrganization: Edwards & Edwards Consulting\nLines: 40\n\nNote the Followup-To: header ...\n\nsteelem@rintintin.Colorado.EDU (STEELE MARK A) writes:\n>Is there a collection of forms routines that can be used with curses?\n>If so where is it located?\n\nOn my SVR4 Amiga Unix box, I've got -lform, -lmenu, and -lpanel for\nuse with the curses library.  Guess what they provide? :-)\n\nUnix Press, ie. Prentice-Hall, has a programmer's guide for these\ntools, referred to as the FMLI (Forms Mgmt Language Interface) and\nETI (Extended Terminal Interface), now in it's 2nd edition.  It is\nISBN 0-13-020637-7.\n\nParaphrased from the outside back cover:\n\n    FMLI is a high-level programming tool for creating menus, forms,\n    and text frames.  ETI is a set of screen management library\n    subroutines that promote fast development of application programs\n    for window, panel, menu, and form manipulation.\n\nThe FMLI is a shell package which reads ascii text files and produces\nscreen displays for data entry and presentation.  It consists of a\n\"shell-like\" environment of the \"fmli\" program and it's database\nfiles.  It is section 1F in the Unix Press manual.\n\nThe ETI are subroutines, part of the 3X manual section, provide\nsupport for a multi-window capability on an ordinary ascii terminal\nwith controls built on top of the curses library.\n\n>Thanks\n>-Mark Steele\n>steelem@rintintin.colorado.edu\n\n-- \nFrank \"Crash\" Edwards          Edwards & Edwards Consulting\nVoice: 813/786-3675            crash%ckctpa@myrddin.sybus.com, but please\nData:  813/787-3675            don't ask UUNET to route it -- it's sloooow.\n    There will be times in life when everyone you meet smiles and pats you on\n    the back and tells you how great you are ... so hold on to your wallet.\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11304, "properties": {"category": "comp.graphics", "text": "From: khan0095@nova.gmi.edu (Mohammad Razi Khan)\nSubject: Looking for a good book for beginners\nOrganization: GMI Engineering&Management Institute, Flint, MI\nLines: 10\n\nI wanted to know if any of you out there can recommend a good\nbook about graphics, still and animated, and in VGA/SVGA.\n\nThanks in advance\n\n--\nMohammad R. Khan                /    khan0095@nova.gmi.edu\nAfter July '93, please send mail to  mkhan@nyx.cs.du.edu\n\n\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11305, "properties": {"category": "soc.religion.christian", "text": "From: Eugene.Bigelow@ebay.sun.com (Geno )\nSubject: Re: The doctrine of Original Sin\nReply-To: Eugene.Bigelow@ebay.sun.com\nOrganization: Sun Microsystems, Inc.\nLines: 14\n\n[4) \"Nothing unclean shall enter [heaven]\" (Rev. 21.27). Therefore,\nbabies are born in such a state that should they die, they are cuf off\nfrom God and put in hell, which is exactly the doctrine of St. Augustine\nand St. Thomas.  Of coures, having only original sins on thier souls,\nthey suffer the lightest punishment, the loss of the vision oand\npresence of God, but that does not change the undeniable fact that they\ncannot possibly come to a forgivenss of original sin, nor can they\ninherit eternal life.  \"That,\" as St. Augustine said, \"Is what the\nPelagian heretics taught.\"  Which is why he said later, \"If you want to\nbe a Christian, do not teach that unbaptized infants can come to a\nforgivenss of original sin.\"]\n\nDoesn't the Bible say that God is a fair god?  If this is true, how can this\npossibly be fair to the infants?\n", "label": 15.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11306, "properties": {"category": "comp.os.ms-windows.misc", "text": "From: samuell@cis.uab.edu ('s)\nSubject: WINHELP.EXE virus?\nOrganization: CIS, Univ of Alabama at Birmingham\nLines: 15\n\n\nIs anyone familiar with a virus that infects the WINHELP.EXE file?\n\nI have recently noticed some unusual system behavior and ran\nNorton AntiVirus for WINDOWS.  It indicated a possible unknown\nvirus in the WINHELP.EXE file in both the MWINDOWS and WINOS2\ndirectories.  Neither file changed since I installed my OS/2\nsystem in January as far as I know.\n\nAny information about this possible virus and suggestions on\nremedies would be greatly appreciated.\n\n\nBobb Samuell\nsamuell@cis.uab.edu\n", "label": 2.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11307, "properties": {"category": "comp.sys.ibm.pc.hardware", "text": "From: epwong@nyx.cs.du.edu (Elliott Wong)\nSubject: Help! KA9Q/Ethernet\nOrganization: University of Denver, Dept. of Math & Comp. Sci.\nFollow-Ups: poster\nLines: 19\n\nDear All,\n\n\tI am trying to get my standard connection going with KA9Q (PA0GRI113016)\nand a GVC NIC-2000 ethernet card. I know that my router and modem is\nworking because I am able to ping, finger, and even telnetd with it.\n\n\tHowever, after a time, it crashes randomly. Help would be\ngreatly appreciated.\n\n\tI suspect that there is a hardware conflict in the PC.  I am\nrunning with a 386SX/33, 2 MB Ram.  The Ethernet card is configured\nfor IRQ 5, ports 0x360-0x37F. \n\n\tThanks in advance. I know that it's not much to go on, but I\ndon't even know what the questions to ask are, sorry.\n\nPlease send mail.\n\nElliott\n", "label": 3.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11308, "properties": {"category": "rec.sport.hockey", "text": "From: adams@hunter.unr.edu (Brian Adams)\nSubject: Re: In memoriam: Dan Kelly and Danny Gallivan\nOrganization: University of Nevada, Reno  Department of Computer Science\nDistribution: na\nLines: 30\n\nIn article <1993Apr5.194440.18546@ists.ists.ca> dchhabra@stpl.ists.ca (Deepak Chhabra) writes:\n>In article <burke.1-290393150052@burkemac.oshag.nd.edu> burke.1@nd.edu (R. P. Burke) writes:\n>>When talking about hockey broadcasters, let's give a moment of silence to\n>>remember the St. Louis Blues' great, Dan Kelly. (Many of you may have heard\n>>him in the late 60s and early 70s on CBS.) He used to do Hockey Night In\n>>Canada intermissions, with another recently deceased great, Danny Gallivan\n>>of the Canadiens.\n>\n\nI *loved* Dan Kelly!  He was on USA when I first got hooked on Hockey back\nin 1980 or so.  No, he wasn't always spot on top of the play, and he\nwasn't overly cute, but those pipes!  That lusty, barrel chested, voice!\nNo pipsqueak was he (unlike some fellas we know!)\n\nI rode into hockey mania on the coattails of Gretzky and the Boys on the\nBus.  My first Finals saw the Islanders sweep them.  But I'll never\nforget the night, a year later, when the Oilers closed it out at home in\nthe pandemonium, the smoke from a million sparklers, the long empty-net\ngoal near the end, and Dan Kelly letting the crowd's reaction tell the\nstory for a few long seconds, then that voice barking through the din\n\"Dave Lumley ... sews it up for Edmonton!\"  It sounds stupid, but that\nearly (for me) hockey memory will always bring a thrill.  Since then\nI've grown a lot more jaded about the game, but I was really saddened\nby Dan Kelly's passing.  He was one of the good guys.\n\nBrian Adams\nReno\n\n\n\n", "label": 10.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11309, "properties": {"category": "comp.sys.mac.hardware", "text": "From: tthiel@cs.uiuc.edu (Terry Thiel)\nSubject: Re: Help! How to test SIMMs?\nOrganization: University of Illinois, Dept. of Comp. Sci., Urbana, IL\nLines: 13\n\nytwu@magnus.acs.ohio-state.edu (Yih-Tyng Wu) writes:\n>Hello,\n>  I just got some SIMMs,  at least one of which does not work. I don't know if \n>there is a software that can test SIMMs thoroughly or I could just rely on the \n>RAM test performed by my computer during the start up. When I installed a dead \n>SIMM into an LC or  an LC II, there would be a strange music and no display on \n>the screen. Why? I need your help! Thanks in advance\n>Yih-Tyng\n>ytwu@magnus.acs.ohio-state.edu\n\nThere is a shareware ramchecker that I think is called ramcheck.  it is\navailable at most ftp sites such as umich and sumex.\n-Terry\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11310, "properties": {"category": "comp.graphics", "text": "From: glp@phillson.cray.com (Gordon Phillips)\nSubject: Lyon lamb minivas-2 control of abekas A66\nOriginator: glp@phillson\nLines: 12\nNntp-Posting-Host: phillson.cray.com\nOrganization: Cray Research, Inc.\n\n\nWe have a minivas-2 and we want to record to an Abekas A66.\nWe have most of the functions working but when we go to\nset up a record the minivas hangs. We are sending the\nabekas SMPTE time code. Does anyone have code we can\ncompare to what we have done and is there and ftp site\nfor minivas and abekas code.\n\nGordon Phillips\nglp@cray.com\n-- \nGordon Phillips - glp@cray.com\n", "label": 1.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11311, "properties": {"category": "misc.forsale", "text": "From: pchang@ic.sunysb.edu (Pong Chang)\nSubject: Video Title Maker for sale\nNntp-Posting-Host: libws4.ic.sunysb.edu\nOrganization: State University of New York at Stony Brook\nLines: 37\n\nVideonics Title maker System\n============================\nabout 2 monthes old, used only once.\nincludes:\n\n1) character generator model # TM-1\n\trez: 720x480\n \t8000 available chars.\n\t12 fonts\n\tstereo sound\n\tover a million different colors available.\n\t20 special effects\n\tfull keyboard design\n\tmail me for more details.\n\t\n2) Thums Up Video Editor model # TU-1\n\tmarks differnent sections of tape as \n\t\t\"thumbs up\" or \"thumbs down\"\n\t\tso you can skip the bad parts on tape.\n\tbuilt-in video enhancer for copying tapes or viewing them.\n\tautomatic fader (switchable)\n\tuse in combination w/ the above unit\n\nboth units in EXCELLENT condition, comes with all docs, unregistered\nwarranty cards.\n\nJ&R music world sells these for $399 and $229, respectively.\n i am asking $500 for both units.\n\nemail me at pchang@ic.sunysb.edu if you are interested.\n-- \n**********************************************************************\nC_ommon  \tpchang@ic.sunysb.edu \t\t\nS_ense\t\tState University of New York @ Stony Brook \nE_ngineer\t\n**********************************************************************\n\n", "label": 6.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11312, "properties": {"category": "talk.politics.mideast", "text": "From: backon@vms.huji.ac.il\nSubject: Re: Israeli Terrorism\nDistribution: world\nOrganization: The Hebrew University of Jerusalem\nLines: 45\n\nIn article <1rd7eo$1a4@usenet.INS.CWRU.Edu>, cy779@cleveland.Freenet.Edu (Anas Omran) writes:\n>\n> In a previous article, tclock@orion.oac.uci.edu (Tim Clock) says:\n>\n>>In article <1993Apr24.203620.6531@Virginia.EDU> ab4z@Virginia.EDU (\"Andi Beyer\") writes:\n>>>I think the Israeli press might be a tad bit biased in\n>>>reporting the events. I doubt the Propaganda machine of Goering\n>>>reported accurately on what was happening in Germany. It is\n>>>interesting that you are basing the truth on Israeli propaganda.\n>>\n>>Since one is also unlikely to get \"the truth\" from either Arab or\n>>Palestinian news outlets, where do we go to \"understand\", to learn?\n>>Is one form of propoganda more reliable than another?\n>\n> There are many neutral human rights organizations which always report\n> on the situation in the O.T.  But, as most people used to see on TV, the\n> Israelis do not allow them to go deep there in the O.T.  The Israelis\n> used to arrest and sometimes to kill some of these neutral reporters.\n\n\nAnas, of course ! The YAHUD needed blood for the matza. After all, Passover\n*was* last month :-)\n\nWhy don't you give us your National Geographic travelogue of your recent trip\nto \"Palestine\" ? Or are you too disappointed by what you saw ? :-)\n\nJosh\nbackon@VMS.HUJI.AC.IL\n\n\n\n\n\n\n\n> So, this is another kind of terrorism committed by the Jews in Palestine.\n> They do not allow fair and neutral coverage of the situation in Palestine.\n>\n>>to determine that is to try and get beyond the writer's \"political\n>>agenda\", whether it is \"on\" or \"against\" our *side*.\n>>\n>>Tim\n>\n> Anas Omran\n>\n", "label": 17.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11313, "properties": {"category": "comp.sys.mac.hardware", "text": "From: Alexander Samuel McDiarmid <am2o+@andrew.cmu.edu>\nSubject: Re: Centris 610 Video Problem - I'm having it also!\nOrganization: Sophomore, Mechanical Engineering, Carnegie Mellon, Pittsburgh, PA\nLines: 40\nDistribution: comp\nNNTP-Posting-Host: po3.andrew.cmu.edu\nIn-Reply-To: <PUSH.93Apr16221745@media-lab.media.mit.edu>\n\nFrom: push@media.mit.edu (Pushpinder Singh)\nSubject: re: Centris 610 Video Problem - I'm having it also!\nDate: Sat, 17 Apr 1993 03:17:45 GMT\n \n> When the computer is set for 256 colors and certain operations are done,\n> particularly vertical scrolling through a window, horizontal white lines\n> appear on the monitor (which generally but not always spare open\n> windows).  These lines accummulate as the operation is continued.  If a\n> window is moved over the involved area of the screen and then moved away\n> the line disappear from that area of the screen.  This problem is not\n> observed if the monitor is configured for 16 colors or a 14 inch Apple\n> monitor with 256 colors is used. \n> \n> I suspect a bad video RAM chip but cannot be certain.  The problem has\n> been apparent since day 1 but has gotten worse.\n \nI'm having exactly the same problem.  Again, it's fine when I switch to 16\ncolors or a smaller monitor.  My configuration is:\n \nModel: Centris 610 with 4 MB/80 HD, 512 VRAM, no cards\nMonitor: MAG MX15F with 16\" monitor adaptor (for resolution of 832*624)\n \nI just discovered the problem a little while ago after plugging in my\nnew MAG monitor.  It seems to appear either when scrolling through a\nwindow or when using Alpha or Word and I enter <return>.\n \nMy guess is bad VRAMs as well.  I really hope it isn't a design flaw.  Is\nanyone at Apple listening?\n \nPushpinder Singh\npush@media.mit.edu\n \n***********************************\n\n    Try finding an init called Basic color monitor.  This should clear\nup some probs with Centris 610's and vga type monitors.  I know it\nexists, somewhere I have a binhexed copy, but I don't know where and\nnever got around to installing it.  I have this problem on my sony 1604.\n\n                                                                    -A.\n", "label": 4.0}}
{"entityType": "source", "eventTime": "2015-06-08T18:01:55.535+0000", "event": "documents", "entityId": 11314, "properties": {"category": "sci.electronics", "text": "From: mlee@eng.sdsu.edu (Mike Lee)\nSubject: Wire-Amperage table needed\nOrganization: San Diego State University Computing Services\nLines: 5\nNNTP-Posting-Host: eng.sdsu.edu\nX-Newsreader: TIN [version 1.1 PL9]\n\n\nDoes anyone has a table about the size of the wire to the amount of current it can carry.  Probably in the 1-15amp range.  My friend is interested in converting a Mazda into an electric car.  Needed information for estimation.  Thanks in advance.  \n\np.s. any info on electric will be greatly appreaciated.  \n\n", "label": 12.0}}
